From 9a4c74ad932b5cb702d9de202349f5581359ec14 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 9 Dec 2025 20:11:01 -0600 Subject: [PATCH 001/836] Unfinished Wayland PR (#1) moved from the github repo. current progress: image.png Other notes: - took the opportunity to remove MwLLSetBackground which I was told was deprecated - Updated .gitignore to more accurately cover/remove example binaries - Uses OpenGL as the backend. - New LL function for swapping buffers, MwLLEndDraw - [TODO] Uses weak linking for all libraries so that systems that don't support Wayland or even have it installed can launch without it. Reviewed-on: https://gitea.nishi.boats/pyrite-dev/milsko/pulls/1 Co-authored-by: IoIxD Co-committed-by: IoIxD --- include/Mw/BaseTypes.h | 4 +- include/Mw/LowLevel.h | 17 +- include/Mw/LowLevel/Wayland.h | 121 +++ include/Mw/LowLevel/Wayland/.gitignore | 1 + include/Mw/LowLevel/Wayland/README.md | 1 + include/Mw/MachDep.h | 2 + pl/rules.pl | 25 +- pl/utils.pl | 32 + src/backend/.gitignore | 1 + src/backend/call.c | 6 +- src/backend/gdi.c | 8 + src/backend/wayland.c | 1150 ++++++++++++++++++++++++ src/backend/x11.c | 9 +- src/core.c | 12 +- src/draw.c | 1 + src/lowlevel.c | 3 + src/widget/opengl.c | 35 + src/widget/scrollbar.c | 8 +- 18 files changed, 1424 insertions(+), 12 deletions(-) create mode 100644 include/Mw/LowLevel/Wayland.h create mode 100644 include/Mw/LowLevel/Wayland/.gitignore create mode 100644 include/Mw/LowLevel/Wayland/README.md create mode 100644 src/backend/.gitignore create mode 100644 src/backend/wayland.c diff --git a/include/Mw/BaseTypes.h b/include/Mw/BaseTypes.h index e44c3bcf3..7b92c9335 100644 --- a/include/Mw/BaseTypes.h +++ b/include/Mw/BaseTypes.h @@ -58,8 +58,8 @@ typedef unsigned long MwU64; #ifdef OTHER_TYPES_DEFINED #undef OTHER_TYPES_DEFINED #else -typedef int MwI32; -typedef unsigned int MwU32; +typedef int MwI32; +typedef unsigned int MwU32; typedef short MwI16; typedef unsigned short MwU16; diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index c9437fe54..167785aeb 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -25,7 +25,8 @@ typedef void* MwLLPixmap; enum MwLLBackends { MwLLBackendX11 = 0, - MwLLBackendGDI + MwLLBackendGDI, + MwLLBackendWayland, }; struct _MwLLCommon { @@ -55,6 +56,9 @@ struct _MwLLCommonPixmap { #ifdef USE_GDI #include #endif +#ifdef USE_WAYLAND +#include +#endif union _MwLL { struct _MwLLCommon common; @@ -64,6 +68,9 @@ union _MwLL { #ifdef USE_GDI struct _MwLLGDI gdi; #endif +#ifdef USE_WAYLAND + struct _MwLLWayland wayland; +#endif }; union _MwLLColor { @@ -74,6 +81,9 @@ union _MwLLColor { #ifdef USE_GDI struct _MwLLGDIColor gdi; #endif +#ifdef USE_WAYLAND + struct _MwLLWaylandColor wayland; +#endif }; union _MwLLPixmap { @@ -84,6 +94,9 @@ union _MwLLPixmap { #ifdef USE_GDI struct _MwLLGDIPixmap gdi; #endif +#ifdef USE_WAYLAND + struct _MwLLWaylandPixmap wayland; +#endif }; #endif #include @@ -149,6 +162,8 @@ MWDECL void (*MwLLDestroy)(MwLL handle); MWDECL void (*MwLLPolygon)(MwLL handle, MwPoint* points, int points_count, MwLLColor color); MWDECL void (*MwLLLine)(MwLL handle, MwPoint* points, MwLLColor color); +MWDECL void (*MwLLBeginDraw)(MwLL handle); +MWDECL void (*MwLLEndDraw)(MwLL handle); MWDECL MwLLColor (*MwLLAllocColor)(MwLL handle, int r, int g, int b); MWDECL void (*MwLLColorUpdate)(MwLL handle, MwLLColor c, int r, int g, int b); diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h new file mode 100644 index 000000000..af80f4762 --- /dev/null +++ b/include/Mw/LowLevel/Wayland.h @@ -0,0 +1,121 @@ +/*! + * @file Mw/LowLevel/Wayland.h + * @brief Work in progress Wayland Backend + * @warning This is used internally. + * @warning This is disabled by default. + */ +#ifndef __MW_LOWLEVEL_WAYLAND_H__ +#define __MW_LOWLEVEL_WAYLAND_H__ + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include + +MWDECL int MwLLWaylandCallInit(void); + +#ifndef WL_PROTOCOLS_DEFINED +#define WL_PROTOCOLS_DEFINED +#include "Wayland/xdg-shell-client-protocol.h" +#include "Wayland/xdg-decoration-client-protocol.h" +#include "Wayland/cursor-shape-client-protocol.h" +#endif + +struct _MwLLWayland; + +typedef struct wayland_protocol { + void* listener; + void* context; +} wayland_protocol_t; + +typedef wayland_protocol_t*(wl_setup_func)(MwU32, struct _MwLLWayland*); + +struct _MwLLWaylandTopLevel { + struct xdg_surface* xdg_surface; + struct xdg_toplevel* xdg_top_level; + struct xdg_toplevel_listener xdg_toplevel_listener; + struct xdg_surface_listener xdg_surface_listener; + + struct xkb_context* xkb_context; + struct xkb_keymap* xkb_keymap; + struct xkb_state* xkb_state; + + MwBool compositor_created; + MwBool xdg_wm_base_created; + MwBool xdg_surface_created; +}; + +struct _MwLLWayland { + struct _MwLLCommon common; + + /* Pointer for data that's only loaded if the widget is a toplevel */ + struct _MwLLWaylandTopLevel* toplevel; + + enum { + MWLL_WAYLAND_TOPLEVEL = 0, + MWLL_WAYLAND_SUBLEVEL = 1, /* Sublevels are surfaces that have the toplevel as a parent. They could be implemented as subsurfaces if we ever switch away from OpenGL. Some parts of the code also call them subwidgets. */ + } type; + + /* Map of Wayland interfaces to their relevant setup functions. */ + struct { + const char* key; + wl_setup_func* value; + }* wl_protocol_setup_map; + + /* Map of Wayland interfaces to any information we keep about them once we've registered them. */ + struct { + const char* key; + wayland_protocol_t* value; + }* wl_protocol_map; + + struct wl_display* display; + struct wl_registry* registry; + struct wl_compositor* compositor; + struct wl_subcompositor* subcompositor; + struct wl_surface* surface; + struct wl_registry_listener registry_listener; + struct wl_event_queue* event_queue; + + EGLNativeWindowType egl_window_native; + EGLDisplay egl_display; + EGLContext egl_context; + EGLSurface egl_surface; + EGLConfig egl_config; + + MwLL* sublevels; /* stb_ds managed array of any sublevels */ + MwBool configured; /* Whether or not xdg_toplevel_configure has run once */ + MwBool egl_setup; /* Whether or not EGL has been set up */ + MwBool has_set_xy /* Whether or not MwSetXY has been called */; + + int resize_counter; /* Counter that's for a hack in event_loop */ + MwU32 x, y, ww, wh; /* Window position */ + MwU32 lw, lh; /* Last known window position */ + MwPoint cur_mouse_pos; /* Currently known mouse position */ + + struct timeval timer; + MwU64 cooldown_timer; + MwU64 cooldown_timer_epoch; + + MwLL parent; + MwLL topmost_parent; /* The parent at the top of all the other parents. Usually a toplevel. */ +}; + +struct _MwLLWaylandColor { + struct _MwLLCommonColor common; +}; + +struct _MwLLWaylandPixmap { + struct _MwLLCommonPixmap common; + GLuint texture; + MwBool texture_deleted; +}; + +#endif diff --git a/include/Mw/LowLevel/Wayland/.gitignore b/include/Mw/LowLevel/Wayland/.gitignore new file mode 100644 index 000000000..25a4663fa --- /dev/null +++ b/include/Mw/LowLevel/Wayland/.gitignore @@ -0,0 +1 @@ +*protocol.h diff --git a/include/Mw/LowLevel/Wayland/README.md b/include/Mw/LowLevel/Wayland/README.md new file mode 100644 index 000000000..e0c17e81f --- /dev/null +++ b/include/Mw/LowLevel/Wayland/README.md @@ -0,0 +1 @@ +Folder for wayland-scanner to place any of its files. diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index cbc8bcde6..6eb37be7f 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -43,6 +44,7 @@ #include #include #include +#include #endif #ifndef M_PI diff --git a/pl/rules.pl b/pl/rules.pl index 8b9e123be..ab5521b50 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -26,6 +26,26 @@ if (grep(/^gdi$/, @backends)) { $gl_libs = "-lopengl32 -lglu32"; } +if (grep(/^wayland$/, @backends)) { + add_cflags("-DUSE_WAYLAND"); + new_object("src/backend/wayland.c"); + if ($cross) { + add_libs("-lGL -lEGL -lwayland-egl -lwayland-client -lxkbcommon"); + } + else { + add_libs("-lGL -lEGL"); + add_cflags(`pkg-config --cflags wayland-egl wayland-client xkbcommon`); + add_libs(`pkg-config --libs wayland-egl wayland-client xkbcommon`); + } + + scan_wayland_protocol("stable", "xdg-shell", ""); + scan_wayland_protocol("stable", "tablet", "-v2"); + scan_wayland_protocol("staging", "cursor-shape", "-v1"); + scan_wayland_protocol("unstable", "xdg-decoration", "-unstable-v1"); + + $gl_libs = "-lGL -lGLU"; +} + if (param_get("stb-image")) { add_cflags("-DUSE_STB_IMAGE"); } @@ -34,7 +54,10 @@ if (param_get("stb-truetype")) { } if (param_get("freetype2")) { add_cflags("-DUSE_FREETYPE2"); - if (not($cross)) { + if ($cross) { + add_libs("-lfreetype"); + } + else { add_cflags(`pkg-config --cflags freetype2`); add_libs(`pkg-config --libs freetype2`); } diff --git a/pl/utils.pl b/pl/utils.pl index a84371d3e..971c19626 100644 --- a/pl/utils.pl +++ b/pl/utils.pl @@ -54,6 +54,38 @@ sub use_backend { } } +sub scan_wayland_protocol { + my $tier = $_[0]; + my $proto = $_[1]; + my $ver = $_[2]; + + my $proto_c = "src/backend/wayland-${proto}-protocol.c"; + + if ( + system( +"wayland-scanner private-code /usr/share/wayland-protocols/${tier}/${proto}/${proto}${ver}.xml ${proto_c}" + ) != 0 + ) + { + print( +"^ Error on getting private code for /usr/share/wayland-protocols/${tier}/${proto}/${proto}${ver}.xml\n" + ); + } + else { + new_object($proto_c); + } + if ( + system( +"wayland-scanner client-header /usr/share/wayland-protocols/${tier}/${proto}/${proto}${ver}.xml include/Mw/LowLevel/Wayland/${proto}-client-protocol.h" + ) + ) + { + print( +"^ Error on getting client header for /usr/share/wayland-protocols/${tier}/${proto}/${proto}${ver}.xml\n" + ); + } +} + our %params = (); sub param_set { diff --git a/src/backend/.gitignore b/src/backend/.gitignore new file mode 100644 index 000000000..137387c58 --- /dev/null +++ b/src/backend/.gitignore @@ -0,0 +1 @@ +wayland*protocol.c diff --git a/src/backend/call.c b/src/backend/call.c index 2ce5ed234..e2ce934c9 100644 --- a/src/backend/call.c +++ b/src/backend/call.c @@ -8,8 +8,10 @@ MwLLCreate = MwLLCreateImpl; \ MwLLDestroy = MwLLDestroyImpl; \ \ - MwLLPolygon = MwLLPolygonImpl; \ - MwLLLine = MwLLLineImpl; \ + MwLLPolygon = MwLLPolygonImpl; \ + MwLLLine = MwLLLineImpl; \ + MwLLBeginDraw = MwLLBeginDrawImpl; \ + MwLLEndDraw = MwLLEndDrawImpl; \ \ MwLLAllocColor = MwLLAllocColorImpl; \ MwLLColorUpdate = MwLLColorUpdateImpl; \ diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 6cc557dbb..85f8fcbb0 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -280,6 +280,14 @@ static void MwLLDestroyImpl(MwLL handle) { free(handle); } +static void MwLLBeginDrawImpl(MwLL handle) { + (void)handle; +} + +static void MwLLEndDrawImpl(MwLL handle) { + (void)handle; +} + static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { POINT* p = malloc(sizeof(*p) * points_count); HPEN pen = CreatePen(PS_NULL, 0, RGB(0, 0, 0)); diff --git a/src/backend/wayland.c b/src/backend/wayland.c new file mode 100644 index 000000000..307e1ee70 --- /dev/null +++ b/src/backend/wayland.c @@ -0,0 +1,1150 @@ +#include + +#include +#include + +#include "../../external/stb_ds.h" + +#include +#include +#include + +/* TODO: find out what FreeBSD and such wants us to include */ +#ifdef __FreeBSD__ +/* XXX: Untested (nishi) */ +#include +#else +#include +#include +#endif + +/* + * TODO: + * make sure MwLLDestroy is finished (+ handle dropdown bug that results from it) + * GNOME doesn't want to support zxdg_decoration_protocol so we're gonna design some Windows 95 ass ui just for that window manager. + * finish the rest of the owl + */ + +/* + * Redraw `handle` if the given cooldown hasn't expired (`time` >= `cooldown_timer` + `cooldown)). + * Used for pointer callbacks, resize callbacks, etc. to ensure we only resize every x milliseconds + */ +static void timed_redraw(MwLL handle, MwU32 time, int cooldown, MwU64* cooldown_timer); + +/* Get the registered interface from r, or NULL if it doesn't currently have it. */ +#define WAYLAND_GET_INTERFACE(handle, inter) shget(handle.wl_protocol_map, inter##_interface.name) + +/* `wl_registry.global` callback */ +static void new_protocol(void* data, struct wl_registry* registry, + MwU32 name, const char* interface, + MwU32 version) { + struct _MwLLWayland* wayland = data; + + wl_setup_func* func = shget(wayland->wl_protocol_setup_map, interface); + if(func != NULL) { + /* printf("registering interface %s\n", interface); */ + shput(wayland->wl_protocol_map, interface, func(name, data)); + } else { + /* printf("unknown interface %s\n", interface); */ + } +}; + +/* `wl_registry.global_remove` callback */ +static void protocol_removed(void* data, + struct wl_registry* registry, + MwU32 name) { + +}; + +/* `wl_pointer.enter` callback */ +static void pointer_enter(void* data, struct wl_pointer* wl_pointer, MwU32 serial, + struct wl_surface* surface, wl_fixed_t surface_x, + wl_fixed_t surface_y) { +}; + +/* `wl_pointer.leave` callback */ +static void pointer_leave(void* data, struct wl_pointer* wl_pointer, MwU32 serial, + struct wl_surface* surface) { +}; + +/* `wl_pointer.motion` callback */ +static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time, + wl_fixed_t surface_x, wl_fixed_t surface_y) { + MwLL self = data; + MwLLMouse p; + + self->wayland.cur_mouse_pos.x = wl_fixed_to_double(surface_x); + self->wayland.cur_mouse_pos.y = wl_fixed_to_double(surface_y); + p.point = self->wayland.cur_mouse_pos; + MwLLDispatch(self, move, &p); + + timed_redraw(self, time, 50, &self->wayland.cooldown_timer); +}; + +/* `wl_pointer.button` callback */ +static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 serial, MwU32 time, MwU32 button, MwU32 state) { + MwLL self = data; + MwLLMouse p; + p.point = self->wayland.cur_mouse_pos; + if(p.point.x > self->wayland.x && p.point.x < self->wayland.x + self->wayland.ww && p.point.y > self->wayland.y && p.point.y < self->wayland.y + self->wayland.wh) { + switch(button) { + case BTN_LEFT: + p.button = MwLLMouseLeft; + break; + case BTN_MIDDLE: + p.button = MwLLMouseMiddle; + break; + case BTN_RIGHT: + p.button = MwLLMouseRight; + break; + } + switch(state) { + case WL_POINTER_BUTTON_STATE_PRESSED: + MwLLDispatch(self, down, &p); + break; + case WL_POINTER_BUTTON_STATE_RELEASED: + MwLLDispatch(self, up, &p); + break; + } + } + MwLLDispatch(self, draw, NULL); +}; + +/* `wl_pointer.axis` callback */ +static void pointer_axis(void* data, struct wl_pointer* wl_pointer, MwU32 time, + MwU32 axis, wl_fixed_t value) {}; + +struct wl_pointer_listener pointer_listener = { + .enter = pointer_enter, + .leave = pointer_leave, + .motion = pointer_motion, + .button = pointer_button, + .axis = pointer_axis, +}; + +/* Recursively dispatch the key event to `handle` and its children */ +static void recursive_key(MwLL handle, void* ud) { + int i; + if(handle->wayland.sublevels != NULL) { + for(i = 0; i < arrlen(handle->wayland.sublevels); i++) { + MwLLDispatch(handle->wayland.sublevels[i], key, ud); + recursive_key(handle->wayland.sublevels[i], ud); + } + } +} + +/* Recursively dispatch the key_released event to `handle` and its children */ +static void recursive_key_released(MwLL handle, void* ud) { + int i; + if(handle->wayland.sublevels != NULL) { + for(i = 0; i < arrlen(handle->wayland.sublevels); i++) { + MwLLDispatch(handle->wayland.sublevels[i], key_released, ud); + recursive_key(handle->wayland.sublevels[i], ud); + } + } +} + +/* Recursively dispatch the draw event to `handle` and its children */ +static void recursive_draw(MwLL handle) { + int i; + if(handle->wayland.sublevels != NULL) { + for(i = 0; i < arrlen(handle->wayland.sublevels); i++) { + MwLLDispatch(handle->wayland.sublevels[i], draw, NULL); + recursive_draw(handle->wayland.sublevels[i]); + } + } +} + +/* `wl_keyboard.keymap` callback */ +static void keyboard_keymap(void* data, + struct wl_keyboard* wl_keyboard, + MwU32 format, + int32_t fd, + MwU32 size) { + MwLL self = data; + if(self->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + struct _MwLLWaylandTopLevel* wayland = self->wayland.toplevel; + assert(format == WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1); + + char* map_shm = (char*)mmap(NULL, size, PROT_READ, MAP_SHARED, fd, 0); + assert(map_shm != MAP_FAILED); + + struct xkb_keymap* xkb_keymap = xkb_keymap_new_from_string( + wayland->xkb_context, map_shm, XKB_KEYMAP_FORMAT_TEXT_V1, + XKB_KEYMAP_COMPILE_NO_FLAGS); + munmap(map_shm, size); + close(fd); + + struct xkb_state* xkb_state = xkb_state_new(xkb_keymap); + xkb_keymap_unref(wayland->xkb_keymap); + xkb_state_unref(wayland->xkb_state); + + wayland->xkb_keymap = xkb_keymap; + wayland->xkb_state = xkb_state; + } +}; + +/* `wl_keyboard.enter` callback */ +static void keyboard_enter(void* data, + struct wl_keyboard* wl_keyboard, + MwU32 serial, + struct wl_surface* surface, + struct wl_array* keys) { + MwLL self = data; + MwLLDispatch(self, focus_in, NULL); +}; + +/* `wl_keyboard.leave` callback */ +static void keyboard_leave(void* data, + struct wl_keyboard* wl_keyboard, + MwU32 serial, + struct wl_surface* surface) { + MwLL self = data; + MwLLDispatch(self, focus_out, NULL); +}; + +/* `wl_keyboard.key` callback */ +static void keyboard_key(void* data, + struct wl_keyboard* wl_keyboard, + MwU32 serial, + MwU32 time, + MwU32 key, + MwU32 state) { + MwLL self = data; + if(self->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + struct _MwLLWaylandTopLevel* wayland = self->wayland.toplevel; + xkb_layout_index_t layout; + xkb_level_index_t level; + const xkb_keysym_t* syms_out; + MwU32 keycode = key + 8; + MwU64 syms_num; + int i; + + if(!wayland->xkb_keymap) { + return; + } + + layout = xkb_state_key_get_layout(wayland->xkb_state, keycode); + level = + xkb_keymap_num_levels_for_key(wayland->xkb_keymap, keycode, layout) - 1; + syms_num = xkb_keymap_key_get_syms_by_level(wayland->xkb_keymap, keycode, layout, level, &syms_out); + if(syms_out == NULL) { + return; + } + + for(i = 0; i < syms_num; i++) { + int sym = syms_out[i]; + int key; + switch(sym) { + case XKB_KEY_BackSpace: + key = MwLLKeyBackSpace; + break; + case XKB_KEY_Left: + key = MwLLKeyLeft; + break; + case XKB_KEY_Right: + key = MwLLKeyRight; + break; + case XKB_KEY_Up: + key = MwLLKeyUp; + break; + case XKB_KEY_Down: + key = MwLLKeyDown; + break; + case XKB_KEY_Return: + key = MwLLKeyEnter; + break; + case XKB_KEY_Escape: + key = MwLLKeyEscape; + break; + case XKB_KEY_Shift_L: + key = MwLLKeyLeftShift; + break; + case XKB_KEY_Shift_R: + key = MwLLKeyRightShift; + break; + case XKB_KEY_Alt_L: + case XKB_KEY_Alt_R: + key = MwLLKeyAlt; + break; + case XKB_KEY_Control_L: + case XKB_KEY_Control_R: + key = MwLLKeyControl; + break; + default: + key = sym; + } + if(state == WL_KEYBOARD_KEY_STATE_PRESSED) { + MwLLDispatch(self, key, &key); + recursive_key(self, &key); + } else { + MwLLDispatch(self, key_released, &key); + recursive_key_released(self, &key); + } + } + } +}; + +/* `wl_keyboard.modifiers` callback */ +static void keyboard_modifiers(void* data, + struct wl_keyboard* wl_keyboard, + MwU32 serial, + MwU32 mods_depressed, + MwU32 mods_latched, + MwU32 mods_locked, + MwU32 group) {}; + +struct wl_keyboard_listener keyboard_listener = { + .keymap = keyboard_keymap, + .enter = keyboard_enter, + .leave = keyboard_leave, + .key = keyboard_key, + .modifiers = keyboard_modifiers, +}; + +/* `wl_seat.name` callback */ +static void +wl_seat_name(void* data, struct wl_seat* wl_seat, const char* name) {}; + +/* `wl_seat.capabilities` callback */ +static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat, + MwU32 capabilities) { + MwLL self = data; + if(capabilities & WL_SEAT_CAPABILITY_KEYBOARD) { + struct wl_keyboard* keyboard = wl_seat_get_keyboard(wl_seat); + wl_keyboard_add_listener(keyboard, &keyboard_listener, data); + } + if(capabilities & WL_SEAT_CAPABILITY_POINTER) { + struct wl_pointer* pointer = wl_seat_get_pointer(wl_seat); + wl_pointer_add_listener(pointer, &pointer_listener, data); + } +}; + +/* `xdg_wm_base.ping` callback */ +void xdg_wm_base_ping(void* data, + struct xdg_wm_base* xdg_wm_base, + MwU32 serial) { + xdg_wm_base_pong(xdg_wm_base, serial); +}; + +/* wl_seat setup function */ +static wayland_protocol_t* wl_seat_setup(MwU32 name, MwLL ll) { + wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); + proto->listener = malloc(sizeof(struct wl_seat_listener)); + + ((struct wl_seat_listener*)proto->listener)->name = wl_seat_name; + ((struct wl_seat_listener*)proto->listener)->capabilities = wl_seat_capabilities; + + proto->context = wl_registry_bind(ll->wayland.registry, name, &wl_seat_interface, 1); + wl_seat_add_listener(proto->context, proto->listener, ll); + + return proto; +} + +/* wl_compositor setup function */ +static wayland_protocol_t* wl_compositor_setup(MwU32 name, struct _MwLLWayland* wayland) { + wayland->compositor = wl_registry_bind(wayland->registry, name, &wl_compositor_interface, 1); + + return NULL; +} + +/* wl_subcompositor setup function */ +static wayland_protocol_t* wl_subcompositor_setup(MwU32 name, struct _MwLLWayland* wayland) { + wayland->subcompositor = wl_registry_bind(wayland->registry, name, &wl_subcompositor_interface, 1); + + return NULL; +} + +/* xdg_wm_base setup function */ +static wayland_protocol_t* xdg_wm_base_setup(MwU32 name, struct _MwLLWayland* wayland) { + wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); + proto->listener = malloc(sizeof(struct xdg_wm_base_listener)); + + ((struct xdg_wm_base_listener*)proto->listener)->ping = xdg_wm_base_ping; + + proto->context = wl_registry_bind(wayland->registry, name, &xdg_wm_base_interface, 1); + xdg_wm_base_add_listener(proto->context, proto->listener, wayland); + + return proto; +} + +/* wp_cursor_shape_manager setup function */ +static wayland_protocol_t* wp_cursor_shape_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { + wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); + proto->listener = NULL; + + proto->context = wl_registry_bind(wayland->registry, name, &wp_cursor_shape_manager_v1_interface, 1); + + return proto; +} + +/* the two decoration manager constructs */ +typedef struct zxdg_decoration_manager_v1_context { + struct zxdg_decoration_manager_v1* manager; + struct zxdg_toplevel_decoration_v1* decoration; +} zxdg_decoration_manager_v1_context_t; + +/* zxdg_decoration_manager_v1 setup function */ +static wayland_protocol_t* zxdg_decoration_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { + wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); + zxdg_decoration_manager_v1_context_t* ctx = malloc(sizeof(zxdg_decoration_manager_v1_context_t)); + proto->listener = NULL; + + ctx->manager = wl_registry_bind(wayland->registry, name, &zxdg_decoration_manager_v1_interface, 1); + ; + + proto->context = ctx; + + return proto; +} + +/* EGL Setup function */ +static MwBool egl_setup(MwLL self, int x, int y, int width, int height) { + int err; + EGLint numConfigs; + EGLint majorVersion; + EGLint minorVersion; + EGLContext context; + EGLSurface surface; + EGLint fbAttribs[] = + { + EGL_SURFACE_TYPE, EGL_WINDOW_BIT, + EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, + EGL_RED_SIZE, 8, + EGL_GREEN_SIZE, 8, + EGL_BLUE_SIZE, 8, + EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, + EGL_NONE}; + EGLint contextAttribs[] = { + EGL_CONTEXT_CLIENT_VERSION, 1, + EGL_CONTEXT_MAJOR_VERSION, 1, + EGL_CONTEXT_MINOR_VERSION, 1, + EGL_NONE}; + + EGLDisplay display; + display = eglGetDisplay(self->wayland.display); + if(display == EGL_NO_DISPLAY) { + printf("ERROR: eglGetDisplay, %0X\n", eglGetError()); + return MwFALSE; + } + /* Initialize EGL */ + if(!eglInitialize(display, &majorVersion, &minorVersion)) { + printf("ERROR: eglInitialize, %0X\n", eglGetError()); + return MwFALSE; + } + + /* Get configs */ + if((eglGetConfigs(display, NULL, 0, &numConfigs) != EGL_TRUE) || (numConfigs == 0)) { + printf("ERROR: eglGetConfigs, %0X\n", eglGetError()); + return MwFALSE; + } + + /* Choose config */ + if((eglChooseConfig(display, fbAttribs, &self->wayland.egl_config, 1, &numConfigs) != EGL_TRUE) || (numConfigs != 1)) { + printf("ERROR: eglChooseConfig, %0X\n", eglGetError()); + return MwFALSE; + } + + self->wayland.egl_window_native = + wl_egl_window_create(self->wayland.surface, width, height); + if(self->wayland.egl_window_native == EGL_NO_SURFACE) { + printf("ERROR: wl_egl_window_create, EGL_NO_SURFACE\n"); + return MwFALSE; + } + + /* Create a surface */ + surface = eglCreateWindowSurface(display, self->wayland.egl_config, self->wayland.egl_window_native, NULL); + if(surface == EGL_NO_SURFACE) { + printf("ERROR: eglCreateWindowSurface, %0X\n", eglGetError()); + return MwFALSE; + } + + eglBindAPI(EGL_OPENGL_API); + + /* Create a GL context */ + context = eglCreateContext(display, self->wayland.egl_config, EGL_NO_CONTEXT, contextAttribs); + if(context == EGL_NO_CONTEXT) { + printf("ERROR: eglCreateContext, %0X\n", eglGetError()); + return MwFALSE; + } + + self->wayland.egl_display = display; + self->wayland.egl_surface = surface; + self->wayland.egl_context = context; + + if(self->wayland.parent == NULL) { + if(!eglMakeCurrent(self->wayland.egl_display, self->wayland.egl_surface, self->wayland.egl_surface, self->wayland.egl_context)) { + printf("ERROR: eglMakeCurrent, %0X\n", eglGetError()); + } + } + + glEnable(GL_TEXTURE_2D); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_BLEND); + glEnable(GL_SCISSOR_TEST); + + return MwTRUE; +} + +/* EGL reconfiguration function for resizes */ +static void egl_resetup(MwLL handle) { + float w, h; + + if(handle->wayland.parent == NULL) { + w = handle->wayland.ww; + h = handle->wayland.wh; + } else { + w = handle->wayland.parent->wayland.ww; + h = handle->wayland.parent->wayland.wh; + } + + glViewport(handle->wayland.x, handle->wayland.y, w, h); + glScissor(handle->wayland.x, handle->wayland.y, w, h); +} + +static void timed_redraw(MwLL handle, MwU32 time, int cooldown, MwU64* cooldown_timer) { + if(handle->wayland.parent == NULL) { + if(time >= (*cooldown_timer + cooldown)) { + egl_resetup(handle); + MwLLDispatch(handle, draw, NULL); + *cooldown_timer = time; + } + } +} + +/* Same as timed_redraw but it uses the unix epoch as the cooldown timer. */ +static void timed_redraw_by_epoch(MwLL handle, int cooldown) { + gettimeofday(&handle->wayland.timer, NULL); + unsigned long long time = + (unsigned long long)(handle->wayland.timer.tv_sec) * 1000 + + (unsigned long long)(handle->wayland.timer.tv_usec) / 1000; + timed_redraw(handle, time, cooldown, &handle->wayland.cooldown_timer_epoch); +} + +/* `xdg_toplevel.close` callback */ +static void xdg_toplevel_configure(void* data, + struct xdg_toplevel* xdg_toplevel, + MwI32 width, MwI32 height, + struct wl_array* states) { + MwLL self = data; + + if(width == 0 || height == 0) { + width = self->wayland.ww; + height = self->wayland.wh; + /* if it's still 0 then bail */ + if(width == 0 || height == 0) { + return; + } + } + + self->wayland.ww = width; + self->wayland.wh = height; + xdg_surface_set_window_geometry(self->wayland.toplevel->xdg_surface, 0, 0, self->wayland.ww, self->wayland.wh); + + MwLLDispatch(self, resize, NULL); + + if(!self->wayland.egl_setup) { + self->wayland.egl_setup = egl_setup(self, self->wayland.x, self->wayland.y, width, height); + } else { + wl_egl_window_resize(self->wayland.egl_window_native, width, height, 0, 0); + egl_resetup(self); + } + + return; +}; + +/* Empty function for satisfying zxdg_toplevel's requirements */ +static void decoration_configure( + void* data, struct zxdg_toplevel_decoration_v1* zxdg_toplevel_decoration_v1, + MwU32 mode) { +} + +/* `xdg_surface.close` callback */ +static void xdg_toplevel_close( + void* data, struct xdg_toplevel* xdg_toplevel) { + MwLL self = data; + MwLLDispatch(self, close, NULL); +}; + +/* `xdg_surface.configure` callback */ +static void xdg_surface_configure( + void* data, struct xdg_surface* xdg_surface, MwU32 serial) { + MwLL self = data; + + xdg_surface_ack_configure(xdg_surface, serial); + + if(self->wayland.configured) { + wl_surface_commit(self->wayland.surface); + } + + self->wayland.configured = MwTRUE; +} + +/* Standard Wayland event loop. */ +static int event_loop(MwLL handle) { + enum { + DISPLAY_FD, + KEYREPEAT_FD, + CURSOR_FD + }; + struct pollfd fd; + int timeout = 100; + struct _MwLLWayland* wayland = &handle->wayland; + MwLL topmost_parent = handle->wayland.parent; + + if(wayland->display == NULL) { + return 0; + } + fd.fd = wl_display_get_fd(wayland->display); + fd.events = POLLIN; + + /* If an error other than EAGAIN happens, we have likely been disconnected from the Wayland session */ + while(wl_display_flush(wayland->display) == -1) { + if(errno != EAGAIN) { + return MwFALSE; + } + + while(poll(&fd, 1, -1) == -1) { + if(errno != EINTR && errno != EAGAIN) { + wl_display_cancel_read(wayland->display); + + MwLLDispatch(handle, close, NULL); + return 0; + } + } + } + + if(fd.revents & POLLIN) { + wl_display_read_events(wayland->display); + if(wl_display_dispatch_pending(wayland->display) > 0) { + } + } else { + /* Condition for no events being sent */ + if(wl_display_dispatch_pending(wayland->display) == 0) { + if(wayland->event_queue != NULL) { + if(wl_display_roundtrip_queue(wayland->display, wayland->event_queue) < 0) { + printf("error\n"); + }; + } + /* HACK: If the last known size is different, force a redraw */ + if(wayland->lw != wayland->ww || wayland->lh != wayland->wh) { + MwLLDispatch(handle, draw, 0); + wayland->resize_counter++; + if(wayland->resize_counter >= 5) { + wayland->lw = wayland->ww; + wayland->lh = wayland->wh; + wayland->lh = wayland->wh; + wayland->resize_counter = 0; + } + } + } + } + + return 0; +} + +/* Function for setting up the callbacks/structs that will be registered upon the relevant interfaces being found. */ +static void setup_callbacks(struct _MwLLWayland* wayland) { + +/* Convience macro for adding the interface functions to the setup map */ +#define WL_INTERFACE(interface) \ + shput(wayland->wl_protocol_setup_map, interface##_interface.name, (wl_setup_func*)interface##_setup); + + wayland->registry_listener.global = new_protocol; + wayland->registry_listener.global_remove = protocol_removed; + wayland->wl_protocol_setup_map = NULL; + wayland->wl_protocol_map = NULL; + + WL_INTERFACE(wl_compositor); + WL_INTERFACE(wl_subcompositor); + WL_INTERFACE(wl_seat); + if(wayland->type == MWLL_WAYLAND_TOPLEVEL) { + WL_INTERFACE(xdg_wm_base); + WL_INTERFACE(zxdg_decoration_manager_v1); + WL_INTERFACE(wp_cursor_shape_manager_v1); + } +#undef WL_INTERFACE +} + +/* Toplevel setup function */ +static void setup_toplevel(MwLL r, int x, int y) { + int i; + + r->wayland.type = MWLL_WAYLAND_TOPLEVEL; + r->wayland.toplevel = malloc(sizeof(struct _MwLLWaylandTopLevel)); + r->wayland.topmost_parent = NULL; + + setup_callbacks(&r->wayland); + + /* Connect to the Wayland compositor */ + r->wayland.display = wl_display_connect(NULL); + if(r->wayland.display == NULL) { + printf("wayland: failed to create display\n"); + raise(SIGTRAP); + return; + } + + /* Do a roundtrip to ensure all interfaces are setup. */ + r->wayland.registry = wl_display_get_registry(r->wayland.display); + wl_registry_add_listener(r->wayland.registry, &r->wayland.registry_listener, r); + if(wl_display_roundtrip(r->wayland.display) == -1) { + printf("roundtrip failed\n"); + raise(SIGTRAP); + return; + } + + r->wayland.toplevel->xkb_context = xkb_context_new(XKB_CONTEXT_NO_FLAGS); + + /* Create a wl_surface, a xdg_surface and a xdg_toplevel */ + r->wayland.surface = wl_compositor_create_surface(r->wayland.compositor); + r->wayland.toplevel->xdg_surface = + xdg_wm_base_get_xdg_surface(WAYLAND_GET_INTERFACE(r->wayland, xdg_wm_base)->context, r->wayland.surface); + r->wayland.toplevel->xdg_top_level = xdg_surface_get_toplevel(r->wayland.toplevel->xdg_surface); + + /* setup mandatory listeners */ + r->wayland.toplevel->xdg_surface_listener.configure = xdg_surface_configure; + + r->wayland.toplevel->xdg_toplevel_listener.configure = xdg_toplevel_configure; + r->wayland.toplevel->xdg_toplevel_listener.close = xdg_toplevel_close; + + xdg_surface_add_listener(r->wayland.toplevel->xdg_surface, &r->wayland.toplevel->xdg_surface_listener, r); + xdg_toplevel_add_listener(r->wayland.toplevel->xdg_top_level, &r->wayland.toplevel->xdg_toplevel_listener, + r); + + xdg_toplevel_set_title(r->wayland.toplevel->xdg_top_level, "Milsko App"); + xdg_toplevel_set_app_id(r->wayland.toplevel->xdg_top_level, "MilskoWaylandApp"); + + /* Perform the initial commit and wait for the first configure event */ + wl_surface_commit(r->wayland.surface); + event_loop(r); + + /* setup decorations if we can */ + if(shget(r->wayland.wl_protocol_map, zxdg_decoration_manager_v1_interface.name) != NULL) { + zxdg_decoration_manager_v1_context_t* dec = WAYLAND_GET_INTERFACE(r->wayland, zxdg_decoration_manager_v1)->context; + + dec->decoration = zxdg_decoration_manager_v1_get_toplevel_decoration( + dec->manager, r->wayland.toplevel->xdg_top_level); + + zxdg_toplevel_decoration_v1_set_mode( + dec->decoration, ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE); + } else { + printf("zxdg null\n"); + } + + r->wayland.event_queue = wl_display_create_queue(r->wayland.display); + + egl_resetup(r); + MwLLDispatch(r, draw, NULL); + recursive_draw(r); +} + +/* Sublevel setup function */ +static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { + struct wl_compositor* compositor = parent->wayland.compositor; + struct wl_subcompositor* subcompositor = parent->wayland.subcompositor; + struct wl_surface* parent_surface = parent->wayland.surface; + struct wl_region* region; + { + MwLL topmost_parent = parent; + + while(topmost_parent->wayland.type != MWLL_WAYLAND_TOPLEVEL) { + topmost_parent = topmost_parent->wayland.parent; + } + r->wayland.topmost_parent = topmost_parent; + } + + r->wayland.type = MWLL_WAYLAND_SUBLEVEL; + + r->wayland.display = parent->wayland.display; + + r->wayland.surface = wl_compositor_create_surface(compositor); + + region = wl_compositor_create_region(compositor); + wl_region_add(region, 0, 0, r->wayland.ww, r->wayland.wh); + wl_surface_set_opaque_region(r->wayland.surface, region); + wl_surface_commit(r->wayland.surface); + event_loop(r); + wl_region_destroy(region); + + setup_callbacks(&r->wayland); + + r->wayland.registry = wl_display_get_registry(r->wayland.topmost_parent->wayland.display); + r->wayland.display = r->wayland.topmost_parent->wayland.display; + + wl_registry_add_listener(r->wayland.registry, &r->wayland.registry_listener, r); + if(wl_display_roundtrip(r->wayland.display) == -1) { + printf("roundtrip failed\n"); + raise(SIGTRAP); + return; + } + + r->wayland.configured = MwTRUE; + if(!r->wayland.egl_setup) { + r->wayland.egl_setup = egl_setup(r, r->wayland.x, r->wayland.y, r->wayland.ww, r->wayland.wh); + egl_resetup(r); + MwLLDispatch(r, draw, NULL); + recursive_draw(r); + }; + + r->wayland.event_queue = parent->wayland.event_queue; + + arrpush(parent->wayland.sublevels, r); + + wl_surface_damage(parent->wayland.surface, 0, 0, parent->wayland.ww, parent->wayland.wh); + + egl_resetup(r->wayland.topmost_parent); + MwLLDispatch(r->wayland.topmost_parent, draw, NULL); + recursive_draw(r->wayland.topmost_parent); +} + +static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { + MwLL r; + r = malloc(sizeof(*r)); + MwLLCreateCommon(r); + + r->common.type = MwLLBackendWayland; + + if(width == 0) width = 1; + if(height == 0) height = 1; + + if(x == MwDEFAULT) { + x = 0; + } + if(y == MwDEFAULT) { + y = 0; + } + + r->wayland.ww = width; + r->wayland.wh = height; + r->wayland.x = x; + r->wayland.y = y; + + r->wayland.parent = parent; + + r->wayland.cooldown_timer = 0; + r->wayland.has_set_xy = MwFALSE; + r->wayland.resize_counter = 0; + + r->wayland.sublevels = NULL; + + if(parent == NULL) { + setup_toplevel(r, x, y); + } else { + setup_sublevel(parent, r, x, y); + } + + return r; +} + +static void MwLLDestroyImpl(MwLL handle) { + MwLLDestroyCommon(handle); + + free(handle); +} + +static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h) { + *x = handle->wayland.x; + *y = handle->wayland.y; + *w = handle->wayland.ww; + *h = handle->wayland.wh; +} + +static void MwLLSetXYImpl(MwLL handle, int x, int y) { + if(handle->wayland.type != MWLL_WAYLAND_TOPLEVEL) { + handle->wayland.x = x; + handle->wayland.y = y; + if(handle->wayland.has_set_xy) { + timed_redraw_by_epoch(handle->wayland.topmost_parent, 25); + /* recursive_draw(handle->wayland.topmost_parent); */ + } else if(x != 0 && y != 0) { + handle->wayland.has_set_xy = MwTRUE; + } + } +} + +static void MwLLSetWHImpl(MwLL handle, int w, int h) { + /* Prevent an integer underflow when the w/h is too low */ + if((w < 10 || h < 10)) { + handle->wayland.ww = handle->wayland.lw = 10; + handle->wayland.wh = handle->wayland.lh = 10; + return; + } + handle->wayland.ww = handle->wayland.lw = w; + handle->wayland.wh = handle->wayland.lh = h; + + if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + xdg_surface_set_window_geometry(handle->wayland.toplevel->xdg_surface, 0, 0, handle->wayland.ww, handle->wayland.wh); + } else { + timed_redraw_by_epoch(handle->wayland.topmost_parent, 25); + /* recursive_draw(handle->wayland.topmost_parent); */ + } +} + +static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { + int i, n; + float maxX = 0, maxY = 0; + float centerX, centerY; + float w, h; + + if(handle->wayland.parent == NULL) { + w = handle->wayland.ww; + h = handle->wayland.wh; + } else { + w = handle->wayland.topmost_parent->wayland.ww; + h = handle->wayland.topmost_parent->wayland.wh; + } + + glColor3f(color->common.red / 255.0, color->common.green / 255.0, color->common.blue / 255.0); + + glBegin(GL_POLYGON); + + for(i = 0; i < points_count; i++) { + float x = ((float)(handle->wayland.x + points[i].x) / (w / 2)) - 1.0; + float y = 1.0 - ((float)(handle->wayland.y + points[i].y) / (h / 2)); + + glVertex2f(x, y); + } + glEnd(); + glColor3f(0, 0, 0); +} + +static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { + int i; + float w, h; + + if(handle->wayland.topmost_parent == NULL) { + w = handle->wayland.ww; + h = handle->wayland.wh; + } else { + w = handle->wayland.topmost_parent->wayland.ww; + h = handle->wayland.topmost_parent->wayland.wh; + } + + glLineWidth(1); + glColor3f(color->common.red / 255.0, color->common.green / 255.0, color->common.blue / 255.0); + + glBegin(GL_LINES); + for(i = 0; i < 2; i++) { + float x = ((float)(handle->wayland.x + points[i].x) / (w / 2)) - 1.0; + float y = 1.0 - ((float)(handle->wayland.y + points[i].y) / (h / 2)); + + glVertex2f(x, y); + } + glEnd(); + glColor3f(0, 0, 0); +} + +static void MwLLBeginDrawImpl(MwLL handle) { + if(handle->wayland.parent == NULL) { + if(!eglMakeCurrent(handle->wayland.egl_display, handle->wayland.egl_surface, handle->wayland.egl_surface, handle->wayland.egl_context)) { + printf("ERROR: eglMakeCurrent, %0X\n", eglGetError()); + return; + } + } +} + +static void MwLLEndDrawImpl(MwLL handle) { + int w, h; + + recursive_draw(handle); + + /* glClear(GL_COLOR_BUFFER_BIT); */ + /* glClearColor(1.0, 0, 0, 1); */ + + if(handle->wayland.parent == NULL) { + if(!eglSwapBuffers(handle->wayland.egl_display, handle->wayland.egl_surface)) { + printf("error swapping buffers! %0X\n", eglGetError()); + } else { + wl_surface_commit(handle->wayland.surface); + } + } +} + +static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { + MwLLColor c = malloc(sizeof(*c)); + + c->common.red = r; + c->common.blue = b; + c->common.green = g; + + return c; +} + +static void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { + c->common.red = r; + c->common.blue = b; + c->common.green = g; +} + +static void MwLLFreeColorImpl(MwLLColor color) { + free(color); +} + +static int MwLLPendingImpl(MwLL handle) { + if(wl_display_dispatch_pending(handle->wayland.display) == 0) { + } + return event_loop(handle); +} + +static void MwLLNextEventImpl(MwLL handle) { +} + +static void MwLLSetTitleImpl(MwLL handle, const char* title) { + if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + xdg_toplevel_set_title(handle->wayland.toplevel->xdg_top_level, title); + } +} + +static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) { + MwLLPixmap r = malloc(sizeof(*r)); + + r->common.width = width; + r->common.height = height; + r->common.raw = data; + r->wayland.texture = 0; + + glGenTextures(1, &r->wayland.texture); + + glBindTexture(GL_TEXTURE_2D, r->wayland.texture); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glBindTexture(GL_TEXTURE_2D, 0); + + MwLLPixmapUpdate(r); + + return r; +} + +static void MwLLPixmapUpdateImpl(MwLLPixmap r) { + glBindTexture(GL_TEXTURE_2D, r->wayland.texture); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, r->common.width, r->common.height, 0, GL_RGBA, GL_UNSIGNED_BYTE, r->common.raw); + glBindTexture(GL_TEXTURE_2D, 0); +} + +static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { + glDeleteTextures(1, &pixmap->wayland.texture); + free(pixmap); +} + +static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { + float x, y, w, h; + + if(handle->wayland.topmost_parent == NULL) { + w = handle->wayland.ww; + h = handle->wayland.wh; + } else { + w = handle->wayland.topmost_parent->wayland.ww; + h = handle->wayland.topmost_parent->wayland.wh; + } + + x = ((float)(handle->wayland.x + rect->x) / (w / 2)) - 1.0; + y = 1.0 - ((float)(handle->wayland.y + rect->y) / (h / 2)); + + glColor3f(1.0, 1.0, 1.0); + + glBindTexture(GL_TEXTURE_2D, pixmap->wayland.texture); + glActiveTexture(pixmap->wayland.texture); + + glBegin(GL_QUADS); + glTexCoord2f(0.0f, 0); + glVertex2f(x, y); + glTexCoord2f(1, 0); + glVertex2f(x + (rect->width / (w / 2)), y); + glTexCoord2f(1, 1); + glVertex2f(x + (rect->width / (w / 2)), y - (rect->height / (h / 2))); + glTexCoord2f(0.0f, 1); + glVertex2f(x, y - (rect->height / (h / 2))); + glEnd(); + glFinish(); +} +static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { +} + +static void MwLLForceRenderImpl(MwLL handle) { + wl_surface_damage(handle->wayland.surface, 0, 0, handle->wayland.ww, handle->wayland.wh); + + if(handle->wayland.egl_setup) { + timed_redraw_by_epoch(handle, 25); + } +} + +static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { +} + +static void MwLLDetachImpl(MwLL handle, MwPoint* point) { +} + +static void MwLLShowImpl(MwLL handle, int show) { +} + +static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { +} + +static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) { + if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + xdg_toplevel_set_min_size(handle->wayland.toplevel->xdg_top_level, minx, miny); + xdg_toplevel_set_max_size(handle->wayland.toplevel->xdg_top_level, maxx, maxy); + } +} + +static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { + if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + if(WAYLAND_GET_INTERFACE(handle->wayland, zxdg_decoration_manager_v1) != NULL) { + zxdg_decoration_manager_v1_context_t* dec = WAYLAND_GET_INTERFACE(handle->wayland, zxdg_decoration_manager_v1)->context; + + dec->decoration = zxdg_decoration_manager_v1_get_toplevel_decoration( + dec->manager, handle->wayland.toplevel->xdg_top_level); + + zxdg_toplevel_decoration_v1_set_mode( + dec->decoration, ZXDG_TOPLEVEL_DECORATION_V1_MODE_CLIENT_SIDE); + } else { + /* TODO: hide our custom window decorations when we have them. */ + printf("zxdg null\n"); + } + } +} + +static void MwLLFocusImpl(MwLL handle) { +} + +static void MwLLGrabPointerImpl(MwLL handle, int toggle) { +} + +static void MwLLSetClipboardImpl(MwLL handle, const char* text) { +} + +static char* MwLLGetClipboardImpl(MwLL handle) { + char* r = NULL; + return r; +} + +static void MwLLMakeToolWindowImpl(MwLL handle) { +} + +static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { +} + +static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { +} + +static void MwLLBeginStateChangeImpl(MwLL handle) { + MwLLShow(handle, 0); +} + +static void MwLLEndStateChangeImpl(MwLL handle) { + MwLLShow(handle, 1); +} + +static int MwLLWaylandCallInitImpl(void) { +#ifdef __linux__ + if(strcmp(getenv("XDG_SESSION_TYPE"), "wayland")) { + return 1; + } +#endif + return 0; +} + +#include "call.c" +CALL(Wayland); diff --git a/src/backend/x11.c b/src/backend/x11.c index a93536465..c21c5a1bb 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -259,6 +259,14 @@ static void MwLLDestroyImpl(MwLL handle) { free(handle); } +static void MwLLBeginDrawImpl(MwLL handle) { + (void)handle; +} + +static void MwLLEndDrawImpl(MwLL handle) { + (void)handle; +} + static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { int i; XPoint* p = malloc(sizeof(*p) * points_count); @@ -1028,7 +1036,6 @@ static void MwLLEndStateChangeImpl(MwLL handle) { } static int MwLLX11CallInitImpl(void) { - /* TODO: check properly */ return 0; } diff --git a/src/core.c b/src/core.c index efa5a86b7..9a5fd1480 100644 --- a/src/core.c +++ b/src/core.c @@ -1,16 +1,20 @@ #include #include "../external/stb_ds.h" +#include "Mw/LowLevel.h" static void lldrawhandler(MwLL handle, void* data) { MwWidget h = (MwWidget)handle->common.user; (void)data; + MwLLBeginDraw(handle); h->bgcolor = NULL; MwDispatch(h, draw); if(h->draw_inject != NULL) h->draw_inject(h); MwDispatchUserHandler(h, MwNdrawHandler, NULL); + + MwLLEndDraw(handle); } static void lluphandler(MwLL handle, void* data) { @@ -303,7 +307,10 @@ int MwStep(MwWidget handle) { arrfree(widgets); handle->prop_event = 0; - if(handle->lowlevel != NULL && MwLLPending(handle->lowlevel)) MwLLNextEvent(handle->lowlevel); + + if(handle->lowlevel != NULL && MwLLPending(handle->lowlevel)) + MwLLNextEvent(handle->lowlevel); + handle->prop_event = 1; clean_destroy_queue(handle); @@ -694,6 +701,9 @@ MwWidget MwGetParent(MwWidget handle) { typedef int (*call_t)(void); int MwLibraryInit(void) { call_t calls[] = { +#ifdef USE_WAYLAND + MwLLWaylandCallInit, +#endif #ifdef USE_X11 MwLLX11CallInit, #endif diff --git a/src/draw.c b/src/draw.c index ac16451c2..32b6d758a 100644 --- a/src/draw.c +++ b/src/draw.c @@ -491,6 +491,7 @@ void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int invert, p4[2].y = rect->y + s * border; } MwLLPolygon(handle->lowlevel, p4, 3, col); + if(color != col) MwLLFreeColor(col); MwLLFreeColor(lighter); diff --git a/src/lowlevel.c b/src/lowlevel.c index cc303451d..96f619613 100644 --- a/src/lowlevel.c +++ b/src/lowlevel.c @@ -6,6 +6,9 @@ void (*MwLLDestroy)(MwLL handle); void (*MwLLPolygon)(MwLL handle, MwPoint* points, int points_count, MwLLColor color); void (*MwLLLine)(MwLL handle, MwPoint* points, MwLLColor color); +void (*MwLLBeginDraw)(MwLL handle); +void (*MwLLEndDraw)(MwLL handle); + MwLLColor (*MwLLAllocColor)(MwLL handle, int r, int g, int b); void (*MwLLColorUpdate)(MwLL handle, MwLLColor c, int r, int g, int b); void (*MwLLFreeColor)(MwLLColor color); diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 552105ab5..f6cc36933 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -1,6 +1,12 @@ #include #include +#ifdef USE_WAYLAND +#include +#include +#include +#endif + #ifdef USE_GDI typedef HGLRC(WINAPI* MWwglCreateContext)(HDC); typedef BOOL(WINAPI* MWwglMakeCurrent)(HDC, HGLRC); @@ -103,6 +109,12 @@ static int create(MwWidget handle) { o->gl = o->glXCreateContext(handle->lowlevel->x11.display, o->visual, NULL, GL_TRUE); } #endif +#ifdef USE_WAYLAND + /* Wayland uses OpenGL as its backend so its already initialized */ + if(handle->lowlevel->common.type == MwLLBackendWayland) { + } +#endif + handle->internal = r; handle->lowlevel->common.copy_buffer = 0; @@ -133,6 +145,10 @@ static void destroy(MwWidget handle) { MwDynamicClose(o->lib); } #endif +#ifdef USE_WAYLAND +/* Wayland uses OpenGL as its backend so its destroyed accordingly */ +#endif + free(handle->internal); } @@ -151,6 +167,10 @@ static void mwOpenGLMakeCurrentImpl(MwWidget handle) { o->glXMakeCurrent(handle->lowlevel->x11.display, handle->lowlevel->x11.window, o->gl); } #endif +#ifdef USE_WAYLAND + if(handle->lowlevel->common.type == MwLLBackendWayland) { + } +#endif } static void mwOpenGLSwapBufferImpl(MwWidget handle) { @@ -168,6 +188,16 @@ static void mwOpenGLSwapBufferImpl(MwWidget handle) { o->glXSwapBuffers(handle->lowlevel->x11.display, handle->lowlevel->x11.window); } #endif +#ifdef USE_WAYLAND +#define tp handle->lowlevel->wayland.topmost_parent->wayland + if(handle->lowlevel->common.type == MwLLBackendWayland) { + if(!eglSwapBuffers( + tp.egl_display, tp.egl_surface)) { + printf("Userland error: eglSwapBuffers, %0X\n", eglGetError()); + } + } +#undef topmost_parent +#endif } static void* mwOpenGLGetProcAddressImpl(MwWidget handle, const char* name) { @@ -184,6 +214,11 @@ static void* mwOpenGLGetProcAddressImpl(MwWidget handle, const char* name) { return o->glXGetProcAddress((const GLubyte*)name); } +#endif +#ifdef USE_WAYLAND + if(handle->lowlevel->common.type == MwLLBackendWayland) { + return eglGetProcAddress(name); + } #endif return NULL; } diff --git a/src/widget/scrollbar.c b/src/widget/scrollbar.c index 6490b0636..ebfcb40c4 100644 --- a/src/widget/scrollbar.c +++ b/src/widget/scrollbar.c @@ -142,7 +142,7 @@ static void draw(MwWidget handle) { } static void mouse_move(MwWidget handle) { - int or = MwGetInteger(handle, MwNorientation); + int or = MwGetInteger(handle, MwNorientation); scrollbar_t* scr = handle->internal; if(!handle->pressed) return; @@ -170,9 +170,9 @@ static void mouse_move(MwWidget handle) { } static void mouse_down(MwWidget handle, void* ptr) { - int ww = MwGetInteger(handle, MwNwidth); - int wh = MwGetInteger(handle, MwNheight); - int or = MwGetInteger(handle, MwNorientation); + int ww = MwGetInteger(handle, MwNwidth); + int wh = MwGetInteger(handle, MwNheight); + int or = MwGetInteger(handle, MwNorientation); scrollbar_t* scr = handle->internal; MwLLMouse* m = ptr; From 0c787264c6c988eb714127c78745294c53502a97 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 10 Dec 2025 11:15:52 +0900 Subject: [PATCH 002/836] fix some stuff --- include/Mw/BaseTypes.h | 12 ++++++------ src/core.c | 1 - src/widget/scrollbar.c | 8 ++++---- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/include/Mw/BaseTypes.h b/include/Mw/BaseTypes.h index 7b92c9335..ca718ea4a 100644 --- a/include/Mw/BaseTypes.h +++ b/include/Mw/BaseTypes.h @@ -31,7 +31,7 @@ typedef uint16_t MwU16; typedef int8_t MwI8; typedef uint8_t MwU8; -#define OTHER_TYPES_DEFINED +#define MW_OTHER_TYPES_DEFINED #elif __GNUC__ > 2 typedef long long MwI64; typedef unsigned long long MwU64; @@ -48,18 +48,18 @@ typedef unsigned __int16 MwU16; typedef __int8 MwI8; typedef unsigned __int8 MwU8; -#define OTHER_TYPES_DEFINED +#define MW_OTHER_TYPES_DEFINED #else /* out of hope */ typedef long MwI64; typedef unsigned long MwU64; #endif -#ifdef OTHER_TYPES_DEFINED -#undef OTHER_TYPES_DEFINED +#ifdef MW_OTHER_TYPES_DEFINED +#undef MW_OTHER_TYPES_DEFINED #else -typedef int MwI32; -typedef unsigned int MwU32; +typedef int MwI32; +typedef unsigned int MwU32; typedef short MwI16; typedef unsigned short MwU16; diff --git a/src/core.c b/src/core.c index 9a5fd1480..ec7cb7d53 100644 --- a/src/core.c +++ b/src/core.c @@ -1,7 +1,6 @@ #include #include "../external/stb_ds.h" -#include "Mw/LowLevel.h" static void lldrawhandler(MwLL handle, void* data) { MwWidget h = (MwWidget)handle->common.user; diff --git a/src/widget/scrollbar.c b/src/widget/scrollbar.c index ebfcb40c4..6490b0636 100644 --- a/src/widget/scrollbar.c +++ b/src/widget/scrollbar.c @@ -142,7 +142,7 @@ static void draw(MwWidget handle) { } static void mouse_move(MwWidget handle) { - int or = MwGetInteger(handle, MwNorientation); + int or = MwGetInteger(handle, MwNorientation); scrollbar_t* scr = handle->internal; if(!handle->pressed) return; @@ -170,9 +170,9 @@ static void mouse_move(MwWidget handle) { } static void mouse_down(MwWidget handle, void* ptr) { - int ww = MwGetInteger(handle, MwNwidth); - int wh = MwGetInteger(handle, MwNheight); - int or = MwGetInteger(handle, MwNorientation); + int ww = MwGetInteger(handle, MwNwidth); + int wh = MwGetInteger(handle, MwNheight); + int or = MwGetInteger(handle, MwNorientation); scrollbar_t* scr = handle->internal; MwLLMouse* m = ptr; From bbc27d680a8cb359f10503895cd863b320aaf25b Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 10 Dec 2025 12:57:40 +0900 Subject: [PATCH 003/836] that is simply wrong --- src/backend/x11.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/x11.c b/src/backend/x11.c index c21c5a1bb..353f6d7c4 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -1020,7 +1020,7 @@ static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { XWindowAttributes xwa; - XGetWindowAttributes(handle->x11.display, handle->x11.window, &xwa); + XGetWindowAttributes(handle->x11.display, DefaultRootWindow(handle->x11.display), &xwa); rect->x = rect->y = 0; rect->width = xwa.width; From 82f9330befba2e95e0339710744c4aeace13abf3 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 10 Dec 2025 13:26:19 +0900 Subject: [PATCH 004/836] add MwNfillArea --- include/Mw/StringDefs.h | 1 + milsko.xml | 1 + src/widget/button.c | 26 ++++++++++++++++---------- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index a51f98105..69a747ab5 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -31,6 +31,7 @@ #define MwNshowArrows "IshowArrows" #define MwNpadding "Ipadding" #define MwNborderWidth "IborderWidth" +#define MwNfillArea "IfillArea" #define MwNtitle "Stitle" #define MwNtext "Stext" diff --git a/milsko.xml b/milsko.xml index 45f7c2846..98e0d91aa 100644 --- a/milsko.xml +++ b/milsko.xml @@ -488,6 +488,7 @@ + diff --git a/src/widget/button.c b/src/widget/button.c index d6e5394f1..d2b790ad6 100644 --- a/src/widget/button.c +++ b/src/widget/button.c @@ -5,6 +5,7 @@ static int create(MwWidget handle) { MwSetInteger(handle, MwNflat, 0); MwSetInteger(handle, MwNpadding, 0); + MwSetInteger(handle, MwNfillArea, 1); return 0; } @@ -44,18 +45,23 @@ static void draw(MwWidget handle) { int ow = r.width; int oh = r.height; - double sw = (double)ow / px->common.width; - double sh = (double)oh / px->common.height; + if(MwGetInteger(handle, MwNfillArea)) { + double sw = (double)ow / px->common.width; + double sh = (double)oh / px->common.height; - if(sw < sh) { - r.width = px->common.width * sw; - r.height = px->common.height * sw; + if(sw < sh) { + r.width = px->common.width * sw; + r.height = px->common.height * sw; + } else { + r.width = px->common.width * sh; + r.height = px->common.height * sh; + } + r.width -= MwGetInteger(handle, MwNpadding) * 2; + r.height -= MwGetInteger(handle, MwNpadding) * 2; } else { - r.width = px->common.width * sh; - r.height = px->common.height * sh; + r.width = px->common.width; + r.height = px->common.height; } - r.width -= MwGetInteger(handle, MwNpadding) * 2; - r.height -= MwGetInteger(handle, MwNpadding) * 2; r.x += (double)(ow - r.width) / 2; r.y += (double)(oh - r.height) / 2; @@ -77,7 +83,7 @@ static void click(MwWidget handle) { } static void prop_change(MwWidget handle, const char* key) { - if(strcmp(key, MwNtext) == 0 || strcmp(key, MwNpixmap) == 0 || strcmp(key, MwNflat) == 0 || strcmp(key, MwNpadding) == 0) MwForceRender(handle); + if(strcmp(key, MwNtext) == 0 || strcmp(key, MwNpixmap) == 0 || strcmp(key, MwNflat) == 0 || strcmp(key, MwNpadding) == 0 || strcmp(key, MwNfillArea) == 0) MwForceRender(handle); } MwClassRec MwButtonClassRec = { From e57f3fd910ec4b22cdb1923adee35e80a933e726 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 11 Dec 2025 00:50:50 +0900 Subject: [PATCH 005/836] update --- include/Mw/StringDefs.h | 1 + milsko.xml | 1 + src/widget/button.c | 4 ++++ 3 files changed, 6 insertions(+) diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index 69a747ab5..de8b8bb17 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -45,6 +45,7 @@ #define MwNsizeHints "VsizeHints" #define MwNfont "Vfont" #define MwNboldFont "VboldFont" +#define MwNbackgroundPixmap "VbackgroundPixmap" #define MwNactivateHandler "Cactivate" /* NULL/int* (MwListBox)/void* (MwTreeView) */ #define MwNresizeHandler "Cresize" /* NULL */ diff --git a/milsko.xml b/milsko.xml index 98e0d91aa..5e7458043 100644 --- a/milsko.xml +++ b/milsko.xml @@ -48,6 +48,7 @@ - MwNwidth - MwNheight - MwNborderWidth + - MwNbackgroundPixmap Integer properties must be prefixed with I. String properties must be prefixed with S. diff --git a/src/widget/button.c b/src/widget/button.c index d2b790ad6..30b29805b 100644 --- a/src/widget/button.c +++ b/src/widget/button.c @@ -17,6 +17,7 @@ static void draw(MwWidget handle) { MwLLColor text = MwParseColor(handle, MwGetText(handle, MwNforeground)); const char* str = MwGetText(handle, MwNtext); MwLLPixmap px = MwGetVoid(handle, MwNpixmap); + MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); if(str == NULL) str = ""; @@ -34,6 +35,9 @@ static void draw(MwWidget handle) { } else { MwDrawWidgetBack(handle, &r, base, handle->pressed, 1); } + if(bgpx != NULL) { + MwLLDrawPixmap(handle->lowlevel, &r, bgpx); + } if(MwGetInteger(handle, MwNflat) && !handle->pressed) { r.x += MwDefaultBorderWidth(handle); r.y += MwDefaultBorderWidth(handle); From 363897df74ff64d49081968810f6d9b78551f26e Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 11 Dec 2025 01:37:13 +0900 Subject: [PATCH 006/836] background pixmap --- src/widget/button.c | 4 +--- src/widget/checkbox.c | 6 ++++-- src/widget/entry.c | 2 ++ src/widget/frame.c | 10 ++++++---- src/widget/label.c | 4 +++- src/widget/progressbar.c | 10 ++++++---- src/widget/radiobox.c | 6 ++++-- src/widget/scrollbar.c | 4 +++- 8 files changed, 29 insertions(+), 17 deletions(-) diff --git a/src/widget/button.c b/src/widget/button.c index 30b29805b..a484eea76 100644 --- a/src/widget/button.c +++ b/src/widget/button.c @@ -35,9 +35,7 @@ static void draw(MwWidget handle) { } else { MwDrawWidgetBack(handle, &r, base, handle->pressed, 1); } - if(bgpx != NULL) { - MwLLDrawPixmap(handle->lowlevel, &r, bgpx); - } + if(bgpx != NULL) MwLLDrawPixmap(handle->lowlevel, &r, bgpx); if(MwGetInteger(handle, MwNflat) && !handle->pressed) { r.x += MwDefaultBorderWidth(handle); r.y += MwDefaultBorderWidth(handle); diff --git a/src/widget/checkbox.c b/src/widget/checkbox.c index 2f6df54b4..0a117a42e 100644 --- a/src/widget/checkbox.c +++ b/src/widget/checkbox.c @@ -9,8 +9,9 @@ static int create(MwWidget handle) { } static void draw(MwWidget handle) { - MwRect r; - MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); + MwRect r; + MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); + MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); r.x = 0; r.y = 0; @@ -18,6 +19,7 @@ static void draw(MwWidget handle) { r.height = MwGetInteger(handle, MwNheight); MwDrawWidgetBack(handle, &r, base, (handle->pressed || MwGetInteger(handle, MwNchecked)) ? 1 : 0, MwTRUE); + if(bgpx != NULL) MwLLDrawPixmap(handle->lowlevel, &r, bgpx); if(handle->pressed || MwGetInteger(handle, MwNchecked)) { /* TODO: write check mark */ } diff --git a/src/widget/entry.c b/src/widget/entry.c index e86376044..b5ac1e05d 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -25,6 +25,7 @@ static void draw(MwWidget handle) { MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); MwLLColor text = MwParseColor(handle, MwGetText(handle, MwNforeground)); const char* str = MwGetText(handle, MwNtext); + MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); if(str == NULL) str = ""; r.x = 0; @@ -33,6 +34,7 @@ static void draw(MwWidget handle) { r.height = MwGetInteger(handle, MwNheight); MwDrawWidgetBack(handle, &r, base, 1, 1); + if(bgpx != NULL) MwLLDrawPixmap(handle->lowlevel, &r, bgpx); if(str != NULL) { int w = MwTextWidth(handle, "M"); int h = MwTextHeight(handle, "M"); diff --git a/src/widget/frame.c b/src/widget/frame.c index b2f3ad0dd..38ff990fe 100644 --- a/src/widget/frame.c +++ b/src/widget/frame.c @@ -10,10 +10,11 @@ static int create(MwWidget handle) { } static void draw(MwWidget handle) { - MwRect fr; - MwRect rr; - MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); - int inverted; + MwRect fr; + MwRect rr; + MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); + int inverted; + MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); if(MwGetInteger(handle, MwNhasBorder)) { inverted = MwGetInteger(handle, MwNinverted); @@ -36,6 +37,7 @@ static void draw(MwWidget handle) { } MwDrawRect(handle, &rr, base); + if(bgpx != NULL) MwLLDrawPixmap(handle->lowlevel, &rr, bgpx); MwLLFreeColor(base); } diff --git a/src/widget/label.c b/src/widget/label.c index 4305662ce..f26edd075 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -14,7 +14,8 @@ static void draw(MwWidget handle) { MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); MwLLColor text = MwParseColor(handle, MwGetText(handle, MwNforeground)); int align; - const char* str = MwGetText(handle, MwNtext); + const char* str = MwGetText(handle, MwNtext); + MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); if(str == NULL) str = ""; @@ -24,6 +25,7 @@ static void draw(MwWidget handle) { r.height = MwGetInteger(handle, MwNheight); MwDrawRect(handle, &r, base); + if(bgpx != NULL) MwLLDrawPixmap(handle->lowlevel, &r, bgpx); align = MwGetInteger(handle, MwNalignment); if(align == MwALIGNMENT_CENTER) { diff --git a/src/widget/progressbar.c b/src/widget/progressbar.c index db57851ad..f3f99eb33 100644 --- a/src/widget/progressbar.c +++ b/src/widget/progressbar.c @@ -12,10 +12,11 @@ static int create(MwWidget handle) { } static void draw(MwWidget handle) { - MwRect r; - MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); - MwLLColor fill = MwParseColor(handle, MwGetText(handle, MwNforeground)); - double w; + MwRect r; + MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); + MwLLColor fill = MwParseColor(handle, MwGetText(handle, MwNforeground)); + double w; + MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); r.x = 0; r.y = 0; @@ -26,6 +27,7 @@ static void draw(MwWidget handle) { MwDrawRect(handle, &r, base); w = MwGetInteger(handle, MwNvalue) - MwGetInteger(handle, MwNminValue); w = w / (MwGetInteger(handle, MwNmaxValue) - MwGetInteger(handle, MwNminValue)); + if(bgpx != NULL) MwLLDrawPixmap(handle->lowlevel, &r, bgpx); r.x += MwDefaultBorderWidth(handle); r.y += MwDefaultBorderWidth(handle); diff --git a/src/widget/radiobox.c b/src/widget/radiobox.c index 681949afa..85c7871a1 100644 --- a/src/widget/radiobox.c +++ b/src/widget/radiobox.c @@ -11,8 +11,9 @@ static int create(MwWidget handle) { } static void draw(MwWidget handle) { - MwRect r; - MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); + MwRect r; + MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); + MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); r.x = 0; r.y = 0; @@ -20,6 +21,7 @@ static void draw(MwWidget handle) { r.height = MwGetInteger(handle, MwNheight); MwDrawRect(handle, &r, base); + if(bgpx != NULL) MwLLDrawPixmap(handle->lowlevel, &r, bgpx); MwDrawDiamond(handle, &r, base, (handle->pressed || MwGetInteger(handle, MwNchecked)) ? 1 : 0); MwLLFreeColor(base); diff --git a/src/widget/scrollbar.c b/src/widget/scrollbar.c index 6490b0636..e00d0b550 100644 --- a/src/widget/scrollbar.c +++ b/src/widget/scrollbar.c @@ -65,7 +65,8 @@ static void draw(MwWidget handle) { MwLLColor dark = MwLightenColor(handle, base, -64, -64, -64); scrollbar_t* scr = handle->internal; int or ; - int uy, dy, ux, dx; + int uy, dy, ux, dx; + MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); r.x = 0; r.y = 0; @@ -79,6 +80,7 @@ static void draw(MwWidget handle) { dx = r.width - r.height; MwDrawWidgetBack(handle, &r, dark, 1, MwTRUE); + if(bgpx != NULL) MwLLDrawPixmap(handle->lowlevel, &r, bgpx); rt = r; From 0c8715ec9f6ea8f9273b3ae01b11ed05e3f8cf9b Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 12 Dec 2025 17:26:57 +0900 Subject: [PATCH 007/836] bugfix --- src/backend/x11.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/x11.c b/src/backend/x11.c index 353f6d7c4..4370b55b5 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -53,7 +53,7 @@ static void sync_move(MwLL handle, int x, int y) { XSync(handle->x11.display, False); if(!XPending(handle->x11.display)) continue; XNextEvent(handle->x11.display, &ev); - if(ev.type == ReparentNotify && ev.xreparent.window == handle->x11.window && ev.xreparent.window != RootWindow(handle->x11.display, DefaultScreen(handle->x11.display))) { + if(ev.type == ReparentNotify && ev.xreparent.window == handle->x11.window) { break; } else { arrput(queue, ev); From f9c0ec987e856a5c05233ba9df946239b20afc6d Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 12 Dec 2025 17:51:26 +0900 Subject: [PATCH 008/836] improvement --- src/backend/x11.c | 9 +++++---- src/text.c | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/backend/x11.c b/src/backend/x11.c index 4370b55b5..3d2b505df 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -581,8 +581,6 @@ static void MwLLSetTitleImpl(MwLL handle, const char* title) { static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) { MwLLPixmap r = malloc(sizeof(*r)); - char* di = malloc(4 * width * height); - char* dm = malloc(4 * width * height); int evbase, erbase; XWindowAttributes attr; @@ -603,8 +601,11 @@ static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int wid r->x11.use_xrender = XRenderQueryExtension(handle->x11.display, &evbase, &erbase) ? 1 : 0; #endif - r->x11.image = XCreateImage(handle->x11.display, DefaultVisual(handle->x11.display, DefaultScreen(handle->x11.display)), r->x11.depth, ZPixmap, 0, di, width, height, 32, width * 4); - r->x11.mask = XCreateImage(handle->x11.display, DefaultVisual(handle->x11.display, DefaultScreen(handle->x11.display)), 1, ZPixmap, 0, dm, width, height, 32, width * 4); + r->x11.image = XCreateImage(handle->x11.display, DefaultVisual(handle->x11.display, DefaultScreen(handle->x11.display)), r->x11.depth, ZPixmap, 0, NULL, width, height, 32, 0); + r->x11.mask = XCreateImage(handle->x11.display, DefaultVisual(handle->x11.display, DefaultScreen(handle->x11.display)), 1, ZPixmap, 0, NULL, width, height, 32, 0); + + r->x11.image->data = malloc(r->x11.image->bytes_per_line * height); + r->x11.mask->data = malloc(r->x11.mask->bytes_per_line * height); MwLLPixmapUpdate(r); return r; diff --git a/src/text.c b/src/text.c index 87a9a01a1..7d94e5cf4 100644 --- a/src/text.c +++ b/src/text.c @@ -292,6 +292,7 @@ static int ttf_MwTextHeight(MwWidget handle, int count) { #endif void MwDrawText(MwWidget handle, MwPoint* point, const char* text, int bold, int align, MwLLColor color) { + if(strlen(text) == 0) return; #ifdef TTF if(ttf_MwDrawText(handle, point, text, bold, align, color)) #endif From cf4fdc531a79852546ef8f55754f51ab45c974c7 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 15 Dec 2025 06:48:40 +0900 Subject: [PATCH 009/836] update color things --- include/Mw/Draw.h | 18 +- src/backend/x11.c | 4 +- src/color.c | 5484 ++++++++++++++++++++++++++++++++++++++------- src/draw.c | 71 +- tools/color.pl | 22 +- 5 files changed, 4763 insertions(+), 836 deletions(-) diff --git a/include/Mw/Draw.h b/include/Mw/Draw.h index 50aa66664..6ccc299cd 100644 --- a/include/Mw/Draw.h +++ b/include/Mw/Draw.h @@ -21,6 +21,13 @@ extern "C" { */ MWDECL MwLLColor MwParseColor(MwWidget handle, const char* text); +/*! + * @brief Parses a color text + * @param text Color text + * @param rgb RGB + */ +MWDECL void MwParseColorNoAllocate(const char* text, MwRGB* rgb); + /*! * @brief Lighten a color * @param handle Widget @@ -120,12 +127,12 @@ MWDECL MwLLPixmap MwLoadRaw(MwWidget handle, unsigned char* rgb, int width, int /*! * @brief Creates a pixmap from raw data * @param handle Widget + * @param pixmap Pixmap to update * @param rgb RGBA data * @param width Width * @param height Height - * @return Pixmap */ -MWDECL void MwReloadRaw(MwWidget handle, unsigned char* rgb, int width, int height, MwLLPixmap pixmap); +MWDECL void MwReloadRaw(MwWidget handle, MwLLPixmap pixmap, unsigned char* rgb, int width, int height); /*! * @brief Creates a pixmap from XPM data @@ -191,6 +198,13 @@ MWDECL int MwTextHeight(MwWidget handle, const char* text); */ MWDECL MwLLColor MwParseColorName(MwWidget handle, const char* color); +/*! + * @brief Parses a color name + * @param color Color name + * @param rgb RGB + */ +MWDECL void MwParseColorNameNoAllocate(const char* color, MwRGB* rgb); + #ifdef __cplusplus } #endif diff --git a/src/backend/x11.c b/src/backend/x11.c index 3d2b505df..c44daafd1 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -580,7 +580,7 @@ static void MwLLSetTitleImpl(MwLL handle, const char* title) { } static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) { - MwLLPixmap r = malloc(sizeof(*r)); + MwLLPixmap r = malloc(sizeof(*r)); int evbase, erbase; XWindowAttributes attr; @@ -605,7 +605,7 @@ static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int wid r->x11.mask = XCreateImage(handle->x11.display, DefaultVisual(handle->x11.display, DefaultScreen(handle->x11.display)), 1, ZPixmap, 0, NULL, width, height, 32, 0); r->x11.image->data = malloc(r->x11.image->bytes_per_line * height); - r->x11.mask->data = malloc(r->x11.mask->bytes_per_line * height); + r->x11.mask->data = malloc(r->x11.mask->bytes_per_line * height); MwLLPixmapUpdate(r); return r; diff --git a/src/color.c b/src/color.c index 0232792d9..40003a45d 100644 --- a/src/color.c +++ b/src/color.c @@ -1,787 +1,4705 @@ #include MwLLColor MwParseColorName(MwWidget handle, const char* color) { - if(strcmp(color, "snow") == 0) return MwLLAllocColor(handle->lowlevel, 255, 250, 250); - if(strcmp(color, "ghost white") == 0) return MwLLAllocColor(handle->lowlevel, 248, 248, 255); - if(strcmp(color, "GhostWhite") == 0) return MwLLAllocColor(handle->lowlevel, 248, 248, 255); - if(strcmp(color, "white smoke") == 0) return MwLLAllocColor(handle->lowlevel, 245, 245, 245); - if(strcmp(color, "WhiteSmoke") == 0) return MwLLAllocColor(handle->lowlevel, 245, 245, 245); - if(strcmp(color, "gainsboro") == 0) return MwLLAllocColor(handle->lowlevel, 220, 220, 220); - if(strcmp(color, "floral white") == 0) return MwLLAllocColor(handle->lowlevel, 255, 250, 240); - if(strcmp(color, "FloralWhite") == 0) return MwLLAllocColor(handle->lowlevel, 255, 250, 240); - if(strcmp(color, "old lace") == 0) return MwLLAllocColor(handle->lowlevel, 253, 245, 230); - if(strcmp(color, "OldLace") == 0) return MwLLAllocColor(handle->lowlevel, 253, 245, 230); - if(strcmp(color, "linen") == 0) return MwLLAllocColor(handle->lowlevel, 250, 240, 230); - if(strcmp(color, "antique white") == 0) return MwLLAllocColor(handle->lowlevel, 250, 235, 215); - if(strcmp(color, "AntiqueWhite") == 0) return MwLLAllocColor(handle->lowlevel, 250, 235, 215); - if(strcmp(color, "papaya whip") == 0) return MwLLAllocColor(handle->lowlevel, 255, 239, 213); - if(strcmp(color, "PapayaWhip") == 0) return MwLLAllocColor(handle->lowlevel, 255, 239, 213); - if(strcmp(color, "blanched almond") == 0) return MwLLAllocColor(handle->lowlevel, 255, 235, 205); - if(strcmp(color, "BlanchedAlmond") == 0) return MwLLAllocColor(handle->lowlevel, 255, 235, 205); - if(strcmp(color, "bisque") == 0) return MwLLAllocColor(handle->lowlevel, 255, 228, 196); - if(strcmp(color, "peach puff") == 0) return MwLLAllocColor(handle->lowlevel, 255, 218, 185); - if(strcmp(color, "PeachPuff") == 0) return MwLLAllocColor(handle->lowlevel, 255, 218, 185); - if(strcmp(color, "navajo white") == 0) return MwLLAllocColor(handle->lowlevel, 255, 222, 173); - if(strcmp(color, "NavajoWhite") == 0) return MwLLAllocColor(handle->lowlevel, 255, 222, 173); - if(strcmp(color, "moccasin") == 0) return MwLLAllocColor(handle->lowlevel, 255, 228, 181); - if(strcmp(color, "cornsilk") == 0) return MwLLAllocColor(handle->lowlevel, 255, 248, 220); - if(strcmp(color, "ivory") == 0) return MwLLAllocColor(handle->lowlevel, 255, 255, 240); - if(strcmp(color, "lemon chiffon") == 0) return MwLLAllocColor(handle->lowlevel, 255, 250, 205); - if(strcmp(color, "LemonChiffon") == 0) return MwLLAllocColor(handle->lowlevel, 255, 250, 205); - if(strcmp(color, "seashell") == 0) return MwLLAllocColor(handle->lowlevel, 255, 245, 238); - if(strcmp(color, "honeydew") == 0) return MwLLAllocColor(handle->lowlevel, 240, 255, 240); - if(strcmp(color, "mint cream") == 0) return MwLLAllocColor(handle->lowlevel, 245, 255, 250); - if(strcmp(color, "MintCream") == 0) return MwLLAllocColor(handle->lowlevel, 245, 255, 250); - if(strcmp(color, "azure") == 0) return MwLLAllocColor(handle->lowlevel, 240, 255, 255); - if(strcmp(color, "alice blue") == 0) return MwLLAllocColor(handle->lowlevel, 240, 248, 255); - if(strcmp(color, "AliceBlue") == 0) return MwLLAllocColor(handle->lowlevel, 240, 248, 255); - if(strcmp(color, "lavender") == 0) return MwLLAllocColor(handle->lowlevel, 230, 230, 250); - if(strcmp(color, "lavender blush") == 0) return MwLLAllocColor(handle->lowlevel, 255, 240, 245); - if(strcmp(color, "LavenderBlush") == 0) return MwLLAllocColor(handle->lowlevel, 255, 240, 245); - if(strcmp(color, "misty rose") == 0) return MwLLAllocColor(handle->lowlevel, 255, 228, 225); - if(strcmp(color, "MistyRose") == 0) return MwLLAllocColor(handle->lowlevel, 255, 228, 225); - if(strcmp(color, "white") == 0) return MwLLAllocColor(handle->lowlevel, 255, 255, 255); - if(strcmp(color, "black") == 0) return MwLLAllocColor(handle->lowlevel, 0, 0, 0); - if(strcmp(color, "dark slate gray") == 0) return MwLLAllocColor(handle->lowlevel, 47, 79, 79); - if(strcmp(color, "DarkSlateGray") == 0) return MwLLAllocColor(handle->lowlevel, 47, 79, 79); - if(strcmp(color, "dark slate grey") == 0) return MwLLAllocColor(handle->lowlevel, 47, 79, 79); - if(strcmp(color, "DarkSlateGrey") == 0) return MwLLAllocColor(handle->lowlevel, 47, 79, 79); - if(strcmp(color, "dim gray") == 0) return MwLLAllocColor(handle->lowlevel, 105, 105, 105); - if(strcmp(color, "DimGray") == 0) return MwLLAllocColor(handle->lowlevel, 105, 105, 105); - if(strcmp(color, "dim grey") == 0) return MwLLAllocColor(handle->lowlevel, 105, 105, 105); - if(strcmp(color, "DimGrey") == 0) return MwLLAllocColor(handle->lowlevel, 105, 105, 105); - if(strcmp(color, "slate gray") == 0) return MwLLAllocColor(handle->lowlevel, 112, 128, 144); - if(strcmp(color, "SlateGray") == 0) return MwLLAllocColor(handle->lowlevel, 112, 128, 144); - if(strcmp(color, "slate grey") == 0) return MwLLAllocColor(handle->lowlevel, 112, 128, 144); - if(strcmp(color, "SlateGrey") == 0) return MwLLAllocColor(handle->lowlevel, 112, 128, 144); - if(strcmp(color, "light slate gray") == 0) return MwLLAllocColor(handle->lowlevel, 119, 136, 153); - if(strcmp(color, "LightSlateGray") == 0) return MwLLAllocColor(handle->lowlevel, 119, 136, 153); - if(strcmp(color, "light slate grey") == 0) return MwLLAllocColor(handle->lowlevel, 119, 136, 153); - if(strcmp(color, "LightSlateGrey") == 0) return MwLLAllocColor(handle->lowlevel, 119, 136, 153); - if(strcmp(color, "gray") == 0) return MwLLAllocColor(handle->lowlevel, 190, 190, 190); - if(strcmp(color, "grey") == 0) return MwLLAllocColor(handle->lowlevel, 190, 190, 190); - if(strcmp(color, "x11 gray") == 0) return MwLLAllocColor(handle->lowlevel, 190, 190, 190); - if(strcmp(color, "X11Gray") == 0) return MwLLAllocColor(handle->lowlevel, 190, 190, 190); - if(strcmp(color, "x11 grey") == 0) return MwLLAllocColor(handle->lowlevel, 190, 190, 190); - if(strcmp(color, "X11Grey") == 0) return MwLLAllocColor(handle->lowlevel, 190, 190, 190); - if(strcmp(color, "web gray") == 0) return MwLLAllocColor(handle->lowlevel, 128, 128, 128); - if(strcmp(color, "WebGray") == 0) return MwLLAllocColor(handle->lowlevel, 128, 128, 128); - if(strcmp(color, "web grey") == 0) return MwLLAllocColor(handle->lowlevel, 128, 128, 128); - if(strcmp(color, "WebGrey") == 0) return MwLLAllocColor(handle->lowlevel, 128, 128, 128); - if(strcmp(color, "light grey") == 0) return MwLLAllocColor(handle->lowlevel, 211, 211, 211); - if(strcmp(color, "LightGrey") == 0) return MwLLAllocColor(handle->lowlevel, 211, 211, 211); - if(strcmp(color, "light gray") == 0) return MwLLAllocColor(handle->lowlevel, 211, 211, 211); - if(strcmp(color, "LightGray") == 0) return MwLLAllocColor(handle->lowlevel, 211, 211, 211); - if(strcmp(color, "midnight blue") == 0) return MwLLAllocColor(handle->lowlevel, 25, 25, 112); - if(strcmp(color, "MidnightBlue") == 0) return MwLLAllocColor(handle->lowlevel, 25, 25, 112); - if(strcmp(color, "navy") == 0) return MwLLAllocColor(handle->lowlevel, 0, 0, 128); - if(strcmp(color, "navy blue") == 0) return MwLLAllocColor(handle->lowlevel, 0, 0, 128); - if(strcmp(color, "NavyBlue") == 0) return MwLLAllocColor(handle->lowlevel, 0, 0, 128); - if(strcmp(color, "cornflower blue") == 0) return MwLLAllocColor(handle->lowlevel, 100, 149, 237); - if(strcmp(color, "CornflowerBlue") == 0) return MwLLAllocColor(handle->lowlevel, 100, 149, 237); - if(strcmp(color, "dark slate blue") == 0) return MwLLAllocColor(handle->lowlevel, 72, 61, 139); - if(strcmp(color, "DarkSlateBlue") == 0) return MwLLAllocColor(handle->lowlevel, 72, 61, 139); - if(strcmp(color, "slate blue") == 0) return MwLLAllocColor(handle->lowlevel, 106, 90, 205); - if(strcmp(color, "SlateBlue") == 0) return MwLLAllocColor(handle->lowlevel, 106, 90, 205); - if(strcmp(color, "medium slate blue") == 0) return MwLLAllocColor(handle->lowlevel, 123, 104, 238); - if(strcmp(color, "MediumSlateBlue") == 0) return MwLLAllocColor(handle->lowlevel, 123, 104, 238); - if(strcmp(color, "light slate blue") == 0) return MwLLAllocColor(handle->lowlevel, 132, 112, 255); - if(strcmp(color, "LightSlateBlue") == 0) return MwLLAllocColor(handle->lowlevel, 132, 112, 255); - if(strcmp(color, "medium blue") == 0) return MwLLAllocColor(handle->lowlevel, 0, 0, 205); - if(strcmp(color, "MediumBlue") == 0) return MwLLAllocColor(handle->lowlevel, 0, 0, 205); - if(strcmp(color, "royal blue") == 0) return MwLLAllocColor(handle->lowlevel, 65, 105, 225); - if(strcmp(color, "RoyalBlue") == 0) return MwLLAllocColor(handle->lowlevel, 65, 105, 225); - if(strcmp(color, "blue") == 0) return MwLLAllocColor(handle->lowlevel, 0, 0, 255); - if(strcmp(color, "dodger blue") == 0) return MwLLAllocColor(handle->lowlevel, 30, 144, 255); - if(strcmp(color, "DodgerBlue") == 0) return MwLLAllocColor(handle->lowlevel, 30, 144, 255); - if(strcmp(color, "deep sky blue") == 0) return MwLLAllocColor(handle->lowlevel, 0, 191, 255); - if(strcmp(color, "DeepSkyBlue") == 0) return MwLLAllocColor(handle->lowlevel, 0, 191, 255); - if(strcmp(color, "sky blue") == 0) return MwLLAllocColor(handle->lowlevel, 135, 206, 235); - if(strcmp(color, "SkyBlue") == 0) return MwLLAllocColor(handle->lowlevel, 135, 206, 235); - if(strcmp(color, "light sky blue") == 0) return MwLLAllocColor(handle->lowlevel, 135, 206, 250); - if(strcmp(color, "LightSkyBlue") == 0) return MwLLAllocColor(handle->lowlevel, 135, 206, 250); - if(strcmp(color, "steel blue") == 0) return MwLLAllocColor(handle->lowlevel, 70, 130, 180); - if(strcmp(color, "SteelBlue") == 0) return MwLLAllocColor(handle->lowlevel, 70, 130, 180); - if(strcmp(color, "light steel blue") == 0) return MwLLAllocColor(handle->lowlevel, 176, 196, 222); - if(strcmp(color, "LightSteelBlue") == 0) return MwLLAllocColor(handle->lowlevel, 176, 196, 222); - if(strcmp(color, "light blue") == 0) return MwLLAllocColor(handle->lowlevel, 173, 216, 230); - if(strcmp(color, "LightBlue") == 0) return MwLLAllocColor(handle->lowlevel, 173, 216, 230); - if(strcmp(color, "powder blue") == 0) return MwLLAllocColor(handle->lowlevel, 176, 224, 230); - if(strcmp(color, "PowderBlue") == 0) return MwLLAllocColor(handle->lowlevel, 176, 224, 230); - if(strcmp(color, "pale turquoise") == 0) return MwLLAllocColor(handle->lowlevel, 175, 238, 238); - if(strcmp(color, "PaleTurquoise") == 0) return MwLLAllocColor(handle->lowlevel, 175, 238, 238); - if(strcmp(color, "dark turquoise") == 0) return MwLLAllocColor(handle->lowlevel, 0, 206, 209); - if(strcmp(color, "DarkTurquoise") == 0) return MwLLAllocColor(handle->lowlevel, 0, 206, 209); - if(strcmp(color, "medium turquoise") == 0) return MwLLAllocColor(handle->lowlevel, 72, 209, 204); - if(strcmp(color, "MediumTurquoise") == 0) return MwLLAllocColor(handle->lowlevel, 72, 209, 204); - if(strcmp(color, "turquoise") == 0) return MwLLAllocColor(handle->lowlevel, 64, 224, 208); - if(strcmp(color, "cyan") == 0) return MwLLAllocColor(handle->lowlevel, 0, 255, 255); - if(strcmp(color, "aqua") == 0) return MwLLAllocColor(handle->lowlevel, 0, 255, 255); - if(strcmp(color, "light cyan") == 0) return MwLLAllocColor(handle->lowlevel, 224, 255, 255); - if(strcmp(color, "LightCyan") == 0) return MwLLAllocColor(handle->lowlevel, 224, 255, 255); - if(strcmp(color, "cadet blue") == 0) return MwLLAllocColor(handle->lowlevel, 95, 158, 160); - if(strcmp(color, "CadetBlue") == 0) return MwLLAllocColor(handle->lowlevel, 95, 158, 160); - if(strcmp(color, "medium aquamarine") == 0) return MwLLAllocColor(handle->lowlevel, 102, 205, 170); - if(strcmp(color, "MediumAquamarine") == 0) return MwLLAllocColor(handle->lowlevel, 102, 205, 170); - if(strcmp(color, "aquamarine") == 0) return MwLLAllocColor(handle->lowlevel, 127, 255, 212); - if(strcmp(color, "dark green") == 0) return MwLLAllocColor(handle->lowlevel, 0, 100, 0); - if(strcmp(color, "DarkGreen") == 0) return MwLLAllocColor(handle->lowlevel, 0, 100, 0); - if(strcmp(color, "dark olive green") == 0) return MwLLAllocColor(handle->lowlevel, 85, 107, 47); - if(strcmp(color, "DarkOliveGreen") == 0) return MwLLAllocColor(handle->lowlevel, 85, 107, 47); - if(strcmp(color, "dark sea green") == 0) return MwLLAllocColor(handle->lowlevel, 143, 188, 143); - if(strcmp(color, "DarkSeaGreen") == 0) return MwLLAllocColor(handle->lowlevel, 143, 188, 143); - if(strcmp(color, "sea green") == 0) return MwLLAllocColor(handle->lowlevel, 46, 139, 87); - if(strcmp(color, "SeaGreen") == 0) return MwLLAllocColor(handle->lowlevel, 46, 139, 87); - if(strcmp(color, "medium sea green") == 0) return MwLLAllocColor(handle->lowlevel, 60, 179, 113); - if(strcmp(color, "MediumSeaGreen") == 0) return MwLLAllocColor(handle->lowlevel, 60, 179, 113); - if(strcmp(color, "light sea green") == 0) return MwLLAllocColor(handle->lowlevel, 32, 178, 170); - if(strcmp(color, "LightSeaGreen") == 0) return MwLLAllocColor(handle->lowlevel, 32, 178, 170); - if(strcmp(color, "pale green") == 0) return MwLLAllocColor(handle->lowlevel, 152, 251, 152); - if(strcmp(color, "PaleGreen") == 0) return MwLLAllocColor(handle->lowlevel, 152, 251, 152); - if(strcmp(color, "spring green") == 0) return MwLLAllocColor(handle->lowlevel, 0, 255, 127); - if(strcmp(color, "SpringGreen") == 0) return MwLLAllocColor(handle->lowlevel, 0, 255, 127); - if(strcmp(color, "lawn green") == 0) return MwLLAllocColor(handle->lowlevel, 124, 252, 0); - if(strcmp(color, "LawnGreen") == 0) return MwLLAllocColor(handle->lowlevel, 124, 252, 0); - if(strcmp(color, "green") == 0) return MwLLAllocColor(handle->lowlevel, 0, 255, 0); - if(strcmp(color, "lime") == 0) return MwLLAllocColor(handle->lowlevel, 0, 255, 0); - if(strcmp(color, "x11 green") == 0) return MwLLAllocColor(handle->lowlevel, 0, 255, 0); - if(strcmp(color, "X11Green") == 0) return MwLLAllocColor(handle->lowlevel, 0, 255, 0); - if(strcmp(color, "web green") == 0) return MwLLAllocColor(handle->lowlevel, 0, 128, 0); - if(strcmp(color, "WebGreen") == 0) return MwLLAllocColor(handle->lowlevel, 0, 128, 0); - if(strcmp(color, "chartreuse") == 0) return MwLLAllocColor(handle->lowlevel, 127, 255, 0); - if(strcmp(color, "medium spring green") == 0) return MwLLAllocColor(handle->lowlevel, 0, 250, 154); - if(strcmp(color, "MediumSpringGreen") == 0) return MwLLAllocColor(handle->lowlevel, 0, 250, 154); - if(strcmp(color, "green yellow") == 0) return MwLLAllocColor(handle->lowlevel, 173, 255, 47); - if(strcmp(color, "GreenYellow") == 0) return MwLLAllocColor(handle->lowlevel, 173, 255, 47); - if(strcmp(color, "lime green") == 0) return MwLLAllocColor(handle->lowlevel, 50, 205, 50); - if(strcmp(color, "LimeGreen") == 0) return MwLLAllocColor(handle->lowlevel, 50, 205, 50); - if(strcmp(color, "yellow green") == 0) return MwLLAllocColor(handle->lowlevel, 154, 205, 50); - if(strcmp(color, "YellowGreen") == 0) return MwLLAllocColor(handle->lowlevel, 154, 205, 50); - if(strcmp(color, "forest green") == 0) return MwLLAllocColor(handle->lowlevel, 34, 139, 34); - if(strcmp(color, "ForestGreen") == 0) return MwLLAllocColor(handle->lowlevel, 34, 139, 34); - if(strcmp(color, "olive drab") == 0) return MwLLAllocColor(handle->lowlevel, 107, 142, 35); - if(strcmp(color, "OliveDrab") == 0) return MwLLAllocColor(handle->lowlevel, 107, 142, 35); - if(strcmp(color, "dark khaki") == 0) return MwLLAllocColor(handle->lowlevel, 189, 183, 107); - if(strcmp(color, "DarkKhaki") == 0) return MwLLAllocColor(handle->lowlevel, 189, 183, 107); - if(strcmp(color, "khaki") == 0) return MwLLAllocColor(handle->lowlevel, 240, 230, 140); - if(strcmp(color, "pale goldenrod") == 0) return MwLLAllocColor(handle->lowlevel, 238, 232, 170); - if(strcmp(color, "PaleGoldenrod") == 0) return MwLLAllocColor(handle->lowlevel, 238, 232, 170); - if(strcmp(color, "light goldenrod yellow") == 0) return MwLLAllocColor(handle->lowlevel, 250, 250, 210); - if(strcmp(color, "LightGoldenrodYellow") == 0) return MwLLAllocColor(handle->lowlevel, 250, 250, 210); - if(strcmp(color, "light yellow") == 0) return MwLLAllocColor(handle->lowlevel, 255, 255, 224); - if(strcmp(color, "LightYellow") == 0) return MwLLAllocColor(handle->lowlevel, 255, 255, 224); - if(strcmp(color, "yellow") == 0) return MwLLAllocColor(handle->lowlevel, 255, 255, 0); - if(strcmp(color, "gold") == 0) return MwLLAllocColor(handle->lowlevel, 255, 215, 0); - if(strcmp(color, "light goldenrod") == 0) return MwLLAllocColor(handle->lowlevel, 238, 221, 130); - if(strcmp(color, "LightGoldenrod") == 0) return MwLLAllocColor(handle->lowlevel, 238, 221, 130); - if(strcmp(color, "goldenrod") == 0) return MwLLAllocColor(handle->lowlevel, 218, 165, 32); - if(strcmp(color, "dark goldenrod") == 0) return MwLLAllocColor(handle->lowlevel, 184, 134, 11); - if(strcmp(color, "DarkGoldenrod") == 0) return MwLLAllocColor(handle->lowlevel, 184, 134, 11); - if(strcmp(color, "rosy brown") == 0) return MwLLAllocColor(handle->lowlevel, 188, 143, 143); - if(strcmp(color, "RosyBrown") == 0) return MwLLAllocColor(handle->lowlevel, 188, 143, 143); - if(strcmp(color, "indian red") == 0) return MwLLAllocColor(handle->lowlevel, 205, 92, 92); - if(strcmp(color, "IndianRed") == 0) return MwLLAllocColor(handle->lowlevel, 205, 92, 92); - if(strcmp(color, "saddle brown") == 0) return MwLLAllocColor(handle->lowlevel, 139, 69, 19); - if(strcmp(color, "SaddleBrown") == 0) return MwLLAllocColor(handle->lowlevel, 139, 69, 19); - if(strcmp(color, "sienna") == 0) return MwLLAllocColor(handle->lowlevel, 160, 82, 45); - if(strcmp(color, "peru") == 0) return MwLLAllocColor(handle->lowlevel, 205, 133, 63); - if(strcmp(color, "burlywood") == 0) return MwLLAllocColor(handle->lowlevel, 222, 184, 135); - if(strcmp(color, "beige") == 0) return MwLLAllocColor(handle->lowlevel, 245, 245, 220); - if(strcmp(color, "wheat") == 0) return MwLLAllocColor(handle->lowlevel, 245, 222, 179); - if(strcmp(color, "sandy brown") == 0) return MwLLAllocColor(handle->lowlevel, 244, 164, 96); - if(strcmp(color, "SandyBrown") == 0) return MwLLAllocColor(handle->lowlevel, 244, 164, 96); - if(strcmp(color, "tan") == 0) return MwLLAllocColor(handle->lowlevel, 210, 180, 140); - if(strcmp(color, "chocolate") == 0) return MwLLAllocColor(handle->lowlevel, 210, 105, 30); - if(strcmp(color, "firebrick") == 0) return MwLLAllocColor(handle->lowlevel, 178, 34, 34); - if(strcmp(color, "brown") == 0) return MwLLAllocColor(handle->lowlevel, 165, 42, 42); - if(strcmp(color, "dark salmon") == 0) return MwLLAllocColor(handle->lowlevel, 233, 150, 122); - if(strcmp(color, "DarkSalmon") == 0) return MwLLAllocColor(handle->lowlevel, 233, 150, 122); - if(strcmp(color, "salmon") == 0) return MwLLAllocColor(handle->lowlevel, 250, 128, 114); - if(strcmp(color, "light salmon") == 0) return MwLLAllocColor(handle->lowlevel, 255, 160, 122); - if(strcmp(color, "LightSalmon") == 0) return MwLLAllocColor(handle->lowlevel, 255, 160, 122); - if(strcmp(color, "orange") == 0) return MwLLAllocColor(handle->lowlevel, 255, 165, 0); - if(strcmp(color, "dark orange") == 0) return MwLLAllocColor(handle->lowlevel, 255, 140, 0); - if(strcmp(color, "DarkOrange") == 0) return MwLLAllocColor(handle->lowlevel, 255, 140, 0); - if(strcmp(color, "coral") == 0) return MwLLAllocColor(handle->lowlevel, 255, 127, 80); - if(strcmp(color, "light coral") == 0) return MwLLAllocColor(handle->lowlevel, 240, 128, 128); - if(strcmp(color, "LightCoral") == 0) return MwLLAllocColor(handle->lowlevel, 240, 128, 128); - if(strcmp(color, "tomato") == 0) return MwLLAllocColor(handle->lowlevel, 255, 99, 71); - if(strcmp(color, "orange red") == 0) return MwLLAllocColor(handle->lowlevel, 255, 69, 0); - if(strcmp(color, "OrangeRed") == 0) return MwLLAllocColor(handle->lowlevel, 255, 69, 0); - if(strcmp(color, "red") == 0) return MwLLAllocColor(handle->lowlevel, 255, 0, 0); - if(strcmp(color, "hot pink") == 0) return MwLLAllocColor(handle->lowlevel, 255, 105, 180); - if(strcmp(color, "HotPink") == 0) return MwLLAllocColor(handle->lowlevel, 255, 105, 180); - if(strcmp(color, "deep pink") == 0) return MwLLAllocColor(handle->lowlevel, 255, 20, 147); - if(strcmp(color, "DeepPink") == 0) return MwLLAllocColor(handle->lowlevel, 255, 20, 147); - if(strcmp(color, "pink") == 0) return MwLLAllocColor(handle->lowlevel, 255, 192, 203); - if(strcmp(color, "light pink") == 0) return MwLLAllocColor(handle->lowlevel, 255, 182, 193); - if(strcmp(color, "LightPink") == 0) return MwLLAllocColor(handle->lowlevel, 255, 182, 193); - if(strcmp(color, "pale violet red") == 0) return MwLLAllocColor(handle->lowlevel, 219, 112, 147); - if(strcmp(color, "PaleVioletRed") == 0) return MwLLAllocColor(handle->lowlevel, 219, 112, 147); - if(strcmp(color, "maroon") == 0) return MwLLAllocColor(handle->lowlevel, 176, 48, 96); - if(strcmp(color, "x11 maroon") == 0) return MwLLAllocColor(handle->lowlevel, 176, 48, 96); - if(strcmp(color, "X11Maroon") == 0) return MwLLAllocColor(handle->lowlevel, 176, 48, 96); - if(strcmp(color, "web maroon") == 0) return MwLLAllocColor(handle->lowlevel, 128, 0, 0); - if(strcmp(color, "WebMaroon") == 0) return MwLLAllocColor(handle->lowlevel, 128, 0, 0); - if(strcmp(color, "medium violet red") == 0) return MwLLAllocColor(handle->lowlevel, 199, 21, 133); - if(strcmp(color, "MediumVioletRed") == 0) return MwLLAllocColor(handle->lowlevel, 199, 21, 133); - if(strcmp(color, "violet red") == 0) return MwLLAllocColor(handle->lowlevel, 208, 32, 144); - if(strcmp(color, "VioletRed") == 0) return MwLLAllocColor(handle->lowlevel, 208, 32, 144); - if(strcmp(color, "magenta") == 0) return MwLLAllocColor(handle->lowlevel, 255, 0, 255); - if(strcmp(color, "fuchsia") == 0) return MwLLAllocColor(handle->lowlevel, 255, 0, 255); - if(strcmp(color, "violet") == 0) return MwLLAllocColor(handle->lowlevel, 238, 130, 238); - if(strcmp(color, "plum") == 0) return MwLLAllocColor(handle->lowlevel, 221, 160, 221); - if(strcmp(color, "orchid") == 0) return MwLLAllocColor(handle->lowlevel, 218, 112, 214); - if(strcmp(color, "medium orchid") == 0) return MwLLAllocColor(handle->lowlevel, 186, 85, 211); - if(strcmp(color, "MediumOrchid") == 0) return MwLLAllocColor(handle->lowlevel, 186, 85, 211); - if(strcmp(color, "dark orchid") == 0) return MwLLAllocColor(handle->lowlevel, 153, 50, 204); - if(strcmp(color, "DarkOrchid") == 0) return MwLLAllocColor(handle->lowlevel, 153, 50, 204); - if(strcmp(color, "dark violet") == 0) return MwLLAllocColor(handle->lowlevel, 148, 0, 211); - if(strcmp(color, "DarkViolet") == 0) return MwLLAllocColor(handle->lowlevel, 148, 0, 211); - if(strcmp(color, "blue violet") == 0) return MwLLAllocColor(handle->lowlevel, 138, 43, 226); - if(strcmp(color, "BlueViolet") == 0) return MwLLAllocColor(handle->lowlevel, 138, 43, 226); - if(strcmp(color, "purple") == 0) return MwLLAllocColor(handle->lowlevel, 160, 32, 240); - if(strcmp(color, "x11 purple") == 0) return MwLLAllocColor(handle->lowlevel, 160, 32, 240); - if(strcmp(color, "X11Purple") == 0) return MwLLAllocColor(handle->lowlevel, 160, 32, 240); - if(strcmp(color, "web purple") == 0) return MwLLAllocColor(handle->lowlevel, 128, 0, 128); - if(strcmp(color, "WebPurple") == 0) return MwLLAllocColor(handle->lowlevel, 128, 0, 128); - if(strcmp(color, "medium purple") == 0) return MwLLAllocColor(handle->lowlevel, 147, 112, 219); - if(strcmp(color, "MediumPurple") == 0) return MwLLAllocColor(handle->lowlevel, 147, 112, 219); - if(strcmp(color, "thistle") == 0) return MwLLAllocColor(handle->lowlevel, 216, 191, 216); - if(strcmp(color, "snow1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 250, 250); - if(strcmp(color, "snow2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 233, 233); - if(strcmp(color, "snow3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 201, 201); - if(strcmp(color, "snow4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 137, 137); - if(strcmp(color, "seashell1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 245, 238); - if(strcmp(color, "seashell2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 229, 222); - if(strcmp(color, "seashell3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 197, 191); - if(strcmp(color, "seashell4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 134, 130); - if(strcmp(color, "AntiqueWhite1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 239, 219); - if(strcmp(color, "AntiqueWhite2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 223, 204); - if(strcmp(color, "AntiqueWhite3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 192, 176); - if(strcmp(color, "AntiqueWhite4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 131, 120); - if(strcmp(color, "bisque1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 228, 196); - if(strcmp(color, "bisque2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 213, 183); - if(strcmp(color, "bisque3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 183, 158); - if(strcmp(color, "bisque4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 125, 107); - if(strcmp(color, "PeachPuff1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 218, 185); - if(strcmp(color, "PeachPuff2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 203, 173); - if(strcmp(color, "PeachPuff3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 175, 149); - if(strcmp(color, "PeachPuff4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 119, 101); - if(strcmp(color, "NavajoWhite1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 222, 173); - if(strcmp(color, "NavajoWhite2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 207, 161); - if(strcmp(color, "NavajoWhite3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 179, 139); - if(strcmp(color, "NavajoWhite4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 121, 94); - if(strcmp(color, "LemonChiffon1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 250, 205); - if(strcmp(color, "LemonChiffon2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 233, 191); - if(strcmp(color, "LemonChiffon3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 201, 165); - if(strcmp(color, "LemonChiffon4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 137, 112); - if(strcmp(color, "cornsilk1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 248, 220); - if(strcmp(color, "cornsilk2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 232, 205); - if(strcmp(color, "cornsilk3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 200, 177); - if(strcmp(color, "cornsilk4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 136, 120); - if(strcmp(color, "ivory1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 255, 240); - if(strcmp(color, "ivory2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 238, 224); - if(strcmp(color, "ivory3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 205, 193); - if(strcmp(color, "ivory4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 139, 131); - if(strcmp(color, "honeydew1") == 0) return MwLLAllocColor(handle->lowlevel, 240, 255, 240); - if(strcmp(color, "honeydew2") == 0) return MwLLAllocColor(handle->lowlevel, 224, 238, 224); - if(strcmp(color, "honeydew3") == 0) return MwLLAllocColor(handle->lowlevel, 193, 205, 193); - if(strcmp(color, "honeydew4") == 0) return MwLLAllocColor(handle->lowlevel, 131, 139, 131); - if(strcmp(color, "LavenderBlush1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 240, 245); - if(strcmp(color, "LavenderBlush2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 224, 229); - if(strcmp(color, "LavenderBlush3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 193, 197); - if(strcmp(color, "LavenderBlush4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 131, 134); - if(strcmp(color, "MistyRose1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 228, 225); - if(strcmp(color, "MistyRose2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 213, 210); - if(strcmp(color, "MistyRose3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 183, 181); - if(strcmp(color, "MistyRose4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 125, 123); - if(strcmp(color, "azure1") == 0) return MwLLAllocColor(handle->lowlevel, 240, 255, 255); - if(strcmp(color, "azure2") == 0) return MwLLAllocColor(handle->lowlevel, 224, 238, 238); - if(strcmp(color, "azure3") == 0) return MwLLAllocColor(handle->lowlevel, 193, 205, 205); - if(strcmp(color, "azure4") == 0) return MwLLAllocColor(handle->lowlevel, 131, 139, 139); - if(strcmp(color, "SlateBlue1") == 0) return MwLLAllocColor(handle->lowlevel, 131, 111, 255); - if(strcmp(color, "SlateBlue2") == 0) return MwLLAllocColor(handle->lowlevel, 122, 103, 238); - if(strcmp(color, "SlateBlue3") == 0) return MwLLAllocColor(handle->lowlevel, 105, 89, 205); - if(strcmp(color, "SlateBlue4") == 0) return MwLLAllocColor(handle->lowlevel, 71, 60, 139); - if(strcmp(color, "RoyalBlue1") == 0) return MwLLAllocColor(handle->lowlevel, 72, 118, 255); - if(strcmp(color, "RoyalBlue2") == 0) return MwLLAllocColor(handle->lowlevel, 67, 110, 238); - if(strcmp(color, "RoyalBlue3") == 0) return MwLLAllocColor(handle->lowlevel, 58, 95, 205); - if(strcmp(color, "RoyalBlue4") == 0) return MwLLAllocColor(handle->lowlevel, 39, 64, 139); - if(strcmp(color, "blue1") == 0) return MwLLAllocColor(handle->lowlevel, 0, 0, 255); - if(strcmp(color, "blue2") == 0) return MwLLAllocColor(handle->lowlevel, 0, 0, 238); - if(strcmp(color, "blue3") == 0) return MwLLAllocColor(handle->lowlevel, 0, 0, 205); - if(strcmp(color, "blue4") == 0) return MwLLAllocColor(handle->lowlevel, 0, 0, 139); - if(strcmp(color, "DodgerBlue1") == 0) return MwLLAllocColor(handle->lowlevel, 30, 144, 255); - if(strcmp(color, "DodgerBlue2") == 0) return MwLLAllocColor(handle->lowlevel, 28, 134, 238); - if(strcmp(color, "DodgerBlue3") == 0) return MwLLAllocColor(handle->lowlevel, 24, 116, 205); - if(strcmp(color, "DodgerBlue4") == 0) return MwLLAllocColor(handle->lowlevel, 16, 78, 139); - if(strcmp(color, "SteelBlue1") == 0) return MwLLAllocColor(handle->lowlevel, 99, 184, 255); - if(strcmp(color, "SteelBlue2") == 0) return MwLLAllocColor(handle->lowlevel, 92, 172, 238); - if(strcmp(color, "SteelBlue3") == 0) return MwLLAllocColor(handle->lowlevel, 79, 148, 205); - if(strcmp(color, "SteelBlue4") == 0) return MwLLAllocColor(handle->lowlevel, 54, 100, 139); - if(strcmp(color, "DeepSkyBlue1") == 0) return MwLLAllocColor(handle->lowlevel, 0, 191, 255); - if(strcmp(color, "DeepSkyBlue2") == 0) return MwLLAllocColor(handle->lowlevel, 0, 178, 238); - if(strcmp(color, "DeepSkyBlue3") == 0) return MwLLAllocColor(handle->lowlevel, 0, 154, 205); - if(strcmp(color, "DeepSkyBlue4") == 0) return MwLLAllocColor(handle->lowlevel, 0, 104, 139); - if(strcmp(color, "SkyBlue1") == 0) return MwLLAllocColor(handle->lowlevel, 135, 206, 255); - if(strcmp(color, "SkyBlue2") == 0) return MwLLAllocColor(handle->lowlevel, 126, 192, 238); - if(strcmp(color, "SkyBlue3") == 0) return MwLLAllocColor(handle->lowlevel, 108, 166, 205); - if(strcmp(color, "SkyBlue4") == 0) return MwLLAllocColor(handle->lowlevel, 74, 112, 139); - if(strcmp(color, "LightSkyBlue1") == 0) return MwLLAllocColor(handle->lowlevel, 176, 226, 255); - if(strcmp(color, "LightSkyBlue2") == 0) return MwLLAllocColor(handle->lowlevel, 164, 211, 238); - if(strcmp(color, "LightSkyBlue3") == 0) return MwLLAllocColor(handle->lowlevel, 141, 182, 205); - if(strcmp(color, "LightSkyBlue4") == 0) return MwLLAllocColor(handle->lowlevel, 96, 123, 139); - if(strcmp(color, "SlateGray1") == 0) return MwLLAllocColor(handle->lowlevel, 198, 226, 255); - if(strcmp(color, "SlateGray2") == 0) return MwLLAllocColor(handle->lowlevel, 185, 211, 238); - if(strcmp(color, "SlateGray3") == 0) return MwLLAllocColor(handle->lowlevel, 159, 182, 205); - if(strcmp(color, "SlateGray4") == 0) return MwLLAllocColor(handle->lowlevel, 108, 123, 139); - if(strcmp(color, "LightSteelBlue1") == 0) return MwLLAllocColor(handle->lowlevel, 202, 225, 255); - if(strcmp(color, "LightSteelBlue2") == 0) return MwLLAllocColor(handle->lowlevel, 188, 210, 238); - if(strcmp(color, "LightSteelBlue3") == 0) return MwLLAllocColor(handle->lowlevel, 162, 181, 205); - if(strcmp(color, "LightSteelBlue4") == 0) return MwLLAllocColor(handle->lowlevel, 110, 123, 139); - if(strcmp(color, "LightBlue1") == 0) return MwLLAllocColor(handle->lowlevel, 191, 239, 255); - if(strcmp(color, "LightBlue2") == 0) return MwLLAllocColor(handle->lowlevel, 178, 223, 238); - if(strcmp(color, "LightBlue3") == 0) return MwLLAllocColor(handle->lowlevel, 154, 192, 205); - if(strcmp(color, "LightBlue4") == 0) return MwLLAllocColor(handle->lowlevel, 104, 131, 139); - if(strcmp(color, "LightCyan1") == 0) return MwLLAllocColor(handle->lowlevel, 224, 255, 255); - if(strcmp(color, "LightCyan2") == 0) return MwLLAllocColor(handle->lowlevel, 209, 238, 238); - if(strcmp(color, "LightCyan3") == 0) return MwLLAllocColor(handle->lowlevel, 180, 205, 205); - if(strcmp(color, "LightCyan4") == 0) return MwLLAllocColor(handle->lowlevel, 122, 139, 139); - if(strcmp(color, "PaleTurquoise1") == 0) return MwLLAllocColor(handle->lowlevel, 187, 255, 255); - if(strcmp(color, "PaleTurquoise2") == 0) return MwLLAllocColor(handle->lowlevel, 174, 238, 238); - if(strcmp(color, "PaleTurquoise3") == 0) return MwLLAllocColor(handle->lowlevel, 150, 205, 205); - if(strcmp(color, "PaleTurquoise4") == 0) return MwLLAllocColor(handle->lowlevel, 102, 139, 139); - if(strcmp(color, "CadetBlue1") == 0) return MwLLAllocColor(handle->lowlevel, 152, 245, 255); - if(strcmp(color, "CadetBlue2") == 0) return MwLLAllocColor(handle->lowlevel, 142, 229, 238); - if(strcmp(color, "CadetBlue3") == 0) return MwLLAllocColor(handle->lowlevel, 122, 197, 205); - if(strcmp(color, "CadetBlue4") == 0) return MwLLAllocColor(handle->lowlevel, 83, 134, 139); - if(strcmp(color, "turquoise1") == 0) return MwLLAllocColor(handle->lowlevel, 0, 245, 255); - if(strcmp(color, "turquoise2") == 0) return MwLLAllocColor(handle->lowlevel, 0, 229, 238); - if(strcmp(color, "turquoise3") == 0) return MwLLAllocColor(handle->lowlevel, 0, 197, 205); - if(strcmp(color, "turquoise4") == 0) return MwLLAllocColor(handle->lowlevel, 0, 134, 139); - if(strcmp(color, "cyan1") == 0) return MwLLAllocColor(handle->lowlevel, 0, 255, 255); - if(strcmp(color, "cyan2") == 0) return MwLLAllocColor(handle->lowlevel, 0, 238, 238); - if(strcmp(color, "cyan3") == 0) return MwLLAllocColor(handle->lowlevel, 0, 205, 205); - if(strcmp(color, "cyan4") == 0) return MwLLAllocColor(handle->lowlevel, 0, 139, 139); - if(strcmp(color, "DarkSlateGray1") == 0) return MwLLAllocColor(handle->lowlevel, 151, 255, 255); - if(strcmp(color, "DarkSlateGray2") == 0) return MwLLAllocColor(handle->lowlevel, 141, 238, 238); - if(strcmp(color, "DarkSlateGray3") == 0) return MwLLAllocColor(handle->lowlevel, 121, 205, 205); - if(strcmp(color, "DarkSlateGray4") == 0) return MwLLAllocColor(handle->lowlevel, 82, 139, 139); - if(strcmp(color, "aquamarine1") == 0) return MwLLAllocColor(handle->lowlevel, 127, 255, 212); - if(strcmp(color, "aquamarine2") == 0) return MwLLAllocColor(handle->lowlevel, 118, 238, 198); - if(strcmp(color, "aquamarine3") == 0) return MwLLAllocColor(handle->lowlevel, 102, 205, 170); - if(strcmp(color, "aquamarine4") == 0) return MwLLAllocColor(handle->lowlevel, 69, 139, 116); - if(strcmp(color, "DarkSeaGreen1") == 0) return MwLLAllocColor(handle->lowlevel, 193, 255, 193); - if(strcmp(color, "DarkSeaGreen2") == 0) return MwLLAllocColor(handle->lowlevel, 180, 238, 180); - if(strcmp(color, "DarkSeaGreen3") == 0) return MwLLAllocColor(handle->lowlevel, 155, 205, 155); - if(strcmp(color, "DarkSeaGreen4") == 0) return MwLLAllocColor(handle->lowlevel, 105, 139, 105); - if(strcmp(color, "SeaGreen1") == 0) return MwLLAllocColor(handle->lowlevel, 84, 255, 159); - if(strcmp(color, "SeaGreen2") == 0) return MwLLAllocColor(handle->lowlevel, 78, 238, 148); - if(strcmp(color, "SeaGreen3") == 0) return MwLLAllocColor(handle->lowlevel, 67, 205, 128); - if(strcmp(color, "SeaGreen4") == 0) return MwLLAllocColor(handle->lowlevel, 46, 139, 87); - if(strcmp(color, "PaleGreen1") == 0) return MwLLAllocColor(handle->lowlevel, 154, 255, 154); - if(strcmp(color, "PaleGreen2") == 0) return MwLLAllocColor(handle->lowlevel, 144, 238, 144); - if(strcmp(color, "PaleGreen3") == 0) return MwLLAllocColor(handle->lowlevel, 124, 205, 124); - if(strcmp(color, "PaleGreen4") == 0) return MwLLAllocColor(handle->lowlevel, 84, 139, 84); - if(strcmp(color, "SpringGreen1") == 0) return MwLLAllocColor(handle->lowlevel, 0, 255, 127); - if(strcmp(color, "SpringGreen2") == 0) return MwLLAllocColor(handle->lowlevel, 0, 238, 118); - if(strcmp(color, "SpringGreen3") == 0) return MwLLAllocColor(handle->lowlevel, 0, 205, 102); - if(strcmp(color, "SpringGreen4") == 0) return MwLLAllocColor(handle->lowlevel, 0, 139, 69); - if(strcmp(color, "green1") == 0) return MwLLAllocColor(handle->lowlevel, 0, 255, 0); - if(strcmp(color, "green2") == 0) return MwLLAllocColor(handle->lowlevel, 0, 238, 0); - if(strcmp(color, "green3") == 0) return MwLLAllocColor(handle->lowlevel, 0, 205, 0); - if(strcmp(color, "green4") == 0) return MwLLAllocColor(handle->lowlevel, 0, 139, 0); - if(strcmp(color, "chartreuse1") == 0) return MwLLAllocColor(handle->lowlevel, 127, 255, 0); - if(strcmp(color, "chartreuse2") == 0) return MwLLAllocColor(handle->lowlevel, 118, 238, 0); - if(strcmp(color, "chartreuse3") == 0) return MwLLAllocColor(handle->lowlevel, 102, 205, 0); - if(strcmp(color, "chartreuse4") == 0) return MwLLAllocColor(handle->lowlevel, 69, 139, 0); - if(strcmp(color, "OliveDrab1") == 0) return MwLLAllocColor(handle->lowlevel, 192, 255, 62); - if(strcmp(color, "OliveDrab2") == 0) return MwLLAllocColor(handle->lowlevel, 179, 238, 58); - if(strcmp(color, "OliveDrab3") == 0) return MwLLAllocColor(handle->lowlevel, 154, 205, 50); - if(strcmp(color, "OliveDrab4") == 0) return MwLLAllocColor(handle->lowlevel, 105, 139, 34); - if(strcmp(color, "DarkOliveGreen1") == 0) return MwLLAllocColor(handle->lowlevel, 202, 255, 112); - if(strcmp(color, "DarkOliveGreen2") == 0) return MwLLAllocColor(handle->lowlevel, 188, 238, 104); - if(strcmp(color, "DarkOliveGreen3") == 0) return MwLLAllocColor(handle->lowlevel, 162, 205, 90); - if(strcmp(color, "DarkOliveGreen4") == 0) return MwLLAllocColor(handle->lowlevel, 110, 139, 61); - if(strcmp(color, "khaki1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 246, 143); - if(strcmp(color, "khaki2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 230, 133); - if(strcmp(color, "khaki3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 198, 115); - if(strcmp(color, "khaki4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 134, 78); - if(strcmp(color, "LightGoldenrod1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 236, 139); - if(strcmp(color, "LightGoldenrod2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 220, 130); - if(strcmp(color, "LightGoldenrod3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 190, 112); - if(strcmp(color, "LightGoldenrod4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 129, 76); - if(strcmp(color, "LightYellow1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 255, 224); - if(strcmp(color, "LightYellow2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 238, 209); - if(strcmp(color, "LightYellow3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 205, 180); - if(strcmp(color, "LightYellow4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 139, 122); - if(strcmp(color, "yellow1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 255, 0); - if(strcmp(color, "yellow2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 238, 0); - if(strcmp(color, "yellow3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 205, 0); - if(strcmp(color, "yellow4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 139, 0); - if(strcmp(color, "gold1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 215, 0); - if(strcmp(color, "gold2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 201, 0); - if(strcmp(color, "gold3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 173, 0); - if(strcmp(color, "gold4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 117, 0); - if(strcmp(color, "goldenrod1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 193, 37); - if(strcmp(color, "goldenrod2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 180, 34); - if(strcmp(color, "goldenrod3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 155, 29); - if(strcmp(color, "goldenrod4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 105, 20); - if(strcmp(color, "DarkGoldenrod1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 185, 15); - if(strcmp(color, "DarkGoldenrod2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 173, 14); - if(strcmp(color, "DarkGoldenrod3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 149, 12); - if(strcmp(color, "DarkGoldenrod4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 101, 8); - if(strcmp(color, "RosyBrown1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 193, 193); - if(strcmp(color, "RosyBrown2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 180, 180); - if(strcmp(color, "RosyBrown3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 155, 155); - if(strcmp(color, "RosyBrown4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 105, 105); - if(strcmp(color, "IndianRed1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 106, 106); - if(strcmp(color, "IndianRed2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 99, 99); - if(strcmp(color, "IndianRed3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 85, 85); - if(strcmp(color, "IndianRed4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 58, 58); - if(strcmp(color, "sienna1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 130, 71); - if(strcmp(color, "sienna2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 121, 66); - if(strcmp(color, "sienna3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 104, 57); - if(strcmp(color, "sienna4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 71, 38); - if(strcmp(color, "burlywood1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 211, 155); - if(strcmp(color, "burlywood2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 197, 145); - if(strcmp(color, "burlywood3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 170, 125); - if(strcmp(color, "burlywood4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 115, 85); - if(strcmp(color, "wheat1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 231, 186); - if(strcmp(color, "wheat2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 216, 174); - if(strcmp(color, "wheat3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 186, 150); - if(strcmp(color, "wheat4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 126, 102); - if(strcmp(color, "tan1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 165, 79); - if(strcmp(color, "tan2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 154, 73); - if(strcmp(color, "tan3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 133, 63); - if(strcmp(color, "tan4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 90, 43); - if(strcmp(color, "chocolate1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 127, 36); - if(strcmp(color, "chocolate2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 118, 33); - if(strcmp(color, "chocolate3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 102, 29); - if(strcmp(color, "chocolate4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 69, 19); - if(strcmp(color, "firebrick1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 48, 48); - if(strcmp(color, "firebrick2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 44, 44); - if(strcmp(color, "firebrick3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 38, 38); - if(strcmp(color, "firebrick4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 26, 26); - if(strcmp(color, "brown1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 64, 64); - if(strcmp(color, "brown2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 59, 59); - if(strcmp(color, "brown3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 51, 51); - if(strcmp(color, "brown4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 35, 35); - if(strcmp(color, "salmon1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 140, 105); - if(strcmp(color, "salmon2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 130, 98); - if(strcmp(color, "salmon3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 112, 84); - if(strcmp(color, "salmon4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 76, 57); - if(strcmp(color, "LightSalmon1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 160, 122); - if(strcmp(color, "LightSalmon2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 149, 114); - if(strcmp(color, "LightSalmon3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 129, 98); - if(strcmp(color, "LightSalmon4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 87, 66); - if(strcmp(color, "orange1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 165, 0); - if(strcmp(color, "orange2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 154, 0); - if(strcmp(color, "orange3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 133, 0); - if(strcmp(color, "orange4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 90, 0); - if(strcmp(color, "DarkOrange1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 127, 0); - if(strcmp(color, "DarkOrange2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 118, 0); - if(strcmp(color, "DarkOrange3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 102, 0); - if(strcmp(color, "DarkOrange4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 69, 0); - if(strcmp(color, "coral1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 114, 86); - if(strcmp(color, "coral2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 106, 80); - if(strcmp(color, "coral3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 91, 69); - if(strcmp(color, "coral4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 62, 47); - if(strcmp(color, "tomato1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 99, 71); - if(strcmp(color, "tomato2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 92, 66); - if(strcmp(color, "tomato3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 79, 57); - if(strcmp(color, "tomato4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 54, 38); - if(strcmp(color, "OrangeRed1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 69, 0); - if(strcmp(color, "OrangeRed2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 64, 0); - if(strcmp(color, "OrangeRed3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 55, 0); - if(strcmp(color, "OrangeRed4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 37, 0); - if(strcmp(color, "red1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 0, 0); - if(strcmp(color, "red2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 0, 0); - if(strcmp(color, "red3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 0, 0); - if(strcmp(color, "red4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 0, 0); - if(strcmp(color, "DeepPink1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 20, 147); - if(strcmp(color, "DeepPink2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 18, 137); - if(strcmp(color, "DeepPink3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 16, 118); - if(strcmp(color, "DeepPink4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 10, 80); - if(strcmp(color, "HotPink1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 110, 180); - if(strcmp(color, "HotPink2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 106, 167); - if(strcmp(color, "HotPink3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 96, 144); - if(strcmp(color, "HotPink4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 58, 98); - if(strcmp(color, "pink1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 181, 197); - if(strcmp(color, "pink2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 169, 184); - if(strcmp(color, "pink3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 145, 158); - if(strcmp(color, "pink4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 99, 108); - if(strcmp(color, "LightPink1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 174, 185); - if(strcmp(color, "LightPink2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 162, 173); - if(strcmp(color, "LightPink3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 140, 149); - if(strcmp(color, "LightPink4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 95, 101); - if(strcmp(color, "PaleVioletRed1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 130, 171); - if(strcmp(color, "PaleVioletRed2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 121, 159); - if(strcmp(color, "PaleVioletRed3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 104, 137); - if(strcmp(color, "PaleVioletRed4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 71, 93); - if(strcmp(color, "maroon1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 52, 179); - if(strcmp(color, "maroon2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 48, 167); - if(strcmp(color, "maroon3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 41, 144); - if(strcmp(color, "maroon4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 28, 98); - if(strcmp(color, "VioletRed1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 62, 150); - if(strcmp(color, "VioletRed2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 58, 140); - if(strcmp(color, "VioletRed3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 50, 120); - if(strcmp(color, "VioletRed4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 34, 82); - if(strcmp(color, "magenta1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 0, 255); - if(strcmp(color, "magenta2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 0, 238); - if(strcmp(color, "magenta3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 0, 205); - if(strcmp(color, "magenta4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 0, 139); - if(strcmp(color, "orchid1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 131, 250); - if(strcmp(color, "orchid2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 122, 233); - if(strcmp(color, "orchid3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 105, 201); - if(strcmp(color, "orchid4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 71, 137); - if(strcmp(color, "plum1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 187, 255); - if(strcmp(color, "plum2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 174, 238); - if(strcmp(color, "plum3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 150, 205); - if(strcmp(color, "plum4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 102, 139); - if(strcmp(color, "MediumOrchid1") == 0) return MwLLAllocColor(handle->lowlevel, 224, 102, 255); - if(strcmp(color, "MediumOrchid2") == 0) return MwLLAllocColor(handle->lowlevel, 209, 95, 238); - if(strcmp(color, "MediumOrchid3") == 0) return MwLLAllocColor(handle->lowlevel, 180, 82, 205); - if(strcmp(color, "MediumOrchid4") == 0) return MwLLAllocColor(handle->lowlevel, 122, 55, 139); - if(strcmp(color, "DarkOrchid1") == 0) return MwLLAllocColor(handle->lowlevel, 191, 62, 255); - if(strcmp(color, "DarkOrchid2") == 0) return MwLLAllocColor(handle->lowlevel, 178, 58, 238); - if(strcmp(color, "DarkOrchid3") == 0) return MwLLAllocColor(handle->lowlevel, 154, 50, 205); - if(strcmp(color, "DarkOrchid4") == 0) return MwLLAllocColor(handle->lowlevel, 104, 34, 139); - if(strcmp(color, "purple1") == 0) return MwLLAllocColor(handle->lowlevel, 155, 48, 255); - if(strcmp(color, "purple2") == 0) return MwLLAllocColor(handle->lowlevel, 145, 44, 238); - if(strcmp(color, "purple3") == 0) return MwLLAllocColor(handle->lowlevel, 125, 38, 205); - if(strcmp(color, "purple4") == 0) return MwLLAllocColor(handle->lowlevel, 85, 26, 139); - if(strcmp(color, "MediumPurple1") == 0) return MwLLAllocColor(handle->lowlevel, 171, 130, 255); - if(strcmp(color, "MediumPurple2") == 0) return MwLLAllocColor(handle->lowlevel, 159, 121, 238); - if(strcmp(color, "MediumPurple3") == 0) return MwLLAllocColor(handle->lowlevel, 137, 104, 205); - if(strcmp(color, "MediumPurple4") == 0) return MwLLAllocColor(handle->lowlevel, 93, 71, 139); - if(strcmp(color, "thistle1") == 0) return MwLLAllocColor(handle->lowlevel, 255, 225, 255); - if(strcmp(color, "thistle2") == 0) return MwLLAllocColor(handle->lowlevel, 238, 210, 238); - if(strcmp(color, "thistle3") == 0) return MwLLAllocColor(handle->lowlevel, 205, 181, 205); - if(strcmp(color, "thistle4") == 0) return MwLLAllocColor(handle->lowlevel, 139, 123, 139); - if(strcmp(color, "gray0") == 0) return MwLLAllocColor(handle->lowlevel, 0, 0, 0); - if(strcmp(color, "grey0") == 0) return MwLLAllocColor(handle->lowlevel, 0, 0, 0); - if(strcmp(color, "gray1") == 0) return MwLLAllocColor(handle->lowlevel, 3, 3, 3); - if(strcmp(color, "grey1") == 0) return MwLLAllocColor(handle->lowlevel, 3, 3, 3); - if(strcmp(color, "gray2") == 0) return MwLLAllocColor(handle->lowlevel, 5, 5, 5); - if(strcmp(color, "grey2") == 0) return MwLLAllocColor(handle->lowlevel, 5, 5, 5); - if(strcmp(color, "gray3") == 0) return MwLLAllocColor(handle->lowlevel, 8, 8, 8); - if(strcmp(color, "grey3") == 0) return MwLLAllocColor(handle->lowlevel, 8, 8, 8); - if(strcmp(color, "gray4") == 0) return MwLLAllocColor(handle->lowlevel, 10, 10, 10); - if(strcmp(color, "grey4") == 0) return MwLLAllocColor(handle->lowlevel, 10, 10, 10); - if(strcmp(color, "gray5") == 0) return MwLLAllocColor(handle->lowlevel, 13, 13, 13); - if(strcmp(color, "grey5") == 0) return MwLLAllocColor(handle->lowlevel, 13, 13, 13); - if(strcmp(color, "gray6") == 0) return MwLLAllocColor(handle->lowlevel, 15, 15, 15); - if(strcmp(color, "grey6") == 0) return MwLLAllocColor(handle->lowlevel, 15, 15, 15); - if(strcmp(color, "gray7") == 0) return MwLLAllocColor(handle->lowlevel, 18, 18, 18); - if(strcmp(color, "grey7") == 0) return MwLLAllocColor(handle->lowlevel, 18, 18, 18); - if(strcmp(color, "gray8") == 0) return MwLLAllocColor(handle->lowlevel, 20, 20, 20); - if(strcmp(color, "grey8") == 0) return MwLLAllocColor(handle->lowlevel, 20, 20, 20); - if(strcmp(color, "gray9") == 0) return MwLLAllocColor(handle->lowlevel, 23, 23, 23); - if(strcmp(color, "grey9") == 0) return MwLLAllocColor(handle->lowlevel, 23, 23, 23); - if(strcmp(color, "gray10") == 0) return MwLLAllocColor(handle->lowlevel, 26, 26, 26); - if(strcmp(color, "grey10") == 0) return MwLLAllocColor(handle->lowlevel, 26, 26, 26); - if(strcmp(color, "gray11") == 0) return MwLLAllocColor(handle->lowlevel, 28, 28, 28); - if(strcmp(color, "grey11") == 0) return MwLLAllocColor(handle->lowlevel, 28, 28, 28); - if(strcmp(color, "gray12") == 0) return MwLLAllocColor(handle->lowlevel, 31, 31, 31); - if(strcmp(color, "grey12") == 0) return MwLLAllocColor(handle->lowlevel, 31, 31, 31); - if(strcmp(color, "gray13") == 0) return MwLLAllocColor(handle->lowlevel, 33, 33, 33); - if(strcmp(color, "grey13") == 0) return MwLLAllocColor(handle->lowlevel, 33, 33, 33); - if(strcmp(color, "gray14") == 0) return MwLLAllocColor(handle->lowlevel, 36, 36, 36); - if(strcmp(color, "grey14") == 0) return MwLLAllocColor(handle->lowlevel, 36, 36, 36); - if(strcmp(color, "gray15") == 0) return MwLLAllocColor(handle->lowlevel, 38, 38, 38); - if(strcmp(color, "grey15") == 0) return MwLLAllocColor(handle->lowlevel, 38, 38, 38); - if(strcmp(color, "gray16") == 0) return MwLLAllocColor(handle->lowlevel, 41, 41, 41); - if(strcmp(color, "grey16") == 0) return MwLLAllocColor(handle->lowlevel, 41, 41, 41); - if(strcmp(color, "gray17") == 0) return MwLLAllocColor(handle->lowlevel, 43, 43, 43); - if(strcmp(color, "grey17") == 0) return MwLLAllocColor(handle->lowlevel, 43, 43, 43); - if(strcmp(color, "gray18") == 0) return MwLLAllocColor(handle->lowlevel, 46, 46, 46); - if(strcmp(color, "grey18") == 0) return MwLLAllocColor(handle->lowlevel, 46, 46, 46); - if(strcmp(color, "gray19") == 0) return MwLLAllocColor(handle->lowlevel, 48, 48, 48); - if(strcmp(color, "grey19") == 0) return MwLLAllocColor(handle->lowlevel, 48, 48, 48); - if(strcmp(color, "gray20") == 0) return MwLLAllocColor(handle->lowlevel, 51, 51, 51); - if(strcmp(color, "grey20") == 0) return MwLLAllocColor(handle->lowlevel, 51, 51, 51); - if(strcmp(color, "gray21") == 0) return MwLLAllocColor(handle->lowlevel, 54, 54, 54); - if(strcmp(color, "grey21") == 0) return MwLLAllocColor(handle->lowlevel, 54, 54, 54); - if(strcmp(color, "gray22") == 0) return MwLLAllocColor(handle->lowlevel, 56, 56, 56); - if(strcmp(color, "grey22") == 0) return MwLLAllocColor(handle->lowlevel, 56, 56, 56); - if(strcmp(color, "gray23") == 0) return MwLLAllocColor(handle->lowlevel, 59, 59, 59); - if(strcmp(color, "grey23") == 0) return MwLLAllocColor(handle->lowlevel, 59, 59, 59); - if(strcmp(color, "gray24") == 0) return MwLLAllocColor(handle->lowlevel, 61, 61, 61); - if(strcmp(color, "grey24") == 0) return MwLLAllocColor(handle->lowlevel, 61, 61, 61); - if(strcmp(color, "gray25") == 0) return MwLLAllocColor(handle->lowlevel, 64, 64, 64); - if(strcmp(color, "grey25") == 0) return MwLLAllocColor(handle->lowlevel, 64, 64, 64); - if(strcmp(color, "gray26") == 0) return MwLLAllocColor(handle->lowlevel, 66, 66, 66); - if(strcmp(color, "grey26") == 0) return MwLLAllocColor(handle->lowlevel, 66, 66, 66); - if(strcmp(color, "gray27") == 0) return MwLLAllocColor(handle->lowlevel, 69, 69, 69); - if(strcmp(color, "grey27") == 0) return MwLLAllocColor(handle->lowlevel, 69, 69, 69); - if(strcmp(color, "gray28") == 0) return MwLLAllocColor(handle->lowlevel, 71, 71, 71); - if(strcmp(color, "grey28") == 0) return MwLLAllocColor(handle->lowlevel, 71, 71, 71); - if(strcmp(color, "gray29") == 0) return MwLLAllocColor(handle->lowlevel, 74, 74, 74); - if(strcmp(color, "grey29") == 0) return MwLLAllocColor(handle->lowlevel, 74, 74, 74); - if(strcmp(color, "gray30") == 0) return MwLLAllocColor(handle->lowlevel, 77, 77, 77); - if(strcmp(color, "grey30") == 0) return MwLLAllocColor(handle->lowlevel, 77, 77, 77); - if(strcmp(color, "gray31") == 0) return MwLLAllocColor(handle->lowlevel, 79, 79, 79); - if(strcmp(color, "grey31") == 0) return MwLLAllocColor(handle->lowlevel, 79, 79, 79); - if(strcmp(color, "gray32") == 0) return MwLLAllocColor(handle->lowlevel, 82, 82, 82); - if(strcmp(color, "grey32") == 0) return MwLLAllocColor(handle->lowlevel, 82, 82, 82); - if(strcmp(color, "gray33") == 0) return MwLLAllocColor(handle->lowlevel, 84, 84, 84); - if(strcmp(color, "grey33") == 0) return MwLLAllocColor(handle->lowlevel, 84, 84, 84); - if(strcmp(color, "gray34") == 0) return MwLLAllocColor(handle->lowlevel, 87, 87, 87); - if(strcmp(color, "grey34") == 0) return MwLLAllocColor(handle->lowlevel, 87, 87, 87); - if(strcmp(color, "gray35") == 0) return MwLLAllocColor(handle->lowlevel, 89, 89, 89); - if(strcmp(color, "grey35") == 0) return MwLLAllocColor(handle->lowlevel, 89, 89, 89); - if(strcmp(color, "gray36") == 0) return MwLLAllocColor(handle->lowlevel, 92, 92, 92); - if(strcmp(color, "grey36") == 0) return MwLLAllocColor(handle->lowlevel, 92, 92, 92); - if(strcmp(color, "gray37") == 0) return MwLLAllocColor(handle->lowlevel, 94, 94, 94); - if(strcmp(color, "grey37") == 0) return MwLLAllocColor(handle->lowlevel, 94, 94, 94); - if(strcmp(color, "gray38") == 0) return MwLLAllocColor(handle->lowlevel, 97, 97, 97); - if(strcmp(color, "grey38") == 0) return MwLLAllocColor(handle->lowlevel, 97, 97, 97); - if(strcmp(color, "gray39") == 0) return MwLLAllocColor(handle->lowlevel, 99, 99, 99); - if(strcmp(color, "grey39") == 0) return MwLLAllocColor(handle->lowlevel, 99, 99, 99); - if(strcmp(color, "gray40") == 0) return MwLLAllocColor(handle->lowlevel, 102, 102, 102); - if(strcmp(color, "grey40") == 0) return MwLLAllocColor(handle->lowlevel, 102, 102, 102); - if(strcmp(color, "gray41") == 0) return MwLLAllocColor(handle->lowlevel, 105, 105, 105); - if(strcmp(color, "grey41") == 0) return MwLLAllocColor(handle->lowlevel, 105, 105, 105); - if(strcmp(color, "gray42") == 0) return MwLLAllocColor(handle->lowlevel, 107, 107, 107); - if(strcmp(color, "grey42") == 0) return MwLLAllocColor(handle->lowlevel, 107, 107, 107); - if(strcmp(color, "gray43") == 0) return MwLLAllocColor(handle->lowlevel, 110, 110, 110); - if(strcmp(color, "grey43") == 0) return MwLLAllocColor(handle->lowlevel, 110, 110, 110); - if(strcmp(color, "gray44") == 0) return MwLLAllocColor(handle->lowlevel, 112, 112, 112); - if(strcmp(color, "grey44") == 0) return MwLLAllocColor(handle->lowlevel, 112, 112, 112); - if(strcmp(color, "gray45") == 0) return MwLLAllocColor(handle->lowlevel, 115, 115, 115); - if(strcmp(color, "grey45") == 0) return MwLLAllocColor(handle->lowlevel, 115, 115, 115); - if(strcmp(color, "gray46") == 0) return MwLLAllocColor(handle->lowlevel, 117, 117, 117); - if(strcmp(color, "grey46") == 0) return MwLLAllocColor(handle->lowlevel, 117, 117, 117); - if(strcmp(color, "gray47") == 0) return MwLLAllocColor(handle->lowlevel, 120, 120, 120); - if(strcmp(color, "grey47") == 0) return MwLLAllocColor(handle->lowlevel, 120, 120, 120); - if(strcmp(color, "gray48") == 0) return MwLLAllocColor(handle->lowlevel, 122, 122, 122); - if(strcmp(color, "grey48") == 0) return MwLLAllocColor(handle->lowlevel, 122, 122, 122); - if(strcmp(color, "gray49") == 0) return MwLLAllocColor(handle->lowlevel, 125, 125, 125); - if(strcmp(color, "grey49") == 0) return MwLLAllocColor(handle->lowlevel, 125, 125, 125); - if(strcmp(color, "gray50") == 0) return MwLLAllocColor(handle->lowlevel, 127, 127, 127); - if(strcmp(color, "grey50") == 0) return MwLLAllocColor(handle->lowlevel, 127, 127, 127); - if(strcmp(color, "gray51") == 0) return MwLLAllocColor(handle->lowlevel, 130, 130, 130); - if(strcmp(color, "grey51") == 0) return MwLLAllocColor(handle->lowlevel, 130, 130, 130); - if(strcmp(color, "gray52") == 0) return MwLLAllocColor(handle->lowlevel, 133, 133, 133); - if(strcmp(color, "grey52") == 0) return MwLLAllocColor(handle->lowlevel, 133, 133, 133); - if(strcmp(color, "gray53") == 0) return MwLLAllocColor(handle->lowlevel, 135, 135, 135); - if(strcmp(color, "grey53") == 0) return MwLLAllocColor(handle->lowlevel, 135, 135, 135); - if(strcmp(color, "gray54") == 0) return MwLLAllocColor(handle->lowlevel, 138, 138, 138); - if(strcmp(color, "grey54") == 0) return MwLLAllocColor(handle->lowlevel, 138, 138, 138); - if(strcmp(color, "gray55") == 0) return MwLLAllocColor(handle->lowlevel, 140, 140, 140); - if(strcmp(color, "grey55") == 0) return MwLLAllocColor(handle->lowlevel, 140, 140, 140); - if(strcmp(color, "gray56") == 0) return MwLLAllocColor(handle->lowlevel, 143, 143, 143); - if(strcmp(color, "grey56") == 0) return MwLLAllocColor(handle->lowlevel, 143, 143, 143); - if(strcmp(color, "gray57") == 0) return MwLLAllocColor(handle->lowlevel, 145, 145, 145); - if(strcmp(color, "grey57") == 0) return MwLLAllocColor(handle->lowlevel, 145, 145, 145); - if(strcmp(color, "gray58") == 0) return MwLLAllocColor(handle->lowlevel, 148, 148, 148); - if(strcmp(color, "grey58") == 0) return MwLLAllocColor(handle->lowlevel, 148, 148, 148); - if(strcmp(color, "gray59") == 0) return MwLLAllocColor(handle->lowlevel, 150, 150, 150); - if(strcmp(color, "grey59") == 0) return MwLLAllocColor(handle->lowlevel, 150, 150, 150); - if(strcmp(color, "gray60") == 0) return MwLLAllocColor(handle->lowlevel, 153, 153, 153); - if(strcmp(color, "grey60") == 0) return MwLLAllocColor(handle->lowlevel, 153, 153, 153); - if(strcmp(color, "gray61") == 0) return MwLLAllocColor(handle->lowlevel, 156, 156, 156); - if(strcmp(color, "grey61") == 0) return MwLLAllocColor(handle->lowlevel, 156, 156, 156); - if(strcmp(color, "gray62") == 0) return MwLLAllocColor(handle->lowlevel, 158, 158, 158); - if(strcmp(color, "grey62") == 0) return MwLLAllocColor(handle->lowlevel, 158, 158, 158); - if(strcmp(color, "gray63") == 0) return MwLLAllocColor(handle->lowlevel, 161, 161, 161); - if(strcmp(color, "grey63") == 0) return MwLLAllocColor(handle->lowlevel, 161, 161, 161); - if(strcmp(color, "gray64") == 0) return MwLLAllocColor(handle->lowlevel, 163, 163, 163); - if(strcmp(color, "grey64") == 0) return MwLLAllocColor(handle->lowlevel, 163, 163, 163); - if(strcmp(color, "gray65") == 0) return MwLLAllocColor(handle->lowlevel, 166, 166, 166); - if(strcmp(color, "grey65") == 0) return MwLLAllocColor(handle->lowlevel, 166, 166, 166); - if(strcmp(color, "gray66") == 0) return MwLLAllocColor(handle->lowlevel, 168, 168, 168); - if(strcmp(color, "grey66") == 0) return MwLLAllocColor(handle->lowlevel, 168, 168, 168); - if(strcmp(color, "gray67") == 0) return MwLLAllocColor(handle->lowlevel, 171, 171, 171); - if(strcmp(color, "grey67") == 0) return MwLLAllocColor(handle->lowlevel, 171, 171, 171); - if(strcmp(color, "gray68") == 0) return MwLLAllocColor(handle->lowlevel, 173, 173, 173); - if(strcmp(color, "grey68") == 0) return MwLLAllocColor(handle->lowlevel, 173, 173, 173); - if(strcmp(color, "gray69") == 0) return MwLLAllocColor(handle->lowlevel, 176, 176, 176); - if(strcmp(color, "grey69") == 0) return MwLLAllocColor(handle->lowlevel, 176, 176, 176); - if(strcmp(color, "gray70") == 0) return MwLLAllocColor(handle->lowlevel, 179, 179, 179); - if(strcmp(color, "grey70") == 0) return MwLLAllocColor(handle->lowlevel, 179, 179, 179); - if(strcmp(color, "gray71") == 0) return MwLLAllocColor(handle->lowlevel, 181, 181, 181); - if(strcmp(color, "grey71") == 0) return MwLLAllocColor(handle->lowlevel, 181, 181, 181); - if(strcmp(color, "gray72") == 0) return MwLLAllocColor(handle->lowlevel, 184, 184, 184); - if(strcmp(color, "grey72") == 0) return MwLLAllocColor(handle->lowlevel, 184, 184, 184); - if(strcmp(color, "gray73") == 0) return MwLLAllocColor(handle->lowlevel, 186, 186, 186); - if(strcmp(color, "grey73") == 0) return MwLLAllocColor(handle->lowlevel, 186, 186, 186); - if(strcmp(color, "gray74") == 0) return MwLLAllocColor(handle->lowlevel, 189, 189, 189); - if(strcmp(color, "grey74") == 0) return MwLLAllocColor(handle->lowlevel, 189, 189, 189); - if(strcmp(color, "gray75") == 0) return MwLLAllocColor(handle->lowlevel, 191, 191, 191); - if(strcmp(color, "grey75") == 0) return MwLLAllocColor(handle->lowlevel, 191, 191, 191); - if(strcmp(color, "gray76") == 0) return MwLLAllocColor(handle->lowlevel, 194, 194, 194); - if(strcmp(color, "grey76") == 0) return MwLLAllocColor(handle->lowlevel, 194, 194, 194); - if(strcmp(color, "gray77") == 0) return MwLLAllocColor(handle->lowlevel, 196, 196, 196); - if(strcmp(color, "grey77") == 0) return MwLLAllocColor(handle->lowlevel, 196, 196, 196); - if(strcmp(color, "gray78") == 0) return MwLLAllocColor(handle->lowlevel, 199, 199, 199); - if(strcmp(color, "grey78") == 0) return MwLLAllocColor(handle->lowlevel, 199, 199, 199); - if(strcmp(color, "gray79") == 0) return MwLLAllocColor(handle->lowlevel, 201, 201, 201); - if(strcmp(color, "grey79") == 0) return MwLLAllocColor(handle->lowlevel, 201, 201, 201); - if(strcmp(color, "gray80") == 0) return MwLLAllocColor(handle->lowlevel, 204, 204, 204); - if(strcmp(color, "grey80") == 0) return MwLLAllocColor(handle->lowlevel, 204, 204, 204); - if(strcmp(color, "gray81") == 0) return MwLLAllocColor(handle->lowlevel, 207, 207, 207); - if(strcmp(color, "grey81") == 0) return MwLLAllocColor(handle->lowlevel, 207, 207, 207); - if(strcmp(color, "gray82") == 0) return MwLLAllocColor(handle->lowlevel, 209, 209, 209); - if(strcmp(color, "grey82") == 0) return MwLLAllocColor(handle->lowlevel, 209, 209, 209); - if(strcmp(color, "gray83") == 0) return MwLLAllocColor(handle->lowlevel, 212, 212, 212); - if(strcmp(color, "grey83") == 0) return MwLLAllocColor(handle->lowlevel, 212, 212, 212); - if(strcmp(color, "gray84") == 0) return MwLLAllocColor(handle->lowlevel, 214, 214, 214); - if(strcmp(color, "grey84") == 0) return MwLLAllocColor(handle->lowlevel, 214, 214, 214); - if(strcmp(color, "gray85") == 0) return MwLLAllocColor(handle->lowlevel, 217, 217, 217); - if(strcmp(color, "grey85") == 0) return MwLLAllocColor(handle->lowlevel, 217, 217, 217); - if(strcmp(color, "gray86") == 0) return MwLLAllocColor(handle->lowlevel, 219, 219, 219); - if(strcmp(color, "grey86") == 0) return MwLLAllocColor(handle->lowlevel, 219, 219, 219); - if(strcmp(color, "gray87") == 0) return MwLLAllocColor(handle->lowlevel, 222, 222, 222); - if(strcmp(color, "grey87") == 0) return MwLLAllocColor(handle->lowlevel, 222, 222, 222); - if(strcmp(color, "gray88") == 0) return MwLLAllocColor(handle->lowlevel, 224, 224, 224); - if(strcmp(color, "grey88") == 0) return MwLLAllocColor(handle->lowlevel, 224, 224, 224); - if(strcmp(color, "gray89") == 0) return MwLLAllocColor(handle->lowlevel, 227, 227, 227); - if(strcmp(color, "grey89") == 0) return MwLLAllocColor(handle->lowlevel, 227, 227, 227); - if(strcmp(color, "gray90") == 0) return MwLLAllocColor(handle->lowlevel, 229, 229, 229); - if(strcmp(color, "grey90") == 0) return MwLLAllocColor(handle->lowlevel, 229, 229, 229); - if(strcmp(color, "gray91") == 0) return MwLLAllocColor(handle->lowlevel, 232, 232, 232); - if(strcmp(color, "grey91") == 0) return MwLLAllocColor(handle->lowlevel, 232, 232, 232); - if(strcmp(color, "gray92") == 0) return MwLLAllocColor(handle->lowlevel, 235, 235, 235); - if(strcmp(color, "grey92") == 0) return MwLLAllocColor(handle->lowlevel, 235, 235, 235); - if(strcmp(color, "gray93") == 0) return MwLLAllocColor(handle->lowlevel, 237, 237, 237); - if(strcmp(color, "grey93") == 0) return MwLLAllocColor(handle->lowlevel, 237, 237, 237); - if(strcmp(color, "gray94") == 0) return MwLLAllocColor(handle->lowlevel, 240, 240, 240); - if(strcmp(color, "grey94") == 0) return MwLLAllocColor(handle->lowlevel, 240, 240, 240); - if(strcmp(color, "gray95") == 0) return MwLLAllocColor(handle->lowlevel, 242, 242, 242); - if(strcmp(color, "grey95") == 0) return MwLLAllocColor(handle->lowlevel, 242, 242, 242); - if(strcmp(color, "gray96") == 0) return MwLLAllocColor(handle->lowlevel, 245, 245, 245); - if(strcmp(color, "grey96") == 0) return MwLLAllocColor(handle->lowlevel, 245, 245, 245); - if(strcmp(color, "gray97") == 0) return MwLLAllocColor(handle->lowlevel, 247, 247, 247); - if(strcmp(color, "grey97") == 0) return MwLLAllocColor(handle->lowlevel, 247, 247, 247); - if(strcmp(color, "gray98") == 0) return MwLLAllocColor(handle->lowlevel, 250, 250, 250); - if(strcmp(color, "grey98") == 0) return MwLLAllocColor(handle->lowlevel, 250, 250, 250); - if(strcmp(color, "gray99") == 0) return MwLLAllocColor(handle->lowlevel, 252, 252, 252); - if(strcmp(color, "grey99") == 0) return MwLLAllocColor(handle->lowlevel, 252, 252, 252); - if(strcmp(color, "gray100") == 0) return MwLLAllocColor(handle->lowlevel, 255, 255, 255); - if(strcmp(color, "grey100") == 0) return MwLLAllocColor(handle->lowlevel, 255, 255, 255); - if(strcmp(color, "dark grey") == 0) return MwLLAllocColor(handle->lowlevel, 169, 169, 169); - if(strcmp(color, "DarkGrey") == 0) return MwLLAllocColor(handle->lowlevel, 169, 169, 169); - if(strcmp(color, "dark gray") == 0) return MwLLAllocColor(handle->lowlevel, 169, 169, 169); - if(strcmp(color, "DarkGray") == 0) return MwLLAllocColor(handle->lowlevel, 169, 169, 169); - if(strcmp(color, "dark blue") == 0) return MwLLAllocColor(handle->lowlevel, 0, 0, 139); - if(strcmp(color, "DarkBlue") == 0) return MwLLAllocColor(handle->lowlevel, 0, 0, 139); - if(strcmp(color, "dark cyan") == 0) return MwLLAllocColor(handle->lowlevel, 0, 139, 139); - if(strcmp(color, "DarkCyan") == 0) return MwLLAllocColor(handle->lowlevel, 0, 139, 139); - if(strcmp(color, "dark magenta") == 0) return MwLLAllocColor(handle->lowlevel, 139, 0, 139); - if(strcmp(color, "DarkMagenta") == 0) return MwLLAllocColor(handle->lowlevel, 139, 0, 139); - if(strcmp(color, "dark red") == 0) return MwLLAllocColor(handle->lowlevel, 139, 0, 0); - if(strcmp(color, "DarkRed") == 0) return MwLLAllocColor(handle->lowlevel, 139, 0, 0); - if(strcmp(color, "light green") == 0) return MwLLAllocColor(handle->lowlevel, 144, 238, 144); - if(strcmp(color, "LightGreen") == 0) return MwLLAllocColor(handle->lowlevel, 144, 238, 144); - if(strcmp(color, "crimson") == 0) return MwLLAllocColor(handle->lowlevel, 220, 20, 60); - if(strcmp(color, "indigo") == 0) return MwLLAllocColor(handle->lowlevel, 75, 0, 130); - if(strcmp(color, "olive") == 0) return MwLLAllocColor(handle->lowlevel, 128, 128, 0); - if(strcmp(color, "rebecca purple") == 0) return MwLLAllocColor(handle->lowlevel, 102, 51, 153); - if(strcmp(color, "RebeccaPurple") == 0) return MwLLAllocColor(handle->lowlevel, 102, 51, 153); - if(strcmp(color, "silver") == 0) return MwLLAllocColor(handle->lowlevel, 192, 192, 192); - if(strcmp(color, "teal") == 0) return MwLLAllocColor(handle->lowlevel, 0, 128, 128); - return MwLLAllocColor(handle->lowlevel, 0, 0, 0); + MwRGB rgb; + MwParseColorNameNoAllocate(color, &rgb); + return MwLLAllocColor(handle->lowlevel, rgb.red, rgb.green, rgb.blue); +} + +void MwParseColorNameNoAllocate(const char* color, MwRGB* rgb) { + if(strcmp(color, "snow") == 0) { + rgb->red = 255; + rgb->green = 250; + rgb->green = 250; + return; + } + if(strcmp(color, "ghost white") == 0) { + rgb->red = 248; + rgb->green = 248; + rgb->green = 255; + return; + } + if(strcmp(color, "GhostWhite") == 0) { + rgb->red = 248; + rgb->green = 248; + rgb->green = 255; + return; + } + if(strcmp(color, "white smoke") == 0) { + rgb->red = 245; + rgb->green = 245; + rgb->green = 245; + return; + } + if(strcmp(color, "WhiteSmoke") == 0) { + rgb->red = 245; + rgb->green = 245; + rgb->green = 245; + return; + } + if(strcmp(color, "gainsboro") == 0) { + rgb->red = 220; + rgb->green = 220; + rgb->green = 220; + return; + } + if(strcmp(color, "floral white") == 0) { + rgb->red = 255; + rgb->green = 250; + rgb->green = 240; + return; + } + if(strcmp(color, "FloralWhite") == 0) { + rgb->red = 255; + rgb->green = 250; + rgb->green = 240; + return; + } + if(strcmp(color, "old lace") == 0) { + rgb->red = 253; + rgb->green = 245; + rgb->green = 230; + return; + } + if(strcmp(color, "OldLace") == 0) { + rgb->red = 253; + rgb->green = 245; + rgb->green = 230; + return; + } + if(strcmp(color, "linen") == 0) { + rgb->red = 250; + rgb->green = 240; + rgb->green = 230; + return; + } + if(strcmp(color, "antique white") == 0) { + rgb->red = 250; + rgb->green = 235; + rgb->green = 215; + return; + } + if(strcmp(color, "AntiqueWhite") == 0) { + rgb->red = 250; + rgb->green = 235; + rgb->green = 215; + return; + } + if(strcmp(color, "papaya whip") == 0) { + rgb->red = 255; + rgb->green = 239; + rgb->green = 213; + return; + } + if(strcmp(color, "PapayaWhip") == 0) { + rgb->red = 255; + rgb->green = 239; + rgb->green = 213; + return; + } + if(strcmp(color, "blanched almond") == 0) { + rgb->red = 255; + rgb->green = 235; + rgb->green = 205; + return; + } + if(strcmp(color, "BlanchedAlmond") == 0) { + rgb->red = 255; + rgb->green = 235; + rgb->green = 205; + return; + } + if(strcmp(color, "bisque") == 0) { + rgb->red = 255; + rgb->green = 228; + rgb->green = 196; + return; + } + if(strcmp(color, "peach puff") == 0) { + rgb->red = 255; + rgb->green = 218; + rgb->green = 185; + return; + } + if(strcmp(color, "PeachPuff") == 0) { + rgb->red = 255; + rgb->green = 218; + rgb->green = 185; + return; + } + if(strcmp(color, "navajo white") == 0) { + rgb->red = 255; + rgb->green = 222; + rgb->green = 173; + return; + } + if(strcmp(color, "NavajoWhite") == 0) { + rgb->red = 255; + rgb->green = 222; + rgb->green = 173; + return; + } + if(strcmp(color, "moccasin") == 0) { + rgb->red = 255; + rgb->green = 228; + rgb->green = 181; + return; + } + if(strcmp(color, "cornsilk") == 0) { + rgb->red = 255; + rgb->green = 248; + rgb->green = 220; + return; + } + if(strcmp(color, "ivory") == 0) { + rgb->red = 255; + rgb->green = 255; + rgb->green = 240; + return; + } + if(strcmp(color, "lemon chiffon") == 0) { + rgb->red = 255; + rgb->green = 250; + rgb->green = 205; + return; + } + if(strcmp(color, "LemonChiffon") == 0) { + rgb->red = 255; + rgb->green = 250; + rgb->green = 205; + return; + } + if(strcmp(color, "seashell") == 0) { + rgb->red = 255; + rgb->green = 245; + rgb->green = 238; + return; + } + if(strcmp(color, "honeydew") == 0) { + rgb->red = 240; + rgb->green = 255; + rgb->green = 240; + return; + } + if(strcmp(color, "mint cream") == 0) { + rgb->red = 245; + rgb->green = 255; + rgb->green = 250; + return; + } + if(strcmp(color, "MintCream") == 0) { + rgb->red = 245; + rgb->green = 255; + rgb->green = 250; + return; + } + if(strcmp(color, "azure") == 0) { + rgb->red = 240; + rgb->green = 255; + rgb->green = 255; + return; + } + if(strcmp(color, "alice blue") == 0) { + rgb->red = 240; + rgb->green = 248; + rgb->green = 255; + return; + } + if(strcmp(color, "AliceBlue") == 0) { + rgb->red = 240; + rgb->green = 248; + rgb->green = 255; + return; + } + if(strcmp(color, "lavender") == 0) { + rgb->red = 230; + rgb->green = 230; + rgb->green = 250; + return; + } + if(strcmp(color, "lavender blush") == 0) { + rgb->red = 255; + rgb->green = 240; + rgb->green = 245; + return; + } + if(strcmp(color, "LavenderBlush") == 0) { + rgb->red = 255; + rgb->green = 240; + rgb->green = 245; + return; + } + if(strcmp(color, "misty rose") == 0) { + rgb->red = 255; + rgb->green = 228; + rgb->green = 225; + return; + } + if(strcmp(color, "MistyRose") == 0) { + rgb->red = 255; + rgb->green = 228; + rgb->green = 225; + return; + } + if(strcmp(color, "white") == 0) { + rgb->red = 255; + rgb->green = 255; + rgb->green = 255; + return; + } + if(strcmp(color, "black") == 0) { + rgb->red = 0; + rgb->green = 0; + rgb->green = 0; + return; + } + if(strcmp(color, "dark slate gray") == 0) { + rgb->red = 47; + rgb->green = 79; + rgb->green = 79; + return; + } + if(strcmp(color, "DarkSlateGray") == 0) { + rgb->red = 47; + rgb->green = 79; + rgb->green = 79; + return; + } + if(strcmp(color, "dark slate grey") == 0) { + rgb->red = 47; + rgb->green = 79; + rgb->green = 79; + return; + } + if(strcmp(color, "DarkSlateGrey") == 0) { + rgb->red = 47; + rgb->green = 79; + rgb->green = 79; + return; + } + if(strcmp(color, "dim gray") == 0) { + rgb->red = 105; + rgb->green = 105; + rgb->green = 105; + return; + } + if(strcmp(color, "DimGray") == 0) { + rgb->red = 105; + rgb->green = 105; + rgb->green = 105; + return; + } + if(strcmp(color, "dim grey") == 0) { + rgb->red = 105; + rgb->green = 105; + rgb->green = 105; + return; + } + if(strcmp(color, "DimGrey") == 0) { + rgb->red = 105; + rgb->green = 105; + rgb->green = 105; + return; + } + if(strcmp(color, "slate gray") == 0) { + rgb->red = 112; + rgb->green = 128; + rgb->green = 144; + return; + } + if(strcmp(color, "SlateGray") == 0) { + rgb->red = 112; + rgb->green = 128; + rgb->green = 144; + return; + } + if(strcmp(color, "slate grey") == 0) { + rgb->red = 112; + rgb->green = 128; + rgb->green = 144; + return; + } + if(strcmp(color, "SlateGrey") == 0) { + rgb->red = 112; + rgb->green = 128; + rgb->green = 144; + return; + } + if(strcmp(color, "light slate gray") == 0) { + rgb->red = 119; + rgb->green = 136; + rgb->green = 153; + return; + } + if(strcmp(color, "LightSlateGray") == 0) { + rgb->red = 119; + rgb->green = 136; + rgb->green = 153; + return; + } + if(strcmp(color, "light slate grey") == 0) { + rgb->red = 119; + rgb->green = 136; + rgb->green = 153; + return; + } + if(strcmp(color, "LightSlateGrey") == 0) { + rgb->red = 119; + rgb->green = 136; + rgb->green = 153; + return; + } + if(strcmp(color, "gray") == 0) { + rgb->red = 190; + rgb->green = 190; + rgb->green = 190; + return; + } + if(strcmp(color, "grey") == 0) { + rgb->red = 190; + rgb->green = 190; + rgb->green = 190; + return; + } + if(strcmp(color, "x11 gray") == 0) { + rgb->red = 190; + rgb->green = 190; + rgb->green = 190; + return; + } + if(strcmp(color, "X11Gray") == 0) { + rgb->red = 190; + rgb->green = 190; + rgb->green = 190; + return; + } + if(strcmp(color, "x11 grey") == 0) { + rgb->red = 190; + rgb->green = 190; + rgb->green = 190; + return; + } + if(strcmp(color, "X11Grey") == 0) { + rgb->red = 190; + rgb->green = 190; + rgb->green = 190; + return; + } + if(strcmp(color, "web gray") == 0) { + rgb->red = 128; + rgb->green = 128; + rgb->green = 128; + return; + } + if(strcmp(color, "WebGray") == 0) { + rgb->red = 128; + rgb->green = 128; + rgb->green = 128; + return; + } + if(strcmp(color, "web grey") == 0) { + rgb->red = 128; + rgb->green = 128; + rgb->green = 128; + return; + } + if(strcmp(color, "WebGrey") == 0) { + rgb->red = 128; + rgb->green = 128; + rgb->green = 128; + return; + } + if(strcmp(color, "light grey") == 0) { + rgb->red = 211; + rgb->green = 211; + rgb->green = 211; + return; + } + if(strcmp(color, "LightGrey") == 0) { + rgb->red = 211; + rgb->green = 211; + rgb->green = 211; + return; + } + if(strcmp(color, "light gray") == 0) { + rgb->red = 211; + rgb->green = 211; + rgb->green = 211; + return; + } + if(strcmp(color, "LightGray") == 0) { + rgb->red = 211; + rgb->green = 211; + rgb->green = 211; + return; + } + if(strcmp(color, "midnight blue") == 0) { + rgb->red = 25; + rgb->green = 25; + rgb->green = 112; + return; + } + if(strcmp(color, "MidnightBlue") == 0) { + rgb->red = 25; + rgb->green = 25; + rgb->green = 112; + return; + } + if(strcmp(color, "navy") == 0) { + rgb->red = 0; + rgb->green = 0; + rgb->green = 128; + return; + } + if(strcmp(color, "navy blue") == 0) { + rgb->red = 0; + rgb->green = 0; + rgb->green = 128; + return; + } + if(strcmp(color, "NavyBlue") == 0) { + rgb->red = 0; + rgb->green = 0; + rgb->green = 128; + return; + } + if(strcmp(color, "cornflower blue") == 0) { + rgb->red = 100; + rgb->green = 149; + rgb->green = 237; + return; + } + if(strcmp(color, "CornflowerBlue") == 0) { + rgb->red = 100; + rgb->green = 149; + rgb->green = 237; + return; + } + if(strcmp(color, "dark slate blue") == 0) { + rgb->red = 72; + rgb->green = 61; + rgb->green = 139; + return; + } + if(strcmp(color, "DarkSlateBlue") == 0) { + rgb->red = 72; + rgb->green = 61; + rgb->green = 139; + return; + } + if(strcmp(color, "slate blue") == 0) { + rgb->red = 106; + rgb->green = 90; + rgb->green = 205; + return; + } + if(strcmp(color, "SlateBlue") == 0) { + rgb->red = 106; + rgb->green = 90; + rgb->green = 205; + return; + } + if(strcmp(color, "medium slate blue") == 0) { + rgb->red = 123; + rgb->green = 104; + rgb->green = 238; + return; + } + if(strcmp(color, "MediumSlateBlue") == 0) { + rgb->red = 123; + rgb->green = 104; + rgb->green = 238; + return; + } + if(strcmp(color, "light slate blue") == 0) { + rgb->red = 132; + rgb->green = 112; + rgb->green = 255; + return; + } + if(strcmp(color, "LightSlateBlue") == 0) { + rgb->red = 132; + rgb->green = 112; + rgb->green = 255; + return; + } + if(strcmp(color, "medium blue") == 0) { + rgb->red = 0; + rgb->green = 0; + rgb->green = 205; + return; + } + if(strcmp(color, "MediumBlue") == 0) { + rgb->red = 0; + rgb->green = 0; + rgb->green = 205; + return; + } + if(strcmp(color, "royal blue") == 0) { + rgb->red = 65; + rgb->green = 105; + rgb->green = 225; + return; + } + if(strcmp(color, "RoyalBlue") == 0) { + rgb->red = 65; + rgb->green = 105; + rgb->green = 225; + return; + } + if(strcmp(color, "blue") == 0) { + rgb->red = 0; + rgb->green = 0; + rgb->green = 255; + return; + } + if(strcmp(color, "dodger blue") == 0) { + rgb->red = 30; + rgb->green = 144; + rgb->green = 255; + return; + } + if(strcmp(color, "DodgerBlue") == 0) { + rgb->red = 30; + rgb->green = 144; + rgb->green = 255; + return; + } + if(strcmp(color, "deep sky blue") == 0) { + rgb->red = 0; + rgb->green = 191; + rgb->green = 255; + return; + } + if(strcmp(color, "DeepSkyBlue") == 0) { + rgb->red = 0; + rgb->green = 191; + rgb->green = 255; + return; + } + if(strcmp(color, "sky blue") == 0) { + rgb->red = 135; + rgb->green = 206; + rgb->green = 235; + return; + } + if(strcmp(color, "SkyBlue") == 0) { + rgb->red = 135; + rgb->green = 206; + rgb->green = 235; + return; + } + if(strcmp(color, "light sky blue") == 0) { + rgb->red = 135; + rgb->green = 206; + rgb->green = 250; + return; + } + if(strcmp(color, "LightSkyBlue") == 0) { + rgb->red = 135; + rgb->green = 206; + rgb->green = 250; + return; + } + if(strcmp(color, "steel blue") == 0) { + rgb->red = 70; + rgb->green = 130; + rgb->green = 180; + return; + } + if(strcmp(color, "SteelBlue") == 0) { + rgb->red = 70; + rgb->green = 130; + rgb->green = 180; + return; + } + if(strcmp(color, "light steel blue") == 0) { + rgb->red = 176; + rgb->green = 196; + rgb->green = 222; + return; + } + if(strcmp(color, "LightSteelBlue") == 0) { + rgb->red = 176; + rgb->green = 196; + rgb->green = 222; + return; + } + if(strcmp(color, "light blue") == 0) { + rgb->red = 173; + rgb->green = 216; + rgb->green = 230; + return; + } + if(strcmp(color, "LightBlue") == 0) { + rgb->red = 173; + rgb->green = 216; + rgb->green = 230; + return; + } + if(strcmp(color, "powder blue") == 0) { + rgb->red = 176; + rgb->green = 224; + rgb->green = 230; + return; + } + if(strcmp(color, "PowderBlue") == 0) { + rgb->red = 176; + rgb->green = 224; + rgb->green = 230; + return; + } + if(strcmp(color, "pale turquoise") == 0) { + rgb->red = 175; + rgb->green = 238; + rgb->green = 238; + return; + } + if(strcmp(color, "PaleTurquoise") == 0) { + rgb->red = 175; + rgb->green = 238; + rgb->green = 238; + return; + } + if(strcmp(color, "dark turquoise") == 0) { + rgb->red = 0; + rgb->green = 206; + rgb->green = 209; + return; + } + if(strcmp(color, "DarkTurquoise") == 0) { + rgb->red = 0; + rgb->green = 206; + rgb->green = 209; + return; + } + if(strcmp(color, "medium turquoise") == 0) { + rgb->red = 72; + rgb->green = 209; + rgb->green = 204; + return; + } + if(strcmp(color, "MediumTurquoise") == 0) { + rgb->red = 72; + rgb->green = 209; + rgb->green = 204; + return; + } + if(strcmp(color, "turquoise") == 0) { + rgb->red = 64; + rgb->green = 224; + rgb->green = 208; + return; + } + if(strcmp(color, "cyan") == 0) { + rgb->red = 0; + rgb->green = 255; + rgb->green = 255; + return; + } + if(strcmp(color, "aqua") == 0) { + rgb->red = 0; + rgb->green = 255; + rgb->green = 255; + return; + } + if(strcmp(color, "light cyan") == 0) { + rgb->red = 224; + rgb->green = 255; + rgb->green = 255; + return; + } + if(strcmp(color, "LightCyan") == 0) { + rgb->red = 224; + rgb->green = 255; + rgb->green = 255; + return; + } + if(strcmp(color, "cadet blue") == 0) { + rgb->red = 95; + rgb->green = 158; + rgb->green = 160; + return; + } + if(strcmp(color, "CadetBlue") == 0) { + rgb->red = 95; + rgb->green = 158; + rgb->green = 160; + return; + } + if(strcmp(color, "medium aquamarine") == 0) { + rgb->red = 102; + rgb->green = 205; + rgb->green = 170; + return; + } + if(strcmp(color, "MediumAquamarine") == 0) { + rgb->red = 102; + rgb->green = 205; + rgb->green = 170; + return; + } + if(strcmp(color, "aquamarine") == 0) { + rgb->red = 127; + rgb->green = 255; + rgb->green = 212; + return; + } + if(strcmp(color, "dark green") == 0) { + rgb->red = 0; + rgb->green = 100; + rgb->green = 0; + return; + } + if(strcmp(color, "DarkGreen") == 0) { + rgb->red = 0; + rgb->green = 100; + rgb->green = 0; + return; + } + if(strcmp(color, "dark olive green") == 0) { + rgb->red = 85; + rgb->green = 107; + rgb->green = 47; + return; + } + if(strcmp(color, "DarkOliveGreen") == 0) { + rgb->red = 85; + rgb->green = 107; + rgb->green = 47; + return; + } + if(strcmp(color, "dark sea green") == 0) { + rgb->red = 143; + rgb->green = 188; + rgb->green = 143; + return; + } + if(strcmp(color, "DarkSeaGreen") == 0) { + rgb->red = 143; + rgb->green = 188; + rgb->green = 143; + return; + } + if(strcmp(color, "sea green") == 0) { + rgb->red = 46; + rgb->green = 139; + rgb->green = 87; + return; + } + if(strcmp(color, "SeaGreen") == 0) { + rgb->red = 46; + rgb->green = 139; + rgb->green = 87; + return; + } + if(strcmp(color, "medium sea green") == 0) { + rgb->red = 60; + rgb->green = 179; + rgb->green = 113; + return; + } + if(strcmp(color, "MediumSeaGreen") == 0) { + rgb->red = 60; + rgb->green = 179; + rgb->green = 113; + return; + } + if(strcmp(color, "light sea green") == 0) { + rgb->red = 32; + rgb->green = 178; + rgb->green = 170; + return; + } + if(strcmp(color, "LightSeaGreen") == 0) { + rgb->red = 32; + rgb->green = 178; + rgb->green = 170; + return; + } + if(strcmp(color, "pale green") == 0) { + rgb->red = 152; + rgb->green = 251; + rgb->green = 152; + return; + } + if(strcmp(color, "PaleGreen") == 0) { + rgb->red = 152; + rgb->green = 251; + rgb->green = 152; + return; + } + if(strcmp(color, "spring green") == 0) { + rgb->red = 0; + rgb->green = 255; + rgb->green = 127; + return; + } + if(strcmp(color, "SpringGreen") == 0) { + rgb->red = 0; + rgb->green = 255; + rgb->green = 127; + return; + } + if(strcmp(color, "lawn green") == 0) { + rgb->red = 124; + rgb->green = 252; + rgb->green = 0; + return; + } + if(strcmp(color, "LawnGreen") == 0) { + rgb->red = 124; + rgb->green = 252; + rgb->green = 0; + return; + } + if(strcmp(color, "green") == 0) { + rgb->red = 0; + rgb->green = 255; + rgb->green = 0; + return; + } + if(strcmp(color, "lime") == 0) { + rgb->red = 0; + rgb->green = 255; + rgb->green = 0; + return; + } + if(strcmp(color, "x11 green") == 0) { + rgb->red = 0; + rgb->green = 255; + rgb->green = 0; + return; + } + if(strcmp(color, "X11Green") == 0) { + rgb->red = 0; + rgb->green = 255; + rgb->green = 0; + return; + } + if(strcmp(color, "web green") == 0) { + rgb->red = 0; + rgb->green = 128; + rgb->green = 0; + return; + } + if(strcmp(color, "WebGreen") == 0) { + rgb->red = 0; + rgb->green = 128; + rgb->green = 0; + return; + } + if(strcmp(color, "chartreuse") == 0) { + rgb->red = 127; + rgb->green = 255; + rgb->green = 0; + return; + } + if(strcmp(color, "medium spring green") == 0) { + rgb->red = 0; + rgb->green = 250; + rgb->green = 154; + return; + } + if(strcmp(color, "MediumSpringGreen") == 0) { + rgb->red = 0; + rgb->green = 250; + rgb->green = 154; + return; + } + if(strcmp(color, "green yellow") == 0) { + rgb->red = 173; + rgb->green = 255; + rgb->green = 47; + return; + } + if(strcmp(color, "GreenYellow") == 0) { + rgb->red = 173; + rgb->green = 255; + rgb->green = 47; + return; + } + if(strcmp(color, "lime green") == 0) { + rgb->red = 50; + rgb->green = 205; + rgb->green = 50; + return; + } + if(strcmp(color, "LimeGreen") == 0) { + rgb->red = 50; + rgb->green = 205; + rgb->green = 50; + return; + } + if(strcmp(color, "yellow green") == 0) { + rgb->red = 154; + rgb->green = 205; + rgb->green = 50; + return; + } + if(strcmp(color, "YellowGreen") == 0) { + rgb->red = 154; + rgb->green = 205; + rgb->green = 50; + return; + } + if(strcmp(color, "forest green") == 0) { + rgb->red = 34; + rgb->green = 139; + rgb->green = 34; + return; + } + if(strcmp(color, "ForestGreen") == 0) { + rgb->red = 34; + rgb->green = 139; + rgb->green = 34; + return; + } + if(strcmp(color, "olive drab") == 0) { + rgb->red = 107; + rgb->green = 142; + rgb->green = 35; + return; + } + if(strcmp(color, "OliveDrab") == 0) { + rgb->red = 107; + rgb->green = 142; + rgb->green = 35; + return; + } + if(strcmp(color, "dark khaki") == 0) { + rgb->red = 189; + rgb->green = 183; + rgb->green = 107; + return; + } + if(strcmp(color, "DarkKhaki") == 0) { + rgb->red = 189; + rgb->green = 183; + rgb->green = 107; + return; + } + if(strcmp(color, "khaki") == 0) { + rgb->red = 240; + rgb->green = 230; + rgb->green = 140; + return; + } + if(strcmp(color, "pale goldenrod") == 0) { + rgb->red = 238; + rgb->green = 232; + rgb->green = 170; + return; + } + if(strcmp(color, "PaleGoldenrod") == 0) { + rgb->red = 238; + rgb->green = 232; + rgb->green = 170; + return; + } + if(strcmp(color, "light goldenrod yellow") == 0) { + rgb->red = 250; + rgb->green = 250; + rgb->green = 210; + return; + } + if(strcmp(color, "LightGoldenrodYellow") == 0) { + rgb->red = 250; + rgb->green = 250; + rgb->green = 210; + return; + } + if(strcmp(color, "light yellow") == 0) { + rgb->red = 255; + rgb->green = 255; + rgb->green = 224; + return; + } + if(strcmp(color, "LightYellow") == 0) { + rgb->red = 255; + rgb->green = 255; + rgb->green = 224; + return; + } + if(strcmp(color, "yellow") == 0) { + rgb->red = 255; + rgb->green = 255; + rgb->green = 0; + return; + } + if(strcmp(color, "gold") == 0) { + rgb->red = 255; + rgb->green = 215; + rgb->green = 0; + return; + } + if(strcmp(color, "light goldenrod") == 0) { + rgb->red = 238; + rgb->green = 221; + rgb->green = 130; + return; + } + if(strcmp(color, "LightGoldenrod") == 0) { + rgb->red = 238; + rgb->green = 221; + rgb->green = 130; + return; + } + if(strcmp(color, "goldenrod") == 0) { + rgb->red = 218; + rgb->green = 165; + rgb->green = 32; + return; + } + if(strcmp(color, "dark goldenrod") == 0) { + rgb->red = 184; + rgb->green = 134; + rgb->green = 11; + return; + } + if(strcmp(color, "DarkGoldenrod") == 0) { + rgb->red = 184; + rgb->green = 134; + rgb->green = 11; + return; + } + if(strcmp(color, "rosy brown") == 0) { + rgb->red = 188; + rgb->green = 143; + rgb->green = 143; + return; + } + if(strcmp(color, "RosyBrown") == 0) { + rgb->red = 188; + rgb->green = 143; + rgb->green = 143; + return; + } + if(strcmp(color, "indian red") == 0) { + rgb->red = 205; + rgb->green = 92; + rgb->green = 92; + return; + } + if(strcmp(color, "IndianRed") == 0) { + rgb->red = 205; + rgb->green = 92; + rgb->green = 92; + return; + } + if(strcmp(color, "saddle brown") == 0) { + rgb->red = 139; + rgb->green = 69; + rgb->green = 19; + return; + } + if(strcmp(color, "SaddleBrown") == 0) { + rgb->red = 139; + rgb->green = 69; + rgb->green = 19; + return; + } + if(strcmp(color, "sienna") == 0) { + rgb->red = 160; + rgb->green = 82; + rgb->green = 45; + return; + } + if(strcmp(color, "peru") == 0) { + rgb->red = 205; + rgb->green = 133; + rgb->green = 63; + return; + } + if(strcmp(color, "burlywood") == 0) { + rgb->red = 222; + rgb->green = 184; + rgb->green = 135; + return; + } + if(strcmp(color, "beige") == 0) { + rgb->red = 245; + rgb->green = 245; + rgb->green = 220; + return; + } + if(strcmp(color, "wheat") == 0) { + rgb->red = 245; + rgb->green = 222; + rgb->green = 179; + return; + } + if(strcmp(color, "sandy brown") == 0) { + rgb->red = 244; + rgb->green = 164; + rgb->green = 96; + return; + } + if(strcmp(color, "SandyBrown") == 0) { + rgb->red = 244; + rgb->green = 164; + rgb->green = 96; + return; + } + if(strcmp(color, "tan") == 0) { + rgb->red = 210; + rgb->green = 180; + rgb->green = 140; + return; + } + if(strcmp(color, "chocolate") == 0) { + rgb->red = 210; + rgb->green = 105; + rgb->green = 30; + return; + } + if(strcmp(color, "firebrick") == 0) { + rgb->red = 178; + rgb->green = 34; + rgb->green = 34; + return; + } + if(strcmp(color, "brown") == 0) { + rgb->red = 165; + rgb->green = 42; + rgb->green = 42; + return; + } + if(strcmp(color, "dark salmon") == 0) { + rgb->red = 233; + rgb->green = 150; + rgb->green = 122; + return; + } + if(strcmp(color, "DarkSalmon") == 0) { + rgb->red = 233; + rgb->green = 150; + rgb->green = 122; + return; + } + if(strcmp(color, "salmon") == 0) { + rgb->red = 250; + rgb->green = 128; + rgb->green = 114; + return; + } + if(strcmp(color, "light salmon") == 0) { + rgb->red = 255; + rgb->green = 160; + rgb->green = 122; + return; + } + if(strcmp(color, "LightSalmon") == 0) { + rgb->red = 255; + rgb->green = 160; + rgb->green = 122; + return; + } + if(strcmp(color, "orange") == 0) { + rgb->red = 255; + rgb->green = 165; + rgb->green = 0; + return; + } + if(strcmp(color, "dark orange") == 0) { + rgb->red = 255; + rgb->green = 140; + rgb->green = 0; + return; + } + if(strcmp(color, "DarkOrange") == 0) { + rgb->red = 255; + rgb->green = 140; + rgb->green = 0; + return; + } + if(strcmp(color, "coral") == 0) { + rgb->red = 255; + rgb->green = 127; + rgb->green = 80; + return; + } + if(strcmp(color, "light coral") == 0) { + rgb->red = 240; + rgb->green = 128; + rgb->green = 128; + return; + } + if(strcmp(color, "LightCoral") == 0) { + rgb->red = 240; + rgb->green = 128; + rgb->green = 128; + return; + } + if(strcmp(color, "tomato") == 0) { + rgb->red = 255; + rgb->green = 99; + rgb->green = 71; + return; + } + if(strcmp(color, "orange red") == 0) { + rgb->red = 255; + rgb->green = 69; + rgb->green = 0; + return; + } + if(strcmp(color, "OrangeRed") == 0) { + rgb->red = 255; + rgb->green = 69; + rgb->green = 0; + return; + } + if(strcmp(color, "red") == 0) { + rgb->red = 255; + rgb->green = 0; + rgb->green = 0; + return; + } + if(strcmp(color, "hot pink") == 0) { + rgb->red = 255; + rgb->green = 105; + rgb->green = 180; + return; + } + if(strcmp(color, "HotPink") == 0) { + rgb->red = 255; + rgb->green = 105; + rgb->green = 180; + return; + } + if(strcmp(color, "deep pink") == 0) { + rgb->red = 255; + rgb->green = 20; + rgb->green = 147; + return; + } + if(strcmp(color, "DeepPink") == 0) { + rgb->red = 255; + rgb->green = 20; + rgb->green = 147; + return; + } + if(strcmp(color, "pink") == 0) { + rgb->red = 255; + rgb->green = 192; + rgb->green = 203; + return; + } + if(strcmp(color, "light pink") == 0) { + rgb->red = 255; + rgb->green = 182; + rgb->green = 193; + return; + } + if(strcmp(color, "LightPink") == 0) { + rgb->red = 255; + rgb->green = 182; + rgb->green = 193; + return; + } + if(strcmp(color, "pale violet red") == 0) { + rgb->red = 219; + rgb->green = 112; + rgb->green = 147; + return; + } + if(strcmp(color, "PaleVioletRed") == 0) { + rgb->red = 219; + rgb->green = 112; + rgb->green = 147; + return; + } + if(strcmp(color, "maroon") == 0) { + rgb->red = 176; + rgb->green = 48; + rgb->green = 96; + return; + } + if(strcmp(color, "x11 maroon") == 0) { + rgb->red = 176; + rgb->green = 48; + rgb->green = 96; + return; + } + if(strcmp(color, "X11Maroon") == 0) { + rgb->red = 176; + rgb->green = 48; + rgb->green = 96; + return; + } + if(strcmp(color, "web maroon") == 0) { + rgb->red = 128; + rgb->green = 0; + rgb->green = 0; + return; + } + if(strcmp(color, "WebMaroon") == 0) { + rgb->red = 128; + rgb->green = 0; + rgb->green = 0; + return; + } + if(strcmp(color, "medium violet red") == 0) { + rgb->red = 199; + rgb->green = 21; + rgb->green = 133; + return; + } + if(strcmp(color, "MediumVioletRed") == 0) { + rgb->red = 199; + rgb->green = 21; + rgb->green = 133; + return; + } + if(strcmp(color, "violet red") == 0) { + rgb->red = 208; + rgb->green = 32; + rgb->green = 144; + return; + } + if(strcmp(color, "VioletRed") == 0) { + rgb->red = 208; + rgb->green = 32; + rgb->green = 144; + return; + } + if(strcmp(color, "magenta") == 0) { + rgb->red = 255; + rgb->green = 0; + rgb->green = 255; + return; + } + if(strcmp(color, "fuchsia") == 0) { + rgb->red = 255; + rgb->green = 0; + rgb->green = 255; + return; + } + if(strcmp(color, "violet") == 0) { + rgb->red = 238; + rgb->green = 130; + rgb->green = 238; + return; + } + if(strcmp(color, "plum") == 0) { + rgb->red = 221; + rgb->green = 160; + rgb->green = 221; + return; + } + if(strcmp(color, "orchid") == 0) { + rgb->red = 218; + rgb->green = 112; + rgb->green = 214; + return; + } + if(strcmp(color, "medium orchid") == 0) { + rgb->red = 186; + rgb->green = 85; + rgb->green = 211; + return; + } + if(strcmp(color, "MediumOrchid") == 0) { + rgb->red = 186; + rgb->green = 85; + rgb->green = 211; + return; + } + if(strcmp(color, "dark orchid") == 0) { + rgb->red = 153; + rgb->green = 50; + rgb->green = 204; + return; + } + if(strcmp(color, "DarkOrchid") == 0) { + rgb->red = 153; + rgb->green = 50; + rgb->green = 204; + return; + } + if(strcmp(color, "dark violet") == 0) { + rgb->red = 148; + rgb->green = 0; + rgb->green = 211; + return; + } + if(strcmp(color, "DarkViolet") == 0) { + rgb->red = 148; + rgb->green = 0; + rgb->green = 211; + return; + } + if(strcmp(color, "blue violet") == 0) { + rgb->red = 138; + rgb->green = 43; + rgb->green = 226; + return; + } + if(strcmp(color, "BlueViolet") == 0) { + rgb->red = 138; + rgb->green = 43; + rgb->green = 226; + return; + } + if(strcmp(color, "purple") == 0) { + rgb->red = 160; + rgb->green = 32; + rgb->green = 240; + return; + } + if(strcmp(color, "x11 purple") == 0) { + rgb->red = 160; + rgb->green = 32; + rgb->green = 240; + return; + } + if(strcmp(color, "X11Purple") == 0) { + rgb->red = 160; + rgb->green = 32; + rgb->green = 240; + return; + } + if(strcmp(color, "web purple") == 0) { + rgb->red = 128; + rgb->green = 0; + rgb->green = 128; + return; + } + if(strcmp(color, "WebPurple") == 0) { + rgb->red = 128; + rgb->green = 0; + rgb->green = 128; + return; + } + if(strcmp(color, "medium purple") == 0) { + rgb->red = 147; + rgb->green = 112; + rgb->green = 219; + return; + } + if(strcmp(color, "MediumPurple") == 0) { + rgb->red = 147; + rgb->green = 112; + rgb->green = 219; + return; + } + if(strcmp(color, "thistle") == 0) { + rgb->red = 216; + rgb->green = 191; + rgb->green = 216; + return; + } + if(strcmp(color, "snow1") == 0) { + rgb->red = 255; + rgb->green = 250; + rgb->green = 250; + return; + } + if(strcmp(color, "snow2") == 0) { + rgb->red = 238; + rgb->green = 233; + rgb->green = 233; + return; + } + if(strcmp(color, "snow3") == 0) { + rgb->red = 205; + rgb->green = 201; + rgb->green = 201; + return; + } + if(strcmp(color, "snow4") == 0) { + rgb->red = 139; + rgb->green = 137; + rgb->green = 137; + return; + } + if(strcmp(color, "seashell1") == 0) { + rgb->red = 255; + rgb->green = 245; + rgb->green = 238; + return; + } + if(strcmp(color, "seashell2") == 0) { + rgb->red = 238; + rgb->green = 229; + rgb->green = 222; + return; + } + if(strcmp(color, "seashell3") == 0) { + rgb->red = 205; + rgb->green = 197; + rgb->green = 191; + return; + } + if(strcmp(color, "seashell4") == 0) { + rgb->red = 139; + rgb->green = 134; + rgb->green = 130; + return; + } + if(strcmp(color, "AntiqueWhite1") == 0) { + rgb->red = 255; + rgb->green = 239; + rgb->green = 219; + return; + } + if(strcmp(color, "AntiqueWhite2") == 0) { + rgb->red = 238; + rgb->green = 223; + rgb->green = 204; + return; + } + if(strcmp(color, "AntiqueWhite3") == 0) { + rgb->red = 205; + rgb->green = 192; + rgb->green = 176; + return; + } + if(strcmp(color, "AntiqueWhite4") == 0) { + rgb->red = 139; + rgb->green = 131; + rgb->green = 120; + return; + } + if(strcmp(color, "bisque1") == 0) { + rgb->red = 255; + rgb->green = 228; + rgb->green = 196; + return; + } + if(strcmp(color, "bisque2") == 0) { + rgb->red = 238; + rgb->green = 213; + rgb->green = 183; + return; + } + if(strcmp(color, "bisque3") == 0) { + rgb->red = 205; + rgb->green = 183; + rgb->green = 158; + return; + } + if(strcmp(color, "bisque4") == 0) { + rgb->red = 139; + rgb->green = 125; + rgb->green = 107; + return; + } + if(strcmp(color, "PeachPuff1") == 0) { + rgb->red = 255; + rgb->green = 218; + rgb->green = 185; + return; + } + if(strcmp(color, "PeachPuff2") == 0) { + rgb->red = 238; + rgb->green = 203; + rgb->green = 173; + return; + } + if(strcmp(color, "PeachPuff3") == 0) { + rgb->red = 205; + rgb->green = 175; + rgb->green = 149; + return; + } + if(strcmp(color, "PeachPuff4") == 0) { + rgb->red = 139; + rgb->green = 119; + rgb->green = 101; + return; + } + if(strcmp(color, "NavajoWhite1") == 0) { + rgb->red = 255; + rgb->green = 222; + rgb->green = 173; + return; + } + if(strcmp(color, "NavajoWhite2") == 0) { + rgb->red = 238; + rgb->green = 207; + rgb->green = 161; + return; + } + if(strcmp(color, "NavajoWhite3") == 0) { + rgb->red = 205; + rgb->green = 179; + rgb->green = 139; + return; + } + if(strcmp(color, "NavajoWhite4") == 0) { + rgb->red = 139; + rgb->green = 121; + rgb->green = 94; + return; + } + if(strcmp(color, "LemonChiffon1") == 0) { + rgb->red = 255; + rgb->green = 250; + rgb->green = 205; + return; + } + if(strcmp(color, "LemonChiffon2") == 0) { + rgb->red = 238; + rgb->green = 233; + rgb->green = 191; + return; + } + if(strcmp(color, "LemonChiffon3") == 0) { + rgb->red = 205; + rgb->green = 201; + rgb->green = 165; + return; + } + if(strcmp(color, "LemonChiffon4") == 0) { + rgb->red = 139; + rgb->green = 137; + rgb->green = 112; + return; + } + if(strcmp(color, "cornsilk1") == 0) { + rgb->red = 255; + rgb->green = 248; + rgb->green = 220; + return; + } + if(strcmp(color, "cornsilk2") == 0) { + rgb->red = 238; + rgb->green = 232; + rgb->green = 205; + return; + } + if(strcmp(color, "cornsilk3") == 0) { + rgb->red = 205; + rgb->green = 200; + rgb->green = 177; + return; + } + if(strcmp(color, "cornsilk4") == 0) { + rgb->red = 139; + rgb->green = 136; + rgb->green = 120; + return; + } + if(strcmp(color, "ivory1") == 0) { + rgb->red = 255; + rgb->green = 255; + rgb->green = 240; + return; + } + if(strcmp(color, "ivory2") == 0) { + rgb->red = 238; + rgb->green = 238; + rgb->green = 224; + return; + } + if(strcmp(color, "ivory3") == 0) { + rgb->red = 205; + rgb->green = 205; + rgb->green = 193; + return; + } + if(strcmp(color, "ivory4") == 0) { + rgb->red = 139; + rgb->green = 139; + rgb->green = 131; + return; + } + if(strcmp(color, "honeydew1") == 0) { + rgb->red = 240; + rgb->green = 255; + rgb->green = 240; + return; + } + if(strcmp(color, "honeydew2") == 0) { + rgb->red = 224; + rgb->green = 238; + rgb->green = 224; + return; + } + if(strcmp(color, "honeydew3") == 0) { + rgb->red = 193; + rgb->green = 205; + rgb->green = 193; + return; + } + if(strcmp(color, "honeydew4") == 0) { + rgb->red = 131; + rgb->green = 139; + rgb->green = 131; + return; + } + if(strcmp(color, "LavenderBlush1") == 0) { + rgb->red = 255; + rgb->green = 240; + rgb->green = 245; + return; + } + if(strcmp(color, "LavenderBlush2") == 0) { + rgb->red = 238; + rgb->green = 224; + rgb->green = 229; + return; + } + if(strcmp(color, "LavenderBlush3") == 0) { + rgb->red = 205; + rgb->green = 193; + rgb->green = 197; + return; + } + if(strcmp(color, "LavenderBlush4") == 0) { + rgb->red = 139; + rgb->green = 131; + rgb->green = 134; + return; + } + if(strcmp(color, "MistyRose1") == 0) { + rgb->red = 255; + rgb->green = 228; + rgb->green = 225; + return; + } + if(strcmp(color, "MistyRose2") == 0) { + rgb->red = 238; + rgb->green = 213; + rgb->green = 210; + return; + } + if(strcmp(color, "MistyRose3") == 0) { + rgb->red = 205; + rgb->green = 183; + rgb->green = 181; + return; + } + if(strcmp(color, "MistyRose4") == 0) { + rgb->red = 139; + rgb->green = 125; + rgb->green = 123; + return; + } + if(strcmp(color, "azure1") == 0) { + rgb->red = 240; + rgb->green = 255; + rgb->green = 255; + return; + } + if(strcmp(color, "azure2") == 0) { + rgb->red = 224; + rgb->green = 238; + rgb->green = 238; + return; + } + if(strcmp(color, "azure3") == 0) { + rgb->red = 193; + rgb->green = 205; + rgb->green = 205; + return; + } + if(strcmp(color, "azure4") == 0) { + rgb->red = 131; + rgb->green = 139; + rgb->green = 139; + return; + } + if(strcmp(color, "SlateBlue1") == 0) { + rgb->red = 131; + rgb->green = 111; + rgb->green = 255; + return; + } + if(strcmp(color, "SlateBlue2") == 0) { + rgb->red = 122; + rgb->green = 103; + rgb->green = 238; + return; + } + if(strcmp(color, "SlateBlue3") == 0) { + rgb->red = 105; + rgb->green = 89; + rgb->green = 205; + return; + } + if(strcmp(color, "SlateBlue4") == 0) { + rgb->red = 71; + rgb->green = 60; + rgb->green = 139; + return; + } + if(strcmp(color, "RoyalBlue1") == 0) { + rgb->red = 72; + rgb->green = 118; + rgb->green = 255; + return; + } + if(strcmp(color, "RoyalBlue2") == 0) { + rgb->red = 67; + rgb->green = 110; + rgb->green = 238; + return; + } + if(strcmp(color, "RoyalBlue3") == 0) { + rgb->red = 58; + rgb->green = 95; + rgb->green = 205; + return; + } + if(strcmp(color, "RoyalBlue4") == 0) { + rgb->red = 39; + rgb->green = 64; + rgb->green = 139; + return; + } + if(strcmp(color, "blue1") == 0) { + rgb->red = 0; + rgb->green = 0; + rgb->green = 255; + return; + } + if(strcmp(color, "blue2") == 0) { + rgb->red = 0; + rgb->green = 0; + rgb->green = 238; + return; + } + if(strcmp(color, "blue3") == 0) { + rgb->red = 0; + rgb->green = 0; + rgb->green = 205; + return; + } + if(strcmp(color, "blue4") == 0) { + rgb->red = 0; + rgb->green = 0; + rgb->green = 139; + return; + } + if(strcmp(color, "DodgerBlue1") == 0) { + rgb->red = 30; + rgb->green = 144; + rgb->green = 255; + return; + } + if(strcmp(color, "DodgerBlue2") == 0) { + rgb->red = 28; + rgb->green = 134; + rgb->green = 238; + return; + } + if(strcmp(color, "DodgerBlue3") == 0) { + rgb->red = 24; + rgb->green = 116; + rgb->green = 205; + return; + } + if(strcmp(color, "DodgerBlue4") == 0) { + rgb->red = 16; + rgb->green = 78; + rgb->green = 139; + return; + } + if(strcmp(color, "SteelBlue1") == 0) { + rgb->red = 99; + rgb->green = 184; + rgb->green = 255; + return; + } + if(strcmp(color, "SteelBlue2") == 0) { + rgb->red = 92; + rgb->green = 172; + rgb->green = 238; + return; + } + if(strcmp(color, "SteelBlue3") == 0) { + rgb->red = 79; + rgb->green = 148; + rgb->green = 205; + return; + } + if(strcmp(color, "SteelBlue4") == 0) { + rgb->red = 54; + rgb->green = 100; + rgb->green = 139; + return; + } + if(strcmp(color, "DeepSkyBlue1") == 0) { + rgb->red = 0; + rgb->green = 191; + rgb->green = 255; + return; + } + if(strcmp(color, "DeepSkyBlue2") == 0) { + rgb->red = 0; + rgb->green = 178; + rgb->green = 238; + return; + } + if(strcmp(color, "DeepSkyBlue3") == 0) { + rgb->red = 0; + rgb->green = 154; + rgb->green = 205; + return; + } + if(strcmp(color, "DeepSkyBlue4") == 0) { + rgb->red = 0; + rgb->green = 104; + rgb->green = 139; + return; + } + if(strcmp(color, "SkyBlue1") == 0) { + rgb->red = 135; + rgb->green = 206; + rgb->green = 255; + return; + } + if(strcmp(color, "SkyBlue2") == 0) { + rgb->red = 126; + rgb->green = 192; + rgb->green = 238; + return; + } + if(strcmp(color, "SkyBlue3") == 0) { + rgb->red = 108; + rgb->green = 166; + rgb->green = 205; + return; + } + if(strcmp(color, "SkyBlue4") == 0) { + rgb->red = 74; + rgb->green = 112; + rgb->green = 139; + return; + } + if(strcmp(color, "LightSkyBlue1") == 0) { + rgb->red = 176; + rgb->green = 226; + rgb->green = 255; + return; + } + if(strcmp(color, "LightSkyBlue2") == 0) { + rgb->red = 164; + rgb->green = 211; + rgb->green = 238; + return; + } + if(strcmp(color, "LightSkyBlue3") == 0) { + rgb->red = 141; + rgb->green = 182; + rgb->green = 205; + return; + } + if(strcmp(color, "LightSkyBlue4") == 0) { + rgb->red = 96; + rgb->green = 123; + rgb->green = 139; + return; + } + if(strcmp(color, "SlateGray1") == 0) { + rgb->red = 198; + rgb->green = 226; + rgb->green = 255; + return; + } + if(strcmp(color, "SlateGray2") == 0) { + rgb->red = 185; + rgb->green = 211; + rgb->green = 238; + return; + } + if(strcmp(color, "SlateGray3") == 0) { + rgb->red = 159; + rgb->green = 182; + rgb->green = 205; + return; + } + if(strcmp(color, "SlateGray4") == 0) { + rgb->red = 108; + rgb->green = 123; + rgb->green = 139; + return; + } + if(strcmp(color, "LightSteelBlue1") == 0) { + rgb->red = 202; + rgb->green = 225; + rgb->green = 255; + return; + } + if(strcmp(color, "LightSteelBlue2") == 0) { + rgb->red = 188; + rgb->green = 210; + rgb->green = 238; + return; + } + if(strcmp(color, "LightSteelBlue3") == 0) { + rgb->red = 162; + rgb->green = 181; + rgb->green = 205; + return; + } + if(strcmp(color, "LightSteelBlue4") == 0) { + rgb->red = 110; + rgb->green = 123; + rgb->green = 139; + return; + } + if(strcmp(color, "LightBlue1") == 0) { + rgb->red = 191; + rgb->green = 239; + rgb->green = 255; + return; + } + if(strcmp(color, "LightBlue2") == 0) { + rgb->red = 178; + rgb->green = 223; + rgb->green = 238; + return; + } + if(strcmp(color, "LightBlue3") == 0) { + rgb->red = 154; + rgb->green = 192; + rgb->green = 205; + return; + } + if(strcmp(color, "LightBlue4") == 0) { + rgb->red = 104; + rgb->green = 131; + rgb->green = 139; + return; + } + if(strcmp(color, "LightCyan1") == 0) { + rgb->red = 224; + rgb->green = 255; + rgb->green = 255; + return; + } + if(strcmp(color, "LightCyan2") == 0) { + rgb->red = 209; + rgb->green = 238; + rgb->green = 238; + return; + } + if(strcmp(color, "LightCyan3") == 0) { + rgb->red = 180; + rgb->green = 205; + rgb->green = 205; + return; + } + if(strcmp(color, "LightCyan4") == 0) { + rgb->red = 122; + rgb->green = 139; + rgb->green = 139; + return; + } + if(strcmp(color, "PaleTurquoise1") == 0) { + rgb->red = 187; + rgb->green = 255; + rgb->green = 255; + return; + } + if(strcmp(color, "PaleTurquoise2") == 0) { + rgb->red = 174; + rgb->green = 238; + rgb->green = 238; + return; + } + if(strcmp(color, "PaleTurquoise3") == 0) { + rgb->red = 150; + rgb->green = 205; + rgb->green = 205; + return; + } + if(strcmp(color, "PaleTurquoise4") == 0) { + rgb->red = 102; + rgb->green = 139; + rgb->green = 139; + return; + } + if(strcmp(color, "CadetBlue1") == 0) { + rgb->red = 152; + rgb->green = 245; + rgb->green = 255; + return; + } + if(strcmp(color, "CadetBlue2") == 0) { + rgb->red = 142; + rgb->green = 229; + rgb->green = 238; + return; + } + if(strcmp(color, "CadetBlue3") == 0) { + rgb->red = 122; + rgb->green = 197; + rgb->green = 205; + return; + } + if(strcmp(color, "CadetBlue4") == 0) { + rgb->red = 83; + rgb->green = 134; + rgb->green = 139; + return; + } + if(strcmp(color, "turquoise1") == 0) { + rgb->red = 0; + rgb->green = 245; + rgb->green = 255; + return; + } + if(strcmp(color, "turquoise2") == 0) { + rgb->red = 0; + rgb->green = 229; + rgb->green = 238; + return; + } + if(strcmp(color, "turquoise3") == 0) { + rgb->red = 0; + rgb->green = 197; + rgb->green = 205; + return; + } + if(strcmp(color, "turquoise4") == 0) { + rgb->red = 0; + rgb->green = 134; + rgb->green = 139; + return; + } + if(strcmp(color, "cyan1") == 0) { + rgb->red = 0; + rgb->green = 255; + rgb->green = 255; + return; + } + if(strcmp(color, "cyan2") == 0) { + rgb->red = 0; + rgb->green = 238; + rgb->green = 238; + return; + } + if(strcmp(color, "cyan3") == 0) { + rgb->red = 0; + rgb->green = 205; + rgb->green = 205; + return; + } + if(strcmp(color, "cyan4") == 0) { + rgb->red = 0; + rgb->green = 139; + rgb->green = 139; + return; + } + if(strcmp(color, "DarkSlateGray1") == 0) { + rgb->red = 151; + rgb->green = 255; + rgb->green = 255; + return; + } + if(strcmp(color, "DarkSlateGray2") == 0) { + rgb->red = 141; + rgb->green = 238; + rgb->green = 238; + return; + } + if(strcmp(color, "DarkSlateGray3") == 0) { + rgb->red = 121; + rgb->green = 205; + rgb->green = 205; + return; + } + if(strcmp(color, "DarkSlateGray4") == 0) { + rgb->red = 82; + rgb->green = 139; + rgb->green = 139; + return; + } + if(strcmp(color, "aquamarine1") == 0) { + rgb->red = 127; + rgb->green = 255; + rgb->green = 212; + return; + } + if(strcmp(color, "aquamarine2") == 0) { + rgb->red = 118; + rgb->green = 238; + rgb->green = 198; + return; + } + if(strcmp(color, "aquamarine3") == 0) { + rgb->red = 102; + rgb->green = 205; + rgb->green = 170; + return; + } + if(strcmp(color, "aquamarine4") == 0) { + rgb->red = 69; + rgb->green = 139; + rgb->green = 116; + return; + } + if(strcmp(color, "DarkSeaGreen1") == 0) { + rgb->red = 193; + rgb->green = 255; + rgb->green = 193; + return; + } + if(strcmp(color, "DarkSeaGreen2") == 0) { + rgb->red = 180; + rgb->green = 238; + rgb->green = 180; + return; + } + if(strcmp(color, "DarkSeaGreen3") == 0) { + rgb->red = 155; + rgb->green = 205; + rgb->green = 155; + return; + } + if(strcmp(color, "DarkSeaGreen4") == 0) { + rgb->red = 105; + rgb->green = 139; + rgb->green = 105; + return; + } + if(strcmp(color, "SeaGreen1") == 0) { + rgb->red = 84; + rgb->green = 255; + rgb->green = 159; + return; + } + if(strcmp(color, "SeaGreen2") == 0) { + rgb->red = 78; + rgb->green = 238; + rgb->green = 148; + return; + } + if(strcmp(color, "SeaGreen3") == 0) { + rgb->red = 67; + rgb->green = 205; + rgb->green = 128; + return; + } + if(strcmp(color, "SeaGreen4") == 0) { + rgb->red = 46; + rgb->green = 139; + rgb->green = 87; + return; + } + if(strcmp(color, "PaleGreen1") == 0) { + rgb->red = 154; + rgb->green = 255; + rgb->green = 154; + return; + } + if(strcmp(color, "PaleGreen2") == 0) { + rgb->red = 144; + rgb->green = 238; + rgb->green = 144; + return; + } + if(strcmp(color, "PaleGreen3") == 0) { + rgb->red = 124; + rgb->green = 205; + rgb->green = 124; + return; + } + if(strcmp(color, "PaleGreen4") == 0) { + rgb->red = 84; + rgb->green = 139; + rgb->green = 84; + return; + } + if(strcmp(color, "SpringGreen1") == 0) { + rgb->red = 0; + rgb->green = 255; + rgb->green = 127; + return; + } + if(strcmp(color, "SpringGreen2") == 0) { + rgb->red = 0; + rgb->green = 238; + rgb->green = 118; + return; + } + if(strcmp(color, "SpringGreen3") == 0) { + rgb->red = 0; + rgb->green = 205; + rgb->green = 102; + return; + } + if(strcmp(color, "SpringGreen4") == 0) { + rgb->red = 0; + rgb->green = 139; + rgb->green = 69; + return; + } + if(strcmp(color, "green1") == 0) { + rgb->red = 0; + rgb->green = 255; + rgb->green = 0; + return; + } + if(strcmp(color, "green2") == 0) { + rgb->red = 0; + rgb->green = 238; + rgb->green = 0; + return; + } + if(strcmp(color, "green3") == 0) { + rgb->red = 0; + rgb->green = 205; + rgb->green = 0; + return; + } + if(strcmp(color, "green4") == 0) { + rgb->red = 0; + rgb->green = 139; + rgb->green = 0; + return; + } + if(strcmp(color, "chartreuse1") == 0) { + rgb->red = 127; + rgb->green = 255; + rgb->green = 0; + return; + } + if(strcmp(color, "chartreuse2") == 0) { + rgb->red = 118; + rgb->green = 238; + rgb->green = 0; + return; + } + if(strcmp(color, "chartreuse3") == 0) { + rgb->red = 102; + rgb->green = 205; + rgb->green = 0; + return; + } + if(strcmp(color, "chartreuse4") == 0) { + rgb->red = 69; + rgb->green = 139; + rgb->green = 0; + return; + } + if(strcmp(color, "OliveDrab1") == 0) { + rgb->red = 192; + rgb->green = 255; + rgb->green = 62; + return; + } + if(strcmp(color, "OliveDrab2") == 0) { + rgb->red = 179; + rgb->green = 238; + rgb->green = 58; + return; + } + if(strcmp(color, "OliveDrab3") == 0) { + rgb->red = 154; + rgb->green = 205; + rgb->green = 50; + return; + } + if(strcmp(color, "OliveDrab4") == 0) { + rgb->red = 105; + rgb->green = 139; + rgb->green = 34; + return; + } + if(strcmp(color, "DarkOliveGreen1") == 0) { + rgb->red = 202; + rgb->green = 255; + rgb->green = 112; + return; + } + if(strcmp(color, "DarkOliveGreen2") == 0) { + rgb->red = 188; + rgb->green = 238; + rgb->green = 104; + return; + } + if(strcmp(color, "DarkOliveGreen3") == 0) { + rgb->red = 162; + rgb->green = 205; + rgb->green = 90; + return; + } + if(strcmp(color, "DarkOliveGreen4") == 0) { + rgb->red = 110; + rgb->green = 139; + rgb->green = 61; + return; + } + if(strcmp(color, "khaki1") == 0) { + rgb->red = 255; + rgb->green = 246; + rgb->green = 143; + return; + } + if(strcmp(color, "khaki2") == 0) { + rgb->red = 238; + rgb->green = 230; + rgb->green = 133; + return; + } + if(strcmp(color, "khaki3") == 0) { + rgb->red = 205; + rgb->green = 198; + rgb->green = 115; + return; + } + if(strcmp(color, "khaki4") == 0) { + rgb->red = 139; + rgb->green = 134; + rgb->green = 78; + return; + } + if(strcmp(color, "LightGoldenrod1") == 0) { + rgb->red = 255; + rgb->green = 236; + rgb->green = 139; + return; + } + if(strcmp(color, "LightGoldenrod2") == 0) { + rgb->red = 238; + rgb->green = 220; + rgb->green = 130; + return; + } + if(strcmp(color, "LightGoldenrod3") == 0) { + rgb->red = 205; + rgb->green = 190; + rgb->green = 112; + return; + } + if(strcmp(color, "LightGoldenrod4") == 0) { + rgb->red = 139; + rgb->green = 129; + rgb->green = 76; + return; + } + if(strcmp(color, "LightYellow1") == 0) { + rgb->red = 255; + rgb->green = 255; + rgb->green = 224; + return; + } + if(strcmp(color, "LightYellow2") == 0) { + rgb->red = 238; + rgb->green = 238; + rgb->green = 209; + return; + } + if(strcmp(color, "LightYellow3") == 0) { + rgb->red = 205; + rgb->green = 205; + rgb->green = 180; + return; + } + if(strcmp(color, "LightYellow4") == 0) { + rgb->red = 139; + rgb->green = 139; + rgb->green = 122; + return; + } + if(strcmp(color, "yellow1") == 0) { + rgb->red = 255; + rgb->green = 255; + rgb->green = 0; + return; + } + if(strcmp(color, "yellow2") == 0) { + rgb->red = 238; + rgb->green = 238; + rgb->green = 0; + return; + } + if(strcmp(color, "yellow3") == 0) { + rgb->red = 205; + rgb->green = 205; + rgb->green = 0; + return; + } + if(strcmp(color, "yellow4") == 0) { + rgb->red = 139; + rgb->green = 139; + rgb->green = 0; + return; + } + if(strcmp(color, "gold1") == 0) { + rgb->red = 255; + rgb->green = 215; + rgb->green = 0; + return; + } + if(strcmp(color, "gold2") == 0) { + rgb->red = 238; + rgb->green = 201; + rgb->green = 0; + return; + } + if(strcmp(color, "gold3") == 0) { + rgb->red = 205; + rgb->green = 173; + rgb->green = 0; + return; + } + if(strcmp(color, "gold4") == 0) { + rgb->red = 139; + rgb->green = 117; + rgb->green = 0; + return; + } + if(strcmp(color, "goldenrod1") == 0) { + rgb->red = 255; + rgb->green = 193; + rgb->green = 37; + return; + } + if(strcmp(color, "goldenrod2") == 0) { + rgb->red = 238; + rgb->green = 180; + rgb->green = 34; + return; + } + if(strcmp(color, "goldenrod3") == 0) { + rgb->red = 205; + rgb->green = 155; + rgb->green = 29; + return; + } + if(strcmp(color, "goldenrod4") == 0) { + rgb->red = 139; + rgb->green = 105; + rgb->green = 20; + return; + } + if(strcmp(color, "DarkGoldenrod1") == 0) { + rgb->red = 255; + rgb->green = 185; + rgb->green = 15; + return; + } + if(strcmp(color, "DarkGoldenrod2") == 0) { + rgb->red = 238; + rgb->green = 173; + rgb->green = 14; + return; + } + if(strcmp(color, "DarkGoldenrod3") == 0) { + rgb->red = 205; + rgb->green = 149; + rgb->green = 12; + return; + } + if(strcmp(color, "DarkGoldenrod4") == 0) { + rgb->red = 139; + rgb->green = 101; + rgb->green = 8; + return; + } + if(strcmp(color, "RosyBrown1") == 0) { + rgb->red = 255; + rgb->green = 193; + rgb->green = 193; + return; + } + if(strcmp(color, "RosyBrown2") == 0) { + rgb->red = 238; + rgb->green = 180; + rgb->green = 180; + return; + } + if(strcmp(color, "RosyBrown3") == 0) { + rgb->red = 205; + rgb->green = 155; + rgb->green = 155; + return; + } + if(strcmp(color, "RosyBrown4") == 0) { + rgb->red = 139; + rgb->green = 105; + rgb->green = 105; + return; + } + if(strcmp(color, "IndianRed1") == 0) { + rgb->red = 255; + rgb->green = 106; + rgb->green = 106; + return; + } + if(strcmp(color, "IndianRed2") == 0) { + rgb->red = 238; + rgb->green = 99; + rgb->green = 99; + return; + } + if(strcmp(color, "IndianRed3") == 0) { + rgb->red = 205; + rgb->green = 85; + rgb->green = 85; + return; + } + if(strcmp(color, "IndianRed4") == 0) { + rgb->red = 139; + rgb->green = 58; + rgb->green = 58; + return; + } + if(strcmp(color, "sienna1") == 0) { + rgb->red = 255; + rgb->green = 130; + rgb->green = 71; + return; + } + if(strcmp(color, "sienna2") == 0) { + rgb->red = 238; + rgb->green = 121; + rgb->green = 66; + return; + } + if(strcmp(color, "sienna3") == 0) { + rgb->red = 205; + rgb->green = 104; + rgb->green = 57; + return; + } + if(strcmp(color, "sienna4") == 0) { + rgb->red = 139; + rgb->green = 71; + rgb->green = 38; + return; + } + if(strcmp(color, "burlywood1") == 0) { + rgb->red = 255; + rgb->green = 211; + rgb->green = 155; + return; + } + if(strcmp(color, "burlywood2") == 0) { + rgb->red = 238; + rgb->green = 197; + rgb->green = 145; + return; + } + if(strcmp(color, "burlywood3") == 0) { + rgb->red = 205; + rgb->green = 170; + rgb->green = 125; + return; + } + if(strcmp(color, "burlywood4") == 0) { + rgb->red = 139; + rgb->green = 115; + rgb->green = 85; + return; + } + if(strcmp(color, "wheat1") == 0) { + rgb->red = 255; + rgb->green = 231; + rgb->green = 186; + return; + } + if(strcmp(color, "wheat2") == 0) { + rgb->red = 238; + rgb->green = 216; + rgb->green = 174; + return; + } + if(strcmp(color, "wheat3") == 0) { + rgb->red = 205; + rgb->green = 186; + rgb->green = 150; + return; + } + if(strcmp(color, "wheat4") == 0) { + rgb->red = 139; + rgb->green = 126; + rgb->green = 102; + return; + } + if(strcmp(color, "tan1") == 0) { + rgb->red = 255; + rgb->green = 165; + rgb->green = 79; + return; + } + if(strcmp(color, "tan2") == 0) { + rgb->red = 238; + rgb->green = 154; + rgb->green = 73; + return; + } + if(strcmp(color, "tan3") == 0) { + rgb->red = 205; + rgb->green = 133; + rgb->green = 63; + return; + } + if(strcmp(color, "tan4") == 0) { + rgb->red = 139; + rgb->green = 90; + rgb->green = 43; + return; + } + if(strcmp(color, "chocolate1") == 0) { + rgb->red = 255; + rgb->green = 127; + rgb->green = 36; + return; + } + if(strcmp(color, "chocolate2") == 0) { + rgb->red = 238; + rgb->green = 118; + rgb->green = 33; + return; + } + if(strcmp(color, "chocolate3") == 0) { + rgb->red = 205; + rgb->green = 102; + rgb->green = 29; + return; + } + if(strcmp(color, "chocolate4") == 0) { + rgb->red = 139; + rgb->green = 69; + rgb->green = 19; + return; + } + if(strcmp(color, "firebrick1") == 0) { + rgb->red = 255; + rgb->green = 48; + rgb->green = 48; + return; + } + if(strcmp(color, "firebrick2") == 0) { + rgb->red = 238; + rgb->green = 44; + rgb->green = 44; + return; + } + if(strcmp(color, "firebrick3") == 0) { + rgb->red = 205; + rgb->green = 38; + rgb->green = 38; + return; + } + if(strcmp(color, "firebrick4") == 0) { + rgb->red = 139; + rgb->green = 26; + rgb->green = 26; + return; + } + if(strcmp(color, "brown1") == 0) { + rgb->red = 255; + rgb->green = 64; + rgb->green = 64; + return; + } + if(strcmp(color, "brown2") == 0) { + rgb->red = 238; + rgb->green = 59; + rgb->green = 59; + return; + } + if(strcmp(color, "brown3") == 0) { + rgb->red = 205; + rgb->green = 51; + rgb->green = 51; + return; + } + if(strcmp(color, "brown4") == 0) { + rgb->red = 139; + rgb->green = 35; + rgb->green = 35; + return; + } + if(strcmp(color, "salmon1") == 0) { + rgb->red = 255; + rgb->green = 140; + rgb->green = 105; + return; + } + if(strcmp(color, "salmon2") == 0) { + rgb->red = 238; + rgb->green = 130; + rgb->green = 98; + return; + } + if(strcmp(color, "salmon3") == 0) { + rgb->red = 205; + rgb->green = 112; + rgb->green = 84; + return; + } + if(strcmp(color, "salmon4") == 0) { + rgb->red = 139; + rgb->green = 76; + rgb->green = 57; + return; + } + if(strcmp(color, "LightSalmon1") == 0) { + rgb->red = 255; + rgb->green = 160; + rgb->green = 122; + return; + } + if(strcmp(color, "LightSalmon2") == 0) { + rgb->red = 238; + rgb->green = 149; + rgb->green = 114; + return; + } + if(strcmp(color, "LightSalmon3") == 0) { + rgb->red = 205; + rgb->green = 129; + rgb->green = 98; + return; + } + if(strcmp(color, "LightSalmon4") == 0) { + rgb->red = 139; + rgb->green = 87; + rgb->green = 66; + return; + } + if(strcmp(color, "orange1") == 0) { + rgb->red = 255; + rgb->green = 165; + rgb->green = 0; + return; + } + if(strcmp(color, "orange2") == 0) { + rgb->red = 238; + rgb->green = 154; + rgb->green = 0; + return; + } + if(strcmp(color, "orange3") == 0) { + rgb->red = 205; + rgb->green = 133; + rgb->green = 0; + return; + } + if(strcmp(color, "orange4") == 0) { + rgb->red = 139; + rgb->green = 90; + rgb->green = 0; + return; + } + if(strcmp(color, "DarkOrange1") == 0) { + rgb->red = 255; + rgb->green = 127; + rgb->green = 0; + return; + } + if(strcmp(color, "DarkOrange2") == 0) { + rgb->red = 238; + rgb->green = 118; + rgb->green = 0; + return; + } + if(strcmp(color, "DarkOrange3") == 0) { + rgb->red = 205; + rgb->green = 102; + rgb->green = 0; + return; + } + if(strcmp(color, "DarkOrange4") == 0) { + rgb->red = 139; + rgb->green = 69; + rgb->green = 0; + return; + } + if(strcmp(color, "coral1") == 0) { + rgb->red = 255; + rgb->green = 114; + rgb->green = 86; + return; + } + if(strcmp(color, "coral2") == 0) { + rgb->red = 238; + rgb->green = 106; + rgb->green = 80; + return; + } + if(strcmp(color, "coral3") == 0) { + rgb->red = 205; + rgb->green = 91; + rgb->green = 69; + return; + } + if(strcmp(color, "coral4") == 0) { + rgb->red = 139; + rgb->green = 62; + rgb->green = 47; + return; + } + if(strcmp(color, "tomato1") == 0) { + rgb->red = 255; + rgb->green = 99; + rgb->green = 71; + return; + } + if(strcmp(color, "tomato2") == 0) { + rgb->red = 238; + rgb->green = 92; + rgb->green = 66; + return; + } + if(strcmp(color, "tomato3") == 0) { + rgb->red = 205; + rgb->green = 79; + rgb->green = 57; + return; + } + if(strcmp(color, "tomato4") == 0) { + rgb->red = 139; + rgb->green = 54; + rgb->green = 38; + return; + } + if(strcmp(color, "OrangeRed1") == 0) { + rgb->red = 255; + rgb->green = 69; + rgb->green = 0; + return; + } + if(strcmp(color, "OrangeRed2") == 0) { + rgb->red = 238; + rgb->green = 64; + rgb->green = 0; + return; + } + if(strcmp(color, "OrangeRed3") == 0) { + rgb->red = 205; + rgb->green = 55; + rgb->green = 0; + return; + } + if(strcmp(color, "OrangeRed4") == 0) { + rgb->red = 139; + rgb->green = 37; + rgb->green = 0; + return; + } + if(strcmp(color, "red1") == 0) { + rgb->red = 255; + rgb->green = 0; + rgb->green = 0; + return; + } + if(strcmp(color, "red2") == 0) { + rgb->red = 238; + rgb->green = 0; + rgb->green = 0; + return; + } + if(strcmp(color, "red3") == 0) { + rgb->red = 205; + rgb->green = 0; + rgb->green = 0; + return; + } + if(strcmp(color, "red4") == 0) { + rgb->red = 139; + rgb->green = 0; + rgb->green = 0; + return; + } + if(strcmp(color, "DeepPink1") == 0) { + rgb->red = 255; + rgb->green = 20; + rgb->green = 147; + return; + } + if(strcmp(color, "DeepPink2") == 0) { + rgb->red = 238; + rgb->green = 18; + rgb->green = 137; + return; + } + if(strcmp(color, "DeepPink3") == 0) { + rgb->red = 205; + rgb->green = 16; + rgb->green = 118; + return; + } + if(strcmp(color, "DeepPink4") == 0) { + rgb->red = 139; + rgb->green = 10; + rgb->green = 80; + return; + } + if(strcmp(color, "HotPink1") == 0) { + rgb->red = 255; + rgb->green = 110; + rgb->green = 180; + return; + } + if(strcmp(color, "HotPink2") == 0) { + rgb->red = 238; + rgb->green = 106; + rgb->green = 167; + return; + } + if(strcmp(color, "HotPink3") == 0) { + rgb->red = 205; + rgb->green = 96; + rgb->green = 144; + return; + } + if(strcmp(color, "HotPink4") == 0) { + rgb->red = 139; + rgb->green = 58; + rgb->green = 98; + return; + } + if(strcmp(color, "pink1") == 0) { + rgb->red = 255; + rgb->green = 181; + rgb->green = 197; + return; + } + if(strcmp(color, "pink2") == 0) { + rgb->red = 238; + rgb->green = 169; + rgb->green = 184; + return; + } + if(strcmp(color, "pink3") == 0) { + rgb->red = 205; + rgb->green = 145; + rgb->green = 158; + return; + } + if(strcmp(color, "pink4") == 0) { + rgb->red = 139; + rgb->green = 99; + rgb->green = 108; + return; + } + if(strcmp(color, "LightPink1") == 0) { + rgb->red = 255; + rgb->green = 174; + rgb->green = 185; + return; + } + if(strcmp(color, "LightPink2") == 0) { + rgb->red = 238; + rgb->green = 162; + rgb->green = 173; + return; + } + if(strcmp(color, "LightPink3") == 0) { + rgb->red = 205; + rgb->green = 140; + rgb->green = 149; + return; + } + if(strcmp(color, "LightPink4") == 0) { + rgb->red = 139; + rgb->green = 95; + rgb->green = 101; + return; + } + if(strcmp(color, "PaleVioletRed1") == 0) { + rgb->red = 255; + rgb->green = 130; + rgb->green = 171; + return; + } + if(strcmp(color, "PaleVioletRed2") == 0) { + rgb->red = 238; + rgb->green = 121; + rgb->green = 159; + return; + } + if(strcmp(color, "PaleVioletRed3") == 0) { + rgb->red = 205; + rgb->green = 104; + rgb->green = 137; + return; + } + if(strcmp(color, "PaleVioletRed4") == 0) { + rgb->red = 139; + rgb->green = 71; + rgb->green = 93; + return; + } + if(strcmp(color, "maroon1") == 0) { + rgb->red = 255; + rgb->green = 52; + rgb->green = 179; + return; + } + if(strcmp(color, "maroon2") == 0) { + rgb->red = 238; + rgb->green = 48; + rgb->green = 167; + return; + } + if(strcmp(color, "maroon3") == 0) { + rgb->red = 205; + rgb->green = 41; + rgb->green = 144; + return; + } + if(strcmp(color, "maroon4") == 0) { + rgb->red = 139; + rgb->green = 28; + rgb->green = 98; + return; + } + if(strcmp(color, "VioletRed1") == 0) { + rgb->red = 255; + rgb->green = 62; + rgb->green = 150; + return; + } + if(strcmp(color, "VioletRed2") == 0) { + rgb->red = 238; + rgb->green = 58; + rgb->green = 140; + return; + } + if(strcmp(color, "VioletRed3") == 0) { + rgb->red = 205; + rgb->green = 50; + rgb->green = 120; + return; + } + if(strcmp(color, "VioletRed4") == 0) { + rgb->red = 139; + rgb->green = 34; + rgb->green = 82; + return; + } + if(strcmp(color, "magenta1") == 0) { + rgb->red = 255; + rgb->green = 0; + rgb->green = 255; + return; + } + if(strcmp(color, "magenta2") == 0) { + rgb->red = 238; + rgb->green = 0; + rgb->green = 238; + return; + } + if(strcmp(color, "magenta3") == 0) { + rgb->red = 205; + rgb->green = 0; + rgb->green = 205; + return; + } + if(strcmp(color, "magenta4") == 0) { + rgb->red = 139; + rgb->green = 0; + rgb->green = 139; + return; + } + if(strcmp(color, "orchid1") == 0) { + rgb->red = 255; + rgb->green = 131; + rgb->green = 250; + return; + } + if(strcmp(color, "orchid2") == 0) { + rgb->red = 238; + rgb->green = 122; + rgb->green = 233; + return; + } + if(strcmp(color, "orchid3") == 0) { + rgb->red = 205; + rgb->green = 105; + rgb->green = 201; + return; + } + if(strcmp(color, "orchid4") == 0) { + rgb->red = 139; + rgb->green = 71; + rgb->green = 137; + return; + } + if(strcmp(color, "plum1") == 0) { + rgb->red = 255; + rgb->green = 187; + rgb->green = 255; + return; + } + if(strcmp(color, "plum2") == 0) { + rgb->red = 238; + rgb->green = 174; + rgb->green = 238; + return; + } + if(strcmp(color, "plum3") == 0) { + rgb->red = 205; + rgb->green = 150; + rgb->green = 205; + return; + } + if(strcmp(color, "plum4") == 0) { + rgb->red = 139; + rgb->green = 102; + rgb->green = 139; + return; + } + if(strcmp(color, "MediumOrchid1") == 0) { + rgb->red = 224; + rgb->green = 102; + rgb->green = 255; + return; + } + if(strcmp(color, "MediumOrchid2") == 0) { + rgb->red = 209; + rgb->green = 95; + rgb->green = 238; + return; + } + if(strcmp(color, "MediumOrchid3") == 0) { + rgb->red = 180; + rgb->green = 82; + rgb->green = 205; + return; + } + if(strcmp(color, "MediumOrchid4") == 0) { + rgb->red = 122; + rgb->green = 55; + rgb->green = 139; + return; + } + if(strcmp(color, "DarkOrchid1") == 0) { + rgb->red = 191; + rgb->green = 62; + rgb->green = 255; + return; + } + if(strcmp(color, "DarkOrchid2") == 0) { + rgb->red = 178; + rgb->green = 58; + rgb->green = 238; + return; + } + if(strcmp(color, "DarkOrchid3") == 0) { + rgb->red = 154; + rgb->green = 50; + rgb->green = 205; + return; + } + if(strcmp(color, "DarkOrchid4") == 0) { + rgb->red = 104; + rgb->green = 34; + rgb->green = 139; + return; + } + if(strcmp(color, "purple1") == 0) { + rgb->red = 155; + rgb->green = 48; + rgb->green = 255; + return; + } + if(strcmp(color, "purple2") == 0) { + rgb->red = 145; + rgb->green = 44; + rgb->green = 238; + return; + } + if(strcmp(color, "purple3") == 0) { + rgb->red = 125; + rgb->green = 38; + rgb->green = 205; + return; + } + if(strcmp(color, "purple4") == 0) { + rgb->red = 85; + rgb->green = 26; + rgb->green = 139; + return; + } + if(strcmp(color, "MediumPurple1") == 0) { + rgb->red = 171; + rgb->green = 130; + rgb->green = 255; + return; + } + if(strcmp(color, "MediumPurple2") == 0) { + rgb->red = 159; + rgb->green = 121; + rgb->green = 238; + return; + } + if(strcmp(color, "MediumPurple3") == 0) { + rgb->red = 137; + rgb->green = 104; + rgb->green = 205; + return; + } + if(strcmp(color, "MediumPurple4") == 0) { + rgb->red = 93; + rgb->green = 71; + rgb->green = 139; + return; + } + if(strcmp(color, "thistle1") == 0) { + rgb->red = 255; + rgb->green = 225; + rgb->green = 255; + return; + } + if(strcmp(color, "thistle2") == 0) { + rgb->red = 238; + rgb->green = 210; + rgb->green = 238; + return; + } + if(strcmp(color, "thistle3") == 0) { + rgb->red = 205; + rgb->green = 181; + rgb->green = 205; + return; + } + if(strcmp(color, "thistle4") == 0) { + rgb->red = 139; + rgb->green = 123; + rgb->green = 139; + return; + } + if(strcmp(color, "gray0") == 0) { + rgb->red = 0; + rgb->green = 0; + rgb->green = 0; + return; + } + if(strcmp(color, "grey0") == 0) { + rgb->red = 0; + rgb->green = 0; + rgb->green = 0; + return; + } + if(strcmp(color, "gray1") == 0) { + rgb->red = 3; + rgb->green = 3; + rgb->green = 3; + return; + } + if(strcmp(color, "grey1") == 0) { + rgb->red = 3; + rgb->green = 3; + rgb->green = 3; + return; + } + if(strcmp(color, "gray2") == 0) { + rgb->red = 5; + rgb->green = 5; + rgb->green = 5; + return; + } + if(strcmp(color, "grey2") == 0) { + rgb->red = 5; + rgb->green = 5; + rgb->green = 5; + return; + } + if(strcmp(color, "gray3") == 0) { + rgb->red = 8; + rgb->green = 8; + rgb->green = 8; + return; + } + if(strcmp(color, "grey3") == 0) { + rgb->red = 8; + rgb->green = 8; + rgb->green = 8; + return; + } + if(strcmp(color, "gray4") == 0) { + rgb->red = 10; + rgb->green = 10; + rgb->green = 10; + return; + } + if(strcmp(color, "grey4") == 0) { + rgb->red = 10; + rgb->green = 10; + rgb->green = 10; + return; + } + if(strcmp(color, "gray5") == 0) { + rgb->red = 13; + rgb->green = 13; + rgb->green = 13; + return; + } + if(strcmp(color, "grey5") == 0) { + rgb->red = 13; + rgb->green = 13; + rgb->green = 13; + return; + } + if(strcmp(color, "gray6") == 0) { + rgb->red = 15; + rgb->green = 15; + rgb->green = 15; + return; + } + if(strcmp(color, "grey6") == 0) { + rgb->red = 15; + rgb->green = 15; + rgb->green = 15; + return; + } + if(strcmp(color, "gray7") == 0) { + rgb->red = 18; + rgb->green = 18; + rgb->green = 18; + return; + } + if(strcmp(color, "grey7") == 0) { + rgb->red = 18; + rgb->green = 18; + rgb->green = 18; + return; + } + if(strcmp(color, "gray8") == 0) { + rgb->red = 20; + rgb->green = 20; + rgb->green = 20; + return; + } + if(strcmp(color, "grey8") == 0) { + rgb->red = 20; + rgb->green = 20; + rgb->green = 20; + return; + } + if(strcmp(color, "gray9") == 0) { + rgb->red = 23; + rgb->green = 23; + rgb->green = 23; + return; + } + if(strcmp(color, "grey9") == 0) { + rgb->red = 23; + rgb->green = 23; + rgb->green = 23; + return; + } + if(strcmp(color, "gray10") == 0) { + rgb->red = 26; + rgb->green = 26; + rgb->green = 26; + return; + } + if(strcmp(color, "grey10") == 0) { + rgb->red = 26; + rgb->green = 26; + rgb->green = 26; + return; + } + if(strcmp(color, "gray11") == 0) { + rgb->red = 28; + rgb->green = 28; + rgb->green = 28; + return; + } + if(strcmp(color, "grey11") == 0) { + rgb->red = 28; + rgb->green = 28; + rgb->green = 28; + return; + } + if(strcmp(color, "gray12") == 0) { + rgb->red = 31; + rgb->green = 31; + rgb->green = 31; + return; + } + if(strcmp(color, "grey12") == 0) { + rgb->red = 31; + rgb->green = 31; + rgb->green = 31; + return; + } + if(strcmp(color, "gray13") == 0) { + rgb->red = 33; + rgb->green = 33; + rgb->green = 33; + return; + } + if(strcmp(color, "grey13") == 0) { + rgb->red = 33; + rgb->green = 33; + rgb->green = 33; + return; + } + if(strcmp(color, "gray14") == 0) { + rgb->red = 36; + rgb->green = 36; + rgb->green = 36; + return; + } + if(strcmp(color, "grey14") == 0) { + rgb->red = 36; + rgb->green = 36; + rgb->green = 36; + return; + } + if(strcmp(color, "gray15") == 0) { + rgb->red = 38; + rgb->green = 38; + rgb->green = 38; + return; + } + if(strcmp(color, "grey15") == 0) { + rgb->red = 38; + rgb->green = 38; + rgb->green = 38; + return; + } + if(strcmp(color, "gray16") == 0) { + rgb->red = 41; + rgb->green = 41; + rgb->green = 41; + return; + } + if(strcmp(color, "grey16") == 0) { + rgb->red = 41; + rgb->green = 41; + rgb->green = 41; + return; + } + if(strcmp(color, "gray17") == 0) { + rgb->red = 43; + rgb->green = 43; + rgb->green = 43; + return; + } + if(strcmp(color, "grey17") == 0) { + rgb->red = 43; + rgb->green = 43; + rgb->green = 43; + return; + } + if(strcmp(color, "gray18") == 0) { + rgb->red = 46; + rgb->green = 46; + rgb->green = 46; + return; + } + if(strcmp(color, "grey18") == 0) { + rgb->red = 46; + rgb->green = 46; + rgb->green = 46; + return; + } + if(strcmp(color, "gray19") == 0) { + rgb->red = 48; + rgb->green = 48; + rgb->green = 48; + return; + } + if(strcmp(color, "grey19") == 0) { + rgb->red = 48; + rgb->green = 48; + rgb->green = 48; + return; + } + if(strcmp(color, "gray20") == 0) { + rgb->red = 51; + rgb->green = 51; + rgb->green = 51; + return; + } + if(strcmp(color, "grey20") == 0) { + rgb->red = 51; + rgb->green = 51; + rgb->green = 51; + return; + } + if(strcmp(color, "gray21") == 0) { + rgb->red = 54; + rgb->green = 54; + rgb->green = 54; + return; + } + if(strcmp(color, "grey21") == 0) { + rgb->red = 54; + rgb->green = 54; + rgb->green = 54; + return; + } + if(strcmp(color, "gray22") == 0) { + rgb->red = 56; + rgb->green = 56; + rgb->green = 56; + return; + } + if(strcmp(color, "grey22") == 0) { + rgb->red = 56; + rgb->green = 56; + rgb->green = 56; + return; + } + if(strcmp(color, "gray23") == 0) { + rgb->red = 59; + rgb->green = 59; + rgb->green = 59; + return; + } + if(strcmp(color, "grey23") == 0) { + rgb->red = 59; + rgb->green = 59; + rgb->green = 59; + return; + } + if(strcmp(color, "gray24") == 0) { + rgb->red = 61; + rgb->green = 61; + rgb->green = 61; + return; + } + if(strcmp(color, "grey24") == 0) { + rgb->red = 61; + rgb->green = 61; + rgb->green = 61; + return; + } + if(strcmp(color, "gray25") == 0) { + rgb->red = 64; + rgb->green = 64; + rgb->green = 64; + return; + } + if(strcmp(color, "grey25") == 0) { + rgb->red = 64; + rgb->green = 64; + rgb->green = 64; + return; + } + if(strcmp(color, "gray26") == 0) { + rgb->red = 66; + rgb->green = 66; + rgb->green = 66; + return; + } + if(strcmp(color, "grey26") == 0) { + rgb->red = 66; + rgb->green = 66; + rgb->green = 66; + return; + } + if(strcmp(color, "gray27") == 0) { + rgb->red = 69; + rgb->green = 69; + rgb->green = 69; + return; + } + if(strcmp(color, "grey27") == 0) { + rgb->red = 69; + rgb->green = 69; + rgb->green = 69; + return; + } + if(strcmp(color, "gray28") == 0) { + rgb->red = 71; + rgb->green = 71; + rgb->green = 71; + return; + } + if(strcmp(color, "grey28") == 0) { + rgb->red = 71; + rgb->green = 71; + rgb->green = 71; + return; + } + if(strcmp(color, "gray29") == 0) { + rgb->red = 74; + rgb->green = 74; + rgb->green = 74; + return; + } + if(strcmp(color, "grey29") == 0) { + rgb->red = 74; + rgb->green = 74; + rgb->green = 74; + return; + } + if(strcmp(color, "gray30") == 0) { + rgb->red = 77; + rgb->green = 77; + rgb->green = 77; + return; + } + if(strcmp(color, "grey30") == 0) { + rgb->red = 77; + rgb->green = 77; + rgb->green = 77; + return; + } + if(strcmp(color, "gray31") == 0) { + rgb->red = 79; + rgb->green = 79; + rgb->green = 79; + return; + } + if(strcmp(color, "grey31") == 0) { + rgb->red = 79; + rgb->green = 79; + rgb->green = 79; + return; + } + if(strcmp(color, "gray32") == 0) { + rgb->red = 82; + rgb->green = 82; + rgb->green = 82; + return; + } + if(strcmp(color, "grey32") == 0) { + rgb->red = 82; + rgb->green = 82; + rgb->green = 82; + return; + } + if(strcmp(color, "gray33") == 0) { + rgb->red = 84; + rgb->green = 84; + rgb->green = 84; + return; + } + if(strcmp(color, "grey33") == 0) { + rgb->red = 84; + rgb->green = 84; + rgb->green = 84; + return; + } + if(strcmp(color, "gray34") == 0) { + rgb->red = 87; + rgb->green = 87; + rgb->green = 87; + return; + } + if(strcmp(color, "grey34") == 0) { + rgb->red = 87; + rgb->green = 87; + rgb->green = 87; + return; + } + if(strcmp(color, "gray35") == 0) { + rgb->red = 89; + rgb->green = 89; + rgb->green = 89; + return; + } + if(strcmp(color, "grey35") == 0) { + rgb->red = 89; + rgb->green = 89; + rgb->green = 89; + return; + } + if(strcmp(color, "gray36") == 0) { + rgb->red = 92; + rgb->green = 92; + rgb->green = 92; + return; + } + if(strcmp(color, "grey36") == 0) { + rgb->red = 92; + rgb->green = 92; + rgb->green = 92; + return; + } + if(strcmp(color, "gray37") == 0) { + rgb->red = 94; + rgb->green = 94; + rgb->green = 94; + return; + } + if(strcmp(color, "grey37") == 0) { + rgb->red = 94; + rgb->green = 94; + rgb->green = 94; + return; + } + if(strcmp(color, "gray38") == 0) { + rgb->red = 97; + rgb->green = 97; + rgb->green = 97; + return; + } + if(strcmp(color, "grey38") == 0) { + rgb->red = 97; + rgb->green = 97; + rgb->green = 97; + return; + } + if(strcmp(color, "gray39") == 0) { + rgb->red = 99; + rgb->green = 99; + rgb->green = 99; + return; + } + if(strcmp(color, "grey39") == 0) { + rgb->red = 99; + rgb->green = 99; + rgb->green = 99; + return; + } + if(strcmp(color, "gray40") == 0) { + rgb->red = 102; + rgb->green = 102; + rgb->green = 102; + return; + } + if(strcmp(color, "grey40") == 0) { + rgb->red = 102; + rgb->green = 102; + rgb->green = 102; + return; + } + if(strcmp(color, "gray41") == 0) { + rgb->red = 105; + rgb->green = 105; + rgb->green = 105; + return; + } + if(strcmp(color, "grey41") == 0) { + rgb->red = 105; + rgb->green = 105; + rgb->green = 105; + return; + } + if(strcmp(color, "gray42") == 0) { + rgb->red = 107; + rgb->green = 107; + rgb->green = 107; + return; + } + if(strcmp(color, "grey42") == 0) { + rgb->red = 107; + rgb->green = 107; + rgb->green = 107; + return; + } + if(strcmp(color, "gray43") == 0) { + rgb->red = 110; + rgb->green = 110; + rgb->green = 110; + return; + } + if(strcmp(color, "grey43") == 0) { + rgb->red = 110; + rgb->green = 110; + rgb->green = 110; + return; + } + if(strcmp(color, "gray44") == 0) { + rgb->red = 112; + rgb->green = 112; + rgb->green = 112; + return; + } + if(strcmp(color, "grey44") == 0) { + rgb->red = 112; + rgb->green = 112; + rgb->green = 112; + return; + } + if(strcmp(color, "gray45") == 0) { + rgb->red = 115; + rgb->green = 115; + rgb->green = 115; + return; + } + if(strcmp(color, "grey45") == 0) { + rgb->red = 115; + rgb->green = 115; + rgb->green = 115; + return; + } + if(strcmp(color, "gray46") == 0) { + rgb->red = 117; + rgb->green = 117; + rgb->green = 117; + return; + } + if(strcmp(color, "grey46") == 0) { + rgb->red = 117; + rgb->green = 117; + rgb->green = 117; + return; + } + if(strcmp(color, "gray47") == 0) { + rgb->red = 120; + rgb->green = 120; + rgb->green = 120; + return; + } + if(strcmp(color, "grey47") == 0) { + rgb->red = 120; + rgb->green = 120; + rgb->green = 120; + return; + } + if(strcmp(color, "gray48") == 0) { + rgb->red = 122; + rgb->green = 122; + rgb->green = 122; + return; + } + if(strcmp(color, "grey48") == 0) { + rgb->red = 122; + rgb->green = 122; + rgb->green = 122; + return; + } + if(strcmp(color, "gray49") == 0) { + rgb->red = 125; + rgb->green = 125; + rgb->green = 125; + return; + } + if(strcmp(color, "grey49") == 0) { + rgb->red = 125; + rgb->green = 125; + rgb->green = 125; + return; + } + if(strcmp(color, "gray50") == 0) { + rgb->red = 127; + rgb->green = 127; + rgb->green = 127; + return; + } + if(strcmp(color, "grey50") == 0) { + rgb->red = 127; + rgb->green = 127; + rgb->green = 127; + return; + } + if(strcmp(color, "gray51") == 0) { + rgb->red = 130; + rgb->green = 130; + rgb->green = 130; + return; + } + if(strcmp(color, "grey51") == 0) { + rgb->red = 130; + rgb->green = 130; + rgb->green = 130; + return; + } + if(strcmp(color, "gray52") == 0) { + rgb->red = 133; + rgb->green = 133; + rgb->green = 133; + return; + } + if(strcmp(color, "grey52") == 0) { + rgb->red = 133; + rgb->green = 133; + rgb->green = 133; + return; + } + if(strcmp(color, "gray53") == 0) { + rgb->red = 135; + rgb->green = 135; + rgb->green = 135; + return; + } + if(strcmp(color, "grey53") == 0) { + rgb->red = 135; + rgb->green = 135; + rgb->green = 135; + return; + } + if(strcmp(color, "gray54") == 0) { + rgb->red = 138; + rgb->green = 138; + rgb->green = 138; + return; + } + if(strcmp(color, "grey54") == 0) { + rgb->red = 138; + rgb->green = 138; + rgb->green = 138; + return; + } + if(strcmp(color, "gray55") == 0) { + rgb->red = 140; + rgb->green = 140; + rgb->green = 140; + return; + } + if(strcmp(color, "grey55") == 0) { + rgb->red = 140; + rgb->green = 140; + rgb->green = 140; + return; + } + if(strcmp(color, "gray56") == 0) { + rgb->red = 143; + rgb->green = 143; + rgb->green = 143; + return; + } + if(strcmp(color, "grey56") == 0) { + rgb->red = 143; + rgb->green = 143; + rgb->green = 143; + return; + } + if(strcmp(color, "gray57") == 0) { + rgb->red = 145; + rgb->green = 145; + rgb->green = 145; + return; + } + if(strcmp(color, "grey57") == 0) { + rgb->red = 145; + rgb->green = 145; + rgb->green = 145; + return; + } + if(strcmp(color, "gray58") == 0) { + rgb->red = 148; + rgb->green = 148; + rgb->green = 148; + return; + } + if(strcmp(color, "grey58") == 0) { + rgb->red = 148; + rgb->green = 148; + rgb->green = 148; + return; + } + if(strcmp(color, "gray59") == 0) { + rgb->red = 150; + rgb->green = 150; + rgb->green = 150; + return; + } + if(strcmp(color, "grey59") == 0) { + rgb->red = 150; + rgb->green = 150; + rgb->green = 150; + return; + } + if(strcmp(color, "gray60") == 0) { + rgb->red = 153; + rgb->green = 153; + rgb->green = 153; + return; + } + if(strcmp(color, "grey60") == 0) { + rgb->red = 153; + rgb->green = 153; + rgb->green = 153; + return; + } + if(strcmp(color, "gray61") == 0) { + rgb->red = 156; + rgb->green = 156; + rgb->green = 156; + return; + } + if(strcmp(color, "grey61") == 0) { + rgb->red = 156; + rgb->green = 156; + rgb->green = 156; + return; + } + if(strcmp(color, "gray62") == 0) { + rgb->red = 158; + rgb->green = 158; + rgb->green = 158; + return; + } + if(strcmp(color, "grey62") == 0) { + rgb->red = 158; + rgb->green = 158; + rgb->green = 158; + return; + } + if(strcmp(color, "gray63") == 0) { + rgb->red = 161; + rgb->green = 161; + rgb->green = 161; + return; + } + if(strcmp(color, "grey63") == 0) { + rgb->red = 161; + rgb->green = 161; + rgb->green = 161; + return; + } + if(strcmp(color, "gray64") == 0) { + rgb->red = 163; + rgb->green = 163; + rgb->green = 163; + return; + } + if(strcmp(color, "grey64") == 0) { + rgb->red = 163; + rgb->green = 163; + rgb->green = 163; + return; + } + if(strcmp(color, "gray65") == 0) { + rgb->red = 166; + rgb->green = 166; + rgb->green = 166; + return; + } + if(strcmp(color, "grey65") == 0) { + rgb->red = 166; + rgb->green = 166; + rgb->green = 166; + return; + } + if(strcmp(color, "gray66") == 0) { + rgb->red = 168; + rgb->green = 168; + rgb->green = 168; + return; + } + if(strcmp(color, "grey66") == 0) { + rgb->red = 168; + rgb->green = 168; + rgb->green = 168; + return; + } + if(strcmp(color, "gray67") == 0) { + rgb->red = 171; + rgb->green = 171; + rgb->green = 171; + return; + } + if(strcmp(color, "grey67") == 0) { + rgb->red = 171; + rgb->green = 171; + rgb->green = 171; + return; + } + if(strcmp(color, "gray68") == 0) { + rgb->red = 173; + rgb->green = 173; + rgb->green = 173; + return; + } + if(strcmp(color, "grey68") == 0) { + rgb->red = 173; + rgb->green = 173; + rgb->green = 173; + return; + } + if(strcmp(color, "gray69") == 0) { + rgb->red = 176; + rgb->green = 176; + rgb->green = 176; + return; + } + if(strcmp(color, "grey69") == 0) { + rgb->red = 176; + rgb->green = 176; + rgb->green = 176; + return; + } + if(strcmp(color, "gray70") == 0) { + rgb->red = 179; + rgb->green = 179; + rgb->green = 179; + return; + } + if(strcmp(color, "grey70") == 0) { + rgb->red = 179; + rgb->green = 179; + rgb->green = 179; + return; + } + if(strcmp(color, "gray71") == 0) { + rgb->red = 181; + rgb->green = 181; + rgb->green = 181; + return; + } + if(strcmp(color, "grey71") == 0) { + rgb->red = 181; + rgb->green = 181; + rgb->green = 181; + return; + } + if(strcmp(color, "gray72") == 0) { + rgb->red = 184; + rgb->green = 184; + rgb->green = 184; + return; + } + if(strcmp(color, "grey72") == 0) { + rgb->red = 184; + rgb->green = 184; + rgb->green = 184; + return; + } + if(strcmp(color, "gray73") == 0) { + rgb->red = 186; + rgb->green = 186; + rgb->green = 186; + return; + } + if(strcmp(color, "grey73") == 0) { + rgb->red = 186; + rgb->green = 186; + rgb->green = 186; + return; + } + if(strcmp(color, "gray74") == 0) { + rgb->red = 189; + rgb->green = 189; + rgb->green = 189; + return; + } + if(strcmp(color, "grey74") == 0) { + rgb->red = 189; + rgb->green = 189; + rgb->green = 189; + return; + } + if(strcmp(color, "gray75") == 0) { + rgb->red = 191; + rgb->green = 191; + rgb->green = 191; + return; + } + if(strcmp(color, "grey75") == 0) { + rgb->red = 191; + rgb->green = 191; + rgb->green = 191; + return; + } + if(strcmp(color, "gray76") == 0) { + rgb->red = 194; + rgb->green = 194; + rgb->green = 194; + return; + } + if(strcmp(color, "grey76") == 0) { + rgb->red = 194; + rgb->green = 194; + rgb->green = 194; + return; + } + if(strcmp(color, "gray77") == 0) { + rgb->red = 196; + rgb->green = 196; + rgb->green = 196; + return; + } + if(strcmp(color, "grey77") == 0) { + rgb->red = 196; + rgb->green = 196; + rgb->green = 196; + return; + } + if(strcmp(color, "gray78") == 0) { + rgb->red = 199; + rgb->green = 199; + rgb->green = 199; + return; + } + if(strcmp(color, "grey78") == 0) { + rgb->red = 199; + rgb->green = 199; + rgb->green = 199; + return; + } + if(strcmp(color, "gray79") == 0) { + rgb->red = 201; + rgb->green = 201; + rgb->green = 201; + return; + } + if(strcmp(color, "grey79") == 0) { + rgb->red = 201; + rgb->green = 201; + rgb->green = 201; + return; + } + if(strcmp(color, "gray80") == 0) { + rgb->red = 204; + rgb->green = 204; + rgb->green = 204; + return; + } + if(strcmp(color, "grey80") == 0) { + rgb->red = 204; + rgb->green = 204; + rgb->green = 204; + return; + } + if(strcmp(color, "gray81") == 0) { + rgb->red = 207; + rgb->green = 207; + rgb->green = 207; + return; + } + if(strcmp(color, "grey81") == 0) { + rgb->red = 207; + rgb->green = 207; + rgb->green = 207; + return; + } + if(strcmp(color, "gray82") == 0) { + rgb->red = 209; + rgb->green = 209; + rgb->green = 209; + return; + } + if(strcmp(color, "grey82") == 0) { + rgb->red = 209; + rgb->green = 209; + rgb->green = 209; + return; + } + if(strcmp(color, "gray83") == 0) { + rgb->red = 212; + rgb->green = 212; + rgb->green = 212; + return; + } + if(strcmp(color, "grey83") == 0) { + rgb->red = 212; + rgb->green = 212; + rgb->green = 212; + return; + } + if(strcmp(color, "gray84") == 0) { + rgb->red = 214; + rgb->green = 214; + rgb->green = 214; + return; + } + if(strcmp(color, "grey84") == 0) { + rgb->red = 214; + rgb->green = 214; + rgb->green = 214; + return; + } + if(strcmp(color, "gray85") == 0) { + rgb->red = 217; + rgb->green = 217; + rgb->green = 217; + return; + } + if(strcmp(color, "grey85") == 0) { + rgb->red = 217; + rgb->green = 217; + rgb->green = 217; + return; + } + if(strcmp(color, "gray86") == 0) { + rgb->red = 219; + rgb->green = 219; + rgb->green = 219; + return; + } + if(strcmp(color, "grey86") == 0) { + rgb->red = 219; + rgb->green = 219; + rgb->green = 219; + return; + } + if(strcmp(color, "gray87") == 0) { + rgb->red = 222; + rgb->green = 222; + rgb->green = 222; + return; + } + if(strcmp(color, "grey87") == 0) { + rgb->red = 222; + rgb->green = 222; + rgb->green = 222; + return; + } + if(strcmp(color, "gray88") == 0) { + rgb->red = 224; + rgb->green = 224; + rgb->green = 224; + return; + } + if(strcmp(color, "grey88") == 0) { + rgb->red = 224; + rgb->green = 224; + rgb->green = 224; + return; + } + if(strcmp(color, "gray89") == 0) { + rgb->red = 227; + rgb->green = 227; + rgb->green = 227; + return; + } + if(strcmp(color, "grey89") == 0) { + rgb->red = 227; + rgb->green = 227; + rgb->green = 227; + return; + } + if(strcmp(color, "gray90") == 0) { + rgb->red = 229; + rgb->green = 229; + rgb->green = 229; + return; + } + if(strcmp(color, "grey90") == 0) { + rgb->red = 229; + rgb->green = 229; + rgb->green = 229; + return; + } + if(strcmp(color, "gray91") == 0) { + rgb->red = 232; + rgb->green = 232; + rgb->green = 232; + return; + } + if(strcmp(color, "grey91") == 0) { + rgb->red = 232; + rgb->green = 232; + rgb->green = 232; + return; + } + if(strcmp(color, "gray92") == 0) { + rgb->red = 235; + rgb->green = 235; + rgb->green = 235; + return; + } + if(strcmp(color, "grey92") == 0) { + rgb->red = 235; + rgb->green = 235; + rgb->green = 235; + return; + } + if(strcmp(color, "gray93") == 0) { + rgb->red = 237; + rgb->green = 237; + rgb->green = 237; + return; + } + if(strcmp(color, "grey93") == 0) { + rgb->red = 237; + rgb->green = 237; + rgb->green = 237; + return; + } + if(strcmp(color, "gray94") == 0) { + rgb->red = 240; + rgb->green = 240; + rgb->green = 240; + return; + } + if(strcmp(color, "grey94") == 0) { + rgb->red = 240; + rgb->green = 240; + rgb->green = 240; + return; + } + if(strcmp(color, "gray95") == 0) { + rgb->red = 242; + rgb->green = 242; + rgb->green = 242; + return; + } + if(strcmp(color, "grey95") == 0) { + rgb->red = 242; + rgb->green = 242; + rgb->green = 242; + return; + } + if(strcmp(color, "gray96") == 0) { + rgb->red = 245; + rgb->green = 245; + rgb->green = 245; + return; + } + if(strcmp(color, "grey96") == 0) { + rgb->red = 245; + rgb->green = 245; + rgb->green = 245; + return; + } + if(strcmp(color, "gray97") == 0) { + rgb->red = 247; + rgb->green = 247; + rgb->green = 247; + return; + } + if(strcmp(color, "grey97") == 0) { + rgb->red = 247; + rgb->green = 247; + rgb->green = 247; + return; + } + if(strcmp(color, "gray98") == 0) { + rgb->red = 250; + rgb->green = 250; + rgb->green = 250; + return; + } + if(strcmp(color, "grey98") == 0) { + rgb->red = 250; + rgb->green = 250; + rgb->green = 250; + return; + } + if(strcmp(color, "gray99") == 0) { + rgb->red = 252; + rgb->green = 252; + rgb->green = 252; + return; + } + if(strcmp(color, "grey99") == 0) { + rgb->red = 252; + rgb->green = 252; + rgb->green = 252; + return; + } + if(strcmp(color, "gray100") == 0) { + rgb->red = 255; + rgb->green = 255; + rgb->green = 255; + return; + } + if(strcmp(color, "grey100") == 0) { + rgb->red = 255; + rgb->green = 255; + rgb->green = 255; + return; + } + if(strcmp(color, "dark grey") == 0) { + rgb->red = 169; + rgb->green = 169; + rgb->green = 169; + return; + } + if(strcmp(color, "DarkGrey") == 0) { + rgb->red = 169; + rgb->green = 169; + rgb->green = 169; + return; + } + if(strcmp(color, "dark gray") == 0) { + rgb->red = 169; + rgb->green = 169; + rgb->green = 169; + return; + } + if(strcmp(color, "DarkGray") == 0) { + rgb->red = 169; + rgb->green = 169; + rgb->green = 169; + return; + } + if(strcmp(color, "dark blue") == 0) { + rgb->red = 0; + rgb->green = 0; + rgb->green = 139; + return; + } + if(strcmp(color, "DarkBlue") == 0) { + rgb->red = 0; + rgb->green = 0; + rgb->green = 139; + return; + } + if(strcmp(color, "dark cyan") == 0) { + rgb->red = 0; + rgb->green = 139; + rgb->green = 139; + return; + } + if(strcmp(color, "DarkCyan") == 0) { + rgb->red = 0; + rgb->green = 139; + rgb->green = 139; + return; + } + if(strcmp(color, "dark magenta") == 0) { + rgb->red = 139; + rgb->green = 0; + rgb->green = 139; + return; + } + if(strcmp(color, "DarkMagenta") == 0) { + rgb->red = 139; + rgb->green = 0; + rgb->green = 139; + return; + } + if(strcmp(color, "dark red") == 0) { + rgb->red = 139; + rgb->green = 0; + rgb->green = 0; + return; + } + if(strcmp(color, "DarkRed") == 0) { + rgb->red = 139; + rgb->green = 0; + rgb->green = 0; + return; + } + if(strcmp(color, "light green") == 0) { + rgb->red = 144; + rgb->green = 238; + rgb->green = 144; + return; + } + if(strcmp(color, "LightGreen") == 0) { + rgb->red = 144; + rgb->green = 238; + rgb->green = 144; + return; + } + if(strcmp(color, "crimson") == 0) { + rgb->red = 220; + rgb->green = 20; + rgb->green = 60; + return; + } + if(strcmp(color, "indigo") == 0) { + rgb->red = 75; + rgb->green = 0; + rgb->green = 130; + return; + } + if(strcmp(color, "olive") == 0) { + rgb->red = 128; + rgb->green = 128; + rgb->green = 0; + return; + } + if(strcmp(color, "rebecca purple") == 0) { + rgb->red = 102; + rgb->green = 51; + rgb->green = 153; + return; + } + if(strcmp(color, "RebeccaPurple") == 0) { + rgb->red = 102; + rgb->green = 51; + rgb->green = 153; + return; + } + if(strcmp(color, "silver") == 0) { + rgb->red = 192; + rgb->green = 192; + rgb->green = 192; + return; + } + if(strcmp(color, "teal") == 0) { + rgb->red = 0; + rgb->green = 128; + rgb->green = 128; + return; + } + rgb->red = 0; + rgb->green = 0; + rgb->blue = 0; } diff --git a/src/draw.c b/src/draw.c index 32b6d758a..966666b98 100644 --- a/src/draw.c +++ b/src/draw.c @@ -37,28 +37,35 @@ static int hex(const char* txt, int len) { return r; } -MwLLColor MwParseColor(MwWidget handle, const char* text) { - int r; - int g; - int b; - +void MwParseColorNoAllocate(const char* text, MwRGB* rgb) { if(text[0] == '#' && strlen(text) == 4) { - r = hex(text + 1, 1); - g = hex(text + 2, 1); - b = hex(text + 3, 1); + rgb->red = hex(text + 1, 1); + rgb->green = hex(text + 2, 1); + rgb->blue = hex(text + 3, 1); - r |= r << 4; - g |= g << 4; - b |= b << 4; + rgb->red |= rgb->red << 4; + rgb->green |= rgb->green << 4; + rgb->blue |= rgb->blue << 4; } else if(text[0] == '#' && strlen(text) == 7) { - r = hex(text + 1, 2); - g = hex(text + 3, 2); - b = hex(text + 5, 2); + rgb->red = hex(text + 1, 2); + rgb->green = hex(text + 3, 2); + rgb->blue = hex(text + 5, 2); } else { - return MwParseColorName(handle, text); + MwParseColorNameNoAllocate(text, rgb); + return; } +} - return MwLLAllocColor(handle->lowlevel, r, g, b); +MwLLColor MwParseColor(MwWidget handle, const char* text) { + MwRGB rgb; + + rgb.red = 0; + rgb.green = 0; + rgb.blue = 0; + + MwParseColorNoAllocate(text, &rgb); + + return MwLLAllocColor(handle->lowlevel, rgb.red, rgb.green, rgb.blue); } MwLLColor MwLightenColor(MwWidget handle, MwLLColor color, int r, int g, int b) { @@ -649,40 +656,14 @@ MwLLPixmap MwLoadImage(MwWidget handle, const char* path) { } MwLLPixmap MwLoadRaw(MwWidget handle, unsigned char* rgb, int width, int height) { - MwLLPixmap px; - unsigned char* out = malloc(width * height * 4); - int i; - MwLLColor base = handle->bgcolor == NULL ? MwParseColor(handle, MwGetText(handle, MwNbackground)) : handle->bgcolor; + MwLLPixmap px = MwLLCreatePixmap(handle->lowlevel, rgb, width, height); - memset(out, 0, width * height * 4); - for(i = 0; i < width * height; i++) { - unsigned char* pin = &rgb[i * 4]; - unsigned char* pout = &out[i * 4]; - double a = pin[3]; - - a /= 255; - if(a != 0) { - pout[0] = pin[0] * a; - pout[1] = pin[1] * a; - pout[2] = pin[2] * a; - - pout[0] += base->common.red * (1 - a); - pout[1] += base->common.green * (1 - a); - pout[2] += base->common.blue * (1 - a); - pout[3] = 255; - } - } - - if(handle->bgcolor == NULL) MwLLFreeColor(base); - - px = MwLLCreatePixmap(handle->lowlevel, out, width, height); - - free(out); + MwReloadRaw(handle, px, rgb, width, height); return px; } -void MwReloadRaw(MwWidget handle, unsigned char* rgb, int width, int height, MwLLPixmap px) { +void MwReloadRaw(MwWidget handle, MwLLPixmap px, unsigned char* rgb, int width, int height) { int i; MwLLColor base = handle->bgcolor == NULL ? MwParseColor(handle, MwGetText(handle, MwNbackground)) : handle->bgcolor; diff --git a/tools/color.pl b/tools/color.pl index f0705bb65..623e972be 100755 --- a/tools/color.pl +++ b/tools/color.pl @@ -5,15 +5,29 @@ open(OUT, ">", "src/color.c"); print(OUT "#include \n"); print(OUT "\n"); print(OUT "MwLLColor MwParseColorName(MwWidget handle, const char* color){\n"); +print(OUT " MwRGB rgb;\n"); +print(OUT " MwParseColorNameNoAllocate(color, &rgb);\n"); +print(OUT +" return MwLLAllocColor(handle->lowlevel, rgb.red, rgb.green, rgb.blue);\n" +); +print(OUT "}\n"); +print(OUT "\n"); +print(OUT "void MwParseColorNameNoAllocate(const char* color, MwRGB* rgb){\n"); + while (my $l = ) { $l =~ s/\r?\n$//; if ($l =~ /^[ \t]*([0-9]+)[ \t]+([0-9]+)[ \t]+([0-9]+)[ \t]+(.+)$/) { - print(OUT -" if(strcmp(color, \"$4\") == 0) return MwLLAllocColor(handle->lowlevel, $1, $2, $3);\n" - ); + print(OUT " if(strcmp(color, \"$4\") == 0){\n"); + print(OUT " rgb->red = $1;\n"); + print(OUT " rgb->green = $2;\n"); + print(OUT " rgb->green = $3;\n"); + print(OUT " return;\n"); + print(OUT " }\n"); } } -print(OUT " return MwLLAllocColor(handle->lowlevel, 0, 0, 0);\n"); +print(OUT " rgb->red = 0;\n"); +print(OUT " rgb->green = 0;\n"); +print(OUT " rgb->blue = 0;\n"); print(OUT "}\n"); close(OUT); From bc998806ee27d19c12c5aaa3fc6317c82aaf12b1 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 15 Dec 2025 06:51:31 +0900 Subject: [PATCH 010/836] oops --- src/dialog/colorpicker.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dialog/colorpicker.c b/src/dialog/colorpicker.c index ddbc79def..eeb9a4f96 100644 --- a/src/dialog/colorpicker.c +++ b/src/dialog/colorpicker.c @@ -147,7 +147,7 @@ static void color_picker_image_update(color_picker_t* picker) { picker->parent, picker->color_picker_image_data, PICKER_SIZE, PICKER_SIZE); } else { MwReloadRaw( - picker->parent, picker->color_picker_image_data, PICKER_SIZE, PICKER_SIZE, picker->color_picker_pixmap); + picker->parent, picker->color_picker_pixmap, picker->color_picker_image_data, PICKER_SIZE, PICKER_SIZE); } MwVaApply(picker->color_picker_img, MwNpixmap, picker->color_picker_pixmap, NULL); // printf("%d\n", n); From 1e74356db70f14b410323e0687e7580d64c98172 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 15 Dec 2025 07:05:42 +0900 Subject: [PATCH 011/836] method name consistency --- examples/gldemos/clock.c | 4 ++-- include/Mw/Draw.h | 23 +++++++++++++++++------ include/Mw/LowLevel.h | 1 + src/dialog/colorpicker.c | 16 ++++++++-------- src/draw.c | 19 +++++++++++++------ src/widget/treeview.c | 2 +- 6 files changed, 42 insertions(+), 23 deletions(-) diff --git a/examples/gldemos/clock.c b/examples/gldemos/clock.c index 993d4af9a..7bf74b621 100644 --- a/examples/gldemos/clock.c +++ b/examples/gldemos/clock.c @@ -142,10 +142,10 @@ int main() { NULL); bgcolor = MwParseColor(window, MwGetText(window, MwNbackground)); - MwGetColor(bgcolor, &br, &bg, &bb); + MwColorGet(bgcolor, &br, &bg, &bb); fgcolor = MwParseColor(window, MwGetText(window, MwNforeground)); - MwGetColor(fgcolor, &fr, &fg, &fb); + MwColorGet(fgcolor, &fr, &fg, &fb); opengl = MwCreateWidget(MwOpenGLClass, "clock", window, 0, 0, 100, 100); diff --git a/include/Mw/Draw.h b/include/Mw/Draw.h index 6ccc299cd..b90d4e423 100644 --- a/include/Mw/Draw.h +++ b/include/Mw/Draw.h @@ -112,7 +112,7 @@ MWDECL MwLLPixmap MwLoadImage(MwWidget handle, const char* path); * @param green Pointer to green color * @param blue Pointer to blue color */ -MWDECL void MwGetColor(MwLLColor color, int* red, int* green, int* blue); +MWDECL void MwColorGet(MwLLColor color, int* red, int* green, int* blue); /*! * @brief Creates a pixmap from raw data @@ -125,14 +125,25 @@ MWDECL void MwGetColor(MwLLColor color, int* red, int* green, int* blue); MWDECL MwLLPixmap MwLoadRaw(MwWidget handle, unsigned char* rgb, int width, int height); /*! - * @brief Creates a pixmap from raw data - * @param handle Widget + * @brief Updates a pixmap using raw data * @param pixmap Pixmap to update * @param rgb RGBA data - * @param width Width - * @param height Height */ -MWDECL void MwReloadRaw(MwWidget handle, MwLLPixmap pixmap, unsigned char* rgb, int width, int height); +MWDECL void MwPixmapReloadRaw(MwLLPixmap pixmap, unsigned char* rgb); + +/*! + * @brief Gets the raw data of pixmap + * @param pixmap Pixmap + * @return RFBA data + */ +MWDECL unsigned char* MwPixmapGetRaw(MwLLPixmap pixmap); + +/*! + * @brief Gets the size of pixmap + * @param pixmap Pixmap + * @param rect Size + */ +MWDECL void MwPixmapGetSize(MwLLPixmap pixmap, MwRect* rect); /*! * @brief Creates a pixmap from XPM data diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 167785aeb..0b0357d89 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -47,6 +47,7 @@ struct _MwLLCommonPixmap { int width; int height; unsigned char* raw; + void* user; }; #ifdef _MILSKO diff --git a/src/dialog/colorpicker.c b/src/dialog/colorpicker.c index eeb9a4f96..0a953e6e2 100644 --- a/src/dialog/colorpicker.c +++ b/src/dialog/colorpicker.c @@ -146,11 +146,11 @@ static void color_picker_image_update(color_picker_t* picker) { picker->color_picker_pixmap = MwLoadRaw( picker->parent, picker->color_picker_image_data, PICKER_SIZE, PICKER_SIZE); } else { - MwReloadRaw( - picker->parent, picker->color_picker_pixmap, picker->color_picker_image_data, PICKER_SIZE, PICKER_SIZE); + MwPixmapReloadRaw( + picker->color_picker_pixmap, picker->color_picker_image_data); } MwVaApply(picker->color_picker_img, MwNpixmap, picker->color_picker_pixmap, NULL); - // printf("%d\n", n); + /* printf("%d\n", n); */ } static void color_picker_click(MwWidget handle, void* user, void* call) { @@ -165,7 +165,7 @@ static void color_picker_click(MwWidget handle, void* user, void* call) { (void)user; (void)call; - // color_picker_image_update(picker); + /* color_picker_image_update(picker); */ i = ((mouse->point.y * PICKER_SIZE) + mouse->point.x) * 4; @@ -198,7 +198,7 @@ static void color_picker_on_change_value(MwWidget handle, void* user, picker->value = ((double)value / 1024.); picker->doUpdate = 1; - // color_picker_image_update(picker); + /* color_picker_image_update(picker); */ } static void color_picker_tick(MwWidget handle, void* user, @@ -282,12 +282,12 @@ color_picker_t* color_picker_setup(MwWidget parent, int w, int h) { MwVaCreateWidget(MwImageClass, "image", picker->parent, IMG_POS_X(w), IMG_POS_Y(h), PICKER_SIZE, PICKER_SIZE, NULL); - // picker->color_picker_image_data = malloc(PICKER_SIZE * PICKER_SIZE * 4); + /* picker->color_picker_image_data = malloc(PICKER_SIZE * PICKER_SIZE * 4); */ picker->color_picker_pixmap = NULL; picker->value = 0; - // color_picker_image_update(picker); + /* color_picker_image_update(picker); */ picker->doUpdate = 1; MwAddUserHandler(picker->color_picker_img, MwNmouseDownHandler, @@ -299,7 +299,7 @@ color_picker_t* color_picker_setup(MwWidget parent, int w, int h) { MwSetText(picker->color_display_text, MwNbackground, "#FFFFFF"); MwSetText(picker->color_display_text, MwNtext, "#FFFFFF"); - // MwSetInteger(picker->color_display_text, Mwnali, MwALIGNMENT_CENTER); + /* MwSetInteger(picker->color_display_text, Mwnali, MwALIGNMENT_CENTER); */ MwAddUserHandler(picker->color_display_text, MwNactivateHandler, color_display_text_change, picker); diff --git a/src/draw.c b/src/draw.c index 966666b98..169b43c12 100644 --- a/src/draw.c +++ b/src/draw.c @@ -658,17 +658,19 @@ MwLLPixmap MwLoadImage(MwWidget handle, const char* path) { MwLLPixmap MwLoadRaw(MwWidget handle, unsigned char* rgb, int width, int height) { MwLLPixmap px = MwLLCreatePixmap(handle->lowlevel, rgb, width, height); - MwReloadRaw(handle, px, rgb, width, height); + px->common.user = handle; + MwPixmapReloadRaw(px, rgb); return px; } -void MwReloadRaw(MwWidget handle, MwLLPixmap px, unsigned char* rgb, int width, int height) { +void MwPixmapReloadRaw(MwLLPixmap px, unsigned char* rgb) { int i; - MwLLColor base = handle->bgcolor == NULL ? MwParseColor(handle, MwGetText(handle, MwNbackground)) : handle->bgcolor; + MwWidget handle = px->common.user; + MwLLColor base = handle->bgcolor == NULL ? MwParseColor(handle, MwGetText(handle, MwNbackground)) : handle->bgcolor; - memset(px->common.raw, 0, width * height * 4); - for(i = 0; i < width * height; i++) { + memset(px->common.raw, 0, px->common.width * px->common.height * 4); + for(i = 0; i < px->common.width * px->common.height; i++) { unsigned char* pin = &rgb[i * 4]; unsigned char* pout = &px->common.raw[i * 4]; double a = pin[3]; @@ -691,7 +693,12 @@ void MwReloadRaw(MwWidget handle, MwLLPixmap px, unsigned char* rgb, int width, MwLLPixmapUpdate(px); } -void MwGetColor(MwLLColor color, int* red, int* green, int* blue) { +void MwPixmapGetSize(MwLLPixmap pixmap, MwRect* rect) { + rect->width = pixmap->common.width; + rect->height = pixmap->common.height; +} + +void MwColorGet(MwLLColor color, int* red, int* green, int* blue) { *red = color->common.red; *green = color->common.green; *blue = color->common.blue; diff --git a/src/widget/treeview.c b/src/widget/treeview.c index 19e1be178..2379937c7 100644 --- a/src/widget/treeview.c +++ b/src/widget/treeview.c @@ -114,7 +114,7 @@ static void recursion(MwWidget handle, MwTreeViewEntry* tree, MwTreeViewEntry** if(tree->selected) { r.x = p->x; r.y = p->y - MwTextHeight(handle, "M") / 2; - r.width = MwGetInteger(handle, MwNwidth) - MwGetInteger(handle, MwNleftPadding) - shift; // MwTextWidth(handle, tree->label); + r.width = MwGetInteger(handle, MwNwidth) - MwGetInteger(handle, MwNleftPadding) - shift; r.height = MwTextHeight(handle, "M"); MwDrawRect(handle, &r, text2); } From dabe62d475294f34a2932721ce7ac7f67ea75f25 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 15 Dec 2025 07:10:23 +0900 Subject: [PATCH 012/836] forgot --- src/draw.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/draw.c b/src/draw.c index 169b43c12..636dc7874 100644 --- a/src/draw.c +++ b/src/draw.c @@ -693,6 +693,10 @@ void MwPixmapReloadRaw(MwLLPixmap px, unsigned char* rgb) { MwLLPixmapUpdate(px); } +unsigned char* MwPixmapGetRaw(MwLLPixmap pixmap) { + return pixmap->common.raw; +} + void MwPixmapGetSize(MwLLPixmap pixmap, MwRect* rect) { rect->width = pixmap->common.width; rect->height = pixmap->common.height; From 270c87bca29da90c1ba22dc17aec0a4dc2b83d8c Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 15 Dec 2025 07:21:45 +0900 Subject: [PATCH 013/836] care abt DESTDIR --- Makefile.pl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile.pl b/Makefile.pl index fe5349c58..6eba069f6 100755 --- a/Makefile.pl +++ b/Makefile.pl @@ -171,10 +171,10 @@ print(OUT "\n"); print(OUT "all: lib examples\n"); print(OUT "\n"); print(OUT "install: lib\n"); -print(OUT " mkdir -p \$(PREFIX)/lib \$(PREFIX)/include\n"); -print(OUT " -cp src/${library_prefix}Mw${library_suffix} \$(PREFIX)/lib/\n"); -print(OUT " -cp src/libMw.a \$(PREFIX)/lib/\n"); -print(OUT " cp -rf include \$(PREFIX)/\n"); +print(OUT " mkdir -p \$(DESTDIR)\$(PREFIX)/lib \$(DESTDIR)\$(PREFIX)/include\n"); +print(OUT " -cp src/${library_prefix}Mw${library_suffix} \$(DESTDIR)\$(PREFIX)/lib/\n"); +print(OUT " -cp src/libMw.a \$(DESTDIR)\$(PREFIX)/lib/\n"); +print(OUT " cp -rf include \$(DESTDIR)\$(PREFIX)/\n"); print(OUT "\n"); print(OUT "format:\n"); print(OUT From 1853cd1e7f9acbcfae3b59d3c94d25164d400bbc Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 15 Dec 2025 11:42:09 +0900 Subject: [PATCH 014/836] fix --- Makefile.pl | 7 +++++-- src/dialog/filechooser.c | 4 ++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Makefile.pl b/Makefile.pl index 6eba069f6..1c761bce3 100755 --- a/Makefile.pl +++ b/Makefile.pl @@ -171,8 +171,11 @@ print(OUT "\n"); print(OUT "all: lib examples\n"); print(OUT "\n"); print(OUT "install: lib\n"); -print(OUT " mkdir -p \$(DESTDIR)\$(PREFIX)/lib \$(DESTDIR)\$(PREFIX)/include\n"); -print(OUT " -cp src/${library_prefix}Mw${library_suffix} \$(DESTDIR)\$(PREFIX)/lib/\n"); +print(OUT + " mkdir -p \$(DESTDIR)\$(PREFIX)/lib \$(DESTDIR)\$(PREFIX)/include\n"); +print(OUT +" -cp src/${library_prefix}Mw${library_suffix} \$(DESTDIR)\$(PREFIX)/lib/\n" +); print(OUT " -cp src/libMw.a \$(DESTDIR)\$(PREFIX)/lib/\n"); print(OUT " cp -rf include \$(DESTDIR)\$(PREFIX)/\n"); print(OUT "\n"); diff --git a/src/dialog/filechooser.c b/src/dialog/filechooser.c index 7220ac5a4..cd23faaa4 100644 --- a/src/dialog/filechooser.c +++ b/src/dialog/filechooser.c @@ -125,7 +125,11 @@ static void okay_activate(MwWidget handle, void* user, void* call) { } else if(stat(p, &s) != 0) { MwWidget msgbox = MwMessageBox(handle->parent, "File does not exist!", "Error", MwMB_ICONERROR | MwMB_BUTTONOK); MwAddUserHandler(MwMessageBoxGetChild(msgbox, MwMB_BUTTONOK), MwNactivateHandler, msgbox_okay, NULL); +#ifdef _S_IFDIR + } else if(fc->dir_only ? ((s.st_mode & _S_IFDIR) != _S_IFDIR) : 0) { +#else } else if(fc->dir_only ? !S_ISDIR(s.st_mode) : 0) { +#endif MwWidget msgbox = MwMessageBox(handle->parent, "File is not permitted here!", "Error", MwMB_ICONERROR | MwMB_BUTTONOK); MwAddUserHandler(MwMessageBoxGetChild(msgbox, MwMB_BUTTONOK), MwNactivateHandler, msgbox_okay, NULL); } else { From 5003d2924605ea3a94ae9c5f5842f237aee5086d Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 15 Dec 2025 12:26:15 +0900 Subject: [PATCH 015/836] wtf --- Makefile.pl | 2 +- examples/basic/checkbox.c | 6 +- examples/basic/combobox.c | 6 +- examples/basic/image.c | 20 +- examples/basic/listbox.c | 2 +- examples/basic/messagebox.c | 8 +- examples/basic/progressbar.c | 12 +- examples/basic/radiobox.c | 4 +- examples/basic/rotate.c | 6 +- examples/basic/scrollbar.c | 6 +- examples/basic/treeview.c | 14 +- examples/gldemos/tripaint.c | 10 +- examples/harvard.c | 1443 +++++++++++++++++----------------- 13 files changed, 769 insertions(+), 770 deletions(-) diff --git a/Makefile.pl b/Makefile.pl index 1c761bce3..c00ca62b9 100755 --- a/Makefile.pl +++ b/Makefile.pl @@ -181,7 +181,7 @@ print(OUT " cp -rf include \$(DESTDIR)\$(PREFIX)/\n"); print(OUT "\n"); print(OUT "format:\n"); print(OUT -" clang-format --verbose -i `find src include -name \"*.c\" -or -name \"*.h\"`\n" +" clang-format --verbose -i `find src include examples -name \"*.c\" -or -name \"*.h\"`\n" ); print(OUT " perltidy -b -bext=\"/\" --paren-tightness=2 `find tools pl Makefile.pl -name \"*.pl\"`\n" diff --git a/examples/basic/checkbox.c b/examples/basic/checkbox.c index d7d4b59f2..c66f06687 100644 --- a/examples/basic/checkbox.c +++ b/examples/basic/checkbox.c @@ -4,10 +4,10 @@ int main() { MwWidget window; MwLibraryInit(); - + window = MwVaCreateWidget(MwWindowClass, "test", NULL, MwDEFAULT, MwDEFAULT, 8 + 16 + 8 + 16 * 10 + 8, 8 + 16 + 8 + 16 + 8, - MwNtitle, "checkbox", - NULL); + MwNtitle, "checkbox", + NULL); MwVaCreateWidget(MwCheckBoxClass, "cb1", window, 8, 8, 16, 16, NULL); diff --git a/examples/basic/combobox.c b/examples/basic/combobox.c index 706b910c9..0816466a2 100644 --- a/examples/basic/combobox.c +++ b/examples/basic/combobox.c @@ -1,13 +1,13 @@ #include -int main(){ +int main() { MwWidget w, cb; MwLibraryInit(); w = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 5 + 320 + 5, 5 + 24 + 5, - MwNtitle, "combobox", - NULL); + MwNtitle, "combobox", + NULL); cb = MwCreateWidget(MwComboBoxClass, "combobox", w, 5, 5, 320, 24); diff --git a/examples/basic/image.c b/examples/basic/image.c index cf1ffb362..7d7f55a2d 100644 --- a/examples/basic/image.c +++ b/examples/basic/image.c @@ -1,20 +1,20 @@ #include int main() { - MwWidget window, image, image2, image3; + MwWidget window, image, image2, image3; MwLLPixmap px, px2, px3; MwLibraryInit(); - window = MwVaCreateWidget(MwWindowClass, "window", NULL, MwDEFAULT, MwDEFAULT, 500, 500, - MwNtitle, "image image", - NULL); - image = MwCreateWidget(MwImageClass, "image", window, 50, 50, 200, 400); - image2 = MwCreateWidget(MwImageClass, "image", window, 250, 50, 200, 200); - image3 = MwCreateWidget(MwImageClass, "image", window, 250, 250, 200, 200); - px = MwLoadImage(window, "examples/picture.png"); - px2 = MwLoadImage(window, "examples/picture.jpg"); - px3 = MwLoadImage(window, "resource/logo/logo.png"); + window = MwVaCreateWidget(MwWindowClass, "window", NULL, MwDEFAULT, MwDEFAULT, 500, 500, + MwNtitle, "image image", + NULL); + image = MwCreateWidget(MwImageClass, "image", window, 50, 50, 200, 400); + image2 = MwCreateWidget(MwImageClass, "image", window, 250, 50, 200, 200); + image3 = MwCreateWidget(MwImageClass, "image", window, 250, 250, 200, 200); + px = MwLoadImage(window, "examples/picture.png"); + px2 = MwLoadImage(window, "examples/picture.jpg"); + px3 = MwLoadImage(window, "resource/logo/logo.png"); if(px == NULL) px = MwLoadImage(window, "../examples/picture.png"); if(px2 == NULL) px2 = MwLoadImage(window, "../examples/picture.jpg"); diff --git a/examples/basic/listbox.c b/examples/basic/listbox.c index 53d94518f..92c7d21b2 100644 --- a/examples/basic/listbox.c +++ b/examples/basic/listbox.c @@ -28,7 +28,7 @@ int main() { int i; MwListBoxPacket* packet; int index; - MwLLPixmap px; + MwLLPixmap px; MwLibraryInit(); diff --git a/examples/basic/messagebox.c b/examples/basic/messagebox.c index 124718ba0..bb1c30dd3 100644 --- a/examples/basic/messagebox.c +++ b/examples/basic/messagebox.c @@ -41,10 +41,10 @@ int main() { MwLibraryInit(); - msg = MwVaCreateWidget(MwWindowClass, "test", NULL, MwDEFAULT, MwDEFAULT, 300, 100, MwNtitle, "test", NULL); - btn = MwVaCreateWidget(MwButtonClass, "button", msg, 8, 8, 300 - 16, (100 - 16) / 2, MwNtext, "press me!", NULL); - btn2 = MwVaCreateWidget(MwButtonClass, "button", msg, 8, 8 + (100 - 16) / 2, (300 - 16) / 2, (100 - 16) / 2, MwNtext, "press me!", NULL); - btn3 = MwVaCreateWidget(MwButtonClass, "button", msg, 8 + (300 - 16) / 2, 8 + (100 - 16) / 2, (300 - 16) / 2, (100 - 16) / 2, MwNtext, "press me!", NULL); + msg = MwVaCreateWidget(MwWindowClass, "test", NULL, MwDEFAULT, MwDEFAULT, 300, 100, MwNtitle, "test", NULL); + btn = MwVaCreateWidget(MwButtonClass, "button", msg, 8, 8, 300 - 16, (100 - 16) / 2, MwNtext, "press me!", NULL); + btn2 = MwVaCreateWidget(MwButtonClass, "button", msg, 8, 8 + (100 - 16) / 2, (300 - 16) / 2, (100 - 16) / 2, MwNtext, "press me!", NULL); + btn3 = MwVaCreateWidget(MwButtonClass, "button", msg, 8 + (300 - 16) / 2, 8 + (100 - 16) / 2, (300 - 16) / 2, (100 - 16) / 2, MwNtext, "press me!", NULL); MwAddUserHandler(btn, MwNactivateHandler, spawn, msg); MwAddUserHandler(btn2, MwNactivateHandler, spawn2, msg); diff --git a/examples/basic/progressbar.c b/examples/basic/progressbar.c index 4d4a16f72..4048a6e78 100644 --- a/examples/basic/progressbar.c +++ b/examples/basic/progressbar.c @@ -5,12 +5,12 @@ int main() { MwLibraryInit(); - w = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 5 + 640 + 5, 5 + 32 + 5, - MwNtitle, "progress bar", - NULL); - p = MwVaCreateWidget(MwProgressBarClass, "progress", w, 5, 5, 640, 32, - MwNvalue, 25, - NULL); + w = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 5 + 640 + 5, 5 + 32 + 5, + MwNtitle, "progress bar", + NULL); + p = MwVaCreateWidget(MwProgressBarClass, "progress", w, 5, 5, 640, 32, + MwNvalue, 25, + NULL); (void)p; diff --git a/examples/basic/radiobox.c b/examples/basic/radiobox.c index 3ab843185..168f10138 100644 --- a/examples/basic/radiobox.c +++ b/examples/basic/radiobox.c @@ -6,8 +6,8 @@ int main() { MwLibraryInit(); window = MwVaCreateWidget(MwWindowClass, "test", NULL, MwDEFAULT, MwDEFAULT, 8 + 16 + 8 + 16 * 10 + 8, 8 + 16 + 8 + 16 + 8, - MwNtitle, "radiobox", - NULL); + MwNtitle, "radiobox", + NULL); MwVaCreateWidget(MwRadioBoxClass, "cb1", window, 8, 8, 16, 16, NULL); diff --git a/examples/basic/rotate.c b/examples/basic/rotate.c index b933c26bd..574eb2d6f 100644 --- a/examples/basic/rotate.c +++ b/examples/basic/rotate.c @@ -55,13 +55,13 @@ void resize(MwWidget w, void* user, void* client) { int main() { MwWidget window; - int i; + int i; MwLibraryInit(); window = MwVaCreateWidget(MwWindowClass, "window", NULL, MwDEFAULT, MwDEFAULT, (ww = 500), (wh = 500), - MwNtitle, "rotate", - NULL); + MwNtitle, "rotate", + NULL); for(i = 0; i < (int)(sizeof(buttons) / sizeof(buttons[0])); i++) { const char* color = ""; diff --git a/examples/basic/scrollbar.c b/examples/basic/scrollbar.c index 8a9509a64..594cd9814 100644 --- a/examples/basic/scrollbar.c +++ b/examples/basic/scrollbar.c @@ -3,13 +3,13 @@ int main() { MwWidget window; - int i; + int i; MwLibraryInit(); window = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 500, 500, - MwNtitle, "main", - NULL); + MwNtitle, "main", + NULL); for(i = 0; i < 500 / 16; i++) { MwVaCreateWidget(MwScrollBarClass, "scroll", window, 16 * i, 0, 16, 500, diff --git a/examples/basic/treeview.c b/examples/basic/treeview.c index 0597e0d9a..3837cb42b 100644 --- a/examples/basic/treeview.c +++ b/examples/basic/treeview.c @@ -20,16 +20,16 @@ void activate(MwWidget handle, void* user, void* call) { MwAddUserHandler(MwMessageBoxGetChild(msgbox, MwMB_BUTTONOK), MwNactivateHandler, destroy, msgbox); } -int main(){ - MwWidget tv; +int main() { + MwWidget tv; MwLLPixmap px; - int i; - void* p = NULL, *r; + int i; + void * p = NULL, *r; MwLibraryInit(); - + wmain = MwCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 5 + 640 + 5, 5 + 480 + 5); - tv = MwCreateWidget(MwTreeViewClass, "tree", wmain, 5, 5, 640, 480); + tv = MwCreateWidget(MwTreeViewClass, "tree", wmain, 5, 5, 640, 480); px = MwLoadIcon(tv, MwIconInfo); @@ -37,7 +37,7 @@ int main(){ MwAddUserHandler(tv, MwNactivateHandler, activate, NULL); - for(i = 0; i < 10; i++){ + for(i = 0; i < 10; i++) { void* old = p; MwTreeViewAdd(tv, old, px, "World"); diff --git a/examples/gldemos/tripaint.c b/examples/gldemos/tripaint.c index e1d7ccf07..2cc7aa844 100644 --- a/examples/gldemos/tripaint.c +++ b/examples/gldemos/tripaint.c @@ -108,14 +108,14 @@ static void mouse_move(MwWidget handle, void* user, void* call) { int main() { MwSizeHints hints; - MwWidget window, viewport; + MwWidget window, viewport; MwLibraryInit(); - window = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 640, 480, - MwNtitle, "tripaint", - NULL); - viewport = MwCreateWidget(MwViewportClass, "viewport", window, 5, 5, 630, 470 - 16 - 5); + window = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 640, 480, + MwNtitle, "tripaint", + NULL); + viewport = MwCreateWidget(MwViewportClass, "viewport", window, 5, 5, 630, 470 - 16 - 5); hints.min_width = hints.max_width = 640; hints.min_height = hints.max_height = 480; diff --git a/examples/harvard.c b/examples/harvard.c index 9947d9ae3..af5da28da 100644 --- a/examples/harvard.c +++ b/examples/harvard.c @@ -1,723 +1,722 @@ const char* harvard[] = { - "The birch canoe slid on the smooth planks. ", - "Glue the sheet to the dark blue background.", - "It's easy to tell the depth of a well. ", - "These days a chicken leg is a rare dish. ", - "Rice is often served in round bowls.", - "The juice of lemons makes fine punch. ", - "The box was thrown beside the parked truck. ", - "The hogs were fed chopped corn and garbage. ", - "Four hours of steady work faced us. ", - "A large size in stockings is hard to sell. ", - "The boy was there when the sun rose.", - "A rod is used to catch pink salmon. ", - "The source of the huge river is the clear spring. ", - "Kick the ball straight and follow through.", - "Help the woman get back to her feet. ", - "A pot of tea helps to pass the evening. ", - "Smoky fires lack flame and heat. ", - "The soft cushion broke the man's fall. ", - "The salt breeze came across from the sea. ", - "The girl at the booth sold fifty bonds. ", - "The small pup gnawed a hole in the sock. ", - "The fish twisted and turned on the bent hook. ", - "Press the pants and sew a button on the vest. ", - "The swan dive was far short of perfect. ", - "The beauty of the view stunned the young boy. ", - "Two blue fish swam in the tank. ", - "Her purse was full of useless trash. ", - "The colt reared and threw the tall rider. ", - "It snowed, rained, and hailed the same morning. ", - "Read verse out loud for pleasure.", - "Hoist the load to your left shoulder. ", - "Take the winding path to reach the lake. ", - "Note closely the size of the gas tank. ", - "Wipe the grease off his dirty face. ", - "Mend the coat before you go out. ", - "The wrist was badly strained and hung limp. ", - "The stray cat gave birth to kittens. ", - "The young girl gave no clear response. ", - "The meal was cooked before the bell rang.", - "What joy there is in living. ", - "A king ruled the state in the early days. ", - "The ship was torn apart on the sharp reef. ", - "Sickness kept him home the third week. ", - "The wide road shimmered in the hot sun. ", - "The lazy cow lay in the cool grass. ", - "Lift the square stone over the fence. ", - "The rope will bind the seven books at once. ", - "Hop over the fence and plunge in. ", - "The friendly gang left the drug store. ", - "Mesh wire keeps chicks inside. ", - "The frosty air passed through the coat. ", - "The crooked maze failed to fool the mouse. ", - "Adding fast leads to wrong sums. ", - "The show was a flop from the very start. ", - "A saw is a tool used for making boards.", - "The wagon moved on well oiled wheels.", - "March the soldiers past the next hill. ", - "A cup of sugar makes sweet fudge. ", - "Place a rosebush near the porch steps. ", - "Both lost their lives in the raging storm. ", - "We talked of the side show in the circus.", - "Use a pencil to write the first draft.", - "He ran half way to the hardware store. ", - "The clock struck to mark the third period.", - "A small creek cut across the field.", - "Cars and busses stalled in snow drifts.", - "The set of china hit the floor with a crash. ", - "This is a grand season for hikes on the road.", - "The dune rose from the edge of the water. ", - "Those words were the cue for the actor to leave.", - "A yacht slid around the point into the bay.", - "The two met while playing on the sand.", - "The ink stain dried on the finished page.", - "The walled town was seized without a fight. ", - "The lease ran out in sixteen weeks. ", - "A tame squirrel makes a nice pet. ", - "The horn of the car woke the sleeping cop. ", - "The heart beat strongly and with firm strokes. ", - "The pearl was worn in a thin silver ring. ", - "The fruit peel was cut in thick slices.", - "The Navy attacked the big task force.", - "See the cat glaring at the scared mouse. ", - "There are more than two factors here.", - "The hat brim was wide and too droopy.", - "The lawyer tried to lose his case.", - "The grass curled around the fence post.", - "Cut the pie into large parts.", - "Men strive but seldom get rich. ", - "Always close the barn door tight.", - "He lay prone and hardly moved a limb.", - "The slush lay deep along the street. ", - "A wisp of cloud hung in the blue air. ", - "A pound of sugar costs more than eggs.", - "The fin was sharp and cut the clear water.", - "The play seems dull and quite stupid.", - "Bail the boat to stop it from sinking.", - "The term ended in late june that year.", - "A Tusk is used to make costly gifts.", - "Ten pins were set in order.", - "The bill was paid every third week.", - "Oak is strong and also gives shade.", - "Cats and Dogs each hate the other.", - "The pipe began to rust while new.", - "Open the crate but don't break the glass.", - "Add the sum to the product of these three.", - "Thieves who rob friends deserve jail.", - "The ripe taste of cheese improves with age.", - "Act on these orders with great speed.", - "The hog crawled under the high fence.", - "Move the vat over the hot fire.", - "The bark of the pine tree was shiny and dark.", - "Leaves turn brown and yellow in the fall. ", - "The pennant waved when the wind blew.", - "Split the log with a quick, sharp blow.", - "Burn peat after the logs give out.", - "He ordered peach pie with ice cream.", - "Weave the carpet on the right hand side.", - "Hemp is a weed found in parts of the tropics.", - "A lame back kept his score low.", - "We find joy in the simplest things.", - "Type out three lists of orders.", - "The harder he tried the less he got done.", - "The boss ran the show with a watchful eye.", - "The cup cracked and spilled its contents.", - "Paste can cleanse the most dirty brass.", - "The slang word for raw whiskey is booze.", - "It caught its hind paw in a rusty trap.", - "The wharf could be seen at the farther shore.", - "Feel the heat of the weak dying flame.", - "The tiny girl took off her hat.", - "A cramp is no small danger on a swim.", - "He said the same phrase thirty times.", - "Pluck the bright rose without leaves.", - "Two plus seven is less than ten.", - "The glow deepened in the eyes of the sweet girl.", - "Bring your problems to the wise chief.", - "Write a fond note to the friend you cherish.", - "Clothes and lodging are free to new men.", - "We frown when events take a bad turn.", - "Port is a strong wine with a smoky taste.", - "The young kid jumped the rusty gate.", - "Guess the result from the first scores. ", - "A salt pickle tastes fine with ham.", - "The just claim got the right verdict.", - "Those thistles bend in a high wind.", - "Pure bred poodles have curls.", - "The tree top waved in a graceful way. ", - "The spot on the blotter was made by green ink. ", - "Mud was spattered on the front of his white shirt.", - "The cigar burned a hole in the desk top. ", - "The empty flask stood on the tin tray.", - "A speedy man can beat this track mark. ", - "He broke a new shoelace that day.", - "The coffee stand is too high for the couch. ", - "The urge to write short stories is rare. ", - "The pencils have all been used.", - "The pirates seized the crew of the lost ship.", - "We tried to replace the coin but failed. ", - "She sewed the torn coat quite neatly. ", - "The sofa cushion is red and of light weight.", - "The jacket hung on the back of the wide chair.", - "At that high level the air is pure.", - "Drop the two when you add the figures.", - "A filing case is now hard to buy.", - "An abrupt start does not win the prize. ", - "Wood is best for making toys and blocks.", - "The office paint was a dull, sad tan.", - "He knew the skill of the great young actress.", - "A rag will soak up spilled water.", - "A shower of dirt fell from the hot pipes.", - "Steam hissed from the broken valve. ", - "The child almost hurt the small dog.", - "There was a sound of dry leaves outside.", - "The sky that morning was clear and bright blue.", - "Torn scraps littered the stone floor.", - "Sunday is the best part of the week. ", - "The doctor cured him with these pills.", - "The new girl was fired today at noon.", - "They felt gay when the ship arrived in port.", - "Add the store's account to the last cent.", - "Acid burns holes in wool cloth.", - "Fairy tales should be fun to write.", - "Eight miles of woodland burned to waste.", - "The third act was dull and tired the players.", - "A young child should not suffer fright.", - "Add the column and put the sum here.", - "We admire and love a good cook.", - "There the flood mark is ten inches.", - "He carved a head from the round block of marble.", - "She has a smart way of wearing clothes.", - "The fruit of a fig tree is apple shaped.", - "Corn cobs can be used to kindle a fire. ", - "Where were they when the noise started.", - "The paper box is full of thumb tacks.", - "Sell your gift to a buyer at a good gain.", - "The tongs lay beside the ice pail.", - "The petals fall with the next puff of wind.", - "Bring your best compass to the third class.", - "They could laugh although they were sad.", - "Farmers came in to thresh the oat crop.", - "The brown house was on fire to the attic.", - "The lure is used to catch trout and flounder.", - "Float the soap on top of the bath water.", - "A blue crane is a tall wading bird.", - "A fresh start will work such wonders.", - "The club rented the rink for the fifth night.", - "After the dance, they went straight home.", - "The hostess taught the new maid to serve.", - "He wrote his last novel there at the inn.", - "Even the worst will beat his low score.", - "The cement had dried when he moved it.", - "The loss of the second ship was hard to take.", - "The fly made its way along the wall.", - "Do that with a wooden stick.", - "Live wires should be kept covered.", - "The large house had hot water taps.", - "It is hard to erase blue or red ink.", - "Write at once or you may forget it.", - "The doorknob was made of bright clean brass.", - "The wreck occurred by the bank on Main Street.", - "A pencil with black lead writes best.", - "Coax a young calf to drink from a bucket.", - "Schools for ladies teach charm and grace.", - "The lamp shone with a steady green flame.", - "They took the axe and the saw to the forest.", - "The ancient coin was quite dull and worn.", - "The shaky barn fell with a loud crash. ", - "Jazz and swing fans like fast music.", - "Rake the rubbish up and then burn it.", - "Slash the gold cloth into fine ribbons.", - "Try to have the court decide the case.", - "They are pushed back each time they attack.", - "He broke his ties with groups of former friends.", - "They floated on the raft to sun their white backs.", - "The map had an X that meant nothing.", - "Whitings are small fish caught in nets.", - "Some ads serve to cheat buyers.", - "Jerk the rope and the bell rings weakly.", - "A waxed floor makes us lose balance.", - "Madam, this is the best brand of corn.", - "On the islands the sea breeze is soft and mild.", - "The play began as soon as we sat down.", - "This will lead the world to more sound and fury.", - "Add salt before you fry the egg.", - "The rush for funds reached its peak Tuesday.", - "The birch looked stark white and lonesome.", - "The box is held by a bright red snapper.", - "To make pure ice, you freeze water.", - "The first worm gets snapped early.", - "Jump the fence and hurry up the bank.", - "Yell and clap as the curtain slides back.", - "They are men who walk the middle of the road.", - "Both brothers wear the same size.", - "In some form or other we need fun.", - "The prince ordered his head chopped off.", - "The houses are built of red clay bricks.", - "Ducks fly north but lack a compass.", - "Fruit flavors are used in fizz drinks.", - "These pills do less good than others.", - "Canned pears lack full flavor.", - "The dark pot hung in the front closet.", - "Carry the pail to the wall and spill it there.", - "The train brought our hero to the big town.", - "We are sure that one war is enough.", - "Gray paint stretched for miles around.", - "The rude laugh filled the empty room.", - "High seats are best for football fans.", - "Tea served from the brown jug is tasty.", - "A dash of pepper spoils beef stew.", - "A zestful food is the hot-cross bun.", - "The horse trotted around the field at a brisk pace.", - "Find the twin who stole the pearl necklace.", - "Cut the cord that binds the box tightly.", - "The red tape bound the smuggled food.", - "Look in the corner to find the tan shirt.", - "The cold drizzle will halt the bond drive.", - "Nine men were hired to dig the ruins.", - "The junk yard had a mouldy smell.", - "The flint sputtered and lit a pine torch.", - "Soak the cloth and drown the sharp odor.", - "The shelves were bare of both jam or crackers.", - "A joy to every child is the swan boat.", - "All sat frozen and watched the screen.", - "A cloud of dust stung his tender eyes.", - "To reach the end he needs much courage.", - "Shape the clay gently into block form.", - "A ridge on a smooth surface is a bump or flaw.", - "Hedge apples may stain your hands green.", - "Quench your thirst, then eat the crackers.", - "Tight curls get limp on rainy days.", - "The mute muffled the high tones of the horn.", - "The gold ring fits only a pierced ear.", - "The old pan was covered with hard fudge.", - "Watch the log float in the wide river.", - "The node on the stalk of wheat grew daily.", - "The heap of fallen leaves was set on fire.", - "Write fast if you want to finish early.", - "His shirt was clean but one button was gone.", - "The barrel of beer was a brew of malt and hops.", - "Tin cans are absent from store shelves.", - "Slide the box into that empty space.", - "The plant grew large and green in the window.", - "The beam dropped down on the workman's head.", - "Pink clouds floated with the breeze.", - "She danced like a swan, tall and graceful.", - "The tube was blown and the tire flat and useless.", - "It is late morning on the old wall clock.", - "Let's all join as we sing the last chorus.", - "The last switch cannot be turned off.", - "The fight will end in just six minutes.", - "The store walls were lined with colored frocks.", - "The peace league met to discuss their plans. ", - "The rise to fame of a person takes luck.", - "Paper is scarce, so write with much care.", - "The quick fox jumped on the sleeping cat.", - "The nozzle of the fire hose was bright brass.", - "Screw the round cap on as tight as needed.", - "Time brings us many changes.", - "The purple tie was ten years old.", - "Men think and plan and sometimes act.", - "Fill the ink jar with sticky glue.", - "He smoke a big pipe with strong contents.", - "We need grain to keep our mules healthy.", - "Pack the records in a neat thin case.", - "The crunch of feet in the snow was the only sound.", - "The copper bowl shone in the sun's rays.", - "Boards will warp unless kept dry. ", - "The plush chair leaned against the wall. ", - "Glass will clink when struck by metal.", - "Bathe and relax in the cool green grass.", - "Nine rows of soldiers stood in a line.", - "The beach is dry and shallow at low tide.", - "The idea is to sew both edges straight.", - "The kitten chased the dog down the street.", - "Pages bound in cloth make a book.", - "Try to trace the fine lines of the painting.", - "Women form less than half of the group. ", - "The zones merge in the central part of town.", - "A gem in the rough needs work to polish.", - "Code is used when secrets are sent.", - "Most of the news is easy for us to hear.", - "He used the lathe to make brass objects.", - "The vane on top of the pole revolved in the wind.", - "Mince pie is a dish served to children.", - "The clan gathered on each dull night.", - "Let it burn, it gives us warmth and comfort.", - "A castle built from sand fails to endure.", - "A child's wit saved the day for us.", - "Tack the strip of carpet to the worn floor.", - "Next Tuesday we must vote.", - "Pour the stew from the pot into the plate.", - "Each penny shone like new.", - "The man went to the woods to gather sticks.", - "The dirt piles were lines along the road.", - "The logs fell and tumbled into the clear stream.", - "Just hoist it up and take it away.", - "A ripe plum is fit for a king's palate.", - "Our plans right now are hazy. ", - "Brass rings are sold by these natives.", - "It takes a good trap to capture a bear.", - "Feed the white mouse some flower seeds.", - "The thaw came early and freed the stream.", - "He took the lead and kept it the whole distance.", - "The key you designed will fit the lock.", - "Plead to the council to free the poor thief.", - "Better hash is made of rare beef.", - "This plank was made for walking on .", - "The lake sparkled in the red hot sun.", - "He crawled with care along the ledge.", - "Tend the sheep while the dog wanders.", - "It takes a lot of help to finish these.", - "Mark the spot with a sign painted red.", - "Take two shares as a fair profit. ", - "The fur of cats goes by many names.", - "North winds bring colds and fevers.", - "He asks no person to vouch for him.", - "Go now and come here later.", - "A sash of gold silk will trim her dress.", - "Soap can wash most dirt away.", - "That move means the game is over.", - "He wrote down a long list of items.", - "A siege will crack the strong defense.", - "Grape juice and water mix well.", - "Roads are paved with sticky tar.", - "Fake stones shine but cost little.", - "The drip of the rain made a pleasant sound. ", - "Smoke poured out of every crack. ", - "Serve the hot rum to the tired heroes.", - "Much of the story makes good sense. ", - "The sun came up to light the eastern sky.", - "Heave the line over the port side.", - "A lathe cuts and trims any wood.", - "It's a dense crowd in two distinct ways.", - "His hip struck the knee of the next player.", - "The stale smell of old beer lingers.", - "The desk was firm on the shaky floor.", - "It takes heat to bring out the odor.", - "Beef is scarcer than some lamb.", - "Raise the sail and steer the ship northward.", - "A cone costs five cents on Mondays.", - "A pod is what peas always grow in.", - "Jerk that dart from the cork target.", - "No cement will hold hard wood.", - "We now have a new base for shipping.", - "A list of names is carved around the base.", - "The sheep were led home by a dog.", - "Three for a dime, the young peddler cried.", - "The sense of smell is better than that of touch.", - "No hardship seemed to make him sad.", - "Grace makes up for lack of beauty.", - "Nudge gently but wake her now.", - "The news struck doubt into restless minds.", - "Once we stood beside the shore.", - "A chink in the wall allowed a draft to blow.", - "Fasten two pins on each side.", - "A cold dip restores health and zest.", - "He takes the oath of office each March.", - "The sand drifts over the sills of the old house.", - "The point of the steel pen was bent and twisted.", - "There is a lag between thought and act.", - "Seed is needed to plant the spring corn.", - "Draw the chart with heavy black lines.", - "The boy owed his pal thirty cents.", - "The chap slipped into the crowd and was lost.", - "Hats are worn to tea and not to dinner.", - "The ramp led up to the wide highway.", - "Beat the dust from the rug onto the lawn.", - "Say it slowly but make it ring clear.", - "The straw nest housed five robins.", - "Screen the porch with woven straw mats.", - "This horse will nose his way to the finish.", - "The dry wax protects the deep scratch.", - "He picked up the dice for a second roll.", - "These coins will be needed to pay his debt.", - "The nag pulled the frail cart along.", - "Twist the valve and release hot steam.", - "The vamp of the shoe had a gold buckle.", - "The smell of burned rags itches my nose.", - "New pants lack cuffs and pockets.", - "The marsh will freeze when cold enough.", - "They slice the sausage thin with a knife.", - "The bloom of the rose lasts a few days.", - "A gray mare walked before the colt.", - "Breakfast buns are fine with a hot drink.", - "Bottles hold four kinds of rum.", - "The man wore a feather in his felt hat.", - "He wheeled the bike past the winding road.", - "Drop the ashes on the worn old rug.", - "The desk and both chairs were painted tan.", - "Throw out the used paper cup and plate.", - "A clean neck means a neat collar.", - "The couch cover and hall drapes were blue.", - "The stems of the tall glasses cracked and broke.", - "The wall phone rang loud and often.", - "The clothes dried on a thin wooden rack.", - "Turn out the lantern which gives us light.", - "The cleat sank deeply into the soft turf.", - "The bills were mailed promptly on the tenth of the month.", - "To have is better than to wait and hope.", - "The price is fair for a good antique clock.", - "The music played on while they talked.", - "Dispense with a vest on a day like this.", - "The bunch of grapes was pressed into wine.", - "He sent the figs, but kept the ripe cherries.", - "The hinge on the door creaked with old age.", - "The screen before the fire kept in the sparks.", - "Fly by night and you waste little time.", - "Thick glasses helped him read the print.", - "Birth and death marks the limits of life.", - "The chair looked strong but had no bottom.", - "The kite flew wildly in the high wind.", - "A fur muff is stylish once more.", - "The tin box held priceless stones.", - "We need an end of all such matter.", - "The case was puzzling to the old and wise.", - "The bright lanterns were gay on the dark lawn.", - "We don't get much money but we have fun.", - "The youth drove with zest, but little skill.", - "Five years he lived with a shaggy dog.", - "A fence cuts through the corner lot.", - "The way to save money is not to spend much.", - "Shut the hatch before the waves push it in.", - "The odor of spring makes young hearts jump.", - "Crack the walnut with your sharp side teeth.", - "He offered proof in the form of a large chart.", - "Send the stuff in a thick paper bag.", - "A quart of milk is water for the most part.", - "They told wild tales to frighten him.", - "The three story house was built of stone.", - "In the rear of the ground floor was a large passage.", - "A man in a blue sweater sat at the desk.", - "Oats are a food eaten by horse and man.", - "Their eyelids droop for want of sleep.", - "A sip of tea revives his tired friend.", - "There are many ways to do these things.", - "Tuck the sheet under the edge of the mat.", - "A force equal to that would move the earth.", - "We like to see clear weather.", - "The work of the tailor is seen on each side.", - "Take a chance and win a china doll.", - "Shake the dust from your shoes, stranger.", - "She was kind to sick old people.", - "The square wooden crate was packed to be shipped.", - "The dusty bench stood by the stone wall.", - "We dress to suit the weather of most days.", - "Smile when you say nasty words.", - "A bowl of rice is free with chicken stew.", - "The water in this well is a source of good health.", - "Take shelter in this tent, but keep still.", - "That guy is the writer of a few banned books.", - "The little tales they tell are false.", - "The door was barred, locked, and bolted as well.", - "Ripe pears are fit for a queen's table.", - "A big wet stain was on the round carpet.", - "The kite dipped and swayed, but stayed aloft.", - "The pleasant hours fly by much too soon.", - "The room was crowded with a wild mob.", - "This strong arm shall shield your honor.", - "She blushed when he gave her a white orchid.", - "The beetle droned in the hot June sun.", - "Press the pedal with your left foot.", - "Neat plans fail without luck.", - "The black trunk fell from the landing.", - "The bank pressed for payment of the debt.", - "The theft of the pearl pin was kept secret.", - "Shake hands with this friendly child.", - "The vast space stretched into the far distance.", - "A rich farm is rare in this sandy waste.", - "His wide grin earned many friends.", - "Flax makes a fine brand of paper.", - "Hurdle the pit with the aid of a long pole.", - "A strong bid may scare your partner stiff.", - "Even a just cause needs power to win.", - "Peep under the tent and see the clowns.", - "The leaf drifts along with a slow spin.", - "Cheap clothes are flashy but don't last.", - "A thing of small note can cause despair.", - "Flood the mails with requests for this book.", - "A thick coat of black paint covered all.", - "The pencil was cut to be sharp at both ends.", - "Those last words were a strong statement.", - "He wrote his name boldly at the top of the sheet.", - "Dill pickles are sour but taste fine.", - "Down that road is the way to the grain farmer.", - "Either mud or dust are found at all times.", - "The best method is to fix it in place with clips.", - "If you mumble your speech will be lost.", - "At night the alarm roused him from a deep sleep.", - "Read just what the meter says.", - "Fill your pack with bright trinkets for the poor.", - "The small red neon lamp went out.", - "Clams are small, round, soft, and tasty.", - "The fan whirled its round blades softly.", - "The line where the edges join was clean.", - "Breathe deep and smell the piny air.", - "It matters not if he reads these words or those.", - "A brown leather bag hung from its strap.", - "A toad and a frog are hard to tell apart.", - "A white silk jacket goes with any shoes.", - "A break in the dam almost caused a flood.", - "Paint the sockets in the wall dull green.", - "The child crawled into the dense grass.", - "Bribes fail where honest men work.", - "Trample the spark, else the flames will spread.", - "The hilt of the sword was carved with fine designs.", - "A round hole was drilled through the thin board.", - "Footprints showed the path he took up the beach.", - "She was waiting at my front lawn.", - "A vent near the edge brought in fresh air.", - "Prod the old mule with a crooked stick.", - "It is a band of steel three inches wide.", - "The pipe ran almost the length of the ditch.", - "It was hidden from sight by a mass of leaves and shrubs.", - "The weight of the package was seen on the high scale.", - "Wake and rise, and step into the green outdoors.", - "The green light in the brown box flickered.", - "The brass tube circled the high wall.", - "The lobes of her ears were pierced to hold rings.", - "Hold the hammer near the end to drive the nail.", - "Next Sunday is the twelfth of the month.", - "Every word and phrase he speaks is true.", - "He put his last cartridge into the gun and fired.", - "They took their kids from the public school.", - "Drive the screw straight into the wood.", - "Keep the hatch tight and the watch constant.", - "Sever the twine with a quick snip of the knife.", - "Paper will dry out when wet.", - "Slide the catch back and open the desk.", - "Help the weak to preserve their strength.", - "A sullen smile gets few friends.", - "Stop whistling and watch the boys march.", - "Jerk the cord, and out tumbles the gold.", - "Slide the tray across the glass top.", - "The cloud moved in a stately way and was gone.", - "Light maple makes for a swell room.", - "Set the piece here and say nothing.", - "Dull stories make her laugh.", - "A stiff cord will do to fasten your shoe.", - "Get the trust fund to the bank early.", - "Choose between the high road and the low.", - "A plea for funds seems to come again.", - "He lent his coat to the tall gaunt stranger.", - "There is a strong chance it will happen once more.", - "The duke left the park in a silver coach.", - "Greet the new guests and leave quickly.", - "When the frost has come it is time for turkey.", - "Sweet words work better than fierce.", - "A thin stripe runs down the middle.", - "A six comes up more often than a ten.", - "Lush ferns grow on the lofty rocks.", - "The ram scared the school children off.", - "The team with the best timing looks good.", - "The farmer swapped his horse for a brown ox.", - "Sit on the perch and tell the others what to do.", - "A steep trail is painful for our feet.", - "The early phase of life moves fast.", - "Green moss grows on the northern side.", - "Tea in thin china has a sweet taste.", - "Pitch the straw through the door of the stable.", - "The latch on the back gate needed a nail.", - "The goose was brought straight from the old market.", - "The sink is the thing in which we pile dishes.", - "A whiff of it will cure the most stubborn cold.", - "The facts don't always show who is right.", - "She flaps her cape as she parades the street.", - "The loss of the cruiser was a blow to the fleet.", - "Loop the braid to the left and then over.", - "Plead with the lawyer to drop the lost cause.", - "Calves thrive on tender spring grass.", - "Post no bills on this office wall.", - "Tear a thin sheet from the yellow pad.", - "A cruise in warm waters in a sleek yacht is fun.", - "A streak of color ran down the left edge.", - "It was done before the boy could see it.", - "Crouch before you jump or miss the mark.", - "Pack the kits and don't forget the salt.", - "The square peg will settle in the round hole.", - "Fine soap saves tender skin.", - "Poached eggs and tea must suffice.", - "Bad nerves are jangled by a door slam.", - "Ship maps are different from those for planes.", - "Dimes showered down from all sides.", - "They sang the same tunes at each party.", - "The sky in the west is tinged with orange red.", - "The pods of peas ferment in bare fields.", - "The horse balked and threw the tall rider.", - "The hitch between the horse and cart broke.", - "Pile the coal high in the shed corner.", - "A gold vase is both rare and costly.", - "The knife was hung inside its bright sheath.", - "The rarest spice comes from the far East.", - "The roof should be tilted at a sharp slant.", - "A smatter of French is worse than none.", - "The mule trod the treadmill day and night.", - "The aim of the contest is to raise a great fund.", - "To send it now in large amounts is bad.", - "There is a fine hard tang in salty air.", - "Cod is the main business of the north shore.", - "The slab was hewn from heavy blocks of slate.", - "Dunk the stale biscuits into strong drink.", - "Hang tinsel from both branches.", - "Cap the jar with a tight brass cover.", - "The poor boy missed the boat again.", - "Be sure to set that lamp firmly in the hole.", - "Pick a card and slip it under the pack.", - "A round mat will cover the dull spot.", - "The first part of the plan needs changing.", - "A good book informs of what we ought to know.", - "The mail comes in three batches per day.", - "You cannot brew tea in a cold pot.", - "Dots of light betrayed the black cat.", - "Put the chart on the mantel and tack it down.", - "The night shift men rate extra pay.", - "The red paper brightened the dim stage.", - "See the player scoot to third base.", - "Slide the bill between the two leaves.", - "Many hands help get the job done.", - "We don't like to admit our small faults.", - "No doubt about the way the wind blows.", - "Dig deep in the earth for pirate's gold.", - "The steady drip is worse than a drenching rain.", - "A flat pack takes less luggage space.", - "Green ice frosted the punch bowl.", - "A stuffed chair slipped from the moving van.", - "The stitch will serve but needs to be shortened.", - "A thin book fits in the side pocket.", - "The gloss on top made it unfit to read.", - "The hail pattered on the burnt brown grass.", - "Seven seals were stamped on great sheets.", - "Our troops are set to strike heavy blows.", - "The store was jammed before the sale could start.", - "It was a bad error on the part of the new judge.", - "One step more and the board will collapse.", - "Take the match and strike it against your shoe.", - "The pot boiled but the contents failed to jell.", - "The baby puts his right foot in his mouth.", - "The bombs left most of the town in ruins.", - "Stop and stare at the hard working man.", - "The streets are narrow and full of sharp turns.", - "The pup jerked the leash as he saw a feline shape.", - "Open your book to the first page.", - "Fish evade the net and swim off.", - "Dip the pail once and let it settle.", - "Will you please answer that phone.", - "The big red apple fell to the ground.", - "The curtain rose and the show was on.", - "The young prince became heir to the throne.", - "He sent the boy on a short errand.", - "Leave now and you will arrive on time.", - "The corner store was robbed last night.", - "A gold ring will please most any girl.", - "The long journey home took a year.", - "She saw a cat in the neighbor's house.", - "A pink shell was found on the sandy beach.", - "Small children came to see him.", - "The grass and bushes were wet with dew.", - "The blind man counted his old coins.", - "A severe storm tore down the barn.", - "She called his name many times.", - "When you hear the bell, come quickly.", - NULL -}; + "The birch canoe slid on the smooth planks. ", + "Glue the sheet to the dark blue background.", + "It's easy to tell the depth of a well. ", + "These days a chicken leg is a rare dish. ", + "Rice is often served in round bowls.", + "The juice of lemons makes fine punch. ", + "The box was thrown beside the parked truck. ", + "The hogs were fed chopped corn and garbage. ", + "Four hours of steady work faced us. ", + "A large size in stockings is hard to sell. ", + "The boy was there when the sun rose.", + "A rod is used to catch pink salmon. ", + "The source of the huge river is the clear spring. ", + "Kick the ball straight and follow through.", + "Help the woman get back to her feet. ", + "A pot of tea helps to pass the evening. ", + "Smoky fires lack flame and heat. ", + "The soft cushion broke the man's fall. ", + "The salt breeze came across from the sea. ", + "The girl at the booth sold fifty bonds. ", + "The small pup gnawed a hole in the sock. ", + "The fish twisted and turned on the bent hook. ", + "Press the pants and sew a button on the vest. ", + "The swan dive was far short of perfect. ", + "The beauty of the view stunned the young boy. ", + "Two blue fish swam in the tank. ", + "Her purse was full of useless trash. ", + "The colt reared and threw the tall rider. ", + "It snowed, rained, and hailed the same morning. ", + "Read verse out loud for pleasure.", + "Hoist the load to your left shoulder. ", + "Take the winding path to reach the lake. ", + "Note closely the size of the gas tank. ", + "Wipe the grease off his dirty face. ", + "Mend the coat before you go out. ", + "The wrist was badly strained and hung limp. ", + "The stray cat gave birth to kittens. ", + "The young girl gave no clear response. ", + "The meal was cooked before the bell rang.", + "What joy there is in living. ", + "A king ruled the state in the early days. ", + "The ship was torn apart on the sharp reef. ", + "Sickness kept him home the third week. ", + "The wide road shimmered in the hot sun. ", + "The lazy cow lay in the cool grass. ", + "Lift the square stone over the fence. ", + "The rope will bind the seven books at once. ", + "Hop over the fence and plunge in. ", + "The friendly gang left the drug store. ", + "Mesh wire keeps chicks inside. ", + "The frosty air passed through the coat. ", + "The crooked maze failed to fool the mouse. ", + "Adding fast leads to wrong sums. ", + "The show was a flop from the very start. ", + "A saw is a tool used for making boards.", + "The wagon moved on well oiled wheels.", + "March the soldiers past the next hill. ", + "A cup of sugar makes sweet fudge. ", + "Place a rosebush near the porch steps. ", + "Both lost their lives in the raging storm. ", + "We talked of the side show in the circus.", + "Use a pencil to write the first draft.", + "He ran half way to the hardware store. ", + "The clock struck to mark the third period.", + "A small creek cut across the field.", + "Cars and busses stalled in snow drifts.", + "The set of china hit the floor with a crash. ", + "This is a grand season for hikes on the road.", + "The dune rose from the edge of the water. ", + "Those words were the cue for the actor to leave.", + "A yacht slid around the point into the bay.", + "The two met while playing on the sand.", + "The ink stain dried on the finished page.", + "The walled town was seized without a fight. ", + "The lease ran out in sixteen weeks. ", + "A tame squirrel makes a nice pet. ", + "The horn of the car woke the sleeping cop. ", + "The heart beat strongly and with firm strokes. ", + "The pearl was worn in a thin silver ring. ", + "The fruit peel was cut in thick slices.", + "The Navy attacked the big task force.", + "See the cat glaring at the scared mouse. ", + "There are more than two factors here.", + "The hat brim was wide and too droopy.", + "The lawyer tried to lose his case.", + "The grass curled around the fence post.", + "Cut the pie into large parts.", + "Men strive but seldom get rich. ", + "Always close the barn door tight.", + "He lay prone and hardly moved a limb.", + "The slush lay deep along the street. ", + "A wisp of cloud hung in the blue air. ", + "A pound of sugar costs more than eggs.", + "The fin was sharp and cut the clear water.", + "The play seems dull and quite stupid.", + "Bail the boat to stop it from sinking.", + "The term ended in late june that year.", + "A Tusk is used to make costly gifts.", + "Ten pins were set in order.", + "The bill was paid every third week.", + "Oak is strong and also gives shade.", + "Cats and Dogs each hate the other.", + "The pipe began to rust while new.", + "Open the crate but don't break the glass.", + "Add the sum to the product of these three.", + "Thieves who rob friends deserve jail.", + "The ripe taste of cheese improves with age.", + "Act on these orders with great speed.", + "The hog crawled under the high fence.", + "Move the vat over the hot fire.", + "The bark of the pine tree was shiny and dark.", + "Leaves turn brown and yellow in the fall. ", + "The pennant waved when the wind blew.", + "Split the log with a quick, sharp blow.", + "Burn peat after the logs give out.", + "He ordered peach pie with ice cream.", + "Weave the carpet on the right hand side.", + "Hemp is a weed found in parts of the tropics.", + "A lame back kept his score low.", + "We find joy in the simplest things.", + "Type out three lists of orders.", + "The harder he tried the less he got done.", + "The boss ran the show with a watchful eye.", + "The cup cracked and spilled its contents.", + "Paste can cleanse the most dirty brass.", + "The slang word for raw whiskey is booze.", + "It caught its hind paw in a rusty trap.", + "The wharf could be seen at the farther shore.", + "Feel the heat of the weak dying flame.", + "The tiny girl took off her hat.", + "A cramp is no small danger on a swim.", + "He said the same phrase thirty times.", + "Pluck the bright rose without leaves.", + "Two plus seven is less than ten.", + "The glow deepened in the eyes of the sweet girl.", + "Bring your problems to the wise chief.", + "Write a fond note to the friend you cherish.", + "Clothes and lodging are free to new men.", + "We frown when events take a bad turn.", + "Port is a strong wine with a smoky taste.", + "The young kid jumped the rusty gate.", + "Guess the result from the first scores. ", + "A salt pickle tastes fine with ham.", + "The just claim got the right verdict.", + "Those thistles bend in a high wind.", + "Pure bred poodles have curls.", + "The tree top waved in a graceful way. ", + "The spot on the blotter was made by green ink. ", + "Mud was spattered on the front of his white shirt.", + "The cigar burned a hole in the desk top. ", + "The empty flask stood on the tin tray.", + "A speedy man can beat this track mark. ", + "He broke a new shoelace that day.", + "The coffee stand is too high for the couch. ", + "The urge to write short stories is rare. ", + "The pencils have all been used.", + "The pirates seized the crew of the lost ship.", + "We tried to replace the coin but failed. ", + "She sewed the torn coat quite neatly. ", + "The sofa cushion is red and of light weight.", + "The jacket hung on the back of the wide chair.", + "At that high level the air is pure.", + "Drop the two when you add the figures.", + "A filing case is now hard to buy.", + "An abrupt start does not win the prize. ", + "Wood is best for making toys and blocks.", + "The office paint was a dull, sad tan.", + "He knew the skill of the great young actress.", + "A rag will soak up spilled water.", + "A shower of dirt fell from the hot pipes.", + "Steam hissed from the broken valve. ", + "The child almost hurt the small dog.", + "There was a sound of dry leaves outside.", + "The sky that morning was clear and bright blue.", + "Torn scraps littered the stone floor.", + "Sunday is the best part of the week. ", + "The doctor cured him with these pills.", + "The new girl was fired today at noon.", + "They felt gay when the ship arrived in port.", + "Add the store's account to the last cent.", + "Acid burns holes in wool cloth.", + "Fairy tales should be fun to write.", + "Eight miles of woodland burned to waste.", + "The third act was dull and tired the players.", + "A young child should not suffer fright.", + "Add the column and put the sum here.", + "We admire and love a good cook.", + "There the flood mark is ten inches.", + "He carved a head from the round block of marble.", + "She has a smart way of wearing clothes.", + "The fruit of a fig tree is apple shaped.", + "Corn cobs can be used to kindle a fire. ", + "Where were they when the noise started.", + "The paper box is full of thumb tacks.", + "Sell your gift to a buyer at a good gain.", + "The tongs lay beside the ice pail.", + "The petals fall with the next puff of wind.", + "Bring your best compass to the third class.", + "They could laugh although they were sad.", + "Farmers came in to thresh the oat crop.", + "The brown house was on fire to the attic.", + "The lure is used to catch trout and flounder.", + "Float the soap on top of the bath water.", + "A blue crane is a tall wading bird.", + "A fresh start will work such wonders.", + "The club rented the rink for the fifth night.", + "After the dance, they went straight home.", + "The hostess taught the new maid to serve.", + "He wrote his last novel there at the inn.", + "Even the worst will beat his low score.", + "The cement had dried when he moved it.", + "The loss of the second ship was hard to take.", + "The fly made its way along the wall.", + "Do that with a wooden stick.", + "Live wires should be kept covered.", + "The large house had hot water taps.", + "It is hard to erase blue or red ink.", + "Write at once or you may forget it.", + "The doorknob was made of bright clean brass.", + "The wreck occurred by the bank on Main Street.", + "A pencil with black lead writes best.", + "Coax a young calf to drink from a bucket.", + "Schools for ladies teach charm and grace.", + "The lamp shone with a steady green flame.", + "They took the axe and the saw to the forest.", + "The ancient coin was quite dull and worn.", + "The shaky barn fell with a loud crash. ", + "Jazz and swing fans like fast music.", + "Rake the rubbish up and then burn it.", + "Slash the gold cloth into fine ribbons.", + "Try to have the court decide the case.", + "They are pushed back each time they attack.", + "He broke his ties with groups of former friends.", + "They floated on the raft to sun their white backs.", + "The map had an X that meant nothing.", + "Whitings are small fish caught in nets.", + "Some ads serve to cheat buyers.", + "Jerk the rope and the bell rings weakly.", + "A waxed floor makes us lose balance.", + "Madam, this is the best brand of corn.", + "On the islands the sea breeze is soft and mild.", + "The play began as soon as we sat down.", + "This will lead the world to more sound and fury.", + "Add salt before you fry the egg.", + "The rush for funds reached its peak Tuesday.", + "The birch looked stark white and lonesome.", + "The box is held by a bright red snapper.", + "To make pure ice, you freeze water.", + "The first worm gets snapped early.", + "Jump the fence and hurry up the bank.", + "Yell and clap as the curtain slides back.", + "They are men who walk the middle of the road.", + "Both brothers wear the same size.", + "In some form or other we need fun.", + "The prince ordered his head chopped off.", + "The houses are built of red clay bricks.", + "Ducks fly north but lack a compass.", + "Fruit flavors are used in fizz drinks.", + "These pills do less good than others.", + "Canned pears lack full flavor.", + "The dark pot hung in the front closet.", + "Carry the pail to the wall and spill it there.", + "The train brought our hero to the big town.", + "We are sure that one war is enough.", + "Gray paint stretched for miles around.", + "The rude laugh filled the empty room.", + "High seats are best for football fans.", + "Tea served from the brown jug is tasty.", + "A dash of pepper spoils beef stew.", + "A zestful food is the hot-cross bun.", + "The horse trotted around the field at a brisk pace.", + "Find the twin who stole the pearl necklace.", + "Cut the cord that binds the box tightly.", + "The red tape bound the smuggled food.", + "Look in the corner to find the tan shirt.", + "The cold drizzle will halt the bond drive.", + "Nine men were hired to dig the ruins.", + "The junk yard had a mouldy smell.", + "The flint sputtered and lit a pine torch.", + "Soak the cloth and drown the sharp odor.", + "The shelves were bare of both jam or crackers.", + "A joy to every child is the swan boat.", + "All sat frozen and watched the screen.", + "A cloud of dust stung his tender eyes.", + "To reach the end he needs much courage.", + "Shape the clay gently into block form.", + "A ridge on a smooth surface is a bump or flaw.", + "Hedge apples may stain your hands green.", + "Quench your thirst, then eat the crackers.", + "Tight curls get limp on rainy days.", + "The mute muffled the high tones of the horn.", + "The gold ring fits only a pierced ear.", + "The old pan was covered with hard fudge.", + "Watch the log float in the wide river.", + "The node on the stalk of wheat grew daily.", + "The heap of fallen leaves was set on fire.", + "Write fast if you want to finish early.", + "His shirt was clean but one button was gone.", + "The barrel of beer was a brew of malt and hops.", + "Tin cans are absent from store shelves.", + "Slide the box into that empty space.", + "The plant grew large and green in the window.", + "The beam dropped down on the workman's head.", + "Pink clouds floated with the breeze.", + "She danced like a swan, tall and graceful.", + "The tube was blown and the tire flat and useless.", + "It is late morning on the old wall clock.", + "Let's all join as we sing the last chorus.", + "The last switch cannot be turned off.", + "The fight will end in just six minutes.", + "The store walls were lined with colored frocks.", + "The peace league met to discuss their plans. ", + "The rise to fame of a person takes luck.", + "Paper is scarce, so write with much care.", + "The quick fox jumped on the sleeping cat.", + "The nozzle of the fire hose was bright brass.", + "Screw the round cap on as tight as needed.", + "Time brings us many changes.", + "The purple tie was ten years old.", + "Men think and plan and sometimes act.", + "Fill the ink jar with sticky glue.", + "He smoke a big pipe with strong contents.", + "We need grain to keep our mules healthy.", + "Pack the records in a neat thin case.", + "The crunch of feet in the snow was the only sound.", + "The copper bowl shone in the sun's rays.", + "Boards will warp unless kept dry. ", + "The plush chair leaned against the wall. ", + "Glass will clink when struck by metal.", + "Bathe and relax in the cool green grass.", + "Nine rows of soldiers stood in a line.", + "The beach is dry and shallow at low tide.", + "The idea is to sew both edges straight.", + "The kitten chased the dog down the street.", + "Pages bound in cloth make a book.", + "Try to trace the fine lines of the painting.", + "Women form less than half of the group. ", + "The zones merge in the central part of town.", + "A gem in the rough needs work to polish.", + "Code is used when secrets are sent.", + "Most of the news is easy for us to hear.", + "He used the lathe to make brass objects.", + "The vane on top of the pole revolved in the wind.", + "Mince pie is a dish served to children.", + "The clan gathered on each dull night.", + "Let it burn, it gives us warmth and comfort.", + "A castle built from sand fails to endure.", + "A child's wit saved the day for us.", + "Tack the strip of carpet to the worn floor.", + "Next Tuesday we must vote.", + "Pour the stew from the pot into the plate.", + "Each penny shone like new.", + "The man went to the woods to gather sticks.", + "The dirt piles were lines along the road.", + "The logs fell and tumbled into the clear stream.", + "Just hoist it up and take it away.", + "A ripe plum is fit for a king's palate.", + "Our plans right now are hazy. ", + "Brass rings are sold by these natives.", + "It takes a good trap to capture a bear.", + "Feed the white mouse some flower seeds.", + "The thaw came early and freed the stream.", + "He took the lead and kept it the whole distance.", + "The key you designed will fit the lock.", + "Plead to the council to free the poor thief.", + "Better hash is made of rare beef.", + "This plank was made for walking on .", + "The lake sparkled in the red hot sun.", + "He crawled with care along the ledge.", + "Tend the sheep while the dog wanders.", + "It takes a lot of help to finish these.", + "Mark the spot with a sign painted red.", + "Take two shares as a fair profit. ", + "The fur of cats goes by many names.", + "North winds bring colds and fevers.", + "He asks no person to vouch for him.", + "Go now and come here later.", + "A sash of gold silk will trim her dress.", + "Soap can wash most dirt away.", + "That move means the game is over.", + "He wrote down a long list of items.", + "A siege will crack the strong defense.", + "Grape juice and water mix well.", + "Roads are paved with sticky tar.", + "Fake stones shine but cost little.", + "The drip of the rain made a pleasant sound. ", + "Smoke poured out of every crack. ", + "Serve the hot rum to the tired heroes.", + "Much of the story makes good sense. ", + "The sun came up to light the eastern sky.", + "Heave the line over the port side.", + "A lathe cuts and trims any wood.", + "It's a dense crowd in two distinct ways.", + "His hip struck the knee of the next player.", + "The stale smell of old beer lingers.", + "The desk was firm on the shaky floor.", + "It takes heat to bring out the odor.", + "Beef is scarcer than some lamb.", + "Raise the sail and steer the ship northward.", + "A cone costs five cents on Mondays.", + "A pod is what peas always grow in.", + "Jerk that dart from the cork target.", + "No cement will hold hard wood.", + "We now have a new base for shipping.", + "A list of names is carved around the base.", + "The sheep were led home by a dog.", + "Three for a dime, the young peddler cried.", + "The sense of smell is better than that of touch.", + "No hardship seemed to make him sad.", + "Grace makes up for lack of beauty.", + "Nudge gently but wake her now.", + "The news struck doubt into restless minds.", + "Once we stood beside the shore.", + "A chink in the wall allowed a draft to blow.", + "Fasten two pins on each side.", + "A cold dip restores health and zest.", + "He takes the oath of office each March.", + "The sand drifts over the sills of the old house.", + "The point of the steel pen was bent and twisted.", + "There is a lag between thought and act.", + "Seed is needed to plant the spring corn.", + "Draw the chart with heavy black lines.", + "The boy owed his pal thirty cents.", + "The chap slipped into the crowd and was lost.", + "Hats are worn to tea and not to dinner.", + "The ramp led up to the wide highway.", + "Beat the dust from the rug onto the lawn.", + "Say it slowly but make it ring clear.", + "The straw nest housed five robins.", + "Screen the porch with woven straw mats.", + "This horse will nose his way to the finish.", + "The dry wax protects the deep scratch.", + "He picked up the dice for a second roll.", + "These coins will be needed to pay his debt.", + "The nag pulled the frail cart along.", + "Twist the valve and release hot steam.", + "The vamp of the shoe had a gold buckle.", + "The smell of burned rags itches my nose.", + "New pants lack cuffs and pockets.", + "The marsh will freeze when cold enough.", + "They slice the sausage thin with a knife.", + "The bloom of the rose lasts a few days.", + "A gray mare walked before the colt.", + "Breakfast buns are fine with a hot drink.", + "Bottles hold four kinds of rum.", + "The man wore a feather in his felt hat.", + "He wheeled the bike past the winding road.", + "Drop the ashes on the worn old rug.", + "The desk and both chairs were painted tan.", + "Throw out the used paper cup and plate.", + "A clean neck means a neat collar.", + "The couch cover and hall drapes were blue.", + "The stems of the tall glasses cracked and broke.", + "The wall phone rang loud and often.", + "The clothes dried on a thin wooden rack.", + "Turn out the lantern which gives us light.", + "The cleat sank deeply into the soft turf.", + "The bills were mailed promptly on the tenth of the month.", + "To have is better than to wait and hope.", + "The price is fair for a good antique clock.", + "The music played on while they talked.", + "Dispense with a vest on a day like this.", + "The bunch of grapes was pressed into wine.", + "He sent the figs, but kept the ripe cherries.", + "The hinge on the door creaked with old age.", + "The screen before the fire kept in the sparks.", + "Fly by night and you waste little time.", + "Thick glasses helped him read the print.", + "Birth and death marks the limits of life.", + "The chair looked strong but had no bottom.", + "The kite flew wildly in the high wind.", + "A fur muff is stylish once more.", + "The tin box held priceless stones.", + "We need an end of all such matter.", + "The case was puzzling to the old and wise.", + "The bright lanterns were gay on the dark lawn.", + "We don't get much money but we have fun.", + "The youth drove with zest, but little skill.", + "Five years he lived with a shaggy dog.", + "A fence cuts through the corner lot.", + "The way to save money is not to spend much.", + "Shut the hatch before the waves push it in.", + "The odor of spring makes young hearts jump.", + "Crack the walnut with your sharp side teeth.", + "He offered proof in the form of a large chart.", + "Send the stuff in a thick paper bag.", + "A quart of milk is water for the most part.", + "They told wild tales to frighten him.", + "The three story house was built of stone.", + "In the rear of the ground floor was a large passage.", + "A man in a blue sweater sat at the desk.", + "Oats are a food eaten by horse and man.", + "Their eyelids droop for want of sleep.", + "A sip of tea revives his tired friend.", + "There are many ways to do these things.", + "Tuck the sheet under the edge of the mat.", + "A force equal to that would move the earth.", + "We like to see clear weather.", + "The work of the tailor is seen on each side.", + "Take a chance and win a china doll.", + "Shake the dust from your shoes, stranger.", + "She was kind to sick old people.", + "The square wooden crate was packed to be shipped.", + "The dusty bench stood by the stone wall.", + "We dress to suit the weather of most days.", + "Smile when you say nasty words.", + "A bowl of rice is free with chicken stew.", + "The water in this well is a source of good health.", + "Take shelter in this tent, but keep still.", + "That guy is the writer of a few banned books.", + "The little tales they tell are false.", + "The door was barred, locked, and bolted as well.", + "Ripe pears are fit for a queen's table.", + "A big wet stain was on the round carpet.", + "The kite dipped and swayed, but stayed aloft.", + "The pleasant hours fly by much too soon.", + "The room was crowded with a wild mob.", + "This strong arm shall shield your honor.", + "She blushed when he gave her a white orchid.", + "The beetle droned in the hot June sun.", + "Press the pedal with your left foot.", + "Neat plans fail without luck.", + "The black trunk fell from the landing.", + "The bank pressed for payment of the debt.", + "The theft of the pearl pin was kept secret.", + "Shake hands with this friendly child.", + "The vast space stretched into the far distance.", + "A rich farm is rare in this sandy waste.", + "His wide grin earned many friends.", + "Flax makes a fine brand of paper.", + "Hurdle the pit with the aid of a long pole.", + "A strong bid may scare your partner stiff.", + "Even a just cause needs power to win.", + "Peep under the tent and see the clowns.", + "The leaf drifts along with a slow spin.", + "Cheap clothes are flashy but don't last.", + "A thing of small note can cause despair.", + "Flood the mails with requests for this book.", + "A thick coat of black paint covered all.", + "The pencil was cut to be sharp at both ends.", + "Those last words were a strong statement.", + "He wrote his name boldly at the top of the sheet.", + "Dill pickles are sour but taste fine.", + "Down that road is the way to the grain farmer.", + "Either mud or dust are found at all times.", + "The best method is to fix it in place with clips.", + "If you mumble your speech will be lost.", + "At night the alarm roused him from a deep sleep.", + "Read just what the meter says.", + "Fill your pack with bright trinkets for the poor.", + "The small red neon lamp went out.", + "Clams are small, round, soft, and tasty.", + "The fan whirled its round blades softly.", + "The line where the edges join was clean.", + "Breathe deep and smell the piny air.", + "It matters not if he reads these words or those.", + "A brown leather bag hung from its strap.", + "A toad and a frog are hard to tell apart.", + "A white silk jacket goes with any shoes.", + "A break in the dam almost caused a flood.", + "Paint the sockets in the wall dull green.", + "The child crawled into the dense grass.", + "Bribes fail where honest men work.", + "Trample the spark, else the flames will spread.", + "The hilt of the sword was carved with fine designs.", + "A round hole was drilled through the thin board.", + "Footprints showed the path he took up the beach.", + "She was waiting at my front lawn.", + "A vent near the edge brought in fresh air.", + "Prod the old mule with a crooked stick.", + "It is a band of steel three inches wide.", + "The pipe ran almost the length of the ditch.", + "It was hidden from sight by a mass of leaves and shrubs.", + "The weight of the package was seen on the high scale.", + "Wake and rise, and step into the green outdoors.", + "The green light in the brown box flickered.", + "The brass tube circled the high wall.", + "The lobes of her ears were pierced to hold rings.", + "Hold the hammer near the end to drive the nail.", + "Next Sunday is the twelfth of the month.", + "Every word and phrase he speaks is true.", + "He put his last cartridge into the gun and fired.", + "They took their kids from the public school.", + "Drive the screw straight into the wood.", + "Keep the hatch tight and the watch constant.", + "Sever the twine with a quick snip of the knife.", + "Paper will dry out when wet.", + "Slide the catch back and open the desk.", + "Help the weak to preserve their strength.", + "A sullen smile gets few friends.", + "Stop whistling and watch the boys march.", + "Jerk the cord, and out tumbles the gold.", + "Slide the tray across the glass top.", + "The cloud moved in a stately way and was gone.", + "Light maple makes for a swell room.", + "Set the piece here and say nothing.", + "Dull stories make her laugh.", + "A stiff cord will do to fasten your shoe.", + "Get the trust fund to the bank early.", + "Choose between the high road and the low.", + "A plea for funds seems to come again.", + "He lent his coat to the tall gaunt stranger.", + "There is a strong chance it will happen once more.", + "The duke left the park in a silver coach.", + "Greet the new guests and leave quickly.", + "When the frost has come it is time for turkey.", + "Sweet words work better than fierce.", + "A thin stripe runs down the middle.", + "A six comes up more often than a ten.", + "Lush ferns grow on the lofty rocks.", + "The ram scared the school children off.", + "The team with the best timing looks good.", + "The farmer swapped his horse for a brown ox.", + "Sit on the perch and tell the others what to do.", + "A steep trail is painful for our feet.", + "The early phase of life moves fast.", + "Green moss grows on the northern side.", + "Tea in thin china has a sweet taste.", + "Pitch the straw through the door of the stable.", + "The latch on the back gate needed a nail.", + "The goose was brought straight from the old market.", + "The sink is the thing in which we pile dishes.", + "A whiff of it will cure the most stubborn cold.", + "The facts don't always show who is right.", + "She flaps her cape as she parades the street.", + "The loss of the cruiser was a blow to the fleet.", + "Loop the braid to the left and then over.", + "Plead with the lawyer to drop the lost cause.", + "Calves thrive on tender spring grass.", + "Post no bills on this office wall.", + "Tear a thin sheet from the yellow pad.", + "A cruise in warm waters in a sleek yacht is fun.", + "A streak of color ran down the left edge.", + "It was done before the boy could see it.", + "Crouch before you jump or miss the mark.", + "Pack the kits and don't forget the salt.", + "The square peg will settle in the round hole.", + "Fine soap saves tender skin.", + "Poached eggs and tea must suffice.", + "Bad nerves are jangled by a door slam.", + "Ship maps are different from those for planes.", + "Dimes showered down from all sides.", + "They sang the same tunes at each party.", + "The sky in the west is tinged with orange red.", + "The pods of peas ferment in bare fields.", + "The horse balked and threw the tall rider.", + "The hitch between the horse and cart broke.", + "Pile the coal high in the shed corner.", + "A gold vase is both rare and costly.", + "The knife was hung inside its bright sheath.", + "The rarest spice comes from the far East.", + "The roof should be tilted at a sharp slant.", + "A smatter of French is worse than none.", + "The mule trod the treadmill day and night.", + "The aim of the contest is to raise a great fund.", + "To send it now in large amounts is bad.", + "There is a fine hard tang in salty air.", + "Cod is the main business of the north shore.", + "The slab was hewn from heavy blocks of slate.", + "Dunk the stale biscuits into strong drink.", + "Hang tinsel from both branches.", + "Cap the jar with a tight brass cover.", + "The poor boy missed the boat again.", + "Be sure to set that lamp firmly in the hole.", + "Pick a card and slip it under the pack.", + "A round mat will cover the dull spot.", + "The first part of the plan needs changing.", + "A good book informs of what we ought to know.", + "The mail comes in three batches per day.", + "You cannot brew tea in a cold pot.", + "Dots of light betrayed the black cat.", + "Put the chart on the mantel and tack it down.", + "The night shift men rate extra pay.", + "The red paper brightened the dim stage.", + "See the player scoot to third base.", + "Slide the bill between the two leaves.", + "Many hands help get the job done.", + "We don't like to admit our small faults.", + "No doubt about the way the wind blows.", + "Dig deep in the earth for pirate's gold.", + "The steady drip is worse than a drenching rain.", + "A flat pack takes less luggage space.", + "Green ice frosted the punch bowl.", + "A stuffed chair slipped from the moving van.", + "The stitch will serve but needs to be shortened.", + "A thin book fits in the side pocket.", + "The gloss on top made it unfit to read.", + "The hail pattered on the burnt brown grass.", + "Seven seals were stamped on great sheets.", + "Our troops are set to strike heavy blows.", + "The store was jammed before the sale could start.", + "It was a bad error on the part of the new judge.", + "One step more and the board will collapse.", + "Take the match and strike it against your shoe.", + "The pot boiled but the contents failed to jell.", + "The baby puts his right foot in his mouth.", + "The bombs left most of the town in ruins.", + "Stop and stare at the hard working man.", + "The streets are narrow and full of sharp turns.", + "The pup jerked the leash as he saw a feline shape.", + "Open your book to the first page.", + "Fish evade the net and swim off.", + "Dip the pail once and let it settle.", + "Will you please answer that phone.", + "The big red apple fell to the ground.", + "The curtain rose and the show was on.", + "The young prince became heir to the throne.", + "He sent the boy on a short errand.", + "Leave now and you will arrive on time.", + "The corner store was robbed last night.", + "A gold ring will please most any girl.", + "The long journey home took a year.", + "She saw a cat in the neighbor's house.", + "A pink shell was found on the sandy beach.", + "Small children came to see him.", + "The grass and bushes were wet with dew.", + "The blind man counted his old coins.", + "A severe storm tore down the barn.", + "She called his name many times.", + "When you hear the bell, come quickly.", + NULL}; From 50f11b1c69dc5fdeb441d001adfc69963447a390 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 15 Dec 2025 14:09:30 +0900 Subject: [PATCH 016/836] introduce box widget --- examples/basic/box.c | 63 ++++++++++++++++++++++++ include/Mw/Core.h | 11 +++++ include/Mw/Milsko.h | 1 + include/Mw/StringDefs.h | 1 + include/Mw/TypeDefs.h | 39 ++++++++------- include/Mw/Widget/Box.h | 24 ++++++++++ milsko.xml | 8 ++++ pl/rules.pl | 2 + src/core.c | 22 +++++++-- src/widget/box.c | 100 +++++++++++++++++++++++++++++++++++++++ src/widget/button.c | 5 ++ src/widget/checkbox.c | 5 ++ src/widget/combobox.c | 5 ++ src/widget/entry.c | 5 ++ src/widget/frame.c | 5 ++ src/widget/image.c | 5 ++ src/widget/label.c | 5 ++ src/widget/listbox.c | 5 ++ src/widget/menu.c | 5 ++ src/widget/numberentry.c | 5 ++ src/widget/opengl.c | 5 ++ src/widget/progressbar.c | 5 ++ src/widget/radiobox.c | 5 ++ src/widget/scrollbar.c | 5 ++ src/widget/separator.c | 5 ++ src/widget/submenu.c | 5 ++ src/widget/treeview.c | 5 ++ src/widget/viewport.c | 5 ++ src/widget/vulkan.c | 5 ++ src/widget/window.c | 5 ++ tools/watcom-pack.sh | 1 + 31 files changed, 353 insertions(+), 19 deletions(-) create mode 100644 examples/basic/box.c create mode 100644 include/Mw/Widget/Box.h create mode 100644 src/widget/box.c diff --git a/examples/basic/box.c b/examples/basic/box.c new file mode 100644 index 000000000..517a540f2 --- /dev/null +++ b/examples/basic/box.c @@ -0,0 +1,63 @@ +#include + +MwWidget window, box; + +void resize(MwWidget handle, void* user, void* client) { + int ww = MwGetInteger(handle, MwNwidth); + int wh = MwGetInteger(handle, MwNheight); + + (void)user; + (void)client; + + MwVaApply(box, + MwNwidth, ww, + MwNheight, wh, + NULL); +} + +int main() { + MwWidget box2, box3; + + MwLibraryInit(); + + window = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 200, 200, + MwNtitle, "box", + NULL); + + box = MwVaCreateWidget(MwBoxClass, "box", window, 0, 0, 0, 0, + MwNpadding, 10, + NULL); + + box2 = MwVaCreateWidget(MwBoxClass, "box2", box, 0, 0, 0, 0, + MwNpadding, 10, + MwNorientation, MwVERTICAL, + NULL); + + box3 = MwVaCreateWidget(MwBoxClass, "box3", box, 0, 0, 0, 0, + MwNpadding, 10, + MwNorientation, MwVERTICAL, + NULL); + + MwVaCreateWidget(MwButtonClass, "btn1", box2, 0, 0, 0, 0, + MwNbackground, "#a00", + NULL); + + MwVaCreateWidget(MwButtonClass, "btn2", box2, 0, 0, 0, 0, + MwNbackground, "#0a0", + MwNboxRatio, 2, + NULL); + + MwVaCreateWidget(MwButtonClass, "btn3", box2, 0, 0, 0, 0, + MwNbackground, "#00a", + NULL); + + MwVaCreateWidget(MwButtonClass, "btn4", box3, 0, 0, 0, 0, + MwNbackground, "#00a", + NULL); + + MwAddUserHandler(window, MwNresizeHandler, resize, NULL); + + resize(window, NULL, NULL); + + MwLoop(window); +} diff --git a/include/Mw/Core.h b/include/Mw/Core.h index e873b41f8..e714a32ed 100644 --- a/include/Mw/Core.h +++ b/include/Mw/Core.h @@ -37,6 +37,17 @@ #define MwDispatch3(x, y, z) \ if(!x->destroyed && x->widget_class != NULL && x->widget_class->y != NULL) x->widget_class->y(x, z) +/*! + * @warning Used internally + * @brief Dispatches the handler of widget class + * @param x Widget + * @param y Handler name + * @param z Argument + * @param w Argument + */ +#define MwDispatch4(x, y, z, w) \ + if(!x->destroyed && x->widget_class != NULL && x->widget_class->y != NULL) x->widget_class->y(x, z, w) + #define MwWaitMS 30 #define MwDoubleClickTimeout 250 diff --git a/include/Mw/Milsko.h b/include/Mw/Milsko.h index 5e14588ce..4bd157a78 100644 --- a/include/Mw/Milsko.h +++ b/include/Mw/Milsko.h @@ -50,5 +50,6 @@ #include #include #include +#include #endif diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index de8b8bb17..238c0ba92 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -32,6 +32,7 @@ #define MwNpadding "Ipadding" #define MwNborderWidth "IborderWidth" #define MwNfillArea "IfillArea" +#define MwNboxRatio "IboxRatio" #define MwNtitle "Stitle" #define MwNtext "Stext" diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index 3c58e95aa..0d2eeca4e 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -32,11 +32,13 @@ typedef void* MwWidget; typedef void (*MwHandler)(MwWidget handle); typedef int (*MwHandlerWithStatus)(MwWidget handle); typedef void (*MwHandlerProp)(MwWidget handle, const char* key); +typedef void (*MwHandlerChildrenProp)(MwWidget handle, MwWidget child, const char* key); typedef void (*MwHandlerKey)(MwWidget handle, int key); typedef void (*MwHandlerMouse)(MwWidget handle, void* ptr); +typedef void (*MwHandlerExecute)(MwWidget handle, const char* name, void* out, va_list args); + typedef void (*MwUserHandler)(MwWidget handle, void* user_data, void* call_data); typedef void (*MwErrorHandler)(int code, const char* message, void* user_data); -typedef void (*MwHandlerExecute)(MwWidget handle, const char* name, void* out, va_list args); struct _MwTextKeyValue { char* key; @@ -175,21 +177,26 @@ struct _MwListBoxPacket { }; struct _MwClass { - MwHandlerWithStatus create; - MwHandler destroy; - MwHandler draw; - MwHandler click; - MwHandler parent_resize; - MwHandlerProp prop_change; - MwHandler mouse_move; - MwHandlerMouse mouse_up; - MwHandlerMouse mouse_down; - MwHandlerKey key; - MwHandlerExecute execute; - MwHandler tick; - void* reserved3; - void* reserved4; - void* reserved5; + MwHandlerWithStatus create; + MwHandler destroy; + MwHandler draw; + MwHandler click; + MwHandler parent_resize; + MwHandlerProp prop_change; + MwHandler mouse_move; + MwHandlerMouse mouse_up; + MwHandlerMouse mouse_down; + MwHandlerKey key; + MwHandlerExecute execute; + MwHandler tick; + MwHandler resize; + MwHandler children_update; + MwHandlerChildrenProp children_prop_change; + void* reserved1; + void* reserved2; + void* reserved3; + void* reserved4; + void* reserved5; }; #endif diff --git a/include/Mw/Widget/Box.h b/include/Mw/Widget/Box.h new file mode 100644 index 000000000..172e5f6e2 --- /dev/null +++ b/include/Mw/Widget/Box.h @@ -0,0 +1,24 @@ +/*! + * @file Mw/Widget/Box.h + * @brief Box widget + */ +#ifndef __MW_WIDGET_BOX_H__ +#define __MW_WIDGET_BOX_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/*! + * @brief Box widget class + */ +MWDECL MwClass MwBoxClass; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/milsko.xml b/milsko.xml index 5e7458043..faf040552 100644 --- a/milsko.xml +++ b/milsko.xml @@ -49,6 +49,7 @@ - MwNheight - MwNborderWidth - MwNbackgroundPixmap + - MwNboxRatio Integer properties must be prefixed with I. String properties must be prefixed with S. @@ -82,6 +83,7 @@ + @@ -483,6 +485,12 @@ + + + + + + diff --git a/pl/rules.pl b/pl/rules.pl index ab5521b50..f8aec46d6 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -71,6 +71,7 @@ new_object("src/icon/*.c"); new_object("src/font/*.c"); new_object("src/cursor/*.c"); +new_object("src/widget/box.c"); new_object("src/widget/button.c"); new_object("src/widget/checkbox.c"); new_object("src/widget/combobox.c"); @@ -116,6 +117,7 @@ new_example("examples/basic/progressbar"); new_example("examples/basic/colorpicker"); new_example("examples/basic/combobox"); new_example("examples/basic/treeview"); +new_example("examples/basic/box"); if (param_get("opengl")) { new_example("examples/gldemos/boing", $gl_libs); diff --git a/src/core.c b/src/core.c index ec7cb7d53..4afafb77f 100644 --- a/src/core.c +++ b/src/core.c @@ -50,6 +50,7 @@ static void llresizehandler(MwLL handle, void* data) { for(i = 0; i < arrlen(h->children); i++) { MwDispatch(h->children[i], parent_resize); } + MwDispatch(h, resize); } static void llclosehandler(MwLL handle, void* data) { @@ -176,6 +177,8 @@ MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, MwAddTickList(h); } + if(h->parent != NULL) MwDispatch(h->parent, children_update); + return h; } @@ -378,7 +381,10 @@ void MwSetInteger(MwWidget handle, const char* key, int n) { } else { shput(handle->integer, key, n); } - if(handle->prop_event) MwDispatch3(handle, prop_change, key); + if(handle->prop_event) { + MwDispatch3(handle, prop_change, key); + if(handle->parent != NULL) MwDispatch4(handle->parent, children_prop_change, handle, key); + } } void MwSetText(MwWidget handle, const char* key, const char* value) { @@ -395,7 +401,10 @@ void MwSetText(MwWidget handle, const char* key, const char* value) { shdel(handle->text, key); } } - if(handle->prop_event) MwDispatch3(handle, prop_change, key); + if(handle->prop_event) { + MwDispatch3(handle, prop_change, key); + if(handle->parent != NULL) MwDispatch4(handle->parent, children_prop_change, handle, key); + } if(strcmp(key, MwNbackground) == 0 || strcmp(key, MwNforeground) == 0 || strcmp(key, MwNsubBackground) == 0 || strcmp(key, MwNsubForeground) == 0) { MwForceRender(handle); } @@ -413,7 +422,10 @@ void MwSetVoid(MwWidget handle, const char* key, void* value) { } else { shput(handle->data, key, value); } - if(handle->prop_event) MwDispatch3(handle, prop_change, key); + if(handle->prop_event) { + MwDispatch3(handle, prop_change, key); + if(handle->parent != NULL) MwDispatch4(handle->parent, children_prop_change, handle, key); + } } int MwGetInteger(MwWidget handle, const char* key) { @@ -732,10 +744,14 @@ void MwReparent(MwWidget handle, MwWidget new_parent) { break; } } + + MwDispatch(handle->parent, children_update); } handle->parent = new_parent; arrput(new_parent->children, handle); + + MwDispatch(handle->parent, children_update); } MwClass MwGetClass(MwWidget handle) { diff --git a/src/widget/box.c b/src/widget/box.c new file mode 100644 index 000000000..31b0a07d9 --- /dev/null +++ b/src/widget/box.c @@ -0,0 +1,100 @@ +#include + +#include "../../external/stb_ds.h" + +static int create(MwWidget handle) { + MwSetDefault(handle); + + MwSetInteger(handle, MwNorientation, MwHORIZONTAL); + MwSetInteger(handle, MwNpadding, 0); + + return 0; +} + +static void draw(MwWidget handle) { + MwRect r; + MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); + + r.x = 0; + r.y = 0; + r.width = MwGetInteger(handle, MwNwidth); + r.height = MwGetInteger(handle, MwNheight); + MwDrawRect(handle, &r, base); + + MwLLFreeColor(base); +} + +static void layout(MwWidget handle) { + int i; + int sum = 0; + int horiz = MwGetInteger(handle, MwNorientation) == MwHORIZONTAL ? 1 : 0; + int sz = MwGetInteger(handle, horiz ? MwNwidth : MwNheight) - MwGetInteger(handle, MwNpadding); + int fsz = MwGetInteger(handle, horiz ? MwNheight : MwNwidth) - MwGetInteger(handle, MwNpadding) * 2; + int sk = 0; + if(arrlen(handle->children) == 0) return; + + for(i = 0; i < arrlen(handle->children); i++) { + int n = MwGetInteger(handle->children[i], MwNboxRatio); + if(n == MwDEFAULT) n = 1; + + sum += n; + } + + for(i = 0; i < arrlen(handle->children); i++) { + int n = MwGetInteger(handle->children[i], MwNboxRatio); + int wsz; + if(n == MwDEFAULT) n = 1; + + wsz = sz * n / sum - MwGetInteger(handle, MwNpadding); + + sk += MwGetInteger(handle, MwNpadding); + MwVaApply(handle->children[i], + horiz ? MwNx : MwNy, sk, /* this is what gets changed */ + horiz ? MwNy : MwNx, MwGetInteger(handle, MwNpadding), /* fixed between widgets */ + horiz ? MwNwidth : MwNheight, wsz, /* this is what gets changed */ + horiz ? MwNheight : MwNwidth, fsz, /* fixed between widgets */ + NULL); + sk += wsz; + } +} + +static void prop_change(MwWidget handle, const char* key) { + if(strcmp(key, MwNorientation) == 0) layout(handle); +} + +static void children_prop_change(MwWidget handle, MwWidget child, const char* key) { + (void)child; + + if(strcmp(key, MwNboxRatio) == 0) layout(handle); +} + +static void resize(MwWidget handle) { + layout(handle); +} + +static void children_update(MwWidget handle) { + layout(handle); +} + +MwClassRec MwBoxClassRec = { + create, /* create */ + NULL, /* destroy */ + draw, /* draw */ + NULL, /* click */ + NULL, /* parent_resize */ + prop_change, /* prop_change */ + NULL, /* mouse_move */ + NULL, /* mouse_up */ + NULL, /* mouse_down */ + NULL, /* key */ + NULL, /* execute */ + NULL, /* tick */ + resize, /* resize */ + children_update, /* children_update */ + children_prop_change, /* children_prop_change */ + NULL, + NULL, + NULL, + NULL, + NULL}; +MwClass MwBoxClass = &MwBoxClassRec; diff --git a/src/widget/button.c b/src/widget/button.c index a484eea76..dfff6d5bf 100644 --- a/src/widget/button.c +++ b/src/widget/button.c @@ -101,6 +101,11 @@ MwClassRec MwButtonClassRec = { NULL, /* key */ NULL, /* execute */ NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, + NULL, NULL, NULL, NULL}; diff --git a/src/widget/checkbox.c b/src/widget/checkbox.c index 0a117a42e..8a42b8904 100644 --- a/src/widget/checkbox.c +++ b/src/widget/checkbox.c @@ -50,6 +50,11 @@ MwClassRec MwCheckBoxClassRec = { NULL, /* key */ NULL, /* execute */ NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, + NULL, NULL, NULL, NULL}; diff --git a/src/widget/combobox.c b/src/widget/combobox.c index 9de2ac081..156242e81 100644 --- a/src/widget/combobox.c +++ b/src/widget/combobox.c @@ -201,6 +201,11 @@ MwClassRec MwComboBoxClassRec = { NULL, /* key */ func_handler, /* execute */ NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, + NULL, NULL, NULL, NULL}; diff --git a/src/widget/entry.c b/src/widget/entry.c index b5ac1e05d..85f9a86c1 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -170,6 +170,11 @@ MwClassRec MwEntryClassRec = { key, /* key */ NULL, /* execute */ NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, + NULL, NULL, NULL, NULL}; diff --git a/src/widget/frame.c b/src/widget/frame.c index 38ff990fe..36085a6d6 100644 --- a/src/widget/frame.c +++ b/src/widget/frame.c @@ -59,6 +59,11 @@ MwClassRec MwFrameClassRec = { NULL, /* key */ NULL, /* execute */ NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, + NULL, NULL, NULL, NULL}; diff --git a/src/widget/image.c b/src/widget/image.c index 8d2e1c796..487521dd5 100644 --- a/src/widget/image.c +++ b/src/widget/image.c @@ -46,6 +46,11 @@ MwClassRec MwImageClassRec = { NULL, /* key */ NULL, /* execute */ NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, + NULL, NULL, NULL, NULL}; diff --git a/src/widget/label.c b/src/widget/label.c index f26edd075..2cf6a8da3 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -59,6 +59,11 @@ MwClassRec MwLabelClassRec = { NULL, /* key */ NULL, /* execute */ NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, + NULL, NULL, NULL, NULL}; diff --git a/src/widget/listbox.c b/src/widget/listbox.c index 784594b18..4141f485d 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -606,6 +606,11 @@ MwClassRec MwListBoxClassRec = { NULL, /* key */ func_handler, /* execute */ tick, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, + NULL, NULL, NULL, NULL}; diff --git a/src/widget/menu.c b/src/widget/menu.c index 0538812f8..ffb8bb60e 100644 --- a/src/widget/menu.c +++ b/src/widget/menu.c @@ -201,6 +201,11 @@ MwClassRec MwMenuClassRec = { NULL, /* key */ func_handler, /* execute */ NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, + NULL, NULL, NULL, NULL}; diff --git a/src/widget/numberentry.c b/src/widget/numberentry.c index edfbe9ea2..ccbdf1433 100644 --- a/src/widget/numberentry.c +++ b/src/widget/numberentry.c @@ -140,6 +140,11 @@ MwClassRec MwNumberEntryClassRec = { key, /* key */ NULL, /* execute */ NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, + NULL, NULL, NULL, NULL}; diff --git a/src/widget/opengl.c b/src/widget/opengl.c index f6cc36933..9481c49ce 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -249,6 +249,11 @@ MwClassRec MwOpenGLClassRec = { NULL, /* key */ func_handler, /* execute */ NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, + NULL, NULL, NULL, NULL}; diff --git a/src/widget/progressbar.c b/src/widget/progressbar.c index f3f99eb33..bd036dd3d 100644 --- a/src/widget/progressbar.c +++ b/src/widget/progressbar.c @@ -58,6 +58,11 @@ MwClassRec MwProgressBarClassRec = { NULL, /* key */ NULL, /* execute */ NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, + NULL, NULL, NULL, NULL}; diff --git a/src/widget/radiobox.c b/src/widget/radiobox.c index 85c7871a1..a6f78f9d5 100644 --- a/src/widget/radiobox.c +++ b/src/widget/radiobox.c @@ -59,6 +59,11 @@ MwClassRec MwRadioBoxClassRec = { NULL, /* key */ NULL, /* execute */ NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, + NULL, NULL, NULL, NULL}; diff --git a/src/widget/scrollbar.c b/src/widget/scrollbar.c index e00d0b550..254e05beb 100644 --- a/src/widget/scrollbar.c +++ b/src/widget/scrollbar.c @@ -275,6 +275,11 @@ MwClassRec MwScrollBarClassRec = { NULL, /* key */ func_handler, /* execute */ NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, + NULL, NULL, NULL, NULL}; diff --git a/src/widget/separator.c b/src/widget/separator.c index 009c42b0f..5800ba302 100644 --- a/src/widget/separator.c +++ b/src/widget/separator.c @@ -47,6 +47,11 @@ MwClassRec MwSeparatorClassRec = { NULL, /* key */ NULL, /* execute */ NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, + NULL, NULL, NULL, NULL}; diff --git a/src/widget/submenu.c b/src/widget/submenu.c index 3e7eaaa94..09a02744e 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -212,6 +212,11 @@ MwClassRec MwSubMenuClassRec = { NULL, /* key */ func_handler, /* execute */ NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, + NULL, NULL, NULL, NULL}; diff --git a/src/widget/treeview.c b/src/widget/treeview.c index 2379937c7..27607ceeb 100644 --- a/src/widget/treeview.c +++ b/src/widget/treeview.c @@ -493,6 +493,11 @@ MwClassRec MwTreeViewClassRec = { NULL, /* key */ func_handler, /* execute */ tick, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, + NULL, NULL, NULL, NULL}; diff --git a/src/widget/viewport.c b/src/widget/viewport.c index 1cd3ee99a..9bdf86017 100644 --- a/src/widget/viewport.c +++ b/src/widget/viewport.c @@ -188,6 +188,11 @@ MwClassRec MwViewportClassRec = { NULL, /* key */ func_handler, /* execute */ tick, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, + NULL, NULL, NULL, NULL}; diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index 29a2fab84..bda24bfff 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -521,6 +521,11 @@ MwClassRec MwVulkanClassRec = { NULL, /* key */ func_handler, /* execute */ NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, + NULL, NULL, NULL, NULL}; diff --git a/src/widget/window.c b/src/widget/window.c index f8e839415..98a128f8f 100644 --- a/src/widget/window.c +++ b/src/widget/window.c @@ -56,6 +56,11 @@ MwClassRec MwWindowClassRec = { NULL, /* key */ func_handler, /* execute */ NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, + NULL, NULL, NULL, NULL}; diff --git a/tools/watcom-pack.sh b/tools/watcom-pack.sh index 1c465e346..81626dbfb 100755 --- a/tools/watcom-pack.sh +++ b/tools/watcom-pack.sh @@ -18,5 +18,6 @@ for i in *.c; do done cd ../.. rm -f milsko-examples.zip +cp resource/logo/logo.png examples/picture.jpg examples/picture.png milsko-examples/ zip -rv milsko-examples.zip milsko-examples rm -rf milsko-examples From 1a95ddce94ab62163e68104695012de727fa30df Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 15 Dec 2025 14:13:55 +0900 Subject: [PATCH 017/836] oops --- BorMakefile | 5 +++-- NTMakefile | 5 +++-- WatMakefile | 7 +++++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/BorMakefile b/BorMakefile index 4b286a14f..59551b5fd 100644 --- a/BorMakefile +++ b/BorMakefile @@ -51,6 +51,7 @@ clean: del /f /q src\string.obj del /f /q src\text.obj del /f /q src\unicode.obj + del /f /q src\widget\box.obj del /f /q src\widget\button.obj del /f /q src\widget\checkbox.obj del /f /q src\widget\combobox.obj @@ -73,8 +74,8 @@ clean: del /f /q src\Mw.dll del /f /q src\Mw.lib -src\Mw.dll: external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj - $(LD) $(LDFLAGS) -e$@ external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj -lopengl32.lib -lgdi32.lib -luser32.lib +src\Mw.dll: external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj + $(LD) $(LDFLAGS) -e$@ external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj -lopengl32.lib -lgdi32.lib -luser32.lib implib src\Mw.lib src\Mw.dll .c.obj: diff --git a/NTMakefile b/NTMakefile index abde8254f..265418a7a 100644 --- a/NTMakefile +++ b/NTMakefile @@ -51,6 +51,7 @@ clean: del /f /q src\string.obj del /f /q src\text.obj del /f /q src\unicode.obj + del /f /q src\widget\box.obj del /f /q src\widget\button.obj del /f /q src\widget\checkbox.obj del /f /q src\widget\combobox.obj @@ -73,8 +74,8 @@ clean: del /f /q src\Mw.dll del /f /q src\Mw.lib -src\Mw.dll: external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj - $(LD) $(LDFLAGS) /OUT:$@ external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib user32.lib +src\Mw.dll: external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj + $(LD) $(LDFLAGS) /OUT:$@ external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib user32.lib .c.obj: diff --git a/WatMakefile b/WatMakefile index 8b7e96521..dc7b12119 100644 --- a/WatMakefile +++ b/WatMakefile @@ -50,6 +50,7 @@ clean: .SYMBOLIC %erase src/string.obj %erase src/text.obj %erase src/unicode.obj + %erase src/widget/box.obj %erase src/widget/button.obj %erase src/widget/checkbox.obj %erase src/widget/combobox.obj @@ -72,8 +73,8 @@ clean: .SYMBOLIC %erase src/Mw.dll %erase src/Mw.lib -src/Mw.dll: external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/error.obj src/font/boldfont.obj src/font/boldttf.obj src/font/font.obj src/font/ttf.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text.obj src/unicode.obj src/widget/button.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj - $(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/error.obj file src/font/boldfont.obj file src/font/boldttf.obj file src/font/font.obj file src/font/ttf.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text.obj file src/unicode.obj file src/widget/button.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib +src/Mw.dll: external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/error.obj src/font/boldfont.obj src/font/boldttf.obj src/font/font.obj src/font/ttf.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj + $(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/error.obj file src/font/boldfont.obj file src/font/boldttf.obj file src/font/font.obj file src/font/ttf.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib @@ -167,6 +168,8 @@ src/text.obj: src/text.c $(CC) $(CFLAGS) -fo=$@ $< src/unicode.obj: src/unicode.c $(CC) $(CFLAGS) -fo=$@ $< +src/widget/box.obj: src/widget/box.c + $(CC) $(CFLAGS) -fo=$@ $< src/widget/button.obj: src/widget/button.c $(CC) $(CFLAGS) -fo=$@ $< src/widget/checkbox.obj: src/widget/checkbox.c From a1ce1b56e41813f4c46a80618225e3d9728ca5ff Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 15 Dec 2025 14:30:59 +0900 Subject: [PATCH 018/836] fix prop and add MwNfixedSize --- examples/basic/box.c | 18 ++++++++++++++---- include/Mw/StringDefs.h | 3 ++- milsko.xml | 6 ++++-- src/widget/box.c | 21 +++++++++++++++------ 4 files changed, 35 insertions(+), 13 deletions(-) diff --git a/examples/basic/box.c b/examples/basic/box.c index 517a540f2..0c138a007 100644 --- a/examples/basic/box.c +++ b/examples/basic/box.c @@ -16,11 +16,11 @@ void resize(MwWidget handle, void* user, void* client) { } int main() { - MwWidget box2, box3; + MwWidget box2, box3, box4; MwLibraryInit(); - window = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 200, 200, + window = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 600, 200, MwNtitle, "box", NULL); @@ -38,13 +38,19 @@ int main() { MwNorientation, MwVERTICAL, NULL); + box4 = MwVaCreateWidget(MwBoxClass, "box4", box, 0, 0, 0, 0, + MwNpadding, 10, + MwNorientation, MwVERTICAL, + MwNfixedSize, 40, + NULL); + MwVaCreateWidget(MwButtonClass, "btn1", box2, 0, 0, 0, 0, MwNbackground, "#a00", NULL); MwVaCreateWidget(MwButtonClass, "btn2", box2, 0, 0, 0, 0, MwNbackground, "#0a0", - MwNboxRatio, 2, + MwNratio, 2, NULL); MwVaCreateWidget(MwButtonClass, "btn3", box2, 0, 0, 0, 0, @@ -52,7 +58,11 @@ int main() { NULL); MwVaCreateWidget(MwButtonClass, "btn4", box3, 0, 0, 0, 0, - MwNbackground, "#00a", + MwNbackground, "#a0a", + NULL); + + MwVaCreateWidget(MwButtonClass, "btn5", box4, 0, 0, 0, 0, + MwNbackground, "#0aa", NULL); MwAddUserHandler(window, MwNresizeHandler, resize, NULL); diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index 238c0ba92..a4e999dd7 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -32,7 +32,8 @@ #define MwNpadding "Ipadding" #define MwNborderWidth "IborderWidth" #define MwNfillArea "IfillArea" -#define MwNboxRatio "IboxRatio" +#define MwNratio "Iratio" +#define MwNfixedSize "IfixedSize" #define MwNtitle "Stitle" #define MwNtext "Stext" diff --git a/milsko.xml b/milsko.xml index faf040552..83ef0e3f6 100644 --- a/milsko.xml +++ b/milsko.xml @@ -49,7 +49,8 @@ - MwNheight - MwNborderWidth - MwNbackgroundPixmap - - MwNboxRatio + - MwNratio + - MwNfixedSize Integer properties must be prefixed with I. String properties must be prefixed with S. @@ -83,7 +84,8 @@ - + + diff --git a/src/widget/box.c b/src/widget/box.c index 31b0a07d9..777c32ed1 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -31,21 +31,30 @@ static void layout(MwWidget handle) { int sz = MwGetInteger(handle, horiz ? MwNwidth : MwNheight) - MwGetInteger(handle, MwNpadding); int fsz = MwGetInteger(handle, horiz ? MwNheight : MwNwidth) - MwGetInteger(handle, MwNpadding) * 2; int sk = 0; - if(arrlen(handle->children) == 0) return; for(i = 0; i < arrlen(handle->children); i++) { - int n = MwGetInteger(handle->children[i], MwNboxRatio); + int n = MwGetInteger(handle->children[i], MwNratio); + int s = MwGetInteger(handle->children[i], MwNfixedSize); if(n == MwDEFAULT) n = 1; - sum += n; + if(s != MwDEFAULT) { + sz -= s + MwGetInteger(handle, MwNpadding); + } else { + sum += n; + } } for(i = 0; i < arrlen(handle->children); i++) { - int n = MwGetInteger(handle->children[i], MwNboxRatio); + int n = MwGetInteger(handle->children[i], MwNratio); + int s = MwGetInteger(handle->children[i], MwNfixedSize); int wsz; if(n == MwDEFAULT) n = 1; - wsz = sz * n / sum - MwGetInteger(handle, MwNpadding); + if(s != MwDEFAULT) { + wsz = s; + } else { + wsz = sz * n / sum - MwGetInteger(handle, MwNpadding); + } sk += MwGetInteger(handle, MwNpadding); MwVaApply(handle->children[i], @@ -65,7 +74,7 @@ static void prop_change(MwWidget handle, const char* key) { static void children_prop_change(MwWidget handle, MwWidget child, const char* key) { (void)child; - if(strcmp(key, MwNboxRatio) == 0) layout(handle); + if(strcmp(key, MwNratio) == 0) layout(handle); } static void resize(MwWidget handle) { From a5cd1974e45ee06feb796aff0aa27fa402b649f0 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 15 Dec 2025 15:05:36 +0900 Subject: [PATCH 019/836] add MwNouterPadding --- include/Mw/StringDefs.h | 1 + milsko.xml | 2 ++ src/widget/box.c | 23 ++++++++++++----------- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index a4e999dd7..8ed73f6df 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -34,6 +34,7 @@ #define MwNfillArea "IfillArea" #define MwNratio "Iratio" #define MwNfixedSize "IfixedSize" +#define MwNouterPadding "IouterPadding" #define MwNtitle "Stitle" #define MwNtext "Stext" diff --git a/milsko.xml b/milsko.xml index 83ef0e3f6..28a813478 100644 --- a/milsko.xml +++ b/milsko.xml @@ -86,6 +86,7 @@ + @@ -491,6 +492,7 @@ + diff --git a/src/widget/box.c b/src/widget/box.c index 777c32ed1..0789a1b7d 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -7,6 +7,7 @@ static int create(MwWidget handle) { MwSetInteger(handle, MwNorientation, MwHORIZONTAL); MwSetInteger(handle, MwNpadding, 0); + MwSetInteger(handle, MwNouterPadding, 0); return 0; } @@ -28,9 +29,9 @@ static void layout(MwWidget handle) { int i; int sum = 0; int horiz = MwGetInteger(handle, MwNorientation) == MwHORIZONTAL ? 1 : 0; - int sz = MwGetInteger(handle, horiz ? MwNwidth : MwNheight) - MwGetInteger(handle, MwNpadding); - int fsz = MwGetInteger(handle, horiz ? MwNheight : MwNwidth) - MwGetInteger(handle, MwNpadding) * 2; - int sk = 0; + int sz = MwGetInteger(handle, horiz ? MwNwidth : MwNheight) - MwGetInteger(handle, MwNouterPadding) * 2; + int fsz = MwGetInteger(handle, horiz ? MwNheight : MwNwidth) - MwGetInteger(handle, MwNouterPadding) * 2; + int sk = MwGetInteger(handle, MwNouterPadding); for(i = 0; i < arrlen(handle->children); i++) { int n = MwGetInteger(handle->children[i], MwNratio); @@ -38,7 +39,7 @@ static void layout(MwWidget handle) { if(n == MwDEFAULT) n = 1; if(s != MwDEFAULT) { - sz -= s + MwGetInteger(handle, MwNpadding); + sz -= s + ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNpadding) : 0); } else { sum += n; } @@ -53,17 +54,17 @@ static void layout(MwWidget handle) { if(s != MwDEFAULT) { wsz = s; } else { - wsz = sz * n / sum - MwGetInteger(handle, MwNpadding); + wsz = sz * n / sum; } + wsz -= ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNpadding) : 0); - sk += MwGetInteger(handle, MwNpadding); MwVaApply(handle->children[i], - horiz ? MwNx : MwNy, sk, /* this is what gets changed */ - horiz ? MwNy : MwNx, MwGetInteger(handle, MwNpadding), /* fixed between widgets */ - horiz ? MwNwidth : MwNheight, wsz, /* this is what gets changed */ - horiz ? MwNheight : MwNwidth, fsz, /* fixed between widgets */ + horiz ? MwNx : MwNy, sk, /* this is what gets changed */ + horiz ? MwNy : MwNx, MwGetInteger(handle, MwNouterPadding), /* fixed between widgets */ + horiz ? MwNwidth : MwNheight, wsz, /* this is what gets changed */ + horiz ? MwNheight : MwNwidth, fsz, /* fixed between widgets */ NULL); - sk += wsz; + sk += wsz + ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNpadding) : 0); } } From 02c21233aee1fe245b73818d8d59440edb381957 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 15 Dec 2025 15:27:04 +0900 Subject: [PATCH 020/836] use more proper term --- examples/basic/box.c | 7 ++++--- include/Mw/StringDefs.h | 2 +- milsko.xml | 4 ++-- src/widget/box.c | 22 +++++++++++----------- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/examples/basic/box.c b/examples/basic/box.c index 0c138a007..adbba792c 100644 --- a/examples/basic/box.c +++ b/examples/basic/box.c @@ -26,20 +26,21 @@ int main() { box = MwVaCreateWidget(MwBoxClass, "box", window, 0, 0, 0, 0, MwNpadding, 10, + MwNspacing, 10, NULL); box2 = MwVaCreateWidget(MwBoxClass, "box2", box, 0, 0, 0, 0, - MwNpadding, 10, + MwNspacing, 10, MwNorientation, MwVERTICAL, NULL); box3 = MwVaCreateWidget(MwBoxClass, "box3", box, 0, 0, 0, 0, - MwNpadding, 10, + MwNspacing, 10, MwNorientation, MwVERTICAL, NULL); box4 = MwVaCreateWidget(MwBoxClass, "box4", box, 0, 0, 0, 0, - MwNpadding, 10, + MwNspacing, 10, MwNorientation, MwVERTICAL, MwNfixedSize, 40, NULL); diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index 8ed73f6df..d4e96a728 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -34,7 +34,7 @@ #define MwNfillArea "IfillArea" #define MwNratio "Iratio" #define MwNfixedSize "IfixedSize" -#define MwNouterPadding "IouterPadding" +#define MwNspacing "Ispacing" #define MwNtitle "Stitle" #define MwNtext "Stext" diff --git a/milsko.xml b/milsko.xml index 28a813478..6b9293853 100644 --- a/milsko.xml +++ b/milsko.xml @@ -86,7 +86,7 @@ - + @@ -491,8 +491,8 @@ + - diff --git a/src/widget/box.c b/src/widget/box.c index 0789a1b7d..4526d7ebb 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -6,8 +6,8 @@ static int create(MwWidget handle) { MwSetDefault(handle); MwSetInteger(handle, MwNorientation, MwHORIZONTAL); + MwSetInteger(handle, MwNspacing, 0); MwSetInteger(handle, MwNpadding, 0); - MwSetInteger(handle, MwNouterPadding, 0); return 0; } @@ -29,9 +29,9 @@ static void layout(MwWidget handle) { int i; int sum = 0; int horiz = MwGetInteger(handle, MwNorientation) == MwHORIZONTAL ? 1 : 0; - int sz = MwGetInteger(handle, horiz ? MwNwidth : MwNheight) - MwGetInteger(handle, MwNouterPadding) * 2; - int fsz = MwGetInteger(handle, horiz ? MwNheight : MwNwidth) - MwGetInteger(handle, MwNouterPadding) * 2; - int sk = MwGetInteger(handle, MwNouterPadding); + int sz = MwGetInteger(handle, horiz ? MwNwidth : MwNheight) - MwGetInteger(handle, MwNpadding) * 2; + int fsz = MwGetInteger(handle, horiz ? MwNheight : MwNwidth) - MwGetInteger(handle, MwNpadding) * 2; + int sk = MwGetInteger(handle, MwNpadding); for(i = 0; i < arrlen(handle->children); i++) { int n = MwGetInteger(handle->children[i], MwNratio); @@ -39,7 +39,7 @@ static void layout(MwWidget handle) { if(n == MwDEFAULT) n = 1; if(s != MwDEFAULT) { - sz -= s + ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNpadding) : 0); + sz -= s + ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNspacing) : 0); } else { sum += n; } @@ -56,15 +56,15 @@ static void layout(MwWidget handle) { } else { wsz = sz * n / sum; } - wsz -= ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNpadding) : 0); + wsz -= ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNspacing) : 0); MwVaApply(handle->children[i], - horiz ? MwNx : MwNy, sk, /* this is what gets changed */ - horiz ? MwNy : MwNx, MwGetInteger(handle, MwNouterPadding), /* fixed between widgets */ - horiz ? MwNwidth : MwNheight, wsz, /* this is what gets changed */ - horiz ? MwNheight : MwNwidth, fsz, /* fixed between widgets */ + horiz ? MwNx : MwNy, sk, /* this is what gets changed */ + horiz ? MwNy : MwNx, MwGetInteger(handle, MwNpadding), /* fixed between widgets */ + horiz ? MwNwidth : MwNheight, wsz, /* this is what gets changed */ + horiz ? MwNheight : MwNwidth, fsz, /* fixed between widgets */ NULL); - sk += wsz + ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNpadding) : 0); + sk += wsz + ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNspacing) : 0); } } From 3e4001e4f1f02507f5df57476177698d61500cfe Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 15 Dec 2025 15:41:19 +0900 Subject: [PATCH 021/836] more proper term --- examples/basic/box.c | 8 ++++---- include/Mw/StringDefs.h | 2 +- milsko.xml | 4 ++-- src/widget/box.c | 8 ++++---- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/examples/basic/box.c b/examples/basic/box.c index adbba792c..1b37168e8 100644 --- a/examples/basic/box.c +++ b/examples/basic/box.c @@ -26,21 +26,21 @@ int main() { box = MwVaCreateWidget(MwBoxClass, "box", window, 0, 0, 0, 0, MwNpadding, 10, - MwNspacing, 10, + MwNmargin, 10, NULL); box2 = MwVaCreateWidget(MwBoxClass, "box2", box, 0, 0, 0, 0, - MwNspacing, 10, + MwNmargin, 10, MwNorientation, MwVERTICAL, NULL); box3 = MwVaCreateWidget(MwBoxClass, "box3", box, 0, 0, 0, 0, - MwNspacing, 10, + MwNmargin, 10, MwNorientation, MwVERTICAL, NULL); box4 = MwVaCreateWidget(MwBoxClass, "box4", box, 0, 0, 0, 0, - MwNspacing, 10, + MwNmargin, 10, MwNorientation, MwVERTICAL, MwNfixedSize, 40, NULL); diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index d4e96a728..071137332 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -34,7 +34,7 @@ #define MwNfillArea "IfillArea" #define MwNratio "Iratio" #define MwNfixedSize "IfixedSize" -#define MwNspacing "Ispacing" +#define MwNmargin "Imargin" #define MwNtitle "Stitle" #define MwNtext "Stext" diff --git a/milsko.xml b/milsko.xml index 6b9293853..f7f5baefa 100644 --- a/milsko.xml +++ b/milsko.xml @@ -86,7 +86,7 @@ - + @@ -491,7 +491,7 @@ - + diff --git a/src/widget/box.c b/src/widget/box.c index 4526d7ebb..2c4713781 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -6,7 +6,7 @@ static int create(MwWidget handle) { MwSetDefault(handle); MwSetInteger(handle, MwNorientation, MwHORIZONTAL); - MwSetInteger(handle, MwNspacing, 0); + MwSetInteger(handle, MwNmargin, 0); MwSetInteger(handle, MwNpadding, 0); return 0; @@ -39,7 +39,7 @@ static void layout(MwWidget handle) { if(n == MwDEFAULT) n = 1; if(s != MwDEFAULT) { - sz -= s + ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNspacing) : 0); + sz -= s + ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNmargin) : 0); } else { sum += n; } @@ -56,7 +56,7 @@ static void layout(MwWidget handle) { } else { wsz = sz * n / sum; } - wsz -= ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNspacing) : 0); + wsz -= ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNmargin) : 0); MwVaApply(handle->children[i], horiz ? MwNx : MwNy, sk, /* this is what gets changed */ @@ -64,7 +64,7 @@ static void layout(MwWidget handle) { horiz ? MwNwidth : MwNheight, wsz, /* this is what gets changed */ horiz ? MwNheight : MwNwidth, fsz, /* fixed between widgets */ NULL); - sk += wsz + ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNspacing) : 0); + sk += wsz + ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNmargin) : 0); } } From 00b542428d4073cf7de8875f90dd261d33e646bb Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 15 Dec 2025 15:45:53 +0900 Subject: [PATCH 022/836] make it macro --- src/widget/box.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/widget/box.c b/src/widget/box.c index 2c4713781..17e22305d 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -25,6 +25,8 @@ static void draw(MwWidget handle) { MwLLFreeColor(base); } +#define Margin ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNmargin) : 0) + static void layout(MwWidget handle) { int i; int sum = 0; @@ -39,7 +41,7 @@ static void layout(MwWidget handle) { if(n == MwDEFAULT) n = 1; if(s != MwDEFAULT) { - sz -= s + ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNmargin) : 0); + sz -= s + Margin; } else { sum += n; } @@ -56,7 +58,7 @@ static void layout(MwWidget handle) { } else { wsz = sz * n / sum; } - wsz -= ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNmargin) : 0); + wsz -= Margin; MwVaApply(handle->children[i], horiz ? MwNx : MwNy, sk, /* this is what gets changed */ @@ -64,7 +66,7 @@ static void layout(MwWidget handle) { horiz ? MwNwidth : MwNheight, wsz, /* this is what gets changed */ horiz ? MwNheight : MwNwidth, fsz, /* fixed between widgets */ NULL); - sk += wsz + ((i != (arrlen(handle->children) - 1)) ? MwGetInteger(handle, MwNmargin) : 0); + sk += wsz + Margin; } } From 8bb1cbdc09878bb34b520e8e49e3f333b4baa2d5 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 15 Dec 2025 15:55:59 +0900 Subject: [PATCH 023/836] tiny fix --- src/color.c | 1564 ++++++++++++++++++++++++------------------------ tools/color.pl | 2 +- 2 files changed, 783 insertions(+), 783 deletions(-) diff --git a/src/color.c b/src/color.c index 40003a45d..49c06d694 100644 --- a/src/color.c +++ b/src/color.c @@ -10,4693 +10,4693 @@ void MwParseColorNameNoAllocate(const char* color, MwRGB* rgb) { if(strcmp(color, "snow") == 0) { rgb->red = 255; rgb->green = 250; - rgb->green = 250; + rgb->blue = 250; return; } if(strcmp(color, "ghost white") == 0) { rgb->red = 248; rgb->green = 248; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "GhostWhite") == 0) { rgb->red = 248; rgb->green = 248; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "white smoke") == 0) { rgb->red = 245; rgb->green = 245; - rgb->green = 245; + rgb->blue = 245; return; } if(strcmp(color, "WhiteSmoke") == 0) { rgb->red = 245; rgb->green = 245; - rgb->green = 245; + rgb->blue = 245; return; } if(strcmp(color, "gainsboro") == 0) { rgb->red = 220; rgb->green = 220; - rgb->green = 220; + rgb->blue = 220; return; } if(strcmp(color, "floral white") == 0) { rgb->red = 255; rgb->green = 250; - rgb->green = 240; + rgb->blue = 240; return; } if(strcmp(color, "FloralWhite") == 0) { rgb->red = 255; rgb->green = 250; - rgb->green = 240; + rgb->blue = 240; return; } if(strcmp(color, "old lace") == 0) { rgb->red = 253; rgb->green = 245; - rgb->green = 230; + rgb->blue = 230; return; } if(strcmp(color, "OldLace") == 0) { rgb->red = 253; rgb->green = 245; - rgb->green = 230; + rgb->blue = 230; return; } if(strcmp(color, "linen") == 0) { rgb->red = 250; rgb->green = 240; - rgb->green = 230; + rgb->blue = 230; return; } if(strcmp(color, "antique white") == 0) { rgb->red = 250; rgb->green = 235; - rgb->green = 215; + rgb->blue = 215; return; } if(strcmp(color, "AntiqueWhite") == 0) { rgb->red = 250; rgb->green = 235; - rgb->green = 215; + rgb->blue = 215; return; } if(strcmp(color, "papaya whip") == 0) { rgb->red = 255; rgb->green = 239; - rgb->green = 213; + rgb->blue = 213; return; } if(strcmp(color, "PapayaWhip") == 0) { rgb->red = 255; rgb->green = 239; - rgb->green = 213; + rgb->blue = 213; return; } if(strcmp(color, "blanched almond") == 0) { rgb->red = 255; rgb->green = 235; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "BlanchedAlmond") == 0) { rgb->red = 255; rgb->green = 235; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "bisque") == 0) { rgb->red = 255; rgb->green = 228; - rgb->green = 196; + rgb->blue = 196; return; } if(strcmp(color, "peach puff") == 0) { rgb->red = 255; rgb->green = 218; - rgb->green = 185; + rgb->blue = 185; return; } if(strcmp(color, "PeachPuff") == 0) { rgb->red = 255; rgb->green = 218; - rgb->green = 185; + rgb->blue = 185; return; } if(strcmp(color, "navajo white") == 0) { rgb->red = 255; rgb->green = 222; - rgb->green = 173; + rgb->blue = 173; return; } if(strcmp(color, "NavajoWhite") == 0) { rgb->red = 255; rgb->green = 222; - rgb->green = 173; + rgb->blue = 173; return; } if(strcmp(color, "moccasin") == 0) { rgb->red = 255; rgb->green = 228; - rgb->green = 181; + rgb->blue = 181; return; } if(strcmp(color, "cornsilk") == 0) { rgb->red = 255; rgb->green = 248; - rgb->green = 220; + rgb->blue = 220; return; } if(strcmp(color, "ivory") == 0) { rgb->red = 255; rgb->green = 255; - rgb->green = 240; + rgb->blue = 240; return; } if(strcmp(color, "lemon chiffon") == 0) { rgb->red = 255; rgb->green = 250; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "LemonChiffon") == 0) { rgb->red = 255; rgb->green = 250; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "seashell") == 0) { rgb->red = 255; rgb->green = 245; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "honeydew") == 0) { rgb->red = 240; rgb->green = 255; - rgb->green = 240; + rgb->blue = 240; return; } if(strcmp(color, "mint cream") == 0) { rgb->red = 245; rgb->green = 255; - rgb->green = 250; + rgb->blue = 250; return; } if(strcmp(color, "MintCream") == 0) { rgb->red = 245; rgb->green = 255; - rgb->green = 250; + rgb->blue = 250; return; } if(strcmp(color, "azure") == 0) { rgb->red = 240; rgb->green = 255; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "alice blue") == 0) { rgb->red = 240; rgb->green = 248; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "AliceBlue") == 0) { rgb->red = 240; rgb->green = 248; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "lavender") == 0) { rgb->red = 230; rgb->green = 230; - rgb->green = 250; + rgb->blue = 250; return; } if(strcmp(color, "lavender blush") == 0) { rgb->red = 255; rgb->green = 240; - rgb->green = 245; + rgb->blue = 245; return; } if(strcmp(color, "LavenderBlush") == 0) { rgb->red = 255; rgb->green = 240; - rgb->green = 245; + rgb->blue = 245; return; } if(strcmp(color, "misty rose") == 0) { rgb->red = 255; rgb->green = 228; - rgb->green = 225; + rgb->blue = 225; return; } if(strcmp(color, "MistyRose") == 0) { rgb->red = 255; rgb->green = 228; - rgb->green = 225; + rgb->blue = 225; return; } if(strcmp(color, "white") == 0) { rgb->red = 255; rgb->green = 255; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "black") == 0) { rgb->red = 0; rgb->green = 0; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "dark slate gray") == 0) { rgb->red = 47; rgb->green = 79; - rgb->green = 79; + rgb->blue = 79; return; } if(strcmp(color, "DarkSlateGray") == 0) { rgb->red = 47; rgb->green = 79; - rgb->green = 79; + rgb->blue = 79; return; } if(strcmp(color, "dark slate grey") == 0) { rgb->red = 47; rgb->green = 79; - rgb->green = 79; + rgb->blue = 79; return; } if(strcmp(color, "DarkSlateGrey") == 0) { rgb->red = 47; rgb->green = 79; - rgb->green = 79; + rgb->blue = 79; return; } if(strcmp(color, "dim gray") == 0) { rgb->red = 105; rgb->green = 105; - rgb->green = 105; + rgb->blue = 105; return; } if(strcmp(color, "DimGray") == 0) { rgb->red = 105; rgb->green = 105; - rgb->green = 105; + rgb->blue = 105; return; } if(strcmp(color, "dim grey") == 0) { rgb->red = 105; rgb->green = 105; - rgb->green = 105; + rgb->blue = 105; return; } if(strcmp(color, "DimGrey") == 0) { rgb->red = 105; rgb->green = 105; - rgb->green = 105; + rgb->blue = 105; return; } if(strcmp(color, "slate gray") == 0) { rgb->red = 112; rgb->green = 128; - rgb->green = 144; + rgb->blue = 144; return; } if(strcmp(color, "SlateGray") == 0) { rgb->red = 112; rgb->green = 128; - rgb->green = 144; + rgb->blue = 144; return; } if(strcmp(color, "slate grey") == 0) { rgb->red = 112; rgb->green = 128; - rgb->green = 144; + rgb->blue = 144; return; } if(strcmp(color, "SlateGrey") == 0) { rgb->red = 112; rgb->green = 128; - rgb->green = 144; + rgb->blue = 144; return; } if(strcmp(color, "light slate gray") == 0) { rgb->red = 119; rgb->green = 136; - rgb->green = 153; + rgb->blue = 153; return; } if(strcmp(color, "LightSlateGray") == 0) { rgb->red = 119; rgb->green = 136; - rgb->green = 153; + rgb->blue = 153; return; } if(strcmp(color, "light slate grey") == 0) { rgb->red = 119; rgb->green = 136; - rgb->green = 153; + rgb->blue = 153; return; } if(strcmp(color, "LightSlateGrey") == 0) { rgb->red = 119; rgb->green = 136; - rgb->green = 153; + rgb->blue = 153; return; } if(strcmp(color, "gray") == 0) { rgb->red = 190; rgb->green = 190; - rgb->green = 190; + rgb->blue = 190; return; } if(strcmp(color, "grey") == 0) { rgb->red = 190; rgb->green = 190; - rgb->green = 190; + rgb->blue = 190; return; } if(strcmp(color, "x11 gray") == 0) { rgb->red = 190; rgb->green = 190; - rgb->green = 190; + rgb->blue = 190; return; } if(strcmp(color, "X11Gray") == 0) { rgb->red = 190; rgb->green = 190; - rgb->green = 190; + rgb->blue = 190; return; } if(strcmp(color, "x11 grey") == 0) { rgb->red = 190; rgb->green = 190; - rgb->green = 190; + rgb->blue = 190; return; } if(strcmp(color, "X11Grey") == 0) { rgb->red = 190; rgb->green = 190; - rgb->green = 190; + rgb->blue = 190; return; } if(strcmp(color, "web gray") == 0) { rgb->red = 128; rgb->green = 128; - rgb->green = 128; + rgb->blue = 128; return; } if(strcmp(color, "WebGray") == 0) { rgb->red = 128; rgb->green = 128; - rgb->green = 128; + rgb->blue = 128; return; } if(strcmp(color, "web grey") == 0) { rgb->red = 128; rgb->green = 128; - rgb->green = 128; + rgb->blue = 128; return; } if(strcmp(color, "WebGrey") == 0) { rgb->red = 128; rgb->green = 128; - rgb->green = 128; + rgb->blue = 128; return; } if(strcmp(color, "light grey") == 0) { rgb->red = 211; rgb->green = 211; - rgb->green = 211; + rgb->blue = 211; return; } if(strcmp(color, "LightGrey") == 0) { rgb->red = 211; rgb->green = 211; - rgb->green = 211; + rgb->blue = 211; return; } if(strcmp(color, "light gray") == 0) { rgb->red = 211; rgb->green = 211; - rgb->green = 211; + rgb->blue = 211; return; } if(strcmp(color, "LightGray") == 0) { rgb->red = 211; rgb->green = 211; - rgb->green = 211; + rgb->blue = 211; return; } if(strcmp(color, "midnight blue") == 0) { rgb->red = 25; rgb->green = 25; - rgb->green = 112; + rgb->blue = 112; return; } if(strcmp(color, "MidnightBlue") == 0) { rgb->red = 25; rgb->green = 25; - rgb->green = 112; + rgb->blue = 112; return; } if(strcmp(color, "navy") == 0) { rgb->red = 0; rgb->green = 0; - rgb->green = 128; + rgb->blue = 128; return; } if(strcmp(color, "navy blue") == 0) { rgb->red = 0; rgb->green = 0; - rgb->green = 128; + rgb->blue = 128; return; } if(strcmp(color, "NavyBlue") == 0) { rgb->red = 0; rgb->green = 0; - rgb->green = 128; + rgb->blue = 128; return; } if(strcmp(color, "cornflower blue") == 0) { rgb->red = 100; rgb->green = 149; - rgb->green = 237; + rgb->blue = 237; return; } if(strcmp(color, "CornflowerBlue") == 0) { rgb->red = 100; rgb->green = 149; - rgb->green = 237; + rgb->blue = 237; return; } if(strcmp(color, "dark slate blue") == 0) { rgb->red = 72; rgb->green = 61; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "DarkSlateBlue") == 0) { rgb->red = 72; rgb->green = 61; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "slate blue") == 0) { rgb->red = 106; rgb->green = 90; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "SlateBlue") == 0) { rgb->red = 106; rgb->green = 90; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "medium slate blue") == 0) { rgb->red = 123; rgb->green = 104; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "MediumSlateBlue") == 0) { rgb->red = 123; rgb->green = 104; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "light slate blue") == 0) { rgb->red = 132; rgb->green = 112; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "LightSlateBlue") == 0) { rgb->red = 132; rgb->green = 112; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "medium blue") == 0) { rgb->red = 0; rgb->green = 0; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "MediumBlue") == 0) { rgb->red = 0; rgb->green = 0; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "royal blue") == 0) { rgb->red = 65; rgb->green = 105; - rgb->green = 225; + rgb->blue = 225; return; } if(strcmp(color, "RoyalBlue") == 0) { rgb->red = 65; rgb->green = 105; - rgb->green = 225; + rgb->blue = 225; return; } if(strcmp(color, "blue") == 0) { rgb->red = 0; rgb->green = 0; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "dodger blue") == 0) { rgb->red = 30; rgb->green = 144; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "DodgerBlue") == 0) { rgb->red = 30; rgb->green = 144; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "deep sky blue") == 0) { rgb->red = 0; rgb->green = 191; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "DeepSkyBlue") == 0) { rgb->red = 0; rgb->green = 191; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "sky blue") == 0) { rgb->red = 135; rgb->green = 206; - rgb->green = 235; + rgb->blue = 235; return; } if(strcmp(color, "SkyBlue") == 0) { rgb->red = 135; rgb->green = 206; - rgb->green = 235; + rgb->blue = 235; return; } if(strcmp(color, "light sky blue") == 0) { rgb->red = 135; rgb->green = 206; - rgb->green = 250; + rgb->blue = 250; return; } if(strcmp(color, "LightSkyBlue") == 0) { rgb->red = 135; rgb->green = 206; - rgb->green = 250; + rgb->blue = 250; return; } if(strcmp(color, "steel blue") == 0) { rgb->red = 70; rgb->green = 130; - rgb->green = 180; + rgb->blue = 180; return; } if(strcmp(color, "SteelBlue") == 0) { rgb->red = 70; rgb->green = 130; - rgb->green = 180; + rgb->blue = 180; return; } if(strcmp(color, "light steel blue") == 0) { rgb->red = 176; rgb->green = 196; - rgb->green = 222; + rgb->blue = 222; return; } if(strcmp(color, "LightSteelBlue") == 0) { rgb->red = 176; rgb->green = 196; - rgb->green = 222; + rgb->blue = 222; return; } if(strcmp(color, "light blue") == 0) { rgb->red = 173; rgb->green = 216; - rgb->green = 230; + rgb->blue = 230; return; } if(strcmp(color, "LightBlue") == 0) { rgb->red = 173; rgb->green = 216; - rgb->green = 230; + rgb->blue = 230; return; } if(strcmp(color, "powder blue") == 0) { rgb->red = 176; rgb->green = 224; - rgb->green = 230; + rgb->blue = 230; return; } if(strcmp(color, "PowderBlue") == 0) { rgb->red = 176; rgb->green = 224; - rgb->green = 230; + rgb->blue = 230; return; } if(strcmp(color, "pale turquoise") == 0) { rgb->red = 175; rgb->green = 238; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "PaleTurquoise") == 0) { rgb->red = 175; rgb->green = 238; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "dark turquoise") == 0) { rgb->red = 0; rgb->green = 206; - rgb->green = 209; + rgb->blue = 209; return; } if(strcmp(color, "DarkTurquoise") == 0) { rgb->red = 0; rgb->green = 206; - rgb->green = 209; + rgb->blue = 209; return; } if(strcmp(color, "medium turquoise") == 0) { rgb->red = 72; rgb->green = 209; - rgb->green = 204; + rgb->blue = 204; return; } if(strcmp(color, "MediumTurquoise") == 0) { rgb->red = 72; rgb->green = 209; - rgb->green = 204; + rgb->blue = 204; return; } if(strcmp(color, "turquoise") == 0) { rgb->red = 64; rgb->green = 224; - rgb->green = 208; + rgb->blue = 208; return; } if(strcmp(color, "cyan") == 0) { rgb->red = 0; rgb->green = 255; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "aqua") == 0) { rgb->red = 0; rgb->green = 255; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "light cyan") == 0) { rgb->red = 224; rgb->green = 255; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "LightCyan") == 0) { rgb->red = 224; rgb->green = 255; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "cadet blue") == 0) { rgb->red = 95; rgb->green = 158; - rgb->green = 160; + rgb->blue = 160; return; } if(strcmp(color, "CadetBlue") == 0) { rgb->red = 95; rgb->green = 158; - rgb->green = 160; + rgb->blue = 160; return; } if(strcmp(color, "medium aquamarine") == 0) { rgb->red = 102; rgb->green = 205; - rgb->green = 170; + rgb->blue = 170; return; } if(strcmp(color, "MediumAquamarine") == 0) { rgb->red = 102; rgb->green = 205; - rgb->green = 170; + rgb->blue = 170; return; } if(strcmp(color, "aquamarine") == 0) { rgb->red = 127; rgb->green = 255; - rgb->green = 212; + rgb->blue = 212; return; } if(strcmp(color, "dark green") == 0) { rgb->red = 0; rgb->green = 100; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "DarkGreen") == 0) { rgb->red = 0; rgb->green = 100; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "dark olive green") == 0) { rgb->red = 85; rgb->green = 107; - rgb->green = 47; + rgb->blue = 47; return; } if(strcmp(color, "DarkOliveGreen") == 0) { rgb->red = 85; rgb->green = 107; - rgb->green = 47; + rgb->blue = 47; return; } if(strcmp(color, "dark sea green") == 0) { rgb->red = 143; rgb->green = 188; - rgb->green = 143; + rgb->blue = 143; return; } if(strcmp(color, "DarkSeaGreen") == 0) { rgb->red = 143; rgb->green = 188; - rgb->green = 143; + rgb->blue = 143; return; } if(strcmp(color, "sea green") == 0) { rgb->red = 46; rgb->green = 139; - rgb->green = 87; + rgb->blue = 87; return; } if(strcmp(color, "SeaGreen") == 0) { rgb->red = 46; rgb->green = 139; - rgb->green = 87; + rgb->blue = 87; return; } if(strcmp(color, "medium sea green") == 0) { rgb->red = 60; rgb->green = 179; - rgb->green = 113; + rgb->blue = 113; return; } if(strcmp(color, "MediumSeaGreen") == 0) { rgb->red = 60; rgb->green = 179; - rgb->green = 113; + rgb->blue = 113; return; } if(strcmp(color, "light sea green") == 0) { rgb->red = 32; rgb->green = 178; - rgb->green = 170; + rgb->blue = 170; return; } if(strcmp(color, "LightSeaGreen") == 0) { rgb->red = 32; rgb->green = 178; - rgb->green = 170; + rgb->blue = 170; return; } if(strcmp(color, "pale green") == 0) { rgb->red = 152; rgb->green = 251; - rgb->green = 152; + rgb->blue = 152; return; } if(strcmp(color, "PaleGreen") == 0) { rgb->red = 152; rgb->green = 251; - rgb->green = 152; + rgb->blue = 152; return; } if(strcmp(color, "spring green") == 0) { rgb->red = 0; rgb->green = 255; - rgb->green = 127; + rgb->blue = 127; return; } if(strcmp(color, "SpringGreen") == 0) { rgb->red = 0; rgb->green = 255; - rgb->green = 127; + rgb->blue = 127; return; } if(strcmp(color, "lawn green") == 0) { rgb->red = 124; rgb->green = 252; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "LawnGreen") == 0) { rgb->red = 124; rgb->green = 252; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "green") == 0) { rgb->red = 0; rgb->green = 255; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "lime") == 0) { rgb->red = 0; rgb->green = 255; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "x11 green") == 0) { rgb->red = 0; rgb->green = 255; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "X11Green") == 0) { rgb->red = 0; rgb->green = 255; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "web green") == 0) { rgb->red = 0; rgb->green = 128; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "WebGreen") == 0) { rgb->red = 0; rgb->green = 128; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "chartreuse") == 0) { rgb->red = 127; rgb->green = 255; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "medium spring green") == 0) { rgb->red = 0; rgb->green = 250; - rgb->green = 154; + rgb->blue = 154; return; } if(strcmp(color, "MediumSpringGreen") == 0) { rgb->red = 0; rgb->green = 250; - rgb->green = 154; + rgb->blue = 154; return; } if(strcmp(color, "green yellow") == 0) { rgb->red = 173; rgb->green = 255; - rgb->green = 47; + rgb->blue = 47; return; } if(strcmp(color, "GreenYellow") == 0) { rgb->red = 173; rgb->green = 255; - rgb->green = 47; + rgb->blue = 47; return; } if(strcmp(color, "lime green") == 0) { rgb->red = 50; rgb->green = 205; - rgb->green = 50; + rgb->blue = 50; return; } if(strcmp(color, "LimeGreen") == 0) { rgb->red = 50; rgb->green = 205; - rgb->green = 50; + rgb->blue = 50; return; } if(strcmp(color, "yellow green") == 0) { rgb->red = 154; rgb->green = 205; - rgb->green = 50; + rgb->blue = 50; return; } if(strcmp(color, "YellowGreen") == 0) { rgb->red = 154; rgb->green = 205; - rgb->green = 50; + rgb->blue = 50; return; } if(strcmp(color, "forest green") == 0) { rgb->red = 34; rgb->green = 139; - rgb->green = 34; + rgb->blue = 34; return; } if(strcmp(color, "ForestGreen") == 0) { rgb->red = 34; rgb->green = 139; - rgb->green = 34; + rgb->blue = 34; return; } if(strcmp(color, "olive drab") == 0) { rgb->red = 107; rgb->green = 142; - rgb->green = 35; + rgb->blue = 35; return; } if(strcmp(color, "OliveDrab") == 0) { rgb->red = 107; rgb->green = 142; - rgb->green = 35; + rgb->blue = 35; return; } if(strcmp(color, "dark khaki") == 0) { rgb->red = 189; rgb->green = 183; - rgb->green = 107; + rgb->blue = 107; return; } if(strcmp(color, "DarkKhaki") == 0) { rgb->red = 189; rgb->green = 183; - rgb->green = 107; + rgb->blue = 107; return; } if(strcmp(color, "khaki") == 0) { rgb->red = 240; rgb->green = 230; - rgb->green = 140; + rgb->blue = 140; return; } if(strcmp(color, "pale goldenrod") == 0) { rgb->red = 238; rgb->green = 232; - rgb->green = 170; + rgb->blue = 170; return; } if(strcmp(color, "PaleGoldenrod") == 0) { rgb->red = 238; rgb->green = 232; - rgb->green = 170; + rgb->blue = 170; return; } if(strcmp(color, "light goldenrod yellow") == 0) { rgb->red = 250; rgb->green = 250; - rgb->green = 210; + rgb->blue = 210; return; } if(strcmp(color, "LightGoldenrodYellow") == 0) { rgb->red = 250; rgb->green = 250; - rgb->green = 210; + rgb->blue = 210; return; } if(strcmp(color, "light yellow") == 0) { rgb->red = 255; rgb->green = 255; - rgb->green = 224; + rgb->blue = 224; return; } if(strcmp(color, "LightYellow") == 0) { rgb->red = 255; rgb->green = 255; - rgb->green = 224; + rgb->blue = 224; return; } if(strcmp(color, "yellow") == 0) { rgb->red = 255; rgb->green = 255; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "gold") == 0) { rgb->red = 255; rgb->green = 215; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "light goldenrod") == 0) { rgb->red = 238; rgb->green = 221; - rgb->green = 130; + rgb->blue = 130; return; } if(strcmp(color, "LightGoldenrod") == 0) { rgb->red = 238; rgb->green = 221; - rgb->green = 130; + rgb->blue = 130; return; } if(strcmp(color, "goldenrod") == 0) { rgb->red = 218; rgb->green = 165; - rgb->green = 32; + rgb->blue = 32; return; } if(strcmp(color, "dark goldenrod") == 0) { rgb->red = 184; rgb->green = 134; - rgb->green = 11; + rgb->blue = 11; return; } if(strcmp(color, "DarkGoldenrod") == 0) { rgb->red = 184; rgb->green = 134; - rgb->green = 11; + rgb->blue = 11; return; } if(strcmp(color, "rosy brown") == 0) { rgb->red = 188; rgb->green = 143; - rgb->green = 143; + rgb->blue = 143; return; } if(strcmp(color, "RosyBrown") == 0) { rgb->red = 188; rgb->green = 143; - rgb->green = 143; + rgb->blue = 143; return; } if(strcmp(color, "indian red") == 0) { rgb->red = 205; rgb->green = 92; - rgb->green = 92; + rgb->blue = 92; return; } if(strcmp(color, "IndianRed") == 0) { rgb->red = 205; rgb->green = 92; - rgb->green = 92; + rgb->blue = 92; return; } if(strcmp(color, "saddle brown") == 0) { rgb->red = 139; rgb->green = 69; - rgb->green = 19; + rgb->blue = 19; return; } if(strcmp(color, "SaddleBrown") == 0) { rgb->red = 139; rgb->green = 69; - rgb->green = 19; + rgb->blue = 19; return; } if(strcmp(color, "sienna") == 0) { rgb->red = 160; rgb->green = 82; - rgb->green = 45; + rgb->blue = 45; return; } if(strcmp(color, "peru") == 0) { rgb->red = 205; rgb->green = 133; - rgb->green = 63; + rgb->blue = 63; return; } if(strcmp(color, "burlywood") == 0) { rgb->red = 222; rgb->green = 184; - rgb->green = 135; + rgb->blue = 135; return; } if(strcmp(color, "beige") == 0) { rgb->red = 245; rgb->green = 245; - rgb->green = 220; + rgb->blue = 220; return; } if(strcmp(color, "wheat") == 0) { rgb->red = 245; rgb->green = 222; - rgb->green = 179; + rgb->blue = 179; return; } if(strcmp(color, "sandy brown") == 0) { rgb->red = 244; rgb->green = 164; - rgb->green = 96; + rgb->blue = 96; return; } if(strcmp(color, "SandyBrown") == 0) { rgb->red = 244; rgb->green = 164; - rgb->green = 96; + rgb->blue = 96; return; } if(strcmp(color, "tan") == 0) { rgb->red = 210; rgb->green = 180; - rgb->green = 140; + rgb->blue = 140; return; } if(strcmp(color, "chocolate") == 0) { rgb->red = 210; rgb->green = 105; - rgb->green = 30; + rgb->blue = 30; return; } if(strcmp(color, "firebrick") == 0) { rgb->red = 178; rgb->green = 34; - rgb->green = 34; + rgb->blue = 34; return; } if(strcmp(color, "brown") == 0) { rgb->red = 165; rgb->green = 42; - rgb->green = 42; + rgb->blue = 42; return; } if(strcmp(color, "dark salmon") == 0) { rgb->red = 233; rgb->green = 150; - rgb->green = 122; + rgb->blue = 122; return; } if(strcmp(color, "DarkSalmon") == 0) { rgb->red = 233; rgb->green = 150; - rgb->green = 122; + rgb->blue = 122; return; } if(strcmp(color, "salmon") == 0) { rgb->red = 250; rgb->green = 128; - rgb->green = 114; + rgb->blue = 114; return; } if(strcmp(color, "light salmon") == 0) { rgb->red = 255; rgb->green = 160; - rgb->green = 122; + rgb->blue = 122; return; } if(strcmp(color, "LightSalmon") == 0) { rgb->red = 255; rgb->green = 160; - rgb->green = 122; + rgb->blue = 122; return; } if(strcmp(color, "orange") == 0) { rgb->red = 255; rgb->green = 165; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "dark orange") == 0) { rgb->red = 255; rgb->green = 140; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "DarkOrange") == 0) { rgb->red = 255; rgb->green = 140; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "coral") == 0) { rgb->red = 255; rgb->green = 127; - rgb->green = 80; + rgb->blue = 80; return; } if(strcmp(color, "light coral") == 0) { rgb->red = 240; rgb->green = 128; - rgb->green = 128; + rgb->blue = 128; return; } if(strcmp(color, "LightCoral") == 0) { rgb->red = 240; rgb->green = 128; - rgb->green = 128; + rgb->blue = 128; return; } if(strcmp(color, "tomato") == 0) { rgb->red = 255; rgb->green = 99; - rgb->green = 71; + rgb->blue = 71; return; } if(strcmp(color, "orange red") == 0) { rgb->red = 255; rgb->green = 69; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "OrangeRed") == 0) { rgb->red = 255; rgb->green = 69; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "red") == 0) { rgb->red = 255; rgb->green = 0; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "hot pink") == 0) { rgb->red = 255; rgb->green = 105; - rgb->green = 180; + rgb->blue = 180; return; } if(strcmp(color, "HotPink") == 0) { rgb->red = 255; rgb->green = 105; - rgb->green = 180; + rgb->blue = 180; return; } if(strcmp(color, "deep pink") == 0) { rgb->red = 255; rgb->green = 20; - rgb->green = 147; + rgb->blue = 147; return; } if(strcmp(color, "DeepPink") == 0) { rgb->red = 255; rgb->green = 20; - rgb->green = 147; + rgb->blue = 147; return; } if(strcmp(color, "pink") == 0) { rgb->red = 255; rgb->green = 192; - rgb->green = 203; + rgb->blue = 203; return; } if(strcmp(color, "light pink") == 0) { rgb->red = 255; rgb->green = 182; - rgb->green = 193; + rgb->blue = 193; return; } if(strcmp(color, "LightPink") == 0) { rgb->red = 255; rgb->green = 182; - rgb->green = 193; + rgb->blue = 193; return; } if(strcmp(color, "pale violet red") == 0) { rgb->red = 219; rgb->green = 112; - rgb->green = 147; + rgb->blue = 147; return; } if(strcmp(color, "PaleVioletRed") == 0) { rgb->red = 219; rgb->green = 112; - rgb->green = 147; + rgb->blue = 147; return; } if(strcmp(color, "maroon") == 0) { rgb->red = 176; rgb->green = 48; - rgb->green = 96; + rgb->blue = 96; return; } if(strcmp(color, "x11 maroon") == 0) { rgb->red = 176; rgb->green = 48; - rgb->green = 96; + rgb->blue = 96; return; } if(strcmp(color, "X11Maroon") == 0) { rgb->red = 176; rgb->green = 48; - rgb->green = 96; + rgb->blue = 96; return; } if(strcmp(color, "web maroon") == 0) { rgb->red = 128; rgb->green = 0; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "WebMaroon") == 0) { rgb->red = 128; rgb->green = 0; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "medium violet red") == 0) { rgb->red = 199; rgb->green = 21; - rgb->green = 133; + rgb->blue = 133; return; } if(strcmp(color, "MediumVioletRed") == 0) { rgb->red = 199; rgb->green = 21; - rgb->green = 133; + rgb->blue = 133; return; } if(strcmp(color, "violet red") == 0) { rgb->red = 208; rgb->green = 32; - rgb->green = 144; + rgb->blue = 144; return; } if(strcmp(color, "VioletRed") == 0) { rgb->red = 208; rgb->green = 32; - rgb->green = 144; + rgb->blue = 144; return; } if(strcmp(color, "magenta") == 0) { rgb->red = 255; rgb->green = 0; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "fuchsia") == 0) { rgb->red = 255; rgb->green = 0; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "violet") == 0) { rgb->red = 238; rgb->green = 130; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "plum") == 0) { rgb->red = 221; rgb->green = 160; - rgb->green = 221; + rgb->blue = 221; return; } if(strcmp(color, "orchid") == 0) { rgb->red = 218; rgb->green = 112; - rgb->green = 214; + rgb->blue = 214; return; } if(strcmp(color, "medium orchid") == 0) { rgb->red = 186; rgb->green = 85; - rgb->green = 211; + rgb->blue = 211; return; } if(strcmp(color, "MediumOrchid") == 0) { rgb->red = 186; rgb->green = 85; - rgb->green = 211; + rgb->blue = 211; return; } if(strcmp(color, "dark orchid") == 0) { rgb->red = 153; rgb->green = 50; - rgb->green = 204; + rgb->blue = 204; return; } if(strcmp(color, "DarkOrchid") == 0) { rgb->red = 153; rgb->green = 50; - rgb->green = 204; + rgb->blue = 204; return; } if(strcmp(color, "dark violet") == 0) { rgb->red = 148; rgb->green = 0; - rgb->green = 211; + rgb->blue = 211; return; } if(strcmp(color, "DarkViolet") == 0) { rgb->red = 148; rgb->green = 0; - rgb->green = 211; + rgb->blue = 211; return; } if(strcmp(color, "blue violet") == 0) { rgb->red = 138; rgb->green = 43; - rgb->green = 226; + rgb->blue = 226; return; } if(strcmp(color, "BlueViolet") == 0) { rgb->red = 138; rgb->green = 43; - rgb->green = 226; + rgb->blue = 226; return; } if(strcmp(color, "purple") == 0) { rgb->red = 160; rgb->green = 32; - rgb->green = 240; + rgb->blue = 240; return; } if(strcmp(color, "x11 purple") == 0) { rgb->red = 160; rgb->green = 32; - rgb->green = 240; + rgb->blue = 240; return; } if(strcmp(color, "X11Purple") == 0) { rgb->red = 160; rgb->green = 32; - rgb->green = 240; + rgb->blue = 240; return; } if(strcmp(color, "web purple") == 0) { rgb->red = 128; rgb->green = 0; - rgb->green = 128; + rgb->blue = 128; return; } if(strcmp(color, "WebPurple") == 0) { rgb->red = 128; rgb->green = 0; - rgb->green = 128; + rgb->blue = 128; return; } if(strcmp(color, "medium purple") == 0) { rgb->red = 147; rgb->green = 112; - rgb->green = 219; + rgb->blue = 219; return; } if(strcmp(color, "MediumPurple") == 0) { rgb->red = 147; rgb->green = 112; - rgb->green = 219; + rgb->blue = 219; return; } if(strcmp(color, "thistle") == 0) { rgb->red = 216; rgb->green = 191; - rgb->green = 216; + rgb->blue = 216; return; } if(strcmp(color, "snow1") == 0) { rgb->red = 255; rgb->green = 250; - rgb->green = 250; + rgb->blue = 250; return; } if(strcmp(color, "snow2") == 0) { rgb->red = 238; rgb->green = 233; - rgb->green = 233; + rgb->blue = 233; return; } if(strcmp(color, "snow3") == 0) { rgb->red = 205; rgb->green = 201; - rgb->green = 201; + rgb->blue = 201; return; } if(strcmp(color, "snow4") == 0) { rgb->red = 139; rgb->green = 137; - rgb->green = 137; + rgb->blue = 137; return; } if(strcmp(color, "seashell1") == 0) { rgb->red = 255; rgb->green = 245; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "seashell2") == 0) { rgb->red = 238; rgb->green = 229; - rgb->green = 222; + rgb->blue = 222; return; } if(strcmp(color, "seashell3") == 0) { rgb->red = 205; rgb->green = 197; - rgb->green = 191; + rgb->blue = 191; return; } if(strcmp(color, "seashell4") == 0) { rgb->red = 139; rgb->green = 134; - rgb->green = 130; + rgb->blue = 130; return; } if(strcmp(color, "AntiqueWhite1") == 0) { rgb->red = 255; rgb->green = 239; - rgb->green = 219; + rgb->blue = 219; return; } if(strcmp(color, "AntiqueWhite2") == 0) { rgb->red = 238; rgb->green = 223; - rgb->green = 204; + rgb->blue = 204; return; } if(strcmp(color, "AntiqueWhite3") == 0) { rgb->red = 205; rgb->green = 192; - rgb->green = 176; + rgb->blue = 176; return; } if(strcmp(color, "AntiqueWhite4") == 0) { rgb->red = 139; rgb->green = 131; - rgb->green = 120; + rgb->blue = 120; return; } if(strcmp(color, "bisque1") == 0) { rgb->red = 255; rgb->green = 228; - rgb->green = 196; + rgb->blue = 196; return; } if(strcmp(color, "bisque2") == 0) { rgb->red = 238; rgb->green = 213; - rgb->green = 183; + rgb->blue = 183; return; } if(strcmp(color, "bisque3") == 0) { rgb->red = 205; rgb->green = 183; - rgb->green = 158; + rgb->blue = 158; return; } if(strcmp(color, "bisque4") == 0) { rgb->red = 139; rgb->green = 125; - rgb->green = 107; + rgb->blue = 107; return; } if(strcmp(color, "PeachPuff1") == 0) { rgb->red = 255; rgb->green = 218; - rgb->green = 185; + rgb->blue = 185; return; } if(strcmp(color, "PeachPuff2") == 0) { rgb->red = 238; rgb->green = 203; - rgb->green = 173; + rgb->blue = 173; return; } if(strcmp(color, "PeachPuff3") == 0) { rgb->red = 205; rgb->green = 175; - rgb->green = 149; + rgb->blue = 149; return; } if(strcmp(color, "PeachPuff4") == 0) { rgb->red = 139; rgb->green = 119; - rgb->green = 101; + rgb->blue = 101; return; } if(strcmp(color, "NavajoWhite1") == 0) { rgb->red = 255; rgb->green = 222; - rgb->green = 173; + rgb->blue = 173; return; } if(strcmp(color, "NavajoWhite2") == 0) { rgb->red = 238; rgb->green = 207; - rgb->green = 161; + rgb->blue = 161; return; } if(strcmp(color, "NavajoWhite3") == 0) { rgb->red = 205; rgb->green = 179; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "NavajoWhite4") == 0) { rgb->red = 139; rgb->green = 121; - rgb->green = 94; + rgb->blue = 94; return; } if(strcmp(color, "LemonChiffon1") == 0) { rgb->red = 255; rgb->green = 250; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "LemonChiffon2") == 0) { rgb->red = 238; rgb->green = 233; - rgb->green = 191; + rgb->blue = 191; return; } if(strcmp(color, "LemonChiffon3") == 0) { rgb->red = 205; rgb->green = 201; - rgb->green = 165; + rgb->blue = 165; return; } if(strcmp(color, "LemonChiffon4") == 0) { rgb->red = 139; rgb->green = 137; - rgb->green = 112; + rgb->blue = 112; return; } if(strcmp(color, "cornsilk1") == 0) { rgb->red = 255; rgb->green = 248; - rgb->green = 220; + rgb->blue = 220; return; } if(strcmp(color, "cornsilk2") == 0) { rgb->red = 238; rgb->green = 232; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "cornsilk3") == 0) { rgb->red = 205; rgb->green = 200; - rgb->green = 177; + rgb->blue = 177; return; } if(strcmp(color, "cornsilk4") == 0) { rgb->red = 139; rgb->green = 136; - rgb->green = 120; + rgb->blue = 120; return; } if(strcmp(color, "ivory1") == 0) { rgb->red = 255; rgb->green = 255; - rgb->green = 240; + rgb->blue = 240; return; } if(strcmp(color, "ivory2") == 0) { rgb->red = 238; rgb->green = 238; - rgb->green = 224; + rgb->blue = 224; return; } if(strcmp(color, "ivory3") == 0) { rgb->red = 205; rgb->green = 205; - rgb->green = 193; + rgb->blue = 193; return; } if(strcmp(color, "ivory4") == 0) { rgb->red = 139; rgb->green = 139; - rgb->green = 131; + rgb->blue = 131; return; } if(strcmp(color, "honeydew1") == 0) { rgb->red = 240; rgb->green = 255; - rgb->green = 240; + rgb->blue = 240; return; } if(strcmp(color, "honeydew2") == 0) { rgb->red = 224; rgb->green = 238; - rgb->green = 224; + rgb->blue = 224; return; } if(strcmp(color, "honeydew3") == 0) { rgb->red = 193; rgb->green = 205; - rgb->green = 193; + rgb->blue = 193; return; } if(strcmp(color, "honeydew4") == 0) { rgb->red = 131; rgb->green = 139; - rgb->green = 131; + rgb->blue = 131; return; } if(strcmp(color, "LavenderBlush1") == 0) { rgb->red = 255; rgb->green = 240; - rgb->green = 245; + rgb->blue = 245; return; } if(strcmp(color, "LavenderBlush2") == 0) { rgb->red = 238; rgb->green = 224; - rgb->green = 229; + rgb->blue = 229; return; } if(strcmp(color, "LavenderBlush3") == 0) { rgb->red = 205; rgb->green = 193; - rgb->green = 197; + rgb->blue = 197; return; } if(strcmp(color, "LavenderBlush4") == 0) { rgb->red = 139; rgb->green = 131; - rgb->green = 134; + rgb->blue = 134; return; } if(strcmp(color, "MistyRose1") == 0) { rgb->red = 255; rgb->green = 228; - rgb->green = 225; + rgb->blue = 225; return; } if(strcmp(color, "MistyRose2") == 0) { rgb->red = 238; rgb->green = 213; - rgb->green = 210; + rgb->blue = 210; return; } if(strcmp(color, "MistyRose3") == 0) { rgb->red = 205; rgb->green = 183; - rgb->green = 181; + rgb->blue = 181; return; } if(strcmp(color, "MistyRose4") == 0) { rgb->red = 139; rgb->green = 125; - rgb->green = 123; + rgb->blue = 123; return; } if(strcmp(color, "azure1") == 0) { rgb->red = 240; rgb->green = 255; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "azure2") == 0) { rgb->red = 224; rgb->green = 238; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "azure3") == 0) { rgb->red = 193; rgb->green = 205; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "azure4") == 0) { rgb->red = 131; rgb->green = 139; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "SlateBlue1") == 0) { rgb->red = 131; rgb->green = 111; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "SlateBlue2") == 0) { rgb->red = 122; rgb->green = 103; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "SlateBlue3") == 0) { rgb->red = 105; rgb->green = 89; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "SlateBlue4") == 0) { rgb->red = 71; rgb->green = 60; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "RoyalBlue1") == 0) { rgb->red = 72; rgb->green = 118; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "RoyalBlue2") == 0) { rgb->red = 67; rgb->green = 110; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "RoyalBlue3") == 0) { rgb->red = 58; rgb->green = 95; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "RoyalBlue4") == 0) { rgb->red = 39; rgb->green = 64; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "blue1") == 0) { rgb->red = 0; rgb->green = 0; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "blue2") == 0) { rgb->red = 0; rgb->green = 0; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "blue3") == 0) { rgb->red = 0; rgb->green = 0; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "blue4") == 0) { rgb->red = 0; rgb->green = 0; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "DodgerBlue1") == 0) { rgb->red = 30; rgb->green = 144; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "DodgerBlue2") == 0) { rgb->red = 28; rgb->green = 134; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "DodgerBlue3") == 0) { rgb->red = 24; rgb->green = 116; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "DodgerBlue4") == 0) { rgb->red = 16; rgb->green = 78; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "SteelBlue1") == 0) { rgb->red = 99; rgb->green = 184; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "SteelBlue2") == 0) { rgb->red = 92; rgb->green = 172; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "SteelBlue3") == 0) { rgb->red = 79; rgb->green = 148; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "SteelBlue4") == 0) { rgb->red = 54; rgb->green = 100; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "DeepSkyBlue1") == 0) { rgb->red = 0; rgb->green = 191; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "DeepSkyBlue2") == 0) { rgb->red = 0; rgb->green = 178; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "DeepSkyBlue3") == 0) { rgb->red = 0; rgb->green = 154; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "DeepSkyBlue4") == 0) { rgb->red = 0; rgb->green = 104; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "SkyBlue1") == 0) { rgb->red = 135; rgb->green = 206; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "SkyBlue2") == 0) { rgb->red = 126; rgb->green = 192; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "SkyBlue3") == 0) { rgb->red = 108; rgb->green = 166; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "SkyBlue4") == 0) { rgb->red = 74; rgb->green = 112; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "LightSkyBlue1") == 0) { rgb->red = 176; rgb->green = 226; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "LightSkyBlue2") == 0) { rgb->red = 164; rgb->green = 211; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "LightSkyBlue3") == 0) { rgb->red = 141; rgb->green = 182; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "LightSkyBlue4") == 0) { rgb->red = 96; rgb->green = 123; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "SlateGray1") == 0) { rgb->red = 198; rgb->green = 226; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "SlateGray2") == 0) { rgb->red = 185; rgb->green = 211; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "SlateGray3") == 0) { rgb->red = 159; rgb->green = 182; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "SlateGray4") == 0) { rgb->red = 108; rgb->green = 123; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "LightSteelBlue1") == 0) { rgb->red = 202; rgb->green = 225; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "LightSteelBlue2") == 0) { rgb->red = 188; rgb->green = 210; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "LightSteelBlue3") == 0) { rgb->red = 162; rgb->green = 181; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "LightSteelBlue4") == 0) { rgb->red = 110; rgb->green = 123; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "LightBlue1") == 0) { rgb->red = 191; rgb->green = 239; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "LightBlue2") == 0) { rgb->red = 178; rgb->green = 223; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "LightBlue3") == 0) { rgb->red = 154; rgb->green = 192; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "LightBlue4") == 0) { rgb->red = 104; rgb->green = 131; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "LightCyan1") == 0) { rgb->red = 224; rgb->green = 255; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "LightCyan2") == 0) { rgb->red = 209; rgb->green = 238; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "LightCyan3") == 0) { rgb->red = 180; rgb->green = 205; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "LightCyan4") == 0) { rgb->red = 122; rgb->green = 139; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "PaleTurquoise1") == 0) { rgb->red = 187; rgb->green = 255; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "PaleTurquoise2") == 0) { rgb->red = 174; rgb->green = 238; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "PaleTurquoise3") == 0) { rgb->red = 150; rgb->green = 205; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "PaleTurquoise4") == 0) { rgb->red = 102; rgb->green = 139; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "CadetBlue1") == 0) { rgb->red = 152; rgb->green = 245; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "CadetBlue2") == 0) { rgb->red = 142; rgb->green = 229; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "CadetBlue3") == 0) { rgb->red = 122; rgb->green = 197; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "CadetBlue4") == 0) { rgb->red = 83; rgb->green = 134; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "turquoise1") == 0) { rgb->red = 0; rgb->green = 245; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "turquoise2") == 0) { rgb->red = 0; rgb->green = 229; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "turquoise3") == 0) { rgb->red = 0; rgb->green = 197; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "turquoise4") == 0) { rgb->red = 0; rgb->green = 134; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "cyan1") == 0) { rgb->red = 0; rgb->green = 255; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "cyan2") == 0) { rgb->red = 0; rgb->green = 238; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "cyan3") == 0) { rgb->red = 0; rgb->green = 205; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "cyan4") == 0) { rgb->red = 0; rgb->green = 139; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "DarkSlateGray1") == 0) { rgb->red = 151; rgb->green = 255; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "DarkSlateGray2") == 0) { rgb->red = 141; rgb->green = 238; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "DarkSlateGray3") == 0) { rgb->red = 121; rgb->green = 205; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "DarkSlateGray4") == 0) { rgb->red = 82; rgb->green = 139; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "aquamarine1") == 0) { rgb->red = 127; rgb->green = 255; - rgb->green = 212; + rgb->blue = 212; return; } if(strcmp(color, "aquamarine2") == 0) { rgb->red = 118; rgb->green = 238; - rgb->green = 198; + rgb->blue = 198; return; } if(strcmp(color, "aquamarine3") == 0) { rgb->red = 102; rgb->green = 205; - rgb->green = 170; + rgb->blue = 170; return; } if(strcmp(color, "aquamarine4") == 0) { rgb->red = 69; rgb->green = 139; - rgb->green = 116; + rgb->blue = 116; return; } if(strcmp(color, "DarkSeaGreen1") == 0) { rgb->red = 193; rgb->green = 255; - rgb->green = 193; + rgb->blue = 193; return; } if(strcmp(color, "DarkSeaGreen2") == 0) { rgb->red = 180; rgb->green = 238; - rgb->green = 180; + rgb->blue = 180; return; } if(strcmp(color, "DarkSeaGreen3") == 0) { rgb->red = 155; rgb->green = 205; - rgb->green = 155; + rgb->blue = 155; return; } if(strcmp(color, "DarkSeaGreen4") == 0) { rgb->red = 105; rgb->green = 139; - rgb->green = 105; + rgb->blue = 105; return; } if(strcmp(color, "SeaGreen1") == 0) { rgb->red = 84; rgb->green = 255; - rgb->green = 159; + rgb->blue = 159; return; } if(strcmp(color, "SeaGreen2") == 0) { rgb->red = 78; rgb->green = 238; - rgb->green = 148; + rgb->blue = 148; return; } if(strcmp(color, "SeaGreen3") == 0) { rgb->red = 67; rgb->green = 205; - rgb->green = 128; + rgb->blue = 128; return; } if(strcmp(color, "SeaGreen4") == 0) { rgb->red = 46; rgb->green = 139; - rgb->green = 87; + rgb->blue = 87; return; } if(strcmp(color, "PaleGreen1") == 0) { rgb->red = 154; rgb->green = 255; - rgb->green = 154; + rgb->blue = 154; return; } if(strcmp(color, "PaleGreen2") == 0) { rgb->red = 144; rgb->green = 238; - rgb->green = 144; + rgb->blue = 144; return; } if(strcmp(color, "PaleGreen3") == 0) { rgb->red = 124; rgb->green = 205; - rgb->green = 124; + rgb->blue = 124; return; } if(strcmp(color, "PaleGreen4") == 0) { rgb->red = 84; rgb->green = 139; - rgb->green = 84; + rgb->blue = 84; return; } if(strcmp(color, "SpringGreen1") == 0) { rgb->red = 0; rgb->green = 255; - rgb->green = 127; + rgb->blue = 127; return; } if(strcmp(color, "SpringGreen2") == 0) { rgb->red = 0; rgb->green = 238; - rgb->green = 118; + rgb->blue = 118; return; } if(strcmp(color, "SpringGreen3") == 0) { rgb->red = 0; rgb->green = 205; - rgb->green = 102; + rgb->blue = 102; return; } if(strcmp(color, "SpringGreen4") == 0) { rgb->red = 0; rgb->green = 139; - rgb->green = 69; + rgb->blue = 69; return; } if(strcmp(color, "green1") == 0) { rgb->red = 0; rgb->green = 255; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "green2") == 0) { rgb->red = 0; rgb->green = 238; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "green3") == 0) { rgb->red = 0; rgb->green = 205; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "green4") == 0) { rgb->red = 0; rgb->green = 139; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "chartreuse1") == 0) { rgb->red = 127; rgb->green = 255; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "chartreuse2") == 0) { rgb->red = 118; rgb->green = 238; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "chartreuse3") == 0) { rgb->red = 102; rgb->green = 205; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "chartreuse4") == 0) { rgb->red = 69; rgb->green = 139; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "OliveDrab1") == 0) { rgb->red = 192; rgb->green = 255; - rgb->green = 62; + rgb->blue = 62; return; } if(strcmp(color, "OliveDrab2") == 0) { rgb->red = 179; rgb->green = 238; - rgb->green = 58; + rgb->blue = 58; return; } if(strcmp(color, "OliveDrab3") == 0) { rgb->red = 154; rgb->green = 205; - rgb->green = 50; + rgb->blue = 50; return; } if(strcmp(color, "OliveDrab4") == 0) { rgb->red = 105; rgb->green = 139; - rgb->green = 34; + rgb->blue = 34; return; } if(strcmp(color, "DarkOliveGreen1") == 0) { rgb->red = 202; rgb->green = 255; - rgb->green = 112; + rgb->blue = 112; return; } if(strcmp(color, "DarkOliveGreen2") == 0) { rgb->red = 188; rgb->green = 238; - rgb->green = 104; + rgb->blue = 104; return; } if(strcmp(color, "DarkOliveGreen3") == 0) { rgb->red = 162; rgb->green = 205; - rgb->green = 90; + rgb->blue = 90; return; } if(strcmp(color, "DarkOliveGreen4") == 0) { rgb->red = 110; rgb->green = 139; - rgb->green = 61; + rgb->blue = 61; return; } if(strcmp(color, "khaki1") == 0) { rgb->red = 255; rgb->green = 246; - rgb->green = 143; + rgb->blue = 143; return; } if(strcmp(color, "khaki2") == 0) { rgb->red = 238; rgb->green = 230; - rgb->green = 133; + rgb->blue = 133; return; } if(strcmp(color, "khaki3") == 0) { rgb->red = 205; rgb->green = 198; - rgb->green = 115; + rgb->blue = 115; return; } if(strcmp(color, "khaki4") == 0) { rgb->red = 139; rgb->green = 134; - rgb->green = 78; + rgb->blue = 78; return; } if(strcmp(color, "LightGoldenrod1") == 0) { rgb->red = 255; rgb->green = 236; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "LightGoldenrod2") == 0) { rgb->red = 238; rgb->green = 220; - rgb->green = 130; + rgb->blue = 130; return; } if(strcmp(color, "LightGoldenrod3") == 0) { rgb->red = 205; rgb->green = 190; - rgb->green = 112; + rgb->blue = 112; return; } if(strcmp(color, "LightGoldenrod4") == 0) { rgb->red = 139; rgb->green = 129; - rgb->green = 76; + rgb->blue = 76; return; } if(strcmp(color, "LightYellow1") == 0) { rgb->red = 255; rgb->green = 255; - rgb->green = 224; + rgb->blue = 224; return; } if(strcmp(color, "LightYellow2") == 0) { rgb->red = 238; rgb->green = 238; - rgb->green = 209; + rgb->blue = 209; return; } if(strcmp(color, "LightYellow3") == 0) { rgb->red = 205; rgb->green = 205; - rgb->green = 180; + rgb->blue = 180; return; } if(strcmp(color, "LightYellow4") == 0) { rgb->red = 139; rgb->green = 139; - rgb->green = 122; + rgb->blue = 122; return; } if(strcmp(color, "yellow1") == 0) { rgb->red = 255; rgb->green = 255; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "yellow2") == 0) { rgb->red = 238; rgb->green = 238; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "yellow3") == 0) { rgb->red = 205; rgb->green = 205; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "yellow4") == 0) { rgb->red = 139; rgb->green = 139; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "gold1") == 0) { rgb->red = 255; rgb->green = 215; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "gold2") == 0) { rgb->red = 238; rgb->green = 201; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "gold3") == 0) { rgb->red = 205; rgb->green = 173; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "gold4") == 0) { rgb->red = 139; rgb->green = 117; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "goldenrod1") == 0) { rgb->red = 255; rgb->green = 193; - rgb->green = 37; + rgb->blue = 37; return; } if(strcmp(color, "goldenrod2") == 0) { rgb->red = 238; rgb->green = 180; - rgb->green = 34; + rgb->blue = 34; return; } if(strcmp(color, "goldenrod3") == 0) { rgb->red = 205; rgb->green = 155; - rgb->green = 29; + rgb->blue = 29; return; } if(strcmp(color, "goldenrod4") == 0) { rgb->red = 139; rgb->green = 105; - rgb->green = 20; + rgb->blue = 20; return; } if(strcmp(color, "DarkGoldenrod1") == 0) { rgb->red = 255; rgb->green = 185; - rgb->green = 15; + rgb->blue = 15; return; } if(strcmp(color, "DarkGoldenrod2") == 0) { rgb->red = 238; rgb->green = 173; - rgb->green = 14; + rgb->blue = 14; return; } if(strcmp(color, "DarkGoldenrod3") == 0) { rgb->red = 205; rgb->green = 149; - rgb->green = 12; + rgb->blue = 12; return; } if(strcmp(color, "DarkGoldenrod4") == 0) { rgb->red = 139; rgb->green = 101; - rgb->green = 8; + rgb->blue = 8; return; } if(strcmp(color, "RosyBrown1") == 0) { rgb->red = 255; rgb->green = 193; - rgb->green = 193; + rgb->blue = 193; return; } if(strcmp(color, "RosyBrown2") == 0) { rgb->red = 238; rgb->green = 180; - rgb->green = 180; + rgb->blue = 180; return; } if(strcmp(color, "RosyBrown3") == 0) { rgb->red = 205; rgb->green = 155; - rgb->green = 155; + rgb->blue = 155; return; } if(strcmp(color, "RosyBrown4") == 0) { rgb->red = 139; rgb->green = 105; - rgb->green = 105; + rgb->blue = 105; return; } if(strcmp(color, "IndianRed1") == 0) { rgb->red = 255; rgb->green = 106; - rgb->green = 106; + rgb->blue = 106; return; } if(strcmp(color, "IndianRed2") == 0) { rgb->red = 238; rgb->green = 99; - rgb->green = 99; + rgb->blue = 99; return; } if(strcmp(color, "IndianRed3") == 0) { rgb->red = 205; rgb->green = 85; - rgb->green = 85; + rgb->blue = 85; return; } if(strcmp(color, "IndianRed4") == 0) { rgb->red = 139; rgb->green = 58; - rgb->green = 58; + rgb->blue = 58; return; } if(strcmp(color, "sienna1") == 0) { rgb->red = 255; rgb->green = 130; - rgb->green = 71; + rgb->blue = 71; return; } if(strcmp(color, "sienna2") == 0) { rgb->red = 238; rgb->green = 121; - rgb->green = 66; + rgb->blue = 66; return; } if(strcmp(color, "sienna3") == 0) { rgb->red = 205; rgb->green = 104; - rgb->green = 57; + rgb->blue = 57; return; } if(strcmp(color, "sienna4") == 0) { rgb->red = 139; rgb->green = 71; - rgb->green = 38; + rgb->blue = 38; return; } if(strcmp(color, "burlywood1") == 0) { rgb->red = 255; rgb->green = 211; - rgb->green = 155; + rgb->blue = 155; return; } if(strcmp(color, "burlywood2") == 0) { rgb->red = 238; rgb->green = 197; - rgb->green = 145; + rgb->blue = 145; return; } if(strcmp(color, "burlywood3") == 0) { rgb->red = 205; rgb->green = 170; - rgb->green = 125; + rgb->blue = 125; return; } if(strcmp(color, "burlywood4") == 0) { rgb->red = 139; rgb->green = 115; - rgb->green = 85; + rgb->blue = 85; return; } if(strcmp(color, "wheat1") == 0) { rgb->red = 255; rgb->green = 231; - rgb->green = 186; + rgb->blue = 186; return; } if(strcmp(color, "wheat2") == 0) { rgb->red = 238; rgb->green = 216; - rgb->green = 174; + rgb->blue = 174; return; } if(strcmp(color, "wheat3") == 0) { rgb->red = 205; rgb->green = 186; - rgb->green = 150; + rgb->blue = 150; return; } if(strcmp(color, "wheat4") == 0) { rgb->red = 139; rgb->green = 126; - rgb->green = 102; + rgb->blue = 102; return; } if(strcmp(color, "tan1") == 0) { rgb->red = 255; rgb->green = 165; - rgb->green = 79; + rgb->blue = 79; return; } if(strcmp(color, "tan2") == 0) { rgb->red = 238; rgb->green = 154; - rgb->green = 73; + rgb->blue = 73; return; } if(strcmp(color, "tan3") == 0) { rgb->red = 205; rgb->green = 133; - rgb->green = 63; + rgb->blue = 63; return; } if(strcmp(color, "tan4") == 0) { rgb->red = 139; rgb->green = 90; - rgb->green = 43; + rgb->blue = 43; return; } if(strcmp(color, "chocolate1") == 0) { rgb->red = 255; rgb->green = 127; - rgb->green = 36; + rgb->blue = 36; return; } if(strcmp(color, "chocolate2") == 0) { rgb->red = 238; rgb->green = 118; - rgb->green = 33; + rgb->blue = 33; return; } if(strcmp(color, "chocolate3") == 0) { rgb->red = 205; rgb->green = 102; - rgb->green = 29; + rgb->blue = 29; return; } if(strcmp(color, "chocolate4") == 0) { rgb->red = 139; rgb->green = 69; - rgb->green = 19; + rgb->blue = 19; return; } if(strcmp(color, "firebrick1") == 0) { rgb->red = 255; rgb->green = 48; - rgb->green = 48; + rgb->blue = 48; return; } if(strcmp(color, "firebrick2") == 0) { rgb->red = 238; rgb->green = 44; - rgb->green = 44; + rgb->blue = 44; return; } if(strcmp(color, "firebrick3") == 0) { rgb->red = 205; rgb->green = 38; - rgb->green = 38; + rgb->blue = 38; return; } if(strcmp(color, "firebrick4") == 0) { rgb->red = 139; rgb->green = 26; - rgb->green = 26; + rgb->blue = 26; return; } if(strcmp(color, "brown1") == 0) { rgb->red = 255; rgb->green = 64; - rgb->green = 64; + rgb->blue = 64; return; } if(strcmp(color, "brown2") == 0) { rgb->red = 238; rgb->green = 59; - rgb->green = 59; + rgb->blue = 59; return; } if(strcmp(color, "brown3") == 0) { rgb->red = 205; rgb->green = 51; - rgb->green = 51; + rgb->blue = 51; return; } if(strcmp(color, "brown4") == 0) { rgb->red = 139; rgb->green = 35; - rgb->green = 35; + rgb->blue = 35; return; } if(strcmp(color, "salmon1") == 0) { rgb->red = 255; rgb->green = 140; - rgb->green = 105; + rgb->blue = 105; return; } if(strcmp(color, "salmon2") == 0) { rgb->red = 238; rgb->green = 130; - rgb->green = 98; + rgb->blue = 98; return; } if(strcmp(color, "salmon3") == 0) { rgb->red = 205; rgb->green = 112; - rgb->green = 84; + rgb->blue = 84; return; } if(strcmp(color, "salmon4") == 0) { rgb->red = 139; rgb->green = 76; - rgb->green = 57; + rgb->blue = 57; return; } if(strcmp(color, "LightSalmon1") == 0) { rgb->red = 255; rgb->green = 160; - rgb->green = 122; + rgb->blue = 122; return; } if(strcmp(color, "LightSalmon2") == 0) { rgb->red = 238; rgb->green = 149; - rgb->green = 114; + rgb->blue = 114; return; } if(strcmp(color, "LightSalmon3") == 0) { rgb->red = 205; rgb->green = 129; - rgb->green = 98; + rgb->blue = 98; return; } if(strcmp(color, "LightSalmon4") == 0) { rgb->red = 139; rgb->green = 87; - rgb->green = 66; + rgb->blue = 66; return; } if(strcmp(color, "orange1") == 0) { rgb->red = 255; rgb->green = 165; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "orange2") == 0) { rgb->red = 238; rgb->green = 154; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "orange3") == 0) { rgb->red = 205; rgb->green = 133; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "orange4") == 0) { rgb->red = 139; rgb->green = 90; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "DarkOrange1") == 0) { rgb->red = 255; rgb->green = 127; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "DarkOrange2") == 0) { rgb->red = 238; rgb->green = 118; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "DarkOrange3") == 0) { rgb->red = 205; rgb->green = 102; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "DarkOrange4") == 0) { rgb->red = 139; rgb->green = 69; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "coral1") == 0) { rgb->red = 255; rgb->green = 114; - rgb->green = 86; + rgb->blue = 86; return; } if(strcmp(color, "coral2") == 0) { rgb->red = 238; rgb->green = 106; - rgb->green = 80; + rgb->blue = 80; return; } if(strcmp(color, "coral3") == 0) { rgb->red = 205; rgb->green = 91; - rgb->green = 69; + rgb->blue = 69; return; } if(strcmp(color, "coral4") == 0) { rgb->red = 139; rgb->green = 62; - rgb->green = 47; + rgb->blue = 47; return; } if(strcmp(color, "tomato1") == 0) { rgb->red = 255; rgb->green = 99; - rgb->green = 71; + rgb->blue = 71; return; } if(strcmp(color, "tomato2") == 0) { rgb->red = 238; rgb->green = 92; - rgb->green = 66; + rgb->blue = 66; return; } if(strcmp(color, "tomato3") == 0) { rgb->red = 205; rgb->green = 79; - rgb->green = 57; + rgb->blue = 57; return; } if(strcmp(color, "tomato4") == 0) { rgb->red = 139; rgb->green = 54; - rgb->green = 38; + rgb->blue = 38; return; } if(strcmp(color, "OrangeRed1") == 0) { rgb->red = 255; rgb->green = 69; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "OrangeRed2") == 0) { rgb->red = 238; rgb->green = 64; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "OrangeRed3") == 0) { rgb->red = 205; rgb->green = 55; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "OrangeRed4") == 0) { rgb->red = 139; rgb->green = 37; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "red1") == 0) { rgb->red = 255; rgb->green = 0; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "red2") == 0) { rgb->red = 238; rgb->green = 0; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "red3") == 0) { rgb->red = 205; rgb->green = 0; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "red4") == 0) { rgb->red = 139; rgb->green = 0; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "DeepPink1") == 0) { rgb->red = 255; rgb->green = 20; - rgb->green = 147; + rgb->blue = 147; return; } if(strcmp(color, "DeepPink2") == 0) { rgb->red = 238; rgb->green = 18; - rgb->green = 137; + rgb->blue = 137; return; } if(strcmp(color, "DeepPink3") == 0) { rgb->red = 205; rgb->green = 16; - rgb->green = 118; + rgb->blue = 118; return; } if(strcmp(color, "DeepPink4") == 0) { rgb->red = 139; rgb->green = 10; - rgb->green = 80; + rgb->blue = 80; return; } if(strcmp(color, "HotPink1") == 0) { rgb->red = 255; rgb->green = 110; - rgb->green = 180; + rgb->blue = 180; return; } if(strcmp(color, "HotPink2") == 0) { rgb->red = 238; rgb->green = 106; - rgb->green = 167; + rgb->blue = 167; return; } if(strcmp(color, "HotPink3") == 0) { rgb->red = 205; rgb->green = 96; - rgb->green = 144; + rgb->blue = 144; return; } if(strcmp(color, "HotPink4") == 0) { rgb->red = 139; rgb->green = 58; - rgb->green = 98; + rgb->blue = 98; return; } if(strcmp(color, "pink1") == 0) { rgb->red = 255; rgb->green = 181; - rgb->green = 197; + rgb->blue = 197; return; } if(strcmp(color, "pink2") == 0) { rgb->red = 238; rgb->green = 169; - rgb->green = 184; + rgb->blue = 184; return; } if(strcmp(color, "pink3") == 0) { rgb->red = 205; rgb->green = 145; - rgb->green = 158; + rgb->blue = 158; return; } if(strcmp(color, "pink4") == 0) { rgb->red = 139; rgb->green = 99; - rgb->green = 108; + rgb->blue = 108; return; } if(strcmp(color, "LightPink1") == 0) { rgb->red = 255; rgb->green = 174; - rgb->green = 185; + rgb->blue = 185; return; } if(strcmp(color, "LightPink2") == 0) { rgb->red = 238; rgb->green = 162; - rgb->green = 173; + rgb->blue = 173; return; } if(strcmp(color, "LightPink3") == 0) { rgb->red = 205; rgb->green = 140; - rgb->green = 149; + rgb->blue = 149; return; } if(strcmp(color, "LightPink4") == 0) { rgb->red = 139; rgb->green = 95; - rgb->green = 101; + rgb->blue = 101; return; } if(strcmp(color, "PaleVioletRed1") == 0) { rgb->red = 255; rgb->green = 130; - rgb->green = 171; + rgb->blue = 171; return; } if(strcmp(color, "PaleVioletRed2") == 0) { rgb->red = 238; rgb->green = 121; - rgb->green = 159; + rgb->blue = 159; return; } if(strcmp(color, "PaleVioletRed3") == 0) { rgb->red = 205; rgb->green = 104; - rgb->green = 137; + rgb->blue = 137; return; } if(strcmp(color, "PaleVioletRed4") == 0) { rgb->red = 139; rgb->green = 71; - rgb->green = 93; + rgb->blue = 93; return; } if(strcmp(color, "maroon1") == 0) { rgb->red = 255; rgb->green = 52; - rgb->green = 179; + rgb->blue = 179; return; } if(strcmp(color, "maroon2") == 0) { rgb->red = 238; rgb->green = 48; - rgb->green = 167; + rgb->blue = 167; return; } if(strcmp(color, "maroon3") == 0) { rgb->red = 205; rgb->green = 41; - rgb->green = 144; + rgb->blue = 144; return; } if(strcmp(color, "maroon4") == 0) { rgb->red = 139; rgb->green = 28; - rgb->green = 98; + rgb->blue = 98; return; } if(strcmp(color, "VioletRed1") == 0) { rgb->red = 255; rgb->green = 62; - rgb->green = 150; + rgb->blue = 150; return; } if(strcmp(color, "VioletRed2") == 0) { rgb->red = 238; rgb->green = 58; - rgb->green = 140; + rgb->blue = 140; return; } if(strcmp(color, "VioletRed3") == 0) { rgb->red = 205; rgb->green = 50; - rgb->green = 120; + rgb->blue = 120; return; } if(strcmp(color, "VioletRed4") == 0) { rgb->red = 139; rgb->green = 34; - rgb->green = 82; + rgb->blue = 82; return; } if(strcmp(color, "magenta1") == 0) { rgb->red = 255; rgb->green = 0; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "magenta2") == 0) { rgb->red = 238; rgb->green = 0; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "magenta3") == 0) { rgb->red = 205; rgb->green = 0; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "magenta4") == 0) { rgb->red = 139; rgb->green = 0; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "orchid1") == 0) { rgb->red = 255; rgb->green = 131; - rgb->green = 250; + rgb->blue = 250; return; } if(strcmp(color, "orchid2") == 0) { rgb->red = 238; rgb->green = 122; - rgb->green = 233; + rgb->blue = 233; return; } if(strcmp(color, "orchid3") == 0) { rgb->red = 205; rgb->green = 105; - rgb->green = 201; + rgb->blue = 201; return; } if(strcmp(color, "orchid4") == 0) { rgb->red = 139; rgb->green = 71; - rgb->green = 137; + rgb->blue = 137; return; } if(strcmp(color, "plum1") == 0) { rgb->red = 255; rgb->green = 187; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "plum2") == 0) { rgb->red = 238; rgb->green = 174; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "plum3") == 0) { rgb->red = 205; rgb->green = 150; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "plum4") == 0) { rgb->red = 139; rgb->green = 102; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "MediumOrchid1") == 0) { rgb->red = 224; rgb->green = 102; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "MediumOrchid2") == 0) { rgb->red = 209; rgb->green = 95; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "MediumOrchid3") == 0) { rgb->red = 180; rgb->green = 82; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "MediumOrchid4") == 0) { rgb->red = 122; rgb->green = 55; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "DarkOrchid1") == 0) { rgb->red = 191; rgb->green = 62; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "DarkOrchid2") == 0) { rgb->red = 178; rgb->green = 58; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "DarkOrchid3") == 0) { rgb->red = 154; rgb->green = 50; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "DarkOrchid4") == 0) { rgb->red = 104; rgb->green = 34; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "purple1") == 0) { rgb->red = 155; rgb->green = 48; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "purple2") == 0) { rgb->red = 145; rgb->green = 44; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "purple3") == 0) { rgb->red = 125; rgb->green = 38; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "purple4") == 0) { rgb->red = 85; rgb->green = 26; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "MediumPurple1") == 0) { rgb->red = 171; rgb->green = 130; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "MediumPurple2") == 0) { rgb->red = 159; rgb->green = 121; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "MediumPurple3") == 0) { rgb->red = 137; rgb->green = 104; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "MediumPurple4") == 0) { rgb->red = 93; rgb->green = 71; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "thistle1") == 0) { rgb->red = 255; rgb->green = 225; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "thistle2") == 0) { rgb->red = 238; rgb->green = 210; - rgb->green = 238; + rgb->blue = 238; return; } if(strcmp(color, "thistle3") == 0) { rgb->red = 205; rgb->green = 181; - rgb->green = 205; + rgb->blue = 205; return; } if(strcmp(color, "thistle4") == 0) { rgb->red = 139; rgb->green = 123; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "gray0") == 0) { rgb->red = 0; rgb->green = 0; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "grey0") == 0) { rgb->red = 0; rgb->green = 0; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "gray1") == 0) { rgb->red = 3; rgb->green = 3; - rgb->green = 3; + rgb->blue = 3; return; } if(strcmp(color, "grey1") == 0) { rgb->red = 3; rgb->green = 3; - rgb->green = 3; + rgb->blue = 3; return; } if(strcmp(color, "gray2") == 0) { rgb->red = 5; rgb->green = 5; - rgb->green = 5; + rgb->blue = 5; return; } if(strcmp(color, "grey2") == 0) { rgb->red = 5; rgb->green = 5; - rgb->green = 5; + rgb->blue = 5; return; } if(strcmp(color, "gray3") == 0) { rgb->red = 8; rgb->green = 8; - rgb->green = 8; + rgb->blue = 8; return; } if(strcmp(color, "grey3") == 0) { rgb->red = 8; rgb->green = 8; - rgb->green = 8; + rgb->blue = 8; return; } if(strcmp(color, "gray4") == 0) { rgb->red = 10; rgb->green = 10; - rgb->green = 10; + rgb->blue = 10; return; } if(strcmp(color, "grey4") == 0) { rgb->red = 10; rgb->green = 10; - rgb->green = 10; + rgb->blue = 10; return; } if(strcmp(color, "gray5") == 0) { rgb->red = 13; rgb->green = 13; - rgb->green = 13; + rgb->blue = 13; return; } if(strcmp(color, "grey5") == 0) { rgb->red = 13; rgb->green = 13; - rgb->green = 13; + rgb->blue = 13; return; } if(strcmp(color, "gray6") == 0) { rgb->red = 15; rgb->green = 15; - rgb->green = 15; + rgb->blue = 15; return; } if(strcmp(color, "grey6") == 0) { rgb->red = 15; rgb->green = 15; - rgb->green = 15; + rgb->blue = 15; return; } if(strcmp(color, "gray7") == 0) { rgb->red = 18; rgb->green = 18; - rgb->green = 18; + rgb->blue = 18; return; } if(strcmp(color, "grey7") == 0) { rgb->red = 18; rgb->green = 18; - rgb->green = 18; + rgb->blue = 18; return; } if(strcmp(color, "gray8") == 0) { rgb->red = 20; rgb->green = 20; - rgb->green = 20; + rgb->blue = 20; return; } if(strcmp(color, "grey8") == 0) { rgb->red = 20; rgb->green = 20; - rgb->green = 20; + rgb->blue = 20; return; } if(strcmp(color, "gray9") == 0) { rgb->red = 23; rgb->green = 23; - rgb->green = 23; + rgb->blue = 23; return; } if(strcmp(color, "grey9") == 0) { rgb->red = 23; rgb->green = 23; - rgb->green = 23; + rgb->blue = 23; return; } if(strcmp(color, "gray10") == 0) { rgb->red = 26; rgb->green = 26; - rgb->green = 26; + rgb->blue = 26; return; } if(strcmp(color, "grey10") == 0) { rgb->red = 26; rgb->green = 26; - rgb->green = 26; + rgb->blue = 26; return; } if(strcmp(color, "gray11") == 0) { rgb->red = 28; rgb->green = 28; - rgb->green = 28; + rgb->blue = 28; return; } if(strcmp(color, "grey11") == 0) { rgb->red = 28; rgb->green = 28; - rgb->green = 28; + rgb->blue = 28; return; } if(strcmp(color, "gray12") == 0) { rgb->red = 31; rgb->green = 31; - rgb->green = 31; + rgb->blue = 31; return; } if(strcmp(color, "grey12") == 0) { rgb->red = 31; rgb->green = 31; - rgb->green = 31; + rgb->blue = 31; return; } if(strcmp(color, "gray13") == 0) { rgb->red = 33; rgb->green = 33; - rgb->green = 33; + rgb->blue = 33; return; } if(strcmp(color, "grey13") == 0) { rgb->red = 33; rgb->green = 33; - rgb->green = 33; + rgb->blue = 33; return; } if(strcmp(color, "gray14") == 0) { rgb->red = 36; rgb->green = 36; - rgb->green = 36; + rgb->blue = 36; return; } if(strcmp(color, "grey14") == 0) { rgb->red = 36; rgb->green = 36; - rgb->green = 36; + rgb->blue = 36; return; } if(strcmp(color, "gray15") == 0) { rgb->red = 38; rgb->green = 38; - rgb->green = 38; + rgb->blue = 38; return; } if(strcmp(color, "grey15") == 0) { rgb->red = 38; rgb->green = 38; - rgb->green = 38; + rgb->blue = 38; return; } if(strcmp(color, "gray16") == 0) { rgb->red = 41; rgb->green = 41; - rgb->green = 41; + rgb->blue = 41; return; } if(strcmp(color, "grey16") == 0) { rgb->red = 41; rgb->green = 41; - rgb->green = 41; + rgb->blue = 41; return; } if(strcmp(color, "gray17") == 0) { rgb->red = 43; rgb->green = 43; - rgb->green = 43; + rgb->blue = 43; return; } if(strcmp(color, "grey17") == 0) { rgb->red = 43; rgb->green = 43; - rgb->green = 43; + rgb->blue = 43; return; } if(strcmp(color, "gray18") == 0) { rgb->red = 46; rgb->green = 46; - rgb->green = 46; + rgb->blue = 46; return; } if(strcmp(color, "grey18") == 0) { rgb->red = 46; rgb->green = 46; - rgb->green = 46; + rgb->blue = 46; return; } if(strcmp(color, "gray19") == 0) { rgb->red = 48; rgb->green = 48; - rgb->green = 48; + rgb->blue = 48; return; } if(strcmp(color, "grey19") == 0) { rgb->red = 48; rgb->green = 48; - rgb->green = 48; + rgb->blue = 48; return; } if(strcmp(color, "gray20") == 0) { rgb->red = 51; rgb->green = 51; - rgb->green = 51; + rgb->blue = 51; return; } if(strcmp(color, "grey20") == 0) { rgb->red = 51; rgb->green = 51; - rgb->green = 51; + rgb->blue = 51; return; } if(strcmp(color, "gray21") == 0) { rgb->red = 54; rgb->green = 54; - rgb->green = 54; + rgb->blue = 54; return; } if(strcmp(color, "grey21") == 0) { rgb->red = 54; rgb->green = 54; - rgb->green = 54; + rgb->blue = 54; return; } if(strcmp(color, "gray22") == 0) { rgb->red = 56; rgb->green = 56; - rgb->green = 56; + rgb->blue = 56; return; } if(strcmp(color, "grey22") == 0) { rgb->red = 56; rgb->green = 56; - rgb->green = 56; + rgb->blue = 56; return; } if(strcmp(color, "gray23") == 0) { rgb->red = 59; rgb->green = 59; - rgb->green = 59; + rgb->blue = 59; return; } if(strcmp(color, "grey23") == 0) { rgb->red = 59; rgb->green = 59; - rgb->green = 59; + rgb->blue = 59; return; } if(strcmp(color, "gray24") == 0) { rgb->red = 61; rgb->green = 61; - rgb->green = 61; + rgb->blue = 61; return; } if(strcmp(color, "grey24") == 0) { rgb->red = 61; rgb->green = 61; - rgb->green = 61; + rgb->blue = 61; return; } if(strcmp(color, "gray25") == 0) { rgb->red = 64; rgb->green = 64; - rgb->green = 64; + rgb->blue = 64; return; } if(strcmp(color, "grey25") == 0) { rgb->red = 64; rgb->green = 64; - rgb->green = 64; + rgb->blue = 64; return; } if(strcmp(color, "gray26") == 0) { rgb->red = 66; rgb->green = 66; - rgb->green = 66; + rgb->blue = 66; return; } if(strcmp(color, "grey26") == 0) { rgb->red = 66; rgb->green = 66; - rgb->green = 66; + rgb->blue = 66; return; } if(strcmp(color, "gray27") == 0) { rgb->red = 69; rgb->green = 69; - rgb->green = 69; + rgb->blue = 69; return; } if(strcmp(color, "grey27") == 0) { rgb->red = 69; rgb->green = 69; - rgb->green = 69; + rgb->blue = 69; return; } if(strcmp(color, "gray28") == 0) { rgb->red = 71; rgb->green = 71; - rgb->green = 71; + rgb->blue = 71; return; } if(strcmp(color, "grey28") == 0) { rgb->red = 71; rgb->green = 71; - rgb->green = 71; + rgb->blue = 71; return; } if(strcmp(color, "gray29") == 0) { rgb->red = 74; rgb->green = 74; - rgb->green = 74; + rgb->blue = 74; return; } if(strcmp(color, "grey29") == 0) { rgb->red = 74; rgb->green = 74; - rgb->green = 74; + rgb->blue = 74; return; } if(strcmp(color, "gray30") == 0) { rgb->red = 77; rgb->green = 77; - rgb->green = 77; + rgb->blue = 77; return; } if(strcmp(color, "grey30") == 0) { rgb->red = 77; rgb->green = 77; - rgb->green = 77; + rgb->blue = 77; return; } if(strcmp(color, "gray31") == 0) { rgb->red = 79; rgb->green = 79; - rgb->green = 79; + rgb->blue = 79; return; } if(strcmp(color, "grey31") == 0) { rgb->red = 79; rgb->green = 79; - rgb->green = 79; + rgb->blue = 79; return; } if(strcmp(color, "gray32") == 0) { rgb->red = 82; rgb->green = 82; - rgb->green = 82; + rgb->blue = 82; return; } if(strcmp(color, "grey32") == 0) { rgb->red = 82; rgb->green = 82; - rgb->green = 82; + rgb->blue = 82; return; } if(strcmp(color, "gray33") == 0) { rgb->red = 84; rgb->green = 84; - rgb->green = 84; + rgb->blue = 84; return; } if(strcmp(color, "grey33") == 0) { rgb->red = 84; rgb->green = 84; - rgb->green = 84; + rgb->blue = 84; return; } if(strcmp(color, "gray34") == 0) { rgb->red = 87; rgb->green = 87; - rgb->green = 87; + rgb->blue = 87; return; } if(strcmp(color, "grey34") == 0) { rgb->red = 87; rgb->green = 87; - rgb->green = 87; + rgb->blue = 87; return; } if(strcmp(color, "gray35") == 0) { rgb->red = 89; rgb->green = 89; - rgb->green = 89; + rgb->blue = 89; return; } if(strcmp(color, "grey35") == 0) { rgb->red = 89; rgb->green = 89; - rgb->green = 89; + rgb->blue = 89; return; } if(strcmp(color, "gray36") == 0) { rgb->red = 92; rgb->green = 92; - rgb->green = 92; + rgb->blue = 92; return; } if(strcmp(color, "grey36") == 0) { rgb->red = 92; rgb->green = 92; - rgb->green = 92; + rgb->blue = 92; return; } if(strcmp(color, "gray37") == 0) { rgb->red = 94; rgb->green = 94; - rgb->green = 94; + rgb->blue = 94; return; } if(strcmp(color, "grey37") == 0) { rgb->red = 94; rgb->green = 94; - rgb->green = 94; + rgb->blue = 94; return; } if(strcmp(color, "gray38") == 0) { rgb->red = 97; rgb->green = 97; - rgb->green = 97; + rgb->blue = 97; return; } if(strcmp(color, "grey38") == 0) { rgb->red = 97; rgb->green = 97; - rgb->green = 97; + rgb->blue = 97; return; } if(strcmp(color, "gray39") == 0) { rgb->red = 99; rgb->green = 99; - rgb->green = 99; + rgb->blue = 99; return; } if(strcmp(color, "grey39") == 0) { rgb->red = 99; rgb->green = 99; - rgb->green = 99; + rgb->blue = 99; return; } if(strcmp(color, "gray40") == 0) { rgb->red = 102; rgb->green = 102; - rgb->green = 102; + rgb->blue = 102; return; } if(strcmp(color, "grey40") == 0) { rgb->red = 102; rgb->green = 102; - rgb->green = 102; + rgb->blue = 102; return; } if(strcmp(color, "gray41") == 0) { rgb->red = 105; rgb->green = 105; - rgb->green = 105; + rgb->blue = 105; return; } if(strcmp(color, "grey41") == 0) { rgb->red = 105; rgb->green = 105; - rgb->green = 105; + rgb->blue = 105; return; } if(strcmp(color, "gray42") == 0) { rgb->red = 107; rgb->green = 107; - rgb->green = 107; + rgb->blue = 107; return; } if(strcmp(color, "grey42") == 0) { rgb->red = 107; rgb->green = 107; - rgb->green = 107; + rgb->blue = 107; return; } if(strcmp(color, "gray43") == 0) { rgb->red = 110; rgb->green = 110; - rgb->green = 110; + rgb->blue = 110; return; } if(strcmp(color, "grey43") == 0) { rgb->red = 110; rgb->green = 110; - rgb->green = 110; + rgb->blue = 110; return; } if(strcmp(color, "gray44") == 0) { rgb->red = 112; rgb->green = 112; - rgb->green = 112; + rgb->blue = 112; return; } if(strcmp(color, "grey44") == 0) { rgb->red = 112; rgb->green = 112; - rgb->green = 112; + rgb->blue = 112; return; } if(strcmp(color, "gray45") == 0) { rgb->red = 115; rgb->green = 115; - rgb->green = 115; + rgb->blue = 115; return; } if(strcmp(color, "grey45") == 0) { rgb->red = 115; rgb->green = 115; - rgb->green = 115; + rgb->blue = 115; return; } if(strcmp(color, "gray46") == 0) { rgb->red = 117; rgb->green = 117; - rgb->green = 117; + rgb->blue = 117; return; } if(strcmp(color, "grey46") == 0) { rgb->red = 117; rgb->green = 117; - rgb->green = 117; + rgb->blue = 117; return; } if(strcmp(color, "gray47") == 0) { rgb->red = 120; rgb->green = 120; - rgb->green = 120; + rgb->blue = 120; return; } if(strcmp(color, "grey47") == 0) { rgb->red = 120; rgb->green = 120; - rgb->green = 120; + rgb->blue = 120; return; } if(strcmp(color, "gray48") == 0) { rgb->red = 122; rgb->green = 122; - rgb->green = 122; + rgb->blue = 122; return; } if(strcmp(color, "grey48") == 0) { rgb->red = 122; rgb->green = 122; - rgb->green = 122; + rgb->blue = 122; return; } if(strcmp(color, "gray49") == 0) { rgb->red = 125; rgb->green = 125; - rgb->green = 125; + rgb->blue = 125; return; } if(strcmp(color, "grey49") == 0) { rgb->red = 125; rgb->green = 125; - rgb->green = 125; + rgb->blue = 125; return; } if(strcmp(color, "gray50") == 0) { rgb->red = 127; rgb->green = 127; - rgb->green = 127; + rgb->blue = 127; return; } if(strcmp(color, "grey50") == 0) { rgb->red = 127; rgb->green = 127; - rgb->green = 127; + rgb->blue = 127; return; } if(strcmp(color, "gray51") == 0) { rgb->red = 130; rgb->green = 130; - rgb->green = 130; + rgb->blue = 130; return; } if(strcmp(color, "grey51") == 0) { rgb->red = 130; rgb->green = 130; - rgb->green = 130; + rgb->blue = 130; return; } if(strcmp(color, "gray52") == 0) { rgb->red = 133; rgb->green = 133; - rgb->green = 133; + rgb->blue = 133; return; } if(strcmp(color, "grey52") == 0) { rgb->red = 133; rgb->green = 133; - rgb->green = 133; + rgb->blue = 133; return; } if(strcmp(color, "gray53") == 0) { rgb->red = 135; rgb->green = 135; - rgb->green = 135; + rgb->blue = 135; return; } if(strcmp(color, "grey53") == 0) { rgb->red = 135; rgb->green = 135; - rgb->green = 135; + rgb->blue = 135; return; } if(strcmp(color, "gray54") == 0) { rgb->red = 138; rgb->green = 138; - rgb->green = 138; + rgb->blue = 138; return; } if(strcmp(color, "grey54") == 0) { rgb->red = 138; rgb->green = 138; - rgb->green = 138; + rgb->blue = 138; return; } if(strcmp(color, "gray55") == 0) { rgb->red = 140; rgb->green = 140; - rgb->green = 140; + rgb->blue = 140; return; } if(strcmp(color, "grey55") == 0) { rgb->red = 140; rgb->green = 140; - rgb->green = 140; + rgb->blue = 140; return; } if(strcmp(color, "gray56") == 0) { rgb->red = 143; rgb->green = 143; - rgb->green = 143; + rgb->blue = 143; return; } if(strcmp(color, "grey56") == 0) { rgb->red = 143; rgb->green = 143; - rgb->green = 143; + rgb->blue = 143; return; } if(strcmp(color, "gray57") == 0) { rgb->red = 145; rgb->green = 145; - rgb->green = 145; + rgb->blue = 145; return; } if(strcmp(color, "grey57") == 0) { rgb->red = 145; rgb->green = 145; - rgb->green = 145; + rgb->blue = 145; return; } if(strcmp(color, "gray58") == 0) { rgb->red = 148; rgb->green = 148; - rgb->green = 148; + rgb->blue = 148; return; } if(strcmp(color, "grey58") == 0) { rgb->red = 148; rgb->green = 148; - rgb->green = 148; + rgb->blue = 148; return; } if(strcmp(color, "gray59") == 0) { rgb->red = 150; rgb->green = 150; - rgb->green = 150; + rgb->blue = 150; return; } if(strcmp(color, "grey59") == 0) { rgb->red = 150; rgb->green = 150; - rgb->green = 150; + rgb->blue = 150; return; } if(strcmp(color, "gray60") == 0) { rgb->red = 153; rgb->green = 153; - rgb->green = 153; + rgb->blue = 153; return; } if(strcmp(color, "grey60") == 0) { rgb->red = 153; rgb->green = 153; - rgb->green = 153; + rgb->blue = 153; return; } if(strcmp(color, "gray61") == 0) { rgb->red = 156; rgb->green = 156; - rgb->green = 156; + rgb->blue = 156; return; } if(strcmp(color, "grey61") == 0) { rgb->red = 156; rgb->green = 156; - rgb->green = 156; + rgb->blue = 156; return; } if(strcmp(color, "gray62") == 0) { rgb->red = 158; rgb->green = 158; - rgb->green = 158; + rgb->blue = 158; return; } if(strcmp(color, "grey62") == 0) { rgb->red = 158; rgb->green = 158; - rgb->green = 158; + rgb->blue = 158; return; } if(strcmp(color, "gray63") == 0) { rgb->red = 161; rgb->green = 161; - rgb->green = 161; + rgb->blue = 161; return; } if(strcmp(color, "grey63") == 0) { rgb->red = 161; rgb->green = 161; - rgb->green = 161; + rgb->blue = 161; return; } if(strcmp(color, "gray64") == 0) { rgb->red = 163; rgb->green = 163; - rgb->green = 163; + rgb->blue = 163; return; } if(strcmp(color, "grey64") == 0) { rgb->red = 163; rgb->green = 163; - rgb->green = 163; + rgb->blue = 163; return; } if(strcmp(color, "gray65") == 0) { rgb->red = 166; rgb->green = 166; - rgb->green = 166; + rgb->blue = 166; return; } if(strcmp(color, "grey65") == 0) { rgb->red = 166; rgb->green = 166; - rgb->green = 166; + rgb->blue = 166; return; } if(strcmp(color, "gray66") == 0) { rgb->red = 168; rgb->green = 168; - rgb->green = 168; + rgb->blue = 168; return; } if(strcmp(color, "grey66") == 0) { rgb->red = 168; rgb->green = 168; - rgb->green = 168; + rgb->blue = 168; return; } if(strcmp(color, "gray67") == 0) { rgb->red = 171; rgb->green = 171; - rgb->green = 171; + rgb->blue = 171; return; } if(strcmp(color, "grey67") == 0) { rgb->red = 171; rgb->green = 171; - rgb->green = 171; + rgb->blue = 171; return; } if(strcmp(color, "gray68") == 0) { rgb->red = 173; rgb->green = 173; - rgb->green = 173; + rgb->blue = 173; return; } if(strcmp(color, "grey68") == 0) { rgb->red = 173; rgb->green = 173; - rgb->green = 173; + rgb->blue = 173; return; } if(strcmp(color, "gray69") == 0) { rgb->red = 176; rgb->green = 176; - rgb->green = 176; + rgb->blue = 176; return; } if(strcmp(color, "grey69") == 0) { rgb->red = 176; rgb->green = 176; - rgb->green = 176; + rgb->blue = 176; return; } if(strcmp(color, "gray70") == 0) { rgb->red = 179; rgb->green = 179; - rgb->green = 179; + rgb->blue = 179; return; } if(strcmp(color, "grey70") == 0) { rgb->red = 179; rgb->green = 179; - rgb->green = 179; + rgb->blue = 179; return; } if(strcmp(color, "gray71") == 0) { rgb->red = 181; rgb->green = 181; - rgb->green = 181; + rgb->blue = 181; return; } if(strcmp(color, "grey71") == 0) { rgb->red = 181; rgb->green = 181; - rgb->green = 181; + rgb->blue = 181; return; } if(strcmp(color, "gray72") == 0) { rgb->red = 184; rgb->green = 184; - rgb->green = 184; + rgb->blue = 184; return; } if(strcmp(color, "grey72") == 0) { rgb->red = 184; rgb->green = 184; - rgb->green = 184; + rgb->blue = 184; return; } if(strcmp(color, "gray73") == 0) { rgb->red = 186; rgb->green = 186; - rgb->green = 186; + rgb->blue = 186; return; } if(strcmp(color, "grey73") == 0) { rgb->red = 186; rgb->green = 186; - rgb->green = 186; + rgb->blue = 186; return; } if(strcmp(color, "gray74") == 0) { rgb->red = 189; rgb->green = 189; - rgb->green = 189; + rgb->blue = 189; return; } if(strcmp(color, "grey74") == 0) { rgb->red = 189; rgb->green = 189; - rgb->green = 189; + rgb->blue = 189; return; } if(strcmp(color, "gray75") == 0) { rgb->red = 191; rgb->green = 191; - rgb->green = 191; + rgb->blue = 191; return; } if(strcmp(color, "grey75") == 0) { rgb->red = 191; rgb->green = 191; - rgb->green = 191; + rgb->blue = 191; return; } if(strcmp(color, "gray76") == 0) { rgb->red = 194; rgb->green = 194; - rgb->green = 194; + rgb->blue = 194; return; } if(strcmp(color, "grey76") == 0) { rgb->red = 194; rgb->green = 194; - rgb->green = 194; + rgb->blue = 194; return; } if(strcmp(color, "gray77") == 0) { rgb->red = 196; rgb->green = 196; - rgb->green = 196; + rgb->blue = 196; return; } if(strcmp(color, "grey77") == 0) { rgb->red = 196; rgb->green = 196; - rgb->green = 196; + rgb->blue = 196; return; } if(strcmp(color, "gray78") == 0) { rgb->red = 199; rgb->green = 199; - rgb->green = 199; + rgb->blue = 199; return; } if(strcmp(color, "grey78") == 0) { rgb->red = 199; rgb->green = 199; - rgb->green = 199; + rgb->blue = 199; return; } if(strcmp(color, "gray79") == 0) { rgb->red = 201; rgb->green = 201; - rgb->green = 201; + rgb->blue = 201; return; } if(strcmp(color, "grey79") == 0) { rgb->red = 201; rgb->green = 201; - rgb->green = 201; + rgb->blue = 201; return; } if(strcmp(color, "gray80") == 0) { rgb->red = 204; rgb->green = 204; - rgb->green = 204; + rgb->blue = 204; return; } if(strcmp(color, "grey80") == 0) { rgb->red = 204; rgb->green = 204; - rgb->green = 204; + rgb->blue = 204; return; } if(strcmp(color, "gray81") == 0) { rgb->red = 207; rgb->green = 207; - rgb->green = 207; + rgb->blue = 207; return; } if(strcmp(color, "grey81") == 0) { rgb->red = 207; rgb->green = 207; - rgb->green = 207; + rgb->blue = 207; return; } if(strcmp(color, "gray82") == 0) { rgb->red = 209; rgb->green = 209; - rgb->green = 209; + rgb->blue = 209; return; } if(strcmp(color, "grey82") == 0) { rgb->red = 209; rgb->green = 209; - rgb->green = 209; + rgb->blue = 209; return; } if(strcmp(color, "gray83") == 0) { rgb->red = 212; rgb->green = 212; - rgb->green = 212; + rgb->blue = 212; return; } if(strcmp(color, "grey83") == 0) { rgb->red = 212; rgb->green = 212; - rgb->green = 212; + rgb->blue = 212; return; } if(strcmp(color, "gray84") == 0) { rgb->red = 214; rgb->green = 214; - rgb->green = 214; + rgb->blue = 214; return; } if(strcmp(color, "grey84") == 0) { rgb->red = 214; rgb->green = 214; - rgb->green = 214; + rgb->blue = 214; return; } if(strcmp(color, "gray85") == 0) { rgb->red = 217; rgb->green = 217; - rgb->green = 217; + rgb->blue = 217; return; } if(strcmp(color, "grey85") == 0) { rgb->red = 217; rgb->green = 217; - rgb->green = 217; + rgb->blue = 217; return; } if(strcmp(color, "gray86") == 0) { rgb->red = 219; rgb->green = 219; - rgb->green = 219; + rgb->blue = 219; return; } if(strcmp(color, "grey86") == 0) { rgb->red = 219; rgb->green = 219; - rgb->green = 219; + rgb->blue = 219; return; } if(strcmp(color, "gray87") == 0) { rgb->red = 222; rgb->green = 222; - rgb->green = 222; + rgb->blue = 222; return; } if(strcmp(color, "grey87") == 0) { rgb->red = 222; rgb->green = 222; - rgb->green = 222; + rgb->blue = 222; return; } if(strcmp(color, "gray88") == 0) { rgb->red = 224; rgb->green = 224; - rgb->green = 224; + rgb->blue = 224; return; } if(strcmp(color, "grey88") == 0) { rgb->red = 224; rgb->green = 224; - rgb->green = 224; + rgb->blue = 224; return; } if(strcmp(color, "gray89") == 0) { rgb->red = 227; rgb->green = 227; - rgb->green = 227; + rgb->blue = 227; return; } if(strcmp(color, "grey89") == 0) { rgb->red = 227; rgb->green = 227; - rgb->green = 227; + rgb->blue = 227; return; } if(strcmp(color, "gray90") == 0) { rgb->red = 229; rgb->green = 229; - rgb->green = 229; + rgb->blue = 229; return; } if(strcmp(color, "grey90") == 0) { rgb->red = 229; rgb->green = 229; - rgb->green = 229; + rgb->blue = 229; return; } if(strcmp(color, "gray91") == 0) { rgb->red = 232; rgb->green = 232; - rgb->green = 232; + rgb->blue = 232; return; } if(strcmp(color, "grey91") == 0) { rgb->red = 232; rgb->green = 232; - rgb->green = 232; + rgb->blue = 232; return; } if(strcmp(color, "gray92") == 0) { rgb->red = 235; rgb->green = 235; - rgb->green = 235; + rgb->blue = 235; return; } if(strcmp(color, "grey92") == 0) { rgb->red = 235; rgb->green = 235; - rgb->green = 235; + rgb->blue = 235; return; } if(strcmp(color, "gray93") == 0) { rgb->red = 237; rgb->green = 237; - rgb->green = 237; + rgb->blue = 237; return; } if(strcmp(color, "grey93") == 0) { rgb->red = 237; rgb->green = 237; - rgb->green = 237; + rgb->blue = 237; return; } if(strcmp(color, "gray94") == 0) { rgb->red = 240; rgb->green = 240; - rgb->green = 240; + rgb->blue = 240; return; } if(strcmp(color, "grey94") == 0) { rgb->red = 240; rgb->green = 240; - rgb->green = 240; + rgb->blue = 240; return; } if(strcmp(color, "gray95") == 0) { rgb->red = 242; rgb->green = 242; - rgb->green = 242; + rgb->blue = 242; return; } if(strcmp(color, "grey95") == 0) { rgb->red = 242; rgb->green = 242; - rgb->green = 242; + rgb->blue = 242; return; } if(strcmp(color, "gray96") == 0) { rgb->red = 245; rgb->green = 245; - rgb->green = 245; + rgb->blue = 245; return; } if(strcmp(color, "grey96") == 0) { rgb->red = 245; rgb->green = 245; - rgb->green = 245; + rgb->blue = 245; return; } if(strcmp(color, "gray97") == 0) { rgb->red = 247; rgb->green = 247; - rgb->green = 247; + rgb->blue = 247; return; } if(strcmp(color, "grey97") == 0) { rgb->red = 247; rgb->green = 247; - rgb->green = 247; + rgb->blue = 247; return; } if(strcmp(color, "gray98") == 0) { rgb->red = 250; rgb->green = 250; - rgb->green = 250; + rgb->blue = 250; return; } if(strcmp(color, "grey98") == 0) { rgb->red = 250; rgb->green = 250; - rgb->green = 250; + rgb->blue = 250; return; } if(strcmp(color, "gray99") == 0) { rgb->red = 252; rgb->green = 252; - rgb->green = 252; + rgb->blue = 252; return; } if(strcmp(color, "grey99") == 0) { rgb->red = 252; rgb->green = 252; - rgb->green = 252; + rgb->blue = 252; return; } if(strcmp(color, "gray100") == 0) { rgb->red = 255; rgb->green = 255; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "grey100") == 0) { rgb->red = 255; rgb->green = 255; - rgb->green = 255; + rgb->blue = 255; return; } if(strcmp(color, "dark grey") == 0) { rgb->red = 169; rgb->green = 169; - rgb->green = 169; + rgb->blue = 169; return; } if(strcmp(color, "DarkGrey") == 0) { rgb->red = 169; rgb->green = 169; - rgb->green = 169; + rgb->blue = 169; return; } if(strcmp(color, "dark gray") == 0) { rgb->red = 169; rgb->green = 169; - rgb->green = 169; + rgb->blue = 169; return; } if(strcmp(color, "DarkGray") == 0) { rgb->red = 169; rgb->green = 169; - rgb->green = 169; + rgb->blue = 169; return; } if(strcmp(color, "dark blue") == 0) { rgb->red = 0; rgb->green = 0; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "DarkBlue") == 0) { rgb->red = 0; rgb->green = 0; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "dark cyan") == 0) { rgb->red = 0; rgb->green = 139; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "DarkCyan") == 0) { rgb->red = 0; rgb->green = 139; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "dark magenta") == 0) { rgb->red = 139; rgb->green = 0; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "DarkMagenta") == 0) { rgb->red = 139; rgb->green = 0; - rgb->green = 139; + rgb->blue = 139; return; } if(strcmp(color, "dark red") == 0) { rgb->red = 139; rgb->green = 0; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "DarkRed") == 0) { rgb->red = 139; rgb->green = 0; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "light green") == 0) { rgb->red = 144; rgb->green = 238; - rgb->green = 144; + rgb->blue = 144; return; } if(strcmp(color, "LightGreen") == 0) { rgb->red = 144; rgb->green = 238; - rgb->green = 144; + rgb->blue = 144; return; } if(strcmp(color, "crimson") == 0) { rgb->red = 220; rgb->green = 20; - rgb->green = 60; + rgb->blue = 60; return; } if(strcmp(color, "indigo") == 0) { rgb->red = 75; rgb->green = 0; - rgb->green = 130; + rgb->blue = 130; return; } if(strcmp(color, "olive") == 0) { rgb->red = 128; rgb->green = 128; - rgb->green = 0; + rgb->blue = 0; return; } if(strcmp(color, "rebecca purple") == 0) { rgb->red = 102; rgb->green = 51; - rgb->green = 153; + rgb->blue = 153; return; } if(strcmp(color, "RebeccaPurple") == 0) { rgb->red = 102; rgb->green = 51; - rgb->green = 153; + rgb->blue = 153; return; } if(strcmp(color, "silver") == 0) { rgb->red = 192; rgb->green = 192; - rgb->green = 192; + rgb->blue = 192; return; } if(strcmp(color, "teal") == 0) { rgb->red = 0; rgb->green = 128; - rgb->green = 128; + rgb->blue = 128; return; } rgb->red = 0; diff --git a/tools/color.pl b/tools/color.pl index 623e972be..e872ead23 100755 --- a/tools/color.pl +++ b/tools/color.pl @@ -20,7 +20,7 @@ while (my $l = ) { print(OUT " if(strcmp(color, \"$4\") == 0){\n"); print(OUT " rgb->red = $1;\n"); print(OUT " rgb->green = $2;\n"); - print(OUT " rgb->green = $3;\n"); + print(OUT " rgb->blue = $3;\n"); print(OUT " return;\n"); print(OUT " }\n"); } From 224fc48ecd4b8fcb933be49cedc9c478cc4e91d6 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 17 Dec 2025 21:37:01 +0900 Subject: [PATCH 024/836] yes --- src/widget/box.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widget/box.c b/src/widget/box.c index 17e22305d..e2808c4ea 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -77,7 +77,7 @@ static void prop_change(MwWidget handle, const char* key) { static void children_prop_change(MwWidget handle, MwWidget child, const char* key) { (void)child; - if(strcmp(key, MwNratio) == 0) layout(handle); + if(strcmp(key, MwNratio) == 0 || strcmp(key, MwNfixedSize) == 0) layout(handle); } static void resize(MwWidget handle) { From 1907dd5d494bf0d7f8faf490c1f3814c80591929 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 18 Dec 2025 10:57:10 +0900 Subject: [PATCH 025/836] optimization --- src/draw.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/draw.c b/src/draw.c index 636dc7874..714a20e1a 100644 --- a/src/draw.c +++ b/src/draw.c @@ -104,28 +104,25 @@ void MwDrawRect(MwWidget handle, MwRect* rect, MwLLColor color) { void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color) { MwLLPixmap pixmap; int y; - int x; double darken = 0.; int ColorDiff = get_color_diff(handle); - double darkenStep = (ColorDiff / 2.) / rect->height; - unsigned long sz = rect->width * rect->height * 4; + double darkenStep = (ColorDiff / 2. / 2) / rect->height; + unsigned long sz = 1 * rect->height * 4; unsigned char* data = malloc(sz); memset(data, 0, sz); for(y = 0; y < rect->height; y++) { MwLLColor col = MwLightenColor(handle, color, -darken, -darken, -darken); - for(x = 0; x < rect->width; x++) { - int idx = ((y * rect->width) + x) * 4; - data[idx] = col->common.red; - data[idx + 1] = col->common.green; - data[idx + 2] = col->common.blue; - data[idx + 3] = 255; - } + int idx = y * 4; + data[idx] = col->common.red; + data[idx + 1] = col->common.green; + data[idx + 2] = col->common.blue; + data[idx + 3] = 255; MwLLFreeColor(col); darken += darkenStep; } - pixmap = MwLLCreatePixmap(handle->lowlevel, data, rect->width / 4, rect->height); + pixmap = MwLLCreatePixmap(handle->lowlevel, data, 1, rect->height); MwLLDrawPixmap(handle->lowlevel, rect, pixmap); MwLLDestroyPixmap(pixmap); From d117241ba740f37ab1b479b15e201e61471b14c0 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 18 Dec 2025 11:08:23 +0900 Subject: [PATCH 026/836] math --- src/draw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/draw.c b/src/draw.c index 714a20e1a..24e5785aa 100644 --- a/src/draw.c +++ b/src/draw.c @@ -106,7 +106,7 @@ void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color) { int y; double darken = 0.; int ColorDiff = get_color_diff(handle); - double darkenStep = (ColorDiff / 2. / 2) / rect->height; + double darkenStep = (ColorDiff / 4.) / rect->height; unsigned long sz = 1 * rect->height * 4; unsigned char* data = malloc(sz); memset(data, 0, sz); From 320de34ce8d280cd01e1327ce3e3e2a6f6d8ea81 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 17 Dec 2025 19:14:54 -0700 Subject: [PATCH 027/836] remove opengl from wayland in favor of cairo --- Makefile.pl | 6 +- include/Mw/LowLevel/Wayland.h | 57 ++-- pl/ostype/Linux.pl | 7 +- pl/rules.pl | 12 +- src/backend/wayland.c | 540 ++++++++++++---------------------- src/widget/frame.c | 1 - src/widget/listbox.c | 1 - src/widget/opengl.c | 22 +- 8 files changed, 242 insertions(+), 404 deletions(-) diff --git a/Makefile.pl b/Makefile.pl index c00ca62b9..ea9f90cb5 100755 --- a/Makefile.pl +++ b/Makefile.pl @@ -56,14 +56,16 @@ my %features = ( "vulkan" => "build Vulkan widget", "vulkan-string-helper" => "use Vulkan string helper", "shared" => "build shared library", - "static" => "build static library" + "static" => "build static library", + "experimental-wayland" => "enable WIP wayland backend", ); my @features_keys = ( "1classic-theme", "1stb-image", "1stb-truetype", "1freetype2", "1opengl", "2xrender", "1vulkan", "2vulkan-string-helper", - "1shared", "1static" + "1shared", "1static", + "1experimental-wayland" ); foreach my $l (@ARGV) { diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index af80f4762..32f6547b2 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -12,13 +12,10 @@ #include #include -#include -#include -#include -#include #include #include +#include MWDECL int MwLLWaylandCallInit(void); @@ -53,15 +50,27 @@ struct _MwLLWaylandTopLevel { MwBool xdg_surface_created; }; +struct _MwLLWaylandSublevel { + struct wl_subsurface* subsurface; + struct wl_subcompositor* subcompositor; + + MwLL parent; + MwLL topmost_parent; /* The parent at the top of all the other parents. Usually a toplevel. */ +}; + struct _MwLLWayland { struct _MwLLCommon common; - /* Pointer for data that's only loaded if the widget is a toplevel */ - struct _MwLLWaylandTopLevel* toplevel; + union { + /* Pointer for data that's only loaded if the widget is a toplevel */ + struct _MwLLWaylandTopLevel* toplevel; + /* Pointer for data that's only loaded if the widget is a sublevel */ + struct _MwLLWaylandSublevel* sublevel; + }; enum { MWLL_WAYLAND_TOPLEVEL = 0, - MWLL_WAYLAND_SUBLEVEL = 1, /* Sublevels are surfaces that have the toplevel as a parent. They could be implemented as subsurfaces if we ever switch away from OpenGL. Some parts of the code also call them subwidgets. */ + MWLL_WAYLAND_SUBLEVEL, /* Sublevels are surfaces that have the toplevel as a parent. Some parts of the code also call them subwidgets. */ } type; /* Map of Wayland interfaces to their relevant setup functions. */ @@ -79,33 +88,25 @@ struct _MwLLWayland { struct wl_display* display; struct wl_registry* registry; struct wl_compositor* compositor; - struct wl_subcompositor* subcompositor; struct wl_surface* surface; struct wl_registry_listener registry_listener; - struct wl_event_queue* event_queue; - - EGLNativeWindowType egl_window_native; - EGLDisplay egl_display; - EGLContext egl_context; - EGLSurface egl_surface; - EGLConfig egl_config; + /*struct wl_event_queue* event_queue;*/ MwLL* sublevels; /* stb_ds managed array of any sublevels */ MwBool configured; /* Whether or not xdg_toplevel_configure has run once */ - MwBool egl_setup; /* Whether or not EGL has been set up */ - MwBool has_set_xy /* Whether or not MwSetXY has been called */; - int resize_counter; /* Counter that's for a hack in event_loop */ - MwU32 x, y, ww, wh; /* Window position */ - MwU32 lw, lh; /* Last known window position */ - MwPoint cur_mouse_pos; /* Currently known mouse position */ + MwU32 x, y, ww, wh; /* Window position */ + MwPoint cur_mouse_pos; /* Currently known mouse position */ - struct timeval timer; - MwU64 cooldown_timer; - MwU64 cooldown_timer_epoch; + struct wl_shm* shm; + struct wl_shm_pool* shm_pool; + struct wl_buffer* shm_buffer; + void* mapped_shm_buf; + MwU64 mapped_shm_buf_size; + int shm_fd; - MwLL parent; - MwLL topmost_parent; /* The parent at the top of all the other parents. Usually a toplevel. */ + cairo_surface_t* cs; + cairo_t* cairo; }; struct _MwLLWaylandColor { @@ -114,8 +115,8 @@ struct _MwLLWaylandColor { struct _MwLLWaylandPixmap { struct _MwLLCommonPixmap common; - GLuint texture; - MwBool texture_deleted; + + cairo_surface_t* cs; }; #endif diff --git a/pl/ostype/Linux.pl b/pl/ostype/Linux.pl index f695e4f7f..155cd4aaf 100644 --- a/pl/ostype/Linux.pl +++ b/pl/ostype/Linux.pl @@ -1,3 +1,8 @@ -use_backend("x11"); +if (param_get("experimental-wayland")) { + use_backend("wayland", "x11"); +} +else { + use_backend("x11"); +} 1; diff --git a/pl/rules.pl b/pl/rules.pl index f8aec46d6..5cb4a90a2 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -29,21 +29,15 @@ if (grep(/^gdi$/, @backends)) { if (grep(/^wayland$/, @backends)) { add_cflags("-DUSE_WAYLAND"); new_object("src/backend/wayland.c"); - if ($cross) { - add_libs("-lGL -lEGL -lwayland-egl -lwayland-client -lxkbcommon"); - } - else { - add_libs("-lGL -lEGL"); - add_cflags(`pkg-config --cflags wayland-egl wayland-client xkbcommon`); - add_libs(`pkg-config --libs wayland-egl wayland-client xkbcommon`); - } + add_cflags(`pkg-config --cflags cairo wayland-client xkbcommon`); + add_libs(`pkg-config --libs cairo wayland-client xkbcommon`); scan_wayland_protocol("stable", "xdg-shell", ""); scan_wayland_protocol("stable", "tablet", "-v2"); scan_wayland_protocol("staging", "cursor-shape", "-v1"); scan_wayland_protocol("unstable", "xdg-decoration", "-unstable-v1"); - $gl_libs = "-lGL -lGLU"; + $gl_libs = "-lEGL -lwayland-egl lGL -lGLU"; } if (param_get("stb-image")) { diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 307e1ee70..83e7439c9 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -6,7 +6,6 @@ #include "../../external/stb_ds.h" #include -#include #include /* TODO: find out what FreeBSD and such wants us to include */ @@ -18,19 +17,6 @@ #include #endif -/* - * TODO: - * make sure MwLLDestroy is finished (+ handle dropdown bug that results from it) - * GNOME doesn't want to support zxdg_decoration_protocol so we're gonna design some Windows 95 ass ui just for that window manager. - * finish the rest of the owl - */ - -/* - * Redraw `handle` if the given cooldown hasn't expired (`time` >= `cooldown_timer` + `cooldown)). - * Used for pointer callbacks, resize callbacks, etc. to ensure we only resize every x milliseconds - */ -static void timed_redraw(MwLL handle, MwU32 time, int cooldown, MwU64* cooldown_timer); - /* Get the registered interface from r, or NULL if it doesn't currently have it. */ #define WAYLAND_GET_INTERFACE(handle, inter) shget(handle.wl_protocol_map, inter##_interface.name) @@ -59,13 +45,11 @@ static void protocol_removed(void* data, /* `wl_pointer.enter` callback */ static void pointer_enter(void* data, struct wl_pointer* wl_pointer, MwU32 serial, struct wl_surface* surface, wl_fixed_t surface_x, - wl_fixed_t surface_y) { -}; + wl_fixed_t surface_y) {}; /* `wl_pointer.leave` callback */ static void pointer_leave(void* data, struct wl_pointer* wl_pointer, MwU32 serial, - struct wl_surface* surface) { -}; + struct wl_surface* surface) {}; /* `wl_pointer.motion` callback */ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time, @@ -78,7 +62,7 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time p.point = self->wayland.cur_mouse_pos; MwLLDispatch(self, move, &p); - timed_redraw(self, time, 50, &self->wayland.cooldown_timer); + /*timed_redraw(self, time, 50, &self->wayland.cooldown_timer);*/ }; /* `wl_pointer.button` callback */ @@ -107,6 +91,7 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri break; } } + MwLLDispatch(self, draw, NULL); }; @@ -144,17 +129,6 @@ static void recursive_key_released(MwLL handle, void* ud) { } } -/* Recursively dispatch the draw event to `handle` and its children */ -static void recursive_draw(MwLL handle) { - int i; - if(handle->wayland.sublevels != NULL) { - for(i = 0; i < arrlen(handle->wayland.sublevels); i++) { - MwLLDispatch(handle->wayland.sublevels[i], draw, NULL); - recursive_draw(handle->wayland.sublevels[i]); - } - } -} - /* `wl_keyboard.keymap` callback */ static void keyboard_keymap(void* data, struct wl_keyboard* wl_keyboard, @@ -350,7 +324,7 @@ static wayland_protocol_t* wl_compositor_setup(MwU32 name, struct _MwLLWayland* /* wl_subcompositor setup function */ static wayland_protocol_t* wl_subcompositor_setup(MwU32 name, struct _MwLLWayland* wayland) { - wayland->subcompositor = wl_registry_bind(wayland->registry, name, &wl_subcompositor_interface, 1); + wayland->sublevel->subcompositor = wl_registry_bind(wayland->registry, name, &wl_subcompositor_interface, 1); return NULL; } @@ -398,129 +372,6 @@ static wayland_protocol_t* zxdg_decoration_manager_v1_setup(MwU32 name, struct _ return proto; } -/* EGL Setup function */ -static MwBool egl_setup(MwLL self, int x, int y, int width, int height) { - int err; - EGLint numConfigs; - EGLint majorVersion; - EGLint minorVersion; - EGLContext context; - EGLSurface surface; - EGLint fbAttribs[] = - { - EGL_SURFACE_TYPE, EGL_WINDOW_BIT, - EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, - EGL_RED_SIZE, 8, - EGL_GREEN_SIZE, 8, - EGL_BLUE_SIZE, 8, - EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, - EGL_NONE}; - EGLint contextAttribs[] = { - EGL_CONTEXT_CLIENT_VERSION, 1, - EGL_CONTEXT_MAJOR_VERSION, 1, - EGL_CONTEXT_MINOR_VERSION, 1, - EGL_NONE}; - - EGLDisplay display; - display = eglGetDisplay(self->wayland.display); - if(display == EGL_NO_DISPLAY) { - printf("ERROR: eglGetDisplay, %0X\n", eglGetError()); - return MwFALSE; - } - /* Initialize EGL */ - if(!eglInitialize(display, &majorVersion, &minorVersion)) { - printf("ERROR: eglInitialize, %0X\n", eglGetError()); - return MwFALSE; - } - - /* Get configs */ - if((eglGetConfigs(display, NULL, 0, &numConfigs) != EGL_TRUE) || (numConfigs == 0)) { - printf("ERROR: eglGetConfigs, %0X\n", eglGetError()); - return MwFALSE; - } - - /* Choose config */ - if((eglChooseConfig(display, fbAttribs, &self->wayland.egl_config, 1, &numConfigs) != EGL_TRUE) || (numConfigs != 1)) { - printf("ERROR: eglChooseConfig, %0X\n", eglGetError()); - return MwFALSE; - } - - self->wayland.egl_window_native = - wl_egl_window_create(self->wayland.surface, width, height); - if(self->wayland.egl_window_native == EGL_NO_SURFACE) { - printf("ERROR: wl_egl_window_create, EGL_NO_SURFACE\n"); - return MwFALSE; - } - - /* Create a surface */ - surface = eglCreateWindowSurface(display, self->wayland.egl_config, self->wayland.egl_window_native, NULL); - if(surface == EGL_NO_SURFACE) { - printf("ERROR: eglCreateWindowSurface, %0X\n", eglGetError()); - return MwFALSE; - } - - eglBindAPI(EGL_OPENGL_API); - - /* Create a GL context */ - context = eglCreateContext(display, self->wayland.egl_config, EGL_NO_CONTEXT, contextAttribs); - if(context == EGL_NO_CONTEXT) { - printf("ERROR: eglCreateContext, %0X\n", eglGetError()); - return MwFALSE; - } - - self->wayland.egl_display = display; - self->wayland.egl_surface = surface; - self->wayland.egl_context = context; - - if(self->wayland.parent == NULL) { - if(!eglMakeCurrent(self->wayland.egl_display, self->wayland.egl_surface, self->wayland.egl_surface, self->wayland.egl_context)) { - printf("ERROR: eglMakeCurrent, %0X\n", eglGetError()); - } - } - - glEnable(GL_TEXTURE_2D); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glEnable(GL_BLEND); - glEnable(GL_SCISSOR_TEST); - - return MwTRUE; -} - -/* EGL reconfiguration function for resizes */ -static void egl_resetup(MwLL handle) { - float w, h; - - if(handle->wayland.parent == NULL) { - w = handle->wayland.ww; - h = handle->wayland.wh; - } else { - w = handle->wayland.parent->wayland.ww; - h = handle->wayland.parent->wayland.wh; - } - - glViewport(handle->wayland.x, handle->wayland.y, w, h); - glScissor(handle->wayland.x, handle->wayland.y, w, h); -} - -static void timed_redraw(MwLL handle, MwU32 time, int cooldown, MwU64* cooldown_timer) { - if(handle->wayland.parent == NULL) { - if(time >= (*cooldown_timer + cooldown)) { - egl_resetup(handle); - MwLLDispatch(handle, draw, NULL); - *cooldown_timer = time; - } - } -} - -/* Same as timed_redraw but it uses the unix epoch as the cooldown timer. */ -static void timed_redraw_by_epoch(MwLL handle, int cooldown) { - gettimeofday(&handle->wayland.timer, NULL); - unsigned long long time = - (unsigned long long)(handle->wayland.timer.tv_sec) * 1000 + - (unsigned long long)(handle->wayland.timer.tv_usec) / 1000; - timed_redraw(handle, time, cooldown, &handle->wayland.cooldown_timer_epoch); -} - /* `xdg_toplevel.close` callback */ static void xdg_toplevel_configure(void* data, struct xdg_toplevel* xdg_toplevel, @@ -541,14 +392,20 @@ static void xdg_toplevel_configure(void* data, self->wayland.wh = height; xdg_surface_set_window_geometry(self->wayland.toplevel->xdg_surface, 0, 0, self->wayland.ww, self->wayland.wh); - MwLLDispatch(self, resize, NULL); + cairo_destroy(self->wayland.cairo); + cairo_surface_destroy(self->wayland.cs); + self->wayland.cs = cairo_image_surface_create_for_data(self->wayland.mapped_shm_buf, CAIRO_FORMAT_ARGB32, width, height, 4 * width); + self->wayland.cairo = cairo_create(self->wayland.cs); - if(!self->wayland.egl_setup) { + MwLLDispatch(self, resize, NULL); + MwLLDispatch(self, draw, NULL); + + /*if(!self->wayland.egl_setup) { self->wayland.egl_setup = egl_setup(self, self->wayland.x, self->wayland.y, width, height); } else { wl_egl_window_resize(self->wayland.egl_window_native, width, height, 0, 0); egl_resetup(self); - } + }*/ return; }; @@ -580,6 +437,58 @@ static void xdg_surface_configure( self->wayland.configured = MwTRUE; } +/* wl_shm setup function */ +static wayland_protocol_t* wl_shm_setup(MwU32 name, struct _MwLLWayland* wayland) { + int x, y; + int stride = wayland->ww * 4; + char temp_name[] = "/tmp/milsko-wl-shm-XXXXXX"; + + wayland->mapped_shm_buf_size = wayland->ww * wayland->wh * 4; + + wayland->shm = wl_registry_bind(wayland->registry, name, &wl_shm_interface, 1); + + wayland->shm_fd = mkstemp(temp_name); + + unlink(temp_name); + + if(posix_fallocate(wayland->shm_fd, 0, wayland->mapped_shm_buf_size) != 0) { + printf("failure setting up wl_shm: could not fallocate. %s.\n", strerror(errno)); + close(wayland->shm_fd); + return NULL; + } + if(ftruncate(wayland->shm_fd, wayland->mapped_shm_buf_size) != 0) { + printf("failure setting up wl_shm: could not truncate. %s.\n", strerror(errno)); + close(wayland->shm_fd); + return NULL; + } + + wayland->mapped_shm_buf = mmap(NULL, wayland->mapped_shm_buf_size, PROT_WRITE, MAP_SHARED, wayland->shm_fd, 0); + + fsync(wayland->shm_fd); + + if(!(wayland->shm_pool = wl_shm_create_pool(wayland->shm, wayland->shm_fd, wayland->mapped_shm_buf_size))) { + printf("failure setting up wl_shm: could not create pool.\n"); + } + + wayland->shm_buffer = wl_shm_pool_create_buffer(wayland->shm_pool, 0, wayland->ww, wayland->wh, stride, WL_SHM_FORMAT_ARGB8888); + + if(wayland->configured) { + wl_surface_attach(wayland->surface, wayland->shm_buffer, 0, 0); + wl_surface_commit(wayland->surface); + } + + return NULL; +} + +static void update_buffer(MwLL handle) { + fsync(handle->wayland.shm_fd); + + if(handle->wayland.configured) { + wl_surface_attach(handle->wayland.surface, handle->wayland.shm_buffer, 0, 0); + wl_surface_commit(handle->wayland.surface); + } +} + /* Standard Wayland event loop. */ static int event_loop(MwLL handle) { enum { @@ -588,9 +497,8 @@ static int event_loop(MwLL handle) { CURSOR_FD }; struct pollfd fd; - int timeout = 100; - struct _MwLLWayland* wayland = &handle->wayland; - MwLL topmost_parent = handle->wayland.parent; + int timeout = 1; + struct _MwLLWayland* wayland = &handle->wayland; if(wayland->display == NULL) { return 0; @@ -598,6 +506,12 @@ static int event_loop(MwLL handle) { fd.fd = wl_display_get_fd(wayland->display); fd.events = POLLIN; + while(wl_display_prepare_read(handle->wayland.display) != 0) { + if(wl_display_dispatch_pending(handle->wayland.display) > 0) { + return 0; + } + } + /* If an error other than EAGAIN happens, we have likely been disconnected from the Wayland session */ while(wl_display_flush(wayland->display) == -1) { if(errno != EAGAIN) { @@ -614,38 +528,27 @@ static int event_loop(MwLL handle) { } } + /* Condition where no events are being sent. */ + if(!poll(&fd, 1, timeout)) { + wl_display_cancel_read(handle->wayland.display); + /* In this case, we need to commit the surface for any animations, etc. */ + wl_surface_commit(handle->wayland.surface); + return 0; + } + if(fd.revents & POLLIN) { wl_display_read_events(wayland->display); if(wl_display_dispatch_pending(wayland->display) > 0) { } } else { - /* Condition for no events being sent */ - if(wl_display_dispatch_pending(wayland->display) == 0) { - if(wayland->event_queue != NULL) { - if(wl_display_roundtrip_queue(wayland->display, wayland->event_queue) < 0) { - printf("error\n"); - }; - } - /* HACK: If the last known size is different, force a redraw */ - if(wayland->lw != wayland->ww || wayland->lh != wayland->wh) { - MwLLDispatch(handle, draw, 0); - wayland->resize_counter++; - if(wayland->resize_counter >= 5) { - wayland->lw = wayland->ww; - wayland->lh = wayland->wh; - wayland->lh = wayland->wh; - wayland->resize_counter = 0; - } - } - } + wl_display_cancel_read(handle->wayland.display); } - return 0; + return 1; } /* Function for setting up the callbacks/structs that will be registered upon the relevant interfaces being found. */ static void setup_callbacks(struct _MwLLWayland* wayland) { - /* Convience macro for adding the interface functions to the setup map */ #define WL_INTERFACE(interface) \ shput(wayland->wl_protocol_setup_map, interface##_interface.name, (wl_setup_func*)interface##_setup); @@ -655,13 +558,15 @@ static void setup_callbacks(struct _MwLLWayland* wayland) { wayland->wl_protocol_setup_map = NULL; wayland->wl_protocol_map = NULL; + WL_INTERFACE(wl_shm); WL_INTERFACE(wl_compositor); - WL_INTERFACE(wl_subcompositor); WL_INTERFACE(wl_seat); if(wayland->type == MWLL_WAYLAND_TOPLEVEL) { WL_INTERFACE(xdg_wm_base); WL_INTERFACE(zxdg_decoration_manager_v1); WL_INTERFACE(wp_cursor_shape_manager_v1); + } else { + WL_INTERFACE(wl_subcompositor); } #undef WL_INTERFACE } @@ -670,9 +575,8 @@ static void setup_callbacks(struct _MwLLWayland* wayland) { static void setup_toplevel(MwLL r, int x, int y) { int i; - r->wayland.type = MWLL_WAYLAND_TOPLEVEL; - r->wayland.toplevel = malloc(sizeof(struct _MwLLWaylandTopLevel)); - r->wayland.topmost_parent = NULL; + r->wayland.type = MWLL_WAYLAND_TOPLEVEL; + r->wayland.toplevel = malloc(sizeof(struct _MwLLWaylandTopLevel)); setup_callbacks(&r->wayland); @@ -731,27 +635,17 @@ static void setup_toplevel(MwLL r, int x, int y) { printf("zxdg null\n"); } - r->wayland.event_queue = wl_display_create_queue(r->wayland.display); - - egl_resetup(r); + /*egl_resetup(r); MwLLDispatch(r, draw, NULL); - recursive_draw(r); + recursive_draw(r);*/ } /* Sublevel setup function */ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { - struct wl_compositor* compositor = parent->wayland.compositor; - struct wl_subcompositor* subcompositor = parent->wayland.subcompositor; - struct wl_surface* parent_surface = parent->wayland.surface; - struct wl_region* region; - { - MwLL topmost_parent = parent; + struct wl_compositor* compositor = parent->wayland.compositor; + struct wl_surface* parent_surface = parent->wayland.surface; - while(topmost_parent->wayland.type != MWLL_WAYLAND_TOPLEVEL) { - topmost_parent = topmost_parent->wayland.parent; - } - r->wayland.topmost_parent = topmost_parent; - } + r->wayland.sublevel = malloc(sizeof(struct _MwLLWaylandSublevel)); r->wayland.type = MWLL_WAYLAND_SUBLEVEL; @@ -759,17 +653,12 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { r->wayland.surface = wl_compositor_create_surface(compositor); - region = wl_compositor_create_region(compositor); - wl_region_add(region, 0, 0, r->wayland.ww, r->wayland.wh); - wl_surface_set_opaque_region(r->wayland.surface, region); - wl_surface_commit(r->wayland.surface); - event_loop(r); - wl_region_destroy(region); - setup_callbacks(&r->wayland); - r->wayland.registry = wl_display_get_registry(r->wayland.topmost_parent->wayland.display); - r->wayland.display = r->wayland.topmost_parent->wayland.display; + // printf("position %d %d\n", x, y); + + r->wayland.registry = wl_display_get_registry(parent->wayland.display); + r->wayland.display = parent->wayland.display; wl_registry_add_listener(r->wayland.registry, &r->wayland.registry_listener, r); if(wl_display_roundtrip(r->wayland.display) == -1) { @@ -778,23 +667,11 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { return; } + r->wayland.sublevel->subsurface = wl_subcompositor_get_subsurface(r->wayland.sublevel->subcompositor, r->wayland.surface, parent_surface); + + wl_subsurface_set_position(r->wayland.sublevel->subsurface, x, y); + r->wayland.configured = MwTRUE; - if(!r->wayland.egl_setup) { - r->wayland.egl_setup = egl_setup(r, r->wayland.x, r->wayland.y, r->wayland.ww, r->wayland.wh); - egl_resetup(r); - MwLLDispatch(r, draw, NULL); - recursive_draw(r); - }; - - r->wayland.event_queue = parent->wayland.event_queue; - - arrpush(parent->wayland.sublevels, r); - - wl_surface_damage(parent->wayland.surface, 0, 0, parent->wayland.ww, parent->wayland.wh); - - egl_resetup(r->wayland.topmost_parent); - MwLLDispatch(r->wayland.topmost_parent, draw, NULL); - recursive_draw(r->wayland.topmost_parent); } static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { @@ -804,8 +681,8 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->common.type = MwLLBackendWayland; - if(width == 0) width = 1; - if(height == 0) height = 1; + if(width < 2) width = 2; + if(height < 2) height = 2; if(x == MwDEFAULT) { x = 0; @@ -819,12 +696,6 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->wayland.x = x; r->wayland.y = y; - r->wayland.parent = parent; - - r->wayland.cooldown_timer = 0; - r->wayland.has_set_xy = MwFALSE; - r->wayland.resize_counter = 0; - r->wayland.sublevels = NULL; if(parent == NULL) { @@ -833,12 +704,29 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { setup_sublevel(parent, r, x, y); } + /* example of writing to the buffer */ + memset(r->wayland.mapped_shm_buf, 255, r->wayland.mapped_shm_buf_size); + update_buffer(r); + + r->wayland.cs = cairo_image_surface_create_for_data(r->wayland.mapped_shm_buf, CAIRO_FORMAT_ARGB32, width, height, 4 * width); + r->wayland.cairo = cairo_create(r->wayland.cs); + + MwLLForceRender(r); + return r; } static void MwLLDestroyImpl(MwLL handle) { MwLLDestroyCommon(handle); + cairo_destroy(handle->wayland.cairo); + cairo_surface_destroy(handle->wayland.cs); + + munmap(handle->wayland.mapped_shm_buf, handle->wayland.mapped_shm_buf_size); + wl_buffer_destroy(handle->wayland.mapped_shm_buf); + wl_shm_pool_destroy(handle->wayland.shm_pool); + close(handle->wayland.shm_fd); + free(handle); } @@ -853,111 +741,74 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { if(handle->wayland.type != MWLL_WAYLAND_TOPLEVEL) { handle->wayland.x = x; handle->wayland.y = y; - if(handle->wayland.has_set_xy) { + /*if(handle->wayland.has_set_xy) { timed_redraw_by_epoch(handle->wayland.topmost_parent, 25); - /* recursive_draw(handle->wayland.topmost_parent); */ } else if(x != 0 && y != 0) { handle->wayland.has_set_xy = MwTRUE; - } + }*/ + + wl_subsurface_set_position(handle->wayland.sublevel->subsurface, x, y); } + MwLLDispatch(handle, draw, NULL); } static void MwLLSetWHImpl(MwLL handle, int w, int h) { /* Prevent an integer underflow when the w/h is too low */ if((w < 10 || h < 10)) { - handle->wayland.ww = handle->wayland.lw = 10; - handle->wayland.wh = handle->wayland.lh = 10; + handle->wayland.ww = 10; + handle->wayland.wh = 10; return; } - handle->wayland.ww = handle->wayland.lw = w; - handle->wayland.wh = handle->wayland.lh = h; + handle->wayland.ww = w; + handle->wayland.wh = h; if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { xdg_surface_set_window_geometry(handle->wayland.toplevel->xdg_surface, 0, 0, handle->wayland.ww, handle->wayland.wh); } else { - timed_redraw_by_epoch(handle->wayland.topmost_parent, 25); - /* recursive_draw(handle->wayland.topmost_parent); */ + /* timed_redraw_by_epoch(handle->wayland.topmost_parent, 25); + recursive_draw(handle->wayland.topmost_parent); */ } + MwLLDispatch(handle, draw, NULL); } static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { - int i, n; - float maxX = 0, maxY = 0; - float centerX, centerY; - float w, h; - - if(handle->wayland.parent == NULL) { - w = handle->wayland.ww; - h = handle->wayland.wh; - } else { - w = handle->wayland.topmost_parent->wayland.ww; - h = handle->wayland.topmost_parent->wayland.wh; - } - - glColor3f(color->common.red / 255.0, color->common.green / 255.0, color->common.blue / 255.0); - - glBegin(GL_POLYGON); + int i; + cairo_set_source_rgb(handle->wayland.cairo, color->common.red / 255.0, color->common.green / 255.0, color->common.blue / 255.0); + cairo_new_path(handle->wayland.cairo); for(i = 0; i < points_count; i++) { - float x = ((float)(handle->wayland.x + points[i].x) / (w / 2)) - 1.0; - float y = 1.0 - ((float)(handle->wayland.y + points[i].y) / (h / 2)); - - glVertex2f(x, y); + if(i == 0) { + cairo_move_to(handle->wayland.cairo, points[i].x, points[i].y); + } else { + cairo_line_to(handle->wayland.cairo, points[i].x, points[i].y); + } } - glEnd(); - glColor3f(0, 0, 0); + cairo_close_path(handle->wayland.cairo); + cairo_fill(handle->wayland.cairo); } static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { - int i; - float w, h; + int i; - if(handle->wayland.topmost_parent == NULL) { - w = handle->wayland.ww; - h = handle->wayland.wh; - } else { - w = handle->wayland.topmost_parent->wayland.ww; - h = handle->wayland.topmost_parent->wayland.wh; - } - - glLineWidth(1); - glColor3f(color->common.red / 255.0, color->common.green / 255.0, color->common.blue / 255.0); - - glBegin(GL_LINES); + cairo_set_line_cap(handle->wayland.cairo, CAIRO_LINE_CAP_SQUARE); + cairo_set_source_rgb(handle->wayland.cairo, color->common.red / 255.0, color->common.green / 255.0, color->common.blue / 255.0); + cairo_new_path(handle->wayland.cairo); for(i = 0; i < 2; i++) { - float x = ((float)(handle->wayland.x + points[i].x) / (w / 2)) - 1.0; - float y = 1.0 - ((float)(handle->wayland.y + points[i].y) / (h / 2)); - - glVertex2f(x, y); + if(i == 0) { + cairo_move_to(handle->wayland.cairo, points[i].x, points[i].y); + } else { + cairo_line_to(handle->wayland.cairo, points[i].x, points[i].y); + } } - glEnd(); - glColor3f(0, 0, 0); + cairo_close_path(handle->wayland.cairo); + cairo_stroke(handle->wayland.cairo); } static void MwLLBeginDrawImpl(MwLL handle) { - if(handle->wayland.parent == NULL) { - if(!eglMakeCurrent(handle->wayland.egl_display, handle->wayland.egl_surface, handle->wayland.egl_surface, handle->wayland.egl_context)) { - printf("ERROR: eglMakeCurrent, %0X\n", eglGetError()); - return; - } - } } static void MwLLEndDrawImpl(MwLL handle) { - int w, h; - - recursive_draw(handle); - - /* glClear(GL_COLOR_BUFFER_BIT); */ - /* glClearColor(1.0, 0, 0, 1); */ - - if(handle->wayland.parent == NULL) { - if(!eglSwapBuffers(handle->wayland.egl_display, handle->wayland.egl_surface)) { - printf("error swapping buffers! %0X\n", eglGetError()); - } else { - wl_surface_commit(handle->wayland.surface); - } - } + update_buffer(handle); } static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { @@ -981,8 +832,6 @@ static void MwLLFreeColorImpl(MwLLColor color) { } static int MwLLPendingImpl(MwLL handle) { - if(wl_display_dispatch_pending(handle->wayland.display) == 0) { - } return event_loop(handle); } @@ -998,19 +847,12 @@ static void MwLLSetTitleImpl(MwLL handle, const char* title) { static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) { MwLLPixmap r = malloc(sizeof(*r)); - r->common.width = width; - r->common.height = height; - r->common.raw = data; - r->wayland.texture = 0; + r->common.width = width; + r->common.height = height; + r->common.raw = malloc(4 * width * height); + memcpy(r->common.raw, data, 4 * width * height); - glGenTextures(1, &r->wayland.texture); - - glBindTexture(GL_TEXTURE_2D, r->wayland.texture); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - glBindTexture(GL_TEXTURE_2D, 0); + r->wayland.cs = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height); MwLLPixmapUpdate(r); @@ -1018,46 +860,48 @@ static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int wid } static void MwLLPixmapUpdateImpl(MwLLPixmap r) { - glBindTexture(GL_TEXTURE_2D, r->wayland.texture); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, r->common.width, r->common.height, 0, GL_RGBA, GL_UNSIGNED_BYTE, r->common.raw); - glBindTexture(GL_TEXTURE_2D, 0); + int i; + unsigned char* d; + + cairo_surface_flush(r->wayland.cs); + d = cairo_image_surface_get_data(r->wayland.cs); + for(i = 0; i < r->common.width * r->common.height * 4; i += 4) { + MwU32* p = (MwU32*)&d[i]; + *p <<= 8; + *p |= r->common.raw[i + 3]; + *p <<= 8; + *p |= r->common.raw[i + 0]; + *p <<= 8; + *p |= r->common.raw[i + 1]; + *p <<= 8; + *p |= r->common.raw[i + 2]; + } + cairo_surface_mark_dirty(r->wayland.cs); } static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { - glDeleteTextures(1, &pixmap->wayland.texture); + cairo_surface_destroy(pixmap->wayland.cs); + free(pixmap->common.raw); free(pixmap); } static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { - float x, y, w, h; + cairo_t* c; + cairo_surface_t* cs; - if(handle->wayland.topmost_parent == NULL) { - w = handle->wayland.ww; - h = handle->wayland.wh; - } else { - w = handle->wayland.topmost_parent->wayland.ww; - h = handle->wayland.topmost_parent->wayland.wh; - } + cs = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, rect->width, rect->height); + c = cairo_create(cs); - x = ((float)(handle->wayland.x + rect->x) / (w / 2)) - 1.0; - y = 1.0 - ((float)(handle->wayland.y + rect->y) / (h / 2)); + cairo_scale(c, (double)rect->width / pixmap->common.width, (double)rect->height / pixmap->common.height); + cairo_set_source_surface(c, pixmap->wayland.cs, 0, 0); + cairo_paint(c); - glColor3f(1.0, 1.0, 1.0); + cairo_set_source_rgb(handle->wayland.cairo, 1, 1, 1); + cairo_set_source_surface(handle->wayland.cairo, cs, rect->x, rect->y); + cairo_paint(handle->wayland.cairo); - glBindTexture(GL_TEXTURE_2D, pixmap->wayland.texture); - glActiveTexture(pixmap->wayland.texture); - - glBegin(GL_QUADS); - glTexCoord2f(0.0f, 0); - glVertex2f(x, y); - glTexCoord2f(1, 0); - glVertex2f(x + (rect->width / (w / 2)), y); - glTexCoord2f(1, 1); - glVertex2f(x + (rect->width / (w / 2)), y - (rect->height / (h / 2))); - glTexCoord2f(0.0f, 1); - glVertex2f(x, y - (rect->height / (h / 2))); - glEnd(); - glFinish(); + cairo_destroy(c); + cairo_surface_destroy(cs); } static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { } @@ -1065,9 +909,11 @@ static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { static void MwLLForceRenderImpl(MwLL handle) { wl_surface_damage(handle->wayland.surface, 0, 0, handle->wayland.ww, handle->wayland.wh); + /* if(handle->wayland.egl_setup) { timed_redraw_by_epoch(handle, 25); } + */ } static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { diff --git a/src/widget/frame.c b/src/widget/frame.c index 36085a6d6..d48c2874d 100644 --- a/src/widget/frame.c +++ b/src/widget/frame.c @@ -29,7 +29,6 @@ static void draw(MwWidget handle) { rr.width = MwGetInteger(handle, MwNwidth) - (MwDefaultBorderWidth(handle) * 2); rr.height = MwGetInteger(handle, MwNheight) - (MwDefaultBorderWidth(handle) * 2); } else { - rr.x = 0; rr.y = 0; rr.width = MwGetInteger(handle, MwNwidth); diff --git a/src/widget/listbox.c b/src/widget/listbox.c index 4141f485d..785468d06 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -258,7 +258,6 @@ static void frame_draw(MwWidget handle) { if(j == (arrlen(lb->list[i].name) - 1)) p.x -= MwDefaultBorderWidth(handle); if(arrlen(lb->alignment) <= j || lb->alignment[j] == MwALIGNMENT_BEGINNING) { - p.x += 4; MwDrawText(handle, &p, str, 0, MwALIGNMENT_BEGINNING, selected ? base2 : text2); p.x -= 4; diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 9481c49ce..19a7c4d10 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -1,12 +1,6 @@ #include #include -#ifdef USE_WAYLAND -#include -#include -#include -#endif - #ifdef USE_GDI typedef HGLRC(WINAPI* MWwglCreateContext)(HDC); typedef BOOL(WINAPI* MWwglMakeCurrent)(HDC, HGLRC); @@ -110,8 +104,8 @@ static int create(MwWidget handle) { } #endif #ifdef USE_WAYLAND - /* Wayland uses OpenGL as its backend so its already initialized */ if(handle->lowlevel->common.type == MwLLBackendWayland) { + /* todo */ } #endif @@ -146,7 +140,9 @@ static void destroy(MwWidget handle) { } #endif #ifdef USE_WAYLAND -/* Wayland uses OpenGL as its backend so its destroyed accordingly */ + if(handle->lowlevel->common.type == MwLLBackendWayland) { + /* todo */ + } #endif free(handle->internal); @@ -169,6 +165,7 @@ static void mwOpenGLMakeCurrentImpl(MwWidget handle) { #endif #ifdef USE_WAYLAND if(handle->lowlevel->common.type == MwLLBackendWayland) { + /* todo */ } #endif } @@ -189,14 +186,9 @@ static void mwOpenGLSwapBufferImpl(MwWidget handle) { } #endif #ifdef USE_WAYLAND -#define tp handle->lowlevel->wayland.topmost_parent->wayland if(handle->lowlevel->common.type == MwLLBackendWayland) { - if(!eglSwapBuffers( - tp.egl_display, tp.egl_surface)) { - printf("Userland error: eglSwapBuffers, %0X\n", eglGetError()); - } + /* todo */ } -#undef topmost_parent #endif } @@ -217,7 +209,7 @@ static void* mwOpenGLGetProcAddressImpl(MwWidget handle, const char* name) { #endif #ifdef USE_WAYLAND if(handle->lowlevel->common.type == MwLLBackendWayland) { - return eglGetProcAddress(name); + /* todo */ } #endif return NULL; From 724b0082206e6133c88b70969ab4b9c5817a105c Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 17 Dec 2025 19:41:05 -0700 Subject: [PATCH 028/836] impl resizing in wayland --- include/Mw/LowLevel/Wayland.h | 1 + src/backend/wayland.c | 71 +++++++++++++++++++++-------------- 2 files changed, 44 insertions(+), 28 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 32f6547b2..2a9b740a0 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -104,6 +104,7 @@ struct _MwLLWayland { void* mapped_shm_buf; MwU64 mapped_shm_buf_size; int shm_fd; + MwBool shm_setup; cairo_surface_t* cs; cairo_t* cairo; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 83e7439c9..96182874d 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -17,6 +17,11 @@ #include #endif +/* Setup the wl_shm buffer with the saved width/height */ +static void buffer_setup(struct _MwLLWayland* wayland); +/* Destroy the wl_shm buffer */ +static void buffer_destroy(struct _MwLLWayland* handle); + /* Get the registered interface from r, or NULL if it doesn't currently have it. */ #define WAYLAND_GET_INTERFACE(handle, inter) shget(handle.wl_protocol_map, inter##_interface.name) @@ -392,10 +397,8 @@ static void xdg_toplevel_configure(void* data, self->wayland.wh = height; xdg_surface_set_window_geometry(self->wayland.toplevel->xdg_surface, 0, 0, self->wayland.ww, self->wayland.wh); - cairo_destroy(self->wayland.cairo); - cairo_surface_destroy(self->wayland.cs); - self->wayland.cs = cairo_image_surface_create_for_data(self->wayland.mapped_shm_buf, CAIRO_FORMAT_ARGB32, width, height, 4 * width); - self->wayland.cairo = cairo_create(self->wayland.cs); + buffer_destroy(&self->wayland); + buffer_setup(&self->wayland); MwLLDispatch(self, resize, NULL); MwLLDispatch(self, draw, NULL); @@ -439,14 +442,28 @@ static void xdg_surface_configure( /* wl_shm setup function */ static wayland_protocol_t* wl_shm_setup(MwU32 name, struct _MwLLWayland* wayland) { + + wayland->shm = wl_registry_bind(wayland->registry, name, &wl_shm_interface, 1); + + return NULL; +} + +static void update_buffer(MwLL handle) { + fsync(handle->wayland.shm_fd); + + if(handle->wayland.configured) { + wl_surface_attach(handle->wayland.surface, handle->wayland.shm_buffer, 0, 0); + wl_surface_commit(handle->wayland.surface); + } +} + +static void buffer_setup(struct _MwLLWayland* wayland) { int x, y; int stride = wayland->ww * 4; char temp_name[] = "/tmp/milsko-wl-shm-XXXXXX"; wayland->mapped_shm_buf_size = wayland->ww * wayland->wh * 4; - wayland->shm = wl_registry_bind(wayland->registry, name, &wl_shm_interface, 1); - wayland->shm_fd = mkstemp(temp_name); unlink(temp_name); @@ -454,12 +471,12 @@ static wayland_protocol_t* wl_shm_setup(MwU32 name, struct _MwLLWayland* wayland if(posix_fallocate(wayland->shm_fd, 0, wayland->mapped_shm_buf_size) != 0) { printf("failure setting up wl_shm: could not fallocate. %s.\n", strerror(errno)); close(wayland->shm_fd); - return NULL; + return; } if(ftruncate(wayland->shm_fd, wayland->mapped_shm_buf_size) != 0) { printf("failure setting up wl_shm: could not truncate. %s.\n", strerror(errno)); close(wayland->shm_fd); - return NULL; + return; } wayland->mapped_shm_buf = mmap(NULL, wayland->mapped_shm_buf_size, PROT_WRITE, MAP_SHARED, wayland->shm_fd, 0); @@ -477,16 +494,25 @@ static wayland_protocol_t* wl_shm_setup(MwU32 name, struct _MwLLWayland* wayland wl_surface_commit(wayland->surface); } - return NULL; + wayland->cs = cairo_image_surface_create_for_data(wayland->mapped_shm_buf, CAIRO_FORMAT_ARGB32, wayland->ww, wayland->wh, 4 * wayland->ww); + wayland->cairo = cairo_create(wayland->cs); + + memset(wayland->mapped_shm_buf, 255, wayland->mapped_shm_buf_size); + update_buffer((MwLL)wayland); + wayland->shm_setup = MwTRUE; } -static void update_buffer(MwLL handle) { - fsync(handle->wayland.shm_fd); - - if(handle->wayland.configured) { - wl_surface_attach(handle->wayland.surface, handle->wayland.shm_buffer, 0, 0); - wl_surface_commit(handle->wayland.surface); +static void buffer_destroy(struct _MwLLWayland* wayland) { + if(!wayland->shm_setup) { + return; } + cairo_destroy(wayland->cairo); + cairo_surface_destroy(wayland->cs); + + wl_buffer_destroy(wayland->shm_buffer); + // munmap(wayland->mapped_shm_buf, wayland->mapped_shm_buf_size); + wl_shm_pool_destroy(wayland->shm_pool); + close(wayland->shm_fd); } /* Standard Wayland event loop. */ @@ -704,12 +730,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { setup_sublevel(parent, r, x, y); } - /* example of writing to the buffer */ - memset(r->wayland.mapped_shm_buf, 255, r->wayland.mapped_shm_buf_size); - update_buffer(r); - - r->wayland.cs = cairo_image_surface_create_for_data(r->wayland.mapped_shm_buf, CAIRO_FORMAT_ARGB32, width, height, 4 * width); - r->wayland.cairo = cairo_create(r->wayland.cs); + buffer_setup(&r->wayland); MwLLForceRender(r); @@ -719,13 +740,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { static void MwLLDestroyImpl(MwLL handle) { MwLLDestroyCommon(handle); - cairo_destroy(handle->wayland.cairo); - cairo_surface_destroy(handle->wayland.cs); - - munmap(handle->wayland.mapped_shm_buf, handle->wayland.mapped_shm_buf_size); - wl_buffer_destroy(handle->wayland.mapped_shm_buf); - wl_shm_pool_destroy(handle->wayland.shm_pool); - close(handle->wayland.shm_fd); + buffer_destroy(&handle->wayland); free(handle); } From b8a92f4ae0e7579b10b8de7676c1863baacb08a2 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 17 Dec 2025 19:44:15 -0700 Subject: [PATCH 029/836] wayland: buffer destroy/recreate in SetWHImpl too --- src/backend/wayland.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 96182874d..8c3267a64 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -779,10 +779,9 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { xdg_surface_set_window_geometry(handle->wayland.toplevel->xdg_surface, 0, 0, handle->wayland.ww, handle->wayland.wh); - } else { - /* timed_redraw_by_epoch(handle->wayland.topmost_parent, 25); - recursive_draw(handle->wayland.topmost_parent); */ } + buffer_destroy(&handle->wayland); + buffer_setup(&handle->wayland); MwLLDispatch(handle, draw, NULL); } From 72fbba1a7469d2f66cb2cece3cb5108299cedcf2 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 18 Dec 2025 12:24:06 +0900 Subject: [PATCH 030/836] force aliasing --- src/backend/wayland.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 8c3267a64..a6d003dd9 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -908,6 +908,7 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { cairo_scale(c, (double)rect->width / pixmap->common.width, (double)rect->height / pixmap->common.height); cairo_set_source_surface(c, pixmap->wayland.cs, 0, 0); + cairo_pattern_set_filter(cairo_get_source(c), CAIRO_FILTER_NEAREST); cairo_paint(c); cairo_set_source_rgb(handle->wayland.cairo, 1, 1, 1); From 012650f06f489d1219ba492118d2f35d25e93ce2 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 19 Dec 2025 01:36:37 +0900 Subject: [PATCH 031/836] tiny change --- include/Mw/Widget/OpenGL.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/Mw/Widget/OpenGL.h b/include/Mw/Widget/OpenGL.h index dced6b9a1..5e37c02d4 100644 --- a/include/Mw/Widget/OpenGL.h +++ b/include/Mw/Widget/OpenGL.h @@ -9,12 +9,14 @@ #include #include +#ifndef __gl_h_ #ifdef _WIN32 #include #else #include #endif #include +#endif #ifndef GLAPIENTRY #define GLAPIENTRY APIENTRY From c9c3a00ed3c7a05d713ea26b0fb66fd1d780f591 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 19 Dec 2025 02:55:30 +0900 Subject: [PATCH 032/836] unrelated changes --- include/Mw/Widget/OpenGL.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/Mw/Widget/OpenGL.h b/include/Mw/Widget/OpenGL.h index 5e37c02d4..3a063035a 100644 --- a/include/Mw/Widget/OpenGL.h +++ b/include/Mw/Widget/OpenGL.h @@ -16,11 +16,11 @@ #include #endif #include -#endif #ifndef GLAPIENTRY #define GLAPIENTRY APIENTRY #endif +#endif #ifdef __cplusplus extern "C" { From 75749697ba25330127fdca110fda9098d65719e3 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 19 Dec 2025 03:01:12 +0900 Subject: [PATCH 033/836] netbsd wants pthread. idk why --- pl/ostype/NetBSD.pl | 1 + 1 file changed, 1 insertion(+) diff --git a/pl/ostype/NetBSD.pl b/pl/ostype/NetBSD.pl index 2d816586a..de93b1439 100644 --- a/pl/ostype/NetBSD.pl +++ b/pl/ostype/NetBSD.pl @@ -2,5 +2,6 @@ add_incdir("-I/usr/X11R7/include -I/usr/pkg/include"); add_libdir( "-L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib"); use_backend("x11"); +add_libs("pthread"); 1; From a815998ace9b5e911b1ad484503c9203bcae7b7f Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 18 Dec 2025 11:26:51 -0700 Subject: [PATCH 034/836] wayland: fix pointer --- include/Mw/LowLevel/Wayland.h | 5 ++- src/backend/wayland.c | 58 +++++++++++++++++++++++++++-------- 2 files changed, 50 insertions(+), 13 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 2a9b740a0..950c258dc 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -90,6 +90,10 @@ struct _MwLLWayland { struct wl_compositor* compositor; struct wl_surface* surface; struct wl_registry_listener registry_listener; + struct wl_region* region; + + MwBool active; /* Whether or not the surface is the one being hovered over. */ + /*struct wl_event_queue* event_queue;*/ MwLL* sublevels; /* stb_ds managed array of any sublevels */ @@ -104,7 +108,6 @@ struct _MwLLWayland { void* mapped_shm_buf; MwU64 mapped_shm_buf_size; int shm_fd; - MwBool shm_setup; cairo_surface_t* cs; cairo_t* cairo; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index a6d003dd9..835f91d44 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -22,6 +22,9 @@ static void buffer_setup(struct _MwLLWayland* wayland); /* Destroy the wl_shm buffer */ static void buffer_destroy(struct _MwLLWayland* handle); +static void region_setup(MwLL handle); +static void region_invalidate(MwLL handle); + /* Get the registered interface from r, or NULL if it doesn't currently have it. */ #define WAYLAND_GET_INTERFACE(handle, inter) shget(handle.wl_protocol_map, inter##_interface.name) @@ -50,11 +53,13 @@ static void protocol_removed(void* data, /* `wl_pointer.enter` callback */ static void pointer_enter(void* data, struct wl_pointer* wl_pointer, MwU32 serial, struct wl_surface* surface, wl_fixed_t surface_x, - wl_fixed_t surface_y) {}; + wl_fixed_t surface_y) { +}; /* `wl_pointer.leave` callback */ static void pointer_leave(void* data, struct wl_pointer* wl_pointer, MwU32 serial, - struct wl_surface* surface) {}; + struct wl_surface* surface) { +}; /* `wl_pointer.motion` callback */ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time, @@ -64,7 +69,8 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time self->wayland.cur_mouse_pos.x = wl_fixed_to_double(surface_x); self->wayland.cur_mouse_pos.y = wl_fixed_to_double(surface_y); - p.point = self->wayland.cur_mouse_pos; + + p.point = self->wayland.cur_mouse_pos; MwLLDispatch(self, move, &p); /*timed_redraw(self, time, 50, &self->wayland.cooldown_timer);*/ @@ -383,6 +389,7 @@ static void xdg_toplevel_configure(void* data, MwI32 width, MwI32 height, struct wl_array* states) { MwLL self = data; + int i; if(width == 0 || height == 0) { width = self->wayland.ww; @@ -393,16 +400,23 @@ static void xdg_toplevel_configure(void* data, } } + region_invalidate(self); self->wayland.ww = width; self->wayland.wh = height; xdg_surface_set_window_geometry(self->wayland.toplevel->xdg_surface, 0, 0, self->wayland.ww, self->wayland.wh); buffer_destroy(&self->wayland); buffer_setup(&self->wayland); + region_setup(self); MwLLDispatch(self, resize, NULL); MwLLDispatch(self, draw, NULL); + for(i = 0; i < arrlen(self->wayland.sublevels); i++) { + MwLL handle = self->wayland.sublevels[i]; + region_setup(handle); + } + /*if(!self->wayland.egl_setup) { self->wayland.egl_setup = egl_setup(self, self->wayland.x, self->wayland.y, width, height); } else { @@ -499,11 +513,10 @@ static void buffer_setup(struct _MwLLWayland* wayland) { memset(wayland->mapped_shm_buf, 255, wayland->mapped_shm_buf_size); update_buffer((MwLL)wayland); - wayland->shm_setup = MwTRUE; } static void buffer_destroy(struct _MwLLWayland* wayland) { - if(!wayland->shm_setup) { + if(!wayland->configured) { return; } cairo_destroy(wayland->cairo); @@ -515,6 +528,21 @@ static void buffer_destroy(struct _MwLLWayland* wayland) { close(wayland->shm_fd); } +static void region_invalidate(MwLL handle) { + if(!handle->wayland.configured) { + return; + } + wl_region_subtract(handle->wayland.region, handle->wayland.x, handle->wayland.y, handle->wayland.ww, handle->wayland.wh); +} +static void region_setup(MwLL handle) { + if(!handle->wayland.configured) { + return; + } + wl_region_add(handle->wayland.region, handle->wayland.x, handle->wayland.y, handle->wayland.ww, handle->wayland.wh); + wl_surface_set_input_region(handle->wayland.surface, handle->wayland.region); + wl_surface_set_opaque_region(handle->wayland.surface, handle->wayland.region); +} + /* Standard Wayland event loop. */ static int event_loop(MwLL handle) { enum { @@ -732,6 +760,9 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { buffer_setup(&r->wayland); + r->wayland.region = wl_compositor_create_region(r->wayland.compositor); + region_setup(r); + MwLLForceRender(r); return r; @@ -741,6 +772,7 @@ static void MwLLDestroyImpl(MwLL handle) { MwLLDestroyCommon(handle); buffer_destroy(&handle->wayland); + wl_region_destroy(handle->wayland.region); free(handle); } @@ -754,25 +786,23 @@ static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsign static void MwLLSetXYImpl(MwLL handle, int x, int y) { if(handle->wayland.type != MWLL_WAYLAND_TOPLEVEL) { + region_invalidate(handle); handle->wayland.x = x; handle->wayland.y = y; - /*if(handle->wayland.has_set_xy) { - timed_redraw_by_epoch(handle->wayland.topmost_parent, 25); - } else if(x != 0 && y != 0) { - handle->wayland.has_set_xy = MwTRUE; - }*/ - wl_subsurface_set_position(handle->wayland.sublevel->subsurface, x, y); + region_setup(handle); } + MwLLDispatch(handle, draw, NULL); } static void MwLLSetWHImpl(MwLL handle, int w, int h) { + region_invalidate(handle); /* Prevent an integer underflow when the w/h is too low */ if((w < 10 || h < 10)) { handle->wayland.ww = 10; handle->wayland.wh = 10; - return; + goto refresh; } handle->wayland.ww = w; handle->wayland.wh = h; @@ -780,6 +810,10 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { xdg_surface_set_window_geometry(handle->wayland.toplevel->xdg_surface, 0, 0, handle->wayland.ww, handle->wayland.wh); } + +refresh: + region_setup(handle); + buffer_destroy(&handle->wayland); buffer_setup(&handle->wayland); MwLLDispatch(handle, draw, NULL); From c6e7421b31bb19fb068627cad5b6f2d68d9d4066 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 18 Dec 2025 11:36:04 -0700 Subject: [PATCH 035/836] wayland: key modifiers --- include/Mw/LowLevel/Wayland.h | 2 +- src/backend/wayland.c | 38 ++++++++++++----------------------- 2 files changed, 14 insertions(+), 26 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 950c258dc..fc54ac838 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -94,7 +94,7 @@ struct _MwLLWayland { MwBool active; /* Whether or not the surface is the one being hovered over. */ - /*struct wl_event_queue* event_queue;*/ + MwU32 mod_state; MwLL* sublevels; /* stb_ds managed array of any sublevels */ MwBool configured; /* Whether or not xdg_toplevel_configure has run once */ diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 835f91d44..4a7fe67fa 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -118,28 +118,6 @@ struct wl_pointer_listener pointer_listener = { .axis = pointer_axis, }; -/* Recursively dispatch the key event to `handle` and its children */ -static void recursive_key(MwLL handle, void* ud) { - int i; - if(handle->wayland.sublevels != NULL) { - for(i = 0; i < arrlen(handle->wayland.sublevels); i++) { - MwLLDispatch(handle->wayland.sublevels[i], key, ud); - recursive_key(handle->wayland.sublevels[i], ud); - } - } -} - -/* Recursively dispatch the key_released event to `handle` and its children */ -static void recursive_key_released(MwLL handle, void* ud) { - int i; - if(handle->wayland.sublevels != NULL) { - for(i = 0; i < arrlen(handle->wayland.sublevels); i++) { - MwLLDispatch(handle->wayland.sublevels[i], key_released, ud); - recursive_key(handle->wayland.sublevels[i], ud); - } - } -} - /* `wl_keyboard.keymap` callback */ static void keyboard_keymap(void* data, struct wl_keyboard* wl_keyboard, @@ -259,12 +237,16 @@ static void keyboard_key(void* data, default: key = sym; } + if((self->wayland.mod_state & 4) == 4) { + key |= MwLLControlMask; + } + if((self->wayland.mod_state & 8) == 8) { + key |= MwLLAltMask; + } if(state == WL_KEYBOARD_KEY_STATE_PRESSED) { MwLLDispatch(self, key, &key); - recursive_key(self, &key); } else { MwLLDispatch(self, key_released, &key); - recursive_key_released(self, &key); } } } @@ -277,7 +259,13 @@ static void keyboard_modifiers(void* data, MwU32 mods_depressed, MwU32 mods_latched, MwU32 mods_locked, - MwU32 group) {}; + MwU32 group) { + MwLL self = data; + + self->wayland.mod_state = 0; + self->wayland.mod_state |= mods_depressed; + self->wayland.mod_state |= mods_locked; +}; struct wl_keyboard_listener keyboard_listener = { .keymap = keyboard_keymap, From 19f52488b882e883aff3d82e3315a22de4f493fe Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 19 Dec 2025 03:57:40 +0900 Subject: [PATCH 036/836] fancy things --- milsko.xml | 1 + src/core.c | 2 +- src/widget/image.c | 8 ++++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/milsko.xml b/milsko.xml index f7f5baefa..758eb1f88 100644 --- a/milsko.xml +++ b/milsko.xml @@ -526,6 +526,7 @@ + diff --git a/src/core.c b/src/core.c index 4afafb77f..0ae8d4aab 100644 --- a/src/core.c +++ b/src/core.c @@ -693,7 +693,7 @@ static void force_render_all(MwWidget handle) { for(i = 0; i < arrlen(handle->children); i++) { force_render_all(handle->children[i]); } - MwForceRender(handle); + if(handle->lowlevel != NULL) MwForceRender(handle); } void MwToggleDarkTheme(MwWidget handle, int toggle) { diff --git a/src/widget/image.c b/src/widget/image.c index 487521dd5..4995568d1 100644 --- a/src/widget/image.c +++ b/src/widget/image.c @@ -5,6 +5,7 @@ static int create(MwWidget handle) { MwSetInteger(handle, MwNhasBorder, 0); MwSetInteger(handle, MwNinverted, 1); + MwSetInteger(handle, MwNfillArea, 1); return 0; } @@ -23,6 +24,13 @@ static void draw(MwWidget handle) { MwDrawRect(handle, &r, base); if(px != NULL) { + if(!MwGetInteger(handle, MwNfillArea)) { + r.x = (r.width - px->common.width) / 2; + r.y = (r.height - px->common.height) / 2; + r.width = px->common.width; + r.height = px->common.height; + } + MwLLDrawPixmap(handle->lowlevel, &r, px); } From bfa0a5811ec066be64f756e88f8ba1ee4553e5a7 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 19 Dec 2025 04:38:29 +0900 Subject: [PATCH 037/836] fix --- src/widget/box.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/widget/box.c b/src/widget/box.c index e2808c4ea..c363e0ec8 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -58,7 +58,6 @@ static void layout(MwWidget handle) { } else { wsz = sz * n / sum; } - wsz -= Margin; MwVaApply(handle->children[i], horiz ? MwNx : MwNy, sk, /* this is what gets changed */ From d8c08f80d64954f88716b395177b190df9e91a1c Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 18 Dec 2025 13:15:03 -0700 Subject: [PATCH 038/836] wayland: cursor support --- include/Mw/LowLevel/Wayland.h | 24 +++-- src/backend/wayland.c | 181 ++++++++++++++++++++++------------ 2 files changed, 137 insertions(+), 68 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index fc54ac838..05a4d5065 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -58,6 +58,18 @@ struct _MwLLWaylandSublevel { MwLL topmost_parent; /* The parent at the top of all the other parents. Usually a toplevel. */ }; +/* Shared set of anything needed for a shm buffer. Used both for surface framebuffers, and cursors. */ +struct _MwLLWaylandShmBuffer { + struct wl_shm* shm; + struct wl_shm_pool* shm_pool; + struct wl_buffer* shm_buffer; + MwU8* buf; + MwU64 buf_size; + int fd; + MwBool setup; + struct wl_surface* surface; +}; + struct _MwLLWayland { struct _MwLLCommon common; @@ -88,10 +100,12 @@ struct _MwLLWayland { struct wl_display* display; struct wl_registry* registry; struct wl_compositor* compositor; - struct wl_surface* surface; struct wl_registry_listener registry_listener; struct wl_region* region; + struct wl_pointer* pointer; + MwU32 pointer_serial; + MwBool active; /* Whether or not the surface is the one being hovered over. */ MwU32 mod_state; @@ -102,12 +116,8 @@ struct _MwLLWayland { MwU32 x, y, ww, wh; /* Window position */ MwPoint cur_mouse_pos; /* Currently known mouse position */ - struct wl_shm* shm; - struct wl_shm_pool* shm_pool; - struct wl_buffer* shm_buffer; - void* mapped_shm_buf; - MwU64 mapped_shm_buf_size; - int shm_fd; + struct _MwLLWaylandShmBuffer framebuffer; + struct _MwLLWaylandShmBuffer cursor; cairo_surface_t* cs; cairo_t* cairo; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 4a7fe67fa..5695a8360 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -17,10 +17,10 @@ #include #endif -/* Setup the wl_shm buffer with the saved width/height */ -static void buffer_setup(struct _MwLLWayland* wayland); -/* Destroy the wl_shm buffer */ -static void buffer_destroy(struct _MwLLWayland* handle); +/* Setup the framebuffer with the saved width/height */ +static void framebuffer_setup(struct _MwLLWayland* wayland); +/* Destroy the framebuffer */ +static void framebuffer_destroy(struct _MwLLWayland* handle); static void region_setup(MwLL handle); static void region_invalidate(MwLL handle); @@ -54,6 +54,10 @@ static void protocol_removed(void* data, static void pointer_enter(void* data, struct wl_pointer* wl_pointer, MwU32 serial, struct wl_surface* surface, wl_fixed_t surface_x, wl_fixed_t surface_y) { + MwLL self = data; + self->wayland.pointer_serial = serial; + + wl_pointer_set_cursor(wl_pointer, serial, self->wayland.cursor.surface, 0, 0); }; /* `wl_pointer.leave` callback */ @@ -288,8 +292,8 @@ static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat, wl_keyboard_add_listener(keyboard, &keyboard_listener, data); } if(capabilities & WL_SEAT_CAPABILITY_POINTER) { - struct wl_pointer* pointer = wl_seat_get_pointer(wl_seat); - wl_pointer_add_listener(pointer, &pointer_listener, data); + self->wayland.pointer = wl_seat_get_pointer(wl_seat); + wl_pointer_add_listener(self->wayland.pointer, &pointer_listener, data); } }; @@ -393,8 +397,8 @@ static void xdg_toplevel_configure(void* data, self->wayland.wh = height; xdg_surface_set_window_geometry(self->wayland.toplevel->xdg_surface, 0, 0, self->wayland.ww, self->wayland.wh); - buffer_destroy(&self->wayland); - buffer_setup(&self->wayland); + framebuffer_destroy(&self->wayland); + framebuffer_setup(&self->wayland); region_setup(self); MwLLDispatch(self, resize, NULL); @@ -436,7 +440,7 @@ static void xdg_surface_configure( xdg_surface_ack_configure(xdg_surface, serial); if(self->wayland.configured) { - wl_surface_commit(self->wayland.surface); + wl_surface_commit(self->wayland.framebuffer.surface); } self->wayland.configured = MwTRUE; @@ -445,76 +449,80 @@ static void xdg_surface_configure( /* wl_shm setup function */ static wayland_protocol_t* wl_shm_setup(MwU32 name, struct _MwLLWayland* wayland) { - wayland->shm = wl_registry_bind(wayland->registry, name, &wl_shm_interface, 1); + wayland->framebuffer.shm = wl_registry_bind(wayland->registry, name, &wl_shm_interface, 1); + wayland->cursor.shm = wl_registry_bind(wayland->registry, name, &wl_shm_interface, 1); return NULL; } -static void update_buffer(MwLL handle) { - fsync(handle->wayland.shm_fd); +static void update_framebuffer(struct _MwLLWayland* wayland) { + struct _MwLLWaylandShmBuffer* buffer = &wayland->framebuffer; + fsync(buffer->fd); - if(handle->wayland.configured) { - wl_surface_attach(handle->wayland.surface, handle->wayland.shm_buffer, 0, 0); - wl_surface_commit(handle->wayland.surface); + if(wayland->configured && buffer->setup) { + wl_surface_attach(wayland->framebuffer.surface, buffer->shm_buffer, wayland->x, wayland->y); + wl_surface_commit(wayland->framebuffer.surface); } } -static void buffer_setup(struct _MwLLWayland* wayland) { +static void buffer_setup(struct _MwLLWaylandShmBuffer* buffer, MwU32 width, MwU32 height) { int x, y; - int stride = wayland->ww * 4; + int stride = width * 4; char temp_name[] = "/tmp/milsko-wl-shm-XXXXXX"; - wayland->mapped_shm_buf_size = wayland->ww * wayland->wh * 4; + buffer->buf_size = width * height * 4; - wayland->shm_fd = mkstemp(temp_name); + buffer->fd = mkstemp(temp_name); unlink(temp_name); - if(posix_fallocate(wayland->shm_fd, 0, wayland->mapped_shm_buf_size) != 0) { + if(posix_fallocate(buffer->fd, 0, buffer->buf_size) != 0) { printf("failure setting up wl_shm: could not fallocate. %s.\n", strerror(errno)); - close(wayland->shm_fd); + close(buffer->fd); return; } - if(ftruncate(wayland->shm_fd, wayland->mapped_shm_buf_size) != 0) { + if(ftruncate(buffer->fd, buffer->buf_size) != 0) { printf("failure setting up wl_shm: could not truncate. %s.\n", strerror(errno)); - close(wayland->shm_fd); + close(buffer->fd); return; } - wayland->mapped_shm_buf = mmap(NULL, wayland->mapped_shm_buf_size, PROT_WRITE, MAP_SHARED, wayland->shm_fd, 0); + buffer->buf = mmap(NULL, buffer->buf_size, PROT_WRITE, MAP_SHARED, buffer->fd, 0); - fsync(wayland->shm_fd); + fsync(buffer->fd); - if(!(wayland->shm_pool = wl_shm_create_pool(wayland->shm, wayland->shm_fd, wayland->mapped_shm_buf_size))) { + if(!(buffer->shm_pool = wl_shm_create_pool(buffer->shm, buffer->fd, buffer->buf_size))) { printf("failure setting up wl_shm: could not create pool.\n"); } - wayland->shm_buffer = wl_shm_pool_create_buffer(wayland->shm_pool, 0, wayland->ww, wayland->wh, stride, WL_SHM_FORMAT_ARGB8888); - - if(wayland->configured) { - wl_surface_attach(wayland->surface, wayland->shm_buffer, 0, 0); - wl_surface_commit(wayland->surface); - } - - wayland->cs = cairo_image_surface_create_for_data(wayland->mapped_shm_buf, CAIRO_FORMAT_ARGB32, wayland->ww, wayland->wh, 4 * wayland->ww); - wayland->cairo = cairo_create(wayland->cs); - - memset(wayland->mapped_shm_buf, 255, wayland->mapped_shm_buf_size); - update_buffer((MwLL)wayland); + buffer->shm_buffer = wl_shm_pool_create_buffer(buffer->shm_pool, 0, width, height, stride, WL_SHM_FORMAT_ARGB8888); + buffer->setup = MwTRUE; } -static void buffer_destroy(struct _MwLLWayland* wayland) { - if(!wayland->configured) { +static void buffer_destroy(struct _MwLLWaylandShmBuffer* buffer) { + if(!buffer->setup) { return; } + wl_buffer_destroy(buffer->shm_buffer); + wl_shm_pool_destroy(buffer->shm_pool); + close(buffer->fd); + buffer->setup = MwFALSE; +} + +static void framebuffer_setup(struct _MwLLWayland* wayland) { + buffer_setup(&wayland->framebuffer, wayland->ww, wayland->wh); + + wayland->cs = cairo_image_surface_create_for_data(wayland->framebuffer.buf, CAIRO_FORMAT_ARGB32, wayland->ww, wayland->wh, 4 * wayland->ww); + wayland->cairo = cairo_create(wayland->cs); + + memset(wayland->framebuffer.buf, 255, wayland->framebuffer.buf_size); + update_framebuffer(wayland); +}; +static void framebuffer_destroy(struct _MwLLWayland* wayland) { + buffer_destroy(&wayland->framebuffer); cairo_destroy(wayland->cairo); cairo_surface_destroy(wayland->cs); - - wl_buffer_destroy(wayland->shm_buffer); - // munmap(wayland->mapped_shm_buf, wayland->mapped_shm_buf_size); - wl_shm_pool_destroy(wayland->shm_pool); - close(wayland->shm_fd); -} +}; static void region_invalidate(MwLL handle) { if(!handle->wayland.configured) { @@ -527,8 +535,8 @@ static void region_setup(MwLL handle) { return; } wl_region_add(handle->wayland.region, handle->wayland.x, handle->wayland.y, handle->wayland.ww, handle->wayland.wh); - wl_surface_set_input_region(handle->wayland.surface, handle->wayland.region); - wl_surface_set_opaque_region(handle->wayland.surface, handle->wayland.region); + wl_surface_set_input_region(handle->wayland.framebuffer.surface, handle->wayland.region); + wl_surface_set_opaque_region(handle->wayland.framebuffer.surface, handle->wayland.region); } /* Standard Wayland event loop. */ @@ -574,7 +582,7 @@ static int event_loop(MwLL handle) { if(!poll(&fd, 1, timeout)) { wl_display_cancel_read(handle->wayland.display); /* In this case, we need to commit the surface for any animations, etc. */ - wl_surface_commit(handle->wayland.surface); + wl_surface_commit(handle->wayland.framebuffer.surface); return 0; } @@ -630,6 +638,8 @@ static void setup_toplevel(MwLL r, int x, int y) { return; } + r->wayland.framebuffer.surface = NULL; + /* Do a roundtrip to ensure all interfaces are setup. */ r->wayland.registry = wl_display_get_registry(r->wayland.display); wl_registry_add_listener(r->wayland.registry, &r->wayland.registry_listener, r); @@ -642,9 +652,9 @@ static void setup_toplevel(MwLL r, int x, int y) { r->wayland.toplevel->xkb_context = xkb_context_new(XKB_CONTEXT_NO_FLAGS); /* Create a wl_surface, a xdg_surface and a xdg_toplevel */ - r->wayland.surface = wl_compositor_create_surface(r->wayland.compositor); + r->wayland.framebuffer.surface = wl_compositor_create_surface(r->wayland.compositor); r->wayland.toplevel->xdg_surface = - xdg_wm_base_get_xdg_surface(WAYLAND_GET_INTERFACE(r->wayland, xdg_wm_base)->context, r->wayland.surface); + xdg_wm_base_get_xdg_surface(WAYLAND_GET_INTERFACE(r->wayland, xdg_wm_base)->context, r->wayland.framebuffer.surface); r->wayland.toplevel->xdg_top_level = xdg_surface_get_toplevel(r->wayland.toplevel->xdg_surface); /* setup mandatory listeners */ @@ -661,7 +671,7 @@ static void setup_toplevel(MwLL r, int x, int y) { xdg_toplevel_set_app_id(r->wayland.toplevel->xdg_top_level, "MilskoWaylandApp"); /* Perform the initial commit and wait for the first configure event */ - wl_surface_commit(r->wayland.surface); + wl_surface_commit(r->wayland.framebuffer.surface); event_loop(r); /* setup decorations if we can */ @@ -685,7 +695,7 @@ static void setup_toplevel(MwLL r, int x, int y) { /* Sublevel setup function */ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { struct wl_compositor* compositor = parent->wayland.compositor; - struct wl_surface* parent_surface = parent->wayland.surface; + struct wl_surface* parent_surface = parent->wayland.framebuffer.surface; r->wayland.sublevel = malloc(sizeof(struct _MwLLWaylandSublevel)); @@ -693,7 +703,7 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { r->wayland.display = parent->wayland.display; - r->wayland.surface = wl_compositor_create_surface(compositor); + r->wayland.framebuffer.surface = wl_compositor_create_surface(compositor); setup_callbacks(&r->wayland); @@ -709,7 +719,7 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { return; } - r->wayland.sublevel->subsurface = wl_subcompositor_get_subsurface(r->wayland.sublevel->subcompositor, r->wayland.surface, parent_surface); + r->wayland.sublevel->subsurface = wl_subcompositor_get_subsurface(r->wayland.sublevel->subcompositor, r->wayland.framebuffer.surface, parent_surface); wl_subsurface_set_position(r->wayland.sublevel->subsurface, x, y); @@ -719,6 +729,7 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLL r; r = malloc(sizeof(*r)); + memset(r, 0, sizeof(*r)); MwLLCreateCommon(r); r->common.type = MwLLBackendWayland; @@ -746,7 +757,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { setup_sublevel(parent, r, x, y); } - buffer_setup(&r->wayland); + framebuffer_setup(&r->wayland); r->wayland.region = wl_compositor_create_region(r->wayland.compositor); region_setup(r); @@ -759,7 +770,8 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { static void MwLLDestroyImpl(MwLL handle) { MwLLDestroyCommon(handle); - buffer_destroy(&handle->wayland); + buffer_destroy(&handle->wayland.framebuffer); + buffer_destroy(&handle->wayland.cursor); wl_region_destroy(handle->wayland.region); free(handle); @@ -802,8 +814,8 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { refresh: region_setup(handle); - buffer_destroy(&handle->wayland); - buffer_setup(&handle->wayland); + framebuffer_destroy(&handle->wayland); + framebuffer_setup(&handle->wayland); MwLLDispatch(handle, draw, NULL); } @@ -844,7 +856,7 @@ static void MwLLBeginDrawImpl(MwLL handle) { } static void MwLLEndDrawImpl(MwLL handle) { - update_buffer(handle); + update_framebuffer(&handle->wayland); } static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { @@ -944,7 +956,7 @@ static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { } static void MwLLForceRenderImpl(MwLL handle) { - wl_surface_damage(handle->wayland.surface, 0, 0, handle->wayland.ww, handle->wayland.wh); + wl_surface_damage(handle->wayland.framebuffer.surface, 0, 0, handle->wayland.ww, handle->wayland.wh); /* if(handle->wayland.egl_setup) { @@ -954,6 +966,53 @@ static void MwLLForceRenderImpl(MwLL handle) { } static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { + int x, y; + + if(handle->wayland.cursor.setup) { + buffer_destroy(&handle->wayland.cursor); + wl_surface_destroy(handle->wayland.cursor.surface); + } + buffer_setup(&handle->wayland.cursor, image->width, image->height); + memset(handle->wayland.cursor.buf, 0, handle->wayland.cursor.buf_size); + + for(y = 0; y < mask->height; y++) { + unsigned int d = mask->data[y]; + for(x = mask->width - 1; x >= 0; x--) { + int px = 0; + int idx = ((y * mask->width) + x) * 4; + + if(d & 1) { + handle->wayland.cursor.buf[idx + 3] = 255; + }; + d = d >> 1; + } + } + for(y = 0; y < image->height; y++) { + unsigned int d = image->data[y]; + for(x = image->width - 1; x >= 0; x--) { + int px = 0; + int idx = ((y * image->width) + x) * 4; + + if(d & 1) { + px = 255; + }; + + handle->wayland.cursor.buf[idx] = px; + handle->wayland.cursor.buf[idx + 1] = px; + handle->wayland.cursor.buf[idx + 2] = px; + d = d >> 1; + } + } + + handle->wayland.cursor.surface = wl_compositor_create_surface(handle->wayland.compositor); + + wl_surface_attach(handle->wayland.cursor.surface, handle->wayland.cursor.shm_buffer, 0, 0); + wl_surface_commit(handle->wayland.cursor.surface); + + /* If there's currently a pointer, set it up. (Otherwise, it'll be setup during the pointer enter event) */ + if(handle->wayland.pointer != NULL) { + wl_pointer_set_cursor(handle->wayland.pointer, handle->wayland.pointer_serial, handle->wayland.cursor.surface, 0, 0); + } } static void MwLLDetachImpl(MwLL handle, MwPoint* point) { From aeaf0a4547b8b34db7f5cc3c4279cadd44b6ccae Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 18 Dec 2025 13:16:16 -0700 Subject: [PATCH 039/836] wayland: MwLLGetCursorCoordImpl --- src/backend/wayland.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 5695a8360..e15dd1e48 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1066,6 +1066,7 @@ static void MwLLMakeToolWindowImpl(MwLL handle) { } static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { + *point = handle->wayland.cur_mouse_pos; } static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { From 8d4e845e7c812b779944c8d675a48de5bbcfaa8a Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 18 Dec 2025 13:43:45 -0700 Subject: [PATCH 040/836] wayland: MwLLGetScreenSize --- include/Mw/LowLevel/Wayland.h | 13 ++++++++---- src/backend/wayland.c | 40 +++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 4 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 05a4d5065..0c6036c42 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -63,11 +63,13 @@ struct _MwLLWaylandShmBuffer { struct wl_shm* shm; struct wl_shm_pool* shm_pool; struct wl_buffer* shm_buffer; - MwU8* buf; - MwU64 buf_size; - int fd; - MwBool setup; struct wl_surface* surface; + struct wl_output* output; + + MwU8* buf; + MwU64 buf_size; + int fd; + MwBool setup; }; struct _MwLLWayland { @@ -102,6 +104,7 @@ struct _MwLLWayland { struct wl_compositor* compositor; struct wl_registry_listener registry_listener; struct wl_region* region; + struct wl_output* output; struct wl_pointer* pointer; MwU32 pointer_serial; @@ -116,6 +119,8 @@ struct _MwLLWayland { MwU32 x, y, ww, wh; /* Window position */ MwPoint cur_mouse_pos; /* Currently known mouse position */ + MwU32 mw, mh; /* Monitor width and height as advertised by wl_output.mode */ + struct _MwLLWaylandShmBuffer framebuffer; struct _MwLLWaylandShmBuffer cursor; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index e15dd1e48..919575a35 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -297,6 +297,32 @@ static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat, } }; +static void output_geometry(void* data, + struct wl_output* wl_output, + int32_t x, + int32_t y, + int32_t physical_width, + int32_t physical_height, + int32_t subpixel, + const char* make, + const char* model, + int32_t transform) {}; +static void output_mode(void* data, + struct wl_output* wl_output, + uint32_t flags, + int32_t width, + int32_t height, + int32_t refresh) { + MwLL self = data; + self->wayland.mw = width; + self->wayland.mh = height; +}; + +struct wl_output_listener output_listener = { + .geometry = output_geometry, + .mode = output_mode, +}; + /* `xdg_wm_base.ping` callback */ void xdg_wm_base_ping(void* data, struct xdg_wm_base* xdg_wm_base, @@ -318,6 +344,14 @@ static wayland_protocol_t* wl_seat_setup(MwU32 name, MwLL ll) { return proto; } +/* wl_output setup function */ +static wayland_protocol_t* wl_output_setup(MwU32 name, MwLL ll) { + ll->wayland.output = wl_registry_bind(ll->wayland.registry, name, &wl_output_interface, 1); + wl_output_add_listener(ll->wayland.output, &output_listener, ll); + + return NULL; +} + /* wl_compositor setup function */ static wayland_protocol_t* wl_compositor_setup(MwU32 name, struct _MwLLWayland* wayland) { wayland->compositor = wl_registry_bind(wayland->registry, name, &wl_compositor_interface, 1); @@ -611,6 +645,7 @@ static void setup_callbacks(struct _MwLLWayland* wayland) { WL_INTERFACE(wl_shm); WL_INTERFACE(wl_compositor); WL_INTERFACE(wl_seat); + WL_INTERFACE(wl_output); if(wayland->type == MWLL_WAYLAND_TOPLEVEL) { WL_INTERFACE(xdg_wm_base); WL_INTERFACE(zxdg_decoration_manager_v1); @@ -653,6 +688,7 @@ static void setup_toplevel(MwLL r, int x, int y) { /* Create a wl_surface, a xdg_surface and a xdg_toplevel */ r->wayland.framebuffer.surface = wl_compositor_create_surface(r->wayland.compositor); + r->wayland.toplevel->xdg_surface = xdg_wm_base_get_xdg_surface(WAYLAND_GET_INTERFACE(r->wayland, xdg_wm_base)->context, r->wayland.framebuffer.surface); r->wayland.toplevel->xdg_top_level = xdg_surface_get_toplevel(r->wayland.toplevel->xdg_surface); @@ -1070,6 +1106,10 @@ static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { } static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { + rect->x = 0; + rect->y = 0; + rect->width = handle->wayland.mw; + rect->height = handle->wayland.mh; } static void MwLLBeginStateChangeImpl(MwLL handle) { From b0f4713ff11b4268027c7827ec9b2521969c6fbb Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 18 Dec 2025 13:46:22 -0700 Subject: [PATCH 041/836] wayland: remove unused cursor_shape --- src/backend/wayland.c | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 919575a35..cb50ddc34 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -379,16 +379,6 @@ static wayland_protocol_t* xdg_wm_base_setup(MwU32 name, struct _MwLLWayland* wa return proto; } -/* wp_cursor_shape_manager setup function */ -static wayland_protocol_t* wp_cursor_shape_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { - wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); - proto->listener = NULL; - - proto->context = wl_registry_bind(wayland->registry, name, &wp_cursor_shape_manager_v1_interface, 1); - - return proto; -} - /* the two decoration manager constructs */ typedef struct zxdg_decoration_manager_v1_context { struct zxdg_decoration_manager_v1* manager; @@ -649,7 +639,6 @@ static void setup_callbacks(struct _MwLLWayland* wayland) { if(wayland->type == MWLL_WAYLAND_TOPLEVEL) { WL_INTERFACE(xdg_wm_base); WL_INTERFACE(zxdg_decoration_manager_v1); - WL_INTERFACE(wp_cursor_shape_manager_v1); } else { WL_INTERFACE(wl_subcompositor); } From a27a01ce414e2cc0f45b19cfb21bb68911ebba34 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 18 Dec 2025 17:46:23 -0700 Subject: [PATCH 042/836] wayland: MwLLGetClipboardImpl. --- examples/basic/clipboard.c | 65 ++++++++++++++ include/Mw/LowLevel/Wayland.h | 3 + pl/rules.pl | 2 + src/backend/wayland.c | 161 +++++++++++++++++++++++++++++++++- 4 files changed, 227 insertions(+), 4 deletions(-) create mode 100644 examples/basic/clipboard.c diff --git a/examples/basic/clipboard.c b/examples/basic/clipboard.c new file mode 100644 index 000000000..9efae7af7 --- /dev/null +++ b/examples/basic/clipboard.c @@ -0,0 +1,65 @@ +#define _MILSKO +#include + +MwWidget window, button, text; + +void resize(MwWidget handle, void* user_data, void* call_data) { + unsigned int w, h, mh; + + (void)user_data; + (void)call_data; + + w = MwGetInteger(handle, MwNwidth); + h = MwGetInteger(handle, MwNheight); + + MwVaApply(button, + MwNy, 50 + mh, + MwNwidth, w - 50 * 2, + MwNheight, h - 125 - 50 * 3, + NULL); + + MwVaApply(text, + MwNy, 200 + mh, + MwNwidth, w - 50 * 2, + MwNheight, h - 125 - 50 * 3, + NULL); +} + +void handler(MwWidget handle, void* user_data, void* call_data) { + (void)handle; + (void)user_data; + (void)call_data; + char* clipboard; + + clipboard = MwLLGetClipboard(handle->lowlevel); + + if(clipboard != NULL) { + MwVaApply(text, MwNtext, clipboard); + MwForceRender(text); + } + + resize(window, NULL, NULL); +} + +int main() { + MwMenu m, m2; + + MwLibraryInit(); + + window = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 400, 400, + MwNtitle, "clipboard", + NULL); + button = MwVaCreateWidget(MwButtonClass, "button", window, 50, 50, 300, 125, + MwNtext, "get clipboard contents", + NULL); + text = MwVaCreateWidget(MwLabelClass, "label", window, 50, 200, 300, 125, + MwNtext, "", + NULL); + + MwAddUserHandler(window, MwNresizeHandler, resize, NULL); + MwAddUserHandler(button, MwNactivateHandler, handler, NULL); + + resize(window, NULL, NULL); + + MwLoop(window); +} diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 0c6036c42..e47caed1e 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -24,6 +24,7 @@ MWDECL int MwLLWaylandCallInit(void); #include "Wayland/xdg-shell-client-protocol.h" #include "Wayland/xdg-decoration-client-protocol.h" #include "Wayland/cursor-shape-client-protocol.h" +#include "Wayland/primary-selection-client-protocol.h" #endif struct _MwLLWayland; @@ -121,6 +122,8 @@ struct _MwLLWayland { MwU32 mw, mh; /* Monitor width and height as advertised by wl_output.mode */ + char* cur_selection; + struct _MwLLWaylandShmBuffer framebuffer; struct _MwLLWaylandShmBuffer cursor; diff --git a/pl/rules.pl b/pl/rules.pl index 5cb4a90a2..094d8effd 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -36,6 +36,7 @@ if (grep(/^wayland$/, @backends)) { scan_wayland_protocol("stable", "tablet", "-v2"); scan_wayland_protocol("staging", "cursor-shape", "-v1"); scan_wayland_protocol("unstable", "xdg-decoration", "-unstable-v1"); + scan_wayland_protocol("unstable", "primary-selection", "-unstable-v1"); $gl_libs = "-lEGL -lwayland-egl lGL -lGLU"; } @@ -112,6 +113,7 @@ new_example("examples/basic/colorpicker"); new_example("examples/basic/combobox"); new_example("examples/basic/treeview"); new_example("examples/basic/box"); +new_example("examples/basic/clipboard"); if (param_get("opengl")) { new_example("examples/gldemos/boing", $gl_libs); diff --git a/src/backend/wayland.c b/src/backend/wayland.c index cb50ddc34..ed730ad9e 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -7,6 +7,7 @@ #include #include +#include /* TODO: find out what FreeBSD and such wants us to include */ #ifdef __FreeBSD__ @@ -36,8 +37,10 @@ static void new_protocol(void* data, struct wl_registry* registry, wl_setup_func* func = shget(wayland->wl_protocol_setup_map, interface); if(func != NULL) { - /* printf("registering interface %s\n", interface); */ - shput(wayland->wl_protocol_map, interface, func(name, data)); + char* inter = malloc(strlen(interface)); + strcpy(inter, interface); + + shput(wayland->wl_protocol_map, inter, func(name, data)); } else { /* printf("unknown interface %s\n", interface); */ } @@ -50,6 +53,63 @@ static void protocol_removed(void* data, }; +static void offer_offer(void* data, + struct zwp_primary_selection_offer_v1* zwp_primary_selection_offer_v1, + const char* mime_type) { +}; + +struct zwp_primary_selection_offer_v1_listener offer_listener = { + .offer = offer_offer, +}; + +typedef struct primary_selection_device_context { + struct zwp_primary_selection_device_v1* device; + struct zwp_primary_selection_offer_v1* offer; +} primary_selection_device_context_t; + +typedef struct primary_selection_context { + struct zwp_primary_selection_device_manager_v1* manager; + /* stored seperately of the listeners because it's not a pointer and it gets assigned to data devices dynamically. */ + struct zwp_primary_selection_device_v1_listener listener; + + struct zwp_primary_selection_source_v1* source; + primary_selection_device_context_t** devices; +} primary_selection_context_t; + +static void primary_selection_data_offer(void* data, + struct zwp_primary_selection_device_v1* zwp_primary_selection_device_v1, + struct zwp_primary_selection_offer_v1* offer) { + struct primary_selection_device_context* self = data; + zwp_primary_selection_offer_v1_add_listener(offer, &offer_listener, data); + + self->offer = offer; +}; +static void primary_selection_selection(void* data, + struct zwp_primary_selection_device_v1* zwp_primary_selection_device_v1, + struct zwp_primary_selection_offer_v1* id) { +}; + +/* zwp_primary_selection_device_manager_v1 setup function */ +static wayland_protocol_t* zwp_primary_selection_device_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { + wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); + primary_selection_context_t* context = malloc(sizeof(primary_selection_context_t)); + + context->manager = wl_registry_bind(wayland->registry, name, &zwp_primary_selection_device_manager_v1_interface, 1); + + struct zwp_primary_selection_device_manager_v1* device; + context->listener.data_offer = primary_selection_data_offer; + context->listener.selection = primary_selection_selection; + + context->source = zwp_primary_selection_device_manager_v1_create_source(context->manager); + + context->devices = NULL; + + proto->context = context; + proto->listener = NULL; + + return proto; +} + /* `wl_pointer.enter` callback */ static void pointer_enter(void* data, struct wl_pointer* wl_pointer, MwU32 serial, struct wl_surface* surface, wl_fixed_t surface_x, @@ -295,6 +355,19 @@ static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat, self->wayland.pointer = wl_seat_get_pointer(wl_seat); wl_pointer_add_listener(self->wayland.pointer, &pointer_listener, data); } + + /* primary selection support */ + if(WAYLAND_GET_INTERFACE(self->wayland, zwp_primary_selection_device_manager_v1) != NULL) { + primary_selection_context_t* primary_selection = WAYLAND_GET_INTERFACE(self->wayland, zwp_primary_selection_device_manager_v1)->context; + primary_selection_device_context_t* device_ctx = malloc(sizeof(primary_selection_device_context_t)); + + device_ctx->device = + zwp_primary_selection_device_manager_v1_get_device(primary_selection->manager, wl_seat); + + zwp_primary_selection_device_v1_add_listener(device_ctx->device, &primary_selection->listener, device_ctx); + + arrpush(primary_selection->devices, device_ctx); + } }; static void output_geometry(void* data, @@ -636,6 +709,7 @@ static void setup_callbacks(struct _MwLLWayland* wayland) { WL_INTERFACE(wl_compositor); WL_INTERFACE(wl_seat); WL_INTERFACE(wl_output); + WL_INTERFACE(zwp_primary_selection_device_manager_v1); if(wayland->type == MWLL_WAYLAND_TOPLEVEL) { WL_INTERFACE(xdg_wm_base); WL_INTERFACE(zxdg_decoration_manager_v1); @@ -799,6 +873,19 @@ static void MwLLDestroyImpl(MwLL handle) { buffer_destroy(&handle->wayland.cursor); wl_region_destroy(handle->wayland.region); + if(WAYLAND_GET_INTERFACE(handle->wayland, zwp_primary_selection_device_manager_v1) != NULL) { + primary_selection_context_t* primary_selection = WAYLAND_GET_INTERFACE(handle->wayland, zwp_primary_selection_device_manager_v1)->context; + int i; + + for(i = 0; i < arrlen(primary_selection->devices); i++) { + zwp_primary_selection_offer_v1_destroy(primary_selection->devices[i]->offer); + } + + // zwp_primary_selection_source_v1_send(); + + // arrpush(primary_selection->devices, device); + } + free(handle); } @@ -1083,8 +1170,74 @@ static void MwLLSetClipboardImpl(MwLL handle, const char* text) { } static char* MwLLGetClipboardImpl(MwLL handle) { - char* r = NULL; - return r; + if(WAYLAND_GET_INTERFACE(handle->wayland, zwp_primary_selection_device_manager_v1) != NULL) { + enum { + DISPLAY_FD, + KEYREPEAT_FD, + CURSOR_FD + }; + struct pollfd pfd; + primary_selection_context_t* primary_selection = WAYLAND_GET_INTERFACE(handle->wayland, zwp_primary_selection_device_manager_v1)->context; + int i, n = 0; + int fds[2]; + struct timeval timeout; + fd_set set; + char* clip_buffer = NULL; + + pfd.fd = wl_display_get_fd(handle->wayland.display); + pfd.events = POLLIN; + + if(pipe(fds) != 0) { + return NULL; + } + + FD_ZERO(&set); + FD_SET(fds[0], &set); + + timeout.tv_sec = 0; + timeout.tv_usec = 100; + + for(i = 0; i < arrlen(primary_selection->devices); i++) { + primary_selection_device_context_t* device = primary_selection->devices[i]; + size_t size = 0; + char ch; + int rc = 0; + + zwp_primary_selection_offer_v1_receive(device->offer, "text/plain", fds[1]); + + while(MwTRUE) { + rc = wl_display_flush(handle->wayland.display); + if(errno != EAGAIN || rc != -1) { + break; + } + + if(poll(&pfd, 1, -1) == -1) { + break; + } + } + + fcntl(fds[0], F_SETFL, O_NONBLOCK); + + while(MwTRUE) { + rc = select(fds[0] + 1, &set, NULL, NULL, &timeout); + if(rc <= 0) { + break; + } else { + read(fds[0], &ch, 1); + arrpush(clip_buffer, ch); + if(n++ >= 10240) { + break; + } + } + } + return clip_buffer; + } + + // zwp_primary_selection_source_v1_send(); + + // arrpush(primary_selection->devices, device); + } + return NULL; } static void MwLLMakeToolWindowImpl(MwLL handle) { From 59ff6f10087c32050b0692ff295c2cc53bd9ea2a Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 18 Dec 2025 18:21:57 -0700 Subject: [PATCH 043/836] wayland: add icon support --- include/Mw/LowLevel/Wayland.h | 6 ++-- pl/rules.pl | 1 + src/backend/wayland.c | 64 ++++++++++++++++++++++++++++++----- 3 files changed, 61 insertions(+), 10 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index e47caed1e..9c6069311 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -25,6 +25,7 @@ MWDECL int MwLLWaylandCallInit(void); #include "Wayland/xdg-decoration-client-protocol.h" #include "Wayland/cursor-shape-client-protocol.h" #include "Wayland/primary-selection-client-protocol.h" +#include "Wayland/xdg-toplevel-icon-client-protocol.h" #endif struct _MwLLWayland; @@ -124,8 +125,9 @@ struct _MwLLWayland { char* cur_selection; - struct _MwLLWaylandShmBuffer framebuffer; - struct _MwLLWaylandShmBuffer cursor; + struct _MwLLWaylandShmBuffer framebuffer; + struct _MwLLWaylandShmBuffer cursor; + struct _MwLLWaylandShmBuffer* icon; cairo_surface_t* cs; cairo_t* cairo; diff --git a/pl/rules.pl b/pl/rules.pl index 094d8effd..f34ee2baf 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -34,6 +34,7 @@ if (grep(/^wayland$/, @backends)) { scan_wayland_protocol("stable", "xdg-shell", ""); scan_wayland_protocol("stable", "tablet", "-v2"); + scan_wayland_protocol("staging", "xdg-toplevel-icon", "-v1"); scan_wayland_protocol("staging", "cursor-shape", "-v1"); scan_wayland_protocol("unstable", "xdg-decoration", "-unstable-v1"); scan_wayland_protocol("unstable", "primary-selection", "-unstable-v1"); diff --git a/src/backend/wayland.c b/src/backend/wayland.c index ed730ad9e..0c262b990 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -552,14 +552,11 @@ static wayland_protocol_t* wl_shm_setup(MwU32 name, struct _MwLLWayland* wayland return NULL; } -static void update_framebuffer(struct _MwLLWayland* wayland) { - struct _MwLLWaylandShmBuffer* buffer = &wayland->framebuffer; +static void update_buffer(struct _MwLLWaylandShmBuffer* buffer) { fsync(buffer->fd); - if(wayland->configured && buffer->setup) { - wl_surface_attach(wayland->framebuffer.surface, buffer->shm_buffer, wayland->x, wayland->y); - wl_surface_commit(wayland->framebuffer.surface); - } + wl_surface_attach(buffer->surface, buffer->shm_buffer, 0, 0); + wl_surface_commit(buffer->surface); } static void buffer_setup(struct _MwLLWaylandShmBuffer* buffer, MwU32 width, MwU32 height) { @@ -613,7 +610,7 @@ static void framebuffer_setup(struct _MwLLWayland* wayland) { wayland->cairo = cairo_create(wayland->cs); memset(wayland->framebuffer.buf, 255, wayland->framebuffer.buf_size); - update_framebuffer(wayland); + update_buffer(&wayland->framebuffer); }; static void framebuffer_destroy(struct _MwLLWayland* wayland) { buffer_destroy(&wayland->framebuffer); @@ -636,6 +633,16 @@ static void region_setup(MwLL handle) { wl_surface_set_opaque_region(handle->wayland.framebuffer.surface, handle->wayland.region); } +/* wl_shm setup function */ +static wayland_protocol_t* xdg_toplevel_icon_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { + wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); + + proto->context = wl_registry_bind(wayland->registry, name, &xdg_toplevel_icon_manager_v1_interface, 1); + proto->listener = NULL; + + return proto; +} + /* Standard Wayland event loop. */ static int event_loop(MwLL handle) { enum { @@ -713,6 +720,7 @@ static void setup_callbacks(struct _MwLLWayland* wayland) { if(wayland->type == MWLL_WAYLAND_TOPLEVEL) { WL_INTERFACE(xdg_wm_base); WL_INTERFACE(zxdg_decoration_manager_v1); + WL_INTERFACE(xdg_toplevel_icon_manager_v1); } else { WL_INTERFACE(wl_subcompositor); } @@ -886,6 +894,11 @@ static void MwLLDestroyImpl(MwLL handle) { // arrpush(primary_selection->devices, device); } + if(handle->wayland.icon != NULL) { + buffer_destroy(handle->wayland.icon); + wl_surface_destroy(handle->wayland.icon->surface); + } + free(handle); } @@ -968,7 +981,7 @@ static void MwLLBeginDrawImpl(MwLL handle) { } static void MwLLEndDrawImpl(MwLL handle) { - update_framebuffer(&handle->wayland); + update_buffer(&handle->wayland.framebuffer); } static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { @@ -1065,6 +1078,41 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { cairo_surface_destroy(cs); } static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { + if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + if(WAYLAND_GET_INTERFACE(handle->wayland, xdg_toplevel_icon_manager_v1) != NULL) { + void* map; + struct xdg_toplevel_icon_manager_v1* icon_manager = WAYLAND_GET_INTERFACE(handle->wayland, xdg_toplevel_icon_manager_v1)->context; + struct xdg_toplevel_icon_v1* icon = xdg_toplevel_icon_manager_v1_create_icon(icon_manager); + MwU64 size = pixmap->common.width * pixmap->common.height * 4; + int i = 0; + + if(handle->wayland.icon == NULL) { + handle->wayland.icon = calloc(sizeof(struct _MwLLWaylandShmBuffer), 0); + handle->wayland.icon->shm = handle->wayland.framebuffer.shm; + } + + if(handle->wayland.icon->setup) { + buffer_destroy(handle->wayland.icon); + wl_surface_destroy(handle->wayland.icon->surface); + } + handle->wayland.icon->surface = wl_compositor_create_surface(handle->wayland.compositor); + + buffer_setup(handle->wayland.icon, pixmap->common.width, pixmap->common.height); + + for(; i < size; i += 2) { + handle->wayland.icon->buf[i] = pixmap->common.raw[i + 2]; + handle->wayland.icon->buf[i + 1] = pixmap->common.raw[i + 1]; + handle->wayland.icon->buf[i + 2] = pixmap->common.raw[i + 0]; + handle->wayland.icon->buf[i + 3] = 255; + } + + update_buffer(handle->wayland.icon); + + xdg_toplevel_icon_v1_add_buffer(icon, handle->wayland.icon->shm_buffer, 1); + + xdg_toplevel_icon_manager_v1_set_icon(icon_manager, handle->wayland.toplevel->xdg_top_level, icon); + } + } } static void MwLLForceRenderImpl(MwLL handle) { From 18511dec2f6d80b984104b88c43f4721a6cf4dc9 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 18 Dec 2025 18:27:44 -0700 Subject: [PATCH 044/836] wayland: remove a few unused fields --- include/Mw/LowLevel/Wayland.h | 7 +------ src/backend/wayland.c | 17 ++++++++++------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 9c6069311..efb0279ff 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -60,7 +60,7 @@ struct _MwLLWaylandSublevel { MwLL topmost_parent; /* The parent at the top of all the other parents. Usually a toplevel. */ }; -/* Shared set of anything needed for a shm buffer. Used both for surface framebuffers, and cursors. */ +/* Shared set of anything needed for a shm buffer. */ struct _MwLLWaylandShmBuffer { struct wl_shm* shm; struct wl_shm_pool* shm_pool; @@ -111,11 +111,8 @@ struct _MwLLWayland { struct wl_pointer* pointer; MwU32 pointer_serial; - MwBool active; /* Whether or not the surface is the one being hovered over. */ - MwU32 mod_state; - MwLL* sublevels; /* stb_ds managed array of any sublevels */ MwBool configured; /* Whether or not xdg_toplevel_configure has run once */ MwU32 x, y, ww, wh; /* Window position */ @@ -123,8 +120,6 @@ struct _MwLLWayland { MwU32 mw, mh; /* Monitor width and height as advertised by wl_output.mode */ - char* cur_selection; - struct _MwLLWaylandShmBuffer framebuffer; struct _MwLLWaylandShmBuffer cursor; struct _MwLLWaylandShmBuffer* icon; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 0c262b990..5d6144d55 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -9,6 +9,16 @@ #include #include +/* TODO: + * - MwLLMakeToolWindowImpl + * - MwLLSetClipboardImpl + * - MwLLGrabPointerImpl + * - MwLLFocusImpl + * - MwLLMakePopupImpl + * - MwLLShowImpl + * - MwLLDetachImpl + */ + /* TODO: find out what FreeBSD and such wants us to include */ #ifdef __FreeBSD__ /* XXX: Untested (nishi) */ @@ -501,11 +511,6 @@ static void xdg_toplevel_configure(void* data, MwLLDispatch(self, resize, NULL); MwLLDispatch(self, draw, NULL); - for(i = 0; i < arrlen(self->wayland.sublevels); i++) { - MwLL handle = self->wayland.sublevels[i]; - region_setup(handle); - } - /*if(!self->wayland.egl_setup) { self->wayland.egl_setup = egl_setup(self, self->wayland.x, self->wayland.y, width, height); } else { @@ -856,8 +861,6 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->wayland.x = x; r->wayland.y = y; - r->wayland.sublevels = NULL; - if(parent == NULL) { setup_toplevel(r, x, y); } else { From b7488b944068e86a99b77904c850b9ed39f53c75 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 18 Dec 2025 19:59:40 -0700 Subject: [PATCH 045/836] wayland: seperate MwLLPending and MwLLNextEvent --- include/Mw/LowLevel/Wayland.h | 3 +++ src/backend/wayland.c | 23 +++++++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index efb0279ff..432055eb7 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -42,6 +42,7 @@ struct _MwLLWaylandTopLevel { struct xdg_toplevel* xdg_top_level; struct xdg_toplevel_listener xdg_toplevel_listener; struct xdg_surface_listener xdg_surface_listener; + struct xdg_positioner* xdg_positioner; struct xkb_context* xkb_context; struct xkb_keymap* xkb_keymap; @@ -111,6 +112,8 @@ struct _MwLLWayland { struct wl_pointer* pointer; MwU32 pointer_serial; + MwBool events_pending; + MwU32 mod_state; MwBool configured; /* Whether or not xdg_toplevel_configure has run once */ diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 5d6144d55..47c1a10f0 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -13,7 +13,6 @@ * - MwLLMakeToolWindowImpl * - MwLLSetClipboardImpl * - MwLLGrabPointerImpl - * - MwLLFocusImpl * - MwLLMakePopupImpl * - MwLLShowImpl * - MwLLDetachImpl @@ -146,6 +145,7 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time p.point = self->wayland.cur_mouse_pos; MwLLDispatch(self, move, &p); + self->wayland.events_pending = MwTRUE; /*timed_redraw(self, time, 50, &self->wayland.cooldown_timer);*/ }; @@ -178,6 +178,7 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri } MwLLDispatch(self, draw, NULL); + self->wayland.events_pending = MwTRUE; }; /* `wl_pointer.axis` callback */ @@ -229,6 +230,7 @@ static void keyboard_enter(void* data, struct wl_array* keys) { MwLL self = data; MwLLDispatch(self, focus_in, NULL); + self->wayland.events_pending = MwTRUE; }; /* `wl_keyboard.leave` callback */ @@ -238,6 +240,7 @@ static void keyboard_leave(void* data, struct wl_surface* surface) { MwLL self = data; MwLLDispatch(self, focus_out, NULL); + self->wayland.events_pending = MwTRUE; }; /* `wl_keyboard.key` callback */ @@ -324,6 +327,7 @@ static void keyboard_key(void* data, } } } + self->wayland.events_pending = MwTRUE; }; /* `wl_keyboard.modifiers` callback */ @@ -616,6 +620,7 @@ static void framebuffer_setup(struct _MwLLWayland* wayland) { memset(wayland->framebuffer.buf, 255, wayland->framebuffer.buf_size); update_buffer(&wayland->framebuffer); + wayland->events_pending = MwTRUE; }; static void framebuffer_destroy(struct _MwLLWayland* wayland) { buffer_destroy(&wayland->framebuffer); @@ -940,6 +945,7 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { } refresh: + MwLLDispatch(handle, draw, NULL); region_setup(handle); framebuffer_destroy(&handle->wayland); @@ -961,6 +967,7 @@ static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLL } cairo_close_path(handle->wayland.cairo); cairo_fill(handle->wayland.cairo); + handle->wayland.events_pending = MwTRUE; } static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { @@ -978,6 +985,7 @@ static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { } cairo_close_path(handle->wayland.cairo); cairo_stroke(handle->wayland.cairo); + handle->wayland.events_pending = MwTRUE; } static void MwLLBeginDrawImpl(MwLL handle) { @@ -985,6 +993,7 @@ static void MwLLBeginDrawImpl(MwLL handle) { static void MwLLEndDrawImpl(MwLL handle) { update_buffer(&handle->wayland.framebuffer); + handle->wayland.events_pending = MwTRUE; } static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { @@ -1008,10 +1017,11 @@ static void MwLLFreeColorImpl(MwLLColor color) { } static int MwLLPendingImpl(MwLL handle) { - return event_loop(handle); + return handle->wayland.events_pending; } static void MwLLNextEventImpl(MwLL handle) { + event_loop(handle); } static void MwLLSetTitleImpl(MwLL handle, const char* title) { @@ -1185,6 +1195,13 @@ static void MwLLShowImpl(MwLL handle, int show) { } static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { + if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + struct xdg_wm_base* wm_base = WAYLAND_GET_INTERFACE(handle->wayland, xdg_wm_base)->context; + + handle->wayland.toplevel->xdg_positioner = xdg_wm_base_create_positioner(wm_base); + xdg_surface_get_popup(handle->wayland.toplevel->xdg_surface, handle->wayland.toplevel->xdg_surface, handle->wayland.toplevel->xdg_positioner); + } else { + } } static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) { @@ -1212,6 +1229,7 @@ static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { } static void MwLLFocusImpl(MwLL handle) { + printf("[WARNING] MwLLFocus not supported on Wayland\n"); } static void MwLLGrabPointerImpl(MwLL handle, int toggle) { @@ -1292,6 +1310,7 @@ static char* MwLLGetClipboardImpl(MwLL handle) { } static void MwLLMakeToolWindowImpl(MwLL handle) { + printf("sub menu\n"); } static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { From 6123fd1304de77eaa67546c9ed6fa826e8e104f3 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 18 Dec 2025 23:32:51 -0700 Subject: [PATCH 046/836] wayland: implement tool windows. add destructors for protocols --- include/Mw/LowLevel/Wayland.h | 46 ++++- src/backend/wayland.c | 342 ++++++++++++++++++++++++++++------ 2 files changed, 321 insertions(+), 67 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 432055eb7..2720d4976 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -36,13 +36,18 @@ typedef struct wayland_protocol { } wayland_protocol_t; typedef wayland_protocol_t*(wl_setup_func)(MwU32, struct _MwLLWayland*); +typedef void(wl_destroy_func)(struct _MwLLWayland* wayland, wayland_protocol_t* data); + +typedef struct wayland_protocol_callback_table { + wl_setup_func* setup; + wl_destroy_func* destroy; +} wayland_protocol_callback_table_t; struct _MwLLWaylandTopLevel { struct xdg_surface* xdg_surface; struct xdg_toplevel* xdg_top_level; struct xdg_toplevel_listener xdg_toplevel_listener; struct xdg_surface_listener xdg_surface_listener; - struct xdg_positioner* xdg_positioner; struct xkb_context* xkb_context; struct xkb_keymap* xkb_keymap; @@ -58,7 +63,17 @@ struct _MwLLWaylandSublevel { struct wl_subcompositor* subcompositor; MwLL parent; - MwLL topmost_parent; /* The parent at the top of all the other parents. Usually a toplevel. */ + + struct xdg_surface* parent_xdg_surface; +}; + +struct _MwLLWaylandPopup { + struct xdg_surface* xdg_surface; + struct xdg_popup* xdg_popup; + struct xdg_positioner* xdg_positioner; + struct xdg_surface_listener xdg_surface_listener; + struct xdg_wm_base* xdg_wm_base; + MwLL parent; }; /* Shared set of anything needed for a shm buffer. */ @@ -75,6 +90,13 @@ struct _MwLLWaylandShmBuffer { MwBool setup; }; +enum _MwLLWaylandType { + MWLL_WAYLAND_UNKNOWN = 0, + MWLL_WAYLAND_TOPLEVEL, + MWLL_WAYLAND_SUBLEVEL, + MWLL_WAYLAND_POPUP, +}; + struct _MwLLWayland { struct _MwLLCommon common; @@ -83,17 +105,17 @@ struct _MwLLWayland { struct _MwLLWaylandTopLevel* toplevel; /* Pointer for data that's only loaded if the widget is a sublevel */ struct _MwLLWaylandSublevel* sublevel; + /* Pointer for data that's only loaded if the widget is a popup */ + struct _MwLLWaylandPopup* popup; }; - enum { - MWLL_WAYLAND_TOPLEVEL = 0, - MWLL_WAYLAND_SUBLEVEL, /* Sublevels are surfaces that have the toplevel as a parent. Some parts of the code also call them subwidgets. */ - } type; + enum _MwLLWaylandType type; + enum _MwLLWaylandType type_to_be; /* Map of Wayland interfaces to their relevant setup functions. */ struct { - const char* key; - wl_setup_func* value; + const char* key; + wayland_protocol_callback_table_t* value; }* wl_protocol_setup_map; /* Map of Wayland interfaces to any information we keep about them once we've registered them. */ @@ -109,10 +131,12 @@ struct _MwLLWayland { struct wl_region* region; struct wl_output* output; - struct wl_pointer* pointer; - MwU32 pointer_serial; + struct wl_pointer* pointer; + struct wl_keyboard* keyboard; + MwU32 pointer_serial; MwBool events_pending; + MwBool test; MwU32 mod_state; @@ -123,6 +147,8 @@ struct _MwLLWayland { MwU32 mw, mh; /* Monitor width and height as advertised by wl_output.mode */ + MwLL parent; + struct _MwLLWaylandShmBuffer framebuffer; struct _MwLLWaylandShmBuffer cursor; struct _MwLLWaylandShmBuffer* icon; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 47c1a10f0..5c65906e6 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -10,7 +10,6 @@ #include /* TODO: - * - MwLLMakeToolWindowImpl * - MwLLSetClipboardImpl * - MwLLGrabPointerImpl * - MwLLMakePopupImpl @@ -32,6 +31,8 @@ static void framebuffer_setup(struct _MwLLWayland* wayland); /* Destroy the framebuffer */ static void framebuffer_destroy(struct _MwLLWayland* handle); +static void buffer_destroy(struct _MwLLWaylandShmBuffer* buffer); + static void region_setup(MwLL handle); static void region_invalidate(MwLL handle); @@ -44,12 +45,11 @@ static void new_protocol(void* data, struct wl_registry* registry, MwU32 version) { struct _MwLLWayland* wayland = data; - wl_setup_func* func = shget(wayland->wl_protocol_setup_map, interface); - if(func != NULL) { + wayland_protocol_callback_table_t* cb = shget(wayland->wl_protocol_setup_map, interface); + if(cb != NULL) { char* inter = malloc(strlen(interface)); strcpy(inter, interface); - - shput(wayland->wl_protocol_map, inter, func(name, data)); + shput(wayland->wl_protocol_map, inter, cb->setup(name, data)); } else { /* printf("unknown interface %s\n", interface); */ } @@ -59,7 +59,7 @@ static void new_protocol(void* data, struct wl_registry* registry, static void protocol_removed(void* data, struct wl_registry* registry, MwU32 name) { - + printf("%d destroyed\n", name); }; static void offer_offer(void* data, @@ -119,6 +119,25 @@ static wayland_protocol_t* zwp_primary_selection_device_manager_v1_setup(MwU32 n return proto; } +static void zwp_primary_selection_device_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + primary_selection_context_t* context = data->context; + int i; + + zwp_primary_selection_device_manager_v1_destroy(context->manager); + + for(i = 0; i < arrlen(context->devices); i++) { + primary_selection_device_context_t* device = context->devices[i]; + // zwp_primary_selection_device_v1_destroy(device->device); + // zwp_primary_selection_offer_v1_destroy(device->offer); + free(device); + } + arrfree(context->devices); + + zwp_primary_selection_source_v1_destroy(context->source); + + free(data->listener); +} + /* `wl_pointer.enter` callback */ static void pointer_enter(void* data, struct wl_pointer* wl_pointer, MwU32 serial, struct wl_surface* surface, wl_fixed_t surface_x, @@ -362,8 +381,8 @@ static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat, MwU32 capabilities) { MwLL self = data; if(capabilities & WL_SEAT_CAPABILITY_KEYBOARD) { - struct wl_keyboard* keyboard = wl_seat_get_keyboard(wl_seat); - wl_keyboard_add_listener(keyboard, &keyboard_listener, data); + self->wayland.keyboard = wl_seat_get_keyboard(wl_seat); + wl_keyboard_add_listener(self->wayland.keyboard, &keyboard_listener, data); } if(capabilities & WL_SEAT_CAPABILITY_POINTER) { self->wayland.pointer = wl_seat_get_pointer(wl_seat); @@ -380,6 +399,8 @@ static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat, zwp_primary_selection_device_v1_add_listener(device_ctx->device, &primary_selection->listener, device_ctx); + device_ctx->offer = NULL; + arrpush(primary_selection->devices, device_ctx); } }; @@ -431,6 +452,11 @@ static wayland_protocol_t* wl_seat_setup(MwU32 name, MwLL ll) { return proto; } +static void wl_seat_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + free(data->listener); + wl_seat_destroy(data->context); +} + /* wl_output setup function */ static wayland_protocol_t* wl_output_setup(MwU32 name, MwLL ll) { ll->wayland.output = wl_registry_bind(ll->wayland.registry, name, &wl_output_interface, 1); @@ -439,6 +465,10 @@ static wayland_protocol_t* wl_output_setup(MwU32 name, MwLL ll) { return NULL; } +static void wl_output_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + // wl_output_destroy(wayland->output); +} + /* wl_compositor setup function */ static wayland_protocol_t* wl_compositor_setup(MwU32 name, struct _MwLLWayland* wayland) { wayland->compositor = wl_registry_bind(wayland->registry, name, &wl_compositor_interface, 1); @@ -446,6 +476,10 @@ static wayland_protocol_t* wl_compositor_setup(MwU32 name, struct _MwLLWayland* return NULL; } +static void wl_compositor_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + // wl_compositor_destroy(wayland->compositor); +} + /* wl_subcompositor setup function */ static wayland_protocol_t* wl_subcompositor_setup(MwU32 name, struct _MwLLWayland* wayland) { wayland->sublevel->subcompositor = wl_registry_bind(wayland->registry, name, &wl_subcompositor_interface, 1); @@ -453,6 +487,10 @@ static wayland_protocol_t* wl_subcompositor_setup(MwU32 name, struct _MwLLWaylan return NULL; } +static void wl_subcompositor_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + wl_subcompositor_destroy(wayland->sublevel->subcompositor); +} + /* xdg_wm_base setup function */ static wayland_protocol_t* xdg_wm_base_setup(MwU32 name, struct _MwLLWayland* wayland) { wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); @@ -466,6 +504,11 @@ static wayland_protocol_t* xdg_wm_base_setup(MwU32 name, struct _MwLLWayland* wa return proto; } +static void xdg_wm_base_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + xdg_wm_base_destroy(data->context); + free(data->listener); +} + /* the two decoration manager constructs */ typedef struct zxdg_decoration_manager_v1_context { struct zxdg_decoration_manager_v1* manager; @@ -486,6 +529,13 @@ static wayland_protocol_t* zxdg_decoration_manager_v1_setup(MwU32 name, struct _ return proto; } +static void zxdg_decoration_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + zxdg_decoration_manager_v1_context_t* context = data->context; + + zxdg_decoration_manager_v1_destroy(context->manager); + zxdg_toplevel_decoration_v1_destroy(context->decoration); +} + /* `xdg_toplevel.close` callback */ static void xdg_toplevel_configure(void* data, struct xdg_toplevel* xdg_toplevel, @@ -561,6 +611,10 @@ static wayland_protocol_t* wl_shm_setup(MwU32 name, struct _MwLLWayland* wayland return NULL; } +static void wl_shm_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + // buffer_destroy(&wayland->framebuffer); +} + static void update_buffer(struct _MwLLWaylandShmBuffer* buffer) { fsync(buffer->fd); @@ -643,7 +697,6 @@ static void region_setup(MwLL handle) { wl_surface_set_opaque_region(handle->wayland.framebuffer.surface, handle->wayland.region); } -/* wl_shm setup function */ static wayland_protocol_t* xdg_toplevel_icon_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); @@ -653,13 +706,32 @@ static wayland_protocol_t* xdg_toplevel_icon_manager_v1_setup(MwU32 name, struct return proto; } +static void xdg_toplevel_icon_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + free(data->listener); + xdg_toplevel_icon_manager_v1_destroy(data->context); +} + +/* Flush Wayland events */ +static void wl_flush(MwLL handle) { + struct pollfd pfd; + int rc; + + pfd.fd = wl_display_get_fd(handle->wayland.display); + pfd.events = POLLIN; + while(MwTRUE) { + rc = wl_display_flush(handle->wayland.display); + if(errno != EAGAIN || rc != -1) { + break; + } + + if(poll(&pfd, 1, -1) == -1) { + break; + } + } +} + /* Standard Wayland event loop. */ static int event_loop(MwLL handle) { - enum { - DISPLAY_FD, - KEYREPEAT_FD, - CURSOR_FD - }; struct pollfd fd; int timeout = 1; struct _MwLLWayland* wayland = &handle->wayland; @@ -715,7 +787,12 @@ static int event_loop(MwLL handle) { static void setup_callbacks(struct _MwLLWayland* wayland) { /* Convience macro for adding the interface functions to the setup map */ #define WL_INTERFACE(interface) \ - shput(wayland->wl_protocol_setup_map, interface##_interface.name, (wl_setup_func*)interface##_setup); + do { \ + wayland_protocol_callback_table_t* cb = malloc(sizeof(wayland_protocol_callback_table_t)); \ + cb->setup = (wl_setup_func*)interface##_setup; \ + cb->destroy = (wl_destroy_func*)interface##_interface_destroy; \ + shput(wayland->wl_protocol_setup_map, interface##_interface.name, cb); \ + } while(0); wayland->registry_listener.global = new_protocol; wayland->registry_listener.global_remove = protocol_removed; @@ -731,6 +808,8 @@ static void setup_callbacks(struct _MwLLWayland* wayland) { WL_INTERFACE(xdg_wm_base); WL_INTERFACE(zxdg_decoration_manager_v1); WL_INTERFACE(xdg_toplevel_icon_manager_v1); + } else if(wayland->type == MWLL_WAYLAND_POPUP) { + WL_INTERFACE(xdg_wm_base); } else { WL_INTERFACE(wl_subcompositor); } @@ -803,10 +882,28 @@ static void setup_toplevel(MwLL r, int x, int y) { } else { printf("zxdg null\n"); } +} - /*egl_resetup(r); - MwLLDispatch(r, draw, NULL); - recursive_draw(r);*/ +/* Toplevel destroy function */ +static void destroy_toplevel(MwLL r) { + int i; + + if(shget(r->wayland.wl_protocol_map, zxdg_decoration_manager_v1_interface.name) != NULL) { + zxdg_decoration_manager_v1_context_t* dec = WAYLAND_GET_INTERFACE(r->wayland, zxdg_decoration_manager_v1)->context; + zxdg_decoration_manager_v1_destroy(dec->manager); + } + + wl_compositor_destroy(r->wayland.compositor); + + xdg_surface_destroy(r->wayland.toplevel->xdg_surface); + + xdg_toplevel_destroy(r->wayland.toplevel->xdg_top_level); + + xkb_context_unref(r->wayland.toplevel->xkb_context); + + wl_registry_destroy(r->wayland.registry); + + wl_display_disconnect(r->wayland.display); } /* Sublevel setup function */ @@ -814,7 +911,14 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { struct wl_compositor* compositor = parent->wayland.compositor; struct wl_surface* parent_surface = parent->wayland.framebuffer.surface; - r->wayland.sublevel = malloc(sizeof(struct _MwLLWaylandSublevel)); + r->wayland.sublevel = malloc(sizeof(struct _MwLLWaylandSublevel)); + r->wayland.sublevel->parent = parent; + + if(parent->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + r->wayland.sublevel->parent_xdg_surface = parent->wayland.toplevel->xdg_surface; + } else { + r->wayland.sublevel->parent_xdg_surface = parent->wayland.sublevel->parent_xdg_surface; + } r->wayland.type = MWLL_WAYLAND_SUBLEVEL; @@ -843,6 +947,113 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { r->wayland.configured = MwTRUE; } +/* Sublevel setup function */ +static void destroy_sublevel(MwLL r) { + wl_subsurface_destroy(r->wayland.sublevel->subsurface); + + wl_surface_destroy(r->wayland.framebuffer.surface); + + free(r->wayland.sublevel); +} + +static void popup_configure(void* data, + struct xdg_popup* xdg_popup, + int32_t x, + int32_t y, + int32_t width, + int32_t height) { + MwLL self = data; + + self->wayland.x = x; + self->wayland.y = y; + self->wayland.ww = width; + self->wayland.wh = height; +}; + +static void popup_done(void* data, + struct xdg_popup* xdg_popup) { + printf("Sdfgs\n"); +}; + +struct xdg_popup_listener popup_listener = { + .configure = popup_configure, + .popup_done = popup_done, +}; + +/* Popup setup function */ +static void setup_popup(MwLL r) { + int i; + struct xdg_surface* xdg_surface; + MwLL topmost_parent = r->wayland.parent; + + while(topmost_parent->wayland.type != MWLL_WAYLAND_TOPLEVEL) { + topmost_parent = topmost_parent->wayland.parent; + } + + r->wayland.type = MWLL_WAYLAND_POPUP; + + setup_callbacks(&r->wayland); + + /* Do a roundtrip to ensure all interfaces are setup. */ + r->wayland.registry = wl_display_get_registry(r->wayland.display); + wl_registry_add_listener(r->wayland.registry, &r->wayland.registry_listener, r); + if(wl_display_roundtrip(r->wayland.display) == -1) { + printf("roundtrip failed\n"); + raise(SIGTRAP); + return; + } + + r->wayland.popup = calloc(sizeof(struct _MwLLWaylandPopup), 0); + // r->wayland.popup->parent = parent; + + r->wayland.framebuffer.surface = wl_compositor_create_surface(r->wayland.compositor); + + r->wayland.popup->xdg_wm_base = WAYLAND_GET_INTERFACE(r->wayland, xdg_wm_base)->context; + + r->wayland.popup->xdg_positioner = xdg_wm_base_create_positioner(r->wayland.popup->xdg_wm_base); + + xdg_positioner_set_size(r->wayland.popup->xdg_positioner, r->wayland.ww, r->wayland.wh); + xdg_positioner_set_anchor_rect( + r->wayland.popup->xdg_positioner, + topmost_parent->wayland.cur_mouse_pos.x, + topmost_parent->wayland.cur_mouse_pos.y, + 1, 1); + + xdg_surface = topmost_parent->wayland.toplevel->xdg_surface; + + r->wayland.popup->xdg_surface = + xdg_wm_base_get_xdg_surface(r->wayland.popup->xdg_wm_base, r->wayland.framebuffer.surface); + + r->wayland.popup->xdg_popup = xdg_surface_get_popup( + r->wayland.popup->xdg_surface, + xdg_surface, + r->wayland.popup->xdg_positioner); + + xdg_popup_add_listener(r->wayland.popup->xdg_popup, &popup_listener, r); + + r->wayland.popup->xdg_surface_listener.configure = xdg_surface_configure; + + xdg_surface_add_listener(r->wayland.popup->xdg_surface, &r->wayland.popup->xdg_surface_listener, r); + + /* Perform the initial commit and wait for the first configure event */ + wl_surface_commit(r->wayland.framebuffer.surface); + event_loop(r); +} +/* Popup destroy function */ +static void destroy_popup(MwLL r) { + xdg_popup_destroy(r->wayland.popup->xdg_popup); + + xdg_surface_destroy(r->wayland.popup->xdg_surface); + + xdg_positioner_destroy(r->wayland.popup->xdg_positioner); + + wl_surface_destroy(r->wayland.framebuffer.surface); + + // free(r->wayland.popup); + + wl_registry_destroy(r->wayland.registry); +} + static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLL r; r = malloc(sizeof(*r)); @@ -861,10 +1072,11 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { y = 0; } - r->wayland.ww = width; - r->wayland.wh = height; - r->wayland.x = x; - r->wayland.y = y; + r->wayland.ww = width; + r->wayland.wh = height; + r->wayland.x = x; + r->wayland.y = y; + r->wayland.parent = parent; if(parent == NULL) { setup_toplevel(r, x, y); @@ -883,6 +1095,10 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { } static void MwLLDestroyImpl(MwLL handle) { + int i; + + event_loop(handle); + MwLLDestroyCommon(handle); buffer_destroy(&handle->wayland.framebuffer); @@ -891,15 +1107,10 @@ static void MwLLDestroyImpl(MwLL handle) { if(WAYLAND_GET_INTERFACE(handle->wayland, zwp_primary_selection_device_manager_v1) != NULL) { primary_selection_context_t* primary_selection = WAYLAND_GET_INTERFACE(handle->wayland, zwp_primary_selection_device_manager_v1)->context; - int i; for(i = 0; i < arrlen(primary_selection->devices); i++) { zwp_primary_selection_offer_v1_destroy(primary_selection->devices[i]->offer); } - - // zwp_primary_selection_source_v1_send(); - - // arrpush(primary_selection->devices, device); } if(handle->wayland.icon != NULL) { @@ -907,6 +1118,29 @@ static void MwLLDestroyImpl(MwLL handle) { wl_surface_destroy(handle->wayland.icon->surface); } + if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + destroy_toplevel(handle); + } else if(handle->wayland.type == MWLL_WAYLAND_SUBLEVEL) { + destroy_sublevel(handle); + } else if(handle->wayland.type == MWLL_WAYLAND_POPUP) { + destroy_popup(handle); + } + + for(i = 0; i < shlen(handle->wayland.wl_protocol_setup_map); i++) { + void* ctx = shget(handle->wayland.wl_protocol_map, handle->wayland.wl_protocol_setup_map[i].key); + + handle->wayland.wl_protocol_setup_map[i].value->destroy(&handle->wayland, ctx); + } + shfree(handle->wayland.wl_protocol_map); + shfree(handle->wayland.wl_protocol_setup_map); + + if(handle->wayland.pointer != NULL) { + wl_pointer_destroy(handle->wayland.pointer); + } + if(handle->wayland.keyboard != NULL) { + wl_keyboard_destroy(handle->wayland.keyboard); + } + free(handle); } @@ -1017,11 +1251,10 @@ static void MwLLFreeColorImpl(MwLLColor color) { } static int MwLLPendingImpl(MwLL handle) { - return handle->wayland.events_pending; + return event_loop(handle); } static void MwLLNextEventImpl(MwLL handle) { - event_loop(handle); } static void MwLLSetTitleImpl(MwLL handle, const char* title) { @@ -1189,19 +1422,32 @@ static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { } static void MwLLDetachImpl(MwLL handle, MwPoint* point) { + switch(handle->wayland.type) { + case MWLL_WAYLAND_UNKNOWN: + case MWLL_WAYLAND_TOPLEVEL: + destroy_toplevel(handle); + break; + case MWLL_WAYLAND_SUBLEVEL: + destroy_sublevel(handle); + break; + case MWLL_WAYLAND_POPUP: + return; + } + + switch(handle->wayland.type_to_be) { + case MWLL_WAYLAND_POPUP: + setup_popup(handle); + return; + default: + setup_toplevel(handle, point->x, point->y); + break; + } } static void MwLLShowImpl(MwLL handle, int show) { } static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { - if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { - struct xdg_wm_base* wm_base = WAYLAND_GET_INTERFACE(handle->wayland, xdg_wm_base)->context; - - handle->wayland.toplevel->xdg_positioner = xdg_wm_base_create_positioner(wm_base); - xdg_surface_get_popup(handle->wayland.toplevel->xdg_surface, handle->wayland.toplevel->xdg_surface, handle->wayland.toplevel->xdg_positioner); - } else { - } } static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) { @@ -1240,12 +1486,6 @@ static void MwLLSetClipboardImpl(MwLL handle, const char* text) { static char* MwLLGetClipboardImpl(MwLL handle) { if(WAYLAND_GET_INTERFACE(handle->wayland, zwp_primary_selection_device_manager_v1) != NULL) { - enum { - DISPLAY_FD, - KEYREPEAT_FD, - CURSOR_FD - }; - struct pollfd pfd; primary_selection_context_t* primary_selection = WAYLAND_GET_INTERFACE(handle->wayland, zwp_primary_selection_device_manager_v1)->context; int i, n = 0; int fds[2]; @@ -1253,9 +1493,6 @@ static char* MwLLGetClipboardImpl(MwLL handle) { fd_set set; char* clip_buffer = NULL; - pfd.fd = wl_display_get_fd(handle->wayland.display); - pfd.events = POLLIN; - if(pipe(fds) != 0) { return NULL; } @@ -1274,16 +1511,7 @@ static char* MwLLGetClipboardImpl(MwLL handle) { zwp_primary_selection_offer_v1_receive(device->offer, "text/plain", fds[1]); - while(MwTRUE) { - rc = wl_display_flush(handle->wayland.display); - if(errno != EAGAIN || rc != -1) { - break; - } - - if(poll(&pfd, 1, -1) == -1) { - break; - } - } + wl_flush(handle); fcntl(fds[0], F_SETFL, O_NONBLOCK); @@ -1310,7 +1538,7 @@ static char* MwLLGetClipboardImpl(MwLL handle) { } static void MwLLMakeToolWindowImpl(MwLL handle) { - printf("sub menu\n"); + handle->wayland.type_to_be = MWLL_WAYLAND_POPUP; } static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { From a384add9e973d13b050411c14a3286c90916a81b Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 18 Dec 2025 23:50:03 -0700 Subject: [PATCH 047/836] wayland: properly do MwLLPending and MwLLNextEvent --- src/backend/wayland.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 5c65906e6..f05511724 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -972,7 +972,6 @@ static void popup_configure(void* data, static void popup_done(void* data, struct xdg_popup* xdg_popup) { - printf("Sdfgs\n"); }; struct xdg_popup_listener popup_listener = { @@ -1251,10 +1250,14 @@ static void MwLLFreeColorImpl(MwLLColor color) { } static int MwLLPendingImpl(MwLL handle) { - return event_loop(handle); + return handle->wayland.events_pending || wl_display_dispatch(handle->wayland.display); } static void MwLLNextEventImpl(MwLL handle) { + event_loop(handle); + if(handle->wayland.events_pending) { + handle->wayland.events_pending = MwFALSE; + } } static void MwLLSetTitleImpl(MwLL handle, const char* title) { From 604ff72d6ec7edc4faea4629a6398da9544a03db Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 19 Dec 2025 22:35:26 +0900 Subject: [PATCH 048/836] add MwNbitmapFont --- include/Mw/StringDefs.h | 1 + milsko.xml | 2 ++ src/core.c | 4 ++++ src/text.c | 6 +++--- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index 071137332..deac295e0 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -35,6 +35,7 @@ #define MwNratio "Iratio" #define MwNfixedSize "IfixedSize" #define MwNmargin "Imargin" +#define MwNbitmapFont "IbitmapFont" #define MwNtitle "Stitle" #define MwNtext "Stext" diff --git a/milsko.xml b/milsko.xml index 758eb1f88..d46e0d3f7 100644 --- a/milsko.xml +++ b/milsko.xml @@ -51,6 +51,7 @@ - MwNbackgroundPixmap - MwNratio - MwNfixedSize + - MwNbitmapFont Integer properties must be prefixed with I. String properties must be prefixed with S. @@ -87,6 +88,7 @@ + diff --git a/src/core.c b/src/core.c index 0ae8d4aab..c68e39a91 100644 --- a/src/core.c +++ b/src/core.c @@ -593,8 +593,12 @@ void MwSetDefault(MwWidget handle) { inherit_integer(handle, MwNmodernLook, 1); #endif #if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) + inherit_integer(handle, MwNbitmapFont, 0); + set_font(handle); set_boldfont(handle); +#else + inherit_integer(handle, MwNbitmapFont, 1); #endif } diff --git a/src/text.c b/src/text.c index 7d94e5cf4..a9ff6a0a5 100644 --- a/src/text.c +++ b/src/text.c @@ -294,7 +294,7 @@ static int ttf_MwTextHeight(MwWidget handle, int count) { void MwDrawText(MwWidget handle, MwPoint* point, const char* text, int bold, int align, MwLLColor color) { if(strlen(text) == 0) return; #ifdef TTF - if(ttf_MwDrawText(handle, point, text, bold, align, color)) + if(!MwGetInteger(handle, MwNbitmapFont) && ttf_MwDrawText(handle, point, text, bold, align, color)) #endif bitmap_MwDrawText(handle, point, text, bold, align, color); } @@ -304,7 +304,7 @@ int MwTextWidth(MwWidget handle, const char* text) { #ifdef TTF int st; - if((st = ttf_MwTextWidth(handle, text)) != -1) return st; + if(!MwGetInteger(handle, MwNbitmapFont) && (st = ttf_MwTextWidth(handle, text)) != -1) return st; #else (void)handle; @@ -331,7 +331,7 @@ int MwTextHeight(MwWidget handle, const char* text) { if(out == '\n') c++; } #ifdef TTF - if((st = ttf_MwTextHeight(handle, c)) != -1) return st; + if(!MwGetInteger(handle, MwNbitmapFont) && (st = ttf_MwTextHeight(handle, c)) != -1) return st; #endif return FontHeight * c; } From dc8168df129041dcc25e2d7b3123d07a0aa7cf9d Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 19 Dec 2025 22:36:49 +0900 Subject: [PATCH 049/836] fix --- src/text.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/text.c b/src/text.c index a9ff6a0a5..c0e00c6db 100644 --- a/src/text.c +++ b/src/text.c @@ -294,7 +294,7 @@ static int ttf_MwTextHeight(MwWidget handle, int count) { void MwDrawText(MwWidget handle, MwPoint* point, const char* text, int bold, int align, MwLLColor color) { if(strlen(text) == 0) return; #ifdef TTF - if(!MwGetInteger(handle, MwNbitmapFont) && ttf_MwDrawText(handle, point, text, bold, align, color)) + if(MwGetInteger(handle, MwNbitmapFont) || ttf_MwDrawText(handle, point, text, bold, align, color)) #endif bitmap_MwDrawText(handle, point, text, bold, align, color); } From a67a0c11f8e42033d246ae284e51ebd97c8e9672 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 19 Dec 2025 23:31:05 +0900 Subject: [PATCH 050/836] fix --- pl/rules.pl | 10 +++++----- src/core.c | 43 +++++++++++++++++++++---------------------- 2 files changed, 26 insertions(+), 27 deletions(-) diff --git a/pl/rules.pl b/pl/rules.pl index f34ee2baf..71f38c016 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -32,11 +32,11 @@ if (grep(/^wayland$/, @backends)) { add_cflags(`pkg-config --cflags cairo wayland-client xkbcommon`); add_libs(`pkg-config --libs cairo wayland-client xkbcommon`); - scan_wayland_protocol("stable", "xdg-shell", ""); - scan_wayland_protocol("stable", "tablet", "-v2"); - scan_wayland_protocol("staging", "xdg-toplevel-icon", "-v1"); - scan_wayland_protocol("staging", "cursor-shape", "-v1"); - scan_wayland_protocol("unstable", "xdg-decoration", "-unstable-v1"); + scan_wayland_protocol("stable", "xdg-shell", ""); + scan_wayland_protocol("stable", "tablet", "-v2"); + scan_wayland_protocol("staging", "xdg-toplevel-icon", "-v1"); + scan_wayland_protocol("staging", "cursor-shape", "-v1"); + scan_wayland_protocol("unstable", "xdg-decoration", "-unstable-v1"); scan_wayland_protocol("unstable", "primary-selection", "-unstable-v1"); $gl_libs = "-lEGL -lwayland-egl lGL -lGLU"; diff --git a/src/core.c b/src/core.c index c68e39a91..cde8b0d72 100644 --- a/src/core.c +++ b/src/core.c @@ -428,6 +428,15 @@ void MwSetVoid(MwWidget handle, const char* key, void* value) { } } +static int inherit_integer(MwWidget handle, const char* key, int default_v) { + int v; + + if(handle->parent != NULL && (v = MwGetInteger(handle->parent, key)) != MwDEFAULT) { + return v; + } + return default_v; +} + int MwGetInteger(MwWidget handle, const char* key) { if(strcmp(key, MwNx) == 0 || strcmp(key, MwNy) == 0 || strcmp(key, MwNwidth) == 0 || strcmp(key, MwNheight) == 0) { int x, y; @@ -441,6 +450,18 @@ int MwGetInteger(MwWidget handle, const char* key) { if(strcmp(key, MwNheight) == 0) return h; return MwDEFAULT; } else { + if(shgeti(handle->integer, key) == -1) { +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) + if(strcmp(key, MwNbitmapFont) == 0) return inherit_integer(handle, key, 0); +#else + if(strcmp(key, MwNbitmapFont) == 0) return inherit_integer(handle, key, 1); +#endif +#ifdef USE_CLASSIC_THEME + if(strcmp(key, MwNmodernLook) == 0) return inherit_integer(handle, key, 0); +#else + if(strcmp(key, MwNmodernLook) == 0) return inherit_integer(handle, key, 1); +#endif + } return shget(handle->integer, key); } } @@ -541,19 +562,6 @@ void MwVaListApply(MwWidget handle, va_list va) { } } -static void inherit_integer(MwWidget handle, const char* key, int default_value) { - int n; - MwWidget h = handle; - while(h != NULL) { - if((n = MwGetInteger(h, key)) != MwDEFAULT) { - MwSetInteger(handle, key, n); - return; - } - h = h->parent; - } - MwSetInteger(handle, key, default_value); -} - #if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) static void set_font(MwWidget handle) { void* f; @@ -587,18 +595,9 @@ static void set_boldfont(MwWidget handle) { void MwSetDefault(MwWidget handle) { if(handle->lowlevel != NULL) MwLLSetCursor(handle->lowlevel, &MwCursorDefault, &MwCursorDefaultMask); -#ifdef USE_CLASSIC_THEME - inherit_integer(handle, MwNmodernLook, 0); -#else - inherit_integer(handle, MwNmodernLook, 1); -#endif #if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) - inherit_integer(handle, MwNbitmapFont, 0); - set_font(handle); set_boldfont(handle); -#else - inherit_integer(handle, MwNbitmapFont, 1); #endif } From ab9d0ffc5f5c7a98ec6dff36e4e60db82399808e Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 21 Dec 2025 11:53:47 +0900 Subject: [PATCH 051/836] improve submenu --- src/widget/submenu.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/widget/submenu.c b/src/widget/submenu.c index 09a02744e..3172084c3 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -160,14 +160,14 @@ static void click(MwWidget handle) { } static void mwSubMenuAppearImpl(MwWidget handle, MwMenu menu, MwPoint* point) { - int i, w = 0, h = 0; + int i, w = 0, h = 0; + MwRect rc; + MwPoint p = *point; + + MwGetScreenSize(handle, &rc); handle->internal = menu; - MwLLMakeToolWindow(handle->lowlevel); - MwLLDetach(handle->lowlevel, point); - MwLLEndStateChange(handle->lowlevel); - for(i = 0; i < arrlen(menu->sub); i++) { if(strcmp(menu->sub[i]->name, "----") == 0) { h += MwDefaultBorderWidth(handle) * 2 + 2; @@ -183,6 +183,16 @@ static void mwSubMenuAppearImpl(MwWidget handle, MwMenu menu, MwPoint* point) { w += 10 + 15; h += 3; + MwLLMakeToolWindow(handle->lowlevel); + MwLLDetach(handle->lowlevel, &p); + + if(MwGetInteger(handle, MwNy) + h > rc.height) { + MwVaApply(handle, + MwNy, rc.height - h, + NULL); + } + MwLLEndStateChange(handle->lowlevel); + MwVaApply(handle, MwNwidth, w, MwNheight, h, From f09960195f5a33dd0d878898edd33a5bf13b0fd9 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 21 Dec 2025 12:08:08 +0900 Subject: [PATCH 052/836] submenu --- include/Mw/Widget/SubMenu.h | 11 +++++++++-- src/widget/menu.c | 2 +- src/widget/submenu.c | 15 ++++++++++----- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/include/Mw/Widget/SubMenu.h b/include/Mw/Widget/SubMenu.h index bf26fa862..126a73bbb 100644 --- a/include/Mw/Widget/SubMenu.h +++ b/include/Mw/Widget/SubMenu.h @@ -18,8 +18,15 @@ extern "C" { */ MWDECL MwClass MwSubMenuClass; -MwInline void MwSubMenuAppear(MwWidget handle, MwMenu menu, MwPoint* point) { - MwVaWidgetExecute(handle, "mwSubMenuAppear", NULL, menu, point); +/*! + * @brief Makes submenu appear + * @param handle Handle + * @param menu Menu + * @param point Point + * @param diff_calc Toggles different way to calculate positiion + */ +MwInline void MwSubMenuAppear(MwWidget handle, MwMenu menu, MwPoint* point, int diff_calc) { + MwVaWidgetExecute(handle, "mwSubMenuAppear", NULL, menu, point, diff_calc); } #ifdef __cplusplus diff --git a/src/widget/menu.c b/src/widget/menu.c index ffb8bb60e..327d6f5e7 100644 --- a/src/widget/menu.c +++ b/src/widget/menu.c @@ -129,7 +129,7 @@ static void mouse_down(MwWidget handle, void* ptr) { p2.y = p.y + th / 2 + 5; m->sub[i]->wsub = MwCreateWidget(MwSubMenuClass, "submenu", handle, 0, 0, 0, 0); - MwSubMenuAppear(m->sub[i]->wsub, m->sub[i], &p2); + MwSubMenuAppear(m->sub[i]->wsub, m->sub[i], &p2, 0); } else if(m->sub[i]->wsub != NULL && m->sub[i]->keep) { MwDestroyWidget(m->sub[i]->wsub); m->sub[i]->wsub = NULL; diff --git a/src/widget/submenu.c b/src/widget/submenu.c index 3172084c3..ea51f029b 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -130,7 +130,7 @@ static void click(MwWidget handle) { p.y = rc.y - 3; menu->sub[i]->wsub = MwCreateWidget(MwSubMenuClass, "submenu", handle, 0, 0, 0, 0); - MwSubMenuAppear(menu->sub[i]->wsub, menu->sub[i], &p); + MwSubMenuAppear(menu->sub[i]->wsub, menu->sub[i], &p, 0); i = -1; } else if(menu->sub[i]->wsub != NULL && arrlen(menu->sub[i]->sub) > 0) { while(w->parent->widget_class != MwMenuClass) w = w->parent; @@ -159,7 +159,7 @@ static void click(MwWidget handle) { } } -static void mwSubMenuAppearImpl(MwWidget handle, MwMenu menu, MwPoint* point) { +static void mwSubMenuAppearImpl(MwWidget handle, MwMenu menu, MwPoint* point, int diff_calc) { int i, w = 0, h = 0; MwRect rc; MwPoint p = *point; @@ -183,6 +183,10 @@ static void mwSubMenuAppearImpl(MwWidget handle, MwMenu menu, MwPoint* point) { w += 10 + 15; h += 3; + if(diff_calc) { + p.y = rc.height - p.y - h; + } + MwLLMakeToolWindow(handle->lowlevel); MwLLDetach(handle->lowlevel, &p); @@ -203,9 +207,10 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v (void)out; if(strcmp(name, "mwSubMenuAppear") == 0) { - MwMenu menu = va_arg(va, MwMenu); - MwPoint* point = va_arg(va, MwPoint*); - mwSubMenuAppearImpl(handle, menu, point); + MwMenu menu = va_arg(va, MwMenu); + MwPoint* point = va_arg(va, MwPoint*); + int diff_calc = va_arg(va, int); + mwSubMenuAppearImpl(handle, menu, point, diff_calc); } } From 91d9677bf71fc06fe78acd4b86e75ea9477f7d08 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 21 Dec 2025 14:38:07 +0900 Subject: [PATCH 053/836] add seven segment --- .gitignore | 1 + examples/basic/sevensegment.c | 22 +++ include/Mw/StringDefs.h | 1 + include/Mw/TypeDefs.h | 18 ++ include/Mw/Widget/Label.h | 11 ++ milsko.xml | 10 ++ pl/ostype/NetBSD.pl | 2 +- pl/rules.pl | 1 + src/widget/button.c | 2 + src/widget/label.c | 321 +++++++++++++++++++++++++++++++--- src/widget/scrollbar.c | 30 ++-- 11 files changed, 376 insertions(+), 43 deletions(-) create mode 100644 examples/basic/sevensegment.c diff --git a/.gitignore b/.gitignore index 005ebea58..1dcc6d174 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,5 @@ examples/*/*.exe *.lib *.a /Makefile +/build compile_flags.txt diff --git a/examples/basic/sevensegment.c b/examples/basic/sevensegment.c new file mode 100644 index 000000000..7479da9fc --- /dev/null +++ b/examples/basic/sevensegment.c @@ -0,0 +1,22 @@ +#include + +int main() { + MwWidget wnd, label; + int W = 480, H = 40; + + MwLibraryInit(); + + wnd = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, W, H, + MwNtitle, "seven segment", + NULL); + + label = MwVaCreateWidget(MwLabelClass, "label", wnd, 0, 0, W, H, + MwNtext, " 123456:78.90 abcdef", + MwNsevenSegment, 1, + MwNalignment, MwALIGNMENT_BEGINNING, + NULL); + + MwLabelSetSevenSegment(label, 0, (1 << 0) | (1 << 3) | (1 << 6)); + + MwLoop(wnd); +} diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index deac295e0..f5b723afd 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -36,6 +36,7 @@ #define MwNfixedSize "IfixedSize" #define MwNmargin "Imargin" #define MwNbitmapFont "IbitmapFont" +#define MwNsevenSegment "IsevenSegment" #define MwNtitle "Stitle" #define MwNtext "Stext" diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index 0d2eeca4e..2a6efc715 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -20,6 +20,9 @@ typedef struct _MwViewport* MwViewport; typedef struct _MwListBox* MwListBox; typedef struct _MwComboBox* MwComboBox; typedef struct _MwTreeView* MwTreeView; +typedef struct _MwScrollBar* MwScrollBar; +typedef struct _MwLabel* MwLabel; +typedef struct _MwLabelSegment MwLabelSegment; typedef struct _MwListBoxEntry MwListBoxEntry; typedef struct _MwTreeViewEntry MwTreeViewEntry; typedef struct _MwDirectoryEntry MwDirectoryEntry; @@ -164,6 +167,21 @@ struct _MwTreeView { MwPoint pressed; }; +struct _MwScrollBar { + MwPoint point; + int drag; + int pos; +}; + +struct _MwLabel { + MwLabelSegment* segment; +}; + +struct _MwLabelSegment { + int key; + unsigned char value; +}; + struct _MwDirectoryEntry { char* name; int type; diff --git a/include/Mw/Widget/Label.h b/include/Mw/Widget/Label.h index f11c06b6c..4c7513310 100644 --- a/include/Mw/Widget/Label.h +++ b/include/Mw/Widget/Label.h @@ -17,6 +17,17 @@ extern "C" { */ MWDECL MwClass MwLabelClass; +/*! + * @brief Sets the custom data for seven segment + * @param handle Widget + * @param index Index + * @param data Data, `GFEDCBA` as 7-bit value + * @note See https://en.wikipedia.org/wiki/File:7_Segment_Display_with_Labeled_Segments.svg for what alphabets mean here + * */ +MwInline void MwLabelSetSevenSegment(MwWidget handle, int index, int data) { + MwVaWidgetExecute(handle, "mwLabelSetSevenSegment", NULL, index, data); +} + #ifdef __cplusplus } #endif diff --git a/milsko.xml b/milsko.xml index d46e0d3f7..9448e30a9 100644 --- a/milsko.xml +++ b/milsko.xml @@ -89,6 +89,7 @@ + @@ -536,7 +537,16 @@ + + + + + + + + + diff --git a/pl/ostype/NetBSD.pl b/pl/ostype/NetBSD.pl index de93b1439..0eec1061f 100644 --- a/pl/ostype/NetBSD.pl +++ b/pl/ostype/NetBSD.pl @@ -2,6 +2,6 @@ add_incdir("-I/usr/X11R7/include -I/usr/pkg/include"); add_libdir( "-L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib"); use_backend("x11"); -add_libs("pthread"); +add_libs("-lpthread"); 1; diff --git a/pl/rules.pl b/pl/rules.pl index 71f38c016..1ad3ff3de 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -115,6 +115,7 @@ new_example("examples/basic/combobox"); new_example("examples/basic/treeview"); new_example("examples/basic/box"); new_example("examples/basic/clipboard"); +new_example("examples/basic/sevensegment"); if (param_get("opengl")) { new_example("examples/gldemos/boing", $gl_libs); diff --git a/src/widget/button.c b/src/widget/button.c index dfff6d5bf..7e5b36cdb 100644 --- a/src/widget/button.c +++ b/src/widget/button.c @@ -1,5 +1,7 @@ #include +#include "../../external/stb_ds.h" + static int create(MwWidget handle) { MwSetDefault(handle); diff --git a/src/widget/label.c b/src/widget/label.c index 2cf6a8da3..a2ae407fd 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -1,13 +1,119 @@ #include +#include "../../external/stb_ds.h" + +#define ShortOne 5 +#define LongOne 10 +#define Spacing 2 + static int create(MwWidget handle) { + MwLabel lab = malloc(sizeof(*lab)); + + lab->segment = NULL; + handle->internal = lab; + MwSetDefault(handle); MwSetInteger(handle, MwNalignment, MwALIGNMENT_CENTER); MwSetInteger(handle, MwNbold, 0); + MwSetInteger(handle, MwNsevenSegment, 0); return 0; } +static void destroy(MwWidget handle) { + MwLabel lab = handle->internal; + + hmfree(lab->segment); + + free(handle->internal); +} + +static void draw_v(unsigned char* raw, int x, int y, int stride, MwLLColor text) { + int cy, cx, b; + for(cy = y; cy < y + LongOne; cy++) { + for(cx = x; cx < x + ShortOne; cx++) { + unsigned char* px = &raw[(cy * stride + cx) * 4]; + px[0] = text->common.red; + px[1] = text->common.green; + px[2] = text->common.blue; + px[3] = 255; + } + } + + b = y - (ShortOne - 1) / 2; + for(cy = b; cy < b + (ShortOne - 1) / 2; cy++) { + int w = (cy - b) * 2 + 1; + int b2 = x + (ShortOne - w) / 2; + for(cx = b2; cx < b2 + w; cx++) { + unsigned char* px; + + px = &raw[(cy * stride + cx) * 4]; + px[0] = text->common.red; + px[1] = text->common.green; + px[2] = text->common.blue; + px[3] = 255; + } + } + + b = y + LongOne; + for(cy = b; cy < b + (ShortOne - 1) / 2; cy++) { + int w = ((ShortOne - 1) / 2 - 1 - (cy - b)) * 2 + 1; + int b2 = x + (ShortOne - w) / 2; + for(cx = b2; cx < b2 + w; cx++) { + unsigned char* px; + + px = &raw[(cy * stride + cx) * 4]; + px[0] = text->common.red; + px[1] = text->common.green; + px[2] = text->common.blue; + px[3] = 255; + } + } +} + +static void draw_h(unsigned char* raw, int x, int y, int stride, MwLLColor text) { + int cy, cx, b; + for(cx = x; cx < x + LongOne; cx++) { + for(cy = y; cy < y + ShortOne; cy++) { + unsigned char* px = &raw[(cy * stride + cx) * 4]; + px[0] = text->common.red; + px[1] = text->common.green; + px[2] = text->common.blue; + px[3] = 255; + } + } + + b = x - (ShortOne - 1) / 2; + for(cx = b; cx < b + (ShortOne - 1) / 2; cx++) { + int w = (cx - b) * 2 + 1; + int b2 = y + (ShortOne - w) / 2; + for(cy = b2; cy < b2 + w; cy++) { + unsigned char* px; + + px = &raw[(cy * stride + cx) * 4]; + px[0] = text->common.red; + px[1] = text->common.green; + px[2] = text->common.blue; + px[3] = 255; + } + } + + b = x + LongOne; + for(cx = b; cx < b + (ShortOne - 1) / 2; cx++) { + int w = ((ShortOne - 1) / 2 - 1 - (cx - b)) * 2 + 1; + int b2 = y + (ShortOne - w) / 2; + for(cy = b2; cy < b2 + w; cy++) { + unsigned char* px; + + px = &raw[(cy * stride + cx) * 4]; + px[0] = text->common.red; + px[1] = text->common.green; + px[2] = text->common.blue; + px[3] = 255; + } + } +} + static void draw(MwWidget handle) { MwRect r; MwPoint p; @@ -16,6 +122,7 @@ static void draw(MwWidget handle) { int align; const char* str = MwGetText(handle, MwNtext); MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); + MwLabel lab = handle->internal; if(str == NULL) str = ""; @@ -28,40 +135,206 @@ static void draw(MwWidget handle) { if(bgpx != NULL) MwLLDrawPixmap(handle->lowlevel, &r, bgpx); align = MwGetInteger(handle, MwNalignment); - if(align == MwALIGNMENT_CENTER) { - p.x = r.width / 2; - } else if(align == MwALIGNMENT_BEGINNING) { - p.x = MwTextWidth(handle, str) / 2; - } else if(align == MwALIGNMENT_END) { - p.x = r.width - MwTextWidth(handle, str) / 2; + if(MwGetInteger(handle, MwNsevenSegment)) { + MwLLPixmap px; + unsigned char* raw; + int w = 0, h = ShortOne * 3 + LongOne * 2, i; + int x = 0; + + /* so - this mode cannot do unicode. + * but you wouldn't show unicode on 7 segment anyways + */ + + /* L + * S <---> + * + * S + * ^ + * | + * L | + * | + * v + */ + + for(i = 0; (hmgeti(lab->segment, i) != -1) || str[i] != 0; i++) { + if(i > 0 && ((hmgeti(lab->segment, i) != -1) || str[i] != '.')) w += Spacing; + if(hmgeti(lab->segment, i) != -1 || ('0' <= str[i] && str[i] <= '9') || ('A' <= str[i] && str[i] <= 'F') || ('a' <= str[i] && str[i] <= 'f')) { + w += LongOne + ShortOne * 2; + } else if(str[i] == ':' || str[i] == ' ') { + w += ShortOne; + } + } + + raw = malloc(w * h * 4); + memset(raw, 0, w * h * 4); + + for(i = 0; (hmgeti(lab->segment, i) != -1) || str[i] != 0; i++) { + if((hmgeti(lab->segment, i) != -1) || ('0' <= str[i] && str[i] <= '9') || ('A' <= str[i] && str[i] <= 'F') || ('a' <= str[i] && str[i] <= 'f')) { + int la = 0, lb = 0, lc = 0, ld = 0, le = 0, lf = 0, lg = 0; + + /* https://en.wikipedia.org/wiki/File:7_Segment_Display_with_Labeled_Segments.svg */ + + if(hmgeti(lab->segment, i) != -1) { + unsigned char c = hmget(lab->segment, i); + + if(c & (1 << 0)) la = 1; + if(c & (1 << 1)) lb = 1; + if(c & (1 << 2)) lc = 1; + if(c & (1 << 3)) ld = 1; + if(c & (1 << 4)) le = 1; + if(c & (1 << 5)) lf = 1; + if(c & (1 << 6)) lg = 1; + } else { + if(str[i] == '0') { + la = lb = lc = ld = le = lf = 1; + } else if(str[i] == '1') { + lb = lc = 1; + } else if(str[i] == '2') { + la = lb = ld = le = lg = 1; + } else if(str[i] == '3') { + la = lb = lc = ld = lg = 1; + } else if(str[i] == '4') { + lb = lc = lf = lg = 1; + } else if(str[i] == '5') { + la = lc = ld = lf = lg = 1; + } else if(str[i] == '6') { + la = lc = ld = le = lf = lg = 1; + } else if(str[i] == '7') { + la = lb = lc = 1; + } else if(str[i] == '8') { + la = lb = lc = ld = le = lf = lg = 1; + } else if(str[i] == '9') { + la = lb = lc = ld = lf = lg = 1; + } else if(str[i] == 'A' || str[i] == 'a') { + la = lb = lc = le = lf = lg = 1; + } else if(str[i] == 'B' || str[i] == 'b') { + lc = ld = le = lf = lg = 1; + } else if(str[i] == 'C' || str[i] == 'c') { + ld = le = lg = 1; + } else if(str[i] == 'D' || str[i] == 'd') { + lb = lc = ld = le = lg = 1; + } else if(str[i] == 'E' || str[i] == 'e') { + la = ld = le = lf = lg = 1; + } else if(str[i] == 'F' || str[i] == 'f') { + la = le = lf = lg = 1; + } + } + + if(la) draw_h(raw, x + ShortOne, 0, w, text); + if(lb) draw_v(raw, x + ShortOne + LongOne, ShortOne, w, text); + if(lc) draw_v(raw, x + ShortOne + LongOne, ShortOne * 2 + LongOne, w, text); + if(ld) draw_h(raw, x + ShortOne, ShortOne * 2 + LongOne * 2, w, text); + if(le) draw_v(raw, x, ShortOne * 2 + LongOne, w, text); + if(lf) draw_v(raw, x, ShortOne, w, text); + if(lg) draw_h(raw, x + ShortOne, ShortOne + LongOne, w, text); + + x += LongOne + ShortOne * 2; + } else if(str[i] == ':') { + int cy, cx; + for(cy = 1; cy < h - 1; cy++) { + int c = (LongOne - ShortOne) / 2 + ShortOne; + + int c1 = (c <= cy && cy <= (c + ShortOne)) ? 1 : 0; + int c2 = ((ShortOne + LongOne + c) <= cy && cy <= (ShortOne + LongOne + c + ShortOne)) ? 1 : 0; + + if(c1 || c2) { + for(cx = x; cx < x + ShortOne; cx++) { + unsigned char* px = &raw[(cy * w + cx) * 4]; + px[0] = text->common.red; + px[1] = text->common.green; + px[2] = text->common.blue; + px[3] = 255; + } + } + } + x += ShortOne; + } else if(str[i] == ' ') { + x += ShortOne; + } else if(str[i] == '.') { + int cy, cx; + for(cy = h - (ShortOne - 1) / 2 - 1; cy < h; cy++) { + for(cx = x - Spacing - (ShortOne - 1) / 2 - 1; cx < (x - Spacing); cx++) { + unsigned char* px = &raw[(cy * w + cx) * 4]; + px[0] = text->common.red; + px[1] = text->common.green; + px[2] = text->common.blue; + px[3] = 255; + } + } + continue; + } + + x += Spacing; + } + + px = MwLoadRaw(handle, raw, w, h); + + r.y = 0; + r.height = h; + if(align == MwALIGNMENT_CENTER) { + r.x = (r.width - w) / 2; + } else if(align == MwALIGNMENT_BEGINNING) { + r.x = 0; + } else if(align == MwALIGNMENT_END) { + r.x = r.width - w; + } + r.width = w; + MwLLDrawPixmap(handle->lowlevel, &r, px); + + MwLLDestroyPixmap(px); + } else { + if(align == MwALIGNMENT_CENTER) { + p.x = r.width / 2; + } else if(align == MwALIGNMENT_BEGINNING) { + p.x = MwTextWidth(handle, str) / 2; + } else if(align == MwALIGNMENT_END) { + p.x = r.width - MwTextWidth(handle, str) / 2; + } + p.y = r.height / 2; + MwDrawText(handle, &p, str, MwGetInteger(handle, MwNbold), MwALIGNMENT_CENTER, text); } - p.y = r.height / 2; - MwDrawText(handle, &p, str, MwGetInteger(handle, MwNbold), MwALIGNMENT_CENTER, text); MwLLFreeColor(text); MwLLFreeColor(base); } static void prop_change(MwWidget handle, const char* key) { - if(strcmp(key, MwNtext) == 0 || strcmp(key, MwNalignment) == 0) MwForceRender(handle); + if(strcmp(key, MwNtext) == 0 || strcmp(key, MwNalignment) == 0 || strcmp(key, MwNsevenSegment) == 0) MwForceRender(handle); +} + +static void mwLabelSetSevenSegmentImpl(MwWidget handle, int index, unsigned char data) { + MwLabel lab = handle->internal; + + hmput(lab->segment, index, data); +} + +static void func_handler(MwWidget handle, const char* name, void* out, va_list va) { + (void)out; + + if(strcmp(name, "mwLabelSetSevenSegment") == 0) { + int index = va_arg(va, int); + int data = va_arg(va, int); + + mwLabelSetSevenSegmentImpl(handle, index, data); + } } MwClassRec MwLabelClassRec = { - create, /* create */ - NULL, /* destroy */ - draw, /* draw */ - NULL, /* click */ - NULL, /* parent_resize */ - prop_change, /* prop_change */ - NULL, /* mouse_move */ - NULL, /* mouse_up */ - NULL, /* mouse_down */ - NULL, /* key */ - NULL, /* execute */ - NULL, /* tick */ - NULL, /* resize */ - NULL, /* children_update */ - NULL, /* children_prop_change */ + create, /* create */ + destroy, /* destroy */ + draw, /* draw */ + NULL, /* click */ + NULL, /* parent_resize */ + prop_change, /* prop_change */ + NULL, /* mouse_move */ + NULL, /* mouse_up */ + NULL, /* mouse_down */ + NULL, /* key */ + func_handler, /* execute */ + NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ NULL, NULL, NULL, diff --git a/src/widget/scrollbar.c b/src/widget/scrollbar.c index 254e05beb..ff42d3aad 100644 --- a/src/widget/scrollbar.c +++ b/src/widget/scrollbar.c @@ -1,13 +1,7 @@ #include -typedef struct scrollbar { - MwPoint point; - int drag; - int pos; -} scrollbar_t; - static int create(MwWidget handle) { - scrollbar_t* scr = malloc(sizeof(*scr)); + MwScrollBar scr = malloc(sizeof(*scr)); handle->internal = scr; @@ -60,10 +54,10 @@ static void add_value(MwWidget handle, int mul) { } static void draw(MwWidget handle) { - MwRect r, rt, rbar; - MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); - MwLLColor dark = MwLightenColor(handle, base, -64, -64, -64); - scrollbar_t* scr = handle->internal; + MwRect r, rt, rbar; + MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); + MwLLColor dark = MwLightenColor(handle, base, -64, -64, -64); + MwScrollBar scr = handle->internal; int or ; int uy, dy, ux, dx; MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); @@ -144,8 +138,8 @@ static void draw(MwWidget handle) { } static void mouse_move(MwWidget handle) { - int or = MwGetInteger(handle, MwNorientation); - scrollbar_t* scr = handle->internal; + int or = MwGetInteger(handle, MwNorientation); + MwScrollBar scr = handle->internal; if(!handle->pressed) return; @@ -172,11 +166,11 @@ static void mouse_move(MwWidget handle) { } static void mouse_down(MwWidget handle, void* ptr) { - int ww = MwGetInteger(handle, MwNwidth); - int wh = MwGetInteger(handle, MwNheight); - int or = MwGetInteger(handle, MwNorientation); - scrollbar_t* scr = handle->internal; - MwLLMouse* m = ptr; + int ww = MwGetInteger(handle, MwNwidth); + int wh = MwGetInteger(handle, MwNheight); + int or = MwGetInteger(handle, MwNorientation); + MwScrollBar scr = handle->internal; + MwLLMouse* m = ptr; if(m->button == MwLLMouseWheelUp) { int min = MwGetInteger(handle, MwNminValue); From 2304b493d1d8774ce79102d6909d5df4cc8acb84 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 21 Dec 2025 15:17:00 +0900 Subject: [PATCH 054/836] add MwNlength --- examples/basic/sevensegment.c | 1 + include/Mw/StringDefs.h | 1 + milsko.xml | 2 + src/widget/label.c | 145 ++++++++++++++++++++-------------- 4 files changed, 90 insertions(+), 59 deletions(-) diff --git a/examples/basic/sevensegment.c b/examples/basic/sevensegment.c index 7479da9fc..08149a9fd 100644 --- a/examples/basic/sevensegment.c +++ b/examples/basic/sevensegment.c @@ -14,6 +14,7 @@ int main() { MwNtext, " 123456:78.90 abcdef", MwNsevenSegment, 1, MwNalignment, MwALIGNMENT_BEGINNING, + MwNlength, 8, NULL); MwLabelSetSevenSegment(label, 0, (1 << 0) | (1 << 3) | (1 << 6)); diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index f5b723afd..afcbedcbe 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -37,6 +37,7 @@ #define MwNmargin "Imargin" #define MwNbitmapFont "IbitmapFont" #define MwNsevenSegment "IsevenSegment" +#define MwNlength "Ilength" #define MwNtitle "Stitle" #define MwNtext "Stext" diff --git a/milsko.xml b/milsko.xml index 9448e30a9..5838ce400 100644 --- a/milsko.xml +++ b/milsko.xml @@ -90,6 +90,7 @@ + @@ -538,6 +539,7 @@ + diff --git a/src/widget/label.c b/src/widget/label.c index a2ae407fd..dac2060c2 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -2,9 +2,7 @@ #include "../../external/stb_ds.h" -#define ShortOne 5 -#define LongOne 10 -#define Spacing 2 +#define Spacing 1 static int create(MwWidget handle) { MwLabel lab = malloc(sizeof(*lab)); @@ -16,6 +14,7 @@ static int create(MwWidget handle) { MwSetInteger(handle, MwNalignment, MwALIGNMENT_CENTER); MwSetInteger(handle, MwNbold, 0); MwSetInteger(handle, MwNsevenSegment, 0); + MwSetInteger(handle, MwNlength, 4); return 0; } @@ -28,10 +27,14 @@ static void destroy(MwWidget handle) { free(handle->internal); } -static void draw_v(unsigned char* raw, int x, int y, int stride, MwLLColor text) { +static void draw_v(MwWidget handle, unsigned char* raw, int x, int y, int stride, MwLLColor text) { int cy, cx, b; - for(cy = y; cy < y + LongOne; cy++) { - for(cx = x; cx < x + ShortOne; cx++) { + + int l_one = MwGetInteger(handle, MwNlength) - (MwGetInteger(handle, MwNlength) % 2); + int s_one = (l_one * 3 / 4) - ((l_one * 3 / 4) % 2) + 1; + + for(cy = y; cy < y + l_one; cy++) { + for(cx = x; cx < x + s_one; cx++) { unsigned char* px = &raw[(cy * stride + cx) * 4]; px[0] = text->common.red; px[1] = text->common.green; @@ -40,10 +43,10 @@ static void draw_v(unsigned char* raw, int x, int y, int stride, MwLLColor text) } } - b = y - (ShortOne - 1) / 2; - for(cy = b; cy < b + (ShortOne - 1) / 2; cy++) { + b = y - (s_one - 1) / 2; + for(cy = b; cy < b + (s_one - 1) / 2; cy++) { int w = (cy - b) * 2 + 1; - int b2 = x + (ShortOne - w) / 2; + int b2 = x + (s_one - w) / 2; for(cx = b2; cx < b2 + w; cx++) { unsigned char* px; @@ -55,10 +58,10 @@ static void draw_v(unsigned char* raw, int x, int y, int stride, MwLLColor text) } } - b = y + LongOne; - for(cy = b; cy < b + (ShortOne - 1) / 2; cy++) { - int w = ((ShortOne - 1) / 2 - 1 - (cy - b)) * 2 + 1; - int b2 = x + (ShortOne - w) / 2; + b = y + l_one; + for(cy = b; cy < b + (s_one - 1) / 2; cy++) { + int w = ((s_one - 1) / 2 - 1 - (cy - b)) * 2 + 1; + int b2 = x + (s_one - w) / 2; for(cx = b2; cx < b2 + w; cx++) { unsigned char* px; @@ -71,10 +74,14 @@ static void draw_v(unsigned char* raw, int x, int y, int stride, MwLLColor text) } } -static void draw_h(unsigned char* raw, int x, int y, int stride, MwLLColor text) { +static void draw_h(MwWidget handle, unsigned char* raw, int x, int y, int stride, MwLLColor text) { int cy, cx, b; - for(cx = x; cx < x + LongOne; cx++) { - for(cy = y; cy < y + ShortOne; cy++) { + + int l_one = MwGetInteger(handle, MwNlength) - (MwGetInteger(handle, MwNlength) % 2); + int s_one = (l_one * 3 / 4) - ((l_one * 3 / 4) % 2) + 1; + + for(cx = x; cx < x + l_one; cx++) { + for(cy = y; cy < y + s_one; cy++) { unsigned char* px = &raw[(cy * stride + cx) * 4]; px[0] = text->common.red; px[1] = text->common.green; @@ -83,10 +90,10 @@ static void draw_h(unsigned char* raw, int x, int y, int stride, MwLLColor text) } } - b = x - (ShortOne - 1) / 2; - for(cx = b; cx < b + (ShortOne - 1) / 2; cx++) { + b = x - (s_one - 1) / 2; + for(cx = b; cx < b + (s_one - 1) / 2; cx++) { int w = (cx - b) * 2 + 1; - int b2 = y + (ShortOne - w) / 2; + int b2 = y + (s_one - w) / 2; for(cy = b2; cy < b2 + w; cy++) { unsigned char* px; @@ -98,10 +105,10 @@ static void draw_h(unsigned char* raw, int x, int y, int stride, MwLLColor text) } } - b = x + LongOne; - for(cx = b; cx < b + (ShortOne - 1) / 2; cx++) { - int w = ((ShortOne - 1) / 2 - 1 - (cx - b)) * 2 + 1; - int b2 = y + (ShortOne - w) / 2; + b = x + l_one; + for(cx = b; cx < b + (s_one - 1) / 2; cx++) { + int w = ((s_one - 1) / 2 - 1 - (cx - b)) * 2 + 1; + int b2 = y + (s_one - w) / 2; for(cy = b2; cy < b2 + w; cy++) { unsigned char* px; @@ -117,12 +124,15 @@ static void draw_h(unsigned char* raw, int x, int y, int stride, MwLLColor text) static void draw(MwWidget handle) { MwRect r; MwPoint p; - MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); - MwLLColor text = MwParseColor(handle, MwGetText(handle, MwNforeground)); + MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); + MwLLColor text = MwParseColor(handle, MwGetText(handle, MwNforeground)); + MwLLColor shadow = MwLightenColor(handle, base, -32, -32, -32); int align; - const char* str = MwGetText(handle, MwNtext); - MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); - MwLabel lab = handle->internal; + const char* str = MwGetText(handle, MwNtext); + MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); + MwLabel lab = handle->internal; + int l_one = MwGetInteger(handle, MwNlength) - (MwGetInteger(handle, MwNlength) % 2); + int s_one = (l_one * 3 / 4) - ((l_one * 3 / 4) % 2) + 1; if(str == NULL) str = ""; @@ -138,7 +148,7 @@ static void draw(MwWidget handle) { if(MwGetInteger(handle, MwNsevenSegment)) { MwLLPixmap px; unsigned char* raw; - int w = 0, h = ShortOne * 3 + LongOne * 2, i; + int w = 0, h = s_one * 3 + l_one * 2, i; int x = 0; /* so - this mode cannot do unicode. @@ -159,18 +169,22 @@ static void draw(MwWidget handle) { for(i = 0; (hmgeti(lab->segment, i) != -1) || str[i] != 0; i++) { if(i > 0 && ((hmgeti(lab->segment, i) != -1) || str[i] != '.')) w += Spacing; if(hmgeti(lab->segment, i) != -1 || ('0' <= str[i] && str[i] <= '9') || ('A' <= str[i] && str[i] <= 'F') || ('a' <= str[i] && str[i] <= 'f')) { - w += LongOne + ShortOne * 2; + w += l_one + s_one * 2; } else if(str[i] == ':' || str[i] == ' ') { - w += ShortOne; + w += s_one; } } + w++; + h++; + raw = malloc(w * h * 4); memset(raw, 0, w * h * 4); for(i = 0; (hmgeti(lab->segment, i) != -1) || str[i] != 0; i++) { if((hmgeti(lab->segment, i) != -1) || ('0' <= str[i] && str[i] <= '9') || ('A' <= str[i] && str[i] <= 'F') || ('a' <= str[i] && str[i] <= 'f')) { int la = 0, lb = 0, lc = 0, ld = 0, le = 0, lf = 0, lg = 0; + int j; /* https://en.wikipedia.org/wiki/File:7_Segment_Display_with_Labeled_Segments.svg */ @@ -220,45 +234,57 @@ static void draw(MwWidget handle) { } } - if(la) draw_h(raw, x + ShortOne, 0, w, text); - if(lb) draw_v(raw, x + ShortOne + LongOne, ShortOne, w, text); - if(lc) draw_v(raw, x + ShortOne + LongOne, ShortOne * 2 + LongOne, w, text); - if(ld) draw_h(raw, x + ShortOne, ShortOne * 2 + LongOne * 2, w, text); - if(le) draw_v(raw, x, ShortOne * 2 + LongOne, w, text); - if(lf) draw_v(raw, x, ShortOne, w, text); - if(lg) draw_h(raw, x + ShortOne, ShortOne + LongOne, w, text); + for(j = 1; j >= 0; j--) { + MwLLColor cl = j == 1 ? shadow : text; - x += LongOne + ShortOne * 2; + if(la) draw_h(handle, raw, x + s_one + j, j, w, cl); + if(lb) draw_v(handle, raw, x + s_one + l_one + j, s_one + j, w, cl); + if(lc) draw_v(handle, raw, x + s_one + l_one + j, s_one * 2 + l_one + j, w, cl); + if(ld) draw_h(handle, raw, x + s_one + j, s_one * 2 + l_one * 2 + j, w, cl); + if(le) draw_v(handle, raw, x + j, s_one * 2 + l_one + j, w, cl); + if(lf) draw_v(handle, raw, x + j, s_one + j, w, cl); + if(lg) draw_h(handle, raw, x + s_one + j, s_one + l_one + j, w, cl); + } + + x += l_one + s_one * 2; } else if(str[i] == ':') { int cy, cx; - for(cy = 1; cy < h - 1; cy++) { - int c = (LongOne - ShortOne) / 2 + ShortOne; + int j; + for(j = 1; j >= 0; j--) { + MwLLColor cl = j == 1 ? shadow : text; + for(cy = 1; cy < h - 1; cy++) { + int c = (l_one - s_one) / 2 + s_one; - int c1 = (c <= cy && cy <= (c + ShortOne)) ? 1 : 0; - int c2 = ((ShortOne + LongOne + c) <= cy && cy <= (ShortOne + LongOne + c + ShortOne)) ? 1 : 0; + int c1 = (c <= cy && cy <= (c + s_one)) ? 1 : 0; + int c2 = ((s_one + l_one + c) <= cy && cy <= (s_one + l_one + c + s_one)) ? 1 : 0; - if(c1 || c2) { - for(cx = x; cx < x + ShortOne; cx++) { - unsigned char* px = &raw[(cy * w + cx) * 4]; - px[0] = text->common.red; - px[1] = text->common.green; - px[2] = text->common.blue; - px[3] = 255; + if(c1 || c2) { + for(cx = x; cx < x + s_one; cx++) { + unsigned char* px = &raw[((cy + j) * w + (cx + j)) * 4]; + px[0] = cl->common.red; + px[1] = cl->common.green; + px[2] = cl->common.blue; + px[3] = 255; + } } } } - x += ShortOne; + x += s_one; } else if(str[i] == ' ') { - x += ShortOne; + x += s_one; } else if(str[i] == '.') { int cy, cx; - for(cy = h - (ShortOne - 1) / 2 - 1; cy < h; cy++) { - for(cx = x - Spacing - (ShortOne - 1) / 2 - 1; cx < (x - Spacing); cx++) { - unsigned char* px = &raw[(cy * w + cx) * 4]; - px[0] = text->common.red; - px[1] = text->common.green; - px[2] = text->common.blue; - px[3] = 255; + int j; + for(j = 1; j >= 0; j--) { + MwLLColor cl = j == 1 ? shadow : text; + for(cy = h - (s_one - 1) / 2 - 1; cy < h; cy++) { + for(cx = x - Spacing - (s_one - 1) / 2 - 1; cx < (x - Spacing); cx++) { + unsigned char* px = &raw[((cy + j) * w + (cx + j)) * 4]; + px[0] = cl->common.red; + px[1] = cl->common.green; + px[2] = cl->common.blue; + px[3] = 255; + } } } continue; @@ -294,6 +320,7 @@ static void draw(MwWidget handle) { MwDrawText(handle, &p, str, MwGetInteger(handle, MwNbold), MwALIGNMENT_CENTER, text); } + MwLLFreeColor(shadow); MwLLFreeColor(text); MwLLFreeColor(base); } From 188da6803e5ba8099653459c858f1aff18ea01d3 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 21 Dec 2025 15:33:48 +0900 Subject: [PATCH 055/836] adjust some stuff --- milsko.xml | 2 ++ src/widget/box.c | 21 ++++++++++++++------- src/widget/label.c | 2 +- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/milsko.xml b/milsko.xml index 5838ce400..f60f7c799 100644 --- a/milsko.xml +++ b/milsko.xml @@ -497,6 +497,8 @@ + + diff --git a/src/widget/box.c b/src/widget/box.c index c363e0ec8..e6966654d 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -8,6 +8,8 @@ static int create(MwWidget handle) { MwSetInteger(handle, MwNorientation, MwHORIZONTAL); MwSetInteger(handle, MwNmargin, 0); MwSetInteger(handle, MwNpadding, 0); + MwSetInteger(handle, MwNhasBorder, 0); + MwSetInteger(handle, MwNinverted, 1); return 0; } @@ -20,6 +22,11 @@ static void draw(MwWidget handle) { r.y = 0; r.width = MwGetInteger(handle, MwNwidth); r.height = MwGetInteger(handle, MwNheight); + + if(MwGetInteger(handle, MwNhasBorder)) { + MwDrawFrame(handle, &r, base, MwGetInteger(handle, MwNinverted)); + } + MwDrawRect(handle, &r, base); MwLLFreeColor(base); @@ -31,9 +38,9 @@ static void layout(MwWidget handle) { int i; int sum = 0; int horiz = MwGetInteger(handle, MwNorientation) == MwHORIZONTAL ? 1 : 0; - int sz = MwGetInteger(handle, horiz ? MwNwidth : MwNheight) - MwGetInteger(handle, MwNpadding) * 2; - int fsz = MwGetInteger(handle, horiz ? MwNheight : MwNwidth) - MwGetInteger(handle, MwNpadding) * 2; - int sk = MwGetInteger(handle, MwNpadding); + int sz = MwGetInteger(handle, horiz ? MwNwidth : MwNheight) - (MwGetInteger(handle, MwNpadding) + (MwGetInteger(handle, MwNhasBorder) ? MwDefaultBorderWidth(handle) : 0)) * 2; + int fsz = MwGetInteger(handle, horiz ? MwNheight : MwNwidth) - (MwGetInteger(handle, MwNpadding) + (MwGetInteger(handle, MwNhasBorder) ? MwDefaultBorderWidth(handle) : 0)) * 2; + int sk = MwGetInteger(handle, MwNpadding) + (MwGetInteger(handle, MwNhasBorder) ? MwDefaultBorderWidth(handle) : 0); for(i = 0; i < arrlen(handle->children); i++) { int n = MwGetInteger(handle->children[i], MwNratio); @@ -60,10 +67,10 @@ static void layout(MwWidget handle) { } MwVaApply(handle->children[i], - horiz ? MwNx : MwNy, sk, /* this is what gets changed */ - horiz ? MwNy : MwNx, MwGetInteger(handle, MwNpadding), /* fixed between widgets */ - horiz ? MwNwidth : MwNheight, wsz, /* this is what gets changed */ - horiz ? MwNheight : MwNwidth, fsz, /* fixed between widgets */ + horiz ? MwNx : MwNy, sk, /* this is what gets changed */ + horiz ? MwNy : MwNx, MwGetInteger(handle, MwNpadding) + (MwGetInteger(handle, MwNhasBorder) ? MwDefaultBorderWidth(handle) : 0), /* fixed between widgets */ + horiz ? MwNwidth : MwNheight, wsz, /* this is what gets changed */ + horiz ? MwNheight : MwNwidth, fsz, /* fixed between widgets */ NULL); sk += wsz + Margin; } diff --git a/src/widget/label.c b/src/widget/label.c index dac2060c2..a137ca021 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -295,7 +295,7 @@ static void draw(MwWidget handle) { px = MwLoadRaw(handle, raw, w, h); - r.y = 0; + r.y = (r.height - h) / 2; r.height = h; if(align == MwALIGNMENT_CENTER) { r.x = (r.width - w) / 2; From 2b30a06ecf014a81f9a2a02994bc3613c141fba4 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 21 Dec 2025 19:29:05 +0900 Subject: [PATCH 056/836] wip VMS port --- src/draw.c | 10 +- tools/gendcl.pl | 106 ++++++++++++++ vms/build.com | 382 ++++++++++++++++++++++++++++++++++++++++++++++++ vms/clean.com | 63 ++++++++ 4 files changed, 558 insertions(+), 3 deletions(-) create mode 100755 tools/gendcl.pl create mode 100644 vms/build.com create mode 100644 vms/clean.com diff --git a/src/draw.c b/src/draw.c index 24e5785aa..d1f3c7894 100644 --- a/src/draw.c +++ b/src/draw.c @@ -1,6 +1,7 @@ #include -#ifdef USE_STB_IMAGE +#ifdef NO_IMAGE +#elif defined(USE_STB_IMAGE) #include "../external/stb_image.h" #else #include @@ -502,7 +503,8 @@ void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int invert, MwLLFreeColor(darker); } -#ifndef USE_STB_IMAGE +#if defined(NO_IMAGE) +#elif !defined(USE_STB_IMAGE) static void PNGCAPI user_error(png_structp png, const char* str) { (void)str; @@ -617,7 +619,9 @@ static unsigned char* load_jpeg(FILE* f, int* w, int* h) { #endif static unsigned char* load_image(const char* path, int* w, int* h) { -#ifdef USE_STB_IMAGE +#if defined(NO_IMAGE) + return NULL; +#elif defined(USE_STB_IMAGE) int ch; return stbi_load(path, w, h, &ch, 4); diff --git a/tools/gendcl.pl b/tools/gendcl.pl new file mode 100755 index 000000000..94e4ad196 --- /dev/null +++ b/tools/gendcl.pl @@ -0,0 +1,106 @@ +#!/usr/bin/env perl + +our $clean = 0; +my @objs = (); + +sub compile { + my ($source) = @_; + my $object = ""; + my $dir = ""; + + $dir = $source; + $dir =~ s/\/([^\/]+)$//; + + $source =~ s/^(.+)\/([^\/]+)$/[\/\1]\2/; + $source =~ s/\//\./g; + + $object = $source; + $object =~ s/\.c$/.obj/; + + print(OUT "\$ if f\$search(\"$object;*\") .eqs. \"\"\n"); + print(OUT "\$ then\n"); + print(OUT "\$ write sys\$output \"CC $object\"\n"); + print(OUT +"\$ cc /include_directory=(\"./include\",\"./$dir\") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=$object $source\n" + ); + print(OUT "\$ endif\n"); + + push(@objs, $object); +} + +sub clean { + my ($source) = @_; + my $object = ""; + my $dir = ""; + + $source =~ s/^(.+)\/([^\/]+)$/[\/\1]\2/; + $source =~ s/\//\./g; + + $object = $source; + $object =~ s/\.c$/.obj/; + + print(OUT + "\$ if f\$search(\"$object\") .nes. \"\" then delete $object;*\n"); +} + +sub thing { + if ($clean) { + clean($_[0]); + } + else { + compile($_[0]); + } +} + +sub scan { + my ($dir) = @_; + + opendir(my $dh, $dir); + while (my $file = readdir($dh)) { + if ( !(($dir . "/" . $file) eq "src/widget/opengl.c") + && !(($dir . "/" . $file) eq "src/widget/vulkan.c") + && !(($dir . "/" . $file) eq "external/stb_truetype.c") + && !(($dir . "/" . $file) eq "external/stb_image.c") + && ($file =~ /\.c$/)) + { + thing($dir . "/" . $file); + } + } + closedir($dh); +} + +for (my $i = 0 ; $i < 2 ; $i++) { + $clean = $i; + + open(OUT, ">", $i == 0 ? "vms/build.com" : "vms/clean.com"); + scan("src"); + scan("src/cursor"); + scan("src/widget"); + scan("src/dialog"); + scan("src/font"); + scan("src/icon"); + scan("src/abstract"); + scan("external"); + thing("src/backend/x11.c"); + + if ($i == 0) { + print(OUT "\$ if f\$search(\"[.src]MwSHR.exe;*\") .eqs. \"\"\n"); + print(OUT "\$ then\n"); + print(OUT "\$ write sys\$output \"LINK [.src]MwSHR.exe\"\n"); + print(OUT "\$ OPEN /WRITE LINK_OPT LINK.OPT\n"); + foreach my $obj (@objs) { + print(OUT "\$ WRITE LINK_OPT \"$obj\"\n"); + } + print(OUT + "\$ WRITE LINK_OPT \"SYS\$LIBRARY:DECW\$XLIBSHR/SHARE/SHARE\"\n"); + print(OUT "\$ WRITE LINK_OPT \"SYS\$LIBRARY:DECC\$SHR/SHARE/SHARE\"\n"); + print(OUT "\$ CLOSE LINK_OPT\n"); + print(OUT "\$ link /SHAREABLE=[.src]MwSHR.exe LINK.OPT/options\n"); + print(OUT "\$ DELETE LINK.OPT;*\n"); + print(OUT "\$ endif\n"); + } + else { + clean("src/MwSHR.exe"); + } + close(OUT); +} diff --git a/vms/build.com b/vms/build.com new file mode 100644 index 000000000..17d48299c --- /dev/null +++ b/vms/build.com @@ -0,0 +1,382 @@ +$ if f$search("[.src]color.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src]color.obj" +$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]color.obj [.src]color.c +$ endif +$ if f$search("[.src]core.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src]core.obj" +$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]core.obj [.src]core.c +$ endif +$ if f$search("[.src]default.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src]default.obj" +$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]default.obj [.src]default.c +$ endif +$ if f$search("[.src]draw.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src]draw.obj" +$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]draw.obj [.src]draw.c +$ endif +$ if f$search("[.src]error.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src]error.obj" +$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]error.obj [.src]error.c +$ endif +$ if f$search("[.src]lowlevel.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src]lowlevel.obj" +$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]lowlevel.obj [.src]lowlevel.c +$ endif +$ if f$search("[.src]string.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src]string.obj" +$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]string.obj [.src]string.c +$ endif +$ if f$search("[.src]text.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src]text.obj" +$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]text.obj [.src]text.c +$ endif +$ if f$search("[.src]unicode.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src]unicode.obj" +$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]unicode.obj [.src]unicode.c +$ endif +$ if f$search("[.src.cursor]arrow.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.cursor]arrow.obj" +$ cc /include_directory=("./include","./src/cursor") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.cursor]arrow.obj [.src.cursor]arrow.c +$ endif +$ if f$search("[.src.cursor]cross.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.cursor]cross.obj" +$ cc /include_directory=("./include","./src/cursor") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.cursor]cross.obj [.src.cursor]cross.c +$ endif +$ if f$search("[.src.cursor]default.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.cursor]default.obj" +$ cc /include_directory=("./include","./src/cursor") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.cursor]default.obj [.src.cursor]default.c +$ endif +$ if f$search("[.src.cursor]hidden.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.cursor]hidden.obj" +$ cc /include_directory=("./include","./src/cursor") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.cursor]hidden.obj [.src.cursor]hidden.c +$ endif +$ if f$search("[.src.cursor]text.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.cursor]text.obj" +$ cc /include_directory=("./include","./src/cursor") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.cursor]text.obj [.src.cursor]text.c +$ endif +$ if f$search("[.src.widget]button.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]button.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]button.obj [.src.widget]button.c +$ endif +$ if f$search("[.src.widget]checkbox.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]checkbox.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]checkbox.obj [.src.widget]checkbox.c +$ endif +$ if f$search("[.src.widget]combobox.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]combobox.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]combobox.obj [.src.widget]combobox.c +$ endif +$ if f$search("[.src.widget]entry.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]entry.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]entry.obj [.src.widget]entry.c +$ endif +$ if f$search("[.src.widget]frame.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]frame.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]frame.obj [.src.widget]frame.c +$ endif +$ if f$search("[.src.widget]image.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]image.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]image.obj [.src.widget]image.c +$ endif +$ if f$search("[.src.widget]label.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]label.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]label.obj [.src.widget]label.c +$ endif +$ if f$search("[.src.widget]listbox.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]listbox.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]listbox.obj [.src.widget]listbox.c +$ endif +$ if f$search("[.src.widget]menu.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]menu.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]menu.obj [.src.widget]menu.c +$ endif +$ if f$search("[.src.widget]numberentry.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]numberentry.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]numberentry.obj [.src.widget]numberentry.c +$ endif +$ if f$search("[.src.widget]progressbar.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]progressbar.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]progressbar.obj [.src.widget]progressbar.c +$ endif +$ if f$search("[.src.widget]radiobox.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]radiobox.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]radiobox.obj [.src.widget]radiobox.c +$ endif +$ if f$search("[.src.widget]scrollbar.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]scrollbar.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]scrollbar.obj [.src.widget]scrollbar.c +$ endif +$ if f$search("[.src.widget]separator.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]separator.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]separator.obj [.src.widget]separator.c +$ endif +$ if f$search("[.src.widget]submenu.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]submenu.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]submenu.obj [.src.widget]submenu.c +$ endif +$ if f$search("[.src.widget]treeview.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]treeview.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]treeview.obj [.src.widget]treeview.c +$ endif +$ if f$search("[.src.widget]viewport.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]viewport.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]viewport.obj [.src.widget]viewport.c +$ endif +$ if f$search("[.src.widget]window.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]window.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]window.obj [.src.widget]window.c +$ endif +$ if f$search("[.src.widget]box.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]box.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]box.obj [.src.widget]box.c +$ endif +$ if f$search("[.src.dialog]colorpicker.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.dialog]colorpicker.obj" +$ cc /include_directory=("./include","./src/dialog") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.dialog]colorpicker.obj [.src.dialog]colorpicker.c +$ endif +$ if f$search("[.src.dialog]directorychooser.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.dialog]directorychooser.obj" +$ cc /include_directory=("./include","./src/dialog") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.dialog]directorychooser.obj [.src.dialog]directorychooser.c +$ endif +$ if f$search("[.src.dialog]filechooser.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.dialog]filechooser.obj" +$ cc /include_directory=("./include","./src/dialog") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.dialog]filechooser.obj [.src.dialog]filechooser.c +$ endif +$ if f$search("[.src.dialog]messagebox.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.dialog]messagebox.obj" +$ cc /include_directory=("./include","./src/dialog") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.dialog]messagebox.obj [.src.dialog]messagebox.c +$ endif +$ if f$search("[.src.font]boldfont.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.font]boldfont.obj" +$ cc /include_directory=("./include","./src/font") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.font]boldfont.obj [.src.font]boldfont.c +$ endif +$ if f$search("[.src.font]boldttf.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.font]boldttf.obj" +$ cc /include_directory=("./include","./src/font") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.font]boldttf.obj [.src.font]boldttf.c +$ endif +$ if f$search("[.src.font]font.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.font]font.obj" +$ cc /include_directory=("./include","./src/font") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.font]font.obj [.src.font]font.c +$ endif +$ if f$search("[.src.font]ttf.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.font]ttf.obj" +$ cc /include_directory=("./include","./src/font") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.font]ttf.obj [.src.font]ttf.c +$ endif +$ if f$search("[.src.icon]back.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.icon]back.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]back.obj [.src.icon]back.c +$ endif +$ if f$search("[.src.icon]clock.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.icon]clock.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]clock.obj [.src.icon]clock.c +$ endif +$ if f$search("[.src.icon]computer.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.icon]computer.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]computer.obj [.src.icon]computer.c +$ endif +$ if f$search("[.src.icon]directory.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.icon]directory.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]directory.obj [.src.icon]directory.c +$ endif +$ if f$search("[.src.icon]down.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.icon]down.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]down.obj [.src.icon]down.c +$ endif +$ if f$search("[.src.icon]error.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.icon]error.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]error.obj [.src.icon]error.c +$ endif +$ if f$search("[.src.icon]file.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.icon]file.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]file.obj [.src.icon]file.c +$ endif +$ if f$search("[.src.icon]forward.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.icon]forward.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]forward.obj [.src.icon]forward.c +$ endif +$ if f$search("[.src.icon]info.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.icon]info.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]info.obj [.src.icon]info.c +$ endif +$ if f$search("[.src.icon]left.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.icon]left.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]left.obj [.src.icon]left.c +$ endif +$ if f$search("[.src.icon]news.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.icon]news.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]news.obj [.src.icon]news.c +$ endif +$ if f$search("[.src.icon]note.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.icon]note.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]note.obj [.src.icon]note.c +$ endif +$ if f$search("[.src.icon]right.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.icon]right.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]right.obj [.src.icon]right.c +$ endif +$ if f$search("[.src.icon]search.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.icon]search.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]search.obj [.src.icon]search.c +$ endif +$ if f$search("[.src.icon]up.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.icon]up.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]up.obj [.src.icon]up.c +$ endif +$ if f$search("[.src.icon]warning.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.icon]warning.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]warning.obj [.src.icon]warning.c +$ endif +$ if f$search("[.src.abstract]directory.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.abstract]directory.obj" +$ cc /include_directory=("./include","./src/abstract") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.abstract]directory.obj [.src.abstract]directory.c +$ endif +$ if f$search("[.src.abstract]dynamic.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.abstract]dynamic.obj" +$ cc /include_directory=("./include","./src/abstract") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.abstract]dynamic.obj [.src.abstract]dynamic.c +$ endif +$ if f$search("[.src.abstract]time.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.abstract]time.obj" +$ cc /include_directory=("./include","./src/abstract") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.abstract]time.obj [.src.abstract]time.c +$ endif +$ if f$search("[.external]stb_ds.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.external]stb_ds.obj" +$ cc /include_directory=("./include","./external") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.external]stb_ds.obj [.external]stb_ds.c +$ endif +$ if f$search("[.src.backend]x11.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.backend]x11.obj" +$ cc /include_directory=("./include","./src/backend") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.backend]x11.obj [.src.backend]x11.c +$ endif +$ if f$search("[.src]MwSHR.exe;*") .eqs. "" +$ then +$ write sys$output "LINK [.src]MwSHR.exe" +$ OPEN /WRITE LINK_OPT LINK.OPT +$ WRITE LINK_OPT "[.src]color.obj" +$ WRITE LINK_OPT "[.src]core.obj" +$ WRITE LINK_OPT "[.src]default.obj" +$ WRITE LINK_OPT "[.src]draw.obj" +$ WRITE LINK_OPT "[.src]error.obj" +$ WRITE LINK_OPT "[.src]lowlevel.obj" +$ WRITE LINK_OPT "[.src]string.obj" +$ WRITE LINK_OPT "[.src]text.obj" +$ WRITE LINK_OPT "[.src]unicode.obj" +$ WRITE LINK_OPT "[.src.cursor]arrow.obj" +$ WRITE LINK_OPT "[.src.cursor]cross.obj" +$ WRITE LINK_OPT "[.src.cursor]default.obj" +$ WRITE LINK_OPT "[.src.cursor]hidden.obj" +$ WRITE LINK_OPT "[.src.cursor]text.obj" +$ WRITE LINK_OPT "[.src.widget]button.obj" +$ WRITE LINK_OPT "[.src.widget]checkbox.obj" +$ WRITE LINK_OPT "[.src.widget]combobox.obj" +$ WRITE LINK_OPT "[.src.widget]entry.obj" +$ WRITE LINK_OPT "[.src.widget]frame.obj" +$ WRITE LINK_OPT "[.src.widget]image.obj" +$ WRITE LINK_OPT "[.src.widget]label.obj" +$ WRITE LINK_OPT "[.src.widget]listbox.obj" +$ WRITE LINK_OPT "[.src.widget]menu.obj" +$ WRITE LINK_OPT "[.src.widget]numberentry.obj" +$ WRITE LINK_OPT "[.src.widget]progressbar.obj" +$ WRITE LINK_OPT "[.src.widget]radiobox.obj" +$ WRITE LINK_OPT "[.src.widget]scrollbar.obj" +$ WRITE LINK_OPT "[.src.widget]separator.obj" +$ WRITE LINK_OPT "[.src.widget]submenu.obj" +$ WRITE LINK_OPT "[.src.widget]treeview.obj" +$ WRITE LINK_OPT "[.src.widget]viewport.obj" +$ WRITE LINK_OPT "[.src.widget]window.obj" +$ WRITE LINK_OPT "[.src.widget]box.obj" +$ WRITE LINK_OPT "[.src.dialog]colorpicker.obj" +$ WRITE LINK_OPT "[.src.dialog]directorychooser.obj" +$ WRITE LINK_OPT "[.src.dialog]filechooser.obj" +$ WRITE LINK_OPT "[.src.dialog]messagebox.obj" +$ WRITE LINK_OPT "[.src.font]boldfont.obj" +$ WRITE LINK_OPT "[.src.font]boldttf.obj" +$ WRITE LINK_OPT "[.src.font]font.obj" +$ WRITE LINK_OPT "[.src.font]ttf.obj" +$ WRITE LINK_OPT "[.src.icon]back.obj" +$ WRITE LINK_OPT "[.src.icon]clock.obj" +$ WRITE LINK_OPT "[.src.icon]computer.obj" +$ WRITE LINK_OPT "[.src.icon]directory.obj" +$ WRITE LINK_OPT "[.src.icon]down.obj" +$ WRITE LINK_OPT "[.src.icon]error.obj" +$ WRITE LINK_OPT "[.src.icon]file.obj" +$ WRITE LINK_OPT "[.src.icon]forward.obj" +$ WRITE LINK_OPT "[.src.icon]info.obj" +$ WRITE LINK_OPT "[.src.icon]left.obj" +$ WRITE LINK_OPT "[.src.icon]news.obj" +$ WRITE LINK_OPT "[.src.icon]note.obj" +$ WRITE LINK_OPT "[.src.icon]right.obj" +$ WRITE LINK_OPT "[.src.icon]search.obj" +$ WRITE LINK_OPT "[.src.icon]up.obj" +$ WRITE LINK_OPT "[.src.icon]warning.obj" +$ WRITE LINK_OPT "[.src.abstract]directory.obj" +$ WRITE LINK_OPT "[.src.abstract]dynamic.obj" +$ WRITE LINK_OPT "[.src.abstract]time.obj" +$ WRITE LINK_OPT "[.external]stb_ds.obj" +$ WRITE LINK_OPT "[.src.backend]x11.obj" +$ WRITE LINK_OPT "SYS$LIBRARY:DECW$XLIBSHR/SHARE/SHARE" +$ WRITE LINK_OPT "SYS$LIBRARY:DECC$SHR/SHARE/SHARE" +$ CLOSE LINK_OPT +$ link /SHAREABLE=[.src]MwSHR.exe LINK.OPT/options +$ DELETE LINK.OPT;* +$ endif diff --git a/vms/clean.com b/vms/clean.com new file mode 100644 index 000000000..e0900f2e0 --- /dev/null +++ b/vms/clean.com @@ -0,0 +1,63 @@ +$ if f$search("[.src]color.obj") .nes. "" then delete [.src]color.obj;* +$ if f$search("[.src]core.obj") .nes. "" then delete [.src]core.obj;* +$ if f$search("[.src]default.obj") .nes. "" then delete [.src]default.obj;* +$ if f$search("[.src]draw.obj") .nes. "" then delete [.src]draw.obj;* +$ if f$search("[.src]error.obj") .nes. "" then delete [.src]error.obj;* +$ if f$search("[.src]lowlevel.obj") .nes. "" then delete [.src]lowlevel.obj;* +$ if f$search("[.src]string.obj") .nes. "" then delete [.src]string.obj;* +$ if f$search("[.src]text.obj") .nes. "" then delete [.src]text.obj;* +$ if f$search("[.src]unicode.obj") .nes. "" then delete [.src]unicode.obj;* +$ if f$search("[.src.cursor]arrow.obj") .nes. "" then delete [.src.cursor]arrow.obj;* +$ if f$search("[.src.cursor]cross.obj") .nes. "" then delete [.src.cursor]cross.obj;* +$ if f$search("[.src.cursor]default.obj") .nes. "" then delete [.src.cursor]default.obj;* +$ if f$search("[.src.cursor]hidden.obj") .nes. "" then delete [.src.cursor]hidden.obj;* +$ if f$search("[.src.cursor]text.obj") .nes. "" then delete [.src.cursor]text.obj;* +$ if f$search("[.src.widget]button.obj") .nes. "" then delete [.src.widget]button.obj;* +$ if f$search("[.src.widget]checkbox.obj") .nes. "" then delete [.src.widget]checkbox.obj;* +$ if f$search("[.src.widget]combobox.obj") .nes. "" then delete [.src.widget]combobox.obj;* +$ if f$search("[.src.widget]entry.obj") .nes. "" then delete [.src.widget]entry.obj;* +$ if f$search("[.src.widget]frame.obj") .nes. "" then delete [.src.widget]frame.obj;* +$ if f$search("[.src.widget]image.obj") .nes. "" then delete [.src.widget]image.obj;* +$ if f$search("[.src.widget]label.obj") .nes. "" then delete [.src.widget]label.obj;* +$ if f$search("[.src.widget]listbox.obj") .nes. "" then delete [.src.widget]listbox.obj;* +$ if f$search("[.src.widget]menu.obj") .nes. "" then delete [.src.widget]menu.obj;* +$ if f$search("[.src.widget]numberentry.obj") .nes. "" then delete [.src.widget]numberentry.obj;* +$ if f$search("[.src.widget]progressbar.obj") .nes. "" then delete [.src.widget]progressbar.obj;* +$ if f$search("[.src.widget]radiobox.obj") .nes. "" then delete [.src.widget]radiobox.obj;* +$ if f$search("[.src.widget]scrollbar.obj") .nes. "" then delete [.src.widget]scrollbar.obj;* +$ if f$search("[.src.widget]separator.obj") .nes. "" then delete [.src.widget]separator.obj;* +$ if f$search("[.src.widget]submenu.obj") .nes. "" then delete [.src.widget]submenu.obj;* +$ if f$search("[.src.widget]treeview.obj") .nes. "" then delete [.src.widget]treeview.obj;* +$ if f$search("[.src.widget]viewport.obj") .nes. "" then delete [.src.widget]viewport.obj;* +$ if f$search("[.src.widget]window.obj") .nes. "" then delete [.src.widget]window.obj;* +$ if f$search("[.src.widget]box.obj") .nes. "" then delete [.src.widget]box.obj;* +$ if f$search("[.src.dialog]colorpicker.obj") .nes. "" then delete [.src.dialog]colorpicker.obj;* +$ if f$search("[.src.dialog]directorychooser.obj") .nes. "" then delete [.src.dialog]directorychooser.obj;* +$ if f$search("[.src.dialog]filechooser.obj") .nes. "" then delete [.src.dialog]filechooser.obj;* +$ if f$search("[.src.dialog]messagebox.obj") .nes. "" then delete [.src.dialog]messagebox.obj;* +$ if f$search("[.src.font]boldfont.obj") .nes. "" then delete [.src.font]boldfont.obj;* +$ if f$search("[.src.font]boldttf.obj") .nes. "" then delete [.src.font]boldttf.obj;* +$ if f$search("[.src.font]font.obj") .nes. "" then delete [.src.font]font.obj;* +$ if f$search("[.src.font]ttf.obj") .nes. "" then delete [.src.font]ttf.obj;* +$ if f$search("[.src.icon]back.obj") .nes. "" then delete [.src.icon]back.obj;* +$ if f$search("[.src.icon]clock.obj") .nes. "" then delete [.src.icon]clock.obj;* +$ if f$search("[.src.icon]computer.obj") .nes. "" then delete [.src.icon]computer.obj;* +$ if f$search("[.src.icon]directory.obj") .nes. "" then delete [.src.icon]directory.obj;* +$ if f$search("[.src.icon]down.obj") .nes. "" then delete [.src.icon]down.obj;* +$ if f$search("[.src.icon]error.obj") .nes. "" then delete [.src.icon]error.obj;* +$ if f$search("[.src.icon]file.obj") .nes. "" then delete [.src.icon]file.obj;* +$ if f$search("[.src.icon]forward.obj") .nes. "" then delete [.src.icon]forward.obj;* +$ if f$search("[.src.icon]info.obj") .nes. "" then delete [.src.icon]info.obj;* +$ if f$search("[.src.icon]left.obj") .nes. "" then delete [.src.icon]left.obj;* +$ if f$search("[.src.icon]news.obj") .nes. "" then delete [.src.icon]news.obj;* +$ if f$search("[.src.icon]note.obj") .nes. "" then delete [.src.icon]note.obj;* +$ if f$search("[.src.icon]right.obj") .nes. "" then delete [.src.icon]right.obj;* +$ if f$search("[.src.icon]search.obj") .nes. "" then delete [.src.icon]search.obj;* +$ if f$search("[.src.icon]up.obj") .nes. "" then delete [.src.icon]up.obj;* +$ if f$search("[.src.icon]warning.obj") .nes. "" then delete [.src.icon]warning.obj;* +$ if f$search("[.src.abstract]directory.obj") .nes. "" then delete [.src.abstract]directory.obj;* +$ if f$search("[.src.abstract]dynamic.obj") .nes. "" then delete [.src.abstract]dynamic.obj;* +$ if f$search("[.src.abstract]time.obj") .nes. "" then delete [.src.abstract]time.obj;* +$ if f$search("[.external]stb_ds.obj") .nes. "" then delete [.external]stb_ds.obj;* +$ if f$search("[.src.backend]x11.obj") .nes. "" then delete [.src.backend]x11.obj;* +$ if f$search("[.src]MwSHR.exe") .nes. "" then delete [.src]MwSHR.exe;* From 0d281c09ced81a4510d181e29314081ae83237e2 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 21 Dec 2025 20:25:57 +0900 Subject: [PATCH 057/836] i will work on vms port at some point --- tools/gendcl.pl | 4 ++-- vms/build.com | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/gendcl.pl b/tools/gendcl.pl index 94e4ad196..be81d9cc1 100755 --- a/tools/gendcl.pl +++ b/tools/gendcl.pl @@ -92,8 +92,8 @@ for (my $i = 0 ; $i < 2 ; $i++) { print(OUT "\$ WRITE LINK_OPT \"$obj\"\n"); } print(OUT - "\$ WRITE LINK_OPT \"SYS\$LIBRARY:DECW\$XLIBSHR/SHARE/SHARE\"\n"); - print(OUT "\$ WRITE LINK_OPT \"SYS\$LIBRARY:DECC\$SHR/SHARE/SHARE\"\n"); + "\$ WRITE LINK_OPT \"SYS\$LIBRARY:DECW\$XLIBSHR/SHARE\"\n"); + print(OUT "\$ WRITE LINK_OPT \"SYS\$LIBRARY:DPML\$SHR/SHARE\"\n"); print(OUT "\$ CLOSE LINK_OPT\n"); print(OUT "\$ link /SHAREABLE=[.src]MwSHR.exe LINK.OPT/options\n"); print(OUT "\$ DELETE LINK.OPT;*\n"); diff --git a/vms/build.com b/vms/build.com index 17d48299c..dc8f9e257 100644 --- a/vms/build.com +++ b/vms/build.com @@ -375,7 +375,7 @@ $ WRITE LINK_OPT "[.src.abstract]time.obj" $ WRITE LINK_OPT "[.external]stb_ds.obj" $ WRITE LINK_OPT "[.src.backend]x11.obj" $ WRITE LINK_OPT "SYS$LIBRARY:DECW$XLIBSHR/SHARE/SHARE" -$ WRITE LINK_OPT "SYS$LIBRARY:DECC$SHR/SHARE/SHARE" +$ WRITE LINK_OPT "SYS$LIBRARY:DPML$SHR/SHARE/SHARE" $ CLOSE LINK_OPT $ link /SHAREABLE=[.src]MwSHR.exe LINK.OPT/options $ DELETE LINK.OPT;* From e44eaa2c16eb08622539f27f2a8a78e077894adc Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 21 Dec 2025 22:02:33 +0900 Subject: [PATCH 058/836] fix --- src/widget/submenu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/widget/submenu.c b/src/widget/submenu.c index ea51f029b..587b335c6 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -133,7 +133,7 @@ static void click(MwWidget handle) { MwSubMenuAppear(menu->sub[i]->wsub, menu->sub[i], &p, 0); i = -1; } else if(menu->sub[i]->wsub != NULL && arrlen(menu->sub[i]->sub) > 0) { - while(w->parent->widget_class != MwMenuClass) w = w->parent; + while(w->parent->widget_class == MwSubMenuClass) w = w->parent; MwDestroyWidget(menu->sub[i]->wsub); menu->sub[i]->wsub = NULL; @@ -142,7 +142,7 @@ static void click(MwWidget handle) { MwForceRender(handle); } else if(strcmp(menu->sub[i]->name, "----") != 0 && arrlen(menu->sub[i]->sub) == 0) { - while(w->parent->widget_class != MwMenuClass) w = w->parent; + while(w->parent->widget_class == MwSubMenuClass) w = w->parent; MwGetBeforeStep(w, &jmp); MwDestroyWidget(w); From 873c75b882155b94441e0fe710e207c0b1729237 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 21 Dec 2025 22:21:10 +0900 Subject: [PATCH 059/836] fix --- src/widget/submenu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widget/submenu.c b/src/widget/submenu.c index 587b335c6..d22c3c233 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -184,7 +184,7 @@ static void mwSubMenuAppearImpl(MwWidget handle, MwMenu menu, MwPoint* point, in h += 3; if(diff_calc) { - p.y = rc.height - p.y - h; + p.y = p.y - h; } MwLLMakeToolWindow(handle->lowlevel); From bdc67d6369700547ec8cd43996dd5c619f0e445c Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 21 Dec 2025 23:02:02 +0900 Subject: [PATCH 060/836] text shadow --- include/Mw/Default.h | 5 +++++ src/default.c | 2 ++ src/widget/label.c | 9 ++++++++- tools/gendcl.pl | 3 +-- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/include/Mw/Default.h b/include/Mw/Default.h index 93f919a5d..3d197d011 100644 --- a/include/Mw/Default.h +++ b/include/Mw/Default.h @@ -52,6 +52,11 @@ MWDECL const char* MwDefaultDarkSubBackground; */ MWDECL const char* MwDefaultDarkSubForeground; +/*! + * @brief Default shadow difference + */ +MWDECL const int MwDefaultShadow; + /*! * @brief Gets default border width * @param handle Widget diff --git a/src/default.c b/src/default.c index 4a7d52c73..36537a183 100644 --- a/src/default.c +++ b/src/default.c @@ -10,6 +10,8 @@ const char* MwDefaultDarkForeground = "#ddd"; const char* MwDefaultDarkSubBackground = "#333"; const char* MwDefaultDarkSubForeground = "#ddd"; +const int MwDefaultShadow = -32; + int MwDefaultBorderWidth(MwWidget handle) { int bw = MwGetInteger(handle, MwNborderWidth); diff --git a/src/widget/label.c b/src/widget/label.c index a137ca021..86aefe865 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -126,7 +126,7 @@ static void draw(MwWidget handle) { MwPoint p; MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); MwLLColor text = MwParseColor(handle, MwGetText(handle, MwNforeground)); - MwLLColor shadow = MwLightenColor(handle, base, -32, -32, -32); + MwLLColor shadow = MwLightenColor(handle, base, MwDefaultShadow, MwDefaultShadow, MwDefaultShadow); int align; const char* str = MwGetText(handle, MwNtext); MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); @@ -317,6 +317,13 @@ static void draw(MwWidget handle) { p.x = r.width - MwTextWidth(handle, str) / 2; } p.y = r.height / 2; + + p.x += 1; + p.y += 1; + MwDrawText(handle, &p, str, MwGetInteger(handle, MwNbold), MwALIGNMENT_CENTER, shadow); + + p.x -= 1; + p.y -= 1; MwDrawText(handle, &p, str, MwGetInteger(handle, MwNbold), MwALIGNMENT_CENTER, text); } diff --git a/tools/gendcl.pl b/tools/gendcl.pl index be81d9cc1..f2e3399c3 100755 --- a/tools/gendcl.pl +++ b/tools/gendcl.pl @@ -91,8 +91,7 @@ for (my $i = 0 ; $i < 2 ; $i++) { foreach my $obj (@objs) { print(OUT "\$ WRITE LINK_OPT \"$obj\"\n"); } - print(OUT - "\$ WRITE LINK_OPT \"SYS\$LIBRARY:DECW\$XLIBSHR/SHARE\"\n"); + print(OUT "\$ WRITE LINK_OPT \"SYS\$LIBRARY:DECW\$XLIBSHR/SHARE\"\n"); print(OUT "\$ WRITE LINK_OPT \"SYS\$LIBRARY:DPML\$SHR/SHARE\"\n"); print(OUT "\$ CLOSE LINK_OPT\n"); print(OUT "\$ link /SHAREABLE=[.src]MwSHR.exe LINK.OPT/options\n"); From c7c8f236b048deb30987356805c9a0f560cb2383 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 21 Dec 2025 23:03:33 +0900 Subject: [PATCH 061/836] yes --- include/Mw/StringDefs.h | 1 + milsko.xml | 2 ++ src/draw.c | 3 +++ 3 files changed, 6 insertions(+) diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index afcbedcbe..6588be2da 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -38,6 +38,7 @@ #define MwNbitmapFont "IbitmapFont" #define MwNsevenSegment "IsevenSegment" #define MwNlength "Ilength" +#define MwNforceInverted "IforceInverted" #define MwNtitle "Stitle" #define MwNtext "Stext" diff --git a/milsko.xml b/milsko.xml index f60f7c799..756e4f144 100644 --- a/milsko.xml +++ b/milsko.xml @@ -52,6 +52,7 @@ - MwNratio - MwNfixedSize - MwNbitmapFont + - MwNforceInverted Integer properties must be prefixed with I. String properties must be prefixed with S. @@ -91,6 +92,7 @@ + diff --git a/src/draw.c b/src/draw.c index d1f3c7894..4286d6696 100644 --- a/src/draw.c +++ b/src/draw.c @@ -131,6 +131,9 @@ void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color) { } void MwDrawFrame(MwWidget handle, MwRect* rect, MwLLColor color, int invert) { + int inv; + + if((inv = MwGetInteger(handle, MwNforceInverted)) != MwDEFAULT && inv) invert = 1; if(MwGetInteger(handle, MwNmodernLook)) { MwDrawFrameEx(handle, rect, color, invert, MwDefaultBorderWidth(handle), 0, 0); } else { From a824b4fc441f645124a10a2a3a7f277e5ea54d47 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 21 Dec 2025 23:04:53 +0900 Subject: [PATCH 062/836] oops --- src/widget/button.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/widget/button.c b/src/widget/button.c index 7e5b36cdb..8db12c3a8 100644 --- a/src/widget/button.c +++ b/src/widget/button.c @@ -29,7 +29,9 @@ static void draw(MwWidget handle) { r.height = MwGetInteger(handle, MwNheight); if(MwGetInteger(handle, MwNflat)) { - if(handle->pressed) { + int inv; + + if(handle->pressed || ((inv = MwGetInteger(handle, MwNforceInverted)) != MwDEFAULT && inv)) { MwDrawWidgetBack(handle, &r, base, handle->pressed, 1); } else { MwDrawRect(handle, &r, base); From e9fd2705d4c34a3c42b0307d718b915a881633b6 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 21 Dec 2025 23:05:42 +0900 Subject: [PATCH 063/836] fix --- src/widget/button.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/widget/button.c b/src/widget/button.c index 8db12c3a8..885ff9d49 100644 --- a/src/widget/button.c +++ b/src/widget/button.c @@ -20,6 +20,7 @@ static void draw(MwWidget handle) { const char* str = MwGetText(handle, MwNtext); MwLLPixmap px = MwGetVoid(handle, MwNpixmap); MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); + int inv; if(str == NULL) str = ""; @@ -29,8 +30,6 @@ static void draw(MwWidget handle) { r.height = MwGetInteger(handle, MwNheight); if(MwGetInteger(handle, MwNflat)) { - int inv; - if(handle->pressed || ((inv = MwGetInteger(handle, MwNforceInverted)) != MwDEFAULT && inv)) { MwDrawWidgetBack(handle, &r, base, handle->pressed, 1); } else { @@ -40,7 +39,7 @@ static void draw(MwWidget handle) { MwDrawWidgetBack(handle, &r, base, handle->pressed, 1); } if(bgpx != NULL) MwLLDrawPixmap(handle->lowlevel, &r, bgpx); - if(MwGetInteger(handle, MwNflat) && !handle->pressed) { + if(MwGetInteger(handle, MwNflat) && !(handle->pressed || ((inv = MwGetInteger(handle, MwNforceInverted)) != MwDEFAULT && inv))) { r.x += MwDefaultBorderWidth(handle); r.y += MwDefaultBorderWidth(handle); r.width -= MwDefaultBorderWidth(handle) * 2; From df99e66d878c5e763fdda5e609b87eaf8e98c44f Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 23 Dec 2025 18:10:50 +0900 Subject: [PATCH 064/836] tiny fix --- src/widget/submenu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/widget/submenu.c b/src/widget/submenu.c index d22c3c233..7c23c819e 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -66,7 +66,7 @@ static void draw(MwWidget handle) { if(menu->sub[i]->wsub != NULL) { r.x = 0; r.y = p.y - 3; - r.width = tw + 15 + 5 * 2; + r.width = MwGetInteger(handle, MwNwidth); r.height = th + 3 * 2; MwDrawWidgetBack(handle, &r, base, 0, MwTRUE); } @@ -79,7 +79,7 @@ static void draw(MwWidget handle) { if(arrlen(menu->sub[i]->sub) > 0) { MwRect tr; - tr.x = p.x + tw / 2 + 5; + tr.x = MwGetInteger(handle, MwNwidth) - MwDefaultBorderWidth(handle) - 11 - 2; tr.y = p.y - th / 2 + 2; tr.width = tr.height = 11; From a23016bc051ea056589add8a6efb96172fcff21a Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 23 Dec 2025 18:14:00 +0900 Subject: [PATCH 065/836] yes --- src/widget/submenu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/widget/submenu.c b/src/widget/submenu.c index 7c23c819e..463d207d1 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -126,7 +126,7 @@ static void click(MwWidget handle) { menu->sub[j]->wsub = NULL; } - p.x = rc.x + rc.width + 3; + p.x = MwGetInteger(handle, MwNwidth); p.y = rc.y - 3; menu->sub[i]->wsub = MwCreateWidget(MwSubMenuClass, "submenu", handle, 0, 0, 0, 0); @@ -183,6 +183,8 @@ static void mwSubMenuAppearImpl(MwWidget handle, MwMenu menu, MwPoint* point, in w += 10 + 15; h += 3; + if(w < 150) w = 150; + if(diff_calc) { p.y = p.y - h; } From 55f82e4fbc5ade9ce7d35d3e6a4a7636172a0a3c Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 23 Dec 2025 22:08:49 +0900 Subject: [PATCH 066/836] update --- include/Mw/TypeDefs.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index 2a6efc715..79f459e4a 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -108,6 +108,7 @@ struct _MwMenu { int keep; MwWidget wsub; MwMenu* sub; + void* user; }; struct _MwEntry { From 9ea54b4f8832c8bf7171b5b70dfefbf2989e76b7 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 23 Dec 2025 22:08:55 +0900 Subject: [PATCH 067/836] format --- include/Mw/TypeDefs.h | 2 +- src/widget/submenu.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index 79f459e4a..d1469b884 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -108,7 +108,7 @@ struct _MwMenu { int keep; MwWidget wsub; MwMenu* sub; - void* user; + void* user; }; struct _MwEntry { diff --git a/src/widget/submenu.c b/src/widget/submenu.c index 463d207d1..649281132 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -66,7 +66,7 @@ static void draw(MwWidget handle) { if(menu->sub[i]->wsub != NULL) { r.x = 0; r.y = p.y - 3; - r.width = MwGetInteger(handle, MwNwidth); + r.width = MwGetInteger(handle, MwNwidth); r.height = th + 3 * 2; MwDrawWidgetBack(handle, &r, base, 0, MwTRUE); } From c8e7f582302eff67224804e0d3b312dcf9fd5122 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 23 Dec 2025 22:11:22 +0900 Subject: [PATCH 068/836] wrong --- include/Mw/TypeDefs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index d1469b884..3275096f1 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -108,7 +108,7 @@ struct _MwMenu { int keep; MwWidget wsub; MwMenu* sub; - void* user; + void* opaque; }; struct _MwEntry { From 7b4752428623f7317411a6ff18eccc8508a16b90 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 24 Dec 2025 13:56:08 +0900 Subject: [PATCH 069/836] improve submenu --- src/widget/submenu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/widget/submenu.c b/src/widget/submenu.c index 649281132..9eb6f7808 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -116,7 +116,7 @@ static void click(MwWidget handle) { int th = MwTextHeight(handle, menu->sub[i]->name); rc.height = th; - if(rc.x <= handle->mouse_point.x && rc.y <= handle->mouse_point.y && handle->mouse_point.x <= (int)(rc.x + rc.width) && handle->mouse_point.y <= (int)(rc.y + rc.height)) { + if(rc.y <= handle->mouse_point.y && handle->mouse_point.y <= (int)(rc.y + rc.height)) { if(menu->sub[i]->wsub == NULL && arrlen(menu->sub[i]->sub) > 0) { MwPoint p; int j; @@ -183,7 +183,7 @@ static void mwSubMenuAppearImpl(MwWidget handle, MwMenu menu, MwPoint* point, in w += 10 + 15; h += 3; - if(w < 150) w = 150; + w += 32; if(diff_calc) { p.y = p.y - h; From 86effbdfd71911b142cb12d272496b54aba62cb7 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 24 Dec 2025 22:52:26 +0900 Subject: [PATCH 070/836] fix --- CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5d9aeed73..ca3c76509 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -195,7 +195,6 @@ target_compile_definitions( _MILSKO ) -include(GNUInstallDirs) install( TARGETS Mw RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} From 509351a0a0339cd61bef14c303b55e68dd974fa8 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 25 Dec 2025 00:19:27 +0900 Subject: [PATCH 071/836] fix submenu --- src/widget/submenu.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/widget/submenu.c b/src/widget/submenu.c index 9eb6f7808..a83f7b6df 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -116,6 +116,10 @@ static void click(MwWidget handle) { int th = MwTextHeight(handle, menu->sub[i]->name); rc.height = th; + if(strcmp(menu->sub[i]->name, "----") == 0) { + rc.height = MwDefaultBorderWidth(handle) * 2 - 1; + } + if(rc.y <= handle->mouse_point.y && handle->mouse_point.y <= (int)(rc.y + rc.height)) { if(menu->sub[i]->wsub == NULL && arrlen(menu->sub[i]->sub) > 0) { MwPoint p; From 22b4737c3367810632a19281fd56e3182fe4e41f Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 25 Dec 2025 02:27:41 +0900 Subject: [PATCH 072/836] better separator --- src/widget/submenu.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/widget/submenu.c b/src/widget/submenu.c index a83f7b6df..a265dee18 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -54,11 +54,11 @@ static void draw(MwWidget handle) { rc.x = MwDefaultBorderWidth(handle) * 2; rc.y = p.y; rc.width = r.width - (rc.x * 2); - rc.height = MwDefaultBorderWidth(handle) * 2; + rc.height = 2; - MwDrawFrame(handle, &rc, base, 1); + MwDrawFrameEx(handle, &rc, base, 1, 1, 0, 0); - p.y += MwDefaultBorderWidth(handle) * 2 + 1; + p.y += 2 + 1; } else { int tw = MwTextWidth(handle, menu->sub[i]->name); int th = MwTextHeight(handle, menu->sub[i]->name); @@ -117,7 +117,7 @@ static void click(MwWidget handle) { rc.height = th; if(strcmp(menu->sub[i]->name, "----") == 0) { - rc.height = MwDefaultBorderWidth(handle) * 2 - 1; + rc.height = 2 - 1; } if(rc.y <= handle->mouse_point.y && handle->mouse_point.y <= (int)(rc.y + rc.height)) { From e77c4f3c38c53d247d42c98192cd411eca60f6f0 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 25 Dec 2025 03:56:04 +0900 Subject: [PATCH 073/836] add MwNleftPadding to SubMenu --- milsko.xml | 3 +++ src/widget/submenu.c | 11 ++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/milsko.xml b/milsko.xml index 756e4f144..82b5b6b95 100644 --- a/milsko.xml +++ b/milsko.xml @@ -640,6 +640,9 @@ + + + diff --git a/src/widget/submenu.c b/src/widget/submenu.c index a265dee18..7a23ba5f2 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -6,6 +6,7 @@ static int create(MwWidget handle) { MwLLBeginStateChange(handle->lowlevel); MwSetDefault(handle); + MwSetInteger(handle, MwNleftPadding, 16); return 0; } @@ -53,9 +54,11 @@ static void draw(MwWidget handle) { rc.x = MwDefaultBorderWidth(handle) * 2; rc.y = p.y; - rc.width = r.width - (rc.x * 2); + rc.width = r.width - (rc.x * 2) - MwGetInteger(handle, MwNleftPadding); rc.height = 2; + rc.x += MwGetInteger(handle, MwNleftPadding); + MwDrawFrameEx(handle, &rc, base, 1, 1, 0, 0); p.y += 2 + 1; @@ -71,7 +74,7 @@ static void draw(MwWidget handle) { MwDrawWidgetBack(handle, &r, base, 0, MwTRUE); } - p.x = 5 + tw / 2; + p.x = 5 + tw / 2 + MwGetInteger(handle, MwNleftPadding); p.y += th / 2; MwDrawText(handle, &p, menu->sub[i]->name, menu->sub[i]->wsub != NULL ? 1 : 0, MwALIGNMENT_CENTER, text); @@ -120,7 +123,7 @@ static void click(MwWidget handle) { rc.height = 2 - 1; } - if(rc.y <= handle->mouse_point.y && handle->mouse_point.y <= (int)(rc.y + rc.height)) { + if(MwGetInteger(handle, MwNleftPadding) <= handle->mouse_point.x && rc.y <= handle->mouse_point.y && handle->mouse_point.y <= (int)(rc.y + rc.height)) { if(menu->sub[i]->wsub == NULL && arrlen(menu->sub[i]->sub) > 0) { MwPoint p; int j; @@ -184,6 +187,8 @@ static void mwSubMenuAppearImpl(MwWidget handle, MwMenu menu, MwPoint* point, in } } + w += MwGetInteger(handle, MwNleftPadding); + w += 10 + 15; h += 3; From d3a7b0a01d3e40c5627fed61cc7ab24d2e74906e Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 25 Dec 2025 04:03:05 +0900 Subject: [PATCH 074/836] oops --- src/widget/submenu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widget/submenu.c b/src/widget/submenu.c index 7a23ba5f2..1f499b172 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -6,7 +6,7 @@ static int create(MwWidget handle) { MwLLBeginStateChange(handle->lowlevel); MwSetDefault(handle); - MwSetInteger(handle, MwNleftPadding, 16); + MwSetInteger(handle, MwNleftPadding, 0); return 0; } From c80987ffe41251d206df66b50411f27f7a36027e Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 25 Dec 2025 04:18:12 +0900 Subject: [PATCH 075/836] better --- include/Mw/Widget/SubMenu.h | 10 ++++++ src/widget/submenu.c | 64 ++++++++++++++++++++++--------------- 2 files changed, 48 insertions(+), 26 deletions(-) diff --git a/include/Mw/Widget/SubMenu.h b/include/Mw/Widget/SubMenu.h index 126a73bbb..636f29bc4 100644 --- a/include/Mw/Widget/SubMenu.h +++ b/include/Mw/Widget/SubMenu.h @@ -29,6 +29,16 @@ MwInline void MwSubMenuAppear(MwWidget handle, MwMenu menu, MwPoint* point, int MwVaWidgetExecute(handle, "mwSubMenuAppear", NULL, menu, point, diff_calc); } +/*! + * @brief Calculates the size of submenu + * @param handle Handle + * @param menu Menu + * @param rect Size + */ +MwInline void MwSubMenuGetSize(MwWidget handle, MwMenu menu, MwRect* rect) { + MwVaWidgetExecute(handle, "mwSubMenuGetSize", NULL, menu, rect); +} + #ifdef __cplusplus } #endif diff --git a/src/widget/submenu.c b/src/widget/submenu.c index 1f499b172..c9e2e37ba 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -167,53 +167,61 @@ static void click(MwWidget handle) { } static void mwSubMenuAppearImpl(MwWidget handle, MwMenu menu, MwPoint* point, int diff_calc) { - int i, w = 0, h = 0; - MwRect rc; + MwRect rc, sz; MwPoint p = *point; + MwSubMenuGetSize(handle, menu, &sz); + MwGetScreenSize(handle, &rc); handle->internal = menu; - for(i = 0; i < arrlen(menu->sub); i++) { - if(strcmp(menu->sub[i]->name, "----") == 0) { - h += MwDefaultBorderWidth(handle) * 2 + 2; - } else { - int tw = MwTextWidth(handle, menu->sub[i]->name); - h += MwTextHeight(handle, menu->sub[i]->name) + 3; - if(tw > w) { - w = tw; - } - } - } - - w += MwGetInteger(handle, MwNleftPadding); - - w += 10 + 15; - h += 3; - - w += 32; - if(diff_calc) { - p.y = p.y - h; + p.y = p.y - sz.height; } MwLLMakeToolWindow(handle->lowlevel); MwLLDetach(handle->lowlevel, &p); - if(MwGetInteger(handle, MwNy) + h > rc.height) { + if(MwGetInteger(handle, MwNy) + sz.height > rc.height) { MwVaApply(handle, - MwNy, rc.height - h, + MwNy, rc.height - sz.height, NULL); } MwLLEndStateChange(handle->lowlevel); MwVaApply(handle, - MwNwidth, w, - MwNheight, h, + MwNwidth, sz.width, + MwNheight, sz.height, NULL); } +static void mwSubMenuGetSizeImpl(MwWidget handle, MwMenu menu, MwRect* rect) { + int i; + + rect->width = 0; + rect->height = 0; + + for(i = 0; i < arrlen(menu->sub); i++) { + if(strcmp(menu->sub[i]->name, "----") == 0) { + rect->height += 2 + 2; + } else { + int tw = MwTextWidth(handle, menu->sub[i]->name); + rect->height += MwTextHeight(handle, menu->sub[i]->name) + 3; + if(tw > rect->width) { + rect->width = tw; + } + } + } + + rect->width += MwGetInteger(handle, MwNleftPadding); + + rect->width += 10 + 15; + rect->height += 3; + + rect->width += 16; +} + static void func_handler(MwWidget handle, const char* name, void* out, va_list va) { (void)out; @@ -222,6 +230,10 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v MwPoint* point = va_arg(va, MwPoint*); int diff_calc = va_arg(va, int); mwSubMenuAppearImpl(handle, menu, point, diff_calc); + } else if(strcmp(name, "mwSubMenuGetSize") == 0) { + MwMenu menu = va_arg(va, MwMenu); + MwRect* rect = va_arg(va, MwRect*); + mwSubMenuGetSizeImpl(handle, menu, rect); } } From 0d79141a49009b69904f16f33317385905f14729 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 25 Dec 2025 04:21:33 +0900 Subject: [PATCH 076/836] tiny fix --- src/widget/submenu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/widget/submenu.c b/src/widget/submenu.c index c9e2e37ba..6b97934cb 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -67,9 +67,9 @@ static void draw(MwWidget handle) { int th = MwTextHeight(handle, menu->sub[i]->name); if(menu->sub[i]->wsub != NULL) { - r.x = 0; + r.x = MwGetInteger(handle, MwNleftPadding); r.y = p.y - 3; - r.width = MwGetInteger(handle, MwNwidth); + r.width = MwGetInteger(handle, MwNwidth) - MwGetInteger(handle, MwNleftPadding); r.height = th + 3 * 2; MwDrawWidgetBack(handle, &r, base, 0, MwTRUE); } From e895e9694187c11fd907e4b1786404a2032c9705 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 25 Dec 2025 15:39:54 +0900 Subject: [PATCH 077/836] introduce MwNleftPadding to label --- milsko.xml | 1 + src/widget/label.c | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/milsko.xml b/milsko.xml index 82b5b6b95..f7dcf2c78 100644 --- a/milsko.xml +++ b/milsko.xml @@ -544,6 +544,7 @@ + diff --git a/src/widget/label.c b/src/widget/label.c index 86aefe865..f85fb5d87 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -15,6 +15,7 @@ static int create(MwWidget handle) { MwSetInteger(handle, MwNbold, 0); MwSetInteger(handle, MwNsevenSegment, 0); MwSetInteger(handle, MwNlength, 4); + MwSetInteger(handle, MwNleftPadding, 0); return 0; } @@ -309,6 +310,8 @@ static void draw(MwWidget handle) { MwLLDestroyPixmap(px); } else { + r.width -= MwGetInteger(handle, MwNleftPadding); + if(align == MwALIGNMENT_CENTER) { p.x = r.width / 2; } else if(align == MwALIGNMENT_BEGINNING) { @@ -318,6 +321,8 @@ static void draw(MwWidget handle) { } p.y = r.height / 2; + p.x += MwGetInteger(handle, MwNleftPadding); + p.x += 1; p.y += 1; MwDrawText(handle, &p, str, MwGetInteger(handle, MwNbold), MwALIGNMENT_CENTER, shadow); @@ -333,7 +338,7 @@ static void draw(MwWidget handle) { } static void prop_change(MwWidget handle, const char* key) { - if(strcmp(key, MwNtext) == 0 || strcmp(key, MwNalignment) == 0 || strcmp(key, MwNsevenSegment) == 0) MwForceRender(handle); + if(strcmp(key, MwNtext) == 0 || strcmp(key, MwNalignment) == 0 || strcmp(key, MwNsevenSegment) == 0 || strcmp(key, MwNlength) == 0 || strcmp(key, MwNleftPadding) == 0) MwForceRender(handle); } static void mwLabelSetSevenSegmentImpl(MwWidget handle, int index, unsigned char data) { From 0ca7f6ed8ad626ca0d73340ff49488b8d0ac7ff7 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 28 Dec 2025 17:41:11 +0900 Subject: [PATCH 078/836] dispatch children_update --- src/core.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core.c b/src/core.c index cde8b0d72..bd46f9fae 100644 --- a/src/core.c +++ b/src/core.c @@ -261,6 +261,8 @@ void MwDestroyWidget(MwWidget handle) { if(i == arrlen(handle->parent->destroy_queue)) { arrput(handle->parent->destroy_queue, handle); } + + MwDispatch(handle->parent, children_update); } destroy_children(handle); handle->destroyed = 1; From 0daa527b1da73526e54bd2f106f5485ddbac40a9 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 28 Dec 2025 18:03:37 +0900 Subject: [PATCH 079/836] fix --- src/widget/box.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/widget/box.c b/src/widget/box.c index e6966654d..3bf7528ef 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -47,6 +47,8 @@ static void layout(MwWidget handle) { int s = MwGetInteger(handle->children[i], MwNfixedSize); if(n == MwDEFAULT) n = 1; + if(handle->children[i]->destroyed) continue; + if(s != MwDEFAULT) { sz -= s + Margin; } else { @@ -60,6 +62,8 @@ static void layout(MwWidget handle) { int wsz; if(n == MwDEFAULT) n = 1; + if(handle->children[i]->destroyed) continue; + if(s != MwDEFAULT) { wsz = s; } else { From 549d23589398b65ec40f802b051ea3476a953747 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 28 Dec 2025 21:56:45 +0900 Subject: [PATCH 080/836] better --- src/widget/label.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/widget/label.c b/src/widget/label.c index f85fb5d87..792d00918 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -254,10 +254,11 @@ static void draw(MwWidget handle) { for(j = 1; j >= 0; j--) { MwLLColor cl = j == 1 ? shadow : text; for(cy = 1; cy < h - 1; cy++) { - int c = (l_one - s_one) / 2 + s_one; + int h = s_one / 2; + int c = (l_one - h) / 2 + s_one; - int c1 = (c <= cy && cy <= (c + s_one)) ? 1 : 0; - int c2 = ((s_one + l_one + c) <= cy && cy <= (s_one + l_one + c + s_one)) ? 1 : 0; + int c1 = (c <= cy && cy <= (c + h)) ? 1 : 0; + int c2 = ((s_one + l_one + c) <= cy && cy <= (s_one + l_one + c + h)) ? 1 : 0; if(c1 || c2) { for(cx = x; cx < x + s_one; cx++) { From 3f9125d1aebae177d6ec7340e036c4f7ade63569 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 30 Dec 2025 23:54:30 +0900 Subject: [PATCH 081/836] fix --- src/core.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/core.c b/src/core.c index bd46f9fae..656699024 100644 --- a/src/core.c +++ b/src/core.c @@ -387,6 +387,9 @@ void MwSetInteger(MwWidget handle, const char* key, int n) { MwDispatch3(handle, prop_change, key); if(handle->parent != NULL) MwDispatch4(handle->parent, children_prop_change, handle, key); } + if(strcmp(key, MwNforceInverted) == 0) { + MwForceRender(handle); + } } void MwSetText(MwWidget handle, const char* key, const char* value) { From 823c8657911fc62cf1cc7a468afdfbfe76f8bc59 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 31 Dec 2025 00:48:44 +0900 Subject: [PATCH 082/836] handle WM_DELETE_WINDOW better --- include/Mw/LowLevel/X11.h | 1 + src/backend/x11.c | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/include/Mw/LowLevel/X11.h b/include/Mw/LowLevel/X11.h index ab9c43df2..ec36c0484 100644 --- a/include/Mw/LowLevel/X11.h +++ b/include/Mw/LowLevel/X11.h @@ -29,6 +29,7 @@ struct _MwLLX11 { GC gc; Colormap colormap; Atom wm_delete; + Atom wm_protocols; XIM xim; XIC xic; diff --git a/src/backend/x11.c b/src/backend/x11.c index c44daafd1..0353a248a 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -209,8 +209,9 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->x11.grabbed = 0; r->x11.force_render = 0; - r->x11.colormap = DefaultColormap(r->x11.display, XDefaultScreen(r->x11.display)); - r->x11.wm_delete = XInternAtom(r->x11.display, "WM_DELETE_WINDOW", False); + r->x11.colormap = DefaultColormap(r->x11.display, XDefaultScreen(r->x11.display)); + r->x11.wm_delete = XInternAtom(r->x11.display, "WM_DELETE_WINDOW", False); + r->x11.wm_protocols = XInternAtom(r->x11.display, "WM_PROTOCOLS", False); XSetWMProtocols(r->x11.display, r->x11.window, &r->x11.wm_delete, 1); r->x11.gc = XCreateGC(r->x11.display, r->x11.window, 0, NULL); @@ -471,7 +472,7 @@ static void MwLLNextEventImpl(MwLL handle) { handle->x11.width = ev.xconfigure.width; handle->x11.height = ev.xconfigure.height; } else if(ev.type == ClientMessage) { - if(ev.xclient.data.l[0] == (long)handle->x11.wm_delete) { + if(ev.xclient.message_type == handle->x11.wm_protocols && ev.xclient.data.l[0] == (long)handle->x11.wm_delete) { MwLLDispatch(handle, close, NULL); } } else if(ev.type == FocusIn) { From 4bdda59693977f31092a38a052b7a94897d345c3 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 31 Dec 2025 04:29:04 +0900 Subject: [PATCH 083/836] better api for clipboard --- examples/basic/clipboard.c | 4 ++++ include/Mw/LowLevel.h | 3 ++- include/Mw/LowLevel/GDI.h | 1 + include/Mw/TypeDefs.h | 3 ++- src/backend/gdi.c | 37 ++++++++++++++++++++-------------- src/backend/x11.c | 41 +++----------------------------------- src/core.c | 7 +++++++ src/lowlevel.c | 2 +- src/widget/box.c | 2 +- src/widget/button.c | 2 +- src/widget/checkbox.c | 2 +- src/widget/combobox.c | 2 +- src/widget/entry.c | 34 +++++++++++++++++-------------- src/widget/frame.c | 2 +- src/widget/image.c | 2 +- src/widget/label.c | 2 +- src/widget/listbox.c | 2 +- src/widget/menu.c | 2 +- src/widget/numberentry.c | 2 +- src/widget/opengl.c | 2 +- src/widget/progressbar.c | 2 +- src/widget/radiobox.c | 2 +- src/widget/scrollbar.c | 2 +- src/widget/separator.c | 2 +- src/widget/submenu.c | 2 +- src/widget/treeview.c | 2 +- src/widget/viewport.c | 2 +- src/widget/vulkan.c | 2 +- src/widget/window.c | 2 +- 29 files changed, 81 insertions(+), 91 deletions(-) diff --git a/examples/basic/clipboard.c b/examples/basic/clipboard.c index 9efae7af7..2fe3265a9 100644 --- a/examples/basic/clipboard.c +++ b/examples/basic/clipboard.c @@ -29,6 +29,9 @@ void handler(MwWidget handle, void* user_data, void* call_data) { (void)handle; (void)user_data; (void)call_data; + + /* nishi: please rewrite this part */ + /* char* clipboard; clipboard = MwLLGetClipboard(handle->lowlevel); @@ -37,6 +40,7 @@ void handler(MwWidget handle, void* user_data, void* call_data) { MwVaApply(text, MwNtext, clipboard); MwForceRender(text); } + */ resize(window, NULL, NULL); } diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 0b0357d89..24418ec08 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -147,6 +147,7 @@ struct _MwLLHandler { void (*key_released)(MwLL handle, void* data); void (*focus_in)(MwLL handle, void* data); void (*focus_out)(MwLL handle, void* data); + void (*clipboard_received)(MwLL handle, void* data); }; #ifdef __cplusplus @@ -203,7 +204,7 @@ MWDECL void (*MwLLFocus)(MwLL handle); MWDECL void (*MwLLGrabPointer)(MwLL handle, int toggle); MWDECL void (*MwLLSetClipboard)(MwLL handle, const char* text); -MWDECL char* (*MwLLGetClipboard)(MwLL handle); +MWDECL void (*MwLLGetClipboard)(MwLL handle); MWDECL void (*MwLLGetCursorCoord)(MwLL handle, MwPoint* point); MWDECL void (*MwLLGetScreenSize)(MwLL handle, MwRect* rect); diff --git a/include/Mw/LowLevel/GDI.h b/include/Mw/LowLevel/GDI.h index 9fee9ac02..1bf997c23 100644 --- a/include/Mw/LowLevel/GDI.h +++ b/include/Mw/LowLevel/GDI.h @@ -21,6 +21,7 @@ struct _MwLLGDI { int grabbed; int force_render; + int get_clipboard; }; struct _MwLLGDIColor { diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index 3275096f1..de97cd9a5 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -39,6 +39,7 @@ typedef void (*MwHandlerChildrenProp)(MwWidget handle, MwWidget child, const cha typedef void (*MwHandlerKey)(MwWidget handle, int key); typedef void (*MwHandlerMouse)(MwWidget handle, void* ptr); typedef void (*MwHandlerExecute)(MwWidget handle, const char* name, void* out, va_list args); +typedef void (*MwHandlerClipboardReceived)(MwWidget handle, const char* data); typedef void (*MwUserHandler)(MwWidget handle, void* user_data, void* call_data); typedef void (*MwErrorHandler)(int code, const char* message, void* user_data); @@ -211,11 +212,11 @@ struct _MwClass { MwHandler resize; MwHandler children_update; MwHandlerChildrenProp children_prop_change; + MwHandlerClipboardReceived clipboard_received; void* reserved1; void* reserved2; void* reserved3; void* reserved4; - void* reserved5; }; #endif diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 85f8fcbb0..f027fe07b 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -237,6 +237,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->common.copy_buffer = 1; r->common.type = MwLLBackendGDI; + r->gdi.get_clipboard = 1; r->gdi.force_render = 0; r->gdi.grabbed = 0; r->gdi.hWnd = CreateWindow("milsko", "Milsko", parent == NULL ? (WS_OVERLAPPEDWINDOW) : (WS_CHILD | WS_VISIBLE), x == MwDEFAULT ? CW_USEDEFAULT : x, y == MwDEFAULT ? CW_USEDEFAULT : y, width, height, parent == NULL ? NULL : parent->gdi.hWnd, 0, wc.hInstance, NULL); @@ -383,6 +384,7 @@ static int MwLLPendingImpl(MwLL handle) { (void)handle; + if(handle->gdi.get_clipboard) return 1; return PeekMessage(&msg, handle->gdi.hWnd, 0, 0, PM_NOREMOVE) ? 1 : 0; } @@ -391,6 +393,24 @@ static void MwLLNextEventImpl(MwLL handle) { (void)handle; + if(handle->gdi.get_clipboard){ + HGLOBAL hg; + if(OpenClipboard(handle->gdi.hWnd) != 0 && (hg = GetClipboardData(CF_TEXT)) != NULL){ + char* txt = malloc(GlobalSize(hg)); + char* clp = GlobalLock(hg); + + strcpy(txt, clp); + + GlobalUnlock(hg); + CloseClipboard(); + + MwLLDispatch(handle, clipboard_received, txt); + + free(txt); + } + + handle->gdi.get_clipboard = 0; + } while(PeekMessage(&msg, handle->gdi.hWnd, 0, 0, PM_NOREMOVE)) { GetMessage(&msg, handle->gdi.hWnd, 0, 0); TranslateMessage(&msg); @@ -697,21 +717,8 @@ static void MwLLSetClipboardImpl(MwLL handle, const char* text) { } } -static char* MwLLGetClipboardImpl(MwLL handle) { - HGLOBAL hg; - char* r = NULL; - if(OpenClipboard(handle->gdi.hWnd) != 0 && (hg = GetClipboardData(CF_TEXT)) != NULL) { - char* lock; - - r = malloc(GlobalSize(hg)); - - lock = GlobalLock(hg); - strcpy(r, lock); - GlobalUnlock(hg); - - CloseClipboard(); - } - return r; +static void MwLLGetClipboardImpl(MwLL handle) { + handle->gdi.get_clipboard = 1; /* nishi: we do this to make clipboard api work similar to other backends */ } static void MwLLMakeToolWindowImpl(MwLL handle) { diff --git a/src/backend/x11.c b/src/backend/x11.c index 0353a248a..8ece5d8e8 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -957,45 +957,10 @@ static void MwLLSetClipboardImpl(MwLL handle, const char* text) { (void)text; } -static char* MwLLGetClipboardImpl(MwLL handle) { - Atom clip, target, prop; - XEvent ev; - XEvent* queue = NULL; - char* r = NULL; +static void MwLLGetClipboardImpl(MwLL handle) { + /* TODO */ - clip = XInternAtom(handle->x11.display, "CLIPBOARD", 0); - target = XA_STRING; - prop = XInternAtom(handle->x11.display, "XSEL_DATA", 0); - - XConvertSelection(handle->x11.display, clip, target, prop, handle->x11.window, CurrentTime); - - while(1) { - XNextEvent(handle->x11.display, &ev); - if(ev.type == SelectionNotify) { - if(ev.xselection.selection == clip && ev.xselection.property != 0) { - Atom t; - unsigned long size, N; - char* data; - int format; - - XGetWindowProperty(ev.xselection.display, ev.xselection.requestor, ev.xselection.property, 0, (~0L), 0, AnyPropertyType, &t, &format, &size, &N, (unsigned char**)&data); - if(t == target) { - r = MwStringDuplicate(data); - XFree(data); - } - XDeleteProperty(ev.xselection.display, ev.xselection.requestor, ev.xselection.property); - } - break; - } - } - - while(arrlen(queue) > 0) { - XPutBackEvent(handle->x11.display, &queue[0]); - arrdel(queue, 0); - } - arrfree(queue); - - return r; + (void)handle; } static void MwLLMakeToolWindowImpl(MwLL handle) { diff --git a/src/core.c b/src/core.c index 656699024..f44a9f820 100644 --- a/src/core.c +++ b/src/core.c @@ -107,6 +107,12 @@ static void llfocusouthandler(MwLL handle, void* data) { MwDispatchUserHandler(h, MwNfocusOutHandler, data); } +static void llclipboardreceivedhandler(MwLL handle, void* data){ + MwWidget h = (MwWidget)handle->common.user; + + MwDispatch3(h, clipboard_received, data); +} + MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height) { MwWidget h = malloc(sizeof(*h)); @@ -148,6 +154,7 @@ MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, h->lowlevel->common.handler->key_released = llkeyrelhandler; h->lowlevel->common.handler->focus_in = llfocusinhandler; h->lowlevel->common.handler->focus_out = llfocusouthandler; + h->lowlevel->common.handler->clipboard_received = llclipboardreceivedhandler; } if(parent != NULL) arrput(parent->children, h); diff --git a/src/lowlevel.c b/src/lowlevel.c index 96f619613..30037c876 100644 --- a/src/lowlevel.c +++ b/src/lowlevel.c @@ -46,7 +46,7 @@ void (*MwLLFocus)(MwLL handle); void (*MwLLGrabPointer)(MwLL handle, int toggle); void (*MwLLSetClipboard)(MwLL handle, const char* text); -char* (*MwLLGetClipboard)(MwLL handle); +void (*MwLLGetClipboard)(MwLL handle); void (*MwLLGetCursorCoord)(MwLL handle, MwPoint* point); void (*MwLLGetScreenSize)(MwLL handle, MwRect* rect); diff --git a/src/widget/box.c b/src/widget/box.c index 3bf7528ef..c38a37720 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -114,7 +114,7 @@ MwClassRec MwBoxClassRec = { resize, /* resize */ children_update, /* children_update */ children_prop_change, /* children_prop_change */ - NULL, + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/button.c b/src/widget/button.c index 885ff9d49..296a14de0 100644 --- a/src/widget/button.c +++ b/src/widget/button.c @@ -107,7 +107,7 @@ MwClassRec MwButtonClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/checkbox.c b/src/widget/checkbox.c index 8a42b8904..390b65685 100644 --- a/src/widget/checkbox.c +++ b/src/widget/checkbox.c @@ -53,7 +53,7 @@ MwClassRec MwCheckBoxClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/combobox.c b/src/widget/combobox.c index 156242e81..0cdd629c7 100644 --- a/src/widget/combobox.c +++ b/src/widget/combobox.c @@ -204,7 +204,7 @@ MwClassRec MwComboBoxClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/entry.c b/src/widget/entry.c index 85f9a86c1..790586aec 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -109,20 +109,7 @@ static void key(MwWidget handle, int code) { } else if(code == MwLLKeyEnter) { MwDispatchUserHandler(handle, MwNactivateHandler, NULL); } else if(code == (MwLLControlMask | 'v')) { - char* c = MwLLGetClipboard(handle->lowlevel); - if(c != NULL) { - char* out = malloc(strlen(str) + strlen(c) + 1); - - MwUTF8Copy(str, 0, out, 0, t->cursor); - MwUTF8Copy(c, 0, out, t->cursor, MwUTF8Length(c)); - MwUTF8Copy(str, t->cursor, out, t->cursor + MwUTF8Length(c), MwUTF8Length(str) - t->cursor); - - t->cursor += MwUTF8Length(c); - - MwSetText(handle, MwNtext, out); - free(out); - free(c); - } + MwLLGetClipboard(handle->lowlevel); } else if(!(code & MwLLKeyMask)) { int incr = 0; out = malloc(strlen(str) + 5 + 1); @@ -157,6 +144,23 @@ static void prop_change(MwWidget handle, const char* prop) { } } +static void clipboard_received(MwWidget handle, const char* data){ + MwEntry t = handle->internal; + const char* str = MwGetText(handle, MwNtext); + char* out = malloc(strlen(str) + strlen(data) + 1); + + if(str == NULL) str = ""; + + MwUTF8Copy(str, 0, out, 0, t->cursor); + MwUTF8Copy(data, 0, out, t->cursor, MwUTF8Length(data)); + MwUTF8Copy(str, t->cursor, out, t->cursor + MwUTF8Length(data), MwUTF8Length(str) - t->cursor); + + t->cursor += MwUTF8Length(data); + + MwSetText(handle, MwNtext, out); + free(out); +} + MwClassRec MwEntryClassRec = { create, /* create */ destroy, /* destroy */ @@ -173,7 +177,7 @@ MwClassRec MwEntryClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, + clipboard_received, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/frame.c b/src/widget/frame.c index d48c2874d..869f604fe 100644 --- a/src/widget/frame.c +++ b/src/widget/frame.c @@ -61,7 +61,7 @@ MwClassRec MwFrameClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/image.c b/src/widget/image.c index 4995568d1..a9c0c264c 100644 --- a/src/widget/image.c +++ b/src/widget/image.c @@ -57,7 +57,7 @@ MwClassRec MwImageClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/label.c b/src/widget/label.c index 792d00918..570dc10cd 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -375,7 +375,7 @@ MwClassRec MwLabelClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/listbox.c b/src/widget/listbox.c index 785468d06..5c741ff4e 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -608,7 +608,7 @@ MwClassRec MwListBoxClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/menu.c b/src/widget/menu.c index 327d6f5e7..6dba8a124 100644 --- a/src/widget/menu.c +++ b/src/widget/menu.c @@ -204,7 +204,7 @@ MwClassRec MwMenuClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/numberentry.c b/src/widget/numberentry.c index ccbdf1433..cb8d6a28c 100644 --- a/src/widget/numberentry.c +++ b/src/widget/numberentry.c @@ -143,7 +143,7 @@ MwClassRec MwNumberEntryClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 19a7c4d10..20b51f2bb 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -244,7 +244,7 @@ MwClassRec MwOpenGLClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/progressbar.c b/src/widget/progressbar.c index bd036dd3d..7ab3274b4 100644 --- a/src/widget/progressbar.c +++ b/src/widget/progressbar.c @@ -61,7 +61,7 @@ MwClassRec MwProgressBarClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/radiobox.c b/src/widget/radiobox.c index a6f78f9d5..063c09d8e 100644 --- a/src/widget/radiobox.c +++ b/src/widget/radiobox.c @@ -62,7 +62,7 @@ MwClassRec MwRadioBoxClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/scrollbar.c b/src/widget/scrollbar.c index ff42d3aad..eaa87ae1c 100644 --- a/src/widget/scrollbar.c +++ b/src/widget/scrollbar.c @@ -272,7 +272,7 @@ MwClassRec MwScrollBarClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/separator.c b/src/widget/separator.c index 5800ba302..424305e9a 100644 --- a/src/widget/separator.c +++ b/src/widget/separator.c @@ -50,7 +50,7 @@ MwClassRec MwSeparatorClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/submenu.c b/src/widget/submenu.c index 6b97934cb..3b5553eb4 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -253,7 +253,7 @@ MwClassRec MwSubMenuClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/treeview.c b/src/widget/treeview.c index 27607ceeb..7dad52bbb 100644 --- a/src/widget/treeview.c +++ b/src/widget/treeview.c @@ -496,7 +496,7 @@ MwClassRec MwTreeViewClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/viewport.c b/src/widget/viewport.c index 9bdf86017..5b66b6ed6 100644 --- a/src/widget/viewport.c +++ b/src/widget/viewport.c @@ -191,7 +191,7 @@ MwClassRec MwViewportClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index bda24bfff..15039f7db 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -524,7 +524,7 @@ MwClassRec MwVulkanClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/window.c b/src/widget/window.c index 98a128f8f..84c7140bb 100644 --- a/src/widget/window.c +++ b/src/widget/window.c @@ -59,7 +59,7 @@ MwClassRec MwWindowClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, + NULL, /* clipboard_received */ NULL, NULL, NULL, From d3147ac0874a52528e92a788239608bcdac236ae Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 31 Dec 2025 04:29:27 +0900 Subject: [PATCH 084/836] format --- include/Mw/TypeDefs.h | 38 +++++++++++++++++++------------------- src/backend/gdi.c | 16 ++++++++-------- src/core.c | 28 ++++++++++++++-------------- src/widget/box.c | 2 +- src/widget/button.c | 2 +- src/widget/checkbox.c | 2 +- src/widget/combobox.c | 2 +- src/widget/entry.c | 38 +++++++++++++++++++------------------- src/widget/frame.c | 2 +- src/widget/image.c | 2 +- src/widget/label.c | 2 +- src/widget/listbox.c | 2 +- src/widget/menu.c | 2 +- src/widget/numberentry.c | 2 +- src/widget/opengl.c | 2 +- src/widget/progressbar.c | 2 +- src/widget/radiobox.c | 2 +- src/widget/scrollbar.c | 2 +- src/widget/separator.c | 2 +- src/widget/submenu.c | 2 +- src/widget/treeview.c | 2 +- src/widget/viewport.c | 2 +- src/widget/vulkan.c | 2 +- src/widget/window.c | 2 +- 24 files changed, 80 insertions(+), 80 deletions(-) diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index de97cd9a5..043215e23 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -197,26 +197,26 @@ struct _MwListBoxPacket { }; struct _MwClass { - MwHandlerWithStatus create; - MwHandler destroy; - MwHandler draw; - MwHandler click; - MwHandler parent_resize; - MwHandlerProp prop_change; - MwHandler mouse_move; - MwHandlerMouse mouse_up; - MwHandlerMouse mouse_down; - MwHandlerKey key; - MwHandlerExecute execute; - MwHandler tick; - MwHandler resize; - MwHandler children_update; - MwHandlerChildrenProp children_prop_change; + MwHandlerWithStatus create; + MwHandler destroy; + MwHandler draw; + MwHandler click; + MwHandler parent_resize; + MwHandlerProp prop_change; + MwHandler mouse_move; + MwHandlerMouse mouse_up; + MwHandlerMouse mouse_down; + MwHandlerKey key; + MwHandlerExecute execute; + MwHandler tick; + MwHandler resize; + MwHandler children_update; + MwHandlerChildrenProp children_prop_change; MwHandlerClipboardReceived clipboard_received; - void* reserved1; - void* reserved2; - void* reserved3; - void* reserved4; + void* reserved1; + void* reserved2; + void* reserved3; + void* reserved4; }; #endif diff --git a/src/backend/gdi.c b/src/backend/gdi.c index f027fe07b..3308fdcac 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -238,12 +238,12 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->common.type = MwLLBackendGDI; r->gdi.get_clipboard = 1; - r->gdi.force_render = 0; - r->gdi.grabbed = 0; - r->gdi.hWnd = CreateWindow("milsko", "Milsko", parent == NULL ? (WS_OVERLAPPEDWINDOW) : (WS_CHILD | WS_VISIBLE), x == MwDEFAULT ? CW_USEDEFAULT : x, y == MwDEFAULT ? CW_USEDEFAULT : y, width, height, parent == NULL ? NULL : parent->gdi.hWnd, 0, wc.hInstance, NULL); - r->gdi.hInstance = wc.hInstance; - r->gdi.cursor = NULL; - r->gdi.icon = NULL; + r->gdi.force_render = 0; + r->gdi.grabbed = 0; + r->gdi.hWnd = CreateWindow("milsko", "Milsko", parent == NULL ? (WS_OVERLAPPEDWINDOW) : (WS_CHILD | WS_VISIBLE), x == MwDEFAULT ? CW_USEDEFAULT : x, y == MwDEFAULT ? CW_USEDEFAULT : y, width, height, parent == NULL ? NULL : parent->gdi.hWnd, 0, wc.hInstance, NULL); + r->gdi.hInstance = wc.hInstance; + r->gdi.cursor = NULL; + r->gdi.icon = NULL; u->ll = r; u->min_set = 0; @@ -393,9 +393,9 @@ static void MwLLNextEventImpl(MwLL handle) { (void)handle; - if(handle->gdi.get_clipboard){ + if(handle->gdi.get_clipboard) { HGLOBAL hg; - if(OpenClipboard(handle->gdi.hWnd) != 0 && (hg = GetClipboardData(CF_TEXT)) != NULL){ + if(OpenClipboard(handle->gdi.hWnd) != 0 && (hg = GetClipboardData(CF_TEXT)) != NULL) { char* txt = malloc(GlobalSize(hg)); char* clp = GlobalLock(hg); diff --git a/src/core.c b/src/core.c index f44a9f820..94ee54ead 100644 --- a/src/core.c +++ b/src/core.c @@ -107,8 +107,8 @@ static void llfocusouthandler(MwLL handle, void* data) { MwDispatchUserHandler(h, MwNfocusOutHandler, data); } -static void llclipboardreceivedhandler(MwLL handle, void* data){ - MwWidget h = (MwWidget)handle->common.user; +static void llclipboardreceivedhandler(MwLL handle, void* data) { + MwWidget h = (MwWidget)handle->common.user; MwDispatch3(h, clipboard_received, data); } @@ -143,18 +143,18 @@ MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, if(parent == NULL) arrput(h->tick_list, h); if(h->lowlevel != NULL) { - h->lowlevel->common.user = h; - h->lowlevel->common.handler->draw = lldrawhandler; - h->lowlevel->common.handler->up = lluphandler; - h->lowlevel->common.handler->down = lldownhandler; - h->lowlevel->common.handler->resize = llresizehandler; - h->lowlevel->common.handler->close = llclosehandler; - h->lowlevel->common.handler->move = llmovehandler; - h->lowlevel->common.handler->key = llkeyhandler; - h->lowlevel->common.handler->key_released = llkeyrelhandler; - h->lowlevel->common.handler->focus_in = llfocusinhandler; - h->lowlevel->common.handler->focus_out = llfocusouthandler; - h->lowlevel->common.handler->clipboard_received = llclipboardreceivedhandler; + h->lowlevel->common.user = h; + h->lowlevel->common.handler->draw = lldrawhandler; + h->lowlevel->common.handler->up = lluphandler; + h->lowlevel->common.handler->down = lldownhandler; + h->lowlevel->common.handler->resize = llresizehandler; + h->lowlevel->common.handler->close = llclosehandler; + h->lowlevel->common.handler->move = llmovehandler; + h->lowlevel->common.handler->key = llkeyhandler; + h->lowlevel->common.handler->key_released = llkeyrelhandler; + h->lowlevel->common.handler->focus_in = llfocusinhandler; + h->lowlevel->common.handler->focus_out = llfocusouthandler; + h->lowlevel->common.handler->clipboard_received = llclipboardreceivedhandler; } if(parent != NULL) arrput(parent->children, h); diff --git a/src/widget/box.c b/src/widget/box.c index c38a37720..68f266e9d 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -114,7 +114,7 @@ MwClassRec MwBoxClassRec = { resize, /* resize */ children_update, /* children_update */ children_prop_change, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/button.c b/src/widget/button.c index 296a14de0..677e30938 100644 --- a/src/widget/button.c +++ b/src/widget/button.c @@ -107,7 +107,7 @@ MwClassRec MwButtonClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/checkbox.c b/src/widget/checkbox.c index 390b65685..49264338c 100644 --- a/src/widget/checkbox.c +++ b/src/widget/checkbox.c @@ -53,7 +53,7 @@ MwClassRec MwCheckBoxClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/combobox.c b/src/widget/combobox.c index 0cdd629c7..20def29ef 100644 --- a/src/widget/combobox.c +++ b/src/widget/combobox.c @@ -204,7 +204,7 @@ MwClassRec MwComboBoxClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/entry.c b/src/widget/entry.c index 790586aec..f85a1914f 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -144,10 +144,10 @@ static void prop_change(MwWidget handle, const char* prop) { } } -static void clipboard_received(MwWidget handle, const char* data){ +static void clipboard_received(MwWidget handle, const char* data) { MwEntry t = handle->internal; - const char* str = MwGetText(handle, MwNtext); - char* out = malloc(strlen(str) + strlen(data) + 1); + const char* str = MwGetText(handle, MwNtext); + char* out = malloc(strlen(str) + strlen(data) + 1); if(str == NULL) str = ""; @@ -162,22 +162,22 @@ static void clipboard_received(MwWidget handle, const char* data){ } MwClassRec MwEntryClassRec = { - create, /* create */ - destroy, /* destroy */ - draw, /* draw */ - NULL, /* click */ - NULL, /* parent_resize */ - prop_change, /* prop_change */ - NULL, /* mouse_move */ - MwForceRender2, /* mouse_up */ - MwForceRender2, /* mouse_down */ - key, /* key */ - NULL, /* execute */ - NULL, /* tick */ - NULL, /* resize */ - NULL, /* children_update */ - NULL, /* children_prop_change */ - clipboard_received, /* clipboard_received */ + create, /* create */ + destroy, /* destroy */ + draw, /* draw */ + NULL, /* click */ + NULL, /* parent_resize */ + prop_change, /* prop_change */ + NULL, /* mouse_move */ + MwForceRender2, /* mouse_up */ + MwForceRender2, /* mouse_down */ + key, /* key */ + NULL, /* execute */ + NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + clipboard_received, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/frame.c b/src/widget/frame.c index 869f604fe..eb324f0fc 100644 --- a/src/widget/frame.c +++ b/src/widget/frame.c @@ -61,7 +61,7 @@ MwClassRec MwFrameClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/image.c b/src/widget/image.c index a9c0c264c..07afbab46 100644 --- a/src/widget/image.c +++ b/src/widget/image.c @@ -57,7 +57,7 @@ MwClassRec MwImageClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/label.c b/src/widget/label.c index 570dc10cd..f53b72ee3 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -375,7 +375,7 @@ MwClassRec MwLabelClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/listbox.c b/src/widget/listbox.c index 5c741ff4e..2fadc5fc3 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -608,7 +608,7 @@ MwClassRec MwListBoxClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/menu.c b/src/widget/menu.c index 6dba8a124..4572d3fc3 100644 --- a/src/widget/menu.c +++ b/src/widget/menu.c @@ -204,7 +204,7 @@ MwClassRec MwMenuClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/numberentry.c b/src/widget/numberentry.c index cb8d6a28c..83577aa01 100644 --- a/src/widget/numberentry.c +++ b/src/widget/numberentry.c @@ -143,7 +143,7 @@ MwClassRec MwNumberEntryClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 20b51f2bb..7413acda3 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -244,7 +244,7 @@ MwClassRec MwOpenGLClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/progressbar.c b/src/widget/progressbar.c index 7ab3274b4..c0b44bee9 100644 --- a/src/widget/progressbar.c +++ b/src/widget/progressbar.c @@ -61,7 +61,7 @@ MwClassRec MwProgressBarClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/radiobox.c b/src/widget/radiobox.c index 063c09d8e..d932ba6f4 100644 --- a/src/widget/radiobox.c +++ b/src/widget/radiobox.c @@ -62,7 +62,7 @@ MwClassRec MwRadioBoxClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/scrollbar.c b/src/widget/scrollbar.c index eaa87ae1c..055ea5a3c 100644 --- a/src/widget/scrollbar.c +++ b/src/widget/scrollbar.c @@ -272,7 +272,7 @@ MwClassRec MwScrollBarClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/separator.c b/src/widget/separator.c index 424305e9a..c608dd1d4 100644 --- a/src/widget/separator.c +++ b/src/widget/separator.c @@ -50,7 +50,7 @@ MwClassRec MwSeparatorClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/submenu.c b/src/widget/submenu.c index 3b5553eb4..13b694198 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -253,7 +253,7 @@ MwClassRec MwSubMenuClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/treeview.c b/src/widget/treeview.c index 7dad52bbb..903a12973 100644 --- a/src/widget/treeview.c +++ b/src/widget/treeview.c @@ -496,7 +496,7 @@ MwClassRec MwTreeViewClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/viewport.c b/src/widget/viewport.c index 5b66b6ed6..3a9e3fd82 100644 --- a/src/widget/viewport.c +++ b/src/widget/viewport.c @@ -191,7 +191,7 @@ MwClassRec MwViewportClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index 15039f7db..c85ea4311 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -524,7 +524,7 @@ MwClassRec MwVulkanClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard_received */ NULL, NULL, NULL, diff --git a/src/widget/window.c b/src/widget/window.c index 84c7140bb..4a821dee5 100644 --- a/src/widget/window.c +++ b/src/widget/window.c @@ -59,7 +59,7 @@ MwClassRec MwWindowClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard_received */ NULL, NULL, NULL, From 72820e87f14faff0692b665b1513cee946f89ddf Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 31 Dec 2025 04:35:10 +0900 Subject: [PATCH 085/836] rename clipboard_received to clipboard --- .gitignore | 1 + include/Mw/LowLevel.h | 2 +- include/Mw/StringDefs.h | 1 + include/Mw/TypeDefs.h | 2 +- milsko.xml | 1 + src/backend/gdi.c | 2 +- src/core.c | 29 +++++++++++++++-------------- src/widget/box.c | 2 +- src/widget/button.c | 2 +- src/widget/checkbox.c | 2 +- src/widget/combobox.c | 2 +- src/widget/entry.c | 34 +++++++++++++++++----------------- src/widget/frame.c | 2 +- src/widget/image.c | 2 +- src/widget/label.c | 2 +- src/widget/listbox.c | 2 +- src/widget/menu.c | 2 +- src/widget/numberentry.c | 2 +- src/widget/opengl.c | 2 +- src/widget/progressbar.c | 2 +- src/widget/radiobox.c | 2 +- src/widget/scrollbar.c | 2 +- src/widget/separator.c | 2 +- src/widget/submenu.c | 2 +- src/widget/treeview.c | 2 +- src/widget/viewport.c | 2 +- src/widget/vulkan.c | 2 +- src/widget/window.c | 2 +- 28 files changed, 58 insertions(+), 54 deletions(-) diff --git a/.gitignore b/.gitignore index 1dcc6d174..2ebdbc2a8 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ examples/*/*.exe !examples/*/ !examples/*.* !examples/*/*.* +*.exe *.o *.so *.dll diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 24418ec08..3c8bdf7b1 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -147,7 +147,7 @@ struct _MwLLHandler { void (*key_released)(MwLL handle, void* data); void (*focus_in)(MwLL handle, void* data); void (*focus_out)(MwLL handle, void* data); - void (*clipboard_received)(MwLL handle, void* data); + void (*clipboard)(MwLL handle, void* data); }; #ifdef __cplusplus diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index 6588be2da..5d6896598 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -71,5 +71,6 @@ #define MwNdirectoryChosenHandler "CdirectoryChosen" /* char* */ #define MwNcolorChosenHandler "CcolorChosen" /* MwRGB* */ #define MwNdrawHandler "Cdraw" /* NULL */ +#define MwNclipboardHandler "Cclipboard" /* char* */ #endif diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index 043215e23..caf388797 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -212,7 +212,7 @@ struct _MwClass { MwHandler resize; MwHandler children_update; MwHandlerChildrenProp children_prop_change; - MwHandlerClipboardReceived clipboard_received; + MwHandlerClipboardReceived clipboard; void* reserved1; void* reserved2; void* reserved3; diff --git a/milsko.xml b/milsko.xml index f7dcf2c78..dc980cd8d 100644 --- a/milsko.xml +++ b/milsko.xml @@ -122,6 +122,7 @@ + diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 3308fdcac..764e9838d 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -404,7 +404,7 @@ static void MwLLNextEventImpl(MwLL handle) { GlobalUnlock(hg); CloseClipboard(); - MwLLDispatch(handle, clipboard_received, txt); + MwLLDispatch(handle, clipboard, txt); free(txt); } diff --git a/src/core.c b/src/core.c index 94ee54ead..3d41a3603 100644 --- a/src/core.c +++ b/src/core.c @@ -107,10 +107,11 @@ static void llfocusouthandler(MwLL handle, void* data) { MwDispatchUserHandler(h, MwNfocusOutHandler, data); } -static void llclipboardreceivedhandler(MwLL handle, void* data) { +static void llclipboardhandler(MwLL handle, void* data) { MwWidget h = (MwWidget)handle->common.user; - MwDispatch3(h, clipboard_received, data); + MwDispatch3(h, clipboard, data); + MwDispatchUserHandler(h, MwNclipboardHandler, data); } MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height) { @@ -143,18 +144,18 @@ MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, if(parent == NULL) arrput(h->tick_list, h); if(h->lowlevel != NULL) { - h->lowlevel->common.user = h; - h->lowlevel->common.handler->draw = lldrawhandler; - h->lowlevel->common.handler->up = lluphandler; - h->lowlevel->common.handler->down = lldownhandler; - h->lowlevel->common.handler->resize = llresizehandler; - h->lowlevel->common.handler->close = llclosehandler; - h->lowlevel->common.handler->move = llmovehandler; - h->lowlevel->common.handler->key = llkeyhandler; - h->lowlevel->common.handler->key_released = llkeyrelhandler; - h->lowlevel->common.handler->focus_in = llfocusinhandler; - h->lowlevel->common.handler->focus_out = llfocusouthandler; - h->lowlevel->common.handler->clipboard_received = llclipboardreceivedhandler; + h->lowlevel->common.user = h; + h->lowlevel->common.handler->draw = lldrawhandler; + h->lowlevel->common.handler->up = lluphandler; + h->lowlevel->common.handler->down = lldownhandler; + h->lowlevel->common.handler->resize = llresizehandler; + h->lowlevel->common.handler->close = llclosehandler; + h->lowlevel->common.handler->move = llmovehandler; + h->lowlevel->common.handler->key = llkeyhandler; + h->lowlevel->common.handler->key_released = llkeyrelhandler; + h->lowlevel->common.handler->focus_in = llfocusinhandler; + h->lowlevel->common.handler->focus_out = llfocusouthandler; + h->lowlevel->common.handler->clipboard = llclipboardhandler; } if(parent != NULL) arrput(parent->children, h); diff --git a/src/widget/box.c b/src/widget/box.c index 68f266e9d..99f3e0772 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -114,7 +114,7 @@ MwClassRec MwBoxClassRec = { resize, /* resize */ children_update, /* children_update */ children_prop_change, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard */ NULL, NULL, NULL, diff --git a/src/widget/button.c b/src/widget/button.c index 677e30938..dac7739c6 100644 --- a/src/widget/button.c +++ b/src/widget/button.c @@ -107,7 +107,7 @@ MwClassRec MwButtonClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard */ NULL, NULL, NULL, diff --git a/src/widget/checkbox.c b/src/widget/checkbox.c index 49264338c..1ccccd416 100644 --- a/src/widget/checkbox.c +++ b/src/widget/checkbox.c @@ -53,7 +53,7 @@ MwClassRec MwCheckBoxClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard */ NULL, NULL, NULL, diff --git a/src/widget/combobox.c b/src/widget/combobox.c index 20def29ef..6b5437335 100644 --- a/src/widget/combobox.c +++ b/src/widget/combobox.c @@ -204,7 +204,7 @@ MwClassRec MwComboBoxClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard */ NULL, NULL, NULL, diff --git a/src/widget/entry.c b/src/widget/entry.c index f85a1914f..34a90a36b 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -144,7 +144,7 @@ static void prop_change(MwWidget handle, const char* prop) { } } -static void clipboard_received(MwWidget handle, const char* data) { +static void clipboard(MwWidget handle, const char* data) { MwEntry t = handle->internal; const char* str = MwGetText(handle, MwNtext); char* out = malloc(strlen(str) + strlen(data) + 1); @@ -162,22 +162,22 @@ static void clipboard_received(MwWidget handle, const char* data) { } MwClassRec MwEntryClassRec = { - create, /* create */ - destroy, /* destroy */ - draw, /* draw */ - NULL, /* click */ - NULL, /* parent_resize */ - prop_change, /* prop_change */ - NULL, /* mouse_move */ - MwForceRender2, /* mouse_up */ - MwForceRender2, /* mouse_down */ - key, /* key */ - NULL, /* execute */ - NULL, /* tick */ - NULL, /* resize */ - NULL, /* children_update */ - NULL, /* children_prop_change */ - clipboard_received, /* clipboard_received */ + create, /* create */ + destroy, /* destroy */ + draw, /* draw */ + NULL, /* click */ + NULL, /* parent_resize */ + prop_change, /* prop_change */ + NULL, /* mouse_move */ + MwForceRender2, /* mouse_up */ + MwForceRender2, /* mouse_down */ + key, /* key */ + NULL, /* execute */ + NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + clipboard, /* clipboard */ NULL, NULL, NULL, diff --git a/src/widget/frame.c b/src/widget/frame.c index eb324f0fc..117b0f8b9 100644 --- a/src/widget/frame.c +++ b/src/widget/frame.c @@ -61,7 +61,7 @@ MwClassRec MwFrameClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard */ NULL, NULL, NULL, diff --git a/src/widget/image.c b/src/widget/image.c index 07afbab46..74ee0bfd6 100644 --- a/src/widget/image.c +++ b/src/widget/image.c @@ -57,7 +57,7 @@ MwClassRec MwImageClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard */ NULL, NULL, NULL, diff --git a/src/widget/label.c b/src/widget/label.c index f53b72ee3..7c70d2571 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -375,7 +375,7 @@ MwClassRec MwLabelClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard */ NULL, NULL, NULL, diff --git a/src/widget/listbox.c b/src/widget/listbox.c index 2fadc5fc3..cb84e44c4 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -608,7 +608,7 @@ MwClassRec MwListBoxClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard */ NULL, NULL, NULL, diff --git a/src/widget/menu.c b/src/widget/menu.c index 4572d3fc3..44fc2fe57 100644 --- a/src/widget/menu.c +++ b/src/widget/menu.c @@ -204,7 +204,7 @@ MwClassRec MwMenuClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard */ NULL, NULL, NULL, diff --git a/src/widget/numberentry.c b/src/widget/numberentry.c index 83577aa01..5f14fc317 100644 --- a/src/widget/numberentry.c +++ b/src/widget/numberentry.c @@ -143,7 +143,7 @@ MwClassRec MwNumberEntryClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard */ NULL, NULL, NULL, diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 7413acda3..a1c36d96f 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -244,7 +244,7 @@ MwClassRec MwOpenGLClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard */ NULL, NULL, NULL, diff --git a/src/widget/progressbar.c b/src/widget/progressbar.c index c0b44bee9..d85a8ddaf 100644 --- a/src/widget/progressbar.c +++ b/src/widget/progressbar.c @@ -61,7 +61,7 @@ MwClassRec MwProgressBarClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard */ NULL, NULL, NULL, diff --git a/src/widget/radiobox.c b/src/widget/radiobox.c index d932ba6f4..3229faad3 100644 --- a/src/widget/radiobox.c +++ b/src/widget/radiobox.c @@ -62,7 +62,7 @@ MwClassRec MwRadioBoxClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard */ NULL, NULL, NULL, diff --git a/src/widget/scrollbar.c b/src/widget/scrollbar.c index 055ea5a3c..5c0d8ddbf 100644 --- a/src/widget/scrollbar.c +++ b/src/widget/scrollbar.c @@ -272,7 +272,7 @@ MwClassRec MwScrollBarClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard */ NULL, NULL, NULL, diff --git a/src/widget/separator.c b/src/widget/separator.c index c608dd1d4..8fcfc5b71 100644 --- a/src/widget/separator.c +++ b/src/widget/separator.c @@ -50,7 +50,7 @@ MwClassRec MwSeparatorClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard */ NULL, NULL, NULL, diff --git a/src/widget/submenu.c b/src/widget/submenu.c index 13b694198..59673e3e7 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -253,7 +253,7 @@ MwClassRec MwSubMenuClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard */ NULL, NULL, NULL, diff --git a/src/widget/treeview.c b/src/widget/treeview.c index 903a12973..76e1e0139 100644 --- a/src/widget/treeview.c +++ b/src/widget/treeview.c @@ -496,7 +496,7 @@ MwClassRec MwTreeViewClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard */ NULL, NULL, NULL, diff --git a/src/widget/viewport.c b/src/widget/viewport.c index 3a9e3fd82..de71af790 100644 --- a/src/widget/viewport.c +++ b/src/widget/viewport.c @@ -191,7 +191,7 @@ MwClassRec MwViewportClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard */ NULL, NULL, NULL, diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index c85ea4311..441bc2731 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -524,7 +524,7 @@ MwClassRec MwVulkanClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard */ NULL, NULL, NULL, diff --git a/src/widget/window.c b/src/widget/window.c index 4a821dee5..979e073c8 100644 --- a/src/widget/window.c +++ b/src/widget/window.c @@ -59,7 +59,7 @@ MwClassRec MwWindowClassRec = { NULL, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ - NULL, /* clipboard_received */ + NULL, /* clipboard */ NULL, NULL, NULL, From 67bd6029af37a4d6ae687faeb4f49136429239d1 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 30 Dec 2025 17:12:12 -0700 Subject: [PATCH 086/836] wayland: finish clipboard --- examples/basic/clipboard.c | 39 +-- include/Mw/LowLevel/Wayland.h | 49 ++- src/backend/wayland.c | 552 ++++++++++++++++++++++++---------- 3 files changed, 448 insertions(+), 192 deletions(-) diff --git a/examples/basic/clipboard.c b/examples/basic/clipboard.c index 2fe3265a9..57f14984b 100644 --- a/examples/basic/clipboard.c +++ b/examples/basic/clipboard.c @@ -1,7 +1,7 @@ #define _MILSKO #include -MwWidget window, button, text; +MwWidget window, instructions, text; void resize(MwWidget handle, void* user_data, void* call_data) { unsigned int w, h, mh; @@ -12,7 +12,7 @@ void resize(MwWidget handle, void* user_data, void* call_data) { w = MwGetInteger(handle, MwNwidth); h = MwGetInteger(handle, MwNheight); - MwVaApply(button, + MwVaApply(instructions, MwNy, 50 + mh, MwNwidth, w - 50 * 2, MwNheight, h - 125 - 50 * 3, @@ -24,25 +24,18 @@ void resize(MwWidget handle, void* user_data, void* call_data) { MwNheight, h - 125 - 50 * 3, NULL); } - -void handler(MwWidget handle, void* user_data, void* call_data) { +void clipboard(MwWidget handle, void* user_data, void* call_data) { (void)handle; (void)user_data; - (void)call_data; - - /* nishi: please rewrite this part */ - /* - char* clipboard; - - clipboard = MwLLGetClipboard(handle->lowlevel); + char* clipboard = call_data; if(clipboard != NULL) { MwVaApply(text, MwNtext, clipboard); MwForceRender(text); } - */ + MwForceRender(window); - resize(window, NULL, NULL); + MwLLSetClipboard(window->lowlevel, "Milsko clipboard test"); } int main() { @@ -50,18 +43,18 @@ int main() { MwLibraryInit(); - window = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 400, 400, - MwNtitle, "clipboard", - NULL); - button = MwVaCreateWidget(MwButtonClass, "button", window, 50, 50, 300, 125, - MwNtext, "get clipboard contents", - NULL); - text = MwVaCreateWidget(MwLabelClass, "label", window, 50, 200, 300, 125, - MwNtext, "", - NULL); + window = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 400, 400, + MwNtitle, "clipboard", + NULL); + instructions = MwVaCreateWidget(MwLabelClass, "button", window, 50, 50, 300, 125, + MwNtext, "clipboard contents will show up below.", + NULL); + text = MwVaCreateWidget(MwLabelClass, "label", window, 50, 200, 300, 125, + MwNtext, "", + NULL); MwAddUserHandler(window, MwNresizeHandler, resize, NULL); - MwAddUserHandler(button, MwNactivateHandler, handler, NULL); + MwAddUserHandler(window, MwNclipboardHandler, clipboard, NULL); resize(window, NULL, NULL); diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 2720d4976..dcdcd5f55 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -97,6 +97,21 @@ enum _MwLLWaylandType { MWLL_WAYLAND_POPUP, }; +typedef struct wl_clipboard_device_context { + union { + struct wl_data_device* wl; + struct zwp_primary_selection_device_v1* zwp; + } device; + union { + struct wl_data_offer* wl; + struct zwp_primary_selection_offer_v1* zwp; + } offer; + + MwLL ll; + struct wl_seat* seat; + MwU32 capabilities; +} wl_clipboard_device_context_t; + struct _MwLLWayland { struct _MwLLCommon common; @@ -131,11 +146,29 @@ struct _MwLLWayland { struct wl_region* region; struct wl_output* output; - struct wl_pointer* pointer; - struct wl_keyboard* keyboard; - MwU32 pointer_serial; + /* clipboard related stuff. + * Note that unlike most interfaces, we don't keep zwp_primary_selection stuff in a wayland_protocol_t because we use wl_data_device as a fallback and want to have it share memory space.*/ - MwBool events_pending; + union { + struct wl_data_device_manager* wl; + struct zwp_primary_selection_device_manager_v1* zwp; + } clipboard_manager; + union { + struct wl_data_source* wl; + struct zwp_primary_selection_source_v1* zwp; + } clipboard_source; + char* clipboard_buffer; + MwBool supports_zwp; + + uint32_t clipboard_serial; + wl_clipboard_device_context_t** clipboard_devices; + + struct wl_pointer* pointer; + MwU32 pointer_serial; + struct wl_keyboard* keyboard; + MwU32 keyboard_serial; + + MwU64 events_pending; MwBool test; MwU32 mod_state; @@ -149,6 +182,14 @@ struct _MwLLWayland { MwLL parent; + MwBool force_render; + + pthread_mutex_t dispatch_mutex; + pthread_mutex_t pending_mutex; + + MwBool break_dispatch; + MwBool break_pending; + struct _MwLLWaylandShmBuffer framebuffer; struct _MwLLWaylandShmBuffer cursor; struct _MwLLWaylandShmBuffer* icon; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index f05511724..8131e7044 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -8,9 +8,9 @@ #include #include #include +#include /* TODO: - * - MwLLSetClipboardImpl * - MwLLGrabPointerImpl * - MwLLMakePopupImpl * - MwLLShowImpl @@ -62,78 +62,275 @@ static void protocol_removed(void* data, printf("%d destroyed\n", name); }; -static void offer_offer(void* data, - struct zwp_primary_selection_offer_v1* zwp_primary_selection_offer_v1, - const char* mime_type) { +/* Flush Wayland events */ +static void wl_flush(MwLL handle) { + struct pollfd pfd; + int rc; + + pfd.fd = wl_display_get_fd(handle->wayland.display); + pfd.events = POLLIN; + while(MwTRUE) { + rc = wl_display_flush(handle->wayland.display); + if(errno != EAGAIN || rc != -1) { + break; + } + + if(poll(&pfd, 1, -1) == -1) { + break; + } + } +} + +static void wl_offer(void* data, + struct wl_data_offer* wl_data_offer, + const char* mime_type) { + wl_clipboard_device_context_t* self = data; + wl_data_offer_accept(wl_data_offer, self->ll->wayland.clipboard_serial, mime_type); }; -struct zwp_primary_selection_offer_v1_listener offer_listener = { - .offer = offer_offer, +struct wl_data_offer_listener offer_listener = { + .offer = wl_offer, }; -typedef struct primary_selection_device_context { - struct zwp_primary_selection_device_v1* device; - struct zwp_primary_selection_offer_v1* offer; -} primary_selection_device_context_t; +static void wl_data_device_data_offer(void* data, + struct wl_data_device* wl_data_device, + struct wl_data_offer* offer) { + wl_clipboard_device_context_t* self = data; -typedef struct primary_selection_context { - struct zwp_primary_selection_device_manager_v1* manager; - /* stored seperately of the listeners because it's not a pointer and it gets assigned to data devices dynamically. */ - struct zwp_primary_selection_device_v1_listener listener; + wl_data_offer_add_listener(offer, &offer_listener, data); - struct zwp_primary_selection_source_v1* source; - primary_selection_device_context_t** devices; -} primary_selection_context_t; - -static void primary_selection_data_offer(void* data, - struct zwp_primary_selection_device_v1* zwp_primary_selection_device_v1, - struct zwp_primary_selection_offer_v1* offer) { - struct primary_selection_device_context* self = data; - zwp_primary_selection_offer_v1_add_listener(offer, &offer_listener, data); - - self->offer = offer; + self->offer.wl = offer; }; -static void primary_selection_selection(void* data, - struct zwp_primary_selection_device_v1* zwp_primary_selection_device_v1, - struct zwp_primary_selection_offer_v1* id) { + +static void wl_data_device_enter(void* data, + struct wl_data_device* wl_data_device, + uint32_t serial, + struct wl_surface* surface, + wl_fixed_t x, + wl_fixed_t y, + struct wl_data_offer* id) { + MwLL self = data; + self->wayland.clipboard_serial = serial; }; +static void wl_data_device_leave(void* data, + struct wl_data_device* wl_data_device) { + wl_data_device_destroy(wl_data_device); +}; +static void wl_data_device_motion(void* data, + struct wl_data_device* wl_data_device, + uint32_t time, + wl_fixed_t x, + wl_fixed_t y) { +}; +static void wl_data_device_drop(void* data, + struct wl_data_device* wl_data_device) { +}; + +static void wl_data_device_selection(void* data, + struct wl_data_device* wl_data_device, + struct wl_data_offer* id) { +}; + +struct wl_data_device_listener wl_data_device_listener = { + .data_offer = wl_data_device_data_offer, + .enter = wl_data_device_enter, + .leave = wl_data_device_leave, + .motion = wl_data_device_motion, + .drop = wl_data_device_drop, + .selection = wl_data_device_selection, +}; + +static void zwp_primary_selection_device_v1_data_offer(void* data, + struct zwp_primary_selection_device_v1* zwp_primary_selection_device_v1, + struct zwp_primary_selection_offer_v1* offer) { + wl_clipboard_device_context_t* self = data; + + self->offer.zwp = offer; +}; + +static void zwp_primary_selection_device_v1_selection(void* data, + struct zwp_primary_selection_device_v1* zwp_primary_selection_device_v1, + struct zwp_primary_selection_offer_v1* id) { +}; + +struct zwp_primary_selection_device_v1_listener zwp_primary_selection_device_v1_listener = { + .data_offer = zwp_primary_selection_device_v1_data_offer, + .selection = zwp_primary_selection_device_v1_selection, +}; + +static void wl_clipboard_read(wl_clipboard_device_context_t* ctx) { + int fds[2]; + fd_set set; + char* buf = NULL; + struct timeval timeout; + int rc = 0; + int n; + + if(pipe(fds) != 0) { + return; + } + + FD_ZERO(&set); + FD_SET(fds[0], &set); + timeout.tv_sec = 0; + timeout.tv_usec = 100; + + if(ctx->ll->wayland.supports_zwp) { + zwp_primary_selection_offer_v1_receive(ctx->offer.zwp, "text/plain", fds[1]); + } else { + wl_data_offer_receive(ctx->offer.wl, "text/plain", fds[1]); + } + close(fds[1]); + + wl_flush(ctx->ll); + wl_display_roundtrip(ctx->ll->wayland.display); + + while(MwTRUE) { + char ch; + rc = select(fds[0] + 1, &set, NULL, NULL, &timeout); + if(rc <= 0) { + break; + } else { + char b; + ssize_t n = read(fds[0], &b, sizeof(b)); + if(n <= 0) { + break; + } + arrpush(buf, b); + } + } + arrpush(buf, 0); + close(fds[0]); + + MwLLDispatch(ctx->ll, clipboard, buf); + arrfree(buf); +} + +static void wl_data_source_listener_target(void* data, + struct wl_data_source* wl_data_source, + const char* mime_type) { +}; +static void wl_data_source_listener_send(void* data, + struct wl_data_source* wl_data_source, + const char* mime_type, + int32_t fd) { + MwLL self = data; + if(self->wayland.clipboard_buffer != NULL) { + write(fd, self->wayland.clipboard_buffer, strlen(self->wayland.clipboard_buffer)); + close(fd); + + self->wayland.events_pending = 1; + } +}; +static void wl_data_source_listener_cancelled(void* data, + struct wl_data_source* wl_data_source); + +struct wl_data_source_listener wl_data_source_listener = { + .target = wl_data_source_listener_target, + .send = wl_data_source_listener_send, + .cancelled = wl_data_source_listener_cancelled, +}; + +static void wl_data_source_listener_cancelled(void* data, + struct wl_data_source* wl_data_source) { + MwLL self = data; + + wl_data_source_destroy(wl_data_source); + + self->wayland.clipboard_source.wl = wl_data_device_manager_create_data_source(self->wayland.clipboard_manager.wl); + + wl_data_source_offer(self->wayland.clipboard_source.wl, "text/plain"); + wl_data_source_offer(self->wayland.clipboard_source.wl, "text/plain;charset=utf-8"); + wl_data_source_offer(self->wayland.clipboard_source.wl, "TEXT"); + wl_data_source_offer(self->wayland.clipboard_source.wl, "STRING"); + wl_data_source_offer(self->wayland.clipboard_source.wl, "UTF8_STRING"); + + wl_data_source_add_listener(self->wayland.clipboard_source.wl, &wl_data_source_listener, self); +}; + +static void zwp_primary_selection_source_v1_send(void* data, + struct zwp_primary_selection_source_v1* wl_data_source, + const char* mime_type, + int32_t fd) { + MwLL self = data; + if(self->wayland.clipboard_buffer != NULL) { + write(fd, self->wayland.clipboard_buffer, strlen(self->wayland.clipboard_buffer)); + close(fd); + + self->wayland.events_pending = 1; + } +}; +static void zwp_primary_selection_source_v1_cancelled(void* data, + struct zwp_primary_selection_source_v1* wl_data_source) { + MwLL self = data; + + zwp_primary_selection_source_v1_destroy(self->wayland.clipboard_source.zwp); + + self->wayland.clipboard_source.zwp = zwp_primary_selection_device_manager_v1_create_source(self->wayland.clipboard_manager.zwp); + + zwp_primary_selection_source_v1_offer(self->wayland.clipboard_source.zwp, "text/plain"); + zwp_primary_selection_source_v1_offer(self->wayland.clipboard_source.zwp, "text/plain;charset=utf-8"); + zwp_primary_selection_source_v1_offer(self->wayland.clipboard_source.zwp, "TEXT"); + zwp_primary_selection_source_v1_offer(self->wayland.clipboard_source.zwp, "STRING"); + zwp_primary_selection_source_v1_offer(self->wayland.clipboard_source.zwp, "UTF8_STRING"); +}; + +struct zwp_primary_selection_source_v1_listener zwp_primary_selection_source_v1_listener = { + .send = zwp_primary_selection_source_v1_send, + .cancelled = zwp_primary_selection_source_v1_cancelled, +}; + +/* wl_data_device_manager setup function */ +static wayland_protocol_t* wl_data_device_manager_setup(MwU32 name, struct _MwLLWayland* wayland) { + wayland->clipboard_manager.wl = wl_registry_bind(wayland->registry, name, &wl_data_device_manager_interface, 2); + + wayland->clipboard_source.wl = wl_data_device_manager_create_data_source(wayland->clipboard_manager.wl); + + wl_data_source_offer(wayland->clipboard_source.wl, "text/plain"); + wl_data_source_offer(wayland->clipboard_source.wl, "text/plain;charset=utf-8"); + wl_data_source_offer(wayland->clipboard_source.wl, "TEXT"); + wl_data_source_offer(wayland->clipboard_source.wl, "STRING"); + wl_data_source_offer(wayland->clipboard_source.wl, "UTF8_STRING"); + + wl_data_source_add_listener(wayland->clipboard_source.wl, &wl_data_source_listener, wayland); + + return NULL; +} + +static void wl_data_device_manager_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + wl_data_device_manager_destroy(wayland->clipboard_manager.wl); + wl_data_source_destroy(wayland->clipboard_source.wl); +} /* zwp_primary_selection_device_manager_v1 setup function */ static wayland_protocol_t* zwp_primary_selection_device_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { - wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); - primary_selection_context_t* context = malloc(sizeof(primary_selection_context_t)); + if(wayland->clipboard_manager.wl != NULL) { + wl_data_device_manager_interface_destroy(wayland, NULL); + } - context->manager = wl_registry_bind(wayland->registry, name, &zwp_primary_selection_device_manager_v1_interface, 1); + wayland->clipboard_manager.zwp = wl_registry_bind(wayland->registry, name, &zwp_primary_selection_device_manager_v1_interface, 1); - struct zwp_primary_selection_device_manager_v1* device; - context->listener.data_offer = primary_selection_data_offer; - context->listener.selection = primary_selection_selection; + wayland->clipboard_source.zwp = zwp_primary_selection_device_manager_v1_create_source(wayland->clipboard_manager.zwp); - context->source = zwp_primary_selection_device_manager_v1_create_source(context->manager); + zwp_primary_selection_source_v1_offer(wayland->clipboard_source.zwp, "text/plain"); + zwp_primary_selection_source_v1_offer(wayland->clipboard_source.zwp, "text/plain;charset=utf-8"); + zwp_primary_selection_source_v1_offer(wayland->clipboard_source.zwp, "TEXT"); + zwp_primary_selection_source_v1_offer(wayland->clipboard_source.zwp, "STRING"); + zwp_primary_selection_source_v1_offer(wayland->clipboard_source.zwp, "UTF8_STRING"); - context->devices = NULL; + zwp_primary_selection_source_v1_add_listener(wayland->clipboard_source.zwp, &zwp_primary_selection_source_v1_listener, wayland); - proto->context = context; - proto->listener = NULL; + wayland->supports_zwp = MwTRUE; - return proto; + return NULL; } static void zwp_primary_selection_device_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - primary_selection_context_t* context = data->context; - int i; + return; - zwp_primary_selection_device_manager_v1_destroy(context->manager); + zwp_primary_selection_device_manager_v1_destroy(wayland->clipboard_manager.zwp); - for(i = 0; i < arrlen(context->devices); i++) { - primary_selection_device_context_t* device = context->devices[i]; - // zwp_primary_selection_device_v1_destroy(device->device); - // zwp_primary_selection_offer_v1_destroy(device->offer); - free(device); - } - arrfree(context->devices); - - zwp_primary_selection_source_v1_destroy(context->source); + zwp_primary_selection_source_v1_destroy(wayland->clipboard_source.zwp); free(data->listener); } @@ -164,7 +361,7 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time p.point = self->wayland.cur_mouse_pos; MwLLDispatch(self, move, &p); - self->wayland.events_pending = MwTRUE; + self->wayland.events_pending += 1; /*timed_redraw(self, time, 50, &self->wayland.cooldown_timer);*/ }; @@ -181,6 +378,10 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri break; case BTN_MIDDLE: p.button = MwLLMouseMiddle; + for(int i = 0; i < arrlen(self->wayland.clipboard_devices); i++) { + wl_clipboard_read( + self->wayland.clipboard_devices[i]); + } break; case BTN_RIGHT: p.button = MwLLMouseRight; @@ -197,7 +398,7 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri } MwLLDispatch(self, draw, NULL); - self->wayland.events_pending = MwTRUE; + self->wayland.events_pending += 1; }; /* `wl_pointer.axis` callback */ @@ -247,9 +448,11 @@ static void keyboard_enter(void* data, MwU32 serial, struct wl_surface* surface, struct wl_array* keys) { - MwLL self = data; + MwLL self = data; + self->wayland.keyboard_serial = serial; + MwLLDispatch(self, focus_in, NULL); - self->wayland.events_pending = MwTRUE; + self->wayland.events_pending += 1; }; /* `wl_keyboard.leave` callback */ @@ -259,7 +462,7 @@ static void keyboard_leave(void* data, struct wl_surface* surface) { MwLL self = data; MwLLDispatch(self, focus_out, NULL); - self->wayland.events_pending = MwTRUE; + self->wayland.events_pending += 1; }; /* `wl_keyboard.key` callback */ @@ -334,11 +537,19 @@ static void keyboard_key(void* data, key = sym; } if((self->wayland.mod_state & 4) == 4) { + /* clipboard paste */ + if(key == 'V') { + for(int i = 0; i < arrlen(self->wayland.clipboard_devices); i++) { + wl_clipboard_read( + self->wayland.clipboard_devices[i]); + } + } key |= MwLLControlMask; } if((self->wayland.mod_state & 8) == 8) { key |= MwLLAltMask; } + if(state == WL_KEYBOARD_KEY_STATE_PRESSED) { MwLLDispatch(self, key, &key); } else { @@ -346,7 +557,8 @@ static void keyboard_key(void* data, } } } - self->wayland.events_pending = MwTRUE; + MwLLDispatch(self, draw, NULL); + self->wayland.events_pending += 1; }; /* `wl_keyboard.modifiers` callback */ @@ -379,7 +591,9 @@ wl_seat_name(void* data, struct wl_seat* wl_seat, const char* name) {}; /* `wl_seat.capabilities` callback */ static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat, MwU32 capabilities) { - MwLL self = data; + MwLL self = data; + wl_clipboard_device_context_t* device_ctx = malloc(sizeof(wl_clipboard_device_context_t)); + if(capabilities & WL_SEAT_CAPABILITY_KEYBOARD) { self->wayland.keyboard = wl_seat_get_keyboard(wl_seat); wl_keyboard_add_listener(self->wayland.keyboard, &keyboard_listener, data); @@ -389,20 +603,22 @@ static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat, wl_pointer_add_listener(self->wayland.pointer, &pointer_listener, data); } - /* primary selection support */ - if(WAYLAND_GET_INTERFACE(self->wayland, zwp_primary_selection_device_manager_v1) != NULL) { - primary_selection_context_t* primary_selection = WAYLAND_GET_INTERFACE(self->wayland, zwp_primary_selection_device_manager_v1)->context; - primary_selection_device_context_t* device_ctx = malloc(sizeof(primary_selection_device_context_t)); - - device_ctx->device = - zwp_primary_selection_device_manager_v1_get_device(primary_selection->manager, wl_seat); - - zwp_primary_selection_device_v1_add_listener(device_ctx->device, &primary_selection->listener, device_ctx); - - device_ctx->offer = NULL; - - arrpush(primary_selection->devices, device_ctx); + if(self->wayland.supports_zwp) { + device_ctx->device.zwp = zwp_primary_selection_device_manager_v1_get_device(self->wayland.clipboard_manager.zwp, wl_seat); + } else { + device_ctx->device.wl = wl_data_device_manager_get_data_device(self->wayland.clipboard_manager.wl, wl_seat); } + device_ctx->ll = self; + device_ctx->seat = wl_seat; + device_ctx->capabilities = capabilities; + + if(self->wayland.supports_zwp) { + zwp_primary_selection_device_v1_add_listener(device_ctx->device.zwp, &zwp_primary_selection_device_v1_listener, device_ctx); + } else { + wl_data_device_add_listener(device_ctx->device.wl, &wl_data_device_listener, device_ctx); + } + + arrpush(self->wayland.clipboard_devices, device_ctx); }; static void output_geometry(void* data, @@ -466,7 +682,6 @@ static wayland_protocol_t* wl_output_setup(MwU32 name, MwLL ll) { } static void wl_output_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - // wl_output_destroy(wayland->output); } /* wl_compositor setup function */ @@ -477,7 +692,6 @@ static wayland_protocol_t* wl_compositor_setup(MwU32 name, struct _MwLLWayland* } static void wl_compositor_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - // wl_compositor_destroy(wayland->compositor); } /* wl_subcompositor setup function */ @@ -544,6 +758,11 @@ static void xdg_toplevel_configure(void* data, MwLL self = data; int i; + /* Yes, somehow this can get called before */ + if(!self->wayland.configured) { + return; + } + if(width == 0 || height == 0) { width = self->wayland.ww; height = self->wayland.wh; @@ -612,7 +831,6 @@ static wayland_protocol_t* wl_shm_setup(MwU32 name, struct _MwLLWayland* wayland } static void wl_shm_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - // buffer_destroy(&wayland->framebuffer); } static void update_buffer(struct _MwLLWaylandShmBuffer* buffer) { @@ -674,7 +892,7 @@ static void framebuffer_setup(struct _MwLLWayland* wayland) { memset(wayland->framebuffer.buf, 255, wayland->framebuffer.buf_size); update_buffer(&wayland->framebuffer); - wayland->events_pending = MwTRUE; + wayland->events_pending += 1; }; static void framebuffer_destroy(struct _MwLLWayland* wayland) { buffer_destroy(&wayland->framebuffer); @@ -711,25 +929,6 @@ static void xdg_toplevel_icon_manager_v1_interface_destroy(struct _MwLLWayland* xdg_toplevel_icon_manager_v1_destroy(data->context); } -/* Flush Wayland events */ -static void wl_flush(MwLL handle) { - struct pollfd pfd; - int rc; - - pfd.fd = wl_display_get_fd(handle->wayland.display); - pfd.events = POLLIN; - while(MwTRUE) { - rc = wl_display_flush(handle->wayland.display); - if(errno != EAGAIN || rc != -1) { - break; - } - - if(poll(&pfd, 1, -1) == -1) { - break; - } - } -} - /* Standard Wayland event loop. */ static int event_loop(MwLL handle) { struct pollfd fd; @@ -803,6 +1002,7 @@ static void setup_callbacks(struct _MwLLWayland* wayland) { WL_INTERFACE(wl_compositor); WL_INTERFACE(wl_seat); WL_INTERFACE(wl_output); + WL_INTERFACE(wl_data_device_manager); WL_INTERFACE(zwp_primary_selection_device_manager_v1); if(wayland->type == MWLL_WAYLAND_TOPLEVEL) { WL_INTERFACE(xdg_wm_base); @@ -869,6 +1069,8 @@ static void setup_toplevel(MwLL r, int x, int y) { /* Perform the initial commit and wait for the first configure event */ wl_surface_commit(r->wayland.framebuffer.surface); event_loop(r); + while(!r->wayland.configured) { + } /* setup decorations if we can */ if(shget(r->wayland.wl_protocol_map, zxdg_decoration_manager_v1_interface.name) != NULL) { @@ -924,12 +1126,8 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { r->wayland.display = parent->wayland.display; - r->wayland.framebuffer.surface = wl_compositor_create_surface(compositor); - setup_callbacks(&r->wayland); - // printf("position %d %d\n", x, y); - r->wayland.registry = wl_display_get_registry(parent->wayland.display); r->wayland.display = parent->wayland.display; @@ -940,6 +1138,8 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { return; } + r->wayland.framebuffer.surface = wl_compositor_create_surface(compositor); + r->wayland.sublevel->subsurface = wl_subcompositor_get_subsurface(r->wayland.sublevel->subcompositor, r->wayland.framebuffer.surface, parent_surface); wl_subsurface_set_position(r->wayland.sublevel->subsurface, x, y); @@ -1003,7 +1203,6 @@ static void setup_popup(MwLL r) { } r->wayland.popup = calloc(sizeof(struct _MwLLWaylandPopup), 0); - // r->wayland.popup->parent = parent; r->wayland.framebuffer.surface = wl_compositor_create_surface(r->wayland.compositor); @@ -1038,6 +1237,7 @@ static void setup_popup(MwLL r) { wl_surface_commit(r->wayland.framebuffer.surface); event_loop(r); } + /* Popup destroy function */ static void destroy_popup(MwLL r) { xdg_popup_destroy(r->wayland.popup->xdg_popup); @@ -1048,8 +1248,6 @@ static void destroy_popup(MwLL r) { wl_surface_destroy(r->wayland.framebuffer.surface); - // free(r->wayland.popup); - wl_registry_destroy(r->wayland.registry); } @@ -1090,6 +1288,9 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLLForceRender(r); + pthread_mutex_init(&r->wayland.dispatch_mutex, NULL); + pthread_mutex_init(&r->wayland.pending_mutex, NULL); + return r; } @@ -1104,14 +1305,11 @@ static void MwLLDestroyImpl(MwLL handle) { buffer_destroy(&handle->wayland.cursor); wl_region_destroy(handle->wayland.region); - if(WAYLAND_GET_INTERFACE(handle->wayland, zwp_primary_selection_device_manager_v1) != NULL) { - primary_selection_context_t* primary_selection = WAYLAND_GET_INTERFACE(handle->wayland, zwp_primary_selection_device_manager_v1)->context; - - for(i = 0; i < arrlen(primary_selection->devices); i++) { - zwp_primary_selection_offer_v1_destroy(primary_selection->devices[i]->offer); - } + if(handle->wayland.supports_zwp) { + zwp_primary_selection_source_v1_destroy(handle->wayland.clipboard_source.zwp); + } else { + wl_data_source_destroy(handle->wayland.clipboard_source.wl); } - if(handle->wayland.icon != NULL) { buffer_destroy(handle->wayland.icon); wl_surface_destroy(handle->wayland.icon->surface); @@ -1164,6 +1362,7 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { static void MwLLSetWHImpl(MwLL handle, int w, int h) { region_invalidate(handle); + /* Prevent an integer underflow when the w/h is too low */ if((w < 10 || h < 10)) { handle->wayland.ww = 10; @@ -1173,7 +1372,7 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { handle->wayland.ww = w; handle->wayland.wh = h; - if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL && handle->wayland.configured) { xdg_surface_set_window_geometry(handle->wayland.toplevel->xdg_surface, 0, 0, handle->wayland.ww, handle->wayland.wh); } @@ -1200,7 +1399,7 @@ static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLL } cairo_close_path(handle->wayland.cairo); cairo_fill(handle->wayland.cairo); - handle->wayland.events_pending = MwTRUE; + handle->wayland.events_pending += 1; } static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { @@ -1218,7 +1417,7 @@ static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { } cairo_close_path(handle->wayland.cairo); cairo_stroke(handle->wayland.cairo); - handle->wayland.events_pending = MwTRUE; + handle->wayland.events_pending += 1; } static void MwLLBeginDrawImpl(MwLL handle) { @@ -1226,7 +1425,7 @@ static void MwLLBeginDrawImpl(MwLL handle) { static void MwLLEndDrawImpl(MwLL handle) { update_buffer(&handle->wayland.framebuffer); - handle->wayland.events_pending = MwTRUE; + handle->wayland.events_pending += 1; } static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { @@ -1249,14 +1448,68 @@ static void MwLLFreeColorImpl(MwLLColor color) { free(color); } +static void* display_dispatch_thread(void* data) { + MwLL handle = data; + MwU64 pending = 0; + struct timespec timeout; + + timeout.tv_nsec = 100; + timeout.tv_sec = 0; + + while(pending == 0 && !handle->wayland.break_dispatch) { + pending = wl_display_dispatch_timeout(handle->wayland.display, &timeout); + } + + handle->wayland.break_dispatch = MwTRUE; + return (void*)pending; +}; +static void* force_render_thread(void* data) { + MwLL handle = data; + + while(!handle->wayland.force_render && !handle->wayland.events_pending) { + } + + handle->wayland.break_pending = MwTRUE; + return NULL; +}; + static int MwLLPendingImpl(MwLL handle) { - return handle->wayland.events_pending || wl_display_dispatch(handle->wayland.display); + pthread_t t1, t2; + pthread_attr_t attr; + + pthread_attr_init(&attr); + pthread_create(&t1, &attr, display_dispatch_thread, handle); + pthread_create(&t2, &attr, force_render_thread, handle); + + while(MwTRUE) { + if(handle->wayland.break_dispatch) { + pthread_join(t1, (void**)&handle->wayland.events_pending); + handle->wayland.break_dispatch = MwFALSE; + + handle->wayland.force_render = MwTRUE; + + pthread_cancel(t2); + break; + } + + if(handle->wayland.break_pending) { + + handle->wayland.break_dispatch = MwTRUE; + pthread_join(t2, NULL); + pthread_join(t1, (void**)&handle->wayland.events_pending); + handle->wayland.break_pending = MwFALSE; + + break; + } + } + + return handle->wayland.events_pending; } static void MwLLNextEventImpl(MwLL handle) { event_loop(handle); if(handle->wayland.events_pending) { - handle->wayland.events_pending = MwFALSE; + handle->wayland.events_pending = 0; } } @@ -1485,59 +1738,28 @@ static void MwLLGrabPointerImpl(MwLL handle, int toggle) { } static void MwLLSetClipboardImpl(MwLL handle, const char* text) { + if(handle->wayland.clipboard_buffer != NULL) { + free(handle->wayland.clipboard_buffer); + } + handle->wayland.clipboard_buffer = malloc(strlen(text)); + strcpy(handle->wayland.clipboard_buffer, text); + + if(handle->wayland.supports_zwp) { + for(int i = 0; i < arrlen(handle->wayland.clipboard_devices); i++) { + wl_clipboard_device_context_t* device = handle->wayland.clipboard_devices[i]; + zwp_primary_selection_device_v1_set_selection(device->device.zwp, handle->wayland.clipboard_source.zwp, handle->wayland.keyboard_serial); + } + } else { + for(int i = 0; i < arrlen(handle->wayland.clipboard_devices); i++) { + wl_clipboard_device_context_t* device = handle->wayland.clipboard_devices[i]; + wl_data_device_set_selection(device->device.wl, handle->wayland.clipboard_source.wl, handle->wayland.keyboard_serial); + } + } } -static char* MwLLGetClipboardImpl(MwLL handle) { - if(WAYLAND_GET_INTERFACE(handle->wayland, zwp_primary_selection_device_manager_v1) != NULL) { - primary_selection_context_t* primary_selection = WAYLAND_GET_INTERFACE(handle->wayland, zwp_primary_selection_device_manager_v1)->context; - int i, n = 0; - int fds[2]; - struct timeval timeout; - fd_set set; - char* clip_buffer = NULL; - - if(pipe(fds) != 0) { - return NULL; - } - - FD_ZERO(&set); - FD_SET(fds[0], &set); - - timeout.tv_sec = 0; - timeout.tv_usec = 100; - - for(i = 0; i < arrlen(primary_selection->devices); i++) { - primary_selection_device_context_t* device = primary_selection->devices[i]; - size_t size = 0; - char ch; - int rc = 0; - - zwp_primary_selection_offer_v1_receive(device->offer, "text/plain", fds[1]); - - wl_flush(handle); - - fcntl(fds[0], F_SETFL, O_NONBLOCK); - - while(MwTRUE) { - rc = select(fds[0] + 1, &set, NULL, NULL, &timeout); - if(rc <= 0) { - break; - } else { - read(fds[0], &ch, 1); - arrpush(clip_buffer, ch); - if(n++ >= 10240) { - break; - } - } - } - return clip_buffer; - } - - // zwp_primary_selection_source_v1_send(); - - // arrpush(primary_selection->devices, device); - } - return NULL; +static void MwLLGetClipboardImpl(MwLL handle) { + /* no-op */ + return; } static void MwLLMakeToolWindowImpl(MwLL handle) { From bed63dd245c1aeb75098915a2c91001ffdac8057 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 30 Dec 2025 17:14:39 -0700 Subject: [PATCH 087/836] clipboard: fix syntax --- examples/basic/clipboard.c | 5 ++--- src/backend/wayland.c | 1 - 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/examples/basic/clipboard.c b/examples/basic/clipboard.c index 57f14984b..6cfeb833b 100644 --- a/examples/basic/clipboard.c +++ b/examples/basic/clipboard.c @@ -25,9 +25,10 @@ void resize(MwWidget handle, void* user_data, void* call_data) { NULL); } void clipboard(MwWidget handle, void* user_data, void* call_data) { + char* clipboard = call_data; + (void)handle; (void)user_data; - char* clipboard = call_data; if(clipboard != NULL) { MwVaApply(text, MwNtext, clipboard); @@ -39,8 +40,6 @@ void clipboard(MwWidget handle, void* user_data, void* call_data) { } int main() { - MwMenu m, m2; - MwLibraryInit(); window = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 400, 400, diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 8131e7044..a5653ed06 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -14,7 +14,6 @@ * - MwLLGrabPointerImpl * - MwLLMakePopupImpl * - MwLLShowImpl - * - MwLLDetachImpl */ /* TODO: find out what FreeBSD and such wants us to include */ From afecb048489fe686aa4b352692d76e4ff5951e2e Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 30 Dec 2025 17:14:57 -0700 Subject: [PATCH 088/836] clipboard: don't set clipboard after pasting --- examples/basic/clipboard.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/examples/basic/clipboard.c b/examples/basic/clipboard.c index 6cfeb833b..c8882d352 100644 --- a/examples/basic/clipboard.c +++ b/examples/basic/clipboard.c @@ -1,4 +1,3 @@ -#define _MILSKO #include MwWidget window, instructions, text; @@ -35,8 +34,6 @@ void clipboard(MwWidget handle, void* user_data, void* call_data) { MwForceRender(text); } MwForceRender(window); - - MwLLSetClipboard(window->lowlevel, "Milsko clipboard test"); } int main() { From 324257c43fb40c832f00588dfb6cd37edfa0d2e9 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 30 Dec 2025 19:15:33 -0700 Subject: [PATCH 089/836] wayland: no pthreads needed --- src/backend/wayland.c | 50 +++---------------------------------------- 1 file changed, 3 insertions(+), 47 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index a5653ed06..515e88b8d 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1447,9 +1447,8 @@ static void MwLLFreeColorImpl(MwLLColor color) { free(color); } -static void* display_dispatch_thread(void* data) { - MwLL handle = data; - MwU64 pending = 0; +static int MwLLPendingImpl(MwLL handle) { + MwBool pending = MwFALSE; struct timespec timeout; timeout.tv_nsec = 100; @@ -1459,50 +1458,7 @@ static void* display_dispatch_thread(void* data) { pending = wl_display_dispatch_timeout(handle->wayland.display, &timeout); } - handle->wayland.break_dispatch = MwTRUE; - return (void*)pending; -}; -static void* force_render_thread(void* data) { - MwLL handle = data; - - while(!handle->wayland.force_render && !handle->wayland.events_pending) { - } - - handle->wayland.break_pending = MwTRUE; - return NULL; -}; - -static int MwLLPendingImpl(MwLL handle) { - pthread_t t1, t2; - pthread_attr_t attr; - - pthread_attr_init(&attr); - pthread_create(&t1, &attr, display_dispatch_thread, handle); - pthread_create(&t2, &attr, force_render_thread, handle); - - while(MwTRUE) { - if(handle->wayland.break_dispatch) { - pthread_join(t1, (void**)&handle->wayland.events_pending); - handle->wayland.break_dispatch = MwFALSE; - - handle->wayland.force_render = MwTRUE; - - pthread_cancel(t2); - break; - } - - if(handle->wayland.break_pending) { - - handle->wayland.break_dispatch = MwTRUE; - pthread_join(t2, NULL); - pthread_join(t1, (void**)&handle->wayland.events_pending); - handle->wayland.break_pending = MwFALSE; - - break; - } - } - - return handle->wayland.events_pending; + return handle->wayland.force_render || handle->wayland.events_pending || pending; } static void MwLLNextEventImpl(MwLL handle) { From a03065ae528f6c2b448647b8247a1e15106839a7 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 30 Dec 2025 19:16:01 -0700 Subject: [PATCH 090/836] wayland: forgot to commit .h --- include/Mw/LowLevel/Wayland.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index dcdcd5f55..99ac280d5 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -139,6 +139,8 @@ struct _MwLLWayland { wayland_protocol_t* value; }* wl_protocol_map; + MwBool always_render; + struct wl_display* display; struct wl_registry* registry; struct wl_compositor* compositor; @@ -184,9 +186,6 @@ struct _MwLLWayland { MwBool force_render; - pthread_mutex_t dispatch_mutex; - pthread_mutex_t pending_mutex; - MwBool break_dispatch; MwBool break_pending; From 029e62d765b18c5d9332331fe2a0eed83058bdce Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 30 Dec 2025 20:30:22 -0700 Subject: [PATCH 091/836] wayland: opengl --- include/Mw/LowLevel/Wayland.h | 6 +- pl/rules.pl | 11 +- src/backend/wayland.c | 53 ++++++---- src/widget/opengl.c | 183 +++++++++++++++++++++++++++++++++- 4 files changed, 227 insertions(+), 26 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 99ac280d5..0d3227f6e 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -170,8 +170,7 @@ struct _MwLLWayland { struct wl_keyboard* keyboard; MwU32 keyboard_serial; - MwU64 events_pending; - MwBool test; + MwU64 events_pending; MwU32 mod_state; @@ -186,8 +185,7 @@ struct _MwLLWayland { MwBool force_render; - MwBool break_dispatch; - MwBool break_pending; + MwBool hmmmm; struct _MwLLWaylandShmBuffer framebuffer; struct _MwLLWaylandShmBuffer cursor; diff --git a/pl/rules.pl b/pl/rules.pl index 1ad3ff3de..123c128f0 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -32,6 +32,10 @@ if (grep(/^wayland$/, @backends)) { add_cflags(`pkg-config --cflags cairo wayland-client xkbcommon`); add_libs(`pkg-config --libs cairo wayland-client xkbcommon`); + if (param_get("opengl")) { + add_libs(`pkg-config --libs egl wayland-egl`); + } + scan_wayland_protocol("stable", "xdg-shell", ""); scan_wayland_protocol("stable", "tablet", "-v2"); scan_wayland_protocol("staging", "xdg-toplevel-icon", "-v1"); @@ -39,7 +43,7 @@ if (grep(/^wayland$/, @backends)) { scan_wayland_protocol("unstable", "xdg-decoration", "-unstable-v1"); scan_wayland_protocol("unstable", "primary-selection", "-unstable-v1"); - $gl_libs = "-lEGL -lwayland-egl lGL -lGLU"; + $gl_libs = "-lGL -lGLU"; } if (param_get("stb-image")) { @@ -48,6 +52,11 @@ if (param_get("stb-image")) { if (param_get("stb-truetype")) { add_cflags("-DUSE_STB_TRUETYPE"); } + +if (param_get("opengl")) { + add_cflags("-DHAS_OPENGL"); +} + if (param_get("freetype2")) { add_cflags("-DUSE_FREETYPE2"); if ($cross) { diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 515e88b8d..6108aa742 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -8,7 +8,6 @@ #include #include #include -#include /* TODO: * - MwLLGrabPointerImpl @@ -360,6 +359,7 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time p.point = self->wayland.cur_mouse_pos; MwLLDispatch(self, move, &p); + self->wayland.events_pending += 1; /*timed_redraw(self, time, 50, &self->wayland.cooldown_timer);*/ @@ -396,8 +396,10 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri } } - MwLLDispatch(self, draw, NULL); - self->wayland.events_pending += 1; + if(!self->wayland.always_render) { + MwLLDispatch(self, draw, NULL); + self->wayland.events_pending += 1; + } }; /* `wl_pointer.axis` callback */ @@ -556,8 +558,11 @@ static void keyboard_key(void* data, } } } - MwLLDispatch(self, draw, NULL); - self->wayland.events_pending += 1; + + if(!self->wayland.always_render) { + MwLLDispatch(self, draw, NULL); + self->wayland.events_pending += 1; + } }; /* `wl_keyboard.modifiers` callback */ @@ -783,6 +788,8 @@ static void xdg_toplevel_configure(void* data, MwLLDispatch(self, resize, NULL); MwLLDispatch(self, draw, NULL); + MwLLForceRender(self); + /*if(!self->wayland.egl_setup) { self->wayland.egl_setup = egl_setup(self, self->wayland.x, self->wayland.y, width, height); } else { @@ -891,6 +898,7 @@ static void framebuffer_setup(struct _MwLLWayland* wayland) { memset(wayland->framebuffer.buf, 255, wayland->framebuffer.buf_size); update_buffer(&wayland->framebuffer); + wayland->events_pending += 1; }; static void framebuffer_destroy(struct _MwLLWayland* wayland) { @@ -1287,9 +1295,6 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLLForceRender(r); - pthread_mutex_init(&r->wayland.dispatch_mutex, NULL); - pthread_mutex_init(&r->wayland.pending_mutex, NULL); - return r; } @@ -1398,6 +1403,7 @@ static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLL } cairo_close_path(handle->wayland.cairo); cairo_fill(handle->wayland.cairo); + handle->wayland.events_pending += 1; } @@ -1416,6 +1422,7 @@ static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { } cairo_close_path(handle->wayland.cairo); cairo_stroke(handle->wayland.cairo); + handle->wayland.events_pending += 1; } @@ -1424,6 +1431,7 @@ static void MwLLBeginDrawImpl(MwLL handle) { static void MwLLEndDrawImpl(MwLL handle) { update_buffer(&handle->wayland.framebuffer); + handle->wayland.events_pending += 1; } @@ -1451,20 +1459,29 @@ static int MwLLPendingImpl(MwLL handle) { MwBool pending = MwFALSE; struct timespec timeout; - timeout.tv_nsec = 100; - timeout.tv_sec = 0; - - while(pending == 0 && !handle->wayland.break_dispatch) { - pending = wl_display_dispatch_timeout(handle->wayland.display, &timeout); + if(handle->wayland.always_render) { + /* call event loop twice to make it to flush out events like mouse events and ensure we don't lag the render when doing that + */ + event_loop(handle); + return event_loop(handle); } - return handle->wayland.force_render || handle->wayland.events_pending || pending; + timeout.tv_nsec = 10; + timeout.tv_sec = 0; + + printf("%d\n", handle->wayland.force_render); + return handle->wayland.force_render || handle->wayland.events_pending || wl_display_dispatch_timeout(handle->wayland.display, &timeout); } static void MwLLNextEventImpl(MwLL handle) { - event_loop(handle); - if(handle->wayland.events_pending) { - handle->wayland.events_pending = 0; + if(!handle->wayland.always_render) { + event_loop(handle); + if(handle->wayland.events_pending) { + handle->wayland.events_pending = 0; + } + if(handle->wayland.force_render) { + handle->wayland.force_render = 0; + } } } @@ -1575,6 +1592,8 @@ static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { static void MwLLForceRenderImpl(MwLL handle) { wl_surface_damage(handle->wayland.framebuffer.surface, 0, 0, handle->wayland.ww, handle->wayland.wh); + handle->wayland.force_render = MwTRUE; + /* if(handle->wayland.egl_setup) { timed_redraw_by_epoch(handle, 25); diff --git a/src/widget/opengl.c b/src/widget/opengl.c index a1c36d96f..1391fa41b 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -1,6 +1,7 @@ #include #include +#ifdef HAS_OPENGL #ifdef USE_GDI typedef HGLRC(WINAPI* MWwglCreateContext)(HDC); typedef BOOL(WINAPI* MWwglMakeCurrent)(HDC, HGLRC); @@ -42,6 +43,19 @@ typedef struct x11opengl { } x11opengl_t; #endif +#ifdef USE_WAYLAND +#include +#include + +typedef struct waylandopengl { + EGLNativeWindowType egl_window_native; + EGLDisplay egl_display; + EGLContext egl_context; + EGLSurface egl_surface; + EGLConfig egl_config; +} waylandopengl_t; +#endif + static int create(MwWidget handle) { void* r = NULL; #ifdef USE_GDI @@ -105,7 +119,85 @@ static int create(MwWidget handle) { #endif #ifdef USE_WAYLAND if(handle->lowlevel->common.type == MwLLBackendWayland) { - /* todo */ + int err; + EGLint numConfigs; + EGLint majorVersion; + EGLint minorVersion; + EGLContext context; + EGLSurface surface; + EGLint fbAttribs[] = + { + EGL_SURFACE_TYPE, EGL_WINDOW_BIT, + EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, + EGL_RED_SIZE, 8, + EGL_GREEN_SIZE, 8, + EGL_BLUE_SIZE, 8, + EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, + EGL_NONE}; + EGLint contextAttribs[] = { + EGL_CONTEXT_CLIENT_VERSION, 1, + EGL_CONTEXT_MAJOR_VERSION, 1, + EGL_CONTEXT_MINOR_VERSION, 1, + EGL_NONE}; + EGLDisplay display; + waylandopengl_t* o = r = malloc(sizeof(*o)); + + handle->lowlevel->wayland.parent->wayland.always_render = MwTRUE; + handle->lowlevel->wayland.always_render = MwTRUE; + + display = eglGetDisplay(handle->lowlevel->wayland.display); + if(display == EGL_NO_DISPLAY) { + printf("ERROR: eglGetDisplay, %0X\n", eglGetError()); + return MwFALSE; + } + /* Initialize EGL */ + if(!eglInitialize(display, &majorVersion, &minorVersion)) { + printf("ERROR: eglInitialize, %0X\n", eglGetError()); + return MwFALSE; + } + + /* Get configs */ + if((eglGetConfigs(display, NULL, 0, &numConfigs) != EGL_TRUE) || (numConfigs == 0)) { + printf("ERROR: eglGetConfigs, %0X\n", eglGetError()); + return MwFALSE; + } + + /* Choose config */ + if((eglChooseConfig(display, fbAttribs, &o->egl_config, 1, &numConfigs) != EGL_TRUE) || (numConfigs != 1)) { + printf("ERROR: eglChooseConfig, %0X\n", eglGetError()); + return MwFALSE; + } + + o->egl_window_native = + (EGLNativeWindowType)wl_egl_window_create(handle->lowlevel->wayland.framebuffer.surface, handle->lowlevel->wayland.ww, handle->lowlevel->wayland.wh); + if(o->egl_window_native == EGL_NO_SURFACE) { + printf("ERROR: wl_egl_window_create, EGL_NO_SURFACE\n"); + return MwFALSE; + } + + /* Create a surface */ + surface = eglCreateWindowSurface(display, o->egl_config, o->egl_window_native, NULL); + if(surface == EGL_NO_SURFACE) { + printf("ERROR: eglCreateWindowSurface, %0X\n", eglGetError()); + return MwFALSE; + } + + eglBindAPI(EGL_OPENGL_API); + + /* Create a GL context */ + context = eglCreateContext(display, o->egl_config, EGL_NO_CONTEXT, contextAttribs); + if(context == EGL_NO_CONTEXT) { + printf("ERROR: eglCreateContext, %0X\n", eglGetError()); + return MwFALSE; + } + + if(!eglMakeCurrent(display, surface, surface, context)) { + printf("ERROR: eglMakeCurrent (setup): %0X\n", eglGetError()); + } + + o->egl_display = display; + o->egl_surface = surface; + o->egl_context = context; } #endif @@ -165,7 +257,11 @@ static void mwOpenGLMakeCurrentImpl(MwWidget handle) { #endif #ifdef USE_WAYLAND if(handle->lowlevel->common.type == MwLLBackendWayland) { - /* todo */ + waylandopengl_t* o = handle->internal; + + if(!eglMakeCurrent(o->egl_display, o->egl_surface, o->egl_surface, o->egl_context)) { + printf("ERROR: eglMakeCurrent, %0X\n", eglGetError()); + } } #endif } @@ -187,7 +283,12 @@ static void mwOpenGLSwapBufferImpl(MwWidget handle) { #endif #ifdef USE_WAYLAND if(handle->lowlevel->common.type == MwLLBackendWayland) { - /* todo */ + waylandopengl_t* o = handle->internal; + if(!eglSwapBuffers(o->egl_display, o->egl_surface)) { + printf("ERROR: eglSwapBuffers, %0X\n", eglGetError()); + }; + wl_egl_window_resize((struct wl_egl_window*)o->egl_window_native, handle->lowlevel->wayland.ww, handle->lowlevel->wayland.wh, 0, 0); + MwLLForceRender(handle->lowlevel); } #endif } @@ -209,11 +310,85 @@ static void* mwOpenGLGetProcAddressImpl(MwWidget handle, const char* name) { #endif #ifdef USE_WAYLAND if(handle->lowlevel->common.type == MwLLBackendWayland) { - /* todo */ + return eglGetProcAddress(name); } #endif return NULL; } +#else +#ifdef USE_GDI +typedef HGLRC(WINAPI* MWwglCreateContext)(HDC); +typedef BOOL(WINAPI* MWwglMakeCurrent)(HDC, HGLRC); +typedef PROC(WINAPI* MWwglGetProcAddress)(LPCSTR); +typedef BOOL(WINAPI* MWwglDeleteContext)(HGLRC); + +typedef struct gdiopengl { + HDC dc; + HGLRC gl; + + void* lib; + + MWwglCreateContext wglCreateContext; + MWwglMakeCurrent wglMakeCurrent; + MWwglDeleteContext wglDeleteContext; + MWwglGetProcAddress wglGetProcAddress; +} gdiopengl_t; +#endif +#ifdef USE_X11 +typedef XVisualInfo* (*MWglXChooseVisual)(Display* dpy, int screen, int* attribList); +typedef GLXContext (*MWglXCreateContext)(Display* dpy, XVisualInfo* vis, GLXContext shareList, Bool direct); +typedef void (*MWglXDestroyContext)(Display* dpy, GLXContext ctx); +typedef Bool (*MWglXMakeCurrent)(Display* dpy, GLXDrawable drawable, GLXContext ctx); +typedef void (*MWglXSwapBuffers)(Display* dpy, GLXDrawable drawable); +typedef void* (*MWglXGetProcAddress)(const GLubyte* procname); + +typedef struct x11opengl { + XVisualInfo* visual; + GLXContext gl; + + void* lib; + + MWglXChooseVisual glXChooseVisual; + MWglXCreateContext glXCreateContext; + MWglXDestroyContext glXDestroyContext; + MWglXMakeCurrent glXMakeCurrent; + MWglXSwapBuffers glXSwapBuffers; + MWglXGetProcAddress glXGetProcAddress; +} x11opengl_t; +#endif + +#ifdef USE_WAYLAND +#include +#include + +typedef struct waylandopengl { + struct wl_egl_window* egl_window_native; + EGLDisplay egl_display; + EGLContext egl_context; + EGLSurface egl_surface; + EGLConfig egl_config; +} waylandopengl_t; + +#endif + +static int create(MwWidget handle) { + printf("Milsko compiled without OpenGL support! OpenGL widgets will not work properly.\n"); + return 1; +} + +static void destroy(MwWidget handle) { +} + +static void mwOpenGLMakeCurrentImpl(MwWidget handle) { +} + +static void mwOpenGLSwapBufferImpl(MwWidget handle) { +} + +static void* mwOpenGLGetProcAddressImpl(MwWidget handle, const char* name) { + return NULL; +} +#endif static void func_handler(MwWidget handle, const char* name, void* out, va_list va) { if(strcmp(name, "mwOpenGLMakeCurrent") == 0) { From 6946c1eaf349efc7660844d3bb5cbf844cfbaed9 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 30 Dec 2025 22:26:19 -0700 Subject: [PATCH 092/836] wayland: opengl support --- include/Mw/LowLevel/Wayland.h | 6 +- pl/rules.pl | 11 +- src/backend/wayland.c | 53 ++++++---- src/widget/opengl.c | 188 +++++++++++++++++++++++++++++++++- 4 files changed, 229 insertions(+), 29 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 99ac280d5..0d3227f6e 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -170,8 +170,7 @@ struct _MwLLWayland { struct wl_keyboard* keyboard; MwU32 keyboard_serial; - MwU64 events_pending; - MwBool test; + MwU64 events_pending; MwU32 mod_state; @@ -186,8 +185,7 @@ struct _MwLLWayland { MwBool force_render; - MwBool break_dispatch; - MwBool break_pending; + MwBool hmmmm; struct _MwLLWaylandShmBuffer framebuffer; struct _MwLLWaylandShmBuffer cursor; diff --git a/pl/rules.pl b/pl/rules.pl index 1ad3ff3de..123c128f0 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -32,6 +32,10 @@ if (grep(/^wayland$/, @backends)) { add_cflags(`pkg-config --cflags cairo wayland-client xkbcommon`); add_libs(`pkg-config --libs cairo wayland-client xkbcommon`); + if (param_get("opengl")) { + add_libs(`pkg-config --libs egl wayland-egl`); + } + scan_wayland_protocol("stable", "xdg-shell", ""); scan_wayland_protocol("stable", "tablet", "-v2"); scan_wayland_protocol("staging", "xdg-toplevel-icon", "-v1"); @@ -39,7 +43,7 @@ if (grep(/^wayland$/, @backends)) { scan_wayland_protocol("unstable", "xdg-decoration", "-unstable-v1"); scan_wayland_protocol("unstable", "primary-selection", "-unstable-v1"); - $gl_libs = "-lEGL -lwayland-egl lGL -lGLU"; + $gl_libs = "-lGL -lGLU"; } if (param_get("stb-image")) { @@ -48,6 +52,11 @@ if (param_get("stb-image")) { if (param_get("stb-truetype")) { add_cflags("-DUSE_STB_TRUETYPE"); } + +if (param_get("opengl")) { + add_cflags("-DHAS_OPENGL"); +} + if (param_get("freetype2")) { add_cflags("-DUSE_FREETYPE2"); if ($cross) { diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 515e88b8d..62a8b41b0 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -8,7 +8,6 @@ #include #include #include -#include /* TODO: * - MwLLGrabPointerImpl @@ -46,7 +45,7 @@ static void new_protocol(void* data, struct wl_registry* registry, wayland_protocol_callback_table_t* cb = shget(wayland->wl_protocol_setup_map, interface); if(cb != NULL) { - char* inter = malloc(strlen(interface)); + char* inter = malloc(strlen(interface) + 1); strcpy(inter, interface); shput(wayland->wl_protocol_map, inter, cb->setup(name, data)); } else { @@ -360,6 +359,7 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time p.point = self->wayland.cur_mouse_pos; MwLLDispatch(self, move, &p); + self->wayland.events_pending += 1; /*timed_redraw(self, time, 50, &self->wayland.cooldown_timer);*/ @@ -396,8 +396,10 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri } } - MwLLDispatch(self, draw, NULL); - self->wayland.events_pending += 1; + if(!self->wayland.always_render) { + MwLLDispatch(self, draw, NULL); + self->wayland.events_pending += 1; + } }; /* `wl_pointer.axis` callback */ @@ -433,8 +435,6 @@ static void keyboard_keymap(void* data, close(fd); struct xkb_state* xkb_state = xkb_state_new(xkb_keymap); - xkb_keymap_unref(wayland->xkb_keymap); - xkb_state_unref(wayland->xkb_state); wayland->xkb_keymap = xkb_keymap; wayland->xkb_state = xkb_state; @@ -556,8 +556,11 @@ static void keyboard_key(void* data, } } } - MwLLDispatch(self, draw, NULL); - self->wayland.events_pending += 1; + + if(!self->wayland.always_render) { + MwLLDispatch(self, draw, NULL); + self->wayland.events_pending += 1; + } }; /* `wl_keyboard.modifiers` callback */ @@ -783,6 +786,8 @@ static void xdg_toplevel_configure(void* data, MwLLDispatch(self, resize, NULL); MwLLDispatch(self, draw, NULL); + MwLLForceRender(self); + /*if(!self->wayland.egl_setup) { self->wayland.egl_setup = egl_setup(self, self->wayland.x, self->wayland.y, width, height); } else { @@ -891,6 +896,7 @@ static void framebuffer_setup(struct _MwLLWayland* wayland) { memset(wayland->framebuffer.buf, 255, wayland->framebuffer.buf_size); update_buffer(&wayland->framebuffer); + wayland->events_pending += 1; }; static void framebuffer_destroy(struct _MwLLWayland* wayland) { @@ -1287,9 +1293,6 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLLForceRender(r); - pthread_mutex_init(&r->wayland.dispatch_mutex, NULL); - pthread_mutex_init(&r->wayland.pending_mutex, NULL); - return r; } @@ -1398,6 +1401,7 @@ static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLL } cairo_close_path(handle->wayland.cairo); cairo_fill(handle->wayland.cairo); + handle->wayland.events_pending += 1; } @@ -1416,6 +1420,7 @@ static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { } cairo_close_path(handle->wayland.cairo); cairo_stroke(handle->wayland.cairo); + handle->wayland.events_pending += 1; } @@ -1424,6 +1429,7 @@ static void MwLLBeginDrawImpl(MwLL handle) { static void MwLLEndDrawImpl(MwLL handle) { update_buffer(&handle->wayland.framebuffer); + handle->wayland.events_pending += 1; } @@ -1451,20 +1457,25 @@ static int MwLLPendingImpl(MwLL handle) { MwBool pending = MwFALSE; struct timespec timeout; - timeout.tv_nsec = 100; - timeout.tv_sec = 0; - - while(pending == 0 && !handle->wayland.break_dispatch) { - pending = wl_display_dispatch_timeout(handle->wayland.display, &timeout); + if(handle->wayland.always_render) { + return event_loop(handle); } - return handle->wayland.force_render || handle->wayland.events_pending || pending; + timeout.tv_nsec = 10; + timeout.tv_sec = 0; + + return handle->wayland.force_render || handle->wayland.events_pending || wl_display_dispatch_timeout(handle->wayland.display, &timeout); } static void MwLLNextEventImpl(MwLL handle) { - event_loop(handle); - if(handle->wayland.events_pending) { - handle->wayland.events_pending = 0; + if(!handle->wayland.always_render) { + event_loop(handle); + if(handle->wayland.events_pending) { + handle->wayland.events_pending = 0; + } + if(handle->wayland.force_render) { + handle->wayland.force_render = 0; + } } } @@ -1575,6 +1586,8 @@ static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { static void MwLLForceRenderImpl(MwLL handle) { wl_surface_damage(handle->wayland.framebuffer.surface, 0, 0, handle->wayland.ww, handle->wayland.wh); + handle->wayland.force_render = MwTRUE; + /* if(handle->wayland.egl_setup) { timed_redraw_by_epoch(handle, 25); diff --git a/src/widget/opengl.c b/src/widget/opengl.c index a1c36d96f..e0ee8acc5 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -1,6 +1,7 @@ #include #include +#ifdef HAS_OPENGL #ifdef USE_GDI typedef HGLRC(WINAPI* MWwglCreateContext)(HDC); typedef BOOL(WINAPI* MWwglMakeCurrent)(HDC, HGLRC); @@ -42,6 +43,19 @@ typedef struct x11opengl { } x11opengl_t; #endif +#ifdef USE_WAYLAND +#include +#include + +typedef struct waylandopengl { + EGLNativeWindowType egl_window_native; + EGLDisplay egl_display; + EGLContext egl_context; + EGLSurface egl_surface; + EGLConfig egl_config; +} waylandopengl_t; +#endif + static int create(MwWidget handle) { void* r = NULL; #ifdef USE_GDI @@ -105,7 +119,89 @@ static int create(MwWidget handle) { #endif #ifdef USE_WAYLAND if(handle->lowlevel->common.type == MwLLBackendWayland) { - /* todo */ + int err; + EGLint numConfigs; + EGLint majorVersion; + EGLint minorVersion; + EGLContext context; + EGLSurface surface; + EGLint fbAttribs[] = + { + EGL_SURFACE_TYPE, EGL_WINDOW_BIT, + EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, + EGL_RED_SIZE, 8, + EGL_GREEN_SIZE, 8, + EGL_BLUE_SIZE, 8, + EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, + EGL_NONE}; + EGLint contextAttribs[] = { + EGL_CONTEXT_CLIENT_VERSION, 1, + EGL_CONTEXT_MAJOR_VERSION, 1, + EGL_CONTEXT_MINOR_VERSION, 1, + EGL_NONE}; + EGLDisplay display; + waylandopengl_t* o = r = malloc(sizeof(*o)); + MwLL topmost_parent = handle->lowlevel->wayland.parent; + topmost_parent->wayland.always_render = MwTRUE; + + while(topmost_parent->wayland.parent != NULL) { + topmost_parent = topmost_parent->wayland.parent; + topmost_parent->wayland.always_render = MwTRUE; + } + + display = eglGetDisplay((EGLNativeDisplayType)handle->lowlevel->wayland.display); + if(display == EGL_NO_DISPLAY) { + printf("ERROR: eglGetDisplay, %0X\n", eglGetError()); + return MwFALSE; + } + /* Initialize EGL */ + if(!eglInitialize(display, &majorVersion, &minorVersion)) { + printf("ERROR: eglInitialize, %0X\n", eglGetError()); + return MwFALSE; + } + + /* Get configs */ + if((eglGetConfigs(display, NULL, 0, &numConfigs) != EGL_TRUE) || (numConfigs == 0)) { + printf("ERROR: eglGetConfigs, %0X\n", eglGetError()); + return MwFALSE; + } + + /* Choose config */ + if((eglChooseConfig(display, fbAttribs, &o->egl_config, 1, &numConfigs) != EGL_TRUE) || (numConfigs != 1)) { + printf("ERROR: eglChooseConfig, %0X\n", eglGetError()); + return MwFALSE; + } + + o->egl_window_native = + (EGLNativeWindowType)wl_egl_window_create(handle->lowlevel->wayland.framebuffer.surface, handle->lowlevel->wayland.ww, handle->lowlevel->wayland.wh); + if(o->egl_window_native == EGL_NO_SURFACE) { + printf("ERROR: wl_egl_window_create, EGL_NO_SURFACE\n"); + return MwFALSE; + } + + /* Create a surface */ + surface = eglCreateWindowSurface(display, o->egl_config, o->egl_window_native, NULL); + if(surface == EGL_NO_SURFACE) { + printf("ERROR: eglCreateWindowSurface, %0X\n", eglGetError()); + return MwFALSE; + } + + eglBindAPI(EGL_OPENGL_API); + + /* Create a GL context */ + context = eglCreateContext(display, o->egl_config, EGL_NO_CONTEXT, contextAttribs); + if(context == EGL_NO_CONTEXT) { + printf("ERROR: eglCreateContext, %0X\n", eglGetError()); + return MwFALSE; + } + + if(!eglMakeCurrent(display, surface, surface, context)) { + printf("ERROR: eglMakeCurrent (setup): %0X\n", eglGetError()); + } + + o->egl_display = display; + o->egl_surface = surface; + o->egl_context = context; } #endif @@ -165,7 +261,11 @@ static void mwOpenGLMakeCurrentImpl(MwWidget handle) { #endif #ifdef USE_WAYLAND if(handle->lowlevel->common.type == MwLLBackendWayland) { - /* todo */ + waylandopengl_t* o = handle->internal; + + if(!eglMakeCurrent(o->egl_display, o->egl_surface, o->egl_surface, o->egl_context)) { + printf("ERROR: eglMakeCurrent, %0X\n", eglGetError()); + } } #endif } @@ -187,7 +287,13 @@ static void mwOpenGLSwapBufferImpl(MwWidget handle) { #endif #ifdef USE_WAYLAND if(handle->lowlevel->common.type == MwLLBackendWayland) { - /* todo */ + waylandopengl_t* o = handle->internal; + eglSwapInterval(o->egl_display, 0); + if(!eglSwapBuffers(o->egl_display, o->egl_surface)) { + printf("ERROR: eglSwapBuffers, %0X\n", eglGetError()); + }; + wl_egl_window_resize((struct wl_egl_window*)o->egl_window_native, handle->lowlevel->wayland.ww, handle->lowlevel->wayland.wh, 0, 0); + MwLLForceRender(handle->lowlevel); } #endif } @@ -209,11 +315,85 @@ static void* mwOpenGLGetProcAddressImpl(MwWidget handle, const char* name) { #endif #ifdef USE_WAYLAND if(handle->lowlevel->common.type == MwLLBackendWayland) { - /* todo */ + return eglGetProcAddress(name); } #endif return NULL; } +#else +#ifdef USE_GDI +typedef HGLRC(WINAPI* MWwglCreateContext)(HDC); +typedef BOOL(WINAPI* MWwglMakeCurrent)(HDC, HGLRC); +typedef PROC(WINAPI* MWwglGetProcAddress)(LPCSTR); +typedef BOOL(WINAPI* MWwglDeleteContext)(HGLRC); + +typedef struct gdiopengl { + HDC dc; + HGLRC gl; + + void* lib; + + MWwglCreateContext wglCreateContext; + MWwglMakeCurrent wglMakeCurrent; + MWwglDeleteContext wglDeleteContext; + MWwglGetProcAddress wglGetProcAddress; +} gdiopengl_t; +#endif +#ifdef USE_X11 +typedef XVisualInfo* (*MWglXChooseVisual)(Display* dpy, int screen, int* attribList); +typedef GLXContext (*MWglXCreateContext)(Display* dpy, XVisualInfo* vis, GLXContext shareList, Bool direct); +typedef void (*MWglXDestroyContext)(Display* dpy, GLXContext ctx); +typedef Bool (*MWglXMakeCurrent)(Display* dpy, GLXDrawable drawable, GLXContext ctx); +typedef void (*MWglXSwapBuffers)(Display* dpy, GLXDrawable drawable); +typedef void* (*MWglXGetProcAddress)(const GLubyte* procname); + +typedef struct x11opengl { + XVisualInfo* visual; + GLXContext gl; + + void* lib; + + MWglXChooseVisual glXChooseVisual; + MWglXCreateContext glXCreateContext; + MWglXDestroyContext glXDestroyContext; + MWglXMakeCurrent glXMakeCurrent; + MWglXSwapBuffers glXSwapBuffers; + MWglXGetProcAddress glXGetProcAddress; +} x11opengl_t; +#endif + +#ifdef USE_WAYLAND +#include +#include + +typedef struct waylandopengl { + struct wl_egl_window* egl_window_native; + EGLDisplay egl_display; + EGLContext egl_context; + EGLSurface egl_surface; + EGLConfig egl_config; +} waylandopengl_t; + +#endif + +static int create(MwWidget handle) { + printf("Milsko compiled without OpenGL support! OpenGL widgets will not work properly.\n"); + return 1; +} + +static void destroy(MwWidget handle) { +} + +static void mwOpenGLMakeCurrentImpl(MwWidget handle) { +} + +static void mwOpenGLSwapBufferImpl(MwWidget handle) { +} + +static void* mwOpenGLGetProcAddressImpl(MwWidget handle, const char* name) { + return NULL; +} +#endif static void func_handler(MwWidget handle, const char* name, void* out, va_list va) { if(strcmp(name, "mwOpenGLMakeCurrent") == 0) { From f3683dece30e4c1552e590ec60e40bf727bfa7ac Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 30 Dec 2025 22:38:01 -0700 Subject: [PATCH 093/836] undo HAS_OPENGL stuff --- pl/rules.pl | 4 --- src/backend/wayland.c | 13 +++----- src/widget/opengl.c | 75 ------------------------------------------- 3 files changed, 5 insertions(+), 87 deletions(-) diff --git a/pl/rules.pl b/pl/rules.pl index 123c128f0..f55fce33f 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -53,10 +53,6 @@ if (param_get("stb-truetype")) { add_cflags("-DUSE_STB_TRUETYPE"); } -if (param_get("opengl")) { - add_cflags("-DHAS_OPENGL"); -} - if (param_get("freetype2")) { add_cflags("-DUSE_FREETYPE2"); if ($cross) { diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 62a8b41b0..3e4b9ee09 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1468,14 +1468,11 @@ static int MwLLPendingImpl(MwLL handle) { } static void MwLLNextEventImpl(MwLL handle) { - if(!handle->wayland.always_render) { - event_loop(handle); - if(handle->wayland.events_pending) { - handle->wayland.events_pending = 0; - } - if(handle->wayland.force_render) { - handle->wayland.force_render = 0; - } + if(handle->wayland.events_pending) { + handle->wayland.events_pending = 0; + } + if(handle->wayland.force_render) { + handle->wayland.force_render = 0; } } diff --git a/src/widget/opengl.c b/src/widget/opengl.c index e0ee8acc5..8e90d39c4 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -1,7 +1,6 @@ #include #include -#ifdef HAS_OPENGL #ifdef USE_GDI typedef HGLRC(WINAPI* MWwglCreateContext)(HDC); typedef BOOL(WINAPI* MWwglMakeCurrent)(HDC, HGLRC); @@ -320,80 +319,6 @@ static void* mwOpenGLGetProcAddressImpl(MwWidget handle, const char* name) { #endif return NULL; } -#else -#ifdef USE_GDI -typedef HGLRC(WINAPI* MWwglCreateContext)(HDC); -typedef BOOL(WINAPI* MWwglMakeCurrent)(HDC, HGLRC); -typedef PROC(WINAPI* MWwglGetProcAddress)(LPCSTR); -typedef BOOL(WINAPI* MWwglDeleteContext)(HGLRC); - -typedef struct gdiopengl { - HDC dc; - HGLRC gl; - - void* lib; - - MWwglCreateContext wglCreateContext; - MWwglMakeCurrent wglMakeCurrent; - MWwglDeleteContext wglDeleteContext; - MWwglGetProcAddress wglGetProcAddress; -} gdiopengl_t; -#endif -#ifdef USE_X11 -typedef XVisualInfo* (*MWglXChooseVisual)(Display* dpy, int screen, int* attribList); -typedef GLXContext (*MWglXCreateContext)(Display* dpy, XVisualInfo* vis, GLXContext shareList, Bool direct); -typedef void (*MWglXDestroyContext)(Display* dpy, GLXContext ctx); -typedef Bool (*MWglXMakeCurrent)(Display* dpy, GLXDrawable drawable, GLXContext ctx); -typedef void (*MWglXSwapBuffers)(Display* dpy, GLXDrawable drawable); -typedef void* (*MWglXGetProcAddress)(const GLubyte* procname); - -typedef struct x11opengl { - XVisualInfo* visual; - GLXContext gl; - - void* lib; - - MWglXChooseVisual glXChooseVisual; - MWglXCreateContext glXCreateContext; - MWglXDestroyContext glXDestroyContext; - MWglXMakeCurrent glXMakeCurrent; - MWglXSwapBuffers glXSwapBuffers; - MWglXGetProcAddress glXGetProcAddress; -} x11opengl_t; -#endif - -#ifdef USE_WAYLAND -#include -#include - -typedef struct waylandopengl { - struct wl_egl_window* egl_window_native; - EGLDisplay egl_display; - EGLContext egl_context; - EGLSurface egl_surface; - EGLConfig egl_config; -} waylandopengl_t; - -#endif - -static int create(MwWidget handle) { - printf("Milsko compiled without OpenGL support! OpenGL widgets will not work properly.\n"); - return 1; -} - -static void destroy(MwWidget handle) { -} - -static void mwOpenGLMakeCurrentImpl(MwWidget handle) { -} - -static void mwOpenGLSwapBufferImpl(MwWidget handle) { -} - -static void* mwOpenGLGetProcAddressImpl(MwWidget handle, const char* name) { - return NULL; -} -#endif static void func_handler(MwWidget handle, const char* name, void* out, va_list va) { if(strcmp(name, "mwOpenGLMakeCurrent") == 0) { From f32f6cefc09f0a4e9015c30e60c279a8572c45c0 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 30 Dec 2025 22:44:04 -0700 Subject: [PATCH 094/836] wayland: accidentally removed event_loop call from MwLLNextEventImpl --- src/backend/wayland.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 3e4b9ee09..556a9c0bf 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1468,6 +1468,9 @@ static int MwLLPendingImpl(MwLL handle) { } static void MwLLNextEventImpl(MwLL handle) { + if(!handle->wayland.always_render) { + event_loop(handle); + } if(handle->wayland.events_pending) { handle->wayland.events_pending = 0; } From 6183a1ccda326c44ee9e9c43eaa3abd0dc40a9da Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 2 Jan 2026 00:24:48 +0900 Subject: [PATCH 095/836] update license --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 4e2b25f16..a7729adbf 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2025, Pyrite development team +Copyright (c) 2025-2026, Pyrite development team All rights reserved. Redistribution and use in source and binary forms, with or without From bed668b84a830175a2982c2871a13424afb10e3f Mon Sep 17 00:00:00 2001 From: IoIxD Date: Fri, 2 Jan 2026 14:19:30 -0700 Subject: [PATCH 096/836] wayland: fix misc. crashes on the destruction of widgets --- include/Mw/LowLevel/Wayland.h | 2 +- src/backend/wayland.c | 62 ++++++++++++++++++++--------------- 2 files changed, 37 insertions(+), 27 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 0d3227f6e..a0282c3c5 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -185,7 +185,7 @@ struct _MwLLWayland { MwBool force_render; - MwBool hmmmm; + MwBool disabled; struct _MwLLWaylandShmBuffer framebuffer; struct _MwLLWaylandShmBuffer cursor; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 556a9c0bf..a686db4bc 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -296,8 +296,11 @@ static wayland_protocol_t* wl_data_device_manager_setup(MwU32 name, struct _MwLL } static void wl_data_device_manager_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - wl_data_device_manager_destroy(wayland->clipboard_manager.wl); - wl_data_source_destroy(wayland->clipboard_source.wl); + if(wayland->clipboard_manager.wl != NULL && !wayland->supports_zwp) { + wl_data_device_manager_destroy(wayland->clipboard_manager.wl); + wl_data_source_destroy(wayland->clipboard_source.wl); + wayland->clipboard_manager.wl = NULL; + } } /* zwp_primary_selection_device_manager_v1 setup function */ @@ -605,22 +608,24 @@ static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat, wl_pointer_add_listener(self->wayland.pointer, &pointer_listener, data); } - if(self->wayland.supports_zwp) { - device_ctx->device.zwp = zwp_primary_selection_device_manager_v1_get_device(self->wayland.clipboard_manager.zwp, wl_seat); - } else { - device_ctx->device.wl = wl_data_device_manager_get_data_device(self->wayland.clipboard_manager.wl, wl_seat); - } - device_ctx->ll = self; - device_ctx->seat = wl_seat; - device_ctx->capabilities = capabilities; + if(self->wayland.clipboard_manager.wl != NULL) { + if(self->wayland.supports_zwp) { + device_ctx->device.zwp = zwp_primary_selection_device_manager_v1_get_device(self->wayland.clipboard_manager.zwp, wl_seat); + } else { + device_ctx->device.wl = wl_data_device_manager_get_data_device(self->wayland.clipboard_manager.wl, wl_seat); + } + device_ctx->ll = self; + device_ctx->seat = wl_seat; + device_ctx->capabilities = capabilities; - if(self->wayland.supports_zwp) { - zwp_primary_selection_device_v1_add_listener(device_ctx->device.zwp, &zwp_primary_selection_device_v1_listener, device_ctx); - } else { - wl_data_device_add_listener(device_ctx->device.wl, &wl_data_device_listener, device_ctx); - } + if(self->wayland.supports_zwp) { + zwp_primary_selection_device_v1_add_listener(device_ctx->device.zwp, &zwp_primary_selection_device_v1_listener, device_ctx); + } else { + wl_data_device_add_listener(device_ctx->device.wl, &wl_data_device_listener, device_ctx); + } - arrpush(self->wayland.clipboard_devices, device_ctx); + arrpush(self->wayland.clipboard_devices, device_ctx); + } }; static void output_geometry(void* data, @@ -1100,6 +1105,8 @@ static void destroy_toplevel(MwLL r) { zxdg_decoration_manager_v1_destroy(dec->manager); } + wl_surface_destroy(r->wayland.framebuffer.surface); + wl_compositor_destroy(r->wayland.compositor); xdg_surface_destroy(r->wayland.toplevel->xdg_surface); @@ -1190,11 +1197,14 @@ static void setup_popup(MwLL r) { struct xdg_surface* xdg_surface; MwLL topmost_parent = r->wayland.parent; + r->wayland.type = MWLL_WAYLAND_POPUP; + while(topmost_parent->wayland.type != MWLL_WAYLAND_TOPLEVEL) { topmost_parent = topmost_parent->wayland.parent; } - r->wayland.type = MWLL_WAYLAND_POPUP; + r->wayland.popup = malloc(sizeof(struct _MwLLWaylandPopup)); + memset(r->wayland.popup, 0, sizeof(struct _MwLLWaylandPopup)); setup_callbacks(&r->wayland); @@ -1207,10 +1217,6 @@ static void setup_popup(MwLL r) { return; } - r->wayland.popup = calloc(sizeof(struct _MwLLWaylandPopup), 0); - - r->wayland.framebuffer.surface = wl_compositor_create_surface(r->wayland.compositor); - r->wayland.popup->xdg_wm_base = WAYLAND_GET_INTERFACE(r->wayland, xdg_wm_base)->context; r->wayland.popup->xdg_positioner = xdg_wm_base_create_positioner(r->wayland.popup->xdg_wm_base); @@ -1224,6 +1230,8 @@ static void setup_popup(MwLL r) { xdg_surface = topmost_parent->wayland.toplevel->xdg_surface; + r->wayland.framebuffer.surface = wl_compositor_create_surface(r->wayland.compositor); + r->wayland.popup->xdg_surface = xdg_wm_base_get_xdg_surface(r->wayland.popup->xdg_wm_base, r->wayland.framebuffer.surface); @@ -1299,11 +1307,11 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { static void MwLLDestroyImpl(MwLL handle) { int i; - event_loop(handle); - MwLLDestroyCommon(handle); - buffer_destroy(&handle->wayland.framebuffer); + event_loop(handle); + + framebuffer_destroy(&handle->wayland); buffer_destroy(&handle->wayland.cursor); wl_region_destroy(handle->wayland.region); @@ -1329,6 +1337,7 @@ static void MwLLDestroyImpl(MwLL handle) { void* ctx = shget(handle->wayland.wl_protocol_map, handle->wayland.wl_protocol_setup_map[i].key); handle->wayland.wl_protocol_setup_map[i].value->destroy(&handle->wayland, ctx); + shdel(handle->wayland.wl_protocol_map, handle->wayland.wl_protocol_setup_map[i].value); } shfree(handle->wayland.wl_protocol_map); shfree(handle->wayland.wl_protocol_setup_map); @@ -1351,7 +1360,7 @@ static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsign } static void MwLLSetXYImpl(MwLL handle, int x, int y) { - if(handle->wayland.type != MWLL_WAYLAND_TOPLEVEL) { + if(handle->wayland.type == MWLL_WAYLAND_SUBLEVEL) { region_invalidate(handle); handle->wayland.x = x; handle->wayland.y = y; @@ -1555,7 +1564,8 @@ static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { int i = 0; if(handle->wayland.icon == NULL) { - handle->wayland.icon = calloc(sizeof(struct _MwLLWaylandShmBuffer), 0); + handle->wayland.icon = malloc(sizeof(struct _MwLLWaylandShmBuffer)); + memset(handle->wayland.icon, 0, sizeof(struct _MwLLWaylandShmBuffer)); handle->wayland.icon->shm = handle->wayland.framebuffer.shm; } From a148b3bedfe2ff6baf56bb433404d4bf613420cd Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sat, 3 Jan 2026 18:27:34 -0700 Subject: [PATCH 097/836] wayland: use mutexes to ensure that MwLLDestroyImpl never conflicts with wayland events. --- include/Mw/LowLevel/Wayland.h | 7 +++ src/backend/wayland.c | 87 +++++++++++++++++++++++++++++++---- 2 files changed, 86 insertions(+), 8 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index a0282c3c5..1e8e1e130 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -16,6 +16,7 @@ #include #include #include +#include MWDECL int MwLLWaylandCallInit(void); @@ -191,6 +192,12 @@ struct _MwLLWayland { struct _MwLLWaylandShmBuffer cursor; struct _MwLLWaylandShmBuffer* icon; + /* + Events mutex. Any time a keyboard/mouse event happens, we try to lock this for 100 milliseconds, then give up if we can't do it. This is used in conjunction with some code in the MwLLDestroyImpl to make sure that destroy is NEVER interferes with an ongoing event. + + IOI_XD: This sounds like a hilariously rare edge case, so it's almost funnier that this happened with 100% certainty for me and I spent day(s) trying to figure out what was happening. */ + pthread_mutex_t eventsMutex; + cairo_surface_t* cs; cairo_t* cairo; }; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index a686db4bc..86cd489bd 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -340,10 +340,18 @@ static void zwp_primary_selection_device_manager_v1_interface_destroy(struct _Mw static void pointer_enter(void* data, struct wl_pointer* wl_pointer, MwU32 serial, struct wl_surface* surface, wl_fixed_t surface_x, wl_fixed_t surface_y) { - MwLL self = data; + MwLL self = data; + struct timespec t; + t.tv_nsec = 100; + + if(pthread_mutex_timedlock(&self->wayland.eventsMutex, &t) != 0) { + return; + }; self->wayland.pointer_serial = serial; wl_pointer_set_cursor(wl_pointer, serial, self->wayland.cursor.surface, 0, 0); + + pthread_mutex_unlock(&self->wayland.eventsMutex); }; /* `wl_pointer.leave` callback */ @@ -357,6 +365,12 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time MwLL self = data; MwLLMouse p; + struct timespec t; + t.tv_nsec = 100; + + if(pthread_mutex_timedlock(&self->wayland.eventsMutex, &t) != 0) { + return; + }; self->wayland.cur_mouse_pos.x = wl_fixed_to_double(surface_x); self->wayland.cur_mouse_pos.y = wl_fixed_to_double(surface_y); @@ -364,14 +378,22 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time MwLLDispatch(self, move, &p); self->wayland.events_pending += 1; + pthread_mutex_unlock(&self->wayland.eventsMutex); /*timed_redraw(self, time, 50, &self->wayland.cooldown_timer);*/ }; /* `wl_pointer.button` callback */ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 serial, MwU32 time, MwU32 button, MwU32 state) { - MwLL self = data; - MwLLMouse p; + MwLL self = data; + MwLLMouse p; + struct timespec t; + t.tv_nsec = 100; + + if(pthread_mutex_timedlock(&self->wayland.eventsMutex, &t) != 0) { + return; + }; + p.point = self->wayland.cur_mouse_pos; if(p.point.x > self->wayland.x && p.point.x < self->wayland.x + self->wayland.ww && p.point.y > self->wayland.y && p.point.y < self->wayland.y + self->wayland.wh) { switch(button) { @@ -403,6 +425,7 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri MwLLDispatch(self, draw, NULL); self->wayland.events_pending += 1; } + pthread_mutex_unlock(&self->wayland.eventsMutex); }; /* `wl_pointer.axis` callback */ @@ -450,11 +473,19 @@ static void keyboard_enter(void* data, MwU32 serial, struct wl_surface* surface, struct wl_array* keys) { - MwLL self = data; + MwLL self = data; + struct timespec t; + t.tv_nsec = 100; + + if(pthread_mutex_timedlock(&self->wayland.eventsMutex, &t) != 0) { + return; + }; + self->wayland.keyboard_serial = serial; MwLLDispatch(self, focus_in, NULL); self->wayland.events_pending += 1; + pthread_mutex_unlock(&self->wayland.eventsMutex); }; /* `wl_keyboard.leave` callback */ @@ -462,9 +493,18 @@ static void keyboard_leave(void* data, struct wl_keyboard* wl_keyboard, MwU32 serial, struct wl_surface* surface) { - MwLL self = data; + MwLL self = data; + struct timespec t; + t.tv_nsec = 100; + + if(pthread_mutex_timedlock(&self->wayland.eventsMutex, &t) != 0) { + return; + }; + MwLLDispatch(self, focus_out, NULL); self->wayland.events_pending += 1; + + pthread_mutex_unlock(&self->wayland.eventsMutex); }; /* `wl_keyboard.key` callback */ @@ -474,7 +514,13 @@ static void keyboard_key(void* data, MwU32 time, MwU32 key, MwU32 state) { - MwLL self = data; + MwLL self = data; + struct timespec t; + t.tv_nsec = 100; + + if(pthread_mutex_timedlock(&self->wayland.eventsMutex, &t) != 0) { + return; + }; if(self->wayland.type == MWLL_WAYLAND_TOPLEVEL) { struct _MwLLWaylandTopLevel* wayland = self->wayland.toplevel; xkb_layout_index_t layout; @@ -564,6 +610,8 @@ static void keyboard_key(void* data, MwLLDispatch(self, draw, NULL); self->wayland.events_pending += 1; } + + pthread_mutex_unlock(&self->wayland.eventsMutex); }; /* `wl_keyboard.modifiers` callback */ @@ -574,11 +622,19 @@ static void keyboard_modifiers(void* data, MwU32 mods_latched, MwU32 mods_locked, MwU32 group) { - MwLL self = data; + MwLL self = data; + struct timespec t; + t.tv_nsec = 100; + + if(pthread_mutex_timedlock(&self->wayland.eventsMutex, &t) != 0) { + return; + }; self->wayland.mod_state = 0; self->wayland.mod_state |= mods_depressed; self->wayland.mod_state |= mods_locked; + + pthread_mutex_unlock(&self->wayland.eventsMutex); }; struct wl_keyboard_listener keyboard_listener = { @@ -1305,7 +1361,11 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { } static void MwLLDestroyImpl(MwLL handle) { - int i; + int i; + struct timeval tv; + int select_ret; + + pthread_mutex_lock(&handle->wayland.eventsMutex); MwLLDestroyCommon(handle); @@ -1349,6 +1409,16 @@ static void MwLLDestroyImpl(MwLL handle) { wl_keyboard_destroy(handle->wayland.keyboard); } + /* sleep long enough that any active attempts to wait for the mutex will have given up and we can safely unlock/destroy it */ + tv.tv_sec = 0; + tv.tv_usec = 250; + do { + select_ret = select(1, NULL, NULL, NULL, &tv); + } while((select_ret == -1) && (errno == EINTR)); + + pthread_mutex_unlock(&handle->wayland.eventsMutex); + pthread_mutex_destroy(&handle->wayland.eventsMutex); + free(handle); } @@ -1465,6 +1535,7 @@ static void MwLLFreeColorImpl(MwLLColor color) { static int MwLLPendingImpl(MwLL handle) { MwBool pending = MwFALSE; struct timespec timeout; + int i; if(handle->wayland.always_render) { return event_loop(handle); From 30a100fd286917663088e94f5a22b839813996ad Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sat, 3 Jan 2026 19:21:03 -0700 Subject: [PATCH 098/836] wayland/opengl: set EGL_DEPTH_SIZE to 24 --- src/widget/opengl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 8e90d39c4..578b8817b 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -131,6 +131,7 @@ static int create(MwWidget handle) { EGL_RED_SIZE, 8, EGL_GREEN_SIZE, 8, EGL_BLUE_SIZE, 8, + EGL_DEPTH_SIZE, 24, EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, EGL_NONE}; EGLint contextAttribs[] = { From 933b5198c73fff6b0813a84bee33258fad64fe1f Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 4 Jan 2026 11:12:57 -0700 Subject: [PATCH 099/836] wayland/vulkan: quickly get that going --- src/widget/vulkan.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index 441bc2731..b78e7429b 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -13,6 +13,9 @@ #ifdef USE_X11 #define VK_USE_PLATFORM_XLIB_KHR 1 #endif +#ifdef USE_WAYLAND +#define VK_USE_PLATFORM_WAYLAND_KHR 1 +#endif #include #include @@ -22,6 +25,9 @@ #ifdef USE_X11 #include #endif +#ifdef USE_WAYLAND +#include +#endif #ifdef HAS_VK_ENUM_STRING_HELPER #include @@ -219,6 +225,20 @@ static MwErrorEnum vulkan_instance_setup(MwWidget handle, vulkan_t* o) { arrput(enabledExtensions, VK_KHR_XLIB_SURFACE_EXTENSION_NAME); } #endif +#ifdef USE_WAYLAND + if(handle->lowlevel->common.type == MwLLBackendWayland) { + MwLL topmost_parent = handle->lowlevel->wayland.parent; + + arrput(enabledExtensions, VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME); + /* take this opprutunity to set the widget to always render */ + topmost_parent->wayland.always_render = MwTRUE; + + while(topmost_parent->wayland.parent != NULL) { + topmost_parent = topmost_parent->wayland.parent; + topmost_parent->wayland.always_render = MwTRUE; + } + } +#endif /* passing null gives us all the extensions provided by the current vulkan implementation */ VK_CMD(_vkEnumerateInstanceExtensionProperties(NULL, &extension_count, NULL)); @@ -313,6 +333,20 @@ static MwErrorEnum vulkan_surface_setup(MwWidget handle, vulkan_t* o) { }; VK_CMD(_vkCreateXlibSurfaceKHR(o->vkInstance, &createInfo, NULL, &o->vkSurface)); } +#endif +#ifdef USE_WAYLAND + if(handle->lowlevel->common.type == MwLLBackendWayland) { + LOAD_VK_FUNCTION(vkCreateWaylandSurfaceKHR); + + VkWaylandSurfaceCreateInfoKHR createInfo = { + .sType = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR, + .pNext = NULL, + .flags = 0, + .display = handle->lowlevel->wayland.display, + .surface = handle->lowlevel->wayland.framebuffer.surface, + }; + VK_CMD(_vkCreateWaylandSurfaceKHR(o->vkInstance, &createInfo, NULL, &o->vkSurface)); + } #endif return MwEsuccess; } From 8cdffa12ae8e070fec70560ceed974be0c4f137c Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 4 Jan 2026 11:13:59 -0700 Subject: [PATCH 100/836] wayland/opengl: fix o->egl_window_native warning --- src/widget/opengl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 578b8817b..0dedd7fed 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -174,7 +174,7 @@ static int create(MwWidget handle) { o->egl_window_native = (EGLNativeWindowType)wl_egl_window_create(handle->lowlevel->wayland.framebuffer.surface, handle->lowlevel->wayland.ww, handle->lowlevel->wayland.wh); - if(o->egl_window_native == EGL_NO_SURFACE) { + if(!o->egl_window_native) { printf("ERROR: wl_egl_window_create, EGL_NO_SURFACE\n"); return MwFALSE; } From 12f279e83ac1639e81b12075eff34962f4d9ab45 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 4 Jan 2026 11:40:34 -0700 Subject: [PATCH 101/836] wayland: ensure every event callback uses the mutex --- src/backend/wayland.c | 168 +++++++++++++++++++++++------------------- 1 file changed, 94 insertions(+), 74 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 86cd489bd..5d5dcda6d 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -24,6 +24,21 @@ #include #endif +/* Standard procedure before most event callbacks in Wayland ("most" because the setup ones don't need this). Wait for the Mutex to be freed, if we're deadlocking for longer then a quarter of a second then do nothing with the event. */ +#define WAYLAND_EVENT_OP_START(self) \ + do { \ + struct timespec t; \ + t.tv_sec = 0; \ + t.tv_nsec = 250; \ + if(pthread_mutex_timedlock(&self->wayland.eventsMutex, &t) != 0) { \ + /*printf("deadlock at line %d\n", __LINE__);*/ \ + return; \ + }; \ + } while(0); + +/* Footer for WAYLAND_EVENT_OP_START */ +#define WAYLAND_EVENT_OP_END(self) pthread_mutex_unlock(&self->wayland.eventsMutex); + /* Setup the framebuffer with the saved width/height */ static void framebuffer_setup(struct _MwLLWayland* wayland); /* Destroy the framebuffer */ @@ -41,16 +56,20 @@ static void region_invalidate(MwLL handle); static void new_protocol(void* data, struct wl_registry* registry, MwU32 name, const char* interface, MwU32 version) { - struct _MwLLWayland* wayland = data; + MwLL self = data; - wayland_protocol_callback_table_t* cb = shget(wayland->wl_protocol_setup_map, interface); + WAYLAND_EVENT_OP_START(self); + + wayland_protocol_callback_table_t* cb = shget(self->wayland.wl_protocol_setup_map, interface); if(cb != NULL) { char* inter = malloc(strlen(interface) + 1); strcpy(inter, interface); - shput(wayland->wl_protocol_map, inter, cb->setup(name, data)); + shput(self->wayland.wl_protocol_map, inter, cb->setup(name, data)); } else { /* printf("unknown interface %s\n", interface); */ } + + WAYLAND_EVENT_OP_END(self); }; /* `wl_registry.global_remove` callback */ @@ -107,12 +126,21 @@ static void wl_data_device_enter(void* data, wl_fixed_t x, wl_fixed_t y, struct wl_data_offer* id) { - MwLL self = data; + MwLL self = data; + + WAYLAND_EVENT_OP_START(self); + self->wayland.clipboard_serial = serial; + + WAYLAND_EVENT_OP_END(self); }; static void wl_data_device_leave(void* data, struct wl_data_device* wl_data_device) { + MwLL self = data; + + WAYLAND_EVENT_OP_START(self); wl_data_device_destroy(wl_data_device); + WAYLAND_EVENT_OP_END(self); }; static void wl_data_device_motion(void* data, struct wl_data_device* wl_data_device, @@ -213,12 +241,15 @@ static void wl_data_source_listener_send(void* data, const char* mime_type, int32_t fd) { MwLL self = data; + + WAYLAND_EVENT_OP_START(self); if(self->wayland.clipboard_buffer != NULL) { write(fd, self->wayland.clipboard_buffer, strlen(self->wayland.clipboard_buffer)); close(fd); self->wayland.events_pending = 1; } + WAYLAND_EVENT_OP_END(self); }; static void wl_data_source_listener_cancelled(void* data, struct wl_data_source* wl_data_source); @@ -233,6 +264,8 @@ static void wl_data_source_listener_cancelled(void* data, struct wl_data_source* wl_data_source) { MwLL self = data; + WAYLAND_EVENT_OP_START(self); + wl_data_source_destroy(wl_data_source); self->wayland.clipboard_source.wl = wl_data_device_manager_create_data_source(self->wayland.clipboard_manager.wl); @@ -244,6 +277,8 @@ static void wl_data_source_listener_cancelled(void* data, wl_data_source_offer(self->wayland.clipboard_source.wl, "UTF8_STRING"); wl_data_source_add_listener(self->wayland.clipboard_source.wl, &wl_data_source_listener, self); + + WAYLAND_EVENT_OP_END(self); }; static void zwp_primary_selection_source_v1_send(void* data, @@ -251,17 +286,24 @@ static void zwp_primary_selection_source_v1_send(void* data, const char* mime_type, int32_t fd) { MwLL self = data; + + WAYLAND_EVENT_OP_START(self); + if(self->wayland.clipboard_buffer != NULL) { write(fd, self->wayland.clipboard_buffer, strlen(self->wayland.clipboard_buffer)); close(fd); self->wayland.events_pending = 1; } + + WAYLAND_EVENT_OP_END(self); }; static void zwp_primary_selection_source_v1_cancelled(void* data, struct zwp_primary_selection_source_v1* wl_data_source) { MwLL self = data; + WAYLAND_EVENT_OP_START(self); + zwp_primary_selection_source_v1_destroy(self->wayland.clipboard_source.zwp); self->wayland.clipboard_source.zwp = zwp_primary_selection_device_manager_v1_create_source(self->wayland.clipboard_manager.zwp); @@ -271,6 +313,8 @@ static void zwp_primary_selection_source_v1_cancelled(void* data, zwp_primary_selection_source_v1_offer(self->wayland.clipboard_source.zwp, "TEXT"); zwp_primary_selection_source_v1_offer(self->wayland.clipboard_source.zwp, "STRING"); zwp_primary_selection_source_v1_offer(self->wayland.clipboard_source.zwp, "UTF8_STRING"); + + WAYLAND_EVENT_OP_END(self); }; struct zwp_primary_selection_source_v1_listener zwp_primary_selection_source_v1_listener = { @@ -327,31 +371,22 @@ static wayland_protocol_t* zwp_primary_selection_device_manager_v1_setup(MwU32 n } static void zwp_primary_selection_device_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - return; - zwp_primary_selection_device_manager_v1_destroy(wayland->clipboard_manager.zwp); - - zwp_primary_selection_source_v1_destroy(wayland->clipboard_source.zwp); - - free(data->listener); } /* `wl_pointer.enter` callback */ static void pointer_enter(void* data, struct wl_pointer* wl_pointer, MwU32 serial, struct wl_surface* surface, wl_fixed_t surface_x, wl_fixed_t surface_y) { - MwLL self = data; - struct timespec t; - t.tv_nsec = 100; + MwLL self = data; + + WAYLAND_EVENT_OP_START(self); - if(pthread_mutex_timedlock(&self->wayland.eventsMutex, &t) != 0) { - return; - }; self->wayland.pointer_serial = serial; wl_pointer_set_cursor(wl_pointer, serial, self->wayland.cursor.surface, 0, 0); - pthread_mutex_unlock(&self->wayland.eventsMutex); + WAYLAND_EVENT_OP_END(self); }; /* `wl_pointer.leave` callback */ @@ -365,12 +400,8 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time MwLL self = data; MwLLMouse p; - struct timespec t; - t.tv_nsec = 100; + WAYLAND_EVENT_OP_START(self); - if(pthread_mutex_timedlock(&self->wayland.eventsMutex, &t) != 0) { - return; - }; self->wayland.cur_mouse_pos.x = wl_fixed_to_double(surface_x); self->wayland.cur_mouse_pos.y = wl_fixed_to_double(surface_y); @@ -378,21 +409,18 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time MwLLDispatch(self, move, &p); self->wayland.events_pending += 1; - pthread_mutex_unlock(&self->wayland.eventsMutex); + + WAYLAND_EVENT_OP_END(self); /*timed_redraw(self, time, 50, &self->wayland.cooldown_timer);*/ }; /* `wl_pointer.button` callback */ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 serial, MwU32 time, MwU32 button, MwU32 state) { - MwLL self = data; - MwLLMouse p; - struct timespec t; - t.tv_nsec = 100; + MwLL self = data; + MwLLMouse p; - if(pthread_mutex_timedlock(&self->wayland.eventsMutex, &t) != 0) { - return; - }; + WAYLAND_EVENT_OP_START(self); p.point = self->wayland.cur_mouse_pos; if(p.point.x > self->wayland.x && p.point.x < self->wayland.x + self->wayland.ww && p.point.y > self->wayland.y && p.point.y < self->wayland.y + self->wayland.wh) { @@ -425,7 +453,8 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri MwLLDispatch(self, draw, NULL); self->wayland.events_pending += 1; } - pthread_mutex_unlock(&self->wayland.eventsMutex); + + WAYLAND_EVENT_OP_END(self); }; /* `wl_pointer.axis` callback */ @@ -447,6 +476,7 @@ static void keyboard_keymap(void* data, int32_t fd, MwU32 size) { MwLL self = data; + if(self->wayland.type == MWLL_WAYLAND_TOPLEVEL) { struct _MwLLWaylandTopLevel* wayland = self->wayland.toplevel; assert(format == WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1); @@ -473,19 +503,16 @@ static void keyboard_enter(void* data, MwU32 serial, struct wl_surface* surface, struct wl_array* keys) { - MwLL self = data; - struct timespec t; - t.tv_nsec = 100; + MwLL self = data; - if(pthread_mutex_timedlock(&self->wayland.eventsMutex, &t) != 0) { - return; - }; + WAYLAND_EVENT_OP_START(self); self->wayland.keyboard_serial = serial; MwLLDispatch(self, focus_in, NULL); self->wayland.events_pending += 1; - pthread_mutex_unlock(&self->wayland.eventsMutex); + + WAYLAND_EVENT_OP_END(self); }; /* `wl_keyboard.leave` callback */ @@ -493,18 +520,14 @@ static void keyboard_leave(void* data, struct wl_keyboard* wl_keyboard, MwU32 serial, struct wl_surface* surface) { - MwLL self = data; - struct timespec t; - t.tv_nsec = 100; + MwLL self = data; - if(pthread_mutex_timedlock(&self->wayland.eventsMutex, &t) != 0) { - return; - }; + WAYLAND_EVENT_OP_START(self); MwLLDispatch(self, focus_out, NULL); self->wayland.events_pending += 1; - pthread_mutex_unlock(&self->wayland.eventsMutex); + WAYLAND_EVENT_OP_END(self); }; /* `wl_keyboard.key` callback */ @@ -514,13 +537,10 @@ static void keyboard_key(void* data, MwU32 time, MwU32 key, MwU32 state) { - MwLL self = data; - struct timespec t; - t.tv_nsec = 100; + MwLL self = data; + + WAYLAND_EVENT_OP_START(self); - if(pthread_mutex_timedlock(&self->wayland.eventsMutex, &t) != 0) { - return; - }; if(self->wayland.type == MWLL_WAYLAND_TOPLEVEL) { struct _MwLLWaylandTopLevel* wayland = self->wayland.toplevel; xkb_layout_index_t layout; @@ -611,7 +631,7 @@ static void keyboard_key(void* data, self->wayland.events_pending += 1; } - pthread_mutex_unlock(&self->wayland.eventsMutex); + WAYLAND_EVENT_OP_END(self); }; /* `wl_keyboard.modifiers` callback */ @@ -622,19 +642,15 @@ static void keyboard_modifiers(void* data, MwU32 mods_latched, MwU32 mods_locked, MwU32 group) { - MwLL self = data; - struct timespec t; - t.tv_nsec = 100; + MwLL self = data; - if(pthread_mutex_timedlock(&self->wayland.eventsMutex, &t) != 0) { - return; - }; + WAYLAND_EVENT_OP_START(self); self->wayland.mod_state = 0; self->wayland.mod_state |= mods_depressed; self->wayland.mod_state |= mods_locked; - pthread_mutex_unlock(&self->wayland.eventsMutex); + WAYLAND_EVENT_OP_END(self); }; struct wl_keyboard_listener keyboard_listener = { @@ -655,6 +671,8 @@ static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat, MwLL self = data; wl_clipboard_device_context_t* device_ctx = malloc(sizeof(wl_clipboard_device_context_t)); + WAYLAND_EVENT_OP_START(self); + if(capabilities & WL_SEAT_CAPABILITY_KEYBOARD) { self->wayland.keyboard = wl_seat_get_keyboard(wl_seat); wl_keyboard_add_listener(self->wayland.keyboard, &keyboard_listener, data); @@ -682,6 +700,8 @@ static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat, arrpush(self->wayland.clipboard_devices, device_ctx); } + + WAYLAND_EVENT_OP_END(self); }; static void output_geometry(void* data, @@ -849,13 +869,6 @@ static void xdg_toplevel_configure(void* data, MwLLForceRender(self); - /*if(!self->wayland.egl_setup) { - self->wayland.egl_setup = egl_setup(self, self->wayland.x, self->wayland.y, width, height); - } else { - wl_egl_window_resize(self->wayland.egl_window_native, width, height, 0, 0); - egl_resetup(self); - }*/ - return; }; @@ -869,7 +882,9 @@ static void decoration_configure( static void xdg_toplevel_close( void* data, struct xdg_toplevel* xdg_toplevel) { MwLL self = data; + WAYLAND_EVENT_OP_START(self); MwLLDispatch(self, close, NULL); + WAYLAND_EVENT_OP_END(self); }; /* `xdg_surface.configure` callback */ @@ -1279,9 +1294,7 @@ static void setup_popup(MwLL r) { xdg_positioner_set_size(r->wayland.popup->xdg_positioner, r->wayland.ww, r->wayland.wh); xdg_positioner_set_anchor_rect( - r->wayland.popup->xdg_positioner, - topmost_parent->wayland.cur_mouse_pos.x, - topmost_parent->wayland.cur_mouse_pos.y, + r->wayland.popup->xdg_positioner, 0, 0, 1, 1); xdg_surface = topmost_parent->wayland.toplevel->xdg_surface; @@ -1361,11 +1374,18 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { } static void MwLLDestroyImpl(MwLL handle) { - int i; - struct timeval tv; - int select_ret; + int i; + struct timeval tv; + struct timespec t = { + .tv_sec = 0, + .tv_nsec = 100, + }; + int select_ret; - pthread_mutex_lock(&handle->wayland.eventsMutex); + if(pthread_mutex_timedlock(&handle->wayland.eventsMutex, &t) != 0) { + printf("WARNING: Couldn't call MwLLDestroyImpl due to deadlock.\n"); + return; + }; MwLLDestroyCommon(handle); @@ -1411,7 +1431,7 @@ static void MwLLDestroyImpl(MwLL handle) { /* sleep long enough that any active attempts to wait for the mutex will have given up and we can safely unlock/destroy it */ tv.tv_sec = 0; - tv.tv_usec = 250; + tv.tv_usec = 500; do { select_ret = select(1, NULL, NULL, NULL, &tv); } while((select_ret == -1) && (errno == EINTR)); From d784770ca9340c39aa2e1a27dc7b9a47fd3c462b Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 4 Jan 2026 13:01:44 -0700 Subject: [PATCH 102/836] wayland: popup positioning --- include/Mw/LowLevel/Wayland.h | 2 +- src/backend/wayland.c | 27 ++++++++++++++++++--------- src/widget/submenu.c | 1 + 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 1e8e1e130..cd9642484 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -74,7 +74,7 @@ struct _MwLLWaylandPopup { struct xdg_positioner* xdg_positioner; struct xdg_surface_listener xdg_surface_listener; struct xdg_wm_base* xdg_wm_base; - MwLL parent; + MwLL topmost_parent; }; /* Shared set of anything needed for a shm buffer. */ diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 5d5dcda6d..f6532fa41 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1263,12 +1263,14 @@ struct xdg_popup_listener popup_listener = { }; /* Popup setup function */ -static void setup_popup(MwLL r) { +static void setup_popup(MwLL r, int x, int y) { int i; struct xdg_surface* xdg_surface; MwLL topmost_parent = r->wayland.parent; r->wayland.type = MWLL_WAYLAND_POPUP; + r->wayland.x = x; + r->wayland.y = y; while(topmost_parent->wayland.type != MWLL_WAYLAND_TOPLEVEL) { topmost_parent = topmost_parent->wayland.parent; @@ -1276,6 +1278,7 @@ static void setup_popup(MwLL r) { r->wayland.popup = malloc(sizeof(struct _MwLLWaylandPopup)); memset(r->wayland.popup, 0, sizeof(struct _MwLLWaylandPopup)); + r->wayland.popup->topmost_parent = topmost_parent; setup_callbacks(&r->wayland); @@ -1288,14 +1291,16 @@ static void setup_popup(MwLL r) { return; } - r->wayland.popup->xdg_wm_base = WAYLAND_GET_INTERFACE(r->wayland, xdg_wm_base)->context; + r->wayland.popup->xdg_wm_base = WAYLAND_GET_INTERFACE(topmost_parent->wayland, xdg_wm_base)->context; r->wayland.popup->xdg_positioner = xdg_wm_base_create_positioner(r->wayland.popup->xdg_wm_base); xdg_positioner_set_size(r->wayland.popup->xdg_positioner, r->wayland.ww, r->wayland.wh); + xdg_positioner_set_anchor(r->wayland.popup->xdg_positioner, XDG_POSITIONER_ANCHOR_NONE); xdg_positioner_set_anchor_rect( - r->wayland.popup->xdg_positioner, 0, 0, - 1, 1); + r->wayland.popup->xdg_positioner, 0, 0, 1, 1); + printf("%d, %d\n", x, y); + xdg_positioner_set_offset(r->wayland.popup->xdg_positioner, x, y); xdg_surface = topmost_parent->wayland.toplevel->xdg_surface; @@ -1450,13 +1455,17 @@ static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsign } static void MwLLSetXYImpl(MwLL handle, int x, int y) { + region_invalidate(handle); + handle->wayland.x = x; + handle->wayland.y = y; if(handle->wayland.type == MWLL_WAYLAND_SUBLEVEL) { - region_invalidate(handle); - handle->wayland.x = x; - handle->wayland.y = y; wl_subsurface_set_position(handle->wayland.sublevel->subsurface, x, y); - region_setup(handle); } + if(handle->wayland.type == MWLL_WAYLAND_POPUP) { + destroy_popup(handle); + setup_popup(handle, x, y); + } + region_setup(handle); MwLLDispatch(handle, draw, NULL); } @@ -1761,7 +1770,7 @@ static void MwLLDetachImpl(MwLL handle, MwPoint* point) { switch(handle->wayland.type_to_be) { case MWLL_WAYLAND_POPUP: - setup_popup(handle); + setup_popup(handle, point->x, point->y); return; default: setup_toplevel(handle, point->x, point->y); diff --git a/src/widget/submenu.c b/src/widget/submenu.c index 59673e3e7..54ee8ea8e 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -188,6 +188,7 @@ static void mwSubMenuAppearImpl(MwWidget handle, MwMenu menu, MwPoint* point, in MwNy, rc.height - sz.height, NULL); } + MwLLEndStateChange(handle->lowlevel); MwVaApply(handle, From 54cdd8501574eb8ec5e1b39a15fabde53e728a17 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 4 Jan 2026 13:06:36 -0700 Subject: [PATCH 103/836] coords --- include/Mw/Core.h | 5 +++++ include/Mw/LowLevel.h | 1 + include/Mw/TypeDefs.h | 6 ++++++ src/backend/wayland.c | 4 ++++ src/core.c | 8 ++++++++ src/widget/submenu.c | 16 ++++++++++++---- 6 files changed, 36 insertions(+), 4 deletions(-) diff --git a/include/Mw/Core.h b/include/Mw/Core.h index e714a32ed..cd7cabd19 100644 --- a/include/Mw/Core.h +++ b/include/Mw/Core.h @@ -354,6 +354,11 @@ MWDECL void MwGetCursorCoord(MwWidget handle, MwPoint* point); */ MWDECL void MwGetScreenSize(MwWidget handle, MwRect* rect); +/*! + * @brief Reports whether a widget reports global or local coordinates upon GetXY/SetXY. Anything with a parent reports local, and most backends report global coordinates being supported for top level windows, but some (Wayland) do not. + */ +MWDECL int MwGetCoordinateType(MwWidget handle); + #ifdef __cplusplus } #endif diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 3c8bdf7b1..c748bf939 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -33,6 +33,7 @@ struct _MwLLCommon { void* user; int copy_buffer; int type; + int coordinate_type; MwLLHandler handler; }; diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index caf388797..6434f5236 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -219,4 +219,10 @@ struct _MwClass { void* reserved4; }; +/* Whether or not GetXY/SetXY works with global or local coordinates */ +enum MwCoordinateType { + MwCoordinatesGlobal = 0, + MwCoordinatesLocal, +}; + #endif diff --git a/src/backend/wayland.c b/src/backend/wayland.c index f6532fa41..68aab8e31 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1344,6 +1344,10 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { memset(r, 0, sizeof(*r)); MwLLCreateCommon(r); + /* Wayland does not report global coordinates ever. Compositors are not even expected to have knowledge of this. + */ + r->common.coordinate_type = MwCoordinatesLocal; + r->common.type = MwLLBackendWayland; if(width < 2) width = 2; diff --git a/src/core.c b/src/core.c index 3d41a3603..d47e3b8af 100644 --- a/src/core.c +++ b/src/core.c @@ -797,3 +797,11 @@ void MwGetCursorCoord(MwWidget handle, MwPoint* point) { void MwGetScreenSize(MwWidget handle, MwRect* rect) { MwLLGetScreenSize(handle->lowlevel, rect); } + +int MwGetCoordinateType(MwWidget handle) { + if(handle->parent == NULL) { + return handle->lowlevel->common.coordinate_type; + } else { + return MwCoordinatesLocal; + } +}; diff --git a/src/widget/submenu.c b/src/widget/submenu.c index 54ee8ea8e..f05c573f4 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -183,10 +183,18 @@ static void mwSubMenuAppearImpl(MwWidget handle, MwMenu menu, MwPoint* point, in MwLLMakeToolWindow(handle->lowlevel); MwLLDetach(handle->lowlevel, &p); - if(MwGetInteger(handle, MwNy) + sz.height > rc.height) { - MwVaApply(handle, - MwNy, rc.height - sz.height, - NULL); + if(handle->lowlevel->common.coordinate_type == MwCoordinatesGlobal) { + if(MwGetInteger(handle, MwNy) + sz.height > rc.height) { + MwVaApply(handle, + MwNy, rc.height - sz.height, + NULL); + } + } else { + if(MwGetInteger(handle, MwNy) > sz.height) { + MwVaApply(handle, + MwNy, sz.height, + NULL); + } } MwLLEndStateChange(handle->lowlevel); From d3751c0bf9f3b3f776fed09e737b8721375a8916 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 4 Jan 2026 18:25:33 -0700 Subject: [PATCH 104/836] submenu: just don't adjust if there's no global coordinates, there's not much of another way --- src/backend/wayland.c | 1 - src/widget/submenu.c | 6 ------ 2 files changed, 7 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 68aab8e31..9169a10bd 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1299,7 +1299,6 @@ static void setup_popup(MwLL r, int x, int y) { xdg_positioner_set_anchor(r->wayland.popup->xdg_positioner, XDG_POSITIONER_ANCHOR_NONE); xdg_positioner_set_anchor_rect( r->wayland.popup->xdg_positioner, 0, 0, 1, 1); - printf("%d, %d\n", x, y); xdg_positioner_set_offset(r->wayland.popup->xdg_positioner, x, y); xdg_surface = topmost_parent->wayland.toplevel->xdg_surface; diff --git a/src/widget/submenu.c b/src/widget/submenu.c index f05c573f4..828155014 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -189,12 +189,6 @@ static void mwSubMenuAppearImpl(MwWidget handle, MwMenu menu, MwPoint* point, in MwNy, rc.height - sz.height, NULL); } - } else { - if(MwGetInteger(handle, MwNy) > sz.height) { - MwVaApply(handle, - MwNy, sz.height, - NULL); - } } MwLLEndStateChange(handle->lowlevel); From e2aecbf9d4a60f12a48b80d688a6d4ec8e1a2291 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 5 Jan 2026 23:27:18 +0900 Subject: [PATCH 105/836] this should be more correct --- src/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core.c b/src/core.c index d47e3b8af..d9a5d6586 100644 --- a/src/core.c +++ b/src/core.c @@ -799,7 +799,7 @@ void MwGetScreenSize(MwWidget handle, MwRect* rect) { } int MwGetCoordinateType(MwWidget handle) { - if(handle->parent == NULL) { + if(handle->parent == NULL || handle->parent->lowlevel == NULL) { return handle->lowlevel->common.coordinate_type; } else { return MwCoordinatesLocal; From 85df90ceafd2ee91b75a8fe88b146d63fb3fb4f5 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 6 Jan 2026 00:54:00 +0900 Subject: [PATCH 106/836] what did i even change? --- Makefile.pl | 2 +- src/backend/x11.c | 3 +++ src/core.c | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Makefile.pl b/Makefile.pl index ea9f90cb5..b244aa11a 100755 --- a/Makefile.pl +++ b/Makefile.pl @@ -226,7 +226,7 @@ foreach my $l (@library_targets) { } print(OUT "${l}: ${s}\n"); - print(OUT " \$(CC) $warn \$(CFLAGS\) \$\(INCDIR) -c -o ${l} ${s}\n"); + print(OUT " \$(CC) $warn \$\(INCDIR) \$(CFLAGS\) -c -o ${l} ${s}\n"); } print(OUT "\n"); print(OUT "\n"); diff --git a/src/backend/x11.c b/src/backend/x11.c index 8ece5d8e8..ce6dae0e1 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -159,6 +159,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->x11.toplevel = 0; } r->x11.window = XCreateSimpleWindow(r->x11.display, p, px, py, width, height, 0, 0, WhitePixel(r->x11.display, DefaultScreen(r->x11.display))); + sh.flags = PWinGravity; sh.win_gravity = StaticGravity; XSetWMNormalHints(r->x11.display, r->x11.window, &sh); @@ -412,6 +413,7 @@ static void MwLLFreeColorImpl(MwLLColor color) { static int MwLLPendingImpl(MwLL handle) { XEvent ev; + if(XCheckTypedWindowEvent(handle->x11.display, handle->x11.window, ClientMessage, &ev) || XCheckWindowEvent(handle->x11.display, handle->x11.window, mask, &ev)) { XPutBackEvent(handle->x11.display, &ev); return 1; @@ -421,6 +423,7 @@ static int MwLLPendingImpl(MwLL handle) { static void MwLLNextEventImpl(MwLL handle) { XEvent ev; + while(XCheckTypedWindowEvent(handle->x11.display, handle->x11.window, ClientMessage, &ev) || XCheckWindowEvent(handle->x11.display, handle->x11.window, mask, &ev)) { int render = 0; if(ev.type == Expose) { diff --git a/src/core.c b/src/core.c index d9a5d6586..52a8f23e6 100644 --- a/src/core.c +++ b/src/core.c @@ -121,6 +121,7 @@ MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, h->parent = parent; h->children = NULL; + if(widget_class != NULL) { if((h->lowlevel = MwLLCreate(parent == NULL ? NULL : parent->lowlevel, x, y, width, height)) == NULL) { free(h->name); From 1f1318d0e1afa560e889ba695f6fc0f56bc30664 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 7 Jan 2026 12:30:18 -0700 Subject: [PATCH 107/836] cmake: allow shared or static building --- CMakeLists.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index ca3c76509..37e23d98f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,6 +16,8 @@ option(BUILD_EXAMPLES "Build examples" OFF) option(USE_STB_IMAGE "Use stb_image" ON) option(USE_STB_TRUETYPE "Use stb_truetype" OFF) option(USE_FREETYPE2 "Use FreeType 2" ON) +option(BUILD_SHARED "Build a shared library" ON) +option(BUILD_STATIC "Build a static library" OFF) file( GLOB @@ -61,11 +63,22 @@ if(TRY_OPENGL) endif() endif() +if(BUILD_STATIC) +message(STATUS "Building Milsko as a static library") +add_library( + Mw + ${SOURCES} +) +elseif(BUILD_SHARED) +message(STATUS "Building Milsko as a shared library") add_library( Mw SHARED ${SOURCES} ) +else() +message(ERROR "Must either build a shared library or a static library") +endif() if(USE_STB_IMAGE) target_compile_definitions( From debdaf998e0b5edfe42214934d8fcf4dfea3e7bd Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 9 Jan 2026 03:06:14 +0900 Subject: [PATCH 108/836] add MW_OPENGL_NO_INCLUDE --- include/Mw/Widget/OpenGL.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/Mw/Widget/OpenGL.h b/include/Mw/Widget/OpenGL.h index 3a063035a..26f44abf5 100644 --- a/include/Mw/Widget/OpenGL.h +++ b/include/Mw/Widget/OpenGL.h @@ -9,7 +9,7 @@ #include #include -#ifndef __gl_h_ +#if !defined(MW_OPENGL_NO_INCLUDE) && !defined(__gl_h_) #ifdef _WIN32 #include #else From 079cfa18b9d8dae98cb472c3a72768dfbb36933f Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 9 Jan 2026 07:25:05 +0900 Subject: [PATCH 109/836] fix english --- Makefile.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.pl b/Makefile.pl index b244aa11a..454fd791e 100755 --- a/Makefile.pl +++ b/Makefile.pl @@ -48,7 +48,7 @@ param_set("static", 1); my %features = ( "classic-theme" => "use classic theme", - "stb-image" => "use stb_image instead of libjpeg/libpng", + "stb-image" => "use stb_image, instead use libjpeg/libpng", "stb-truetype" => "use stb_truetype", "freetype2" => "use FreeType2", "xrender" => "use XRender", From 2d3bd9213ed5e4f57b1da8396eb453546e1c3bf1 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Fri, 9 Jan 2026 14:43:44 -0700 Subject: [PATCH 110/836] appkit --- .gitignore | 1 + Makefile.pl | 65 +++++++---- include/Mw/LowLevel.h | 13 +++ include/Mw/LowLevel/AppKit.h | 27 +++++ include/Mw/MachDep.h | 7 +- pl/ostype/Darwin.pl | 8 ++ pl/ostype/Linux.pl | 2 +- pl/rules.pl | 7 ++ pl/utils.pl | 6 +- src/abstract/dynamic.c | 2 +- src/abstract/time.c | 32 +++++- src/backend/appkit.m | 214 +++++++++++++++++++++++++++++++++++ src/lowlevel.c | 87 ++++++++------ 13 files changed, 402 insertions(+), 69 deletions(-) create mode 100644 include/Mw/LowLevel/AppKit.h create mode 100644 pl/ostype/Darwin.pl create mode 100644 src/backend/appkit.m diff --git a/.gitignore b/.gitignore index 2ebdbc2a8..9b18b9c39 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ examples/*/*.exe *.so *.dll *.lib +*.dylib *.a /Makefile /build diff --git a/Makefile.pl b/Makefile.pl index 454fd791e..cf5c55438 100755 --- a/Makefile.pl +++ b/Makefile.pl @@ -18,7 +18,7 @@ our $cflags = "-fPIC -D_MILSKO"; our $libdir = ""; our $ldflags = ""; our $math = "-lm"; -our $shared = "-shared"; +our @shared = "-shared"; our @backends = (); our $library_prefix = "lib"; @@ -45,6 +45,7 @@ param_set("vulkan", 0); param_set("vulkan-string-helper", 1); param_set("shared", 1); param_set("static", 1); +param_set("examples", 1); my %features = ( "classic-theme" => "use classic theme", @@ -166,7 +167,7 @@ print(OUT "LIBDIR = ${libdir}\n"); print(OUT "LDFLAGS = ${ldflags}\n"); print(OUT "LIBS = ${math} ${libs}\n"); print(OUT "MATH = ${math}\n"); -print(OUT "SHARED = ${shared}\n"); +print(OUT "SHARED = @{shared}\n"); print(OUT "\n"); print(OUT ".PHONY: all format clean distclean lib examples install\n"); print(OUT "\n"); @@ -219,7 +220,13 @@ foreach my $l (@library_targets) { my $s = $l; my $o = $object_suffix; $o =~ s/\./\\\./g; - $s =~ s/$o$/.c/; + + if ($l =~ /appkit/) { + $s =~ s/$o$/.m/; + + } else { + $s =~ s/$o$/.c/; + } if ($l =~ /^external\//) { $warn = ""; @@ -230,34 +237,42 @@ foreach my $l (@library_targets) { } print(OUT "\n"); print(OUT "\n"); -print(OUT "examples: " . join(" ", @examples_targets) . "\n"); -print(OUT "\n"); -foreach my $l (@examples_targets) { - my $libs = ""; - my $s = $l; - my $o = $executable_suffix; - $o =~ s/\./\\\./g; - $s =~ s/$o$//; +if(param_get("examples")) { + print(OUT "examples: " . join(" ", @examples_targets) . "\n"); + print(OUT "\n"); + foreach my $l (@examples_targets) { + my $libs = ""; + my $s = $l; + my $o = $executable_suffix; + $o =~ s/\./\\\./g; + $s =~ s/$o$//; - if (defined($examples_libs{$l})) { - $libs = $examples_libs{$l}; - } + if (defined($examples_libs{$l})) { + $libs = $examples_libs{$l}; + } - print(OUT -"${l}: ${s}${object_suffix} src/${library_prefix}Mw${library_suffix}\n" - ); - print(OUT -" \$(CC) -L src -Wl,-R./src \$\(LIBDIR) -o ${l} ${s}${object_suffix} -lMw ${math} ${libs}\n" - ); - print(OUT "${s}${object_suffix}: ${s}.c\n"); - print(OUT - " \$(CC) -c \$\(INCDIR) -o ${s}${object_suffix} ${s}.c -lMw ${math}\n" - ); + print(OUT + "${l}: ${s}${object_suffix} src/${library_prefix}Mw${library_suffix}\n" + ); + if (grep(/^appkit$/, @backends)) { + print(OUT + " \$(CC) -L./src \$\(LIBDIR) -o ${l} ${s}${object_suffix} -lMw ${math} ${libs}\n" + ); + } else { + print(OUT + " \$(CC) -L src -Wl,-R./src \$\(LIBDIR) -o ${l} ${s}${object_suffix} -lMw ${math} ${libs}\n" + ); + } + print(OUT "${s}${object_suffix}: ${s}.c\n"); + print(OUT + " \$(CC) -c \$\(INCDIR) -o ${s}${object_suffix} ${s}.c -lMw ${math}\n" + ); + } } print(OUT "\n"); print(OUT "clean:\n"); print(OUT -" rm -f */*.o */*/*.o */*/*/*.o */*.exe */*/*.exe */*/*/*.exe src/*.so src/*.dll src/*.a " +" rm -f */*.o */*/*.o */*/*/*.o */*.exe */*/*.exe */*/*/*.exe src/*.so src/*.dll src/*.dylib src/*.a " . join(" ", @examples_targets) . "\n"); print(OUT "\n"); diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index c748bf939..e3cf6438e 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -27,6 +27,7 @@ enum MwLLBackends { MwLLBackendX11 = 0, MwLLBackendGDI, MwLLBackendWayland, + MwLLBackendAppKit, }; struct _MwLLCommon { @@ -61,6 +62,9 @@ struct _MwLLCommonPixmap { #ifdef USE_WAYLAND #include #endif +#ifdef USE_APPKIT +#include +#endif union _MwLL { struct _MwLLCommon common; @@ -73,6 +77,9 @@ union _MwLL { #ifdef USE_WAYLAND struct _MwLLWayland wayland; #endif +#ifdef USE_APPKIT + struct _MwLLAppKit appkit; +#endif }; union _MwLLColor { @@ -86,6 +93,9 @@ union _MwLLColor { #ifdef USE_WAYLAND struct _MwLLWaylandColor wayland; #endif +#ifdef USE_APPKIT + struct _MwLLAppKitColor appkit; +#endif }; union _MwLLPixmap { @@ -99,6 +109,9 @@ union _MwLLPixmap { #ifdef USE_WAYLAND struct _MwLLWaylandPixmap wayland; #endif +#ifdef USE_APPKIT + struct _MwLLAppKitPixmap appkit; +#endif }; #endif #include diff --git a/include/Mw/LowLevel/AppKit.h b/include/Mw/LowLevel/AppKit.h new file mode 100644 index 000000000..985cf5f38 --- /dev/null +++ b/include/Mw/LowLevel/AppKit.h @@ -0,0 +1,27 @@ +/*! + * @file Mw/LowLevel/AppKit.h + * @brief Work in progress AppKit Backend + * @warning This is used internally. + */ +#ifndef __MW_LOWLEVEL_APPKIT_H__ +#define __MW_LOWLEVEL_APPKIT_H__ + +#include +#include +#include  + +MWDECL int MwLLAppKitCallInit(void); + +struct _MwLLAppKit { + struct _MwLLCommon common; +}; + +struct _MwLLAppKitColor { + struct _MwLLCommonColor common; +}; + +struct _MwLLAppKitPixmap { + struct _MwLLCommonPixmap common; +}; + +#endif diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index 6eb37be7f..1fe154948 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -43,10 +43,15 @@ #include #include #include -#include +#include  #include #endif +#ifdef __APPLE__ +#include +#include +#endif + #ifndef M_PI #define M_PI 3.14159265 #endif diff --git a/pl/ostype/Darwin.pl b/pl/ostype/Darwin.pl new file mode 100644 index 000000000..675bd75c2 --- /dev/null +++ b/pl/ostype/Darwin.pl @@ -0,0 +1,8 @@ +$library_suffix = ".dylib"; +set_shared_flag("-dynamiclib"); + +use_backend("appkit"); + +add_cflags("-DSTBI_NO_THREAD_LOCALS"); + +1; \ No newline at end of file diff --git a/pl/ostype/Linux.pl b/pl/ostype/Linux.pl index 155cd4aaf..b7e074d77 100644 --- a/pl/ostype/Linux.pl +++ b/pl/ostype/Linux.pl @@ -1,4 +1,4 @@ -if (param_get("experimental-wayland")) { +IF (param_get("experimental-wayland")) { use_backend("wayland", "x11"); } else { diff --git a/pl/rules.pl b/pl/rules.pl index f55fce33f..2299e0d97 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -46,6 +46,13 @@ if (grep(/^wayland$/, @backends)) { $gl_libs = "-lGL -lGLU"; } +if (grep(/^appkit$/, @backends)) { + add_cflags("-DUSE_APPKIT"); + new_object("src/backend/appkit.m"); + + $gl_libs = "-lGL -lGLU"; +} + if (param_get("stb-image")) { add_cflags("-DUSE_STB_IMAGE"); } diff --git a/pl/utils.pl b/pl/utils.pl index 971c19626..264e6797f 100644 --- a/pl/utils.pl +++ b/pl/utils.pl @@ -40,10 +40,14 @@ sub new_example { push(@examples_targets, "${_[0]}${executable_suffix}"); } +sub set_shared_flag { + @shared = $_[0]; +} + sub new_object { my @l = glob($_[0]); foreach my $e (@l) { - $e =~ s/\.c$/$object_suffix/; + $e =~ s/\.(c|m)$/$object_suffix/; push(@library_targets, $e); } } diff --git a/src/abstract/dynamic.c b/src/abstract/dynamic.c index 7f56e0f57..79cad83fc 100644 --- a/src/abstract/dynamic.c +++ b/src/abstract/dynamic.c @@ -12,7 +12,7 @@ void* MwDynamicSymbol(void* handle, const char* symbol) { void MwDynamicClose(void* handle) { FreeLibrary(handle); } -#elif defined(__unix__) +#elif defined(__unix__) || defined(__APPLE__) void* MwDynamicOpen(const char* path) { return dlopen(path, RTLD_LOCAL | RTLD_LAZY); } diff --git a/src/abstract/time.c b/src/abstract/time.c index 8c85d580a..97e6fb3bf 100644 --- a/src/abstract/time.c +++ b/src/abstract/time.c @@ -1,23 +1,47 @@ -#include +#include  #if defined(_WIN32) long MwTimeGetTick(void) { - return GetTickCount(); + return GetTickCount(); } void MwTimeSleep(int ms) { Sleep(ms); } +#elif defined(__APPLE__) +long MwTimeGetTick(void) { + struct timespec ts; + long n = 0; + clock_serv_t cclock; + mach_timespec_t mts; + + host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock); + clock_get_time(cclock, &mts); + mach_port_deallocate(mach_task_self(), cclock); + + n += ts.tv_nsec / 1000 / 1000; + n += ts.tv_sec * 1000; + + return n; +} +void MwTimeSleep(int ms) { + struct timespec ts; + + ts.tv_sec = ms / 1000; + ts.tv_nsec = (ms % 1000) * 1000 * 1000; + + nanosleep(&ts, NULL); +} #elif defined(__unix__) long MwTimeGetTick(void) { struct timespec ts; long n = 0; - + clock_gettime(CLOCK_MONOTONIC, &ts); n += ts.tv_nsec / 1000 / 1000; n += ts.tv_sec * 1000; - + return n; } diff --git a/src/backend/appkit.m b/src/backend/appkit.m new file mode 100644 index 000000000..772f33a52 --- /dev/null +++ b/src/backend/appkit.m @@ -0,0 +1,214 @@ +#include  + +#include "../../external/stb_ds.h" + +static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { + MwLL r; + (void)x; + (void)y; + (void)width; + (void)height; + + r = malloc(sizeof(*r)); + + + MwLLCreateCommon(r); + + return r; +} + +static void MwLLDestroyImpl(MwLL handle) { + MwLLDestroyCommon(handle); + + free(handle); +} + +static void MwLLBeginDrawImpl(MwLL handle) { + (void)handle; +} + +static void MwLLEndDrawImpl(MwLL handle) { + (void)handle; +} + +static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { + (void)points; + (void)points_count; + (void)color; +} + +static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { + (void)handle; + (void)points; + (void)color; +} + +static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { + MwLLColor c = malloc(sizeof(*c)); + MwLLColorUpdate(handle, c, r, g, b); + return c; +} + +static void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { + (void)handle; + + c->common.red = r; + c->common.green = g; + c->common.blue = b; +} + +static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h) { + *x = 0; + *y = 0; + *w = 0; + *h = 0; +} + +static void MwLLSetXYImpl(MwLL handle, int x, int y) { + (void)handle; + (void)x; + (void)y; +} + +static void MwLLSetWHImpl(MwLL handle, int w, int h) { + (void)handle; + (void)w; + (void)h; +} + +static void MwLLFreeColorImpl(MwLLColor color) { + free(color); +} + +static int MwLLPendingImpl(MwLL handle) { + (void)handle; + return 0; +} + +static void MwLLNextEventImpl(MwLL handle) { + (void)handle; +} + +static void MwLLSetTitleImpl(MwLL handle, const char* title) { + (void)title; + (void)handle; +} + +static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) { + (void)handle; + + MwLLPixmap r = malloc(sizeof(*r)); + + r->common.raw = malloc(4 * width * height); + memcpy(r->common.raw, data, 4 * width * height); + + r->common.width = width; + r->common.height = height; + + MwLLPixmapUpdate(r); + return r; +} + +static void MwLLPixmapUpdateImpl(MwLLPixmap r) { + (void)r; +} + +static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { + free(pixmap); +} + +static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { + (void)handle; + (void)rect; + (void)pixmap; +} + +static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { + (void)handle; + (void)pixmap; +} + +static void MwLLForceRenderImpl(MwLL handle) { + (void)handle; +} + +static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { + (void)handle; + (void)image; + (void)mask; +} + +static void MwLLDetachImpl(MwLL handle, MwPoint* point) { + (void)handle; + (void)point; +} + +static void MwLLShowImpl(MwLL handle, int show) { + (void)handle; + (void)show; +} + +static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { + (void)handle; + (void)parent; +} + +static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) { + (void)handle; + (void)minx; + (void)miny; + (void)maxx; + (void)maxy; +} + +static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { + (void)handle; + (void)toggle; +} + +static void MwLLFocusImpl(MwLL handle) { + (void)handle; +} + +static void MwLLGrabPointerImpl(MwLL handle, int toggle) { + (void)handle; + (void)toggle; +} + +static void MwLLSetClipboardImpl(MwLL handle, const char* text) { + (void)handle; + (void)text; +} + +static void MwLLGetClipboardImpl(MwLL handle) { + (void)handle; +} + +static void MwLLMakeToolWindowImpl(MwLL handle) { + (void)handle; +} + +static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { + (void)handle; + (void)point; +} + +static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { + (void)handle; + (void)rect; +} + +static void MwLLBeginStateChangeImpl(MwLL handle) { + MwLLShow(handle, 0); +} + +static void MwLLEndStateChangeImpl(MwLL handle) { + MwLLShow(handle, 1); +} + +static int AppKit(void) { + return 0; +} + +#include "call.c" +CALL(AppKit); diff --git a/src/lowlevel.c b/src/lowlevel.c index 30037c876..c3a20c4c0 100644 --- a/src/lowlevel.c +++ b/src/lowlevel.c @@ -1,55 +1,70 @@ #include -MwLL (*MwLLCreate)(MwLL parent, int x, int y, int width, int height); -void (*MwLLDestroy)(MwLL handle); +/* Older GCC doesn't like this part of the code because of common sections. + What are common sections? This question is so obscure and unknown + that newer GCC actually compiles with -fno-common by default because + not enough people ever figured this out. But when compiling under + older Mac OS X. specifically the gcc that comes with tigerbrew (this + has not yet been tried under XCode 10.5), this comes up. Furthermore, + adding -fno-common to either the cflags or ldflags doesn't seem to fix this. + But what does fix it is using GNU attributes. So...yeah, sure, we'll just do + this.*/ +#ifdef __APPLE__ +#define NOCOMMON __attribute__((nocommon)) +#else +#define NOCOMMON +#endif -void (*MwLLPolygon)(MwLL handle, MwPoint* points, int points_count, MwLLColor color); -void (*MwLLLine)(MwLL handle, MwPoint* points, MwLLColor color); +NOCOMMON MwLL (*MwLLCreate)(MwLL parent, int x, int y, int width, int height); +NOCOMMON void (*MwLLDestroy)(MwLL handle); -void (*MwLLBeginDraw)(MwLL handle); -void (*MwLLEndDraw)(MwLL handle); +NOCOMMON void (*MwLLPolygon)(MwLL handle, MwPoint* points, int points_count, MwLLColor color); +NOCOMMON void (*MwLLLine)(MwLL handle, MwPoint* points, MwLLColor color); -MwLLColor (*MwLLAllocColor)(MwLL handle, int r, int g, int b); -void (*MwLLColorUpdate)(MwLL handle, MwLLColor c, int r, int g, int b); -void (*MwLLFreeColor)(MwLLColor color); +NOCOMMON void (*MwLLBeginDraw)(MwLL handle); +NOCOMMON void (*MwLLEndDraw)(MwLL handle); -void (*MwLLGetXYWH)(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h); -void (*MwLLSetXY)(MwLL handle, int x, int y); -void (*MwLLSetWH)(MwLL handle, int w, int h); +NOCOMMON MwLLColor (*MwLLAllocColor)(MwLL handle, int r, int g, int b); +NOCOMMON void (*MwLLColorUpdate)(MwLL handle, MwLLColor c, int r, int g, int b); +NOCOMMON void (*MwLLFreeColor)(MwLLColor color); -void (*MwLLSetTitle)(MwLL handle, const char* title); +NOCOMMON void (*MwLLGetXYWH)(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h); +NOCOMMON void (*MwLLSetXY)(MwLL handle, int x, int y); +NOCOMMON void (*MwLLSetWH)(MwLL handle, int w, int h); -int (*MwLLPending)(MwLL handle); -void (*MwLLNextEvent)(MwLL handle); +NOCOMMON void (*MwLLSetTitle)(MwLL handle, const char* title); -MwLLPixmap (*MwLLCreatePixmap)(MwLL handle, unsigned char* data, int width, int height); -void (*MwLLPixmapUpdate)(MwLLPixmap pixmap); -void (*MwLLDestroyPixmap)(MwLLPixmap pixmap); -void (*MwLLDrawPixmap)(MwLL handle, MwRect* rect, MwLLPixmap pixmap); -void (*MwLLSetIcon)(MwLL handle, MwLLPixmap pixmap); +NOCOMMON int (*MwLLPending)(MwLL handle); +NOCOMMON void (*MwLLNextEvent)(MwLL handle); -void (*MwLLForceRender)(MwLL handle); +NOCOMMON MwLLPixmap (*MwLLCreatePixmap)(MwLL handle, unsigned char* data, int width, int height); +NOCOMMON void (*MwLLPixmapUpdate)(MwLLPixmap pixmap); +NOCOMMON void (*MwLLDestroyPixmap)(MwLLPixmap pixmap); +NOCOMMON void (*MwLLDrawPixmap)(MwLL handle, MwRect* rect, MwLLPixmap pixmap); +NOCOMMON void (*MwLLSetIcon)(MwLL handle, MwLLPixmap pixmap); -void (*MwLLSetCursor)(MwLL handle, MwCursor* image, MwCursor* mask); -void (*MwLLDetach)(MwLL handle, MwPoint* point); -void (*MwLLShow)(MwLL handle, int show); +NOCOMMON void (*MwLLForceRender)(MwLL handle); -void (*MwLLSetSizeHints)(MwLL handle, int minx, int miny, int maxx, int maxy); -void (*MwLLMakeBorderless)(MwLL handle, int toggle); -void (*MwLLMakeToolWindow)(MwLL handle); -void (*MwLLMakePopup)(MwLL handle, MwLL parent); +NOCOMMON void (*MwLLSetCursor)(MwLL handle, MwCursor* image, MwCursor* mask); +NOCOMMON void (*MwLLDetach)(MwLL handle, MwPoint* point); +NOCOMMON void (*MwLLShow)(MwLL handle, int show); -void (*MwLLBeginStateChange)(MwLL handle); -void (*MwLLEndStateChange)(MwLL handle); +NOCOMMON void (*MwLLSetSizeHints)(MwLL handle, int minx, int miny, int maxx, int maxy); +NOCOMMON void (*MwLLMakeBorderless)(MwLL handle, int toggle); +NOCOMMON void (*MwLLMakeToolWindow)(MwLL handle); +NOCOMMON void (*MwLLMakePopup)(MwLL handle, MwLL parent); -void (*MwLLFocus)(MwLL handle); -void (*MwLLGrabPointer)(MwLL handle, int toggle); +NOCOMMON void (*MwLLBeginStateChange)(MwLL handle); +NOCOMMON void (*MwLLEndStateChange)(MwLL handle); -void (*MwLLSetClipboard)(MwLL handle, const char* text); -void (*MwLLGetClipboard)(MwLL handle); +NOCOMMON void (*MwLLFocus)(MwLL handle); +NOCOMMON void (*MwLLGrabPointer)(MwLL handle, int toggle); -void (*MwLLGetCursorCoord)(MwLL handle, MwPoint* point); -void (*MwLLGetScreenSize)(MwLL handle, MwRect* rect); +NOCOMMON void (*MwLLSetClipboard)(MwLL handle, const char* text); +NOCOMMON void (*MwLLGetClipboard)(MwLL handle); + +NOCOMMON void (*MwLLGetCursorCoord)(MwLL handle, MwPoint* point); +NOCOMMON void (*MwLLGetScreenSize)(MwLL handle, MwRect* rect); void MwLLCreateCommon(MwLL handle) { handle->common.handler = malloc(sizeof(*handle->common.handler)); From da33a1a3c6fad279d65135633e183e484bb41bd7 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Fri, 9 Jan 2026 14:45:12 -0700 Subject: [PATCH 111/836] darwin: remove invalid characters --- include/Mw/LowLevel/AppKit.h | 2 +- include/Mw/MachDep.h | 2 +- pl/ostype/Linux.pl | 2 +- src/abstract/time.c | 14 +++++++------- src/backend/appkit.m | 14 +++++++------- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/include/Mw/LowLevel/AppKit.h b/include/Mw/LowLevel/AppKit.h index 985cf5f38..4a6c8e53c 100644 --- a/include/Mw/LowLevel/AppKit.h +++ b/include/Mw/LowLevel/AppKit.h @@ -8,7 +8,7 @@ #include #include -#include  +#include MWDECL int MwLLAppKitCallInit(void); diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index 1fe154948..c8cb06052 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -43,7 +43,7 @@ #include #include #include -#include  +#include #include #endif diff --git a/pl/ostype/Linux.pl b/pl/ostype/Linux.pl index b7e074d77..155cd4aaf 100644 --- a/pl/ostype/Linux.pl +++ b/pl/ostype/Linux.pl @@ -1,4 +1,4 @@ -IF (param_get("experimental-wayland")) { +if (param_get("experimental-wayland")) { use_backend("wayland", "x11"); } else { diff --git a/src/abstract/time.c b/src/abstract/time.c index 97e6fb3bf..2fbc58428 100644 --- a/src/abstract/time.c +++ b/src/abstract/time.c @@ -1,8 +1,8 @@ -#include  +#include #if defined(_WIN32) long MwTimeGetTick(void) { - return GetTickCount(); + return GetTickCount(); } void MwTimeSleep(int ms) { @@ -12,13 +12,13 @@ void MwTimeSleep(int ms) { long MwTimeGetTick(void) { struct timespec ts; long n = 0; - clock_serv_t cclock; + clock_serv_t cclock; mach_timespec_t mts; - + host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock); clock_get_time(cclock, &mts); mach_port_deallocate(mach_task_self(), cclock); - + n += ts.tv_nsec / 1000 / 1000; n += ts.tv_sec * 1000; @@ -36,12 +36,12 @@ void MwTimeSleep(int ms) { long MwTimeGetTick(void) { struct timespec ts; long n = 0; - + clock_gettime(CLOCK_MONOTONIC, &ts); n += ts.tv_nsec / 1000 / 1000; n += ts.tv_sec * 1000; - + return n; } diff --git a/src/backend/appkit.m b/src/backend/appkit.m index 772f33a52..6deea7c75 100644 --- a/src/backend/appkit.m +++ b/src/backend/appkit.m @@ -1,4 +1,4 @@ -#include  +#include #include "../../external/stb_ds.h" @@ -8,9 +8,9 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { (void)y; (void)width; (void)height; - + r = malloc(sizeof(*r)); - + MwLLCreateCommon(r); @@ -19,7 +19,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { static void MwLLDestroyImpl(MwLL handle) { MwLLDestroyCommon(handle); - + free(handle); } @@ -51,7 +51,7 @@ static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { static void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { (void)handle; - + c->common.red = r; c->common.green = g; c->common.blue = b; @@ -96,7 +96,7 @@ static void MwLLSetTitleImpl(MwLL handle, const char* title) { static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) { (void)handle; - + MwLLPixmap r = malloc(sizeof(*r)); r->common.raw = malloc(4 * width * height); @@ -206,7 +206,7 @@ static void MwLLEndStateChangeImpl(MwLL handle) { MwLLShow(handle, 1); } -static int AppKit(void) { +static int MwLLAppKitCallInitImpl(void) { return 0; } From e73964882eea4ade018b4cff81e6a40c6026a96d Mon Sep 17 00:00:00 2001 From: IoIxD Date: Fri, 9 Jan 2026 21:35:23 -0700 Subject: [PATCH 112/836] renamed appkit backend to cocoa and got something that compiles --- Makefile.pl | 9 +- include/Mw/LowLevel.h | 18 +- include/Mw/LowLevel/Cocoa.h | 28 +++ pl/ostype/Darwin.pl | 5 +- pl/rules.pl | 6 +- src/backend/cocoa.m | 364 ++++++++++++++++++++++++++++++++++++ src/core.c | 4 + src/lowlevel.c | 87 ++++----- 8 files changed, 451 insertions(+), 70 deletions(-) create mode 100644 include/Mw/LowLevel/Cocoa.h create mode 100644 src/backend/cocoa.m diff --git a/Makefile.pl b/Makefile.pl index cf5c55438..ded79b02e 100755 --- a/Makefile.pl +++ b/Makefile.pl @@ -220,10 +220,9 @@ foreach my $l (@library_targets) { my $s = $l; my $o = $object_suffix; $o =~ s/\./\\\./g; - - if ($l =~ /appkit/) { + + if ($l =~ /cocoa/) { $s =~ s/$o$/.m/; - } else { $s =~ s/$o$/.c/; } @@ -254,7 +253,7 @@ if(param_get("examples")) { print(OUT "${l}: ${s}${object_suffix} src/${library_prefix}Mw${library_suffix}\n" ); - if (grep(/^appkit$/, @backends)) { + if (grep(/^cocoa$/, @backends)) { print(OUT " \$(CC) -L./src \$\(LIBDIR) -o ${l} ${s}${object_suffix} -lMw ${math} ${libs}\n" ); @@ -262,7 +261,7 @@ if(param_get("examples")) { print(OUT " \$(CC) -L src -Wl,-R./src \$\(LIBDIR) -o ${l} ${s}${object_suffix} -lMw ${math} ${libs}\n" ); - } + } print(OUT "${s}${object_suffix}: ${s}.c\n"); print(OUT " \$(CC) -c \$\(INCDIR) -o ${s}${object_suffix} ${s}.c -lMw ${math}\n" diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index e3cf6438e..96ff8e849 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -27,7 +27,7 @@ enum MwLLBackends { MwLLBackendX11 = 0, MwLLBackendGDI, MwLLBackendWayland, - MwLLBackendAppKit, + MwLLBackendCocoa, }; struct _MwLLCommon { @@ -62,8 +62,8 @@ struct _MwLLCommonPixmap { #ifdef USE_WAYLAND #include #endif -#ifdef USE_APPKIT -#include +#ifdef USE_COCOA +#include #endif union _MwLL { @@ -77,8 +77,8 @@ union _MwLL { #ifdef USE_WAYLAND struct _MwLLWayland wayland; #endif -#ifdef USE_APPKIT - struct _MwLLAppKit appkit; +#ifdef USE_COCOA + struct _MwLLCocoa cocoa; #endif }; @@ -93,8 +93,8 @@ union _MwLLColor { #ifdef USE_WAYLAND struct _MwLLWaylandColor wayland; #endif -#ifdef USE_APPKIT - struct _MwLLAppKitColor appkit; +#ifdef USE_COCOA + struct _MwLLCocoaColor cocoa; #endif }; @@ -109,8 +109,8 @@ union _MwLLPixmap { #ifdef USE_WAYLAND struct _MwLLWaylandPixmap wayland; #endif -#ifdef USE_APPKIT - struct _MwLLAppKitPixmap appkit; +#ifdef USE_COCOA + struct _MwLLCocoaPixmap cocoa; #endif }; #endif diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h new file mode 100644 index 000000000..1ff4c1ef5 --- /dev/null +++ b/include/Mw/LowLevel/Cocoa.h @@ -0,0 +1,28 @@ +/*! + * @file Mw/LowLevel/Cocoa.h + * @brief Work in progress Cocoa Backend + * @warning This is used internally. + */ +#ifndef __MW_LOWLEVEL_COCOA_H__ +#define __MW_LOWLEVEL_COCOA_H__ + +#include +#include +#include + +MWDECL int MwLLCocoaCallInit(void); + +struct _MwLLCocoa { + struct _MwLLCommon common; + void* real; +}; + +struct _MwLLCocoaColor { + struct _MwLLCommonColor common; +}; + +struct _MwLLCocoaPixmap { + struct _MwLLCommonPixmap common; +}; + +#endif diff --git a/pl/ostype/Darwin.pl b/pl/ostype/Darwin.pl index 675bd75c2..72cfe275f 100644 --- a/pl/ostype/Darwin.pl +++ b/pl/ostype/Darwin.pl @@ -1,8 +1,9 @@ $library_suffix = ".dylib"; set_shared_flag("-dynamiclib"); -use_backend("appkit"); +use_backend("cocoa"); add_cflags("-DSTBI_NO_THREAD_LOCALS"); +add_ldflags("-framework Cocoa -lobjc"); -1; \ No newline at end of file +1; diff --git a/pl/rules.pl b/pl/rules.pl index 2299e0d97..73f4c6177 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -46,9 +46,9 @@ if (grep(/^wayland$/, @backends)) { $gl_libs = "-lGL -lGLU"; } -if (grep(/^appkit$/, @backends)) { - add_cflags("-DUSE_APPKIT"); - new_object("src/backend/appkit.m"); +if (grep(/^cocoa$/, @backends)) { + add_cflags("-DUSE_COCOA"); + new_object("src/backend/cocoa.m"); $gl_libs = "-lGL -lGLU"; } diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m new file mode 100644 index 000000000..396016493 --- /dev/null +++ b/src/backend/cocoa.m @@ -0,0 +1,364 @@ +#ifndef USE_COCOA +#define USE_COCOA +#endif + +#import +#include +#import + +#include + +#include "../../external/stb_ds.h" + +@interface MilskoCocoa : NSObject { + NSApplication *application; + NSWindow *window; +} + ++ (MilskoCocoa *)newWithParent:(MwLL)parent + x:(int)x + y:(int)y + width:(int)width + height:(int)height; +- (void)polygonWithPoints:(MwPoint *)points + points_count:(int)points_count + color:(MwLLColor)color; +- (void)lineWithPoints:(MwPoint *)points color:(MwLLColor)color; +- (void)getX:(int *)x Y:(int *)y W:(unsigned int *)w H:(unsigned int *)h; +- (void)setX:(int)x Y:(int)y; +- (void)setW:(int)w H:(int)h; +- (int)pending; +- (void)getNextEvent; +- (void)setTitle:(const char *)title; +- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect *)rect; +- (void)setIcon:(MwLLPixmap)pixmap; +- (void)forceRender; +- (void)setCursor:(MwCursor *)image mask:(MwCursor *)mask; +- (void)detachWithPoint:(MwPoint *)point; +- (void)show:(int)show; +- (void)makePopupWithParent:(MwLL)parent; +- (void)setSizeHintsWithMinX:(int)minx + MinY:(int)miny + MaxX:(int)maxx + MaxY:(int)maxy; +- (void)makeBorderless:(int)toggle; +- (void)focus; +- (void)grabPointer:(int)toggle; +- (void)setClipboard:(const char *)text; +- (void)makeToolWindow; +- (void)getCursorCoord:(MwPoint *)point; +- (void)getScreenSize:(MwRect *)rect; +- (void)destroy; + +@end + +@implementation MilskoCocoa + ++ (MilskoCocoa *)newWithParent:(MwLL)parent + x:(int)x + y:(int)y + width:(int)width + height:(int)height { + MilskoCocoa *c = [MilskoCocoa alloc]; + bool centerX = false, centerY = false; + + if (x == MwDEFAULT) { + x = 0; + centerX = true; + } + if (y == MwDEFAULT) { + y = 0; + centerY = true; + } + c->application = [NSApplication sharedApplication]; + + NSRect rect = NSMakeRect(x, y, width, height); + + c->window = [[[NSWindow alloc] + initWithContentRect:rect + styleMask:parent == NULL + ? (NSTitledWindowMask | NSClosableWindowMask | + NSMiniaturizableWindowMask | + NSResizableWindowMask) + : NSBorderlessWindowMask + backing:NSBackingStoreBuffered + defer:NO] autorelease]; + [c->window makeKeyAndOrderFront:c->application]; + + if (parent != NULL) { + [c->window setBackgroundColor:[NSColor blueColor]]; + + MilskoCocoa *p = parent->cocoa.real; + [p->window addChildWindow:c->window ordered:NSWindowAbove]; + } + + return c; +} +- (void)polygonWithPoints:(MwPoint *)points + points_count:(int)points_count + color:(MwLLColor)color { +}; +- (void)lineWithPoints:(MwPoint *)points color:(MwLLColor)color { +}; +- (void)getX:(int *)x Y:(int *)y W:(unsigned int *)w H:(unsigned int *)h { +}; +- (void)setX:(int)x Y:(int)y { +}; +- (void)setW:(int)w H:(int)h { +}; +- (int)pending { + return 1; +}; +- (void)getNextEvent { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + NSEvent *event = [self->application nextEventMatchingMask:NSAnyEventMask + untilDate:nil + inMode:NSDefaultRunLoopMode + dequeue:YES]; + + if (event != nil) { + printf("got event: %p\n", event); + } + [pool release]; +}; +- (void)setTitle:(const char *)title { +}; +- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect *)rect { +}; +- (void)setIcon:(MwLLPixmap)pixmap { +}; +- (void)forceRender { +}; +- (void)setCursor:(MwCursor *)image mask:(MwCursor *)mask { +}; +- (void)detachWithPoint:(MwPoint *)point { +}; +- (void)show:(int)show { +}; +- (void)makePopupWithParent:(MwLL)parent { +}; +- (void)setSizeHintsWithMinX:(int)minx + MinY:(int)miny + MaxX:(int)maxx + MaxY:(int)maxy { +}; +- (void)makeBorderless:(int)toggle { +}; +- (void)focus { +}; +- (void)grabPointer:(int)toggle { +}; +- (void)setClipboard:(const char *)text { +}; +- (void)getClipboard { +}; +- (void)makeToolWindow { +}; +- (void)getCursorCoord:(MwPoint *)point { +}; +- (void)getScreenSize:(MwRect *)rect { +}; +- (void)destroy { + [self->window dealloc]; +} +@end + +static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { + MwLL r; + (void)x; + (void)y; + (void)width; + (void)height; + + r = malloc(sizeof(*r)); + + MwLLCreateCommon(r); + + MilskoCocoa *o = + [MilskoCocoa newWithParent:parent x:x y:y width:width height:height]; + r->cocoa.real = o; + + return r; +} + +static void MwLLDestroyImpl(MwLL handle) { + MilskoCocoa *h = handle->cocoa.real; + + [h destroy]; + [h dealloc]; + + MwLLDestroyCommon(handle); + + free(handle); +} + +static void MwLLBeginDrawImpl(MwLL handle) { (void)handle; } + +static void MwLLEndDrawImpl(MwLL handle) { (void)handle; } + +static void MwLLPolygonImpl(MwLL handle, MwPoint *points, int points_count, + MwLLColor color) { + MilskoCocoa *h = handle->cocoa.real; + [h polygonWithPoints:points points_count:points_count color:color]; +} + +static void MwLLLineImpl(MwLL handle, MwPoint *points, MwLLColor color) { + MilskoCocoa *h = handle->cocoa.real; + [h lineWithPoints:points color:color]; +} + +static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { + MwLLColor c = malloc(sizeof(*c)); + MwLLColorUpdate(handle, c, r, g, b); + return c; +} + +static void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { + (void)handle; + + c->common.red = r; + c->common.green = g; + c->common.blue = b; +} + +static void MwLLGetXYWHImpl(MwLL handle, int *x, int *y, unsigned int *w, + unsigned int *height) { + MilskoCocoa *h = handle->cocoa.real; + [h getX:x Y:y W:w H:height]; +} + +static void MwLLSetXYImpl(MwLL handle, int x, int y) { + MilskoCocoa *h = handle->cocoa.real; + [h setX:x Y:y]; +} + +static void MwLLSetWHImpl(MwLL handle, int w, int height) { + MilskoCocoa *h = handle->cocoa.real; + [h setW:w H:height]; +} + +static void MwLLFreeColorImpl(MwLLColor color) { free(color); } + +static int MwLLPendingImpl(MwLL handle) { + MilskoCocoa *h = handle->cocoa.real; + return [h pending]; +} + +static void MwLLNextEventImpl(MwLL handle) { + + MilskoCocoa *h = handle->cocoa.real; + [h getNextEvent]; +} + +static void MwLLSetTitleImpl(MwLL handle, const char *title) { + MilskoCocoa *h = handle->cocoa.real; + [h setTitle:title]; +} + +static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char *data, + int width, int height) { + (void)handle; + + MwLLPixmap r = malloc(sizeof(*r)); + + r->common.raw = malloc(4 * width * height); + memcpy(r->common.raw, data, 4 * width * height); + + r->common.width = width; + r->common.height = height; + + MwLLPixmapUpdate(r); + return r; +} + +static void MwLLPixmapUpdateImpl(MwLLPixmap r) { (void)r; } + +static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { free(pixmap); } + +static void MwLLDrawPixmapImpl(MwLL handle, MwRect *rect, MwLLPixmap pixmap) { + MilskoCocoa *h = handle->cocoa.real; + [h drawPixmap:pixmap rect:rect]; +} + +static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { + MilskoCocoa *h = handle->cocoa.real; + [h setIcon:pixmap]; +} + +static void MwLLForceRenderImpl(MwLL handle) { + MilskoCocoa *h = handle->cocoa.real; + [h forceRender]; +} + +static void MwLLSetCursorImpl(MwLL handle, MwCursor *image, MwCursor *mask) { + MilskoCocoa *h = handle->cocoa.real; + [h setCursor:image mask:mask]; +} + +static void MwLLDetachImpl(MwLL handle, MwPoint *point) { + MilskoCocoa *h = handle->cocoa.real; + [h detachWithPoint:point]; +} + +static void MwLLShowImpl(MwLL handle, int show) { + MilskoCocoa *h = handle->cocoa.real; + [h show:show]; +} + +static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { + MilskoCocoa *h = handle->cocoa.real; + [h makePopupWithParent:parent]; +} + +static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, + int maxy) { + MilskoCocoa *h = handle->cocoa.real; + [h setSizeHintsWithMinX:minx MinY:miny MaxX:maxx MaxY:maxy]; +} + +static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { + MilskoCocoa *h = handle->cocoa.real; + [h makeBorderless:toggle]; +} + +static void MwLLFocusImpl(MwLL handle) { + MilskoCocoa *h = handle->cocoa.real; + [h focus]; +} + +static void MwLLGrabPointerImpl(MwLL handle, int toggle) { + MilskoCocoa *h = handle->cocoa.real; + [h grabPointer:toggle]; +} + +static void MwLLSetClipboardImpl(MwLL handle, const char *text) { + MilskoCocoa *h = handle->cocoa.real; + [h setClipboard:text]; +} + +static void MwLLGetClipboardImpl(MwLL handle) { (void)handle; } + +static void MwLLMakeToolWindowImpl(MwLL handle) { + + MilskoCocoa *h = handle->cocoa.real; + [h makeToolWindow]; +} + +static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint *point) { + MilskoCocoa *h = handle->cocoa.real; + [h getCursorCoord:point]; +} + +static void MwLLGetScreenSizeImpl(MwLL handle, MwRect *rect) { + MilskoCocoa *h = handle->cocoa.real; + [h getScreenSize:rect]; +} + +static void MwLLBeginStateChangeImpl(MwLL handle) { MwLLShow(handle, 0); } + +static void MwLLEndStateChangeImpl(MwLL handle) { MwLLShow(handle, 1); } + +static int MwLLCocoaCallInitImpl(void) { return 0; } + +#include "call.c" +CALL(Cocoa); diff --git a/src/core.c b/src/core.c index 52a8f23e6..d8e0c2d02 100644 --- a/src/core.c +++ b/src/core.c @@ -123,6 +123,7 @@ MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, h->children = NULL; if(widget_class != NULL) { + printf("%p\n", MwLLCreate); if((h->lowlevel = MwLLCreate(parent == NULL ? NULL : parent->lowlevel, x, y, width, height)) == NULL) { free(h->name); free(h); @@ -729,6 +730,9 @@ MwWidget MwGetParent(MwWidget handle) { typedef int (*call_t)(void); int MwLibraryInit(void) { call_t calls[] = { +#ifdef USE_COCOA + MwLLCocoaCallInit, +#endif #ifdef USE_WAYLAND MwLLWaylandCallInit, #endif diff --git a/src/lowlevel.c b/src/lowlevel.c index c3a20c4c0..8f8a4d932 100644 --- a/src/lowlevel.c +++ b/src/lowlevel.c @@ -1,70 +1,55 @@ #include -/* Older GCC doesn't like this part of the code because of common sections. - What are common sections? This question is so obscure and unknown - that newer GCC actually compiles with -fno-common by default because - not enough people ever figured this out. But when compiling under - older Mac OS X. specifically the gcc that comes with tigerbrew (this - has not yet been tried under XCode 10.5), this comes up. Furthermore, - adding -fno-common to either the cflags or ldflags doesn't seem to fix this. - But what does fix it is using GNU attributes. So...yeah, sure, we'll just do - this.*/ -#ifdef __APPLE__ -#define NOCOMMON __attribute__((nocommon)) -#else -#define NOCOMMON -#endif +MwLL (*MwLLCreate)(MwLL parent, int x, int y, int width, int height) = NULL; +void (*MwLLDestroy)(MwLL handle) = NULL; -NOCOMMON MwLL (*MwLLCreate)(MwLL parent, int x, int y, int width, int height); -NOCOMMON void (*MwLLDestroy)(MwLL handle); +void (*MwLLPolygon)(MwLL handle, MwPoint* points, int points_count, MwLLColor color) = NULL; +void (*MwLLLine)(MwLL handle, MwPoint* points, MwLLColor color) = NULL; -NOCOMMON void (*MwLLPolygon)(MwLL handle, MwPoint* points, int points_count, MwLLColor color); -NOCOMMON void (*MwLLLine)(MwLL handle, MwPoint* points, MwLLColor color); +void (*MwLLBeginDraw)(MwLL handle) = NULL; +void (*MwLLEndDraw)(MwLL handle) = NULL; -NOCOMMON void (*MwLLBeginDraw)(MwLL handle); -NOCOMMON void (*MwLLEndDraw)(MwLL handle); +MwLLColor (*MwLLAllocColor)(MwLL handle, int r, int g, int b) = NULL; +void (*MwLLColorUpdate)(MwLL handle, MwLLColor c, int r, int g, int b) = NULL; +void (*MwLLFreeColor)(MwLLColor color) = NULL; -NOCOMMON MwLLColor (*MwLLAllocColor)(MwLL handle, int r, int g, int b); -NOCOMMON void (*MwLLColorUpdate)(MwLL handle, MwLLColor c, int r, int g, int b); -NOCOMMON void (*MwLLFreeColor)(MwLLColor color); +void (*MwLLGetXYWH)(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h) = NULL; +void (*MwLLSetXY)(MwLL handle, int x, int y) = NULL; +void (*MwLLSetWH)(MwLL handle, int w, int h) = NULL; -NOCOMMON void (*MwLLGetXYWH)(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h); -NOCOMMON void (*MwLLSetXY)(MwLL handle, int x, int y); -NOCOMMON void (*MwLLSetWH)(MwLL handle, int w, int h); +void (*MwLLSetTitle)(MwLL handle, const char* title) = NULL; -NOCOMMON void (*MwLLSetTitle)(MwLL handle, const char* title); +int (*MwLLPending)(MwLL handle) = NULL; +void (*MwLLNextEvent)(MwLL handle) = NULL; -NOCOMMON int (*MwLLPending)(MwLL handle); -NOCOMMON void (*MwLLNextEvent)(MwLL handle); +MwLLPixmap (*MwLLCreatePixmap)(MwLL handle, unsigned char* data, int width, int height) = NULL; +void (*MwLLPixmapUpdate)(MwLLPixmap pixmap) = NULL; +void (*MwLLDestroyPixmap)(MwLLPixmap pixmap) = NULL; +void (*MwLLDrawPixmap)(MwLL handle, MwRect* rect, MwLLPixmap pixmap) = NULL; +void (*MwLLSetIcon)(MwLL handle, MwLLPixmap pixmap) = NULL; -NOCOMMON MwLLPixmap (*MwLLCreatePixmap)(MwLL handle, unsigned char* data, int width, int height); -NOCOMMON void (*MwLLPixmapUpdate)(MwLLPixmap pixmap); -NOCOMMON void (*MwLLDestroyPixmap)(MwLLPixmap pixmap); -NOCOMMON void (*MwLLDrawPixmap)(MwLL handle, MwRect* rect, MwLLPixmap pixmap); -NOCOMMON void (*MwLLSetIcon)(MwLL handle, MwLLPixmap pixmap); +void (*MwLLForceRender)(MwLL handle) = NULL; -NOCOMMON void (*MwLLForceRender)(MwLL handle); +void (*MwLLSetCursor)(MwLL handle, MwCursor* image, MwCursor* mask) = NULL; +void (*MwLLDetach)(MwLL handle, MwPoint* point) = NULL; +void (*MwLLShow)(MwLL handle, int show) = NULL; -NOCOMMON void (*MwLLSetCursor)(MwLL handle, MwCursor* image, MwCursor* mask); -NOCOMMON void (*MwLLDetach)(MwLL handle, MwPoint* point); -NOCOMMON void (*MwLLShow)(MwLL handle, int show); +void (*MwLLSetSizeHints)(MwLL handle, int minx, int miny, int maxx, int maxy) = NULL; +void (*MwLLMakeBorderless)(MwLL handle, int toggle) = NULL; +void (*MwLLMakeToolWindow)(MwLL handle) = NULL; +void (*MwLLMakePopup)(MwLL handle, MwLL parent) = NULL; -NOCOMMON void (*MwLLSetSizeHints)(MwLL handle, int minx, int miny, int maxx, int maxy); -NOCOMMON void (*MwLLMakeBorderless)(MwLL handle, int toggle); -NOCOMMON void (*MwLLMakeToolWindow)(MwLL handle); -NOCOMMON void (*MwLLMakePopup)(MwLL handle, MwLL parent); +void (*MwLLBeginStateChange)(MwLL handle) = NULL; +void (*MwLLEndStateChange)(MwLL handle) = NULL; -NOCOMMON void (*MwLLBeginStateChange)(MwLL handle); -NOCOMMON void (*MwLLEndStateChange)(MwLL handle); +void (*MwLLFocus)(MwLL handle) = NULL; +void (*MwLLGrabPointer)(MwLL handle, int toggle) = NULL; -NOCOMMON void (*MwLLFocus)(MwLL handle); -NOCOMMON void (*MwLLGrabPointer)(MwLL handle, int toggle); +void (*MwLLSetClipboard)(MwLL handle, const char* text) = NULL; +void (*MwLLGetClipboard)(MwLL handle) = NULL; -NOCOMMON void (*MwLLSetClipboard)(MwLL handle, const char* text); -NOCOMMON void (*MwLLGetClipboard)(MwLL handle); - -NOCOMMON void (*MwLLGetCursorCoord)(MwLL handle, MwPoint* point); -NOCOMMON void (*MwLLGetScreenSize)(MwLL handle, MwRect* rect); +void (*MwLLGetCursorCoord)(MwLL handle, MwPoint* point) = NULL; +void (*MwLLGetScreenSize)(MwLL handle, MwRect* rect) = NULL; void MwLLCreateCommon(MwLL handle) { handle->common.handler = malloc(sizeof(*handle->common.handler)); From c61e26f0289153bb3f31b1359e83095a1338fbd4 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 12 Jan 2026 06:04:45 +0900 Subject: [PATCH 113/836] yeah --- CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 37e23d98f..dbb7a5aa6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -152,6 +152,11 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows") USE_GDI ) list(APPEND LIBRARIES gdi32) + target_link_options( + Mw + PRIVATE + -static-libgcc + ) else() find_package(PkgConfig) pkg_check_modules(X11 REQUIRED x11) From e8f743ed84f413c157209e8d97f6355f80dddeb3 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 12 Jan 2026 06:24:48 +0900 Subject: [PATCH 114/836] better --- CMakeLists.txt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dbb7a5aa6..62892d48c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,6 +18,7 @@ option(USE_STB_TRUETYPE "Use stb_truetype" OFF) option(USE_FREETYPE2 "Use FreeType 2" ON) option(BUILD_SHARED "Build a shared library" ON) option(BUILD_STATIC "Build a static library" OFF) +option(INSTALL_HEADERS "Install headers" ON) file( GLOB @@ -219,11 +220,14 @@ install( LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) -install( - DIRECTORY include/ - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - FILES_MATCHING PATTERN "*.h" -) + +if(INSTALL_HEADERS) + install( + DIRECTORY include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING PATTERN "*.h" + ) +endif() if(BUILD_EXAMPLES) add_subdirectory(examples) From 7e32866c0a91a7896cb741a060456aa50be1f70a Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 12 Jan 2026 06:28:43 +0900 Subject: [PATCH 115/836] fix cmake --- CMakeLists.txt | 52 +++++++++++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 62892d48c..f695c1d8e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,16 +9,16 @@ include(GNUInstallDirs) set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}") set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) -option(TRY_OPENGL "Try to compile OpenGL widget or not" ON) -option(TRY_VULKAN "Try to compile Vulkan widget or not" ON) -option(CLASSIC_THEME "Use classic theme" OFF) -option(BUILD_EXAMPLES "Build examples" OFF) -option(USE_STB_IMAGE "Use stb_image" ON) -option(USE_STB_TRUETYPE "Use stb_truetype" OFF) -option(USE_FREETYPE2 "Use FreeType 2" ON) -option(BUILD_SHARED "Build a shared library" ON) -option(BUILD_STATIC "Build a static library" OFF) -option(INSTALL_HEADERS "Install headers" ON) +option(MW_TRY_OPENGL "Try to compile OpenGL widget or not" ON) +option(MW_TRY_VULKAN "Try to compile Vulkan widget or not" ON) +option(MW_CLASSIC_THEME "Use classic theme" OFF) +option(MW_BUILD_EXAMPLES "Build examples" OFF) +option(MW_USE_STB_IMAGE "Use stb_image" ON) +option(MW_USE_STB_TRUETYPE "Use stb_truetype" OFF) +option(MW_USE_FREETYPE2 "Use FreeType 2" ON) +option(MW_BUILD_SHARED "Build a shared library" ON) +option(MW_BUILD_STATIC "Build a static library" OFF) +option(MW_INSTALL_HEADERS "Install headers" ON) file( GLOB @@ -29,11 +29,11 @@ file( list(REMOVE_ITEM SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/opengl.c") list(REMOVE_ITEM SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/vulkan.c") -if(NOT USE_STB_IMAGE) +if(NOT MW_USE_STB_IMAGE) list(REMOVE_ITEM SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/external/stb_image.c") endif() -if(NOT USE_STB_TRUETYPE) +if(NOT MW_USE_STB_TRUETYPE) list(REMOVE_ITEM SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/external/stb_truetype.c") endif() @@ -42,10 +42,10 @@ if(CMAKE_SYSTEM_NAME STREQUAL "NetBSD") list(APPEND CMAKE_REQUIRED_INCLUDES "/usr/pkg/include") endif() -if(TRY_OPENGL) +if(MW_TRY_OPENGL) check_include_files(GL/gl.h HAVE_GL_GL_H) if(HAVE_GL_GL_H) - set(BUILD_OPENGL ON) + set(MW_BUILD_OPENGL ON) list(APPEND SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/opengl.c") message(STATUS "OpenGL widget has been enabled") else() @@ -53,10 +53,10 @@ if(TRY_OPENGL) endif() endif() -if(TRY_OPENGL) +if(MW_TRY_VULKAN) check_include_files(vulkan/vulkan.h HAVE_VULKAN_VULKAN_H) if(HAVE_VULKAN_VULKAN_H) - set(BUILD_VULKAN ON) + set(MW_BUILD_VULKAN ON) list(APPEND SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/vulkan.c") message(STATUS "Vulkan widget has been enabled") else() @@ -64,13 +64,13 @@ if(TRY_OPENGL) endif() endif() -if(BUILD_STATIC) +if(MW_BUILD_STATIC) message(STATUS "Building Milsko as a static library") add_library( Mw ${SOURCES} ) -elseif(BUILD_SHARED) +elseif(MW_BUILD_SHARED) message(STATUS "Building Milsko as a shared library") add_library( Mw @@ -81,7 +81,7 @@ else() message(ERROR "Must either build a shared library or a static library") endif() -if(USE_STB_IMAGE) +if(MW_USE_STB_IMAGE) target_compile_definitions( Mw PRIVATE @@ -96,7 +96,7 @@ else() target_sources( Mw PRIVATE - ${IMAGE_SOURCES} + ${MW_IMAGE_SOURCES} ) target_include_directories( Mw @@ -105,7 +105,7 @@ else() ) endif() -if(USE_STB_TRUETYPE) +if(MW_USE_STB_TRUETYPE) target_compile_definitions( Mw PRIVATE @@ -113,7 +113,7 @@ if(USE_STB_TRUETYPE) ) endif() -if(USE_FREETYPE2) +if(MW_USE_FREETYPE2) target_compile_definitions( Mw PRIVATE @@ -133,7 +133,7 @@ target_include_directories( include ) -if(CLASSIC_THEME) +if(MW_CLASSIC_THEME) target_compile_definitions( Mw PRIVATE @@ -197,7 +197,7 @@ target_link_libraries( ${LIBRARIES} ) -if(BUILD_VULKAN) +if(MW_BUILD_VULKAN) check_include_files(vulkan/vk_enum_string_helper.h HAS_VK_ENUM_STRING_HELPER) if(HAS_VK_ENUM_STRING_HELPER) target_compile_definitions( @@ -221,7 +221,7 @@ install( ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) -if(INSTALL_HEADERS) +if(MW_INSTALL_HEADERS) install( DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} @@ -229,6 +229,6 @@ if(INSTALL_HEADERS) ) endif() -if(BUILD_EXAMPLES) +if(MW_BUILD_EXAMPLES) add_subdirectory(examples) endif() From a0d1bada8ff03aacca93dfc393e7838c703a60b6 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 12 Jan 2026 18:50:55 +0900 Subject: [PATCH 116/836] probably left debug code --- src/core.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/core.c b/src/core.c index d8e0c2d02..769de6884 100644 --- a/src/core.c +++ b/src/core.c @@ -123,7 +123,6 @@ MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, h->children = NULL; if(widget_class != NULL) { - printf("%p\n", MwLLCreate); if((h->lowlevel = MwLLCreate(parent == NULL ? NULL : parent->lowlevel, x, y, width, height)) == NULL) { free(h->name); free(h); From eb50af2b815f7241d79233cd38c8a0186b3d2a6b Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 13 Jan 2026 01:00:28 +0900 Subject: [PATCH 117/836] manpage says usleep is obsolete but i dont care --- src/abstract/time.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/abstract/time.c b/src/abstract/time.c index 2fbc58428..550f47a6c 100644 --- a/src/abstract/time.c +++ b/src/abstract/time.c @@ -46,11 +46,14 @@ long MwTimeGetTick(void) { } void MwTimeSleep(int ms) { +#if 0 struct timespec ts; ts.tv_sec = ms / 1000; - ts.tv_nsec = (ms % 1000) * 1000 * 1000; + ts.tv_nsec = (ms % 1000) * 1000000; nanosleep(&ts, NULL); +#endif + usleep(ms * 100); } #endif From ca4adf5f394a52c51179a38356751881200230dd Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 12 Jan 2026 13:04:30 -0700 Subject: [PATCH 118/836] cocoa: fill a bunch of no-brainer functions, i haven't actually tested this yet and won't until I get home but I assume the worst case scenario is that I fucked up the syntax --- include/Mw/LowLevel/AppKit.h | 27 ------------ include/Mw/LowLevel/Cocoa.h | 1 + src/backend/cocoa.m | 83 ++++++++++++++++++++++++++++++++++-- 3 files changed, 80 insertions(+), 31 deletions(-) delete mode 100644 include/Mw/LowLevel/AppKit.h diff --git a/include/Mw/LowLevel/AppKit.h b/include/Mw/LowLevel/AppKit.h deleted file mode 100644 index 4a6c8e53c..000000000 --- a/include/Mw/LowLevel/AppKit.h +++ /dev/null @@ -1,27 +0,0 @@ -/*! - * @file Mw/LowLevel/AppKit.h - * @brief Work in progress AppKit Backend - * @warning This is used internally. - */ -#ifndef __MW_LOWLEVEL_APPKIT_H__ -#define __MW_LOWLEVEL_APPKIT_H__ - -#include -#include -#include - -MWDECL int MwLLAppKitCallInit(void); - -struct _MwLLAppKit { - struct _MwLLCommon common; -}; - -struct _MwLLAppKitColor { - struct _MwLLCommonColor common; -}; - -struct _MwLLAppKitPixmap { - struct _MwLLCommonPixmap common; -}; - -#endif diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 1ff4c1ef5..4ff9f494e 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -23,6 +23,7 @@ struct _MwLLCocoaColor { struct _MwLLCocoaPixmap { struct _MwLLCommonPixmap common; + void* real; }; #endif diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 396016493..bd2320ba5 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -3,13 +3,44 @@ #endif #import -#include +#import #import #include #include "../../external/stb_ds.h" +@interface MilskoCocoaPixmap : NSObject { + NSImage *image; +} ++ (MilskoCocoaPixmap*)newWithWidth:(int)width + height:(int)height; +- (void)updateWithData(void *); +- (void)destroy; +@end + +@implementation MilskoCocoaPixmap + ++ (MilskoCocoaPixmap*)newWithWidth:(int)width + height:(int)height { + MilskoCocoaPixmap * p = [MilskoCocoaPixmap alloc]; + NSSize sz; + + sz.width = width; + sz.height = height; + + p->image = [NSImage initWithSize:sz]; + + return p; +} +- (void)updateWithData(void *) { +} +- (void)destroy { + [self->image dealloc]; +} +@end + + @interface MilskoCocoa : NSObject { NSApplication *application; NSWindow *window; @@ -101,10 +132,24 @@ - (void)lineWithPoints:(MwPoint *)points color:(MwLLColor)color { }; - (void)getX:(int *)x Y:(int *)y W:(unsigned int *)w H:(unsigned int *)h { + NSRect frame = self->window->frame; + + *x = frame.origin.x; + *y = frame.origin.y; + *w = frame.size.x; + *h = frame.size.y; }; - (void)setX:(int)x Y:(int)y { + NSPoint p; + p.x = x; + p.y = y; + [self->window setFrameTopLeftPoint p]; }; - (void)setW:(int)w H:(int)h { + NSSize s; + s.w = w; + s.h = h; + [self->window setFrameSize s]; }; - (int)pending { return 1; @@ -122,6 +167,9 @@ [pool release]; }; - (void)setTitle:(const char *)title { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + [self->window setTitleWithRepresentedFilename:[NSString stringWithUTF8String:title]]; + [pool release]; }; - (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect *)rect { }; @@ -143,10 +191,21 @@ MaxY:(int)maxy { }; - (void)makeBorderless:(int)toggle { + NSWindowStyleMask mask = self->window.styleMask; + if(mask & NSBorderlessWindowMask) { + mask ^= NSBorderlessWindowMask; + mask |= NSTitledWindowMask; + } else { + mask |= NSBorderlessWindowMask; + mask ^= NSTitledWindowMask; + } + [self->window setStyleMask:mask]; }; - (void)focus { + [self->window makeMainWindow]; }; - (void)grabPointer:(int)toggle { + /* MacOS didn't have a "pointer grab" function until 10.13.2 so I need to do this manually */ }; - (void)setClipboard:(const char *)text { }; @@ -155,8 +214,16 @@ - (void)makeToolWindow { }; - (void)getCursorCoord:(MwPoint *)point { + NSPoint p = self->window->mouseLocation; + point->x = p.x; + point->y = p.y; }; - (void)getScreenSize:(MwRect *)rect { + NSScreen * screen = self->window->screen; + rect->x = screen->frame.origin.x; + rect->y = screen->frame.origin.y; + rect->width = screen->frame.size.x; + rect->height = screen->frame.size.y; }; - (void)destroy { [self->window dealloc]; @@ -185,7 +252,6 @@ static void MwLLDestroyImpl(MwLL handle) { MilskoCocoa *h = handle->cocoa.real; [h destroy]; - [h dealloc]; MwLLDestroyCommon(handle); @@ -267,13 +333,22 @@ static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char *data, r->common.width = width; r->common.height = height; + r->cocoa.real = [MilskoCocoaPixmap newWithWidth:width height:height]; + MwLLPixmapUpdate(r); return r; } -static void MwLLPixmapUpdateImpl(MwLLPixmap r) { (void)r; } +static void MwLLPixmapUpdateImpl(MwLLPixmap pixmap) { + MilskoCocoaPixmap *p = pixmap->cocoa.real; + [p updateWithData:pixmap->common.raw]; +} -static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { free(pixmap); } +static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { + MilskoCocoaPixmap *p = pixmap->cocoa.real; + [p destroy]; + free(pixmap); +} static void MwLLDrawPixmapImpl(MwLL handle, MwRect *rect, MwLLPixmap pixmap) { MilskoCocoa *h = handle->cocoa.real; From a70f3dbb5951dae7358c8f48848cdbd7f9c3308a Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 12 Jan 2026 13:07:35 -0700 Subject: [PATCH 119/836] remove old appkit.m file that somehow got here --- src/backend/appkit.m | 214 ------------------------------------------- 1 file changed, 214 deletions(-) delete mode 100644 src/backend/appkit.m diff --git a/src/backend/appkit.m b/src/backend/appkit.m deleted file mode 100644 index 6deea7c75..000000000 --- a/src/backend/appkit.m +++ /dev/null @@ -1,214 +0,0 @@ -#include - -#include "../../external/stb_ds.h" - -static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { - MwLL r; - (void)x; - (void)y; - (void)width; - (void)height; - - r = malloc(sizeof(*r)); - - - MwLLCreateCommon(r); - - return r; -} - -static void MwLLDestroyImpl(MwLL handle) { - MwLLDestroyCommon(handle); - - free(handle); -} - -static void MwLLBeginDrawImpl(MwLL handle) { - (void)handle; -} - -static void MwLLEndDrawImpl(MwLL handle) { - (void)handle; -} - -static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { - (void)points; - (void)points_count; - (void)color; -} - -static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { - (void)handle; - (void)points; - (void)color; -} - -static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { - MwLLColor c = malloc(sizeof(*c)); - MwLLColorUpdate(handle, c, r, g, b); - return c; -} - -static void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { - (void)handle; - - c->common.red = r; - c->common.green = g; - c->common.blue = b; -} - -static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h) { - *x = 0; - *y = 0; - *w = 0; - *h = 0; -} - -static void MwLLSetXYImpl(MwLL handle, int x, int y) { - (void)handle; - (void)x; - (void)y; -} - -static void MwLLSetWHImpl(MwLL handle, int w, int h) { - (void)handle; - (void)w; - (void)h; -} - -static void MwLLFreeColorImpl(MwLLColor color) { - free(color); -} - -static int MwLLPendingImpl(MwLL handle) { - (void)handle; - return 0; -} - -static void MwLLNextEventImpl(MwLL handle) { - (void)handle; -} - -static void MwLLSetTitleImpl(MwLL handle, const char* title) { - (void)title; - (void)handle; -} - -static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) { - (void)handle; - - MwLLPixmap r = malloc(sizeof(*r)); - - r->common.raw = malloc(4 * width * height); - memcpy(r->common.raw, data, 4 * width * height); - - r->common.width = width; - r->common.height = height; - - MwLLPixmapUpdate(r); - return r; -} - -static void MwLLPixmapUpdateImpl(MwLLPixmap r) { - (void)r; -} - -static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { - free(pixmap); -} - -static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { - (void)handle; - (void)rect; - (void)pixmap; -} - -static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { - (void)handle; - (void)pixmap; -} - -static void MwLLForceRenderImpl(MwLL handle) { - (void)handle; -} - -static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { - (void)handle; - (void)image; - (void)mask; -} - -static void MwLLDetachImpl(MwLL handle, MwPoint* point) { - (void)handle; - (void)point; -} - -static void MwLLShowImpl(MwLL handle, int show) { - (void)handle; - (void)show; -} - -static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { - (void)handle; - (void)parent; -} - -static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) { - (void)handle; - (void)minx; - (void)miny; - (void)maxx; - (void)maxy; -} - -static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { - (void)handle; - (void)toggle; -} - -static void MwLLFocusImpl(MwLL handle) { - (void)handle; -} - -static void MwLLGrabPointerImpl(MwLL handle, int toggle) { - (void)handle; - (void)toggle; -} - -static void MwLLSetClipboardImpl(MwLL handle, const char* text) { - (void)handle; - (void)text; -} - -static void MwLLGetClipboardImpl(MwLL handle) { - (void)handle; -} - -static void MwLLMakeToolWindowImpl(MwLL handle) { - (void)handle; -} - -static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { - (void)handle; - (void)point; -} - -static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { - (void)handle; - (void)rect; -} - -static void MwLLBeginStateChangeImpl(MwLL handle) { - MwLLShow(handle, 0); -} - -static void MwLLEndStateChangeImpl(MwLL handle) { - MwLLShow(handle, 1); -} - -static int MwLLAppKitCallInitImpl(void) { - return 0; -} - -#include "call.c" -CALL(AppKit); From 31cc8e5a0d2660503cb1a98f6e0b0714d061f72a Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 12 Jan 2026 15:13:59 -0700 Subject: [PATCH 120/836] cocoa: fix syntax errors. Also allow cmake to compile it (untested) --- .gitignore | 1 + CMakeLists.txt | 17 +++++++++++++ src/backend/cocoa.m | 61 ++++++++++++++++++++++----------------------- 3 files changed, 48 insertions(+), 31 deletions(-) diff --git a/.gitignore b/.gitignore index 9b18b9c39..153abcca4 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ examples/*/*.exe /Makefile /build compile_flags.txt +.cache diff --git a/CMakeLists.txt b/CMakeLists.txt index f695c1d8e..650d6d1ea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -158,6 +158,23 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows") PRIVATE -static-libgcc ) +elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") + target_sources( + Mw + PRIVATE + src/backend/cocoa.m + ) + target_compile_definitions( + Mw + PRIVATE + USE_COCOA + ) + list(APPEND LIBRARIES objc) + target_link_options( + Mw + PRIVATE + -framework Cocoa + ) else() find_package(PkgConfig) pkg_check_modules(X11 REQUIRED x11) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index bd2320ba5..1f098a0c9 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -13,34 +13,31 @@ @interface MilskoCocoaPixmap : NSObject { NSImage *image; } -+ (MilskoCocoaPixmap*)newWithWidth:(int)width - height:(int)height; -- (void)updateWithData(void *); ++ (MilskoCocoaPixmap *)newWithWidth:(int)width height:(int)height; +- (void)updateWithData:(void *)data; - (void)destroy; @end @implementation MilskoCocoaPixmap -+ (MilskoCocoaPixmap*)newWithWidth:(int)width - height:(int)height { - MilskoCocoaPixmap * p = [MilskoCocoaPixmap alloc]; ++ (MilskoCocoaPixmap *)newWithWidth:(int)width height:(int)height { + MilskoCocoaPixmap *p = [MilskoCocoaPixmap alloc]; NSSize sz; sz.width = width; sz.height = height; - p->image = [NSImage initWithSize:sz]; + p->image = [[NSImage alloc] initWithSize:sz]; return p; } -- (void)updateWithData(void *) { +- (void)updateWithData:(void *)data { } - (void)destroy { [self->image dealloc]; } @end - @interface MilskoCocoa : NSObject { NSApplication *application; NSWindow *window; @@ -132,24 +129,24 @@ - (void)lineWithPoints:(MwPoint *)points color:(MwLLColor)color { }; - (void)getX:(int *)x Y:(int *)y W:(unsigned int *)w H:(unsigned int *)h { - NSRect frame = self->window->frame; + NSRect frame = [self->window frame]; - *x = frame.origin.x; - *y = frame.origin.y; - *w = frame.size.x; - *h = frame.size.y; + *x = frame.origin.x; + *y = frame.origin.y; + *w = frame.size.width; + *h = frame.size.height; }; - (void)setX:(int)x Y:(int)y { - NSPoint p; - p.x = x; - p.y = y; - [self->window setFrameTopLeftPoint p]; + NSPoint p; + p.x = x; + p.y = y; + [self->window setFrameTopLeftPoint:p]; }; - (void)setW:(int)w H:(int)h { - NSSize s; - s.w = w; - s.h = h; - [self->window setFrameSize s]; + NSSize s; + s.width = w; + s.height = h; + [self->window setFrameSize:s]; }; - (int)pending { return 1; @@ -168,7 +165,8 @@ }; - (void)setTitle:(const char *)title { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - [self->window setTitleWithRepresentedFilename:[NSString stringWithUTF8String:title]]; + [self->window + setTitleWithRepresentedFilename:[NSString stringWithUTF8String:title]]; [pool release]; }; - (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect *)rect { @@ -192,7 +190,7 @@ }; - (void)makeBorderless:(int)toggle { NSWindowStyleMask mask = self->window.styleMask; - if(mask & NSBorderlessWindowMask) { + if (mask & NSBorderlessWindowMask) { mask ^= NSBorderlessWindowMask; mask |= NSTitledWindowMask; } else { @@ -205,7 +203,8 @@ [self->window makeMainWindow]; }; - (void)grabPointer:(int)toggle { - /* MacOS didn't have a "pointer grab" function until 10.13.2 so I need to do this manually */ + /* MacOS didn't have a "pointer grab" function until 10.13.2 so I need to do + * this manually */ }; - (void)setClipboard:(const char *)text { }; @@ -214,16 +213,16 @@ - (void)makeToolWindow { }; - (void)getCursorCoord:(MwPoint *)point { - NSPoint p = self->window->mouseLocation; + NSPoint p = [NSEvent mouseLocation]; point->x = p.x; point->y = p.y; }; - (void)getScreenSize:(MwRect *)rect { - NSScreen * screen = self->window->screen; - rect->x = screen->frame.origin.x; - rect->y = screen->frame.origin.y; - rect->width = screen->frame.size.x; - rect->height = screen->frame.size.y; + NSScreen *screen = [self->window screen]; + rect->x = screen.frame.origin.x; + rect->y = screen.frame.origin.y; + rect->width = screen.frame.size.width; + rect->height = screen.frame.size.height; }; - (void)destroy { [self->window dealloc]; From e45a1f6ad8e5d5bc76cf24c0e813f75b968d6880 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 12 Jan 2026 15:30:05 -0700 Subject: [PATCH 121/836] cocoa: more fixes --- src/backend/cocoa.m | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 1f098a0c9..5d2895c07 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1,5 +1,7 @@ #ifndef USE_COCOA #define USE_COCOA +#include +#include #endif #import @@ -41,6 +43,7 @@ @interface MilskoCocoa : NSObject { NSApplication *application; NSWindow *window; + NSRect rect; } + (MilskoCocoa *)newWithParent:(MwLL)parent @@ -100,22 +103,20 @@ } c->application = [NSApplication sharedApplication]; - NSRect rect = NSMakeRect(x, y, width, height); + c->rect = NSMakeRect(x, y, width, height); - c->window = [[[NSWindow alloc] - initWithContentRect:rect + c->window = [[NSWindow alloc] + initWithContentRect:c->rect styleMask:parent == NULL ? (NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask) : NSBorderlessWindowMask backing:NSBackingStoreBuffered - defer:NO] autorelease]; + defer:NO]; [c->window makeKeyAndOrderFront:c->application]; if (parent != NULL) { - [c->window setBackgroundColor:[NSColor blueColor]]; - MilskoCocoa *p = parent->cocoa.real; [p->window addChildWindow:c->window ordered:NSWindowAbove]; } @@ -140,13 +141,16 @@ NSPoint p; p.x = x; p.y = y; - [self->window setFrameTopLeftPoint:p]; + NSRect frame = [self->window frame]; + frame.origin.x = x; + frame.origin.y = y; + [self->window setFrame: frame display: YES animate: true]; }; - (void)setW:(int)w H:(int)h { - NSSize s; - s.width = w; - s.height = h; - [self->window setFrameSize:s]; + NSRect frame = [self->window frame]; + frame.size.width = w; + frame.size.height = h; + [self->window setFrame: frame display: YES animate: true]; }; - (int)pending { return 1; @@ -189,7 +193,7 @@ MaxY:(int)maxy { }; - (void)makeBorderless:(int)toggle { - NSWindowStyleMask mask = self->window.styleMask; + uint32_t mask = [self->window styleMask]; if (mask & NSBorderlessWindowMask) { mask ^= NSBorderlessWindowMask; mask |= NSTitledWindowMask; @@ -197,7 +201,10 @@ mask |= NSBorderlessWindowMask; mask ^= NSTitledWindowMask; } - [self->window setStyleMask:mask]; + [self->window initWithContentRect:self->rect + styleMask:mask + backing:NSBackingStoreBuffered + defer:NO]; }; - (void)focus { [self->window makeMainWindow]; @@ -219,10 +226,10 @@ }; - (void)getScreenSize:(MwRect *)rect { NSScreen *screen = [self->window screen]; - rect->x = screen.frame.origin.x; - rect->y = screen.frame.origin.y; - rect->width = screen.frame.size.width; - rect->height = screen.frame.size.height; + rect->x = [screen frame].origin.x; + rect->y = [screen frame].origin.y; + rect->width = [screen frame].size.width; + rect->height = [screen frame].size.height; }; - (void)destroy { [self->window dealloc]; From efcc176c0428a2fd8ce2a3f87ef5bb9ce4feabbf Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 12 Jan 2026 15:31:22 -0700 Subject: [PATCH 122/836] cocoa: more fixes --- src/backend/cocoa.m | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 5d2895c07..4e0b0c315 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -224,12 +224,12 @@ point->x = p.x; point->y = p.y; }; -- (void)getScreenSize:(MwRect *)rect { +- (void)getScreenSize:(MwRect *)_rect { NSScreen *screen = [self->window screen]; - rect->x = [screen frame].origin.x; - rect->y = [screen frame].origin.y; - rect->width = [screen frame].size.width; - rect->height = [screen frame].size.height; + _rect->x = [screen frame].origin.x; + _rect->y = [screen frame].origin.y; + _rect->width = [screen frame].size.width; + _rect->height = [screen frame].size.height; }; - (void)destroy { [self->window dealloc]; From 69c95d5752f390d81e42eac4f7f04ac75adbbdbc Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 12 Jan 2026 18:18:05 -0700 Subject: [PATCH 123/836] wayland: more fix --- include/Mw/LowLevel/Wayland.h | 6 +- src/backend/wayland.c | 107 ++++++++++++++++++++++++---------- 2 files changed, 80 insertions(+), 33 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index cd9642484..b711e1666 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -186,8 +186,6 @@ struct _MwLLWayland { MwBool force_render; - MwBool disabled; - struct _MwLLWaylandShmBuffer framebuffer; struct _MwLLWaylandShmBuffer cursor; struct _MwLLWaylandShmBuffer* icon; @@ -198,6 +196,10 @@ struct _MwLLWayland { IOI_XD: This sounds like a hilariously rare edge case, so it's almost funnier that this happened with 100% certainty for me and I spent day(s) trying to figure out what was happening. */ pthread_mutex_t eventsMutex; + uint32_t last_time; + + MwLL currentlyHeldWidget; + cairo_surface_t* cs; cairo_t* cairo; }; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 9169a10bd..e049bbea6 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1,13 +1,17 @@ #include #include +#include #include #include "../../external/stb_ds.h" +#include "Mw/BaseTypes.h" +#include "Mw/LowLevel.h" #include #include #include +#include /* TODO: * - MwLLGrabPointerImpl @@ -371,7 +375,7 @@ static wayland_protocol_t* zwp_primary_selection_device_manager_v1_setup(MwU32 n } static void zwp_primary_selection_device_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - zwp_primary_selection_device_manager_v1_destroy(wayland->clipboard_manager.zwp); + // zwp_primary_selection_device_manager_v1_destroy(wayland->clipboard_manager.zwp); } /* `wl_pointer.enter` callback */ @@ -410,6 +414,15 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time self->wayland.events_pending += 1; + /* Only draw once every 10 milliseconds */ + if((self->wayland.last_time + 10) <= time) { + if(!self->wayland.always_render) { + MwLLDispatch(self, draw, NULL); + self->wayland.events_pending += 1; + } + self->wayland.last_time = time; + } + WAYLAND_EVENT_OP_END(self); /*timed_redraw(self, time, 50, &self->wayland.cooldown_timer);*/ @@ -442,15 +455,29 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri switch(state) { case WL_POINTER_BUTTON_STATE_PRESSED: MwLLDispatch(self, down, &p); + if(self->wayland.parent != NULL) { + self->wayland.parent->wayland.currentlyHeldWidget = self; + } break; case WL_POINTER_BUTTON_STATE_RELEASED: - MwLLDispatch(self, up, &p); + if(self->wayland.parent != NULL) { + if(self->wayland.parent->wayland.currentlyHeldWidget != NULL) { + MwLLDispatch(self->wayland.parent->wayland.currentlyHeldWidget, up, &p); + self->wayland.parent->wayland.currentlyHeldWidget = NULL; + } + } else { + MwLLDispatch(self, up, &p); + } break; } } if(!self->wayland.always_render) { MwLLDispatch(self, draw, NULL); + if(self->wayland.parent != NULL) { + MwLLDispatch(self->wayland.parent, draw, NULL); + self->wayland.parent->wayland.events_pending += 1; + } self->wayland.events_pending += 1; } @@ -628,6 +655,9 @@ static void keyboard_key(void* data, if(!self->wayland.always_render) { MwLLDispatch(self, draw, NULL); + if(self->wayland.parent != NULL) { + MwLLDispatch(self->wayland.parent, draw, NULL); + } self->wayland.events_pending += 1; } @@ -745,15 +775,14 @@ static wayland_protocol_t* wl_seat_setup(MwU32 name, MwLL ll) { ((struct wl_seat_listener*)proto->listener)->name = wl_seat_name; ((struct wl_seat_listener*)proto->listener)->capabilities = wl_seat_capabilities; - proto->context = wl_registry_bind(ll->wayland.registry, name, &wl_seat_interface, 1); - wl_seat_add_listener(proto->context, proto->listener, ll); + wl_seat_add_listener(wl_registry_bind(ll->wayland.registry, name, &wl_seat_interface, 1), proto->listener, ll); return proto; } static void wl_seat_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { free(data->listener); - wl_seat_destroy(data->context); + // wl_seat_destroy(data->context); } /* wl_output setup function */ @@ -802,7 +831,7 @@ static wayland_protocol_t* xdg_wm_base_setup(MwU32 name, struct _MwLLWayland* wa } static void xdg_wm_base_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - xdg_wm_base_destroy(data->context); + // xdg_wm_base_destroy(data->context); free(data->listener); } @@ -829,8 +858,8 @@ static wayland_protocol_t* zxdg_decoration_manager_v1_setup(MwU32 name, struct _ static void zxdg_decoration_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { zxdg_decoration_manager_v1_context_t* context = data->context; - zxdg_decoration_manager_v1_destroy(context->manager); - zxdg_toplevel_decoration_v1_destroy(context->decoration); + // zxdg_decoration_manager_v1_destroy(context->manager); + // zxdg_toplevel_decoration_v1_destroy(context->decoration); } /* `xdg_toplevel.close` callback */ @@ -1007,7 +1036,7 @@ static wayland_protocol_t* xdg_toplevel_icon_manager_v1_setup(MwU32 name, struct static void xdg_toplevel_icon_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { free(data->listener); - xdg_toplevel_icon_manager_v1_destroy(data->context); + // xdg_toplevel_icon_manager_v1_destroy(data->context); } /* Standard Wayland event loop. */ @@ -1149,8 +1178,8 @@ static void setup_toplevel(MwLL r, int x, int y) { /* Perform the initial commit and wait for the first configure event */ wl_surface_commit(r->wayland.framebuffer.surface); - event_loop(r); while(!r->wayland.configured) { + event_loop(r); } /* setup decorations if we can */ @@ -1184,8 +1213,14 @@ static void destroy_toplevel(MwLL r) { xdg_toplevel_destroy(r->wayland.toplevel->xdg_top_level); + xkb_keymap_unref(r->wayland.toplevel->xkb_keymap); + + xkb_state_unref(r->wayland.toplevel->xkb_state); + xkb_context_unref(r->wayland.toplevel->xkb_context); + free(r->wayland.toplevel); + wl_registry_destroy(r->wayland.registry); wl_display_disconnect(r->wayland.display); @@ -1369,6 +1404,8 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { setup_toplevel(r, x, y); } else { setup_sublevel(parent, r, x, y); + MwLLDispatch(parent, draw, NULL); + parent->wayland.events_pending += 1; } framebuffer_setup(&r->wayland); @@ -1399,6 +1436,16 @@ static void MwLLDestroyImpl(MwLL handle) { event_loop(handle); + /* sleep long enough that any active attempts to wait for the mutex will have given up and we can safely unlock/destroy it */ + tv.tv_sec = 0; + tv.tv_usec = 1000; + do { + select_ret = select(1, NULL, NULL, NULL, &tv); + } while((select_ret == -1) && (errno == EINTR)); + + pthread_mutex_unlock(&handle->wayland.eventsMutex); + pthread_mutex_destroy(&handle->wayland.eventsMutex); + framebuffer_destroy(&handle->wayland); buffer_destroy(&handle->wayland.cursor); wl_region_destroy(handle->wayland.region); @@ -1424,29 +1471,14 @@ static void MwLLDestroyImpl(MwLL handle) { for(i = 0; i < shlen(handle->wayland.wl_protocol_setup_map); i++) { void* ctx = shget(handle->wayland.wl_protocol_map, handle->wayland.wl_protocol_setup_map[i].key); - handle->wayland.wl_protocol_setup_map[i].value->destroy(&handle->wayland, ctx); + if(ctx != NULL) { + handle->wayland.wl_protocol_setup_map[i].value->destroy(&handle->wayland, ctx); + } shdel(handle->wayland.wl_protocol_map, handle->wayland.wl_protocol_setup_map[i].value); } shfree(handle->wayland.wl_protocol_map); shfree(handle->wayland.wl_protocol_setup_map); - if(handle->wayland.pointer != NULL) { - wl_pointer_destroy(handle->wayland.pointer); - } - if(handle->wayland.keyboard != NULL) { - wl_keyboard_destroy(handle->wayland.keyboard); - } - - /* sleep long enough that any active attempts to wait for the mutex will have given up and we can safely unlock/destroy it */ - tv.tv_sec = 0; - tv.tv_usec = 500; - do { - select_ret = select(1, NULL, NULL, NULL, &tv); - } while((select_ret == -1) && (errno == EINTR)); - - pthread_mutex_unlock(&handle->wayland.eventsMutex); - pthread_mutex_destroy(&handle->wayland.eventsMutex); - free(handle); } @@ -1471,6 +1503,11 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { region_setup(handle); MwLLDispatch(handle, draw, NULL); + handle->wayland.events_pending += 1; + if(handle->wayland.parent != NULL) { + MwLLDispatch(handle->wayland.parent, draw, NULL); + handle->wayland.parent->wayland.events_pending += 1; + } } static void MwLLSetWHImpl(MwLL handle, int w, int h) { @@ -1490,12 +1527,13 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { } refresh: - MwLLDispatch(handle, draw, NULL); region_setup(handle); framebuffer_destroy(&handle->wayland); framebuffer_setup(&handle->wayland); - MwLLDispatch(handle, draw, NULL); + if(handle->wayland.parent != NULL) { + MwLLDispatch(handle->wayland.parent, draw, NULL); + } } static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { @@ -1576,7 +1614,14 @@ static int MwLLPendingImpl(MwLL handle) { timeout.tv_nsec = 10; timeout.tv_sec = 0; - return handle->wayland.force_render || handle->wayland.events_pending || wl_display_dispatch_timeout(handle->wayland.display, &timeout); + if(handle->wayland.force_render) { + return 1; + } + if(handle->wayland.events_pending) { + return 1; + } + + return wl_display_dispatch_timeout(handle->wayland.display, &timeout); } static void MwLLNextEventImpl(MwLL handle) { From 14e55b7f5316aa80d54ec4126090a877f2cc282a Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 12 Jan 2026 18:48:22 -0700 Subject: [PATCH 124/836] wayland: fix weird regression --- src/backend/wayland.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index e049bbea6..21ced85d6 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -465,9 +465,8 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri MwLLDispatch(self->wayland.parent->wayland.currentlyHeldWidget, up, &p); self->wayland.parent->wayland.currentlyHeldWidget = NULL; } - } else { - MwLLDispatch(self, up, &p); } + MwLLDispatch(self, up, &p); break; } } @@ -1504,10 +1503,6 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { MwLLDispatch(handle, draw, NULL); handle->wayland.events_pending += 1; - if(handle->wayland.parent != NULL) { - MwLLDispatch(handle->wayland.parent, draw, NULL); - handle->wayland.parent->wayland.events_pending += 1; - } } static void MwLLSetWHImpl(MwLL handle, int w, int h) { @@ -1531,6 +1526,7 @@ refresh: framebuffer_destroy(&handle->wayland); framebuffer_setup(&handle->wayland); + MwLLDispatch(handle, draw, NULL); if(handle->wayland.parent != NULL) { MwLLDispatch(handle->wayland.parent, draw, NULL); } From d340c64ca3f93f7ab4258c0c7706e11048da3d51 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 12 Jan 2026 18:50:33 -0700 Subject: [PATCH 125/836] wayland: fix weird regressiong --- src/backend/wayland.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 21ced85d6..1e32e2cd9 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -465,8 +465,9 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri MwLLDispatch(self->wayland.parent->wayland.currentlyHeldWidget, up, &p); self->wayland.parent->wayland.currentlyHeldWidget = NULL; } + } else { + MwLLDispatch(self, up, &p); } - MwLLDispatch(self, up, &p); break; } } @@ -1403,8 +1404,6 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { setup_toplevel(r, x, y); } else { setup_sublevel(parent, r, x, y); - MwLLDispatch(parent, draw, NULL); - parent->wayland.events_pending += 1; } framebuffer_setup(&r->wayland); @@ -1413,6 +1412,9 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { region_setup(r); MwLLForceRender(r); + if(parent != NULL) { + MwLLForceRender(parent); + } return r; } @@ -1527,9 +1529,6 @@ refresh: framebuffer_destroy(&handle->wayland); framebuffer_setup(&handle->wayland); MwLLDispatch(handle, draw, NULL); - if(handle->wayland.parent != NULL) { - MwLLDispatch(handle->wayland.parent, draw, NULL); - } } static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { From 32f09a9af2855a2f14ac72fa7f5bdbf20b62f016 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 12 Jan 2026 19:21:21 -0700 Subject: [PATCH 126/836] wayland: don't do parent draws on every event when we do'nt need to --- include/Mw/LowLevel/Wayland.h | 1 + src/backend/wayland.c | 22 +++++----------------- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index b711e1666..0375ecebd 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -7,6 +7,7 @@ #ifndef __MW_LOWLEVEL_WAYLAND_H__ #define __MW_LOWLEVEL_WAYLAND_H__ +#include "Mw/BaseTypes.h" #include #include #include diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 1e32e2cd9..7acc03891 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -412,17 +412,14 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time p.point = self->wayland.cur_mouse_pos; MwLLDispatch(self, move, &p); - self->wayland.events_pending += 1; - - /* Only draw once every 10 milliseconds */ - if((self->wayland.last_time + 10) <= time) { - if(!self->wayland.always_render) { - MwLLDispatch(self, draw, NULL); - self->wayland.events_pending += 1; - } + /* Only draw once every 50 milliseconds */ + if((self->wayland.last_time + 50) <= time) { + MwLLDispatch(self, draw, NULL); self->wayland.last_time = time; } + self->wayland.events_pending += 1; + WAYLAND_EVENT_OP_END(self); /*timed_redraw(self, time, 50, &self->wayland.cooldown_timer);*/ @@ -474,10 +471,6 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri if(!self->wayland.always_render) { MwLLDispatch(self, draw, NULL); - if(self->wayland.parent != NULL) { - MwLLDispatch(self->wayland.parent, draw, NULL); - self->wayland.parent->wayland.events_pending += 1; - } self->wayland.events_pending += 1; } @@ -655,9 +648,6 @@ static void keyboard_key(void* data, if(!self->wayland.always_render) { MwLLDispatch(self, draw, NULL); - if(self->wayland.parent != NULL) { - MwLLDispatch(self->wayland.parent, draw, NULL); - } self->wayland.events_pending += 1; } @@ -943,8 +933,6 @@ static void wl_shm_interface_destroy(struct _MwLLWayland* wayland, wayland_proto } static void update_buffer(struct _MwLLWaylandShmBuffer* buffer) { - fsync(buffer->fd); - wl_surface_attach(buffer->surface, buffer->shm_buffer, 0, 0); wl_surface_commit(buffer->surface); } From 85994d42f15f164f6e147a557333c0fd33b1c734 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 15 Jan 2026 05:16:14 +0900 Subject: [PATCH 127/836] fix issue #5 --- Makefile.pl | 72 ++++++++++++++++---------------- include/Mw/TypeDefs.h | 3 ++ pl/ostype/Darwin.pl | 2 +- pl/utils.pl | 2 +- src/backend/x11.c | 2 +- src/core.c | 97 +++++++++++++++++++++++++++---------------- 6 files changed, 104 insertions(+), 74 deletions(-) diff --git a/Makefile.pl b/Makefile.pl index ded79b02e..f710f2774 100755 --- a/Makefile.pl +++ b/Makefile.pl @@ -45,7 +45,7 @@ param_set("vulkan", 0); param_set("vulkan-string-helper", 1); param_set("shared", 1); param_set("static", 1); -param_set("examples", 1); +param_set("examples", 1); my %features = ( "classic-theme" => "use classic theme", @@ -221,11 +221,12 @@ foreach my $l (@library_targets) { my $o = $object_suffix; $o =~ s/\./\\\./g; - if ($l =~ /cocoa/) { - $s =~ s/$o$/.m/; - } else { - $s =~ s/$o$/.c/; - } + if ($l =~ /cocoa/) { + $s =~ s/$o$/.m/; + } + else { + $s =~ s/$o$/.c/; + } if ($l =~ /^external\//) { $warn = ""; @@ -236,37 +237,38 @@ foreach my $l (@library_targets) { } print(OUT "\n"); print(OUT "\n"); -if(param_get("examples")) { - print(OUT "examples: " . join(" ", @examples_targets) . "\n"); - print(OUT "\n"); - foreach my $l (@examples_targets) { - my $libs = ""; - my $s = $l; - my $o = $executable_suffix; - $o =~ s/\./\\\./g; - $s =~ s/$o$//; +if (param_get("examples")) { + print(OUT "examples: " . join(" ", @examples_targets) . "\n"); + print(OUT "\n"); + foreach my $l (@examples_targets) { + my $libs = ""; + my $s = $l; + my $o = $executable_suffix; + $o =~ s/\./\\\./g; + $s =~ s/$o$//; - if (defined($examples_libs{$l})) { - $libs = $examples_libs{$l}; - } + if (defined($examples_libs{$l})) { + $libs = $examples_libs{$l}; + } - print(OUT - "${l}: ${s}${object_suffix} src/${library_prefix}Mw${library_suffix}\n" - ); - if (grep(/^cocoa$/, @backends)) { - print(OUT - " \$(CC) -L./src \$\(LIBDIR) -o ${l} ${s}${object_suffix} -lMw ${math} ${libs}\n" - ); - } else { - print(OUT - " \$(CC) -L src -Wl,-R./src \$\(LIBDIR) -o ${l} ${s}${object_suffix} -lMw ${math} ${libs}\n" - ); - } - print(OUT "${s}${object_suffix}: ${s}.c\n"); - print(OUT - " \$(CC) -c \$\(INCDIR) -o ${s}${object_suffix} ${s}.c -lMw ${math}\n" - ); - } + print(OUT +"${l}: ${s}${object_suffix} src/${library_prefix}Mw${library_suffix}\n" + ); + if (grep(/^cocoa$/, @backends)) { + print(OUT +" \$(CC) -L./src \$\(LIBDIR) -o ${l} ${s}${object_suffix} -lMw ${math} ${libs}\n" + ); + } + else { + print(OUT +" \$(CC) -L src -Wl,-R./src \$\(LIBDIR) -o ${l} ${s}${object_suffix} -lMw ${math} ${libs}\n" + ); + } + print(OUT "${s}${object_suffix}: ${s}.c\n"); + print(OUT +" \$(CC) -c \$\(INCDIR) -o ${s}${object_suffix} ${s}.c -lMw ${math}\n" + ); + } } print(OUT "\n"); print(OUT "clean:\n"); diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index 6434f5236..d175c2b36 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -101,6 +101,9 @@ struct _MwWidget { MwWidget* tick_list; int destroyed; + + void* root_font; + void* root_boldfont; }; #endif diff --git a/pl/ostype/Darwin.pl b/pl/ostype/Darwin.pl index 72cfe275f..c786eb87f 100644 --- a/pl/ostype/Darwin.pl +++ b/pl/ostype/Darwin.pl @@ -1,4 +1,4 @@ -$library_suffix = ".dylib"; +$library_suffix = ".dylib"; set_shared_flag("-dynamiclib"); use_backend("cocoa"); diff --git a/pl/utils.pl b/pl/utils.pl index 264e6797f..f2f722b05 100644 --- a/pl/utils.pl +++ b/pl/utils.pl @@ -41,7 +41,7 @@ sub new_example { } sub set_shared_flag { - @shared = $_[0]; + @shared = $_[0]; } sub new_object { diff --git a/src/backend/x11.c b/src/backend/x11.c index ce6dae0e1..f7c6fe4bd 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -158,7 +158,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->x11.top = 0; r->x11.toplevel = 0; } - r->x11.window = XCreateSimpleWindow(r->x11.display, p, px, py, width, height, 0, 0, WhitePixel(r->x11.display, DefaultScreen(r->x11.display))); + r->x11.window = XCreateSimpleWindow(r->x11.display, p, px, py, width, height, 0, 0, WhitePixel(r->x11.display, DefaultScreen(r->x11.display))); sh.flags = PWinGravity; sh.win_gravity = StaticGravity; diff --git a/src/core.c b/src/core.c index 769de6884..9ec87b2bd 100644 --- a/src/core.c +++ b/src/core.c @@ -114,6 +114,19 @@ static void llclipboardhandler(MwLL handle, void* data) { MwDispatchUserHandler(h, MwNclipboardHandler, data); } +/* if both of them are true + * 1. widget class is not NULL + * 2. parent is NULL + * or parent's widget class is NULL + * + * most likely this widget is first *visible* widget + * + * this macro is not used anywhere else - we could expose it if we have to + * + * (nishi) + */ +#define IsFirstVisible(handle) ((handle)->widget_class != NULL && ((handle)->parent == NULL || (handle)->parent->widget_class == NULL)) + MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height) { MwWidget h = malloc(sizeof(*h)); @@ -186,6 +199,17 @@ MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, MwAddTickList(h); } +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) + if(IsFirstVisible(h)) { + h->root_font = MwFontLoad(MwTTFData, MwTTFDataSize); + h->root_boldfont = MwFontLoad(MwBoldTTFData, MwBoldTTFDataSize); + } else +#endif + { + h->root_font = NULL; + h->root_boldfont = NULL; + } + if(h->parent != NULL) MwDispatch(h->parent, children_update); return h; @@ -250,6 +274,9 @@ static void MwFreeWidget(MwWidget handle) { arrfree(handle->destroy_queue); arrfree(handle->tick_list); + if(handle->root_font != NULL) MwFontFree(handle->root_font); + if(handle->root_boldfont != NULL) MwFontFree(handle->root_boldfont); + free(handle); } @@ -507,8 +534,41 @@ const char* MwGetText(MwWidget handle, const char* key) { return shget(handle->text, key); } +static void* inherit_void(MwWidget handle, const char* key) { + void* v; + + if(handle->parent != NULL && (v = MwGetVoid(handle->parent, key)) != NULL) { + return v; + } + return NULL; +} + void* MwGetVoid(MwWidget handle, const char* key) { - return shget(handle->data, key); + void* v = shget(handle->data, key); + + if(v != NULL) return v; + +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) + if(strcmp(key, MwNfont) == 0 || strcmp(key, MwNboldFont) == 0) { + v = inherit_void(handle, key); + + if(v == NULL) { + MwWidget w = handle; + + while(w != NULL && v == NULL) { + if(strcmp(key, MwNfont) == 0) { + v = w->root_font; + } else { + v = w->root_boldfont; + } + + w = w->parent; + } + } + } +#endif + + return v; } void MwVaApply(MwWidget handle, ...) { @@ -576,43 +636,8 @@ void MwVaListApply(MwWidget handle, va_list va) { } } -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) -static void set_font(MwWidget handle) { - void* f; - MwWidget h = handle; - while(h != NULL) { - if((f = MwGetVoid(h, MwNfont)) != NULL) { - MwSetVoid(handle, MwNfont, f); - return; - } - h = h->parent; - } - f = MwFontLoad(MwTTFData, MwTTFDataSize); - MwSetVoid(handle, MwNfont, f); -} - -static void set_boldfont(MwWidget handle) { - void* f; - MwWidget h = handle; - while(h != NULL) { - if((f = MwGetVoid(h, MwNboldFont)) != NULL) { - MwSetVoid(handle, MwNboldFont, f); - return; - } - h = h->parent; - } - f = MwFontLoad(MwBoldTTFData, MwBoldTTFDataSize); - MwSetVoid(handle, MwNboldFont, f); -} -#endif - void MwSetDefault(MwWidget handle) { if(handle->lowlevel != NULL) MwLLSetCursor(handle->lowlevel, &MwCursorDefault, &MwCursorDefaultMask); - -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) - set_font(handle); - set_boldfont(handle); -#endif } void MwHideCursor(MwWidget handle) { From 3dec3ff0da021faabe2f186eb2c4b4826d77dff4 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 15 Jan 2026 05:16:47 +0900 Subject: [PATCH 128/836] format --- include/Mw/LowLevel/Cocoa.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 4ff9f494e..06afe7815 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -23,7 +23,7 @@ struct _MwLLCocoaColor { struct _MwLLCocoaPixmap { struct _MwLLCommonPixmap common; - void* real; + void* real; }; #endif From e2f34df4e33fb0bb347b752fff93af5a48161056 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 15 Jan 2026 05:31:04 +0900 Subject: [PATCH 129/836] format objective c files --- .clang-format | 1 - Makefile.pl | 2 +- src/backend/cocoa.m | 502 +++++++++++++++++++++++--------------------- 3 files changed, 261 insertions(+), 244 deletions(-) diff --git a/.clang-format b/.clang-format index beacb203a..376186b37 100644 --- a/.clang-format +++ b/.clang-format @@ -1,5 +1,4 @@ --- -Language: Cpp UseTab: Always TabWidth: 8 AlignConsecutiveAssignments: diff --git a/Makefile.pl b/Makefile.pl index f710f2774..519781ecd 100755 --- a/Makefile.pl +++ b/Makefile.pl @@ -184,7 +184,7 @@ print(OUT " cp -rf include \$(DESTDIR)\$(PREFIX)/\n"); print(OUT "\n"); print(OUT "format:\n"); print(OUT -" clang-format --verbose -i `find src include examples -name \"*.c\" -or -name \"*.h\"`\n" +" clang-format --verbose -i `find src include examples -name \"*.c\" -or -name \"*.h\" -or -name \"*.m\"`\n" ); print(OUT " perltidy -b -bext=\"/\" --paren-tightness=2 `find tools pl Makefile.pl -name \"*.pl\"`\n" diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 4e0b0c315..6d118f34e 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -13,433 +13,451 @@ #include "../../external/stb_ds.h" @interface MilskoCocoaPixmap : NSObject { - NSImage *image; + NSImage* image; } -+ (MilskoCocoaPixmap *)newWithWidth:(int)width height:(int)height; -- (void)updateWithData:(void *)data; ++ (MilskoCocoaPixmap*)newWithWidth:(int)width height:(int)height; +- (void)updateWithData:(void*)data; - (void)destroy; @end @implementation MilskoCocoaPixmap -+ (MilskoCocoaPixmap *)newWithWidth:(int)width height:(int)height { - MilskoCocoaPixmap *p = [MilskoCocoaPixmap alloc]; - NSSize sz; ++ (MilskoCocoaPixmap*)newWithWidth:(int)width height:(int)height { + MilskoCocoaPixmap* p = [MilskoCocoaPixmap alloc]; + NSSize sz; - sz.width = width; - sz.height = height; + sz.width = width; + sz.height = height; - p->image = [[NSImage alloc] initWithSize:sz]; + p->image = [[NSImage alloc] initWithSize:sz]; - return p; + return p; } -- (void)updateWithData:(void *)data { +- (void)updateWithData:(void*)data { } - (void)destroy { - [self->image dealloc]; + [self->image dealloc]; } @end @interface MilskoCocoa : NSObject { - NSApplication *application; - NSWindow *window; - NSRect rect; + NSApplication* application; + NSWindow* window; + NSRect rect; } -+ (MilskoCocoa *)newWithParent:(MwLL)parent - x:(int)x - y:(int)y - width:(int)width - height:(int)height; -- (void)polygonWithPoints:(MwPoint *)points - points_count:(int)points_count - color:(MwLLColor)color; -- (void)lineWithPoints:(MwPoint *)points color:(MwLLColor)color; -- (void)getX:(int *)x Y:(int *)y W:(unsigned int *)w H:(unsigned int *)h; ++ (MilskoCocoa*)newWithParent:(MwLL)parent + x:(int)x + y:(int)y + width:(int)width + height:(int)height; +- (void)polygonWithPoints:(MwPoint*)points + points_count:(int)points_count + color:(MwLLColor)color; +- (void)lineWithPoints:(MwPoint*)points color:(MwLLColor)color; +- (void)getX:(int*)x Y:(int*)y W:(unsigned int*)w H:(unsigned int*)h; - (void)setX:(int)x Y:(int)y; - (void)setW:(int)w H:(int)h; - (int)pending; - (void)getNextEvent; -- (void)setTitle:(const char *)title; -- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect *)rect; +- (void)setTitle:(const char*)title; +- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect*)rect; - (void)setIcon:(MwLLPixmap)pixmap; - (void)forceRender; -- (void)setCursor:(MwCursor *)image mask:(MwCursor *)mask; -- (void)detachWithPoint:(MwPoint *)point; +- (void)setCursor:(MwCursor*)image mask:(MwCursor*)mask; +- (void)detachWithPoint:(MwPoint*)point; - (void)show:(int)show; - (void)makePopupWithParent:(MwLL)parent; - (void)setSizeHintsWithMinX:(int)minx - MinY:(int)miny - MaxX:(int)maxx - MaxY:(int)maxy; + MinY:(int)miny + MaxX:(int)maxx + MaxY:(int)maxy; - (void)makeBorderless:(int)toggle; - (void)focus; - (void)grabPointer:(int)toggle; -- (void)setClipboard:(const char *)text; +- (void)setClipboard:(const char*)text; - (void)makeToolWindow; -- (void)getCursorCoord:(MwPoint *)point; -- (void)getScreenSize:(MwRect *)rect; +- (void)getCursorCoord:(MwPoint*)point; +- (void)getScreenSize:(MwRect*)rect; - (void)destroy; @end @implementation MilskoCocoa -+ (MilskoCocoa *)newWithParent:(MwLL)parent - x:(int)x - y:(int)y - width:(int)width - height:(int)height { - MilskoCocoa *c = [MilskoCocoa alloc]; - bool centerX = false, centerY = false; ++ (MilskoCocoa*)newWithParent:(MwLL)parent + x:(int)x + y:(int)y + width:(int)width + height:(int)height { + MilskoCocoa* c = [MilskoCocoa alloc]; + bool centerX = false, centerY = false; - if (x == MwDEFAULT) { - x = 0; - centerX = true; - } - if (y == MwDEFAULT) { - y = 0; - centerY = true; - } - c->application = [NSApplication sharedApplication]; + if(x == MwDEFAULT) { + x = 0; + centerX = true; + } + if(y == MwDEFAULT) { + y = 0; + centerY = true; + } + c->application = [NSApplication sharedApplication]; - c->rect = NSMakeRect(x, y, width, height); + c->rect = NSMakeRect(x, y, width, height); - c->window = [[NSWindow alloc] - initWithContentRect:c->rect - styleMask:parent == NULL - ? (NSTitledWindowMask | NSClosableWindowMask | - NSMiniaturizableWindowMask | - NSResizableWindowMask) - : NSBorderlessWindowMask - backing:NSBackingStoreBuffered - defer:NO]; - [c->window makeKeyAndOrderFront:c->application]; + c->window = [[NSWindow alloc] + initWithContentRect:c->rect + styleMask:parent == NULL + ? (NSTitledWindowMask | NSClosableWindowMask | + NSMiniaturizableWindowMask | + NSResizableWindowMask) + : NSBorderlessWindowMask + backing:NSBackingStoreBuffered + defer:NO]; + [c->window makeKeyAndOrderFront:c->application]; - if (parent != NULL) { - MilskoCocoa *p = parent->cocoa.real; - [p->window addChildWindow:c->window ordered:NSWindowAbove]; - } + if(parent != NULL) { + MilskoCocoa* p = parent->cocoa.real; + [p->window addChildWindow:c->window ordered:NSWindowAbove]; + } - return c; + return c; } -- (void)polygonWithPoints:(MwPoint *)points - points_count:(int)points_count - color:(MwLLColor)color { +- (void)polygonWithPoints:(MwPoint*)points + points_count:(int)points_count + color:(MwLLColor)color { }; -- (void)lineWithPoints:(MwPoint *)points color:(MwLLColor)color { +- (void)lineWithPoints:(MwPoint*)points color:(MwLLColor)color { }; -- (void)getX:(int *)x Y:(int *)y W:(unsigned int *)w H:(unsigned int *)h { - NSRect frame = [self->window frame]; +- (void)getX:(int*)x Y:(int*)y W:(unsigned int*)w H:(unsigned int*)h { + NSRect frame = [self->window frame]; - *x = frame.origin.x; - *y = frame.origin.y; - *w = frame.size.width; - *h = frame.size.height; + *x = frame.origin.x; + *y = frame.origin.y; + *w = frame.size.width; + *h = frame.size.height; }; - (void)setX:(int)x Y:(int)y { - NSPoint p; - p.x = x; - p.y = y; - NSRect frame = [self->window frame]; - frame.origin.x = x; - frame.origin.y = y; - [self->window setFrame: frame display: YES animate: true]; + NSPoint p; + p.x = x; + p.y = y; + NSRect frame = [self->window frame]; + frame.origin.x = x; + frame.origin.y = y; + [self->window setFrame:frame display:YES animate:true]; }; - (void)setW:(int)w H:(int)h { - NSRect frame = [self->window frame]; - frame.size.width = w; - frame.size.height = h; - [self->window setFrame: frame display: YES animate: true]; + NSRect frame = [self->window frame]; + frame.size.width = w; + frame.size.height = h; + [self->window setFrame:frame display:YES animate:true]; }; - (int)pending { - return 1; + return 1; }; - (void)getNextEvent { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSEvent *event = [self->application nextEventMatchingMask:NSAnyEventMask - untilDate:nil - inMode:NSDefaultRunLoopMode - dequeue:YES]; + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + NSEvent* event = [self->application nextEventMatchingMask:NSAnyEventMask + untilDate:nil + inMode:NSDefaultRunLoopMode + dequeue:YES]; - if (event != nil) { - printf("got event: %p\n", event); - } - [pool release]; + if(event != nil) { + printf("got event: %p\n", event); + } + [pool release]; }; -- (void)setTitle:(const char *)title { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - [self->window - setTitleWithRepresentedFilename:[NSString stringWithUTF8String:title]]; - [pool release]; +- (void)setTitle:(const char*)title { + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + [self->window + setTitleWithRepresentedFilename:[NSString stringWithUTF8String:title]]; + [pool release]; }; -- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect *)rect { +- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect*)rect { }; - (void)setIcon:(MwLLPixmap)pixmap { }; - (void)forceRender { }; -- (void)setCursor:(MwCursor *)image mask:(MwCursor *)mask { +- (void)setCursor:(MwCursor*)image mask:(MwCursor*)mask { }; -- (void)detachWithPoint:(MwPoint *)point { +- (void)detachWithPoint:(MwPoint*)point { }; - (void)show:(int)show { }; - (void)makePopupWithParent:(MwLL)parent { }; - (void)setSizeHintsWithMinX:(int)minx - MinY:(int)miny - MaxX:(int)maxx - MaxY:(int)maxy { + MinY:(int)miny + MaxX:(int)maxx + MaxY:(int)maxy { }; - (void)makeBorderless:(int)toggle { - uint32_t mask = [self->window styleMask]; - if (mask & NSBorderlessWindowMask) { - mask ^= NSBorderlessWindowMask; - mask |= NSTitledWindowMask; - } else { - mask |= NSBorderlessWindowMask; - mask ^= NSTitledWindowMask; - } - [self->window initWithContentRect:self->rect - styleMask:mask - backing:NSBackingStoreBuffered - defer:NO]; + uint32_t mask = [self->window styleMask]; + if(mask & NSBorderlessWindowMask) { + mask ^= NSBorderlessWindowMask; + mask |= NSTitledWindowMask; + } else { + mask |= NSBorderlessWindowMask; + mask ^= NSTitledWindowMask; + } + [self->window initWithContentRect:self->rect + styleMask:mask + backing:NSBackingStoreBuffered + defer:NO]; }; - (void)focus { - [self->window makeMainWindow]; + [self->window makeMainWindow]; }; - (void)grabPointer:(int)toggle { - /* MacOS didn't have a "pointer grab" function until 10.13.2 so I need to do - * this manually */ + /* MacOS didn't have a "pointer grab" function until 10.13.2 so I need to do + * this manually */ }; -- (void)setClipboard:(const char *)text { +- (void)setClipboard:(const char*)text { }; - (void)getClipboard { }; - (void)makeToolWindow { }; -- (void)getCursorCoord:(MwPoint *)point { - NSPoint p = [NSEvent mouseLocation]; - point->x = p.x; - point->y = p.y; +- (void)getCursorCoord:(MwPoint*)point { + NSPoint p = [NSEvent mouseLocation]; + point->x = p.x; + point->y = p.y; }; -- (void)getScreenSize:(MwRect *)_rect { - NSScreen *screen = [self->window screen]; - _rect->x = [screen frame].origin.x; - _rect->y = [screen frame].origin.y; - _rect->width = [screen frame].size.width; - _rect->height = [screen frame].size.height; +- (void)getScreenSize:(MwRect*)_rect { + NSScreen* screen = [self->window screen]; + _rect->x = [screen frame].origin.x; + _rect->y = [screen frame].origin.y; + _rect->width = [screen frame].size.width; + _rect->height = [screen frame].size.height; }; - (void)destroy { - [self->window dealloc]; + [self->window dealloc]; } @end static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { - MwLL r; - (void)x; - (void)y; - (void)width; - (void)height; + MwLL r; + (void)x; + (void)y; + (void)width; + (void)height; - r = malloc(sizeof(*r)); + r = malloc(sizeof(*r)); - MwLLCreateCommon(r); + MwLLCreateCommon(r); - MilskoCocoa *o = - [MilskoCocoa newWithParent:parent x:x y:y width:width height:height]; - r->cocoa.real = o; + MilskoCocoa* o = + [MilskoCocoa newWithParent:parent + x:x + y:y + width:width + height:height]; + r->cocoa.real = o; - return r; + return r; } static void MwLLDestroyImpl(MwLL handle) { - MilskoCocoa *h = handle->cocoa.real; + MilskoCocoa* h = handle->cocoa.real; - [h destroy]; + [h destroy]; - MwLLDestroyCommon(handle); + MwLLDestroyCommon(handle); - free(handle); + free(handle); } -static void MwLLBeginDrawImpl(MwLL handle) { (void)handle; } - -static void MwLLEndDrawImpl(MwLL handle) { (void)handle; } - -static void MwLLPolygonImpl(MwLL handle, MwPoint *points, int points_count, - MwLLColor color) { - MilskoCocoa *h = handle->cocoa.real; - [h polygonWithPoints:points points_count:points_count color:color]; +static void MwLLBeginDrawImpl(MwLL handle) { + (void)handle; } -static void MwLLLineImpl(MwLL handle, MwPoint *points, MwLLColor color) { - MilskoCocoa *h = handle->cocoa.real; - [h lineWithPoints:points color:color]; +static void MwLLEndDrawImpl(MwLL handle) { + (void)handle; +} + +static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, + MwLLColor color) { + MilskoCocoa* h = handle->cocoa.real; + [h polygonWithPoints:points points_count:points_count color:color]; +} + +static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { + MilskoCocoa* h = handle->cocoa.real; + [h lineWithPoints:points color:color]; } static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { - MwLLColor c = malloc(sizeof(*c)); - MwLLColorUpdate(handle, c, r, g, b); - return c; + MwLLColor c = malloc(sizeof(*c)); + MwLLColorUpdate(handle, c, r, g, b); + return c; } static void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { - (void)handle; + (void)handle; - c->common.red = r; - c->common.green = g; - c->common.blue = b; + c->common.red = r; + c->common.green = g; + c->common.blue = b; } -static void MwLLGetXYWHImpl(MwLL handle, int *x, int *y, unsigned int *w, - unsigned int *height) { - MilskoCocoa *h = handle->cocoa.real; - [h getX:x Y:y W:w H:height]; +static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, + unsigned int* height) { + MilskoCocoa* h = handle->cocoa.real; + [h getX:x Y:y W:w H:height]; } static void MwLLSetXYImpl(MwLL handle, int x, int y) { - MilskoCocoa *h = handle->cocoa.real; - [h setX:x Y:y]; + MilskoCocoa* h = handle->cocoa.real; + [h setX:x Y:y]; } static void MwLLSetWHImpl(MwLL handle, int w, int height) { - MilskoCocoa *h = handle->cocoa.real; - [h setW:w H:height]; + MilskoCocoa* h = handle->cocoa.real; + [h setW:w H:height]; } -static void MwLLFreeColorImpl(MwLLColor color) { free(color); } +static void MwLLFreeColorImpl(MwLLColor color) { + free(color); +} static int MwLLPendingImpl(MwLL handle) { - MilskoCocoa *h = handle->cocoa.real; - return [h pending]; + MilskoCocoa* h = handle->cocoa.real; + return [h pending]; } static void MwLLNextEventImpl(MwLL handle) { - MilskoCocoa *h = handle->cocoa.real; - [h getNextEvent]; + MilskoCocoa* h = handle->cocoa.real; + [h getNextEvent]; } -static void MwLLSetTitleImpl(MwLL handle, const char *title) { - MilskoCocoa *h = handle->cocoa.real; - [h setTitle:title]; +static void MwLLSetTitleImpl(MwLL handle, const char* title) { + MilskoCocoa* h = handle->cocoa.real; + [h setTitle:title]; } -static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char *data, - int width, int height) { - (void)handle; +static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, + int width, int height) { + (void)handle; - MwLLPixmap r = malloc(sizeof(*r)); + MwLLPixmap r = malloc(sizeof(*r)); - r->common.raw = malloc(4 * width * height); - memcpy(r->common.raw, data, 4 * width * height); + r->common.raw = malloc(4 * width * height); + memcpy(r->common.raw, data, 4 * width * height); - r->common.width = width; - r->common.height = height; + r->common.width = width; + r->common.height = height; - r->cocoa.real = [MilskoCocoaPixmap newWithWidth:width height:height]; + r->cocoa.real = [MilskoCocoaPixmap newWithWidth:width height:height]; - MwLLPixmapUpdate(r); - return r; + MwLLPixmapUpdate(r); + return r; } static void MwLLPixmapUpdateImpl(MwLLPixmap pixmap) { - MilskoCocoaPixmap *p = pixmap->cocoa.real; - [p updateWithData:pixmap->common.raw]; + MilskoCocoaPixmap* p = pixmap->cocoa.real; + [p updateWithData:pixmap->common.raw]; } static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { - MilskoCocoaPixmap *p = pixmap->cocoa.real; - [p destroy]; - free(pixmap); + MilskoCocoaPixmap* p = pixmap->cocoa.real; + [p destroy]; + free(pixmap); } -static void MwLLDrawPixmapImpl(MwLL handle, MwRect *rect, MwLLPixmap pixmap) { - MilskoCocoa *h = handle->cocoa.real; - [h drawPixmap:pixmap rect:rect]; +static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { + MilskoCocoa* h = handle->cocoa.real; + [h drawPixmap:pixmap rect:rect]; } static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { - MilskoCocoa *h = handle->cocoa.real; - [h setIcon:pixmap]; + MilskoCocoa* h = handle->cocoa.real; + [h setIcon:pixmap]; } static void MwLLForceRenderImpl(MwLL handle) { - MilskoCocoa *h = handle->cocoa.real; - [h forceRender]; + MilskoCocoa* h = handle->cocoa.real; + [h forceRender]; } -static void MwLLSetCursorImpl(MwLL handle, MwCursor *image, MwCursor *mask) { - MilskoCocoa *h = handle->cocoa.real; - [h setCursor:image mask:mask]; +static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { + MilskoCocoa* h = handle->cocoa.real; + [h setCursor:image mask:mask]; } -static void MwLLDetachImpl(MwLL handle, MwPoint *point) { - MilskoCocoa *h = handle->cocoa.real; - [h detachWithPoint:point]; +static void MwLLDetachImpl(MwLL handle, MwPoint* point) { + MilskoCocoa* h = handle->cocoa.real; + [h detachWithPoint:point]; } static void MwLLShowImpl(MwLL handle, int show) { - MilskoCocoa *h = handle->cocoa.real; - [h show:show]; + MilskoCocoa* h = handle->cocoa.real; + [h show:show]; } static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { - MilskoCocoa *h = handle->cocoa.real; - [h makePopupWithParent:parent]; + MilskoCocoa* h = handle->cocoa.real; + [h makePopupWithParent:parent]; } static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, - int maxy) { - MilskoCocoa *h = handle->cocoa.real; - [h setSizeHintsWithMinX:minx MinY:miny MaxX:maxx MaxY:maxy]; + int maxy) { + MilskoCocoa* h = handle->cocoa.real; + [h setSizeHintsWithMinX:minx MinY:miny MaxX:maxx MaxY:maxy]; } static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { - MilskoCocoa *h = handle->cocoa.real; - [h makeBorderless:toggle]; + MilskoCocoa* h = handle->cocoa.real; + [h makeBorderless:toggle]; } static void MwLLFocusImpl(MwLL handle) { - MilskoCocoa *h = handle->cocoa.real; - [h focus]; + MilskoCocoa* h = handle->cocoa.real; + [h focus]; } static void MwLLGrabPointerImpl(MwLL handle, int toggle) { - MilskoCocoa *h = handle->cocoa.real; - [h grabPointer:toggle]; + MilskoCocoa* h = handle->cocoa.real; + [h grabPointer:toggle]; } -static void MwLLSetClipboardImpl(MwLL handle, const char *text) { - MilskoCocoa *h = handle->cocoa.real; - [h setClipboard:text]; +static void MwLLSetClipboardImpl(MwLL handle, const char* text) { + MilskoCocoa* h = handle->cocoa.real; + [h setClipboard:text]; } -static void MwLLGetClipboardImpl(MwLL handle) { (void)handle; } +static void MwLLGetClipboardImpl(MwLL handle) { + (void)handle; +} static void MwLLMakeToolWindowImpl(MwLL handle) { - MilskoCocoa *h = handle->cocoa.real; - [h makeToolWindow]; + MilskoCocoa* h = handle->cocoa.real; + [h makeToolWindow]; } -static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint *point) { - MilskoCocoa *h = handle->cocoa.real; - [h getCursorCoord:point]; +static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { + MilskoCocoa* h = handle->cocoa.real; + [h getCursorCoord:point]; } -static void MwLLGetScreenSizeImpl(MwLL handle, MwRect *rect) { - MilskoCocoa *h = handle->cocoa.real; - [h getScreenSize:rect]; +static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { + MilskoCocoa* h = handle->cocoa.real; + [h getScreenSize:rect]; } -static void MwLLBeginStateChangeImpl(MwLL handle) { MwLLShow(handle, 0); } +static void MwLLBeginStateChangeImpl(MwLL handle) { + MwLLShow(handle, 0); +} -static void MwLLEndStateChangeImpl(MwLL handle) { MwLLShow(handle, 1); } +static void MwLLEndStateChangeImpl(MwLL handle) { + MwLLShow(handle, 1); +} -static int MwLLCocoaCallInitImpl(void) { return 0; } +static int MwLLCocoaCallInitImpl(void) { + return 0; +} #include "call.c" CALL(Cocoa); From a71096711542833ac1ecdf96369738560884f157 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 14 Jan 2026 13:47:49 -0700 Subject: [PATCH 130/836] cocoa: move interfaces to header (guarded by ifdef __OBJC__) --- include/Mw/LowLevel/Cocoa.h | 61 +++++++++++++++++++++++++++++++++++-- src/backend/cocoa.m | 51 ------------------------------- 2 files changed, 59 insertions(+), 53 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 06afe7815..868d6addd 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -10,11 +10,67 @@ #include #include +#ifdef __OBJC__ +@interface MilskoCocoaPixmap : NSObject { + NSImage* image; +} ++ (MilskoCocoaPixmap*)newWithWidth:(int)width height:(int)height; +- (void)updateWithData:(void*)data; +- (void)destroy; +@end +@interface MilskoCocoa : NSObject { + NSApplication* application; + NSWindow* window; + NSRect rect; +} + ++ (MilskoCocoa*)newWithParent:(MwLL)parent + x:(int)x + y:(int)y + width:(int)width + height:(int)height; +- (void)polygonWithPoints:(MwPoint*)points + points_count:(int)points_count + color:(MwLLColor)color; +- (void)lineWithPoints:(MwPoint*)points color:(MwLLColor)color; +- (void)getX:(int*)x Y:(int*)y W:(unsigned int*)w H:(unsigned int*)h; +- (void)setX:(int)x Y:(int)y; +- (void)setW:(int)w H:(int)h; +- (int)pending; +- (void)getNextEvent; +- (void)setTitle:(const char*)title; +- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect*)rect; +- (void)setIcon:(MwLLPixmap)pixmap; +- (void)forceRender; +- (void)setCursor:(MwCursor*)image mask:(MwCursor*)mask; +- (void)detachWithPoint:(MwPoint*)point; +- (void)show:(int)show; +- (void)makePopupWithParent:(MwLL)parent; +- (void)setSizeHintsWithMinX:(int)minx + MinY:(int)miny + MaxX:(int)maxx + MaxY:(int)maxy; +- (void)makeBorderless:(int)toggle; +- (void)focus; +- (void)grabPointer:(int)toggle; +- (void)setClipboard:(const char*)text; +- (void)makeToolWindow; +- (void)getCursorCoord:(MwPoint*)point; +- (void)getScreenSize:(MwRect*)rect; +- (void)destroy; + +@end +#define OBJC(x) x +#else +#define OBJC(x) void* +#endif + MWDECL int MwLLCocoaCallInit(void); struct _MwLLCocoa { struct _MwLLCommon common; - void* real; + OBJC(MilskoCocoa*) + real; }; struct _MwLLCocoaColor { @@ -23,7 +79,8 @@ struct _MwLLCocoaColor { struct _MwLLCocoaPixmap { struct _MwLLCommonPixmap common; - void* real; + OBJC(MilskoCocoaPixmap*) + real; }; #endif diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 6d118f34e..b5ccd4093 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -12,14 +12,6 @@ #include "../../external/stb_ds.h" -@interface MilskoCocoaPixmap : NSObject { - NSImage* image; -} -+ (MilskoCocoaPixmap*)newWithWidth:(int)width height:(int)height; -- (void)updateWithData:(void*)data; -- (void)destroy; -@end - @implementation MilskoCocoaPixmap + (MilskoCocoaPixmap*)newWithWidth:(int)width height:(int)height { @@ -40,49 +32,6 @@ } @end -@interface MilskoCocoa : NSObject { - NSApplication* application; - NSWindow* window; - NSRect rect; -} - -+ (MilskoCocoa*)newWithParent:(MwLL)parent - x:(int)x - y:(int)y - width:(int)width - height:(int)height; -- (void)polygonWithPoints:(MwPoint*)points - points_count:(int)points_count - color:(MwLLColor)color; -- (void)lineWithPoints:(MwPoint*)points color:(MwLLColor)color; -- (void)getX:(int*)x Y:(int*)y W:(unsigned int*)w H:(unsigned int*)h; -- (void)setX:(int)x Y:(int)y; -- (void)setW:(int)w H:(int)h; -- (int)pending; -- (void)getNextEvent; -- (void)setTitle:(const char*)title; -- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect*)rect; -- (void)setIcon:(MwLLPixmap)pixmap; -- (void)forceRender; -- (void)setCursor:(MwCursor*)image mask:(MwCursor*)mask; -- (void)detachWithPoint:(MwPoint*)point; -- (void)show:(int)show; -- (void)makePopupWithParent:(MwLL)parent; -- (void)setSizeHintsWithMinX:(int)minx - MinY:(int)miny - MaxX:(int)maxx - MaxY:(int)maxy; -- (void)makeBorderless:(int)toggle; -- (void)focus; -- (void)grabPointer:(int)toggle; -- (void)setClipboard:(const char*)text; -- (void)makeToolWindow; -- (void)getCursorCoord:(MwPoint*)point; -- (void)getScreenSize:(MwRect*)rect; -- (void)destroy; - -@end - @implementation MilskoCocoa + (MilskoCocoa*)newWithParent:(MwLL)parent From 04f1a94cb5fa7992f77af8d890d10a2290376206 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 14 Jan 2026 17:13:12 -0700 Subject: [PATCH 131/836] cocoa: attempted drawing --- include/Mw/LowLevel.h | 7 +- include/Mw/LowLevel/Cocoa.h | 39 ++++++++++- src/backend/cocoa.m | 127 +++++++++++++++++++++++++++++------- 3 files changed, 144 insertions(+), 29 deletions(-) diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 96ff8e849..6bea6cd3c 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -6,6 +6,7 @@ #ifndef __MW_LOWLEVEL_H__ #define __MW_LOWLEVEL_H__ +#include "Mw/BaseTypes.h" #include typedef struct _MwLLHandler* MwLLHandler; @@ -40,9 +41,9 @@ struct _MwLLCommon { }; struct _MwLLCommonColor { - int red; - int green; - int blue; + MwU8 red; + MwU8 green; + MwU8 blue; }; struct _MwLLCommonPixmap { diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 868d6addd..2d1d9bdea 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -11,17 +11,50 @@ #include #ifdef __OBJC__ + +#import +#import +#import + +#ifdef __APPLE__ +#import +#else +#import +#endif + @interface MilskoCocoaPixmap : NSObject { + int width; + int height; + NSData* data; NSImage* image; } + + (MilskoCocoaPixmap*)newWithWidth:(int)width height:(int)height; - (void)updateWithData:(void*)data; - (void)destroy; + +/* using @property to create instance variables fucks up 10.4 gcc for some reason? */ +- (NSImage*)image; + @end + +@interface MilskoCocoaView : NSView { + CGContextRef cg; + CGColorSpaceRef space; + CGDataProviderRef provider; + MwU32* buf; + float width; + float height; +} + +- (CGContextRef)context; +@end + @interface MilskoCocoa : NSObject { - NSApplication* application; - NSWindow* window; - NSRect rect; + NSApplication* application; + NSWindow* window; + NSRect rect; + MilskoCocoaView* view; } + (MilskoCocoa*)newWithParent:(MwLL)parent diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index b5ccd4093..cd45ae294 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1,34 +1,40 @@ -#ifndef USE_COCOA -#define USE_COCOA -#include -#include -#endif - -#import -#import -#import - +#include #include +#include +#include +#include #include "../../external/stb_ds.h" +#include "Mw/BaseTypes.h" @implementation MilskoCocoaPixmap + (MilskoCocoaPixmap*)newWithWidth:(int)width height:(int)height { MilskoCocoaPixmap* p = [MilskoCocoaPixmap alloc]; - NSSize sz; - sz.width = width; - sz.height = height; - - p->image = [[NSImage alloc] initWithSize:sz]; + p->width = width; + p->height = height; + p->data = NULL; + p->image = NULL; return p; } -- (void)updateWithData:(void*)data { +- (void)updateWithData:(void*)_data { + [self destroy]; + + self->data = [NSData dataWithBytes:_data length:self->width * self->height * 4]; + self->image = [[NSImage alloc] initWithData:self->data]; } - (void)destroy { - [self->image dealloc]; + if(self->data != NULL) { + [self->data dealloc]; + } + if(self->image != NULL) { + [self->image dealloc]; + } +} +- (NSImage*)image { + return self->image; } @end @@ -68,13 +74,32 @@ if(parent != NULL) { MilskoCocoa* p = parent->cocoa.real; [p->window addChildWindow:c->window ordered:NSWindowAbove]; + } else { + [c->application activateIgnoringOtherApps:true]; } + c->view = [[MilskoCocoaView alloc] initWithFrame:c->rect]; + [c->window setContentView:c->view]; + return c; } - (void)polygonWithPoints:(MwPoint*)points points_count:(int)points_count color:(MwLLColor)color { + int i; + CGContextRef cg = [self->view context]; + + CGContextSetRGBFillColor(cg, color->common.red / 255., color->common.blue / 255., color->common.green / 255., 1); + CGContextBeginPath(cg); + for(i = 0; i < points_count; i++) { + CGContextMoveToPoint(cg, points[i].x, points[i].y); + if(i < points_count - 1) { + CGContextAddLineToPoint(cg, points[i + 1].x, points[i + 1].y); + } + } + CGContextFillPath(cg); + + // [self->view setNeedsDisplay:true]; }; - (void)lineWithPoints:(MwPoint*)points color:(MwLLColor)color { }; @@ -105,15 +130,22 @@ return 1; }; - (void)getNextEvent { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - NSEvent* event = [self->application nextEventMatchingMask:NSAnyEventMask - untilDate:nil - inMode:NSDefaultRunLoopMode - dequeue:YES]; + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + + NSEvent* event = [self->application nextEventMatchingMask:NSAnyEventMask + untilDate:nil + inMode:NSDefaultRunLoopMode + dequeue:YES]; if(event != nil) { printf("got event: %p\n", event); } + + [self->application sendEvent:event]; + + /* this should be in the draw functions but it's here for now for testing */ + [self->view setNeedsDisplay:true]; + [pool release]; }; - (void)setTitle:(const char*)title { @@ -122,7 +154,9 @@ setTitleWithRepresentedFilename:[NSString stringWithUTF8String:title]]; [pool release]; }; -- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect*)rect { +- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect*)_rect { + MilskoCocoaPixmap* p = pixmap->cocoa.real; + [[p image] drawAtPoint:NSMakePoint(_rect->x, _rect->y) fromRect:NSMakeRect(_rect->x, _rect->y, _rect->width, _rect->height) operation:NSCompositeClear fraction:1.0]; }; - (void)setIcon:(MwLLPixmap)pixmap { }; @@ -183,6 +217,53 @@ - (void)destroy { [self->window dealloc]; } + +@end + +@implementation MilskoCocoaView +- (id)initWithFrame:(NSRect)frame { + self = [super initWithFrame:frame]; + self->width = frame.size.width; + self->height = frame.size.height; + self->buf = malloc(self->width * self->height * 4); + self->space = CGColorSpaceCreateDeviceRGB(); + self->cg = CGBitmapContextCreate(self->buf, + self->width, + self->height, + CHAR_BIT, + self->width * sizeof(uint32_t), + self->space, kCGBitmapByteOrder32Host | kCGImageAlphaPremultipliedLast); + assert(self->cg); + printf("%p\n", self->cg); + return self; +} + +- (CGContextRef)context { + return self->cg; +} + +- (void)drawRect:(NSRect)dirtyRect { + [super drawRect:dirtyRect]; + if(self) { + + CGImageRef img = CGBitmapContextCreateImage(self->cg); + if(!img) { + return; + } + printf("printed image\n"); + + CGContextDrawImage([[NSGraphicsContext currentContext] graphicsPort], CGRectMake(0, 0, self->width, self->height), img); + CGImageRelease(img); + } + // printf("%0.2f %0.2f %0.2f %0.2f\n", dirtyRect.origin.x, dirtyRect.origin.y, dirtyRect.size.width, dirtyRect.size.height); +} + +- (void)destroy { + free(self->buf); + CGContextRelease(self->cg); + CGColorSpaceRelease(self->space); +} + @end static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { From b458613f87b1cfcf05e0cf102688814861010d9f Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 20 Jan 2026 14:05:03 +0900 Subject: [PATCH 132/836] update --- src/abstract/time.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/abstract/time.c b/src/abstract/time.c index 550f47a6c..727997894 100644 --- a/src/abstract/time.c +++ b/src/abstract/time.c @@ -46,7 +46,10 @@ long MwTimeGetTick(void) { } void MwTimeSleep(int ms) { -#if 0 +#ifdef __NetBSD__ + usleep(ms * 100); +#else + /* i don't know why this method does not work well on netbsd */ struct timespec ts; ts.tv_sec = ms / 1000; @@ -54,6 +57,5 @@ void MwTimeSleep(int ms) { nanosleep(&ts, NULL); #endif - usleep(ms * 100); } #endif From 8d86f185f2a7882a98977e3e0d88c637f166d1a0 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 23 Jan 2026 13:57:05 +0900 Subject: [PATCH 133/836] use milsko's typedefs instead in cocoa --- include/Mw/MachDep.h | 1 + src/backend/cocoa.m | 11 ++++------- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index c8cb06052..bc34270b5 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -45,6 +45,7 @@ #include #include #include +#include #endif #ifdef __APPLE__ diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index cd45ae294..42c38a57c 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1,11 +1,8 @@ -#include #include -#include -#include -#include + +#include #include "../../external/stb_ds.h" -#include "Mw/BaseTypes.h" @implementation MilskoCocoaPixmap @@ -176,7 +173,7 @@ MaxY:(int)maxy { }; - (void)makeBorderless:(int)toggle { - uint32_t mask = [self->window styleMask]; + MwU32 mask = [self->window styleMask]; if(mask & NSBorderlessWindowMask) { mask ^= NSBorderlessWindowMask; mask |= NSTitledWindowMask; @@ -231,7 +228,7 @@ self->width, self->height, CHAR_BIT, - self->width * sizeof(uint32_t), + self->width * sizeof(MwU32), self->space, kCGBitmapByteOrder32Host | kCGImageAlphaPremultipliedLast); assert(self->cg); printf("%p\n", self->cg); From 5413332506b2929c30c169a3f68934252d39cfff Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 23 Jan 2026 15:29:32 +0900 Subject: [PATCH 134/836] introduce MwWidget->berserk --- include/Mw/TypeDefs.h | 2 ++ src/abstract/time.c | 5 ----- src/core.c | 3 ++- src/widget/opengl.c | 42 +++++++++++++++++++++++++++++++++++++++--- 4 files changed, 43 insertions(+), 9 deletions(-) diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index d175c2b36..d6bd1da88 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -104,6 +104,8 @@ struct _MwWidget { void* root_font; void* root_boldfont; + + int berserk; }; #endif diff --git a/src/abstract/time.c b/src/abstract/time.c index 727997894..1050c46d3 100644 --- a/src/abstract/time.c +++ b/src/abstract/time.c @@ -46,16 +46,11 @@ long MwTimeGetTick(void) { } void MwTimeSleep(int ms) { -#ifdef __NetBSD__ - usleep(ms * 100); -#else - /* i don't know why this method does not work well on netbsd */ struct timespec ts; ts.tv_sec = ms / 1000; ts.tv_nsec = (ms % 1000) * 1000000; nanosleep(&ts, NULL); -#endif } #endif diff --git a/src/core.c b/src/core.c index 9ec87b2bd..78d2a9468 100644 --- a/src/core.c +++ b/src/core.c @@ -154,6 +154,7 @@ MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, h->destroyed = 0; h->dark_theme = 0; h->bgcolor = NULL; + h->berserk = 0; if(parent == NULL) arrput(h->tick_list, h); @@ -392,7 +393,7 @@ void MwLoop(MwWidget handle) { more = over % (wait / 2); t = (tick + wait - more) - (t2 = MwTimeGetTick()); if(t > 0) { - MwTimeSleep(t); + if(!handle->berserk) MwTimeSleep(t); tick = MwTimeGetTick(); over -= more; } else { diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 0dedd7fed..8738b5d6a 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -56,7 +56,9 @@ typedef struct waylandopengl { #endif static int create(MwWidget handle) { - void* r = NULL; + void* r = NULL; + MwWidget w = handle; + #ifdef USE_GDI if(handle->lowlevel->common.type == MwLLBackendGDI) { PIXELFORMATDESCRIPTOR pfd; @@ -210,10 +212,16 @@ static int create(MwWidget handle) { MwSetDefault(handle); + while(w->parent != NULL) w = w->parent; + + w->berserk++; + return 0; } static void destroy(MwWidget handle) { + MwWidget w = handle; + #ifdef USE_GDI if(handle->lowlevel->common.type == MwLLBackendGDI) { gdiopengl_t* o = handle->internal; @@ -241,22 +249,48 @@ static void destroy(MwWidget handle) { } #endif + while(w->parent != NULL) w = w->parent; + + w->berserk++; + free(handle->internal); } static void mwOpenGLMakeCurrentImpl(MwWidget handle) { + /* these swap interval functions belonging here actually stink! */ + #ifdef USE_GDI if(handle->lowlevel->common.type == MwLLBackendGDI) { - gdiopengl_t* o = handle->internal; + gdiopengl_t* o = handle->internal; + void (*swap_interval_ext)(int) = NULL; o->wglMakeCurrent(o->dc, o->gl); + + if((swap_interval_ext = MwOpenGLGetProcAddress(handle, "wglSwapIntervalEXT")) != NULL) { + swap_interval_ext(1); + } } #endif #ifdef USE_X11 if(handle->lowlevel->common.type == MwLLBackendX11) { - x11opengl_t* o = handle->internal; + x11opengl_t* o = handle->internal; + void (*swap_interval_ext)(Display*, GLXDrawable, int) = NULL; + void (*swap_interval_mesa)(unsigned int) = NULL; + void (*swap_interval_sgi)(int) = NULL; o->glXMakeCurrent(handle->lowlevel->x11.display, handle->lowlevel->x11.window, o->gl); + + if((swap_interval_ext = MwOpenGLGetProcAddress(handle, "glXSwapIntervalEXT")) != NULL) { + swap_interval_ext(handle->lowlevel->x11.display, handle->lowlevel->x11.window, 1); + } + + if((swap_interval_mesa = MwOpenGLGetProcAddress(handle, "glXSwapIntervalMESA")) != NULL) { + swap_interval_mesa(1); + } + + if((swap_interval_sgi = MwOpenGLGetProcAddress(handle, "glXSwapIntervalSGI")) != NULL) { + swap_interval_sgi(1); + } } #endif #ifdef USE_WAYLAND @@ -266,6 +300,8 @@ static void mwOpenGLMakeCurrentImpl(MwWidget handle) { if(!eglMakeCurrent(o->egl_display, o->egl_surface, o->egl_surface, o->egl_context)) { printf("ERROR: eglMakeCurrent, %0X\n", eglGetError()); } + + eglSwapInterval(o->egl_display, 1); } #endif } From 836b13e62ee1115de4560e362f8f6688397bc8a6 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 27 Jan 2026 17:02:40 +0900 Subject: [PATCH 135/836] add RPN calculator demo --- examples/basic/calculator.c | 185 ++++++++++++++++++++++++++++++++++++ pl/rules.pl | 1 + 2 files changed, 186 insertions(+) create mode 100644 examples/basic/calculator.c diff --git a/examples/basic/calculator.c b/examples/basic/calculator.c new file mode 100644 index 000000000..27f7ad4bb --- /dev/null +++ b/examples/basic/calculator.c @@ -0,0 +1,185 @@ +#include + +MwWidget widgets[18]; +MwWidget inp; + +/* probably enough for most tasks */ +double stack[512]; +int sp = 0; + +static void resize(MwWidget handle, void* client, void* user) { + int ww = MwGetInteger(handle, MwNwidth); + int wh = MwGetInteger(handle, MwNheight) - MwGetInteger(inp, MwNheight); + int i; + + MwVaApply(inp, + MwNwidth, ww, + NULL); + + for(i = 0; i < sizeof(widgets) / sizeof(widgets[0]); i++) { + int x = i % 4; + int y = i / 4; + if(widgets[i] != NULL) { + MwVaApply(widgets[i], + MwNwidth, ww / 4, + MwNheight, wh / 5, + MwNx, ww / 4 * x, + MwNy, wh / 5 * y + MwGetInteger(inp, MwNheight), + NULL); + } + } +} + +static void activate(MwWidget handle, void* client, void* user) { + const char* n = MwGetText(handle, MwNtext); + + if(('0' <= n[0] && n[0] <= '9') || n[0] == '.') { + const char* s = MwGetText(inp, MwNtext); + char* r; + + if(n[0] == '.' && s != NULL) { + int i; + for(i = 0; s[i] != 0; i++) { + if(s[i] == '.') return; + } + } + + if(s == NULL) s = ""; + + r = MwStringConcat(s, n); + MwVaApply(inp, + MwNtext, r, + NULL); + free(r); + } else if(n[0] == 'E') { + const char* s = MwGetText(inp, MwNtext); + + if(s != NULL) { + stack[sp++] = atof(s); + + MwVaApply(inp, + MwNtext, "", + NULL); + } + } else if(n[0] == 'C') { + MwVaApply(inp, + MwNtext, "", + NULL); + } else if(n[0] == '+' || n[0] == '-' || n[0] == '*' || n[0] == '/') { + if(sp >= 2) { + double sv = stack[--sp]; + double fv = stack[--sp]; + double v; + char buf[256]; + + if(n[0] == '+') { + v = fv + sv; + } else if(n[0] == '-') { + v = fv - sv; + } else if(n[0] == '*') { + v = fv * sv; + } else if(n[0] == '/') { + v = fv / sv; + } + + sprintf(buf, "%g", v); + + MwVaApply(inp, + MwNtext, buf, + NULL); + } + } +} + +int main() { + MwWidget w; + int i; + + for(i = 0; i < sizeof(widgets) / sizeof(widgets[0]); i++) widgets[i] = NULL; + + MwLibraryInit(); + + w = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 150, 150, + MwNtitle, "Calculator", + NULL); + + inp = MwCreateWidget(MwEntryClass, "entry", w, 0, 0, 0, 24); + + widgets[0] = MwVaCreateWidget(MwButtonClass, "7", w, 0, 0, 0, 0, + MwNtext, "7", + NULL); + + widgets[1] = MwVaCreateWidget(MwButtonClass, "8", w, 0, 0, 0, 0, + MwNtext, "8", + NULL); + + widgets[2] = MwVaCreateWidget(MwButtonClass, "9", w, 0, 0, 0, 0, + MwNtext, "9", + NULL); + + widgets[3] = MwVaCreateWidget(MwButtonClass, "/", w, 0, 0, 0, 0, + MwNtext, "/", + NULL); + + widgets[4] = MwVaCreateWidget(MwButtonClass, "4", w, 0, 0, 0, 0, + MwNtext, "4", + NULL); + + widgets[5] = MwVaCreateWidget(MwButtonClass, "5", w, 0, 0, 0, 0, + MwNtext, "5", + NULL); + + widgets[6] = MwVaCreateWidget(MwButtonClass, "6", w, 0, 0, 0, 0, + MwNtext, "6", + NULL); + + widgets[7] = MwVaCreateWidget(MwButtonClass, "*", w, 0, 0, 0, 0, + MwNtext, "*", + NULL); + + widgets[8] = MwVaCreateWidget(MwButtonClass, "1", w, 0, 0, 0, 0, + MwNtext, "1", + NULL); + + widgets[9] = MwVaCreateWidget(MwButtonClass, "2", w, 0, 0, 0, 0, + MwNtext, "2", + NULL); + + widgets[10] = MwVaCreateWidget(MwButtonClass, "3", w, 0, 0, 0, 0, + MwNtext, "3", + NULL); + + widgets[11] = MwVaCreateWidget(MwButtonClass, "-", w, 0, 0, 0, 0, + MwNtext, "-", + NULL); + + widgets[12] = MwVaCreateWidget(MwButtonClass, "0", w, 0, 0, 0, 0, + MwNtext, "0", + NULL); + + widgets[13] = MwVaCreateWidget(MwButtonClass, ".", w, 0, 0, 0, 0, + MwNtext, ".", + NULL); + + widgets[16] = MwVaCreateWidget(MwButtonClass, "E", w, 0, 0, 0, 0, + MwNtext, "E", + NULL); + + widgets[15] = MwVaCreateWidget(MwButtonClass, "+", w, 0, 0, 0, 0, + MwNtext, "+", + NULL); + + widgets[17] = MwVaCreateWidget(MwButtonClass, "C", w, 0, 0, 0, 0, + MwNtext, "C", + NULL); + + for(i = 0; i < sizeof(widgets) / sizeof(widgets[0]); i++) { + if(widgets[i] != NULL) MwAddUserHandler(widgets[i], MwNactivateHandler, activate, NULL); + } + + MwAddUserHandler(w, MwNresizeHandler, resize, NULL); + + resize(w, NULL, NULL); + + MwLoop(w); +} diff --git a/pl/rules.pl b/pl/rules.pl index 73f4c6177..59605a803 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -128,6 +128,7 @@ new_example("examples/basic/treeview"); new_example("examples/basic/box"); new_example("examples/basic/clipboard"); new_example("examples/basic/sevensegment"); +new_example("examples/basic/calculator"); if (param_get("opengl")) { new_example("examples/gldemos/boing", $gl_libs); From 8b28b3e1b0207ae061caebda0a6f62ce68ffb1be Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 27 Jan 2026 17:34:25 +0900 Subject: [PATCH 136/836] might be functional --- include/Mw/LowLevel.h | 1 + include/Mw/LowLevel/GDI.h | 1 + src/backend/gdi.c | 23 ++++++++++++++++++++++- src/core.c | 8 ++++++++ 4 files changed, 32 insertions(+), 1 deletion(-) diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 6bea6cd3c..b54832885 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -163,6 +163,7 @@ struct _MwLLHandler { void (*focus_in)(MwLL handle, void* data); void (*focus_out)(MwLL handle, void* data); void (*clipboard)(MwLL handle, void* data); + void (*dark_theme)(MwLL handle, void* data); }; #ifdef __cplusplus diff --git a/include/Mw/LowLevel/GDI.h b/include/Mw/LowLevel/GDI.h index 1bf997c23..c695cbd13 100644 --- a/include/Mw/LowLevel/GDI.h +++ b/include/Mw/LowLevel/GDI.h @@ -22,6 +22,7 @@ struct _MwLLGDI { int grabbed; int force_render; int get_clipboard; + int get_darktheme; }; struct _MwLLGDIColor { diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 764e9838d..20c47b26f 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -8,6 +8,17 @@ typedef struct userdata { int max_set; } userdata_t; +static void detect_darktheme(MwLL handle){ + DWORD dw; + DWORD sz = sizeof(dw); + + if(RegGetValue(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize", "AppsUseLightTheme", RRF_RT_REG_DWORD, NULL, &dw, &sz) == ERROR_SUCCESS){ + int t = dw ? 0 : 1; + + MwLLDispatch(handle, dark_theme, &t); + } +} + static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { userdata_t* u = (userdata_t*)GetWindowLongPtr(hWnd, GWLP_USERDATA); @@ -205,6 +216,10 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { } else if(msg == WM_USER) { InvalidateRect(hWnd, NULL, FALSE); UpdateWindow(hWnd); + } else if(msg == WM_WININICHANGE){ + char* s = (char*)lp; + + if(s != NULL && strcmp(s, "ImmersiveColorSet") == 0) detect_darktheme(u->ll); } else { return DefWindowProc(hWnd, msg, wp, lp); } @@ -238,6 +253,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->common.type = MwLLBackendGDI; r->gdi.get_clipboard = 1; + r->gdi.get_darktheme = 1; r->gdi.force_render = 0; r->gdi.grabbed = 0; r->gdi.hWnd = CreateWindow("milsko", "Milsko", parent == NULL ? (WS_OVERLAPPEDWINDOW) : (WS_CHILD | WS_VISIBLE), x == MwDEFAULT ? CW_USEDEFAULT : x, y == MwDEFAULT ? CW_USEDEFAULT : y, width, height, parent == NULL ? NULL : parent->gdi.hWnd, 0, wc.hInstance, NULL); @@ -384,7 +400,7 @@ static int MwLLPendingImpl(MwLL handle) { (void)handle; - if(handle->gdi.get_clipboard) return 1; + if(handle->gdi.get_clipboard || handle->gdi.get_darktheme) return 1; return PeekMessage(&msg, handle->gdi.hWnd, 0, 0, PM_NOREMOVE) ? 1 : 0; } @@ -411,6 +427,11 @@ static void MwLLNextEventImpl(MwLL handle) { handle->gdi.get_clipboard = 0; } + if(handle->gdi.get_darktheme){ + detect_darktheme(handle); + + handle->gdi.get_clipboard = 0; + } while(PeekMessage(&msg, handle->gdi.hWnd, 0, 0, PM_NOREMOVE)) { GetMessage(&msg, handle->gdi.hWnd, 0, 0); TranslateMessage(&msg); diff --git a/src/core.c b/src/core.c index 78d2a9468..9d0d18bee 100644 --- a/src/core.c +++ b/src/core.c @@ -127,6 +127,13 @@ static void llclipboardhandler(MwLL handle, void* data) { */ #define IsFirstVisible(handle) ((handle)->widget_class != NULL && ((handle)->parent == NULL || (handle)->parent->widget_class == NULL)) +static void lldarkthemehandler(MwLL handle, void* data){ + MwWidget h = (MwWidget)handle->common.user; + int* ptr = data; + + if(IsFirstVisible(h)) MwToggleDarkTheme(h, *ptr); +} + MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height) { MwWidget h = malloc(sizeof(*h)); @@ -171,6 +178,7 @@ MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, h->lowlevel->common.handler->focus_in = llfocusinhandler; h->lowlevel->common.handler->focus_out = llfocusouthandler; h->lowlevel->common.handler->clipboard = llclipboardhandler; + h->lowlevel->common.handler->dark_theme = lldarkthemehandler; } if(parent != NULL) arrput(parent->children, h); From 18457ccbcb28b4c542f19b7201647e6189ff4373 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 27 Jan 2026 17:36:21 +0900 Subject: [PATCH 137/836] tiny fix --- src/backend/gdi.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 20c47b26f..5c4febe17 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -218,8 +218,11 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { UpdateWindow(hWnd); } else if(msg == WM_WININICHANGE){ char* s = (char*)lp; + LPARAM style = GetWindowLongPtr(hWnd, GWL_STYLE); - if(s != NULL && strcmp(s, "ImmersiveColorSet") == 0) detect_darktheme(u->ll); + if(!(style & WS_CHILD)){ + if(s != NULL && strcmp(s, "ImmersiveColorSet") == 0) detect_darktheme(u->ll); + } } else { return DefWindowProc(hWnd, msg, wp, lp); } From 0cecae2dd16e4073b81bfbc72a2140e6f6feccbd Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 27 Jan 2026 17:58:30 +0900 Subject: [PATCH 138/836] better registry function --- src/backend/gdi.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 5c4febe17..e985c8bbb 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -11,12 +11,22 @@ typedef struct userdata { static void detect_darktheme(MwLL handle){ DWORD dw; DWORD sz = sizeof(dw); + int err, t; + HKEY hkey; + DWORD type; - if(RegGetValue(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize", "AppsUseLightTheme", RRF_RT_REG_DWORD, NULL, &dw, &sz) == ERROR_SUCCESS){ - int t = dw ? 0 : 1; + err = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize", 0, KEY_QUERY_VALUE, &hkey); + if(err != ERROR_SUCCESS) return; - MwLLDispatch(handle, dark_theme, &t); + err = RegQueryValueEx(hkey, "AppsUseLightTheme", NULL, &type, (PBYTE)&dw, &sz); + if(err != ERROR_SUCCESS || type != REG_DWORD){ + RegCloseKey(hkey); + return; } + + t = dw ? 0 : 1; + + MwLLDispatch(handle, dark_theme, &t); } static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { From ae96b127e1b06f7d6e990a3da4985ac688c8fad9 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 27 Jan 2026 17:58:52 +0900 Subject: [PATCH 139/836] fix leak --- src/backend/gdi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index e985c8bbb..c1e0fb781 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -19,8 +19,8 @@ static void detect_darktheme(MwLL handle){ if(err != ERROR_SUCCESS) return; err = RegQueryValueEx(hkey, "AppsUseLightTheme", NULL, &type, (PBYTE)&dw, &sz); + RegCloseKey(hkey); if(err != ERROR_SUCCESS || type != REG_DWORD){ - RegCloseKey(hkey); return; } From 5e492ee5b418b8edb8ec0b0db959689eada09473 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 27 Jan 2026 18:00:44 +0900 Subject: [PATCH 140/836] oops --- src/backend/gdi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index c1e0fb781..ae6a7a629 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -443,7 +443,7 @@ static void MwLLNextEventImpl(MwLL handle) { if(handle->gdi.get_darktheme){ detect_darktheme(handle); - handle->gdi.get_clipboard = 0; + handle->gdi.get_darktheme = 0; } while(PeekMessage(&msg, handle->gdi.hWnd, 0, 0, PM_NOREMOVE)) { GetMessage(&msg, handle->gdi.hWnd, 0, 0); From 64c3cdb4a511b0b9efcd538a4c1bc82cbbda7dc8 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 27 Jan 2026 18:03:16 +0900 Subject: [PATCH 141/836] MwSetDarkTheme instead of MwToggleDarkTheme --- examples/basic/example.c | 2 +- include/Mw/Core.h | 2 +- milsko.xml | 2 +- src/backend/gdi.c | 2 +- src/core.c | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/basic/example.c b/examples/basic/example.c index 614b4e37a..9cc89db49 100644 --- a/examples/basic/example.c +++ b/examples/basic/example.c @@ -17,7 +17,7 @@ void handler_dark(MwWidget handle, void* user_data, void* call_data) { (void)call_data; toggle = toggle ? 0 : 1; - MwToggleDarkTheme(window, toggle); + MwSetDarkTheme(window, toggle); } void resize(MwWidget handle, void* user_data, void* call_data) { diff --git a/include/Mw/Core.h b/include/Mw/Core.h index cd7cabd19..aba19e115 100644 --- a/include/Mw/Core.h +++ b/include/Mw/Core.h @@ -296,7 +296,7 @@ MWDECL void MwHideCursor(MwWidget handle); * @param handle Widget * @param toggle Toggle */ -MWDECL void MwToggleDarkTheme(MwWidget handle, int toggle); +MWDECL void MwSetDarkTheme(MwWidget handle, int toggle); /*! * @brief Gets the parent widget diff --git a/milsko.xml b/milsko.xml index dc980cd8d..bc73f0e2b 100644 --- a/milsko.xml +++ b/milsko.xml @@ -353,7 +353,7 @@ - + diff --git a/src/backend/gdi.c b/src/backend/gdi.c index ae6a7a629..373ef8758 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -266,7 +266,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->common.type = MwLLBackendGDI; r->gdi.get_clipboard = 1; - r->gdi.get_darktheme = 1; + if(parent == NULL) r->gdi.get_darktheme = 1; r->gdi.force_render = 0; r->gdi.grabbed = 0; r->gdi.hWnd = CreateWindow("milsko", "Milsko", parent == NULL ? (WS_OVERLAPPEDWINDOW) : (WS_CHILD | WS_VISIBLE), x == MwDEFAULT ? CW_USEDEFAULT : x, y == MwDEFAULT ? CW_USEDEFAULT : y, width, height, parent == NULL ? NULL : parent->gdi.hWnd, 0, wc.hInstance, NULL); diff --git a/src/core.c b/src/core.c index 9d0d18bee..55f667dbb 100644 --- a/src/core.c +++ b/src/core.c @@ -131,7 +131,7 @@ static void lldarkthemehandler(MwLL handle, void* data){ MwWidget h = (MwWidget)handle->common.user; int* ptr = data; - if(IsFirstVisible(h)) MwToggleDarkTheme(h, *ptr); + if(IsFirstVisible(h)) MwSetDarkTheme(h, *ptr); } MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height) { @@ -747,7 +747,7 @@ static void force_render_all(MwWidget handle) { if(handle->lowlevel != NULL) MwForceRender(handle); } -void MwToggleDarkTheme(MwWidget handle, int toggle) { +void MwSetDarkTheme(MwWidget handle, int toggle) { int old = handle->dark_theme; if(old != toggle) { handle->dark_theme = toggle; From 65c872710a81f95850b92fd64c5a5a0fd2e0332d Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 27 Jan 2026 18:12:36 +0900 Subject: [PATCH 142/836] it should be working now, closes #6 --- src/backend/gdi.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 373ef8758..79822e710 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -663,6 +663,8 @@ static void MwLLDetachImpl(MwLL handle, MwPoint* point) { rc2.bottom -= rc2.top; SetWindowPos(handle->gdi.hWnd, HWND_TOPMOST, rc.left, rc.top, rc2.right == 0 ? 1 : rc2.right, rc2.bottom == 0 ? 1 : rc2.bottom, SWP_FRAMECHANGED | SWP_NOACTIVATE); + + handle->gdi.get_darktheme = 1; } static void MwLLShowImpl(MwLL handle, int show) { From 9544404f7c0851b7f96e310008c3ce2f723cb1f0 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 27 Jan 2026 18:46:12 +0900 Subject: [PATCH 143/836] fix warning --- src/core.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core.c b/src/core.c index 55f667dbb..0c1b4718b 100644 --- a/src/core.c +++ b/src/core.c @@ -543,6 +543,7 @@ const char* MwGetText(MwWidget handle, const char* key) { return shget(handle->text, key); } +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) static void* inherit_void(MwWidget handle, const char* key) { void* v; @@ -551,6 +552,7 @@ static void* inherit_void(MwWidget handle, const char* key) { } return NULL; } +#endif void* MwGetVoid(MwWidget handle, const char* key) { void* v = shget(handle->data, key); From 626294c95f9c208c1b65dd22c49c9a5ca7c4d9ea Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 27 Jan 2026 18:50:03 +0900 Subject: [PATCH 144/836] format --- src/backend/gdi.c | 32 ++++++++++++++++---------------- src/core.c | 6 +++--- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 79822e710..4601b79da 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -8,11 +8,11 @@ typedef struct userdata { int max_set; } userdata_t; -static void detect_darktheme(MwLL handle){ +static void detect_darktheme(MwLL handle) { DWORD dw; DWORD sz = sizeof(dw); - int err, t; - HKEY hkey; + int err, t; + HKEY hkey; DWORD type; err = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize", 0, KEY_QUERY_VALUE, &hkey); @@ -20,10 +20,10 @@ static void detect_darktheme(MwLL handle){ err = RegQueryValueEx(hkey, "AppsUseLightTheme", NULL, &type, (PBYTE)&dw, &sz); RegCloseKey(hkey); - if(err != ERROR_SUCCESS || type != REG_DWORD){ + if(err != ERROR_SUCCESS || type != REG_DWORD) { return; } - + t = dw ? 0 : 1; MwLLDispatch(handle, dark_theme, &t); @@ -226,11 +226,11 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { } else if(msg == WM_USER) { InvalidateRect(hWnd, NULL, FALSE); UpdateWindow(hWnd); - } else if(msg == WM_WININICHANGE){ - char* s = (char*)lp; + } else if(msg == WM_WININICHANGE) { + char* s = (char*)lp; LPARAM style = GetWindowLongPtr(hWnd, GWL_STYLE); - - if(!(style & WS_CHILD)){ + + if(!(style & WS_CHILD)) { if(s != NULL && strcmp(s, "ImmersiveColorSet") == 0) detect_darktheme(u->ll); } } else { @@ -267,12 +267,12 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->gdi.get_clipboard = 1; if(parent == NULL) r->gdi.get_darktheme = 1; - r->gdi.force_render = 0; - r->gdi.grabbed = 0; - r->gdi.hWnd = CreateWindow("milsko", "Milsko", parent == NULL ? (WS_OVERLAPPEDWINDOW) : (WS_CHILD | WS_VISIBLE), x == MwDEFAULT ? CW_USEDEFAULT : x, y == MwDEFAULT ? CW_USEDEFAULT : y, width, height, parent == NULL ? NULL : parent->gdi.hWnd, 0, wc.hInstance, NULL); - r->gdi.hInstance = wc.hInstance; - r->gdi.cursor = NULL; - r->gdi.icon = NULL; + r->gdi.force_render = 0; + r->gdi.grabbed = 0; + r->gdi.hWnd = CreateWindow("milsko", "Milsko", parent == NULL ? (WS_OVERLAPPEDWINDOW) : (WS_CHILD | WS_VISIBLE), x == MwDEFAULT ? CW_USEDEFAULT : x, y == MwDEFAULT ? CW_USEDEFAULT : y, width, height, parent == NULL ? NULL : parent->gdi.hWnd, 0, wc.hInstance, NULL); + r->gdi.hInstance = wc.hInstance; + r->gdi.cursor = NULL; + r->gdi.icon = NULL; u->ll = r; u->min_set = 0; @@ -440,7 +440,7 @@ static void MwLLNextEventImpl(MwLL handle) { handle->gdi.get_clipboard = 0; } - if(handle->gdi.get_darktheme){ + if(handle->gdi.get_darktheme) { detect_darktheme(handle); handle->gdi.get_darktheme = 0; diff --git a/src/core.c b/src/core.c index 0c1b4718b..b157bbb6b 100644 --- a/src/core.c +++ b/src/core.c @@ -127,9 +127,9 @@ static void llclipboardhandler(MwLL handle, void* data) { */ #define IsFirstVisible(handle) ((handle)->widget_class != NULL && ((handle)->parent == NULL || (handle)->parent->widget_class == NULL)) -static void lldarkthemehandler(MwLL handle, void* data){ - MwWidget h = (MwWidget)handle->common.user; - int* ptr = data; +static void lldarkthemehandler(MwLL handle, void* data) { + MwWidget h = (MwWidget)handle->common.user; + int* ptr = data; if(IsFirstVisible(h)) MwSetDarkTheme(h, *ptr); } From bbb20f081ef347f074912091e0f641b8104fc69a Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 27 Jan 2026 18:51:57 +0900 Subject: [PATCH 145/836] add MwNdarkThemeHandler --- include/Mw/StringDefs.h | 1 + src/core.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index 5d6896598..db597889f 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -72,5 +72,6 @@ #define MwNcolorChosenHandler "CcolorChosen" /* MwRGB* */ #define MwNdrawHandler "Cdraw" /* NULL */ #define MwNclipboardHandler "Cclipboard" /* char* */ +#define MwNdarkThemeHandler "CdarkTheme" /* int* */ #endif diff --git a/src/core.c b/src/core.c index b157bbb6b..6985a02ee 100644 --- a/src/core.c +++ b/src/core.c @@ -131,7 +131,11 @@ static void lldarkthemehandler(MwLL handle, void* data) { MwWidget h = (MwWidget)handle->common.user; int* ptr = data; - if(IsFirstVisible(h)) MwSetDarkTheme(h, *ptr); + if(IsFirstVisible(h)) { + MwSetDarkTheme(h, *ptr); + + MwDispatchUserHandler(h, MwNdarkThemeHandler, data); + } } MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height) { From ad5aa03d11a9c14ec978da1ab03a157cfb435b2c Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sat, 31 Jan 2026 20:42:09 +0900 Subject: [PATCH 146/836] remove non required headers --- src/backend/wayland.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 7acc03891..19f6386c7 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -5,12 +5,9 @@ #include #include "../../external/stb_ds.h" -#include "Mw/BaseTypes.h" -#include "Mw/LowLevel.h" #include #include -#include #include /* TODO: From 7ad4d8202460de860aa7bb5c94129ce1265a290e Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 2 Feb 2026 23:02:42 +0900 Subject: [PATCH 147/836] c89 --- src/backend/wayland.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 19f6386c7..7d8faeee1 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -431,13 +431,14 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri p.point = self->wayland.cur_mouse_pos; if(p.point.x > self->wayland.x && p.point.x < self->wayland.x + self->wayland.ww && p.point.y > self->wayland.y && p.point.y < self->wayland.y + self->wayland.wh) { + int i; switch(button) { case BTN_LEFT: p.button = MwLLMouseLeft; break; case BTN_MIDDLE: p.button = MwLLMouseMiddle; - for(int i = 0; i < arrlen(self->wayland.clipboard_devices); i++) { + for(i = 0; i < arrlen(self->wayland.clipboard_devices); i++) { wl_clipboard_read( self->wayland.clipboard_devices[i]); } @@ -624,7 +625,8 @@ static void keyboard_key(void* data, if((self->wayland.mod_state & 4) == 4) { /* clipboard paste */ if(key == 'V') { - for(int i = 0; i < arrlen(self->wayland.clipboard_devices); i++) { + int i; + for(i = 0; i < arrlen(self->wayland.clipboard_devices); i++) { wl_clipboard_read( self->wayland.clipboard_devices[i]); } @@ -1851,12 +1853,14 @@ static void MwLLSetClipboardImpl(MwLL handle, const char* text) { strcpy(handle->wayland.clipboard_buffer, text); if(handle->wayland.supports_zwp) { - for(int i = 0; i < arrlen(handle->wayland.clipboard_devices); i++) { + int i; + for(i = 0; i < arrlen(handle->wayland.clipboard_devices); i++) { wl_clipboard_device_context_t* device = handle->wayland.clipboard_devices[i]; zwp_primary_selection_device_v1_set_selection(device->device.zwp, handle->wayland.clipboard_source.zwp, handle->wayland.keyboard_serial); } } else { - for(int i = 0; i < arrlen(handle->wayland.clipboard_devices); i++) { + int i; + for(i = 0; i < arrlen(handle->wayland.clipboard_devices); i++) { wl_clipboard_device_context_t* device = handle->wayland.clipboard_devices[i]; wl_data_device_set_selection(device->device.wl, handle->wayland.clipboard_source.wl, handle->wayland.keyboard_serial); } From 5bc06dc8512e806dfa6364d5849acf61f7190322 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 3 Feb 2026 23:24:34 +0900 Subject: [PATCH 148/836] testing jenkins --- Jenkinsfile | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 000000000..4a3c003b7 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,16 @@ +pipeline { + agent { + label "built-in" + } + stages { + stage("Build document") { + steps { + } + post { + always { + notifyDiscord() + } + } + } + } +} From 12f7312d407326915fbe92e6235fc2edf8ce0971 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 3 Feb 2026 23:27:27 +0900 Subject: [PATCH 149/836] testing jenkins --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index 4a3c003b7..719f14695 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -5,6 +5,7 @@ pipeline { stages { stage("Build document") { steps { + sh("echo Testing testing...") } post { always { From 282283609c01ca5e1dc0c901de4a59875daa91d3 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 3 Feb 2026 23:43:08 +0900 Subject: [PATCH 150/836] i wonder if doc gets generated --- Jenkinsfile | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 719f14695..8a51a786f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -5,12 +5,9 @@ pipeline { stages { stage("Build document") { steps { - sh("echo Testing testing...") - } - post { - always { - notifyDiscord() - } + sh("doxygen") + sh("rm -rf /var/www/milsko-doxygen") + sh("mv doxygen/html /var/www/milsko-doxygen") } } } From c308bd9324c6d3d953af71c9bb297e97bab93715 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 3 Feb 2026 23:46:24 +0900 Subject: [PATCH 151/836] test --- Jenkinsfile | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 8a51a786f..8c9eb9d2c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,5 +10,30 @@ pipeline { sh("mv doxygen/html /var/www/milsko-doxygen") } } + stage("Build") { + parallel { + stage("Build for Linux 64-bit") { + steps { + sh("./Makefile.pl --enable-opengl --enable-vulkan --without-vulkan-string-helper") + sh("make clean") + sh("make -j4") + } + } + stage("Build for Windows 32-bit") { + steps { + sh("./Makefile.pl --enable-opengl --enable-stb-truetype --disable-freetype2 --cross --target=Windows --host=i686-w64-mingw32") + sh("make clean") + sh("make -j4") + } + } + stage("Build for Windows 64-bit") { + steps { + sh("./Makefile.pl --enable-opengl --enable-stb-truetype --disable-freetype2 --cross --target=Windows --host=x86_64-w64-mingw32") + sh("make clean") + sh("make -j4") + } + } + } + } } } From 4a092e71d2aed7d1887ebbf970ab364cdd70b0f4 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 4 Feb 2026 00:02:21 +0900 Subject: [PATCH 152/836] testing --- Jenkinsfile | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 8c9eb9d2c..7b7426169 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -9,6 +9,11 @@ pipeline { sh("rm -rf /var/www/milsko-doxygen") sh("mv doxygen/html /var/www/milsko-doxygen") } + post { + always { + notifyDiscord() + } + } } stage("Build") { parallel { @@ -34,6 +39,11 @@ pipeline { } } } + post { + always { + notifyDiscord() + } + } } } } From 3329184993d395e033029eaa1faed6a94401a1e6 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 4 Feb 2026 00:06:31 +0900 Subject: [PATCH 153/836] unused --- Koakumafile | 24 ------------------------ 1 file changed, 24 deletions(-) delete mode 100755 Koakumafile diff --git a/Koakumafile b/Koakumafile deleted file mode 100755 index 92cb41be5..000000000 --- a/Koakumafile +++ /dev/null @@ -1,24 +0,0 @@ -# vim: syntax=tcl - -proc run {project_name} { - if { "$project_name" == "MilskoDoxygen" } { - RunCommand "doxygen" - RunCommand "rm -rf /var/www/milsko-doxygen" - RunCommand "mv doxygen/html /var/www/milsko-doxygen" - } else { - foreach target {"Linux" "Win32" "Win64"} { - if { [file exists "Makefile"] == 1 } { - RunCommand "make distclean" - } - if { "$target" == "Linux" } { - RunCommand "./Makefile.pl --enable-opengl --enable-vulkan --without-vulkan-string-helper" - } elseif { "$target" == "Win32" } { - RunCommand "./Makefile.pl --enable-opengl --enable-stb-truetype --disable-freetype2 --cross --target=Windows --host=i686-w64-mingw32" - } elseif { "$target" == "Win64" } { - RunCommand "./Makefile.pl --enable-opengl --enable-stb-truetype --disable-freetype2 --cross --target=Windows --host=x86_64-w64-mingw32" - } - RunCommand "make clean" - RunCommand "make -j4" - } - } -} From 280ba93cf1f9a32609a375b6a07529c70c0a749b Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 4 Feb 2026 00:21:31 +0900 Subject: [PATCH 154/836] hmm --- Jenkinsfile | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 7b7426169..74776380f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -18,6 +18,9 @@ pipeline { stage("Build") { parallel { stage("Build for Linux 64-bit") { + agent { + label "built-in" + } steps { sh("./Makefile.pl --enable-opengl --enable-vulkan --without-vulkan-string-helper") sh("make clean") @@ -25,6 +28,9 @@ pipeline { } } stage("Build for Windows 32-bit") { + agent { + label "built-in" + } steps { sh("./Makefile.pl --enable-opengl --enable-stb-truetype --disable-freetype2 --cross --target=Windows --host=i686-w64-mingw32") sh("make clean") @@ -32,6 +38,9 @@ pipeline { } } stage("Build for Windows 64-bit") { + agent { + label "built-in" + } steps { sh("./Makefile.pl --enable-opengl --enable-stb-truetype --disable-freetype2 --cross --target=Windows --host=x86_64-w64-mingw32") sh("make clean") From c04f751a4f77f18c0482dd5932ba3491af680575 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 4 Feb 2026 00:25:49 +0900 Subject: [PATCH 155/836] msvc --- Jenkinsfile | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 74776380f..67b12d48b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -47,6 +47,15 @@ pipeline { sh("make -j4") } } + stage("Build for Windows 64-bit (MSVC)") { + agent { + label "2012r2" + } + steps { + sh("nmake -f NTMakefile clean") + sh("nmake") + } + } } post { always { From d7db903695348ed79945af1ac842b26fffdbb211 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 4 Feb 2026 00:30:22 +0900 Subject: [PATCH 156/836] msvc --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 67b12d48b..58736fdb2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -52,8 +52,8 @@ pipeline { label "2012r2" } steps { - sh("nmake -f NTMakefile clean") - sh("nmake") + bat("nmake -f NTMakefile clean") + bat("nmake -f NTMakefile") } } } From 11fec984cf24c1497c6310095268986a12469fd6 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 6 Feb 2026 22:05:13 +0900 Subject: [PATCH 157/836] fix --- src/widget/opengl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 8738b5d6a..ae8781785 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -251,7 +251,7 @@ static void destroy(MwWidget handle) { while(w->parent != NULL) w = w->parent; - w->berserk++; + w->berserk--; free(handle->internal); } From efa43456c18c0615a4aae8575afd032c2e0bf9c8 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 3 Mar 2026 23:24:28 -0700 Subject: [PATCH 158/836] significant macos progress, now compiles/runs on monetery --- README.txt | 46 +-- include/Mw/LowLevel/Cocoa.h | 104 +++--- src/backend/cocoa.m | 661 ++++++++++++++++++++---------------- 3 files changed, 438 insertions(+), 373 deletions(-) diff --git a/README.txt b/README.txt index 32e8630d3..744e7a8e8 100644 --- a/README.txt +++ b/README.txt @@ -1,23 +1,25 @@ -Greetings - Welcome to the Milsko GUI Toolkit (Version pre-1.0) +Greetings - Welcome to the Milsko GUI Toolkit (Version pre-1.0) - This document contains a brief summary of the contents of this source -distributions and building instructions for Milsko GUI Toolkit. + This document contains a brief summary of the contents of this source +distributions and building instructions for Milsko GUI Toolkit. Requirements - Milsko requires the Windows environment with GDI (so anything NT or 9x) or -the Unix-like environment with X11 for runtime. + Milsko requires either + * A Windows environment with GDI (so anything NT or 9x) + * A Mac OS environment with Cocoa (10.4 is the minimum tested) + * Unix-like environment with X11 for runtime. - To build Milsko for Windows, you must have one of following compilers: - * Visual C++ 6.0 or newer - * Borland C++ 5.5 or newer - * Open Watcom 2.0 or newer - * MinGW-w64 + To build Milsko for Windows, you must have one of following compilers: + * Visual C++ 6.0 or newer + * Borland C++ 5.5 or newer + * Open Watcom 2.0 or newer + * MinGW-w64 - and for Unix-like: - * GNU C Compiler - * Clang + and for Unix-like/Mac OS: + * GNU C Compiler + * Clang Contents @@ -39,31 +41,31 @@ the Unix-like environment with X11 for runtime. Building Milsko - Building Milsko depends on the platform you use, and the compiler you use. + Building Milsko depends on the platform you use, and the compiler you use. A. Visual C++ ------------- -1) Run `nmake -f NTMakefile'. +1) Run `nmake -f NTMakefile'. B. Borland C++ -------------- -1) Run `make -f BorMakefile'. +1) Run `make -f BorMakefile'. C. Open Watcom -------------- -1) Run `wmake -f WatMakefile'. +1) Run `wmake -f WatMakefile'. D. MinGW-w64/GCC/Clang ---------------------- -1) Determine if you need Vulkan and/or OpenGL. +1) Determine if you need Vulkan and/or OpenGL. -2) Run `./Makefile.pl'. - For help, run `./Makefile.pl --help'. +2) Run `./Makefile.pl'. + For help, run `./Makefile.pl --help'. -3) Run `make'. +3) Run `make'. - -- Nishi (nishi@nishi.boats) + -- Nishi (nishi@nishi.boats) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 2d1d9bdea..d22f65396 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -11,10 +11,9 @@ #include #ifdef __OBJC__ - -#import #import #import +#import #ifdef __APPLE__ #import @@ -23,97 +22,104 @@ #endif @interface MilskoCocoaPixmap : NSObject { - int width; - int height; - NSData* data; - NSImage* image; + MwBool valid; + int width; + int height; + NSData *data; + NSImage *image; + NSBitmapImageRep *rep; } -+ (MilskoCocoaPixmap*)newWithWidth:(int)width height:(int)height; -- (void)updateWithData:(void*)data; ++ (MilskoCocoaPixmap *)newWithWidth:(int)width height:(int)height; +- (void)updateWithData:(unsigned char *)data; - (void)destroy; -/* using @property to create instance variables fucks up 10.4 gcc for some reason? */ -- (NSImage*)image; +/* using @property to create instance variables fucks up 10.4 gcc for some + * reason? */ +- (NSImage *)image; @end @interface MilskoCocoaView : NSView { - CGContextRef cg; - CGColorSpaceRef space; - CGDataProviderRef provider; - MwU32* buf; - float width; - float height; + NSBitmapImageRep *rep; + NSGraphicsContext *context; + MwBool valid; + CGColorSpaceRef space; + CGDataProviderRef provider; + unsigned char *buf; + float width; + float height; } -- (CGContextRef)context; +- (NSGraphicsContext *)context; @end @interface MilskoCocoa : NSObject { - NSApplication* application; - NSWindow* window; - NSRect rect; - MilskoCocoaView* view; + NSApplication *application; + NSEvent *lastEvent; + NSWindow *window; + NSRect rect; + MilskoCocoaView *view; + MwLL parent; } -+ (MilskoCocoa*)newWithParent:(MwLL)parent - x:(int)x - y:(int)y - width:(int)width - height:(int)height; -- (void)polygonWithPoints:(MwPoint*)points - points_count:(int)points_count - color:(MwLLColor)color; -- (void)lineWithPoints:(MwPoint*)points color:(MwLLColor)color; -- (void)getX:(int*)x Y:(int*)y W:(unsigned int*)w H:(unsigned int*)h; ++ (MilskoCocoa *)newWithParent:(MwLL)parent + x:(int)x + y:(int)y + width:(int)width + height:(int)height; +- (void)polygonWithPoints:(MwPoint *)points + points_count:(int)points_count + color:(MwLLColor)color; +- (void)lineWithPoints:(MwPoint *)points color:(MwLLColor)color; +- (void)getX:(int *)x Y:(int *)y W:(unsigned int *)w H:(unsigned int *)h; - (void)setX:(int)x Y:(int)y; - (void)setW:(int)w H:(int)h; - (int)pending; - (void)getNextEvent; -- (void)setTitle:(const char*)title; -- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect*)rect; +- (void)setTitle:(const char *)title; +- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect *)rect; - (void)setIcon:(MwLLPixmap)pixmap; - (void)forceRender; -- (void)setCursor:(MwCursor*)image mask:(MwCursor*)mask; -- (void)detachWithPoint:(MwPoint*)point; +- (void)setCursor:(MwCursor *)image mask:(MwCursor *)mask; +- (void)detachWithPoint:(MwPoint *)point; - (void)show:(int)show; - (void)makePopupWithParent:(MwLL)parent; - (void)setSizeHintsWithMinX:(int)minx - MinY:(int)miny - MaxX:(int)maxx - MaxY:(int)maxy; + MinY:(int)miny + MaxX:(int)maxx + MaxY:(int)maxy; - (void)makeBorderless:(int)toggle; - (void)focus; - (void)grabPointer:(int)toggle; -- (void)setClipboard:(const char*)text; +- (void)setClipboard:(const char *)text; - (void)makeToolWindow; -- (void)getCursorCoord:(MwPoint*)point; -- (void)getScreenSize:(MwRect*)rect; +- (void)getCursorCoord:(MwPoint *)point; +- (void)getScreenSize:(MwRect *)rect; - (void)destroy; @end #define OBJC(x) x #else -#define OBJC(x) void* +#define OBJC(x) void * #endif MWDECL int MwLLCocoaCallInit(void); struct _MwLLCocoa { - struct _MwLLCommon common; - OBJC(MilskoCocoa*) - real; + struct _MwLLCommon common; + OBJC(MilskoCocoa *) + real; }; struct _MwLLCocoaColor { - struct _MwLLCommonColor common; + struct _MwLLCommonColor common; }; struct _MwLLCocoaPixmap { - struct _MwLLCommonPixmap common; - OBJC(MilskoCocoaPixmap*) - real; + struct _MwLLCommonPixmap common; + OBJC(MilskoCocoaPixmap *) + real; }; #endif diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 42c38a57c..1e069cc2b 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1,490 +1,547 @@ #include - -#include - -#include "../../external/stb_ds.h" +#include +#include @implementation MilskoCocoaPixmap -+ (MilskoCocoaPixmap*)newWithWidth:(int)width height:(int)height { - MilskoCocoaPixmap* p = [MilskoCocoaPixmap alloc]; ++ (MilskoCocoaPixmap *)newWithWidth:(int)width height:(int)height { + MilskoCocoaPixmap *p = [MilskoCocoaPixmap alloc]; - p->width = width; - p->height = height; - p->data = NULL; - p->image = NULL; - - return p; + p->width = width; + p->height = height; + p->data = NULL; + p->image = NULL; + return p; } -- (void)updateWithData:(void*)_data { - [self destroy]; +- (void)updateWithData:(unsigned char *)_data { + [self destroy]; - self->data = [NSData dataWithBytes:_data length:self->width * self->height * 4]; - self->image = [[NSImage alloc] initWithData:self->data]; + self->rep = + [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:&_data + pixelsWide:(int)width + pixelsHigh:(int)height + bitsPerSample:8 + samplesPerPixel:4 + hasAlpha:YES + isPlanar:NO + colorSpaceName:NSDeviceRGBColorSpace + bytesPerRow:(int)width * 4 + bitsPerPixel:32]; + + assert(self->rep); + self->data = [NSData dataWithBytes:[self->rep bitmapData] + length:self->width * self->height * 4]; + assert(self->data); + self->image = [[NSImage alloc] initWithSize:NSMakeSize(width, height)]; + assert(self->image); + [self->image addRepresentation:self->rep]; } - (void)destroy { - if(self->data != NULL) { - [self->data dealloc]; - } - if(self->image != NULL) { - [self->image dealloc]; - } + if (self->data != NULL) { + [self->data dealloc]; + } + if (self->image != NULL) { + [self->image dealloc]; + } } -- (NSImage*)image { - return self->image; +- (NSImage *)image { + return self->image; } @end @implementation MilskoCocoa -+ (MilskoCocoa*)newWithParent:(MwLL)parent - x:(int)x - y:(int)y - width:(int)width - height:(int)height { - MilskoCocoa* c = [MilskoCocoa alloc]; - bool centerX = false, centerY = false; ++ (MilskoCocoa *)newWithParent:(MwLL)parent + x:(int)x + y:(int)y + width:(int)width + height:(int)height { + MilskoCocoa *c = [MilskoCocoa alloc]; + bool centerX = false, centerY = false; - if(x == MwDEFAULT) { - x = 0; - centerX = true; - } - if(y == MwDEFAULT) { - y = 0; - centerY = true; - } - c->application = [NSApplication sharedApplication]; + if (x == MwDEFAULT) { + x = 0; + centerX = true; + } + if (y == MwDEFAULT) { + y = 0; + centerY = true; + } + c->application = [NSApplication sharedApplication]; - c->rect = NSMakeRect(x, y, width, height); + c->rect = NSMakeRect(x, y, width, height); - c->window = [[NSWindow alloc] - initWithContentRect:c->rect - styleMask:parent == NULL - ? (NSTitledWindowMask | NSClosableWindowMask | - NSMiniaturizableWindowMask | - NSResizableWindowMask) - : NSBorderlessWindowMask - backing:NSBackingStoreBuffered - defer:NO]; - [c->window makeKeyAndOrderFront:c->application]; + if (parent == NULL) { + c->window = [[NSWindow alloc] + initWithContentRect:c->rect + styleMask:(NSTitledWindowMask | NSClosableWindowMask | + NSMiniaturizableWindowMask | NSResizableWindowMask) + backing:NSBackingStoreBuffered + defer:NO]; + } else { + NSWindow *parentWindow = parent->cocoa.real->window; - if(parent != NULL) { - MilskoCocoa* p = parent->cocoa.real; - [p->window addChildWindow:c->window ordered:NSWindowAbove]; - } else { - [c->application activateIgnoringOtherApps:true]; - } + c->rect = [parentWindow frameRectForContentRect:c->rect]; + c->rect.origin.y = + y - + [parentWindow contentRectForFrameRect:parentWindow.frame].size.height; - c->view = [[MilskoCocoaView alloc] initWithFrame:c->rect]; - [c->window setContentView:c->view]; + c->window = [[NSWindow alloc] initWithContentRect:c->rect + styleMask:NSBorderlessWindowMask + backing:NSBackingStoreBuffered + defer:NO]; + } - return c; + [c->window makeKeyAndOrderFront:c->application]; + + if (parent != NULL) { + MilskoCocoa *p = parent->cocoa.real; + [p->window addChildWindow:c->window ordered:NSWindowAbove]; + } else { + [c->application activateIgnoringOtherApps:true]; + } + + c->view = [[MilskoCocoaView alloc] initWithFrame:c->rect]; + [c->window setContentView:c->view]; + + c->parent = parent; + + return c; } -- (void)polygonWithPoints:(MwPoint*)points - points_count:(int)points_count - color:(MwLLColor)color { - int i; - CGContextRef cg = [self->view context]; +- (void)polygonWithPoints:(MwPoint *)points + points_count:(int)points_count + color:(MwLLColor)color { + int i; + CGContextRef cg = [self->view context]; - CGContextSetRGBFillColor(cg, color->common.red / 255., color->common.blue / 255., color->common.green / 255., 1); - CGContextBeginPath(cg); - for(i = 0; i < points_count; i++) { - CGContextMoveToPoint(cg, points[i].x, points[i].y); - if(i < points_count - 1) { - CGContextAddLineToPoint(cg, points[i + 1].x, points[i + 1].y); - } - } - CGContextFillPath(cg); + [self->view lockFocus]; - // [self->view setNeedsDisplay:true]; + CGContextSetRGBFillColor(cg, color->common.red / 255., + color->common.blue / 255., + color->common.green / 255., 1); + CGContextBeginPath(cg); + for (i = 0; i < points_count; i++) { + CGContextMoveToPoint(cg, points[i].x, points[i].y); + if (i < points_count - 1) { + CGContextAddLineToPoint(cg, points[i + 1].x, points[i + 1].y); + } + } + CGContextFillPath(cg); + [self->view unlockFocus]; + + [self->view setNeedsDisplay:true]; }; -- (void)lineWithPoints:(MwPoint*)points color:(MwLLColor)color { +- (void)lineWithPoints:(MwPoint *)points color:(MwLLColor)color { }; -- (void)getX:(int*)x Y:(int*)y W:(unsigned int*)w H:(unsigned int*)h { - NSRect frame = [self->window frame]; +- (void)getX:(int *)x Y:(int *)y W:(unsigned int *)w H:(unsigned int *)h { + NSRect frame = [self->window frame]; - *x = frame.origin.x; - *y = frame.origin.y; - *w = frame.size.width; - *h = frame.size.height; + *x = frame.origin.x; + *y = frame.origin.y - frame.size.height; + *w = frame.size.width; + *h = frame.size.height; }; - (void)setX:(int)x Y:(int)y { - NSPoint p; - p.x = x; - p.y = y; - NSRect frame = [self->window frame]; - frame.origin.x = x; - frame.origin.y = y; - [self->window setFrame:frame display:YES animate:true]; + NSRect frame = [self->window frame]; + + frame.origin.x = x; + frame.origin.y = y; + + if (self->parent) { + NSWindow *parentWindow = self->parent->cocoa.real->window; + frame = [parentWindow contentRectForFrameRect:frame]; + frame.origin.y = + [parentWindow contentRectForFrameRect:parentWindow.frame].size.height - + y; + } + + [self->window setFrame:frame display:YES animate:false]; }; - (void)setW:(int)w H:(int)h { - NSRect frame = [self->window frame]; - frame.size.width = w; - frame.size.height = h; - [self->window setFrame:frame display:YES animate:true]; + NSRect frame = [self->window frame]; + frame.size.width = w; + frame.size.height = h; + + if (self->parent) { + NSWindow *parentWindow = self->parent->cocoa.real->window; + // frame = [parentWindow contentRectForFrameRect:frame]; + } + + [self->window setFrame:frame display:YES animate:false]; }; - (int)pending { - return 1; + self->lastEvent = + [self->application nextEventMatchingMask:NSAnyEventMask + untilDate:nil + inMode:NSDefaultRunLoopMode + dequeue:YES]; + return self->lastEvent != NULL; }; - (void)getNextEvent { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSEvent* event = [self->application nextEventMatchingMask:NSAnyEventMask - untilDate:nil - inMode:NSDefaultRunLoopMode - dequeue:YES]; + if (self->lastEvent != nil) { + // printf("got event: %ld\n", self->lastEvent.type); + } - if(event != nil) { - printf("got event: %p\n", event); - } + [self->application sendEvent:self->lastEvent]; - [self->application sendEvent:event]; + /* this should be in the draw functions but it's here for now for testing */ + [self->view setNeedsDisplay:true]; - /* this should be in the draw functions but it's here for now for testing */ - [self->view setNeedsDisplay:true]; - - [pool release]; + [pool release]; }; -- (void)setTitle:(const char*)title { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - [self->window - setTitleWithRepresentedFilename:[NSString stringWithUTF8String:title]]; - [pool release]; +- (void)setTitle:(const char *)title { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + [self->window + setTitleWithRepresentedFilename:[NSString stringWithUTF8String:title]]; + [pool release]; }; -- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect*)_rect { - MilskoCocoaPixmap* p = pixmap->cocoa.real; - [[p image] drawAtPoint:NSMakePoint(_rect->x, _rect->y) fromRect:NSMakeRect(_rect->x, _rect->y, _rect->width, _rect->height) operation:NSCompositeClear fraction:1.0]; +- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect *)_rect { + MilskoCocoaPixmap *p = pixmap->cocoa.real; + NSGraphicsContext *ctx = [self->view context]; + if (ctx) { + [NSGraphicsContext saveGraphicsState]; + [NSGraphicsContext setCurrentContext:ctx]; + + [[NSColor redColor] setFill]; + [[p image] drawInRect:NSMakeRect(_rect->x, _rect->y, _rect->width, + _rect->height) + fromRect:NSZeroRect + operation:NSCompositeSourceOver + fraction:1.0 + respectFlipped:NO + hints:nil]; + + [NSGraphicsContext restoreGraphicsState]; + + [self->view setNeedsDisplay:YES]; + } }; - (void)setIcon:(MwLLPixmap)pixmap { }; - (void)forceRender { }; -- (void)setCursor:(MwCursor*)image mask:(MwCursor*)mask { +- (void)setCursor:(MwCursor *)image mask:(MwCursor *)mask { }; -- (void)detachWithPoint:(MwPoint*)point { +- (void)detachWithPoint:(MwPoint *)point { }; - (void)show:(int)show { }; - (void)makePopupWithParent:(MwLL)parent { }; - (void)setSizeHintsWithMinX:(int)minx - MinY:(int)miny - MaxX:(int)maxx - MaxY:(int)maxy { + MinY:(int)miny + MaxX:(int)maxx + MaxY:(int)maxy { }; - (void)makeBorderless:(int)toggle { - MwU32 mask = [self->window styleMask]; - if(mask & NSBorderlessWindowMask) { - mask ^= NSBorderlessWindowMask; - mask |= NSTitledWindowMask; - } else { - mask |= NSBorderlessWindowMask; - mask ^= NSTitledWindowMask; - } - [self->window initWithContentRect:self->rect - styleMask:mask - backing:NSBackingStoreBuffered - defer:NO]; + MwU32 mask = [self->window styleMask]; + if (mask & NSBorderlessWindowMask) { + mask ^= NSBorderlessWindowMask; + mask |= NSTitledWindowMask; + } else { + mask |= NSBorderlessWindowMask; + mask ^= NSTitledWindowMask; + } + [self->window initWithContentRect:self->rect + styleMask:mask + backing:NSBackingStoreBuffered + defer:NO]; }; - (void)focus { - [self->window makeMainWindow]; + [self->window makeMainWindow]; }; - (void)grabPointer:(int)toggle { - /* MacOS didn't have a "pointer grab" function until 10.13.2 so I need to do - * this manually */ + /* MacOS didn't have a "pointer grab" function until 10.13.2 so I need to do + * this manually */ }; -- (void)setClipboard:(const char*)text { +- (void)setClipboard:(const char *)text { }; - (void)getClipboard { }; - (void)makeToolWindow { }; -- (void)getCursorCoord:(MwPoint*)point { - NSPoint p = [NSEvent mouseLocation]; - point->x = p.x; - point->y = p.y; +- (void)getCursorCoord:(MwPoint *)point { + NSPoint p = [NSEvent mouseLocation]; + point->x = p.x; + point->y = p.y; }; -- (void)getScreenSize:(MwRect*)_rect { - NSScreen* screen = [self->window screen]; - _rect->x = [screen frame].origin.x; - _rect->y = [screen frame].origin.y; - _rect->width = [screen frame].size.width; - _rect->height = [screen frame].size.height; +- (void)getScreenSize:(MwRect *)_rect { + NSScreen *screen = [self->window screen]; + _rect->x = [screen frame].origin.x; + _rect->y = [screen frame].origin.y; + _rect->width = [screen frame].size.width; + _rect->height = [screen frame].size.height; }; - (void)destroy { - [self->window dealloc]; + [self->window dealloc]; } @end @implementation MilskoCocoaView - (id)initWithFrame:(NSRect)frame { - self = [super initWithFrame:frame]; - self->width = frame.size.width; - self->height = frame.size.height; - self->buf = malloc(self->width * self->height * 4); - self->space = CGColorSpaceCreateDeviceRGB(); - self->cg = CGBitmapContextCreate(self->buf, - self->width, - self->height, - CHAR_BIT, - self->width * sizeof(MwU32), - self->space, kCGBitmapByteOrder32Host | kCGImageAlphaPremultipliedLast); - assert(self->cg); - printf("%p\n", self->cg); - return self; + self = [super initWithFrame:frame]; + self->width = frame.size.width; + self->height = frame.size.height; + self->buf = malloc(self->width * self->height * 4); + self->space = CGColorSpaceCreateDeviceRGB(); + + if (width == 0 || height == 0) { + self->rep = NULL; + self->context = NULL; + } else { + self->rep = + [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL + pixelsWide:width + pixelsHigh:height + bitsPerSample:8 + samplesPerPixel:4 + hasAlpha:YES + isPlanar:NO + colorSpaceName:NSDeviceRGBColorSpace + bytesPerRow:width * 4 + bitsPerPixel:32]; + assert(self->rep); + + self->context = + [NSGraphicsContext graphicsContextWithBitmapImageRep:self->rep]; + assert(self->context); + } + + return self; } -- (CGContextRef)context { - return self->cg; +- (NSGraphicsContext *)context { + return self->context; } - (void)drawRect:(NSRect)dirtyRect { - [super drawRect:dirtyRect]; - if(self) { + [super drawRect:dirtyRect]; + if (!self->rep) { + return; + } + [self->rep drawInRect:NSMakeRect(0, 0, self->width, self->height)]; - CGImageRef img = CGBitmapContextCreateImage(self->cg); - if(!img) { - return; - } - printf("printed image\n"); - - CGContextDrawImage([[NSGraphicsContext currentContext] graphicsPort], CGRectMake(0, 0, self->width, self->height), img); - CGImageRelease(img); - } - // printf("%0.2f %0.2f %0.2f %0.2f\n", dirtyRect.origin.x, dirtyRect.origin.y, dirtyRect.size.width, dirtyRect.size.height); + unsigned char *pixels = [self->rep bitmapData]; } - (void)destroy { - free(self->buf); - CGContextRelease(self->cg); - CGColorSpaceRelease(self->space); + free(self->buf); + CGColorSpaceRelease(self->space); } @end static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { - MwLL r; - (void)x; - (void)y; - (void)width; - (void)height; + MwLL r; + (void)x; + (void)y; + (void)width; + (void)height; - r = malloc(sizeof(*r)); + r = malloc(sizeof(*r)); - MwLLCreateCommon(r); + MwLLCreateCommon(r); - MilskoCocoa* o = - [MilskoCocoa newWithParent:parent - x:x - y:y - width:width - height:height]; - r->cocoa.real = o; + MilskoCocoa *o = + [MilskoCocoa newWithParent:parent x:x y:y width:width height:height]; + r->cocoa.real = o; - return r; + return r; } static void MwLLDestroyImpl(MwLL handle) { - MilskoCocoa* h = handle->cocoa.real; + MilskoCocoa *h = handle->cocoa.real; - [h destroy]; + [h destroy]; - MwLLDestroyCommon(handle); + MwLLDestroyCommon(handle); - free(handle); + free(handle); } -static void MwLLBeginDrawImpl(MwLL handle) { - (void)handle; +static void MwLLBeginDrawImpl(MwLL handle) { (void)handle; } + +static void MwLLEndDrawImpl(MwLL handle) { (void)handle; } + +static void MwLLPolygonImpl(MwLL handle, MwPoint *points, int points_count, + MwLLColor color) { + MilskoCocoa *h = handle->cocoa.real; + [h polygonWithPoints:points points_count:points_count color:color]; } -static void MwLLEndDrawImpl(MwLL handle) { - (void)handle; -} - -static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, - MwLLColor color) { - MilskoCocoa* h = handle->cocoa.real; - [h polygonWithPoints:points points_count:points_count color:color]; -} - -static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { - MilskoCocoa* h = handle->cocoa.real; - [h lineWithPoints:points color:color]; +static void MwLLLineImpl(MwLL handle, MwPoint *points, MwLLColor color) { + MilskoCocoa *h = handle->cocoa.real; + [h lineWithPoints:points color:color]; } static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { - MwLLColor c = malloc(sizeof(*c)); - MwLLColorUpdate(handle, c, r, g, b); - return c; + MwLLColor c = malloc(sizeof(*c)); + MwLLColorUpdate(handle, c, r, g, b); + return c; } static void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { - (void)handle; + (void)handle; - c->common.red = r; - c->common.green = g; - c->common.blue = b; + c->common.red = r; + c->common.green = g; + c->common.blue = b; } -static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, - unsigned int* height) { - MilskoCocoa* h = handle->cocoa.real; - [h getX:x Y:y W:w H:height]; +static void MwLLGetXYWHImpl(MwLL handle, int *x, int *y, unsigned int *w, + unsigned int *height) { + MilskoCocoa *h = handle->cocoa.real; + [h getX:x Y:y W:w H:height]; } static void MwLLSetXYImpl(MwLL handle, int x, int y) { - MilskoCocoa* h = handle->cocoa.real; - [h setX:x Y:y]; + MilskoCocoa *h = handle->cocoa.real; + [h setX:x Y:y]; } static void MwLLSetWHImpl(MwLL handle, int w, int height) { - MilskoCocoa* h = handle->cocoa.real; - [h setW:w H:height]; + MilskoCocoa *h = handle->cocoa.real; + [h setW:w H:height]; } -static void MwLLFreeColorImpl(MwLLColor color) { - free(color); -} +static void MwLLFreeColorImpl(MwLLColor color) { free(color); } static int MwLLPendingImpl(MwLL handle) { - MilskoCocoa* h = handle->cocoa.real; - return [h pending]; + MilskoCocoa *h = handle->cocoa.real; + if ([h pending]) { + MwLLDispatch(handle, draw, NULL); + return 1; + }; } static void MwLLNextEventImpl(MwLL handle) { - MilskoCocoa* h = handle->cocoa.real; - [h getNextEvent]; + MilskoCocoa *h = handle->cocoa.real; + [h getNextEvent]; } -static void MwLLSetTitleImpl(MwLL handle, const char* title) { - MilskoCocoa* h = handle->cocoa.real; - [h setTitle:title]; +static void MwLLSetTitleImpl(MwLL handle, const char *title) { + MilskoCocoa *h = handle->cocoa.real; + [h setTitle:title]; } -static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, - int width, int height) { - (void)handle; +static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char *data, + int width, int height) { + (void)handle; - MwLLPixmap r = malloc(sizeof(*r)); + MwLLPixmap r = malloc(sizeof(*r)); - r->common.raw = malloc(4 * width * height); - memcpy(r->common.raw, data, 4 * width * height); + r->common.raw = malloc(4 * width * height); + memcpy(r->common.raw, data, 4 * width * height); - r->common.width = width; - r->common.height = height; + r->common.width = width; + r->common.height = height; - r->cocoa.real = [MilskoCocoaPixmap newWithWidth:width height:height]; + r->cocoa.real = [MilskoCocoaPixmap newWithWidth:width height:height]; - MwLLPixmapUpdate(r); - return r; + MwLLPixmapUpdate(r); + return r; } static void MwLLPixmapUpdateImpl(MwLLPixmap pixmap) { - MilskoCocoaPixmap* p = pixmap->cocoa.real; - [p updateWithData:pixmap->common.raw]; + MilskoCocoaPixmap *p = pixmap->cocoa.real; + [p updateWithData:pixmap->common.raw]; } static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { - MilskoCocoaPixmap* p = pixmap->cocoa.real; - [p destroy]; - free(pixmap); + MilskoCocoaPixmap *p = pixmap->cocoa.real; + [p destroy]; + free(pixmap); } -static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { - MilskoCocoa* h = handle->cocoa.real; - [h drawPixmap:pixmap rect:rect]; +static void MwLLDrawPixmapImpl(MwLL handle, MwRect *rect, MwLLPixmap pixmap) { + MilskoCocoa *h = handle->cocoa.real; + [h drawPixmap:pixmap rect:rect]; + MwLLForceRender(handle); } static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { - MilskoCocoa* h = handle->cocoa.real; - [h setIcon:pixmap]; + MilskoCocoa *h = handle->cocoa.real; + [h setIcon:pixmap]; } static void MwLLForceRenderImpl(MwLL handle) { - MilskoCocoa* h = handle->cocoa.real; - [h forceRender]; + MilskoCocoa *h = handle->cocoa.real; + [h forceRender]; } -static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { - MilskoCocoa* h = handle->cocoa.real; - [h setCursor:image mask:mask]; +static void MwLLSetCursorImpl(MwLL handle, MwCursor *image, MwCursor *mask) { + MilskoCocoa *h = handle->cocoa.real; + [h setCursor:image mask:mask]; } -static void MwLLDetachImpl(MwLL handle, MwPoint* point) { - MilskoCocoa* h = handle->cocoa.real; - [h detachWithPoint:point]; +static void MwLLDetachImpl(MwLL handle, MwPoint *point) { + MilskoCocoa *h = handle->cocoa.real; + [h detachWithPoint:point]; } static void MwLLShowImpl(MwLL handle, int show) { - MilskoCocoa* h = handle->cocoa.real; - [h show:show]; + MilskoCocoa *h = handle->cocoa.real; + [h show:show]; } static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { - MilskoCocoa* h = handle->cocoa.real; - [h makePopupWithParent:parent]; + MilskoCocoa *h = handle->cocoa.real; + [h makePopupWithParent:parent]; } static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, - int maxy) { - MilskoCocoa* h = handle->cocoa.real; - [h setSizeHintsWithMinX:minx MinY:miny MaxX:maxx MaxY:maxy]; + int maxy) { + MilskoCocoa *h = handle->cocoa.real; + [h setSizeHintsWithMinX:minx MinY:miny MaxX:maxx MaxY:maxy]; } static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { - MilskoCocoa* h = handle->cocoa.real; - [h makeBorderless:toggle]; + MilskoCocoa *h = handle->cocoa.real; + [h makeBorderless:toggle]; } static void MwLLFocusImpl(MwLL handle) { - MilskoCocoa* h = handle->cocoa.real; - [h focus]; + MilskoCocoa *h = handle->cocoa.real; + [h focus]; } static void MwLLGrabPointerImpl(MwLL handle, int toggle) { - MilskoCocoa* h = handle->cocoa.real; - [h grabPointer:toggle]; + MilskoCocoa *h = handle->cocoa.real; + [h grabPointer:toggle]; } -static void MwLLSetClipboardImpl(MwLL handle, const char* text) { - MilskoCocoa* h = handle->cocoa.real; - [h setClipboard:text]; +static void MwLLSetClipboardImpl(MwLL handle, const char *text) { + MilskoCocoa *h = handle->cocoa.real; + [h setClipboard:text]; } -static void MwLLGetClipboardImpl(MwLL handle) { - (void)handle; -} +static void MwLLGetClipboardImpl(MwLL handle) { (void)handle; } static void MwLLMakeToolWindowImpl(MwLL handle) { - MilskoCocoa* h = handle->cocoa.real; - [h makeToolWindow]; + MilskoCocoa *h = handle->cocoa.real; + [h makeToolWindow]; } -static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { - MilskoCocoa* h = handle->cocoa.real; - [h getCursorCoord:point]; +static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint *point) { + MilskoCocoa *h = handle->cocoa.real; + [h getCursorCoord:point]; } -static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { - MilskoCocoa* h = handle->cocoa.real; - [h getScreenSize:rect]; +static void MwLLGetScreenSizeImpl(MwLL handle, MwRect *rect) { + MilskoCocoa *h = handle->cocoa.real; + [h getScreenSize:rect]; } -static void MwLLBeginStateChangeImpl(MwLL handle) { - MwLLShow(handle, 0); -} +static void MwLLBeginStateChangeImpl(MwLL handle) { MwLLShow(handle, 0); } -static void MwLLEndStateChangeImpl(MwLL handle) { - MwLLShow(handle, 1); -} +static void MwLLEndStateChangeImpl(MwLL handle) { MwLLShow(handle, 1); } -static int MwLLCocoaCallInitImpl(void) { - return 0; -} +static int MwLLCocoaCallInitImpl(void) { return 0; } #include "call.c" CALL(Cocoa); From cc2d3008d0d263d6c7f73ddc895e849fbed5a144 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 4 Mar 2026 00:02:14 -0700 Subject: [PATCH 159/836] mac: implement polygon function --- src/backend/cocoa.m | 48 ++++++++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 1e069cc2b..3117ba58b 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1,3 +1,4 @@ +#include "Mw/BaseTypes.h" #include #include #include @@ -97,6 +98,7 @@ if (parent != NULL) { MilskoCocoa *p = parent->cocoa.real; [p->window addChildWindow:c->window ordered:NSWindowAbove]; + [c->window setHasShadow:MwFALSE]; } else { [c->application activateIgnoringOtherApps:true]; } @@ -111,25 +113,40 @@ - (void)polygonWithPoints:(MwPoint *)points points_count:(int)points_count color:(MwLLColor)color { - int i; - CGContextRef cg = [self->view context]; + NSGraphicsContext *ctx = [self->view context]; + if (ctx) { + int i; + NSBezierPath *path = [NSBezierPath bezierPath]; + NSColor *nscolor = [NSColor colorWithRed:color->common.red / 255. + green:color->common.green / 255. + blue:color->common.blue / 255. + alpha:1.0]; - [self->view lockFocus]; + [NSGraphicsContext saveGraphicsState]; + [NSGraphicsContext setCurrentContext:ctx]; - CGContextSetRGBFillColor(cg, color->common.red / 255., - color->common.blue / 255., - color->common.green / 255., 1); - CGContextBeginPath(cg); - for (i = 0; i < points_count; i++) { - CGContextMoveToPoint(cg, points[i].x, points[i].y); - if (i < points_count - 1) { - CGContextAddLineToPoint(cg, points[i + 1].x, points[i + 1].y); + [nscolor setFill]; + for (i = 0; i < points_count; i++) { + if (i == 0) { + [path moveToPoint:NSMakePoint(points[i].x, + [self->window frame].size.height - + points[i].y)]; + } else { + [path lineToPoint:NSMakePoint(points[i].x, + [self->window frame].size.height - + points[i].y)]; + } } - } - CGContextFillPath(cg); - [self->view unlockFocus]; - [self->view setNeedsDisplay:true]; + [path closePath]; + [path fill]; + + [NSGraphicsContext restoreGraphicsState]; + + [self->view setNeedsDisplay:YES]; + + [nscolor dealloc]; + } }; - (void)lineWithPoints:(MwPoint *)points color:(MwLLColor)color { }; @@ -204,7 +221,6 @@ [NSGraphicsContext saveGraphicsState]; [NSGraphicsContext setCurrentContext:ctx]; - [[NSColor redColor] setFill]; [[p image] drawInRect:NSMakeRect(_rect->x, _rect->y, _rect->width, _rect->height) fromRect:NSZeroRect From b3735fa36420a43e1be0b0bb747cb16884035189 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 5 Mar 2026 04:09:01 +0900 Subject: [PATCH 160/836] rename Makefile.pl to configure --- Jenkinsfile | 6 +++--- README.txt | 46 +++++++++++++++++++--------------------- Makefile.pl => configure | 2 +- tools/readme.pl | 4 ++-- 4 files changed, 28 insertions(+), 30 deletions(-) rename Makefile.pl => configure (98%) diff --git a/Jenkinsfile b/Jenkinsfile index 58736fdb2..5588f1be3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -22,7 +22,7 @@ pipeline { label "built-in" } steps { - sh("./Makefile.pl --enable-opengl --enable-vulkan --without-vulkan-string-helper") + sh("./configure --enable-opengl --enable-vulkan --without-vulkan-string-helper") sh("make clean") sh("make -j4") } @@ -32,7 +32,7 @@ pipeline { label "built-in" } steps { - sh("./Makefile.pl --enable-opengl --enable-stb-truetype --disable-freetype2 --cross --target=Windows --host=i686-w64-mingw32") + sh("./configure --enable-opengl --enable-stb-truetype --disable-freetype2 --cross --target=Windows --host=i686-w64-mingw32") sh("make clean") sh("make -j4") } @@ -42,7 +42,7 @@ pipeline { label "built-in" } steps { - sh("./Makefile.pl --enable-opengl --enable-stb-truetype --disable-freetype2 --cross --target=Windows --host=x86_64-w64-mingw32") + sh("./configure --enable-opengl --enable-stb-truetype --disable-freetype2 --cross --target=Windows --host=x86_64-w64-mingw32") sh("make clean") sh("make -j4") } diff --git a/README.txt b/README.txt index 744e7a8e8..f69b63652 100644 --- a/README.txt +++ b/README.txt @@ -1,25 +1,23 @@ -Greetings - Welcome to the Milsko GUI Toolkit (Version pre-1.0) +Greetings - Welcome to the Milsko GUI Toolkit (Version pre-1.0) - This document contains a brief summary of the contents of this source -distributions and building instructions for Milsko GUI Toolkit. + This document contains a brief summary of the contents of this source +distributions and building instructions for Milsko GUI Toolkit. Requirements - Milsko requires either - * A Windows environment with GDI (so anything NT or 9x) - * A Mac OS environment with Cocoa (10.4 is the minimum tested) - * Unix-like environment with X11 for runtime. + Milsko requires the Windows environment with GDI (so anything NT or 9x) or +the Unix-like environment with X11 for runtime. - To build Milsko for Windows, you must have one of following compilers: - * Visual C++ 6.0 or newer - * Borland C++ 5.5 or newer - * Open Watcom 2.0 or newer - * MinGW-w64 + To build Milsko for Windows, you must have one of following compilers: + * Visual C++ 6.0 or newer + * Borland C++ 5.5 or newer + * Open Watcom 2.0 or newer + * MinGW-w64 - and for Unix-like/Mac OS: - * GNU C Compiler - * Clang + and for Unix-like: + * GNU C Compiler + * Clang Contents @@ -41,31 +39,31 @@ distributions and building instructions for Milsko GUI Toolkit. Building Milsko - Building Milsko depends on the platform you use, and the compiler you use. + Building Milsko depends on the platform you use, and the compiler you use. A. Visual C++ ------------- -1) Run `nmake -f NTMakefile'. +1) Run `nmake -f NTMakefile'. B. Borland C++ -------------- -1) Run `make -f BorMakefile'. +1) Run `make -f BorMakefile'. C. Open Watcom -------------- -1) Run `wmake -f WatMakefile'. +1) Run `wmake -f WatMakefile'. D. MinGW-w64/GCC/Clang ---------------------- -1) Determine if you need Vulkan and/or OpenGL. +1) Determine if you need Vulkan and/or OpenGL. -2) Run `./Makefile.pl'. - For help, run `./Makefile.pl --help'. +2) Run `./configure'. + For help, run `./configure --help'. -3) Run `make'. +3) Run `make'. - -- Nishi (nishi@nishi.boats) + -- Nishi (nishi@nishi.boats) diff --git a/Makefile.pl b/configure similarity index 98% rename from Makefile.pl rename to configure index 519781ecd..5ffbe544d 100755 --- a/Makefile.pl +++ b/configure @@ -187,7 +187,7 @@ print(OUT " clang-format --verbose -i `find src include examples -name \"*.c\" -or -name \"*.h\" -or -name \"*.m\"`\n" ); print(OUT -" perltidy -b -bext=\"/\" --paren-tightness=2 `find tools pl Makefile.pl -name \"*.pl\"`\n" +" perltidy -b -bext=\"/\" --paren-tightness=2 `find tools pl configure -name \"*.pl\"`\n" ); print(OUT "\n"); print(OUT "lib:"); diff --git a/tools/readme.pl b/tools/readme.pl index 573d9573e..c511f794e 100755 --- a/tools/readme.pl +++ b/tools/readme.pl @@ -105,8 +105,8 @@ l("1) Run `wmake -f WatMakefile'."); h("D. MinGW-w64/GCC/Clang"); l("1) Determine if you need Vulkan and/or OpenGL."); l(""); -l("2) Run `./Makefile.pl'."); -l(" For help, run `./Makefile.pl --help'."); +l("2) Run `./configure'."); +l(" For help, run `./configure --help'."); l(""); l("3) Run `make'."); l(""); From e09eccbf5fba81ef0ca2756979cb623833aec6d5 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 4 Mar 2026 13:59:28 -0600 Subject: [PATCH 161/836] refactor font.c into an MwFL section (#9) Reviewed-on: https://gitea.nishi.boats/pyrite-dev/milsko/pulls/9 Co-authored-by: IoIxD Co-committed-by: IoIxD --- BorMakefile | 12 +- CMakeLists.txt | 2 +- NTMakefile | 12 +- WatMakefile | 26 +-- include/Mw/LowLevel.h | 26 +++ pl/rules.pl | 3 +- src/core.c | 2 + src/text.c | 384 --------------------------------- src/{ => text}/font/boldfont.c | 0 src/{ => text}/font/boldttf.c | 0 src/{ => text}/font/font.c | 0 src/{ => text}/font/ttf.c | 0 src/text/ft2.c | 139 ++++++++++++ src/text/stbtt.c | 141 ++++++++++++ src/text/text.c | 158 ++++++++++++++ 15 files changed, 489 insertions(+), 416 deletions(-) delete mode 100644 src/text.c rename src/{ => text}/font/boldfont.c (100%) rename src/{ => text}/font/boldttf.c (100%) rename src/{ => text}/font/font.c (100%) rename src/{ => text}/font/ttf.c (100%) create mode 100644 src/text/ft2.c create mode 100644 src/text/stbtt.c create mode 100644 src/text/text.c diff --git a/BorMakefile b/BorMakefile index 59551b5fd..b6d062778 100644 --- a/BorMakefile +++ b/BorMakefile @@ -27,10 +27,6 @@ clean: del /f /q src\dialog\messagebox.obj del /f /q src\draw.obj del /f /q src\error.obj - del /f /q src\font\boldfont.obj - del /f /q src\font\boldttf.obj - del /f /q src\font\font.obj - del /f /q src\font\ttf.obj del /f /q src\icon\back.obj del /f /q src\icon\clock.obj del /f /q src\icon\computer.obj @@ -49,7 +45,9 @@ clean: del /f /q src\icon\warning.obj del /f /q src\lowlevel.obj del /f /q src\string.obj - del /f /q src\text.obj + del /f /q src\text\ft2.obj + del /f /q src\text\stbtt.obj + del /f /q src\text\text.obj del /f /q src\unicode.obj del /f /q src\widget\box.obj del /f /q src\widget\button.obj @@ -74,8 +72,8 @@ clean: del /f /q src\Mw.dll del /f /q src\Mw.lib -src\Mw.dll: external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj - $(LD) $(LDFLAGS) -e$@ external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj -lopengl32.lib -lgdi32.lib -luser32.lib +src\Mw.dll: external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj + $(LD) $(LDFLAGS) -e$@ external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj -lopengl32.lib -lgdi32.lib -luser32.lib implib src\Mw.lib src\Mw.dll .c.obj: diff --git a/CMakeLists.txt b/CMakeLists.txt index 650d6d1ea..09a5bd90c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,7 +23,7 @@ option(MW_INSTALL_HEADERS "Install headers" ON) file( GLOB SOURCES - src/*.c src/cursor/*.c src/icon/*.c src/text.c src/widget/*.c src/math/*.c src/font/*.c src/dialog/*.c src/abstract/*.c external/*.c + src/*.c src/cursor/*.c src/icon/*.c src/widget/*.c src/text/*.c src/text/font/*.c src/dialog/*.c src/abstract/*.c external/*.c ) list(REMOVE_ITEM SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/opengl.c") diff --git a/NTMakefile b/NTMakefile index 265418a7a..7ba162df7 100644 --- a/NTMakefile +++ b/NTMakefile @@ -27,10 +27,6 @@ clean: del /f /q src\dialog\messagebox.obj del /f /q src\draw.obj del /f /q src\error.obj - del /f /q src\font\boldfont.obj - del /f /q src\font\boldttf.obj - del /f /q src\font\font.obj - del /f /q src\font\ttf.obj del /f /q src\icon\back.obj del /f /q src\icon\clock.obj del /f /q src\icon\computer.obj @@ -49,7 +45,9 @@ clean: del /f /q src\icon\warning.obj del /f /q src\lowlevel.obj del /f /q src\string.obj - del /f /q src\text.obj + del /f /q src\text\ft2.obj + del /f /q src\text\stbtt.obj + del /f /q src\text\text.obj del /f /q src\unicode.obj del /f /q src\widget\box.obj del /f /q src\widget\button.obj @@ -74,8 +72,8 @@ clean: del /f /q src\Mw.dll del /f /q src\Mw.lib -src\Mw.dll: external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj - $(LD) $(LDFLAGS) /OUT:$@ external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\font\boldfont.obj src\font\boldttf.obj src\font\font.obj src\font\ttf.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib user32.lib +src\Mw.dll: external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj + $(LD) $(LDFLAGS) /OUT:$@ external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib user32.lib .c.obj: diff --git a/WatMakefile b/WatMakefile index dc7b12119..d8dbf5e98 100644 --- a/WatMakefile +++ b/WatMakefile @@ -26,10 +26,6 @@ clean: .SYMBOLIC %erase src/dialog/messagebox.obj %erase src/draw.obj %erase src/error.obj - %erase src/font/boldfont.obj - %erase src/font/boldttf.obj - %erase src/font/font.obj - %erase src/font/ttf.obj %erase src/icon/back.obj %erase src/icon/clock.obj %erase src/icon/computer.obj @@ -48,7 +44,9 @@ clean: .SYMBOLIC %erase src/icon/warning.obj %erase src/lowlevel.obj %erase src/string.obj - %erase src/text.obj + %erase src/text/ft2.obj + %erase src/text/stbtt.obj + %erase src/text/text.obj %erase src/unicode.obj %erase src/widget/box.obj %erase src/widget/button.obj @@ -73,8 +71,8 @@ clean: .SYMBOLIC %erase src/Mw.dll %erase src/Mw.lib -src/Mw.dll: external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/error.obj src/font/boldfont.obj src/font/boldttf.obj src/font/font.obj src/font/ttf.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj - $(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/error.obj file src/font/boldfont.obj file src/font/boldttf.obj file src/font/font.obj file src/font/ttf.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib +src/Mw.dll: external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/error.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text/ft2.obj src/text/stbtt.obj src/text/text.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj + $(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/error.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/ft2.obj file src/text/stbtt.obj file src/text/text.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib @@ -120,14 +118,6 @@ src/draw.obj: src/draw.c $(CC) $(CFLAGS) -fo=$@ $< src/error.obj: src/error.c $(CC) $(CFLAGS) -fo=$@ $< -src/font/boldfont.obj: src/font/boldfont.c - $(CC) $(CFLAGS) -fo=$@ $< -src/font/boldttf.obj: src/font/boldttf.c - $(CC) $(CFLAGS) -fo=$@ $< -src/font/font.obj: src/font/font.c - $(CC) $(CFLAGS) -fo=$@ $< -src/font/ttf.obj: src/font/ttf.c - $(CC) $(CFLAGS) -fo=$@ $< src/icon/back.obj: src/icon/back.c $(CC) $(CFLAGS) -fo=$@ $< src/icon/clock.obj: src/icon/clock.c @@ -164,7 +154,11 @@ src/lowlevel.obj: src/lowlevel.c $(CC) $(CFLAGS) -fo=$@ $< src/string.obj: src/string.c $(CC) $(CFLAGS) -fo=$@ $< -src/text.obj: src/text.c +src/text/ft2.obj: src/text/ft2.c + $(CC) $(CFLAGS) -fo=$@ $< +src/text/stbtt.obj: src/text/stbtt.c + $(CC) $(CFLAGS) -fo=$@ $< +src/text/text.obj: src/text/text.c $(CC) $(CFLAGS) -fo=$@ $< src/unicode.obj: src/unicode.c $(CC) $(CFLAGS) -fo=$@ $< diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index b54832885..dcab28d16 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -18,10 +18,12 @@ typedef struct _MwLLCommonPixmap* MwLLCommonPixmap; typedef union _MwLL* MwLL; typedef union _MwLLColor* MwLLColor; typedef union _MwLLPixmap* MwLLPixmap; +typedef struct _MwFLFont* MwFLFont; #else typedef void* MwLL; typedef void* MwLLColor; typedef void* MwLLPixmap; +typedef void* MwFLFont; #endif enum MwLLBackends { @@ -166,6 +168,14 @@ struct _MwLLHandler { void (*dark_theme)(MwLL handle, void* data); }; +struct _MwLLTextDispatchTable { + int (*drawText)(MwWidget handle, MwPoint* point, const char* text, int bold, int align, MwLLColor color); + int (*textWidth)(MwWidget handle, const char* text); + int (*textHeight)(MwWidget handle, int count); + void* (*fontLoad)(unsigned char* data, unsigned int size); + void (*fontFree)(void* handle); +}; + #ifdef __cplusplus extern "C" { #endif @@ -225,6 +235,22 @@ MWDECL void (*MwLLGetClipboard)(MwLL handle); MWDECL void (*MwLLGetCursorCoord)(MwLL handle, MwPoint* point); MWDECL void (*MwLLGetScreenSize)(MwLL handle, MwRect* rect); +/*font renderer */ +MWDECL void MwFLSetup(); + +#ifdef USE_FREETYPE2 +MWDECL int MWFL_FT2Setup(); +#endif +#ifdef USE_STB_TRUETYPE +MWDECL int MwFL_STBTTSetup(); +#endif + +MWDECL int (*MwFLDrawText)(MwWidget handle, MwPoint* point, const char* text, int bold, int align, MwLLColor color); +MWDECL int (*MwFLTextWidth)(MwWidget handle, const char* text); +MWDECL int (*MwFLTextHeight)(MwWidget handle, int count); +MWDECL void* (*MwFLFontLoad)(unsigned char* data, unsigned int size); +MWDECL void (*MwFLFontFree)(void* handle); + #ifdef __cplusplus } #endif diff --git a/pl/rules.pl b/pl/rules.pl index 59605a803..d4784e102 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -76,8 +76,9 @@ if (param_get("vulkan") && param_get("vulkan-string-helper")) { } new_object("src/icon/*.c"); -new_object("src/font/*.c"); new_object("src/cursor/*.c"); +new_object("src/text/*.c"); +new_object("src/text/font/*.c"); new_object("src/widget/box.c"); new_object("src/widget/button.c"); diff --git a/src/core.c b/src/core.c index 6985a02ee..9902a30e7 100644 --- a/src/core.c +++ b/src/core.c @@ -784,6 +784,8 @@ int MwLibraryInit(void) { NULL}; int i; + MwFLSetup(); + for(i = 0; calls[i] != NULL; i++) { if(calls[i]() == 0) return 0; } diff --git a/src/text.c b/src/text.c deleted file mode 100644 index c0e00c6db..000000000 --- a/src/text.c +++ /dev/null @@ -1,384 +0,0 @@ -#include - -#if defined(USE_FREETYPE2) -#include -#include FT_FREETYPE_H - -typedef struct ttf { - FT_Library library; - FT_Face face; - void* data; -} ttf_t; - -#define TTF -#elif defined(USE_STB_TRUETYPE) -#include "../external/stb_truetype.h" - -typedef struct ttf { - stbtt_fontinfo font; - void* data; - float scale; - int ascent; - int descent; -} ttf_t; - -#define TTF -#endif - -#define FontWidth 7 -#define FontHeight 14 - -static void bitmap_MwDrawText(MwWidget handle, MwPoint* point, const char* text, int bold, int align, MwLLColor color) { - int i = 0, x, y, sx, sy; - int tw, th; - unsigned char* px; - MwRect r; - MwLLPixmap p; - - if(strlen(text) == 0) text = " "; - tw = MwTextWidth(handle, text); - th = MwTextHeight(handle, text); - px = malloc(tw * th * 4); - - memset(px, 0, tw * th * 4); - - sx = 0; - sy = 0; - - while(text[i] != 0) { - int out; - i += MwUTF8ToUTF32(text + i, &out); - - if(out > 0xff) { - out = 0; - } - - if(out == '\n') { - sx = 0; - sy += FontHeight; - } else { - for(y = 0; y < FontHeight; y++) { - for(x = 0; x < FontWidth; x++) { - unsigned char* ppx = &px[((sy + y) * tw + sx + x) * 4]; - if((bold ? MwBoldFontData : MwFontData)[out].data[y] & (1 << ((FontWidth - 1) - x))) { - ppx[0] = color->common.red; - ppx[1] = color->common.green; - ppx[2] = color->common.blue; - ppx[3] = 255; - } else { - ppx[0] = 0; - ppx[1] = 0; - ppx[2] = 0; - ppx[3] = 0; - } - } - } - sx += FontWidth; - } - } - - p = MwLoadRaw(handle, px, tw, th); - r.x = point->x; - r.y = point->y - th / 2; - r.width = tw; - r.height = th; - - if(align == MwALIGNMENT_CENTER) { - r.x -= tw / 2; - } else if(align == MwALIGNMENT_END) { - r.x -= tw; - } - - MwLLDrawPixmap(handle->lowlevel, &r, p); - MwLLDestroyPixmap(p); - free(px); -} - -#if defined(USE_STB_TRUETYPE) -static int ttf_MwDrawText(MwWidget handle, MwPoint* point, const char* text, int bold, int align, MwLLColor color) { - ttf_t* ttf = MwGetVoid(handle, bold ? MwNboldFont : MwNfont); - unsigned char* px; - int tw, th; - MwRect r; - MwLLPixmap p; - int ax, lsb; - int x = 0, y = 0; - if(ttf == NULL) return 1; - - tw = MwTextWidth(handle, text); - th = MwTextHeight(handle, text); - px = malloc(tw * th * 4); - - memset(px, 0, tw * th * 4); - while(text[0] != 0) { - int c; - int x0, y0, x1, y1, cx, cy; - int ow, oh; - unsigned char* out; - - text += MwUTF8ToUTF32(text, &c); - if(c == '\n') { - x = 0; - y += (ttf->ascent - ttf->descent) * ttf->scale; - continue; - } - - stbtt_GetCodepointHMetrics(&ttf->font, c, &ax, &lsb); - - stbtt_GetCodepointBitmapBox(&ttf->font, c, ttf->scale, ttf->scale, &x0, &y0, &x1, &y1); - ow = x1 - x0; - oh = y1 - y0; - out = malloc(ow * oh); - stbtt_MakeCodepointBitmap(&ttf->font, out, ow, oh, ow, ttf->scale, ttf->scale, c); - - for(cy = 0; cy < oh; cy++) { - for(cx = 0; cx < ow; cx++) { - int ox = x + (lsb * ttf->scale) + cx; - int oy = y + (ttf->ascent * ttf->scale) + y0 + cy; - unsigned char* opx = &px[(oy * tw + ox) * 4]; - - opx[0] = color->common.red; - opx[1] = color->common.green; - opx[2] = color->common.blue; - opx[3] = out[cy * ow + cx]; - } - } - - x += ax * ttf->scale; - - free(out); - } - - p = MwLoadRaw(handle, px, tw, th); - r.x = point->x; - r.y = point->y - th / 2; - r.width = tw; - r.height = th; - - if(align == MwALIGNMENT_CENTER) { - r.x -= tw / 2; - } else if(align == MwALIGNMENT_END) { - r.x -= tw; - } - - MwLLDrawPixmap(handle->lowlevel, &r, p); - MwLLDestroyPixmap(p); - free(px); - - return 0; -} - -static int ttf_MwTextWidth(MwWidget handle, const char* text) { - ttf_t* ttf = MwGetVoid(handle, MwNfont); - int ax, lsb; - int tw = 0; - if(ttf == NULL) return -1; - - while(text[0] != 0) { - int c; - text += MwUTF8ToUTF32(text, &c); - - stbtt_GetCodepointHMetrics(&ttf->font, c, &ax, &lsb); - - tw += ax * ttf->scale; - } - - return tw; -} - -static int ttf_MwTextHeight(MwWidget handle, int count) { - ttf_t* ttf = MwGetVoid(handle, MwNfont); - if(ttf == NULL) return -1; - - return (ttf->ascent - ttf->descent) * ttf->scale * count; -} -#elif defined(USE_FREETYPE2) -static int ttf_MwDrawText(MwWidget handle, MwPoint* point, const char* text, int bold, int align, MwLLColor color) { - ttf_t* ttf = MwGetVoid(handle, bold ? MwNboldFont : MwNfont); - int tw, th; - unsigned char* px; - MwLLPixmap p; - MwRect r; - int x = 0, y = 0; - if(ttf == NULL) return 1; - - tw = MwTextWidth(handle, text); - th = MwTextHeight(handle, text); - px = malloc(tw * th * 4); - - memset(px, 0, tw * th * 4); - while(text[0] != 0) { - int c; - FT_Bitmap* bmp; - int cy, cx; - int l = MwUTF8ToUTF32(text, &c); - if(l <= 0) break; - text += l; - - if(c == '\n') { - x = 0; - y += ttf->face->height * 14 / ttf->face->units_per_EM; - continue; - } - - FT_Load_Char(ttf->face, c, FT_LOAD_RENDER); - bmp = &ttf->face->glyph->bitmap; - - for(cy = 0; cy < bmp->rows; cy++) { - for(cx = 0; cx < bmp->width; cx++) { - int ox = x + cx + ttf->face->glyph->bitmap_left; - int oy = y + (ttf->face->height * 14 / ttf->face->units_per_EM) - ttf->face->glyph->bitmap_top + cy + (ttf->face->descender * 14 / ttf->face->units_per_EM); - unsigned char* opx = &px[(oy * tw + ox) * 4]; - - opx[0] = color->common.red; - opx[1] = color->common.green; - opx[2] = color->common.blue; - opx[3] = bmp->buffer[cy * bmp->pitch + cx]; - } - } - - x += ttf->face->glyph->metrics.horiAdvance / 64; - } - - p = MwLoadRaw(handle, px, tw, th); - r.x = point->x; - r.y = point->y - th / 2; - r.width = tw; - r.height = th; - - if(align == MwALIGNMENT_CENTER) { - r.x -= tw / 2; - } else if(align == MwALIGNMENT_END) { - r.x -= tw; - } - - MwLLDrawPixmap(handle->lowlevel, &r, p); - MwLLDestroyPixmap(p); - free(px); - - return 0; -} - -static int ttf_MwTextWidth(MwWidget handle, const char* text) { - ttf_t* ttf = MwGetVoid(handle, MwNfont); - int tw = 0, mtw = 0; - if(ttf == NULL) return -1; - - while(text[0] != 0) { - int c; - int l = MwUTF8ToUTF32(text, &c); - if(l <= 0) break; - text += l; - if(c == '\n') { - tw = 0; - continue; - } - - FT_Load_Char(ttf->face, c, FT_LOAD_RENDER); - - tw += ttf->face->glyph->metrics.horiAdvance / 64; - if(tw > mtw) mtw = tw; - } - - return mtw; -} - -static int ttf_MwTextHeight(MwWidget handle, int count) { - ttf_t* ttf = MwGetVoid(handle, MwNfont); - if(ttf == NULL) return -1; - - return (ttf->face->height * 14 / ttf->face->units_per_EM) * count; -} -#endif - -void MwDrawText(MwWidget handle, MwPoint* point, const char* text, int bold, int align, MwLLColor color) { - if(strlen(text) == 0) return; -#ifdef TTF - if(MwGetInteger(handle, MwNbitmapFont) || ttf_MwDrawText(handle, point, text, bold, align, color)) -#endif - bitmap_MwDrawText(handle, point, text, bold, align, color); -} - -int MwTextWidth(MwWidget handle, const char* text) { - /* TODO: check newline */ -#ifdef TTF - int st; - - if(!MwGetInteger(handle, MwNbitmapFont) && (st = ttf_MwTextWidth(handle, text)) != -1) return st; -#else - (void)handle; - -#endif - return MwUTF8Length(text) * FontWidth; -} - -int MwTextHeight(MwWidget handle, const char* text) { - int c = 1; - int i = 0; -#ifdef TTF - int st; -#endif - - (void)handle; - (void)text; - - while(text[i] != 0) { - int out; - int l = MwUTF8ToUTF32(text + i, &out); - if(l == 0) break; - i += l; - - if(out == '\n') c++; - } -#ifdef TTF - if(!MwGetInteger(handle, MwNbitmapFont) && (st = ttf_MwTextHeight(handle, c)) != -1) return st; -#endif - return FontHeight * c; -} - -void* MwFontLoad(unsigned char* data, unsigned int size) { -#if defined(USE_FREETYPE2) - ttf_t* ttf = malloc(sizeof(*ttf)); - ttf->data = malloc(size); - memcpy(ttf->data, data, size); - FT_Init_FreeType(&ttf->library); - FT_New_Memory_Face(ttf->library, ttf->data, size, 0, &ttf->face); - - FT_Set_Pixel_Sizes(ttf->face, 0, 14); - - return ttf; -#elif defined(USE_STB_TRUETYPE) - ttf_t* ttf = malloc(sizeof(*ttf)); - ttf->data = malloc(size); - memcpy(ttf->data, data, size); - stbtt_InitFont(&ttf->font, ttf->data, 0); - - ttf->scale = stbtt_ScaleForPixelHeight(&ttf->font, 16); - stbtt_GetFontVMetrics(&ttf->font, &ttf->ascent, &ttf->descent, 0); - - return ttf; -#else - (void)data; - (void)size; - return NULL; -#endif -} - -void MwFontFree(void* handle) { -#if defined(USE_FREETYPE2) - ttf_t* ttf = handle; - - FT_Done_Face(ttf->face); - FT_Done_FreeType(ttf->library); - - free(ttf->data); - free(ttf); -#elif defined(USE_STB_TRUETYPE) - ttf_t* ttf = handle; - - free(ttf->data); - free(ttf); -#else - (void)handle; -#endif -} diff --git a/src/font/boldfont.c b/src/text/font/boldfont.c similarity index 100% rename from src/font/boldfont.c rename to src/text/font/boldfont.c diff --git a/src/font/boldttf.c b/src/text/font/boldttf.c similarity index 100% rename from src/font/boldttf.c rename to src/text/font/boldttf.c diff --git a/src/font/font.c b/src/text/font/font.c similarity index 100% rename from src/font/font.c rename to src/text/font/font.c diff --git a/src/font/ttf.c b/src/text/font/ttf.c similarity index 100% rename from src/font/ttf.c rename to src/text/font/ttf.c diff --git a/src/text/ft2.c b/src/text/ft2.c new file mode 100644 index 000000000..a5fb92027 --- /dev/null +++ b/src/text/ft2.c @@ -0,0 +1,139 @@ +#ifdef USE_FREETYPE2 +#include + +#include +#include FT_FREETYPE_H + +struct _MwFLFont { + FT_Library library; + FT_Face face; + void* data; +}; +static int ft2_MwDrawText(MwWidget handle, MwPoint* point, const char* text, int bold, int align, MwLLColor color) { + MwFLFont ttf = MwGetVoid(handle, bold ? MwNboldFont : MwNfont); + int tw, th; + unsigned char* px; + MwLLPixmap p; + MwRect r; + int x = 0, y = 0; + if(ttf == NULL) return 1; + + tw = MwTextWidth(handle, text); + th = MwTextHeight(handle, text); + px = malloc(tw * th * 4); + + memset(px, 0, tw * th * 4); + while(text[0] != 0) { + int c; + FT_Bitmap* bmp; + int cy, cx; + int l = MwUTF8ToUTF32(text, &c); + if(l <= 0) break; + text += l; + + if(c == '\n') { + x = 0; + y += ttf->face->height * 14 / ttf->face->units_per_EM; + continue; + } + + FT_Load_Char(ttf->face, c, FT_LOAD_RENDER); + bmp = &ttf->face->glyph->bitmap; + + for(cy = 0; cy < bmp->rows; cy++) { + for(cx = 0; cx < bmp->width; cx++) { + int ox = x + cx + ttf->face->glyph->bitmap_left; + int oy = y + (ttf->face->height * 14 / ttf->face->units_per_EM) - ttf->face->glyph->bitmap_top + cy + (ttf->face->descender * 14 / ttf->face->units_per_EM); + unsigned char* opx = &px[(oy * tw + ox) * 4]; + + opx[0] = color->common.red; + opx[1] = color->common.green; + opx[2] = color->common.blue; + opx[3] = bmp->buffer[cy * bmp->pitch + cx]; + } + } + + x += ttf->face->glyph->metrics.horiAdvance / 64; + } + + p = MwLoadRaw(handle, px, tw, th); + r.x = point->x; + r.y = point->y - th / 2; + r.width = tw; + r.height = th; + + if(align == MwALIGNMENT_CENTER) { + r.x -= tw / 2; + } else if(align == MwALIGNMENT_END) { + r.x -= tw; + } + + MwLLDrawPixmap(handle->lowlevel, &r, p); + MwLLDestroyPixmap(p); + free(px); + + return 0; +} + +static int ft2_MwTextWidth(MwWidget handle, const char* text) { + MwFLFont ttf = MwGetVoid(handle, MwNfont); + int tw = 0, mtw = 0; + if(ttf == NULL) return -1; + + while(text[0] != 0) { + int c; + int l = MwUTF8ToUTF32(text, &c); + if(l <= 0) break; + text += l; + if(c == '\n') { + tw = 0; + continue; + } + + FT_Load_Char(ttf->face, c, FT_LOAD_RENDER); + + tw += ttf->face->glyph->metrics.horiAdvance / 64; + if(tw > mtw) mtw = tw; + } + + return mtw; +} + +static int ft2_MwTextHeight(MwWidget handle, int count) { + MwFLFont ttf = MwGetVoid(handle, MwNfont); + if(ttf == NULL) return -1; + + return (ttf->face->height * 14 / ttf->face->units_per_EM) * count; +} + +static void* ft2_MwFontLoad(unsigned char* data, unsigned int size) { + MwFLFont ttf = malloc(sizeof(*ttf)); + ttf->data = malloc(size); + memcpy(ttf->data, data, size); + FT_Init_FreeType(&ttf->library); + FT_New_Memory_Face(ttf->library, ttf->data, size, 0, &ttf->face); + + FT_Set_Pixel_Sizes(ttf->face, 0, 14); + + return ttf; +} + +static void ft2_MwFontFree(void* handle) { + MwFLFont ttf = handle; + + FT_Done_Face(ttf->face); + FT_Done_FreeType(ttf->library); + + free(ttf->data); + free(ttf); +} + +int MWFL_FT2Setup() { + MwFLDrawText = ft2_MwDrawText; + MwFLTextWidth = ft2_MwTextWidth; + MwFLTextHeight = ft2_MwTextHeight; + MwFLFontLoad = ft2_MwFontLoad; + MwFLFontFree = ft2_MwFontFree; + return 0; +} +#endif diff --git a/src/text/stbtt.c b/src/text/stbtt.c new file mode 100644 index 000000000..fb5e783e9 --- /dev/null +++ b/src/text/stbtt.c @@ -0,0 +1,141 @@ +#ifdef USE_STB_TRUETYPE +#include +#include + +#include "../../external/stb_truetype.h" + +struct _MwFLFont { + stbtt_fontinfo font; + void* data; + float scale; + int ascent; + int descent; +}; + +static int stbtt_MwDrawText(MwWidget handle, MwPoint* point, const char* text, int bold, int align, MwLLColor color) { + MwFLFont ttf = MwGetVoid(handle, bold ? MwNboldFont : MwNfont); + unsigned char* px; + int tw, th; + MwRect r; + MwLLPixmap p; + int ax, lsb; + int x = 0, y = 0; + if(ttf == NULL) return 1; + + tw = MwTextWidth(handle, text); + th = MwTextHeight(handle, text); + px = malloc(tw * th * 4); + + memset(px, 0, tw * th * 4); + while(text[0] != 0) { + int c; + int x0, y0, x1, y1, cx, cy; + int ow, oh; + unsigned char* out; + + text += MwUTF8ToUTF32(text, &c); + if(c == '\n') { + x = 0; + y += (ttf->ascent - ttf->descent) * ttf->scale; + continue; + } + + stbtt_GetCodepointHMetrics(&ttf->font, c, &ax, &lsb); + + stbtt_GetCodepointBitmapBox(&ttf->font, c, ttf->scale, ttf->scale, &x0, &y0, &x1, &y1); + ow = x1 - x0; + oh = y1 - y0; + out = malloc(ow * oh); + stbtt_MakeCodepointBitmap(&ttf->font, out, ow, oh, ow, ttf->scale, ttf->scale, c); + + for(cy = 0; cy < oh; cy++) { + for(cx = 0; cx < ow; cx++) { + int ox = x + (lsb * ttf->scale) + cx; + int oy = y + (ttf->ascent * ttf->scale) + y0 + cy; + unsigned char* opx = &px[(oy * tw + ox) * 4]; + + opx[0] = color->common.red; + opx[1] = color->common.green; + opx[2] = color->common.blue; + opx[3] = out[cy * ow + cx]; + } + } + + x += ax * ttf->scale; + + free(out); + } + + p = MwLoadRaw(handle, px, tw, th); + r.x = point->x; + r.y = point->y - th / 2; + r.width = tw; + r.height = th; + + if(align == MwALIGNMENT_CENTER) { + r.x -= tw / 2; + } else if(align == MwALIGNMENT_END) { + r.x -= tw; + } + + MwLLDrawPixmap(handle->lowlevel, &r, p); + MwLLDestroyPixmap(p); + free(px); + + return 0; +} + +static int stbtt_MwTextWidth(MwWidget handle, const char* text) { + MwFLFont ttf = MwGetVoid(handle, MwNfont); + int ax, lsb; + int tw = 0; + if(ttf == NULL) return -1; + + while(text[0] != 0) { + int c; + text += MwUTF8ToUTF32(text, &c); + + stbtt_GetCodepointHMetrics(&ttf->font, c, &ax, &lsb); + + tw += ax * ttf->scale; + } + + return tw; +} + +static int stbtt_MwTextHeight(MwWidget handle, int count) { + MwFLFont ttf = MwGetVoid(handle, MwNfont); + if(ttf == NULL) return -1; + + return (ttf->ascent - ttf->descent) * ttf->scale * count; +} + +static void* stbtt_MwFontLoad(unsigned char* data, unsigned int size) { + MwFLFont ttf = malloc(sizeof(*ttf)); + ttf->data = malloc(size); + memcpy(ttf->data, data, size); + stbtt_InitFont(&ttf->font, ttf->data, 0); + + ttf->scale = stbtt_ScaleForPixelHeight(&ttf->font, 16); + stbtt_GetFontVMetrics(&ttf->font, &ttf->ascent, &ttf->descent, 0); + + return ttf; +} + +static void stbtt_MwFontFree(void* handle) { + MwFLFont ttf = handle; + + free(ttf->data); + free(ttf); +} + +int MwFL_STBTTSetup() { + MwFLDrawText = stbtt_MwDrawText; + MwFLTextWidth = stbtt_MwTextWidth; + MwFLTextHeight = stbtt_MwTextHeight; + MwFLFontLoad = stbtt_MwFontLoad; + MwFLFontFree = stbtt_MwFontFree; + return 0; +} + +#endif diff --git a/src/text/text.c b/src/text/text.c new file mode 100644 index 000000000..e25d28b21 --- /dev/null +++ b/src/text/text.c @@ -0,0 +1,158 @@ +#include + +int (*MwFLDrawText)(MwWidget handle, MwPoint* point, const char* text, int bold, int align, MwLLColor color) = NULL; +int (*MwFLTextWidth)(MwWidget handle, const char* text) = NULL; +int (*MwFLTextHeight)(MwWidget handle, int count) = NULL; +void* (*MwFLFontLoad)(unsigned char* data, unsigned int size) = NULL; +void (*MwFLFontFree)(void* handle) = NULL; + +#if defined(USE_FREETYPE2) || defined(USE_STB_TRUETYPE) +#define TTF +#endif + +#define FontWidth 7 +#define FontHeight 14 + +static void bitmap_MwDrawText(MwWidget handle, MwPoint* point, const char* text, int bold, int align, MwLLColor color); + +void MwDrawText(MwWidget handle, MwPoint* point, const char* text, int bold, int align, MwLLColor color) { + if(strlen(text) == 0) return; +#ifdef TTF + if(MwFLDrawText) + if(MwGetInteger(handle, MwNbitmapFont) || MwFLDrawText(handle, point, text, bold, align, color)) +#endif + bitmap_MwDrawText(handle, point, text, bold, align, color); +} + +int MwTextWidth(MwWidget handle, const char* text) { + /* TODO: check newline */ +#ifdef TTF + int st; + + if(MwFLTextWidth) + if(!MwGetInteger(handle, MwNbitmapFont) && (st = MwFLTextWidth(handle, text)) != -1) return st; +#else + (void)handle; + +#endif + return MwUTF8Length(text) * FontWidth; +} + +int MwTextHeight(MwWidget handle, const char* text) { + int c = 1; + int i = 0; +#ifdef TTF + int st; +#endif + + (void)handle; + (void)text; + + while(text[i] != 0) { + int out; + int l = MwUTF8ToUTF32(text + i, &out); + if(l == 0) break; + i += l; + + if(out == '\n') c++; + } +#ifdef TTF + if(MwFLTextHeight) + if(!MwGetInteger(handle, MwNbitmapFont) && (st = MwFLTextHeight(handle, c)) != -1) return st; +#endif + return FontHeight * c; +} + +void* MwFontLoad(unsigned char* data, unsigned int size) { + if(MwFLFontLoad) + return MwFLFontLoad(data, size); + return NULL; +} + +void MwFontFree(void* handle) { + if(MwFLFontFree) + return MwFLFontFree(handle); +} + +static void bitmap_MwDrawText(MwWidget handle, MwPoint* point, const char* text, int bold, int align, MwLLColor color) { + int i = 0, x, y, sx, sy; + int tw, th; + unsigned char* px; + MwRect r; + MwLLPixmap p; + + if(strlen(text) == 0) text = " "; + tw = MwTextWidth(handle, text); + th = MwTextHeight(handle, text); + px = malloc(tw * th * 4); + + memset(px, 0, tw * th * 4); + + sx = 0; + sy = 0; + + while(text[i] != 0) { + int out; + i += MwUTF8ToUTF32(text + i, &out); + + if(out > 0xff) { + out = 0; + } + + if(out == '\n') { + sx = 0; + sy += FontHeight; + } else { + for(y = 0; y < FontHeight; y++) { + for(x = 0; x < FontWidth; x++) { + unsigned char* ppx = &px[((sy + y) * tw + sx + x) * 4]; + if((bold ? MwBoldFontData : MwFontData)[out].data[y] & (1 << ((FontWidth - 1) - x))) { + ppx[0] = color->common.red; + ppx[1] = color->common.green; + ppx[2] = color->common.blue; + ppx[3] = 255; + } else { + ppx[0] = 0; + ppx[1] = 0; + ppx[2] = 0; + ppx[3] = 0; + } + } + } + sx += FontWidth; + } + } + + p = MwLoadRaw(handle, px, tw, th); + r.x = point->x; + r.y = point->y - th / 2; + r.width = tw; + r.height = th; + + if(align == MwALIGNMENT_CENTER) { + r.x -= tw / 2; + } else if(align == MwALIGNMENT_END) { + r.x -= tw; + } + + MwLLDrawPixmap(handle->lowlevel, &r, p); + MwLLDestroyPixmap(p); + free(px); +} + +typedef int (*call_t)(); +void MwFLSetup() { + call_t calls[] = { +#ifdef USE_FREETYPE2 + MWFL_FT2Setup, +#endif +#ifdef USE_STB_TRUETYPE + MwFL_STBTTSetup, +#endif + NULL}; + int i; + + for(i = 0; calls[i] != NULL; i++) { + if(calls[i]() == 0) return; + } +} From de1e8da6f92e06d9545cd5d5a2fa18cc34a94912 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 4 Mar 2026 13:05:38 -0700 Subject: [PATCH 162/836] fix generated mkfiles --- tools/genmk.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/genmk.pl b/tools/genmk.pl index 77545d8f9..1cd0a9ed8 100755 --- a/tools/genmk.pl +++ b/tools/genmk.pl @@ -147,7 +147,7 @@ scan("src/icon"); scan("src/cursor"); scan("src/widget"); scan("src/text"); -scan("src/font"); +scan("src/text/font"); scan("src/dialog"); scan("src/abstract"); push(@cfiles, "src/backend/gdi.c"); From 890294cd55ced334ba1866bacb2dd9b7d839b20c Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 4 Mar 2026 13:18:01 -0700 Subject: [PATCH 163/836] update macos readme --- README.txt | 53 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/README.txt b/README.txt index f69b63652..b116f7c10 100644 --- a/README.txt +++ b/README.txt @@ -1,23 +1,25 @@ -Greetings - Welcome to the Milsko GUI Toolkit (Version pre-1.0) +Greetings - Welcome to the Milsko GUI Toolkit (Version pre-1.0) - This document contains a brief summary of the contents of this source -distributions and building instructions for Milsko GUI Toolkit. + This document contains a brief summary of the contents of this source +distributions and building instructions for Milsko GUI Toolkit. Requirements - Milsko requires the Windows environment with GDI (so anything NT or 9x) or -the Unix-like environment with X11 for runtime. + Milsko requires either + * A Windows environment with GDI (so anything NT or 9x) + * A MacOS environment with XCode Tools, including perl and Make + * A Unix-like environment with X11 for runtime. - To build Milsko for Windows, you must have one of following compilers: - * Visual C++ 6.0 or newer - * Borland C++ 5.5 or newer - * Open Watcom 2.0 or newer - * MinGW-w64 + To build Milsko for Windows, you must have one of following compilers: + * Visual C++ 6.0 or newer + * Borland C++ 5.5 or newer + * Open Watcom 2.0 or newer + * MinGW-w64 - and for Unix-like: - * GNU C Compiler - * Clang + and for Unix-like and MacOS: + * GNU C Compiler + * Clang Contents @@ -39,31 +41,38 @@ the Unix-like environment with X11 for runtime. Building Milsko - Building Milsko depends on the platform you use, and the compiler you use. + Building Milsko depends on the platform you use, and the compiler you use. A. Visual C++ ------------- -1) Run `nmake -f NTMakefile'. +1) Run `nmake -f NTMakefile'. B. Borland C++ -------------- -1) Run `make -f BorMakefile'. +1) Run `make -f BorMakefile'. C. Open Watcom -------------- -1) Run `wmake -f WatMakefile'. +1) Run `wmake -f WatMakefile'. D. MinGW-w64/GCC/Clang ---------------------- -1) Determine if you need Vulkan and/or OpenGL. +1) Determine if you need Vulkan and/or OpenGL. -2) Run `./configure'. - For help, run `./configure --help'. +2) Run `./configure'. + For help, run `./configure --help'. -3) Run `make'. +3) Run `make'. - -- Nishi (nishi@nishi.boats) +E. MacOS +---------------------- + +Currently there is not an .xcodeproj file. The plan for the future is +to write something that automatically generates it, so for now, you +just follow step D + + -- Nishi (nishi@nishi.boats) From 5eeba311aba93af501ba5531c884141f2650aa04 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 4 Mar 2026 13:22:00 -0700 Subject: [PATCH 164/836] i fixed the makefiles but forgot to run the script --- BorMakefile | 8 ++++++-- NTMakefile | 8 ++++++-- WatMakefile | 16 ++++++++++++++-- 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/BorMakefile b/BorMakefile index b6d062778..f8eaced63 100644 --- a/BorMakefile +++ b/BorMakefile @@ -45,6 +45,10 @@ clean: del /f /q src\icon\warning.obj del /f /q src\lowlevel.obj del /f /q src\string.obj + del /f /q src\text\font\boldfont.obj + del /f /q src\text\font\boldttf.obj + del /f /q src\text\font\font.obj + del /f /q src\text\font\ttf.obj del /f /q src\text\ft2.obj del /f /q src\text\stbtt.obj del /f /q src\text\text.obj @@ -72,8 +76,8 @@ clean: del /f /q src\Mw.dll del /f /q src\Mw.lib -src\Mw.dll: external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj - $(LD) $(LDFLAGS) -e$@ external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj -lopengl32.lib -lgdi32.lib -luser32.lib +src\Mw.dll: external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj + $(LD) $(LDFLAGS) -e$@ external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj -lopengl32.lib -lgdi32.lib -luser32.lib implib src\Mw.lib src\Mw.dll .c.obj: diff --git a/NTMakefile b/NTMakefile index 7ba162df7..3177f0487 100644 --- a/NTMakefile +++ b/NTMakefile @@ -45,6 +45,10 @@ clean: del /f /q src\icon\warning.obj del /f /q src\lowlevel.obj del /f /q src\string.obj + del /f /q src\text\font\boldfont.obj + del /f /q src\text\font\boldttf.obj + del /f /q src\text\font\font.obj + del /f /q src\text\font\ttf.obj del /f /q src\text\ft2.obj del /f /q src\text\stbtt.obj del /f /q src\text\text.obj @@ -72,8 +76,8 @@ clean: del /f /q src\Mw.dll del /f /q src\Mw.lib -src\Mw.dll: external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj - $(LD) $(LDFLAGS) /OUT:$@ external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib user32.lib +src\Mw.dll: external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj + $(LD) $(LDFLAGS) /OUT:$@ external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\error.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib user32.lib .c.obj: diff --git a/WatMakefile b/WatMakefile index d8dbf5e98..5177e0509 100644 --- a/WatMakefile +++ b/WatMakefile @@ -44,6 +44,10 @@ clean: .SYMBOLIC %erase src/icon/warning.obj %erase src/lowlevel.obj %erase src/string.obj + %erase src/text/font/boldfont.obj + %erase src/text/font/boldttf.obj + %erase src/text/font/font.obj + %erase src/text/font/ttf.obj %erase src/text/ft2.obj %erase src/text/stbtt.obj %erase src/text/text.obj @@ -71,8 +75,8 @@ clean: .SYMBOLIC %erase src/Mw.dll %erase src/Mw.lib -src/Mw.dll: external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/error.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text/ft2.obj src/text/stbtt.obj src/text/text.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj - $(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/error.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/ft2.obj file src/text/stbtt.obj file src/text/text.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib +src/Mw.dll: external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/error.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text/font/boldfont.obj src/text/font/boldttf.obj src/text/font/font.obj src/text/font/ttf.obj src/text/ft2.obj src/text/stbtt.obj src/text/text.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj + $(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/error.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/font/boldfont.obj file src/text/font/boldttf.obj file src/text/font/font.obj file src/text/font/ttf.obj file src/text/ft2.obj file src/text/stbtt.obj file src/text/text.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib @@ -154,6 +158,14 @@ src/lowlevel.obj: src/lowlevel.c $(CC) $(CFLAGS) -fo=$@ $< src/string.obj: src/string.c $(CC) $(CFLAGS) -fo=$@ $< +src/text/font/boldfont.obj: src/text/font/boldfont.c + $(CC) $(CFLAGS) -fo=$@ $< +src/text/font/boldttf.obj: src/text/font/boldttf.c + $(CC) $(CFLAGS) -fo=$@ $< +src/text/font/font.obj: src/text/font/font.c + $(CC) $(CFLAGS) -fo=$@ $< +src/text/font/ttf.obj: src/text/font/ttf.c + $(CC) $(CFLAGS) -fo=$@ $< src/text/ft2.obj: src/text/ft2.c $(CC) $(CFLAGS) -fo=$@ $< src/text/stbtt.obj: src/text/stbtt.c From 2e4e2a1c7fffd2e603043ce8637863a0854cc15a Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 4 Mar 2026 13:31:25 -0700 Subject: [PATCH 165/836] Remove xcodetools note --- README.txt | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/README.txt b/README.txt index b116f7c10..8fa1a37bc 100644 --- a/README.txt +++ b/README.txt @@ -8,7 +8,7 @@ distributions and building instructions for Milsko GUI Toolkit. Milsko requires either * A Windows environment with GDI (so anything NT or 9x) - * A MacOS environment with XCode Tools, including perl and Make + * A MacOS environment with Xcode Tools * A Unix-like environment with X11 for runtime. To build Milsko for Windows, you must have one of following compilers: @@ -68,11 +68,4 @@ D. MinGW-w64/GCC/Clang 3) Run `make'. -E. MacOS ----------------------- - -Currently there is not an .xcodeproj file. The plan for the future is -to write something that automatically generates it, so for now, you -just follow step D - -- Nishi (nishi@nishi.boats) From f9c35cded4c3ec8bb3ffa60417fe46c2ebc76e81 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 4 Mar 2026 13:32:39 -0700 Subject: [PATCH 166/836] macos note in readme should just be the version, my bad --- README.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.txt b/README.txt index 8fa1a37bc..d4522abe5 100644 --- a/README.txt +++ b/README.txt @@ -8,7 +8,7 @@ distributions and building instructions for Milsko GUI Toolkit. Milsko requires either * A Windows environment with GDI (so anything NT or 9x) - * A MacOS environment with Xcode Tools + * A MacOS environment with Cocoa (10.4 or above supported) * A Unix-like environment with X11 for runtime. To build Milsko for Windows, you must have one of following compilers: From 0832533c514e97120cc20cd36793155792d4af2f Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 4 Mar 2026 16:52:19 -0700 Subject: [PATCH 167/836] Oops the readme is generated --- README.txt | 48 ++++++++++++++++++++++++------------------------ tools/readme.pl | 8 +++++--- 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/README.txt b/README.txt index d4522abe5..dc9d6bf2f 100644 --- a/README.txt +++ b/README.txt @@ -1,25 +1,25 @@ -Greetings - Welcome to the Milsko GUI Toolkit (Version pre-1.0) +Greetings - Welcome to the Milsko GUI Toolkit (Version pre-1.0) - This document contains a brief summary of the contents of this source -distributions and building instructions for Milsko GUI Toolkit. + This document contains a brief summary of the contents of this source +distributions and building instructions for Milsko GUI Toolkit. Requirements - Milsko requires either - * A Windows environment with GDI (so anything NT or 9x) - * A MacOS environment with Cocoa (10.4 or above supported) - * A Unix-like environment with X11 for runtime. + Milsko requires either + * A Windows environment with GDI (so anything NT or 9x) + * A MacOS environment with Cocoa (10.4 or above supported) + * A Unix-like environment with X11 for runtime. - To build Milsko for Windows, you must have one of following compilers: - * Visual C++ 6.0 or newer - * Borland C++ 5.5 or newer - * Open Watcom 2.0 or newer - * MinGW-w64 + To build Milsko for Windows, you must have one of following compilers: + * Visual C++ 6.0 or newer + * Borland C++ 5.5 or newer + * Open Watcom 2.0 or newer + * MinGW-w64 - and for Unix-like and MacOS: - * GNU C Compiler - * Clang + and for Unix-like and MacOS: + * GNU C Compiler + * Clang Contents @@ -41,31 +41,31 @@ distributions and building instructions for Milsko GUI Toolkit. Building Milsko - Building Milsko depends on the platform you use, and the compiler you use. + Building Milsko depends on the platform you use, and the compiler you use. A. Visual C++ ------------- -1) Run `nmake -f NTMakefile'. +1) Run `nmake -f NTMakefile'. B. Borland C++ -------------- -1) Run `make -f BorMakefile'. +1) Run `make -f BorMakefile'. C. Open Watcom -------------- -1) Run `wmake -f WatMakefile'. +1) Run `wmake -f WatMakefile'. D. MinGW-w64/GCC/Clang ---------------------- -1) Determine if you need Vulkan and/or OpenGL. +1) Determine if you need Vulkan and/or OpenGL. -2) Run `./configure'. - For help, run `./configure --help'. +2) Run `./configure'. + For help, run `./configure --help'. -3) Run `make'. +3) Run `make'. - -- Nishi (nishi@nishi.boats) + -- Nishi (nishi@nishi.boats) diff --git a/tools/readme.pl b/tools/readme.pl index c511f794e..7070312dd 100755 --- a/tools/readme.pl +++ b/tools/readme.pl @@ -59,8 +59,10 @@ l(""); c("Requirements"); l(""); l( -" Milsko requires the Windows environment with GDI (so anything NT or 9x) or the Unix-like environment with X11 for runtime." -); +" Milsko requires either"); +l(" * A Windows environment with GDI (so anything NT or 9x)"); +l(" * A MacOS environment with Cocoa (10.4 or above supported)"); +l(" * A Unix-like environment with X11 for runtime."); l(""); l(" To build Milsko for Windows, you must have one of following compilers:"); l(" * Visual C++ 6.0 or newer"); @@ -68,7 +70,7 @@ l(" * Borland C++ 5.5 or newer"); l(" * Open Watcom 2.0 or newer"); l(" * MinGW-w64"); l(""); -l(" and for Unix-like:"); +l(" and for Unix-like and MacOS:"); l(" * GNU C Compiler"); l(" * Clang"); l(""); From 943500a7ecaa938d8d4070bd37820f688fbecf76 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 4 Mar 2026 19:34:19 -0700 Subject: [PATCH 168/836] mac: got a bunch of events handled. failed to get resizing working though --- include/Mw/LowLevel/Cocoa.h | 28 +++- src/backend/cocoa.m | 267 +++++++++++++++++++++++++++++++----- 2 files changed, 261 insertions(+), 34 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index d22f65396..2659b3c16 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -21,6 +21,21 @@ #import #endif +@interface MilskoCocoaWindowDelegate : NSObject { + NSWindow *w; +} +- (instancetype)initWithWin:(NSWindow *)win; +@end + +@interface MilskoFakePointer : NSView { + void *ptr; +} + +- (void)setPointer:(void *)ptr; +- (void *)pointer; + +@end + @interface MilskoCocoaPixmap : NSObject { MwBool valid; int width; @@ -46,28 +61,34 @@ MwBool valid; CGColorSpaceRef space; CGDataProviderRef provider; - unsigned char *buf; float width; float height; } - (NSGraphicsContext *)context; +- (void)destroy; +- (NSBitmapImageRep *)getRep; + @end @interface MilskoCocoa : NSObject { NSApplication *application; NSEvent *lastEvent; + MwBool _forceRender; NSWindow *window; NSRect rect; MilskoCocoaView *view; MwLL parent; + MilskoFakePointer *handle; + MwBool doWHResize; } + (MilskoCocoa *)newWithParent:(MwLL)parent x:(int)x y:(int)y width:(int)width - height:(int)height; + height:(int)height + handle:(MwLL)handle; - (void)polygonWithPoints:(MwPoint *)points points_count:(int)points_count color:(MwLLColor)color; @@ -97,6 +118,9 @@ - (void)getCursorCoord:(MwPoint *)point; - (void)getScreenSize:(MwRect *)rect; - (void)destroy; +- (void)setHandle:(MwLL)h; + +- (NSWindow *)parentWindow; @end #define OBJC(x) x diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 3117ba58b..5d6f5c6ca 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1,7 +1,6 @@ #include "Mw/BaseTypes.h" +#include "Mw/LowLevel.h" #include -#include -#include @implementation MilskoCocoaPixmap @@ -56,7 +55,8 @@ x:(int)x y:(int)y width:(int)width - height:(int)height { + height:(int)height + handle:(MwLL)r { MilskoCocoa *c = [MilskoCocoa alloc]; bool centerX = false, centerY = false; @@ -92,6 +92,8 @@ backing:NSBackingStoreBuffered defer:NO]; } + c->window.delegate = + [[MilskoCocoaWindowDelegate alloc] initWithWin:c->window]; [c->window makeKeyAndOrderFront:c->application]; @@ -100,14 +102,20 @@ [p->window addChildWindow:c->window ordered:NSWindowAbove]; [c->window setHasShadow:MwFALSE]; } else { - [c->application activateIgnoringOtherApps:true]; + // [c->application activateIgnoringOtherApps:true]; } c->view = [[MilskoCocoaView alloc] initWithFrame:c->rect]; + c->handle = [[MilskoFakePointer alloc] initWithFrame:NSMakeRect(0, 0, 1, 1)]; + [c->handle setPointer:r]; + [c->view addSubview:c->handle]; + [c->window setContentView:c->view]; c->parent = parent; + c->_forceRender = MwTRUE; + return c; } - (void)polygonWithPoints:(MwPoint *)points @@ -154,7 +162,8 @@ NSRect frame = [self->window frame]; *x = frame.origin.x; - *y = frame.origin.y - frame.size.height; + *y = frame.origin.y; + *w = frame.size.width; *h = frame.size.height; }; @@ -165,11 +174,12 @@ frame.origin.y = y; if (self->parent) { - NSWindow *parentWindow = self->parent->cocoa.real->window; - frame = [parentWindow contentRectForFrameRect:frame]; - frame.origin.y = - [parentWindow contentRectForFrameRect:parentWindow.frame].size.height - - y; + NSWindow *parentWindow = [self parentWindow]; + CGFloat ny; + NSRect realFrame = parentWindow.frame; + NSRect correctedFrame = [parentWindow contentRectForFrameRect:realFrame]; + ny = (correctedFrame.size.height - y); + frame.origin.y = ny; } [self->window setFrame:frame display:YES animate:false]; @@ -178,11 +188,7 @@ NSRect frame = [self->window frame]; frame.size.width = w; frame.size.height = h; - - if (self->parent) { - NSWindow *parentWindow = self->parent->cocoa.real->window; - // frame = [parentWindow contentRectForFrameRect:frame]; - } + self->rect = frame; [self->window setFrame:frame display:YES animate:false]; }; @@ -192,22 +198,144 @@ untilDate:nil inMode:NSDefaultRunLoopMode dequeue:YES]; + if (_forceRender) { + _forceRender = MwFALSE; + return 1; + } return self->lastEvent != NULL; }; - (void)getNextEvent { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - if (self->lastEvent != nil) { + NSWindow *win = [self->lastEvent window]; + NSWindow *parentWindow = [self parentWindow]; + NSRect realFrame = parentWindow.frame; + NSRect correctedFrame = + [parentWindow frameRectForContentRect:parentWindow.frame]; + CGFloat offset = realFrame.size.height - correctedFrame.size.height; + MwLL h; + + if ([win contentView].subviews.count == 0) { + NSLog(@"[WARNING] no subviews on this window, cannot process events.\n"); + return; + } + + h = [((MilskoFakePointer *)[win contentView].subviews[0]) pointer]; + switch (self->lastEvent.type) { + case NSEventTypeLeftMouseDown: + case NSEventTypeRightMouseDown: + case NSEventTypeOtherMouseDown: + case NSEventTypeLeftMouseUp: + case NSEventTypeRightMouseUp: + case NSEventTypeOtherMouseUp: { + MwLLMouse mouse = {}; + MwBool isDown = MwTRUE; + switch (self->lastEvent.type) { + case NSEventTypeLeftMouseUp: + isDown = MwFALSE; + case NSEventTypeLeftMouseDown: + mouse.button = MwLLMouseLeft; + break; + case NSEventTypeRightMouseUp: + isDown = MwFALSE; + case NSEventTypeRightMouseDown: + mouse.button = MwLLMouseRight; + break; + case NSEventTypeOtherMouseUp: + isDown = MwFALSE; + case NSEventTypeOtherMouseDown: + mouse.button = MwLLMouseMiddle; + break; + default: + break; + } + mouse.point.x = [lastEvent locationInWindow].x; + mouse.point.y = [win contentRectForFrameRect:win.frame].size.height - + [lastEvent locationInWindow].y; + + if (isDown) { + MwLLDispatch(h, down, &mouse); + } else { + MwLLDispatch(h, up, &mouse); + } + break; + } + + break; + case NSEventTypeMouseMoved: { + MwPoint pos; + pos.x = [lastEvent locationInWindow].x; + pos.y = [win contentRectForFrameRect:win.frame].size.height - + [lastEvent locationInWindow].y; + MwLLDispatch(h, move, &pos); + break; + } + case NSEventTypeLeftMouseDragged: + MwLLDispatch(h, focus_in, NULL); + break; + case NSEventTypeRightMouseDragged: + MwLLDispatch(h, focus_out, NULL); + break; + case NSEventTypeMouseEntered: + break; + case NSEventTypeMouseExited: + break; + case NSEventTypeKeyDown: + [win interpretKeyEvents:[NSArray arrayWithObject:lastEvent]]; + break; + case NSEventTypeKeyUp: + [win interpretKeyEvents:[NSArray arrayWithObject:lastEvent]]; + break; + case NSEventTypeFlagsChanged: + break; + case NSEventTypeAppKitDefined: + break; + case NSEventTypeSystemDefined: + break; + case NSEventTypeApplicationDefined: + break; + case NSEventTypePeriodic: + break; + case NSEventTypeCursorUpdate: + break; + case NSEventTypeScrollWheel: + break; + case NSEventTypeTabletPoint: + break; + case NSEventTypeTabletProximity: + break; + break; + case NSEventTypeOtherMouseDragged: + break; + case NSEventTypeGesture: + break; + case NSEventTypeMagnify: + break; + case NSEventTypeSwipe: + break; + case NSEventTypeRotate: + break; + case NSEventTypeBeginGesture: + break; + case NSEventTypeEndGesture: + break; + case NSEventTypeSmartMagnify: + break; + case NSEventTypeQuickLook: + break; + case NSEventTypePressure: + break; + case NSEventTypeDirectTouch: + break; + case NSEventTypeChangeMode: + break; + }; // printf("got event: %ld\n", self->lastEvent.type); + [self->application sendEvent:self->lastEvent]; } - [self->application sendEvent:self->lastEvent]; - - /* this should be in the draw functions but it's here for now for testing */ [self->view setNeedsDisplay:true]; - - [pool release]; }; + - (void)setTitle:(const char *)title { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; [self->window @@ -237,6 +365,7 @@ - (void)setIcon:(MwLLPixmap)pixmap { }; - (void)forceRender { + _forceRender = MwTRUE; }; - (void)setCursor:(MwCursor *)image mask:(MwCursor *)mask { }; @@ -269,8 +398,8 @@ [self->window makeMainWindow]; }; - (void)grabPointer:(int)toggle { - /* MacOS didn't have a "pointer grab" function until 10.13.2 so I need to do - * this manually */ + /* MacOS didn't have a "pointer grab" function + * until 10.13.2 so I need to do this manually */ }; - (void)setClipboard:(const char *)text { }; @@ -294,14 +423,23 @@ [self->window dealloc]; } +- (void)setDoWHResize:(MwBool)d { + doWHResize = d; +}; + +- (NSWindow *)parentWindow { + NSWindow *topmostWindow = self->window; + while (topmostWindow.parentWindow) + topmostWindow = topmostWindow.parentWindow; + return topmostWindow; +} @end @implementation MilskoCocoaView - (id)initWithFrame:(NSRect)frame { + width = frame.size.width; + height = frame.size.height; self = [super initWithFrame:frame]; - self->width = frame.size.width; - self->height = frame.size.height; - self->buf = malloc(self->width * self->height * 4); self->space = CGColorSpaceCreateDeviceRGB(); if (width == 0 || height == 0) { @@ -333,23 +471,84 @@ return self->context; } +- (NSBitmapImageRep *)getRep { + return self->rep; +} + - (void)drawRect:(NSRect)dirtyRect { + NSSize sz = [self->rep size]; + unsigned char *pixels; [super drawRect:dirtyRect]; if (!self->rep) { return; } - [self->rep drawInRect:NSMakeRect(0, 0, self->width, self->height)]; - unsigned char *pixels = [self->rep bitmapData]; + [self->rep drawInRect:NSMakeRect(0, 0, width, height)]; + + pixels = [self->rep bitmapData]; } - (void)destroy { - free(self->buf); CGColorSpaceRelease(self->space); } +- (void)setFrameSize:(NSSize)newSize { + [super setFrameSize:newSize]; + if (newSize.width != 0 && newSize.height != 0) { + // [self->rep setSize:newSize]; + // width = newSize.width; + // height = newSize.height; + // [self->context setImageInterpolation:NSImageInterpolationHigh]; + } +} + +- (void)displayRect:(NSRect)rect { +}; +@end + +@implementation MilskoFakePointer +- (void)viewDidMoveToSuperview { +} +- (void)setPointer:(void *)pointer { + self.frame = *(NSRect *)&pointer; + self->ptr = pointer; +}; +- (void *)pointer { + return self->ptr; +}; + +- (void)drawRect:(NSRect)dirtyRect { + /* explicitly do nothing */ +} + +- (void)destroy { +} + @end +@implementation MilskoCocoaWindowDelegate + +- (NSSize)windowWillResize:(NSWindow *)win toSize:(NSSize)frameSize; +{ + if (win.contentView.subviews.count >= 1) { + MilskoFakePointer *ptr = win.contentView.subviews[0]; + MwLL h = [ptr pointer]; + + // MwLLDispatch(h, resize, NULL); + MwLLDispatch(h, draw, NULL); + } + return frameSize; +} + +- (void)windowDidResize:(NSNotification *)notification { +} + +- (instancetype)initWithWin:(NSWindow *)win { + self->w = win; + return self; +} + +@end static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLL r; (void)x; @@ -361,8 +560,12 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLLCreateCommon(r); - MilskoCocoa *o = - [MilskoCocoa newWithParent:parent x:x y:y width:width height:height]; + MilskoCocoa *o = [MilskoCocoa newWithParent:parent + x:x + y:y + width:width + height:height + handle:r]; r->cocoa.real = o; return r; From b585ad69b74542fbcd6a2784dc6f2af5ec8991e1 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 4 Mar 2026 20:44:25 -0700 Subject: [PATCH 169/836] code cleanup --- include/Mw/LowLevel/Cocoa.h | 1 - src/backend/cocoa.m | 19 +++++-------------- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 2659b3c16..22bb29c2f 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -80,7 +80,6 @@ MilskoCocoaView *view; MwLL parent; MilskoFakePointer *handle; - MwBool doWHResize; } + (MilskoCocoa *)newWithParent:(MwLL)parent diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 5d6f5c6ca..b9d108008 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -162,7 +162,7 @@ NSRect frame = [self->window frame]; *x = frame.origin.x; - *y = frame.origin.y; + *y = frame.origin.y - frame.size.height; *w = frame.size.width; *h = frame.size.height; @@ -175,11 +175,9 @@ if (self->parent) { NSWindow *parentWindow = [self parentWindow]; - CGFloat ny; - NSRect realFrame = parentWindow.frame; - NSRect correctedFrame = [parentWindow contentRectForFrameRect:realFrame]; - ny = (correctedFrame.size.height - y); - frame.origin.y = ny; + NSRect correctedFrame = + [parentWindow contentRectForFrameRect:parentWindow.frame]; + frame.origin.y = (correctedFrame.size.height - y); } [self->window setFrame:frame display:YES animate:false]; @@ -423,10 +421,6 @@ [self->window dealloc]; } -- (void)setDoWHResize:(MwBool)d { - doWHResize = d; -}; - - (NSWindow *)parentWindow { NSWindow *topmostWindow = self->window; while (topmostWindow.parentWindow) @@ -477,7 +471,6 @@ - (void)drawRect:(NSRect)dirtyRect { NSSize sz = [self->rep size]; - unsigned char *pixels; [super drawRect:dirtyRect]; if (!self->rep) { return; @@ -485,7 +478,7 @@ [self->rep drawInRect:NSMakeRect(0, 0, width, height)]; - pixels = [self->rep bitmapData]; + [self->rep bitmapData]; } - (void)destroy { @@ -507,8 +500,6 @@ @end @implementation MilskoFakePointer -- (void)viewDidMoveToSuperview { -} - (void)setPointer:(void *)pointer { self.frame = *(NSRect *)&pointer; self->ptr = pointer; From f700e90d23d5752585a728c54ecf35d4d93dbb0f Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 4 Mar 2026 20:47:55 -0700 Subject: [PATCH 170/836] did some code cleanup --- include/Mw/LowLevel/Cocoa.h | 1 - src/backend/cocoa.m | 11 ++++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 22bb29c2f..a36dbfdea 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -117,7 +117,6 @@ - (void)getCursorCoord:(MwPoint *)point; - (void)getScreenSize:(MwRect *)rect; - (void)destroy; -- (void)setHandle:(MwLL)h; - (NSWindow *)parentWindow; diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index b9d108008..23e9373c2 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1,7 +1,8 @@ -#include "Mw/BaseTypes.h" -#include "Mw/LowLevel.h" #include +#pragma clang push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + @implementation MilskoCocoaPixmap + (MilskoCocoaPixmap *)newWithWidth:(int)width height:(int)height { @@ -92,8 +93,8 @@ backing:NSBackingStoreBuffered defer:NO]; } - c->window.delegate = - [[MilskoCocoaWindowDelegate alloc] initWithWin:c->window]; + c->window.delegate = (id)[[MilskoCocoaWindowDelegate alloc] + initWithWin:c->window]; [c->window makeKeyAndOrderFront:c->application]; @@ -625,10 +626,10 @@ static int MwLLPendingImpl(MwLL handle) { MwLLDispatch(handle, draw, NULL); return 1; }; + return 0; } static void MwLLNextEventImpl(MwLL handle) { - MilskoCocoa *h = handle->cocoa.real; [h getNextEvent]; } From db577bb01f5488e1dfa441a0826cd06916e36823 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 4 Mar 2026 22:56:04 -0700 Subject: [PATCH 171/836] mac opengl support. proper coordinate flipping --- examples/gldemos/cube.c | 113 +++---- include/Mw/LowLevel/Cocoa.h | 1 + include/Mw/Widget/OpenGL.h | 21 +- pl/rules.pl | 9 +- src/backend/cocoa.m | 80 +++-- src/widget/opengl.c | 590 +++++++++++++++++++----------------- src/widget/opengl_cocoa.m | 128 ++++++++ 7 files changed, 581 insertions(+), 361 deletions(-) create mode 100644 src/widget/opengl_cocoa.m diff --git a/examples/gldemos/cube.c b/examples/gldemos/cube.c index c1ba9917d..2d1954c5a 100644 --- a/examples/gldemos/cube.c +++ b/examples/gldemos/cube.c @@ -1,78 +1,89 @@ #define TITLE "cube" #include "glutlayer.c" +#if defined(__APPLE__) +#include +#include +#else +#include #include +#endif static double deg = 0; static void draw(void) { - int i; - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + int i; + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - glPushMatrix(); - glRotatef(deg, 1, 0, 0); - glRotatef(deg, 0, 1, 0); - glRotatef(deg, 0, 0, 1); + glPushMatrix(); + glRotatef(deg, 1, 0, 0); + glRotatef(deg, 0, 1, 0); + glRotatef(deg, 0, 0, 1); - for(i = 0; i < 6; i++) { - if(i == 0) glColor3f(1, 0, 0); - if(i == 1) glColor3f(0, 1, 0); - if(i == 2) glColor3f(1, 1, 0); - if(i == 3) glColor3f(0, 0, 1); - if(i == 4) glColor3f(1, 0, 1); - if(i == 5) glColor3f(0, 1, 1); + for (i = 0; i < 6; i++) { + if (i == 0) + glColor3f(1, 0, 0); + if (i == 1) + glColor3f(0, 1, 0); + if (i == 2) + glColor3f(1, 1, 0); + if (i == 3) + glColor3f(0, 0, 1); + if (i == 4) + glColor3f(1, 0, 1); + if (i == 5) + glColor3f(0, 1, 1); - glBegin(GL_QUADS); - glNormal3f(0, 1, 0); - glVertex3f(-1, 1, -1); - glVertex3f(-1, 1, 1); - glVertex3f(1, 1, 1); - glVertex3f(1, 1, -1); - glEnd(); + glBegin(GL_QUADS); + glNormal3f(0, 1, 0); + glVertex3f(-1, 1, -1); + glVertex3f(-1, 1, 1); + glVertex3f(1, 1, 1); + glVertex3f(1, 1, -1); + glEnd(); - if(i < 3) glRotatef(90, 0, 0, 1); - if(i == 3) glRotatef(90, 1, 0, 0); - if(i == 4) glRotatef(180, 0, 0, 1); - } - glPopMatrix(); + if (i < 3) + glRotatef(90, 0, 0, 1); + if (i == 3) + glRotatef(90, 1, 0, 0); + if (i == 4) + glRotatef(180, 0, 0, 1); + } + glPopMatrix(); } -static void idle(void) { - deg += 1.0; -} +static void idle(void) { deg += 1.0; } static void reshape(int width, int height) { - GLfloat lpos[4]; + GLfloat lpos[4]; - lpos[0] = 1; - lpos[1] = 1; - lpos[2] = 1; - lpos[3] = 0; + lpos[0] = 1; + lpos[1] = 1; + lpos[2] = 1; + lpos[3] = 0; - glViewport(0, 0, width, height); + glViewport(0, 0, width, height); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluPerspective(60, (double)width / height, 1, 100); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + gluPerspective(60, (double)width / height, 1, 100); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - gluLookAt(2, 2, 2, 0, 0, 0, 0, 1, 0); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + gluLookAt(2, 2, 2, 0, 0, 0, 0, 1, 0); - glLightfv(GL_LIGHT0, GL_POSITION, lpos); + glLightfv(GL_LIGHT0, GL_POSITION, lpos); } static void init(void) { - glEnable(GL_DEPTH_TEST); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glEnable(GL_COLOR_MATERIAL); - glEnable(GL_CULL_FACE); - glEnable(GL_NORMALIZE); + glEnable(GL_DEPTH_TEST); + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glEnable(GL_COLOR_MATERIAL); + glEnable(GL_CULL_FACE); + glEnable(GL_NORMALIZE); - glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE); + glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE); } -static void key(int k) { - (void)k; -} +static void key(int k) { (void)k; } diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index a36dbfdea..91679db7e 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -119,6 +119,7 @@ - (void)destroy; - (NSWindow *)parentWindow; +- (NSView *)getView; @end #define OBJC(x) x diff --git a/include/Mw/Widget/OpenGL.h b/include/Mw/Widget/OpenGL.h index 26f44abf5..c3fab76ed 100644 --- a/include/Mw/Widget/OpenGL.h +++ b/include/Mw/Widget/OpenGL.h @@ -5,17 +5,24 @@ #ifndef __MW_WIDGET_OPENGL_H__ #define __MW_WIDGET_OPENGL_H__ +#include #include #include -#include #if !defined(MW_OPENGL_NO_INCLUDE) && !defined(__gl_h_) #ifdef _WIN32 #include +#elif defined(__APPLE__) #else #include #endif +#if defined(__APPLE__) +#include +#include +#else #include +#include +#endif #ifndef GLAPIENTRY #define GLAPIENTRY APIENTRY @@ -36,7 +43,7 @@ MWDECL MwClass MwOpenGLClass; * @param handle Widget */ MwInline void MwOpenGLMakeCurrent(MwWidget handle) { - MwVaWidgetExecute(handle, "mwOpenGLMakeCurrent", NULL); + MwVaWidgetExecute(handle, "mwOpenGLMakeCurrent", NULL); } /*! @@ -45,10 +52,10 @@ MwInline void MwOpenGLMakeCurrent(MwWidget handle) { * @param name Name * @return Procedure */ -MwInline void* MwOpenGLGetProcAddress(MwWidget handle, const char* name) { - void* out; - MwVaWidgetExecute(handle, "mwOpenGLGetProcAddress", &out, name); - return out; +MwInline void *MwOpenGLGetProcAddress(MwWidget handle, const char *name) { + void *out; + MwVaWidgetExecute(handle, "mwOpenGLGetProcAddress", &out, name); + return out; } /*! @@ -56,7 +63,7 @@ MwInline void* MwOpenGLGetProcAddress(MwWidget handle, const char* name) { * @param handle Widget */ MwInline void MwOpenGLSwapBuffer(MwWidget handle) { - MwVaWidgetExecute(handle, "mwOpenGLSwapBuffer", NULL); + MwVaWidgetExecute(handle, "mwOpenGLSwapBuffer", NULL); } #ifdef __cplusplus diff --git a/pl/rules.pl b/pl/rules.pl index d4784e102..45bb6daf3 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -50,7 +50,14 @@ if (grep(/^cocoa$/, @backends)) { add_cflags("-DUSE_COCOA"); new_object("src/backend/cocoa.m"); - $gl_libs = "-lGL -lGLU"; + if (param_get("opengl")) { + new_object("src/widget/opengl_cocoa.m"); + } + + # tim cook my man literally everybody and their mother who knows what opengl is knows its deprecated on macos and i'm not having you spam the console with this + add_cflags("-DGL_SILENCE_DEPRECATION"); + + $gl_libs = "-framework OpenGL"; } if (param_get("stb-image")) { diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 23e9373c2..700ebdb88 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -3,6 +3,29 @@ #pragma clang push #pragma clang diagnostic ignored "-Wdeprecated-declarations" +static CGRect rectFlip(CGRect originFrame) { + NSScreen *zeroScreen = NSScreen.screens[0]; + double screenHeight = zeroScreen.frame.size.height; + double originY = originFrame.origin.y; + double frameHeight = originFrame.size.height; + double destinationY = screenHeight - (originY + frameHeight); + CGRect destinationFrame = originFrame; + destinationFrame.origin.y = destinationY; + if (destinationFrame.origin.x < 0) + destinationFrame.origin.x = 0; + if (destinationFrame.origin.y < 0) + destinationFrame.origin.y = 0; + if (destinationFrame.size.width < 0) + destinationFrame.size.width = 0; + if (destinationFrame.size.height < 0) + destinationFrame.size.height = 0; + return destinationFrame; +} + +static CGPoint pointFlip(CGPoint point) { + return rectFlip(NSMakeRect(point.x, point.y, 0, 0)).origin; +} + @implementation MilskoCocoaPixmap + (MilskoCocoaPixmap *)newWithWidth:(int)width height:(int)height { @@ -70,8 +93,7 @@ centerY = true; } c->application = [NSApplication sharedApplication]; - - c->rect = NSMakeRect(x, y, width, height); + c->rect = rectFlip(NSMakeRect(x, y, width, height)); if (parent == NULL) { c->window = [[NSWindow alloc] @@ -81,12 +103,12 @@ backing:NSBackingStoreBuffered defer:NO]; } else { + double offset = 0; NSWindow *parentWindow = parent->cocoa.real->window; - - c->rect = [parentWindow frameRectForContentRect:c->rect]; - c->rect.origin.y = - y - + offset = + [parentWindow frameRectForContentRect:parentWindow.frame].size.height - [parentWindow contentRectForFrameRect:parentWindow.frame].size.height; + c->rect.origin.y -= offset; c->window = [[NSWindow alloc] initWithContentRect:c->rect styleMask:NSBorderlessWindowMask @@ -160,10 +182,10 @@ - (void)lineWithPoints:(MwPoint *)points color:(MwLLColor)color { }; - (void)getX:(int *)x Y:(int *)y W:(unsigned int *)w H:(unsigned int *)h { - NSRect frame = [self->window frame]; + NSRect frame = rectFlip([self->window frame]); *x = frame.origin.x; - *y = frame.origin.y - frame.size.height; + *y = frame.origin.y; *w = frame.size.width; *h = frame.size.height; @@ -174,12 +196,17 @@ frame.origin.x = x; frame.origin.y = y; - if (self->parent) { - NSWindow *parentWindow = [self parentWindow]; - NSRect correctedFrame = - [parentWindow contentRectForFrameRect:parentWindow.frame]; - frame.origin.y = (correctedFrame.size.height - y); + frame = rectFlip(frame); + + if (parent) { + double offset = 0; + NSWindow *parentWindow = parent->cocoa.real->window; + offset = + [parentWindow frameRectForContentRect:parentWindow.frame].size.height - + [parentWindow contentRectForFrameRect:parentWindow.frame].size.height; + frame.origin.y -= offset; } + [self->view setFrameSize:frame.size]; [self->window setFrame:frame display:YES animate:false]; }; @@ -187,8 +214,10 @@ NSRect frame = [self->window frame]; frame.size.width = w; frame.size.height = h; + self->rect = frame; + [self->view setFrameSize:frame.size]; [self->window setFrame:frame display:YES animate:false]; }; - (int)pending { @@ -207,10 +236,6 @@ if (self->lastEvent != nil) { NSWindow *win = [self->lastEvent window]; NSWindow *parentWindow = [self parentWindow]; - NSRect realFrame = parentWindow.frame; - NSRect correctedFrame = - [parentWindow frameRectForContentRect:parentWindow.frame]; - CGFloat offset = realFrame.size.height - correctedFrame.size.height; MwLL h; if ([win contentView].subviews.count == 0) { @@ -228,6 +253,7 @@ case NSEventTypeOtherMouseUp: { MwLLMouse mouse = {}; MwBool isDown = MwTRUE; + CGPoint mousePoint = pointFlip([lastEvent locationInWindow]); switch (self->lastEvent.type) { case NSEventTypeLeftMouseUp: isDown = MwFALSE; @@ -247,9 +273,8 @@ default: break; } - mouse.point.x = [lastEvent locationInWindow].x; - mouse.point.y = [win contentRectForFrameRect:win.frame].size.height - - [lastEvent locationInWindow].y; + mouse.point.x = mousePoint.x; + mouse.point.y = mousePoint.y; if (isDown) { MwLLDispatch(h, down, &mouse); @@ -428,6 +453,10 @@ topmostWindow = topmostWindow.parentWindow; return topmostWindow; } + +- (NSView *)getView { + return view; +} @end @implementation MilskoCocoaView @@ -471,13 +500,13 @@ } - (void)drawRect:(NSRect)dirtyRect { - NSSize sz = [self->rep size]; + NSSize sz = self->rep.size; [super drawRect:dirtyRect]; if (!self->rep) { return; } - [self->rep drawInRect:NSMakeRect(0, 0, width, height)]; + [self->rep drawInRect:NSMakeRect(0, 0, sz.width, sz.height)]; [self->rep bitmapData]; } @@ -488,12 +517,7 @@ - (void)setFrameSize:(NSSize)newSize { [super setFrameSize:newSize]; - if (newSize.width != 0 && newSize.height != 0) { - // [self->rep setSize:newSize]; - // width = newSize.width; - // height = newSize.height; - // [self->context setImageInterpolation:NSImageInterpolationHigh]; - } + [self->rep setSize:newSize]; } - (void)displayRect:(NSRect)rect { diff --git a/src/widget/opengl.c b/src/widget/opengl.c index ae8781785..0f9c5c24f 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -1,44 +1,49 @@ +#ifndef __APPLE__ + #include #include #ifdef USE_GDI -typedef HGLRC(WINAPI* MWwglCreateContext)(HDC); -typedef BOOL(WINAPI* MWwglMakeCurrent)(HDC, HGLRC); -typedef PROC(WINAPI* MWwglGetProcAddress)(LPCSTR); -typedef BOOL(WINAPI* MWwglDeleteContext)(HGLRC); +typedef HGLRC(WINAPI *MWwglCreateContext)(HDC); +typedef BOOL(WINAPI *MWwglMakeCurrent)(HDC, HGLRC); +typedef PROC(WINAPI *MWwglGetProcAddress)(LPCSTR); +typedef BOOL(WINAPI *MWwglDeleteContext)(HGLRC); typedef struct gdiopengl { - HDC dc; - HGLRC gl; + HDC dc; + HGLRC gl; - void* lib; + void *lib; - MWwglCreateContext wglCreateContext; - MWwglMakeCurrent wglMakeCurrent; - MWwglDeleteContext wglDeleteContext; - MWwglGetProcAddress wglGetProcAddress; + MWwglCreateContext wglCreateContext; + MWwglMakeCurrent wglMakeCurrent; + MWwglDeleteContext wglDeleteContext; + MWwglGetProcAddress wglGetProcAddress; } gdiopengl_t; #endif #ifdef USE_X11 -typedef XVisualInfo* (*MWglXChooseVisual)(Display* dpy, int screen, int* attribList); -typedef GLXContext (*MWglXCreateContext)(Display* dpy, XVisualInfo* vis, GLXContext shareList, Bool direct); -typedef void (*MWglXDestroyContext)(Display* dpy, GLXContext ctx); -typedef Bool (*MWglXMakeCurrent)(Display* dpy, GLXDrawable drawable, GLXContext ctx); -typedef void (*MWglXSwapBuffers)(Display* dpy, GLXDrawable drawable); -typedef void* (*MWglXGetProcAddress)(const GLubyte* procname); +typedef XVisualInfo *(*MWglXChooseVisual)(Display *dpy, int screen, + int *attribList); +typedef GLXContext (*MWglXCreateContext)(Display *dpy, XVisualInfo *vis, + GLXContext shareList, Bool direct); +typedef void (*MWglXDestroyContext)(Display *dpy, GLXContext ctx); +typedef Bool (*MWglXMakeCurrent)(Display *dpy, GLXDrawable drawable, + GLXContext ctx); +typedef void (*MWglXSwapBuffers)(Display *dpy, GLXDrawable drawable); +typedef void *(*MWglXGetProcAddress)(const GLubyte *procname); typedef struct x11opengl { - XVisualInfo* visual; - GLXContext gl; + XVisualInfo *visual; + GLXContext gl; - void* lib; + void *lib; - MWglXChooseVisual glXChooseVisual; - MWglXCreateContext glXCreateContext; - MWglXDestroyContext glXDestroyContext; - MWglXMakeCurrent glXMakeCurrent; - MWglXSwapBuffers glXSwapBuffers; - MWglXGetProcAddress glXGetProcAddress; + MWglXChooseVisual glXChooseVisual; + MWglXCreateContext glXCreateContext; + MWglXDestroyContext glXDestroyContext; + MWglXMakeCurrent glXMakeCurrent; + MWglXSwapBuffers glXSwapBuffers; + MWglXGetProcAddress glXGetProcAddress; } x11opengl_t; #endif @@ -47,348 +52,385 @@ typedef struct x11opengl { #include typedef struct waylandopengl { - EGLNativeWindowType egl_window_native; - EGLDisplay egl_display; - EGLContext egl_context; - EGLSurface egl_surface; - EGLConfig egl_config; + EGLNativeWindowType egl_window_native; + EGLDisplay egl_display; + EGLContext egl_context; + EGLSurface egl_surface; + EGLConfig egl_config; } waylandopengl_t; #endif static int create(MwWidget handle) { - void* r = NULL; - MwWidget w = handle; + void *r = NULL; + MwWidget w = handle; #ifdef USE_GDI - if(handle->lowlevel->common.type == MwLLBackendGDI) { - PIXELFORMATDESCRIPTOR pfd; - int pf; - gdiopengl_t* o = r = malloc(sizeof(*o)); + if (handle->lowlevel->common.type == MwLLBackendGDI) { + PIXELFORMATDESCRIPTOR pfd; + int pf; + gdiopengl_t *o = r = malloc(sizeof(*o)); - memset(&pfd, 0, sizeof(pfd)); - pfd.nSize = sizeof(pfd); - pfd.nVersion = 1; - pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER; - pfd.cDepthBits = 32; - pfd.cColorBits = 32; + memset(&pfd, 0, sizeof(pfd)); + pfd.nSize = sizeof(pfd); + pfd.nVersion = 1; + pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER; + pfd.cDepthBits = 32; + pfd.cColorBits = 32; - o->dc = GetDC(handle->lowlevel->gdi.hWnd); + o->dc = GetDC(handle->lowlevel->gdi.hWnd); - pf = ChoosePixelFormat(o->dc, &pfd); - SetPixelFormat(o->dc, pf, &pfd); + pf = ChoosePixelFormat(o->dc, &pfd); + SetPixelFormat(o->dc, pf, &pfd); - o->lib = MwDynamicOpen("opengl32.dll"); + o->lib = MwDynamicOpen("opengl32.dll"); - o->wglCreateContext = (MWwglCreateContext)(void*)MwDynamicSymbol(o->lib, "wglCreateContext"); - o->wglMakeCurrent = (MWwglMakeCurrent)(void*)MwDynamicSymbol(o->lib, "wglMakeCurrent"); - o->wglDeleteContext = (MWwglDeleteContext)(void*)MwDynamicSymbol(o->lib, "wglDeleteContext"); - o->wglGetProcAddress = (MWwglGetProcAddress)(void*)MwDynamicSymbol(o->lib, "wglGetProcAddress"); + o->wglCreateContext = + (MWwglCreateContext)(void *)MwDynamicSymbol(o->lib, "wglCreateContext"); + o->wglMakeCurrent = + (MWwglMakeCurrent)(void *)MwDynamicSymbol(o->lib, "wglMakeCurrent"); + o->wglDeleteContext = + (MWwglDeleteContext)(void *)MwDynamicSymbol(o->lib, "wglDeleteContext"); + o->wglGetProcAddress = (MWwglGetProcAddress)(void *)MwDynamicSymbol( + o->lib, "wglGetProcAddress"); - o->gl = o->wglCreateContext(o->dc); - } + o->gl = o->wglCreateContext(o->dc); + } #endif #ifdef USE_X11 - if(handle->lowlevel->common.type == MwLLBackendX11) { - int attribs[5]; - const char* glpath[] = { - "libGL.so", - "/usr/local/lib/libGL.so", - "/usr/X11R7/lib/libGL.so", - "/usr/pkg/lib/libGL.so"}; - int glincr = 0; - x11opengl_t* o = r = malloc(sizeof(*o)); + if (handle->lowlevel->common.type == MwLLBackendX11) { + int attribs[5]; + const char *glpath[] = {"libGL.so", "/usr/local/lib/libGL.so", + "/usr/X11R7/lib/libGL.so", "/usr/pkg/lib/libGL.so"}; + int glincr = 0; + x11opengl_t *o = r = malloc(sizeof(*o)); - attribs[0] = GLX_RGBA; - attribs[1] = GLX_DOUBLEBUFFER; - attribs[2] = GLX_DEPTH_SIZE; - attribs[3] = 24; - attribs[4] = None; + attribs[0] = GLX_RGBA; + attribs[1] = GLX_DOUBLEBUFFER; + attribs[2] = GLX_DEPTH_SIZE; + attribs[3] = 24; + attribs[4] = None; - while(glpath[glincr] != NULL && (o->lib = MwDynamicOpen(glpath[glincr++])) == NULL); + while (glpath[glincr] != NULL && + (o->lib = MwDynamicOpen(glpath[glincr++])) == NULL) + ; - o->glXChooseVisual = (MWglXChooseVisual)MwDynamicSymbol(o->lib, "glXChooseVisual"); - o->glXCreateContext = (MWglXCreateContext)MwDynamicSymbol(o->lib, "glXCreateContext"); - o->glXDestroyContext = (MWglXDestroyContext)MwDynamicSymbol(o->lib, "glXDestroyContext"); - o->glXMakeCurrent = (MWglXMakeCurrent)MwDynamicSymbol(o->lib, "glXMakeCurrent"); - o->glXSwapBuffers = (MWglXSwapBuffers)MwDynamicSymbol(o->lib, "glXSwapBuffers"); - o->glXGetProcAddress = (MWglXGetProcAddress)MwDynamicSymbol(o->lib, "glXGetProcAddress"); + o->glXChooseVisual = + (MWglXChooseVisual)MwDynamicSymbol(o->lib, "glXChooseVisual"); + o->glXCreateContext = + (MWglXCreateContext)MwDynamicSymbol(o->lib, "glXCreateContext"); + o->glXDestroyContext = + (MWglXDestroyContext)MwDynamicSymbol(o->lib, "glXDestroyContext"); + o->glXMakeCurrent = + (MWglXMakeCurrent)MwDynamicSymbol(o->lib, "glXMakeCurrent"); + o->glXSwapBuffers = + (MWglXSwapBuffers)MwDynamicSymbol(o->lib, "glXSwapBuffers"); + o->glXGetProcAddress = + (MWglXGetProcAddress)MwDynamicSymbol(o->lib, "glXGetProcAddress"); - /* XXX: fix this */ - o->visual = o->glXChooseVisual(handle->lowlevel->x11.display, DefaultScreen(handle->lowlevel->x11.display), attribs); - o->gl = o->glXCreateContext(handle->lowlevel->x11.display, o->visual, NULL, GL_TRUE); - } + /* XXX: fix this */ + o->visual = o->glXChooseVisual(handle->lowlevel->x11.display, + DefaultScreen(handle->lowlevel->x11.display), + attribs); + o->gl = o->glXCreateContext(handle->lowlevel->x11.display, o->visual, NULL, + GL_TRUE); + } #endif #ifdef USE_WAYLAND - if(handle->lowlevel->common.type == MwLLBackendWayland) { - int err; - EGLint numConfigs; - EGLint majorVersion; - EGLint minorVersion; - EGLContext context; - EGLSurface surface; - EGLint fbAttribs[] = - { - EGL_SURFACE_TYPE, EGL_WINDOW_BIT, - EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, - EGL_RED_SIZE, 8, - EGL_GREEN_SIZE, 8, - EGL_BLUE_SIZE, 8, - EGL_DEPTH_SIZE, 24, - EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, - EGL_NONE}; - EGLint contextAttribs[] = { - EGL_CONTEXT_CLIENT_VERSION, 1, - EGL_CONTEXT_MAJOR_VERSION, 1, - EGL_CONTEXT_MINOR_VERSION, 1, - EGL_NONE}; - EGLDisplay display; - waylandopengl_t* o = r = malloc(sizeof(*o)); - MwLL topmost_parent = handle->lowlevel->wayland.parent; - topmost_parent->wayland.always_render = MwTRUE; + if (handle->lowlevel->common.type == MwLLBackendWayland) { + int err; + EGLint numConfigs; + EGLint majorVersion; + EGLint minorVersion; + EGLContext context; + EGLSurface surface; + EGLint fbAttribs[] = {EGL_SURFACE_TYPE, + EGL_WINDOW_BIT, + EGL_RENDERABLE_TYPE, + EGL_OPENGL_ES2_BIT, + EGL_RED_SIZE, + 8, + EGL_GREEN_SIZE, + 8, + EGL_BLUE_SIZE, + 8, + EGL_DEPTH_SIZE, + 24, + EGL_RENDERABLE_TYPE, + EGL_OPENGL_BIT, + EGL_NONE}; + EGLint contextAttribs[] = {EGL_CONTEXT_CLIENT_VERSION, + 1, + EGL_CONTEXT_MAJOR_VERSION, + 1, + EGL_CONTEXT_MINOR_VERSION, + 1, + EGL_NONE}; + EGLDisplay display; + waylandopengl_t *o = r = malloc(sizeof(*o)); + MwLL topmost_parent = handle->lowlevel->wayland.parent; + topmost_parent->wayland.always_render = MwTRUE; - while(topmost_parent->wayland.parent != NULL) { - topmost_parent = topmost_parent->wayland.parent; - topmost_parent->wayland.always_render = MwTRUE; - } + while (topmost_parent->wayland.parent != NULL) { + topmost_parent = topmost_parent->wayland.parent; + topmost_parent->wayland.always_render = MwTRUE; + } - display = eglGetDisplay((EGLNativeDisplayType)handle->lowlevel->wayland.display); - if(display == EGL_NO_DISPLAY) { - printf("ERROR: eglGetDisplay, %0X\n", eglGetError()); - return MwFALSE; - } - /* Initialize EGL */ - if(!eglInitialize(display, &majorVersion, &minorVersion)) { - printf("ERROR: eglInitialize, %0X\n", eglGetError()); - return MwFALSE; - } + display = + eglGetDisplay((EGLNativeDisplayType)handle->lowlevel->wayland.display); + if (display == EGL_NO_DISPLAY) { + printf("ERROR: eglGetDisplay, %0X\n", eglGetError()); + return MwFALSE; + } + /* Initialize EGL */ + if (!eglInitialize(display, &majorVersion, &minorVersion)) { + printf("ERROR: eglInitialize, %0X\n", eglGetError()); + return MwFALSE; + } - /* Get configs */ - if((eglGetConfigs(display, NULL, 0, &numConfigs) != EGL_TRUE) || (numConfigs == 0)) { - printf("ERROR: eglGetConfigs, %0X\n", eglGetError()); - return MwFALSE; - } + /* Get configs */ + if ((eglGetConfigs(display, NULL, 0, &numConfigs) != EGL_TRUE) || + (numConfigs == 0)) { + printf("ERROR: eglGetConfigs, %0X\n", eglGetError()); + return MwFALSE; + } - /* Choose config */ - if((eglChooseConfig(display, fbAttribs, &o->egl_config, 1, &numConfigs) != EGL_TRUE) || (numConfigs != 1)) { - printf("ERROR: eglChooseConfig, %0X\n", eglGetError()); - return MwFALSE; - } + /* Choose config */ + if ((eglChooseConfig(display, fbAttribs, &o->egl_config, 1, &numConfigs) != + EGL_TRUE) || + (numConfigs != 1)) { + printf("ERROR: eglChooseConfig, %0X\n", eglGetError()); + return MwFALSE; + } - o->egl_window_native = - (EGLNativeWindowType)wl_egl_window_create(handle->lowlevel->wayland.framebuffer.surface, handle->lowlevel->wayland.ww, handle->lowlevel->wayland.wh); - if(!o->egl_window_native) { - printf("ERROR: wl_egl_window_create, EGL_NO_SURFACE\n"); - return MwFALSE; - } + o->egl_window_native = (EGLNativeWindowType)wl_egl_window_create( + handle->lowlevel->wayland.framebuffer.surface, + handle->lowlevel->wayland.ww, handle->lowlevel->wayland.wh); + if (!o->egl_window_native) { + printf("ERROR: wl_egl_window_create, EGL_NO_SURFACE\n"); + return MwFALSE; + } - /* Create a surface */ - surface = eglCreateWindowSurface(display, o->egl_config, o->egl_window_native, NULL); - if(surface == EGL_NO_SURFACE) { - printf("ERROR: eglCreateWindowSurface, %0X\n", eglGetError()); - return MwFALSE; - } + /* Create a surface */ + surface = eglCreateWindowSurface(display, o->egl_config, + o->egl_window_native, NULL); + if (surface == EGL_NO_SURFACE) { + printf("ERROR: eglCreateWindowSurface, %0X\n", eglGetError()); + return MwFALSE; + } - eglBindAPI(EGL_OPENGL_API); + eglBindAPI(EGL_OPENGL_API); - /* Create a GL context */ - context = eglCreateContext(display, o->egl_config, EGL_NO_CONTEXT, contextAttribs); - if(context == EGL_NO_CONTEXT) { - printf("ERROR: eglCreateContext, %0X\n", eglGetError()); - return MwFALSE; - } + /* Create a GL context */ + context = eglCreateContext(display, o->egl_config, EGL_NO_CONTEXT, + contextAttribs); + if (context == EGL_NO_CONTEXT) { + printf("ERROR: eglCreateContext, %0X\n", eglGetError()); + return MwFALSE; + } - if(!eglMakeCurrent(display, surface, surface, context)) { - printf("ERROR: eglMakeCurrent (setup): %0X\n", eglGetError()); - } + if (!eglMakeCurrent(display, surface, surface, context)) { + printf("ERROR: eglMakeCurrent (setup): %0X\n", eglGetError()); + } - o->egl_display = display; - o->egl_surface = surface; - o->egl_context = context; - } + o->egl_display = display; + o->egl_surface = surface; + o->egl_context = context; + } #endif - handle->internal = r; - handle->lowlevel->common.copy_buffer = 0; + handle->internal = r; + handle->lowlevel->common.copy_buffer = 0; - MwSetDefault(handle); + MwSetDefault(handle); - while(w->parent != NULL) w = w->parent; + while (w->parent != NULL) + w = w->parent; - w->berserk++; + w->berserk++; - return 0; + return 0; } static void destroy(MwWidget handle) { - MwWidget w = handle; + MwWidget w = handle; #ifdef USE_GDI - if(handle->lowlevel->common.type == MwLLBackendGDI) { - gdiopengl_t* o = handle->internal; + if (handle->lowlevel->common.type == MwLLBackendGDI) { + gdiopengl_t *o = handle->internal; - o->wglMakeCurrent(NULL, NULL); - DeleteDC(o->dc); - o->wglDeleteContext(o->gl); + o->wglMakeCurrent(NULL, NULL); + DeleteDC(o->dc); + o->wglDeleteContext(o->gl); - MwDynamicClose(o->lib); - } + MwDynamicClose(o->lib); + } #endif #ifdef USE_X11 - if(handle->lowlevel->common.type == MwLLBackendX11) { - x11opengl_t* o = handle->internal; + if (handle->lowlevel->common.type == MwLLBackendX11) { + x11opengl_t *o = handle->internal; - o->glXMakeCurrent(handle->lowlevel->x11.display, None, NULL); - o->glXDestroyContext(handle->lowlevel->x11.display, o->gl); + o->glXMakeCurrent(handle->lowlevel->x11.display, None, NULL); + o->glXDestroyContext(handle->lowlevel->x11.display, o->gl); - MwDynamicClose(o->lib); - } + MwDynamicClose(o->lib); + } #endif #ifdef USE_WAYLAND - if(handle->lowlevel->common.type == MwLLBackendWayland) { - /* todo */ - } + if (handle->lowlevel->common.type == MwLLBackendWayland) { + /* todo */ + } #endif - while(w->parent != NULL) w = w->parent; + while (w->parent != NULL) + w = w->parent; - w->berserk--; + w->berserk--; - free(handle->internal); + free(handle->internal); } static void mwOpenGLMakeCurrentImpl(MwWidget handle) { - /* these swap interval functions belonging here actually stink! */ + /* these swap interval functions belonging here actually stink! */ #ifdef USE_GDI - if(handle->lowlevel->common.type == MwLLBackendGDI) { - gdiopengl_t* o = handle->internal; - void (*swap_interval_ext)(int) = NULL; + if (handle->lowlevel->common.type == MwLLBackendGDI) { + gdiopengl_t *o = handle->internal; + void (*swap_interval_ext)(int) = NULL; - o->wglMakeCurrent(o->dc, o->gl); + o->wglMakeCurrent(o->dc, o->gl); - if((swap_interval_ext = MwOpenGLGetProcAddress(handle, "wglSwapIntervalEXT")) != NULL) { - swap_interval_ext(1); - } - } + if ((swap_interval_ext = + MwOpenGLGetProcAddress(handle, "wglSwapIntervalEXT")) != NULL) { + swap_interval_ext(1); + } + } #endif #ifdef USE_X11 - if(handle->lowlevel->common.type == MwLLBackendX11) { - x11opengl_t* o = handle->internal; - void (*swap_interval_ext)(Display*, GLXDrawable, int) = NULL; - void (*swap_interval_mesa)(unsigned int) = NULL; - void (*swap_interval_sgi)(int) = NULL; + if (handle->lowlevel->common.type == MwLLBackendX11) { + x11opengl_t *o = handle->internal; + void (*swap_interval_ext)(Display *, GLXDrawable, int) = NULL; + void (*swap_interval_mesa)(unsigned int) = NULL; + void (*swap_interval_sgi)(int) = NULL; - o->glXMakeCurrent(handle->lowlevel->x11.display, handle->lowlevel->x11.window, o->gl); + o->glXMakeCurrent(handle->lowlevel->x11.display, + handle->lowlevel->x11.window, o->gl); - if((swap_interval_ext = MwOpenGLGetProcAddress(handle, "glXSwapIntervalEXT")) != NULL) { - swap_interval_ext(handle->lowlevel->x11.display, handle->lowlevel->x11.window, 1); - } + if ((swap_interval_ext = + MwOpenGLGetProcAddress(handle, "glXSwapIntervalEXT")) != NULL) { + swap_interval_ext(handle->lowlevel->x11.display, + handle->lowlevel->x11.window, 1); + } - if((swap_interval_mesa = MwOpenGLGetProcAddress(handle, "glXSwapIntervalMESA")) != NULL) { - swap_interval_mesa(1); - } + if ((swap_interval_mesa = + MwOpenGLGetProcAddress(handle, "glXSwapIntervalMESA")) != NULL) { + swap_interval_mesa(1); + } - if((swap_interval_sgi = MwOpenGLGetProcAddress(handle, "glXSwapIntervalSGI")) != NULL) { - swap_interval_sgi(1); - } - } + if ((swap_interval_sgi = + MwOpenGLGetProcAddress(handle, "glXSwapIntervalSGI")) != NULL) { + swap_interval_sgi(1); + } + } #endif #ifdef USE_WAYLAND - if(handle->lowlevel->common.type == MwLLBackendWayland) { - waylandopengl_t* o = handle->internal; + if (handle->lowlevel->common.type == MwLLBackendWayland) { + waylandopengl_t *o = handle->internal; - if(!eglMakeCurrent(o->egl_display, o->egl_surface, o->egl_surface, o->egl_context)) { - printf("ERROR: eglMakeCurrent, %0X\n", eglGetError()); - } + if (!eglMakeCurrent(o->egl_display, o->egl_surface, o->egl_surface, + o->egl_context)) { + printf("ERROR: eglMakeCurrent, %0X\n", eglGetError()); + } - eglSwapInterval(o->egl_display, 1); - } + eglSwapInterval(o->egl_display, 1); + } #endif } static void mwOpenGLSwapBufferImpl(MwWidget handle) { #ifdef USE_GDI - if(handle->lowlevel->common.type == MwLLBackendGDI) { - gdiopengl_t* o = handle->internal; + if (handle->lowlevel->common.type == MwLLBackendGDI) { + gdiopengl_t *o = handle->internal; - SwapBuffers(o->dc); - } + SwapBuffers(o->dc); + } #endif #ifdef USE_X11 - if(handle->lowlevel->common.type == MwLLBackendX11) { - x11opengl_t* o = handle->internal; + if (handle->lowlevel->common.type == MwLLBackendX11) { + x11opengl_t *o = handle->internal; - o->glXSwapBuffers(handle->lowlevel->x11.display, handle->lowlevel->x11.window); - } + o->glXSwapBuffers(handle->lowlevel->x11.display, + handle->lowlevel->x11.window); + } #endif #ifdef USE_WAYLAND - if(handle->lowlevel->common.type == MwLLBackendWayland) { - waylandopengl_t* o = handle->internal; - eglSwapInterval(o->egl_display, 0); - if(!eglSwapBuffers(o->egl_display, o->egl_surface)) { - printf("ERROR: eglSwapBuffers, %0X\n", eglGetError()); - }; - wl_egl_window_resize((struct wl_egl_window*)o->egl_window_native, handle->lowlevel->wayland.ww, handle->lowlevel->wayland.wh, 0, 0); - MwLLForceRender(handle->lowlevel); - } + if (handle->lowlevel->common.type == MwLLBackendWayland) { + waylandopengl_t *o = handle->internal; + eglSwapInterval(o->egl_display, 0); + if (!eglSwapBuffers(o->egl_display, o->egl_surface)) { + printf("ERROR: eglSwapBuffers, %0X\n", eglGetError()); + }; + wl_egl_window_resize((struct wl_egl_window *)o->egl_window_native, + handle->lowlevel->wayland.ww, + handle->lowlevel->wayland.wh, 0, 0); + MwLLForceRender(handle->lowlevel); + } #endif } -static void* mwOpenGLGetProcAddressImpl(MwWidget handle, const char* name) { +static void *mwOpenGLGetProcAddressImpl(MwWidget handle, const char *name) { #ifdef USE_GDI - if(handle->lowlevel->common.type == MwLLBackendGDI) { - gdiopengl_t* o = handle->internal; + if (handle->lowlevel->common.type == MwLLBackendGDI) { + gdiopengl_t *o = handle->internal; - return o->wglGetProcAddress(name); - } + return o->wglGetProcAddress(name); + } #endif #ifdef USE_X11 - if(handle->lowlevel->common.type == MwLLBackendX11) { - x11opengl_t* o = handle->internal; + if (handle->lowlevel->common.type == MwLLBackendX11) { + x11opengl_t *o = handle->internal; - return o->glXGetProcAddress((const GLubyte*)name); - } + return o->glXGetProcAddress((const GLubyte *)name); + } #endif #ifdef USE_WAYLAND - if(handle->lowlevel->common.type == MwLLBackendWayland) { - return eglGetProcAddress(name); - } + if (handle->lowlevel->common.type == MwLLBackendWayland) { + return eglGetProcAddress(name); + } #endif - return NULL; + return NULL; } -static void func_handler(MwWidget handle, const char* name, void* out, va_list va) { - if(strcmp(name, "mwOpenGLMakeCurrent") == 0) { - mwOpenGLMakeCurrentImpl(handle); - } - if(strcmp(name, "mwOpenGLSwapBuffer") == 0) { - mwOpenGLSwapBufferImpl(handle); - } - if(strcmp(name, "mwOpenGLGetProcAddress") == 0) { - const char* _name = va_arg(va, const char*); - *(void**)out = mwOpenGLGetProcAddressImpl(handle, _name); - } +static void func_handler(MwWidget handle, const char *name, void *out, + va_list va) { + if (strcmp(name, "mwOpenGLMakeCurrent") == 0) { + mwOpenGLMakeCurrentImpl(handle); + } + if (strcmp(name, "mwOpenGLSwapBuffer") == 0) { + mwOpenGLSwapBufferImpl(handle); + } + if (strcmp(name, "mwOpenGLGetProcAddress") == 0) { + const char *_name = va_arg(va, const char *); + *(void **)out = mwOpenGLGetProcAddressImpl(handle, _name); + } } -MwClassRec MwOpenGLClassRec = { - create, /* create */ - destroy, /* destroy */ - NULL, /* draw */ - NULL, /* click */ - NULL, /* parent_resize */ - NULL, /* prop_change */ - NULL, /* mouse_move */ - NULL, /* mouse_up */ - NULL, /* mouse_down */ - NULL, /* key */ - func_handler, /* execute */ - NULL, /* tick */ - NULL, /* resize */ - NULL, /* children_update */ - NULL, /* children_prop_change */ - NULL, /* clipboard */ - NULL, - NULL, - NULL, - NULL}; +MwClassRec MwOpenGLClassRec = {create, /* create */ + destroy, /* destroy */ + NULL, /* draw */ + NULL, /* click */ + NULL, /* parent_resize */ + NULL, /* prop_change */ + NULL, /* mouse_move */ + NULL, /* mouse_up */ + NULL, /* mouse_down */ + NULL, /* key */ + func_handler, /* execute */ + NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, /* clipboard */ + NULL, NULL, NULL, NULL}; MwClass MwOpenGLClass = &MwOpenGLClassRec; + +#endif \ No newline at end of file diff --git a/src/widget/opengl_cocoa.m b/src/widget/opengl_cocoa.m new file mode 100644 index 000000000..88e17e396 --- /dev/null +++ b/src/widget/opengl_cocoa.m @@ -0,0 +1,128 @@ +#include "Mw/Core.h" +#include "Mw/StringDefs.h" +#include +#include +#import + +@interface MacOpenGLWidget : NSObject { + NSOpenGLPixelFormat *pixelFormat; + NSOpenGLContext *glc; +} + +- (MacOpenGLWidget *)initWithView:(NSView *)view; +- (void)destroy; +- (void)makeCurrent; +- (void)swapBuffer; +- (void *)getProcAddressWithName:(const char *)name; + +@end + +static int create(MwWidget handle) { + void *r = NULL; + MwWidget w = handle; + + int x = MwGetInteger(w, MwNx); + int y = MwGetInteger(w, MwNy); + int width = MwGetInteger(w, MwNwidth); + int height = MwGetInteger(w, MwNheight); + + printf("%d %d\n", width, height); + + MacOpenGLWidget *o = r = [[MacOpenGLWidget alloc] + initWithView:[handle->lowlevel->cocoa.real getView]]; + + handle->internal = r; + handle->lowlevel->common.copy_buffer = 0; + + MwSetDefault(handle); + + while (w->parent != NULL) + w = w->parent; + + w->berserk++; + + return 0; +} + +static void destroy(MwWidget handle) { + [(MacOpenGLWidget *)handle->internal destroy]; +} + +static void mwOpenGLMakeCurrentImpl(MwWidget handle) { + [(MacOpenGLWidget *)handle->internal makeCurrent]; +} + +static void mwOpenGLSwapBufferImpl(MwWidget handle) { + [(MacOpenGLWidget *)handle->internal swapBuffer]; +} + +static void *mwOpenGLGetProcAddressImpl(MwWidget handle, const char *name) { + return [(MacOpenGLWidget *)handle->internal getProcAddressWithName:name]; +} + +static void func_handler(MwWidget handle, const char *name, void *out, + va_list va) { + if (strcmp(name, "mwOpenGLMakeCurrent") == 0) { + mwOpenGLMakeCurrentImpl(handle); + } + if (strcmp(name, "mwOpenGLSwapBuffer") == 0) { + mwOpenGLSwapBufferImpl(handle); + } + if (strcmp(name, "mwOpenGLGetProcAddress") == 0) { + const char *_name = va_arg(va, const char *); + *(void **)out = mwOpenGLGetProcAddressImpl(handle, _name); + } +} + +@implementation MacOpenGLWidget + +- (MacOpenGLWidget *)initWithView:(NSView *)view { + NSOpenGLPixelFormatAttribute pixelFormatAttributes[] = { + NSOpenGLPFAColorSize, 24, + NSOpenGLPFAStencilSize, 8, + NSOpenGLPFAAlphaSize, 8, + NSOpenGLPFADoubleBuffer, NSOpenGLPFAAccelerated, + NSOpenGLPFANoRecovery, 0}; + self->pixelFormat = + [[NSOpenGLPixelFormat alloc] initWithAttributes:pixelFormatAttributes]; + self->glc = + [[NSOpenGLContext alloc] initWithFormat:pixelFormat shareContext:nil]; + [self->glc setView:view]; + return self; +}; +- (void)destroy { +}; +- (void)makeCurrent { + [self->glc makeCurrentContext]; +}; +- (void)swapBuffer { + [self->glc flushBuffer]; +}; +- (void *)getProcAddressWithName:(const char *)name { + if (NSIsSymbolNameDefined(name)) { + return NSAddressOfSymbol(NSLookupAndBindSymbol(name)); + } else { + return NULL; + } +}; + +@end + +MwClassRec MwOpenGLClassRec = {create, /* create */ + destroy, /* destroy */ + NULL, /* draw */ + NULL, /* click */ + NULL, /* parent_resize */ + NULL, /* prop_change */ + NULL, /* mouse_move */ + NULL, /* mouse_up */ + NULL, /* mouse_down */ + NULL, /* key */ + func_handler, /* execute */ + NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, /* clipboard */ + NULL, NULL, NULL, NULL}; +MwClass MwOpenGLClass = &MwOpenGLClassRec; \ No newline at end of file From 39db13fa486d7cadd3d2233f523a807e5e076ef4 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 4 Mar 2026 23:06:56 -0700 Subject: [PATCH 172/836] mac: center window when MwDEFAULT is passed --- src/backend/cocoa.m | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 700ebdb88..0b230ebc6 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -82,15 +82,12 @@ static CGPoint pointFlip(CGPoint point) { height:(int)height handle:(MwLL)r { MilskoCocoa *c = [MilskoCocoa alloc]; - bool centerX = false, centerY = false; if (x == MwDEFAULT) { - x = 0; - centerX = true; + x = ([NSScreen mainScreen].frame.size.width / 2.) - (width / 2.); } if (y == MwDEFAULT) { - y = 0; - centerY = true; + y = ([NSScreen mainScreen].frame.size.height / 2.) - (height / 2.); } c->application = [NSApplication sharedApplication]; c->rect = rectFlip(NSMakeRect(x, y, width, height)); @@ -108,6 +105,9 @@ static CGPoint pointFlip(CGPoint point) { offset = [parentWindow frameRectForContentRect:parentWindow.frame].size.height - [parentWindow contentRectForFrameRect:parentWindow.frame].size.height; + + c->rect.origin.x += parentWindow.frame.origin.x; + c->rect.origin.y -= parentWindow.frame.origin.y - offset; c->rect.origin.y -= offset; c->window = [[NSWindow alloc] initWithContentRect:c->rect @@ -204,7 +204,15 @@ static CGPoint pointFlip(CGPoint point) { offset = [parentWindow frameRectForContentRect:parentWindow.frame].size.height - [parentWindow contentRectForFrameRect:parentWindow.frame].size.height; - frame.origin.y -= offset; + + if (x < parentWindow.frame.origin.x) { + frame.origin.x += parentWindow.frame.origin.x; + } + + if (y < parentWindow.frame.origin.y) { + frame.origin.y -= parentWindow.frame.origin.y - offset; + frame.origin.y -= offset; + } } [self->view setFrameSize:frame.size]; From e2bcd7b9e93c8dd860d36588d5c48d2228100c56 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 5 Mar 2026 19:29:43 -0700 Subject: [PATCH 173/836] mac: keyboard events and other nice refactors. they get sent to the opengl window but the callback isn't fired for some reason --- include/Mw/LowLevel/Cocoa.h | 3 + src/backend/cocoa.m | 748 +++++++++++++++++++++++++++++------- src/widget/opengl_cocoa.m | 18 +- 3 files changed, 622 insertions(+), 147 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 91679db7e..35bc5641c 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -96,6 +96,7 @@ - (void)setX:(int)x Y:(int)y; - (void)setW:(int)w H:(int)h; - (int)pending; +- (void)eventProcess:(NSEvent *)ev; - (void)getNextEvent; - (void)setTitle:(const char *)title; - (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect *)rect; @@ -120,6 +121,8 @@ - (NSWindow *)parentWindow; - (NSView *)getView; +- (NSWindow *)getWindow; +- (MilskoFakePointer *)getHandle; @end #define OBJC(x) x diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 0b230ebc6..7c566a8b0 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -125,7 +125,9 @@ static CGPoint pointFlip(CGPoint point) { [p->window addChildWindow:c->window ordered:NSWindowAbove]; [c->window setHasShadow:MwFALSE]; } else { - // [c->application activateIgnoringOtherApps:true]; + [c->application setActivationPolicy:NSApplicationActivationPolicyRegular]; + [c->application activateIgnoringOtherApps:true]; + [c->window makeFirstResponder:c->view]; } c->view = [[MilskoCocoaView alloc] initWithFrame:c->rect]; @@ -229,144 +231,586 @@ static CGPoint pointFlip(CGPoint point) { [self->window setFrame:frame display:YES animate:false]; }; - (int)pending { - self->lastEvent = - [self->application nextEventMatchingMask:NSAnyEventMask - untilDate:nil - inMode:NSDefaultRunLoopMode - dequeue:YES]; if (_forceRender) { _forceRender = MwFALSE; return 1; } + + self->lastEvent = [self->window nextEventMatchingMask:NSAnyEventMask + untilDate:[NSDate distantPast] + inMode:NSDefaultRunLoopMode + dequeue:YES]; return self->lastEvent != NULL; }; + - (void)getNextEvent { - if (self->lastEvent != nil) { - NSWindow *win = [self->lastEvent window]; - NSWindow *parentWindow = [self parentWindow]; - MwLL h; + int i; + NSEvent *ev; - if ([win contentView].subviews.count == 0) { - NSLog(@"[WARNING] no subviews on this window, cannot process events.\n"); - return; - } + [self eventProcess:lastEvent]; - h = [((MilskoFakePointer *)[win contentView].subviews[0]) pointer]; - switch (self->lastEvent.type) { - case NSEventTypeLeftMouseDown: - case NSEventTypeRightMouseDown: - case NSEventTypeOtherMouseDown: - case NSEventTypeLeftMouseUp: - case NSEventTypeRightMouseUp: - case NSEventTypeOtherMouseUp: { - MwLLMouse mouse = {}; - MwBool isDown = MwTRUE; - CGPoint mousePoint = pointFlip([lastEvent locationInWindow]); - switch (self->lastEvent.type) { - case NSEventTypeLeftMouseUp: - isDown = MwFALSE; - case NSEventTypeLeftMouseDown: - mouse.button = MwLLMouseLeft; - break; - case NSEventTypeRightMouseUp: - isDown = MwFALSE; - case NSEventTypeRightMouseDown: - mouse.button = MwLLMouseRight; - break; - case NSEventTypeOtherMouseUp: - isDown = MwFALSE; - case NSEventTypeOtherMouseDown: - mouse.button = MwLLMouseMiddle; - break; - default: - break; - } - mouse.point.x = mousePoint.x; - mouse.point.y = mousePoint.y; + while ((ev = [self->window nextEventMatchingMask:NSAnyEventMask + untilDate:[NSDate distantPast] + inMode:NSDefaultRunLoopMode + dequeue:YES])) { + [self eventProcess:ev]; + } +}; - if (isDown) { - MwLLDispatch(h, down, &mouse); - } else { - MwLLDispatch(h, up, &mouse); - } - break; - } - - break; - case NSEventTypeMouseMoved: { - MwPoint pos; - pos.x = [lastEvent locationInWindow].x; - pos.y = [win contentRectForFrameRect:win.frame].size.height - - [lastEvent locationInWindow].y; - MwLLDispatch(h, move, &pos); - break; - } - case NSEventTypeLeftMouseDragged: - MwLLDispatch(h, focus_in, NULL); - break; - case NSEventTypeRightMouseDragged: - MwLLDispatch(h, focus_out, NULL); - break; - case NSEventTypeMouseEntered: - break; - case NSEventTypeMouseExited: - break; - case NSEventTypeKeyDown: - [win interpretKeyEvents:[NSArray arrayWithObject:lastEvent]]; - break; - case NSEventTypeKeyUp: - [win interpretKeyEvents:[NSArray arrayWithObject:lastEvent]]; - break; - case NSEventTypeFlagsChanged: - break; - case NSEventTypeAppKitDefined: - break; - case NSEventTypeSystemDefined: - break; - case NSEventTypeApplicationDefined: - break; - case NSEventTypePeriodic: - break; - case NSEventTypeCursorUpdate: - break; - case NSEventTypeScrollWheel: - break; - case NSEventTypeTabletPoint: - break; - case NSEventTypeTabletProximity: - break; - break; - case NSEventTypeOtherMouseDragged: - break; - case NSEventTypeGesture: - break; - case NSEventTypeMagnify: - break; - case NSEventTypeSwipe: - break; - case NSEventTypeRotate: - break; - case NSEventTypeBeginGesture: - break; - case NSEventTypeEndGesture: - break; - case NSEventTypeSmartMagnify: - break; - case NSEventTypeQuickLook: - break; - case NSEventTypePressure: - break; - case NSEventTypeDirectTouch: - break; - case NSEventTypeChangeMode: - break; - }; - // printf("got event: %ld\n", self->lastEvent.type); - [self->application sendEvent:self->lastEvent]; +- (void)eventProcess:(NSEvent *)ev { + NSWindow *win = [ev window]; + NSWindow *parentWindow = [self parentWindow]; + MwLL h; + MwBool doSendEvent = MwTRUE; + if (!win) { + return; } - [self->view setNeedsDisplay:true]; -}; + if ([win contentView].subviews.count == 0) { + printf("no subviews on %p\n", win); + return; + } else { + h = [((MilskoFakePointer *)[win contentView].subviews[0]) pointer]; + } + + switch (ev.type) { + case NSEventTypeLeftMouseDown: + case NSEventTypeRightMouseDown: + case NSEventTypeOtherMouseDown: + case NSEventTypeLeftMouseUp: + case NSEventTypeRightMouseUp: + case NSEventTypeOtherMouseUp: { + MwLLMouse mouse = {}; + MwBool isDown = MwTRUE; + CGPoint mousePoint = pointFlip([ev locationInWindow]); + switch (ev.type) { + case NSEventTypeLeftMouseUp: + isDown = MwFALSE; + case NSEventTypeLeftMouseDown: + mouse.button = MwLLMouseLeft; + break; + case NSEventTypeRightMouseUp: + isDown = MwFALSE; + case NSEventTypeRightMouseDown: + mouse.button = MwLLMouseRight; + break; + case NSEventTypeOtherMouseUp: + isDown = MwFALSE; + case NSEventTypeOtherMouseDown: + mouse.button = MwLLMouseMiddle; + break; + default: + break; + } + mouse.point.x = mousePoint.x; + mouse.point.y = mousePoint.y; + + if (isDown) { + MwLLDispatch(h, down, &mouse); + } else { + MwLLDispatch(h, up, &mouse); + } + break; + } + case NSEventTypeLeftMouseDragged: + case NSEventTypeRightMouseDragged: + case NSEventTypeOtherMouseDragged: + case NSEventTypeMouseMoved: { + MwPoint pos; + pos.x = [ev locationInWindow].x; + pos.y = [win contentRectForFrameRect:win.frame].size.height - + [ev locationInWindow].y; + MwLLDispatch(h, move, &pos); + break; + } + case NSEventTypeMouseEntered: + MwLLDispatch(h, focus_in, NULL); + break; + case NSEventTypeMouseExited: + MwLLDispatch(h, focus_out, NULL); + break; + case NSEventTypeKeyDown: + case NSEventTypeKeyUp: { + int ch; + enum { + kVK_ANSI_A = 0x00, + kVK_ANSI_S = 0x01, + kVK_ANSI_D = 0x02, + kVK_ANSI_F = 0x03, + kVK_ANSI_H = 0x04, + kVK_ANSI_G = 0x05, + kVK_ANSI_Z = 0x06, + kVK_ANSI_X = 0x07, + kVK_ANSI_C = 0x08, + kVK_ANSI_V = 0x09, + kVK_ANSI_B = 0x0B, + kVK_ANSI_Q = 0x0C, + kVK_ANSI_W = 0x0D, + kVK_ANSI_E = 0x0E, + kVK_ANSI_R = 0x0F, + kVK_ANSI_Y = 0x10, + kVK_ANSI_T = 0x11, + kVK_ANSI_1 = 0x12, + kVK_ANSI_2 = 0x13, + kVK_ANSI_3 = 0x14, + kVK_ANSI_4 = 0x15, + kVK_ANSI_6 = 0x16, + kVK_ANSI_5 = 0x17, + kVK_ANSI_Equal = 0x18, + kVK_ANSI_9 = 0x19, + kVK_ANSI_7 = 0x1A, + kVK_ANSI_Minus = 0x1B, + kVK_ANSI_8 = 0x1C, + kVK_ANSI_0 = 0x1D, + kVK_ANSI_RightBracket = 0x1E, + kVK_ANSI_O = 0x1F, + kVK_ANSI_U = 0x20, + kVK_ANSI_LeftBracket = 0x21, + kVK_ANSI_I = 0x22, + kVK_ANSI_P = 0x23, + kVK_ANSI_L = 0x25, + kVK_ANSI_J = 0x26, + kVK_ANSI_Quote = 0x27, + kVK_ANSI_K = 0x28, + kVK_ANSI_Semicolon = 0x29, + kVK_ANSI_Backslash = 0x2A, + kVK_ANSI_Comma = 0x2B, + kVK_ANSI_Slash = 0x2C, + kVK_ANSI_N = 0x2D, + kVK_ANSI_M = 0x2E, + kVK_ANSI_Period = 0x2F, + kVK_ANSI_Grave = 0x32, + kVK_ANSI_KeypadDecimal = 0x41, + kVK_ANSI_KeypadMultiply = 0x43, + kVK_ANSI_KeypadPlus = 0x45, + kVK_ANSI_KeypadClear = 0x47, + kVK_ANSI_KeypadDivide = 0x4B, + kVK_ANSI_KeypadEnter = 0x4C, + kVK_ANSI_KeypadMinus = 0x4E, + kVK_ANSI_KeypadEquals = 0x51, + kVK_ANSI_Keypad0 = 0x52, + kVK_ANSI_Keypad1 = 0x53, + kVK_ANSI_Keypad2 = 0x54, + kVK_ANSI_Keypad3 = 0x55, + kVK_ANSI_Keypad4 = 0x56, + kVK_ANSI_Keypad5 = 0x57, + kVK_ANSI_Keypad6 = 0x58, + kVK_ANSI_Keypad7 = 0x59, + kVK_ANSI_Keypad8 = 0x5B, + kVK_ANSI_Keypad9 = 0x5C, + kVK_Return = 0x24, + kVK_Tab = 0x30, + kVK_Space = 0x31, + kVK_Delete = 0x33, + kVK_Escape = 0x35, + kVK_Command = 0x37, + kVK_Shift = 0x38, + kVK_CapsLock = 0x39, + kVK_Option = 0x3A, + kVK_Control = 0x3B, + kVK_RightCommand = 0x36, + kVK_RightShift = 0x3C, + kVK_RightOption = 0x3D, + kVK_RightControl = 0x3E, + kVK_Function = 0x3F, + kVK_F17 = 0x40, + kVK_VolumeUp = 0x48, + kVK_VolumeDown = 0x49, + kVK_Mute = 0x4A, + kVK_F18 = 0x4F, + kVK_F19 = 0x50, + kVK_F20 = 0x5A, + kVK_F5 = 0x60, + kVK_F6 = 0x61, + kVK_F7 = 0x62, + kVK_F3 = 0x63, + kVK_F8 = 0x64, + kVK_F9 = 0x65, + kVK_F11 = 0x67, + kVK_F13 = 0x69, + kVK_F16 = 0x6A, + kVK_F14 = 0x6B, + kVK_F10 = 0x6D, + kVK_F12 = 0x6F, + kVK_F15 = 0x71, + kVK_Help = 0x72, + kVK_Home = 0x73, + kVK_PageUp = 0x74, + kVK_ForwardDelete = 0x75, + kVK_F4 = 0x76, + kVK_End = 0x77, + kVK_F2 = 0x78, + kVK_PageDown = 0x79, + kVK_F1 = 0x7A, + kVK_LeftArrow = 0x7B, + kVK_RightArrow = 0x7C, + kVK_DownArrow = 0x7D, + kVK_UpArrow = 0x7E + }; + // [view.nextResponder + // interpretKeyEvents:[NSArray arrayWithObject:lastEvent]]; + switch (ev.keyCode) { + case kVK_ANSI_A: + ch = 'a'; + break; + case kVK_ANSI_B: + ch = 'b'; + break; + case kVK_ANSI_C: + ch = 'c'; + break; + case kVK_ANSI_D: + ch = 'd'; + break; + case kVK_ANSI_E: + ch = 'e'; + break; + case kVK_ANSI_F: + ch = 'f'; + break; + case kVK_ANSI_G: + ch = 'g'; + break; + case kVK_ANSI_H: + ch = 'h'; + break; + case kVK_ANSI_I: + ch = 'i'; + break; + case kVK_ANSI_J: + ch = 'j'; + break; + case kVK_ANSI_K: + ch = 'k'; + break; + case kVK_ANSI_L: + ch = 'l'; + break; + case kVK_ANSI_M: + ch = 'm'; + break; + case kVK_ANSI_N: + ch = 'n'; + break; + case kVK_ANSI_O: + ch = 'o'; + break; + case kVK_ANSI_P: + ch = 'p'; + break; + case kVK_ANSI_Q: + ch = 'q'; + break; + case kVK_ANSI_R: + ch = 'r'; + break; + case kVK_ANSI_S: + ch = 's'; + break; + case kVK_ANSI_T: + ch = 't'; + break; + case kVK_ANSI_U: + ch = 'u'; + break; + case kVK_ANSI_V: + ch = 'v'; + break; + case kVK_ANSI_W: + ch = 'w'; + break; + case kVK_ANSI_X: + ch = 'x'; + break; + case kVK_ANSI_Y: + ch = 'y'; + break; + case kVK_ANSI_Z: + ch = 'z'; + break; + case kVK_ANSI_0: + ch = '0'; + break; + case kVK_ANSI_1: + ch = '1'; + break; + case kVK_ANSI_2: + ch = '2'; + break; + case kVK_ANSI_3: + ch = '3'; + break; + case kVK_ANSI_4: + ch = '4'; + break; + case kVK_ANSI_5: + ch = '5'; + break; + case kVK_ANSI_6: + ch = '6'; + break; + case kVK_ANSI_7: + ch = '7'; + break; + case kVK_ANSI_8: + ch = '8'; + break; + case kVK_ANSI_9: + ch = '9'; + break; + + // case kVK_ANSI_Keypad0: + // ch = MwLLKey; + // break; + // case kVK_ANSI_Keypad1: + // ch = keypad1; + // break; + // case kVK_ANSI_Keypad2: + // ch = keypad2; + // break; + // case kVK_ANSI_Keypad3: + // ch = keypad3; + // break; + // case kVK_ANSI_Keypad4: + // ch = keypad4; + // break; + // case kVK_ANSI_Keypad5: + // ch = keypad5; + // break; + // case kVK_ANSI_Keypad6: + // ch = keypad6; + // break; + // case kVK_ANSI_Keypad7: + // ch = keypad7; + // break; + // case kVK_ANSI_Keypad8: + // ch = keypad8; + // break; + // case kVK_ANSI_Keypad9: + // ch = keypad9; + // break; + // case kVK_ANSI_KeypadClear: + // ch = keypadClear; + // break; + // case kVK_ANSI_KeypadDivide: + // ch = keypadDivide; + // break; + // case kVK_ANSI_KeypadEnter: + // ch = keypadEnter; + // break; + // case kVK_ANSI_KeypadEquals: + // ch = keypadEquals; + // break; + // case kVK_ANSI_KeypadMinus: + // ch = keypadMinus; + // break; + // case kVK_ANSI_KeypadPlus: + // ch = keypadPlus; + // break; + // case kVK_PageDown: + // ch = MwLLKey; + // break; + // case kVK_PageUp: + // ch = pageUp; + // break; + // case kVK_End: + // ch = end; + // break; + // case kVK_Home: + // ch = home; + // break; + + // case kVK_F1: + // ch = f1; + // break; + // case kVK_F2: + // ch = f2; + // break; + // case kVK_F3: + // ch = f3; + // break; + // case kVK_F4: + // ch = f4; + // break; + // case kVK_F5: + // ch = f5; + // break; + // case kVK_F6: + // ch = f6; + // break; + // case kVK_F7: + // ch = f7; + // break; + // case kVK_F8: + // ch = f8; + // break; + // case kVK_F9: + // ch = f9; + // break; + // case kVK_F10: + // ch = f10; + // break; + // case kVK_F11: + // ch = f11; + // break; + // case kVK_F12: + // ch = f12; + // break; + // case kVK_F13: + // ch = f13; + // break; + // case kVK_F14: + // ch = f14; + // break; + // case kVK_F15: + // ch = f15; + // break; + // case kVK_F16: + // ch = f16; + // break; + // case kVK_F17: + // ch = f17; + // break; + // case kVK_F18: + // ch = f18; + // break; + // case kVK_F19: + // ch = f19; + // break; + // case kVK_F20: + // ch = f20; + // break; + // case kVK_ANSI_KeypadDecimal: + // ch = decimal; + // break; + + case kVK_ANSI_Quote: + ch = '\"'; + break; + case kVK_ANSI_Grave: + ch = '`'; + break; + case kVK_ANSI_Backslash: + ch = '/'; + break; + case kVK_ANSI_Comma: + ch = ','; + break; + // case kVK_Delete: + // ch = delete; + // break; + // case kVK_ANSI_Equal: + // ch = equals; + // break; + case kVK_Escape: + ch = MwLLKeyEscape; + break; + // case kVK_ANSI_LeftBracket: + // ch = leftBracket; + // break; + // case kVK_ANSI_Minus: + // ch = minus; + // break; + // case kVK_ANSI_KeypadMultiply: + // ch = multiply; + // break; + // case kVK_ANSI_Period: + // ch = period; + // break; + case kVK_Return: + ch = MwLLKeyEnter; + break; + // case kVK_ANSI_RightBracket: + // ch = rightBracket; + // break; + case kVK_ANSI_Semicolon: + ch = ';'; + break; + case kVK_ANSI_Slash: + ch = '\\'; + break; + case kVK_Space: + ch = ' '; + break; + // case kVK_Tab: + // ch = tab; + // break; + + // case kVK_Mute: + // ch = mute; + // break; + // case kVK_VolumeDown: + // ch = volumeDown; + // break; + // case kVK_VolumeUp: + // ch = volumeUp; + // break; + + // case kVK_Command: + // ch = MwLLKey; + // break; + // case kVK_RightCommand: + // ch = rightCommand; + // break; + case kVK_Control: + ch = MwLLKeyControl; + break; + case kVK_RightControl: + ch = MwLLKeyControl; + break; + // case kVK_Function: + // ch = function; + // break; + // case kVK_Option: + // ch = option; + // break; + // case kVK_RightOption: + // ch = rightOption; + // break; + case kVK_Shift: + ch = MwLLKeyLeftShift; + break; + case kVK_RightShift: + ch = MwLLKeyRightShift; + break; + + case kVK_DownArrow: + ch = MwLLKeyDown; + break; + case kVK_LeftArrow: + ch = MwLLKeyLeft; + break; + case kVK_RightArrow: + ch = MwLLKeyRight; + break; + case kVK_UpArrow: + ch = MwLLKeyUp; + break; + } + switch (ev.type) { + case NSEventTypeKeyDown: + MwLLDispatch(h, key, &ch); + break; + case NSEventTypeKeyUp: + MwLLDispatch(h, key_released, &ch); + break; + default: + break; + } + doSendEvent = MwFALSE; + break; + } + case NSEventTypeCursorUpdate: + break; + case NSEventTypeScrollWheel: + break; + default: + break; + }; + if (doSendEvent) { + [win sendEvent:ev]; + } +} - (void)setTitle:(const char *)title { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; @@ -465,6 +909,13 @@ static CGPoint pointFlip(CGPoint point) { - (NSView *)getView { return view; } +- (NSWindow *)getWindow { + return window; +} + +- (MilskoFakePointer *)getHandle { + return handle; +} @end @implementation MilskoCocoaView @@ -530,23 +981,6 @@ static CGPoint pointFlip(CGPoint point) { - (void)displayRect:(NSRect)rect { }; -@end - -@implementation MilskoFakePointer -- (void)setPointer:(void *)pointer { - self.frame = *(NSRect *)&pointer; - self->ptr = pointer; -}; -- (void *)pointer { - return self->ptr; -}; - -- (void)drawRect:(NSRect)dirtyRect { - /* explicitly do nothing */ -} - -- (void)destroy { -} @end @@ -567,11 +1001,37 @@ static CGPoint pointFlip(CGPoint point) { - (void)windowDidResize:(NSNotification *)notification { } +// This will close/terminate the application when the main window is closed. +- (void)windowWillClose:(NSNotification *)notification { + // MilskoCocoa *window = notification.object; + // MwLL handle = [window getHandle].pointer; + // MwLLDispatch(handle, close, NULL); + [NSApp terminate:nil]; +} + - (instancetype)initWithWin:(NSWindow *)win { self->w = win; return self; } +@end + +@implementation MilskoFakePointer +- (void)setPointer:(void *)pointer { + self.frame = *(NSRect *)&pointer; + self->ptr = pointer; +}; +- (void *)pointer { + return self->ptr; +}; + +- (void)drawRect:(NSRect)dirtyRect { + /* explicitly do nothing */ +} + +- (void)destroy { +} + @end static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLL r; diff --git a/src/widget/opengl_cocoa.m b/src/widget/opengl_cocoa.m index 88e17e396..c33e3754d 100644 --- a/src/widget/opengl_cocoa.m +++ b/src/widget/opengl_cocoa.m @@ -1,3 +1,4 @@ +#include "Mw/BaseTypes.h" #include "Mw/Core.h" #include "Mw/StringDefs.h" #include @@ -28,10 +29,8 @@ static int create(MwWidget handle) { printf("%d %d\n", width, height); - MacOpenGLWidget *o = r = [[MacOpenGLWidget alloc] + handle->internal = [[MacOpenGLWidget alloc] initWithView:[handle->lowlevel->cocoa.real getView]]; - - handle->internal = r; handle->lowlevel->common.copy_buffer = 0; MwSetDefault(handle); @@ -96,6 +95,19 @@ static void func_handler(MwWidget handle, const char *name, void *out, [self->glc makeCurrentContext]; }; - (void)swapBuffer { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + NSEvent *event = [NSEvent otherEventWithType:NSEventTypeApplicationDefined + location:NSMakePoint(0, 0) + modifierFlags:0 + timestamp:0 + windowNumber:0 + context:nil + subtype:0 + data1:0 + data2:0]; + [NSApp postEvent:event atStart:YES]; + [pool release]; + [self->glc flushBuffer]; }; - (void *)getProcAddressWithName:(const char *)name { From 9be36b0755e7c69c9b1188d8e9168e285f66648a Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 5 Mar 2026 20:19:19 -0700 Subject: [PATCH 174/836] mac: have key events get sent to parent --- src/backend/cocoa.m | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 7c566a8b0..d9add8e3b 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -247,7 +247,9 @@ static CGPoint pointFlip(CGPoint point) { int i; NSEvent *ev; - [self eventProcess:lastEvent]; + if (lastEvent) { + [self eventProcess:lastEvent]; + } while ((ev = [self->window nextEventMatchingMask:NSAnyEventMask untilDate:[NSDate distantPast] @@ -262,6 +264,8 @@ static CGPoint pointFlip(CGPoint point) { NSWindow *parentWindow = [self parentWindow]; MwLL h; MwBool doSendEvent = MwTRUE; + MwLL this = self->handle.pointer; + if (!win) { return; } @@ -789,10 +793,10 @@ static CGPoint pointFlip(CGPoint point) { } switch (ev.type) { case NSEventTypeKeyDown: - MwLLDispatch(h, key, &ch); + MwLLDispatch(this, key, &ch); break; case NSEventTypeKeyUp: - MwLLDispatch(h, key_released, &ch); + MwLLDispatch(this, key_released, &ch); break; default: break; From 9d7a75394ce111724e0cf86cff00f82eb97c6a31 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 5 Mar 2026 21:58:22 -0700 Subject: [PATCH 175/836] mac: implement clipboard (At the cost of making the pending function a crime against god) --- include/Mw/LowLevel/Cocoa.h | 3 ++ src/backend/cocoa.m | 56 ++++++++++++++++++++++++++++++++++++- 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 35bc5641c..c0974d46b 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -80,6 +80,8 @@ MilskoCocoaView *view; MwLL parent; MilskoFakePointer *handle; + NSUInteger strHash; + MwBool pendingTicker; } + (MilskoCocoa *)newWithParent:(MwLL)parent @@ -118,6 +120,7 @@ - (void)getCursorCoord:(MwPoint *)point; - (void)getScreenSize:(MwRect *)rect; - (void)destroy; +- (void)sendClipboardEvent; - (NSWindow *)parentWindow; - (NSView *)getView; diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index d9add8e3b..47e44e780 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1,3 +1,5 @@ +#include "Mw/BaseTypes.h" +#include "Mw/LowLevel.h" #include #pragma clang push @@ -140,6 +142,7 @@ static CGPoint pointFlip(CGPoint point) { c->parent = parent; c->_forceRender = MwTRUE; + c->strHash = 0; return c; } @@ -235,12 +238,23 @@ static CGPoint pointFlip(CGPoint point) { _forceRender = MwFALSE; return 1; } - +// Apple does not give you a reliable way to tell when events are coming. I +// found this out by accident by stumbling upon a comment wxWidget's code, +// thought I could figure out something better, and I ended up with the same +// solution they tried and can confirm it doesn't work. +// Thanks Tim Cook. +#if 0 self->lastEvent = [self->window nextEventMatchingMask:NSAnyEventMask untilDate:[NSDate distantPast] inMode:NSDefaultRunLoopMode dequeue:YES]; + + return self->lastEvent != NULL; +#endif + // And unlike wxWidgets we can't just return 1, so instead we alternate + // between such. + return (self->pendingTicker = !self->pendingTicker); }; - (void)getNextEvent { @@ -257,6 +271,8 @@ static CGPoint pointFlip(CGPoint point) { dequeue:YES])) { [self eventProcess:ev]; } + + [self sendClipboardEvent]; }; - (void)eventProcess:(NSEvent *)ev { @@ -816,6 +832,39 @@ static CGPoint pointFlip(CGPoint point) { } } +- (void)sendClipboardEvent { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + NSPasteboard *pasteboard = [NSPasteboard generalPasteboard]; + NSArray *items = @[ + @"public.utf8-plain-text", + @"public.utf16-external-plain-text", + @"com.apple.traditional-mac-plain-text", + ]; + MwLL this = self->handle.pointer; + + if ([pasteboard canReadItemWithDataConformingToTypes:items]) { + char *data = NULL; + size_t size = 0; + for (NSPasteboardItem *item in [pasteboard pasteboardItems]) { + for (NSString *it in items) { + NSString *itemData = [item stringForType:(NSString *)it]; + if (itemData != NULL) { + if (strHash != 0 && strHash != [itemData hash]) { + char *text = malloc([itemData length]); + strncpy(text, [itemData UTF8String], [itemData length]); + MwLLDispatch(this, clipboard, text); + printf("%s -> %p\n", text, this); + free(text); + } + strHash = [itemData hash]; + } + } + } + } + + [pool release]; +} + - (void)setTitle:(const char *)title { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; [self->window @@ -882,6 +931,11 @@ static CGPoint pointFlip(CGPoint point) { * until 10.13.2 so I need to do this manually */ }; - (void)setClipboard:(const char *)text { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + NSPasteboard *pasteboard = [NSPasteboard generalPasteboard]; + [pasteboard declareTypes:@[ NSPasteboardTypeString ] owner:nil]; + [pasteboard setString:@(text) forType:NSPasteboardTypeString]; + [pool release]; }; - (void)getClipboard { }; From ea046f3a52f524a9f3ff5f8aedebcfbe0d92d8bf Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 5 Mar 2026 22:41:09 -0700 Subject: [PATCH 176/836] mac: fix memory leaks somewhat. --- include/Mw/LowLevel/Cocoa.h | 2 -- src/backend/cocoa.m | 49 +++++++++++++++++-------------------- 2 files changed, 22 insertions(+), 29 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index c0974d46b..889cdf707 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -40,7 +40,6 @@ MwBool valid; int width; int height; - NSData *data; NSImage *image; NSBitmapImageRep *rep; } @@ -73,7 +72,6 @@ @interface MilskoCocoa : NSObject { NSApplication *application; - NSEvent *lastEvent; MwBool _forceRender; NSWindow *window; NSRect rect; diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 47e44e780..93f68d77d 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -35,11 +35,11 @@ static CGPoint pointFlip(CGPoint point) { p->width = width; p->height = height; - p->data = NULL; p->image = NULL; return p; } - (void)updateWithData:(unsigned char *)_data { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; [self destroy]; self->rep = @@ -53,21 +53,17 @@ static CGPoint pointFlip(CGPoint point) { colorSpaceName:NSDeviceRGBColorSpace bytesPerRow:(int)width * 4 bitsPerPixel:32]; - assert(self->rep); - self->data = [NSData dataWithBytes:[self->rep bitmapData] - length:self->width * self->height * 4]; - assert(self->data); + [self->rep retain]; self->image = [[NSImage alloc] initWithSize:NSMakeSize(width, height)]; assert(self->image); [self->image addRepresentation:self->rep]; + [self->image retain]; + [pool release]; } - (void)destroy { - if (self->data != NULL) { - [self->data dealloc]; - } if (self->image != NULL) { - [self->image dealloc]; + [self->image release]; } } - (NSImage *)image { @@ -84,6 +80,7 @@ static CGPoint pointFlip(CGPoint point) { height:(int)height handle:(MwLL)r { MilskoCocoa *c = [MilskoCocoa alloc]; + [c retain]; if (x == MwDEFAULT) { x = ([NSScreen mainScreen].frame.size.width / 2.) - (width / 2.); @@ -121,6 +118,7 @@ static CGPoint pointFlip(CGPoint point) { initWithWin:c->window]; [c->window makeKeyAndOrderFront:c->application]; + [c->window retain]; if (parent != NULL) { MilskoCocoa *p = parent->cocoa.real; @@ -149,6 +147,7 @@ static CGPoint pointFlip(CGPoint point) { - (void)polygonWithPoints:(MwPoint *)points points_count:(int)points_count color:(MwLLColor)color { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSGraphicsContext *ctx = [self->view context]; if (ctx) { int i; @@ -180,9 +179,8 @@ static CGPoint pointFlip(CGPoint point) { [NSGraphicsContext restoreGraphicsState]; [self->view setNeedsDisplay:YES]; - - [nscolor dealloc]; } + [pool release]; }; - (void)lineWithPoints:(MwPoint *)points color:(MwLLColor)color { }; @@ -258,13 +256,9 @@ static CGPoint pointFlip(CGPoint point) { }; - (void)getNextEvent { - int i; + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSEvent *ev; - if (lastEvent) { - [self eventProcess:lastEvent]; - } - while ((ev = [self->window nextEventMatchingMask:NSAnyEventMask untilDate:[NSDate distantPast] inMode:NSDefaultRunLoopMode @@ -273,9 +267,11 @@ static CGPoint pointFlip(CGPoint point) { } [self sendClipboardEvent]; + [pool release]; }; - (void)eventProcess:(NSEvent *)ev { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSWindow *win = [ev window]; NSWindow *parentWindow = [self parentWindow]; MwLL h; @@ -283,11 +279,13 @@ static CGPoint pointFlip(CGPoint point) { MwLL this = self->handle.pointer; if (!win) { + [pool release]; return; } if ([win contentView].subviews.count == 0) { printf("no subviews on %p\n", win); + [pool release]; return; } else { h = [((MilskoFakePointer *)[win contentView].subviews[0]) pointer]; @@ -756,16 +754,6 @@ static CGPoint pointFlip(CGPoint point) { // ch = tab; // break; - // case kVK_Mute: - // ch = mute; - // break; - // case kVK_VolumeDown: - // ch = volumeDown; - // break; - // case kVK_VolumeUp: - // ch = volumeUp; - // break; - // case kVK_Command: // ch = MwLLKey; // break; @@ -830,6 +818,8 @@ static CGPoint pointFlip(CGPoint point) { if (doSendEvent) { [win sendEvent:ev]; } + + [pool release]; } - (void)sendClipboardEvent { @@ -872,6 +862,7 @@ static CGPoint pointFlip(CGPoint point) { [pool release]; }; - (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect *)_rect { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; MilskoCocoaPixmap *p = pixmap->cocoa.real; NSGraphicsContext *ctx = [self->view context]; if (ctx) { @@ -890,6 +881,7 @@ static CGPoint pointFlip(CGPoint point) { [self->view setNeedsDisplay:YES]; } + [pool release]; }; - (void)setIcon:(MwLLPixmap)pixmap { }; @@ -954,7 +946,7 @@ static CGPoint pointFlip(CGPoint point) { _rect->height = [screen frame].size.height; }; - (void)destroy { - [self->window dealloc]; + [self->window release]; } - (NSWindow *)parentWindow { @@ -1017,15 +1009,18 @@ static CGPoint pointFlip(CGPoint point) { } - (void)drawRect:(NSRect)dirtyRect { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSSize sz = self->rep.size; [super drawRect:dirtyRect]; if (!self->rep) { + [pool release]; return; } [self->rep drawInRect:NSMakeRect(0, 0, sz.width, sz.height)]; [self->rep bitmapData]; + [pool release]; } - (void)destroy { From 306f7916419317398adaf36e50ba4f8435407147 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 5 Mar 2026 22:52:25 -0700 Subject: [PATCH 177/836] mac: apple doesn't give us a reliable way to check if events are pending but we have to do the nextEventMatching trick anyways because the alternating pending implementation breaks opengl. --- include/Mw/LowLevel/Cocoa.h | 2 +- src/backend/cocoa.m | 11 ----------- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 889cdf707..58401b2e4 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -79,7 +79,7 @@ MwLL parent; MilskoFakePointer *handle; NSUInteger strHash; - MwBool pendingTicker; + NSEvent *lastEvent; } + (MilskoCocoa *)newWithParent:(MwLL)parent diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 93f68d77d..0f21dd382 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -236,23 +236,12 @@ static CGPoint pointFlip(CGPoint point) { _forceRender = MwFALSE; return 1; } -// Apple does not give you a reliable way to tell when events are coming. I -// found this out by accident by stumbling upon a comment wxWidget's code, -// thought I could figure out something better, and I ended up with the same -// solution they tried and can confirm it doesn't work. -// Thanks Tim Cook. -#if 0 self->lastEvent = [self->window nextEventMatchingMask:NSAnyEventMask untilDate:[NSDate distantPast] inMode:NSDefaultRunLoopMode dequeue:YES]; - return self->lastEvent != NULL; -#endif - // And unlike wxWidgets we can't just return 1, so instead we alternate - // between such. - return (self->pendingTicker = !self->pendingTicker); }; - (void)getNextEvent { From 0fde05fa03e3ff051c90a93f2278a468f2615654 Mon Sep 17 00:00:00 2001 From: Nishi Date: Sun, 8 Mar 2026 07:06:12 +0900 Subject: [PATCH 178/836] fix some parts --- include/Mw/LowLevel.h | 8 ++++---- src/text/ft2.c | 2 +- src/text/stbtt.c | 3 +-- src/text/text.c | 4 ++-- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index dcab28d16..9766d052f 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -235,14 +235,14 @@ MWDECL void (*MwLLGetClipboard)(MwLL handle); MWDECL void (*MwLLGetCursorCoord)(MwLL handle, MwPoint* point); MWDECL void (*MwLLGetScreenSize)(MwLL handle, MwRect* rect); -/*font renderer */ -MWDECL void MwFLSetup(); +/* font renderer */ +MWDECL void MwFLSetup(void); #ifdef USE_FREETYPE2 -MWDECL int MWFL_FT2Setup(); +MWDECL int MWFL_FT2Setup(void); #endif #ifdef USE_STB_TRUETYPE -MWDECL int MwFL_STBTTSetup(); +MWDECL int MwFL_STBTTSetup(void); #endif MWDECL int (*MwFLDrawText)(MwWidget handle, MwPoint* point, const char* text, int bold, int align, MwLLColor color); diff --git a/src/text/ft2.c b/src/text/ft2.c index a5fb92027..c30f3da0f 100644 --- a/src/text/ft2.c +++ b/src/text/ft2.c @@ -128,7 +128,7 @@ static void ft2_MwFontFree(void* handle) { free(ttf); } -int MWFL_FT2Setup() { +int MWFL_FT2Setup(void) { MwFLDrawText = ft2_MwDrawText; MwFLTextWidth = ft2_MwTextWidth; MwFLTextHeight = ft2_MwTextHeight; diff --git a/src/text/stbtt.c b/src/text/stbtt.c index fb5e783e9..ab9d539cd 100644 --- a/src/text/stbtt.c +++ b/src/text/stbtt.c @@ -1,5 +1,4 @@ #ifdef USE_STB_TRUETYPE -#include #include #include "../../external/stb_truetype.h" @@ -129,7 +128,7 @@ static void stbtt_MwFontFree(void* handle) { free(ttf); } -int MwFL_STBTTSetup() { +int MwFL_STBTTSetup(void) { MwFLDrawText = stbtt_MwDrawText; MwFLTextWidth = stbtt_MwTextWidth; MwFLTextHeight = stbtt_MwTextHeight; diff --git a/src/text/text.c b/src/text/text.c index e25d28b21..8d19de838 100644 --- a/src/text/text.c +++ b/src/text/text.c @@ -140,8 +140,8 @@ static void bitmap_MwDrawText(MwWidget handle, MwPoint* point, const char* text, free(px); } -typedef int (*call_t)(); -void MwFLSetup() { +typedef int (*call_t)(void); +void MwFLSetup(void) { call_t calls[] = { #ifdef USE_FREETYPE2 MWFL_FT2Setup, From 4319ea25b5b27bdbad0c8b85059c2106f691f735 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Sun, 8 Mar 2026 16:05:57 -0700 Subject: [PATCH 179/836] mac: fix a bunch of memory leaks --- include/Mw/LowLevel/Cocoa.h | 3 + src/backend/cocoa.m | 727 +++++++++++------------------------- 2 files changed, 220 insertions(+), 510 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 58401b2e4..0ebe7751b 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -40,6 +40,7 @@ MwBool valid; int width; int height; + unsigned char *buf; NSImage *image; NSBitmapImageRep *rep; } @@ -97,6 +98,8 @@ - (void)setW:(int)w H:(int)h; - (int)pending; - (void)eventProcess:(NSEvent *)ev; +- (void)handleKeyEvent:(NSEvent *)ev; +- (void)handleMouseEvent:(NSEvent *)ev ll:(MwLL)ll; - (void)getNextEvent; - (void)setTitle:(const char *)title; - (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect *)rect; diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 0f21dd382..c3cfc3f88 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1,6 +1,7 @@ #include "Mw/BaseTypes.h" #include "Mw/LowLevel.h" #include +#include #pragma clang push #pragma clang diagnostic ignored "-Wdeprecated-declarations" @@ -36,14 +37,11 @@ static CGPoint pointFlip(CGPoint point) { p->width = width; p->height = height; p->image = NULL; - return p; -} -- (void)updateWithData:(unsigned char *)_data { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - [self destroy]; - self->rep = - [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:&_data + p->buf = malloc(width * height * 4); + + p->rep = + [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:&p->buf pixelsWide:(int)width pixelsHigh:(int)height bitsPerSample:8 @@ -53,18 +51,22 @@ static CGPoint pointFlip(CGPoint point) { colorSpaceName:NSDeviceRGBColorSpace bytesPerRow:(int)width * 4 bitsPerPixel:32]; - assert(self->rep); - [self->rep retain]; - self->image = [[NSImage alloc] initWithSize:NSMakeSize(width, height)]; - assert(self->image); - [self->image addRepresentation:self->rep]; - [self->image retain]; - [pool release]; + assert(p->rep); + + p->image = [[NSImage alloc] initWithSize:NSMakeSize(width, height)]; + assert(p->image); + [p->image addRepresentation:p->rep]; + + return p; +} +- (void)updateWithData:(unsigned char *)_data { + memcpy(self->buf, _data, width * height * 4); } - (void)destroy { - if (self->image != NULL) { - [self->image release]; - } + free(self->buf); + [self->image removeRepresentation:self->rep]; + [self->image dealloc]; + [self->rep dealloc]; } - (NSImage *)image { return self->image; @@ -175,6 +177,7 @@ static CGPoint pointFlip(CGPoint point) { [path closePath]; [path fill]; + [nscolor release]; [NSGraphicsContext restoreGraphicsState]; @@ -186,6 +189,7 @@ static CGPoint pointFlip(CGPoint point) { }; - (void)getX:(int *)x Y:(int *)y W:(unsigned int *)w H:(unsigned int *)h { NSRect frame = rectFlip([self->window frame]); + frame = rectFlip(frame); *x = frame.origin.x; *y = frame.origin.y; @@ -232,8 +236,11 @@ static CGPoint pointFlip(CGPoint point) { [self->window setFrame:frame display:YES animate:false]; }; - (int)pending { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + MwBool isPending = MwFALSE; if (_forceRender) { _forceRender = MwFALSE; + [pool release]; return 1; } self->lastEvent = [self->window nextEventMatchingMask:NSAnyEventMask @@ -241,11 +248,12 @@ static CGPoint pointFlip(CGPoint point) { inMode:NSDefaultRunLoopMode dequeue:YES]; - return self->lastEvent != NULL; + isPending = self->lastEvent != NULL; + [pool release]; + return isPending; }; - (void)getNextEvent { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSEvent *ev; while ((ev = [self->window nextEventMatchingMask:NSAnyEventMask @@ -253,10 +261,10 @@ static CGPoint pointFlip(CGPoint point) { inMode:NSDefaultRunLoopMode dequeue:YES])) { [self eventProcess:ev]; + [ev release]; } [self sendClipboardEvent]; - [pool release]; }; - (void)eventProcess:(NSEvent *)ev { @@ -265,7 +273,6 @@ static CGPoint pointFlip(CGPoint point) { NSWindow *parentWindow = [self parentWindow]; MwLL h; MwBool doSendEvent = MwTRUE; - MwLL this = self->handle.pointer; if (!win) { [pool release]; @@ -287,37 +294,7 @@ static CGPoint pointFlip(CGPoint point) { case NSEventTypeLeftMouseUp: case NSEventTypeRightMouseUp: case NSEventTypeOtherMouseUp: { - MwLLMouse mouse = {}; - MwBool isDown = MwTRUE; - CGPoint mousePoint = pointFlip([ev locationInWindow]); - switch (ev.type) { - case NSEventTypeLeftMouseUp: - isDown = MwFALSE; - case NSEventTypeLeftMouseDown: - mouse.button = MwLLMouseLeft; - break; - case NSEventTypeRightMouseUp: - isDown = MwFALSE; - case NSEventTypeRightMouseDown: - mouse.button = MwLLMouseRight; - break; - case NSEventTypeOtherMouseUp: - isDown = MwFALSE; - case NSEventTypeOtherMouseDown: - mouse.button = MwLLMouseMiddle; - break; - default: - break; - } - mouse.point.x = mousePoint.x; - mouse.point.y = mousePoint.y; - - if (isDown) { - MwLLDispatch(h, down, &mouse); - } else { - MwLLDispatch(h, up, &mouse); - } - break; + [self handleMouseEvent:ev ll:h]; } case NSEventTypeLeftMouseDragged: case NSEventTypeRightMouseDragged: @@ -338,464 +315,8 @@ static CGPoint pointFlip(CGPoint point) { break; case NSEventTypeKeyDown: case NSEventTypeKeyUp: { - int ch; - enum { - kVK_ANSI_A = 0x00, - kVK_ANSI_S = 0x01, - kVK_ANSI_D = 0x02, - kVK_ANSI_F = 0x03, - kVK_ANSI_H = 0x04, - kVK_ANSI_G = 0x05, - kVK_ANSI_Z = 0x06, - kVK_ANSI_X = 0x07, - kVK_ANSI_C = 0x08, - kVK_ANSI_V = 0x09, - kVK_ANSI_B = 0x0B, - kVK_ANSI_Q = 0x0C, - kVK_ANSI_W = 0x0D, - kVK_ANSI_E = 0x0E, - kVK_ANSI_R = 0x0F, - kVK_ANSI_Y = 0x10, - kVK_ANSI_T = 0x11, - kVK_ANSI_1 = 0x12, - kVK_ANSI_2 = 0x13, - kVK_ANSI_3 = 0x14, - kVK_ANSI_4 = 0x15, - kVK_ANSI_6 = 0x16, - kVK_ANSI_5 = 0x17, - kVK_ANSI_Equal = 0x18, - kVK_ANSI_9 = 0x19, - kVK_ANSI_7 = 0x1A, - kVK_ANSI_Minus = 0x1B, - kVK_ANSI_8 = 0x1C, - kVK_ANSI_0 = 0x1D, - kVK_ANSI_RightBracket = 0x1E, - kVK_ANSI_O = 0x1F, - kVK_ANSI_U = 0x20, - kVK_ANSI_LeftBracket = 0x21, - kVK_ANSI_I = 0x22, - kVK_ANSI_P = 0x23, - kVK_ANSI_L = 0x25, - kVK_ANSI_J = 0x26, - kVK_ANSI_Quote = 0x27, - kVK_ANSI_K = 0x28, - kVK_ANSI_Semicolon = 0x29, - kVK_ANSI_Backslash = 0x2A, - kVK_ANSI_Comma = 0x2B, - kVK_ANSI_Slash = 0x2C, - kVK_ANSI_N = 0x2D, - kVK_ANSI_M = 0x2E, - kVK_ANSI_Period = 0x2F, - kVK_ANSI_Grave = 0x32, - kVK_ANSI_KeypadDecimal = 0x41, - kVK_ANSI_KeypadMultiply = 0x43, - kVK_ANSI_KeypadPlus = 0x45, - kVK_ANSI_KeypadClear = 0x47, - kVK_ANSI_KeypadDivide = 0x4B, - kVK_ANSI_KeypadEnter = 0x4C, - kVK_ANSI_KeypadMinus = 0x4E, - kVK_ANSI_KeypadEquals = 0x51, - kVK_ANSI_Keypad0 = 0x52, - kVK_ANSI_Keypad1 = 0x53, - kVK_ANSI_Keypad2 = 0x54, - kVK_ANSI_Keypad3 = 0x55, - kVK_ANSI_Keypad4 = 0x56, - kVK_ANSI_Keypad5 = 0x57, - kVK_ANSI_Keypad6 = 0x58, - kVK_ANSI_Keypad7 = 0x59, - kVK_ANSI_Keypad8 = 0x5B, - kVK_ANSI_Keypad9 = 0x5C, - kVK_Return = 0x24, - kVK_Tab = 0x30, - kVK_Space = 0x31, - kVK_Delete = 0x33, - kVK_Escape = 0x35, - kVK_Command = 0x37, - kVK_Shift = 0x38, - kVK_CapsLock = 0x39, - kVK_Option = 0x3A, - kVK_Control = 0x3B, - kVK_RightCommand = 0x36, - kVK_RightShift = 0x3C, - kVK_RightOption = 0x3D, - kVK_RightControl = 0x3E, - kVK_Function = 0x3F, - kVK_F17 = 0x40, - kVK_VolumeUp = 0x48, - kVK_VolumeDown = 0x49, - kVK_Mute = 0x4A, - kVK_F18 = 0x4F, - kVK_F19 = 0x50, - kVK_F20 = 0x5A, - kVK_F5 = 0x60, - kVK_F6 = 0x61, - kVK_F7 = 0x62, - kVK_F3 = 0x63, - kVK_F8 = 0x64, - kVK_F9 = 0x65, - kVK_F11 = 0x67, - kVK_F13 = 0x69, - kVK_F16 = 0x6A, - kVK_F14 = 0x6B, - kVK_F10 = 0x6D, - kVK_F12 = 0x6F, - kVK_F15 = 0x71, - kVK_Help = 0x72, - kVK_Home = 0x73, - kVK_PageUp = 0x74, - kVK_ForwardDelete = 0x75, - kVK_F4 = 0x76, - kVK_End = 0x77, - kVK_F2 = 0x78, - kVK_PageDown = 0x79, - kVK_F1 = 0x7A, - kVK_LeftArrow = 0x7B, - kVK_RightArrow = 0x7C, - kVK_DownArrow = 0x7D, - kVK_UpArrow = 0x7E - }; - // [view.nextResponder - // interpretKeyEvents:[NSArray arrayWithObject:lastEvent]]; - switch (ev.keyCode) { - case kVK_ANSI_A: - ch = 'a'; - break; - case kVK_ANSI_B: - ch = 'b'; - break; - case kVK_ANSI_C: - ch = 'c'; - break; - case kVK_ANSI_D: - ch = 'd'; - break; - case kVK_ANSI_E: - ch = 'e'; - break; - case kVK_ANSI_F: - ch = 'f'; - break; - case kVK_ANSI_G: - ch = 'g'; - break; - case kVK_ANSI_H: - ch = 'h'; - break; - case kVK_ANSI_I: - ch = 'i'; - break; - case kVK_ANSI_J: - ch = 'j'; - break; - case kVK_ANSI_K: - ch = 'k'; - break; - case kVK_ANSI_L: - ch = 'l'; - break; - case kVK_ANSI_M: - ch = 'm'; - break; - case kVK_ANSI_N: - ch = 'n'; - break; - case kVK_ANSI_O: - ch = 'o'; - break; - case kVK_ANSI_P: - ch = 'p'; - break; - case kVK_ANSI_Q: - ch = 'q'; - break; - case kVK_ANSI_R: - ch = 'r'; - break; - case kVK_ANSI_S: - ch = 's'; - break; - case kVK_ANSI_T: - ch = 't'; - break; - case kVK_ANSI_U: - ch = 'u'; - break; - case kVK_ANSI_V: - ch = 'v'; - break; - case kVK_ANSI_W: - ch = 'w'; - break; - case kVK_ANSI_X: - ch = 'x'; - break; - case kVK_ANSI_Y: - ch = 'y'; - break; - case kVK_ANSI_Z: - ch = 'z'; - break; - case kVK_ANSI_0: - ch = '0'; - break; - case kVK_ANSI_1: - ch = '1'; - break; - case kVK_ANSI_2: - ch = '2'; - break; - case kVK_ANSI_3: - ch = '3'; - break; - case kVK_ANSI_4: - ch = '4'; - break; - case kVK_ANSI_5: - ch = '5'; - break; - case kVK_ANSI_6: - ch = '6'; - break; - case kVK_ANSI_7: - ch = '7'; - break; - case kVK_ANSI_8: - ch = '8'; - break; - case kVK_ANSI_9: - ch = '9'; - break; - - // case kVK_ANSI_Keypad0: - // ch = MwLLKey; - // break; - // case kVK_ANSI_Keypad1: - // ch = keypad1; - // break; - // case kVK_ANSI_Keypad2: - // ch = keypad2; - // break; - // case kVK_ANSI_Keypad3: - // ch = keypad3; - // break; - // case kVK_ANSI_Keypad4: - // ch = keypad4; - // break; - // case kVK_ANSI_Keypad5: - // ch = keypad5; - // break; - // case kVK_ANSI_Keypad6: - // ch = keypad6; - // break; - // case kVK_ANSI_Keypad7: - // ch = keypad7; - // break; - // case kVK_ANSI_Keypad8: - // ch = keypad8; - // break; - // case kVK_ANSI_Keypad9: - // ch = keypad9; - // break; - // case kVK_ANSI_KeypadClear: - // ch = keypadClear; - // break; - // case kVK_ANSI_KeypadDivide: - // ch = keypadDivide; - // break; - // case kVK_ANSI_KeypadEnter: - // ch = keypadEnter; - // break; - // case kVK_ANSI_KeypadEquals: - // ch = keypadEquals; - // break; - // case kVK_ANSI_KeypadMinus: - // ch = keypadMinus; - // break; - // case kVK_ANSI_KeypadPlus: - // ch = keypadPlus; - // break; - // case kVK_PageDown: - // ch = MwLLKey; - // break; - // case kVK_PageUp: - // ch = pageUp; - // break; - // case kVK_End: - // ch = end; - // break; - // case kVK_Home: - // ch = home; - // break; - - // case kVK_F1: - // ch = f1; - // break; - // case kVK_F2: - // ch = f2; - // break; - // case kVK_F3: - // ch = f3; - // break; - // case kVK_F4: - // ch = f4; - // break; - // case kVK_F5: - // ch = f5; - // break; - // case kVK_F6: - // ch = f6; - // break; - // case kVK_F7: - // ch = f7; - // break; - // case kVK_F8: - // ch = f8; - // break; - // case kVK_F9: - // ch = f9; - // break; - // case kVK_F10: - // ch = f10; - // break; - // case kVK_F11: - // ch = f11; - // break; - // case kVK_F12: - // ch = f12; - // break; - // case kVK_F13: - // ch = f13; - // break; - // case kVK_F14: - // ch = f14; - // break; - // case kVK_F15: - // ch = f15; - // break; - // case kVK_F16: - // ch = f16; - // break; - // case kVK_F17: - // ch = f17; - // break; - // case kVK_F18: - // ch = f18; - // break; - // case kVK_F19: - // ch = f19; - // break; - // case kVK_F20: - // ch = f20; - // break; - // case kVK_ANSI_KeypadDecimal: - // ch = decimal; - // break; - - case kVK_ANSI_Quote: - ch = '\"'; - break; - case kVK_ANSI_Grave: - ch = '`'; - break; - case kVK_ANSI_Backslash: - ch = '/'; - break; - case kVK_ANSI_Comma: - ch = ','; - break; - // case kVK_Delete: - // ch = delete; - // break; - // case kVK_ANSI_Equal: - // ch = equals; - // break; - case kVK_Escape: - ch = MwLLKeyEscape; - break; - // case kVK_ANSI_LeftBracket: - // ch = leftBracket; - // break; - // case kVK_ANSI_Minus: - // ch = minus; - // break; - // case kVK_ANSI_KeypadMultiply: - // ch = multiply; - // break; - // case kVK_ANSI_Period: - // ch = period; - // break; - case kVK_Return: - ch = MwLLKeyEnter; - break; - // case kVK_ANSI_RightBracket: - // ch = rightBracket; - // break; - case kVK_ANSI_Semicolon: - ch = ';'; - break; - case kVK_ANSI_Slash: - ch = '\\'; - break; - case kVK_Space: - ch = ' '; - break; - // case kVK_Tab: - // ch = tab; - // break; - - // case kVK_Command: - // ch = MwLLKey; - // break; - // case kVK_RightCommand: - // ch = rightCommand; - // break; - case kVK_Control: - ch = MwLLKeyControl; - break; - case kVK_RightControl: - ch = MwLLKeyControl; - break; - // case kVK_Function: - // ch = function; - // break; - // case kVK_Option: - // ch = option; - // break; - // case kVK_RightOption: - // ch = rightOption; - // break; - case kVK_Shift: - ch = MwLLKeyLeftShift; - break; - case kVK_RightShift: - ch = MwLLKeyRightShift; - break; - - case kVK_DownArrow: - ch = MwLLKeyDown; - break; - case kVK_LeftArrow: - ch = MwLLKeyLeft; - break; - case kVK_RightArrow: - ch = MwLLKeyRight; - break; - case kVK_UpArrow: - ch = MwLLKeyUp; - break; - } - switch (ev.type) { - case NSEventTypeKeyDown: - MwLLDispatch(this, key, &ch); - break; - case NSEventTypeKeyUp: - MwLLDispatch(this, key_released, &ch); - break; - default: - break; - } + [self handleKeyEvent:ev]; doSendEvent = MwFALSE; - break; } case NSEventTypeCursorUpdate: break; @@ -811,6 +332,178 @@ static CGPoint pointFlip(CGPoint point) { [pool release]; } +- (void)handleMouseEvent:(NSEvent *)ev ll:(MwLL)ll { + MwLLMouse mouse = {}; + MwBool isDown = MwTRUE; + CGPoint mousePoint = pointFlip([ev locationInWindow]); + switch (ev.type) { + case NSEventTypeLeftMouseUp: + isDown = MwFALSE; + case NSEventTypeLeftMouseDown: + mouse.button = MwLLMouseLeft; + break; + case NSEventTypeRightMouseUp: + isDown = MwFALSE; + case NSEventTypeRightMouseDown: + mouse.button = MwLLMouseRight; + break; + case NSEventTypeOtherMouseUp: + isDown = MwFALSE; + case NSEventTypeOtherMouseDown: + mouse.button = MwLLMouseMiddle; + break; + default: + break; + } + mouse.point.x = mousePoint.x; + mouse.point.y = mousePoint.y; + + if (isDown) { + MwLLDispatch(ll, down, &mouse); + } else { + MwLLDispatch(ll, up, &mouse); + } +} + +- (void)handleKeyEvent:(NSEvent *)ev { + int ch; + MwLL this = self->handle.pointer; + enum { + kVK_ANSI_A = 0x00, + kVK_ANSI_S = 0x01, + kVK_ANSI_D = 0x02, + kVK_ANSI_F = 0x03, + kVK_ANSI_H = 0x04, + kVK_ANSI_G = 0x05, + kVK_ANSI_Z = 0x06, + kVK_ANSI_X = 0x07, + kVK_ANSI_C = 0x08, + kVK_ANSI_V = 0x09, + kVK_ANSI_B = 0x0B, + kVK_ANSI_Q = 0x0C, + kVK_ANSI_W = 0x0D, + kVK_ANSI_E = 0x0E, + kVK_ANSI_R = 0x0F, + kVK_ANSI_Y = 0x10, + kVK_ANSI_T = 0x11, + kVK_ANSI_1 = 0x12, + kVK_ANSI_2 = 0x13, + kVK_ANSI_3 = 0x14, + kVK_ANSI_4 = 0x15, + kVK_ANSI_6 = 0x16, + kVK_ANSI_5 = 0x17, + kVK_ANSI_Equal = 0x18, + kVK_ANSI_9 = 0x19, + kVK_ANSI_7 = 0x1A, + kVK_ANSI_Minus = 0x1B, + kVK_ANSI_8 = 0x1C, + kVK_ANSI_0 = 0x1D, + kVK_ANSI_RightBracket = 0x1E, + kVK_ANSI_O = 0x1F, + kVK_ANSI_U = 0x20, + kVK_ANSI_LeftBracket = 0x21, + kVK_ANSI_I = 0x22, + kVK_ANSI_P = 0x23, + kVK_ANSI_L = 0x25, + kVK_ANSI_J = 0x26, + kVK_ANSI_Quote = 0x27, + kVK_ANSI_K = 0x28, + kVK_ANSI_Semicolon = 0x29, + kVK_ANSI_Backslash = 0x2A, + kVK_ANSI_Comma = 0x2B, + kVK_ANSI_Slash = 0x2C, + kVK_ANSI_N = 0x2D, + kVK_ANSI_M = 0x2E, + kVK_ANSI_Period = 0x2F, + kVK_ANSI_Grave = 0x32, + kVK_Return = 0x24, + kVK_Space = 0x31, + kVK_Escape = 0x35, + kVK_Shift = 0x38, + kVK_Control = 0x3B, + kVK_RightShift = 0x3C, + kVK_RightControl = 0x3E, + kVK_LeftArrow = 0x7B, + kVK_RightArrow = 0x7C, + kVK_DownArrow = 0x7D, + kVK_UpArrow = 0x7E + }; +#define KEY_CASE(x, y) \ + case x: \ + ch = y; \ + break; + switch (ev.keyCode) { + KEY_CASE(kVK_ANSI_A, 'a') + KEY_CASE(kVK_ANSI_B, 'b') + KEY_CASE(kVK_ANSI_C, 'c') + KEY_CASE(kVK_ANSI_D, 'd') + KEY_CASE(kVK_ANSI_E, 'e') + KEY_CASE(kVK_ANSI_F, 'f') + KEY_CASE(kVK_ANSI_G, 'g') + KEY_CASE(kVK_ANSI_H, 'h') + KEY_CASE(kVK_ANSI_I, 'i') + KEY_CASE(kVK_ANSI_J, 'j') + KEY_CASE(kVK_ANSI_K, 'k') + KEY_CASE(kVK_ANSI_L, 'l') + KEY_CASE(kVK_ANSI_M, 'm') + KEY_CASE(kVK_ANSI_N, 'n') + KEY_CASE(kVK_ANSI_O, 'o') + KEY_CASE(kVK_ANSI_P, 'p') + KEY_CASE(kVK_ANSI_Q, 'q') + KEY_CASE(kVK_ANSI_R, 'r') + KEY_CASE(kVK_ANSI_S, 's') + KEY_CASE(kVK_ANSI_T, 't') + KEY_CASE(kVK_ANSI_U, 'u') + KEY_CASE(kVK_ANSI_V, 'v') + KEY_CASE(kVK_ANSI_W, 'w') + KEY_CASE(kVK_ANSI_X, 'x') + KEY_CASE(kVK_ANSI_Y, 'y') + KEY_CASE(kVK_ANSI_Z, 'z') + KEY_CASE(kVK_ANSI_0, '0') + KEY_CASE(kVK_ANSI_1, '1') + KEY_CASE(kVK_ANSI_2, '2') + KEY_CASE(kVK_ANSI_3, '3') + KEY_CASE(kVK_ANSI_4, '4') + KEY_CASE(kVK_ANSI_5, '5') + KEY_CASE(kVK_ANSI_6, '6') + KEY_CASE(kVK_ANSI_7, '7') + KEY_CASE(kVK_ANSI_8, '8') + KEY_CASE(kVK_ANSI_9, '9') + KEY_CASE(kVK_ANSI_Quote, '\"') + KEY_CASE(kVK_ANSI_Grave, '`') + KEY_CASE(kVK_ANSI_Backslash, '/') + KEY_CASE(kVK_ANSI_Comma, ',') + KEY_CASE(kVK_ANSI_Equal, '=') + KEY_CASE(kVK_Escape, MwLLKeyEscape) + KEY_CASE(kVK_ANSI_LeftBracket, '[') + KEY_CASE(kVK_ANSI_Minus, '-') + KEY_CASE(kVK_ANSI_Period, '.') + KEY_CASE(kVK_Return, MwLLKeyEnter) + KEY_CASE(kVK_ANSI_RightBracket, ']') + KEY_CASE(kVK_ANSI_Semicolon, ';') + KEY_CASE(kVK_ANSI_Slash, '\\') + KEY_CASE(kVK_Space, ' ') + KEY_CASE(kVK_Control, MwLLKeyControl) + KEY_CASE(kVK_RightControl, MwLLKeyControl) + KEY_CASE(kVK_Shift, MwLLKeyLeftShift) + KEY_CASE(kVK_RightShift, MwLLKeyRightShift) + KEY_CASE(kVK_DownArrow, MwLLKeyDown) + KEY_CASE(kVK_LeftArrow, MwLLKeyLeft) + KEY_CASE(kVK_RightArrow, MwLLKeyRight) + KEY_CASE(kVK_UpArrow, MwLLKeyUp) + } + switch (ev.type) { + case NSEventTypeKeyDown: + MwLLDispatch(this, key, &ch); + break; + case NSEventTypeKeyUp: + MwLLDispatch(this, key_released, &ch); + break; + default: + break; + } +} + - (void)sendClipboardEvent { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSPasteboard *pasteboard = [NSPasteboard generalPasteboard]; @@ -935,7 +628,14 @@ static CGPoint pointFlip(CGPoint point) { _rect->height = [screen frame].size.height; }; - (void)destroy { + if (self->lastEvent) { + [self->lastEvent release]; + [self->lastEvent dealloc]; + } + [self->handle release]; + [self->handle dealloc]; [self->window release]; + [self->window dealloc]; } - (NSWindow *)parentWindow { @@ -1014,11 +714,16 @@ static CGPoint pointFlip(CGPoint point) { - (void)destroy { CGColorSpaceRelease(self->space); + [self->rep release]; + [self->context release]; } - (void)setFrameSize:(NSSize)newSize { [super setFrameSize:newSize]; [self->rep setSize:newSize]; + + self->width = newSize.width; + self->height = newSize.height; } - (void)displayRect:(NSRect)rect { @@ -1034,7 +739,7 @@ static CGPoint pointFlip(CGPoint point) { MilskoFakePointer *ptr = win.contentView.subviews[0]; MwLL h = [ptr pointer]; - // MwLLDispatch(h, resize, NULL); + MwLLDispatch(h, resize, NULL); MwLLDispatch(h, draw, NULL); } return frameSize; @@ -1188,6 +893,7 @@ static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char *data, r->cocoa.real = [MilskoCocoaPixmap newWithWidth:width height:height]; MwLLPixmapUpdate(r); + free(r->common.raw); return r; } @@ -1199,6 +905,7 @@ static void MwLLPixmapUpdateImpl(MwLLPixmap pixmap) { static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { MilskoCocoaPixmap *p = pixmap->cocoa.real; [p destroy]; + [p dealloc]; free(pixmap); } From 4549e4f75b8bc30850a643146ccfc9ab0cebead3 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Sun, 8 Mar 2026 17:07:48 -0700 Subject: [PATCH 180/836] mac: remove nscolor release call after realizing it's likely UB and crashes high sierra --- src/backend/cocoa.m | 1 - 1 file changed, 1 deletion(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index c3cfc3f88..8b4e61dac 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -177,7 +177,6 @@ static CGPoint pointFlip(CGPoint point) { [path closePath]; [path fill]; - [nscolor release]; [NSGraphicsContext restoreGraphicsState]; From 3b78872ce80919ccf251b912177329526f9048f1 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 8 Mar 2026 18:04:37 -0700 Subject: [PATCH 181/836] mac: took a detour and got it working in 10.4, before accidentally fixing the remaining memory leak I think --- include/Mw/LowLevel/Cocoa.h | 139 ++-- src/backend/cocoa.m | 1474 ++++++++++++++++++----------------- 2 files changed, 825 insertions(+), 788 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 0ebe7751b..38129e560 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -21,135 +21,136 @@ #import #endif -@interface MilskoCocoaWindowDelegate : NSObject { - NSWindow *w; +// Note: implements NSWindowDelegate +@interface MilskoCocoaWindowDelegate : NSObject { + NSWindow* w; } -- (instancetype)initWithWin:(NSWindow *)win; +- (MilskoCocoaWindowDelegate*)initWithWin:(NSWindow*)win; @end @interface MilskoFakePointer : NSView { - void *ptr; + void* ptr; } -- (void)setPointer:(void *)ptr; -- (void *)pointer; +- (void)setPointer:(void*)ptr; +- (void*)pointer; @end @interface MilskoCocoaPixmap : NSObject { - MwBool valid; - int width; - int height; - unsigned char *buf; - NSImage *image; - NSBitmapImageRep *rep; + MwBool valid; + int width; + int height; + unsigned char* buf; + NSImage* image; + NSBitmapImageRep* rep; } -+ (MilskoCocoaPixmap *)newWithWidth:(int)width height:(int)height; -- (void)updateWithData:(unsigned char *)data; ++ (MilskoCocoaPixmap*)newWithWidth:(int)width height:(int)height; +- (void)updateWithData:(unsigned char*)data; - (void)destroy; /* using @property to create instance variables fucks up 10.4 gcc for some * reason? */ -- (NSImage *)image; +- (NSImage*)image; @end @interface MilskoCocoaView : NSView { - NSBitmapImageRep *rep; - NSGraphicsContext *context; - MwBool valid; - CGColorSpaceRef space; - CGDataProviderRef provider; - float width; - float height; + NSBitmapImageRep* rep; + NSGraphicsContext* context; + MwBool valid; + CGColorSpaceRef space; + CGDataProviderRef provider; + float width; + float height; } -- (NSGraphicsContext *)context; +- (NSGraphicsContext*)context; - (void)destroy; -- (NSBitmapImageRep *)getRep; +- (NSBitmapImageRep*)getRep; @end @interface MilskoCocoa : NSObject { - NSApplication *application; - MwBool _forceRender; - NSWindow *window; - NSRect rect; - MilskoCocoaView *view; - MwLL parent; - MilskoFakePointer *handle; - NSUInteger strHash; - NSEvent *lastEvent; + NSApplication* application; + MwBool _forceRender; + NSWindow* window; + NSRect rect; + MilskoCocoaView* view; + MwLL parent; + MilskoFakePointer* handle; + unsigned int strHash; + NSEvent* lastEvent; } -+ (MilskoCocoa *)newWithParent:(MwLL)parent - x:(int)x - y:(int)y - width:(int)width - height:(int)height - handle:(MwLL)handle; -- (void)polygonWithPoints:(MwPoint *)points - points_count:(int)points_count - color:(MwLLColor)color; -- (void)lineWithPoints:(MwPoint *)points color:(MwLLColor)color; -- (void)getX:(int *)x Y:(int *)y W:(unsigned int *)w H:(unsigned int *)h; ++ (MilskoCocoa*)newWithParent:(MwLL)parent + x:(int)x + y:(int)y + width:(int)width + height:(int)height + handle:(MwLL)handle; +- (void)polygonWithPoints:(MwPoint*)points + points_count:(int)points_count + color:(MwLLColor)color; +- (void)lineWithPoints:(MwPoint*)points color:(MwLLColor)color; +- (void)getX:(int*)x Y:(int*)y W:(unsigned int*)w H:(unsigned int*)h; - (void)setX:(int)x Y:(int)y; - (void)setW:(int)w H:(int)h; - (int)pending; -- (void)eventProcess:(NSEvent *)ev; -- (void)handleKeyEvent:(NSEvent *)ev; -- (void)handleMouseEvent:(NSEvent *)ev ll:(MwLL)ll; +- (void)eventProcess:(NSEvent*)ev; +- (void)handleKeyEvent:(NSEvent*)ev; +- (void)handleMouseEvent:(NSEvent*)ev ll:(MwLL)ll; - (void)getNextEvent; -- (void)setTitle:(const char *)title; -- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect *)rect; +- (void)setTitle:(const char*)title; +- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect*)rect; - (void)setIcon:(MwLLPixmap)pixmap; - (void)forceRender; -- (void)setCursor:(MwCursor *)image mask:(MwCursor *)mask; -- (void)detachWithPoint:(MwPoint *)point; +- (void)setCursor:(MwCursor*)image mask:(MwCursor*)mask; +- (void)detachWithPoint:(MwPoint*)point; - (void)show:(int)show; - (void)makePopupWithParent:(MwLL)parent; - (void)setSizeHintsWithMinX:(int)minx - MinY:(int)miny - MaxX:(int)maxx - MaxY:(int)maxy; + MinY:(int)miny + MaxX:(int)maxx + MaxY:(int)maxy; - (void)makeBorderless:(int)toggle; - (void)focus; - (void)grabPointer:(int)toggle; -- (void)setClipboard:(const char *)text; +- (void)setClipboard:(const char*)text; - (void)makeToolWindow; -- (void)getCursorCoord:(MwPoint *)point; -- (void)getScreenSize:(MwRect *)rect; +- (void)getCursorCoord:(MwPoint*)point; +- (void)getScreenSize:(MwRect*)rect; - (void)destroy; - (void)sendClipboardEvent; -- (NSWindow *)parentWindow; -- (NSView *)getView; -- (NSWindow *)getWindow; -- (MilskoFakePointer *)getHandle; +- (NSWindow*)parentWindow; +- (NSView*)getView; +- (NSWindow*)getWindow; +- (MilskoFakePointer*)getHandle; @end #define OBJC(x) x #else -#define OBJC(x) void * +#define OBJC(x) void* #endif MWDECL int MwLLCocoaCallInit(void); struct _MwLLCocoa { - struct _MwLLCommon common; - OBJC(MilskoCocoa *) - real; + struct _MwLLCommon common; + OBJC(MilskoCocoa*) + real; }; struct _MwLLCocoaColor { - struct _MwLLCommonColor common; + struct _MwLLCommonColor common; }; struct _MwLLCocoaPixmap { - struct _MwLLCommonPixmap common; - OBJC(MilskoCocoaPixmap *) - real; + struct _MwLLCommonPixmap common; + OBJC(MilskoCocoaPixmap*) + real; }; #endif diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 8b4e61dac..af486249f 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1,778 +1,800 @@ -#include "Mw/BaseTypes.h" -#include "Mw/LowLevel.h" #include #include +#ifdef __clang__ #pragma clang push #pragma clang diagnostic ignored "-Wdeprecated-declarations" +#endif -static CGRect rectFlip(CGRect originFrame) { - NSScreen *zeroScreen = NSScreen.screens[0]; - double screenHeight = zeroScreen.frame.size.height; - double originY = originFrame.origin.y; - double frameHeight = originFrame.size.height; - double destinationY = screenHeight - (originY + frameHeight); - CGRect destinationFrame = originFrame; - destinationFrame.origin.y = destinationY; - if (destinationFrame.origin.x < 0) - destinationFrame.origin.x = 0; - if (destinationFrame.origin.y < 0) - destinationFrame.origin.y = 0; - if (destinationFrame.size.width < 0) - destinationFrame.size.width = 0; - if (destinationFrame.size.height < 0) - destinationFrame.size.height = 0; - return destinationFrame; +static NSRect rectFlip(NSRect originFrame) { + NSScreen* zeroScreen = [[NSScreen screens] objectAtIndex:0]; + double screenHeight = [zeroScreen frame].size.height; + double originY = originFrame.origin.y; + double frameHeight = originFrame.size.height; + double destinationY = screenHeight - (originY + frameHeight); + NSRect destinationFrame = originFrame; + destinationFrame.origin.y = destinationY; + if(destinationFrame.origin.x < 0) + destinationFrame.origin.x = 0; + if(destinationFrame.origin.y < 0) + destinationFrame.origin.y = 0; + if(destinationFrame.size.width < 0) + destinationFrame.size.width = 0; + if(destinationFrame.size.height < 0) + destinationFrame.size.height = 0; + return destinationFrame; } -static CGPoint pointFlip(CGPoint point) { - return rectFlip(NSMakeRect(point.x, point.y, 0, 0)).origin; +static NSPoint pointFlip(NSPoint point) { + return rectFlip(NSMakeRect(point.x, point.y, 0, 0)).origin; } @implementation MilskoCocoaPixmap -+ (MilskoCocoaPixmap *)newWithWidth:(int)width height:(int)height { - MilskoCocoaPixmap *p = [MilskoCocoaPixmap alloc]; ++ (MilskoCocoaPixmap*)newWithWidth:(int)width height:(int)height { + MilskoCocoaPixmap* p = [MilskoCocoaPixmap alloc]; - p->width = width; - p->height = height; - p->image = NULL; + p->width = width; + p->height = height; + p->image = NULL; - p->buf = malloc(width * height * 4); + p->buf = malloc(width * height * 4); - p->rep = - [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:&p->buf - pixelsWide:(int)width - pixelsHigh:(int)height - bitsPerSample:8 - samplesPerPixel:4 - hasAlpha:YES - isPlanar:NO - colorSpaceName:NSDeviceRGBColorSpace - bytesPerRow:(int)width * 4 - bitsPerPixel:32]; - assert(p->rep); + p->rep = + [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:&p->buf + pixelsWide:(int)width + pixelsHigh:(int)height + bitsPerSample:8 + samplesPerPixel:4 + hasAlpha:YES + isPlanar:NO + colorSpaceName:NSDeviceRGBColorSpace + bytesPerRow:(int)width * 4 + bitsPerPixel:32]; + assert(p->rep); - p->image = [[NSImage alloc] initWithSize:NSMakeSize(width, height)]; - assert(p->image); - [p->image addRepresentation:p->rep]; + p->image = [[NSImage alloc] initWithSize:NSMakeSize(width, height)]; + assert(p->image); + [p->image addRepresentation:p->rep]; - return p; + return p; } -- (void)updateWithData:(unsigned char *)_data { - memcpy(self->buf, _data, width * height * 4); +- (void)updateWithData:(unsigned char*)_data { + memcpy(self->buf, _data, width * height * 4); } - (void)destroy { - free(self->buf); - [self->image removeRepresentation:self->rep]; - [self->image dealloc]; - [self->rep dealloc]; + free(self->buf); + [self->image removeRepresentation:self->rep]; + [self->image dealloc]; + [self->rep dealloc]; } -- (NSImage *)image { - return self->image; +- (NSImage*)image { + return self->image; } @end @implementation MilskoCocoa -+ (MilskoCocoa *)newWithParent:(MwLL)parent - x:(int)x - y:(int)y - width:(int)width - height:(int)height - handle:(MwLL)r { - MilskoCocoa *c = [MilskoCocoa alloc]; - [c retain]; ++ (MilskoCocoa*)newWithParent:(MwLL)parent + x:(int)x + y:(int)y + width:(int)width + height:(int)height + handle:(MwLL)r { + MilskoCocoa* c = [MilskoCocoa alloc]; + [c retain]; - if (x == MwDEFAULT) { - x = ([NSScreen mainScreen].frame.size.width / 2.) - (width / 2.); - } - if (y == MwDEFAULT) { - y = ([NSScreen mainScreen].frame.size.height / 2.) - (height / 2.); - } - c->application = [NSApplication sharedApplication]; - c->rect = rectFlip(NSMakeRect(x, y, width, height)); + if(x == MwDEFAULT) { + x = ([[NSScreen mainScreen] frame].size.width / 2.) - (width / 2.); + } + if(y == MwDEFAULT) { + y = ([[NSScreen mainScreen] frame].size.height / 2.) - (height / 2.); + } + c->application = [NSApplication sharedApplication]; + c->rect = rectFlip(NSMakeRect(x, y, width, height)); - if (parent == NULL) { - c->window = [[NSWindow alloc] - initWithContentRect:c->rect - styleMask:(NSTitledWindowMask | NSClosableWindowMask | - NSMiniaturizableWindowMask | NSResizableWindowMask) - backing:NSBackingStoreBuffered - defer:NO]; - } else { - double offset = 0; - NSWindow *parentWindow = parent->cocoa.real->window; - offset = - [parentWindow frameRectForContentRect:parentWindow.frame].size.height - - [parentWindow contentRectForFrameRect:parentWindow.frame].size.height; + if(parent == NULL) { + c->window = [[NSWindow alloc] + initWithContentRect:c->rect + styleMask:(NSTitledWindowMask | NSClosableWindowMask | + NSMiniaturizableWindowMask | NSResizableWindowMask) + backing:NSBackingStoreBuffered + defer:NO]; + } else { + double offset = 0; + NSWindow* parentWindow = parent->cocoa.real->window; + offset = + [parentWindow frameRectForContentRect:[parentWindow frame]].size.height - + [parentWindow contentRectForFrameRect:[parentWindow frame]].size.height; - c->rect.origin.x += parentWindow.frame.origin.x; - c->rect.origin.y -= parentWindow.frame.origin.y - offset; - c->rect.origin.y -= offset; + c->rect.origin.x += [parentWindow frame].origin.x; + c->rect.origin.y -= [parentWindow frame].origin.y - offset; + c->rect.origin.y -= offset; - c->window = [[NSWindow alloc] initWithContentRect:c->rect - styleMask:NSBorderlessWindowMask - backing:NSBackingStoreBuffered - defer:NO]; - } - c->window.delegate = (id)[[MilskoCocoaWindowDelegate alloc] - initWithWin:c->window]; + c->window = [[NSWindow alloc] initWithContentRect:c->rect + styleMask:NSBorderlessWindowMask + backing:NSBackingStoreBuffered + defer:NO]; + } + [c->window setDelegate:[[MilskoCocoaWindowDelegate alloc] + initWithWin:c->window]]; - [c->window makeKeyAndOrderFront:c->application]; - [c->window retain]; + [c->window makeKeyAndOrderFront:c->application]; + [c->window retain]; - if (parent != NULL) { - MilskoCocoa *p = parent->cocoa.real; - [p->window addChildWindow:c->window ordered:NSWindowAbove]; - [c->window setHasShadow:MwFALSE]; - } else { - [c->application setActivationPolicy:NSApplicationActivationPolicyRegular]; - [c->application activateIgnoringOtherApps:true]; - [c->window makeFirstResponder:c->view]; - } + if(parent != NULL) { + MilskoCocoa* p = parent->cocoa.real; + [p->window addChildWindow:c->window ordered:NSWindowAbove]; + [c->window setHasShadow:MwFALSE]; + } else { + [c->application activateIgnoringOtherApps:true]; + [c->window makeFirstResponder:c->view]; + } - c->view = [[MilskoCocoaView alloc] initWithFrame:c->rect]; - c->handle = [[MilskoFakePointer alloc] initWithFrame:NSMakeRect(0, 0, 1, 1)]; - [c->handle setPointer:r]; - [c->view addSubview:c->handle]; + c->view = [[MilskoCocoaView alloc] initWithFrame:c->rect]; + [c->view retain]; + c->handle = [[MilskoFakePointer alloc] initWithFrame:NSMakeRect(0, 0, 1, 1)]; + [c->handle retain]; + [c->handle setPointer:r]; + [c->view addSubview:c->handle]; - [c->window setContentView:c->view]; + [c->window setContentView:c->view]; - c->parent = parent; + c->parent = parent; - c->_forceRender = MwTRUE; - c->strHash = 0; + c->_forceRender = MwTRUE; + c->strHash = 0; - return c; + return c; } -- (void)polygonWithPoints:(MwPoint *)points - points_count:(int)points_count - color:(MwLLColor)color { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSGraphicsContext *ctx = [self->view context]; - if (ctx) { - int i; - NSBezierPath *path = [NSBezierPath bezierPath]; - NSColor *nscolor = [NSColor colorWithRed:color->common.red / 255. - green:color->common.green / 255. - blue:color->common.blue / 255. - alpha:1.0]; +- (void)polygonWithPoints:(MwPoint*)points + points_count:(int)points_count + color:(MwLLColor)color { + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + NSGraphicsContext* ctx = [self->view context]; + if(ctx) { + int i; + NSBezierPath* path = [NSBezierPath bezierPath]; + NSColor* nscolor = [NSColor colorWithCalibratedRed:color->common.red / 255. + green:color->common.green / 255. + blue:color->common.blue / 255. + alpha:1.0]; - [NSGraphicsContext saveGraphicsState]; - [NSGraphicsContext setCurrentContext:ctx]; + [NSGraphicsContext saveGraphicsState]; + [NSGraphicsContext setCurrentContext:ctx]; - [nscolor setFill]; - for (i = 0; i < points_count; i++) { - if (i == 0) { - [path moveToPoint:NSMakePoint(points[i].x, - [self->window frame].size.height - - points[i].y)]; - } else { - [path lineToPoint:NSMakePoint(points[i].x, - [self->window frame].size.height - - points[i].y)]; - } - } + [nscolor setFill]; + for(i = 0; i < points_count; i++) { + if(i == 0) { + [path moveToPoint:NSMakePoint(points[i].x, + [self->window frame].size.height - + points[i].y)]; + } else { + [path lineToPoint:NSMakePoint(points[i].x, + [self->window frame].size.height - + points[i].y)]; + } + } - [path closePath]; - [path fill]; + [path closePath]; + [path fill]; - [NSGraphicsContext restoreGraphicsState]; + [NSGraphicsContext restoreGraphicsState]; - [self->view setNeedsDisplay:YES]; - } - [pool release]; + [self->view setNeedsDisplay:YES]; + } + [pool release]; }; -- (void)lineWithPoints:(MwPoint *)points color:(MwLLColor)color { +- (void)lineWithPoints:(MwPoint*)points color:(MwLLColor)color { + (void)points; + (void)color; }; -- (void)getX:(int *)x Y:(int *)y W:(unsigned int *)w H:(unsigned int *)h { - NSRect frame = rectFlip([self->window frame]); - frame = rectFlip(frame); +- (void)getX:(int*)x Y:(int*)y W:(unsigned int*)w H:(unsigned int*)h { + NSRect frame = rectFlip([self->window frame]); + frame = rectFlip(frame); - *x = frame.origin.x; - *y = frame.origin.y; + *x = frame.origin.x; + *y = frame.origin.y; - *w = frame.size.width; - *h = frame.size.height; + *w = frame.size.width; + *h = frame.size.height; }; - (void)setX:(int)x Y:(int)y { - NSRect frame = [self->window frame]; + NSRect frame = [self->window frame]; - frame.origin.x = x; - frame.origin.y = y; + frame.origin.x = x; + frame.origin.y = y; - frame = rectFlip(frame); + frame = rectFlip(frame); - if (parent) { - double offset = 0; - NSWindow *parentWindow = parent->cocoa.real->window; - offset = - [parentWindow frameRectForContentRect:parentWindow.frame].size.height - - [parentWindow contentRectForFrameRect:parentWindow.frame].size.height; + if(parent) { + double offset = 0; + NSWindow* parentWindow = parent->cocoa.real->window; + offset = + [parentWindow frameRectForContentRect:[parentWindow frame]].size.height - + [parentWindow contentRectForFrameRect:[parentWindow frame]].size.height; - if (x < parentWindow.frame.origin.x) { - frame.origin.x += parentWindow.frame.origin.x; - } + if(x < [parentWindow frame].origin.x) { + frame.origin.x += [parentWindow frame].origin.x; + } - if (y < parentWindow.frame.origin.y) { - frame.origin.y -= parentWindow.frame.origin.y - offset; - frame.origin.y -= offset; - } - } - [self->view setFrameSize:frame.size]; + frame.origin.y -= [parentWindow frame].origin.y - offset; + frame.origin.y -= offset; + } + [self->view setFrameSize:frame.size]; - [self->window setFrame:frame display:YES animate:false]; + [self->window setFrame:frame display:YES animate:false]; }; - (void)setW:(int)w H:(int)h { - NSRect frame = [self->window frame]; - frame.size.width = w; - frame.size.height = h; + NSRect frame = [self->window frame]; + frame.size.width = w; + frame.size.height = h; - self->rect = frame; + self->rect = frame; - [self->view setFrameSize:frame.size]; - [self->window setFrame:frame display:YES animate:false]; + [self->view setFrameSize:frame.size]; + [self->window setFrame:frame display:YES animate:false]; }; - (int)pending { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - MwBool isPending = MwFALSE; - if (_forceRender) { - _forceRender = MwFALSE; - [pool release]; - return 1; - } - self->lastEvent = [self->window nextEventMatchingMask:NSAnyEventMask - untilDate:[NSDate distantPast] - inMode:NSDefaultRunLoopMode - dequeue:YES]; + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + MwBool isPending = MwFALSE; + if(_forceRender) { + _forceRender = MwFALSE; + [pool release]; + return 1; + } + self->lastEvent = [self->window nextEventMatchingMask:NSAnyEventMask + untilDate:[NSDate distantPast] + inMode:NSDefaultRunLoopMode + dequeue:YES]; - isPending = self->lastEvent != NULL; - [pool release]; - return isPending; + isPending = self->lastEvent != NULL; + [pool release]; + return isPending; }; - (void)getNextEvent { - NSEvent *ev; - while ((ev = [self->window nextEventMatchingMask:NSAnyEventMask - untilDate:[NSDate distantPast] - inMode:NSDefaultRunLoopMode - dequeue:YES])) { - [self eventProcess:ev]; - [ev release]; - } + while(true) { + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + NSEvent* ev = [self->window nextEventMatchingMask:NSAnyEventMask + untilDate:[NSDate distantPast] + inMode:NSDefaultRunLoopMode + dequeue:YES]; + if(!ev) { + [pool release]; + break; + } + [self eventProcess:ev]; + [pool release]; + } - [self sendClipboardEvent]; + [self sendClipboardEvent]; }; -- (void)eventProcess:(NSEvent *)ev { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSWindow *win = [ev window]; - NSWindow *parentWindow = [self parentWindow]; - MwLL h; - MwBool doSendEvent = MwTRUE; +- (void)eventProcess:(NSEvent*)ev { + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + NSWindow* win = [ev window]; + MwLL h; + MwBool doSendEvent = MwTRUE; - if (!win) { - [pool release]; - return; - } + if(!win) { + [pool release]; + return; + } - if ([win contentView].subviews.count == 0) { - printf("no subviews on %p\n", win); - [pool release]; - return; - } else { - h = [((MilskoFakePointer *)[win contentView].subviews[0]) pointer]; - } + if([[[win contentView] subviews] count] == 0) { + printf("no subviews on %p\n", win); + [pool release]; + return; + } else { + h = [((MilskoFakePointer*)[[[win contentView] subviews] objectAtIndex:0]) pointer]; + } - switch (ev.type) { - case NSEventTypeLeftMouseDown: - case NSEventTypeRightMouseDown: - case NSEventTypeOtherMouseDown: - case NSEventTypeLeftMouseUp: - case NSEventTypeRightMouseUp: - case NSEventTypeOtherMouseUp: { - [self handleMouseEvent:ev ll:h]; - } - case NSEventTypeLeftMouseDragged: - case NSEventTypeRightMouseDragged: - case NSEventTypeOtherMouseDragged: - case NSEventTypeMouseMoved: { - MwPoint pos; - pos.x = [ev locationInWindow].x; - pos.y = [win contentRectForFrameRect:win.frame].size.height - - [ev locationInWindow].y; - MwLLDispatch(h, move, &pos); - break; - } - case NSEventTypeMouseEntered: - MwLLDispatch(h, focus_in, NULL); - break; - case NSEventTypeMouseExited: - MwLLDispatch(h, focus_out, NULL); - break; - case NSEventTypeKeyDown: - case NSEventTypeKeyUp: { - [self handleKeyEvent:ev]; - doSendEvent = MwFALSE; - } - case NSEventTypeCursorUpdate: - break; - case NSEventTypeScrollWheel: - break; - default: - break; - }; - if (doSendEvent) { - [win sendEvent:ev]; - } + switch([ev type]) { + case NSLeftMouseDown: + case NSRightMouseDown: + case NSOtherMouseDown: + case NSLeftMouseUp: + case NSRightMouseUp: + case NSOtherMouseUp: { + [self handleMouseEvent:ev ll:h]; + } + case NSLeftMouseDragged: + case NSRightMouseDragged: + case NSOtherMouseDragged: + case NSMouseMoved: { + MwPoint pos; + pos.x = [ev locationInWindow].x; + pos.y = [win contentRectForFrameRect:[win frame]].size.height - + [ev locationInWindow].y; + MwLLDispatch(h, move, &pos); + break; + } + case NSMouseEntered: + MwLLDispatch(h, focus_in, NULL); + break; + case NSMouseExited: + MwLLDispatch(h, focus_out, NULL); + break; + case NSKeyDown: + case NSKeyUp: { + [self handleKeyEvent:ev]; + doSendEvent = MwFALSE; + } + case NSCursorUpdate: + break; + case NSScrollWheel: + break; + default: + break; + }; + if(doSendEvent) { + [win sendEvent:ev]; + } - [pool release]; + [pool release]; } -- (void)handleMouseEvent:(NSEvent *)ev ll:(MwLL)ll { - MwLLMouse mouse = {}; - MwBool isDown = MwTRUE; - CGPoint mousePoint = pointFlip([ev locationInWindow]); - switch (ev.type) { - case NSEventTypeLeftMouseUp: - isDown = MwFALSE; - case NSEventTypeLeftMouseDown: - mouse.button = MwLLMouseLeft; - break; - case NSEventTypeRightMouseUp: - isDown = MwFALSE; - case NSEventTypeRightMouseDown: - mouse.button = MwLLMouseRight; - break; - case NSEventTypeOtherMouseUp: - isDown = MwFALSE; - case NSEventTypeOtherMouseDown: - mouse.button = MwLLMouseMiddle; - break; - default: - break; - } - mouse.point.x = mousePoint.x; - mouse.point.y = mousePoint.y; +- (void)handleMouseEvent:(NSEvent*)ev ll:(MwLL)ll { + MwLLMouse mouse; + MwBool isDown = MwTRUE; + NSPoint mousePoint = pointFlip([ev locationInWindow]); + switch([ev type]) { + case NSLeftMouseUp: + isDown = MwFALSE; + case NSLeftMouseDown: + mouse.button = MwLLMouseLeft; + break; + case NSRightMouseUp: + isDown = MwFALSE; + case NSRightMouseDown: + mouse.button = MwLLMouseRight; + break; + case NSOtherMouseUp: + isDown = MwFALSE; + case NSOtherMouseDown: + mouse.button = MwLLMouseMiddle; + break; + default: + break; + } + mouse.point.x = mousePoint.x; + mouse.point.y = mousePoint.y; - if (isDown) { - MwLLDispatch(ll, down, &mouse); - } else { - MwLLDispatch(ll, up, &mouse); - } + if(isDown) { + MwLLDispatch(ll, down, &mouse); + } else { + MwLLDispatch(ll, up, &mouse); + } } -- (void)handleKeyEvent:(NSEvent *)ev { - int ch; - MwLL this = self->handle.pointer; - enum { - kVK_ANSI_A = 0x00, - kVK_ANSI_S = 0x01, - kVK_ANSI_D = 0x02, - kVK_ANSI_F = 0x03, - kVK_ANSI_H = 0x04, - kVK_ANSI_G = 0x05, - kVK_ANSI_Z = 0x06, - kVK_ANSI_X = 0x07, - kVK_ANSI_C = 0x08, - kVK_ANSI_V = 0x09, - kVK_ANSI_B = 0x0B, - kVK_ANSI_Q = 0x0C, - kVK_ANSI_W = 0x0D, - kVK_ANSI_E = 0x0E, - kVK_ANSI_R = 0x0F, - kVK_ANSI_Y = 0x10, - kVK_ANSI_T = 0x11, - kVK_ANSI_1 = 0x12, - kVK_ANSI_2 = 0x13, - kVK_ANSI_3 = 0x14, - kVK_ANSI_4 = 0x15, - kVK_ANSI_6 = 0x16, - kVK_ANSI_5 = 0x17, - kVK_ANSI_Equal = 0x18, - kVK_ANSI_9 = 0x19, - kVK_ANSI_7 = 0x1A, - kVK_ANSI_Minus = 0x1B, - kVK_ANSI_8 = 0x1C, - kVK_ANSI_0 = 0x1D, - kVK_ANSI_RightBracket = 0x1E, - kVK_ANSI_O = 0x1F, - kVK_ANSI_U = 0x20, - kVK_ANSI_LeftBracket = 0x21, - kVK_ANSI_I = 0x22, - kVK_ANSI_P = 0x23, - kVK_ANSI_L = 0x25, - kVK_ANSI_J = 0x26, - kVK_ANSI_Quote = 0x27, - kVK_ANSI_K = 0x28, - kVK_ANSI_Semicolon = 0x29, - kVK_ANSI_Backslash = 0x2A, - kVK_ANSI_Comma = 0x2B, - kVK_ANSI_Slash = 0x2C, - kVK_ANSI_N = 0x2D, - kVK_ANSI_M = 0x2E, - kVK_ANSI_Period = 0x2F, - kVK_ANSI_Grave = 0x32, - kVK_Return = 0x24, - kVK_Space = 0x31, - kVK_Escape = 0x35, - kVK_Shift = 0x38, - kVK_Control = 0x3B, - kVK_RightShift = 0x3C, - kVK_RightControl = 0x3E, - kVK_LeftArrow = 0x7B, - kVK_RightArrow = 0x7C, - kVK_DownArrow = 0x7D, - kVK_UpArrow = 0x7E - }; -#define KEY_CASE(x, y) \ - case x: \ - ch = y; \ - break; - switch (ev.keyCode) { - KEY_CASE(kVK_ANSI_A, 'a') - KEY_CASE(kVK_ANSI_B, 'b') - KEY_CASE(kVK_ANSI_C, 'c') - KEY_CASE(kVK_ANSI_D, 'd') - KEY_CASE(kVK_ANSI_E, 'e') - KEY_CASE(kVK_ANSI_F, 'f') - KEY_CASE(kVK_ANSI_G, 'g') - KEY_CASE(kVK_ANSI_H, 'h') - KEY_CASE(kVK_ANSI_I, 'i') - KEY_CASE(kVK_ANSI_J, 'j') - KEY_CASE(kVK_ANSI_K, 'k') - KEY_CASE(kVK_ANSI_L, 'l') - KEY_CASE(kVK_ANSI_M, 'm') - KEY_CASE(kVK_ANSI_N, 'n') - KEY_CASE(kVK_ANSI_O, 'o') - KEY_CASE(kVK_ANSI_P, 'p') - KEY_CASE(kVK_ANSI_Q, 'q') - KEY_CASE(kVK_ANSI_R, 'r') - KEY_CASE(kVK_ANSI_S, 's') - KEY_CASE(kVK_ANSI_T, 't') - KEY_CASE(kVK_ANSI_U, 'u') - KEY_CASE(kVK_ANSI_V, 'v') - KEY_CASE(kVK_ANSI_W, 'w') - KEY_CASE(kVK_ANSI_X, 'x') - KEY_CASE(kVK_ANSI_Y, 'y') - KEY_CASE(kVK_ANSI_Z, 'z') - KEY_CASE(kVK_ANSI_0, '0') - KEY_CASE(kVK_ANSI_1, '1') - KEY_CASE(kVK_ANSI_2, '2') - KEY_CASE(kVK_ANSI_3, '3') - KEY_CASE(kVK_ANSI_4, '4') - KEY_CASE(kVK_ANSI_5, '5') - KEY_CASE(kVK_ANSI_6, '6') - KEY_CASE(kVK_ANSI_7, '7') - KEY_CASE(kVK_ANSI_8, '8') - KEY_CASE(kVK_ANSI_9, '9') - KEY_CASE(kVK_ANSI_Quote, '\"') - KEY_CASE(kVK_ANSI_Grave, '`') - KEY_CASE(kVK_ANSI_Backslash, '/') - KEY_CASE(kVK_ANSI_Comma, ',') - KEY_CASE(kVK_ANSI_Equal, '=') - KEY_CASE(kVK_Escape, MwLLKeyEscape) - KEY_CASE(kVK_ANSI_LeftBracket, '[') - KEY_CASE(kVK_ANSI_Minus, '-') - KEY_CASE(kVK_ANSI_Period, '.') - KEY_CASE(kVK_Return, MwLLKeyEnter) - KEY_CASE(kVK_ANSI_RightBracket, ']') - KEY_CASE(kVK_ANSI_Semicolon, ';') - KEY_CASE(kVK_ANSI_Slash, '\\') - KEY_CASE(kVK_Space, ' ') - KEY_CASE(kVK_Control, MwLLKeyControl) - KEY_CASE(kVK_RightControl, MwLLKeyControl) - KEY_CASE(kVK_Shift, MwLLKeyLeftShift) - KEY_CASE(kVK_RightShift, MwLLKeyRightShift) - KEY_CASE(kVK_DownArrow, MwLLKeyDown) - KEY_CASE(kVK_LeftArrow, MwLLKeyLeft) - KEY_CASE(kVK_RightArrow, MwLLKeyRight) - KEY_CASE(kVK_UpArrow, MwLLKeyUp) - } - switch (ev.type) { - case NSEventTypeKeyDown: - MwLLDispatch(this, key, &ch); - break; - case NSEventTypeKeyUp: - MwLLDispatch(this, key_released, &ch); - break; - default: - break; - } +- (void)handleKeyEvent:(NSEvent*)ev { + int ch; + MwLL this = [self->handle pointer]; + enum { + kVK_ANSI_A = 0x00, + kVK_ANSI_S = 0x01, + kVK_ANSI_D = 0x02, + kVK_ANSI_F = 0x03, + kVK_ANSI_H = 0x04, + kVK_ANSI_G = 0x05, + kVK_ANSI_Z = 0x06, + kVK_ANSI_X = 0x07, + kVK_ANSI_C = 0x08, + kVK_ANSI_V = 0x09, + kVK_ANSI_B = 0x0B, + kVK_ANSI_Q = 0x0C, + kVK_ANSI_W = 0x0D, + kVK_ANSI_E = 0x0E, + kVK_ANSI_R = 0x0F, + kVK_ANSI_Y = 0x10, + kVK_ANSI_T = 0x11, + kVK_ANSI_1 = 0x12, + kVK_ANSI_2 = 0x13, + kVK_ANSI_3 = 0x14, + kVK_ANSI_4 = 0x15, + kVK_ANSI_6 = 0x16, + kVK_ANSI_5 = 0x17, + kVK_ANSI_Equal = 0x18, + kVK_ANSI_9 = 0x19, + kVK_ANSI_7 = 0x1A, + kVK_ANSI_Minus = 0x1B, + kVK_ANSI_8 = 0x1C, + kVK_ANSI_0 = 0x1D, + kVK_ANSI_RightBracket = 0x1E, + kVK_ANSI_O = 0x1F, + kVK_ANSI_U = 0x20, + kVK_ANSI_LeftBracket = 0x21, + kVK_ANSI_I = 0x22, + kVK_ANSI_P = 0x23, + kVK_ANSI_L = 0x25, + kVK_ANSI_J = 0x26, + kVK_ANSI_Quote = 0x27, + kVK_ANSI_K = 0x28, + kVK_ANSI_Semicolon = 0x29, + kVK_ANSI_Backslash = 0x2A, + kVK_ANSI_Comma = 0x2B, + kVK_ANSI_Slash = 0x2C, + kVK_ANSI_N = 0x2D, + kVK_ANSI_M = 0x2E, + kVK_ANSI_Period = 0x2F, + kVK_ANSI_Grave = 0x32, + kVK_Return = 0x24, + kVK_Space = 0x31, + kVK_Escape = 0x35, + kVK_Shift = 0x38, + kVK_Control = 0x3B, + kVK_RightShift = 0x3C, + kVK_RightControl = 0x3E, + kVK_LeftArrow = 0x7B, + kVK_RightArrow = 0x7C, + kVK_DownArrow = 0x7D, + kVK_UpArrow = 0x7E + }; +#define KEY_CASE(x, y) \ + case x: \ + ch = y; \ + break; + switch([ev keyCode]) { + KEY_CASE(kVK_ANSI_A, 'a') + KEY_CASE(kVK_ANSI_B, 'b') + KEY_CASE(kVK_ANSI_C, 'c') + KEY_CASE(kVK_ANSI_D, 'd') + KEY_CASE(kVK_ANSI_E, 'e') + KEY_CASE(kVK_ANSI_F, 'f') + KEY_CASE(kVK_ANSI_G, 'g') + KEY_CASE(kVK_ANSI_H, 'h') + KEY_CASE(kVK_ANSI_I, 'i') + KEY_CASE(kVK_ANSI_J, 'j') + KEY_CASE(kVK_ANSI_K, 'k') + KEY_CASE(kVK_ANSI_L, 'l') + KEY_CASE(kVK_ANSI_M, 'm') + KEY_CASE(kVK_ANSI_N, 'n') + KEY_CASE(kVK_ANSI_O, 'o') + KEY_CASE(kVK_ANSI_P, 'p') + KEY_CASE(kVK_ANSI_Q, 'q') + KEY_CASE(kVK_ANSI_R, 'r') + KEY_CASE(kVK_ANSI_S, 's') + KEY_CASE(kVK_ANSI_T, 't') + KEY_CASE(kVK_ANSI_U, 'u') + KEY_CASE(kVK_ANSI_V, 'v') + KEY_CASE(kVK_ANSI_W, 'w') + KEY_CASE(kVK_ANSI_X, 'x') + KEY_CASE(kVK_ANSI_Y, 'y') + KEY_CASE(kVK_ANSI_Z, 'z') + KEY_CASE(kVK_ANSI_0, '0') + KEY_CASE(kVK_ANSI_1, '1') + KEY_CASE(kVK_ANSI_2, '2') + KEY_CASE(kVK_ANSI_3, '3') + KEY_CASE(kVK_ANSI_4, '4') + KEY_CASE(kVK_ANSI_5, '5') + KEY_CASE(kVK_ANSI_6, '6') + KEY_CASE(kVK_ANSI_7, '7') + KEY_CASE(kVK_ANSI_8, '8') + KEY_CASE(kVK_ANSI_9, '9') + KEY_CASE(kVK_ANSI_Quote, '\"') + KEY_CASE(kVK_ANSI_Grave, '`') + KEY_CASE(kVK_ANSI_Backslash, '/') + KEY_CASE(kVK_ANSI_Comma, ',') + KEY_CASE(kVK_ANSI_Equal, '=') + KEY_CASE(kVK_Escape, MwLLKeyEscape) + KEY_CASE(kVK_ANSI_LeftBracket, '[') + KEY_CASE(kVK_ANSI_Minus, '-') + KEY_CASE(kVK_ANSI_Period, '.') + KEY_CASE(kVK_Return, MwLLKeyEnter) + KEY_CASE(kVK_ANSI_RightBracket, ']') + KEY_CASE(kVK_ANSI_Semicolon, ';') + KEY_CASE(kVK_ANSI_Slash, '\\') + KEY_CASE(kVK_Space, ' ') + KEY_CASE(kVK_Control, MwLLKeyControl) + KEY_CASE(kVK_RightControl, MwLLKeyControl) + KEY_CASE(kVK_Shift, MwLLKeyLeftShift) + KEY_CASE(kVK_RightShift, MwLLKeyRightShift) + KEY_CASE(kVK_DownArrow, MwLLKeyDown) + KEY_CASE(kVK_LeftArrow, MwLLKeyLeft) + KEY_CASE(kVK_RightArrow, MwLLKeyRight) + KEY_CASE(kVK_UpArrow, MwLLKeyUp) + } + switch([ev type]) { + case NSKeyDown: + MwLLDispatch(this, key, &ch); + break; + case NSKeyUp: + MwLLDispatch(this, key_released, &ch); + break; + default: + break; + } } - (void)sendClipboardEvent { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSPasteboard *pasteboard = [NSPasteboard generalPasteboard]; - NSArray *items = @[ - @"public.utf8-plain-text", - @"public.utf16-external-plain-text", - @"com.apple.traditional-mac-plain-text", - ]; - MwLL this = self->handle.pointer; + /*NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; + NSArray* items = @[ + @"public.utf8-plain-text", + @"public.utf16-external-plain-text", + @"com.apple.traditional-mac-plain-text", + ]; + MwLL this = self->handle.pointer; - if ([pasteboard canReadItemWithDataConformingToTypes:items]) { - char *data = NULL; - size_t size = 0; - for (NSPasteboardItem *item in [pasteboard pasteboardItems]) { - for (NSString *it in items) { - NSString *itemData = [item stringForType:(NSString *)it]; - if (itemData != NULL) { - if (strHash != 0 && strHash != [itemData hash]) { - char *text = malloc([itemData length]); - strncpy(text, [itemData UTF8String], [itemData length]); - MwLLDispatch(this, clipboard, text); - printf("%s -> %p\n", text, this); - free(text); - } - strHash = [itemData hash]; - } - } - } - } + if([pasteboard canReadItemWithDataConformingToTypes:items]) { + char* data = NULL; + size_t size = 0; + for(NSPasteboardItem* item in [pasteboard pasteboardItems]) { + for(NSString* it in items) { + NSString* itemData = [item stringForType:(NSString*)it]; + if(itemData != NULL) { + if(strHash != 0 && strHash != [itemData hash]) { + char* text = malloc([itemData length]); + strncpy(text, [itemData UTF8String], [itemData length]); + MwLLDispatch(this, clipboard, text); + printf("%s -> %p\n", text, this); + free(text); + } + strHash = [itemData hash]; + } + } + } + } - [pool release]; + [pool release];*/ } -- (void)setTitle:(const char *)title { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - [self->window - setTitleWithRepresentedFilename:[NSString stringWithUTF8String:title]]; - [pool release]; +- (void)setTitle:(const char*)title { + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + [self->window + setTitleWithRepresentedFilename:[NSString stringWithUTF8String:title]]; + [pool release]; }; -- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect *)_rect { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - MilskoCocoaPixmap *p = pixmap->cocoa.real; - NSGraphicsContext *ctx = [self->view context]; - if (ctx) { - [NSGraphicsContext saveGraphicsState]; - [NSGraphicsContext setCurrentContext:ctx]; +- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect*)_rect { + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + MilskoCocoaPixmap* p = pixmap->cocoa.real; + NSGraphicsContext* ctx = [self->view context]; + if(ctx) { + [NSGraphicsContext saveGraphicsState]; + [NSGraphicsContext setCurrentContext:ctx]; - [[p image] drawInRect:NSMakeRect(_rect->x, _rect->y, _rect->width, - _rect->height) - fromRect:NSZeroRect - operation:NSCompositeSourceOver - fraction:1.0 - respectFlipped:NO - hints:nil]; + [[p image] drawInRect:NSMakeRect(_rect->x, _rect->y, _rect->width, + _rect->height) + fromRect:NSZeroRect + operation:NSCompositeSourceOver + fraction:1.0]; - [NSGraphicsContext restoreGraphicsState]; + [NSGraphicsContext restoreGraphicsState]; - [self->view setNeedsDisplay:YES]; - } - [pool release]; + [self->view setNeedsDisplay:YES]; + } + [pool release]; }; - (void)setIcon:(MwLLPixmap)pixmap { + (void)pixmap; }; - (void)forceRender { - _forceRender = MwTRUE; + _forceRender = MwTRUE; }; -- (void)setCursor:(MwCursor *)image mask:(MwCursor *)mask { +- (void)setCursor:(MwCursor*)image mask:(MwCursor*)mask { + (void)image; + (void)mask; }; -- (void)detachWithPoint:(MwPoint *)point { +- (void)detachWithPoint:(MwPoint*)point { + (void)point; }; - (void)show:(int)show { + (void)show; }; -- (void)makePopupWithParent:(MwLL)parent { +- (void)makePopupWithParent:(MwLL)_parent { + (void)_parent; }; - (void)setSizeHintsWithMinX:(int)minx - MinY:(int)miny - MaxX:(int)maxx - MaxY:(int)maxy { + MinY:(int)miny + MaxX:(int)maxx + MaxY:(int)maxy { + (void)minx; + (void)miny; + (void)maxx; + (void)maxy; }; - (void)makeBorderless:(int)toggle { - MwU32 mask = [self->window styleMask]; - if (mask & NSBorderlessWindowMask) { - mask ^= NSBorderlessWindowMask; - mask |= NSTitledWindowMask; - } else { - mask |= NSBorderlessWindowMask; - mask ^= NSTitledWindowMask; - } - [self->window initWithContentRect:self->rect - styleMask:mask - backing:NSBackingStoreBuffered - defer:NO]; + MwU32 mask = [self->window styleMask]; + if(toggle) { + mask ^= NSBorderlessWindowMask; + mask |= NSTitledWindowMask; + } else { + mask |= NSBorderlessWindowMask; + mask ^= NSTitledWindowMask; + } + [self->window initWithContentRect:self->rect + styleMask:mask + backing:NSBackingStoreBuffered + defer:NO]; }; - (void)focus { - [self->window makeMainWindow]; + [self->window makeMainWindow]; }; - (void)grabPointer:(int)toggle { - /* MacOS didn't have a "pointer grab" function - * until 10.13.2 so I need to do this manually */ + (void)toggle; + /* MacOS didn't have a "pointer grab" function + * until 10.13.2 so I need to do this manually */ }; -- (void)setClipboard:(const char *)text { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSPasteboard *pasteboard = [NSPasteboard generalPasteboard]; - [pasteboard declareTypes:@[ NSPasteboardTypeString ] owner:nil]; - [pasteboard setString:@(text) forType:NSPasteboardTypeString]; - [pool release]; +- (void)setClipboard:(const char*)text { + (void)text; + // TODO: find out how to do this while supporting 10.4 + // NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + // NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; + // [pasteboard declareTypes:[NSArray arrayWithObjects:NSPasteboardTypeString] owner:nil]; + // [pasteboard setString:[NSString stringWithUTF8String:text] forType:NSPasteboardTypeString]; + // [pool release]; }; - (void)getClipboard { }; - (void)makeToolWindow { }; -- (void)getCursorCoord:(MwPoint *)point { - NSPoint p = [NSEvent mouseLocation]; - point->x = p.x; - point->y = p.y; +- (void)getCursorCoord:(MwPoint*)point { + NSPoint p = [NSEvent mouseLocation]; + point->x = p.x; + point->y = p.y; }; -- (void)getScreenSize:(MwRect *)_rect { - NSScreen *screen = [self->window screen]; - _rect->x = [screen frame].origin.x; - _rect->y = [screen frame].origin.y; - _rect->width = [screen frame].size.width; - _rect->height = [screen frame].size.height; +- (void)getScreenSize:(MwRect*)_rect { + NSScreen* screen = [self->window screen]; + _rect->x = [screen frame].origin.x; + _rect->y = [screen frame].origin.y; + _rect->width = [screen frame].size.width; + _rect->height = [screen frame].size.height; }; - (void)destroy { - if (self->lastEvent) { - [self->lastEvent release]; - [self->lastEvent dealloc]; - } - [self->handle release]; - [self->handle dealloc]; - [self->window release]; - [self->window dealloc]; + if(self->lastEvent) { + [self->lastEvent release]; + [self->lastEvent dealloc]; + } + [self->handle release]; + [self->handle dealloc]; + [self->window release]; + [self->window dealloc]; } -- (NSWindow *)parentWindow { - NSWindow *topmostWindow = self->window; - while (topmostWindow.parentWindow) - topmostWindow = topmostWindow.parentWindow; - return topmostWindow; +- (NSWindow*)parentWindow { + NSWindow* topmostWindow = self->window; + while([topmostWindow parentWindow]) + topmostWindow = [topmostWindow parentWindow]; + return topmostWindow; } -- (NSView *)getView { - return view; +- (NSView*)getView { + return view; } -- (NSWindow *)getWindow { - return window; +- (NSWindow*)getWindow { + return window; } -- (MilskoFakePointer *)getHandle { - return handle; +- (MilskoFakePointer*)getHandle { + return handle; } @end @implementation MilskoCocoaView - (id)initWithFrame:(NSRect)frame { - width = frame.size.width; - height = frame.size.height; - self = [super initWithFrame:frame]; - self->space = CGColorSpaceCreateDeviceRGB(); + width = frame.size.width; + height = frame.size.height; + self = [super initWithFrame:frame]; + self->space = CGColorSpaceCreateDeviceRGB(); - if (width == 0 || height == 0) { - self->rep = NULL; - self->context = NULL; - } else { - self->rep = - [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL - pixelsWide:width - pixelsHigh:height - bitsPerSample:8 - samplesPerPixel:4 - hasAlpha:YES - isPlanar:NO - colorSpaceName:NSDeviceRGBColorSpace - bytesPerRow:width * 4 - bitsPerPixel:32]; - assert(self->rep); + if(width == 0 || height == 0) { + self->rep = NULL; + self->context = NULL; + } else { + self->rep = + [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL + pixelsWide:width + pixelsHigh:height + bitsPerSample:8 + samplesPerPixel:4 + hasAlpha:YES + isPlanar:NO + colorSpaceName:NSDeviceRGBColorSpace + bytesPerRow:width * 4 + bitsPerPixel:32]; + assert(self->rep); + [self->rep retain]; - self->context = - [NSGraphicsContext graphicsContextWithBitmapImageRep:self->rep]; - assert(self->context); - } + self->context = + [NSGraphicsContext graphicsContextWithBitmapImageRep:self->rep]; + assert(self->context); + [self->context retain]; + } - return self; + return self; } -- (NSGraphicsContext *)context { - return self->context; +- (NSGraphicsContext*)context { + return self->context; } -- (NSBitmapImageRep *)getRep { - return self->rep; +- (NSBitmapImageRep*)getRep { + return self->rep; } - (void)drawRect:(NSRect)dirtyRect { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSSize sz = self->rep.size; - [super drawRect:dirtyRect]; - if (!self->rep) { - [pool release]; - return; - } + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + NSSize sz = [self->rep size]; + [super drawRect:dirtyRect]; + if(!self->rep) { + [pool release]; + return; + } - [self->rep drawInRect:NSMakeRect(0, 0, sz.width, sz.height)]; + [self->rep drawInRect:NSMakeRect(0, 0, sz.width, sz.height)]; - [self->rep bitmapData]; - [pool release]; + [self->rep bitmapData]; + [pool release]; } - (void)destroy { - CGColorSpaceRelease(self->space); - [self->rep release]; - [self->context release]; + CGColorSpaceRelease(self->space); + [self->rep release]; + [self->context release]; } - (void)setFrameSize:(NSSize)newSize { - [super setFrameSize:newSize]; - [self->rep setSize:newSize]; + [super setFrameSize:newSize]; + [self->rep setSize:newSize]; - self->width = newSize.width; - self->height = newSize.height; + self->width = newSize.width; + self->height = newSize.height; } - (void)displayRect:(NSRect)rect { + (void)rect; }; @end @implementation MilskoCocoaWindowDelegate -- (NSSize)windowWillResize:(NSWindow *)win toSize:(NSSize)frameSize; +- (NSSize)windowWillResize:(NSWindow*)win toSize:(NSSize)frameSize; { - if (win.contentView.subviews.count >= 1) { - MilskoFakePointer *ptr = win.contentView.subviews[0]; - MwLL h = [ptr pointer]; + if([[[win contentView] subviews] count] >= 1) { + MilskoFakePointer* ptr = [[[win contentView] subviews] objectAtIndex:0]; + MwLL h = [ptr pointer]; - MwLLDispatch(h, resize, NULL); - MwLLDispatch(h, draw, NULL); - } - return frameSize; + // MwLLDispatch(h, resize, NULL); + MwLLDispatch(h, draw, NULL); + } + return frameSize; } -- (void)windowDidResize:(NSNotification *)notification { +- (void)windowDidResize:(NSNotification*)notification { + (void)notification; } // This will close/terminate the application when the main window is closed. -- (void)windowWillClose:(NSNotification *)notification { - // MilskoCocoa *window = notification.object; - // MwLL handle = [window getHandle].pointer; - // MwLLDispatch(handle, close, NULL); - [NSApp terminate:nil]; +- (void)windowWillClose:(NSNotification*)notification { + (void)notification; + // MilskoCocoa *window = notification.object; + // MwLL handle = [window getHandle].pointer; + // MwLLDispatch(handle, close, NULL); + [NSApp terminate:nil]; } -- (instancetype)initWithWin:(NSWindow *)win { - self->w = win; - return self; +- (MilskoCocoaWindowDelegate*)initWithWin:(NSWindow*)win { + self->w = win; + return self; } @end @implementation MilskoFakePointer -- (void)setPointer:(void *)pointer { - self.frame = *(NSRect *)&pointer; - self->ptr = pointer; +- (void)setPointer:(void*)pointer { + [self setFrame:*(NSRect*)&pointer]; + self->ptr = pointer; }; -- (void *)pointer { - return self->ptr; +- (void*)pointer { + return self->ptr; }; - (void)drawRect:(NSRect)dirtyRect { - /* explicitly do nothing */ + /* explicitly do nothing */ + (void)dirtyRect; } - (void)destroy { @@ -780,219 +802,233 @@ static CGPoint pointFlip(CGPoint point) { @end static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { - MwLL r; - (void)x; - (void)y; - (void)width; - (void)height; + MwLL r; + (void)x; + (void)y; + (void)width; + (void)height; - r = malloc(sizeof(*r)); + r = malloc(sizeof(*r)); - MwLLCreateCommon(r); + MwLLCreateCommon(r); - MilskoCocoa *o = [MilskoCocoa newWithParent:parent - x:x - y:y - width:width - height:height - handle:r]; - r->cocoa.real = o; + MilskoCocoa* o = [MilskoCocoa newWithParent:parent + x:x + y:y + width:width + height:height + handle:r]; + r->cocoa.real = o; - return r; + return r; } static void MwLLDestroyImpl(MwLL handle) { - MilskoCocoa *h = handle->cocoa.real; + MilskoCocoa* h = handle->cocoa.real; - [h destroy]; + [h destroy]; - MwLLDestroyCommon(handle); + MwLLDestroyCommon(handle); - free(handle); + free(handle); } -static void MwLLBeginDrawImpl(MwLL handle) { (void)handle; } - -static void MwLLEndDrawImpl(MwLL handle) { (void)handle; } - -static void MwLLPolygonImpl(MwLL handle, MwPoint *points, int points_count, - MwLLColor color) { - MilskoCocoa *h = handle->cocoa.real; - [h polygonWithPoints:points points_count:points_count color:color]; +static void MwLLBeginDrawImpl(MwLL handle) { + (void)handle; } -static void MwLLLineImpl(MwLL handle, MwPoint *points, MwLLColor color) { - MilskoCocoa *h = handle->cocoa.real; - [h lineWithPoints:points color:color]; +static void MwLLEndDrawImpl(MwLL handle) { + (void)handle; +} + +static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, + MwLLColor color) { + MilskoCocoa* h = handle->cocoa.real; + [h polygonWithPoints:points points_count:points_count color:color]; +} + +static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { + MilskoCocoa* h = handle->cocoa.real; + [h lineWithPoints:points color:color]; } static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { - MwLLColor c = malloc(sizeof(*c)); - MwLLColorUpdate(handle, c, r, g, b); - return c; + MwLLColor c = malloc(sizeof(*c)); + MwLLColorUpdate(handle, c, r, g, b); + return c; } static void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { - (void)handle; + (void)handle; - c->common.red = r; - c->common.green = g; - c->common.blue = b; + c->common.red = r; + c->common.green = g; + c->common.blue = b; } -static void MwLLGetXYWHImpl(MwLL handle, int *x, int *y, unsigned int *w, - unsigned int *height) { - MilskoCocoa *h = handle->cocoa.real; - [h getX:x Y:y W:w H:height]; +static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, + unsigned int* height) { + MilskoCocoa* h = handle->cocoa.real; + [h getX:x Y:y W:w H:height]; } static void MwLLSetXYImpl(MwLL handle, int x, int y) { - MilskoCocoa *h = handle->cocoa.real; - [h setX:x Y:y]; + MilskoCocoa* h = handle->cocoa.real; + [h setX:x Y:y]; } static void MwLLSetWHImpl(MwLL handle, int w, int height) { - MilskoCocoa *h = handle->cocoa.real; - [h setW:w H:height]; + MilskoCocoa* h = handle->cocoa.real; + [h setW:w H:height]; } -static void MwLLFreeColorImpl(MwLLColor color) { free(color); } +static void MwLLFreeColorImpl(MwLLColor color) { + free(color); +} static int MwLLPendingImpl(MwLL handle) { - MilskoCocoa *h = handle->cocoa.real; - if ([h pending]) { - MwLLDispatch(handle, draw, NULL); - return 1; - }; - return 0; + MilskoCocoa* h = handle->cocoa.real; + if([h pending]) { + MwLLDispatch(handle, draw, NULL); + return 1; + }; + return 0; } static void MwLLNextEventImpl(MwLL handle) { - MilskoCocoa *h = handle->cocoa.real; - [h getNextEvent]; + MilskoCocoa* h = handle->cocoa.real; + [h getNextEvent]; } -static void MwLLSetTitleImpl(MwLL handle, const char *title) { - MilskoCocoa *h = handle->cocoa.real; - [h setTitle:title]; +static void MwLLSetTitleImpl(MwLL handle, const char* title) { + MilskoCocoa* h = handle->cocoa.real; + [h setTitle:title]; } -static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char *data, - int width, int height) { - (void)handle; +static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, + int width, int height) { + (void)handle; - MwLLPixmap r = malloc(sizeof(*r)); + MwLLPixmap r = malloc(sizeof(*r)); - r->common.raw = malloc(4 * width * height); - memcpy(r->common.raw, data, 4 * width * height); + r->common.raw = malloc(4 * width * height); + memcpy(r->common.raw, data, 4 * width * height); - r->common.width = width; - r->common.height = height; + r->common.width = width; + r->common.height = height; - r->cocoa.real = [MilskoCocoaPixmap newWithWidth:width height:height]; + r->cocoa.real = [MilskoCocoaPixmap newWithWidth:width height:height]; - MwLLPixmapUpdate(r); - free(r->common.raw); - return r; + MwLLPixmapUpdate(r); + free(r->common.raw); + return r; } static void MwLLPixmapUpdateImpl(MwLLPixmap pixmap) { - MilskoCocoaPixmap *p = pixmap->cocoa.real; - [p updateWithData:pixmap->common.raw]; + MilskoCocoaPixmap* p = pixmap->cocoa.real; + [p updateWithData:pixmap->common.raw]; } static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { - MilskoCocoaPixmap *p = pixmap->cocoa.real; - [p destroy]; - [p dealloc]; - free(pixmap); + MilskoCocoaPixmap* p = pixmap->cocoa.real; + [p destroy]; + [p dealloc]; + free(pixmap); } -static void MwLLDrawPixmapImpl(MwLL handle, MwRect *rect, MwLLPixmap pixmap) { - MilskoCocoa *h = handle->cocoa.real; - [h drawPixmap:pixmap rect:rect]; - MwLLForceRender(handle); +static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { + MilskoCocoa* h = handle->cocoa.real; + [h drawPixmap:pixmap rect:rect]; + MwLLForceRender(handle); } static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { - MilskoCocoa *h = handle->cocoa.real; - [h setIcon:pixmap]; + MilskoCocoa* h = handle->cocoa.real; + [h setIcon:pixmap]; } static void MwLLForceRenderImpl(MwLL handle) { - MilskoCocoa *h = handle->cocoa.real; - [h forceRender]; + MilskoCocoa* h = handle->cocoa.real; + [h forceRender]; } -static void MwLLSetCursorImpl(MwLL handle, MwCursor *image, MwCursor *mask) { - MilskoCocoa *h = handle->cocoa.real; - [h setCursor:image mask:mask]; +static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { + MilskoCocoa* h = handle->cocoa.real; + [h setCursor:image mask:mask]; } -static void MwLLDetachImpl(MwLL handle, MwPoint *point) { - MilskoCocoa *h = handle->cocoa.real; - [h detachWithPoint:point]; +static void MwLLDetachImpl(MwLL handle, MwPoint* point) { + MilskoCocoa* h = handle->cocoa.real; + [h detachWithPoint:point]; } static void MwLLShowImpl(MwLL handle, int show) { - MilskoCocoa *h = handle->cocoa.real; - [h show:show]; + MilskoCocoa* h = handle->cocoa.real; + [h show:show]; } static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { - MilskoCocoa *h = handle->cocoa.real; - [h makePopupWithParent:parent]; + MilskoCocoa* h = handle->cocoa.real; + [h makePopupWithParent:parent]; } static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, - int maxy) { - MilskoCocoa *h = handle->cocoa.real; - [h setSizeHintsWithMinX:minx MinY:miny MaxX:maxx MaxY:maxy]; + int maxy) { + MilskoCocoa* h = handle->cocoa.real; + [h setSizeHintsWithMinX:minx MinY:miny MaxX:maxx MaxY:maxy]; } static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { - MilskoCocoa *h = handle->cocoa.real; - [h makeBorderless:toggle]; + MilskoCocoa* h = handle->cocoa.real; + [h makeBorderless:toggle]; } static void MwLLFocusImpl(MwLL handle) { - MilskoCocoa *h = handle->cocoa.real; - [h focus]; + MilskoCocoa* h = handle->cocoa.real; + [h focus]; } static void MwLLGrabPointerImpl(MwLL handle, int toggle) { - MilskoCocoa *h = handle->cocoa.real; - [h grabPointer:toggle]; + MilskoCocoa* h = handle->cocoa.real; + [h grabPointer:toggle]; } -static void MwLLSetClipboardImpl(MwLL handle, const char *text) { - MilskoCocoa *h = handle->cocoa.real; - [h setClipboard:text]; +static void MwLLSetClipboardImpl(MwLL handle, const char* text) { + MilskoCocoa* h = handle->cocoa.real; + [h setClipboard:text]; } -static void MwLLGetClipboardImpl(MwLL handle) { (void)handle; } +static void MwLLGetClipboardImpl(MwLL handle) { + (void)handle; +} static void MwLLMakeToolWindowImpl(MwLL handle) { - MilskoCocoa *h = handle->cocoa.real; - [h makeToolWindow]; + MilskoCocoa* h = handle->cocoa.real; + [h makeToolWindow]; } -static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint *point) { - MilskoCocoa *h = handle->cocoa.real; - [h getCursorCoord:point]; +static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { + MilskoCocoa* h = handle->cocoa.real; + [h getCursorCoord:point]; } -static void MwLLGetScreenSizeImpl(MwLL handle, MwRect *rect) { - MilskoCocoa *h = handle->cocoa.real; - [h getScreenSize:rect]; +static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { + MilskoCocoa* h = handle->cocoa.real; + [h getScreenSize:rect]; } -static void MwLLBeginStateChangeImpl(MwLL handle) { MwLLShow(handle, 0); } +static void MwLLBeginStateChangeImpl(MwLL handle) { + MwLLShow(handle, 0); +} -static void MwLLEndStateChangeImpl(MwLL handle) { MwLLShow(handle, 1); } +static void MwLLEndStateChangeImpl(MwLL handle) { + MwLLShow(handle, 1); +} -static int MwLLCocoaCallInitImpl(void) { return 0; } +static int MwLLCocoaCallInitImpl(void) { + return 0; +} #include "call.c" CALL(Cocoa); From c20da369e868b8d00d1fecb1a49d97c723a27bf0 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Sun, 8 Mar 2026 18:30:37 -0700 Subject: [PATCH 182/836] try and fail to have the app be activated without setting the activation policy --- include/Mw/LowLevel/Cocoa.h | 143 ++-- src/backend/cocoa.m | 1517 ++++++++++++++++++----------------- 2 files changed, 842 insertions(+), 818 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 38129e560..2789af904 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -21,136 +21,143 @@ #import #endif +// Note: implements NSApplicationDelegate +@interface MilskoCocoaApplicationDelegate : NSObject { + NSApplication *appl; +} +- (MilskoCocoaApplicationDelegate *)initWithAppl:(NSApplication *)appl; +@end + // Note: implements NSWindowDelegate @interface MilskoCocoaWindowDelegate : NSObject { - NSWindow* w; + NSWindow *w; } -- (MilskoCocoaWindowDelegate*)initWithWin:(NSWindow*)win; +- (MilskoCocoaWindowDelegate *)initWithWin:(NSWindow *)win; @end @interface MilskoFakePointer : NSView { - void* ptr; + void *ptr; } -- (void)setPointer:(void*)ptr; -- (void*)pointer; +- (void)setPointer:(void *)ptr; +- (void *)pointer; @end @interface MilskoCocoaPixmap : NSObject { - MwBool valid; - int width; - int height; - unsigned char* buf; - NSImage* image; - NSBitmapImageRep* rep; + MwBool valid; + int width; + int height; + unsigned char *buf; + NSImage *image; + NSBitmapImageRep *rep; } -+ (MilskoCocoaPixmap*)newWithWidth:(int)width height:(int)height; -- (void)updateWithData:(unsigned char*)data; ++ (MilskoCocoaPixmap *)newWithWidth:(int)width height:(int)height; +- (void)updateWithData:(unsigned char *)data; - (void)destroy; /* using @property to create instance variables fucks up 10.4 gcc for some * reason? */ -- (NSImage*)image; +- (NSImage *)image; @end @interface MilskoCocoaView : NSView { - NSBitmapImageRep* rep; - NSGraphicsContext* context; - MwBool valid; - CGColorSpaceRef space; - CGDataProviderRef provider; - float width; - float height; + NSBitmapImageRep *rep; + NSGraphicsContext *context; + MwBool valid; + CGColorSpaceRef space; + CGDataProviderRef provider; + float width; + float height; } -- (NSGraphicsContext*)context; +- (NSGraphicsContext *)context; - (void)destroy; -- (NSBitmapImageRep*)getRep; +- (NSBitmapImageRep *)getRep; @end @interface MilskoCocoa : NSObject { - NSApplication* application; - MwBool _forceRender; - NSWindow* window; - NSRect rect; - MilskoCocoaView* view; - MwLL parent; - MilskoFakePointer* handle; - unsigned int strHash; - NSEvent* lastEvent; + NSApplication *application; + MwBool _forceRender; + NSWindow *window; + NSRect rect; + MilskoCocoaView *view; + MwLL parent; + MilskoFakePointer *handle; + unsigned int strHash; + NSEvent *lastEvent; } -+ (MilskoCocoa*)newWithParent:(MwLL)parent - x:(int)x - y:(int)y - width:(int)width - height:(int)height - handle:(MwLL)handle; -- (void)polygonWithPoints:(MwPoint*)points - points_count:(int)points_count - color:(MwLLColor)color; -- (void)lineWithPoints:(MwPoint*)points color:(MwLLColor)color; -- (void)getX:(int*)x Y:(int*)y W:(unsigned int*)w H:(unsigned int*)h; ++ (MilskoCocoa *)newWithParent:(MwLL)parent + x:(int)x + y:(int)y + width:(int)width + height:(int)height + handle:(MwLL)handle; +- (void)polygonWithPoints:(MwPoint *)points + points_count:(int)points_count + color:(MwLLColor)color; +- (void)lineWithPoints:(MwPoint *)points color:(MwLLColor)color; +- (void)getX:(int *)x Y:(int *)y W:(unsigned int *)w H:(unsigned int *)h; - (void)setX:(int)x Y:(int)y; - (void)setW:(int)w H:(int)h; - (int)pending; -- (void)eventProcess:(NSEvent*)ev; -- (void)handleKeyEvent:(NSEvent*)ev; -- (void)handleMouseEvent:(NSEvent*)ev ll:(MwLL)ll; +- (void)eventProcess:(NSEvent *)ev; +- (void)handleKeyEvent:(NSEvent *)ev; +- (void)handleMouseEvent:(NSEvent *)ev ll:(MwLL)ll; - (void)getNextEvent; -- (void)setTitle:(const char*)title; -- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect*)rect; +- (void)setTitle:(const char *)title; +- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect *)rect; - (void)setIcon:(MwLLPixmap)pixmap; - (void)forceRender; -- (void)setCursor:(MwCursor*)image mask:(MwCursor*)mask; -- (void)detachWithPoint:(MwPoint*)point; +- (void)setCursor:(MwCursor *)image mask:(MwCursor *)mask; +- (void)detachWithPoint:(MwPoint *)point; - (void)show:(int)show; - (void)makePopupWithParent:(MwLL)parent; - (void)setSizeHintsWithMinX:(int)minx - MinY:(int)miny - MaxX:(int)maxx - MaxY:(int)maxy; + MinY:(int)miny + MaxX:(int)maxx + MaxY:(int)maxy; - (void)makeBorderless:(int)toggle; - (void)focus; - (void)grabPointer:(int)toggle; -- (void)setClipboard:(const char*)text; +- (void)setClipboard:(const char *)text; - (void)makeToolWindow; -- (void)getCursorCoord:(MwPoint*)point; -- (void)getScreenSize:(MwRect*)rect; +- (void)getCursorCoord:(MwPoint *)point; +- (void)getScreenSize:(MwRect *)rect; - (void)destroy; - (void)sendClipboardEvent; -- (NSWindow*)parentWindow; -- (NSView*)getView; -- (NSWindow*)getWindow; -- (MilskoFakePointer*)getHandle; +- (NSWindow *)parentWindow; +- (NSView *)getView; +- (NSWindow *)getWindow; +- (MilskoFakePointer *)getHandle; @end #define OBJC(x) x #else -#define OBJC(x) void* +#define OBJC(x) void * #endif MWDECL int MwLLCocoaCallInit(void); struct _MwLLCocoa { - struct _MwLLCommon common; - OBJC(MilskoCocoa*) - real; + struct _MwLLCommon common; + OBJC(MilskoCocoa *) + real; }; struct _MwLLCocoaColor { - struct _MwLLCommonColor common; + struct _MwLLCommonColor common; }; struct _MwLLCocoaPixmap { - struct _MwLLCommonPixmap common; - OBJC(MilskoCocoaPixmap*) - real; + struct _MwLLCommonPixmap common; + OBJC(MilskoCocoaPixmap *) + real; }; #endif diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index af486249f..7f07ffbf4 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1,3 +1,4 @@ +#include "Mw/BaseTypes.h" #include #include @@ -7,794 +8,824 @@ #endif static NSRect rectFlip(NSRect originFrame) { - NSScreen* zeroScreen = [[NSScreen screens] objectAtIndex:0]; - double screenHeight = [zeroScreen frame].size.height; - double originY = originFrame.origin.y; - double frameHeight = originFrame.size.height; - double destinationY = screenHeight - (originY + frameHeight); - NSRect destinationFrame = originFrame; - destinationFrame.origin.y = destinationY; - if(destinationFrame.origin.x < 0) - destinationFrame.origin.x = 0; - if(destinationFrame.origin.y < 0) - destinationFrame.origin.y = 0; - if(destinationFrame.size.width < 0) - destinationFrame.size.width = 0; - if(destinationFrame.size.height < 0) - destinationFrame.size.height = 0; - return destinationFrame; + NSScreen *zeroScreen = [[NSScreen screens] objectAtIndex:0]; + double screenHeight = [zeroScreen frame].size.height; + double originY = originFrame.origin.y; + double frameHeight = originFrame.size.height; + double destinationY = screenHeight - (originY + frameHeight); + NSRect destinationFrame = originFrame; + destinationFrame.origin.y = destinationY; + if (destinationFrame.origin.x < 0) + destinationFrame.origin.x = 0; + if (destinationFrame.origin.y < 0) + destinationFrame.origin.y = 0; + if (destinationFrame.size.width < 0) + destinationFrame.size.width = 0; + if (destinationFrame.size.height < 0) + destinationFrame.size.height = 0; + return destinationFrame; } static NSPoint pointFlip(NSPoint point) { - return rectFlip(NSMakeRect(point.x, point.y, 0, 0)).origin; + return rectFlip(NSMakeRect(point.x, point.y, 0, 0)).origin; } @implementation MilskoCocoaPixmap -+ (MilskoCocoaPixmap*)newWithWidth:(int)width height:(int)height { - MilskoCocoaPixmap* p = [MilskoCocoaPixmap alloc]; ++ (MilskoCocoaPixmap *)newWithWidth:(int)width height:(int)height { + MilskoCocoaPixmap *p = [MilskoCocoaPixmap alloc]; - p->width = width; - p->height = height; - p->image = NULL; + p->width = width; + p->height = height; + p->image = NULL; - p->buf = malloc(width * height * 4); + p->buf = malloc(width * height * 4); - p->rep = - [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:&p->buf - pixelsWide:(int)width - pixelsHigh:(int)height - bitsPerSample:8 - samplesPerPixel:4 - hasAlpha:YES - isPlanar:NO - colorSpaceName:NSDeviceRGBColorSpace - bytesPerRow:(int)width * 4 - bitsPerPixel:32]; - assert(p->rep); + p->rep = + [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:&p->buf + pixelsWide:(int)width + pixelsHigh:(int)height + bitsPerSample:8 + samplesPerPixel:4 + hasAlpha:YES + isPlanar:NO + colorSpaceName:NSDeviceRGBColorSpace + bytesPerRow:(int)width * 4 + bitsPerPixel:32]; + assert(p->rep); - p->image = [[NSImage alloc] initWithSize:NSMakeSize(width, height)]; - assert(p->image); - [p->image addRepresentation:p->rep]; + p->image = [[NSImage alloc] initWithSize:NSMakeSize(width, height)]; + assert(p->image); + [p->image addRepresentation:p->rep]; - return p; + return p; } -- (void)updateWithData:(unsigned char*)_data { - memcpy(self->buf, _data, width * height * 4); +- (void)updateWithData:(unsigned char *)_data { + memcpy(self->buf, _data, width * height * 4); } - (void)destroy { - free(self->buf); - [self->image removeRepresentation:self->rep]; - [self->image dealloc]; - [self->rep dealloc]; + free(self->buf); + [self->image removeRepresentation:self->rep]; + [self->image dealloc]; + [self->rep dealloc]; } -- (NSImage*)image { - return self->image; +- (NSImage *)image { + return self->image; } @end @implementation MilskoCocoa -+ (MilskoCocoa*)newWithParent:(MwLL)parent - x:(int)x - y:(int)y - width:(int)width - height:(int)height - handle:(MwLL)r { - MilskoCocoa* c = [MilskoCocoa alloc]; - [c retain]; ++ (MilskoCocoa *)newWithParent:(MwLL)parent + x:(int)x + y:(int)y + width:(int)width + height:(int)height + handle:(MwLL)r { + MilskoCocoa *c = [MilskoCocoa alloc]; + [c retain]; - if(x == MwDEFAULT) { - x = ([[NSScreen mainScreen] frame].size.width / 2.) - (width / 2.); - } - if(y == MwDEFAULT) { - y = ([[NSScreen mainScreen] frame].size.height / 2.) - (height / 2.); - } - c->application = [NSApplication sharedApplication]; - c->rect = rectFlip(NSMakeRect(x, y, width, height)); + if (x == MwDEFAULT) { + x = ([[NSScreen mainScreen] frame].size.width / 2.) - (width / 2.); + } + if (y == MwDEFAULT) { + y = ([[NSScreen mainScreen] frame].size.height / 2.) - (height / 2.); + } + c->application = [NSApplication sharedApplication]; + c->rect = rectFlip(NSMakeRect(x, y, width, height)); - if(parent == NULL) { - c->window = [[NSWindow alloc] - initWithContentRect:c->rect - styleMask:(NSTitledWindowMask | NSClosableWindowMask | - NSMiniaturizableWindowMask | NSResizableWindowMask) - backing:NSBackingStoreBuffered - defer:NO]; - } else { - double offset = 0; - NSWindow* parentWindow = parent->cocoa.real->window; - offset = - [parentWindow frameRectForContentRect:[parentWindow frame]].size.height - - [parentWindow contentRectForFrameRect:[parentWindow frame]].size.height; + if (parent == NULL) { + c->window = [[NSWindow alloc] + initWithContentRect:c->rect + styleMask:(NSTitledWindowMask | NSClosableWindowMask | + NSMiniaturizableWindowMask | NSResizableWindowMask) + backing:NSBackingStoreBuffered + defer:NO]; + } else { + double offset = 0; + NSWindow *parentWindow = parent->cocoa.real->window; + offset = + [parentWindow frameRectForContentRect:[parentWindow frame]] + .size.height - + [parentWindow contentRectForFrameRect:[parentWindow frame]].size.height; - c->rect.origin.x += [parentWindow frame].origin.x; - c->rect.origin.y -= [parentWindow frame].origin.y - offset; - c->rect.origin.y -= offset; + c->rect.origin.x += [parentWindow frame].origin.x; + c->rect.origin.y -= [parentWindow frame].origin.y - offset; + c->rect.origin.y -= offset; - c->window = [[NSWindow alloc] initWithContentRect:c->rect - styleMask:NSBorderlessWindowMask - backing:NSBackingStoreBuffered - defer:NO]; - } - [c->window setDelegate:[[MilskoCocoaWindowDelegate alloc] - initWithWin:c->window]]; + c->window = [[NSWindow alloc] initWithContentRect:c->rect + styleMask:NSBorderlessWindowMask + backing:NSBackingStoreBuffered + defer:NO]; + } + [c->window + setDelegate:(id)[[MilskoCocoaWindowDelegate alloc] + initWithWin:c->window]]; - [c->window makeKeyAndOrderFront:c->application]; - [c->window retain]; + [c->window makeKeyAndOrderFront:c->application]; + [c->window retain]; - if(parent != NULL) { - MilskoCocoa* p = parent->cocoa.real; - [p->window addChildWindow:c->window ordered:NSWindowAbove]; - [c->window setHasShadow:MwFALSE]; - } else { - [c->application activateIgnoringOtherApps:true]; - [c->window makeFirstResponder:c->view]; - } + if (parent != NULL) { + MilskoCocoa *p = parent->cocoa.real; + [p->window addChildWindow:c->window ordered:NSWindowAbove]; + [c->window setHasShadow:MwFALSE]; + } else { + [c->application activateIgnoringOtherApps:true]; + [c->window makeFirstResponder:c->view]; + } - c->view = [[MilskoCocoaView alloc] initWithFrame:c->rect]; - [c->view retain]; - c->handle = [[MilskoFakePointer alloc] initWithFrame:NSMakeRect(0, 0, 1, 1)]; - [c->handle retain]; - [c->handle setPointer:r]; - [c->view addSubview:c->handle]; + [c->application setDelegate:[[MilskoCocoaApplicationDelegate alloc] + initWithAppl:c->application]]; - [c->window setContentView:c->view]; + c->view = [[MilskoCocoaView alloc] initWithFrame:c->rect]; + [c->view retain]; + c->handle = [[MilskoFakePointer alloc] initWithFrame:NSMakeRect(0, 0, 1, 1)]; + [c->handle retain]; + [c->handle setPointer:r]; + [c->view addSubview:c->handle]; - c->parent = parent; + [c->window setContentView:c->view]; - c->_forceRender = MwTRUE; - c->strHash = 0; + c->parent = parent; - return c; + c->_forceRender = MwTRUE; + c->strHash = 0; + + [c->application finishLaunching]; + + return c; } -- (void)polygonWithPoints:(MwPoint*)points - points_count:(int)points_count - color:(MwLLColor)color { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - NSGraphicsContext* ctx = [self->view context]; - if(ctx) { - int i; - NSBezierPath* path = [NSBezierPath bezierPath]; - NSColor* nscolor = [NSColor colorWithCalibratedRed:color->common.red / 255. - green:color->common.green / 255. - blue:color->common.blue / 255. - alpha:1.0]; +- (void)polygonWithPoints:(MwPoint *)points + points_count:(int)points_count + color:(MwLLColor)color { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + NSGraphicsContext *ctx = [self->view context]; + if (ctx) { + int i; + NSBezierPath *path = [NSBezierPath bezierPath]; + NSColor *nscolor = + [NSColor colorWithCalibratedRed:color->common.red / 255. + green:color->common.green / 255. + blue:color->common.blue / 255. + alpha:1.0]; - [NSGraphicsContext saveGraphicsState]; - [NSGraphicsContext setCurrentContext:ctx]; + [NSGraphicsContext saveGraphicsState]; + [NSGraphicsContext setCurrentContext:ctx]; - [nscolor setFill]; - for(i = 0; i < points_count; i++) { - if(i == 0) { - [path moveToPoint:NSMakePoint(points[i].x, - [self->window frame].size.height - - points[i].y)]; - } else { - [path lineToPoint:NSMakePoint(points[i].x, - [self->window frame].size.height - - points[i].y)]; - } - } + [nscolor setFill]; + for (i = 0; i < points_count; i++) { + if (i == 0) { + [path moveToPoint:NSMakePoint(points[i].x, + [self->window frame].size.height - + points[i].y)]; + } else { + [path lineToPoint:NSMakePoint(points[i].x, + [self->window frame].size.height - + points[i].y)]; + } + } - [path closePath]; - [path fill]; + [path closePath]; + [path fill]; - [NSGraphicsContext restoreGraphicsState]; + [NSGraphicsContext restoreGraphicsState]; - [self->view setNeedsDisplay:YES]; - } - [pool release]; + [self->view setNeedsDisplay:YES]; + } + [pool release]; }; -- (void)lineWithPoints:(MwPoint*)points color:(MwLLColor)color { - (void)points; - (void)color; +- (void)lineWithPoints:(MwPoint *)points color:(MwLLColor)color { + (void)points; + (void)color; }; -- (void)getX:(int*)x Y:(int*)y W:(unsigned int*)w H:(unsigned int*)h { - NSRect frame = rectFlip([self->window frame]); - frame = rectFlip(frame); +- (void)getX:(int *)x Y:(int *)y W:(unsigned int *)w H:(unsigned int *)h { + NSRect frame = rectFlip([self->window frame]); + frame = rectFlip(frame); - *x = frame.origin.x; - *y = frame.origin.y; + *x = frame.origin.x; + *y = frame.origin.y; - *w = frame.size.width; - *h = frame.size.height; + *w = frame.size.width; + *h = frame.size.height; }; - (void)setX:(int)x Y:(int)y { - NSRect frame = [self->window frame]; + NSRect frame = [self->window frame]; - frame.origin.x = x; - frame.origin.y = y; + frame.origin.x = x; + frame.origin.y = y; - frame = rectFlip(frame); + frame = rectFlip(frame); - if(parent) { - double offset = 0; - NSWindow* parentWindow = parent->cocoa.real->window; - offset = - [parentWindow frameRectForContentRect:[parentWindow frame]].size.height - - [parentWindow contentRectForFrameRect:[parentWindow frame]].size.height; + if (parent) { + double offset = 0; + NSWindow *parentWindow = parent->cocoa.real->window; + offset = + [parentWindow frameRectForContentRect:[parentWindow frame]] + .size.height - + [parentWindow contentRectForFrameRect:[parentWindow frame]].size.height; - if(x < [parentWindow frame].origin.x) { - frame.origin.x += [parentWindow frame].origin.x; - } + if (x < [parentWindow frame].origin.x) { + frame.origin.x += [parentWindow frame].origin.x; + } - frame.origin.y -= [parentWindow frame].origin.y - offset; - frame.origin.y -= offset; - } - [self->view setFrameSize:frame.size]; + frame.origin.y -= [parentWindow frame].origin.y - offset; + frame.origin.y -= offset; + } + [self->view setFrameSize:frame.size]; - [self->window setFrame:frame display:YES animate:false]; + [self->window setFrame:frame display:YES animate:false]; + + [self forceRender]; }; - (void)setW:(int)w H:(int)h { - NSRect frame = [self->window frame]; - frame.size.width = w; - frame.size.height = h; + NSRect frame = [self->window frame]; + frame.size.width = w; + frame.size.height = h; - self->rect = frame; + self->rect = frame; - [self->view setFrameSize:frame.size]; - [self->window setFrame:frame display:YES animate:false]; + [self->view setFrameSize:frame.size]; + [self->window setFrame:frame display:YES animate:false]; + [self forceRender]; }; - (int)pending { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - MwBool isPending = MwFALSE; - if(_forceRender) { - _forceRender = MwFALSE; - [pool release]; - return 1; - } - self->lastEvent = [self->window nextEventMatchingMask:NSAnyEventMask - untilDate:[NSDate distantPast] - inMode:NSDefaultRunLoopMode - dequeue:YES]; + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + MwBool isPending = MwFALSE; + if (_forceRender) { + _forceRender = MwFALSE; + [pool release]; + return 1; + } + self->lastEvent = [self->window nextEventMatchingMask:NSAnyEventMask + untilDate:[NSDate distantPast] + inMode:NSDefaultRunLoopMode + dequeue:YES]; - isPending = self->lastEvent != NULL; - [pool release]; - return isPending; + isPending = self->lastEvent != NULL; + [pool release]; + return isPending; }; - (void)getNextEvent { - while(true) { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - NSEvent* ev = [self->window nextEventMatchingMask:NSAnyEventMask - untilDate:[NSDate distantPast] - inMode:NSDefaultRunLoopMode - dequeue:YES]; - if(!ev) { - [pool release]; - break; - } - [self eventProcess:ev]; - [pool release]; - } + while (true) { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + NSEvent *ev = [self->window nextEventMatchingMask:NSAnyEventMask + untilDate:[NSDate distantPast] + inMode:NSDefaultRunLoopMode + dequeue:YES]; + if (!ev) { + [pool release]; + break; + } + [self eventProcess:ev]; + [pool release]; + } - [self sendClipboardEvent]; + [self sendClipboardEvent]; }; -- (void)eventProcess:(NSEvent*)ev { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - NSWindow* win = [ev window]; - MwLL h; - MwBool doSendEvent = MwTRUE; +- (void)eventProcess:(NSEvent *)ev { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + NSWindow *win = [ev window]; + MwLL h; + MwBool doSendEvent = MwTRUE; - if(!win) { - [pool release]; - return; - } + if (!win) { + [pool release]; + return; + } - if([[[win contentView] subviews] count] == 0) { - printf("no subviews on %p\n", win); - [pool release]; - return; - } else { - h = [((MilskoFakePointer*)[[[win contentView] subviews] objectAtIndex:0]) pointer]; - } + if ([[[win contentView] subviews] count] == 0) { + printf("no subviews on %p\n", win); + [pool release]; + return; + } else { + h = [((MilskoFakePointer *)[[[win contentView] subviews] + objectAtIndex:0]) pointer]; + } - switch([ev type]) { - case NSLeftMouseDown: - case NSRightMouseDown: - case NSOtherMouseDown: - case NSLeftMouseUp: - case NSRightMouseUp: - case NSOtherMouseUp: { - [self handleMouseEvent:ev ll:h]; - } - case NSLeftMouseDragged: - case NSRightMouseDragged: - case NSOtherMouseDragged: - case NSMouseMoved: { - MwPoint pos; - pos.x = [ev locationInWindow].x; - pos.y = [win contentRectForFrameRect:[win frame]].size.height - - [ev locationInWindow].y; - MwLLDispatch(h, move, &pos); - break; - } - case NSMouseEntered: - MwLLDispatch(h, focus_in, NULL); - break; - case NSMouseExited: - MwLLDispatch(h, focus_out, NULL); - break; - case NSKeyDown: - case NSKeyUp: { - [self handleKeyEvent:ev]; - doSendEvent = MwFALSE; - } - case NSCursorUpdate: - break; - case NSScrollWheel: - break; - default: - break; - }; - if(doSendEvent) { - [win sendEvent:ev]; - } + switch ([ev type]) { + case NSLeftMouseDown: + case NSRightMouseDown: + case NSOtherMouseDown: + case NSLeftMouseUp: + case NSRightMouseUp: + case NSOtherMouseUp: { + [self handleMouseEvent:ev ll:h]; + } + case NSLeftMouseDragged: + case NSRightMouseDragged: + case NSOtherMouseDragged: + case NSMouseMoved: { + MwPoint pos; + pos.x = [ev locationInWindow].x; + pos.y = [win contentRectForFrameRect:[win frame]].size.height - + [ev locationInWindow].y; + MwLLDispatch(h, move, &pos); + break; + } + case NSMouseEntered: + MwLLDispatch(h, focus_in, NULL); + break; + case NSMouseExited: + MwLLDispatch(h, focus_out, NULL); + break; + case NSKeyDown: + case NSKeyUp: { + [self handleKeyEvent:ev]; + doSendEvent = MwFALSE; + } + case NSCursorUpdate: + break; + case NSScrollWheel: + break; + default: + break; + }; + if (doSendEvent) { + [win sendEvent:ev]; + } - [pool release]; + [pool release]; } -- (void)handleMouseEvent:(NSEvent*)ev ll:(MwLL)ll { - MwLLMouse mouse; - MwBool isDown = MwTRUE; - NSPoint mousePoint = pointFlip([ev locationInWindow]); - switch([ev type]) { - case NSLeftMouseUp: - isDown = MwFALSE; - case NSLeftMouseDown: - mouse.button = MwLLMouseLeft; - break; - case NSRightMouseUp: - isDown = MwFALSE; - case NSRightMouseDown: - mouse.button = MwLLMouseRight; - break; - case NSOtherMouseUp: - isDown = MwFALSE; - case NSOtherMouseDown: - mouse.button = MwLLMouseMiddle; - break; - default: - break; - } - mouse.point.x = mousePoint.x; - mouse.point.y = mousePoint.y; +- (void)handleMouseEvent:(NSEvent *)ev ll:(MwLL)ll { + MwLLMouse mouse; + MwBool isDown = MwTRUE; + NSPoint mousePoint = pointFlip([ev locationInWindow]); + switch ([ev type]) { + case NSLeftMouseUp: + isDown = MwFALSE; + case NSLeftMouseDown: + mouse.button = MwLLMouseLeft; + break; + case NSRightMouseUp: + isDown = MwFALSE; + case NSRightMouseDown: + mouse.button = MwLLMouseRight; + break; + case NSOtherMouseUp: + isDown = MwFALSE; + case NSOtherMouseDown: + mouse.button = MwLLMouseMiddle; + break; + default: + break; + } + mouse.point.x = mousePoint.x; + mouse.point.y = mousePoint.y; - if(isDown) { - MwLLDispatch(ll, down, &mouse); - } else { - MwLLDispatch(ll, up, &mouse); - } + if (isDown) { + MwLLDispatch(ll, down, &mouse); + } else { + MwLLDispatch(ll, up, &mouse); + } } -- (void)handleKeyEvent:(NSEvent*)ev { - int ch; - MwLL this = [self->handle pointer]; - enum { - kVK_ANSI_A = 0x00, - kVK_ANSI_S = 0x01, - kVK_ANSI_D = 0x02, - kVK_ANSI_F = 0x03, - kVK_ANSI_H = 0x04, - kVK_ANSI_G = 0x05, - kVK_ANSI_Z = 0x06, - kVK_ANSI_X = 0x07, - kVK_ANSI_C = 0x08, - kVK_ANSI_V = 0x09, - kVK_ANSI_B = 0x0B, - kVK_ANSI_Q = 0x0C, - kVK_ANSI_W = 0x0D, - kVK_ANSI_E = 0x0E, - kVK_ANSI_R = 0x0F, - kVK_ANSI_Y = 0x10, - kVK_ANSI_T = 0x11, - kVK_ANSI_1 = 0x12, - kVK_ANSI_2 = 0x13, - kVK_ANSI_3 = 0x14, - kVK_ANSI_4 = 0x15, - kVK_ANSI_6 = 0x16, - kVK_ANSI_5 = 0x17, - kVK_ANSI_Equal = 0x18, - kVK_ANSI_9 = 0x19, - kVK_ANSI_7 = 0x1A, - kVK_ANSI_Minus = 0x1B, - kVK_ANSI_8 = 0x1C, - kVK_ANSI_0 = 0x1D, - kVK_ANSI_RightBracket = 0x1E, - kVK_ANSI_O = 0x1F, - kVK_ANSI_U = 0x20, - kVK_ANSI_LeftBracket = 0x21, - kVK_ANSI_I = 0x22, - kVK_ANSI_P = 0x23, - kVK_ANSI_L = 0x25, - kVK_ANSI_J = 0x26, - kVK_ANSI_Quote = 0x27, - kVK_ANSI_K = 0x28, - kVK_ANSI_Semicolon = 0x29, - kVK_ANSI_Backslash = 0x2A, - kVK_ANSI_Comma = 0x2B, - kVK_ANSI_Slash = 0x2C, - kVK_ANSI_N = 0x2D, - kVK_ANSI_M = 0x2E, - kVK_ANSI_Period = 0x2F, - kVK_ANSI_Grave = 0x32, - kVK_Return = 0x24, - kVK_Space = 0x31, - kVK_Escape = 0x35, - kVK_Shift = 0x38, - kVK_Control = 0x3B, - kVK_RightShift = 0x3C, - kVK_RightControl = 0x3E, - kVK_LeftArrow = 0x7B, - kVK_RightArrow = 0x7C, - kVK_DownArrow = 0x7D, - kVK_UpArrow = 0x7E - }; -#define KEY_CASE(x, y) \ - case x: \ - ch = y; \ - break; - switch([ev keyCode]) { - KEY_CASE(kVK_ANSI_A, 'a') - KEY_CASE(kVK_ANSI_B, 'b') - KEY_CASE(kVK_ANSI_C, 'c') - KEY_CASE(kVK_ANSI_D, 'd') - KEY_CASE(kVK_ANSI_E, 'e') - KEY_CASE(kVK_ANSI_F, 'f') - KEY_CASE(kVK_ANSI_G, 'g') - KEY_CASE(kVK_ANSI_H, 'h') - KEY_CASE(kVK_ANSI_I, 'i') - KEY_CASE(kVK_ANSI_J, 'j') - KEY_CASE(kVK_ANSI_K, 'k') - KEY_CASE(kVK_ANSI_L, 'l') - KEY_CASE(kVK_ANSI_M, 'm') - KEY_CASE(kVK_ANSI_N, 'n') - KEY_CASE(kVK_ANSI_O, 'o') - KEY_CASE(kVK_ANSI_P, 'p') - KEY_CASE(kVK_ANSI_Q, 'q') - KEY_CASE(kVK_ANSI_R, 'r') - KEY_CASE(kVK_ANSI_S, 's') - KEY_CASE(kVK_ANSI_T, 't') - KEY_CASE(kVK_ANSI_U, 'u') - KEY_CASE(kVK_ANSI_V, 'v') - KEY_CASE(kVK_ANSI_W, 'w') - KEY_CASE(kVK_ANSI_X, 'x') - KEY_CASE(kVK_ANSI_Y, 'y') - KEY_CASE(kVK_ANSI_Z, 'z') - KEY_CASE(kVK_ANSI_0, '0') - KEY_CASE(kVK_ANSI_1, '1') - KEY_CASE(kVK_ANSI_2, '2') - KEY_CASE(kVK_ANSI_3, '3') - KEY_CASE(kVK_ANSI_4, '4') - KEY_CASE(kVK_ANSI_5, '5') - KEY_CASE(kVK_ANSI_6, '6') - KEY_CASE(kVK_ANSI_7, '7') - KEY_CASE(kVK_ANSI_8, '8') - KEY_CASE(kVK_ANSI_9, '9') - KEY_CASE(kVK_ANSI_Quote, '\"') - KEY_CASE(kVK_ANSI_Grave, '`') - KEY_CASE(kVK_ANSI_Backslash, '/') - KEY_CASE(kVK_ANSI_Comma, ',') - KEY_CASE(kVK_ANSI_Equal, '=') - KEY_CASE(kVK_Escape, MwLLKeyEscape) - KEY_CASE(kVK_ANSI_LeftBracket, '[') - KEY_CASE(kVK_ANSI_Minus, '-') - KEY_CASE(kVK_ANSI_Period, '.') - KEY_CASE(kVK_Return, MwLLKeyEnter) - KEY_CASE(kVK_ANSI_RightBracket, ']') - KEY_CASE(kVK_ANSI_Semicolon, ';') - KEY_CASE(kVK_ANSI_Slash, '\\') - KEY_CASE(kVK_Space, ' ') - KEY_CASE(kVK_Control, MwLLKeyControl) - KEY_CASE(kVK_RightControl, MwLLKeyControl) - KEY_CASE(kVK_Shift, MwLLKeyLeftShift) - KEY_CASE(kVK_RightShift, MwLLKeyRightShift) - KEY_CASE(kVK_DownArrow, MwLLKeyDown) - KEY_CASE(kVK_LeftArrow, MwLLKeyLeft) - KEY_CASE(kVK_RightArrow, MwLLKeyRight) - KEY_CASE(kVK_UpArrow, MwLLKeyUp) - } - switch([ev type]) { - case NSKeyDown: - MwLLDispatch(this, key, &ch); - break; - case NSKeyUp: - MwLLDispatch(this, key_released, &ch); - break; - default: - break; - } +- (void)handleKeyEvent:(NSEvent *)ev { + int ch; + MwLL this = [self->handle pointer]; + enum { + kVK_ANSI_A = 0x00, + kVK_ANSI_S = 0x01, + kVK_ANSI_D = 0x02, + kVK_ANSI_F = 0x03, + kVK_ANSI_H = 0x04, + kVK_ANSI_G = 0x05, + kVK_ANSI_Z = 0x06, + kVK_ANSI_X = 0x07, + kVK_ANSI_C = 0x08, + kVK_ANSI_V = 0x09, + kVK_ANSI_B = 0x0B, + kVK_ANSI_Q = 0x0C, + kVK_ANSI_W = 0x0D, + kVK_ANSI_E = 0x0E, + kVK_ANSI_R = 0x0F, + kVK_ANSI_Y = 0x10, + kVK_ANSI_T = 0x11, + kVK_ANSI_1 = 0x12, + kVK_ANSI_2 = 0x13, + kVK_ANSI_3 = 0x14, + kVK_ANSI_4 = 0x15, + kVK_ANSI_6 = 0x16, + kVK_ANSI_5 = 0x17, + kVK_ANSI_Equal = 0x18, + kVK_ANSI_9 = 0x19, + kVK_ANSI_7 = 0x1A, + kVK_ANSI_Minus = 0x1B, + kVK_ANSI_8 = 0x1C, + kVK_ANSI_0 = 0x1D, + kVK_ANSI_RightBracket = 0x1E, + kVK_ANSI_O = 0x1F, + kVK_ANSI_U = 0x20, + kVK_ANSI_LeftBracket = 0x21, + kVK_ANSI_I = 0x22, + kVK_ANSI_P = 0x23, + kVK_ANSI_L = 0x25, + kVK_ANSI_J = 0x26, + kVK_ANSI_Quote = 0x27, + kVK_ANSI_K = 0x28, + kVK_ANSI_Semicolon = 0x29, + kVK_ANSI_Backslash = 0x2A, + kVK_ANSI_Comma = 0x2B, + kVK_ANSI_Slash = 0x2C, + kVK_ANSI_N = 0x2D, + kVK_ANSI_M = 0x2E, + kVK_ANSI_Period = 0x2F, + kVK_ANSI_Grave = 0x32, + kVK_Return = 0x24, + kVK_Space = 0x31, + kVK_Escape = 0x35, + kVK_Shift = 0x38, + kVK_Control = 0x3B, + kVK_RightShift = 0x3C, + kVK_RightControl = 0x3E, + kVK_LeftArrow = 0x7B, + kVK_RightArrow = 0x7C, + kVK_DownArrow = 0x7D, + kVK_UpArrow = 0x7E + }; +#define KEY_CASE(x, y) \ + case x: \ + ch = y; \ + break; + switch ([ev keyCode]) { + KEY_CASE(kVK_ANSI_A, 'a') + KEY_CASE(kVK_ANSI_B, 'b') + KEY_CASE(kVK_ANSI_C, 'c') + KEY_CASE(kVK_ANSI_D, 'd') + KEY_CASE(kVK_ANSI_E, 'e') + KEY_CASE(kVK_ANSI_F, 'f') + KEY_CASE(kVK_ANSI_G, 'g') + KEY_CASE(kVK_ANSI_H, 'h') + KEY_CASE(kVK_ANSI_I, 'i') + KEY_CASE(kVK_ANSI_J, 'j') + KEY_CASE(kVK_ANSI_K, 'k') + KEY_CASE(kVK_ANSI_L, 'l') + KEY_CASE(kVK_ANSI_M, 'm') + KEY_CASE(kVK_ANSI_N, 'n') + KEY_CASE(kVK_ANSI_O, 'o') + KEY_CASE(kVK_ANSI_P, 'p') + KEY_CASE(kVK_ANSI_Q, 'q') + KEY_CASE(kVK_ANSI_R, 'r') + KEY_CASE(kVK_ANSI_S, 's') + KEY_CASE(kVK_ANSI_T, 't') + KEY_CASE(kVK_ANSI_U, 'u') + KEY_CASE(kVK_ANSI_V, 'v') + KEY_CASE(kVK_ANSI_W, 'w') + KEY_CASE(kVK_ANSI_X, 'x') + KEY_CASE(kVK_ANSI_Y, 'y') + KEY_CASE(kVK_ANSI_Z, 'z') + KEY_CASE(kVK_ANSI_0, '0') + KEY_CASE(kVK_ANSI_1, '1') + KEY_CASE(kVK_ANSI_2, '2') + KEY_CASE(kVK_ANSI_3, '3') + KEY_CASE(kVK_ANSI_4, '4') + KEY_CASE(kVK_ANSI_5, '5') + KEY_CASE(kVK_ANSI_6, '6') + KEY_CASE(kVK_ANSI_7, '7') + KEY_CASE(kVK_ANSI_8, '8') + KEY_CASE(kVK_ANSI_9, '9') + KEY_CASE(kVK_ANSI_Quote, '\"') + KEY_CASE(kVK_ANSI_Grave, '`') + KEY_CASE(kVK_ANSI_Backslash, '/') + KEY_CASE(kVK_ANSI_Comma, ',') + KEY_CASE(kVK_ANSI_Equal, '=') + KEY_CASE(kVK_Escape, MwLLKeyEscape) + KEY_CASE(kVK_ANSI_LeftBracket, '[') + KEY_CASE(kVK_ANSI_Minus, '-') + KEY_CASE(kVK_ANSI_Period, '.') + KEY_CASE(kVK_Return, MwLLKeyEnter) + KEY_CASE(kVK_ANSI_RightBracket, ']') + KEY_CASE(kVK_ANSI_Semicolon, ';') + KEY_CASE(kVK_ANSI_Slash, '\\') + KEY_CASE(kVK_Space, ' ') + KEY_CASE(kVK_Control, MwLLKeyControl) + KEY_CASE(kVK_RightControl, MwLLKeyControl) + KEY_CASE(kVK_Shift, MwLLKeyLeftShift) + KEY_CASE(kVK_RightShift, MwLLKeyRightShift) + KEY_CASE(kVK_DownArrow, MwLLKeyDown) + KEY_CASE(kVK_LeftArrow, MwLLKeyLeft) + KEY_CASE(kVK_RightArrow, MwLLKeyRight) + KEY_CASE(kVK_UpArrow, MwLLKeyUp) + } + switch ([ev type]) { + case NSKeyDown: + MwLLDispatch(this, key, &ch); + break; + case NSKeyUp: + MwLLDispatch(this, key_released, &ch); + break; + default: + break; + } } - (void)sendClipboardEvent { - /*NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; - NSArray* items = @[ - @"public.utf8-plain-text", - @"public.utf16-external-plain-text", - @"com.apple.traditional-mac-plain-text", - ]; - MwLL this = self->handle.pointer; + /*NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; + NSArray* items = @[ + @"public.utf8-plain-text", + @"public.utf16-external-plain-text", + @"com.apple.traditional-mac-plain-text", + ]; + MwLL this = self->handle.pointer; - if([pasteboard canReadItemWithDataConformingToTypes:items]) { - char* data = NULL; - size_t size = 0; - for(NSPasteboardItem* item in [pasteboard pasteboardItems]) { - for(NSString* it in items) { - NSString* itemData = [item stringForType:(NSString*)it]; - if(itemData != NULL) { - if(strHash != 0 && strHash != [itemData hash]) { - char* text = malloc([itemData length]); - strncpy(text, [itemData UTF8String], [itemData length]); - MwLLDispatch(this, clipboard, text); - printf("%s -> %p\n", text, this); - free(text); - } - strHash = [itemData hash]; - } - } - } - } + if([pasteboard canReadItemWithDataConformingToTypes:items]) { + char* data = NULL; + size_t size = 0; + for(NSPasteboardItem* item in [pasteboard pasteboardItems]) { + for(NSString* it in items) { + NSString* itemData = [item + stringForType:(NSString*)it]; if(itemData != NULL) { if(strHash != 0 && + strHash != [itemData hash]) { char* text = malloc([itemData length]); + strncpy(text, [itemData UTF8String], + [itemData length]); MwLLDispatch(this, clipboard, text); printf("%s -> %p\n", + text, this); free(text); + } + strHash = [itemData hash]; + } + } + } + } - [pool release];*/ + [pool release];*/ } -- (void)setTitle:(const char*)title { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - [self->window - setTitleWithRepresentedFilename:[NSString stringWithUTF8String:title]]; - [pool release]; +- (void)setTitle:(const char *)title { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + [self->window + setTitleWithRepresentedFilename:[NSString stringWithUTF8String:title]]; + [pool release]; }; -- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect*)_rect { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - MilskoCocoaPixmap* p = pixmap->cocoa.real; - NSGraphicsContext* ctx = [self->view context]; - if(ctx) { - [NSGraphicsContext saveGraphicsState]; - [NSGraphicsContext setCurrentContext:ctx]; +- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect *)_rect { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + MilskoCocoaPixmap *p = pixmap->cocoa.real; + NSGraphicsContext *ctx = [self->view context]; + if (ctx) { + [NSGraphicsContext saveGraphicsState]; + [NSGraphicsContext setCurrentContext:ctx]; - [[p image] drawInRect:NSMakeRect(_rect->x, _rect->y, _rect->width, - _rect->height) - fromRect:NSZeroRect - operation:NSCompositeSourceOver - fraction:1.0]; + [[p image] + drawInRect:NSMakeRect(_rect->x, _rect->y, _rect->width, _rect->height) + fromRect:NSZeroRect + operation:NSCompositeSourceOver + fraction:1.0]; - [NSGraphicsContext restoreGraphicsState]; + [NSGraphicsContext restoreGraphicsState]; - [self->view setNeedsDisplay:YES]; - } - [pool release]; + [self->view setNeedsDisplay:YES]; + } + [pool release]; }; - (void)setIcon:(MwLLPixmap)pixmap { - (void)pixmap; + (void)pixmap; }; - (void)forceRender { - _forceRender = MwTRUE; + NSEvent *event = [NSEvent otherEventWithType:NSEventTypeApplicationDefined + location:NSMakePoint(0, 0) + modifierFlags:0 + timestamp:0 + windowNumber:0 + context:nil + subtype:0 + data1:0 + data2:0]; + [NSApp postEvent:event atStart:YES]; }; -- (void)setCursor:(MwCursor*)image mask:(MwCursor*)mask { - (void)image; - (void)mask; +- (void)setCursor:(MwCursor *)image mask:(MwCursor *)mask { + (void)image; + (void)mask; }; -- (void)detachWithPoint:(MwPoint*)point { - (void)point; +- (void)detachWithPoint:(MwPoint *)point { + (void)point; }; - (void)show:(int)show { - (void)show; + (void)show; }; - (void)makePopupWithParent:(MwLL)_parent { - (void)_parent; + (void)_parent; }; - (void)setSizeHintsWithMinX:(int)minx - MinY:(int)miny - MaxX:(int)maxx - MaxY:(int)maxy { - (void)minx; - (void)miny; - (void)maxx; - (void)maxy; + MinY:(int)miny + MaxX:(int)maxx + MaxY:(int)maxy { + (void)minx; + (void)miny; + (void)maxx; + (void)maxy; }; - (void)makeBorderless:(int)toggle { - MwU32 mask = [self->window styleMask]; - if(toggle) { - mask ^= NSBorderlessWindowMask; - mask |= NSTitledWindowMask; - } else { - mask |= NSBorderlessWindowMask; - mask ^= NSTitledWindowMask; - } - [self->window initWithContentRect:self->rect - styleMask:mask - backing:NSBackingStoreBuffered - defer:NO]; + MwU32 mask = [self->window styleMask]; + if (toggle) { + mask ^= NSBorderlessWindowMask; + mask |= NSTitledWindowMask; + } else { + mask |= NSBorderlessWindowMask; + mask ^= NSTitledWindowMask; + } + [self->window initWithContentRect:self->rect + styleMask:mask + backing:NSBackingStoreBuffered + defer:NO]; }; - (void)focus { - [self->window makeMainWindow]; + [self->window makeMainWindow]; }; - (void)grabPointer:(int)toggle { - (void)toggle; - /* MacOS didn't have a "pointer grab" function - * until 10.13.2 so I need to do this manually */ + (void)toggle; + /* MacOS didn't have a "pointer grab" function + * until 10.13.2 so I need to do this manually */ }; -- (void)setClipboard:(const char*)text { - (void)text; - // TODO: find out how to do this while supporting 10.4 - // NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - // NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; - // [pasteboard declareTypes:[NSArray arrayWithObjects:NSPasteboardTypeString] owner:nil]; - // [pasteboard setString:[NSString stringWithUTF8String:text] forType:NSPasteboardTypeString]; - // [pool release]; +- (void)setClipboard:(const char *)text { + (void)text; + // TODO: find out how to do this while supporting 10.4 + // NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + // NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; + // [pasteboard declareTypes:[NSArray arrayWithObjects:NSPasteboardTypeString] + // owner:nil]; [pasteboard setString:[NSString stringWithUTF8String:text] + // forType:NSPasteboardTypeString]; [pool release]; }; - (void)getClipboard { }; - (void)makeToolWindow { }; -- (void)getCursorCoord:(MwPoint*)point { - NSPoint p = [NSEvent mouseLocation]; - point->x = p.x; - point->y = p.y; +- (void)getCursorCoord:(MwPoint *)point { + NSPoint p = [NSEvent mouseLocation]; + point->x = p.x; + point->y = p.y; }; -- (void)getScreenSize:(MwRect*)_rect { - NSScreen* screen = [self->window screen]; - _rect->x = [screen frame].origin.x; - _rect->y = [screen frame].origin.y; - _rect->width = [screen frame].size.width; - _rect->height = [screen frame].size.height; +- (void)getScreenSize:(MwRect *)_rect { + NSScreen *screen = [self->window screen]; + _rect->x = [screen frame].origin.x; + _rect->y = [screen frame].origin.y; + _rect->width = [screen frame].size.width; + _rect->height = [screen frame].size.height; }; - (void)destroy { - if(self->lastEvent) { - [self->lastEvent release]; - [self->lastEvent dealloc]; - } - [self->handle release]; - [self->handle dealloc]; - [self->window release]; - [self->window dealloc]; + if (self->lastEvent) { + [self->lastEvent release]; + [self->lastEvent dealloc]; + } + [self->handle release]; + [self->handle dealloc]; + [self->window release]; + [self->window dealloc]; } -- (NSWindow*)parentWindow { - NSWindow* topmostWindow = self->window; - while([topmostWindow parentWindow]) - topmostWindow = [topmostWindow parentWindow]; - return topmostWindow; +- (NSWindow *)parentWindow { + NSWindow *topmostWindow = self->window; + while ([topmostWindow parentWindow]) + topmostWindow = [topmostWindow parentWindow]; + return topmostWindow; } -- (NSView*)getView { - return view; +- (NSView *)getView { + return view; } -- (NSWindow*)getWindow { - return window; +- (NSWindow *)getWindow { + return window; } -- (MilskoFakePointer*)getHandle { - return handle; +- (MilskoFakePointer *)getHandle { + return handle; } @end @implementation MilskoCocoaView - (id)initWithFrame:(NSRect)frame { - width = frame.size.width; - height = frame.size.height; - self = [super initWithFrame:frame]; - self->space = CGColorSpaceCreateDeviceRGB(); + width = frame.size.width; + height = frame.size.height; + self = [super initWithFrame:frame]; + self->space = CGColorSpaceCreateDeviceRGB(); - if(width == 0 || height == 0) { - self->rep = NULL; - self->context = NULL; - } else { - self->rep = - [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL - pixelsWide:width - pixelsHigh:height - bitsPerSample:8 - samplesPerPixel:4 - hasAlpha:YES - isPlanar:NO - colorSpaceName:NSDeviceRGBColorSpace - bytesPerRow:width * 4 - bitsPerPixel:32]; - assert(self->rep); - [self->rep retain]; + if (width == 0 || height == 0) { + self->rep = NULL; + self->context = NULL; + } else { + self->rep = + [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL + pixelsWide:width + pixelsHigh:height + bitsPerSample:8 + samplesPerPixel:4 + hasAlpha:YES + isPlanar:NO + colorSpaceName:NSDeviceRGBColorSpace + bytesPerRow:width * 4 + bitsPerPixel:32]; + assert(self->rep); + [self->rep retain]; - self->context = - [NSGraphicsContext graphicsContextWithBitmapImageRep:self->rep]; - assert(self->context); - [self->context retain]; - } + self->context = + [NSGraphicsContext graphicsContextWithBitmapImageRep:self->rep]; + assert(self->context); + [self->context retain]; + } - return self; + return self; } -- (NSGraphicsContext*)context { - return self->context; +- (NSGraphicsContext *)context { + return self->context; } -- (NSBitmapImageRep*)getRep { - return self->rep; +- (NSBitmapImageRep *)getRep { + return self->rep; } - (void)drawRect:(NSRect)dirtyRect { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - NSSize sz = [self->rep size]; - [super drawRect:dirtyRect]; - if(!self->rep) { - [pool release]; - return; - } + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + NSSize sz = [self->rep size]; + [super drawRect:dirtyRect]; + if (!self->rep) { + [pool release]; + return; + } - [self->rep drawInRect:NSMakeRect(0, 0, sz.width, sz.height)]; + [self->rep drawInRect:NSMakeRect(0, 0, sz.width, sz.height)]; - [self->rep bitmapData]; - [pool release]; + [self->rep bitmapData]; + [pool release]; } - (void)destroy { - CGColorSpaceRelease(self->space); - [self->rep release]; - [self->context release]; + CGColorSpaceRelease(self->space); + [self->rep release]; + [self->context release]; } - (void)setFrameSize:(NSSize)newSize { - [super setFrameSize:newSize]; - [self->rep setSize:newSize]; + [super setFrameSize:newSize]; + [self->rep setSize:newSize]; - self->width = newSize.width; - self->height = newSize.height; + self->width = newSize.width; + self->height = newSize.height; } - (void)displayRect:(NSRect)rect { - (void)rect; + (void)rect; }; @end +@implementation MilskoCocoaApplicationDelegate +- (MilskoCocoaApplicationDelegate *)initWithAppl:(NSApplication *)_appl { + self->appl = _appl; + return self; +} +- (void)applicationDidFinishLaunching:(NSNotification *)notification { + [self->appl activateIgnoringOtherApps:MwTRUE]; +} +@end + @implementation MilskoCocoaWindowDelegate -- (NSSize)windowWillResize:(NSWindow*)win toSize:(NSSize)frameSize; +- (NSSize)windowWillResize:(NSWindow *)win toSize:(NSSize)frameSize; { - if([[[win contentView] subviews] count] >= 1) { - MilskoFakePointer* ptr = [[[win contentView] subviews] objectAtIndex:0]; - MwLL h = [ptr pointer]; + if ([[[win contentView] subviews] count] >= 1) { + MilskoFakePointer *ptr = [[[win contentView] subviews] objectAtIndex:0]; + MwLL h = [ptr pointer]; - // MwLLDispatch(h, resize, NULL); - MwLLDispatch(h, draw, NULL); - } - return frameSize; + // MwLLDispatch(h, resize, NULL); + MwLLDispatch(h, draw, NULL); + } + return frameSize; } -- (void)windowDidResize:(NSNotification*)notification { - (void)notification; +- (void)windowDidResize:(NSNotification *)notification { + (void)notification; } // This will close/terminate the application when the main window is closed. -- (void)windowWillClose:(NSNotification*)notification { - (void)notification; - // MilskoCocoa *window = notification.object; - // MwLL handle = [window getHandle].pointer; - // MwLLDispatch(handle, close, NULL); - [NSApp terminate:nil]; +- (void)windowWillClose:(NSNotification *)notification { + (void)notification; + // MilskoCocoa *window = notification.object; + // MwLL handle = [window getHandle].pointer; + // MwLLDispatch(handle, close, NULL); + [NSApp terminate:nil]; } -- (MilskoCocoaWindowDelegate*)initWithWin:(NSWindow*)win { - self->w = win; - return self; +- (MilskoCocoaWindowDelegate *)initWithWin:(NSWindow *)win { + self->w = win; + return self; } @end @implementation MilskoFakePointer -- (void)setPointer:(void*)pointer { - [self setFrame:*(NSRect*)&pointer]; - self->ptr = pointer; +- (void)setPointer:(void *)pointer { + [self setFrame:*(NSRect *)&pointer]; + self->ptr = pointer; }; -- (void*)pointer { - return self->ptr; +- (void *)pointer { + return self->ptr; }; - (void)drawRect:(NSRect)dirtyRect { - /* explicitly do nothing */ - (void)dirtyRect; + /* explicitly do nothing */ + (void)dirtyRect; } - (void)destroy { @@ -802,233 +833,219 @@ static NSPoint pointFlip(NSPoint point) { @end static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { - MwLL r; - (void)x; - (void)y; - (void)width; - (void)height; + MwLL r; + (void)x; + (void)y; + (void)width; + (void)height; - r = malloc(sizeof(*r)); + r = malloc(sizeof(*r)); - MwLLCreateCommon(r); + MwLLCreateCommon(r); - MilskoCocoa* o = [MilskoCocoa newWithParent:parent - x:x - y:y - width:width - height:height - handle:r]; - r->cocoa.real = o; + MilskoCocoa *o = [MilskoCocoa newWithParent:parent + x:x + y:y + width:width + height:height + handle:r]; + r->cocoa.real = o; - return r; + return r; } static void MwLLDestroyImpl(MwLL handle) { - MilskoCocoa* h = handle->cocoa.real; + MilskoCocoa *h = handle->cocoa.real; - [h destroy]; + [h destroy]; - MwLLDestroyCommon(handle); + MwLLDestroyCommon(handle); - free(handle); + free(handle); } -static void MwLLBeginDrawImpl(MwLL handle) { - (void)handle; +static void MwLLBeginDrawImpl(MwLL handle) { (void)handle; } + +static void MwLLEndDrawImpl(MwLL handle) { (void)handle; } + +static void MwLLPolygonImpl(MwLL handle, MwPoint *points, int points_count, + MwLLColor color) { + MilskoCocoa *h = handle->cocoa.real; + [h polygonWithPoints:points points_count:points_count color:color]; } -static void MwLLEndDrawImpl(MwLL handle) { - (void)handle; -} - -static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, - MwLLColor color) { - MilskoCocoa* h = handle->cocoa.real; - [h polygonWithPoints:points points_count:points_count color:color]; -} - -static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { - MilskoCocoa* h = handle->cocoa.real; - [h lineWithPoints:points color:color]; +static void MwLLLineImpl(MwLL handle, MwPoint *points, MwLLColor color) { + MilskoCocoa *h = handle->cocoa.real; + [h lineWithPoints:points color:color]; } static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { - MwLLColor c = malloc(sizeof(*c)); - MwLLColorUpdate(handle, c, r, g, b); - return c; + MwLLColor c = malloc(sizeof(*c)); + MwLLColorUpdate(handle, c, r, g, b); + return c; } static void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { - (void)handle; + (void)handle; - c->common.red = r; - c->common.green = g; - c->common.blue = b; + c->common.red = r; + c->common.green = g; + c->common.blue = b; } -static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, - unsigned int* height) { - MilskoCocoa* h = handle->cocoa.real; - [h getX:x Y:y W:w H:height]; +static void MwLLGetXYWHImpl(MwLL handle, int *x, int *y, unsigned int *w, + unsigned int *height) { + MilskoCocoa *h = handle->cocoa.real; + [h getX:x Y:y W:w H:height]; } static void MwLLSetXYImpl(MwLL handle, int x, int y) { - MilskoCocoa* h = handle->cocoa.real; - [h setX:x Y:y]; + MilskoCocoa *h = handle->cocoa.real; + [h setX:x Y:y]; } static void MwLLSetWHImpl(MwLL handle, int w, int height) { - MilskoCocoa* h = handle->cocoa.real; - [h setW:w H:height]; + MilskoCocoa *h = handle->cocoa.real; + [h setW:w H:height]; } -static void MwLLFreeColorImpl(MwLLColor color) { - free(color); -} +static void MwLLFreeColorImpl(MwLLColor color) { free(color); } static int MwLLPendingImpl(MwLL handle) { - MilskoCocoa* h = handle->cocoa.real; - if([h pending]) { - MwLLDispatch(handle, draw, NULL); - return 1; - }; - return 0; + MilskoCocoa *h = handle->cocoa.real; + if ([h pending]) { + MwLLDispatch(handle, draw, NULL); + return 1; + }; + return 0; } static void MwLLNextEventImpl(MwLL handle) { - MilskoCocoa* h = handle->cocoa.real; - [h getNextEvent]; + MilskoCocoa *h = handle->cocoa.real; + [h getNextEvent]; } -static void MwLLSetTitleImpl(MwLL handle, const char* title) { - MilskoCocoa* h = handle->cocoa.real; - [h setTitle:title]; +static void MwLLSetTitleImpl(MwLL handle, const char *title) { + MilskoCocoa *h = handle->cocoa.real; + [h setTitle:title]; } -static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, - int width, int height) { - (void)handle; +static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char *data, + int width, int height) { + (void)handle; - MwLLPixmap r = malloc(sizeof(*r)); + MwLLPixmap r = malloc(sizeof(*r)); - r->common.raw = malloc(4 * width * height); - memcpy(r->common.raw, data, 4 * width * height); + r->common.raw = malloc(4 * width * height); + memcpy(r->common.raw, data, 4 * width * height); - r->common.width = width; - r->common.height = height; + r->common.width = width; + r->common.height = height; - r->cocoa.real = [MilskoCocoaPixmap newWithWidth:width height:height]; + r->cocoa.real = [MilskoCocoaPixmap newWithWidth:width height:height]; - MwLLPixmapUpdate(r); - free(r->common.raw); - return r; + MwLLPixmapUpdate(r); + free(r->common.raw); + return r; } static void MwLLPixmapUpdateImpl(MwLLPixmap pixmap) { - MilskoCocoaPixmap* p = pixmap->cocoa.real; - [p updateWithData:pixmap->common.raw]; + MilskoCocoaPixmap *p = pixmap->cocoa.real; + [p updateWithData:pixmap->common.raw]; } static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { - MilskoCocoaPixmap* p = pixmap->cocoa.real; - [p destroy]; - [p dealloc]; - free(pixmap); + MilskoCocoaPixmap *p = pixmap->cocoa.real; + [p destroy]; + [p dealloc]; + free(pixmap); } -static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { - MilskoCocoa* h = handle->cocoa.real; - [h drawPixmap:pixmap rect:rect]; - MwLLForceRender(handle); +static void MwLLDrawPixmapImpl(MwLL handle, MwRect *rect, MwLLPixmap pixmap) { + MilskoCocoa *h = handle->cocoa.real; + [h drawPixmap:pixmap rect:rect]; + MwLLForceRender(handle); } static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { - MilskoCocoa* h = handle->cocoa.real; - [h setIcon:pixmap]; + MilskoCocoa *h = handle->cocoa.real; + [h setIcon:pixmap]; } static void MwLLForceRenderImpl(MwLL handle) { - MilskoCocoa* h = handle->cocoa.real; - [h forceRender]; + MilskoCocoa *h = handle->cocoa.real; + [h forceRender]; } -static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { - MilskoCocoa* h = handle->cocoa.real; - [h setCursor:image mask:mask]; +static void MwLLSetCursorImpl(MwLL handle, MwCursor *image, MwCursor *mask) { + MilskoCocoa *h = handle->cocoa.real; + [h setCursor:image mask:mask]; } -static void MwLLDetachImpl(MwLL handle, MwPoint* point) { - MilskoCocoa* h = handle->cocoa.real; - [h detachWithPoint:point]; +static void MwLLDetachImpl(MwLL handle, MwPoint *point) { + MilskoCocoa *h = handle->cocoa.real; + [h detachWithPoint:point]; } static void MwLLShowImpl(MwLL handle, int show) { - MilskoCocoa* h = handle->cocoa.real; - [h show:show]; + MilskoCocoa *h = handle->cocoa.real; + [h show:show]; } static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { - MilskoCocoa* h = handle->cocoa.real; - [h makePopupWithParent:parent]; + MilskoCocoa *h = handle->cocoa.real; + [h makePopupWithParent:parent]; } static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, - int maxy) { - MilskoCocoa* h = handle->cocoa.real; - [h setSizeHintsWithMinX:minx MinY:miny MaxX:maxx MaxY:maxy]; + int maxy) { + MilskoCocoa *h = handle->cocoa.real; + [h setSizeHintsWithMinX:minx MinY:miny MaxX:maxx MaxY:maxy]; } static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { - MilskoCocoa* h = handle->cocoa.real; - [h makeBorderless:toggle]; + MilskoCocoa *h = handle->cocoa.real; + [h makeBorderless:toggle]; } static void MwLLFocusImpl(MwLL handle) { - MilskoCocoa* h = handle->cocoa.real; - [h focus]; + MilskoCocoa *h = handle->cocoa.real; + [h focus]; } static void MwLLGrabPointerImpl(MwLL handle, int toggle) { - MilskoCocoa* h = handle->cocoa.real; - [h grabPointer:toggle]; + MilskoCocoa *h = handle->cocoa.real; + [h grabPointer:toggle]; } -static void MwLLSetClipboardImpl(MwLL handle, const char* text) { - MilskoCocoa* h = handle->cocoa.real; - [h setClipboard:text]; +static void MwLLSetClipboardImpl(MwLL handle, const char *text) { + MilskoCocoa *h = handle->cocoa.real; + [h setClipboard:text]; } -static void MwLLGetClipboardImpl(MwLL handle) { - (void)handle; -} +static void MwLLGetClipboardImpl(MwLL handle) { (void)handle; } static void MwLLMakeToolWindowImpl(MwLL handle) { - MilskoCocoa* h = handle->cocoa.real; - [h makeToolWindow]; + MilskoCocoa *h = handle->cocoa.real; + [h makeToolWindow]; } -static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { - MilskoCocoa* h = handle->cocoa.real; - [h getCursorCoord:point]; +static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint *point) { + MilskoCocoa *h = handle->cocoa.real; + [h getCursorCoord:point]; } -static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { - MilskoCocoa* h = handle->cocoa.real; - [h getScreenSize:rect]; +static void MwLLGetScreenSizeImpl(MwLL handle, MwRect *rect) { + MilskoCocoa *h = handle->cocoa.real; + [h getScreenSize:rect]; } -static void MwLLBeginStateChangeImpl(MwLL handle) { - MwLLShow(handle, 0); -} +static void MwLLBeginStateChangeImpl(MwLL handle) { MwLLShow(handle, 0); } -static void MwLLEndStateChangeImpl(MwLL handle) { - MwLLShow(handle, 1); -} +static void MwLLEndStateChangeImpl(MwLL handle) { MwLLShow(handle, 1); } -static int MwLLCocoaCallInitImpl(void) { - return 0; -} +static int MwLLCocoaCallInitImpl(void) { return 0; } #include "call.c" CALL(Cocoa); From 75c9af91d1848d835f6fd870bb6386ab79f870e8 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 8 Mar 2026 19:15:17 -0700 Subject: [PATCH 183/836] mac: try and fix positioning for child windows --- include/Mw/LowLevel/Cocoa.h | 2 +- src/backend/cocoa.m | 70 ++++++++++++++++++++++--------------- 2 files changed, 43 insertions(+), 29 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 2789af904..dc81195e4 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -22,7 +22,7 @@ #endif // Note: implements NSApplicationDelegate -@interface MilskoCocoaApplicationDelegate : NSObject { +@interface MilskoCocoaApplicationDelegate : NSObject { NSApplication *appl; } - (MilskoCocoaApplicationDelegate *)initWithAppl:(NSApplication *)appl; diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 7f07ffbf4..3e30503ef 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1,5 +1,7 @@ #include "Mw/BaseTypes.h" +#include #include +#include #include #ifdef __clang__ @@ -102,24 +104,23 @@ static NSPoint pointFlip(NSPoint point) { backing:NSBackingStoreBuffered defer:NO]; } else { - double offset = 0; - NSWindow *parentWindow = parent->cocoa.real->window; - offset = - [parentWindow frameRectForContentRect:[parentWindow frame]] - .size.height - - [parentWindow contentRectForFrameRect:[parentWindow frame]].size.height; + double offset = 0; + NSWindow* parentWindow = parent->cocoa.real->window; + offset = + [parentWindow frameRectForContentRect:[parentWindow frame]].size.height - + [parentWindow contentRectForFrameRect:[parentWindow frame]].size.height; - c->rect.origin.x += [parentWindow frame].origin.x; - c->rect.origin.y -= [parentWindow frame].origin.y - offset; - c->rect.origin.y -= offset; + c->rect.origin.x += [parentWindow frame].origin.x; + c->rect.origin.y -= [parentWindow frame].origin.y - offset; + c->rect.origin.y -= offset; - c->window = [[NSWindow alloc] initWithContentRect:c->rect - styleMask:NSBorderlessWindowMask - backing:NSBackingStoreBuffered - defer:NO]; + c->window = [[NSWindow alloc] initWithContentRect:c->rect + styleMask:NSBorderlessWindowMask + backing:NSBackingStoreBuffered + defer:NO]; } [c->window - setDelegate:(id)[[MilskoCocoaWindowDelegate alloc] + setDelegate:[[MilskoCocoaWindowDelegate alloc] initWithWin:c->window]]; [c->window makeKeyAndOrderFront:c->application]; @@ -127,8 +128,17 @@ static NSPoint pointFlip(NSPoint point) { if (parent != NULL) { MilskoCocoa *p = parent->cocoa.real; + double offset = 0; + offset = + [p->window frameRectForContentRect:[p->window frame]].size.height - + [p->window contentRectForFrameRect:[p->window frame]].size.height; [p->window addChildWindow:c->window ordered:NSWindowAbove]; [c->window setHasShadow:MwFALSE]; + [c->window setParentWindow:p->window]; + + c->rect.origin.x += [p->window frame].origin.x; + c->rect.origin.y -= [p->window frame].origin.y - offset; + c->rect.origin.y -= offset; } else { [c->application activateIgnoringOtherApps:true]; [c->window makeFirstResponder:c->view]; @@ -202,6 +212,11 @@ static NSPoint pointFlip(NSPoint point) { NSRect frame = rectFlip([self->window frame]); frame = rectFlip(frame); + if(parent) { + frame.origin.x -= [parent->cocoa.real->window frame].origin.x; + frame.origin.y += [parent->cocoa.real->window frame].origin.y; + } + *x = frame.origin.x; *y = frame.origin.y; @@ -216,24 +231,21 @@ static NSPoint pointFlip(NSPoint point) { frame = rectFlip(frame); - if (parent) { - double offset = 0; - NSWindow *parentWindow = parent->cocoa.real->window; - offset = - [parentWindow frameRectForContentRect:[parentWindow frame]] - .size.height - - [parentWindow contentRectForFrameRect:[parentWindow frame]].size.height; - - if (x < [parentWindow frame].origin.x) { - frame.origin.x += [parentWindow frame].origin.x; - } + if(parent) { + double offset = 0; + NSWindow* parentWindow = parent->cocoa.real->window; + offset = + [parentWindow frameRectForContentRect:[parentWindow frame]].size.height - + [parentWindow contentRectForFrameRect:[parentWindow frame]].size.height; + frame.origin.x += [parentWindow frame].origin.x; frame.origin.y -= [parentWindow frame].origin.y - offset; frame.origin.y -= offset; - } + } + [self->view setFrameSize:frame.size]; - [self->window setFrame:frame display:YES animate:false]; + [self->window setFrameOrigin:frame.origin]; [self forceRender]; }; @@ -583,7 +595,8 @@ static NSPoint pointFlip(NSPoint point) { (void)pixmap; }; - (void)forceRender { - NSEvent *event = [NSEvent otherEventWithType:NSEventTypeApplicationDefined + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + NSEvent *event = [NSEvent otherEventWithType:NSApplicationDefined location:NSMakePoint(0, 0) modifierFlags:0 timestamp:0 @@ -593,6 +606,7 @@ static NSPoint pointFlip(NSPoint point) { data1:0 data2:0]; [NSApp postEvent:event atStart:YES]; + [pool release]; }; - (void)setCursor:(MwCursor *)image mask:(MwCursor *)mask { (void)image; From 21d5625ec70fc4a76376b9727c13ee1f0c8bca4f Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Sun, 8 Mar 2026 20:03:47 -0700 Subject: [PATCH 184/836] fix forceRender, at the cost of breaking the rotate example --- src/backend/cocoa.m | 28 +++++++++++++++------------- src/widget/opengl_cocoa.m | 25 ++++++++----------------- 2 files changed, 23 insertions(+), 30 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 3e30503ef..169cb1cc2 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -140,6 +140,7 @@ static NSPoint pointFlip(NSPoint point) { c->rect.origin.y -= [p->window frame].origin.y - offset; c->rect.origin.y -= offset; } else { + [c->application setActivationPolicy:NSApplicationActivationPolicyRegular]; [c->application activateIgnoringOtherApps:true]; [c->window makeFirstResponder:c->view]; } @@ -279,7 +280,7 @@ static NSPoint pointFlip(NSPoint point) { }; - (void)getNextEvent { - + [self eventProcess:self->lastEvent]; while (true) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSEvent *ev = [self->window nextEventMatchingMask:NSAnyEventMask @@ -595,18 +596,19 @@ static NSPoint pointFlip(NSPoint point) { (void)pixmap; }; - (void)forceRender { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSEvent *event = [NSEvent otherEventWithType:NSApplicationDefined - location:NSMakePoint(0, 0) - modifierFlags:0 - timestamp:0 - windowNumber:0 - context:nil - subtype:0 - data1:0 - data2:0]; - [NSApp postEvent:event atStart:YES]; - [pool release]; + self->_forceRender = MwTRUE; + // NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + // NSEvent *event = [NSEvent otherEventWithType:NSApplicationDefined + // location:NSMakePoint(0, 0) + // modifierFlags:0 + // timestamp:0 + // windowNumber:0 + // context:nil + // subtype:0 + // data1:0 + // data2:0]; + // [NSApp postEvent:event atStart:YES]; + // [pool release]; }; - (void)setCursor:(MwCursor *)image mask:(MwCursor *)mask { (void)image; diff --git a/src/widget/opengl_cocoa.m b/src/widget/opengl_cocoa.m index c33e3754d..15c1198de 100644 --- a/src/widget/opengl_cocoa.m +++ b/src/widget/opengl_cocoa.m @@ -1,5 +1,6 @@ #include "Mw/BaseTypes.h" #include "Mw/Core.h" +#include "Mw/LowLevel/Cocoa.h" #include "Mw/StringDefs.h" #include #include @@ -8,9 +9,10 @@ @interface MacOpenGLWidget : NSObject { NSOpenGLPixelFormat *pixelFormat; NSOpenGLContext *glc; + MilskoCocoa * _win; } -- (MacOpenGLWidget *)initWithView:(NSView *)view; +- (MacOpenGLWidget *)initWithWindow:(MilskoCocoa *)w; - (void)destroy; - (void)makeCurrent; - (void)swapBuffer; @@ -30,7 +32,7 @@ static int create(MwWidget handle) { printf("%d %d\n", width, height); handle->internal = [[MacOpenGLWidget alloc] - initWithView:[handle->lowlevel->cocoa.real getView]]; + initWithWindow:handle->lowlevel->cocoa.real]; handle->lowlevel->common.copy_buffer = 0; MwSetDefault(handle); @@ -75,7 +77,7 @@ static void func_handler(MwWidget handle, const char *name, void *out, @implementation MacOpenGLWidget -- (MacOpenGLWidget *)initWithView:(NSView *)view { +- (MacOpenGLWidget *)initWithWindow:(MilskoCocoa *)w { NSOpenGLPixelFormatAttribute pixelFormatAttributes[] = { NSOpenGLPFAColorSize, 24, NSOpenGLPFAStencilSize, 8, @@ -86,7 +88,8 @@ static void func_handler(MwWidget handle, const char *name, void *out, [[NSOpenGLPixelFormat alloc] initWithAttributes:pixelFormatAttributes]; self->glc = [[NSOpenGLContext alloc] initWithFormat:pixelFormat shareContext:nil]; - [self->glc setView:view]; + [self->glc setView:[w getView]]; + self->_win = w; return self; }; - (void)destroy { @@ -95,19 +98,7 @@ static void func_handler(MwWidget handle, const char *name, void *out, [self->glc makeCurrentContext]; }; - (void)swapBuffer { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSEvent *event = [NSEvent otherEventWithType:NSEventTypeApplicationDefined - location:NSMakePoint(0, 0) - modifierFlags:0 - timestamp:0 - windowNumber:0 - context:nil - subtype:0 - data1:0 - data2:0]; - [NSApp postEvent:event atStart:YES]; - [pool release]; - + [self->_win forceRender]; [self->glc flushBuffer]; }; - (void *)getProcAddressWithName:(const char *)name { From 9eda46d981eb5d3362c6577bf3b073940eb7d48b Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Sun, 8 Mar 2026 23:38:57 -0500 Subject: [PATCH 185/836] mac: remove accidental includes --- src/backend/cocoa.m | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 169cb1cc2..6ab2272ca 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1,8 +1,4 @@ -#include "Mw/BaseTypes.h" -#include #include -#include -#include #ifdef __clang__ #pragma clang push From 65afd85439d95e9819867e2f37e8cfb42fcab5df Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Mon, 9 Mar 2026 14:01:54 -0700 Subject: [PATCH 186/836] mac: most window functions now implemented (save for makeToolWindow) --- include/Mw/LowLevel/Cocoa.h | 17 ++-- src/backend/cocoa.m | 164 +++++++++++++++++++++++++++--------- 2 files changed, 134 insertions(+), 47 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index dc81195e4..865d774c7 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -28,11 +28,15 @@ - (MilskoCocoaApplicationDelegate *)initWithAppl:(NSApplication *)appl; @end +@interface MilskoCocoaWindow : NSWindow { +} +@end + // Note: implements NSWindowDelegate @interface MilskoCocoaWindowDelegate : NSObject { - NSWindow *w; + MilskoCocoaWindow *w; } -- (MilskoCocoaWindowDelegate *)initWithWin:(NSWindow *)win; +- (MilskoCocoaWindowDelegate *)initWithWin:(MilskoCocoaWindow *)win; @end @interface MilskoFakePointer : NSView { @@ -82,13 +86,16 @@ @interface MilskoCocoa : NSObject { NSApplication *application; MwBool _forceRender; - NSWindow *window; + MilskoCocoaWindow *window; NSRect rect; MilskoCocoaView *view; MwLL parent; MilskoFakePointer *handle; unsigned int strHash; NSEvent *lastEvent; + + MilskoCocoaPixmap *cursorPixmap; + NSCursor *cursor; } + (MilskoCocoa *)newWithParent:(MwLL)parent @@ -131,9 +138,9 @@ - (void)destroy; - (void)sendClipboardEvent; -- (NSWindow *)parentWindow; +- (MilskoCocoaWindow *)parentWindow; - (NSView *)getView; -- (NSWindow *)getWindow; +- (MilskoCocoaWindow *)getWindow; - (MilskoFakePointer *)getHandle; @end diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 6ab2272ca..5aa52bc93 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1,3 +1,4 @@ +#include "Mw/BaseTypes.h" #include #ifdef __clang__ @@ -93,41 +94,43 @@ static NSPoint pointFlip(NSPoint point) { c->rect = rectFlip(NSMakeRect(x, y, width, height)); if (parent == NULL) { - c->window = [[NSWindow alloc] + c->window = [[MilskoCocoaWindow alloc] initWithContentRect:c->rect - styleMask:(NSTitledWindowMask | NSClosableWindowMask | - NSMiniaturizableWindowMask | NSResizableWindowMask) + styleMask:(NSTitledWindowMask | + NSTexturedBackgroundWindowMask | + NSClosableWindowMask | NSMiniaturizableWindowMask | + NSResizableWindowMask) backing:NSBackingStoreBuffered defer:NO]; } else { - double offset = 0; - NSWindow* parentWindow = parent->cocoa.real->window; - offset = - [parentWindow frameRectForContentRect:[parentWindow frame]].size.height - - [parentWindow contentRectForFrameRect:[parentWindow frame]].size.height; + double offset = 0; + MilskoCocoaWindow *parentWindow = parent->cocoa.real->window; + offset = + [parentWindow frameRectForContentRect:[parentWindow frame]] + .size.height - + [parentWindow contentRectForFrameRect:[parentWindow frame]].size.height; - c->rect.origin.x += [parentWindow frame].origin.x; - c->rect.origin.y -= [parentWindow frame].origin.y - offset; - c->rect.origin.y -= offset; + c->rect.origin.x += [parentWindow frame].origin.x; + c->rect.origin.y -= [parentWindow frame].origin.y - offset; + c->rect.origin.y -= offset; - c->window = [[NSWindow alloc] initWithContentRect:c->rect - styleMask:NSBorderlessWindowMask - backing:NSBackingStoreBuffered - defer:NO]; + c->window = + [[MilskoCocoaWindow alloc] initWithContentRect:c->rect + styleMask:NSBorderlessWindowMask + backing:NSBackingStoreBuffered + defer:NO]; } [c->window - setDelegate:[[MilskoCocoaWindowDelegate alloc] - initWithWin:c->window]]; + setDelegate:[[MilskoCocoaWindowDelegate alloc] initWithWin:c->window]]; [c->window makeKeyAndOrderFront:c->application]; [c->window retain]; if (parent != NULL) { MilskoCocoa *p = parent->cocoa.real; - double offset = 0; - offset = - [p->window frameRectForContentRect:[p->window frame]].size.height - - [p->window contentRectForFrameRect:[p->window frame]].size.height; + double offset = 0; + offset = [p->window frameRectForContentRect:[p->window frame]].size.height - + [p->window contentRectForFrameRect:[p->window frame]].size.height; [p->window addChildWindow:c->window ordered:NSWindowAbove]; [c->window setHasShadow:MwFALSE]; [c->window setParentWindow:p->window]; @@ -139,10 +142,11 @@ static NSPoint pointFlip(NSPoint point) { [c->application setActivationPolicy:NSApplicationActivationPolicyRegular]; [c->application activateIgnoringOtherApps:true]; [c->window makeFirstResponder:c->view]; + [c->window makeKeyAndOrderFront:nil]; } - [c->application setDelegate:[[MilskoCocoaApplicationDelegate alloc] initWithAppl:c->application]]; + [c->application retain]; c->view = [[MilskoCocoaView alloc] initWithFrame:c->rect]; [c->view retain]; @@ -158,6 +162,8 @@ static NSPoint pointFlip(NSPoint point) { c->_forceRender = MwTRUE; c->strHash = 0; + c->cursorPixmap = NULL; + [c->application finishLaunching]; return c; @@ -209,7 +215,7 @@ static NSPoint pointFlip(NSPoint point) { NSRect frame = rectFlip([self->window frame]); frame = rectFlip(frame); - if(parent) { + if (parent) { frame.origin.x -= [parent->cocoa.real->window frame].origin.x; frame.origin.y += [parent->cocoa.real->window frame].origin.y; } @@ -228,17 +234,18 @@ static NSPoint pointFlip(NSPoint point) { frame = rectFlip(frame); - if(parent) { - double offset = 0; - NSWindow* parentWindow = parent->cocoa.real->window; - offset = - [parentWindow frameRectForContentRect:[parentWindow frame]].size.height - - [parentWindow contentRectForFrameRect:[parentWindow frame]].size.height; + if (parent) { + double offset = 0; + MilskoCocoaWindow *parentWindow = parent->cocoa.real->window; + offset = + [parentWindow frameRectForContentRect:[parentWindow frame]] + .size.height - + [parentWindow contentRectForFrameRect:[parentWindow frame]].size.height; frame.origin.x += [parentWindow frame].origin.x; frame.origin.y -= [parentWindow frame].origin.y - offset; frame.origin.y -= offset; - } + } [self->view setFrameSize:frame.size]; @@ -336,9 +343,11 @@ static NSPoint pointFlip(NSPoint point) { } case NSMouseEntered: MwLLDispatch(h, focus_in, NULL); + [self->cursor push]; break; case NSMouseExited: MwLLDispatch(h, focus_out, NULL); + [self->cursor pop]; break; case NSKeyDown: case NSKeyUp: { @@ -346,10 +355,12 @@ static NSPoint pointFlip(NSPoint point) { doSendEvent = MwFALSE; } case NSCursorUpdate: + [self->cursor set]; break; case NSScrollWheel: break; default: + doSendEvent = MwFALSE; break; }; if (doSendEvent) { @@ -589,7 +600,7 @@ static NSPoint pointFlip(NSPoint point) { [pool release]; }; - (void)setIcon:(MwLLPixmap)pixmap { - (void)pixmap; + [self->application setApplicationIconImage:[pixmap->cocoa.real image]]; }; - (void)forceRender { self->_forceRender = MwTRUE; @@ -607,11 +618,63 @@ static NSPoint pointFlip(NSPoint point) { // [pool release]; }; - (void)setCursor:(MwCursor *)image mask:(MwCursor *)mask { - (void)image; - (void)mask; + int y, x, ys, xs; + unsigned char *di = malloc(image->width * image->height * 4); + memset(di, 0, image->width * image->height * 4); + + if (self->cursorPixmap) { + [self->cursorPixmap destroy]; + } + self->cursorPixmap = + [MilskoCocoaPixmap newWithWidth:image->width height:image->height]; + + xs = -mask->x + image->x; + ys = MwCursorDataHeight + mask->y; + ys = MwCursorDataHeight + image->y - ys; + + for (y = 0; y < mask->height; y++) { + unsigned int d = mask->data[y]; + for (x = mask->width - 1; x >= 0; x--) { + int px = 0; + int idx = ((y * mask->width) + x) * 4; + + if (d & 1) { + di[idx + 3] = 255; + }; + d = d >> 1; + } + } + for (y = 0; y < image->height; y++) { + unsigned int d = image->data[y]; + for (x = image->width - 1; x >= 0; x--) { + int px = 0; + int idx = ((y * image->width) + x) * 4; + + if (d & 1) { + px = 255; + }; + + di[idx] = px; + di[idx + 1] = px; + di[idx + 2] = px; + d = d >> 1; + } + } + + [self->cursorPixmap updateWithData:di]; + + self->cursor = [[NSCursor alloc] + initWithImage:[self->cursorPixmap image] + hotSpot:NSMakePoint(image->x, image->y + image->height)]; + [self->cursor retain]; + + [self->cursor pop]; + [self->cursor push]; + + free(di); }; - (void)detachWithPoint:(MwPoint *)point { - (void)point; + [self->window setParentWindow:NULL]; }; - (void)show:(int)show { (void)show; @@ -623,10 +686,8 @@ static NSPoint pointFlip(NSPoint point) { MinY:(int)miny MaxX:(int)maxx MaxY:(int)maxy { - (void)minx; - (void)miny; - (void)maxx; - (void)maxy; + [self->window setMinSize:NSMakeSize(minx, miny)]; + [self->window setMaxSize:NSMakeSize(maxx, maxy)]; }; - (void)makeBorderless:(int)toggle { MwU32 mask = [self->window styleMask]; @@ -659,8 +720,6 @@ static NSPoint pointFlip(NSPoint point) { // owner:nil]; [pasteboard setString:[NSString stringWithUTF8String:text] // forType:NSPasteboardTypeString]; [pool release]; }; -- (void)getClipboard { -}; - (void)makeToolWindow { }; - (void)getCursorCoord:(MwPoint *)point { @@ -703,6 +762,7 @@ static NSPoint pointFlip(NSPoint point) { - (MilskoFakePointer *)getHandle { return handle; } + @end @implementation MilskoCocoaView @@ -787,8 +847,15 @@ static NSPoint pointFlip(NSPoint point) { self->appl = _appl; return self; } +- (void)applicationDidBecomeActive:(NSNotification *)notification { + printf("test\n"); +} +- (void)applicationWillFinishLaunching:(NSNotification *)notification { + // printf("test\n"); + // [self->appl activateIgnoringOtherApps:MwTRUE]; +} - (void)applicationDidFinishLaunching:(NSNotification *)notification { - [self->appl activateIgnoringOtherApps:MwTRUE]; + // [self->appl activateIgnoringOtherApps:MwTRUE]; } @end @@ -806,6 +873,10 @@ static NSPoint pointFlip(NSPoint point) { return frameSize; } +- (void)windowDidBecomeMain:(NSNotification *)notification { + printf("waow\n"); +} + - (void)windowDidResize:(NSNotification *)notification { (void)notification; } @@ -842,8 +913,17 @@ static NSPoint pointFlip(NSPoint point) { - (void)destroy { } - @end + +@implementation MilskoCocoaWindow +- (BOOL)canBecomeKeyWindow { + return true; +} +- (BOOL)canBecomeMainWindow { + return true; +} +@end + static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLL r; (void)x; From 128a1ec5243ebd5e84d9d9b32fe8a47833e75147 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Mon, 9 Mar 2026 15:07:46 -0700 Subject: [PATCH 187/836] mac: 'implement' tool windows --- src/backend/cocoa.m | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 5aa52bc93..56a68fd84 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -294,11 +294,15 @@ static NSPoint pointFlip(NSPoint point) { [pool release]; break; } + /* run through the switch case on ev.type, before calling sendEvent on any + * events we handle */ [self eventProcess:ev]; [pool release]; } [self sendClipboardEvent]; + + [self->application updateWindows]; }; - (void)eventProcess:(NSEvent *)ev { @@ -721,6 +725,11 @@ static NSPoint pointFlip(NSPoint point) { // forType:NSPasteboardTypeString]; [pool release]; }; - (void)makeToolWindow { + /* If my understand of what a "tool window" usually is is correct then I + * highly doubt the Mac OS has this and if they did they probably outright + * removed it along time ago is this kind of conflicts with modern UX. So + * we'll just make it borderless idgaf */ + [self makeBorderless:MwTRUE]; }; - (void)getCursorCoord:(MwPoint *)point { NSPoint p = [NSEvent mouseLocation]; From dccc402b3d2cc6cdc27a7d4895a9e50b7d4048f5 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Mon, 9 Mar 2026 16:13:49 -0700 Subject: [PATCH 188/836] mac: send mouse/key to both event itself and window, evidently --- src/backend/cocoa.m | 46 +++++++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 56a68fd84..1260c2539 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1,4 +1,3 @@ -#include "Mw/BaseTypes.h" #include #ifdef __clang__ @@ -166,6 +165,8 @@ static NSPoint pointFlip(NSPoint point) { [c->application finishLaunching]; + c->pointerLocked = MwFALSE; + return c; } - (void)polygonWithPoints:(MwPoint *)points @@ -298,10 +299,19 @@ static NSPoint pointFlip(NSPoint point) { * events we handle */ [self eventProcess:ev]; [pool release]; + [self->application updateWindows]; } [self sendClipboardEvent]; + if (self->pointerLocked && [self->window isMainWindow]) { + NSPoint pos = [window frame].origin; + pos.x += [window frame].size.width / 2; + pos.y += [window frame].size.height / 2; + + CGWarpMouseCursorPosition(pos); + } + [self->application updateWindows]; }; @@ -339,9 +349,10 @@ static NSPoint pointFlip(NSPoint point) { case NSOtherMouseDragged: case NSMouseMoved: { MwPoint pos; - pos.x = [ev locationInWindow].x; - pos.y = [win contentRectForFrameRect:[win frame]].size.height - - [ev locationInWindow].y; + NSPoint pos_translated = pointFlip([ev locationInWindow]); + pos.x = pos_translated.x; + pos.y = pos_translated.y; + printf("%d %d\n", pos.x, pos.y); MwLLDispatch(h, move, &pos); break; } @@ -355,8 +366,7 @@ static NSPoint pointFlip(NSPoint point) { break; case NSKeyDown: case NSKeyUp: { - [self handleKeyEvent:ev]; - doSendEvent = MwFALSE; + [self handleKeyEvent:ev ll:h]; } case NSCursorUpdate: [self->cursor set]; @@ -364,12 +374,9 @@ static NSPoint pointFlip(NSPoint point) { case NSScrollWheel: break; default: - doSendEvent = MwFALSE; break; }; - if (doSendEvent) { - [win sendEvent:ev]; - } + [win sendEvent:ev]; [pool release]; } @@ -378,6 +385,7 @@ static NSPoint pointFlip(NSPoint point) { MwLLMouse mouse; MwBool isDown = MwTRUE; NSPoint mousePoint = pointFlip([ev locationInWindow]); + MwLL this = [self->handle pointer]; switch ([ev type]) { case NSLeftMouseUp: isDown = MwFALSE; @@ -401,13 +409,15 @@ static NSPoint pointFlip(NSPoint point) { mouse.point.y = mousePoint.y; if (isDown) { + MwLLDispatch(this, down, &mouse); MwLLDispatch(ll, down, &mouse); } else { + MwLLDispatch(this, up, &mouse); MwLLDispatch(ll, up, &mouse); } } -- (void)handleKeyEvent:(NSEvent *)ev { +- (void)handleKeyEvent:(NSEvent *)ev ll:(MwLL)ll { int ch; MwLL this = [self->handle pointer]; enum { @@ -537,9 +547,11 @@ static NSPoint pointFlip(NSPoint point) { switch ([ev type]) { case NSKeyDown: MwLLDispatch(this, key, &ch); + MwLLDispatch(ll, key, &ch); break; case NSKeyUp: MwLLDispatch(this, key_released, &ch); + MwLLDispatch(ll, key_released, &ch); break; default: break; @@ -711,9 +723,7 @@ static NSPoint pointFlip(NSPoint point) { [self->window makeMainWindow]; }; - (void)grabPointer:(int)toggle { - (void)toggle; - /* MacOS didn't have a "pointer grab" function - * until 10.13.2 so I need to do this manually */ + self->pointerLocked = toggle; }; - (void)setClipboard:(const char *)text { (void)text; @@ -849,6 +859,14 @@ static NSPoint pointFlip(NSPoint point) { (void)rect; }; +- (BOOL)acceptsFirstResponder { + return MwTRUE; +} +- (BOOL)performKeyEquivalent:(NSEvent *)event { + (void)event; + return MwTRUE; +} + @end @implementation MilskoCocoaApplicationDelegate From dd67e42054cb915195d22b413c2e1144c49b7318 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Mon, 9 Mar 2026 16:14:48 -0700 Subject: [PATCH 189/836] mac: remove debug prints --- include/Mw/LowLevel/Cocoa.h | 4 +++- src/backend/cocoa.m | 2 -- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 865d774c7..2664b0d10 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -96,6 +96,8 @@ MilskoCocoaPixmap *cursorPixmap; NSCursor *cursor; + + MwBool pointerLocked; } + (MilskoCocoa *)newWithParent:(MwLL)parent @@ -113,7 +115,7 @@ - (void)setW:(int)w H:(int)h; - (int)pending; - (void)eventProcess:(NSEvent *)ev; -- (void)handleKeyEvent:(NSEvent *)ev; +- (void)handleKeyEvent:(NSEvent *)ev ll:(MwLL)ll; - (void)handleMouseEvent:(NSEvent *)ev ll:(MwLL)ll; - (void)getNextEvent; - (void)setTitle:(const char *)title; diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 1260c2539..9175a07c0 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -352,7 +352,6 @@ static NSPoint pointFlip(NSPoint point) { NSPoint pos_translated = pointFlip([ev locationInWindow]); pos.x = pos_translated.x; pos.y = pos_translated.y; - printf("%d %d\n", pos.x, pos.y); MwLLDispatch(h, move, &pos); break; } @@ -901,7 +900,6 @@ static NSPoint pointFlip(NSPoint point) { } - (void)windowDidBecomeMain:(NSNotification *)notification { - printf("waow\n"); } - (void)windowDidResize:(NSNotification *)notification { From 3f84b0f868f0106b01beea8174f31d7ec8374c5e Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Mon, 9 Mar 2026 16:19:12 -0700 Subject: [PATCH 190/836] mac: document MilskoFakePointer --- include/Mw/LowLevel/Cocoa.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 2664b0d10..5543d7e21 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -39,6 +39,18 @@ - (MilskoCocoaWindowDelegate *)initWithWin:(MilskoCocoaWindow *)win; @end +/* + So we want to associate each NSWindow with its corresponding MwLL handle. The + conventional way of doing this is through "associative pointers", however + this is a feature that Apple added in 10.6 (marketted back then as "Objective + C 2" iirc). For 10.4 compatibility, we have to do a bit of an ugly hack that + might seem like horrifically undefined behavior, but I've tested this on + both 10.4 and modern Mac OS and as long as we're careful there's no + problems: we override NSView, use NSView's "frame" property to store the + pointer, and then override functions appropriately so that this frame is never + actually used. This can then be attached to an NSWindow with addSubview and + retrieved appropriately. + */ @interface MilskoFakePointer : NSView { void *ptr; } From 4ca11145f1ffb08c200f22ad053847222375358a Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 9 Mar 2026 16:35:09 -0700 Subject: [PATCH 191/836] some 10.4 fixes --- src/backend/cocoa.m | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 9175a07c0..e90d51215 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -138,7 +138,9 @@ static NSPoint pointFlip(NSPoint point) { c->rect.origin.y -= [p->window frame].origin.y - offset; c->rect.origin.y -= offset; } else { - [c->application setActivationPolicy:NSApplicationActivationPolicyRegular]; + if ([c->application respondsToSelector:@selector(setActivationPolicy:)]) { + [c->application setActivationPolicy:0 /* NSApplicationActivationPolicyRegular */]; + } [c->application activateIgnoringOtherApps:true]; [c->window makeFirstResponder:c->view]; [c->window makeKeyAndOrderFront:nil]; @@ -305,9 +307,9 @@ static NSPoint pointFlip(NSPoint point) { [self sendClipboardEvent]; if (self->pointerLocked && [self->window isMainWindow]) { - NSPoint pos = [window frame].origin; - pos.x += [window frame].size.width / 2; - pos.y += [window frame].size.height / 2; + struct CGPoint pos; + pos.x = [window frame].origin.x + [window frame].size.width / 2; + pos.y = [window frame].origin.y + [window frame].size.height / 2; CGWarpMouseCursorPosition(pos); } From a0e2ec7f57491aa7cc978ac7296f6c320168d450 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Mon, 9 Mar 2026 16:40:30 -0700 Subject: [PATCH 192/836] undo sending mouse event to both the parent and widget itself, forgot that that's exactly something we don't want to do --- src/backend/cocoa.m | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index e90d51215..fdf12c38f 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -139,7 +139,8 @@ static NSPoint pointFlip(NSPoint point) { c->rect.origin.y -= offset; } else { if ([c->application respondsToSelector:@selector(setActivationPolicy:)]) { - [c->application setActivationPolicy:0 /* NSApplicationActivationPolicyRegular */]; + [c->application + setActivationPolicy:0 /* NSApplicationActivationPolicyRegular */]; } [c->application activateIgnoringOtherApps:true]; [c->window makeFirstResponder:c->view]; @@ -410,10 +411,8 @@ static NSPoint pointFlip(NSPoint point) { mouse.point.y = mousePoint.y; if (isDown) { - MwLLDispatch(this, down, &mouse); MwLLDispatch(ll, down, &mouse); } else { - MwLLDispatch(this, up, &mouse); MwLLDispatch(ll, up, &mouse); } } From 9f1b455341de321a146c6ba797d5c592b89e95e4 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 10 Mar 2026 15:33:20 -0700 Subject: [PATCH 193/836] mac: new event pumping architecture that sucks and i hate it but apple is happy with it so we're happy with it --- include/Mw/LowLevel/Cocoa.h | 1 + src/backend/cocoa.m | 47 ++++++++++--------------------------- 2 files changed, 14 insertions(+), 34 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 5543d7e21..445af0e5f 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -156,6 +156,7 @@ - (NSView *)getView; - (MilskoCocoaWindow *)getWindow; - (MilskoFakePointer *)getHandle; ++ (void)eventCanceller:(MilskoCocoa *)this; @end #define OBJC(x) x diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index fdf12c38f..edf5cfd3a 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -142,9 +142,9 @@ static NSPoint pointFlip(NSPoint point) { [c->application setActivationPolicy:0 /* NSApplicationActivationPolicyRegular */]; } + [c->window makeKeyAndOrderFront:nil]; [c->application activateIgnoringOtherApps:true]; [c->window makeFirstResponder:c->view]; - [c->window makeKeyAndOrderFront:nil]; } [c->application setDelegate:[[MilskoCocoaApplicationDelegate alloc] initWithAppl:c->application]]; @@ -172,6 +172,13 @@ static NSPoint pointFlip(NSPoint point) { return c; } ++ (void)eventCanceller:(MilskoCocoa *)this { + this->lastEvent = [this->application currentEvent]; + [this eventProcess:this->lastEvent]; + + [[NSApplication sharedApplication] stop:nil]; +} + - (void)polygonWithPoints:(MwPoint *)points points_count:(int)points_count color:(MwLLColor)color { @@ -269,42 +276,14 @@ static NSPoint pointFlip(NSPoint point) { [self forceRender]; }; - (int)pending { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - MwBool isPending = MwFALSE; - if (_forceRender) { - _forceRender = MwFALSE; - [pool release]; - return 1; - } - self->lastEvent = [self->window nextEventMatchingMask:NSAnyEventMask - untilDate:[NSDate distantPast] - inMode:NSDefaultRunLoopMode - dequeue:YES]; - - isPending = self->lastEvent != NULL; - [pool release]; - return isPending; + [MilskoCocoa performSelectorOnMainThread:@selector(eventCanceller:) + withObject:self + waitUntilDone:NO]; + [self->application run]; + return 1; }; - (void)getNextEvent { - [self eventProcess:self->lastEvent]; - while (true) { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSEvent *ev = [self->window nextEventMatchingMask:NSAnyEventMask - untilDate:[NSDate distantPast] - inMode:NSDefaultRunLoopMode - dequeue:YES]; - if (!ev) { - [pool release]; - break; - } - /* run through the switch case on ev.type, before calling sendEvent on any - * events we handle */ - [self eventProcess:ev]; - [pool release]; - [self->application updateWindows]; - } - [self sendClipboardEvent]; if (self->pointerLocked && [self->window isMainWindow]) { From 8f379e97513a4416541960c95c6d97f34bc58ca5 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 10 Mar 2026 15:46:46 -0700 Subject: [PATCH 194/836] add comment clarifying pending --- src/backend/cocoa.m | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index edf5cfd3a..eeae8567c 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -276,6 +276,21 @@ static NSPoint pointFlip(NSPoint point) { [self forceRender]; }; - (int)pending { + /* + ok so this is a crime against god but I did in fact try the better method + of using nextEventMatchingMask and then pumping events manually. However + this gives me something that only kind of works, with strange behavior such + as the window never becoming the main window (have to make it key in order + for the menu to show up) occuring. Hours of research and digging led me down + a rabbit hole that, on all sides, pointed to "just use [NSApplication run]". + So we just to do that; of course, this is a blocking function, so we + register this function that instantly cancels it and pumps whatever event + MacOS has in store for us. We do this on loop and somehow the resulting CPU + usage is managable. + + If some Apple developer with 20 years of experience in Objective C is here: + Pls god send PR if you know how to properly do this. +*/ [MilskoCocoa performSelectorOnMainThread:@selector(eventCanceller:) withObject:self waitUntilDone:NO]; From d3c30bf6d3889de3225d70d2f0779073f710c39c Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 10 Mar 2026 16:31:27 -0700 Subject: [PATCH 195/836] mac: mouse fixing, somewwhat. also just always send events for a bit --- include/Mw/LowLevel/Cocoa.h | 1 + src/backend/cocoa.m | 17 ++++++++++++++++- src/widget/opengl_cocoa.m | 7 +++---- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 445af0e5f..bc65d9626 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -110,6 +110,7 @@ NSCursor *cursor; MwBool pointerLocked; + MwBool mouseMoved; } + (MilskoCocoa *)newWithParent:(MwLL)parent diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index eeae8567c..8b96fe70c 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -176,6 +176,21 @@ static NSPoint pointFlip(NSPoint point) { this->lastEvent = [this->application currentEvent]; [this eventProcess:this->lastEvent]; + if (this->_forceRender) { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + NSEvent *event = [NSEvent otherEventWithType:NSApplicationDefined + location:NSMakePoint(0, 0) + modifierFlags:0 + timestamp:0 + windowNumber:0 + context:nil + subtype:0 + data1:0 + data2:0]; + [NSApp postEvent:event atStart:YES]; + [pool release]; + } + [[NSApplication sharedApplication] stop:nil]; } @@ -301,7 +316,7 @@ static NSPoint pointFlip(NSPoint point) { - (void)getNextEvent { [self sendClipboardEvent]; - if (self->pointerLocked && [self->window isMainWindow]) { + if (self->pointerLocked && [self->window isMainWindow] && self->lastEvent) { struct CGPoint pos; pos.x = [window frame].origin.x + [window frame].size.width / 2; pos.y = [window frame].origin.y + [window frame].size.height / 2; diff --git a/src/widget/opengl_cocoa.m b/src/widget/opengl_cocoa.m index 15c1198de..503fe5e7b 100644 --- a/src/widget/opengl_cocoa.m +++ b/src/widget/opengl_cocoa.m @@ -9,7 +9,7 @@ @interface MacOpenGLWidget : NSObject { NSOpenGLPixelFormat *pixelFormat; NSOpenGLContext *glc; - MilskoCocoa * _win; + MilskoCocoa *_win; } - (MacOpenGLWidget *)initWithWindow:(MilskoCocoa *)w; @@ -31,8 +31,8 @@ static int create(MwWidget handle) { printf("%d %d\n", width, height); - handle->internal = [[MacOpenGLWidget alloc] - initWithWindow:handle->lowlevel->cocoa.real]; + handle->internal = + [[MacOpenGLWidget alloc] initWithWindow:handle->lowlevel->cocoa.real]; handle->lowlevel->common.copy_buffer = 0; MwSetDefault(handle); @@ -98,7 +98,6 @@ static void func_handler(MwWidget handle, const char *name, void *out, [self->glc makeCurrentContext]; }; - (void)swapBuffer { - [self->_win forceRender]; [self->glc flushBuffer]; }; - (void *)getProcAddressWithName:(const char *)name { From d9ee157ee8664811d7fb24b09b306c6f625e6a3d Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 10 Mar 2026 17:10:47 -0700 Subject: [PATCH 196/836] mac: support delayed creation of the view's context, for anything whose size starts at 0x0 --- include/Mw/LowLevel/Cocoa.h | 4 ++- src/backend/cocoa.m | 65 +++++++++++++++++++++++-------------- 2 files changed, 43 insertions(+), 26 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index bc65d9626..7a8466b23 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -89,6 +89,7 @@ float height; } +- (void)initRepAndContextWithWidth:(float)w Height:(float)h; - (NSGraphicsContext *)context; - (void)destroy; - (NSBitmapImageRep *)getRep; @@ -153,9 +154,10 @@ - (void)destroy; - (void)sendClipboardEvent; -- (MilskoCocoaWindow *)parentWindow; +- (MwLL)getParent; - (NSView *)getView; - (MilskoCocoaWindow *)getWindow; + - (MilskoFakePointer *)getHandle; + (void)eventCanceller:(MilskoCocoa *)this; diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 8b96fe70c..1d5d3ce5a 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -773,11 +773,8 @@ static NSPoint pointFlip(NSPoint point) { [self->window dealloc]; } -- (NSWindow *)parentWindow { - NSWindow *topmostWindow = self->window; - while ([topmostWindow parentWindow]) - topmostWindow = [topmostWindow parentWindow]; - return topmostWindow; +- (MwLL)getParent { + return self->parent; } - (NSView *)getView { @@ -804,24 +801,7 @@ static NSPoint pointFlip(NSPoint point) { self->rep = NULL; self->context = NULL; } else { - self->rep = - [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL - pixelsWide:width - pixelsHigh:height - bitsPerSample:8 - samplesPerPixel:4 - hasAlpha:YES - isPlanar:NO - colorSpaceName:NSDeviceRGBColorSpace - bytesPerRow:width * 4 - bitsPerPixel:32]; - assert(self->rep); - [self->rep retain]; - - self->context = - [NSGraphicsContext graphicsContextWithBitmapImageRep:self->rep]; - assert(self->context); - [self->context retain]; + [self initRepAndContextWithWidth:width Height:height]; } return self; @@ -840,8 +820,15 @@ static NSPoint pointFlip(NSPoint point) { NSSize sz = [self->rep size]; [super drawRect:dirtyRect]; if (!self->rep) { - [pool release]; - return; + if (dirtyRect.size.width && dirtyRect.size.height) { + [self initRepAndContextWithWidth:dirtyRect.size.width + Height:dirtyRect.size.height]; + self->width = dirtyRect.size.width; + self->height = dirtyRect.size.height; + } else { + [pool release]; + return; + } } [self->rep drawInRect:NSMakeRect(0, 0, sz.width, sz.height)]; @@ -850,6 +837,27 @@ static NSPoint pointFlip(NSPoint point) { [pool release]; } +- (void)initRepAndContextWithWidth:(float)w Height:(float)h { + self->rep = + [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL + pixelsWide:w + pixelsHigh:h + bitsPerSample:8 + samplesPerPixel:4 + hasAlpha:YES + isPlanar:NO + colorSpaceName:NSDeviceRGBColorSpace + bytesPerRow:w * 4 + bitsPerPixel:32]; + assert(self->rep); + [self->rep retain]; + + self->context = + [NSGraphicsContext graphicsContextWithBitmapImageRep:self->rep]; + assert(self->context); + [self->context retain]; +} + - (void)destroy { CGColorSpaceRelease(self->space); [self->rep release]; @@ -884,6 +892,7 @@ static NSPoint pointFlip(NSPoint point) { return self; } - (void)applicationDidBecomeActive:(NSNotification *)notification { + [self->appl activateIgnoringOtherApps:true]; printf("test\n"); } - (void)applicationWillFinishLaunching:(NSNotification *)notification { @@ -910,6 +919,12 @@ static NSPoint pointFlip(NSPoint point) { } - (void)windowDidBecomeMain:(NSNotification *)notification { + if ([[[w contentView] subviews] count] != 0) { + MwLL h = [((MilskoFakePointer *)[[[w contentView] subviews] + objectAtIndex:0]) pointer]; + MwLLDispatch(h, focus_in, NULL); + } + [self->w makeKeyAndOrderFront:nil]; } - (void)windowDidResize:(NSNotification *)notification { From 6c53df0fc5eed26a6cd2f8e763f4c21fc772546a Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 10 Mar 2026 20:09:37 -0700 Subject: [PATCH 197/836] correct pixmap updating (sadly memcpy'ing is not enough) --- src/backend/cocoa.m | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 1d5d3ce5a..03cbe2cdc 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -60,6 +60,22 @@ static NSPoint pointFlip(NSPoint point) { } - (void)updateWithData:(unsigned char *)_data { memcpy(self->buf, _data, width * height * 4); + if (self->rep) { + [self->image removeRepresentation:self->rep]; + [self->rep release]; + } + self->rep = + [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:&self->buf + pixelsWide:(int)width + pixelsHigh:(int)height + bitsPerSample:8 + samplesPerPixel:4 + hasAlpha:YES + isPlanar:NO + colorSpaceName:NSDeviceRGBColorSpace + bytesPerRow:(int)width * 4 + bitsPerPixel:32]; + [self->image addRepresentation:self->rep]; } - (void)destroy { free(self->buf); From 02faed2f04f645a07f8fa5371d19c74104360da2 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 11 Mar 2026 13:13:16 -0700 Subject: [PATCH 198/836] reduce cpu usage on event loop --- src/backend/cocoa.m | 68 ++++++++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 32 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 03cbe2cdc..c7eb10477 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -188,27 +188,6 @@ static NSPoint pointFlip(NSPoint point) { return c; } -+ (void)eventCanceller:(MilskoCocoa *)this { - this->lastEvent = [this->application currentEvent]; - [this eventProcess:this->lastEvent]; - - if (this->_forceRender) { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSEvent *event = [NSEvent otherEventWithType:NSApplicationDefined - location:NSMakePoint(0, 0) - modifierFlags:0 - timestamp:0 - windowNumber:0 - context:nil - subtype:0 - data1:0 - data2:0]; - [NSApp postEvent:event atStart:YES]; - [pool release]; - } - - [[NSApplication sharedApplication] stop:nil]; -} - (void)polygonWithPoints:(MwPoint *)points points_count:(int)points_count @@ -329,7 +308,34 @@ static NSPoint pointFlip(NSPoint point) { return 1; }; ++ (void)eventCanceller:(MilskoCocoa *)this { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + NSEvent *event = [NSEvent otherEventWithType:NSApplicationDefined + location:NSMakePoint(0, 0) + modifierFlags:0 + timestamp:0 + windowNumber:0 + context:nil + subtype:0 + data1:0 + data2:0]; + + this->lastEvent = [this->window currentEvent]; + [this eventProcess:this->lastEvent]; + + [NSApp postEvent:event atStart:YES]; + [pool release]; + + [[NSApplication sharedApplication] stop:nil]; + usleep(1000); +} + - (void)getNextEvent { + if (_forceRender) { + MwLL h = [self->handle pointer]; + MwLLDispatch(h, draw, NULL); + _forceRender = MwFALSE; + } [self sendClipboardEvent]; if (self->pointerLocked && [self->window isMainWindow] && self->lastEvent) { @@ -401,10 +407,15 @@ static NSPoint pointFlip(NSPoint point) { case NSScrollWheel: break; default: + /* mute bizarre "unknown subtype" errors that flood the console */ + if (ev.subtype > 8) { + doSendEvent = false; + } break; }; - [win sendEvent:ev]; - + if (doSendEvent) { + [win sendEvent:ev]; + } [pool release]; } @@ -909,7 +920,7 @@ static NSPoint pointFlip(NSPoint point) { } - (void)applicationDidBecomeActive:(NSNotification *)notification { [self->appl activateIgnoringOtherApps:true]; - printf("test\n"); + // printf("test\n"); } - (void)applicationWillFinishLaunching:(NSNotification *)notification { // printf("test\n"); @@ -1069,14 +1080,7 @@ static void MwLLSetWHImpl(MwLL handle, int w, int height) { static void MwLLFreeColorImpl(MwLLColor color) { free(color); } -static int MwLLPendingImpl(MwLL handle) { - MilskoCocoa *h = handle->cocoa.real; - if ([h pending]) { - MwLLDispatch(handle, draw, NULL); - return 1; - }; - return 0; -} +static int MwLLPendingImpl(MwLL handle) { return [handle->cocoa.real pending]; } static void MwLLNextEventImpl(MwLL handle) { MilskoCocoa *h = handle->cocoa.real; From 13320dce78c9dfc84bedb1f85253692506a9f16b Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 11 Mar 2026 15:49:14 -0700 Subject: [PATCH 199/836] proper event handling --- include/Mw/LowLevel/Cocoa.h | 1 + src/backend/cocoa.m | 59 ++++++++++++++++++++++--------------- 2 files changed, 36 insertions(+), 24 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 7a8466b23..c92a81a4f 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -109,6 +109,7 @@ MilskoCocoaPixmap *cursorPixmap; NSCursor *cursor; + NSModalSession modalSession; MwBool pointerLocked; MwBool mouseMoved; diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index c7eb10477..5981c0c22 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -185,6 +185,7 @@ static NSPoint pointFlip(NSPoint point) { [c->application finishLaunching]; c->pointerLocked = MwFALSE; + c->modalSession = [c->application beginModalSessionForWindow:c->window]; return c; } @@ -286,26 +287,27 @@ static NSPoint pointFlip(NSPoint point) { [self forceRender]; }; - (int)pending { - /* - ok so this is a crime against god but I did in fact try the better method - of using nextEventMatchingMask and then pumping events manually. However - this gives me something that only kind of works, with strange behavior such - as the window never becoming the main window (have to make it key in order - for the menu to show up) occuring. Hours of research and digging led me down - a rabbit hole that, on all sides, pointed to "just use [NSApplication run]". - So we just to do that; of course, this is a blocking function, so we - register this function that instantly cancels it and pumps whatever event - MacOS has in store for us. We do this on loop and somehow the resulting CPU - usage is managable. + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + MwBool isPending = MwFALSE; - If some Apple developer with 20 years of experience in Objective C is here: - Pls god send PR if you know how to properly do this. -*/ - [MilskoCocoa performSelectorOnMainThread:@selector(eventCanceller:) - withObject:self - waitUntilDone:NO]; - [self->application run]; - return 1; + if (_forceRender) { + _forceRender = MwFALSE; + [pool release]; + return 1; + } + self->lastEvent = [self->window nextEventMatchingMask:NSAnyEventMask + untilDate:[NSDate distantPast] + inMode:NSDefaultRunLoopMode + dequeue:YES]; + [self->lastEvent retain]; + + if (!self->lastEvent) { + [NSApp runModalSession:self->modalSession]; + } + + isPending = self->lastEvent != NULL; + [pool release]; + return isPending; }; + (void)eventCanceller:(MilskoCocoa *)this { @@ -331,6 +333,10 @@ static NSPoint pointFlip(NSPoint point) { } - (void)getNextEvent { + NSEvent *event; + + [self eventProcess:self->lastEvent]; + if (_forceRender) { MwLL h = [self->handle pointer]; MwLLDispatch(h, draw, NULL); @@ -377,6 +383,7 @@ static NSPoint pointFlip(NSPoint point) { case NSRightMouseUp: case NSOtherMouseUp: { [self handleMouseEvent:ev ll:h]; + break; } case NSLeftMouseDragged: case NSRightMouseDragged: @@ -400,6 +407,7 @@ static NSPoint pointFlip(NSPoint point) { case NSKeyDown: case NSKeyUp: { [self handleKeyEvent:ev ll:h]; + break; } case NSCursorUpdate: [self->cursor set]; @@ -790,10 +798,6 @@ static NSPoint pointFlip(NSPoint point) { _rect->height = [screen frame].size.height; }; - (void)destroy { - if (self->lastEvent) { - [self->lastEvent release]; - [self->lastEvent dealloc]; - } [self->handle release]; [self->handle dealloc]; [self->window release]; @@ -999,6 +1003,7 @@ static NSPoint pointFlip(NSPoint point) { - (BOOL)canBecomeMainWindow { return true; } + @end static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { @@ -1080,7 +1085,13 @@ static void MwLLSetWHImpl(MwLL handle, int w, int height) { static void MwLLFreeColorImpl(MwLLColor color) { free(color); } -static int MwLLPendingImpl(MwLL handle) { return [handle->cocoa.real pending]; } +static int MwLLPendingImpl(MwLL handle) { + int p = [handle->cocoa.real pending]; + if (p) { + MwLLDispatch(handle, draw, NULL); + } + return p; +} static void MwLLNextEventImpl(MwLL handle) { MilskoCocoa *h = handle->cocoa.real; From 96528ca4338800b2469174ad991a6dc4afbda117 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 11 Mar 2026 20:27:51 -0700 Subject: [PATCH 200/836] mac: don't set the xywh of parent windows twice --- src/backend/cocoa.m | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 5981c0c22..cf240d8dd 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -141,7 +141,7 @@ static NSPoint pointFlip(NSPoint point) { [c->window makeKeyAndOrderFront:c->application]; [c->window retain]; - if (parent != NULL) { + if (parent) { MilskoCocoa *p = parent->cocoa.real; double offset = 0; offset = [p->window frameRectForContentRect:[p->window frame]].size.height - @@ -149,10 +149,6 @@ static NSPoint pointFlip(NSPoint point) { [p->window addChildWindow:c->window ordered:NSWindowAbove]; [c->window setHasShadow:MwFALSE]; [c->window setParentWindow:p->window]; - - c->rect.origin.x += [p->window frame].origin.x; - c->rect.origin.y -= [p->window frame].origin.y - offset; - c->rect.origin.y -= offset; } else { if ([c->application respondsToSelector:@selector(setActivationPolicy:)]) { [c->application From db5f0ed40a615965dac3eeda81d33e3421d00ef3 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 12 Mar 2026 01:10:45 -0700 Subject: [PATCH 201/836] mac: some fixes --- src/backend/cocoa.m | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index cf240d8dd..3fa41cf10 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -372,15 +372,6 @@ static NSPoint pointFlip(NSPoint point) { } switch ([ev type]) { - case NSLeftMouseDown: - case NSRightMouseDown: - case NSOtherMouseDown: - case NSLeftMouseUp: - case NSRightMouseUp: - case NSOtherMouseUp: { - [self handleMouseEvent:ev ll:h]; - break; - } case NSLeftMouseDragged: case NSRightMouseDragged: case NSOtherMouseDragged: @@ -390,8 +381,18 @@ static NSPoint pointFlip(NSPoint point) { pos.x = pos_translated.x; pos.y = pos_translated.y; MwLLDispatch(h, move, &pos); + // break; + } + case NSLeftMouseDown: + case NSRightMouseDown: + case NSOtherMouseDown: + case NSLeftMouseUp: + case NSRightMouseUp: + case NSOtherMouseUp: { + [self handleMouseEvent:ev ll:h]; break; } + case NSMouseEntered: MwLLDispatch(h, focus_in, NULL); [self->cursor push]; @@ -412,9 +413,6 @@ static NSPoint pointFlip(NSPoint point) { break; default: /* mute bizarre "unknown subtype" errors that flood the console */ - if (ev.subtype > 8) { - doSendEvent = false; - } break; }; if (doSendEvent) { @@ -426,22 +424,27 @@ static NSPoint pointFlip(NSPoint point) { - (void)handleMouseEvent:(NSEvent *)ev ll:(MwLL)ll { MwLLMouse mouse; MwBool isDown = MwTRUE; - NSPoint mousePoint = pointFlip([ev locationInWindow]); + NSPoint mousePoint = [ev locationInWindow]; + mousePoint.y = [[ev window] frame].size.height - mousePoint.y; MwLL this = [self->handle pointer]; + switch ([ev type]) { case NSLeftMouseUp: isDown = MwFALSE; + case NSEventTypeLeftMouseDragged: case NSLeftMouseDown: mouse.button = MwLLMouseLeft; break; case NSRightMouseUp: isDown = MwFALSE; case NSRightMouseDown: + case NSEventTypeRightMouseDragged: mouse.button = MwLLMouseRight; break; case NSOtherMouseUp: isDown = MwFALSE; case NSOtherMouseDown: + case NSEventTypeOtherMouseDragged: mouse.button = MwLLMouseMiddle; break; default: From 43dd61ffbed7805925e8c89c04afc5e28a3375a8 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sat, 14 Mar 2026 05:09:53 +0900 Subject: [PATCH 202/836] clean old things --- Jenkinsfile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 5588f1be3..e2686d3ac 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -2,8 +2,14 @@ pipeline { agent { label "built-in" } + options { + buildDiscarder(logRotator(numToKeepStr: '16', artifactNumToKeepStr: '16')) + } stages { stage("Build document") { + when { + branch "master" + } steps { sh("doxygen") sh("rm -rf /var/www/milsko-doxygen") From 8f04ccdb686ab4a14d853e6b9d29a11499e22b6f Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sat, 14 Mar 2026 05:16:27 +0900 Subject: [PATCH 203/836] cleanup --- Jenkinsfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index e2686d3ac..3dd036945 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,10 +1,9 @@ +discardBuilds() + pipeline { agent { label "built-in" } - options { - buildDiscarder(logRotator(numToKeepStr: '16', artifactNumToKeepStr: '16')) - } stages { stage("Build document") { when { From 3260643ada9e7c5ca0c3455c8e265d3b68da0c55 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sat, 14 Mar 2026 05:21:53 +0900 Subject: [PATCH 204/836] i wonder if this works --- Jenkinsfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3dd036945..7921f0c67 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,5 +1,3 @@ -discardBuilds() - pipeline { agent { label "built-in" From c64d7778cd479937f86f74516ebaac55a177c3ad Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Mon, 16 Mar 2026 16:08:25 -0700 Subject: [PATCH 205/836] mac: convert child windows to subviews --- include/Mw/LowLevel/Cocoa.h | 1 + src/backend/cocoa.m | 1790 +++++++++++++++++------------------ 2 files changed, 886 insertions(+), 905 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index c92a81a4f..19e0bc3c1 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -113,6 +113,7 @@ MwBool pointerLocked; MwBool mouseMoved; + } + (MilskoCocoa *)newWithParent:(MwLL)parent diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 3fa41cf10..c05fae59e 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1,3 +1,4 @@ +#include "Mw/BaseTypes.h" #include #ifdef __clang__ @@ -6,989 +7,959 @@ #endif static NSRect rectFlip(NSRect originFrame) { - NSScreen *zeroScreen = [[NSScreen screens] objectAtIndex:0]; - double screenHeight = [zeroScreen frame].size.height; - double originY = originFrame.origin.y; - double frameHeight = originFrame.size.height; - double destinationY = screenHeight - (originY + frameHeight); - NSRect destinationFrame = originFrame; - destinationFrame.origin.y = destinationY; - if (destinationFrame.origin.x < 0) - destinationFrame.origin.x = 0; - if (destinationFrame.origin.y < 0) - destinationFrame.origin.y = 0; - if (destinationFrame.size.width < 0) - destinationFrame.size.width = 0; - if (destinationFrame.size.height < 0) - destinationFrame.size.height = 0; - return destinationFrame; + NSScreen* zeroScreen = [[NSScreen screens] objectAtIndex:0]; + double screenHeight = [zeroScreen frame].size.height; + double originY = originFrame.origin.y; + double frameHeight = originFrame.size.height; + double destinationY = screenHeight - (originY + frameHeight); + NSRect destinationFrame = originFrame; + destinationFrame.origin.y = destinationY; + return destinationFrame; } static NSPoint pointFlip(NSPoint point) { - return rectFlip(NSMakeRect(point.x, point.y, 0, 0)).origin; + return rectFlip(NSMakeRect(point.x, point.y, 0, 0)).origin; +} + +static NSRect localRectFlip(NSRect originFrame, NSView* view) { + float viewHeight = [view bounds].size.height; + NSRect destinationFrame = NSMakeRect( + originFrame.origin.x, + [view bounds].size.height - (originFrame.origin.y + originFrame.size.height), + originFrame.size.width, + originFrame.size.height); + return destinationFrame; } @implementation MilskoCocoaPixmap -+ (MilskoCocoaPixmap *)newWithWidth:(int)width height:(int)height { - MilskoCocoaPixmap *p = [MilskoCocoaPixmap alloc]; ++ (MilskoCocoaPixmap*)newWithWidth:(int)width height:(int)height { + MilskoCocoaPixmap* p = [MilskoCocoaPixmap alloc]; - p->width = width; - p->height = height; - p->image = NULL; + p->width = width; + p->height = height; + p->image = NULL; - p->buf = malloc(width * height * 4); + p->buf = malloc(width * height * 4); - p->rep = - [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:&p->buf - pixelsWide:(int)width - pixelsHigh:(int)height - bitsPerSample:8 - samplesPerPixel:4 - hasAlpha:YES - isPlanar:NO - colorSpaceName:NSDeviceRGBColorSpace - bytesPerRow:(int)width * 4 - bitsPerPixel:32]; - assert(p->rep); + p->rep = + [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:&p->buf + pixelsWide:(int)width + pixelsHigh:(int)height + bitsPerSample:8 + samplesPerPixel:4 + hasAlpha:YES + isPlanar:NO + colorSpaceName:NSDeviceRGBColorSpace + bytesPerRow:(int)width * 4 + bitsPerPixel:32]; + assert(p->rep); - p->image = [[NSImage alloc] initWithSize:NSMakeSize(width, height)]; - assert(p->image); - [p->image addRepresentation:p->rep]; + p->image = [[NSImage alloc] initWithSize:NSMakeSize(width, height)]; + assert(p->image); + [p->image addRepresentation:p->rep]; - return p; + return p; } -- (void)updateWithData:(unsigned char *)_data { - memcpy(self->buf, _data, width * height * 4); - if (self->rep) { - [self->image removeRepresentation:self->rep]; - [self->rep release]; - } - self->rep = - [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:&self->buf - pixelsWide:(int)width - pixelsHigh:(int)height - bitsPerSample:8 - samplesPerPixel:4 - hasAlpha:YES - isPlanar:NO - colorSpaceName:NSDeviceRGBColorSpace - bytesPerRow:(int)width * 4 - bitsPerPixel:32]; - [self->image addRepresentation:self->rep]; +- (void)updateWithData:(unsigned char*)_data { + memcpy(self->buf, _data, width * height * 4); + if(self->rep) { + [self->image removeRepresentation:self->rep]; + [self->rep release]; + } + self->rep = + [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:&self->buf + pixelsWide:(int)width + pixelsHigh:(int)height + bitsPerSample:8 + samplesPerPixel:4 + hasAlpha:YES + isPlanar:NO + colorSpaceName:NSDeviceRGBColorSpace + bytesPerRow:(int)width * 4 + bitsPerPixel:32]; + [self->image addRepresentation:self->rep]; } - (void)destroy { - free(self->buf); - [self->image removeRepresentation:self->rep]; - [self->image dealloc]; - [self->rep dealloc]; + free(self->buf); + [self->image removeRepresentation:self->rep]; + [self->image dealloc]; + [self->rep dealloc]; } -- (NSImage *)image { - return self->image; +- (NSImage*)image { + return self->image; } @end @implementation MilskoCocoa -+ (MilskoCocoa *)newWithParent:(MwLL)parent - x:(int)x - y:(int)y - width:(int)width - height:(int)height - handle:(MwLL)r { - MilskoCocoa *c = [MilskoCocoa alloc]; - [c retain]; ++ (MilskoCocoa*)newWithParent:(MwLL)parent + x:(int)x + y:(int)y + width:(int)width + height:(int)height + handle:(MwLL)r { + MilskoCocoa* c = [MilskoCocoa alloc]; + [c retain]; - if (x == MwDEFAULT) { - x = ([[NSScreen mainScreen] frame].size.width / 2.) - (width / 2.); - } - if (y == MwDEFAULT) { - y = ([[NSScreen mainScreen] frame].size.height / 2.) - (height / 2.); - } - c->application = [NSApplication sharedApplication]; - c->rect = rectFlip(NSMakeRect(x, y, width, height)); + /* + * MacOS doesn't really have a "default" window position, you're actually meant to center the window yourself, + * so if the user passes MwDEFAULT respond appropriately. Also for child windows just have it be 0. + */ + if(x == MwDEFAULT) { + x = r ? ([[NSScreen mainScreen] frame].size.width / 2.) - (width / 2.) : 0; + } + if(y == MwDEFAULT) { + y = r ? ([[NSScreen mainScreen] frame].size.height / 2.) - (height / 2.) : 0; + } + c->application = [NSApplication sharedApplication]; + c->rect = NSMakeRect(x, y, width, height); - if (parent == NULL) { - c->window = [[MilskoCocoaWindow alloc] - initWithContentRect:c->rect - styleMask:(NSTitledWindowMask | - NSTexturedBackgroundWindowMask | - NSClosableWindowMask | NSMiniaturizableWindowMask | - NSResizableWindowMask) - backing:NSBackingStoreBuffered - defer:NO]; - } else { - double offset = 0; - MilskoCocoaWindow *parentWindow = parent->cocoa.real->window; - offset = - [parentWindow frameRectForContentRect:[parentWindow frame]] - .size.height - - [parentWindow contentRectForFrameRect:[parentWindow frame]].size.height; + if(parent == NULL) { + c->window = [[MilskoCocoaWindow alloc] + initWithContentRect:rectFlip(c->rect) + styleMask:(NSTitledWindowMask | + NSTexturedBackgroundWindowMask | + NSClosableWindowMask | NSMiniaturizableWindowMask | + NSResizableWindowMask) + backing:NSBackingStoreBuffered + defer:NO]; + [c->window + setDelegate:[[MilskoCocoaWindowDelegate alloc] initWithWin:c->window]]; + [c->window retain]; - c->rect.origin.x += [parentWindow frame].origin.x; - c->rect.origin.y -= [parentWindow frame].origin.y - offset; - c->rect.origin.y -= offset; + [c->window makeKeyAndOrderFront:c->application]; + [c->window makeFirstResponder:c->view]; + [c->window setAcceptsMouseMovedEvents:MwTRUE]; - c->window = - [[MilskoCocoaWindow alloc] initWithContentRect:c->rect - styleMask:NSBorderlessWindowMask - backing:NSBackingStoreBuffered - defer:NO]; - } - [c->window - setDelegate:[[MilskoCocoaWindowDelegate alloc] initWithWin:c->window]]; + c->view = [[MilskoCocoaView alloc] initWithFrame:c->rect]; + [c->view retain]; + [c->window setContentView:c->view]; - [c->window makeKeyAndOrderFront:c->application]; - [c->window retain]; + if([c->application respondsToSelector:@selector(setActivationPolicy:)]) { + [c->application + setActivationPolicy:0 /* NSApplicationActivationPolicyRegular */]; + } + [c->application activateIgnoringOtherApps:true]; + [c->application setDelegate:[[MilskoCocoaApplicationDelegate alloc] + initWithAppl:c->application]]; + [c->application retain]; + } else { + MilskoCocoa* p = parent->cocoa.real; - if (parent) { - MilskoCocoa *p = parent->cocoa.real; - double offset = 0; - offset = [p->window frameRectForContentRect:[p->window frame]].size.height - - [p->window contentRectForFrameRect:[p->window frame]].size.height; - [p->window addChildWindow:c->window ordered:NSWindowAbove]; - [c->window setHasShadow:MwFALSE]; - [c->window setParentWindow:p->window]; - } else { - if ([c->application respondsToSelector:@selector(setActivationPolicy:)]) { - [c->application - setActivationPolicy:0 /* NSApplicationActivationPolicyRegular */]; - } - [c->window makeKeyAndOrderFront:nil]; - [c->application activateIgnoringOtherApps:true]; - [c->window makeFirstResponder:c->view]; - } - [c->application setDelegate:[[MilskoCocoaApplicationDelegate alloc] - initWithAppl:c->application]]; - [c->application retain]; + c->window = p->window; - c->view = [[MilskoCocoaView alloc] initWithFrame:c->rect]; - [c->view retain]; - c->handle = [[MilskoFakePointer alloc] initWithFrame:NSMakeRect(0, 0, 1, 1)]; - [c->handle retain]; - [c->handle setPointer:r]; - [c->view addSubview:c->handle]; + if(parent) { + MilskoCocoa* topmost = p; + NSRect rect = localRectFlip(c->rect, p->view); + printf("%0.2f %0.2f %0.2f %0.2f\n",c->rect.origin.x, c->rect.origin.y, c->rect.size.width, c->rect.size.height); + c->view = [[MilskoCocoaView alloc] initWithFrame:rect]; + [c->view setBounds:c->rect]; + } else { + c->view = [[MilskoCocoaView alloc] initWithFrame:c->rect]; + } + [c->view retain]; + [c->view setNeedsDisplay:TRUE]; + [p->view addSubview:c->view]; + [p->window setContentView:p->view]; + } - [c->window setContentView:c->view]; + c->handle = [[MilskoFakePointer alloc] initWithFrame:NSMakeRect(0, 0, 1, 1)]; + [c->handle retain]; + [c->handle setPointer:r]; + [c->view addSubview:c->handle]; - c->parent = parent; + c->modalSession = [c->application beginModalSessionForWindow:c->window]; + c->parent = parent; - c->_forceRender = MwTRUE; - c->strHash = 0; + c->_forceRender = MwTRUE; + c->strHash = 0; - c->cursorPixmap = NULL; + c->cursorPixmap = NULL; - [c->application finishLaunching]; + [c->application finishLaunching]; - c->pointerLocked = MwFALSE; - c->modalSession = [c->application beginModalSessionForWindow:c->window]; + c->pointerLocked = MwFALSE; - return c; + + return c; } -- (void)polygonWithPoints:(MwPoint *)points - points_count:(int)points_count - color:(MwLLColor)color { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSGraphicsContext *ctx = [self->view context]; - if (ctx) { - int i; - NSBezierPath *path = [NSBezierPath bezierPath]; - NSColor *nscolor = - [NSColor colorWithCalibratedRed:color->common.red / 255. - green:color->common.green / 255. - blue:color->common.blue / 255. - alpha:1.0]; +- (void)polygonWithPoints:(MwPoint*)points + points_count:(int)points_count + color:(MwLLColor)color { + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + NSGraphicsContext* ctx = [self->view context]; + if(ctx) { + int i; + NSBezierPath* path = [NSBezierPath bezierPath]; + /* whatever rect we use for coordinate flipping */ + NSRect _rect = parent ? [self->view bounds] : [self->window frame]; - [NSGraphicsContext saveGraphicsState]; - [NSGraphicsContext setCurrentContext:ctx]; + NSColor* nscolor = + [NSColor colorWithCalibratedRed:color->common.red / 255. + green:color->common.green / 255. + blue:color->common.blue / 255. + alpha:1.0]; - [nscolor setFill]; - for (i = 0; i < points_count; i++) { - if (i == 0) { - [path moveToPoint:NSMakePoint(points[i].x, - [self->window frame].size.height - - points[i].y)]; - } else { - [path lineToPoint:NSMakePoint(points[i].x, - [self->window frame].size.height - - points[i].y)]; - } - } + [NSGraphicsContext saveGraphicsState]; + [NSGraphicsContext setCurrentContext:ctx]; - [path closePath]; - [path fill]; + [nscolor setFill]; + NSRectFill(self->view.bounds); + for(i = 0; i < points_count; i++) { + if(i == 0) { + [path moveToPoint:NSMakePoint(points[i].x, _rect.size.height - + points[i].y)]; + } else { + [path lineToPoint:NSMakePoint(points[i].x, _rect.size.height - + points[i].y)]; + } + } - [NSGraphicsContext restoreGraphicsState]; + [path closePath]; + [path fill]; - [self->view setNeedsDisplay:YES]; - } - [pool release]; + [NSGraphicsContext restoreGraphicsState]; + + [self->view setNeedsDisplay:YES]; + } + [pool release]; }; -- (void)lineWithPoints:(MwPoint *)points color:(MwLLColor)color { - (void)points; - (void)color; +- (void)lineWithPoints:(MwPoint*)points color:(MwLLColor)color { + (void)points; + (void)color; }; -- (void)getX:(int *)x Y:(int *)y W:(unsigned int *)w H:(unsigned int *)h { - NSRect frame = rectFlip([self->window frame]); - frame = rectFlip(frame); +- (void)getX:(int*)x Y:(int*)y W:(unsigned int*)w H:(unsigned int*)h { + NSRect frame; + if(parent) { + frame = [self->view frame]; + } else { + frame = [self->window frame]; + } + frame = rectFlip(frame); - if (parent) { - frame.origin.x -= [parent->cocoa.real->window frame].origin.x; - frame.origin.y += [parent->cocoa.real->window frame].origin.y; - } + *x = frame.origin.x; + *y = frame.origin.y; - *x = frame.origin.x; - *y = frame.origin.y; - - *w = frame.size.width; - *h = frame.size.height; + *w = frame.size.width; + *h = frame.size.height; }; - (void)setX:(int)x Y:(int)y { - NSRect frame = [self->window frame]; + NSRect frame; + if(parent) { + frame = [self->view frame]; + } else { + frame = [self->window frame]; + } - frame.origin.x = x; - frame.origin.y = y; + frame.origin.x = x; + frame.origin.y = y; - frame = rectFlip(frame); - - if (parent) { - double offset = 0; - MilskoCocoaWindow *parentWindow = parent->cocoa.real->window; - offset = - [parentWindow frameRectForContentRect:[parentWindow frame]] - .size.height - - [parentWindow contentRectForFrameRect:[parentWindow frame]].size.height; - - frame.origin.x += [parentWindow frame].origin.x; - frame.origin.y -= [parentWindow frame].origin.y - offset; - frame.origin.y -= offset; - } - - [self->view setFrameSize:frame.size]; - - [self->window setFrameOrigin:frame.origin]; - - [self forceRender]; + if(!parent) { + frame = rectFlip(frame); + [self->window setFrame:frame display:TRUE animate:TRUE]; + } else { + frame = localRectFlip(frame, parent->cocoa.real->view); + [self->view setBounds:frame]; + } }; - (void)setW:(int)w H:(int)h { - NSRect frame = [self->window frame]; - frame.size.width = w; - frame.size.height = h; + NSRect frame = [self->window frame]; + frame.size.width = w; + frame.size.height = h; - self->rect = frame; + self->rect = frame; - [self->view setFrameSize:frame.size]; - [self->window setFrame:frame display:YES animate:false]; - [self forceRender]; + [self->view setFrameSize:frame.size]; + if(self->parent) { + [self->view setFrame:frame]; + } else { + [self->window setFrame:frame display:YES animate:false]; + } }; - (int)pending { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - MwBool isPending = MwFALSE; - - if (_forceRender) { - _forceRender = MwFALSE; - [pool release]; - return 1; - } - self->lastEvent = [self->window nextEventMatchingMask:NSAnyEventMask - untilDate:[NSDate distantPast] - inMode:NSDefaultRunLoopMode - dequeue:YES]; - [self->lastEvent retain]; - - if (!self->lastEvent) { - [NSApp runModalSession:self->modalSession]; - } - - isPending = self->lastEvent != NULL; - [pool release]; - return isPending; + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + [NSApp runModalSession:self->modalSession]; + [pool release]; + return 1; }; -+ (void)eventCanceller:(MilskoCocoa *)this { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSEvent *event = [NSEvent otherEventWithType:NSApplicationDefined - location:NSMakePoint(0, 0) - modifierFlags:0 - timestamp:0 - windowNumber:0 - context:nil - subtype:0 - data1:0 - data2:0]; - - this->lastEvent = [this->window currentEvent]; - [this eventProcess:this->lastEvent]; - - [NSApp postEvent:event atStart:YES]; - [pool release]; - - [[NSApplication sharedApplication] stop:nil]; - usleep(1000); -} - - (void)getNextEvent { - NSEvent *event; + [self eventProcess:self->lastEvent]; - [self eventProcess:self->lastEvent]; + if(_forceRender) { + MwLL h = [self->handle pointer]; + MwLLDispatch(h, draw, NULL); + [self->view setNeedsDisplay:true]; + _forceRender = MwFALSE; + } + [self sendClipboardEvent]; - if (_forceRender) { - MwLL h = [self->handle pointer]; - MwLLDispatch(h, draw, NULL); - _forceRender = MwFALSE; - } - [self sendClipboardEvent]; + if(self->pointerLocked && [self->window isMainWindow] && self->lastEvent) { + struct CGPoint pos; + pos.x = [window frame].origin.x + [window frame].size.width / 2; + pos.y = [window frame].origin.y + [window frame].size.height / 2; - if (self->pointerLocked && [self->window isMainWindow] && self->lastEvent) { - struct CGPoint pos; - pos.x = [window frame].origin.x + [window frame].size.width / 2; - pos.y = [window frame].origin.y + [window frame].size.height / 2; + CGWarpMouseCursorPosition(pos); + } - CGWarpMouseCursorPosition(pos); - } - - [self->application updateWindows]; + [self->application updateWindows]; }; -- (void)eventProcess:(NSEvent *)ev { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSWindow *win = [ev window]; - MwLL h; - MwBool doSendEvent = MwTRUE; +- (void)eventProcess:(NSEvent*)ev { + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + NSWindow* win = [ev window]; + MwLL h; + MwBool doSendEvent = MwTRUE; - if (!win) { - [pool release]; - return; - } + if(!win) { + [pool release]; + return; + } - if ([[[win contentView] subviews] count] == 0) { - printf("no subviews on %p\n", win); - [pool release]; - return; - } else { - h = [((MilskoFakePointer *)[[[win contentView] subviews] - objectAtIndex:0]) pointer]; - } + if([[[win contentView] subviews] count] == 0) { + printf("no subviews on %p\n", win); + [pool release]; + return; + } else { + h = [((MilskoFakePointer*)[[[win contentView] subviews] + objectAtIndex:0]) pointer]; + } - switch ([ev type]) { - case NSLeftMouseDragged: - case NSRightMouseDragged: - case NSOtherMouseDragged: - case NSMouseMoved: { - MwPoint pos; - NSPoint pos_translated = pointFlip([ev locationInWindow]); - pos.x = pos_translated.x; - pos.y = pos_translated.y; - MwLLDispatch(h, move, &pos); - // break; - } - case NSLeftMouseDown: - case NSRightMouseDown: - case NSOtherMouseDown: - case NSLeftMouseUp: - case NSRightMouseUp: - case NSOtherMouseUp: { - [self handleMouseEvent:ev ll:h]; - break; - } - case NSMouseEntered: - MwLLDispatch(h, focus_in, NULL); - [self->cursor push]; - break; - case NSMouseExited: - MwLLDispatch(h, focus_out, NULL); - [self->cursor pop]; - break; - case NSKeyDown: - case NSKeyUp: { - [self handleKeyEvent:ev ll:h]; - break; - } - case NSCursorUpdate: - [self->cursor set]; - break; - case NSScrollWheel: - break; - default: - /* mute bizarre "unknown subtype" errors that flood the console */ - break; - }; - if (doSendEvent) { - [win sendEvent:ev]; - } - [pool release]; + switch([ev type]) { + case NSLeftMouseDragged: + case NSRightMouseDragged: + case NSOtherMouseDragged: + case NSMouseMoved: { + MwPoint pos; + NSPoint pos_translated = pointFlip([ev locationInWindow]); + pos.x = pos_translated.x; + pos.y = pos_translated.y; + MwLLDispatch(h, move, &pos); + break; + } + case NSLeftMouseDown: + case NSRightMouseDown: + case NSOtherMouseDown: + case NSLeftMouseUp: + case NSRightMouseUp: + case NSOtherMouseUp: { + [self handleMouseEvent:ev ll:h]; + break; + } + + case NSMouseEntered: + MwLLDispatch(h, focus_in, NULL); + [self->cursor push]; + break; + case NSMouseExited: + MwLLDispatch(h, focus_out, NULL); + [self->cursor pop]; + break; + case NSKeyDown: + case NSKeyUp: { + [self handleKeyEvent:ev ll:h]; + break; + } + case NSCursorUpdate: + [self->cursor set]; + break; + case NSScrollWheel: + break; + default: + /* mute bizarre "unknown subtype" errors that flood the console */ + break; + }; + if(doSendEvent) { + [win sendEvent:ev]; + } + [pool release]; } -- (void)handleMouseEvent:(NSEvent *)ev ll:(MwLL)ll { - MwLLMouse mouse; - MwBool isDown = MwTRUE; - NSPoint mousePoint = [ev locationInWindow]; - mousePoint.y = [[ev window] frame].size.height - mousePoint.y; - MwLL this = [self->handle pointer]; +- (void)handleMouseEvent:(NSEvent*)ev ll:(MwLL)ll { + MwLLMouse mouse; + MwBool isDown = MwTRUE; + NSPoint mousePoint = [ev locationInWindow]; + mousePoint.y = [[ev window] frame].size.height - mousePoint.y; + MwLL this = [self->handle pointer]; - switch ([ev type]) { - case NSLeftMouseUp: - isDown = MwFALSE; - case NSEventTypeLeftMouseDragged: - case NSLeftMouseDown: - mouse.button = MwLLMouseLeft; - break; - case NSRightMouseUp: - isDown = MwFALSE; - case NSRightMouseDown: - case NSEventTypeRightMouseDragged: - mouse.button = MwLLMouseRight; - break; - case NSOtherMouseUp: - isDown = MwFALSE; - case NSOtherMouseDown: - case NSEventTypeOtherMouseDragged: - mouse.button = MwLLMouseMiddle; - break; - default: - break; - } - mouse.point.x = mousePoint.x; - mouse.point.y = mousePoint.y; + switch([ev type]) { + case NSLeftMouseUp: + isDown = MwFALSE; + case NSEventTypeLeftMouseDragged: + case NSLeftMouseDown: + mouse.button = MwLLMouseLeft; + break; + case NSRightMouseUp: + isDown = MwFALSE; + case NSRightMouseDown: + case NSEventTypeRightMouseDragged: + mouse.button = MwLLMouseRight; + break; + case NSOtherMouseUp: + isDown = MwFALSE; + case NSOtherMouseDown: + case NSEventTypeOtherMouseDragged: + mouse.button = MwLLMouseMiddle; + break; + default: + break; + } + mouse.point.x = mousePoint.x; + mouse.point.y = mousePoint.y; - if (isDown) { - MwLLDispatch(ll, down, &mouse); - } else { - MwLLDispatch(ll, up, &mouse); - } + printf("%s at %d %d\n", isDown ? "down" : "up", mouse.point.x, mouse.point.y); + + if(isDown) { + MwLLDispatch(ll, down, &mouse); + } else { + MwLLDispatch(ll, up, &mouse); + } } -- (void)handleKeyEvent:(NSEvent *)ev ll:(MwLL)ll { - int ch; - MwLL this = [self->handle pointer]; - enum { - kVK_ANSI_A = 0x00, - kVK_ANSI_S = 0x01, - kVK_ANSI_D = 0x02, - kVK_ANSI_F = 0x03, - kVK_ANSI_H = 0x04, - kVK_ANSI_G = 0x05, - kVK_ANSI_Z = 0x06, - kVK_ANSI_X = 0x07, - kVK_ANSI_C = 0x08, - kVK_ANSI_V = 0x09, - kVK_ANSI_B = 0x0B, - kVK_ANSI_Q = 0x0C, - kVK_ANSI_W = 0x0D, - kVK_ANSI_E = 0x0E, - kVK_ANSI_R = 0x0F, - kVK_ANSI_Y = 0x10, - kVK_ANSI_T = 0x11, - kVK_ANSI_1 = 0x12, - kVK_ANSI_2 = 0x13, - kVK_ANSI_3 = 0x14, - kVK_ANSI_4 = 0x15, - kVK_ANSI_6 = 0x16, - kVK_ANSI_5 = 0x17, - kVK_ANSI_Equal = 0x18, - kVK_ANSI_9 = 0x19, - kVK_ANSI_7 = 0x1A, - kVK_ANSI_Minus = 0x1B, - kVK_ANSI_8 = 0x1C, - kVK_ANSI_0 = 0x1D, - kVK_ANSI_RightBracket = 0x1E, - kVK_ANSI_O = 0x1F, - kVK_ANSI_U = 0x20, - kVK_ANSI_LeftBracket = 0x21, - kVK_ANSI_I = 0x22, - kVK_ANSI_P = 0x23, - kVK_ANSI_L = 0x25, - kVK_ANSI_J = 0x26, - kVK_ANSI_Quote = 0x27, - kVK_ANSI_K = 0x28, - kVK_ANSI_Semicolon = 0x29, - kVK_ANSI_Backslash = 0x2A, - kVK_ANSI_Comma = 0x2B, - kVK_ANSI_Slash = 0x2C, - kVK_ANSI_N = 0x2D, - kVK_ANSI_M = 0x2E, - kVK_ANSI_Period = 0x2F, - kVK_ANSI_Grave = 0x32, - kVK_Return = 0x24, - kVK_Space = 0x31, - kVK_Escape = 0x35, - kVK_Shift = 0x38, - kVK_Control = 0x3B, - kVK_RightShift = 0x3C, - kVK_RightControl = 0x3E, - kVK_LeftArrow = 0x7B, - kVK_RightArrow = 0x7C, - kVK_DownArrow = 0x7D, - kVK_UpArrow = 0x7E - }; -#define KEY_CASE(x, y) \ - case x: \ - ch = y; \ - break; - switch ([ev keyCode]) { - KEY_CASE(kVK_ANSI_A, 'a') - KEY_CASE(kVK_ANSI_B, 'b') - KEY_CASE(kVK_ANSI_C, 'c') - KEY_CASE(kVK_ANSI_D, 'd') - KEY_CASE(kVK_ANSI_E, 'e') - KEY_CASE(kVK_ANSI_F, 'f') - KEY_CASE(kVK_ANSI_G, 'g') - KEY_CASE(kVK_ANSI_H, 'h') - KEY_CASE(kVK_ANSI_I, 'i') - KEY_CASE(kVK_ANSI_J, 'j') - KEY_CASE(kVK_ANSI_K, 'k') - KEY_CASE(kVK_ANSI_L, 'l') - KEY_CASE(kVK_ANSI_M, 'm') - KEY_CASE(kVK_ANSI_N, 'n') - KEY_CASE(kVK_ANSI_O, 'o') - KEY_CASE(kVK_ANSI_P, 'p') - KEY_CASE(kVK_ANSI_Q, 'q') - KEY_CASE(kVK_ANSI_R, 'r') - KEY_CASE(kVK_ANSI_S, 's') - KEY_CASE(kVK_ANSI_T, 't') - KEY_CASE(kVK_ANSI_U, 'u') - KEY_CASE(kVK_ANSI_V, 'v') - KEY_CASE(kVK_ANSI_W, 'w') - KEY_CASE(kVK_ANSI_X, 'x') - KEY_CASE(kVK_ANSI_Y, 'y') - KEY_CASE(kVK_ANSI_Z, 'z') - KEY_CASE(kVK_ANSI_0, '0') - KEY_CASE(kVK_ANSI_1, '1') - KEY_CASE(kVK_ANSI_2, '2') - KEY_CASE(kVK_ANSI_3, '3') - KEY_CASE(kVK_ANSI_4, '4') - KEY_CASE(kVK_ANSI_5, '5') - KEY_CASE(kVK_ANSI_6, '6') - KEY_CASE(kVK_ANSI_7, '7') - KEY_CASE(kVK_ANSI_8, '8') - KEY_CASE(kVK_ANSI_9, '9') - KEY_CASE(kVK_ANSI_Quote, '\"') - KEY_CASE(kVK_ANSI_Grave, '`') - KEY_CASE(kVK_ANSI_Backslash, '/') - KEY_CASE(kVK_ANSI_Comma, ',') - KEY_CASE(kVK_ANSI_Equal, '=') - KEY_CASE(kVK_Escape, MwLLKeyEscape) - KEY_CASE(kVK_ANSI_LeftBracket, '[') - KEY_CASE(kVK_ANSI_Minus, '-') - KEY_CASE(kVK_ANSI_Period, '.') - KEY_CASE(kVK_Return, MwLLKeyEnter) - KEY_CASE(kVK_ANSI_RightBracket, ']') - KEY_CASE(kVK_ANSI_Semicolon, ';') - KEY_CASE(kVK_ANSI_Slash, '\\') - KEY_CASE(kVK_Space, ' ') - KEY_CASE(kVK_Control, MwLLKeyControl) - KEY_CASE(kVK_RightControl, MwLLKeyControl) - KEY_CASE(kVK_Shift, MwLLKeyLeftShift) - KEY_CASE(kVK_RightShift, MwLLKeyRightShift) - KEY_CASE(kVK_DownArrow, MwLLKeyDown) - KEY_CASE(kVK_LeftArrow, MwLLKeyLeft) - KEY_CASE(kVK_RightArrow, MwLLKeyRight) - KEY_CASE(kVK_UpArrow, MwLLKeyUp) - } - switch ([ev type]) { - case NSKeyDown: - MwLLDispatch(this, key, &ch); - MwLLDispatch(ll, key, &ch); - break; - case NSKeyUp: - MwLLDispatch(this, key_released, &ch); - MwLLDispatch(ll, key_released, &ch); - break; - default: - break; - } +- (void)handleKeyEvent:(NSEvent*)ev ll:(MwLL)ll { + int ch; + MwLL this = [self->handle pointer]; + enum { + kVK_ANSI_A = 0x00, + kVK_ANSI_S = 0x01, + kVK_ANSI_D = 0x02, + kVK_ANSI_F = 0x03, + kVK_ANSI_H = 0x04, + kVK_ANSI_G = 0x05, + kVK_ANSI_Z = 0x06, + kVK_ANSI_X = 0x07, + kVK_ANSI_C = 0x08, + kVK_ANSI_V = 0x09, + kVK_ANSI_B = 0x0B, + kVK_ANSI_Q = 0x0C, + kVK_ANSI_W = 0x0D, + kVK_ANSI_E = 0x0E, + kVK_ANSI_R = 0x0F, + kVK_ANSI_Y = 0x10, + kVK_ANSI_T = 0x11, + kVK_ANSI_1 = 0x12, + kVK_ANSI_2 = 0x13, + kVK_ANSI_3 = 0x14, + kVK_ANSI_4 = 0x15, + kVK_ANSI_6 = 0x16, + kVK_ANSI_5 = 0x17, + kVK_ANSI_Equal = 0x18, + kVK_ANSI_9 = 0x19, + kVK_ANSI_7 = 0x1A, + kVK_ANSI_Minus = 0x1B, + kVK_ANSI_8 = 0x1C, + kVK_ANSI_0 = 0x1D, + kVK_ANSI_RightBracket = 0x1E, + kVK_ANSI_O = 0x1F, + kVK_ANSI_U = 0x20, + kVK_ANSI_LeftBracket = 0x21, + kVK_ANSI_I = 0x22, + kVK_ANSI_P = 0x23, + kVK_ANSI_L = 0x25, + kVK_ANSI_J = 0x26, + kVK_ANSI_Quote = 0x27, + kVK_ANSI_K = 0x28, + kVK_ANSI_Semicolon = 0x29, + kVK_ANSI_Backslash = 0x2A, + kVK_ANSI_Comma = 0x2B, + kVK_ANSI_Slash = 0x2C, + kVK_ANSI_N = 0x2D, + kVK_ANSI_M = 0x2E, + kVK_ANSI_Period = 0x2F, + kVK_ANSI_Grave = 0x32, + kVK_Return = 0x24, + kVK_Space = 0x31, + kVK_Escape = 0x35, + kVK_Shift = 0x38, + kVK_Control = 0x3B, + kVK_RightShift = 0x3C, + kVK_RightControl = 0x3E, + kVK_LeftArrow = 0x7B, + kVK_RightArrow = 0x7C, + kVK_DownArrow = 0x7D, + kVK_UpArrow = 0x7E + }; +#define KEY_CASE(x, y) \ + case x: \ + ch = y; \ + break; + switch([ev keyCode]) { + KEY_CASE(kVK_ANSI_A, 'a') + KEY_CASE(kVK_ANSI_B, 'b') + KEY_CASE(kVK_ANSI_C, 'c') + KEY_CASE(kVK_ANSI_D, 'd') + KEY_CASE(kVK_ANSI_E, 'e') + KEY_CASE(kVK_ANSI_F, 'f') + KEY_CASE(kVK_ANSI_G, 'g') + KEY_CASE(kVK_ANSI_H, 'h') + KEY_CASE(kVK_ANSI_I, 'i') + KEY_CASE(kVK_ANSI_J, 'j') + KEY_CASE(kVK_ANSI_K, 'k') + KEY_CASE(kVK_ANSI_L, 'l') + KEY_CASE(kVK_ANSI_M, 'm') + KEY_CASE(kVK_ANSI_N, 'n') + KEY_CASE(kVK_ANSI_O, 'o') + KEY_CASE(kVK_ANSI_P, 'p') + KEY_CASE(kVK_ANSI_Q, 'q') + KEY_CASE(kVK_ANSI_R, 'r') + KEY_CASE(kVK_ANSI_S, 's') + KEY_CASE(kVK_ANSI_T, 't') + KEY_CASE(kVK_ANSI_U, 'u') + KEY_CASE(kVK_ANSI_V, 'v') + KEY_CASE(kVK_ANSI_W, 'w') + KEY_CASE(kVK_ANSI_X, 'x') + KEY_CASE(kVK_ANSI_Y, 'y') + KEY_CASE(kVK_ANSI_Z, 'z') + KEY_CASE(kVK_ANSI_0, '0') + KEY_CASE(kVK_ANSI_1, '1') + KEY_CASE(kVK_ANSI_2, '2') + KEY_CASE(kVK_ANSI_3, '3') + KEY_CASE(kVK_ANSI_4, '4') + KEY_CASE(kVK_ANSI_5, '5') + KEY_CASE(kVK_ANSI_6, '6') + KEY_CASE(kVK_ANSI_7, '7') + KEY_CASE(kVK_ANSI_8, '8') + KEY_CASE(kVK_ANSI_9, '9') + KEY_CASE(kVK_ANSI_Quote, '\"') + KEY_CASE(kVK_ANSI_Grave, '`') + KEY_CASE(kVK_ANSI_Backslash, '/') + KEY_CASE(kVK_ANSI_Comma, ',') + KEY_CASE(kVK_ANSI_Equal, '=') + KEY_CASE(kVK_Escape, MwLLKeyEscape) + KEY_CASE(kVK_ANSI_LeftBracket, '[') + KEY_CASE(kVK_ANSI_Minus, '-') + KEY_CASE(kVK_ANSI_Period, '.') + KEY_CASE(kVK_Return, MwLLKeyEnter) + KEY_CASE(kVK_ANSI_RightBracket, ']') + KEY_CASE(kVK_ANSI_Semicolon, ';') + KEY_CASE(kVK_ANSI_Slash, '\\') + KEY_CASE(kVK_Space, ' ') + KEY_CASE(kVK_Control, MwLLKeyControl) + KEY_CASE(kVK_RightControl, MwLLKeyControl) + KEY_CASE(kVK_Shift, MwLLKeyLeftShift) + KEY_CASE(kVK_RightShift, MwLLKeyRightShift) + KEY_CASE(kVK_DownArrow, MwLLKeyDown) + KEY_CASE(kVK_LeftArrow, MwLLKeyLeft) + KEY_CASE(kVK_RightArrow, MwLLKeyRight) + KEY_CASE(kVK_UpArrow, MwLLKeyUp) + } + switch([ev type]) { + case NSKeyDown: + MwLLDispatch(this, key, &ch); + MwLLDispatch(ll, key, &ch); + break; + case NSKeyUp: + MwLLDispatch(this, key_released, &ch); + MwLLDispatch(ll, key_released, &ch); + break; + default: + break; + } } - (void)sendClipboardEvent { - /*NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; - NSArray* items = @[ - @"public.utf8-plain-text", - @"public.utf16-external-plain-text", - @"com.apple.traditional-mac-plain-text", - ]; - MwLL this = self->handle.pointer; + /*NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; + NSArray* items = @[ + @"public.utf8-plain-text", + @"public.utf16-external-plain-text", + @"com.apple.traditional-mac-plain-text", + ]; + MwLL this = self->handle.pointer; - if([pasteboard canReadItemWithDataConformingToTypes:items]) { - char* data = NULL; - size_t size = 0; - for(NSPasteboardItem* item in [pasteboard pasteboardItems]) { - for(NSString* it in items) { - NSString* itemData = [item - stringForType:(NSString*)it]; if(itemData != NULL) { if(strHash != 0 && - strHash != [itemData hash]) { char* text = malloc([itemData length]); - strncpy(text, [itemData UTF8String], - [itemData length]); MwLLDispatch(this, clipboard, text); printf("%s -> %p\n", - text, this); free(text); - } - strHash = [itemData hash]; - } - } - } - } + if([pasteboard canReadItemWithDataConformingToTypes:items]) { + char* data = NULL; + size_t size = 0; + for(NSPasteboardItem* item in [pasteboard pasteboardItems]) { + for(NSString* it in items) { + NSString* itemData = [item + stringForType:(NSString*)it]; if(itemData != NULL) { if(strHash != 0 && + strHash != [itemData hash]) { char* text = malloc([itemData length]); + strncpy(text, [itemData UTF8String], + [itemData length]); MwLLDispatch(this, clipboard, text); printf("%s -> %p\n", + text, this); free(text); + } + strHash = [itemData hash]; + } + } + } + } - [pool release];*/ + [pool release];*/ } -- (void)setTitle:(const char *)title { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - [self->window - setTitleWithRepresentedFilename:[NSString stringWithUTF8String:title]]; - [pool release]; +- (void)setTitle:(const char*)title { + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + [self->window + setTitleWithRepresentedFilename:[NSString stringWithUTF8String:title]]; + [pool release]; }; -- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect *)_rect { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - MilskoCocoaPixmap *p = pixmap->cocoa.real; - NSGraphicsContext *ctx = [self->view context]; - if (ctx) { - [NSGraphicsContext saveGraphicsState]; - [NSGraphicsContext setCurrentContext:ctx]; +- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect*)_rect { + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + MilskoCocoaPixmap* p = pixmap->cocoa.real; + NSGraphicsContext* ctx = [self->view context]; + if(ctx) { + [NSGraphicsContext saveGraphicsState]; + [NSGraphicsContext setCurrentContext:ctx]; - [[p image] - drawInRect:NSMakeRect(_rect->x, _rect->y, _rect->width, _rect->height) - fromRect:NSZeroRect - operation:NSCompositeSourceOver - fraction:1.0]; + [[p image] + drawInRect:NSMakeRect(_rect->x, _rect->y, _rect->width, _rect->height) + fromRect:NSZeroRect + operation:NSCompositeSourceOver + fraction:1.0]; - [NSGraphicsContext restoreGraphicsState]; + [NSGraphicsContext restoreGraphicsState]; - [self->view setNeedsDisplay:YES]; - } - [pool release]; + [self->view setNeedsDisplay:YES]; + } + [pool release]; }; - (void)setIcon:(MwLLPixmap)pixmap { - [self->application setApplicationIconImage:[pixmap->cocoa.real image]]; + [self->application setApplicationIconImage:[pixmap->cocoa.real image]]; }; - (void)forceRender { - self->_forceRender = MwTRUE; - // NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - // NSEvent *event = [NSEvent otherEventWithType:NSApplicationDefined - // location:NSMakePoint(0, 0) - // modifierFlags:0 - // timestamp:0 - // windowNumber:0 - // context:nil - // subtype:0 - // data1:0 - // data2:0]; - // [NSApp postEvent:event atStart:YES]; - // [pool release]; + self->_forceRender = MwTRUE; + // NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + // NSEvent *event = [NSEvent otherEventWithType:NSApplicationDefined + // location:NSMakePoint(0, 0) + // modifierFlags:0 + // timestamp:0 + // windowNumber:0 + // context:nil + // subtype:0 + // data1:0 + // data2:0]; + // [NSApp postEvent:event atStart:YES]; + // [pool release]; }; -- (void)setCursor:(MwCursor *)image mask:(MwCursor *)mask { - int y, x, ys, xs; - unsigned char *di = malloc(image->width * image->height * 4); - memset(di, 0, image->width * image->height * 4); +- (void)setCursor:(MwCursor*)image mask:(MwCursor*)mask { + int y, x, ys, xs; + unsigned char* di = malloc(image->width * image->height * 4); + memset(di, 0, image->width * image->height * 4); - if (self->cursorPixmap) { - [self->cursorPixmap destroy]; - } - self->cursorPixmap = - [MilskoCocoaPixmap newWithWidth:image->width height:image->height]; + if(self->cursorPixmap) { + [self->cursorPixmap destroy]; + } + self->cursorPixmap = + [MilskoCocoaPixmap newWithWidth:image->width + height:image->height]; - xs = -mask->x + image->x; - ys = MwCursorDataHeight + mask->y; - ys = MwCursorDataHeight + image->y - ys; + xs = -mask->x + image->x; + ys = MwCursorDataHeight + mask->y; + ys = MwCursorDataHeight + image->y - ys; - for (y = 0; y < mask->height; y++) { - unsigned int d = mask->data[y]; - for (x = mask->width - 1; x >= 0; x--) { - int px = 0; - int idx = ((y * mask->width) + x) * 4; + for(y = 0; y < mask->height; y++) { + unsigned int d = mask->data[y]; + for(x = mask->width - 1; x >= 0; x--) { + int px = 0; + int idx = ((y * mask->width) + x) * 4; - if (d & 1) { - di[idx + 3] = 255; - }; - d = d >> 1; - } - } - for (y = 0; y < image->height; y++) { - unsigned int d = image->data[y]; - for (x = image->width - 1; x >= 0; x--) { - int px = 0; - int idx = ((y * image->width) + x) * 4; + if(d & 1) { + di[idx + 3] = 255; + }; + d = d >> 1; + } + } + for(y = 0; y < image->height; y++) { + unsigned int d = image->data[y]; + for(x = image->width - 1; x >= 0; x--) { + int px = 0; + int idx = ((y * image->width) + x) * 4; - if (d & 1) { - px = 255; - }; + if(d & 1) { + px = 255; + }; - di[idx] = px; - di[idx + 1] = px; - di[idx + 2] = px; - d = d >> 1; - } - } + di[idx] = px; + di[idx + 1] = px; + di[idx + 2] = px; + d = d >> 1; + } + } - [self->cursorPixmap updateWithData:di]; + [self->cursorPixmap updateWithData:di]; - self->cursor = [[NSCursor alloc] - initWithImage:[self->cursorPixmap image] - hotSpot:NSMakePoint(image->x, image->y + image->height)]; - [self->cursor retain]; + self->cursor = [[NSCursor alloc] + initWithImage:[self->cursorPixmap image] + hotSpot:NSMakePoint(image->x, image->y + image->height)]; + [self->cursor retain]; - [self->cursor pop]; - [self->cursor push]; + [self->cursor pop]; + [self->cursor push]; - free(di); + free(di); }; -- (void)detachWithPoint:(MwPoint *)point { - [self->window setParentWindow:NULL]; +- (void)detachWithPoint:(MwPoint*)point { + [self->window setParentWindow:NULL]; }; - (void)show:(int)show { - (void)show; + (void)show; }; - (void)makePopupWithParent:(MwLL)_parent { - (void)_parent; + (void)_parent; }; - (void)setSizeHintsWithMinX:(int)minx - MinY:(int)miny - MaxX:(int)maxx - MaxY:(int)maxy { - [self->window setMinSize:NSMakeSize(minx, miny)]; - [self->window setMaxSize:NSMakeSize(maxx, maxy)]; + MinY:(int)miny + MaxX:(int)maxx + MaxY:(int)maxy { + [self->window setMinSize:NSMakeSize(minx, miny)]; + [self->window setMaxSize:NSMakeSize(maxx, maxy)]; }; - (void)makeBorderless:(int)toggle { - MwU32 mask = [self->window styleMask]; - if (toggle) { - mask ^= NSBorderlessWindowMask; - mask |= NSTitledWindowMask; - } else { - mask |= NSBorderlessWindowMask; - mask ^= NSTitledWindowMask; - } - [self->window initWithContentRect:self->rect - styleMask:mask - backing:NSBackingStoreBuffered - defer:NO]; + MwU32 mask = [self->window styleMask]; + if(toggle) { + mask ^= NSBorderlessWindowMask; + mask |= NSTitledWindowMask; + } else { + mask |= NSBorderlessWindowMask; + mask ^= NSTitledWindowMask; + } + [self->window initWithContentRect:self->rect + styleMask:mask + backing:NSBackingStoreBuffered + defer:NO]; }; - (void)focus { - [self->window makeMainWindow]; + [self->window makeMainWindow]; }; - (void)grabPointer:(int)toggle { - self->pointerLocked = toggle; + self->pointerLocked = toggle; }; -- (void)setClipboard:(const char *)text { - (void)text; - // TODO: find out how to do this while supporting 10.4 - // NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - // NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; - // [pasteboard declareTypes:[NSArray arrayWithObjects:NSPasteboardTypeString] - // owner:nil]; [pasteboard setString:[NSString stringWithUTF8String:text] - // forType:NSPasteboardTypeString]; [pool release]; +- (void)setClipboard:(const char*)text { + (void)text; + // TODO: find out how to do this while supporting 10.4 + // NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + // NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; + // [pasteboard declareTypes:[NSArray arrayWithObjects:NSPasteboardTypeString] + // owner:nil]; [pasteboard setString:[NSString stringWithUTF8String:text] + // forType:NSPasteboardTypeString]; [pool release]; }; - (void)makeToolWindow { - /* If my understand of what a "tool window" usually is is correct then I - * highly doubt the Mac OS has this and if they did they probably outright - * removed it along time ago is this kind of conflicts with modern UX. So - * we'll just make it borderless idgaf */ - [self makeBorderless:MwTRUE]; + /* If my understand of what a "tool window" usually is is correct then I + * highly doubt the Mac OS has this and if they did they probably outright + * removed it along time ago is this kind of conflicts with modern UX. So + * we'll just make it borderless idgaf */ + [self makeBorderless:MwTRUE]; }; -- (void)getCursorCoord:(MwPoint *)point { - NSPoint p = [NSEvent mouseLocation]; - point->x = p.x; - point->y = p.y; +- (void)getCursorCoord:(MwPoint*)point { + NSPoint p = [NSEvent mouseLocation]; + point->x = p.x; + point->y = p.y; }; -- (void)getScreenSize:(MwRect *)_rect { - NSScreen *screen = [self->window screen]; - _rect->x = [screen frame].origin.x; - _rect->y = [screen frame].origin.y; - _rect->width = [screen frame].size.width; - _rect->height = [screen frame].size.height; +- (void)getScreenSize:(MwRect*)_rect { + NSScreen* screen = [self->window screen]; + _rect->x = [screen frame].origin.x; + _rect->y = [screen frame].origin.y; + _rect->width = [screen frame].size.width; + _rect->height = [screen frame].size.height; }; - (void)destroy { - [self->handle release]; - [self->handle dealloc]; - [self->window release]; - [self->window dealloc]; + [self->handle release]; + [self->handle dealloc]; + [self->window release]; + [self->window dealloc]; } - (MwLL)getParent { - return self->parent; + return self->parent; } -- (NSView *)getView { - return view; +- (NSView*)getView { + return view; } -- (NSWindow *)getWindow { - return window; +- (NSWindow*)getWindow { + return window; } -- (MilskoFakePointer *)getHandle { - return handle; +- (MilskoFakePointer*)getHandle { + return handle; } @end @implementation MilskoCocoaView - (id)initWithFrame:(NSRect)frame { - width = frame.size.width; - height = frame.size.height; - self = [super initWithFrame:frame]; - self->space = CGColorSpaceCreateDeviceRGB(); + width = frame.size.width; + height = frame.size.height; + self = [super initWithFrame:frame]; + self->space = CGColorSpaceCreateDeviceRGB(); - if (width == 0 || height == 0) { - self->rep = NULL; - self->context = NULL; - } else { - [self initRepAndContextWithWidth:width Height:height]; - } + if(width == 0 || height == 0) { + self->rep = NULL; + self->context = NULL; + } else { + [self initRepAndContextWithWidth:width Height:height]; + } - return self; + return self; } -- (NSGraphicsContext *)context { - return self->context; +- (NSGraphicsContext*)context { + return self->context; } -- (NSBitmapImageRep *)getRep { - return self->rep; +- (NSBitmapImageRep*)getRep { + return self->rep; } - (void)drawRect:(NSRect)dirtyRect { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSSize sz = [self->rep size]; - [super drawRect:dirtyRect]; - if (!self->rep) { - if (dirtyRect.size.width && dirtyRect.size.height) { - [self initRepAndContextWithWidth:dirtyRect.size.width - Height:dirtyRect.size.height]; - self->width = dirtyRect.size.width; - self->height = dirtyRect.size.height; - } else { - [pool release]; - return; - } - } + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + NSSize sz = [self->rep size]; + MwLL ll = [((MilskoFakePointer *)[[[[self window] contentView] subviews] + objectAtIndex:0]) pointer]; - [self->rep drawInRect:NSMakeRect(0, 0, sz.width, sz.height)]; + [super drawRect:dirtyRect]; + if(!self->rep) { + if(dirtyRect.size.width && dirtyRect.size.height) { + [self initRepAndContextWithWidth:dirtyRect.size.width + Height:dirtyRect.size.height]; + self->width = dirtyRect.size.width; + self->height = dirtyRect.size.height; + } else { + [pool release]; + return; + } + } - [self->rep bitmapData]; - [pool release]; + // MwLLDispatch(ll, draw, NULL); + + [self->rep drawInRect:dirtyRect]; + + for(NSView* subview in [self subviews]) { + NSRect bounds = [subview bounds]; + [subview drawRect:bounds]; + } + + [self->rep bitmapData]; + + [pool release]; } - (void)initRepAndContextWithWidth:(float)w Height:(float)h { - self->rep = - [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL - pixelsWide:w - pixelsHigh:h - bitsPerSample:8 - samplesPerPixel:4 - hasAlpha:YES - isPlanar:NO - colorSpaceName:NSDeviceRGBColorSpace - bytesPerRow:w * 4 - bitsPerPixel:32]; - assert(self->rep); - [self->rep retain]; + self->rep = + [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL + pixelsWide:w + pixelsHigh:h + bitsPerSample:8 + samplesPerPixel:4 + hasAlpha:YES + isPlanar:NO + colorSpaceName:NSDeviceRGBColorSpace + bytesPerRow:w * 4 + bitsPerPixel:32]; + assert(self->rep); + [self->rep retain]; - self->context = - [NSGraphicsContext graphicsContextWithBitmapImageRep:self->rep]; - assert(self->context); - [self->context retain]; + self->context = + [NSGraphicsContext graphicsContextWithBitmapImageRep:self->rep]; + assert(self->context); + [self->context retain]; } - (void)destroy { - CGColorSpaceRelease(self->space); - [self->rep release]; - [self->context release]; + CGColorSpaceRelease(self->space); + [self->rep release]; + [self->context release]; } - (void)setFrameSize:(NSSize)newSize { - [super setFrameSize:newSize]; - [self->rep setSize:newSize]; + [super setFrameSize:newSize]; + [self->rep setSize:newSize]; - self->width = newSize.width; - self->height = newSize.height; + self->width = newSize.width; + self->height = newSize.height; } - (void)displayRect:(NSRect)rect { - (void)rect; + (void)rect; }; - (BOOL)acceptsFirstResponder { - return MwTRUE; + return MwTRUE; } -- (BOOL)performKeyEquivalent:(NSEvent *)event { - (void)event; - return MwTRUE; +- (BOOL)performKeyEquivalent:(NSEvent*)event { + (void)event; + return MwTRUE; } @end @implementation MilskoCocoaApplicationDelegate -- (MilskoCocoaApplicationDelegate *)initWithAppl:(NSApplication *)_appl { - self->appl = _appl; - return self; +- (MilskoCocoaApplicationDelegate*)initWithAppl:(NSApplication*)_appl { + self->appl = _appl; + return self; } -- (void)applicationDidBecomeActive:(NSNotification *)notification { - [self->appl activateIgnoringOtherApps:true]; - // printf("test\n"); +- (void)applicationDidBecomeActive:(NSNotification*)notification { + [self->appl activateIgnoringOtherApps:true]; + // printf("test\n"); } -- (void)applicationWillFinishLaunching:(NSNotification *)notification { - // printf("test\n"); - // [self->appl activateIgnoringOtherApps:MwTRUE]; +- (void)applicationWillFinishLaunching:(NSNotification*)notification { + // printf("test\n"); + // [self->appl activateIgnoringOtherApps:MwTRUE]; } -- (void)applicationDidFinishLaunching:(NSNotification *)notification { - // [self->appl activateIgnoringOtherApps:MwTRUE]; +- (void)applicationDidFinishLaunching:(NSNotification*)notification { + // [self->appl activateIgnoringOtherApps:MwTRUE]; } @end @implementation MilskoCocoaWindowDelegate -- (NSSize)windowWillResize:(NSWindow *)win toSize:(NSSize)frameSize; +- (NSSize)windowWillResize:(NSWindow*)win toSize:(NSSize)frameSize; { - if ([[[win contentView] subviews] count] >= 1) { - MilskoFakePointer *ptr = [[[win contentView] subviews] objectAtIndex:0]; - MwLL h = [ptr pointer]; + if([[[win contentView] subviews] count] >= 1) { + MilskoFakePointer* ptr = [[[win contentView] subviews] objectAtIndex:0]; + MwLL h = [ptr pointer]; - // MwLLDispatch(h, resize, NULL); - MwLLDispatch(h, draw, NULL); - } - return frameSize; + MwLLDispatch(h, resize, NULL); + MwLLDispatch(h, draw, NULL); + } + return frameSize; } -- (void)windowDidBecomeMain:(NSNotification *)notification { - if ([[[w contentView] subviews] count] != 0) { - MwLL h = [((MilskoFakePointer *)[[[w contentView] subviews] - objectAtIndex:0]) pointer]; - MwLLDispatch(h, focus_in, NULL); - } - [self->w makeKeyAndOrderFront:nil]; +- (void)windowDidBecomeMain:(NSNotification*)notification { + if([[[w contentView] subviews] count] != 0) { + MwLL h = [((MilskoFakePointer*)[[[w contentView] subviews] + objectAtIndex:0]) pointer]; + MwLLDispatch(h, focus_in, NULL); + } + [self->w makeKeyAndOrderFront:nil]; } -- (void)windowDidResize:(NSNotification *)notification { - (void)notification; +- (void)windowDidResize:(NSNotification*)notification { + (void)notification; } // This will close/terminate the application when the main window is closed. -- (void)windowWillClose:(NSNotification *)notification { - (void)notification; - // MilskoCocoa *window = notification.object; - // MwLL handle = [window getHandle].pointer; - // MwLLDispatch(handle, close, NULL); - [NSApp terminate:nil]; +- (void)windowWillClose:(NSNotification*)notification { + (void)notification; + // MilskoCocoa *window = notification.object; + // MwLL handle = [window getHandle].pointer; + // MwLLDispatch(handle, close, NULL); + [NSApp terminate:nil]; } -- (MilskoCocoaWindowDelegate *)initWithWin:(NSWindow *)win { - self->w = win; - return self; +- (MilskoCocoaWindowDelegate*)initWithWin:(NSWindow*)win { + self->w = win; + return self; } @end @implementation MilskoFakePointer -- (void)setPointer:(void *)pointer { - [self setFrame:*(NSRect *)&pointer]; - self->ptr = pointer; +- (void)setPointer:(void*)pointer { + [self setFrame:*(NSRect*)&pointer]; + self->ptr = pointer; }; -- (void *)pointer { - return self->ptr; +- (void*)pointer { + return self->ptr; }; - (void)drawRect:(NSRect)dirtyRect { - /* explicitly do nothing */ - (void)dirtyRect; + /* explicitly do nothing */ + (void)dirtyRect; } - (void)destroy { @@ -997,227 +968,236 @@ static NSPoint pointFlip(NSPoint point) { @implementation MilskoCocoaWindow - (BOOL)canBecomeKeyWindow { - return true; + return true; } - (BOOL)canBecomeMainWindow { - return true; + return true; } @end static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { - MwLL r; - (void)x; - (void)y; - (void)width; - (void)height; + MwLL r; + r = malloc(sizeof(*r)); - r = malloc(sizeof(*r)); + MwLLCreateCommon(r); - MwLLCreateCommon(r); + MilskoCocoa* o = [MilskoCocoa newWithParent:parent + x:x + y:y + width:width + height:height + handle:r]; + r->cocoa.real = o; - MilskoCocoa *o = [MilskoCocoa newWithParent:parent - x:x - y:y - width:width - height:height - handle:r]; - r->cocoa.real = o; - - return r; + return r; } static void MwLLDestroyImpl(MwLL handle) { - MilskoCocoa *h = handle->cocoa.real; + MilskoCocoa* h = handle->cocoa.real; - [h destroy]; + [h destroy]; - MwLLDestroyCommon(handle); + MwLLDestroyCommon(handle); - free(handle); + free(handle); } -static void MwLLBeginDrawImpl(MwLL handle) { (void)handle; } - -static void MwLLEndDrawImpl(MwLL handle) { (void)handle; } - -static void MwLLPolygonImpl(MwLL handle, MwPoint *points, int points_count, - MwLLColor color) { - MilskoCocoa *h = handle->cocoa.real; - [h polygonWithPoints:points points_count:points_count color:color]; +static void MwLLBeginDrawImpl(MwLL handle) { + (void)handle; } -static void MwLLLineImpl(MwLL handle, MwPoint *points, MwLLColor color) { - MilskoCocoa *h = handle->cocoa.real; - [h lineWithPoints:points color:color]; +static void MwLLEndDrawImpl(MwLL handle) { + (void)handle; +} + +static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, + MwLLColor color) { + MilskoCocoa* h = handle->cocoa.real; + [h polygonWithPoints:points points_count:points_count color:color]; +} + +static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { + MilskoCocoa* h = handle->cocoa.real; + [h lineWithPoints:points color:color]; } static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { - MwLLColor c = malloc(sizeof(*c)); - MwLLColorUpdate(handle, c, r, g, b); - return c; + MwLLColor c = malloc(sizeof(*c)); + MwLLColorUpdate(handle, c, r, g, b); + return c; } static void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { - (void)handle; + (void)handle; - c->common.red = r; - c->common.green = g; - c->common.blue = b; + c->common.red = r; + c->common.green = g; + c->common.blue = b; } -static void MwLLGetXYWHImpl(MwLL handle, int *x, int *y, unsigned int *w, - unsigned int *height) { - MilskoCocoa *h = handle->cocoa.real; - [h getX:x Y:y W:w H:height]; +static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, + unsigned int* height) { + MilskoCocoa* h = handle->cocoa.real; + [h getX:x Y:y W:w H:height]; } static void MwLLSetXYImpl(MwLL handle, int x, int y) { - MilskoCocoa *h = handle->cocoa.real; - [h setX:x Y:y]; + MilskoCocoa* h = handle->cocoa.real; + [h setX:x Y:y]; } static void MwLLSetWHImpl(MwLL handle, int w, int height) { - MilskoCocoa *h = handle->cocoa.real; - [h setW:w H:height]; + MilskoCocoa* h = handle->cocoa.real; + [h setW:w H:height]; } -static void MwLLFreeColorImpl(MwLLColor color) { free(color); } +static void MwLLFreeColorImpl(MwLLColor color) { + free(color); +} static int MwLLPendingImpl(MwLL handle) { - int p = [handle->cocoa.real pending]; - if (p) { - MwLLDispatch(handle, draw, NULL); - } - return p; + int p = [handle->cocoa.real pending]; + if(p) { + MwLLDispatch(handle, draw, NULL); + } + return p; } static void MwLLNextEventImpl(MwLL handle) { - MilskoCocoa *h = handle->cocoa.real; - [h getNextEvent]; + MilskoCocoa* h = handle->cocoa.real; + [h getNextEvent]; } -static void MwLLSetTitleImpl(MwLL handle, const char *title) { - MilskoCocoa *h = handle->cocoa.real; - [h setTitle:title]; +static void MwLLSetTitleImpl(MwLL handle, const char* title) { + MilskoCocoa* h = handle->cocoa.real; + [h setTitle:title]; } -static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char *data, - int width, int height) { - (void)handle; +static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, + int width, int height) { + (void)handle; - MwLLPixmap r = malloc(sizeof(*r)); + MwLLPixmap r = malloc(sizeof(*r)); - r->common.raw = malloc(4 * width * height); - memcpy(r->common.raw, data, 4 * width * height); + r->common.raw = malloc(4 * width * height); + memcpy(r->common.raw, data, 4 * width * height); - r->common.width = width; - r->common.height = height; + r->common.width = width; + r->common.height = height; - r->cocoa.real = [MilskoCocoaPixmap newWithWidth:width height:height]; + r->cocoa.real = [MilskoCocoaPixmap newWithWidth:width height:height]; - MwLLPixmapUpdate(r); - free(r->common.raw); - return r; + MwLLPixmapUpdate(r); + free(r->common.raw); + return r; } static void MwLLPixmapUpdateImpl(MwLLPixmap pixmap) { - MilskoCocoaPixmap *p = pixmap->cocoa.real; - [p updateWithData:pixmap->common.raw]; + MilskoCocoaPixmap* p = pixmap->cocoa.real; + [p updateWithData:pixmap->common.raw]; } static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { - MilskoCocoaPixmap *p = pixmap->cocoa.real; - [p destroy]; - [p dealloc]; - free(pixmap); + MilskoCocoaPixmap* p = pixmap->cocoa.real; + [p destroy]; + [p dealloc]; + free(pixmap); } -static void MwLLDrawPixmapImpl(MwLL handle, MwRect *rect, MwLLPixmap pixmap) { - MilskoCocoa *h = handle->cocoa.real; - [h drawPixmap:pixmap rect:rect]; - MwLLForceRender(handle); +static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { + MilskoCocoa* h = handle->cocoa.real; + [h drawPixmap:pixmap rect:rect]; + MwLLForceRender(handle); } static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { - MilskoCocoa *h = handle->cocoa.real; - [h setIcon:pixmap]; + MilskoCocoa* h = handle->cocoa.real; + [h setIcon:pixmap]; } static void MwLLForceRenderImpl(MwLL handle) { - MilskoCocoa *h = handle->cocoa.real; - [h forceRender]; + MilskoCocoa* h = handle->cocoa.real; + [h forceRender]; } -static void MwLLSetCursorImpl(MwLL handle, MwCursor *image, MwCursor *mask) { - MilskoCocoa *h = handle->cocoa.real; - [h setCursor:image mask:mask]; +static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { + MilskoCocoa* h = handle->cocoa.real; + [h setCursor:image mask:mask]; } -static void MwLLDetachImpl(MwLL handle, MwPoint *point) { - MilskoCocoa *h = handle->cocoa.real; - [h detachWithPoint:point]; +static void MwLLDetachImpl(MwLL handle, MwPoint* point) { + MilskoCocoa* h = handle->cocoa.real; + [h detachWithPoint:point]; } static void MwLLShowImpl(MwLL handle, int show) { - MilskoCocoa *h = handle->cocoa.real; - [h show:show]; + MilskoCocoa* h = handle->cocoa.real; + [h show:show]; } static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { - MilskoCocoa *h = handle->cocoa.real; - [h makePopupWithParent:parent]; + MilskoCocoa* h = handle->cocoa.real; + [h makePopupWithParent:parent]; } static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, - int maxy) { - MilskoCocoa *h = handle->cocoa.real; - [h setSizeHintsWithMinX:minx MinY:miny MaxX:maxx MaxY:maxy]; + int maxy) { + MilskoCocoa* h = handle->cocoa.real; + [h setSizeHintsWithMinX:minx MinY:miny MaxX:maxx MaxY:maxy]; } static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { - MilskoCocoa *h = handle->cocoa.real; - [h makeBorderless:toggle]; + MilskoCocoa* h = handle->cocoa.real; + [h makeBorderless:toggle]; } static void MwLLFocusImpl(MwLL handle) { - MilskoCocoa *h = handle->cocoa.real; - [h focus]; + MilskoCocoa* h = handle->cocoa.real; + [h focus]; } static void MwLLGrabPointerImpl(MwLL handle, int toggle) { - MilskoCocoa *h = handle->cocoa.real; - [h grabPointer:toggle]; + MilskoCocoa* h = handle->cocoa.real; + [h grabPointer:toggle]; } -static void MwLLSetClipboardImpl(MwLL handle, const char *text) { - MilskoCocoa *h = handle->cocoa.real; - [h setClipboard:text]; +static void MwLLSetClipboardImpl(MwLL handle, const char* text) { + MilskoCocoa* h = handle->cocoa.real; + [h setClipboard:text]; } -static void MwLLGetClipboardImpl(MwLL handle) { (void)handle; } +static void MwLLGetClipboardImpl(MwLL handle) { + (void)handle; +} static void MwLLMakeToolWindowImpl(MwLL handle) { - MilskoCocoa *h = handle->cocoa.real; - [h makeToolWindow]; + MilskoCocoa* h = handle->cocoa.real; + [h makeToolWindow]; } -static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint *point) { - MilskoCocoa *h = handle->cocoa.real; - [h getCursorCoord:point]; +static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { + MilskoCocoa* h = handle->cocoa.real; + [h getCursorCoord:point]; } -static void MwLLGetScreenSizeImpl(MwLL handle, MwRect *rect) { - MilskoCocoa *h = handle->cocoa.real; - [h getScreenSize:rect]; +static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { + MilskoCocoa* h = handle->cocoa.real; + [h getScreenSize:rect]; } -static void MwLLBeginStateChangeImpl(MwLL handle) { MwLLShow(handle, 0); } +static void MwLLBeginStateChangeImpl(MwLL handle) { + MwLLShow(handle, 0); +} -static void MwLLEndStateChangeImpl(MwLL handle) { MwLLShow(handle, 1); } +static void MwLLEndStateChangeImpl(MwLL handle) { + MwLLShow(handle, 1); +} -static int MwLLCocoaCallInitImpl(void) { return 0; } +static int MwLLCocoaCallInitImpl(void) { + return 0; +} #include "call.c" CALL(Cocoa); From d14c17b86e9fcd9929d95b14ca0aff7d5748e446 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 17 Mar 2026 17:43:22 -0700 Subject: [PATCH 206/836] wayland fixes --- examples/basic/clipboard.c | 8 ++--- include/Mw/LowLevel/Wayland.h | 1 + src/backend/wayland.c | 61 +++++++++++++++++++++-------------- 3 files changed, 41 insertions(+), 29 deletions(-) diff --git a/examples/basic/clipboard.c b/examples/basic/clipboard.c index c8882d352..384cbc6fe 100644 --- a/examples/basic/clipboard.c +++ b/examples/basic/clipboard.c @@ -3,7 +3,7 @@ MwWidget window, instructions, text; void resize(MwWidget handle, void* user_data, void* call_data) { - unsigned int w, h, mh; + unsigned int w, h; (void)user_data; (void)call_data; @@ -12,13 +12,13 @@ void resize(MwWidget handle, void* user_data, void* call_data) { h = MwGetInteger(handle, MwNheight); MwVaApply(instructions, - MwNy, 50 + mh, + MwNy, 50, MwNwidth, w - 50 * 2, MwNheight, h - 125 - 50 * 3, NULL); MwVaApply(text, - MwNy, 200 + mh, + MwNy, 200, MwNwidth, w - 50 * 2, MwNheight, h - 125 - 50 * 3, NULL); @@ -30,7 +30,7 @@ void clipboard(MwWidget handle, void* user_data, void* call_data) { (void)user_data; if(clipboard != NULL) { - MwVaApply(text, MwNtext, clipboard); + MwVaApply(text, MwNtext, clipboard, NULL); MwForceRender(text); } MwForceRender(window); diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 0375ecebd..78916dcd9 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -186,6 +186,7 @@ struct _MwLLWayland { MwLL parent; MwBool force_render; + MwBool did_event_loop_early; struct _MwLLWaylandShmBuffer framebuffer; struct _MwLLWaylandShmBuffer cursor; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 7d8faeee1..46b3732a4 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -5,6 +5,8 @@ #include #include "../../external/stb_ds.h" +#include "Mw/BaseTypes.h" +#include "Mw/LowLevel.h" #include #include @@ -432,6 +434,9 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri p.point = self->wayland.cur_mouse_pos; if(p.point.x > self->wayland.x && p.point.x < self->wayland.x + self->wayland.ww && p.point.y > self->wayland.y && p.point.y < self->wayland.y + self->wayland.wh) { int i; + + p.point.x -= self->wayland.x; + p.point.y -= self->wayland.y; switch(button) { case BTN_LEFT: p.button = MwLLMouseLeft; @@ -1038,12 +1043,6 @@ static int event_loop(MwLL handle) { fd.fd = wl_display_get_fd(wayland->display); fd.events = POLLIN; - while(wl_display_prepare_read(handle->wayland.display) != 0) { - if(wl_display_dispatch_pending(handle->wayland.display) > 0) { - return 0; - } - } - /* If an error other than EAGAIN happens, we have likely been disconnected from the Wayland session */ while(wl_display_flush(wayland->display) == -1) { if(errno != EAGAIN) { @@ -1060,19 +1059,17 @@ static int event_loop(MwLL handle) { } } + wl_display_prepare_read(handle->wayland.display); /* Condition where no events are being sent. */ if(!poll(&fd, 1, timeout)) { - wl_display_cancel_read(handle->wayland.display); + wl_display_cancel_read(wayland->display); /* In this case, we need to commit the surface for any animations, etc. */ - wl_surface_commit(handle->wayland.framebuffer.surface); + wl_surface_commit(wayland->framebuffer.surface); return 0; } - if(fd.revents & POLLIN) { - wl_display_read_events(wayland->display); - if(wl_display_dispatch_pending(wayland->display) > 0) { - } - } else { + wl_display_read_events(wayland->display); + if(wl_display_dispatch_pending(wayland->display) < 0) { wl_display_cancel_read(handle->wayland.display); } @@ -1588,32 +1585,42 @@ static int MwLLPendingImpl(MwLL handle) { MwBool pending = MwFALSE; struct timespec timeout; int i; + timeout.tv_nsec = 1; + timeout.tv_sec = 0; + + pending = wl_display_dispatch_timeout(handle->wayland.display, &timeout); if(handle->wayland.always_render) { + event_loop(handle); + return 0; + } + // if(handle->wayland.force_render) { + // // event_loop(handle); + // // handle->wayland.force_render = 0; + // // update_buffer(&handle->wayland.framebuffer); + // return 1; + // } + if(handle->wayland.events_pending || handle->wayland.force_render) { + handle->wayland.did_event_loop_early = MwTRUE; return event_loop(handle); } - timeout.tv_nsec = 10; - timeout.tv_sec = 0; - - if(handle->wayland.force_render) { - return 1; - } - if(handle->wayland.events_pending) { - return 1; - } - - return wl_display_dispatch_timeout(handle->wayland.display, &timeout); + return pending; } static void MwLLNextEventImpl(MwLL handle) { if(!handle->wayland.always_render) { - event_loop(handle); + if(handle->wayland.did_event_loop_early) { + handle->wayland.did_event_loop_early = MwFALSE; + } else { + event_loop(handle); + } } if(handle->wayland.events_pending) { handle->wayland.events_pending = 0; } if(handle->wayland.force_render) { + update_buffer(&handle->wayland.framebuffer); handle->wayland.force_render = 0; } } @@ -1683,6 +1690,10 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { cairo_destroy(c); cairo_surface_destroy(cs); + + MwLLForceRender(handle); + // update_buffer(&handle->wayland.framebuffer); + // wl_surface_damage(handle->wayland.framebuffer.surface, 0, 0, handle->wayland.ww, handle->wayland.wh); } static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { From 1cb8fb6c534eccce5e1937e68d5f724c373b9d97 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 17 Mar 2026 20:28:58 -0700 Subject: [PATCH 207/836] wayland: SEVERAL fixes --- include/Mw/LowLevel/Wayland.h | 4 +- src/backend/wayland.c | 72 ++++++++++++++++++++++------------- src/widget/combobox.c | 2 +- 3 files changed, 49 insertions(+), 29 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 78916dcd9..c09f81b14 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -178,7 +178,9 @@ struct _MwLLWayland { MwBool configured; /* Whether or not xdg_toplevel_configure has run once */ - MwU32 x, y, ww, wh; /* Window position */ + MwI32 x, y; + MwI32 ox, oy; + MwU32 ww, wh; /* Window position */ MwPoint cur_mouse_pos; /* Currently known mouse position */ MwU32 mw, mh; /* Monitor width and height as advertised by wl_output.mode */ diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 46b3732a4..21cc561f7 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -7,6 +7,7 @@ #include "../../external/stb_ds.h" #include "Mw/BaseTypes.h" #include "Mw/LowLevel.h" +#include "Mw/LowLevel/Wayland/xdg-shell-client-protocol.h" #include #include @@ -405,12 +406,16 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time WAYLAND_EVENT_OP_START(self); - self->wayland.cur_mouse_pos.x = wl_fixed_to_double(surface_x); - self->wayland.cur_mouse_pos.y = wl_fixed_to_double(surface_y); - - p.point = self->wayland.cur_mouse_pos; + self->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); + self->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); + p.point = self->wayland.cur_mouse_pos; MwLLDispatch(self, move, &p); + if(self->wayland.parent != NULL) { + if(!self->wayland.parent->wayland.currentlyHeldWidget) { + MwLLDispatch(self, down, &p); + } + } /* Only draw once every 50 milliseconds */ if((self->wayland.last_time + 50) <= time) { MwLLDispatch(self, draw, NULL); @@ -429,14 +434,16 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri MwLL self = data; MwLLMouse p; + int x = self->wayland.x; + int y = self->wayland.y; + WAYLAND_EVENT_OP_START(self); p.point = self->wayland.cur_mouse_pos; - if(p.point.x > self->wayland.x && p.point.x < self->wayland.x + self->wayland.ww && p.point.y > self->wayland.y && p.point.y < self->wayland.y + self->wayland.wh) { + + if(p.point.x > x && p.point.x < x + self->wayland.ww && p.point.y > y && p.point.y < y + self->wayland.wh) { int i; - p.point.x -= self->wayland.x; - p.point.y -= self->wayland.y; switch(button) { case BTN_LEFT: p.button = MwLLMouseLeft; @@ -1006,13 +1013,18 @@ static void region_invalidate(MwLL handle) { if(!handle->wayland.configured) { return; } - wl_region_subtract(handle->wayland.region, handle->wayland.x, handle->wayland.y, handle->wayland.ww, handle->wayland.wh); + wl_region_subtract(handle->wayland.region, 0, 0, handle->wayland.ww, handle->wayland.wh); } static void region_setup(MwLL handle) { if(!handle->wayland.configured) { return; } - wl_region_add(handle->wayland.region, handle->wayland.x, handle->wayland.y, handle->wayland.ww, handle->wayland.wh); + + if(handle->wayland.type == MWLL_WAYLAND_POPUP) { + wl_region_add(handle->wayland.region, 0, 0, handle->wayland.ww + abs(handle->wayland.x), handle->wayland.wh + abs(handle->wayland.y)); + } else { + wl_region_add(handle->wayland.region, handle->wayland.x, handle->wayland.y, handle->wayland.ww + abs(handle->wayland.x), handle->wayland.wh + abs(handle->wayland.y)); + } wl_surface_set_input_region(handle->wayland.framebuffer.surface, handle->wayland.region); wl_surface_set_opaque_region(handle->wayland.framebuffer.surface, handle->wayland.region); } @@ -1116,6 +1128,8 @@ static void setup_toplevel(MwLL r, int x, int y) { r->wayland.type = MWLL_WAYLAND_TOPLEVEL; r->wayland.toplevel = malloc(sizeof(struct _MwLLWaylandTopLevel)); + r->wayland.x = x; + r->wayland.y = y; setup_callbacks(&r->wayland); @@ -1251,9 +1265,9 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { /* Sublevel setup function */ static void destroy_sublevel(MwLL r) { - wl_subsurface_destroy(r->wayland.sublevel->subsurface); + framebuffer_destroy(&r->wayland); - wl_surface_destroy(r->wayland.framebuffer.surface); + wl_subsurface_destroy(r->wayland.sublevel->subsurface); free(r->wayland.sublevel); } @@ -1315,10 +1329,11 @@ static void setup_popup(MwLL r, int x, int y) { r->wayland.popup->xdg_positioner = xdg_wm_base_create_positioner(r->wayland.popup->xdg_wm_base); xdg_positioner_set_size(r->wayland.popup->xdg_positioner, r->wayland.ww, r->wayland.wh); - xdg_positioner_set_anchor(r->wayland.popup->xdg_positioner, XDG_POSITIONER_ANCHOR_NONE); xdg_positioner_set_anchor_rect( - r->wayland.popup->xdg_positioner, 0, 0, 1, 1); - xdg_positioner_set_offset(r->wayland.popup->xdg_positioner, x, y); + r->wayland.popup->xdg_positioner, + x, y, r->wayland.ww, r->wayland.wh); + xdg_positioner_set_anchor(r->wayland.popup->xdg_positioner, XDG_POSITIONER_ANCHOR_TOP_LEFT); + xdg_positioner_set_gravity(r->wayland.popup->xdg_positioner, XDG_POSITIONER_ANCHOR_BOTTOM_RIGHT); xdg_surface = topmost_parent->wayland.toplevel->xdg_surface; @@ -1341,6 +1356,9 @@ static void setup_popup(MwLL r, int x, int y) { /* Perform the initial commit and wait for the first configure event */ wl_surface_commit(r->wayland.framebuffer.surface); event_loop(r); + + // framebuffer_destroy(&r->wayland); + framebuffer_setup(&r->wayland); } /* Popup destroy function */ @@ -1431,7 +1449,7 @@ static void MwLLDestroyImpl(MwLL handle) { pthread_mutex_unlock(&handle->wayland.eventsMutex); pthread_mutex_destroy(&handle->wayland.eventsMutex); - framebuffer_destroy(&handle->wayland); + // framebuffer_destroy(&handle->wayland); buffer_destroy(&handle->wayland.cursor); wl_region_destroy(handle->wayland.region); @@ -1482,8 +1500,6 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { wl_subsurface_set_position(handle->wayland.sublevel->subsurface, x, y); } if(handle->wayland.type == MWLL_WAYLAND_POPUP) { - destroy_popup(handle); - setup_popup(handle, x, y); } region_setup(handle); @@ -1507,6 +1523,11 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { xdg_surface_set_window_geometry(handle->wayland.toplevel->xdg_surface, 0, 0, handle->wayland.ww, handle->wayland.wh); } + if(handle->wayland.type == MWLL_WAYLAND_POPUP) { + destroy_popup(handle); + setup_popup(handle, handle->wayland.x, handle->wayland.y); + } + refresh: region_setup(handle); @@ -1594,12 +1615,12 @@ static int MwLLPendingImpl(MwLL handle) { event_loop(handle); return 0; } - // if(handle->wayland.force_render) { - // // event_loop(handle); - // // handle->wayland.force_render = 0; - // // update_buffer(&handle->wayland.framebuffer); - // return 1; - // } + if(handle->wayland.force_render) { + // event_loop(handle); + // handle->wayland.force_render = 0; + // update_buffer(&handle->wayland.framebuffer); + return 1; + } if(handle->wayland.events_pending || handle->wayland.force_render) { handle->wayland.did_event_loop_early = MwTRUE; return event_loop(handle); @@ -1812,7 +1833,7 @@ static void MwLLDetachImpl(MwLL handle, MwPoint* point) { switch(handle->wayland.type_to_be) { case MWLL_WAYLAND_POPUP: setup_popup(handle, point->x, point->y); - return; + break; default: setup_toplevel(handle, point->x, point->y); break; @@ -1842,9 +1863,6 @@ static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { zxdg_toplevel_decoration_v1_set_mode( dec->decoration, ZXDG_TOPLEVEL_DECORATION_V1_MODE_CLIENT_SIDE); - } else { - /* TODO: hide our custom window decorations when we have them. */ - printf("zxdg null\n"); } } } diff --git a/src/widget/combobox.c b/src/widget/combobox.c index 6b5437335..591258f96 100644 --- a/src/widget/combobox.c +++ b/src/widget/combobox.c @@ -138,8 +138,8 @@ static void click(MwWidget handle) { p.x = 0; p.y = MwGetInteger(handle, MwNheight); MwLLBeginStateChange(cb->listbox->lowlevel); - MwLLDetach(cb->listbox->lowlevel, &p); MwLLMakeToolWindow(cb->listbox->lowlevel); + MwLLDetach(cb->listbox->lowlevel, &p); MwLLEndStateChange(cb->listbox->lowlevel); } else { MwLLSetCursor(handle->lowlevel, &MwCursorDefault, &MwCursorDefaultMask); From eb0919333a78355a49f03bf1f8772288c00ebf47 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 17 Mar 2026 20:39:37 -0700 Subject: [PATCH 208/836] wayland: fix several examples --- src/backend/wayland.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 21cc561f7..d7d539115 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1616,7 +1616,7 @@ static int MwLLPendingImpl(MwLL handle) { return 0; } if(handle->wayland.force_render) { - // event_loop(handle); + MwLLDispatch(handle, draw, NULL); // handle->wayland.force_render = 0; // update_buffer(&handle->wayland.framebuffer); return 1; From fc7896b5ce1e018ead507f0033ec235273172847 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 17 Mar 2026 22:17:05 -0700 Subject: [PATCH 209/836] wayland: improve event loop --- src/backend/wayland.c | 29 +- src/widget/opengl.c | 627 +++++++++++++++++++++--------------------- 2 files changed, 326 insertions(+), 330 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index d7d539115..7037a5d97 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1046,8 +1046,12 @@ static void xdg_toplevel_icon_manager_v1_interface_destroy(struct _MwLLWayland* /* Standard Wayland event loop. */ static int event_loop(MwLL handle) { struct pollfd fd; - int timeout = 1; + struct timespec timeout; struct _MwLLWayland* wayland = &handle->wayland; + int res; + + timeout.tv_nsec = 1; + timeout.tv_sec = 0; if(wayland->display == NULL) { return 0; @@ -1072,19 +1076,15 @@ static int event_loop(MwLL handle) { } wl_display_prepare_read(handle->wayland.display); - /* Condition where no events are being sent. */ - if(!poll(&fd, 1, timeout)) { - wl_display_cancel_read(wayland->display); - /* In this case, we need to commit the surface for any animations, etc. */ + wl_display_read_events(wayland->display); + if((res = wl_display_dispatch_timeout(wayland->display, &timeout)) <= 0) { + if(res < 0) { + wl_display_cancel_read(handle->wayland.display); + } + wl_surface_commit(wayland->framebuffer.surface); return 0; } - - wl_display_read_events(wayland->display); - if(wl_display_dispatch_pending(wayland->display) < 0) { - wl_display_cancel_read(handle->wayland.display); - } - return 1; } @@ -1605,20 +1605,17 @@ static void MwLLFreeColorImpl(MwLLColor color) { static int MwLLPendingImpl(MwLL handle) { MwBool pending = MwFALSE; struct timespec timeout; - int i; timeout.tv_nsec = 1; timeout.tv_sec = 0; + int i; pending = wl_display_dispatch_timeout(handle->wayland.display, &timeout); if(handle->wayland.always_render) { event_loop(handle); return 0; - } - if(handle->wayland.force_render) { + } else if(handle->wayland.force_render) { MwLLDispatch(handle, draw, NULL); - // handle->wayland.force_render = 0; - // update_buffer(&handle->wayland.framebuffer); return 1; } if(handle->wayland.events_pending || handle->wayland.force_render) { diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 0f9c5c24f..b508ef6b5 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -4,46 +4,46 @@ #include #ifdef USE_GDI -typedef HGLRC(WINAPI *MWwglCreateContext)(HDC); -typedef BOOL(WINAPI *MWwglMakeCurrent)(HDC, HGLRC); -typedef PROC(WINAPI *MWwglGetProcAddress)(LPCSTR); -typedef BOOL(WINAPI *MWwglDeleteContext)(HGLRC); +typedef HGLRC(WINAPI* MWwglCreateContext)(HDC); +typedef BOOL(WINAPI* MWwglMakeCurrent)(HDC, HGLRC); +typedef PROC(WINAPI* MWwglGetProcAddress)(LPCSTR); +typedef BOOL(WINAPI* MWwglDeleteContext)(HGLRC); typedef struct gdiopengl { - HDC dc; - HGLRC gl; + HDC dc; + HGLRC gl; - void *lib; + void* lib; - MWwglCreateContext wglCreateContext; - MWwglMakeCurrent wglMakeCurrent; - MWwglDeleteContext wglDeleteContext; - MWwglGetProcAddress wglGetProcAddress; + MWwglCreateContext wglCreateContext; + MWwglMakeCurrent wglMakeCurrent; + MWwglDeleteContext wglDeleteContext; + MWwglGetProcAddress wglGetProcAddress; } gdiopengl_t; #endif #ifdef USE_X11 -typedef XVisualInfo *(*MWglXChooseVisual)(Display *dpy, int screen, - int *attribList); -typedef GLXContext (*MWglXCreateContext)(Display *dpy, XVisualInfo *vis, - GLXContext shareList, Bool direct); -typedef void (*MWglXDestroyContext)(Display *dpy, GLXContext ctx); -typedef Bool (*MWglXMakeCurrent)(Display *dpy, GLXDrawable drawable, - GLXContext ctx); -typedef void (*MWglXSwapBuffers)(Display *dpy, GLXDrawable drawable); -typedef void *(*MWglXGetProcAddress)(const GLubyte *procname); +typedef XVisualInfo* (*MWglXChooseVisual)(Display* dpy, int screen, + int* attribList); +typedef GLXContext (*MWglXCreateContext)(Display* dpy, XVisualInfo* vis, + GLXContext shareList, Bool direct); +typedef void (*MWglXDestroyContext)(Display* dpy, GLXContext ctx); +typedef Bool (*MWglXMakeCurrent)(Display* dpy, GLXDrawable drawable, + GLXContext ctx); +typedef void (*MWglXSwapBuffers)(Display* dpy, GLXDrawable drawable); +typedef void* (*MWglXGetProcAddress)(const GLubyte* procname); typedef struct x11opengl { - XVisualInfo *visual; - GLXContext gl; + XVisualInfo* visual; + GLXContext gl; - void *lib; + void* lib; - MWglXChooseVisual glXChooseVisual; - MWglXCreateContext glXCreateContext; - MWglXDestroyContext glXDestroyContext; - MWglXMakeCurrent glXMakeCurrent; - MWglXSwapBuffers glXSwapBuffers; - MWglXGetProcAddress glXGetProcAddress; + MWglXChooseVisual glXChooseVisual; + MWglXCreateContext glXCreateContext; + MWglXDestroyContext glXDestroyContext; + MWglXMakeCurrent glXMakeCurrent; + MWglXSwapBuffers glXSwapBuffers; + MWglXGetProcAddress glXGetProcAddress; } x11opengl_t; #endif @@ -52,385 +52,384 @@ typedef struct x11opengl { #include typedef struct waylandopengl { - EGLNativeWindowType egl_window_native; - EGLDisplay egl_display; - EGLContext egl_context; - EGLSurface egl_surface; - EGLConfig egl_config; + EGLNativeWindowType egl_window_native; + EGLDisplay egl_display; + EGLContext egl_context; + EGLSurface egl_surface; + EGLConfig egl_config; } waylandopengl_t; #endif static int create(MwWidget handle) { - void *r = NULL; - MwWidget w = handle; + void* r = NULL; + MwWidget w = handle; #ifdef USE_GDI - if (handle->lowlevel->common.type == MwLLBackendGDI) { - PIXELFORMATDESCRIPTOR pfd; - int pf; - gdiopengl_t *o = r = malloc(sizeof(*o)); + if(handle->lowlevel->common.type == MwLLBackendGDI) { + PIXELFORMATDESCRIPTOR pfd; + int pf; + gdiopengl_t* o = r = malloc(sizeof(*o)); - memset(&pfd, 0, sizeof(pfd)); - pfd.nSize = sizeof(pfd); - pfd.nVersion = 1; - pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER; - pfd.cDepthBits = 32; - pfd.cColorBits = 32; + memset(&pfd, 0, sizeof(pfd)); + pfd.nSize = sizeof(pfd); + pfd.nVersion = 1; + pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER; + pfd.cDepthBits = 32; + pfd.cColorBits = 32; - o->dc = GetDC(handle->lowlevel->gdi.hWnd); + o->dc = GetDC(handle->lowlevel->gdi.hWnd); - pf = ChoosePixelFormat(o->dc, &pfd); - SetPixelFormat(o->dc, pf, &pfd); + pf = ChoosePixelFormat(o->dc, &pfd); + SetPixelFormat(o->dc, pf, &pfd); - o->lib = MwDynamicOpen("opengl32.dll"); + o->lib = MwDynamicOpen("opengl32.dll"); - o->wglCreateContext = - (MWwglCreateContext)(void *)MwDynamicSymbol(o->lib, "wglCreateContext"); - o->wglMakeCurrent = - (MWwglMakeCurrent)(void *)MwDynamicSymbol(o->lib, "wglMakeCurrent"); - o->wglDeleteContext = - (MWwglDeleteContext)(void *)MwDynamicSymbol(o->lib, "wglDeleteContext"); - o->wglGetProcAddress = (MWwglGetProcAddress)(void *)MwDynamicSymbol( - o->lib, "wglGetProcAddress"); + o->wglCreateContext = + (MWwglCreateContext)(void*)MwDynamicSymbol(o->lib, "wglCreateContext"); + o->wglMakeCurrent = + (MWwglMakeCurrent)(void*)MwDynamicSymbol(o->lib, "wglMakeCurrent"); + o->wglDeleteContext = + (MWwglDeleteContext)(void*)MwDynamicSymbol(o->lib, "wglDeleteContext"); + o->wglGetProcAddress = (MWwglGetProcAddress)(void*)MwDynamicSymbol( + o->lib, "wglGetProcAddress"); - o->gl = o->wglCreateContext(o->dc); - } + o->gl = o->wglCreateContext(o->dc); + } #endif #ifdef USE_X11 - if (handle->lowlevel->common.type == MwLLBackendX11) { - int attribs[5]; - const char *glpath[] = {"libGL.so", "/usr/local/lib/libGL.so", - "/usr/X11R7/lib/libGL.so", "/usr/pkg/lib/libGL.so"}; - int glincr = 0; - x11opengl_t *o = r = malloc(sizeof(*o)); + if(handle->lowlevel->common.type == MwLLBackendX11) { + int attribs[5]; + const char* glpath[] = {"libGL.so", "/usr/local/lib/libGL.so", + "/usr/X11R7/lib/libGL.so", "/usr/pkg/lib/libGL.so"}; + int glincr = 0; + x11opengl_t* o = r = malloc(sizeof(*o)); - attribs[0] = GLX_RGBA; - attribs[1] = GLX_DOUBLEBUFFER; - attribs[2] = GLX_DEPTH_SIZE; - attribs[3] = 24; - attribs[4] = None; + attribs[0] = GLX_RGBA; + attribs[1] = GLX_DOUBLEBUFFER; + attribs[2] = GLX_DEPTH_SIZE; + attribs[3] = 24; + attribs[4] = None; - while (glpath[glincr] != NULL && - (o->lib = MwDynamicOpen(glpath[glincr++])) == NULL) - ; + while(glpath[glincr] != NULL && + (o->lib = MwDynamicOpen(glpath[glincr++])) == NULL); - o->glXChooseVisual = - (MWglXChooseVisual)MwDynamicSymbol(o->lib, "glXChooseVisual"); - o->glXCreateContext = - (MWglXCreateContext)MwDynamicSymbol(o->lib, "glXCreateContext"); - o->glXDestroyContext = - (MWglXDestroyContext)MwDynamicSymbol(o->lib, "glXDestroyContext"); - o->glXMakeCurrent = - (MWglXMakeCurrent)MwDynamicSymbol(o->lib, "glXMakeCurrent"); - o->glXSwapBuffers = - (MWglXSwapBuffers)MwDynamicSymbol(o->lib, "glXSwapBuffers"); - o->glXGetProcAddress = - (MWglXGetProcAddress)MwDynamicSymbol(o->lib, "glXGetProcAddress"); + o->glXChooseVisual = + (MWglXChooseVisual)MwDynamicSymbol(o->lib, "glXChooseVisual"); + o->glXCreateContext = + (MWglXCreateContext)MwDynamicSymbol(o->lib, "glXCreateContext"); + o->glXDestroyContext = + (MWglXDestroyContext)MwDynamicSymbol(o->lib, "glXDestroyContext"); + o->glXMakeCurrent = + (MWglXMakeCurrent)MwDynamicSymbol(o->lib, "glXMakeCurrent"); + o->glXSwapBuffers = + (MWglXSwapBuffers)MwDynamicSymbol(o->lib, "glXSwapBuffers"); + o->glXGetProcAddress = + (MWglXGetProcAddress)MwDynamicSymbol(o->lib, "glXGetProcAddress"); - /* XXX: fix this */ - o->visual = o->glXChooseVisual(handle->lowlevel->x11.display, - DefaultScreen(handle->lowlevel->x11.display), - attribs); - o->gl = o->glXCreateContext(handle->lowlevel->x11.display, o->visual, NULL, - GL_TRUE); - } + /* XXX: fix this */ + o->visual = o->glXChooseVisual(handle->lowlevel->x11.display, + DefaultScreen(handle->lowlevel->x11.display), + attribs); + o->gl = o->glXCreateContext(handle->lowlevel->x11.display, o->visual, NULL, + GL_TRUE); + } #endif #ifdef USE_WAYLAND - if (handle->lowlevel->common.type == MwLLBackendWayland) { - int err; - EGLint numConfigs; - EGLint majorVersion; - EGLint minorVersion; - EGLContext context; - EGLSurface surface; - EGLint fbAttribs[] = {EGL_SURFACE_TYPE, - EGL_WINDOW_BIT, - EGL_RENDERABLE_TYPE, - EGL_OPENGL_ES2_BIT, - EGL_RED_SIZE, - 8, - EGL_GREEN_SIZE, - 8, - EGL_BLUE_SIZE, - 8, - EGL_DEPTH_SIZE, - 24, - EGL_RENDERABLE_TYPE, - EGL_OPENGL_BIT, - EGL_NONE}; - EGLint contextAttribs[] = {EGL_CONTEXT_CLIENT_VERSION, - 1, - EGL_CONTEXT_MAJOR_VERSION, - 1, - EGL_CONTEXT_MINOR_VERSION, - 1, - EGL_NONE}; - EGLDisplay display; - waylandopengl_t *o = r = malloc(sizeof(*o)); - MwLL topmost_parent = handle->lowlevel->wayland.parent; - topmost_parent->wayland.always_render = MwTRUE; + if(handle->lowlevel->common.type == MwLLBackendWayland) { + int err; + EGLint numConfigs; + EGLint majorVersion; + EGLint minorVersion; + EGLContext context; + EGLSurface surface; + EGLint fbAttribs[] = {EGL_SURFACE_TYPE, + EGL_WINDOW_BIT, + EGL_RENDERABLE_TYPE, + EGL_OPENGL_ES2_BIT, + EGL_RED_SIZE, + 8, + EGL_GREEN_SIZE, + 8, + EGL_BLUE_SIZE, + 8, + EGL_DEPTH_SIZE, + 24, + EGL_RENDERABLE_TYPE, + EGL_OPENGL_BIT, + EGL_NONE}; + EGLint contextAttribs[] = {EGL_CONTEXT_CLIENT_VERSION, + 1, + EGL_CONTEXT_MAJOR_VERSION, + 1, + EGL_CONTEXT_MINOR_VERSION, + 1, + EGL_NONE}; + EGLDisplay display; + waylandopengl_t* o = r = malloc(sizeof(*o)); + MwLL topmost_parent = handle->lowlevel->wayland.parent; + topmost_parent->wayland.always_render = MwTRUE; - while (topmost_parent->wayland.parent != NULL) { - topmost_parent = topmost_parent->wayland.parent; - topmost_parent->wayland.always_render = MwTRUE; - } + while(topmost_parent->wayland.parent != NULL) { + topmost_parent = topmost_parent->wayland.parent; + topmost_parent->wayland.always_render = MwTRUE; + } - display = - eglGetDisplay((EGLNativeDisplayType)handle->lowlevel->wayland.display); - if (display == EGL_NO_DISPLAY) { - printf("ERROR: eglGetDisplay, %0X\n", eglGetError()); - return MwFALSE; - } - /* Initialize EGL */ - if (!eglInitialize(display, &majorVersion, &minorVersion)) { - printf("ERROR: eglInitialize, %0X\n", eglGetError()); - return MwFALSE; - } + display = + eglGetDisplay((EGLNativeDisplayType)handle->lowlevel->wayland.display); + if(display == EGL_NO_DISPLAY) { + printf("ERROR: eglGetDisplay, %0X\n", eglGetError()); + return MwFALSE; + } + /* Initialize EGL */ + if(!eglInitialize(display, &majorVersion, &minorVersion)) { + printf("ERROR: eglInitialize, %0X\n", eglGetError()); + return MwFALSE; + } - /* Get configs */ - if ((eglGetConfigs(display, NULL, 0, &numConfigs) != EGL_TRUE) || - (numConfigs == 0)) { - printf("ERROR: eglGetConfigs, %0X\n", eglGetError()); - return MwFALSE; - } + /* Get configs */ + if((eglGetConfigs(display, NULL, 0, &numConfigs) != EGL_TRUE) || + (numConfigs == 0)) { + printf("ERROR: eglGetConfigs, %0X\n", eglGetError()); + return MwFALSE; + } - /* Choose config */ - if ((eglChooseConfig(display, fbAttribs, &o->egl_config, 1, &numConfigs) != - EGL_TRUE) || - (numConfigs != 1)) { - printf("ERROR: eglChooseConfig, %0X\n", eglGetError()); - return MwFALSE; - } + /* Choose config */ + if((eglChooseConfig(display, fbAttribs, &o->egl_config, 1, &numConfigs) != + EGL_TRUE) || + (numConfigs != 1)) { + printf("ERROR: eglChooseConfig, %0X\n", eglGetError()); + return MwFALSE; + } - o->egl_window_native = (EGLNativeWindowType)wl_egl_window_create( - handle->lowlevel->wayland.framebuffer.surface, - handle->lowlevel->wayland.ww, handle->lowlevel->wayland.wh); - if (!o->egl_window_native) { - printf("ERROR: wl_egl_window_create, EGL_NO_SURFACE\n"); - return MwFALSE; - } + o->egl_window_native = (EGLNativeWindowType)wl_egl_window_create( + handle->lowlevel->wayland.framebuffer.surface, + handle->lowlevel->wayland.ww, handle->lowlevel->wayland.wh); + if(!o->egl_window_native) { + printf("ERROR: wl_egl_window_create, EGL_NO_SURFACE\n"); + return MwFALSE; + } - /* Create a surface */ - surface = eglCreateWindowSurface(display, o->egl_config, - o->egl_window_native, NULL); - if (surface == EGL_NO_SURFACE) { - printf("ERROR: eglCreateWindowSurface, %0X\n", eglGetError()); - return MwFALSE; - } + /* Create a surface */ + surface = eglCreateWindowSurface(display, o->egl_config, + o->egl_window_native, NULL); + if(surface == EGL_NO_SURFACE) { + printf("ERROR: eglCreateWindowSurface, %0X\n", eglGetError()); + return MwFALSE; + } - eglBindAPI(EGL_OPENGL_API); + eglBindAPI(EGL_OPENGL_API); - /* Create a GL context */ - context = eglCreateContext(display, o->egl_config, EGL_NO_CONTEXT, - contextAttribs); - if (context == EGL_NO_CONTEXT) { - printf("ERROR: eglCreateContext, %0X\n", eglGetError()); - return MwFALSE; - } + /* Create a GL context */ + context = eglCreateContext(display, o->egl_config, EGL_NO_CONTEXT, + contextAttribs); + if(context == EGL_NO_CONTEXT) { + printf("ERROR: eglCreateContext, %0X\n", eglGetError()); + return MwFALSE; + } - if (!eglMakeCurrent(display, surface, surface, context)) { - printf("ERROR: eglMakeCurrent (setup): %0X\n", eglGetError()); - } + if(!eglMakeCurrent(display, surface, surface, context)) { + printf("ERROR: eglMakeCurrent (setup): %0X\n", eglGetError()); + } - o->egl_display = display; - o->egl_surface = surface; - o->egl_context = context; - } + o->egl_display = display; + o->egl_surface = surface; + o->egl_context = context; + } #endif - handle->internal = r; - handle->lowlevel->common.copy_buffer = 0; + handle->internal = r; + handle->lowlevel->common.copy_buffer = 0; - MwSetDefault(handle); + MwSetDefault(handle); - while (w->parent != NULL) - w = w->parent; + while(w->parent != NULL) + w = w->parent; - w->berserk++; + w->berserk++; - return 0; + return 0; } static void destroy(MwWidget handle) { - MwWidget w = handle; + MwWidget w = handle; #ifdef USE_GDI - if (handle->lowlevel->common.type == MwLLBackendGDI) { - gdiopengl_t *o = handle->internal; + if(handle->lowlevel->common.type == MwLLBackendGDI) { + gdiopengl_t* o = handle->internal; - o->wglMakeCurrent(NULL, NULL); - DeleteDC(o->dc); - o->wglDeleteContext(o->gl); + o->wglMakeCurrent(NULL, NULL); + DeleteDC(o->dc); + o->wglDeleteContext(o->gl); - MwDynamicClose(o->lib); - } + MwDynamicClose(o->lib); + } #endif #ifdef USE_X11 - if (handle->lowlevel->common.type == MwLLBackendX11) { - x11opengl_t *o = handle->internal; + if(handle->lowlevel->common.type == MwLLBackendX11) { + x11opengl_t* o = handle->internal; - o->glXMakeCurrent(handle->lowlevel->x11.display, None, NULL); - o->glXDestroyContext(handle->lowlevel->x11.display, o->gl); + o->glXMakeCurrent(handle->lowlevel->x11.display, None, NULL); + o->glXDestroyContext(handle->lowlevel->x11.display, o->gl); - MwDynamicClose(o->lib); - } + MwDynamicClose(o->lib); + } #endif #ifdef USE_WAYLAND - if (handle->lowlevel->common.type == MwLLBackendWayland) { - /* todo */ - } + if(handle->lowlevel->common.type == MwLLBackendWayland) { + /* todo */ + } #endif - while (w->parent != NULL) - w = w->parent; + while(w->parent != NULL) + w = w->parent; - w->berserk--; + w->berserk--; - free(handle->internal); + free(handle->internal); } static void mwOpenGLMakeCurrentImpl(MwWidget handle) { - /* these swap interval functions belonging here actually stink! */ + /* these swap interval functions belonging here actually stink! */ #ifdef USE_GDI - if (handle->lowlevel->common.type == MwLLBackendGDI) { - gdiopengl_t *o = handle->internal; - void (*swap_interval_ext)(int) = NULL; + if(handle->lowlevel->common.type == MwLLBackendGDI) { + gdiopengl_t* o = handle->internal; + void (*swap_interval_ext)(int) = NULL; - o->wglMakeCurrent(o->dc, o->gl); + o->wglMakeCurrent(o->dc, o->gl); - if ((swap_interval_ext = - MwOpenGLGetProcAddress(handle, "wglSwapIntervalEXT")) != NULL) { - swap_interval_ext(1); - } - } + if((swap_interval_ext = + MwOpenGLGetProcAddress(handle, "wglSwapIntervalEXT")) != NULL) { + swap_interval_ext(1); + } + } #endif #ifdef USE_X11 - if (handle->lowlevel->common.type == MwLLBackendX11) { - x11opengl_t *o = handle->internal; - void (*swap_interval_ext)(Display *, GLXDrawable, int) = NULL; - void (*swap_interval_mesa)(unsigned int) = NULL; - void (*swap_interval_sgi)(int) = NULL; + if(handle->lowlevel->common.type == MwLLBackendX11) { + x11opengl_t* o = handle->internal; + void (*swap_interval_ext)(Display*, GLXDrawable, int) = NULL; + void (*swap_interval_mesa)(unsigned int) = NULL; + void (*swap_interval_sgi)(int) = NULL; - o->glXMakeCurrent(handle->lowlevel->x11.display, - handle->lowlevel->x11.window, o->gl); + o->glXMakeCurrent(handle->lowlevel->x11.display, + handle->lowlevel->x11.window, o->gl); - if ((swap_interval_ext = - MwOpenGLGetProcAddress(handle, "glXSwapIntervalEXT")) != NULL) { - swap_interval_ext(handle->lowlevel->x11.display, - handle->lowlevel->x11.window, 1); - } + if((swap_interval_ext = + MwOpenGLGetProcAddress(handle, "glXSwapIntervalEXT")) != NULL) { + swap_interval_ext(handle->lowlevel->x11.display, + handle->lowlevel->x11.window, 1); + } - if ((swap_interval_mesa = - MwOpenGLGetProcAddress(handle, "glXSwapIntervalMESA")) != NULL) { - swap_interval_mesa(1); - } + if((swap_interval_mesa = + MwOpenGLGetProcAddress(handle, "glXSwapIntervalMESA")) != NULL) { + swap_interval_mesa(1); + } - if ((swap_interval_sgi = - MwOpenGLGetProcAddress(handle, "glXSwapIntervalSGI")) != NULL) { - swap_interval_sgi(1); - } - } + if((swap_interval_sgi = + MwOpenGLGetProcAddress(handle, "glXSwapIntervalSGI")) != NULL) { + swap_interval_sgi(1); + } + } #endif #ifdef USE_WAYLAND - if (handle->lowlevel->common.type == MwLLBackendWayland) { - waylandopengl_t *o = handle->internal; + if(handle->lowlevel->common.type == MwLLBackendWayland) { + waylandopengl_t* o = handle->internal; - if (!eglMakeCurrent(o->egl_display, o->egl_surface, o->egl_surface, - o->egl_context)) { - printf("ERROR: eglMakeCurrent, %0X\n", eglGetError()); - } + if(!eglMakeCurrent(o->egl_display, o->egl_surface, o->egl_surface, + o->egl_context)) { + printf("ERROR: eglMakeCurrent, %0X\n", eglGetError()); + } - eglSwapInterval(o->egl_display, 1); - } + eglSwapInterval(o->egl_display, 1); + } #endif } static void mwOpenGLSwapBufferImpl(MwWidget handle) { #ifdef USE_GDI - if (handle->lowlevel->common.type == MwLLBackendGDI) { - gdiopengl_t *o = handle->internal; + if(handle->lowlevel->common.type == MwLLBackendGDI) { + gdiopengl_t* o = handle->internal; - SwapBuffers(o->dc); - } + SwapBuffers(o->dc); + } #endif #ifdef USE_X11 - if (handle->lowlevel->common.type == MwLLBackendX11) { - x11opengl_t *o = handle->internal; + if(handle->lowlevel->common.type == MwLLBackendX11) { + x11opengl_t* o = handle->internal; - o->glXSwapBuffers(handle->lowlevel->x11.display, - handle->lowlevel->x11.window); - } + o->glXSwapBuffers(handle->lowlevel->x11.display, + handle->lowlevel->x11.window); + } #endif #ifdef USE_WAYLAND - if (handle->lowlevel->common.type == MwLLBackendWayland) { - waylandopengl_t *o = handle->internal; - eglSwapInterval(o->egl_display, 0); - if (!eglSwapBuffers(o->egl_display, o->egl_surface)) { - printf("ERROR: eglSwapBuffers, %0X\n", eglGetError()); - }; - wl_egl_window_resize((struct wl_egl_window *)o->egl_window_native, - handle->lowlevel->wayland.ww, - handle->lowlevel->wayland.wh, 0, 0); - MwLLForceRender(handle->lowlevel); - } + if(handle->lowlevel->common.type == MwLLBackendWayland) { + waylandopengl_t* o = handle->internal; + // eglSwapInterval(o->egl_display, 0); + if(!eglSwapBuffers(o->egl_display, o->egl_surface)) { + printf("ERROR: eglSwapBuffers, %0X\n", eglGetError()); + }; + wl_egl_window_resize((struct wl_egl_window*)o->egl_window_native, + handle->lowlevel->wayland.ww, + handle->lowlevel->wayland.wh, 0, 0); + // MwLLForceRender(handle->lowlevel); + } #endif } -static void *mwOpenGLGetProcAddressImpl(MwWidget handle, const char *name) { +static void* mwOpenGLGetProcAddressImpl(MwWidget handle, const char* name) { #ifdef USE_GDI - if (handle->lowlevel->common.type == MwLLBackendGDI) { - gdiopengl_t *o = handle->internal; + if(handle->lowlevel->common.type == MwLLBackendGDI) { + gdiopengl_t* o = handle->internal; - return o->wglGetProcAddress(name); - } + return o->wglGetProcAddress(name); + } #endif #ifdef USE_X11 - if (handle->lowlevel->common.type == MwLLBackendX11) { - x11opengl_t *o = handle->internal; + if(handle->lowlevel->common.type == MwLLBackendX11) { + x11opengl_t* o = handle->internal; - return o->glXGetProcAddress((const GLubyte *)name); - } + return o->glXGetProcAddress((const GLubyte*)name); + } #endif #ifdef USE_WAYLAND - if (handle->lowlevel->common.type == MwLLBackendWayland) { - return eglGetProcAddress(name); - } + if(handle->lowlevel->common.type == MwLLBackendWayland) { + return eglGetProcAddress(name); + } #endif - return NULL; + return NULL; } -static void func_handler(MwWidget handle, const char *name, void *out, - va_list va) { - if (strcmp(name, "mwOpenGLMakeCurrent") == 0) { - mwOpenGLMakeCurrentImpl(handle); - } - if (strcmp(name, "mwOpenGLSwapBuffer") == 0) { - mwOpenGLSwapBufferImpl(handle); - } - if (strcmp(name, "mwOpenGLGetProcAddress") == 0) { - const char *_name = va_arg(va, const char *); - *(void **)out = mwOpenGLGetProcAddressImpl(handle, _name); - } +static void func_handler(MwWidget handle, const char* name, void* out, + va_list va) { + if(strcmp(name, "mwOpenGLMakeCurrent") == 0) { + mwOpenGLMakeCurrentImpl(handle); + } + if(strcmp(name, "mwOpenGLSwapBuffer") == 0) { + mwOpenGLSwapBufferImpl(handle); + } + if(strcmp(name, "mwOpenGLGetProcAddress") == 0) { + const char* _name = va_arg(va, const char*); + *(void**)out = mwOpenGLGetProcAddressImpl(handle, _name); + } } -MwClassRec MwOpenGLClassRec = {create, /* create */ - destroy, /* destroy */ - NULL, /* draw */ - NULL, /* click */ - NULL, /* parent_resize */ - NULL, /* prop_change */ - NULL, /* mouse_move */ - NULL, /* mouse_up */ - NULL, /* mouse_down */ - NULL, /* key */ - func_handler, /* execute */ - NULL, /* tick */ - NULL, /* resize */ - NULL, /* children_update */ - NULL, /* children_prop_change */ - NULL, /* clipboard */ - NULL, NULL, NULL, NULL}; -MwClass MwOpenGLClass = &MwOpenGLClassRec; +MwClassRec MwOpenGLClassRec = {create, /* create */ + destroy, /* destroy */ + NULL, /* draw */ + NULL, /* click */ + NULL, /* parent_resize */ + NULL, /* prop_change */ + NULL, /* mouse_move */ + NULL, /* mouse_up */ + NULL, /* mouse_down */ + NULL, /* key */ + func_handler, /* execute */ + NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, /* clipboard */ + NULL, NULL, NULL, NULL}; +MwClass MwOpenGLClass = &MwOpenGLClassRec; -#endif \ No newline at end of file +#endif From 9309b5fe83b2ac924824d24620bf44d2c19f4d8e Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 18 Mar 2026 19:24:51 -0700 Subject: [PATCH 210/836] remove old hacks from wayland code, including MwLLBeginDraw and MwLLEndDraw which was really only ever needed for wayland and not anymore --- include/Mw/LowLevel.h | 2 -- src/backend/call.c | 6 ++---- src/backend/cocoa.m | 26 ++++++++----------------- src/backend/gdi.c | 8 -------- src/backend/wayland.c | 45 ++----------------------------------------- src/backend/x11.c | 11 ++--------- src/core.c | 3 --- src/lowlevel.c | 3 --- src/widget/opengl.c | 2 -- 9 files changed, 14 insertions(+), 92 deletions(-) diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 9766d052f..30d7f310a 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -190,8 +190,6 @@ MWDECL void (*MwLLDestroy)(MwLL handle); MWDECL void (*MwLLPolygon)(MwLL handle, MwPoint* points, int points_count, MwLLColor color); MWDECL void (*MwLLLine)(MwLL handle, MwPoint* points, MwLLColor color); -MWDECL void (*MwLLBeginDraw)(MwLL handle); -MWDECL void (*MwLLEndDraw)(MwLL handle); MWDECL MwLLColor (*MwLLAllocColor)(MwLL handle, int r, int g, int b); MWDECL void (*MwLLColorUpdate)(MwLL handle, MwLLColor c, int r, int g, int b); diff --git a/src/backend/call.c b/src/backend/call.c index e2ce934c9..2ce5ed234 100644 --- a/src/backend/call.c +++ b/src/backend/call.c @@ -8,10 +8,8 @@ MwLLCreate = MwLLCreateImpl; \ MwLLDestroy = MwLLDestroyImpl; \ \ - MwLLPolygon = MwLLPolygonImpl; \ - MwLLLine = MwLLLineImpl; \ - MwLLBeginDraw = MwLLBeginDrawImpl; \ - MwLLEndDraw = MwLLEndDrawImpl; \ + MwLLPolygon = MwLLPolygonImpl; \ + MwLLLine = MwLLLineImpl; \ \ MwLLAllocColor = MwLLAllocColorImpl; \ MwLLColorUpdate = MwLLColorUpdateImpl; \ diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index c05fae59e..738ab1089 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -24,10 +24,10 @@ static NSPoint pointFlip(NSPoint point) { static NSRect localRectFlip(NSRect originFrame, NSView* view) { float viewHeight = [view bounds].size.height; NSRect destinationFrame = NSMakeRect( - originFrame.origin.x, - [view bounds].size.height - (originFrame.origin.y + originFrame.size.height), - originFrame.size.width, - originFrame.size.height); + originFrame.origin.x, + [view bounds].size.height - (originFrame.origin.y + originFrame.size.height), + originFrame.size.width, + originFrame.size.height); return destinationFrame; } @@ -151,8 +151,8 @@ static NSRect localRectFlip(NSRect originFrame, NSView* view) { if(parent) { MilskoCocoa* topmost = p; - NSRect rect = localRectFlip(c->rect, p->view); - printf("%0.2f %0.2f %0.2f %0.2f\n",c->rect.origin.x, c->rect.origin.y, c->rect.size.width, c->rect.size.height); + NSRect rect = localRectFlip(c->rect, p->view); + printf("%0.2f %0.2f %0.2f %0.2f\n", c->rect.origin.x, c->rect.origin.y, c->rect.size.width, c->rect.size.height); c->view = [[MilskoCocoaView alloc] initWithFrame:rect]; [c->view setBounds:c->rect]; } else { @@ -181,7 +181,6 @@ static NSRect localRectFlip(NSRect originFrame, NSView* view) { c->pointerLocked = MwFALSE; - return c; } @@ -279,7 +278,7 @@ static NSRect localRectFlip(NSRect originFrame, NSView* view) { } }; - (int)pending { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; [NSApp runModalSession:self->modalSession]; [pool release]; return 1; @@ -327,7 +326,6 @@ static NSRect localRectFlip(NSRect originFrame, NSView* view) { objectAtIndex:0]) pointer]; } - switch([ev type]) { case NSLeftMouseDragged: case NSRightMouseDragged: @@ -808,7 +806,7 @@ static NSRect localRectFlip(NSRect originFrame, NSView* view) { - (void)drawRect:(NSRect)dirtyRect { NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; NSSize sz = [self->rep size]; - MwLL ll = [((MilskoFakePointer *)[[[[self window] contentView] subviews] + MwLL ll = [((MilskoFakePointer*)[[[[self window] contentView] subviews] objectAtIndex:0]) pointer]; [super drawRect:dirtyRect]; @@ -1003,14 +1001,6 @@ static void MwLLDestroyImpl(MwLL handle) { free(handle); } -static void MwLLBeginDrawImpl(MwLL handle) { - (void)handle; -} - -static void MwLLEndDrawImpl(MwLL handle) { - (void)handle; -} - static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { MilskoCocoa* h = handle->cocoa.real; diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 4601b79da..3c286a8e5 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -310,14 +310,6 @@ static void MwLLDestroyImpl(MwLL handle) { free(handle); } -static void MwLLBeginDrawImpl(MwLL handle) { - (void)handle; -} - -static void MwLLEndDrawImpl(MwLL handle) { - (void)handle; -} - static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { POINT* p = malloc(sizeof(*p) * points_count); HPEN pen = CreatePen(PS_NULL, 0, RGB(0, 0, 0)); diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 7037a5d97..c85ca6a29 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -5,16 +5,12 @@ #include #include "../../external/stb_ds.h" -#include "Mw/BaseTypes.h" -#include "Mw/LowLevel.h" -#include "Mw/LowLevel/Wayland/xdg-shell-client-protocol.h" #include #include #include /* TODO: - * - MwLLGrabPointerImpl * - MwLLMakePopupImpl * - MwLLShowImpl */ @@ -250,8 +246,6 @@ static void wl_data_source_listener_send(void* data, if(self->wayland.clipboard_buffer != NULL) { write(fd, self->wayland.clipboard_buffer, strlen(self->wayland.clipboard_buffer)); close(fd); - - self->wayland.events_pending = 1; } WAYLAND_EVENT_OP_END(self); }; @@ -296,8 +290,6 @@ static void zwp_primary_selection_source_v1_send(void* data, if(self->wayland.clipboard_buffer != NULL) { write(fd, self->wayland.clipboard_buffer, strlen(self->wayland.clipboard_buffer)); close(fd); - - self->wayland.events_pending = 1; } WAYLAND_EVENT_OP_END(self); @@ -422,11 +414,7 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time self->wayland.last_time = time; } - self->wayland.events_pending += 1; - WAYLAND_EVENT_OP_END(self); - - /*timed_redraw(self, time, 50, &self->wayland.cooldown_timer);*/ }; /* `wl_pointer.button` callback */ @@ -481,7 +469,6 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri if(!self->wayland.always_render) { MwLLDispatch(self, draw, NULL); - self->wayland.events_pending += 1; } WAYLAND_EVENT_OP_END(self); @@ -540,7 +527,6 @@ static void keyboard_enter(void* data, self->wayland.keyboard_serial = serial; MwLLDispatch(self, focus_in, NULL); - self->wayland.events_pending += 1; WAYLAND_EVENT_OP_END(self); }; @@ -555,7 +541,6 @@ static void keyboard_leave(void* data, WAYLAND_EVENT_OP_START(self); MwLLDispatch(self, focus_out, NULL); - self->wayland.events_pending += 1; WAYLAND_EVENT_OP_END(self); }; @@ -659,7 +644,6 @@ static void keyboard_key(void* data, if(!self->wayland.always_render) { MwLLDispatch(self, draw, NULL); - self->wayland.events_pending += 1; } WAYLAND_EVENT_OP_END(self); @@ -783,7 +767,6 @@ static wayland_protocol_t* wl_seat_setup(MwU32 name, MwLL ll) { static void wl_seat_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { free(data->listener); - // wl_seat_destroy(data->context); } /* wl_output setup function */ @@ -832,7 +815,6 @@ static wayland_protocol_t* xdg_wm_base_setup(MwU32 name, struct _MwLLWayland* wa } static void xdg_wm_base_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - // xdg_wm_base_destroy(data->context); free(data->listener); } @@ -857,10 +839,6 @@ static wayland_protocol_t* zxdg_decoration_manager_v1_setup(MwU32 name, struct _ } static void zxdg_decoration_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - zxdg_decoration_manager_v1_context_t* context = data->context; - - // zxdg_decoration_manager_v1_destroy(context->manager); - // zxdg_toplevel_decoration_v1_destroy(context->decoration); } /* `xdg_toplevel.close` callback */ @@ -1000,8 +978,6 @@ static void framebuffer_setup(struct _MwLLWayland* wayland) { memset(wayland->framebuffer.buf, 255, wayland->framebuffer.buf_size); update_buffer(&wayland->framebuffer); - - wayland->events_pending += 1; }; static void framebuffer_destroy(struct _MwLLWayland* wayland) { buffer_destroy(&wayland->framebuffer); @@ -1040,7 +1016,6 @@ static wayland_protocol_t* xdg_toplevel_icon_manager_v1_setup(MwU32 name, struct static void xdg_toplevel_icon_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { free(data->listener); - // xdg_toplevel_icon_manager_v1_destroy(data->context); } /* Standard Wayland event loop. */ @@ -1504,7 +1479,6 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { region_setup(handle); MwLLDispatch(handle, draw, NULL); - handle->wayland.events_pending += 1; } static void MwLLSetWHImpl(MwLL handle, int w, int h) { @@ -1551,7 +1525,7 @@ static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLL cairo_close_path(handle->wayland.cairo); cairo_fill(handle->wayland.cairo); - handle->wayland.events_pending += 1; + handle->wayland.events_pending = 1; } static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { @@ -1570,16 +1544,7 @@ static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { cairo_close_path(handle->wayland.cairo); cairo_stroke(handle->wayland.cairo); - handle->wayland.events_pending += 1; -} - -static void MwLLBeginDrawImpl(MwLL handle) { -} - -static void MwLLEndDrawImpl(MwLL handle) { - update_buffer(&handle->wayland.framebuffer); - - handle->wayland.events_pending += 1; + handle->wayland.events_pending = 1; } static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { @@ -1756,12 +1721,6 @@ static void MwLLForceRenderImpl(MwLL handle) { wl_surface_damage(handle->wayland.framebuffer.surface, 0, 0, handle->wayland.ww, handle->wayland.wh); handle->wayland.force_render = MwTRUE; - - /* - if(handle->wayland.egl_setup) { - timed_redraw_by_epoch(handle, 25); - } - */ } static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { diff --git a/src/backend/x11.c b/src/backend/x11.c index f7c6fe4bd..6124ceeae 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -261,15 +261,8 @@ static void MwLLDestroyImpl(MwLL handle) { free(handle); } -static void MwLLBeginDrawImpl(MwLL handle) { - (void)handle; -} - -static void MwLLEndDrawImpl(MwLL handle) { - (void)handle; -} - -static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { +static void +MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { int i; XPoint* p = malloc(sizeof(*p) * points_count); diff --git a/src/core.c b/src/core.c index 9902a30e7..c3274a150 100644 --- a/src/core.c +++ b/src/core.c @@ -6,14 +6,11 @@ static void lldrawhandler(MwLL handle, void* data) { MwWidget h = (MwWidget)handle->common.user; (void)data; - MwLLBeginDraw(handle); h->bgcolor = NULL; MwDispatch(h, draw); if(h->draw_inject != NULL) h->draw_inject(h); MwDispatchUserHandler(h, MwNdrawHandler, NULL); - - MwLLEndDraw(handle); } static void lluphandler(MwLL handle, void* data) { diff --git a/src/lowlevel.c b/src/lowlevel.c index 8f8a4d932..eeabaa339 100644 --- a/src/lowlevel.c +++ b/src/lowlevel.c @@ -6,9 +6,6 @@ void (*MwLLDestroy)(MwLL handle) = NULL; void (*MwLLPolygon)(MwLL handle, MwPoint* points, int points_count, MwLLColor color) = NULL; void (*MwLLLine)(MwLL handle, MwPoint* points, MwLLColor color) = NULL; -void (*MwLLBeginDraw)(MwLL handle) = NULL; -void (*MwLLEndDraw)(MwLL handle) = NULL; - MwLLColor (*MwLLAllocColor)(MwLL handle, int r, int g, int b) = NULL; void (*MwLLColorUpdate)(MwLL handle, MwLLColor c, int r, int g, int b) = NULL; void (*MwLLFreeColor)(MwLLColor color) = NULL; diff --git a/src/widget/opengl.c b/src/widget/opengl.c index b508ef6b5..779b17afa 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -364,14 +364,12 @@ static void mwOpenGLSwapBufferImpl(MwWidget handle) { #ifdef USE_WAYLAND if(handle->lowlevel->common.type == MwLLBackendWayland) { waylandopengl_t* o = handle->internal; - // eglSwapInterval(o->egl_display, 0); if(!eglSwapBuffers(o->egl_display, o->egl_surface)) { printf("ERROR: eglSwapBuffers, %0X\n", eglGetError()); }; wl_egl_window_resize((struct wl_egl_window*)o->egl_window_native, handle->lowlevel->wayland.ww, handle->lowlevel->wayland.wh, 0, 0); - // MwLLForceRender(handle->lowlevel); } #endif } From 0a62467760d794414516de1af6bdfd3d83f13f2a Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 18 Mar 2026 23:01:39 -0700 Subject: [PATCH 211/836] correct mouse clicks --- include/Mw/LowLevel/Wayland.h | 2 ++ src/backend/wayland.c | 10 ++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index c09f81b14..024881388 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -204,6 +204,8 @@ struct _MwLLWayland { MwLL currentlyHeldWidget; + struct wl_surface* curSurface; + cairo_surface_t* cs; cairo_t* cairo; }; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index c85ca6a29..f15d3d7b9 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -377,6 +377,7 @@ static void pointer_enter(void* data, struct wl_pointer* wl_pointer, MwU32 seria MwLL self = data; WAYLAND_EVENT_OP_START(self); + self->wayland.curSurface = surface; self->wayland.pointer_serial = serial; @@ -429,7 +430,11 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri p.point = self->wayland.cur_mouse_pos; - if(p.point.x > x && p.point.x < x + self->wayland.ww && p.point.y > y && p.point.y < y + self->wayland.wh) { + if(self->wayland.parent == NULL) { + return; + } + + if(self->wayland.framebuffer.surface == self->wayland.curSurface) { int i; switch(button) { @@ -999,7 +1004,7 @@ static void region_setup(MwLL handle) { if(handle->wayland.type == MWLL_WAYLAND_POPUP) { wl_region_add(handle->wayland.region, 0, 0, handle->wayland.ww + abs(handle->wayland.x), handle->wayland.wh + abs(handle->wayland.y)); } else { - wl_region_add(handle->wayland.region, handle->wayland.x, handle->wayland.y, handle->wayland.ww + abs(handle->wayland.x), handle->wayland.wh + abs(handle->wayland.y)); + wl_region_add(handle->wayland.region, 0, 0, handle->wayland.ww, handle->wayland.wh); } wl_surface_set_input_region(handle->wayland.framebuffer.surface, handle->wayland.region); wl_surface_set_opaque_region(handle->wayland.framebuffer.surface, handle->wayland.region); @@ -1233,6 +1238,7 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { r->wayland.sublevel->subsurface = wl_subcompositor_get_subsurface(r->wayland.sublevel->subcompositor, r->wayland.framebuffer.surface, parent_surface); + wl_subsurface_set_desync(r->wayland.sublevel->subsurface); wl_subsurface_set_position(r->wayland.sublevel->subsurface, x, y); r->wayland.configured = MwTRUE; From 59608238012c36ad7945969887b051653f30b4ff Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 18 Mar 2026 23:07:16 -0700 Subject: [PATCH 212/836] wayland: don't early return from pointer_button, it causes a deadlock --- src/backend/wayland.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index f15d3d7b9..e45c367a9 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -430,10 +430,6 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri p.point = self->wayland.cur_mouse_pos; - if(self->wayland.parent == NULL) { - return; - } - if(self->wayland.framebuffer.surface == self->wayland.curSurface) { int i; @@ -878,7 +874,7 @@ static void xdg_toplevel_configure(void* data, region_setup(self); MwLLDispatch(self, resize, NULL); - MwLLDispatch(self, draw, NULL); + // MwLLDispatch(self, draw, NULL); MwLLForceRender(self); @@ -1407,7 +1403,7 @@ static void MwLLDestroyImpl(MwLL handle) { struct timeval tv; struct timespec t = { .tv_sec = 0, - .tv_nsec = 100, + .tv_nsec = 0, }; int select_ret; From 91c05b670d1171df71d8d9ea0e2f3fcc9b028019 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 19 Mar 2026 15:57:20 -0700 Subject: [PATCH 213/836] wayland: working viewport, subsurface input region --- include/Mw/LowLevel.h | 2 ++ include/Mw/LowLevel/Wayland.h | 1 + src/backend/wayland.c | 31 +++++++++++++++++++++++++------ src/core.c | 1 + 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 30d7f310a..b7e21afca 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -39,6 +39,8 @@ struct _MwLLCommon { int type; int coordinate_type; + MwBool place_above; + MwLLHandler handler; }; diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 024881388..76a5801c0 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -147,6 +147,7 @@ struct _MwLLWayland { struct wl_registry* registry; struct wl_compositor* compositor; struct wl_registry_listener registry_listener; + struct wl_region* o_region; struct wl_region* region; struct wl_output* output; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index e45c367a9..f5880388b 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -996,14 +996,26 @@ static void region_setup(MwLL handle) { if(!handle->wayland.configured) { return; } + MwLL parent = handle->wayland.parent; + int width = handle->wayland.ww; + int height = handle->wayland.wh; + wl_region_add(handle->wayland.o_region, 0, 0, 1, 1); + wl_surface_set_opaque_region(handle->wayland.framebuffer.surface, handle->wayland.o_region); if(handle->wayland.type == MWLL_WAYLAND_POPUP) { - wl_region_add(handle->wayland.region, 0, 0, handle->wayland.ww + abs(handle->wayland.x), handle->wayland.wh + abs(handle->wayland.y)); + wl_region_add(handle->wayland.region, 0, 0, width + abs(handle->wayland.x), height + abs(handle->wayland.y)); } else { - wl_region_add(handle->wayland.region, 0, 0, handle->wayland.ww, handle->wayland.wh); + if(parent) { + if(width - handle->wayland.x > parent->wayland.ww) { + width = parent->wayland.ww - handle->wayland.x; + } + if(height - handle->wayland.y > parent->wayland.wh) { + height = parent->wayland.wh - handle->wayland.y; + } + } + wl_region_add(handle->wayland.region, 0, 0, width, height); } wl_surface_set_input_region(handle->wayland.framebuffer.surface, handle->wayland.region); - wl_surface_set_opaque_region(handle->wayland.framebuffer.surface, handle->wayland.region); } static wayland_protocol_t* xdg_toplevel_icon_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { @@ -1237,6 +1249,10 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { wl_subsurface_set_desync(r->wayland.sublevel->subsurface); wl_subsurface_set_position(r->wayland.sublevel->subsurface, x, y); + if(parent) { + wl_subsurface_place_above(r->wayland.sublevel->subsurface, parent->wayland.framebuffer.surface); + } + r->wayland.configured = MwTRUE; } @@ -1387,7 +1403,8 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { framebuffer_setup(&r->wayland); - r->wayland.region = wl_compositor_create_region(r->wayland.compositor); + r->wayland.region = wl_compositor_create_region(r->wayland.compositor); + r->wayland.o_region = wl_compositor_create_region(r->wayland.compositor); region_setup(r); MwLLForceRender(r); @@ -1514,7 +1531,6 @@ refresh: static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { int i; - cairo_set_source_rgb(handle->wayland.cairo, color->common.red / 255.0, color->common.green / 255.0, color->common.blue / 255.0); cairo_new_path(handle->wayland.cairo); for(i = 0; i < points_count; i++) { @@ -1525,6 +1541,7 @@ static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLL } } cairo_close_path(handle->wayland.cairo); + cairo_fill(handle->wayland.cairo); handle->wayland.events_pending = 1; @@ -1660,16 +1677,18 @@ static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { cairo_t* c; cairo_surface_t* cs; + MwLL parent = handle->wayland.parent; cs = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, rect->width, rect->height); c = cairo_create(cs); cairo_scale(c, (double)rect->width / pixmap->common.width, (double)rect->height / pixmap->common.height); + cairo_set_source_surface(c, pixmap->wayland.cs, 0, 0); cairo_pattern_set_filter(cairo_get_source(c), CAIRO_FILTER_NEAREST); + cairo_paint(c); - cairo_set_source_rgb(handle->wayland.cairo, 1, 1, 1); cairo_set_source_surface(handle->wayland.cairo, cs, rect->x, rect->y); cairo_paint(handle->wayland.cairo); diff --git a/src/core.c b/src/core.c index c3274a150..a8178c7dd 100644 --- a/src/core.c +++ b/src/core.c @@ -46,6 +46,7 @@ static void llresizehandler(MwLL handle, void* data) { MwDispatchUserHandler(h, MwNresizeHandler, NULL); for(i = 0; i < arrlen(h->children); i++) { MwDispatch(h->children[i], parent_resize); + MwDispatch(h->children[i], draw); } MwDispatch(h, resize); } From 5f53236c91e2abc2046845c2489bb29b2567a2a6 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 19 Mar 2026 15:59:44 -0700 Subject: [PATCH 214/836] remove unused test parameter added to common lowLevel --- include/Mw/LowLevel.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index b7e21afca..30d7f310a 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -39,8 +39,6 @@ struct _MwLLCommon { int type; int coordinate_type; - MwBool place_above; - MwLLHandler handler; }; From 42db5889db2eae5c47031fed9f78e45d5140a32a Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 19 Mar 2026 16:01:32 -0700 Subject: [PATCH 215/836] wayland c89 --- src/backend/wayland.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index f5880388b..117a328cf 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -993,12 +993,14 @@ static void region_invalidate(MwLL handle) { wl_region_subtract(handle->wayland.region, 0, 0, handle->wayland.ww, handle->wayland.wh); } static void region_setup(MwLL handle) { - if(!handle->wayland.configured) { - return; - } MwLL parent = handle->wayland.parent; int width = handle->wayland.ww; int height = handle->wayland.wh; + + if(!handle->wayland.configured) { + return; + } + wl_region_add(handle->wayland.o_region, 0, 0, 1, 1); wl_surface_set_opaque_region(handle->wayland.framebuffer.surface, handle->wayland.o_region); From 04eb28b6173fdcf52c996b8fd180d529cc92430b Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 19 Mar 2026 16:05:44 -0700 Subject: [PATCH 216/836] revert the removal of MwLLBeginDraw/EndDraw, turns out the newer system still doesn't please weston and likely other compositors --- include/Mw/LowLevel.h | 2 ++ src/backend/call.c | 6 ++++-- src/backend/cocoa.m | 8 ++++++++ src/backend/gdi.c | 8 ++++++++ src/backend/wayland.c | 8 ++++++++ src/backend/x11.c | 11 +++++++++-- src/core.c | 3 +++ src/lowlevel.c | 3 +++ 8 files changed, 45 insertions(+), 4 deletions(-) diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 30d7f310a..9766d052f 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -190,6 +190,8 @@ MWDECL void (*MwLLDestroy)(MwLL handle); MWDECL void (*MwLLPolygon)(MwLL handle, MwPoint* points, int points_count, MwLLColor color); MWDECL void (*MwLLLine)(MwLL handle, MwPoint* points, MwLLColor color); +MWDECL void (*MwLLBeginDraw)(MwLL handle); +MWDECL void (*MwLLEndDraw)(MwLL handle); MWDECL MwLLColor (*MwLLAllocColor)(MwLL handle, int r, int g, int b); MWDECL void (*MwLLColorUpdate)(MwLL handle, MwLLColor c, int r, int g, int b); diff --git a/src/backend/call.c b/src/backend/call.c index 2ce5ed234..e2ce934c9 100644 --- a/src/backend/call.c +++ b/src/backend/call.c @@ -8,8 +8,10 @@ MwLLCreate = MwLLCreateImpl; \ MwLLDestroy = MwLLDestroyImpl; \ \ - MwLLPolygon = MwLLPolygonImpl; \ - MwLLLine = MwLLLineImpl; \ + MwLLPolygon = MwLLPolygonImpl; \ + MwLLLine = MwLLLineImpl; \ + MwLLBeginDraw = MwLLBeginDrawImpl; \ + MwLLEndDraw = MwLLEndDrawImpl; \ \ MwLLAllocColor = MwLLAllocColorImpl; \ MwLLColorUpdate = MwLLColorUpdateImpl; \ diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 738ab1089..725642d35 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1001,6 +1001,14 @@ static void MwLLDestroyImpl(MwLL handle) { free(handle); } +static void MwLLBeginDrawImpl(MwLL handle) { + (void)handle; +} + +static void MwLLEndDrawImpl(MwLL handle) { + (void)handle; +} + static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { MilskoCocoa* h = handle->cocoa.real; diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 3c286a8e5..4601b79da 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -310,6 +310,14 @@ static void MwLLDestroyImpl(MwLL handle) { free(handle); } +static void MwLLBeginDrawImpl(MwLL handle) { + (void)handle; +} + +static void MwLLEndDrawImpl(MwLL handle) { + (void)handle; +} + static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { POINT* p = malloc(sizeof(*p) * points_count); HPEN pen = CreatePen(PS_NULL, 0, RGB(0, 0, 0)); diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 117a328cf..be4bc1489 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1531,6 +1531,14 @@ refresh: MwLLDispatch(handle, draw, NULL); } +static void MwLLBeginDrawImpl(MwLL handle) { + (void)handle; +} + +static void MwLLEndDrawImpl(MwLL handle) { + update_buffer(&handle->wayland.framebuffer); +} + static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { int i; cairo_set_source_rgb(handle->wayland.cairo, color->common.red / 255.0, color->common.green / 255.0, color->common.blue / 255.0); diff --git a/src/backend/x11.c b/src/backend/x11.c index 6124ceeae..f7c6fe4bd 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -261,8 +261,15 @@ static void MwLLDestroyImpl(MwLL handle) { free(handle); } -static void -MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { +static void MwLLBeginDrawImpl(MwLL handle) { + (void)handle; +} + +static void MwLLEndDrawImpl(MwLL handle) { + (void)handle; +} + +static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { int i; XPoint* p = malloc(sizeof(*p) * points_count); diff --git a/src/core.c b/src/core.c index a8178c7dd..f17fdbfa6 100644 --- a/src/core.c +++ b/src/core.c @@ -6,11 +6,14 @@ static void lldrawhandler(MwLL handle, void* data) { MwWidget h = (MwWidget)handle->common.user; (void)data; + MwLLBeginDraw(handle); h->bgcolor = NULL; MwDispatch(h, draw); if(h->draw_inject != NULL) h->draw_inject(h); MwDispatchUserHandler(h, MwNdrawHandler, NULL); + + MwLLEndDraw(handle); } static void lluphandler(MwLL handle, void* data) { diff --git a/src/lowlevel.c b/src/lowlevel.c index eeabaa339..8f8a4d932 100644 --- a/src/lowlevel.c +++ b/src/lowlevel.c @@ -6,6 +6,9 @@ void (*MwLLDestroy)(MwLL handle) = NULL; void (*MwLLPolygon)(MwLL handle, MwPoint* points, int points_count, MwLLColor color) = NULL; void (*MwLLLine)(MwLL handle, MwPoint* points, MwLLColor color) = NULL; +void (*MwLLBeginDraw)(MwLL handle) = NULL; +void (*MwLLEndDraw)(MwLL handle) = NULL; + MwLLColor (*MwLLAllocColor)(MwLL handle, int r, int g, int b) = NULL; void (*MwLLColorUpdate)(MwLL handle, MwLLColor c, int r, int g, int b) = NULL; void (*MwLLFreeColor)(MwLLColor color) = NULL; From f44f98b8aa8d0fd39ca3480d7594d7292189dcc7 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 19 Mar 2026 16:35:56 -0700 Subject: [PATCH 217/836] wayland: don't update buffer if we haven't configured --- src/backend/wayland.c | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index be4bc1489..d42136533 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -2,9 +2,12 @@ #include #include +#include +#include #include #include "../../external/stb_ds.h" +#include "Mw/BaseTypes.h" #include #include @@ -842,7 +845,7 @@ static wayland_protocol_t* zxdg_decoration_manager_v1_setup(MwU32 name, struct _ static void zxdg_decoration_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { } -/* `xdg_toplevel.close` callback */ +/* `xdg_toplevel.configure` callback */ static void xdg_toplevel_configure(void* data, struct xdg_toplevel* xdg_toplevel, MwI32 width, MwI32 height, @@ -867,6 +870,7 @@ static void xdg_toplevel_configure(void* data, region_invalidate(self); self->wayland.ww = width; self->wayland.wh = height; + xdg_surface_set_window_geometry(self->wayland.toplevel->xdg_surface, 0, 0, self->wayland.ww, self->wayland.wh); framebuffer_destroy(&self->wayland); @@ -874,7 +878,7 @@ static void xdg_toplevel_configure(void* data, region_setup(self); MwLLDispatch(self, resize, NULL); - // MwLLDispatch(self, draw, NULL); + MwLLDispatch(self, draw, NULL); MwLLForceRender(self); @@ -978,7 +982,7 @@ static void framebuffer_setup(struct _MwLLWayland* wayland) { wayland->cairo = cairo_create(wayland->cs); memset(wayland->framebuffer.buf, 255, wayland->framebuffer.buf_size); - update_buffer(&wayland->framebuffer); + if(wayland->configured) update_buffer(&wayland->framebuffer); }; static void framebuffer_destroy(struct _MwLLWayland* wayland) { buffer_destroy(&wayland->framebuffer); @@ -1212,6 +1216,8 @@ static void destroy_toplevel(MwLL r) { wl_registry_destroy(r->wayland.registry); wl_display_disconnect(r->wayland.display); + + r->wayland.configured = MwFALSE; } /* Sublevel setup function */ @@ -1265,6 +1271,8 @@ static void destroy_sublevel(MwLL r) { wl_subsurface_destroy(r->wayland.sublevel->subsurface); free(r->wayland.sublevel); + + r->wayland.configured = MwFALSE; } static void popup_configure(void* data, @@ -1367,6 +1375,13 @@ static void destroy_popup(MwLL r) { wl_surface_destroy(r->wayland.framebuffer.surface); wl_registry_destroy(r->wayland.registry); + + r->wayland.configured = MwFALSE; +} + +static void wl_logger(const char* fmt, va_list args) { + vprintf(fmt, args); + raise(SIGTRAP); } static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { @@ -1375,6 +1390,8 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { memset(r, 0, sizeof(*r)); MwLLCreateCommon(r); + wl_log_set_handler_client(wl_logger); + /* Wayland does not report global coordinates ever. Compositors are not even expected to have knowledge of this. */ r->common.coordinate_type = MwCoordinatesLocal; @@ -1519,8 +1536,9 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { } if(handle->wayland.type == MWLL_WAYLAND_POPUP) { - destroy_popup(handle); - setup_popup(handle, handle->wayland.x, handle->wayland.y); + // destroy_popup(handle); + // wl_flush(handle); + // setup_popup(handle, handle->wayland.x, handle->wayland.y); } refresh: @@ -1536,7 +1554,7 @@ static void MwLLBeginDrawImpl(MwLL handle) { } static void MwLLEndDrawImpl(MwLL handle) { - update_buffer(&handle->wayland.framebuffer); + if(handle->wayland.configured) update_buffer(&handle->wayland.framebuffer); } static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { @@ -1632,7 +1650,7 @@ static void MwLLNextEventImpl(MwLL handle) { handle->wayland.events_pending = 0; } if(handle->wayland.force_render) { - update_buffer(&handle->wayland.framebuffer); + if(handle->wayland.configured) update_buffer(&handle->wayland.framebuffer); handle->wayland.force_render = 0; } } @@ -1739,7 +1757,7 @@ static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { handle->wayland.icon->buf[i + 3] = 255; } - update_buffer(handle->wayland.icon); + if(handle->wayland.configured) update_buffer(handle->wayland.icon); xdg_toplevel_icon_v1_add_buffer(icon, handle->wayland.icon->shm_buffer, 1); @@ -1817,6 +1835,8 @@ static void MwLLDetachImpl(MwLL handle, MwPoint* point) { return; } + wl_flush(handle); + switch(handle->wayland.type_to_be) { case MWLL_WAYLAND_POPUP: setup_popup(handle, point->x, point->y); From f78e5e620fe0929d45757844b59d0ed56692ca6e Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 19 Mar 2026 17:05:08 -0700 Subject: [PATCH 218/836] wayland: image clipping attempt --- src/backend/wayland.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index d42136533..c22685faa 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1,5 +1,6 @@ #include +#include #include #include #include @@ -877,12 +878,11 @@ static void xdg_toplevel_configure(void* data, framebuffer_setup(&self->wayland); region_setup(self); +finish: MwLLDispatch(self, resize, NULL); MwLLDispatch(self, draw, NULL); MwLLForceRender(self); - - return; }; /* Empty function for satisfying zxdg_toplevel's requirements */ @@ -1710,6 +1710,11 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { cs = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, rect->width, rect->height); c = cairo_create(cs); + if(parent) { + cairo_rectangle(c, 0, 0, parent->wayland.ww + handle->wayland.x, parent->wayland.wh + handle->wayland.y); + cairo_clip(c); + } + cairo_scale(c, (double)rect->width / pixmap->common.width, (double)rect->height / pixmap->common.height); cairo_set_source_surface(c, pixmap->wayland.cs, 0, 0); @@ -1848,6 +1853,15 @@ static void MwLLDetachImpl(MwLL handle, MwPoint* point) { } static void MwLLShowImpl(MwLL handle, int show) { + switch(handle->wayland.type) { + case MWLL_WAYLAND_UNKNOWN: + case MWLL_WAYLAND_TOPLEVEL: + break; + case MWLL_WAYLAND_SUBLEVEL: + break; + case MWLL_WAYLAND_POPUP: + break; + } } static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { From 3eeace0963b4e2551fa18459b58b5dddadd20301 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 19 Mar 2026 17:32:36 -0700 Subject: [PATCH 219/836] don't use wl_dispatch_pending_timeout appearently debian still doesn't ship with it --- src/backend/wayland.c | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index c22685faa..8cc6000a2 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include @@ -1070,15 +1071,17 @@ static int event_loop(MwLL handle) { } wl_display_prepare_read(handle->wayland.display); - wl_display_read_events(wayland->display); - if((res = wl_display_dispatch_timeout(wayland->display, &timeout)) <= 0) { - if(res < 0) { - wl_display_cancel_read(handle->wayland.display); - } + /* Condition where no events are being sent. */ + if(!poll(&fd, 1, timeout.tv_nsec)) { + wl_display_cancel_read(wayland->display); wl_surface_commit(wayland->framebuffer.surface); return 0; } + wl_display_read_events(wayland->display); + if(wl_display_dispatch_pending(wayland->display) < 0) { + wl_display_cancel_read(wayland->display); + } return 1; } @@ -1615,13 +1618,26 @@ static void MwLLFreeColorImpl(MwLLColor color) { } static int MwLLPendingImpl(MwLL handle) { - MwBool pending = MwFALSE; struct timespec timeout; - timeout.tv_nsec = 1; - timeout.tv_sec = 0; - int i; + struct pollfd fd; + int pending = 0; - pending = wl_display_dispatch_timeout(handle->wayland.display, &timeout); + timeout.tv_nsec = 100; + timeout.tv_sec = 0; + + fd.fd = wl_display_get_fd(handle->wayland.display); + fd.events = POLLOUT; + + wl_display_prepare_read(handle->wayland.display); + if(!poll(&fd, 1, timeout.tv_nsec)) { + wl_display_cancel_read(handle->wayland.display); + } else { + wl_display_read_events(handle->wayland.display); + if((pending = wl_display_dispatch_pending(handle->wayland.display)) < 0) { + wl_display_cancel_read(handle->wayland.display); + } + } + wl_surface_commit(handle->wayland.framebuffer.surface); if(handle->wayland.always_render) { event_loop(handle); From 22fe52c4a3dd98134dba2f90d77f34c718ca689e Mon Sep 17 00:00:00 2001 From: Nishi Date: Fri, 20 Mar 2026 09:59:07 +0900 Subject: [PATCH 220/836] ugh --- src/backend/wayland.c | 19 ++++++++++++++----- src/core.c | 2 ++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 8cc6000a2..9bf9f9002 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1382,6 +1382,16 @@ static void destroy_popup(MwLL r) { r->wayland.configured = MwFALSE; } +static void clip(MwLL handle){ + MwLL parent = handle->wayland.parent; + + if(parent && handle->wayland.type == MWLL_WAYLAND_SUBLEVEL) { + cairo_reset_clip(handle->wayland.cairo); + cairo_rectangle(handle->wayland.cairo, 0, 0, parent->wayland.ww + handle->wayland.x, parent->wayland.wh + handle->wayland.y); + cairo_clip(handle->wayland.cairo); + } +} + static void wl_logger(const char* fmt, va_list args) { vprintf(fmt, args); raise(SIGTRAP); @@ -1562,6 +1572,9 @@ static void MwLLEndDrawImpl(MwLL handle) { static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { int i; + + clip(handle); + cairo_set_source_rgb(handle->wayland.cairo, color->common.red / 255.0, color->common.green / 255.0, color->common.blue / 255.0); cairo_new_path(handle->wayland.cairo); for(i = 0; i < points_count; i++) { @@ -1721,15 +1734,11 @@ static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { cairo_t* c; cairo_surface_t* cs; - MwLL parent = handle->wayland.parent; cs = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, rect->width, rect->height); c = cairo_create(cs); - if(parent) { - cairo_rectangle(c, 0, 0, parent->wayland.ww + handle->wayland.x, parent->wayland.wh + handle->wayland.y); - cairo_clip(c); - } + clip(handle); cairo_scale(c, (double)rect->width / pixmap->common.width, (double)rect->height / pixmap->common.height); diff --git a/src/core.c b/src/core.c index f17fdbfa6..39cae9244 100644 --- a/src/core.c +++ b/src/core.c @@ -815,6 +815,8 @@ void MwReparent(MwWidget handle, MwWidget new_parent) { arrput(new_parent->children, handle); MwDispatch(handle->parent, children_update); + + MwForceRender(handle); } MwClass MwGetClass(MwWidget handle) { From 3cf94f66513a5049f913032f0b927a3bc1b2ae31 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 19 Mar 2026 19:43:57 -0700 Subject: [PATCH 221/836] wayland: malicious compliance with gnome's CSD rule --- .clangd | 2 + include/Mw/LowLevel/Wayland.h | 26 ++++- pl/rules.pl | 1 + src/backend/wayland.c | 183 ++++++++++++++++++++++++---------- 4 files changed, 160 insertions(+), 52 deletions(-) create mode 100644 .clangd diff --git a/.clangd b/.clangd new file mode 100644 index 000000000..c2520c5c5 --- /dev/null +++ b/.clangd @@ -0,0 +1,2 @@ +Completion: + HeaderInsertion: Never diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 76a5801c0..b2927494e 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -24,12 +24,21 @@ MWDECL int MwLLWaylandCallInit(void); #ifndef WL_PROTOCOLS_DEFINED #define WL_PROTOCOLS_DEFINED #include "Wayland/xdg-shell-client-protocol.h" +#include "Wayland/viewporter-client-protocol.h" #include "Wayland/xdg-decoration-client-protocol.h" #include "Wayland/cursor-shape-client-protocol.h" #include "Wayland/primary-selection-client-protocol.h" #include "Wayland/xdg-toplevel-icon-client-protocol.h" #endif +#define SSD_BORDER_FRAME_LEFT 5 +#define SSD_BORDER_FRAME_RIGHT 5 +#define SSD_BORDER_FRAME_TOP 24 +#define SSD_BORDER_FRAME_BOTTOM 5 + +#define SSD_LEFT_OFFSET(handle) handle->wayland.has_decorations ? 0 : SSD_BORDER_FRAME_LEFT +#define SSD_TOP_OFFSET(handle) handle->wayland.has_decorations ? 0 : SSD_BORDER_FRAME_TOP + struct _MwLLWayland; typedef struct wayland_protocol { @@ -58,6 +67,9 @@ struct _MwLLWaylandTopLevel { MwBool compositor_created; MwBool xdg_wm_base_created; MwBool xdg_surface_created; + + struct wl_subsurface* ssurface; + struct wl_subcompositor* scompositor; }; struct _MwLLWaylandSublevel { @@ -143,6 +155,9 @@ struct _MwLLWayland { MwBool always_render; + MwBool has_decorations; + char title[255]; + struct wl_display* display; struct wl_registry* registry; struct wl_compositor* compositor; @@ -151,6 +166,8 @@ struct _MwLLWayland { struct wl_region* region; struct wl_output* output; + struct wp_viewport* vp; + /* clipboard related stuff. * Note that unlike most interfaces, we don't keep zwp_primary_selection stuff in a wayland_protocol_t because we use wl_data_device as a fallback and want to have it share memory space.*/ @@ -192,6 +209,7 @@ struct _MwLLWayland { MwBool did_event_loop_early; struct _MwLLWaylandShmBuffer framebuffer; + struct _MwLLWaylandShmBuffer backbuffer; struct _MwLLWaylandShmBuffer cursor; struct _MwLLWaylandShmBuffer* icon; @@ -203,12 +221,16 @@ struct _MwLLWayland { uint32_t last_time; + MwBool moving; + MwLL currentlyHeldWidget; struct wl_surface* curSurface; - cairo_surface_t* cs; - cairo_t* cairo; + cairo_surface_t* front_cs; + cairo_surface_t* back_cs; + cairo_t* front_cairo; + cairo_t* back_cairo; }; struct _MwLLWaylandColor { diff --git a/pl/rules.pl b/pl/rules.pl index 45bb6daf3..a35a6c3e6 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -37,6 +37,7 @@ if (grep(/^wayland$/, @backends)) { } scan_wayland_protocol("stable", "xdg-shell", ""); + scan_wayland_protocol("stable", "viewporter", ""); scan_wayland_protocol("stable", "tablet", "-v2"); scan_wayland_protocol("staging", "xdg-toplevel-icon", "-v1"); scan_wayland_protocol("staging", "cursor-shape", "-v1"); diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 8cc6000a2..40dfbc7ce 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1,19 +1,9 @@ #include -#include -#include -#include -#include #include -#include -#include +#include #include "../../external/stb_ds.h" -#include "Mw/BaseTypes.h" - -#include -#include -#include /* TODO: * - MwLLMakePopupImpl @@ -49,6 +39,11 @@ static void framebuffer_setup(struct _MwLLWayland* wayland); /* Destroy the framebuffer */ static void framebuffer_destroy(struct _MwLLWayland* handle); +/* Setup the framebuffer with the saved width/height */ +static void backbuffer_setup(struct _MwLLWayland* wayland); +/* Destroy the backbuffer */ +static void backbuffer_destroy(struct _MwLLWayland* handle); + static void buffer_destroy(struct _MwLLWaylandShmBuffer* buffer); static void region_setup(MwLL handle); @@ -435,7 +430,7 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri p.point = self->wayland.cur_mouse_pos; - if(self->wayland.framebuffer.surface == self->wayland.curSurface) { + if(self->wayland.framebuffer.surface == self->wayland.curSurface || self->wayland.backbuffer.surface == self->wayland.curSurface) { int i; switch(button) { @@ -798,7 +793,11 @@ static void wl_compositor_interface_destroy(struct _MwLLWayland* wayland, waylan /* wl_subcompositor setup function */ static wayland_protocol_t* wl_subcompositor_setup(MwU32 name, struct _MwLLWayland* wayland) { - wayland->sublevel->subcompositor = wl_registry_bind(wayland->registry, name, &wl_subcompositor_interface, 1); + if(wayland->type == MWLL_WAYLAND_TOPLEVEL) { + wayland->toplevel->scompositor = wl_registry_bind(wayland->registry, name, &wl_subcompositor_interface, 1); + } else { + wayland->sublevel->subcompositor = wl_registry_bind(wayland->registry, name, &wl_subcompositor_interface, 1); + } return NULL; } @@ -824,6 +823,18 @@ static void xdg_wm_base_interface_destroy(struct _MwLLWayland* wayland, wayland_ free(data->listener); } +/* xdg_wm_base setup function */ +static wayland_protocol_t* wp_viewporter_setup(MwU32 name, struct _MwLLWayland* wayland) { + wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); + proto->context = wl_registry_bind(wayland->registry, name, &wp_viewporter_interface, 1); + + return proto; +} + +static void wp_viewporter_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + free(data->listener); +} + /* the two decoration manager constructs */ typedef struct zxdg_decoration_manager_v1_context { struct zxdg_decoration_manager_v1* manager; @@ -875,6 +886,9 @@ static void xdg_toplevel_configure(void* data, xdg_surface_set_window_geometry(self->wayland.toplevel->xdg_surface, 0, 0, self->wayland.ww, self->wayland.wh); + backbuffer_destroy(&self->wayland); + backbuffer_setup(&self->wayland); + framebuffer_destroy(&self->wayland); framebuffer_setup(&self->wayland); region_setup(self); @@ -910,6 +924,7 @@ static void xdg_surface_configure( if(self->wayland.configured) { wl_surface_commit(self->wayland.framebuffer.surface); + wl_surface_commit(self->wayland.backbuffer.surface); } self->wayland.configured = MwTRUE; @@ -917,8 +932,8 @@ static void xdg_surface_configure( /* wl_shm setup function */ static wayland_protocol_t* wl_shm_setup(MwU32 name, struct _MwLLWayland* wayland) { - wayland->framebuffer.shm = wl_registry_bind(wayland->registry, name, &wl_shm_interface, 1); + wayland->backbuffer.shm = wl_registry_bind(wayland->registry, name, &wl_shm_interface, 1); wayland->cursor.shm = wl_registry_bind(wayland->registry, name, &wl_shm_interface, 1); return NULL; @@ -979,16 +994,34 @@ static void buffer_destroy(struct _MwLLWaylandShmBuffer* buffer) { static void framebuffer_setup(struct _MwLLWayland* wayland) { buffer_setup(&wayland->framebuffer, wayland->ww, wayland->wh); - wayland->cs = cairo_image_surface_create_for_data(wayland->framebuffer.buf, CAIRO_FORMAT_ARGB32, wayland->ww, wayland->wh, 4 * wayland->ww); - wayland->cairo = cairo_create(wayland->cs); + wayland->front_cs = cairo_image_surface_create_for_data(wayland->framebuffer.buf, CAIRO_FORMAT_ARGB32, wayland->ww, wayland->wh, 4 * wayland->ww); + wayland->front_cairo = cairo_create(wayland->front_cs); memset(wayland->framebuffer.buf, 255, wayland->framebuffer.buf_size); if(wayland->configured) update_buffer(&wayland->framebuffer); }; static void framebuffer_destroy(struct _MwLLWayland* wayland) { buffer_destroy(&wayland->framebuffer); - cairo_destroy(wayland->cairo); - cairo_surface_destroy(wayland->cs); + cairo_destroy(wayland->front_cairo); + cairo_surface_destroy(wayland->front_cs); +}; + +static void backbuffer_setup(struct _MwLLWayland* wayland) { + if(wayland->type != MWLL_WAYLAND_TOPLEVEL) { + return; + } + buffer_setup(&wayland->backbuffer, wayland->ww, wayland->wh); + + wayland->back_cs = cairo_image_surface_create_for_data(wayland->backbuffer.buf, CAIRO_FORMAT_ARGB32, wayland->ww, wayland->wh, 4 * wayland->ww); + wayland->back_cairo = cairo_create(wayland->back_cs); + + memset(wayland->backbuffer.buf, 255, wayland->backbuffer.buf_size); + if(wayland->configured) update_buffer(&wayland->backbuffer); +}; +static void backbuffer_destroy(struct _MwLLWayland* wayland) { + buffer_destroy(&wayland->backbuffer); + cairo_destroy(wayland->back_cairo); + cairo_surface_destroy(wayland->back_cs); }; static void region_invalidate(MwLL handle) { @@ -1007,7 +1040,6 @@ static void region_setup(MwLL handle) { } wl_region_add(handle->wayland.o_region, 0, 0, 1, 1); - wl_surface_set_opaque_region(handle->wayland.framebuffer.surface, handle->wayland.o_region); if(handle->wayland.type == MWLL_WAYLAND_POPUP) { wl_region_add(handle->wayland.region, 0, 0, width + abs(handle->wayland.x), height + abs(handle->wayland.y)); @@ -1022,7 +1054,12 @@ static void region_setup(MwLL handle) { } wl_region_add(handle->wayland.region, 0, 0, width, height); } + wl_surface_set_opaque_region(handle->wayland.framebuffer.surface, handle->wayland.region); wl_surface_set_input_region(handle->wayland.framebuffer.surface, handle->wayland.region); + if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + wl_surface_set_opaque_region(handle->wayland.backbuffer.surface, handle->wayland.region); + wl_surface_set_input_region(handle->wayland.backbuffer.surface, handle->wayland.region); + } } static wayland_protocol_t* xdg_toplevel_icon_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { @@ -1076,6 +1113,8 @@ static int event_loop(MwLL handle) { wl_display_cancel_read(wayland->display); wl_surface_commit(wayland->framebuffer.surface); + if(wayland->type == MWLL_WAYLAND_TOPLEVEL) + wl_surface_commit(wayland->backbuffer.surface); return 0; } wl_display_read_events(wayland->display); @@ -1109,8 +1148,10 @@ static void setup_callbacks(struct _MwLLWayland* wayland) { WL_INTERFACE(zwp_primary_selection_device_manager_v1); if(wayland->type == MWLL_WAYLAND_TOPLEVEL) { WL_INTERFACE(xdg_wm_base); + WL_INTERFACE(wp_viewporter); WL_INTERFACE(zxdg_decoration_manager_v1); WL_INTERFACE(xdg_toplevel_icon_manager_v1); + WL_INTERFACE(wl_subcompositor); } else if(wayland->type == MWLL_WAYLAND_POPUP) { WL_INTERFACE(xdg_wm_base); } else { @@ -1138,8 +1179,6 @@ static void setup_toplevel(MwLL r, int x, int y) { return; } - r->wayland.framebuffer.surface = NULL; - /* Do a roundtrip to ensure all interfaces are setup. */ r->wayland.registry = wl_display_get_registry(r->wayland.display); wl_registry_add_listener(r->wayland.registry, &r->wayland.registry_listener, r); @@ -1153,9 +1192,11 @@ static void setup_toplevel(MwLL r, int x, int y) { /* Create a wl_surface, a xdg_surface and a xdg_toplevel */ r->wayland.framebuffer.surface = wl_compositor_create_surface(r->wayland.compositor); + r->wayland.backbuffer.surface = wl_compositor_create_surface(r->wayland.compositor); + r->wayland.toplevel->ssurface = wl_subcompositor_get_subsurface(r->wayland.toplevel->scompositor, r->wayland.framebuffer.surface, r->wayland.backbuffer.surface); r->wayland.toplevel->xdg_surface = - xdg_wm_base_get_xdg_surface(WAYLAND_GET_INTERFACE(r->wayland, xdg_wm_base)->context, r->wayland.framebuffer.surface); + xdg_wm_base_get_xdg_surface(WAYLAND_GET_INTERFACE(r->wayland, xdg_wm_base)->context, r->wayland.backbuffer.surface); r->wayland.toplevel->xdg_top_level = xdg_surface_get_toplevel(r->wayland.toplevel->xdg_surface); /* setup mandatory listeners */ @@ -1172,6 +1213,7 @@ static void setup_toplevel(MwLL r, int x, int y) { xdg_toplevel_set_app_id(r->wayland.toplevel->xdg_top_level, "MilskoWaylandApp"); /* Perform the initial commit and wait for the first configure event */ + wl_surface_commit(r->wayland.backbuffer.surface); wl_surface_commit(r->wayland.framebuffer.surface); while(!r->wayland.configured) { event_loop(r); @@ -1186,8 +1228,18 @@ static void setup_toplevel(MwLL r, int x, int y) { zxdg_toplevel_decoration_v1_set_mode( dec->decoration, ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE); + + r->wayland.has_decorations = MwTRUE; } else { - printf("zxdg null\n"); + /* otherwise set up viewporter */ + struct wp_viewporter* wp = WAYLAND_GET_INTERFACE(r->wayland, wp_viewporter)->context; + r->wayland.vp = wp_viewporter_get_viewport(wp, r->wayland.framebuffer.surface); + wp_viewport_set_source(r->wayland.vp, r->wayland.x, r->wayland.y, r->wayland.ww, r->wayland.wh); + wp_viewport_set_destination(r->wayland.vp, r->wayland.ww - (SSD_BORDER_FRAME_LEFT + SSD_BORDER_FRAME_RIGHT), r->wayland.wh - (SSD_BORDER_FRAME_TOP + SSD_BORDER_FRAME_BOTTOM)); + r->wayland.has_decorations = MwFALSE; + + wl_subsurface_set_position(r->wayland.toplevel->ssurface, SSD_BORDER_FRAME_LEFT, SSD_BORDER_FRAME_TOP); + wl_subsurface_set_desync(r->wayland.toplevel->ssurface); } } @@ -1269,6 +1321,7 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { /* Sublevel setup function */ static void destroy_sublevel(MwLL r) { + backbuffer_destroy(&r->wayland); framebuffer_destroy(&r->wayland); wl_subsurface_destroy(r->wayland.sublevel->subsurface); @@ -1365,6 +1418,7 @@ static void setup_popup(MwLL r, int x, int y) { // framebuffer_destroy(&r->wayland); framebuffer_setup(&r->wayland); + backbuffer_setup(&r->wayland); } /* Popup destroy function */ @@ -1424,6 +1478,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { } framebuffer_setup(&r->wayland); + backbuffer_setup(&r->wayland); r->wayland.region = wl_compositor_create_region(r->wayland.compositor); r->wayland.o_region = wl_compositor_create_region(r->wayland.compositor); @@ -1515,8 +1570,6 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { if(handle->wayland.type == MWLL_WAYLAND_SUBLEVEL) { wl_subsurface_set_position(handle->wayland.sublevel->subsurface, x, y); } - if(handle->wayland.type == MWLL_WAYLAND_POPUP) { - } region_setup(handle); MwLLDispatch(handle, draw, NULL); @@ -1531,17 +1584,29 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { handle->wayland.wh = 10; goto refresh; } + if(handle->wayland.parent) { + if(handle->wayland.parent->wayland.type == MWLL_WAYLAND_TOPLEVEL && !handle->wayland.parent->wayland.has_decorations) { + if(w >= handle->wayland.parent->wayland.ww - (SSD_BORDER_FRAME_LEFT + SSD_BORDER_FRAME_RIGHT)) + w = handle->wayland.parent->wayland.ww - (SSD_BORDER_FRAME_LEFT + SSD_BORDER_FRAME_RIGHT); + if(h >= handle->wayland.parent->wayland.wh - (SSD_BORDER_FRAME_TOP + SSD_BORDER_FRAME_BOTTOM)) + h = handle->wayland.parent->wayland.wh - (SSD_BORDER_FRAME_TOP + SSD_BORDER_FRAME_BOTTOM); + } + } handle->wayland.ww = w; handle->wayland.wh = h; + // if(handle->wayland.wh >= (SSD_BORDER_FRAME_TOP + SSD_BORDER_FRAME_BOTTOM)) { + // handle->wayland.wh -= (SSD_BORDER_FRAME_TOP + SSD_BORDER_FRAME_BOTTOM); + // } + if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL && handle->wayland.configured) { xdg_surface_set_window_geometry(handle->wayland.toplevel->xdg_surface, 0, 0, handle->wayland.ww, handle->wayland.wh); } if(handle->wayland.type == MWLL_WAYLAND_POPUP) { - // destroy_popup(handle); - // wl_flush(handle); - // setup_popup(handle, handle->wayland.x, handle->wayland.y); + destroy_popup(handle); + wl_flush(handle); + setup_popup(handle, handle->wayland.x, handle->wayland.y); } refresh: @@ -1549,31 +1614,48 @@ refresh: framebuffer_destroy(&handle->wayland); framebuffer_setup(&handle->wayland); + backbuffer_destroy(&handle->wayland); + backbuffer_setup(&handle->wayland); MwLLDispatch(handle, draw, NULL); } static void MwLLBeginDrawImpl(MwLL handle) { - (void)handle; + if(handle->wayland.type != MWLL_WAYLAND_TOPLEVEL) { + return; + } + if(!handle->wayland.has_decorations) { + cairo_set_source_rgb(handle->wayland.back_cairo, 0, 0.25, 0.25); + cairo_rectangle(handle->wayland.back_cairo, 1, 1, handle->wayland.ww - 2, handle->wayland.wh - 2); + cairo_fill_preserve(handle->wayland.back_cairo); + cairo_set_source_rgb(handle->wayland.back_cairo, 1, 1, 1); + cairo_rectangle(handle->wayland.back_cairo, 0, 0, handle->wayland.ww, handle->wayland.wh); + cairo_stroke(handle->wayland.back_cairo); + } } static void MwLLEndDrawImpl(MwLL handle) { - if(handle->wayland.configured) update_buffer(&handle->wayland.framebuffer); + if(handle->wayland.configured) { + update_buffer(&handle->wayland.framebuffer); + if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + update_buffer(&handle->wayland.backbuffer); + } + } } static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { int i; - cairo_set_source_rgb(handle->wayland.cairo, color->common.red / 255.0, color->common.green / 255.0, color->common.blue / 255.0); - cairo_new_path(handle->wayland.cairo); + cairo_set_source_rgb(handle->wayland.front_cairo, color->common.red / 255.0, color->common.green / 255.0, color->common.blue / 255.0); + cairo_new_path(handle->wayland.front_cairo); for(i = 0; i < points_count; i++) { if(i == 0) { - cairo_move_to(handle->wayland.cairo, points[i].x, points[i].y); + cairo_move_to(handle->wayland.front_cairo, points[i].x, points[i].y); } else { - cairo_line_to(handle->wayland.cairo, points[i].x, points[i].y); + cairo_line_to(handle->wayland.front_cairo, points[i].x, points[i].y); } } - cairo_close_path(handle->wayland.cairo); + cairo_close_path(handle->wayland.front_cairo); - cairo_fill(handle->wayland.cairo); + cairo_fill(handle->wayland.front_cairo); handle->wayland.events_pending = 1; } @@ -1581,18 +1663,18 @@ static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLL static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { int i; - cairo_set_line_cap(handle->wayland.cairo, CAIRO_LINE_CAP_SQUARE); - cairo_set_source_rgb(handle->wayland.cairo, color->common.red / 255.0, color->common.green / 255.0, color->common.blue / 255.0); - cairo_new_path(handle->wayland.cairo); + cairo_set_line_cap(handle->wayland.front_cairo, CAIRO_LINE_CAP_SQUARE); + cairo_set_source_rgb(handle->wayland.front_cairo, color->common.red / 255.0, color->common.green / 255.0, color->common.blue / 255.0); + cairo_new_path(handle->wayland.front_cairo); for(i = 0; i < 2; i++) { if(i == 0) { - cairo_move_to(handle->wayland.cairo, points[i].x, points[i].y); + cairo_move_to(handle->wayland.front_cairo, points[i].x, points[i].y); } else { - cairo_line_to(handle->wayland.cairo, points[i].x, points[i].y); + cairo_line_to(handle->wayland.front_cairo, points[i].x, points[i].y); } } - cairo_close_path(handle->wayland.cairo); - cairo_stroke(handle->wayland.cairo); + cairo_close_path(handle->wayland.front_cairo); + cairo_stroke(handle->wayland.front_cairo); handle->wayland.events_pending = 1; } @@ -1638,6 +1720,9 @@ static int MwLLPendingImpl(MwLL handle) { } } wl_surface_commit(handle->wayland.framebuffer.surface); + if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + wl_surface_commit(handle->wayland.backbuffer.surface); + } if(handle->wayland.always_render) { event_loop(handle); @@ -1675,6 +1760,9 @@ static void MwLLSetTitleImpl(MwLL handle, const char* title) { if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { xdg_toplevel_set_title(handle->wayland.toplevel->xdg_top_level, title); } + if(!handle->wayland.has_decorations) { + strncpy(handle->wayland.title, title, 255); + } } static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) { @@ -1726,11 +1814,6 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { cs = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, rect->width, rect->height); c = cairo_create(cs); - if(parent) { - cairo_rectangle(c, 0, 0, parent->wayland.ww + handle->wayland.x, parent->wayland.wh + handle->wayland.y); - cairo_clip(c); - } - cairo_scale(c, (double)rect->width / pixmap->common.width, (double)rect->height / pixmap->common.height); cairo_set_source_surface(c, pixmap->wayland.cs, 0, 0); @@ -1738,8 +1821,8 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { cairo_paint(c); - cairo_set_source_surface(handle->wayland.cairo, cs, rect->x, rect->y); - cairo_paint(handle->wayland.cairo); + cairo_set_source_surface(handle->wayland.front_cairo, cs, rect->x, rect->y); + cairo_paint(handle->wayland.front_cairo); cairo_destroy(c); cairo_surface_destroy(cs); From 52d676e54fc2ad56aa3370f7ca5ccee7a24134bf Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Fri, 20 Mar 2026 19:28:18 -0700 Subject: [PATCH 222/836] csd and clipping --- include/Mw/LowLevel/Wayland.h | 21 +++-- src/backend/wayland.c | 167 ++++++++++++++++++++++++++++------ 2 files changed, 153 insertions(+), 35 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index b2927494e..053d0ff91 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -31,13 +31,13 @@ MWDECL int MwLLWaylandCallInit(void); #include "Wayland/xdg-toplevel-icon-client-protocol.h" #endif -#define SSD_BORDER_FRAME_LEFT 5 -#define SSD_BORDER_FRAME_RIGHT 5 -#define SSD_BORDER_FRAME_TOP 24 -#define SSD_BORDER_FRAME_BOTTOM 5 +#define CSD_BORDER_FRAME_LEFT 5 +#define CSD_BORDER_FRAME_RIGHT 5 +#define CSD_BORDER_FRAME_TOP 24 +#define CSD_BORDER_FRAME_BOTTOM 5 -#define SSD_LEFT_OFFSET(handle) handle->wayland.has_decorations ? 0 : SSD_BORDER_FRAME_LEFT -#define SSD_TOP_OFFSET(handle) handle->wayland.has_decorations ? 0 : SSD_BORDER_FRAME_TOP +#define CSD_LEFT_OFFSET(handle) handle->wayland.has_decorations ? 0 : CSD_BORDER_FRAME_LEFT +#define CSD_TOP_OFFSET(handle) handle->wayland.has_decorations ? 0 : CSD_BORDER_FRAME_TOP struct _MwLLWayland; @@ -185,8 +185,10 @@ struct _MwLLWayland { uint32_t clipboard_serial; wl_clipboard_device_context_t** clipboard_devices; - struct wl_pointer* pointer; - MwU32 pointer_serial; + struct wl_pointer* pointer; + MwU32 pointer_serial; + struct wl_seat* pointer_seat; + struct wl_keyboard* keyboard; MwU32 keyboard_serial; @@ -196,6 +198,8 @@ struct _MwLLWayland { MwBool configured; /* Whether or not xdg_toplevel_configure has run once */ + MwBool held_down; + MwI32 x, y; MwI32 ox, oy; MwU32 ww, wh; /* Window position */ @@ -231,6 +235,7 @@ struct _MwLLWayland { cairo_surface_t* back_cs; cairo_t* front_cairo; cairo_t* back_cairo; + cairo_t* selected_cairo; }; struct _MwLLWaylandColor { diff --git a/src/backend/wayland.c b/src/backend/wayland.c index be8b45acc..d6eae3ccf 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -391,6 +391,30 @@ static void pointer_leave(void* data, struct wl_pointer* wl_pointer, MwU32 seria struct wl_surface* surface) { }; +static void xdg_borderless_step(MwLL self, MwLLMouse p, MwU32 serial) { + if(self->wayland.type == MWLL_WAYLAND_TOPLEVEL && self->wayland.backbuffer.surface == self->wayland.curSurface) { + if(p.point.y >= self->wayland.wh - 5) { + if(p.point.x >= self->wayland.ww - 5) { + xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_BOTTOM_RIGHT); + } else { + xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_BOTTOM); + } + } else if(p.point.y <= 5) { + if(p.point.x >= self->wayland.ww - 5) { + xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_TOP_RIGHT); + } else { + xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_TOP); + } + } else if(p.point.x >= self->wayland.ww - 5) { + xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_RIGHT); + } else if(p.point.x <= 5) { + xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_LEFT); + } else if(p.point.y <= CSD_BORDER_FRAME_TOP) { + xdg_toplevel_move(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial); + } + }; +} + /* `wl_pointer.motion` callback */ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time, wl_fixed_t surface_x, wl_fixed_t surface_y) { @@ -448,12 +472,15 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri p.button = MwLLMouseRight; break; } + self->wayland.held_down = state == WL_POINTER_BUTTON_STATE_PRESSED; + switch(state) { case WL_POINTER_BUTTON_STATE_PRESSED: MwLLDispatch(self, down, &p); if(self->wayland.parent != NULL) { self->wayland.parent->wayland.currentlyHeldWidget = self; } + break; case WL_POINTER_BUTTON_STATE_RELEASED: if(self->wayland.parent != NULL) { @@ -472,6 +499,10 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri MwLLDispatch(self, draw, NULL); } + if(!self->wayland.has_decorations) { + xdg_borderless_step(self, p, serial); + } + WAYLAND_EVENT_OP_END(self); }; @@ -694,7 +725,8 @@ static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat, wl_keyboard_add_listener(self->wayland.keyboard, &keyboard_listener, data); } if(capabilities & WL_SEAT_CAPABILITY_POINTER) { - self->wayland.pointer = wl_seat_get_pointer(wl_seat); + self->wayland.pointer_seat = wl_seat; + self->wayland.pointer = wl_seat_get_pointer(wl_seat); wl_pointer_add_listener(self->wayland.pointer, &pointer_listener, data); } @@ -893,7 +925,10 @@ static void xdg_toplevel_configure(void* data, framebuffer_setup(&self->wayland); region_setup(self); -finish: + if(self->wayland.type == MWLL_WAYLAND_TOPLEVEL && !self->wayland.has_decorations) { + wp_viewport_set_destination(self->wayland.vp, self->wayland.ww - (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT), self->wayland.wh - (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM)); + } + MwLLDispatch(self, resize, NULL); MwLLDispatch(self, draw, NULL); @@ -997,7 +1032,7 @@ static void framebuffer_setup(struct _MwLLWayland* wayland) { wayland->front_cs = cairo_image_surface_create_for_data(wayland->framebuffer.buf, CAIRO_FORMAT_ARGB32, wayland->ww, wayland->wh, 4 * wayland->ww); wayland->front_cairo = cairo_create(wayland->front_cs); - memset(wayland->framebuffer.buf, 255, wayland->framebuffer.buf_size); + memset(wayland->framebuffer.buf, 0, wayland->framebuffer.buf_size); if(wayland->configured) update_buffer(&wayland->framebuffer); }; static void framebuffer_destroy(struct _MwLLWayland* wayland) { @@ -1015,7 +1050,7 @@ static void backbuffer_setup(struct _MwLLWayland* wayland) { wayland->back_cs = cairo_image_surface_create_for_data(wayland->backbuffer.buf, CAIRO_FORMAT_ARGB32, wayland->ww, wayland->wh, 4 * wayland->ww); wayland->back_cairo = cairo_create(wayland->back_cs); - memset(wayland->backbuffer.buf, 255, wayland->backbuffer.buf_size); + memset(wayland->backbuffer.buf, 0, wayland->backbuffer.buf_size); if(wayland->configured) update_buffer(&wayland->backbuffer); }; static void backbuffer_destroy(struct _MwLLWayland* wayland) { @@ -1054,12 +1089,12 @@ static void region_setup(MwLL handle) { } wl_region_add(handle->wayland.region, 0, 0, width, height); } - wl_surface_set_opaque_region(handle->wayland.framebuffer.surface, handle->wayland.region); - wl_surface_set_input_region(handle->wayland.framebuffer.surface, handle->wayland.region); if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { wl_surface_set_opaque_region(handle->wayland.backbuffer.surface, handle->wayland.region); wl_surface_set_input_region(handle->wayland.backbuffer.surface, handle->wayland.region); } + wl_surface_set_opaque_region(handle->wayland.framebuffer.surface, handle->wayland.region); + wl_surface_set_input_region(handle->wayland.framebuffer.surface, handle->wayland.region); } static wayland_protocol_t* xdg_toplevel_icon_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { @@ -1194,6 +1229,7 @@ static void setup_toplevel(MwLL r, int x, int y) { r->wayland.framebuffer.surface = wl_compositor_create_surface(r->wayland.compositor); r->wayland.backbuffer.surface = wl_compositor_create_surface(r->wayland.compositor); r->wayland.toplevel->ssurface = wl_subcompositor_get_subsurface(r->wayland.toplevel->scompositor, r->wayland.framebuffer.surface, r->wayland.backbuffer.surface); + wl_subsurface_set_desync(r->wayland.toplevel->ssurface); r->wayland.toplevel->xdg_surface = xdg_wm_base_get_xdg_surface(WAYLAND_GET_INTERFACE(r->wayland, xdg_wm_base)->context, r->wayland.backbuffer.surface); @@ -1235,11 +1271,10 @@ static void setup_toplevel(MwLL r, int x, int y) { struct wp_viewporter* wp = WAYLAND_GET_INTERFACE(r->wayland, wp_viewporter)->context; r->wayland.vp = wp_viewporter_get_viewport(wp, r->wayland.framebuffer.surface); wp_viewport_set_source(r->wayland.vp, r->wayland.x, r->wayland.y, r->wayland.ww, r->wayland.wh); - wp_viewport_set_destination(r->wayland.vp, r->wayland.ww - (SSD_BORDER_FRAME_LEFT + SSD_BORDER_FRAME_RIGHT), r->wayland.wh - (SSD_BORDER_FRAME_TOP + SSD_BORDER_FRAME_BOTTOM)); + wp_viewport_set_destination(r->wayland.vp, r->wayland.ww - (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT), r->wayland.wh - (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM)); r->wayland.has_decorations = MwFALSE; - wl_subsurface_set_position(r->wayland.toplevel->ssurface, SSD_BORDER_FRAME_LEFT, SSD_BORDER_FRAME_TOP); - wl_subsurface_set_desync(r->wayland.toplevel->ssurface); + wl_subsurface_set_position(r->wayland.toplevel->ssurface, CSD_BORDER_FRAME_LEFT, CSD_BORDER_FRAME_TOP); } } @@ -1437,11 +1472,16 @@ static void destroy_popup(MwLL r) { } static void clip(MwLL handle) { - MwLL parent = handle->wayland.parent; - - if(parent && handle->wayland.type == MWLL_WAYLAND_SUBLEVEL) { + MwLL topmost = handle->wayland.parent; + if(topmost && handle->wayland.type == MWLL_WAYLAND_SUBLEVEL) { cairo_reset_clip(handle->wayland.front_cairo); - cairo_rectangle(handle->wayland.front_cairo, 0, 0, parent->wayland.ww + handle->wayland.x, parent->wayland.wh + handle->wayland.y); + cairo_rectangle(handle->wayland.front_cairo, 0, 0, (topmost->wayland.ww + handle->wayland.x) - (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT), (topmost->wayland.wh + handle->wayland.y) - (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM)); + cairo_clip(handle->wayland.front_cairo); + } + if(topmost && handle->wayland.type == MWLL_WAYLAND_SUBLEVEL) { + while(topmost->wayland.parent) topmost = topmost->wayland.parent; + cairo_reset_clip(handle->wayland.front_cairo); + cairo_rectangle(handle->wayland.front_cairo, 0, 0, (topmost->wayland.ww + handle->wayland.x) - (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT), (topmost->wayland.wh + handle->wayland.y) - (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM)); cairo_clip(handle->wayland.front_cairo); } } @@ -1596,17 +1636,17 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { } if(handle->wayland.parent) { if(handle->wayland.parent->wayland.type == MWLL_WAYLAND_TOPLEVEL && !handle->wayland.parent->wayland.has_decorations) { - if(w >= handle->wayland.parent->wayland.ww - (SSD_BORDER_FRAME_LEFT + SSD_BORDER_FRAME_RIGHT)) - w = handle->wayland.parent->wayland.ww - (SSD_BORDER_FRAME_LEFT + SSD_BORDER_FRAME_RIGHT); - if(h >= handle->wayland.parent->wayland.wh - (SSD_BORDER_FRAME_TOP + SSD_BORDER_FRAME_BOTTOM)) - h = handle->wayland.parent->wayland.wh - (SSD_BORDER_FRAME_TOP + SSD_BORDER_FRAME_BOTTOM); + if(w >= handle->wayland.parent->wayland.ww - (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT)) + w = handle->wayland.parent->wayland.ww - (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT); + if(h >= handle->wayland.parent->wayland.wh - (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM)) + h = handle->wayland.parent->wayland.wh - (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM); } } handle->wayland.ww = w; handle->wayland.wh = h; - // if(handle->wayland.wh >= (SSD_BORDER_FRAME_TOP + SSD_BORDER_FRAME_BOTTOM)) { - // handle->wayland.wh -= (SSD_BORDER_FRAME_TOP + SSD_BORDER_FRAME_BOTTOM); + // if(handle->wayland.wh >= (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM)) { + // handle->wayland.wh -= (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM); // } if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL && handle->wayland.configured) { @@ -1631,23 +1671,96 @@ refresh: static void MwLLBeginDrawImpl(MwLL handle) { if(handle->wayland.type != MWLL_WAYLAND_TOPLEVEL) { + handle->wayland.selected_cairo = handle->wayland.front_cairo; return; } if(!handle->wayland.has_decorations) { - cairo_set_source_rgb(handle->wayland.back_cairo, 0, 0.25, 0.25); - cairo_rectangle(handle->wayland.back_cairo, 1, 1, handle->wayland.ww - 2, handle->wayland.wh - 2); - cairo_fill_preserve(handle->wayland.back_cairo); - cairo_set_source_rgb(handle->wayland.back_cairo, 1, 1, 1); - cairo_rectangle(handle->wayland.back_cairo, 0, 0, handle->wayland.ww, handle->wayland.wh); + int x, y; + cairo_set_line_width(handle->wayland.back_cairo, 4.0); + for(x = 0; x < handle->wayland.ww; x++) { + float placeholder = (float)x / (float)handle->wayland.ww; + cairo_set_source_rgb(handle->wayland.back_cairo, placeholder, 0.25, 0.25); + + cairo_move_to(handle->wayland.back_cairo, handle->wayland.ww - x, 0); + cairo_line_to(handle->wayland.back_cairo, handle->wayland.ww - x, CSD_BORDER_FRAME_TOP); + cairo_stroke(handle->wayland.back_cairo); + + cairo_move_to(handle->wayland.back_cairo, x, CSD_BORDER_FRAME_TOP); + cairo_line_to(handle->wayland.back_cairo, x, handle->wayland.wh); + cairo_stroke(handle->wayland.back_cairo); + } + cairo_set_source_rgba(handle->wayland.back_cairo, 1, 1, 1, 0.5); + cairo_move_to(handle->wayland.back_cairo, 0, 0); + cairo_line_to(handle->wayland.back_cairo, 0, handle->wayland.wh); cairo_stroke(handle->wayland.back_cairo); + cairo_move_to(handle->wayland.back_cairo, 0, 0); + cairo_line_to(handle->wayland.back_cairo, handle->wayland.ww, 0); + cairo_stroke(handle->wayland.back_cairo); + + cairo_set_source_rgba(handle->wayland.back_cairo, 0, 0, 0, 0.5); + cairo_move_to(handle->wayland.back_cairo, 0, handle->wayland.wh); + cairo_line_to(handle->wayland.back_cairo, handle->wayland.ww, handle->wayland.wh); + cairo_stroke(handle->wayland.back_cairo); + cairo_move_to(handle->wayland.back_cairo, handle->wayland.ww, 0); + cairo_line_to(handle->wayland.back_cairo, handle->wayland.ww, handle->wayland.wh); + cairo_stroke(handle->wayland.back_cairo); + + if(strlen(handle->wayland.title) != 0) { + int y, x; + int i = 0, sx = 0, sy = 0; + int tw, th; + unsigned char* px; + MwRect r; + MwLLPixmap p; + tw = strlen(handle->wayland.title) * 7; + th = 14; + px = malloc(tw * th * 4); + assert(px); + + memset(px, 0, tw * th * 4); + + handle->wayland.selected_cairo = handle->wayland.back_cairo; + + while(handle->wayland.title[i]) { + int out; + i += MwUTF8ToUTF32(handle->wayland.title + i, &out); + + if(out > 0xff) { + out = 0; + } + + for(y = 0; y < 14; y++) { + for(x = 0; x < 7; x++) { + unsigned char* ppx = &px[((sy + y) * tw + sx + x) * 4]; + int col = MwFontData[out].data[y] & (1 << ((7 - 1) - x)) ? 255 : 0; + ppx[0] = col; + ppx[1] = col; + ppx[2] = col; + ppx[3] = col; + } + } + sx += 7; + } + + p = MwLLCreatePixmap(handle, px, tw, th); + r.x = 5; + r.y = 5; + r.width = tw; + r.height = th; + + MwLLDrawPixmap(handle, &r, p); + MwLLDestroyPixmap(p); + free(px); + } + update_buffer(&handle->wayland.backbuffer); } + handle->wayland.selected_cairo = handle->wayland.front_cairo; } static void MwLLEndDrawImpl(MwLL handle) { if(handle->wayland.configured) { update_buffer(&handle->wayland.framebuffer); if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { - update_buffer(&handle->wayland.backbuffer); } } } @@ -1835,8 +1948,8 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { cairo_paint(c); - cairo_set_source_surface(handle->wayland.front_cairo, cs, rect->x, rect->y); - cairo_paint(handle->wayland.front_cairo); + cairo_set_source_surface(handle->wayland.selected_cairo, cs, rect->x, rect->y); + cairo_paint(handle->wayland.selected_cairo); cairo_destroy(c); cairo_surface_destroy(cs); From dee940161e3c72fa2938e9e1182ed7ae5498266e Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Fri, 20 Mar 2026 19:33:12 -0700 Subject: [PATCH 223/836] clip: only apply extra clipping when haves decorations --- src/backend/wayland.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index d6eae3ccf..6f7a08ea7 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1472,16 +1472,22 @@ static void destroy_popup(MwLL r) { } static void clip(MwLL handle) { - MwLL topmost = handle->wayland.parent; - if(topmost && handle->wayland.type == MWLL_WAYLAND_SUBLEVEL) { + MwLL parent = handle->wayland.parent; + MwLL topmost = parent; + int left_offset = 0; + int top_offset = 0; + + if(parent && handle->wayland.type == MWLL_WAYLAND_SUBLEVEL) { cairo_reset_clip(handle->wayland.front_cairo); - cairo_rectangle(handle->wayland.front_cairo, 0, 0, (topmost->wayland.ww + handle->wayland.x) - (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT), (topmost->wayland.wh + handle->wayland.y) - (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM)); + cairo_rectangle(handle->wayland.front_cairo, 0, 0, (parent->wayland.ww + handle->wayland.x), (parent->wayland.wh + handle->wayland.y)); cairo_clip(handle->wayland.front_cairo); } if(topmost && handle->wayland.type == MWLL_WAYLAND_SUBLEVEL) { - while(topmost->wayland.parent) topmost = topmost->wayland.parent; cairo_reset_clip(handle->wayland.front_cairo); - cairo_rectangle(handle->wayland.front_cairo, 0, 0, (topmost->wayland.ww + handle->wayland.x) - (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT), (topmost->wayland.wh + handle->wayland.y) - (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM)); + while(topmost->wayland.parent) topmost = topmost->wayland.parent; + left_offset = topmost->wayland.has_decorations ? 0 : (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT); + top_offset = topmost->wayland.has_decorations ? 0 : (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM); + cairo_rectangle(handle->wayland.front_cairo, 0, 0, (topmost->wayland.ww + handle->wayland.x) - left_offset, (topmost->wayland.wh + handle->wayland.y) - top_offset); cairo_clip(handle->wayland.front_cairo); } } From 69076f28930a25c31a579034f3f364be0e444f0f Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Fri, 20 Mar 2026 19:42:30 -0700 Subject: [PATCH 224/836] fix menus on csd --- src/backend/wayland.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 6f7a08ea7..17872faaa 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1402,6 +1402,10 @@ static void setup_popup(MwLL r, int x, int y) { while(topmost_parent->wayland.type != MWLL_WAYLAND_TOPLEVEL) { topmost_parent = topmost_parent->wayland.parent; } + if(!topmost_parent->wayland.has_decorations) { + r->wayland.x += ceil((float)CSD_BORDER_FRAME_LEFT / 2.); + r->wayland.y += ceil((float)CSD_BORDER_FRAME_TOP / 2.); + } r->wayland.popup = malloc(sizeof(struct _MwLLWaylandPopup)); memset(r->wayland.popup, 0, sizeof(struct _MwLLWaylandPopup)); @@ -1425,9 +1429,7 @@ static void setup_popup(MwLL r, int x, int y) { xdg_positioner_set_size(r->wayland.popup->xdg_positioner, r->wayland.ww, r->wayland.wh); xdg_positioner_set_anchor_rect( r->wayland.popup->xdg_positioner, - x, y, r->wayland.ww, r->wayland.wh); - xdg_positioner_set_anchor(r->wayland.popup->xdg_positioner, XDG_POSITIONER_ANCHOR_TOP_LEFT); - xdg_positioner_set_gravity(r->wayland.popup->xdg_positioner, XDG_POSITIONER_ANCHOR_BOTTOM_RIGHT); + r->wayland.x, r->wayland.y, r->wayland.ww, r->wayland.wh); xdg_surface = topmost_parent->wayland.toplevel->xdg_surface; @@ -1759,6 +1761,8 @@ static void MwLLBeginDrawImpl(MwLL handle) { free(px); } update_buffer(&handle->wayland.backbuffer); + + wl_surface_commit(handle->wayland.backbuffer.surface); } handle->wayland.selected_cairo = handle->wayland.front_cairo; } @@ -1961,8 +1965,8 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { cairo_surface_destroy(cs); MwLLForceRender(handle); - // update_buffer(&handle->wayland.framebuffer); - // wl_surface_damage(handle->wayland.framebuffer.surface, 0, 0, handle->wayland.ww, handle->wayland.wh); + update_buffer(&handle->wayland.framebuffer); + wl_surface_damage(handle->wayland.framebuffer.surface, 0, 0, handle->wayland.ww, handle->wayland.wh); } static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { From 0527d376b7aa6fc344ecbcf9afa045bfaea3016f Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Fri, 20 Mar 2026 20:23:02 -0700 Subject: [PATCH 225/836] add function for forcing the client to be configured before doing any xdg stuff (in a way Both all compositors like) --- src/backend/wayland.c | 117 ++++++++++++++++++++++++------------------ 1 file changed, 66 insertions(+), 51 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 17872faaa..3a5c461af 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -890,6 +890,68 @@ static wayland_protocol_t* zxdg_decoration_manager_v1_setup(MwU32 name, struct _ static void zxdg_decoration_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { } +/* Standard Wayland event loop. */ +static int event_loop(MwLL handle) { + struct pollfd fd; + struct timespec timeout; + struct _MwLLWayland* wayland = &handle->wayland; + int res; + + timeout.tv_nsec = 1; + timeout.tv_sec = 0; + + if(wayland->display == NULL) { + return 0; + } + fd.fd = wl_display_get_fd(wayland->display); + fd.events = POLLIN; + + /* If an error other than EAGAIN happens, we have likely been disconnected from the Wayland session */ + while(wl_display_flush(wayland->display) == -1) { + if(errno != EAGAIN) { + return MwFALSE; + } + + while(poll(&fd, 1, -1) == -1) { + if(errno != EINTR && errno != EAGAIN) { + wl_display_cancel_read(wayland->display); + + MwLLDispatch(handle, close, NULL); + return 0; + } + } + } + + wl_display_prepare_read(handle->wayland.display); + /* Condition where no events are being sent. */ + if(!poll(&fd, 1, timeout.tv_nsec)) { + wl_display_cancel_read(wayland->display); + + wl_surface_commit(wayland->framebuffer.surface); + if(wayland->type == MWLL_WAYLAND_TOPLEVEL) + wl_surface_commit(wayland->backbuffer.surface); + return 0; + } + wl_display_read_events(wayland->display); + if(wl_display_dispatch_pending(wayland->display) < 0) { + wl_display_cancel_read(wayland->display); + } + return 1; +} + +/* make the fuck sure that we're configurd */ +static void hang_until_configured(MwLL handle) { + int i = 0; + while(!handle->wayland.configured) { + if(wl_display_roundtrip(handle->wayland.display) == -1) { + printf("roundtrip failed\n"); + raise(SIGTRAP); + return; + } + event_loop(handle); + } +} + /* `xdg_toplevel.configure` callback */ static void xdg_toplevel_configure(void* data, struct xdg_toplevel* xdg_toplevel, @@ -1033,7 +1095,8 @@ static void framebuffer_setup(struct _MwLLWayland* wayland) { wayland->front_cairo = cairo_create(wayland->front_cs); memset(wayland->framebuffer.buf, 0, wayland->framebuffer.buf_size); - if(wayland->configured) update_buffer(&wayland->framebuffer); + hang_until_configured((MwLL)wayland); + update_buffer(&wayland->framebuffer); }; static void framebuffer_destroy(struct _MwLLWayland* wayland) { buffer_destroy(&wayland->framebuffer); @@ -1051,7 +1114,8 @@ static void backbuffer_setup(struct _MwLLWayland* wayland) { wayland->back_cairo = cairo_create(wayland->back_cs); memset(wayland->backbuffer.buf, 0, wayland->backbuffer.buf_size); - if(wayland->configured) update_buffer(&wayland->backbuffer); + hang_until_configured((MwLL)wayland); + update_buffer(&wayland->backbuffer); }; static void backbuffer_destroy(struct _MwLLWayland* wayland) { buffer_destroy(&wayland->backbuffer); @@ -1110,55 +1174,6 @@ static void xdg_toplevel_icon_manager_v1_interface_destroy(struct _MwLLWayland* free(data->listener); } -/* Standard Wayland event loop. */ -static int event_loop(MwLL handle) { - struct pollfd fd; - struct timespec timeout; - struct _MwLLWayland* wayland = &handle->wayland; - int res; - - timeout.tv_nsec = 1; - timeout.tv_sec = 0; - - if(wayland->display == NULL) { - return 0; - } - fd.fd = wl_display_get_fd(wayland->display); - fd.events = POLLIN; - - /* If an error other than EAGAIN happens, we have likely been disconnected from the Wayland session */ - while(wl_display_flush(wayland->display) == -1) { - if(errno != EAGAIN) { - return MwFALSE; - } - - while(poll(&fd, 1, -1) == -1) { - if(errno != EINTR && errno != EAGAIN) { - wl_display_cancel_read(wayland->display); - - MwLLDispatch(handle, close, NULL); - return 0; - } - } - } - - wl_display_prepare_read(handle->wayland.display); - /* Condition where no events are being sent. */ - if(!poll(&fd, 1, timeout.tv_nsec)) { - wl_display_cancel_read(wayland->display); - - wl_surface_commit(wayland->framebuffer.surface); - if(wayland->type == MWLL_WAYLAND_TOPLEVEL) - wl_surface_commit(wayland->backbuffer.surface); - return 0; - } - wl_display_read_events(wayland->display); - if(wl_display_dispatch_pending(wayland->display) < 0) { - wl_display_cancel_read(wayland->display); - } - return 1; -} - /* Function for setting up the callbacks/structs that will be registered upon the relevant interfaces being found. */ static void setup_callbacks(struct _MwLLWayland* wayland) { /* Convience macro for adding the interface functions to the setup map */ From 2499f82933e35e8fddc521a6c55a7d6a43518595 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 22 Mar 2026 16:12:54 -0700 Subject: [PATCH 226/836] wayland: fix double free in wp_viewporter_interface_destroy --- src/backend/wayland.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 3a5c461af..06fdbb01c 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -864,7 +864,7 @@ static wayland_protocol_t* wp_viewporter_setup(MwU32 name, struct _MwLLWayland* } static void wp_viewporter_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - free(data->listener); + // free(data->listener); } /* the two decoration manager constructs */ From 09441380b5e07d2a990040c3dfd8c3ec435e3b23 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 22 Mar 2026 16:15:50 -0700 Subject: [PATCH 227/836] wayland: fallback if selected_cairo is null --- include/Mw/LowLevel/Wayland.h | 1 + src/backend/wayland.c | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 053d0ff91..9659ac565 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -235,6 +235,7 @@ struct _MwLLWayland { cairo_surface_t* back_cs; cairo_t* front_cairo; cairo_t* back_cairo; + /* The cairo to actually use for draw operations. Typically is front_cairo, but MwLLBeginDraw can change this to the back_cairo so it can be used to draw window decorations. */ cairo_t* selected_cairo; }; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 06fdbb01c..668892217 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1960,6 +1960,7 @@ static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { cairo_t* c; cairo_surface_t* cs; + cairo_t * selected_cairo = handle->wayland.selected_cairo ? handle->wayland.selected_cairo : handle->wayland.front_cairo; cs = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, rect->width, rect->height); c = cairo_create(cs); @@ -1973,8 +1974,8 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { cairo_paint(c); - cairo_set_source_surface(handle->wayland.selected_cairo, cs, rect->x, rect->y); - cairo_paint(handle->wayland.selected_cairo); + cairo_set_source_surface(selected_cairo, cs, rect->x, rect->y); + cairo_paint(selected_cairo); cairo_destroy(c); cairo_surface_destroy(cs); From c3d25e6b7d96c9b477aa1d248e3e0d721d63e8ca Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 22 Mar 2026 16:32:36 -0700 Subject: [PATCH 228/836] wayland: don't do draw dispatch on forceRender anymore, merely update the buffer --- src/backend/wayland.c | 29 ++++++++++++++++++----------- src/widget/opengl.c | 7 ++++--- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 668892217..0a21590d5 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1861,31 +1861,37 @@ static int MwLLPendingImpl(MwLL handle) { fd.fd = wl_display_get_fd(handle->wayland.display); fd.events = POLLOUT; - wl_display_prepare_read(handle->wayland.display); + if(!handle->wayland.always_render) wl_display_prepare_read(handle->wayland.display); if(!poll(&fd, 1, timeout.tv_nsec)) { wl_display_cancel_read(handle->wayland.display); } else { - wl_display_read_events(handle->wayland.display); + if(!handle->wayland.always_render) wl_display_read_events(handle->wayland.display); if((pending = wl_display_dispatch_pending(handle->wayland.display)) < 0) { wl_display_cancel_read(handle->wayland.display); } } + + if(handle->wayland.always_render) { + // handle->wayland.did_event_loop_early = MwTRUE; + // event_loop(handle); + return pending; + } + wl_surface_commit(handle->wayland.framebuffer.surface); if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { wl_surface_commit(handle->wayland.backbuffer.surface); } - if(handle->wayland.always_render) { + if(handle->wayland.events_pending) { + handle->wayland.did_event_loop_early = MwTRUE; event_loop(handle); - return 0; - } else if(handle->wayland.force_render) { - MwLLDispatch(handle, draw, NULL); return 1; } - if(handle->wayland.events_pending || handle->wayland.force_render) { - handle->wayland.did_event_loop_early = MwTRUE; - return event_loop(handle); - } + + // if(handle->wayland.force_render) { + + // return 1; + // } return pending; } @@ -1902,6 +1908,7 @@ static void MwLLNextEventImpl(MwLL handle) { handle->wayland.events_pending = 0; } if(handle->wayland.force_render) { + // MwLLDispatch(handle, draw, NULL); if(handle->wayland.configured) update_buffer(&handle->wayland.framebuffer); handle->wayland.force_render = 0; } @@ -1960,7 +1967,7 @@ static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { cairo_t* c; cairo_surface_t* cs; - cairo_t * selected_cairo = handle->wayland.selected_cairo ? handle->wayland.selected_cairo : handle->wayland.front_cairo; + cairo_t* selected_cairo = handle->wayland.selected_cairo ? handle->wayland.selected_cairo : handle->wayland.front_cairo; cs = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, rect->width, rect->height); c = cairo_create(cs); diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 779b17afa..6d67344ce 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -165,9 +165,10 @@ static int create(MwWidget handle) { 1, EGL_NONE}; EGLDisplay display; - waylandopengl_t* o = r = malloc(sizeof(*o)); - MwLL topmost_parent = handle->lowlevel->wayland.parent; - topmost_parent->wayland.always_render = MwTRUE; + waylandopengl_t* o = r = malloc(sizeof(*o)); + MwLL topmost_parent = handle->lowlevel->wayland.parent; + handle->lowlevel->wayland.always_render = MwTRUE; + topmost_parent->wayland.always_render = MwTRUE; while(topmost_parent->wayland.parent != NULL) { topmost_parent = topmost_parent->wayland.parent; From 9d65e9c6bf37a21c625a95a43410c030af4fc855 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Mon, 23 Mar 2026 12:05:32 -0700 Subject: [PATCH 229/836] Wayland improvements --- examples/basic/clipboard.c | 1 + examples/vkdemos/vulkan.c | 9 ++- include/Mw/LowLevel/Wayland.h | 7 +- src/backend/wayland.c | 143 ++++++++++++++++++---------------- src/widget/combobox.c | 2 +- src/widget/vulkan.c | 2 +- 6 files changed, 89 insertions(+), 75 deletions(-) diff --git a/examples/basic/clipboard.c b/examples/basic/clipboard.c index 384cbc6fe..57d579256 100644 --- a/examples/basic/clipboard.c +++ b/examples/basic/clipboard.c @@ -29,6 +29,7 @@ void clipboard(MwWidget handle, void* user_data, void* call_data) { (void)handle; (void)user_data; + printf("got: %s\n", clipboard); if(clipboard != NULL) { MwVaApply(text, MwNtext, clipboard, NULL); MwForceRender(text); diff --git a/examples/vkdemos/vulkan.c b/examples/vkdemos/vulkan.c index 0e1842d04..29547ce5e 100644 --- a/examples/vkdemos/vulkan.c +++ b/examples/vkdemos/vulkan.c @@ -27,6 +27,8 @@ MwWidget window, vulkan; int ow = 300; int oh = 250; +double timer = 0; + PFN_vkGetInstanceProcAddr _vkGetInstanceProcAddr; VkInstance instance; VkDevice device; @@ -75,9 +77,10 @@ void tick(MwWidget handle, void* user_data, void* call_data) { VkSubmitInfo submitInfo = {}; VkPresentInfoKHR presentInfo = {}; - VkClearValue clearColor = {{{0.0f, 0.0f, 0.0f, 1.0f}}}; + VkClearValue clearColor = {{{sin(timer) / 10., cos(timer) / 10., atan(timer) / 10., 1.0f}}}; uint32_t vertexCount = 3; uint32_t instanceCount = 1; + timer += (float)(rand() % 1000) / 1000.; VkPipelineStageFlags waitStages[] = {VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT}; @@ -289,8 +292,8 @@ void vulkan_setup(MwWidget handle) { swapchainCreateInfo.imageExtent = (VkExtent2D){.width = ow, .height = oh}, swapchainCreateInfo.imageArrayLayers = 1, swapchainCreateInfo.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | - VK_IMAGE_USAGE_TRANSFER_DST_BIT | - VK_IMAGE_USAGE_SAMPLED_BIT; + VK_IMAGE_USAGE_TRANSFER_DST_BIT | + VK_IMAGE_USAGE_SAMPLED_BIT; // th is how we specify no transformation. swapchainCreateInfo.preTransform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; swapchainCreateInfo.compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR; diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 9659ac565..00556dada 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -141,6 +141,9 @@ struct _MwLLWayland { enum _MwLLWaylandType type; enum _MwLLWaylandType type_to_be; + MwBool detatching; + MwPoint detach_point; + /* Map of Wayland interfaces to their relevant setup functions. */ struct { const char* key; @@ -227,8 +230,6 @@ struct _MwLLWayland { MwBool moving; - MwLL currentlyHeldWidget; - struct wl_surface* curSurface; cairo_surface_t* front_cs; @@ -236,7 +237,7 @@ struct _MwLLWayland { cairo_t* front_cairo; cairo_t* back_cairo; /* The cairo to actually use for draw operations. Typically is front_cairo, but MwLLBeginDraw can change this to the back_cairo so it can be used to draw window decorations. */ - cairo_t* selected_cairo; + cairo_t* selected_cairo; }; struct _MwLLWaylandColor { diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 0a21590d5..2e32ceda6 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -228,8 +228,12 @@ static void wl_clipboard_read(wl_clipboard_device_context_t* ctx) { arrpush(buf, 0); close(fds[0]); + printf("sending: %s\n", buf); + MwLLDispatch(ctx->ll, clipboard, buf); arrfree(buf); + + ctx->ll->wayland.events_pending = 1; } static void wl_data_source_listener_target(void* data, @@ -415,6 +419,8 @@ static void xdg_borderless_step(MwLL self, MwLLMouse p, MwU32 serial) { }; } +static MwLL currentlyHeldWidget = NULL; + /* `wl_pointer.motion` callback */ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time, wl_fixed_t surface_x, wl_fixed_t surface_y) { @@ -428,15 +434,25 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time p.point = self->wayland.cur_mouse_pos; MwLLDispatch(self, move, &p); - if(self->wayland.parent != NULL) { - if(!self->wayland.parent->wayland.currentlyHeldWidget) { - MwLLDispatch(self, down, &p); - } + if(currentlyHeldWidget) { + MwLLDispatch(currentlyHeldWidget, down, &p); } - /* Only draw once every 50 milliseconds */ - if((self->wayland.last_time + 50) <= time) { - MwLLDispatch(self, draw, NULL); - self->wayland.last_time = time; + + /* We want to send a draw call whenever we move the cursor, BUT only if the topmost parent doesn't already have events pedngin. */ + if(self->wayland.parent) { + MwLL topmost = self->wayland.parent; + while(topmost->wayland.parent) topmost = topmost->wayland.parent; + /* also we only wanna do it every 50ms */ + if((self->wayland.last_time + 50) <= time && !topmost->wayland.events_pending) { + MwLLDispatch(self, draw, NULL); + self->wayland.last_time = time; + } + } else { + /* if there's no parent just impose the requirement on the widget itself */ + if((self->wayland.last_time + 50) <= time && !self->wayland.events_pending) { + MwLLDispatch(self, draw, NULL); + self->wayland.last_time = time; + } } WAYLAND_EVENT_OP_END(self); @@ -477,17 +493,13 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri switch(state) { case WL_POINTER_BUTTON_STATE_PRESSED: MwLLDispatch(self, down, &p); - if(self->wayland.parent != NULL) { - self->wayland.parent->wayland.currentlyHeldWidget = self; - } + currentlyHeldWidget = self; break; case WL_POINTER_BUTTON_STATE_RELEASED: - if(self->wayland.parent != NULL) { - if(self->wayland.parent->wayland.currentlyHeldWidget != NULL) { - MwLLDispatch(self->wayland.parent->wayland.currentlyHeldWidget, up, &p); - self->wayland.parent->wayland.currentlyHeldWidget = NULL; - } + if(currentlyHeldWidget != NULL) { + MwLLDispatch(currentlyHeldWidget, up, &p); + currentlyHeldWidget = NULL; } else { MwLLDispatch(self, up, &p); } @@ -993,8 +1005,6 @@ static void xdg_toplevel_configure(void* data, MwLLDispatch(self, resize, NULL); MwLLDispatch(self, draw, NULL); - - MwLLForceRender(self); }; /* Empty function for satisfying zxdg_toplevel's requirements */ @@ -1851,15 +1861,15 @@ static void MwLLFreeColorImpl(MwLLColor color) { } static int MwLLPendingImpl(MwLL handle) { - struct timespec timeout; - struct pollfd fd; - int pending = 0; - - timeout.tv_nsec = 100; - timeout.tv_sec = 0; - - fd.fd = wl_display_get_fd(handle->wayland.display); - fd.events = POLLOUT; + struct timespec timeout = { + .tv_nsec = 100, + .tv_sec = 0, + }; + struct pollfd fd = { + .fd = wl_display_get_fd(handle->wayland.display), + .events = POLLOUT, + }; + int pending = 0; if(!handle->wayland.always_render) wl_display_prepare_read(handle->wayland.display); if(!poll(&fd, 1, timeout.tv_nsec)) { @@ -1872,8 +1882,8 @@ static int MwLLPendingImpl(MwLL handle) { } if(handle->wayland.always_render) { - // handle->wayland.did_event_loop_early = MwTRUE; - // event_loop(handle); + handle->wayland.did_event_loop_early = MwTRUE; + event_loop(handle); return pending; } @@ -1882,18 +1892,7 @@ static int MwLLPendingImpl(MwLL handle) { wl_surface_commit(handle->wayland.backbuffer.surface); } - if(handle->wayland.events_pending) { - handle->wayland.did_event_loop_early = MwTRUE; - event_loop(handle); - return 1; - } - - // if(handle->wayland.force_render) { - - // return 1; - // } - - return pending; + return handle->wayland.force_render || handle->wayland.events_pending || pending; } static void MwLLNextEventImpl(MwLL handle) { @@ -1904,14 +1903,15 @@ static void MwLLNextEventImpl(MwLL handle) { event_loop(handle); } } - if(handle->wayland.events_pending) { - handle->wayland.events_pending = 0; - } + if(handle->wayland.force_render) { - // MwLLDispatch(handle, draw, NULL); + if(!handle->wayland.events_pending) MwLLDispatch(handle, draw, NULL); if(handle->wayland.configured) update_buffer(&handle->wayland.framebuffer); handle->wayland.force_render = 0; } + if(handle->wayland.events_pending) { + handle->wayland.events_pending = 0; + } } static void MwLLSetTitleImpl(MwLL handle, const char* title) { @@ -2034,6 +2034,9 @@ static void MwLLForceRenderImpl(MwLL handle) { wl_surface_damage(handle->wayland.framebuffer.surface, 0, 0, handle->wayland.ww, handle->wayland.wh); handle->wayland.force_render = MwTRUE; + if(handle->wayland.parent) { + handle->wayland.parent->wayland.force_render = MwTRUE; + } } static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { @@ -2087,28 +2090,8 @@ static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { } static void MwLLDetachImpl(MwLL handle, MwPoint* point) { - switch(handle->wayland.type) { - case MWLL_WAYLAND_UNKNOWN: - case MWLL_WAYLAND_TOPLEVEL: - destroy_toplevel(handle); - break; - case MWLL_WAYLAND_SUBLEVEL: - destroy_sublevel(handle); - break; - case MWLL_WAYLAND_POPUP: - return; - } - - wl_flush(handle); - - switch(handle->wayland.type_to_be) { - case MWLL_WAYLAND_POPUP: - setup_popup(handle, point->x, point->y); - break; - default: - setup_toplevel(handle, point->x, point->y); - break; - } + handle->wayland.detatching = MwTRUE; + handle->wayland.detach_point = *point; } static void MwLLShowImpl(MwLL handle, int show) { @@ -2201,6 +2184,32 @@ static void MwLLBeginStateChangeImpl(MwLL handle) { } static void MwLLEndStateChangeImpl(MwLL handle) { + if(handle->wayland.detatching) { + switch(handle->wayland.type) { + case MWLL_WAYLAND_UNKNOWN: + case MWLL_WAYLAND_TOPLEVEL: + destroy_toplevel(handle); + break; + case MWLL_WAYLAND_SUBLEVEL: + destroy_sublevel(handle); + break; + case MWLL_WAYLAND_POPUP: + return; + } + + wl_flush(handle); + + switch(handle->wayland.type_to_be) { + case MWLL_WAYLAND_POPUP: + setup_popup(handle, handle->wayland.detach_point.x, handle->wayland.detach_point.y); + break; + default: + setup_toplevel(handle, handle->wayland.detach_point.x, handle->wayland.detach_point.y); + break; + } + handle->wayland.detatching = MwFALSE; + } + MwLLShow(handle, 1); } diff --git a/src/widget/combobox.c b/src/widget/combobox.c index 591258f96..6b5437335 100644 --- a/src/widget/combobox.c +++ b/src/widget/combobox.c @@ -138,8 +138,8 @@ static void click(MwWidget handle) { p.x = 0; p.y = MwGetInteger(handle, MwNheight); MwLLBeginStateChange(cb->listbox->lowlevel); - MwLLMakeToolWindow(cb->listbox->lowlevel); MwLLDetach(cb->listbox->lowlevel, &p); + MwLLMakeToolWindow(cb->listbox->lowlevel); MwLLEndStateChange(cb->listbox->lowlevel); } else { MwLLSetCursor(handle->lowlevel, &MwCursorDefault, &MwCursorDefaultMask); diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index b78e7429b..e2dfa4c8b 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -231,7 +231,7 @@ static MwErrorEnum vulkan_instance_setup(MwWidget handle, vulkan_t* o) { arrput(enabledExtensions, VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME); /* take this opprutunity to set the widget to always render */ - topmost_parent->wayland.always_render = MwTRUE; + handle->lowlevel->wayland.always_render = MwTRUE; while(topmost_parent->wayland.parent != NULL) { topmost_parent = topmost_parent->wayland.parent; From 6d7fe3271f0d12711639876ab049cd574cf2aeae Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 24 Mar 2026 04:26:26 +0900 Subject: [PATCH 230/836] fix cursor thing for x11/gdi, also format --- examples/gldemos/cube.c | 116 ++++++++++++++------------- include/Mw/LowLevel/Cocoa.h | 151 +++++++++++++++++------------------ include/Mw/Widget/OpenGL.h | 12 +-- pl/rules.pl | 4 +- src/backend/gdi.c | 2 +- src/backend/x11.c | 2 +- src/widget/opengl_cocoa.m | 155 ++++++++++++++++++------------------ tools/readme.pl | 3 +- 8 files changed, 224 insertions(+), 221 deletions(-) diff --git a/examples/gldemos/cube.c b/examples/gldemos/cube.c index 2d1954c5a..de0b84078 100644 --- a/examples/gldemos/cube.c +++ b/examples/gldemos/cube.c @@ -12,78 +12,82 @@ static double deg = 0; static void draw(void) { - int i; - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + int i; + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - glPushMatrix(); - glRotatef(deg, 1, 0, 0); - glRotatef(deg, 0, 1, 0); - glRotatef(deg, 0, 0, 1); + glPushMatrix(); + glRotatef(deg, 1, 0, 0); + glRotatef(deg, 0, 1, 0); + glRotatef(deg, 0, 0, 1); - for (i = 0; i < 6; i++) { - if (i == 0) - glColor3f(1, 0, 0); - if (i == 1) - glColor3f(0, 1, 0); - if (i == 2) - glColor3f(1, 1, 0); - if (i == 3) - glColor3f(0, 0, 1); - if (i == 4) - glColor3f(1, 0, 1); - if (i == 5) - glColor3f(0, 1, 1); + for(i = 0; i < 6; i++) { + if(i == 0) + glColor3f(1, 0, 0); + if(i == 1) + glColor3f(0, 1, 0); + if(i == 2) + glColor3f(1, 1, 0); + if(i == 3) + glColor3f(0, 0, 1); + if(i == 4) + glColor3f(1, 0, 1); + if(i == 5) + glColor3f(0, 1, 1); - glBegin(GL_QUADS); - glNormal3f(0, 1, 0); - glVertex3f(-1, 1, -1); - glVertex3f(-1, 1, 1); - glVertex3f(1, 1, 1); - glVertex3f(1, 1, -1); - glEnd(); + glBegin(GL_QUADS); + glNormal3f(0, 1, 0); + glVertex3f(-1, 1, -1); + glVertex3f(-1, 1, 1); + glVertex3f(1, 1, 1); + glVertex3f(1, 1, -1); + glEnd(); - if (i < 3) - glRotatef(90, 0, 0, 1); - if (i == 3) - glRotatef(90, 1, 0, 0); - if (i == 4) - glRotatef(180, 0, 0, 1); - } - glPopMatrix(); + if(i < 3) + glRotatef(90, 0, 0, 1); + if(i == 3) + glRotatef(90, 1, 0, 0); + if(i == 4) + glRotatef(180, 0, 0, 1); + } + glPopMatrix(); } -static void idle(void) { deg += 1.0; } +static void idle(void) { + deg += 1.0; +} static void reshape(int width, int height) { - GLfloat lpos[4]; + GLfloat lpos[4]; - lpos[0] = 1; - lpos[1] = 1; - lpos[2] = 1; - lpos[3] = 0; + lpos[0] = 1; + lpos[1] = 1; + lpos[2] = 1; + lpos[3] = 0; - glViewport(0, 0, width, height); + glViewport(0, 0, width, height); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluPerspective(60, (double)width / height, 1, 100); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + gluPerspective(60, (double)width / height, 1, 100); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - gluLookAt(2, 2, 2, 0, 0, 0, 0, 1, 0); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + gluLookAt(2, 2, 2, 0, 0, 0, 0, 1, 0); - glLightfv(GL_LIGHT0, GL_POSITION, lpos); + glLightfv(GL_LIGHT0, GL_POSITION, lpos); } static void init(void) { - glEnable(GL_DEPTH_TEST); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glEnable(GL_COLOR_MATERIAL); - glEnable(GL_CULL_FACE); - glEnable(GL_NORMALIZE); + glEnable(GL_DEPTH_TEST); + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glEnable(GL_COLOR_MATERIAL); + glEnable(GL_CULL_FACE); + glEnable(GL_NORMALIZE); - glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE); + glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE); } -static void key(int k) { (void)k; } +static void key(int k) { + (void)k; +} diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 19e0bc3c1..7d1b217fe 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -23,9 +23,9 @@ // Note: implements NSApplicationDelegate @interface MilskoCocoaApplicationDelegate : NSObject { - NSApplication *appl; + NSApplication* appl; } -- (MilskoCocoaApplicationDelegate *)initWithAppl:(NSApplication *)appl; +- (MilskoCocoaApplicationDelegate*)initWithAppl:(NSApplication*)appl; @end @interface MilskoCocoaWindow : NSWindow { @@ -34,9 +34,9 @@ // Note: implements NSWindowDelegate @interface MilskoCocoaWindowDelegate : NSObject { - MilskoCocoaWindow *w; + MilskoCocoaWindow* w; } -- (MilskoCocoaWindowDelegate *)initWithWin:(MilskoCocoaWindow *)win; +- (MilskoCocoaWindowDelegate*)initWithWin:(MilskoCocoaWindow*)win; @end /* @@ -52,139 +52,138 @@ retrieved appropriately. */ @interface MilskoFakePointer : NSView { - void *ptr; + void* ptr; } -- (void)setPointer:(void *)ptr; -- (void *)pointer; +- (void)setPointer:(void*)ptr; +- (void*)pointer; @end @interface MilskoCocoaPixmap : NSObject { - MwBool valid; - int width; - int height; - unsigned char *buf; - NSImage *image; - NSBitmapImageRep *rep; + MwBool valid; + int width; + int height; + unsigned char* buf; + NSImage* image; + NSBitmapImageRep* rep; } -+ (MilskoCocoaPixmap *)newWithWidth:(int)width height:(int)height; -- (void)updateWithData:(unsigned char *)data; ++ (MilskoCocoaPixmap*)newWithWidth:(int)width height:(int)height; +- (void)updateWithData:(unsigned char*)data; - (void)destroy; /* using @property to create instance variables fucks up 10.4 gcc for some * reason? */ -- (NSImage *)image; +- (NSImage*)image; @end @interface MilskoCocoaView : NSView { - NSBitmapImageRep *rep; - NSGraphicsContext *context; - MwBool valid; - CGColorSpaceRef space; - CGDataProviderRef provider; - float width; - float height; + NSBitmapImageRep* rep; + NSGraphicsContext* context; + MwBool valid; + CGColorSpaceRef space; + CGDataProviderRef provider; + float width; + float height; } - (void)initRepAndContextWithWidth:(float)w Height:(float)h; -- (NSGraphicsContext *)context; +- (NSGraphicsContext*)context; - (void)destroy; -- (NSBitmapImageRep *)getRep; +- (NSBitmapImageRep*)getRep; @end @interface MilskoCocoa : NSObject { - NSApplication *application; - MwBool _forceRender; - MilskoCocoaWindow *window; - NSRect rect; - MilskoCocoaView *view; - MwLL parent; - MilskoFakePointer *handle; - unsigned int strHash; - NSEvent *lastEvent; + NSApplication* application; + MwBool _forceRender; + MilskoCocoaWindow* window; + NSRect rect; + MilskoCocoaView* view; + MwLL parent; + MilskoFakePointer* handle; + unsigned int strHash; + NSEvent* lastEvent; - MilskoCocoaPixmap *cursorPixmap; - NSCursor *cursor; - NSModalSession modalSession; - - MwBool pointerLocked; - MwBool mouseMoved; + MilskoCocoaPixmap* cursorPixmap; + NSCursor* cursor; + NSModalSession modalSession; + MwBool pointerLocked; + MwBool mouseMoved; } -+ (MilskoCocoa *)newWithParent:(MwLL)parent - x:(int)x - y:(int)y - width:(int)width - height:(int)height - handle:(MwLL)handle; -- (void)polygonWithPoints:(MwPoint *)points - points_count:(int)points_count - color:(MwLLColor)color; -- (void)lineWithPoints:(MwPoint *)points color:(MwLLColor)color; -- (void)getX:(int *)x Y:(int *)y W:(unsigned int *)w H:(unsigned int *)h; ++ (MilskoCocoa*)newWithParent:(MwLL)parent + x:(int)x + y:(int)y + width:(int)width + height:(int)height + handle:(MwLL)handle; +- (void)polygonWithPoints:(MwPoint*)points + points_count:(int)points_count + color:(MwLLColor)color; +- (void)lineWithPoints:(MwPoint*)points color:(MwLLColor)color; +- (void)getX:(int*)x Y:(int*)y W:(unsigned int*)w H:(unsigned int*)h; - (void)setX:(int)x Y:(int)y; - (void)setW:(int)w H:(int)h; - (int)pending; -- (void)eventProcess:(NSEvent *)ev; -- (void)handleKeyEvent:(NSEvent *)ev ll:(MwLL)ll; -- (void)handleMouseEvent:(NSEvent *)ev ll:(MwLL)ll; +- (void)eventProcess:(NSEvent*)ev; +- (void)handleKeyEvent:(NSEvent*)ev ll:(MwLL)ll; +- (void)handleMouseEvent:(NSEvent*)ev ll:(MwLL)ll; - (void)getNextEvent; -- (void)setTitle:(const char *)title; -- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect *)rect; +- (void)setTitle:(const char*)title; +- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect*)rect; - (void)setIcon:(MwLLPixmap)pixmap; - (void)forceRender; -- (void)setCursor:(MwCursor *)image mask:(MwCursor *)mask; -- (void)detachWithPoint:(MwPoint *)point; +- (void)setCursor:(MwCursor*)image mask:(MwCursor*)mask; +- (void)detachWithPoint:(MwPoint*)point; - (void)show:(int)show; - (void)makePopupWithParent:(MwLL)parent; - (void)setSizeHintsWithMinX:(int)minx - MinY:(int)miny - MaxX:(int)maxx - MaxY:(int)maxy; + MinY:(int)miny + MaxX:(int)maxx + MaxY:(int)maxy; - (void)makeBorderless:(int)toggle; - (void)focus; - (void)grabPointer:(int)toggle; -- (void)setClipboard:(const char *)text; +- (void)setClipboard:(const char*)text; - (void)makeToolWindow; -- (void)getCursorCoord:(MwPoint *)point; -- (void)getScreenSize:(MwRect *)rect; +- (void)getCursorCoord:(MwPoint*)point; +- (void)getScreenSize:(MwRect*)rect; - (void)destroy; - (void)sendClipboardEvent; - (MwLL)getParent; -- (NSView *)getView; -- (MilskoCocoaWindow *)getWindow; +- (NSView*)getView; +- (MilskoCocoaWindow*)getWindow; -- (MilskoFakePointer *)getHandle; -+ (void)eventCanceller:(MilskoCocoa *)this; +- (MilskoFakePointer*)getHandle; ++ (void)eventCanceller:(MilskoCocoa*)this; @end #define OBJC(x) x #else -#define OBJC(x) void * +#define OBJC(x) void* #endif MWDECL int MwLLCocoaCallInit(void); struct _MwLLCocoa { - struct _MwLLCommon common; - OBJC(MilskoCocoa *) - real; + struct _MwLLCommon common; + OBJC(MilskoCocoa*) + real; }; struct _MwLLCocoaColor { - struct _MwLLCommonColor common; + struct _MwLLCommonColor common; }; struct _MwLLCocoaPixmap { - struct _MwLLCommonPixmap common; - OBJC(MilskoCocoaPixmap *) - real; + struct _MwLLCommonPixmap common; + OBJC(MilskoCocoaPixmap*) + real; }; #endif diff --git a/include/Mw/Widget/OpenGL.h b/include/Mw/Widget/OpenGL.h index c3fab76ed..3f7a0c451 100644 --- a/include/Mw/Widget/OpenGL.h +++ b/include/Mw/Widget/OpenGL.h @@ -43,7 +43,7 @@ MWDECL MwClass MwOpenGLClass; * @param handle Widget */ MwInline void MwOpenGLMakeCurrent(MwWidget handle) { - MwVaWidgetExecute(handle, "mwOpenGLMakeCurrent", NULL); + MwVaWidgetExecute(handle, "mwOpenGLMakeCurrent", NULL); } /*! @@ -52,10 +52,10 @@ MwInline void MwOpenGLMakeCurrent(MwWidget handle) { * @param name Name * @return Procedure */ -MwInline void *MwOpenGLGetProcAddress(MwWidget handle, const char *name) { - void *out; - MwVaWidgetExecute(handle, "mwOpenGLGetProcAddress", &out, name); - return out; +MwInline void* MwOpenGLGetProcAddress(MwWidget handle, const char* name) { + void* out; + MwVaWidgetExecute(handle, "mwOpenGLGetProcAddress", &out, name); + return out; } /*! @@ -63,7 +63,7 @@ MwInline void *MwOpenGLGetProcAddress(MwWidget handle, const char *name) { * @param handle Widget */ MwInline void MwOpenGLSwapBuffer(MwWidget handle) { - MwVaWidgetExecute(handle, "mwOpenGLSwapBuffer", NULL); + MwVaWidgetExecute(handle, "mwOpenGLSwapBuffer", NULL); } #ifdef __cplusplus diff --git a/pl/rules.pl b/pl/rules.pl index a35a6c3e6..a4ba7bfc8 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -37,7 +37,7 @@ if (grep(/^wayland$/, @backends)) { } scan_wayland_protocol("stable", "xdg-shell", ""); - scan_wayland_protocol("stable", "viewporter", ""); + scan_wayland_protocol("stable", "viewporter", ""); scan_wayland_protocol("stable", "tablet", "-v2"); scan_wayland_protocol("staging", "xdg-toplevel-icon", "-v1"); scan_wayland_protocol("staging", "cursor-shape", "-v1"); @@ -55,7 +55,7 @@ if (grep(/^cocoa$/, @backends)) { new_object("src/widget/opengl_cocoa.m"); } - # tim cook my man literally everybody and their mother who knows what opengl is knows its deprecated on macos and i'm not having you spam the console with this +# tim cook my man literally everybody and their mother who knows what opengl is knows its deprecated on macos and i'm not having you spam the console with this add_cflags("-DGL_SILENCE_DEPRECATION"); $gl_libs = "-framework OpenGL"; diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 4601b79da..d6ad07a53 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -621,7 +621,7 @@ HCURSOR MwLLGDICreateCursor(MwCursor* image, MwCursor* mask) { } } - cursor = CreateCursor(GetModuleHandle(NULL), xs, ys, MwCursorDataHeight, MwCursorDataHeight, dmask, dimage); + cursor = CreateCursor(GetModuleHandle(NULL), xs - image->x, ys + (MwCursorDataHeight + image->y), MwCursorDataHeight, MwCursorDataHeight, dmask, dimage); free(dimage); free(dmask); diff --git a/src/backend/x11.c b/src/backend/x11.c index f7c6fe4bd..cd9e8825f 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -849,7 +849,7 @@ Cursor MwLLX11CreateCursor(Display* display, MwCursor* image, MwCursor* mask) { XPutImage(display, pimage, imagegc, cimage, 0, 0, 0, 0, MwCursorDataHeight, MwCursorDataHeight); XPutImage(display, pmask, maskgc, cmask, 0, 0, 0, 0, MwCursorDataHeight, MwCursorDataHeight); - cur = XCreatePixmapCursor(display, pimage, pmask, &cfg, &cbg, xs, ys); + cur = XCreatePixmapCursor(display, pimage, pmask, &cfg, &cbg, xs - image->x, ys + (MwCursorDataHeight + image->y)); XFreePixmap(display, pimage); XFreePixmap(display, pmask); diff --git a/src/widget/opengl_cocoa.m b/src/widget/opengl_cocoa.m index 503fe5e7b..2397a8473 100644 --- a/src/widget/opengl_cocoa.m +++ b/src/widget/opengl_cocoa.m @@ -7,124 +7,125 @@ #import @interface MacOpenGLWidget : NSObject { - NSOpenGLPixelFormat *pixelFormat; - NSOpenGLContext *glc; - MilskoCocoa *_win; + NSOpenGLPixelFormat* pixelFormat; + NSOpenGLContext* glc; + MilskoCocoa* _win; } -- (MacOpenGLWidget *)initWithWindow:(MilskoCocoa *)w; +- (MacOpenGLWidget*)initWithWindow:(MilskoCocoa*)w; - (void)destroy; - (void)makeCurrent; - (void)swapBuffer; -- (void *)getProcAddressWithName:(const char *)name; +- (void*)getProcAddressWithName:(const char*)name; @end static int create(MwWidget handle) { - void *r = NULL; - MwWidget w = handle; + void* r = NULL; + MwWidget w = handle; - int x = MwGetInteger(w, MwNx); - int y = MwGetInteger(w, MwNy); - int width = MwGetInteger(w, MwNwidth); - int height = MwGetInteger(w, MwNheight); + int x = MwGetInteger(w, MwNx); + int y = MwGetInteger(w, MwNy); + int width = MwGetInteger(w, MwNwidth); + int height = MwGetInteger(w, MwNheight); - printf("%d %d\n", width, height); + printf("%d %d\n", width, height); - handle->internal = - [[MacOpenGLWidget alloc] initWithWindow:handle->lowlevel->cocoa.real]; - handle->lowlevel->common.copy_buffer = 0; + handle->internal = + [[MacOpenGLWidget alloc] initWithWindow:handle->lowlevel->cocoa.real]; + handle->lowlevel->common.copy_buffer = 0; - MwSetDefault(handle); + MwSetDefault(handle); - while (w->parent != NULL) - w = w->parent; + while(w->parent != NULL) + w = w->parent; - w->berserk++; + w->berserk++; - return 0; + return 0; } static void destroy(MwWidget handle) { - [(MacOpenGLWidget *)handle->internal destroy]; + [(MacOpenGLWidget*)handle->internal destroy]; } static void mwOpenGLMakeCurrentImpl(MwWidget handle) { - [(MacOpenGLWidget *)handle->internal makeCurrent]; + [(MacOpenGLWidget*)handle->internal makeCurrent]; } static void mwOpenGLSwapBufferImpl(MwWidget handle) { - [(MacOpenGLWidget *)handle->internal swapBuffer]; + [(MacOpenGLWidget*)handle->internal swapBuffer]; } -static void *mwOpenGLGetProcAddressImpl(MwWidget handle, const char *name) { - return [(MacOpenGLWidget *)handle->internal getProcAddressWithName:name]; +static void* mwOpenGLGetProcAddressImpl(MwWidget handle, const char* name) { + return [(MacOpenGLWidget*)handle->internal getProcAddressWithName:name]; } -static void func_handler(MwWidget handle, const char *name, void *out, - va_list va) { - if (strcmp(name, "mwOpenGLMakeCurrent") == 0) { - mwOpenGLMakeCurrentImpl(handle); - } - if (strcmp(name, "mwOpenGLSwapBuffer") == 0) { - mwOpenGLSwapBufferImpl(handle); - } - if (strcmp(name, "mwOpenGLGetProcAddress") == 0) { - const char *_name = va_arg(va, const char *); - *(void **)out = mwOpenGLGetProcAddressImpl(handle, _name); - } +static void func_handler(MwWidget handle, const char* name, void* out, + va_list va) { + if(strcmp(name, "mwOpenGLMakeCurrent") == 0) { + mwOpenGLMakeCurrentImpl(handle); + } + if(strcmp(name, "mwOpenGLSwapBuffer") == 0) { + mwOpenGLSwapBufferImpl(handle); + } + if(strcmp(name, "mwOpenGLGetProcAddress") == 0) { + const char* _name = va_arg(va, const char*); + *(void**)out = mwOpenGLGetProcAddressImpl(handle, _name); + } } @implementation MacOpenGLWidget -- (MacOpenGLWidget *)initWithWindow:(MilskoCocoa *)w { - NSOpenGLPixelFormatAttribute pixelFormatAttributes[] = { - NSOpenGLPFAColorSize, 24, - NSOpenGLPFAStencilSize, 8, - NSOpenGLPFAAlphaSize, 8, - NSOpenGLPFADoubleBuffer, NSOpenGLPFAAccelerated, - NSOpenGLPFANoRecovery, 0}; - self->pixelFormat = - [[NSOpenGLPixelFormat alloc] initWithAttributes:pixelFormatAttributes]; - self->glc = - [[NSOpenGLContext alloc] initWithFormat:pixelFormat shareContext:nil]; - [self->glc setView:[w getView]]; - self->_win = w; - return self; +- (MacOpenGLWidget*)initWithWindow:(MilskoCocoa*)w { + NSOpenGLPixelFormatAttribute pixelFormatAttributes[] = { + NSOpenGLPFAColorSize, 24, + NSOpenGLPFAStencilSize, 8, + NSOpenGLPFAAlphaSize, 8, + NSOpenGLPFADoubleBuffer, NSOpenGLPFAAccelerated, + NSOpenGLPFANoRecovery, 0}; + self->pixelFormat = + [[NSOpenGLPixelFormat alloc] initWithAttributes:pixelFormatAttributes]; + self->glc = + [[NSOpenGLContext alloc] initWithFormat:pixelFormat + shareContext:nil]; + [self->glc setView:[w getView]]; + self->_win = w; + return self; }; - (void)destroy { }; - (void)makeCurrent { - [self->glc makeCurrentContext]; + [self->glc makeCurrentContext]; }; - (void)swapBuffer { - [self->glc flushBuffer]; + [self->glc flushBuffer]; }; -- (void *)getProcAddressWithName:(const char *)name { - if (NSIsSymbolNameDefined(name)) { - return NSAddressOfSymbol(NSLookupAndBindSymbol(name)); - } else { - return NULL; - } +- (void*)getProcAddressWithName:(const char*)name { + if(NSIsSymbolNameDefined(name)) { + return NSAddressOfSymbol(NSLookupAndBindSymbol(name)); + } else { + return NULL; + } }; @end -MwClassRec MwOpenGLClassRec = {create, /* create */ - destroy, /* destroy */ - NULL, /* draw */ - NULL, /* click */ - NULL, /* parent_resize */ - NULL, /* prop_change */ - NULL, /* mouse_move */ - NULL, /* mouse_up */ - NULL, /* mouse_down */ - NULL, /* key */ - func_handler, /* execute */ - NULL, /* tick */ - NULL, /* resize */ - NULL, /* children_update */ - NULL, /* children_prop_change */ - NULL, /* clipboard */ - NULL, NULL, NULL, NULL}; -MwClass MwOpenGLClass = &MwOpenGLClassRec; \ No newline at end of file +MwClassRec MwOpenGLClassRec = {create, /* create */ + destroy, /* destroy */ + NULL, /* draw */ + NULL, /* click */ + NULL, /* parent_resize */ + NULL, /* prop_change */ + NULL, /* mouse_move */ + NULL, /* mouse_up */ + NULL, /* mouse_down */ + NULL, /* key */ + func_handler, /* execute */ + NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, /* clipboard */ + NULL, NULL, NULL, NULL}; +MwClass MwOpenGLClass = &MwOpenGLClassRec; \ No newline at end of file diff --git a/tools/readme.pl b/tools/readme.pl index 7070312dd..653184c1b 100755 --- a/tools/readme.pl +++ b/tools/readme.pl @@ -58,8 +58,7 @@ l( l(""); c("Requirements"); l(""); -l( -" Milsko requires either"); +l(" Milsko requires either"); l(" * A Windows environment with GDI (so anything NT or 9x)"); l(" * A MacOS environment with Cocoa (10.4 or above supported)"); l(" * A Unix-like environment with X11 for runtime."); From 6c65e58e372c8a1512910ec5e2a74606077f0d6e Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Tue, 24 Mar 2026 04:27:57 +0900 Subject: [PATCH 231/836] fix --- src/text/text.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/text/text.c b/src/text/text.c index 8d19de838..98849156c 100644 --- a/src/text/text.c +++ b/src/text/text.c @@ -70,8 +70,7 @@ void* MwFontLoad(unsigned char* data, unsigned int size) { } void MwFontFree(void* handle) { - if(MwFLFontFree) - return MwFLFontFree(handle); + if(MwFLFontFree) MwFLFontFree(handle); } static void bitmap_MwDrawText(MwWidget handle, MwPoint* point, const char* text, int bold, int align, MwLLColor color) { From efa6804f46573edcb09689e83f6a09ee41830eab Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 24 Mar 2026 04:34:10 +0900 Subject: [PATCH 232/836] fix math --- src/backend/gdi.c | 4 ++-- src/backend/x11.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index d6ad07a53..5d89419d0 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -589,8 +589,8 @@ HCURSOR MwLLGDICreateCursor(MwCursor* image, MwCursor* mask) { int y, x, ys, xs; xs = -mask->x + image->x; - ys = MwCursorDataHeight + mask->y; - ys = MwCursorDataHeight + image->y - ys; + ys = mask->height + mask->y; + ys = image->height + image->y - ys; memset(dmask, 0xff, (MwCursorDataHeight / 8) * MwCursorDataHeight); memset(dimage, 0, (MwCursorDataHeight / 8) * MwCursorDataHeight); diff --git a/src/backend/x11.c b/src/backend/x11.c index cd9e8825f..de69fffb9 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -811,8 +811,8 @@ Cursor MwLLX11CreateCursor(Display* display, MwCursor* image, MwCursor* mask) { XColor cfg, cbg; xs = -mask->x + image->x; - ys = MwCursorDataHeight + mask->y; - ys = MwCursorDataHeight + image->y - ys; + ys = mask->height + mask->y; + ys = image->height + image->y - ys; memset(cimage->data, 0, cimage->bytes_per_line * cimage->height); memset(cmask->data, 0, cmask->bytes_per_line * cmask->height); From 3d83e0ca64b1092350833bbe5c1d8d6be4024795 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Mon, 23 Mar 2026 12:35:29 -0700 Subject: [PATCH 233/836] wayland: fix cursor --- src/backend/wayland.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 2e32ceda6..611a82c1b 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -2040,7 +2040,7 @@ static void MwLLForceRenderImpl(MwLL handle) { } static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { - int x, y; + int x, y, xs, ys; if(handle->wayland.cursor.setup) { buffer_destroy(&handle->wayland.cursor); @@ -2049,11 +2049,15 @@ static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { buffer_setup(&handle->wayland.cursor, image->width, image->height); memset(handle->wayland.cursor.buf, 0, handle->wayland.cursor.buf_size); + xs = -mask->x + image->x; + ys = MwCursorDataHeight + mask->y; + ys = MwCursorDataHeight + image->y - ys; + for(y = 0; y < mask->height; y++) { unsigned int d = mask->data[y]; for(x = mask->width - 1; x >= 0; x--) { int px = 0; - int idx = ((y * mask->width) + x) * 4; + int idx = (((y + ys) * mask->width) + (x + xs)) * 4; if(d & 1) { handle->wayland.cursor.buf[idx + 3] = 255; @@ -2065,7 +2069,7 @@ static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { unsigned int d = image->data[y]; for(x = image->width - 1; x >= 0; x--) { int px = 0; - int idx = ((y * image->width) + x) * 4; + int idx = (((y + ys) * image->width) + (x + xs)) * 4; if(d & 1) { px = 255; From 56cb0d4841dc44c6916587404244b6f0db25a59e Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 24 Mar 2026 04:56:08 +0900 Subject: [PATCH 234/836] wayland: fix cursor --- src/backend/wayland.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 611a82c1b..cb35c2068 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -2050,14 +2050,14 @@ static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { memset(handle->wayland.cursor.buf, 0, handle->wayland.cursor.buf_size); xs = -mask->x + image->x; - ys = MwCursorDataHeight + mask->y; - ys = MwCursorDataHeight + image->y - ys; + ys = mask->height + mask->y; + ys = image->height + image->y - ys; for(y = 0; y < mask->height; y++) { unsigned int d = mask->data[y]; for(x = mask->width - 1; x >= 0; x--) { int px = 0; - int idx = (((y + ys) * mask->width) + (x + xs)) * 4; + int idx = ((y * image->width) + x) * 4; if(d & 1) { handle->wayland.cursor.buf[idx + 3] = 255; @@ -2084,7 +2084,7 @@ static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { handle->wayland.cursor.surface = wl_compositor_create_surface(handle->wayland.compositor); - wl_surface_attach(handle->wayland.cursor.surface, handle->wayland.cursor.shm_buffer, 0, 0); + wl_surface_attach(handle->wayland.cursor.surface, handle->wayland.cursor.shm_buffer, xs + image->x, ys + image->height + image->y); wl_surface_commit(handle->wayland.cursor.surface); /* If there's currently a pointer, set it up. (Otherwise, it'll be setup during the pointer enter event) */ From f4072bcb3f83f29583405650c51c867dfb85d0f6 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 23 Mar 2026 13:38:26 -0700 Subject: [PATCH 235/836] fix clipboard --- examples/basic/clipboard.c | 3 ++- src/backend/wayland.c | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/examples/basic/clipboard.c b/examples/basic/clipboard.c index 57d579256..c792db8ca 100644 --- a/examples/basic/clipboard.c +++ b/examples/basic/clipboard.c @@ -29,7 +29,6 @@ void clipboard(MwWidget handle, void* user_data, void* call_data) { (void)handle; (void)user_data; - printf("got: %s\n", clipboard); if(clipboard != NULL) { MwVaApply(text, MwNtext, clipboard, NULL); MwForceRender(text); @@ -52,6 +51,8 @@ int main() { MwAddUserHandler(window, MwNresizeHandler, resize, NULL); MwAddUserHandler(window, MwNclipboardHandler, clipboard, NULL); + MwAddUserHandler(instructions, MwNclipboardHandler, clipboard, NULL); + MwAddUserHandler(text, MwNclipboardHandler, clipboard, NULL); resize(window, NULL, NULL); diff --git a/src/backend/wayland.c b/src/backend/wayland.c index cb35c2068..2f01c478e 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -228,8 +228,6 @@ static void wl_clipboard_read(wl_clipboard_device_context_t* ctx) { arrpush(buf, 0); close(fds[0]); - printf("sending: %s\n", buf); - MwLLDispatch(ctx->ll, clipboard, buf); arrfree(buf); @@ -470,7 +468,10 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri p.point = self->wayland.cur_mouse_pos; - if(self->wayland.framebuffer.surface == self->wayland.curSurface || self->wayland.backbuffer.surface == self->wayland.curSurface) { + // p.point.x > x && p.point.x < x + self->wayland.ww && p.point.y > y && p.point.y < y + self->wayland.wh + if( + self->wayland.framebuffer.surface == self->wayland.curSurface || + self->wayland.backbuffer.surface == self->wayland.curSurface) { int i; switch(button) { From ea2d62f2e104b76816ef1b916e02ab368a526a83 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 23 Mar 2026 14:28:49 -0700 Subject: [PATCH 236/836] more wayland fixes --- examples/basic/rotate.c | 1 + include/Mw/LowLevel/Wayland.h | 2 ++ src/backend/wayland.c | 36 +++++++++++++++++++++-------------- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/examples/basic/rotate.c b/examples/basic/rotate.c index 574eb2d6f..68c9133bf 100644 --- a/examples/basic/rotate.c +++ b/examples/basic/rotate.c @@ -49,6 +49,7 @@ void resize(MwWidget w, void* user, void* client) { (void)user; (void)client; + printf("H\n"); ww = MwGetInteger(w, MwNwidth); wh = MwGetInteger(w, MwNheight); } diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 00556dada..2a16f50ff 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -144,6 +144,8 @@ struct _MwLLWayland { MwBool detatching; MwPoint detach_point; + MwBool did_initial_resize; + /* Map of Wayland interfaces to their relevant setup functions. */ struct { const char* key; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 2f01c478e..1588cdf7b 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1165,10 +1165,10 @@ static void region_setup(MwLL handle) { wl_region_add(handle->wayland.region, 0, 0, width, height); } if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { - wl_surface_set_opaque_region(handle->wayland.backbuffer.surface, handle->wayland.region); + wl_surface_set_opaque_region(handle->wayland.backbuffer.surface, handle->wayland.o_region); wl_surface_set_input_region(handle->wayland.backbuffer.surface, handle->wayland.region); } - wl_surface_set_opaque_region(handle->wayland.framebuffer.surface, handle->wayland.region); + wl_surface_set_opaque_region(handle->wayland.framebuffer.surface, handle->wayland.o_region); wl_surface_set_input_region(handle->wayland.framebuffer.surface, handle->wayland.region); } @@ -1249,6 +1249,11 @@ static void setup_toplevel(MwLL r, int x, int y) { return; } + /* check now if we have decorations so that everything else can act accordingly */ + if(shget(r->wayland.wl_protocol_map, zxdg_decoration_manager_v1_interface.name) != NULL) { + r->wayland.has_decorations = MwTRUE; + } + r->wayland.toplevel->xkb_context = xkb_context_new(XKB_CONTEXT_NO_FLAGS); /* Create a wl_surface, a xdg_surface and a xdg_toplevel */ @@ -1282,7 +1287,7 @@ static void setup_toplevel(MwLL r, int x, int y) { } /* setup decorations if we can */ - if(shget(r->wayland.wl_protocol_map, zxdg_decoration_manager_v1_interface.name) != NULL) { + if(r->wayland.has_decorations) { zxdg_decoration_manager_v1_context_t* dec = WAYLAND_GET_INTERFACE(r->wayland, zxdg_decoration_manager_v1)->context; dec->decoration = zxdg_decoration_manager_v1_get_toplevel_decoration( @@ -1290,15 +1295,12 @@ static void setup_toplevel(MwLL r, int x, int y) { zxdg_toplevel_decoration_v1_set_mode( dec->decoration, ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE); - - r->wayland.has_decorations = MwTRUE; } else { /* otherwise set up viewporter */ struct wp_viewporter* wp = WAYLAND_GET_INTERFACE(r->wayland, wp_viewporter)->context; r->wayland.vp = wp_viewporter_get_viewport(wp, r->wayland.framebuffer.surface); wp_viewport_set_source(r->wayland.vp, r->wayland.x, r->wayland.y, r->wayland.ww, r->wayland.wh); wp_viewport_set_destination(r->wayland.vp, r->wayland.ww - (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT), r->wayland.wh - (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM)); - r->wayland.has_decorations = MwFALSE; wl_subsurface_set_position(r->wayland.toplevel->ssurface, CSD_BORDER_FRAME_LEFT, CSD_BORDER_FRAME_TOP); } @@ -1510,14 +1512,14 @@ static void clip(MwLL handle) { cairo_rectangle(handle->wayland.front_cairo, 0, 0, (parent->wayland.ww + handle->wayland.x), (parent->wayland.wh + handle->wayland.y)); cairo_clip(handle->wayland.front_cairo); } - if(topmost && handle->wayland.type == MWLL_WAYLAND_SUBLEVEL) { - cairo_reset_clip(handle->wayland.front_cairo); - while(topmost->wayland.parent) topmost = topmost->wayland.parent; - left_offset = topmost->wayland.has_decorations ? 0 : (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT); - top_offset = topmost->wayland.has_decorations ? 0 : (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM); - cairo_rectangle(handle->wayland.front_cairo, 0, 0, (topmost->wayland.ww + handle->wayland.x) - left_offset, (topmost->wayland.wh + handle->wayland.y) - top_offset); - cairo_clip(handle->wayland.front_cairo); - } + // if(topmost && handle->wayland.type == MWLL_WAYLAND_SUBLEVEL) { + // cairo_reset_clip(handle->wayland.front_cairo); + // while(topmost->wayland.parent) topmost = topmost->wayland.parent; + // left_offset = topmost->wayland.has_decorations ? 0 : (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT); + // top_offset = topmost->wayland.has_decorations ? 0 : (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM); + // cairo_rectangle(handle->wayland.front_cairo, 0, 0, (topmost->wayland.ww + handle->wayland.x) - left_offset, (topmost->wayland.wh + handle->wayland.y) - top_offset); + // cairo_clip(handle->wayland.front_cairo); + // } } static void wl_logger(const char* fmt, va_list args) { @@ -1872,6 +1874,12 @@ static int MwLLPendingImpl(MwLL handle) { }; int pending = 0; + if(!handle->wayland.did_initial_resize) { + MwLLDispatch(handle, resize, NULL); + handle->wayland.did_initial_resize = 1; + return 1; + } + if(!handle->wayland.always_render) wl_display_prepare_read(handle->wayland.display); if(!poll(&fd, 1, timeout.tv_nsec)) { wl_display_cancel_read(handle->wayland.display); From 682d84879bea449d76c113831a12ce6b403e1196 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 23 Mar 2026 14:54:36 -0700 Subject: [PATCH 237/836] wayland: cap x/y for viewporter to 0,0 --- src/backend/wayland.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 1588cdf7b..ec82081cf 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1299,7 +1299,7 @@ static void setup_toplevel(MwLL r, int x, int y) { /* otherwise set up viewporter */ struct wp_viewporter* wp = WAYLAND_GET_INTERFACE(r->wayland, wp_viewporter)->context; r->wayland.vp = wp_viewporter_get_viewport(wp, r->wayland.framebuffer.surface); - wp_viewport_set_source(r->wayland.vp, r->wayland.x, r->wayland.y, r->wayland.ww, r->wayland.wh); + wp_viewport_set_source(r->wayland.vp, (r->wayland.x >= 0) ? r->wayland.x : 0, (r->wayland.y >= 0) ? r->wayland.y : 0, r->wayland.ww, r->wayland.wh); wp_viewport_set_destination(r->wayland.vp, r->wayland.ww - (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT), r->wayland.wh - (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM)); wl_subsurface_set_position(r->wayland.toplevel->ssurface, CSD_BORDER_FRAME_LEFT, CSD_BORDER_FRAME_TOP); From 8ccf819b572b2591259e83a68c89e650711d6c8c Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 23 Mar 2026 14:56:27 -0700 Subject: [PATCH 238/836] wayland: positive width/height --- src/backend/wayland.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index ec82081cf..f1ad80db3 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1001,7 +1001,11 @@ static void xdg_toplevel_configure(void* data, region_setup(self); if(self->wayland.type == MWLL_WAYLAND_TOPLEVEL && !self->wayland.has_decorations) { - wp_viewport_set_destination(self->wayland.vp, self->wayland.ww - (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT), self->wayland.wh - (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM)); + MwU32 vwidth = self->wayland.ww - (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT); + MwU32 vheight = self->wayland.wh - (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM); + if(vwidth < 0) vwidth = 0; + if(vheight < 0) vheight = 0; + wp_viewport_set_destination(self->wayland.vp, vwidth, vheight); } MwLLDispatch(self, resize, NULL); @@ -1299,8 +1303,12 @@ static void setup_toplevel(MwLL r, int x, int y) { /* otherwise set up viewporter */ struct wp_viewporter* wp = WAYLAND_GET_INTERFACE(r->wayland, wp_viewporter)->context; r->wayland.vp = wp_viewporter_get_viewport(wp, r->wayland.framebuffer.surface); - wp_viewport_set_source(r->wayland.vp, (r->wayland.x >= 0) ? r->wayland.x : 0, (r->wayland.y >= 0) ? r->wayland.y : 0, r->wayland.ww, r->wayland.wh); - wp_viewport_set_destination(r->wayland.vp, r->wayland.ww - (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT), r->wayland.wh - (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM)); + MwU32 vwidth = r->wayland.ww - (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT); + MwU32 vheight = r->wayland.wh - (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM); + if(vwidth < 0) vwidth = 0; + if(vheight < 0) vheight = 0; + wp_viewport_set_source(r->wayland.vp, r->wayland.x, r->wayland.y, r->wayland.ww, r->wayland.wh); + wp_viewport_set_destination(r->wayland.vp, vwidth, vheight); wl_subsurface_set_position(r->wayland.toplevel->ssurface, CSD_BORDER_FRAME_LEFT, CSD_BORDER_FRAME_TOP); } From 24ae1c4e11f610d95215939b5d8cd7e77c78be5a Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 23 Mar 2026 15:32:28 -0700 Subject: [PATCH 239/836] wayland: have backbuffer be larger then framebuffer instead of other way around --- src/backend/wayland.c | 63 +++++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 29 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index f1ad80db3..05b7b927b 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1001,8 +1001,8 @@ static void xdg_toplevel_configure(void* data, region_setup(self); if(self->wayland.type == MWLL_WAYLAND_TOPLEVEL && !self->wayland.has_decorations) { - MwU32 vwidth = self->wayland.ww - (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT); - MwU32 vheight = self->wayland.wh - (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM); + MwU32 vwidth = self->wayland.ww; + MwU32 vheight = self->wayland.wh; if(vwidth < 0) vwidth = 0; if(vheight < 0) vheight = 0; wp_viewport_set_destination(self->wayland.vp, vwidth, vheight); @@ -1123,9 +1123,15 @@ static void backbuffer_setup(struct _MwLLWayland* wayland) { if(wayland->type != MWLL_WAYLAND_TOPLEVEL) { return; } - buffer_setup(&wayland->backbuffer, wayland->ww, wayland->wh); + MwU32 w = wayland->ww; + MwU32 h = wayland->wh; + if(!wayland->has_decorations) { + w += (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT); + h += (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM); + } + buffer_setup(&wayland->backbuffer, w, h); - wayland->back_cs = cairo_image_surface_create_for_data(wayland->backbuffer.buf, CAIRO_FORMAT_ARGB32, wayland->ww, wayland->wh, 4 * wayland->ww); + wayland->back_cs = cairo_image_surface_create_for_data(wayland->backbuffer.buf, CAIRO_FORMAT_ARGB32, w, h, 4 * w); wayland->back_cairo = cairo_create(wayland->back_cs); memset(wayland->backbuffer.buf, 0, wayland->backbuffer.buf_size); @@ -1301,13 +1307,17 @@ static void setup_toplevel(MwLL r, int x, int y) { dec->decoration, ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE); } else { /* otherwise set up viewporter */ - struct wp_viewporter* wp = WAYLAND_GET_INTERFACE(r->wayland, wp_viewporter)->context; - r->wayland.vp = wp_viewporter_get_viewport(wp, r->wayland.framebuffer.surface); - MwU32 vwidth = r->wayland.ww - (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT); - MwU32 vheight = r->wayland.wh - (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM); + struct wp_viewporter* wp = WAYLAND_GET_INTERFACE(r->wayland, wp_viewporter)->context; + MwI32 x = r->wayland.x; + MwI32 y = r->wayland.y; + MwU32 vwidth = r->wayland.ww; + MwU32 vheight = r->wayland.wh; + r->wayland.vp = wp_viewporter_get_viewport(wp, r->wayland.framebuffer.surface); + if(x < 0) x = 0; + if(y < 0) y = 0; if(vwidth < 0) vwidth = 0; if(vheight < 0) vheight = 0; - wp_viewport_set_source(r->wayland.vp, r->wayland.x, r->wayland.y, r->wayland.ww, r->wayland.wh); + wp_viewport_set_source(r->wayland.vp, wl_fixed_from_int(x), wl_fixed_from_int(y), wl_fixed_from_int(r->wayland.ww), wl_fixed_from_int(r->wayland.wh)); wp_viewport_set_destination(r->wayland.vp, vwidth, vheight); wl_subsurface_set_position(r->wayland.toplevel->ssurface, CSD_BORDER_FRAME_LEFT, CSD_BORDER_FRAME_TOP); @@ -1678,14 +1688,7 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { handle->wayland.wh = 10; goto refresh; } - if(handle->wayland.parent) { - if(handle->wayland.parent->wayland.type == MWLL_WAYLAND_TOPLEVEL && !handle->wayland.parent->wayland.has_decorations) { - if(w >= handle->wayland.parent->wayland.ww - (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT)) - w = handle->wayland.parent->wayland.ww - (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT); - if(h >= handle->wayland.parent->wayland.wh - (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM)) - h = handle->wayland.parent->wayland.wh - (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM); - } - } + handle->wayland.ww = w; handle->wayland.wh = h; @@ -1719,34 +1722,36 @@ static void MwLLBeginDrawImpl(MwLL handle) { return; } if(!handle->wayland.has_decorations) { - int x, y; + int x, y; + MwU32 w = handle->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT; + MwU32 h = handle->wayland.wh + CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM; cairo_set_line_width(handle->wayland.back_cairo, 4.0); - for(x = 0; x < handle->wayland.ww; x++) { - float placeholder = (float)x / (float)handle->wayland.ww; + for(x = 0; x < w; x++) { + float placeholder = (float)x / (float)w; cairo_set_source_rgb(handle->wayland.back_cairo, placeholder, 0.25, 0.25); - cairo_move_to(handle->wayland.back_cairo, handle->wayland.ww - x, 0); - cairo_line_to(handle->wayland.back_cairo, handle->wayland.ww - x, CSD_BORDER_FRAME_TOP); + cairo_move_to(handle->wayland.back_cairo, w - x, 0); + cairo_line_to(handle->wayland.back_cairo, w - x, CSD_BORDER_FRAME_TOP); cairo_stroke(handle->wayland.back_cairo); cairo_move_to(handle->wayland.back_cairo, x, CSD_BORDER_FRAME_TOP); - cairo_line_to(handle->wayland.back_cairo, x, handle->wayland.wh); + cairo_line_to(handle->wayland.back_cairo, x, h); cairo_stroke(handle->wayland.back_cairo); } cairo_set_source_rgba(handle->wayland.back_cairo, 1, 1, 1, 0.5); cairo_move_to(handle->wayland.back_cairo, 0, 0); - cairo_line_to(handle->wayland.back_cairo, 0, handle->wayland.wh); + cairo_line_to(handle->wayland.back_cairo, 0, h); cairo_stroke(handle->wayland.back_cairo); cairo_move_to(handle->wayland.back_cairo, 0, 0); - cairo_line_to(handle->wayland.back_cairo, handle->wayland.ww, 0); + cairo_line_to(handle->wayland.back_cairo, w, 0); cairo_stroke(handle->wayland.back_cairo); cairo_set_source_rgba(handle->wayland.back_cairo, 0, 0, 0, 0.5); - cairo_move_to(handle->wayland.back_cairo, 0, handle->wayland.wh); - cairo_line_to(handle->wayland.back_cairo, handle->wayland.ww, handle->wayland.wh); + cairo_move_to(handle->wayland.back_cairo, 0, h); + cairo_line_to(handle->wayland.back_cairo, w, h); cairo_stroke(handle->wayland.back_cairo); - cairo_move_to(handle->wayland.back_cairo, handle->wayland.ww, 0); - cairo_line_to(handle->wayland.back_cairo, handle->wayland.ww, handle->wayland.wh); + cairo_move_to(handle->wayland.back_cairo, w, 0); + cairo_line_to(handle->wayland.back_cairo, w, h); cairo_stroke(handle->wayland.back_cairo); if(strlen(handle->wayland.title) != 0) { From d4913576358f14d6431e603a78d27377d2940212 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 23 Mar 2026 15:45:48 -0700 Subject: [PATCH 240/836] wayland: csd fixes --- src/backend/wayland.c | 45 ++++++++++++++----------------------------- 1 file changed, 14 insertions(+), 31 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 05b7b927b..9a2ca75a7 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -203,7 +203,7 @@ static void wl_clipboard_read(wl_clipboard_device_context_t* ctx) { if(ctx->ll->wayland.supports_zwp) { zwp_primary_selection_offer_v1_receive(ctx->offer.zwp, "text/plain", fds[1]); - } else { + } else if(ctx->offer.wl) { wl_data_offer_receive(ctx->offer.wl, "text/plain", fds[1]); } close(fds[1]); @@ -395,19 +395,19 @@ static void pointer_leave(void* data, struct wl_pointer* wl_pointer, MwU32 seria static void xdg_borderless_step(MwLL self, MwLLMouse p, MwU32 serial) { if(self->wayland.type == MWLL_WAYLAND_TOPLEVEL && self->wayland.backbuffer.surface == self->wayland.curSurface) { - if(p.point.y >= self->wayland.wh - 5) { - if(p.point.x >= self->wayland.ww - 5) { + if(p.point.y >= (self->wayland.wh + CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM) - 5) { + if(p.point.x >= (self->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT) - 5) { xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_BOTTOM_RIGHT); } else { xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_BOTTOM); } } else if(p.point.y <= 5) { - if(p.point.x >= self->wayland.ww - 5) { + if(p.point.x >= (self->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT) - 5) { xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_TOP_RIGHT); } else { xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_TOP); } - } else if(p.point.x >= self->wayland.ww - 5) { + } else if(p.point.x >= (self->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT) - 5) { xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_RIGHT); } else if(p.point.x <= 5) { xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_LEFT); @@ -1000,14 +1000,6 @@ static void xdg_toplevel_configure(void* data, framebuffer_setup(&self->wayland); region_setup(self); - if(self->wayland.type == MWLL_WAYLAND_TOPLEVEL && !self->wayland.has_decorations) { - MwU32 vwidth = self->wayland.ww; - MwU32 vheight = self->wayland.wh; - if(vwidth < 0) vwidth = 0; - if(vheight < 0) vheight = 0; - wp_viewport_set_destination(self->wayland.vp, vwidth, vheight); - } - MwLLDispatch(self, resize, NULL); MwLLDispatch(self, draw, NULL); }; @@ -1171,9 +1163,15 @@ static void region_setup(MwLL handle) { if(height - handle->wayland.y > parent->wayland.wh) { height = parent->wayland.wh - handle->wayland.y; } + } else { + if(!handle->wayland.has_decorations) { + width += CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT; + height += CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM; + } } wl_region_add(handle->wayland.region, 0, 0, width, height); } + if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { wl_surface_set_opaque_region(handle->wayland.backbuffer.surface, handle->wayland.o_region); wl_surface_set_input_region(handle->wayland.backbuffer.surface, handle->wayland.region); @@ -1306,20 +1304,6 @@ static void setup_toplevel(MwLL r, int x, int y) { zxdg_toplevel_decoration_v1_set_mode( dec->decoration, ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE); } else { - /* otherwise set up viewporter */ - struct wp_viewporter* wp = WAYLAND_GET_INTERFACE(r->wayland, wp_viewporter)->context; - MwI32 x = r->wayland.x; - MwI32 y = r->wayland.y; - MwU32 vwidth = r->wayland.ww; - MwU32 vheight = r->wayland.wh; - r->wayland.vp = wp_viewporter_get_viewport(wp, r->wayland.framebuffer.surface); - if(x < 0) x = 0; - if(y < 0) y = 0; - if(vwidth < 0) vwidth = 0; - if(vheight < 0) vheight = 0; - wp_viewport_set_source(r->wayland.vp, wl_fixed_from_int(x), wl_fixed_from_int(y), wl_fixed_from_int(r->wayland.ww), wl_fixed_from_int(r->wayland.wh)); - wp_viewport_set_destination(r->wayland.vp, vwidth, vheight); - wl_subsurface_set_position(r->wayland.toplevel->ssurface, CSD_BORDER_FRAME_LEFT, CSD_BORDER_FRAME_TOP); } } @@ -1692,10 +1676,6 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { handle->wayland.ww = w; handle->wayland.wh = h; - // if(handle->wayland.wh >= (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM)) { - // handle->wayland.wh -= (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM); - // } - if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL && handle->wayland.configured) { xdg_surface_set_window_geometry(handle->wayland.toplevel->xdg_surface, 0, 0, handle->wayland.ww, handle->wayland.wh); } @@ -1714,6 +1694,8 @@ refresh: backbuffer_destroy(&handle->wayland); backbuffer_setup(&handle->wayland); MwLLDispatch(handle, draw, NULL); + + handle->wayland.events_pending = 1; } static void MwLLBeginDrawImpl(MwLL handle) { @@ -1721,6 +1703,7 @@ static void MwLLBeginDrawImpl(MwLL handle) { handle->wayland.selected_cairo = handle->wayland.front_cairo; return; } + if(!handle->wayland.has_decorations) { int x, y; MwU32 w = handle->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT; From b9933b70e254eacc0de932112950b50293f35a3d Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 23 Mar 2026 15:56:01 -0700 Subject: [PATCH 241/836] wayland: on resize, fire draw before resize --- src/backend/wayland.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 9a2ca75a7..dbb2bd28d 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1000,8 +1000,8 @@ static void xdg_toplevel_configure(void* data, framebuffer_setup(&self->wayland); region_setup(self); - MwLLDispatch(self, resize, NULL); MwLLDispatch(self, draw, NULL); + MwLLDispatch(self, resize, NULL); }; /* Empty function for satisfying zxdg_toplevel's requirements */ From 5e823b5a25782b0dfe151e77e2e4cee373e10e48 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Mon, 23 Mar 2026 19:30:21 -0700 Subject: [PATCH 242/836] wayland: gl improvements --- src/backend/wayland.c | 4 ++-- src/widget/opengl.c | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index dbb2bd28d..dab1a1b0a 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -441,13 +441,13 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time MwLL topmost = self->wayland.parent; while(topmost->wayland.parent) topmost = topmost->wayland.parent; /* also we only wanna do it every 50ms */ - if((self->wayland.last_time + 50) <= time && !topmost->wayland.events_pending) { + if((self->wayland.last_time + 50) <= time && !topmost->wayland.events_pending && !topmost->wayland.always_render) { MwLLDispatch(self, draw, NULL); self->wayland.last_time = time; } } else { /* if there's no parent just impose the requirement on the widget itself */ - if((self->wayland.last_time + 50) <= time && !self->wayland.events_pending) { + if((self->wayland.last_time + 50) <= time && !self->wayland.events_pending && !self->wayland.always_render) { MwLLDispatch(self, draw, NULL); self->wayland.last_time = time; } diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 6d67344ce..7d685ada6 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -168,11 +168,10 @@ static int create(MwWidget handle) { waylandopengl_t* o = r = malloc(sizeof(*o)); MwLL topmost_parent = handle->lowlevel->wayland.parent; handle->lowlevel->wayland.always_render = MwTRUE; - topmost_parent->wayland.always_render = MwTRUE; while(topmost_parent->wayland.parent != NULL) { - topmost_parent = topmost_parent->wayland.parent; topmost_parent->wayland.always_render = MwTRUE; + topmost_parent = topmost_parent->wayland.parent; } display = From 57609f182388abc17f8d218c1e020ecbf90336c7 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 24 Mar 2026 13:31:49 -0700 Subject: [PATCH 243/836] fire a draw/resize event manually to children when resizing --- examples/basic/rotate.c | 1 - src/backend/wayland.c | 72 +++++++++++++++++++++++++++++++++++------ 2 files changed, 63 insertions(+), 10 deletions(-) diff --git a/examples/basic/rotate.c b/examples/basic/rotate.c index 68c9133bf..574eb2d6f 100644 --- a/examples/basic/rotate.c +++ b/examples/basic/rotate.c @@ -49,7 +49,6 @@ void resize(MwWidget w, void* user, void* client) { (void)user; (void)client; - printf("H\n"); ww = MwGetInteger(w, MwNwidth); wh = MwGetInteger(w, MwNheight); } diff --git a/src/backend/wayland.c b/src/backend/wayland.c index dab1a1b0a..b2bbe8f94 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -98,6 +98,51 @@ static void wl_flush(MwLL handle) { } } +/* Recursively dispatch a draw event to a widget and its children */ +static void recursive_dispatch_draw_n_resize(MwLL handle) { + MwWidget h = (MwWidget)handle->common.user; + MwLLDispatch(handle, draw, NULL); + MwLLDispatch(handle, resize, NULL); + if(h) { + int i; + for(i = 0; i < arrlen(h->children); i++) { + MwDispatch(h->children[i], draw); + MwDispatch(h->children[i], resize); + if(arrlen(h->children[i]->children) > 0) { + recursive_dispatch_draw_n_resize(h->children[i]->lowlevel); + } + } + } +}; + +/* Recursively dispatch a key event to a widget and its children */ +static void recursive_dispatch_key(MwLL handle, int* k) { + MwWidget h = (MwWidget)handle->common.user; + MwLLDispatch(handle, key, k); + if(h) { + int i; + for(i = 0; i < arrlen(h->children); i++) { + MwLLDispatch(h->children[i]->lowlevel, key, k); + if(arrlen(h->children[i]->children) > 0) { + recursive_dispatch_key(h->children[i]->lowlevel, k); + } + } + } +}; +/* Recursively dispatch a key released event to a widget and its children */ +static void recursive_dispatch_key_released(MwLL handle, int* k) { + MwWidget h = (MwWidget)handle->common.user; + MwLLDispatch(handle, key_released, k); + if(h) { + int i; + for(i = 0; i < arrlen(h->children); i++) { + MwLLDispatch(h->children[i]->lowlevel, key_released, k); + if(arrlen(h->children[i]->children) > 0) { + recursive_dispatch_key_released(h->children[i]->lowlevel, k); + } + } + } +}; static void wl_offer(void* data, struct wl_data_offer* wl_data_offer, const char* mime_type) { @@ -424,6 +469,8 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time wl_fixed_t surface_x, wl_fixed_t surface_y) { MwLL self = data; MwLLMouse p; + int i = 0; + MwWidget h = (MwWidget)self->common.user; WAYLAND_EVENT_OP_START(self); @@ -680,9 +727,9 @@ static void keyboard_key(void* data, } if(state == WL_KEYBOARD_KEY_STATE_PRESSED) { - MwLLDispatch(self, key, &key); + recursive_dispatch_key(self, &key); } else { - MwLLDispatch(self, key_released, &key); + recursive_dispatch_key_released(self, &key); } } } @@ -970,8 +1017,9 @@ static void xdg_toplevel_configure(void* data, struct xdg_toplevel* xdg_toplevel, MwI32 width, MwI32 height, struct wl_array* states) { - MwLL self = data; - int i; + MwLL self = data; + int i; + MwWidget h = ((MwWidget)self->common.user); /* Yes, somehow this can get called before */ if(!self->wayland.configured) { @@ -1000,8 +1048,7 @@ static void xdg_toplevel_configure(void* data, framebuffer_setup(&self->wayland); region_setup(self); - MwLLDispatch(self, draw, NULL); - MwLLDispatch(self, resize, NULL); + recursive_dispatch_draw_n_resize(self); }; /* Empty function for satisfying zxdg_toplevel's requirements */ @@ -1652,6 +1699,9 @@ static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsign } static void MwLLSetXYImpl(MwLL handle, int x, int y) { + int i = 0; + MwWidget h = (MwWidget)handle->common.user; + region_invalidate(handle); handle->wayland.x = x; handle->wayland.y = y; @@ -1664,6 +1714,8 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { } static void MwLLSetWHImpl(MwLL handle, int w, int h) { + int i = 0; + MwWidget widget = (MwWidget)handle->common.user; region_invalidate(handle); /* Prevent an integer underflow when the w/h is too low */ @@ -1694,7 +1746,6 @@ refresh: backbuffer_destroy(&handle->wayland); backbuffer_setup(&handle->wayland); MwLLDispatch(handle, draw, NULL); - handle->wayland.events_pending = 1; } @@ -1871,7 +1922,7 @@ static int MwLLPendingImpl(MwLL handle) { int pending = 0; if(!handle->wayland.did_initial_resize) { - MwLLDispatch(handle, resize, NULL); + recursive_dispatch_draw_n_resize(handle); handle->wayland.did_initial_resize = 1; return 1; } @@ -1901,6 +1952,7 @@ static int MwLLPendingImpl(MwLL handle) { } static void MwLLNextEventImpl(MwLL handle) { + int i = 0; if(!handle->wayland.always_render) { if(handle->wayland.did_event_loop_early) { handle->wayland.did_event_loop_early = MwFALSE; @@ -1910,7 +1962,9 @@ static void MwLLNextEventImpl(MwLL handle) { } if(handle->wayland.force_render) { - if(!handle->wayland.events_pending) MwLLDispatch(handle, draw, NULL); + if(!handle->wayland.events_pending) { + MwLLDispatch(handle, draw, NULL); + } if(handle->wayland.configured) update_buffer(&handle->wayland.framebuffer); handle->wayland.force_render = 0; } From 1ad75eca90e76ba44c73fd691f84e00d031f1859 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 24 Mar 2026 14:41:20 -0700 Subject: [PATCH 244/836] only draw on the parent and resize on the child in draw_n_resize --- src/backend/wayland.c | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index b2bbe8f94..8d39d6b97 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -102,11 +102,9 @@ static void wl_flush(MwLL handle) { static void recursive_dispatch_draw_n_resize(MwLL handle) { MwWidget h = (MwWidget)handle->common.user; MwLLDispatch(handle, draw, NULL); - MwLLDispatch(handle, resize, NULL); if(h) { int i; for(i = 0; i < arrlen(h->children); i++) { - MwDispatch(h->children[i], draw); MwDispatch(h->children[i], resize); if(arrlen(h->children[i]->children) > 0) { recursive_dispatch_draw_n_resize(h->children[i]->lowlevel); @@ -483,23 +481,6 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time MwLLDispatch(currentlyHeldWidget, down, &p); } - /* We want to send a draw call whenever we move the cursor, BUT only if the topmost parent doesn't already have events pedngin. */ - if(self->wayland.parent) { - MwLL topmost = self->wayland.parent; - while(topmost->wayland.parent) topmost = topmost->wayland.parent; - /* also we only wanna do it every 50ms */ - if((self->wayland.last_time + 50) <= time && !topmost->wayland.events_pending && !topmost->wayland.always_render) { - MwLLDispatch(self, draw, NULL); - self->wayland.last_time = time; - } - } else { - /* if there's no parent just impose the requirement on the widget itself */ - if((self->wayland.last_time + 50) <= time && !self->wayland.events_pending && !self->wayland.always_render) { - MwLLDispatch(self, draw, NULL); - self->wayland.last_time = time; - } - } - WAYLAND_EVENT_OP_END(self); }; From 9a23045c30b40e21ea621fce93612ec43d2ffdb2 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 24 Mar 2026 14:43:38 -0700 Subject: [PATCH 245/836] change draw_n_resize to just resize --- src/backend/wayland.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 8d39d6b97..37a1f29e1 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -99,15 +99,14 @@ static void wl_flush(MwLL handle) { } /* Recursively dispatch a draw event to a widget and its children */ -static void recursive_dispatch_draw_n_resize(MwLL handle) { +static void recursive_dispatch_resize(MwLL handle) { MwWidget h = (MwWidget)handle->common.user; - MwLLDispatch(handle, draw, NULL); if(h) { int i; for(i = 0; i < arrlen(h->children); i++) { MwDispatch(h->children[i], resize); if(arrlen(h->children[i]->children) > 0) { - recursive_dispatch_draw_n_resize(h->children[i]->lowlevel); + recursive_dispatch_resize(h->children[i]->lowlevel); } } } @@ -1028,8 +1027,10 @@ static void xdg_toplevel_configure(void* data, framebuffer_destroy(&self->wayland); framebuffer_setup(&self->wayland); region_setup(self); + MwLLDispatch(self, resize, NULL); - recursive_dispatch_draw_n_resize(self); + MwLLDispatch(self, draw, NULL); + recursive_dispatch_resize(self); }; /* Empty function for satisfying zxdg_toplevel's requirements */ @@ -1903,7 +1904,7 @@ static int MwLLPendingImpl(MwLL handle) { int pending = 0; if(!handle->wayland.did_initial_resize) { - recursive_dispatch_draw_n_resize(handle); + recursive_dispatch_resize(handle); handle->wayland.did_initial_resize = 1; return 1; } From e86d6acdf37037c5f9445f884c0c5c9286d2713e Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 24 Mar 2026 14:52:53 -0700 Subject: [PATCH 246/836] we can just draw even if events are pending --- src/backend/wayland.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 37a1f29e1..2b581c693 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -535,10 +535,6 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri } } - if(!self->wayland.always_render) { - MwLLDispatch(self, draw, NULL); - } - if(!self->wayland.has_decorations) { xdg_borderless_step(self, p, serial); } @@ -1894,7 +1890,7 @@ static void MwLLFreeColorImpl(MwLLColor color) { static int MwLLPendingImpl(MwLL handle) { struct timespec timeout = { - .tv_nsec = 100, + .tv_nsec = 1, .tv_sec = 0, }; struct pollfd fd = { @@ -1906,7 +1902,6 @@ static int MwLLPendingImpl(MwLL handle) { if(!handle->wayland.did_initial_resize) { recursive_dispatch_resize(handle); handle->wayland.did_initial_resize = 1; - return 1; } if(!handle->wayland.always_render) wl_display_prepare_read(handle->wayland.display); @@ -1925,9 +1920,9 @@ static int MwLLPendingImpl(MwLL handle) { return pending; } - wl_surface_commit(handle->wayland.framebuffer.surface); + update_buffer(&handle->wayland.framebuffer); if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { - wl_surface_commit(handle->wayland.backbuffer.surface); + update_buffer(&handle->wayland.backbuffer); } return handle->wayland.force_render || handle->wayland.events_pending || pending; @@ -1944,9 +1939,9 @@ static void MwLLNextEventImpl(MwLL handle) { } if(handle->wayland.force_render) { - if(!handle->wayland.events_pending) { - MwLLDispatch(handle, draw, NULL); - } + // if(!handle->wayland.events_pending) { + MwLLDispatch(handle, draw, NULL); + // } if(handle->wayland.configured) update_buffer(&handle->wayland.framebuffer); handle->wayland.force_render = 0; } From 47746ff30e6fa5ef41cd6dbe1bb7caa0731b048d Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 24 Mar 2026 17:38:21 -0700 Subject: [PATCH 247/836] dynamically load wayland and its dependencies, fix warnings --- include/Mw/LowLevel/Wayland.h | 275 ++++++++++++++++++++++++++++++++-- pl/rules.pl | 5 +- pl/utils.pl | 29 ++++ src/backend/wayland.c | 192 +++++++++++++++++------- src/widget/opengl.c | 95 +++++++++++- 5 files changed, 522 insertions(+), 74 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 2a16f50ff..a6f225437 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -7,22 +7,279 @@ #ifndef __MW_LOWLEVEL_WAYLAND_H__ #define __MW_LOWLEVEL_WAYLAND_H__ -#include "Mw/BaseTypes.h" #include #include #include +#include -#include - -#include #include #include #include MWDECL int MwLLWaylandCallInit(void); +#define CSD_BORDER_FRAME_LEFT 5 +#define CSD_BORDER_FRAME_RIGHT 5 +#define CSD_BORDER_FRAME_TOP 24 +#define CSD_BORDER_FRAME_BOTTOM 5 + +struct _MwLLWayland; + +#include + +#if WAYLAND_LOAD_OPENGL +#include +#include +#endif + +typedef struct wayland_call_table { + void* lib; + void* xkb_lib; + void* cairo_lib; +#if WAYLAND_LOAD_OPENGL +#endif + + int (*wl_display_dispatch_pending)(struct wl_display* display); + void (*wl_display_disconnect)(struct wl_display* display); + void (*wl_display_cancel_read)(struct wl_display* display); + int (*wl_display_prepare_read)(struct wl_display* display); + int (*wl_display_read_events)(struct wl_display* display); + int (*wl_display_flush)(struct wl_display* display); + int (*wl_display_get_fd)(struct wl_display* display); + int (*wl_display_roundtrip)(struct wl_display* display); + int (*wl_proxy_add_listener)(struct wl_proxy* proxy, void (**implementation)(void), void* data); + void (*wl_proxy_destroy)(struct wl_proxy* proxy); + void (*wl_log_set_handler_client)(wl_log_func_t handler); + struct wl_proxy* (*wl_proxy_marshal_flags)(struct wl_proxy* proxy, uint32_t opcode, + const struct wl_interface* interface, + uint32_t version, + uint32_t flags, ...); + struct wl_display* (*wl_display_connect)(const char* name); + uint32_t (*wl_proxy_get_version)(struct wl_proxy* proxy); + + struct xkb_context* (*xkb_context_new)(enum xkb_context_flags flags); + void (*xkb_context_unref)(struct xkb_context* context); + struct xkb_state* (*xkb_state_new)(struct xkb_keymap* keymap); + void (*xkb_state_unref)(struct xkb_state* state); + struct xkb_keymap* (*xkb_keymap_new_from_string)(struct xkb_context* context, const char* string, enum xkb_keymap_format format, enum xkb_keymap_compile_flags flags); + xkb_level_index_t (*xkb_keymap_num_levels_for_key)(struct xkb_keymap* keymap, xkb_keycode_t key, xkb_layout_index_t layout); + int (*xkb_keymap_key_get_syms_by_level)(struct xkb_keymap* keymap, xkb_keycode_t key, xkb_layout_index_t layout, xkb_level_index_t level, const xkb_keysym_t** syms_out); + xkb_layout_index_t (*xkb_state_key_get_layout)(struct xkb_state* state, xkb_keycode_t key); + void (*xkb_keymap_unref)(struct xkb_keymap* keymap); + + void (*cairo_set_line_width)(cairo_t* cr, + double width); + void (*cairo_scale)(cairo_t* cr, + double sx, + double sy); + cairo_t* (*cairo_create)(cairo_surface_t* target); + void (*cairo_move_to)(cairo_t* cr, + double x, + double y); + + void (*cairo_rectangle)(cairo_t* cr, + double x, + double y, + double width, + double height); + void (*cairo_new_path)(cairo_t* cr); + void (*cairo_set_line_cap)(cairo_t* cr, + cairo_line_cap_t line_cap); + void (*cairo_set_source_rgba)(cairo_t* cr, + double red, + double green, + double blue, + double alpha); + void (*cairo_set_source_rgb)(cairo_t* cr, + double red, + double green, + double blue); + void (*cairo_reset_clip)(cairo_t* cr); + unsigned char* (*cairo_image_surface_get_data)(cairo_surface_t* surface); + void (*cairo_line_to)(cairo_t* cr, + double x, + double y); + void (*cairo_surface_destroy)(cairo_surface_t* surface); + cairo_surface_t* (*cairo_image_surface_create_for_data)(unsigned char* data, + cairo_format_t format, + int width, + int height, + int stride); + cairo_surface_t* (*cairo_image_surface_create)(cairo_format_t format, + int width, + int height); + void (*cairo_destroy)(cairo_t* cr); + cairo_pattern_t* (*cairo_get_source)(cairo_t* cr); + void (*cairo_close_path)(cairo_t* cr); + void (*cairo_paint)(cairo_t* cr); + void (*cairo_surface_flush)(cairo_surface_t* surface); + void (*cairo_clip)(cairo_t* cr); + void (*cairo_surface_mark_dirty)(cairo_surface_t* surface); + void (*cairo_stroke)(cairo_t* cr); + void (*cairo_set_source_surface)(cairo_t* cr, + cairo_surface_t* surface, + double x, + double y); + void (*cairo_fill)(cairo_t* cr); + void (*cairo_pattern_set_filter)(cairo_pattern_t* pattern, + cairo_filter_t filter); + +} wayland_call_table_t; + +extern wayland_call_table_t wl_call_tbl; + +/* defined inline right here so that it doesn't conflict with the other macros */ +MwInline int wayland_load_funcs() { + wl_call_tbl.lib = MwDynamicOpen("libwayland-client.so"); + if(!wl_call_tbl.lib) { + printf("(libwayland-client.so not found, falling back to X11)\n"); + return 1; + } + wl_call_tbl.xkb_lib = MwDynamicOpen("libxkbcommon.so"); + if(!wl_call_tbl.xkb_lib) { + printf("(libxkbcommon.so not found, cannot use Wayland backend.)\n"); + return 1; + } + wl_call_tbl.cairo_lib = MwDynamicOpen("libcairo.so"); + if(!wl_call_tbl.cairo_lib) { + printf("(libcairo.so not found, cannot use Wayland backend.)\n"); + return 1; + } +#define WAYLAND_FUNC(x) \ + wl_call_tbl.x = MwDynamicSymbol(wl_call_tbl.lib, #x); \ + if(!wl_call_tbl.x) { \ + printf("WARNING: Could use Wayland backend if " #x " was found.\n"); \ + return 1; \ + }; + + WAYLAND_FUNC(wl_display_dispatch_pending) + WAYLAND_FUNC(wl_display_disconnect) + WAYLAND_FUNC(wl_display_cancel_read) + WAYLAND_FUNC(wl_display_prepare_read) + WAYLAND_FUNC(wl_display_read_events) + WAYLAND_FUNC(wl_display_flush) + WAYLAND_FUNC(wl_display_get_fd) + WAYLAND_FUNC(wl_display_roundtrip) + WAYLAND_FUNC(wl_proxy_add_listener) + WAYLAND_FUNC(wl_proxy_destroy) + WAYLAND_FUNC(wl_log_set_handler_client) + WAYLAND_FUNC(wl_proxy_marshal_flags) + WAYLAND_FUNC(wl_display_connect) + WAYLAND_FUNC(wl_proxy_get_version) + +#undef WAYLAND_FUNC + +#define XKB_FUNC(x) \ + wl_call_tbl.x = MwDynamicSymbol(wl_call_tbl.xkb_lib, #x); \ + if(!wl_call_tbl.x) { \ + printf("WARNING: Could use Wayland backend if " #x " was found. Do you have libxkbcommon?\n"); \ + return 1; \ + }; + + XKB_FUNC(xkb_state_unref) + XKB_FUNC(xkb_context_new) + XKB_FUNC(xkb_context_unref) + XKB_FUNC(xkb_state_new) + XKB_FUNC(xkb_keymap_new_from_string) + XKB_FUNC(xkb_keymap_unref) + XKB_FUNC(xkb_keymap_num_levels_for_key) + XKB_FUNC(xkb_keymap_key_get_syms_by_level) + XKB_FUNC(xkb_state_key_get_layout) +#undef XKB_FUNC + +#define CAIRO_FUNC(x) \ + wl_call_tbl.x = MwDynamicSymbol(wl_call_tbl.cairo_lib, #x); \ + if(!wl_call_tbl.x) { \ + printf("WARNING: Could use Wayland backend if " #x " was found. Do you have libcairo?\n"); \ + return 1; \ + }; + + CAIRO_FUNC(cairo_set_line_width); + CAIRO_FUNC(cairo_scale); + CAIRO_FUNC(cairo_create); + CAIRO_FUNC(cairo_move_to); + CAIRO_FUNC(cairo_rectangle); + CAIRO_FUNC(cairo_new_path); + CAIRO_FUNC(cairo_set_line_cap); + CAIRO_FUNC(cairo_set_source_rgba); + CAIRO_FUNC(cairo_set_source_rgb); + CAIRO_FUNC(cairo_reset_clip); + CAIRO_FUNC(cairo_image_surface_get_data); + CAIRO_FUNC(cairo_line_to); + CAIRO_FUNC(cairo_surface_destroy); + CAIRO_FUNC(cairo_image_surface_create_for_data); + CAIRO_FUNC(cairo_image_surface_create); + CAIRO_FUNC(cairo_destroy); + CAIRO_FUNC(cairo_get_source); + CAIRO_FUNC(cairo_close_path); + CAIRO_FUNC(cairo_paint); + CAIRO_FUNC(cairo_surface_flush); + CAIRO_FUNC(cairo_clip); + CAIRO_FUNC(cairo_surface_mark_dirty); + CAIRO_FUNC(cairo_stroke); + CAIRO_FUNC(cairo_set_source_surface); + CAIRO_FUNC(cairo_fill); + CAIRO_FUNC(cairo_pattern_set_filter); +#undef CAIRO_FUNC + + return 0; +} + +#define wl_display_dispatch_pending wl_call_tbl.wl_display_dispatch_pending +#define wl_display_disconnect wl_call_tbl.wl_display_disconnect +#define wl_display_cancel_read wl_call_tbl.wl_display_cancel_read +#define wl_display_prepare_read wl_call_tbl.wl_display_prepare_read +#define wl_display_read_events wl_call_tbl.wl_display_read_events +#define wl_display_flush wl_call_tbl.wl_display_flush +#define wl_display_get_fd wl_call_tbl.wl_display_get_fd +#define wl_display_roundtrip wl_call_tbl.wl_display_roundtrip +#define wl_proxy_add_listener wl_call_tbl.wl_proxy_add_listener +#define wl_proxy_destroy wl_call_tbl.wl_proxy_destroy +#define wl_log_set_handler_client wl_call_tbl.wl_log_set_handler_client +#define wl_proxy_marshal_flags wl_call_tbl.wl_proxy_marshal_flags +#define wl_display_connect wl_call_tbl.wl_display_connect +#define wl_proxy_get_version wl_call_tbl.wl_proxy_get_version + +#define xkb_state_unref wl_call_tbl.xkb_state_unref +#define xkb_context_new wl_call_tbl.xkb_context_new +#define xkb_context_unref wl_call_tbl.xkb_context_unref +#define xkb_state_new wl_call_tbl.xkb_state_new +#define xkb_keymap_new_from_string wl_call_tbl.xkb_keymap_new_from_string +#define xkb_keymap_unref wl_call_tbl.xkb_keymap_unref +#define xkb_keymap_num_levels_for_key wl_call_tbl.xkb_keymap_num_levels_for_key +#define xkb_keymap_key_get_syms_by_level wl_call_tbl.xkb_keymap_key_get_syms_by_level +#define xkb_state_key_get_layout wl_call_tbl.xkb_state_key_get_layout + +#define cairo_set_line_width wl_call_tbl.cairo_set_line_width +#define cairo_scale wl_call_tbl.cairo_scale +#define cairo_create wl_call_tbl.cairo_create +#define cairo_move_to wl_call_tbl.cairo_move_to +#define cairo_rectangle wl_call_tbl.cairo_rectangle +#define cairo_new_path wl_call_tbl.cairo_new_path +#define cairo_set_line_cap wl_call_tbl.cairo_set_line_cap +#define cairo_set_source_rgba wl_call_tbl.cairo_set_source_rgba +#define cairo_set_source_rgb wl_call_tbl.cairo_set_source_rgb +#define cairo_reset_clip wl_call_tbl.cairo_reset_clip +#define cairo_image_surface_get_data wl_call_tbl.cairo_image_surface_get_data +#define cairo_line_to wl_call_tbl.cairo_line_to +#define cairo_surface_destroy wl_call_tbl.cairo_surface_destroy +#define cairo_image_surface_create_for_data wl_call_tbl.cairo_image_surface_create_for_data +#define cairo_image_surface_create wl_call_tbl.cairo_image_surface_create +#define cairo_destroy wl_call_tbl.cairo_destroy +#define cairo_get_source wl_call_tbl.cairo_get_source +#define cairo_close_path wl_call_tbl.cairo_close_path +#define cairo_paint wl_call_tbl.cairo_paint +#define cairo_surface_flush wl_call_tbl.cairo_surface_flush +#define cairo_clip wl_call_tbl.cairo_clip +#define cairo_surface_mark_dirty wl_call_tbl.cairo_surface_mark_dirty +#define cairo_stroke wl_call_tbl.cairo_stroke +#define cairo_set_source_surface wl_call_tbl.cairo_set_source_surface +#define cairo_fill wl_call_tbl.cairo_fill +#define cairo_pattern_set_filter wl_call_tbl.cairo_pattern_set_filter + #ifndef WL_PROTOCOLS_DEFINED #define WL_PROTOCOLS_DEFINED +#include "Wayland/wayland-core-protocol.h" #include "Wayland/xdg-shell-client-protocol.h" #include "Wayland/viewporter-client-protocol.h" #include "Wayland/xdg-decoration-client-protocol.h" @@ -31,16 +288,6 @@ MWDECL int MwLLWaylandCallInit(void); #include "Wayland/xdg-toplevel-icon-client-protocol.h" #endif -#define CSD_BORDER_FRAME_LEFT 5 -#define CSD_BORDER_FRAME_RIGHT 5 -#define CSD_BORDER_FRAME_TOP 24 -#define CSD_BORDER_FRAME_BOTTOM 5 - -#define CSD_LEFT_OFFSET(handle) handle->wayland.has_decorations ? 0 : CSD_BORDER_FRAME_LEFT -#define CSD_TOP_OFFSET(handle) handle->wayland.has_decorations ? 0 : CSD_BORDER_FRAME_TOP - -struct _MwLLWayland; - typedef struct wayland_protocol { void* listener; void* context; diff --git a/pl/rules.pl b/pl/rules.pl index a4ba7bfc8..81a1ecec7 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -29,13 +29,12 @@ if (grep(/^gdi$/, @backends)) { if (grep(/^wayland$/, @backends)) { add_cflags("-DUSE_WAYLAND"); new_object("src/backend/wayland.c"); - add_cflags(`pkg-config --cflags cairo wayland-client xkbcommon`); - add_libs(`pkg-config --libs cairo wayland-client xkbcommon`); if (param_get("opengl")) { - add_libs(`pkg-config --libs egl wayland-egl`); + add_cflags("-DWAYLAND_LOAD_OPENGL"); } + scan_wayland_protocol_core(); scan_wayland_protocol("stable", "xdg-shell", ""); scan_wayland_protocol("stable", "viewporter", ""); scan_wayland_protocol("stable", "tablet", "-v2"); diff --git a/pl/utils.pl b/pl/utils.pl index f2f722b05..77131a007 100644 --- a/pl/utils.pl +++ b/pl/utils.pl @@ -58,6 +58,35 @@ sub use_backend { } } + +sub scan_wayland_protocol_core { + my $proto_c = "src/backend/wayland-core-protocol.c"; + + if ( + system( +"wayland-scanner private-code /usr/share/wayland/wayland.xml ${proto_c}" + ) != 0 + ) + { + print( +"^ Error on getting private code for /usr/share/wayland/wayland.xml\n" + ); + } + else { + new_object($proto_c); + } + if ( + system( +"wayland-scanner client-header /usr/share/wayland/wayland.xml include/Mw/LowLevel/Wayland/wayland-core-protocol.h" + ) + ) + { + print( +"^ Error on getting client header for /usr/share/wayland/wayland.xml\n" + ); + } +} + sub scan_wayland_protocol { my $tier = $_[0]; my $proto = $_[1]; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 2b581c693..34c87cf22 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -19,6 +19,8 @@ #include #endif +wayland_call_table_t wl_call_tbl; + /* Standard procedure before most event callbacks in Wayland ("most" because the setup ones don't need this). Wait for the Mutex to be freed, if we're deadlocking for longer then a quarter of a second then do nothing with the event. */ #define WAYLAND_EVENT_OP_START(self) \ do { \ @@ -57,6 +59,8 @@ static void new_protocol(void* data, struct wl_registry* registry, MwU32 name, const char* interface, MwU32 version) { MwLL self = data; + (void)version; + (void)registry; WAYLAND_EVENT_OP_START(self); @@ -76,6 +80,9 @@ static void new_protocol(void* data, struct wl_registry* registry, static void protocol_removed(void* data, struct wl_registry* registry, MwU32 name) { + (void)data; + (void)registry; + (void)name; printf("%d destroyed\n", name); }; @@ -155,6 +162,7 @@ static void wl_data_device_data_offer(void* data, struct wl_data_device* wl_data_device, struct wl_data_offer* offer) { wl_clipboard_device_context_t* self = data; + (void)wl_data_device; wl_data_offer_add_listener(offer, &offer_listener, data); @@ -169,6 +177,11 @@ static void wl_data_device_enter(void* data, wl_fixed_t y, struct wl_data_offer* id) { MwLL self = data; + (void)wl_data_device; + (void)surface; + (void)x; + (void)y; + (void)id; WAYLAND_EVENT_OP_START(self); @@ -189,14 +202,24 @@ static void wl_data_device_motion(void* data, uint32_t time, wl_fixed_t x, wl_fixed_t y) { + (void)data; + (void)wl_data_device; + (void)time; + (void)x; + (void)y; }; static void wl_data_device_drop(void* data, struct wl_data_device* wl_data_device) { + (void)data; + (void)wl_data_device; }; static void wl_data_device_selection(void* data, struct wl_data_device* wl_data_device, struct wl_data_offer* id) { + (void)data; + (void)wl_data_device; + (void)id; }; struct wl_data_device_listener wl_data_device_listener = { @@ -212,6 +235,7 @@ static void zwp_primary_selection_device_v1_data_offer(void* data, struct zwp_primary_selection_device_v1* zwp_primary_selection_device_v1, struct zwp_primary_selection_offer_v1* offer) { wl_clipboard_device_context_t* self = data; + (void)zwp_primary_selection_device_v1; self->offer.zwp = offer; }; @@ -219,6 +243,9 @@ static void zwp_primary_selection_device_v1_data_offer(void* data, static void zwp_primary_selection_device_v1_selection(void* data, struct zwp_primary_selection_device_v1* zwp_primary_selection_device_v1, struct zwp_primary_selection_offer_v1* id) { + (void)data; + (void)zwp_primary_selection_device_v1; + (void)id; }; struct zwp_primary_selection_device_v1_listener zwp_primary_selection_device_v1_listener = { @@ -232,7 +259,6 @@ static void wl_clipboard_read(wl_clipboard_device_context_t* ctx) { char* buf = NULL; struct timeval timeout; int rc = 0; - int n; if(pipe(fds) != 0) { return; @@ -254,7 +280,6 @@ static void wl_clipboard_read(wl_clipboard_device_context_t* ctx) { wl_display_roundtrip(ctx->ll->wayland.display); while(MwTRUE) { - char ch; rc = select(fds[0] + 1, &set, NULL, NULL, &timeout); if(rc <= 0) { break; @@ -279,12 +304,17 @@ static void wl_clipboard_read(wl_clipboard_device_context_t* ctx) { static void wl_data_source_listener_target(void* data, struct wl_data_source* wl_data_source, const char* mime_type) { + (void)data; + (void)wl_data_source; + (void)mime_type; }; static void wl_data_source_listener_send(void* data, struct wl_data_source* wl_data_source, const char* mime_type, int32_t fd) { MwLL self = data; + (void)wl_data_source; + (void)mime_type; WAYLAND_EVENT_OP_START(self); if(self->wayland.clipboard_buffer != NULL) { @@ -328,6 +358,8 @@ static void zwp_primary_selection_source_v1_send(void* data, const char* mime_type, int32_t fd) { MwLL self = data; + (void)wl_data_source; + (void)mime_type; WAYLAND_EVENT_OP_START(self); @@ -341,6 +373,7 @@ static void zwp_primary_selection_source_v1_send(void* data, static void zwp_primary_selection_source_v1_cancelled(void* data, struct zwp_primary_selection_source_v1* wl_data_source) { MwLL self = data; + (void)wl_data_source; WAYLAND_EVENT_OP_START(self); @@ -380,6 +413,7 @@ static wayland_protocol_t* wl_data_device_manager_setup(MwU32 name, struct _MwLL } static void wl_data_device_manager_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)data; if(wayland->clipboard_manager.wl != NULL && !wayland->supports_zwp) { wl_data_device_manager_destroy(wayland->clipboard_manager.wl); wl_data_source_destroy(wayland->clipboard_source.wl); @@ -411,7 +445,8 @@ static wayland_protocol_t* zwp_primary_selection_device_manager_v1_setup(MwU32 n } static void zwp_primary_selection_device_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - // zwp_primary_selection_device_manager_v1_destroy(wayland->clipboard_manager.zwp); + (void)wayland; + (void)data; } /* `wl_pointer.enter` callback */ @@ -419,6 +454,8 @@ static void pointer_enter(void* data, struct wl_pointer* wl_pointer, MwU32 seria struct wl_surface* surface, wl_fixed_t surface_x, wl_fixed_t surface_y) { MwLL self = data; + (void)surface_x; + (void)surface_y; WAYLAND_EVENT_OP_START(self); self->wayland.curSurface = surface; @@ -433,6 +470,10 @@ static void pointer_enter(void* data, struct wl_pointer* wl_pointer, MwU32 seria /* `wl_pointer.leave` callback */ static void pointer_leave(void* data, struct wl_pointer* wl_pointer, MwU32 serial, struct wl_surface* surface) { + (void)data; + (void)wl_pointer; + (void)serial; + (void)surface; }; static void xdg_borderless_step(MwLL self, MwLLMouse p, MwU32 serial) { @@ -466,8 +507,8 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time wl_fixed_t surface_x, wl_fixed_t surface_y) { MwLL self = data; MwLLMouse p; - int i = 0; - MwWidget h = (MwWidget)self->common.user; + (void)time; + (void)wl_pointer; WAYLAND_EVENT_OP_START(self); @@ -488,8 +529,9 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri MwLL self = data; MwLLMouse p; - int x = self->wayland.x; - int y = self->wayland.y; + (void)wl_pointer; + (void)serial; + (void)time; WAYLAND_EVENT_OP_START(self); @@ -544,7 +586,13 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri /* `wl_pointer.axis` callback */ static void pointer_axis(void* data, struct wl_pointer* wl_pointer, MwU32 time, - MwU32 axis, wl_fixed_t value) {}; + MwU32 axis, wl_fixed_t value) { + (void)data; + (void)wl_pointer; + (void)time; + (void)axis; + (void)value; +}; struct wl_pointer_listener pointer_listener = { .enter = pointer_enter, @@ -561,6 +609,7 @@ static void keyboard_keymap(void* data, int32_t fd, MwU32 size) { MwLL self = data; + (void)wl_keyboard; if(self->wayland.type == MWLL_WAYLAND_TOPLEVEL) { struct _MwLLWaylandTopLevel* wayland = self->wayland.toplevel; @@ -589,6 +638,9 @@ static void keyboard_enter(void* data, struct wl_surface* surface, struct wl_array* keys) { MwLL self = data; + (void)wl_keyboard; + (void)surface; + (void)keys; WAYLAND_EVENT_OP_START(self); @@ -605,6 +657,9 @@ static void keyboard_leave(void* data, MwU32 serial, struct wl_surface* surface) { MwLL self = data; + (void)wl_keyboard; + (void)serial; + (void)surface; WAYLAND_EVENT_OP_START(self); @@ -621,6 +676,9 @@ static void keyboard_key(void* data, MwU32 key, MwU32 state) { MwLL self = data; + (void)wl_keyboard; + (void)serial; + (void)time; WAYLAND_EVENT_OP_START(self); @@ -726,6 +784,10 @@ static void keyboard_modifiers(void* data, MwU32 mods_locked, MwU32 group) { MwLL self = data; + (void)wl_keyboard; + (void)serial; + (void)group; + (void)mods_latched; WAYLAND_EVENT_OP_START(self); @@ -746,7 +808,11 @@ struct wl_keyboard_listener keyboard_listener = { /* `wl_seat.name` callback */ static void -wl_seat_name(void* data, struct wl_seat* wl_seat, const char* name) {}; +wl_seat_name(void* data, struct wl_seat* wl_seat, const char* name) { + (void)data; + (void)wl_seat; + (void)name; +}; /* `wl_seat.capabilities` callback */ static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat, @@ -797,14 +863,28 @@ static void output_geometry(void* data, int32_t subpixel, const char* make, const char* model, - int32_t transform) {}; + int32_t transform) { + (void)data; + (void)wl_output; + (void)x; + (void)y; + (void)physical_width; + (void)physical_height; + (void)subpixel; + (void)make; + (void)model; + (void)transform; +}; static void output_mode(void* data, struct wl_output* wl_output, uint32_t flags, int32_t width, int32_t height, int32_t refresh) { - MwLL self = data; + MwLL self = data; + (void)wl_output; + (void)flags; + (void)refresh; self->wayland.mw = width; self->wayland.mh = height; }; @@ -818,6 +898,7 @@ struct wl_output_listener output_listener = { void xdg_wm_base_ping(void* data, struct xdg_wm_base* xdg_wm_base, MwU32 serial) { + (void)data; xdg_wm_base_pong(xdg_wm_base, serial); }; @@ -835,6 +916,7 @@ static wayland_protocol_t* wl_seat_setup(MwU32 name, MwLL ll) { } static void wl_seat_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)wayland; free(data->listener); } @@ -847,6 +929,8 @@ static wayland_protocol_t* wl_output_setup(MwU32 name, MwLL ll) { } static void wl_output_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)wayland; + (void)data; } /* wl_compositor setup function */ @@ -857,6 +941,8 @@ static wayland_protocol_t* wl_compositor_setup(MwU32 name, struct _MwLLWayland* } static void wl_compositor_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)wayland; + (void)data; } /* wl_subcompositor setup function */ @@ -871,6 +957,7 @@ static wayland_protocol_t* wl_subcompositor_setup(MwU32 name, struct _MwLLWaylan } static void wl_subcompositor_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)data; wl_subcompositor_destroy(wayland->sublevel->subcompositor); } @@ -888,6 +975,7 @@ static wayland_protocol_t* xdg_wm_base_setup(MwU32 name, struct _MwLLWayland* wa } static void xdg_wm_base_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)wayland; free(data->listener); } @@ -900,7 +988,8 @@ static wayland_protocol_t* wp_viewporter_setup(MwU32 name, struct _MwLLWayland* } static void wp_viewporter_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - // free(data->listener); + (void)wayland; + (void)data; } /* the two decoration manager constructs */ @@ -924,6 +1013,8 @@ static wayland_protocol_t* zxdg_decoration_manager_v1_setup(MwU32 name, struct _ } static void zxdg_decoration_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)wayland; + (void)data; } /* Standard Wayland event loop. */ @@ -931,7 +1022,6 @@ static int event_loop(MwLL handle) { struct pollfd fd; struct timespec timeout; struct _MwLLWayland* wayland = &handle->wayland; - int res; timeout.tv_nsec = 1; timeout.tv_sec = 0; @@ -977,7 +1067,6 @@ static int event_loop(MwLL handle) { /* make the fuck sure that we're configurd */ static void hang_until_configured(MwLL handle) { - int i = 0; while(!handle->wayland.configured) { if(wl_display_roundtrip(handle->wayland.display) == -1) { printf("roundtrip failed\n"); @@ -993,9 +1082,9 @@ static void xdg_toplevel_configure(void* data, struct xdg_toplevel* xdg_toplevel, MwI32 width, MwI32 height, struct wl_array* states) { - MwLL self = data; - int i; - MwWidget h = ((MwWidget)self->common.user); + MwLL self = data; + (void)states; + (void)xdg_toplevel; /* Yes, somehow this can get called before */ if(!self->wayland.configured) { @@ -1029,16 +1118,11 @@ static void xdg_toplevel_configure(void* data, recursive_dispatch_resize(self); }; -/* Empty function for satisfying zxdg_toplevel's requirements */ -static void decoration_configure( - void* data, struct zxdg_toplevel_decoration_v1* zxdg_toplevel_decoration_v1, - MwU32 mode) { -} - /* `xdg_surface.close` callback */ static void xdg_toplevel_close( void* data, struct xdg_toplevel* xdg_toplevel) { MwLL self = data; + (void)xdg_toplevel; WAYLAND_EVENT_OP_START(self); MwLLDispatch(self, close, NULL); WAYLAND_EVENT_OP_END(self); @@ -1069,6 +1153,8 @@ static wayland_protocol_t* wl_shm_setup(MwU32 name, struct _MwLLWayland* wayland } static void wl_shm_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)wayland; + (void)data; } static void update_buffer(struct _MwLLWaylandShmBuffer* buffer) { @@ -1077,7 +1163,6 @@ static void update_buffer(struct _MwLLWaylandShmBuffer* buffer) { } static void buffer_setup(struct _MwLLWaylandShmBuffer* buffer, MwU32 width, MwU32 height) { - int x, y; int stride = width * 4; char temp_name[] = "/tmp/milsko-wl-shm-XXXXXX"; @@ -1215,6 +1300,7 @@ static wayland_protocol_t* xdg_toplevel_icon_manager_v1_setup(MwU32 name, struct } static void xdg_toplevel_icon_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)wayland; free(data->listener); } @@ -1256,8 +1342,6 @@ static void setup_callbacks(struct _MwLLWayland* wayland) { /* Toplevel setup function */ static void setup_toplevel(MwLL r, int x, int y) { - int i; - r->wayland.type = MWLL_WAYLAND_TOPLEVEL; r->wayland.toplevel = malloc(sizeof(struct _MwLLWaylandTopLevel)); r->wayland.x = x; @@ -1335,8 +1419,6 @@ static void setup_toplevel(MwLL r, int x, int y) { /* Toplevel destroy function */ static void destroy_toplevel(MwLL r) { - int i; - if(shget(r->wayland.wl_protocol_map, zxdg_decoration_manager_v1_interface.name) != NULL) { zxdg_decoration_manager_v1_context_t* dec = WAYLAND_GET_INTERFACE(r->wayland, zxdg_decoration_manager_v1)->context; zxdg_decoration_manager_v1_destroy(dec->manager); @@ -1428,6 +1510,7 @@ static void popup_configure(void* data, int32_t width, int32_t height) { MwLL self = data; + (void)xdg_popup; self->wayland.x = x; self->wayland.y = y; @@ -1437,6 +1520,8 @@ static void popup_configure(void* data, static void popup_done(void* data, struct xdg_popup* xdg_popup) { + (void)data; + (void)xdg_popup; }; struct xdg_popup_listener popup_listener = { @@ -1446,7 +1531,6 @@ struct xdg_popup_listener popup_listener = { /* Popup setup function */ static void setup_popup(MwLL r, int x, int y) { - int i; struct xdg_surface* xdg_surface; MwLL topmost_parent = r->wayland.parent; @@ -1529,24 +1613,12 @@ static void destroy_popup(MwLL r) { } static void clip(MwLL handle) { - MwLL parent = handle->wayland.parent; - MwLL topmost = parent; - int left_offset = 0; - int top_offset = 0; - + MwLL parent = handle->wayland.parent; if(parent && handle->wayland.type == MWLL_WAYLAND_SUBLEVEL) { cairo_reset_clip(handle->wayland.front_cairo); cairo_rectangle(handle->wayland.front_cairo, 0, 0, (parent->wayland.ww + handle->wayland.x), (parent->wayland.wh + handle->wayland.y)); cairo_clip(handle->wayland.front_cairo); } - // if(topmost && handle->wayland.type == MWLL_WAYLAND_SUBLEVEL) { - // cairo_reset_clip(handle->wayland.front_cairo); - // while(topmost->wayland.parent) topmost = topmost->wayland.parent; - // left_offset = topmost->wayland.has_decorations ? 0 : (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT); - // top_offset = topmost->wayland.has_decorations ? 0 : (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM); - // cairo_rectangle(handle->wayland.front_cairo, 0, 0, (topmost->wayland.ww + handle->wayland.x) - left_offset, (topmost->wayland.wh + handle->wayland.y) - top_offset); - // cairo_clip(handle->wayland.front_cairo); - // } } static void wl_logger(const char* fmt, va_list args) { @@ -1560,8 +1632,6 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { memset(r, 0, sizeof(*r)); MwLLCreateCommon(r); - wl_log_set_handler_client(wl_logger); - /* Wayland does not report global coordinates ever. Compositors are not even expected to have knowledge of this. */ r->common.coordinate_type = MwCoordinatesLocal; @@ -1677,9 +1747,6 @@ static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsign } static void MwLLSetXYImpl(MwLL handle, int x, int y) { - int i = 0; - MwWidget h = (MwWidget)handle->common.user; - region_invalidate(handle); handle->wayland.x = x; handle->wayland.y = y; @@ -1692,8 +1759,6 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { } static void MwLLSetWHImpl(MwLL handle, int w, int h) { - int i = 0; - MwWidget widget = (MwWidget)handle->common.user; region_invalidate(handle); /* Prevent an integer underflow when the w/h is too low */ @@ -1734,7 +1799,7 @@ static void MwLLBeginDrawImpl(MwLL handle) { } if(!handle->wayland.has_decorations) { - int x, y; + int x; MwU32 w = handle->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT; MwU32 h = handle->wayland.wh + CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM; cairo_set_line_width(handle->wayland.back_cairo, 4.0); @@ -1870,6 +1935,7 @@ static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { MwLLColor c = malloc(sizeof(*c)); + (void)handle; c->common.red = r; c->common.blue = b; @@ -1879,6 +1945,7 @@ static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { } static void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { + (void)handle; c->common.red = r; c->common.blue = b; c->common.green = g; @@ -1929,7 +1996,6 @@ static int MwLLPendingImpl(MwLL handle) { } static void MwLLNextEventImpl(MwLL handle) { - int i = 0; if(!handle->wayland.always_render) { if(handle->wayland.did_event_loop_early) { handle->wayland.did_event_loop_early = MwFALSE; @@ -1961,6 +2027,7 @@ static void MwLLSetTitleImpl(MwLL handle, const char* title) { static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) { MwLLPixmap r = malloc(sizeof(*r)); + (void)handle; r->common.width = width; r->common.height = height; @@ -2030,7 +2097,6 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { if(WAYLAND_GET_INTERFACE(handle->wayland, xdg_toplevel_icon_manager_v1) != NULL) { - void* map; struct xdg_toplevel_icon_manager_v1* icon_manager = WAYLAND_GET_INTERFACE(handle->wayland, xdg_toplevel_icon_manager_v1)->context; struct xdg_toplevel_icon_v1* icon = xdg_toplevel_icon_manager_v1_create_icon(icon_manager); MwU64 size = pixmap->common.width * pixmap->common.height * 4; @@ -2092,7 +2158,6 @@ static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { for(y = 0; y < mask->height; y++) { unsigned int d = mask->data[y]; for(x = mask->width - 1; x >= 0; x--) { - int px = 0; int idx = ((y * image->width) + x) * 4; if(d & 1) { @@ -2135,6 +2200,7 @@ static void MwLLDetachImpl(MwLL handle, MwPoint* point) { } static void MwLLShowImpl(MwLL handle, int show) { + (void)show; switch(handle->wayland.type) { case MWLL_WAYLAND_UNKNOWN: case MWLL_WAYLAND_TOPLEVEL: @@ -2147,6 +2213,9 @@ static void MwLLShowImpl(MwLL handle, int show) { } static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { + (void)handle; + (void)parent; + /* Wayland doesn't have "popups" in the Milsko sense persay. xdg_popup is closer to ToolWindow and as such is what we use there. So just like the Mac backend, this is just left alone. */ } static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) { @@ -2157,6 +2226,7 @@ static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int } static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { + (void)toggle; if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { if(WAYLAND_GET_INTERFACE(handle->wayland, zxdg_decoration_manager_v1) != NULL) { zxdg_decoration_manager_v1_context_t* dec = WAYLAND_GET_INTERFACE(handle->wayland, zxdg_decoration_manager_v1)->context; @@ -2171,10 +2241,14 @@ static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { } static void MwLLFocusImpl(MwLL handle) { + (void)handle; printf("[WARNING] MwLLFocus not supported on Wayland\n"); } static void MwLLGrabPointerImpl(MwLL handle, int toggle) { + (void)handle; + (void)toggle; + printf("[WARNING] MwLLGrabPointer not supported on Wayland\n"); } static void MwLLSetClipboardImpl(MwLL handle, const char* text) { @@ -2200,6 +2274,7 @@ static void MwLLSetClipboardImpl(MwLL handle, const char* text) { } static void MwLLGetClipboardImpl(MwLL handle) { + (void)handle; /* no-op */ return; } @@ -2255,11 +2330,16 @@ static void MwLLEndStateChangeImpl(MwLL handle) { static int MwLLWaylandCallInitImpl(void) { #ifdef __linux__ - if(strcmp(getenv("XDG_SESSION_TYPE"), "wayland")) { - return 1; + if(strcmp(getenv("XDG_SESSION_TYPE"), "wayland") == 0) { + if(wayland_load_funcs()) { + return 1; + } + wl_log_set_handler_client(wl_logger); + + return 0; } #endif - return 0; + return 1; } #include "call.c" diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 7d685ada6..59e3a4052 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -57,6 +57,47 @@ typedef struct waylandopengl { EGLContext egl_context; EGLSurface egl_surface; EGLConfig egl_config; + + void* gllib; + void* wlgllib; + EGLBoolean (*eglGetConfigs)(EGLDisplay display, + EGLConfig* configs, + EGLint config_size, + EGLint* num_config); + EGLBoolean (*eglInitialize)(EGLDisplay display, + EGLint* major, + EGLint* minor); + EGLContext (*eglCreateContext)(EGLDisplay display, + EGLConfig config, + EGLContext share_context, + EGLint const* attrib_list); + EGLBoolean (*eglMakeCurrent)(EGLDisplay display, + EGLSurface draw, + EGLSurface read, + EGLContext context); + void* (*eglGetProcAddress)(char const* procname); + EGLBoolean (*eglSwapBuffers)(EGLDisplay display, + EGLSurface surface); + EGLBoolean (*eglSwapInterval)(EGLDisplay display, + EGLint interval); + EGLint (*eglGetError)(void); + EGLBoolean (*eglBindAPI)(EGLenum api); + EGLDisplay (*eglGetDisplay)(NativeDisplayType native_display); + EGLSurface (*eglCreateWindowSurface)(EGLDisplay display, + EGLConfig config, + NativeWindowType native_window, + EGLint const* attrib_list); + EGLBoolean (*eglChooseConfig)(EGLDisplay display, + EGLint const* attrib_list, + EGLConfig* configs, + EGLint config_size, + EGLint* num_config); + + struct wl_egl_window* (*wl_egl_window_create)(struct wl_surface* surface, + int width, int height); + void (*wl_egl_window_resize)(struct wl_egl_window* egl_window, + int width, int height, + int dx, int dy); } waylandopengl_t; #endif @@ -136,7 +177,6 @@ static int create(MwWidget handle) { #endif #ifdef USE_WAYLAND if(handle->lowlevel->common.type == MwLLBackendWayland) { - int err; EGLint numConfigs; EGLint majorVersion; EGLint minorVersion; @@ -174,6 +214,58 @@ static int create(MwWidget handle) { topmost_parent = topmost_parent->wayland.parent; } + o->gllib = MwDynamicOpen("libEGL.so"); + if(!o->gllib) { + printf("Could not load OpenGL widget under Wayland! libEGL.so missing.\n"); + return 1; + } + o->wlgllib = MwDynamicOpen("libwayland-egl.so"); + if(!o->gllib) { + printf("Could not load OpenGL widget under Wayland! libwayland-egl.so missing.\n"); + return 1; + } +#define EGL_FUNC(x) \ + o->x = MwDynamicSymbol(o->gllib, #x); \ + if(!o->x) { \ + printf("Could not load OpenGL widget under Wayland! " #x " missing.\n"); \ + return 1; \ + }; +#define WAYLAND_EGL_FUNC(x) \ + o->x = MwDynamicSymbol(o->wlgllib, #x); \ + if(!o->x) { \ + printf("Could not load OpenGL widget under Wayland! " #x " missing.\n"); \ + return 1; \ + }; + EGL_FUNC(eglGetConfigs) + EGL_FUNC(eglInitialize) + EGL_FUNC(eglCreateContext) + EGL_FUNC(eglMakeCurrent) + EGL_FUNC(eglGetProcAddress) + EGL_FUNC(eglSwapBuffers) + EGL_FUNC(eglSwapInterval) + EGL_FUNC(eglGetError) + EGL_FUNC(eglBindAPI) + EGL_FUNC(eglGetDisplay) + EGL_FUNC(eglCreateWindowSurface) + EGL_FUNC(eglChooseConfig) + WAYLAND_EGL_FUNC(wl_egl_window_create) + WAYLAND_EGL_FUNC(wl_egl_window_resize) + +#define eglGetConfigs o->eglGetConfigs +#define eglInitialize o->eglInitialize +#define eglCreateContext o->eglCreateContext +#define eglMakeCurrent o->eglMakeCurrent +#define eglGetProcAddress o->eglGetProcAddress +#define eglSwapBuffers o->eglSwapBuffers +#define eglSwapInterval o->eglSwapInterval +#define eglGetError o->eglGetError +#define wl_egl_window_create o->wl_egl_window_create +#define eglBindAPI o->eglBindAPI +#define eglGetDisplay o->eglGetDisplay +#define wl_egl_window_resize o->wl_egl_window_resize +#define eglCreateWindowSurface o->eglCreateWindowSurface +#define eglChooseConfig o->eglChooseConfig + display = eglGetDisplay((EGLNativeDisplayType)handle->lowlevel->wayland.display); if(display == EGL_NO_DISPLAY) { @@ -391,6 +483,7 @@ static void* mwOpenGLGetProcAddressImpl(MwWidget handle, const char* name) { #endif #ifdef USE_WAYLAND if(handle->lowlevel->common.type == MwLLBackendWayland) { + waylandopengl_t* o = handle->internal; return eglGetProcAddress(name); } #endif From 7162350e248b08190c3331526ac9530ab5350108 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 24 Mar 2026 17:39:25 -0700 Subject: [PATCH 248/836] use-experimental-wayland => use-wayland --- configure | 4 ++-- pl/ostype/Linux.pl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configure b/configure index 5ffbe544d..1c06c0d65 100755 --- a/configure +++ b/configure @@ -58,7 +58,7 @@ my %features = ( "vulkan-string-helper" => "use Vulkan string helper", "shared" => "build shared library", "static" => "build static library", - "experimental-wayland" => "enable WIP wayland backend", + "wayland" => "enable ayland backend", ); my @features_keys = ( "1classic-theme", "1stb-image", @@ -66,7 +66,7 @@ my @features_keys = ( "1opengl", "2xrender", "1vulkan", "2vulkan-string-helper", "1shared", "1static", - "1experimental-wayland" + "1wayland" ); foreach my $l (@ARGV) { diff --git a/pl/ostype/Linux.pl b/pl/ostype/Linux.pl index 155cd4aaf..88adcf838 100644 --- a/pl/ostype/Linux.pl +++ b/pl/ostype/Linux.pl @@ -1,4 +1,4 @@ -if (param_get("experimental-wayland")) { +if (param_get("wayland")) { use_backend("wayland", "x11"); } else { From aad8d1b536d92a43ffc772547d9af283271d8219 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 24 Mar 2026 18:01:55 -0700 Subject: [PATCH 249/836] wayland: combo box consistently shows up now --- src/backend/wayland.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 34c87cf22..40a24739c 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -2322,6 +2322,21 @@ static void MwLLEndStateChangeImpl(MwLL handle) { setup_toplevel(handle, handle->wayland.detach_point.x, handle->wayland.detach_point.y); break; } + + // framebuffer_setup(&handle->wayland); + // backbuffer_setup(&handle->wayland); + + handle->wayland.region = wl_compositor_create_region(handle->wayland.compositor); + handle->wayland.o_region = wl_compositor_create_region(handle->wayland.compositor); + region_setup(handle); + + MwLLForceRender(handle); + if(handle->wayland.parent != NULL) { + MwLLForceRender(handle->wayland.parent); + } + + handle->wayland.events_pending = 1; + handle->wayland.detatching = MwFALSE; } From 2a7327f27a40e1b4031b45d61a597ba2101a084f Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 24 Mar 2026 19:42:34 -0700 Subject: [PATCH 250/836] wayland: update backbuffer on enddraw --- src/backend/wayland.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 40a24739c..b83c799e8 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1889,6 +1889,7 @@ static void MwLLEndDrawImpl(MwLL handle) { if(handle->wayland.configured) { update_buffer(&handle->wayland.framebuffer); if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + update_buffer(&handle->wayland.backbuffer); } } } From 195cccd65a6417a6cf235a7eaba5b31ad4ff637e Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 24 Mar 2026 22:40:36 -0700 Subject: [PATCH 251/836] perfect MwLLDetach --- include/Mw/LowLevel/Wayland.h | 2 - src/backend/wayland.c | 69 +++++++++++++++++++++-------------- 2 files changed, 41 insertions(+), 30 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index a6f225437..778826140 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -479,8 +479,6 @@ struct _MwLLWayland { MwBool moving; - struct wl_surface* curSurface; - cairo_surface_t* front_cs; cairo_surface_t* back_cs; cairo_t* front_cairo; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index b83c799e8..f400b3086 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -449,6 +449,8 @@ static void zwp_primary_selection_device_manager_v1_interface_destroy(struct _Mw (void)data; } +static struct wl_surface* curSurface; + /* `wl_pointer.enter` callback */ static void pointer_enter(void* data, struct wl_pointer* wl_pointer, MwU32 serial, struct wl_surface* surface, wl_fixed_t surface_x, @@ -458,7 +460,7 @@ static void pointer_enter(void* data, struct wl_pointer* wl_pointer, MwU32 seria (void)surface_y; WAYLAND_EVENT_OP_START(self); - self->wayland.curSurface = surface; + curSurface = surface; self->wayland.pointer_serial = serial; @@ -477,7 +479,7 @@ static void pointer_leave(void* data, struct wl_pointer* wl_pointer, MwU32 seria }; static void xdg_borderless_step(MwLL self, MwLLMouse p, MwU32 serial) { - if(self->wayland.type == MWLL_WAYLAND_TOPLEVEL && self->wayland.backbuffer.surface == self->wayland.curSurface) { + if(self->wayland.type == MWLL_WAYLAND_TOPLEVEL && self->wayland.backbuffer.surface == curSurface) { if(p.point.y >= (self->wayland.wh + CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM) - 5) { if(p.point.x >= (self->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT) - 5) { xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_BOTTOM_RIGHT); @@ -539,8 +541,8 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri // p.point.x > x && p.point.x < x + self->wayland.ww && p.point.y > y && p.point.y < y + self->wayland.wh if( - self->wayland.framebuffer.surface == self->wayland.curSurface || - self->wayland.backbuffer.surface == self->wayland.curSurface) { + self->wayland.framebuffer.surface == curSurface || + self->wayland.backbuffer.surface == curSurface) { int i; switch(button) { @@ -1108,9 +1110,9 @@ static void xdg_toplevel_configure(void* data, backbuffer_destroy(&self->wayland); backbuffer_setup(&self->wayland); - framebuffer_destroy(&self->wayland); framebuffer_setup(&self->wayland); + region_setup(self); MwLLDispatch(self, resize, NULL); @@ -1261,7 +1263,7 @@ static void region_setup(MwLL handle) { return; } - wl_region_add(handle->wayland.o_region, 0, 0, 1, 1); + wl_region_add(handle->wayland.o_region, 0, 0, width, height); if(handle->wayland.type == MWLL_WAYLAND_POPUP) { wl_region_add(handle->wayland.region, 0, 0, width + abs(handle->wayland.x), height + abs(handle->wayland.y)); @@ -1626,12 +1628,7 @@ static void wl_logger(const char* fmt, va_list args) { raise(SIGTRAP); } -static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { - MwLL r; - r = malloc(sizeof(*r)); - memset(r, 0, sizeof(*r)); - MwLLCreateCommon(r); - +static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int height, enum _MwLLWaylandType ty) { /* Wayland does not report global coordinates ever. Compositors are not even expected to have knowledge of this. */ r->common.coordinate_type = MwCoordinatesLocal; @@ -1654,10 +1651,26 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->wayland.y = y; r->wayland.parent = parent; - if(parent == NULL) { - setup_toplevel(r, x, y); + if(ty == MWLL_WAYLAND_UNKNOWN) { + if(parent == NULL) { + setup_toplevel(r, x, y); + } else { + setup_sublevel(parent, r, x, y); + } } else { - setup_sublevel(parent, r, x, y); + switch(ty) { + case MWLL_WAYLAND_UNKNOWN: + break; + case MWLL_WAYLAND_TOPLEVEL: + setup_toplevel(r, x, y); + break; + case MWLL_WAYLAND_SUBLEVEL: + setup_sublevel(parent, r, x, y); + break; + case MWLL_WAYLAND_POPUP: + setup_popup(r, x, y); + break; + } } framebuffer_setup(&r->wayland); @@ -1671,6 +1684,14 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { if(parent != NULL) { MwLLForceRender(parent); } +} +static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { + MwLL r; + r = malloc(sizeof(*r)); + memset(r, 0, sizeof(*r)); + MwLLCreateCommon(r); + + widget_setup(r, parent, x, y, width, height, MWLL_WAYLAND_UNKNOWN); return r; } @@ -1887,10 +1908,10 @@ static void MwLLBeginDrawImpl(MwLL handle) { static void MwLLEndDrawImpl(MwLL handle) { if(handle->wayland.configured) { - update_buffer(&handle->wayland.framebuffer); if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { update_buffer(&handle->wayland.backbuffer); } + update_buffer(&handle->wayland.framebuffer); } } @@ -2303,6 +2324,7 @@ static void MwLLEndStateChangeImpl(MwLL handle) { if(handle->wayland.detatching) { switch(handle->wayland.type) { case MWLL_WAYLAND_UNKNOWN: + break; case MWLL_WAYLAND_TOPLEVEL: destroy_toplevel(handle); break; @@ -2310,22 +2332,13 @@ static void MwLLEndStateChangeImpl(MwLL handle) { destroy_sublevel(handle); break; case MWLL_WAYLAND_POPUP: - return; + destroy_popup(handle); + break; } wl_flush(handle); - switch(handle->wayland.type_to_be) { - case MWLL_WAYLAND_POPUP: - setup_popup(handle, handle->wayland.detach_point.x, handle->wayland.detach_point.y); - break; - default: - setup_toplevel(handle, handle->wayland.detach_point.x, handle->wayland.detach_point.y); - break; - } - - // framebuffer_setup(&handle->wayland); - // backbuffer_setup(&handle->wayland); + widget_setup(handle, handle->wayland.parent, handle->wayland.detach_point.x, handle->wayland.detach_point.y, handle->wayland.ww, handle->wayland.wh, handle->wayland.type_to_be); handle->wayland.region = wl_compositor_create_region(handle->wayland.compositor); handle->wayland.o_region = wl_compositor_create_region(handle->wayland.compositor); From a826ce5e12ad22949d4861c2b3c2aab2de9ae74d Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 24 Mar 2026 23:08:43 -0700 Subject: [PATCH 252/836] GOD IS GOOD --- src/backend/wayland.c | 76 ++++++++++++++++++++++++++++++------------- 1 file changed, 54 insertions(+), 22 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index f400b3086..26b359110 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1238,7 +1238,7 @@ static void backbuffer_setup(struct _MwLLWayland* wayland) { wayland->back_cs = cairo_image_surface_create_for_data(wayland->backbuffer.buf, CAIRO_FORMAT_ARGB32, w, h, 4 * w); wayland->back_cairo = cairo_create(wayland->back_cs); - memset(wayland->backbuffer.buf, 0, wayland->backbuffer.buf_size); + memset(wayland->backbuffer.buf, 255, wayland->backbuffer.buf_size); hang_until_configured((MwLL)wayland); update_buffer(&wayland->backbuffer); }; @@ -1532,13 +1532,14 @@ struct xdg_popup_listener popup_listener = { }; /* Popup setup function */ -static void setup_popup(MwLL r, int x, int y) { +static void setup_popup(MwLL r, int x, int y, MwLL parent) { struct xdg_surface* xdg_surface; MwLL topmost_parent = r->wayland.parent; - r->wayland.type = MWLL_WAYLAND_POPUP; - r->wayland.x = x; - r->wayland.y = y; + r->wayland.type = MWLL_WAYLAND_POPUP; + r->wayland.x = x; + r->wayland.y = y; + r->wayland.popup = malloc(sizeof(struct _MwLLWaylandPopup)); while(topmost_parent->wayland.type != MWLL_WAYLAND_TOPLEVEL) { topmost_parent = topmost_parent->wayland.parent; @@ -1548,12 +1549,11 @@ static void setup_popup(MwLL r, int x, int y) { r->wayland.y += ceil((float)CSD_BORDER_FRAME_TOP / 2.); } - r->wayland.popup = malloc(sizeof(struct _MwLLWaylandPopup)); - memset(r->wayland.popup, 0, sizeof(struct _MwLLWaylandPopup)); - r->wayland.popup->topmost_parent = topmost_parent; - setup_callbacks(&r->wayland); + /* Connect to the Wayland compositor */ + r->wayland.display = parent->wayland.display; + /* Do a roundtrip to ensure all interfaces are setup. */ r->wayland.registry = wl_display_get_registry(r->wayland.display); wl_registry_add_listener(r->wayland.registry, &r->wayland.registry_listener, r); @@ -1563,7 +1563,12 @@ static void setup_popup(MwLL r, int x, int y) { return; } - r->wayland.popup->xdg_wm_base = WAYLAND_GET_INTERFACE(topmost_parent->wayland, xdg_wm_base)->context; + /* check now if we have decorations so that everything else can act accordingly */ + if(shget(r->wayland.wl_protocol_map, zxdg_decoration_manager_v1_interface.name) != NULL) { + r->wayland.has_decorations = MwTRUE; + } + + r->wayland.popup->xdg_wm_base = WAYLAND_GET_INTERFACE(r->wayland, xdg_wm_base)->context; r->wayland.popup->xdg_positioner = xdg_wm_base_create_positioner(r->wayland.popup->xdg_wm_base); @@ -1577,7 +1582,7 @@ static void setup_popup(MwLL r, int x, int y) { r->wayland.framebuffer.surface = wl_compositor_create_surface(r->wayland.compositor); r->wayland.popup->xdg_surface = - xdg_wm_base_get_xdg_surface(r->wayland.popup->xdg_wm_base, r->wayland.framebuffer.surface); + xdg_wm_base_get_xdg_surface(WAYLAND_GET_INTERFACE(r->wayland, xdg_wm_base)->context, r->wayland.framebuffer.surface); r->wayland.popup->xdg_popup = xdg_surface_get_popup( r->wayland.popup->xdg_surface, @@ -1587,16 +1592,13 @@ static void setup_popup(MwLL r, int x, int y) { xdg_popup_add_listener(r->wayland.popup->xdg_popup, &popup_listener, r); r->wayland.popup->xdg_surface_listener.configure = xdg_surface_configure; - xdg_surface_add_listener(r->wayland.popup->xdg_surface, &r->wayland.popup->xdg_surface_listener, r); /* Perform the initial commit and wait for the first configure event */ wl_surface_commit(r->wayland.framebuffer.surface); - event_loop(r); - - // framebuffer_destroy(&r->wayland); - framebuffer_setup(&r->wayland); - backbuffer_setup(&r->wayland); + while(!r->wayland.configured) { + event_loop(r); + } } /* Popup destroy function */ @@ -1668,7 +1670,7 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh setup_sublevel(parent, r, x, y); break; case MWLL_WAYLAND_POPUP: - setup_popup(r, x, y); + setup_popup(r, x, y, parent); break; } } @@ -1758,6 +1760,10 @@ static void MwLLDestroyImpl(MwLL handle) { shfree(handle->wayland.wl_protocol_setup_map); free(handle); + + if(currentlyHeldWidget == handle) { + currentlyHeldWidget = NULL; + } } static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h) { @@ -1799,7 +1805,7 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { if(handle->wayland.type == MWLL_WAYLAND_POPUP) { destroy_popup(handle); wl_flush(handle); - setup_popup(handle, handle->wayland.x, handle->wayland.y); + setup_popup(handle, handle->wayland.x, handle->wayland.y, handle->wayland.parent); } refresh: @@ -2322,6 +2328,11 @@ static void MwLLBeginStateChangeImpl(MwLL handle) { static void MwLLEndStateChangeImpl(MwLL handle) { if(handle->wayland.detatching) { + MwLL topmost_parent = handle->wayland.parent; + + while(topmost_parent->wayland.type != MWLL_WAYLAND_TOPLEVEL) { + topmost_parent = topmost_parent->wayland.parent; + } switch(handle->wayland.type) { case MWLL_WAYLAND_UNKNOWN: break; @@ -2338,11 +2349,32 @@ static void MwLLEndStateChangeImpl(MwLL handle) { wl_flush(handle); + handle->wayland.detach_point.x += 4; + handle->wayland.detach_point.y += 4; + widget_setup(handle, handle->wayland.parent, handle->wayland.detach_point.x, handle->wayland.detach_point.y, handle->wayland.ww, handle->wayland.wh, handle->wayland.type_to_be); - handle->wayland.region = wl_compositor_create_region(handle->wayland.compositor); - handle->wayland.o_region = wl_compositor_create_region(handle->wayland.compositor); - region_setup(handle); + if(handle->common.user) { + MwWidget w = handle->common.user; + int i; + for(i = 0; i < arrlen(w->children); i++) { + if(w->children[i]->lowlevel->wayland.type == MWLL_WAYLAND_SUBLEVEL) { + MwLL child = w->children[i]->lowlevel; + child->wayland.sublevel->parent_xdg_surface = handle->wayland.popup->xdg_surface; + wl_subsurface_destroy(child->wayland.sublevel->subsurface); + wl_flush(handle); + + child->wayland.sublevel->subsurface = wl_subcompositor_get_subsurface(child->wayland.sublevel->subcompositor, child->wayland.framebuffer.surface, handle->wayland.framebuffer.surface); + wl_subsurface_set_desync(child->wayland.sublevel->subsurface); + wl_subsurface_set_position(child->wayland.sublevel->subsurface, child->wayland.x, child->wayland.y); + + wl_subsurface_place_above(child->wayland.sublevel->subsurface, handle->wayland.framebuffer.surface); + MwLLEndStateChangeImpl(w->children[i]->lowlevel); + + currentlyHeldWidget = NULL; + } + } + } MwLLForceRender(handle); if(handle->wayland.parent != NULL) { From 9757623d3c28996363f630008e20699981b670f4 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 24 Mar 2026 23:24:20 -0700 Subject: [PATCH 253/836] make always_render a global variable, MwWaylandAlwaysRender --- include/Mw/LowLevel/Wayland.h | 4 +--- src/backend/wayland.c | 11 ++++++----- src/widget/opengl.c | 11 +++-------- 3 files changed, 10 insertions(+), 16 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 778826140..95e84eb94 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -127,7 +127,7 @@ typedef struct wayland_call_table { } wayland_call_table_t; extern wayland_call_table_t wl_call_tbl; - +extern MwBool MwWaylandAlwaysRender; /* defined inline right here so that it doesn't conflict with the other macros */ MwInline int wayland_load_funcs() { wl_call_tbl.lib = MwDynamicOpen("libwayland-client.so"); @@ -405,8 +405,6 @@ struct _MwLLWayland { wayland_protocol_t* value; }* wl_protocol_map; - MwBool always_render; - MwBool has_decorations; char title[255]; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 26b359110..5e4e76792 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -20,6 +20,7 @@ #endif wayland_call_table_t wl_call_tbl; +MwBool MwWaylandAlwaysRender = MwFALSE; /* Standard procedure before most event callbacks in Wayland ("most" because the setup ones don't need this). Wait for the Mutex to be freed, if we're deadlocking for longer then a quarter of a second then do nothing with the event. */ #define WAYLAND_EVENT_OP_START(self) \ @@ -770,7 +771,7 @@ static void keyboard_key(void* data, } } - if(!self->wayland.always_render) { + if(!MwWaylandAlwaysRender) { MwLLDispatch(self, draw, NULL); } @@ -1999,17 +2000,17 @@ static int MwLLPendingImpl(MwLL handle) { handle->wayland.did_initial_resize = 1; } - if(!handle->wayland.always_render) wl_display_prepare_read(handle->wayland.display); + if(!MwWaylandAlwaysRender) wl_display_prepare_read(handle->wayland.display); if(!poll(&fd, 1, timeout.tv_nsec)) { wl_display_cancel_read(handle->wayland.display); } else { - if(!handle->wayland.always_render) wl_display_read_events(handle->wayland.display); + if(!MwWaylandAlwaysRender) wl_display_read_events(handle->wayland.display); if((pending = wl_display_dispatch_pending(handle->wayland.display)) < 0) { wl_display_cancel_read(handle->wayland.display); } } - if(handle->wayland.always_render) { + if(MwWaylandAlwaysRender) { handle->wayland.did_event_loop_early = MwTRUE; event_loop(handle); return pending; @@ -2024,7 +2025,7 @@ static int MwLLPendingImpl(MwLL handle) { } static void MwLLNextEventImpl(MwLL handle) { - if(!handle->wayland.always_render) { + if(!MwWaylandAlwaysRender) { if(handle->wayland.did_event_loop_early) { handle->wayland.did_event_loop_early = MwFALSE; } else { diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 59e3a4052..0afbe9ac7 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -205,14 +205,9 @@ static int create(MwWidget handle) { 1, EGL_NONE}; EGLDisplay display; - waylandopengl_t* o = r = malloc(sizeof(*o)); - MwLL topmost_parent = handle->lowlevel->wayland.parent; - handle->lowlevel->wayland.always_render = MwTRUE; - - while(topmost_parent->wayland.parent != NULL) { - topmost_parent->wayland.always_render = MwTRUE; - topmost_parent = topmost_parent->wayland.parent; - } + waylandopengl_t* o = r = malloc(sizeof(*o)); + MwLL topmost_parent = handle->lowlevel->wayland.parent; + MwWaylandAlwaysRender = MwTRUE; o->gllib = MwDynamicOpen("libEGL.so"); if(!o->gllib) { From f4e2ec8fa93b0f7f8f8fe326aacafb9c2d0d8a72 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 24 Mar 2026 23:44:30 -0700 Subject: [PATCH 254/836] h --- include/Mw/LowLevel/Wayland.h | 4 ++++ pl/rules.pl | 1 + src/backend/wayland.c | 25 +++++++++++++++++-------- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 95e84eb94..bc8ce1ff2 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -285,6 +285,7 @@ MwInline int wayland_load_funcs() { #include "Wayland/xdg-decoration-client-protocol.h" #include "Wayland/cursor-shape-client-protocol.h" #include "Wayland/primary-selection-client-protocol.h" +#include "Wayland/pointer-constraints-client-protocol.h" #include "Wayland/xdg-toplevel-icon-client-protocol.h" #endif @@ -418,6 +419,9 @@ struct _MwLLWayland { struct wp_viewport* vp; + struct zwp_pointer_constraints_v1* pointer_constraints; + struct zwp_locked_pointer_v1* locked_pointer; + /* clipboard related stuff. * Note that unlike most interfaces, we don't keep zwp_primary_selection stuff in a wayland_protocol_t because we use wl_data_device as a fallback and want to have it share memory space.*/ diff --git a/pl/rules.pl b/pl/rules.pl index 81a1ecec7..5433a1764 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -42,6 +42,7 @@ if (grep(/^wayland$/, @backends)) { scan_wayland_protocol("staging", "cursor-shape", "-v1"); scan_wayland_protocol("unstable", "xdg-decoration", "-unstable-v1"); scan_wayland_protocol("unstable", "primary-selection", "-unstable-v1"); + scan_wayland_protocol("unstable", "pointer-constraints", "-unstable-v1"); $gl_libs = "-lGL -lGLU"; } diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 5e4e76792..4d7f72aca 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -5,11 +5,6 @@ #include "../../external/stb_ds.h" -/* TODO: - * - MwLLMakePopupImpl - * - MwLLShowImpl - */ - /* TODO: find out what FreeBSD and such wants us to include */ #ifdef __FreeBSD__ /* XXX: Untested (nishi) */ @@ -450,6 +445,17 @@ static void zwp_primary_selection_device_manager_v1_interface_destroy(struct _Mw (void)data; } +/* zwp_primary_selection_device_manager_v1 setup function */ +static wayland_protocol_t* zwp_pointer_constraints_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { + wayland->pointer_constraints = wl_registry_bind(wayland->registry, name, &zwp_pointer_constraints_v1_interface, 1); + return NULL; +} + +static void zwp_pointer_constraints_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)wayland; + (void)data; +} + static struct wl_surface* curSurface; /* `wl_pointer.enter` callback */ @@ -1329,6 +1335,7 @@ static void setup_callbacks(struct _MwLLWayland* wayland) { WL_INTERFACE(wl_output); WL_INTERFACE(wl_data_device_manager); WL_INTERFACE(zwp_primary_selection_device_manager_v1); + WL_INTERFACE(zwp_pointer_constraints_v1); if(wayland->type == MWLL_WAYLAND_TOPLEVEL) { WL_INTERFACE(xdg_wm_base); WL_INTERFACE(wp_viewporter); @@ -2275,9 +2282,11 @@ static void MwLLFocusImpl(MwLL handle) { } static void MwLLGrabPointerImpl(MwLL handle, int toggle) { - (void)handle; - (void)toggle; - printf("[WARNING] MwLLGrabPointer not supported on Wayland\n"); + if(handle->wayland.pointer_constraints) { + handle->wayland.locked_pointer = zwp_pointer_constraints_v1_lock_pointer(handle->wayland.pointer_constraints, handle->wayland.framebuffer.surface, handle->wayland.pointer, handle->wayland.region, ZWP_POINTER_CONSTRAINTS_V1_LIFETIME_PERSISTENT); + } else { + printf("[WARNING] MwLLGrabPointer not supported in Wayland session, zwp_pointer_constraints_v1 required.\n"); + } } static void MwLLSetClipboardImpl(MwLL handle, const char* text) { From 4b2bf63889e9a2bc05cc153ec7660497b1ae0024 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 25 Mar 2026 00:31:23 -0700 Subject: [PATCH 255/836] wayland: support pointer locking --- include/Mw/LowLevel/Wayland.h | 2 ++ src/backend/wayland.c | 47 ++++++++++++++++++++++++----------- 2 files changed, 35 insertions(+), 14 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index bc8ce1ff2..c24ce3cec 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -419,8 +419,10 @@ struct _MwLLWayland { struct wp_viewport* vp; + MwBool do_lock_pointer; struct zwp_pointer_constraints_v1* pointer_constraints; struct zwp_locked_pointer_v1* locked_pointer; + MwBool pointer_constrained; /* clipboard related stuff. * Note that unlike most interfaces, we don't keep zwp_primary_selection stuff in a wayland_protocol_t because we use wl_data_device as a fallback and want to have it share memory space.*/ diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 4d7f72aca..1d1d2b8ac 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -514,22 +514,35 @@ static MwLL currentlyHeldWidget = NULL; /* `wl_pointer.motion` callback */ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time, wl_fixed_t surface_x, wl_fixed_t surface_y) { - MwLL self = data; + MwLL self = data; + MwLL topmost_parent = self; MwLLMouse p; (void)time; (void)wl_pointer; WAYLAND_EVENT_OP_START(self); + while(topmost_parent->wayland.parent) topmost_parent = topmost_parent->wayland.parent; self->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); self->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); - p.point = self->wayland.cur_mouse_pos; + if(self->wayland.do_lock_pointer) { + self->wayland.cur_mouse_pos.x -= topmost_parent->wayland.ww / 2.; + self->wayland.cur_mouse_pos.y -= topmost_parent->wayland.wh / 2.; + } + p.point = self->wayland.cur_mouse_pos; MwLLDispatch(self, move, &p); if(currentlyHeldWidget) { MwLLDispatch(currentlyHeldWidget, down, &p); } + if(self->wayland.do_lock_pointer) { + topmost_parent->wayland.locked_pointer = zwp_pointer_constraints_v1_lock_pointer(topmost_parent->wayland.pointer_constraints, topmost_parent->wayland.backbuffer.surface, topmost_parent->wayland.pointer, topmost_parent->wayland.region, ZWP_POINTER_CONSTRAINTS_V1_LIFETIME_PERSISTENT); + zwp_locked_pointer_v1_set_cursor_position_hint(topmost_parent->wayland.locked_pointer, wl_fixed_from_double(topmost_parent->wayland.ww / 2.), wl_fixed_from_double(topmost_parent->wayland.wh / 2.)); + wl_surface_commit(topmost_parent->wayland.backbuffer.surface); + zwp_locked_pointer_v1_destroy(topmost_parent->wayland.locked_pointer); + } + WAYLAND_EVENT_OP_END(self); }; @@ -1125,6 +1138,11 @@ static void xdg_toplevel_configure(void* data, MwLLDispatch(self, draw, NULL); recursive_dispatch_resize(self); + + if(self->wayland.pointer_constrained) { + zwp_locked_pointer_v1_set_cursor_position_hint(self->wayland.locked_pointer, wl_fixed_from_double(self->wayland.ww / 2.), wl_fixed_from_double(self->wayland.wh / 2.)); + wl_surface_commit(self->wayland.framebuffer.surface); + } }; /* `xdg_surface.close` callback */ @@ -1166,7 +1184,8 @@ static void wl_shm_interface_destroy(struct _MwLLWayland* wayland, wayland_proto (void)data; } -static void update_buffer(struct _MwLLWaylandShmBuffer* buffer) { +static void update_buffer(MwLL self, struct _MwLLWaylandShmBuffer* buffer) { + (void)self; // for later, just in case. wl_surface_attach(buffer->surface, buffer->shm_buffer, 0, 0); wl_surface_commit(buffer->surface); } @@ -1222,7 +1241,7 @@ static void framebuffer_setup(struct _MwLLWayland* wayland) { memset(wayland->framebuffer.buf, 0, wayland->framebuffer.buf_size); hang_until_configured((MwLL)wayland); - update_buffer(&wayland->framebuffer); + update_buffer((MwLL)wayland, &wayland->framebuffer); }; static void framebuffer_destroy(struct _MwLLWayland* wayland) { buffer_destroy(&wayland->framebuffer); @@ -1247,7 +1266,7 @@ static void backbuffer_setup(struct _MwLLWayland* wayland) { memset(wayland->backbuffer.buf, 255, wayland->backbuffer.buf_size); hang_until_configured((MwLL)wayland); - update_buffer(&wayland->backbuffer); + update_buffer((MwLL)wayland, &wayland->backbuffer); }; static void backbuffer_destroy(struct _MwLLWayland* wayland) { buffer_destroy(&wayland->backbuffer); @@ -1913,7 +1932,7 @@ static void MwLLBeginDrawImpl(MwLL handle) { MwLLDestroyPixmap(p); free(px); } - update_buffer(&handle->wayland.backbuffer); + update_buffer(handle, &handle->wayland.backbuffer); wl_surface_commit(handle->wayland.backbuffer.surface); } @@ -1923,9 +1942,9 @@ static void MwLLBeginDrawImpl(MwLL handle) { static void MwLLEndDrawImpl(MwLL handle) { if(handle->wayland.configured) { if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { - update_buffer(&handle->wayland.backbuffer); + update_buffer(handle, &handle->wayland.backbuffer); } - update_buffer(&handle->wayland.framebuffer); + update_buffer(handle, &handle->wayland.framebuffer); } } @@ -2023,9 +2042,9 @@ static int MwLLPendingImpl(MwLL handle) { return pending; } - update_buffer(&handle->wayland.framebuffer); + update_buffer(handle, &handle->wayland.framebuffer); if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { - update_buffer(&handle->wayland.backbuffer); + update_buffer(handle, &handle->wayland.backbuffer); } return handle->wayland.force_render || handle->wayland.events_pending || pending; @@ -2044,7 +2063,7 @@ static void MwLLNextEventImpl(MwLL handle) { // if(!handle->wayland.events_pending) { MwLLDispatch(handle, draw, NULL); // } - if(handle->wayland.configured) update_buffer(&handle->wayland.framebuffer); + if(handle->wayland.configured) update_buffer(handle, &handle->wayland.framebuffer); handle->wayland.force_render = 0; } if(handle->wayland.events_pending) { @@ -2127,7 +2146,7 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { cairo_surface_destroy(cs); MwLLForceRender(handle); - update_buffer(&handle->wayland.framebuffer); + update_buffer(handle, &handle->wayland.framebuffer); wl_surface_damage(handle->wayland.framebuffer.surface, 0, 0, handle->wayland.ww, handle->wayland.wh); } static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { @@ -2159,7 +2178,7 @@ static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { handle->wayland.icon->buf[i + 3] = 255; } - if(handle->wayland.configured) update_buffer(handle->wayland.icon); + if(handle->wayland.configured) update_buffer(handle, handle->wayland.icon); xdg_toplevel_icon_v1_add_buffer(icon, handle->wayland.icon->shm_buffer, 1); @@ -2283,7 +2302,7 @@ static void MwLLFocusImpl(MwLL handle) { static void MwLLGrabPointerImpl(MwLL handle, int toggle) { if(handle->wayland.pointer_constraints) { - handle->wayland.locked_pointer = zwp_pointer_constraints_v1_lock_pointer(handle->wayland.pointer_constraints, handle->wayland.framebuffer.surface, handle->wayland.pointer, handle->wayland.region, ZWP_POINTER_CONSTRAINTS_V1_LIFETIME_PERSISTENT); + handle->wayland.do_lock_pointer = toggle; } else { printf("[WARNING] MwLLGrabPointer not supported in Wayland session, zwp_pointer_constraints_v1 required.\n"); } From fa9ad8b9848d60ed2ccae17c8a890edc18c799bf Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 25 Mar 2026 00:43:35 -0700 Subject: [PATCH 256/836] enable wayland by default on linux builds --- configure | 6 +++++- src/backend/wayland.c | 14 ++++++++++---- src/widget/opengl.c | 5 ++--- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/configure b/configure index 1c06c0d65..3cfe05055 100755 --- a/configure +++ b/configure @@ -46,6 +46,10 @@ param_set("vulkan-string-helper", 1); param_set("shared", 1); param_set("static", 1); param_set("examples", 1); +print($target); +if($target eq "Linux") { + param_set("wayland", 1); +} my %features = ( "classic-theme" => "use classic theme", @@ -58,7 +62,7 @@ my %features = ( "vulkan-string-helper" => "use Vulkan string helper", "shared" => "build shared library", "static" => "build static library", - "wayland" => "enable ayland backend", + "wayland" => "enable wayland backend", ); my @features_keys = ( "1classic-theme", "1stb-image", diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 1d1d2b8ac..5ba779b1c 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -2026,11 +2026,17 @@ static int MwLLPendingImpl(MwLL handle) { handle->wayland.did_initial_resize = 1; } - if(!MwWaylandAlwaysRender) wl_display_prepare_read(handle->wayland.display); - if(!poll(&fd, 1, timeout.tv_nsec)) { - wl_display_cancel_read(handle->wayland.display); + if(!MwWaylandAlwaysRender) { + wl_display_prepare_read(handle->wayland.display); + if(!poll(&fd, 1, timeout.tv_nsec)) { + wl_display_cancel_read(handle->wayland.display); + } else { + wl_display_read_events(handle->wayland.display); + if((pending = wl_display_dispatch_pending(handle->wayland.display)) < 0) { + wl_display_cancel_read(handle->wayland.display); + } + } } else { - if(!MwWaylandAlwaysRender) wl_display_read_events(handle->wayland.display); if((pending = wl_display_dispatch_pending(handle->wayland.display)) < 0) { wl_display_cancel_read(handle->wayland.display); } diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 0afbe9ac7..bf06981b9 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -205,9 +205,8 @@ static int create(MwWidget handle) { 1, EGL_NONE}; EGLDisplay display; - waylandopengl_t* o = r = malloc(sizeof(*o)); - MwLL topmost_parent = handle->lowlevel->wayland.parent; - MwWaylandAlwaysRender = MwTRUE; + waylandopengl_t* o = r = malloc(sizeof(*o)); + MwWaylandAlwaysRender = MwTRUE; o->gllib = MwDynamicOpen("libEGL.so"); if(!o->gllib) { From aa6d1f43d3e37d16b6c0ee676118542dccf8eeb0 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 25 Mar 2026 17:06:44 +0900 Subject: [PATCH 257/836] fix --- src/widget/vulkan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index e2dfa4c8b..92f319265 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -231,7 +231,7 @@ static MwErrorEnum vulkan_instance_setup(MwWidget handle, vulkan_t* o) { arrput(enabledExtensions, VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME); /* take this opprutunity to set the widget to always render */ - handle->lowlevel->wayland.always_render = MwTRUE; + MwWaylandAlwaysRender = MwTRUE; while(topmost_parent->wayland.parent != NULL) { topmost_parent = topmost_parent->wayland.parent; From c05843a04b99e755b5c2abb1927432b16efcb76b Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 25 Mar 2026 17:09:36 +0900 Subject: [PATCH 258/836] ugh --- src/widget/vulkan.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index 92f319265..a67c47440 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -227,16 +227,9 @@ static MwErrorEnum vulkan_instance_setup(MwWidget handle, vulkan_t* o) { #endif #ifdef USE_WAYLAND if(handle->lowlevel->common.type == MwLLBackendWayland) { - MwLL topmost_parent = handle->lowlevel->wayland.parent; - arrput(enabledExtensions, VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME); /* take this opprutunity to set the widget to always render */ MwWaylandAlwaysRender = MwTRUE; - - while(topmost_parent->wayland.parent != NULL) { - topmost_parent = topmost_parent->wayland.parent; - topmost_parent->wayland.always_render = MwTRUE; - } } #endif From 6bb72c224b6ccad718d689901e2c4d1656ed1fa7 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 25 Mar 2026 14:06:50 -0700 Subject: [PATCH 259/836] support wayland backend on cmake --- CMakeLists.txt | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 09a5bd90c..743824f91 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,6 +20,10 @@ option(MW_BUILD_SHARED "Build a shared library" ON) option(MW_BUILD_STATIC "Build a static library" OFF) option(MW_INSTALL_HEADERS "Install headers" ON) +if(${CMAKE_SYSTEM_NAME} STREQUAL Linux) +option(MW_USE_WAYLAND "Enable Wayland backend" ON) +endif() + file( GLOB SOURCES @@ -127,6 +131,97 @@ if(MW_USE_FREETYPE2) list(APPEND LIBRARIES ${FT2_LIBRARIES}) endif() +if(MW_USE_WAYLAND) + function(scan_wayland_protocol_core) + execute_process( + COMMAND wayland-scanner private-code /usr/share/wayland/wayland.xml ${CMAKE_CURRENT_SOURCE_DIR}/src/backend/wayland-core-protocol.c + OUTPUT_VARIABLE WAYLAND_SCANNER_OUTPUT + ERROR_VARIABLE WAYLAND_SCANNER_ERROR + ECHO_OUTPUT_VARIABLE + ECHO_ERROR_VARIABLE + COMMAND_ECHO STDOUT + ) + target_sources( + Mw + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/src/backend/wayland-core-protocol.c + ) + execute_process( + COMMAND wayland-scanner client-header /usr/share/wayland/wayland.xml ${CMAKE_CURRENT_SOURCE_DIR}/include/Mw/LowLevel/Wayland/wayland-core-protocol.h + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE WAYLAND_SCANNER_OUTPUT + ERROR_VARIABLE WAYLAND_SCANNER_ERROR + ECHO_OUTPUT_VARIABLE + ECHO_ERROR_VARIABLE + COMMAND_ECHO STDOUT + ) + endfunction() + + function(scan_wayland_protocol tier proto ver) + SET(proto_c ${CMAKE_CURRENT_SOURCE_DIR}/src/backend/wayland-${proto}-protocol.c) + execute_process( + COMMAND wayland-scanner private-code /usr/share/wayland-protocols/${tier}/${proto}/${proto}${ver}.xml ${proto_c} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE WAYLAND_SCANNER_OUTPUT + ERROR_VARIABLE WAYLAND_SCANNER_ERROR + ECHO_OUTPUT_VARIABLE + ECHO_ERROR_VARIABLE + COMMAND_ECHO STDOUT + ) + target_sources( + Mw + PRIVATE + ${proto_c} + ) + execute_process( + COMMAND wayland-scanner client-header /usr/share/wayland-protocols/${tier}/${proto}/${proto}${ver}.xml ${CMAKE_CURRENT_SOURCE_DIR}/include/Mw/LowLevel/Wayland/${proto}-client-protocol.h + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE WAYLAND_SCANNER_OUTPUT + ERROR_VARIABLE WAYLAND_SCANNER_ERROR + ECHO_OUTPUT_VARIABLE + ECHO_ERROR_VARIABLE + COMMAND_ECHO STDOUT + ) + endfunction() + + check_include_files(wayland-client.h HAVE_WL_H) + check_include_files(xkbcommon/xkbcommon.h HAVE_XKBCOMMON_H) + check_include_files(cairo/cairo.h HAVE_CAIRO_H) + if(HAVE_WL_H) + if(HAVE_XKBCOMMON_H) + if(HAVE_CAIRO_H) + scan_wayland_protocol_core() + scan_wayland_protocol("stable" "xdg-shell" "") + scan_wayland_protocol("stable" "viewporter" "") + scan_wayland_protocol("stable" "tablet" "-v2") + scan_wayland_protocol("staging" "xdg-toplevel-icon" "-v1") + scan_wayland_protocol("staging" "cursor-shape" "-v1") + scan_wayland_protocol("unstable" "xdg-decoration" "-unstable-v1") + scan_wayland_protocol("unstable" "primary-selection" "-unstable-v1") + scan_wayland_protocol("unstable" "pointer-constraints" "-unstable-v1") + + target_sources( + Mw + PRIVATE + src/backend/wayland.c + ) + target_compile_definitions( + Mw + PRIVATE + USE_WAYLAND + ) + message(STATUS "Wayland backend has been enabled") + else() + message(WARNING "Wayland backend has been disabled") + endif() + else() + message(WARNING "Wayland backend has been disabled") + endif() + else() + message(WARNING "Wayland backend has been disabled") + endif() +endif() + target_include_directories( Mw PUBLIC From 82999d716a435ab770355ae0fe9ae02370cc5435 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 25 Mar 2026 17:49:28 -0700 Subject: [PATCH 260/836] apple: move all event stuff into callback system, fix cmake support for apple, add gl/vk examples to cmake --- .clangd | 1 + .gitignore | 1 + CMakeLists.txt | 24 +- configure | 7 +- examples/CMakeLists.txt | 6 + examples/basic/CMakeLists.txt | 2 +- examples/gldemos/CMakeLists.txt | 27 ++ examples/vkdemos/CMakeLists.txt | 22 ++ include/Mw/LowLevel/Cocoa.h | 56 +-- src/backend/cocoa.m | 630 +++++++++++++++++--------------- 10 files changed, 457 insertions(+), 319 deletions(-) create mode 100644 examples/gldemos/CMakeLists.txt create mode 100644 examples/vkdemos/CMakeLists.txt diff --git a/.clangd b/.clangd index c2520c5c5..1058f6f19 100644 --- a/.clangd +++ b/.clangd @@ -1,2 +1,3 @@ Completion: HeaderInsertion: Never +ClangFormat: Tab diff --git a/.gitignore b/.gitignore index 153abcca4..22460554b 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ examples/*/*.exe /build compile_flags.txt .cache +.DS_Store diff --git a/CMakeLists.txt b/CMakeLists.txt index 743824f91..7bf75294a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,11 +15,16 @@ option(MW_CLASSIC_THEME "Use classic theme" OFF) option(MW_BUILD_EXAMPLES "Build examples" OFF) option(MW_USE_STB_IMAGE "Use stb_image" ON) option(MW_USE_STB_TRUETYPE "Use stb_truetype" OFF) -option(MW_USE_FREETYPE2 "Use FreeType 2" ON) option(MW_BUILD_SHARED "Build a shared library" ON) option(MW_BUILD_STATIC "Build a static library" OFF) option(MW_INSTALL_HEADERS "Install headers" ON) +if(${CMAKE_SYSTEM_NAME} STREQUAL Darwin) +option(MW_USE_FREETYPE2 "Use FreeType 2" OFF) +else() +option(MW_USE_FREETYPE2 "Use FreeType 2" ON) +endif() + if(${CMAKE_SYSTEM_NAME} STREQUAL Linux) option(MW_USE_WAYLAND "Enable Wayland backend" ON) endif() @@ -47,10 +52,13 @@ if(CMAKE_SYSTEM_NAME STREQUAL "NetBSD") endif() if(MW_TRY_OPENGL) - check_include_files(GL/gl.h HAVE_GL_GL_H) - if(HAVE_GL_GL_H) + find_package(OpenGL) + if(OpenGL_FOUND) set(MW_BUILD_OPENGL ON) - list(APPEND SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/opengl.c") + list(APPEND SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/opengl.c") + if(APPLE) + list(APPEND SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/opengl_cocoa.m") + endif() message(STATUS "OpenGL widget has been enabled") else() message(WARNING "OpenGL widget has been disabled") @@ -222,6 +230,14 @@ if(MW_USE_WAYLAND) endif() endif() +if(APPLE AND MW_BUILD_OPENGL) + target_compile_definitions( + Mw + PRIVATE + GL_SILENCE_DEPRECATION + ) +endif() + target_include_directories( Mw PUBLIC diff --git a/configure b/configure index 3cfe05055..cb465378b 100755 --- a/configure +++ b/configure @@ -38,7 +38,6 @@ require("./pl/utils.pl"); param_set("classic-theme", 0); param_set("stb-image", 1); param_set("stb-truetype", 0); -param_set("freetype2", 1); param_set("xrender", 1); param_set("opengl", 0); param_set("vulkan", 0); @@ -46,11 +45,15 @@ param_set("vulkan-string-helper", 1); param_set("shared", 1); param_set("static", 1); param_set("examples", 1); -print($target); if($target eq "Linux") { param_set("wayland", 1); } +if($target ne "Darwin") { + param_set("freetype2", 1); +} + + my %features = ( "classic-theme" => "use classic theme", "stb-image" => "use stb_image, instead use libjpeg/libpng", diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 6f4cd2f5a..5baed4a88 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1 +1,7 @@ add_subdirectory(basic) +if(${MW_TRY_OPENGL}) +add_subdirectory(gldemos) +endif() +if(${MW_TRY_VULKAN}) +add_subdirectory(vkdemos) +endif() diff --git a/examples/basic/CMakeLists.txt b/examples/basic/CMakeLists.txt index b4eb0a1cd..acda320d2 100644 --- a/examples/basic/CMakeLists.txt +++ b/examples/basic/CMakeLists.txt @@ -6,7 +6,7 @@ file( foreach(PATH IN LISTS EXAMPLES_BASIC_SOURCES) get_filename_component(TARGET ${PATH} NAME_WE) - add_executable(${TARGET} ${PATH}) + add_executable(${TARGET} WIN32 MACOSX_BUNDLE ${PATH}) target_link_libraries( ${TARGET} PRIVATE diff --git a/examples/gldemos/CMakeLists.txt b/examples/gldemos/CMakeLists.txt new file mode 100644 index 000000000..9afda19fb --- /dev/null +++ b/examples/gldemos/CMakeLists.txt @@ -0,0 +1,27 @@ +file( + GLOB + EXAMPLES_GL_SOURCES + *.c +) +find_package(OpenGL) + +foreach(PATH IN LISTS EXAMPLES_GL_SOURCES) + get_filename_component(TARGET ${PATH} NAME_WE) + if(${TARGET} STREQUAL "glutlayer") + continue() + endif() + add_executable(${TARGET} WIN32 MACOSX_BUNDLE ${PATH}) + target_link_libraries( + ${TARGET} + PRIVATE + Mw + OpenGL::GL + ) + if(NOT CMAKE_SYSTEM_NAME STREQUAL "Windows") + target_link_libraries( + ${TARGET} + PRIVATE + m + ) + endif() +endforeach() diff --git a/examples/vkdemos/CMakeLists.txt b/examples/vkdemos/CMakeLists.txt new file mode 100644 index 000000000..354bf3634 --- /dev/null +++ b/examples/vkdemos/CMakeLists.txt @@ -0,0 +1,22 @@ +file( + GLOB + EXAMPLES_VULKAN_SOURCES + *.c +) + +foreach(PATH IN LISTS EXAMPLES_VULKAN_SOURCES) + get_filename_component(TARGET ${PATH} NAME_WE) + add_executable(${TARGET} WIN32 MACOSX_BUNDLE ${PATH}) + target_link_libraries( + ${TARGET} + PRIVATE + Mw + ) + if(NOT CMAKE_SYSTEM_NAME STREQUAL "Windows") + target_link_libraries( + ${TARGET} + PRIVATE + m + ) + endif() +endforeach() diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 7d1b217fe..da104f018 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -21,11 +21,17 @@ #import #endif +@interface MilskoCocoaApplication : NSApplication { + MwBool doPending; +} +- (MwBool)pending; +@end + // Note: implements NSApplicationDelegate @interface MilskoCocoaApplicationDelegate : NSObject { - NSApplication* appl; + MilskoCocoaApplication* appl; } -- (MilskoCocoaApplicationDelegate*)initWithAppl:(NSApplication*)appl; +- (MilskoCocoaApplicationDelegate*)initWithAppl:(MilskoCocoaApplication*)appl; @end @interface MilskoCocoaWindow : NSWindow { @@ -80,32 +86,39 @@ @end @interface MilskoCocoaView : NSView { - NSBitmapImageRep* rep; - NSGraphicsContext* context; - MwBool valid; - CGColorSpaceRef space; - CGDataProviderRef provider; - float width; - float height; + NSBitmapImageRep* rep; + NSGraphicsContext* context; + MwBool valid; + CGColorSpaceRef space; + CGDataProviderRef provider; + NSRect givenRect; + float x; + float y; + float width; + float height; + MwBool _child; + IBOutlet NSViewController* viewController; } - (void)initRepAndContextWithWidth:(float)w Height:(float)h; - (NSGraphicsContext*)context; - (void)destroy; - (NSBitmapImageRep*)getRep; +- (void)setChild; @end @interface MilskoCocoa : NSObject { - NSApplication* application; - MwBool _forceRender; - MilskoCocoaWindow* window; - NSRect rect; - MilskoCocoaView* view; - MwLL parent; - MilskoFakePointer* handle; - unsigned int strHash; - NSEvent* lastEvent; + MilskoCocoaApplication* application; + MwBool _forceRender; + MwBool _eventsPending; + MilskoCocoaWindow* window; + NSRect rect; + MilskoCocoaView* view; + MwLL parent; + MilskoFakePointer* handle; + unsigned int strHash; + NSEvent* lastEvent; MilskoCocoaPixmap* cursorPixmap; NSCursor* cursor; @@ -129,9 +142,6 @@ - (void)setX:(int)x Y:(int)y; - (void)setW:(int)w H:(int)h; - (int)pending; -- (void)eventProcess:(NSEvent*)ev; -- (void)handleKeyEvent:(NSEvent*)ev ll:(MwLL)ll; -- (void)handleMouseEvent:(NSEvent*)ev ll:(MwLL)ll; - (void)getNextEvent; - (void)setTitle:(const char*)title; - (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect*)rect; @@ -158,6 +168,10 @@ - (MwLL)getParent; - (NSView*)getView; - (MilskoCocoaWindow*)getWindow; +- (void)nudge; + +- (void)pushCursor; +- (void)popCursor; - (MilskoFakePointer*)getHandle; + (void)eventCanceller:(MilskoCocoa*)this; diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 725642d35..d3fec7ebb 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1,5 +1,9 @@ #include "Mw/BaseTypes.h" +#include "Mw/LowLevel.h" #include +#include +#include "../../external/stb_ds.h" +#include "Mw/TypeDefs.h" #ifdef __clang__ #pragma clang push @@ -22,15 +26,44 @@ static NSPoint pointFlip(NSPoint point) { } static NSRect localRectFlip(NSRect originFrame, NSView* view) { - float viewHeight = [view bounds].size.height; - NSRect destinationFrame = NSMakeRect( - originFrame.origin.x, - [view bounds].size.height - (originFrame.origin.y + originFrame.size.height), - originFrame.size.width, - originFrame.size.height); + float viewHeight = [view bounds].size.height; + NSRect destinationFrame = + NSMakeRect(originFrame.origin.x, + [view bounds].size.height - + (originFrame.origin.y + originFrame.size.height), + originFrame.size.width, originFrame.size.height); return destinationFrame; } +/* Recursively dispatch a key event to a widget and its children */ +static void recursive_dispatch_key(MwLL handle, int* k) { + MwWidget h = (MwWidget)handle->common.user; + MwLLDispatch(handle, key, k); + if(h) { + int i; + for(i = 0; i < arrlen(h->children); i++) { + MwLLDispatch(h->children[i]->lowlevel, key, k); + if(arrlen(h->children[i]->children) > 0) { + recursive_dispatch_key(h->children[i]->lowlevel, k); + } + } + } +}; +/* Recursively dispatch a key released event to a widget and its children */ +static void recursive_dispatch_key_released(MwLL handle, int* k) { + MwWidget h = (MwWidget)handle->common.user; + MwLLDispatch(handle, key_released, k); + if(h) { + int i; + for(i = 0; i < arrlen(h->children); i++) { + MwLLDispatch(h->children[i]->lowlevel, key_released, k); + if(arrlen(h->children[i]->children) > 0) { + recursive_dispatch_key_released(h->children[i]->lowlevel, k); + } + } + } +}; + @implementation MilskoCocoaPixmap + (MilskoCocoaPixmap*)newWithWidth:(int)width height:(int)height { @@ -85,6 +118,8 @@ static NSRect localRectFlip(NSRect originFrame, NSView* view) { [self->image removeRepresentation:self->rep]; [self->image dealloc]; [self->rep dealloc]; + self->image = NULL; + self->rep = NULL; } - (NSImage*)image { return self->image; @@ -103,16 +138,18 @@ static NSRect localRectFlip(NSRect originFrame, NSView* view) { [c retain]; /* - * MacOS doesn't really have a "default" window position, you're actually meant to center the window yourself, - * so if the user passes MwDEFAULT respond appropriately. Also for child windows just have it be 0. + * MacOS doesn't really have a "default" window position, you're actually + * meant to center the window yourself, so if the user passes MwDEFAULT + * respond appropriately. Also for child windows just have it be 0. */ if(x == MwDEFAULT) { x = r ? ([[NSScreen mainScreen] frame].size.width / 2.) - (width / 2.) : 0; } if(y == MwDEFAULT) { - y = r ? ([[NSScreen mainScreen] frame].size.height / 2.) - (height / 2.) : 0; + y = r ? ([[NSScreen mainScreen] frame].size.height / 2.) - (height / 2.) + : 0; } - c->application = [NSApplication sharedApplication]; + c->application = [MilskoCocoaApplication sharedApplication]; c->rect = NSMakeRect(x, y, width, height); if(parent == NULL) { @@ -130,7 +167,6 @@ static NSRect localRectFlip(NSRect originFrame, NSView* view) { [c->window makeKeyAndOrderFront:c->application]; [c->window makeFirstResponder:c->view]; - [c->window setAcceptsMouseMovedEvents:MwTRUE]; c->view = [[MilskoCocoaView alloc] initWithFrame:c->rect]; [c->view retain]; @@ -140,29 +176,31 @@ static NSRect localRectFlip(NSRect originFrame, NSView* view) { [c->application setActivationPolicy:0 /* NSApplicationActivationPolicyRegular */]; } - [c->application activateIgnoringOtherApps:true]; + [c->application activateIgnoringOtherApps:MwTRUE]; [c->application setDelegate:[[MilskoCocoaApplicationDelegate alloc] initWithAppl:c->application]]; [c->application retain]; + + [c->view addTrackingRect:c->rect owner:c->view userData:NULL assumeInside:MwFALSE]; } else { MilskoCocoa* p = parent->cocoa.real; c->window = p->window; - if(parent) { - MilskoCocoa* topmost = p; - NSRect rect = localRectFlip(c->rect, p->view); - printf("%0.2f %0.2f %0.2f %0.2f\n", c->rect.origin.x, c->rect.origin.y, c->rect.size.width, c->rect.size.height); - c->view = [[MilskoCocoaView alloc] initWithFrame:rect]; - [c->view setBounds:c->rect]; - } else { - c->view = [[MilskoCocoaView alloc] initWithFrame:c->rect]; - } + NSRect rect = localRectFlip(c->rect, p->view); + c->view = [[MilskoCocoaView alloc] initWithFrame:rect]; + [c->view setBounds:c->rect]; + [c->view retain]; [c->view setNeedsDisplay:TRUE]; + [c->view setChild]; + + [c->view addTrackingRect:c->rect owner:c->view userData:NULL assumeInside:MwFALSE]; + [p->view addSubview:c->view]; [p->window setContentView:p->view]; } + [c->window setAcceptsMouseMovedEvents:MwTRUE]; c->handle = [[MilskoFakePointer alloc] initWithFrame:NSMakeRect(0, 0, 1, 1)]; [c->handle retain]; @@ -208,11 +246,11 @@ static NSRect localRectFlip(NSRect originFrame, NSView* view) { NSRectFill(self->view.bounds); for(i = 0; i < points_count; i++) { if(i == 0) { - [path moveToPoint:NSMakePoint(points[i].x, _rect.size.height - - points[i].y)]; + [path moveToPoint:NSMakePoint(points[i].x, + _rect.size.height - points[i].y)]; } else { - [path lineToPoint:NSMakePoint(points[i].x, _rect.size.height - - points[i].y)]; + [path lineToPoint:NSMakePoint(points[i].x, + _rect.size.height - points[i].y)]; } } @@ -262,6 +300,7 @@ static NSRect localRectFlip(NSRect originFrame, NSView* view) { frame = localRectFlip(frame, parent->cocoa.real->view); [self->view setBounds:frame]; } + self->_eventsPending = MwTRUE; }; - (void)setW:(int)w H:(int)h { NSRect frame = [self->window frame]; @@ -276,23 +315,28 @@ static NSRect localRectFlip(NSRect originFrame, NSView* view) { } else { [self->window setFrame:frame display:YES animate:false]; } + self->_eventsPending = MwTRUE; }; - (int)pending { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + MwBool isPending = [self->application pending]; [NSApp runModalSession:self->modalSession]; [pool release]; - return 1; + return _forceRender || _eventsPending || isPending; }; - (void)getNextEvent { - [self eventProcess:self->lastEvent]; - + MwLL h = [self->handle pointer]; if(_forceRender) { - MwLL h = [self->handle pointer]; MwLLDispatch(h, draw, NULL); [self->view setNeedsDisplay:true]; _forceRender = MwFALSE; } + if(_eventsPending) { + MwLLDispatch(h, draw, NULL); + [self->view setNeedsDisplay:true]; + _eventsPending = MwFALSE; + } [self sendClipboardEvent]; if(self->pointerLocked && [self->window isMainWindow] && self->lastEvent) { @@ -306,258 +350,6 @@ static NSRect localRectFlip(NSRect originFrame, NSView* view) { [self->application updateWindows]; }; -- (void)eventProcess:(NSEvent*)ev { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - NSWindow* win = [ev window]; - MwLL h; - MwBool doSendEvent = MwTRUE; - - if(!win) { - [pool release]; - return; - } - - if([[[win contentView] subviews] count] == 0) { - printf("no subviews on %p\n", win); - [pool release]; - return; - } else { - h = [((MilskoFakePointer*)[[[win contentView] subviews] - objectAtIndex:0]) pointer]; - } - - switch([ev type]) { - case NSLeftMouseDragged: - case NSRightMouseDragged: - case NSOtherMouseDragged: - case NSMouseMoved: { - MwPoint pos; - NSPoint pos_translated = pointFlip([ev locationInWindow]); - pos.x = pos_translated.x; - pos.y = pos_translated.y; - MwLLDispatch(h, move, &pos); - break; - } - case NSLeftMouseDown: - case NSRightMouseDown: - case NSOtherMouseDown: - case NSLeftMouseUp: - case NSRightMouseUp: - case NSOtherMouseUp: { - [self handleMouseEvent:ev ll:h]; - break; - } - - case NSMouseEntered: - MwLLDispatch(h, focus_in, NULL); - [self->cursor push]; - break; - case NSMouseExited: - MwLLDispatch(h, focus_out, NULL); - [self->cursor pop]; - break; - case NSKeyDown: - case NSKeyUp: { - [self handleKeyEvent:ev ll:h]; - break; - } - case NSCursorUpdate: - [self->cursor set]; - break; - case NSScrollWheel: - break; - default: - /* mute bizarre "unknown subtype" errors that flood the console */ - break; - }; - if(doSendEvent) { - [win sendEvent:ev]; - } - [pool release]; -} - -- (void)handleMouseEvent:(NSEvent*)ev ll:(MwLL)ll { - MwLLMouse mouse; - MwBool isDown = MwTRUE; - NSPoint mousePoint = [ev locationInWindow]; - mousePoint.y = [[ev window] frame].size.height - mousePoint.y; - MwLL this = [self->handle pointer]; - - switch([ev type]) { - case NSLeftMouseUp: - isDown = MwFALSE; - case NSEventTypeLeftMouseDragged: - case NSLeftMouseDown: - mouse.button = MwLLMouseLeft; - break; - case NSRightMouseUp: - isDown = MwFALSE; - case NSRightMouseDown: - case NSEventTypeRightMouseDragged: - mouse.button = MwLLMouseRight; - break; - case NSOtherMouseUp: - isDown = MwFALSE; - case NSOtherMouseDown: - case NSEventTypeOtherMouseDragged: - mouse.button = MwLLMouseMiddle; - break; - default: - break; - } - mouse.point.x = mousePoint.x; - mouse.point.y = mousePoint.y; - - printf("%s at %d %d\n", isDown ? "down" : "up", mouse.point.x, mouse.point.y); - - if(isDown) { - MwLLDispatch(ll, down, &mouse); - } else { - MwLLDispatch(ll, up, &mouse); - } -} - -- (void)handleKeyEvent:(NSEvent*)ev ll:(MwLL)ll { - int ch; - MwLL this = [self->handle pointer]; - enum { - kVK_ANSI_A = 0x00, - kVK_ANSI_S = 0x01, - kVK_ANSI_D = 0x02, - kVK_ANSI_F = 0x03, - kVK_ANSI_H = 0x04, - kVK_ANSI_G = 0x05, - kVK_ANSI_Z = 0x06, - kVK_ANSI_X = 0x07, - kVK_ANSI_C = 0x08, - kVK_ANSI_V = 0x09, - kVK_ANSI_B = 0x0B, - kVK_ANSI_Q = 0x0C, - kVK_ANSI_W = 0x0D, - kVK_ANSI_E = 0x0E, - kVK_ANSI_R = 0x0F, - kVK_ANSI_Y = 0x10, - kVK_ANSI_T = 0x11, - kVK_ANSI_1 = 0x12, - kVK_ANSI_2 = 0x13, - kVK_ANSI_3 = 0x14, - kVK_ANSI_4 = 0x15, - kVK_ANSI_6 = 0x16, - kVK_ANSI_5 = 0x17, - kVK_ANSI_Equal = 0x18, - kVK_ANSI_9 = 0x19, - kVK_ANSI_7 = 0x1A, - kVK_ANSI_Minus = 0x1B, - kVK_ANSI_8 = 0x1C, - kVK_ANSI_0 = 0x1D, - kVK_ANSI_RightBracket = 0x1E, - kVK_ANSI_O = 0x1F, - kVK_ANSI_U = 0x20, - kVK_ANSI_LeftBracket = 0x21, - kVK_ANSI_I = 0x22, - kVK_ANSI_P = 0x23, - kVK_ANSI_L = 0x25, - kVK_ANSI_J = 0x26, - kVK_ANSI_Quote = 0x27, - kVK_ANSI_K = 0x28, - kVK_ANSI_Semicolon = 0x29, - kVK_ANSI_Backslash = 0x2A, - kVK_ANSI_Comma = 0x2B, - kVK_ANSI_Slash = 0x2C, - kVK_ANSI_N = 0x2D, - kVK_ANSI_M = 0x2E, - kVK_ANSI_Period = 0x2F, - kVK_ANSI_Grave = 0x32, - kVK_Return = 0x24, - kVK_Space = 0x31, - kVK_Escape = 0x35, - kVK_Shift = 0x38, - kVK_Control = 0x3B, - kVK_RightShift = 0x3C, - kVK_RightControl = 0x3E, - kVK_LeftArrow = 0x7B, - kVK_RightArrow = 0x7C, - kVK_DownArrow = 0x7D, - kVK_UpArrow = 0x7E - }; -#define KEY_CASE(x, y) \ - case x: \ - ch = y; \ - break; - switch([ev keyCode]) { - KEY_CASE(kVK_ANSI_A, 'a') - KEY_CASE(kVK_ANSI_B, 'b') - KEY_CASE(kVK_ANSI_C, 'c') - KEY_CASE(kVK_ANSI_D, 'd') - KEY_CASE(kVK_ANSI_E, 'e') - KEY_CASE(kVK_ANSI_F, 'f') - KEY_CASE(kVK_ANSI_G, 'g') - KEY_CASE(kVK_ANSI_H, 'h') - KEY_CASE(kVK_ANSI_I, 'i') - KEY_CASE(kVK_ANSI_J, 'j') - KEY_CASE(kVK_ANSI_K, 'k') - KEY_CASE(kVK_ANSI_L, 'l') - KEY_CASE(kVK_ANSI_M, 'm') - KEY_CASE(kVK_ANSI_N, 'n') - KEY_CASE(kVK_ANSI_O, 'o') - KEY_CASE(kVK_ANSI_P, 'p') - KEY_CASE(kVK_ANSI_Q, 'q') - KEY_CASE(kVK_ANSI_R, 'r') - KEY_CASE(kVK_ANSI_S, 's') - KEY_CASE(kVK_ANSI_T, 't') - KEY_CASE(kVK_ANSI_U, 'u') - KEY_CASE(kVK_ANSI_V, 'v') - KEY_CASE(kVK_ANSI_W, 'w') - KEY_CASE(kVK_ANSI_X, 'x') - KEY_CASE(kVK_ANSI_Y, 'y') - KEY_CASE(kVK_ANSI_Z, 'z') - KEY_CASE(kVK_ANSI_0, '0') - KEY_CASE(kVK_ANSI_1, '1') - KEY_CASE(kVK_ANSI_2, '2') - KEY_CASE(kVK_ANSI_3, '3') - KEY_CASE(kVK_ANSI_4, '4') - KEY_CASE(kVK_ANSI_5, '5') - KEY_CASE(kVK_ANSI_6, '6') - KEY_CASE(kVK_ANSI_7, '7') - KEY_CASE(kVK_ANSI_8, '8') - KEY_CASE(kVK_ANSI_9, '9') - KEY_CASE(kVK_ANSI_Quote, '\"') - KEY_CASE(kVK_ANSI_Grave, '`') - KEY_CASE(kVK_ANSI_Backslash, '/') - KEY_CASE(kVK_ANSI_Comma, ',') - KEY_CASE(kVK_ANSI_Equal, '=') - KEY_CASE(kVK_Escape, MwLLKeyEscape) - KEY_CASE(kVK_ANSI_LeftBracket, '[') - KEY_CASE(kVK_ANSI_Minus, '-') - KEY_CASE(kVK_ANSI_Period, '.') - KEY_CASE(kVK_Return, MwLLKeyEnter) - KEY_CASE(kVK_ANSI_RightBracket, ']') - KEY_CASE(kVK_ANSI_Semicolon, ';') - KEY_CASE(kVK_ANSI_Slash, '\\') - KEY_CASE(kVK_Space, ' ') - KEY_CASE(kVK_Control, MwLLKeyControl) - KEY_CASE(kVK_RightControl, MwLLKeyControl) - KEY_CASE(kVK_Shift, MwLLKeyLeftShift) - KEY_CASE(kVK_RightShift, MwLLKeyRightShift) - KEY_CASE(kVK_DownArrow, MwLLKeyDown) - KEY_CASE(kVK_LeftArrow, MwLLKeyLeft) - KEY_CASE(kVK_RightArrow, MwLLKeyRight) - KEY_CASE(kVK_UpArrow, MwLLKeyUp) - } - switch([ev type]) { - case NSKeyDown: - MwLLDispatch(this, key, &ch); - MwLLDispatch(ll, key, &ch); - break; - case NSKeyUp: - MwLLDispatch(this, key_released, &ch); - MwLLDispatch(ll, key_released, &ch); - break; - default: - break; - } -} - - (void)sendClipboardEvent { /*NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; @@ -772,14 +564,42 @@ static NSRect localRectFlip(NSRect originFrame, NSView* view) { return window; } +- (void)nudge { + self->_eventsPending = MwTRUE; +} + +- (void)pushCursor { + [self->cursor push]; +} +- (void)popCursor { + [self->cursor pop]; +} + - (MilskoFakePointer*)getHandle { return handle; } @end +@implementation MilskoCocoaApplication +- (void)sendEvent:(NSEvent*)event { + self->doPending = MwTRUE; + [super sendEvent:event]; +} +- (MwBool)pending { + if(self->doPending) { + self->doPending = MwFALSE; + return MwTRUE; + } + return MwFALSE; +} +@end + @implementation MilskoCocoaView - (id)initWithFrame:(NSRect)frame { + givenRect = frame; + x = frame.origin.x; + y = frame.origin.y; width = frame.size.width; height = frame.size.height; self = [super initWithFrame:frame]; @@ -792,9 +612,15 @@ static NSRect localRectFlip(NSRect originFrame, NSView* view) { [self initRepAndContextWithWidth:width Height:height]; } + self->_child = MwFALSE; + return self; } +- (void)setChild { + self->_child = MwTRUE; +} + - (NSGraphicsContext*)context { return self->context; } @@ -871,16 +697,238 @@ static NSRect localRectFlip(NSRect originFrame, NSView* view) { self->height = newSize.height; } -- (void)displayRect:(NSRect)rect { - (void)rect; -}; - -- (BOOL)acceptsFirstResponder { - return MwTRUE; +- (BOOL)canBecomeKeyView { + return YES; } -- (BOOL)performKeyEquivalent:(NSEvent*)event { - (void)event; - return MwTRUE; +- (BOOL)acceptsFirstResponder { + return YES; +} + +- (NSView*)hitTest:(NSPoint)aPoint { + if(self->_child) { + return NSPointInRect(aPoint, givenRect) ? self : nil; + } else { + return [super hitTest:aPoint]; + } +} + +- (void)handleKeyEvent:(NSEvent*)ev ll:(MwLL)ll down:(MwBool)isDown { + int ch; + enum { + kVK_ANSI_A = 0x00, + kVK_ANSI_S = 0x01, + kVK_ANSI_D = 0x02, + kVK_ANSI_F = 0x03, + kVK_ANSI_H = 0x04, + kVK_ANSI_G = 0x05, + kVK_ANSI_Z = 0x06, + kVK_ANSI_X = 0x07, + kVK_ANSI_C = 0x08, + kVK_ANSI_V = 0x09, + kVK_ANSI_B = 0x0B, + kVK_ANSI_Q = 0x0C, + kVK_ANSI_W = 0x0D, + kVK_ANSI_E = 0x0E, + kVK_ANSI_R = 0x0F, + kVK_ANSI_Y = 0x10, + kVK_ANSI_T = 0x11, + kVK_ANSI_1 = 0x12, + kVK_ANSI_2 = 0x13, + kVK_ANSI_3 = 0x14, + kVK_ANSI_4 = 0x15, + kVK_ANSI_6 = 0x16, + kVK_ANSI_5 = 0x17, + kVK_ANSI_Equal = 0x18, + kVK_ANSI_9 = 0x19, + kVK_ANSI_7 = 0x1A, + kVK_ANSI_Minus = 0x1B, + kVK_ANSI_8 = 0x1C, + kVK_ANSI_0 = 0x1D, + kVK_ANSI_RightBracket = 0x1E, + kVK_ANSI_O = 0x1F, + kVK_ANSI_U = 0x20, + kVK_ANSI_LeftBracket = 0x21, + kVK_ANSI_I = 0x22, + kVK_ANSI_P = 0x23, + kVK_ANSI_L = 0x25, + kVK_ANSI_J = 0x26, + kVK_ANSI_Quote = 0x27, + kVK_ANSI_K = 0x28, + kVK_ANSI_Semicolon = 0x29, + kVK_ANSI_Backslash = 0x2A, + kVK_ANSI_Comma = 0x2B, + kVK_ANSI_Slash = 0x2C, + kVK_ANSI_N = 0x2D, + kVK_ANSI_M = 0x2E, + kVK_ANSI_Period = 0x2F, + kVK_ANSI_Grave = 0x32, + kVK_Return = 0x24, + kVK_Space = 0x31, + kVK_Escape = 0x35, + kVK_Shift = 0x38, + kVK_Control = 0x3B, + kVK_RightShift = 0x3C, + kVK_RightControl = 0x3E, + kVK_LeftArrow = 0x7B, + kVK_RightArrow = 0x7C, + kVK_DownArrow = 0x7D, + kVK_UpArrow = 0x7E + }; +#define KEY_CASE(x, y) \ + case x: \ + ch = y; \ + break; + switch([ev keyCode]) { + KEY_CASE(kVK_ANSI_A, 'a') + KEY_CASE(kVK_ANSI_B, 'b') + KEY_CASE(kVK_ANSI_C, 'c') + KEY_CASE(kVK_ANSI_D, 'd') + KEY_CASE(kVK_ANSI_E, 'e') + KEY_CASE(kVK_ANSI_F, 'f') + KEY_CASE(kVK_ANSI_G, 'g') + KEY_CASE(kVK_ANSI_H, 'h') + KEY_CASE(kVK_ANSI_I, 'i') + KEY_CASE(kVK_ANSI_J, 'j') + KEY_CASE(kVK_ANSI_K, 'k') + KEY_CASE(kVK_ANSI_L, 'l') + KEY_CASE(kVK_ANSI_M, 'm') + KEY_CASE(kVK_ANSI_N, 'n') + KEY_CASE(kVK_ANSI_O, 'o') + KEY_CASE(kVK_ANSI_P, 'p') + KEY_CASE(kVK_ANSI_Q, 'q') + KEY_CASE(kVK_ANSI_R, 'r') + KEY_CASE(kVK_ANSI_S, 's') + KEY_CASE(kVK_ANSI_T, 't') + KEY_CASE(kVK_ANSI_U, 'u') + KEY_CASE(kVK_ANSI_V, 'v') + KEY_CASE(kVK_ANSI_W, 'w') + KEY_CASE(kVK_ANSI_X, 'x') + KEY_CASE(kVK_ANSI_Y, 'y') + KEY_CASE(kVK_ANSI_Z, 'z') + KEY_CASE(kVK_ANSI_0, '0') + KEY_CASE(kVK_ANSI_1, '1') + KEY_CASE(kVK_ANSI_2, '2') + KEY_CASE(kVK_ANSI_3, '3') + KEY_CASE(kVK_ANSI_4, '4') + KEY_CASE(kVK_ANSI_5, '5') + KEY_CASE(kVK_ANSI_6, '6') + KEY_CASE(kVK_ANSI_7, '7') + KEY_CASE(kVK_ANSI_8, '8') + KEY_CASE(kVK_ANSI_9, '9') + KEY_CASE(kVK_ANSI_Quote, '\"') + KEY_CASE(kVK_ANSI_Grave, '`') + KEY_CASE(kVK_ANSI_Backslash, '/') + KEY_CASE(kVK_ANSI_Comma, ',') + KEY_CASE(kVK_ANSI_Equal, '=') + KEY_CASE(kVK_Escape, MwLLKeyEscape) + KEY_CASE(kVK_ANSI_LeftBracket, '[') + KEY_CASE(kVK_ANSI_Minus, '-') + KEY_CASE(kVK_ANSI_Period, '.') + KEY_CASE(kVK_Return, MwLLKeyEnter) + KEY_CASE(kVK_ANSI_RightBracket, ']') + KEY_CASE(kVK_ANSI_Semicolon, ';') + KEY_CASE(kVK_ANSI_Slash, '\\') + KEY_CASE(kVK_Space, ' ') + KEY_CASE(kVK_Control, MwLLKeyControl) + KEY_CASE(kVK_RightControl, MwLLKeyControl) + KEY_CASE(kVK_Shift, MwLLKeyLeftShift) + KEY_CASE(kVK_RightShift, MwLLKeyRightShift) + KEY_CASE(kVK_DownArrow, MwLLKeyDown) + KEY_CASE(kVK_LeftArrow, MwLLKeyLeft) + KEY_CASE(kVK_RightArrow, MwLLKeyRight) + KEY_CASE(kVK_UpArrow, MwLLKeyUp) + } + if(isDown) { + recursive_dispatch_key(ll, &ch); + } else { + recursive_dispatch_key_released(ll, &ch); + } + [ll->cocoa.real nudge]; +} +- (void)mouseEntered:(NSEvent*)ev { + MwLL h = [((MilskoFakePointer*)[[self subviews] objectAtIndex:0]) pointer]; + MwLLDispatch(h, focus_in, NULL); + [h->cocoa.real pushCursor]; + [super mouseEntered:ev]; +} +- (void)mouseExited:(NSEvent*)ev { + MwLL h = [((MilskoFakePointer*)[[self subviews] objectAtIndex:0]) pointer]; + MwLLDispatch(h, focus_out, NULL); + [h->cocoa.real popCursor]; + [super mouseExited:ev]; +} +- (void)keyDown:(NSEvent*)ev { + MwLL h = [((MilskoFakePointer*)[[self subviews] objectAtIndex:0]) pointer]; + [self handleKeyEvent:ev ll:h down:MwTRUE]; + [super keyDown:ev]; +} +- (void)keyUp:(NSEvent*)ev { + MwLL h = [((MilskoFakePointer*)[[self subviews] objectAtIndex:0]) pointer]; + [self handleKeyEvent:ev ll:h down:MwFALSE]; + [super keyUp:ev]; +} + +- (void)mouseMoved:(NSEvent*)ev { + MwLLMouse mouse; + NSPoint mousePoint = [ev locationInWindow]; + MwLL this = [((MilskoFakePointer*)[[self subviews] objectAtIndex:0]) pointer]; + mousePoint.y = [[ev window] frame].size.height - mousePoint.y; + mouse.button = MwLLMouseLeft; + mouse.point.x = mousePoint.x; + mouse.point.y = mousePoint.y; + MwLLDispatch(this, move, &mouse); + [this->cocoa.real nudge]; + [super mouseMoved:ev]; +} +- (void)mouseDown:(NSEvent*)ev { + MwLLMouse mouse; + NSPoint mousePoint = [ev locationInWindow]; + MwLL this = [((MilskoFakePointer*)[[self subviews] objectAtIndex:0]) pointer]; + mousePoint.y = [[ev window] frame].size.height - mousePoint.y; + mouse.button = MwLLMouseLeft; + mouse.point.x = mousePoint.x; + mouse.point.y = mousePoint.y; + MwLLDispatch(this, down, &mouse); + [this->cocoa.real nudge]; + [super mouseDown:ev]; +} + +- (void)mouseUp:(NSEvent*)ev { + MwLLMouse mouse; + NSPoint mousePoint = [ev locationInWindow]; + MwLL this = [((MilskoFakePointer*)[[self subviews] objectAtIndex:0]) pointer]; + mousePoint.y = [[ev window] frame].size.height - mousePoint.y; + mouse.button = MwLLMouseLeft; + mouse.point.x = mousePoint.x; + mouse.point.y = mousePoint.y; + MwLLDispatch(this, up, &mouse); + [this->cocoa.real nudge]; + [super mouseUp:ev]; +} +- (void)rightMouseDown:(NSEvent*)ev { + MwLLMouse mouse; + NSPoint mousePoint = [ev locationInWindow]; + MwLL this = [((MilskoFakePointer*)[[self subviews] objectAtIndex:0]) pointer]; + mousePoint.y = [[ev window] frame].size.height - mousePoint.y; + mouse.button = MwLLMouseRight; + mouse.point.x = mousePoint.x; + mouse.point.y = mousePoint.y; + MwLLDispatch(this, down, &mouse); + [this->cocoa.real nudge]; + [super rightMouseDown:ev]; +} + +- (void)rightMouseUp:(NSEvent*)ev { + MwLLMouse mouse; + NSPoint mousePoint = [ev locationInWindow]; + MwLL this = [((MilskoFakePointer*)[[self subviews] objectAtIndex:0]) pointer]; + mousePoint.y = [[ev window] frame].size.height - mousePoint.y; + mouse.button = MwLLMouseRight; + mouse.point.x = mousePoint.x; + mouse.point.y = mousePoint.y; + MwLLDispatch(this, up, &mouse); + [this->cocoa.real nudge]; + [super rightMouseUp:ev]; } @end From 74779c8f4233192f9fa47771a11de395ead0f734 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 25 Mar 2026 18:21:27 -0700 Subject: [PATCH 261/836] apple: better polygons, revealing a bigger issue maybe --- src/backend/cocoa.m | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index d3fec7ebb..114cb3a5e 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -243,14 +243,16 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { [NSGraphicsContext setCurrentContext:ctx]; [nscolor setFill]; - NSRectFill(self->view.bounds); for(i = 0; i < points_count; i++) { - if(i == 0) { - [path moveToPoint:NSMakePoint(points[i].x, - _rect.size.height - points[i].y)]; + NSPoint p = NSMakePoint(points[i].x, [self->view frame].size.height - points[i].y); + if((i % 3) == 0) { + if(i != 0) { + [path lineToPoint:p]; + [path fill]; + } + [path moveToPoint:p]; } else { - [path lineToPoint:NSMakePoint(points[i].x, - _rect.size.height - points[i].y)]; + [path lineToPoint:p]; } } From bcb108ae5f52a5c3b6a3cbee4c6b8f96f1f5cb8f Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 25 Mar 2026 18:47:58 -0700 Subject: [PATCH 262/836] apple: 'more correct' polygons weren't correct at all --- src/backend/cocoa.m | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 114cb3a5e..57dea3be2 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -245,11 +245,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { [nscolor setFill]; for(i = 0; i < points_count; i++) { NSPoint p = NSMakePoint(points[i].x, [self->view frame].size.height - points[i].y); - if((i % 3) == 0) { - if(i != 0) { - [path lineToPoint:p]; - [path fill]; - } + if(i == 0) { [path moveToPoint:p]; } else { [path lineToPoint:p]; From 0bbbc51bb9f9418cbcd7c531125efc5dcb5f9557 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 25 Mar 2026 18:53:13 -0700 Subject: [PATCH 263/836] apple: fix polygon/pixmap coordinates, add line function --- src/backend/cocoa.m | 44 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 57dea3be2..1632271e5 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -34,6 +34,9 @@ static NSRect localRectFlip(NSRect originFrame, NSView* view) { originFrame.size.width, originFrame.size.height); return destinationFrame; } +static NSPoint localPointFlip(NSPoint point, NSView* view) { + return localRectFlip(NSMakeRect(point.x, point.y, 0, 0), view).origin; +} /* Recursively dispatch a key event to a widget and its children */ static void recursive_dispatch_key(MwLL handle, int* k) { @@ -244,7 +247,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { [nscolor setFill]; for(i = 0; i < points_count; i++) { - NSPoint p = NSMakePoint(points[i].x, [self->view frame].size.height - points[i].y); + NSPoint p = localPointFlip(NSMakePoint(points[i].x, points[i].y), self->view); if(i == 0) { [path moveToPoint:p]; } else { @@ -262,8 +265,41 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { [pool release]; }; - (void)lineWithPoints:(MwPoint*)points color:(MwLLColor)color { - (void)points; - (void)color; + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + NSGraphicsContext* ctx = [self->view context]; + if(ctx) { + int i; + NSBezierPath* path = [NSBezierPath bezierPath]; + /* whatever rect we use for coordinate flipping */ + NSRect _rect = parent ? [self->view bounds] : [self->window frame]; + + NSColor* nscolor = + [NSColor colorWithCalibratedRed:color->common.red / 255. + green:color->common.green / 255. + blue:color->common.blue / 255. + alpha:1.0]; + + [NSGraphicsContext saveGraphicsState]; + [NSGraphicsContext setCurrentContext:ctx]; + + [nscolor setFill]; + for(i = 0; i < 2; i++) { + NSPoint p = localPointFlip(NSMakePoint(points[i].x, points[i].y), self->view); + if(i == 0) { + [path moveToPoint:p]; + } else { + [path lineToPoint:p]; + } + } + + [path closePath]; + [path stroke]; + + [NSGraphicsContext restoreGraphicsState]; + + [self->view setNeedsDisplay:YES]; + } + [pool release]; }; - (void)getX:(int*)x Y:(int*)y W:(unsigned int*)w H:(unsigned int*)h { NSRect frame; @@ -394,7 +430,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { [NSGraphicsContext setCurrentContext:ctx]; [[p image] - drawInRect:NSMakeRect(_rect->x, _rect->y, _rect->width, _rect->height) + drawInRect:localRectFlip(NSMakeRect(_rect->x, _rect->y, _rect->width, _rect->height), self->view) fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0]; From 90706b184f0c9e936c1481933fa2c584e91ae95a Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 25 Mar 2026 19:09:01 -0700 Subject: [PATCH 264/836] apple: assorted fixes --- src/backend/cocoa.m | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 1632271e5..7a138af40 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1,9 +1,6 @@ -#include "Mw/BaseTypes.h" -#include "Mw/LowLevel.h" #include -#include #include "../../external/stb_ds.h" -#include "Mw/TypeDefs.h" +#include "Mw/LowLevel/Cocoa.h" #ifdef __clang__ #pragma clang push @@ -904,9 +901,8 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { - (void)mouseMoved:(NSEvent*)ev { MwLLMouse mouse; - NSPoint mousePoint = [ev locationInWindow]; + NSPoint mousePoint = pointFlip([ev locationInWindow]); MwLL this = [((MilskoFakePointer*)[[self subviews] objectAtIndex:0]) pointer]; - mousePoint.y = [[ev window] frame].size.height - mousePoint.y; mouse.button = MwLLMouseLeft; mouse.point.x = mousePoint.x; mouse.point.y = mousePoint.y; @@ -914,6 +910,10 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { [this->cocoa.real nudge]; [super mouseMoved:ev]; } +- (BOOL)mouseDownCanMoveWindow { + return NO; +} + - (void)mouseDown:(NSEvent*)ev { MwLLMouse mouse; NSPoint mousePoint = [ev locationInWindow]; @@ -990,11 +990,12 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { - (NSSize)windowWillResize:(NSWindow*)win toSize:(NSSize)frameSize; { if([[[win contentView] subviews] count] >= 1) { - MilskoFakePointer* ptr = [[[win contentView] subviews] objectAtIndex:0]; - MwLL h = [ptr pointer]; - - MwLLDispatch(h, resize, NULL); - MwLLDispatch(h, draw, NULL); + NSView* ptr = [[[win contentView] subviews] objectAtIndex:0]; + if([ptr isKindOfClass:[MilskoFakePointer class]]) { + MwLL h = [(MilskoFakePointer*)ptr pointer]; + MwLLDispatch(h, resize, NULL); + // MwLLDispatch(h, draw, NULL); + } } return frameSize; } @@ -1159,6 +1160,7 @@ static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, (void)handle; MwLLPixmap r = malloc(sizeof(*r)); + memset(r, 0, sizeof(*r)); r->common.raw = malloc(4 * width * height); memcpy(r->common.raw, data, 4 * width * height); @@ -1169,7 +1171,6 @@ static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, r->cocoa.real = [MilskoCocoaPixmap newWithWidth:width height:height]; MwLLPixmapUpdate(r); - free(r->common.raw); return r; } From 6ba77904d62df440f79c4b349b4afb3c1eb3db83 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 25 Mar 2026 21:06:32 -0700 Subject: [PATCH 265/836] fix hitTest --- src/backend/cocoa.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 7a138af40..04ce17edf 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -737,7 +737,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { - (NSView*)hitTest:(NSPoint)aPoint { if(self->_child) { - return NSPointInRect(aPoint, givenRect) ? self : nil; + return NSPointInRect(aPoint, [self bounds]) ? self : nil; } else { return [super hitTest:aPoint]; } From 70f7f8f0842f33e4c28c091ee9f812cd6e22ebd7 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 27 Mar 2026 11:05:15 +0900 Subject: [PATCH 266/836] fix box bug --- src/widget/box.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/widget/box.c b/src/widget/box.c index 99f3e0772..4c4ae687c 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -53,6 +53,7 @@ static void layout(MwWidget handle) { sz -= s + Margin; } else { sum += n; + sz -= Margin; } } From 8d7016367e8f2f40b9d91899250e1999fa1a5304 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 26 Mar 2026 14:40:21 -0700 Subject: [PATCH 267/836] experimental rounded corners idea --- include/Mw/Draw.h | 6 +- include/Mw/LowLevel.h | 9 +- include/Mw/LowLevel/Wayland.h | 3 + src/backend/wayland.c | 3 + src/draw.c | 232 ++++++++++++++++++++++++++++------ src/widget/box.c | 2 +- src/widget/combobox.c | 2 +- src/widget/frame.c | 2 +- src/widget/image.c | 2 +- src/widget/listbox.c | 6 +- src/widget/menu.c | 2 +- src/widget/progressbar.c | 2 +- src/widget/separator.c | 2 +- src/widget/submenu.c | 2 +- src/widget/treeview.c | 8 +- src/widget/window.c | 2 +- 16 files changed, 223 insertions(+), 62 deletions(-) diff --git a/include/Mw/Draw.h b/include/Mw/Draw.h index b90d4e423..4fb74c201 100644 --- a/include/Mw/Draw.h +++ b/include/Mw/Draw.h @@ -53,7 +53,7 @@ MWDECL void MwDrawRect(MwWidget handle, MwRect* rect, MwLLColor color); * @param rect Rectangle area * @param color Color */ -MWDECL void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color); +MWDECL void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color, int rounded); /*! * @brief Draws a frame @@ -63,7 +63,7 @@ MWDECL void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color); * @param invert Invert the 3D border color or not * @warning `rect` gets changed to the area of rectangle inside */ -MWDECL void MwDrawFrame(MwWidget handle, MwRect* rect, MwLLColor color, int invert); +MWDECL void MwDrawFrame(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int rounded); /*! * @brief Does the DrawFrame/DrawRect combo used for drawing widget. @@ -95,7 +95,7 @@ MWDECL void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int i * @param same Same as dark color * @warning `rect` gets changed to the area of rectangle inside */ -MWDECL void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border, int diff, int same); +MWDECL void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border, int diff, int same, int rounded); /*! * @brief Creates a pixmap from image diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 9766d052f..d7ddb4b45 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -34,10 +34,11 @@ enum MwLLBackends { }; struct _MwLLCommon { - void* user; - int copy_buffer; - int type; - int coordinate_type; + void* user; + int copy_buffer; + int type; + int coordinate_type; + MwBool supports_transparency; MwLLHandler handler; }; diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index c24ce3cec..de7828ad5 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -123,6 +123,7 @@ typedef struct wayland_call_table { void (*cairo_fill)(cairo_t* cr); void (*cairo_pattern_set_filter)(cairo_pattern_t* pattern, cairo_filter_t filter); + void (*cairo_set_antialias)(cairo_t*, cairo_antialias_t); } wayland_call_table_t; @@ -201,6 +202,7 @@ MwInline int wayland_load_funcs() { CAIRO_FUNC(cairo_rectangle); CAIRO_FUNC(cairo_new_path); CAIRO_FUNC(cairo_set_line_cap); + CAIRO_FUNC(cairo_set_antialias); CAIRO_FUNC(cairo_set_source_rgba); CAIRO_FUNC(cairo_set_source_rgb); CAIRO_FUNC(cairo_reset_clip); @@ -257,6 +259,7 @@ MwInline int wayland_load_funcs() { #define cairo_rectangle wl_call_tbl.cairo_rectangle #define cairo_new_path wl_call_tbl.cairo_new_path #define cairo_set_line_cap wl_call_tbl.cairo_set_line_cap +#define cairo_set_antialias wl_call_tbl.cairo_set_antialias #define cairo_set_source_rgba wl_call_tbl.cairo_set_source_rgba #define cairo_set_source_rgb wl_call_tbl.cairo_set_source_rgb #define cairo_reset_clip wl_call_tbl.cairo_reset_clip diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 5ba779b1c..f747955e2 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1972,6 +1972,9 @@ static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLL static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { int i; + clip(handle); + + cairo_set_antialias(handle->wayland.front_cairo, CAIRO_ANTIALIAS_NONE); cairo_set_line_cap(handle->wayland.front_cairo, CAIRO_LINE_CAP_SQUARE); cairo_set_source_rgb(handle->wayland.front_cairo, color->common.red / 255.0, color->common.green / 255.0, color->common.blue / 255.0); cairo_new_path(handle->wayland.front_cairo); diff --git a/src/draw.c b/src/draw.c index 4286d6696..274623772 100644 --- a/src/draw.c +++ b/src/draw.c @@ -11,9 +11,12 @@ #include "../external/stb_ds.h" +#define BORDER_ROUNDNESS 10 +#define BORDER_SMOOTHNESS 50 + static int get_color_diff(MwWidget handle) { if(MwGetInteger(handle, MwNmodernLook)) { - return 46; + return 23; } else { return 80; } @@ -29,7 +32,7 @@ static int hex(const char* txt, int len) { n = c - 'a' + 10; } else if('A' <= c && c <= 'F') { n = c - 'A' + 10; - } else if('0' <= c && c <= '9') { + } else if('0' <= c && c <= 'g') { n = c - '0'; } r = r << 4; @@ -102,14 +105,15 @@ void MwDrawRect(MwWidget handle, MwRect* rect, MwLLColor color) { MwLLPolygon(handle->lowlevel, p, 4, color); } -void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color) { +void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color, int rounded) { MwLLPixmap pixmap; - int y; + int y, i; double darken = 0.; int ColorDiff = get_color_diff(handle); double darkenStep = (ColorDiff / 4.) / rect->height; unsigned long sz = 1 * rect->height * 4; unsigned char* data = malloc(sz); + MwRect r = *rect; memset(data, 0, sz); for(y = 0; y < rect->height; y++) { @@ -124,18 +128,64 @@ void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color) { } pixmap = MwLLCreatePixmap(handle->lowlevel, data, 1, rect->height); - MwLLDrawPixmap(handle->lowlevel, rect, pixmap); + if(rounded && rect->height >= (BORDER_ROUNDNESS * 2) && rect->width >= (BORDER_ROUNDNESS * 2)) { + int xt; + int x = rect->x + (BORDER_ROUNDNESS + 1); + int y = rect->y + (BORDER_ROUNDNESS + 1); + for(i = 0; i < BORDER_ROUNDNESS; i++) { + double point = ((i + (M_PI * 4)) / 7.); + double point2 = (((i + 1) + (M_PI * 4)) / 7.); + int x2 = x - (sin(point2) * BORDER_ROUNDNESS); + r.x = x - (sin(point) * BORDER_ROUNDNESS); + r.y = y + (cos(point) * BORDER_ROUNDNESS); + r.width = (x - (sin(point + 1) * BORDER_ROUNDNESS)) - r.x; + r.height = (rect->height - ((r.y - rect->y) * 2) - 1); + MwLLDrawPixmap(handle->lowlevel, &r, pixmap); + for(xt = x; xt < x2; xt++) { + r.x = xt; + r.y = y + (cos(point2) * BORDER_ROUNDNESS); + r.height = (rect->height - ((r.y - rect->y)) - 1); + MwLLDrawPixmap(handle->lowlevel, &r, pixmap); + } + } + r = *rect; + r.x += BORDER_ROUNDNESS; + r.width -= (BORDER_ROUNDNESS * 2); + r.height -= 1; + MwLLDrawPixmap(handle->lowlevel, &r, pixmap); + r = *rect; + x = (rect->x + rect->width) - (BORDER_ROUNDNESS + 2); + y = rect->y + (BORDER_ROUNDNESS + 1); + for(i = 0; i < BORDER_ROUNDNESS; i++) { + double point = ((i + (M_PI * 4)) / 7.); + double point2 = (((i + 1) + (M_PI * 4)) / 7.); + int x2 = x + (sin(point2) * BORDER_ROUNDNESS); + r.x = x + (sin(point) * BORDER_ROUNDNESS); + r.y = y + (cos(point) * BORDER_ROUNDNESS); + r.width = 1; + r.height = (rect->height - ((r.y - rect->y) * 2) - 1); + MwLLDrawPixmap(handle->lowlevel, &r, pixmap); + for(xt = x; xt < x2; xt++) { + r.x = xt; + r.y = y + (cos(point2) * BORDER_ROUNDNESS); + r.height = (rect->height - ((r.y - rect->y) * 2) - 2); + MwLLDrawPixmap(handle->lowlevel, &r, pixmap); + } + } + } else { + MwLLDrawPixmap(handle->lowlevel, &r, pixmap); + } MwLLDestroyPixmap(pixmap); free(data); } -void MwDrawFrame(MwWidget handle, MwRect* rect, MwLLColor color, int invert) { +void MwDrawFrame(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int rounded) { int inv; if((inv = MwGetInteger(handle, MwNforceInverted)) != MwDEFAULT && inv) invert = 1; if(MwGetInteger(handle, MwNmodernLook)) { - MwDrawFrameEx(handle, rect, color, invert, MwDefaultBorderWidth(handle), 0, 0); + MwDrawFrameEx(handle, rect, color, invert, MwDefaultBorderWidth(handle), 0, 0, rounded); } else { int diff = get_color_diff(handle) / 3 * 2; @@ -143,11 +193,11 @@ void MwDrawFrame(MwWidget handle, MwRect* rect, MwLLColor color, int invert) { int i; int st = invert ? 1 : 0; for(i = st; i < st + 2; i++) { - if((i % 2) == 0) MwDrawFrameEx(handle, rect, color, invert, MwDefaultBorderWidth(handle) - 1, -diff, (handle->parent == NULL || handle->parent->lowlevel == NULL) ? 1 : 0); - if((i % 2) == 1) MwDrawFrameEx(handle, rect, color, invert, 1, diff, 0); + if((i % 2) == 0) MwDrawFrameEx(handle, rect, color, invert, MwDefaultBorderWidth(handle) - 1, -diff, (handle->parent == NULL || handle->parent->lowlevel == NULL) ? 1 : 0, 0); + if((i % 2) == 1) MwDrawFrameEx(handle, rect, color, invert, 1, diff, 0, 0); } } else { - MwDrawFrameEx(handle, rect, color, invert, 1, 0, 0); + MwDrawFrameEx(handle, rect, color, invert, 1, 0, 0, 0); } } } @@ -156,11 +206,11 @@ void MwDrawWidgetBack(MwWidget handle, MwRect* rect, MwLLColor color, int invert MwLLColor col; if(border) { - MwDrawFrame(handle, rect, color, invert); + MwDrawFrame(handle, rect, color, invert, handle->lowlevel->common.supports_transparency); } col = invert ? MwLightenColor(handle, color, -8, -8, -8) : color; if(MwGetInteger(handle, MwNmodernLook)) { - MwDrawRectFading(handle, rect, col); + MwDrawRectFading(handle, rect, col, handle->lowlevel->common.supports_transparency); } else { MwDrawRect(handle, rect, col); } @@ -234,54 +284,158 @@ void MwDrawDiamond(MwWidget handle, MwRect* rect, MwLLColor color, int invert) { MwLLFreeColor(darker); } -void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border, int diff, int same) { - MwPoint p[6]; +void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border, int diff, int same, int rounded) { + MwPoint p[7]; int ColorDiff = get_color_diff(handle); MwLLColor darker = MwLightenColor(handle, color, -ColorDiff * 3 / 2 + diff, -ColorDiff * 3 / 2 + diff, -ColorDiff * 3 / 2 + diff); MwLLColor lighter = same ? MwLightenColor(handle, darker, 0, 0, 0) : MwLightenColor(handle, color, ColorDiff - diff, ColorDiff - diff, ColorDiff - diff); + int i; + MwLLColor middle = MwLLAllocColor(handle->lowlevel, + (lighter->common.red * darker->common.red) / 255, + (lighter->common.green * darker->common.green) / 255, + (lighter->common.blue * darker->common.blue) / 255); - p[0].x = rect->x; - p[0].y = rect->y; + if(rounded) { + /* top left edge */ + for(i = 0; i < BORDER_SMOOTHNESS; i += 2) { + MwPoint line[2]; + double point = ((i + (M_PI * (BORDER_SMOOTHNESS / 2.))) / (BORDER_SMOOTHNESS)); + int x = rect->x + (BORDER_ROUNDNESS + 2); + int y = rect->y + (BORDER_ROUNDNESS + 2); - p[1].x = rect->x + rect->width; - p[1].y = rect->y; + line[0].x = x - (sin(point) * BORDER_ROUNDNESS); + line[0].y = y + (cos(point) * BORDER_ROUNDNESS); + line[1].x = x - (sin(point + 1) * BORDER_ROUNDNESS); + line[1].y = y + (cos(point + 1) * BORDER_ROUNDNESS); + MwLLLine(handle->lowlevel, line, invert ? darker : lighter); + } - p[2].x = rect->x + rect->width - border; - p[2].y = rect->y + border; + p[0].x = rect->x + BORDER_ROUNDNESS; + p[0].y = rect->y; - p[3].x = rect->x + border; - p[3].y = rect->y + border; + p[1].x = rect->x + rect->width - BORDER_ROUNDNESS; + p[1].y = rect->y; - p[4].x = rect->x + border; - p[4].y = rect->y + rect->height - border; + p[2].x = rect->x + rect->width - border - BORDER_ROUNDNESS; + p[2].y = rect->y + border; - p[5].x = rect->x; - p[5].y = rect->y + rect->height; + p[3].x = rect->x + border - BORDER_ROUNDNESS; + p[3].y = rect->y + border + BORDER_ROUNDNESS; + p[4].x = rect->x + border - BORDER_ROUNDNESS; + p[4].y = rect->y + rect->height - border - BORDER_ROUNDNESS; + + p[5].x = rect->x + BORDER_ROUNDNESS; + p[5].y = rect->y + rect->height - BORDER_ROUNDNESS; + MwLLPolygon(handle->lowlevel, p, 6, invert ? darker : lighter); + + /* top right edge */ + for(i = 0; i < BORDER_SMOOTHNESS; i += 2) { + MwPoint line[2]; + double point = ((i + (M_PI * (BORDER_SMOOTHNESS / 2.))) / (BORDER_SMOOTHNESS)); + int x = (rect->x + rect->width) - (BORDER_ROUNDNESS + 2); + int y = rect->y + (BORDER_ROUNDNESS + 2); + double placeholder = (sin(point) * BORDER_ROUNDNESS); + line[0].x = x + placeholder; + line[0].y = y + (cos(point) * BORDER_ROUNDNESS); + line[1].x = x + (sin(point + 1) * BORDER_ROUNDNESS); + line[1].y = y + (cos(point + 1) * BORDER_ROUNDNESS); + MwLLLine(handle->lowlevel, line, middle); + } + } else { + p[0].x = rect->x; + p[0].y = rect->y; + + p[1].x = rect->x + rect->width; + p[1].y = rect->y; + + p[2].x = rect->x + rect->width - border; + p[2].y = rect->y + border; + p[3].x = rect->x + border; + p[3].y = rect->y + border; + + p[4].x = rect->x + border; + p[4].y = rect->y + rect->height - border; + + p[5].x = rect->x; + p[5].y = rect->y + rect->height; + } MwLLPolygon(handle->lowlevel, p, 6, invert ? darker : lighter); - p[0].x = rect->x + rect->width; - p[0].y = rect->y; + if(rounded && rect->height >= (BORDER_ROUNDNESS * 2) && rect->width >= (BORDER_ROUNDNESS * 2)) { + /* bottom left edge */ + for(i = 0; i < BORDER_SMOOTHNESS; i += 2) { + MwPoint line[2]; + double point = ((i + (M_PI * (BORDER_SMOOTHNESS / 2.))) / (BORDER_SMOOTHNESS)); + int x = rect->x + (BORDER_ROUNDNESS + 2); + int y = (rect->y + rect->height) - (BORDER_ROUNDNESS + 2); - p[1].x = rect->x + rect->width - border; - p[1].y = rect->y + border; + line[0].x = x - (sin(point) * BORDER_ROUNDNESS); + line[0].y = y - (cos(point) * BORDER_ROUNDNESS); + line[1].x = x - (sin(point + 1) * BORDER_ROUNDNESS); + line[1].y = y - (cos(point + 1) * BORDER_ROUNDNESS); + MwLLLine(handle->lowlevel, line, middle); + } + p[0].x = rect->x + BORDER_ROUNDNESS; + p[0].y = rect->y + 1; - p[2].x = rect->x + rect->width - border; - p[2].y = rect->y + rect->height - border; + p[1].x = rect->x + rect->width - border; + p[1].y = rect->y + border + BORDER_ROUNDNESS; - p[3].x = rect->x + border; - p[3].y = rect->y + rect->height - border; + p[2].x = rect->x + rect->width - border; + p[2].y = rect->y + rect->height - border - BORDER_ROUNDNESS; - p[4].x = rect->x; - p[4].y = rect->y + rect->height; + p[3].x = rect->x + rect->width - border - BORDER_ROUNDNESS; + p[3].y = rect->y + rect->height - border; - p[5].x = rect->x + rect->width; - p[5].y = rect->y + rect->height; + p[4].x = rect->x + border + BORDER_ROUNDNESS; + p[4].y = rect->y + rect->height - border; - MwLLPolygon(handle->lowlevel, p, 6, invert ? lighter : darker); + p[5].x = rect->x + BORDER_ROUNDNESS; + p[5].y = rect->y + rect->height - BORDER_ROUNDNESS; + + p[6].x = rect->x + rect->width - BORDER_ROUNDNESS; + p[6].y = rect->y + rect->height - BORDER_ROUNDNESS; + + MwLLPolygon(handle->lowlevel, p, 7, invert ? lighter : darker); + + /* bottom right edge */ + for(i = 0; i < BORDER_SMOOTHNESS; i += 2) { + MwPoint line[2]; + double point = ((i + (M_PI * (BORDER_SMOOTHNESS / 2.))) / (BORDER_SMOOTHNESS)); + int x = (rect->x + rect->width) - (BORDER_ROUNDNESS + 2); + int y = (rect->y + rect->height) - (BORDER_ROUNDNESS + 2); + + line[0].x = x + (sin(point) * BORDER_ROUNDNESS); + line[0].y = y - (cos(point) * BORDER_ROUNDNESS); + line[1].x = x + (sin(point + 1) * BORDER_ROUNDNESS); + line[1].y = y - (cos(point + 1) * BORDER_ROUNDNESS); + MwLLLine(handle->lowlevel, line, middle); + } + } else { + p[0].x = rect->x + rect->width; + p[0].y = rect->y; + + p[1].x = rect->x + rect->width - border; + p[1].y = rect->y + border; + + p[2].x = rect->x + rect->width - border; + p[2].y = rect->y + rect->height - border; + + p[3].x = rect->x + border; + p[3].y = rect->y + rect->height - border; + + p[4].x = rect->x; + p[4].y = rect->y + rect->height; + + p[5].x = rect->x + rect->width; + p[5].y = rect->y + rect->height; + MwLLPolygon(handle->lowlevel, p, 6, invert ? lighter : darker); + } MwLLFreeColor(lighter); MwLLFreeColor(darker); + MwLLFreeColor(middle); rect->x += border; rect->y += border; diff --git a/src/widget/box.c b/src/widget/box.c index 4c4ae687c..d8d474519 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -24,7 +24,7 @@ static void draw(MwWidget handle) { r.height = MwGetInteger(handle, MwNheight); if(MwGetInteger(handle, MwNhasBorder)) { - MwDrawFrame(handle, &r, base, MwGetInteger(handle, MwNinverted)); + MwDrawFrame(handle, &r, base, MwGetInteger(handle, MwNinverted), 0); } MwDrawRect(handle, &r, base); diff --git a/src/widget/combobox.c b/src/widget/combobox.c index 6b5437335..0672ff3ad 100644 --- a/src/widget/combobox.c +++ b/src/widget/combobox.c @@ -72,7 +72,7 @@ static void draw(MwWidget handle) { r.y += r.height; r.height = MwDefaultBorderWidth(handle) * 2; - MwDrawFrame(handle, &r, base, 0); + MwDrawFrame(handle, &r, base, 0, 0); MwLLFreeColor(text); MwLLFreeColor(base); diff --git a/src/widget/frame.c b/src/widget/frame.c index 117b0f8b9..3c2ffe99f 100644 --- a/src/widget/frame.c +++ b/src/widget/frame.c @@ -22,7 +22,7 @@ static void draw(MwWidget handle) { fr.y = 0; fr.width = MwGetInteger(handle, MwNwidth); fr.height = MwGetInteger(handle, MwNheight); - MwDrawFrame(handle, &fr, base, inverted); + MwDrawFrame(handle, &fr, base, inverted, 0); rr.x = MwDefaultBorderWidth(handle); rr.y = MwDefaultBorderWidth(handle); diff --git a/src/widget/image.c b/src/widget/image.c index 74ee0bfd6..cadddb323 100644 --- a/src/widget/image.c +++ b/src/widget/image.c @@ -20,7 +20,7 @@ static void draw(MwWidget handle) { r.width = MwGetInteger(handle, MwNwidth); r.height = MwGetInteger(handle, MwNheight); - if(MwGetInteger(handle, MwNhasBorder)) MwDrawFrame(handle, &r, base, MwGetInteger(handle, MwNinverted)); + if(MwGetInteger(handle, MwNhasBorder)) MwDrawFrame(handle, &r, base, MwGetInteger(handle, MwNinverted), 0); MwDrawRect(handle, &r, base); if(px != NULL) { diff --git a/src/widget/listbox.c b/src/widget/listbox.c index cb84e44c4..be467084a 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -208,7 +208,7 @@ static void frame_draw(MwWidget handle) { p.x = MwDefaultBorderWidth(handle); p.y = MwDefaultBorderWidth(handle); - MwDrawFrame(handle, &r, base, 1); + MwDrawFrame(handle, &r, base, 1, 0); MwDrawRect(handle, &r, base2); r = r2; @@ -282,7 +282,7 @@ static void frame_draw(MwWidget handle) { handle->bgcolor = NULL; } - MwDrawFrame(handle, &r, base, 1); + MwDrawFrame(handle, &r, base, 1, 0); MwLLFreeColor(text2); MwLLFreeColor(text); @@ -401,7 +401,7 @@ static void draw(MwWidget handle) { r.y = 0; r.width = get_col_width(lb, i); r.height = MwDefaultBorderWidth(handle) * 2 + MwTextHeight(handle, "M"); - MwDrawFrame(handle, &r, base, 0); + MwDrawFrame(handle, &r, base, 0, 0); x += MwDefaultBorderWidth(handle); diff --git a/src/widget/menu.c b/src/widget/menu.c index 44fc2fe57..e360f3d91 100644 --- a/src/widget/menu.c +++ b/src/widget/menu.c @@ -100,7 +100,7 @@ static void draw(MwWidget handle) { BEGIN_MENU_LOOP; if(m->sub[i]->wsub != NULL || (in_area && handle->pressed)) { - MwDrawFrame(handle, &r, base, MwFALSE); + MwDrawFrame(handle, &r, base, MwFALSE, 0); MwDrawWidgetBack(handle, &r, base, 0, MwFALSE); } diff --git a/src/widget/progressbar.c b/src/widget/progressbar.c index d85a8ddaf..7be7bffd7 100644 --- a/src/widget/progressbar.c +++ b/src/widget/progressbar.c @@ -23,7 +23,7 @@ static void draw(MwWidget handle) { r.width = MwGetInteger(handle, MwNwidth); r.height = MwGetInteger(handle, MwNheight); - MwDrawFrame(handle, &r, base, 1); + MwDrawFrame(handle, &r, base, 1, 0); MwDrawRect(handle, &r, base); w = MwGetInteger(handle, MwNvalue) - MwGetInteger(handle, MwNminValue); w = w / (MwGetInteger(handle, MwNmaxValue) - MwGetInteger(handle, MwNminValue)); diff --git a/src/widget/separator.c b/src/widget/separator.c index 8fcfc5b71..571c5dfa9 100644 --- a/src/widget/separator.c +++ b/src/widget/separator.c @@ -25,7 +25,7 @@ static void draw(MwWidget handle) { r.y = (r.height - 2) / 2; r.height = 2; } - MwDrawFrameEx(handle, &r, base, 1, 1, 0, 0); + MwDrawFrameEx(handle, &r, base, 1, 1, 0, 0, MwGetInteger(handle, MwNmodernLook)); MwLLFreeColor(base); } diff --git a/src/widget/submenu.c b/src/widget/submenu.c index 828155014..88607ffc0 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -59,7 +59,7 @@ static void draw(MwWidget handle) { rc.x += MwGetInteger(handle, MwNleftPadding); - MwDrawFrameEx(handle, &rc, base, 1, 1, 0, 0); + MwDrawFrameEx(handle, &rc, base, 1, 1, 0, 0, 0); p.y += 2 + 1; } else { diff --git a/src/widget/treeview.c b/src/widget/treeview.c index 76e1e0139..3a335be32 100644 --- a/src/widget/treeview.c +++ b/src/widget/treeview.c @@ -64,7 +64,7 @@ static void recursion(MwWidget handle, MwTreeViewEntry* tree, MwTreeViewEntry** const int len = 4; MwDrawRect(handle, &r, col); - MwDrawFrame(handle, &r, base, tree->opened); + MwDrawFrame(handle, &r, base, tree->opened, 0); if(tree->opened) { l[0].x = r.x + (r.width - len) / 2; l[0].y = r.y + r.height / 2; @@ -91,7 +91,7 @@ static void recursion(MwWidget handle, MwTreeViewEntry* tree, MwTreeViewEntry** MwLLLine(handle->lowlevel, &l[0], text); } r = r2; - MwDrawFrame(handle, &r, base, tree->opened); + MwDrawFrame(handle, &r, base, tree->opened, 0); if(col != base) MwLLFreeColor(col); } else { @@ -183,7 +183,7 @@ static void frame_draw(MwWidget handle) { p.x = MwDefaultBorderWidth(handle); p.y = MwDefaultBorderWidth(handle); - MwDrawFrame(handle, &r, base, 1); + MwDrawFrame(handle, &r, base, 1, 0); MwDrawRect(handle, &r, base2); r = r2; @@ -193,7 +193,7 @@ static void frame_draw(MwWidget handle) { recursion(handle, tv->tree[i], tv->tree, base, text, base2, text2, &p, 0, LineSpace, &skip, &shared, 1, NULL); } - MwDrawFrame(handle, &r, base, 1); + MwDrawFrame(handle, &r, base, 1, 0); MwLLFreeColor(text2); MwLLFreeColor(text); diff --git a/src/widget/window.c b/src/widget/window.c index 979e073c8..74a96e61e 100644 --- a/src/widget/window.c +++ b/src/widget/window.c @@ -18,7 +18,7 @@ static void draw(MwWidget handle) { r.width = MwGetInteger(handle, MwNwidth); r.height = MwGetInteger(handle, MwNheight); - if(MwGetInteger(handle, MwNhasBorder)) MwDrawFrame(handle, &r, c, MwGetInteger(handle, MwNinverted)); + if(MwGetInteger(handle, MwNhasBorder)) MwDrawFrame(handle, &r, c, MwGetInteger(handle, MwNinverted), 0); MwDrawRect(handle, &r, c); From 548d6c46fd2d7b9df2f75b7c9ab8c8df4169f17e Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 26 Mar 2026 15:17:01 -0700 Subject: [PATCH 268/836] r --- include/Mw/StringDefs.h | 1 + src/backend/wayland.c | 1 + src/draw.c | 152 +++++++++++++++++++++------------------- 3 files changed, 82 insertions(+), 72 deletions(-) diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index db597889f..832096338 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -39,6 +39,7 @@ #define MwNsevenSegment "IsevenSegment" #define MwNlength "Ilength" #define MwNforceInverted "IforceInverted" +#define MwNroundness "Iroundness" #define MwNtitle "Stitle" #define MwNtext "Stext" diff --git a/src/backend/wayland.c b/src/backend/wayland.c index f747955e2..d43a2c595 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1719,6 +1719,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r = malloc(sizeof(*r)); memset(r, 0, sizeof(*r)); MwLLCreateCommon(r); + r->common.supports_transparency = MwTRUE; widget_setup(r, parent, x, y, width, height, MWLL_WAYLAND_UNKNOWN); diff --git a/src/draw.c b/src/draw.c index 274623772..e367c2f78 100644 --- a/src/draw.c +++ b/src/draw.c @@ -11,7 +11,8 @@ #include "../external/stb_ds.h" -#define BORDER_ROUNDNESS 10 +#define DEFAULT_ROUNDNESS 10 +#define MAX_ROUNDNESS 30 #define BORDER_SMOOTHNESS 50 static int get_color_diff(MwWidget handle) { @@ -114,6 +115,11 @@ void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color, int rounde unsigned long sz = 1 * rect->height * 4; unsigned char* data = malloc(sz); MwRect r = *rect; + int roundness = MwGetInteger(handle, MwNroundness); + double h; + if(roundness == MwDEFAULT) roundness = DEFAULT_ROUNDNESS; + if(roundness >= MAX_ROUNDNESS) roundness = MAX_ROUNDNESS; + h = (roundness <= 10) ? 7. : 10.; memset(data, 0, sz); for(y = 0; y < rect->height; y++) { @@ -128,46 +134,46 @@ void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color, int rounde } pixmap = MwLLCreatePixmap(handle->lowlevel, data, 1, rect->height); - if(rounded && rect->height >= (BORDER_ROUNDNESS * 2) && rect->width >= (BORDER_ROUNDNESS * 2)) { + if(rounded && rect->height >= (roundness * 2) && rect->width >= (roundness * 2) && roundness > 0) { int xt; - int x = rect->x + (BORDER_ROUNDNESS + 1); - int y = rect->y + (BORDER_ROUNDNESS + 1); - for(i = 0; i < BORDER_ROUNDNESS; i++) { - double point = ((i + (M_PI * 4)) / 7.); - double point2 = (((i + 1) + (M_PI * 4)) / 7.); - int x2 = x - (sin(point2) * BORDER_ROUNDNESS); - r.x = x - (sin(point) * BORDER_ROUNDNESS); - r.y = y + (cos(point) * BORDER_ROUNDNESS); - r.width = (x - (sin(point + 1) * BORDER_ROUNDNESS)) - r.x; + int x = rect->x + (roundness + 1); + int y = rect->y + (roundness + 1); + for(i = 0; i < roundness; i++) { + double point = ((i + (M_PI * 4)) / h); + double point2 = (((i + 1) + (M_PI * 4)) / h); + int x2 = x - (sin(point2) * roundness); + r.x = x - (sin(point) * roundness); + r.y = y + (cos(point) * roundness); + r.width = (x - (sin(point + 1) * roundness)) - r.x; r.height = (rect->height - ((r.y - rect->y) * 2) - 1); MwLLDrawPixmap(handle->lowlevel, &r, pixmap); for(xt = x; xt < x2; xt++) { r.x = xt; - r.y = y + (cos(point2) * BORDER_ROUNDNESS); + r.y = y + (cos(point2) * roundness); r.height = (rect->height - ((r.y - rect->y)) - 1); MwLLDrawPixmap(handle->lowlevel, &r, pixmap); } } r = *rect; - r.x += BORDER_ROUNDNESS; - r.width -= (BORDER_ROUNDNESS * 2); + r.x += roundness; + r.width -= (roundness * 2); r.height -= 1; MwLLDrawPixmap(handle->lowlevel, &r, pixmap); r = *rect; - x = (rect->x + rect->width) - (BORDER_ROUNDNESS + 2); - y = rect->y + (BORDER_ROUNDNESS + 1); - for(i = 0; i < BORDER_ROUNDNESS; i++) { - double point = ((i + (M_PI * 4)) / 7.); - double point2 = (((i + 1) + (M_PI * 4)) / 7.); - int x2 = x + (sin(point2) * BORDER_ROUNDNESS); - r.x = x + (sin(point) * BORDER_ROUNDNESS); - r.y = y + (cos(point) * BORDER_ROUNDNESS); + x = (rect->x + rect->width) - (roundness + 2); + y = rect->y + (roundness + 1); + for(i = 0; i < roundness; i++) { + double point = ((i + (M_PI * 4)) / h); + double point2 = (((i + 1) + (M_PI * 4)) / h); + int x2 = x + (sin(point2) * roundness); + r.x = x + (sin(point) * roundness); + r.y = y + (cos(point) * roundness); r.width = 1; r.height = (rect->height - ((r.y - rect->y) * 2) - 1); MwLLDrawPixmap(handle->lowlevel, &r, pixmap); for(xt = x; xt < x2; xt++) { r.x = xt; - r.y = y + (cos(point2) * BORDER_ROUNDNESS); + r.y = y + (cos(point2) * roundness); r.height = (rect->height - ((r.y - rect->y) * 2) - 2); MwLLDrawPixmap(handle->lowlevel, &r, pixmap); } @@ -290,56 +296,58 @@ void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, i MwLLColor darker = MwLightenColor(handle, color, -ColorDiff * 3 / 2 + diff, -ColorDiff * 3 / 2 + diff, -ColorDiff * 3 / 2 + diff); MwLLColor lighter = same ? MwLightenColor(handle, darker, 0, 0, 0) : MwLightenColor(handle, color, ColorDiff - diff, ColorDiff - diff, ColorDiff - diff); int i; - MwLLColor middle = MwLLAllocColor(handle->lowlevel, - (lighter->common.red * darker->common.red) / 255, - (lighter->common.green * darker->common.green) / 255, - (lighter->common.blue * darker->common.blue) / 255); - - if(rounded) { + MwLLColor middle = MwLLAllocColor(handle->lowlevel, + (lighter->common.red * darker->common.red) / 255, + (lighter->common.green * darker->common.green) / 255, + (lighter->common.blue * darker->common.blue) / 255); + int roundness = MwGetInteger(handle, MwNroundness); + if(roundness == MwDEFAULT) roundness = DEFAULT_ROUNDNESS; + if(roundness >= MAX_ROUNDNESS) roundness = MAX_ROUNDNESS; + if(rounded && rect->height >= (roundness * 2) && rect->width >= (roundness * 2) && roundness > 0) { /* top left edge */ for(i = 0; i < BORDER_SMOOTHNESS; i += 2) { MwPoint line[2]; double point = ((i + (M_PI * (BORDER_SMOOTHNESS / 2.))) / (BORDER_SMOOTHNESS)); - int x = rect->x + (BORDER_ROUNDNESS + 2); - int y = rect->y + (BORDER_ROUNDNESS + 2); + int x = rect->x + (roundness + 2); + int y = rect->y + (roundness + 2); - line[0].x = x - (sin(point) * BORDER_ROUNDNESS); - line[0].y = y + (cos(point) * BORDER_ROUNDNESS); - line[1].x = x - (sin(point + 1) * BORDER_ROUNDNESS); - line[1].y = y + (cos(point + 1) * BORDER_ROUNDNESS); + line[0].x = x - (sin(point) * roundness); + line[0].y = y + (cos(point) * roundness); + line[1].x = x - (sin(point + 1) * roundness); + line[1].y = y + (cos(point + 1) * roundness); MwLLLine(handle->lowlevel, line, invert ? darker : lighter); } - p[0].x = rect->x + BORDER_ROUNDNESS; + p[0].x = rect->x + roundness; p[0].y = rect->y; - p[1].x = rect->x + rect->width - BORDER_ROUNDNESS; + p[1].x = rect->x + rect->width - roundness; p[1].y = rect->y; - p[2].x = rect->x + rect->width - border - BORDER_ROUNDNESS; + p[2].x = rect->x + rect->width - border - roundness; p[2].y = rect->y + border; - p[3].x = rect->x + border - BORDER_ROUNDNESS; - p[3].y = rect->y + border + BORDER_ROUNDNESS; + p[3].x = rect->x + border - roundness; + p[3].y = rect->y + border + roundness; - p[4].x = rect->x + border - BORDER_ROUNDNESS; - p[4].y = rect->y + rect->height - border - BORDER_ROUNDNESS; + p[4].x = rect->x + border - roundness; + p[4].y = rect->y + rect->height - border - roundness; - p[5].x = rect->x + BORDER_ROUNDNESS; - p[5].y = rect->y + rect->height - BORDER_ROUNDNESS; + p[5].x = rect->x + roundness; + p[5].y = rect->y + rect->height - roundness; MwLLPolygon(handle->lowlevel, p, 6, invert ? darker : lighter); /* top right edge */ for(i = 0; i < BORDER_SMOOTHNESS; i += 2) { MwPoint line[2]; double point = ((i + (M_PI * (BORDER_SMOOTHNESS / 2.))) / (BORDER_SMOOTHNESS)); - int x = (rect->x + rect->width) - (BORDER_ROUNDNESS + 2); - int y = rect->y + (BORDER_ROUNDNESS + 2); - double placeholder = (sin(point) * BORDER_ROUNDNESS); + int x = (rect->x + rect->width) - (roundness + 2); + int y = rect->y + (roundness + 2); + double placeholder = (sin(point) * roundness); line[0].x = x + placeholder; - line[0].y = y + (cos(point) * BORDER_ROUNDNESS); - line[1].x = x + (sin(point + 1) * BORDER_ROUNDNESS); - line[1].y = y + (cos(point + 1) * BORDER_ROUNDNESS); + line[0].y = y + (cos(point) * roundness); + line[1].x = x + (sin(point + 1) * roundness); + line[1].y = y + (cos(point + 1) * roundness); MwLLLine(handle->lowlevel, line, middle); } } else { @@ -362,40 +370,40 @@ void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, i } MwLLPolygon(handle->lowlevel, p, 6, invert ? darker : lighter); - if(rounded && rect->height >= (BORDER_ROUNDNESS * 2) && rect->width >= (BORDER_ROUNDNESS * 2)) { + if(rounded && rect->height >= (roundness * 2) && rect->width >= (roundness * 2) && roundness > 0) { /* bottom left edge */ for(i = 0; i < BORDER_SMOOTHNESS; i += 2) { MwPoint line[2]; double point = ((i + (M_PI * (BORDER_SMOOTHNESS / 2.))) / (BORDER_SMOOTHNESS)); - int x = rect->x + (BORDER_ROUNDNESS + 2); - int y = (rect->y + rect->height) - (BORDER_ROUNDNESS + 2); + int x = rect->x + (roundness + 2); + int y = (rect->y + rect->height) - (roundness + 2); - line[0].x = x - (sin(point) * BORDER_ROUNDNESS); - line[0].y = y - (cos(point) * BORDER_ROUNDNESS); - line[1].x = x - (sin(point + 1) * BORDER_ROUNDNESS); - line[1].y = y - (cos(point + 1) * BORDER_ROUNDNESS); + line[0].x = x - (sin(point) * roundness); + line[0].y = y - (cos(point) * roundness); + line[1].x = x - (sin(point + 1) * roundness); + line[1].y = y - (cos(point + 1) * roundness); MwLLLine(handle->lowlevel, line, middle); } - p[0].x = rect->x + BORDER_ROUNDNESS; + p[0].x = rect->x + roundness; p[0].y = rect->y + 1; p[1].x = rect->x + rect->width - border; - p[1].y = rect->y + border + BORDER_ROUNDNESS; + p[1].y = rect->y + border + roundness; p[2].x = rect->x + rect->width - border; - p[2].y = rect->y + rect->height - border - BORDER_ROUNDNESS; + p[2].y = rect->y + rect->height - border - roundness; - p[3].x = rect->x + rect->width - border - BORDER_ROUNDNESS; + p[3].x = rect->x + rect->width - border - roundness; p[3].y = rect->y + rect->height - border; - p[4].x = rect->x + border + BORDER_ROUNDNESS; + p[4].x = rect->x + border + roundness; p[4].y = rect->y + rect->height - border; - p[5].x = rect->x + BORDER_ROUNDNESS; - p[5].y = rect->y + rect->height - BORDER_ROUNDNESS; + p[5].x = rect->x + roundness; + p[5].y = rect->y + rect->height - roundness; - p[6].x = rect->x + rect->width - BORDER_ROUNDNESS; - p[6].y = rect->y + rect->height - BORDER_ROUNDNESS; + p[6].x = rect->x + rect->width - roundness; + p[6].y = rect->y + rect->height - roundness; MwLLPolygon(handle->lowlevel, p, 7, invert ? lighter : darker); @@ -403,13 +411,13 @@ void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, i for(i = 0; i < BORDER_SMOOTHNESS; i += 2) { MwPoint line[2]; double point = ((i + (M_PI * (BORDER_SMOOTHNESS / 2.))) / (BORDER_SMOOTHNESS)); - int x = (rect->x + rect->width) - (BORDER_ROUNDNESS + 2); - int y = (rect->y + rect->height) - (BORDER_ROUNDNESS + 2); + int x = (rect->x + rect->width) - (roundness + 2); + int y = (rect->y + rect->height) - (roundness + 2); - line[0].x = x + (sin(point) * BORDER_ROUNDNESS); - line[0].y = y - (cos(point) * BORDER_ROUNDNESS); - line[1].x = x + (sin(point + 1) * BORDER_ROUNDNESS); - line[1].y = y - (cos(point + 1) * BORDER_ROUNDNESS); + line[0].x = x + (sin(point) * roundness); + line[0].y = y - (cos(point) * roundness); + line[1].x = x + (sin(point + 1) * roundness); + line[1].y = y - (cos(point + 1) * roundness); MwLLLine(handle->lowlevel, line, middle); } } else { From 19cd6dc242f7a44ca6d480401d22dec0ef64acae Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 26 Mar 2026 15:56:27 -0700 Subject: [PATCH 269/836] increase smoothness --- src/draw.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/draw.c b/src/draw.c index e367c2f78..d5d466c68 100644 --- a/src/draw.c +++ b/src/draw.c @@ -13,7 +13,7 @@ #define DEFAULT_ROUNDNESS 10 #define MAX_ROUNDNESS 30 -#define BORDER_SMOOTHNESS 50 +#define BORDER_SMOOTHNESS 250 static int get_color_diff(MwWidget handle) { if(MwGetInteger(handle, MwNmodernLook)) { @@ -135,7 +135,6 @@ void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color, int rounde pixmap = MwLLCreatePixmap(handle->lowlevel, data, 1, rect->height); if(rounded && rect->height >= (roundness * 2) && rect->width >= (roundness * 2) && roundness > 0) { - int xt; int x = rect->x + (roundness + 1); int y = rect->y + (roundness + 1); for(i = 0; i < roundness; i++) { @@ -147,9 +146,8 @@ void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color, int rounde r.width = (x - (sin(point + 1) * roundness)) - r.x; r.height = (rect->height - ((r.y - rect->y) * 2) - 1); MwLLDrawPixmap(handle->lowlevel, &r, pixmap); - for(xt = x; xt < x2; xt++) { - r.x = xt; - r.y = y + (cos(point2) * roundness); + r.y = y + (cos(point2) * roundness); + for(r.x = x; r.x < x2; r.x++) { r.height = (rect->height - ((r.y - rect->y)) - 1); MwLLDrawPixmap(handle->lowlevel, &r, pixmap); } @@ -171,9 +169,8 @@ void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color, int rounde r.width = 1; r.height = (rect->height - ((r.y - rect->y) * 2) - 1); MwLLDrawPixmap(handle->lowlevel, &r, pixmap); - for(xt = x; xt < x2; xt++) { - r.x = xt; - r.y = y + (cos(point2) * roundness); + r.y = y + (cos(point2) * roundness); + for(r.x = x; r.x < x2; r.x++) { r.height = (rect->height - ((r.y - rect->y) * 2) - 2); MwLLDrawPixmap(handle->lowlevel, &r, pixmap); } @@ -321,7 +318,7 @@ void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, i p[0].x = rect->x + roundness; p[0].y = rect->y; - p[1].x = rect->x + rect->width - roundness; + p[1].x = rect->x + rect->width - border - roundness; p[1].y = rect->y; p[2].x = rect->x + rect->width - border - roundness; @@ -402,7 +399,7 @@ void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, i p[5].x = rect->x + roundness; p[5].y = rect->y + rect->height - roundness; - p[6].x = rect->x + rect->width - roundness; + p[6].x = rect->x + rect->width - border - roundness; p[6].y = rect->y + rect->height - roundness; MwLLPolygon(handle->lowlevel, p, 7, invert ? lighter : darker); From 2a2fdf55bcbbb51730aa81f3cb11108869685f5f Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 26 Mar 2026 16:54:40 -0700 Subject: [PATCH 270/836] wayland: double buffering --- include/Mw/LowLevel/Wayland.h | 4 ++ src/backend/wayland.c | 70 +++++++++++++++++++++++------------ src/draw.c | 6 +-- 3 files changed, 53 insertions(+), 27 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index de7828ad5..8d47b5103 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -346,12 +346,16 @@ struct _MwLLWaylandShmBuffer { struct wl_shm* shm; struct wl_shm_pool* shm_pool; struct wl_buffer* shm_buffer; + struct wl_shm_pool* shm_pool_back; + struct wl_buffer* shm_buffer_back; struct wl_surface* surface; struct wl_output* output; MwU8* buf; + MwU8* buf_back; MwU64 buf_size; int fd; + int fd_back; MwBool setup; }; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index d43a2c595..1f27ed7f6 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1186,41 +1186,60 @@ static void wl_shm_interface_destroy(struct _MwLLWayland* wayland, wayland_proto static void update_buffer(MwLL self, struct _MwLLWaylandShmBuffer* buffer) { (void)self; // for later, just in case. + memcpy(buffer->buf, buffer->buf_back, buffer->buf_size); wl_surface_attach(buffer->surface, buffer->shm_buffer, 0, 0); wl_surface_commit(buffer->surface); } static void buffer_setup(struct _MwLLWaylandShmBuffer* buffer, MwU32 width, MwU32 height) { - int stride = width * 4; - char temp_name[] = "/tmp/milsko-wl-shm-XXXXXX"; + int stride = width * 4; + char temp_name[] = "/tmp/milsko-wl-shm-XXXXXX"; + char temp_name_back[] = "/tmp/milsko-wl-shm-back-XXXXXX"; buffer->buf_size = width * height * 4; - buffer->fd = mkstemp(temp_name); + buffer->fd = mkstemp(temp_name); + buffer->fd_back = mkstemp(temp_name_back); unlink(temp_name); + unlink(temp_name_back); if(posix_fallocate(buffer->fd, 0, buffer->buf_size) != 0) { printf("failure setting up wl_shm: could not fallocate. %s.\n", strerror(errno)); close(buffer->fd); return; } + if(posix_fallocate(buffer->fd_back, 0, buffer->buf_size) != 0) { + printf("failure setting up wl_shm: could not fallocate. %s.\n", strerror(errno)); + close(buffer->fd_back); + return; + } if(ftruncate(buffer->fd, buffer->buf_size) != 0) { printf("failure setting up wl_shm: could not truncate. %s.\n", strerror(errno)); close(buffer->fd); return; } + if(ftruncate(buffer->fd_back, buffer->buf_size) != 0) { + printf("failure setting up wl_shm: could not truncate. %s.\n", strerror(errno)); + close(buffer->fd_back); + return; + } - buffer->buf = mmap(NULL, buffer->buf_size, PROT_WRITE, MAP_SHARED, buffer->fd, 0); + buffer->buf = mmap(NULL, buffer->buf_size, PROT_WRITE, MAP_SHARED, buffer->fd, 0); + buffer->buf_back = mmap(NULL, buffer->buf_size, PROT_WRITE, MAP_SHARED, buffer->fd_back, 0); fsync(buffer->fd); + fsync(buffer->fd_back); if(!(buffer->shm_pool = wl_shm_create_pool(buffer->shm, buffer->fd, buffer->buf_size))) { printf("failure setting up wl_shm: could not create pool.\n"); } - - buffer->shm_buffer = wl_shm_pool_create_buffer(buffer->shm_pool, 0, width, height, stride, WL_SHM_FORMAT_ARGB8888); - buffer->setup = MwTRUE; + if(!(buffer->shm_pool_back = wl_shm_create_pool(buffer->shm, buffer->fd_back, buffer->buf_size))) { + printf("failure setting up wl_shm: could not create pool.\n"); + } + buffer->shm_buffer = wl_shm_pool_create_buffer(buffer->shm_pool, 0, width, height, stride, WL_SHM_FORMAT_ARGB8888); + buffer->shm_buffer_back = wl_shm_pool_create_buffer(buffer->shm_pool_back, 0, width, height, stride, WL_SHM_FORMAT_ARGB8888); + buffer->setup = MwTRUE; } static void buffer_destroy(struct _MwLLWaylandShmBuffer* buffer) { @@ -1228,18 +1247,21 @@ static void buffer_destroy(struct _MwLLWaylandShmBuffer* buffer) { return; } wl_buffer_destroy(buffer->shm_buffer); + wl_buffer_destroy(buffer->shm_buffer_back); wl_shm_pool_destroy(buffer->shm_pool); + wl_shm_pool_destroy(buffer->shm_pool_back); close(buffer->fd); + close(buffer->fd_back); buffer->setup = MwFALSE; } static void framebuffer_setup(struct _MwLLWayland* wayland) { buffer_setup(&wayland->framebuffer, wayland->ww, wayland->wh); - wayland->front_cs = cairo_image_surface_create_for_data(wayland->framebuffer.buf, CAIRO_FORMAT_ARGB32, wayland->ww, wayland->wh, 4 * wayland->ww); + wayland->front_cs = cairo_image_surface_create_for_data(wayland->framebuffer.buf_back, CAIRO_FORMAT_ARGB32, wayland->ww, wayland->wh, 4 * wayland->ww); wayland->front_cairo = cairo_create(wayland->front_cs); - memset(wayland->framebuffer.buf, 0, wayland->framebuffer.buf_size); + memset(wayland->framebuffer.buf_back, 0, wayland->framebuffer.buf_size); hang_until_configured((MwLL)wayland); update_buffer((MwLL)wayland, &wayland->framebuffer); }; @@ -1261,10 +1283,10 @@ static void backbuffer_setup(struct _MwLLWayland* wayland) { } buffer_setup(&wayland->backbuffer, w, h); - wayland->back_cs = cairo_image_surface_create_for_data(wayland->backbuffer.buf, CAIRO_FORMAT_ARGB32, w, h, 4 * w); + wayland->back_cs = cairo_image_surface_create_for_data(wayland->backbuffer.buf_back, CAIRO_FORMAT_ARGB32, w, h, 4 * w); wayland->back_cairo = cairo_create(wayland->back_cs); - memset(wayland->backbuffer.buf, 255, wayland->backbuffer.buf_size); + memset(wayland->backbuffer.buf_back, 255, wayland->backbuffer.buf_size); hang_until_configured((MwLL)wayland); update_buffer((MwLL)wayland, &wayland->backbuffer); }; @@ -2156,7 +2178,7 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { cairo_surface_destroy(cs); MwLLForceRender(handle); - update_buffer(handle, &handle->wayland.framebuffer); + // update_buffer(handle, &handle->wayland.framebuffer); wl_surface_damage(handle->wayland.framebuffer.surface, 0, 0, handle->wayland.ww, handle->wayland.wh); } static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { @@ -2182,15 +2204,15 @@ static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { buffer_setup(handle->wayland.icon, pixmap->common.width, pixmap->common.height); for(; i < size; i += 2) { - handle->wayland.icon->buf[i] = pixmap->common.raw[i + 2]; - handle->wayland.icon->buf[i + 1] = pixmap->common.raw[i + 1]; - handle->wayland.icon->buf[i + 2] = pixmap->common.raw[i + 0]; - handle->wayland.icon->buf[i + 3] = 255; + handle->wayland.icon->buf_back[i] = pixmap->common.raw[i + 2]; + handle->wayland.icon->buf_back[i + 1] = pixmap->common.raw[i + 1]; + handle->wayland.icon->buf_back[i + 2] = pixmap->common.raw[i + 0]; + handle->wayland.icon->buf_back[i + 3] = 255; } if(handle->wayland.configured) update_buffer(handle, handle->wayland.icon); - xdg_toplevel_icon_v1_add_buffer(icon, handle->wayland.icon->shm_buffer, 1); + xdg_toplevel_icon_v1_add_buffer(icon, handle->wayland.icon->shm_buffer_back, 1); xdg_toplevel_icon_manager_v1_set_icon(icon_manager, handle->wayland.toplevel->xdg_top_level, icon); } @@ -2214,7 +2236,7 @@ static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { wl_surface_destroy(handle->wayland.cursor.surface); } buffer_setup(&handle->wayland.cursor, image->width, image->height); - memset(handle->wayland.cursor.buf, 0, handle->wayland.cursor.buf_size); + memset(handle->wayland.cursor.buf_back, 0, handle->wayland.cursor.buf_size); xs = -mask->x + image->x; ys = mask->height + mask->y; @@ -2226,7 +2248,7 @@ static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { int idx = ((y * image->width) + x) * 4; if(d & 1) { - handle->wayland.cursor.buf[idx + 3] = 255; + handle->wayland.cursor.buf_back[idx + 3] = 255; }; d = d >> 1; } @@ -2241,16 +2263,16 @@ static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { px = 255; }; - handle->wayland.cursor.buf[idx] = px; - handle->wayland.cursor.buf[idx + 1] = px; - handle->wayland.cursor.buf[idx + 2] = px; - d = d >> 1; + handle->wayland.cursor.buf_back[idx] = px; + handle->wayland.cursor.buf_back[idx + 1] = px; + handle->wayland.cursor.buf_back[idx + 2] = px; + d = d >> 1; } } handle->wayland.cursor.surface = wl_compositor_create_surface(handle->wayland.compositor); - wl_surface_attach(handle->wayland.cursor.surface, handle->wayland.cursor.shm_buffer, xs + image->x, ys + image->height + image->y); + wl_surface_attach(handle->wayland.cursor.surface, handle->wayland.cursor.shm_buffer_back, xs + image->x, ys + image->height + image->y); wl_surface_commit(handle->wayland.cursor.surface); /* If there's currently a pointer, set it up. (Otherwise, it'll be setup during the pointer enter event) */ diff --git a/src/draw.c b/src/draw.c index d5d466c68..7bf413e34 100644 --- a/src/draw.c +++ b/src/draw.c @@ -11,9 +11,9 @@ #include "../external/stb_ds.h" -#define DEFAULT_ROUNDNESS 10 +#define DEFAULT_ROUNDNESS 5 #define MAX_ROUNDNESS 30 -#define BORDER_SMOOTHNESS 250 +#define BORDER_SMOOTHNESS 50 static int get_color_diff(MwWidget handle) { if(MwGetInteger(handle, MwNmodernLook)) { @@ -171,7 +171,7 @@ void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color, int rounde MwLLDrawPixmap(handle->lowlevel, &r, pixmap); r.y = y + (cos(point2) * roundness); for(r.x = x; r.x < x2; r.x++) { - r.height = (rect->height - ((r.y - rect->y) * 2) - 2); + r.height = (rect->height - ((r.y - rect->y) * 2) - 1); MwLLDrawPixmap(handle->lowlevel, &r, pixmap); } } From 6538f8e836cbd79c1c9cebf00542381d5a6fd3c6 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 26 Mar 2026 17:48:22 -0700 Subject: [PATCH 271/836] fix wayland csd, more doublebuffering fixes --- src/backend/wayland.c | 30 ++++++++++++++++++------------ src/draw.c | 28 ++++++++++++++-------------- src/widget/button.c | 1 + src/widget/checkbox.c | 1 + src/widget/combobox.c | 1 + src/widget/entry.c | 1 + 6 files changed, 36 insertions(+), 26 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 1f27ed7f6..d3e8e0241 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -46,7 +46,7 @@ static void buffer_destroy(struct _MwLLWaylandShmBuffer* buffer); static void region_setup(MwLL handle); static void region_invalidate(MwLL handle); - +static void update_buffer(MwLL self, struct _MwLLWaylandShmBuffer* buffer); /* Get the registered interface from r, or NULL if it doesn't currently have it. */ #define WAYLAND_GET_INTERFACE(handle, inter) shget(handle.wl_protocol_map, inter##_interface.name) @@ -65,8 +65,11 @@ static void new_protocol(void* data, struct wl_registry* registry, char* inter = malloc(strlen(interface) + 1); strcpy(inter, interface); shput(self->wayland.wl_protocol_map, inter, cb->setup(name, data)); + /* we don't care for adding this protocol, we just use it to know if the compositor will let us have transparent surfaces */ + } else if(strcmp(interface, "wp_alpha_modifier_v1") == 0) { + self->common.supports_transparency = MwTRUE; } else { - /* printf("unknown interface %s\n", interface); */ + // printf("unknown interface %s\n", interface); } WAYLAND_EVENT_OP_END(self); @@ -1075,9 +1078,9 @@ static int event_loop(MwLL handle) { if(!poll(&fd, 1, timeout.tv_nsec)) { wl_display_cancel_read(wayland->display); - wl_surface_commit(wayland->framebuffer.surface); + update_buffer(handle, &wayland->framebuffer); if(wayland->type == MWLL_WAYLAND_TOPLEVEL) - wl_surface_commit(wayland->backbuffer.surface); + update_buffer(handle, &wayland->backbuffer); return 0; } wl_display_read_events(wayland->display); @@ -1163,8 +1166,8 @@ static void xdg_surface_configure( xdg_surface_ack_configure(xdg_surface, serial); if(self->wayland.configured) { - wl_surface_commit(self->wayland.framebuffer.surface); - wl_surface_commit(self->wayland.backbuffer.surface); + update_buffer(self, &self->wayland.framebuffer); + update_buffer(self, &self->wayland.backbuffer); } self->wayland.configured = MwTRUE; @@ -1735,13 +1738,17 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh if(parent != NULL) { MwLLForceRender(parent); } + + if(!r->wayland.has_decorations) { + MwLLBeginDraw(r); + MwLLEndDraw(r); + } } static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLL r; r = malloc(sizeof(*r)); memset(r, 0, sizeof(*r)); MwLLCreateCommon(r); - r->common.supports_transparency = MwTRUE; widget_setup(r, parent, x, y, width, height, MWLL_WAYLAND_UNKNOWN); @@ -1956,8 +1963,6 @@ static void MwLLBeginDrawImpl(MwLL handle) { free(px); } update_buffer(handle, &handle->wayland.backbuffer); - - wl_surface_commit(handle->wayland.backbuffer.surface); } handle->wayland.selected_cairo = handle->wayland.front_cairo; } @@ -1976,7 +1981,7 @@ static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLL clip(handle); - cairo_set_source_rgb(handle->wayland.front_cairo, color->common.red / 255.0, color->common.green / 255.0, color->common.blue / 255.0); + cairo_set_source_rgba(handle->wayland.front_cairo, color->common.red / 255.0, color->common.green / 255.0, color->common.blue / 255.0, 1.0); cairo_new_path(handle->wayland.front_cairo); for(i = 0; i < points_count; i++) { if(i == 0) { @@ -1999,7 +2004,7 @@ static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { cairo_set_antialias(handle->wayland.front_cairo, CAIRO_ANTIALIAS_NONE); cairo_set_line_cap(handle->wayland.front_cairo, CAIRO_LINE_CAP_SQUARE); - cairo_set_source_rgb(handle->wayland.front_cairo, color->common.red / 255.0, color->common.green / 255.0, color->common.blue / 255.0); + cairo_set_source_rgba(handle->wayland.front_cairo, color->common.red / 255.0, color->common.green / 255.0, color->common.blue / 255.0, 1.0); cairo_new_path(handle->wayland.front_cairo); for(i = 0; i < 2; i++) { if(i == 0) { @@ -2109,6 +2114,8 @@ static void MwLLSetTitleImpl(MwLL handle, const char* title) { } if(!handle->wayland.has_decorations) { strncpy(handle->wayland.title, title, 255); + MwLLBeginDraw(handle); + MwLLEndDraw(handle); } } @@ -2178,7 +2185,6 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { cairo_surface_destroy(cs); MwLLForceRender(handle); - // update_buffer(handle, &handle->wayland.framebuffer); wl_surface_damage(handle->wayland.framebuffer.surface, 0, 0, handle->wayland.ww, handle->wayland.wh); } static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { diff --git a/src/draw.c b/src/draw.c index 7bf413e34..ee9475e3c 100644 --- a/src/draw.c +++ b/src/draw.c @@ -116,10 +116,10 @@ void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color, int rounde unsigned char* data = malloc(sz); MwRect r = *rect; int roundness = MwGetInteger(handle, MwNroundness); - double h; + double div; if(roundness == MwDEFAULT) roundness = DEFAULT_ROUNDNESS; if(roundness >= MAX_ROUNDNESS) roundness = MAX_ROUNDNESS; - h = (roundness <= 10) ? 7. : 10.; + div = (roundness <= 10) ? 7. : 10.; memset(data, 0, sz); for(y = 0; y < rect->height; y++) { @@ -138,8 +138,8 @@ void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color, int rounde int x = rect->x + (roundness + 1); int y = rect->y + (roundness + 1); for(i = 0; i < roundness; i++) { - double point = ((i + (M_PI * 4)) / h); - double point2 = (((i + 1) + (M_PI * 4)) / h); + double point = ((i + (M_PI * 4)) / div); + double point2 = (((i + 1) + (M_PI * 4)) / div); int x2 = x - (sin(point2) * roundness); r.x = x - (sin(point) * roundness); r.y = y + (cos(point) * roundness); @@ -153,16 +153,16 @@ void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color, int rounde } } r = *rect; - r.x += roundness; - r.width -= (roundness * 2); - r.height -= 1; + r.x += roundness - 1; + r.width -= (roundness * 2) + 1; + r.height -= 2; MwLLDrawPixmap(handle->lowlevel, &r, pixmap); r = *rect; x = (rect->x + rect->width) - (roundness + 2); y = rect->y + (roundness + 1); for(i = 0; i < roundness; i++) { - double point = ((i + (M_PI * 4)) / h); - double point2 = (((i + 1) + (M_PI * 4)) / h); + double point = ((i + (M_PI * 4)) / div); + double point2 = (((i + 1) + (M_PI * 4)) / div); int x2 = x + (sin(point2) * roundness); r.x = x + (sin(point) * roundness); r.y = y + (cos(point) * roundness); @@ -207,13 +207,14 @@ void MwDrawFrame(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int void MwDrawWidgetBack(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border) { MwLLColor col; + MwBool rounded = handle->lowlevel->common.supports_transparency && MwGetInteger(handle, MwNroundness) != MwDEFAULT; if(border) { - MwDrawFrame(handle, rect, color, invert, handle->lowlevel->common.supports_transparency); + MwDrawFrame(handle, rect, color, invert, rounded); } col = invert ? MwLightenColor(handle, color, -8, -8, -8) : color; if(MwGetInteger(handle, MwNmodernLook)) { - MwDrawRectFading(handle, rect, col, handle->lowlevel->common.supports_transparency); + MwDrawRectFading(handle, rect, col, rounded); } else { MwDrawRect(handle, rect, col); } @@ -318,10 +319,10 @@ void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, i p[0].x = rect->x + roundness; p[0].y = rect->y; - p[1].x = rect->x + rect->width - border - roundness; + p[1].x = rect->x + rect->width - border - roundness - 2; p[1].y = rect->y; - p[2].x = rect->x + rect->width - border - roundness; + p[2].x = rect->x + rect->width - border - roundness - 2; p[2].y = rect->y + border; p[3].x = rect->x + border - roundness; @@ -332,7 +333,6 @@ void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, i p[5].x = rect->x + roundness; p[5].y = rect->y + rect->height - roundness; - MwLLPolygon(handle->lowlevel, p, 6, invert ? darker : lighter); /* top right edge */ for(i = 0; i < BORDER_SMOOTHNESS; i += 2) { diff --git a/src/widget/button.c b/src/widget/button.c index dac7739c6..f3240b0a4 100644 --- a/src/widget/button.c +++ b/src/widget/button.c @@ -8,6 +8,7 @@ static int create(MwWidget handle) { MwSetInteger(handle, MwNflat, 0); MwSetInteger(handle, MwNpadding, 0); MwSetInteger(handle, MwNfillArea, 1); + MwSetInteger(handle, MwNroundness, 5); return 0; } diff --git a/src/widget/checkbox.c b/src/widget/checkbox.c index 1ccccd416..224cfec1d 100644 --- a/src/widget/checkbox.c +++ b/src/widget/checkbox.c @@ -4,6 +4,7 @@ static int create(MwWidget handle) { MwSetDefault(handle); MwSetInteger(handle, MwNchecked, 0); + MwSetInteger(handle, MwNroundness, 5); return 0; } diff --git a/src/widget/combobox.c b/src/widget/combobox.c index 0672ff3ad..998237263 100644 --- a/src/widget/combobox.c +++ b/src/widget/combobox.c @@ -14,6 +14,7 @@ static int create(MwWidget handle) { MwSetInteger(handle, MwNareaShown, 6); MwSetInteger(handle, MwNvalue, 0); + MwSetInteger(handle, MwNroundness, 5); return 0; } diff --git a/src/widget/entry.c b/src/widget/entry.c index 34a90a36b..998935b80 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -11,6 +11,7 @@ static int create(MwWidget handle) { MwSetDefault(handle); MwLLSetCursor(handle->lowlevel, &MwCursorText, &MwCursorTextMask); + MwSetInteger(handle, MwNroundness, 5); return 0; } From 00e44bec324a00011c55089a775eb0775a0733bc Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 26 Mar 2026 18:02:48 -0700 Subject: [PATCH 272/836] MwNisRounded --- include/Mw/StringDefs.h | 1 + src/core.c | 1 + src/draw.c | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index 832096338..f30a21b31 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -40,6 +40,7 @@ #define MwNlength "Ilength" #define MwNforceInverted "IforceInverted" #define MwNroundness "Iroundness" +#define MwNisRounded "IisRounded" #define MwNtitle "Stitle" #define MwNtext "Stext" diff --git a/src/core.c b/src/core.c index 39cae9244..88cd84285 100644 --- a/src/core.c +++ b/src/core.c @@ -516,6 +516,7 @@ int MwGetInteger(MwWidget handle, const char* key) { #else if(strcmp(key, MwNmodernLook) == 0) return inherit_integer(handle, key, 1); #endif + if(strcmp(key, MwNisRounded) == 0) return inherit_integer(handle, key, 1); } return shget(handle->integer, key); } diff --git a/src/draw.c b/src/draw.c index ee9475e3c..944600f78 100644 --- a/src/draw.c +++ b/src/draw.c @@ -207,7 +207,7 @@ void MwDrawFrame(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int void MwDrawWidgetBack(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border) { MwLLColor col; - MwBool rounded = handle->lowlevel->common.supports_transparency && MwGetInteger(handle, MwNroundness) != MwDEFAULT; + MwBool rounded = handle->lowlevel->common.supports_transparency && MwGetInteger(handle, MwNroundness) != MwDEFAULT && MwGetInteger(handle, MwNisRounded) != 0; if(border) { MwDrawFrame(handle, rect, color, invert, rounded); @@ -333,6 +333,7 @@ void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, i p[5].x = rect->x + roundness; p[5].y = rect->y + rect->height - roundness; + MwLLPolygon(handle->lowlevel, p, 6, invert ? darker : lighter); /* top right edge */ for(i = 0; i < BORDER_SMOOTHNESS; i += 2) { From 60e1f36a4125472040ee1b61b1dfc19fd943a73c Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 26 Mar 2026 18:12:45 -0700 Subject: [PATCH 273/836] slightly stronger gradient on modern theme --- src/draw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/draw.c b/src/draw.c index 944600f78..4926fe085 100644 --- a/src/draw.c +++ b/src/draw.c @@ -111,7 +111,7 @@ void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color, int rounde int y, i; double darken = 0.; int ColorDiff = get_color_diff(handle); - double darkenStep = (ColorDiff / 4.) / rect->height; + double darkenStep = (ColorDiff / 2.) / rect->height; unsigned long sz = 1 * rect->height * 4; unsigned char* data = malloc(sz); MwRect r = *rect; From 17e437075e7763d5c8a3872683a0034ec15957ea Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 27 Mar 2026 10:28:21 +0900 Subject: [PATCH 274/836] let ioixd do the job --- src/draw.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/draw.c b/src/draw.c index 4926fe085..2983e5635 100644 --- a/src/draw.c +++ b/src/draw.c @@ -299,6 +299,13 @@ void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, i (lighter->common.green * darker->common.green) / 255, (lighter->common.blue * darker->common.blue) / 255); int roundness = MwGetInteger(handle, MwNroundness); + MwLLColor c = handle->parent == NULL ? NULL : MwParseColor(handle->parent, MwGetText(handle->parent, MwNbackground)); + + if(c != NULL){ + MwDrawRect(handle, rect, c); + MwLLFreeColor(c); + } + if(roundness == MwDEFAULT) roundness = DEFAULT_ROUNDNESS; if(roundness >= MAX_ROUNDNESS) roundness = MAX_ROUNDNESS; if(rounded && rect->height >= (roundness * 2) && rect->width >= (roundness * 2) && roundness > 0) { From 8dfa34e55553ffbe1642baa0d4500e710d22ed65 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 26 Mar 2026 18:34:08 -0700 Subject: [PATCH 275/836] only do backing box draw if backend doesn't do transparency --- src/draw.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/draw.c b/src/draw.c index 2983e5635..51e79ff9d 100644 --- a/src/draw.c +++ b/src/draw.c @@ -207,7 +207,7 @@ void MwDrawFrame(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int void MwDrawWidgetBack(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border) { MwLLColor col; - MwBool rounded = handle->lowlevel->common.supports_transparency && MwGetInteger(handle, MwNroundness) != MwDEFAULT && MwGetInteger(handle, MwNisRounded) != 0; + MwBool rounded = MwGetInteger(handle, MwNroundness) != MwDEFAULT && MwGetInteger(handle, MwNisRounded) != 0; if(border) { MwDrawFrame(handle, rect, color, invert, rounded); @@ -299,11 +299,14 @@ void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, i (lighter->common.green * darker->common.green) / 255, (lighter->common.blue * darker->common.blue) / 255); int roundness = MwGetInteger(handle, MwNroundness); - MwLLColor c = handle->parent == NULL ? NULL : MwParseColor(handle->parent, MwGetText(handle->parent, MwNbackground)); - if(c != NULL){ - MwDrawRect(handle, rect, c); - MwLLFreeColor(c); + if(!handle->lowlevel->common.supports_transparency) { + MwLLColor c = handle->parent == NULL ? NULL : MwParseColor(handle->parent, MwGetText(handle->parent, MwNbackground)); + + if(c != NULL) { + MwDrawRect(handle, rect, c); + MwLLFreeColor(c); + } } if(roundness == MwDEFAULT) roundness = DEFAULT_ROUNDNESS; From e5acf07b38e494c03ad0870b1f941677c6122783 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 26 Mar 2026 18:36:35 -0700 Subject: [PATCH 276/836] disable rounding on combobox --- src/widget/combobox.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/widget/combobox.c b/src/widget/combobox.c index 998237263..0672ff3ad 100644 --- a/src/widget/combobox.c +++ b/src/widget/combobox.c @@ -14,7 +14,6 @@ static int create(MwWidget handle) { MwSetInteger(handle, MwNareaShown, 6); MwSetInteger(handle, MwNvalue, 0); - MwSetInteger(handle, MwNroundness, 5); return 0; } From fc18c86201386dfdff0421bd0fe3c93863017494 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 26 Mar 2026 18:37:47 -0700 Subject: [PATCH 277/836] disable rounding on checkbox --- src/widget/checkbox.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/widget/checkbox.c b/src/widget/checkbox.c index 224cfec1d..1ccccd416 100644 --- a/src/widget/checkbox.c +++ b/src/widget/checkbox.c @@ -4,7 +4,6 @@ static int create(MwWidget handle) { MwSetDefault(handle); MwSetInteger(handle, MwNchecked, 0); - MwSetInteger(handle, MwNroundness, 5); return 0; } From 8f7df275fba511c3f78e3523707e8895b2f0e6a2 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 27 Mar 2026 10:40:35 +0900 Subject: [PATCH 278/836] better --- src/draw.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/draw.c b/src/draw.c index 51e79ff9d..dfaf90c6e 100644 --- a/src/draw.c +++ b/src/draw.c @@ -210,6 +210,15 @@ void MwDrawWidgetBack(MwWidget handle, MwRect* rect, MwLLColor color, int invert MwBool rounded = MwGetInteger(handle, MwNroundness) != MwDEFAULT && MwGetInteger(handle, MwNisRounded) != 0; if(border) { + if(!handle->lowlevel->common.supports_transparency) { + MwLLColor c = handle->parent == NULL ? NULL : MwParseColor(handle->parent, MwGetText(handle->parent, MwNbackground)); + + if(c != NULL) { + MwDrawRect(handle, rect, c); + MwLLFreeColor(c); + } + } + MwDrawFrame(handle, rect, color, invert, rounded); } col = invert ? MwLightenColor(handle, color, -8, -8, -8) : color; @@ -300,15 +309,6 @@ void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, i (lighter->common.blue * darker->common.blue) / 255); int roundness = MwGetInteger(handle, MwNroundness); - if(!handle->lowlevel->common.supports_transparency) { - MwLLColor c = handle->parent == NULL ? NULL : MwParseColor(handle->parent, MwGetText(handle->parent, MwNbackground)); - - if(c != NULL) { - MwDrawRect(handle, rect, c); - MwLLFreeColor(c); - } - } - if(roundness == MwDEFAULT) roundness = DEFAULT_ROUNDNESS; if(roundness >= MAX_ROUNDNESS) roundness = MAX_ROUNDNESS; if(rounded && rect->height >= (roundness * 2) && rect->width >= (roundness * 2) && roundness > 0) { From a42482a4e44ddd346f393d29b69270cd8b7932d8 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 27 Mar 2026 10:46:27 +0900 Subject: [PATCH 279/836] epic --- src/draw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/draw.c b/src/draw.c index dfaf90c6e..84587b44f 100644 --- a/src/draw.c +++ b/src/draw.c @@ -233,7 +233,7 @@ void MwDrawWidgetBack(MwWidget handle, MwRect* rect, MwLLColor color, int invert void MwDrawDiamond(MwWidget handle, MwRect* rect, MwLLColor color, int invert) { MwPoint p[6]; int border = MwDefaultBorderWidth(handle); - int ColorDiff = get_color_diff(handle); + int ColorDiff = get_color_diff(handle) + (MwGetInteger(handle, MwNmodernLook) ? 48 : 0); MwLLColor darker = MwLightenColor(handle, color, -ColorDiff, -ColorDiff, -ColorDiff); MwLLColor lighter = MwLightenColor(handle, color, ColorDiff, ColorDiff, ColorDiff); MwLLColor col = invert ? MwLightenColor(handle, color, -8, -8, -8) : color; From 258d0d2cb21b71be73cbeaec31445165ee58bc5d Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 27 Mar 2026 10:58:17 +0900 Subject: [PATCH 280/836] update xml --- milsko.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/milsko.xml b/milsko.xml index bc73f0e2b..bc7f1531d 100644 --- a/milsko.xml +++ b/milsko.xml @@ -42,7 +42,9 @@ - - - - + + + + @@ -80,38 +66,39 @@ - - + + - - - + + + - + - + - - + + + - - - - + + + + - + diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 0bd23a649..801c03f68 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1264,7 +1264,7 @@ static void update_buffer(MwLL self, struct _MwLLWaylandShmBuffer* buffer) { memcpy(buffer->buf, buffer->buf_back, buffer->buf_size); // Yes this is needed every time, it's how we fix weston. wl_surface_attach(buffer->surface, buffer->shm_buffer, 0, 0); - wl_surface_commit(buffer->surface); + wl_surface_commit(buffer->surface); } static void buffer_setup(struct _MwLLWaylandShmBuffer* buffer, MwU32 width, MwU32 height) { From 3852646ce30caf47b74a7be2ed388d2fd6d17ea1 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 12 Apr 2026 07:12:59 +0900 Subject: [PATCH 344/836] fix warning --- src/text/text.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/text/text.c b/src/text/text.c index f550195c4..fec0bb449 100644 --- a/src/text/text.c +++ b/src/text/text.c @@ -26,6 +26,7 @@ static int is_bold(MwWidget handle, MwFLFont ttf) { return s; } +#ifdef TTF static int is_monospace(MwWidget handle, MwFLFont ttf) { size_t u = (size_t)ttf; int s; @@ -36,6 +37,7 @@ static int is_monospace(MwWidget handle, MwFLFont ttf) { if(s == MwDEFAULT) return 0; return s; } +#endif #ifdef TTF From d1f351a7efb8a3b278e5684b801b07b11a92811f Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 12 Apr 2026 07:27:07 +0900 Subject: [PATCH 345/836] fix cmake --- examples/gldemos/CMakeLists.txt | 2 +- examples/vkdemos/CMakeLists.txt | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/examples/gldemos/CMakeLists.txt b/examples/gldemos/CMakeLists.txt index 9afda19fb..122f62c59 100644 --- a/examples/gldemos/CMakeLists.txt +++ b/examples/gldemos/CMakeLists.txt @@ -15,7 +15,7 @@ foreach(PATH IN LISTS EXAMPLES_GL_SOURCES) ${TARGET} PRIVATE Mw - OpenGL::GL + OpenGL::GL OpenGL::GLU ) if(NOT CMAKE_SYSTEM_NAME STREQUAL "Windows") target_link_libraries( diff --git a/examples/vkdemos/CMakeLists.txt b/examples/vkdemos/CMakeLists.txt index 354bf3634..a315bf91b 100644 --- a/examples/vkdemos/CMakeLists.txt +++ b/examples/vkdemos/CMakeLists.txt @@ -3,10 +3,16 @@ file( EXAMPLES_VULKAN_SOURCES *.c ) +find_package(Vulkan) foreach(PATH IN LISTS EXAMPLES_VULKAN_SOURCES) get_filename_component(TARGET ${PATH} NAME_WE) add_executable(${TARGET} WIN32 MACOSX_BUNDLE ${PATH}) + target_include_directories( + ${TARGET} + PRIVATE + ${Vulkan_INCLUDE_DIR} + ) target_link_libraries( ${TARGET} PRIVATE From 2a7cf2de83d1fb5051013ccc988ec367564a932f Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Sat, 11 Apr 2026 18:26:15 -0500 Subject: [PATCH 346/836] x11: allow apple. --- src/backend/x11.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/backend/x11.c b/src/backend/x11.c index 72e54f336..755da7127 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -1292,7 +1292,11 @@ static int MwLLX11CallInitImpl(void) { return 1; } +#ifdef __APPLE__ + xsymtbl.lib_xlib = MwDynamicOpen("libX11.dylib"); +#else xsymtbl.lib_xlib = MwDynamicOpen("libX11.so"); +#endif if(!xsymtbl.lib_xlib) { return 1; } From c4f6d1eb14c94721fc4e18b76b4557c7def4b3e4 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Sat, 11 Apr 2026 18:30:00 -0500 Subject: [PATCH 347/836] Update src/core.c --- src/core.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/core.c b/src/core.c index c8a5c12d0..b4b6743ce 100644 --- a/src/core.c +++ b/src/core.c @@ -856,15 +856,16 @@ MwWidget MwGetParent(MwWidget handle) { typedef int (*call_t)(void); int MwLibraryInit(void) { call_t calls[] = { +/* x11 has higher priority then cocoa until it works */ +#ifdef USE_X11 + MwLLX11CallInit, +#endif #ifdef USE_COCOA MwLLCocoaCallInit, #endif #ifdef USE_WAYLAND MwLLWaylandCallInit, #endif -#ifdef USE_X11 - MwLLX11CallInit, -#endif #ifdef USE_GDI MwLLGDICallInit, #endif From 0ab497ca8869bcc968d3e48ff5e3ea4c15c3c766 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Mon, 13 Apr 2026 11:28:54 -0700 Subject: [PATCH 348/836] oops prioritize wayland --- src/backend/wayland.c | 7 +------ src/backend/x11.c | 3 --- src/core.c | 8 ++++---- 3 files changed, 5 insertions(+), 13 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 801c03f68..148ca4420 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -2575,7 +2575,6 @@ static int MwLLWaylandCallInitImpl(void) { /* * Order of precedence: * - MILSKO_BACKEND - * - XDG_SESSION_TYPE * - manually checking environment variables */ #ifdef __linux__ @@ -2583,11 +2582,7 @@ static int MwLLWaylandCallInitImpl(void) { if(getenv("MILSKO_BACKEND")) { loadWayland |= (strcmp(getenv("MILSKO_BACKEND"), "wayland") == 0); - } - if(getenv("XDG_SESSION_TYPE")) { - loadWayland |= (strcmp(getenv("XDG_SESSION_TYPE"), "wayland") == 0); - } - if(getenv("WAYLAND_DISPLAY")) { + } else if(getenv("WAYLAND_DISPLAY")) { loadWayland |= (getenv("WAYLAND_DISPLAY") != NULL); } diff --git a/src/backend/x11.c b/src/backend/x11.c index 755da7127..4068186d4 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -1281,9 +1281,6 @@ static int MwLLX11CallInitImpl(void) { loadX11 |= (strcmp(getenv("MILSKO_BACKEND"), "x11") == 0); } - if(getenv("XDG_SESSION_TYPE")) { - loadX11 |= (strcmp(getenv("XDG_SESSION_TYPE"), "x11") == 0); - } if(getenv("DISPLAY")) { loadX11 |= (getenv("DISPLAY") != NULL); } diff --git a/src/core.c b/src/core.c index b4b6743ce..cdd0723b9 100644 --- a/src/core.c +++ b/src/core.c @@ -856,16 +856,16 @@ MwWidget MwGetParent(MwWidget handle) { typedef int (*call_t)(void); int MwLibraryInit(void) { call_t calls[] = { -/* x11 has higher priority then cocoa until it works */ +#ifdef USE_WAYLAND + MwLLWaylandCallInit, +#endif +/* x11 has higher priority then cocoa until it works */ #ifdef USE_X11 MwLLX11CallInit, #endif #ifdef USE_COCOA MwLLCocoaCallInit, #endif -#ifdef USE_WAYLAND - MwLLWaylandCallInit, -#endif #ifdef USE_GDI MwLLGDICallInit, #endif From 728983b92ccd4a79925b36f035b0cbdce003221c Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 13 Apr 2026 13:46:25 -0700 Subject: [PATCH 349/836] fix builds on osx 10.4 --- configure | 4 +++- include/Mw/LowLevel/Cocoa.h | 23 +++++++++++------------ include/Mw/MachDep.h | 9 +++++++++ pl/utils.pl | 1 + src/backend/cocoa.m | 8 ++++++-- 5 files changed, 30 insertions(+), 15 deletions(-) diff --git a/configure b/configure index 0371bcd05..0c1766315 100755 --- a/configure +++ b/configure @@ -38,7 +38,6 @@ require("./pl/utils.pl"); param_set("classic-theme", 0); param_set("stb-image", 1); -param_set("stb-truetype", 0); param_set("xrender", 1); param_set("opengl", 0); param_set("vulkan", 0); @@ -50,6 +49,9 @@ param_set("examples", 1); if($target ne "Darwin") { param_set("freetype2", 1); + param_set("stb-truetype", 0); +} else { + param_set("stb-truetype", 1); } my %features = ( diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index da104f018..6e51c3051 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -86,18 +86,17 @@ @end @interface MilskoCocoaView : NSView { - NSBitmapImageRep* rep; - NSGraphicsContext* context; - MwBool valid; - CGColorSpaceRef space; - CGDataProviderRef provider; - NSRect givenRect; - float x; - float y; - float width; - float height; - MwBool _child; - IBOutlet NSViewController* viewController; + NSBitmapImageRep* rep; + NSGraphicsContext* context; + MwBool valid; + CGColorSpaceRef space; + CGDataProviderRef provider; + NSRect givenRect; + float x; + float y; + float width; + float height; + MwBool _child; } - (void)initRepAndContextWithWidth:(float)w Height:(float)h; diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index 61a6f909b..50898f676 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -57,17 +57,26 @@ #define M_PI 3.14159265 #endif +/* Windows */ #if defined(_MILSKO) && defined(_WIN32) #define MWDECL extern __declspec(dllexport) #elif defined(_WIN32) #define MWDECL extern __declspec(dllimport) +/* GCC/Clang */ +/* First check if we have __has_attribute and can check for the existence of visibility */ #elif defined(__has_attribute) #if __has_attribute(visibility) #define MWDECL extern __attribute__((visibility("default"))) #else #define MWDECL extern #endif +/* It might be that we're on an old version of GCC (like the one Apple ships with older versions of Mac OS). + * If we're on gcc 3 or above, assume it's there + */ +#elif __GNUC__ >= 3 +#define MWDECL extern __attribute__((visibility("default"))) #else +/* all else fails */ #define MWDECL extern #endif diff --git a/pl/utils.pl b/pl/utils.pl index 70c0b517c..947212328 100644 --- a/pl/utils.pl +++ b/pl/utils.pl @@ -55,6 +55,7 @@ sub new_object { my @l = glob($_[0]); foreach my $e (@l) { $e =~ s/\.(c|m)$/$object_suffix/; + print($e."\n"); push(@library_targets, $e); } } diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 04ce17edf..195e33948 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -665,6 +665,9 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { NSSize sz = [self->rep size]; MwLL ll = [((MilskoFakePointer*)[[[[self window] contentView] subviews] objectAtIndex:0]) pointer]; + NSRect bounds; + NSArray* subviews = [self subviews]; + int i; [super drawRect:dirtyRect]; if(!self->rep) { @@ -683,8 +686,9 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { [self->rep drawInRect:dirtyRect]; - for(NSView* subview in [self subviews]) { - NSRect bounds = [subview bounds]; + for(i = 0; i < [subviews count]; i++) { + NSView* subview = [subviews objectAtIndex:i]; + bounds = [subview bounds]; [subview drawRect:bounds]; } From 14e908488c3f5ffa7e450e6380a318be97cb4d65 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 13 Apr 2026 16:09:28 -0700 Subject: [PATCH 350/836] mac --- include/Mw/LowLevel/Cocoa.h | 6 +++ src/backend/cocoa.m | 86 ++++++++++++++++++++++--------------- 2 files changed, 58 insertions(+), 34 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 6e51c3051..fc39b07e4 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -104,7 +104,11 @@ - (void)destroy; - (NSBitmapImageRep*)getRep; - (void)setChild; +- (void)drawRectSub:(NSRect)dirtyRect; +@end +@interface MilskoCocoaSubView : MilskoCocoaView { +} @end @interface MilskoCocoa : NSObject { @@ -125,6 +129,8 @@ MwBool pointerLocked; MwBool mouseMoved; + + MwBool rejectFirstTest; } + (MilskoCocoa*)newWithParent:(MwLL)parent diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 195e33948..dc3028738 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -116,8 +116,8 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { - (void)destroy { free(self->buf); [self->image removeRepresentation:self->rep]; - [self->image dealloc]; - [self->rep dealloc]; + [self->image release]; + [self->rep release]; self->image = NULL; self->rep = NULL; } @@ -134,7 +134,9 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { width:(int)width height:(int)height handle:(MwLL)r { - MilskoCocoa* c = [MilskoCocoa alloc]; + MilskoCocoa* c = [MilskoCocoa alloc]; + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + [c retain]; /* @@ -156,7 +158,6 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { c->window = [[MilskoCocoaWindow alloc] initWithContentRect:rectFlip(c->rect) styleMask:(NSTitledWindowMask | - NSTexturedBackgroundWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask) backing:NSBackingStoreBuffered @@ -190,15 +191,12 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { NSRect rect = localRectFlip(c->rect, p->view); c->view = [[MilskoCocoaView alloc] initWithFrame:rect]; [c->view setBounds:c->rect]; - [c->view retain]; - [c->view setNeedsDisplay:TRUE]; [c->view setChild]; [c->view addTrackingRect:c->rect owner:c->view userData:NULL assumeInside:MwFALSE]; [p->view addSubview:c->view]; - [p->window setContentView:p->view]; } [c->window setAcceptsMouseMovedEvents:MwTRUE]; @@ -219,6 +217,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { c->pointerLocked = MwFALSE; + [pool release]; return c; } @@ -331,7 +330,8 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { frame = localRectFlip(frame, parent->cocoa.real->view); [self->view setBounds:frame]; } - self->_eventsPending = MwTRUE; + // [self->view setNeedsDisplay:true]; + [self nudge]; }; - (void)setW:(int)w H:(int)h { NSRect frame = [self->window frame]; @@ -346,7 +346,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { } else { [self->window setFrame:frame display:YES animate:false]; } - self->_eventsPending = MwTRUE; + [self nudge]; }; - (int)pending { NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; @@ -360,12 +360,12 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { MwLL h = [self->handle pointer]; if(_forceRender) { MwLLDispatch(h, draw, NULL); - [self->view setNeedsDisplay:true]; + // [self->view setNeedsDisplay:true]; _forceRender = MwFALSE; } if(_eventsPending) { MwLLDispatch(h, draw, NULL); - [self->view setNeedsDisplay:true]; + // [self->view setNeedsDisplay:true]; _eventsPending = MwFALSE; } [self sendClipboardEvent]; @@ -579,9 +579,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { }; - (void)destroy { [self->handle release]; - [self->handle dealloc]; [self->window release]; - [self->window dealloc]; } - (MwLL)getParent { @@ -596,7 +594,13 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { } - (void)nudge { + MwLL p = self->parent; self->_eventsPending = MwTRUE; + + if(p) { + [p->cocoa.real->view setNeedsDisplay:true]; + p = p->cocoa.real->parent; + } } - (void)pushCursor { @@ -661,15 +665,10 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { } - (void)drawRect:(NSRect)dirtyRect { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - NSSize sz = [self->rep size]; - MwLL ll = [((MilskoFakePointer*)[[[[self window] contentView] subviews] - objectAtIndex:0]) pointer]; - NSRect bounds; + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; NSArray* subviews = [self subviews]; int i; - [super drawRect:dirtyRect]; if(!self->rep) { if(dirtyRect.size.width && dirtyRect.size.height) { [self initRepAndContextWithWidth:dirtyRect.size.width @@ -682,22 +681,41 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { } } - // MwLLDispatch(ll, draw, NULL); - - [self->rep drawInRect:dirtyRect]; + if(!_child) + [self->rep drawInRect:[self bounds]]; for(i = 0; i < [subviews count]; i++) { - NSView* subview = [subviews objectAtIndex:i]; - bounds = [subview bounds]; - [subview drawRect:bounds]; + MilskoCocoaView* subview = [subviews objectAtIndex:i]; + NSRect bounds = [subview bounds]; + if([subview respondsToSelector:@selector(drawRectSub:)]) { + [subview drawRectSub:bounds]; + } } - - [self->rep bitmapData]; - [pool release]; } +- (void)drawRectSub:(NSRect)dirtyRect { + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + + if(!self->rep) { + if(dirtyRect.size.width && dirtyRect.size.height) { + [self initRepAndContextWithWidth:dirtyRect.size.width + Height:dirtyRect.size.height]; + self->width = dirtyRect.size.width; + self->height = dirtyRect.size.height; + } else { + [pool release]; + return; + } + } + + [self->rep drawInRect:dirtyRect]; + + [pool release]; +}; + - (void)initRepAndContextWithWidth:(float)w Height:(float)h { + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; self->rep = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL pixelsWide:w @@ -712,10 +730,14 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { assert(self->rep); [self->rep retain]; + [self->rep setOpaque:MwFALSE]; + [self->rep setAlpha:MwTRUE]; + self->context = [NSGraphicsContext graphicsContextWithBitmapImageRep:self->rep]; assert(self->context); [self->context retain]; + [pool release]; } - (void)destroy { @@ -1142,11 +1164,7 @@ static void MwLLFreeColorImpl(MwLLColor color) { } static int MwLLPendingImpl(MwLL handle) { - int p = [handle->cocoa.real pending]; - if(p) { - MwLLDispatch(handle, draw, NULL); - } - return p; + return [handle->cocoa.real pending]; } static void MwLLNextEventImpl(MwLL handle) { @@ -1186,7 +1204,7 @@ static void MwLLPixmapUpdateImpl(MwLLPixmap pixmap) { static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { MilskoCocoaPixmap* p = pixmap->cocoa.real; [p destroy]; - [p dealloc]; + [p release]; free(pixmap); } From f44a70d4ecc621897eb723eb30c848cb6235fd9d Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Mon, 13 Apr 2026 16:21:30 -0700 Subject: [PATCH 351/836] mac: untested code but i'll fall asleep at night with this in the codebase compared to the other thing --- include/Mw/LowLevel/Cocoa.h | 1 - src/backend/cocoa.m | 51 +++++++++---------------------------- 2 files changed, 12 insertions(+), 40 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index fc39b07e4..89e5f5887 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -104,7 +104,6 @@ - (void)destroy; - (NSBitmapImageRep*)getRep; - (void)setChild; -- (void)drawRectSub:(NSRect)dirtyRect; @end @interface MilskoCocoaSubView : MilskoCocoaView { diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index dc3028738..0f979b9dc 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -669,51 +669,24 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { NSArray* subviews = [self subviews]; int i; - if(!self->rep) { - if(dirtyRect.size.width && dirtyRect.size.height) { - [self initRepAndContextWithWidth:dirtyRect.size.width - Height:dirtyRect.size.height]; - self->width = dirtyRect.size.width; - self->height = dirtyRect.size.height; - } else { - [pool release]; - return; - } + if(self->rep) { + [self->rep release]; + } + if(dirtyRect.size.width && dirtyRect.size.height) { + [self initRepAndContextWithWidth:dirtyRect.size.width + Height:dirtyRect.size.height]; + self->width = dirtyRect.size.width; + self->height = dirtyRect.size.height; + } else { + [pool release]; + return; } - if(!_child) - [self->rep drawInRect:[self bounds]]; + [self->rep drawInRect:[self bounds]]; - for(i = 0; i < [subviews count]; i++) { - MilskoCocoaView* subview = [subviews objectAtIndex:i]; - NSRect bounds = [subview bounds]; - if([subview respondsToSelector:@selector(drawRectSub:)]) { - [subview drawRectSub:bounds]; - } - } [pool release]; } -- (void)drawRectSub:(NSRect)dirtyRect { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - - if(!self->rep) { - if(dirtyRect.size.width && dirtyRect.size.height) { - [self initRepAndContextWithWidth:dirtyRect.size.width - Height:dirtyRect.size.height]; - self->width = dirtyRect.size.width; - self->height = dirtyRect.size.height; - } else { - [pool release]; - return; - } - } - - [self->rep drawInRect:dirtyRect]; - - [pool release]; -}; - - (void)initRepAndContextWithWidth:(float)w Height:(float)h { NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; self->rep = From b661face2647645499a5d475ce1e99e0561d3138 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Mon, 13 Apr 2026 16:43:31 -0700 Subject: [PATCH 352/836] mac: more untested changes but its just removing dead comments so i know this won't break anything --- src/backend/cocoa.m | 89 +++++++++++++-------------------------------- 1 file changed, 25 insertions(+), 64 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 0f979b9dc..a66b31c36 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -330,7 +330,6 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { frame = localRectFlip(frame, parent->cocoa.real->view); [self->view setBounds:frame]; } - // [self->view setNeedsDisplay:true]; [self nudge]; }; - (void)setW:(int)w H:(int)h { @@ -360,12 +359,10 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { MwLL h = [self->handle pointer]; if(_forceRender) { MwLLDispatch(h, draw, NULL); - // [self->view setNeedsDisplay:true]; _forceRender = MwFALSE; } if(_eventsPending) { MwLLDispatch(h, draw, NULL); - // [self->view setNeedsDisplay:true]; _eventsPending = MwFALSE; } [self sendClipboardEvent]; @@ -443,18 +440,6 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { }; - (void)forceRender { self->_forceRender = MwTRUE; - // NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - // NSEvent *event = [NSEvent otherEventWithType:NSApplicationDefined - // location:NSMakePoint(0, 0) - // modifierFlags:0 - // timestamp:0 - // windowNumber:0 - // context:nil - // subtype:0 - // data1:0 - // data2:0]; - // [NSApp postEvent:event atStart:YES]; - // [pool release]; }; - (void)setCursor:(MwCursor*)image mask:(MwCursor*)mask { int y, x, ys, xs; @@ -670,8 +655,8 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { int i; if(self->rep) { - [self->rep release]; - } + [self->rep release]; + } if(dirtyRect.size.width && dirtyRect.size.height) { [self initRepAndContextWithWidth:dirtyRect.size.width Height:dirtyRect.size.height]; @@ -993,7 +978,6 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { if([ptr isKindOfClass:[MilskoFakePointer class]]) { MwLL h = [(MilskoFakePointer*)ptr pointer]; MwLLDispatch(h, resize, NULL); - // MwLLDispatch(h, draw, NULL); } } return frameSize; @@ -1118,18 +1102,15 @@ static void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* height) { - MilskoCocoa* h = handle->cocoa.real; - [h getX:x Y:y W:w H:height]; + [handle->cocoa.real getX:x Y:y W:w H:height]; } static void MwLLSetXYImpl(MwLL handle, int x, int y) { - MilskoCocoa* h = handle->cocoa.real; - [h setX:x Y:y]; + [handle->cocoa.real setX:x Y:y]; } static void MwLLSetWHImpl(MwLL handle, int w, int height) { - MilskoCocoa* h = handle->cocoa.real; - [h setW:w H:height]; + [handle->cocoa.real setW:w H:height]; } static void MwLLFreeColorImpl(MwLLColor color) { @@ -1141,13 +1122,11 @@ static int MwLLPendingImpl(MwLL handle) { } static void MwLLNextEventImpl(MwLL handle) { - MilskoCocoa* h = handle->cocoa.real; - [h getNextEvent]; + [handle->cocoa.real getNextEvent]; } static void MwLLSetTitleImpl(MwLL handle, const char* title) { - MilskoCocoa* h = handle->cocoa.real; - [h setTitle:title]; + [handle->cocoa.real setTitle:title]; } static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, @@ -1170,77 +1149,63 @@ static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, } static void MwLLPixmapUpdateImpl(MwLLPixmap pixmap) { - MilskoCocoaPixmap* p = pixmap->cocoa.real; - [p updateWithData:pixmap->common.raw]; + [pixmap->cocoa.real updateWithData:pixmap->common.raw]; } static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { - MilskoCocoaPixmap* p = pixmap->cocoa.real; - [p destroy]; - [p release]; + [pixmap->cocoa.real destroy]; + [pixmap->cocoa.real release]; free(pixmap); } static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { - MilskoCocoa* h = handle->cocoa.real; - [h drawPixmap:pixmap rect:rect]; + [handle->cocoa.real drawPixmap:pixmap rect:rect]; MwLLForceRender(handle); } static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { - MilskoCocoa* h = handle->cocoa.real; - [h setIcon:pixmap]; + [handle->cocoa.real setIcon:pixmap]; } static void MwLLForceRenderImpl(MwLL handle) { - MilskoCocoa* h = handle->cocoa.real; - [h forceRender]; + [handle->cocoa.real forceRender]; } static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { - MilskoCocoa* h = handle->cocoa.real; - [h setCursor:image mask:mask]; + [handle->cocoa.real setCursor:image mask:mask]; } static void MwLLDetachImpl(MwLL handle, MwPoint* point) { - MilskoCocoa* h = handle->cocoa.real; - [h detachWithPoint:point]; + [handle->cocoa.real detachWithPoint:point]; } static void MwLLShowImpl(MwLL handle, int show) { - MilskoCocoa* h = handle->cocoa.real; - [h show:show]; + [handle->cocoa.real show:show]; } static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { - MilskoCocoa* h = handle->cocoa.real; - [h makePopupWithParent:parent]; + [handle->cocoa.real makePopupWithParent:parent]; } static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) { - MilskoCocoa* h = handle->cocoa.real; - [h setSizeHintsWithMinX:minx MinY:miny MaxX:maxx MaxY:maxy]; + [handle->cocoa.real setSizeHintsWithMinX:minx MinY:miny MaxX:maxx MaxY:maxy]; } static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { - MilskoCocoa* h = handle->cocoa.real; - [h makeBorderless:toggle]; + [handle->cocoa.real makeBorderless:toggle]; } static void MwLLFocusImpl(MwLL handle) { - MilskoCocoa* h = handle->cocoa.real; - [h focus]; + [handle->cocoa.real focus]; } static void MwLLGrabPointerImpl(MwLL handle, int toggle) { - MilskoCocoa* h = handle->cocoa.real; - [h grabPointer:toggle]; + [handle->cocoa.real grabPointer:toggle]; } static void MwLLSetClipboardImpl(MwLL handle, const char* text) { - MilskoCocoa* h = handle->cocoa.real; - [h setClipboard:text]; + [handle->cocoa.real setClipboard:text]; } static void MwLLGetClipboardImpl(MwLL handle) { @@ -1248,19 +1213,15 @@ static void MwLLGetClipboardImpl(MwLL handle) { } static void MwLLMakeToolWindowImpl(MwLL handle) { - - MilskoCocoa* h = handle->cocoa.real; - [h makeToolWindow]; + [handle->cocoa.real makeToolWindow]; } static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { - MilskoCocoa* h = handle->cocoa.real; - [h getCursorCoord:point]; + [handle->cocoa.real getCursorCoord:point]; } static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { - MilskoCocoa* h = handle->cocoa.real; - [h getScreenSize:rect]; + [handle->cocoa.real getScreenSize:rect]; } static void MwLLBeginStateChangeImpl(MwLL handle) { From bb876b96201a93c1fe6a55583ebcd79a9842b27f Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Mon, 13 Apr 2026 16:45:20 -0700 Subject: [PATCH 353/836] mac: only recreate rep if width/height is different. also untested but i'm confident in this --- src/backend/cocoa.m | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index a66b31c36..6961a9630 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -654,17 +654,19 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { NSArray* subviews = [self subviews]; int i; - if(self->rep) { - [self->rep release]; - } - if(dirtyRect.size.width && dirtyRect.size.height) { - [self initRepAndContextWithWidth:dirtyRect.size.width - Height:dirtyRect.size.height]; - self->width = dirtyRect.size.width; - self->height = dirtyRect.size.height; - } else { - [pool release]; - return; + if(self->width != dirtyRect.size.width || self->height != dirtyRect.size.height) { + if(self->rep) { + [self->rep release]; + } + if(dirtyRect.size.width && dirtyRect.size.height) { + [self initRepAndContextWithWidth:dirtyRect.size.width + Height:dirtyRect.size.height]; + self->width = dirtyRect.size.width; + self->height = dirtyRect.size.height; + } else { + [pool release]; + return; + } } [self->rep drawInRect:[self bounds]]; From a4c61b0e38c9737978e28014e38d5fc48fe02f06 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Mon, 13 Apr 2026 17:44:27 -0700 Subject: [PATCH 354/836] gnustep support? --- configure | 17 ++++++++++------- include/Mw/LowLevel/Cocoa.h | 34 +++++++++++++--------------------- pl/rules.pl | 6 +++++- pl/utils.pl | 1 - src/backend/cocoa.m | 18 +++++++++--------- src/backend/x11.c | 3 +-- 6 files changed, 38 insertions(+), 41 deletions(-) diff --git a/configure b/configure index 0c1766315..5551d4ced 100755 --- a/configure +++ b/configure @@ -66,6 +66,7 @@ my %features = ( "shared" => "build shared library", "static" => "build static library", "wayland" => "enable wayland backend", + "gnustep" => "use gnustep", ); my @features_keys = ( "1classic-theme", "1stb-image", @@ -73,9 +74,16 @@ my @features_keys = ( "1opengl", "2xrender", "1vulkan", "2vulkan-string-helper", "1shared", "1static", - "1wayland", + "1wayland", "1gnustep", ); +if($target eq "Linux") { + param_set("x11", 1); + if(!param_get("tiny")){ + param_set("wayland", 1); + } +} + foreach my $l (@ARGV) { if ($l =~ /^--with-([^=]+)=(.+)$/) { param_set($1, $2); @@ -138,12 +146,7 @@ foreach my $l (@ARGV) { } } -if($target eq "Linux") { - param_set("x11", 1); - if(!param_get("tiny")){ - param_set("wayland", 1); - } -} + if (-f "./pl/ostype/${target}.pl") { require("./pl/ostype/${target}.pl"); diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 89e5f5887..d31e590b6 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -15,12 +15,6 @@ #import #import -#ifdef __APPLE__ -#import -#else -#import -#endif - @interface MilskoCocoaApplication : NSApplication { MwBool doPending; } @@ -29,9 +23,9 @@ // Note: implements NSApplicationDelegate @interface MilskoCocoaApplicationDelegate : NSObject { - MilskoCocoaApplication* appl; + NSApplication* appl; } -- (MilskoCocoaApplicationDelegate*)initWithAppl:(MilskoCocoaApplication*)appl; +- (MilskoCocoaApplicationDelegate*)initWithAppl:(NSApplication*)appl; @end @interface MilskoCocoaWindow : NSWindow { @@ -40,7 +34,7 @@ // Note: implements NSWindowDelegate @interface MilskoCocoaWindowDelegate : NSObject { - MilskoCocoaWindow* w; + NSWindow* w; } - (MilskoCocoaWindowDelegate*)initWithWin:(MilskoCocoaWindow*)win; @end @@ -89,8 +83,6 @@ NSBitmapImageRep* rep; NSGraphicsContext* context; MwBool valid; - CGColorSpaceRef space; - CGDataProviderRef provider; NSRect givenRect; float x; float y; @@ -111,16 +103,16 @@ @end @interface MilskoCocoa : NSObject { - MilskoCocoaApplication* application; - MwBool _forceRender; - MwBool _eventsPending; - MilskoCocoaWindow* window; - NSRect rect; - MilskoCocoaView* view; - MwLL parent; - MilskoFakePointer* handle; - unsigned int strHash; - NSEvent* lastEvent; + NSApplication* application; + MwBool _forceRender; + MwBool _eventsPending; + MilskoCocoaWindow* window; + NSRect rect; + MilskoCocoaView* view; + MwLL parent; + MilskoFakePointer* handle; + unsigned int strHash; + NSEvent* lastEvent; MilskoCocoaPixmap* cursorPixmap; NSCursor* cursor; diff --git a/pl/rules.pl b/pl/rules.pl index bf1857576..000a6fec0 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -52,10 +52,14 @@ if (grep(/^wayland$/, @backends)) { $gl_libs = "-lGL -lGLU"; } -if (grep(/^cocoa$/, @backends)) { +if (grep(/^cocoa$/, @backends) || param_get("gnustep")) { add_cflags("-DUSE_COCOA"); new_object("src/backend/cocoa.m"); + if(param_get("gnustep")){ + add_ldflags("-lobjc -lgnustep-base -lm -lgnustep-gui"); + } + if (param_get("opengl")) { new_object("src/widget/opengl_cocoa.m"); } diff --git a/pl/utils.pl b/pl/utils.pl index 947212328..70c0b517c 100644 --- a/pl/utils.pl +++ b/pl/utils.pl @@ -55,7 +55,6 @@ sub new_object { my @l = glob($_[0]); foreach my $e (@l) { $e =~ s/\.(c|m)$/$object_suffix/; - print($e."\n"); push(@library_targets, $e); } } diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 6961a9630..7b281722e 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -325,7 +325,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { if(!parent) { frame = rectFlip(frame); - [self->window setFrame:frame display:TRUE animate:TRUE]; + [self->window setFrame:frame display:MwTRUE animate:MwTRUE]; } else { frame = localRectFlip(frame, parent->cocoa.real->view); [self->view setBounds:frame]; @@ -367,6 +367,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { } [self sendClipboardEvent]; +#ifdef __APPLE__ if(self->pointerLocked && [self->window isMainWindow] && self->lastEvent) { struct CGPoint pos; pos.x = [window frame].origin.x + [window frame].size.width / 2; @@ -374,6 +375,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { CGWarpMouseCursorPosition(pos); } +#endif [self->application updateWindows]; }; @@ -617,13 +619,12 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { @implementation MilskoCocoaView - (id)initWithFrame:(NSRect)frame { - givenRect = frame; - x = frame.origin.x; - y = frame.origin.y; - width = frame.size.width; - height = frame.size.height; - self = [super initWithFrame:frame]; - self->space = CGColorSpaceCreateDeviceRGB(); + givenRect = frame; + x = frame.origin.x; + y = frame.origin.y; + width = frame.size.width; + height = frame.size.height; + self = [super initWithFrame:frame]; if(width == 0 || height == 0) { self->rep = NULL; @@ -701,7 +702,6 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { } - (void)destroy { - CGColorSpaceRelease(self->space); [self->rep release]; [self->context release]; } diff --git a/src/backend/x11.c b/src/backend/x11.c index 4068186d4..ad97d6885 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -1280,8 +1280,7 @@ static int MwLLX11CallInitImpl(void) { if(getenv("MILSKO_BACKEND")) { loadX11 |= (strcmp(getenv("MILSKO_BACKEND"), "x11") == 0); - } - if(getenv("DISPLAY")) { + } else if(getenv("DISPLAY")) { loadX11 |= (getenv("DISPLAY") != NULL); } From 7d85a784f589a79d14bd3158a3a258d6175cefff Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Mon, 13 Apr 2026 18:39:21 -0700 Subject: [PATCH 355/836] i think we're now linking to gnustep properly --- pl/rules.pl | 4 +++- src/backend/cocoa.m | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/pl/rules.pl b/pl/rules.pl index 000a6fec0..3d1f2c0fc 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -57,7 +57,9 @@ if (grep(/^cocoa$/, @backends) || param_get("gnustep")) { new_object("src/backend/cocoa.m"); if(param_get("gnustep")){ - add_ldflags("-lobjc -lgnustep-base -lm -lgnustep-gui"); + add_incdir2("-I/usr/GNUstep/System/Library/Headers"); + add_libdir("-L/usr/GNUstep/System/Library/Libraries"); + add_ldflags("-fblocks -lobjc -lgnustep-base -lm -lgnustep-gui"); } if (param_get("opengl")) { diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 7b281722e..1048f82bf 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -151,7 +151,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { y = r ? ([[NSScreen mainScreen] frame].size.height / 2.) - (height / 2.) : 0; } - c->application = [MilskoCocoaApplication sharedApplication]; + c->application = NSApp; c->rect = NSMakeRect(x, y, width, height); if(parent == NULL) { @@ -1235,6 +1235,8 @@ static void MwLLEndStateChangeImpl(MwLL handle) { } static int MwLLCocoaCallInitImpl(void) { + [NSApplication sharedApplication]; + return 0; } From 9283455cb971857e14e62f0aa594b4b4091ace0b Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Mon, 13 Apr 2026 20:07:00 -0700 Subject: [PATCH 356/836] links to gnustep but doesn't run --- configure | 2 -- include/Mw/LowLevel/Cocoa.h | 29 ++++++++++++++--------------- pl/rules.pl | 7 ++++--- src/backend/cocoa.m | 29 ++++++++++++++++------------- 4 files changed, 34 insertions(+), 33 deletions(-) diff --git a/configure b/configure index 5551d4ced..5d9810863 100755 --- a/configure +++ b/configure @@ -146,8 +146,6 @@ foreach my $l (@ARGV) { } } - - if (-f "./pl/ostype/${target}.pl") { require("./pl/ostype/${target}.pl"); } diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index d31e590b6..ff7029580 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -23,9 +23,9 @@ // Note: implements NSApplicationDelegate @interface MilskoCocoaApplicationDelegate : NSObject { - NSApplication* appl; + MilskoCocoaApplication* appl; } -- (MilskoCocoaApplicationDelegate*)initWithAppl:(NSApplication*)appl; +- (MilskoCocoaApplicationDelegate*)initWithAppl:(MilskoCocoaApplication*)appl; @end @interface MilskoCocoaWindow : NSWindow { @@ -36,7 +36,7 @@ @interface MilskoCocoaWindowDelegate : NSObject { NSWindow* w; } -- (MilskoCocoaWindowDelegate*)initWithWin:(MilskoCocoaWindow*)win; +- (MilskoCocoaWindowDelegate*)initWithWin:(NSWindow*)win; @end /* @@ -103,16 +103,16 @@ @end @interface MilskoCocoa : NSObject { - NSApplication* application; - MwBool _forceRender; - MwBool _eventsPending; - MilskoCocoaWindow* window; - NSRect rect; - MilskoCocoaView* view; - MwLL parent; - MilskoFakePointer* handle; - unsigned int strHash; - NSEvent* lastEvent; + MilskoCocoaApplication* application; + MwBool _forceRender; + MwBool _eventsPending; + NSWindow* window; + NSRect rect; + MilskoCocoaView* view; + MwLL parent; + MilskoFakePointer* handle; + unsigned int strHash; + NSEvent* lastEvent; MilskoCocoaPixmap* cursorPixmap; NSCursor* cursor; @@ -163,14 +163,13 @@ - (MwLL)getParent; - (NSView*)getView; -- (MilskoCocoaWindow*)getWindow; +- (NSWindow*)getWindow; - (void)nudge; - (void)pushCursor; - (void)popCursor; - (MilskoFakePointer*)getHandle; -+ (void)eventCanceller:(MilskoCocoa*)this; @end #define OBJC(x) x diff --git a/pl/rules.pl b/pl/rules.pl index 3d1f2c0fc..6c23006bd 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -57,9 +57,10 @@ if (grep(/^cocoa$/, @backends) || param_get("gnustep")) { new_object("src/backend/cocoa.m"); if(param_get("gnustep")){ - add_incdir2("-I/usr/GNUstep/System/Library/Headers"); - add_libdir("-L/usr/GNUstep/System/Library/Libraries"); - add_ldflags("-fblocks -lobjc -lgnustep-base -lm -lgnustep-gui"); + add_incdir("-I".`gnustep-config --variable=GNUSTEP_SYSTEM_HEADERS`); + add_libdir("-L".`gnustep-config --variable=GNUSTEP_SYSTEM_LIBRARIES`); + add_cflags("-fobjc-runtime=gnustep-2.0 -fblocks"); + add_ldflags("-lobjc -lgnustep-base -lm -lgnustep-gui"); } if (param_get("opengl")) { diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 1048f82bf..adf8f740f 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -136,8 +136,9 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { handle:(MwLL)r { MilskoCocoa* c = [MilskoCocoa alloc]; NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - [c retain]; + c->application = (MilskoCocoaApplication*)[MilskoCocoaApplication sharedApplication]; + [c->application retain]; /* * MacOS doesn't really have a "default" window position, you're actually @@ -151,11 +152,10 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { y = r ? ([[NSScreen mainScreen] frame].size.height / 2.) - (height / 2.) : 0; } - c->application = NSApp; - c->rect = NSMakeRect(x, y, width, height); + c->rect = NSMakeRect(x, y, width, height); if(parent == NULL) { - c->window = [[MilskoCocoaWindow alloc] + c->window = [[NSWindow alloc] initWithContentRect:rectFlip(c->rect) styleMask:(NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | @@ -183,6 +183,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { [c->application retain]; [c->view addTrackingRect:c->rect owner:c->view userData:NULL assumeInside:MwFALSE]; + c->modalSession = [c->application beginModalSessionForWindow:c->window]; } else { MilskoCocoa* p = parent->cocoa.real; @@ -197,6 +198,8 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { [c->view addTrackingRect:c->rect owner:c->view userData:NULL assumeInside:MwFALSE]; [p->view addSubview:c->view]; + + c->modalSession = p->modalSession; } [c->window setAcceptsMouseMovedEvents:MwTRUE]; @@ -205,8 +208,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { [c->handle setPointer:r]; [c->view addSubview:c->handle]; - c->modalSession = [c->application beginModalSessionForWindow:c->window]; - c->parent = parent; + c->parent = parent; c->_forceRender = MwTRUE; c->strHash = 0; @@ -350,7 +352,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { - (int)pending { NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; MwBool isPending = [self->application pending]; - [NSApp runModalSession:self->modalSession]; + [self->application runModalSession:self->modalSession]; [pool release]; return _forceRender || _eventsPending || isPending; }; @@ -954,7 +956,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { @end @implementation MilskoCocoaApplicationDelegate -- (MilskoCocoaApplicationDelegate*)initWithAppl:(NSApplication*)_appl { +- (MilskoCocoaApplicationDelegate*)initWithAppl:(MilskoCocoaApplication*)_appl { self->appl = _appl; return self; } @@ -1001,10 +1003,9 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { // This will close/terminate the application when the main window is closed. - (void)windowWillClose:(NSNotification*)notification { (void)notification; - // MilskoCocoa *window = notification.object; - // MwLL handle = [window getHandle].pointer; - // MwLLDispatch(handle, close, NULL); - [NSApp terminate:nil]; + MilskoCocoa* window = notification.object; + MwLL handle = [window getHandle].pointer; + MwLLDispatch(handle, close, NULL); } - (MilskoCocoaWindowDelegate*)initWithWin:(NSWindow*)win { @@ -1235,7 +1236,9 @@ static void MwLLEndStateChangeImpl(MwLL handle) { } static int MwLLCocoaCallInitImpl(void) { - [NSApplication sharedApplication]; + printf("Using GNUStep Backend\n"); + + [MilskoCocoaApplication sharedApplication]; return 0; } From 522f32cfcdd1f0edc85ab429c447482058a201ec Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 13 Apr 2026 21:19:09 -0700 Subject: [PATCH 357/836] mac: revert back to what i had before with drawing, i still don't know how to fix this but it's better then nothing --- src/backend/cocoa.m | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index adf8f740f..c8fa2a9ca 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -657,10 +657,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { NSArray* subviews = [self subviews]; int i; - if(self->width != dirtyRect.size.width || self->height != dirtyRect.size.height) { - if(self->rep) { - [self->rep release]; - } + if(!self->rep) { if(dirtyRect.size.width && dirtyRect.size.height) { [self initRepAndContextWithWidth:dirtyRect.size.width Height:dirtyRect.size.height]; @@ -672,8 +669,13 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { } } - [self->rep drawInRect:[self bounds]]; + [self->rep drawInRect:NSMakeRect(dirtyRect.origin.x, dirtyRect.origin.y, [self->rep pixelsWide], [self->rep pixelsHigh])]; + for(i = 0; i < [subviews count]; i++) { + MilskoCocoaView* subview = [subviews objectAtIndex:i]; + NSRect bounds = [subview bounds]; + [subview drawRect:bounds]; + } [pool release]; } @@ -1003,9 +1005,9 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { // This will close/terminate the application when the main window is closed. - (void)windowWillClose:(NSNotification*)notification { (void)notification; - MilskoCocoa* window = notification.object; - MwLL handle = [window getHandle].pointer; - MwLLDispatch(handle, close, NULL); + // MilskoCocoa* window = notification.object; + // MwLL handle = [window getHandle].pointer; + // MwLLDispatch(handle, close, NULL); } - (MilskoCocoaWindowDelegate*)initWithWin:(NSWindow*)win { @@ -1236,7 +1238,9 @@ static void MwLLEndStateChangeImpl(MwLL handle) { } static int MwLLCocoaCallInitImpl(void) { +#ifndef __APPLE__ printf("Using GNUStep Backend\n"); +#endif [MilskoCocoaApplication sharedApplication]; From 554e5cd5ddf711ebb8d69f06768de73eeb6d3afc Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 13 Apr 2026 21:36:17 -0700 Subject: [PATCH 358/836] mac: merge all the MilskoCocoa* functions into the C Milsko functions that call them, cleaning up the codebase --- include/Mw/LowLevel/Cocoa.h | 37 +- src/backend/cocoa.m | 820 +++++++++++++++++------------------- 2 files changed, 377 insertions(+), 480 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index ff7029580..3577ad03e 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -61,6 +61,7 @@ @end @interface MilskoCocoaPixmap : NSObject { + @public MwBool valid; int width; int height; @@ -103,6 +104,7 @@ @end @interface MilskoCocoa : NSObject { + @public MilskoCocoaApplication* application; MwBool _forceRender; MwBool _eventsPending; @@ -123,41 +125,6 @@ MwBool rejectFirstTest; } - -+ (MilskoCocoa*)newWithParent:(MwLL)parent - x:(int)x - y:(int)y - width:(int)width - height:(int)height - handle:(MwLL)handle; -- (void)polygonWithPoints:(MwPoint*)points - points_count:(int)points_count - color:(MwLLColor)color; -- (void)lineWithPoints:(MwPoint*)points color:(MwLLColor)color; -- (void)getX:(int*)x Y:(int*)y W:(unsigned int*)w H:(unsigned int*)h; -- (void)setX:(int)x Y:(int)y; -- (void)setW:(int)w H:(int)h; -- (int)pending; -- (void)getNextEvent; -- (void)setTitle:(const char*)title; -- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect*)rect; -- (void)setIcon:(MwLLPixmap)pixmap; -- (void)forceRender; -- (void)setCursor:(MwCursor*)image mask:(MwCursor*)mask; -- (void)detachWithPoint:(MwPoint*)point; -- (void)show:(int)show; -- (void)makePopupWithParent:(MwLL)parent; -- (void)setSizeHintsWithMinX:(int)minx - MinY:(int)miny - MaxX:(int)maxx - MaxY:(int)maxy; -- (void)makeBorderless:(int)toggle; -- (void)focus; -- (void)grabPointer:(int)toggle; -- (void)setClipboard:(const char*)text; -- (void)makeToolWindow; -- (void)getCursorCoord:(MwPoint*)point; -- (void)getScreenSize:(MwRect*)rect; - (void)destroy; - (void)sendClipboardEvent; diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index c8fa2a9ca..b43aef2b7 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -127,261 +127,6 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { @end @implementation MilskoCocoa - -+ (MilskoCocoa*)newWithParent:(MwLL)parent - x:(int)x - y:(int)y - width:(int)width - height:(int)height - handle:(MwLL)r { - MilskoCocoa* c = [MilskoCocoa alloc]; - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - [c retain]; - c->application = (MilskoCocoaApplication*)[MilskoCocoaApplication sharedApplication]; - [c->application retain]; - - /* - * MacOS doesn't really have a "default" window position, you're actually - * meant to center the window yourself, so if the user passes MwDEFAULT - * respond appropriately. Also for child windows just have it be 0. - */ - if(x == MwDEFAULT) { - x = r ? ([[NSScreen mainScreen] frame].size.width / 2.) - (width / 2.) : 0; - } - if(y == MwDEFAULT) { - y = r ? ([[NSScreen mainScreen] frame].size.height / 2.) - (height / 2.) - : 0; - } - c->rect = NSMakeRect(x, y, width, height); - - if(parent == NULL) { - c->window = [[NSWindow alloc] - initWithContentRect:rectFlip(c->rect) - styleMask:(NSTitledWindowMask | - NSClosableWindowMask | NSMiniaturizableWindowMask | - NSResizableWindowMask) - backing:NSBackingStoreBuffered - defer:NO]; - [c->window - setDelegate:[[MilskoCocoaWindowDelegate alloc] initWithWin:c->window]]; - [c->window retain]; - - [c->window makeKeyAndOrderFront:c->application]; - [c->window makeFirstResponder:c->view]; - - c->view = [[MilskoCocoaView alloc] initWithFrame:c->rect]; - [c->view retain]; - [c->window setContentView:c->view]; - - if([c->application respondsToSelector:@selector(setActivationPolicy:)]) { - [c->application - setActivationPolicy:0 /* NSApplicationActivationPolicyRegular */]; - } - [c->application activateIgnoringOtherApps:MwTRUE]; - [c->application setDelegate:[[MilskoCocoaApplicationDelegate alloc] - initWithAppl:c->application]]; - [c->application retain]; - - [c->view addTrackingRect:c->rect owner:c->view userData:NULL assumeInside:MwFALSE]; - c->modalSession = [c->application beginModalSessionForWindow:c->window]; - } else { - MilskoCocoa* p = parent->cocoa.real; - - c->window = p->window; - - NSRect rect = localRectFlip(c->rect, p->view); - c->view = [[MilskoCocoaView alloc] initWithFrame:rect]; - [c->view setBounds:c->rect]; - [c->view retain]; - [c->view setChild]; - - [c->view addTrackingRect:c->rect owner:c->view userData:NULL assumeInside:MwFALSE]; - - [p->view addSubview:c->view]; - - c->modalSession = p->modalSession; - } - [c->window setAcceptsMouseMovedEvents:MwTRUE]; - - c->handle = [[MilskoFakePointer alloc] initWithFrame:NSMakeRect(0, 0, 1, 1)]; - [c->handle retain]; - [c->handle setPointer:r]; - [c->view addSubview:c->handle]; - - c->parent = parent; - - c->_forceRender = MwTRUE; - c->strHash = 0; - - c->cursorPixmap = NULL; - - [c->application finishLaunching]; - - c->pointerLocked = MwFALSE; - - [pool release]; - return c; -} - -- (void)polygonWithPoints:(MwPoint*)points - points_count:(int)points_count - color:(MwLLColor)color { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - NSGraphicsContext* ctx = [self->view context]; - if(ctx) { - int i; - NSBezierPath* path = [NSBezierPath bezierPath]; - /* whatever rect we use for coordinate flipping */ - NSRect _rect = parent ? [self->view bounds] : [self->window frame]; - - NSColor* nscolor = - [NSColor colorWithCalibratedRed:color->common.red / 255. - green:color->common.green / 255. - blue:color->common.blue / 255. - alpha:1.0]; - - [NSGraphicsContext saveGraphicsState]; - [NSGraphicsContext setCurrentContext:ctx]; - - [nscolor setFill]; - for(i = 0; i < points_count; i++) { - NSPoint p = localPointFlip(NSMakePoint(points[i].x, points[i].y), self->view); - if(i == 0) { - [path moveToPoint:p]; - } else { - [path lineToPoint:p]; - } - } - - [path closePath]; - [path fill]; - - [NSGraphicsContext restoreGraphicsState]; - - [self->view setNeedsDisplay:YES]; - } - [pool release]; -}; -- (void)lineWithPoints:(MwPoint*)points color:(MwLLColor)color { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - NSGraphicsContext* ctx = [self->view context]; - if(ctx) { - int i; - NSBezierPath* path = [NSBezierPath bezierPath]; - /* whatever rect we use for coordinate flipping */ - NSRect _rect = parent ? [self->view bounds] : [self->window frame]; - - NSColor* nscolor = - [NSColor colorWithCalibratedRed:color->common.red / 255. - green:color->common.green / 255. - blue:color->common.blue / 255. - alpha:1.0]; - - [NSGraphicsContext saveGraphicsState]; - [NSGraphicsContext setCurrentContext:ctx]; - - [nscolor setFill]; - for(i = 0; i < 2; i++) { - NSPoint p = localPointFlip(NSMakePoint(points[i].x, points[i].y), self->view); - if(i == 0) { - [path moveToPoint:p]; - } else { - [path lineToPoint:p]; - } - } - - [path closePath]; - [path stroke]; - - [NSGraphicsContext restoreGraphicsState]; - - [self->view setNeedsDisplay:YES]; - } - [pool release]; -}; -- (void)getX:(int*)x Y:(int*)y W:(unsigned int*)w H:(unsigned int*)h { - NSRect frame; - if(parent) { - frame = [self->view frame]; - } else { - frame = [self->window frame]; - } - frame = rectFlip(frame); - - *x = frame.origin.x; - *y = frame.origin.y; - - *w = frame.size.width; - *h = frame.size.height; -}; -- (void)setX:(int)x Y:(int)y { - NSRect frame; - if(parent) { - frame = [self->view frame]; - } else { - frame = [self->window frame]; - } - - frame.origin.x = x; - frame.origin.y = y; - - if(!parent) { - frame = rectFlip(frame); - [self->window setFrame:frame display:MwTRUE animate:MwTRUE]; - } else { - frame = localRectFlip(frame, parent->cocoa.real->view); - [self->view setBounds:frame]; - } - [self nudge]; -}; -- (void)setW:(int)w H:(int)h { - NSRect frame = [self->window frame]; - frame.size.width = w; - frame.size.height = h; - - self->rect = frame; - - [self->view setFrameSize:frame.size]; - if(self->parent) { - [self->view setFrame:frame]; - } else { - [self->window setFrame:frame display:YES animate:false]; - } - [self nudge]; -}; -- (int)pending { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - MwBool isPending = [self->application pending]; - [self->application runModalSession:self->modalSession]; - [pool release]; - return _forceRender || _eventsPending || isPending; -}; - -- (void)getNextEvent { - MwLL h = [self->handle pointer]; - if(_forceRender) { - MwLLDispatch(h, draw, NULL); - _forceRender = MwFALSE; - } - if(_eventsPending) { - MwLLDispatch(h, draw, NULL); - _eventsPending = MwFALSE; - } - [self sendClipboardEvent]; - -#ifdef __APPLE__ - if(self->pointerLocked && [self->window isMainWindow] && self->lastEvent) { - struct CGPoint pos; - pos.x = [window frame].origin.x + [window frame].size.width / 2; - pos.y = [window frame].origin.y + [window frame].size.height / 2; - - CGWarpMouseCursorPosition(pos); - } -#endif - - [self->application updateWindows]; -}; - - (void)sendClipboardEvent { /*NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; @@ -413,159 +158,6 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { [pool release];*/ } -- (void)setTitle:(const char*)title { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - [self->window - setTitleWithRepresentedFilename:[NSString stringWithUTF8String:title]]; - [pool release]; -}; -- (void)drawPixmap:(MwLLPixmap)pixmap rect:(MwRect*)_rect { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - MilskoCocoaPixmap* p = pixmap->cocoa.real; - NSGraphicsContext* ctx = [self->view context]; - if(ctx) { - [NSGraphicsContext saveGraphicsState]; - [NSGraphicsContext setCurrentContext:ctx]; - - [[p image] - drawInRect:localRectFlip(NSMakeRect(_rect->x, _rect->y, _rect->width, _rect->height), self->view) - fromRect:NSZeroRect - operation:NSCompositeSourceOver - fraction:1.0]; - - [NSGraphicsContext restoreGraphicsState]; - - [self->view setNeedsDisplay:YES]; - } - [pool release]; -}; -- (void)setIcon:(MwLLPixmap)pixmap { - [self->application setApplicationIconImage:[pixmap->cocoa.real image]]; -}; -- (void)forceRender { - self->_forceRender = MwTRUE; -}; -- (void)setCursor:(MwCursor*)image mask:(MwCursor*)mask { - int y, x, ys, xs; - unsigned char* di = malloc(image->width * image->height * 4); - memset(di, 0, image->width * image->height * 4); - - if(self->cursorPixmap) { - [self->cursorPixmap destroy]; - } - self->cursorPixmap = - [MilskoCocoaPixmap newWithWidth:image->width - height:image->height]; - - xs = -mask->x + image->x; - ys = MwCursorDataHeight + mask->y; - ys = MwCursorDataHeight + image->y - ys; - - for(y = 0; y < mask->height; y++) { - unsigned int d = mask->data[y]; - for(x = mask->width - 1; x >= 0; x--) { - int px = 0; - int idx = ((y * mask->width) + x) * 4; - - if(d & 1) { - di[idx + 3] = 255; - }; - d = d >> 1; - } - } - for(y = 0; y < image->height; y++) { - unsigned int d = image->data[y]; - for(x = image->width - 1; x >= 0; x--) { - int px = 0; - int idx = ((y * image->width) + x) * 4; - - if(d & 1) { - px = 255; - }; - - di[idx] = px; - di[idx + 1] = px; - di[idx + 2] = px; - d = d >> 1; - } - } - - [self->cursorPixmap updateWithData:di]; - - self->cursor = [[NSCursor alloc] - initWithImage:[self->cursorPixmap image] - hotSpot:NSMakePoint(image->x, image->y + image->height)]; - [self->cursor retain]; - - [self->cursor pop]; - [self->cursor push]; - - free(di); -}; -- (void)detachWithPoint:(MwPoint*)point { - [self->window setParentWindow:NULL]; -}; -- (void)show:(int)show { - (void)show; -}; -- (void)makePopupWithParent:(MwLL)_parent { - (void)_parent; -}; -- (void)setSizeHintsWithMinX:(int)minx - MinY:(int)miny - MaxX:(int)maxx - MaxY:(int)maxy { - [self->window setMinSize:NSMakeSize(minx, miny)]; - [self->window setMaxSize:NSMakeSize(maxx, maxy)]; -}; -- (void)makeBorderless:(int)toggle { - MwU32 mask = [self->window styleMask]; - if(toggle) { - mask ^= NSBorderlessWindowMask; - mask |= NSTitledWindowMask; - } else { - mask |= NSBorderlessWindowMask; - mask ^= NSTitledWindowMask; - } - [self->window initWithContentRect:self->rect - styleMask:mask - backing:NSBackingStoreBuffered - defer:NO]; -}; -- (void)focus { - [self->window makeMainWindow]; -}; -- (void)grabPointer:(int)toggle { - self->pointerLocked = toggle; -}; -- (void)setClipboard:(const char*)text { - (void)text; - // TODO: find out how to do this while supporting 10.4 - // NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - // NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; - // [pasteboard declareTypes:[NSArray arrayWithObjects:NSPasteboardTypeString] - // owner:nil]; [pasteboard setString:[NSString stringWithUTF8String:text] - // forType:NSPasteboardTypeString]; [pool release]; -}; -- (void)makeToolWindow { - /* If my understand of what a "tool window" usually is is correct then I - * highly doubt the Mac OS has this and if they did they probably outright - * removed it along time ago is this kind of conflicts with modern UX. So - * we'll just make it borderless idgaf */ - [self makeBorderless:MwTRUE]; -}; -- (void)getCursorCoord:(MwPoint*)point { - NSPoint p = [NSEvent mouseLocation]; - point->x = p.x; - point->y = p.y; -}; -- (void)getScreenSize:(MwRect*)_rect { - NSScreen* screen = [self->window screen]; - _rect->x = [screen frame].origin.x; - _rect->y = [screen frame].origin.y; - _rect->width = [screen frame].size.width; - _rect->height = [screen frame].size.height; -}; - (void)destroy { [self->handle release]; [self->window release]; @@ -1046,18 +638,98 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { @end static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { - MwLL r; - r = malloc(sizeof(*r)); + MwLL r; + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + MilskoCocoa* c = [MilskoCocoa alloc]; + r = malloc(sizeof(*r)); MwLLCreateCommon(r); - MilskoCocoa* o = [MilskoCocoa newWithParent:parent - x:x - y:y - width:width - height:height - handle:r]; - r->cocoa.real = o; + [c retain]; + c->application = (MilskoCocoaApplication*)[MilskoCocoaApplication sharedApplication]; + [c->application retain]; + + /* + * MacOS doesn't really have a "default" window position, you're actually + * meant to center the window yourself, so if the user passes MwDEFAULT + * respond appropriately. Also for child windows just have it be 0. + */ + if(x == MwDEFAULT) { + x = r ? ([[NSScreen mainScreen] frame].size.width / 2.) - (width / 2.) : 0; + } + if(y == MwDEFAULT) { + y = r ? ([[NSScreen mainScreen] frame].size.height / 2.) - (height / 2.) + : 0; + } + c->rect = NSMakeRect(x, y, width, height); + + if(parent == NULL) { + c->window = [[NSWindow alloc] + initWithContentRect:rectFlip(c->rect) + styleMask:(NSTitledWindowMask | + NSClosableWindowMask | NSMiniaturizableWindowMask | + NSResizableWindowMask) + backing:NSBackingStoreBuffered + defer:NO]; + [c->window + setDelegate:[[MilskoCocoaWindowDelegate alloc] initWithWin:c->window]]; + [c->window retain]; + + [c->window makeKeyAndOrderFront:c->application]; + [c->window makeFirstResponder:c->view]; + + c->view = [[MilskoCocoaView alloc] initWithFrame:c->rect]; + [c->view retain]; + [c->window setContentView:c->view]; + + if([c->application respondsToSelector:@selector(setActivationPolicy:)]) { + [c->application + setActivationPolicy:0 /* NSApplicationActivationPolicyRegular */]; + } + [c->application activateIgnoringOtherApps:MwTRUE]; + [c->application setDelegate:[[MilskoCocoaApplicationDelegate alloc] + initWithAppl:c->application]]; + [c->application retain]; + + [c->view addTrackingRect:c->rect owner:c->view userData:NULL assumeInside:MwFALSE]; + c->modalSession = [c->application beginModalSessionForWindow:c->window]; + } else { + MilskoCocoa* p = parent->cocoa.real; + + c->window = p->window; + + NSRect rect = localRectFlip(c->rect, p->view); + c->view = [[MilskoCocoaView alloc] initWithFrame:rect]; + [c->view setBounds:c->rect]; + [c->view retain]; + [c->view setChild]; + + [c->view addTrackingRect:c->rect owner:c->view userData:NULL assumeInside:MwFALSE]; + + [p->view addSubview:c->view]; + + c->modalSession = p->modalSession; + } + [c->window setAcceptsMouseMovedEvents:MwTRUE]; + + c->handle = [[MilskoFakePointer alloc] initWithFrame:NSMakeRect(0, 0, 1, 1)]; + [c->handle retain]; + [c->handle setPointer:r]; + [c->view addSubview:c->handle]; + + c->parent = parent; + + c->_forceRender = MwTRUE; + c->strHash = 0; + + c->cursorPixmap = NULL; + + [c->application finishLaunching]; + + c->pointerLocked = MwFALSE; + + [pool release]; + r->cocoa.real = c; return r; } @@ -1082,13 +754,81 @@ static void MwLLEndDrawImpl(MwLL handle) { static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { - MilskoCocoa* h = handle->cocoa.real; - [h polygonWithPoints:points points_count:points_count color:color]; + MilskoCocoa* self = handle->cocoa.real; + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + NSGraphicsContext* ctx = [self->view context]; + if(ctx) { + int i; + NSBezierPath* path = [NSBezierPath bezierPath]; + /* whatever rect we use for coordinate flipping */ + NSRect _rect = self->parent ? [self->view bounds] : [self->window frame]; + + NSColor* nscolor = + [NSColor colorWithCalibratedRed:color->common.red / 255. + green:color->common.green / 255. + blue:color->common.blue / 255. + alpha:1.0]; + + [NSGraphicsContext saveGraphicsState]; + [NSGraphicsContext setCurrentContext:ctx]; + + [nscolor setFill]; + for(i = 0; i < points_count; i++) { + NSPoint p = localPointFlip(NSMakePoint(points[i].x, points[i].y), self->view); + if(i == 0) { + [path moveToPoint:p]; + } else { + [path lineToPoint:p]; + } + } + + [path closePath]; + [path fill]; + + [NSGraphicsContext restoreGraphicsState]; + + [self->view setNeedsDisplay:YES]; + } + [pool release]; } static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { - MilskoCocoa* h = handle->cocoa.real; - [h lineWithPoints:points color:color]; + MilskoCocoa* self = handle->cocoa.real; + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + NSGraphicsContext* ctx = [self->view context]; + if(ctx) { + int i; + NSBezierPath* path = [NSBezierPath bezierPath]; + /* whatever rect we use for coordinate flipping */ + NSRect _rect = self->parent ? [self->view bounds] : [self->window frame]; + + NSColor* nscolor = + [NSColor colorWithCalibratedRed:color->common.red / 255. + green:color->common.green / 255. + blue:color->common.blue / 255. + alpha:1.0]; + + [NSGraphicsContext saveGraphicsState]; + [NSGraphicsContext setCurrentContext:ctx]; + + [nscolor setFill]; + for(i = 0; i < 2; i++) { + NSPoint p = localPointFlip(NSMakePoint(points[i].x, points[i].y), self->view); + if(i == 0) { + [path moveToPoint:p]; + } else { + [path lineToPoint:p]; + } + } + + [path closePath]; + [path stroke]; + + [NSGraphicsContext restoreGraphicsState]; + + [self->view setNeedsDisplay:YES]; + } + [pool release]; } static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { @@ -1106,16 +846,60 @@ static void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { } static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, - unsigned int* height) { - [handle->cocoa.real getX:x Y:y W:w H:height]; + unsigned int* h) { + MilskoCocoa* self = handle->cocoa.real; + NSRect frame; + if(self->parent) { + frame = [self->view frame]; + } else { + frame = [self->window frame]; + } + frame = rectFlip(frame); + + *x = frame.origin.x; + *y = frame.origin.y; + + *w = frame.size.width; + *h = frame.size.height; } static void MwLLSetXYImpl(MwLL handle, int x, int y) { - [handle->cocoa.real setX:x Y:y]; + MilskoCocoa* self = handle->cocoa.real; + NSRect frame; + if(self->parent) { + frame = [self->view frame]; + } else { + frame = [self->window frame]; + } + + frame.origin.x = x; + frame.origin.y = y; + + if(!self->parent) { + frame = rectFlip(frame); + [self->window setFrame:frame display:MwTRUE animate:MwTRUE]; + } else { + frame = localRectFlip(frame, self->parent->cocoa.real->view); + [self->view setBounds:frame]; + } + [self nudge]; } -static void MwLLSetWHImpl(MwLL handle, int w, int height) { - [handle->cocoa.real setW:w H:height]; +static void MwLLSetWHImpl(MwLL handle, int w, int h) { + MilskoCocoa* self = handle->cocoa.real; + NSRect frame = [self->window frame]; + frame.size.width = w; + frame.size.height = h; + + self->rect = frame; + + [self->view setFrameSize:frame.size]; + if(self->parent) { + [self->view setFrame:frame]; + } else { + [self->window setFrame:frame display:YES animate:false]; + } + [self nudge]; } static void MwLLFreeColorImpl(MwLLColor color) { @@ -1123,15 +907,45 @@ static void MwLLFreeColorImpl(MwLLColor color) { } static int MwLLPendingImpl(MwLL handle) { - return [handle->cocoa.real pending]; + MilskoCocoa* self = handle->cocoa.real; + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + MwBool isPending = [self->application pending]; + [self->application runModalSession:self->modalSession]; + [pool release]; + return self->_forceRender || self->_eventsPending || isPending; } static void MwLLNextEventImpl(MwLL handle) { - [handle->cocoa.real getNextEvent]; + MilskoCocoa* self = handle->cocoa.real; + MwLL h = [self->handle pointer]; + if(self->_forceRender) { + MwLLDispatch(h, draw, NULL); + self->_forceRender = MwFALSE; + } + if(self->_eventsPending) { + MwLLDispatch(h, draw, NULL); + self->_eventsPending = MwFALSE; + } + [self sendClipboardEvent]; + +#ifdef __APPLE__ + if(self->pointerLocked && [self->window isMainWindow] && self->lastEvent) { + struct CGPoint pos; + pos.x = [self->window frame].origin.x + [self->window frame].size.width / 2; + pos.y = [self->window frame].origin.y + [self->window frame].size.height / 2; + + CGWarpMouseCursorPosition(pos); + } +#endif + + [self->application updateWindows]; } static void MwLLSetTitleImpl(MwLL handle, const char* title) { - [handle->cocoa.real setTitle:title]; + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + [handle->cocoa.real->window + setTitleWithRepresentedFilename:[NSString stringWithUTF8String:title]]; + [pool release]; } static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, @@ -1154,7 +968,24 @@ static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, } static void MwLLPixmapUpdateImpl(MwLLPixmap pixmap) { - [pixmap->cocoa.real updateWithData:pixmap->common.raw]; + MilskoCocoaPixmap* self = pixmap->cocoa.real; + memcpy(self->buf, pixmap->common.raw, pixmap->common.width * pixmap->common.height * 4); + if(self->rep) { + [self->image removeRepresentation:self->rep]; + [self->rep release]; + } + self->rep = + [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:&self->buf + pixelsWide:(int)pixmap->common.width + pixelsHigh:(int)pixmap->common.height + bitsPerSample:8 + samplesPerPixel:4 + hasAlpha:YES + isPlanar:NO + colorSpaceName:NSDeviceRGBColorSpace + bytesPerRow:(int)pixmap->common.width * 4 + bitsPerPixel:32]; + [self->image addRepresentation:self->rep]; } static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { @@ -1164,53 +995,141 @@ static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { } static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { - [handle->cocoa.real drawPixmap:pixmap rect:rect]; + MilskoCocoa* self = handle->cocoa.real; + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + MilskoCocoaPixmap* p = pixmap->cocoa.real; + NSGraphicsContext* ctx = [self->view context]; + if(ctx) { + [NSGraphicsContext saveGraphicsState]; + [NSGraphicsContext setCurrentContext:ctx]; + + [[p image] + drawInRect:localRectFlip(NSMakeRect(rect->x, rect->y, rect->width, rect->height), self->view) + fromRect:NSZeroRect + operation:NSCompositeSourceOver + fraction:1.0]; + + [NSGraphicsContext restoreGraphicsState]; + + [self->view setNeedsDisplay:YES]; + } + [pool release]; MwLLForceRender(handle); } static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { - [handle->cocoa.real setIcon:pixmap]; + [handle->cocoa.real->application setApplicationIconImage:[pixmap->cocoa.real image]]; } static void MwLLForceRenderImpl(MwLL handle) { - [handle->cocoa.real forceRender]; + handle->cocoa.real->_forceRender = MwTRUE; } static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { - [handle->cocoa.real setCursor:image mask:mask]; + MilskoCocoa* self = handle->cocoa.real; + int y, x, ys, xs; + unsigned char* di = malloc(image->width * image->height * 4); + memset(di, 0, image->width * image->height * 4); + + if(self->cursorPixmap) { + [self->cursorPixmap destroy]; + } + self->cursorPixmap = + [MilskoCocoaPixmap newWithWidth:image->width + height:image->height]; + + xs = -mask->x + image->x; + ys = MwCursorDataHeight + mask->y; + ys = MwCursorDataHeight + image->y - ys; + + for(y = 0; y < mask->height; y++) { + unsigned int d = mask->data[y]; + for(x = mask->width - 1; x >= 0; x--) { + int px = 0; + int idx = ((y * mask->width) + x) * 4; + + if(d & 1) { + di[idx + 3] = 255; + }; + d = d >> 1; + } + } + for(y = 0; y < image->height; y++) { + unsigned int d = image->data[y]; + for(x = image->width - 1; x >= 0; x--) { + int px = 0; + int idx = ((y * image->width) + x) * 4; + + if(d & 1) { + px = 255; + }; + + di[idx] = px; + di[idx + 1] = px; + di[idx + 2] = px; + d = d >> 1; + } + } + + [self->cursorPixmap updateWithData:di]; + + self->cursor = [[NSCursor alloc] + initWithImage:[self->cursorPixmap image] + hotSpot:NSMakePoint(image->x, image->y + image->height)]; + [self->cursor retain]; + + [self->cursor pop]; + [self->cursor push]; + + free(di); } static void MwLLDetachImpl(MwLL handle, MwPoint* point) { - [handle->cocoa.real detachWithPoint:point]; + [handle->cocoa.real->window setParentWindow:NULL]; } static void MwLLShowImpl(MwLL handle, int show) { - [handle->cocoa.real show:show]; + (void)show; } static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { - [handle->cocoa.real makePopupWithParent:parent]; + (void)parent; } static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) { - [handle->cocoa.real setSizeHintsWithMinX:minx MinY:miny MaxX:maxx MaxY:maxy]; + MilskoCocoa* self = handle->cocoa.real; + [self->window setMinSize:NSMakeSize(minx, miny)]; + [self->window setMaxSize:NSMakeSize(maxx, maxy)]; } static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { - [handle->cocoa.real makeBorderless:toggle]; + MilskoCocoa* self = handle->cocoa.real; + MwU32 mask = [self->window styleMask]; + if(toggle) { + mask ^= NSBorderlessWindowMask; + mask |= NSTitledWindowMask; + } else { + mask |= NSBorderlessWindowMask; + mask ^= NSTitledWindowMask; + } + [self->window initWithContentRect:self->rect + styleMask:mask + backing:NSBackingStoreBuffered + defer:NO]; } static void MwLLFocusImpl(MwLL handle) { - [handle->cocoa.real focus]; + [handle->cocoa.real->application activateIgnoringOtherApps:MwTRUE]; } static void MwLLGrabPointerImpl(MwLL handle, int toggle) { - [handle->cocoa.real grabPointer:toggle]; + handle->cocoa.real->pointerLocked = toggle; } static void MwLLSetClipboardImpl(MwLL handle, const char* text) { - [handle->cocoa.real setClipboard:text]; + (void)handle; + (void)text; } static void MwLLGetClipboardImpl(MwLL handle) { @@ -1218,15 +1137,26 @@ static void MwLLGetClipboardImpl(MwLL handle) { } static void MwLLMakeToolWindowImpl(MwLL handle) { - [handle->cocoa.real makeToolWindow]; + /* If my understand of what a "tool window" usually is is correct then I + * highly doubt the Mac OS has this and if they did they probably outright + * removed it along time ago is this kind of conflicts with modern UX. So + * we'll just make it borderless idgaf */ + MwLLMakeBorderlessImpl(handle, 1); } static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { - [handle->cocoa.real getCursorCoord:point]; + NSPoint p = [NSEvent mouseLocation]; + point->x = p.x; + point->y = p.y; } static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { - [handle->cocoa.real getScreenSize:rect]; + MilskoCocoa* self = handle->cocoa.real; + NSScreen* screen = [self->window screen]; + rect->x = [screen frame].origin.x; + rect->y = [screen frame].origin.y; + rect->width = [screen frame].size.width; + rect->height = [screen frame].size.height; } static void MwLLBeginStateChangeImpl(MwLL handle) { From c0d7cb3fbc71811cf4bd6346b58d579567ac890c Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 13 Apr 2026 21:50:10 -0700 Subject: [PATCH 359/836] mac: add a few comments --- src/backend/cocoa.m | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index b43aef2b7..ec20af1c9 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -327,6 +327,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { - (void)handleKeyEvent:(NSEvent*)ev ll:(MwLL)ll down:(MwBool)isDown { int ch; + /* todo: consolidate these values into the below switch case. */ enum { kVK_ANSI_A = 0x00, kVK_ANSI_S = 0x01, @@ -682,10 +683,12 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { [c->view retain]; [c->window setContentView:c->view]; + /* In order for our application to be front and center when launched, we need to use this function introduced in 10.5. There's no function that works on 10.4 or below as far as I know because what you're actually supposed to do is use a feature of XCode project files to modify the settings of the compiled app to set the activation policy. */ if([c->application respondsToSelector:@selector(setActivationPolicy:)]) { [c->application setActivationPolicy:0 /* NSApplicationActivationPolicyRegular */]; } + [c->application activateIgnoringOtherApps:MwTRUE]; [c->application setDelegate:[[MilskoCocoaApplicationDelegate alloc] initWithAppl:c->application]]; @@ -694,12 +697,11 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { [c->view addTrackingRect:c->rect owner:c->view userData:NULL assumeInside:MwFALSE]; c->modalSession = [c->application beginModalSessionForWindow:c->window]; } else { - MilskoCocoa* p = parent->cocoa.real; + MilskoCocoa* p = parent->cocoa.real; + NSRect rect = localRectFlip(c->rect, p->view); c->window = p->window; - - NSRect rect = localRectFlip(c->rect, p->view); - c->view = [[MilskoCocoaView alloc] initWithFrame:rect]; + c->view = [[MilskoCocoaView alloc] initWithFrame:rect]; [c->view setBounds:c->rect]; [c->view retain]; [c->view setChild]; @@ -729,6 +731,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { c->pointerLocked = MwFALSE; [pool release]; + r->cocoa.real = c; return r; From fe72bc92bfd3781b723c7c65ccbc36d8cc04cefb Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 13 Apr 2026 22:30:25 -0700 Subject: [PATCH 360/836] mac: actually dispatch close event. reorganize code slightly more now that less is in objective-c methods --- src/backend/cocoa.m | 317 ++++++++++++++++++++------------------------ 1 file changed, 143 insertions(+), 174 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index ec20af1c9..b88bd423b 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -64,139 +64,6 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { } }; -@implementation MilskoCocoaPixmap - -+ (MilskoCocoaPixmap*)newWithWidth:(int)width height:(int)height { - MilskoCocoaPixmap* p = [MilskoCocoaPixmap alloc]; - - p->width = width; - p->height = height; - p->image = NULL; - - p->buf = malloc(width * height * 4); - - p->rep = - [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:&p->buf - pixelsWide:(int)width - pixelsHigh:(int)height - bitsPerSample:8 - samplesPerPixel:4 - hasAlpha:YES - isPlanar:NO - colorSpaceName:NSDeviceRGBColorSpace - bytesPerRow:(int)width * 4 - bitsPerPixel:32]; - assert(p->rep); - - p->image = [[NSImage alloc] initWithSize:NSMakeSize(width, height)]; - assert(p->image); - [p->image addRepresentation:p->rep]; - - return p; -} -- (void)updateWithData:(unsigned char*)_data { - memcpy(self->buf, _data, width * height * 4); - if(self->rep) { - [self->image removeRepresentation:self->rep]; - [self->rep release]; - } - self->rep = - [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:&self->buf - pixelsWide:(int)width - pixelsHigh:(int)height - bitsPerSample:8 - samplesPerPixel:4 - hasAlpha:YES - isPlanar:NO - colorSpaceName:NSDeviceRGBColorSpace - bytesPerRow:(int)width * 4 - bitsPerPixel:32]; - [self->image addRepresentation:self->rep]; -} -- (void)destroy { - free(self->buf); - [self->image removeRepresentation:self->rep]; - [self->image release]; - [self->rep release]; - self->image = NULL; - self->rep = NULL; -} -- (NSImage*)image { - return self->image; -} -@end - -@implementation MilskoCocoa -- (void)sendClipboardEvent { - /*NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; - NSArray* items = @[ - @"public.utf8-plain-text", - @"public.utf16-external-plain-text", - @"com.apple.traditional-mac-plain-text", - ]; - MwLL this = self->handle.pointer; - - if([pasteboard canReadItemWithDataConformingToTypes:items]) { - char* data = NULL; - size_t size = 0; - for(NSPasteboardItem* item in [pasteboard pasteboardItems]) { - for(NSString* it in items) { - NSString* itemData = [item - stringForType:(NSString*)it]; if(itemData != NULL) { if(strHash != 0 && - strHash != [itemData hash]) { char* text = malloc([itemData length]); - strncpy(text, [itemData UTF8String], - [itemData length]); MwLLDispatch(this, clipboard, text); printf("%s -> %p\n", - text, this); free(text); - } - strHash = [itemData hash]; - } - } - } - } - - [pool release];*/ -} - -- (void)destroy { - [self->handle release]; - [self->window release]; -} - -- (MwLL)getParent { - return self->parent; -} - -- (NSView*)getView { - return view; -} -- (NSWindow*)getWindow { - return window; -} - -- (void)nudge { - MwLL p = self->parent; - self->_eventsPending = MwTRUE; - - if(p) { - [p->cocoa.real->view setNeedsDisplay:true]; - p = p->cocoa.real->parent; - } -} - -- (void)pushCursor { - [self->cursor push]; -} -- (void)popCursor { - [self->cursor pop]; -} - -- (MilskoFakePointer*)getHandle { - return handle; -} - -@end - @implementation MilskoCocoaApplication - (void)sendEvent:(NSEvent*)event { self->doPending = MwTRUE; @@ -555,17 +422,6 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { self->appl = _appl; return self; } -- (void)applicationDidBecomeActive:(NSNotification*)notification { - [self->appl activateIgnoringOtherApps:true]; - // printf("test\n"); -} -- (void)applicationWillFinishLaunching:(NSNotification*)notification { - // printf("test\n"); - // [self->appl activateIgnoringOtherApps:MwTRUE]; -} -- (void)applicationDidFinishLaunching:(NSNotification*)notification { - // [self->appl activateIgnoringOtherApps:MwTRUE]; -} @end @implementation MilskoCocoaWindowDelegate @@ -591,23 +447,19 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { [self->w makeKeyAndOrderFront:nil]; } -- (void)windowDidResize:(NSNotification*)notification { - (void)notification; -} - -// This will close/terminate the application when the main window is closed. -- (void)windowWillClose:(NSNotification*)notification { - (void)notification; - // MilskoCocoa* window = notification.object; - // MwLL handle = [window getHandle].pointer; - // MwLLDispatch(handle, close, NULL); -} - - (MilskoCocoaWindowDelegate*)initWithWin:(NSWindow*)win { self->w = win; return self; } +- (void)windowWillClose:(NSNotification*)notification { + if([[[w contentView] subviews] count] != 0) { + MwLL h = [((MilskoFakePointer*)[[[w contentView] subviews] + objectAtIndex:0]) pointer]; + MwLLDispatch(h, close, NULL); + } +} + @end @implementation MilskoFakePointer @@ -638,6 +490,138 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { @end +@implementation MilskoCocoaPixmap ++ (MilskoCocoaPixmap*)newWithWidth:(int)width height:(int)height { + MilskoCocoaPixmap* p = [MilskoCocoaPixmap alloc]; + + p->width = width; + p->height = height; + p->image = NULL; + + p->buf = malloc(width * height * 4); + + p->rep = + [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:&p->buf + pixelsWide:(int)width + pixelsHigh:(int)height + bitsPerSample:8 + samplesPerPixel:4 + hasAlpha:YES + isPlanar:NO + colorSpaceName:NSDeviceRGBColorSpace + bytesPerRow:(int)width * 4 + bitsPerPixel:32]; + assert(p->rep); + + p->image = [[NSImage alloc] initWithSize:NSMakeSize(width, height)]; + assert(p->image); + [p->image addRepresentation:p->rep]; + + return p; +} +- (void)updateWithData:(unsigned char*)_data { + memcpy(self->buf, _data, width * height * 4); + if(self->rep) { + [self->image removeRepresentation:self->rep]; + [self->rep release]; + } + self->rep = + [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:&self->buf + pixelsWide:(int)width + pixelsHigh:(int)height + bitsPerSample:8 + samplesPerPixel:4 + hasAlpha:YES + isPlanar:NO + colorSpaceName:NSDeviceRGBColorSpace + bytesPerRow:(int)width * 4 + bitsPerPixel:32]; + [self->image addRepresentation:self->rep]; +} +- (void)destroy { + free(self->buf); + [self->image removeRepresentation:self->rep]; + [self->image release]; + [self->rep release]; + self->image = NULL; + self->rep = NULL; +} +- (NSImage*)image { + return self->image; +} +@end + +@implementation MilskoCocoa +- (void)sendClipboardEvent { + /*NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; + NSArray* items = @[ + @"public.utf8-plain-text", + @"public.utf16-external-plain-text", + @"com.apple.traditional-mac-plain-text", + ]; + MwLL this = self->handle.pointer; + + if([pasteboard canReadItemWithDataConformingToTypes:items]) { + char* data = NULL; + size_t size = 0; + for(NSPasteboardItem* item in [pasteboard pasteboardItems]) { + for(NSString* it in items) { + NSString* itemData = [item + stringForType:(NSString*)it]; if(itemData != NULL) { if(strHash != 0 && + strHash != [itemData hash]) { char* text = malloc([itemData length]); + strncpy(text, [itemData UTF8String], + [itemData length]); MwLLDispatch(this, clipboard, text); printf("%s -> %p\n", + text, this); free(text); + } + strHash = [itemData hash]; + } + } + } + } + + [pool release];*/ +} + +- (void)destroy { + [self->handle release]; + [self->window release]; +} + +- (MwLL)getParent { + return self->parent; +} + +- (NSView*)getView { + return view; +} +- (NSWindow*)getWindow { + return window; +} + +- (void)nudge { + MwLL p = self->parent; + self->_eventsPending = MwTRUE; + + if(p) { + [p->cocoa.real->view setNeedsDisplay:true]; + p = p->cocoa.real->parent; + } +} + +- (void)pushCursor { + [self->cursor push]; +} +- (void)popCursor { + [self->cursor pop]; +} + +- (MilskoFakePointer*)getHandle { + return handle; +} + +@end + static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLL r; NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; @@ -953,9 +937,9 @@ static void MwLLSetTitleImpl(MwLL handle, const char* title) { static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) { - (void)handle; - MwLLPixmap r = malloc(sizeof(*r)); + + (void)handle; memset(r, 0, sizeof(*r)); r->common.raw = malloc(4 * width * height); @@ -973,22 +957,7 @@ static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, static void MwLLPixmapUpdateImpl(MwLLPixmap pixmap) { MilskoCocoaPixmap* self = pixmap->cocoa.real; memcpy(self->buf, pixmap->common.raw, pixmap->common.width * pixmap->common.height * 4); - if(self->rep) { - [self->image removeRepresentation:self->rep]; - [self->rep release]; - } - self->rep = - [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:&self->buf - pixelsWide:(int)pixmap->common.width - pixelsHigh:(int)pixmap->common.height - bitsPerSample:8 - samplesPerPixel:4 - hasAlpha:YES - isPlanar:NO - colorSpaceName:NSDeviceRGBColorSpace - bytesPerRow:(int)pixmap->common.width * 4 - bitsPerPixel:32]; - [self->image addRepresentation:self->rep]; + [pixmap->cocoa.real updateWithData:pixmap->common.raw]; } static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { From 0e2e3a190157cc5f29fdbb1a54a2301383e9f97d Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 14 Apr 2026 13:13:17 -0700 Subject: [PATCH 361/836] some gnustep fixes, probably close to giving up on this ngl --- include/Mw/LowLevel/Cocoa.h | 2 ++ src/backend/cocoa.m | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 3577ad03e..2a8c7ec7c 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -81,6 +81,8 @@ @end @interface MilskoCocoaView : NSView { + @public + unsigned char* buf; NSBitmapImageRep* rep; NSGraphicsContext* context; MwBool valid; diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index b88bd423b..c336f7fb8 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -140,8 +140,11 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { - (void)initRepAndContextWithWidth:(float)w Height:(float)h { NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + self->buf = malloc(w * h * 4); + memset(self->buf, 255, w * h * 4); + self->rep = - [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL + [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:&self->buf pixelsWide:w pixelsHigh:h bitsPerSample:8 @@ -536,6 +539,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { colorSpaceName:NSDeviceRGBColorSpace bytesPerRow:(int)width * 4 bitsPerPixel:32]; + assert(self->rep); [self->image addRepresentation:self->rep]; } - (void)destroy { @@ -975,7 +979,7 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { [NSGraphicsContext saveGraphicsState]; [NSGraphicsContext setCurrentContext:ctx]; - [[p image] + [p->image drawInRect:localRectFlip(NSMakeRect(rect->x, rect->y, rect->width, rect->height), self->view) fromRect:NSZeroRect operation:NSCompositeSourceOver From f22f45d5bf61f1b2fb9dd819bfe6b3f73acfb303 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 14 Apr 2026 13:34:49 -0700 Subject: [PATCH 362/836] give up on rounded borders --- include/Mw/Draw.h | 6 +- src/core.c | 1 - src/draw.c | 284 ++++++++++----------------------------- src/widget/box.c | 2 +- src/widget/combobox.c | 2 +- src/widget/entry.c | 2 +- src/widget/frame.c | 2 +- src/widget/image.c | 2 +- src/widget/listbox.c | 6 +- src/widget/menu.c | 2 +- src/widget/progressbar.c | 2 +- src/widget/separator.c | 2 +- src/widget/submenu.c | 2 +- src/widget/treeview.c | 8 +- src/widget/window.c | 2 +- 15 files changed, 92 insertions(+), 233 deletions(-) diff --git a/include/Mw/Draw.h b/include/Mw/Draw.h index c6c361275..9208d725d 100644 --- a/include/Mw/Draw.h +++ b/include/Mw/Draw.h @@ -53,7 +53,7 @@ MWDECL void MwDrawRect(MwWidget handle, MwRect* rect, MwLLColor color); * @param rect Rectangle area * @param color Color */ -MWDECL void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color, int rounded); +MWDECL void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color); /*! * @brief Draws a frame @@ -63,7 +63,7 @@ MWDECL void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color, int * @param invert Invert the 3D border color or not * @warning `rect` gets changed to the area of rectangle inside */ -MWDECL void MwDrawFrame(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int rounded); +MWDECL void MwDrawFrame(MwWidget handle, MwRect* rect, MwLLColor color, int invert); /*! * @brief Does the DrawFrame/DrawRect combo used for drawing widget. @@ -96,7 +96,7 @@ MWDECL void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int i * @param rounded Rounded or not * @warning `rect` gets changed to the area of rectangle inside */ -MWDECL void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border, int diff, int same, int rounded); +MWDECL void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border, int diff, int same); /*! * @brief Creates a pixmap from image diff --git a/src/core.c b/src/core.c index cdd0723b9..2b98ec5fc 100644 --- a/src/core.c +++ b/src/core.c @@ -606,7 +606,6 @@ int MwGetInteger(MwWidget handle, const char* key) { #else if(strcmp(key, MwNmodernLook) == 0) return inherit_integer(handle, key, 1); #endif - if(strcmp(key, MwNisRounded) == 0) return inherit_integer(handle, key, 1); if(strcmp(key, MwNdarkTheme) == 0) return inherit_integer(handle, key, 0); if(strcmp(key, MwNuseMonospace) == 0) return inherit_integer(handle, key, 0); } diff --git a/src/draw.c b/src/draw.c index 12ccb5127..f5e1368dd 100644 --- a/src/draw.c +++ b/src/draw.c @@ -11,10 +11,6 @@ #include "../external/stb_ds.h" -#define DEFAULT_ROUNDNESS 5 -#define MAX_ROUNDNESS 30 -#define BORDER_SMOOTHNESS 50 - static int get_color_diff(MwWidget handle) { if(MwGetInteger(handle, MwNmodernLook)) { return 40; @@ -106,7 +102,7 @@ void MwDrawRect(MwWidget handle, MwRect* rect, MwLLColor color) { MwLLPolygon(handle->lowlevel, p, 4, color); } -void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color, int rounded) { +void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color) { MwLLPixmap pixmap; int y, i; double darken = 0.; @@ -115,17 +111,18 @@ void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color, int rounde unsigned long sz = 1 * rect->height * 4; unsigned char* data = malloc(sz); MwRect r = *rect; - int roundness = MwGetInteger(handle, MwNroundness); double div; if(rect->width <= 0 || rect->height <= 0) { free(data); return; } - if(roundness == MwDEFAULT) roundness = DEFAULT_ROUNDNESS; - if(roundness >= MAX_ROUNDNESS) roundness = MAX_ROUNDNESS; - div = (roundness <= 10) ? 7. : 10.; memset(data, 0, sz); + r.x += 1; + r.y += 1; + r.width -= 2; + r.height -= 2; + for(y = 0; y < rect->height; y++) { MwLLColor col = MwLightenColor(handle, color, -darken, -darken, -darken); int idx = y * 4; @@ -138,42 +135,18 @@ void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color, int rounde } pixmap = MwLLCreatePixmap(handle->lowlevel, data, 1, rect->height); - if(rounded && rect->height >= (roundness * 2) && rect->width >= (roundness * 2) && roundness > 0) { - for(i = 0; i < roundness; i++) { - int x = (roundness + 2); - int y = rect->y + (roundness + 2); - double point = ((i + (M_PI * 4)) / div); - r.x = (roundness + 4) - (sin(point) * roundness); - r.y = y + (cos(point) * roundness) + 1; - r.width = roundness; - r.height = (rect->height - ((r.y - rect->y) * 2) - 1); - MwLLDrawPixmap(handle->lowlevel, &r, pixmap); - r.width = x + (sin(point + 1) * roundness); - r.x = ((rect->width - (roundness + 1)) + (sin(point) * roundness)) - r.width; - MwLLDrawPixmap(handle->lowlevel, &r, pixmap); - } - - r = *rect; - r.x += roundness; - r.y += 3; - r.width -= (roundness * 2) + 1; - r.height -= 6; - MwLLDrawPixmap(handle->lowlevel, &r, pixmap); - - } else { - MwLLDrawPixmap(handle->lowlevel, &r, pixmap); - } + MwLLDrawPixmap(handle->lowlevel, &r, pixmap); MwLLDestroyPixmap(pixmap); free(data); } -void MwDrawFrame(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int rounded) { +void MwDrawFrame(MwWidget handle, MwRect* rect, MwLLColor color, int invert) { int inv; if((inv = MwGetInteger(handle, MwNforceInverted)) != MwDEFAULT && inv) invert = 1; if(MwGetInteger(handle, MwNmodernLook)) { - MwDrawFrameEx(handle, rect, color, invert, MwDefaultBorderWidth(handle), 0, 0, rounded); + MwDrawFrameEx(handle, rect, color, invert, MwDefaultBorderWidth(handle), 0, 0); } else { int diff = get_color_diff(handle) / 3 * 2; @@ -181,18 +154,17 @@ void MwDrawFrame(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int int i; int st = invert ? 1 : 0; for(i = st; i < st + 2; i++) { - if((i % 2) == 0) MwDrawFrameEx(handle, rect, color, invert, MwDefaultBorderWidth(handle) - 1, -diff, (handle->parent == NULL || handle->parent->lowlevel == NULL) ? 1 : 0, 0); - if((i % 2) == 1) MwDrawFrameEx(handle, rect, color, invert, 1, diff, 0, 0); + if((i % 2) == 0) MwDrawFrameEx(handle, rect, color, invert, MwDefaultBorderWidth(handle) - 1, -diff, (handle->parent == NULL || handle->parent->lowlevel == NULL) ? 1 : 0); + if((i % 2) == 1) MwDrawFrameEx(handle, rect, color, invert, 1, diff, 0); } } else { - MwDrawFrameEx(handle, rect, color, invert, 1, 0, 0, 0); + MwDrawFrameEx(handle, rect, color, invert, 1, 0, 0); } } } void MwDrawWidgetBack(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border) { MwLLColor col; - MwBool rounded = MwGetInteger(handle, MwNroundness) != MwDEFAULT && MwGetInteger(handle, MwNisRounded) != 0; if(rect->width <= 0 || rect->height <= 0) return; @@ -206,11 +178,11 @@ void MwDrawWidgetBack(MwWidget handle, MwRect* rect, MwLLColor color, int invert } } - MwDrawFrame(handle, rect, color, invert, rounded); + MwDrawFrame(handle, rect, color, invert); } col = invert ? MwLightenColor(handle, color, -8, -8, -8) : color; if(MwGetInteger(handle, MwNmodernLook)) { - MwDrawRectFading(handle, rect, col, rounded); + MwDrawRectFading(handle, rect, col); } else { MwDrawRect(handle, rect, col); } @@ -284,55 +256,47 @@ void MwDrawDiamond(MwWidget handle, MwRect* rect, MwLLColor color, int invert) { MwLLFreeColor(darker); } -static void MwDrawFrameEx_simple(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border, int diff, int same, int rounded) { +static void MwDrawFrameEx_simple(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border, int diff, int same) { MwPoint p[7]; int ColorDiff = get_color_diff(handle); MwLLColor darker = MwLightenColor(handle, color, -ColorDiff * 3 / 2 + diff, -ColorDiff * 3 / 2 + diff, -ColorDiff * 3 / 2 + diff); MwLLColor lighter = same ? MwLightenColor(handle, darker, 0, 0, 0) : MwLightenColor(handle, color, ColorDiff - diff, ColorDiff - diff, ColorDiff - diff); - int roundness = MwGetInteger(handle, MwNroundness); + p[0].x = rect->x; + p[0].y = rect->y; - if(roundness == MwDEFAULT) roundness = DEFAULT_ROUNDNESS; - if(roundness >= MAX_ROUNDNESS) roundness = MAX_ROUNDNESS; - if(!(rounded && rect->height >= (roundness * 2) && rect->width >= (roundness * 2) && roundness > 0)) { - p[0].x = rect->x; - p[0].y = rect->y; + p[1].x = rect->x + rect->width; + p[1].y = rect->y; - p[1].x = rect->x + rect->width; - p[1].y = rect->y; + p[2].x = rect->x + rect->width - border; + p[2].y = rect->y + border; + p[3].x = rect->x + border; + p[3].y = rect->y + border; - p[2].x = rect->x + rect->width - border; - p[2].y = rect->y + border; - p[3].x = rect->x + border; - p[3].y = rect->y + border; + p[4].x = rect->x + border; + p[4].y = rect->y + rect->height - border; - p[4].x = rect->x + border; - p[4].y = rect->y + rect->height - border; - - p[5].x = rect->x; - p[5].y = rect->y + rect->height; - } + p[5].x = rect->x; + p[5].y = rect->y + rect->height; MwLLPolygon(handle->lowlevel, p, 6, invert ? darker : lighter); - if(!(rounded && rect->height >= (roundness * 2) && rect->width >= (roundness * 2) && roundness > 0)) { - p[0].x = rect->x + rect->width; - p[0].y = rect->y; + p[0].x = rect->x + rect->width; + p[0].y = rect->y; - p[1].x = rect->x + rect->width - border; - p[1].y = rect->y + border; + p[1].x = rect->x + rect->width - border; + p[1].y = rect->y + border; - p[2].x = rect->x + rect->width - border; - p[2].y = rect->y + rect->height - border; + p[2].x = rect->x + rect->width - border; + p[2].y = rect->y + rect->height - border; - p[3].x = rect->x + border; - p[3].y = rect->y + rect->height - border; + p[3].x = rect->x + border; + p[3].y = rect->y + rect->height - border; - p[4].x = rect->x; - p[4].y = rect->y + rect->height; + p[4].x = rect->x; + p[4].y = rect->y + rect->height; - p[5].x = rect->x + rect->width; - p[5].y = rect->y + rect->height; - MwLLPolygon(handle->lowlevel, p, 6, invert ? lighter : darker); - } + p[5].x = rect->x + rect->width; + p[5].y = rect->y + rect->height; + MwLLPolygon(handle->lowlevel, p, 6, invert ? lighter : darker); MwLLFreeColor(lighter); MwLLFreeColor(darker); @@ -343,168 +307,64 @@ static void MwDrawFrameEx_simple(MwWidget handle, MwRect* rect, MwLLColor color, rect->height -= border * 2; } -static void frame_border_complex(MwWidget handle, MwRect* rect, MwLLColor lighter, MwLLColor darker, int invert, int border, int diff, int same, int rounded) { +static void frame_border_complex(MwWidget handle, MwRect* rect, MwLLColor lighter, MwLLColor darker, int invert, int border, int diff, int same) { MwPoint p[7]; - int roundness = MwGetInteger(handle, MwNroundness); int i; (void)diff; (void)same; - if(roundness == MwDEFAULT) roundness = DEFAULT_ROUNDNESS; - if(roundness >= MAX_ROUNDNESS) roundness = MAX_ROUNDNESS; - if(rounded && rect->height >= (roundness * 4) && rect->width >= (roundness * 4) && roundness > 0) { - /* top left edge */ - for(i = 0; i < BORDER_SMOOTHNESS; i += 2) { - MwPoint line[2]; - double point = ((i + (M_PI * (BORDER_SMOOTHNESS / 2.))) / (BORDER_SMOOTHNESS)); - int x = rect->x + (roundness + 2); - int y = rect->y + (roundness + 2); + p[0].x = rect->x; + p[0].y = rect->y; - line[0].x = x - (sin(point) * roundness); - line[0].y = y + (cos(point) * roundness); - line[1].x = x - (sin(point + 1) * roundness); - line[1].y = y + (cos(point + 1) * roundness); - MwLLLine(handle->lowlevel, line, invert ? lighter : darker); - } + p[1].x = rect->x + rect->width; + p[1].y = rect->y; - p[0].x = rect->x + roundness; - p[0].y = rect->y + border; + p[2].x = rect->x + rect->width - border; + p[2].y = rect->y + border; + p[3].x = rect->x + border; + p[3].y = rect->y + border; - p[1].x = rect->x + rect->width - border - roundness; - p[1].y = rect->y + border; + p[4].x = rect->x + border; + p[4].y = rect->y + rect->height - border; - p[2].x = rect->x + rect->width - border - roundness; - p[2].y = rect->y + border + roundness; - - p[3].x = rect->x + border; - p[3].y = rect->y + border + roundness; - - p[4].x = rect->x + border; - p[4].y = (rect->y + border) + rect->height - roundness; - - p[5].x = rect->x + roundness; - p[5].y = (rect->y + border) + rect->height - roundness; - MwLLPolygon(handle->lowlevel, p, 6, invert ? lighter : darker); - - /* top right edge */ - for(i = 0; i < BORDER_SMOOTHNESS; i += 2) { - MwPoint line[2]; - double point = ((i + (M_PI * (BORDER_SMOOTHNESS / 2.))) / (BORDER_SMOOTHNESS)); - int x = (rect->x + rect->width) - (roundness + 2); - int y = rect->y + (roundness + 2); - double placeholder = (sin(point) * roundness); - line[0].x = x + placeholder; - line[0].y = y + (cos(point) * roundness); - line[1].x = x + (sin(point + 1) * roundness); - line[1].y = y + (cos(point + 1) * roundness); - MwLLLine(handle->lowlevel, line, invert ? lighter : darker); - } - } else { - p[0].x = rect->x; - p[0].y = rect->y; - - p[1].x = rect->x + rect->width; - p[1].y = rect->y; - - p[2].x = rect->x + rect->width - border; - p[2].y = rect->y + border; - p[3].x = rect->x + border; - p[3].y = rect->y + border; - - p[4].x = rect->x + border; - p[4].y = rect->y + rect->height - border; - - p[5].x = rect->x; - p[5].y = rect->y + rect->height; - } + p[5].x = rect->x; + p[5].y = rect->y + rect->height; MwLLPolygon(handle->lowlevel, p, 6, invert ? lighter : darker); - if(rounded && rect->height >= (roundness * 4) && rect->width >= (roundness * 4) && roundness > 0) { - /* bottom left edge */ - for(i = 0; i < BORDER_SMOOTHNESS; i += 2) { - MwPoint line[2]; - double point = ((i + (M_PI * (BORDER_SMOOTHNESS / 2.))) / (BORDER_SMOOTHNESS)); - int x = rect->x + (roundness + 2); - int y = (rect->y + rect->height) - (roundness + 2); + p[0].x = rect->x + rect->width; + p[0].y = rect->y; - line[0].x = x - (sin(point) * roundness); - line[0].y = y - (cos(point) * roundness); - line[1].x = x - (sin(point + 1) * roundness); - line[1].y = y - (cos(point + 1) * roundness); - MwLLLine(handle->lowlevel, line, invert ? lighter : darker); - } - p[0].x = rect->x + roundness; - p[0].y = rect->y + border + roundness; + p[1].x = rect->x + rect->width - border; + p[1].y = rect->y + border; - p[1].x = rect->x + rect->width - border; - p[1].y = rect->y + border + roundness; + p[2].x = rect->x + rect->width - border; + p[2].y = rect->y + rect->height - border; - p[2].x = rect->x + rect->width - border; - p[2].y = rect->y + rect->height - border - roundness; + p[3].x = rect->x + border; + p[3].y = rect->y + rect->height - border; - p[3].x = rect->x + rect->width - border - roundness; - p[3].y = rect->y + rect->height - border; + p[4].x = rect->x; + p[4].y = rect->y + rect->height; - p[4].x = rect->x + border + roundness; - p[4].y = rect->y + rect->height - border; - - p[5].x = rect->x + roundness; - p[5].y = rect->y + rect->height - roundness; - - p[6].x = rect->x + rect->width - border - roundness; - p[6].y = rect->y + rect->height - roundness; - - MwLLPolygon(handle->lowlevel, p, 7, invert ? lighter : darker); - - /* bottom right edge */ - for(i = 0; i < BORDER_SMOOTHNESS; i += 2) { - MwPoint line[2]; - double point = ((i + (M_PI * (BORDER_SMOOTHNESS / 2.))) / (BORDER_SMOOTHNESS)); - int x = (rect->x + rect->width) - (roundness + 2); - int y = (rect->y + rect->height) - (roundness + 2); - - line[0].x = x + (sin(point) * roundness); - line[0].y = y - (cos(point) * roundness); - line[1].x = x + (sin(point + 1) * roundness); - line[1].y = y - (cos(point + 1) * roundness); - MwLLLine(handle->lowlevel, line, invert ? lighter : darker); - } - } else { - p[0].x = rect->x + rect->width; - p[0].y = rect->y; - - p[1].x = rect->x + rect->width - border; - p[1].y = rect->y + border; - - p[2].x = rect->x + rect->width - border; - p[2].y = rect->y + rect->height - border; - - p[3].x = rect->x + border; - p[3].y = rect->y + rect->height - border; - - p[4].x = rect->x; - p[4].y = rect->y + rect->height; - - p[5].x = rect->x + rect->width; - p[5].y = rect->y + rect->height; - MwLLPolygon(handle->lowlevel, p, 6, invert ? lighter : darker); - } + p[5].x = rect->x + rect->width; + p[5].y = rect->y + rect->height; + MwLLPolygon(handle->lowlevel, p, 6, invert ? lighter : darker); } -static void MwDrawFrameEx_complex(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border, int diff, int same, int rounded) { +static void MwDrawFrameEx_complex(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border, int diff, int same) { int ColorDiff = get_color_diff(handle); MwLLColor darker = MwLightenColor(handle, color, -ColorDiff * 3 / 2 + diff, -ColorDiff * 3 / 2 + diff, -ColorDiff * 3 / 2 + diff); MwLLColor lighter = same ? MwLightenColor(handle, darker, 0, 0, 0) : MwLightenColor(handle, color, (ColorDiff / 2) - diff, (ColorDiff / 2) - diff, (ColorDiff / 2) - diff); MwRect r = *rect; - frame_border_complex(handle, rect, lighter, darker, invert, border, diff, same, rounded); + frame_border_complex(handle, rect, lighter, darker, invert, border, diff, same); r.x += 1; r.y += 1; r.width -= 2; r.height -= 2; - frame_border_complex(handle, &r, lighter, darker, !invert, border, diff, same, rounded); + frame_border_complex(handle, &r, lighter, darker, !invert, border, diff, same); MwLLFreeColor(lighter); MwLLFreeColor(darker); @@ -515,11 +375,11 @@ static void MwDrawFrameEx_complex(MwWidget handle, MwRect* rect, MwLLColor color rect->height -= border * 2; } -void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border, int diff, int same, int rounded) { +void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border, int diff, int same) { if(MwGetInteger(handle, MwNmodernLook)) { - MwDrawFrameEx_complex(handle, rect, color, invert, border, diff, same, rounded); + MwDrawFrameEx_complex(handle, rect, color, invert, border, diff, same); } else { - MwDrawFrameEx_simple(handle, rect, color, invert, border, diff, same, rounded); + MwDrawFrameEx_simple(handle, rect, color, invert, border, diff, same); } } diff --git a/src/widget/box.c b/src/widget/box.c index 0cc8df1f7..a87000f0e 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -86,7 +86,7 @@ static void draw(MwWidget handle) { r.height = MwGetInteger(handle, MwNheight); if(MwGetInteger(handle, MwNhasBorder)) { - MwDrawFrame(handle, &r, base, MwGetInteger(handle, MwNinverted), 0); + MwDrawFrame(handle, &r, base, MwGetInteger(handle, MwNinverted)); } MwDrawRect(handle, &r, base); diff --git a/src/widget/combobox.c b/src/widget/combobox.c index d52cc2503..22a90060f 100644 --- a/src/widget/combobox.c +++ b/src/widget/combobox.c @@ -72,7 +72,7 @@ static void draw(MwWidget handle) { r.y += r.height; r.height = MwDefaultBorderWidth(handle) * 2; - MwDrawFrame(handle, &r, base, 0, 0); + MwDrawFrame(handle, &r, base, 0); MwLLFreeColor(text); MwLLFreeColor(base); diff --git a/src/widget/entry.c b/src/widget/entry.c index 3a7aa764d..bd7dbe1b5 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -49,7 +49,7 @@ static void draw(MwWidget handle) { int attr; MwRect currc; - p.x = (r.width - (r.width / w * w)) / 2 + (MwGetInteger(handle, MwNisRounded) ? MwGetInteger(handle, MwNroundness) : 0); + p.x = (r.width - (r.width / w * w)) / 2; p.y = r.height / 2; len = (r.width - p.x * 2) / w; diff --git a/src/widget/frame.c b/src/widget/frame.c index 3c2ffe99f..117b0f8b9 100644 --- a/src/widget/frame.c +++ b/src/widget/frame.c @@ -22,7 +22,7 @@ static void draw(MwWidget handle) { fr.y = 0; fr.width = MwGetInteger(handle, MwNwidth); fr.height = MwGetInteger(handle, MwNheight); - MwDrawFrame(handle, &fr, base, inverted, 0); + MwDrawFrame(handle, &fr, base, inverted); rr.x = MwDefaultBorderWidth(handle); rr.y = MwDefaultBorderWidth(handle); diff --git a/src/widget/image.c b/src/widget/image.c index cadddb323..74ee0bfd6 100644 --- a/src/widget/image.c +++ b/src/widget/image.c @@ -20,7 +20,7 @@ static void draw(MwWidget handle) { r.width = MwGetInteger(handle, MwNwidth); r.height = MwGetInteger(handle, MwNheight); - if(MwGetInteger(handle, MwNhasBorder)) MwDrawFrame(handle, &r, base, MwGetInteger(handle, MwNinverted), 0); + if(MwGetInteger(handle, MwNhasBorder)) MwDrawFrame(handle, &r, base, MwGetInteger(handle, MwNinverted)); MwDrawRect(handle, &r, base); if(px != NULL) { diff --git a/src/widget/listbox.c b/src/widget/listbox.c index b25528fb7..9960e1d67 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -210,7 +210,7 @@ static void frame_draw(MwWidget handle) { p.x = MwDefaultBorderWidth(handle); p.y = MwDefaultBorderWidth(handle); - MwDrawFrame(handle, &r, base, 1, 0); + MwDrawFrame(handle, &r, base, 1); MwDrawRect(handle, &r, base2); r = r2; @@ -284,7 +284,7 @@ static void frame_draw(MwWidget handle) { handle->bgcolor = NULL; } - MwDrawFrame(handle, &r, base, 1, 0); + MwDrawFrame(handle, &r, base, 1); MwLLFreeColor(text2); MwLLFreeColor(text); @@ -403,7 +403,7 @@ static void draw(MwWidget handle) { r.y = 0; r.width = get_col_width(lb, i); r.height = MwDefaultBorderWidth(handle) * 2 + MwTextHeight(handle, NULL, "M"); - MwDrawFrame(handle, &r, base, 0, 0); + MwDrawFrame(handle, &r, base, 0); x += MwDefaultBorderWidth(handle); diff --git a/src/widget/menu.c b/src/widget/menu.c index 85753f9b3..0808f691d 100644 --- a/src/widget/menu.c +++ b/src/widget/menu.c @@ -100,7 +100,7 @@ static void draw(MwWidget handle) { BEGIN_MENU_LOOP; if(m->sub[i]->wsub != NULL || (in_area && handle->pressed)) { - MwDrawFrame(handle, &r, base, MwFALSE, 0); + MwDrawFrame(handle, &r, base, MwFALSE); MwDrawWidgetBack(handle, &r, base, 0, MwFALSE); } diff --git a/src/widget/progressbar.c b/src/widget/progressbar.c index 7be7bffd7..d85a8ddaf 100644 --- a/src/widget/progressbar.c +++ b/src/widget/progressbar.c @@ -23,7 +23,7 @@ static void draw(MwWidget handle) { r.width = MwGetInteger(handle, MwNwidth); r.height = MwGetInteger(handle, MwNheight); - MwDrawFrame(handle, &r, base, 1, 0); + MwDrawFrame(handle, &r, base, 1); MwDrawRect(handle, &r, base); w = MwGetInteger(handle, MwNvalue) - MwGetInteger(handle, MwNminValue); w = w / (MwGetInteger(handle, MwNmaxValue) - MwGetInteger(handle, MwNminValue)); diff --git a/src/widget/separator.c b/src/widget/separator.c index 571c5dfa9..8fcfc5b71 100644 --- a/src/widget/separator.c +++ b/src/widget/separator.c @@ -25,7 +25,7 @@ static void draw(MwWidget handle) { r.y = (r.height - 2) / 2; r.height = 2; } - MwDrawFrameEx(handle, &r, base, 1, 1, 0, 0, MwGetInteger(handle, MwNmodernLook)); + MwDrawFrameEx(handle, &r, base, 1, 1, 0, 0); MwLLFreeColor(base); } diff --git a/src/widget/submenu.c b/src/widget/submenu.c index 3b6460555..4990fd211 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -59,7 +59,7 @@ static void draw(MwWidget handle) { rc.x += MwGetInteger(handle, MwNleftPadding); - MwDrawFrameEx(handle, &rc, base, 1, 1, 0, 0, 0); + MwDrawFrameEx(handle, &rc, base, 1, 1, 0, 0); p.y += 2 + 1; } else { diff --git a/src/widget/treeview.c b/src/widget/treeview.c index 16898ef90..acc35bf69 100644 --- a/src/widget/treeview.c +++ b/src/widget/treeview.c @@ -64,7 +64,7 @@ static void recursion(MwWidget handle, MwTreeViewEntry* tree, MwTreeViewEntry** const int len = 4; MwDrawRect(handle, &r, col); - MwDrawFrame(handle, &r, base, tree->opened, 0); + MwDrawFrame(handle, &r, base, tree->opened); if(tree->opened) { l[0].x = r.x + (r.width - len) / 2; l[0].y = r.y + r.height / 2; @@ -91,7 +91,7 @@ static void recursion(MwWidget handle, MwTreeViewEntry* tree, MwTreeViewEntry** MwLLLine(handle->lowlevel, &l[0], text); } r = r2; - MwDrawFrame(handle, &r, base, tree->opened, 0); + MwDrawFrame(handle, &r, base, tree->opened); if(col != base) MwLLFreeColor(col); } else { @@ -183,7 +183,7 @@ static void frame_draw(MwWidget handle) { p.x = MwDefaultBorderWidth(handle); p.y = MwDefaultBorderWidth(handle); - MwDrawFrame(handle, &r, base, 1, 0); + MwDrawFrame(handle, &r, base, 1); MwDrawRect(handle, &r, base2); r = r2; @@ -193,7 +193,7 @@ static void frame_draw(MwWidget handle) { recursion(handle, tv->tree[i], tv->tree, base, text, base2, text2, &p, 0, LineSpace, &skip, &shared, 1, NULL); } - MwDrawFrame(handle, &r, base, 1, 0); + MwDrawFrame(handle, &r, base, 1); MwLLFreeColor(text2); MwLLFreeColor(text); diff --git a/src/widget/window.c b/src/widget/window.c index 74a96e61e..979e073c8 100644 --- a/src/widget/window.c +++ b/src/widget/window.c @@ -18,7 +18,7 @@ static void draw(MwWidget handle) { r.width = MwGetInteger(handle, MwNwidth); r.height = MwGetInteger(handle, MwNheight); - if(MwGetInteger(handle, MwNhasBorder)) MwDrawFrame(handle, &r, c, MwGetInteger(handle, MwNinverted), 0); + if(MwGetInteger(handle, MwNhasBorder)) MwDrawFrame(handle, &r, c, MwGetInteger(handle, MwNinverted)); MwDrawRect(handle, &r, c); From 1d59488927a823eabcd08b98b20b7820ab5eaafd Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 14 Apr 2026 13:45:47 -0700 Subject: [PATCH 363/836] wayland: fix several places where we don't attach buffer if not configured --- src/backend/wayland.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 148ca4420..220f3901f 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1260,10 +1260,10 @@ static void wl_shm_interface_destroy(struct _MwLLWayland* wayland, wayland_proto } static void update_buffer(MwLL self, struct _MwLLWaylandShmBuffer* buffer) { - (void)self; memcpy(buffer->buf, buffer->buf_back, buffer->buf_size); // Yes this is needed every time, it's how we fix weston. - wl_surface_attach(buffer->surface, buffer->shm_buffer, 0, 0); + if(self->wayland.configured) + wl_surface_attach(buffer->surface, buffer->shm_buffer, 0, 0); wl_surface_commit(buffer->surface); } @@ -1338,7 +1338,8 @@ static void framebuffer_setup(struct _MwLLWayland* wayland) { wayland->front_cairo = cairo_create(wayland->front_cs); memset(wayland->framebuffer.buf_back, 0, wayland->framebuffer.buf_size); - wl_surface_attach(wayland->framebuffer.surface, wayland->framebuffer.shm_buffer, 0, 0); + if(wayland->configured) + wl_surface_attach(wayland->framebuffer.surface, wayland->framebuffer.shm_buffer, 0, 0); wl_surface_commit(wayland->framebuffer.surface); hang_until_configured((MwLL)wayland); @@ -1366,7 +1367,8 @@ static void backbuffer_setup(struct _MwLLWayland* wayland) { wayland->back_cairo = cairo_create(wayland->back_cs); memset(wayland->backbuffer.buf_back, 255, wayland->backbuffer.buf_size); - wl_surface_attach(wayland->backbuffer.surface, wayland->backbuffer.shm_buffer, 0, 0); + if(wayland->configured) + wl_surface_attach(wayland->backbuffer.surface, wayland->backbuffer.shm_buffer, 0, 0); wl_surface_commit(wayland->backbuffer.surface); hang_until_configured((MwLL)wayland); update_buffer((MwLL)wayland, &wayland->backbuffer); @@ -2293,11 +2295,11 @@ static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { } handle->wayland.icon->surface = wl_compositor_create_surface(handle->wayland.compositor); + buffer_setup(handle->wayland.icon, pixmap->common.width, pixmap->common.height); + wl_surface_attach(handle->wayland.icon->surface, handle->wayland.icon->shm_buffer, 0, 0); wl_surface_commit(handle->wayland.icon->surface); - buffer_setup(handle->wayland.icon, pixmap->common.width, pixmap->common.height); - for(; i < size; i += 2) { handle->wayland.icon->buf_back[i] = pixmap->common.raw[i + 2]; handle->wayland.icon->buf_back[i + 1] = pixmap->common.raw[i + 1]; @@ -2392,6 +2394,9 @@ static void MwLLDetachImpl(MwLL handle, MwPoint* point) { } static void MwLLShowImpl(MwLL handle, int show) { + if(!handle->wayland.configured) { + return; + } /* Some guy on a mailing list said that "abusing" wl_surface_attach for this purpose is bad? This is documented behavior so please I beg of you let me know if there's a compositor that actually has a problem with this. */ if(handle->wayland.framebuffer.surface) { wl_surface_attach(handle->wayland.framebuffer.surface, show ? handle->wayland.framebuffer.shm_buffer : NULL, 0, 0); From bfc6d8e9aff636a9143ac55592fab57cb25d3cd0 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 14 Apr 2026 15:52:11 -0700 Subject: [PATCH 364/836] mac: ditch the image rep shit and try switching to a draw commands system --- include/Mw/LowLevel/Cocoa.h | 39 ++++-- src/backend/cocoa.m | 262 ++++++++++++++---------------------- 2 files changed, 124 insertions(+), 177 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 2a8c7ec7c..f553af5f5 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -10,6 +10,29 @@ #include #include +typedef struct { + enum { + COCOA_DRAW_COMMAND_POLY = 0, + COCOA_DRAW_COMMAND_LINES, + COCOA_DRAW_COMMAND_PIXMAP, + } type; + union { + struct { + MwPoint* points; + int points_count; + MwLLColor color; + } poly; + struct { + MwPoint* points; + MwLLColor color; + } lines; + struct { + MwRect rect; + MwLLPixmap pixmap; + } pixmap; + }; +} draw_command; + #ifdef __OBJC__ #import #import @@ -81,23 +104,13 @@ @end @interface MilskoCocoaView : NSView { + MwBool _child; + @public - unsigned char* buf; - NSBitmapImageRep* rep; - NSGraphicsContext* context; - MwBool valid; - NSRect givenRect; - float x; - float y; - float width; - float height; - MwBool _child; + draw_command** commands; } -- (void)initRepAndContextWithWidth:(float)w Height:(float)h; -- (NSGraphicsContext*)context; - (void)destroy; -- (NSBitmapImageRep*)getRep; - (void)setChild; @end diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index c336f7fb8..e3f899e46 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -80,106 +80,101 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { @implementation MilskoCocoaView - (id)initWithFrame:(NSRect)frame { - givenRect = frame; - x = frame.origin.x; - y = frame.origin.y; - width = frame.size.width; - height = frame.size.height; - self = [super initWithFrame:frame]; - - if(width == 0 || height == 0) { - self->rep = NULL; - self->context = NULL; - } else { - [self initRepAndContextWithWidth:width Height:height]; - } - - self->_child = MwFALSE; - + [super initWithFrame:frame]; + self->commands = NULL; return self; } - (void)setChild { self->_child = MwTRUE; } - -- (NSGraphicsContext*)context { - return self->context; -} - -- (NSBitmapImageRep*)getRep { - return self->rep; -} +- (void)destroy { + arrfree(self->commands); +}; - (void)drawRect:(NSRect)dirtyRect { NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; NSArray* subviews = [self subviews]; int i; + [super drawRect:dirtyRect]; - if(!self->rep) { - if(dirtyRect.size.width && dirtyRect.size.height) { - [self initRepAndContextWithWidth:dirtyRect.size.width - Height:dirtyRect.size.height]; - self->width = dirtyRect.size.width; - self->height = dirtyRect.size.height; - } else { - [pool release]; - return; + for(i = 0; i < arrlen(self->commands); i++) { + draw_command* cmd = self->commands[i]; + switch(cmd->type) { + case COCOA_DRAW_COMMAND_POLY: { + int i; + NSBezierPath* path = [NSBezierPath bezierPath]; + + NSColor* nscolor = + [NSColor colorWithCalibratedRed:cmd->poly.color->common.red / 255. + green:cmd->poly.color->common.green / 255. + blue:cmd->poly.color->common.blue / 255. + alpha:1.0]; + + [nscolor setFill]; + for(i = 0; i < cmd->poly.points_count; i++) { + NSPoint p = localPointFlip(NSMakePoint(cmd->poly.points[i].x, cmd->poly.points[i].y), self); + if(i == 0) { + [path moveToPoint:p]; + } else { + [path lineToPoint:p]; + } + } + + [path closePath]; + [path fill]; + + free(cmd->poly.points); + MwLLFreeColor(cmd->poly.color); + free(cmd); + + } break; + + case COCOA_DRAW_COMMAND_LINES: { + int n; + NSBezierPath* path = [NSBezierPath bezierPath]; + + NSColor* nscolor = + [NSColor colorWithCalibratedRed:cmd->lines.color->common.red / 255. + green:cmd->lines.color->common.green / 255. + blue:cmd->lines.color->common.blue / 255. + alpha:1.0]; + + [nscolor setFill]; + for(n = 0; n < 2; n++) { + NSPoint p = localPointFlip(NSMakePoint(cmd->lines.points[n].x, cmd->lines.points[n].y), self); + if(n == 0) { + [path moveToPoint:p]; + } else { + [path lineToPoint:p]; + } + } + + [path closePath]; + [path stroke]; + + free(cmd->lines.points); + MwLLFreeColor(cmd->lines.color); + free(cmd); + } break; + + case COCOA_DRAW_COMMAND_PIXMAP: { + [cmd->pixmap.pixmap->cocoa.real.image + drawInRect:localRectFlip(NSMakeRect(cmd->pixmap.rect.x, cmd->pixmap.rect.y, cmd->pixmap.rect.width, cmd->pixmap.rect.height), self) + fromRect:NSZeroRect + operation:NSCompositeSourceOver + fraction:1.0]; + MwLLDestroyPixmap(cmd->pixmap.pixmap); + free(cmd); + } break; } } - [self->rep drawInRect:NSMakeRect(dirtyRect.origin.x, dirtyRect.origin.y, [self->rep pixelsWide], [self->rep pixelsHigh])]; + arrfree(self->commands); - for(i = 0; i < [subviews count]; i++) { - MilskoCocoaView* subview = [subviews objectAtIndex:i]; - NSRect bounds = [subview bounds]; - [subview drawRect:bounds]; - } [pool release]; } -- (void)initRepAndContextWithWidth:(float)w Height:(float)h { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - self->buf = malloc(w * h * 4); - memset(self->buf, 255, w * h * 4); - - self->rep = - [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:&self->buf - pixelsWide:w - pixelsHigh:h - bitsPerSample:8 - samplesPerPixel:4 - hasAlpha:YES - isPlanar:NO - colorSpaceName:NSDeviceRGBColorSpace - bytesPerRow:w * 4 - bitsPerPixel:32]; - assert(self->rep); - [self->rep retain]; - - [self->rep setOpaque:MwFALSE]; - [self->rep setAlpha:MwTRUE]; - - self->context = - [NSGraphicsContext graphicsContextWithBitmapImageRep:self->rep]; - assert(self->context); - [self->context retain]; - [pool release]; -} - -- (void)destroy { - [self->rep release]; - [self->context release]; -} - -- (void)setFrameSize:(NSSize)newSize { - [super setFrameSize:newSize]; - [self->rep setSize:newSize]; - - self->width = newSize.width; - self->height = newSize.height; -} - - (BOOL)canBecomeKeyView { return YES; } @@ -745,81 +740,31 @@ static void MwLLEndDrawImpl(MwLL handle) { static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { - MilskoCocoa* self = handle->cocoa.real; - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - NSGraphicsContext* ctx = [self->view context]; - if(ctx) { - int i; - NSBezierPath* path = [NSBezierPath bezierPath]; - /* whatever rect we use for coordinate flipping */ - NSRect _rect = self->parent ? [self->view bounds] : [self->window frame]; + draw_command* poly = malloc(sizeof(draw_command)); + poly->type = COCOA_DRAW_COMMAND_POLY; - NSColor* nscolor = - [NSColor colorWithCalibratedRed:color->common.red / 255. - green:color->common.green / 255. - blue:color->common.blue / 255. - alpha:1.0]; + poly->poly.color = MwLLAllocColor(handle, color->common.red, color->common.blue, color->common.green); + poly->poly.points_count = points_count; - [NSGraphicsContext saveGraphicsState]; - [NSGraphicsContext setCurrentContext:ctx]; + poly->poly.points = malloc(sizeof(MwPoint) * points_count); + memcpy(poly->poly.points, points, sizeof(MwPoint) * points_count); - [nscolor setFill]; - for(i = 0; i < points_count; i++) { - NSPoint p = localPointFlip(NSMakePoint(points[i].x, points[i].y), self->view); - if(i == 0) { - [path moveToPoint:p]; - } else { - [path lineToPoint:p]; - } - } + arrpush(handle->cocoa.real->view->commands, poly); - [path closePath]; - [path fill]; - - [NSGraphicsContext restoreGraphicsState]; - - [self->view setNeedsDisplay:YES]; - } - [pool release]; + [handle->cocoa.real->view setNeedsDisplay:MwTRUE]; } static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { - MilskoCocoa* self = handle->cocoa.real; - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - NSGraphicsContext* ctx = [self->view context]; - if(ctx) { - int i; - NSBezierPath* path = [NSBezierPath bezierPath]; - /* whatever rect we use for coordinate flipping */ - NSRect _rect = self->parent ? [self->view bounds] : [self->window frame]; + draw_command* lines = malloc(sizeof(draw_command)); + lines->type = COCOA_DRAW_COMMAND_LINES; - NSColor* nscolor = - [NSColor colorWithCalibratedRed:color->common.red / 255. - green:color->common.green / 255. - blue:color->common.blue / 255. - alpha:1.0]; + lines->lines.color = MwLLAllocColor(handle, color->common.red, color->common.blue, color->common.green); - [NSGraphicsContext saveGraphicsState]; - [NSGraphicsContext setCurrentContext:ctx]; + lines->lines.points = malloc(sizeof(MwPoint) * 2); + memcpy(lines->lines.points, points, sizeof(MwPoint) * 2); - [nscolor setFill]; - for(i = 0; i < 2; i++) { - NSPoint p = localPointFlip(NSMakePoint(points[i].x, points[i].y), self->view); - if(i == 0) { - [path moveToPoint:p]; - } else { - [path lineToPoint:p]; - } - } - - [path closePath]; - [path stroke]; - - [NSGraphicsContext restoreGraphicsState]; - - [self->view setNeedsDisplay:YES]; - } - [pool release]; + arrpush(handle->cocoa.real->view->commands, lines); + [handle->cocoa.real->view setNeedsDisplay:MwTRUE]; } static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { @@ -971,26 +916,15 @@ static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { } static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { - MilskoCocoa* self = handle->cocoa.real; - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - MilskoCocoaPixmap* p = pixmap->cocoa.real; - NSGraphicsContext* ctx = [self->view context]; - if(ctx) { - [NSGraphicsContext saveGraphicsState]; - [NSGraphicsContext setCurrentContext:ctx]; + draw_command* pix = malloc(sizeof(draw_command)); + pix->type = COCOA_DRAW_COMMAND_PIXMAP; - [p->image - drawInRect:localRectFlip(NSMakeRect(rect->x, rect->y, rect->width, rect->height), self->view) - fromRect:NSZeroRect - operation:NSCompositeSourceOver - fraction:1.0]; + pix->pixmap.rect = *rect; + /* copy the pixmap into a new object that we'll free later */ + pix->pixmap.pixmap = MwLLCreatePixmap(handle, pixmap->common.raw, pixmap->common.width, pixmap->common.height); - [NSGraphicsContext restoreGraphicsState]; - - [self->view setNeedsDisplay:YES]; - } - [pool release]; - MwLLForceRender(handle); + arrpush(handle->cocoa.real->view->commands, pix); + [handle->cocoa.real->view setNeedsDisplay:MwTRUE]; } static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { From d597dc941157a90ce0db86195f68874ad060395d Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 14 Apr 2026 16:58:28 -0700 Subject: [PATCH 365/836] new drawing system now works properly-ish --- src/backend/cocoa.m | 22 ++++++++++++---------- src/core.c | 4 +++- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index e3f899e46..5e9fa8bdb 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -93,16 +93,16 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { }; - (void)drawRect:(NSRect)dirtyRect { - NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; - NSArray* subviews = [self subviews]; + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; int i; + [super drawRect:dirtyRect]; for(i = 0; i < arrlen(self->commands); i++) { draw_command* cmd = self->commands[i]; switch(cmd->type) { case COCOA_DRAW_COMMAND_POLY: { - int i; + int n; NSBezierPath* path = [NSBezierPath bezierPath]; NSColor* nscolor = @@ -112,9 +112,9 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { alpha:1.0]; [nscolor setFill]; - for(i = 0; i < cmd->poly.points_count; i++) { - NSPoint p = localPointFlip(NSMakePoint(cmd->poly.points[i].x, cmd->poly.points[i].y), self); - if(i == 0) { + for(n = 0; n < cmd->poly.points_count; n++) { + NSPoint p = localPointFlip(NSMakePoint(cmd->poly.points[n].x, cmd->poly.points[n].y), self); + if(n == 0) { [path moveToPoint:p]; } else { [path lineToPoint:p]; @@ -159,7 +159,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { } break; case COCOA_DRAW_COMMAND_PIXMAP: { - [cmd->pixmap.pixmap->cocoa.real.image + [cmd->pixmap.pixmap->cocoa.real->image drawInRect:localRectFlip(NSMakeRect(cmd->pixmap.rect.x, cmd->pixmap.rect.y, cmd->pixmap.rect.width, cmd->pixmap.rect.height), self) fromRect:NSZeroRect operation:NSCompositeSourceOver @@ -736,6 +736,7 @@ static void MwLLBeginDrawImpl(MwLL handle) { static void MwLLEndDrawImpl(MwLL handle) { (void)handle; + [handle->cocoa.real->view displayRect:[handle->cocoa.real->window frame]]; } static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, @@ -743,7 +744,7 @@ static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, draw_command* poly = malloc(sizeof(draw_command)); poly->type = COCOA_DRAW_COMMAND_POLY; - poly->poly.color = MwLLAllocColor(handle, color->common.red, color->common.blue, color->common.green); + poly->poly.color = MwLLAllocColor(handle, color->common.red, color->common.green, color->common.blue); poly->poly.points_count = points_count; poly->poly.points = malloc(sizeof(MwPoint) * points_count); @@ -752,13 +753,14 @@ static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, arrpush(handle->cocoa.real->view->commands, poly); [handle->cocoa.real->view setNeedsDisplay:MwTRUE]; + // [handle->cocoa.real->view displayRect:[handle->cocoa.real->window frame]]; } static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { draw_command* lines = malloc(sizeof(draw_command)); lines->type = COCOA_DRAW_COMMAND_LINES; - lines->lines.color = MwLLAllocColor(handle, color->common.red, color->common.blue, color->common.green); + lines->lines.color = MwLLAllocColor(handle, color->common.red, color->common.green, color->common.blue); lines->lines.points = malloc(sizeof(MwPoint) * 2); memcpy(lines->lines.points, points, sizeof(MwPoint) * 2); @@ -816,7 +818,7 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { [self->window setFrame:frame display:MwTRUE animate:MwTRUE]; } else { frame = localRectFlip(frame, self->parent->cocoa.real->view); - [self->view setBounds:frame]; + [self->view setFrame:frame]; } [self nudge]; } diff --git a/src/core.c b/src/core.c index 2b98ec5fc..51018630b 100644 --- a/src/core.c +++ b/src/core.c @@ -2,7 +2,9 @@ #include "../external/stb_ds.h" -// #define PERIODIC +#ifdef __APPLE__ +#define PERIODIC +#endif #define DRAW(handle) \ { \ From 6e5057f8c62f903efecff3a81630710d35733396 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 14 Apr 2026 18:04:00 -0700 Subject: [PATCH 366/836] cocoa: no more flickering --- src/backend/cocoa.m | 9 +++++---- src/core.c | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 5e9fa8bdb..ac694c836 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -602,7 +602,8 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { MwLL p = self->parent; self->_eventsPending = MwTRUE; - if(p) { + while(p) { + MwLLDispatch(p, draw, NULL); [p->cocoa.real->view setNeedsDisplay:true]; p = p->cocoa.real->parent; } @@ -752,7 +753,7 @@ static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, arrpush(handle->cocoa.real->view->commands, poly); - [handle->cocoa.real->view setNeedsDisplay:MwTRUE]; + // [handle->cocoa.real->view setNeedsDisplay:MwTRUE]; // [handle->cocoa.real->view displayRect:[handle->cocoa.real->window frame]]; } @@ -766,7 +767,7 @@ static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { memcpy(lines->lines.points, points, sizeof(MwPoint) * 2); arrpush(handle->cocoa.real->view->commands, lines); - [handle->cocoa.real->view setNeedsDisplay:MwTRUE]; + // [handle->cocoa.real->view setNeedsDisplay:MwTRUE]; } static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { @@ -926,7 +927,7 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { pix->pixmap.pixmap = MwLLCreatePixmap(handle, pixmap->common.raw, pixmap->common.width, pixmap->common.height); arrpush(handle->cocoa.real->view->commands, pix); - [handle->cocoa.real->view setNeedsDisplay:MwTRUE]; + // [handle->cocoa.real->view setNeedsDisplay:MwTRUE]; } static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { diff --git a/src/core.c b/src/core.c index 51018630b..cf45dddc2 100644 --- a/src/core.c +++ b/src/core.c @@ -2,7 +2,7 @@ #include "../external/stb_ds.h" -#ifdef __APPLE__ +#ifdef USE_COCOA #define PERIODIC #endif From a7d790698f75950f35634a944ede1ba29ef6d64a Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 14 Apr 2026 18:28:33 -0700 Subject: [PATCH 367/836] mac: getXYImpl should also flip whatever is given to it --- src/backend/cocoa.m | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index ac694c836..8e3ba2b66 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -793,7 +793,12 @@ static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, } else { frame = [self->window frame]; } - frame = rectFlip(frame); + + if(!self->parent) { + frame = rectFlip(frame); + } else { + frame = localRectFlip(frame, self->parent->cocoa.real->view); + } *x = frame.origin.x; *y = frame.origin.y; From a01e1a951480f34836dae2c7409ed354a0cfb738 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 14 Apr 2026 20:54:05 -0500 Subject: [PATCH 368/836] milsko.xml: remove roundness --- milsko.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/milsko.xml b/milsko.xml index 18caed3c0..9fb45a608 100644 --- a/milsko.xml +++ b/milsko.xml @@ -81,7 +81,6 @@ - From 4d7b33741f5cacabf7c85a0030e44dd31903b9f6 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 14 Apr 2026 19:38:52 -0700 Subject: [PATCH 369/836] fix mac os memleak, maybe fix stringisutf8 idk --- include/Mw/LowLevel/Cocoa.h | 12 +++--- src/backend/cocoa.m | 74 +++++++++++++++++-------------------- src/string.c | 2 +- 3 files changed, 40 insertions(+), 48 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index f553af5f5..6c5f12b43 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -18,13 +18,13 @@ typedef struct { } type; union { struct { - MwPoint* points; - int points_count; - MwLLColor color; + MwPoint* points; + int points_count; + struct _MwLLCommonColor color; } poly; struct { - MwPoint* points; - MwLLColor color; + MwPoint* points; + struct _MwLLCommonColor color; } lines; struct { MwRect rect; @@ -107,7 +107,7 @@ typedef struct { MwBool _child; @public - draw_command** commands; + draw_command* commands; } - (void)destroy; diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 8e3ba2b66..705136721 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -99,21 +99,21 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { [super drawRect:dirtyRect]; for(i = 0; i < arrlen(self->commands); i++) { - draw_command* cmd = self->commands[i]; - switch(cmd->type) { + draw_command cmd = self->commands[i]; + switch(cmd.type) { case COCOA_DRAW_COMMAND_POLY: { int n; NSBezierPath* path = [NSBezierPath bezierPath]; NSColor* nscolor = - [NSColor colorWithCalibratedRed:cmd->poly.color->common.red / 255. - green:cmd->poly.color->common.green / 255. - blue:cmd->poly.color->common.blue / 255. + [NSColor colorWithCalibratedRed:cmd.poly.color.red / 255. + green:cmd.poly.color.green / 255. + blue:cmd.poly.color.blue / 255. alpha:1.0]; [nscolor setFill]; - for(n = 0; n < cmd->poly.points_count; n++) { - NSPoint p = localPointFlip(NSMakePoint(cmd->poly.points[n].x, cmd->poly.points[n].y), self); + for(n = 0; n < cmd.poly.points_count; n++) { + NSPoint p = localPointFlip(NSMakePoint(cmd.poly.points[n].x, cmd.poly.points[n].y), self); if(n == 0) { [path moveToPoint:p]; } else { @@ -124,10 +124,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { [path closePath]; [path fill]; - free(cmd->poly.points); - MwLLFreeColor(cmd->poly.color); - free(cmd); - + free(cmd.poly.points); } break; case COCOA_DRAW_COMMAND_LINES: { @@ -135,14 +132,14 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { NSBezierPath* path = [NSBezierPath bezierPath]; NSColor* nscolor = - [NSColor colorWithCalibratedRed:cmd->lines.color->common.red / 255. - green:cmd->lines.color->common.green / 255. - blue:cmd->lines.color->common.blue / 255. + [NSColor colorWithCalibratedRed:cmd.lines.color.red / 255. + green:cmd.lines.color.green / 255. + blue:cmd.lines.color.blue / 255. alpha:1.0]; [nscolor setFill]; for(n = 0; n < 2; n++) { - NSPoint p = localPointFlip(NSMakePoint(cmd->lines.points[n].x, cmd->lines.points[n].y), self); + NSPoint p = localPointFlip(NSMakePoint(cmd.lines.points[n].x, cmd.lines.points[n].y), self); if(n == 0) { [path moveToPoint:p]; } else { @@ -153,19 +150,16 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { [path closePath]; [path stroke]; - free(cmd->lines.points); - MwLLFreeColor(cmd->lines.color); - free(cmd); + free(cmd.lines.points); } break; case COCOA_DRAW_COMMAND_PIXMAP: { - [cmd->pixmap.pixmap->cocoa.real->image - drawInRect:localRectFlip(NSMakeRect(cmd->pixmap.rect.x, cmd->pixmap.rect.y, cmd->pixmap.rect.width, cmd->pixmap.rect.height), self) + [cmd.pixmap.pixmap->cocoa.real->image + drawInRect:localRectFlip(NSMakeRect(cmd.pixmap.rect.x, cmd.pixmap.rect.y, cmd.pixmap.rect.width, cmd.pixmap.rect.height), self) fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0]; - MwLLDestroyPixmap(cmd->pixmap.pixmap); - free(cmd); + MwLLDestroyPixmap(cmd.pixmap.pixmap); } break; } } @@ -742,32 +736,28 @@ static void MwLLEndDrawImpl(MwLL handle) { static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { - draw_command* poly = malloc(sizeof(draw_command)); - poly->type = COCOA_DRAW_COMMAND_POLY; + draw_command poly; + poly.type = COCOA_DRAW_COMMAND_POLY; - poly->poly.color = MwLLAllocColor(handle, color->common.red, color->common.green, color->common.blue); - poly->poly.points_count = points_count; + poly.poly.color = color->common; + poly.poly.points_count = points_count; - poly->poly.points = malloc(sizeof(MwPoint) * points_count); - memcpy(poly->poly.points, points, sizeof(MwPoint) * points_count); + poly.poly.points = malloc(sizeof(MwPoint) * points_count); + memcpy(poly.poly.points, points, sizeof(MwPoint) * points_count); arrpush(handle->cocoa.real->view->commands, poly); - - // [handle->cocoa.real->view setNeedsDisplay:MwTRUE]; - // [handle->cocoa.real->view displayRect:[handle->cocoa.real->window frame]]; } static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { - draw_command* lines = malloc(sizeof(draw_command)); - lines->type = COCOA_DRAW_COMMAND_LINES; + draw_command lines; + lines.type = COCOA_DRAW_COMMAND_LINES; - lines->lines.color = MwLLAllocColor(handle, color->common.red, color->common.green, color->common.blue); + lines.lines.color = color->common; - lines->lines.points = malloc(sizeof(MwPoint) * 2); - memcpy(lines->lines.points, points, sizeof(MwPoint) * 2); + lines.lines.points = malloc(sizeof(MwPoint) * 2); + memcpy(lines.lines.points, points, sizeof(MwPoint) * 2); arrpush(handle->cocoa.real->view->commands, lines); - // [handle->cocoa.real->view setNeedsDisplay:MwTRUE]; } static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { @@ -918,18 +908,20 @@ static void MwLLPixmapUpdateImpl(MwLLPixmap pixmap) { } static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { + free(pixmap->common.raw); [pixmap->cocoa.real destroy]; [pixmap->cocoa.real release]; free(pixmap); } static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { - draw_command* pix = malloc(sizeof(draw_command)); - pix->type = COCOA_DRAW_COMMAND_PIXMAP; + draw_command pix; + pix.type = COCOA_DRAW_COMMAND_PIXMAP; + + pix.pixmap.rect = *rect; - pix->pixmap.rect = *rect; /* copy the pixmap into a new object that we'll free later */ - pix->pixmap.pixmap = MwLLCreatePixmap(handle, pixmap->common.raw, pixmap->common.width, pixmap->common.height); + pix.pixmap.pixmap = MwLLCreatePixmap(handle, pixmap->common.raw, pixmap->common.width, pixmap->common.height); arrpush(handle->cocoa.real->view->commands, pix); // [handle->cocoa.real->view setNeedsDisplay:MwTRUE]; diff --git a/src/string.c b/src/string.c index f48169599..943867aec 100644 --- a/src/string.c +++ b/src/string.c @@ -51,7 +51,7 @@ void MwStringPrintIntoBuffer(char* out, MwU32 size, const char* fmt, ...) { }; MWDECL MwBool MwStringIsKeyUTF8(MwU32 key) { - unsigned char bytes[sizeof(MwU32)]; + unsigned char bytes[sizeof(MwU32) * 16]; int i; memcpy(bytes, &key, sizeof(MwU32)); From 32f99b62b6931a2a6c081cddcb040eabb863dd21 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 14 Apr 2026 19:51:52 -0700 Subject: [PATCH 370/836] have MwStringIsKeyUTF8 not use ub --- src/string.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/string.c b/src/string.c index 943867aec..2a1504639 100644 --- a/src/string.c +++ b/src/string.c @@ -51,9 +51,18 @@ void MwStringPrintIntoBuffer(char* out, MwU32 size, const char* fmt, ...) { }; MWDECL MwBool MwStringIsKeyUTF8(MwU32 key) { - unsigned char bytes[sizeof(MwU32) * 16]; - int i; - memcpy(bytes, &key, sizeof(MwU32)); + /* little endian */ +#if defined(__x86_64__) || defined(_M_X64) || defined(__i386) || defined(_M_IX86) || defined(__aarch64__) || defined(_M_ARM64) + unsigned char bytes[4] = { + (key & 0x000000FF), + (key & 0x0000FF00) >> 8, + (key & 0x00FF0000) >> 16, + (key & 0xFF000000) >> 24, + }; +#else +#error Unspecified architecture! This error exists here because above it is endian-specific code. Add your architecture above. +#endif + int i; for(i = 0; i < sizeof(MwU32); i++) { if(( // ASCII From 065b0d824cf29926b74e7c91ba549176435aa506 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 14 Apr 2026 20:03:59 -0700 Subject: [PATCH 371/836] cocoa: untested vulkan code --- CMakeLists.txt | 5 +++++ pl/rules.pl | 1 + src/backend/cocoa.m | 17 +++++++++++++++++ src/widget/vulkan.c | 20 ++++++++++++++++++++ 4 files changed, 43 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 585fb4ddd..0cc795308 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,6 +70,11 @@ if(MW_TRY_VULKAN) if(HAVE_VULKAN_VULKAN_H) set(MW_BUILD_VULKAN ON) list(APPEND SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/vulkan.c") + target_compile_definitions( + Mw + PRIVATE + MW_VULKAN + ) message(STATUS "Vulkan widget has been enabled") else() message(WARNING "Vulkan widget has been disabled") diff --git a/pl/rules.pl b/pl/rules.pl index 6c23006bd..3da19289e 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -131,6 +131,7 @@ if (param_get("opengl")) { new_object("src/widget/opengl.c"); } if (param_get("vulkan")) { + add_cflags("-DMW_VULKAN"); new_object("src/widget/vulkan.c"); } diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 705136721..4cdc5b2b6 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -2,6 +2,11 @@ #include "../../external/stb_ds.h" #include "Mw/LowLevel/Cocoa.h" +#ifdef MW_VULKAN +#include +#include +#endif + #ifdef __clang__ #pragma clang push #pragma clang diagnostic ignored "-Wdeprecated-declarations" @@ -1087,5 +1092,17 @@ static int MwLLCocoaCallInitImpl(void) { return 0; } +#ifdef MW_VULKAN +VkMetalSurfaceCreateInfoEXT MwCocoaGetMetalSurfaceCreateInfo(MwWidget handle) { + VkMetalSurfaceCreateInfoEXT createInfo = { + .sType = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT, + .pNext = NULL, + .flags = 0, + .pLayer = (CAMetalLayer*)[handle->lowlevel->cocoa.real->view layer], + }; + return createInfo; +}; +#endif + #include "call.c" CALL(Cocoa); diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index 1a9ea1234..195384c61 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -26,6 +26,9 @@ #ifdef USE_WAYLAND #include #endif +#ifdef USE_COCOA +#include +#endif #ifdef HAS_VK_ENUM_STRING_HELPER #include @@ -167,6 +170,8 @@ static void destroy(MwWidget handle) { static void* vulkan_lib_load() { #ifdef _WIN32 return MwDynamicOpen("vulkan-1.dll"); +#elif defined(__APPLE__) + return MwDynamicOpen("libvulkan.dylib"); #else return MwDynamicOpen("libvulkan.so"); #endif @@ -230,6 +235,11 @@ static int vulkan_instance_setup(MwWidget handle, vulkan_t* o) { MwWaylandAlwaysRender = MwTRUE; } #endif +#ifdef USE_WAYLAND + if(handle->lowlevel->common.type == MwLLBackendCocoa) { + arrput(enabledExtensions, VK_EXT_METAL_SURFACE_EXTENSION_NAME); + } +#endif /* passing null gives us all the extensions provided by the current vulkan implementation */ VK_CMD(_vkEnumerateInstanceExtensionProperties(NULL, &extension_count, NULL)); @@ -338,6 +348,16 @@ static int vulkan_surface_setup(MwWidget handle, vulkan_t* o) { }; VK_CMD(_vkCreateWaylandSurfaceKHR(o->vkInstance, &createInfo, NULL, &o->vkSurface)); } +#endif +#ifdef USE_COCOA + if(handle->lowlevel->common.type == MwLLBackendCocoa) { + VkMetalSurfaceCreateInfoEXT MwCocoaGetMetalSurfaceCreateInfo(MwWidget handle); + VkMetalSurfaceCreateInfoEXT inf = MwCocoaGetMetalSurfaceCreateInfo(handle); + + LOAD_VK_FUNCTION(vkCreateMetalSurfaceEXT); + + VK_CMD(_vkCreateMetalSurfaceEXT(o->vkInstance, &inf, NULL, &o->vkSurface)); + } #endif return 0; } From 28f6d6ac56acfbf4a0f7ef63a0909ff634fff8ca Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 14 Apr 2026 20:08:45 -0700 Subject: [PATCH 372/836] cocoa: untested vulkan code --- src/widget/vulkan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index 195384c61..8d4aa3daa 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -235,7 +235,7 @@ static int vulkan_instance_setup(MwWidget handle, vulkan_t* o) { MwWaylandAlwaysRender = MwTRUE; } #endif -#ifdef USE_WAYLAND +#ifdef USE_COCOA if(handle->lowlevel->common.type == MwLLBackendCocoa) { arrput(enabledExtensions, VK_EXT_METAL_SURFACE_EXTENSION_NAME); } From 391f5a69245e3e1182d6110713ce151135f0209d Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 15 Apr 2026 12:23:54 +0900 Subject: [PATCH 373/836] remove endian related error --- WatMakefile | 2 +- src/string.c | 16 +++++----------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/WatMakefile b/WatMakefile index 231820788..633a259a3 100644 --- a/WatMakefile +++ b/WatMakefile @@ -1,4 +1,4 @@ -CC = wcc386 -bt=nt -q -bd +CC = wcc386 -bt=nt -q -bd -d3 LD = wlink option quiet CFLAGS = -i=include -i=external/libz/include -d_MILSKO -dUSE_GDI -dUSE_STB_TRUETYPE -dUSE_STB_IMAGE -dSTBI_NO_SIMD diff --git a/src/string.c b/src/string.c index 2a1504639..a7c23381c 100644 --- a/src/string.c +++ b/src/string.c @@ -51,18 +51,12 @@ void MwStringPrintIntoBuffer(char* out, MwU32 size, const char* fmt, ...) { }; MWDECL MwBool MwStringIsKeyUTF8(MwU32 key) { - /* little endian */ -#if defined(__x86_64__) || defined(_M_X64) || defined(__i386) || defined(_M_IX86) || defined(__aarch64__) || defined(_M_ARM64) - unsigned char bytes[4] = { - (key & 0x000000FF), - (key & 0x0000FF00) >> 8, - (key & 0x00FF0000) >> 16, - (key & 0xFF000000) >> 24, - }; -#else -#error Unspecified architecture! This error exists here because above it is endian-specific code. Add your architecture above. -#endif + unsigned char bytes[4]; int i; + bytes[0] = (key & 0x000000FF); + bytes[1] = (key & 0x0000FF00) >> 8; + bytes[2] = (key & 0x00FF0000) >> 16; + bytes[3] = (key & 0xFF000000) >> 24; for(i = 0; i < sizeof(MwU32); i++) { if(( // ASCII From 83f5f7a8200fad133462421d053a676248f870b9 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 14 Apr 2026 23:04:13 -0500 Subject: [PATCH 374/836] examples cmake doesnt need win32 --- examples/basic/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/basic/CMakeLists.txt b/examples/basic/CMakeLists.txt index acda320d2..ab58a5c1a 100644 --- a/examples/basic/CMakeLists.txt +++ b/examples/basic/CMakeLists.txt @@ -6,7 +6,7 @@ file( foreach(PATH IN LISTS EXAMPLES_BASIC_SOURCES) get_filename_component(TARGET ${PATH} NAME_WE) - add_executable(${TARGET} WIN32 MACOSX_BUNDLE ${PATH}) + add_executable(${TARGET} MACOSX_BUNDLE ${PATH}) target_link_libraries( ${TARGET} PRIVATE From aac2b410c08f6b0157cddf8542e0d113047711a3 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 14 Apr 2026 23:04:39 -0500 Subject: [PATCH 375/836] gl cmake doesnt need win32 --- examples/gldemos/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/gldemos/CMakeLists.txt b/examples/gldemos/CMakeLists.txt index 122f62c59..0a8fa78e6 100644 --- a/examples/gldemos/CMakeLists.txt +++ b/examples/gldemos/CMakeLists.txt @@ -10,7 +10,7 @@ foreach(PATH IN LISTS EXAMPLES_GL_SOURCES) if(${TARGET} STREQUAL "glutlayer") continue() endif() - add_executable(${TARGET} WIN32 MACOSX_BUNDLE ${PATH}) + add_executable(${TARGET} MACOSX_BUNDLE ${PATH}) target_link_libraries( ${TARGET} PRIVATE From 714842461cffc43a906ac2b04b8741c15cbce8b4 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 14 Apr 2026 23:04:59 -0500 Subject: [PATCH 376/836] Update examples/vkdemos/CMakeLists.txt --- examples/vkdemos/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/vkdemos/CMakeLists.txt b/examples/vkdemos/CMakeLists.txt index a315bf91b..41f832c2d 100644 --- a/examples/vkdemos/CMakeLists.txt +++ b/examples/vkdemos/CMakeLists.txt @@ -7,7 +7,7 @@ find_package(Vulkan) foreach(PATH IN LISTS EXAMPLES_VULKAN_SOURCES) get_filename_component(TARGET ${PATH} NAME_WE) - add_executable(${TARGET} WIN32 MACOSX_BUNDLE ${PATH}) + add_executable(${TARGET} MACOSX_BUNDLE ${PATH}) target_include_directories( ${TARGET} PRIVATE From fc8330f4772b2d9564bdf958b89aff7cf62a866a Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 15 Apr 2026 00:29:16 -0500 Subject: [PATCH 377/836] uninitialized --- src/backend/wayland.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 220f3901f..bbc1220e6 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -2583,7 +2583,7 @@ static int MwLLWaylandCallInitImpl(void) { * - manually checking environment variables */ #ifdef __linux__ - MwBool loadWayland; + MwBool loadWayland = MwFALSE; if(getenv("MILSKO_BACKEND")) { loadWayland |= (strcmp(getenv("MILSKO_BACKEND"), "wayland") == 0); From 4ab846ad51d701842afbddaf2af41879418056d3 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 14 Apr 2026 22:53:20 -0700 Subject: [PATCH 378/836] fix fpe in text drawing code --- src/text/ft2.c | 15 ++++++--------- src/text/stbtt.c | 15 ++++++--------- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/src/text/ft2.c b/src/text/ft2.c index 17381f98a..32e658775 100644 --- a/src/text/ft2.c +++ b/src/text/ft2.c @@ -69,16 +69,13 @@ static int ft2_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const c int ox = x + (ttf->face->glyph->metrics.horiBearingX / 64) + cx + ttf->face->glyph->bitmap_left; int oy = y + (ttf->face->height * ttf->px / ttf->face->units_per_EM) - ttf->face->glyph->bitmap_top + cy + (ttf->face->descender * ttf->px / ttf->face->units_per_EM); unsigned char* opx = &px[(oy * tw + ox) * 4]; - - if(opx[3] == 0) { - opx[0] = color->common.red; - opx[1] = color->common.green; - opx[2] = color->common.blue; - opx[3] = bmp->buffer[cy * bmp->pitch + cx]; + opx[0] = color->common.red; + opx[1] = color->common.green; + opx[2] = color->common.blue; + /* overflow check */ + if(opx[3] + bmp->buffer[cy * bmp->pitch + cx] < opx[3]) { + opx[3] = 255; } else { - opx[0] = (opx[0] / color->common.red) / 255; - opx[1] = (opx[1] / color->common.green) / 255; - opx[2] = (opx[2] / color->common.blue) / 255; opx[3] = bmp->buffer[cy * bmp->pitch + cx]; } } diff --git a/src/text/stbtt.c b/src/text/stbtt.c index 5e23f6cb5..a84190769 100644 --- a/src/text/stbtt.c +++ b/src/text/stbtt.c @@ -52,16 +52,13 @@ static int stbtt_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const int ox = x + ceil(lsb * ttf->scale) + cx; int oy = y + ceil(ttf->ascent * ttf->scale) + y0 + cy; unsigned char* opx = &px[(oy * tw + ox) * 4]; - - if(opx[3] == 0) { - opx[0] = color->common.red; - opx[1] = color->common.green; - opx[2] = color->common.blue; - opx[3] = out[cy * ow + cx]; + opx[0] = color->common.red; + opx[1] = color->common.green; + opx[2] = color->common.blue; + /* overflow check */ + if(opx[3] + out[cy * ow + cx] < opx[3]) { + opx[3] = 255; } else { - opx[0] = (opx[0] / color->common.red) / 255; - opx[1] = (opx[1] / color->common.green) / 255; - opx[2] = (opx[2] / color->common.blue) / 255; opx[3] = out[cy * ow + cx]; } } From 0c822d5bfafdff603eed4dd44960ed87066412c0 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 14 Apr 2026 23:49:04 -0700 Subject: [PATCH 379/836] some wayland fixes curtosey of valgrind --- include/Mw/LowLevel/Wayland.h | 3 +++ src/backend/wayland.c | 9 ++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 7b31bd7e3..ce1630c5b 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -123,6 +123,7 @@ typedef struct wayland_call_table { void (*cairo_pattern_set_filter)(cairo_pattern_t* pattern, cairo_filter_t filter); void (*cairo_set_antialias)(cairo_t*, cairo_antialias_t); + void (*cairo_set_operator)(cairo_t* cr, cairo_operator_t op); } wayland_call_table_t; @@ -220,6 +221,7 @@ MwInline int wayland_load_funcs() { CAIRO_FUNC(cairo_stroke); CAIRO_FUNC(cairo_set_source_surface); CAIRO_FUNC(cairo_fill); + CAIRO_FUNC(cairo_set_operator); CAIRO_FUNC(cairo_pattern_set_filter); #undef CAIRO_FUNC @@ -277,6 +279,7 @@ MwInline int wayland_load_funcs() { #define cairo_stroke wl_call_tbl.cairo_stroke #define cairo_set_source_surface wl_call_tbl.cairo_set_source_surface #define cairo_fill wl_call_tbl.cairo_fill +#define cairo_set_operator wl_call_tbl.cairo_set_operator #define cairo_pattern_set_filter wl_call_tbl.cairo_pattern_set_filter #ifndef WL_PROTOCOLS_DEFINED diff --git a/src/backend/wayland.c b/src/backend/wayland.c index bbc1220e6..8bb6f3eed 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -2082,7 +2082,9 @@ static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLL } cairo_close_path(handle->wayland.front_cairo); + cairo_set_operator(handle->wayland.front_cairo, CAIRO_OPERATOR_SOURCE); cairo_fill(handle->wayland.front_cairo); + cairo_set_operator(handle->wayland.front_cairo, CAIRO_OPERATOR_OVER); handle->wayland.events_pending = 1; } @@ -2264,6 +2266,8 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { cairo_set_source_surface(c, pixmap->wayland.cs, 0, 0); cairo_pattern_set_filter(cairo_get_source(c), CAIRO_FILTER_NEAREST); + cairo_set_operator(handle->wayland.front_cairo, CAIRO_OPERATOR_OVER); + cairo_paint(c); cairo_set_source_surface(selected_cairo, cs, rect->x, rect->y); @@ -2577,11 +2581,6 @@ static void MwLLEndStateChangeImpl(MwLL handle) { } static int MwLLWaylandCallInitImpl(void) { - /* - * Order of precedence: - * - MILSKO_BACKEND - * - manually checking environment variables - */ #ifdef __linux__ MwBool loadWayland = MwFALSE; if(getenv("MILSKO_BACKEND")) { From 5cb9b5cab93d9a215012eb7d83c92cb11193a52c Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 15 Apr 2026 00:54:47 -0700 Subject: [PATCH 380/836] have color picker check for dark theme --- examples/basic/colorpicker.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/basic/colorpicker.c b/examples/basic/colorpicker.c index 0096ae64a..4c246f763 100644 --- a/examples/basic/colorpicker.c +++ b/examples/basic/colorpicker.c @@ -28,7 +28,7 @@ void color_picker(MwWidget handle, void* user_data, void* call_data) { MwAddUserHandler(cpicker, MwNcolorChosenHandler, color_callback, NULL); - MwSetText(cpicker, MwNbackground, MwDefaultBackground); + MwSetText(cpicker, MwNbackground, MwGetInteger(cpicker, MwNdarkTheme) ? MwDefaultForeground : MwDefaultBackground); } int main() { @@ -41,7 +41,7 @@ int main() { button = MwVaCreateWidget(MwButtonClass, "button", window, 160, 180, 320, 120, MwNtext, "change window background", NULL); - MwSetText(button, MwNbackground, MwDefaultBackground); + MwSetText(button, MwNbackground, MwGetInteger(button, MwNdarkTheme) ? MwDefaultForeground : MwDefaultBackground); MwAddUserHandler(button, MwNactivateHandler, color_picker, NULL); From 6ff6b22644b03d70452f4c2675ff3ab60da9aa9b Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 15 Apr 2026 01:05:51 -0700 Subject: [PATCH 381/836] border around color picker wheel --- src/dialog/colorpicker.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/dialog/colorpicker.c b/src/dialog/colorpicker.c index 2be8df2ec..3b7d33188 100644 --- a/src/dialog/colorpicker.c +++ b/src/dialog/colorpicker.c @@ -1,7 +1,7 @@ #include #define WIN_SIZE 464 -#define PICKER_SIZE 360 +#define PICKER_SIZE 364 #define IMG_POS_X(w) ((w - PICKER_SIZE) / 2) #define IMG_POS_Y(h) ((h - PICKER_SIZE) / 2) #define SCROLL_BAR_WIDTH 16 @@ -104,11 +104,16 @@ static void color_picker_image_update(color_picker_t* picker) { int _y = y - (PICKER_SIZE / 2); double dist = sqrt(_x * _x + _y * _y); - if(dist >= 180.) { + if(dist >= 182.) { picker->color_picker_image_data[i] = 0; picker->color_picker_image_data[i + 1] = 0; picker->color_picker_image_data[i + 2] = 0; picker->color_picker_image_data[i + 3] = 0; + } else if(dist >= 180.) { + picker->color_picker_image_data[i] = dist; + picker->color_picker_image_data[i + 1] = dist; + picker->color_picker_image_data[i + 2] = dist; + picker->color_picker_image_data[i + 3] = 255; } else { MwHSV hsv_v; MwRGB color; From 5c386e766504014d942ff2762bef1a3aec274940 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 15 Apr 2026 03:08:55 -0500 Subject: [PATCH 382/836] Update examples/basic/colorpicker.c --- examples/basic/colorpicker.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/examples/basic/colorpicker.c b/examples/basic/colorpicker.c index 4c246f763..22e647cc8 100644 --- a/examples/basic/colorpicker.c +++ b/examples/basic/colorpicker.c @@ -1,4 +1,3 @@ - #include MwWidget cpicker; @@ -28,7 +27,7 @@ void color_picker(MwWidget handle, void* user_data, void* call_data) { MwAddUserHandler(cpicker, MwNcolorChosenHandler, color_callback, NULL); - MwSetText(cpicker, MwNbackground, MwGetInteger(cpicker, MwNdarkTheme) ? MwDefaultForeground : MwDefaultBackground); + MwSetText(cpicker, MwNbackground, MwGetInteger(cpicker, MwNdarkTheme) ? MwDefaultDarkBackground : MwDefaultBackground); } int main() { @@ -41,7 +40,7 @@ int main() { button = MwVaCreateWidget(MwButtonClass, "button", window, 160, 180, 320, 120, MwNtext, "change window background", NULL); - MwSetText(button, MwNbackground, MwGetInteger(button, MwNdarkTheme) ? MwDefaultForeground : MwDefaultBackground); + MwSetText(button, MwNbackground, MwGetInteger(button, MwNdarkTheme) ? MwDefaultDarkBackground : MwDefaultBackground); MwAddUserHandler(button, MwNactivateHandler, color_picker, NULL); From b641a03bae430feb77c180777107db6fcd12ed0f Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 15 Apr 2026 10:58:46 -0700 Subject: [PATCH 383/836] clipboard refactoring --- examples/basic/clipboard.c | 33 +++++++++---- include/Mw/Core.h | 5 +- include/Mw/LowLevel.h | 4 +- include/Mw/LowLevel/Wayland.h | 5 +- include/Mw/TypeDefs.h | 8 +++ src/backend/cocoa.m | 6 ++- src/backend/gdi.c | 6 ++- src/backend/wayland.c | 92 ++++++++++++++++++----------------- src/backend/x11.c | 4 +- src/core.c | 4 +- src/lowlevel.c | 4 +- src/widget/entry.c | 18 ++++++- 12 files changed, 116 insertions(+), 73 deletions(-) diff --git a/examples/basic/clipboard.c b/examples/basic/clipboard.c index e6a75023f..38084a184 100644 --- a/examples/basic/clipboard.c +++ b/examples/basic/clipboard.c @@ -1,6 +1,6 @@ #include -MwWidget window, instructions, text; +MwWidget window, instructions, text1, text2, cur_text; static void resize(MwWidget handle, void* user_data, void* call_data) { unsigned int w, h; @@ -17,9 +17,14 @@ static void resize(MwWidget handle, void* user_data, void* call_data) { MwNheight, h - 125 - 50 * 3, NULL); - MwVaApply(text, - MwNy, 200, - MwNwidth, w - 50 * 2, + MwVaApply(text1, + MwNy, 150, + MwNwidth, w - 25 * 2, + MwNheight, h - 125 - 50 * 3, + NULL); + MwVaApply(text2, + MwNy, 250, + MwNwidth, w - 25 * 2, MwNheight, h - 125 - 50 * 3, NULL); } @@ -30,14 +35,17 @@ static void clipboard(MwWidget handle, void* user_data, void* call_data) { (void)user_data; if(clipboard != NULL) { - MwVaApply(text, MwNtext, clipboard, NULL); - MwForceRender(text); + MwVaApply(cur_text, MwNtext, clipboard, NULL); + MwForceRender(cur_text); } - MwForceRender(window); } static void tick(MwWidget handle, void* user_data, void* call_data) { - MwGetClipboard(handle); + cur_text = text1; + MwGetClipboard(handle, MwClipboardMain); + cur_text = text2; + MwGetClipboard(handle, MwClipboardPrimary); + MwForceRender(window); } int main() { @@ -49,14 +57,19 @@ int main() { instructions = MwVaCreateWidget(MwLabelClass, "button", window, 50, 50, 300, 125, MwNtext, "clipboard contents will show up below.", NULL); - text = MwVaCreateWidget(MwLabelClass, "label", window, 50, 200, 300, 125, + text1 = MwVaCreateWidget(MwLabelClass, "label", window, 25, 150, 300, 75, MwNtext, "", NULL); + text2 = MwVaCreateWidget(MwLabelClass, "label2", window, 25, 250, 300, 75, + MwNtext, "", + NULL); + + cur_text = text1; MwAddUserHandler(window, MwNresizeHandler, resize, NULL); MwAddUserHandler(window, MwNclipboardHandler, clipboard, NULL); MwAddUserHandler(instructions, MwNclipboardHandler, clipboard, NULL); - MwAddUserHandler(text, MwNclipboardHandler, clipboard, NULL); + MwAddUserHandler(cur_text, MwNclipboardHandler, clipboard, NULL); MwAddUserHandler(window, MwNtickHandler, tick, NULL); resize(window, NULL, NULL); diff --git a/include/Mw/Core.h b/include/Mw/Core.h index 4d3e4b99e..ad4cd19de 100644 --- a/include/Mw/Core.h +++ b/include/Mw/Core.h @@ -362,10 +362,11 @@ MWDECL void MwGetScreenSize(MwWidget handle, MwRect* rect); MWDECL int MwGetCoordinateType(MwWidget handle); /*! - * @brief Queue to get clipboard content + * @brief Queue to get clipboard content. * @param handle Widget + * @param clipboard_type The Clipboard Type to get. See MwClipboardType. This is ignored on backends that aren't X11/Wayland, so if you're unsure, just use MwClipboardMain */ -MWDECL void MwGetClipboard(MwWidget handle); +MWDECL void MwGetClipboard(MwWidget handle, int clipboard_type); #ifdef __cplusplus } diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index d5a0b1b5b..abe81b669 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -234,8 +234,8 @@ MWDECL void (*MwLLEndStateChange)(MwLL handle); MWDECL void (*MwLLFocus)(MwLL handle); MWDECL void (*MwLLGrabPointer)(MwLL handle, int toggle); -MWDECL void (*MwLLSetClipboard)(MwLL handle, const char* text); -MWDECL void (*MwLLGetClipboard)(MwLL handle); +MWDECL void (*MwLLSetClipboard)(MwLL handle, const char* text, int clipboard_type); +MWDECL void (*MwLLGetClipboard)(MwLL handle, int clipboard_type); MWDECL void (*MwLLGetCursorCoord)(MwLL handle, MwPoint* point); MWDECL void (*MwLLGetScreenSize)(MwLL handle, MwRect* rect); diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index ce1630c5b..a94d1c812 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -439,7 +439,7 @@ struct _MwLLWayland { /* clipboard related stuff. * Note that unlike most interfaces, we don't keep zwp_primary_selection stuff in a wayland_protocol_t because we use wl_data_device as a fallback and want to have it share memory space.*/ - union { + struct { struct wl_data_device_manager* wl; struct zwp_primary_selection_device_manager_v1* zwp; } clipboard_manager; @@ -451,7 +451,8 @@ struct _MwLLWayland { MwBool supports_zwp; uint32_t clipboard_serial; - wl_clipboard_device_context_t** clipboard_devices; + wl_clipboard_device_context_t** clipboard_devices_wl; + wl_clipboard_device_context_t** clipboard_devices_zwp; struct wl_pointer* pointer; MwU32 pointer_serial; diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index 62380f008..bd0af3d78 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -239,4 +239,12 @@ enum MwCoordinateType { MwCoordinatesLocal, }; +/* The clipboard type that MwGetClipboard should return */ +enum MwClipboardType { + /* the clipboard that is present on every platform that supports it */ + MwClipboardMain = 0, + /* the "primary" clipboard that Wayland stores to emulate X11's behavior. */ + MwClipboardPrimary, +}; + #endif diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 4cdc5b2b6..240e5b87e 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1042,13 +1042,15 @@ static void MwLLGrabPointerImpl(MwLL handle, int toggle) { handle->cocoa.real->pointerLocked = toggle; } -static void MwLLSetClipboardImpl(MwLL handle, const char* text) { +static void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_type) { (void)handle; (void)text; + (void)clipboard_type; } -static void MwLLGetClipboardImpl(MwLL handle) { +static void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) { (void)handle; + (void)clipboard_type; } static void MwLLMakeToolWindowImpl(MwLL handle) { diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 5d89419d0..2941e5cab 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -735,8 +735,9 @@ static void MwLLGrabPointerImpl(MwLL handle, int toggle) { } } -static void MwLLSetClipboardImpl(MwLL handle, const char* text) { +static void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_type) { HGLOBAL hg; + (void)clipboard_type; if(OpenClipboard(handle->gdi.hWnd) != 0) { char* lock; @@ -753,7 +754,8 @@ static void MwLLSetClipboardImpl(MwLL handle, const char* text) { } } -static void MwLLGetClipboardImpl(MwLL handle) { +static void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) { + (void)clipboard_type; handle->gdi.get_clipboard = 1; /* nishi: we do this to make clipboard api work similar to other backends */ } diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 8bb6f3eed..7f6247fb6 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -266,7 +266,7 @@ struct zwp_primary_selection_device_v1_listener zwp_primary_selection_device_v1_ .selection = zwp_primary_selection_device_v1_selection, }; -static void wl_clipboard_read(wl_clipboard_device_context_t* ctx) { +static void wl_clipboard_read(wl_clipboard_device_context_t* ctx, int clipboard_type) { int fds[2]; fd_set set; char* buf = NULL; @@ -282,7 +282,7 @@ static void wl_clipboard_read(wl_clipboard_device_context_t* ctx) { timeout.tv_sec = 0; timeout.tv_usec = 100; - if(ctx->ll->wayland.supports_zwp) { + if(clipboard_type == MwClipboardPrimary) { zwp_primary_selection_offer_v1_receive(ctx->offer.zwp, "text/plain", fds[1]); } else if(ctx->offer.wl) { wl_data_offer_receive(ctx->offer.wl, "text/plain", fds[1]); @@ -427,7 +427,7 @@ static wayland_protocol_t* wl_data_device_manager_setup(MwU32 name, struct _MwLL static void wl_data_device_manager_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { (void)data; - if(wayland->clipboard_manager.wl != NULL && !wayland->supports_zwp) { + if(wayland->clipboard_manager.wl != NULL) { wl_data_device_manager_destroy(wayland->clipboard_manager.wl); wl_data_source_destroy(wayland->clipboard_source.wl); wayland->clipboard_manager.wl = NULL; @@ -436,10 +436,6 @@ static void wl_data_device_manager_interface_destroy(struct _MwLLWayland* waylan /* zwp_primary_selection_device_manager_v1 setup function */ static wayland_protocol_t* zwp_primary_selection_device_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { - if(wayland->clipboard_manager.wl != NULL) { - wl_data_device_manager_interface_destroy(wayland, NULL); - } - wayland->clipboard_manager.zwp = wl_registry_bind(wayland->registry, name, &zwp_primary_selection_device_manager_v1_interface, 1); wayland->clipboard_source.zwp = zwp_primary_selection_device_manager_v1_create_source(wayland->clipboard_manager.zwp); @@ -621,10 +617,6 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri break; case BTN_MIDDLE: p.button = MwLLMouseMiddle; - for(i = 0; i < arrlen(self->wayland.clipboard_devices); i++) { - wl_clipboard_read( - self->wayland.clipboard_devices[i]); - } break; case BTN_RIGHT: p.button = MwLLMouseRight; @@ -840,14 +832,6 @@ static void keyboard_key(void* data, } if((self->wayland.mod_state & 4) == 4) { - /* clipboard paste */ - if(key == 'V') { - int i; - for(i = 0; i < arrlen(self->wayland.clipboard_devices); i++) { - wl_clipboard_read( - self->wayland.clipboard_devices[i]); - } - } key |= MwLLControlMask; } if((self->wayland.mod_state & 8) == 8) { @@ -913,8 +897,9 @@ wl_seat_name(void* data, struct wl_seat* wl_seat, const char* name) { /* `wl_seat.capabilities` callback */ static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat, MwU32 capabilities) { - MwLL self = data; - wl_clipboard_device_context_t* device_ctx = malloc(sizeof(wl_clipboard_device_context_t)); + MwLL self = data; + wl_clipboard_device_context_t* device_ctx_zwp = NULL; + wl_clipboard_device_context_t* device_ctx_wl = malloc(sizeof(wl_clipboard_device_context_t)); WAYLAND_EVENT_OP_START(self); @@ -930,21 +915,23 @@ static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat, if(self->wayland.clipboard_manager.wl != NULL) { if(self->wayland.supports_zwp) { - device_ctx->device.zwp = zwp_primary_selection_device_manager_v1_get_device(self->wayland.clipboard_manager.zwp, wl_seat); - } else { - device_ctx->device.wl = wl_data_device_manager_get_data_device(self->wayland.clipboard_manager.wl, wl_seat); + device_ctx_zwp = malloc(sizeof(wl_clipboard_device_context_t)); + device_ctx_zwp->device.zwp = zwp_primary_selection_device_manager_v1_get_device(self->wayland.clipboard_manager.zwp, wl_seat); + device_ctx_zwp->ll = self; + device_ctx_zwp->seat = wl_seat; + device_ctx_zwp->capabilities = capabilities; } - device_ctx->ll = self; - device_ctx->seat = wl_seat; - device_ctx->capabilities = capabilities; + device_ctx_wl->device.wl = wl_data_device_manager_get_data_device(self->wayland.clipboard_manager.wl, wl_seat); + device_ctx_wl->ll = self; + device_ctx_wl->seat = wl_seat; + device_ctx_wl->capabilities = capabilities; if(self->wayland.supports_zwp) { - zwp_primary_selection_device_v1_add_listener(device_ctx->device.zwp, &zwp_primary_selection_device_v1_listener, device_ctx); - } else { - wl_data_device_add_listener(device_ctx->device.wl, &wl_data_device_listener, device_ctx); + zwp_primary_selection_device_v1_add_listener(device_ctx_zwp->device.zwp, &zwp_primary_selection_device_v1_listener, device_ctx_zwp); + arrpush(self->wayland.clipboard_devices_zwp, device_ctx_zwp); } - - arrpush(self->wayland.clipboard_devices, device_ctx); + wl_data_device_add_listener(device_ctx_wl->device.wl, &wl_data_device_listener, device_ctx_wl); + arrpush(self->wayland.clipboard_devices_wl, device_ctx_wl); } WAYLAND_EVENT_OP_END(self); @@ -2471,33 +2458,48 @@ static void MwLLGrabPointerImpl(MwLL handle, int toggle) { } } -static void MwLLSetClipboardImpl(MwLL handle, const char* text) { +static void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_type) { + int i; + if(handle->wayland.clipboard_buffer != NULL) { free(handle->wayland.clipboard_buffer); } handle->wayland.clipboard_buffer = malloc(strlen(text)); strcpy(handle->wayland.clipboard_buffer, text); - if(handle->wayland.supports_zwp) { - int i; - for(i = 0; i < arrlen(handle->wayland.clipboard_devices); i++) { - wl_clipboard_device_context_t* device = handle->wayland.clipboard_devices[i]; - zwp_primary_selection_device_v1_set_selection(device->device.zwp, handle->wayland.clipboard_source.zwp, handle->wayland.keyboard_serial); + if(clipboard_type == MwClipboardPrimary) { + if(handle->wayland.supports_zwp) { + for(i = 0; i < arrlen(handle->wayland.clipboard_devices_zwp); i++) { + wl_clipboard_device_context_t* device = handle->wayland.clipboard_devices_zwp[i]; + zwp_primary_selection_device_v1_set_selection(device->device.zwp, handle->wayland.clipboard_source.zwp, handle->wayland.keyboard_serial); + } + } else { + printf("[WARNING] Primary clipboard requested for MwLLSetClipboard, but this Wayland compositor doesn't support it.\n"); } } else { - int i; - for(i = 0; i < arrlen(handle->wayland.clipboard_devices); i++) { - wl_clipboard_device_context_t* device = handle->wayland.clipboard_devices[i]; + for(i = 0; i < arrlen(handle->wayland.clipboard_devices_wl); i++) { + wl_clipboard_device_context_t* device = handle->wayland.clipboard_devices_wl[i]; wl_data_device_set_selection(device->device.wl, handle->wayland.clipboard_source.wl, handle->wayland.keyboard_serial); } } } -static void MwLLGetClipboardImpl(MwLL handle) { +static void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) { int i; - for(i = 0; i < arrlen(handle->wayland.clipboard_devices); i++) { - wl_clipboard_read( - handle->wayland.clipboard_devices[i]); + if(clipboard_type == MwClipboardPrimary) { + if(handle->wayland.supports_zwp) { + for(i = 0; i < arrlen(handle->wayland.clipboard_devices_zwp); i++) { + wl_clipboard_read( + handle->wayland.clipboard_devices_zwp[i], clipboard_type); + } + } else { + printf("[WARNING] Primary clipboard requested for MwLLSetClipboard, but this Wayland compositor doesn't support it.\n"); + } + } else { + for(i = 0; i < arrlen(handle->wayland.clipboard_devices_wl); i++) { + wl_clipboard_read( + handle->wayland.clipboard_devices_wl[i], clipboard_type); + } } return; } diff --git a/src/backend/x11.c b/src/backend/x11.c index ad97d6885..4393317c4 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -1220,14 +1220,14 @@ static void MwLLGrabPointerImpl(MwLL handle, int toggle) { } } -static void MwLLSetClipboardImpl(MwLL handle, const char* text) { +static void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_type) { /* TODO */ (void)handle; (void)text; } -static void MwLLGetClipboardImpl(MwLL handle) { +static void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) { if(handle->x11.clipboard_pending) return; XConvertSelection(handle->x11.display, handle->x11.clipboard, handle->x11.utf8_string, handle->x11.selection, handle->x11.window, CurrentTime); diff --git a/src/core.c b/src/core.c index cf45dddc2..de2774d85 100644 --- a/src/core.c +++ b/src/core.c @@ -958,6 +958,6 @@ int MwGetCoordinateType(MwWidget handle) { } } -void MwGetClipboard(MwWidget handle) { - MwLLGetClipboard(handle->lowlevel); +void MwGetClipboard(MwWidget handle, int clipboard_type) { + MwLLGetClipboard(handle->lowlevel, clipboard_type); } diff --git a/src/lowlevel.c b/src/lowlevel.c index 597a23a82..534ecd28d 100644 --- a/src/lowlevel.c +++ b/src/lowlevel.c @@ -45,8 +45,8 @@ void (*MwLLEndStateChange)(MwLL handle) = NULL; void (*MwLLFocus)(MwLL handle) = NULL; void (*MwLLGrabPointer)(MwLL handle, int toggle) = NULL; -void (*MwLLSetClipboard)(MwLL handle, const char* text) = NULL; -void (*MwLLGetClipboard)(MwLL handle) = NULL; +void (*MwLLSetClipboard)(MwLL handle, const char* text, int clipboard_type) = NULL; +void (*MwLLGetClipboard)(MwLL, int clipboard_type) = NULL; void (*MwLLGetCursorCoord)(MwLL handle, MwPoint* point) = NULL; void (*MwLLGetScreenSize)(MwLL handle, MwRect* rect) = NULL; diff --git a/src/widget/entry.c b/src/widget/entry.c index bd7dbe1b5..a8d094130 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -113,7 +113,7 @@ static void key(MwWidget handle, int code) { } else if(code == MwLLKeyEnter) { MwDispatchUserHandler(handle, MwNactivateHandler, NULL); } else if(code == (MwLLControlMask | 'v')) { - MwLLGetClipboard(handle->lowlevel); + MwLLGetClipboard(handle->lowlevel, MwClipboardMain); } else if(!(code & MwLLKeyMask)) { int incr = 0; out = malloc(strlen(str) + 5 + 1); @@ -133,6 +133,20 @@ static void key(MwWidget handle, int code) { MwForceRender(handle); } +#if defined(USE_X11) || defined(USE_WAYLAND) +static void mouse_up(MwWidget handle, void* ptr) { + if(handle->lowlevel->common.type == MwLLBackendWayland || handle->lowlevel->common.type == MwLLBackendX11) { + MwLLMouse* mouse = ptr; + if(mouse->button == MwLLMouseMiddle) { + MwLLGetClipboard(handle->lowlevel, MwClipboardPrimary); + } + } + MwForceRender2(handle, NULL); +} +#else +#define mouse_up MwForceRender2 +#endif + static void prop_change(MwWidget handle, const char* prop) { if(strcmp(prop, MwNtext) == 0 || strcmp(prop, MwNhideInput) == 0) MwForceRender(handle); @@ -179,7 +193,7 @@ MwClassRec MwEntryClassRec = { NULL, /* parent_resize */ prop_change, /* prop_change */ NULL, /* mouse_move */ - MwForceRender2, /* mouse_up */ + mouse_up, /* mouse_up */ MwForceRender2, /* mouse_down */ key, /* key */ NULL, /* execute */ From e77eb5e08a48d6df3d9d4066e245d29baaa9f4fd Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 15 Apr 2026 11:14:13 -0700 Subject: [PATCH 384/836] add clipboard stuff to milsko.xml --- milsko.xml | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/milsko.xml b/milsko.xml index 9fb45a608..70503a1d8 100644 --- a/milsko.xml +++ b/milsko.xml @@ -1,4 +1,4 @@ - + + @@ -146,6 +149,10 @@ + + 0 + + 0x0fffffff @@ -399,6 +406,19 @@ + + + + + + + + + + + + +
From f7eb9840def45894a416521cb5f0b555dad29ca6 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 15 Apr 2026 11:19:10 -0700 Subject: [PATCH 385/836] milsko.xml: MwClipboardType should be marked as an enum for MwGetClipboard --- milsko.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/milsko.xml b/milsko.xml index 70503a1d8..d42f7e961 100644 --- a/milsko.xml +++ b/milsko.xml @@ -409,7 +409,7 @@ - + From a3bbcf30b2b94c88a3b59f86260a59cee3d6715d Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 15 Apr 2026 12:25:51 -0700 Subject: [PATCH 386/836] wayland: dark theme detection --- include/Mw/LowLevel/Wayland.h | 53 ++++++++++++++++- pl/rules.pl | 2 + src/backend/wayland.c | 105 ++++++++++++++++++++++++++++++++++ 3 files changed, 158 insertions(+), 2 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index ce1630c5b..9377bc837 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -14,6 +14,7 @@ #include #include #include +#include MWDECL int MwLLWaylandCallInit(void); @@ -35,8 +36,7 @@ typedef struct wayland_call_table { void* lib; void* xkb_lib; void* cairo_lib; -#if WAYLAND_LOAD_OPENGL -#endif + void* dbus_lib; int (*wl_display_dispatch_pending)(struct wl_display* display); void (*wl_display_disconnect)(struct wl_display* display); @@ -125,6 +125,21 @@ typedef struct wayland_call_table { void (*cairo_set_antialias)(cairo_t*, cairo_antialias_t); void (*cairo_set_operator)(cairo_t* cr, cairo_operator_t op); + void (*dbus_error_init)(DBusError* error); + DBusConnection* (*dbus_bus_get)(DBusBusType type, DBusError* error); + dbus_bool_t (*dbus_error_is_set)(const DBusError* error); + void (*dbus_error_free)(DBusError* error); + DBusMessage* (*dbus_message_new_method_call)(const char* bus_name, const char* path, const char* iface, const char* method); + void (*dbus_message_iter_init_append)(DBusMessage* message, DBusMessageIter* iter); + dbus_bool_t (*dbus_message_iter_append_basic)(DBusMessageIter* iter, int type, const void* value); + DBusMessage* (*dbus_connection_send_with_reply_and_block)(DBusConnection* connection, DBusMessage* message, int timeout_milliseconds, DBusError* error); + void (*dbus_message_unref)(DBusMessage* message); + dbus_bool_t (*dbus_message_iter_init)(DBusMessage* message, DBusMessageIter* iter); + int (*dbus_message_iter_get_arg_type)(DBusMessageIter* iter); + void (*dbus_message_iter_recurse)(DBusMessageIter* iter, DBusMessageIter* sub); + void (*dbus_connection_unref)(DBusConnection* connection); + void (*dbus_message_iter_get_basic)(DBusMessageIter* iter, void* value); + } wayland_call_table_t; extern wayland_call_table_t wl_call_tbl; @@ -225,6 +240,34 @@ MwInline int wayland_load_funcs() { CAIRO_FUNC(cairo_pattern_set_filter); #undef CAIRO_FUNC + wl_call_tbl.dbus_lib = MwDynamicOpen("libdbus-1.so"); + if(!wl_call_tbl.dbus_lib) { + fprintf(stderr, "[WARNING] Will not be able to detect dark theme: dbus library (libdbus-1.so) not found.\n"); + return 0; + } + +#define DBUS_FUNC(x) \ + wl_call_tbl.x = MwDynamicSymbol(wl_call_tbl.dbus_lib, #x); \ + if(!x) { \ + fprintf(stderr, "[WARNING] Will not be able to detect dark theme: dbus function %s (libdbus-1.so) not found.\n", #x); \ + return 0; \ + } + + DBUS_FUNC(dbus_error_init); + DBUS_FUNC(dbus_bus_get); + DBUS_FUNC(dbus_error_is_set); + DBUS_FUNC(dbus_error_free); + DBUS_FUNC(dbus_message_new_method_call); + DBUS_FUNC(dbus_message_iter_init_append); + DBUS_FUNC(dbus_message_iter_append_basic); + DBUS_FUNC(dbus_connection_send_with_reply_and_block); + DBUS_FUNC(dbus_message_unref); + DBUS_FUNC(dbus_message_iter_init); + DBUS_FUNC(dbus_message_iter_get_arg_type); + DBUS_FUNC(dbus_message_iter_recurse); + DBUS_FUNC(dbus_connection_unref); + DBUS_FUNC(dbus_message_iter_get_basic); + return 0; } @@ -436,6 +479,12 @@ struct _MwLLWayland { struct zwp_locked_pointer_v1* locked_pointer; MwBool pointer_constrained; + DBusConnection* dbus_conn; + DBusError dbus_err; + DBusMessage* dbus_msg; + DBusMessage* dbus_reply; + DBusMessageIter dbus_args, dbus_variant, dbus_inner_variant; + /* clipboard related stuff. * Note that unlike most interfaces, we don't keep zwp_primary_selection stuff in a wayland_protocol_t because we use wl_data_device as a fallback and want to have it share memory space.*/ diff --git a/pl/rules.pl b/pl/rules.pl index 3da19289e..d6f72fb6e 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -49,6 +49,8 @@ if (grep(/^wayland$/, @backends)) { scan_wayland_protocol("unstable", "pointer-constraints", "-unstable-v1"); scan_wayland_protocol("unstable", "relative-pointer", "-unstable-v1"); + add_cflags("-I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include"); + $gl_libs = "-lGL -lGLU"; } diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 8bb6f3eed..e1e8ee4d0 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1829,6 +1829,99 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh MwLLEndDraw(r); } } + +static void dark_theme_detection_setup(MwLL handle) { + + if(!wl_call_tbl.dbus_lib) { + return; + } + + wl_call_tbl.dbus_error_init(&handle->wayland.dbus_err); + + handle->wayland.dbus_conn = wl_call_tbl.dbus_bus_get(0 /* DBUS_BUS_SESSION */, &handle->wayland.dbus_err); + if(wl_call_tbl.dbus_error_is_set(&handle->wayland.dbus_err)) { + fprintf(stderr, "[WARNING] Could not detect dark theme: Connection error: %s\n", handle->wayland.dbus_err.message); + wl_call_tbl.dbus_error_free(&handle->wayland.dbus_err); + return; + } + if(!handle->wayland.dbus_conn) { + fprintf(stderr, "[WARNING] Could not detect dark theme: Failed to connect to session bus\n"); + return; + } +} + +static void detect_dark_theme(MwLL handle) { + const char* namespace = "org.freedesktop.appearance"; + const char* key = "color-scheme"; /* 0=no preference, 1=dark, 2=light */ + MwU32 value = 0; + int translated_value = 0; + + if(!handle->wayland.dbus_conn) { + return; + } + + handle->wayland.dbus_msg = wl_call_tbl.dbus_message_new_method_call( + "org.freedesktop.portal.Desktop", + "/org/freedesktop/portal/desktop", + "org.freedesktop.portal.Settings", + "Read"); + if(!handle->wayland.dbus_msg) { + fprintf(stderr, "[WARNING] Could not detect dark theme: Failed to create message\n"); + return; + } + + wl_call_tbl.dbus_message_iter_init_append(handle->wayland.dbus_msg, &handle->wayland.dbus_args); + wl_call_tbl.dbus_message_iter_append_basic(&handle->wayland.dbus_args, 's', &namespace); + wl_call_tbl.dbus_message_iter_append_basic(&handle->wayland.dbus_args, 's', &key); + + handle->wayland.dbus_reply = wl_call_tbl.dbus_connection_send_with_reply_and_block(handle->wayland.dbus_conn, handle->wayland.dbus_msg, 100, &handle->wayland.dbus_err); + wl_call_tbl.dbus_message_unref(handle->wayland.dbus_msg); + + if(wl_call_tbl.dbus_error_is_set(&handle->wayland.dbus_err)) { + fprintf(stderr, "[WARNING] Could not detect dark theme: Send error: %s\n", handle->wayland.dbus_err.message); + wl_call_tbl.dbus_error_free(&handle->wayland.dbus_err); + return; + } + if(!handle->wayland.dbus_reply) { + fprintf(stderr, "[WARNING] Could not detect dark theme: No reply received\n"); + return; + } + + if(!wl_call_tbl.dbus_message_iter_init(handle->wayland.dbus_reply, &handle->wayland.dbus_args)) { + fprintf(stderr, "[WARNING] Could not detect dark theme: Reply has no arguments\n"); + wl_call_tbl.dbus_message_unref(handle->wayland.dbus_reply); + return; + } + + if(wl_call_tbl.dbus_message_iter_get_arg_type(&handle->wayland.dbus_args) != 'v') { + fprintf(stderr, "[WARNING] Could not detect dark theme: Expected outer variant\n"); + wl_call_tbl.dbus_message_unref(handle->wayland.dbus_reply); + return; + } + wl_call_tbl.dbus_message_iter_recurse(&handle->wayland.dbus_args, &handle->wayland.dbus_variant); + + /* Some portals wrap the value in a second variant */ + if(wl_call_tbl.dbus_message_iter_get_arg_type(&handle->wayland.dbus_variant) == 'v') { + wl_call_tbl.dbus_message_iter_recurse(&handle->wayland.dbus_variant, &handle->wayland.dbus_inner_variant); + wl_call_tbl.dbus_message_iter_get_basic(&handle->wayland.dbus_inner_variant, &value); + } else { + wl_call_tbl.dbus_message_iter_get_basic(&handle->wayland.dbus_variant, &value); + } + + translated_value = (value == 1) ? 1 : 0; + + MwLLDispatch(handle, dark_theme, &translated_value); +} + +static void dark_theme_detection_destroy(MwLL handle) { + if(!wl_call_tbl.dbus_lib) { + return; + } + + wl_call_tbl.dbus_message_unref(handle->wayland.dbus_reply); + wl_call_tbl.dbus_connection_unref(handle->wayland.dbus_conn); +} + static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLL r; r = malloc(sizeof(*r)); @@ -1837,6 +1930,10 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { widget_setup(r, parent, x, y, width, height, MWLL_WAYLAND_UNKNOWN); + if(!parent) { + dark_theme_detection_setup(r); + } + return r; } @@ -1856,6 +1953,10 @@ static void MwLLDestroyImpl(MwLL handle) { MwLLDestroyCommon(handle); + if(!handle->wayland.dbus_conn) { + dark_theme_detection_destroy(handle); + } + event_loop(handle); /* sleep long enough that any active attempts to wait for the mutex will have given up and we can safely unlock/destroy it */ @@ -2144,6 +2245,10 @@ static int MwLLPendingImpl(MwLL handle) { }; int pending = 0; + if(handle->wayland.dbus_conn) { + detect_dark_theme(handle); + } + if(!handle->wayland.did_initial_resize) { recursive_dispatch_resize(handle); handle->wayland.did_initial_resize = 1; From d05e31b154baea11d14f76c99deb00b682e56f8f Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 15 Apr 2026 13:00:59 -0700 Subject: [PATCH 387/836] wayland: don't poll for dark theme, that doesn't work --- include/Mw/LowLevel/Wayland.h | 2 ++ src/backend/wayland.c | 49 +++++++++++++++++++++-------------- 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 9377bc837..d4ebdef93 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -479,6 +479,8 @@ struct _MwLLWayland { struct zwp_locked_pointer_v1* locked_pointer; MwBool pointer_constrained; + MwBool dark_theme_detection; + time_t dbus_timer; DBusConnection* dbus_conn; DBusError dbus_err; DBusMessage* dbus_msg; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index e1e8ee4d0..68207b871 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1831,11 +1831,17 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh } static void dark_theme_detection_setup(MwLL handle) { + const char* namespace = "org.freedesktop.appearance"; + const char* key = "color-scheme"; /* 0=no preference, 1=dark, 2=light */ + MwU32 value = 0; + int translated_value = 0; if(!wl_call_tbl.dbus_lib) { return; } + time(&handle->wayland.dbus_timer); + wl_call_tbl.dbus_error_init(&handle->wayland.dbus_err); handle->wayland.dbus_conn = wl_call_tbl.dbus_bus_get(0 /* DBUS_BUS_SESSION */, &handle->wayland.dbus_err); @@ -1848,17 +1854,6 @@ static void dark_theme_detection_setup(MwLL handle) { fprintf(stderr, "[WARNING] Could not detect dark theme: Failed to connect to session bus\n"); return; } -} - -static void detect_dark_theme(MwLL handle) { - const char* namespace = "org.freedesktop.appearance"; - const char* key = "color-scheme"; /* 0=no preference, 1=dark, 2=light */ - MwU32 value = 0; - int translated_value = 0; - - if(!handle->wayland.dbus_conn) { - return; - } handle->wayland.dbus_msg = wl_call_tbl.dbus_message_new_method_call( "org.freedesktop.portal.Desktop", @@ -1873,9 +1868,18 @@ static void detect_dark_theme(MwLL handle) { wl_call_tbl.dbus_message_iter_init_append(handle->wayland.dbus_msg, &handle->wayland.dbus_args); wl_call_tbl.dbus_message_iter_append_basic(&handle->wayland.dbus_args, 's', &namespace); wl_call_tbl.dbus_message_iter_append_basic(&handle->wayland.dbus_args, 's', &key); +} + +static void detect_dark_theme(MwLL handle) { + const char* namespace = "org.freedesktop.appearance"; + const char* key = "color-scheme"; /* 0=no preference, 1=dark, 2=light */ + MwU32 value = 0; + + if(!handle->wayland.dbus_conn) { + return; + } handle->wayland.dbus_reply = wl_call_tbl.dbus_connection_send_with_reply_and_block(handle->wayland.dbus_conn, handle->wayland.dbus_msg, 100, &handle->wayland.dbus_err); - wl_call_tbl.dbus_message_unref(handle->wayland.dbus_msg); if(wl_call_tbl.dbus_error_is_set(&handle->wayland.dbus_err)) { fprintf(stderr, "[WARNING] Could not detect dark theme: Send error: %s\n", handle->wayland.dbus_err.message); @@ -1908,18 +1912,16 @@ static void detect_dark_theme(MwLL handle) { wl_call_tbl.dbus_message_iter_get_basic(&handle->wayland.dbus_variant, &value); } - translated_value = (value == 1) ? 1 : 0; - - MwLLDispatch(handle, dark_theme, &translated_value); + MwLLDispatch(handle, dark_theme, &value); } static void dark_theme_detection_destroy(MwLL handle) { if(!wl_call_tbl.dbus_lib) { return; } - - wl_call_tbl.dbus_message_unref(handle->wayland.dbus_reply); - wl_call_tbl.dbus_connection_unref(handle->wayland.dbus_conn); + if(handle->wayland.dbus_msg) wl_call_tbl.dbus_message_unref(handle->wayland.dbus_msg); + if(handle->wayland.dbus_reply) wl_call_tbl.dbus_message_unref(handle->wayland.dbus_reply); + if(handle->wayland.dbus_conn) wl_call_tbl.dbus_connection_unref(handle->wayland.dbus_conn); } static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { @@ -1932,6 +1934,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { if(!parent) { dark_theme_detection_setup(r); + r->wayland.dark_theme_detection = MwTRUE; } return r; @@ -2245,8 +2248,11 @@ static int MwLLPendingImpl(MwLL handle) { }; int pending = 0; - if(handle->wayland.dbus_conn) { - detect_dark_theme(handle); + if(handle->wayland.dark_theme_detection) { + if(handle->wayland.dbus_conn) { + detect_dark_theme(handle); + handle->wayland.dark_theme_detection = MwFALSE; + } } if(!handle->wayland.did_initial_resize) { @@ -2652,6 +2658,9 @@ static void MwLLEndStateChangeImpl(MwLL handle) { widget_setup(handle, handle->wayland.parent, handle->wayland.detach_point.x, handle->wayland.detach_point.y, handle->wayland.ww, handle->wayland.wh, handle->wayland.type_to_be); + if(!handle->wayland.parent) + handle->wayland.dark_theme_detection = MwTRUE; + if(handle->common.user) { MwWidget w = handle->common.user; int i; From 64930db2fc89f2b08bc5e8d9cdcfa1ce565f0079 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 15 Apr 2026 13:03:24 -0700 Subject: [PATCH 388/836] color picker example: have button match the background --- examples/basic/colorpicker.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/basic/colorpicker.c b/examples/basic/colorpicker.c index 22e647cc8..8d0c0f369 100644 --- a/examples/basic/colorpicker.c +++ b/examples/basic/colorpicker.c @@ -35,12 +35,11 @@ int main() { window = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 640, 480, MwNtitle, "color picker", NULL); - MwSetText(window, MwNbackground, "#000000"); + MwSetText(window, MwNbackground, MwGetInteger(window, MwNdarkTheme) ? MwDefaultBackground : MwDefaultDarkBackground); button = MwVaCreateWidget(MwButtonClass, "button", window, 160, 180, 320, 120, MwNtext, "change window background", NULL); - MwSetText(button, MwNbackground, MwGetInteger(button, MwNdarkTheme) ? MwDefaultDarkBackground : MwDefaultBackground); MwAddUserHandler(button, MwNactivateHandler, color_picker, NULL); From a0c864d85b2bf782e78ef15068b0a293910fc017 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 15 Apr 2026 13:58:50 -0700 Subject: [PATCH 389/836] fix wayland crash by having MwLLDestroy flush before actually destroying handle --- src/backend/wayland.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 68207b871..435033643 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1949,6 +1949,11 @@ static void MwLLDestroyImpl(MwLL handle) { }; int select_ret; + event_loop(handle); + // wl_display_cancel_read(handle->wayland.display); + + wl_flush(handle); + if(pthread_mutex_timedlock(&handle->wayland.eventsMutex, &t) != 0) { printf("WARNING: Couldn't call MwLLDestroyImpl due to deadlock.\n"); return; @@ -1956,12 +1961,6 @@ static void MwLLDestroyImpl(MwLL handle) { MwLLDestroyCommon(handle); - if(!handle->wayland.dbus_conn) { - dark_theme_detection_destroy(handle); - } - - event_loop(handle); - /* sleep long enough that any active attempts to wait for the mutex will have given up and we can safely unlock/destroy it */ tv.tv_sec = 0; tv.tv_usec = 1000; @@ -1972,7 +1971,10 @@ static void MwLLDestroyImpl(MwLL handle) { pthread_mutex_unlock(&handle->wayland.eventsMutex); pthread_mutex_destroy(&handle->wayland.eventsMutex); - // framebuffer_destroy(&handle->wayland); + if(!handle->wayland.dbus_conn) { + dark_theme_detection_destroy(handle); + } + buffer_destroy(&handle->wayland.cursor); wl_region_destroy(handle->wayland.region); @@ -2005,7 +2007,12 @@ static void MwLLDestroyImpl(MwLL handle) { shfree(handle->wayland.wl_protocol_map); shfree(handle->wayland.wl_protocol_setup_map); - free(handle); + wl_keyboard_destroy(handle->wayland.keyboard); + wl_pointer_destroy(handle->wayland.pointer); + + wl_flush(handle); + + // free(handle); if(currentlyHeldWidget == handle) { currentlyHeldWidget = NULL; @@ -2252,6 +2259,7 @@ static int MwLLPendingImpl(MwLL handle) { if(handle->wayland.dbus_conn) { detect_dark_theme(handle); handle->wayland.dark_theme_detection = MwFALSE; + MwLLDispatch(handle, draw, NULL); } } From 12703d451e63bbf5d505ba0c33f00deab5d3989c Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 15 Apr 2026 14:02:22 -0700 Subject: [PATCH 390/836] use pkg-config for dbus includes --- pl/rules.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pl/rules.pl b/pl/rules.pl index d6f72fb6e..af1bb21cc 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -49,7 +49,7 @@ if (grep(/^wayland$/, @backends)) { scan_wayland_protocol("unstable", "pointer-constraints", "-unstable-v1"); scan_wayland_protocol("unstable", "relative-pointer", "-unstable-v1"); - add_cflags("-I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include"); + add_cflags(`pkg-config --cflags dbus-1.0`); $gl_libs = "-lGL -lGLU"; } From 43c66417c7f15a07b8207d432f27531bc1bbd6d5 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 15 Apr 2026 14:03:48 -0700 Subject: [PATCH 391/836] use pkg-config for dbus includes --- pl/rules.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pl/rules.pl b/pl/rules.pl index af1bb21cc..2b222249b 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -49,7 +49,7 @@ if (grep(/^wayland$/, @backends)) { scan_wayland_protocol("unstable", "pointer-constraints", "-unstable-v1"); scan_wayland_protocol("unstable", "relative-pointer", "-unstable-v1"); - add_cflags(`pkg-config --cflags dbus-1.0`); + add_cflags(`pkg-config --cflags dbus-1`); $gl_libs = "-lGL -lGLU"; } From dc97522bb075527f428d8c3e44a8fdc50a29f0ac Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 15 Apr 2026 15:21:16 -0700 Subject: [PATCH 392/836] wayland: abstract the dbus stuff a bit in case we need it later --- src/backend/wayland.c | 60 ++++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 435033643..3c8c9cd20 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1830,11 +1830,9 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh } } -static void dark_theme_detection_setup(MwLL handle) { - const char* namespace = "org.freedesktop.appearance"; - const char* key = "color-scheme"; /* 0=no preference, 1=dark, 2=light */ - MwU32 value = 0; - int translated_value = 0; +static void dbus_setup(MwLL handle) { + MwU32 value = 0; + int translated_value = 0; if(!wl_call_tbl.dbus_lib) { return; @@ -1854,51 +1852,47 @@ static void dark_theme_detection_setup(MwLL handle) { fprintf(stderr, "[WARNING] Could not detect dark theme: Failed to connect to session bus\n"); return; } +} + +static void dbus_get(MwLL handle, const char* portal, const char* namespace, const char* key, void* out) { + if(!handle->wayland.dbus_conn) { + return; + } handle->wayland.dbus_msg = wl_call_tbl.dbus_message_new_method_call( "org.freedesktop.portal.Desktop", "/org/freedesktop/portal/desktop", - "org.freedesktop.portal.Settings", + portal, "Read"); if(!handle->wayland.dbus_msg) { - fprintf(stderr, "[WARNING] Could not detect dark theme: Failed to create message\n"); + fprintf(stderr, "[WARNING] Couldn't get %s::%s: Failed to create message\n", namespace, key); return; } wl_call_tbl.dbus_message_iter_init_append(handle->wayland.dbus_msg, &handle->wayland.dbus_args); wl_call_tbl.dbus_message_iter_append_basic(&handle->wayland.dbus_args, 's', &namespace); wl_call_tbl.dbus_message_iter_append_basic(&handle->wayland.dbus_args, 's', &key); -} - -static void detect_dark_theme(MwLL handle) { - const char* namespace = "org.freedesktop.appearance"; - const char* key = "color-scheme"; /* 0=no preference, 1=dark, 2=light */ - MwU32 value = 0; - - if(!handle->wayland.dbus_conn) { - return; - } handle->wayland.dbus_reply = wl_call_tbl.dbus_connection_send_with_reply_and_block(handle->wayland.dbus_conn, handle->wayland.dbus_msg, 100, &handle->wayland.dbus_err); if(wl_call_tbl.dbus_error_is_set(&handle->wayland.dbus_err)) { - fprintf(stderr, "[WARNING] Could not detect dark theme: Send error: %s\n", handle->wayland.dbus_err.message); + fprintf(stderr, "[WARNING] Couldn't get %s::%s: Send error: %s\n", namespace, key, handle->wayland.dbus_err.message); wl_call_tbl.dbus_error_free(&handle->wayland.dbus_err); return; } if(!handle->wayland.dbus_reply) { - fprintf(stderr, "[WARNING] Could not detect dark theme: No reply received\n"); + fprintf(stderr, "[WARNING] Couldn't get %s::%s: No reply received\n", namespace, key); return; } if(!wl_call_tbl.dbus_message_iter_init(handle->wayland.dbus_reply, &handle->wayland.dbus_args)) { - fprintf(stderr, "[WARNING] Could not detect dark theme: Reply has no arguments\n"); + fprintf(stderr, "[WARNING] Couldn't get %s::%s: Reply has no arguments\n", namespace, key); wl_call_tbl.dbus_message_unref(handle->wayland.dbus_reply); return; } if(wl_call_tbl.dbus_message_iter_get_arg_type(&handle->wayland.dbus_args) != 'v') { - fprintf(stderr, "[WARNING] Could not detect dark theme: Expected outer variant\n"); + fprintf(stderr, "[WARNING] Couldn't get %s::%s: Expected outer variant\n", namespace, key); wl_call_tbl.dbus_message_unref(handle->wayland.dbus_reply); return; } @@ -1907,19 +1901,27 @@ static void detect_dark_theme(MwLL handle) { /* Some portals wrap the value in a second variant */ if(wl_call_tbl.dbus_message_iter_get_arg_type(&handle->wayland.dbus_variant) == 'v') { wl_call_tbl.dbus_message_iter_recurse(&handle->wayland.dbus_variant, &handle->wayland.dbus_inner_variant); - wl_call_tbl.dbus_message_iter_get_basic(&handle->wayland.dbus_inner_variant, &value); + wl_call_tbl.dbus_message_iter_get_basic(&handle->wayland.dbus_inner_variant, out); } else { - wl_call_tbl.dbus_message_iter_get_basic(&handle->wayland.dbus_variant, &value); + wl_call_tbl.dbus_message_iter_get_basic(&handle->wayland.dbus_variant, out); } - - MwLLDispatch(handle, dark_theme, &value); + wl_call_tbl.dbus_message_unref(handle->wayland.dbus_msg); } -static void dark_theme_detection_destroy(MwLL handle) { +static void detect_dark_theme(MwLL handle) { + MwU32 value = 0; + MwU32 dark_theme = 0; + dbus_get(handle, "org.freedesktop.portal.Settings", "org.freedesktop.appearance", "color-scheme", &value); + + dark_theme = (value == 1) ? 1 : 0; + + MwLLDispatch(handle, dark_theme, &dark_theme); +} + +static void dbus_destroy(MwLL handle) { if(!wl_call_tbl.dbus_lib) { return; } - if(handle->wayland.dbus_msg) wl_call_tbl.dbus_message_unref(handle->wayland.dbus_msg); if(handle->wayland.dbus_reply) wl_call_tbl.dbus_message_unref(handle->wayland.dbus_reply); if(handle->wayland.dbus_conn) wl_call_tbl.dbus_connection_unref(handle->wayland.dbus_conn); } @@ -1933,7 +1935,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { widget_setup(r, parent, x, y, width, height, MWLL_WAYLAND_UNKNOWN); if(!parent) { - dark_theme_detection_setup(r); + dbus_setup(r); r->wayland.dark_theme_detection = MwTRUE; } @@ -1972,7 +1974,7 @@ static void MwLLDestroyImpl(MwLL handle) { pthread_mutex_destroy(&handle->wayland.eventsMutex); if(!handle->wayland.dbus_conn) { - dark_theme_detection_destroy(handle); + dbus_destroy(handle); } buffer_destroy(&handle->wayland.cursor); From 9087782960496a271c184e9e2c913a38611139cd Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 15 Apr 2026 15:23:55 -0700 Subject: [PATCH 393/836] wayland: fix DBUS_FUNC --- include/Mw/LowLevel/Wayland.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index d4ebdef93..6b2c08ff9 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -248,8 +248,9 @@ MwInline int wayland_load_funcs() { #define DBUS_FUNC(x) \ wl_call_tbl.x = MwDynamicSymbol(wl_call_tbl.dbus_lib, #x); \ - if(!x) { \ - fprintf(stderr, "[WARNING] Will not be able to detect dark theme: dbus function %s (libdbus-1.so) not found.\n", #x); \ + if(!wl_call_tbl.x) { \ + fprintf(stderr, "[WARNING] Will not be able to detect dark theme: dbus function %s not found.\n", #x); \ + dlclose(wl_call_tbl.dbus_lib); \ return 0; \ } From 54fed150e8be93fc89df79c430e528c28907fc98 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 15 Apr 2026 16:12:38 -0700 Subject: [PATCH 394/836] dbus --- include/Mw/LowLevel.h | 37 +++++++++++ include/Mw/LowLevel/Wayland.h | 63 ++++-------------- include/Mw/LowLevel/X11.h | 6 ++ include/Mw/MachDep.h | 4 ++ pl/ostype/Linux.pl | 2 + src/backend/wayland.c | 100 +++------------------------- src/backend/x11.c | 35 ++++++++++ src/lowlevel.c | 119 ++++++++++++++++++++++++++++++++++ 8 files changed, 223 insertions(+), 143 deletions(-) diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index d5a0b1b5b..c958e00d7 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -56,6 +56,43 @@ struct _MwLLCommonPixmap { void* user; }; +#ifdef USE_DBUS +typedef struct _MwLLDBusFuncTable { + void* lib; + + void (*dbus_error_init)(DBusError* error); + DBusConnection* (*dbus_bus_get)(DBusBusType type, DBusError* error); + dbus_bool_t (*dbus_error_is_set)(const DBusError* error); + void (*dbus_error_free)(DBusError* error); + DBusMessage* (*dbus_message_new_method_call)(const char* bus_name, const char* path, const char* iface, const char* method); + void (*dbus_message_iter_init_append)(DBusMessage* message, DBusMessageIter* iter); + dbus_bool_t (*dbus_message_iter_append_basic)(DBusMessageIter* iter, int type, const void* value); + DBusMessage* (*dbus_connection_send_with_reply_and_block)(DBusConnection* connection, DBusMessage* message, int timeout_milliseconds, DBusError* error); + void (*dbus_message_unref)(DBusMessage* message); + dbus_bool_t (*dbus_message_iter_init)(DBusMessage* message, DBusMessageIter* iter); + int (*dbus_message_iter_get_arg_type)(DBusMessageIter* iter); + void (*dbus_message_iter_recurse)(DBusMessageIter* iter, DBusMessageIter* sub); + void (*dbus_connection_unref)(DBusConnection* connection); + void (*dbus_message_iter_get_basic)(DBusMessageIter* iter, void* value); +} MwLLDBusFuncTable; + +typedef struct _MwLLDBusContext { + DBusConnection* dbus_conn; + DBusError dbus_err; + DBusMessage* dbus_msg; + DBusMessage* dbus_reply; + DBusMessageIter dbus_args, dbus_variant, dbus_inner_variant; +} MwLLDBusContext; + +/* setup the dbus func table. Returns false and prints a warning if dbus couldn't be found. */ +MWDECL MwBool MwLLDBusFuncSetup(MwLLDBusFuncTable* tbl); + +MWDECL MwBool MwLLDBusNewContext(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx); +MWDECL MwBool MwLLDBusPortalGet(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx, const char* portal, const char* namespace, const char* key, void* out); +MWDECL void MwLLDBusFreeContext(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx); + +#endif + #ifdef _MILSKO #ifdef USE_X11 #include diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 6b2c08ff9..77e43b3be 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -36,7 +36,10 @@ typedef struct wayland_call_table { void* lib; void* xkb_lib; void* cairo_lib; - void* dbus_lib; +#ifdef USE_DBUS + MwLLDBusFuncTable dbus; + MwBool has_dbus; +#endif int (*wl_display_dispatch_pending)(struct wl_display* display); void (*wl_display_disconnect)(struct wl_display* display); @@ -125,21 +128,6 @@ typedef struct wayland_call_table { void (*cairo_set_antialias)(cairo_t*, cairo_antialias_t); void (*cairo_set_operator)(cairo_t* cr, cairo_operator_t op); - void (*dbus_error_init)(DBusError* error); - DBusConnection* (*dbus_bus_get)(DBusBusType type, DBusError* error); - dbus_bool_t (*dbus_error_is_set)(const DBusError* error); - void (*dbus_error_free)(DBusError* error); - DBusMessage* (*dbus_message_new_method_call)(const char* bus_name, const char* path, const char* iface, const char* method); - void (*dbus_message_iter_init_append)(DBusMessage* message, DBusMessageIter* iter); - dbus_bool_t (*dbus_message_iter_append_basic)(DBusMessageIter* iter, int type, const void* value); - DBusMessage* (*dbus_connection_send_with_reply_and_block)(DBusConnection* connection, DBusMessage* message, int timeout_milliseconds, DBusError* error); - void (*dbus_message_unref)(DBusMessage* message); - dbus_bool_t (*dbus_message_iter_init)(DBusMessage* message, DBusMessageIter* iter); - int (*dbus_message_iter_get_arg_type)(DBusMessageIter* iter); - void (*dbus_message_iter_recurse)(DBusMessageIter* iter, DBusMessageIter* sub); - void (*dbus_connection_unref)(DBusConnection* connection); - void (*dbus_message_iter_get_basic)(DBusMessageIter* iter, void* value); - } wayland_call_table_t; extern wayland_call_table_t wl_call_tbl; @@ -240,34 +228,9 @@ MwInline int wayland_load_funcs() { CAIRO_FUNC(cairo_pattern_set_filter); #undef CAIRO_FUNC - wl_call_tbl.dbus_lib = MwDynamicOpen("libdbus-1.so"); - if(!wl_call_tbl.dbus_lib) { - fprintf(stderr, "[WARNING] Will not be able to detect dark theme: dbus library (libdbus-1.so) not found.\n"); - return 0; - } - -#define DBUS_FUNC(x) \ - wl_call_tbl.x = MwDynamicSymbol(wl_call_tbl.dbus_lib, #x); \ - if(!wl_call_tbl.x) { \ - fprintf(stderr, "[WARNING] Will not be able to detect dark theme: dbus function %s not found.\n", #x); \ - dlclose(wl_call_tbl.dbus_lib); \ - return 0; \ - } - - DBUS_FUNC(dbus_error_init); - DBUS_FUNC(dbus_bus_get); - DBUS_FUNC(dbus_error_is_set); - DBUS_FUNC(dbus_error_free); - DBUS_FUNC(dbus_message_new_method_call); - DBUS_FUNC(dbus_message_iter_init_append); - DBUS_FUNC(dbus_message_iter_append_basic); - DBUS_FUNC(dbus_connection_send_with_reply_and_block); - DBUS_FUNC(dbus_message_unref); - DBUS_FUNC(dbus_message_iter_init); - DBUS_FUNC(dbus_message_iter_get_arg_type); - DBUS_FUNC(dbus_message_iter_recurse); - DBUS_FUNC(dbus_connection_unref); - DBUS_FUNC(dbus_message_iter_get_basic); +#ifdef USE_DBUS + wl_call_tbl.has_dbus = MwLLDBusFuncSetup(&wl_call_tbl.dbus); +#endif return 0; } @@ -480,13 +443,11 @@ struct _MwLLWayland { struct zwp_locked_pointer_v1* locked_pointer; MwBool pointer_constrained; - MwBool dark_theme_detection; - time_t dbus_timer; - DBusConnection* dbus_conn; - DBusError dbus_err; - DBusMessage* dbus_msg; - DBusMessage* dbus_reply; - DBusMessageIter dbus_args, dbus_variant, dbus_inner_variant; +#ifdef USE_DBUS + MwLLDBusContext dbus; +#endif + + MwBool dark_theme_detection; /* clipboard related stuff. * Note that unlike most interfaces, we don't keep zwp_primary_selection stuff in a wayland_protocol_t because we use wl_data_device as a fallback and want to have it share memory space.*/ diff --git a/include/Mw/LowLevel/X11.h b/include/Mw/LowLevel/X11.h index 529a570c8..3d0e1252e 100644 --- a/include/Mw/LowLevel/X11.h +++ b/include/Mw/LowLevel/X11.h @@ -57,6 +57,12 @@ struct _MwLLX11 { unsigned long blue_mask; unsigned long blue_max; unsigned long blue_shift; + +#ifdef USE_DBUS + MwLLDBusContext dbus; +#endif + + MwBool dark_theme_detection; }; struct _MwLLX11Color { diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index 50898f676..025fc29b4 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -53,6 +53,10 @@ #include #endif +#ifdef USE_DBUS +#include +#endif + #ifndef M_PI #define M_PI 3.14159265 #endif diff --git a/pl/ostype/Linux.pl b/pl/ostype/Linux.pl index 73905d60b..278cbfe0c 100644 --- a/pl/ostype/Linux.pl +++ b/pl/ostype/Linux.pl @@ -7,6 +7,8 @@ if (param_get("x11")) { push(@enabled_backends, "x11"); } +add_cflags("-DUSE_DBUS"); + use_backend(@enabled_backends); 1; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 3c8c9cd20..1fc68cb4c 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1830,102 +1830,16 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh } } -static void dbus_setup(MwLL handle) { - MwU32 value = 0; - int translated_value = 0; - - if(!wl_call_tbl.dbus_lib) { - return; - } - - time(&handle->wayland.dbus_timer); - - wl_call_tbl.dbus_error_init(&handle->wayland.dbus_err); - - handle->wayland.dbus_conn = wl_call_tbl.dbus_bus_get(0 /* DBUS_BUS_SESSION */, &handle->wayland.dbus_err); - if(wl_call_tbl.dbus_error_is_set(&handle->wayland.dbus_err)) { - fprintf(stderr, "[WARNING] Could not detect dark theme: Connection error: %s\n", handle->wayland.dbus_err.message); - wl_call_tbl.dbus_error_free(&handle->wayland.dbus_err); - return; - } - if(!handle->wayland.dbus_conn) { - fprintf(stderr, "[WARNING] Could not detect dark theme: Failed to connect to session bus\n"); - return; - } -} - -static void dbus_get(MwLL handle, const char* portal, const char* namespace, const char* key, void* out) { - if(!handle->wayland.dbus_conn) { - return; - } - - handle->wayland.dbus_msg = wl_call_tbl.dbus_message_new_method_call( - "org.freedesktop.portal.Desktop", - "/org/freedesktop/portal/desktop", - portal, - "Read"); - if(!handle->wayland.dbus_msg) { - fprintf(stderr, "[WARNING] Couldn't get %s::%s: Failed to create message\n", namespace, key); - return; - } - - wl_call_tbl.dbus_message_iter_init_append(handle->wayland.dbus_msg, &handle->wayland.dbus_args); - wl_call_tbl.dbus_message_iter_append_basic(&handle->wayland.dbus_args, 's', &namespace); - wl_call_tbl.dbus_message_iter_append_basic(&handle->wayland.dbus_args, 's', &key); - - handle->wayland.dbus_reply = wl_call_tbl.dbus_connection_send_with_reply_and_block(handle->wayland.dbus_conn, handle->wayland.dbus_msg, 100, &handle->wayland.dbus_err); - - if(wl_call_tbl.dbus_error_is_set(&handle->wayland.dbus_err)) { - fprintf(stderr, "[WARNING] Couldn't get %s::%s: Send error: %s\n", namespace, key, handle->wayland.dbus_err.message); - wl_call_tbl.dbus_error_free(&handle->wayland.dbus_err); - return; - } - if(!handle->wayland.dbus_reply) { - fprintf(stderr, "[WARNING] Couldn't get %s::%s: No reply received\n", namespace, key); - return; - } - - if(!wl_call_tbl.dbus_message_iter_init(handle->wayland.dbus_reply, &handle->wayland.dbus_args)) { - fprintf(stderr, "[WARNING] Couldn't get %s::%s: Reply has no arguments\n", namespace, key); - wl_call_tbl.dbus_message_unref(handle->wayland.dbus_reply); - return; - } - - if(wl_call_tbl.dbus_message_iter_get_arg_type(&handle->wayland.dbus_args) != 'v') { - fprintf(stderr, "[WARNING] Couldn't get %s::%s: Expected outer variant\n", namespace, key); - wl_call_tbl.dbus_message_unref(handle->wayland.dbus_reply); - return; - } - wl_call_tbl.dbus_message_iter_recurse(&handle->wayland.dbus_args, &handle->wayland.dbus_variant); - - /* Some portals wrap the value in a second variant */ - if(wl_call_tbl.dbus_message_iter_get_arg_type(&handle->wayland.dbus_variant) == 'v') { - wl_call_tbl.dbus_message_iter_recurse(&handle->wayland.dbus_variant, &handle->wayland.dbus_inner_variant); - wl_call_tbl.dbus_message_iter_get_basic(&handle->wayland.dbus_inner_variant, out); - } else { - wl_call_tbl.dbus_message_iter_get_basic(&handle->wayland.dbus_variant, out); - } - wl_call_tbl.dbus_message_unref(handle->wayland.dbus_msg); -} - static void detect_dark_theme(MwLL handle) { MwU32 value = 0; MwU32 dark_theme = 0; - dbus_get(handle, "org.freedesktop.portal.Settings", "org.freedesktop.appearance", "color-scheme", &value); + MwLLDBusPortalGet(&wl_call_tbl.dbus, &handle->wayland.dbus, "org.freedesktop.portal.Settings", "org.freedesktop.appearance", "color-scheme", &value); dark_theme = (value == 1) ? 1 : 0; MwLLDispatch(handle, dark_theme, &dark_theme); } -static void dbus_destroy(MwLL handle) { - if(!wl_call_tbl.dbus_lib) { - return; - } - if(handle->wayland.dbus_reply) wl_call_tbl.dbus_message_unref(handle->wayland.dbus_reply); - if(handle->wayland.dbus_conn) wl_call_tbl.dbus_connection_unref(handle->wayland.dbus_conn); -} - static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLL r; r = malloc(sizeof(*r)); @@ -1934,10 +1848,12 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { widget_setup(r, parent, x, y, width, height, MWLL_WAYLAND_UNKNOWN); - if(!parent) { - dbus_setup(r); +#ifdef USE_DBUS + if(!parent && wl_call_tbl.has_dbus) { + wl_call_tbl.has_dbus = MwLLDBusNewContext(&wl_call_tbl.dbus, &r->wayland.dbus); r->wayland.dark_theme_detection = MwTRUE; } +#endif return r; } @@ -1973,8 +1889,8 @@ static void MwLLDestroyImpl(MwLL handle) { pthread_mutex_unlock(&handle->wayland.eventsMutex); pthread_mutex_destroy(&handle->wayland.eventsMutex); - if(!handle->wayland.dbus_conn) { - dbus_destroy(handle); + if(!wl_call_tbl.has_dbus) { + MwLLDBusFreeContext(&wl_call_tbl.dbus, &handle->wayland.dbus); } buffer_destroy(&handle->wayland.cursor); @@ -2258,7 +2174,7 @@ static int MwLLPendingImpl(MwLL handle) { int pending = 0; if(handle->wayland.dark_theme_detection) { - if(handle->wayland.dbus_conn) { + if(wl_call_tbl.has_dbus) { detect_dark_theme(handle); handle->wayland.dark_theme_detection = MwFALSE; MwLLDispatch(handle, draw, NULL); diff --git a/src/backend/x11.c b/src/backend/x11.c index ad97d6885..d8f028b32 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -9,6 +9,9 @@ static struct { void* lib_xrender; MwBool has_xrender; + MwLLDBusFuncTable dbus; + MwBool has_dbus; + int (*XClearWindow)(Display* display, Window w); XImage* (*XCreateImage)(Display*, Visual*, unsigned int, int, int, char*, unsigned int, unsigned int, int, int); Display* (*XOpenDisplay)(_Xconst char*); @@ -308,6 +311,16 @@ static XVisualInfo* get_visual_info(Display* display) { return XGetVisualInfo(display, VisualIDMask, &xvi, &n); } +static void detect_dark_theme(MwLL handle) { + MwU32 value = 0; + MwU32 dark_theme = 0; + MwLLDBusPortalGet(&xsymtbl.dbus, &handle->x11.dbus, "org.freedesktop.portal.Settings", "org.freedesktop.appearance", "color-scheme", &value); + + dark_theme = (value == 1) ? 1 : 0; + + MwLLDispatch(handle, dark_theme, &dark_theme); +} + static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLL r; Window p; @@ -429,6 +442,14 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { } } +#ifdef USE_DBUS + memset(&r->x11.dbus, 0, sizeof(r->x11.dbus)); + if(!parent && xsymtbl.has_dbus) { + xsymtbl.has_dbus = MwLLDBusNewContext(&xsymtbl.dbus, &r->x11.dbus); + r->x11.dark_theme_detection = MwTRUE; + } +#endif + return r; } @@ -449,6 +470,10 @@ static void MwLLDestroyImpl(MwLL handle) { if(handle->x11.toplevel) XCloseDisplay(handle->x11.display); + if(!xsymtbl.has_dbus) { + MwLLDBusFreeContext(&xsymtbl.dbus, &handle->x11.dbus); + } + free(handle); } @@ -607,6 +632,14 @@ static void MwLLFreeColorImpl(MwLLColor color) { static int MwLLPendingImpl(MwLL handle) { XEvent ev; + if(handle->x11.dark_theme_detection) { + if(xsymtbl.has_dbus) { + detect_dark_theme(handle); + handle->x11.dark_theme_detection = MwFALSE; + MwLLDispatch(handle, draw, NULL); + } + } + if(handle->x11.clipboard_pending && (MwTimeGetTick() - handle->x11.clipboard_time) >= ClipboardTimeout) { return 1; } @@ -1388,6 +1421,8 @@ static int MwLLX11CallInitImpl(void) { XRENDER_FUNC_LOAD(XRenderSetPictureTransform) XRENDER_FUNC_LOAD(XRenderComposite) #endif + + xsymtbl.has_dbus = MwLLDBusFuncSetup(&xsymtbl.dbus); return 0; } diff --git a/src/lowlevel.c b/src/lowlevel.c index 597a23a82..32188aa99 100644 --- a/src/lowlevel.c +++ b/src/lowlevel.c @@ -61,3 +61,122 @@ void MwLLCreateCommon(MwLL handle) { void MwLLDestroyCommon(MwLL handle) { free(handle->common.handler); } + +#ifdef USE_DBUS +MwBool MwLLDBusFuncSetup(MwLLDBusFuncTable* tbl) { + tbl->lib = MwDynamicOpen("libdbus-1.so"); + if(!tbl->lib) { + fprintf(stderr, "[WARNING] dbus library (libdbus-1.so) not found, will not be able to check for any XDG settings.\n"); + return MwFALSE; + } + +#define DBUS_FUNC(x) \ + tbl->x = MwDynamicSymbol(tbl->lib, #x); \ + if(!tbl->x) { \ + fprintf(stderr, "[WARNING] dbus function %s not found, will not be able to check for any XDG settings.\n", #x); \ + dlclose(tbl->lib); \ + return MwFALSE; \ + } + + DBUS_FUNC(dbus_error_init); + DBUS_FUNC(dbus_bus_get); + DBUS_FUNC(dbus_error_is_set); + DBUS_FUNC(dbus_error_free); + DBUS_FUNC(dbus_message_new_method_call); + DBUS_FUNC(dbus_message_iter_init_append); + DBUS_FUNC(dbus_message_iter_append_basic); + DBUS_FUNC(dbus_connection_send_with_reply_and_block); + DBUS_FUNC(dbus_message_unref); + DBUS_FUNC(dbus_message_iter_init); + DBUS_FUNC(dbus_message_iter_get_arg_type); + DBUS_FUNC(dbus_message_iter_recurse); + DBUS_FUNC(dbus_connection_unref); + DBUS_FUNC(dbus_message_iter_get_basic); + + return MwTRUE; +} +#endif + +MwBool MwLLDBusNewContext(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx) { + if(!tbl->lib) { + return MwFALSE; + } + + tbl->dbus_error_init(&ctx->dbus_err); + + ctx->dbus_conn = tbl->dbus_bus_get(DBUS_BUS_SESSION, &ctx->dbus_err); + if(tbl->dbus_error_is_set(&ctx->dbus_err)) { + fprintf(stderr, "[WARNING] Could not initialize dbus: Connection error: %s\n", ctx->dbus_err.message); + tbl->dbus_error_free(&ctx->dbus_err); + return MwFALSE; + } + if(!ctx->dbus_conn) { + fprintf(stderr, "[WARNING] Could not initialize dbus: Failed to connect to session bus\n"); + return MwFALSE; + } + return MwTRUE; +}; + +MWDECL MwBool MwLLDBusPortalGet(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx, const char* portal, const char* namespace, const char* key, void* out) { + if(!ctx->dbus_conn) { + return MwFALSE; + } + + ctx->dbus_msg = tbl->dbus_message_new_method_call( + "org.freedesktop.portal.Desktop", + "/org/freedesktop/portal/desktop", + portal, + "Read"); + if(!ctx->dbus_msg) { + fprintf(stderr, "[WARNING] Couldn't get %s::%s: Failed to create message\n", namespace, key); + return MwFALSE; + } + + tbl->dbus_message_iter_init_append(ctx->dbus_msg, &ctx->dbus_args); + tbl->dbus_message_iter_append_basic(&ctx->dbus_args, 's', &namespace); + tbl->dbus_message_iter_append_basic(&ctx->dbus_args, 's', &key); + + ctx->dbus_reply = tbl->dbus_connection_send_with_reply_and_block(ctx->dbus_conn, ctx->dbus_msg, 100, &ctx->dbus_err); + + if(tbl->dbus_error_is_set(&ctx->dbus_err)) { + fprintf(stderr, "[WARNING] Couldn't get %s::%s: Send error: %s\n", namespace, key, ctx->dbus_err.message); + tbl->dbus_error_free(&ctx->dbus_err); + return MwFALSE; + } + if(!ctx->dbus_reply) { + fprintf(stderr, "[WARNING] Couldn't get %s::%s: No reply received\n", namespace, key); + return MwFALSE; + } + + if(!tbl->dbus_message_iter_init(ctx->dbus_reply, &ctx->dbus_args)) { + fprintf(stderr, "[WARNING] Couldn't get %s::%s: Reply has no arguments\n", namespace, key); + tbl->dbus_message_unref(ctx->dbus_reply); + return MwFALSE; + } + + if(tbl->dbus_message_iter_get_arg_type(&ctx->dbus_args) != 'v') { + fprintf(stderr, "[WARNING] Couldn't get %s::%s: Expected outer variant\n", namespace, key); + tbl->dbus_message_unref(ctx->dbus_reply); + return MwFALSE; + } + tbl->dbus_message_iter_recurse(&ctx->dbus_args, &ctx->dbus_variant); + + /* Some portals wrap the value in a second variant */ + if(tbl->dbus_message_iter_get_arg_type(&ctx->dbus_variant) == 'v') { + tbl->dbus_message_iter_recurse(&ctx->dbus_variant, &ctx->dbus_inner_variant); + tbl->dbus_message_iter_get_basic(&ctx->dbus_inner_variant, out); + } else { + tbl->dbus_message_iter_get_basic(&ctx->dbus_variant, out); + } + tbl->dbus_message_unref(ctx->dbus_msg); + + return MwTRUE; +} + +void MwLLDBusFreeContext(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx) { + if(!tbl->lib) { + return; + } + if(ctx->dbus_reply) tbl->dbus_message_unref(ctx->dbus_reply); + if(ctx->dbus_conn) tbl->dbus_connection_unref(ctx->dbus_conn); +}; From 677d8c8046d620fbc901a4e2b15000088bc7fe2f Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 15 Apr 2026 18:26:32 -0500 Subject: [PATCH 395/836] guard dbus function impls with ifdef --- src/lowlevel.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lowlevel.c b/src/lowlevel.c index 32188aa99..13a7d4999 100644 --- a/src/lowlevel.c +++ b/src/lowlevel.c @@ -97,6 +97,7 @@ MwBool MwLLDBusFuncSetup(MwLLDBusFuncTable* tbl) { } #endif +#ifdef USE_DBUS MwBool MwLLDBusNewContext(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx) { if(!tbl->lib) { return MwFALSE; @@ -180,3 +181,4 @@ void MwLLDBusFreeContext(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx) { if(ctx->dbus_reply) tbl->dbus_message_unref(ctx->dbus_reply); if(ctx->dbus_conn) tbl->dbus_connection_unref(ctx->dbus_conn); }; +#endif From 0fb9c45ea4cb39475fa7e97c8b6a4b8c26e35b5f Mon Sep 17 00:00:00 2001 From: Nishi Date: Thu, 16 Apr 2026 08:42:01 +0900 Subject: [PATCH 396/836] improve --- examples/basic/colorpicker.c | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/basic/colorpicker.c b/examples/basic/colorpicker.c index 8d0c0f369..6471b7822 100644 --- a/examples/basic/colorpicker.c +++ b/examples/basic/colorpicker.c @@ -40,6 +40,7 @@ int main() { button = MwVaCreateWidget(MwButtonClass, "button", window, 160, 180, 320, 120, MwNtext, "change window background", NULL); + MwSetText(button, MwNbackground, MwGetInteger(window, MwNdarkTheme) ? MwDefaultBackground : MwDefaultDarkBackground); MwAddUserHandler(button, MwNactivateHandler, color_picker, NULL); From a2c1489ffb0d70a13ad3c60032a08da8b6107486 Mon Sep 17 00:00:00 2001 From: Nishi Date: Thu, 16 Apr 2026 09:35:53 +0900 Subject: [PATCH 397/836] add MwLLSetDarkTheme --- include/Mw/LowLevel.h | 2 ++ src/backend/call.c | 2 ++ src/backend/cocoa.m | 5 +++++ src/backend/gdi.c | 27 +++++++++++++++++++++++++++ src/backend/wayland.c | 5 +++++ src/backend/x11.c | 7 ++++++- src/core.c | 8 ++++++++ src/lowlevel.c | 2 ++ 8 files changed, 57 insertions(+), 1 deletion(-) diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index c958e00d7..a1a469188 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -277,6 +277,8 @@ MWDECL void (*MwLLGetClipboard)(MwLL handle); MWDECL void (*MwLLGetCursorCoord)(MwLL handle, MwPoint* point); MWDECL void (*MwLLGetScreenSize)(MwLL handle, MwRect* rect); +MWDECL void (*MwLLSetDarkTheme)(MwLL handle, int toggle); + /* font renderer */ MWDECL void MwFLSetup(void); diff --git a/src/backend/call.c b/src/backend/call.c index e2ce934c9..07cf1e08f 100644 --- a/src/backend/call.c +++ b/src/backend/call.c @@ -54,6 +54,8 @@ \ MwLLGetCursorCoord = MwLLGetCursorCoordImpl; \ MwLLGetScreenSize = MwLLGetScreenSizeImpl; \ +\ + MwLLSetDarkTheme = MwLLSetDarkThemeImpl; \ \ return 0; \ } diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 4cdc5b2b6..95fd56db8 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1082,6 +1082,11 @@ static void MwLLEndStateChangeImpl(MwLL handle) { MwLLShow(handle, 1); } +static void MwLLSetDarkThemeImpl(MwLL handle, int toggle){ + (void)handle; + (void)toggle; +} + static int MwLLCocoaCallInitImpl(void) { #ifndef __APPLE__ printf("Using GNUStep Backend\n"); diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 5d89419d0..9fe139826 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -8,6 +8,14 @@ typedef struct userdata { int max_set; } userdata_t; +static struct symtbl { + void* lib_dwmapi; + + HRESULT (WINAPI *DwmSetWindowAttribute)(HWND hwnd, DWORD dwAttribute, LPCVOID pvAttribute, DWORD cbAttribute); +} wsymtbl; + +#define DwmSetWindowAttribute wsymtbl.DwmSetWindowAttribute + static void detect_darktheme(MwLL handle) { DWORD dw; DWORD sz = sizeof(dw); @@ -26,6 +34,12 @@ static void detect_darktheme(MwLL handle) { t = dw ? 0 : 1; + if(t && DwmSetWindowAttribute != NULL){ + LPARAM style = GetWindowLongPtr(handle->gdi.hWnd, GWL_STYLE); + BOOL v = TRUE; + if(!(style & WS_CHILD)) DwmSetWindowAttribute(handle->gdi.hWnd, 20, &v, sizeof(v)); + } + MwLLDispatch(handle, dark_theme, &t); } @@ -804,7 +818,20 @@ static void MwLLEndStateChangeImpl(MwLL handle) { (void)handle; } +static void MwLLSetDarkThemeImpl(MwLL handle, int toggle){ + BOOL v = toggle ? TRUE : FALSE; + + DwmSetWindowAttribute(handle->gdi.hWnd, 20, &v, sizeof(v)); + +} + static int MwLLGDICallInitImpl(void) { + memset(&wsymtbl, 0, sizeof(wsymtbl)); + + wsymtbl.lib_dwmapi = MwDynamicOpen("dwmapi.dll"); + + if(wsymtbl.lib_dwmapi != NULL) DwmSetWindowAttribute = MwDynamicSymbol(wsymtbl.lib_dwmapi, "DwmSetWindowAttribute"); + /* TODO: check properly */ return 0; } diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 1fc68cb4c..bd4686081 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -2620,6 +2620,11 @@ static void MwLLEndStateChangeImpl(MwLL handle) { } } +static void MwLLSetDarkThemeImpl(MwLL handle, int toggle){ + (void)handle; + (void)toggle; +} + static int MwLLWaylandCallInitImpl(void) { #ifdef __linux__ MwBool loadWayland = MwFALSE; diff --git a/src/backend/x11.c b/src/backend/x11.c index d8f028b32..dcc41d7ad 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -4,7 +4,7 @@ #define ClipboardTimeout 100 -static struct { +static struct symtbl { void* lib_xlib; void* lib_xrender; MwBool has_xrender; @@ -1308,6 +1308,11 @@ static void MwLLEndStateChangeImpl(MwLL handle) { MwLLShow(handle, 1); } +static void MwLLSetDarkThemeImpl(MwLL handle, int toggle){ + (void)handle; + (void)toggle; +} + static int MwLLX11CallInitImpl(void) { MwBool loadX11 = MwFALSE; if(getenv("MILSKO_BACKEND")) { diff --git a/src/core.c b/src/core.c index cf45dddc2..1b00615c2 100644 --- a/src/core.c +++ b/src/core.c @@ -532,6 +532,14 @@ void MwSetInteger(MwWidget handle, const char* key, int n) { if(strcmp(key, MwNmodernLook) == 0 || strcmp(key, MwNdarkTheme) == 0 || strcmp(key, MwNbitmapFont) == 0) { force_render_all(handle); } + + if(strcmp(key, MwNdarkTheme) == 0){ + MwWidget h = handle; + + while(h->parent != NULL && h->parent->widget_class != NULL) h = h->parent; + + MwLLSetDarkTheme(h->lowlevel, n); + } } void MwSetText(MwWidget handle, const char* key, const char* value) { diff --git a/src/lowlevel.c b/src/lowlevel.c index 13a7d4999..e80b95b9c 100644 --- a/src/lowlevel.c +++ b/src/lowlevel.c @@ -51,6 +51,8 @@ void (*MwLLGetClipboard)(MwLL handle) = NULL; void (*MwLLGetCursorCoord)(MwLL handle, MwPoint* point) = NULL; void (*MwLLGetScreenSize)(MwLL handle, MwRect* rect) = NULL; +void (*MwLLSetDarkTheme)(MwLL handle, int toggle) = NULL; + void MwLLCreateCommon(MwLL handle) { handle->common.handler = malloc(sizeof(*handle->common.handler)); memset(handle->common.handler, 0, sizeof(*handle->common.handler)); From 48b847093beb5cd383ecff86aadaa0a96e20da29 Mon Sep 17 00:00:00 2001 From: Nishi Date: Thu, 16 Apr 2026 09:50:08 +0900 Subject: [PATCH 398/836] oops --- src/backend/gdi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 9fe139826..385c477fc 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -279,7 +279,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->common.copy_buffer = 1; r->common.type = MwLLBackendGDI; - r->gdi.get_clipboard = 1; + r->gdi.get_clipboard = 0; if(parent == NULL) r->gdi.get_darktheme = 1; r->gdi.force_render = 0; r->gdi.grabbed = 0; From 6f9b3c12a7a11d6c7a6c1aff20dd346770e38b7c Mon Sep 17 00:00:00 2001 From: Nishi Date: Thu, 16 Apr 2026 09:55:18 +0900 Subject: [PATCH 399/836] fix --- src/backend/gdi.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 385c477fc..51e33df1d 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -36,8 +36,7 @@ static void detect_darktheme(MwLL handle) { if(t && DwmSetWindowAttribute != NULL){ LPARAM style = GetWindowLongPtr(handle->gdi.hWnd, GWL_STYLE); - BOOL v = TRUE; - if(!(style & WS_CHILD)) DwmSetWindowAttribute(handle->gdi.hWnd, 20, &v, sizeof(v)); + if(!(style & WS_CHILD)) MwLLSetDarkTheme(handle, 1); } MwLLDispatch(handle, dark_theme, &t); From 4e4da8659e1d2bcfdb4a564956fa1581cf400fd6 Mon Sep 17 00:00:00 2001 From: Nishi Date: Thu, 16 Apr 2026 10:45:53 +0900 Subject: [PATCH 400/836] fix gdi opengl --- src/widget/opengl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widget/opengl.c b/src/widget/opengl.c index d75b358f7..50fb7479f 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -381,7 +381,7 @@ static void mwOpenGLMakeCurrentImpl(MwWidget handle) { #ifdef USE_GDI if(handle->lowlevel->common.type == MwLLBackendGDI) { gdiopengl_t* o = handle->internal; - void (*swap_interval_ext)(int) = NULL; + int (__stdcall *swap_interval_ext)(int) = NULL; o->wglMakeCurrent(o->dc, o->gl); From 712a640f9df1b19f33bde1a608954acdd6aaceff Mon Sep 17 00:00:00 2001 From: Nishi Date: Thu, 16 Apr 2026 10:47:24 +0900 Subject: [PATCH 401/836] probably it is better to do this way --- src/widget/opengl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 50fb7479f..6ffef725b 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -381,7 +381,7 @@ static void mwOpenGLMakeCurrentImpl(MwWidget handle) { #ifdef USE_GDI if(handle->lowlevel->common.type == MwLLBackendGDI) { gdiopengl_t* o = handle->internal; - int (__stdcall *swap_interval_ext)(int) = NULL; + BOOL (APIENTRY *swap_interval_ext)(int) = NULL; o->wglMakeCurrent(o->dc, o->gl); From 5315f4ec4df13f09b73fcd49ff3244385b211ee7 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 15 Apr 2026 20:21:20 -0700 Subject: [PATCH 402/836] classic mac os --- .gitignore | 6 ++ configure | 63 +++++++---- include/Mw/LowLevel/ClassicMacOS.h | 27 +++++ include/Mw/MachDep.h | 17 ++- pl/ostype/ClassicMacOS68k.pl | 7 ++ pl/ostype/ClassicMacOSPPC.pl | 7 ++ pl/rules.pl | 7 ++ src/abstract/directory.c | 12 +++ src/abstract/dynamic.c | 30 ++++++ src/abstract/time.c | 21 ++++ src/backend/classicmacos.c | 167 +++++++++++++++++++++++++++++ src/dialog/filechooser.c | 4 +- src/widget/box.c | 2 +- src/widget/button.c | 2 +- src/widget/checkbox.c | 2 +- src/widget/combobox.c | 2 +- src/widget/entry.c | 2 +- src/widget/frame.c | 2 +- src/widget/image.c | 2 +- src/widget/label.c | 2 +- src/widget/listbox.c | 2 +- src/widget/menu.c | 2 +- src/widget/numberentry.c | 2 +- src/widget/opengl.c | 2 +- src/widget/opengl_cocoa.m | 4 +- src/widget/progressbar.c | 2 +- src/widget/radiobox.c | 2 +- src/widget/scrollbar.c | 8 +- src/widget/separator.c | 2 +- src/widget/submenu.c | 2 +- src/widget/treeview.c | 2 +- src/widget/viewport.c | 2 +- src/widget/vulkan.c | 2 +- src/widget/window.c | 2 +- 34 files changed, 369 insertions(+), 51 deletions(-) create mode 100644 include/Mw/LowLevel/ClassicMacOS.h create mode 100644 pl/ostype/ClassicMacOS68k.pl create mode 100644 pl/ostype/ClassicMacOSPPC.pl create mode 100644 src/backend/classicmacos.c diff --git a/.gitignore b/.gitignore index 881607097..21058b8b1 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,9 @@ examples/*/*.exe compile_flags.txt .cache .DS_Store + +*.pef +*.dsk +*.bin +*.rsrc +*.finf diff --git a/configure b/configure index 5d9810863..5751b3d18 100755 --- a/configure +++ b/configure @@ -46,14 +46,6 @@ param_set("shared", 1); param_set("static", 1); param_set("examples", 1); - -if($target ne "Darwin") { - param_set("freetype2", 1); - param_set("stb-truetype", 0); -} else { - param_set("stb-truetype", 1); -} - my %features = ( "classic-theme" => "use classic theme", "stb-image" => "use stb_image, instead use libjpeg/libpng", @@ -77,13 +69,6 @@ my @features_keys = ( "1wayland", "1gnustep", ); -if($target eq "Linux") { - param_set("x11", 1); - if(!param_get("tiny")){ - param_set("wayland", 1); - } -} - foreach my $l (@ARGV) { if ($l =~ /^--with-([^=]+)=(.+)$/) { param_set($1, $2); @@ -146,6 +131,25 @@ foreach my $l (@ARGV) { } } +if($target ne "Darwin" and $target ne "ClassicMacOS68k" and $target ne "ClassicMacOSPPC") { + param_set("freetype2", 1); + param_set("stb-truetype", 0); +} else { + if($target ne "ClassicMacOS68k" and $target ne "ClassicMacOSPPC"){ + param_set("freetype2", 0); + param_set("stb-truetype", 1); + } else { + param_set("stb-truetype", 0); + } +} + +if($target eq "Linux") { + param_set("x11", 1); + if(!param_get("tiny")){ + param_set("wayland", 1); + } +} + if (-f "./pl/ostype/${target}.pl") { require("./pl/ostype/${target}.pl"); } @@ -256,7 +260,7 @@ foreach my $l (@library_targets) { } print(OUT "${l}: ${s}\n"); - print(OUT " \$(CC) $warn \$\(INCDIR) \$(CFLAGS\) -c -o ${l} ${s}\n"); + print(OUT " \$(CC) $warn \$\(INCDIR\) \$(CFLAGS\) -c -o ${l} ${s}\n"); } print(OUT "\n"); print(OUT "\n"); @@ -274,12 +278,18 @@ if (param_get("examples")) { $libs = $examples_libs{$l}; } - print(OUT -"${l}: ${s}${object_suffix} src/${library_prefix}Mw${library_suffix}\n" - ); + if (param_get("shared")) { + print(OUT + "${l}: ${s}${object_suffix} src/${library_prefix}Mw${library_suffix}\n" + ); + } else { + print(OUT + "${l}: ${s}${object_suffix} src/${library_prefix}Mw.a\n" + ); + } if (grep(/^cocoa$/, @backends)) { print(OUT -" \$(CC) -L./src \$\(LIBDIR) -o ${l} ${s}${object_suffix} -lMw ${math} ${libs}\n" +" \$(CC) -L./src -I\$\(INCDIR\) \$\(LIBDIR) -o ${l} ${s}${object_suffix} -lMw ${math} ${libs}\n" ); } else { @@ -287,10 +297,23 @@ if (param_get("examples")) { " \$(CC) -L src -Wl,-R./src \$\(LIBDIR) -o ${l} ${s}${object_suffix} -lMw ${math} ${libs}\n" ); } + + if($target eq "ClassicMacOS") { + print(OUT +" ".$ENV{RETRO68_TOOLCHAIN_PATH}."/bin/MakePEF ${l} -o ${s}.pef\n"); + print(OUT +" Rez -I ".$ENV{RETRO68_TOOLCHAIN_PATH}."/RIncludes ".$ENV{RETRO68_TOOLCHAIN_PATH}."/RIncludes/Retro68APPL.r -DCFRAG_NAME=\"example\" --data ${l}.pef --cc ${l}.dsk -t APPL\n" + ); + print(OUT "${s}${object_suffix}: ${s}.c\n"); print(OUT " \$(CC) -c \$\(INCDIR) -o ${s}${object_suffix} ${s}.c -lMw ${math}\n" ); + + + #print(OUT "Rez -I /path/to/Universal/RIncludes /path/to/libretro/RIncludes/Retro68APPL.r -DCFRAG_NAME="\"MyProgram\"" --data program.pef -o program.bin -t APPL"); + } + } } print(OUT "\n"); diff --git a/include/Mw/LowLevel/ClassicMacOS.h b/include/Mw/LowLevel/ClassicMacOS.h new file mode 100644 index 000000000..01654387f --- /dev/null +++ b/include/Mw/LowLevel/ClassicMacOS.h @@ -0,0 +1,27 @@ +/*! + * @file Mw/LowLevel/ClassicMacOS.h + * @brief ClassicMacOS Backend + * @warning This is used internally + */ +#ifndef __MW_LOWLEVEL_ClassicMacOS_H__ +#define __MW_LOWLEVEL_ClassicMacOS_H__ + +#include +#include +#include + +struct _MwLLClassicMacOS { + struct _MwLLCommon common; +}; + +struct _MwLLClassicMacOSColor { + struct _MwLLCommonColor common; +}; + +struct _MwLLClassicMacOSPixmap { + struct _MwLLCommonPixmap common; +}; + +MWDECL int MwLLClassicMacOSCallInit(void); + +#endif diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index 025fc29b4..10a1a04b6 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -37,17 +37,28 @@ #define GET_WHEEL_DELTA_WPARAM(x) ((short)HIWORD(x)) #endif #endif - +#elif defined(CLASSIC_MAC_OS) +#include +#include +#include +#include +#include +#include +#include +#include #else #include #include -#include #include -#include #include #include #endif +#ifdef __unix__ +#include +#include +#endif + #ifdef __APPLE__ #include #include diff --git a/pl/ostype/ClassicMacOS68k.pl b/pl/ostype/ClassicMacOS68k.pl new file mode 100644 index 000000000..c9ceba8c6 --- /dev/null +++ b/pl/ostype/ClassicMacOS68k.pl @@ -0,0 +1,7 @@ +use_backend("classicmacos"); + +$cc = $ENV{RETRO68_TOOLCHAIN_PATH}."/bin/m68k-apple-macos-gcc"; +$ar = $ENV{RETRO68_TOOLCHAIN_PATH}."/bin/m68k-apple-macos-ar"; +add_cflags("-DCLASSIC_MAC_OS"); + +1; diff --git a/pl/ostype/ClassicMacOSPPC.pl b/pl/ostype/ClassicMacOSPPC.pl new file mode 100644 index 000000000..b2626d968 --- /dev/null +++ b/pl/ostype/ClassicMacOSPPC.pl @@ -0,0 +1,7 @@ +use_backend("classicmacos"); + +$cc = $ENV{RETRO68_TOOLCHAIN_PATH}."/bin/powerpc-apple-macos-gcc"; +$ar = $ENV{RETRO68_TOOLCHAIN_PATH}."/bin/powerpc-apple-macos-ar"; +add_cflags("-DCLASSIC_MAC_OS"); + +1; diff --git a/pl/rules.pl b/pl/rules.pl index 2b222249b..4d68cb94d 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -30,6 +30,13 @@ if (grep(/^gdi$/, @backends)) { $gl_libs = "-lopengl32 -lglu32"; } +if (grep(/^classicmacos$/, @backends)) { + #add_cflags("-DCLASSIC_MAC_OS"); + new_object("src/backend/classicmacos.c"); + + $gl_libs = ""; +} + if (grep(/^wayland$/, @backends)) { add_cflags("-DUSE_WAYLAND"); new_object("src/backend/wayland.c"); diff --git a/src/abstract/directory.c b/src/abstract/directory.c index aa516cf44..ac5a382d1 100644 --- a/src/abstract/directory.c +++ b/src/abstract/directory.c @@ -6,6 +6,10 @@ typedef struct dir { WIN32_FIND_DATA ffd; int next; } dir_t; +#elif defined(CLASSIC_MAC_OS) +typedef struct dir { + int dummy; +} dir_t; #else typedef struct dir { DIR* dir; @@ -31,6 +35,8 @@ void* MwDirectoryOpen(const char* path) { } free(p); dir->next = 1; +#elif defined(CLASSIC_MAC_OS) +/* todo */ #else if((dir->dir = opendir(path)) == NULL) { free(dir); @@ -47,6 +53,8 @@ void MwDirectoryClose(void* handle) { dir_t* dir = handle; #ifdef _WIN32 FindClose(dir->hFind); +#elif defined(CLASSIC_MAC_OS) +/* todo */ #else closedir(dir->dir); free(dir->base); @@ -80,6 +88,8 @@ MwDirectoryEntry* MwDirectoryRead(void* handle) { entry->mtime = l->QuadPart / 10000000 - 11644473600; dir->next = FindNextFile(dir->hFind, &dir->ffd); +#elif defined(CLASSIC_MAC_OS) +/* todo */ #else struct dirent* d; struct stat s; @@ -123,6 +133,8 @@ char* MwDirectoryCurrent(void) { GetCurrentDirectory(len, out); return out; +#elif CLASSIC_MAC_OS + return ""; #else return getcwd(NULL, 0); #endif diff --git a/src/abstract/dynamic.c b/src/abstract/dynamic.c index 79cad83fc..d9558af6d 100644 --- a/src/abstract/dynamic.c +++ b/src/abstract/dynamic.c @@ -12,6 +12,36 @@ void* MwDynamicSymbol(void* handle, const char* symbol) { void MwDynamicClose(void* handle) { FreeLibrary(handle); } +#elif defined(CLASSIC_MAC_OS) +void* MwDynamicOpen(const char* path) { + CFragConnectionID connID; + Ptr* addr; + unsigned char err[255]; + + if(GetSharedLibrary((ConstStr63Param)path, kPowerPCCFragArch, kPrivateCFragCopy, + &connID, addr, err)) { + printf("Error getting %s: %s\n", path, err); + return NULL; + }; + return connID; +} + +void* MwDynamicSymbol(void* handle, const char* symbol) { + CFragConnectionID connID = (CFragConnectionID)handle; + Ptr* symAddr; + CFragSymbolClass* symClass; + OSErr err; + if((err = FindSymbol(connID, (ConstStr63Param)symbol, symAddr, symClass))) { + printf("Error getting %s: %d\n", symbol, err); + return NULL; + }; + return symAddr; +} + +void MwDynamicClose(void* handle) { + CFragConnectionID connID = (CFragConnectionID)handle; + CloseConnection(&connID); +} #elif defined(__unix__) || defined(__APPLE__) void* MwDynamicOpen(const char* path) { return dlopen(path, RTLD_LOCAL | RTLD_LAZY); diff --git a/src/abstract/time.c b/src/abstract/time.c index 1050c46d3..52d998689 100644 --- a/src/abstract/time.c +++ b/src/abstract/time.c @@ -32,6 +32,27 @@ void MwTimeSleep(int ms) { nanosleep(&ts, NULL); } +#elif defined(CLASSIC_MAC_OS) +static TMTask tm; +static int timer; +void timerUpdateFunc(void) { + timer += 1; + PrimeTime((QElemPtr)&tm, 1); +}; + +long MwTimeGetTick(void) { + UnsignedWide h; + Microseconds(&h); + return *(long*)&h; +} +void MwTimeSleep(int ms) { + tm.tmAddr = NewTimerProc(timerUpdateFunc); + tm.tmWakeUp = 0; + tm.tmReserved = 0; + + InsTime((QElemPtr)&tm); + PrimeTime((QElemPtr)&tm, 1); +} #elif defined(__unix__) long MwTimeGetTick(void) { struct timespec ts; diff --git a/src/backend/classicmacos.c b/src/backend/classicmacos.c new file mode 100644 index 000000000..01a9d9735 --- /dev/null +++ b/src/backend/classicmacos.c @@ -0,0 +1,167 @@ +#include + +#include "../../external/stb_ds.h" + +static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { + MwLL r; + + return r; +} + +static void MwLLDestroyImpl(MwLL handle) { + MwLLDestroyCommon(handle); + + free(handle); +} + +static void MwLLBeginDrawImpl(MwLL handle) { + (void)handle; +} + +static void MwLLEndDrawImpl(MwLL handle) { + (void)handle; +} + +static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { + int i; +} + +static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { +} + +static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { + MwLLColor c = malloc(sizeof(*c)); + MwLLColorUpdate(handle, c, r, g, b); + return c; +} + +static void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { + c->common.red = r; + c->common.green = g; + c->common.blue = b; +} + +static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h) { + *x = 0; + *y = 0; + *w = 0; + *h = 0; +} + +static void MwLLSetXYImpl(MwLL handle, int x, int y) { +} + +static void MwLLSetWHImpl(MwLL handle, int w, int h) { +} + +static void MwLLFreeColorImpl(MwLLColor color) { + free(color); +} + +static int MwLLPendingImpl(MwLL handle) { + + return 0; +} + +static void MwLLNextEventImpl(MwLL handle) { +} + +static void MwLLSetTitleImpl(MwLL handle, const char* title) { +} + +static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) { + MwLLPixmap r = malloc(sizeof(*r)); + + r->common.raw = malloc(4 * width * height); + memcpy(r->common.raw, data, 4 * width * height); + + MwLLPixmapUpdate(r); + return r; +} + +static void MwLLPixmapUpdateImpl(MwLLPixmap r) { +} + +static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { +} + +static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { +} + +static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { +} + +static void MwLLForceRenderImpl(MwLL handle) { +} + +static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { +} + +static void MwLLDetachImpl(MwLL handle, MwPoint* point) { +} + +static void MwLLShowImpl(MwLL handle, int show) { +} + +static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { +} + +static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) { +} + +static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { +} + +static void MwLLFocusImpl(MwLL handle) { +} + +static void MwLLGrabPointerImpl(MwLL handle, int toggle) { +} + +static void MwLLSetClipboardImpl(MwLL handle, const char* text) { + /* TODO */ + + (void)handle; + (void)text; +} + +static void MwLLGetClipboardImpl(MwLL handle) { +} + +static void MwLLMakeToolWindowImpl(MwLL handle) { +} + +static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { +} + +static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { +} + +static void MwLLBeginStateChangeImpl(MwLL handle) { + MwLLShow(handle, 0); +} + +static void MwLLEndStateChangeImpl(MwLL handle) { + MwLLShow(handle, 1); +} + +static void MwLLSetDarkThemeImpl(MwLL handle, int toggle) { + (void)handle; + (void)toggle; +} + +static int MwLLClassicMacOSCallInitImpl(void) { + InitGraf(&qd.thePort); + InitFonts(); + FlushEvents(everyEvent, 0); + InitWindows(); + InitMenus(); + TEInit(); + InitDialogs(0L); + InitCursor(); + + return 0; +} + +#include "call.c" +CALL(ClassicMacOS); diff --git a/src/dialog/filechooser.c b/src/dialog/filechooser.c index cd23faaa4..d5faa4bad 100644 --- a/src/dialog/filechooser.c +++ b/src/dialog/filechooser.c @@ -53,7 +53,7 @@ static void destroy(MwWidget handle) { MwDestroyWidget(handle); } -static void cancel(MwWidget handle, void* user, void* call) { +static void filecancel(MwWidget handle, void* user, void* call) { (void)user; (void)call; @@ -147,7 +147,7 @@ static void nav_activate(MwWidget handle, void* user, void* call) { (void)user; if(strcmp(e, "Home") == 0) { -#ifdef _WIN32 +#if defined(_WIN32) || defined(CLASSIC_MAC_OS) #else struct passwd* p = getpwuid(getuid()); diff --git a/src/widget/box.c b/src/widget/box.c index a87000f0e..e96c00874 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -2,7 +2,7 @@ #include "../../external/stb_ds.h" -static int create(MwWidget handle) { +static int wcreate(MwWidget handle) { MwBox b = malloc(sizeof(*b)); memset(b, 0, sizeof(*b)); diff --git a/src/widget/button.c b/src/widget/button.c index c5f3a4b9f..6653b54ed 100644 --- a/src/widget/button.c +++ b/src/widget/button.c @@ -2,7 +2,7 @@ #include "../../external/stb_ds.h" -static int create(MwWidget handle) { +static int wcreate(MwWidget handle) { MwSetDefault(handle); MwSetInteger(handle, MwNflat, 0); diff --git a/src/widget/checkbox.c b/src/widget/checkbox.c index 1ccccd416..56b8f11ae 100644 --- a/src/widget/checkbox.c +++ b/src/widget/checkbox.c @@ -1,6 +1,6 @@ #include -static int create(MwWidget handle) { +static int wcreate(MwWidget handle) { MwSetDefault(handle); MwSetInteger(handle, MwNchecked, 0); diff --git a/src/widget/combobox.c b/src/widget/combobox.c index 22a90060f..988bb24aa 100644 --- a/src/widget/combobox.c +++ b/src/widget/combobox.c @@ -2,7 +2,7 @@ #include "../../external/stb_ds.h" -static int create(MwWidget handle) { +static int wcreate(MwWidget handle) { MwComboBox cb = malloc(sizeof(*cb)); cb->list = NULL; diff --git a/src/widget/entry.c b/src/widget/entry.c index bd7dbe1b5..eca5e5ce4 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -1,6 +1,6 @@ #include -static int create(MwWidget handle) { +static int wcreate(MwWidget handle) { MwEntry t = malloc(sizeof(*t)); t->cursor = 0; diff --git a/src/widget/frame.c b/src/widget/frame.c index 117b0f8b9..6f9d88129 100644 --- a/src/widget/frame.c +++ b/src/widget/frame.c @@ -1,6 +1,6 @@ #include -static int create(MwWidget handle) { +static int wcreate(MwWidget handle) { MwSetDefault(handle); MwSetInteger(handle, MwNhasBorder, 0); diff --git a/src/widget/image.c b/src/widget/image.c index 74ee0bfd6..90f3cbe7a 100644 --- a/src/widget/image.c +++ b/src/widget/image.c @@ -1,6 +1,6 @@ #include -static int create(MwWidget handle) { +static int wcreate(MwWidget handle) { MwSetDefault(handle); MwSetInteger(handle, MwNhasBorder, 0); diff --git a/src/widget/label.c b/src/widget/label.c index d29977caf..3c88eb921 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -4,7 +4,7 @@ #define Spacing 1 -static int create(MwWidget handle) { +static int wcreate(MwWidget handle) { MwLabel lab = malloc(sizeof(*lab)); lab->segment = NULL; diff --git a/src/widget/listbox.c b/src/widget/listbox.c index 9960e1d67..7f4ef0b7d 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -347,7 +347,7 @@ static void resize(MwWidget handle) { NULL); } -static int create(MwWidget handle) { +static int wcreate(MwWidget handle) { MwListBox lb = malloc(sizeof(*lb)); memset(lb, 0, sizeof(*lb)); diff --git a/src/widget/menu.c b/src/widget/menu.c index 0808f691d..b36527885 100644 --- a/src/widget/menu.c +++ b/src/widget/menu.c @@ -18,7 +18,7 @@ static void set_xywh(MwWidget handle) { NULL); } -static int create(MwWidget handle) { +static int wcreate(MwWidget handle) { MwMenu m = malloc(sizeof(*m)); m->name = NULL; diff --git a/src/widget/numberentry.c b/src/widget/numberentry.c index 7c317d36b..96860f84e 100644 --- a/src/widget/numberentry.c +++ b/src/widget/numberentry.c @@ -1,6 +1,6 @@ #include -static int create(MwWidget handle) { +static int wcreate(MwWidget handle) { int st; MwEntry e; diff --git a/src/widget/opengl.c b/src/widget/opengl.c index d75b358f7..582db0cbd 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -101,7 +101,7 @@ typedef struct waylandopengl { } waylandopengl_t; #endif -static int create(MwWidget handle) { +static int wcreate(MwWidget handle) { void* r = NULL; MwWidget w = handle; diff --git a/src/widget/opengl_cocoa.m b/src/widget/opengl_cocoa.m index 2397a8473..27c21588a 100644 --- a/src/widget/opengl_cocoa.m +++ b/src/widget/opengl_cocoa.m @@ -20,7 +20,7 @@ @end -static int create(MwWidget handle) { +static int wcreate(MwWidget handle) { void* r = NULL; MwWidget w = handle; @@ -128,4 +128,4 @@ MwClassRec MwOpenGLClassRec = {create, /* create */ NULL, /* children_prop_change */ NULL, /* clipboard */ NULL, NULL, NULL, NULL}; -MwClass MwOpenGLClass = &MwOpenGLClassRec; \ No newline at end of file +MwClass MwOpenGLClass = &MwOpenGLClassRec; diff --git a/src/widget/progressbar.c b/src/widget/progressbar.c index d85a8ddaf..2a032b09d 100644 --- a/src/widget/progressbar.c +++ b/src/widget/progressbar.c @@ -1,6 +1,6 @@ #include -static int create(MwWidget handle) { +static int wcreate(MwWidget handle) { MwSetDefault(handle); MwVaApply(handle, MwNminValue, 0, diff --git a/src/widget/radiobox.c b/src/widget/radiobox.c index 3229faad3..2416b71d9 100644 --- a/src/widget/radiobox.c +++ b/src/widget/radiobox.c @@ -2,7 +2,7 @@ #include "../../external/stb_ds.h" -static int create(MwWidget handle) { +static int wcreate(MwWidget handle) { MwSetDefault(handle); MwSetInteger(handle, MwNchecked, 0); diff --git a/src/widget/scrollbar.c b/src/widget/scrollbar.c index bb75939c1..e11ba6ac4 100644 --- a/src/widget/scrollbar.c +++ b/src/widget/scrollbar.c @@ -1,6 +1,6 @@ #include -static int create(MwWidget handle) { +static int wcreate(MwWidget handle) { MwScrollBar scr = malloc(sizeof(*scr)); handle->internal = scr; @@ -58,9 +58,9 @@ static void draw(MwWidget handle) { MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); MwLLColor dark = MwLightenColor(handle, base, -64, -64, -64); MwScrollBar scr = handle->internal; - int or ; - int uy, dy, ux, dx; - MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); + int or; + int uy, dy, ux, dx; + MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); r.x = 0; r.y = 0; diff --git a/src/widget/separator.c b/src/widget/separator.c index 8fcfc5b71..d7d6aae20 100644 --- a/src/widget/separator.c +++ b/src/widget/separator.c @@ -1,6 +1,6 @@ #include -static int create(MwWidget handle) { +static int wcreate(MwWidget handle) { MwSetDefault(handle); MwSetInteger(handle, MwNorientation, MwHORIZONTAL); diff --git a/src/widget/submenu.c b/src/widget/submenu.c index 4990fd211..a71d65b08 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -2,7 +2,7 @@ #include "../../external/stb_ds.h" -static int create(MwWidget handle) { +static int wcreate(MwWidget handle) { MwLLBeginStateChange(handle->lowlevel); MwSetDefault(handle); diff --git a/src/widget/treeview.c b/src/widget/treeview.c index acc35bf69..bd3067c4c 100644 --- a/src/widget/treeview.c +++ b/src/widget/treeview.c @@ -297,7 +297,7 @@ static void resize(MwWidget handle) { NULL); } -static int create(MwWidget handle) { +static int wcreate(MwWidget handle) { MwTreeView tv = malloc(sizeof(*tv)); memset(tv, 0, sizeof(*tv)); diff --git a/src/widget/viewport.c b/src/widget/viewport.c index de71af790..38ef89948 100644 --- a/src/widget/viewport.c +++ b/src/widget/viewport.c @@ -74,7 +74,7 @@ static void resize(MwWidget handle) { NULL); } -static int create(MwWidget handle) { +static int wcreate(MwWidget handle) { MwViewport vp = malloc(sizeof(*vp)); memset(vp, 0, sizeof(*vp)); diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index 8d4aa3daa..ab73fcafc 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -116,7 +116,7 @@ static int vulkan_instance_setup(MwWidget handle, vulkan_t* o); static int vulkan_surface_setup(MwWidget handle, vulkan_t* o); static int vulkan_devices_setup(MwWidget handle, vulkan_t* o); -static int create(MwWidget handle) { +static int wcreate(MwWidget handle) { vulkan_t* o = malloc(sizeof(*o)); int err; diff --git a/src/widget/window.c b/src/widget/window.c index 979e073c8..b4aaa8d22 100644 --- a/src/widget/window.c +++ b/src/widget/window.c @@ -1,6 +1,6 @@ #include -static int create(MwWidget handle) { +static int wcreate(MwWidget handle) { MwSetDefault(handle); MwSetInteger(handle, MwNhasBorder, 0); From 47fe57b31ccb2629c28e7b04ac673cef17520435 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 15 Apr 2026 20:25:08 -0700 Subject: [PATCH 403/836] ok --- configure | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 5751b3d18..1f3ee9e53 100755 --- a/configure +++ b/configure @@ -260,7 +260,7 @@ foreach my $l (@library_targets) { } print(OUT "${l}: ${s}\n"); - print(OUT " \$(CC) $warn \$\(INCDIR\) \$(CFLAGS\) -c -o ${l} ${s}\n"); + print(OUT " \$(CC) $warn \$\(INCDIR) \$(CFLAGS\) -c -o ${l} ${s}\n"); } print(OUT "\n"); print(OUT "\n"); @@ -289,7 +289,7 @@ if (param_get("examples")) { } if (grep(/^cocoa$/, @backends)) { print(OUT -" \$(CC) -L./src -I\$\(INCDIR\) \$\(LIBDIR) -o ${l} ${s}${object_suffix} -lMw ${math} ${libs}\n" +" \$(CC) -L./src -I\$\(INCDIR) \$\(LIBDIR) -o ${l} ${s}${object_suffix} -lMw ${math} ${libs}\n" ); } else { From f8a94b73805c6a93aab7d1f8e9a6ad2f47de805b Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 15 Apr 2026 21:41:16 -0700 Subject: [PATCH 404/836] cmake --- .gitignore | 1 + CMakeLists.txt | 252 ++++++++++++++++------------- configure | 19 +-- examples/basic/CMakeLists.txt | 38 +++-- include/Mw/LowLevel.h | 6 + include/Mw/LowLevel/ClassicMacOS.h | 4 + pl/ostype/ClassicMacOS.pl | 10 ++ pl/ostype/ClassicMacOS68k.pl | 7 - pl/ostype/ClassicMacOSPPC.pl | 7 - src/backend/classicmacos.c | 12 +- src/dialog/filechooser.c | 2 +- src/widget/box.c | 2 +- src/widget/button.c | 2 +- src/widget/checkbox.c | 2 +- src/widget/combobox.c | 2 +- src/widget/entry.c | 2 +- src/widget/frame.c | 2 +- src/widget/image.c | 2 +- src/widget/label.c | 2 +- src/widget/listbox.c | 2 +- src/widget/menu.c | 2 +- src/widget/numberentry.c | 2 +- src/widget/progressbar.c | 2 +- src/widget/radiobox.c | 2 +- src/widget/scrollbar.c | 2 +- src/widget/separator.c | 2 +- src/widget/submenu.c | 2 +- src/widget/treeview.c | 2 +- src/widget/viewport.c | 2 +- src/widget/vulkan.c | 2 +- src/widget/window.c | 2 +- 31 files changed, 219 insertions(+), 179 deletions(-) create mode 100644 pl/ostype/ClassicMacOS.pl delete mode 100644 pl/ostype/ClassicMacOS68k.pl delete mode 100644 pl/ostype/ClassicMacOSPPC.pl diff --git a/.gitignore b/.gitignore index 21058b8b1..8535b6514 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,4 @@ compile_flags.txt *.bin *.rsrc *.finf +*.gdb diff --git a/CMakeLists.txt b/CMakeLists.txt index 0cc795308..835ecdd26 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,24 +9,34 @@ include(GNUInstallDirs) set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}") set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) -option(MW_TRY_OPENGL "Try to compile OpenGL widget or not" ON) -option(MW_TRY_VULKAN "Try to compile Vulkan widget or not" ON) + option(MW_CLASSIC_THEME "Use classic theme" OFF) option(MW_BUILD_EXAMPLES "Build examples" OFF) option(MW_USE_STB_IMAGE "Use stb_image" ON) option(MW_USE_STB_TRUETYPE "Use stb_truetype" OFF) -option(MW_BUILD_SHARED "Build a shared library" ON) -option(MW_BUILD_STATIC "Build a static library" OFF) + +if(${CMAKE_SYSTEM_NAME} MATCHES Retro) + option(MW_BUILD_SHARED "Build a shared library" OFF) + option(MW_BUILD_STATIC "Build a static library" ON) + option(MW_TRY_OPENGL "Try to compile OpenGL widget or not" OFF) + option(MW_TRY_VULKAN "Try to compile Vulkan widget or not" OFF) +else() + option(MW_BUILD_SHARED "Build a shared library" ON) + option(MW_BUILD_STATIC "Build a static library" OFF) + option(MW_TRY_OPENGL "Try to compile OpenGL widget or not" ON) + option(MW_TRY_VULKAN "Try to compile Vulkan widget or not" ON) +endif() + option(MW_INSTALL_HEADERS "Install headers" ON) -if(${CMAKE_SYSTEM_NAME} STREQUAL Darwin) - option(MW_USE_FREETYPE2 "Use FreeType 2" OFF) +if(${CMAKE_SYSTEM_NAME} STREQUAL Darwin OR ${CMAKE_SYSTEM_NAME} MATCHES Retro) + option(MW_USE_FREETYPE2 "Use FreeType 2" OFF) else() - option(MW_USE_FREETYPE2 "Use FreeType 2" ON) + option(MW_USE_FREETYPE2 "Use FreeType 2" ON) endif() if(${CMAKE_SYSTEM_NAME} STREQUAL Linux) - option(MW_USE_WAYLAND "Enable Wayland backend" ON) + option(MW_USE_WAYLAND "Enable Wayland backend" ON) endif() file( @@ -39,83 +49,83 @@ list(REMOVE_ITEM SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/opengl.c") list(REMOVE_ITEM SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/vulkan.c") if(NOT MW_USE_STB_IMAGE) - list(REMOVE_ITEM SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/external/stb_image.c") + list(REMOVE_ITEM SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/external/stb_image.c") endif() if(NOT MW_USE_STB_TRUETYPE) - list(REMOVE_ITEM SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/external/stb_truetype.c") + list(REMOVE_ITEM SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/external/stb_truetype.c") endif() if(CMAKE_SYSTEM_NAME STREQUAL "NetBSD") - list(APPEND CMAKE_REQUIRED_INCLUDES "/usr/X11R7/include") - list(APPEND CMAKE_REQUIRED_INCLUDES "/usr/pkg/include") + list(APPEND CMAKE_REQUIRED_INCLUDES "/usr/X11R7/include") + list(APPEND CMAKE_REQUIRED_INCLUDES "/usr/pkg/include") endif() if(MW_TRY_OPENGL) - find_package(OpenGL) - if(OpenGL_FOUND) - set(MW_BUILD_OPENGL ON) - list(APPEND SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/opengl.c") - if(APPLE) - list(APPEND SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/opengl_cocoa.m") - endif() - message(STATUS "OpenGL widget has been enabled") - else() - message(WARNING "OpenGL widget has been disabled") + find_package(OpenGL) + if(OpenGL_FOUND) + set(MW_BUILD_OPENGL ON) + list(APPEND SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/opengl.c") + if(APPLE) + list(APPEND SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/opengl_cocoa.m") endif() + message(STATUS "OpenGL widget has been enabled") + else() + message(WARNING "OpenGL widget has been disabled") + endif() endif() if(MW_TRY_VULKAN) - check_include_files(vulkan/vulkan.h HAVE_VULKAN_VULKAN_H) - if(HAVE_VULKAN_VULKAN_H) - set(MW_BUILD_VULKAN ON) - list(APPEND SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/vulkan.c") - target_compile_definitions( + check_include_files(vulkan/vulkan.h HAVE_VULKAN_VULKAN_H) + if(HAVE_VULKAN_VULKAN_H) + set(MW_BUILD_VULKAN ON) + list(APPEND SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/vulkan.c") + target_compile_definitions( Mw PRIVATE MW_VULKAN ) - message(STATUS "Vulkan widget has been enabled") - else() - message(WARNING "Vulkan widget has been disabled") - endif() + message(STATUS "Vulkan widget has been enabled") + else() + message(WARNING "Vulkan widget has been disabled") + endif() endif() if(MW_BUILD_STATIC) - message(STATUS "Building Milsko as a static library") - add_library( + message(STATUS "Building Milsko as a static library") + add_library( Mw ${SOURCES} ) elseif(MW_BUILD_SHARED) - message(STATUS "Building Milsko as a shared library") - add_library( + message(STATUS "Building Milsko as a shared library") + add_library( Mw SHARED ${SOURCES} ) else() - message(ERROR "Must either build a shared library or a static library") + message(ERROR "Must either build a shared library or a static library") endif() if(MW_USE_STB_IMAGE) - target_compile_definitions( + target_compile_definitions( Mw PRIVATE USE_STB_IMAGE ) else() - file( + file( GLOB IMAGE_SOURCES external/libjpeg/src/*.c external/libpng/src/*.c ) - target_sources( + target_sources( Mw PRIVATE ${MW_IMAGE_SOURCES} ) - target_include_directories( + target_include_directories( Mw PRIVATE external/libjpeg/include external/libpng/include @@ -123,7 +133,7 @@ else() endif() if(MW_USE_STB_TRUETYPE) - target_compile_definitions( + target_compile_definitions( Mw PRIVATE USE_STB_TRUETYPE @@ -131,22 +141,22 @@ if(MW_USE_STB_TRUETYPE) endif() if(MW_USE_FREETYPE2) - target_compile_definitions( + target_compile_definitions( Mw PRIVATE USE_FREETYPE2 ) - find_package(PkgConfig) - pkg_check_modules(FT2 REQUIRED freetype2) - list(APPEND INCLUDE_DIRS ${FT2_INCLUDE_DIRS}) - list(APPEND LIBRARY_DIRS ${FT2_LIBRARY_DIRS}) - list(APPEND LIBRARIES ${FT2_LIBRARIES}) + find_package(PkgConfig) + pkg_check_modules(FT2 REQUIRED freetype2) + list(APPEND INCLUDE_DIRS ${FT2_INCLUDE_DIRS}) + list(APPEND LIBRARY_DIRS ${FT2_LIBRARY_DIRS}) + list(APPEND LIBRARIES ${FT2_LIBRARIES}) endif() if(MW_USE_WAYLAND) - function(scan_wayland_protocol_core) - execute_process( + function(scan_wayland_protocol_core) + execute_process( COMMAND wayland-scanner private-code /usr/share/wayland/wayland.xml ${CMAKE_CURRENT_SOURCE_DIR}/src/backend/wayland-core-protocol.c OUTPUT_VARIABLE WAYLAND_SCANNER_OUTPUT ERROR_VARIABLE WAYLAND_SCANNER_ERROR @@ -154,12 +164,12 @@ if(MW_USE_WAYLAND) ECHO_ERROR_VARIABLE COMMAND_ECHO STDOUT ) - target_sources( + target_sources( Mw PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src/backend/wayland-core-protocol.c ) - execute_process( + execute_process( COMMAND wayland-scanner client-header /usr/share/wayland/wayland.xml ${CMAKE_CURRENT_SOURCE_DIR}/include/Mw/LowLevel/Wayland/wayland-core-protocol.h WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE WAYLAND_SCANNER_OUTPUT @@ -168,11 +178,11 @@ if(MW_USE_WAYLAND) ECHO_ERROR_VARIABLE COMMAND_ECHO STDOUT ) - endfunction() + endfunction() - function(scan_wayland_protocol tier proto ver) - SET(proto_c ${CMAKE_CURRENT_SOURCE_DIR}/src/backend/wayland-${proto}-protocol.c) - execute_process( + function(scan_wayland_protocol tier proto ver) + SET(proto_c ${CMAKE_CURRENT_SOURCE_DIR}/src/backend/wayland-${proto}-protocol.c) + execute_process( COMMAND wayland-scanner private-code /usr/share/wayland-protocols/${tier}/${proto}/${proto}${ver}.xml ${proto_c} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE WAYLAND_SCANNER_OUTPUT @@ -181,12 +191,12 @@ if(MW_USE_WAYLAND) ECHO_ERROR_VARIABLE COMMAND_ECHO STDOUT ) - target_sources( + target_sources( Mw PRIVATE ${proto_c} ) - execute_process( + execute_process( COMMAND wayland-scanner client-header /usr/share/wayland-protocols/${tier}/${proto}/${proto}${ver}.xml ${CMAKE_CURRENT_SOURCE_DIR}/include/Mw/LowLevel/Wayland/${proto}-client-protocol.h WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE WAYLAND_SCANNER_OUTPUT @@ -195,49 +205,49 @@ if(MW_USE_WAYLAND) ECHO_ERROR_VARIABLE COMMAND_ECHO STDOUT ) - endfunction() + endfunction() - check_include_files(wayland-client.h HAVE_WL_H) - check_include_files(xkbcommon/xkbcommon.h HAVE_XKBCOMMON_H) - check_include_files(cairo/cairo.h HAVE_CAIRO_H) - if(HAVE_WL_H) - if(HAVE_XKBCOMMON_H) - if(HAVE_CAIRO_H) - scan_wayland_protocol_core() - scan_wayland_protocol("stable" "xdg-shell" "") - scan_wayland_protocol("stable" "viewporter" "") - scan_wayland_protocol("stable" "tablet" "-v2") - scan_wayland_protocol("staging" "xdg-toplevel-icon" "-v1") - scan_wayland_protocol("staging" "cursor-shape" "-v1") - scan_wayland_protocol("unstable" "xdg-decoration" "-unstable-v1") - scan_wayland_protocol("unstable" "primary-selection" "-unstable-v1") - scan_wayland_protocol("unstable" "pointer-constraints" "-unstable-v1") - scan_wayland_protocol("unstable" "relative-pointer" "-unstable-v1") + check_include_files(wayland-client.h HAVE_WL_H) + check_include_files(xkbcommon/xkbcommon.h HAVE_XKBCOMMON_H) + check_include_files(cairo/cairo.h HAVE_CAIRO_H) + if(HAVE_WL_H) + if(HAVE_XKBCOMMON_H) + if(HAVE_CAIRO_H) + scan_wayland_protocol_core() + scan_wayland_protocol("stable" "xdg-shell" "") + scan_wayland_protocol("stable" "viewporter" "") + scan_wayland_protocol("stable" "tablet" "-v2") + scan_wayland_protocol("staging" "xdg-toplevel-icon" "-v1") + scan_wayland_protocol("staging" "cursor-shape" "-v1") + scan_wayland_protocol("unstable" "xdg-decoration" "-unstable-v1") + scan_wayland_protocol("unstable" "primary-selection" "-unstable-v1") + scan_wayland_protocol("unstable" "pointer-constraints" "-unstable-v1") + scan_wayland_protocol("unstable" "relative-pointer" "-unstable-v1") - target_sources( + target_sources( Mw PRIVATE src/backend/wayland.c ) - target_compile_definitions( + target_compile_definitions( Mw PRIVATE USE_WAYLAND ) - message(STATUS "Wayland backend has been enabled") - else() - message(WARNING "Wayland backend has been disabled") - endif() - else() - message(WARNING "Wayland backend has been disabled") - endif() - else() + message(STATUS "Wayland backend has been enabled") + else() message(WARNING "Wayland backend has been disabled") + endif() + else() + message(WARNING "Wayland backend has been disabled") endif() + else() + message(WARNING "Wayland backend has been disabled") + endif() endif() if(APPLE AND MW_BUILD_OPENGL) - target_compile_definitions( + target_compile_definitions( Mw PRIVATE GL_SILENCE_DEPRECATION @@ -257,7 +267,7 @@ target_include_directories( ) if(MW_CLASSIC_THEME) - target_compile_definitions( + target_compile_definitions( Mw PRIVATE USE_CLASSIC_THEME @@ -265,60 +275,78 @@ if(MW_CLASSIC_THEME) endif() if(CMAKE_SYSTEM_NAME STREQUAL "Windows") - target_sources( + target_sources( Mw PRIVATE src/backend/gdi.c ) - target_compile_definitions( + target_compile_definitions( Mw PRIVATE USE_GDI ) - list(APPEND LIBRARIES gdi32) - target_link_options( + list(APPEND LIBRARIES gdi32) + target_link_options( Mw PRIVATE -static-libgcc ) elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - target_sources( + target_sources( Mw PRIVATE src/backend/cocoa.m ) - target_compile_definitions( + target_compile_definitions( Mw PRIVATE USE_COCOA ) - list(APPEND LIBRARIES objc) - target_link_options( + list(APPEND LIBRARIES objc) + target_link_options( Mw PRIVATE -framework Cocoa ) -else() - find_package(PkgConfig) - pkg_check_modules(X11 REQUIRED x11) - pkg_check_modules(XRENDER REQUIRED xrender) +elseif(CMAKE_SYSTEM_NAME MATCHES "Retro") + target_sources( + Mw + PRIVATE + src/backend/classicmacos.c + ) + if(PLATFORM MATCHES retroppc) + endif() + if(PLATFORM MATCHES retroppc) + set_target_properties(Mw PROPERTIES COMPILE_FLAGS "-ffunction-sections -mcpu=601 -Os -Wall -Wextra -Wno-unused-parameter") + set_target_properties(Mw PROPERTIES LINK_FLAGS "-Wl,-gc-sections") + endif() - target_sources( + target_compile_definitions( + Mw + PRIVATE + CLASSIC_MAC_OS + ) +else() + find_package(PkgConfig) + pkg_check_modules(X11 REQUIRED x11) + pkg_check_modules(XRENDER REQUIRED xrender) + + target_sources( Mw PRIVATE src/backend/x11.c ) - target_compile_definitions( + target_compile_definitions( Mw PRIVATE USE_X11 ) - list(APPEND INCLUDE_DIRS ${X11_INCLUDE_DIRS} ${XRENDER_INCLUDE_DIRS}) - list(APPEND LIBRARY_DIRS ${X11_LIBRARY_DIRS} ${XRENDER_LIBRARY_DIRS}) - list(APPEND LIBRARIES ${X11_LIBRARIES} ${XRENDER_LIBRARIES} m) - if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - list(APPEND LIBRARIES dl) - endif() + list(APPEND INCLUDE_DIRS ${X11_INCLUDE_DIRS} ${XRENDER_INCLUDE_DIRS}) + list(APPEND LIBRARY_DIRS ${X11_LIBRARY_DIRS} ${XRENDER_LIBRARY_DIRS}) + list(APPEND LIBRARIES ${X11_LIBRARIES} ${XRENDER_LIBRARIES} m) + if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + list(APPEND LIBRARIES dl) + endif() endif() target_include_directories( @@ -338,14 +366,14 @@ target_link_libraries( ) if(MW_BUILD_VULKAN) - check_include_files(vulkan/vk_enum_string_helper.h HAS_VK_ENUM_STRING_HELPER) - if(HAS_VK_ENUM_STRING_HELPER) - target_compile_definitions( + check_include_files(vulkan/vk_enum_string_helper.h HAS_VK_ENUM_STRING_HELPER) + if(HAS_VK_ENUM_STRING_HELPER) + target_compile_definitions( Mw PRIVATE HAS_VK_ENUM_STRING_HELPER ) - endif() + endif() endif() target_compile_definitions( @@ -362,7 +390,7 @@ install( ) if(MW_INSTALL_HEADERS) - install( + install( DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} FILES_MATCHING PATTERN "*.h" @@ -370,5 +398,5 @@ if(MW_INSTALL_HEADERS) endif() if(MW_BUILD_EXAMPLES) - add_subdirectory(examples) + add_subdirectory(examples) endif() diff --git a/configure b/configure index 1f3ee9e53..a6e5941cf 100755 --- a/configure +++ b/configure @@ -46,6 +46,7 @@ param_set("shared", 1); param_set("static", 1); param_set("examples", 1); + my %features = ( "classic-theme" => "use classic theme", "stb-image" => "use stb_image, instead use libjpeg/libpng", @@ -131,16 +132,12 @@ foreach my $l (@ARGV) { } } -if($target ne "Darwin" and $target ne "ClassicMacOS68k" and $target ne "ClassicMacOSPPC") { +if($target ne "Darwin" and $target ne "ClassicMacOS") { param_set("freetype2", 1); param_set("stb-truetype", 0); } else { - if($target ne "ClassicMacOS68k" and $target ne "ClassicMacOSPPC"){ - param_set("freetype2", 0); - param_set("stb-truetype", 1); - } else { - param_set("stb-truetype", 0); - } + param_set("freetype2", 0); + param_set("stb-truetype", 0); } if($target eq "Linux") { @@ -289,7 +286,7 @@ if (param_get("examples")) { } if (grep(/^cocoa$/, @backends)) { print(OUT -" \$(CC) -L./src -I\$\(INCDIR) \$\(LIBDIR) -o ${l} ${s}${object_suffix} -lMw ${math} ${libs}\n" +" \$(CC) -L./src \$\(LIBDIR) -o ${l} ${s}${object_suffix} -lMw ${math} ${libs}\n" ); } else { @@ -304,16 +301,12 @@ if (param_get("examples")) { print(OUT " Rez -I ".$ENV{RETRO68_TOOLCHAIN_PATH}."/RIncludes ".$ENV{RETRO68_TOOLCHAIN_PATH}."/RIncludes/Retro68APPL.r -DCFRAG_NAME=\"example\" --data ${l}.pef --cc ${l}.dsk -t APPL\n" ); + } print(OUT "${s}${object_suffix}: ${s}.c\n"); print(OUT " \$(CC) -c \$\(INCDIR) -o ${s}${object_suffix} ${s}.c -lMw ${math}\n" ); - - - #print(OUT "Rez -I /path/to/Universal/RIncludes /path/to/libretro/RIncludes/Retro68APPL.r -DCFRAG_NAME="\"MyProgram\"" --data program.pef -o program.bin -t APPL"); - } - } } print(OUT "\n"); diff --git a/examples/basic/CMakeLists.txt b/examples/basic/CMakeLists.txt index ab58a5c1a..e69c4ae55 100644 --- a/examples/basic/CMakeLists.txt +++ b/examples/basic/CMakeLists.txt @@ -1,22 +1,26 @@ file( - GLOB - EXAMPLES_BASIC_SOURCES - *.c + GLOB + EXAMPLES_BASIC_SOURCES + *.c ) foreach(PATH IN LISTS EXAMPLES_BASIC_SOURCES) - get_filename_component(TARGET ${PATH} NAME_WE) - add_executable(${TARGET} MACOSX_BUNDLE ${PATH}) - target_link_libraries( - ${TARGET} - PRIVATE - Mw - ) - if(NOT CMAKE_SYSTEM_NAME STREQUAL "Windows") - target_link_libraries( - ${TARGET} - PRIVATE - m - ) - endif() + get_filename_component(TARGET ${PATH} NAME_WE) + if(CMAKE_SYSTEM_NAME MATCHES Retro) + add_application(${TARGET} ${PATH}) + else() + add_executable(${TARGET} MACOSX_BUNDLE ${PATH}) + endif() + target_link_libraries( + ${TARGET} + PRIVATE + Mw + ) + if(NOT CMAKE_SYSTEM_NAME STREQUAL "Windows") + target_link_libraries( + ${TARGET} + PRIVATE + m + ) + endif() endforeach() diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index a1a469188..2a293b02a 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -106,6 +106,9 @@ MWDECL void MwLLDBusFreeContext(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx); #ifdef USE_COCOA #include #endif +#ifdef CLASSIC_MAC_OS +#include +#endif union _MwLL { struct _MwLLCommon common; @@ -121,6 +124,9 @@ union _MwLL { #ifdef USE_COCOA struct _MwLLCocoa cocoa; #endif +#ifdef CLASSIC_MAC_OS + struct _MwLLClassicMacOS cmacos; +#endif }; union _MwLLColor { diff --git a/include/Mw/LowLevel/ClassicMacOS.h b/include/Mw/LowLevel/ClassicMacOS.h index 01654387f..f377e4f91 100644 --- a/include/Mw/LowLevel/ClassicMacOS.h +++ b/include/Mw/LowLevel/ClassicMacOS.h @@ -12,6 +12,10 @@ struct _MwLLClassicMacOS { struct _MwLLCommon common; + + WindowRef window; + EventRecord event; + Rect winRect; }; struct _MwLLClassicMacOSColor { diff --git a/pl/ostype/ClassicMacOS.pl b/pl/ostype/ClassicMacOS.pl new file mode 100644 index 000000000..751525f7a --- /dev/null +++ b/pl/ostype/ClassicMacOS.pl @@ -0,0 +1,10 @@ +use_backend("classicmacos"); + +print("Compiling for Classic Mac OS via ./configure currently outputs a broken executable and it only supports PowerPC. Help is wanted. In the mean time, use CMake.") + +$cc = $ENV{RETRO68_TOOLCHAIN_PATH}."/bin/powerpc-apple-macos-gcc"; +$ar = $ENV{RETRO68_TOOLCHAIN_PATH}."/bin/powerpc-apple-macos-ar"; +add_cflags("-DCLASSIC_MAC_OS"); +add_cflags("-DSTBI_NO_THREAD_LOCALS"); + +1; diff --git a/pl/ostype/ClassicMacOS68k.pl b/pl/ostype/ClassicMacOS68k.pl deleted file mode 100644 index c9ceba8c6..000000000 --- a/pl/ostype/ClassicMacOS68k.pl +++ /dev/null @@ -1,7 +0,0 @@ -use_backend("classicmacos"); - -$cc = $ENV{RETRO68_TOOLCHAIN_PATH}."/bin/m68k-apple-macos-gcc"; -$ar = $ENV{RETRO68_TOOLCHAIN_PATH}."/bin/m68k-apple-macos-ar"; -add_cflags("-DCLASSIC_MAC_OS"); - -1; diff --git a/pl/ostype/ClassicMacOSPPC.pl b/pl/ostype/ClassicMacOSPPC.pl deleted file mode 100644 index b2626d968..000000000 --- a/pl/ostype/ClassicMacOSPPC.pl +++ /dev/null @@ -1,7 +0,0 @@ -use_backend("classicmacos"); - -$cc = $ENV{RETRO68_TOOLCHAIN_PATH}."/bin/powerpc-apple-macos-gcc"; -$ar = $ENV{RETRO68_TOOLCHAIN_PATH}."/bin/powerpc-apple-macos-ar"; -add_cflags("-DCLASSIC_MAC_OS"); - -1; diff --git a/src/backend/classicmacos.c b/src/backend/classicmacos.c index 01a9d9735..929c4930f 100644 --- a/src/backend/classicmacos.c +++ b/src/backend/classicmacos.c @@ -5,6 +5,15 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLL r; + MwLLCreateCommon(r); + + SetRect(&r->cmacos.winRect, 100, 100, width, height); + + r->cmacos.window = NewCWindow(nil, &r->cmacos.winRect, (ConstStr255Param) "\p", true, + documentProc, (WindowPtr)(-1), true, 0); + + SetPort(r->cmacos.window); + return r; } @@ -59,8 +68,7 @@ static void MwLLFreeColorImpl(MwLLColor color) { } static int MwLLPendingImpl(MwLL handle) { - - return 0; + return GetNextEvent(everyEvent, &handle->cmacos.event); } static void MwLLNextEventImpl(MwLL handle) { diff --git a/src/dialog/filechooser.c b/src/dialog/filechooser.c index d5faa4bad..c18027677 100644 --- a/src/dialog/filechooser.c +++ b/src/dialog/filechooser.c @@ -383,7 +383,7 @@ static void layout(MwWidget handle) { MwNtext, "Cancel", NULL); - MwAddUserHandler(fc->cancel, MwNactivateHandler, cancel, NULL); + MwAddUserHandler(fc->cancel, MwNactivateHandler, filecancel, NULL); } else { MwVaApply(fc->cancel, MwNx, wx, diff --git a/src/widget/box.c b/src/widget/box.c index e96c00874..6fb893550 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -135,7 +135,7 @@ static void children_update(MwWidget handle) { } MwClassRec MwBoxClassRec = { - create, /* create */ + wcreate, /* create */ destroy, /* destroy */ draw, /* draw */ NULL, /* click */ diff --git a/src/widget/button.c b/src/widget/button.c index 6653b54ed..7287f2a4e 100644 --- a/src/widget/button.c +++ b/src/widget/button.c @@ -93,7 +93,7 @@ static void prop_change(MwWidget handle, const char* key) { } MwClassRec MwButtonClassRec = { - create, /* create */ + wcreate, /* create */ NULL, /* destroy */ draw, /* draw */ click, /* click */ diff --git a/src/widget/checkbox.c b/src/widget/checkbox.c index 56b8f11ae..2301aa0ff 100644 --- a/src/widget/checkbox.c +++ b/src/widget/checkbox.c @@ -38,7 +38,7 @@ static void prop_change(MwWidget handle, const char* key) { } MwClassRec MwCheckBoxClassRec = { - create, /* create */ + wcreate, /* create */ NULL, /* destroy */ draw, /* draw */ click, /* click */ diff --git a/src/widget/combobox.c b/src/widget/combobox.c index 988bb24aa..c061512d7 100644 --- a/src/widget/combobox.c +++ b/src/widget/combobox.c @@ -189,7 +189,7 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v } MwClassRec MwComboBoxClassRec = { - create, /* create */ + wcreate, /* create */ destroy, /* destroy */ draw, /* draw */ click, /* click */ diff --git a/src/widget/entry.c b/src/widget/entry.c index eca5e5ce4..4d1cc7364 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -172,7 +172,7 @@ static void clipboard(MwWidget handle, const char* data) { } MwClassRec MwEntryClassRec = { - create, /* create */ + wcreate, /* create */ destroy, /* destroy */ draw, /* draw */ NULL, /* click */ diff --git a/src/widget/frame.c b/src/widget/frame.c index 6f9d88129..0cc0c4163 100644 --- a/src/widget/frame.c +++ b/src/widget/frame.c @@ -46,7 +46,7 @@ static void prop_change(MwWidget handle, const char* key) { } MwClassRec MwFrameClassRec = { - create, /* create */ + wcreate, /* create */ NULL, /* destroy */ draw, /* draw */ NULL, /* click */ diff --git a/src/widget/image.c b/src/widget/image.c index 90f3cbe7a..791570ecb 100644 --- a/src/widget/image.c +++ b/src/widget/image.c @@ -42,7 +42,7 @@ static void prop_change(MwWidget handle, const char* key) { } MwClassRec MwImageClassRec = { - create, /* create */ + wcreate, /* create */ NULL, /* destroy */ draw, /* draw */ NULL, /* click */ diff --git a/src/widget/label.c b/src/widget/label.c index 3c88eb921..98a0d5fef 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -360,7 +360,7 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v } MwClassRec MwLabelClassRec = { - create, /* create */ + wcreate, /* create */ destroy, /* destroy */ draw, /* draw */ NULL, /* click */ diff --git a/src/widget/listbox.c b/src/widget/listbox.c index 7f4ef0b7d..98c86cf97 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -595,7 +595,7 @@ static void tick(MwWidget handle) { } MwClassRec MwListBoxClassRec = { - create, /* create */ + wcreate, /* create */ destroy, /* destroy */ draw, /* draw */ NULL, /* click */ diff --git a/src/widget/menu.c b/src/widget/menu.c index b36527885..b66108652 100644 --- a/src/widget/menu.c +++ b/src/widget/menu.c @@ -189,7 +189,7 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v } MwClassRec MwMenuClassRec = { - create, /* create */ + wcreate, /* create */ destroy, /* destroy */ draw, /* draw */ NULL, /* click */ diff --git a/src/widget/numberentry.c b/src/widget/numberentry.c index 96860f84e..05d590f5c 100644 --- a/src/widget/numberentry.c +++ b/src/widget/numberentry.c @@ -128,7 +128,7 @@ static void prop_change(MwWidget handle, const char* prop) { } MwClassRec MwNumberEntryClassRec = { - create, /* create */ + wcreate, /* create */ destroy, /* destroy */ draw, /* draw */ NULL, /* click */ diff --git a/src/widget/progressbar.c b/src/widget/progressbar.c index 2a032b09d..dedd7a911 100644 --- a/src/widget/progressbar.c +++ b/src/widget/progressbar.c @@ -46,7 +46,7 @@ static void prop_change(MwWidget handle, const char* key) { } MwClassRec MwProgressBarClassRec = { - create, /* create */ + wcreate, /* create */ NULL, /* destroy */ draw, /* draw */ NULL, /* click */ diff --git a/src/widget/radiobox.c b/src/widget/radiobox.c index 2416b71d9..1342232e5 100644 --- a/src/widget/radiobox.c +++ b/src/widget/radiobox.c @@ -47,7 +47,7 @@ static void prop_change(MwWidget handle, const char* key) { } MwClassRec MwRadioBoxClassRec = { - create, /* create */ + wcreate, /* create */ NULL, /* destroy */ draw, /* draw */ click, /* click */ diff --git a/src/widget/scrollbar.c b/src/widget/scrollbar.c index e11ba6ac4..a1df9b2db 100644 --- a/src/widget/scrollbar.c +++ b/src/widget/scrollbar.c @@ -257,7 +257,7 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v } MwClassRec MwScrollBarClassRec = { - create, /* create */ + wcreate, /* create */ destroy, /* destroy */ draw, /* draw */ NULL, /* click */ diff --git a/src/widget/separator.c b/src/widget/separator.c index d7d6aae20..15919d0ed 100644 --- a/src/widget/separator.c +++ b/src/widget/separator.c @@ -35,7 +35,7 @@ static void prop_change(MwWidget handle, const char* key) { } MwClassRec MwSeparatorClassRec = { - create, /* create */ + wcreate, /* create */ NULL, /* destroy */ draw, /* draw */ NULL, /* click */ diff --git a/src/widget/submenu.c b/src/widget/submenu.c index a71d65b08..f14d6d5f4 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -241,7 +241,7 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v } MwClassRec MwSubMenuClassRec = { - create, /* create */ + wcreate, /* create */ destroy, /* destroy */ draw, /* draw */ click, /* click */ diff --git a/src/widget/treeview.c b/src/widget/treeview.c index bd3067c4c..9d3320699 100644 --- a/src/widget/treeview.c +++ b/src/widget/treeview.c @@ -481,7 +481,7 @@ static void tick(MwWidget handle) { } MwClassRec MwTreeViewClassRec = { - create, /* create */ + wcreate, /* create */ destroy, /* destroy */ draw, /* draw */ NULL, /* click */ diff --git a/src/widget/viewport.c b/src/widget/viewport.c index 38ef89948..f05b18d5b 100644 --- a/src/widget/viewport.c +++ b/src/widget/viewport.c @@ -176,7 +176,7 @@ static void tick(MwWidget handle) { } MwClassRec MwViewportClassRec = { - create, /* create */ + wcreate, /* create */ destroy, /* destroy */ draw, /* draw */ NULL, /* click */ diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index ab73fcafc..7cb33122a 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -556,7 +556,7 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v } MwClassRec MwVulkanClassRec = { - create, /* create */ + wcreate, /* create */ destroy, /* destroy */ NULL, /* draw */ NULL, /* click */ diff --git a/src/widget/window.c b/src/widget/window.c index b4aaa8d22..2b596b50d 100644 --- a/src/widget/window.c +++ b/src/widget/window.c @@ -44,7 +44,7 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v } } MwClassRec MwWindowClassRec = { - create, /* create */ + wcreate, /* create */ NULL, /* destroy */ draw, /* draw */ NULL, /* click */ From 2228fa1a467ab724002a6c82a9405987338896ac Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 15 Apr 2026 21:46:37 -0700 Subject: [PATCH 405/836] fix build --- src/widget/opengl.c | 6 +++--- src/widget/opengl_cocoa.m | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 2cb612eaa..39b5510c8 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -380,8 +380,8 @@ static void mwOpenGLMakeCurrentImpl(MwWidget handle) { #ifdef USE_GDI if(handle->lowlevel->common.type == MwLLBackendGDI) { - gdiopengl_t* o = handle->internal; - BOOL (APIENTRY *swap_interval_ext)(int) = NULL; + gdiopengl_t* o = handle->internal; + BOOL(APIENTRY * swap_interval_ext)(int) = NULL; o->wglMakeCurrent(o->dc, o->gl); @@ -498,7 +498,7 @@ static void func_handler(MwWidget handle, const char* name, void* out, } } -MwClassRec MwOpenGLClassRec = {create, /* create */ +MwClassRec MwOpenGLClassRec = {wcreate, /* create */ destroy, /* destroy */ NULL, /* draw */ NULL, /* click */ diff --git a/src/widget/opengl_cocoa.m b/src/widget/opengl_cocoa.m index 27c21588a..a4d2bfa2f 100644 --- a/src/widget/opengl_cocoa.m +++ b/src/widget/opengl_cocoa.m @@ -111,7 +111,7 @@ static void func_handler(MwWidget handle, const char* name, void* out, @end -MwClassRec MwOpenGLClassRec = {create, /* create */ +MwClassRec MwOpenGLClassRec = {wcreate, /* create */ destroy, /* destroy */ NULL, /* draw */ NULL, /* click */ From 15c39a2405a62c47f91b7a683ac367bc67332af7 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 15 Apr 2026 21:48:52 -0700 Subject: [PATCH 406/836] windows shouldn't default to ft2 anyways --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index a6e5941cf..98a6b3a6e 100755 --- a/configure +++ b/configure @@ -132,7 +132,7 @@ foreach my $l (@ARGV) { } } -if($target ne "Darwin" and $target ne "ClassicMacOS") { +if($target ne "Darwin" and $target ne "ClassicMacOS" and $target ne "Windows") { param_set("freetype2", 1); param_set("stb-truetype", 0); } else { From b2ce5597b0ac205330bb0dceb33fd78c09fcf9b4 Mon Sep 17 00:00:00 2001 From: Nishi Date: Thu, 16 Apr 2026 14:07:20 +0900 Subject: [PATCH 407/836] fix warning --- src/draw.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/draw.c b/src/draw.c index f5e1368dd..68f6862e6 100644 --- a/src/draw.c +++ b/src/draw.c @@ -104,14 +104,13 @@ void MwDrawRect(MwWidget handle, MwRect* rect, MwLLColor color) { void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color) { MwLLPixmap pixmap; - int y, i; + int y; double darken = 0.; int ColorDiff = get_color_diff(handle); double darkenStep = (ColorDiff / 2.) / rect->height; unsigned long sz = 1 * rect->height * 4; unsigned char* data = malloc(sz); MwRect r = *rect; - double div; if(rect->width <= 0 || rect->height <= 0) { free(data); return; @@ -309,8 +308,7 @@ static void MwDrawFrameEx_simple(MwWidget handle, MwRect* rect, MwLLColor color, static void frame_border_complex(MwWidget handle, MwRect* rect, MwLLColor lighter, MwLLColor darker, int invert, int border, int diff, int same) { MwPoint p[7]; - int i; - + (void)diff; (void)same; From 5ca241ad0af271f98fb6c3d780242d2046d76eca Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 15 Apr 2026 22:20:13 -0700 Subject: [PATCH 408/836] update time.c to not do a cast --- CMakeLists.txt | 2 -- src/abstract/time.c | 4 +++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 835ecdd26..c0c7f0b9d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -314,8 +314,6 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "Retro") PRIVATE src/backend/classicmacos.c ) - if(PLATFORM MATCHES retroppc) - endif() if(PLATFORM MATCHES retroppc) set_target_properties(Mw PROPERTIES COMPILE_FLAGS "-ffunction-sections -mcpu=601 -Os -Wall -Wextra -Wno-unused-parameter") set_target_properties(Mw PROPERTIES LINK_FLAGS "-Wl,-gc-sections") diff --git a/src/abstract/time.c b/src/abstract/time.c index 52d998689..cdebc4b93 100644 --- a/src/abstract/time.c +++ b/src/abstract/time.c @@ -43,7 +43,7 @@ void timerUpdateFunc(void) { long MwTimeGetTick(void) { UnsignedWide h; Microseconds(&h); - return *(long*)&h; + return h.lo; } void MwTimeSleep(int ms) { tm.tmAddr = NewTimerProc(timerUpdateFunc); @@ -52,6 +52,8 @@ void MwTimeSleep(int ms) { InsTime((QElemPtr)&tm); PrimeTime((QElemPtr)&tm, 1); + + DisposeTimerUPP(tm.tmAddr); } #elif defined(__unix__) long MwTimeGetTick(void) { From 0e96b715b00c388f785940a1b86663f57d196edd Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 15 Apr 2026 22:25:26 -0700 Subject: [PATCH 409/836] classic mac os: comment out MwTimeSleep because I realize that wouldn't work either way --- src/abstract/time.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/abstract/time.c b/src/abstract/time.c index cdebc4b93..cd09b94d9 100644 --- a/src/abstract/time.c +++ b/src/abstract/time.c @@ -33,12 +33,12 @@ void MwTimeSleep(int ms) { nanosleep(&ts, NULL); } #elif defined(CLASSIC_MAC_OS) -static TMTask tm; -static int timer; -void timerUpdateFunc(void) { - timer += 1; - PrimeTime((QElemPtr)&tm, 1); -}; +// static TMTask tm; +// static int timer; +// void timerUpdateFunc(void) { +// timer += 1; +// PrimeTime((QElemPtr)&tm, 1); +// }; long MwTimeGetTick(void) { UnsignedWide h; @@ -46,14 +46,14 @@ long MwTimeGetTick(void) { return h.lo; } void MwTimeSleep(int ms) { - tm.tmAddr = NewTimerProc(timerUpdateFunc); - tm.tmWakeUp = 0; - tm.tmReserved = 0; + // tm.tmAddr = NewTimerProc(timerUpdateFunc); + // tm.tmWakeUp = 0; + // tm.tmReserved = 0; - InsTime((QElemPtr)&tm); - PrimeTime((QElemPtr)&tm, 1); + // InsTime((QElemPtr)&tm); + // PrimeTime((QElemPtr)&tm, 1); - DisposeTimerUPP(tm.tmAddr); + // DisposeTimerUPP(tm.tmAddr); } #elif defined(__unix__) long MwTimeGetTick(void) { From 9b138c458ec518121955abc77c0c9a239092c0a6 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 16 Apr 2026 00:45:59 -0700 Subject: [PATCH 410/836] cmacos: very untested code but it's all so basic that it should work --- include/Mw/LowLevel.h | 5 ++- include/Mw/LowLevel/ClassicMacOS.h | 1 + src/backend/classicmacos.c | 65 +++++++++++++++++++++++++----- 3 files changed, 59 insertions(+), 12 deletions(-) diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 5ba698e9c..e025cb293 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -125,7 +125,7 @@ union _MwLL { struct _MwLLCocoa cocoa; #endif #ifdef CLASSIC_MAC_OS - struct _MwLLClassicMacOS cmacos; + struct _MwLLClassicMacOS cmacos; #endif }; @@ -159,6 +159,9 @@ union _MwLLPixmap { #ifdef USE_COCOA struct _MwLLCocoaPixmap cocoa; #endif +#ifdef CLASSIC_MAC_OS + struct _MwLLClassicMacOSPixmap cmacos; +#endif }; #endif #include diff --git a/include/Mw/LowLevel/ClassicMacOS.h b/include/Mw/LowLevel/ClassicMacOS.h index f377e4f91..4b32f6cd4 100644 --- a/include/Mw/LowLevel/ClassicMacOS.h +++ b/include/Mw/LowLevel/ClassicMacOS.h @@ -24,6 +24,7 @@ struct _MwLLClassicMacOSColor { struct _MwLLClassicMacOSPixmap { struct _MwLLCommonPixmap common; + BitMap bmp; }; MWDECL int MwLLClassicMacOSCallInit(void); diff --git a/src/backend/classicmacos.c b/src/backend/classicmacos.c index 929c4930f..168541559 100644 --- a/src/backend/classicmacos.c +++ b/src/backend/classicmacos.c @@ -7,12 +7,13 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLLCreateCommon(r); - SetRect(&r->cmacos.winRect, 100, 100, width, height); - - r->cmacos.window = NewCWindow(nil, &r->cmacos.winRect, (ConstStr255Param) "\p", true, - documentProc, (WindowPtr)(-1), true, 0); - - SetPort(r->cmacos.window); + if(!parent) { + SetRect(&r->cmacos.winRect, 100, 100, width, height); + r->cmacos.window = NewCWindow(nil, &r->cmacos.winRect, (ConstStr255Param) "\p", true, + documentProc, (WindowPtr)(-1), true, 0); + SetPort(r->cmacos.window); + // + } return r; } @@ -32,10 +33,42 @@ static void MwLLEndDrawImpl(MwLL handle) { } static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { - int i; + int i; + PolyHandle p = OpenPoly(); + RGBColor col; + + col.red = color->common.red; + col.green = color->common.green; + col.blue = color->common.blue; + + RGBBackColor(&col); + RGBForeColor(&col); + + for(i = 0; i < points_count; i++) { + if(i == 0) { + MoveTo(points[i].x, points[i].y); + } else { + LineTo(points[i].x, points[i].y); + } + } + + ClosePoly(); + PaintPoly(p); + KillPoly(p); } static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { + RGBColor col; + + col.red = color->common.red; + col.green = color->common.green; + col.blue = color->common.blue; + + RGBBackColor(&col); + RGBForeColor(&col); + + MoveTo(points[0].x, points[0].y); + LineTo(points[1].x, points[1].y); } static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { @@ -51,16 +84,20 @@ static void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { } static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h) { - *x = 0; - *y = 0; - *w = 0; - *h = 0; + Rect bounds; + GetWindowBounds(handle->cmacos.window, kWindowContentRgn, &bounds); + *x = bounds.left; + *y = bounds.top; + *w = bounds.right; + *h = bounds.bottom; } static void MwLLSetXYImpl(MwLL handle, int x, int y) { + MoveWindow(handle->cmacos.window, x, y, MwTRUE); } static void MwLLSetWHImpl(MwLL handle, int w, int h) { + SizeWindow(handle->cmacos.window, w, h, MwTRUE); } static void MwLLFreeColorImpl(MwLLColor color) { @@ -75,6 +112,7 @@ static void MwLLNextEventImpl(MwLL handle) { } static void MwLLSetTitleImpl(MwLL handle, const char* title) { + setwtitle(handle->cmacos.window, title); } static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) { @@ -109,6 +147,10 @@ static void MwLLDetachImpl(MwLL handle, MwPoint* point) { } static void MwLLShowImpl(MwLL handle, int show) { + if(show) + ShowWindow(handle->cmacos.window); + else + HideWindow(handle->cmacos.window); } static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { @@ -121,6 +163,7 @@ static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { } static void MwLLFocusImpl(MwLL handle) { + HiliteWindow(handle->cmacos.window, MwTRUE); } static void MwLLGrabPointerImpl(MwLL handle, int toggle) { From 8b176d3a008e796ebaa036375256411ba15a3f03 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 16 Apr 2026 00:53:37 -0700 Subject: [PATCH 411/836] cmacos: remove parent check oops --- src/backend/classicmacos.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/backend/classicmacos.c b/src/backend/classicmacos.c index 168541559..8745c0ce5 100644 --- a/src/backend/classicmacos.c +++ b/src/backend/classicmacos.c @@ -7,13 +7,11 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLLCreateCommon(r); - if(!parent) { - SetRect(&r->cmacos.winRect, 100, 100, width, height); - r->cmacos.window = NewCWindow(nil, &r->cmacos.winRect, (ConstStr255Param) "\p", true, - documentProc, (WindowPtr)(-1), true, 0); - SetPort(r->cmacos.window); - // - } + /* todo: how do we set parent windows? If we can't, what is our equivalant to MacOS's NSViews, Wayland's subsurfaces, etc.? */ + SetRect(&r->cmacos.winRect, x, y, width, height); + r->cmacos.window = NewCWindow(nil, &r->cmacos.winRect, (ConstStr255Param) "\p", true, + documentProc, (WindowPtr)(-1), true, 0); + SetPort(r->cmacos.window); return r; } From c88dc48817d92d9103a4852a56c494d95e1dc214 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 16 Apr 2026 00:55:18 -0700 Subject: [PATCH 412/836] cmacos: Right we can just use the lowercase newcwindow instead of worrying about pascal conversions --- src/backend/classicmacos.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/classicmacos.c b/src/backend/classicmacos.c index 8745c0ce5..4fa7ab373 100644 --- a/src/backend/classicmacos.c +++ b/src/backend/classicmacos.c @@ -9,7 +9,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { /* todo: how do we set parent windows? If we can't, what is our equivalant to MacOS's NSViews, Wayland's subsurfaces, etc.? */ SetRect(&r->cmacos.winRect, x, y, width, height); - r->cmacos.window = NewCWindow(nil, &r->cmacos.winRect, (ConstStr255Param) "\p", true, + r->cmacos.window = newcwindow(nil, &r->cmacos.winRect, "", true, documentProc, (WindowPtr)(-1), true, 0); SetPort(r->cmacos.window); From 79efc31c55093b3c6b1cfdd900e6e7af0ac16f07 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 16 Apr 2026 23:40:29 +0900 Subject: [PATCH 413/836] dbus should work on netbsd now --- include/Mw/LowLevel.h | 2 +- pl/ostype/ClassicMacOS.pl | 8 +++++--- pl/ostype/NetBSD.pl | 2 ++ pl/rules.pl | 13 ++++++++----- src/backend/call.c | 2 +- src/backend/cocoa.m | 2 +- src/backend/gdi.c | 7 +++---- src/backend/wayland.c | 10 ++++++++-- src/backend/x11.c | 17 +++++++++++++++-- src/core.c | 2 +- src/draw.c | 2 +- src/string.c | 2 +- src/widget/scrollbar.c | 6 +++--- 13 files changed, 50 insertions(+), 25 deletions(-) diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index e025cb293..ea31aefea 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -6,7 +6,7 @@ #ifndef __MW_LOWLEVEL_H__ #define __MW_LOWLEVEL_H__ -#include "Mw/BaseTypes.h" +#include #include typedef struct _MwLLHandler* MwLLHandler; diff --git a/pl/ostype/ClassicMacOS.pl b/pl/ostype/ClassicMacOS.pl index 751525f7a..1f2e532d6 100644 --- a/pl/ostype/ClassicMacOS.pl +++ b/pl/ostype/ClassicMacOS.pl @@ -1,9 +1,11 @@ use_backend("classicmacos"); -print("Compiling for Classic Mac OS via ./configure currently outputs a broken executable and it only supports PowerPC. Help is wanted. In the mean time, use CMake.") +print( +"Compiling for Classic Mac OS via ./configure currently outputs a broken executable and it only supports PowerPC. Help is wanted. In the mean time, use CMake." +); -$cc = $ENV{RETRO68_TOOLCHAIN_PATH}."/bin/powerpc-apple-macos-gcc"; -$ar = $ENV{RETRO68_TOOLCHAIN_PATH}."/bin/powerpc-apple-macos-ar"; +$cc = $ENV{RETRO68_TOOLCHAIN_PATH} . "/bin/powerpc-apple-macos-gcc"; +$ar = $ENV{RETRO68_TOOLCHAIN_PATH} . "/bin/powerpc-apple-macos-ar"; add_cflags("-DCLASSIC_MAC_OS"); add_cflags("-DSTBI_NO_THREAD_LOCALS"); diff --git a/pl/ostype/NetBSD.pl b/pl/ostype/NetBSD.pl index 936725069..6556cab20 100644 --- a/pl/ostype/NetBSD.pl +++ b/pl/ostype/NetBSD.pl @@ -4,4 +4,6 @@ add_libdir( use_backend("x11"); add_libs("-lpthread"); +add_cflags("-DUSE_DBUS"); + 1; diff --git a/pl/rules.pl b/pl/rules.pl index 4d68cb94d..6f64a174c 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -31,6 +31,7 @@ if (grep(/^gdi$/, @backends)) { } if (grep(/^classicmacos$/, @backends)) { + #add_cflags("-DCLASSIC_MAC_OS"); new_object("src/backend/classicmacos.c"); @@ -56,18 +57,20 @@ if (grep(/^wayland$/, @backends)) { scan_wayland_protocol("unstable", "pointer-constraints", "-unstable-v1"); scan_wayland_protocol("unstable", "relative-pointer", "-unstable-v1"); - add_cflags(`pkg-config --cflags dbus-1`); - $gl_libs = "-lGL -lGLU"; } +if (grep(/( |^)-DUSE_DBUS( |$)/, $cflags)) { + add_cflags(`pkg-config --cflags dbus-1`); +} + if (grep(/^cocoa$/, @backends) || param_get("gnustep")) { add_cflags("-DUSE_COCOA"); new_object("src/backend/cocoa.m"); - if(param_get("gnustep")){ - add_incdir("-I".`gnustep-config --variable=GNUSTEP_SYSTEM_HEADERS`); - add_libdir("-L".`gnustep-config --variable=GNUSTEP_SYSTEM_LIBRARIES`); + if (param_get("gnustep")) { + add_incdir("-I" . `gnustep-config --variable=GNUSTEP_SYSTEM_HEADERS`); + add_libdir("-L" . `gnustep-config --variable=GNUSTEP_SYSTEM_LIBRARIES`); add_cflags("-fobjc-runtime=gnustep-2.0 -fblocks"); add_ldflags("-lobjc -lgnustep-base -lm -lgnustep-gui"); } diff --git a/src/backend/call.c b/src/backend/call.c index 07cf1e08f..14338ecc9 100644 --- a/src/backend/call.c +++ b/src/backend/call.c @@ -55,7 +55,7 @@ MwLLGetCursorCoord = MwLLGetCursorCoordImpl; \ MwLLGetScreenSize = MwLLGetScreenSizeImpl; \ \ - MwLLSetDarkTheme = MwLLSetDarkThemeImpl; \ + MwLLSetDarkTheme = MwLLSetDarkThemeImpl; \ \ return 0; \ } diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 3177d14c2..cfac1add0 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1084,7 +1084,7 @@ static void MwLLEndStateChangeImpl(MwLL handle) { MwLLShow(handle, 1); } -static void MwLLSetDarkThemeImpl(MwLL handle, int toggle){ +static void MwLLSetDarkThemeImpl(MwLL handle, int toggle) { (void)handle; (void)toggle; } diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 8813ba24b..055b6c26d 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -11,7 +11,7 @@ typedef struct userdata { static struct symtbl { void* lib_dwmapi; - HRESULT (WINAPI *DwmSetWindowAttribute)(HWND hwnd, DWORD dwAttribute, LPCVOID pvAttribute, DWORD cbAttribute); + HRESULT(WINAPI* DwmSetWindowAttribute)(HWND hwnd, DWORD dwAttribute, LPCVOID pvAttribute, DWORD cbAttribute); } wsymtbl; #define DwmSetWindowAttribute wsymtbl.DwmSetWindowAttribute @@ -34,7 +34,7 @@ static void detect_darktheme(MwLL handle) { t = dw ? 0 : 1; - if(t && DwmSetWindowAttribute != NULL){ + if(t && DwmSetWindowAttribute != NULL) { LPARAM style = GetWindowLongPtr(handle->gdi.hWnd, GWL_STYLE); if(!(style & WS_CHILD)) MwLLSetDarkTheme(handle, 1); } @@ -819,11 +819,10 @@ static void MwLLEndStateChangeImpl(MwLL handle) { (void)handle; } -static void MwLLSetDarkThemeImpl(MwLL handle, int toggle){ +static void MwLLSetDarkThemeImpl(MwLL handle, int toggle) { BOOL v = toggle ? TRUE : FALSE; DwmSetWindowAttribute(handle->gdi.hWnd, 20, &v, sizeof(v)); - } static int MwLLGDICallInitImpl(void) { diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 425308d7e..fc4a67fc4 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1817,6 +1817,7 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh } } +#ifdef USE_DBUS static void detect_dark_theme(MwLL handle) { MwU32 value = 0; MwU32 dark_theme = 0; @@ -1826,6 +1827,7 @@ static void detect_dark_theme(MwLL handle) { MwLLDispatch(handle, dark_theme, &dark_theme); } +#endif static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLL r; @@ -1876,9 +1878,11 @@ static void MwLLDestroyImpl(MwLL handle) { pthread_mutex_unlock(&handle->wayland.eventsMutex); pthread_mutex_destroy(&handle->wayland.eventsMutex); +#ifdef USE_DBUS if(!wl_call_tbl.has_dbus) { MwLLDBusFreeContext(&wl_call_tbl.dbus, &handle->wayland.dbus); } +#endif buffer_destroy(&handle->wayland.cursor); wl_region_destroy(handle->wayland.region); @@ -2161,11 +2165,13 @@ static int MwLLPendingImpl(MwLL handle) { int pending = 0; if(handle->wayland.dark_theme_detection) { + handle->wayland.dark_theme_detection = MwFALSE; +#ifdef USE_DBUS if(wl_call_tbl.has_dbus) { detect_dark_theme(handle); - handle->wayland.dark_theme_detection = MwFALSE; MwLLDispatch(handle, draw, NULL); } +#endif } if(!handle->wayland.did_initial_resize) { @@ -2622,7 +2628,7 @@ static void MwLLEndStateChangeImpl(MwLL handle) { } } -static void MwLLSetDarkThemeImpl(MwLL handle, int toggle){ +static void MwLLSetDarkThemeImpl(MwLL handle, int toggle) { (void)handle; (void)toggle; } diff --git a/src/backend/x11.c b/src/backend/x11.c index a556c1c6f..898da85c0 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -9,8 +9,10 @@ static struct symtbl { void* lib_xrender; MwBool has_xrender; +#ifdef USE_DBUS MwLLDBusFuncTable dbus; MwBool has_dbus; +#endif int (*XClearWindow)(Display* display, Window w); XImage* (*XCreateImage)(Display*, Visual*, unsigned int, int, int, char*, unsigned int, unsigned int, int, int); @@ -311,6 +313,7 @@ static XVisualInfo* get_visual_info(Display* display) { return XGetVisualInfo(display, VisualIDMask, &xvi, &n); } +#ifdef USE_DBUS static void detect_dark_theme(MwLL handle) { MwU32 value = 0; MwU32 dark_theme = 0; @@ -320,6 +323,7 @@ static void detect_dark_theme(MwLL handle) { MwLLDispatch(handle, dark_theme, &dark_theme); } +#endif static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLL r; @@ -470,9 +474,11 @@ static void MwLLDestroyImpl(MwLL handle) { if(handle->x11.toplevel) XCloseDisplay(handle->x11.display); +#ifdef USE_DBUS if(!xsymtbl.has_dbus) { MwLLDBusFreeContext(&xsymtbl.dbus, &handle->x11.dbus); } +#endif free(handle); } @@ -633,11 +639,13 @@ static int MwLLPendingImpl(MwLL handle) { XEvent ev; if(handle->x11.dark_theme_detection) { + handle->x11.dark_theme_detection = MwFALSE; +#ifdef USE_DBUS if(xsymtbl.has_dbus) { detect_dark_theme(handle); - handle->x11.dark_theme_detection = MwFALSE; MwLLDispatch(handle, draw, NULL); } +#endif } if(handle->x11.clipboard_pending && (MwTimeGetTick() - handle->x11.clipboard_time) >= ClipboardTimeout) { @@ -1258,9 +1266,12 @@ static void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_ty (void)handle; (void)text; + (void)clipboard_type; } static void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) { + (void)clipboard_type; + if(handle->x11.clipboard_pending) return; XConvertSelection(handle->x11.display, handle->x11.clipboard, handle->x11.utf8_string, handle->x11.selection, handle->x11.window, CurrentTime); @@ -1308,7 +1319,7 @@ static void MwLLEndStateChangeImpl(MwLL handle) { MwLLShow(handle, 1); } -static void MwLLSetDarkThemeImpl(MwLL handle, int toggle){ +static void MwLLSetDarkThemeImpl(MwLL handle, int toggle) { (void)handle; (void)toggle; } @@ -1427,7 +1438,9 @@ static int MwLLX11CallInitImpl(void) { XRENDER_FUNC_LOAD(XRenderComposite) #endif +#ifdef USE_DBUS xsymtbl.has_dbus = MwLLDBusFuncSetup(&xsymtbl.dbus); +#endif return 0; } diff --git a/src/core.c b/src/core.c index 6c08970a8..0404fa72b 100644 --- a/src/core.c +++ b/src/core.c @@ -533,7 +533,7 @@ void MwSetInteger(MwWidget handle, const char* key, int n) { force_render_all(handle); } - if(strcmp(key, MwNdarkTheme) == 0){ + if(strcmp(key, MwNdarkTheme) == 0) { MwWidget h = handle; while(h->parent != NULL && h->parent->widget_class != NULL) h = h->parent; diff --git a/src/draw.c b/src/draw.c index 68f6862e6..8dde8418e 100644 --- a/src/draw.c +++ b/src/draw.c @@ -308,7 +308,7 @@ static void MwDrawFrameEx_simple(MwWidget handle, MwRect* rect, MwLLColor color, static void frame_border_complex(MwWidget handle, MwRect* rect, MwLLColor lighter, MwLLColor darker, int invert, int border, int diff, int same) { MwPoint p[7]; - + (void)diff; (void)same; diff --git a/src/string.c b/src/string.c index a7c23381c..f56b9acb7 100644 --- a/src/string.c +++ b/src/string.c @@ -52,7 +52,7 @@ void MwStringPrintIntoBuffer(char* out, MwU32 size, const char* fmt, ...) { MWDECL MwBool MwStringIsKeyUTF8(MwU32 key) { unsigned char bytes[4]; - int i; + int i; bytes[0] = (key & 0x000000FF); bytes[1] = (key & 0x0000FF00) >> 8; bytes[2] = (key & 0x00FF0000) >> 16; diff --git a/src/widget/scrollbar.c b/src/widget/scrollbar.c index a1df9b2db..bed80c0b2 100644 --- a/src/widget/scrollbar.c +++ b/src/widget/scrollbar.c @@ -58,9 +58,9 @@ static void draw(MwWidget handle) { MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); MwLLColor dark = MwLightenColor(handle, base, -64, -64, -64); MwScrollBar scr = handle->internal; - int or; - int uy, dy, ux, dx; - MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); + int or ; + int uy, dy, ux, dx; + MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); r.x = 0; r.y = 0; From b82e13cb2e4ba772e342c68cbe30bb3ac210120f Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 16 Apr 2026 23:53:29 +0900 Subject: [PATCH 414/836] define opengl/vulkan symbols anyways --- CMakeLists.txt | 10 +++++----- pl/rules.pl | 6 ++++-- src/widget/opengl.c | 7 +++++++ src/widget/vulkan.c | 11 ++++++++++- 4 files changed, 26 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c0c7f0b9d..a4f4eb3ee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,9 +45,6 @@ file( external/libz/src/*.c src/*.c src/cursor/*.c src/icon/*.c src/widget/*.c src/text/*.c src/text/font/*.c src/dialog/*.c src/abstract/*.c external/*.c ) -list(REMOVE_ITEM SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/opengl.c") -list(REMOVE_ITEM SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/vulkan.c") - if(NOT MW_USE_STB_IMAGE) list(REMOVE_ITEM SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/external/stb_image.c") endif() @@ -65,7 +62,11 @@ if(MW_TRY_OPENGL) find_package(OpenGL) if(OpenGL_FOUND) set(MW_BUILD_OPENGL ON) - list(APPEND SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/opengl.c") + target_compile_definitions( + Mw + PRIVATE + MW_OPENGL + ) if(APPLE) list(APPEND SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/opengl_cocoa.m") endif() @@ -79,7 +80,6 @@ if(MW_TRY_VULKAN) check_include_files(vulkan/vulkan.h HAVE_VULKAN_VULKAN_H) if(HAVE_VULKAN_VULKAN_H) set(MW_BUILD_VULKAN ON) - list(APPEND SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/vulkan.c") target_compile_definitions( Mw PRIVATE diff --git a/pl/rules.pl b/pl/rules.pl index 6f64a174c..7ad414db7 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -139,12 +139,14 @@ new_object("src/widget/treeview.c"); new_object("src/widget/viewport.c"); new_object("src/widget/window.c"); +new_object("src/widget/opengl.c"); +new_object("src/widget/vulkan.c"); + if (param_get("opengl")) { - new_object("src/widget/opengl.c"); + add_cflags("-DMW_OPENGL"); } if (param_get("vulkan")) { add_cflags("-DMW_VULKAN"); - new_object("src/widget/vulkan.c"); } new_object("src/dialog/*.c"); diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 39b5510c8..e8b222c25 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -1,6 +1,8 @@ #ifndef __APPLE__ #include + +#ifdef MW_OPENGL #include #ifdef USE_GDI @@ -516,5 +518,10 @@ MwClassRec MwOpenGLClassRec = {wcreate, /* create */ NULL, /* clipboard */ NULL, NULL, NULL, NULL}; MwClass MwOpenGLClass = &MwOpenGLClassRec; +#else +MWDECL MwClass MwOpenGLClass; + +MwClass MwOpenGLClass = NULL; +#endif #endif diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index 7cb33122a..394c9e5a0 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -1,10 +1,12 @@ #include -#include /** * ioixd maintains this file. nishi doesn't know vulkan at all */ +#ifdef MW_VULKAN +#include + #ifdef USE_GDI #define VK_USE_PLATFORM_WIN32_KHR 1 #endif @@ -165,6 +167,8 @@ static int _destroy(MwWidget handle) { static void destroy(MwWidget handle) { int err = _destroy(handle); + + (void)err; } static void* vulkan_lib_load() { @@ -577,3 +581,8 @@ MwClassRec MwVulkanClassRec = { NULL, NULL}; MwClass MwVulkanClass = &MwVulkanClassRec; +#else +MWDECL MwClass MwVulkanClass; + +MwClass MwVulkanClass = NULL; +#endif From 5201c46a219a8225d28206c1015b93e168ba1f84 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 17 Apr 2026 00:20:29 +0900 Subject: [PATCH 415/836] update vulkan/opengl --- include/Mw/Widget/Vulkan.h | 14 ++++---- milsko.xml | 69 +++++++++++++++++++++++++++++++------- src/widget/opengl.c | 5 ++- src/widget/vulkan.c | 29 ++++++++++++---- 4 files changed, 92 insertions(+), 25 deletions(-) diff --git a/include/Mw/Widget/Vulkan.h b/include/Mw/Widget/Vulkan.h index 3297d2271..217f0e56e 100644 --- a/include/Mw/Widget/Vulkan.h +++ b/include/Mw/Widget/Vulkan.h @@ -15,8 +15,10 @@ #error Vulkan is unsupported on the requested platform. #endif +#if !defined(MW_VULKAN_NO_INCLUDE) #include #include +#endif #include #include @@ -46,19 +48,19 @@ MWDECL void MwVulkanEnableLayer(const char* ext_name); /*! * @brief Configuration options that can be passed to setup Vulkan before a widget is created. */ -typedef struct MwVulkanConfig_T { +typedef struct _MwVulkanConfig { /*! * @brief Vulkan API version (default: VK_API_VERSION_1_0) */ - uint32_t api_version; + MwU32 api_version; /*! * @brief Vulkan version (default: VK_VERSION_1_0) */ - uint32_t vk_version; + MwU32 vk_version; /*! * @brief Whether or not to enable validation layers (default: false) */ - VkBool32 validation_layers; + int validation_layers; } MwVulkanConfig; /*! @@ -71,7 +73,7 @@ MWDECL void MwVulkanConfigure(MwVulkanConfig cfg); /*! * @brief Field that can be gotten from Vulkan. */ -typedef enum MwVulkanField_T { +typedef enum _MwVulkanField { /*! * @brief The address of the vulkan widget's vkGetInstanceProcAddr function (PFN_vkGetInstanceProcAddr) */ @@ -120,7 +122,7 @@ MwInline void* MwVulkanGetField(MwWidget handle, MwVulkanField field, int* out) /*! * @brief Return whether Vulkan is installed on the target platform. */ -MWDECL VkBool32 MwVulkanSupported(void); +MWDECL int MwVulkanSupported(void); #ifdef __cplusplus } diff --git a/milsko.xml b/milsko.xml index d42f7e961..2e522bd1d 100644 --- a/milsko.xml +++ b/milsko.xml @@ -67,10 +67,6 @@ - @@ -88,6 +84,9 @@ + + + @@ -150,9 +149,20 @@ - 0 + 0 + + 0 + + + + + + + + + 0x0fffffff @@ -409,14 +419,14 @@ - + - - + + @@ -502,6 +512,8 @@
+ + @@ -721,15 +733,48 @@ - - - + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/widget/opengl.c b/src/widget/opengl.c index e8b222c25..252d7ad56 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -2,9 +2,12 @@ #include -#ifdef MW_OPENGL +#ifndef MW_OPENGL +#define MW_OPENGL_NO_INCLUDE +#endif #include +#ifdef MW_OPENGL #ifdef USE_GDI typedef HGLRC(WINAPI* MWwglCreateContext)(HDC); typedef BOOL(WINAPI* MWwglMakeCurrent)(HDC, HGLRC); diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index 394c9e5a0..e87164627 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -4,9 +4,12 @@ * ioixd maintains this file. nishi doesn't know vulkan at all */ -#ifdef MW_VULKAN +#ifndef MW_VULKAN +#define MW_VULKAN_NO_INCLUDE +#endif #include +#ifdef MW_VULKAN #ifdef USE_GDI #define VK_USE_PLATFORM_WIN32_KHR 1 #endif @@ -498,7 +501,7 @@ void MwVulkanEnableLayer(const char* name) { arrput(enabledLayers, name); } -VkBool32 MwVulkanSupported(void) { +int MwVulkanSupported(void) { if(vulkan_supported == VULKAN_SUPPORTED_UNKNOWN) { void* lib = vulkan_lib_load(); if(lib == NULL) { @@ -509,9 +512,9 @@ VkBool32 MwVulkanSupported(void) { } } if(vulkan_supported == VULKAN_SUPPORTED_YES) { - return VK_TRUE; + return 1; } else { - return VK_FALSE; + return 0; } }; @@ -582,7 +585,21 @@ MwClassRec MwVulkanClassRec = { NULL}; MwClass MwVulkanClass = &MwVulkanClassRec; #else -MWDECL MwClass MwVulkanClass; - MwClass MwVulkanClass = NULL; + +void MwVulkanEnableExtension(const char* ext_name) { + (void)ext_name; +} + +void MwVulkanEnableLayer(const char* ext_name) { + (void)ext_name; +} + +void MwVulkanConfigure(MwVulkanConfig cfg) { + (void)cfg; +} + +int MwVulkanSupported(void) { + return 0; +} #endif From 13a2db7fa85c57bc5d3426d73248ee58c4d24d1e Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 17 Apr 2026 00:26:02 +0900 Subject: [PATCH 416/836] better for binding --- include/Mw/Widget/Vulkan.h | 2 +- milsko.xml | 6 +++--- src/widget/vulkan.c | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/include/Mw/Widget/Vulkan.h b/include/Mw/Widget/Vulkan.h index 217f0e56e..4f8a5e3db 100644 --- a/include/Mw/Widget/Vulkan.h +++ b/include/Mw/Widget/Vulkan.h @@ -113,7 +113,7 @@ typedef enum _MwVulkanField { * @brief Function for getting a field from within Vulkan. * @warning Consult the documentation for MwVulkanField to know what type is expected for out. */ -MwInline void* MwVulkanGetField(MwWidget handle, MwVulkanField field, int* out) { +MwInline void* MwVulkanGetField(MwWidget handle, int field, int* out) { void* field_out; MwVaWidgetExecute(handle, "mwVulkanGetField", &field_out, field, out); return field_out; diff --git a/milsko.xml b/milsko.xml index 2e522bd1d..253a4fee8 100644 --- a/milsko.xml +++ b/milsko.xml @@ -419,14 +419,14 @@ - + - + @@ -770,7 +770,7 @@ - + diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index e87164627..817644c3e 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -518,7 +518,7 @@ int MwVulkanSupported(void) { } }; -static void* mwVulkanGetFieldImpl(MwWidget handle, MwVulkanField field, int* out) { +static void* mwVulkanGetFieldImpl(MwWidget handle, int field, int* out) { vulkan_t* o = handle->internal; char buf[1024]; @@ -556,9 +556,9 @@ static void* mwVulkanGetFieldImpl(MwWidget handle, MwVulkanField field, int* out static void func_handler(MwWidget handle, const char* name, void* out, va_list va) { if(strcmp(name, "mwVulkanGetField") == 0) { - MwVulkanField field = va_arg(va, MwVulkanField); - int* err = va_arg(va, int*); - *(void**)out = mwVulkanGetFieldImpl(handle, field, err); + int field = va_arg(va, int); + int* err = va_arg(va, int*); + *(void**)out = mwVulkanGetFieldImpl(handle, field, err); } } From 7a2ca3aa2dcb4f42c383d696694bffd6d049375b Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 17 Apr 2026 00:27:04 +0900 Subject: [PATCH 417/836] oops --- milsko.xml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/milsko.xml b/milsko.xml index 253a4fee8..cca24fc6b 100644 --- a/milsko.xml +++ b/milsko.xml @@ -417,17 +417,17 @@ - - - - + + + + - - - - - + + + + + @@ -770,8 +770,8 @@ - - + + From 5220f742be8f1304415848f669f3c9444e805c2d Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 17 Apr 2026 01:03:14 +0900 Subject: [PATCH 418/836] some changes --- include/Mw/Widget/Vulkan.h | 2 +- milsko.xml | 19 +++++++++++++++++++ src/widget/vulkan.c | 6 +++--- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/include/Mw/Widget/Vulkan.h b/include/Mw/Widget/Vulkan.h index 4f8a5e3db..1b008e5a4 100644 --- a/include/Mw/Widget/Vulkan.h +++ b/include/Mw/Widget/Vulkan.h @@ -68,7 +68,7 @@ typedef struct _MwVulkanConfig { * @warning This must be called before MwCreateWidget. * @warning The configuration provided will be used for future initializations of the Vulkan widget (unless it's changed) */ -MWDECL void MwVulkanConfigure(MwVulkanConfig cfg); +MWDECL void MwVulkanConfigure(MwVulkanConfig* cfg); /*! * @brief Field that can be gotten from Vulkan. diff --git a/milsko.xml b/milsko.xml index cca24fc6b..76d4755e2 100644 --- a/milsko.xml +++ b/milsko.xml @@ -38,6 +38,11 @@ + + + + + +
+ + + + + + + + + + +
diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index 817644c3e..e836ac379 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -489,8 +489,8 @@ static int vulkan_devices_setup(MwWidget handle, vulkan_t* o) { return 0; } -void MwVulkanConfigure(MwVulkanConfig cfg) { - vulkan_config = cfg; +void MwVulkanConfigure(MwVulkanConfig* cfg) { + vulkan_config = *cfg; } void MwVulkanEnableExtension(const char* name) { @@ -595,7 +595,7 @@ void MwVulkanEnableLayer(const char* ext_name) { (void)ext_name; } -void MwVulkanConfigure(MwVulkanConfig cfg) { +void MwVulkanConfigure(MwVulkanConfig* cfg) { (void)cfg; } From 570f05540ef6dc88bfd2f8cedb9de10bab0313e1 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 17 Apr 2026 01:36:34 +0900 Subject: [PATCH 419/836] many things changed --- examples/basic/clipboard.c | 4 +- examples/gldemos/tripaint.c | 6 +-- examples/vkdemos/vulkan.c | 18 ++++----- include/Mw/Constants.h | 22 +++++++++++ include/Mw/LowLevel.h | 14 ------- include/Mw/StringDefs.h | 41 ++++++++++---------- include/Mw/TypeDefs.h | 20 +++------- include/Mw/Widget/Vulkan.h | 24 ++++++------ milsko.xml | 74 ++++++++++++++++++++++++++++++------- src/backend/cocoa.m | 68 +++++++++++++++++----------------- src/backend/gdi.c | 24 ++++++------ src/backend/wayland.c | 34 ++++++++--------- src/backend/x11.c | 24 ++++++------ src/core.c | 17 +++++---- src/dialog/colorpicker.c | 2 +- src/dialog/filechooser.c | 4 +- src/widget/combobox.c | 2 +- src/widget/entry.c | 8 ++-- src/widget/listbox.c | 14 +++---- src/widget/menu.c | 4 +- src/widget/numberentry.c | 4 +- src/widget/scrollbar.c | 8 ++-- src/widget/submenu.c | 2 +- src/widget/treeview.c | 10 ++--- src/widget/vulkan.c | 18 ++++----- 25 files changed, 258 insertions(+), 208 deletions(-) diff --git a/examples/basic/clipboard.c b/examples/basic/clipboard.c index 38084a184..94a192f22 100644 --- a/examples/basic/clipboard.c +++ b/examples/basic/clipboard.c @@ -42,9 +42,9 @@ static void clipboard(MwWidget handle, void* user_data, void* call_data) { static void tick(MwWidget handle, void* user_data, void* call_data) { cur_text = text1; - MwGetClipboard(handle, MwClipboardMain); + MwGetClipboard(handle, MwCLIPBOARD_MAIN); cur_text = text2; - MwGetClipboard(handle, MwClipboardPrimary); + MwGetClipboard(handle, MwCLIPBOARD_PRIMARY); MwForceRender(window); } diff --git a/examples/gldemos/tripaint.c b/examples/gldemos/tripaint.c index 2cc7aa844..1208b26ae 100644 --- a/examples/gldemos/tripaint.c +++ b/examples/gldemos/tripaint.c @@ -51,12 +51,12 @@ static void tick(MwWidget handle, void* user, void* call) { } static void mouse(MwWidget handle, void* user, void* call) { - MwLLMouse* mouse = call; + MwMouse* mouse = call; (void)handle; (void)user; - if(mouse->button == MwLLMouseLeft) { + if(mouse->button == MwMOUSE_LEFT) { t[ct].points[click * 2 + 0] = mouse->point.x; t[ct].points[click * 2 + 1] = mouse->point.y; click++; @@ -82,7 +82,7 @@ static void mouse(MwWidget handle, void* user, void* call) { for(i = 0; i < ct; i++) t[i] = old[i]; free(old); } - } else if(mouse->button == MwLLMouseRight) { + } else if(mouse->button == MwMOUSE_RIGHT) { if(click > 0) { click = 0; } else if(ct > 0) { diff --git a/examples/vkdemos/vulkan.c b/examples/vkdemos/vulkan.c index 0c59891ad..7e20a5be7 100644 --- a/examples/vkdemos/vulkan.c +++ b/examples/vkdemos/vulkan.c @@ -232,15 +232,15 @@ void vulkan_setup(MwWidget handle) { VkFenceCreateInfo fenceInfo = {}; int err = 0; - _vkGetInstanceProcAddr = MwVulkanGetField(handle, MwVulkanField_GetInstanceProcAddr, &err); - instance = MwVulkanGetField(handle, MwVulkanField_Instance, &err); - device = MwVulkanGetField(handle, MwVulkanField_LogicalDevice, &err); - physicalDevice = MwVulkanGetField(handle, MwVulkanField_PhysicalDevice, &err); - graphicsQueue = MwVulkanGetField(handle, MwVulkanField_GraphicsQueue, &err); - presentQueue = MwVulkanGetField(handle, MwVulkanField_PresentQueue, &err); - surface = MwVulkanGetField(handle, MwVulkanField_Surface, &err); - presentQueueIndex = MwVulkanGetField(handle, MwVulkanField_PresentQueueIndex, &err); - graphicsQueueIndex = MwVulkanGetField(handle, MwVulkanField_GraphicsQueueIndex, &err); + _vkGetInstanceProcAddr = MwVulkanGetField(handle, MwVULKANFIELD_GETINSTANCEPROCADDR, &err); + instance = MwVulkanGetField(handle, MwVULKANFIELD_INSTANCE, &err); + device = MwVulkanGetField(handle, MwVULKANFIELD_LOGICALDEVICE, &err); + physicalDevice = MwVulkanGetField(handle, MwVULKANFIELD_PHYSICALDEVICE, &err); + graphicsQueue = MwVulkanGetField(handle, MwVULKANFIELD_GRAPHICSQUEUE, &err); + presentQueue = MwVulkanGetField(handle, MwVULKANFIELD_PRESENTQUEUE, &err); + surface = MwVulkanGetField(handle, MwVULKANFIELD_SURFACE, &err); + presentQueueIndex = MwVulkanGetField(handle, MwVULKANFIELD_PRESENTQUEUEINDEX, &err); + graphicsQueueIndex = MwVulkanGetField(handle, MwVULKANFIELD_GRAPHICSQUEUEINDEX, &err); LOAD_VK_FUNCTION(vkCreateShaderModule); LOAD_VK_FUNCTION(vkCreatePipelineLayout); diff --git a/include/Mw/Constants.h b/include/Mw/Constants.h index bc4757f49..d710ca006 100644 --- a/include/Mw/Constants.h +++ b/include/Mw/Constants.h @@ -99,4 +99,26 @@ enum MwMB_ICON { */ #define MwMB_BUTTONYESNOCANCEL (MwMB_BUTTONYES | MwMB_BUTTONNO | MwMB_BUTTONCANCEL) +/* Whether or not GetXY/SetXY works with global or local coordinates */ +enum MwCOORDINATE { + MwCOORDINATE_GLOBAL = 0, + MwCOORDINATE_LOCAL, +}; + +/* The clipboard type that MwGetClipboard should return */ +enum MwCLIPBOARD { + /* the clipboard that is present on every platform that supports it */ + MwCLIPBOARD_MAIN = 0, + /* the "primary" clipboard that Wayland stores to emulate X11's behavior. */ + MwCLIPBOARD_PRIMARY, +}; + +enum MwMOUSE { + MwMOUSE_LEFT = 1, + MwMOUSE_MIDDLE, + MwMOUSE_RIGHT, + MwMOUSE_WHEELUP, + MwMOUSE_WHEELDOWN +}; + #endif diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index ea31aefea..cbc67f9e0 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -10,7 +10,6 @@ #include typedef struct _MwLLHandler* MwLLHandler; -typedef struct _MwLLMouse MwLLMouse; typedef struct _MwLLCommon* MwLLCommon; typedef struct _MwLLCommonColor* MwLLCommonColor; typedef struct _MwLLCommonPixmap* MwLLCommonPixmap; @@ -187,19 +186,6 @@ enum MwLLKeyEnum { #define MwLLControlMask MwLLKeyMask | (1 << 30) #define MwLLAltMask MwLLKeyMask | (1 << 29) -enum MwLLMouseEnum { - MwLLMouseLeft = 1, - MwLLMouseMiddle, - MwLLMouseRight, - MwLLMouseWheelUp, - MwLLMouseWheelDown -}; - -struct _MwLLMouse { - MwPoint point; - int button; -}; - struct _MwLLHandler { void (*draw)(MwLL handle, void* data); void (*up)(MwLL handle, void* data); diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index cac605a5e..c657a637e 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -60,24 +60,27 @@ #define MwNmonospaceFont "VmonospaceFont" #define MwNboldMonospaceFont "VboldMonospaceFont" -#define MwNactivateHandler "Cactivate" /* NULL/int* (MwListBox)/void* (MwTreeView) */ -#define MwNresizeHandler "Cresize" /* NULL */ -#define MwNtickHandler "Ctick" /* NULL */ -#define MwNmenuHandler "Cmenu" /* MwMenu */ -#define MwNmouseDownHandler "CmouseDown" /* MwLLMouse* */ -#define MwNmouseUpHandler "CmouseUp" /* same as MwNmouseDownHandler */ -#define MwNmouseMoveHandler "CmouseMove" /* MwPoint* */ -#define MwNchangedHandler "Cchanged" /* NULL/int* (MwComboBox) */ -#define MwNkeyHandler "Ckey" /* int* (MwLLKeyEnum or character code) */ -#define MwNkeyReleaseHandler "CkeyRelease" /* same as MwNkeyHandler */ -#define MwNcloseHandler "Cclose" /* NULL */ -#define MwNfocusInHandler "CfocusIn" /* NULL */ -#define MwNfocusOutHandler "CfocusOut" /* NULL */ -#define MwNfileChosenHandler "CfileChosen" /* char* */ -#define MwNdirectoryChosenHandler "CdirectoryChosen" /* char* */ -#define MwNcolorChosenHandler "CcolorChosen" /* MwRGB* */ -#define MwNdrawHandler "Cdraw" /* NULL */ -#define MwNclipboardHandler "Cclipboard" /* char* */ -#define MwNdarkThemeHandler "CdarkTheme" /* int* */ +#define MwNactivateHandler "Cactivate" /* NULL */ +#define MwNlistBoxActivateHandler "ClistBoxActivate" /* int* */ +#define MwNtreeViewActivateHandler "CtreeViewActivate" /* void* */ +#define MwNresizeHandler "Cresize" /* NULL */ +#define MwNtickHandler "Ctick" /* NULL */ +#define MwNmenuHandler "Cmenu" /* MwMenu */ +#define MwNmouseDownHandler "CmouseDown" /* MwMouse* */ +#define MwNmouseUpHandler "CmouseUp" /* same as MwNmouseDownHandler */ +#define MwNmouseMoveHandler "CmouseMove" /* MwPoint* */ +#define MwNchangedHandler "Cchanged" /* NULL */ +#define MwNcomboBoxChangedHandler "CcomboBoxChanged" /* int* */ +#define MwNkeyHandler "Ckey" /* int* (MwLLKeyEnum or character code) */ +#define MwNkeyReleaseHandler "CkeyRelease" /* same as MwNkeyHandler */ +#define MwNcloseHandler "Cclose" /* NULL */ +#define MwNfocusInHandler "CfocusIn" /* NULL */ +#define MwNfocusOutHandler "CfocusOut" /* NULL */ +#define MwNfileChosenHandler "CfileChosen" /* char* */ +#define MwNdirectoryChosenHandler "CdirectoryChosen" /* char* */ +#define MwNcolorChosenHandler "CcolorChosen" /* MwRGB* */ +#define MwNdrawHandler "Cdraw" /* NULL */ +#define MwNclipboardHandler "Cclipboard" /* char* */ +#define MwNdarkThemeHandler "CdarkTheme" /* int* */ #endif diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index bd0af3d78..ca8e32b05 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -28,6 +28,7 @@ typedef struct _MwTreeViewEntry MwTreeViewEntry; typedef struct _MwDirectoryEntry MwDirectoryEntry; typedef struct _MwListBoxPacket MwListBoxPacket; typedef struct _MwBox* MwBox; +typedef struct _MwMouse MwMouse; #ifdef _MILSKO typedef struct _MwWidget* MwWidget; #else @@ -210,6 +211,11 @@ struct _MwBox { int layout; }; +struct _MwMouse { + MwPoint point; + int button; +}; + struct _MwClass { MwHandlerWithStatus create; MwHandler destroy; @@ -233,18 +239,4 @@ struct _MwClass { void* reserved4; }; -/* Whether or not GetXY/SetXY works with global or local coordinates */ -enum MwCoordinateType { - MwCoordinatesGlobal = 0, - MwCoordinatesLocal, -}; - -/* The clipboard type that MwGetClipboard should return */ -enum MwClipboardType { - /* the clipboard that is present on every platform that supports it */ - MwClipboardMain = 0, - /* the "primary" clipboard that Wayland stores to emulate X11's behavior. */ - MwClipboardPrimary, -}; - #endif diff --git a/include/Mw/Widget/Vulkan.h b/include/Mw/Widget/Vulkan.h index 1b008e5a4..ccfb02446 100644 --- a/include/Mw/Widget/Vulkan.h +++ b/include/Mw/Widget/Vulkan.h @@ -73,45 +73,45 @@ MWDECL void MwVulkanConfigure(MwVulkanConfig* cfg); /*! * @brief Field that can be gotten from Vulkan. */ -typedef enum _MwVulkanField { +enum MwVULKANFIELD { /*! * @brief The address of the vulkan widget's vkGetInstanceProcAddr function (PFN_vkGetInstanceProcAddr) */ - MwVulkanField_GetInstanceProcAddr = 0, + MwVULKANFIELD_GETINSTANCEPROCADDR = 0, /*! * @brief The address of the vulkan widget's instance (VkInstance) */ - MwVulkanField_Instance, + MwVULKANFIELD_INSTANCE, /*! * @brief The address of the vulkan widget's surface (VkSurfaceKHR) */ - MwVulkanField_Surface, + MwVULKANFIELD_SURFACE, /*! * @brief The address of the vulkan widget's physical device (VkPhysicalDevice) */ - MwVulkanField_PhysicalDevice, + MwVULKANFIELD_PHYSICALDEVICE, /*! * @brief The address of the vulkan widget's logical device (VkDevice) */ - MwVulkanField_LogicalDevice, + MwVULKANFIELD_LOGICALDEVICE, /*! * @brief The address of the index that the vulkan widget uses for the graphics queue (uint32_t *) */ - MwVulkanField_GraphicsQueueIndex, + MwVULKANFIELD_GRAPHICSQUEUEINDEX, /*! * @brief The address of the index that the vulkan widget uses for the present queue (uint32_t *) */ - MwVulkanField_PresentQueueIndex, - MwVulkanField_GraphicsQueue, + MwVULKANFIELD_PRESENTQUEUEINDEX, + MwVULKANFIELD_GRAPHICSQUEUE, /*! * @brief The address of the vulkan widget's graphics queue (VkQueue) */ - MwVulkanField_PresentQueue, -} MwVulkanField; + MwVULKANFIELD_PRESENTQUEUE, +}; /*! * @brief Function for getting a field from within Vulkan. - * @warning Consult the documentation for MwVulkanField to know what type is expected for out. + * @warning Consult the documentation for MwVULKANFIELD to know what type is expected for out. */ MwInline void* MwVulkanGetField(MwWidget handle, int field, int* out) { void* field_out; diff --git a/milsko.xml b/milsko.xml index 76d4755e2..2edcd4169 100644 --- a/milsko.xml +++ b/milsko.xml @@ -38,6 +38,10 @@ + + + + @@ -109,24 +113,55 @@ + + + + + + - - - - + + + + + + + + + + + + - - + + + + + + + + + - - - + + + + + + + + + - - + + + + + + @@ -153,9 +188,20 @@ - - 0 - + + 0 + + + + 0 + + + + 1 + + + + 0 diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index cfac1add0..d9c6382ee 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -347,12 +347,12 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { } - (void)mouseMoved:(NSEvent*)ev { - MwLLMouse mouse; - NSPoint mousePoint = pointFlip([ev locationInWindow]); - MwLL this = [((MilskoFakePointer*)[[self subviews] objectAtIndex:0]) pointer]; - mouse.button = MwLLMouseLeft; - mouse.point.x = mousePoint.x; - mouse.point.y = mousePoint.y; + MwMouse mouse; + NSPoint mousePoint = pointFlip([ev locationInWindow]); + MwLL this = [((MilskoFakePointer*)[[self subviews] objectAtIndex:0]) pointer]; + mouse.button = MwMOUSE_LEFT; + mouse.point.x = mousePoint.x; + mouse.point.y = mousePoint.y; MwLLDispatch(this, move, &mouse); [this->cocoa.real nudge]; [super mouseMoved:ev]; @@ -362,51 +362,51 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { } - (void)mouseDown:(NSEvent*)ev { - MwLLMouse mouse; - NSPoint mousePoint = [ev locationInWindow]; - MwLL this = [((MilskoFakePointer*)[[self subviews] objectAtIndex:0]) pointer]; - mousePoint.y = [[ev window] frame].size.height - mousePoint.y; - mouse.button = MwLLMouseLeft; - mouse.point.x = mousePoint.x; - mouse.point.y = mousePoint.y; + MwMouse mouse; + NSPoint mousePoint = [ev locationInWindow]; + MwLL this = [((MilskoFakePointer*)[[self subviews] objectAtIndex:0]) pointer]; + mousePoint.y = [[ev window] frame].size.height - mousePoint.y; + mouse.button = MwMOUSE_LEFT; + mouse.point.x = mousePoint.x; + mouse.point.y = mousePoint.y; MwLLDispatch(this, down, &mouse); [this->cocoa.real nudge]; [super mouseDown:ev]; } - (void)mouseUp:(NSEvent*)ev { - MwLLMouse mouse; - NSPoint mousePoint = [ev locationInWindow]; - MwLL this = [((MilskoFakePointer*)[[self subviews] objectAtIndex:0]) pointer]; - mousePoint.y = [[ev window] frame].size.height - mousePoint.y; - mouse.button = MwLLMouseLeft; - mouse.point.x = mousePoint.x; - mouse.point.y = mousePoint.y; + MwMouse mouse; + NSPoint mousePoint = [ev locationInWindow]; + MwLL this = [((MilskoFakePointer*)[[self subviews] objectAtIndex:0]) pointer]; + mousePoint.y = [[ev window] frame].size.height - mousePoint.y; + mouse.button = MwMOUSE_LEFT; + mouse.point.x = mousePoint.x; + mouse.point.y = mousePoint.y; MwLLDispatch(this, up, &mouse); [this->cocoa.real nudge]; [super mouseUp:ev]; } - (void)rightMouseDown:(NSEvent*)ev { - MwLLMouse mouse; - NSPoint mousePoint = [ev locationInWindow]; - MwLL this = [((MilskoFakePointer*)[[self subviews] objectAtIndex:0]) pointer]; - mousePoint.y = [[ev window] frame].size.height - mousePoint.y; - mouse.button = MwLLMouseRight; - mouse.point.x = mousePoint.x; - mouse.point.y = mousePoint.y; + MwMouse mouse; + NSPoint mousePoint = [ev locationInWindow]; + MwLL this = [((MilskoFakePointer*)[[self subviews] objectAtIndex:0]) pointer]; + mousePoint.y = [[ev window] frame].size.height - mousePoint.y; + mouse.button = MwMOUSE_RIGHT; + mouse.point.x = mousePoint.x; + mouse.point.y = mousePoint.y; MwLLDispatch(this, down, &mouse); [this->cocoa.real nudge]; [super rightMouseDown:ev]; } - (void)rightMouseUp:(NSEvent*)ev { - MwLLMouse mouse; - NSPoint mousePoint = [ev locationInWindow]; - MwLL this = [((MilskoFakePointer*)[[self subviews] objectAtIndex:0]) pointer]; - mousePoint.y = [[ev window] frame].size.height - mousePoint.y; - mouse.button = MwLLMouseRight; - mouse.point.x = mousePoint.x; - mouse.point.y = mousePoint.y; + MwMouse mouse; + NSPoint mousePoint = [ev locationInWindow]; + MwLL this = [((MilskoFakePointer*)[[self subviews] objectAtIndex:0]) pointer]; + mousePoint.y = [[ev window] frame].size.height - mousePoint.y; + mouse.button = MwMOUSE_RIGHT; + mouse.point.x = mousePoint.x; + mouse.point.y = mousePoint.y; MwLLDispatch(this, up, &mouse); [this->cocoa.real nudge]; [super rightMouseUp:ev]; diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 055b6c26d..024959e9d 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -79,44 +79,44 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { EndPaint(hWnd, &ps); } } else if(msg == WM_LBUTTONDOWN || msg == WM_MBUTTONDOWN || msg == WM_RBUTTONDOWN) { - MwLLMouse p; + MwMouse p; p.point.x = LOWORD(lp); p.point.y = HIWORD(lp); if(msg == WM_LBUTTONDOWN) { - p.button = MwLLMouseLeft; + p.button = MwMOUSE_LEFT; } else if(msg == WM_MBUTTONDOWN) { - p.button = MwLLMouseMiddle; + p.button = MwMOUSE_MIDDLE; } else if(msg == WM_RBUTTONDOWN) { - p.button = MwLLMouseRight; + p.button = MwMOUSE_RIGHT; } SetCapture(hWnd); SetFocus(hWnd); MwLLDispatch(u->ll, down, &p); } else if(msg == WM_LBUTTONUP || msg == WM_MBUTTONUP || msg == WM_RBUTTONUP) { - MwLLMouse p; + MwMouse p; p.point.x = LOWORD(lp); p.point.y = HIWORD(lp); if(msg == WM_LBUTTONUP) { - p.button = MwLLMouseLeft; + p.button = MwMOUSE_LEFT; } else if(msg == WM_MBUTTONUP) { - p.button = MwLLMouseMiddle; + p.button = MwMOUSE_MIDDLE; } else if(msg == WM_RBUTTONUP) { - p.button = MwLLMouseRight; + p.button = MwMOUSE_RIGHT; } SetCapture(NULL); MwLLDispatch(u->ll, up, &p); } else if(msg == WM_MOUSEWHEEL) { - int d = GET_WHEEL_DELTA_WPARAM(wp); - MwLLMouse p; + int d = GET_WHEEL_DELTA_WPARAM(wp); + MwMouse p; p.point.x = LOWORD(lp); p.point.y = HIWORD(lp); if(d > 0) { - p.button = MwLLMouseWheelUp; + p.button = MwMOUSE_WHEELUP; } else if(d < 0) { - p.button = MwLLMouseWheelDown; + p.button = MwMOUSE_WHEELDOWN; } MwLLDispatch(u->ll, down, &p); diff --git a/src/backend/wayland.c b/src/backend/wayland.c index fc4a67fc4..31eefb20e 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -119,7 +119,7 @@ static void recursive_dispatch_resize(MwLL handle) { }; /* Recursively dispatch a move event to a widget and its children */ -static void recursive_dispatch_move(MwLL handle, MwLLMouse* p) { +static void recursive_dispatch_move(MwLL handle, MwMouse* p) { MwWidget h = (MwWidget)handle->common.user; if(h) { int i; @@ -282,7 +282,7 @@ static void wl_clipboard_read(wl_clipboard_device_context_t* ctx, int clipboard_ timeout.tv_sec = 0; timeout.tv_usec = 100; - if(clipboard_type == MwClipboardPrimary) { + if(clipboard_type == MwCLIPBOARD_PRIMARY) { zwp_primary_selection_offer_v1_receive(ctx->offer.zwp, "text/plain", fds[1]); } else if(ctx->offer.wl) { wl_data_offer_receive(ctx->offer.wl, "text/plain", fds[1]); @@ -501,7 +501,7 @@ static void pointer_leave(void* data, struct wl_pointer* wl_pointer, MwU32 seria WAYLAND_EVENT_OP_END(self); }; -static void xdg_borderless_step(MwLL self, MwLLMouse p, MwU32 serial) { +static void xdg_borderless_step(MwLL self, MwMouse p, MwU32 serial) { if(self->wayland.type == MWLL_WAYLAND_TOPLEVEL && self->wayland.backbuffer.surface == curSurface) { if(p.point.y >= (self->wayland.wh + CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM) - 5) { if(p.point.x >= (self->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT) - 5) { @@ -535,8 +535,8 @@ static void relative_pointer_motion(void* data, wl_fixed_t dy, wl_fixed_t dxUnaccel, wl_fixed_t dyUnaccel) { - MwLL self = data; - MwLLMouse p; + MwLL self = data; + MwMouse p; WAYLAND_EVENT_OP_START(self); @@ -567,9 +567,9 @@ static void zwp_relative_pointer_manager_v1_interface_destroy(struct _MwLLWaylan /* `wl_pointer.motion` callback */ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time, wl_fixed_t surface_x, wl_fixed_t surface_y) { - MwLL self = data; - MwLL topmost_parent = self; - MwLLMouse p; + MwLL self = data; + MwLL topmost_parent = self; + MwMouse p; (void)time; (void)wl_pointer; @@ -590,9 +590,9 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time /* `wl_pointer.button` callback */ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 serial, MwU32 time, MwU32 button, MwU32 state) { - MwLL self = data; - MwLLMouse p; - MwBool inArea = MwFALSE; + MwLL self = data; + MwMouse p; + MwBool inArea = MwFALSE; (void)wl_pointer; (void)serial; @@ -613,13 +613,13 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri switch(button) { case BTN_LEFT: - p.button = MwLLMouseLeft; + p.button = MwMOUSE_LEFT; break; case BTN_MIDDLE: - p.button = MwLLMouseMiddle; + p.button = MwMOUSE_MIDDLE; break; case BTN_RIGHT: - p.button = MwLLMouseRight; + p.button = MwMOUSE_RIGHT; break; } self->wayland.held_down = state == WL_POINTER_BUTTON_STATE_PRESSED; @@ -1757,7 +1757,7 @@ static void wl_logger(const char* fmt, va_list args) { static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int height, enum _MwLLWaylandType ty) { /* Wayland does not report global coordinates ever. Compositors are not even expected to have knowledge of this. */ - r->common.coordinate_type = MwCoordinatesLocal; + r->common.coordinate_type = MwCOORDINATE_LOCAL; r->common.type = MwLLBackendWayland; @@ -2510,7 +2510,7 @@ static void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_ty handle->wayland.clipboard_buffer = malloc(strlen(text)); strcpy(handle->wayland.clipboard_buffer, text); - if(clipboard_type == MwClipboardPrimary) { + if(clipboard_type == MwCLIPBOARD_PRIMARY) { if(handle->wayland.supports_zwp) { for(i = 0; i < arrlen(handle->wayland.clipboard_devices_zwp); i++) { wl_clipboard_device_context_t* device = handle->wayland.clipboard_devices_zwp[i]; @@ -2529,7 +2529,7 @@ static void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_ty static void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) { int i; - if(clipboard_type == MwClipboardPrimary) { + if(clipboard_type == MwCLIPBOARD_PRIMARY) { if(handle->wayland.supports_zwp) { for(i = 0; i < arrlen(handle->wayland.clipboard_devices_zwp); i++) { wl_clipboard_read( diff --git a/src/backend/x11.c b/src/backend/x11.c index 898da85c0..cc76ed66e 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -694,38 +694,38 @@ static void MwLLNextEventImpl(MwLL handle) { handle->x11.force_render = 0; render = 1; } else if(ev.type == ButtonPress) { - MwLLMouse p; + MwMouse p; p.point.x = ev.xbutton.x; p.point.y = ev.xbutton.y; if(ev.xbutton.button == Button1) { - p.button = MwLLMouseLeft; + p.button = MwMOUSE_LEFT; } else if(ev.xbutton.button == Button2) { - p.button = MwLLMouseMiddle; + p.button = MwMOUSE_MIDDLE; } else if(ev.xbutton.button == Button3) { - p.button = MwLLMouseRight; + p.button = MwMOUSE_RIGHT; } else if(ev.xbutton.button == Button4) { - p.button = MwLLMouseWheelUp; + p.button = MwMOUSE_WHEELUP; } else if(ev.xbutton.button == Button5) { - p.button = MwLLMouseWheelDown; + p.button = MwMOUSE_WHEELDOWN; } XSetInputFocus(handle->x11.display, handle->x11.window, RevertToNone, CurrentTime); MwLLDispatch(handle, down, &p); } else if(ev.type == ButtonRelease) { - MwLLMouse p; + MwMouse p; p.point.x = ev.xbutton.x; p.point.y = ev.xbutton.y; if(ev.xbutton.button == Button1) { - p.button = MwLLMouseLeft; + p.button = MwMOUSE_LEFT; } else if(ev.xbutton.button == Button2) { - p.button = MwLLMouseMiddle; + p.button = MwMOUSE_MIDDLE; } else if(ev.xbutton.button == Button3) { - p.button = MwLLMouseRight; + p.button = MwMOUSE_RIGHT; } else if(ev.xbutton.button == Button4) { - p.button = MwLLMouseWheelUp; + p.button = MwMOUSE_WHEELUP; } else if(ev.xbutton.button == Button5) { - p.button = MwLLMouseWheelDown; + p.button = MwMOUSE_WHEELDOWN; } MwLLDispatch(handle, up, &p); diff --git a/src/core.c b/src/core.c index 0404fa72b..0c8360ef9 100644 --- a/src/core.c +++ b/src/core.c @@ -52,22 +52,23 @@ static void lldrawhandler(MwLL handle, void* data) { } static void lluphandler(MwLL handle, void* data) { - MwWidget h = (MwWidget)handle->common.user; - MwLLMouse* p = data; + MwWidget h = (MwWidget)handle->common.user; + MwMouse* p = data; - if(p->button == MwLLMouseLeft) h->pressed = 0; + if(p->button == MwMOUSE_LEFT) h->pressed = 0; h->mouse_point.x = p->point.x; h->mouse_point.y = p->point.y; - if(p->button == MwLLMouseLeft) MwDispatch(h, click); + if(p->button == MwMOUSE_LEFT) MwDispatch(h, click); MwDispatch3(h, mouse_up, data); MwDispatchUserHandler(h, MwNmouseUpHandler, data); } static void lldownhandler(MwLL handle, void* data) { - MwWidget h = (MwWidget)handle->common.user; - MwLLMouse* p = data; - if(p->button == MwLLMouseLeft) h->pressed = 1; + MwWidget h = (MwWidget)handle->common.user; + MwMouse* p = data; + + if(p->button == MwMOUSE_LEFT) h->pressed = 1; h->mouse_point.x = p->point.x; h->mouse_point.y = p->point.y; @@ -962,7 +963,7 @@ int MwGetCoordinateType(MwWidget handle) { if(handle->parent == NULL || handle->parent->lowlevel == NULL) { return handle->lowlevel->common.coordinate_type; } else { - return MwCoordinatesLocal; + return MwCOORDINATE_LOCAL; } } diff --git a/src/dialog/colorpicker.c b/src/dialog/colorpicker.c index 3b7d33188..c08b53589 100644 --- a/src/dialog/colorpicker.c +++ b/src/dialog/colorpicker.c @@ -160,7 +160,7 @@ static void color_picker_image_update(color_picker_t* picker) { static void color_picker_click(MwWidget handle, void* user, void* call) { color_picker_t* picker = user; - MwLLMouse* mouse = call; + MwMouse* mouse = call; char hexColor[8]; int i; char fgColor[8]; diff --git a/src/dialog/filechooser.c b/src/dialog/filechooser.c index c18027677..ff1683c36 100644 --- a/src/dialog/filechooser.c +++ b/src/dialog/filechooser.c @@ -221,7 +221,7 @@ static void layout(MwWidget handle) { MwNleftPadding, 16, NULL); MwListBoxInsert(fc->nav, -1, p); - MwAddUserHandler(fc->nav, MwNactivateHandler, nav_activate, NULL); + MwAddUserHandler(fc->nav, MwNlistBoxActivateHandler, nav_activate, NULL); MwListBoxDestroyPacket(p); } else { @@ -242,7 +242,7 @@ static void layout(MwWidget handle) { MwNhasHeading, 1, MwNleftPadding, 16, NULL); - MwAddUserHandler(fc->files, MwNactivateHandler, files_activate, NULL); + MwAddUserHandler(fc->files, MwNlistBoxActivateHandler, files_activate, NULL); } else { MwVaApply(fc->files, MwNx, wx, diff --git a/src/widget/combobox.c b/src/widget/combobox.c index c061512d7..4c964f105 100644 --- a/src/widget/combobox.c +++ b/src/widget/combobox.c @@ -89,7 +89,7 @@ static void listbox_activate(MwWidget handle, void* user, void* client) { MwForceRender(handle->parent); - MwDispatchUserHandler(handle->parent, MwNchangedHandler, client); + MwDispatchUserHandler(handle->parent, MwNcomboBoxChangedHandler, client); MwDestroyWidget(handle); } diff --git a/src/widget/entry.c b/src/widget/entry.c index 846dc1979..41b976e83 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -113,7 +113,7 @@ static void key(MwWidget handle, int code) { } else if(code == MwLLKeyEnter) { MwDispatchUserHandler(handle, MwNactivateHandler, NULL); } else if(code == (MwLLControlMask | 'v')) { - MwLLGetClipboard(handle->lowlevel, MwClipboardMain); + MwLLGetClipboard(handle->lowlevel, MwCLIPBOARD_MAIN); } else if(!(code & MwLLKeyMask)) { int incr = 0; out = malloc(strlen(str) + 5 + 1); @@ -136,9 +136,9 @@ static void key(MwWidget handle, int code) { #if defined(USE_X11) || defined(USE_WAYLAND) static void mouse_up(MwWidget handle, void* ptr) { if(handle->lowlevel->common.type == MwLLBackendWayland || handle->lowlevel->common.type == MwLLBackendX11) { - MwLLMouse* mouse = ptr; - if(mouse->button == MwLLMouseMiddle) { - MwLLGetClipboard(handle->lowlevel, MwClipboardPrimary); + MwMouse* mouse = ptr; + if(mouse->button == MwMOUSE_MIDDLE) { + MwLLGetClipboard(handle->lowlevel, MwCLIPBOARD_PRIMARY); } } MwForceRender2(handle, NULL); diff --git a/src/widget/listbox.c b/src/widget/listbox.c index 98c86cf97..6f2a9db2a 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -119,12 +119,12 @@ static void vscroll_changed(MwWidget handle, void* user, void* call) { } static void frame_mouse_down(MwWidget handle, void* user, void* call) { - MwListBox lb = handle->parent->internal; - MwLLMouse* m = call; + MwListBox lb = handle->parent->internal; + MwMouse* m = call; (void)user; - if(m->button == MwLLMouseLeft) { + if(m->button == MwMOUSE_LEFT) { int st = 0; int i; int y = MwDefaultBorderWidth(handle); @@ -140,7 +140,7 @@ static void frame_mouse_down(MwWidget handle, void* user, void* call) { if((((t = MwTimeGetTick()) - lb->click_time) < MwDoubleClickTimeout && old == st + i) || MwGetInteger(handle->parent, MwNsingleClickSelectable)) { int n = MwGetInteger(handle->parent, MwNvalue); - MwDispatchUserHandler(handle->parent, MwNactivateHandler, &n); + MwDispatchUserHandler(handle->parent, MwNlistBoxActivateHandler, &n); } lb->click_time = t; @@ -154,12 +154,12 @@ static void frame_mouse_down(MwWidget handle, void* user, void* call) { } static void frame_mouse_up(MwWidget handle, void* user, void* call) { - MwListBox lb = handle->parent->internal; - MwLLMouse* m = call; + MwListBox lb = handle->parent->internal; + MwMouse* m = call; (void)user; - if(m->button == MwLLMouseLeft) { + if(m->button == MwMOUSE_LEFT) { lb->pressed = 0; } } diff --git a/src/widget/menu.c b/src/widget/menu.c index b66108652..1517591bc 100644 --- a/src/widget/menu.c +++ b/src/widget/menu.c @@ -118,7 +118,7 @@ static void parent_resize(MwWidget handle) { static void mouse_down(MwWidget handle, void* ptr) { MENU_LOOP_DECL; - if(((MwLLMouse*)ptr)->button != MwLLMouseLeft) return; + if(((MwMouse*)ptr)->button != MwMOUSE_LEFT) return; BEGIN_MENU_LOOP; if(in_area) { @@ -150,7 +150,7 @@ static void mouse_down(MwWidget handle, void* ptr) { static void mouse_up(MwWidget handle, void* ptr) { MENU_LOOP_DECL; - if(((MwLLMouse*)ptr)->button != MwLLMouseLeft) return; + if(((MwMouse*)ptr)->button != MwMOUSE_LEFT) return; BEGIN_MENU_LOOP; if(in_area && m->sub[i]->wsub != NULL) { diff --git a/src/widget/numberentry.c b/src/widget/numberentry.c index 05d590f5c..69ee4c9d5 100644 --- a/src/widget/numberentry.c +++ b/src/widget/numberentry.c @@ -98,7 +98,7 @@ static void mouse_up(MwWidget handle, void* ptr) { int h = MwGetInteger(handle, MwNheight); const char* str = MwGetText(handle, MwNtext); - if(((MwLLMouse*)ptr)->button != MwLLMouseLeft) return; + if(((MwMouse*)ptr)->button != MwMOUSE_LEFT) return; if(e->mouse.x >= (w - e->right)) { char s[512]; @@ -116,7 +116,7 @@ static void mouse_up(MwWidget handle, void* ptr) { static void mouse_down(MwWidget handle, void* ptr) { MwEntry e = handle->internal; - if(((MwLLMouse*)ptr)->button != MwLLMouseLeft) return; + if(((MwMouse*)ptr)->button != MwMOUSE_LEFT) return; e->mouse = handle->mouse_point; diff --git a/src/widget/scrollbar.c b/src/widget/scrollbar.c index bed80c0b2..58ed578b2 100644 --- a/src/widget/scrollbar.c +++ b/src/widget/scrollbar.c @@ -170,9 +170,9 @@ static void mouse_down(MwWidget handle, void* ptr) { int wh = MwGetInteger(handle, MwNheight); int or = MwGetInteger(handle, MwNorientation); MwScrollBar scr = handle->internal; - MwLLMouse* m = ptr; + MwMouse* m = ptr; - if(m->button == MwLLMouseWheelUp) { + if(m->button == MwMOUSE_WHEELUP) { int min = MwGetInteger(handle, MwNminValue); int val = MwGetInteger(handle, MwNvalue); int diff = MwGetInteger(handle, MwNareaShown); @@ -184,7 +184,7 @@ static void mouse_down(MwWidget handle, void* ptr) { MwSetInteger(handle, MwNvalue, val); MwSetInteger(handle, MwNchangedBy, -diff); MwDispatchUserHandler(handle, MwNchangedHandler, NULL); - } else if(m->button == MwLLMouseWheelDown) { + } else if(m->button == MwMOUSE_WHEELDOWN) { int max = MwGetInteger(handle, MwNmaxValue); int val = MwGetInteger(handle, MwNvalue); int diff = MwGetInteger(handle, MwNareaShown); @@ -197,7 +197,7 @@ static void mouse_down(MwWidget handle, void* ptr) { MwSetInteger(handle, MwNchangedBy, diff); MwDispatchUserHandler(handle, MwNchangedHandler, NULL); } - if(m->button != MwLLMouseLeft) return; + if(m->button != MwMOUSE_LEFT) return; scr->point = handle->mouse_point; scr->drag = 0; diff --git a/src/widget/submenu.c b/src/widget/submenu.c index f14d6d5f4..c937a9ca4 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -183,7 +183,7 @@ static void mwSubMenuAppearImpl(MwWidget handle, MwMenu menu, MwPoint* point, in MwLLMakeToolWindow(handle->lowlevel); MwLLDetach(handle->lowlevel, &p); - if(handle->lowlevel->common.coordinate_type == MwCoordinatesGlobal) { + if(handle->lowlevel->common.coordinate_type == MwCOORDINATE_GLOBAL) { if(MwGetInteger(handle, MwNy) + sz.height > rc.height) { MwVaApply(handle, MwNy, rc.height - sz.height, diff --git a/src/widget/treeview.c b/src/widget/treeview.c index 9d3320699..99f12e27e 100644 --- a/src/widget/treeview.c +++ b/src/widget/treeview.c @@ -128,7 +128,7 @@ static void recursion(MwWidget handle, MwTreeViewEntry* tree, MwTreeViewEntry** set_all(root, 0); tree->selected = 1; if(((t = MwTimeGetTick()) - tree->click_time) < MwDoubleClickTimeout || MwGetInteger(handle->parent, MwNsingleClickSelectable)) { - MwDispatchUserHandler(handle->parent, MwNactivateHandler, tree); + MwDispatchUserHandler(handle->parent, MwNtreeViewActivateHandler, tree); } tree->click_time = t; @@ -213,11 +213,11 @@ static int recursive_length(MwTreeViewEntry** e) { static void frame_mouse_down(MwWidget handle, void* user, void* call) { MwTreeView tv = handle->parent->internal; - MwLLMouse* mouse = call; + MwMouse* mouse = call; (void)user; - if(mouse->button == MwLLMouseLeft) tv->pressed = mouse->point; + if(mouse->button == MwMOUSE_LEFT) tv->pressed = mouse->point; } static void resize(MwWidget handle); @@ -227,11 +227,11 @@ static void frame_mouse_up(MwWidget handle, void* user, void* call) { int shared = 0; int skip = MwGetInteger(tv->vscroll, MwNvalue) * (MwGetInteger(tv->vscroll, MwNmaxValue) - MwGetInteger(tv->vscroll, MwNareaShown)) / MwGetInteger(tv->vscroll, MwNmaxValue); MwPoint p; - MwLLMouse* mouse = call; + MwMouse* mouse = call; (void)user; - if(mouse->button == MwLLMouseLeft) { + if(mouse->button == MwMOUSE_LEFT) { int i; p.x = MwDefaultBorderWidth(tv->frame); p.y = MwDefaultBorderWidth(tv->frame); diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index e836ac379..0116cb974 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -523,23 +523,23 @@ static void* mwVulkanGetFieldImpl(MwWidget handle, int field, int* out) { char buf[1024]; switch(field) { - case MwVulkanField_GetInstanceProcAddr: + case MwVULKANFIELD_GETINSTANCEPROCADDR: return o->vkGetInstanceProcAddr; - case MwVulkanField_Instance: + case MwVULKANFIELD_INSTANCE: return o->vkInstance; - case MwVulkanField_Surface: + case MwVULKANFIELD_SURFACE: return o->vkSurface; - case MwVulkanField_PhysicalDevice: + case MwVULKANFIELD_PHYSICALDEVICE: return o->vkPhysicalDevice; - case MwVulkanField_LogicalDevice: + case MwVULKANFIELD_LOGICALDEVICE: return o->vkLogicalDevice; - case MwVulkanField_GraphicsQueueIndex: + case MwVULKANFIELD_GRAPHICSQUEUEINDEX: return &o->vkGraphicsFamilyIDX; - case MwVulkanField_PresentQueueIndex: + case MwVULKANFIELD_PRESENTQUEUEINDEX: return &o->vkPresentFamilyIDX; - case MwVulkanField_GraphicsQueue: + case MwVULKANFIELD_GRAPHICSQUEUE: return o->vkGraphicsQueue; - case MwVulkanField_PresentQueue: + case MwVULKANFIELD_PRESENTQUEUE: return o->vkPresentQueue; default: MwStringPrintIntoBuffer(buf, 1024, "Unknown vulkan field request (%d given)", field); From 6259f5767793fcdf4c7a25f01e4c44c93ff8bec3 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 17 Apr 2026 01:39:59 +0900 Subject: [PATCH 420/836] fix cmake --- CMakeLists.txt | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a4f4eb3ee..948a83c82 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,11 +62,6 @@ if(MW_TRY_OPENGL) find_package(OpenGL) if(OpenGL_FOUND) set(MW_BUILD_OPENGL ON) - target_compile_definitions( - Mw - PRIVATE - MW_OPENGL - ) if(APPLE) list(APPEND SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/opengl_cocoa.m") endif() @@ -80,11 +75,6 @@ if(MW_TRY_VULKAN) check_include_files(vulkan/vulkan.h HAVE_VULKAN_VULKAN_H) if(HAVE_VULKAN_VULKAN_H) set(MW_BUILD_VULKAN ON) - target_compile_definitions( - Mw - PRIVATE - MW_VULKAN - ) message(STATUS "Vulkan widget has been enabled") else() message(WARNING "Vulkan widget has been disabled") @@ -363,6 +353,14 @@ target_link_libraries( ${LIBRARIES} ) +if(MW_BUILD_OPENGL) + target_compile_definitions( + Mw + PRIVATE + MW_OPENGL + ) +endif() + if(MW_BUILD_VULKAN) check_include_files(vulkan/vk_enum_string_helper.h HAS_VK_ENUM_STRING_HELPER) if(HAS_VK_ENUM_STRING_HELPER) @@ -372,6 +370,12 @@ if(MW_BUILD_VULKAN) HAS_VK_ENUM_STRING_HELPER ) endif() + + target_compile_definitions( + Mw + PRIVATE + MW_VULKAN + ) endif() target_compile_definitions( From c0e36df063279f116da5d54ccbba12d1c6490075 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 17 Apr 2026 01:44:17 +0900 Subject: [PATCH 421/836] oops --- milsko.xml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/milsko.xml b/milsko.xml index 2edcd4169..62fb422ad 100644 --- a/milsko.xml +++ b/milsko.xml @@ -694,20 +694,6 @@
- - - - - - - - - - - - - - From d6538d44104be5184fe620f289b44342ffd31803 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 17 Apr 2026 01:46:47 +0900 Subject: [PATCH 422/836] fix --- include/Mw/Widget/Vulkan.h | 6 +++--- milsko.xml | 2 +- src/widget/vulkan.c | 14 +++++++------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/include/Mw/Widget/Vulkan.h b/include/Mw/Widget/Vulkan.h index ccfb02446..0565022e5 100644 --- a/include/Mw/Widget/Vulkan.h +++ b/include/Mw/Widget/Vulkan.h @@ -111,11 +111,11 @@ enum MwVULKANFIELD { /*! * @brief Function for getting a field from within Vulkan. - * @warning Consult the documentation for MwVULKANFIELD to know what type is expected for out. + * @note Consult the documentation for MwVULKANFIELD to know what type is expected for output. */ -MwInline void* MwVulkanGetField(MwWidget handle, int field, int* out) { +MwInline void* MwVulkanGetField(MwWidget handle, int field, int* err) { void* field_out; - MwVaWidgetExecute(handle, "mwVulkanGetField", &field_out, field, out); + MwVaWidgetExecute(handle, "mwVulkanGetField", &field_out, field, err); return field_out; } diff --git a/milsko.xml b/milsko.xml index 62fb422ad..5d7a6374b 100644 --- a/milsko.xml +++ b/milsko.xml @@ -822,7 +822,7 @@ - + diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index 0116cb974..1e67ea923 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -518,7 +518,7 @@ int MwVulkanSupported(void) { } }; -static void* mwVulkanGetFieldImpl(MwWidget handle, int field, int* out) { +static void* mwVulkanGetFieldImpl(MwWidget handle, int field, int* err) { vulkan_t* o = handle->internal; char buf[1024]; @@ -544,21 +544,21 @@ static void* mwVulkanGetFieldImpl(MwWidget handle, int field, int* out) { default: MwStringPrintIntoBuffer(buf, 1024, "Unknown vulkan field request (%d given)", field); MwDispatchError(1, buf); - if(out != NULL) { - *out = 1; + if(err != NULL) { + *err = 1; } return NULL; } - if(out != NULL) { - *out = 0; + if(err != NULL) { + *err = 0; } }; -static void func_handler(MwWidget handle, const char* name, void* out, va_list va) { +static void func_handler(MwWidget handle, const char* name, void* output, va_list va) { if(strcmp(name, "mwVulkanGetField") == 0) { int field = va_arg(va, int); int* err = va_arg(va, int*); - *(void**)out = mwVulkanGetFieldImpl(handle, field, err); + *(void**)output = mwVulkanGetFieldImpl(handle, field, err); } } From 9caa50b94d1d774a69355b77191ee1e8e4ea1848 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 17 Apr 2026 01:52:04 +0900 Subject: [PATCH 423/836] fix enum --- milsko.xml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/milsko.xml b/milsko.xml index 5d7a6374b..5c8370430 100644 --- a/milsko.xml +++ b/milsko.xml @@ -203,16 +203,16 @@ - - 0 - - - - - - - - + + 0 + + + + + + + + From e41dbd43c13693c2bdc5b4fdb53e34205c357414 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 16 Apr 2026 13:22:21 -0700 Subject: [PATCH 424/836] fix warnings --- src/backend/wayland.c | 48 ++++++++++--------------------------------- src/backend/x11.c | 2 +- 2 files changed, 12 insertions(+), 38 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 31eefb20e..c227e9b2d 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -132,34 +132,6 @@ static void recursive_dispatch_move(MwLL handle, MwMouse* p) { } }; -/* Recursively dispatch a key event to a widget and its children */ -static void recursive_dispatch_key(MwLL handle, int* k) { - MwWidget h = (MwWidget)handle->common.user; - MwLLDispatch(handle, key, k); - if(h) { - int i; - for(i = 0; i < arrlen(h->children); i++) { - MwLLDispatch(h->children[i]->lowlevel, key, k); - if(arrlen(h->children[i]->children) > 0) { - recursive_dispatch_key(h->children[i]->lowlevel, k); - } - } - } -}; -/* Recursively dispatch a key released event to a widget and its children */ -static void recursive_dispatch_key_released(MwLL handle, int* k) { - MwWidget h = (MwWidget)handle->common.user; - MwLLDispatch(handle, key_released, k); - if(h) { - int i; - for(i = 0; i < arrlen(h->children); i++) { - MwLLDispatch(h->children[i]->lowlevel, key_released, k); - if(arrlen(h->children[i]->children) > 0) { - recursive_dispatch_key_released(h->children[i]->lowlevel, k); - } - } - } -}; static void wl_offer(void* data, struct wl_data_offer* wl_data_offer, const char* mime_type) { @@ -538,6 +510,12 @@ static void relative_pointer_motion(void* data, MwLL self = data; MwMouse p; + (void)pointer; + (void)timeHi; + (void)timeLo; + (void)dx; + (void)dy; + WAYLAND_EVENT_OP_START(self); p.point.x = wl_fixed_to_int(dxUnaccel); @@ -609,8 +587,6 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri inArea |= self->wayland.backbuffer.surface == curSurface; } if(inArea) { - int i; - switch(button) { case BTN_LEFT: p.button = MwMOUSE_LEFT; @@ -741,8 +717,8 @@ static void keyboard_key(void* data, MwU32 time, MwU32 key, MwU32 state) { - MwLL self = data; - MwBool inArea; + MwLL self = data; + MwBool inArea = 0; (void)wl_keyboard; (void)serial; @@ -760,7 +736,7 @@ static void keyboard_key(void* data, if(inArea) { xkb_layout_index_t layout; MwU32 levels; - xkb_level_index_t level; + xkb_level_index_t level = 0; const xkb_keysym_t* syms_out; MwU32 keycode = key + 8; MwU64 syms_num; @@ -785,9 +761,8 @@ static void keyboard_key(void* data, } for(i = 0; i < syms_num; i++) { - int sym = syms_out[i]; - int key = -1; - const char* name; + int sym = syms_out[i]; + int key = -1; switch(sym) { case XKB_KEY_BackSpace: @@ -1975,7 +1950,6 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { setup_popup(handle, handle->wayland.x, handle->wayland.y, handle->wayland.parent); } -refresh: region_setup(handle); framebuffer_destroy(&handle->wayland); diff --git a/src/backend/x11.c b/src/backend/x11.c index cc76ed66e..704bd7bd6 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -72,7 +72,7 @@ static struct symtbl { char* (*XSetLocaleModifiers)(const char*); XIM (*XOpenIM)(Display*, struct _XrmHashBucketRec*, char*, char*); Status (*XCloseIM)(XIM); - XIC (*XCreateIC)(XIM, ...) _X_SENTINEL(0); + XIC (*XCreateIC)(XIM, ...); void (*XDestroyIC)(XIC); void (*XSetICFocus)(XIC); From 3e49278a154875ce325dd50a40bce85656b02723 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 16 Apr 2026 18:36:42 -0700 Subject: [PATCH 425/836] added wip fuzzer, fixed alot of memory leaks with wayland --- include/Mw/LowLevel/Wayland.h | 14 ++-- src/backend/wayland.c | 122 ++++++++++++++++++---------------- tools/.gitignore | 2 + tools/Makefile | 7 +- tools/fuzzer.c | 85 +++++++++++++++++++++++ 5 files changed, 167 insertions(+), 63 deletions(-) create mode 100644 tools/.gitignore create mode 100644 tools/fuzzer.c diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 7debc8872..7f9e7625a 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -41,6 +41,7 @@ typedef struct wayland_call_table { MwBool has_dbus; #endif + int (*wl_display_dispatch)(struct wl_display* display); int (*wl_display_dispatch_pending)(struct wl_display* display); void (*wl_display_disconnect)(struct wl_display* display); void (*wl_display_cancel_read)(struct wl_display* display); @@ -58,6 +59,7 @@ typedef struct wayland_call_table { uint32_t flags, ...); struct wl_display* (*wl_display_connect)(const char* name); uint32_t (*wl_proxy_get_version)(struct wl_proxy* proxy); + struct wl_display* (*wl_display_connect_to_fd)(int fd); struct xkb_context* (*xkb_context_new)(enum xkb_context_flags flags); void (*xkb_context_unref)(struct xkb_context* context); @@ -156,6 +158,7 @@ MwInline int wayland_load_funcs() { return 1; \ }; + WAYLAND_FUNC(wl_display_dispatch) WAYLAND_FUNC(wl_display_dispatch_pending) WAYLAND_FUNC(wl_display_disconnect) WAYLAND_FUNC(wl_display_cancel_read) @@ -170,6 +173,7 @@ MwInline int wayland_load_funcs() { WAYLAND_FUNC(wl_proxy_marshal_flags) WAYLAND_FUNC(wl_display_connect) WAYLAND_FUNC(wl_proxy_get_version) + WAYLAND_FUNC(wl_display_connect_to_fd) #undef WAYLAND_FUNC @@ -235,6 +239,7 @@ MwInline int wayland_load_funcs() { return 0; } +#define wl_display_dispatch wl_call_tbl.wl_display_dispatch #define wl_display_dispatch_pending wl_call_tbl.wl_display_dispatch_pending #define wl_display_disconnect wl_call_tbl.wl_display_disconnect #define wl_display_cancel_read wl_call_tbl.wl_display_cancel_read @@ -249,6 +254,7 @@ MwInline int wayland_load_funcs() { #define wl_proxy_marshal_flags wl_call_tbl.wl_proxy_marshal_flags #define wl_display_connect wl_call_tbl.wl_display_connect #define wl_proxy_get_version wl_call_tbl.wl_proxy_get_version +#define wl_display_connect_to_fd wl_call_tbl.wl_display_connect_to_fd #define xkb_state_unref wl_call_tbl.xkb_state_unref #define xkb_context_new wl_call_tbl.xkb_context_new @@ -373,11 +379,11 @@ enum _MwLLWaylandType { }; typedef struct wl_clipboard_device_context { - union { + struct { struct wl_data_device* wl; struct zwp_primary_selection_device_v1* zwp; } device; - union { + struct { struct wl_data_offer* wl; struct zwp_primary_selection_offer_v1* zwp; } offer; @@ -409,13 +415,13 @@ struct _MwLLWayland { /* Map of Wayland interfaces to their relevant setup functions. */ struct { - const char* key; + char key[255]; wayland_protocol_callback_table_t* value; }* wl_protocol_setup_map; /* Map of Wayland interfaces to any information we keep about them once we've registered them. */ struct { - const char* key; + char key[255]; wayland_protocol_t* value; }* wl_protocol_map; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index c227e9b2d..94bb3da6a 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -62,9 +62,7 @@ static void new_protocol(void* data, struct wl_registry* registry, wayland_protocol_callback_table_t* cb = shget(self->wayland.wl_protocol_setup_map, interface); if(cb != NULL) { - char* inter = malloc(strlen(interface) + 1); - strcpy(inter, interface); - shput(self->wayland.wl_protocol_map, inter, cb->setup(name, data)); + shput(self->wayland.wl_protocol_map, interface, cb->setup(name, data)); /* we don't care for adding this protocol, we just use it to know if the compositor will let us have transparent surfaces */ } else if(strcmp(interface, "wp_alpha_modifier_v1") == 0) { self->common.supports_transparency = MwTRUE; @@ -651,19 +649,24 @@ static void keyboard_keymap(void* data, MwLL self = data; (void)wl_keyboard; - if(self->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + if(!self->wayland.parent) { + char* map_shm; + struct xkb_keymap* xkb_keymap; + struct xkb_state* xkb_state; + xkb_state = NULL; + assert(format == WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1); - char* map_shm = (char*)mmap(NULL, size, PROT_READ, MAP_SHARED, fd, 0); + map_shm = (char*)mmap(NULL, size, PROT_READ, MAP_SHARED, fd, 0); assert(map_shm != MAP_FAILED); - struct xkb_keymap* xkb_keymap = xkb_keymap_new_from_string( + xkb_keymap = xkb_keymap_new_from_string( self->wayland.xkb_context, map_shm, XKB_KEYMAP_FORMAT_TEXT_V1, XKB_KEYMAP_COMPILE_NO_FLAGS); munmap(map_shm, size); close(fd); - struct xkb_state* xkb_state = xkb_state_new(xkb_keymap); + xkb_state = xkb_state_new(xkb_keymap); self->wayland.xkb_keymap = xkb_keymap; self->wayland.xkb_state = xkb_state; @@ -976,6 +979,7 @@ static wayland_protocol_t* wl_seat_setup(MwU32 name, MwLL ll) { static void wl_seat_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { (void)wayland; free(data->listener); + free(data); } /* wl_output setup function */ @@ -1120,6 +1124,8 @@ static int event_loop(MwLL handle) { if(wl_display_dispatch_pending(wayland->display) < 0) { wl_display_cancel_read(wayland->display); } + wl_display_flush(handle->wayland.display); + return 1; } @@ -1230,66 +1236,46 @@ static void update_buffer(MwLL self, struct _MwLLWaylandShmBuffer* buffer) { } static void buffer_setup(struct _MwLLWaylandShmBuffer* buffer, MwU32 width, MwU32 height) { - int stride = width * 4; - char temp_name[] = "/tmp/milsko-wl-shm-XXXXXX"; - char temp_name_back[] = "/tmp/milsko-wl-shm-back-XXXXXX"; + int stride = width * 4; + char temp_name[] = "/tmp/milsko-wl-shm-XXXXXX"; buffer->buf_size = width * height * 4; - buffer->fd = mkstemp(temp_name); - buffer->fd_back = mkstemp(temp_name_back); - + buffer->fd = mkstemp(temp_name); unlink(temp_name); - unlink(temp_name_back); if(posix_fallocate(buffer->fd, 0, buffer->buf_size) != 0) { printf("failure setting up wl_shm: could not fallocate. %s.\n", strerror(errno)); close(buffer->fd); return; } - if(posix_fallocate(buffer->fd_back, 0, buffer->buf_size) != 0) { - printf("failure setting up wl_shm: could not fallocate. %s.\n", strerror(errno)); - close(buffer->fd_back); - return; - } if(ftruncate(buffer->fd, buffer->buf_size) != 0) { printf("failure setting up wl_shm: could not truncate. %s.\n", strerror(errno)); close(buffer->fd); return; } - if(ftruncate(buffer->fd_back, buffer->buf_size) != 0) { - printf("failure setting up wl_shm: could not truncate. %s.\n", strerror(errno)); - close(buffer->fd_back); - return; - } buffer->buf = mmap(NULL, buffer->buf_size, PROT_WRITE, MAP_SHARED, buffer->fd, 0); - buffer->buf_back = mmap(NULL, buffer->buf_size, PROT_WRITE, MAP_SHARED, buffer->fd_back, 0); + buffer->buf_back = malloc(buffer->buf_size); fsync(buffer->fd); - fsync(buffer->fd_back); if(!(buffer->shm_pool = wl_shm_create_pool(buffer->shm, buffer->fd, buffer->buf_size))) { + close(buffer->fd); printf("failure setting up wl_shm: could not create pool.\n"); + return; } - if(!(buffer->shm_pool_back = wl_shm_create_pool(buffer->shm, buffer->fd_back, buffer->buf_size))) { - printf("failure setting up wl_shm: could not create pool.\n"); - } - buffer->shm_buffer = wl_shm_pool_create_buffer(buffer->shm_pool, 0, width, height, stride, WL_SHM_FORMAT_ARGB8888); - buffer->shm_buffer_back = wl_shm_pool_create_buffer(buffer->shm_pool_back, 0, width, height, stride, WL_SHM_FORMAT_ARGB8888); - buffer->setup = MwTRUE; + buffer->shm_buffer = wl_shm_pool_create_buffer(buffer->shm_pool, 0, width, height, stride, WL_SHM_FORMAT_ARGB8888); + buffer->setup = MwTRUE; } static void buffer_destroy(struct _MwLLWaylandShmBuffer* buffer) { - if(!buffer->setup) { - return; - } + close(buffer->fd); + if(buffer->buf) munmap(buffer->buf, buffer->buf_size); + if(buffer->buf_back) free(buffer->buf_back); if(buffer->shm_buffer) wl_buffer_destroy(buffer->shm_buffer); - if(buffer->shm_buffer_back) wl_buffer_destroy(buffer->shm_buffer_back); if(buffer->shm_pool) wl_shm_pool_destroy(buffer->shm_pool); if(buffer->shm_pool_back) wl_shm_pool_destroy(buffer->shm_pool_back); - close(buffer->fd); - close(buffer->fd_back); buffer->setup = MwFALSE; } @@ -1528,12 +1514,12 @@ static void destroy_toplevel(MwLL r) { xdg_toplevel_destroy(r->wayland.toplevel->xdg_top_level); - xkb_keymap_unref(r->wayland.xkb_keymap); - xkb_state_unref(r->wayland.xkb_state); xkb_context_unref(r->wayland.xkb_context); + xkb_keymap_unref(r->wayland.xkb_keymap); + free(r->wayland.toplevel); wl_registry_destroy(r->wayland.registry); @@ -1553,8 +1539,6 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { r->wayland.type = MWLL_WAYLAND_SUBLEVEL; - r->wayland.display = parent->wayland.display; - setup_callbacks(&r->wayland); r->wayland.registry = wl_display_get_registry(parent->wayland.display); @@ -1592,11 +1576,10 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { /* Sublevel setup function */ static void destroy_sublevel(MwLL r) { - backbuffer_destroy(&r->wayland); - framebuffer_destroy(&r->wayland); - wl_subsurface_destroy(r->wayland.sublevel->subsurface); + wl_registry_destroy(r->wayland.registry); + free(r->wayland.sublevel); r->wayland.configured = MwFALSE; @@ -1774,6 +1757,9 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh } } + framebuffer_destroy(&r->wayland); + backbuffer_destroy(&r->wayland); + framebuffer_setup(&r->wayland); backbuffer_setup(&r->wayland); @@ -1832,8 +1818,6 @@ static void MwLLDestroyImpl(MwLL handle) { int select_ret; event_loop(handle); - // wl_display_cancel_read(handle->wayland.display); - wl_flush(handle); if(pthread_mutex_timedlock(&handle->wayland.eventsMutex, &t) != 0) { @@ -1859,7 +1843,6 @@ static void MwLLDestroyImpl(MwLL handle) { } #endif - buffer_destroy(&handle->wayland.cursor); wl_region_destroy(handle->wayland.region); if(handle->wayland.supports_zwp) { @@ -1867,10 +1850,6 @@ static void MwLLDestroyImpl(MwLL handle) { } else { wl_data_source_destroy(handle->wayland.clipboard_source.wl); } - if(handle->wayland.icon != NULL) { - buffer_destroy(handle->wayland.icon); - wl_surface_destroy(handle->wayland.icon->surface); - } if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { destroy_toplevel(handle); @@ -1880,6 +1859,20 @@ static void MwLLDestroyImpl(MwLL handle) { destroy_popup(handle); } + if(handle->wayland.framebuffer.setup) { + framebuffer_destroy(&handle->wayland); + wl_surface_destroy(handle->wayland.framebuffer.surface); + } + if(handle->wayland.backbuffer.setup) { + backbuffer_destroy(&handle->wayland); + wl_surface_destroy(handle->wayland.backbuffer.surface); + } + buffer_destroy(&handle->wayland.cursor); + if(handle->wayland.icon != NULL) { + buffer_destroy(handle->wayland.icon); + wl_surface_destroy(handle->wayland.icon->surface); + } + for(i = 0; i < shlen(handle->wayland.wl_protocol_setup_map); i++) { void* ctx = shget(handle->wayland.wl_protocol_map, handle->wayland.wl_protocol_setup_map[i].key); @@ -1887,17 +1880,30 @@ static void MwLLDestroyImpl(MwLL handle) { handle->wayland.wl_protocol_setup_map[i].value->destroy(&handle->wayland, ctx); } shdel(handle->wayland.wl_protocol_map, handle->wayland.wl_protocol_setup_map[i].value); + free(handle->wayland.wl_protocol_setup_map[i].value); + free(ctx); } shfree(handle->wayland.wl_protocol_map); shfree(handle->wayland.wl_protocol_setup_map); - wl_keyboard_destroy(handle->wayland.keyboard); - wl_pointer_destroy(handle->wayland.pointer); + // wl_keyboard_destroy(handle->wayland.keyboard); + // wl_pointer_destroy(handle->wayland.pointer); + + if(handle->wayland.supports_zwp) { + for(i = 0; i < arrlen(handle->wayland.clipboard_devices_zwp); i++) { + if(handle->wayland.clipboard_devices_zwp[i]->device.zwp) zwp_primary_selection_device_v1_destroy(handle->wayland.clipboard_devices_zwp[i]->device.zwp); + free(handle->wayland.clipboard_devices_zwp[i]); + } + } else { + printf("[WARNING] Primary clipboard requested for MwLLSetClipboard, but this Wayland compositor doesn't support it.\n"); + } + for(i = 0; i < arrlen(handle->wayland.clipboard_devices_wl); i++) { + wl_data_device_destroy(handle->wayland.clipboard_devices_wl[i]->device.wl); + free(handle->wayland.clipboard_devices_wl[i]); + } wl_flush(handle); - // free(handle); - if(currentlyHeldWidget == handle) { currentlyHeldWidget = NULL; } @@ -2159,6 +2165,7 @@ static int MwLLPendingImpl(MwLL handle) { wl_display_cancel_read(handle->wayland.display); } else { wl_display_read_events(handle->wayland.display); + wl_display_flush(handle->wayland.display); if((pending = wl_display_dispatch_pending(handle->wayland.display)) < 0) { wl_display_cancel_read(handle->wayland.display); } @@ -2167,6 +2174,7 @@ static int MwLLPendingImpl(MwLL handle) { if((pending = wl_display_dispatch_pending(handle->wayland.display)) < 0) { wl_display_cancel_read(handle->wayland.display); } + wl_display_flush(handle->wayland.display); } if(MwWaylandAlwaysRender) { @@ -2317,7 +2325,7 @@ static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { if(handle->wayland.configured) update_buffer(handle, handle->wayland.icon); - xdg_toplevel_icon_v1_add_buffer(icon, handle->wayland.icon->shm_buffer_back, 1); + xdg_toplevel_icon_v1_add_buffer(icon, handle->wayland.icon->shm_buffer, 1); xdg_toplevel_icon_manager_v1_set_icon(icon_manager, handle->wayland.toplevel->xdg_top_level, icon); } diff --git a/tools/.gitignore b/tools/.gitignore new file mode 100644 index 000000000..0581170fb --- /dev/null +++ b/tools/.gitignore @@ -0,0 +1,2 @@ +font +fuzzer diff --git a/tools/Makefile b/tools/Makefile index fbfc51a7d..ef8636836 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -6,7 +6,10 @@ LIBS = `freetype-config --libs` .PHONY: all clean .SUFFIXES: .c .o -all: font +all: fuzzer font + +fuzzer: fuzzer.o + $(CC) -g -L../src/ -Wl,-R../src -lMw -o $@ fuzzer.o font: font.o $(CC) $(LDFLAGS) -o $@ font.o $(LIBS) @@ -15,4 +18,4 @@ font: font.o $(CC) $(CFLAGS) -c -o $@ $< clean: - rm -f *.o font + rm -f *.o font fuzzer diff --git a/tools/fuzzer.c b/tools/fuzzer.c new file mode 100644 index 000000000..5b4224e93 --- /dev/null +++ b/tools/fuzzer.c @@ -0,0 +1,85 @@ +#include + +#define WIDGET_AMOUNT 1 + +int main() { + MwWidget window, widget; + + MwLibraryInit(); + + window = MwCreateWidget(MwWindowClass, "window", NULL, 0, 0, 400, 400); + + while(true) { + int r = rand() % WIDGET_AMOUNT; + MwClass cls; + switch(r) { + case 0: + cls = MwBoxClass; + break; + case 1: + cls = MwButtonClass; + break; + case 2: + cls = MwCheckBoxClass; + break; + case 3: + cls = MwComboBoxClass; + break; + case 4: + cls = MwEntryClass; + break; + case 5: + cls = MwFrameClass; + break; + case 6: + cls = MwImageClass; + break; + case 7: + cls = MwLabelClass; + break; + case 8: + cls = MwListBoxClass; + break; + case 9: + cls = MwMenuClass; + break; + case 10: + cls = MwNumberEntryClass; + break; + case 12: + cls = MwProgressBarClass; + break; + case 13: + cls = MwRadioBoxClass; + break; + case 14: + cls = MwScrollBarClass; + break; + case 15: + cls = MwSeparatorClass; + break; + // case 16: + // cls = MwSubMenuClass; + // break; + case 17: + cls = MwTreeViewClass; + break; + case 18: + cls = MwViewportClass; + break; + default: + cls = NULL; + break; + } + if(cls) { + widget = MwCreateWidget(cls, "Cls", window, 0, 0, 100, 100); + } + + if(MwPending(window)) { + MwStep(window); + } + if(cls) { + MwDestroyWidget(widget); + } + } +} From bc942153fe49630ac10ed85f60ee9bee4683f4b7 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 16 Apr 2026 22:58:16 -0700 Subject: [PATCH 426/836] cmacos: working? --- CMakeLists.txt | 4 +- include/Mw/LowLevel/ClassicMacOS.h | 9 +- include/Mw/Widget/Vulkan.h | 2 +- src/abstract/dynamic.c | 46 ++++---- src/backend/classicmacos.c | 167 ++++++++++++++++++++++++++--- src/core.c | 6 ++ 6 files changed, 196 insertions(+), 38 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 948a83c82..a6f823d31 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -309,6 +309,8 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "Retro") set_target_properties(Mw PROPERTIES LINK_FLAGS "-Wl,-gc-sections") endif() + list(APPEND LIBRARIES InterfaceLib WindowsLib ThreadsLib) + target_compile_definitions( Mw PRIVATE @@ -354,7 +356,7 @@ target_link_libraries( ) if(MW_BUILD_OPENGL) - target_compile_definitions( + target_compile_definitions( Mw PRIVATE MW_OPENGL diff --git a/include/Mw/LowLevel/ClassicMacOS.h b/include/Mw/LowLevel/ClassicMacOS.h index 4b32f6cd4..958b5e8b1 100644 --- a/include/Mw/LowLevel/ClassicMacOS.h +++ b/include/Mw/LowLevel/ClassicMacOS.h @@ -13,9 +13,12 @@ struct _MwLLClassicMacOS { struct _MwLLCommon common; - WindowRef window; - EventRecord event; - Rect winRect; + MwLL parent; + + WindowRef window; + ControlHandle control; + EventRecord event; + Rect winRect; }; struct _MwLLClassicMacOSColor { diff --git a/include/Mw/Widget/Vulkan.h b/include/Mw/Widget/Vulkan.h index 0565022e5..0b7db3ac8 100644 --- a/include/Mw/Widget/Vulkan.h +++ b/include/Mw/Widget/Vulkan.h @@ -11,7 +11,7 @@ #ifndef __MW_WIDGET_VULKAN_H__ #define __MW_WIDGET_VULKAN_H__ -#if !defined(_WIN32) && !defined(__linux__) && !defined(__FreeBSD__) && !defined(__NetBSD__) +#if defined(MW_VULKAN) && !defined(_WIN32) && !defined(__linux__) && !defined(__FreeBSD__) && !defined(__NetBSD__) #error Vulkan is unsupported on the requested platform. #endif diff --git a/src/abstract/dynamic.c b/src/abstract/dynamic.c index d9558af6d..ae31e82bf 100644 --- a/src/abstract/dynamic.c +++ b/src/abstract/dynamic.c @@ -14,33 +14,39 @@ void MwDynamicClose(void* handle) { } #elif defined(CLASSIC_MAC_OS) void* MwDynamicOpen(const char* path) { - CFragConnectionID connID; - Ptr* addr; - unsigned char err[255]; + // CFragConnectionID connID; + // Ptr* addr; + // unsigned char err[255]; - if(GetSharedLibrary((ConstStr63Param)path, kPowerPCCFragArch, kPrivateCFragCopy, - &connID, addr, err)) { - printf("Error getting %s: %s\n", path, err); - return NULL; - }; - return connID; + // if(GetSharedLibrary((ConstStr63Param)path, kPowerPCCFragArch, kPrivateCFragCopy, + // &connID, addr, err)) { + // printf("Error getting %s: %s\n", path, err); + // return NULL; + // }; + // return connID; + printf("MwDynamicOpen not implemented yet.\n"); + getchar(); + return NULL; } void* MwDynamicSymbol(void* handle, const char* symbol) { - CFragConnectionID connID = (CFragConnectionID)handle; - Ptr* symAddr; - CFragSymbolClass* symClass; - OSErr err; - if((err = FindSymbol(connID, (ConstStr63Param)symbol, symAddr, symClass))) { - printf("Error getting %s: %d\n", symbol, err); - return NULL; - }; - return symAddr; + // CFragConnectionID connID = (CFragConnectionID)handle; + // Ptr* symAddr; + // CFragSymbolClass* symClass; + // OSErr err; + // if((err = FindSymbol(connID, (ConstStr63Param)symbol, symAddr, symClass))) { + // printf("Error getting %s: %d\n", symbol, err); + // return NULL; + // }; + // return symAddr; + printf("MwDynamicSymbol not implemented yet.\n"); + getchar(); + return NULL; } void MwDynamicClose(void* handle) { - CFragConnectionID connID = (CFragConnectionID)handle; - CloseConnection(&connID); + // CFragConnectionID connID = (CFragConnectionID)handle; + // CloseConnection(&connID); } #elif defined(__unix__) || defined(__APPLE__) void* MwDynamicOpen(const char* path) { diff --git a/src/backend/classicmacos.c b/src/backend/classicmacos.c index 4fa7ab373..d7db43318 100644 --- a/src/backend/classicmacos.c +++ b/src/backend/classicmacos.c @@ -1,12 +1,24 @@ #include +#include +#include #include "../../external/stb_ds.h" static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLL r; - + r = malloc(sizeof(*r)); + memset(r, 0, sizeof(*r)); MwLLCreateCommon(r); + r->cmacos.parent = parent; + + if(x == MwDEFAULT) { + x = (qd.screenBits.bounds.right / 2) - (width / 2); + } + if(y == MwDEFAULT) { + y = (qd.screenBits.bounds.bottom / 2) - (height / 2); + } + /* todo: how do we set parent windows? If we can't, what is our equivalant to MacOS's NSViews, Wayland's subsurfaces, etc.? */ SetRect(&r->cmacos.winRect, x, y, width, height); r->cmacos.window = newcwindow(nil, &r->cmacos.winRect, "", true, @@ -23,24 +35,26 @@ static void MwLLDestroyImpl(MwLL handle) { } static void MwLLBeginDrawImpl(MwLL handle) { - (void)handle; } static void MwLLEndDrawImpl(MwLL handle) { - (void)handle; } static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { int i; - PolyHandle p = OpenPoly(); + PolyHandle p; RGBColor col; - col.red = color->common.red; - col.green = color->common.green; - col.blue = color->common.blue; + SetPort(handle->cmacos.window); + BeginUpdate(handle->cmacos.window); + + p = OpenPoly(); + col.red = color->common.red * 0x101; + col.green = color->common.green * 0x101; + col.blue = color->common.blue * 0x101; - RGBBackColor(&col); RGBForeColor(&col); + PenMode(patCopy); for(i = 0; i < points_count; i++) { if(i == 0) { @@ -51,20 +65,24 @@ static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLL } ClosePoly(); - PaintPoly(p); + FillCPoly(p, &qd.ltGray); KillPoly(p); + + EndUpdate(handle->cmacos.window); } static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { RGBColor col; + SetPort(handle->cmacos.window); col.red = color->common.red; col.green = color->common.green; col.blue = color->common.blue; - RGBBackColor(&col); RGBForeColor(&col); + PenMode(patCopy); + MoveTo(points[0].x, points[0].y); LineTo(points[1].x, points[1].y); } @@ -103,10 +121,133 @@ static void MwLLFreeColorImpl(MwLLColor color) { } static int MwLLPendingImpl(MwLL handle) { - return GetNextEvent(everyEvent, &handle->cmacos.event); + YieldToAnyThread(); + return EventAvail(everyEvent, &handle->cmacos.event); } static void MwLLNextEventImpl(MwLL handle) { + EventRecord event; + GetNextEvent(everyEvent, &event); + + switch(event.what) { + case updateEvt: { + } + // MwLLDispatch(handle, draw, NULL); + break; + case osEvt: + break; + case mouseUp: { + // MwLLMouse m; + // m.button = MwLLMouseLeft; + // if(___curWindow->mouseButtonCallback != NULL) { + // int mods = MacModifiersToGLFWModifiers(event.modifiers); + + // if(___curWindow->keyStateMap[MK_LCTRL] == 1) { + // ___curWindow->mouseButtonCallback( + // ___curWindow, GLFW_MOUSE_BUTTON_RIGHT, GLFW_RELEASE, mods); + // } else { + // ___curWindow->mouseButtonCallback( + // ___curWindow, GLFW_MOUSE_BUTTON_LEFT, GLFW_RELEASE, mods); + // } + // } + } + case mouseDown: { + // // start with callback stuff + // if(___curWindow->mouseButtonCallback != NULL) { + // int mods = MacModifiersToGLFWModifiers(event.modifiers); + + // if(___curWindow->keyStateMap[MK_LCTRL] == 1) { + // ___curWindow->mouseButtonCallback( + // ___curWindow, GLFW_MOUSE_BUTTON_RIGHT, GLFW_PRESS, mods); + // } else { + // ___curWindow->mouseButtonCallback( + // ___curWindow, GLFW_MOUSE_BUTTON_LEFT, GLFW_PRESS, mods); + // } + // } + + // then do system stuff + switch(FindWindow(event.where, &handle->cmacos.window)) { + case inDrag: + DragWindow(handle->cmacos.window, event.where, &qd.screenBits.bounds); + // if(___curWindow->windowPosCallback != NULL) { + // ___curWindow->windowPosCallback(___curWindow, event.where.h, + // event.where.v); + // } + break; + case inGrow: { + long growResult = + GrowWindow(handle->cmacos.window, event.where, &qd.screenBits.bounds); + + int width = growResult & 0xFFFF; + int height = growResult >> 16; + + SizeWindow(handle->cmacos.window, growResult & 0xFFFF, growResult >> 16, true); + + Rect rect; + GetWindowBounds(handle->cmacos.window, kWindowStructureRgn, &rect); + rect.right = width; + rect.bottom = height; + SetWindowBounds(handle->cmacos.window, kWindowStructureRgn, &rect); + + // ___curWindow->width = width; + // ___curWindow->height = height; + + // if(___curWindow->windowSizeCallback != NULL) { + // ___curWindow->windowSizeCallback(___curWindow, width, height); + // } + // if(___curWindow->windowSetFramebufferSizeCallback != NULL) { + // ___curWindow->windowSetFramebufferSizeCallback(___curWindow, + // width, height); + // } + } break; + + case inGoAway: { + if(TrackGoAway(handle->cmacos.window, event.where)) { + MwLLDispatch(handle, close, NULL); + // if(___curWindow->windowCloseCallback != NULL) { + // ___curWindow->windowCloseCallback(___curWindow); + // } + // ___curWindow->shouldClose = true; + } + } break; + } + } + case autoKey: + case keyDown: + case keyUp: { + // // key char stuff + // unsigned char ch = (event.message & charCodeMask); + // if(*___curWindow->charCallback != NULL) { + // ___curWindow->charCallback(___curWindow, ch); + // } + + // // key state map + // unsigned char key = (event.message & keyCodeMask) >> 8; + // ___curWindow->keyStateMap[key] = 0; + // if(event.what == keyDown || event.what == autoKey) { + // ___curWindow->keyStateMap[key] &= 1; + // } + + // if(*___curWindow->keyCallback != NULL) { + // int key = MacKeyToGLFWKey(event.message); + // int scancode = (event.message & adbAddrMask) >> 16; + + // int mods = MacModifiersToGLFWModifiers(event.modifiers); + + // int action; + // if(event.what == keyUp) { + // action = GLFW_RELEASE; + // } else { + // action = GLFW_PRESS; + // } + // ___curWindow->keyCallback(___curWindow, key, scancode, action, + // mods); + // } + } + } + + FlushEvents(everyEvent, -1); + YieldToAnyThread(); } static void MwLLSetTitleImpl(MwLL handle, const char* title) { @@ -167,14 +308,14 @@ static void MwLLFocusImpl(MwLL handle) { static void MwLLGrabPointerImpl(MwLL handle, int toggle) { } -static void MwLLSetClipboardImpl(MwLL handle, const char* text) { +static void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_type) { /* TODO */ (void)handle; (void)text; } -static void MwLLGetClipboardImpl(MwLL handle) { +static void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) { } static void MwLLMakeToolWindowImpl(MwLL handle) { diff --git a/src/core.c b/src/core.c index 0c8360ef9..6476ccbb6 100644 --- a/src/core.c +++ b/src/core.c @@ -878,6 +878,9 @@ int MwLibraryInit(void) { #endif #ifdef USE_GDI MwLLGDICallInit, +#endif +#ifdef CLASSIC_MAC_OS + MwLLClassicMacOSCallInit, #endif NULL}; int i; @@ -900,6 +903,9 @@ int MwLibraryInit(void) { #endif #ifdef USE_GDI " GDI" +#endif +#ifdef CLASSIC_MAC_OS + " ClassicMacOS" #endif "\n"); From 138555f41d6e12d762390d153ce0a949bd4c31ed Mon Sep 17 00:00:00 2001 From: maelstrom Date: Thu, 16 Apr 2026 23:05:41 +0200 Subject: [PATCH 427/836] auto detect dark theme change via dbus signals --- include/Mw/LowLevel.h | 4 +++ src/backend/wayland.c | 26 +++++++++++++----- src/lowlevel.c | 63 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 86 insertions(+), 7 deletions(-) diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index cbc67f9e0..2ba3ff0ba 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -83,11 +83,15 @@ typedef struct _MwLLDBusContext { DBusMessageIter dbus_args, dbus_variant, dbus_inner_variant; } MwLLDBusContext; +typedef void (*MwLLDBusPortalPollListener)(MwLL handle, MwU32 new_value); + /* setup the dbus func table. Returns false and prints a warning if dbus couldn't be found. */ MWDECL MwBool MwLLDBusFuncSetup(MwLLDBusFuncTable* tbl); MWDECL MwBool MwLLDBusNewContext(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx); MWDECL MwBool MwLLDBusPortalGet(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx, const char* portal, const char* namespace, const char* key, void* out); +MWDECL MwBool MwLLDBusPortalWatch(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx, const char* portal); +MWDECL MwBool MwLLDBusPortalPoll(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx, MwLL handle, const char* portal, const char* namespace, const char* key, MwLLDBusPortalPollListener); MWDECL void MwLLDBusFreeContext(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx); #endif diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 94bb3da6a..566012582 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -17,6 +17,8 @@ wayland_call_table_t wl_call_tbl; MwBool MwWaylandAlwaysRender = MwFALSE; +MwU32 wl_dark_theme = -1; + /* Standard procedure before most event callbacks in Wayland ("most" because the setup ones don't need this). Wait for the Mutex to be freed, if we're deadlocking for longer then a quarter of a second then do nothing with the event. */ #define WAYLAND_EVENT_OP_START(self) \ do { \ @@ -1779,14 +1781,21 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh } #ifdef USE_DBUS +static void dark_theme_listener(MwLL handle, MwU32 new_value) { + wl_dark_theme = (new_value == 1) ? 1 : 0; + + MwLLDispatch(handle, dark_theme, &wl_dark_theme); +} + static void detect_dark_theme(MwLL handle) { MwU32 value = 0; - MwU32 dark_theme = 0; + MwLLDBusPortalGet(&wl_call_tbl.dbus, &handle->wayland.dbus, "org.freedesktop.portal.Settings", "org.freedesktop.appearance", "color-scheme", &value); + wl_dark_theme = (value == 1) ? 1 : 0; - dark_theme = (value == 1) ? 1 : 0; + MwLLDBusPortalWatch(&wl_call_tbl.dbus, &handle->wayland.dbus, "org.freedesktop.portal.Settings"); - MwLLDispatch(handle, dark_theme, &dark_theme); + MwLLDispatch(handle, dark_theme, &wl_dark_theme); } #endif @@ -2144,15 +2153,18 @@ static int MwLLPendingImpl(MwLL handle) { }; int pending = 0; - if(handle->wayland.dark_theme_detection) { - handle->wayland.dark_theme_detection = MwFALSE; #ifdef USE_DBUS - if(wl_call_tbl.has_dbus) { + if(wl_call_tbl.has_dbus) { + if(handle->wayland.dark_theme_detection) { + + handle->wayland.dark_theme_detection = MwFALSE; detect_dark_theme(handle); MwLLDispatch(handle, draw, NULL); + } else { + MwLLDBusPortalPoll(&wl_call_tbl.dbus, &handle->wayland.dbus, handle, "org.freedesktop.portal.Settings", "org.freedesktop.appearance", "color-scheme", &dark_theme_listener); } -#endif } +#endif if(!handle->wayland.did_initial_resize) { recursive_dispatch_resize(handle); diff --git a/src/lowlevel.c b/src/lowlevel.c index 2a874e6c8..935bf9b3d 100644 --- a/src/lowlevel.c +++ b/src/lowlevel.c @@ -176,6 +176,69 @@ MWDECL MwBool MwLLDBusPortalGet(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx, co return MwTRUE; } +MWDECL MwBool MwLLDBusPortalWatch(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx, const char* portal) { + if(!ctx->dbus_conn) { + return MwFALSE; + } + + char filter_string[2048]; + MwStringPrintIntoBuffer(filter_string, sizeof(filter_string), "type='%s',interface=%s", "signal", portal); + + dbus_bus_add_match(ctx->dbus_conn, filter_string, &ctx->dbus_err); + dbus_connection_flush(ctx->dbus_conn); + + return MwTRUE; +} + +// Technically this will swallow all other results, so this is not usable multiple times. +// TODO: Use a hashmap instead +MWDECL MwBool MwLLDBusPortalPoll(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx, MwLL handle, const char* portal, const char* namespace, const char* key, MwLLDBusPortalPollListener listener) { + DBusMessage* msg; + DBusMessageIter args, msg_value; + const char* msg_namespace; + const char* msg_key; + MwU32 msg_value_content; + + if(!ctx->dbus_conn) { + return MwFALSE; + } + + dbus_connection_read_write(ctx->dbus_conn, 0); + msg = dbus_connection_pop_message(ctx->dbus_conn); + + if (NULL == msg) { + return MwFALSE; + } + + // check if the message is a signal from the correct interface and with the correct name + if (dbus_message_is_signal(msg, portal, "SettingChanged")) { + // read the parameters + if (!dbus_message_iter_init(msg, &args)) + fprintf(stderr, "[WARNING] Message has no arguments\n"); + else if (DBUS_TYPE_STRING != dbus_message_iter_get_arg_type(&args)) + fprintf(stderr, "[WARNING] Argument is not string\n"); + else { + dbus_message_iter_get_basic(&args, &msg_namespace); + + dbus_message_iter_next(&args); + dbus_message_iter_get_basic(&args, &msg_key); + + // Check that key and namespace match + if (strcmp(msg_namespace, namespace) == 0 && strcmp(msg_key, key) == 0) { + // Assuming the value is a basic type + dbus_message_iter_next(&args); + dbus_message_iter_recurse(&args, &msg_value); + dbus_message_iter_get_basic(&msg_value, &msg_value_content); + + listener(handle, msg_value_content); + } + } + } + + // free the message + dbus_message_unref(msg); +} + void MwLLDBusFreeContext(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx) { if(!tbl->lib) { return; From e916154df66ad10ebaa2fc0cd790f6b918797c2f Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 17 Apr 2026 17:05:25 +0900 Subject: [PATCH 428/836] update format --- .clang-format | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.clang-format b/.clang-format index 376186b37..e168365a3 100644 --- a/.clang-format +++ b/.clang-format @@ -5,6 +5,8 @@ AlignConsecutiveAssignments: Enabled: true AlignConsecutiveDeclarations: Enabled: true +IndentAccessModifiers: true +NamespaceIndentation: All IndentWidth: 8 PointerAlignment: Left ColumnLimit: 0 From e4bd49ab83c21486d1ee59a957493e7a78b6d5df Mon Sep 17 00:00:00 2001 From: maelstrom Date: Fri, 17 Apr 2026 09:22:30 +0200 Subject: [PATCH 429/836] minor adjustments for compliance --- include/Mw/LowLevel/Wayland.h | 1 + src/backend/wayland.c | 15 ++++++------- src/lowlevel.c | 42 +++++++++++++++++------------------ 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 7f9e7625a..a21c0da1e 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -454,6 +454,7 @@ struct _MwLLWayland { #endif MwBool dark_theme_detection; + MwU32 dark_theme; /* clipboard related stuff. * Note that unlike most interfaces, we don't keep zwp_primary_selection stuff in a wayland_protocol_t because we use wl_data_device as a fallback and want to have it share memory space.*/ diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 566012582..a738aa3eb 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -17,8 +17,6 @@ wayland_call_table_t wl_call_tbl; MwBool MwWaylandAlwaysRender = MwFALSE; -MwU32 wl_dark_theme = -1; - /* Standard procedure before most event callbacks in Wayland ("most" because the setup ones don't need this). Wait for the Mutex to be freed, if we're deadlocking for longer then a quarter of a second then do nothing with the event. */ #define WAYLAND_EVENT_OP_START(self) \ do { \ @@ -1782,20 +1780,20 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh #ifdef USE_DBUS static void dark_theme_listener(MwLL handle, MwU32 new_value) { - wl_dark_theme = (new_value == 1) ? 1 : 0; + handle->wayland.dark_theme = (new_value == 1) ? 1 : 0; - MwLLDispatch(handle, dark_theme, &wl_dark_theme); + MwLLDispatch(handle, dark_theme, &handle->wayland.dark_theme); } static void detect_dark_theme(MwLL handle) { - MwU32 value = 0; + MwU32 value = 0; MwLLDBusPortalGet(&wl_call_tbl.dbus, &handle->wayland.dbus, "org.freedesktop.portal.Settings", "org.freedesktop.appearance", "color-scheme", &value); - wl_dark_theme = (value == 1) ? 1 : 0; + handle->wayland.dark_theme = (value == 1) ? 1 : 0; MwLLDBusPortalWatch(&wl_call_tbl.dbus, &handle->wayland.dbus, "org.freedesktop.portal.Settings"); - MwLLDispatch(handle, dark_theme, &wl_dark_theme); + MwLLDispatch(handle, dark_theme, &handle->wayland.dark_theme); } #endif @@ -1811,6 +1809,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { if(!parent && wl_call_tbl.has_dbus) { wl_call_tbl.has_dbus = MwLLDBusNewContext(&wl_call_tbl.dbus, &r->wayland.dbus); r->wayland.dark_theme_detection = MwTRUE; + r->wayland.dark_theme = -1; } #endif @@ -2439,7 +2438,7 @@ static void MwLLShowImpl(MwLL handle, int show) { static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { (void)handle; (void)parent; - /* Wayland doesn't have "popups" in the Milsko sense persay. xdg_popup is closer to ToolWindow and as such is what we use there. So just like the Mac backend, this is just left alone. */ + /* Wayland doesn't have "popups" in the Milsko sense per se. xdg_popup is closer to ToolWindow and as such is what we use there. So just like the Mac backend, this is just left alone. */ } static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) { diff --git a/src/lowlevel.c b/src/lowlevel.c index 935bf9b3d..32d5bcaca 100644 --- a/src/lowlevel.c +++ b/src/lowlevel.c @@ -184,48 +184,48 @@ MWDECL MwBool MwLLDBusPortalWatch(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx, char filter_string[2048]; MwStringPrintIntoBuffer(filter_string, sizeof(filter_string), "type='%s',interface=%s", "signal", portal); - dbus_bus_add_match(ctx->dbus_conn, filter_string, &ctx->dbus_err); - dbus_connection_flush(ctx->dbus_conn); + dbus_bus_add_match(ctx->dbus_conn, filter_string, &ctx->dbus_err); + dbus_connection_flush(ctx->dbus_conn); return MwTRUE; } -// Technically this will swallow all other results, so this is not usable multiple times. -// TODO: Use a hashmap instead +/* Technically this will swallow all other results, so this is not usable multiple times. + TODO: Use a hashmap instead */ MWDECL MwBool MwLLDBusPortalPoll(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx, MwLL handle, const char* portal, const char* namespace, const char* key, MwLLDBusPortalPollListener listener) { - DBusMessage* msg; + DBusMessage* msg; DBusMessageIter args, msg_value; - const char* msg_namespace; - const char* msg_key; - MwU32 msg_value_content; + const char* msg_namespace; + const char* msg_key; + MwU32 msg_value_content; if(!ctx->dbus_conn) { return MwFALSE; } - dbus_connection_read_write(ctx->dbus_conn, 0); + dbus_connection_read_write(ctx->dbus_conn, 0); msg = dbus_connection_pop_message(ctx->dbus_conn); - if (NULL == msg) { + if(NULL == msg) { return MwFALSE; } - // check if the message is a signal from the correct interface and with the correct name - if (dbus_message_is_signal(msg, portal, "SettingChanged")) { - // read the parameters - if (!dbus_message_iter_init(msg, &args)) - fprintf(stderr, "[WARNING] Message has no arguments\n"); - else if (DBUS_TYPE_STRING != dbus_message_iter_get_arg_type(&args)) - fprintf(stderr, "[WARNING] Argument is not string\n"); + /* check if the message is a signal from the correct interface and with the correct name */ + if(dbus_message_is_signal(msg, portal, "SettingChanged")) { + /* read the parameters */ + if(!dbus_message_iter_init(msg, &args)) + fprintf(stderr, "[WARNING] Message has no arguments\n"); + else if(DBUS_TYPE_STRING != dbus_message_iter_get_arg_type(&args)) + fprintf(stderr, "[WARNING] Argument is not string\n"); else { dbus_message_iter_get_basic(&args, &msg_namespace); dbus_message_iter_next(&args); dbus_message_iter_get_basic(&args, &msg_key); - // Check that key and namespace match - if (strcmp(msg_namespace, namespace) == 0 && strcmp(msg_key, key) == 0) { - // Assuming the value is a basic type + /* Check that key and namespace match */ + if(strcmp(msg_namespace, namespace) == 0 && strcmp(msg_key, key) == 0) { + /* Assuming the value is a basic type */ dbus_message_iter_next(&args); dbus_message_iter_recurse(&args, &msg_value); dbus_message_iter_get_basic(&msg_value, &msg_value_content); @@ -235,7 +235,7 @@ MWDECL MwBool MwLLDBusPortalPoll(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx, M } } - // free the message + /* free the message */ dbus_message_unref(msg); } From be2b40731f296e117144b24c28c55359075077c1 Mon Sep 17 00:00:00 2001 From: maelstrom Date: Fri, 17 Apr 2026 10:05:35 +0200 Subject: [PATCH 430/836] major surgery on dbus code --- include/Mw/LowLevel.h | 7 ++- src/lowlevel.c | 118 +++++++++++++++++++++++++++++++----------- 2 files changed, 93 insertions(+), 32 deletions(-) diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 2ba3ff0ba..1b5ec5299 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -66,11 +66,17 @@ typedef struct _MwLLDBusFuncTable { DBusMessage* (*dbus_message_new_method_call)(const char* bus_name, const char* path, const char* iface, const char* method); void (*dbus_message_iter_init_append)(DBusMessage* message, DBusMessageIter* iter); dbus_bool_t (*dbus_message_iter_append_basic)(DBusMessageIter* iter, int type, const void* value); + void (*dbus_connection_flush)(DBusConnection* connection); + dbus_bool_t (*dbus_connection_read_write)(DBusConnection* connection, int timeout_milliseconds); DBusMessage* (*dbus_connection_send_with_reply_and_block)(DBusConnection* connection, DBusMessage* message, int timeout_milliseconds, DBusError* error); + DBusMessage* (*dbus_connection_pop_message)(DBusConnection* connection); + void (*dbus_bus_add_match)(DBusConnection* connection, const char* rule, DBusError* error); void (*dbus_message_unref)(DBusMessage* message); dbus_bool_t (*dbus_message_iter_init)(DBusMessage* message, DBusMessageIter* iter); + dbus_bool_t (*dbus_message_is_signal)(DBusMessage* message, const char* iface, const char* signal_name); int (*dbus_message_iter_get_arg_type)(DBusMessageIter* iter); void (*dbus_message_iter_recurse)(DBusMessageIter* iter, DBusMessageIter* sub); + void (*dbus_message_iter_next)(DBusMessageIter* iter); void (*dbus_connection_unref)(DBusConnection* connection); void (*dbus_message_iter_get_basic)(DBusMessageIter* iter, void* value); } MwLLDBusFuncTable; @@ -80,7 +86,6 @@ typedef struct _MwLLDBusContext { DBusError dbus_err; DBusMessage* dbus_msg; DBusMessage* dbus_reply; - DBusMessageIter dbus_args, dbus_variant, dbus_inner_variant; } MwLLDBusContext; typedef void (*MwLLDBusPortalPollListener)(MwLL handle, MwU32 new_value); diff --git a/src/lowlevel.c b/src/lowlevel.c index 32d5bcaca..7dfeea169 100644 --- a/src/lowlevel.c +++ b/src/lowlevel.c @@ -82,16 +82,22 @@ MwBool MwLLDBusFuncSetup(MwLLDBusFuncTable* tbl) { DBUS_FUNC(dbus_error_init); DBUS_FUNC(dbus_bus_get); + DBUS_FUNC(dbus_bus_add_match); DBUS_FUNC(dbus_error_is_set); DBUS_FUNC(dbus_error_free); DBUS_FUNC(dbus_message_new_method_call); + DBUS_FUNC(dbus_message_is_signal); DBUS_FUNC(dbus_message_iter_init_append); DBUS_FUNC(dbus_message_iter_append_basic); + DBUS_FUNC(dbus_connection_flush); + DBUS_FUNC(dbus_connection_pop_message); + DBUS_FUNC(dbus_connection_read_write); DBUS_FUNC(dbus_connection_send_with_reply_and_block); DBUS_FUNC(dbus_message_unref); DBUS_FUNC(dbus_message_iter_init); DBUS_FUNC(dbus_message_iter_get_arg_type); DBUS_FUNC(dbus_message_iter_recurse); + DBUS_FUNC(dbus_message_iter_next); DBUS_FUNC(dbus_connection_unref); DBUS_FUNC(dbus_message_iter_get_basic); @@ -121,6 +127,8 @@ MwBool MwLLDBusNewContext(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx) { }; MWDECL MwBool MwLLDBusPortalGet(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx, const char* portal, const char* namespace, const char* key, void* out) { + DBusMessageIter dbus_args, dbus_variant, dbus_inner_variant; + char arg_type; if(!ctx->dbus_conn) { return MwFALSE; } @@ -135,9 +143,9 @@ MWDECL MwBool MwLLDBusPortalGet(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx, co return MwFALSE; } - tbl->dbus_message_iter_init_append(ctx->dbus_msg, &ctx->dbus_args); - tbl->dbus_message_iter_append_basic(&ctx->dbus_args, 's', &namespace); - tbl->dbus_message_iter_append_basic(&ctx->dbus_args, 's', &key); + tbl->dbus_message_iter_init_append(ctx->dbus_msg, &dbus_args); + tbl->dbus_message_iter_append_basic(&dbus_args, 's', &namespace); + tbl->dbus_message_iter_append_basic(&dbus_args, 's', &key); ctx->dbus_reply = tbl->dbus_connection_send_with_reply_and_block(ctx->dbus_conn, ctx->dbus_msg, 100, &ctx->dbus_err); @@ -151,25 +159,35 @@ MWDECL MwBool MwLLDBusPortalGet(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx, co return MwFALSE; } - if(!tbl->dbus_message_iter_init(ctx->dbus_reply, &ctx->dbus_args)) { + if(!tbl->dbus_message_iter_init(ctx->dbus_reply, &dbus_args)) { fprintf(stderr, "[WARNING] Couldn't get %s::%s: Reply has no arguments\n", namespace, key); tbl->dbus_message_unref(ctx->dbus_reply); return MwFALSE; } - if(tbl->dbus_message_iter_get_arg_type(&ctx->dbus_args) != 'v') { - fprintf(stderr, "[WARNING] Couldn't get %s::%s: Expected outer variant\n", namespace, key); + if((arg_type = tbl->dbus_message_iter_get_arg_type(&dbus_args)) != 'v') { + fprintf(stderr, "[WARNING] Couldn't get %s::%s: Expected outer variant, got: %c\n", namespace, key, arg_type); tbl->dbus_message_unref(ctx->dbus_reply); return MwFALSE; } - tbl->dbus_message_iter_recurse(&ctx->dbus_args, &ctx->dbus_variant); + tbl->dbus_message_iter_recurse(&dbus_args, &dbus_variant); /* Some portals wrap the value in a second variant */ - if(tbl->dbus_message_iter_get_arg_type(&ctx->dbus_variant) == 'v') { - tbl->dbus_message_iter_recurse(&ctx->dbus_variant, &ctx->dbus_inner_variant); - tbl->dbus_message_iter_get_basic(&ctx->dbus_inner_variant, out); + arg_type = tbl->dbus_message_iter_get_arg_type(&dbus_variant); + if(arg_type == 'v') { + tbl->dbus_message_iter_recurse(&dbus_variant, &dbus_inner_variant); + if((arg_type = tbl->dbus_message_iter_get_arg_type(&dbus_inner_variant)) != 'u') { + fprintf(stderr, "[WARNING] Signal reply for %s::SettingChanged: Expected 'u' (uint32) for 'value', got: %c\n", portal, arg_type); + tbl->dbus_message_unref(ctx->dbus_reply); + return MwFALSE; + } + tbl->dbus_message_iter_get_basic(&dbus_inner_variant, out); + } else if (arg_type == 'u') { + tbl->dbus_message_iter_get_basic(&dbus_variant, out); } else { - tbl->dbus_message_iter_get_basic(&ctx->dbus_variant, out); + fprintf(stderr, "[WARNING] Couldn't get %s::%s: Expected variant or string, got: %c\n", namespace, key, arg_type); + tbl->dbus_message_unref(ctx->dbus_reply); + return MwFALSE; } tbl->dbus_message_unref(ctx->dbus_msg); @@ -177,15 +195,15 @@ MWDECL MwBool MwLLDBusPortalGet(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx, co } MWDECL MwBool MwLLDBusPortalWatch(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx, const char* portal) { + char filter_string[2048]; if(!ctx->dbus_conn) { return MwFALSE; } - char filter_string[2048]; MwStringPrintIntoBuffer(filter_string, sizeof(filter_string), "type='%s',interface=%s", "signal", portal); - dbus_bus_add_match(ctx->dbus_conn, filter_string, &ctx->dbus_err); - dbus_connection_flush(ctx->dbus_conn); + tbl->dbus_bus_add_match(ctx->dbus_conn, filter_string, &ctx->dbus_err); + tbl->dbus_connection_flush(ctx->dbus_conn); return MwTRUE; } @@ -193,42 +211,79 @@ MWDECL MwBool MwLLDBusPortalWatch(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx, /* Technically this will swallow all other results, so this is not usable multiple times. TODO: Use a hashmap instead */ MWDECL MwBool MwLLDBusPortalPoll(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx, MwLL handle, const char* portal, const char* namespace, const char* key, MwLLDBusPortalPollListener listener) { - DBusMessage* msg; - DBusMessageIter args, msg_value; + DBusMessageIter args, msg_value, msg_value_inner; const char* msg_namespace; const char* msg_key; MwU32 msg_value_content; + char arg_type; if(!ctx->dbus_conn) { return MwFALSE; } - dbus_connection_read_write(ctx->dbus_conn, 0); - msg = dbus_connection_pop_message(ctx->dbus_conn); + tbl->dbus_connection_read_write(ctx->dbus_conn, 0); + tbl->dbus_connection_read_write(ctx->dbus_conn, 0); + ctx->dbus_reply = tbl->dbus_connection_pop_message(ctx->dbus_conn); - if(NULL == msg) { + if(tbl->dbus_error_is_set(&ctx->dbus_err)) { + fprintf(stderr, "[WARNING] Signal reply for %s::SettingChanged: Poll error: %s\n", portal, ctx->dbus_err.message); + tbl->dbus_error_free(&ctx->dbus_err); + return MwFALSE; + } + if(!ctx->dbus_reply) { return MwFALSE; } /* check if the message is a signal from the correct interface and with the correct name */ - if(dbus_message_is_signal(msg, portal, "SettingChanged")) { + if(tbl->dbus_message_is_signal(ctx->dbus_reply, portal, "SettingChanged")) { /* read the parameters */ - if(!dbus_message_iter_init(msg, &args)) - fprintf(stderr, "[WARNING] Message has no arguments\n"); - else if(DBUS_TYPE_STRING != dbus_message_iter_get_arg_type(&args)) - fprintf(stderr, "[WARNING] Argument is not string\n"); + if(!tbl->dbus_message_iter_init(ctx->dbus_reply, &args)) + fprintf(stderr, "[WARNING] Signal reply for %s::SettingChanged has no arguments\n", portal); else { - dbus_message_iter_get_basic(&args, &msg_namespace); + if((arg_type = tbl->dbus_message_iter_get_arg_type(&args)) != 's') { + fprintf(stderr, "[WARNING] Signal reply for %s::SettingChanged: Expected 's' (string) for 'namespace', got: %c\n", portal, arg_type); + tbl->dbus_message_unref(ctx->dbus_reply); + return MwFALSE; + } + tbl->dbus_message_iter_get_basic(&args, &msg_namespace); - dbus_message_iter_next(&args); - dbus_message_iter_get_basic(&args, &msg_key); + tbl->dbus_message_iter_next(&args); + if((arg_type = tbl->dbus_message_iter_get_arg_type(&args)) != 's') { + fprintf(stderr, "[WARNING] Signal reply for %s::SettingChanged: Expected 's' (string) for 'key', got: %c\n", portal, arg_type); + tbl->dbus_message_unref(ctx->dbus_reply); + return MwFALSE; + } + tbl->dbus_message_iter_get_basic(&args, &msg_key); /* Check that key and namespace match */ if(strcmp(msg_namespace, namespace) == 0 && strcmp(msg_key, key) == 0) { /* Assuming the value is a basic type */ - dbus_message_iter_next(&args); - dbus_message_iter_recurse(&args, &msg_value); - dbus_message_iter_get_basic(&msg_value, &msg_value_content); + tbl->dbus_message_iter_next(&args); + + if((arg_type = tbl->dbus_message_iter_get_arg_type(&args)) != 'v') { + fprintf(stderr, "[WARNING] Couldn't get %s::%s: Expected outer variant, got: %c\n", namespace, key, arg_type); + tbl->dbus_message_unref(ctx->dbus_reply); + return MwFALSE; + } + tbl->dbus_message_iter_recurse(&args, &msg_value); + + /* Some portals wrap the value in a second variant */ + arg_type = tbl->dbus_message_iter_get_arg_type(&msg_value); + if(arg_type == 'v') { + tbl->dbus_message_iter_recurse(&msg_value, &msg_value_inner); + if((arg_type = tbl->dbus_message_iter_get_arg_type(&msg_value_inner)) != 'u') { + fprintf(stderr, "[WARNING] Signal reply for %s::SettingChanged: Expected 'u' (uint32) for 'value', got: %c\n", portal, arg_type); + tbl->dbus_message_unref(ctx->dbus_reply); + return MwFALSE; + } + tbl->dbus_message_iter_get_basic(&msg_value_inner, &msg_value_content); + } else if (arg_type == 'u') { + tbl->dbus_message_iter_get_basic(&msg_value, &msg_value_content); + } else { + fprintf(stderr, "[WARNING] Couldn't get %s::%s: Expected variant or string, got: %c\n", namespace, key, arg_type); + tbl->dbus_message_unref(ctx->dbus_reply); + return MwFALSE; + } listener(handle, msg_value_content); } @@ -236,7 +291,8 @@ MWDECL MwBool MwLLDBusPortalPoll(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx, M } /* free the message */ - dbus_message_unref(msg); + tbl->dbus_message_unref(ctx->dbus_reply); + return MwTRUE; } void MwLLDBusFreeContext(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx) { From 40cae5d2a527b79f669b6081ede94d969d378275 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 17 Apr 2026 18:17:50 +0900 Subject: [PATCH 431/836] fix --- milsko.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/milsko.xml b/milsko.xml index 5c8370430..debb22e08 100644 --- a/milsko.xml +++ b/milsko.xml @@ -92,6 +92,7 @@ + @@ -702,7 +703,6 @@ - From 7b9870cebc00f5691929f3340af3682edaa9cf81 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 17 Apr 2026 21:26:41 +0900 Subject: [PATCH 432/836] fix things --- .clang-format | 2 +- examples/basic/periodic.c | 1 + include/Mw/LowLevel/Cocoa.h | 6 ++-- include/Mw/LowLevel/Wayland.h | 2 +- milsko.xml | 60 +++++++++++++++++++++++++++-------- src/backend/x11.c | 4 ++- src/lowlevel.c | 6 ++-- src/widget/combobox.c | 2 +- src/widget/entry.c | 2 ++ src/widget/numberentry.c | 2 ++ src/widget/vulkan.c | 4 +-- 11 files changed, 66 insertions(+), 25 deletions(-) diff --git a/.clang-format b/.clang-format index e168365a3..10cb6acb5 100644 --- a/.clang-format +++ b/.clang-format @@ -5,7 +5,7 @@ AlignConsecutiveAssignments: Enabled: true AlignConsecutiveDeclarations: Enabled: true -IndentAccessModifiers: true +AccessModifierOffset: -4 NamespaceIndentation: All IndentWidth: 8 PointerAlignment: Left diff --git a/examples/basic/periodic.c b/examples/basic/periodic.c index 593e76693..b01264a7a 100644 --- a/examples/basic/periodic.c +++ b/examples/basic/periodic.c @@ -231,6 +231,7 @@ int main() { add(f); f = frame("Entry", -PaddingContent, 24, MwEntryClass, NULL); + MwAddUserHandler(child(f), MwNchangedHandler, abort, NULL); add(f); f = frame("Label", -PaddingContent, -PaddingContent, MwLabelClass, diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 6c5f12b43..53c85a14d 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -84,7 +84,7 @@ typedef struct { @end @interface MilskoCocoaPixmap : NSObject { - @public + @public MwBool valid; int width; int height; @@ -106,7 +106,7 @@ typedef struct { @interface MilskoCocoaView : NSView { MwBool _child; - @public + @public draw_command* commands; } @@ -119,7 +119,7 @@ typedef struct { @end @interface MilskoCocoa : NSObject { - @public + @public MilskoCocoaApplication* application; MwBool _forceRender; MwBool _eventsPending; diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index a21c0da1e..c75f7bc0b 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -454,7 +454,7 @@ struct _MwLLWayland { #endif MwBool dark_theme_detection; - MwU32 dark_theme; + MwU32 dark_theme; /* clipboard related stuff. * Note that unlike most interfaces, we don't keep zwp_primary_selection stuff in a wayland_protocol_t because we use wl_data_device as a fallback and want to have it share memory space.*/ diff --git a/milsko.xml b/milsko.xml index debb22e08..30f4b2d2c 100644 --- a/milsko.xml +++ b/milsko.xml @@ -112,7 +112,8 @@ - + + @@ -120,33 +121,33 @@ - - + + - + - + - + - + - + - - + + @@ -157,13 +158,13 @@ - + - + - + 0 @@ -598,17 +599,28 @@ + + + + + + + + + + + @@ -648,6 +660,9 @@ + + + @@ -678,6 +693,9 @@ + + + @@ -694,6 +712,10 @@ + + + + @@ -704,6 +726,9 @@ + + + @@ -764,12 +789,18 @@ + + + + + + @@ -782,6 +813,9 @@ + + + diff --git a/src/backend/x11.c b/src/backend/x11.c index 704bd7bd6..f772b7b12 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -788,7 +788,9 @@ static void MwLLNextEventImpl(MwLL handle) { } else { n = s; } - } else if(strcmp(str, "BackSpace") == 0) { + } + + if(strcmp(str, "BackSpace") == 0) { n = MwLLKeyBackSpace; } else if(strcmp(str, "Left") == 0) { n = MwLLKeyLeft; diff --git a/src/lowlevel.c b/src/lowlevel.c index 7dfeea169..e2a576e7a 100644 --- a/src/lowlevel.c +++ b/src/lowlevel.c @@ -128,7 +128,7 @@ MwBool MwLLDBusNewContext(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx) { MWDECL MwBool MwLLDBusPortalGet(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx, const char* portal, const char* namespace, const char* key, void* out) { DBusMessageIter dbus_args, dbus_variant, dbus_inner_variant; - char arg_type; + char arg_type; if(!ctx->dbus_conn) { return MwFALSE; } @@ -182,7 +182,7 @@ MWDECL MwBool MwLLDBusPortalGet(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx, co return MwFALSE; } tbl->dbus_message_iter_get_basic(&dbus_inner_variant, out); - } else if (arg_type == 'u') { + } else if(arg_type == 'u') { tbl->dbus_message_iter_get_basic(&dbus_variant, out); } else { fprintf(stderr, "[WARNING] Couldn't get %s::%s: Expected variant or string, got: %c\n", namespace, key, arg_type); @@ -277,7 +277,7 @@ MWDECL MwBool MwLLDBusPortalPoll(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx, M return MwFALSE; } tbl->dbus_message_iter_get_basic(&msg_value_inner, &msg_value_content); - } else if (arg_type == 'u') { + } else if(arg_type == 'u') { tbl->dbus_message_iter_get_basic(&msg_value, &msg_value_content); } else { fprintf(stderr, "[WARNING] Couldn't get %s::%s: Expected variant or string, got: %c\n", namespace, key, arg_type); diff --git a/src/widget/combobox.c b/src/widget/combobox.c index 4c964f105..b9138787b 100644 --- a/src/widget/combobox.c +++ b/src/widget/combobox.c @@ -133,7 +133,7 @@ static void click(MwWidget handle) { MwListBoxInsert(cb->listbox, -1, packet); MwListBoxDestroyPacket(packet); - MwAddUserHandler(cb->listbox, MwNactivateHandler, listbox_activate, NULL); + MwAddUserHandler(cb->listbox, MwNlistBoxActivateHandler, listbox_activate, NULL); p.x = 0; p.y = MwGetInteger(handle, MwNheight); diff --git a/src/widget/entry.c b/src/widget/entry.c index 41b976e83..71b3284b0 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -102,6 +102,7 @@ static void key(MwWidget handle, int code) { MwUTF8Copy(str, t->cursor + 1, out, t->cursor, MwUTF8Length(str) - (t->cursor + 1)); MwSetText(handle, MwNtext, out); + MwDispatchUserHandler(handle, MwNchangedHandler, NULL); free(out); } else if(code == MwLLKeyLeft) { @@ -124,6 +125,7 @@ static void key(MwWidget handle, int code) { t->cursor++; MwSetText(handle, MwNtext, out); + MwDispatchUserHandler(handle, MwNchangedHandler, NULL); free(out); } diff --git a/src/widget/numberentry.c b/src/widget/numberentry.c index 69ee4c9d5..617f2a1ef 100644 --- a/src/widget/numberentry.c +++ b/src/widget/numberentry.c @@ -108,6 +108,8 @@ static void mouse_up(MwWidget handle, void* ptr) { MwStringPrintIntoBuffer(s, 512, "%g", atof(str) + 1); } MwSetText(handle, MwNtext, s); + + MwDispatchUserHandler(handle, MwNchangedHandler, NULL); } MwForceRender(handle); diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index 1e67ea923..bc0e1bbda 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -556,8 +556,8 @@ static void* mwVulkanGetFieldImpl(MwWidget handle, int field, int* err) { static void func_handler(MwWidget handle, const char* name, void* output, va_list va) { if(strcmp(name, "mwVulkanGetField") == 0) { - int field = va_arg(va, int); - int* err = va_arg(va, int*); + int field = va_arg(va, int); + int* err = va_arg(va, int*); *(void**)output = mwVulkanGetFieldImpl(handle, field, err); } } From 251b497c2ff73aa608a1ae3fc7bda46ed9ff403d Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sat, 18 Apr 2026 00:54:32 +0900 Subject: [PATCH 433/836] hints --- milsko.xml | 45 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 11 deletions(-) diff --git a/milsko.xml b/milsko.xml index 30f4b2d2c..7bfd2af59 100644 --- a/milsko.xml +++ b/milsko.xml @@ -227,11 +227,11 @@ 0x80 -
+
- + @@ -484,11 +484,34 @@
-
+
- + + + + + + + + + + + + + + + + + + +
+
+ + + + @@ -497,11 +520,11 @@
-
+
- + @@ -512,21 +535,21 @@ - + - + - +
-
+
@@ -566,7 +589,7 @@
-
+
From 212782f0be49910830b6b0a647a228af1b7503fa Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sat, 18 Apr 2026 01:55:56 +0900 Subject: [PATCH 434/836] fix --- milsko.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/milsko.xml b/milsko.xml index 7bfd2af59..690e237b6 100644 --- a/milsko.xml +++ b/milsko.xml @@ -227,9 +227,9 @@ 0x80 -
+
- + From 242253efbba0da3b4708c9509beb0fdac41b8c05 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sat, 18 Apr 2026 01:57:35 +0900 Subject: [PATCH 435/836] oops --- include/Mw/Dialog/FileChooser.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/Mw/Dialog/FileChooser.h b/include/Mw/Dialog/FileChooser.h index d086a74ed..fbabc49ae 100644 --- a/include/Mw/Dialog/FileChooser.h +++ b/include/Mw/Dialog/FileChooser.h @@ -27,7 +27,7 @@ MWDECL MwWidget MwFileChooser(MwWidget handle, const char* title); * @param dir Show directory only or not * @return Widget */ -MwWidget MwFileChooserEx(MwWidget handle, const char* title, int dir); +MWDECL MwWidget MwFileChooserEx(MwWidget handle, const char* title, int dir); #ifdef __cplusplus } From c93a9980f39c00f021945989f065c27ec76fc8ff Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sat, 18 Apr 2026 01:57:54 +0900 Subject: [PATCH 436/836] oops --- examples/basic/periodic.c | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/basic/periodic.c b/examples/basic/periodic.c index b01264a7a..593e76693 100644 --- a/examples/basic/periodic.c +++ b/examples/basic/periodic.c @@ -231,7 +231,6 @@ int main() { add(f); f = frame("Entry", -PaddingContent, 24, MwEntryClass, NULL); - MwAddUserHandler(child(f), MwNchangedHandler, abort, NULL); add(f); f = frame("Label", -PaddingContent, -PaddingContent, MwLabelClass, From ba15189c21962a702ba472ed7f26cddff5a0d87f Mon Sep 17 00:00:00 2001 From: IoIxD Date: Fri, 17 Apr 2026 13:12:22 -0700 Subject: [PATCH 437/836] revert wayland changes that were causing crashes --- src/backend/wayland.c | 136 ++++++++++++++++++++---------------------- 1 file changed, 64 insertions(+), 72 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index a738aa3eb..e450aa43d 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -62,7 +62,9 @@ static void new_protocol(void* data, struct wl_registry* registry, wayland_protocol_callback_table_t* cb = shget(self->wayland.wl_protocol_setup_map, interface); if(cb != NULL) { - shput(self->wayland.wl_protocol_map, interface, cb->setup(name, data)); + char* inter = malloc(strlen(interface) + 1); + strcpy(inter, interface); + shput(self->wayland.wl_protocol_map, inter, cb->setup(name, data)); /* we don't care for adding this protocol, we just use it to know if the compositor will let us have transparent surfaces */ } else if(strcmp(interface, "wp_alpha_modifier_v1") == 0) { self->common.supports_transparency = MwTRUE; @@ -649,24 +651,19 @@ static void keyboard_keymap(void* data, MwLL self = data; (void)wl_keyboard; - if(!self->wayland.parent) { - char* map_shm; - struct xkb_keymap* xkb_keymap; - struct xkb_state* xkb_state; - xkb_state = NULL; - + if(self->wayland.type == MWLL_WAYLAND_TOPLEVEL) { assert(format == WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1); - map_shm = (char*)mmap(NULL, size, PROT_READ, MAP_SHARED, fd, 0); + char* map_shm = (char*)mmap(NULL, size, PROT_READ, MAP_SHARED, fd, 0); assert(map_shm != MAP_FAILED); - xkb_keymap = xkb_keymap_new_from_string( + struct xkb_keymap* xkb_keymap = xkb_keymap_new_from_string( self->wayland.xkb_context, map_shm, XKB_KEYMAP_FORMAT_TEXT_V1, XKB_KEYMAP_COMPILE_NO_FLAGS); munmap(map_shm, size); close(fd); - xkb_state = xkb_state_new(xkb_keymap); + struct xkb_state* xkb_state = xkb_state_new(xkb_keymap); self->wayland.xkb_keymap = xkb_keymap; self->wayland.xkb_state = xkb_state; @@ -979,7 +976,6 @@ static wayland_protocol_t* wl_seat_setup(MwU32 name, MwLL ll) { static void wl_seat_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { (void)wayland; free(data->listener); - free(data); } /* wl_output setup function */ @@ -1124,8 +1120,6 @@ static int event_loop(MwLL handle) { if(wl_display_dispatch_pending(wayland->display) < 0) { wl_display_cancel_read(wayland->display); } - wl_display_flush(handle->wayland.display); - return 1; } @@ -1236,46 +1230,66 @@ static void update_buffer(MwLL self, struct _MwLLWaylandShmBuffer* buffer) { } static void buffer_setup(struct _MwLLWaylandShmBuffer* buffer, MwU32 width, MwU32 height) { - int stride = width * 4; - char temp_name[] = "/tmp/milsko-wl-shm-XXXXXX"; + int stride = width * 4; + char temp_name[] = "/tmp/milsko-wl-shm-XXXXXX"; + char temp_name_back[] = "/tmp/milsko-wl-shm-back-XXXXXX"; buffer->buf_size = width * height * 4; - buffer->fd = mkstemp(temp_name); + buffer->fd = mkstemp(temp_name); + buffer->fd_back = mkstemp(temp_name_back); + unlink(temp_name); + unlink(temp_name_back); if(posix_fallocate(buffer->fd, 0, buffer->buf_size) != 0) { printf("failure setting up wl_shm: could not fallocate. %s.\n", strerror(errno)); close(buffer->fd); return; } + if(posix_fallocate(buffer->fd_back, 0, buffer->buf_size) != 0) { + printf("failure setting up wl_shm: could not fallocate. %s.\n", strerror(errno)); + close(buffer->fd_back); + return; + } if(ftruncate(buffer->fd, buffer->buf_size) != 0) { printf("failure setting up wl_shm: could not truncate. %s.\n", strerror(errno)); close(buffer->fd); return; } - - buffer->buf = mmap(NULL, buffer->buf_size, PROT_WRITE, MAP_SHARED, buffer->fd, 0); - buffer->buf_back = malloc(buffer->buf_size); - - fsync(buffer->fd); - - if(!(buffer->shm_pool = wl_shm_create_pool(buffer->shm, buffer->fd, buffer->buf_size))) { - close(buffer->fd); - printf("failure setting up wl_shm: could not create pool.\n"); + if(ftruncate(buffer->fd_back, buffer->buf_size) != 0) { + printf("failure setting up wl_shm: could not truncate. %s.\n", strerror(errno)); + close(buffer->fd_back); return; } - buffer->shm_buffer = wl_shm_pool_create_buffer(buffer->shm_pool, 0, width, height, stride, WL_SHM_FORMAT_ARGB8888); - buffer->setup = MwTRUE; + + buffer->buf = mmap(NULL, buffer->buf_size, PROT_WRITE, MAP_SHARED, buffer->fd, 0); + buffer->buf_back = mmap(NULL, buffer->buf_size, PROT_WRITE, MAP_SHARED, buffer->fd_back, 0); + + fsync(buffer->fd); + fsync(buffer->fd_back); + + if(!(buffer->shm_pool = wl_shm_create_pool(buffer->shm, buffer->fd, buffer->buf_size))) { + printf("failure setting up wl_shm: could not create pool.\n"); + } + if(!(buffer->shm_pool_back = wl_shm_create_pool(buffer->shm, buffer->fd_back, buffer->buf_size))) { + printf("failure setting up wl_shm: could not create pool.\n"); + } + buffer->shm_buffer = wl_shm_pool_create_buffer(buffer->shm_pool, 0, width, height, stride, WL_SHM_FORMAT_ARGB8888); + buffer->shm_buffer_back = wl_shm_pool_create_buffer(buffer->shm_pool_back, 0, width, height, stride, WL_SHM_FORMAT_ARGB8888); + buffer->setup = MwTRUE; } static void buffer_destroy(struct _MwLLWaylandShmBuffer* buffer) { - close(buffer->fd); - if(buffer->buf) munmap(buffer->buf, buffer->buf_size); - if(buffer->buf_back) free(buffer->buf_back); + if(!buffer->setup) { + return; + } if(buffer->shm_buffer) wl_buffer_destroy(buffer->shm_buffer); + if(buffer->shm_buffer_back) wl_buffer_destroy(buffer->shm_buffer_back); if(buffer->shm_pool) wl_shm_pool_destroy(buffer->shm_pool); if(buffer->shm_pool_back) wl_shm_pool_destroy(buffer->shm_pool_back); + close(buffer->fd); + close(buffer->fd_back); buffer->setup = MwFALSE; } @@ -1514,12 +1528,12 @@ static void destroy_toplevel(MwLL r) { xdg_toplevel_destroy(r->wayland.toplevel->xdg_top_level); + xkb_keymap_unref(r->wayland.xkb_keymap); + xkb_state_unref(r->wayland.xkb_state); xkb_context_unref(r->wayland.xkb_context); - xkb_keymap_unref(r->wayland.xkb_keymap); - free(r->wayland.toplevel); wl_registry_destroy(r->wayland.registry); @@ -1539,6 +1553,8 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { r->wayland.type = MWLL_WAYLAND_SUBLEVEL; + r->wayland.display = parent->wayland.display; + setup_callbacks(&r->wayland); r->wayland.registry = wl_display_get_registry(parent->wayland.display); @@ -1576,9 +1592,10 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { /* Sublevel setup function */ static void destroy_sublevel(MwLL r) { - wl_subsurface_destroy(r->wayland.sublevel->subsurface); + backbuffer_destroy(&r->wayland); + framebuffer_destroy(&r->wayland); - wl_registry_destroy(r->wayland.registry); + wl_subsurface_destroy(r->wayland.sublevel->subsurface); free(r->wayland.sublevel); @@ -1757,9 +1774,6 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh } } - framebuffer_destroy(&r->wayland); - backbuffer_destroy(&r->wayland); - framebuffer_setup(&r->wayland); backbuffer_setup(&r->wayland); @@ -1826,6 +1840,8 @@ static void MwLLDestroyImpl(MwLL handle) { int select_ret; event_loop(handle); + // wl_display_cancel_read(handle->wayland.display); + wl_flush(handle); if(pthread_mutex_timedlock(&handle->wayland.eventsMutex, &t) != 0) { @@ -1851,6 +1867,7 @@ static void MwLLDestroyImpl(MwLL handle) { } #endif + buffer_destroy(&handle->wayland.cursor); wl_region_destroy(handle->wayland.region); if(handle->wayland.supports_zwp) { @@ -1858,6 +1875,10 @@ static void MwLLDestroyImpl(MwLL handle) { } else { wl_data_source_destroy(handle->wayland.clipboard_source.wl); } + if(handle->wayland.icon != NULL) { + buffer_destroy(handle->wayland.icon); + wl_surface_destroy(handle->wayland.icon->surface); + } if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { destroy_toplevel(handle); @@ -1867,20 +1888,6 @@ static void MwLLDestroyImpl(MwLL handle) { destroy_popup(handle); } - if(handle->wayland.framebuffer.setup) { - framebuffer_destroy(&handle->wayland); - wl_surface_destroy(handle->wayland.framebuffer.surface); - } - if(handle->wayland.backbuffer.setup) { - backbuffer_destroy(&handle->wayland); - wl_surface_destroy(handle->wayland.backbuffer.surface); - } - buffer_destroy(&handle->wayland.cursor); - if(handle->wayland.icon != NULL) { - buffer_destroy(handle->wayland.icon); - wl_surface_destroy(handle->wayland.icon->surface); - } - for(i = 0; i < shlen(handle->wayland.wl_protocol_setup_map); i++) { void* ctx = shget(handle->wayland.wl_protocol_map, handle->wayland.wl_protocol_setup_map[i].key); @@ -1888,30 +1895,17 @@ static void MwLLDestroyImpl(MwLL handle) { handle->wayland.wl_protocol_setup_map[i].value->destroy(&handle->wayland, ctx); } shdel(handle->wayland.wl_protocol_map, handle->wayland.wl_protocol_setup_map[i].value); - free(handle->wayland.wl_protocol_setup_map[i].value); - free(ctx); } shfree(handle->wayland.wl_protocol_map); shfree(handle->wayland.wl_protocol_setup_map); - // wl_keyboard_destroy(handle->wayland.keyboard); - // wl_pointer_destroy(handle->wayland.pointer); - - if(handle->wayland.supports_zwp) { - for(i = 0; i < arrlen(handle->wayland.clipboard_devices_zwp); i++) { - if(handle->wayland.clipboard_devices_zwp[i]->device.zwp) zwp_primary_selection_device_v1_destroy(handle->wayland.clipboard_devices_zwp[i]->device.zwp); - free(handle->wayland.clipboard_devices_zwp[i]); - } - } else { - printf("[WARNING] Primary clipboard requested for MwLLSetClipboard, but this Wayland compositor doesn't support it.\n"); - } - for(i = 0; i < arrlen(handle->wayland.clipboard_devices_wl); i++) { - wl_data_device_destroy(handle->wayland.clipboard_devices_wl[i]->device.wl); - free(handle->wayland.clipboard_devices_wl[i]); - } + wl_keyboard_destroy(handle->wayland.keyboard); + wl_pointer_destroy(handle->wayland.pointer); wl_flush(handle); + // free(handle); + if(currentlyHeldWidget == handle) { currentlyHeldWidget = NULL; } @@ -2176,7 +2170,6 @@ static int MwLLPendingImpl(MwLL handle) { wl_display_cancel_read(handle->wayland.display); } else { wl_display_read_events(handle->wayland.display); - wl_display_flush(handle->wayland.display); if((pending = wl_display_dispatch_pending(handle->wayland.display)) < 0) { wl_display_cancel_read(handle->wayland.display); } @@ -2185,7 +2178,6 @@ static int MwLLPendingImpl(MwLL handle) { if((pending = wl_display_dispatch_pending(handle->wayland.display)) < 0) { wl_display_cancel_read(handle->wayland.display); } - wl_display_flush(handle->wayland.display); } if(MwWaylandAlwaysRender) { @@ -2336,7 +2328,7 @@ static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { if(handle->wayland.configured) update_buffer(handle, handle->wayland.icon); - xdg_toplevel_icon_v1_add_buffer(icon, handle->wayland.icon->shm_buffer, 1); + xdg_toplevel_icon_v1_add_buffer(icon, handle->wayland.icon->shm_buffer_back, 1); xdg_toplevel_icon_manager_v1_set_icon(icon_manager, handle->wayland.toplevel->xdg_top_level, icon); } @@ -2438,7 +2430,7 @@ static void MwLLShowImpl(MwLL handle, int show) { static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { (void)handle; (void)parent; - /* Wayland doesn't have "popups" in the Milsko sense per se. xdg_popup is closer to ToolWindow and as such is what we use there. So just like the Mac backend, this is just left alone. */ + /* Wayland doesn't have "popups" in the Milsko sense persay. xdg_popup is closer to ToolWindow and as such is what we use there. So just like the Mac backend, this is just left alone. */ } static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) { From 10fda7bfc4f8e99396bf692ae757a8dc6cfe8fe5 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Fri, 17 Apr 2026 13:14:41 -0700 Subject: [PATCH 438/836] re-fix typo --- src/backend/wayland.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index e450aa43d..4cab7e624 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -2430,7 +2430,7 @@ static void MwLLShowImpl(MwLL handle, int show) { static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { (void)handle; (void)parent; - /* Wayland doesn't have "popups" in the Milsko sense persay. xdg_popup is closer to ToolWindow and as such is what we use there. So just like the Mac backend, this is just left alone. */ + /* Wayland doesn't have "popups" in the Milsko sense per se. xdg_popup is closer to ToolWindow and as such is what we use there. So just like the Mac backend, this is just left alone. */ } static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) { From a666010564036e8fae3ab7ce4950f7b385d5a010 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sat, 18 Apr 2026 19:21:50 +0900 Subject: [PATCH 439/836] wip rewrite listbox --- examples/basic/listbox.c | 27 ++++------- examples/basic/periodic.c | 20 +++----- include/Mw/Widget/ListBox.h | 51 ++++++-------------- milsko.xml | 47 ++++-------------- src/dialog/filechooser.c | 50 ++++++++----------- src/widget/combobox.c | 7 +-- src/widget/listbox.c | 95 +++---------------------------------- 7 files changed, 68 insertions(+), 229 deletions(-) diff --git a/examples/basic/listbox.c b/examples/basic/listbox.c index 3f63ad143..ce7e9acab 100644 --- a/examples/basic/listbox.c +++ b/examples/basic/listbox.c @@ -23,12 +23,11 @@ void activate(MwWidget handle, void* user, void* call) { } int main() { - MwWidget lb; - int len = sizeof(harvard) / sizeof(harvard[0]) - 1; - int i; - MwListBoxPacket* packet; - int index; - MwLLPixmap px; + MwWidget lb; + int len = sizeof(harvard) / sizeof(harvard[0]) - 1; + int i; + int index; + MwLLPixmap px; MwLibraryInit(); @@ -41,18 +40,15 @@ int main() { MwSetInteger(lb, MwNleftPadding, 20); - packet = MwListBoxCreatePacket(); - index = MwListBoxPacketInsert(packet, -1); - MwListBoxPacketSet(packet, index, 0, "Harvard sentence"); - MwListBoxPacketSet(packet, index, 1, "Length"); + index = MwListBoxInsert(lb, -1, 0, "Harvard sentence"); + MwListBoxInsert(lb, index, -1, "Length"); for(i = 0; i < len; i++) { char sz[16]; MwStringPrintIntoBuffer(sz, 16, "%d", (int)strlen(harvard[i])); - index = MwListBoxPacketInsert(packet, -1); - MwListBoxPacketSetIcon(packet, index, px); - MwListBoxPacketSet(packet, index, 0, harvard[i]); - MwListBoxPacketSet(packet, index, 1, sz); + index = MwListBoxInsert(lb, -1, 0, harvard[i]); + MwListBoxInsert(lb, index, -1, sz); + MwListBoxSetIcon(lb, index, px); } MwAddUserHandler(lb, MwNactivateHandler, activate, NULL); @@ -60,9 +56,6 @@ int main() { MwNhasHeading, 1, NULL); MwListBoxSetWidth(lb, 0, -128); - MwListBoxInsert(lb, -1, packet); - - MwListBoxDestroyPacket(packet); MwLoop(wmain); } diff --git a/examples/basic/periodic.c b/examples/basic/periodic.c index 593e76693..c6043f2d9 100644 --- a/examples/basic/periodic.c +++ b/examples/basic/periodic.c @@ -145,12 +145,11 @@ static void menu_handler(MwWidget handle, void* user, void* call) { } int main() { - int i; - MwWidget f, w; - MwListBoxPacket* pkt; - int index; - MwMenu m, m2; - void* v; + int i; + MwWidget f, w; + int index; + MwMenu m, m2; + void* v; MwLibraryInit(); @@ -242,13 +241,8 @@ int main() { MwNhasHeading, 1, NULL); w = child(f); - pkt = MwListBoxCreatePacket(); - index = MwListBoxPacketInsert(pkt, -1); - MwListBoxPacketSet(pkt, index, 0, "Epic title..."); - index = MwListBoxPacketInsert(pkt, -1); - MwListBoxPacketSet(pkt, index, 0, "Hello"); - MwListBoxInsert(w, -1, pkt); - MwListBoxDestroyPacket(pkt); + index = MwListBoxInsert(w, -1, 0, "Epic title..."); + index = MwListBoxInsert(w, -1, 0, "Hello"); add(f); f = frame("NumberEntry", -PaddingContent, 24, MwNumberEntryClass, NULL); diff --git a/include/Mw/Widget/ListBox.h b/include/Mw/Widget/ListBox.h index 1c5c609f6..ae07068e5 100644 --- a/include/Mw/Widget/ListBox.h +++ b/include/Mw/Widget/ListBox.h @@ -19,50 +19,29 @@ extern "C" { MWDECL MwClass MwListBoxClass; /*! - * @brief Creates a listbox packet - * @return Packet - */ -MWDECL MwListBoxPacket* MwListBoxCreatePacket(void); - -/*! - * @brief Destroys a listbox packet - * @param packet Packet - */ -MWDECL void MwListBoxDestroyPacket(MwListBoxPacket* packet); - -/*! - * @brief Inserts a new item to a packet - * @param packet Packet - * @param index Index - * @return Index - */ -MWDECL int MwListBoxPacketInsert(MwListBoxPacket* packet, int index); - -/*! - * @brief Sets a column of item in a packet - * @param packet Packet - * @param index Index + * @brief Inserts item on the listbox + * @param handle Widget + * @param row Row * @param col Column * @param text Text + * @return Index */ -MWDECL void MwListBoxPacketSet(MwListBoxPacket* packet, int index, int col, const char* text); +MwInline int MwListBoxInsert(MwWidget handle, int row, int col, const char* text) { + int out; + + MwVaWidgetExecute(handle, "mwListBoxInsert", (void*)&out, row, col, text); + + return out; +} /*! - * @brief Sets an icon of item in a packet - * @param packet Packet + * @brief Sets the icon of the row + * @param handle Widget * @param index Index * @param icon Icon */ -MWDECL void MwListBoxPacketSetIcon(MwListBoxPacket* packet, int index, MwLLPixmap icon); - -/*! - * @brief Inserts item on the listbox - * @param handle Widget - * @param index Index - * @param packet Packet - */ -MwInline void MwListBoxInsert(MwWidget handle, int index, void* packet) { - MwVaWidgetExecute(handle, "mwListBoxInsert", NULL, index, packet); +MwInline void MwListBoxSetIcon(MwWidget handle, int index, MwLLPixmap icon) { + MwVaWidgetExecute(handle, "mwListBoxSetIcon", NULL, index, icon); } /*! diff --git a/milsko.xml b/milsko.xml index 690e237b6..37d3fe5b9 100644 --- a/milsko.xml +++ b/milsko.xml @@ -549,44 +549,6 @@
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -688,9 +650,16 @@ + + + + + + + - + diff --git a/src/dialog/filechooser.c b/src/dialog/filechooser.c index ff1683c36..42fbf0815 100644 --- a/src/dialog/filechooser.c +++ b/src/dialog/filechooser.c @@ -210,20 +210,16 @@ static void layout(MwWidget handle) { ww = 160; wh = h - 10 - 24 - 5 - 24 - 5 - 24 - 5; if(fc->nav == NULL) { - MwListBoxPacket* p = MwListBoxCreatePacket(); - int index; - - index = MwListBoxPacketInsert(p, -1); - MwListBoxPacketSet(p, index, 0, "Home"); - MwListBoxPacketSetIcon(p, index, fc->computer); + int index; fc->nav = MwVaCreateWidget(MwListBoxClass, "nav", handle, wx, wy, ww, wh, MwNleftPadding, 16, NULL); - MwListBoxInsert(fc->nav, -1, p); - MwAddUserHandler(fc->nav, MwNlistBoxActivateHandler, nav_activate, NULL); - MwListBoxDestroyPacket(p); + index = MwListBoxInsert(fc->nav, -1, 0, "Home"); + MwListBoxSetIcon(fc->nav, index, fc->computer); + + MwAddUserHandler(fc->nav, MwNlistBoxActivateHandler, nav_activate, NULL); } else { MwVaApply(fc->nav, MwNx, wx, @@ -409,11 +405,10 @@ static int qsort_files(const void* a, const void* b) { } static void scan(MwWidget handle, const char* path, int record) { - filechooser_t* fc = handle->opaque; - void* dir = MwDirectoryOpen(path); - int i; - MwListBoxPacket* p = MwListBoxCreatePacket(); - int index; + filechooser_t* fc = handle->opaque; + void* dir = MwDirectoryOpen(path); + int i; + int index; if(dir != NULL) { MwDirectoryEntry* entry; @@ -467,10 +462,9 @@ static void scan(MwWidget handle, const char* path, int record) { MwListBoxSetWidth(fc->files, 1, 128); MwListBoxSetWidth(fc->files, 2, 0); - index = MwListBoxPacketInsert(p, -1); - MwListBoxPacketSet(p, index, -1, "Name"); - MwListBoxPacketSet(p, index, -1, "Date modified"); - MwListBoxPacketSet(p, index, -1, "Size"); + index = MwListBoxInsert(fc->files, -1, 0, "Name"); + MwListBoxInsert(fc->files, index, -1, "Date modified"); + MwListBoxInsert(fc->files, index, -1, "Size"); for(i = 0; i < arrlen(fc->entries); i++) { if(strcmp(fc->entries[i]->name, ".") == 0 || strcmp(fc->entries[i]->name, "..") == 0) continue; @@ -479,11 +473,10 @@ static void scan(MwWidget handle, const char* path, int record) { MwStringTime(date, fc->entries[i]->mtime); - index = MwListBoxPacketInsert(p, -1); - MwListBoxPacketSetIcon(p, index, fc->dir); - MwListBoxPacketSet(p, index, -1, fc->entries[i]->name); - MwListBoxPacketSet(p, index, -1, date); - MwListBoxPacketSet(p, index, -1, NULL); + index = MwListBoxInsert(fc->files, -1, 0, fc->entries[i]->name); + MwListBoxInsert(fc->files, index, -1, date); + MwListBoxInsert(fc->files, index, -1, NULL); + MwListBoxSetIcon(fc->files, index, fc->dir); arrput(fc->sorted_entries, fc->entries[i]); } @@ -496,17 +489,14 @@ static void scan(MwWidget handle, const char* path, int record) { MwStringTime(date, fc->entries[i]->mtime); MwStringSize(size, fc->entries[i]->size); - index = MwListBoxPacketInsert(p, -1); - MwListBoxPacketSetIcon(p, index, fc->file); - MwListBoxPacketSet(p, index, -1, fc->entries[i]->name); - MwListBoxPacketSet(p, index, -1, date); - MwListBoxPacketSet(p, index, -1, size); + index = MwListBoxInsert(fc->files, -1, 0, fc->entries[i]->name); + MwListBoxInsert(fc->files, index, -1, date); + MwListBoxInsert(fc->files, index, -1, size); + MwListBoxSetIcon(fc->files, index, fc->file); arrput(fc->sorted_entries, fc->entries[i]); } } - MwListBoxInsert(fc->files, -1, p); - MwListBoxDestroyPacket(p); } MwWidget MwFileChooserEx(MwWidget handle, const char* title, int dir) { diff --git a/src/widget/combobox.c b/src/widget/combobox.c index b9138787b..f55344430 100644 --- a/src/widget/combobox.c +++ b/src/widget/combobox.c @@ -101,7 +101,6 @@ static void click(MwWidget handle) { if(cb->opened) { MwPoint p; int i; - void* packet; int width = MwGetInteger(handle, MwNwidth); int ent = MwGetInteger(handle, MwNareaShown); @@ -125,13 +124,9 @@ static void click(MwWidget handle) { MwLLSetCursor(((MwListBox)cb->listbox->internal)->frame->lowlevel, &MwCursorArrow, &MwCursorArrowMask); - packet = MwListBoxCreatePacket(); for(i = 0; i < arrlen(cb->list); i++) { - int index = MwListBoxPacketInsert(packet, -1); - MwListBoxPacketSet(packet, index, 0, cb->list[i]); + MwListBoxInsert(cb->listbox, -1, 0, cb->list[i]); } - MwListBoxInsert(cb->listbox, -1, packet); - MwListBoxDestroyPacket(packet); MwAddUserHandler(cb->listbox, MwNlistBoxActivateHandler, listbox_activate, NULL); diff --git a/src/widget/listbox.c b/src/widget/listbox.c index 6f2a9db2a..31fd00f38 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -6,61 +6,6 @@ #define Font MwFLBuildFont(MwFLFlagMonospace) -MwListBoxPacket* MwListBoxCreatePacket(void) { - MwListBoxPacket* packet = malloc(sizeof(*packet)); - memset(packet, 0, sizeof(*packet)); - - return packet; -} - -void MwListBoxDestroyPacket(MwListBoxPacket* packet) { - int i; - int j; - - for(i = 0; i < arrlen(packet->names); i++) { - for(j = 0; j < arrlen(packet->names[i]); j++) { - if(packet->names[i][j] != NULL) free(packet->names[i][j]); - } - arrfree(packet->names[i]); - } - - arrfree(packet->names); - arrfree(packet->pixmaps); - - free(packet); -} - -int MwListBoxPacketInsert(MwListBoxPacket* packet, int index) { - int i; - - if(index == -1) index = arrlen(packet->names); - for(i = arrlen(packet->names); i < index; i++) { - arrput(packet->names, NULL); - arrput(packet->pixmaps, NULL); - } - - arrins(packet->names, index, NULL); - arrins(packet->pixmaps, index, NULL); - - return index; -} - -void MwListBoxPacketSet(MwListBoxPacket* packet, int index, int col, const char* text) { - char* t = text == NULL ? NULL : MwStringDuplicate(text); - int i; - - if(col == -1) col = arrlen(packet->names[index]); - for(i = arrlen(packet->names[index]); i < col; i++) { - arrput(packet->names[index], NULL); - } - - arrins(packet->names[index], col, t); -} - -void MwListBoxPacketSetIcon(MwListBoxPacket* packet, int index, MwLLPixmap icon) { - packet->pixmaps[index] = icon; -} - static int get_first_entry(MwWidget handle, MwListBox lb) { int st = 0; int y = MwGetInteger(handle, MwNhasHeading) ? 1 : 0; @@ -442,38 +387,11 @@ static void prop_change(MwWidget handle, const char* prop) { } } -static void mwListBoxInsertImpl(MwWidget handle, int index, MwListBoxPacket* packet) { - int i; +static void mwListBoxInsertImpl(MwWidget handle, int row, int col, const char* text) { MwListBox lb = handle->internal; int old; - int max = 0; - if(index == -1) index = arrlen(lb->list); - old = index; - - for(i = 0; i < arrlen(packet->names); i++) { - if(arrlen(packet->names[i]) > max) max = arrlen(packet->names[i]); - } - - for(i = 0; i < arrlen(packet->names); i++) { - MwListBoxEntry entry; - char* name; - int j; - - entry.name = NULL; - for(j = 0; j < max; j++) { - if(arrlen(packet->names[i]) > j && packet->names[i][j] != NULL) { - name = MwStringDuplicate(packet->names[i][j]); - arrput(entry.name, name); - } else { - arrput(entry.name, NULL); - } - } - - entry.pixmap = packet->pixmaps[i]; - - arrins(lb->list, index, entry); - index++; - } + if(row == -1) row = arrlen(lb->list); + old = row; resize(handle); if(old < (MwGetInteger(lb->vscroll, MwNvalue) + MwGetInteger(lb->vscroll, MwNareaShown))) { @@ -579,9 +497,10 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v mwListBoxSetAlignmentImpl(handle, index, alignment); } if(strcmp(name, "mwListBoxInsert") == 0) { - int index = va_arg(va, int); - MwListBoxPacket* packet = va_arg(va, MwListBoxPacket*); - mwListBoxInsertImpl(handle, index, packet); + int row = va_arg(va, int); + int col = va_arg(va, int); + const char* text = va_arg(va, const char*); + mwListBoxInsertImpl(handle, row, col, text); } } From 55c562645adca97412ac2e8f604a9e46c9e67fd3 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sat, 18 Apr 2026 19:40:28 +0900 Subject: [PATCH 440/836] listbox rewrite done --- examples/basic/listbox.c | 10 +++--- include/Mw/TypeDefs.h | 6 ---- include/Mw/Widget/ListBox.h | 4 +-- src/dialog/filechooser.c | 20 +++++------ src/widget/combobox.c | 2 +- src/widget/listbox.c | 67 ++++++++++++++++++++++++++++++++----- 6 files changed, 77 insertions(+), 32 deletions(-) diff --git a/examples/basic/listbox.c b/examples/basic/listbox.c index ce7e9acab..8f6ca5a26 100644 --- a/examples/basic/listbox.c +++ b/examples/basic/listbox.c @@ -40,18 +40,18 @@ int main() { MwSetInteger(lb, MwNleftPadding, 20); - index = MwListBoxInsert(lb, -1, 0, "Harvard sentence"); - MwListBoxInsert(lb, index, -1, "Length"); + index = MwListBoxSet(lb, -1, 0, "Harvard sentence"); + MwListBoxSet(lb, index, -1, "Length"); for(i = 0; i < len; i++) { char sz[16]; MwStringPrintIntoBuffer(sz, 16, "%d", (int)strlen(harvard[i])); - index = MwListBoxInsert(lb, -1, 0, harvard[i]); - MwListBoxInsert(lb, index, -1, sz); + index = MwListBoxSet(lb, -1, 0, harvard[i]); + MwListBoxSet(lb, index, -1, sz); MwListBoxSetIcon(lb, index, px); } - MwAddUserHandler(lb, MwNactivateHandler, activate, NULL); + MwAddUserHandler(lb, MwNlistBoxActivateHandler, activate, NULL); MwVaApply(lb, MwNhasHeading, 1, NULL); diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index ca8e32b05..21def057b 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -26,7 +26,6 @@ typedef struct _MwLabelSegment MwLabelSegment; typedef struct _MwListBoxEntry MwListBoxEntry; typedef struct _MwTreeViewEntry MwTreeViewEntry; typedef struct _MwDirectoryEntry MwDirectoryEntry; -typedef struct _MwListBoxPacket MwListBoxPacket; typedef struct _MwBox* MwBox; typedef struct _MwMouse MwMouse; #ifdef _MILSKO @@ -202,11 +201,6 @@ struct _MwDirectoryEntry { time_t mtime; }; -struct _MwListBoxPacket { - MwLLPixmap* pixmaps; - char*** names; -}; - struct _MwBox { int layout; }; diff --git a/include/Mw/Widget/ListBox.h b/include/Mw/Widget/ListBox.h index ae07068e5..5f2ef056c 100644 --- a/include/Mw/Widget/ListBox.h +++ b/include/Mw/Widget/ListBox.h @@ -26,10 +26,10 @@ MWDECL MwClass MwListBoxClass; * @param text Text * @return Index */ -MwInline int MwListBoxInsert(MwWidget handle, int row, int col, const char* text) { +MwInline int MwListBoxSet(MwWidget handle, int row, int col, const char* text) { int out; - MwVaWidgetExecute(handle, "mwListBoxInsert", (void*)&out, row, col, text); + MwVaWidgetExecute(handle, "mwListBoxSet", (void*)&out, row, col, text); return out; } diff --git a/src/dialog/filechooser.c b/src/dialog/filechooser.c index 42fbf0815..f155f0747 100644 --- a/src/dialog/filechooser.c +++ b/src/dialog/filechooser.c @@ -216,7 +216,7 @@ static void layout(MwWidget handle) { MwNleftPadding, 16, NULL); - index = MwListBoxInsert(fc->nav, -1, 0, "Home"); + index = MwListBoxSet(fc->nav, -1, 0, "Home"); MwListBoxSetIcon(fc->nav, index, fc->computer); MwAddUserHandler(fc->nav, MwNlistBoxActivateHandler, nav_activate, NULL); @@ -462,9 +462,9 @@ static void scan(MwWidget handle, const char* path, int record) { MwListBoxSetWidth(fc->files, 1, 128); MwListBoxSetWidth(fc->files, 2, 0); - index = MwListBoxInsert(fc->files, -1, 0, "Name"); - MwListBoxInsert(fc->files, index, -1, "Date modified"); - MwListBoxInsert(fc->files, index, -1, "Size"); + index = MwListBoxSet(fc->files, -1, 0, "Name"); + MwListBoxSet(fc->files, index, -1, "Date modified"); + MwListBoxSet(fc->files, index, -1, "Size"); for(i = 0; i < arrlen(fc->entries); i++) { if(strcmp(fc->entries[i]->name, ".") == 0 || strcmp(fc->entries[i]->name, "..") == 0) continue; @@ -473,9 +473,9 @@ static void scan(MwWidget handle, const char* path, int record) { MwStringTime(date, fc->entries[i]->mtime); - index = MwListBoxInsert(fc->files, -1, 0, fc->entries[i]->name); - MwListBoxInsert(fc->files, index, -1, date); - MwListBoxInsert(fc->files, index, -1, NULL); + index = MwListBoxSet(fc->files, -1, 0, fc->entries[i]->name); + MwListBoxSet(fc->files, index, -1, date); + MwListBoxSet(fc->files, index, -1, NULL); MwListBoxSetIcon(fc->files, index, fc->dir); arrput(fc->sorted_entries, fc->entries[i]); @@ -489,9 +489,9 @@ static void scan(MwWidget handle, const char* path, int record) { MwStringTime(date, fc->entries[i]->mtime); MwStringSize(size, fc->entries[i]->size); - index = MwListBoxInsert(fc->files, -1, 0, fc->entries[i]->name); - MwListBoxInsert(fc->files, index, -1, date); - MwListBoxInsert(fc->files, index, -1, size); + index = MwListBoxSet(fc->files, -1, 0, fc->entries[i]->name); + MwListBoxSet(fc->files, index, -1, date); + MwListBoxSet(fc->files, index, -1, size); MwListBoxSetIcon(fc->files, index, fc->file); arrput(fc->sorted_entries, fc->entries[i]); diff --git a/src/widget/combobox.c b/src/widget/combobox.c index f55344430..823185d12 100644 --- a/src/widget/combobox.c +++ b/src/widget/combobox.c @@ -125,7 +125,7 @@ static void click(MwWidget handle) { MwLLSetCursor(((MwListBox)cb->listbox->internal)->frame->lowlevel, &MwCursorArrow, &MwCursorArrowMask); for(i = 0; i < arrlen(cb->list); i++) { - MwListBoxInsert(cb->listbox, -1, 0, cb->list[i]); + MwListBoxSet(cb->listbox, -1, 0, cb->list[i]); } MwAddUserHandler(cb->listbox, MwNlistBoxActivateHandler, listbox_activate, NULL); diff --git a/src/widget/listbox.c b/src/widget/listbox.c index 31fd00f38..b2acad781 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -387,18 +387,64 @@ static void prop_change(MwWidget handle, const char* prop) { } } -static void mwListBoxInsertImpl(MwWidget handle, int row, int col, const char* text) { +static void redrawIfNeeded(MwWidget handle, int row) { MwListBox lb = handle->internal; - int old; - if(row == -1) row = arrlen(lb->list); - old = row; - resize(handle); - if(old < (MwGetInteger(lb->vscroll, MwNvalue) + MwGetInteger(lb->vscroll, MwNareaShown))) { + if(MwGetInteger(lb->vscroll, MwNvalue) <= row && row <= (MwGetInteger(lb->vscroll, MwNvalue) + MwGetInteger(lb->vscroll, MwNareaShown))) { MwForceRender(lb->frame); } } +static int mwListBoxSetImpl(MwWidget handle, int row, int col, const char* text) { + MwListBox lb = handle->internal; + MwListBoxEntry entry; + char* t = text == NULL ? NULL : MwStringDuplicate(text); + if(row == -1) row = arrlen(lb->list); + + entry.name = NULL; + entry.pixmap = NULL; + if(row < arrlen(lb->list)) { + entry = lb->list[row]; + } + + if(col == -1) col = arrlen(entry.name); + arrins(entry.name, col, t); + + if(row < arrlen(lb->list)) { + lb->list[row] = entry; + } else { + arrins(lb->list, row, entry); + } + + if(row >= arrlen(lb->list)) resize(handle); + redrawIfNeeded(handle, row); + + return row; +} + +static void mwListBoxSetIconImpl(MwWidget handle, int index, MwLLPixmap icon) { + MwListBox lb = handle->internal; + MwListBoxEntry entry; + if(index == -1) index = arrlen(lb->list); + + entry.name = NULL; + entry.pixmap = NULL; + if(index < arrlen(lb->list)) { + entry = lb->list[index]; + } + + entry.pixmap = icon; + + if(index < arrlen(lb->list)) { + lb->list[index] = entry; + } else { + arrins(lb->list, index, entry); + } + + if(index >= arrlen(lb->list)) resize(handle); + redrawIfNeeded(handle, index); +} + static void mwListBoxDeleteImpl(MwWidget handle, int index) { MwListBox lb = handle->internal; int i; @@ -496,11 +542,16 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v int alignment = va_arg(va, int); mwListBoxSetAlignmentImpl(handle, index, alignment); } - if(strcmp(name, "mwListBoxInsert") == 0) { + if(strcmp(name, "mwListBoxSet") == 0) { int row = va_arg(va, int); int col = va_arg(va, int); const char* text = va_arg(va, const char*); - mwListBoxInsertImpl(handle, row, col, text); + *(int*)out = mwListBoxSetImpl(handle, row, col, text); + } + if(strcmp(name, "mwListBoxSetIcon") == 0) { + int index = va_arg(va, int); + MwLLPixmap icon = va_arg(va, MwLLPixmap); + mwListBoxSetIconImpl(handle, index, icon); } } From 39bee0e5cce7f455c12d58d307ddcbc7764b11bb Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sat, 18 Apr 2026 21:52:02 +0900 Subject: [PATCH 441/836] fix --- configure | 3 +++ examples/basic/periodic.c | 4 ++-- include/Mw/Widget/ListBox.h | 2 +- pl/rules.pl | 4 ++++ 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/configure b/configure index 98a6b3a6e..259254266 100755 --- a/configure +++ b/configure @@ -45,6 +45,7 @@ param_set("vulkan-string-helper", 1); param_set("shared", 1); param_set("static", 1); param_set("examples", 1); +param_set("dbus", 1); my %features = ( @@ -60,6 +61,7 @@ my %features = ( "static" => "build static library", "wayland" => "enable wayland backend", "gnustep" => "use gnustep", + "dbus" => "use DBus on supported platform" ); my @features_keys = ( "1classic-theme", "1stb-image", @@ -68,6 +70,7 @@ my @features_keys = ( "1vulkan", "2vulkan-string-helper", "1shared", "1static", "1wayland", "1gnustep", + "1dbus" ); foreach my $l (@ARGV) { diff --git a/examples/basic/periodic.c b/examples/basic/periodic.c index c6043f2d9..f2466ad8b 100644 --- a/examples/basic/periodic.c +++ b/examples/basic/periodic.c @@ -241,8 +241,8 @@ int main() { MwNhasHeading, 1, NULL); w = child(f); - index = MwListBoxInsert(w, -1, 0, "Epic title..."); - index = MwListBoxInsert(w, -1, 0, "Hello"); + index = MwListBoxSet(w, -1, 0, "Epic title..."); + index = MwListBoxSet(w, -1, 0, "Hello"); add(f); f = frame("NumberEntry", -PaddingContent, 24, MwNumberEntryClass, NULL); diff --git a/include/Mw/Widget/ListBox.h b/include/Mw/Widget/ListBox.h index 5f2ef056c..f4fe48f46 100644 --- a/include/Mw/Widget/ListBox.h +++ b/include/Mw/Widget/ListBox.h @@ -19,7 +19,7 @@ extern "C" { MWDECL MwClass MwListBoxClass; /*! - * @brief Inserts item on the listbox + * @brief Sets item on the listbox * @param handle Widget * @param row Row * @param col Column diff --git a/pl/rules.pl b/pl/rules.pl index 7ad414db7..d45d7c993 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -60,6 +60,10 @@ if (grep(/^wayland$/, @backends)) { $gl_libs = "-lGL -lGLU"; } +if (not(param_get("dbus"))) { + $cflags =~ s/( |^)-DUSE_DBUS( |$)/ /; +} + if (grep(/( |^)-DUSE_DBUS( |$)/, $cflags)) { add_cflags(`pkg-config --cflags dbus-1`); } From d0a6bd892d010bd661b0d1f67427b7629519cea8 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sat, 18 Apr 2026 11:02:44 -0700 Subject: [PATCH 442/836] add some impl comments to mac, fix a hypothetical bug --- include/Mw/MachDep.h | 2 +- src/backend/cocoa.m | 23 +++++++++++++++++------ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index 10a1a04b6..df2043cd8 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -54,7 +54,7 @@ #include #endif -#ifdef __unix__ +#if defined(__unix__) || defined(__APPLE__) #include #include #endif diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index d9c6382ee..dc00b0abd 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1,3 +1,10 @@ +/* + * some implementation notes to know: + * - Mac really does not like immediate mode drawing, there was some trick I tried where I rendered to a bitmap context but it was very slow. So instead we just convert it to a commands system which gets cleared out whenever MacOS Actually draws the window. + * - We override NSApplication to intercept sendEvent and know when an event has been sent. When it is, doPending is sent. The appropriate "pending" function then returns whether that's set (before resetting it). + * - We want the application to be *functional* on old MacOS, at a minimum of 10.4. There's obviously points where newer functions will have to be used, and in that case we use ObjC's "respondsToSelector" function to know if we can call the newer function. + */ + #include #include "../../external/stb_ds.h" #include "Mw/LowLevel/Cocoa.h" @@ -12,6 +19,7 @@ #pragma clang diagnostic ignored "-Wdeprecated-declarations" #endif +/* Coordinate flipping function (global, rect) */ static NSRect rectFlip(NSRect originFrame) { NSScreen* zeroScreen = [[NSScreen screens] objectAtIndex:0]; double screenHeight = [zeroScreen frame].size.height; @@ -23,10 +31,12 @@ static NSRect rectFlip(NSRect originFrame) { return destinationFrame; } -static NSPoint pointFlip(NSPoint point) { +/* Coordinate flipping function (global, point) */ +static inline NSPoint pointFlip(NSPoint point) { return rectFlip(NSMakeRect(point.x, point.y, 0, 0)).origin; } +/* Coordinate flipping function (local to view; rect) */ static NSRect localRectFlip(NSRect originFrame, NSView* view) { float viewHeight = [view bounds].size.height; NSRect destinationFrame = @@ -36,7 +46,9 @@ static NSRect localRectFlip(NSRect originFrame, NSView* view) { originFrame.size.width, originFrame.size.height); return destinationFrame; } -static NSPoint localPointFlip(NSPoint point, NSView* view) { + +/* Coordinate flipping function (local to view; point) */ +static inline NSPoint localPointFlip(NSPoint point, NSView* view) { return localRectFlip(NSMakeRect(point.x, point.y, 0, 0), view).origin; } @@ -551,6 +563,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { @implementation MilskoCocoa - (void)sendClipboardEvent { + /* Either uncomment this and make it use respondsToSelector and/or find out what the api proceeding NSPasteboard is. */ /*NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; NSArray* items = @[ @@ -639,11 +652,10 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { * respond appropriately. Also for child windows just have it be 0. */ if(x == MwDEFAULT) { - x = r ? ([[NSScreen mainScreen] frame].size.width / 2.) - (width / 2.) : 0; + x = parent ? 0 : ([[NSScreen mainScreen] frame].size.width / 2.) - (width / 2.); } if(y == MwDEFAULT) { - y = r ? ([[NSScreen mainScreen] frame].size.height / 2.) - (height / 2.) - : 0; + y = parent ? 0 : ([[NSScreen mainScreen] frame].size.height / 2.) - (height / 2.); } c->rect = NSMakeRect(x, y, width, height); @@ -929,7 +941,6 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { pix.pixmap.pixmap = MwLLCreatePixmap(handle, pixmap->common.raw, pixmap->common.width, pixmap->common.height); arrpush(handle->cocoa.real->view->commands, pix); - // [handle->cocoa.real->view setNeedsDisplay:MwTRUE]; } static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { From f4087440aa7c6ee106fccec50dd45a31fdfc7492 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 19 Apr 2026 06:17:13 +0900 Subject: [PATCH 443/836] logo for nodejs binding --- resource/logo/102x47.png | Bin 5770 -> 5770 bytes resource/logo/banner-nodejs.png | Bin 0 -> 373807 bytes resource/logo/banner.pov | 8 ++++++++ resource/logo/logo64.png | Bin 4592 -> 4592 bytes tools/logo.sh | 3 ++- 5 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 resource/logo/banner-nodejs.png diff --git a/resource/logo/102x47.png b/resource/logo/102x47.png index 54dade6d0d432a8cd95c85e047666b402256ea08..b00815fdc41ee48e9ff31cc1472bbcb2d77c8c0f 100644 GIT binary patch delta 179 zcmeCu?b4l)QU8iXNK`;YV!KT@0|SFRdP`(kYX@0Ff!9MFwr%%2r)9W zGBmR?Hq|yTure_4&;MVJq9HdwB{QuOw+1^S_tQWP8gLs*GILXlOD4yPu}h&@VFs}x W;(Sf##-d75P6kg`KbLh*2~7Z+zA`cZ delta 183 zcmeCu?b4l)!S#|`hRsy5Ds+0=W)8+m(R$Sq*NBpo#FA929Z XQ9!rlqiCioP!ofvtDnm{r-UW|Ao4R4 diff --git a/resource/logo/banner-nodejs.png b/resource/logo/banner-nodejs.png new file mode 100644 index 0000000000000000000000000000000000000000..5d3475759ccde8bf9014ccdcf3530e714f378c40 GIT binary patch literal 373807 zcmV)BK*PU@P)85M&;DJ^}O48vuT|lVENM( zlcW=%QSD+I+xTur%QAHP_uv1~6@~fRB{;d<4R}DgJLQ&JLg9OEd{A0z`yX05i2I|% zK}4-B*WjP{Ye!pd<*EzS&>suFRXkr*)}f=c7}R~RUJ_(;ay~7rh_Ac5V)`mymjx$T z+Xzx5%71RqpIOCR9QxXPQ0<7^+}#ZS^KdbPv;P+a*{eyv5I@Y;F*t6Uj!AkPu0BvT zY`P}RB@MN>nU|QYKhpYx&G}2@k$x^}aKcb089%V7&aSR{%g?zFBGr45Lz9L8Hlvm{L&|7{9y9@k_+MV@wUd46-nC4Rde_(V`Omv?O4989ee0k%CHob`?Cy5u}Q=XBt!Dz zovg%uMAgln=Ig4aI8`Gq>npA#++meqG0_F$-k&@MK<{_%5g4x2*PwA_UYDk&J^TD^ zy`e^%yV_xC8VnonVDF#IR^tgP1>08rwLN7&?*bo~p@wgR)mU%ekQ+;BMgFNv`T?cl z0y^>MRj&&)+Ke1fr~M->|4VYf4*js)NSmjli3j&jZ!OO_sWRaPsm8W}(d$9+|E%og&3l%UZ2zN;@%qXWgiN+IXd4`r{Ctc zMWnQnlp7wwcym4>&=z|}YdX5iyd3A01iFGJbBk<=xW6^s(G_Y!FqL;8r3N=;+*G zSp8e@So5&S7cF><);vg`P%TS>NIz@x5^a~jfy8T$DcDmB+T^lf6-ml$O&{Tc0;FxuQKEopQbhJxCszlqL_LsMI8v=d?a%WOv*8M z@R%lN@r-MO?WT8*umF=(yeVvQBsjP$B={OUE}JQ zw#$%&i3En%l8kLDyZEG%YycHOI6Z?AkSj_{2m&^G@wYt1mL0if=u?(K^t?`k! zJBg?@dOXl9yjo`5p}1axX0$YM*jrh1P&)@tEESqfn)YOTU76yQnIXu4oK+>Y9;phS zTV~>Xd+W;vgjMl1P|eUUqmRFZ$j_ax4435y1wk#Go9 z<*$EO-w=Zd#)cJuuI$XSDUZA~iyW)cPcWDe_&x4wU%ZpYaemo)xEdk)GGuK=>}KB$ z2QCQ7u=mAaeM`}P5GJ^RxXaE!zeNY@tHj5g7?y%?+4LutcP(G!npZVKKEPTOYTl+M z=|}(UJ`3~`jtDU1^mOXfe$ z)_S&aLGuL@F{H7*r+~XBQJj@*8yr;D7Fsql2y=(wrzVRr1>>_es!EUyJxWGqqC}vJ z2S&uYOR{9arw7Jsz_7Tj$?7encpnE@H^JaBsv{b=1EwQx>yOCJ0iv&Y5FIAd-ITk@ zz4c0E`qL~*dW*CE21q*BzJCPT%g2=6>#2-i=Y;Du=@atxUf3&luU$Y+H|lP=r5iE4 zYACv+(ghKf^-EtYc1Wkh%Y)*{Ir?UwN6G+TsP%9a9#-E*g8Bxt)#qzi7ua(3(gR7*&t8K!cQ%OnFEcP#}5o7;?Ly(7lm+%pJ@UMDW3 zVBOfA9i}J~4`0e1`PRoG-20psZ=wSWL18kZqMm>TQ*DtTvKfR7y8x{hTO7XV*1O zmVEhU&@W&xcN5Kk-dwknVhri9-Ne!Jvgj*T-=w5zVS-y+ij1}oytg0MX?6YU?a zj2Tjrq%kuEDQr@CEsA( zGLDxZv~#b}uR8Xu0oatyr1^|Sq7Ouvf(7#z>nrr@b)m7-HA+6{9Y`L}UAHKO;jt8< zm$|{3rsA`D?;|dr1fhq_i#*5=$WV+eI;LERX8~R(;tOL$+S&yKJ0SANI>&o6A`hGT za*wwDn!IEIeg&TAA?3B;T!H2=AaonwK)BAct2&mwDwx}k(u!&TbtO*0-SyT+!&; z{2$j{@1qxn;gp9O8-?c2bFrfMrmaSgcuS*MI-FM;OS;=d+h)jzfCy+~^o1aLLDpS> zBGhC@W9!gNYMV%*oJi2VuRzyw4Yl~gyiFHHZZ8MamH$S=zh4g6mA@_bP`TxnuZUq? z0)+|x7VggvcS|hw!_VA}CrH06X5Pd>M)?a$qz+74ER=WZ^l3>I&95gV{SN5;`BBiT z)fI2s3?&2F5O+i9Ei#%X+sP%>E5SbN&05zjlLbw}?e6kOuTA`{V2seHwfC24Z+r)E ztt~d*?$|_MAva`o=@A+81B1IAG}(WO=g#hmz}zG`uVElIxmBt8GaU%GMcH(afN{22 z<2wQqQG06P{@Rjf=1$fy%-%8R)g8PTX}+=#!N# z3$2yrUCC~;>m&o$xulZJ%K1%%XEL1-m8P7VeLR{Nd%L50>6eJ$J%v$zV~>QOLBINn zCCM6XW90ZVBjEOr%SYYU2;p1S{Xo`;6A4LJ5*pyiomX%(Zc z-(<8U94FVKw!uPf)}jvbwt6rE2L*8NV8?q0wD->-9Yj9-TYf!d2<5x@E%KK+yq071 z&l}|K;akokmzi{@7KghGZixfV5x@1A5?t5-8z}}JkAs`E^0%m#p><+7M2Chq{Zu-5 z!V{oZUBj&NiWE`+TS&a2y@e7_@9>Yzpu1^v-y^$_byC7do=Em9zi_WwbaT%h)(rik z)pwvTkvTl9=C3&VnD;wS>kgOaUMPtwt;Wu&Jq~|LIkYbJnd@+N@UW^^$-UK#sDEe- z$APDvrx;T=oou}=%{$&PhF7nxrCRSe;3lBj5bQ5^1mcX_^S6P&la-QuU_IYUZ?%Hd(oxx7;7bvEkVYg{ju zbfxK2qr%nzA0$6h2H2{2DV?tpvd&NJrH+m$? z6vF{Ok!?13#&Bb_iDnsCmm~;6zucibb#<~OZv9{HudRPMxi?qZGTIV_ona^w10 zCd?bdb^3MtbM@}@gf-NIYD zs~uR#N6u^L%`7&zM1H^o8M!K`zAop*@XYPWg-@fTf1^RJCIwPGq-JfH z=1@~CB>d8kjkB}LwST2PMlt6pt9FO@H26RIhCg&!q{@&^Pe>CwW z%p{kP?!qE&j=f(L%@t!V!14YOEj<5>ji4JO$gMjN#j{~w^|dLyuTJ5k{R8ULW0LjI zGAoI!TBAnzrbf7$MK4y^l9*>9_dOYBR zz>mwFjMx`~#+|xxT`o>`pE)RhCU*t<-Al;TztnohA< zgg{H)=0pf=*aP?BcoN=y5-D#O-DL+iKRgM6_M1_?IwV;7(7@?b zOvft)yx+wo=508ugAi!xpBBfZw*_alH3`c2D)ktrmeDpS_xGAdvJD0s2G*o)68W@@ z!l$FC@<3FEKYa<-9~-fEwf(NZ0(b4(r{xNR@`UVhytnLygDvkb9veibbR>?f>S9dN z78Xb$>IpW^m8kqDgo4mw$x*}B60F$b0}_R_>3I!0eWw zo!H=`BA(vLG!Q~Zq;D3smk;{-{XP#s1?2#|f}8r6((loj3hzno!&h7Fy|4UgQFO9l zgChqZ!eQUV9wqH9$wi$qUL*aY@L}HZN|`!wq}k4v8mC3~NreOD>8HwDjTSqdyB?Np z2Kt)K5@E3R->Tt5?llY?95OkhB;DM*_)Dr%#4tB!fFnW(^x6ljrv?|j%%@ona&M2BZrJdZCP^>nRZ{Byr@i`Uy=iSUcAOSC4EuK^usN{;pPi($qXOv}1-44-B{^+G9~ zVh%UgVDSq9e%wtUJyxwh1}@^(6z03zqxj0eY>x#q_wb?3ur1Ma-vD8~}^NZ&Ecrjb5ZfDT&Q% z(jq9?9D*(6Ezx>)r;{kC7q?5q;VI3tOus7ed)zzkSnXW$XJ?ituq6ow3mjG2SWkG^ zJ+&x}h$4p-O`+2R8%#GNNyt$3l?m&8M5bqiA37Qz`)!wxfyT(Wis#!eJyU6TrtxYK zZNF(rvhE;yAk<1(5SzVv39xv9{5hnm%eN2G7x$7T76?=HlsF3VW2E?#y<<6>OI7!% z_EGbuy2Fi9fq^^WpK;wLe~iZzjA818U@Ri_#oqz`d#m)`cGyL%{CjuucjO`i^iA30 zyX8^2$IRdI%W@c5QwCO>K?Wl3Em>3%2QA_)ewK|wQKA@}qp+7DYwsxZkoatF^HF_C zo`Ny%Ac8gwMs?jKI5c_?3mcB!ND)QC(xFa2rihP6MlDQQKGIp(w%?R^m!BJaL1ZTD zqf@@Vq5md>St>#~~b-B)U^IK64V z`P4R%b;qy&co^Q$eATYEhtIi;N3YGf7afIuwmI^F+bW&RytR>1lML;*x)hR4RL`g- zhIHNJlzy^H-vPdpz56OV>`r|+mCG8tA2kZUCzl=HKa)L?wru%XG0(6?4@SBt)BNU0 zahW+!vNA`7K@~I`R#ae@XKcUe5BFdkwqLuM7O^&4QW zM+}bbM|tJI23t6IeN8hSz2O^=qDib~6V?vwE_1BDC>{V>lBCj9v8Bk@mva2-&s?jg zL$%A7SDmgLiHz>8bdI4Dj|E)#?#fJ*79%}MJ~p+(zv3l8M_)b9K!~@eAP+~}s~Ff{ z%Xm7@6I*eXy4451codNTWJXcWL~!-#EGKRv?iP~=enW?_mxrv=B@ggl+PinPEMLwH zckS4RTZ7GpfzcREej_19bE=3d zZGN)pEza+o`uD=U%=KgxORx>PIOPI7dl;sh*ccx9JiXyF*QF`M0Gt0htI-oiP2{=% zOyj8L`#luVj^D`rJC=JE9EnpJw_&T=6PsM=9nmGoBS>7-!Q0v1SYLq?*p>&D`OizqwewuCa1qON6-gu<3$p15R-eEXz+I zjZ2yApU~momrD)VkH{YPEnBuY=?3300X3}p3@Y>S$CSWwCc58@B)TtqbWdu`>*}^7 zZkk^Tz$^5-(tt&J2}yVcLP##MG8HMzFq+Df3D_RyS^FD?`_g-z_U&{n;p=vW$B27k3!fP z(ezCIJ@K84`+ZyTg`{!2zFd+kqupnY$lu77$NeI*r{9*(5eB{94MOb2fORLJ%ZT&| zNe)kNCC6ZjxCaqUo*_)F>S=?itRSmRVFXCAcCuFoKX-+quUCi;46J_p1Cz8R4K0%Y zSS$a`Jep$saDmAzE~mID%tGp&{(}Ra zEHr;qLZ5;C&CD%vkd=0;@`&rce<6KZ#Nb5RP3( z%T(j`Gy^i&M_YGsfjJ9^faK`I~Y-B)D(yJ|kBck>_NO;|=6} zr{9(>4+=+I=LdU?c%7qIVn`5|Eo*9;n6zz?&m$N<9!DITEYGyM-;n%6Q;9^h6e$#m zsbULnRfv%PkHw|ia#+Zym^=%DJeHtuv`mu^Xib_CJ$$Q!evQ|6eD26#a4XOd@6_cR zN(@ULs|+am3;bw`LEjUx=sYdOla(*oq*Reo^dtApiF)knx!a%q%7{TBP0 zE0qDB37omF*ttdlsYNURiaK& zal%J|hJj%??9|fLR+s26?`577(cEoQ|#%AUzv{zlN> zYka>`;&rdL@%$OxAf`7CN_swpqSw(j(Rs|TE>2r`&bIc4Bfp_JI5KqK7sP)~uWFwm z@&72w)z}m9s>R3v((*+53^1)ljSjLw|Ke!RdG6L7z)0BaQlkB+YLCenICW`+^C;3S zD9}8~CfOBudP8Tgar_!Rp>B`9j&u4tg^zv37b#Vz#Aj)V4%n5yXfpiCLEx6mH~RKNPs%{TR}$# zE(m@Od$UkmBM{hJ;k&qJirzH8=hu%K0#jc-vTj!pbSuDZXI=%p_}dyxNjR6$d&ga< zove8bc+4oh*>4mABN*L#vC<)KEzhJASarxfvK1GUZs5G?PdBqRMDUL*<&TeMyUgG@!}!GU$zvcbA|VuF#gyP~0Ai7n&) zOBD%roxhE#MzIYNdhJkzDz&zAwASqtp}ev4cKqr$SCw>^%#=uJ`?C` zpO0hme-#R-^xzVG?H_K@)J^m_gD$9j$LQ(@aBKvx}jy!%fDPMsLH9YT@8ZY}%-yC?`)&<-ZY#ZQZ(TzciQ{bo-^!3@Q zSB{rL_e6X%7CNH4GtJc%{m(RK;l<(>VC_)aII2WA+_I=Hc?!T>2m5=Dh zX2R5&kDWy7(%4-yG<{K{J9xYMw-?fPc|UMJBYiOnUaArOVl&KCDekdkCiHR`GpA4E zeh2NZm1@PFL*HkV3uG|0Bx?=Rdj-uy@4%!egS$8%T9Z_#nb?7arqNXho9DN@R_=8@eWskIc{f>%Ck;&*<_OApGLk26T)})Rx=B4zAU!0a z7@4ejeJK55!UnyVVc6WxXC;k_c{372Ho(*lv4(XE;PDCu=ZbHbBBC4yP;mj76Qi7s zi5U^&^tIq$J>Zv_#2lh;P!xbgQ?A#e(>ZT$CRDqUCt$I+qxB1-4SUY} zKXN%gkYweCw6$NgvSv>=B4Xrb772J&7w8b*Rf%rP2u`kv-nL#oiXY?ihhR+#EG)bM zYhOZw!G3+9o(9TpPF+6NHw$ErA_WE(ofso2dMNvAEWjM-#t?ss;4I&6z9>YW2F2IX z+Jpx0vfqpelUsH>J~T0@m9l3Z<`9A#A=a-C`vBge>cdpFA@zL=k4Nn`Uh#j%^}y6y zsbON-3oVRC#yd`Fe5!|ZYxMZ;gvB3J6@HgkohZc3bwCyE zMZvDfgMbZ369<`WBbWq{8QD0o^V#afaEmoqF!J#P(=_bI?oGk&O`-B`|32jc9pbn3 z!;>(A-!9}AaFTj?3ab*Yh&3s&u)aQ^J?bc4f#IJLOd-#$k@hp5mWcfWM_5-il6~Pzk?P`5%H4R^qW(O=4l;CMfWE z6%G)E6GpXG>g25vxPZM>y|rmS>)B?B!kb9bm>;S_>O0`WllNjv-5>SBjJS%rW7GSg z3^zO@j0m6u>Q^rYE}brV(kq9FPjAQ!cSV{?aOnFqllj0~d5wX@kOP|w1KRI$RuMjuC!yTTLOQPgXT=`-{G>nf!Tp3y zF(|3w&*=lX#C$mtY;(sg-nnEy*LBMVF0oRq&#I9e^+H2{LmE6OQb_{BZ-M%%coHt5 zuASV+c;OT1%VoEATVFIktD<{G}QY$ zwntD5w#B3M5?CD$K4!7T7REjo*~4SrYYu^L%b^MLjrN=)J^`D*mvBp0GMjdgNq(>D zN-`Yh(>zPj7T~XFr9ZFCol4jL`OdqGuxj=`xO!V%_*Ed+b-Y)RVIo2z$AGV- zG@`rduZGBVKJ1MisM$-dTE%3(YOWnUnZA~yyHJ0enoFXj3U2{L$K@tLPS6!cVUOcJ%I-tQg{67 z5`$Ve-byz?g__E(w9nCohJQLW1vag7vMT^*zxYqJvf&%1ugulP~c+_UddOT`Gg9#omD-c#>i;hVxEel@q?FgVmA2DLkvEw5rY%JBaBl88s#2(a^&+JL|7SF{2TnhKJoCS-FoF`EF1x@&#db zeolv)iNYKn(gRuKU%x&Xcl0%_3hR> zn_&I0ig|`X`G<@5S)8Fd=CLa747gUC`BkjGu)xs#bBjUtTgs+Aw!x5r>`qBy$O=n% zn<*%zJ|0v`+Y*Us@WQn*BngW2Mg%yH!N}|`?keT>kET~`^);UOJM`72o_gz`tfA9K zg&5|sp)j6=>pK++HQ4##pY!19TiJS z;?tZFI~L$&p8Y7!rorE&*x$$5D()SuN?&*fztk5N4gp(e+fK8cA8yWqtbc0*QLM)p z^#yFm)}#PBabXV3@m2V-q)n_MDq9hxlUodH#>-(*{XvbBu=mw;cZb_3T3Za=jo7bJ z$B~V2g1^6N+>-Cffq!`H%6TuDzJ^pJGwp_lJ;vH^YsIEcB)jrvQ$K@9IK6W|+!9>Q zMz&?7yTy@ekyaa-{Zq(P-HajH6=T)0%1n)Gvr$@n3X|br$EoVRn#;E9u=MKA$8}LK ze!MU;Ja$%3X}$chOk5=gb(Bjx>xrMcweN{FiO;~CT-^%>8SHUhn5t){VgekED*S+Q=nbbM zxm`*Z6E2{YDME9~Y`ax^K_b6}2@5i7Nr=q2F$=Kvn+HI;j*Vfk&U_F#BU3QT5GHuq z0{kptJ`i^srq8L4->ec2z&Y#jD6ICdu&{6ljA<8GZYhQS{y2=MkO>El%01^#$Qx?O z{hZ_Vjs5b5v06iI3CL`r42Mj8{e|{0YrCA~TyyTHK|1+rWmB1nqG=Q@kXYoO6@_JrpK#mVAs{2KdB#so#e z87Fmt4)I0q-EcPs9^%`TFoji7{|uLC4=2HDmJ2sQLP4!B9BF+HTsPHHVPwKSQm0q< z)dF}e|J|nqyRJIyw?n&AyQ4J_fjWp>w<+;RhK&+W80pqOZ;@#7ZM%ZC&quMpOaiK{oug$0jJK9w1kc`1SRmS}_-D@N0k9QmBP z=FO^bY*=6u1WRKKs(Wf&h)p~13bC;oY3o}ss`J`oOLzHlM|Yc!i+Vf;kdQO`-9CN9 zZqIX%ws0h_Jorn)?mdplt!24xg(~H|#cqv6@i>6g*Ee0c3fMLA{0_T(!}!35g|t%! z+%%Rd9Km)Y{h^Mju$Eb6W>L(*&8 zQZ^HMj0O0+efyql;Z$tgV3G4TapJl?9;>k|EL;xWMHzpY20Nx2sJS}Eo*N8?Mu{9a z{(*|D9PmmZvuP?t@7BEmxu6|;4`Kt^8~W77wzy`m8L7a)E9)Dr8r+UY1ZAQ{ez0RVc|Gc0L+gCL_#j7`}4@Im>CHq3ZZKppLwe64S{%Q9+2l`I2CZfPR7XHnO~oS?CR zW&vZa0;?tL{Gtc=-RZ3;(oY%09c*KV7DSNbCn8^m3BkYD2lceCr5YkG4p~0ECdD`ET^@_d1%AZs?It= zzpjbS*vQ;v>+FRwJOi?w`fT{oyPBE&)w+jp#DTMp_V=+qr_I=JhZT1cdw`#Ml6!q1 zNHi1o2}htatg~Hjh1_GE*|~&0mFr_GY9EPrv}+7q0fL#%CFg$s8sOvQ+s(UtG3Obm zM6QUz{(7ZhG*r_~VuuOa6kkra_Hm*?_@15)7o((t%U7}7nu33Y^0uSVQY`I_@e7dH zW$Y^nCP2YTY5dTf6GpaatJ0JbE}dL-zVS0#gf<45)5YfGu&3yOPgP&?)$wGsPlKVN zPCL)?{5ZH2p~|v%s2}wu*hx(K#r@zxy4xquVM^YVv+1m2?QzfoiFf*p{^Akn5O1i% zJOOJycfNBj9>khc`4nt<*jO1WtM8$k5ii{VvmTL5>TJf|Uwobi!TKaK+jGwL5=8?- z(NN3`j%TDf*KN5_l@Hr6a`yI`6dk0TH({8t)l(^&N=)B6&11rqM4EB8e4cMJ&FpMZq5bvn~fCi2rMb}H<=oJ6*3$WT8I|p&(12^8s!@>2ip<%JQ`AB zU&vKrOqJ*&={@C{QPznFsBb-g)I?nd6p|WdLvO0%g0#k_&J%{zI?~3%%gyf# zJ*330Z6j4(`*OQ`wYoMuMwl5mLPx#u?T7})9)7t+a8Q@q?f5trA9~);4>6yg%c_@@ zyLe++WTKVv-jLk(qhwe5$$lg1o4J24NYWiU1`2Ajs7(We_7uMpI{zxN$__caa{PI! zk6bGydAna2@A0b0!FVMgm#A$8(y3A}$z$cX<)qfoCiOre*j|Dr#-rV5ybsdg^pZ9@ z$IoA1RB69=g~V9O1P}0Qb-Qogj#t*IzjDU6Z@iAbg+l`NZAqV!_X9&<* zSQ8im_nlcg#+_TL-P(FtwJP8(;wrJ;80x;Q-!5eeNb;i|#fcGd?UUY4`!BTIQ_ZkR z!{e7eL!M&XxrF+sXS}AU?AxutTO@F@-|G4}{++~F>P7GIyX@Ov^)U6|=wNderF4N4 zoqkdxFt;6oz+7aOiZ1^`R2gp#=J?U1dQ4pY1pqi z{-@X1a9~e{>+iQ6i(1lyf@KqcXxfT7zCO=&pGkUQgq45SIeYErpo>VZ9U@g%`THZ# z8P?g?-sMT~H&|z0X0Ye(<#;cFSsz=ZUkG8pNPx|+-ICKj4GiZ&-fQgiRL`)ndv(*3 zUL?Ar763CRV<1n+q}SVmXxJkcZf~A?CXYF@!W*lN*l)t*)h#oPmzF%TQ}yRMN(@P+ zC%Wls&)6?E3Ht@3&8QO}YIJojF$!eY8?^CCM8dC@iDSPO*Z#s!oU4Ovb$Uf+}Tw| zS23Fnn{jxU`VMbled!FqIp-Ge9jLIK9ef1q3pd0CHTW-_h5NAJ+&zLl?;9T`((i?z zpVRtY+DDAJw719#IRa_sODxkz?8t(FN966*1s#(O2832>Z8+7>yBRN)h7WDGQE z(dYsKZ^BW(RKWaA*n4YmU;EGMQeAq+W{V~3jx+f1Gbobm9l}*G3WVEr|9WtB^U5tM z9dE(*563}|UTi?gIsZ4}!96?@a+8uRXH`yJtvD~|f&wO-5#Sc~LgH*Lz6-s6MMy72 zk~UcgzPjwo7v9?;Y;C~9XqaMJi&Ic(xja^cyS8t1$+JUVYN#c!6sZ3)Jf5C~-k3a< z?)Jlq^cuzsVhOK+kH%o&0e-pqwKq^&U>1hh)ASoyf8Ku;Tc|c(j{p8ErTmn_rSR=` zvfo3=U_Sp6os_um13}eON0shXkGchAnN!V%(CUE6p#GYMNg{qd`1oIPkz0?Ns>S3j zavY_|SbB%Rn@*WQ8}6Ujqx&}7$cGkqVkd~Dk&Qm@#iP`g?#}RDQj^u2BOKD4ZUxec zQsHa=TJ#ALC30wpnI8Yx1~Dhk!o*0ZZRa{nM*VI zO`!3AXy6+WHxX`08L(3SC~LiJVnh86VlbACRz9)v!)W$bRH z3u;i7Xbv}GI5>1IbQf>Y@4ua-T~%nmcuc6R3i(RfSzL+<&wBq*iA<=kiJF}8uupCs z32nOohL4NZ5(6%4mlsPRe<0fFb3gtP7Ly7zm1|Sgng8Scg7wL;Q?G~1Jfp-kRLUdx zalzdrz9*;9jq!TAThoK8eStX>Hqxc&ji*vB4@ILC_w$g$#Ae6NT8EU_JBJ7IR|<|; zyEhlypv@y1ETyT}Vd`J5*X4VP49vMed$3cA?I*{Jk`B~#-$i3)&AU0^!^yh9C1#gd z|MBWlQrzPKzJoLW2G-py{~T*f$QXOZ{tWLT5--7)!;L4xFpyz>cE4m;4^*FFNteu& za9}CWH;Sxwg$=&ay{P?nnxB_xJ*O>iI z$fTKmTe2^|kGBw}f2?8h{yAKLXvsB0OBM?8dzg7MrnquqXKg@BwnT@zxNR7ZGv$zVvaC ztC7B-&ofcAeaSvtoStMKR@t@|))MMExgsL^R;E3NiW+nKHjl~)j81+a_xyjpv# z9J@=G5t7^Rs>zw%sM8sK^~8ip-V&FA#bc8a5GszoBXV=?Ih&@zRLwCakx&{*3ji{l zQcvJRKn~;=;qT%TrgpsZ^^gT<`rditAX4Hjys=ErowbSN0}>lVbX0CH(4Lt35)td+ zHzpoZJ;Fn_lBcD}+W~Cf6hMaDe;8*xe;^^zfH4egKy;Haj_p%P8~W|^pT`e5aPww6 z53ow<)+>oIw?9fVHq}h2G407vB{kOcc6_k1kP&xB%;_z*R;3r&Z#kF3ay>)W0+@hQbS3@L@eCD zIN&wskP@fugyrmwab~gG-CF|F1BGLf*$xKxW~+P7?%A(ymMTwJMh;x@B-+rgAHc8V&!tay|LnUj4@;PTELBH@k1$n5w@e$|_*3{j% zDtrlV$JqPWeEvJ}SyH_5eAFY*=Rs%;fZOxPN$yGCIVNXW2PUeUU5lV?1*n&_;dH=4 zH1L&?6Mo@)3g={f2ruLFvq=7*NFeN=Q`)F+tpyVOZ$Z>o zQ68Ejf-_!~13S;6bavs^MaSeONw{#YM)drGB2?Mqo^h^5TP;uQiLG30F+`m~5vIfr zF?H;@z#NZqjAdcVa-+0PXYnP72J@vBtV7u-atBk<+>|ew_a=f?S69Lv)JEz9cOF z7D*#fHM^OPm*l}%iLhVXCF0qoJ|D(ug-2S=JSq~gZ8%L5LL@6o;O%o%nul$*xPUWz z-Pcc(F_s}1ZYZ7ocDjp6Z=)rZ5kNy%`*>2$=XD-thY;+k`(0e^|Cl) zkcY5SC7rHxrwQe{kOSNmkyyp+%h)gV0JBiZqf4j*%1$#q6W=-h$Om{bH%ec7;;2o8 z0T;_2!ozEg`6n2!13Vz;78)8oLVXLlUu++5X&jGQQKCBU%h7i8N9QV5)wMuwv0yNm zLgK;_8<};6{mNoPb}AV%t7ItTS}3nGGX9{=I(}tmRHi30zbttcW4G4Y^c%!Ot#`?iL*EF2c92RIV^xi*Bj@gGc$Q#%6Dfp=b%1E0#dRyDm)Kd#7+8-)CH1plSIhum zSD{k4*Vppd3D&Cj4JT9%3^(5Ef#wd<+czj~EMJSw2FEY^TO0XWEJ>rYdYCcuNV75T zFL_Qc5Lte(3*ZB#rlH+>eB=hp43FQ25w5kC(puXc!gS=%sMGvydLXca7icgmup#~; zK!oMSneYiHw=g7KZU?M8AJSk8Dr+6~#PVS}y!Uhu?*i$w<5;$&3;BonqV2u-V-N6x z+A~e+AQqgvS>#+l9WM~V#HaDy$J~_2PFi*sF7xHOE=S_=z$}-NVTJuNM~48E{Mf3g(Y9D=V-0ACBn6*4SN_&J6J==`h5} zj}7)kuxV)+2R^E(CE&p1u#iE(g@OGxaHL1<(Zp+@?FOd`XGCcRFZ?L)#fXS+ylF`+ z&%k)5PIP0gS$k3A%Q&$O#PJhMePvWz!Pa(gm*Q5WNTIkpw73@w5Zqk~!JT5o3l!G^ z#idAa*W&K(?oN;|cfI$n_2oxaew=eMv-ixipV?>2UxSmQImMbA9JN#C+g6mQH{>0j z)gOKPD5pg%|BD59k||iA^Cw#O9T8?)EkSjAlqlwKe^DIpGr-VV`=Ay@|VVkp)CL%S111YRYsR(m(twc?OH9+0T7J z|F(q~SUX5%`R@DhxNul^k~U8@PSY=SyJP#-O>HlT)G_Cj4~YZ&df?_Xxtjc{p{)-- zpSR4Aje0JD-$YTr)#wN*TYpaxldIUsZX^wHX|yt@a2iRZA%*w zzOXYSR(<`&B1#jELa*&t5dyXI;{#z6k4G9s>ZkiU#{TWdsu{uF2$^vM_@`6P2(#fp zw^<1{V#9-iM_KjZ0xY|%B#iGhseAuo*yBgA)ry~+GmKg7YKnM8qAZH8DAWP|SnT*4 zy&qHumyC9>6BydyoM z17i>KxROv2-A-IwrVFOq$ffs$XbHG^Wg)LKyzov%Xq(U_2bZlX>de}5@)nygIvnn)VQ9V>oExIBItC!LF zOZ8k5NV5$bb5{%EOZLn7_tk;8pxkh6^|j-|C`1M$RoR;DxH}nPLRH{JBteBKec^3r zK9DMg>dl4-RmfN|wMr&(6q%qnE3>C0b#2+A@5;=GKQ)Xubr@g3(VDggqU9NbWMx~m zqa&&Lu48opLYeu2m{Gc1!S@@RU#fv|74r_9p>jn5npm%`2486AdeWu!q&M5uZ#iEo z#>kdpu}zn6W-`y6;pG^WL=fiHCaida5zhwr7($r|CNYK7NZ# zg@z4UVb~3uAQ@M?DnZC&%ezdY@t5Ix%x}jLjbP9tUW<7$;!{x}I`q9NG151aaI|&l zgxS3fg7OmHA0>xQRVQ}o6{pKW_R#`dv^t^B4F2C%bFbZO37sg?038ib}lS zMU9_J7kJXCY^>r)ZwU(AtsnK{_b$G#1Y9yySc%n`&e$g)lFTDJ!u1`hDWE}9%t^=5 zrQT!Aw0YzgiG)|2IAp46vQ`ND8*N|tk-q8<8ri&3B;Bq~k|ZZyqo3a*_<{6#u>V2T z{kq3i4fwGh=WptGA_BVBNx$o4j|I6EF=H9fR2sb7pp`XF&EL|%>F;1x4CH=2rs_7b zs}|g$@FyL|i>sp9<%su0#m+}*-$9I?_rHzO_o1lW5L_i>se)iKxy5P7HsKy8yJzUs z&EM4X5?G#mI7&(%WUG3R*@-nGKkQ?dcw@biy{P`1nVkH_Z7A9LIo?zx@;jyaI!(M- z*RJL$et~c8w==mZV~ZfnWL^j9ArodVh_=i7t|4bTiW^%;dv>qD`RE*ZU9nL5{cmJ~ z`(FoycQ`hwsium8!+7wmSfF`TUubttdLtw6*xZM%rKjaA!<~*(&P&u57xY?o&{++F z5Vrqi|OX-bC z7`$T4?HyjEJzIr+hI)o1e@*sh&*s=~pt1OPDfK)f`D9o;NAiH>`GZTWF5vb9T+AO# zrAp(6-7crgY`vRym|p75Au)1?GVv*V0v-hS5L04e3C#5n4!i(s*Yp6RPf< zdtu4Rc1~j;2Zycd?QWdnhgQ70xvCQ8=DB0!ec!&W5s-d#Y<+iYR*3fluhg%m+DC4q z#+mv|lJZsGA%xZ%GG*Ea9?GHR_jG^Wm|9i*@gv0Hz?r7^X3S8-d=YTXtH1{pfFmAh z>%Bmo$Hf#5g0R2I#)Jj0qZgH-n}(Kh98lhyi5}ba(yCZ*2J4@l@0=}+i z=^j(@DhV5gP*ShWMf#_1^hC=DEqCt^Jzh^qOCity<+}6r|KYkVV{dOY_gzF&OhlO{ z;UMg(5Wphc7K%Zxa%)Y77ouW{o(FA`w+{&L(wPq$;bZpBNF0viUf)Ee&%oK;%%jf^NVP;*v4 z%@NFVBCa2s_Jf2M~H{oVoq<<7_)xFV?A)D<9 z#^$fxhtzGdTA6~%mSXEugk`LOOc#VS7Cmb=Cl+m=(!qffR%6u%Rvlq)vAb*fP!D&x zV|K($KwsAA&9DDxBAfi8+uvUD<`w0F)aDt~%dz5B)g2_t>B*nmreF68glhmd9>kE6qD9I( z<|zY5mE2hgn{c0Z%+|vlw$rTivPP(hMa*E$8M3BK{E448KA2sk8)cFUP3LLgwI^q% z<$&GwsrMpaqK%1vS*hBx(QN)Wdr5g#@3<%$NiY|eaZHA6ghxGTSR_U-m9W8MJ0Czo zjD;-&hpL^O!#ct9)-?=PVn`Ls-JA_HxrAYE0<=8N8$v2;02L~rPT71ttzKLin>CXP zfy43fjm~CR?m(r_imA&s#kq|$`t~e-O|jU!8h>xnDyqL!u~%7&9TtDBzSn2!9O>yd zuFpL1W@4pYclpy`iOm;+j}YO>U1HV65j^&`hAa8?VpCkoERuE)P-9mKF@nd>S4sbetdOmn90dI+KYBAYq z+EK)FTG^V452emlWUfa0&W2&yZS(KX>p{0`e_Sz4COgluN+;JKKF;|KG*fq+y@W_+ z+yo-j=>Gm7xK)eOvJ#-4GPZ?l3q1w2*C=?Ll8Bp@x*yGkFf;2*$tV0u?~6}?1@Fll zZaa8YRuv9MqfmUm4Z7x-yDRW;4f`{z>Wk7;B)zs4+6AtA1THn=*<1{2on@bU#sp3) zo2i=UT2dDJ?adga?dO7Fw2;7xZVtjYAU* zqHyG_T%QOY0t=LbNU%F1zt`dZHQmGvkX=){aIHPb|6Jc{LRfW zrbmET(42XQcvLCMa7Xc%3jQfkykR!peOcduuEBdACi+!1$b8_aMgiGOJ@kQ`>Jj68hUUa`P zr)${}+JL0+EEFFrXE^ZD#`Q(l#oL}5nn(16)>a4-9z6&x!Q7Ry>ts_bV>S~%7+U*{ zfIR8)BKj%GZoId%d8=-(L|0Cq##$t5FNK76^~*6_V^XJ(mU;`wY`^_Q;VcoomhoOAqoeDg0E|?f`{86D6tum`F z6XceR!Gl$+F!t-1pDdZ#t7qc6Io!XIhq(9Itdlg7_~TaBTO{BgYCa_L`;*S}~ef zqJum@I;Ossul#cXtxw+?0G$H@I{&))FF328k$NXGP=0PghK*G+3=cDyy1aQm~q{ig}AI_;o%!}UQ^n}OVYrlAI^vAitMet zq$s^Wp4}v!?#n)ttpx-V2G6SAtz{(&w(sAzTP1GjhF`%WwCIs29T{6M5S~8K+ zepm{$?^b*7b1?#s89X5@$FXXgJk@LAedvy-47@H&IEzK5_zL4r$y+N+*B?pg6CsbS zR%lMC;&zFi+ljXaxE>wWgb#%nbtw4GZbV-;*24yoj^smFQ2YrosGFCIk`|`3HI30} zDE>-S#WW}FF&)vMNfy{;%CTSNLMYDjd`T`lr9Nc-`pm8^-Lj-SgL%l_!c22ZX18Ni zws~$>A9ah&56%xrTUu*z-1=G&h@OjJ*4O;_iRBInYT1&k#)(Y-xnJ*DVhTfm!)V-P zyKpGDGdlOELX^jxS zPRH$1I^iR&78WJWUdywFyVvSrWrOZ=yLbLP-#&?8?=dqS7PS9BwhDT=6VrUO^vSB8 z8Ek-?RQ?%6T~eu5N$~ELq;2`5YF|Digr<%|v5h6%*yn<8^B!dRaitd`TX;gDaN9!WCww=nS$e1E1^TjJ)yr*9GxIwEZ1DP0 zuKpum@W8!e`FZKMP}g({baWz4Bj)p%^6MC^C!$t6Ur*zQ?}V<5m&5RRpE29W?MF!nD zTr(R(HwAJ?Qu}1$Ci(K|{b9Bt=2glcLlP4*M z{139HArDRTZ#m;$f#Mon*?`;G%*xY!2jd(-E4rV@#c^HTe!Y%O(-b&;wH=kw~?rp$hDErFKAoTbs z?>(87!|1|xOoqs(2^xRI4f7btnN%*~NV&vHu4~cTN&Jl&zKhMP4SzMt zzJU53_J>d!aMyb^DgO%PXFl?XC|=ku_R6~@TRZ-F6gPXfGkKUFl%C^;5lMW??MIo8 zV?~p=N$z$+eNQzq1mtdbb|eY7QIvIELUfh&2vbAUA+{dN1UgZFP~j`{b4HGMaU``w zS6h#FwWB(BK<_hmq=ZK*Lkb#@s@iN%95cNAdGw$xRL%Su<3Nbjt=Ku@N{`#$j5b}1 z!GA2(;-3Gj1*q0N>pKY8iq%5oK*d;+;kHsCnC-1a^J04uB>u=btE7eD2g3jO{BK_( zHw#nsYi^C$Fko&LmxK?XR(|(KzC{wa>wc#JLcQ6RQ zS-oy93EQM17^$}g`55C=#m0$*R7&*`rPr|MVbAGo*$eK5qRw!@i$C;%1N%b>rR^U+ zBJh@tQfQ^t+Pzcj2=Rhq#oBgPp>~K}P>=$a^Y;?z}1ew$@C=ys_4B994k4pL6)Ca6LH((=IS(_ue(`UgumOO)hf;D-D%GU zG7VEE`}(o%8MHS_pxq4dcSyzG;EuR&eVgm%l6<3Uz|$)iS1eeaVitEMi4!V&xz%aU&p|^ zMruuy7I*CrMFc)L974HH*Ru+@=o}w^_Gv;80t<0*&SgAw!TsgD#dr|`18M-5-?1xm zUT~*f2v0tLX+E7%F&G6amKUh|D5wu*MtTMMG&nIsZbU1xEHjtT(eYFs?SCzX`Qmw5-;5uE^YcYI6;qU;bxC;))Z9l1CF zOJfo*Ab!YaaT7d^;IW)c!4V1qfHG1sS~>$DFkHU*cmwXgVYI9AF2NkQfX|vqZvkl( z6vB8vMv=?^K=D$7?@4Wt)xIr(a=#WNe+mgQ>!yVJ$E6AI&8msvA|y$ruLKZ3@cOA7 z&j2)rMNg~&))9;N?g`BIjMZ?C>fvw|QJbO)^nlNToze;-h)=i%TGh5V70W+N00-gl z5lgd_J+oDS`B#MUX|mhgQxeArUql50|^xsfU>)Gl`G7xpQit00So5MJMP=v zr_Z8x%$=v9Ra&Jor+u5+sQv(*qMcklH{`eN-jXUZ4{zF+^Nu5&AhCk6oI7PQN>c+Q zaamHfgYYigg~4xXe>=MALt-dB-F-;LgwT?=NDVBF0`N9mLNM zml48a5&4f);zI+2U&b!8?8fgOws8*>T`9})g|N`+ifB;CI7j!ejU?`z+)1h;{+{@ z>8ShyZKX8(>n5-n{fV#BqFMI-D93$^Ra3S2c|cjm|1qM~;e=pn+|Ozy>2GfqR8M?$k64vVE0^IOJ!RsTI*S)j^?SW6B9JLJM&QzLS+2C(*LJw zlrt#;U?NBL2e~~QpXFPesFQ-$%C3lfMor}3=$W+)avbf6x^E9FK_>!61SV=}Mxy2r zK*tHKN%YxTe5nT|MAajg;E)*59`BQ{^e+d)s+TZWy=8MgfP$YZcSbVNehi1WdzGo> zgRt_MRsqK@oK4*Kvl<8>$7$}ily&&jyV^0yS;8WNOdt0{Oc5UbhZp$Ic6w+W7S_8p zhP_*nj`~2(a_@WKN^%JEW(iH(-j{siz#po_)>gT#$_MH$GHX5^+6PFB1Lr?sb-^Wd z+B%}{pXlnl$T~9e8nk|{T{6v_c}DtGPUqL*KbI)Ygs=eBmFK8+nreTJewRZ=Vo+lG zC(#dY&95xhA&O*`Y{A>VB7}gv2cJ+_79+-q(RMSZauX%_v}T?EnZGMEHI_^C=Z|Ql zKqA>+W+%?klzQI8rUv$nyPJxmdvFZ6>G-7jALRl8fmEt`n8%)I3p?Mq|m7MUXR_0WT1ph`lY*u{tuh+;~_B#72S%kZ&jLdkBe{N_IN z-lJr>6AOX~yNEE4D|cjF^BNrSdt-k^(w~ZHG7VMicqfFIZ{WN>f9-gc*DNR?WNy~r zT}E00_NRjnP`C+BM`nO-+9$gIdX-lv-Seq&0TbS1uW#(NI8u^sJP;bf&9#qZCDk#V z(ZSB;=-)J`PJLOvFg1#dU3guxzr_NJMU{<)^B&oXj_jXO zVz<7D$4ejpZj?)9Fl@z8bg;p5nKxq78y2w2U(dxZgdQH#N2kfR!!Cw8FAw*wKMbZm z0xpE%5pp%FzZQew=73pA>iP*;g}(cz4eYr?9-D=Xn|^8a$?H3bXMIL?8&(_&9VQ~1{@0sxcn^@|o5{U&3F?l%|d*q-{gi{}FE zmZdW{)zi$omHCYr)W*ze%*J^4=JK#lou|(lj$6I07V$!wMZ@rcXQXG)X;t`1vPSsW93MIms2m7rogf8Yg;jtio< zMRm}!dd{b=0+i1dyIR@1*cWLNCRco{Df4)U@Hlip1Zs?9`6^TROnSXYVot-#{X%+m zEVw{|?vDqCBJl6SJbq;|<6}#n$xGql4CrKGf2#gpEWj8XfU)SeHP{7FD8$6)+MOTD z^7@tkrdljh9o9!+KjLkW?S*MVhN?sfsIQ2IOigSjG?DiGYmnoQZ=~L)x(EOrJX$PB zJIccuW@tOpHvpgjmvCAXjpKzoN%HttwXR7!(#9S|P^AJU%D2Ej=z+1IJ=+=tec;x{ ztN2&7xPZQ&hLcVXi9=TZz66K~hp$a-&l z=|N*Be{!!)(~FG4jGKSlVJUbalXGMP08lE-O{Z`udJj}l1hvb+B9o-}L+0;PoV>Lt zl1~RxuuR%UZ^q3Oi-*t%0^K7h0-N`m&KRfD?BV}Mw7Oira}Xd+a7@DtU-M@NYIbS@ z`cA>9*rY&Bmc1+ZXV-z#97|YzLsx^+HhgJ0m1B%<3ns|c|pNSbH*8NwlrqofKEF{w@Tb}Er*->P>RQtt;q+vn~z@( zpV4h#;@?^nW2+v1#XD{``2CKxU9ry7B$77?r)xN;9WbcFm*e2}U( zS{6X(Y~9lDP}<$y_5JNMwTT9_PAd*UzDaS}FZAc0I*H003VJojq23Cjs>4 zVYt=mO{j1(O9E9{Z zLZJ2P+7tC=uZqf#7{G_`57?0EULFYHPcKo5OldB>oT%{}WZZ4fW=d&ogD*dq*rv#b z11!jB2b4&8oyP9@vc&}N)=jE|JXg33gBC3>ZCM!1C3BltgdG6@K4#&>@h1hl!}|&; zvJpPEo=d7i@LS^kxUhRo1e*BuFv~#u#OIyQtA1GDkot8G6yO$OoM=i&x<(qr!yDph|D%>7E4|?Sz>6E zoTA}cjP>`*@8?0eq>r&Cv5JhaO93O2>y1i}3=*e}4YKOY>ki{RNb#3B!a^EZgqz$5 zB6w^(fWUsFFR2gyh=GcX^wPh(gL0UGHRgrZe9X*)IdCfSjf4hBr=`=Sq}hgIqX3jr z0DwaPo)Q2Eb9q(gH8ZyGpY_gLS4mtO7rv@46A=_=TnP%=z?W)fy$FR#d2C7LTNgjdYvOp}HfX#!vF9_m1^ zZG`djHTq}uRXA}^kRJyP&E0k&wo-+8!AkxQc^-L+Qad?RIc~hGLo3UNjo~lOZ6M9r zt-tfTS;SAcQ9XuIH#9fd%D0DZe15MNtxFDW%PM{?9P{TNK3w&L@29NZ4VzRMwFWHd z7|iNLt>`vXHyX99p?H+MmDF-B;!Fz{{W{?CZy3_R26Up)I*bHEw_d$YW)y5K)_BTf z6~>}LJ%074G`|Sz-6a>bILgOYK)*>3(wMr${GZGAOW=uhG@<7KuQo@ujhwI&6qS?; z?;ai7ycQi&ESiJ{p37>=k6VqLj^>B2oNrazPwJazOMQQlmO)v!Lv^@2FA)Q^QpvDP zPwk2;+e$Zl0D!=znrjiLtX2>T!ygv4F=6&&-w(GMrG%jbIbzDN3?->ntKn7mmt%H~ zoW2+|l+G0BX`Hw=&NX`QG2{HZH$x6W3RG1;oEAH$Q>}wv8BT`>u#)EjVJk{1FU`HZbMaOZN2M9iZ`O+PL7@bGm8O#YLOCEa zOQ89X!Pf1rqcUkK6y}q8Z(BtxL7|O)1{Z)0z}?Qib7eCjuhVer|9eLfd>+)Jd{xmt zK$gkh#Vh}p154%$_YM7Fsg!BX>|4M>^VGr#Yb!PEy@E|ZJWmsqzTPd9pkwyrZkCT_ zbc+S*5f?5Q9Nk3f2L1U6nRE6O3m`UBxBBNwA(N-FhE@~iW zytLaPcMwP8c1O6!`IdqDS>Aj3cCw}Oyb?tox7sVG$ijbDqT~@Jh5*3XlE8g^tO`=U z|06#jir4(8mQvUy@a|d4DzhKYS}6p_u)R#>EmBTRf5v$rT}XquVD9E(bfCVTfj~ik zP7FfbjRa`5=|!67yHVeNz~(wek+ECdorn-ulz=>d1EMZ;y|k z56O;~yy7+2(vO;LaabFAcN5-&^HCW%aI)6!PuhmDkbgO)Pjy*ON6CMq-cR_mFT4L5 z0Ei}3x)=D!$$fEp-n$~_%^P}KghHrSxcsx$g+%=6RxB5ZL?HT=wUceWjIY}C3r!vl zrgR_*;NX*Aj$l`?D(>0S+nNt%tCd{Z5?ML#*y1k8^(9h6Gzd0u^sjld-uvRh+b)T) zqg!CtQXYomuBhgFjChC-Nxb0Cohdy<`xGYW1c+b6e7Rh&l1Jb^# zfBGX7YvukC-4x!|@u~zFbg0b&jFY ze+1=91$Qi>4HJ*bKOD+P$7SA289jbR{Yh_Or4H zc#)K2ee1RM33&a}7EW=Qa|8guGkqcOvjxrtBoR9@MwC&B(YHOufo)E-%u90IBQ4NQ z6wvi7&mdqp9FIP>-@HvM)l}W!;!UR;xbKqoM#;lhf3ON~&+di{5BP>yO_|h!a_6(g z8nB;TSq7y|vX?01&D`R&Bs%ZmB7Q}mz8Mak8zT4HY-0fQlN5Z0{XOE$SR(AUP}0fk z@X$rRHF~GH%Hf7G3Xg9kV7Y8#pSVbY@-HLh<^pAH0S#61LH#5FMusxy@QARtOmqOi z$3KPq11{P4O%pEu=_RZYH8m(#qAN)>XO>gi=>aH;m|r1PVdgl-#6+mc4>28UvULEn z=(ws5*>e~P=+yE4P+PAFDy)27K(q8l-P6}!ZrJs$h=7>l^XE~Kg86{zYLZ_}Ky-eE z0+N7e=fZX#Bm8hgK;YU8fH(Uwb1*cPU9Dcd+`_j+InlnopqS%bU9Vw&c(+Oum#_h| zCP-dhzT)r7{s^9WE@!{^9$YpaF^nh(sctV^OzU5P>vTYKu7b>F(Fsc~YCkbO6@(oM z`JI)k1vo$q9SVN*c4?)Bt9e-^Q~-Vd0)oQ-EK#Q{l<%)S|6p1d`J6}WxGn2l13v72 z)^d5VN$jE64bJhst`u@)cPW+l0%Fi8&l&x1J)GDeH#w( z46^Ynu)e11q_IMth2$Coo|rJ+U|NLHsW!#L9UXTDcW1bjsQFu2YQqa(funbZ2FhRE zxxaHyTkuUUnyEw5qIp=CqV*iiYva?jbpI(uak9z;e9;}1S&HVHvSeH;9+Y;m9yzhs znxPf_z`ROZLqQskeg6aS9E2h8?L7`_Y)kFJDqV&oLIbao*>Gg(DA$OYPv zb!E4DS=BLF_1wo^L^j3l0DX2>z$D!3NT7R@D6LnH2-pqx7^w2y(zB zI=u~9H6AsbUj+=8g}u>Gbl5s>I>`c2UtGvq#dgny+TOZ+I^OoU{oATuAluJ(IscyS z0RE%(amV@&XOG zkrgyU{e9u#FT1oDzup?OOo&4@Rm;sA3m#S%FiK;PV6=nqtjnST|MPJK-3}|7q%#jk zia-53x(D~$27ht!Oyy>fPr#E#r4jJ6NPqHVG0D`MySl(V119}(25ThkK6?ZZXKPc% zm6dY!Z|_{F#%#|x>vXUyfnQrX6lL?Xrl%h^0K->9JoNIPhHJ{_FMVH6g9stImlrfj z#m{@A?k>Qw#9#zy6no*ofS}nob^&^;a?b}<|7#gT7CL#ZelwHw$;o)KfhSM>B>Hn# zg0b7nR9IWGV7Qg{XAmys(fe5emAm_x407JcvQn#CXED40dSb+htf35 zL|7=rX2!+|$7UIuA2)H57?&QOuL;diY5ZLa9{tBi{Gjd@paeSkgkKaCflWu-&dr^ z8XLcz{NW+AF@I&sxxV=O*M|_>l$34`j(+t0C>$|>tljHi4qbRS5J;Gruca7~2b(TA zrb|Cp52GEg7st=@)!-b2xsuEj3($-$5Cs37CZr%M3)oS0b~-sJ7h~pC-RSeI0|bVs z5{9AgH(4BRbC%m&*Nzj(%1T#gt*j2Vv;<;yb12NS1_L^6y*z*PZ`%gs80Zr~mJWoe z_^mXOu1ia21S*HryGfGcva{$R>D4+r(Kh*NVVtarYlkfFxZK?j7D2p}`29DN2Ycb- zO4FJN1zFeN5uMhCaEm627%eJ)IRSP9?Wbq3{W6jnpc|A7tYpRtzdCb#-3YpU790_b zCNj|%^ZgMniDu>}qB6wgY;bykTOOaCWzlh~2P8S#=6oNM93CE6EnN{N>NJ0?70rr+ zb9*VkI{f4*A}+`jOs!4O@8#+$C7WMkh_dsmvZ|VnRlk74L`Z zj>QRL%m-V;75n2F10YJu(wBDivTA?v%1`QLyUDz78^KF`(sQ;j(V@n3hk3Z;N&tcJ zbc0kP#be`>nuPx^8O^Ru3t8o9E$siQcS4)L(RFxWL(|dz=J1w@es{Sd@|r8EfC{jXDy**_6xBs+Xbl$Z^yoBg`EB z`ttKrq@0HExK}OH-Ce=1db&ym$$D|A+HY@?709xuzzCHH$NBm|j|tHLq>CDcHh;3- zdzwE!Ugxo>mHlyU|G7Klwi^|tpjP3Vbo4aFzYg2mkS=3a*Mi-qx>|hN0%B<|Sdqx` zlXKb-&9SCZ+jN<=_C6AJ9304HYRVt)bHmpSI9OM=$aLq-42BTyw@pcD)J5kS0j;s| z!?D=!Kg~)091l6I$-RgbYObvU1#;xnPdAJ?DW`QSdKY+WRuHw6$$L>$|U(PXB%p zlPE@&l(K2=sOopF?ig=>WO&>_(5xEBkI!Qq?(1e5)=vg1Z-eG^SzM+^wqP4Z%=2%$ z5=%63VM(P{D~n=(bOw2aAu$xH-safuSmX!QwZROkWlvi{@qvs7{OPd2W z@^n6Jg2mJe^yc>1-s$Teh1c3u4-TO;sLd-eX}8jXl`wR4AFRdw60ZsDTchk3NGOQp zRQ_?bCc1R~u@KbKGzhaFQBenN_e0S8sBtlk`}>qHs`GU8$Ratdr=@TMI4&;`t^0t7NRgVwnD8Vq>^5!m5ty; z9QF>s8QPz?C9u4nVp%&oHnz3#6WK!_s0^%NB?1EF69=CU}Tx(D7jVQ%aW_EM}sp-!iqjyStxm6Q!4r6sa;W_!B}c&4i6T;?xdGw{&w2VPms|EUlSV=V>ZWOIH-0o^Mae zCD3{MWE>;k$vU?fpqbFgo043G!$cTs)Ry-PJ%nJIpqY(^ZopZlovwxqXX@rU3i^Sqs=^!>fj7!GCH;TaM3D0qG{9{JMJQUfEq zDkEaG8BF*Bn}o`gTOsI^T?M078DYJH7awjl)lei{clKsrnGd_axSB+)R6t|E~<<_ zW^p7{X(o?xsHQWO5#4}oG=m&Q>S#f0EzLu224C^~_@<2lB!{L_m0-LUHdL{k0Vs6N zwfRBzt=P*yyI%JS=7@eq2i~>_?{4LZrCGOE{o{h&dw&<%=4ZpjwB{4n%W1#{Ih<*2 zidcrl+H32!t4DReZbg{}bhtaKot)S1k83CY8L@0+jAohk4Y(i7xk_zl_l{?-$u7LP zs=3@#NVX`jQOGVcY7=-qDtp@P8-<>0r-#uUZj8T11tLAm5Y4#*$=rmogAYBpiXaVOv~cs+W{|F z9f-#*;o;&RLTZ=Jw2hd`fG=0-#vr~?VD^43>Gn!%liJugWLYl>7jNL^N`1VhZql6H z+nP-GrJYcE%3iCq;1Ig?2wtoo9L4gxE{yzuHGC@$aNdoZU%yZD2$-Zx(FQ^ae&1T2jEvGVMou zL;N(pEQMOqj8Qs+dCS^e*P|QgaGbd1{CpYX2X=3~WK0_KYKg^_AXq zN7&aF<2^6)^!xS)c<}&7Qx;O0c)E0!#1!_)*LJS70v{iHK8?!CZ?z@=A_db5njK~0 zbqQ)%$P>}dT~8XEVsb?Jt14lDx@aH9DU)7kWbj*8xxGnky3XB;$;a?|i|ge<7-?TU z*#>p<(btJXl^EmpR8C&QetF4U{p8f9J&rzF7DJgwD_3mzcj*h*iU3qeY*L%ZNhqFn%IY~f^fEP%?F&%1p`&V|hiP!eqJ*+7n z2;(;fvZA8BQP}Utr=`dbAXNGJl=ObfT9K`U%K7%EA(F?^Xl*D;`TDxgD;V<6WYaof zB5%T~_IovSJp1=z`7gRC@Z%`?EJxj;X8!^OrgZ|UvfawcL2X*WF=VjdA6VjtpO^gi zKm!BT^Hu)*(1iWIHUHD6rOs4k22`^}j`aO~t%RA%s$2FB&39b;*LjTYqhW2I@c={hyst(5<_YI#ylm|8g}hd^ ztL*K?v9Z<(nzzV@_t)pXMYsE3VOzWJwOuUBw%rK}`HtAg_E8~cbiuwJx|{O2X83Yz zXVFwAf@5aCww9h4!I!m%Luox-;{2+vK>))T#-S8N9~i{Fbqc;<(z%69oL%or&1)!Y zfUt}VPII#PDl3P*v6PEi+T(bXy=EJDl>2om`BgjCpRN>}^()WT*+Y%h=!RV?=FKuS z6z+{$Riof@C3D8*aSuQY=TybgCMpcDG0pw$g`FczV4@&3J02yRgv_2*W*6!v7)Rf- za3>&&+iOTn&dwe|*ZHquNWjT}?R~B$FuB+&;%)Is7NyLRedS zXw6U*vrH!c@o~QldT-&AqFe-XAvm9}we5>n-FhE-v`_m!CNK<+nSbX|&QM9B`(0{l zWRz$)P8VWeU}Df9`gIg6I!rJYvpGSAxkGL2wDxni#@WrHQtQdy(#UAOM>UC#RbKO6 z)QoG=H-}E%`P{#P1+u6#=gJ&;bnUghH8phI%%bHB=ij>=Cv8~z zl93qU=b;_9ouGQX7lstn+EGP>ga+^HRnk}O=gxMz)EA6GGJMOwwt1bC54|Uin-Q6x z)*J+bx#Zig-y0;4wg|gHYPK5hp4`A9C2Qc(OYX;~A zW55G|hVJkQaw!W`xoM0umOCV@Ti+hn2DDGO^-CEow zXt5twin~)>iaVt^v{;H4clY+a|C#ssmYHPkKf)auGnQl}ocuGR^;Dk}8PQ5oQbCHcA& zAq6`+N!OlX&eM9I3cY*{#Kb<2g$>pFdbeIS=KV71{uv%3Gm{K<6qk$p)jw@ky?RPA zNutt9Y7qQPtyQU*eBztQMKiGB(qmfb;O_5#_CSNPWzqb@+v`A2Z++;ZO7Ev9$L`JL zF2BN0@!eRzf3N@ck6(WH_LJx9!S(V`iNT*)J7^c(=kfQi~n(|ghx=zsjq zuH4fHo-hRmiqGc*QGV&80|h6K^HxlzMwIr{dO9i^)kwqc9#`zp(!*glyWAe-;K%=X zvN+mv4~AXF)5OcHIqIBV?Zg%W_ZNHmSMl16+cdMoDH%F_Adq4KYQ@~c?zOgdIC*2w zQ=z-Jt*UK6u-d})@Y4Ok-{)Trzi1QfDcLi1k56C5YL*wbdDlK)O-=m56`=O7HFZp( zd6+mnV)(b!wNP6kJRDaN71iL(w)XGuWAI(@bmeTRmY=_tvGM6SNTuv?!PT~X2k^E0 z&U&*atX9g6O>4cpUn+X{_!S(VD#(VyY$TsQzDf9XZ?wAdl0kxN6NAU=tS~B*KzhG> zS0}S{7t^@ryT?IiK*gOzz4PPtx1f)fJ$^cQ6WqV3Uz?QwU5xw2^F`k@=$nPIT6%2Z zkt(YJ@d8^)>FFF7AH}DYv9ZkoLdS&#O@o7MrAP?N=*EKSR&?!wr)Tr*Rz`QgQd@iF zix={=TE=Vl7h?yjf!5UTW$XXV<;BWvtzSE8*N#PM_@5W{HslUAe}1hL=blSrUBLBu zq7Q|RZXckFlJ~TZKq<3S?d}e#(d}?uvzRMxZCzejSzR)i-{%4xBYa&yt>b>fdEO%6Su_kg%U7(W+x|IZJj!F zzdk+%Dy}^VP7Z~f^uq7@(aA}Jp7r4Q{8~tiw`k_+XGEoMA1et08u9Mi(1&3!?B}2M zMD#VyXV6zTWGw^~5NRpi|M(8i2>&H{iwcuK6{?rwc4QUGmD%Ct)xW@S++C1@zExGr zr-yKUUC?-R4r? zT6^D3gaAQ&l5%XPE^b#zT5?1a6gfDQ7;{((np+n{EWZumB46S3!T-diA(Dh&;cT<9 z^-fXOz9xcKLbnr&V4u^07f4V2877s!{nPyeQkOcuaz?$7-E(DmnxsPz2R@j=la<2V z3(uD;DsEb3aKes*YWvSv>ggpHFeB`eQ&ZCs{Hkj8V0{oVqQ4~u>|kQ{9|S=vJ0k}S z_M6T3gF|1PSAOq|&jy%oh`Sq?4?z&?9+ncjISCS3212bdhk{togU(yZf5sdBuJpXE z`sK=7@c0jTo~0V{Z$0ndAFbyt_5I3Z+EjLslkU`_8oD_m3;_U=cXjvze7{HfiT z!(^x+n-CD2Rt9}=(#OZ62T|Mc+}DUha@9}w08fy^VX=k3W&?U0_>-I+yI)HH=v*8h zz_KY~DPjo)X%uN_G7)h)WnmQD-ED0bxokbu5MlXN=@6sk@GbMgIA$(r8IC?9)|JiR z^I4dRCX(a?)2 z{AmxtF^42i0?mO2x&OYtB+>)NN*=Il$oy#V3RDS`8oqGw)|)_R*H-xUiP7Oeod1-a zcC86N$AQ}ePTxp^R0EuwWxi3j(Z%MW9^G0K6#q z>?CN*LwFi;UStZ!>O@0SdEdR*To0CqLqSAv&Ru;F0-TYZxr@8o-$JqSP9G$z@nJZw zAPO8y|Lmo}PPTNCCou}s)l6=Ae{`eEs;%>Lw&kM@1hMy_!Yu(%WKLPQsAeycKn&pI z55xFVW3ZOx=J-(z2!c<#AEi4k6X;yHvx4Eo$scT}K4DJEj8+R6F&E1iEqW^!=q z*EzGq_G+!W&!!iF(b8^`!I?41zzq{k+myMjUP&gk#WDulb*WGgkOlZ%=&GxCdxK%_JH=6#+;otxMHBZBv@ z%7W4my>F%0BT;GIzII>9HV`I>+$~8+;VZol+H6USK5X>eY>yODHiT74hKvj{y=`&E zkK!Hx75sVZnG=6Q5d36cvk;z<#iy(3AOi$F6ofy8CwVWk*dlnLRhHI#LiKj)EK zF@BEs1c0fy^GUp?QZvWNM~8|iKH z1poXM$S@y4@G$I?ZOG-mlAN3j&Om0@H~n%5@KOw$J`*R#7@kJQ1rog8v5IJf3Ee_V zicfWyd4Q&WK+x|^zAegYH(*xNq8)(~mv|`I;N?L(3Au%s^kD4Rj#DF<^B`iqK>bu&xjpRx_?t1!76E|2Ut+gTv`!(wWA z?*WsNy;Z-vwM<6ixZ3;n?ww*caf>mLCU>L<9RzBh$%%j}G;qB}zAA)%d>=oh$}`-! z1;|lEQWzK~Z2!ETS{4fWXj2lE(9b-TtA8q8Non5zY^R%y@ZhA{adw3UM>XGJlpz!cZhg4ECkD3L0e=(F>O2{ z@t2)Og+oQ9g|}X1(*2F|fv~&|5RYB~)x$iKym9V2wOVkMDJ4;$qjs%Vt1Bk<&ECGz zUI8fIYN10doIN^4LFIWR9?Cx|A(UE!lm{OaZiQ1Roczk zF%87Ah13JC=?uY6cR?-&!^qbDmdmcdz^fK``T33WZ?FB88cp5izg0io)pc-?^Mkmb zs-eZ)u=>Wvh717$Ye=DLl+737^Y^u%+W?Dv){F)7My?hjhd?aO6rb?>Woo>! zII|?O&Q;33_=RUK?-)7Tk}96fr8A^No~#pmv!bzjPmV? zjGIY}sbt^WgI@R&I0ynQp!@QawH{NAc#Kdd%2@D&N9AyR|NYS)N^ZUr3El{HoL}i< zLq%W7+-DqS82LLrg>Ay6k2ecFXw8vO5*d&cQgkG8EedCupXG`H!jvdR z;lM%^#-m$kx8$|W&lk`$+g!aee{%A}&v=v<77LwABsKNi;}`h_g&`u9{(qw z{U$p~_UtX?)Ksn<-Alv!#GS-`h5#m~EJWYcoeVjZ3@Z!1##nf5z2c_Eav5Oa`*Ws`-4r2uI~W6`ulQoGcTGe{Q_qJLmu;>$jwAE*^sN1(#`L?t8ZDOlL%QsHZ?nfM!>S8j=t*U6#ynj;2;8N`&G#O_=T$;rO0jxHw|ZO)X$|L^YG>Lxn`%`>BI%$E$4|B4uS$uddIifIPtp1ize?XTaQlodrV^;(T!mhu? z$-~=<7tLMTE#|`!soE_gg?gWb`GfRX06PQ^9#o#|-P|wjkhKCzF4YJ;7_w zX9LO8vaNWpz@DOH1!L*x>SFijWe$UV*&&T#)M=sss&Ehev=1e?oFr;f{<&YC4Jcbr z&AQd(>GC=AXX!~Ub7Ur?tmG_iNwtBAWyRipn=8dd~!_`qIDsFCajQ3fs!+;Lj%x7XHHQ!(_wgA*=KS*+^lC_9$U?CLadB`%-%(UD+>#rUOw z;^6MeD+2ggX10MLGlH?f*l2=b7r!&6R@QvdvK5Ahx*!9R?vDe{2IMh#>W*84qZUup z?Xdunj=GF~#sqc#N0Ca+g>mY^s4^Q6{I|Tyh5q*$(3VF=;}kGtQ-4LFTG2gXm8R@) z7BO4{b>e@`<^zZYVo$dX!_tu2rlkko%8@(dH+_&&7>W@}A*YO&KAt)9i!;Uidt(7{ z!Xs2UcoJ7BP57rpXp95mwU;1_=|x(yDm*IU6t=De+5$$WTR zUi-p3)95jk#TYw$jou*!|8a-FBQ^-MMrNMe73`Kjn5Bns1!iG7$1^C{?Jn`HU9dV_!# zMh7&PaH&9&2X>agklqA8%#9`n1EUg-(gf!otBJZON)Vt_R!h)pAsEiTx2!w+Z2`bo zWAD2fz>5Ek-5)D`^SU~ z;RMr+fG9Xx1VL~VxKk7d1%jbR#^r>4LQ3!tHZ0ByfFx^_2Nx%x=f3bBWE!IyU_$@I ziSsLf0i1?~iUXhihCh`>mzTuI&Vgx!#*zRmW>P5KB}<)Vd66o1 zlT+1N-qW2{;2)Y*w|(J!HYTtF@|8X)fKj>*_7z1YTpGTZAx0Q%e|6> zqWD0R+47IYaSOyu~v(b;)bi1^sy#&aQzmmB#n7(L0oJzngIU9TFIWoSA1HyCQd_j<2?Q`|Teb z_7^dS4bs7@fmVJ4`=dBC_-62RKv#9np{0x74eH^v}&&L0khCr)BD`#;ryba8clac@@J9L?x zjk5K(s7!_HXfv&fzllJx^rOcJqWWW{s0cso;#(C#6V)MZ_sEuQRT?nM(g~Y7n|uch zpS(OJ)WvWk8zKGM3;0>IoLNy)7Ai&PCoa0ENK|#6?>5pm2}qaAE06PXyse*s3^LXs zd~Wz4`QCC~Bza3sVxYk0ycr{UF&bup%;iXb%SM8sOBc&+f6Gh7mTx?5FLA1~K%h#scUvfL6NOm*+z(kLlqkBlEVs6|G`$?@RneJD zi>{?aPp!_o1~N&t3aY(L3j+Uqb5&1>CQcAO-myZHE^8bRRE>f?DBsC2Kk#g^!gb%soAka`Clh{3v=~`>tPV zv7-UpORq~_#m+CR&j??U2&#VU{=p0yb(=_5kN8N8VLyh777IrEfmYGbe;><3jo6tE zcd%Oi!1yX1p{ka^f=E}zTaCz%4?sYBuf|(+CO;=ID}X3J{`P7m`V<-3@NJ>%-*a#l zeI6r1o4$sN6%TbPA|hWp|HF#}lx`FVNf>_!88ixaH>nVv145$$E~JCoEq(9^7Jmb* z^bdN`i>IJE$z{1W6HiO-Dax4$`aYgL;;hH;I4eiN7ilu7U$cPD`EAe36NLq?Lk~eP zb`CkW7GiJ{2s52}^!lPY@CRoP$c+%N_bK<+HKvnvIIl1a#Kq9jgrO0H9Sd)mn`hS{ z8LrT(*03)^!O2jJkI~?U2Xruz*;g|I9eNI;DJL=8@!!fE0ZHI69;+4=p^C{L7W^QA zHP_r+Cg?=RN;Z#g%0@2@kJ)MxLUV*C(q#DqI61SdOrz{=IM|lS7N4@9&e=Cb+>W`Y zn3VU`s)(it_A(5T>Kv9Mc=IcI!LMt7)V<5QW#@Nl5~Gpmi&GDj?ePLzpIih~{waM@ z)bJ_hPgg^-Q1PzdNoqs;O}S2DQX z(KagzEs*NR`to-+bI@sA$Ta#qngklX#^E(eeJGSe0}&B2w~=}2qIVk@ov}{(@>50j zK&DO01Xdsy1`Zk}7D0HjdNyF~^t}}_Q3EEJT?Qy{b{?xGLs+mLv2Q~QsNYT<5c-sn z(0SH@lMyX3>NN{5Dc{P6jjPk#17{;bQE>#La!($m@OM^TC9!?n+m7q23hPDa2iLud zL3+u?{1CwjZ>KmmghR=h_Q`dU5N@m?;e9{QmS7w)D}v+ndx>A1*_~4aN#a(z4(I5*K0*neH?Ktj zp^j0{{=ohhy>%j8TJB7yRK zxby;q;ugP=>hz1B(p;LI0It6YC^kV!$q2E{wC^yv@H(gmz?8Yg32(yz4gn5H$LB@9 z%D_y=NqV7^4f~}n{8<)j2~GKR+Z6dj5~4bY0jf=m(6{dRc_`G;su>T&?4*MZJ$IL+eo`4R-69PO(cSuOLsm$`0>sifVvKoknyFjFk7b9 z#aN#FT74^Fl4*^?_<&AgeJlNH%@K%n8!Qwkqfy5ptr!Np#){LNt#+}kBbXGH;yEvB9QlB_=MT%d@(%>EN}eg0qqDhM-Zmz?~9X}1Ol zp0G^7uG*B_bL~Ti>&zb9vOv=iaQycz*)z~L zAsU#({^PoSUl}^u+Op=-UuuEDq8oz>7NQB1T|us$=EY z0)n$$T`Duv&Q5$T+v<3YJq&xkX{a=Zc zl(LP06rdn`Fx(pF!eN5pb80z}sVJ?=Gm}g->=e zamH7`1A0C(P>{bHWt*7OB1UMGp~q?{*dGXAuTnA2%({n|y1Z-$LClfWYifq7z>GNg z8#1Lk_wce>dcp<0TM$5qzq0(lnX}y#4hwlrHrcCgMm?K{M#jqdeSUP>*~L z(981ANBG5a5C5(t{{}WR2ZxO4^=#mt1)mo&96z)DQg}b>rBzlUqoGhCa-}?lev9y8ox4yo24%TEr*@+83~3iKfMGsj`!Zv&;s z(Pl-`E^!s?w0Oh9(oP;rcU2M-$tF?3^JqQL?evHU^&(IuDzfvHC+&9d5-ILJtHnT*ii4eRI_PV&2o@O*{l;wC1jmoY+p*}*x>$V>!^;Dk;jB;MwV z18bp(BUvD&yW8oq{a`7qgGvr0VaMokVFYUEwlw;ZrXq#U-;k7n{++QbwE5 zwElLkcH``rWKEy5WH400%nVucW@ma%ut|R-0Or%-%!L4ArN#0kQ5oQ$|1@U)ScU2B zl$)E5=;f@nl^{|7ps?)xxTMAY=}Rv5Ief!tTO3)xWQMX@CP#EfO@j|4LtUoD9J2F7 zLk8r~Vy6`$7zLR1p#@<*i)wigM0(cwYdUOY53zgBUH6WhmiOwT95|@hQEh}GoYPB- zp6;x6V5x6d0T>Vr6G8~eI2lByA3RRkjjpFF^1r0=@3p|pd&*xu?1M@L`&?e}d%hR3 z1XBF2=ig&**@g^DEa{|@A}UYnilpoRtp&(u4FPB7W@o%jL~IC#{tT4#GB$gSqGcut zlybxvrMp94@v3kvRe?JDef3&Y#tTo8rWb~wA8BOCY`w^ z1pfs}Mhds`^0b%jes?Vp)=Mog20VzZh2Mwq2lR|zO}}OX8GZ<;n_(=0V$JkH^_D5z z7`>q~-uq38ibDzU&{0}HmJ$?4D84xsfDtWrNrv-+N~RtiNib5T1T4 zmuv;KteKO=oI`HgE4ci2K-P|Ij_PxD>oHU@=bAW0g$T16ubnVIqZ3D;>d45D=MxqL zLm;{_^AtNTpn+qo)^WjNZr1`o3OA9IJ`FMKOrappaNhv7cQi%-l$~=x_yCRr)Di@P zO#J( z|&U$V{BctZg3qeZYm*BNf9uZal{UVK>vO&<7b*F(X?gA^4KkVmJ2K92SlG8=eM^hjh`s4`kLkG+N z0H;6VdJEc6cDj}0Ac}G!0`UVT&GuVRi7MVFd=I%c>SQqam#4L$2TQxp$+AG%6v+xk zi?2>^UYW(Y5D5s0mBb1AZE@YW+W82=Lp{E$vnF*A{^ar*0g>XYCZM_ce3)yFD`~K> z$srKAx~W0oP}$qWnBT8BkaW;xavaQ=6$PnCrVUb;AY`tn1*ETSvMZw=1*pd|efDhJ*_nn+_(}s|^4}Mm}TqXG( z=7z3!vUmBX&7c{!T{FuIM6EFj+3UrU#28GVnzu@l|$1*@p_?8_?18sqtP`x7w&+uhm!}{ z>o;(ko}vmD%0pK~d(WW(garA@t2<0M;BKJ=0z1UGe|H;UFFUmm3uJ>fDXe6Gc3Ta( z*~@4nDbmIK+6%km#92`~v=8V9G-gD~W3%>sV+RWyij@6){R=1&NzhRCBt9$z%`ghi z+gX>aRWMVaLiCTK8pmF{eDkZz)7841@44WgH3_WrgdhMe*z05d*A_wZdIDTdhL8)sw1D1GC;^1fC`Ok#c*fZZgHzJL8EhqA3z_Y&hc7<5fU zEBI4IYHE_)!o4UdCbluKmL5TjR8Qz zJLJC!F5;bq<$N<~N0;#z%{JNYr6XoR8r$A}CHR4D*LsSYS$az= z3QVAtOK>lo^S_q&G&Q zjan!Q#57kBJt6VLNK`3oZYq7<3~b;blP|cUF;I=jUA_1O)YM!ho;@08yjNy`eqepe zzKjwbb_g0PMmf>A&ZPe36<^xB^T-3#I;TExE>Y|sGaGe!fHzBqU=lAiFvOT!Du3vz zhror}il2|{u~xpN_P3isP~;E0=-Is$ItVU%X7(f9I#iIbp~KdyI>4v9JYha-fIY$c zOJxox9iR$Q#6Oy!sC$cQ_Q^}2Adj^?I)>BdeG;kM8ke@eA1Sj3(l+Ekki9TfL&t24 z@IUX~ol*VaP?lQm3rZHfq zG^krnJ38(#z$c|wYM*!&59Jt!2}z2TuX|0`k`i*NPkwdjY9V?rSd22UdX;o*{hENm;m>&u1tj9=uN1W^tj4yiawbCcyTUKd zjY7eQ|I7bPG@hX$JgbE;Pv!4n#cA{RO0zg+FQmp zAvMYHWr1QV6f~9+K&^m~Em+~d8)kL!;Dj>eJNx?$zrqxX%+JVcICVK&%^bs(UL3_^mrYVtu}6rcMtuK*IojASLVy-1{#TF_&dPPP5?>*2)wLBK z+7mtDkBV|ON1iH#HgOxur=8k6iJ7lvUj=N>lHaWEGxG|-&(xcB*;1jIDLoyn1Q$w! z=1fkn?ZBz2KvjAC0?*BGFKUHV3k0cm9C4wk#>4fjUVF_^BdE!$4?4OIX{BH}ZrLC( zp9*_gd-}sBpG>~uqQL$eXC2GT?{t&|F@1D*_dnsY!Qc^SDQqO}r>%**a*P6QHUV}3 zib^dSQhXGS%7MuzGy16{sx9XC1hIsG)kWE)d$GccS0eWtAAr4u#0xCucKA__-y>fr zj7TRJR~z22w9$=oNu3FbzvWGgK*2>b0#{>`iY>-+2;oK-6qbkCCjh<%szr~ zf*@ugp8bz}>xq=1L<5X9eP$h@=1Q0-Mos5!&_m!lxZBuTOS$eK7?^aGYR|cD284y; zfE~g+Ee!a~IoZ9k>y9GfpADyBWozxC>VO5;NYJ%946nn;7vttLbF0|0+u~7X#;Ci# zaQ3?ad{s>`vG5R#vM1A{92M6s{q_t~P2xmoir12M*=qrkXazH!kpJ9YA6cnmeHfvT z_iGs2{2SFVIwA^ckpKIx;Rj&`7jHO<*2`O_o6^*w?=-kL#V9;)S|dG{imlJ((;Iyz zMZPjhB^h|=I+NnAyvkxCobv5i+x2`uhmqnW^6qqNcnAe`3Lp zS4h{K2k7uAvY08jpX=q+)Y^>$*zIJs)Xle)W!&t86Z8|^&>HDR^c&1cPG>yX(=7L0P{O*SCqb~N|6vt z%$gBM1t)5Fu^rwx+C_Hv{PR$lW|NokxZ~I0T(S$sr+a@k|u2kp|hC z!Qc4J-<8~zesmR{sWunR+oH?>_EdNoV_V+~e*w?zy(SMx8MXD`?Pv=rts1%1H;2}J zj7s=gOSCMSu%=RGs;V~BZc?0)^xi^iLN(Q#vw*QXJLh~j-qk5E=Gv`IHS)2M>P5@k z^!L%fA4Y#aUyBYMTX~P(;!}5mUL-WG z%E%x^7uVx=)Xzyb0w(9`KPyv|q#X0aqI{H@F9^X-}q{3wznTeM2u6HP?E5Y&0P}Y(4tY=XO7Z9=|+reb+z= zn(In)y`=X}PtWJ*mB@@>bEYDamU*P6N5AgUz-tw)A*}0%l5IA0>U%6IA9GfdWY&M6 z4+-tAfzU$nVRq^l#`-ccKQ1r5^CX&K_1iTf{c`i!ct0o-$FttEjm}&*yE>Y1Tjiv# zYi8V?RH*E$gBg93(ofQee)(ON4@_^L8OU+5bnmZrh;S&zsF=IcoV@w4Tm4Nej(pjn z%B*^~Q9_*BI{~$+=%^>-u@+`69`AR%GzO>gqvX?{+h|g@hp7%`dU2^Xuy%G6$Fs^EPxC=E0rDx?W zOaCN{QlXuLDdWy`+da4sHiw=y#6b>x#l;-USN+n`q8IQ<#COvI0c=Ws6z9OwTt|p?OIe1N8&6W)(d7ypqTx!7fb|9n4nshP| z@M7Iia$I=by9yWi{-C9(@hX(gX{`-26>xv})03T}F>*+Z742R~AKccqx4QCc#4@;X ziKDsI=1A`oGRLX)VAyDo;Gt^_j}O zrPo~rS)a7iyI1pP=+#u!!zPcUEiNobgXb_B^$8)AtQJex*nw zcO*BNzNp}tD#v+UTe=EwTti&W{A}i-x+{&Tsei7xD(kz2g$MQ>RRA0aQ*bo)=X<^= zgY%(t-ijM6%+n&`d-Ro6IqwS}yvu&BUuY^%BoZUDSzG=l#WOJ_RHK)dYAxJ(y4tb) z=Vcr$BK9#-zzhG=OD0kJ-YV!E6Vu95diQ4_E2-n*$o+Q3cSlO9)nYeSlxJLata!&~ z^lGf>Z^3+|gWJ*aHxg_EpV{aUU?AP<5^vcO9h(UQ=)!;~a9=EG)L@a5^>r`;p$a+=82?6pjI%naydES-E}V1~7@9=ng=*(;D6B>KE@ zDLXt?%7`$^sl`E@^~=X#uX%^nhPR8f`73sYOs)!rF~{+8__3RpL$arWWuLnphuE9( zjruTK!W#h8!=i20XChISv#8HkNvN#*W%sig^SySr$EA4olwQ${VBDSyT2n}ZjAb)S z!aFVD;ZsC(>hA9I5b=)}95N3Y13+u1UO~uUpHnb`r8H%PPrHEo3iex8Cfiq$*6p7S zD^r!mgUdtAP89$;{R9LmpjruftrJg=zzGY{V$SsRX!TY!!JBj2QcUXe=s_C;58B($ zc;de6JWQ+4OZH`cVpx4wbqUIGW_f%L5gc7bHlmtN4Po#Vn`9iaQu5#G~2fG z{1?0RO=xrm?>8hZLBeLpJuPVo-st5(xnR1UOu6L9(c#WF9xu}p<6qC)VOse5V{#pl z$L)pxB{z=NT&zOX{uT5Lgs)z!0 z`{j;_K&}5=eC=gtIy#sahT3aVpg(wbQf@D3O)(?JungG-=<8z|p4zix=LS7vFFz`p z)T08>*`k4n3JZN`uH6u#rjx<=5_p0J>^8@;$c*xg&<>GRzfz&~XEKV_p3};tA9wM2 z+`boKfr<^VRvS%bgTpzlD;-Eo?f4gF+&d*Z&YOe8MR+!~9gBaQ2H)qT*km|#!!&Sk zll)gdH_mzKv^KRw74om9XbuV}A0jlb$cicm%YdUnmj~UI4p)s$a`Sqy4%ThtT3Sj3 ze$DuC-?b-y>oM{=c%OEae4 zqdMt?Mu6~h@fK=}K&m_u{Lyy=R~5=rP4oZOH_Ajiy}6=>ix+1^Zu7wf$C~I zi74I%>XO8iQK2)HCv!ahqmACE0#9&pgrq#*9L1moygQ}Uh; zBp=#Q6K3^I@@=1!Typicc>J?YM%c67o<;UV8((BYyE=Z$W_pDdj>NFms~X?O--v5{ zsc>#4n#3RE6)hDO?$t0s`&IE$T?)gYCU;_V_ies=F8vcHU(WXw;1V_W-xUt;HBDhX zq+9rJB1*B?XD3`mD5Q4&H?-O8dn38O^K$7_CC#l}`lE5wq&2)wFQP_e(yTqjZwA8| zOJJ7cqS*~N%yc6;?ft90w?SmCuHV)LVxk>kNEwaOS3-^dr81c~ji(h3Dzjm;FrEMU z#i_!;N@B9s${=|lTw2hjwa^qSLqUJi+!~enlM(uS>&#phKR_Y7`g9A=Yt&qpei+?99L)Xr`?*(jQYTgV15AA*W2k zp80)cm!rg07c>E-O6XF zFIsM&CD{h9xnpX-au3VDCE9dPw;A)5-hv73Idyt`cINE8gS15J^=W%oH={D8Y$q zyp~T#w67;6uzIQ@RwFg+aE8CK3}SVEdS07|c0Y@GRi(|qK-m3{eg%U#hVQXZyK1J* zHsd#Ia0kP=rl_a0Aq-12A+YP-fg0XBjaxVTYK@f%z^~{1{XVA~e(D$>_21FmeU!8A zv=e-|r6|(h8X{QfJ1fn~NImb!g|Zua(!1D@^3@C zmK~J!7`WGkDXH{VL8X9)-C zM7DIb8U=}n5&TGI(j}@Gu}q{sg3g48RtYYoR;9Ag$+0iZ_xyD`aePiK-H!Tb>iCB> ze*f2QQDYlKnj?_xej3tM zGkLFHX=@ORugVY^89WWEkkYG`v9^A}@8iC@5ND5#=b%h@Vbe%K)^tdn_XYavmAXe# zD|MF^XSOYXG`%OH32)Bp@MZp(^FqEqAK=jKy5KSmJ9bp&&Jr0Gln7<9AFb^4wlC{k zr~GeYf+d#3jkJ?LUTj+WdLN+>*8dXzd+vF3e{uHziR$F^`T5r0pVD`8bk*WM zwbUw4{H>qXS2q@Ryf8+2^b6vt0Yo*a{6Ice-Iqn^v`TpuaFO7&31Xbv z{d=cp<+AJ5z-aO3HO~WT4}yAIQQz`(4OxTu#F&6aJu#hlr)_sp9fD%LYV@@RI>qRm zU+mjOriFW$UdEKiuyk0Bv{(|!bb9b*YH3^!SS`*z8UG8cuQC&4rgKiD3WLZAYLKSN zmW2hd*M^3=9;c!Somn|*6*>KN>Qx#QjD2Clrz-SvJajv9A9nz`Art)3_uh?nfBXL5 z(^$`Mx&M4-$4-5+ZNTpgA{mL#X)V*Gu7y5-me!C^W-Uh==ij6&Sra8hgOWnO^Q<-H zX=BL!my%QIg2i(|Uh?;TlS0~{yzsXSq^CnsYrb!Rz^vaS*HU+rLSv~To{3(I4ATU| zPU@y0+7}b_l5V6+eBqq&2QN2UX)QF)D^yc<20u=rwbjU_(5(zD+AjAPE4BfDkDc5r z_}kG+W@U{@uHNa$vYB9K4ju8Bi@n~pR_5jebcrNi>)$@_RztgaCb43DEa%_l&iQXeB#vkZ+SV2-i|p5_(W|l^ zT2W5yZpKuJ4|ZE^)qf1}C8n+ePi$^r+yxlNC$4Pthpx5bU^byuq7V^H@KJC?>Z6x^ zq>+u9Q#-#F2umQTS+jZLV`odW;ptR(#u5vva{o|#ug9+)=+Vyw;4)1IP**5 zznOFUBgtCm8fPe=u(5Xxarw zWgC<*51SmpD2}QqcHYSm<@Ab?(FSFawb*iJ@@o}oU9NBx{pyakL}{uzb>nK&_4LB$g8+SFt=qSXY-qsf zq!Sj;D^!eTibm8}<9risu=Qmbe;`5X7u*w^whGto9;mre?+iX|1t)Qav<5)zsPi^@ zZBeqt>TleIpJfcU=6iz_bL&6viVGWhm!Z+r;+QeJ`^U{QyZ$tN15+WvZ^qxNs#A(T@76M1aDohncdsZu)liA(HXX*kbKKN7v8KSl zZZz-=_&sr{s-w4MsmQJWCu$VP1W}#l`sW)*u_})4_W5(74p|1CN?S%IjdV}fOI_nG ztb@NtKcP)yh17{NHG<3ztOwuDgix7xEWMBHJa+Jyg8c7SF1gJ=Uo@;s=mNI}lLBf} z&3+lk9xckLse!?T2Q$F|F#<|WvXKs{|2|g^TauFeHl-W!12^Vv9lor_3#W4Q;EO)o z;^~$v`03`}EuZxA`zuJy11!{fr87cZY5e>J_bfS4Hf=(E%DV`m~w7&Ay5wtRB)5bRv zE9J5In#!PuI~t+C5$_3Lywr-0*W05DzMM*PH?4^lPW$+Xer- z`J=JmEY^ax(52)a~TjRj8&!1f# z*1pEujvV}RkhZcjBSh|!W>g3(Yv5No8?P1-Q6;_cMcpL zGblVtzkv27rX;fQR6lia71_oH1eKBeg|pmABmlT0X*d-_D1p16_hR zhLoLEiQ+q*{L5yVHq00~i4WTZ}Bz6RY)bAPgj z;Lp~Huy`|pjst0h6@-io2Xz%O)x1D5tATi_l|NDOi=a~I2gQv3C6r7RWA~04)G`e} zrvVI{`%PE1%x$BF21?xykTLVu%lESss(9N?jozsV;MH{>M_ac=91C_Ea5?&W7c+W; z(*9Ik>%loqE42UCPAMJ0GI2oB=W~B?b4cYam`TQv5mE?&>SDV+;mxMl{T(Kzb{70Y z!cs>d{M(Po9~+cQ6YN4B?> z%7hr9SIwzSBVWtw>wDe`P8fbWjr> zQvM9)=9oU)`_2=UzGeWHUhsN7cM_RHsRN7qV-Mt>{aGoL&J8^t2SrLu-Dzp9VE5tIGis$p#?HQZS z*qn1+Q>1*=Tw?joersw8eRQ5(+?AmHpET}CMv9yLf9`=GOskb!XLu{(z0j>AkWuZN zTFT_*v@)8AQd?Ej05w9jN@(hm1bUJu#jdw2Ylqn${g*i(^oJWi%8RsegGx78teZTNoP9FrvAd3Qm%t3EI~?f@8=YB_)L8 zU*quRMibo``j^D~ zoxYCyD5X+D5|Q8--qA}R!?HBS7xJ}{MyzN3;iaV^pU+D<5};5yufzX^W)fYr z4_j9)VD#6x*I0l&OjH%^0&({4y45%R(&!D>+b4;%`#rxqzy|KIKmYysk@S_X7!w|) z%VDbcS8A?e6Nk5WEWIaZpS`1e@yV+Brx*vUJ6xpDPmKW0xr-6(;{18d!qz>+qU86A zO^9Aec|%2ubzEVPwVCMl=wtgaOPZ#HyOZ1684J;b16CTKbnJ@*j*5AgElA<^1eqTo z9hvO7DXOh3&c(KM4v!+(g_$EAy49uHBag7{`}LDg47~?OSy_Xy=3-6s0Ksx$fggVn z!Y1^z`nw7d!^Hw2xc=ub^6UpM-!Tg=Tmzvz${>FLk#yZJlEYQCrwK0N)bvxhG&=bg zPE&Zuv}Wr0pRWOl)UHdzffo40e=tnRamCuBX+~}x@W>rNpkUIeoy9`9*i7s&yq{f* zm1^=dZamXcf9{-RnMYzlzcn5rXI}I>ktx?1v}iz1}D;Z zE!qrY*eBP1fHoBNY8IU=A_)381+f1@9ytBXX=@$EbDR*^MhxVw@6*O_`kxlL-xJt9 zFh(5%I#4JP#d3*^OUlRFW8hKa@2WQ2CDe97cQA>{z??)hC`TVI9m-^R3KAdI4ut5> ztqMXUwGnABm{LF^ZbbfF_7syWT(idi&X!rl)OZDTF^88KG+pZmUNJAw9i~M$HvO{- zpJ$8t<5tAa+n-&14h;TYK`hO0rJ&ig22dh=2&Fb&K_8wCT3O+G+VNWksH(Q|ZW0ah zRR7$GiULEDDAL1^LUh+Lwqyzj51jQ(U9W=ytuc}~XHy9JUV&|umSl)?{Y$i=mA@d) zw8Wi-c#pjaSbcF_mIm9t|HzsDt$#4gfJb-)rcICoJldiOy04CeTOt;ka;KO1+w%3OC}UY8WpXsX!$dETYi5)0 z!>d`hf}$QQPCN{V<9s83ts8`8t-Y~v(G5$A03u2;_TYZ;SgG|Ph}dY}gt7hUoEaX^ z|BMGECHBnvv4bWZ=H-e}>zPGRI{QBdk|j!RxXMsW_?G zXMD7l{>#J^Du6vx6M2h`^<{3z!FDsTffP_A?GQkw%??-?X-%JRQP%Am|Fa5b!caUu zcXC@u*7qXV?4_40!0n`uy?R7CfiNxLsOL`=( z5bH*hm>#TDn{xR3kRs2rGVUwxpFVcMew4h+gcdoOmU?J})un4Z{M) z0p(zh*F|?dPJ#gJ=FdJ48}9n?!+tYM+-c20Y>i0wH4R+;)dlY}lhYpm)Lwzr<>Vw( zH1#yP{?{98O=KhGR{J@`_A`-E1DK-QHb)L?>TsQV4M|VbD%h#6bDc?}G>4n|G|t(j z5HNUr(iZOU0M?Y%+H|%^I#aKbA!pjt1gyACVTdV5jP>O~8i|&4OvIn57G$k!9+urn0FJAv zfnPvK#Q+caY=`!df-23}0!nsswn~UypGY4p9aiFz?A>qN1XzS zAb30rC>mx^y%xN$%lvYTT&tWb?WocwrvPo1%?rC7TZj_<)$Ay1;E^fx@O=_RKC$GM z=^HK&v}p!ZjXpp8qf7$5<02LwD=6`JA`0$pu&>+Sh-vZ1&|0qu-PE+uHCgYc z*^O{BE|Os#9XxeMIQ~IWYrT$&ja+9!A6DLs$xYGPAlJ*)t40UIkSxmVX7(p7kjLA* zP_Ni`zl-UqLdN+tc-=Mqu9t=eWv!xADN8Q-#7u5p8`>s*k^~1<+a14g{fR8}IsnO~cMyeO-tH4i%GeI-YbzY=(>>e#>3Fc_6 zEODEN10(RTKnXx4$sAUFQBL^iKD^>fI$CiSE{nv97)v!Ir&gUe5=ca{=${1j^*R&G zEIl)L;FB7eGWR8Dka>D8g2Y6H=)a9EqC&9`bZ}bHs1{eB za~4%g{dPshP`wD$L)>iDjbzRTYL@=P8b|TiI8fzw;mcwE@$=%0KNf|jF=<2GYsxe7 zjLg)h(6`K5wtkU$L^&%rCIQM?M*_ui5-NtD(IK#IuVGcoD1IxjbH#8uMzx&ViV{&K z(U!9-S1t}Je3W47aBBTfDC_uBT6FyAKzki{^fIbC1L8)^4txG{V?@!8rB0ibD>A1( z1HeJ`2v6=b;wV^e4BQ>HP4v+bqg3pVqv2}-%3tY;Hh#kz9AQ}K3LE^@2(0^=SP%tg z*yic`Quue%JP6)lHzW9U!G@}~US7jbzuPupVvQ9!+T5wm58L~7Wf~p+`N)Pa{K`Ei zklY002Jj(t+culQi}Z~OwLgt02+045{Ou52_~_~rJ#04MY80}(hd=r&lWq*um3w{C zk6!S`oB6Z3wZ%v9f(6I$4@vjKPK1t@Y6@U-OVpILV5qd9N}W#?DB)dw8~jX(FVksP zot3LT;Loc^%LOWWTgvF%<3Xt@>QzFEFsIReG#RY*O(VTnwb22cU>`I=XZ5xBR-SpIX0HR)c)}q5$ zFomUTaH*Ep{cQhglj2lOFi3Nq7*2w>9FRA@FOU8 z-_+_}>KNB}tN~moN$+=2UuND6*_p>Uhnnp2}O+o#Y$}iim722EILfWH{>TrL`nS zeTjzoOvps+7t4tU-BSQ2do~oc^$SX#{L*v<%;9+33S1=22bEf8KH+mw zonpP=zMuoX@ik>HXs-Y6k@<}1qnY#n(~IodYmMjpg=UOtjCI;G@MhDttlP%a>xvfBcL$UoUV*ELC2MwI$Z3(ybQ^W^pIpT&wVzy{#i-#R zYq3V9tX|4V{R?9s-dqG86=O8u*2;QXZn>M3QUlz6r=&eg?xOz9eB;Nahr`3_>f-|* zCxfggS?(*ceL2wSp~y(#&?@dEY}hdS3>A#UZ%?QI@qL$dky@3vfJX!63r!t6uK z1KyHH$=nLz_B`mH2Q<&wfj9o2UK#w~;=8Tk7rSTwymxlrdS>y|*NMa5DE$t5z+wFF zI1-%X{>XYTCg+x5g$8j0MI%MM%)0JOBd^Y7C?kj3IDjAY#gU9&=hCcI5*yTts09AH z344b<-i!^fHTr{yI0OF}5V^eCU$))s8{LO6b^y!4kQ|rt=T3@Kr5~TmYLc~pL$6P> zYLkPFZ5A%=*C_`!ZpHDX{%`NHFx9(w1Gd-|y%tY5`P&L@rM>OtD1V@GQpaeq#)=9t zft!!_9m~h#cGbkt`E83ipbN#G8%7On6yZdqSCJ z`0jsEE6v0^L;s0Kz|kyyn)&>o22Va-FH9&kF12(#sp?~;wvnHoKVhw?6yfx40Yzk; zi5amJP_A0FCe^N?(=uO9kI0%g>pClY?C3HQoN{YG}`#V><&>x5lp{8rir_qaq;*4>r!<<5f z)qe=^S;hn40*MJ48qV?&r;%gvod$lY7VULRH(Uw_G-@blE=ynL)@n$Pe<`c3Jz(<( z-#QECH=z2*5w=;&i+15r6CugNiwQlEjr(}l7%r3L7FIEZqiGo2XeBiU-@d;%&vxoD zFf)T3A&-BfwyIlk{%LC#%|>BPA8B$s^p++_x%hZUjV99LTn<(>ou3C%a!cFV)H*D@ z?f9L&R04jHMaW>C>E;WC!kk;hs^AuI%m>~M#pc{5+h>lS81%4OlI6zFeoa6Qmp7PF z_~n!)RMBD9XuD zAW_5=3KPz@wZ&7cF17XZCWi`L3I~=h90dpt(Io}QJ1W~uSY+L=7a+LKi3kKL@7@mO0U4a1Xj+!?iE=WzLqeQgyT%*7#50G0?c=6rN#kE$nS2}o@j!MYj*T(zmlV(MXWuk1j)9YG6 zqZ}sk;7$JFVfDv!?F@Hcf!y8nr6RSmntOeNgnISq(QQ@(sNYS>##&~WO6yxx2$7Ms z!v5xsKDbcazhQBsO^Z^xgRp2v&|4-JxlnKlF11}D%zn2Uq<)+L`(tFb)!`kGVYS@4 zyBmzP5wrLJal=dP6coub@g%bcZ+7ed4gIdO;7R&{Ud*J7O)`CM>EkC9s0_>E)XtNi z43)z}+geY%y)jxywnZM(*YsUelwg#uF}7feF%%sYuPD0EH(BEEb`?dp)M`|?v>w*K zdwBAHAJ5&9m)!xWwI)0;r#u0V{ehRB0Wk64)ShI2W!M>;m>4APRR}BaoNMZh^E^*Z zyjhPnbd7DwYK);fnhDETXI&}L$Z~a=B0%iF3+-$UZ)EzkLU+e2{fjGSf2D8Dxb%cU zX*ew1joQQdml1TLfy-rzlBXLEEzt==SfA&e;d%1C@jmgXs{b@FAPHBmpe2d0W$DHc z-+rEN@yoE99u%|8f_njUK`{kuTcXf4WrrJqqc97 zviAb)_p067nIxBh$Nsb$YBR{_yzxSFVfIxYK1j)8_g5m~KcvMfBc0+=)jnQBt6B4? zDrG-!?5uNTyH|Q)M*paY$}=fB_2vl^zRlkM$b)ki^TZ`v@^onW-dP($Q`c;PF+8oU zyw0xo-!3Zay{Lu@Jj$9oX|5V|L$N@QSi&!#PG7u)aVbo>5Xp^GD5l7#_C8JqgRgZ^ zm6vA)c$d?4L_VHr;Pe(#eV3;Z z{h_$7GeK|nR+tiHah`B&Y0r0TBgNt3Czy|Udq#;O4Cl`DugW+t@Zs9RGxv1xCcw`) zUYe!>-)u+u6lAmj9L)-2=-KiLPn-cEn@pzBu>Z=is-uI=;X7jOc%KA)6*Y{_{!8_c z97Z*B?C|cICy2P?!{?ND%`c4cHcKUf@Q* z-rxVYl?nVixm3k4@x>Dw?pNXs**HnW@eVz7BZQ-@y1I@aR7(l&W%e~|^~{ZZ`E=x= zqxrO5W2Hn~5s>DpF-tD@y&Dak`ya9jX4?0&=7{a3A6HOdaS=FBH@f=}y-{G)X+!yI zgSJZ)iMnYA{ljCvg>G|mqZ&+xt$Z!i^s%*5itpz{|BU#}phH7Ppc!FeJQ2O&zkpk1a~i6^zT~CMRj~dN9^%KHnv5kd5n9oPYZ~@bl+Q9~T_$^L@Yi zv!Q&dY?Qd)yXXSl;?k|515R;Th+VdVL1Jpy;M1$!n+_Pt^Cv2O%!%*+w@_a`p2o(a zPFz#JcDzTY6b7$9lrv#nLF+g1mH$t-Yst@k#t>`2-(!kf-xehdY(?Oxl&4bO>BvLR zZO|7#bgX7+pBBoTBrKe_ODww8b{eE4sXM%lbHSnL%QebILNp-}*R2{_6zJ1(h3N_@ zql!cw?R7|ZM#C%I7q@17Q*np4IyyZ)Sd>el_*K$HO6;GQM)5alPEYI`@u_kvDx@#P zZ^Qln*9&mxDwcCcfoz%?1>jYRRWIA9bt!?xZpNUD`;`3PDaB~? zlb8G1nQ?%IUn}o~wl7cQO(B-;kGux=&g?%{&1Y=N@ISdavtI-JP?vwJxe`8H2gMyM z5mi1?PmlgsS(?EsrE?zculB|k#~G|lAzNLyqJ0$?#vSG+2rpRqoN4MxyoD6E0>H)G z+U%`_qw|e~faXVG&g&6KaPWZomU5YPn;3nkp}mSllBjs(;vzh`V;N?rZWq6**xn+w zTX>MhWQpThzja1Lr{LBx{IZb+^?0TQkyzvA@h_6jh~jp)a+glso)};3U_EE@fhjFP zKL)ypqaAvPY9cDV0(C?t3@fWRi~x`MBpNt(ppx-KqN2=wq&|ck5PZ$1Hs5Xo-#d}# zYJo9XjzRC&mmlvDq;Jfx_tn%*wB#^_plq=@_HX*kYaYb#*M%NMROOY=_QhlMRug7v zO_i(v8AsvsGY|NyC8aWkrZNTPhBv}e$IO7^+~kFF;*Y=i^OCyZmhkIf+dwI;Rj(jNsB{_t80Z z=OH;&Fw=jtH3NKXqoto^*HP0~&6j7=e|5V8HH51q0(vfN>L;M%VdPhpY6Dv&6tmPM z^+cMED|K!Ev^uH+HZ^pH3*^$mAKwZ1Di|7S;2x^4=r!3;2DRN;&p+mR_Yjv$I9 zsp+C1loOPo>HvA1UE;8-j#%_lOV#-3mtc8n< zTa4>#7o)Rxua7GxHz8o2{Z9geeCE>a$fp(_mF-TpqKC+QHVM&8S6Nq(H*73JNk%ea ze4kF>MYgigG7O&Fk5jgYeFO*d0Zj*AMvlveWxeiZxB06Np1YeDGV(YJr-1au^*OD1 zW3x4>Er~qYXD`^5&UEmK2tL;2qR`E@ z6!i?r_dV0RyCo~1mR4TuZT?sZnx2!JrGmyB_G#-e>DwC2Lw|zLm}s_f$}Vu$%uBZ9 zzysh65HPOl;v0{LD`;n>)umh#tj17U*|!*CK6A=-RM25J5`R;LCzsqNusTPkS_9)c z1_-WZnd&kAeYmEktv*F6r{viG%^{FR?O>@%Dy3Jh^90u&V>r zGco%`)tU@L{%tg9hZcSMl883W%XY*}xSfLCBBV$dWVkRmj-mj_E`dMJb0%0So~BFA^)mCXvrKd zRndJAstz8UwSXIMSe=!eA)huc>}Iy*4mYo2P{i_|t27C4G=>kl;C{2kS?7jJ+VNvJ zEDezwOQWl{Pc3EKZ=LeIWHFv@Go|`=lBr<_8M$@jB+`J}$we3S2mRZh#AgTN=wsJ+ zM9;Hs>||hBEz%J0)-hgZraX-bX*q6X8@(TkVh%aQm^1>7aUu5mf2WQ$)-f z-M6^>IWtP^Ut~!d-{PXe{Rls=c&pAeI=U1mkq;8sEae^^{#x^>jur=GLtNB`Gd898 zLpR(Mt!yY_>L&D{ja79ZNw)!kH4?nauyoIGUyc4vAVumBa;X(z{Ww;&0UWOVHC)msR)M)sJ+m|e=Mz1janzn6nXuA>>ij7WbXQS)_H&Sfa@{&*o+T6_52{tN^Czh zObat+CM+2-gva2Nr;zDQvPsM>-raAx-$KiCahFA`yQ@%wE~ z)GuEVTGOA#iEfa$oY4s#3fZuiZh*ZA*3r8>u>16zsIhfbMp+~GrKi9u=99jKvHd); z&qfnAyT|Kqa{7*;q&kRWR{#NObrOucNG0-8HGoZp=WIt2`7g!_6Hh8tw#;EaqV3i| zrdpR_gaVvg1HT^;Vwy4Uyn(D|EW5SiIE9>m9HtzlKPtiMJrnUT<&tu;;79I`6!+-% zhP^crxA|o>Y>tfJuwz$gZXR;y2k{>mGl{Mq-KdfMDUwZti&yJ}o-)3y>Cx+*Q(vd3 z6CXgRQgtr$$CsmybS08Wt5FGLb;aRd{|R{Kb$cT8hMvrKmzT)F8mBwfuD;#q@i8}! z?B2YjMIsZ%;T!P7gETiQ1n}bF%CVnFMIXr;YP^0rL@eAzyssU?L&r9atpH}V#RfR6 zYZQioeX=tpXzT;Jq=0!BOx;c3#3ACbPt~;5?0$LBe+hsIRPplE!%C^X3b`zucg*V- zaL9RF`6joTmP0gJza40$woCQ%`37-++=I=%VwG- z>Eq6Jx|-sV$tzVPxn@GNXGGJrZ?Z_8MmQmi*vwVbg;J~P*eBmfZE0PqoS6}(p)?k2 zPJP@DW-I*ovot~{`)H86x9_i>{X)JxGEnGj{l0%v>h+x0GP zc7r?imf|}I1FyeGP^U&gR zGo8NTaJ!fP!DSNEVi^A|DBQSRj~4j}Y+GzO)t8+c!dN7hw6@UXM<$axzJwKVGK)_( z#6uY!{lOh#nT+g(C>%5*!e;w zJ<^A)XAyMEwb>d4nIwzC8NX8rMD#&?*=`6*i!HL`nU2CRg!q@ID`;aq<@PgnkjA6c zpE=5y@z5Q%NF{@Ayd*6V>42&>x(r>O5z90NI!H+Atur?f_2hw)bLcn6 zGU?j2&cc@e>j?8t+#gbvIfYF3p_*7^(mU-|LbN1FM5sR=_S@rfV%k&daUM-3Avu}7*&BZW&$_pc_ht0gTc*Cy~ zurD{6dp5iwAhRlYCXX7+h`b&UzNU6AUJ6f(Ti9s)8^oWFe@INTl9OG(AO3OMK7u{R zqx>8n87G`FgEt=^f3U>a$HqKvJuJiKGV!pD0QKZWVaj8Y&FiSMu;Gqq4I5t_@Ijr* zV7NLv`NHJw`94D|O|XX`R-c}KuFr4NgIO%T-;gh?1|O3rfZXg(y3#)mix#8>dvmUC zge0WgSM7}#|JI6<22kt(r0SbIM$d3L^k2=!Op~#w90($l+I0(iMTq){xaMuds;ei- zP0U&mfJyw#nw|9sz9ghm68Uy4r)mAnMrW_hK8?$uv>OiY`H~?1J?9+}DO?AW;s@w} z0Hs1&PbED$7)}P7uzUJ`ClA0RBE|m&YVfs%RumS*Da+yzp2Mz7EFB#7h#Qn$scC^5 z*M9pZH#F%%_pu@MF;PhKB7|9#1mHvZz9%;JfsYSP{jn0czUBBre*Ji<|F>k*M&*g# zj)Q!GN9pa$U~R!d$S`o~wM^(43oE_|ivsRyNl4+@LCKC;H3Bwo-mCVm|LF;smdO|$ zaqFg_QTFeGLYMaN8WqW5$o4lQDK$qAn zkd`lVIa;x|(piN&zxQ7C2)66nqK0e#^5$EA+zOM%(pj))LwAp%Dyf~pWM8Di$OQLr zXxW>EQvn*fWI^R{oqGI~bMYv&xsdGo3>AR0w(SA3<2%FDp(_#d@2WN?r};SE8skl( zB@7W#r#~d%!u`TOtu{-kxY^5V7_tkz_-nx5|M~4we4VR}L#9d*p)5)Ui1No$$bH}B zF1}%Er^w9t-5nc*BD{v}9IiQ-bJbCj4+zhRJRVH*ZTz9xz9p__WTiVRpDEwlPH+ws zT#s`#vKhA)$JyU-_xY{=c7rCOKIYnVIyb09z0@-(f}*hn_T$L}E%9Y;g)mxVZ~scJ z1-O4$!J@$=3GjRZluG_7)z+9m(odTI2GkM2v*Y{5r^ze!wOo)RDk21LRBdkd-O{Gh zXvt4h^nLoue&#%d3eoB46m{Tiv9BgZ!l)X0IJNSwTAajAupt*p7e%QvHw$?Ev73|D z#db!ptX>4A)1y5%`Ad9~qiJl~u20=h4}sAucgv!Tyef781Rb_0l_;S!-o^S%M~y2R z{Ip>|gmBVNFFnDgLXtgIxHEPp?s7}@2Q_@opfE&hsQN(xyy%9?q3ztL>zcF8wQ7!~ zNl!OhElrS~`fL?kQUTl;Ab}b*7xrVQ^erX1q-)bv?LIb};&#$}(&@t-#JNf5HJI+o z7?R0aKE__b<&dq1%2o*e3C0Q}CzY{mr>*nJV(Q?=(op-106hY%9Xl z$lin--tpdlvXw_EU0F?e*k(RyN@Tm3c-{g|9sq{5eGK*1t%uk3_(P5iWp3?A&;t-2 z^$z7yb`~W+9!dRcq5nsN<**y zrl!yST4{GLY9A;0vorO?$ow9IKQXYay?!vd_F2qd&My+`=S1c5TA}$&fAacz??8Hd z*elACez%f|E}lmH2QFO1jPI-{QWyghNG6^*i9kzsu}K~kM7kHYyj1^IspLF6Yov?P zY0Y(!elsogd|-=nstcpRUhiXT@3Scx46Wzqb71_pn-NE69qQaG^s7Ia?_N#v_ghBk z^}d!3@;3TQZQAPgzs;gwr@Z)S)#`eC{1d@Y|NC~!Q=c}15%xhJAzNhw<73>53}j?Y26;a)mxL+Q{G7% zJj*m%SgcH8=uUdPt$pAWnI*R+JJWMF8{`CIzm=i#mD?jJ^q%HU(){7{^q(-9pMWpr z;xg;fxaXJ$ARI$2y)-zz`y8s=_Dva#LOmQg9}q0mh?bN+BB`YL@F1Rpj30TXtnp8~ zAUO#VZ5|W1QjV0rHQ!rF1Xbm81syMYh%Ffu-_G6T^*(88QBsH1cS3JqKoOK>^r?^x zK~COY7C{V5Axe)&!7^u_Fp1UUv~+rD>qFl;`SVO}F;>%xj34{hX~vrPv)0&rB}2adRhv}4*+1CKIJ-Y@Wt=6Dr3V>wTOL$j<%5)oFD=BqVg6Wj zcAa*4lsc#Q3fWYAStb^HeC)hPe$uJ8Z0-)51uN<)u0i0p-Sr*BPMwd7+ljIdvgx(y z(_Ohs5==vkyafEld329E8=9!k_oyPcK}Uhl_hy3k>jAI-0o*@9-^&T0Rvp?`p>L1S zq-Um3@$P#1rPsQsLU#lGhyE5ltYhB%=_*=zn~*yAK8rX~v0PR>{mAX}lY9@#n(jfHN$ zOIHlLkHn&lcO_QbnY;}LuIq+{v&8R_jR(9Z=bN&`)z+eEr}@&chvAX749clg{p)%ak(H<(x3-l zYU#Ce95TU&n`^jrC=LMYokCO3O+aZNwVE{=OH6ozp?=O3_2r*M~ zPGH-?t+|S;TG%j9aL$y}=`u!xq%`922hJJ)0kvpuNg2HFC-XG-o0~x!t^F;@qdW9# z$guIY1dd89)A0wlFMx`%$I3=qN@cU=7%;sM8!Qu}rdTyAZ$JMxR+5Ls(}-K(T9|n+6vgy~ zLi@vG+6`8hx#hER*2CJk^QpaqIKvxM?$hS(iMcei5(3%P<3gFrPMVMARSuOHy6H^a z0gHMTZ(MHnS0_=c5)QEyKB;?}MkIj*?GOrw&ALKuWmSMhOh{E@zGVYlP+P1Ym$gJso+LG~Z#`RjMdsM!x1N_VP5M z>BE%g%VCH=mL4`(3nU`^;5OTbu-WzUnt6B>ucpm@L2U5OC+CdD9nyPl`F(e}MY7p2 z{0q-TfS_YBRlz|>D8QCjzaMSc`3rV$B7Y?zedmF(C@ooTD9}))`IT(-lu=r&$!a3V zSTzh-7k;-)vHftMk)j(wnDQvs9^axv<}mMR;0Yn?5-^oAHo#Mzc~27YMP0 zoLkBt(jc8ZKI`Lr8O)I`$EEW<^?+b;hM}{llUU;iO5q#_2nJ}$r%_i94zP9iYhBky zN?n(eM)dbH+TmlG7)O&mJ}sG$TH^~)bHe`RNQ-_W;lJOBiD|+AYYA!iTc<+;5bt-> za8iJ3?()bS{fpO3nj}I3bJ%Za25-)fyVeu5SZ;?{5uqnd+a>q)-Q#jK+xL_!;!FN# zQUiFPff`Ur6NFxto-S(*+OU#|3F8U(t*-vQN|^KBaBE9Qw?o6F-X)6wmG|bmr>jkL z#9LS^-zhte1;i8RN-svf0(6F<>xR7(9(JSR+dnRlMjtVV3;Ziy|t&3`7Mo{ABU>zgkDt^VRFXk|? zs%)w@()j%FejiT6U{T%zu?xOpT?o5XJ?+Wti&7F%l{Q!tV6gw)e4XrbZfTf?pCsq; zBgi7IwBf*;@eB!2Z(YMzc`EId)SLWoQS>N)J|o|X)A;2IvXAr3_}?v<{QJDRyT2&5${Mo&KZqmErOiV zFokzpAJs@ZjR(bHMc?yL&-PE(jt5BFfvYypgmm%{RMk@9%cuDFD=h2-CT{@B=PB&<6k;?j`L2Spby5Wt z+vsyI5@dbU|9}F_T^?mzEv#v|o0$C9J+AsJm$MP9SxO9gCeUEq)S_v?@Q|EI0S z2TWpbZ@o`$y~Kw)ATTe!iRc2csDQ2#t>#Z>Cq~X5xu1AkD+xv!G<+RuV(V= zBl-h{6U=B0$eSUI(P@>A=fnq{chd2Da9gi@9^Z z5bG@zQF2-+5kX>`4WW@`{pT;c<->5`Kd3@`j(~SC$)`(rd#ziDOg@!*P?1Pm-k~_5 zTHM+QlHVyiI>1hDWus_k2TBy4(DuUKw0k;PQ$hU?-E3Y+>5z>$N$8FWyNAhvrtSdF z5Ng_4XNPb$a%Yy(jZ;!pEGe}rnZ`6A)Co*P32d>tzO)5<%debtlkULq6` zQ!YdKOT14yJII(>v>BcpwZYz(;AIz@rjvdwH!g*+$OA+uJ3#=<8i?~fHH_Q_@k7nq z2+0mB`1+#EXk-ikJ#U)J7XKk&B+Rh6FiMK@dJ5)u|NcecdywSsx$WLCKimJ5ApjVi zOyM`IQN))T@12DY7_Aep3gAD8F5R2tfQw_3jlYZQ@xOl{kBaAxc+xQRPQi~0G!aBN zlMOp1EpUJ!aLHJZ4q0FhgMg+neM&@b48S#Y^upVf*R9I!i5b5AQ;~>gtVT{RCAa;6 zv54W_k{iONR(#S5QWd82P)?(GE$&=Yt_tFZ&W!u9Gl9zxN2aCL#ZO)+T>&}e3)2|) z1AXRLn+MWGO|I)Oz;}@w7x~|PoHf<>*9BNdUi>G=yauZgG1U%eu07Js{3rLHEHBr9 z>tT1d&q1XlyVaUo(q~`KuOSw_~%|n-C@87h~b}ZRKj2AN?lx3uPI$ zy*&Ugf4;lFRw#CO_?B-`w8JllQC`ZRDJibTi7P>ZXD{Bk=JEw8*9SCg_CzudsC{7_ z4n!f>Yj%^S^bpNmFl`O+U}C&=Z`ZnvI@b#ULs(y}L&}Nf9rK)10S6M&%t~N)In6EUC+o90;Se&{6A&*g|Ux@ENRnn!I-ttfZgESlA!%N9;y$E z2@-j01o~gECXiNnVd&$G8xk+;ftepkR`u}%`3UG!gM(68O}qEIAf9u3V$nd})y22C zpig%uol1@<^-Zwi-2>A1;|B=~ve_Hs0yd_X*&C42 zp~zdg^K~^6H)4IhKy|@?8~O1rmwZA39{#OkveoqxCMjRV8)H|HVfR#k*Dd8M7345E z5IAej8=m@?Mex~jC$DCLLvjHm$mo<*916r8>9zT}0ZJV;y^rIC>$WJK`)?V6NL;`H_}ns{*J#uRf-u=+Q$EW#39wsZCGBpOaq zbH#&Q&Aw3DzdZk14863#x1__kBd3ar!Y;)<0%dDcg<~5D%nq5GqAXj&db!;UbZ+~Q)-p2e zr||snW3>0z>@u^}@>3mZUmow%?pKxf`F=)UB2+;A9V>Lry4+c0btdHR!FG5qV5?OR zGNa;01AEIy2;-FTBEQw1T7JcY-}^r_opVs8{oBT~&CT3w+qP|+o3Yv0u+?VQX4}T* z&9&LQvwN>+-ueC8Of%QqU!C|I$7viMo2qlxL&&b$uOY6jiFBx2|kg@=C%!9q(yBz2tvp>@xWfEw0(s zQInKL-T_Jm|4|y0Mz$zW`71Q=cu{&CXyB~+Po*RTYVt*tg8SV9UJzN3F&M-Ihl%iF z_`(_(d`6JDtS4fA;e0VTlaZj6pNf>`!8O=jZCMKKUzB^`h?wJzO+U82usKFz2fD*v@ev%@!#TDiQzD{^y>^ik^R34+m$P z5(-4k)!X$%YCtUj({G81wS(tvic;H+joXa%XYcGeR->5fjrm%fPw{TPMe)W{`GlpX zqbo-VCA-7BXn)gUg8Q!L#s+Rg$Dyk#7(@XDi>CS&7V}n-(fs&!0|{d^quLOE8e)V% z+RPed3kO*OtwTsw`N+%`+^UtjX#G{d7-pN-pH^|5MMu9tf`1UlRu3G{X%`NqRf-wc zq%~W@#W1j~PM;V@q!=9U=?z6W#?}7cK-pfqc1sG%w7X{GcG1C&6JP&<;8=rEVB>OT zlDQEwH#|LEwlDPL$`MpSHW;T(G2gEMDfe>KWJjCPo^O<4b%Rbyg5fL8hRdFIs&G4P z_V+eejA^}ZPf1x)A_G!;5Me~!w0}-;k@SzP^u^5iJh1WIxqm&yhibw@%+=T({#e(1 zkFD*sGBk}T7_GMq%M!}RLtBuxijj+!G+MrffbB8?5NJY(bpCeP54g!ML9S5wb+cCiVyGzeR0M!SK0%f*Bw^v zD0|pw7LG$FKGy#@a6#lqF(~7J7pQJo9Oy`V!>I-ulIc-}GQ@PoQ$E^Sr`#>Y(t%-W zKp7~$6SlU_U_=_$=i`*RzbkHDF*nAkSE-o%?Y8;Mjrm>X6y%>Epnp7;0MXVh588J2 zCQYl04yrgpiyN4FNk;RRi}Y;=bX;^0m zhU#(-!j+uJtKB_R}0wV|>bT7fq za5kz!k7Q0wI=}^AhM4Aq(MaRHU0NjDNfsd8>L$d@^HE&)S^ew146Rxh zPR0QlP4?ll$@Z-o<$L0xI|*HcmSV;AYvBQY_*j}+%8Kpgn$vID@&?L15yYR)Xx>T~ zcGTaHfj1RMcsN7=(-N*Q{))nr$8a=K7X8m_;in?ww|)DE+mT>3Wh?eQn1!O@`3due|k^ErP2xCJ{ zu52@s75l%M^$@m3Yof%UVedNSy5nsetdV`JdtCehW!n4Umu?DdokcB7lQ;kX0yk9pARM<9J24U^eq4vjMPtP1ffA}WpXa_)ECZX7zKuQimdZSE)06VIX&S1 z<6TEe4k+#n;;zgD>+1?u3p2Wsm-{y`1NK$&A0_gX-jQqhxWTiifnKY{As$0 zQb58jIk^Rn38*wu4xNh;-uAJ7Sa4GU(lW1waUf3_Ni>8b1A0U*x?<)6Rtr2Vnl`q5 zN!C2>Q=1%znu}Ka5XS>8vOk4%vns9aG=!Y)6)O z4!W|+d**q7hD5~8hlRH_+p~$!*zjtckztMGvbNrVD<$#EN-TKo=ia)`)WIf$3W9f9 zV;24ZA7mJE1J=f-e!JiGcQ%S+*=JZK;KsU}e==H^UjHd{SS3v{hKDtS2aLg1ROyEW zUFbZK3`fT9TYtCO)#*Y&=mOJbIM9@xDIhCuxJ=W@yw82%tGag27pwq&?F01wkhC8=#QSYNv-f)vTol5sYRnlPe|9f4v#|F zSC*!hy;+RKh}Iv=-^BM1Z$qYEe|J1*-r{?QO-fYdMc6hOpyi8onlw)qn%Kgl`>(vHIaH032OB`@uHZUMV^>es4Ad_~ol0ZXK4rIsSt1ozboLe(B5sk-D2# z0Vg#R0X{8;JR(ADtE#=pBCcU^k7(!p!sM(h8W6-q-d1Z`pBfTSdQj5Txuj)qj6y^b8vchIOh9RxCH#G$*Nydv^*Q)&pRPS zQ?-39KkI3LUfvSB>4ngI+|%XOpVq79gtSTHz&A*VvS?GVAoq#7ZC72g#~Yn`x65?K zBb*M-!!vK8QRW+;uk+!(PvgsdO)fJT1_#+}W%Z9R)f9Btk9h|~9TxHYU+ImP?^khp z@mC{+@Xz_Iq-_+QcOW2mOR;%=os4>CInaN{%Uv9Db6oZS_>Pmh+X0^|A*O&wAD}be zUm(2pz*kr~EMzQVAW6&EpPQyxhF6*Dn$r5?Sy31O!jze7dBzNw*^pIh|NdM1`n23`{jHAas(^f{a%N4Na_q)d>B@i&3ol zANB*kv@L^cDEGcBP2+yut2HdklP18b)(iuX*VPQa>R+MAfRGFE?ZL$!?d+d@0MO^H zz+Yw281j2YhJCCYTtbk~XzV_AT5I2;IXSYhRCVDf@);MOiyeM{dIK`VfAI3BQ>$88 z{XwpDx@kaIG8u#f)c3{BPam(IWo`a|I6Ho_hBrz5_WiFxwIHYPu=V)<9B@j1G+#iv$(?ka!uGtJX*x)RrIRUHOHhP-cQIeVkdL$*nXMJ-gy zcgRh|qW++KCsRyY9u;1qM^LFw1yZaAle1tQmx^#tz)Takr=cH570kmi5sdn&`@s4E z7<_XF6mE}jrP1c(9iuk@k`&WEsg|ZlN0H*|p&X_KQ8Hx!5@vpR|WNI}?3FNOtZp1x;`2%D*U=-D-Uh8etz<}DI zDTwb%%^kYG$^E(i3ihP^^5QWA_Ia2Xc=!5wxOIK$b}Xj`+k%dWd|K?60#GJ+m>G^X zNOZq}V!QWU`fc~p{c5?PHc$s2d?eQd?&g$Y%a&J}SZ&q#>9Os3w$lM@{YA1uu$})Z z^PMsa64JhxKnVd@-`5|^siqnz zRuy|-1D@{=BPB0V*MQb2Jz5DhT*kULD)5Abm+{W?r15hh=h z*Up%<(P6kS60c9oXArOT*x_R#&{o0wNYr&VJVb? znI$O%stxu0qCf~!716p73*Dp9StCniR%6R{L`Asb+Jn8SxwAs4A{7&hDh5@n#>Vz2 z_cw`>9Ingj41RxqFZ?N)^B<+wa!{$OJH9%HJ#fMe&@jSq{JXD1HNQCK%5eAE@|(in zF|KK9#!Cg&ikas|42C*M82M1GPfKNwJ8Xx3Bp|Z%nnYyr;U&B8xc8E=r4D9meC6%mf6Cz zI+esCw*oR>LT>Bq^XNfEAAZ&7Ux$6W7$esxwKZ31h)9@cbl;S1Ptg^hYT6q7sF`Qp zP6waASg-3MS(O$G!xjx=z;lcHWfo~)R$nG4hTkS2!+k4RbMBjD5+_mB(QrBJ?4rVq8${C$7KRq`2f`L^AZ)fIRMrVl zt)RtrJS*BL%!D7T^WX#@YuvYxh zLj88ix8VeWL2Zn?veYHC!YiEGZ`V-ODw?xmsS8022I?@?pXa^r>N_vCj1qJ+M9@7e zolKl-p@K{qoYY~9Zr=DPj2LO~!3%Aw75F(P!^tW0E97P51lk7vJh?O9fsfT20d`tO z75^BUUHe6am~qn2xzC3MBk4AN09KGh9oi6UT$k1&RD&~Bs(vuEK{_MlfO(u;=j`p4 ztz_q!uA%A_e+7nO+#4Z&pTwTWJHXdK*m9BiF>~tQ(g=RgPgf~bq)jV{<^r~%NYw>l z&iK$GBYTO4`*7@g$x%9t`%;KzP;vFU@AAAUp_WNj+09~JC=A{+Zh`PKPDK>^tBBZ} z>ejRcI~F-yJkV(2mIYX*8?`j!17PeAU=6Y6dW0}l4vW{lw7B3R6TD1q{)5ss^@YBn zM*8#i^X`)*G2ruFyXOPnD(L&0pYY|ub8Pr3jgoyIOE6HG=XA|8MrqZbbQ6eIB+N51 zswgbaj^}diN+h2oj%%u{U%8p4!XunIQXVYGtF|jfYSo{XB$Ej6q>2rh2K?&7_4R3Z zy1O9e_d*Gqd{$_CL|J<}C>iM(`+EQ{iF>ylYjJKxrX26pvYxOcF19d@wUdVLkJid<_s`$w+-hthV;Qo?R>NK> zIC}nVDw3eh(ZmhpAfE~bAXTxnA{foG$e#cVD<1dijhIMN`_O-&3{H~1`~z3Q^V{=+ zqw6CCKDk{?pmz|cc=-ww0|>QWX~zMAT*fyu=P|_VZlGNBU1ETm|BqJUpvKQ(^~?yX z*rL9d{@}ggoN#U8y>mpkb)L%u`@=J|Jb|8EM6!-E|5{Fmf+I>0jmB0z&>X~>k4?RE z1iC_q3>)qW6;5p@H!&eGC>#}>OU)p0}%;*3~^?rd~C5M z2CLryIgwC%gyL(Ux^Ie-W*+Xk@Q<%nsz}MOF-hD!-#Yl>b z0fQi-i;fr^#6ET|H>$2$x|srtc3=_%Q_P(kIK$D3Y66W7Al;1D05DjE4QKxSpO0*| zJ0m^^MUHzqKcP7byO*vF!_nf^I%#}e?`d#7=;hj~nBE9g1bb9V>O1&j=&fJ<{t?{X z{z!SM4At}$$fHPEodWnv`gSl)tWFtNz?cK*#xx>rD?JOf&7yZ@u=*&d>%~0iackWu zilU0ar5+Cqv2xtoaUirt1UGjtF4O$Or!k|uN_|;AKjeOuX{0JhbxaA{5%5>%k8R!Egl0Cv+8#ImM24F6<@StMJ8HKig3_iqlRidHix z-sq>V!UFZ=@82kd%MoYabgDEdE_7%o4|!!b0 zYoaDxqaoOnvw0!~7G}R3mw`X)a;JW9DEJujk^HuB%Q=@@!U!{}0XkG{qxK{LhVW#7 z2D&m8u$UkwObmTCO^Yd6T>6=(h$be09Qh_x8S>*Nk!V*8^mc97I*$O+ALtOoG-wsg z{r0$pTMBxR6IW49=ta2L)|4|=Nkc~j)l)WQt=dhSxHdL-jUOCIZigW9PS4jcla-cV zeQD|qNfmD{{WJ)M9%FA0H`&h?xGP127(0XCZnHDeq!oG+FX0;uTdd{itkP#!+-tR1 zgRU=ck@_j;p_GAQtQaqEf zBK!#i0cCkN7$dw7YTYVk&PS25qF{~I!>{2KJDjc=5#f<(v+y#Bim<{-f!47Cs)`Zk_E`4`(M9%|DPU``M}cKf(q{le%npzXQU* zj0|VIP@U9T4fg|PIU?hat1a<5p#Ea)1^r}f@Aa{{^$JqY9MRSe!sM29W6PSeXppTk zcmVlNOQDInv`y3@{Z#ji$B8}a528szNy9B!^O!=|kJpjp*Du!0sYsTrzj(Yi>*wRu zsrJ;%T3EV6874)dhm0Z=y_PF z+Y_78&!W;|+`OlX#pg9(0g{k%h%c7FH=YXQGs5I%Oh8$Vc!`J zGk(tlCiQ1BnWluEhvU#&XzSsXvP;aIMT?00v)ya|4Y$M_k%z{gJPoQZ*^Xm=@<7SH zTgPE9@apjJ<4xdOwHd(r3FNiL6}*idz>}%80%A?Td!zPh8>v=HEDE=z@6{DVm7v(G z94N|+V+00|8zuyi5uVk*y?<-%bORKlmdK}$u$sipy%mkg55+;iH6Trs=)iJ>F2l zl@KaD88Iz4Ce&_G*PM~v?Yt3-$`I{?Bo`5r&ao6%7@Lb@KDHEtB(qRGZ<6ZSnFa47 zafDeV&zGH&;fB^WFsP%#>l>-N4sv17&N6a%4bXa>hB&Go>>D-RRpMb-GS6&jS$_qs z46(AIiDa$Z21E!82N5+Op3MMka~)p;h!JFKMhgu0H;$AvHxsMjduqm5ScscnW3&83Bdzo}QO|7zxB+-YaMd#>& z!87^(aJb1EICWqaUN(T(eCHgLjj! z#krT&=nnFX&zS|IZE__Tmk=?G{<#TpaKD1zWAt)%LhJ4O1o5sq}7UleX*mQ4JzU+3%rhl`CL5NMV$(MZ83I~fuCUMB>-3Cv8nBPCC5=7lrqURcH ziYbq@YFN zAqTXaI^J@DX_VU4pF74R7@Vd~ZRk5oz!q{~{qo*94uy!w6<^W1tS&{Cj~@?quwD}Z z%J}i;tI&aY<~;4=sRF9`f^U756orVL&i4n4N!f06G0Y@0-5-?0-~*RXOlRYB@_Lg( zy%oEg0n$%gm*y&Kng@6$91_neDd*F%OY~! zN}7)2kQXluWko%(4X}Oz2;%ruIDseg!J00a1-MO_6K;VrTn}4`a>Whj;)<=ru}rvP z&X!U`?H~j|p6uf9Tqn@0gvnvB3t;6ID~T@h${K>gVx+ZzDHfBkcqg%XnLGAfS@0*FGS zmv3jkgy2=#Jsyq>xwdT*2dyuzanD>E0ob8H-omk@m2Vm6cu0=9#ymJcxb1k#6Co)W zHtA%v&8T7l_7y^Ecsri!JhYRZhVCt_C9-o7cV+Yhdee;zNf4Kj2`0~ULxaz}%Ehj4 zvKv^sSbzlg?Qrn9eG$~6!R}k*#%*swLi5^@MAy@?K^gk;KGu*FQ&>MR>{$~n;QLMt z4+|*+b6QnhA^SCq=MS5c>N;&cm)iYO`>Rd)%Gn{Z@kAh6iA|k=PIbBWEz~oQ)*D!< zo^G8<7+Sf?uK!+hm@$m?i*x$u<~Oa`oj34I7N5(1a7U85%9n4>kpV;I}3;05o<< zh=XV3dn!f-V+~;okk?mz&sz-U+43_~HraGkijEZww9#h=$z-Ht5K_uSH_|u$;^qSv zX?UBRCs>IKUJ?s@GEqJ8<`Icu7msN*6x{i7BV&NEzMf~c&XvcVOP~^Cc)~)_vjLna z(@ZS_WZYpjY?2JAc+A zI-_$sFV^-!dc}H+d>ptDfP^(g`Y*WO#noNM%H~9s3W#C2v@+Xf`Q zC*5cPCcRZSZlDsKVxa!=f&C#v8hlx*&I~ongT-sF1LvAiUFW?2l>qVi?5ertWUtVH zkhxJ^Q!FZHi6Q#G;F78)_8%L><1}@BEH565O-JH4e-95JNu4%5g^}P9Vlcz@;+I<}; zu{my?LJO60@xyRM{USOU>Ki8sciM$~%(BU|#l;-8u?&8;fI0fKyn6E?ke+4{+O>@| z$lSZnTr((^5(`=6QiG6z!_Y=Sb2ue6CLNQONt(ebR<6+acetTLyDN!SL8hJ&JD7Zi z?GwXsc%$}qnB(C$>~S=~VgZ`@)Ac>?$mb;R*@+AGA%#^1tZQ#pQxR)9Qt5Tmp>^vI zSdJo1tV-I;*1mi2JilmeVLB^#M}=r5_)j95aGSSK^z9o*?ciLt(1Y#z z433$;6^(lB^qPr_rnmp^tkfvtOJ-K?9TnaO;tp@T?K)GT){ zxT<#xg}s$JlwgH@Y0Pbh#$e@!Jf)whxBjQ{#AjZCwI1n|*4*53zuRc?{a6bwymQy? z{8ySD1is=&tSAWmPCZQ?$}MwEVt3^pZ?Fh3KZBUiN^NfHg8;rc?%#3@HDd z+tEeNnjKJuFuJ;0(h}~a7#CuhFu{NAtdUOA`f6Y|*YZ|`dhT0IM8W+xnI#S-h4l+p zk1nm`!0Z_?yxGzK%QctZHe&o~c#$AXcD%^{6}On%w(AJNEX3q7nnx_wb8b&U8()`E zIdV+yb^fHhpT^x}x#BWTRAvDBaiG7^Hbx5lFs+ z0jDM35E5J_V#VspDhZdGug9n<>)A=((vj|ph%ks+T1 z9K9ndB8@-w-{`iYMb)MMMo9NlTwGeWw!Z$>w@m({gcT5`xg(?L@U&^h>p;*rHT&U; zf8sHm>ufyDZ=TG+Pm8dvCsjV+YUGlzLYcvqtTUaXo`=x<)j}aI5kaJoYBlX!X3i47 zRgXNu@wEi`nH=Fjw0U)oRMW9820ria75Dud`!cHXzor7Bf`6^Q!Ky-|LU|*RBz_MY`+&-Q=m!(Ov!FqKF!{(``CFy6qE!T9P{0Txf7OtbG$iBUODP zN8ddhcYjflxAeLBr6v(X=k{WN2o4MB zc$nKb`UPNyes+sp%(x{x`anj4pf*kd`POGjg+JD}-c>IoDf4p4pofYSRAOVZDWVym zce-msCFY$xOi$&H?gG}0wXx5d^%;u1N~mWW9CLf<2RjhXS*y;ROWD8hDH#q_n}^09 zFwcCp^U~hb)rgx?z!Xvhfm&^2RBu|Kg~HYAm&lmlnP-1ltcaZA&0$@{i8d(7PFMZi zem<0nj#Jms&TD!o9#+zLx$u!g?B9ZU=4uvhgL$m<*dMY_4^BP0{xI0o7U<4{=8^J& zu8Sy}|91G7&op5MGcF`DGDYC%HaJQe=ApmzH$Kv7Y-}41X$*tvX&ug)`&wZ2`-{T=lHQIF!0Lkcd_|ruxmk=;+!rrOjO>zsSF34 zd`U+eTzJ#{o#86p?QmY;qu&+T(B1O6URq<$%(y!orw|h^lujflLuBXf!L#)n`zQvw zx5*^=3#=PPz4WReWQY|x5(0s$?qwN!@jqV3lY8yg-}LRe{ok*w)$br9*p$_@H3M9O zc~LA#`ERROI-6Wk_TU9bzK^gBx#U95(7_K*Q+5s~`<=y!4s>AB`I|5<+M^^!{sHm3 z^C;cyvgFR*SuarN6w*t9H+K%Rty-Z4Co}lzrQHuhgJVVuN}-`5?EJ#-<#yMSc@}wt zc?0IQl*!b=xorbTSsVTI%3ZE?9b zV2a?dWeyH{=Hbi4jB#o?ikWEc`#rPWCnVGh|C|37+A*$i;B&0-8~P~&J0-1m&ZYz5 zr6t>?hm3acW=UmC)nbxr@VZ}8C$YA*8s{JD7ntHdx);TK%ni-dJ zhTV_(Tc!(AUV!L!v2~*KXb3MzH)_QO^&w$8ovjBOsil%{Jc4@2;pld5k$~TgLd3*z zu0E`PSJG=(1{m^{DgbFJMZ+!Sy%Cuy1HC+U<*iG98me>tdcSrePIbtV`*uw7nIBAo zJN)je7!96B6!k5nH&0{)!yAvKrZAO!Mp+_9jdr;6>oFP5iHD6eZ3*k0^P0AMa>=$$ zildZ#OUfMSx43EIl<6U1 zk0OSDO}ooqHZ@6H93Czky1uHSiblRl6N!I8{M9bcBTj_ND|xq$jS!RJxA(7%AB3|3Rf7@HW+in z)yzKeP{y3vRpfR^i=WI2ZxY_G8hJvrTS)%sL_nAo4OASSzMeST9ab#!O~(#e_N!g;~@`9o|O$DL#h+1Y5{wK z(>X$jve2D(cNdJiO|PpQOgC0S-*+R;_d<#cSXs^FLt9{d2WyEDrH`s?F z%O>Tb%u4e*8!zk`l%fUyjccN4MBN^FOl_U*%{kuCI5m=6W^lac2HIX(V{D@a#W4co z01xub73T7m|DDwZaB4frNH^;<`4T1kGq|v3k5jXb8>INco{C=FQNi-jKiBhl|J5%m zxJV9J$=O*qr*SI2b-qvPMdb=dz9*(d*xo`?mSEG3xh%1mzJt-*&QOy^`yPUNWcVCs zvYY{)|AIzv-J#Afcp;EkvBi?)(pvqd#OQDPQxHZsQ`zE1Q@&2OTuWO!2DlxkimTC( zBong8a<@3SJ}`%{lG|cfi)w{mK&E{4`H4cNE;Z7C^TOt2Ts8Pc60-#BO>M$dL#j=4 zDOLo!@OM{V+K7%xVt)G1g_dtnR>n|R7|g^j5X2MORsC>f2lW4T`r$J^$r)kBoQp0!Sj%4RR*UE z*4m9-q;8^TBUV8l@jKwx^_eMfFy~DmUamu0cq`xs@AD{?K6*o84NBOstmnmn_SpS? ziN%qO8jRV{5NZ7+DuL^nZMu@YjJ-Vn1P25A{5?Ei_ql?{+ZJ6%8GPBSFLBNHCk{zT04(CMpU+;z2OJ4J6{7T&rth%GZbt*@rGX}h_Odj?Tk{ktB@oxgJt;vQ!$8TjJ=CBK8_ zp*qZK??Q&e)r;7}-kx0|=wS3RQLrLb3<^SeZ4G2QfpZ-wG)fNJH&#y%MxWb7Yb)AkF+rSjtZX*uNoFqAm1U*U08DfQ= z;`@VLbf&7iH6fDS$&wwb_SPKFfEV_)5|m|=ZD5evOqF%#%{(sKW1xWCpg})}l`wp=awS9vldqR^}cCjoG-D)UD4ze9M|)*;Q356lkHRwG}82jbE0J22qFRMV(zpO4U3m zD!Q7q9%hs~^3_B?S&ZpBT!6N4oO@L?%Jtn)+!~^HN_|C_AZvgqrtW1DG=Yh;cf+3CsP3>})N?aTlV zc-FSr@y{@QcWz!z*#?hI1g^{PYHbX8ru}SMB7$F-R*K_#nPMUZw%FHmDbgFnM=HM- zDH7$Qg(UFI6b)!x5R%&I80y=Wr-XDijyK69gRzW`Qz@<&!iClSD{}HmYGQPl4o8fK zpK3X3YKYPdS8}N=Yvz{xA?ZJMt4*6{=(J_tCmtJ(BS`&If~o1}7^7^22W@wAF{D3QTfX;`=flyTKj#-Pb;Hd?T`=x;e|LVl z*gGY$68avi1A*dZC$wUX3jP)uRf5Z-%K%;7JT}65Cx_d>E6+JyF+K`RD_)O@^}<5E zv0Fz2S67artUBi5ZF3c{N`Y51HYt=>INF3XY4p6MSAU&as?5-%_O67<@%9}3 zNV-O}Bc>hSwJ=f5fZXXX^<@m2lZ%@t`zG~phBesI_3HJtt)u2w*$-?9 z@ZU{RMEQ=Kd!H8rbu;(&7oW#PNj=#BAFYIxSph^-k3$8wjqDtB+n7@-IH>V~a@z;O zT=u4%YtiE-r2yaLT62;w8b5g(b~R^v1sNsbKs>}LdF!%x%-T6>9Fql^&qkNWMypA|pB3HhFpC`hO44QH2po^G!-P#L#k#~Q-Q>03?p zL*cDih~F=s5{9Ndr}Y&&yC&D^Ubg=)$kEOFFxw?Ce9xF@TKK|%g8qT8^dV69GTl;R znXu+DMb^00+c)fM0uwX0Zj7FkK9*RNVB_#M)kvSI_~H*{*4_P))K%H%)RGMzQP&m+ z`|}EB)8aA?^~w^oT^FIq*gE61561Jj&mO+cj4bIXjLyg0pZVLy+fCE2E4dK3jKzHavA$ zJeP!_=Gso=2?A><5ksu5ESM3zZuBCykKE214P*yhUh2-lyh2Hi*6}3b%Gs)r;N+J* zYc=>>omN@B!03$(g|kyv;baY%kl=z-#&K1z7phDiJn)dcxbWmb;*uSDc=^Ua;INQ+ zD+%<64i_>aAbbLEjf&y-d(bPOf6|oVnHQ|SqAJ_Y5mvUgYY#)2xW85@Y;9YXp`#CI zYJNKs$)FS^8K9IUmB1YxBM|B=rQH}#m*LBnxMP_XH@~iJshM=0`GO9&1>?q(7ilH` z9bb=ML)9reVuDNdr8;oTy~~(PqIc0zRfVW=$54sXB8w6>wz7bp-ZD6Y(kH%f&Ufk? zwwS~GxryujkHko&AoTO${0c5xE;@NCvfJCQ$yBm|0>WMqIS{Sj<=MTv4uiaYW21&u zg&jNB$YJ@{r@F(5dj{27Pa33KuxTMl!TUkMk3SM+AxJ05vST}C8%;Iu^^n8sYdtiU zXXvaL$2y#Zu_E&h1!02%e$LsGg1xC>b<`K<`2={5_@o;cykL#OB2pSwe$bS+~Rb&ma%=rl4Lra}7yw^KBK@P<$DO z6(Yq zU-oBkY+_C-o*Ugj|zJB7Y5><#fxuiwAhPN z@|5j2*4U_(S)JoUd>BkEQCkCz$Em(rt{U74f-oiqThmrt&9g0b?fw&LfSt1d&RA7J zCAhy9YiGP(O}XFqiTTjsMfJ3f!ih2IX23(u5X=8wp7M7{pepF2BQ@b3yQAkaCvKZp zQZeAkHo@|quyR@EK`)*h-LBkW?M~m5uJmu7AcA<*EtbUD5*r)=8B|x_l2k~THCo0V zusH(SKo4js=29Ttuw4L`m2vhwnf&g z*`=bQta*5fi*wnZo7WO_<6$w}B71{BPEGAUi$n5nh{X9iL5x6EkO~RJG7Who7j%hA zbcAHbO(C)};H4~}^H7TbL6#k$6oFRxQ+cl^gY4?aU3Yndp#{`u+82%{oc+lL^|UW$ zB?cE~x`PiNjuz&@vp|O4Fd-8le!@OJ_xdcrq3=%3hDUOh8h@ z@+m1=QS(9hZTCz)pAG{bHm2g<#IuoqAug@zmWNR&N_=!CUqzN;rliLL4oSp+o;eGL ztTW=bgq&06LL-qHl_h%BA*50Gg!M#a!Z1FNdsHZ?RtW!yiv?b!c)R9AWNxO<+l3iYeoW&D6`o z3M|{yeNX5p^Lncjm<8lhni zB z;D-OjV8o_dYqF%4Yomh&8|T@c6d0hc=DnrN#aYfrHY86OxxCm290`7ORZ!L6{0gbF z`PHO&v|T5*e$P8%KR4HBe93jng1lc(P^Ct_i!(|Bo5SoDy^BDI;;-%Oe`i<4nLf*XMsB|0tHpzhcYrrwu}S40|WCWNox=#i1?CN)Nx|3_zqS! z4dlWYk9t$Tk+#V=4mG8KV`yYQ^QA`*jWc@`=g0OLom} zoP%oLpZe$q_1TqbcTMVfvS*U0SBqD*NrWMe{*nj@9P;+Tn0EFuNb5zJG_|Nw_n^4X zc7Z>1aMW6M%x6MKc~h5MRQyQ(9^-IfQ<^5BQAbKN^Kko*PEx-d=T~&_ScTlLYvGdk8|cCnq{&yU3@YdO z_oQRY3Ti8av)UzFP#2Zg6hsWvK}Xr}H;0I{5mRmzLs{taByn9jH5r}lhJH`Au+N*< z;6k3I9qB6b0B&~sHhX|tqUAWm{r;Tp-8DW8EybR#S&EEE)&!x4uZ>)|KP}t)(99(b z&%wzAIfU4k_rJamaX6t%AA!XiOcHX(g2-|%NnMsrHKEgFi^9>g*s5##1s|HF z6ta?`s8*;HQzqqGl9XuCc8Q@*ho50I4^&STLeXSRmmJVcSVPAx*a#VLm`Q7iVlAk< zNzID2Dor)tT>^=nT3rNfr(EFbCnBxt>``%IbK)Kh0$}ykmCt%o^ehA2mS<}4e>`*1 z&AC>8(NPnmC@WOpgi;ex@SytSlC6rdC1n3CVDG!1QQtwcUEa&{Oi1r|+IA-v6L8{?H`Fez<)av-5S5Xz_l~o3O`6>QCX|vp=pR zY%KjW*0xll&$Pg~J#t*;2EXwXK|94jk|AN^wc`jwLL`%!$9G@33Y-ewHx?m(Z}-7s z%Z`MJ2H?i{om)nmRm#h6e&SlX!p%pGP;=A28&edV7931qkwVGvHO2w&D?t%Ou%tWlKcWt$%1d2Yv}J8W`{chh00UI~^l#7o zUzrkiW=H~GB&t(*Tgc(;nonCDmF)`|*I@LA8)J69?8ph0{Dy-%!krU2WRzl4hlXeu zUTPifD;!~Vc(NRi_llymIJxd9v;%9*^PXCI7^3T$lVZ_l3#*wa>!o6EzzVHH3P19!z zhqF7{wZ8Gs?e}CJqMu)l)^k~R8W~k$3`R#|)%-^8^oe-GzUaPqx1au7_0NE-O7-e8 zfEJtGeHmGb87prrNYe0&cerHu<~CuCdfkAilbtkm4{hGYV@>Q2Z2t zOt%b>6~fRLoywGwVXjg9jeqcohIh>xo~#CgOHeTRkA47tn}Sm`lKNub$$>H)ds@H% zG049o90cXCreWxGuCArk^#Kzu7wTi1umVjBC#V|T3xDgzeQx>0_x^VWr=>iB&pkZq z{S2+wlWJjp;&|~mkMOzC>CmgV8>ByuQA4T$H$8mC&?c%;E?X@6(){Z2qMUCo3s34m0ZX!2x7r z(?~d|B6N#-z}VMSI@a}jSfH#D8MS?z2 zViBOk3OE_O`}s{5tBq2e?xqy7kJ9 zyD$V{K&0#)j`-(9PC#1(rXy?`(HrzPwcg6cO5iHDe@IEZ;E05=3XHS`cMRYCY^YQH zccxUf%dS2c;wWiHlF-3-z$G=P>Uqv1zd#=i9IeA~RoYx_+0yKQYp%**;xq!0V7+l1 zTA3}ltf4X(3?FAh2n>Msc3qj1HJLEOd4?kNCpg~Pob0IwWGXZ;Lz=B}(OGPK;b?KN zVi+9Jdb53(QZwEV{qWC5f+DW(7rTU9Vl9~?TSAiSUl8IxCPzb#?6SeifkzUBh>5qC z{8zi!L`zn7wL2f~&Z@HfwwI9R794~*#3y=na(MiAm-#8ysVlZD}X)d6L@nn=C>Y z6N2j*Xt@@-yfCwOgBQY_7CQ)Yyk^NH8ytF7XGf|$&MsD*BX*nGfZ>p3BGaj&q-#h% zIYZZxBjY;BNzvT9Z}kNpgw|=QPbNU8_d%i+lJ3FkO9`*}w=vts*n;jdco;vFA;#)k z3H>|6bkRrhL9jnJAv;YLXKVGFeN<|ogk|osK)3gPqe-3l8yRH|5>v;6hc7SiIpX3=Igz}{b%cCjrCQ!&!8;-m_24wJhDj4=9-H= zeB*V-m28vx=JJ@TlB@-_u|QX6c_YI*F?c`RXIeN3-`x#~5%PMmHIw!M%$@AeFwpmd zejF{`vET*yRXi!$EwXUF$=`g;l!1ghtzgvm=!(;qSw$1wu$PhJtaZ{|0jK&A=0{Zd z^)s9s>)M~x%g$%X#tzQTuWw>4Xtpq&2|hlQB^qAMEySnfmP_K-{>7}TH%u5HUzv5A zyY>MnkH{0>^Yp1;;MAI4=pJRb8z~rfXJ<@PSb=y;XUMBRaAx;PoIxPx5%~$ly6t=# zMlG)h*4QKu)2KZ9gXy>Ql8ur%iz{Mt_&MK34x{oe%qvgH2JqDw_{=?I3U#$g8R3I1 z5(={gKh_o;^>?tJZz4AchpDAhO{)Lg61#Ds*R8lE-y1a;8K&9cc^3~B?-l6ibpq8` z@GhBFBO*3qiM4g-8(Ut4<#SRGdihk!L-qj=)wal81HP7O)yKFsWy~&9aI$S#fn`et zF~R-U4t?t2K~Trx>7}*}@WE#E)o=V3LZB05x}$3;j0NyuV1(Ng|Ickm%_ZzFt{D%G zG?|1wK-Kb(Y0|FAcpakj@Mj%kF5!~Ih*8}ETw$5|XzI%BH*ioSh#cq|z|N0P^s<~U zuQ`k&W#qrNf*Lj$#-@wAo|hrtE4{tV5pG9b`h4u~KQGO`oT82H%Zdi1hjWI8q+KS2 zbu0zviT}$pr656cq2}TIC?V@{S~J3-K54QOxA^&uHJmZk?W()+9KM*XE`oICB;XX` zUjnEX)fcKm3+9w^rKf^P;u^2KGhnnX$`@_B%Bnt`g?N((dW`5+!+ib{ciD>8))la8 zi%gbsh9zL`TRCm~){oruy$JEIoP%W}jj8v6w?}1Xc1GI_CxoADd!l!lovaDp8~@;M zT;_YPHQwbp;M$)N0dhheq%&nm_@R}3&z1dtdikGik-3~=&93S^=M4*|4vifq|EVv{ zup#}Vz-R{VMOSUZhELiH{neB{Zy+e(BzQ%8(&cDlt8-b-6cS2kfND42a-+uCC* z3K-nu*x5{&p&xC>@(oNXmYi%`%&y+nMQ`TYk)6Rjmtc8rWE72_2XrBLu|aG=ooxNV zH0h!+SZ>^*@kHeH*CB@252c@zA{l!jDgkx1hzAPMYBeSD$~-Jd+TIRmCwxNX#R@tU z4E$8Qp6zvIPK8$!g8C)OuP#7wyu=^yas_#Tn!HMl>}nTElw2P1A|MSR2yQaqZzk@F zr)`%8$`r52>v=T^1|Dj#^2D_(Y#H%D;$MhLM3FODBjou1RSQ62bb7ZEj zL|au%oB5Dv4{UIC{`7mzIdI`FIg?_1*bAP>mtE2Q{`U$&AI`CsEzml=Q=>&C^qt~^ zcq`Lf9Hq3I$X3P+g&=MY`m|+-`DqEr(eZI~Pns36?r_JmLQRHzI|O!(+QnBI0%a2W zUruMre}5gqX@snP!&eQ+p76*4mSzM<-K;_)DOsYTl{MG~YEgBtPw>V+G$X^`e zzc9&u7jt+xb!^o#TuJzI8z z4y!6^!TN3qleg&M=IL-*nv;KYe145CZ|`U)J_q`r?j+HXiw$A(SB=b1JjpffLWa`z z(y2sQm|Jp@OH(P6vp8%sy+nuvH*1;&-YnRHjD1#fw9!{w@L_0dMGjd{X7a1_%mbQ_ zI{)2#>@_yUxS{D*KA+x3%U#asa8VKqok6KLv1$5aX>#p$p(H}wRC2bnP zci~3A^lDa%HAS6BhS!!)LD^$c_QXS&{oxo6(aR<536;gTz>s2B1}XVr)hyZ1Z;m~VJi^vfb~8kJdf3DNNW$Mli7EGevEH7JB4gUcal zO2r0^T7SZQ#R*O=j#kFjwT=2tp7k>bwCI||!nkCS`Nv)4Z)0PO6@eCR)=Yw=(@SJQ z!xmbI;M_nMT~*lL_A7^u5-+G{ms5_OUgFbB{^kyK;Vt6*)HZKlWu@}o@x>cTmyf>y z;S^C$jiklSm5+YQ)?z8jSm*}+!H z=(faW-6zfNy8b=eivZNULC9h%id2+^y3~zqS@+7%Z&JVE1&%Tk)Kp=@wgv6>1Il(9 zY;UP>v&q$K!KgOLvVI8dLqam=b8Bgtk&L^pkj3B2=L+Wv*o=$|_&Lc#%6W~*c8#vP zk4%ST{V9XTsqt=!b?7{>@~c2M+N3_5{KcnX(=nPH&tOHpMKBTJS_GI|Ube%g%8yLOCilE8cL;SDxoJEtFwm zn?vRM-EoG?&_Xom1}{rIg)2KizxvO@fr$1RBVSvK@akY~4jIn|xeUQI(`>v6b>Nan ze6Qef=uxJE>oDur7L(8h}mWaSb^1PMa*kD`E>|3aBeEF1R zOxK4vIgFw8ul1um&bAIbrN!)G7X8LL%b@8A)QkHudvGC)aO}<=d$#f#Rpa4I{l(!; z`$(W9FQ?ps{4($!yaSTJyv$*skn0z(Ee}nS(_k&dt&_5p@C`vUKs1P?7C6C7-I%0) zA8^^Un$n81w+*lY&6(&D&|)!uucVwa2YPEU3uJQOAETra*yY8vNS&ncCo*XYT8mu! zYAeL-X7{l%FBj{zfMz^0y|K`={PNuwc6h=sv^4$PEGlN`o!rXf z5?*f4*<5oY#VJ%Ak`5i03ZbH9DrNOJQey|0uP0O^HulBRXGl(@?*v_-vVb%IrxoVvz-h1hL+rY~qq&l42p-iuE4tZc zJiQn1gGji~4sxR%zc3Tir*8C+mzh`12dRxRn%~=z&)<_j`$p}}s5|rOTncV%He#;z zo>*%fkYTI4k$4ZD=%05In0nM=zD{Cj!3_yB4h;c4CujI&))Xr~GN2M3Uo;`%K%#WQ zQNnbhnfn2+8d)=idNb2j_i-`1Z?>s=x~5mBIpKQ8Ua zbfwqYp6U5$6L&|`LXk;rFPv?#lEq12H7Ta$bnSO5;=#y`er&GFFMXYZHfRLojAzs{ zWjK`ve8h6|iuXLTrmvA}{$4jmd#Mn$HA<_hY_p8t)4=t8VX&)s^3%A&)<^L4Eg$!WiacyvrT!K-;al2S{BD@y8Bla|J7p zF*p#T`D3YbK`r|$M@M9@)JglAeB3sE^T3FdWqUKv=OA<&w3YV{ylzkIZ8aJ@V0KGn z6CU=tgdcmWP_g7s2T!KujH8W3AZRLU8}ApJi3O&{xEfP=ud@P6f0M&soA>r~rqg(4*h)BOqE*|VyO?Ouy zTE#~8$gq`I>*;k+uKMGCW1(J5XH_mI3jx}rS<1y25S0PtpRA!T-?n8$h-5%h4vE($ z6ERJkJ@9^$xhhhpw@LdbKCa%jjbBxi-vCD+TA6s>A@j-BDF$XV!47Ut0%R6#8cXXX zm`GT9JZ-dJ?WXvB<`?a-!&B%yWe6mgqsT}ea%O;bw{8R#@d*ZF0@{y=@1AP>S>uA( zjVBYS96=C1q3DO%ZaF~+=%+-YUGSCEUbg+tw~a_G;{9;Z)^We(byylZbx z61xjoOc(;^MlkBW{aaF`+2DTCAuBsUUDn+`>>pgSGIXlIC}0fuXQ-`3mbTc!fAO#E z{TY#?+h%t#Y@L745b?`l>Z%qPuD_;j8xc7Qa%q-Iq#Vy-Xv8e+%SzT@+#(>C-X516|0ygRdhV($M}>!9~lAB^ulX|B#ODS5Y9a9a8D9nJ_9 z{);tOm@c`ls`T9C>b?>7+gvl5Dm(ZXdPur!DkWe5vo)=xl;Gy-+!5;=Ivk|VSn4|J zZQ5I1VBO98ES@mVv;$Fpy#iqx1hO4HaOu4iYEZt=)XWjzMBGtX)<(L2J@i1n;i{nS zFFal)ZW52$Id_E333Ym?P}=%N-FN zmKfyWtO$vyg+hiCu8c{$j)0$fcH4lnH5cE=x>4P@0xpgcLNtl)Gvh?7x96})Au^V# z8fS(g56+#_O9fyLZaabqpc7wNRWiEfuyM}Sb$b!ZaK%QJnfINejXHIcI>_u#yj*pw5GmG;sCuCA z>NBBTp7IQK_yR>dD_Qlq+`jXV?YsmSg^;OV61be}|!1 zZwALLKe;mH9qu(5F0__!Q%Ak4`{mslYeJIi~GZ}}sp28sPhmS*3yz#KDVG4R zXEk~#5Cn25E}pm_c0b2HkT1qihOet?=PZ&T(V_RkMg${V1aufGEe4deWscXhyIb+J zl)@_Cxv>wl!bL6XR#*POg6UP*^p_pzN5~b|FwPFG%DCF_`5?%wjS1Y~wu^m^0}~@g zxnV-F;%tk)8tK4G0!VXnJ(U7wCJ#?g`DL7}Fr=<^1AV4aKwG*rqn7_q#t(6WUtw45 z#Gx&sgrJTafw2XSrmsu!289KxUS!oVPv4T&RbYY zFRS*u;iutRY^ZCr^4uKs7tIAd_OE?eJg?nsH>w7gc$n|Me4N#=qt&{t&wL}5P4)FK z6Tf$|_=71Vk$4vTu}W0)LB&)}^m0zpO+BLW&yew$w^)oE~o zh9*V^`k8eHsz;hOyk50fgB2YW>v{7E5o;yHO3#kD>)VBQk^sPoc$))-fcL|N56e>s ztGM202Nif!7(qQP_ab^RRl@#=LS0jk3w!T(O~8y5^c#JlZ)4$BaK(nef@h?MS9yO!5RzUN}=beB+shtkHm%=Lzd3OLh#FtJY3 zcK1EujUwxEJ2po6=DQ@-Ybfv>f=3cikjlz7nT)E=-rmhjYj@35du1?p&bq)h5~4hf^thSsohX^eKWDQEpiMcyizy{>pMCyz zK`s$2YaHm6E=^S;u_Bj(->bh3JI}^S9&e-ef#)NPi<6}LT7KdE-(+p@_e77}eYpi0 zrNuTh$S~CZvjCJpa;(uJV}AO@^P8VLjeF=OA{8VRcM7F(V1^hC%ma{Ay%ArxvUQ%K>D@_T*!A?4 zxkuBDl+uOMH$5p(5(T!2o&xRlGhl&Hz3f21X<0FwIBB-Rsaa*x*bpy4rPMMj;ANsp z&~;&eIe%9U=erj&I7J4Kr9+-)>6ipVTu%ro%DGGdC$LnXClvk9{x&?HS>UpA)hX9S z!b8*xrMqHS_pIQds*VY-J5XoxN@3f_o(@!BQ#XEZPt9@$3WgTb z3ds(#K}B*wsnx8K>MP37GY||unQC{oMZU?3dT0tgkThEMofK_0@$n0>?v-EgZ^)W- z>s4w*S`Z1qGdEPixZ79&aIR-F%B|&00y3w;=U==43IRl&b@ZB6KC1XJsmGvx49-^A zd8CkN4SGmBr1JEmh?)%Y(4q)*MAeK~@6~tUv=nqrr~Q*HeblrScE*L7T4F7Fs!*x& zE3;`Rj6rF70A4K8ZczCM!X9XpnjY7*5zPa4$6vj|m_9}r$68Z~!^*BV!s`>&O~FOQ z5pbtIgiRY4Pnsw#eU95miCZ10I~Pb*t}fepXI5EYgK?m*(ImQ4ugnKDmz)Vi4?ufM&d4nt5NE&hu#9Ir0`Hz zDTgTkQDUz2-2w2l_*&|EjB??n!1g0RfmXb#Y0I7Ww?wak5jo3Uu4}XMS8D#TzC(j1 z)@_mKv|jpnw6k+#DT*|=%el#gnHL3SMJa8@BxcpTtqQ3Ml;p%%W|!c`bXb5^>Lu_F zGyE@6FmEO0d`~C}$^PZX#t?Vbd|qF-%7#rFc+_})Zh1g_oN6cXICyUp{gz8!^6Ik3 zMFfLn{9?>iQsq%OX#F%3O;kwMD~$GyH^I^f`_I<>hR+@UyPQo%(r=3&KWPfPb$`Td zE?xhFo0!dMBWjb7ZY#cfGn#P;^Vn_^#vkNj|3@G0OTCN1gcZ2$mY47JWckHcagFY* zRo|%|eErX{*9Ay5Zj=m(U|PlM_W0n}nzbHr5iL>>y!CBj&`&yDjWsiX)0J}q$P(Di zR%XvH+uSkP!?(~+BY6(K!KRutfTXX*XfK?c*410sh~e;uxK303jc_TV4Y9Vfn5tDq zxO*|~OQ;F3Yh$(!4scXw*_O-p>ud}^FhTNQ(!UgXA{(Q(JnOrhA%rK15$-j;$`wWp%2HW(?xyBya$15F@*X6>jDGLpDn{K=a5U z^?dty>H5gV`slvbZ_@$7vArD^wG_kI1QbEysp_JWSs$_H7faKL2~WnDR9@;uCGd<{ zj7&FqyG(Qx+52fpDN(+LZ6QhWl%#NL2%T+-H5@$CJRRo34BH}r2>s64{Anc=cN%8v zgcs;U#|0Wwu1v~$MXaoKIM;6imQ%wc8q(UAM#AsQ&F-XOv5O*J= z(Kba!q33b&cr>>#yWXiEXrJnoqf}veu9J`R$rWex2!_g1QSu-%XTf#@a#&6nuu^w? zN0%$_61ts}T*kx&1;-D?k#B~A2(a}Z9Rb&wG0^lLhB&=LshUBBonJlU9mJ3-6u0$pV#0UvoHd+bLHV#xjK-o)#^^ zhU$x^d$v<6SSW`-f@NjpU?A0_C$QAmdBmXW9>Z8aVR+g$y4tBrHa!R^BiWSouwDCM zVO6S(5ll|*?lYU4Yw7+Q;EcqZy|&{WWJma}9kyj=`uDO(P%Q0t$Iw;Ed~HM?@I`aO z2*(Oe%cwX(gYNSp=8x2L+F6mS`3IHXt&8T&(14CWh_L6m*=Sc7jPENM`j|6$ld0i;j0Se)Gh~6G@?M$V@o0Oed8uXNZae zLQ7$QVCaJlr$mLneCs=JrhNxO`l=a~l-a~Y><~o5AYWhiHLj?cQdOAxl7A7Wx5IOc zRXDWS)XWJS;9YHtl;RP|%iNJ00FP950^r}|j!~g&tFnu0i;-I|yts}v=(GXe)avnG}@;7e=1kF@cr(Hd!s$$U>U zA%c0OAorz5p!F!?j$tUXp#CeQ`Z!BmT*0<;4jpp3shiAMwP#*}8hYYxYc-DYF_ILz z(6n^bjbUlLwva-~mEmIml}?J2csegZy;oP~l!#w4tx}V(=e| zV|ceWl+Ie{nBW8Y_fjYTYY9CQ%mRCYZ?6nLgaw`>hgW04@Y_D;Dg$`L|=E270mmZ)eUe zZ2y_=zlK`jStFHLX=m78<@TK}QO9uJ=Pn5-w@UsQ?lYZ&+nN@3LXsP1`STKuD&!g` z1iac}IsiqJN5A0?wDi=mL{SzUf%`WLgymre+?Wjw>3sg8*6&3Aw+!$88dm^OXfq~M z2gnwMOkWGX5@nv}paP3~HM=${&+MSg!K4M1y)xie`Zfbw&goC6iQAU zV7{M5-t`4%DttxH%s08q$btGel)l5oy8X`QHfhO2u|5%ULmvt8n;p{L|A(b0>vqj- zZRIS}@QO1VzKYpOZ${yKQ9U#oOvZwe3g^4|UCLoP2S|ey0Rp%4WAk10%ICfPgD2$d zFuUvJM)3jSV`KAWo&WKkpCg)_fZGyUE}LrfMx@b`f&?O+SLNPV)`bYBdT-jMPC6Uo z6&89u`>nT@(vITD>!?*@Tqcb#dT8lc2@+LvS!DX$@&3fJaY{mf86_yc+5>wL_g_EY z!jozIpvmtyo94je_{y%0v8G)-_wGJkanAr3<);{q6gAId3xc~~pDkgxB~C`OM*gw44%;OB6ZTb< zJM>g`v{^RDwuav3VVCU+etY2_dwUhMzP0*!F>%OL5kc4>^(Jdk@pr333XRmy>6PNl z7$k?TiL4+9Hoh)S52(DG-+#OITwR063V*x0CJaeSQs=V zZuTi7VMpnjlX3@{76)K?LkyGwOvj8E^!cs0_vyv(qI^9*WG*WAl|-MJ|$Ay)kJ|Ij;!$xG=2Bl)m;9) zB8g+HZpHDa9O;?J#8EGE;YH|bZ4?#HD6k{(wPqd)_!gg|qe>GIL2*`DhT%QDoI08M zNl39nemnu5aP#JeYC}z8tl{{XeckPsM|yEJ_+c)J(!;+VD*?SPudNC=!Pvs{#IrHl zDBC!_o7JYmN7|jEgT`jaDF@>bqprqgho-KiILt&tKTm&dpItGS``MDCKY8_MY0_<~ z02Fv`&gx{`t5) zzHuA{?;w8D(*06wH<}-&z24$@!s9GYSs3B3!qZPnIS!Y(_RyWUa`lu6omMAyw}SQL zelYW91VA8b-yA&u>d5>At4ki&ZTi1X99U7nCjGGn;9ldA9|oqisU8LB%@VVvF}QI;0mjxmtMBra+7t48?AC)E9;-=V-FXN1*a^Q1XqJ5baD_ozc zfnPm1i%cc=-?HO9kRE~-mY?Lu-Zf1S*7x*{3`J~?EFwg4?4pH)byF08f#eu7A}Ne;cr&X2OB^6yRf!@XSIh>?dovglIBtpS}4mxPtkW zu!*UT*vD3y8h6Y*ApK>j&|=9Ye)&9}yj+-7dnC#i@3=Nzm%f*n73^;`<}!KsJQw?5 zSvP-e2{^T|k=!vouU^FW{YTT^am8KJU#iHX4(>0rfPs7wH~o9K9LY8G?S(hfAkFnq zhPx4>GpGwVZ#)xX7*--%7v2rdb|>qy6#H&|8<@U4+AN7N4yp6=rQVPgmE6&X-!EFI zN*Vg$ZQ$YoBV>HY+QA{m~sM4XYqfUa_V& zM#JOtV^sz25@O`n$#tRnBh}VyY4^&7fiN)==V(<@VGu)du3M92L7dU?weZHrLA5u% z-+vsK1`qO*5;&3TIe)Q0Px9G3_Y)2z)&{$(tT#SE5`vQF!;1ohTdm6r~`hkwJ#o$XM+ z)t*u&}Hbvo3tCJF<;E7BhnZ$HME1K(%%MEYr#{u^D;fBj(DW~jJ z!3n{rDSxtg&~D$6G>sH!b5f@IoeCXFcW4PZ>xBsXg^-%N7m&bFyl7+lvEJK$ZPmy3 z)tx6@(EED&s(r+0FN2$&L5EJp9?^Gd$+2zCW%}P#3NXv?5GfE-;Lv#5Ni}xinzRfq zw5C_@5S*+tf<_H>QT>vY!zF1Hl`&sy_pGBgSt7KmTm29Td9vHq+7w$$S?{A_2jDX4 z!NpUv-~QcttH0ZNZ@5s3g*W0~GnHa`DO|z>oiYj|MSRn>*>76x;w+I_ z6J;{6DR(c%IMpgzeK}<*^Zmzf>fMHgw?HeT#0;4JmPQP~D~z-R5yj^;87vwNGvK@e z`ao*$z$I1@Wj~wC<$!hta5weTnQ+w|b7|Dz*3qEZMaQfOw@iQYJ*`oFdV5r-lB@u_ z_Q@v@g}@{G>M2$qQ4)Cj@5c`PPDFxgw^FmxJ!ub3H=Of+C?qbNYKz1y(8fQbSnH5^ z+`3epm$=b4{X4zC|7LU@d-yp*q=hZ%&lx@wogOi0tB1f0B`%)T&=j$4nYVp%)=U$l zn%;I0Do}KcP!9=MU)t6}C@uhnp3@C{I>ER)PNW|mwMHC=##5D2=E`0|$y#r^F|L*q zr7wJABox8q^gT0cCpI>laR`2VFjL_y&=T8ovD+y;buR_g_0$8*K*rx=>hawM#XsI@ z-GVLoFrSoHcLgWq{%cFtc_en5Zju%qPq6B8{~xYb)(2TATtWiz66;^u4ubOYbpc5K z>@i=582=?(4C?<T_3d>| zzMZ>z14@JiQkTiC1rfxolQtx#q^gX}LKIfRxeolPoCukB%wI*{N6QZD%uYe&zyea0ACzd!y35U)8D51;L~Vz~`sV(G95 zGN8oDk(0f2PuU)RLex_2-8u-y?yLSib%t|T=C+*18?#c5X|1KQe24}&YKs6zbaXCg zk3~#V9c-K~by}clI`t{hF###fS$$VsFXG3Um0t`(7RUO5^~AHgcho(EQ|V zOE5$>e2%l9PJ6TGlAh$qPBU!{#;a%V6t?zjkOXiy@ zqPg&9aeCD6nHQbV9OIqRBq1^htqp)`;R2S}%UQTGH|Af+6EGlx+5x6kV%V{a<5agO zcjx0%v8z?+-x9xTzn^A*-`YGW#@K1kzP>@>SpB%(9BUf6>PgJBtROjhk~2g2b7_|0 zV8o1cQeU4t?or~^T#rtUGQLn6yaw!N#fn%xww#>5o5p&?qruRHTE+eSh2GQbhcn7= zZj9#2`~py9tv}eky27d z2FP>_iVeVc?U@DZTpi2h>w*DOUpYnl%1&C#?3>6nTQJ~Akx&~v9etC4_3v7{#I|XN zYJa%#LO&_P^cqvsPVMW}61u-JPQ*2aSg&MZFp#R&C%h<>&#&(_aJ@WlnQ!MIrv2lY z4Cr3WwPIGojUD2dQsL$=zX(cx1M8mE zP>1!t0sKs=34cnQCSj%mFfZ7mp+|_INs=QZ_U4y>ns#oO^>G<;*jI+;=lhHv>gz2o z=Uq2sK?vA$Y?%vOW=XkAvgmp*m#T68qGQR>*H>_o^>S27GH>03xJK9fZ}2~8^5D(0 z)8y|~TW<&j(Uyba8Df^iau$XMGNJ^UZ~3=1rE`g%B`7N>LX0+zDc4p&XwvzPA0L3p zr&vAjwLVymsg|D!UDVx*DoYaz*1#Tcs6alvA$Y&+xEO9eqv&@zsjr6jyR-VXkW^*+ zoYW)t&n-~~mkSN~L>+Z+MV;B8 zL887VYCmRX#H{$XZH+;S5AS6(y58EVK)IRkZG(zUBbm?brzw>VJ;6=wLuZ@XQ_WU; zxyYfZ125c(IDCEDo-4RWr@njCzhNb-Biaw306EkbN*~Eou!=}X(%OLB1~ntz$tpU2 z^GS7cI^diK@k-to0YgAc4=Nk+<9COpD_~6Z`lz+!_U-t;=vzeqBbQYG1&)e^9QaUL z{P!OL{4SRe7%zuM?~i9MTdl=9n!UxIY;brZH%DRb6H8` zS)En;ST3vL-7M>DFfjDjM0sQrazKXXV>dZsb?eyvQ0((;@|E6lzq2`{c+8SKCmIE* zf9V)TBcZEW%wWyNgoP14lFE*D=g1QS{o8N*BQ;6NfFR_V;diOa6bTTwG+uMh9cYI9 zJ#gf!cj?ivWe3t|EvQ5W6s4CqN?KWX;pYyVJgCgSUYo)zv)VevB3Q|S52`B_Zx1H`H#e;9Gkg>kx40SUC zPA!>{EnAgzv9+;K&Pwm_{SlxYviO4Bd)nyU``?=rMF3R@CT-)CA5->n4(`F`G-XjY zedn*B4yo4cADagl2(&euJH@mocgB^$m7PGfx>~11Cnb&+1wj}v-VwZ4~2f-s(mbA0s87m5PuZYAs4P^FDL#ikI1j!<2&I1Mm zKVh2dOYNwu@fspG>J|1PQuOMqgXixefU2sPHqi;JrE_M~@IzM6@Y(8A7?rM!)H7eG zFFAURt1tq*cMWALuC$1-zS{C+chk;$X{i0|7DVE-bZRbfV0Od1=Iq1X45J~j2L$1ccmUxu z9|HL!HU{OeiwLe)7FdX7-WZq?1d$FB0I)9danaLjDybjdpJF+&H)pLjpYu=wFA0d; zWIU;2jM!dPoPjYiu5CczpEwF_3jErr73bk2sn~l;qB%~XV+`{cdv{8hLmbH2sHGol z9Rt=^{$WgYD~!dK?K_H*f`;|I?~7@0&;i|G`z-uDE{Z%HQ%Tio9-+cd#SI60-jb?R z*WTmoW!8WN%MLG9I?l_v47*OJ8CtK^Kl5lx#8{x5vAjzEgY{#Whymq^)m>5cMu}(- zjopqrji{u?iqjBYlkHngFP=<6FT-F!xzfR}-aL7;M^XU-6F_4ptDtr(lwz(PD<;kG z0-SLq{_cInPC%Cq;lj@;gk(VWtoG|}#OiJ49+OGpT|buSC0`5pvLnshR=+Id4bj1#{Ao9JT&J?ox`TChK*^qnseqNkwWZFgfRJZr{D0t zkhmn>D4S2p$C*#ulF&+*Rx(FO?m}?mYL7Mi;pF+nQ)arL<(qLKDH+KE_u81^7|u zK&P-Q=Qj*8`>FwQa;_B%wz*pR==AC?pxGD8b&-HpT`jHmN=_s!ce;JosC^yRk6v`F zXK4ItzN07@D)8S68c5G4UKWF-2T48_|pn@p%y3vhaz95Nnn#l7zDYTDqva5U2l?nRuC z>PNF!Ya8PMKz#9;EI!|91S^I$w8EksKKBkN&x5S&{L3Yd2eKIGZ5pkt9zWUq)j zqzKrMG|$(M1I=SgtWA^d%_wE9m*@IU!)@Fo>s4_^fW0;jHEN8_j29Jap{HH;%Fu>a z)V(G*-tP|Zw>A%o@BPS^BR$*vsc(h=SB?AO;BbE@yHdsVmb)}^#59@fY1mBU{UzR9 zP5Dg)rQE!MK6gb=dMZQcpl4{2PtJsg>Mq2eked)oK{TCK=3_wj438b`1#TgMXCmw# zhH5WS_o!*{XE!=Ms!Nch(-rU4fxm+|S?!tc#Z!NBYSch8SYue^^oVhLPl@rurI44# zyOyQe>jCJ+QK!8?pFj{GQ!Oo41~J-LiB&P=0TSB5Y5kkMmk+m{v0tU_6Vp4;t@D!t z3F>+1>%$RwdZ9`)>pl-abhfRafA*CpWhq35#ug-W3|ymk%4z_OwIx|w>L&q$;g$Vy zVZcZ&z^UYLJQ;};CrJ4YYm++3yP}G3$2024WQq&h+g-&TUJgE9P8All3X~yv*~9}v|X&IlSzX721JqUnFK^%6f6*I z8-J!AC98?aPu~>MzgX1F$cNeD)j<6uWn=iE#?$`pZZ6Yv!Pa>jr7t6Y^iU^x(_sOOmsxp?@Niqx zsdWZ8EdXAS>kk9oopR{}UUO*al;v`SsPV`iLCc^SvvzL8-36&$C6iqE1hW5_=WdBs zI?344H5FA=lw3aHr)1?8Vm5q&R+8npk%2-`o?vRpKsX4HJ~iO} zQK?V6n^uDs1ov#^;lfP>zc8z@0C>3YWlW;b;wrbh8cUXZ>9TNDB;uqM{`n2u7Yz+p zwNyg8n&+B0eQt?hH%ND>XP7DaWqN7=K8hvZNg|fm@vF~8n=1y8UZE4@j-v45^W=h{ zBHiZZR`*g)4@*nu<13`A=Lx-+MgRi{)vKT!NZ;^5ZgcC>8a-@;DE(7*m6UOE?V|v~ z*u{a+LMjKNUF3xKcz**=S82dn=Uc!#@p`MU$uIHs|C|a|@G0I~{1{|NKS?EKLjK}s zznnl##2<9Cw+pk1Wc`jhBCoDcBf2(J*%AzalMSyX1p^?L&T-Q8^d4>Jr|e|_)b+g9 zsZnKZqA1AaQf2buZI6JTLdZ!k+BKgtm2Zz^_DUAdi~VR0l;rmNYRl@y82e7bPv?hl z`i7#KHwnM@Zp7`*jpnc@+9?&rj0vGmgu;5a5_6Cy)ENR@!w8KUSln@hgk^_p1Hh!{B)xUmavz<|>eXaRPeEDzX2Ib@9U`ts zr$I2V?P&ZkGd>!Qh%6&;^n;}Q*L6;3!Ts6leBMLo`6 zl2OVKuRdqBWMjiXj?YJO^PQ!EW2}0G#T8A%J33UC+q22Rgy*yVSHBXhf2$7n5T&|G zqy1Eu?XzxV1~$yR-8N+0jVh!+o*p*ZZKrau^*>TJ2qR_;RP{!+Z&qd?I~=;X8%v0w zTDLmTFIyf5NWNb^=!(?5S66qv_x|VxGju+hzZ>h)B+27~`XAcMva!jB@_efpM>*Su zgbOV4r*<-=2axzjt=8p=--r)kos`wj@76Wa9Li2GJfd+%&PRquen$u+x!CgmkEU;o zuB+|3j%_uK8{0fVW9KxsZQHilIE`)FY24VhZN2CI#`pZ+V~@Qr%{Awm*IMbf{5=tK z^#-^=maF(;o)m+|~kRk|Z>w#*-rbJK`_u>@tDrFcvP&5Ms7l&|vt33L9~ zcO-nW?;;tVyP@Ef&L_l zkw)aUltMxzrO9w7EEU}4*7V3E{Zw)M8hV8>>!Q^qX0wa`4CwFNrqBVIN6WuTI`Nv} z4F6a(-nzX3>@f^};R*`Zduqnko)aA*lCs&`MqP)WqZZ8EaUE9>dK&T1VBB3h6IG`b z2lOd4s&AEDB=QM0vb%oMpj-tK29t)Z`g+(+FzVi8!fdf`6bAsH2e0kB?mJHPdcHvE zC%zIV#1OyIuA7O6A*lqUGwGS;QkGBPAfaV>cL_JJ89&G_%ZZak-Lt9|tAw1!uQ&6%}E%j|w*;v4JVRYo9)7(@|9n#gm3AI@(kAegPT1z6d2A}J8 z$J0XeHHx@CkJZTk+x?XTMm`$M8UyHB(7u$Yzc_7o#4*lgtFJDu8+~abENoB-e+HD* z$OV79lg=#*4PkZCuXi$6Qk;W_SSB|Kz!<+xi~r(&Oe&pdMbZr$F+Z{& z54(3Rq{SgA6zOCZzJEJmFBCzkJ>&jI5omh67&h~p8;aLrJE7N-_fHkx+5y*=->+^@ z+?W%X!G6h)k}{!PQXA5PK2nIL!Bn0)aQL} zTt51=U_mMc^euKfGbB-#<%AizA98PEmsw<u|He%uWhAqK#QB$c5sbh(jqk!-)MkQ4-TU^&fDcqD+FvtgWJg_0 zyg&%pYy=r?l{wd$ZLsjN?3(}?(6>Y}I%4ab`RdRuNIc@Qt}&-CJafKp=c4iyz&6d% zw;_4H&p(+1{BzN|>hqh4B<_AJvD=|!U^qO1e$*2kLawT~6F0;k0UmroLx=YW40@Ga zOg-msUm0L_)NAR4gu%N_*DWim;*=RrulfqK=$}ajmqFWNZmS7oG3n8&!sT+3O-u`c zi^D$(nYh$;6W@}7wYny4%!LWEon!9G*WxO4e8fyQO`{;FC`Eod z3C5va2V_A+Eyf1*nWZ%B4A4{|re!AR`@QTfeRLjIc-fjZ_$DOLNR3!z?CxYufJ(My ztLq!=N`=1u6^jwgfDnGET$^W#%J=0Rn6xioj$(=;IG>YUdwIivJ6h<7e(A+3IJd`K z|5s=LfZAwRy;pnXpSaSD!ple0Rz`9Loul`qgc(fWc|%lP-5rp#wbw;@`_H)8WJSBh-j^{6xGAao6t<=NugGTx-brEqO7F+6;iHAli>C=THQsNYFvt(C%>Q zRKLMo{5xKm!BiH%%R`%r^(ZdaRJ zDro@JJsAU$4+Uel;qHz21J&twk`@9X11<_V0-%*^lgBF(o&Bwb{6qwA^sVe(-K zOKkVH;JEBHY3w!Ed5rI8f6@=Sg^r#hyOl4}Eq6cMIO3zbD0<##+)M!ki^y(7s&~@y ze;UXZk=9<*$>d|KNYF>(LNh2lIgkO6m)7+w%Vwd@?znMs6ip?;zw{-Kvg8;YNcAD* zPqUruZ0%4B&{;VXMPtOhAuXqD#7O2X?AW$`=ScsY_E5$VCNrFGj*Eg$#7|Jksi}sW z#CAtuO=zu7AUkw=E?Eu(j!2g^H%fA##1K3yjbzeTY zar4qA&`B+kX!9v+)agd`%P6CXEu!-F?QHVEEq-Q;+t5+i68gB^?vjpvm>bD7YlW-F z7780fut6+VTLuU);y{f_WE1K$s*J(e)Q+k@rx`c&p-`<=IiYMqeO;8jle@wG-gcT9Y(vRT1MmP-D3$9 z0e)o6?dYb8tWq-bhi?qC{9x(z6no&G=HXFT69;g_NAoMDV+;com5^y+M1I99H?J)k z$M|Ici%c{x*3LRQ3KmCy#)>d&lr<{XKloWwJ58#W z=L8xdFzrv6-4aflZV{V}wD$+hofAxS7eu5|b!(RP@Ay-6pLl0@%uM%Bq-e`7IpyY? zt;tyUr7iw~_s>(*?`HkJj*FPSDHR>SrQoj?pD1gSJ6<$Ij((i(esF$HTKR>%Z#f0S zsY)9|+qs2ZRdYJpR+_BegLdC1Rni!&@~B+St+J=>t-{ejXD#4*J2^Qy@Nm0lE@}{8 zl->EOS!=Fvgi&~YvGZdh(-3J_wI4L?+oRb$_# z;*C{+x03aO7C#jm7|s`BhIh5hCG*ni17)$lcK^>MvproWfaE8A+Q3yeSt)02qH^Cl zAW!AaRop}Shw}7?m`=(xRiBq|DY&R>%7Z4v>5l}$kX|;lYy8ultfY0tuodx0)hA~J zt}(L4Hy1H1RYwbZ%L$a<->`vyQYavMDmNJ3G1cYy5m49>h{FROuic&Q17X zpS=2Ol36M?+8uzw$D@uO!b=V{^=@%@A#$6P*#S3$p-N)4x_U<-2s9(Jh9nM|ErF#7ftt;y45tMqhsQxcHwuKle?iA9)EwfseJ3-b*M(asYlC=q@M;x}}3fJ_w0%%^4`!87+(@CMlASE{P<3 zBp_G#FAUyG=3h?O8ACYoAAW@D9G<1iO`WDSSC^*DuxUGnuhq9`=fjGVQ&U_@1dEkQz?|%v7XUsO`{0>p|VkzEA*~IWq7g+0u70`%&^hDKqjm* zlS1!WvyzLmG8KFR^86FXw)N}Buow=D#^RD0q#>e9K9zP8rAQgyC6$r7AR@rZK&btl zZh?|Ckh8B)*CZPkkHLrTd#L>SIgj^b3M<$zS8|Zn6w@RSaEQmO%S_1c;M4Q2Y-ap5Po#+(RhN8R{2_yRwp$A2vj zQ^{QnDVA7xtpEHCtYh_Xn{q5=L#V6jfn;%q->h7h}Uz zP-vn+PL{WWFXL)@fo028(!D+4U_l*XHvBOP;=uZuemdsJ2|h56ic0yPy9V7<$^Hxm&lrMx1BbSoQKhj)qS`_}@KqkH*#WPhCX0VMC@})n?7|@d@2}_9m|~ruJ`f5kGu^DOm3mD(Y!a;KI{RT;B=6&uMwEX? zk}&hd1K@BcOKk0GG{eLc?%#|%>i&@?MpMDeWS9Xh)en}dJg1xfWSqrzxT537TF2G` zCJO?u^Jf=T z6)qhg-t4UWWO%?bZR6HK02Zo&*^)>sp(P}nC-0w-u}>>bixs~ZZJLQj*Lhy4)y^>% z$eb8)Tu66%f5gtKyP0E8X8CF;A(}q>QEoZujbbf&PU+qVIbuttbpD4%AwhN$r{E_; zsN7))Y)edq?Kbr$Oar7DT8vHTp+JhD7wKDax~M4Z)PrwFM>rwk*|b7sRu_Hc1{_i# z_YKy^XLpB9fUmmg_YH?@sM6kjZ-w$r6pva)K$;6mu@Y^t0v-;8fixsKTFhgITRsm2 z{fIQLbjG{UPz3kYR9Do}sCI!;?1m13)Nhfe$`xtWboFs_bPW@Yhg0hGXr8{wE{Q81 zFtv)~^b3^|CwmVMFHbxiv161c=sd_{ky5_l6b!<>ejh%b7@fN`BHn~Ln)-DZRMKYc zZr_cpNhCNy#P4n_tFvQy`7fXbfXJ#`bZhgW6QBh}IRyp*-wMgdIHPdphM8*O#JTs` zifZ4-*=VO-rLs9BR+U}Eqal28yD=Z?4V#w6C{jp`ln>#_DM0J+ zZi$X5HpiiGKdIP@gb%?~5lz>4bHZbwGsJY z>?RKA5$<)|zkw&+4%>=gW8x|oA01zdJ=xJCEhQxgocI0pjq1pk)jymDm62h{;0BcQ z5mnc^XFoc0e+BwCAaG@K(7k?$Aba{FM#^03)DDwJ@t$&iC`(_Cl@VLAZH6W;sbwgV zBJl7c$tneLN?$cbke$)s(MI820mYG@q$raz8^EO(<@p; z1^pNqr+?e6sOk27<8&cCtMn#^xg-4^m!`2eao6?WS>?LWko(C_FXNGH%m=f~?VO?+ z0i9NA`|9q9_tz+!vSzcZCJ72Epl^N^dTgGWC0{ki@6^>OO~U8I>~}-h-s|j-5`{k7B zl&L9*eS2b}=PFr(Vg==w8*OX02W&wLmmEXrSb679PviYlv~btka^{CG^>aL( zSwy;tztlDT;atF}c6>4*veG_$0YpCs72Y#4RVk>QdYp)kopmW1rgNRkqfPD$B# z5AB${fZ0&N5P{5rfLzFl_ybfWpE9EY0o|%rw`Gf#hp!K(x$eP@ zceibegTxapl}>JZm$=H!y?M9b#O2(5^;&^DFMX6rNl=9;nT7dUn|#9=4f7fkqLL4( z@a#8~yFO>U@bk2xb|0v_@3ze6(lO=vS_ADqpv80;xneI8V`y~k8E(X=ACbTUL0RS9 zY)c$q>EzDh4o{92VBS(BTR3C*`Cd}cp_}&oZT>=NrN6q9hqvGZ@?qk{yz=P+FclEvG5bK#B9>(NRCiNy0;%AV+wo=VEhQoMOK@H)A%z!-%xFNd$PPZLw z*-`6VTozmN{d5%)KtO`OQRs*+H*N9mk6623KyKKdE?!mMhpA0VYfK3H@yeB1NwP1S}Z`hHb6$rs5n`{KWV9M=llST4%7s69h!! zTr{B~iw@GPp1aqDPT3OdU6~bSo9%I!AFa1N^l+K?bzrGnwdpkJv~>q)y+rHEkvoTD zPzT4dkN3Hf3iD2jH-)B*QEOUF)*t?qr*+j<#~L-R>~1eO_6pxUA{KwEmhA#T7EH!= z`vf4?T2^ilWZX<%rH+%munZ|JiWW285I_(;E)F{Gzo#Tc6KS0Vqu2#U-ifO9t67t{ zZgl$ks9zSH(W!wQr-}Xv3t)zfk{bbx*wxh<{1m+z-x+#X0c(~qH1@?E&3V9;2;ROv z^G8qjb1x_GR!TinyHKH$p~CEiOKnw9IeSdNFyZN(-LWkxiBpiR;EW+{FG9j*c1eeh z);5qkRl92E?-YW|#QPg~WVe|I4rbz?jvJBi?V7PMx0XIg zlTD(R7pyjmSLa_8UBB~-yW?$qVFm@uQ7MO@@xsYpvJPL-FsjtiJY#eky&hjqyuLmE zap_Qc0ZJ*?2_y|%auaKxrH71hw4j1JC-eNh7YKiGa`Q<7=!|SKQbmB6Lge4_q>B$P zzn85_j+t@o!L$K`LgY$h0XqOE&ysA-tZhq0rN~iehb~vV|B-_1)|eTXX|pB@haNqr zCKzUF5mX=R*|~~UbWewF92qh3$KEJBEfd-gztP5&aKXdI8l8EC<5X5cro%xav0zh} z8AID?O_S^}b|21H!AM8e??K&ur+`EJ`eK%x=(rJ!i3&dYadQ?sWvg~>&O5qQfruPk znDeSN36~6*0Qm(U?yg|cqFLoxXFd;kg#oorejf01kHANZDt)%;ipL7moU5vee-G8? z5pd1|E*Yvdx)gg->d7rsRMQd#MXA;f0Eq1b3~~KjG-vkQk-MRar>k&OrUn$V-*
Y~e~Z~T$-H`Ls#4CvP* zRMfBjp4)E&`6S`WB_})1p1G9f;&gQ)Gx~8D2YD;{3j&rFOnT9puzXc?9N{&MLE4eX zus%9~??GjB+KMU?HnaM>L*AG}STFvWk&=KMb@BCXQj@9ZSh8mZ&M`df)S=zU%nsd_ z^doKmPRRdx0g!lIH3q9sv_&BCu&(#whVF(Qw&~|%;TTbnCSY6QRb`ps31Tv-hn+Fe zN0R=qTm$5OY*-xdi20K$c3&nzxh$PQPYGcc+^!CyD?NF$2R5AQ1AKT0a6Xn?5>sp5 zTrxP#Uj7`aRsvQ)(b{4aLKJdF%xxDTV~EQGFGJ6m zm;#`}=47U5Popf0fGbSW{%jW>Nt+Mtl^vVL$X92yTdmHi5;B)+Nu|Jk})pcvA zcUami)g2w1TzOuy=^f>Q^uD*?v^D)(-nQBy<8VnC$ghlDg-x4Vj_^s-bGVClY0B;*XS|oNi@mZGZJAcG*DwVjOlOQQC1WE%}*E%coGmZJ2Qrt|5B+n zT>vNU-rQZ@$$1J@Wrw6P^6aaoIf6xrVD53}28f)E{g~A;&gaz3(NegW7mxRY{|Kha zPQx*3hIkO!Jy2qT7> z;)msb{`i`f{b9(cqQfVJy>aAoleXxgmTMDIenFEsamQddjH^~v8r;ny#em~`!TDlW zs!yM89o=yr`?zZFG8HJmP)r!%aF|gk3Bu~TX^SxI3<1d50M}(04!sj5;p{Lwd=CJc zHQ*Axzbm1Z28k;0bU=(I9_v1%f-nNJEnx-Yi`KQS=gjb3_cbstQ-Hg+EwB7Y@A;t$B+Q zHfW4^&9utp!@wbwWOom1$u~(P)gF4@BH;* zk4x4>dNVwT!td5Wj4{*?&b*2Ril<_`uu~aQpthbFrB)r$jmA=Cq}yLb4SwIqs8SF- zFkbN;K4akCHs5^Z1nf6pix^1JbB0h-4&=H>jy3w?d8tH4Kb*MC_8pyS$nA(D&!Z3xeLw6gF_y z(07MgP_n}^a^E+!KVh5y7ZyuXtr}zOotJKoIS+iK+$F_`n6vzWb-bJV%d#Mt#Md+L zWKE6$gnXbNOfd*qOO!}b>g+K-GUy~39kid>nFb-TAD|dwV#BkebVlkbUL$tRS!!Zq zH9d5x;HwE7@g?=mp2nkoXy4nbUw*9WJ=cX3=mJrT(+m`D{U~#A$#V=#q_Iz2xP8hsZS^>~5a3EKzPfy%yelpav#0SQ|t zAKbLBJ_wK~OiWjE$t!3MDmVy}lm;5T>i#Pd95UIfe^h8HaXHG%Js%=z`^*Kl)JU5` zDeY4~j9~0oV=BNB1YPEv*;0(6xgjMI_)AlcRP}DqB+SiX1@p$%=90|5rhlS*?R+tA z`E@@Wb(jWRe$D2-+?n+#TR?KfwuIik@jT6@9CJfSpHP$XW|_PE1`f}Mag}p0r{~aN zMJDHS*dgPE(sd!L>#*ygDGx?fB;CIp2hjl{cL8$u%(hD5CT<1!Ur%T%!&juujI z*CIJg-BP|xSrtXB;HTmIiyaHOZ!GE2 zH#cLS4j$_*uAcEm2@+$~0d_b=LbKW7@$V}WHOv;cB3)H=(zFt^;wRm|Egi=gVnNCX z2Ha>&zB7?GI$@DO4;h-R=lhXlncO^OWa15O%t&vkPI*%obmq`*7<-(ka{fzTJ_D`L zm~U?NA5pJUc83j8uMMpc(lgom`mK=w@)#84;cR@YVJo`rT6zsi31BMad9+fv-3@gPv~}Jla$ifbYE5l4ZX^$DdU|{(|eQA1?Ifgj1L%3?tjt z#AWrx!M{tb+p8hML@VJ(K_hnb9W+VWD1$q1icSx*f z`rfuNg7N8P{!FaePIzecN@Zc^zMlJ%t2|O01|z$?z||?03Ui4}2a9fg#eRs_T^kM_ z@OW?yk(HdbJEIRC3U!kq!|>GfLAv`{)~9&Hi>sujj^lMkn=?%;7Om!;?$VzRcFme? zYIEU!6LfN~RI`+E06TY*Gh$uuJXxI`U9?)YEu@sIIo3M-@^-TyoW%HcOGThkJ*`KD zC`#?A=?Zugd%3w66$Rt|Z6n=rQ=<8D{==20;Y}={rbNfWC^4efFg1IMG8PhDagAUC zPomch7g7dSaF3fXPAz)^DlWcTiIQjrejV1o0Tii%bV#Ak+)q!oX^Tg(J?<7^E#`r` zoua+EAp=pUlw^P{a>`t5M*)60^&1KRB*gv`V zvUFZe8cWVzrZ$rAzeIztF4Kk-qX5zWxapOD|-9yj8j6NR=6;W^L#tzwUAl7@_~E zfm{l=T2Nsn>X+!u-e@apshSI})+4UqJx`Fh?Of6BG{;Q98#)jj_91?p0M^fmtT z?a0F8V3w5c6x5Aca9oj6sT*S}PhKpCqJe(I0f-?&Ml5 z#-!ntT42e}H9RzFJ2iE#s)|zh@HG;h-p2;hZ7vO_W8hbB7SW>A+-6^H*=(nPHKE8h z{j!oHNr=w1pUdg>_``g=d6-_$rT*JD5&X`Ng<+$gck;SfEBf!cm;WBk@SAz7l|^nD zS}I>JwYL@jB#QEVO#9p9d~g{mU*cWmJZ>D)bD0gyVGq%ckNJKL+5dHB(ab_X_W;r4 zx%tbxUBl(EyPBN>Txbe2^7 zNISiKYtHkBmNhCVcfB?A;+PMITY29B`E=L9{=bpd7~VW}=pbCvL%BdVQ1JeEw0TU* zeKx$B{w=5Aliqi z>+VZ<*C^ZE5Q`00%aYq@SiAk_r%NT;aZ{l(4N=c9lgoC7sQJsp_%o zzGrh+>w>ogqmr@cM$$XD1)k(zGJox zAu+y=aFQQJrt6t#uzqj3?c~19w0?FPl6T;0jYjl-+Q%2`&zYUyB_XY&wA)b7x~ z?-*5lVQ0$CVh<}bFE5)tU*Eo(hETV98DJy=&BX|Om--Ia=@H4IAfzG>oiY^T8}?U^ zXlJ#pe!j-gjoA$>d}lbE7AF=};4(7BynvDm&$Dc?gMp+kR9W1qdghmJrvQ@gML^x& z8p3tL>aUQLkqH7I$Byt+T%0(~E$^aDb3`KHs!`it-Undw=?pZw2|jaBcvl9|v!7^9 zl3>n3Y+l8+p3E#Njlvxsj0);iR)#f4@Kd3LX6OLnA!WQ$WFZR*B9$z_IzPPm@Z#wz zv!N4UIhPXq`<*hfw*qf15^IUCmwhjTuNOGN8F!(67&8y;KFu+(;-ZQ~PV#Zc5_=5n zR;zM|)1moW!71M)Yl8=RD4poiE^MNqwGQ*^s{gp6uTDlCT5|rHB zd5T~`CHqJ*sc{@4Ndp@VG;9f&)P{v6(U{LcV;(I*;($4l>)Dm+**TGtS^QD(n-t&gMvfuWobQV!U zR8kkDAb8#897@r2qY6Tzlp7XDjUld%X~*exQi}!N=eCg;)|@oL<6D0ZCQgcdWNPfo z5?Y7Pc-wx&b2`XYFeH%<2gR5`E>jFBa;*&7Nhsl^Pa&h%gu^5^TY-!<&R=g__d_E*87r3)YWq@VgwY^+c>a6L7` zJKUhTI}95^&`iFU*TIbc%7)J=Jjdg|%2!F{sHs*rACIVY6rkK9LLQZ5b+A3{bCyQK zjioqjR#2Jt1z;qA=z47iA+SUh2&0zNwJokCt|qNEI)Sf**LPQZyIf~>(IXw3Ggh>_dXUz(^*N;qiGMWCY!!U$8(* zYtv13ID-WVYrmeAtaMt-$0MH zGhAH>CO6P(V{)HcSt85^=~Hn_L&=Jpqr-{mPPko1>Z zw;*ghIo24(UIfL0kqh^0J9*o$In^A!+-#2W(`(1_gos|}SaazF8P4#qhZIqWb?lUF$|bB$}7`zp;8uEo0 zB#=GHo`8DfCfS7X3|yzm=9|jw;(py?wTAwqAvgK>sN;IMYi62ob5%=LcxC-mPBXsw zlp}}T?rCY&z5dgUA<7I1)%Ir1$5>p!%lmOfP5w((gWM$360&0f--AgHF$0cU*X5+X zd?Ziyc#6n+z@z9J=ACHAB7<+1`3v# z!XsSa6Cu*5WTdqV4X!OERP@K7?DC5_R;r0rs?u|vn#ymvsl!;KAzskV^*MdGjA;|H z(O!J|5xWCj6ubNKb=z^<@H6@U*(^}IjW8Y>po_<6=KJe|OO;%L63zR_I z38jH@bEw5ie|w4Z&1=e!F;U>1in1^frO!3FnT8nH3A`O~@gbN&J(AN9~*C5aBESk%_& zd`8FOq@L6|Z=8aN9z=>tNy8YR)1uQp<{y_sXU%^5Z;}NC{KMaiDpM6cr>M z0tP9vl*h!&e|BH;kBQm%ZaMo9K{|=k(%J5CxD0zt(hYYG6Icp}IH}{Sa@k9qg<(y+z)9|aXvN)Ue7&=wtaWo*ys{ilCr0_9oPaN93GOz9VR3@OXq9f!)?pgJfnw&Cvbc`dIxXP<9mxq`>_n zm?(Z@-(ZRaIYa2f7B?siG%nkK))*dui+*P0u*JI2NlDntpo~b95Usw znrR=MFm_s_(F0)xi$QS_7pvhVnF#ck!H!s zc+^fi=qGr1XDB#8iH`9cBaY!4pTujYLWX~f7p`bfp;qTs^`*zS6Bf?h(o_x65r+#Z zB5Qwnlw9O^9Y!{TcTG?O$1YSBN^GB4Vt3lZepFhvfFd!amMGmo42o>o#G7S~Dg|1c zobXTfu(so;m{_lc6R1<62)qK93;^)<N0uh}xO%7|PJV3Bc zJ#5aRN^AzyBa$U{AYZ*@Et5L%heb{KWm0eu{3cCnM_XK**&%v*#o-jq2MJgu(?dM9 zQ)Vwe!!#u`8V&`kzmt`EuTLT;`!r{^Y^ug^1f@`|0$e<9HOORr8Yr;WuZR#lYTLm_oQot&65 z8!`6>(s{3X4cZ232~H7 zUIe@l&mcT|!i|JomD@mZ0M6D@2V9Fnm?@ZPh@1p~iQ=usEW9&Pf*|&}79^ zq|O)0w1L$GX*r07>?8 zSS+;CuNR+SW|`FOXD*p9DYJ{(8HD{_=*}q3E6CZQrX^P&t2OVx6KFiq?HWgKiQkVU zNFjK~O~+wEtvrVk?F+wyT?yv(w>!3ge&T!u5?MGBrEa@&4(t$w7PO>c3Q%+g1JxsV05w)HIjF`*{i3 zT4}d86K^)?uqr{hF448a6gzR3B}1dvgaMOzri>;0-sHeb6~VFDYS%&mhm_Msgaq=9 zLG=X<*O2Vt)Z7LWd;sJ$8{XydM`jQv0Pqf}1ePmn;=C+|j^GRS@$BWNL)T9@KfUkH zgU)n9Zz4aT?K*hyMWbFoh}My(v_5gSsDiSgT~LlvqJ;Ywq>&>ngYRbp>3TdHkK=Q; zvM5@pO7cBa-%LE1vjN6Cr7?7dK?W)KDlX4qerU2ic0uVBs$AYq_D&p?ZR z=lS9xnlJU$FI)s9RzyH+W|ABw#%p46lp|0De?>{kL?8z!)O9YMwtJtt(lM!aj5RO&Vr47~$wZk+ivEC-`)a$-jeGz3}&TmsA^McH$M7Q;+d#%hSfqVEIe`bnz| zG}sqa06Bc-sO@rCprQ525NwBR(Qf=51!a6#S&vkXed+4NSsJU|r#kyrB-8tttKU*P^ELXNH0n0>%YeD(g zlFzsoR)Sdp`Y-mv=2==%b6?Fd-x7NRV#9KPTxpT@!OKWeQim=oL3ZC9jGa{t-Ts6O zD1@!z^W!17%?nLqH;%dI=A}`G=C?jjGaebd3lWRkxwW8Xi+2<<(FExeXF{ztKWxbZ z`0>^gsIUemFjR-v^8>%hQS0HVb|H_$ow*vM522DXR@$oFvFhpIU&=6v8>+Q1KT z>ch}30+gKwhrbz$1UC84`krmB(v-_g%0J$^rI#CQ^aqE2Zx_F5tHp3q3sHJL| zi_La~s9OQK*&E|3hj4YPIFJ)DzSuxvldjKYKn9T&E>G34@FU+px%AIF2nR0HOaSR< ztQZL&^-$0t$45Nxz+Vtxt=sRl#v-6lLe-x?rSrpCuPjw^_g*#+Ijhjrc&*VYd*GBm z?~O{)^=J||fyS%VtrF|b^so^chVJTDRQ@P-D5KYS^ zfYKIGa=Q(39|SE4t|GenaZmk2>{G+N^^^KY(nJ5CX!~DDuv`kA5&7E#X?}4omIrMr z-8;pM4c0yM7MOONbJ88(!TUF;MrqG*!991Rq0E{b=QgOM0O??aE7PfMwqkORa08Fe zlh2d_|MLP^&0IOj$smpraU@KXbEj%fB*l)X=4q8g%z(9O)|1;Dvaxjx4Z&*D4=vOs zhv=z6zL%NC1dFwu8}piQlF&77RwV`d^xOP6zB9uvMwp?sLRth3Z$j#!wW=kMZ;2`i zzG`2f20fpis?c)0qP+fKj(xs!ahKvN>XV#}N0mtqAaID%x!8oBic>A)!Zv-NU|nv* zP`V3jQXPzpOw)L5XtDF#Y4Mebz+pwV_^P>D_4`;lc$;qdd?!r!+V1H58vXeY)bpVB znXzD}-qd3rlA|N_eHLgFx1f}sT1!t^0aK@lL+9$l)2VJsXpTg^(Ien=prX82nS%kP z&J&q}U$l4gu+nQeEE?=cBN0#S2(q4ea@eUBlj>gJh^gifQ8$VDY2_bE`!}CftTRQ` ze64F$j5c=ZyNIfe8*{Lo7<<K>cKI zx=#7ohQQ^cRH3WYme?~J`ZV;yb08>4#2Ln0up6c7&!8Ig(FmCG%i6Fk5_5YD6c{PN{{}O+AKI z$L3N&6^vf}`JEN9$9QI+Tv-^oN58TRI_vh{2-tLiQar?DdvDgO2d#zGQ$6h(pW^-2 zFj#%`OZDqyth@`^ilemfbOqNvn1L&eWmI+g<-ZC09M63&s^Ux^HMVA*?&!Rh&QsGo zY*G47O{zS-O4Q=f{L%=0dypHkQTF@cU~r4~)DK6M+8krICeH@p%S^iWaXe61q9R?p z9b;}#8G(SYoB7So#x%5NV-Op`bgPx@eR2q}imp$w{)nFm?zMiz){w$pRliwQ%`PXr zQxubH#T zGUI03A0~!(r0`ywwguL4;e)%LUrEk<#W_wLgPVljI$cgUjkj4_y_kieuc>U|Z_Hrm z3B4Rz&AitLk7Mr`>Zv(eOiYZ`u#h%06I$He@StW6C}bE~WkP3BNgXy+Rvz@Y?xa;3 zx_K&NilX+t*YGZfh}x(G2o>qD>Gi|X&BW>AW2x3l(vJ=t za&y%*#DgeqP`>HLcQb=jVua`R5@tSe6Qjp3RK5@Dz_da|Wf)TO#ho9C>!^PdYHg#%11`lbNkcu-cH3N;{wb}5^orC*> z>)n?y)BvdaY(&H`Ey(2R#_wFYAR!3kKzll4*KpCkVSetrn*k-!!&b#2Wij?F5yv4C zPeE)gliO7;x=9SYORLejkAj(47r6JbYY(6h!3CJ4dfVyn56<{11R8H4O>sJSgE~5U zc}g1_6=cQy=b;bY5^~VhM#}W~bmS&)2jZBoTxl6^`WMyGgZSqOi%wIV?XO==;chdX zW2nV*03VP%LO=cIQ2aJ6h2}ivSlexN++VYu+=hgw(K^Q zRX4IKR3{gsQfxheB)!mn(M{Any8<}pmOWm6%w5*XPtvhhnl?Xz^DXC>&1II7S^wY@ zX<$$C`EkC2#mZz$u@Vu>GR@r>V~)V4DJ7cG4+S|B8XA&I&r5kOo#Bjp44h#3{vE@P zwkVy`P>zTBrn=d4%H3>`Xp*&{l8S}cSBliY_=e>f2#~S}khf|eU@D-|S14s66GOh; zhqN(^9FmGn4OjtrsqGGVM#W^)ZarM_R6@Q9wS%rF*!}`udg>4fiQ$+4W13`aK>o22 ze4ZG+EWe>$;Xpxv>_KF`BZx^gTSU5K;AKLF3((ny2%tDHg_ij~TQrmr3d+CRa6 z{)GI>%No1`k@PIu9475$ZvmiQ1G!qFT5}q^$Z8TNhDipq5CseBp}}l&I4-d^ zP-K#o;&^G|4zzKCWR}1aE=CXY1>~BCdeLPjg120}BxOW+O0)A$?Wi|Mtw7NUAS}$p zqC0B=K1$!F1m~dElJc!RbVLVh#)L=QK^>>~Ag_UQ*CbQK8P788r^cAAda82#f^;Yb zz|m`oV`KiDG7>fU6eL66r)rsGgACH+H(#~R%zzNr^#C{aQ#H93SDw=1*8ckSL^Vvw zh=R~X%-1*cBzTjes2s37ttr1E5AjiVMVh*vkKSOi(oT}dgcc(!eHUt7aa{u;DV`%4 zR-(Jsv;oAii0@!-hbJ?JQ&Z)HMcVQuqpA12v66z@Pm_E-XOE2>XZ@U;il+olM#`M9(O*v*0gNqLtW?QM19|;!ktCu)lsVkC0 znX)@I+>+>y^gCN|>m|@+l3`GXKxJC%0%VwXw0X0DOBV$UaJs4N#5h$bF3y~*fqm?m z<%1KkE;2Z1$m3xqQZ%4sN|RL(T~}dc%b)#=)L=sznXG4(w^Cpd)6}%Zhkgrxt1~^) zBwtAhe7<4hEIVE+KYyJ~IM7@fJ6j3K&d|#JUmNC@z>;Z{1pcxHW9DCspU5eug`A@I6R3D+h1)oG| zl19HE)@%YgIK=-9;=t_U!W)oBABYi)dz#Xibri`*$+?{>EZOUQQbFO9eHQvg0}(306o*N2~g;0Vf4N+ zi)^&EgiZx9KT zvNAomoQBK0?;YSj*5|t>!TR}w!+-Uk`y~;1_3k|aSsA5}OY7>82TM&$+3%ClM;U)u z68CWSHzYR=<^SN9uF+aiMy~g!@@lFtjow5FR!41Rl1m)8ljqQu)MK$Z0rVEC zwRFcJRv2eR0bqyuZlx9sjO$+vhtYgaE2C(>u>G>iI+*XbrzhsHX-b>xLHBI*;r8St znlGr-A{%Pe$qp{3WH-GSUZ6S2Ai@MU$Uq#Yt7D}2gCG4U5c$;Y?X4@Lm9nsKty!a? zSFIN<7L966hKS28Ot7mWHRzo?N9uU>s!fX2vkxPd9^Vhouyh5PYv`1k`3zg9==T?I z-cWYPf8-`niWzF>Uh<=i(;HlX(PFQYXWmrmASV3g?Cg3lXjB#b-sAb4`yWg%QD33< zWD+eheD(gl7=KtCJ5-|ECD{pEAN5tI>BrL(ED4wnjDX7OQ7dJoqS~dI=h0$L8y=5; zsK6N}gG)rn0@aXU+Ni3d^K%OfR+2xH@~)F~qhw$!*O+v@iDFCmj5KA`CYgB_*BB!E)axEzPF)wP+@&2lcimN`7WDb6 zlaz$>gXtw@W(cZt9+H%19td{TKBC59+3C=xMY{}AVR)&5zLWwsL`z6#C=18_rM@~8 zIHFl^Sf9AlU%!1zf?G77-*vlaq()U$ui94bNb(B}(s?MQ%LkWJ+l(yPUAG&$-c*rj zRqCsE@3ntSyEX;=&#RG@_ZKkYQZPIG6++GW5ts*1A!YnBnRvaBGW47UQTskQeQ zGpy1Z>B$w?%!35En^cu$X)+SoQrQR5e4#Yyfe>W~Zg9i(NeWhu#GB5ev8pD=lJ&E=s#Ei6Ym9>WJwX<4trUd1ZQh-h-<;dB}nB?tYp(Fd+EE6Y}` zsZE3Fv1ip%zQ1kOPNS+oE7-Z|WNd~CsnJYtt<9Ng?aBr-T
Qn{0EI*GXEnU-A3B z^*WgT_1_4K5{`SC9FR|F*-f!ER#7 zV18PTh-*`{lkA5>+q4!AnzX|O_pU+qHlMKRdojGZG4M@7b`ClLYxBrcN z|M}LR@45}rN$&@L<3IXO*cbHWB8k0D5|Uwxe*fig=qDYyM7y$BWt}=nOjeuPw9^U6 zWW35c*0rnF4kg9YbjQ>M7-y@jW7QCrHpAhe!^>|p4NpaDhTEW-mYrrkD~|j7Wx32U zlA3BI&_|fB&(288AycbP(|av>U~jt8DgCZ&1=}^~vmQ3~+)&%qSj!?Weaq<_d$nce zGN97&n0qo9(PS`dEyxZ!IzLA>5j?cP z*lgHrGl!Ps78V5^iNm5~O6}%0Y3eGJ)J{cy%BX)9eEwZg zjs0?XAuh%AiIB*Xu5X2(U};n29}51va}Bi~$Ruy=PpsVm3FOiCMX%t<$*Nb|GV|Xk z)RtHIkAKW>p!&Q%8>C)W5`V*@lRsYthGZow)(}XH5K)Db=N89(dz?l-XAr-!BX|*8 zQ~&k-NnqC_W~`>|1vkQ{X^>p$%b5QnJJM_Kp8xn)Uk-=Od=?fZN3GqK$+YEYZHt2v zUgzcTf;s1!&!vm*nyW0!e)6Ts(&tibnuPx+C)+i`z7%3uDklB=4 zmD#>}T>h+vS_t;_+qb?rnGNGlkw4Ga4?CmsSIvIu?_WFF{onfw?Mni$WAA9f!wZ@? z+1Ibn&dAu*Z)FCHnDe~z2-CMjS;!l=i~S>m0ob3c6^h>z#eTLY?j+XkD8QY$^@n6p zpXmXsSl-9&t=bPaO+%8{AvSzoRBrZT^D{X0I>#;YuYN!wpg z-l9D2hu&@#J@V|Ywm^0(J?JOp@v#lnpJaC|W?7;|kye<%m7&*gK|bp<3UxNepS6_p z{0r9@iSA`s`>sLM%vGhDaqAL)yslv4S=|OSXn9~#{}KD$+Z4N%1-14D^V=(K>khnj zgDPNK6Pnqe&z9dw(QI|PxG^DR|JYh{kwR}y5NFd$Z5aP4dcn4Y$_fp(uSpVtu2gfD z1MVf`v4tfVo?jHOQO@7z7J`I z$NOqji3nA}#skDwPsU^4i8Z%Sv?ZgR#N~0{GVfPbkf27Dl_~oA$V^7_7Hksi0<*@v zsd&=%6EjFW^O33ZyID59sz3jnGiL(}!)yXGeACIK{r(?3|J#2aVvZa=yFkltelqTxpfuSY3GbGFyTnlcCIufULL8z8{34e=%{=#bZ1lG^-+9e#uDC+ zN4N4>=u*A~n8S2COU9O8b~^GXt$b#M-+ap!&MyWl`nv`(s(z*N!)qEJ9*b);i~y4` zV!tt?**E%qfw5XX-xYVeQYDZz;f5Y z&Soo5MKotK(huz>0Gbwk(JlPMjW$M7F#~&$XhUZ60xVrcL|zPsWxwzH%pzjBLZV)S;bJ1<2t>Ts z^aszK?QvhfeH)fVI-dAfib9aS^KX8iErdCS9%ixaPrd^LeEs%qIvEpf4WBk7ueDRR zojCR&yGE;pU3_lGfeN)dI-yFV&uBj7@30pM{;$9Jo90AWgwv$Z#(|5tgX`F*sh$#V zC5qN?+09^JZlriurP$8WH*VmiVvRenAM;>Z+qb7h zWZCJMIqPoag>8LT*#(CcxOFpG6wN$0E7_Oq=61GA`=U9zg{s$m59c=V(n#QzV{GRz zu*nw@Wcu(QU&cTAALRSbxBh(B4)D>R__^Qy&;E1vGMggQ^v-40`8*2)55)1@cxJ1J z)JgJUIK*fZFE_zZI=X-HMf2+nEEEsP#`-sOEL265coDF$D2!{`Hx$gV#E!4iv^m?V z6mh7{E{%$4tcFbuD?^>6&3tD1L_~_?ew`*R?FFo=-`_$5N{)h`>F280@9Q*e577S_#Q) zhPS{$QILLbbL)T6jK!6b8~Kw^d%f1Z^rBfho?H*k{LCPKA?yeLyAHrE3y!CHtF%>D zKb^W&*72#}oK@;g)Xt0BZ_>$_Ex@--%slvCjfSFRp>^6P7NzuG$_7v?yCl$gou)+j zY#8=Le_afxxH&t+D6wsB=)V6_zUE;e#M{62L)kxmF&x@`cpNsR&BizGdU?7reF>4L zTZ}DWBV>DO>}b}?^Xs#LKP@{8 zos8=wDO53X0Qn;1zNi^?sAcE;Q*?t_ILl1~)LyC%X%RlIC!TuoBck$D?U;$bvspe@ zO`l)$M_tAX-ai!{R@_j?o$tatXZKf7vSYt@bF~%AZRDBb9(UdR1bK>In34G?Vo<4g z01BTSxWoq(_?TsDFvJe>uG6wL9YaM1?Ux28`QVEW(A0^mNA-VccMydpKYt>S+|Hjw zBU?Vxt;b?DGh5oncYI9E9#N+$5T1zmgijVwY;w2Ha>rh(zr7U_55bYAkudws{T~4o zrs@FufR14b_E0}d%Mw!jWEpd4&HJ^H+kI@Pwsv@nFE56^>0&Qs!pVlUz@eR1Cd@lP zhL5f?$m_wGh!E8D2NV1sfA_a-ZC0AvbnjvFo;u!!V*L5F(2BwTTyLJC@3oq&AXOHK zFhS&kuiw74{UaVm=tB$sv9#kK^0RqvOrq~D+L-;38;oa$xREf62l4VTP}aeUWmzYQ zX&E$>MYa*^o%762Tt1}g@h;`@vH$KSWTwl^Z7|HwyaGR6od2g@RK!vs>Lf9ayU^qP z(+rTZ>>v9pVyA_u70c7p@%T|uB924b9!pI%w^g&7^E!X>%ij+F{&(8f_Wy66@0tZ# zME>Xh>NgFps-Ic_200lasyua8?PBABrxL;bFCsUCGx01iGkMK$F*)?gB4)LB%$xEt zhvenOuuhX@mYL1!JDI+@FCNrtc_O4u;$!>SHR73Hbwcbq5s@49hcT?hvp;YicCw+c z@c3upx$(7bz|UPcn`)aYGva-t(~Nblgc}q7Uf(|v&)71xW0^~d%ShZByP{BqcrL3s zP8@YBb;H84z&pioBsnUXjCT}^O~uaP{YUv@yrc1Q`*^&~tv^5Z%KQ^~)54Hlbf9)w zJTp9Yf2w^{#RQC-*tuqUjCZM@a(CM}cXFU?9$pMDL|rL=NVP{H?)x*VEF*Nequ71l z&v!Ciy^^y?wjhFdzMLHk776!8hhw>_Ian^pUz4Ga{+=7D!HM8;PU_C@~?_rJ2UD?Q)FdH9yhV#zo@ zfaOo%zH22@w(^-Mj?YjnmBw^0V2XbjSr-N$0Q!6f`M=*UiexeYYu@qd0U!*C@aKf1 ziY?~LtpynTO<`WfHm6cIulZcQc!Zj^V`49!XTF0|SPTOnaHR?1-dk*QSV&w-)hRV$ z6HSh@y=LHrpN?T85s~uP(brr4mp_3!`6k9V&7KI_Fb`|N5^CXJaoqpn{5=2FA9LB(tyM*7Dstyk z=AM9ppo7m=oj=UG2{`?i_q9AHha^-KK}!e3?EB5e_QaWTXy#cE8(yHpQnpl8HL#d7L!cJ6T5OJ2;c*{VOiXq4gQJW`mI_k zTPS(*t@BU`ft{;w^(pF0FaUp96-F%lVpN<}|9G}}u!}`aEAxTv5k&TW_V%si)a<;} z&aGBicAq|p5}2{Lbx>!yaaG_>i|1{sXl;|PO!qQ)et&&-mQKdvh3I`#=5y@B6k2)Q z-#O!V;9xt&SSI)vM5}v5eTh}pc`>}WIUD!|TJ}bD>H_JaE$a+fPo6-TyNhK~=g+FY zzO`2?$Ox@@iGf+Z({58_cT2|OrdNA!8EE1aH`ZE76e_1~+3(}P+sax1fx%cwo|n?* zN_lH7;S*2o*yr=uvWUF67+MW5fj(a<>|5Iisw)IYb}Bagso2?Eb(&btx#bJ&NRe$i zTVD(S@)2x1e=c?QMVn;Q7X$E}aJ!GFfnoW9c7Xyz+dMX^^9^OYgRQAQb^cxs zy;MPeJNx^>uJPF!SQJ}ye-rtJzDq*%$W82qKD^@p)qnbqezQ0A71z#Ns3u8Gx)`c| z9_^e>4)yakuXtcVou*c-(adwUyr}{tT%O`Ge)58EyZWNY{e2YJUi@=EWV;r6SlIFz zh~TH{_yCiLSnZ|%^d~ymvn}oSTxN)dz1=rH*Ux469Cx;Fi9GQP>m)7v$4BSqh8h_9 z?7zt8`;n%trYn47+fNJfLDkX`D@=T-$VV&0;~_FXoPas$WBxE~UAEiGsJx0NW{geF z4%Fo5FyXjzK6JZ%%4f(0UMum5 zLd`aAOBu^I=0=&xf$wc8LOamd4#vvHu|`&YVu(D&mjNt55dL2P00960?0sFRE!&mW z*y&nHExPKuH#s{uYo*hQuvRd%2x}{XVD^*vkQRKBfQaBzKlq|FK8U7Ye2E4Gh1eKD zNzxiY2$36=7Q5M(PR9`T(j+FDwc75GpIzL0PTbpDb?>TVS9^T;=J@KHbJp7DUg?t; z&wMznvv#ejS@UPiF}^XzH%|WRZ~kWoXgeS7Md4yS+4vPh8 zs4C&MQQ`-jsdxvLi36C*qos^s9+*7m9w5+mo^tLLaaz_pFIr=E=crczV6H zlW>aMZ8p_@ce}aJ`xQ&s$Mb_asv+| zPmk`wdAX5!ShOu2_#6!iw3(NRfl;IgU~;T-Jp0800@M8)-MqPhIE5_b2XhpLeWv-> z$E+I=dbpk)GZ(p#|I7hP)H^ng2BjbGgT}t$^HA4k+v|3<<~8s|6i)RqIC&Bmxdlyk zPw+y|9neqm#q~wP7La$;rKqQHvVi$UBS5|i06A!%irArKnW8`;(5+YG#G35ky%#UV zJ)wMn+D%6rL3c&l0fxZqx2rWG@$euWYK~hn2&#hLS2dE#U};OfU*skoH<$MZQbm<8 zlJ-6IcjSZkvX8D_eRBDcLuoQv5 zDD=GWNPAW@)-g#w3{o*W87rRJDr^TYgRH{b#3D-cetsYijm1qYgwd6!${2c*+cra0 zb2L;Wa@bW2Cik}~-I_CdU)N{bYm6aeESam2704M+U`liB!(4f$=}U(YFIJU_3M66K zu+E=a*^Ka?IiiOca^e)a@E;dpoY|Y8$@~)9ECFkU2=Uwm=i&=uI%4;GYKZ}Q z<9?AeS7+vnBRopL8A`lM~py3g4 zLjzdHr1$#XWs{PqB{3RFt9Sc$z0!N;=thFw(C5JkDkE;K6eA!C!%Wpg=PBB*-tTTV zo0G47?OSGc{^}LjH83bDEWr2MN&+!Ty5lf_^2F$9_J)=fEKedRAhp6N=;JlY0;Fl3 zUtJM+!<^AA&AphyX~6EEWq;Zo*Fa4#`hf=<9 zO7!HTNbS~Zdul^Ho_UHjfTIsDb#}c4B?iO%aL+q;S#yNd0Y12Ire3t`^)dTL_w#$d_Lb^ie>UGCFWRy8yba*XKmBL^-e3Er z!ncpAxfJ)UpW@iFE;<6sB11nCr-3isQKe(h;1J4*w5zsGZ-d8l2P=7gLm}{RTSjKK81SnEiIMkz}pv?0S29vC+=JvhAI|JFy0f5P8*U zKb@UBB*NTYY-ZwD%pq+*H3EMUBL%`E4cs*NrrzxiqS)bC zgA+OwZHsxlcSb|=bC;tBp?!XJg%#4S*VIRGfsO-I6JUJz9>R^pS1jOhF-*k>us`@Y ziBfdY=C-Q|3|hOn%QFtgVzMl`gm4p{;}{d|p8gk;B^r519lCW-FZ(u=Ey>wrOd5uc z3>_X&S}}sG^s@||*A=S|;)#DBE6_#PVmlB{s`h)jqZ5I^rNw28e+MBA<`mr!9eTzoygyd>$4_CHcl+zrlG zBRwA3*EqslLOKh%+?zW>mw1mcXzI?Tz@K$3aH7PN(m~Mh4gMGGz5#TLZ*J~~AS|N( zE1HX17Q_c(wEs=KDFDL^_Wiq4(BZw|7X zoV?r-^n@jFXL5F{0+8I?EVaiR$atz_f@s#clWyYY^a}XRqpVMJw?8#@0u2gYP-}u? ziJ@eJ2bwXe1(t2QUd`H(p0MyN223K61%+lzV$;lljL`yj;3HY*xxvqW;rHSxqc0-= zjbf3^Lac7#%*;A9g@kG7d@&1&v1ZYUcH(pW6jjGYvIYcIA^C_9gPEQDkAL}v5J(o& zz|iXmbe0Q(&Ib!{@>mW8U!KIe8uu6%R^bU<9G5;OztQCgbw`~r>aI~sPv>cnGD0|g zX}Bhns+;!K<3pI{PW!Fe?IGWFhhXdCn5SAl)D^raAPeP#a4W=DtLUFgEh5UMqHXUk zHt-cpqCt%N&)LW*7V(XWY+AEirZh7M59i((EoWt8Xt!g`S$-XR(o2OTGlTX(c2G0> zBcJ^jr~mu~3-mi^&)WbtvsZuhGZx_I8eAZU#iHKtN8<-XN^zn^!V&=^*%wt^HVqgZ zOpG6u__7zqiekuw7jP}LByGe{tAQNIek)v%uzDt}t@zxoR;2x44+|$6NGRnj1p0R6 z%?%#pYHOgwg`0Qul}X0SLDEUkiZ)H-Nsv@}o9q1^%%6H&-Z}Zu3s*ufMIH3H=30?U z*KtBA)08MHiEzpPYi@BB&PR~YQ4~&VQ3#JHZFONOOJQRs1@VG@xh!vj?~VnflBK1q zrI0x7yO_~h*Q8#rN(uT9(v6nOdq;mv&hq5dxGXug31?e!e>7eU>*#i~p*?x*y}O$7C=97*}?0Faj5m_+^T#oW?x6fj>s-$wV@`!O_YeE*K zjQI@@@f?Lr7C=5$N}EESaAj;Zm)`Aa#l>cRtPFL1c75Fn02&SpXkxxGxe=0??H3DW zP@h}_=3f0FPN=cW;!0dt=6D%C=x7l1;b-rB3(JA7omuRK&Vec&=ljeQr-}vU7v?zJ zOBs~1xlwG$1nc2X*b|@|wH}tgpFyXcbuGPZFe;Uc;q%U!|&oN%%|>!f9r;(0LF7;1W`dSdkY)1urlC2yI!_Z~V9RJbd~U(1F;y zI~MFAR6(aJ?ti-7A`&MLz@fdSrYZX{)Ybf^DI;F%F|cCN+YE;`KGUtOj<*Cihp7TI z1SW%5jEjO#^;v3qn1dH+3WbCh91Hr4pja=+qgE0zh}jb}$>LEZXQ(UW$DMrllb^!0 znVhoXEUmrhP6VZJ1qi5c0`D%}i3!UnZ&-NVFN3SGAh1f5K01K|sT_B!Rl8o#JR$|y z|7bl*(M8(l#P4~o6jIruKho8E$tz=*RH}*;4g!&|XrghdrmkX(@&Y&U(C%?pjG@a;bIf}Nu-E4-sKHF~F)#_}!rN3nm zE-q@)Jik?)Vm~e57u_HF);G%k@Wp)OU$kTGc^km*pa1N?{aYWm7+WcwN}X!l-DWc` zQIAccmBl^Ig*P(Ex!nl$n#{MjRUtGO?kf(<=I-Kx_ATWD*E~8yrg!eOQfkZ&&ZvZ- z9TQEoUo0It9(kClD}z4N%npksk{ynX9*w{dcHzmH97cLebTBm{PN_WY92%n6&J4d(D&|j5&8)GB~;17AM5yyW9(b#TonN~NZPnNd*W=BR!iBuK|xms3H+ z>m|sx%^zCcG~Ied$peg=L#I>kU`KERoWFWyq875Z2velER&)uC^UiTDontk5J3UIM zRvrHvAJ8UA(a9j_iIy+XqHUpS&W@a7 zNre%Gu5xrn4O$avFgP1CIsn!oWEtH1IOB(eo;94uJQM=48-DXKfWo^PU=c=eFly}l z>M9Yrx^s1K_!(~jW@9{#AyGhH(8J_cgQLu9RuHmbR8AfdhCi_!5ntb8Z?J9?_4mS9 z;|-Y|1Fa01MEoHv;wR`Qg+9zp;^R;W@FS1zeR#Q`b0{os(V(FY)l)qTJ z$?n2$De0(HP*ze8%jw$rtdV#sa#NiimtP(QdxZ*>*eBH4tKR_r<&!WAn5w zXyM4#>Gd@ZX1;F{`CzhtDBLyj5T28Ey~e4N9HkZ;>Z-@n&dKe6-XRoWV}8XlgkG>( zlK!M<+tY7<K24@F zU(dvnBg@kza)KY1O@j;tJ_wg33ajezgR@VMM@v=1mxVqjAaN27W5P&*D4-DU%H&cX z7FB%Nbcl*9e^1d_eH^A6Q_q}C^OJiLR!;y{R`}>v>%_V~*3fz6h@Ne)u?Trs;^wSV z!pHHOvT2I0z1wVVHy4X9z2dIs(GuW-K^ze2tP3aoq79~_L13P5H)z_37Y(Wf{MN^r zT3@n&LC1pQOmCYkr2IYz+M+fy87nv$RK-VV-2rC$VOVq`_!bx|R+}7zigNHOI3c-4 zXq>R*?k+Z3d__B^>sCh$_H7y1bmIL zW=8@gbVB)1cTGoGOByT7x9~dz@^g!QiScvbm=(*>Nuu(kd$Z5T zJ9WA0hh#>83-pVH7O5VjK)2qlUyQOhiD<~N0}g3obq`0>zZ?|c^3VkMfPaKB804wQMBL_|LXeM?NXix(?2Q_rWl#o9ke_uZVZqq-(53Gi< z2^iN)Bvdk+g%<=-n>LvXc}m1c4DwXXjNpvhNO?H!^uhu0v+WkJ$QUgp21xIvVwv!1 zu8tlS3m~?MvCV68Xn+qbboc708=C`8wLOb0tKkE?K-S+(DHt5rf< z9X^~qK+F-Mmd>_Y&1vF?FgTLZ!oUX_?Urpld_LL#>SvN8gnh!`RHsH`&=!N)~nw>}O9OusMC9Nyz zZ3ysLE{e9Tq1Ot+UBt{)Zs}FY)6J5~ft7OO&zlBQGmn#8aI6M)E~lG<7dj{qae5fL zoeZx9hMRFx%8Y7J#U@uH6gVKlgqg>u$Smksq1`)*F>}_&ykmvrq^Z9G$xgbQIPw-) z;#MY^+kBnDdCQ!wBWx~ghhB19bSZKu+Vy(w(5ITmiGh@S0K}s^PS;ZYa}(KuU^Z}c zl}+?$9`SkyZU^-C>qi61gjcb+U9KZWuZEz69%=@P_b-3NYd4?Rv#UYc5H6 zpV%uEM$ck;zhs^Civ{N8*n3S*4d*2cQ7oMKz9!mEELCa}h9&sp0~>8bnq-X~7R#BW z_Qh*{B#Y*paw2qxf}Obc)H6j(iPr!fP_v(0+%rka8%NIplm}i-^~`*kC7_I=x5SP~ z&8;v;Ua&2JCKUtK4y$UKZ;c`r1<48_N}_P^P}SrrC#prXi)Me}KDU0c0GMK~G!{;w zIw>nulP636B*dw9Aau^e6r>fcMhAWVbbX(0w=}Ku>83WWet7)WYb8!3W#qjr;~*3S z5#;yeRF*f*yt#QC0jdB=>II1_n9gBl z@ZQk-lngXQaO-K-GcRi559*5ew4li2qfz6_z1(6R3z@qXPg8ZRmijI{?c5==q4+>m zJr0y1lFeE2O^9532v?wGCds&Mtyg= z5fdH?s%fA-ft{W<=ZZh^uRHdsGKE1*z5^l=sn?{JXl z$C+rHaG$p86~ax)rci_u0v*(7vOXmK$)pXQc`*cPcZkAKhG-m4Ap{|_I0-)p_hkrM z(9|8~=irB$go7|1s9B~yy{9&EGvL3{7(@euN(&}q3^82FkdI=&s<47hHwn!MK1>YY zYON8}g~w%t{E;}RN&1%7Dla@5ierVF>p?qsY8i%+nHph~JWU2tk%ecNjmG|u(^}U> z+a8t+REp|7TPKMnJGLrJmT}oMb3rQ#$yG+glb9l7xH8UN$E~ZP^^93bg<>VJq(4A~ z%w1A>@U!Y1dQ=~l3pm`kqVlE(mOjz#`C#W$b>ko>@p$}f!f7m7^bt{+$srqQ&s~Sb zK;AN)6dpYaCFljrrRP%!^OsGqSP189XNs-^E5YDwZK70#$-=5LS<-y#)9tnL)=V~5 z2GS7#k!iKtQ7jlqafCHm83c>KG`lxvQXqXMq)PIW!MUT%Wfy_~;V>}^vL#&=0zMK_ z3D}$`nuZZ}=1xYJ=Vl&-f7quk$BwP!$;QYLn=(iF zCF3dd#Se=Gq9tkP>*wTdiP6rv;Dh+zS=SEE#*g7oXsi4L8PC4bb34uLL#{v_JubpB z5U(s|ZAZdCn}Te(mx&Zf_hoCtehN#&5U3hbT zL(GCo3-FyuH<7cq%Mnhl;V$zlAf7))37EAN9_FS3J_^265q@c!NK=6CxtV|RuhKFr-C&g)LsV@ zML{e^Uh{{RH_hF}h9y$)E&#JV3MCjSZNSMQPZZU6f`yN+u6Xm{H2&W2R{!Qj9pHD+ zehMDo-}s9kBVd0FL4-0*!^Ra*2K+=7H4~{sdfs}scl0i#z8{w3x=K74d83v4=;~^a zR2=2KWYQF*W^LSVHUe^|S_`Ft#o!TkQ0WAQP{B*j%P_ZXk`CXyL1JEr+vNPq zN7!NzxAt7S0N%&N+wUcLq!4Bx-iI~PrF8R{*`Ym560Z2rZnc(Nm5R}-CZ*^mTd4Q-UhN+IiX(E=7q%U0GdI_jfVpV$KqCcimL+vO~H8h)xd}=rp_m1D0 zq^jmB2sef1%M@J)f-W;7#gzWGh$+xG^@H=4mCX(1v&DW4_LEk$9*AXg17cDl^rHc+ z?6_WQm&XTr3XzPXch>wy{SyM-U}HSKyv#K@eXnCMJ1V6mfYQ3-U5 z!pK>mCCpCFe)r7A#J^-xRJ$0BB?=!`gjA>|erYs{Xx_(Md!&#bFFvBp>jhXFw^CWn z;=+(zY>C}V!!lG7kuW{YrXHkR2se1?S+#2K&7J%y(amstBt0*t0({U&C!P<2E!J~ z3fqT>kH#@^D(OHrYOoo?g4R9@wBpNZ3TSxcDUT%;bqxT~=a%jgr=7_kj&FU$fbSQJ z+s#GU+{|O%DGhM~reMDBc)*!gGwowsk7N*Z%c&399AVTAo1hZx9)dd()RO94G7dR5 zkw6$jRikJYZk6N^g$}^Hmm~uEJApNyyHcl}NnCyE4#AzP-5%b`{E*e|Y5z~Y@x}jW z5;}#A8q`y{PD_O08^->rEyrbq!W#(s%JH_d?KN>n!e%-pr(UJd?-}_;6NoO^*nON+ zN550ye9q=;NDsCI%{(Gqa_ z(N}-_gMa&P<}39@JJx!$Kl(iH|LA=$|JtWNS9lI*SP!u_R&*WW{PUe?e%=J~!`-f5 z21>xf6J4-AHOfwHnB>1U=GQHFR5O?`5sRu+0Wa%TD|4%Z0)0&5k1;iiH4?ld-u>Pa zQB0hN4`|Qo$}5{t7zPDz)nA11!Oc;bot4SVYpCEY)N|;|+UJF<@^(07f&c&@07*naRLKw}!0Px}9(q_VPFzjVXe;`qO)@ng z82iP7+|Ftw^R17KwmC8B?Zt)OR;MG6l z>6goXu}}$LhUoV-?g>Sl(`RDVmQ7RM+{_)INxMB26~-{4p{}{S6Xn2SK|Kz#>=e8a z$SL&T(^*b#n4Br4CldQhO<+~7tc=7|Au(^gMzWbw^^{FRb~FuNG_$+ShCD`(UJXEM z2$%J=wD6k#tRW;ijlR3XV)^9qlId;v+SZnXP-ojMC0l+bnuwzWn=rF(wZf`S{xo^8 za<1{p%qmQNGTGG3!%eFFo~u_UW$uv$x0?-K&0|cK-6yhmA2dit7j7Izg052__$6N;4DtHi@}NEIr)0Y?|D^eqYx`+h*=|?~Ih^ z80yHBGVuz)2~Rr;XY1X?1z|6;E}7etGp7*(qK9Dt-FNNDwB~1G?=@3OM-|x_pZcg{ z9Lf2VbcLnL*C*PdT;kP!*L?IB6=LA~s^`g^oXK1{w9#u9MHty}J1s#&CV>?bwcl;X z;7a8R=@$zs^AhHX)Xo)y1@MT+mzQvK_lpIsfI23tD}=LC)q`9)0mLv#4}7d?MA)2( ziijx_Y{F>Nh#^J@fPov6F89QOOYB<&aZH*aNk5I8^KLK$^#kNb*B}Dv`K%;zA@7nF zNeWcYRgDZRM#Um{Fk&OGYedLC-0hR^|H>x@Ne$(im^aO1$?5ko4KaSWFV{4kqJtFK z)0kMQo4qHD`2}O`DUIAnPz{=7T=bel)yKj;KfLcH?4%DAnl%tFem`rwr{NA2u)2Gf z9dj3*z7v)-_SCC0*%(@EF2qMRJZD`tS7MS~N_l5~90F+`yr_f4vbC2|Op5U%t+)j;Ng%wz879ok9Mtj*m`F8`B%UE!UOz{+Vc*9{uA$g-@p2E zf58kfe(T)iqq<>8qw^O?-vB4f_y)!c>Ci(-mfodV>kC$>;>WNDzTBj`ez(KBddvz9Be1uQ7 zQn*;|;-WPs9#=ks>(FGoJ-WJrOOu3T9ve1_T$=Z=TTnfldCTToN&Fbmn$#{0p^RCh zEIx8U3ajUzpo$9TUF-ILok~rGbIw_p_26i1W z3;gNH<)vDc)gE14DYH&58Hs9U zD>6bmu=iXonplL8EZ(rm4cWRWOegO)d#jNSr&8X$Xj_C-XrIrv+a#_{b2tUok2r*Q z|758bLd{r7B^7&6q)axxb#4eH_sjtl%d9wy$5xlR#dD$j;cvgUI`0;r5nKi)B-I4< z3Q4ssn+BjND*(~%B2?Wk7WIA?C-?-u-^Z7iVFqKf*}~M1kr%nz*{#>_f8~|@jgoJ4 z*!i05GnaQSl@4j)YyCq0cIH}&mUwu;3hUfDn_1^3 z0rk1}^bqBEGOHU)t=jLCGu~oBDbF4Iz@gJ=$^#?ydyF}ro5Z)EsLV{_64`CcDF&03 zY@E<*(Jz-yBT-fRJs{*FCQHM!-v8_W{_HdV^x;8%(X>5p1K7;|)91dR|5e3na3W|L zOZFi8hk*LEk6SgFdh$T1r;G=WFdPMh4nhNf@m#Zz@O=p=t9S#*I z@GQJS#@*&(s4Kn*_(De0qV4R&+SOP^oZkbjREB(W8zYgix!q+Bg(mq9X!!xG-!QC$ zh@_G^6LF)^R=o$%*dY$9Iood4@|g@SQVOju536^($|)7}{L_RY z*h`=ZVQ&lP2;r2`$At?BBoEaX9fNo%B6l<=d^XedmKc5}i11;#pg)=MFBUWIn(GII z!;6totO8+`PODz2Kjb$YI)vUm0EDYqj>a-DI3^xnUMjH@XNvg!eH}5QoNcc$y!CDe z+k0?Um@(WpwgHGl=p(TThXgdB?f$U70Qi)D7ae-4$jW7GGBmy;2ine2(KgX(fTQ}i?n$$~ybWCBF4@C0uXS73A~-NIJw}Mrp^3_@s+*&iura1J{3SZmw`h}d0j}Q z^lHCXYabVsO*58F7NG4ZKJMhv=yl z4K1}%IlIYh1+B%)0tFq#3&hd;@c_g)NPJr1QBpXG(MckRyt$d(`?g`C0={H9pFXg> z22Gb?54yJKj8apU7a+<-p+S4_P@y#ocMVoNwG%x6^yfZ+!u1tbW&@P&R7TK6aBAEpI;s1Ni!H{2g__bnCSm zEzry$We&c0#!_;1O>X+4ZOK|x#-?B*ktf$b0&mP0k7fr=wj{oei=U<)UZgxu;Azlx z{64)KEsO!l{aVM8VTyLl9A>(H9`ZLC{>@Q>zBTLGQ|Hz;*8+>K1u+<%X3o)WaB<^OQP4eHO?dtuGoI?~2`7})q1s;S&!h|b@|Jmm9M6!z&ZHL4P zGXuLJPkR1Ju?%GoGA9l}P|ReymsyBzr07%DMk=q6SM6%eQJs6O-ChzM%ckkptMjW@ zZ#Nq}4n$>x(^E5RMh`3)NEQs;(ZoWO+U;h;88L^Lb*c28qL#netZOSTMmW@U!jm)^ zQm9596dI%&=>QTRQBYs)Nj4}eq@{dEjT%zzHW*i3;bb-mAKp;a7)qxb>cW=8eW{X)V@};J z{~^~uTx}lSa+C=D*f${lpwKX1brdg}Bapm%;gPg1H81w>^vf!^}tTWh{Nvn7j%$cx33 z!r@AGMAG`@0?8D|hCSRwN+%@P`t9Zd!B7u^JCQShBVX-4205wDvU|jN=buZDjYzsw+>v6fp&+r6iZBk&>VxI&`?zBll@* zgy3YBfkv4XZCmYjNfJ;Z6OyJBq$ZX;m!%>#$(BKynBqz&-~QYeAntJ<-#e|S-mB<3 z#1YX_rIt`OjXe!=hg=l;)ck}n&yS*M$LG$yG@07omU*5{tUCrI1ds7*onVB?zhQ{0 z>fk72(X}(N_Ps3RNPVnQfZgD7)am4E2<19fYX(}3X_FrQj;z1)t1Flm?JH znUnfO2=qH?&zl6x%>LP5`m6nN@$)|!@ZXo;d;Z#w9_#0!sz30a^0gm5{=j=mGkfjH zlRtca->ufK{pj(_?>%or{V*x;ARa9$nnf1{{Fk0jk*t=|OAGK0ygBbca;70JF{&>` z(+*8tI;`RgzY}HG1DcAqq4te1TE7w7$GsHQ)I&FT9d81e7GLwQTnx{$QgllWp5Ng@ zcslHyjx7E#_%y`AY29q*l}QRsf*nLLBVEfP@Gi$XV7N?ZliLj9=#bVZ8F0-hiaJ-McEAhELD! z7KP7s=yXQf)w&ZlM~t@qP~jExlMe5Ges!f6OiJtr+P#-(%KZtEvy>WD@Oh5LB+ND} z!lHE!Ik}8?!#4>UWxiT+7NSXNx4e7sIp1Dv65B7CEPUU^v_mKZ^TE%5zHFMiO-N%_ zS(k^fQ3MgoxV_jAWzdVw=l6mBm}mMuJ09n_F`v+?Lv|6|G?y)4G4!zw?1P*m-b6>( zgmV1YT7qOqrZ4fd7jaeX#P|}F z|L{auOfDUd%?1oCHSE+a~tmtylJ%Y{{nZz|RG0!9a%uURFp> ztfG5bR0$t6oCkw^yV)d}oK#$ku0{2)gRniD1Ve$kh^qSowjT#UN1%|{s0UgOo%5S} zC!(j$BRBUDYvp$09Mv_!^gzvExIm=H_<2t+ObJQz);npemK{5mQ7Z8q9vo9@zBKR zQ-}c@{N#Hd{{-J*kPOv+biafhi2P%KMh9QGv$h4q3~yn*+tJo4+z&Iq|6XvoS`qMSpt+ML&pA|N?~bHKIqx_K;{RCF!T zXda534AoEz3FCn{X4&54j7-8T2QN*8#{p7h4G(sM!gQEQ6X##6{chHFLtQC{v+A!8 z>qg)E{_mOD;jK5{dh5-%4xO33`OUAJ*-u`7&CEV*_W$B0`2V;)Zv*)E-}SE7Uw-)y z_MXf4ls7-_`Pt0)-(UF9hyUAmzRfG&_vrlfCy(*L%wB);_!mC(VKaN(EpRjY;~)BC z-~7&h$6x>COQ*cspL*%+hd)02yFdHqBMB?s#oBowS|{S7G*Cxq;pGhhFzE$Dpv(7Qz^SOCa~~$Ei-$3c}e9jIa$q5ToWB=sOz%1VH`4U zr52{DIMm@1Wp38BC1-SP!?&A@ zNz7u>$)^4md|=6Fi_vlQlQS%hj>mg1uRX(fV`3f%*fBLEcTJ9` zz;k)iwCgqZMeRH&!D!Fu*78VQ%M>OICZGQBtPMh4sY*O3C$X;+)WDxI?tdi1YT~;CWes(ipaENLJ*|_A=&t+*W1~Y zq0T#)*$1^e zxrds=mW6)k#Y0t}UtNtSg^=_nGp@^zNFVyvuGb8{(C6m8qRdaeua770<-rU3C(4#2 zQRpDAtop5@9zM>aHaiL0J`)5n2T~K=GB-6XUd9~WqU{)aQiK`}WBDA#+%3-Dia@kb zf-%G|&;sIEG4@J_F7}Hq+pJ2wwp>Hd)-M(~9drN(DJwIHgHT+|o91+T-TUdBgCMyN zJlscy{q|yGo`s|>siil*k%R$;5)2{=Msuv|o_ypIrapdHh8*S)abSUB{pRuIC08tx zmNBF!fwsCqZbH#^b^^-%dhR~ak(a?=Q|Cz6?a8-3`-KxJu{${*Y=wumG5~MzOgx0m zC_GlgPM$%qF?>l4fOZ`xk_9$KOSrDfn{X?{J24tf7Xf~rqum}t5b7?FM6Q&4aVo*b zUY~3I-rXY(J%(;W>Y)aVmRRJkxO9;B$VXE%#+{QGKg-;(c;BI}@tU>oZF4}hM%f{|ChV({?DPR-~8s+-#T>VP4mCM z`@3%)-h6l=p}jDG-)Vc^A<%tU-kzO3&nG%CiGC(%(TB35D-@)s7#eV6Pv_h6;NYmXg?tM zoX^Vbgj|J69EPDnmDh1motSoo{v^3Gx{3j3jNBwDKV&prVYvK#tKeSf)UtIIt<#I4 zPam9ik?PJ+S3t5k#f-76_j}ya4Y`_A$zo1Ghm#0E%PduXsc(uQ>KBW{Vlj&e7m}6? zj^4R+`Yx^BoB$sd&NBM>Ls0-C-*{PdXT2S7mG)=eG`ANU#XkJG6<_?ms_Okd87Ryz zI#4z@l~+T+WN{>mt~)Wq?996EshGaK7q9MPBD5sE6Y|6Z<3=bCaa=buipR4m+Z)%N@i_v&JK&$6%t=DgDiTi zfp03@_>FlGLABo{b&`{=B7Y74a?F|3R_}I?FE1G;oyfFfZM?1)>Jv>=$9z2`Vog(d^_7vlp!MoKPc2}$NjWa~oM)ou-EJDz_wmeV)9>*5TvJ$X1$5V0$-rR}-WprL}CkL=5 zS1cZsmm;$e1|Pvy$<*MoYPSmzZB|lCUp575#k0uzIE6&U@g{EvdPWu)gDmuk%;I!m z6+uh1PY+&BxrmdVincrX&OiAKSHB50dEqf^7Q+C^VjUNOTtCEhM9tYps4$r?tPnxr zXcnJN6w@3AKHFaF8zz`g68bpQl{;EPDdR*-NXCoz@mb&V_|(EA6qJeY*W#sVPIH|+ zy^uOg<^Z<(cJN<{^11t9hnQF*K&@Rn)b&aDZP$l_1gXSnS5c-JKlnAwFCSBqxNu*8 z{l~Ar_T!)bKmY4@p8Vvkx8D5Gk6t&kGrPUDvnNkpf6w6uW_D|5XLgGZ_$xYz@6YVc z|9i^MY%iJpWqZ-yLHh$SfPep8@4A2YyYcxa?|%1BW-~M6H_x%X^pd^thW*^n*&A=z zOE1|=FOA=u8DuW5`QZ=E%-(pze(;00fBWTo%CG#DU(#<}p0ud1!+#6s1?W8pHWaw` z2pJb9&t_hA^(!Pq^qxx+uJNL&c*>*;0@pAu*UTPWT`5(AC}*7rIs_(dN+Eaw>nztgb zY&LgN(IHD-X4DAB8aX&ynX+XTjQAyraK z`Rl_LHUAU{=ciJ=bYVZBp@KwR4G-NZZl+GeVkjDd)WKsDk^h7P&f8*#ssPEClm76j zRA}cRcGS$7I44b`JE=vl%UG{Z=1XtF6v~HNZfRI-^Ju*fjvn+n z*b*l8QWCsF`%3J?n;d3(W*&sE;1X(5usWBso>;k}q zMuZoim21ifVrEFRR{u&`zQyu&j$RQq)uGM}NQ+%xh4bv5ZMQ50om;s+wnro02PXlU z{7GV!6j}XYd{gaqC{$*moS%3D-x;b*%Du z`=nu;SNk1M2}-TP>s==|#D~PyJih_(x~O)08qztAqyJ61f%pP$G&B3Z00030|LlET zj3if<)=4{RCQC##RhsVAM#^K$D`g@O52zY=U^Pw&c%oa25Ih*c(*Qysp;;jp#lwm7 z#dpuWk@eH|jGC=0%ZiGQjJW^z{Cwv-qxZk@s>|^uv~y*YZ&pN_Nr^*F$cva9fY`{r z6{3%bv!vj&R{swtu+WC9dZ6meJBx#QI=l7uzT(>P6&NF7%k0~4>+_^6Ev0pLtRmBo zzMS0`N>hg2lSSl=xWPaf=f34O9kzq2XvL-`Ha)a?G19Tz*E=Gjl5efCGsJ}a^%@~Mc3sM4!|I4?+%z{m%gYvGFufcGWag6H95z zrY6#pX`W(mHmZ3aOxGH%sownH<(J2nZWAo@)ohy8_4ayQO{Z$kJI(WvPLELs zBtfh7WJ&5~Lq~bgJU61B38~6hZ|U6n_g=2|k^jNkwdvQH&Lzxc~>%vuQn@v2x+68V?P3 zh(4bikMWS23T@MEwvCZ3i!I(*50{ilCHC$bN!zBt5H_>MeWe(#VtLpRlvwPpiX2^* zU5d7_uIN+EHuQw_?g@0rL zHr)go$#}ii@FWTR*j-N=*+2sShCW0kKmPcW?|tu+@Bj9rciub8s_MfZY>CL~2VeNk z_kW-KM9Z}TeA&{7{7mZpr_adg7eqvU_yzglmOT3-X~xk*odz4;c`Wh=?a#;b%wzjk z_miuY$083z9*b0VEu~yt)lHY5`qHg;{`AkOR-lno3YBb)G;7FA8yDp~@D^r5iY|PnKfkX)Rn3+PmV-`ZrL=GIlNoeL)}A zSVS}*^WUl5Sx7U1ky4eFjS)$Qm81@F)MtCWf->*^2^EeP0v~6moxi%+T^z(bWUla9 z;6Bkscf7ZU!Hs{LY=V1_i0mFLu!pc5ECUCz109G+J)N!Z-r<4cuZ%716KjXxsW-># z^{xGVCza`#)@Hkjag|vZ$0Q;THQf#&@{%Q9M7Y0g$sm|P-MXtV38b@IiJ7Z}l%G@E zYPJczEYdNbiHkOl?yw6Qgr@Q6vnz~#>jS&8sxI%nDN%T&Tlix0xhYFk5uGz!9b99I zAQRgnFdrNQQYlG(dfyr-b|D4wh_JOWC%e+-|m^ zB&*>jjM`aRf|E#OS8YQev{1;pRU@xvGw03L3$-!n|B=~FBH}}klV^S0M-9LTqcFM< zdNSUjN^PDuWvSpMV0@TpYBOGpM~YJ)B@N}ylHP_Gll<^dL^K&qZ-I?|=*;@AdP<(0 zQCgs61=@%Z3-^^b0bwleS6Nkca5D>k5Dg2hD%Mc8>iTGJ4}f{7SEEt48#se0rVSVM zQ0n-i0{GYXd4ARCe}3~V#*GXOAuKUM;5zB#pXy5tnkMyx`zQ3any!-BB5&1DVa-XC;Z;S& zvMVAl?EKFCU6I{m**TJ*dGCcI5s~{A5Bq|>`1vDwf4BRm7mnolBYELie&faNLPYNG z$osqUmG`=vdad{S?%jFyNXR?5v8JP-n20~8fjDqbz!-+wHC1$mBCld^y z4z{B-723B=7_owu;*OKp+KyhhPo=A0Px^H?M;7T=AK%`~C`+8s;Ieqv5}_d1Qwg-R zX)&o`tPZ(Z$N#F`t`cyZ6bH>ga0&-dWtKZCtLlgImzcVr+naUBrX|353axb7LcUxo zv@CW8wiY16J(E+;4E+l0 zcpb>X4By~zV)tV|a7M4aK?!k+H~WH6JrTLJzwaDAHmf^!F$8VeoT(7-nHeG9`p(^< zIVQGLC0s;MC!lL7<2S5VLR+P8T8ipcL{5wR*vvFTyCTmbA(@JNGF7oWME(f(#mq3M z)X$8t?TP*L&kJUU_La1m(|~?FiunX^#_6#lfkK!W4L+=g@k*4a!+CGf`%PIsoX=sE z6M}F%TNr8;c6&D!kp-G3L)-&HrdVC7$k(a`IZZN(2-SUnd7-+QKPj`Sf^9;9JnYK5 zNC>D_Z_5A+u_&$!$9=sG13p`Wd%XA8{wfcpU{({WuyYZ!I}u;pT^y*v0x*g;WX2L( zjEw0RQzpFeYW-+F=bZCGyU+#aa5bCmTI@j3X`#OA5Nb|2%*{CuyFjdh;kVtdq6d!m z_7FrC*JS92j)Ph|GdCA3W2{(1#CzCE!eI{jUsl%|hXpC(z|V{k%V zdkz3#w>EYh!!30F6Xw>->e_;n6E=165^c%ictv#3(rM#`LYgu5T8%A&8jjcNk3at6 zJMZNp53>51U;FP{A`iBz-~ZtcKK{=4OY+mj+J-7akL~)icDg-vW#>qCk7V~)MC8Ta zk=^6&|JUWR1y0=$>CelR&t3uk)qnBtT+{=L{zzdhB3WH^M2i(6CPo%^5)o60NJhjh zz}IDU1zu%Vs9a&uDt3I0iQFh7))}~Voy#$)(yKRSi1#b3OadbW*+OHqS_51O2~Vws zr8(7CZ#n~iZtMvf1RG1kTuvzj8oA$%Y^j8{##(`d@-$k+-K8>$cE#?&g2Ag7@vGQt zdrlFYbg{EhQmQgPi6-bk*P-Z7qm$5We3h(e%0bN}Lu_%!pBQV-5~&f? z?5j+=ZS`0Aa_K}3BQy?bbz+b?Mm!?2;G?^Dc`nfq6dM+o>$iM)sImmc#XaNN)l$G4 zeKBv!iPBv2%h{TFTjz)|$^H9iMvD%KX@Y(dXt#=9=G zx)FMcy-0teOI{-q;j006v{Px$wL>W_5Ld<(XM%+1oOeP-8Fas*Km+&kA*_K|23j|K zo14IZOzi=USyiJ?zfVS37@jbpkFk5KeDj{riW^5vyciUomaH?hMSfD2kLL3b{@oKS z!EA&N@g1(Dnsi+S`e>by@*w$)HY(=2k1;h0K3B@26G9fKCZgOoa-JjFZCMfxt70f( z-+ouC$gGy!E*{S3ttB9A2}otu#zR0k@LM*WVETRe_19tSz-XF%uIN3ejp(!LXZ4J)NBvd1G|K5;9IZQy1n5 zrw4EIyjUJ8r~ygcVMBqjW4vCE?tkOe-hE+aNR;tv?Lw+ri`2p}aEHc|k|(ReqFO>^ zHAbO)$}(&82C=bkx@<3Ms&1kZ*g~$z&59RqI`A2`Rd&kc$?>;DnC5mw|u)X=!5kHh!e2(`x>(Vd@cafn1qVr zZn_?8EkRmgJg!4$RaSY5UFjs|?s=uC(fwR0<%`2*HJxn;kZuuxWVUCm$)a7-Q6x3z*v}Jt(e*-)+G4px*knVbUr7uede}LK+dO|XpPz)_CcVJYlW@e{ zEYj$qTl@RPatWF%iKMQs2@zEoo7(Hy^rW0@pQk5xRZ1-iT{4|lmZFrM%t!S}yZu>7 zhPnSD@W{C6#sY>Xd%yRK3bB{Ro12;#zWn;@2*OJ0Eu0z@|98%YdNzId(%cy@^t)qQ zWxNNPlc2zMsyFi}fH|>e4m&4>+_Nl_;Q|FM-%{g?TXc+ckl~qwQqQK&(nNo%n0;o06&$0k zwuM=ygah;KZnlR&a$MT@;==>`E=;*gz zeGTJRSWuRJ``nb!TslE>5>QF&KPgz8duQ9y%HdBo7eSwdQmRiT@-B2hKE3v$C#)}u zgMzVeOhogrvGEQiu;`m*R5t}p6y6qnV(4>C^(b%K zi^%R`kr7iJO41|@urZ6RDsfhpg=oB9Z&lTa(T8kXV87nkUago`Knv82%yJR67RJA! z2{Av1-l>c&Pg}Izo9EY{KZr%`q#84}d`=p@vbjr7CKGKP!d|+=%vvY3U1KXo^i)Ox zJRI4DXH>V;n&@kjpec8=3kC_p-gXZTG`0#o0K0EJn>qGxs82|~g3?$7tg2)>?ilf* z;;N)kEr=4tV~(-H>70m38*jR>2Hlu$|=&d0aTF?Jm!a08CqU2O_Hkiicz$RN8gFW!WtzTHwZs+7s0T4ny?W6h9UkxP@yKG( zW3=RkJ>ko*zYYb1{U5A)vCPd?;>xJeL~S2YxaR7loNQUTY#XD%ZGaMM(Q%8Ct>aO^ zv~g~(q2Ngr@BCLtW6H?r^g{`i2ToJ0-%_eJR0B2S25Rq#SsnpV)y-~$HL_cf3MPRNe~f` z=A=v(Oo^r}l_Nvd+tF`+^DQRYx z@I~YNJ2gQ~No3Ro2N<4+?4}O0WWnayNz!$tO3u;k+nll$!dzyAu{~@rjBOJ-fwWK5 zNU@oCLL%pCOPm}{InkIMqtFOd!BkMO6O3$|U8&`lj|qN{Lp3Mcg#l6uE4Br21KGEx zcecaGF(Ff_j-B(bI<-IPCdJqF4SL?kc6xnAMFE3Hd50A*gopEa9620~*f~Yf{v5i- z795yJnsTDtU?PD42YphTQ_ZH3;WA<^=H9Sg9bAd3LSsIoX}s1PUo;-W#?nkmP^#+l z0CP$-NdkY}$Ye*va zCfr^q1FS1r;7JpOQ_g4?K3j7jOT zx(oN+Cg-rCoN!-navo5xArBa*gwQl>2yjYZMu~0N9E@RVBZ!k8YK3K}a(xw#3;i%q zG1LZ!cv?3B*zlJ{IpnydTUB**d+*^(-P#9_RA$F6WCmx~a5G&09Isb92Mc}xeU6u8 zRaMPq`k_v1wS7$QYsgGvdDr7m6lb4G+Ap%IKEAytU9ij{8!UKEChbJ-bE+^VNg}%X zoX6OL$C|PnefO1D%{7tRXid1Y)P3P9>W)C&?DUY(`HeHaweI8ReUmoA^Hes~k8&tH zBq8gUeqy1(PKIh^M)0jTJ&CP514d9x(9BXF0jFpCMQ=8XcXQe+D-ltKXSGtB?XZIh z!B`GId2zV>+yC@W{pbI&$#-;J(&hJv2l(?Se@o;)ey$(*j1}NNTI~GVANdpbll@NY z8Uh=W&{h_Mjs~~ zkSV=yTC{PA9q^d}koe84Y~+VaRiB*mjU@nu@WAaXbn;!QmsEEumWRMrHDw9Sgqzbn zZ#-4#E7l)0U@x@TCVYCXb6l0QA;sZR#R$h}B4*6yAi7hE>$XpHlTbs-^W{=g529k1 z=k@8L!rCHtZHxhmNd!300(OqW+l?jwqX^Gj_Avf%HtTc<@g&VJsjX zF-$QQ5ZRNX<_rj_AH4h*VV}y3R7p%=PmSNB(-4ibKtJoOYB_S&1CZMrTMu#ZQL$5Jw&9ucTW>9;myX**om(^KpZH<%~X@I zCgOGj%6l&xg(Tz!$4F^H`>|z;Mz=fcNm~T0w+!OIGdqh#8`J-+)>Mg z+9?z`1{e|g0gy2?9I0nci(-4#xnysuqjEMIo44;G#SH|G-Ntg%b96(}QlmPK0x|Sq z-Dgx2xw-$gbMgS`>fbpMCW= z?|<=9ZMiPj9^fY`Pn!ZPBH#IyH`x57=!xQRd75j2w?6r&vDyYANLv)lY{~l4iLnc| zmWVZ$OSrIXT#>Zmje!F4fd{pSkw#Y%v)mXl+*ugm1MdV)7FXqd`@p_HS z$!L+fU$o)dVIE*}ECg^?5z(M2^h{=HTH1@{WznLYpDz!$*Q?AZthXcolGbfB>P|z) zdaY?H+q^j5+iQ&sNl0djbwX%#=q1!6h8ZcG69CE_ zQUe~Ztg7?^N=lb*CKZP8a6V^Q4F~XX%f!fzD3a_8GZMaR~hwzAyFHT z{zfcIt--#F)?$kELLyl%x@cdJT7ca$?AH0 zwH~6EWcLv_5LhF0w=O?GyRm1DE%BXm2q(YAd7&WLbe(f1fAfvM{Ga}>4}rce=a*{_ z@RiF`2!THQ+AEqVS4~KIlU*EGS+Q(NxZh5h#Lm#9@=QwP!ivRTQNE45BN51#oad~2 zrWdl$GuUO8TMzEyt{M@c1v{NIWxSK5+af>Bi{fyZb2dJ_<=W)L?!B_%nJc+DJ+Dn;vA)HigLP8%CD`ZLzJ3I%FTc^GA?()*k zC}0n0FNSKj7IeqZHpY?&%>>>Sc&Wm2q0jvEoADkn z<-g%KC;j}f*Vpv}y}8oK;En)OY=Y>6*3c74KfM0Avsh@Jb}@6_coo>KlJ>`BX(r_d zFTd<=CSB`kkV{=RWvNuUSzVWJzIjqklx2NeK?kd~hC{0TLXF6r#ZAKL2Z8K#ASC#r z3Lf-m06+04iyTR;-?Mgbs{8F$_MF>FMbifS;>uF=$WjvKnqiv`$7#qag zhEfM-luk*)btU0i8n4%X?%#av+5>!*a;*Sgxjcm);P<}z^R_|tnS1n~G%Jsb@MP`f z#9|AJkc=Rf_V`~#0>rPnomI^07kiO+wnL+jh-2-NVHYQpGOOy5h~lD!&L^kCw?uqu zHR;rE&^OexsW$&;Z%o$0-xy5D zFg&XPQ9tA)9w$kg5)#n!;7)7Q654gUiv!k7NQVi2j(>G+gh+9`cN+uEN^;-Ksi@1o~OX5HIoKhRE^F3}TJep=}?|W~1wcc4Q7}20w0Vb!;!+2T6 zr725IVVzaAqe|Key^FZ!W!M%0p;~TAFOQV7FED%*Xh{_CoFP`32AX+c`s+}_hW+Bq zB+&^Jr)oCcUab{r!qx}an_@>9x}9UV%6s?n2ja(Qf zWvNNgPs-9#`*^RQbCC_!Eo9M8>Y{GD9{B;#}-VU1ox`a z2%~D8cbcOf+PwJa?j4sBd~?M%l-h9i1)243dO&S zyWI5^e#;M^KX_d2Ny(YaxQ(%t0)7+cK*kX494xjwTYuVa$ie{IUY+`rrO+!v`?Fhy z@iVNYV;@ijUNPJH49A>1f_i+#iB*NUg}FssM(@1wR*a=V(dAk!57qpyO}*@}wFYLB z5W7-a(#yWap+`P`6_2js8@EhN4Zm0b;us@p7)}E@sm+VnV4rjBQ-sHe`f3fN8N-&xU(ps6hxZXaZ$ecW=0h5u3RdH>v(TZhhXS|USQSX zNTnXZ^{xGVIKZv>!BE0C4p+JBD8Q|oN%?R--wu=6#&MfTTSg4i)xI4YU%FWT^G?D; z;9ee=WNdSwNQWWlt}{_|_g0gQh*KWcQ2B;_9v5(KU$(^Zs)&5>^2=?MZ^eQ_gU;Eq zxC2zuu^41^b#s58P00=kpRQFjl!$K)Bk_w`prq)YZ|irJ;k*UYfHY6EL6bN3bjOHSylQe#qUl=t|*kZKCg ziJq+SM{!2FZjDDp%z3MGLRHhYr(-eeuSux7l{-rkws@Tr%A+GnMm->3#*)^U@=0b! z^ly%uE^7j^m7a!Joofa7isf1XzH)gw72wRs>eN-J360cVhGaG@$*~v66-Z8+)kaJw zsi#xKZL+_}sSwGK9%tj!TD6E+elj(+F&b)TB$kwe#Z-c|lMdUW*jX&}X0co&x637#`-rm<3BnA*VsM}_*4kKpuILw#Jtx%=! zWc^T?LGOtO>xU53M5LO|nn|B!sXk%_p9@zBSz`_SlX@+W=+i{M#Z*V8FdRk7&@uf+&9Wx|tl@!~2kA}{{(FJ~dU zEW0|-ZLd==AI|4I*^+x>x?;4~fmfC-CU_z5y5}ZjQs)o&rMAPEyP=w}4?otTb-dc5 zFjB4{_SGp@ag|shL33{H@9$7F;{`j-75w(meC|YFwi(6qs;?wLX~fJfJzykEBP_O0 zvb|%26%q$? z0we$cAOJ~3K~#85J5Y};WNeN7(nB4UEW3-vO`|tM(L)MOX^u9+S74_=9k!~vn$6T= zPPV`Nj4%Zb(lw;b;_%%$SOnhM$gA8ELpZ+y5LbQM*mx-1`8xzk+Hh0vGpyKYx%?}9 zPR#`T6V~b#4W!g3qxDz67RQrlfhkB0|CoZuxA)>m5?G8j7*JWCR0JK&W3Jh%5b}=c z+_PA&cqhj=DYC+rU&VZs>_cX319$zH03jN}*A|6>loX}raCB}NB=0C_P1`a?=FAK4 zl7HpfzwoOM{=fwvzAk;aR)DWup28U5hd=vgG#|-GZ>k`e?e)BTz!?2Qcy2mxSr$HTC@1*rhl5}24*WVqbg)cF*Cj>&Z(d~JSql* z=EbYz;8g%k70W~2w{>%NxHX|eVFUOO|5VRrI|mCuww!MkEu|lNAEWymLZPydG)ucE z_ENIc>nf>Op)MfmN`()>W>TJ%Wj&pN;2ITB#Z_&o_*OG1H3Tk335t!#?!ki3P^5kO}K-**RD^+$>un?CV_!8A7O>H-4+Gwa=55?w~SJtb6yKP`*(LsI00A zBOcSGQH1F?hDO0Xkc1sRNy(Q>#RKDujE%(HgZtD?MPAgWlwzYLc(#}VFQJmQS(VjR z7l%vb*Hyiu%e7|FaB&_l2{CID=2dEooCDp1Nlx~Z$deOjbUbH}9f}bpco+?LZeiZi zxgW}V_gD;j62(=bOi_JvQdD6Xp&iFzCMrZQBB4DDuduiB7PLXtXCs0|zNDjX*ktK7 zYC9u@(g8f2&oz%OGOf5iOoCm9x(f-Ik>$N)SglKmqG_2@FGbtawGBmW%Bm^?3U7%PlakDj60xb+@sAjX# zyZ`D9QU9$~QGL0tesB>BO*m!XkZ6#{eOA zYzK`#QK8yf7R+XKyYvo-xvqoVOeUu`fi^*sQWBNQH|kx{$+uNi`EvQ!-})QZ3h-6R zwE}$Q@^mV|GHgoRTv$QfymHSiAt+{LLPK|eab%Z-2OEO2VwRdM3zTh*!b)$t(BG&g z-V2IrB_`Cb1G$I22o`j)(`zUa1n*ZZw>VsmQ)wIGSD`qNA=Akv`i*j1z>L1`(73nF&gAhCJJ;!pamDGN-%p$!%Tx>oYfVN1AM_eG- zso`AbVG?G>FBIzkSYKk5j19+eP2$-&q?xPvJ6|rjCTQmNdR@(?#q#i^7w$b78)(>! zpR9Z|pFc^oB$w^=`sV)r_JH841Lu~2dxqzLh%}S3HZ#2oi5dc9C;tiM*8cv9?Nmu0 zZ)=P-?Au_uzfIBYfaa48K<*Q+ncViQBe^ZdtF>~W_09%!BH8mJIRB;Bkw!6bnohs* zdcC_ixUvb-l_WbI-$Bx-YT+gq?7{`nqG0&lfBXc+ZvB zYb9jnPqQ%^?@=Iz{_AE_g+{0*?GcIU4aAmf(QQ*FjEmul9q(=vmQXPk5e>ppE7FG8 zA8ZSVg8m$Ec7StIu$Ud272FHGXgj`#L}cYBgDI{d}g&ck_+P**ZPjzH)gA72yB&AKtp)lUZFU zxgF$hNY&1JCdA}~SQMupHf5PF59`_V;d~B*YY|14IYIVZ|L4t+g7ugKb?mSaJAs6@ ziy@pFtoTDrIV>JQ6~UcIP3q#Pn{v{WrCM8+aF|br69PxYqrf*+N7dbLGehzPi;h%1 zo3)msm5=`|(@(g18By#)zuLC0(AmQMASM**1kmsLpu}N)^?2{L_M2jfhmiAtbQ0#a z$MQu{Pc@m|BZ+E6Y)xn4j=VDwh2iNz1`GPm;s7pId`M_Yo7<{e9T~B6N#y!F-rGB| zV4o*1>fcsi+lI#&Y6!=Rei|tB6>Br$_5jo51TF%ZyM8%}? z-kUnXh!V^uTjE&WbW)E*s@ZIP=kA7Ql0~|asflIzzD)0(XC#*#~C6sLwI-36v00960?0s#hB6z-? zy6bv(y0tT6s-;0$*|((CS4ej-F$sHPObDyFiW6hPwIL9M*S{nTiUYA&qWlPn^FbiU zv18V;$qz|uLDpc;B#w=3?!=KDNVjc87^#}|294A;_AJ~RRqb|lSKZtBaq65p??=`2 z?e4)0zK3PDZ*_ImTW`G|=i@og>3roYU*pF%OulZ0Svm;-V2l(eMmx%@X_%vMzR;YC z1{t=WEe2=`ABll3{2H*96hqzQ71C(mKzX5~P6P^SCkKOA?1u63!E;{D4f`O7Ud3Pw zgU|}%m9f`BSEs3e@~^)4(g5B>E)C#~KRI!!17sIVeV87R3u z_<}vSNtz&+oJoR{T~;V{M!K9z73el$K}-aD$;{V72Vf~r5-caZ=0Iy8dr!Fz6Y>k# zaTuwWx7#GRBVyQjOJXe+WG->C5E}rt+S^!BZC8HAQqZCRKz}mE!a1d$dFu>uI2T?! z!-eUEf;g7pDI@-j<$ORl>_P!>-sss(m)La0-VdGU*6*O!=XNOXg z%+zHA{n-9qHWoig5X0tpE>{B#udyBTDOHf%K4j`$29#z|RQoAhNUJ6=F#3ja;@k$y zq~tTDeZq|a3Tu~C5U5hVr!iRLYMmalf~(cgJsFOG0FWGC%|+E>Ph=Guk$-K`$kH-U zDvod7y}Kms7{TT_0zwbw`63~T z?v`X(N6!>s6TNFK;~v$J@7VUUQg%$$`A+!=FBe{#q3eW0XT~BXL7vhbBYk;51&8q2 z(TQO1Yim}SAT&HLOZ{2GGl%VP8=F@E=|C30H-pew>3)QP9fpDNIZT~bw@{>J zF-FTz5_TTrnFh(8Jc!xX`5^qs|L_Bs2Jj|wX#j65PhbQ%{`4z_3OWEmJVj-Q>5B~m zk5vcT`3kzNV(8YTQdLO_5wEK^sv3M4Fo4B&5=-<{7Db3$V$b6?CP!~F?xtA~$J<+{ zjG9TK{W4Ha(tZ$%0zRqy6UchOe&gIW48L=yp*y+7m0mYVr}F`^HL|JJn~bUbN>#O^ zOtZ(hjsw+62t9muyA7l3s|g)FKx0;>qgS}d3f;R-mEeA8vw96BiG2)AE#alaG&*) zq#f01iwyyjP)`6j84Yu)f6=5*^RpW!y8TXDJO~@h>2S!2wJjn8B=#JXt5$z9zJ7d< zpI2z=RoQBO>HL89h%#1#lhKeYVWWE1%9!1n?@6>)uKx%yk@<9JsalWhG?O~qW+TpJ|QH&L;$_>aB!-fa)kvCs{+3AGcSeU8nLSm$<8cqsycF6Zaif%d|P;N89 zg&2H9eu}KDlNve|omDeN3B`#+G4y<}DR3g|E~3=BHnAT75ieJN1#k zOS3fEXDV=MF`{N8v%i{R?(!??jX;Ai)yF8BxQqh<+H%nM!y}Ii{}!UqpO>Y3RV}Ql zRen|Ws-B_^uihN_lqRnTerGm#M?PJ94@kZ%j}TvF5aff3&x6fT z4S_7|G!TJhd#l0{S(y0b&uY*8I&Etb%x&A@C<1`qc#PJX><2~rz3rz+qev2mU@jtJ zps-8vjhv1~z!T z&e)uXA;O;RL2{uUVDXbAymM#cF{26Tswbn-Te_ucOdokf+K`5U8i;YyCtFB%z8!}* z%u$K$1VOovAM7+vV=Q^1r01M`2eP~;-<=CSbLlS{4CYcvzgm?+b+4kndmR*|ka&d| zWG^JUFnHx;Odnm}HjvCxEDvtqZip&(S}WhQefRvUudWFe5SEy>uK|Ty8NYh}=*ZY6 zcr`Y>QMSv*IiyRa`jc@Bz@e1&x6)KtM*~k(mge)jS&9LqCR_B8HmZRqN4bA=MBATc zN(t|_W*s?!T0mNQNhRWUlC4ucmkRPQl!;W26wXaBEO1ZIN6QQm18d-A`d(=ztr%zp zw!+FlaST$54RA1eRoY9IAU_D0)@0Ua+5IF`E7uu z?M`L`fbDaCmT(GC8b#7DmRbv1wpD3F5uLOBlDOqybwQ`)V}Nwz2i{SjTHY%(ATD3n z1H5U~K@WYKbXr7G&{vJD*BeCYS_G4EvM9=;2=Bs<2&Yq`(*ZB79N3krEntMDQmYkK z>8t1@v41#$Xs(xf0ts9h;MW7xW-riN98wH~oTaG2U(c`~1yEx-@K};posSqM( zXhDb_!*4NY7Q|DhN(%alWPdhXT_9{@!$tz~4>~X2WX*!eAd`IZO?e+|Yyd@2?1XtH zKgZkk#$z>|`cy6sy*aWCtG2|umGiIrM@P2qzKwWkcH{UssNjJEGp^gIm~?P824V0s zJfTZrw3_uT%_MQ!nwBsCuu*Mb3V^&J*f6p9#07cWguMnm!J8obB}lyF8Y4e3qBeZAPv_OcF!LVBj8nZVu_h6S-N=Em`{F@LKQ zbaoGDgem~&o&v@@uuI5xSV&BSFZlU@j8y}eokmfqg1t3rA4snmTbH=|NLyXS(`xG! zG>|M+mKi1O%N~#*1#>wiAT1fH^_tN6>My+>P)*$}JsG&sa?BRDy4=NeAvG{#pO)?` zo>9n<*_3t0))OdbS2*>eUVj)m?i5rlr}d=Pd;evw=(v>;Lx;d*VfmV+?$ zXR8)pNfj^f%vWCd(C_@tr7d@Hxio+`mM1U*{O!N}_l^7+{?phbaEfv5G;ncN*_*2! zTay+Y0PwcKd`N7)7{6+=^Z?9g1FA>JMZxJ$yf;WAs;Z_=3k!4XsW>)@mtgi_9)`&G zxD$LG7ez-c(9n`QkD`ZY5?m*lEDCh*YJHk;A29RQUXrBy5kr9(UB;j|bj30s%6-Zvdqa)2xj z7P&fpSSLZWKN(+$cXu5*8I2Gg*&xnEr8?-P8DgZ#*hn$fl!t?xckbY03dC$+nB_pT z)whaemP%ozQxM%Hl}QO<;AXLo$4W_|v0j_R!dQ=rsRZQ{ij~KR&r`6u16V&shHZFE z_9qj6Hp6-)Od5=smwYhrXEXFN$VH$j_RGhU!^0g`3quLwIJ|Rbqo2}-gI-J#g2xc6 zL;x9Z2{uj9Vd3eN6HwPlHNmaY3(%C*gB!8!HM1R0P%(67pz~ky5BWnuw1w;R%X|=? z4oAMlP;KKrj8)X=F-~a06&QCDo62Ehc^o7Z0MMU|G1`H1q4U3f{r3z4G|xq_!ENeK zCWQ+2W(nd9?Hgcuap}G$ua{jVM2}I1`*aD#gb(Pm^9{C4Fh; zt6?q7!w}6ptU0;n`M?q<x?l?bVXzqV!+T z-5h#_OffaIM@bR^BG6|T4E(2@HB5}$6oIeBfwb;u|0CIqQu~n--o4|*Q#d2HK*$bu zCF~_Ld4!!W5)y1X`)nXp`|gJRMA~H0dk>yj{v5NDdF3Cac{xTSt;}K^kZP;3u>G zcmia58(VD|XdWwhK@gEtmiZv;k0*H;cK+y>UgzzQGj_P4GJAGU7>6>~%Z`oU8%2Lo zeHzyCuB^L&O*MNo zLz72?lL5e|e&rwhx39ZZrAuj(O9Oagc>*KAum8s{zWccwm2-+%nww%r7ZnWg0ae>; zGF>(hEx5N@4rNt7_*Ayfh7_G469!&alOrBS1qMxehy04Mr1eC&s!rc{dG$L?AmH zT_|Xv@-8kn6tEOE?rI4D4Kv)(dy_G~3l+y` zbx6l|-C&)bYHyavyKvwIUpi%;SJrY>#Z<6k@FPRz{?Od(Ja@Pmelojpd=Jl;gXEDK zbGu~w5i?!wQ2bD` ztmwL7#L7ZD^0IqGqm6{~;Ce?k3KRg0fN)utLB@r#s>YN?`=`Sp(sY+9SP>rBj$wGy>7{&etLFZuYIwTI{^>Q$Nii$L*6MY;%;^t=3-;km#@e zQw7W+hO^5CSylC!1ZG`AfSg`lbh1KSe>k(p*29AXiFbEubv&8*Uyc$WWi+nB5)joQ zo=$ECxK%6lPygtX|LG4twr&qz3QP7r_^xmMc{k$8lqWC;_%}ZD&z}9r$LydJs?Ka3 z8QQsRS>e_4aL^l%`;!SDF;bG`hZeCHV$77|J*hVyBa6O40D}xMO|_bgih^7Z7WcNC z`0YX0l`$)rJBK@jwGie4k){;JvZ_*Z#yZACFe`nL=VG(+G;y#DR33&1*xoI6&QE6k zEWy0NrgIF#OmipWFrYA|muBb&Er`uan%qD^MG@p_WVMirn$-WiEMsSA7Da_inKK9` zxi67~^G(45|2j7f`Kt}5hvO2a#MZRZiMGcw&tUb7^9j(*}GJ2?@6JjNn0rcrpc}tbrnl6Se5& zzlP&={V6HgItt;5kPC>4<2e-`VsdH8nt?y8i{=Ch0Ny%yu~bS9Dge!#UbBUrZ~w!e zCNE^dX65L>zo5v%Pl0wv7G?1}es1R`dq!?E| z2yyEIq6XlbZlmF$ffr1tUYhQZ7mDn_Al;9op}wZr4qYU$!LR%zk?JyEyr7MiIdz&q zMsAftsce6rv1GmRSgzhB0TCHJ#Ys?2Mk)VL#c>e?`CwqA!`MtheB7w!Vw)~FCNZ)d z-nmm%F=)=4viH*#nTO%&Xw-sN+F1PAtT&l#Gt%T!up*AusYLeyl`=*snMAT_A)`!l zJ!m%y0sufh^G7PU_6w4zRAcPnP0Jv_1S?~Vu{6Cb8S^xamup}t4Y_&84Nu)t@sS%RlXa>LWzAz7Z(Vo7DY)xAXPtUoy6deh?&hhk9&xK(}ep zhjls}ZRV?L5id=j|Akj~ctMurc3YaUOwZvN?Fq(a^!pge5dcsID!hAFrfh)AkLi4s z1`vaVeGsRV+Np=N9Mxf&8UO@z!bYi-fkI#xJ}(zcvbRfgG_bpY;X+-)@9;Iz6M+R3 z0}9&7ybQ45Nb3tu*b7lxyTsv^LIbgmPs8 zSjp5TBM--Jje(=%;n-gFYaNjhY&6T!ZMh{jNk)mG##K533v#f^eH19#4is|Xw4X8v zkOR$$&z|CPVO4574ClK8F?O@m zqiRf8_h`)@wqSVJqlekHr=y`H)J2%qJRGoBSflH(Dool!%n+%h20a;$T$ z=qZVhGC*$Wezcd&yez}J7`JvBqR(`%oITesUx?;6-@SO_{^|RlUo6VSqF5}7r@l4& zj@NzHoB#K{e>UsEIkHSk*f3s-LxX5(tSlX+MLc31^QlbTt_1b()8TNf4TVYo03ZNK zL_t*h@rIi$XUeSr`r}D|G6t(Y4VrUu6!CFslgnf_`7ZKskVX60VD@fnEosj0szTf% znCuCTI=nc0!)+gjVO~1vRS1UXFpsYvA4`{q>o*@50!4?bQH2PkzZe+m)hPyq&W(tEE(Axc3mIlUU}s8jUkkW z;pu3E>$5bBkp)&V{h)!(;cG6yhTjVMs1$R&NSAhcgRWk*FHk z3I;cliAYM~gY5j_FTUQ@YtL@qq1E#QL8;Wd)=L7z#uLN3LJir37W_OsTR1!1x2PJ? zq;xmQf|#SjgAW!eVD1Y139e;@3Sb3tkHl}C=tMag@CZ&PBK01i&->xQi|j6kjpJk4W(jgO#s;3i zeQVp{{4Jh*Ivf^C?b#h-q!K_qld5+?Sy%qdv@rkxiAd!2oSp^8^EQygA~i7p6iW5S zHD2A*>u-T>%1WEou%q~V`H1(Aj&|sglyd8}FF87S7m^$vN=6$ayw42VfcmE>p(n*~ z{h->pm&}l4PQEo`pE7=Kiwz-RrxJ((3?klR15Zj(rig!TPy*oxru(Um6Ies?E&Bxd zmIO|6Ad&m5R^3abdgC$C>{oWUBnjI_(kOcC;9%!)23RM#gT#pXilk2I+S81q$;WjLPDW zXaN8A%m1kVzV`!GWDUrxRV7$voMY2+1y&+uz)Eg5@-y0ag(!NoD+%IhH%lLfg@B75 znWkI40wbBnOEUz>Aa}9c0_}1yY+nID@!t1bdEeml1JP5R)pzD>?iR~sxm*_W`LZY$ z%jNlUxy-V~*;$$A%Xi+HFBU~vqDfpV7Wt2U;5{Gt=m!v*-W5Jmj&UKp%?3=Oivfv1 z)(`91$XnJnq;oS5!~SIArI{q(F7=Ws^5BJDw=~yxC`cWr;yADhgKaNpQKOw8-vtjO zIhZ$J8+4?PW6-Yeqou06^pvQ1K^x5xvQT8GNgXdc>`Z zc{*s4w7fgxD>mD_G(8=SKp-jDRRjXb!VU!+7sIE~c2nn~W3p0($PnqfOjsZ>`Es?P zIBg>}0DJwUyMf!&CavKo%o}~UmdC;2E?=$O$AN5YKS_c(ZeRU6zx%siYriuFW`P)? zS-05U-2#>^y2G?3k2vnDSg{W6LuvA4cxfsE*V;KqYgVed%?69Ln#N64u;j99IP*XZ zCafh0u z<8KMVlF@IXN!@086qvHzWfQQ{AP(v&$(bOnCqR*?uH3pRzu%9boj0 zQkFvT;`1d`Sni|7p2{uH!|1oZ}p)lmSuVN_S=g*FV4@) zJYUY|i}`#}mc??pEQ(^eT+Zitp3fJH;_R%ra^?JUpZmJ$j8|Ev%9A zh{Dq(Y^qA3(n(@%4U$K)0iHCT3#X4yN%%lonzTiUKis4(U6YWKyX#~$H0p5fN-!V( zafHDE;B+`T84jhZ#jx`^)Fa7IWWE~@5^gPiC{>{1sU44M5?10@y=Rvn`OvfPt0%>` z;%_|o&3hm1UFX0Nwg=I9&H#qI<~seLuet*ofpr$Bfj1;Oq+Sw@4g}qZWieQwcPM!n z-ak5e99ISa6;E&8ZLGB`?Rf?}z^ckwHTWzz)DN^oAPGM@7q}`FW0CCWVxthxqL*rn6K$F(H{Q;;agE+?I9qA_`YK#;FW4s>z1kC`CQaf)pNOW(-i=m4u|~1c^H(FFY01=`f1NUFIIa`13)>? zzcVkE%POsx|0~OKxh&A!T`r5oV)@QH%c5A6Ww}@^m&@g1v6#5Y!O72;!CSh^*pM zwS)*SWQL2;0NXO;4_UO|8&CWsF%$w2kqxkD*bF9~rk3Li&7yrS*SG#_eWduaY ze|=^5B7#Id+q=4q03G&KZ!$(p4*|w$6m@kZA@g`4)<9}F5`AF5EC4ti4f8OxeGN{8 zu&LSWUNGnK#n`%a^nPQYIvoV;Y6;@FKbfHR#hwBxfY7wIfLM47Ob9%mPBsqv~XUw_W zm3XV7D<_!cj%Q+4h4B+;-pKgwMp%wlA6Wn@F z@VCAno~aL>ox#}|eC=y*e)X$g$K>9!Eavl~D2n-fv0N_me98af!J=3$7W1+!ilQuv z^10`_i^X|ao&j`%pu1d_zJK+~mGd9}?)_oE&rOp3ETL9XAz&MZ9~s2<%*jRguVDYK zyvA4!Snk}r6=X2t+wE5Nk_2NNn-P6c(wAb$lEE*PMNt+-MG&azRFWsj3|LuCtVJh7 zkp>|a4@;xSHvdY&LuvequY(^9FGF=O2uh`Tld+eY;{hRHjE4lmNiv5yM}+VzL`&`w zSdl+JJUB@A_i<%dkrpHW+@Mk@%gsA?9~1Nx0MaOWaCp1v+ozuDD&=3jdgbY-JwCW< zP}A<+JN~s_`_+$s{O`SR^A>s;&~2yUxYV;1q(#K&JW0;ag#30@VJRF(kwxPS4;1nh zRZ$-zrjb|!+snYJc1z|tgJtC7Fz<|n{Mh*FGEnSvpsUq8nvwpk$$FzG+mDjwcegd%l7}*jqK5}Bf(Xmw8q4ezdS_N$wT$3Uoxr=<#<$!|`8 zv^M7I*tZs8CkMdLBa$sfba-iodD{|lW1}6Kz7o%-{=mHc~$S z`S1Dim;LsBz7&UCMu0b#C$J3C&;9d%|Ka@?)<2(V1vtTPMe`kl8$c_JjfS#eJhmF` zWmy(Q>3$VMR?{ll;|u^w?VJx9RH*VGP+AJ|Z?#lF;r7Ts@q%dI0(py#Gxw4th+{7I zBGd4iG9FoOe&$o~H~va{lK|lS+u7^C_51(x5B_+uSQJGupD!1SB?WtzMUj`~V!2!t z#o5)XSDtz1>SA%$?Vg>VU-kW~0IR2;zH)wk*6n(o&iR!qoezKb!=L!X598By)Aah| z+@$j`%=V)++IQB1_G=o_>J6f;xHn7EXdgkI^FfH2c=(x#$^d{lsKEkcwY5sG%p_Yy z(Su5BOrxkj9y?p!Zj0K(wMJ9d7e{pK`l}z}pEudPDBpbJji3Fu{~7@P?qB#W4ou4BBv~ zNM`|l$VK^duy#zI4xUwhTwc>~h%lAn>1b%2%q$Fe9Ua0=py)uM>wz_M<1XBuuo)u0 zrIdk64sY+A$ARUsvH$?(S!nV924mjHmVYEf4llAto1o)cu>c}hv6rRYG+V(+_GhUS zTZSH4d8G>cS<;(K{yzW!0RR8&eS35qXO-uz?rN!9s?y7r?dq}YI7xS$hhI_xI1no# zAul`cm-B#xyqJWE$?%xKVR;O&JHt*$W`<>!bCS$Cu$#pJLf}k%IN*RI?`#YNbrymF zw@94Cw%U%ANLH29EpLl0cH2r9*r1ZD^@VR5vVD0f1=uTxV)(O3NLa zw{d(JjdW_Fe*mO_CyO(Cg&zXSXDr}FvV<8}%+R}rGe$b)uejs?q^~H(T~t)OuXveX zj&#L1dptK9=7{=n@08i2ET740kI}z$i1ER}d{X1myTZK<3mBAS!&viJrTVUOANz=N zQeS1im+bM+eERT#0|0PqZ{NE14gfHk?4b4z4e=+-WK>dM_);EC@c;CDU!D%Zw3YD7 zhQ%7FVlxRZ31}K#IGq+y_SIBX)0eg8Tl$THQ#^`ldWD_bF6DB)Lqjxeri}x+tOC!U zKpz!=Bw^791WD0y-PSdn>GcVxHPCX~wpBT7@|ObtQTTw5IX}*^N9+TMIC}4?95N}W zaS1^7zIBWI1zmQb+?|@unyR9w()>5Y+EHA%fqz0sn2^X z=LydXr3eA|D&22vED{0`tQhgx z{Ks#ttnxxFTFDk2;JWPugg_7XUyy7m14_6ITTRPr$tKPFF;j=Cg95pW#!})naK#P? z3Kybre;eH`PDS?j!A}em+;T3UMXxm3OFSwgS$u&Z;f2aa;c{3#5pSQKzK^lf6+%av~9sbQ2LcU$ukPVYGgOh$3Yw;;(}s^A<2MS>m`s0|BZ&g@C(1~cLd*qC zJOu!V>V`a}1Ay6~0>FX)@$HL@Vy&m1HhXv|K?+# z`HUmW0Pume8~V@cj~P0b9V!WK`N}(EL1Uq1feas*oTM7*JidUT1liCvcI1IQ)Qm5FJLMZe`2>TNd_>am^UV% z4__H-x)3u_@w;h5P*b%Y005aIoH!7OnMGi)pzjE54#v^A(o0X2${_i#IQe*jC@7^( zFqa~G2ovz$rhX`3g=Il;L{Q+M_zC zRMfi)w0}GD-g|#l16Y00Tw8=d*KH@D1N_yS?z(Js3XAb@m(ob3i#|DGq1rYr_~Yn| zS5ulFpe9y=$w8NBNM6OAGIzx*(Bh?TTpSK9@FNzI8e%{i2wmZZgye37oLEeD96OPa0gAGWPOlV= zO0ifp8g&5d#N=^FlH`dg%XSLOmO;^s6bee4`uP=W=trc>9$1ib-l9h&mj#}l1@}C8 z+7{S^Sa3lrV8t=OPr?xHjmMNusaXOrgGVaETo5=wY)K)^>H!_ISR4q-y@-aG*`Z9I zmYO*&RjX*$?|;94|Ni~^_y3MaiaU0Es-q)V!MkfX!`Y8j+VtAgn^#^gtgI=;bl|`r zpMU;m(-RX9eB$%mA*4^4)w|+5@@P0dU)`BZ<>)_^;Sm<{hz^UL)}dSK0uR&l+pTj?hJd<1z~M6ArA)Z;pG8S`ke6e-e`&+h9>n_AtoRU;uM5s z*`@K9RVOYowO8IUgy5fr&>R2PNT<~7$kL%9{yO8iJ^+wQdP%sOjVJNA2*fu zx%Rf`lpdLylBaarvD=T0$EIh(eu8HI%Ccc-&pz8ES`FG{fB)FvV3nOQJ#h+J$>}7N zUE=~40HE#K<)=}Q3G*L81OYAVrH1Phxg4DWG3teoYxyAphLk{nG(z;TW+4D5*%6*5 zBymt$k8oN7_VYI*PQ9ePdtde+#&0phpc6(ONZraAVdhC&VQpR&`Dyhv6{dJbzIxmP zK=QpvMV*Ve2ck{F%v2OTohE3F@GVwO_Jfi9@h$(o_2WOT-|?f%>be;3Y;zWXs(FXo z2?&AyKbPNf@>>%PZx#StcT`oXCuG)YUBelCNvN#6x!*;{ul#I1k~gFw3xmy6whia6 z)c?xK1gdsp;)vda>Ots)0*q(Y(4g7G1js{ z>AbUhK~xbW`(UttA?;K))Zu87ZWaKTsyfl%Px&a0Gejd9C$8rd^WIIkUJ$|n9wL_@ z8g*uqHD`SfA3pTm?|ye`>bTpAXY2Y_-+opM94c`(Z%`@4360%Zt`hoV61zjsua1 z<2aHeIgTR%;Aa`|f%F>ZW%J3p(X(f7^?mT$*x(>9D%RTC+SV3tZEcYxuq@NIEz7dm zr-h%EWm=Y5EEbE!S;vuNxwXB$oA-))P1>$!B?+QaZl##nq}G05L?8HCjmm&)pFJug+k+A3<+2nAwnro zv$Rb4Pn?QjtuXwm$ObPS&U70IDG?ENiIwaK;%XYJ>WpTj(nR?yDyru#H#BdIWaC^e zrt74oy-27mVXn^M4w^0XlUDA^G;n=PUoG%KH0 z>oe|0Ci5DAvSAQ&iTk>Q?+P5>YXZFJ>9mnf<+Ws!UPZEDq&t)72wM05gTl?!0&Hx^?q*n51+}j|Ep$)$ZY8Wn_ead4$K~ zpeI4KnA-GX2mDM?M401V42@|3LqGX>cNGZ9g2lapG~*{Dtb%AlxDmClUcks=qeG z^yI{Ef42KKKYxy|{Oam6YicC#iJzgCDR>39ae<~TMOBr&r(QO6%#+}w?FZS0O<<6U z#cwuX$q?ZV6cC|);6UIqgwQU)n}DUh`cO^R2ko{k7e)#N0JyccZ`rjs)=?Q%2&Jdx99 z=s20DyPCd=v9e)fgM;y0F81zo6s0W|i`h2!cujJ8ZQJqtz@}L&7UyPX3&rA`Gd|3wsQ7SIFpi06lErhmrt)q8z(}X{R66V|WZm$q zEfCE_&5oel0KGxb@kT$K%T419M`p^^Jd#y`yDkiCJX1(xnv%`RUaZzn!WWwICl{s6 z<3E5B-?fobQbgII3yQEVxt0R-)fhrVOhwHnHCM5w3hfpFz(x;4ffYcfXdI&%>l~tE zq|y|Y=5TW~ybt&%uJ`IjC;)(8;rdC2Y>DS`@!TkW>(TIxA0JrE0M})U9N@a`1cX3; z|6iW$?dh#=U)eAcqoeU$P8rDt!fzICrmCQ(Kwev@AVQeoc!lcCT%MQ9pMdw`DI}9s zzKR4hQYj1#06=#pv+ltU1#Wi#JsDnrqfie|CBUCI|sNw%Z1WSS9udM?psM`bG#J#AC}?d#T= zs5+5M%DPVHNUAna?#s!B5g#4ZcI~S6`qpkJ%u5BIn`CM>tBi~^FQRX$%4||Qe$J-Z z8Z)a?Q&TUz@WQ@*`(Qo<^6Jj+yH=-?M~|X*dQC@WB8fo&03ZNKL_t)UO|F<(o3c6< z-#tAs0RWO^()urLJTDLy$d|Ft@zGI`K-LXYQF7b1ak7}ZaR}_NK5I59 z6acE>wQku`yXYN*KwrD@Jr@lBroy&?YEQIA;D~Y+D=5jhy2u?NFe*4d{_rTUh$oUM zxCRXYECVT>ydA$>Lg>jVDkZ)70-kSIITwJ(@;u>&lEl&Ri_g!Wy&-Rg9;-fc9I&iN z-MhzPu@&)_j#YiOZKKm`mwUjr&3$0{O7wx}<_fchoV_*CP0L;t; zpSEd+_B^l%kY7@POFeZBXJX8YmObq~ci#}zOk5Cn3VxTttxe-a%<1MwBs2O2LQXia zg|PD_p9MqY;8ltO-;G*eRjK)o5E4Z5Dy<#i$6-d32N!Oth3 z`O$a2{{u;q(Dj{{f_sS^zqzGto{h?_eP!}c>eQ)o+=5%3ogK%IPvK|vjf{>S86JKy zoBe~Ze#MHFn>M{GRZC?x0O-zSmR2oDYqIjlv<7_aEiT@RpSi8u%AL1xyn2vv=sW*6 z!MsOL-MS1Ok5**l!~VOkt@30`cKGN`_uX$t<%nh8A+@btc~Y1z5!Vo^vY3z18%s%<--XKRx& z%(IO?F#5gaU*YPaX%>sc;@n&zpP!x?f3tAlPv=>QL`N3@%w6?<0GP8K-IijpR)6P< z#Yp*0KB}kERP3FHS18^Q$Zd9aAI&Wt8frGUU~F)3a-fO&YCxrZ7cOBHGRWifW}?3z zvwf5e4fNoE1sVjpyIEdL+kYV37^^q?!%x&Wu90$AS1YY#dXysb)=ElZehj)Z6LZIum6VL(v^(IjTS}>Hr)yvti4L77+Byzdt z;g?*lilXZ2R2?T$Qt0u~%y0omvx1gXvRU_aA^~_s<|y*GeDk|HuDKxa5SM@8$~SUH z+a;+do@h5M0H@g5>Bw^I_|(%c?y1zdH{afV%WYE8w4zZcTE$qaZ9DShaZ6Eb8zT9F z?SM38%&F~ir+U^IXPws4GH6;n?#{8J2xG=XnW-uWtaWjEj2~D|1+4$2ChLZh&8j2W z=80hffT=2aI&CyLs|>CH)o|aX7s9Pq*0KA{@%&ZS-;C~WH3C$QBi*`r%euZ*MDpZ* zQJ{!dJ>Hkk?!9)qu1`s(<;YQ#Chm;J&RDYif{pJHZU%oJNS_R23IKqTT^RUq=MUw+ z0oR7DBV1)F%AxHyHydrMWV2NwBeZ9psI_r>LjUlEAHe1J-|?4gHlAH;3zbcHihGBK zP&AI_UEHrOgN1u{olxsVY~Po9LGEbLCrU*6L*8`J1(OS4P6)?s3Wuf&)pS#FAdh$Y zIsimh_O=zL$Cu7iAHF{8`|nRwsBPxA=#rkq2XBeJdy{R0ZG&Ywwk>$Sw&(8BXVG(d zZ9g2kln0*87v3J%kBzN=|1|)ReCss;_>*l-1N8JPi^tpjo$1-Lx8uc^YCUC%Rk;xc zv)s0=gyHu}85y`4-V9v)nVbumksZ8|K}02xq2tGRykd|Pf)auJUn;yrn)w0}7FXib zMfXiAcu>R5LVIhlMl_9YiCiw9)Fc4MftX>C_B9RTsIoCHfMS8h1t7yr$~^uwzv46{ z;#w?Z69fHRk%H3wf}dRt>cdo2;v->ZTxNQt{52C+l#h5dXq8KlVY(GLQOzjMX(|f6 z_Tsrw0I9Kl`@bD|??+x-RDrJD7Bj$g+X?6Z|I3&DX@llg3!}Mad^E=$5**pFGM=fb z^GX4Gtp!Nzx?g!j4AME|Zz%yUBbZ-{m}_h%a-;tEB@V*wfEI#Su12x1vULq-;<+4l zpu%R_qkji$0z{|sd28zh7k8Ofbhco%E2g42vMf(ex8!FaCO@_BXBFBU{YB=lKKq4; zK5e$NNTy{)qEs#n1@dcAWvX3O8~#V z>#v5Zg2Np1+V0(Z|KT4Vg-{2$G?{c90FXL5I(F>%WcBTDS-%##G6ZKO;72Ui~90yDhQz)=~USqENBoj zRRyyYXFPa6sI`er+7tQ*ue=(UFWYwg8B3N68DQabcwkQOR1p-z^{&dVgJG)5n#Ue% z5-x_@q3zq79gu=r^327R$%(sfhHyOaLd=-SbdM=tQtHQx)sL(bbxIe zg7Uxt`Cdgyw70j}wxg;_A_2N?I*z-;E3dpVHa0dlS11%_@_A$Oz{rLrtCJf}`@L}- zz;PUiM&-`VC4oM0$BQp@yqMv*Fj}C0`2bF?2W?}jYJAj9dJ*Bjf+kTzERoAC9U5vZ z(7^xbqU2{&YkENyDpo?Yk^fBSesjrdGzvcnfv0g#QG!Pt;<-`jw~v0yOEim#%0R1? zP>**Q%D$1q+zf$Dr0}6UwOn3jNF2D!Q?I}YJia#Z0WiGq1|ot?kN?K4JCpH8{%9G> zah3iG^*k^s>xMFtB|)-+rtSXq$)9-geGRxw?=)LP#?_}P6`+aZZjs`ivIGd25RP0a!fRj4A|5IE+P?f;XB32|daq?Hc z2ptP`fIoT1y}4Ijab#Ih)CaCnW}PV`}PXmsF2L>YHwSA>S_Rh&S<4$96oyegMW>ScUrBR zoQfMS%q9l<6Ky)|z$ zt*tE^Hl$-QAn%vC!M2y(<=(HodUaQ=ojrcsc;=a>^RK^g(!kk;;#?#G0PcZ0I(pjM zJN>)Zwq#k2tP&#YhPJCxk)%Ko3L03@2cd6?0>C}(f~RdUIWUm-p%}nRP}4#zNL!JP z&db?SO=eK$tMmkMfI=B)u{!Enw#W$x6SU->8_m;twmRX@TC-)p3#mb zrRsM~D)E)~ht82omR9K;d@fRnwxx6wb}efVl6~9_(%bV!wZ$@r=PxpQ8!q-_RPul!;_xt8s2f z(CD(TL2c?NkK(^%lvGvsh&)9j zao|t%Gwlri`N0M|i|P3D<+xGOnY8DR>)C2S{ht-@Kh5XfHI$$fTX{eNlYK?O%_wg_ zN#|bw$LV9=eI0E&o`cYH+ON(z{6sH7j7C}h-u=eI@gIV^yqeezBu+Ff5*JStXgWb2 z0d~OBYXg)T>cv)V;>f^;WO-)j5u^AWd~!Dihur;p?O#?IQUd0(dlbGvt*u zxUItDAf&_=_OzfXAUuFbNEt3rW?xC=LvLYUR7`N!@8D5x3C?XlU2QD++NO77|B3(Y zOFdS=Q`uI)1Iw}(aQoqvU<%^jF#BL2KaraAfhsL|o)iY#2ShmQt7QzsNSAkMoD<2* z(%oV+q%%@OQZ%|eT5inRET+ES_4BQ9xj-$T>)cCovvhANcfFwpUd$snoAB(4sdDH{r5M8#K(8dL7S=U&(Mi})9!3gAlA6On*UzE z|9O<(gU9!3(vK^sMXFt3Bxf^vOitDGTQsZohd??D6}OSP{OBJEcx(Ez$S;&f)s#*@ zd>ue0{4d%&*wMdm)8W(C=`LY64Of1Hy_UsvIL7qo62dI^&7M?GzAtvq|J+Lo`x?d( z{l=)58$U;1VM3tJe%Y7JD~sN)**jlxb50xBPlkxL_rFv-9OYl~6FOm9_jWw?zvlh= zMcL5H^YU_f=&k!}|7210<)H&&`%-IBWvZgcwyRD*jARkv@_ucO=C0=c{O=gC)o+<* z!D1#&7zey6gE?I`;r#kI2Pt$nz<_EpE|pgzowy?Jl@#LwTsv(Xs?qU>K&G*;=Sf6C-e#?st7w%UMf?pUl__UUW#iqam1uSuU*B$0JM0ShCYFP1jX#t27e_T zTKFyB&G;$uF9Rt9667U4xN6|3ifyhc=SX#t4(6rKj@s^XM&lRa7qmA9o3(v0QN~rn zB}3!G(`gJ4a5H_ZGkUB#_xfi#q8`RrX^#h+*1>>9#oe%@prV?zmWH|}f>C}!B%#1y znx%AGQ#0n(7jG==^Z}tJw*_${%(hGDZG0T-o7;HRjxLT!G&tRaNL-0_51BVCHV<)i zGzkiHEx5#l%p4ltp8bX*OL^wYt*z_XL>{B557EB=l)gehJJ&rR-YeMnueUgd7H8b} zU3C%VUfC)?FLmyauLAcMnAiJOXl$Y@SfVSVb@1-Mz;HnA^5mHrmell@8uKrwT3i}_ zf&bu080Zsn;31YJQKx)yjX_yiq1<+4@4JRffFZ}%gg)mDU~YZq?$yrV=f@4GAu*m< zz*mE(oEp^gTHdXvT`!@SpE8-ELtO>oX&JeAQxfr8(=JU3=}x&h*y9%Il*jzK)QVI= zxndX&&R&TAq8Z5Ja>C$g3Fu;(K_TMnG#?qM;)ZxoBrI!dkS*~L`!57PTvsg zi44kNI0ep^)qgk}XM-P{Tb-G?Wbl98RH7ZL5!2`YDd_CqakKJ)0X2hwLInSdZ+=fTy{Q9}VK$ND`zKQVj}-qhqd*azHT0o{T^Q zi~|e>)bvAY316oVLwt#b=~r9}KP64o=2dSekD(S8uH+6H=>9i`FP#b#Y>Jxk_ zFcO<>irq`oVPr;w!52W|Lz+)cR(r89MLopPdRMABa%ZL5;TYpV{9~wX$l18?Ri|%^rb2Hd*AV-L z?+R6>LoUb0LJoCs>x@yilON>*nOh)lPM*Qpe>JOvXy52Zz}#8Th@F^wex5PM zl3l(?kT``?yQFsVpGrssDI|xBm92^X2oaUszyheW=vq<{ zPMtGtOcgZL!#BJ$2y-&OL;T2Ioiwr-P+}()33eYlad0&@- zhm<6$NKslA-6;)C%JkpqJ*%G94bI1+ntY&KmhKc2_yne}2rz;qnTqoX9WwF9s2_`x zhGgirp#0V>r0V;>2D1N09J||0BuTP21Gt5zscHj1|QZV>1BwXSVqUiaqHn) z^}EFhOOu)nm8ll1r4J}RMoa$fD+fE+zASZBQTr`vY0HYGzbc$tkmr5kEE)mY8h@j3 z-~_CEmN_pJ3-|4-liCVX!fcBvqt;PDnsAqs7Wm#DJ?-Bq9!xGV84H+BIIOsE{0ZfK zdKwXZ9;HNu3(^jreYTlESu8td3$p<=Pt?FUAUjC9XTh_w)A^9$h%ADPTeDC1iB1#k)4B} z)ReNb>}{bPZ<&3vrJsNb)pI{&c;Lg&s*s%8e}TeeI6jh4+obwqK5J?gO_7Yg--Qvk z-|$Cxq=!F9!E%C@!={dMi$P?szP3?2Fsyg+wm9*vD*8sPRBziQ`TI9ovs~#T9xMZO z62b})r>8^5#(MKa@y?RfY&-N>xs^49SS!y?HaqJ5cfbEOz|dj>hn?H;n{?;^qG7V{?xI4rweCXn~Is!Urg8&zCtetd>J_ ztf|}JrWns*-i>^a%N{Sady+2?Y%;<65!w8cOk)!py5cih(s0QeAo_COBV`o%A^2v#_YnPO6Ld&{7j(XYD@W3Yzql^JA%*dciaL;6ib2y z(fx$=FgeOR)`6cS8B!l}-+arW$=hA%aQRfUMd3v~pqocSyhj zvmyDtIX}_A23eJM&<3)aM)|F&r45UFPHe(EWj07A^%=;s` zd)2Yyows~?>u7Y7oYoJp47PalBro8;Y9>$HiWVX*Kkr-q03}vk8nMEDERvk?I(khh z^w1!>bBlH~Mt5pUb+s~j7?K;|^NBg>Vp2^Ne+O%Ar>tK==P(HX$SvE>fFW|zOyYlk z5QW-$9_`t`aJpk+-pRb#$sz(DmCIT&n8$m1{0mYR{Z=J|x^{_QKaKnDRK1rg0ypxX zCeyaWFlsLy`)&@xe(I=JZrPP#_-0$eFbvsdAdIp@{tIyr^fV&Tqfz50 zNea!8WZ2+|(g0M(#jF1_T0-%U`KB;H{)cLnkCHd@rEEJ)7{8kX+CsE8wa5Hv&3-)z z*5@jcmm8V5%IeSIp}F{z*DtJ5<#?8m1REcT5FV^fk7|$Fj{b)3?p!of^0=nhro&n3 zQltN|0KfuE-Gs2zu{0{VjEy2sR6MZU;^@TEJWQ}XQoxKTKY2O+ zduI}<(A8l7+uPPl6e6xz3A%|Eo*W=}XD3w|wJ8S>`uhJmt@GV>V;E)GfG&KA1V`zc*<;a@a7o<`JSZ%K5D+F1A2TPb1ypW(V<=o`@P<_0#~|D zxB>8xvXggi{_S>j_PBZzXb<$%NaD8tT_*Xjn0m z;ra8W=hzIFeYY<*cVcq3WiSwcR$8!UxbZe%_RKS_AUP#jl*x=U5E=34i{5;b_}TIC z%KPG{-HD`D>T$VMxYYXXz{Pv&5tr7(X%;cUIKBe~GKWR)p=i))@bOc!J8`o)04|xz zeqh}rNk(XH7GyxwZ?S%o+}6sz&wK!q zzG6UJ51Atn7M=0q%hh1TlQZ!%*@*NOGG8BcZ9MF1%h}_@BR}ICb!C%)H)n#Eph-PB z9=lgaX{ds`(6%#$eSw${_bAk|0Mfx(wgSjfVmNO^{0fLnx8*qglu)c)mbf`W?1UN7fVsB&bKgR8#L;v7S(l}W7xji44Qnd zO)8Q1jc4E7Ya8D$+`G3Qg~yUk^DB_8720bVLb2(!7=x~p7Rly4*F=IoG>p~uDQ+-wdpL@ z49yd_dwVq(TW^a6r&*{$#pNsbI-%bmNX8+`D8|#~}EW@hLHj<)}^A@Yo;%t|lgq2V#l7 z;1z{v#h}HyG}XdSlG17{7Udu3?PdOxCue-&f=Ifzg&*zk?~T{sxf5kX~C%{xV*^ zEaRW<{_JIiY$9)6GmSzY)9!9P3Nf~4Ry35m&QRx|cpQ9*&KP4vr@|0)b$Crfot5}f z|Kqp(xsj##-vx?4M!jp8)PMoJ^>*E=G-iA23&jcq`WQwSq#eAW>WTF zXjvCj+HpzkseF?+Q)ayb9zCiB%hq>Yp@Q#34(pYAi^Op1?z}4l^|5R+83)v<+dc*L z+RAx!Uv7toDq2DJHdj2D>YDKq1y)GM&ydbyu%f^OC|~81Dbh;K@PfQufoMeVQ@d~3 zoFfH(fo{_UV8#<5R#-dHb6NvFq-2)?%_V_X^vlpvP zbF_M$P>_)wsY|^?1~}oK9ADaf(o+7(r!+6H)xh_oYVBJf6|Dkrm=VE`wW$~SOb0pY zL&5<>?miy-4&Q_Ra7&$7#t&B*ym0d25-<;{%29f}J zKrD{{vQed@>^0?6huMuceJr7i6eAesqrs9AwAxyD0Kmg5Rq?md(0MG6+#!Pz&)z=A zKe2{vc`f5xJAgP=nNC~Na%#a?@3K_Gj8_s~W!eGz z2b?SX*bH@V2)Xqre1>aq*EK5)w_s63!ml6~n;gd1vZ`Vdq;C|^tY}0Wp-aq3Mf|Fq zWHbP=7c4?si4v=oP_eOIXaFnOo!KLDaA%B!Y@-@9|DcB?pz~xmw$Oh!dPRbhb8mzs z|1Z?!D%UxOef0`Nu=Cl*>ujd6gxkj0d<*1|L`P=o=XE|kfJA`f@t;-si*zGNfyfJ_ z|9uge*u>DZsObCb`qurS@yF{oWh^>pbUX`=)^J-NXGC^jhx zRVZbxYL*T?*kV(uH0=e{SY8J^M>8BY$1+>{REB1Fhwxj2>DW|^?t(ON{>6TFL9&^$ z?tEMS80~r-HAS%q#!;#PQU$HXg$sxg<12V9Oy?z~gB?+>kg*oacm1R;t!$vwWq8{h zCrZZhY*Ds5&ZyL_P#62t(VsA=6u)2ocv!*0|MtdQY~rmjw@= zDlyWWfbw~T+bE4(ZZ97oee6Ifml6lk>KRO@8UDz#V`ke(;D#_CYrg<~n`-qwVUh=> zCIkDC-GEZbt;rI~fL1A;jF<&B#T0X*s$69g?F&HBWD{b{X6uGvsMW*zGPQFJ#!4ejhJ=TeIlHY>Zs! zA{J~cS%ETbjhIV^3T}9xUv}!h9$t{nT_b+^9ecYRm-ue;xj+$y5ej%rpAPW;oTnTz z)BCwCDcTc_9ih##s=RgIu5Wr*U5;3(p;nV@E+v~(YZNen{A{(Un zHAceFFg)03RKL0!EB1`v?5$)V9od?&HGg`}Ok%RVKog3|ZULI#!gubNq7l5l|BH{2%UjQIDbRr_HJUdJTs;BZ)?2V5t1{jS3yNMrC~KJ= zARx8FNbD&GHQg^IT&!Yl-{KN7g6{5j48AowRB2H{ClCn+?(Tg3YP47|p`H;iC97FR zU9PTIwX+gh&W6W?OT0d%6l_`c##q%fB1Mk__sBe<`R$lZ&xgI3KQ&|3$svuSKte#5 zT)Igk{a>hfQGBZwfwR0lHw7Cak}DK54$)~?=_zM zy;#i6awX@Lf(bqpkpSR$oYCgR5MCEcGZSkv*}_GgmZ4z>F`Q~Qu6ZWfJ`m4*dEg>| z>bW+r*LBy;cet}yJ<3_0aZEa!mdq5LDo4}a*i+hU{-wTNL+E0J+}3g8`T1GC4Cr+k z#>vSUN(TS_PIJvcjSSMIkYf)|J2u-*nYRQ!V>1j=JF%MQk3}o*9j&g^JN%>jDyVBsMtV5eSh~giO|5=wj&G~`^IIHK~fbb199@Wv|gaiYD|>Md)8KZ?qDz)J`VA)6r|_lNGvPE)dh%}c-o zy0||I-;iBSqKioV{a9xDqoU>GXA?RohW{uNWA>KNr$HS5snuHRXCxPIq-FeCi)&F0 z!;g%E6`p1#+D5AE`%}|1eiSz%IPw@Nu{OQ;g{oEW$s>C0cAK>m-_nRB4*{7m90Y`G z>b64~nmdU;A(7z`Bf3u^&VjW0yX|t%i#2qRM8Y}Q`Y#j&j(zlDXmbZz^>2wL)@nZ0o-!SG6L-U-NZs>kBZk)iu?r<7f9;aNx7@Y$(rp zy6vi|tx$2Izls4M$r7Bwgo}8l!M+9O-6pVJffbfKoMla_gLvdvz(XoqFjY|7h}$@x zMQmRI8a6~(RXjdAZHLKX8|jNtIyZ|3AlS{TONpT#0Wf(dtHc)dwtu)vn8U@0TS32_ z16lK>gIG`VZytsJ75Eg4u=Q80A9ffr!;#pQ$vDSNtZzO@g5d+0)51X;$%DB|wb97P zo-3bC=h}l0HOD-}sS5^|o1a|DU!WljGBB`bWl~#CrmfVX-L1_t;#+i;)1V>x0xml? z*M9*5Z>lb=E1(d^*%rmsiPJnJxBu!3fxJrf`Kid=6Y#^iUU|1!?*wZv*0oW7a297b zQgWa_N`t4=qli$Tm$Sly);#KXCh>zH4t9%WyxTf5#i^#;GRWNg?zmCI6Mbzm7TOMT z{I!z}4llU$BG!Ze8bDy?IO%1%+DNxG%3o{=tG@~q*w%TQCsfkn;)bX1iY39)G4taI zXo7+36e?cT6}L5>DlqQC5~0Cjl{&VjZ%$TPsxzyygKCB}sYX;(JEYbF@2f$%`vXJz zWc`*^TP57Re&xYCs$gGv;tZdj{I|b(Xq?)2;y2VfbS7LE;h#=vFTAg)< z+VL8+{R)+&0yU<&u7&=}bMCE#Ip#kc zWEL=^9<6~8YlDs!WkMoW`-oM2PI2}Da(>=AZA*8$IL(fwrvfd0=n@HgYA|@_4(moj z7w8f~sFTy?h8*;Ut=X_>hqoSSno}-k3{J3K%yC=?7;(^h8=b|S`nLrwD)IK(7H|EE^1UG` zxp;r|D=$}DtGa*m&!*uTLKePlp1c}SDr;0}xJ>8c;B2`(-TM2Su`ZDJ?}F9;;c@FR zs_v2gO~l4~bO;wUvG#mi+`XQg>y)ssd6x7S%yyX?*46Rd1BM)iBVn*N#1dKVIgf^? z({4^$xhX&5UryPvBr=MPV3&qs8RN+2v3SXvA6PX>S(a<<=WwdTaFiD6h70!KNyTYfHw3*cdNQT1wxw>tt75o)`l64()ZUAZs^*+4`n_+JUC+%=NtGAB5MWr zJ)j72K25kgdKuOeb?u?NPdcX^XlQF|Daw-kE(nAF9gZe3a4R%TS${e!`jUa>W@mHd zZJg-1{gzItTf&Ad&Y?raB+AEWKWr`}BR^)N|LIvB=`u3jndH15+aYgNghXue zw3WHsW4@LHNAVey$4m@RT!92E){jAegV=C@SP*+)3fAqH;8|)jqu0dK?W5A; zLnfm&STEo2YB~5h@^=TlO4$7E`jESTIya}2t`H7jN0e~3N(syRcWZ_V!vQ3Y2=M-9 z$YlpWD=hR%rT?2RD8xB`yvCxl9`q;-7*H1UEiQ_XyVSF!Zm|X5p9*qoc5laGP0m({ zr|Sg=PZST~UlENFnMyzD^km+UwHG8DoQbvQej|nZhh>5a&vlBly{=oviHV8ElyHV& zb0W^DA614Ty*oxu#6DPC#C(tX0t{H%8(H*kM4Ez>-F;eSx_mS6+v=Gqz2DZ z=&bthNJv$Pca;?cP)yEuz*6l*?^9h0SP-@ZK@On@?nO|Tue+-T>_%ULo0-MN7N})CJt_XJn+c|XEf@N!}_cw zE$+Q*)r)9Hu_^WHKm}{{;?tX0xb7A$CM$1#ki>084ZP{POv0W3io|H*3q?4(-AZqL ztR1&T4L{eg^tt}DWWiVQSr%@<8>+#wXVWPVuzBWi?tJmtk?5qSUsS}Zs~RKStMY>o zXj~$*Y@XT6)PA0_(w@oflr^SiXYami_3JX9F&!PbF zZh7o2DX?-AmnC6ELJCSO68f0@OA6*AD8ix+G8VjnVoBGUezS@?1{wbh00<_M7y5zAxbxyTs! zwpZBtw%~YBaI@NRv9`Fl$n_SQyXs*$7=dhBcs-_TZ$jq&#s{GKc|tyU*sXtz;Z4I0mhaKr9CPt|vk(yl;rTsg zD8f-n)jsP{F2trHaGm~npoSch?$)?U04Nph2_Oa_N+bAfB-#ynXn9*bZ^in}DmXI^ zpmF&Ag|D6b$|X}%5}!>l7ff(JTS?B&HrMYkg1zF<3HL}%Z>6pT>&JdeiC74fckEx` zUtw9UKmABdWmp3gWUnI8Bt|{7hjWAr>aBPjRu(qSyFK&bA(Wp^#4j8^uvTA3DHrhI z%N0Waqj0FruJr%^^8Li?tCSRc3Irg%scG(%u$*A$caM^1rfek)fNXC;ix|xNWDEJ2 zg@i_Zz39w$QbGRiG2KhFm^6jkey@~6?s+jI&Yq6pxE`x8NO-$j?UKODx+wfuMbwcI zR398G=ya5(7}9&Em~z)Q zUV_Up5H8t6lI2?i{Pd_3Jz4`vHE`Lglp`Wk3kr#v^`cr z)uaWY7)Ozy6;2gwC?#w*3a9ZPs<}D2#cM%;YdyiR?|{^R?>|$u`LgAX;Gk=T;EK3$ zx&6Rswrs4w)q1ozC8gi)pexFuR;R@qmr#y%F!A;lIjahgrI&ZkoSuAbu`bBZ%?;X# z$d)fd0E7Y#@=_G2qp{HW35bY{dVMWiT)g*&CtHV#Q0C24S#VlB&5ts2w>=xerB1a8 zIfMiLEmX~aeq2ub6e#@o`Xh>c&eJ02$B>^eYKsYLEWrJHgYyf=^ zbiUvrA5XB@4?j>n;rAZ5-E?hZD3&V9ON%bw{ZWTrr`2}HbsPy#P_ylcbDb4|3~@1V zFAHeY;;5fu7K1Ue;$bL<7H*-IMn#_dW5__G@6kRN+ql^IfZgfI=*xtXqKb>i&?UFJ z<0+u%n*kPK|K1qMvDT{i%u3rk^sQOW?Va#~GZ~r=MckK2@ zw^(BqT=@=Mu*I&|9Ix3$oU`nR0f+RPUcJJfm;)uiPP<<$Q@yMghJidsFl1-so7z$~OTH*eXX&mpuQb}g8{pt50Rp$Eq zXt&=V0G$GD+42pH`FyH|ErSm|89+z+qSb#V8fhXLDbKi4M?Log>3^8_AmdQEKDqpR zVu$FK!k82kVWaelP$W3hCWoA=XskS`O{p)e)m8>w2)4&j?7KeH^+U|Ch56VzLIlen z{8bLTxf&e>I`$3@(C8OR7Vp>>rI~!AIrSm2{!Py$B_rMf4gS3nyw%p3=SlJMzRTuW zppe|vM-M-ySovkP2IH^3?nImbZrLE1K)&Q#qWp4*k?O^wM1*f{s{IR?h5UYzvaXO- zEc7g%ZOWYO!T&xyA`On8-^|RMBa8LF299<7Ng2Z}FJHqSSajUu+;9ZR#DTYYIan-c zRhSIU-;%vg22cgXF`5WhiI|oas=^SA9HIyW=*wz9U5HT_s@3!pti`tXzUM!;s^u&R zb6ev1h~(nFkx>gKAVHkuQb$DCWb4oSu763fbUd6IU(tD7Sa6%zrhXZx8U#Rqm1Pb? zt{a%%BwhrV@ylQfn6a4Fj{-jd|H4GC7ShB>E*~3XJ;wBrk>dhz!Atse%;?x`)*3Ap zrRY@EHG@N}Sj;K0S2Z8{0xhz^6P zos_ytR{hVT7lrft(gaa?$l^mpos7fpiowR;07XZI?i&AyTvQ=m4_$j2;eGc!9c z%XIEBNuA!71^}oewI45(?AJzLH<5#$9;6=_3ok*3uk~G4hybCFr@QyZ&!mG#j8Mrd ztA`Vw@SHx9U`BW;G#92wn>-w`p4W@d=L@e-lC}`{E(>jKj?CM!U|3jKJ;AUV878pq z+hri)DgQI}=V^)O;Naz2z^PJ4f7lj3RMI7A|Mo-neO$Xwok8=&(>}0It06Z*{cELG zjV`?DGWEuWT)5)MH5ENe44Isn5DTDlgOgKhn!(RXCIhFau^l{*o0Wu6$Kr4_TPev# zgHWD@c!k3xJ3Bs;_TE65pU2=2svGS3*q>Uze0nNud*#Byz=VFlZVy#6WW-DuG!6Lb^n!v?^SFKvzs zV*9T8Y=xQE)3lqZuKA?hk#gNCO*>Ep*L>RZ3v=I)ZVDEb(kueJ`G~7Qc+x4wh`M%~ za27%pN|f={9p#-{iYQ8Uc65MBl8i#pC@=6G$y?N|GuO<_pqM2H5E#%?7de*!KMXs= zl2x6vBwsGD@EJr>46l}9KknWBGP&rh819=5tg8Jud2*o$LJNC}+oqsYh67o6;cvM2{>bU=kv`|*= zPQ7Kn)yiId|EERBmu7q&nArF~7C?*`VuF|qU$g6|<0>9NhWotTKa(I}G9X+~T zT`%sQ}SdPo;dGECgu!K5i2<7Qgu8Ue-Q`3|^*~3|HcCyq{&G=nv<0a8PWwM}viM6=rET;M|or4e{ZKL1`>z4f1H_yn(ToEt{|5Fii8v zXRfDHsmoI5baDJnaiXJQgU@r4P{!O3$(p4~hxZ)HUm7Xoai*6gm@-*eoT#$-$a|Xr z!eN>~Kpa09u+~GPTZL@1v9dmdO~n8hP(LQnaNt&0UI7YT_=WD>iP+q7CG9eS0-r;o zQ4eyFh~p3E&*$s6s6mHK&hP8y34hfM zMQ>Lqo%;eQnrz>Jo``;lwK@(~R^Tx}J-icdz14ME^lfjc24`yA?@-XWKv*^4k<=fF z9CUk<9+NC93%^rePc_UV!AGJD1_)A;WPi9?C@d0?n^<)lD5iz4n40KS>yZ$mE;PUl zU-I{si`BOo#*CyF5j_^bk$BIa8pBDVvj7-Q+Y`@Mcpi@CH6Hciq6&rfcLj&|&Pf_d zMtzH1PXw~8j_i#Xj?2`HUiVJ&(E?(Rv!=P3@&tT0?2T*{=5$dpq*VM~DMG%$|2m$( z1)D(uCkwVC;&|&=Sm%6BXa;Rim{_K9Lesxi#NqWbqS11)`Crbb15XUiVz9@pv;;DH zw~EXJIN8}-UbPZ>z5>WRXf$dpJx6$sK;kr(%jbYO#X19ClinMk+Ocj6#>&7CL`e1d zF87AcTp{ z?>Ui5kSuMPID*IknLe>zo4Aawje@tY{saQyL>bBP%z?o&&$}r&_-ZUfpI-*fLBR4Y zC;mdH9tV6~@669-sh|hkMqjL8E%PnZWR%GR`5&_}>?`b=V$+9JP#hZJ`A+%}`_Lsg zurhSAygJAaowIBe*}U;L0(cRSEw<{^b&D`7MbgMu;kCle(8T(Y&zCGe_zenX4q`Aw zW|0X{l)UJzyVFE*-0lBF&WgELWUIdcuVcwOIDEnyfX^q|8~*pCy_e1jd3=jzfbRNO z;c0AX$n7toh}-D9T`U;T;#krn=xj7ic+o@Qh^z*$tJ5E=0|OYlq9gLO3T2q}r!yUd zJPzL5ArXigY`Vg8_h6J`XU%?#E~ZImLZM7bRSK^geEYa0N%oHv`dqr(Op6cH6Ie{VPsUtY)4DW zEvo3-Q8Z?Y_$D)yDCM#=-g;Wc3YU_dyKjM)6xs#l6me(}$ru|ToaWItiK_Pe?@+LJ zov>~{H|sx+;AG1ojLlE)@2fJKe7TL?|W!Xdj_>wcc(y+u>TkGzY`oBxQ?7-FS?DRD$I6BK=FH?~42FazQ zcSRGQYz9Cm6b9Y?n&w)NHPJdx^YdJPDXW4KV@Y*{2ymfQ7{(pKuGK#L-dd63q!N1j zcRMzDAO(|xfZFgf*PjcLZ%IT|2-?r8R_08-uNnumJ8a-8C7@zEv^}aW8#yZw)!6j) z3m-ithZOmbrn$=W^W}q#^tAGOWf6Ih+Du^>KUSPX!LT5+re^tZ9a=3pH%S^%#b#9J z<1Xw+tRxH^d3^*J6T%8DEV*U+cc|%jnTX`HtjYT*G8HuSoJf9Pi)@@=VR|M* zdRARGnH;y0p}xPG$JmL!OX01Xk(OG)o2Qovz61`P;j39Gdm??a5x7%IFj9aDWuDr? z)_KzW?e{PQiU@_()#DbETp4@z-S!@^MJ@aTNeHYO$>1BA=^+3sH1#9@zHbyQ(yWeXyGPA&olcJKhLkyHTLVot_czu#xn*6s7OM`x0s$a52l*wGKfhAC9% zUeiiPM{EwAPBN@q98^-dOac0L!oIt*ycGbplx8^O1z1?DRMEx)(1k(Si+JP8f;=W` zjqYv5(_S8zBY@yO1PW)%u_cR%2I z`YO@R%{N9!pKFzDYnS&CCr8=Q-sjXpqW&9%<+AKPs$5wr-{18~eI#3!NyI0x!N|A` zkD^%}M&3K4lFA~)mYly7~0v=_F~a!wWb zUhWJ6X4+KnODQ{Ei*b!25(r<83j9KM1Nne_fC{6 z002e~h5EP&@uJtvk&(GFG@4ab!9Nx3eX1F!M(+{3Ar3*JuIuKF%6S$E(I{NPZcTjE zTY@cqUfsk1vQQyP35irFb0$nZ!sJ>TK`(-c9s&aG(z@(PZQ5OO=d*dO7$%#}J;Fu1 z?nmY9?(gk#zzeSaUhf2p4E+;@1MX>Nc7>@-n^-zb5U71M4&4Kt zMpnXJuJ`82$~cztZE*UPH@P>#1Hg==ETV4z;nXCls6Q1>Y`))4=l3T*KwPcyS1MPV z+w%BaK}$)4`xnr~mdMAH;OEnoVl*0WK29Y*5*b>k(Dbbkd3N0LDYQ8Sn2)6V0=d$D z%2!VZ#9zR%T>d7tUV8fQa(_xuXZ-%Bs^N1_o0U-4&;MfL>C~wEA*Hg7147%l_kE1E z5KUS<1zI)STL?!~-PN2TCc4s3)Bl1gG%NSp5ZKfoDw{hyNzD=35~EWQWn!L|)sz## zPt>$7^Q72~{PjbJYA~3t;);PD^73`xJh8W8Z$qae;Pg*>(^y3iEMQVzNxus$jBWbR zGXGwv&WCrTkHkSs@Ec|mu<;W)Hr$TUd+qDqeqp0taie1X>wS9a9KIZM3)=DpYu#pX zMBw9NaqJvQ{Z=Wbz$Trz5?W~Sr;3-=Wz_q_TS1BUijs>BTHILGKic5P7-H>u;01G$ zMaITfvI1g%knIlXr|a}yqG&X`JPrN-(R7X7d9+=7;@q(sH@0n~X>8lJjmB(jtFdj{ zw$-SyllOW)ylc%Lm|1h4dmq@xp4R|?vrSFx*l9lL$s9AW&8zFp@*}VObokJ^|88q~ zEvo^ccvwqWUR|C?Mn-&%rkkLauJhQanoe*4Hc&-MrZ^>yG+tVlsrhBgI1|iZr#tNF zI=A3LQAdCYpZDKgu35VtbGLDX@`n_&u0*t98&?;Cz_u5kXxYE=rN4h;y*Y^SJ^zww zb#(v7d~P3S5ztVdER}-vJqVtc`eiG&3PxJ{$%sfBJZWUuQaF3Me(6tSkHP|6(`eIWqBLC>YfZrqwzsYuf z>IX>_(nnD?2DFpwmVzn0j&s(3#M8N7=O#ogm{U-Q+{?@gl(&!+T&|O!dF>pU;Dv+% z04fkp1fYOHf-eRVDOfb1RBzI=^+4V=f6)+&|96_#k8fHPKc)bm>nzi9<&mTcfup~cIz!=Q|YzF8795=|Shlmn6$g-ula@LqaV_BB4oPn~WDS{A$Un5C6K~-h> zUSL#Cqh>;SJ@C7>06S6%2hX_rN(Sc$ zQjO=)+vh9mY-l>i8v5I-p#Smu%BB>E2!8BLJK+u@0$}UX4!H(hCFv+kSkQ?|G_b^vfSW{W@ImXYu^NThC?e ztU7-Mkz}t^Z3F~aNMZ>PTDUccq8!qAR&`A?F-wOv4)V9F^XBU;p=0UkOFA?J6 zaI2PE7spFMA5^uLD!OLAw#!FtJ6`L}n|OJJ^ObrkS4<~eI#|T>RJ-^06M5*1)0hn2 zAfPM(^ZA-Yp+w35x*YjqJM#X~-QWGm{~3A3e;=K&fliFnFKBiwjM@8Np32<^yxLbl zo!!9x%+RqLPjPN#QqNa1rK0_{guuVRz`Ck?(lXss&$)W%lM1&hpQWA8%N-Dxgwbn0 z01n6}_`OWz>U~_#9Bnc6tlY!k#%pvJAQRdnD{6-kmC-{5lCn8$OAz5eUw(r}`y0Z? z%RbN-M0i9h`+Ly_9N7g-=+7UG3Z{jqD%1N>FJjOZipmWi7I0wmF!C#y-qK}J#zh7S zTel!bIM4jck8UFQ=4P6A+-YS=T|cajQqnek^*Dx{i-BHs$?Zz%>GH^rq7S*$v4a{_ zQSFh);ZaeA#5xo6G&75@$=UpO&H7q;eZTn7e6bSfa8{U(1jn(}{=oFevp>_xSZ3qT z>qpuv&_=Gng0rkrA;2@gg8ngiMyLj;tDPPxA=21kCqV|@n1Nw2AW3G)T_;iBi%V(I z&N&q4pC{OX6wxky6XGnr-&k0VANYhV*YzBocpNGI-}6v*62l{fHdUj}ZN8Xrqy;2bsJZBwfHad=2`admOU7#GKm`Eevj z7wkf}BX!+rvABPCS6~a)i!RUSxYlyrbAia|^1N)@vUNLU?+1^G`dNItI)>ik{MSYP zZu|D04G4ch1X9^Abu(PO(k1a7k6ttFb!o6|k`ua4Bk85z=L?F}yH9dvd=E+e-3~_; zN9xiaq@{l>2)6Ts9H_g$cDk061AawoiHasv&&XcvHo&EWzKFKK(+KVAT3_FG&ljP) z|7qOkKaH~@qJRUg*_==JrfXPIKp|I9ViXNw_cz}|Zwqb0zczV)Gol{U!RC_b+e75f zUELWz=YLW9?<6t62x|XYrAqovX5?4*2DJ@=RGD!N9ek*&p6%g~5d5N}p=&%4pp#|B z-FrgoDpN#)MPU=Hy+V*ufEt4S0x=^y=wjtTF1<$5~*;WKkx6;qBJ6Bz>=>`U+ zq9P`~8}N$$FnW!TF-Pi=S~x;T(+^JLvHAcDu4LyOh&cyU6w>9gA=6>oB59r=laTJ| z@86lunK(AdcB#kZ@%Z*)=^ih+R#$0 zl{{B%PKH~YK!1EShrP3GH7d?Y0o5cgFNZyfSyR|c-+R2AxzcK7G0Bg9vbWK(XjmXX zUL#-gsTa!V@J}M&@W@&}6qXKEoIE>wa~KJt!s1k3inWeGuoTXVLim5vMQst1-!p;J zKTrBZjQr8ci;FFO@uyk{gj^L~$$gl6-EZCA>z0I6nE4uFu=x&Yh>!{#71kNkjz4t2 zk2oI9Vi_+m&DQd{?For|LN|!!1^QQ5T0Cd1A;$rXN%mCe*LI}?J) zYP1+$YD;5I9E72!8iwk6Yu)5yX;prKP!$X{S8>9jJ)X#E5cWO_zOLkNbEzi%qVuc_ zLsp!kbBYNt!1#3MW0>>$0Wm=EHoj?Kpd;7YuEAJ9RjL9lNxTJb$i6+kntzv*35PIM zTiduPjz~V5(b@qcy&|u>v&!L#F?kDgUirbbJ0C?(bs){N4;w-^?7zl+pZMR;^#u*E z#e+3)U*~Tb(?3Bg>6Z`3L#RlM3)NpsG=vOextq*AW5T#$92^G11mCZFT2HF>bldF? zwY9tCzApRnhA^0>*I%(dnm8{%iaFAk63THN#9OqR93xqXAl(t{-tOC*>PX{)cLh>? zw;U#!CEovOyZan1YwzGsGi3~0cyc7hv)i8UMHCKFya~Yn63rl+3vABru{D2Od#N+P zdANj6s;)LuyeHy*&6<3}rH=OqRh@P@;)Vozq+8$GxzCL0Fq&lwywx zTqAaO-#ARP`l6Va`u@0IOU^B6{g!gBYPqVAk_jDfD%8WpWrDZC)kDt6O*R6l5kqg_ ziY`=^B&Aa}E|ql%s~jQL=pP_Ou-ZpW&Vj>B4lV5xv$~eDVV7vyW$m4s?mt)8cAb9Q z-CeiM-j=3PH7J$~yEr#~$tLlqylXbs-b;kO5WqQLfT zpER1KezVHO#CXBd<2XA>@+m_Kq95`$5T9!5q_DqBRHwsZkqKP^R%63P4u_8Z-tHO( zzT0*n?LJ_;(z(TZGaU@g^wsG@zxtJWR~;-NJC8^P-8=zLC?f^~-7lFQ$)|d!Q2u?C zowh?JjRHyE#VfNav{09xa)?c`9`Y-!GP+4gyw|zTw&CEEx98N=#k`WQt4g-uPze_! zaEOZ>yfYcO{5HzErYl6QM(=~6rmFI-*VNcsl>z&h#fm6%kHxClnfaJ2MLZBN&PdBl zJ5-`hfEYIXJeJq7Us*-rS;u-`)%7^D_s9Djq_l$#(MSogQ8UM$tcRYtgC&k;4hTfS zh${Mq9$$bDK=+DG;1au_!c`9IoUFs|!aZ5twe;LFa{7M47k%7b$MJhEnb(|~(4Wge zhP--p6-OBE_7La^R%|TT``zBb5cnp|u>nHi%m|e*qKA0La4*&5Vc8uQqs1Q(1XfY2 zCHg#^F4bK?^|QfHrOR<-gPJA0HX`x6cYa_ie*KGJD`S&^mcb{?&Cd zTBugZH73_QFK#$A=h*!=8u=hs%-Hphq@QmDUz!pK2tHlOY35nPY{-Bms||HLTyV(< zW|-LN(&C%!SkGPRc9>h&MNd3oh{)Zp1*8tPBB70SQ9uOOD`rg>O0~mWU&-?jBY{TG zCo$SR3&JV|KrBWv%?LeBRbLe7@YF6{5$<|a^`@hImBwL~gpgi|MG62QpDsW1(&kHQ zHAH{};YZiXD@d+b&~;CK{^x#tvJ?0Y!Pl_g*}&L#jE-_^VN*-Y&&OJ2_C&L0$u4Tn z0T(||bR0UZ8Jq_UOs(uN@zjOQHTE7R5g@R;GiW=%G(C#9Uu7K)=6qAZO8G}}=92!d zab=?T^LzOABc+#DIJHWz_H5WVsb#|8f5ZaI;Vy;UdNzVXadPh~H7S17yuJZ?p((sF zW3mcZAr49mTHH-BI~@nn$hxoHw2XHg!J+hVf{stNUnSy&5>;Got$XM8z17+B7V_WsV%{M`6=B3(_=N&zEF2Cb>V_sb!qgd3V&7Y z&dy0m@{r^NG~!FvznvTvQ4F23D0Hv2+XhLsBoZlOi3wwav+y+9eY8`p7Vbynuz~?u z0tS%V<<6=wW`tU21t_3vWTKvQ{qTsaBHYjukeWJ@Ye1<_v#uT$xM&a@gAM7;Xp9tQSF;|0e8)FEgl zwz_rTLi*pe=!eQ(Tf5=4bex$jZ4VSK8RN&<%&4Nf--B6=D`?fDyIk?Dh*c=XAk z0GzFDCpH@blPpuC4;MF_I0W%v{h!(8atRWEi&9dmGfDs{*4LG-b29{Zu6B3T^Ie1a z+<}NYZAXROHDDTK5(b?_Bp}qVmJS^Onh83XX_#Vw3H#SlRs^buJn2E>@(__%?4jLj zKbA0TBI9}cx!qp_$OW<+)?veK8{7Rx9|sEEsFj=1*zeIPBiMUEv30S`OcY`TF_es# zJRBM;%v^)~vf)h850~mu@ylFN<rgi?K<90V$-YTh#|i|o>s72aw2L3shM*?}*WE=BQ;Wzng%i({m^G zkm!lyyVZZ%eDFpGbO~W#?DfSb43LZ!01+Qy-2zdaJLBW)%Ds^CQPn3o?&o5 z=GPfb#q3onk$ZNHf!+xxY5iPXmk~WWo>%Lf6&0w21zx|eK|S*Ge=LqZb(F(ctV*o- zx@u|0!T)4)-!@x%yi-{Oh?|>Rt2-LnaL%B|qAtab(I!<~2E6V}FP^oTwZoaZQgu0` z?>p29vDeuz=PtRc%=B=_dr{cn;>FY{>Hfir-+;) zrNp7Q#p%bmXlc40*3eBJXM!?oS(}_IC~((GXzT6!cZpPI#@AF39?vYSMdcEdwjz9= zDAUk4mDihZv(H7-n;}yP%)Vbb+$vU|f87n2!VtVxY0LsZfN*|ZUG0D3!6IM~1{^gZ zk5}UDII#6UsFG|g`|z=@c@owsl=&F1`A6sh=zuui$APEME5lfL63CJWFqs85$rw%) zSa5@AS-?PZm<_zpCICl(ScQaT8ak%nNBhr&WiNtX zL0x&a@}@eC~Aok$fbpE(7u#y3*R*2I|=Aj401|<4Q)jL+oV(nYr%k z15by%!^M9iVDpH}^G^lI{)xzQk>?O`cCF9#()rVgEt}4J-np0lFX;&+E^Bn_K@(*U z^U~ToUw&Fq!&AP#A}dPaZ%Zm$0ltWyQuYzwqjn>sIx$~ALDbKxu{`99gMk&#dY1@F z@OT1yb-_t86MLb++}Fwv;ZwacziEBHONpzm0YZy=>ubm#uq27f3;DAgDtv`s_C89@ z-Q;bz=Ls8f{HVBQ6J?#$$o^NDfC1R%fjZvL43$$0{eOup=>;cQsy**V{1#SdeBiqd zESfD9Nkn+<`x*O=v_2fd=j6f0GADu$6@RnTdAjzG5y974C@d1E()owaFR$JGB~$2Nt1Z2Ya&@;3*MP{BmV~mm*}Q?! zEyFKXZ4yA3+FvW`!qYRo-6*9~e@DT(Z3*7V-hSlup?W_0d*8otPPY=JHH*cX>7K`R zYyY<@`=ujxS7BC>Q%kiG1Oo)@f&bR}l?Jmeo1NrTgN4Pxe|xVe)EK;~JI7f*HsEtI zPRtL-Y#(ND=g|}%Up`rH4MY`iEpKQymR+K4*H@XgR|XxoE^YAk;~Vl(7X--`MbhLd z(zk#*-1ToOMrf7=&F@Budi3Ke!imQ$;RU>FVODm{TLCF)DyS)0n28kLUZaIobGl_F zNZkwgp41vyP9PL|4l9oZ6+Q7f<0fpIix?>?+L?7o$F4{ydyK32mM+fc=PEpF#H@?b z`JRo8!lg=HZQ4Iel$+%Hhx#!%k^e=)oZvb8Lt?POyq9w4%GV=o|FFdy<~VkEx_ErA zSTUSS#Y)cs7MlQHFu#DR1nocB1g8WQjNmh|0!&G8Cwnpyjl&lVD*if*Vp=%~?4-ZY z$*yQT?Ib}^hd&4EE6Gjwe;N5-%u&W*CfeLj&qLn)Z1GCuySmg9lR^M$5pgEciCA3t zNti$~YwQvmz{DLp=juOy*{tK`*=pD~mHVKz`?j((XcUZ1fdV8VniQw?F(GiEi0DwD z=d2DmMvvupQekFh;y?$no>9b&8XHVJ4vt;ve8uVBe|i&cVMio^Lk9~fA_N1ygV@ga zq6Ij#_ogV|DdL0M{{hfn&!b~ldi%af0Pyu_?;aBu9gHJ1Iv8Ku>_BV{0?~UqjdK{J zUX2tt{x9|$3Uj>_u^i!D^ie7J{`)TOEhMl8)_*qqsr+N&H73wTGS_@OTrg<-H~%_r zGWK|#f7|JvGRM>ZdR5}yc~Tn|}ZJ9cSWy4A9# zUA?6{%wpq?y)VF0tD@LHFnJaa)j1TYRSV=6*S+2PI&Z=geD8}R@V6=pv)ydKX8ui zGD7f{d&Vhqc8;L)NLfIi6tHPO>3a;>H1ndqv6%}w7j{Q5S8#gc?dn+JGTc57|&d}NKV+J6*``zkC~!%_aG{eqhy~2MK_HRuON67^`h@^O%CMY{I_+ zwaY_eFd>M44ZZPz%jQdp2369Ej7hXu3Z@nQnviUH$)tyz0}jpeJf&P(@tj(xj^ zr*)A99zYISAkD0e_t?~=Gdj9d$bRtDW|DqLrqM-|Dx0}~_jfSosCDOZPp)eG_lhO5 zh{3P!%p85xaG(Ga0|1Suuk ziFR)xgz{vOOaz_k;HEgOODEJ(87V7tLn@_tEW1=dFK?MmP7Pz#1&^&E{tW|5l&|7U zgoqP1;j3f~Y2Cum-UiybR)b$C8VLasBP7+7QR{yNk{BPBs^(MG%b0hpe(r57uu;o7 z2(oM3XQHZ|DCw@SXrlODsb2P1%wK4?X1vn!n2(S9X;EY!%=8LR!CHZ%e7R_Vcvm#v zrn2D{vEu!lm}nBaeatC3-}yu*SUnpmjNV1pW}&Oc7(3Jy6~O3sZA%G3_=O5xlo>z9 zuaj>;GK-q1zljtmRGSAiPn~FbH^3Y5j6M|v@qzTB$7N^v5GrtgRzcwRH}1tpPjyL$ zVP$poM@4+m%8J@8RH!iB1WGaD0vn2mmEuH+nGYPHeHZ)de4;#@_eczpx`hRkII+g8 z#=@w0Aq62zaQK)LuX`+m=6>n?>n3Sjx~FfTg1gg*;Yc-~a>NMbqo&#jR(D~0J4&_A zsO@{iu-+=T|2CZYTZEwR9z3VtUFJ@m;(zbX6sIqTqvH)TqAA=`-KP1h0EY|z{)J5Q z3=TI5LBy(M*nh8K`WpYM}3D=Us*4D7#9Xd*?lm2zxNbUr|#WtAXM=t9fl z-dM$Va38<(KD-S*Sy7G($D9$$+?iJ#r~gD73whE3nCdj?%^KNtIG zX>Tn+aLiLIW#4idKm>e_CJe3V8KQ;$5&zHJuJtBN{|h=*ikhw^kux=|IQo~m ztv{h~4d5+L@}k|xT7NbNm+V5hF&?gshnbWw@>`Jv6*xWBfE1t#s+#^0H+z)M>~g?U z<9e~x0aFh}I1dA4eXUu$M~^`;B3lFnpooME&;fu_fHLg05R?;)z+P}-9PbsG@Sjpg z4`+S-gWdp9<&;C%#p+fjwnKw99v?%UGBBi%s4Q|6Y&nXtMuzZ1m+aHC|0qo*l+7(a zlK(0{(yv1a1gP*siYje0q+j}(%5 zE2mX!{!r<8pEOjgY8x!d75oe4g5h56D>Q;^sA&#UcRU4 zKAis~t6}iX+v_Os;XQ{r8yPDT6xtCWFW>OOS9rucl3&)9cEB|9c^dU~68q3|uLtw~ z4kIXV{a2oxqiZ#3VX;WY<45d`j_dF;@wFIXjS5oIFrP_mW-M%MME+kp(Zmzxk%U5n zaQIS1OhM6hVV6=j-*fM%neLU7R<#;|hqe=ru7CZWtTVduf&%JDSUA z5tHLkL$!IYl?;1#oSzNdwe)NPeN3Z=o{1-M6D!L)x&+xNnALxv~F9m~?H_m6_dxdMW;3@-{T(Dqh%Agdr; zblN*gHz5+5PlYj3s}$`=+{Y;uVWM7KgUDs1HrYxT%4=m46JyRhOK0R(Pp5!Zyxg@2kiBrx-*n`7Q|zTJnP6ZUv4v#zN85w5gf{ClIIUBMVHnL)nT6x6YSril*>)@Bj8 zA^&iz)={Ef6mVVbLSW|yu@rKiXvj#oh5D&e=9@wj{wk_)Y3JvdV2hU%xn?_L-1TRHxKSg zEVlyTy%3#JTCjG=IPdy$ZSQmDi{EvWvpxobVG-B#`U-k8TV_Am;{PBOHIjy{pwX;8ZivE>sPHf0M)n*WDthc$|>$DsZBOSd^ zpY*4GzkH(0&2>T)*&2RBMnFa`PDGg%STT0Pj~alGR`5T>JJnq!rsO zhXF*+9UpWNlzBEl#lp%+b;+bn#8=e9$7f`>`G|5|*IY{YdH%=`X(=TCGOp4;ob$f; zF4FIkvsV}S)9Gf9A?AtObR zqj;z$hkuMF-Lm-am1RkkY0g>AQZxmw{R36BkGhxG!x)*ThZ>#9>za0-F z(D~}Gs5!oSU0qE(PYjyG$HUudFn8H#u8J@n!FRmXbh2kGrP}+I3gzacRD_6kw5=DG zsPhd;%qIv;2us{^Dx(<@FT4_M6_?WT-}P((OsT`MjlM2os-;}QV@v;^70zQGLJ1h? zKihEGWs=N*&X&^*;@0kbi%`4r=y!Sp+Ui@Uvef8+;J(;TKk#WZ<_fnt2OoA9#6}q{ z5)aq{%tVg~>fq|&>U1~G_&{9#>!=_ho$|g&t*9UnfkWc9HzE6ZtmUdGw-gfAR7YhQEy&0}j+FCfDxjuLTLLp#Y# z(B~ya9EQv%04`Nom~;bv*c*`rG3wvVS&5&{dp}|=SA?0D$g4HP1SssM{hg_`g3c3B z-w@cEf0FT~CV2E{_wN&xC#l(Se44or$5t{!Axb=w5eP>yVr+A9_f)q|U55q@nm$~R z1ZdmTn@CEOE^@pqXQmxRD}<}6QvD4XE)n91VWwiVJ@c?m;t5ZPD4^=+_B#lh@jt8R zOp!o9sgU;$|H%U)OMpLWh=4<6{bg7W-!X%H92Jp@)E^J>Ttda}^)Y>5iC<2sC@Y^@Wj#!DlJmS`yN&%5#`XW-!A zh{GZxBa4dPVq{Weq^EltE}(bly-j#OpoD>gz>$D?of;`MZt@7QS=-jP8HvM{v+JbTQBkQ#Qwz~IFX#i#<5W*!FTWcu`NYmiX* zR4qx4pN$n8Wo5@%P)c1iH6fSMEAB_Y|eNgS0w&)(f^!KgSr7^Cf)AgrW3+KcgqnEC<~zh^LEE3rYdPHQ6Ov14Oe=yn3Q1TN zIN7aVv*E}bGpR>MM+bgSnE?SZiLEP0KUUI3a;7Zt131phWiRfp>mF0)ZV!{k!lF^^ zVNpp3H;{*6L%hCU)pPjVQ3@`R|0fd-FRqvVAGKvL%0OT~7WkPZKQ6tLZJ>_;n}D3? z`0gSGVDs0e-!5W6!QitiF(Jh^ z53G17l9?l`LfrW-%QAJ9G?LeUUzb^ID^UGTER>SQ*2`?}ga;UBM!X5CfNp;NR#bmyj8xn}Je~q4Lw)^N;|3Uc_ib4dbI+VDUKX_nl?L|pD<%D@D zC4uEF)ha7^htMSHecA9;YFg)=-&FJ?rP3ne5aYqce!n-x-mk-WeCB&%Z;3OKfj6c? zH-YEN52wR$+UV3;q6VsPkXF3qth89?PUvxI z2xZ0V?x9)Dzon^8x3zat0Is{GrWJT5#+i$c&Sxa}5>f@qbQ75h&Ee-azrW97W>4Pk z^puv6pq!{L&Gq8}WaQ+`8Z@JCc6WE2+bT;eLmaXzWj;s}`AIfc-`*sgR(v7_&gqS@ zI;?)Y2qh_fv)%4I3O)yqfq+nr2xt?ivexXT8&qvZK^F&l1C%4|*a;|Qymc|k?h?s| zboSkjiqiPs-743-Fb!B@3yf)Mt5In#Y$D#1BUAf#QA+<5aW3b;6OmXw(sM6PUn(Yl z2$u{QJzhXOH>aHyaIGyQN|AAiKPVVd1)jf7_Z8aC<|gSBAMRx*8tG*Zz#x%5ll?~w zVt&T?TItRlAR0bg+wHs*7=2pfi(Rs*Xp%cU-BGhUe2`92kPQ8eAE{3K@wHxG*Uj$0 zs!`ji{^&ZA9GAKbC0BDHtGZI&y zFHhTdIZ?DHZK?kMz1C4n(yzF<@yL_ta*}|1WDP{;vq})iLW7CrD`N%2U1q7~B&EH5 z{oA37(qJF3@DyrY-9!L%e#D63bs49w8E0U@xMzVb6;TP^!lNixR5evicI7|zK!AuZ zM5;wYBPdb**<%O)k2o|i*1!Ylzz!ar-&{>!$9^nvYa8refw<`&`M%ph zWC4+u>Tf5ujru=``&a5q$6=f@w!UTbI+3S7R!n*r1gS3sU=DAQ=-8s>jXu))`Vzb1 z|I`8rDl|{lkOZhV#u^_bekK1aVEJhpUj*vTB>58W+zP3oq@ys8)w|&VidLc0^8(C* z4+s_54i+0$rhlgUIby+cEXD!?B-fpk1(KBCD9}nujn@?z&*56$0_Rd{M6fq$8 zhxkj8r%{XZe^uzqxa1K6B^~I?N2I?+tBdNT6yQWrT2E-Vnze3BTkk<|*cShkvb>jo zw?|NT<4yV(!?~B@z9TzbDUG8LAB#0B@Bokkg#ha^ z{;m6P#-m94VE`vQEbE$pBK+-!yJ6^D)R2#HB4#z|UkRYsLW?My0-adam^5fCESw4L zg(zO4{ZvVwT`?`|zW|(!43U5b3ts~#G-BwLm6Oa2fN4I8Oo3CB4;ILg6Tb)Mu_3V=~cS|u7_ILq?u%^K~A4OG~9*!6jeT+p1uvD72{oA{O zmcIK{|2Y5A+Uyyi!eL`2t4dnpGVG67REP6d1dJVBffdjI3m4czHh&Sf07037@9vYt z$~&b+YInrujKQYAOhku>CO0IZkmB0l6VRih;~;?4F``~CHaGzLK!>jRFvmMM+~V#K z<0s;8WfdE|Amv-8z$!(Nz-n#7h>ql|(wd%|>aW&JkLa63WiPUz^T4@A5#NE+`QkqD z?ECJz-WJr4bjn;~5k8tjFaw&&iW`Q6h=x?ni#Bc+3bN1K!RrC5lxnJ$E7f<8QBqP; zf$P_UaMPUfp{MP)b1shlRgKV9ODfZQ+`a{@a*EA6@78hMg>#5h-Pch@KklW?`cYsX zxt%aRk?ieE(h2OS#imv}n_U~Ry?{kJSRXbBHv;Iz2=E6s=bv1ryko$G^cse%P;}Sd z`YUedkM3~(GU~2(yI6XYI3iGGq{#Kuc^^LL4gjrfZQ?71@L0`eNW63}$Fr-C-+MAQ z9j8-H-#Wj*Co@fI^mxU(GE9J(fij6X`OX71m`OPbq*3KT) zs5yN;E_t9P>rAZwmD|BIFRGlfmma|_YZZ2FY7!Mdu^k;hl9on+7zJ5KGQSN4S`i*$ zgj8mvnj-Ylz^!2`Qq7WCKDE2L2oOmsX&z_wOTSXpk*k?_ zWwhtZVovkxtl?j|YN^22`|(MRcb_-^HwBF19{+PiTHW=4@41h@nmIi#o?%~+*aN#P zG)6*kVyFKcz?goI0U}_pslt1pC?@ktM*|_%z{$bKH2|pfEma3LyR5$5bzM7^u?-sp zi~I;bnLjh~6?L$(npvu#7X} z@GhOLvz+43S~UzvG@s`ChczS^^kIP}dahXpsZKigEl+cr_%teZYob3@2)hvpG83}~ zT-1pXzFQJ;iG!ccN*~xX$OF{nMvmpaG!-yf(&_KNO)`di_je8Gy|@oA@`*Vk=KmW( z1Hvz#4-bh^D@D1&Jz&a(1)xmCBq*SfWb#qZ#z8n8uH1eQr0pkHr$g|XNSBjbtsik>tPWU4VK zx3c(gv{|4-m{mKR$lPje1P)%w#1e^OQ3WsCeeB1wTH5J+-XBs~EfE^l5S7ZLl|x84 zGi*dvYKV|#$UGc4CW#QhTx%7I!5yRUGtubf805X`ejiNKF-!3(g9sD+n0$}R$0VAC zLPh!A%q$cDEPCi98nIGVr*S(%mD0eXFj6jg@X<}^_>|pg^77=^+p=q>FeBt%9^z({ zs^y5Y8E~ogVgDuc>HI_!OkJ<>IU260+3xawx>|3Ix_hZZHF_Ugss?onoB-rJb+Awz zEQc1a9C0`}4c;`@<4i`>>8Bcfs=uMN#ZttTH{M?H^pK=8)+tD8`?>P)lZ=VIm|llV zpx$~7wRzV+Fn99$cuG6XD^QsQ`@qJ_t9hU*z~BG-A;2e7D3h{43J#nUhukac>B2R_i={sso$?~TuBkT}^5POdYxV!Qay>Uo40QwJR&A7` z={T1G6u#rgj9qbs14LU}TbnBqBAZTdi45S$JF`HmuW=ed)`9wvDr4i#H-x5YV7YF!h&sq8hxbgq}W1vgu2*&eEUwSHkC5}`2(Bc`|hN{EUXr>PUGeUr{}KQ5F&8} z18&wm{cmtUXqyJ9L2KGM|0mTTQtH4(e8wV2d^Kyk-9KWr35b9($LMNO z(G^luwTS_6dBv37Nf`&T66`8Q4v)CioFu4Je*?hIcpS0_BGTxhxRK7FQ^#y}x_KQRC95m=43Ea!;7BhS%y_|b$d5dO zVna}XJcA!lkm168(dAM5hnoCkjvz%C(#)41Fu{v80N|q5&y7{5d6Z}^FCXPMOi~#n zYkvL?BlC3VL6|iT64ZRSUr^un|GL6OrgckFru1Xs zIdxTf&Jro7I!*oUVD%doLr2Dtv+ z*_@a##?DL3@C#6wQ0M^K$oCX3J0*gz^Yfan&qd`)$Ln=Ec{+q9l?JoZrIS`NNy-v_ z!@e?_CToiSZj87?ge%R>2+vwK0nl1PVy-GyV}^>+VN~lDn_b*Xa!0UOC0Tf z-ig~0@;^#xD>kG7M;hrwT2GMY#!qIBi%F<|%W8NcFt$TJT&_FowvrM*h!?3$=*u45 z4c!>_4;AKXjzjOWqF^0I{52=e(gJNq=Q7^8P$GfFOxlGek@v%7B(AWQIkHyH4O8w-{~Iw-_T; zDByNxI1YlHAeXCR1Vvm$Z+x2#8u&eKLaH$4nKBa3UVaNE(#u3%!bHO!-^V)haXHEQ zp&_TP+w}Ny!ikKWx*@?&(})dRL`}inPQkEf3dsmfkp$#rfDJ+}A^>b0ucq3+t3j$O zKoVwL@%Lb~{Eo(+b4g!nsJG!&I`du?iR-iLy6Y=~5?faEfA;|?#{S5#Y^?U@D5+xf zXkAGQp&x=t)k1qzvddERd|MrA96eLck8Wi%Z zL!8kUB7#-s_I^sc!Top9@Jp1Jv0LiG0;B`sy&1zuS)^#GOIB5=Wq+*x>cR1NzZvQO zVI)qn*zW&J{^>1ttK?660}I^*$Ye;?PGQbF=DF6P=(7u3e=(tr#4hH6&mEj~0e`Y? z)J~KV`Da-e#d%k0e9{e8UD=8U$o_ZkBuOj( zxBlY4EAC6{nxUtZcJ%G0rmiTu>c6e-e%lS8=x+0%0x~L^Yk*+kQQC()iY!9X0|u>B zHaZ<$Qi9dc9-A7)`nFV!BKQo4C33&XK|2XvSD}5zR(hTU{ta>*URDoCWO^diTZtE+ z%*l$MNz{pj6FFX5aO5Q`BoE_uk9pk^Y$GmK1N{1dz?MkPS{t0s)l38s`cy5rs z`mMp@iyeF6n@Y^jSX20e7EN(5$acD?sTp)m*C6iTh>RcDti_w3WYf zdE*wHAjT4q9$loX1s_rC~(0y zu83fO0rxw&*#W%@{N9+vwYDczK83=>h}|ZQ4jO0`@IWmy`_VO=UCTA)ventqH`?rF z35g#6)7^g#>i8D{Ss1|cxN#gIrYf@0q#H% zzmNGHV*C?&=jJl2)-~qs*|R~qLI^T# ztz6bB3mxks)$@z$M}KnfFMR=GQvG*~k9^|pk9^|pfB(RP-}=U*$M62>%hBHnAzF9J zA7k^T{S#XG&;YBtQkJ|m*$w5J)Ih z=d5&w4AjY3-{^Y4>SDX= z?{>j#kSvS=z^~Vpj6NwTo#g1zqqDQKaM@jX&!Q=xcWN=#wXL2)Y@W8bwuaa1M8a3o zjVu9zrXGwkH)WX_EC6Fl61nw;t@qtT1%badD3{&_m5j`s@<)cER-)cg#x&UIo1m!| zj~w;1W(k%uO4aZ4=WYMJzxXEn#W&ye%RdWaSH{KA!*BfFLy!K!A3pcjkKOo*&tBO* z?*J@##>z7}4p^i>8^&th4cVpMYVE_ROH8sHx#m=eCC1HC&$S8Q{e z-L%xDosX z6u}q%^+TxF?M#~Tg3;g48wL+LB9@g-bC$(Q92tspbMEkBdoScWa|w2-rSUzsD3W|3 zv$9Mn<a>PQq!C4kUkhNp`BHcT|h_xEKqP8~HbG^Nc zV6&WC(0=%3E~^&5*z3G0BXs@(=cESv)-aO5Jj zy2@*HMu}H%50W}uSs0w{AO<*msC>bfd}~08aF^!{R171lEvP+pu|oHDsgEw{dvN zaV!sHt7)2`I{D9ylI*!%dVMFB@)nqx0Lt^*t>o{OJFjmT8peH*ix{)b`v3rvBzZIA z_L@;mN$U=8$AMNC(1esgm(Nd!v}+T?y>Jo!R!PRIJxG^<;5 zku;XH^z!TQG8~YH_P_IrWMw1DHBuv5u?Btg~Ir>6*(m^iby zju&Y4hFYUr7F9(IZnV~?`sJjNB<#n#+EiC2nzb`PYD+h-^~_z^WG)&azFtRl?5Xs~bAws6XSUvp5n|)g_{c5mfgNPyj@c z%X?eXx%b=@{2_{gn&+r)kW;#h!pjJj&Yw6zUb|R2814PT@a5n5wYwhpIgUfB8eqB3 zE)nXKN&o-=>E&hr^%kgb#+8M^Z$GtN4Re3^r4MnuZ-^qe*#D72&(ab_AhN?D)U&kY zRe2}i{Ra=s^1RIpsnylgW{nh!B$q4PaI@B3P9Gw~KUz07vS;-Jw+EDa1HB+zsSM7} z4nEn1Nx)sV#x2>}v&SqJdd{5%fIWZmCk0*vU)L*BbqWianQCjZ4QWVwdlb zaDfE?$TO!Fe&NAD8{+%b2mnqi7f&k}56FZ2dhOT*|L^C@&|^W>*vO4n>EYL@*JW8Pm)i$gDC6Og#UWnZi2t}tf77w;y9nXi z?}yL7)os|t)dJtpx649XTydvJufAP)FIN8!(C})@qSU?M#~F za&{&o7{<9nutyXqvzY;6@#LlTCYb{1f%2rfmTL z&bfO_tmL@)fuDPR;ao;h_C3skNwGg#fHnYtUMhKPUoVxQy^7KmH;Nb10{}Nr-*DxN z8Kb*+rGZd$T4^y%g&o0INwDVSJVI(}?mc2=q^NNS5BwcUDQ z)*satHc#>jzuD&(y4log4rqtU8&OtC?ewsllkC>vYZ}2=s#KU=uITzC=_PrGKESR& zZA&96f|p*!V0K1PL^me~FI3)CiROSQF+l6$U>?P~EVC?>hCBr^HNbIEhy+~of8phw z7~Sn+7e6Y9%#4kM_drPPl)g4ys`+-{oZh#H`#Q}l-AF`YS?<>ADrXquVhZ@URbt@p zKzD*zt8uy>A2FsD#%7_wSr%tmeABpCJqw8hxL3+0EZsLY&i4<2VPq~`K)UY8pa_D6 zG09;N#Vvs4 z(DqNR9691P90XPEou4nx&*fgNuoC0tzdAMi=$8`+&pkhN-`~IZ;=;nhrAwC@jRwyP z`FwvS)A|MFcZ6+_aJIULh-IhK`tb19o;{pJY+exRb(RZy;46<1Nn*;E&C$~0r#}e* z#az$6*j4}l%>0kv7t?7*@7Qh=)X3tk6EkKT$~GLJGPD%lNP)331L%=!>AYod=;^ z{S*K^_UoSxuhtC$0IC;`%0%y z;Y!7mMApjXj2jsA(nY<$;rhx3z)JuCFfq9=ClA8=Z-M?DnhW56bHdJKE`0Ch@U`lW zzp$35ZpOF;^LGGVRRzSs-o0Ch0{|+tcrd3McE+)QV(}j)5$qZNL{B4Rfk4rvK+B^!>PsPskOS=$wc7rK7iO@%SB}wFD_C5 zlFQLT!OmnX%%qG!Rn_|XdZVFJijYABfdhdf#FnHaL6_&AoP~BZQL|7m3x$L;P-OME z0Pa?<@+xX^5y}`OMZp|qcYRaBUa!m9B-pJ8yGVkcP_gw9LTl=l6gp!a)3`D#%VNIY zQ|ihniac}5ivxR^(e$B*(ZBuI3Hy2Iq5nEP{cb`C09Y1TUti{VA)C$Ras{4`syTNr zKhMkB<^_a+6$S%M6E&mDJexbrvsfh8|G z-+sFMxyNj}qwR$)@D|QBM@F(|&ocHq-jknv=pnXyB4PMYQVFp>JZxvuh!8e(`1*^_ zezqy5k)~ruqF{z|Br%fhI@jDDg5_di7N+?K}sTN97_#jPpA> zNm0GZ%(cN0jkgI{%-qUL2%*+(=G>+zGDseIZmulR$yBRM>BdFyn42l7Pv3wp5PBMf zKF6%UI0gV1rINI;Al5auD$^PeUBv;G_TT!uv;+Xo-*&7mEUW>*SN;?LMs9hxc}T~hz z_w)#&82&Xp_6sgC_UH#&^v3#n!olV7u|N&5r=ug(HK&?U6am027C4ItwgqWXsB0hy z18eK@%uLc(yLK;(#dfEZdZRHkM6+2c2;P^k*SFT!*G$u*6mg~{^2p|qY1)(m61X2* zT;6x)HF#HaF=}b=gfTn}08|iCtE-%Dq-wQPtwwNcAX@pU2Lw$;ZGI2VYtAXUQB@*I zy#Lkdh7;LvwqBAi9yvl=NzRNWNdVM04vtKW-JItzTJ$(Vl~-8~&hdda^z`yFM=WsP zrShp$Ql%2vqh5LD`Qg{^gnhvzYd`M0@4i3&<3IL3S{Bi?nx@sV*<7R@j#&0D$1q z(WAO7v$C~_F%lOwm<|o81VM6GA9W(SOUI9^xz3U+1Lf^`hFvxEoI58iEMyd=UM~B) zozyL)45U3%>J-hfFrzNZnX1AbtX?3L0_|wD83uBOx)1;@&d)EEj`bCT9vHZ+)@XT}Y+c0v=&B7->1_wIV{Cha^-s_(Fhwu5Q zhrc}uZ#b_~pnb0IJhJFw%;wIB09%IxR6lfxZCfvwN0?`FYqVr3E|;P;D2AY;%T!#K z2>BX_+WrF~NlV9%sgva{*`~*pL{)9brL0nAGg(q_R#5~^ZOC#~Q5v%B2_E@vjXK3I zQE`4g>#Bb>oQh(X=;6+K%nAC<&Oj-%-pMM8>}T+gGiD*GeabaIkROI#gmLb zI}L7my0`w|;Je;7B0Ia-#oG}i*VF9n1#Y{kw-HEPy5vbHzfJJ=5!nKOLy1Kkxk7Pg zy`1FI&B)g|A|$i2%o~PTDDZ|s3I)Dtq}5GZ!aQjj#eNI-AYz_I93%;Bbuf%Eiv?Sf z48t_*Dj|fJ=2l&!#I`9ynKaKM3#D|+rU+09L=laR?WG_5(3yP)>rF;{uZy~7a$Y0F_bKawX8oJTf$BKR_wQnGND}+Up z*l)ODn|71>`~O}^0zxE**KV9@)dW*F#JM9bGd|LyD;VcH5@rB6tz7Ec_tv=CB_nm_ zj65@=m*n#&KDn(8BfoWEUfU(1X?{;sf-yoYg}9|V1FpoesH*HvM+i)e5kN*!+G4`* z*lS#S5D`L#hLW;wMDWDnk<*Me7U5P}Iz8T(R+nE`S@KrT=kuGJn*i{RBe(vu7rzIs z7%9?yTH-EtaxpDG^E^EBJRU0*?)g}DAvoDG0lazg$5CK~H@YmdikJ4xjUD1Lzd=?}GDV1pyoptQ|* zj<5Ls#=xKE6qoWuBuP*|36PFlx{F=x0stt-QN&&5&7bznd*2>})63X2uC$d=dYk6J zb~-(782e>eo}Nz0aspYx7(4IN7!RaKh_zbQwmYxa0tEohBBWSEwHiXm>MimX;dx{Y z^@|%dTi^k}1WI`UfIG|E6IP<)OFTB$)-Sw%7A%WWYEw#WL@DsOEJuM5n-H5NXo(`& zHnl8z+if3i$fX45(&f{qGb_uB?tP3K^x!qJp|Cn^HNs2zdDiKd{mn zgn&{+DW#O=auQYRx-2tc@Widb>qOf&lgsksdq4K`E}b) zl3ahSDxaEZeI?(w3qLCmz-mKXKy9{jY`u$>mv8y-vGu9xjtSL%2&xti?%_&>#l~2+ ze5+)7;oK9Cp4>k1KVeem4n(oFixv$A$W*KQ z9)9@Z(W9=5Rpef}8M$)nbYhl9CY*Y zL;;vmmKVha0JU81sOY^jtWQrfv8YDagzBoYZwG$Hn`vjfZ$)!JmrF##ED}zzL?ns) zV3+-FALl0C>K6RaLVv3puzhS9TRYx%yKL}EA@1>V<(+#&=$=s*Y&&n;A63;c08kWQ zxx{zJYDxu|Mi^A!t#pRz50PBXE9*UNBwcoT4r{d}CwNT&UEW%lY3W6o{jc22s;`=jR;i z8*WH9WABNei`BrkTyHSfsoCG>rm45uDoIJks(!q1=KQV0hZ352_`|o~f6v{IeEsWz z`TM%Cy>YsIlmddHkczw&*Z=m(-usgXuzcWvXX(tTbpQ&YXkjeW>t|kk{(ZxH+cFuW zWV*pu8A<^NmNurQyK%b!fb*|MYAb8EiX@;eeY&z(5~0Q%6d-ID_V zgy5+g49=jRL0&lTt9Sa)A!#b^j3lMh=av>!9Fe4kT7&D7LL<-3KDGG98|FaYD8G$t*loagCKw=x_up})bH-MWZEBJ~R!;$7jl#)izjM4CmdK&Lt%D#EZhu1} z0B|W8b=^$;=Dll=fAtTQS1MolgD-Y$@I-mv=@(ucNHqHHI=CA`NP|6eb+qO%%Q^~_ zVCljq?4gmOTS6#GHNkYwJW3v?6E@o$HeQHXboE)5; z#lE4O;AP#O>K_5$65-7KZ8{UmvEa)7IRS4de;zjbD5@GGv@G)*TvY?ll&H0>s%9t% zTBYdQgR?iOb#fhdcwdosT&cGyVO9#c?69`ehAQ$-kvz5-vje)a(i6`-n%V~6LM=q-$Ts&_F}UgfQTiK zI-|b+5Haf$$8MELOSv2%K*Zt=L)@&7ym^1#n(>^EM$+N)ZB~UPpk=S;k}z0|27b%wYfk8+u-;q?Z)%GSCq8Y;Ll) zrvU}XK<<@F$F_5pCDv*p)Br$y;&1a&qGb`d`?iFIud8YbfYXhqKX>oYQ1HqObXK!U zmAMBo7U4~Jem_ZCFy1~@l}HkEIu$gn@cdj`?-V(Q3*2a7IK5nqSz@s3ecDz%=jA^$ zmf{>C)Ytc)_w^g6MygeaPKiZat-DgkvDWqP&yIIK`)^?Y1W>a`PeW}dz|Qg)Yiq~m zo`>6S_wOUL@3uyUcaqpv3IJ3{J@d?WzxB?kKmYF2$->}xG`}%Dl~I(4AYWJE!^BnF zXSbayH?f&L?SO)ysq8iqHFf;t$xBC%u1`%_c}yt~DF?ovRXa2pxV0=Pr_;c5Ci*P7 z0|$ZCTyA-z+whRsvY>7bJo#jF;cDy;5_blJ^H~8YyKz{ZFeA*YB8JI^v9P?S%trxC zjJ0-WS#Q6s>S7-a%qZ11rEx5=ud_WHBohZl>4F~_-35S*qC`ehJ#>^eys}{QvQd(m ziZ!@KM1DIWK~)7!)#Z|3Pm4V_nYj^5TkH2E}9ZaqlZ|&Jb1tD8qHQ%}^Vka6PNg z#`Kg?D!GNXof+_7KJj-;wGG3zS(C?axY^Agq+Ny|z0NLg7-q4s@!CuDgCF;=P@JDj zSF3i2u?N#Lo!xo=CpCWYjW@jMF4?bq>${UzFbjp$>MBC;{qH~f!4G~cu+$e)rT~sD zsyEY{P$vT?6D%>OSs}#0MO7Wh z8rkY1<%RS>AMA-A`&(RLLb-ybicTJ{?34ImuHfLs6$e&w?GOEP_qlSU2OPk}q?CQAKx-N5WC>+`L+zywq-$6ox%Haf|;||!Y2~8cDi02VPz%>n_uJJ}gsB86n9!v{> z<2cT;sA*cZZQC~M2p~$4Y1*O)&pr3-8i>0RX_Jes?3<>I%F6QAC@41IR6rV*Q(&Zn}A5Vxp%f z;+*eL!UzBWS&|g7^@U{s$W|9Q-AQHlCj3a#ic_H{RL4&MSndy+zASbmw`V=LO3mmSr*9q{@R2`q$4?t9q#f0LeGc{%rP4 zqX9t0dL1EX_V*(MoJGW~`o_rcH%13;yx~0nKxr$8M`@dB1qH}f6;^|W0QJt#n{Mx4 zP*pf`O~TPlfp6LrfC5E@-rk9QlU{GKF~U-j-px9-`ZpXet0; zC;a1_8(!5Q?sT-^o|we-d<5Ag%>EGuH~fky81KBs=*iftYguI_-O#<&{J|TR^%^(? z!P16ND>l{u3`j1-I54E0Er%N&_vF}k@j1P|1^}pGQcCmr{598HJ2p0&&*#U+#sC1l z^xD|TlkV5sIRa+9>~2z#W#OE#QKJ;CSoBN3{l%Y2tOq{$k1w2mc|p*$^{FW)I_sS) zro(4qEG;Z}Spb2s7V^vew#T}>Cb5_qi)MM+K>COr=<}NrX0^m@Tlv(CR+&_e9}itC zer6kBxna`V;d+czVT)UNed@-BJR+YuC8%mgTHD2<8eM zcqzwXhXlAdH^*eJJIioimCQosPt}l1x-4IDU!oo79*dgFNH4BbvfJ>^ifRMElK%G6 zq}|0X-frj-)8PkBm-H_ZZ(iNO)hs#ghFxbR>Cn{FA@@bn&C@C&Ep<^$u?erAgqlqN zK=t}$y)M==wjl6^ZlyDvMGzr&I)f}H6L{u#fA41>`mN~w77JWD#TzsW%meo6r$&ax;W#I`A=h*Bmd0?j57MUhfL(=1ipc>-89n{(jU- zoJ9aIF)?xT%{S+AJ>aGs2b5R3aR82JlN-8-xH}BJ=iJ%Odw__3j??e==LdSz6jna@ z`Jun7kmYXff0hBySypOo&CX;6ohL9fBw@6M?Z7^0!08e z0z`i`J5c_ehgg~M1qwN~t9w42P|U)`Imc={Tmi5klsyp=NSPj#vNyU}w_& z))r@xm*>8H+nYv!|L&V#BZ#~H`u83<&>EWvRXJW3{Bd;8*c;rNBJ;kRg%dxn^1@ba zvtHLWHrAGx72}ncKKg^jzRd=rIJw;7FJ}| zL~S{!RE{KY!`yQFU^%%OPFwbO|FfGk$JH zBy74x3(j+Avdl7(B2^03r>4D!qyH>K4$t^E_dbf6##{%%)l6egzywoY4@^lbC>L>6 zD0dvPN)=ZYGD=l&&7&DEzfmKZOHkY8z}v*0&b_f+{Qm>rZPrqFdP^S&0lZaGTXD!r z(w@o5{!(dt+qr*9@V|z*W|K{L2jC2yGXMYt!d`@kCv^ZoU;w~#PsZh00Z2WZMU3Gg z07{5y_T&JN7vN=uz5vL!DMFlW+s&rQaVgstRMp~n&NKnQe&da^FRc9ezeuHmJHIDZ z)9Xt!r_x-O0w6#f$2lEQ3c6tdv|V7u1Cw8t3IKp?ivoOnVmxl2dqpw5+;Yuj)xTab zFtmFnJ4m@vTo%;^K(28xl<{!w%f#JVA0>6BJ!p^?(l}GNo&!LMG6BFBONy1}7 z1Bi4)1^@v0z=6}Rydu==oJ9fgXd9tZS`UfH;9l3wBR4Eh0RUGP zWM%}~o*dmVMt0`H1rS64Dskf9r*mKP#a>ybdhhwA(qwFcE4zj`%i;~g!Wcw>+QL8B zTh}P(#y~W&aA-2uDS*SqZj$Sp-}~P8%sughZP@^D?v)q$ zKQi{O*8^QgPoc)^&9cs?iQB@Y0ZQ*L$F0;>R#vJ_ik6lhpFVJSZ?<<}v%Xj^3-x+E z)w*H5UVe?^3bxHAkZtDy(t`uzw#|Cif-9Qi?{a(2Mvh&urV>eF2C5W6{^)!9e&zF< zn}n}vJTD-`iK3WFrC0h2|C4{|C#-`1lJS^E_>NAALc_8Epr??S4ugg5JPp{eBL#rP z#l-^$%Hg0SLQwtmy?eg&NH~l8@^QY|NN+W*bc)xTTso_&>a)+z-Eqf1kKG{U>K3Y- z#ko1AINQEPb;{O2v0RR8&y?dM-Rh>5eoKu&s?ylJsH5 zghWA1$P7XznM@~{`&3`5yQk5FRWGl!@T!blP`1YUl)l zYWb_WPz2oxQT&p(rHGYGRp)Z;Y`4mp!B%>EN zYCp}B2E}!WB)O`(^pK$!4StOAONWeiq|;{)54WFC!$l2f$p+wmrbdB*#Uk7m#fFRj z_>o5*aa5HMKhT#m#u($AgL4MRj>8FIoJ)kzeBM=6NjODw&MB27iTt}|wYaz-TE~Gy zu>GOOxS~>-(vkxL*Wo3b)nCiD)Usr%t4sl@1c1At%3(*I*(+spq#5t3axymoW&L{Z zS7oMKot_4-Hu8I`4oprp=v{)nAcFdw2MpC+0Y5y?@l<5R10{ri7l6ZNR@k@IH@)uM zbTxH3ZFRA;Hg7JqEMCqGTqgO?OVNilO^o0OV{@`H!B~R13zF30X{{xI1p>ktC`|x; zj&t_dcym&F&N)LDUwrW|e(?(c&p-cs&DycCW0(vj0IXbI3(vvRv!Wl*JfkkmySgr7 zfC&L&T8Xe+dpmQH%gt(9nLYY(x&8h9!^0x65Rpx@TV$H?X+M_qrkI<{0R&(GmbEM! z=kWdqUy^*s!;imi;7`K#@bZg>AAk5^LLe0_tD`4k&QsSdc6Husx$h)xlf%PH?53kd zS-ctm5U)!OT92i23<5cqgDShazJ2l!tK_a4!-;R~spQV_^I6u6#~KaK4#3{3nEIi^ zGd;@z?0W9^drJ}3l`%5HDJ`{D$9soN8La5++O#QDiZAGsj{mH5<=}wuopx@f4@FZx=(&;NBd=z#sM7tNNKFImRY_W0I6q)o97Gs9c>A2>@7&KD%K<>&{(4G2xowaq|$H8i)>? zCwxwoq+E$u1rRBEWYXwL?F&SkH{RCcl#z*vjt3tU0nd#p1Xc5^thM!*sd-E5I52`w zdyO^N*7XBdU!C5zRh!6gpzgiE0}X1lKBOqTbqzPE_BJBWM@LrPF)=%|VQ#}vb%mPE zkIp07N_PR=F$~i%L|0`8%R>fnk6GvW=!6KDomiABYJvBf|7t7Ce2JeYh;52|Usk%ikWQCbZaK7*-K`KVXhI$9k6 zxo}wqW1tj_5#ukEa{vG!07*naRK_~e=>gqHZx~XmvK>|pVvZMEku~DnBfVk|4TeRiFRF5Yem`dkz_Zu}tTD6mj<;ZY3xtr;+`Ozk$t~hIWcnnzBwSWE4^7@nW@x?EG;q=qj0;o?h zwWh6&mP+BHBC_(1ugn;_oXs8ttaN%ekk97<+&MY<`EUPo*k(-AA~Q2kWV@qXDi*ma zM<kV>50rtOU$)9+8xIkqxgS)9RnxS>RXKy zZTkcI`g)&`We_Oy^HyuiggO7csQE_wgbip-=4?xX&Q`^=E3RCAsFo~}fAHYGZQG6< zJUDKe3oR`zx~`vd&iQNBlv73p-w5@7vz>+t$AuzE5(yAsSy9wTL^CAm(O>_(@7kNi zQzMM_$(_5j%mjkMO$5kf=&R3nTU%Y%b@g~N0z5OLkBsUgqs@ozJ}La8h3S2>hXH5@ z4@Ud?UUvBwG?D?F&Rb7yTI%$Quw!YN%uGv5!es#DtSO!mVK5Yy!@a-wvGUvfj-e}- z=;J1-PcEG1g~T02d=)l@2I*@ zzeqmPQ)q^lw)r>RC@kWofDLaam6S^U$CXk<!_rwrtZ<3J$san%M31Pg$8x^@Eq4uUL@@*rBoy%Au1 ztd?9YC9`oD!p3ZC*RI>R@f>lnXUyDzy_0>Xg$DHjcxK1W(>HEd)mQ6$?!@CwXqPH0 zU&xxKKkCR0i!#Q4{@l~!_Y;+?xqOZ=HaR&Ni^X%61xf+LL|{3k z`COhb7BzGLx)v1+sZ=T+i-*1+faM(>#BrD;!<&5*<_a+c3TEUAV&=JpwpF42y1icJ zXIGC)#iG^I^IO;L%Gqa?6ya;o3oI;6M^w~5=-vFgffnX0&^b0=0$_PoqGMngg~I;% zd4A|nIo7~57ff^R{`*UIU+f_tf%cWl z(_i{VFh02+J9a#g&*xB{=&40K9?RwO0AjINJRX~T^ie+f2Upi=!D3O(RaGgQTfV%n zx3}MX{(!MEG!(@g7_52wb!>l7eEZ7qxYmNV=nsn$1O=b~0`JyZ0H(w}MgZXXz+ERM z6MM?lc%qU2F504gNCaldq@D+1UP^g=#P7Ug=6zUgjkRR zp=N||5R&e#O|L+5xtbu>XksEJQ^gKEt?N03Z^C}Cns~coG>{1c3l7)&uHfM^`DPEqH3}J{xcLstF|B!-`Vof zr}i|F!F}D8Z@BZ}hqx>&^YeB`J8_(1G|F5E{`~ttJY_gqgvkIXU=>S#uNS?U4$&*6 zTn+*2y_grd_Wf@NJMJI$?Q_S*bPxwvdB+_!Yke-U;N7A#hEXuhh08Zz^_QU&0LaWl!62=TlFIl%Pl}Z699X?b#d^lrShs-R1J*>~dTa2Vx0 ze&N}!7LgnmC@#|I1BYteVXJPl@~QYmEz;s|A%XbFNOKk9$;l&=lamcbQn3fP-Am%D+I5|S%1nNZyqnV6w{}A#9 zej&p3w9LUl-xa)~_rPI$p}Z#rayA>C$jDh!9~p^e-UBpFk9i8AIAsAo9=w!dfM2rq z-WODDE0s$5gtotbg->&vY~p_cTX*eB?%JgsWxu@;Z#&VXVsUZmD*{)bJmb2Yb54lFxt7bhl0-QdIc_*1G9b&cYgsNK4(D)P>NrG*LMsXZz?e%2A%sX0 zR;@@!R)m^rA9(O#1bS7H1jhy;kR-A!(cYoAD^8h{)`*-D+Ya09g}^{#+%pJDw0j-r0C;?9pF`oI%-?arwpJAv{@& zxNb7JEFMpI_TF;4YgiU07SJ7H_*~I1=W;x%aqdPZkIXM$E&>XK^ET(0BRNKp<}Hmk z4+m45#c<976XnKXw`XV-@2SQg9PtwS;kG6O7yxx0SC13NaibcwEFRZ6N0Ao_c3#)} zgEi-X|D2!4{QT5Z;DL(QzE|CN41jGPkN~@-Mat$JHPQk$@3{p8J#?Cj?YnZ(P1Y82 z&V?8|=cG70`J12JOQbg9GOozPc34Cujw4L&oYL-PZRdXK`j~D25Efunl|4UbRaGOJ z7E?MpvO9m>F)^)}S=-P75MW`=Kz3kIJCq?_bYbU)^?7)K#MvAo;Wi#cDRiX)$XQd| zR$>V4yY-@C$%LFW=iTxfZ;@1Uy=idt-g)Qv|Gv70v*q)-$;qi)E*H3~7eO+qA3Qig zlS%#XVa+O%g5{`@qS3NC-KDB(OG~r6_nY7RR)bRA@Lzfhs4{w21p0vL#af5o`nK1& z5kCezR;gBBor~F@9{}TkNQ0i*zFo^q1Ok=0ZxJmYqV8vn7xA%zhj8F>xj8WC=tgqa zuIlto9A$2p<<*&f1-z08|EI`5QFSCyos|Cv&zqlkXDj}%kM8wLDtqvDB*K*&h}9qe zcqiyBAnXjHL_@|L9Q4GrJkR0k!-?|xB*jOcj{N8l&1A%7NbcGt_^?P;hu_q^w0HPn|e zP6%Yjjz-n4md=)F3&J~j(Fja|nl7r7U2SGdFwH{%;^FD91(>QndGKJFV9Q6B{;=5S zRwsn?^!L^jE@+Vh2PbsE04%Uc&h18h6OHPw8*p4B0H79f>6UH);5b*J7ne%%mv4us z+#5`-Ib#@5-iQmEWw>2_?#7yu@jZLEBnzG|5RBz6GRKissZ=cIoe3ClIKjd2SnhKB z2>|%)R}e_?pCnPou>oo`XM5iMb*a!5Ga^O{i9|#0n{uh^I<4zggdOxFH{2LE+EOXs zx0BS5hDG6yCwFh`KCkg!BoG35e%@_uQSw>gKFwI!ILSF@jLI^Zu;;t6R1UnL=VX~g zbIqQ5#<|0p0|wwW*EEQlq|IEl1vsT(&0Nwye9fQ#)0e+2mn=p=9NX^)&M`kf#+aK- zR&paXv@X^lpWiRbpp+>20@F0v%nkn0`j*uLqx;4tCnpO9Yw4t7E;rfk(xTo{^K^@O zC(fy@s7@iPy9@xa9RRdg0sv70l!~Rv1v44fptcGNFhGNWz>!Eann+AP^IYph)mU+I zc-R~qFg+t-s~*vo>v=t)TY{PV8l|`^@8m_{zyL@goi1$NoYM8Arw3en zF8=u};Yd{*gm!DKcLI20%X@OyPJMLm)bOx5Fc`dzk1-E$7-olttnO|{*9$MCxacuJ z%VZQYt7Rtikx^8OKMPdE00Td3%Ee#(1X!Y~?hj#kE~L8!`-SJvaNz2zgVoH*K^(>@ zoWhHTlVkyIZ)ApA3W~+TiET*}9IZT60_Y7a7(gNzkTyGu{SCYo{7E;FYA#rgz+}8^ zn%Tj@*`W>M9byg)Ol}$$6RSZln3}mcQKFRd3K~k~r58AmpNc~_e1&{8dWBYl17s=G zH|&#~%^o@bs;eG*?3WGJ$+-Hm*L?N+TRCT(bH{OPn`R@I% zzUs1ud%p6@E5G;CpA zpd?Y%6H%MM!ir^WO-|?G9Xn57v0hy;J=tdt4$e_*Z}S>ozHJ_R;;D_7g%Dui`s=U% z{FlBc=W_GQ`#FPPzry@0wDVk-1JVQ*T$gc9`{c%!y(uM2DI|%=6sl8dZEZFq(l!9Iv->C|k_1UATa{vylU7@sF*tb5Ti$Zdt|v7ux_tTaLcyAvYQCp3Y-T$g z)GF5J)8d>6X2NAjYHP!6=uT#i%*@U&u--Jy<)FvC7+^{%C4{P~s%e^mqJ^fW+S!Q(G38h7V_*N8Dz7vB^gK;r?wk1Dv!l5upDbie z1soG)8(`2qbtzPd10VU+P3_APs|WkGYFrw)R-S?O-uV{R`U$Yxf{WXcxl zmyD!V864TcLEF%?gM&+tvhL_80?`+`Y5(1DN(K7A4vv}kz6e+%-R<=_ZNdvz@Ja8n zL6FsYi3CwD2yG#qp4+@7_!<#@H(8^(zS8kxefX+UvEa{?*RO3p4;`a&erB8koYFmy z|7PvW8<=O`al_m1_}-5IRw~JoL^x-2bB^$Krj%Hg#8~CHkqG771=Y1iA`F-grIJJ_A%s#; zN@O$t;ZOgcCcP~ceJ$n2j-unPxop{rV5vGiU21Rt{(TQLA;17O4sUw$C-*zVH(~>o z$4X2JkeQjWpjch`sKkpiET2>riire(4}bVWeJfVI@4|EM`r5xevHO{5R0Ara(9IrP z4y#yT$+$Q~TU+ayXTEI1hK>1rPLjyf)R8@Vo<4MFzdJK)7K?f$^m8#kH^+)aDr*2@ zF~nlAbUFr9X5#L?`@X}!e|mhr&?8sIiu%Y1yc{LxoU=NTR8c5Mk`%ElXEC+HRz1qg zH&eND$|vN-me!O9yP?UeESFn2a%2(!2(2^YRqwhH9~P_5I(OrhZ+~l|H6emI-uAY) zJo3mR3(Q%+a@F;3`*S0r<_dYI=|s$qhacljubVnGRcvpsjVTcAskDpN71mZ3zm{S` zuZQnzwh#Ch%ewN)auk4Un(1xZgcose2f?4bcA@6FHHNQziE2?R%M0K2r`;XH2r5Pe zcVeY$!AQ1PbJgU+pf;ysW`x>-~ifeE~%*#MMm)}NqvEBanpN7qGlIhzG|a98@? zz53q0@xj4ETeffxdCqI1V;I3?LVg$2jJ>RMdUAL;n60N~;bcKJv--%0oHZ3QtB-~# zzMK?yKmeYwmZKXrQP4}r)YRfWLZ?uR{S89MPGPBdQOv(5koUe2&$lu=ORBTE`kdDA z7_U!yUrbot>B&vQj-j8FyvK?X-r1HN7*#YJ4>cYL#AuaA5@GD^@4D{M-!zVseBgn5 zUiGRg9mg$|xTZO_O({jONO?f=MAIl^LKM0}eF3H@RFa4+V^v@GK!}&=wy%8cXFu8M zQc4Kng8dRg09T0=lSvkcR&9b33pIqwb8|H%OQyaJ1S6wTgceKgi#3H5nVya%^c8Ds zBb5?KeJSi$u&i>{io^T-a>lsp^50dDd28(e-mi%R2k-dI?eF|(D7CA>%HCRs?V|$c zxc{#EFT1)i2R{F-m;LgI-vrq&KwY;)h{PCk9IhzB0YR`|Ns?%>C?;jNENikX*|rO~ zlB7x!Q4|uLn>+8~;jqR$_tdk=Xlo_iQMrl1DneYTyl~Ig?|uC>q1k}n{fWQ&$2)Ep z+E>go0&`9!iMp=KIdvSjl68eJfCL_4Mu;#%f>ICy#V*}=^T&EmZ#MfzociaYs`ZXj zJGWBuTvEsPW_nKxHMe}=V>i9^SHGlIkxMc>C9uH$Mf`u*lSUdbIsjO+Vd&=T-lKG- zp-KR*e*0Ul25!0KUk^R~q<=0=f?{Z?RGfRZlxXQ_@3`)|_jh&m&d;0k^QNLG`MgP~ z)X~vlS@Y(;eKRBxHjHMfy65R{8z2f5GZ@ue=o*7p}-U&*eWioul z^3zZ6Ted8Yf(6IcGvjU~3Ry-j2ZZ_>1Rqs+LCZB&{H0tjx0I~T07zlJRGL)P4gkgW zHg$Ts(&bf-t__H_%bD7uf9O*;x1~B&H9`nnx9s2hwzpkFDPOmuFA<9(bC@PuVojZ> zCk`BJ`0!K?N}x_p`B%0P6Rr!n_nTk$l?!{rFGh?j$mjFl|Ni$kZrs@4-|ra4^Y46T z*Vb*u$cT5>0^S6InD8MyxWGXOY0mfoR9wIas@=hKbF`+8`0IJaX8f%L41HvBc({6e z(%4$Qlpa|6hV{vT>!B=|`pAgfB-gnh*2c()u%-$Qtz|NOcipvkW6N6JSzq0&lC~== z+=;80v#lGxR#pvyxweD)_;W)WJe_V+q)-y|IWRjkRFg;Br}RRX3*PjGujsv$GdfzB zgM-<@0Y^8g9Kuf?3ICsn<;R|u;}mcn5T?>{+-NRpb!-u~c6N@~4m-*a#~M(_A&%Wz zuzDFofbJ%0oR&`#gy+a)Fp1)e`$~z&7dxKTSO_%CA1q3m35VYN{ttcjpZ~GG+%U)k z4}AZcYu-0DcA!|Kj1k5vh8sbBUALC{Qpy~s$T_iX=e4gI{@CArqTxaFzu$A?-~J5; zxMvQ+V{+8s9-F$suGGWh5cry_MHcP}!aklKANOP7LRz)R9)9q%Uxg9i58m|A2jB1}&vwcI%9zi7 zA<2w_;PwxF`emdXC>{A)rihy8J zj))^a`tFaK5a5?z@+$V_+k@Iy!u-oQBZNYjmdkr(0P~aE2*cfAv;2C3@Sx$(yLe)RXBICx<3IDe+9oRBkmdp~j8t%U;S=W`Gp zCMFLkk!3}eRVSGwMY$9%V=+^(r%QG++Eg1NnOOb0Eu(>G=ZT5&r+@j={}sJB^~$vX z5Yg<4owjRfdA(&`?meeSKRfjTm)DEf3`a+;t2K6QGUSFsjSA9I>>?W|MU^2W$I54S@VG?rSV?;w53Vn1`J9OyK=FL`j zRla~@rn~iMXnXhLpPMwY6xV0Y9;*6c3ZkoJCZd^)P<38X6G9La$MR!ng8{U`I9rij zLqoGzVol|dC%XEj~}L#n5OACPCOo) zoIK>Zj8YC*x*lcBN~e2lyU^0o(%RbA-rhDaur6l}fd=#0CcX(a4S$aBXddVll@#gHmO$CIq&oS$a8y)%Qm&6JgT0@C#r3 z`rm!-#-$vz`(sl3Fm;9|M{Oi^t-3V#t!)Y&k+A| zLa8u|moLYngY1ru_M311$iTo#*iH@m1@PDdPb^X84nV4_=h_=?gm?Fz*4OD2l7)g5 zSEb*MjBKBtqEwP7X>Pd6<_dG!9E?T85ifl6>p%OqUmTk_G%+!5nhQd&-g)GaKfYp1 z`K(n1C0o)WTv}w(%-S;&J#-j{4iR8CaPSZoz!$tsSE!2fZA%rn8@5Nk~wX`HIzWCBhF1b{esp~p~D1MZO(e+?6Y{SqpnbwJ&nkOqAgnl%+Hy6d+^EaKqz5P$YDHrJD!3nYeFOl>f zKO$a-;#PdstHJC3EV;5}Zq7|6rMbDq9b5st<%%mPm2B{hXPluK#?<_R$coX? zlGuCTz^{I}{oWtkZ_Y2YCR5ehRj!^Am>T%EuY46iLk_HI`07_b{_9^qf5#o)i$=9* zG@@xF60v1jQ508E6jfDaSyfe4mSs(gXqvL|jMG#7&GN~;_bqRIZfuOHYC~_W;DtA`6U-F9c29~wN^tQHGOD}+pgDb+0LaNv=g61y(Vy0kxd>nvA0)y1RCQ3lq zLY9v=KxQ4V;5{QfUWt#%;o-TVAxfdDygowmXrZdLViut?G9FP8-ojis@o_(Y3^{OU z^1grD_S&~>Ui6@2`}Wmk$*e3=tH^3Yno0eyAKv}r#snDH^y-Vh{eyeQ#tr}uAlNUF zBsWO9WEq6eLcs<&A#x<55(3MzBuSAZoPPS6H(q-2(Aj6p;Tgq0^1;7Xx_XOCPzVZ| zK{&_VKYg$X0ag@x-g)Oe^w6Wi1)5UA7~`CB&Z_AF2dL-^NurF|loCS7z`&XtZume? zPbVlaZy~<8ScxoaLjS4W{F~3ub#$z#sUOV6_0ji!;E|RIXs9={C?T5f*UT#+UEe^#qH=DCI)C!FAp0 zPzO#a?dj<~>#X%>o_S_6nUrOjF(I)I*Cm1j+jf>xT~(>?2wmPoO9GaK&Qw?f?)k<& zkf=9LRC^QFpw!+TnV$A;!hoYi9l~w5&C5u`YK==l06cQvy`5TgWjYMpSqaJ?uo#LRl5L`(!fSFvwU}=6Oh!=O zqk7NOn3QWu{AD4A51^^fO&Q6R?*oubO8(zP@u5$CJZ#k;ty_E3O&=nJK$a%W>Gt-j z{`ZMcDN3EUsY9ArHY~{ieSG= zB%-ceJD5tfb#yc{2mpBRpT6a1+aKhy*dpB5L)JVpzW=Fo$Eu<8H=J`uPqC0?s=}ne)QAVUbz`d z2+9ugG*C>F%c||vOzx1{$^-!3e%af0;J3$0O&RA(=1(K;Qws;vt6 znHO#l?1?JUNCL|sOSk2{?usj(e*AGMCSuMB=bTb1;^!radRLA0_4QqF!G)4U7=!D& z040PF!U%B~ql`(e%S)w#EJp#jE`W-L8L8874r2VsWS!)D7!4)>N*(QIt6skD^~ce)*SvDm*q+^rVx45Q67g)({2w9Wy=G#$gxCNk#WfRfG1rYW0Qt2?btWE?}E z9omo`9B>RH65&n7VjDmZdqL(6Bhk{*@}nQ!H{s({&HnyXgM$MtEiEs5*;ze3-SN1l>zc%QOE~*Qws6Ut zFHg31^{+b1C#5xwtVb{j&_8|q?r)#D7G0rF(A(a2)xf~uSHAL%QmHgIw@@e)0KZQ- zzzriosoK}qf6h5)uU@@k*|JnL8jVC$S(aqE>i&4_fhW$r0UC;~$~TP}a}(MK-4@WQsXBq1UPyX(4?5K-S29{8^77K_ld zvKp2jC;=(lS!H7OvES|X4gP^stePdOjwU6g_6~L0ABU55UT)s{-PiUN2Y_CJuUD1T z&FTdz2iGJ#FSefYLgS6%BO{V&W&$Z8>gnrJN`hx3=FysLRVVF1YAOWl%nl6|(&_Zp zZIOuyUZ=j~Cz|CV^F=0uGPlo=CK0lY9#egEr16UC6Ol8U7xx`HD)@soKXoJkM>n+0 zgdoy>N?xB#+PWbOs=>HBu^_e$kb50~NOINi=vKPhKRP^9zAxDAwXjy*yB_+;h(0o^ zWX)hC^U1}F&ba?u;FJsWi-mTzJaj89RlZ6GKuccwN5%l8Iy=EwJQm}Wc1I!!Kn&a+ z!)P2#eF&PxTdY3d`Rt-E%< zRCuqC6D>cls;cX{Kv|haaA5JhjK|~a)~!vYQbOSafMKK)i7rV}0sMN;zV?Ih^EaJ% zDTLW0Q*Yg}`M}<1C;&nTWA&cCv?7QFSt6t?mdgR`d-mBA+n(-Zav@tAZ{Bb~E=iG| zwL^(SGL=fjVsX)LsZg0I@*JSCt50rn9Z_J2L}gIsT5tk`ixRZ6O5Xp^phRxt2Z`j z+t|K+K$XmqFr@no5uqR1pffQzFg`Z^FQ59t`~K!V4Qs#gjax3dXw$8?em)wFsVdbp z&2`=W{@zGL<6KfzRnuaI5tn6!QWB5HHBF61BbutBsc-pN=bZ;&ZuW5QciUI2Ix7}W z0wBa^!l9$jKqxG~`5(Ug*;_u`E3HDnvKk}K6f9jq~LcI(7`v;aSd)ohb( zzDOiu+oiU)HbqfnSymKT5MGap6M)1b1R;|?ANt_unjg0oj4jM8Nt|NKYcG4?KYlhd zG1G7@wXDP0+{z{F$8M=2+rkTa@7_`2KP*WAAyAvC4+1!FWV(?WWvzEcxs(9RWw}Y_ zScEYy$$T+2%6sm)=gn_@Ym^Fy0$~J}7~_mF;W{C9d)Hlez5Ctok|f3$C4>>;GFGnU zx(*?#aD8zZCIM5f7PmOs}fTy7LIE1rFk;oN`x{inM=de-;1@!t=k#Oh85 zHxYk*e(rB8XU&f7+pTn(1BGNq{r&x-7UyVf?T^RX1oibXy^!0w^{MmLu4rNkK3cqX1|m_d7V46D&8CN~KaA>GYbuzO^Uz&;U}~wMaiA zM@~C^X5AV5th2?vH14ALT)r|l%L0*{gpi;ioylscHOc9sW^N9EI?f|c?Y3|I_6;|@ zwPB@HD)E`me8Qc{KJ>e%_w5^t#UhbN#C1s|q9}?Mi^U?52xB}NjdpajB@&C<^j?4I zWyEzw^X!uK?B2(huR1fCT;@j?2T(IG-k#61y?aL= zdu(S{SC^(~nx;q+m1SAbMM{ZSPNy4KHShcPyD|r#YIZuWzvT6=zeFrQ|NPYS^sM-g z5d70;KM8>Gs=KA(IR25}?(X~AeQ$Vsv$Vhf;%oXo{pp*2^WbBT?%vzpo>Em!Sa%I0 zA&9Q`9{@rrAp~7XqlriT<3IlOfkTrGRy4IyoVotYW~&1j9^UlB@7xo*+Fg>5@xu>4 z8W6SS!iYCLJ$>ZJR8LQbBmv15gnNSnz{LEcPwuHN7AfHZbP=9FK0qYlD8eZf|21!< zv9kYt*IoCGZ+?R%k|NnK=KvT$M0_~s9AM+)2cCNBcW0foo)9p`JR>kXGVCxW6T*tc zoGiyFh3j%vZPrWoe)H}ld-tmT8!5nogVlmlW5G2%kfq|GVv(j&XZH2MbH4Q*W_^R7 zs42ewEx@H-lJj0*fdC+aOUS0#md&c^v|zmcs6)$S%)vq7lH-pe;B8_DG(JQlr3JI| zzO7Tk!{$I$nz|Dv`CQXIp}r?|{@ejSugvDnlbeS7?z&6Pn!&zpKzf5K!u+wrR+5Gr zR1Wh00{{U3|Kz=CnB3NRCi)%}Y6oiR9mS=)DOPclWU^bLBq~x<)@FyTu_f6SZ6~p8 zS#dmmCb=FvcAiNlnQW8Ejh8Hr;~T{zXY8>kFVZ+eTCx^OEnA{Qsavuvl2WzArr2bm z$tGFV4OCZE7YgV8H~9J zMU+NAdQp-zQFJL&1OO-tBCE+%Fc_!p{5O*A@A(x*qa{wJ0~z@X(FgwB$=)WNvxvqq z#}=}P#gU6+jxFa99mKnAK@cjc>io<%+Bc55!|0DAH--Kf=0u^QsGeMHR$D=mG{NN^ zP*o@jL=lPtRRv4vwl7==x#8y*umB#qz=5}u=9D-@khC|`5?yl-;*osO8fEFI; zWlK<&V-w?6rfbWY-zsWH&A$OzX3JLXJ6=%@E8PCKr8GjhP8h7tW)jNssq8J3jkR1I zuqk$%*_H3mQH9Q04azc}eI8d|0lyz}bBIO}K09kT99-w~6(uPg4o7v}-`Ce!sR&^q zmfA>6^P{^v845M4ZNoyrSFG+92F}V1{@r_aKJ)lv?%OB@5FrFWM5i$>#Bty_vXOn- zbseCfBm%4=r1PmK@n;R|)+|Fx$Jo19brUe@@9)3rs;k4{P&nM#(b3QI=eY21K$fN5 zyPf$>?;bx(0~n}LZ5*-R-k`W`^_9%r6#-C|oJG%% z-yaagC7{XA9G7n%8uIX79v~H+p>shYXUBX4o1)QfRP{e%SJrJIYYIm13<`=z9)5IH zSL~|Mk>=+Og}5zS)@|9c4ggebc1HH{UJvj0`TYJ^s0j}D^?m#Q^pF2D*LE$s!NIP< zLBqNK%Kq0;UStGE?d<#T<73-4Z;*ysyPvjfzh=w!YXD$wF_SsL^WIkvAB_uPp69z` z5w*0~84=>K2wEY=GGd72K+kR75G$sJw0IZrm4m8A;Tk`z#FPfoC>n|uJ zFTC)=-FKS>vFdoO?egdo&$*&lYwaj%Gqc;x{YA<-LYzTh z28Z6Y>)|V|xZLB>DJ8nD6Qb)nBa0@Libe<_geOEV6iVT+KNxH=l2=~XPbzi~OOyC5 zZMXsesQCQP%+2eYJ1y63ONjw7z=WQ=Y0d_JSi`Gm9M?7d?~0;{V%M`{tTqj=s0B&# zstT_t1u0=KKwEzthXL={R13&uRVoZXt{rA;lj>D4r@xiBtBKe04Ge=F0uKeP0$K&khe2B?+i6YQId8Wv?Wa6~zNU6f0~& zRXIV>c~zZOBFvl?MF@hfs$9J$Z?%Xbc%>ljl@4YAK&S}a$JD8Q0Eo>Y7d8G`l8qv6 zVw4UijOhAcZTxsD3`U{z|CiW%Z4Pj!ud__cUR%}HP&i~+xuI|<6f(*)3=9mkarAR< z{RZSr_f+;0C#cf|K~1HURO(#uZ`o(FM$2r~Xld`fLON|waCH*QpD>3gA&)+^ z>#?tW6~J|=ltmSO%mkZ7fKF9ij6{UD-!3Iqah#7vqr9q^{KGVO?0BIs5uA}ZLNrl~ zuUXUNT+0xDasZ~C*4^D53WdVqa93CNz(Bv>FLZSD2Lk8*6V^307N2l)*sN|wn!O~k zOkbvx+zs5=H5iX4s9p`XP?mT~scHREN~^kOQIe*2?lijEgb;d0QT3B$uBXMs;%Zzu zfCg5X&F=1QmWa+!3s)8 zx<%M5T%O4yNtPc0j!#VRiXu#=Q5$Nw=!ULc)MV1C9^5?X_aX{2dd)JzlP&vSEK!rG zvM3fMNlhhN_gPX=UJoJg~mWZUaQ`ml~hs_#9&Cu+I(;djCWXs2%xwqXMI>z5Do@q z2~ts$HD0uLvr7@O2IC2jQRIlxO*9)7C@Rz>l9Q-;#smmzW2cCZ^ToyZie5tlW>b83 zcegE&d+{ZZ$?&QgA0JP8dt!a(>)||m$qo$_FJZPnCT7OUWWbfL$Q^9tmc--iY4%xT zWbk@SH_DwK-MRkC&99EXJazaT){-YA zZVoihfcJzDKH%{fWU#D&3Lz9aKq*J6Of8Y&q01YcNm;<|-B`UEqKE?ruzEFEdfwa| z=H{^4j09A4gR+I^p=mfe{Rf?$a#}B;g=NTp_{craKJ}zcL8cVo2%(fx-a`OF^<#%$UA1Pj$K$m+SbZrFF>T-#pfKxN ztpr2>5B(sks`20ZqE^Eljm5J+b+TP}g z`a2?JQPArQxmli1uV1MsJH-6*eS6s0%5NKij0{G%z z{UdR!{M1}1MY+6aLYJG(B)h-;uQzSm7T!?(SpUZ_e-Wk1qd(a_UswzTf?ltW3CDSO zo~M*nD!Ru*2%!LFLEuV-t5hh*5lSmPJ<)caxSxFI(N|vBZy$2~MYx^xhpPYpAOJ~3 zK~!yUpr9!L-|18K1nHMwemN8hc6BwZy5xEmxJ-4x_E;4psSbfl%S)~qL;&!E4?JKm4(Z5W zwV#_&$XMT3c0M(kvg3yt!=znvY7$R3FMg7hJ1R;Nud0@t-{P8HD&sU`d1c&{?eBGg zh50aI;}eYn=Jnzav{nD@9Ev80MM)}{Sn&&d_V$H^`{Lsh0awVc^CO^m6tN=msuGZ8{?BSJy^^#hzIg5)jTn(e0FD7cZ=a^%d2;n^*%lZ{M z>-<_-@jC|t9KX^Eo%UbO^rGyYlDenn;ygY;9S^juR z2}gC0hg2#Qpd3f2hj(XOp}?NU3{c9^qei2(z~ooIGI}~>dRj=Q9dm9+=Rh>##p6#b z^MV^lc6fO9#*u;~&EDt&i}k8XkIz>_cU#inU$Sz1$4%Q|a@qm#@V=h#Kq=O7TCL`@ zHQAlrUnP}fX+fIE9RHLs63t9T6Gb*1z4hwxbz59Q*3Z235~XxtU=Tn!9I}Ykn61n6 zzSXNY*6-CyjQ8TDH>b2W-sZ~|a)aq-aMsSQ1C-RGkx&(vGL0FG-~rZ0lN)I;C; z)<=KmcU<><>c_h`4)ptcK1w-NU103%0|NueWU8;Pwb`rxC(e zOx!ZZak^fKg@YYpDAL!i<@3!y|HdmX?60>lZ9;1o-OXdGwbllv`Fy^stGoG~YQw>3 z^{9Ey?djYNc678GI}{{o>i+u&A9$eYz?NnkyIH*UwdUbptEuK%q&<5AL-MH+;~V7e z0ws-ZAhF$_7DKiR&#S7lIHU})*r_0}{503_X|p)S(0ME|QvaC@$Z~vQ!eY2#5Msu; zRgffRlQVPOZiL&fh*uPgKHBaeZ-kOZJ-kp9%7Pe_<$@%Mlj)))l?9Q-*{#evmdeYF zH1ASUqs;`4_V-x6Fo?gBOfgol3vtS231b)I6-As(H^aL|+oE1PucC>9l1k-L{Ukl)MT=lNaTixbHl^t@D!~#>ECoc zTjt$s#0ddewn(aKGiDXXoB$h-g#&zBKPo#`hgTH_^(>3x%#Kl3eU3e`%*V+lie+5; zc@l9l9UGqry5`>0h+F*E-572h6V7Hm9LKC*p|j8BfQ^~}HI=&ROZQ_8t>~{bsQ!- zu3R@)J0j)FJ^#%fga5x-g zBlQ#tcRQJEYQkI#3)w>93`cNu@6*RqsjL6XpLsv#4yRn6yuNS$UwrBJk4_y1$8}}1 zrD!ypJ?!aR=ktXDr;$=OJcL4_a5&W8zxvR-M>kyC>_xNW;m4nKZP&EL`T6XM6@8Re zcKwgZxa}NrSk4O z?|kvz`@Zs>Z@X?^nOeOv)v~7H667EL`d?mr^DsKP>hU8@mm98fizNVDX>pz3ccr5A zcXZ&5H}J+ARtHTG3Pv5-DuS17s-Iq1e>-cFBV=fnrzK`F+xAUXq6xy(r#~(2+0$56 zrqxVwmjl4bWz}#6O#{CzBt9`ArqhhVy2`9pcl4%}oR((ESHEPMAQUBuWk_GjfMGBb zS5X6UMsx!V^NMQezM@HB)0ooF5Z6P|hHrgaQj{c36pB)UVX&2CN=c?1nm1bxW@IIm z3dpk8to2eBMNJffHr`r!x>KHXrUBan=B&kQs}{qUY+<9xv7eo3>ef&TQlcmsMsJhI z-o+L6(~IeJyTRVM7M1tTldzXaNu^j6{i2MaO$o?yK+XhZ`GUjmm#jv!)Y(R^Hx>e7 zQ=vs-XNk31PO^pbNM*;XN_>1GHZjgC%F102**7&$JFEB5G0VB0h~8?i*}e7!x06w` zBUsUOn348ELSk=|CJKs}f{n@^=JYaM@T@v~5;G^Ub~V%j00=?6eH2$-2BCIlwZ1;D zPJs6z8mXB&qfta7;5o(WMvQUZNDGggm;V9k1NUlks#6rk&MKr8AS$jll>3HUiE?Vxq z`KC|&*lq9dJ_K1?NSTeZl1)(TO)hZ*lahi}i#j7Zx$NqOjD+(uPPDX^k``fR*?>(E> z{r2x5X8U4BTR$7S|KczI`vd<>FTZkYS7%|vy3&agUA?^k_$Dk?N?tj7^q(Jo2*C5N zzINjDsrJ5mV<98AHH$>yHis{*9oYPkV+^>DjGP?+}yG5?sWiQ#@qc}oeTZ_ zVUrYt!3ykk4d&;Mv~$Mk{RgLKPS(yC#&W5o=JWYrFto6s%*@V?{jYx;`QX2EJ;?GT ze>(T!Tkc3mNz>jjajH&SEzE63$CVT!2&>#v0lYv2SeI8zjTPszwpcEg#-4iW3!k{} ztN-e51D`X=%zf!^{^{5Wi@4iR>TTH&w08bA9RQ?$69CfR-_JM#y1TnVp-@1USMAz` z$+XQGU@XNjVa1GVVa=}pyUu5Jseh-87EQE1{VFr0t#-D+YP`#%qcGKsTC0}8W=&W- zGDX7cQUs?80JKLMtmE;jYG>uN0trPa!3yFsc56)(Kx^`Kc~xDtYnQxZMbq!Gl#Vjp&*j5!7~ggG@+jZC)8$u&LM9t5Pov3hPyrf+SfFJp;g-@2z`% zW_D@|oN2r{wo^N=&N2foYy`L{Nri+|lq7YzjJ_940bN0W(J`ptGC>7 zN5jG%|Lv8R;*mJY71-z~G_AtFdlUeF&&SLUEpdH+J>k_{r^MdkpezgNbY%0!jkgXX zUjhI{fn$c5pF8&Q{=Ivj&CM+U0Rpa=kbL=hZ(h;FNJWhJ7gS-@iuVq#?Ywm)*r24X zKj8htKl$Sa{^{GN%6iG2JMzXjlhpa0^S zy-$Nuuh(yw8iY^^j?$tef%j<9NS9tI2Lk0-Ob-NTv2Z#X5LT@Qpd?ui2vusbmTCsv zw|h_M(82tP>0Vm#c!(GZe(;m`AsWTcTasirf3MM4e0^&D#7p}qrK|=kCB#5KfA9M) z2gv0xHMMYL>e^GMjvSf#fGF~cQj{cqZVo^t8ts`=dNy+XC z3F3eZEA6F#+}w&)MQFYrI>dHfGQ@JnTPy&=PbRnxq#9}rVmCe~F+Gwb)*|KidJk^y9g*pRrCO$qP zq|;#`xN30*&pz#XD*c(gkNo(@I`ssJFGTzR2m!}YM#JIZ2*;6%P5|IQAHTi4S6wrt ze*M9)5L|WZFna2;_yCB){YR!A`SydFDDbLUjz$THFRvCPiC2`05aui$g%B+gA)r3L zKj86b9r1_uzvL+viLOUtvEuP#p03p^x{^ITu@$!rLllf!aBSXS7ryVsmmdFF)HHPG z=H@y%&VH|oi9}ftyf*K+$KwM&@WO;_2_UM;?|4w}|84hxnt?itjV=ucVidZax zf`8?e&Ten{q|AGu&(1Cui*FYSQ%^rVKa=^)cmKz-FZN6Kern&?v%R6Q}H?(Xhll<$PlIwm|<;50il)YQ7%kj!eQ zn;;Sge$<&0RP`&khKOs$vB``SSAPP4R`YHh|Jzo*s*?EWZkdeQ6@WHuV7qs~ZL`yI zZ*)Y9Nu${*S)ci2YC)3X;}fxo2~c?E6#)K>>}SRWg)ndF*oG?0D{3p`j`O^{72__~ zB)0%fLwV;zSU{4IOD~D_>cR_yiz}&=CSEvzYq7XY%I<(H$Hynop4oYEg>kB>snmJJ zU{~wG7$>zqG6TL*)_PeKH9;s!3F|>E zND?FzjGAnU)y)o`HzWj@^Q0Y!3lm=JD9dgQwY}=!W!Fkb+2LVL5UkAJOIdhDiA_wz z$Hy=BK-!Y*@bIac7{%F2sRVz6k`qL;d+S`k?9D!b(bG!j-hCG0W7W1za1BCcb8kQL zyoczN5<)#5TG2Sd!Q&yi4(JtPQ-Jbn;mt>XvF5Ub@0Pk}Oi{6A%U$>3 zk#9c;kH?qK69S#mfSe(O_?0=rD6)7D(RFfSCKwKra5%g5>bWbfUhNW`lsYDDCE zx;W0KNo#${{uPOC01$&f4SnmWk&*qGnI<;@{R57MVs|neZdQMri5CWrsN}$ zmMCu5Q#jJgs;iYsSrAC-)?2V)J+_|v`RXGd{m5H~(!2ld-(cJ*0stNlfKGyPyu+rs zl1fF(=W~%rSN(-JFnX(YJycpOKCFYOn zbQieZ-hn{?%pP8M@28IL`r*-|vN>W}7Q&5Z4>~tDOGx#-_7qDM;MYg*ShwzM2|EQb zJo$vQ=AsSo1enaoj5Wcr- z3740U@LuCXa6+EF{>B^E^mGUNSJTCEDI_4LtV?a>6&1wz=;wgEs)7;Y1FqN!i-&Ty zKUSVSt_kAI4L9`U^Uj{8Y`W~S+mgwZgb+%jlmeK4@`*oqA6 z>1U2kPyhY@{9c9g0KV?-wH+P3X4uvUs>GC6B?wA9vDxsZ^88JX4NWsPDwU8Rbx-O)h=ZBav8%rx~3u}i!u?MildxOmnT zm6nYd4+Pqc0JHdBK$e4Y=KqNJxs`r=$>tt2G3cfz##t)zg*>%Avz;xl!3fGE?DSNq zM&B(wHj6g1#-(AiPXfnV_i7@6jBJmzTklRFBLjhAVzrqWA_?hq_t+Q!ucCMrCAfPx zOtTy&c-|6=P}*2EC#9}lDpb;rp4KwssDc&q`xNdMQOcrt zYGj1b@}1idc_Zr=0C;|3VLljaVsf~AO1-Kgq$h=RTGBiGe&dH*f7?}9ox zMYQz9heDn0d_LF@Z3lyu1u-aR`t}%Vg!SC=ih}l@VfyOpD$osJ3>5GHMZh!IhnqLs zy9Ey%Jo2zvD3t)fg1JcouxF2XAst;Wy=B|aX)4L1JJeKaTHMLFrUJ68rc%73SnL(W zgv2XVsyVNsjEr9IjOr^YL;)EYq6pCZ=~JghwwwMt1Bqkx_4@@?N}|?%V2c4zURAw{ zqNI|Hssq5lfE4_#yCBQ>K*QAZ0|%z_`NHgMT^U;-6bcRwt_X#KJv|M-dh0f%RuBB{ zH^2E!LO^t#6$0)u9Xc!mT#7|OK`9CaH4^DWQyn8dF%BTF&TZX#wQ$?HLC+d8FnIgt zzxcDSf5jk#b9tIuYOXXEixrC=HaTdbm>V8)Gd}>(QmL@8FvoGk=ksgYA|dcfegENO zA3JB40|5BYJs(=gmmb>n{rUMh0KROtXv_ zCM#CldfTnP`sKT>^`a{p^?1A-$8m)7g+fr2kvs3g`VC9IDw~zwD|LV1Q}>=YG5gxj zpPSC*hz?B@3jsgR9{WDyXDqsp*`;xIGFUFJ1)!voBob+qWuf)-#79T-0HJh&QUI}7 z{EjU{TW+kIkjoUi+A;4b0L;xv&;R21sZ;;)owxOYK|XVo9DTRrmV2No29#z-W)Aua zQ%h>EKobS8Ed$p2NEIXrpg~zKi-L{)&Pw1lUbv!^C`vO11VCZIi3|Xbpy87OU#M ztg+B19o@OJdu+@kHE48)mLp3DDl!w){#TfsMD15Zn4DyzcC|tooI^<_H9?#mu@wb5 zKeaI(`Y|&biV2B%>Fi)sM`~;Ja?)w*YX?9R1R+}w8SR1}vIU zn5aJIY7M+oV$~>_r>1*steV}r+yq(xQg2dP<>EU(ODULsz1+}nF(GM!P>>`H51*>7 z)8<;R&Ec41A#~GeXrr5|VW+Dp1!o;f6Gb7Nw&onWE6{b=YAVI@2+sKpVbUl9eCpI0 zj%Qz%rjBewj6RIaUr46`g5D0+df8CmbOa zy#nZj5D*Y}D4|}j&oP=4C$b&;4&XYM;x~hzy!Y)t`cJ3NoH7P&PQIZ)7`he|gvDfP zX4`e;Se!2`l*1j&8Uf(To>`2?i_s`R%H@3XN!y)mwXswxC65!S+m>{XJr|o8$0e2L zWQ9-&P~|?Q0A^T0ND4DcnX0D8%7oBUm^du9TjV_(QO_A06RUrL{6{~Q@nKR)PYhsGR2%6b6;#CwSl`_h< z0jEXbOgOl1aD-G0-}*VmiA#t{i5sSQ6J0f0y>{{9`e&dF{f$@tmr9UPtOVbYo)$UAnZ$z-4DLR|)|%ymcpymDBv zq-0i5M-xQ5He4Ofc{_jA1x{_OutphWvrkfljTn|!6~?*3SfJr-8M^ z(uOUn5>Fv9|6ur{I8X{g2>{CRJUkrHsa`SkW2zJFkFFtLeQzx&6Xs`=c!`m-lq-1lNd*L%7LcttfwOM)^} zy@^?Jf&zdH3cLe^_r0=m>lGMqsbCD?V;}m^&%g1FoT@~FLB705eLet`BRc1y0M#k0 zRvi{%F&n?S<9cRBcTDfxdD&$vIySa3cV$k!`R;K5$9{E4i}dnDg;34skLs0BICS}@ zlxJWSyad_m19t7EjSsTgHVk9Q<_%SWAR1_SMKOZ&bto#mpedRU=8OR#XaM~f>#Vs@ zDK9D~eKCPjol^bIJMZl3ItQhUo5-!V-5dx8-g)yN>hyK?pOXNhK1|iq>D&r;jlEmy zIdf*p(a1V_d5+__h#2X=>86I(@1cY6hEdXyFD&MZzHk6Napa2_kc>nU3Z&E6>dY6o zZu>}I|KJl(JW(vFrWIm)LZb8Wi#1Aj`pS+q^~IipuD24 z+_h_Z=T4jFn%FSa1U3uL+zPhUZXXe#B8nAJ1W*x0hWIG0sNSV~#8UGT_36!y7HfU3 z?sMu@Rq3aDEL))A3`iR<+Ggo8Q!uQ+fMU>RSZ^*hE6)WoGIPzd*rbt+LyaTAhTUUu zW44?d8e$<6HI=k(ot;M40wC7_dCYmn$P-jmfEr1Bjjngu!U`#|h_2$mTV6u`=c)+l zbkLwdzJxezES1F?m2grG$SaLfRf3QkcFA{YP7{^0{XI|OP_KDa31sB>#00w>7D^Q- z({>}xu3K9)(ab()=6XSr8WnK1q&@?-YQrDr7#B3#>d@xvg|V+)c#!k*L`@})tm*TS zu77s;XIF`hkBjNafGjV&4)BGP+|aO+N?Iw_m$(FESxip~>9m8L&RVu}MKTf6=5nnb z-&P#HQ^%XGdM9OBrhb3O!+Dwr4Rm3d7J1K<_a`G|7$ z4O?BPgHx%S$6wj|^pmBPD}%*FUd^MkvwX$nXEtmocXoP8MSihFgF(s>N;pqpLFYUS z9!UsCDb;maDm6Dd>y^kBqG^juiU7yPC%T_I2Tt2YVj8j3r5Vk@p7yJ-4x)+Tv7I~3 z7p5X z-OfmC%gE;oZ#}br-A!BFY+!G5{^ySrZJnqZo0F-lw_*2GrF;r^-C%C?|Gzvk8$+9 zBWoAb*Is)St8G?IhgkhvE2^r^&YsTa3;BFuHZh2V;mcUHYgh8?U#pF78Oy~|!Ec9>0uFYQm zo`VPc$K{1S$)CwA^h%;!p)q3)tfk$CS5-AZ5GK=xSGuDUsT5=xl7#f6VgDzS#>8uf z4mq!dSZ%qvGVkG646H_9AL{KWg4e$Jjchg-iw%TAwse34Qvk64U^o<5dCf))Gz_Q? z4z9lS*4rL`{E1>w4Fm*At6nE+T8s9i{aRlD0Z=FyurYtL3>iZ@J3Bx7+0VA@2B5tl zaGk8*kXo^VKJrK=^Y-ANvt~hSM1K8R1LM!W=vCBJ4Qyazh1AcPF5Mc9wDx;Z{}FMt z*j*SdN7F>{$o=!W2{|g%iXo*t1Y|O!>2__l6Q=xo+MziY7FzG^zQt1bg}Qj22BioHANrqon2J2ZUW-?bIz#s&^#TuTj~d+XQl zYfu4YiJ}Q&c4+8)ld+vcVX3p?S)j+4BWlsTJ(~jn3Xb#C2SS(>Bxz=Jlx3@0A8#v5 znHfl3UFH)Kw&_ygz~togLSG-xV{s822Yw~TaiCN;$#)3TF<9ANLO^MSQlO)sL~7m_ z%N1C->OHQtk-C5MgWUh~&+~KhUe2>>{FUApUnDQ=>)N*u90w0abfY|}77Ucb20?~D zBbUQMSr9z)ibqj;ZhRZRc{^koq5vrYMX>^3oo^hF_WTsK`(wP|r0V=;UTw?e7fXd( z8o=g!C9pbYnwew9!V7_nd>&{rY(MW@ZP~d7KmTG$h5f}MC`t)=#|}*pt6|@2guFgr zQjHJy^mK$>@+DnletzB!o@X4kQYp7}6yT0^F> zFp=mtn`?gVfSjo{39Q0mB%jaq_VyHu#ciXbNTnL8QY_h(J?*o(GcO;?=Zg#Z>a69+ z+6{*Sp>Uvc(*OqCfqEjx-}Lt3Lx&DVDX5MprF|=}W}C9Z!!x6fRB$#d1GA%S-(0n? zuf3|lhymb@E%K2gwk&;HaSE}rK;qsNJ8nUlLQ&Bn;*4Uyh|N28y!PWC9XWbB7F!8h z#tl;{WKlSxsL{8xSKPD)S*2=qvk6C4AqZ>Y@w*2HUVH6Vg3zHcU4?+*H|^P~UL)9G zM&Zm4Ww~s?URp+gw4*%IF&fv@{Kp%lBCu+5y$add=a$4Rst)n!>g$A@rl`yk=j^4bw5y58a>CfKB#LP zrA6$Q)b*)v0f3p&(eAM^mL}sEi)r81kQGwE#_?tAP8znjthTf4Cb5a}fGo>9cAR}J z1HR0H#e%4bBC`fvvtjE+O{G`~rS{7SUPNJpy<$4;k|KLa#-%k;WRX3KH%L7h(GFa? z>Nu~cLORW>YTW)7T?#T6b*%=>3M?^CQoVg^)Lu%8aMDCuQlm_}l1rW2U^^>?ZK4(A zRl9aM_?DTqY=^H~9URzKCKj`lWsqC=c_VXmTx^sEY#qEF9BTnBZpbGZi81%Vn98u^5lDFNdz{&?&E|AcUJ!bby;zd~@^c4n%3$2wW&C zlr&)T^}YFK)nU;p7{Ru8ADZ?1T7LqRR7&2lqaaDu8i#EQL!81W4kuVxGM3e5cjs$@ z5a<>LZ>b@{Dhv$F7K$(@99!ayLV$vl;8n$|D3wsBuhWxAQ|PFo$*{c(KjnU~h>2-YBGP4VCUKH<=T!puxL9)r%j0F;@&=KoA;Ol|^XhlUGM zV)Ukl?-Y~A9^0#FT!V2odqydxQ&UGzo;t;dl0@!}j%}x3rJa}+=`nY*;T5r1u zc9eLXv!GNego51KwU?nCf`cRSv6m0#^TparsAlI{?fHdbexW$~>}%mru)8M~xO!b3 z`8?_U;9Ya`^T&=ItAQh!Hvx?S9r=7w6x*t&ZGSQ?zDBm1g?Po~5&(EfqoDfcPk&PR z`O9;2HP9P7$xaS{RB&W+(whG+9bqbtke>WMf^M3Lno26E6pQp;?6I^Z44hvVJ_T&K z4OUNkqYE{3tDneuisyi1OCB)uEEFUuH$2S#*#>MUZ13Wg5^OY4Oy`EFVKcwA{m8D# z?Z!z30e}$dQ)11$yrx54wFlW4*giKrT(sq@l zy$g~wGrFTusd~HcynkT8{r;akIZr8kK91uEpzAuVRBB9LLI}qZUDqkCsXeP{4I>gW zGuheMM0d9fB;l%8UYY;dsVKa=GaM^k+(80=i^tl~v$ z!3*_dx;2`WUDm&M3nry%HmPWXt+Jsq#HlPplDZEb?0f97Mnm#=yj|mrs8Ty5>O6fvgu>oNSfU+pgj%@Gg>1?h6Pfku{GBZ6r zE9yq&7-z$yks~vGeFH5A3}ALP>+sIlqi>y^tqY;uaKqJm_a0nWC^Y%84(j~I zxj95FZv2{4uDRp(0}nqD2nZmitDt(foJOx51RE$W761T#zdu|qLshGBW@|x~H(j+A zot-tP=4Xzac=O1@0{f=WD({qST(cuLI-K~X<%+J7Z}r+uU0qFF48yB$ym5Sd((AR{ zQmy=s08Bb4i&#%Qh1gw6&QLIM zIf8-cXt7LCI}Gc2;1xAKJ`u>sGoz!+Me33N7XSeN|I~fka~#)s=kN6N+`9)D61N6G zksyVkM2e;b=;ntAa%_1W6OL=EHd!g@&Va(fWQP3 zg!TH(_%L@XI3_++o{`Dg+?=JTMlgN%z?r*Dn9=*N&`krtz=owN9_jRbENy)+!VrvV zt@a>Ok$V=-6olnhH)m%O7~TE;?2M&mgjF9+bX-fa+!~xH9e=j}{<3MRwc22{n$w-) zsBt3ly+hz=2}~^9n2#KU!&AjEnG4S)oNMq8nf&nJYZRGinA95 z)@Np#vorm_dM8fAx;20IyN}apiBbpH%uQbagpgEN+X z)#v994ro6z-p&(u**`q@Ot=67L#QtR5*+XGC#Eo^0q`O};#A4s2)3Z>&>L#dhv*Gi zD3r@vVeFDG%zN_L)2L?fgZVIl&|m-c-;PUE91Pn_EDhX0)VPM z{q1l6)8GD`cmM%SlG5O#zO~g#JX}X?8(WTJF=$+~0W+DtSOAK}?DlpmPK~4#?R*v+ z8?nW))zaxRmCtHohM+G790>REHOqxSgJP$>Q;54qN2i<(32;+iu3p{VZX+C3_sh`2 zTe_bHk~>Y-*4Ee7);Bh8egFG^kjq8eH6tVC6DP)R-dqc`N5hL?yUHDmAs*`?fMDYN%v~jpM zuj2=@b|P@C_sQmz4O6YxxC%S8uwW@FCu@a3#46g`*_G0ro4%TFJi5+SMKUxoD>XqZ zmvWt@p1R|BU^5XnJ9w#@*Y$hN$i0tZDeCInT>Cq_IC|sZvU|%ReBFbQ{>mV+gk(!q z;tan7C`zra)@%KjTyp6IJv}wY6>Hue(77Xa8o9fE@3lEyX^m^^GcNIaFGlD9BOL^c zIzRqMf_HBO|EH1RS7pO&F^Kr{Ph!kZg5_SHmZn*%QuuOteP)LFB|(W&t8u^%hv*{; z3Uu~tEUuNsj@*zD0U$|`BqtzDsRdurg?{Dp&l^uX;TpiTYY_4{X1@KMzx|6JecA3# zfC8|)w)+baOke7uwWu4iv1u^~q3k6IhaE=D39>pjx4w74^ZgepXinP23t`6%Q}uao zpPJ|WON+%Eo``)&BE?(`qglLbY6&H6A}@5Yn8$Np#}6W2x|NkXrnyZ$-v^PTz&Hs3 zRX~8e@n0`rt{poz>}cj?;q54^PyfgN^vPfUC3UiYsk`9pyOS;C$Go5=!wMFPS20|~ zjp$Ru&6{_A^rIuG^g!uQ`5%7~(INWCojVd>VYL)x`G5c2==Z)2Rq-gG!RVmftNrJH zu5E4tC>Bd2BUjtnxcDTrwejZ6EF+C)RbJTC#9~4lo6Ao;aT2`fk!iv(pp8RsKpSU} zSF}2p|K+!QLUYMA&Da;nwY~i(Nda8DzBIDcKK#wIJ~;H_k55iaG#V?s!HTMUBg*!6 z`=gKaGiQ3JWbeQKMe@_KvqLkP-l5AvAs0Vi5CE1%*HZFOXBX)hi~3B({`5=2Q9P7# zBg%`UQ{Q_@L1j79aj`aq(UG3Vi5vR0Uws&8i#u+mR?E%Ih-xi+>9_^EzP|C3pZvv( zFMelwI(l-bR3<5v7Z;cK8T8~J3}sCCjDGi5;(ssP=Ui2_z+@IB~?FhI(UQxo` z2C`{LKxWGvtX}f#Fce}{CpWRtEka?mG)-ouZgY*sy=Rf#w~*!f%q##)RYEyV2Q+F5 zx85nMsS^&IhRLGfXsF&z$**iF^(0EweHX?!&8zjU&(4^Jsn4I|iZzP{2T8__X#6S{ z4nt*6A@fuvABn$8YEZ3*{{pr(jS)mS-A>T!ORT1RFWiynX<+2Cx^WAq4I@9kG&pz^04KK# z?$|g9H3xkax(-EkC}dRy+PL-8zafO&I(f3#vC^i=+}dx`}#$qNTo92 z0a+f@!3q5KBeG#m{oSj*`w?FP8o164^2ifYP;z^^yvjflpk;SwOF-WFcFJV(xwDbh zFMv-z`2+x^HX+2eNh-zp*zBn8v`_EM%8EHU8gW}Qnbi3B#I0Lj`mJ98kR(=oi|6su z!Rm(qIr7ZeglF-_uYWD2WNNcS=s1HQ7Nx+IQO^F_G|kcFWtfIP>qh6pOe`2OpB+uG-b7t0GCyemF-L5(EgBRn@g~_|`ezx*wM?y#IE$4Kdr`NfvhzQg3 z($`y>wxsI?ZQ_cx+^}`t#Sxsc&-R>hQu_F2pI)uSeHvpRRm4HS)9@#$Y+I ztWSmj_~h+R?_AgOh5$QBCO z?X4X*rGpSQ%_Z)fTfaLyJKM|4g(uD=^WW3BF5OJE{tRJziZ0xj+HzxQffh zQ%`9ZxKlOaL`$F5y#)&V=0lkS{|>J02mmmrD@LWl(hDE-vGgm93|Xz$WW&67toZ%8 zK`iWSR4S1bl{h^KU$s;vs5iT-T*JN(A{*xL!U9}NQoAU?S@S=!CcEJpNG!%49w$zf zXJ#S`o*ihZeKGawj{)S0z6Yq!8Ej^13IhY+9tzVGx4ivN|Ez*Y5=}{| zREp5mWlC)tKeke@GeskR^~TWQ*cqv%Y1sM$sDL&MZ8-2N`S1VZ#?9-pEURjXQqR71 z4G(AUvaux_#`f44GjZ}uONSqM{OOneoi~u-WlirKJ*FF5;Ui(ZEO4Fl&d8<-p!oQ6 z@Fn>hma4AL%;fY2H#9gq1|zoQPb4Wt zQe93yk#%fIq`V6(yB0z)|j|kdSr%m9U`r32Pxdao3OE@-BvZzTN2+ZK6 zOXcbZz9Ws2I~P$pHkLc4;g~ba+S`_8* z&;Guan9<3VlPzxQ2$#jPt`Uc9*YQ6M)7{pHT@5&k$IO zLI|8P8O~}2wU67H)*jaigd~+O+HNiVs@k_H@8D|Erm5CztiWp6YRzPFozAW#kvHFb z^N;@M-^Pvh^)Cqfj2wC=oQ6M6n*}C+J%eGy5H`NGkQsM4*~Gp$8jbd zR@}Qx0YEm4Bd@)t&(DYAy(G{z-YO2y9)RoBr2c2zpDz%7f>BNiUz1%@mj7^Gt<{DW z7J57K*lEUedho(%br~2vxxDRxl3YVq>a|=$e=xkPcPr*}rKM@@aqS`UFUW?;;QBqY zkzMDm$ro6=VgzZWfW0$C?OmF)GqP!z(-lim*PfqSdw!0!M+T-i9DsSLId(K5R?IU| zdGdFXJW)e@0Ma~_>Y( zrKM?Wb8`;o&_VT0MudM?n^;(YcgViank)UBkN+b|#6^-yNgyB+x?P*GWb~sG$f<1P zjxAMPn|t1vt~_2+B1ne-055#=_y6jzeqvdcZ9Dar*#81K4FO0;Dee>s)TWX|0MgdR z?XUZbPYN`!rt4%3C=guX2qVq9Bd0Ph3$$#SN6w$m#V~aAFCvYlIRCgjD@l0`+VL@D zo(HI-Kr71d<;%kh3zn*i+45qZd|T6$T7BdAvDD#drB-8!TO#|Ny%PL2&J|pMH*dq zCuC*iPTX(VtcL~TKxj##wryKpDPRmwjm=E}mc`Tcop-6Njl0<5CdxAa03ZNKL_t(bUVGHDekI9%^wA{O$@22H zn{6AZOef!tq+eH8?<_5ijg5Je#N6Ds-g?W;l_1n3%uO8p`t=5`HvlimqFBtidB1M7 zHD12_=+l#rJ%U0GhQU)#di;!*4k5vpC1_X2i1-Lb^tVgO##1v}Co4{VO~gpPt1Rp1<`K&E zf|Ks$d79xTGwi5pUT=sQs$ztVE9(%GTKm(O8Ho;mBEM?6Hy5oVoRcO&&%XElWV8Ji zD(puX4RS|S&C2vcWb{IatM`i*j;eul|AkjwO2|fzyb-KFE5&3fDvz+o6laQ%$P!J_ z5`g%nf#Y5&BkjUP;9_{AKs6@z=CT=pS3?QJ!vO$!R)$Tq%$e|NOo(v`@MJT%^AcOl zwWQRr(_XGtMf2dGT9H1nRAqf;_AaW|Jb3wH5%rp*hc(w-m%Yz`MQ|-zCcbt?i0lcQ z65z(7EK5WJKpEXKJUzF^u>K@ZN6bovv#KmF8&gxU@027-gM;Nx$7Y`lm+pw|RHBqp z+O=)4`onGu`g!gGFt7ySBv|EYm2pPgyLbe}2G6_kev%C%Hh=>t)+R3bafX*Km#fvd zTil$TX^)RDjgRN^hj$J=+B1oriLU@9@Pi+GJ-S~PNCCjRuf2Zxd*3_z-S6VLX8?~G zt1hSY?QJ+Vxl8rzY8u&0vAAi&%V_nfE03Ld43OGpaKis_urQdQ#Lj&wUpl4 zssW;ii(<^68WfOJc|%h__IuzZY>h4ioWWA-H6Ii8IGv~e1F8O zOtX5<4+{$y6IKzf{AyKxuQvyEfINw@sgjHjr6seTN*idZSDU!6hx*c~&8ykC`l)ByB?DlRXcho_WkYYjrr#_SOY$wxM z3qk{0&hg`8F+CmYcW0-2sd)#Q_DLcCB#V*`I=5JQ>M3K*M*wRGp23!!*2hJ>vGYKc ztJR|)yodMR#(QrgN}50Z$<(b|pdch@JRUuIIuiWAP2!Ycqz$9v)>Lng^D=CXzMFmL zSNKDJzN?EV{l@mz%EAH*|F*Sp+1#{>j*>I9)@GFQ&R72HXEEZE)fpyC1B&X@j(Yc< z6-CKx7%poU@#1V={4EKW7$;lX?L+au@~a|5fSp|!l}hO4_qt>V9?jD&!0PT-pDl?qUp7> zvrVZj%js^{wk&&NbJJd3mBuubq6*GEG6ul_?)j{6Ga;|*Y+6gqIBi zAOg9D&vnxgs$&RboQ`47`~@r}ff@hoZbaF)6y8NkI(@eB+6!}Lr84}>1;(Tm=;A>7 z6GjQ{e4os_v}v-)3^#h6@d3EHV=C-;-W##%{tNqPtfla@R%7uS2o9k>cr_^@BwXB_l{)zmi91ZEX{A0JV;eCes!by33yWL&3 zNqanK`t~D)NM5B+_8}&OQqS}SKq+jSQc7)`Qc6;(%pbCyyW$jr0n)qX4?csre3EM&~*w&;mIGHL_ouF zS2Muir7EKzC!}gq+acAVbm-XH+T8QZp*Avd2+u|*5(D^usnpF<8LrA$Dh-v((eY|= z!pZ5u4+D#LiAr;^m_IWAJzpooE9SIY``mo*eM?od*?g%q3}*&20pxYvon*Y(%$di= z$JNdjb`@lzEw*>xcw_Lytk7_GI&0EPySjSk;>GvEJv;k`SnSJazxvjt$4)hI`Zx*# zzMTLo&8u(xs{g?UKe!ZU{W2*Oa@*T&!TR;E&@nbJ867=#>sBqB&F<{PmR`Sk^Ntst z^oWtdLCL6yH~`S*lTVH{8e)g-?RANytd5n=$h*6{dP6^R<_tDBqYdCf{*fbNHy3qb z=pgDia>xGeG^Ps;PlHU#)v9^Y3y1W_LA?h*P8{rr)kt$JQkRdtzZCn3j}V@5U&mWRwtN3~XC|3_{TfT0GeE4jwDFRc`QQ=g;X;bwU;NCtaq1EzjY z$?5uj)){`}<~|J4pO}?tqf*%efGG=>Sx}{PXDUZ3`1@$-u z*xe(K_yoK#2SxRTlvNeA8WaU`#(1w9F2>G;&rxa9=qRdMuUT$vO*S_fV_$P-c71jx zG9O1#l2RonCns;+y5;I>gi@9aOaUTEgx8^ArY|eYM5+A9Be4OiQlwfIBeH2|7cNdn zN#U;tBLXBX@GlcfQ5Ro&DFDbyuE{J25#t!&`c^cWkxRAu5wmhLnL<7vEWlhU4J4>s zySprM=$%ha*M}Dt0Gd5@JZ>u{Qn2h61t805LSh0I0ct=cZ`TVTB<5)KD3y}A^-P7 zShc_Tf<7_=Ae$|u$Jym|u$@QFpO4x<0WdOr2%Xi~lUZL^{@Z^or#gIS=eF3z zK6DrWYqU;O0N9;fskvsChop4Y?(9hEtfeZFoRyll?ebx%dD}X1Qo6GyHE-MHA=}yk zV3!Zu<)KtM3xERI(l7woFwN;oPS;zS7Px5~u$t2wZEc*p4@6$fm{U%A0S}Y(aqnx3anm>ee<}xoQ)G^?nK06RE0qqj&e?1%3cl59^8x)8bP|~3 zxC0UZHm9c#D+-^*9Y=BOh%ub^oWK<9iB&4^wS27;mG$l z=+pJ}h(3+X*4ELV{?wfk`!Rsx?xyc*MEo2RSC6ug!$X9@%rK@amZFYbybzPkDja7l zh#_!6lTP3F=u?RGf!)CMrZW)l=Xx`Urw2Lrv0S~RpPTnpMP@@K9KpSaLr_$&6) zN?oS|XOM!Bnl3IU6huvyhu7{^YBkw34=xRLyjZF#R6l>1ge84EjMp51K7Y;uj#3u_ z9VHz_g>72{1I`pGXvVI`(D?#Ie7~8>p7$&6XHNsTQ$D~VbeIVh?_K&@#o+~SR4$6qK$_<)N{`(kPC-;286!$zTO6V7`0xD)UE(A${g;6oK(=P2(5= zYiv~R7d-p`#nW5NN+pu@pxfQ;)AR0zp6K!8T5_~xXUBf~Z3m@XE>EnkHWkJ92yJd| z5)!MJ26R^0FtiI7oToD}0!*02>f4%tfqMx6O8m++32w{H3Q$7X7R>0U1g-5>f~#O+ za^mupE6hS6AdH?(mecEw^-BPZj2uol_zfo)*E#f5N{$CS@6D_#6yg}=0ASIr$s8!W z6nZy(J3VwPDLtg~o2umRFMs}NppVq_Fz}fV1U&rB>t4HmlgtOdj@hBJuc1@V16ZA# zTbr9pIK2Kv4w3Khb{=)$!G_O79ckovcte(A$~7gHxe8!?qL4}v0EKJUF)#p7U(sd& zii(Uha_i=zoCg6RByAd&s&-W;hSn{qjH#Pj!aSDi+Q6~0z3q^Gxikvg&*i;HJ*No$ zd*_(DWVdaaw{H?zmMEo!bh}n2E$?>0h=I7y{6V`z3Hqs zd;EU?#jI3XnzlYW8`l8WKq$ZAe!h}>64^BJx<2TJ*$?VrMhj!-GAh&JGnSCyMF=gG z%CSF3s1}Y43?#)x2M3cqlEKe5rCmu%6_%F9E?!WrG%Y`xxH+PURRI8Mt)_fh>vZg{ zO+jf+k{tDg!lu-=DL_goLTzewX@-IjsuU09jV`jR)=}_=kAHmGD~u5%+{_X!R?bEl3h!s-kQd+8YU|xgiM%Wm07FllO8u|D ziR-3a{I$H&bPn6GavfMMaaY)CS5;-xv{Z!v6V~qJ2k&$g1T<7zSTB_4mK5 zS+42pt71njMWt?bC~svG5y$RwX=&PSF4O$1is9kZ?oJodPC=12j2%^_l&(vu{KSN; zX=vW@%zHjSA;%tb%6v}Z`zr#E1NN{8N{$N=#|i-`2=Yt1cJZQq?p%P%xM%b`)W^5m z$j$u)hkRzFfIJTze&p*<0a&WK_|nTm3kz|0(q1BlIq0SGNu$=#~m=xaw zE^SRSD-~mUI-wlSUZjVf(32V}J`5NzeQiRdfzQ8S%y|UF&J^RebR-c1t(FFCn|8aD z5JFNCwP8~b!0OtRA|**gLZ@RhWlkctO-VMZnr3Uri*W2sj7nu~Zmy%KeA{k!m(fRs z)3%+^u{%uxFe++f&v==MS&o(R*QUxReERq5>c+KF8Gu@^X%{Z4{)vt!rQ`T1tz9rH z)47Ijsj8(aYyrX)A$}U3`{8%+i9c( zH9;nuSgik6xBc5c{ysT5X6JLVwcE+%x>V|RscqYml(I%gx2GRHb0#)*;?C30-@e_1 zLv4lj_&9^wrVW!_LQ7HdOS*&UP!)ms(y@b?rj#~K7G0N3)2T_}%q>&|y)$8CRI*_x zwHlwF850%Tqrep9o@}hq+xvMFznB4II4VEGdCjA;vYl?0sxHmXTMG;Kiel@_$(GO~ zY9^(Tzk18cr?u3kxio){xs&8T#ziO5U&~6ln3W1McUeeEHq4Hqb}B+J%GIG6V`|zo z8M|^vQNE&roc(JT>oYS9DBi0M$KZrGua=M;xG?)=yu2$jawGZU0 ztB*fbzLN%LcK{&pHp5@bjjys#7o0RLoqfjkr8bys80Bh};mq%SwEHZKyXfxjzE@Vo zZRm5uA)= z=YwkOX$|rGS$SHYZavBu+{JCqdyy7$(hHMxofA~jUzorS%Y5Qg4`YW%v zcy;H#GGjiQ&96rs1s6a|?vbHjV}1QzHot3;Q*y}q zMc)^SMA;aTR!zT9*cca~-$xU$g=S{atE^fGt4kfQf*S!A{!#)o^wv}^mkJLA0LbTa zy`PZ8oCn+5-P~MlFW)@$R&n+BelKGhokNGR>&;eaK#~ARw%wH^$+Ef$G}nbf?)GiK zEp7x#-N=E$55W*}cG_adH_Xc%d%REjS3UT#TC0s+yb%5cF&`p_D~%7ot(=sH&wXW~Jg8jnsKu z_T7dQ)kFq?5Tj3VXfCnD5o=WH^|t#7kxf&n)yztT-L{SkI#mp#t&KD4LbFm~k4sK( zFoiGdgLzQmvhp^z8{LiHOg-qs*_$xC_n|8_%!E02%GFB`h20yLwx$`C>9#h0P%nPQ zQoVeuKn=58qrobT@ko0=>e0~W%R^IZJ-gkDu!)6#A(*M`F~hl2P)AkyoY`_qBD0?u z@iKF7N0vcm!Y4yZQP>m6tE4!)Hq7?8mUH>!_wgKAV#2*RJ~Ely-XW9#FgVyh@mgfI zQ&*Bw6VaX$+qe4j!gkV zC@AbMA(E7mh@8%3vkHwo&TxcK=)wZO%oYj=j{qN7*=~F}wD8Md=qB<(h`h+e*Ghn* zlEXJ1_Xdf&=WqY(J8Y?3o=l)|Nxv$U8n3amND+)_39XfH$*RAY(es;!2Ef@98 zkI$H{0Mxc=ar&&F*TqqS^K6a)29i>Wp`k;^W=|%ZOPxy0!DrhjeO4=1FKLS_12$pB zCP0Bg7l4aC)nK@Z=l~XP4KKXKr>6AQR(5Q1c=(7*7tbp}5?(x#I)=J8*ZEa1BAZ4_ z)6#~S865_IT|1Jod2>^o?wlOO7%ZD}MTQeIv2o+NolXPTEhl7N?2lxc9=hAkq}dV5 zz3Tvb662u=8^d8s*k=aEKwhJU7M??499LpB1X?KOw!Bbn=w~<(W)`NGh@{`&UQPg9EYojbdS4@uOfln_D*A&iwUndUkK z9r9f(frXyGp2V%*(S10cf<25%MX6P|ZbJhdLIbjbLwuR72G}w4`V#ad?`kbA z0R&4+{G`}FYW=go;N=ekI~DD4{wWjBk{Z*MTQ9#%{hN3zp)fLwkn;&dt=C%GH~}nG zQED}2k-2AQ2H?zMjU|TG$?Ljk0E%blTcw^hB^ypSM5)y#Upp^HyBSo~oSwe_k-x!;1pXdRcUG3()>LCHEc$*maizT9^y^$ z3JyER8KQr4dzx&{QEN3fx5d*(Ii0(2XKTkj*l^B=W>;2L>EK{wn)oX4gIBYLTQs%&>xHCEW#v3*M=Js}g_yNQ4K*zlO*th+` z6Hj}0dfxik>zf;!08(-$n=N{y6@v`4rBW&3h~!kdt&OkFy}*yHpMsOwY#_wtAee32 z)0BzN2#y_!RgmT#m=f=j<;Dsjq@xtOU8GX9T)mXj_0l6HNlq76mcRnYBK(rQ(RDWs z^755I0Z=1JlA^B+jjjP0_=11?L;$4_pkj1K)NK|$JrrQ}>gJ6&wD0U+{CIO?(^Ay| zTT;(H$C72P{n?+X^%?+6QJ7Cqw63#5rNb{g<8063;id`0V8+|V?|!@X(QjnKAmt&! zbPsYY^QvzFk0FbE$cD)R@=W!0zd^x!7P7G^v-|~%F3PhN9o-dI6Rh8!hH(#xqCpZQ zBgLSgNrLt38z0W&;o86y1m@;;+-$pLZikN|cxdb$^4e)@^S0U4J8iR@FSy)qv{NV^ z{n<~i|L{*~HbW@Qu5Yvl1{gb6tF@i15EKeQM{VRA8sNJQt@bE)7j?=5|n z3e9pxbE9ih+opt<j9${;!u8CrJ`X5n@xi)26mf$3_oPz%*OKh!ycG-O|Q+Vp5FQ z2Ri(_v4x8l@TF^R#cPBFu)Di%u$TJ!`Xj)nzi|qqQ2{;P?c*ySe|(uKeVTSsmeYZt zfhfji5~pA5)M?}8KjG#lA0-6l?=39uM2KXXo2u&hL1HXwUmS@SDRFJ*9-8&!`9d+1@g9<$c8vAHMja@@#laGZ5}@1d$f*EcKjL6%V3`u$!n{+IVaUPfT}&RRU_e$DKJhfJh7J(n^G!Oc!uG`sY=Af#8uf6k zvI~%O=R-4a-QvZ0$WzRRqiKlbE}=c1KxZi7&EYZO&COlqdaz_Pig^r|^ZDG?cFWsN zaD91m00DsZ#%i~-)7swHvD$Vz4MLF56VS~1I&(91%7^4lqxi+=TPIGWx3+c;9ZE?~ zjk)uBEjUpj8Vbmc0<>&Xb3O{YRE+NIcY$@VDw-SH|zt$!w;|Cv5NZz+l!Bldh4LU=quD~gO81EEVD`YB<+ z@H87S@&11R00960+`ZeABj=SL`1|q(ppXe5QP)IOH=C`lYLeo$ik#7CM(SC~bMbb| zF%#OgsqxE3c=%w4AMC%tPkyz%FFUq58yg$34$%&KXJfWo3XMmX;+P|8G+h!&krYw9 z^{ukIs|pDq6F>ra`TX$ZJrk(v8@t;l$m+~QUcO8uGSBb)&iNgIX%SiL8;?S|@0}V8 z(J{pPSg3I2Z-MUSrrpw9SvitvACHgwSdYHS}x!nXpeP-R-Cc>&UllxRL>bQHD^30_MHB=71v#DM#X#osKG)xok>KownQtk+}r zD`54#k1y_JO&Zk8m+u$u{hYBUyIuFsoqJ5LKf->ecXR!fNayD6uX?g1yR7SDU5|BB zQklUf09?JAN)4a@0U_k(g$vfkIw8bvX@n3$z;VPR!8=kM4hi+WQW>7FEWgZg#W3=d z7f+u)Jr#f6dimEs{PXX!9WuuYpyfT?k(IeyH@%wTDGGPx#&B5^OjCBDoctnyl@%4| zUVx&o)!Eu$!k|;iiCtLUh`9QLgZMvoSM5Ns2w0}aEmsLDBtpP6qD0=Kvb z!EAPRGa&$qQe#`GJC{L-BuP9^^1fcN^^y?*0ub9CMm>SE=arjDf!@>vp@40VjspTb z&tXUGy}ZS7NfIe*)tORcy_WH-<(AXb5UOg0ODfHm1T2%U2eC_`W`?~{2-mp zb>?S_KFVI4WVonc|4FMphh{Ac-}zw^Pyb{A^}7-5THJ#l2*z`M%zK&>Hq5H`5y_vv4Mb}w+-rdS@=k|YJ z_Hrj?Yg%`6bJWt@nUZ4}lcZUptk2WRx?bMXmEHEefR<=m_HZogI%CcS%ghkzx#~3zkveMn$I+7!f8XzGdvmA9QPWB~YRprSX)J&Or#G+?`sqV4B*cOLzY(Hb+<~ z{^X88!yP<31QGT7_aZcZmkl6p;~tw-}8Vo>y*M(WK~tG=%z9jv`0ztctF$RKAQ;GL$NIeh#e#08gE@ z-+4FoyjhPoR<=_lS*{ zT>lK&O9518_CT_2FS7{^L~_A##I^^r95BEc$7{AlUi0DM5w9lJ$7peTyS%6KJlAY4 zazV)>1;JcprWA9%7G5u(BOHZKz}e&BTqQW=0_T@O-{>OK1b3H4!uB-sIXH5y-|qtu zM2Y8!qbQTrR-S54Uar|c&w4$$&W3TIstYsLyuUV?jM#T&Ynrm#&OOW`;2Qp)`sm1X z=$J`E+%Go?W@cGjP8m-GfknYGtI`~9-vofgd6Y^}lq91bO&gn=!{G>kwXseq^2&UK z6pkfYcs{qJa2Ec@?+#16?>Qrp6MH=X++@s;$G#}JO581yJ(SqB5C#KGCaevZSFcyE zUaMTY%1EEjtm4%gH@@``pM3rG)HOg4ROK&(mJvg)8 zl$C=lXqsJ%p7@XdNk4xf$(&J2bLjMl+hEGVS@(OQPWwp9#s=>-TK4&rB(WBna(g!! z{(pFBhIeDErkdqRKJ2mFr3t3h*x6ydmmc<5?!>xvoD3$7txcxrcBkDbll?`K6SkIT z)gLSzidy)x|1zIO4{kSfRT;Z};r}AGvyg7x!qpe z-WE&;I9jph5j0npjjhe@=G0!qkG?V1UEbZjPfzgd3o&>_9@E{=%=dbjrUl)o1H|{i zadfh_cJsmoSCKhFD5Z?}<#`sT56~}5AR9Lt>?|e27?5kz0I+3^mX@a8?Vo*ig=IZ+ z9QAzyaH1F_tlG98ojxHbl@vvpXS1@LtwfEiYZ#4R{9Q%fPRO%i)_xv^PXs4oDU9Q#QmNtTAGC>qOXpl~yf9?zTt)~IN19-p#BAF8k0K;Ft z|6fl%DJ(1!wK-Q?I}jw1DYp}pbzL+qeC0PWF9%ulmI;dXJHN~{eq-06yR|8pR%t>- zbs(6QqsZ(5$kdz5`b|7Nwe=d4xs9}5m^KMYN5QzV^&rNf~uPfzac86Dzz5Co(}s*Y)QEuAHT5CTFV4b394 zC0d9s0xUzr6yQ{PXcGN~6EwN2`~=c#7FiAl#l!0Lv9yT2T&{9v(1@!)kFvsbazh0G zxMOQzcN}Nv$sDB=LQquiG_&7GkS?BZW;oB~tpWACfEKPPD}Vmygn)M(T9PQw*G@jM zyt9Mbx2FxX{{5f0huwHI;TSWsK$r&{{&5v0pfnUEK;xEWYZ`;f2xEWj8Dg{GAVFF! zh%q98lg89Bym~`0&8SHSjT%+R!9zQ`vTW9ogPcdX-L}>@nD7uI6(YKx{cekC!=EiiZ)u9LHXtl;e1Sqaf6$%(WE_!%{J?*pLYF(m|qP?o9X`v6F@xe~pMXS|iq{^$Sv-u5>2 zJQ}6;rOYRUa6Bgngb-Tp^?V-=kBQxp%2VZV2i;x&@G5-p{*X4C`Bk~ymf zP}{sB&p$hLOm}F;Kl2gI22x4?$=_r~^5mbszH;#rfNE7;TKq-g zli>T9Uu@vUhw~C|o%vV)8Ud+3=lfJJExXkctpUfut0{{opB8x0RZ`_VvB0|` z+ghulrvind73*RW08gI)fTW`(5*U5R3PiFz9E{r^f)K(%sWoE2O9+5!5 zKi}*1WC}j9w%P3|jXHq6D^~!to_K;yDD{Tf>zdsj0Ld_vMx9O1wn_AtzyT(}f_55! zXqiDxWHB@VqEA9rj1mM2Lu|_gEG~$a#EJ3wiFnt=`Le~?vf)_E;m_othlT8ecR0Hf z_1zc&;0*f{bAMvoaGGjZ_s(LML^Oe_j7~!QDB*zJyh*aB zmzp(Re)-_sxuPEe31q(jB!X_iUZdY+>eJ#`W`b!tagw~uY5!P)y!!N5Z@hdn|Wv`{%ye-OBQ%c58v*4J&-4 zTKAw2%a=n+}>sJpc$N4QWGBG^DwzE^9l)9i=U0IB1cL{ zOzU6SZJX;GVv(x+9T}6ks_4@q{daB!Nr}bbVa$G}X4dZY5+9@!zZ#9h-~R3HR#di= z&3Wc|4j__Yj2r5>-Ux+i3H5zS$+)gkmwJ9*9Cu2kER3AN)&j7sfvPSIhd$$hUDrn# z;bsi9=Yiu$r6SAnd}6DjL{QVlrHdF0B6o)4g`_X*Q;+8e$3qZExz`1VU2ljTL+JMG z@khea3q&Yob~%|Clf&JyB>1(4*fD$`WWPfQ`~{VOl>5e{sg}Bi=UMlK@wYZMx|>^m zO^WB~Y5gnp;kx4-?L*hIN3D@t)VpjypdqP#7>xgDis4+jPf z^vY6KXfPP1GN;-4rWs6x!dima=lfmi1BBFeKLP4u5z)r&3CMnOG zP0O>;K;!b|55Mx&{>v{*l1QH1u*5j0Mlj7AON+0(@*Dtk`hm=EvxbQe%R;k;x8J{J zjyR4I!ZemRLcnowPdvf2yJ95{ii)n&MDUS~k@?N+k|iE-mSCF0)2D&3zmBd$(_mT9 zG_>0QTt#L{^{iZf_|(}{`E|CBsNu z3p!Dolv1%{_>>wizg+$JWB$esv115|teq(ovWZ7YLw1yf7f3Rxfds3jP9TaJB>CWI zI`v`vPx@<1?=Lk=05o@Y#;sOi6L>=6EQzqBf~05TPa`?K#B9nKckL+(JFr(%2DRA1 z80QZ^1xP1gPW*9M*R{MVL_VV=H=lanhyOZ?!Z_^^C(03P0#HY0{uRURN&kxGXj+=s zm4$mxfzDWjHW~g*rf3$mxd#AS(;Qi0rF7BIyPKO2qBuG7Xbbg_SyRnCvu7>+ae$>f3Oi!#uAOckp~(+WBd_Zq-s27m?2 zZ0zi)$5G;aR4rDAYJGmhdu^_H?Y3s8oBIgXQz?nG66p9+T^025UeJH|w9 zOw@Vb^8ru_q1zkue@<4Om1@h$%#Xb$5BGy`^5JNrQmr|F3W3c zvnyAD_NTafnVmTSxJrfktiv!nTM&-&AgrAd$B}VEWiWoCs-RRfx_#q=`r?bpU0S`5 zT>HQiCEuf^Uf1yefa5?2JPMwtZd2uXGHKL3A7k4nmG7xnsw*qT=4N3+jpsSX*@Ndz z2mv8nh<<_4hx^*sUYNb@?(UUdsNU3SojJAwN~-rPAz0YnR@oN;04SBJVKEt75Zsu< z;mkHLwHg49!1sOM2LU*a11L*^<_Jck9+@x5pw2>>be&){y|y;{;YmM!@g)}isZ^?> zC?!YkDvBF*QEJxWzY@nLZZ0p|Esf&$?U1wcsf`5=Gv__b99(<6ZD5L*r^43aD#Df@*0}R}5<2SMZ`0%jHQoAD( zJ~5GDBa4An(#FOO)9JdtDCTWfv#+G{7i{YLCaB(^GqzS-r8h0ObkGP(uR z0tjyocyj=tgj)chhmDT+ZY6h7G*}A!JlNH=Q@I;E_NBC2nj^~x=g!?rPspQ(lN%3n zZ5>%*m^1ko0D?{-$MVSWwe<7nqgN@@{Lh$qw}~pxpL?Oq zyus(6&V2Og?S0X*99fPU)-!#`sELT&Zb#1_yQRgXI>leq>wggGkuvURX9s&aWSRTu zv&HRguci<}{JKI21k?2AD!lJgj)O(lbH>(tn$V0 z#SNASA%f`ppfo6aqSWU&!Vw4}5BTL?e_U?}9fPqP!eQX&@dpR?+|6=z1%T&GhUUkP zKN9)__?AG3>rnta4@%)S8|9us2;q5R*Xxc;+2QWRto02&Y;&C#=B3mhnMOr95@3_i zV)RQ0mX;bv$sXgaw|>kfR#(?WF-h~LPAu;!uC1-U|NaMTx!i6i(JuhkbFvj{(d^L1 z+?4EqexCro@A(u2AcO-2;ezwxIO6-RaqYwA$)Me3n)FK}-r%29rlry8PQR2Cn_FK0 zO^zd!QcYV;YSu%V%+(a;~NG~%a-h)l}u;UT)&C2>sM`nBs^YN5?o@3&e8Egy! z@H~mXPN@{%FS#t}sPB3a^oo;Kg89U1ndgk>IinlzdA8{{8j;4^xS?{1O`;n&f2gpo zJLG3WzC4(x?6*c8wb5T+uf6^DsY3;hk=}hC zzeOqT(FA)#OzSF~v}n&sBAsn+t#2@0vB$1`QPLjWJm*=BGqc8i;N8v52O8D-9IUZ( zS-rgTxP*SDS=f<#s(#M{H9`o>uwsAhmd4&Wo}%<718Q}w)&ivy08k{Dho&|UfO8xG z2c-(;!fcl>oWw8QhpvMF+iwDR@{>=f`8>x(xoYlHI^HZ7jj=k|K}({JT&7`~S;4vra(? z381edE9?jB*A&4r8=GHkTQn~6&;+VplP@jTQxZdP0U%MoQev8eg?qmcU0f2d4O!SJ3TT{I9 zN;ZO!u^;^4Ek^%VDoU-ENq$ZfYg3F;D7)>2?d{BRK@bC%F`KK9q=j=kuGJ{~kh3G< zA8-U5M<{5?=ncx1O20E#pU;mn4NTJbIEV|(a#-D^B^E`PpI;2=-#f5+T_FUN`b@Gb zj6@JZ(9y5Sa$OLjq_dRgT||{-P6&o^thlo%N}^>3o_z%PBAzXY9Rm0Lb8{J|T=~fB zV-R=$uykV&0HxHa%1)Sb>#VOQcar%Ur)UKymlRGHETq|XI1$W_$|;FxnaS)$!LnRM z9}Bb~Y!-5ai~@TLjC z)>;gmly$w=C|kW7(%yBq)#4ooqY=~Tq@v&j+U!I!I!Mb4i>B#TWno|u*F!21m}MrvX3QFzwV8QI`OB2*mBhBtNU ziIUk11%QPgZQs0b;qL05GF1Gus04C%W`0lcpi)2o{KA6$yR!1>Yp-b+FJ_w;CQ+{;>(GDhgWgWk{67){DR@4f6NLd$m0eOCrx zDeKYnaY*z#g4{`Cb(mm<%DZiOx4rmg?9DJho)T%3{uEDK$#CW~t^ku$aug*hIY3df z&3v0;Thrv-b~HV$iE(@)mMOQ}N_+RwRTn!R18i-qn~%9P6ac|ASv%aR(DyNUYOyc` z)1rI?EPjJpotpqa2m`3eH?J>>@n7HB-Th>J{WRWwAG)5POaVY`)(3+=KslZR2<3Rr zw46qRmdh+yFLpYP+7vp5CsoAJh#%VQn4Slo$Eel-KtM#p7&la4GCuefFGzD-70T}h zV=~h|u8!UR`2Ttym3Kb`g--+GmyL*U;5pJ-eWv`k@8(bb%$XLxdyWqzDwI2>0hsWRZ}*KYt&+Ur<8KT;o-;cm!AJph$mBZe;EW^fQ0kL25{j*$8`yT@6&~arQFAC zY}0lD&48l_001BWNkl%LD?n znN#sCw6d-%VaZhtenOrvBKrtM=djyM9U^jZ7qE^GmhT6n%goP#m%#|^;!&wRt z42L)}+2A-9r*9Nq?d)xd7@P!Alfu0gk?qAWIK6{7PT?tW?RcP{oR|fx*JBGgpv<8h z62BKy|?cN+1jrcbG0mgGMj^>2yBwFS=u2zTEG1Ve~6`JbbDY92`hci5iP@? z?Xu`_AmdB|)pyad*d-M$lM%a&1g6PfEln`PiC9pQ!KML&oIt{e!7$>5DLOcLkn*0s za`BRW{zB-i7ThW`MC0zeB~Ww%(dUqMJ|AAcaDHK1ZWI>uO-H}8pzk!?TXfd5uS5X= zzL!hKvU9DCbykXb4|{sZ#z3!Nnd;@8I|IF+Ph+S%F=KPfmF0wT%wuURF*poEOl9XX z?S%!)#B~nMKoU8oSRWGPWIvEmOY3fKy0T(xEn91`j45kq&*yB$)|R!t zK4PrzgMSW{r;A2~epxUG^YCWoH%fycrDMCMmV1U>Z*V+_PjAnO3-W?ZiBqn)ylB@NtRJkirg5%otv<(jo-`g= zO3m@%`|y1x(?xxs%BwGq`J)A*k|tW_%EgOHyPf%sJp1BlTze+DWM${_`k($gS5e6F zs_X`JG%UqES)3v)oSf&ETtyZw%Tp8(tgNU@nujX@Xjq?VLQz0NLjLOYH~+&MG9X%3 zYjtDJ-v!_*G6~&Zrh^g*&Q+_WpoLOsO^%fHy@l=V!q z34)O2t74d*JY0&N9S(me2g*$rZ?eG4V|BvH1CJj)j%q=aQ zEfv@afXY_t&kd3dbPAgY7SGZC{6(YL9ud#=m-Fe?f&rKGk>ls8pfp2 z03oGr*K0J`ZYakw7%7CQ?}BBqj_AH95`c4@WMQyinn|XS3WCoIz9fRQNMe7_jBP-2;+Vjxarh1wZWdnBu@>(FBoC1P=$D4Q}(>QGwH-5q!k zxFmXROvS*_vV(KyKvB@phaBTao+Q)nYLqjU3isu**qUZ*n(_E&KbCb}ZnrDCUY^<& z?V;KDPDHS5O&e*glor(EX^ihxckUr2wQ+QBgU`WiO&hf|Yked6jYQMdx)RNXPqd@I zxH~IuK7aI*s6;amLprIHzpp2mbHOs%Bby~`GoP4o=4^$CKNn5Y+}KDez-P>rRly44 z5R7b(663?_P?LqO3zd_n*&RLTEBfBbrAx=j!+$__zuro=rs)?hJh-NGcWVTIbyyT_ zA|!18lez|FU0>YZp1W}yYbVgidH;a)%ooM){{@Y`&VMUJP_=AoQ0F)3o z>b&dGAm=%BYJ5K^Cu8I-^Vmeg=t~0B+~JtB^`rmBz9-*LP+bIspiy6HG}bs?%zuxp z^;%=&nJ1=Pnr_$NIi5^LkR;A=d{JCnT;>luJOamj(ojoA*Y|y=*^~|qk5Uj!8meL3 z*2IcGnoQ~q>SLrdKrv@_$BhQh6TvWe%k<`(cDdv@K5N&6!0o1zB=fv#?4cb;nWBrK$k^Nj@WBTkR4Q|o z%3M*iko;`cMk5!Xl=4h3E&7jAOd6`#=?p1+!Yyd4f)qteVmOzfg)@hnD<8*QAxgWQ zAA2DkG#uGe+kXK7IKoA>kCXB6@Zj3g^63P_Mib*CDR(+#>IOrbZN9(X0kF4srQh#N zCU$WIi`o9+bf!LeHof- z&IA;gSRM25Q_h)yR2@|X^~H|i%+DtWS4f-}w`EQ%CVR5%i=wR5o;v$f^{J=ON(jnD(dy)jgU93PPBE5D3BvLfGq=Xw&va z^0TQG!v&4YJ6gI~Pr-LMol0dmkpt#7n|kEYeZWJT#8@C8j?o z03hh+&nGJcn1p?%3rMs{5RhP(MwX4OP0_TNo11SBb;MX68DsghaxT36Kot>cKwvIl4^;hbfjKeRy{+gw=*B+$Z#n%#`72%XT%Pi!kI>>FW%=d9`c zbkXBf$vSh33&(TJPQv%y(mk#}*Yp$Ho<#x!unzTU1EL{kMZ%I?0NSNXVX+Y3`~LUq z-~495mM5QBIlX@U%4b5S!(L+JhAJ6dsoNdY8VuY{)Okv&?^2$F7w|2__o>(k$b^Zi zGTuw-b~%nXmGb7_`TDf8__IH|M1A5%1Pj3ND3vM;^C!!d0*DUa;M_T5a}$7E&?zdg zW^*3C2Y_>304+hBP&#R-lF=PE>XOkFJI1K4@;u@951n}xz}Ozzhc}z0>O_!w&SWl> z;41eGr`hBQA%uDhYN^*9yT0pEN~!M?&+|Qx@Vqyfa7#;f*0xtLP3_XfS@(8PY@U6& z{r-Nvme3U|@=h2ufBttjA(v;|yxmLRyL$CH2n0cDG&Jf*-AX7;cuOG%1yEqFoEevX z{=9S8iIzAKNkZYs3Pdq_`mv=^S2k|03;|HXkJv;w%fIr9uC)jWWVbnvh|ZXITu&6? zxIQoVgm9Ayp}tp{yTS{~oYJVxOXtsHs@qKv^ok|R&C1iyr#N;@D0Cg$+mIFUU;K+# zo`0!Qxs0Ns9#@eC)8uYk!*gLKb4!D1Mpft)K-t}8!qow5%|RO5Bdx_iJ1G2LzH{TV zPnLK|K6y$MM7yQsyu0kTKj?S6S3Vj&@x&LOJByhnn5Mkj#)&viQ5XP;7hd1P+Vskf zppY|2EFDjV=HU&cxk`}fp&PYpf{^6>4D<)L{Bp@Fl|Y%o zb0GUeLMWcNb>hhk`gK$_>I_UN{Bl`V)$08G`q`(@T20~JjBRh@$$yw%JQ$$U>GOOp z*l>(XcqiW=O@Eany~5PcMm{UPyR})-^<)`sLBMG`KPs3O4UnA`1uK>O0$ww#Sh(@6hD2kupiMj<@jyfi@ ziPV}w!a!X4Inp#%TN175$V#%8CX?G`qE_^-`Ss7yCgb9es;z0RtQcFxeJLI<6HM!f zI?TJUhr|F|8|#k??wx8ifVnA*gul-kUG80Pne@nmj%!RP-`f-BHlo>J%>-m+i7K|H z0o2@BH}AF(efq%SNMamPjM{02@SBY}b3LOK5I)K(!D=Z1x#Wo(TbnF%zMOb{Wx5JS zgP9iPeGq2#4}DM+r8g7Dq3Pvfzpw7>1n&_ph|2%)hd=y-uYV1V0xDqj)T!$qe*}<8 zqahky;jn9~4aqRXj^Q*_3V0snxj<4!;Nf}jDGi8U0suTmDJ4?Z;5af-8$3tw?3DIJ zKY!QvVxLdo34lgpkrBW7)m>T9FPuNluYP%Xp7=iDxLU0)%vEW}5IY8?7^@A*=-KrK zrKHp~?0SPVRqFd^&u*-?v{R=}5Brv^Hr{*h{kPuwu^oW<=HG+%F4Q~UA%ORM{)Yi$;WBO=D`hR@rYKzE6Xa*XtUnF z@4olee+!hKmzURhPV_0uBBrqfE0ENN4gN{)^TPSPx8KEKXWID7z%n;Bs<&?PJSa!{rZF+Q)u%VhLpvziL>w{6-7|sPP5^t*o4Rh2<8tcZy@-b!$4?1O3Wj>h&J+f`WMJ#%> z(;V4MgUM+5;lUNhcgwx*q@egMFvD6q#Q4$L&t9FUuYWfY! z)|>`r6Zd&KXh6u(B3R|Upcly95u};^9GO`q-Lzx2-8(?FHZ}r|RBIWVTTyOj^o~!m z-?r9Do^tZ&5s(%`(c_Gd8}E}M%;^uZ2#|;cl=UFddPd{T$fQz=0cHZok9%b=v&Q9} zimpGX{==Uy18i-qk2I~j`4E}_-Cq+dv)tCzZ|^+18eMl{X{Pi+S%ff?6KpyOK7(N# zHI_o5IQF#BE?#0GNEU^>+tJ45LrHj?j1?w>hEc^hOOh{ZA~sfmP%_jqAuFt6bFTd% zd*THf%Cf5{Vy`FmdhE^ThW+SS&U1W^c^&|+B$X;vy!SqS^UL{Ri%&h{|L8}4iQ|SN zXRb;;kF)KGsxloKN-6I+gg_v~B_gF!3yr`WRRvJ)86lVW7UU~_tnvGxs0RHm7 zd?%XWIY?4ze&LBqxshHgFk@@;ps3N*G+SI;60HE;Kq9}vc&~Vzl#1FFkYe#chb>VrGQp$0>>ju8q zWJ2fXHB~)v{ISXHUG3tFW~o%A zltyqMR0>Yumk`Dz21ar292#=E)HHiY(=?Ws11>Oc2M5OdeDTk!w%sB(B(N}W7HFG-yog`P)C-1UJ$xHTCH-<#4nd1iiD7At)4yJdu^6| zed8xTU0&95^|R?&g2Thkj0nWq+S-j9*Q4ZTsn-Vxp>*6(#g0Mf81Sj6h#i9x^aqxC zEAUuKvO+md5QK?O#{$pyx*o@Sb901%BM=TJUr-m~$Yb2MA`q5ip4GKizcpFkFi)O} z#>1X?>2rE1I5CRJy!yfm#Xjy}V1HVgV@1py2c9RQ=fI~vFG!=Yyn4EGk+petGtx&B~QSzlLNpu>@#nBKTB`Mep9Xo9{xiEEYBaqDE8i^u&*5-FAnSbro zZ^amRO3)#ii5C{2;wS;)xEyl9i68Yrjt!1K5KQyb>#u+M$FD_2%LThhEj)Ty$6@c; zisA1l*t3v7Jj;ldciZK?pf~I>?Ga>9U0HDz#oAbRWF;RSh|9;POgvm2uc-Sob2nXC z(HqUA3RFecE9u$*W=c39{~3P5G<34LJ60whou&F_f`Z;x|>^%b)zh1tY!D&_V)csx1JWAWPEbODwlIN zK@b_-s6j7g6tmdL^GGBf6n0XS~L3NwY5J1{_+3%hXs2dI;T#aeCw~@ znkY5V=+crz2}dWc)HOV*L_C)xgzuYUrB=CiT^Lxy(@!!t)UTArOG{F}FIr}AdC4ZI z@LWq#R{rRZf{1eR!kQL#KizkIk-)1d(!i?K7F6{F&lM2Aj-p&=QSJ2YM_s${`Y`*Q z-}$?LdFlTbI|e{}-zS8dsH*3o-0O~N4UVIfqF!$#(Qne`=jFfu5B~oD{qOz{zfz_g ze4nzSUrOP5KEQdN=ek4?#I?0Ek|ZC$Jbv-bZM9Ie^C;_fyBR$h^I%U|2+~#~$HQ^0 z3YGx8@cTyuaC_eglb?BMY55Fj0C5ux83M!^dU+(yz@q@LwS^NJfO@?)!$~QZs|lVh zut*f=>eZWP&lUsVGiRRo%fDpYF9CdjW6+loUs1BXaA*W7(-Z)4)CNEp`URy_5U5WH z_5G5>4NPCDmb!+py0*BO%YXFs{v++J;$+SPSl2Yct9y!wJEqB=R5p(>^4;bc)p*g6=jz&GcFLo zRb(m6)X!G6JuD{h0iaqf)3DN?{U;2E5Qf+Xc3}%nC6@=X@ zD24A#4n~egETYQp6DtmQ&!fKYpV@p7^J%H``5I0I*Yo2MVHv_J7cVN??LzR9T&8^| z>9FN1K;tE@q69gQp(>JSS#D6t8N(zmC?|9Olu^)t4JS`RD#5a_ zP>1aSz{W-(zu(f>rFZVI#;4!grxb+JNloEg&sA!|V8D{aRwQbd(ISdk3djBHLV4s&#`_Ut zeUJ>Wv9;;S^8YZnx2)^xCw+h)H5+MKcWY}}x2;D{tbLY=mL<2_jh&qbq}O$) z7h^o`-@f(U3*$|o5CBup^SCe-mUZ{d*#5b5-OU2I zC!T!un{T<^$TIEKH8?J3T7;vvwn7L%iSJXN7aT?5UU)$m4A>jbmn2WF3X?Gz+kHxT zLgqx?;kc*2{&i%^EJOQ~KY7D=?TC<@ghe*)Bz9{y3`}O)_((m9ni2`TNX!yd+EQqVu-+JrE%x_y-3ehj~ zUoqG$YktGCBbpT!$ayg9_1Vvo~cNoHGJ$G&l8NZakt^1Ga>Kb~8$ zcxg=eB6|9SInT+72+$_~<}JBGfsIzQYyaTYl}ne75@ndW?=%%0{+~d>Da@SPXJKAJ zwCI@7H+pTXefy35b6+)L=Xu6YZI;7!Z2C959f1E100960+`VaZ9M_#6`n$FCg056MH6eUe0;RnZ##4eh0rZr%F-{>$$#X)hcPf!=#bxSPTpyiDu;z^>=^Db{Jds+21!y_&u&15iV5 zTQ{fCn|ge3u2kGLElo3uB~}!gty!9W>dsx8@3NK*Gxezk4(?`acnIwQ>==JI%QHu? zs*n%S{fKv?RP>7&xdlJ&&5U2A;^+3?!)300X}Xli3UJTb@H~-BGhNkLYg+^ml z6p5-N8>dx9yg_GEY{o49Sn8QW@~rKC?|b@q@o~h#<6D0I?HE zI9;LB5giAB!*EkQuT8WjCTvB?zWuhPs^_NlgSmeJF!wJgC?!N73{NH-bs~^XyL12j`vRw_88A(@-|~A`Bq@e_JRqJU zXnEo4$ipA)*XqE72VQ^emki;`wOS{amuvM-F3&=>nftes&jCab2q=|Zp1C{$0SG`6 zjYfNTIMG5-G#s?bi1Pv^oJ9qxjq4>DGUAuOiJ-Z6dvcR4N zbHYo@^+df+0mtgJSC+gnLkZfKjH2C7>nCH;NFBC>hT~Tic11KRj#z#NO}O6HLmh6dps<$lnf}flnem7SOj1c zivX-*aeaNIF0KoL&=w#Fq_b_CY?`D{aF%ObNp@t}k)))tipj}NdZ;T)#{T^ud;Cc0 z;K7u-=_-a#KDNn*Eq$eY_EP%)`Hz!cFPImdO>41kOZXA&EN0#-n+!lUOj}hfMI~PK zHGh|`>J~0y?9jHVGXFd?VGy7-F(I2K+l7ml-T?H59`*XTcH^n1v`FCRmK1|9j`as1 z?HSDihYk9z`@-PhZZYVW_7>Q$(V3ZKRo9>G)g!qH02MSt^p)7xNs8z7x{Y#&ReQi# z>;M2D07*naR5qhjYH6BTDsAZLy(fG=DZQ$eD@vv8+j#DUtB#isij|r_m#r#hsf1$7 zza#)&^5vE6#GEd_7;X_h?5^!<|zwDU!JeY|ajNsRsEQn!d)l<3$!c(KG- zj#bo%`Y5K^o)TDAx`?nECo|M~mRyqmrMSW6>WU^o0OG*KS{5Jl$@u zc)?!60CRaRmtSuLGH)p%W~tPenre=ZhrUxoc@1&%vnVFA+57(DFW&ssUp*8(NiLW9 z>TmqRfBS#^n*t@0NF0i;4WNg9la0Cq5TKJQ2m+DowPjHh8uc!*NOSF4BH>u}x4-gh zu|4Q?@Rxu2Ls=HKZ!e}&kvvQQfMl4vo_{_XfzoO<78YJ5gp7`iILQ>yN4;s(k;`NE zp2wbe^0lA*#Lr#^g&+_BECn$XW*2iEYS!sekJc86b;BV7YO96p$f&X#>us#}#!pJu zc}_Tf*;dr~W5;Y&+5Ehixqo8(k!}1M{ek`S?KRTvE`IKF0H`Ff>lY|8*%3i-g96g& zZBKmVi^vENfi3{AU~gj$xeOX>0A79mPv8E+7bU|aBjeK0?kWKQ*)+PUDw#$%t4OBV zRTWlsvpu1u^lEEjBCS_lb#7t;nufYJv#AQ5eH}j0sICLl*Mn_UvF#2a0wP+JkBV!x zMy)npD8x8{M@MtRLm9&`EJYPpjc#g)f;tIVY`2B=X4ipT$PvBn_02|p z@kW-o#=TlU{f-a^cL``rLvBTQGk=qP!w|o6sew^99e2P(arX;UGiJL89wP%BQB3dI z-EMb8L7-O0&SU^e9S{Pc+bury(Dd|^gN}X+^3FR~=jRszs84E^SxNhtkTl7RF!$NO!u-m%u2bQ_sAB|b1%onX$phYxUfhv$q;#FJoZlsy?kx%fTFfwUS0r9G z;`P_f%f>))GY4VL=im|eLP7o}#TZ;YX!G&{_ctIuL-o>A(@RfHyBFZigDfFjGEB&@ zA5z>bbi?%Ni@ggrcyAJe;(owFv^X$-0V!RVjJD|&3TCtIO{ccns>-rSZB^afpgKSK~8)#^l`prj_*Fm6yv z1yKOHj@2fBBZ_-=@A>-IpX=A($YB=IJ&gF zeBr$dZXuwEc2N1j4~k#;Dss8h-~E+|%K3$h7XeB@1d(*Ra2yIC8>)mH^W~=iRCRc{ zR;P{tI9*3@y3Y7`acHQp`R|ocDlJVls;9k{Csckf*rziV)ufkruHN2x%EYE z$6SW}ZMU6QIyNRWN>L~jjiG{{SC(}XdPnZO$~e*Adx?Ad;O zk)_1GeTRU6Mr)ReE_Ee=t*GWpqlIUmhGDv_Z|Fs~e{HS#H$V8xPA(@kR$$xRblOQJ z#r38mC+u_@qF^bCt*FVRC7O`!Y;BAKg67{-W$h&43 z(mPKlpCjHw76bu+T(8+9BZ)@cD&!qXExRL6f3n}LX2O(pSx)qi;Ek7a=N9(wkE!pP zPD}p#K^V}bRIb%2VCD0jd`_;{tzd~AAIt;9%I6)2ChK);q(I#POh-riqF={h0N5Re zi8a$bdjy>JbL5gft>W5-e)obP!V*U>9Qf^7%EA&FL*)uaKjt_fL_n`{)Bx#0;AV48 z6b0M1C>2>!h9C&3)zyw5kZw0ouT#)=F284F;8AH@#e`l>LxBexTVQ0#3rR zFI_HSc(6aVUxR4bJ&{1&12Oz9drZaen{4JAZL2D~`;Doorq-_z+`WY3CDTk*t7%XqX$kF@l8H;Gz~&k8Z?Gac3+06>Pg*!afXRGbcW%s=~4I=%*gTqh3Kp z&k!6VoDT8pzw=K3f_xsf-JG5dWn$OsbpSv9@lSbB#EYWrOr?6Ns;<{wei{8R@aLZU z>RYd$KJklJ*&2p^>#_~_l)MlGfl^939V&_r@U3tC&i3)Xs_ly}&gS!dOPDIu1!wT zL;|3)x#p4dPyngLMNp@kOv)hL%#ht`u1!uR8};tc5G>oayH7r`flseKbvWvk^dDt^ ztVQ8EfnxwLfFnnay!P5J2|;pYg~f8a`OLLiCtvW68#sC=pO=OA;hpXzA9 zl`Gc;p?Bq7HA{p=z5yBdBM!UvJ5|4pwBL~i9V51R^oHv?z)D*a-+vkVT%yRm*)$!8 z`e)j{eY> zjCz&Pt^3Trd>E!XLzaK{pAYDNv``Sscb7fCjZZb~643Dm16KUQV}WNmNNj7AyT~W0 zCEP%;JK)>To^FSE^cNe8{~ux(;1ehYE__&p?KlI+(X0 zy!X4QX|icrio*Wds>3py14>% zw;+9Do%q#Lj{?BdVeH$L212P_V`BvXKmPIG4hVM)ZK_slKl>T}&fkfrvwQf_haP_P zp^F!*Z_d76IscC1WkvBxL(?tS2aLEQc?zx?*nQY?b&5kw)nk%kxtBT)3u+c*8R(UL7A(tLu4W3_ zul?HB1|Q_b7f&+6szgFj)p2kHL#))0zu;nCkNB5u+je3mTRD%zL5xkYy1E+r-1424 z<)nA)fDRg1AgG?dG*Q}%bj-w+eDV{@yXP9~YlJ}RwA*etv8VMB$c+`>A_IU51fVpL zkXBYG9J^4E8uhlQtkr6t{oQW|4$bArz4g{v=9IJ5tbc9YY?i5^1ZYo8w7vCixP}G* z<+V;}M<8Au1=auikw+eR?|c7kwch9^lW-hyeVs~@opA|}M5jw72>_*3Xtji{ZD$m; zJ7T+ybh;}FQnN(}h$vWz1R>-zzx`X$`_q%<)$||y!QStF*H+bWZD(%MO|orjTDq$D zYFHR11th~TizNp2Q&pYO#@3r={!j#(j%25H?>_z4e5cp4T0Cc9+z$Ka<|)I5-jk1`27%DNO)@$vF)xbi;m+6f-DH4Aaql!D?+QAxlt}(T3hoXC(#zS1s0_%BL z8*%W)B4K|`6hp@f_Ku50| zZo(n;7632PeZwp}gERRXeTZ0Ng{4-il`_*alyX@qm*cHp>*}ey8 zpEef)&HTO0Cx54}=zSBjR5VJZelFj8QBu`ver_%m^C|&ALf$ls#x0A_N<}>qIMFcN zzdDy}k}q!#4n?yCKRTWDf-AhCq;y>}O>25u-aiiZ zSyB~*?z~|@RoyvCuR>K()uF1Go<@4(I`h8ppLbb~p&r%sK^Pdo-n|oh_x=j-D*&!v zUv4z&00E`BTrQW(CzA27mY12C3)im25O)EPOjA34yk9VgqNMOpJegLEPypyUpblMl z;YT~4`*naIm*4&mzVVrpCtvyb&sSDfJGndyDE;NhmmePtfLB%k(rVGHIx;$T|7NcN z0C45lv0ItI4Wk+231~FxejTB1w+lcFmN|L+V}}!oL2AtP>-95d+(6}g{(ezR@QSs+ z5cK`_f)4X@bNRVB5FoRGaScIuKoBBpMce`a)c^Ju`Ae&` zv;1A-1>~P_t6TBA0QilirI{ChDq9`eb@F1u6$C&liNcGA4j#D|;^0b%0n3-u@8F>Wf&Igm7J&Rd@3G@_ zSV<~MX*QcBL?A@43kBi&jS)#a^3|_01L!S^<6wDtePQ9+`g*I`YyoJs)~;Q<=wFk( zvf|g?+cEVFf@Orl-tZV-dekW#NzjgXdgEbm^w?nufxBpMM2xLiGL5mBm%L0v_Xts# z>OYs@&z@}33mApI8|@n~owzg=-n!6Lu{BOsz54a%v=?6Ju`+KMZPrh?7QNK|z}!Ls zNOyyWkvWIeayb+aOk%Gsc*ouL1d?f}9_O%MxKgbc13I_~Lw)}fGl?AA1L4Fd6(z%5 z@^ZV)Qpqfp_*!kLs#_(naNTFBlwCY!IF9-74p>Xe(CGqz~p4_ zfQpLgX|~vCw69)W^bQg#O2prg_+B=ftyf+-edNeP{qF(3^lQid>wo-zJGmSq>5^-8 zUc;4Zb(a0>-V6dOpO==G6ZHn;e@^b)`K!O~vdXnuG?nV39bdXC874z#Rvb}$v_tM6 zuLLv&*2?c?M)DZ)NalQb;6V2ESJ&3oq*|?=%gePofKD#w!9kbB8XhUPa;_}Z>Pf=@ zfzYuWRiR0_+oh_a?)%6=RD5eVr#mm#jsNvCf8J5c6##xw(+!h(-L>J>ea9wCzhtJj zknNIR;8S=8ZnFLr_g zfFvad>2$kYLP$ED76d^M1jiBRQ2O&<`IV#4eNOhrLzNTMFc-Wm^XqF3;U_7IDoh}{FSp~o9@QX1Y& zxqsod?sOy>#;)hTcQF!h5kk4apPR$G8_8Djus?D2+no>!z!_Gre*M_k%#2@K0SMoM z@Pna|Ry4q8-Q(*D&5ktQ1N?r7WSERNCqFlv@>$noyT!|f4ep@uw>kbfTdE?NMt$mV zC_SCI%|qg^40^~1jn2!j@9%U%k8Fe7Eguy#pSF*j8OsqLrq1osi`z`;x@;J1>y7DY z_Q)i|^og26$&)WjRH-qySZgqC&6Y^PfBLkDo#Uz(3Wzfq3@_tRFC`D4%B`kZWp%X{`PW}t^>(!K`9z}uP(a|6T0#Uu9mgsZM$Dc@l zA@VgZm6-dt-Nva??|9e1Y255~^t8`@jvxwhg{qBmHhdA}xLMcmL_hpU%8} z;e4{uaMefNQSKegb>|SUQcq&LU3_Hf$fut6o18m$;o*n-#3L*&`VKc)PQ)ryQJvQB zJ5&Fcm+P5@DoT+M@yV4HN~u*S z5Wzji;m>|P?$iJQu2f^(afS&kpyFd79*BBV`?YM2PXMrr-izkXdC`SUODZKhg(0>) z^3ezSw)_1*EdJF`++`2zvj1#V0pn*P00`r=WW|b|+Qm+%ZDq2OB<|ijNeHp+4(hf2 zAN!d6=3DO3G!44$lF9j?T2XparMI$OxzcR57Z$Fqin7npnWg~H)U=eo2vDYWl15!v zUB&QlZ>A6gI1~bDHg0s*Ruh@wrKg`(E9d)lmkjvj-h^J-qWgwXxDV3u3rL8zo*8TU_3buFAhyjk8Qn2MR*|Lv5FB9<%**%w z{g*x}UH$N3vshxR;*B{1EyES)U!s=k^FK`%(dn^J~T8gr-RVFwqxd_%eU&*!-C@Z26Bf zyFUN)r`&xvBi>hH?aZauzcQR^c2-!Ovk5H}BH_<(zNIohH(Q@NoSU2Vi>3SGr=$D! zP?toc+N-P4n%LNBOnt^Au7dN^&wP4fpuxfqeip?WL>2{g!DOK2ikGZsXNg-{LNhDc!xFqz6*{#6KF< zA_zgHa&c%VozD;Txe);H#zHZmeuLYgu>~zG`x}mxbo)N-RX2M5ZV`2edr(k)|>zNPgd5}DW!6~ zF4ybrTrTO_AbR&IQLlIMdAVMPH&7Gxx}8;@{_@ul=d=KTrP{^v1*TC4)^EzMc8kup z7=&|k(rj+zcxR$%9Ht;VF6(`iDFLBM`JC4Xnd{4P+q7*xJv1~T5ZktGyOT^Ll#wy` zv(tvW6${tb&tF+yc7xD{fj}l(a6nMEQ%2(QX|e01T1`;csv@neHFvsU|H<)JcMNR< zu=MoPX0epgt85^#3PZtz64^8?Pyb}`>b|?kQq?qHCz*Ss?4HP`TQ9@Ts9pmq8>a7# z=Y_|laie1}ns#?k%Vm4!r6o61Bs5F(LPb2IRdm_6sRd*cPTgL!*iE6WTd@aWX?nUn zp^YDZ0f^ih?z;~!pu4J032YUGt5Nq6XH;}*p=bia6 zfe9ak*s5x)icu_?rBXnRxIOof(wKtf?}sqlt5)t{O(s81o1Ma~z7rF?&1J0LisYWh z+0#A&GV_iO@R5d4v7hYCm+I{`<^qi*(`;#)S}rph57~=g=l}ND=eT3C1z+#n5+<)7 zp1S+kt!`CP)#}*H%uS5Igq;2Wjbnp_L0_{}+>F)cw#e<8&sSHQtE&qD*k51v?;lO4 zfg3BBn{{L7ys7#4AODfnGC>^>LIscN*>Sp#142YXQt6x^CRlk%F^`o zme`?mz2+ZK(+U8dda7@_GJxUXETs^|gsSdJCi5pwoKe;E7r)q-eL5fn01N{^e7k|% zNHYhQ>4?G@82zDE$`lw2)(5(2xxc94^HVNzQxxd>#QAdZ-+iY!F#$@`i;Kqo{Q#uZ z)twI={P^dN;?*|*xV~|JmQxidD&Bo}=KubVQYy)&k=8zvy>iC?s>-I>RaKVv+s&%2 ziHWqXvxwquR+UY&n^p63bG+%;ihIQ<;P@e%k!|MMD$5V$3d!)sXd2Wk34mICb^C?O z_-LO;wr3K1CLd-+=3adTmesD+jFlB9nRFy^d}I`3+i>7O{Ju;MPXTB&I;T&+8yw2K z6WB+>lv@w(^=;%EmbJW&|ncIe74W_OQ%8a=S> zH5(p2^nd=di@*Q-3wqVc=j3`LQEyPM&M#x-;ni`gP>`0FL11T;Pki#z*x%>5tT(U! zVwMmRL>U0UhG_pTY)$%1-CH{T?U?;P@p1C||JgfS$Wjry1wMfsWGT^ZgAfRUC`nSc z+ZBkg`?1G2@{M}3aDC}irP*wU*Y~|A?tQmyi-0(y$ZS;19iF|^$p8Q#07*naRPE=j zbkCn9dt^yWY@7MnT512<{+{2PJ5$U#*7mzIs`pT6qp$gT1IKP?y{qXFm!ip2HT@t> z(+hnkkt!9$Cw}*TrgWVZ4dz2QeTFXApX92hte((>WEuczX&NEOoU5=xlA+7K6)j@( z`^MfVqgb+!spBsk539s+1F8Su8Z_*rI|O>)OB6-IVw4DEQJ~IR^d>n@r?qyzyVh80wjBr~jsrNNNG`6_7k>H^ zdh+FwbSgKow=jM{DS1rbEJ@XD!f2X$9iX~iH;fJ9JZ`pnR6~t&@;#W0V?H~eLXqz2Y;x{&nuO(EGvaV?*TFO*5iC8 zAP~5p?C-*J$L5b6^Qo}dLVl_^GQ!O;b@TO!omY14hUe&JTA&|iG)#%Ue~N|6d72{i z*e(spG}xr%hsR5%0gCs4{9+^jv4gNZlZ~pNT!uCQRe`R%!JJ?EGW2Q^*h2cFsvxhv z{q~hwjj!nvvgo*om-CbRH}@3k&1UPRmu8O~nd+OP%SmBkTVZ0`M~{4L^B4Zc z8*gKP8sioSbvIj`r90+ng-@^yKIhhcS|m?1jDm$3NM7^5wbLUt2d! zST?`S2djyC-2n*DRWdtA$M${Zv)Ikqt@vIvTT3sVY_(c~z$bTl_)j2QxP!O%CfpeP z9B8rY``p#owc%6W3_Ne!@xikE2}x)pk>v!X5Ji&742hyB5Hfk-K}_y(8xNR$YAcw( zex))WcclZb-hB^TxVNS#84vd|CqG-hdi9;jJ%<2nJMl9;zVKVD#S~yJDH7ktukI7K zSI9^0RZwi5UQh8F2ELFMj)b!ZQ44=(T;oZ{SpYXEp=BB-$ z{#NS$yv=AzDOb{ZRWeMavf0WUJ$xI+y)@bme&ahLeUIGICX7PDx{lAKm*0j8)6)Y=VD8x9Le)z*T0Thc9 znpPMemqNyP)5IHZY#I7WhB0}oi2c9Nk3QR)(8z`XdwC_B%{Ir~H_=j*rWcM)$T)yhew(qk7~S1lL;HQl zbx;8N9@srT?x}Q-Z+-kQ_$&h!T+ZkJ@i*7L{jZaf?9UynG7vjE(<$9$FNTQenv!AI ziV}PTy_i4heog4>KRNO6!2{~<+gXhUz)yer8e3>K`^PLmtUD}wORrLG$h!BLg1;%{Y_zSd?fOqPpV|xzV6Bp1d7-`dRt;?iu~i; zxUn=g*0&bAD?3Ix)~H|{DYq258Oct@^z`m;y*8W{}2N``4Eie#FpYSk>2M8g1O2-%$-Ek#Y~Rd#=DMG*}XfXnMP zu8D>r!E?ml3MEEvZZ2Kbw*q=&J-QU3n;2s|i5?0YH@aCdizTB}G6N)48=h+OcDC?q z5V7vi&=6OY=B;C3MvJACD{8rXr&*)lXJHkIJzn?^kFXL=YPs@$+bObxHo8^2y}$fV zU^4;il2X26t17GFW2-9T8M+lIWOpQXJ{B6)thQuJ)0A?VB{ce*SlM2;wz+Bcd^?;Q zJXF103PdX@jLgqgT^c#p%xRhoN*TrXFW~uolib{#8+7o%NSI2WxL;K^lL?k(5#msq z09Y|tQIs4(q7DGqwj~NO;80LP1W_UYO|7nU@&)S9ZtDgEz|`riub;6j+E`i7>I4bPh+Uc}H-`}A9npZS>`l!!9d;a|V)vL)JJGS*;@RmgG zEi@XPmB0O2^1pl^fOo8ZS_h3=q%qqlzs>z)0P4n$d9z?NE+1`T>j~#s24ZwK!9d~7?!#2h5!pm~K_RG0et4##KwePVL`wa-X*{mQi zP!w~32yi8R)`x{h$UHFi!*N68x&aeHa3Jt6h+#Bj+1?lc1Gb_B$%8@2RW2^`x;-(^TRN3Q$uz4Tgs-|&tDuRI2-$Mru3@rIU(S6>&vjp^xRRcEDi z1MX17xvJwj?cGpsYU|;9%6X9^6`{gj=K(M5#zG_i@BH5Pe4=%)D_|9Ntc+q6OVojr zQ32Y?DB#|R&iy6dd`Y*vD_8F?vNlrjJKyPd32atkSb_zYyZ#&&5n3v?v*U zKx2N>E!F`}>3V*4E~V=qKHPiH6eZrGD3vlxCHP>-y6$8dB(qd9N(aqI>784V+UiyC zA>04}qon$01YnlJ2W-(1mEo&T9MD?8>=fFN+n4W0SbtcL>+V; z&$9=tuN$h81A!^^1jTTD+0A#b-0W_qNl%gC< zRva?fU|_AUwZ{6?bkVHD=(_b_yeWl9u2YO%6wvB#ucQhE)Nq+L64e;{Pqj_ zmH&Cd&KD%fEl3Ff6q0E$nBZ1ZH_d4Nq}#TCY=So+`zovaI1G--fS&0`UC;5p}#xwnqzQua3y z&Iin041Y94)`ukAoq_d=;s*);SSf|2sPo5;O@8-3g#obl7u;xwK2{#w`ke*`XT60` zymW6b_>V2>=^oS%zDu!-7(f0(eQL^&&+KY_@4KL9#4?G>%KtVsZSm-{AF}jpCh8rY zLsTUdx@92`@Rz^*RhRv{pPW9+(61;aN5_huqt{cZd~iU5iWh-dDlJVPwk z-g4b)0l@O|YOS`iyzG|i%g@b;t42(CB4T3Vg8Zlf{X6714E*65QlR?FH;2-x+|F^_ zKN*I>gQeEMf?k_nTyM7A6j)D}Yc<<3lY7jUn)LUZ0ex^|i__D1qt(@``qiuY!GjML z3Xzi+)bPR)u4uxZ_|&!w7xaa;fZzVd!PPWk9Kp`-J)hQf)(7U%@q^OgDV)t-RY>m| zC~Vb@SGN_F4==JjYbhv1PjRKxwW5lKVJj*FHH-|YscCM7HVS|?gGSX@X}83kng7(6xb5SDz4+DDxI38hA z0Jhz+?6xF{j?-mMVB6|SvRf0llh6AYxOU~8tTqW?Z01D7_8n_Jh@O`>H^emFko{)> ze{z2b;r{?pE|2s&8Rfli{nq4nzsq)_F@Jp=9BV%dP8b0&>|J{l75iJz3y^T1dH@&) ztQ_FCM7tYY6b)nar5VvMZZKxS00xc%-9hNr7pYIKg?mBl1#W7Zxiyby6he@48vAb*GW#{ zO+CGvYpV(<;gclYeLXhdUUo4BDSqt7yKVXLU}B*V?A2h(X_G{$SHKl`j3nB^vM3W6Yl{}5Om z2LK@jH7h5RlmeDb2_c=1B}(hfHL=<5cBy4sirsbg+?TA^k}Gv9JDj;XZx`~3HIqn! z0|IlsJ(LkvOxvcGqNJKs-u4kca*|m^-9BdSrMHa4wfieDYI+_Fq~3;q!ma7RN@5oR63A>Q~g~z|gO)D(n(`4;$|ji02UM zTGo1e`m|xz(^dzO9;GJ_cDue8Xk$f%m!+i@pfNwc*snqKI4NBpd1`kXmy^~I-N~OK|{7o8ITP>VFf05CT#bK3R z=Xm$5{|sc)WZoLK;P0wdyh(LY4?Mik7z!bia4f5bU;;m)m?oSo>`iEjWST35?C|R+ zQlEHo{DA|gR$X^@C|F%lu~Z*F{v)GUYE5WN#bs>6egR8H7bkmc#_--$$uLL)wj?5# zgQ`N)da(n{N2Mxkfu4Fd1~2q(gg;Vg-*Q#qyfCLHbkd!QmTu5;!SzIZy zVoQK4CE2kdyDF|qnGbnQ$;opn53b6K^N>m^VUj8*WgBr+Nu>g)WYfAVC0nt@U0Jdy zlCvN|VX@n|?arlpcP@Q7c{tstPv2%{u?rBOf1qYhpFVy1boc4g|My=rf?%F8D;BnomhJ$U<4tz19!LUAxsY|FS3I9NX1Gd~RKEHB>;vJ2i95dz<* z0F|gD$zhycxUMUC9szt+-Lb7><%-&FkE*poyW@Ja>vkbm_SFJZRI7&PlX9;;ny*QU zHtc5e z-Z(Fz^eqA*=yvbyQinFr)t>)I{;~M>>F0PS+{QEX7}86DLpXExA&O;*vn5=CNqc{1 zPwP`_-}C55(-f;GOOigT&wl8`@BQtMN24JC;`{#1Eyc114Z}4}YrZZQN?L2fT55_~ zdgf;ozcdaz#m)4t9Kl2MM3N*pX^&Gw^5$84lSrFycF&$GJpX)kZ9N>Nh<>^3B&+XC zNJ;?iBHSfe4Ps{gNt~Qh%6ZWVK&!96UfkMBWNJt+9b6Efo^>&9; zZ=vpap5st>@H|4P?|H=cJwR3zUDFmb$0L$rStZjnu1+uuPaehOn_>3y?C5S|=fbo> zn5P?<=>5opXehSL9C`Xi!@O`oG$Vo#-Az=6mxa`k>GWfw6{WVZVJ|I3A=z!aWE_is zsEHG5fPd*rzlJkUkNc)=-rT%#6M!NY=I75*fKX7z;uH1{2rGd=&+F*==5Jh@2$KK| zhy6+=CM+I}Y?>O6FW})(EvE47_gzpzDfN9S;2h3WWnbDs)s-S?t(MkmMes!gH3&=z z`E5y*MGZr|luaaOAJ?X^{r$nHKNtbg{UwmN%_~P-B=MvPYV)-u9~A>p$+J%>xXffD z6Ez|mxv}vcuQ_>gu~I1ksE3;Eet*ETOl@u55_%Z(6tj1!dv@%o^dKSLT%ip|vI%0Z z0{}{b_W~gp=GMlMfP@f+XrhOLOk-0Jg0SPsQ?*i-h@@{^yG2qdp7M#^hGJ2-tlLsL zHe8G_7QA z4;Bp?XoD6xreu&zwwR{fa+r;$rg2ooI+0_xMU>LO)*T_=?r3_++;VkY7(=v5hYS@# z){DbyZvDci(dlWeRzlAkG!Rt6;SQmkIf3J)d^}9DDiH(7Q70*>U0R|NFA<=)wRP%` z{&@4!B}dbynaCm-hOmq%EOZbLXBD1g+-h`Ce^+)8KQL=;$rffDG`x6%7(<}9T3V~6 zWX469+_B(4GvRQGOl$IRsmp=b6NCMaqp3V#-)|Zi2FKoPs8a%R7P5E3A}e8xb7sDB=KScRe9JI*9AdfJ%g)TUwa6NNe)H# z8wAVMwf6FI=luD}O^=ic>Jd8?XVM27`VI_(g;Jl`(z0l|oU=A^;Wk6RzVCSv^pzZE zLwygn#~3$bbg`LBR@GPv|q)GXLxM*KzTpEEneHPMei^0IF>fLR?)d zo3|9(@^qcCM(o?oc!5BE%EEc*x~plSX;KtqPO>Ou= zAmS^KQXl|%CTvMc8_lNa*lVj9M$OSiOjAh0KLO|wj-$d6$)SZjRn91qqW_>$P=5&= z5f#`N5!r0aC`<^Tl z0M9=A?B_rKS$@W$-3LffD*^bMzuDT^>FvI-Jooxq1Q3K*M($ZmIV<&ScF}UrmV0&q z6u?Y(gH_J-tc1TQSFnnjR*LwIizimg(aNT8bfC=)lcK@VHSu{53_}()K#r!}`qZbz zyl6D?&}7LwEXA@MA?#5?49YTPuzSJ-Dj`e-921_3(>so7#aEZbIwLu#I1?wQ6w3qv z>2@1`_(z*xxs>CkG|j6{lzRuaaLcp?!PGLm=_!G<^JK0GDw$?!+tfE&Voa>8-lrHq z>~HFZ=1WiF2a}xo15=^kxY}`7*QVr9A4g)i_b5Ylb>|Y=X1YM}<^bfbq`q zGJ_d+S5~+xhK*`q7}`cF)1ExBJh{5Aw^}?(u$t1|a460<5khnk^N$^0&A(sBR@mnH%?!^ybww*5)4s%U_0{ewd${a8P9zP zK#0B?r!Qabeeb)08PWFkpwVEVgP7rEp-?O?o?`uZJ{=A`0Isf|tjy0oxvkpvpb;2Y z5fUuLqW!O@2mX+3*T68!<~E1riXCK1M<8#_cyX$0>+v;QWE_N$xIrn@`_iCg)SAZ7 za!g?s1IL+^y@$pcMCv4(Y9Z9byD}OmM9RQa@}6;LAA@WYjCKBjN5h+@P7!Sn8;vZH zXy6*0ary+-B{2*PAhLWGPn6UEgY^<^hKCP!H`_N_0A#i3Im5!t+-R>Wt3k-CA%X4m z`+fP=d+#hh|9tKRkA}UiYu;$+{rCsHGf!$KPRnX3ybmJcOA-Tmwc7FV8sMAP-!QLV zpIv;qq%X*FUWyYz?n41k-x&_we(%n^)as08=hWA_k0$^CAOJ~3K~$aHQN3E+ZM*Yz zN%AF00*K?lb@m7QR;@NC_Epp(5xMVE&!dE3>x&mohmJ6*hZV;-aX}9is>Qb=>6RVG z!AV>!q$#3Nf8rk?(FrK&^gMQJIz4fiDBRrMymTqk3U8t-ve+wJ9Lw(aUVTXF|R zL$P}ZbXs~oLZ-^0mxgf*&~!BI0LHk2FsnAL)he5&z|&68Y{6g4fH4X;?I6z3WDIF99a;V! zj*6LLT-#_33`6;An?(s=aoREuQYTbsYzU zsH#dF=ZRBi7N0!xsZW2p-ELFhZ`an|S^FWS=oH~N9-%mPY@yg`y9;$nJRcO=-s#3i)4RU> zTh#cO3+?*II&FgFL)6G`6c9sp_wp@bjz4iBLMcL zGfi-9RqV`hQH`L>6tG?LzGi`5aoUBIAc%~mfl%@=w=mzn0RWye1Tfm`@-hGg0DL30W>*be0NbU3zjZgDL=yk#Ck_-kzSPIGl==8N*Btj{s0?>-6Qzo0l%7MQ>u@z=z+Lqobh8H6NO#8#9u?>>ecAu9yu6`!wn;E5r7h|p&2(jr=y4S$xW$ODFBpB zQ?ae;+PZ36;WuFV@d)eCm@|zX$h6QmuYS^C`-U-S7(9TG`-YD9H7(AOQ^_=0mZk?7 zK&#q)P(4pUJVEgz9!{1cb2d%}t=$h%*px72*`GoNCgs$<7%06zDH zU;Nw`e)0Ey@89?i2qA_{Tmo;QMtwROQA(-r6W8?#kzAJo@?hZWdc9shBS{moqu18g zs%z_tZ9P)A{iuip!ix*j8GRiAIlC>lx2Xc#t=3cLo)C968YlADO-6$O{mZ}nK7iTT zvxNdfzl51Sk|1h0SfI`j5`$8D{I%8U`Z~++NxAAQ#`}W+zB|~txsGB{8V=$6$#b*V z(34PCf8S#rs%pVlJQF&w10nhde#itSR6OyR7oGyLW!+m@;W;dr-(%qY2m-(f1)b^G zF^FqH^Xo*Gal(*!E^)RbhA}$=@uj0{rEOCLJS?^_fZ^slTlcOLcSh~0>cZ?(Y}mRE z%R;k>pWS4c()NG)Cig)oJ>i!;wQm^uMvFy^15bfL;A&c?JFfT`h4NT2L+q;K&yEEB zOiytn3;^L32@$PgXUwV)bo`+~GoR61)ekRh|^r z_cLCT*ia>3El7@|+P1Q{H|kp?<_sLDK{*Zy-{RoT$Z}a#$N8lE^rvqsrINC7zdc8h>d^dmji%AQ_I5CLnFXrHsai^;C)!q4mY z##ypN!Fyq{;&<$L9bM}zpC1@Tl#TO)#k(n%&8$fubl_;<{m}q3jlI2epyXkX8CBN~ z8NO@mr&l1wvNRrRUC`kmuwah{P*BU-D7fL%`+4RGAzfX+_tJ{hY;In<#4GhytKTpb z%Tg`7-(W%4ELYdd+tDx*>2tV=J5!|dU73@gCoSi>d_*_$qosk-xV!RFlz{Dk)a&IN zoKt{OhJJm|8v&}S0+1w0*XQTd!Y4obsm$ZP`qh8&%D?}2GsB@fUnA5Xjo|x~QZgD* zLcGxk#iBnP5>-`BoH$c1*D^a1$+&Xm@lAoAg;tVZtGg>J?d9bM5Vj+mM!PMyyLsP- zU%vc50nE-a-EW{fVgb@9B_Z?$KnMw#>Dmw1=U!j;2?(WBjIR3L{ALk@*y&`pn$}!)Pz(g-eLx zsmv%UDNvt*hto%mA;#kczq%I2>@fH&vYQ&Rc+QB4gZXMO;|p=|N<5rp6(W-dhtJyPA&BSl!jNvT3@SJ}?Xh5V2ck?XtPe3aVxG?|03NkuYDPA_-w^Ft;H@g9~)nfdjCp_~n-! zmi1~?(X`QUls>Ifs{@ekYy&74#s*Dz@=4C{Q(3lICcBWyWzO4z_<(YuRj`|ot*v{F zMz*5_08P_}!##HKg?49DtFqzC`}=+=uvL}^Q3P@z@j}3<)e5`2!?~IyNyBPQk`Q_V zd$O!}lNt&G)|V2rMOyL^okcDZus1U zGJ+=>_CrJIN31^5{T?)IP|&<&nhUF|g2$`yNf2JJtT0T;t|p%A@W)O;Bo2vb@7y{6 z3tu#@UWr7cL9=urdNj)7)ud0<#C4K}=^0pNS{8z0JfrVwNgr!h*PYNSCfQimq8LH~ zwbq8KYiWx^|Yb^RrbYeG`?4@SEk*h5%6dd4Tg!y?u z#N4yXruk4=(ub=7Zl7OvHLa7&&^%U@6$DGMEUndgbR$oKuP){=6T9M}+QV3J!P3n%LhR=B`zU8E zNKcT9JVRoy>K3cui4;5Fny%?lUpW|J$!rsy(I+N8Uj zh6d&j{6VxR%vQ7V#OBk+#%8zME0t=+VoY)&B4L1KlnIcqzOga)`kGIv002U@3JKYL zLP1II=HCpvQ)b+aNVug0K({o@Di;^esD)z44U61un!6HjyP(}mX^8W9gu5%B89%g~ zn(WQAI&?fd&IHDpN}+_YYrIbiU~f12BIt8d$(Z*K%A z2LME=j&js@S+{{^>`IY=ud`7Y_Vc6F;Tb4&p2&w`X`2Uc=V^7> zFN+n-j-ouAn`Oy?JTyq3R@&ZHY}?cHaMNV+7}j160ucq$uwtP&8f5@r0L~zgU3NQT zGkyqPG^wrmD9}3%>KSb>vi9!%5IxUphoqY zy1UEzRCe1u6gGPeN3~jb>cCFKt=Ee?yQ5m2DS^2sFqHv{YBg6#+UxBLTV(T>zxdS6 zE!DCUscw@In4+zWa@1W?9418Vj-W>vQZ8}~W={QLJrYQmpWuK*YwK&Srsanw9iy|I z&~tWee(u|84nN3I!JzHt(skoyrzG3t)T)>5JsDzCq86sTtW)#xxPzVbUSE{gOsBD@v)=9KZ1^sB6V%x&< z6!)SDuRRA9)0j#*35AK>TpB9_e(dR?>U-1lP&B|S?y=o$KH{d%2cuKKUqxGr73I8r zG^wB*Ry;Ha^T!;?cpfOZx}F|qvL;I`Su(ecD_22LT|2DHz4!Ig_|l6&xU4ayil#Ts z?bCn!$1FFdYTM+@({t9oTbYsieXm$N{o$VjQ`3oyp{_&IVB24M?&rR?`rTsB-aBFN z9KV!8@j-}MuRmF-D6V%e3S}7<28~Eyv9P*YJM`7PZxk{}arKT!)YWwJ;)Q`>OoMv` zr48FgDDTe%Z`m~3ZHed?K;^{bq*I)3-|l|>>wj7-)@EnV=CxtN;c=DAw{FdU`#Z92 z`vd_fCLk>24*{W3(wC8CCed#eI3ExGx}{mRU9RZ!^9=~fx7ZV567mc+Q2b`5V4Waw zj~K(w^7(udj5uUVGN+OLEnd!P9_`3ETUMKtMktyxqUA6l=$hBX5nEkB?);OtV)sUf zJWLo;0z|b;dOXRy#wv;UC!Z2;P{nmdk-LG^VZF0V(~cmI&AAr zU|cZvF==eXa@x-}uO*`@20!cE>b`d!p@tlxS$oMehoz#udrz_L#pUz3a1oXTHel0) zu0hjbTi7<~)=eH0abOs=_4V?po_?$s!ZNtJ#>$FiSyCjp|*Dkh*PhDfKpoQc8AqkX}3*l zbCLu~iAR0U^D<8jpj<9;4KSMmw}0U!W=0zax`L5+4Dk}7EY!zp6HhlGAPZ+cF9%3C zgv7yaQP7ql?aY4xl5^|W>Z+^j)5p2Yr>RhDn6qkp0IkgRb9#z(?dqC&;bMS+lM6QNbQIyL@;`A6Q57=aT5y?vwMMk?ausrU_zqU`7zKqHGCgv{R*Ca9fo%vplZ*tH}A z0L1GFcQuTHQiKu4T}>BkGD&HBo9SNIlvgafD#U+EfGCd4wN}4Zd=@D^Pa^;AqeEJ2 zqqe^GC_|=05;Juk7{(FCqk4qsCJ;uLJGQzyA!PI;KqI$*pQ|WfHJhFD*;?NZ3~8-a zb#1MDbnoL^Z*6{jtBI4LksF&KmIdHbCr_`v{@044%vF!6Z*36Q-PdcX3fdpx_8km{ zS^ZG}Qny?E&TF1W%WfdR^?Z09W@hH+<_uNY8b74IVcfcS@$O42o#kbwCt*=20We2y zo-!BlY`UU9c^E-G3eV2eEQ)1^2JIG4OU`jPa~fiRylk30iQ0iFWOV{?5$OX08Z0($ zU1VaKX{LK7hNcW7#SK|=Kis38H$3YWl?d^J14gyl&6_vRo}D(;5J$h$xSUZ6)wUMC z^Bt*Y`9Y)~8gZcPiURhMx`XcCt+$h1bUJwQNwFf*1!b{grP)OQAW)UUsZ-AcdVLbAK-}WHyRL?tvLk@Ke0{1fCD20Ja59hpxli2JrLi>-MXErp;7n zsq9m#?(7cd=Ot%EC>%|r#ZtjE2?2|dDevvs&on8K98F{4-27ru+1ryxqrvfGmFw?8 zlFRa@TdP)YZjRJ~>r!2RUTU|IPw};gT1!jXxg~9*MT3dKW32~))(I774h6?{+}T&e zs(>&_;`1lN7McUzP=`))UyDR_c;4J8DmFH*T-m(zl~kUN`(>M^B0g_pXBiVyJx+N- zgluwk?Z$6>#khJUKXpsA4j(EAR`MC-ZH+rFqR#TNqiX}Bk+P=F=q(k5;IPkc;#YZ0 z1HLPYBoqQsp3xhC-E1-&V8ym->+8I~z#e#tD;QpTqS*fKFx_8{0%JC1>MA zll62bVpiLMVT93rA7n`9`=AG70v)8f{ov~D0Vu@M)*dHo=le^8WHp=jR#q5BdaxgY z_m9fvc6EK7MSM8gOSJ#GrG4o|LD(JqIr|U4u<^!ED?^vG+rw%Vl$1N|VYTin1>CrS zk9;Jnvw)d!UFy2T_o<@LejnwsR;@0~%p9LMc$>$v2Apt};|1=y=S*4vtp_I0;`n)B zG|J{S%iO@SL2zq3v9YV^099<3DkzXf?KPK5<}H}F#QPyeac2icwwIR89gdisG=X); zfBv3-{?u?-n4O)Sot*`+b>oIK96}hfh($YL0AgCdF~ z@cP}}&;BZXcv=J8>9i-HKmq_KPd=k416)b6WA67^L8MOaVB~XasLmt7V*VC-wd9^>|0FJIclXnR1(HDAVSf zWbDf*lk{eUvxW9)l?;hLov>ZTtCf6GiToy6FJrPw)WqcJfeVEqd>>;I5uG?ljFQgs za&>*(ws$qHE>y?jQ&WVuA$Wc0jg1>mFaXTB2+QVSJLZlZuXWn!^;AXnd`cMV3K*MRp*aefzB^ z|G{VRb~X@d{Kr3Kg@Iv|woS(3GWn?+MnQ5z2}0R4#VN$>OkG{)YZT9st5`MxnDmnZ zs%=rq`DYrX-qm#WxD?9*yMKbCFTb_IS2Z?6;}BcS)SY-~5`sDaWbw+CRQg;dTzk;m zPv%Ew+(|QKd0Cw#PhnoTXy9t3bQIr_;D-QE#Mk>Ulq2ZKq*xPsscAKvW0mq5pP#6& z43%tBewo!i(f^oJ=N*+XmPBv-D8;sFYwKF8rC8SCZ}l|95lcooS=-7@cN@}u_~^Qt zZZ(^wZL@QJ*={b`&82%QFCng%=9y{v@Ho>J8=;Wuwq%;BWpQ0frcy=3;S7ZHP(#74 z$P)gr^mie;6#&Jys_W~uKUv4>`#qF{P(jT#fzEt`2ZnKPW#wohnmj-{>}ToN>T6o7 z^?<@4zxmeYC*C}T=S~YcG711^o_gl=nd|LcN@=;<-u5WD_DE_r4eB zAEI(hp_{0r{3j4Jgw{!+vv-3rf>DGaMjxUd$C81a9qjDDFpiZg@H}WbbPb(8wztt} zfG^A33Q4QL-iKD%`~DC9_D}xLi6=fWs!^VeeEeN9u3l9v3nY>V5P)!Yh_GPMARr(8 zRUznYrC%{~_2B11u{n3wpSgqD-^@UrvJM2WW`a-!p z8yO)+_e)5-D*OrggIJv2BydadMy$fswa)T#qFoxhrJ-zkZscIdbcdOg!8=V<&X9;* zCjdNeG*snm-Xrbl&&v13YEn-j z0)q+43^l}ASuv2Z7+gxIN!p(a3ZV#b>oc0#&6WOBRRv()xt-SlfaEyJ-kuaX5<9cA zioMsrw;cz-V6r=I@ETruxPt<%8)!a(G*zpoPd~Bo&NWq=DR$b!xf(4LU9~^}ND?K4 z5coa~yCD&jV{fR$@{ChuZ+}#+$~}uxA`$A&*Gt{DH##uVAHe^!R zw*eI1xz_u{$47<%z!4tZ-rTJCB=?_dPS44w?bwAH%Kbigy{K~vnBg#-n;HiGfDn~~ zFh*C`ID-w)5Sdd%Mo$svTwPn|n9J2PkU(-S$LUqwNwz`_N9tR>Ct^qzWrXiUhAVn+|U%z44OU^e zKc&z&TGfp7FkHACuZ#VCoXB2k_6?(RemQfmXq6pC(-F+n8RfG>EH&bx=+ocD#lTlB z%;*pVjpPLg*%#9tuvJEHZ2(|_e_5(qu?-I+gi!s?k~*-pL)&OQE;iED^|i8T=39?E z(lm1VQ@%l+ z!_ddPS;n!)R#&U*YoLHc0(LO)Qx*AMfIE@}TLAx5MVJlHpoxZ4(k(MenYx+$JCIsv^ zyoXS28^86rnd5WVHlgbk0Hz5|tJpU4Cl@#(e|x`u5NZ~XNCUj7<@ z@?doGQJgFiGP&Xdh=VKE_x6R0@c_(JtEh5iX3SoFZcY-yXzial;}?sg?oN)@ECGI_ zjs2}Vl}rE(ocoo3^poHF*E5yy+Yw@`Vz)h*i;Os&S`9RgyeKVnItWypRBg9M^_sHN zCPY$q+r#-{x!JPd103<>r~mZp@4ftT<{@JRD&yR_xiFGap4|<6X`qzL zI4GqMjnTNVQjirq!lD!a79-Y~5Lipk#P((kJE||6=Hk^WNqtiOj7p@RWR1gIn~d-y!SNs325 zjNQ(=D=V(14UC3x*}`}F0L%55mE{1v96T5%!Gv)V0HtknVRcoBQWLY2Wfo)Gj~5$0 zFbr#{X*ZjXn&WYjy3sNkAn^E_!pL6I`L9TdZBj={tT5Ab=4v=;Az({}Ev`GFJTJXqRoB;Q>+7*en-vB6Q6{ZipV-D;YTjL0dDJKE zp^3R|9~SyfwZzhME*lK@Z+ zC&1|g#N}eN@!^kL*J}XIocZWRS&!_t1b&M*b~H`3BdI}L49a8?kUOheQN@y(dzX3R==M# z%OY+Vd?@V(KO23sDivK6nMI}h8*mmd&O*Xd9G4hFpaRYt7L`Mz)`?@xJNcMrM1&a2 zh%XMJBPsw&BMFG>Qmt0oHOB$q!B}`~r4-2hhM}}to->dO#hmL9C>+=BPOq}tLwz>Y z0;pCmT=g~vGuVBzI z6;;>POQxx}TKtg+eI<&5O!#p_zf9jdXc!-C8(;w1Mys~A{y?>7Z21s>1Jx@#XSA$@ zLkbnMN2sB7b?xrT%D^z}X0x+=p0jj{W#eN|3fWP7#3(^!(`3k;?MmCIbA5Plr2z-I zkE15LzdLU4QnP)2`2#<15yU{wSIRvA+S=N|AAGa%vh}hcC}jTwA-CO|Fh~pzJ$~=`>k(%_t-*nnjF9F^UFeF!^6_ieu?tW!jt_# z(ETEGn~RxD^784+mrLe$6wg$M5E`i#_$Cz?o}hV3clB_{?%%l4m!$~_t2i-ld{z#* z{Dg>{Z_=Y;rRL^l0USU6RH;ia{R{vAAOJ~3K~$s*Y-^;4VFj*2AI<1M@GIWUgz%kh zwqIai9=tIjP%QiO|G0eSKfS_CMx(z+PI? zTdkqpnF+HuXEch=9qsA=s8#;#$1_{0AANpl^TyWAn^cktJMB@euC{jp6xy9oEGQ&A zrT|cAw`m|cq=k0dsnv(oxk9_ctO?xuJQ)sO`0|%Alds?2AIh@0)W&w6`o`6b=bp)w z{)`a`ANl+;mKL_QoKq!UpPdl6P)Og{tl0;aFWrq-*@Iz$FX6uXGv#-DWGEzGHBLKje*JC%E)>3m| z7($fhXlc%J+?_~c7J~PUSb`s|)nbX1kgwfMZP8$+WgeB&iCS>(d#Hybrtkf`fO{3& zI<~s{nA!jzi0tN4-!Kw!ykhF{4$#bg+@gGRY$m}mBm=2z2LQrIKZwGcTRhcG&>+tC zL9k%A8qvTw$EMmAOEacec8Qt@-5tdQ<_}IM{4f`;W3N4I=*wwqYp3@I-+cDBe-V1h z6T4Qg|N3ucYv$84z6sAifA`*wVp+xKK61C#NJap$lSwF}GirJ%(5TzV z;3hN!?#6UpG~Hmt(JWJ)YW3;g`X{CT^|g1dwVZmbu-hKiYCP6>IQ#jj zXra><`=_BJh*PT-+U;Szrgl2N@S9)3hd(^-N-9MX*Z#(l5jpYQ)w?Szn9c|yI8GEZ z#srf{{0c}o@jn2=Ea_XQAI=!#M4AF*Q2=*e`b=s2R<4>SW?~WxOPz?K7#$H8115XR ze}krYd2$6-*^peg1BzvzdF7RRFRfT{#s2>X00960DXNE@5vxT~BDL(1 zsMXrbk=NG|9B#Zwf@JAnFOa}e9%2NEf*{Dt`r#rszuc;4eU=u558t#W8u6; z$1@o`8xjd--w8uoVW#2(KJ~uQR4IVw#Zj89_=QjQvv-Oci>u4ahn=$6nV>K6{g}wh z%0vo4Kpr<5VI$|aDsfy5!`XJT5=BAx#x909$f7|4fHXUou-UX~p_yqDEd_;2$mI2c zfJS%2-`=j?HNV}Nz18%h=Mw3vB(1M+e(>ji`_@~R;D1uvv*HoSd^Qk$>t8D4^`SfT zgCM+ml?p^&YEry+RZWf;Mdz+xAEVLBY;1??ODTXdj)tivWh~XNm3IHz?IIp}U#K4h ztA;XPhFKzNbCJ1Er#0Q~GtS4s#;0-)j6od3NZHZH-f}I`9q$|z)lDM}9 zB$f`Gl4hH?@P;D>mROg9;k*DO9yNewnMT-9_e(Pb=eZaaQ%=kxBA`h{v`hY<7-cFx(!aB9$#ByW2qg85KwutrkJw`0D#Kl zwdC|^!Ng9r`s(S^pZSA7fOAFOzW@N6TW$f50D$S%?X@?Tww=6(p4(Qt^I9Y`^;eUN z<=t%m88MmGr6Ky5M)~$jYx#S>`+E!5uctX#0c@`2xaQ=64zfDA7Lj{L1Wx8*jP&TE zk#>&@+H_eLfEUHH&0D>oE?F`mz`K9#THYhJv;NgCjoHhpVHWT}fEP#AFig#2gE{~t zoQrf3@sY_Z;Il^p#TvvYOk?&a_&y%_f$2{o)|&gS%J5Q08yoQrU7)(*_wb>DLX! zJ27rFdO;unR^MKREbT2iA7Vl3&t1uHl@z$$uwPG&+htTqGnjkf$a+LtL) z9ue`nff35Utld+>{qTxYqCuVLB+ishu(xjAk()BKm{!J3TOYt{9UB|p-WIeos2r-s z5?TyRZR%*%+%D~ai;~DR2{zE1CY5pBYDT955uP}@yGhVLh1wbGegFWl@o2^D;7?7> zy?Oy0@9D-yYA=22)M*<}uZ^PkP5@;0Ssn^=PYyU|49KJsgT+PT!C8*HwyQb*+I#Pr z8hGtM88;;`>CS*e6~g*FlxDVP;`_ZIkV(Ze*(l3exfdx4^Ii~OiZ$F^n4138|NXzr z(f0ev&UUi)`0BY)0M+q{=~gRARM74evM{>+@cW%v z02c;^g$r{F7v}2qhacVj;2Q+T z-V5^*0ATk0=88MEVi~k)^wGCnAr<0-mna+mH`t_C-6=sa+a zP_#I8Icxz%%t~*gU3fS|WNRN~$#$0pSQ0xC#TVcE`pT6nQV-1j`mg`haoD0UdQm*x zYE`>oEe!1=RK%3|V365LV?2aij0lYejlCdnoiyPbfFb`UqoT>=H+pB^m;TUZRIy!r zCu(6h-MZ})o7l34P(iKZF41DKNCW=szb>q;*#Zgd6X60)WgN{Qeth@GKe~^daY>g+#ZCBq|Jt=9 zERrKyM3`x{=9r*>f#ko463*{myH;T3VdJCYl9tEmE-Zdgj>jnpzkxT)%FyBBW{*M(Xmi(3|v?rU78?@@4qBpM!h%;KBs}fGbyF&VsL2Rvv!yn}6eZ6OD$JIbwt{6e#DdkE0Cq zRlDV4mol{YXMbj^wje8KB(0GxsNHW|R(0;eS@_Zy^ZFoAB(}Jg`aVPvVBmBt)0a_} zF|2wNK@dP3fAS9>JbL`p;GGzt2sH>qrU}Q)x7oN@!ujX^$2mAtf{(p(r+4pO^z_Lm z4?bPn*klZ5#>V1@k7PjX`m3+avES!faBQ5#EN3i-3-ne8rIKW5OzfJGC zbx{njTy>;qHRo0KIBbV>xCbl0hM%w?O<1AZPNO8vJ#mz#VtW=ZiWaV4&xJS?jb{hb zYt%}xzQDWuPPxZg77yDFlC`ZaFJsyos}HdK+?l^?hq60F7*Y8B%a&ztJqBRaE=mpA zi71}TV*JoxKaLAx+>z3{1m$7^37avTBSw-yG@i(KjNC`P3IO!$^{tg~<5Kz-pXkeh~7My8%cqAss7I=VOw!7|DyG z^Wn;C|M2w}5&Axd7kBN=r6)^o9(*`!(`!2MIn887lbn5T8@~6StJxM6Fh2#D0RZ^y zW%%snp(mYfHvM*I;V-Y#%Eb2vKCg8{T(<|DSK?S2kYj8%*CkMOx@NMNrfnb~pJpyV z?ajX5cB(=QZrC9G?XN+=n;<dK&#!b8ivyvV92JmL-?e>hvmjNM2_l^E;vb*m*>*e@r{kNZETDIOnvwv z000{s-`E)6+<3CI6g5)7Af4o&{z4wVP9k9|m0Un+w>05RH}v8d*T3BDL|qP7|9$4u z!FkkdQ#FegcNZlT$mG$pP>l^%t}VUU4}v3XQb?&9h8WoSum^Gw)DHrTczoE7z6V5? ze){y%N9!kh$zc!VASh}yo-8f(>qCSZ`xKMqkf{>K^EYnP90|H< z8E{^qd3tuiW7w4+#M;dyt8NX-^L{$5E-!D@gTk?od}tRomZ?W%23^Jk301{1CUULScn$=Wsi^DQjXu_BL%LeNU>CD>@1z4)+sh@?O|yeuS!#s(^P)SQ zDztFk3)N~9G>NV<01N2VAIhy;KbW1J`qGy!SkNzkQaO?7btk6b47nUxK4ZVeZ-4to zXFvD(v2*99r|q$z?@hj*4M{-e4TQr(eb|8WS{P3KTWhx2lsPZ@X~GMUa9;oVCgK2%AU$eQ8y+{){%ivxZleTi`3ziT^N@3Exc^EHA_W*kz^> z1Au6;;Vmyq$1&x7%7tnyUvNNE%B7viI#h;+;66LKkz>iDP2FytSdS?HR*r(o-f9>s ziIwv8&x*($VHpk4+t7<-s2v7{`u9T!*sKQe${F0;3u@)gedc_i>{ zG0iob)2$Y~JlBetTx5nqIWo7YR&vv_R=Ror+BKV8Lsx%=PRBF=fJz)m_Dk9y%C#C) zCvZCQtdQp_!;|NI5`$FuJ@O9Tp5;jxBkg=8{?x~a61VJSF@sBM7GKGI(ufWB?jN;s~_h=iK& z!vFwkwMmElsfmh#srMJz`jQA)ZFSxM-6^T4h{P?-&|6GUQZOs5O*-gx?b`i#rT(SM z#x8rN|NQahraUz>9vK7mhNzG%9m(qI)0;Pc@cGYQcFn(V^=I6ly4{*U1+sw2_0$S=0&?&7Notx}ggacqIrT5e>kdjm z^nyCNi}H56Hy_|yjVOA+xkSYniD}^TYB%i72aq|&dug_6on(s2Xt9B&zH;c5Och5i zhG~L1?P`tnW)!ka=R&}^2hM=E+Y$gX0H}6DFOFuLw}^2sqZmIE04OIe2rX}MEU^uj zNE0ONg|xuvQl0%sIjHf+0N+3$zd*S~wq_Z6TjWPjg0j!5&?>d# zGX~H076lq58h*P?HNz>RCbPfB5pCriy9$MOo{I{F#!-aKQqhX#WO!Z@YmMt6d3|2( zhW?!!p4aRLL6ulwQUmqpaUq97m~eYPt(~8vzxiJ2WG`6=H!l5j{bWCdzAp<#+BMPO z4M(1;VK~=p9_`R{6u0D|tu0YFnZ~{sYaj>Qr#WmX$1_+wG`W};M;OJY7KUCNqaTWV zzL_C9>d85E1qU;GZMsVy-~$sb(l3`w0w^O(tL!_&7Lr{_W?(|-E13~{a4ZM6kk`)t z-Hj8&BD4!#-e7*-nTAcmbp@(xfe!>E+<*A?m*;P0@d({h zi`3=Oj+Kd}!pM9V`Xb}r7$P20S(p4w)K)?eQ0a68V<%Tuu)5Oe2!I-7w?4m;Bt%wUNCmMr&~G#$>A_R9$e`8@$p%$CZB%gQ}L^jU!&R$Wi&Vd zi~s3RvcB6M!hJ7_t6`{e8)lYT1>HNquzIdS;h}aw01))S8-f%C4;#v1q82tzK`8P4 zeh_51m(xzgh_{?cz4ay!U#$w|$N5q+KK^Xzp-jSzO*5_AyV&=D$pODdV}cXzuPrU1 zk9$7|o?MuPcbyq`%mJhY;vAT%O?=u%zJW3|4zhPx&<=~{E_f(>;gQ3Wf;U;%1wBV= z=kkT0enffO`Sp$5UTmx`FU#+dlz2M# zakKvWIWqUFHOhI@qa>W;1tK3)3%gzvyKK~vY>v>oeBBe@2a%hLZ~ML%$J@SN4a2Q^ zkobNjjuYQUm*B+rD{;gaB)*S6!pMy=23{O(1$8fuuusDMoaf7|-0?E;tAP=8yeJxb z8p}MxmYYXd8DZm}RK%M@+Pu!vEn{p*$*cj%aAC!eCo8nAkH7uh(`Tk@wJJOR3e>7_ zW;$iStJe53005ht&uTSZtPC%3*)=u2BTdxe(-yQ9?`6FlH?kdyL5g8kfs#?*X|vbc z?Deo9f8nvtdn@~VyrORBr%5Zm^ZlpqevOfIGMS2A5HD6HTLFaX&Z-an?%fA>?>?BD zn|k%tS0*PXe1GJ1ZF?K;-1+qG-A^^E(0<=}qiuP=l`+f8sL_~h`YEE*@r8CVDy%gR zZ6OA#a7q9G6Insl002vqrIFVcAEffeGkhf3n=JsXr?UcpU?A)>7HQ!xuZLId!8NI9 zRVe@r7X6{$g=ldE34Tc(WXh|n87^ww5be?jKCkGR#&e|_`}bcmLjIB!mM%2~c(|~e z<*-T}Aw;(Lph?+MBRl5@Eu3u_O+IckqD7}*(p++fx|M6vtOBye%qWmk+DSZT(O(?WphhMdeTS;4v7jl${C1nSI{*+j76%#QC3D_@ zBMB`{r2}fnADun{_`myiZ5A30u_N^T+}gy+ep!je%T6gYI`BwWheci#%{Fg6KOfx} zg2>mE0Yr@kO}1g>AzU$Rt>2xIQ1Ko;A%_N|GAWIOJmk0~q{c&g*oYoi-P%5d< zsw`M5v2gL?D*!MzH+A-G?S#!uczYW@{j|Ta(cjqUZ*FdV`sq`8A*K-x08CCQ(b_gQ zx3mrp5&)1UrL(^2_R2yBF=Fvv*AVG@q@st)(3_YlmXf8ey?aBj+Ci?eor7V;2|YS_n5z_C0{n z(eK{4{6nFBJy?Bv`3Qf3Oz2e$!{FwPqvVxfCy@g@Q_yaHXx!f&yBp*|20wFr7M&yT z;^@2`{gwtlqwiwdU9#x{pN3!}3-&As3{G`0xsrxa&?_t`SmA~l0K|>O%~t~00RZvr zBxgcAo8$oS?Da+1$)Dine1PRarX-;^R+gj1h9*q6b}PA=I&b?t;lAH#_k(&h>|z#K zG+8%UD=&)j^fp9tDl>}50KM8&|670WMNz_ie|s?X>iPLMK0AKq6nFp+pHwR2r%s)L z)FY9K_M}?NMRvJQu>qZx_6a1XXF|^fqpcY28sK>M=LgU@TWwpRy0Ac}epj-93V%q@J378j?3 zAdSUHUv--j&R7b}wLu-I+-6d#3+W7EkS$OEAY))@2eP4G+q_b0SgK|=yWs%lZ{ECr z?V2k+dwDuQfz-(4sj?^ANUa)O3;G4+!>)G|Lti{**Zne3^uSc{%N!F<06^SmtSv3| z-H{l;y>7Z*gHad@%Ti9=BxI}Ol@{7wLr+}|!)iD5JME+GHAkr*1ihdhHx`dWjvpk< zU3>t6tWywjPS-gDWCrQ(Symd2j{%%4XhwF5&72*7=XboNUmJg?`UzT_XY3akChJaBP81YNu`{C6q{U87X zL#jreB?2eCC^USan8-?3!`je;gI{o*Vk91mFo%>w78wU4SSB4$nGum|m6!w<(o;+F zO*CMM@p^ zvd>DNMDYZGfxN#$mOtA;r-|yG{!f8(~iIzrTEjl2vyBpco z&*DJ2h4#;Cf&RrX&i#5YG?;TfCiM$ZOhX+`%st3tG&Rglkxr(X7TUT{spz3@5%f^O;7eY#^9k4hV0&VP45u;Km5n%=8iUaV6+;<_QN9G)F4_DlR2{ot zco6Ee6e5oTeGK)zfYF|o-aIB*izV^nl*0)r@%_nP|HGZjzv#_gIP9?~WV1^zLf|8X ze3)sq0ARY+!o)vRKl>m603ZNKL_t*Kqt9l>><)9K|tzrV{#3h8l8u4mTb}1R9c2t^dx33{!lKz1Mb(tG@Q>M zvsaH68|XJK`?EBRXpDa5GCXI3;#v(1<0)b#1}7#kmr2*9oL6YO0RVvC={#9_6O0*~ zl~ZGfLX!u_`XzE}YL~#sw0U++QK400n0GnbaqX2#sq8A~saaMQ-LG8vO!w%}p?z-W|+0UM=65XTfZ8W{XGKa+A^=c_dm*+la81G`#jjWsu#qabWeg10+!&F1mZ z_d=%feX_K)%TPcsl@Bnb*;~z8H#}A{4gjdW`=?UtdrYV}<&R`>upq4fWT6^{#evfI z%W!~3S(7nusXd`oYfGc4f$t~WuZ7(~im3D8>ir;?ZnbcC3i9zd{UE>^EkEtcPEliV z<*NS8CD_BFnke{Y?L7#N{MHnc!z|G9IkOIFuGy@H-62D?VOss0UU+2^$`yAR0-+Sh zD+Tcai141}gHc?9>0SWv@XO1I&oxIx+nvmr2NRu^(eP_fEj65X-qi%Q*PJFWLys6Kenru0kGS|1 z_61GPy0L+9;ROpkZK_V{{>Vea@eQjxJuGvI1$-sn-jLC&S zSjXTPtoB!An<`}0V6DBfrH`gHgC86?+@dQQ@#M? zMF-^6y)Psuq!-0mzP=a$c+@fb6j0*xwWT+chW~JHxt%07mZpQC8l{73moBXn0YHX_ zkXg;7ly<=VN}PXFsDJn#U&*yMmxf+)Nrfuyyk{B)DwNnZw0@XU4g>)B?e=u*Hd8A{ zgR+Ghq*0)Z(%&@>h5KOorrv=ZgKnae4sz)Z9e$Cp!^+>As$JPx(^yEG0{zl-n56UQ zwuvY7>ohvh))VVP(jAjsiffc{4d<Ec<5<65|)j5ia-rZ1NO-s#}Bgv3JMG*z8ix4Z)a<6aP8 zVpuxnYPZ`9>L`1qL(<%cP$oK zzTcG38Cd#$WOmU)WVRr3s*nHx`VCiZzO`2M(PbIz7MYW9W_OLin^>#}5KJ|J*Jq-2 z{WD&51_1EtUwz|aOHgQi{Wr5Hld{k%Uj)GH(TP4xrozBjf@Qs9Q^&w^CQzVDP%g#B z`KY`o_B(CfZs$SR7}SWu#P4*nLK`rDU`E>2$hT1=i)n!VywXaH%^(0$y+;%ShylqZ zlUrh=aLeaj6!n5Ssx{2_7T;$tiiAkh70QF3h@zR>t?AZn07$q$Ua`f4KXQbLeB(xA zf3m;4BtF1i9PxJBZ+DKH%9qWYt-kxGYB1LJ#EgX&gYQ*p^<%sFu zeV0#`27M(rqmDtloyq&iDmDB!}AB@r_uFv6Cw+VvN;R zRv<%GLI5yU3qy&j=pA$k(#%;d|IFtvye?IQRea9-_(2}b~*8ecORqfewZ+3F+69zXfZ zj7dp1h{Gye_^WT+{o2>a*NV}C4Lnj{teinHgtg5yn<1^G->^k;_+t3q00030|Lk4O zj~vH!e^ z{Q)+ROMozdeex3VC5Tp+T)Z2=j$p7ywjj!!UYP=Sm(|paIK!Y3ROa+k~_ zI9pv^U0q#WUG;wNy?QTkBt4Dx`mqy!egFf52ZNnkQ}m0}uByc<C1pW{-%*&bB7%sI|MKyr@@fCaF>IspRUxtpb4Y?tD}yYL5hHShL%lQg}v z_ST)XxA3_>{q)i&pBOVjAkkvAlq(3IFmsgWsQOlXn-#!@y37T_mQioICrzmDJ!Y@Y zw@%kS(jYBwZ(Z2lK6O~=WM4Z2fM@>tAD;c{w~k)dF{#2H5oP^yd28DNOK0i{4nvbH z#jwVYyCFvgk+dD2SQN*0E4<)JbXSoT*KyqzWP-2&a7tg&@WIiM?(St zltW#4qlMeI#eo9A9#1{xWzE!IF}NG6!uhs>_i!_VJh`28F0rCplJd+xZDV+K7__cv zYD)yW&Vq!!I%Bv!cFMXV?-uFJk`@lZ6nUCFwgP5?bcqcb3D~c*1+ufb@V^xlH-+fmeh9IY#HIFPLLJj5PJmaB7CNX#iP`>j{Fh8P< z3Lv>zl)Y1FuFbu+$wKUGRHgs`?W%go4eRZd7r~^>LJI)0Z8)eF0`269cs$mJjz47E z0kZoN!U6#ITL%4|+n+pR0Fx~H=-Rc|MoyiG?d3H0oc3~qU%CNt!p|2@G2ix>*5IG= z8fLYBv8wVL8&s!F{s2>W7!S}KT^lq3z%b8Sbxmcm)R_nxz-oqnoMv?AxynT4IaiyQ zM8fN#((NI{Ae-lnydc3M|rM|8;>y{O;U68dvxklz7G8o;77+? zJQ@{NtO|I|TW0NCyI_IkblN572}S~V@6On9d)qS-TufJ6Jy z{45K-7%1+7VTFX%IROCno-u{LZB8N9%()1e9#G2xddh9_I;pwxlp8f=VZhou)x#`n zSC#b2Y3;*e3Fi;9OuOO44S@--wR9f2VO)Cf;qI)h?XAvXWp1CuMj>D2~>a0AVPguPS2{J`W8%!zDvkWvrzSXN(|zd;#SRHWil zOlso1$LVkkx0fb$&AVN+iV^^$mAqXIhI#IqK>I}JFsHvl`w$wwABO}0wCY;B{F$Y5 zgg!53>&6(VMOxR(Owug#AeVR|1RxIkfw@>;=u@O-0nGj~<-c*3?e=<;G&8YMA`?b% z**nwJ?DlplxoYQ{r+vqko7CKI!&i?Vb!ah_hRWbsk89HE?%m!h0Hpo0g}!q=TW_jY zALY4@b8~vN#52<~ue{#+M(&d(K zC4{AWymgO_Q{}Bw1=>Je2gb_~#4j%H%9b{Mq42`7p7bG{5LOM&A^BxOz;icm9vsLa zD(_~vCZ<_P7ko-)%8|%~5sH1>O1DqQ+S6^=U$?)B#pkkl_6&g4uU!)W;4WAbq!-9OSg%>O ztVDHz#IJJ1D_;f-K%`~4x7stq%T5R(aB>g=ha0oMP^&KvC(a=C5cuL0G+(Pwml!BV znxVR7Dja0+MW?f~zTUZUL*JRUf(8D&WxS-H#hj;!jv4yug`RlSfMM|Lrxhli@AtJ# zpw;IBAnW%N^H?(wE!F^rg9RwHYTm9YxeE?2H2o-IT^3x7;~CS*2odO8F}Vf_Tl1y$ zT+DtEU|k&g9p?Ek&qpgcFN&FwE%Op*k`i7oZ*O1N4p`lvAie(clc<$?#0A?CZZIaz zD9?9Sd#IhBW0P|v`Wotx(GVTsF;!E0cIn0h9dlZ~wIRXY#=c!}bOe1wP4&SWfAs7( z|K{8)ZycqPGfM42b@~0x_Fyo*=o3f7yz|N1Zv#wa&z?ZKu)TE*@r@lhw`9N!N8_)$ zR#!JH7ok&)#RHtJ%cLl(uCCWbL6~Xq7ei4m)1g4Q}KZL37MYhOD1WG;b#zp^P&JD+Eq19Ga|rE zO}yDG#fKT@xy!s7%#UtzIbfpZ7&Cmas-C-99)N_q1p4CWQ7&oaNTU9E0~h1-1SD>P3o%wTp=-85hsWW*JRB=^;(QVTBTV4QUhL{a_dGr`QVMMKD+y7 zFTZ`mD?4o(65ihi=nDk7Qm@gvfLorh>db<^Q#+EmDM2)x7Rqf`gO!a971K_NoS2+M z00= zTf0|2Ulw2ai}nY%;DcMb6SO9T#37Sc)kT2}S;EoUP=_mUcY{0{I`l`^s`;hOP3n>U z)Y3`JD?97!#f-({ovo-rY1FZ5`f_1augUe*?Os)W~g6&vT;nTv5 zo-SbC@m!;ljAqZq-h<6*l#(Hm!fs9?Oj>$lBl*W!>NN|Gno5UD=`e*C;jT?^Xt_^xwC^L?V-J68S89dtD z!jg}G5Evl}U8xBnFk}?I2XwtA-(b`PI+PtO=?WX%(*jyGU*6hA^c$)vxGD;-SSTah z_8^Y*Wezctp5KH%P@+XfKThk0mK2KO-f^1oqPzR%DjGErgAGQFH=a~#SJj2B?X-Ue zFu<|XBujZweD>Db<8H_i==ngNMxlCx-z3W>nKU?5QNisOC) z&-@vpg!9YqZ>C2c=Zvxtj4|bl*z-%Q3%Q)0(0rTR4kvXG>esAn4&OK%h0qg&-JS__ zd~~==N%N6@h0Kze8>hq}9!B_wO6zNIEMt~3N2dXR=!(_NnPJ0LezGB$B^j8)9+4J_ zz)y(LH#{GB2|+Kk)9#B7_Xl%NGLn*qI*qqbW}&?M8fBxgx5m%OXlLUz!^mgDl^j+m z_iM>&{T|wV^G!S9$R<=%?OW4&v~U(P)3QI2if#rBq*qP`39lt;vaaRY7dpY)0%(A7 zAxq+8;xYsPt(t3RJcrZrP168V=}h1%uVnD7?9ADl=L0rz00-2JQV`G+xZe3o$0~~r zW;X%$2zSsglAa9%lg1%l27rbZ!i>O6@4ffQ+uxyDUofv*3d`i}jd0B}TG7)^sCl!a zGjehK;bLk_Uky67hKJ8*zxmGF`HdTy68QmnHXuVFgplcfw@j=N0_^e<$AXH4jKCK` zFSC#^zBqYOj}-iI4UFC|DqRR`o4ID_u)E=umPQ>WZf-xd#jO! z>~I*^@Q9&(iJIwTPL5o?DFnATEEfhVhzn$a52P6ZzJ8g@o0~#d_`pS%LInGP@bvmB zq6!OXy&T*d0=*vMjn2iE2NeBaQg|YhMk_!uFc=sNyeMqNxb6m{|2z(BPvInjd=$-m z@Lc-fxs)k`yL+#8Y1;tc!K>XMuRGVyOzr+U2JprhEk=31MVvfN(K|Xgk-gE#997?F zNI%MRjCn~M%Sjqa|0CK0E5*ujXZT`O4L$3#pm1ugS3^~ryS>#*o150)_Gc^ScA;LP z`d@1^ClE|bE+g$_B;}3#Kuf%=(6a~f1WgJ6Shzh{xIGwk@|g82-Kt{aUJH;%G{C{a zP11^aw-X=Y5;~WDwzjsoQ?)p!U^jqfV-PKNi_oz%rIIZZT2$vx?@SIQq0;yO3gjjJ z!#f*w=Aw2rXz@Djm&mu-CxxG4c0SG3Wto-F0;Nc*85=i{i+Dlu9J2Qu#4F^l@P6xV zmlwrwC07Bsw9FmUultf_pLbfV@vKE36Fto;UpN_S=f_F+<}3cCk9WUvQ!EZ2o=j^_ z3*pR$zi8Ex)I2TuDDUuYA>rQrLROGY{?qZ&#I$ z9Gh?+#onPQYt+fBtLsmvzbgP}SA%@xMj)2YVaW)pQLyc-^#CSHrdp?LGFD;8uj(36 zN~@MFrW~jeh^bfIAYQXpL%GUMvUKpR^{KqnTugRkXBuKruo*#N=LmW^xL`P-T2Qvo z?!I50RwW(YR4RlMUN3EJ9T@&zajv#vjJzj{_X)y)5bm{I-I~(iT;?%bQ7+4{m5PP5 zcttS64xU$Ea}1PsqKK4ut2bmZtpgv($-5BW|#IfpDoq{bjMP6g^NN^{Q`XlrQ(0w5{geHV2Oqr4;i=xCpWVOB<9NiE6( z6?o>-<|baaSXJXJMUfTgeI0ba$Fzo10g5Ne#+3I$V(>Wr?K$5PeFuSJkvi}!f?h5E zrl2<@&M{_J>agh^r=QTfRaTa#QBSqMbkcX2WT}p2b<+2Gq%<=CUK~FB+J6n6AGfC$ zJ&QE$^Bi^Z-QMb>)O@NSc;4Zo8h{$H77d9binuY0}hOTM342(PiNg z@tUjlg!56ydg@0>%~N#NFE6X*?^y2&!f_|cfN4A|a1|HE227H@jM)ENyLx z1H$x~)52v-s93^&h!En{2?zRWCc{3ostRzkEKc?iI9v(0v`c!>Lvl}I zZ(8geuVGN>%Tr#`OEjf7Lvb`nKYVoU+QTqja6hG1UE{PrPSd2W7YEf??N>s4p41!z zz&e@O7fD@%5Hj$XC+%quDjg9s;hYx*I$&R{D)hDP%5&}QlA$ph7|2dPFAS=st?j*D zFLs$TUp0eX57`Ji)1Y69ij|-z`~f=Ni>C^7d{TBT!hfN>Ta43GhJz--0b+PcKb2f9 ztT~6wJ^s8NtH|zjGb{Q#d@Qid7>I;1KpTu!Us-Z%M}<3%9igl#Q~EtL(%V(Lz<1WK zIwh@(1%QgMx>yZ{d1tX2jHUmZH0$?OD8E|sK+=0{&9P4t&VflQL4?I>C>!jHiVNLq zEnd?o%z=k-d(cbJL+^LE(%J2;@@`i@pdvZ4$tEI@qGUOeoSj8y5(6jPM6r6@ZFxL2 z$YaJaZr%06Y~?Sbx0yKsE~&nCAoYUTADIhVJAH2sxVd?bDlm zKlU|+Gn&R}IyQ03QeF_|c?Gj`0Dznt6_Zq`hhoD<2&h7~R9f(wmgOkVh00WCt-_ogg9j~8TY|^qR;xAE+k@}lUj%?wYkdCv1P{@0S{FN(jl^l$ z&&u*_m^v@*pG2*7(d9)^KiPh68#TZ$-u|NdtKr4F0+{%RK_0I+cHp(Q(x z0U^z|V$lSh#+ZU7_v;mKghZ$pV@x4vr1jrT>P+m94mN03tDHN}# zIYN_=&9>CZ%viuS@#j|; zp}^(3d{6}v)5bSb1DXwGM*5}ko|8<5t*VQzE@_OzLsnGr3gu|Y`sGXieqHCpNhrCY z71#p(iGW%!5RzzBAO09mpLN~hbzKzNXcqvIx@OuYH_awlmejTK37U=aj*<&A08qih zDa@95#DD5p@5tcW-q5^mrVc$s}GHQLe|#=<`O&0JEBsHh!|1LnUDnBT|}rZ zx^=f0cJfJ@sXMyYHtZjsWi4!s0~A2HvGPGJztgG*&!rF09RiA-R?K`IOPu5U@_X+u z3@QQ89#jj1N_Q)OSOLGgh1dH6gYqSuYm7b2^KfSb@$-y?8MCtB~XS zA|$-_-5xa1=bu0O?6aR^0stO7Xq`VVHydlDtugk(2Oqusv;PoxN1xw+wsmaO4U7({fht- zhXo|ep)A8_BweBKCs4cwS{Y$uCKj2cXfE@T)-^1AfGDB}v0K(lanFS~wAt+Eox%~0 zIH3M@B_IvtjXIqf$QOcvV4j?y0nZxUmR-d1-(8>5vA(+h%3C z)8x3KQQiH9K64o)HP_;XP_}At5tJg&>~aoqH^TX z;#_+1q^m1~w7dx*e*u_ESOO4Ber3IGW}UJpqK785Mc^mSu0uaJcr8xo>VZN=oNkizmD71|Sh6e}~R?%fq95v3;(d7<0c24f| zW!3uClb3=~=nEQpA-|#%qr8J!3n>_tjS@oWl>FtW@#ytt zFa&KP)J`mKZD(bfm8A&@6ABxKd+-1NU9XL^O!HNmw8leUjv(AphS=Urh<1YEavL(T zwQ@AKIv45QLqd~t{a()Bt_}_)KdFLnNYiuxgM_WEwwhQVO?LLFXH(F|u&^#tvY(vP z7=6c@Ri%0Q$8DTdlXK$!Yh4!7qcjLFni>_ksaGJzxjOj~^cVs37^k**Y@gN~5PEyb8bDUnDyLS_` ze2>Aodwc<8q~8U9?AR$h`sD4m{q04~#MI7KM+kodG18ij8F)x&pcA?9A9)dU06FKg_^{Irx5q1 zW&gs~mT?;p+MfduOpDMZp3g>AO#eA;pkkDFc+oxF9#_Yx57}ju1K}Z#>`R~DS?m84 z0075pmdQk2gJZ{tu5>sDoM)@b6h^|s+I58M(iPxKko^MSibC7~0Kk_30J41mfKOfq z09f9Gk6(s`XY;z~?)FyqmtcPxmiAzO*{W}E36}Te@5fgF0G9UQ))jc;7x44fVQF6; zo=N(?{M-F-*!|V;iTCi_Ox4x(nWw}jmR|Y650Bs5)0v`Sp6{%$pYSkXj9IuBAbi+N z#E41gLqXP_LnGm|?B^RBhq&_4HK_TPDj z9?mXb@KwIkn8R?6zO$dUK{)OHSYZggCBKY&-{ReWp30q0>wKE&y{wtuvuj^qVU_?! zck@Hn23i^zmL>+c2wW68^k<$K-*q#W>=9o%u{NV(dqlnqHm9V}K=UdTrO|tBxYuBt690|0!6vBq0@vK_`J;lmz{G~qQ zIJKIqRZ|-}OZzC$4e4XU)ixSVPbaTJmX_s(?d|qpU{)k&acDR+Y=)a}X^Vrt9KGGz zkCAqJt9!lPBM548>HeK>e)!XqtG}ha@?;sLY1BOrBIi6e1vrO(A9_8Yp95m-JeM$A z`OBHTJ*be@YH38&Rsn^seO!&F_#S*h5V%+Zwr>(*2@aM30G`>0hgaa-EjU;LacC|0 z_o4gY@WtC-U|iqRMUU`X;YG36>&+|LJmoa6ye;eZPsG>pnWABylb{#JOpIyV8`k}* zV!HVBI)$~;m>e4thv9LI7OP6S{d~lvt$s}aWT3X6`YgFZr;c&HU|)3dgxA0M&fAkL zYt=Pw;cL}=ac2j#N{}%CSgg?F8p8y-6lvAm3W`DaNDM^=AX;^;wcm=X4nCT2j;E8$ zG{-@(%X7Oxc+{bv!yG+4gZ*7o+M_VvPyGWqV3@M=4)mQx2}}=?n*Z((e%R2ssYIYl zV~;n;A!busGW%zSD`FBd7u-(L?4xVn^G=1+!TIG7+TEF#uz=mi3^@%0z&(qU)ch5H zBt#*uCtZqwUf0glWclcWdHHmnVB{qE7Ssb-@;W2Jn-3LFGCdNkWos%;H4|2+gkQ`~ zMMnP`g0qP~FwlU$e9LB1E_(F1mYq zdU|Ghy6aa}U6ldAw8(Kk8#i8R?sNzm>B!7WHujqmbcZ5#)N8HbBbfc{>Fnj9u9y+^~{jgU)`(S-q6!Svg zOQ*axq|qte&dmGj_d8O;aHx^+aJILc_|E1$w}`qdNv(Znbrk^a@S2Fs>l)#-?xB>t zs{>Z~KcxHxbA%h(6GrLSU|o5DRfHlX_Et@}4`-3NeTcXa<>ezSORf(Q?9 z4k7f_o9Zv?AU|))>iX{Xc0L-x)qMs40DFVMv-S1!XxTttU-9d1KotQ7rgUB);h;r@Kd5|i5 zo0Mke?%-)h_~X%kB0$&senRxi=p~(L#Cz>WMX|RwSl$^1X9#fM zgx3_<7ZE-dFj77f^v(bZUpV4mV@JnE)1g(6`w!H@TIIpr01VS43_ym|4C!2ZDgXSF zZ88Vo*O?PnCJ!}Wz!*-9!%_gq{`bQl(U5I5do_*bB-Ux2iA(MreoB^jO%pV3RbdDm_vQW&olD)F~$pD#^{;`#deG|y?x zyD&cYQt{KBs)C&z*o{TKo0m{Uj3}C`olo8P5x~8~A%etUcHB`AJO~W@fVm>X6A#NW zlkz+FZ%)4d{>tVS08H<_OZqz}KVs9{bG4P{1Ts7)eRk^u! zb$9$4svbQ)kGkk~TJswsVTVnhW$b5HPX;qoY~>Yvt!68)Wgs$Hul(ZY-7lZQ zf`Et?BF?1qT(Yy#8{+I2DSlnp!q6{2kB)@$YIng+caEbZ_74O=-S2<%PH!Q29b9|w z^s)u#9g}WYKg6tDOp8JYb+lx`hS?Ub_Lo`)CLomQAMo^2%{GVM`^iuK@~1x~!}3X9 zbZR-t^A1~v!0w020k`vwD~tpSWO~)(mpNC1OX_t6nK0bvcaiI_D;xOT{5-Ja;PQDJrvY->&|E%+z3ODPW;r=rhZA zM;H#b#Srq_b15a`Xhr<<@f;mDR-RFaN4&fWJSXoB)|PjMK6(#Z@MlVYOw-&X{6Bt^ z7VbK~%(gU=puBY^&+#oK8ZmHq3jR^I{(a}#SF(Ea$lFA40(0n4P41RQvq_5*ufeR% zMy8p@%n5wk(yT>)hk;DmuN(!vCM|*zpO{(}vRW=y)$N_3wk*=CtJ{!U&dYcm|M~_A z)0i^B3>3j&z(Hpi6N`x5R)jJO{;9!m!+CpywYtA*aqkJ6IXOMQac6d=bEb}zFdD(` z?zzSz_cj-`2B|q z3%p;L2(fP5OuZQl$I{fYBR6;3QS)+{t|r#wtz%Hn)!b%McItg#>q{4&LL@AnHz%OaC94$33r#~H(JSMAx+@yjX7k~bWS)r+vP02q|Zg~6tV zHy^kWTmb-z(e9phu!j}d=?SL2*;+MK$Z6JS7iMO2LZ*4vwq7GaVe}e;SElSFFTPxV zh(U2Z&3tM|hc!%6_c#t>!(Xrg-gQVc>YlF_hM-BXLN;b!gA0(voySvDpo5|Kxvmx~GV!(6Yl*K7Jnj^@Sn?M7D!HSJ3S`f@&^K7{2CCuzqNa)#H z_WOp#KNoO&`KeP?FdDV7bAIE=II)1c%ilS{>Do(vo&$hfU4=m5jD_b)$fKbDKwys6 zoH{K2YR5POB+UZ=bgK%@Tr(-VW8bqS)qLY!VQE*-S9`}V08ESG^No#*dEH8fi+6rG zup!Qj1joX)Wjg^>rl6(?2GK&ezxdh5-KQ1yg+=RWeW6I+Uw4R`a!zT^CQ^n%3AV>* zs^D<)qL}{U-#$EEDy|WhiD6f!xeZaVPYtHgK}j6q24=c#7IX)kTf}KhnnS3-(6~|x zirvr5g_D7OslHdlp#gie!qoLaAc69?zTSsx*8t$gAD#lhTVL;sYu9f5_A>y01)&q* zwqTM=zx^zJSvLg$@bj(st+@9wF@DRx*x10OM?0`BicT#NY-hE^E8!f{scSSur$Q7T zVAe(>Gc5oMQAT};jq>oTi1$B=_1t^&vph@XyS>JUtm+0JcC$zr(}EicOT( zlaO#qT+r*Ne-plY!Fvk)g&1s$#k5Hir+s1Uumxye=7dx1X#xP?&;IR`Z*JuEgT5y? z^C${UXVq!nnuAEa0g$mvitywH&>JAq`P>+=gfrUMukZ?k?#+B8cHy}`u8^6-Xwmj$ ze`aPw!ymMfmS^-KI?hbqEfiYn7H}0z(qcqzCPfe$6uXbcEz#4wI4sK-YbWq?c3yO2 z^7U)EZU=Giw@~G~bk+@Gc&E!VBu-3ZVrR4S+*7yGvqXFMwl39U)5f`>ncutCoko-m7;?0N7tD==U2@@^jKg0g+egsr@~|9oo~P;Ol}3u0b)t zt>hOwpJ`pUTpU*iI;e~mQq#8ZZZ$^JbTZD$q?{}j0BV{S-SL?A@hNgw!&Nv+2SYLg z#%^Hb&(dS>S;DX11{#HxLqQ%1_?Q6ER;KBo;S->O;IjT`#M8fge|=?Zi@NL~UNj;lMzQ8?i!@{AAq<2dGlC3s{8$x>iv{DujRVdV!&w3 zgz1bQX!JN0`j7$E3(d$L|04!hO3TUD01aKxU@i4N>-{MP8W2+G|| ztLc^IXlKPV89UVM$P0KQ2MjYbxxq`Gi*20uRN(h2@pE=RKZrtOI`@LyXH&vr;;kd`UTUB*` zHEqrZ)4aGn9Cq2haWrUOoKsY!5_8`<0Lk;B!?LU%Kfd6LGWD-skx3g2xJYY-ZOG?Y zO$$U=82>7ij1~H8NIn|nP2<_Mku!f%X#fXw^743@4_OlTrdP_yQKy)1Q*zp$F=p{F znukPn8eU<#PMpIFv2oCXNVl1M-;L~(e~j-G0v^lj?qpD2@LjD??7K+|!h+WMgk1PfUbtnW5T-K@pwVX!?L_Su9gk(Q>-PWV4CNcp5}!zFf5aDn&*0Vw*mzUHR{+J z08FenI1jLK{2pRcB9%nb$}Mk@F@;lvSE4ceSMTAT{rLo*5*<-x($+ldLI41C9uLzSGyFlW(AN9f!-qq294`YP!hJg@p9V{C2A<;&hD>&h`yRrtbHvM~@C> zZU5#wv1te`j>m|@y_(ZJM{UDlS>}yWr|x)s*z2L%fqc2~%UvYlqd2F=kE^wDYk*LM5t-NC5 z2#txawWx{{t)hhPLH1Vh90#letdBAMhrbW?_a#G~D2^<8}tE+TRxXO4OHtrag z{Z#-K42|vLNMmKmPdhjUNV=F&Pz2M>p8Er_?#-`3L}j41K*~xoS=* zI4Dcxw5EA6$#YP!AnR$KUuR|y6STfiFv)W?v_N^!w8%|`VwxA-aW%>FNl|1{;zKi!eK0CD9R1CYt7X_4sj1 zGkAige496#d`DX#YjDpj{PfgiP(R$R%#m|PO77K$)sdN$hh+~FSXlS_F9vI-*`&7o zWJHdyVlWsCPfV5RB;G>UrdQx|uB<#L3d*>~Z?US%t*zu5#o1}!EsCuWha<5LCNOSt zr3?>58;cxL%IYzYB5OQvMFGIG^@mi(9n3aNm;u}k%PsccubJtJLvEX!yAw<2AYo3a ztIs5kc)jxc(_Oz2n}WowF+-P|pIZ5E{QV06fY1*LRh||FE((Z>5#x|w&%?5$ zx_^A{J$*<)x2g`x68)0crAmPYK>%3Cz#rXrG$~(@#+yk?@kT(gxhw0=5Oz+5sB*JTlkTdj03hQi7wnD4#4`%6k1I?sysWRg zF34`a9ATQte&ANhS((=|_yHBL3`s{P7M8UVD7i6A$zj<$?3H*FBbVSH6DAT2wT903 zQNInK$ob90=qPvxoDq|P$Go%QQsv!>o`C&%xS1jFFRe_6T)7&h4_3+-gTVzj9J>6Z zeLD|_ZxXZKql*ZKYNnmszMCnpqj)PXjCEKhRk-kR?oo3rpXaXH=eCwqIfMXEXUg|Ue+<588VRt|J2oo%-qg0}-a{i$>09@><1TOt?NjKy$c4VX zNQgS#C=QNP;2=3uJ^;3BQzQ`vn6kejC{ZCK_Fx-!FETJGE9~S_IC@WLduxsv zCj!54qD_p!vnclPW%=xb56o_g6V9P;2ED1!_rz2^dQ`VpzP-_7CzJK^a3>#)UW;Mv zWqY>MBCj4jKJ0z#{hyr)Wm4XI@+9;e4n}EAzf>oeBl-==m#`rEB^V3u{D0TkkSizxBoVn5u%8a!Ihi0_-yv z?gm%^Oy>vyF`aQZ3c_S03oaISI-DFIc6^262B*aFIHe(4q&-rfx;^wTTFB_nc&{xs zJBSw5PC_*5gs>5J4|`?4J2H_z?KiK4NR=6J3{eE{`p?y1gApr$+p=nV}^E~Q9ArL$z)xYeh zA^>;hi)e#AW{3`Z_(kL=!F7Z7a$$?dN#rQBmM) z!wc1oJ_ce!h)4%g1DZ22=t?K6g0qdxP|8YWEQBfUM`c`+EE&2zV^uA?1@a^kgQ zvPRE00KPZcH;g(}1v@+6UI$laPR~C0U|y~7Lg%90l3f_x-Z``FzHa~>l;!6e8vvIM zmcJJ2)bhIt^m}GRAuNo!uuz&SW_}z5)&OI8wjj0S6dBCx;|c(-gZ>o&04PhXa%SDv zg!@_*!S6o&aQCAhqf~dXsX0jn7!RRH>f16&a1dzFw z0X{wu)`c7j2{+krSIOIE8ZInzda4gSfB5idsfe|x+$?y79#RcEVUGpcV2Gh&o{g4x zt)?#+ZWK2hpIh!`g;H>RJU&*IUz~w~JpgPH2x5c+v$@&a3>*C5Dv3QEDtq*d|8;vC zz4ORDhgB6HSw04~95cW~`)7*0bdTlZ)&U8R?$J>co}Q$b)%uyu?`>3+b-#aSdmB8} zE{gqFyiW%nJH(!(Bc0N%VT$7N0N4xZv`z?nb=_1T$Y8;oAi%TDs5qVrZs_`Wyznw2 zc|0Wv;fbhP;vGAtPbm=Ll2ZV%;WkQevH{(F@`T)l`qVswvrk-TLv(rA!>D6Ae1?W^ z!g?ps->Cqs074m9mjh~miM&~?g>=K|8VZBVTJHU##D;cIJ3+L=fZE}+m=;C7+CS`- zo+7Iy@|@ZKVBt~G#@n1897`Uehd;>+Q2O^k@1`yR6s)XxHF@^#_I5rRfdXx<$Je9K zq}-*c*?8bMj5QnN(CI71xB~{8k?+Al&x5!aw*>mv?mfN`>PQJy^(_r+bRKk2mV1N2 z99mySufBeM^Va<{@6zj~?zk$qHqRH{Tr8bt{hAi}^Y!(pZ^o-h#b|_4E6!aMpe=uu z(U1TL9Z1pWhS}yf1I7d``%zUL#P}aax$5khaa8{K#)f7T@&W*?Ul|2BY=nR& zHV1%BKJmr0p@b4>BHpd4BMh?I>n$29J`9vf)i8nh95?ATAqnlXUEw--Q1&t@ZP@VO znH-e8{Ra;i>=H>%MN8A!1GY&Odr$UCX;y);W`T`#yIq0NN-BndBW;El{?@N{R1^S5 zFO|A)5^$)PuTKDcB>X`u20Y#O>pbO12U<|%Q&M2XA?_jSf&iFkx5h5J9urK20*-WF zXK5WAqsV^r6luX?~h_N8+mCY?JXr2R8G*R&C!zn0w-b~Mk&8MFYRgWIud-BA0 z*db!csK-RRG)NF?u^NLwGh67?QaoknK24rW?=TAl7YU&ZFi{H6&ioDTQrW=*cJNuN z80Q4U^r-K}mAHBQw9&iHe7jL^TQh0ik)2p$RH_0ME)RF|(QdaI+e@=YXTwzk07bS6 znxgT?2O^~l<6ze47Fyg+yJ~z76`F!)wd_3qSEy^qbEqo73V9Ai0aDsuDh#PCVS8Ic z-?9Y$XEW&SmP?Ya_Ivc>}^epA{_+hj%X4 zE?5Lcz)3xU$_R+sen4HBzVy1fZc>nDZj-qB`_7)(v;Kojg zqQPiQKaEP)SG}GPu)nkfCdle5008(#^unv}Kj??I{r@i9Q~fz09w zo1f9#uRHecQay+^-hiVTur!2_c#;>_q4J-y&Whmb`~inJ-SIAK+W@Av_29JPg^s?B zZ!>1PXof^A40fhk#d;v3<3}+mjP9_m&>dIk10we5+y^noMg|7v5=fynFuqWlKf-bNfrNQA-O;bfGj8s>TzEY9M&dLuHRk=iBUr8xiR(tpzQY# z%W`jR;J2sOU7MXb>74$p&jh!jYYwjqVK?U8w3EsD?)G-RJ2LIrF~WGMNWbt~rN{ev zKLJnhqc=kT?)NY?psPJ(ElU^-Ca7m<4AeV^6$03tcp(Dvz`LwIoe+Cf zS>XNpAop3hxmxJlxC|5J=_#w_-RJZkB*KFiUjYnO2zP|p|U%d-Q$J8rrmr4tcu;mo>$3w!QF1H~Op5?XI zraaYVNKqxKS3=g#`w#m0XhcD<)zb<9;He`QE_R)r-VM)xhL{2Xj760II4H}Gc2Qn} zacR!&t$6)I9S_Eq_|4`y7`LDY#w%O687i%}v_+k|#vSY);&qU3_;Q_;qv}HlY@Y{7 zf56p_1TCc=wWmh#KAI@{ZR{=k8)g+8AH(snvkhCDcFe}WSout_uG>FTab~p?%5Auo zw^!LS5Ks!f{9s)>TTWu&L|Y65MgD?ieZ!Y&-m(ZTn8?kb)AB(4Ht&4$OHu+OdEb;i zB_WfU$&UqwL9NbuT{O+}FE%#rJ^2`Sz8Ip9$NOtvcntk2uf#pE=@BS^%zX#Ko^7Wy z?v7l5BSayYih{HfIKDn797Ip^d~a<{uJ*YkmCm$683u#hNr%g#TFgCEHC8vVLPx63 zn&u*hdB8w6Q3|gllQQ2OE$XE}-a%&5#spno(w9423YyNTa$H@7et**1 zz85#s^Ixq=*1H$ZQ5A-G8!y^HE-FObT+vN+QdHMBq?Bcu)pbWo%@yVOL0LX+lmc8e z%15KS+uN_l)79l6_NmwXRqi_BPn1bnZfzy^BV7okjHfIHAXL!?+PNv^q(e?II18Ze zuRj0l_h71kv1mL-u@IPbT>2U$ELa_2r=(D{rCIB59N#9k9wosrV;dayy+LS>LNsT2 zcAs*nXc6|HEpmh$P6Ivzn8|(2T&s0)T0r|KSHe&=9(oVC>0BzO1wg-SI-wt;QH(6`kL7#}#K(L)Ml*lpwxn z?1t=k4u^Uiv4zNvJr6$>0AR~4A0I2F6t{^`CWMuzu<^)nu!-AlOZ@bP6a8v)83H() zB|TW_BVd@^%(>Se_pnzYoR`Gvu)j<=0`9AHhB>dFU~^sk0su)pFm;t>m1$dmP5TtP zZg*VeqY>Yd7S+%;Q-g;8(qi3^aLl7&FNT+o!CL$ie2;9h48Ks8Yx_9Fe?I)XNU>== zwV<-G9RaaQ&5*m=*7t->^Y1=*3b{-5QYx`k8_+9#pfFv6x&(j zRu{?|aH|tkLMWI0Z%bGU_SZgui@48%PVq0DJG$<~x?G^HqN zc5@YSszF+(RyMb+5BzZ0#^$S;*|3=9((u_SN;KpG9Pf}{&JyuCHqt#YE%M)e_#q^y zz2$SN=Df@6`HZ*r7gYdI?Cv541`b@4vydw@aEEQ<;t+JhB>o=&0RR8&T~BWuM|OW@ z_E?rhf8yVp(68mA$*=G$ng zx|}VzPjr(!XHyyOCFOvRXDvB>euN)g+HrAZrAV~ou^IPd9j|5LfZ76Tsw>Piwpks5 zZ*A^kt>L29vx^-jO|=ndJ#ai96po2pO3eE$!JGUnGihPd+Vgt#0WG@67W5mHS@yK4 z*`7^JUfUskzcRvAJ4FLEhN)a#w&qIml0#O?Ca zwA9O7I&2)JO9k4Jw&|&Qk;|TcQSSDLYx-gtdOjXMolI7@dz+|VRrhxHu6h&=xnSnRxQ=_HPw;c?imbE9qy2O7-2A=WUEmg9U|HNVeF#KwsCh^Z0EOKqu<_~v zc(HA1*fn8QFMzH%L4JK_h^h_iNio2c~0kmi}H(F#4z+D)@pqBs~W zwn&2{KmZ&MicG0_F~C$YL~|ZI4(@)nq2FeUIT8Q>j>h8;_y4uIRL(`5 z3QyuV%$~0$aBD4#drAMK6hD3X-Elm6^B!P{ye9TTP2$Uj-Yc|kZ91XjlLsZb1_VQF zCj$HUNxGRbP?!YG)JQ4EH`pDt-g4DoGBpFKmE>K#os&WnCY0RZMj zaeS}9=vHoExPY-YXr&Qy;C7D- zqFH-D5(YcC3*N)J5W0+4EcOAG5=J8!kKb}@=YV=j!T$dH2M4e8rkpS5nML^kWCW+CN{LMD;8klJveXSMlbA1aqV7%iVfnnCxid_%b#f} zH{3`xgHg%)*q~fmc90mNez4&DA*o{|=Kx8m3!A7r^piXgI37-G$PdbXRRxP_j5;r5 zf%JI$2m=#Yhi>@npc%wq+CPE!H>^+GW)c5c<~fyFq*>c$G}zvY&SGbUZ6HWF*yT38 z(*=(#Fs(cXF?{CgV?6e>`P0BB_cBMLqiMZy|E;g8TcW89hm{;}r~P<-1F%g(R5Zns zXkJbeo&g=N2A3CeDdk38gC=%c8WzUoTi2rz3YzCdfyux%!19h!v#%I0oz)`3z-y6r zrhsSHe!~V@3A&dvezq`J2!nz_YXf8`5*EP|w_O!`yEYn@eUHV8>_kK=}-*te& z?G!8ov;d%=Jh;F4*`alLu=kpoC@t67KX zsfR;!Lk?JU@;zSVwl-j=kVsy)^vLJa?>51 zpS+b9v{l7|2)u=buo&3o2;o#u4G?P9vS*Wtem{5Um!nV+OrbB3#gPKt<`Ovc3(fM% zGdtu4B*0m;)N}RiJ)7aNv^AYECyh`ii)zk5ECvRL1Z>GEps<;DcL)p5pMVy_e}2I~ zf}TYUhl12;E`(TcR*PmSKzDf9A_afi&>1PmktfF=L4AB+kU+Hx4riQzm zh;zf*fZ3zxh{Zb|luL{}H8-=D#wl6@Y$ydLxEcU}REm6V!of#1+}pFehx?vRCSN}M zi{_-Y0_*fd1;pqoJTD4F;HI&v(H$dGb*9up=0@l&^YCZid-Nz%%4+I0k<}U!E}}A#Qn(KzwlL>%htO@oybYNq%@bHlgwPkF zXKYR;Xs#mxphlyk@pxVo?%4zuRspJvk!LFUR4j1oK;dm^?Y0ZzZF-J0yCNW>@Eb?H_h9*rm)7WpEcL1irc=10OfA=zmQq#^9=s(QPKQg~ z^)?soM>4lw(1!rf#2`8Mc{8QvgMkCvnD}&==hS5s+oOn+G2yc@X2HUE#PH6$`;}tv zOsNm|_w#e#kgF%($333s1-0an~lV*!iUjdsK z4U(mpmtuJw0#&uSh1UKP!`M=Nlz+oT)Dzigy&de{KpX6jeMN6)L&)4wT{!b<@F*qVAskBW?m@wTo<#^!vPODOJ{ zT7Oct8^(7ebm2xBF~%eZdw(LADBXBMDW$Euc);g_HsXT~Rb$mc<_OpOhgA%b@Td>| zWA@^c9k)s6YRh%Sf<-!7h`z?x5D!!JFZfrql=(V*u=fhG;)ynw|fPlKrdE#Sp?d|VV56#xL<@y19R zb89Lsv!U~X16R=+S&!uL8vlyOT6n})4!f#IJ}a?O=x9kTbpUVx+~e+q?@Z~GVao@8wXwi0HB7$Rwxof z;&5+NjtfEAsUlXwXQ6z=&kaY?Mdv9huUapeemzvT( zFsBCku%T)TLE`g7Qi6`-z=Q2uyB5r|l2!@C!Q0Zkm4~Mp{sUJw*zp4<#ZC2I7`eZ>2_0r<8*lg!j zm{-tq;p-eA|KoduFCRYq{%4G-iY0U~MTghE$7vV~W-lEq(obf#9bt>Q6kIVjHr9q#1%5zVg|4QgOq8USr zTs|M~9F50+T>j&G>!t#Jqv?vZzWRJ`%d4cLot^Wf^SQ2g=_uBuO=#P zcYszpn7Y1O^wOmE$=lt(vsyX!VwvZght(oCrsJD_;51Ci0+_5Nm*~_TU4@CbhT4Yt zpg?IdFsgFu2Fn(z7) z4$_%kJ1D1h=tV`w<``wFOb$4TW^=H&8%Rc|4Bz72Mlm7Wk84ay?O-?oZsTq)fC2>B z4BxvD0Pqxh^ftZx!4OV$Fg?Pvv<;lz|CY;QQIkJG6a3(XeBsyZL~OiN`V`yz5{dfO(M9jbI!E!8 z62^4_N3n~C5J103CwFoIaFXX(K2hrKzwKvV*S)%Sm!jc`EofT+E8=Ve3B(F6e7jsO z?jS?QLgt%QwUE-}9`mIx4rZgUAQnBNSlRlJON8#dS}ll@pM0FdyBB~mx4Dq{)5*lR zDTT(*fL|#3bqT%*-bF+bCQZ*|n`Udh>hnP%KqE920N)OZZ=u+p&F*|r%Ca=wzXR`o z;aQs5O}F;?BXbL#x2rKJL0}BNTz?@YfbgvBG#nR2zp9o}IzN7Qbqkpb$N|7>%2~+NchCb!|+`>}oq7-23v+ zehQ1zL^1`+EwBj!!vcgHWLqWpi(m?ruEf3cw*ih?M7)=#Dq>g3+I(Sbj_@j4KRG%s z>qOaWrxW$5tqUNJBXrNYQT%#f*lVVt9*xq*&y<*2pXF_lxp)(A<>jzYgstZ)6Qf`M zrY~;ir@>JzD3{m8ac6aUPPf%yf@XFJdpH%!oSjzBK*3yH3`w;BfLmWZIsKCu;-)}v z5+|>#lk7e-<3plzY4AEEpB47*G#FT;=q)x*S?2kRogGXQCG3ME5x=aPg$5zC)+Qr> z)+=>o;V7LT4|96;YK7CO513V30YL9S`G=Y<7n#}aN@2pmczfcz7 zWHw7{jkV14qwx-aoAuCBHO*xJs2?o~Ojm|$Wsf+n1JGqGysBV?Sv26F2WF2Ogghwo z^1v*>tGtN3cn#iPE4cPhar2`08h3VLj|X;LK~_Nn0NgGgWBGkBm7P{256l7p%!>hl z-cU8hk1;OzN;M8|PBsG?p|!T@owSDIqUb3lAD0_S^$)ALl-cqWE?E4v*_7mVm^yEq)Tsu2DpnoPerc=)2DjzmV6Yn^+LM}7KCOhiQI!WO8X=0OTXQ;ye#`w)vqe=R;~JQc^_2~)C0;oxZ~&&!MxzfC5K9F zT0%*2*!bPA4)O4JUc7u)0|4{@K;thlTGpUJZ#ISs`e?j!Toflu{q0BhzWylo=1+0C@!;AJos001BWNklCHf<7O zzf=IQ@v>P*Zn1|60D#AiUxkUXo2sp_l2(h$oR>7~~8 ziZw;8QL_jTbYtEC;Pe!Hn3ot>3giY7hj<*}M%>VozqmHB2F(AP28GOQZF?A`IRYv3 zroHo0ZM>`<*XIMb05pbpSZiQ|*a@)~{%dK<@9NyS2j*k9WZ}PWzQu$%y_5g$CzE1# zPrElxH=-#2OJblj-DORqjarx;a_XhzzG|+5m2br2728i|fmMrqCw>qgKYH}P4<8<% zUE*fQCE0dSLIdHl(*UpdLS=P**G19v5O0g%iu#k5-(!!G-y7|Xi7!K4IjlAZ8~0UbER-mS_IeL4SNORP4CjDr-A{%BHGd#$gOU6_$jXd z80Ea#YG;zkHY1b)Iu9AyP1svFMdRylRauz^;?`lcXuL>7YvZuqckFK}T}=c(fkHbuD03nU~6D$$@p2R_3*&}A=F0Qj-i zOiO#(KxC2ZCqa=Qu>~*Q+uMC|{{amJqfN9aT@T_WUR-{y3X?ope_gj3NL(}=jmK&Xjwz@2?Aek&XfW;lc+* zNPh6ct?!)M-uN8wLybnyCX?4FC+&qqUg=1PVKy(zUf}gYkuK!bRS)EvQn9yt{^VHa zB*!0e7zeo`i^v+>D;fYyaj$L4G$S2(XJj2r1pq*G|A8;4<++!3|59|7%Iey^Ik?$B zJfusZz1AkOnmOG1fwPg-oKrW-ufd9;SLq%6YKnWoe-`QT)5+wybwX)n>pJ0wg#B~a ztd(?xW19j2z3g5c90lBCZP7CZdt_M_yL-3?fP=n%DRH+M)X&QS>?r78pXrT^ACr}B zcsMFX@STo6Q8^zJUp{;o3_Wd15a06<)3QFg!DcF=)vC%=gO$@VY!Hcc_{~hI?|=4l zW$i;NWlnh8@;QWZ4m&XZ~|Ct$TGX z%Q8PGsi-(Ij`3eo4*sqfV+&aIMa`Po%NznNmz#QKQ3@jMwu~r+nNn&rRKpco%{QA` zIR0L(wq`R~mOVd|tE0{8u!-i1h5!28Yq3uBy6&*j-Iw=Nr8s|CVa0YYd4bbT;vbVbIAm1RdfdrI$| z8tUOFvKr8l3M9G&$C}v9-`|#?VR5_3Zi1V?|G@}A!*^C^TXFZH-Dx)1#Jt?rG0I4m zdjwazmQL=Bq0ur`Q}}{qj11bV>r5%Uo8Jxwn@>>tT`!w-9{k9Y`#LMfTF5>N^Ss*~ z#km7R^h*jlY8)RP*K4ie)C1Fe%K+m?Fj%v@m>$eY!ZZ48Z43X*n^J}Y=dZ#K+0)3C z?AszBP=aQvj^}d>VmS$jCN=ckWe@Qh(5QIPebjL!hnLm{z3KX7S0{J!7oUu`W-}4q zZxId$m?+2g+1beS7|$-Wkv9JuAd`~o_#a{L(%t%#gY^~;N83v2TWj~2zKY#l8_2_- zoAzZ-k^4%t55xFToa%jR-*G@uKDaShj;_w4L{(J**AZ* z0O1lxYm_b7eSVF|>e{6>B~#Zw2d9Vgk!^r-fk5qGoD7z3#lxM1FCC^%}KK zAN*Ou4{cYQUxHs85*8K-GsC14Bt*6XAkIJSkFS05__PY43IG6k zP!_wp)r0$d7m0_`U7D5&Au^@pLAgDhQ88g7mSV<8W;^&7(&0_zUPbEO?O-Ws(=^b0 z57AlDb=v>&CygBeb@5$Dd0Z4~I6A&pEMipi3g|K|Dlde#XVXm8n1=K$l)ZPM!?_A_ zTI(31NC~46jK^nI8dK_3)vu-eHE~Wu*K4$ea|u+Pj7FB_%5*79DL1Ri4R5n%-=tSa z&&NAQJL4POU5d75v*7!Ded#J5pc;*yB-Y3q0svVaY+Xx_@iiuk26!i6FN9an1~^(I z3_g=+JBjK*Lp_Sszdo2q4T?V`#Jw$0IUpCEE2Zx>9?c@I^co~j(1C(eYt5K(IdYLW zF&du$=#`{#)y5XKk1{24&;avdkST>}FG0gHms-Oz&vAdI>V=fZ$StH?%6vm9m#SlN zTbc#{TElTsWJ=*RVq*=kloE4)fDeNq@$61d_34R^Cli<9%{|}THv*cSUyhi&wxt-s zH-I~dcvHQL=ATPB4lZiAX(F^=0{{T>pqvkiCOCjMdo``JCrS+}*cD)4?8k%3p$3ni za~il8hd%2Rrs}|}hu<4AJOKd9Tt43!Z_Q@WUfY5@&O^VLCs)%5?w}1$vk$zHszS#dO8BlAIb0F{0G=n-)zYyTp#Hz)X5rVfc< zC*5oc+SPdIv_Zz+F49|U55iIK&J(Qd!(j8(Tgd$Br=McFTI)@c==iPV+cTxMXERxr z=Vi^`;2>DzF^oowi}Mm+6vYx?*+f+}0qzXqjZSn1L;c_7-}~UZKLS6_8OBTNA9|t1 zv4Ck*Hc8ZRl$@1Xt z{{B^u;(R2m{WBP4Z_JAz4=Ajx9HB18k<}!>2#};Bj(+>2Nh*qOj0RKG1^sfMT2Qzf zL*HmH9{P>7!Ry-+x7A~B@^Q)X%DVYOG<4Ckak00--`mDC(VOX4YJgjZhoC{eG@c+E zFO>$k1(j1;ybF}0vvz#oDK;7hH*of%zC9oSsWPXoN25%srOaI*v}G=rdH&T;?_&$B zU$}(c_E=1KgPrthMTFEEY`zxP()G{Ylx9mL_neg&jVj%CkV;dmtF;!wzGB*?u@#8T zw2+U>XOoH6n#y<5Q@v&Q1R08WlMGfgP`SnQy4~}fLiCggK)3Hh0NTU)r;|^8E}9#U zPHsds_PrD!w6=N+0_(7Xh*fdYYXFIwfBen`^#J+5bI7B^0(3d z0{{U3|Lk2+a~!#GZiutdQk;=>Daps7t)#B3UHd8JTUFjt=4;C0b0WV-Kfr${m*pSCdel%IbiUoB8v&akdxk?S;PReq#s!qxh1C92psjXm5@(`bk6Kzg^TBW=TUOMVetMcHW zMg4L`&vtk9U~o2Xq4$xpy1qRgZ>+Lud@b$a8B&XbD|GctoJ9jTPK_a6&#%!xhN+0) z>E7O}tvp08p{AUxeCWLiuI((c6;0r_o#*yPDXg11D~*2XrJFk(6Je1I0I01mCx&PZ z{WQ8PH=X1zh*5e*Il(12Tvl{K9x`-FD=-sKgK5OQ2z1ks7~4#!Tio9pzxfgX{)+VT zI>3w3{o{M=^JlBmOsPnYI7*0UvznrXISP>hU{;o!Rh8V=ZPUWD8mXrHRW&QO!F_7$ ztkyPyxBc=u%_5UjFnunrGerxj>vb|9|1g?N*Bi&0dJ&Iz0Ys60#e~R10Y3eqfo8

)w+NA9=(^v|9VQYk=1+7XQ)BI18Idcyj~wQgN$FMroJi78YP z6-ST$`bf#$fO3C-_UO^PgL_N9KVk`GC@5*hkO3q5WZW*11;~?=eWa~Q=qp}c(M^?^ zw1aVcq@BS-cicx`tIkCS2fRho9hjkFy{FgI7_YK zQt;YP+5!c95H={1F`1zG2;BPdJt07GJhV_CbkVE|e9M_f({YokVj~1>2U&a@8^$nK zPZGV;6EU5nMxQu7d$XEaxJX74Y6v~BPx|R4{34%D-s{BWqbhJXApi}WY?rWI(h4VKxqg65V}$5LDFvC^dWoT!jYH{9Z;_8Gm}%D?%z>`$kDcx{zs-vrEM zhP33#Agfscv6hJ`yhkH@4wWux>|+pttt(l*`}pzK45bn+ z^leLPrh-<>{%|xc0c~uBf^xg)odpmdMk_$%v*F-yl^zaeWjQN%oXYogdR;6P8oeKQ zI5~=5t@~AVdpz!~sE>LtrlcFa7h2ynY3U!W4G`cw8)EU@4*%NZKra7|3X%R z3V+zfItEs$?v~-$C?A-{iMLM=18WATrHuM!kR>w!0M*{!QUfB&I7h_2)ZZJdq3$QS?xCIsv+Y-r;p)N8+2l>_g1-b5x#UeTgf8MP4Wc zi=t3U)i(>g%C}IG2QpmUeu>{r#I$a{4S0QGQ?)wKe*SDf}u%=ywejPIbpy7ZSMOq4^(zFW-i z{_&@ueD-hh7RR82bVqg%Qp=8k-&iNy3=(MoVw*wV?DT2$JAoB_U={|D z?>_$gt4EIjfVc^i1K@X-0aVefQjk&MT=-^C>8YZB8o;(=A$~mUUUJ5ps7O_8HM4FHjPEMNL%hAG}SU;flcBWoXtX3Fq1c z=#pe23xK^=*c-;Mns}s#Lp>OH^kx>zxctxntgFdmr5q?PHJs=IOiuE z(?NmWs0WV7-zf^7{d96rjZitjh8iphlgIlLlC z^`*eKZ0#{lg2xybScIB))d@(c_!0zscZ1B94GF`_Z)-ISX<=T6GfAnH>|1#scr7sy9 zdgNrg1Oq7Qw)>yw&VS>&o7O%$JiId=qfhL4QS`L751=)w*Uo%S?%$sI4c?YNu$hTC zrCb@l$csf$yq(Z@XGk9%9==t#;Ys&Y5W`@gTX}(VM8fe7NKQf^Mf(%@X2bHanvo|G zdNI2HnkY8$%ZvH}7XsKJmS6&nIGHMhu@tYI)F(&8p;pS#jvxW_o3ODMR8yNvf%?X= zX5nzteM&T8@P-nkVRcbvSDRVL7{|D~&et`?w+QFI|*jSYR=xTZEX z($E*&O+vV9GXnax^I?pl9=aR9$kA`P^h9Ml<@+WV^YhWC z+taB^chRj9yfrpy2mry@!ge-|V)aith9?{Dt2mmRl%>^RFY?01FcZ}< z2#6)NZB3!O7WWOMVK_y+4^GW+xuw966hOb4esuWc`RG1sfXTx`U^Svx|9U}~hKcOx z=RXev*7b%R0LBP4V2A^EzzCww@-3J*<8;{Z_otP;!Sf=|bWPTQF=RnF=K)^3Yu^G4 z_cA%&o6|{I{%Lpj1WldSeoY{WZ%i|S4L5^+ESIT;lNX9!ISr;YtG*5M$x$(xg zx|C?)g30dnJ=5Su? z|Mpp_LxpkpqR4Uk40VTw8@$2q_Xh4$9cf+^xFH;IJ3W0>DkhWL7DC6BtZ?6@am96M|uigqy#}xFdHd5^jXP z%^z{bJ9K0K1b?y=+ur`=m^IS6uuOb}^9e)+r-Hj!f^bqhLgQxRTOajFqF(?+zsrUT zvJVs-r;1$i8eF^PaBQTi4G=f}ZBCG$HqW^zTGQg4wrN$?T-?KuEj}7JWJJXjvC}Rs z@|;JFWxZ$qgh&M`FN>9I_*aF50YuA2EVgin%^BWQ)G+=@rp23wt~BNQMZD9~7*XM! z2_EO)I(+hM_a`lHjOJGa-XgkuWIM06Zh|q#_kIWf^R1gM^WG9IPGsobUWbtl6>ej9 zH~A+=>hWz>*5_zws;=jGZoR0^%JL-mE5%K$6bu6yzVVVx<0r~64e&fK=6T`ch)P_> zG{P(=aTq`98@gWP`Npxf2K2_jhSn$BWq&%|&^1~+Z)iQw^Xt=Up6A)Ip8M#dK-|Oj z>e>cC4=7y-CkV}p;>BpBhr>k&_t~75vk+p)O(rYNr&IaFx_wJxV3b=&mzFvCt<;}Zx5wknx3~rIEzo&@ih4M#8n*9V5haU$FS-}<%bn>u*Q8fx zy5OB@9FeBm^lWFRKeh2u*js3k=eC0NB16BA;PJVQgF?}@lW5nC97#J_!GPs{l@eYOMySAv83jV)EPR<8#)QfQE~E+!_{{J_p1d<5OXj zg4s^#CsGJI3_S?Amt_J4&yjc{4XWkcWDBfm9rM#88Brq!rX44N#{RV z1AOm450cLLQukM-DkL+-StiP1FRM_%aSeD8Rx`=#IcVwqs{sg8ur8}MeZ9M%KekLJ zHi2<8Nj#1k6r2|5#Z4`WB4~j9*!<8V9Lv+DsSZxPcw+7Ie0pQcoSM_E{M#G3)B4`n zGOx|ck4y7i+mqsI-g9CbBZ_yyX!rl=S8p9`0Fc68T=x5 zAx3Etoq;BcBk?X+X)r4JU`J$(N-fH?-vzph>DH6OTZd0tL^5p`eS>q}QMydf_vZOu zVx0%@&UpOM>f3!kpta=b>xU2HEx1=CDAV=b$DhA3LVI_~c}k-owywczv$MJuczafs zU$5tf&wkp_mw3OLCXLxpp>3HD>!SR$D8Pq2vCda}b=|8qD0N!op@Ob$_zj|sA#Q4# z-U5{GNPwRR31e==vjP}B9RB6g5v1&&G2H}-i2?!jUCI~vGl+^TZa?I$t*`S)Th3bh z<+>Z4^{a}C50b1uP;4Cc1#z$YW5TiWJyjtjDTPsy%9XWm#I?y{Km$Xdw$Q9{V%8K& zDLl?1Hnax9Mqvrm0pMi2&5Nq%!4zWPP!f=^)TZJu0CH<91Y2642+yyKv~6TE3OicVUt;eeGb8yHB3^eDl3w=# z&L>C3(S+&>m?z9Ll+YXDJ1z%{s8z6o$A=Dq_oB!bg%eTmsL`%Y&-qr>Sgqr>z$k8b zqDttyf!@pGJHPyu4Y2N>Nuy{;gAWjpq$$r~cXvJ z`c+l#@4uON?t`L5k*{w`;J#u-?){|=0RWn1G&O%K##^miHph^(jtwOW0GY0x$8zri zjVLJ$5O8jcv98NAt?dRYL^&G{y64sftJQVeU0t-TKmKIb?*7HjaA~z<>>@B6V_-T= zJYCUqMLIrA<}_ulPD>c8B(idRR1^9QMDA6pw@%ANH)>*uF9y6Jp^^3;yHmp-q4t-V zrgaDwi~yJr`vuJy(3m#tK?Tp;DF9=4N=FUKoR(XlBK|Eb9@AiH-*CkQRF2Xse4k_6 zMp`Ir3@Q4hU>GxJ3h6%nF3jKgL+eMAXZfEJ-9O-_p2(%(_BLY{Q{YMcj#7BM%~1V-b9%R2TqZsYK32l zgyjWRBkj}8xS zJ$dp0s_6oCdt??x{%m)*zI==75>h^y+!>Fr&~F#29_(2&vz6$Kz?CD^0PxQ^au4V; zHrOT2w{m!G0Mx6k{MEgIJLBVY^MIVjrvM3FCCSMIp2EWBel`8%Uq1ta-t8CDrXBoN z?xUI2wT&qX-d{S-m{n*milV3W;%2ePi_NNh7GVuy@7^#P+6Ww}pSR76I)62BmkV<-@C}g6D=ZJ=k z$k?o=08nt7Go3QMLwC#cFK8PY?A1s39m?(4R4nv3?$rBP`?y+AO?2fRI!Z2eQw3W z2|H>o4T#Ajd0H=_9SwAQJl4Y@RbO>pV-9M@N_f2Q4GV*}(u{#2A%C&A7!SZugVInT zbkC2-Ks05}jW?GDQbQYh$~Qk6{_z@=2L~K^`JX5=JiST+l17-c4%W{fdu;LG1QNVw@DEx~fEhO)m1{ z`Tfz0(a0^h1iJuqJ3-h5O?;&+iaZWtQV$0*OH$e@&luK3v~_lZk8o8 zR=1f&0b09!n`T|9AhYM_dwfdKv%eJ z8Qp#SxL;LQ^VEf&K6vnE=y!c;VAhwg(!&0&o%3#1O(gBnO!5?@+vD-MY|s!avOr!h zjtxNn`7r=wFODrwX8&aXNO1V8>R>hsw8kxu>$BB9IY&)eNpi#6@QjzOmuGgJ# zd*-Bqw;MIB(;%*htC5Zo4vVu{rft=wdlKOXk-thKY}pg+fvmXboVdnnU2oDzyS5lt zDZzqL@Xg2N_1{;4PX;pkj89g4MVVkW?XA?k@vrPcB%%pLQA)){*4VE=swm+Jwl2fCg?oWP%c2I{e}OT zLjgq*_M4rl>eX@vjzvJIY~ej!NaHcoHB?n^Ja(l;0acaQ1y>XRFfU7N@NMdfzkkl{ zpDvbbfG@Lo>SY5?v$CxAE)1o-b5!o{pQAy+`$aa!!A19i*~P^Y`T*`IXWD_SYGC*R zyWbu90zjtq1zL(>-#s2-eN|ygWWX1Z7`=7Mo*&OidgJ-=1^@tL7I-TFfQ+9J<7#qo z`0CN4zx;SauN-rwn@_7*xuXQbR zmK$2zxTzEg16>DfNPJi^7*ga%C5oDInr?vcVZ&qUvd9HDzbcuqa6(R`>1AH5P(|#S za7CKxN=-ULs>eq5o`Ul~|M>pRFAnLFPVvUdgI@4QB%2trIthzH{jqGQ0S|{vHh&JQ z0bT?JG~pbh0y3s!PtB4n;g=<4DI9KK>&waUy}=3RKZS^)DS;G$QhMi-ywc z*kEV8el)QNu@3%rguyR=IQ;g%cKX#c{b{+iSqRO!phl2o>Ve zJI591yrXq}XFNu;rAxx&lDDKG=~RBmrMKjb#z9bPEYY%m>%s8({rh&?QnL`9w9{7S zohL-6^P+Ij8u4mT^r{Lb6F|qsM@MlBN$NGE9hD_$oj~$7AE_t;*v9%^#XTPmdln4j z`P_Cj&wqFRV7pZUHMu<=3#0e}y?8e$)4Du3xa{cn(yaA*IC!?6 z+voEm3YmbgDIFR8Cg|J1@GVEb0C4y5<4fzLz%(H`Ud#SzXX#YpKqcy?!JcFOXFKI= zb4x8=1EOMgLk&HA`Q2^x+5o`IkGFlMdbO1UxQ*ORw>x?J2yg3pJNY!O*HC zG)&OE6FAhO3}k~+vGZ%LlW>N%KhN{|R^dbjhD>I&^Z}QzO@zo<=-voYX~$>1|N@(j^NS}hAM63ASQMCQQ&Q4i03;-q z%2?6(nz(@KpS=d3U2Y}ZD?TeSBdA7Ke;Mh3W-t^-;$<#)Ue)65?e1O$I_gOMX;mIv zIehL)CuLdfNyg{`DP=wet>~BVnxv69ope*u9rs$g_2lsFEv<9@p0$IN6#w06jwlSS z?`)rjAjzn@acqL;J{2vchgcsXHXsGb=wV|R5dfI&><|$M2`dT!0N+NJz)q&}0RW!D z1Hu2tYnWnV@KHr*4gh3Y-}%+pb+X(6{%y5Qp6rx8A0Gt2(HQI_dFfRN=bXX}OZdDb zVa&PeKjJ$++bQ#j-~o-@2JeV*CL#G7&At(^1wBexWAO2 zSELTd018KvK(L0iWN4MdeBuD96)tZJVC&1t^-rfws;oDos2w((CbL{Opbn^50BU)H zM6hZlxSN8$p<~tFUb(;T41^;DEc$K${vQAU|Nrb=&2t>bb$?CHN(*v^A|27iSr?O1 z$~*EQRW1R^%@&wTav*a}=$x&}pW{Ek&NYFPN|h@GI>%&vOc~H2hgbtuIf*3FMd|e!ur#zbAh3lRYcTTY(&ztNvAw9f7z` zLh?+~^m6sDPu#|G$@kvu z2=kM=o@5z@)x>4DT`xk9gMTCWYoN3&^CwUIjR2whS`4#EvM5T_k^GQlO23R^B~4vcV%}^Y9m?2Q3n07#nV z{?3kah%gUgnO!05@r1ML1b>4GN3Y9rxYk#;^n1Um(z49Tat+Is>tkF!6P;b5;_!js z_1hm<82SpUe21G^UZoM7HpAk@)~1>9*IN!_4fh!3-SO*2VT z{6+6CS$W`y?azqN)$=&due9VH>F#KBdw>6`w>r`^ORGn#hWuSS*?hCF8wo7~7M|hk z;!1GWr?fn{9`}8<0weGyk_6B(pQ1%HM;Ex#fMLUOkcF_$6zmjb7z!P>aq5g+X=!zU z7A+rZz%)(cIxUWY8*w=EOYwp)wkZi_HRG6pWE&UyJPqS zU~$m8ECs}M)W%d&m9cqsssE_DqC-q?K*n)TgI7weCl=ZkT8GCHtm&3pYv##Xn&;7O z;Q;6nSYo59lBRKdh%ACyqhrCYM8r?ALSAKDTp24vnTUQvcFuELUd0a0l{)h@yY<=Q z@4fe zu-GEYzAI^MxVOG<_C45#9os~Nmq|Do4C>*qDT)dEFu41Blh-z6!SR9?yrj#==G|rf z$3Vqi_09>?^>%kJHS|3{LN;iSqvH46Zj1Li$#XU2Buvr_NBCs8QZp(WGT>t0YwDzK z#(AzBx75ufGwN$3#LQ?A-ao7``WNV!+gPTr)ZNXA7S>WY?knF{?UX;+H38eMr~_3G zA6?8rMe9C={iI!p818`=bFN~Ez((IyC}E+G!p&a8O)ea*g6dyvZm!bv4znkOf&j?x z3LzY;X<~yy46dzfhzrwUO`~N|!kb>NYZnHD8p9Y{CmfEgHj!3Yiyd}@Fl&z8t4EqL z){Xpw?4T3?y@MJ6HlPB4-phJJR#@Gw1EbkCjr=(9bm6<$L<;R+{@q8IKy`Og*Y+ky zDJ3LLjknY>I3*nd0LJuYTeoVxg}WxxXrBlP``{bf?x7}qoqi31Ua(MJ>NJpc{Zvc+ zN0(vcyOJt)Bx$w}6p+&Tq8<3!f_r(* z?L=j!*{#nW|Ly&q9arOMimJcKY$kYK5c+~fvpPXJPMU*ZEA6+H`Y0<8(t}cYw{n)o z`H!rMF)@+8DAHeRnIxS`m~V6KE>2HKIF%_WkMb+0D`8V1mwK^!!#A#rqA3d0uyv5r z1iIf@T08-&bZRF1rEr77_vJaVz09j#*SI^&(Ho%kJx@BFzM5v~i_Ia=5&@U{pPPc=30YGv>kKfqY1#%by{P$#AeIPF zI6~kq5K;tewz!qrORRZZwWy%^=4AKYffhvoiksrv9pUCk0Ncl^t5))=3}b2kLPAzt zfdj4E;bO?qzUHl$4FJG3apTud>)~+rPWBZ50DSdM_LV0(p?il!X2CaWm7~qusEbC| zX#J`}aSVDs1AwHdPty#9T1hvm3It5k6ce11y6#sM!u4sEqD%QnmI7k+Ic6_`7tgaO zZ6~yXuzq=G|6|*mrVY?-ycX&lb=ABw(P+bt){4GdewMp>4n97=sc-0^#ir(RAzUPa zheA-;Xz&vNFwO_hwjbObjVz6$*RDiL_kn%+tL|LEO<#gY7((yBc?PMZIL)2CJ>%WV znl&8#qg$a*OoS1TGk2GUcAO-gFWgKY`ps#->3ZJLf0*>hg6ig}<6~x;rD*M}*!0d5 zIv;1j$%4jf2=sEAe@owF+WTxmHLq-F9iv`d!)SB`eHWt7|MJhj_=}HTcPlOvDTf8| zoy`1HqSoC8H1zX9ASy*~2kRogXiuV?{WMLHi^T;yJveBFL+%|7{i65k8ZkEQ5F%5k@oG{x8&?6P7o_o-Nmw|C z8l;f&$2#Ry6*+Vz_>0oqYaKpnax*29CBw;bU}F`xDW;_55&*45VERU2OeFyEP!_x2 zcC!wuNFOT2>thzAl7nF%2?78>R+ddMbSn!8$c%_2+(a3G-Uv}9X$H(w8n+|E8;#9P zO`;yYkLefwvwFT`O)Ko-*FUTz0PfquNS_FjO)))Aa0ToiR^vSHSCt2V(daBq>gJuj zkB^7%YZ<+abd(wSF-uqXXMf-7DhqB|8sI=*=)U9K<9s-R2E3F)aAl|n=r{(k@PkgtXe z3_^I~=tx~*FNbq1@O zd@2yIdGn@5|Q;_iF>*WHrKLP=fU9gWh1 zgV$q$7onuCQ;jV#kp_LV#Pd7SI3G;26fMRlX@=<-1C379Fp-w!IL~qGIBwF`TeVBa zx!Nktdz0wJ)>b_%UW++KN3^*pwSO@|m7sqrrg;Jsvi$RpuP4H0D^)C6DOUqYubs~3 zt(@ff+AT_iyYY|wzPg+=senj060@9layl9jto*|DII@}K>vb(>jGtxW&H8~bg9l(C zQx1B$E={OoZApunir;63kc36dANJP<#|&9px}3JAM#?a7&cU!MrW&gsBaB{pmeG|cDJnXb}09OnZ}PlmUE4Ngx@sLy-=QUZJsECbXD zX<6Re{d>wqvodmgtBlC%8aG`}vy_iR#Q##tNtPvbJ-(+_-U*8&a*_|ws+`Hbwb@z- zdU#Ng%WSM+$TR7GIs~xh2d|P&vE{vl5CVSv-3M=d{&b@{G-a(%$qkJjo*;xUQH&9_ zGn*D_hbqG44JP22l#tZ*yQ5KB9;gNAIxb7*t27DSM7w2?HuBjeCM7b>WY6SW-1^DP z`#hZt4_UI53ng7U6O$6g+Ii>|2(@Lw1u+hH{bJI~aj)y#m^0@&dQ}CZ(L&LNuBaXk zpKos?>(dLp^f*OrX5M(xk$ZlBLE1)jNP6s~t}&gpc1T?m&x%4Dle<*Ky*q7G746U- z=Xp=>_~K>wyXaRHw<>34)S^xv)Gj{KZi?dBhug2~?rZ{i1$}St@88+myIw2ne+fX&(z;9&=C3NF z+k%HmvV=2*WCg8@dA+;~ykra5?G_PeULolh3CvfbDTdFsx0$tbSUqc1Dnxd#4E*ZU+6wA0nTd%lhVy=mP&H&&fA7Fr!iH<%308($v#^v8f+T7W=+J{!x zCxaZfjV&6}{v;nP-Dww)v<4u+!nVrwqdbs(UQtrlfAmi~ir)Z7$S#$e4x%m~NnKy^=QwYAzP;k%m+XHk}q{4TCS>>~WG0$l2c9NB7<)@V66u zFI;yK*WboyVT2s5hye_*Z5^)#{sL#xXn=upwbCxv+IWdA(o860jfGW+V&=GDSVD^- zv|Ur6AyJ4M+RPlu36QY=8YQsk|Mw@S-}z7r&|LwFK%I909t*CJ3kg}GXt3oKcW1Ee z!6PZHZ5FtBEYAnM6;x6sv~yLxe7EwzXrE?TGb~c&n%j9|a1QOJFT#u4p>uo4pB`f)Q80)MX^H#d(z1p#kUJ$7vZ;AVN?|d!)-#f^tzLqpOisN7$C|1S$$!81LJ_5r8dQ}CxyAbz3bVWg`hr_3j!fGY4{J;nVJ7HEN zW<9vPVEFE6l$Pb9O1$55nx@%{&CR1rf_~4FaKb0N-PqeN*WfBlv(#w1b}|?M^Bj)5 z$hd2?UR~qwn8*FrL;xGXHo91I%0wGtqTqnDR{~VQ&6+99tLQ}HNgH& zx{$AriK7{Yay24m0Y@~D4)Mvc{tUG_f_ObV>=%v@e;@%;936|JW1KoDP!_l_m>;Tv z<^V`45Cq1-iKPW3x00kwID5kyLpWAYmuQsh2qByfqc4cv%sa$l&mL@N=+!lZds(^- z4r_HhAzwj_lEB`y^et$ZK9Zaqg>Ky*CKy9t*8fr8K>VUPd;{i?dR z`{c9lJ+>YKAdxc`TRQMGk%4W?5AdfM7SFb~^=50Bq#5LTpyX!6)Y`_zROa1;j~GW% zNQ-y+NvR~_h>aCXD#0x95&-&D)l&?F#HAh6+Api_h`I*k5}LYKH@4hN6OC$~Xzi!D zG|jSco?}>}7BDbZBR3E31|ZE6TD}_i{(O78CDz61^wl+2 zc+^J0mun+ovp+&FRKoto&qc_z8tJe-hp*@MmzFJ`W?A*{AwsV!>P|^r-`ibzhq)d$ z+TG|OKWw2TyrU5e#uywAR|l3`i{eer;s5_r!qIWXo3 znF`b8t#%47+4j#SM`K`)%*_^2=aBdxY8$Bp?8}`m$gs(?TiMZ{Zr<73_l8FR^+v~= zuGRoW01b!L*CREMb5D3i>We<2-MM!+_1R zO{ddW*RIXHY&B*3=p(R)CQz4 z9z3}9=|PXS<8~M`;EWDo9)tBU0kWXt*YYN4(6LH8_m7fYE+p#-ej0PpuM2}YBvIK} zSvDneDhwi-%~aJK{YvL@A~xK|_wtiGALj#f8z@gr|2cD99QXS9?uiyW%nS43%krf? z#LY8!=+_04r&$W1UU*Xsg^*tk5MaZX3TZD-{i?zk$hQtY`P%;8G)rkMryX2Wm|Llx z3{2Dzbv8={K+@DF`5$IsS zh?v#|uvNov{_4^FogJzmj)5a1C;Uhv^omtmfNvWC z4T-@XD&P(W3xI~&;Sc7RRLHKEdRE~yvk?Hau7=`;DVYlZh^9LB?WlSvQ(B>$%!Qsn$VbQl z%)A`k-rvv45?4nM&}(Y-tKEts^$tD>UM@a%j+qF+N=YwMlZD4lPnGL ztmuACrPH)uRZUUQy6(I(ue-v~7cczc=GWkvf5xIKt?$yrLmYLX(+QeDb7s*BS;40@ zXO7kseBB)48ix>+Z%ac}v5sv%BgziSe0Ns{2ksTM((~=@7n_>^aMgK>Qd%C|UXz3I z*G>{YY#Ec*N5@8-J7_EO^gADZc_W3>#fDsqT5_7EcuK9Cv|rj7patfrSd=fKShz33 z%!G;wV52Bp71KMm`iGTrGtR&^c)IJPX|Td+n#Rlu+Bad%rS8gJMD zX??Uvow&6Ugz^1jjUWN!rY)om1MBHKFOP!2fdK@T-iy`95l|TYvV;u?JGO>Ba{ur! zzB{I?$2(JTJQ7k6EgN`eu`wMPeoF`Ev@-~Xed>&sDXmVN-paoG#sKY7?QzlyhTWFZ zqu76$fWvy}Eec_qU!=qKUUYlS&v)8SaF^O3*htpnN*B=outPKq{>DG@X#~B<(;)8E4{JeI$$H44mZ`^A{dTzuRyE?~yACvH6xOLV-3ZdMygM2xAL5Rj z3H-b^vIos#7`WFQ_nKn>9VN`GRqk5&^XVJm}j-_B!sI0cFqF;|HfHJ03^e6TzCqP^rUIt z7%klSQ}yr>Gc>xQ1t={K@+WVgu|07Kaj>}ts)xf?j={nZYjX0u&WAy~Jxx;wZ^vlG zu)P2xY3hx`YCOpAjz+ill-Px&rReI67IzFE0!*Qe)D**hRS9jR7QI;qP@(>ql_gYY zj)-6t1N06+;7+)%#iNJp*ZQv8hnbB?tu0!*5-)51vr4>F_hrbj zxpl-O&b@dhi6Ro&U!*X^*|XYv-H7yxFcV!@y0ceL;l{HW!6 zW$4w^prdH2bnF6FSMTU^_~n24MS8;_Y;RAB0*Znp;*%`vRTZSE(FSK3kifgH)gb|9 z-?S`v>Wu@~)x(F&#X*@)#>Ufua@auMw;=VbGvj+7zOeJ%nD6@6LeBgYW-QVE)hR6x z?(FaNugndI7I_cVqbu~gB=rxgtF7isQx$P*4{TWniz{fWZ6OK%r6oB{)4CXfhNLTyJ&I9X9_hCJ4 zZHrQR3F46U<+qBLpT3`ANF?2>U?XAST-FMMLjc&=IlBNj0E4wy#i;~%XU88cnDpxi zwcA6%J_Kj=3ILE_|JU88j~@L$00030|Lk2)cN{lzFIYYDjMc3_-j$b4uXEU4j&s`Q z9UgMY^Ca)(6zKzSKjG>FXg0?@D#t|QJ!Xe~F9+?il}KyS?v_buMnVn+6bc2PyJtv> zlFYI->;}*P8jU~ot11*S2Bm>x_f?*+isISVQ#uYIrR)u%FV}&KH(qzr31My8C?dMM zUFvu_?)3xP&~I37l=$1-na>gZ0*DW~?r?}76O_WbHcE#{`xKRmINMo8F;cF$pTGD{ z#+D^ar%UFk7 z%JX_Wem28B-4-8)-cTzr_*>m>Rp%0KbUYo4L=L;abQUwTHU>W?q8{!9z3=EuWA{n&p+zTpXQ}q7yaR>`k;R@`3eCeqwyA zB)1Xqda4ef%AV5Jv#!wtgMkoAD~;}q2?J9Jesk;avJ>BgwN-#60)W%~D%!5kVQ?&u zRFPf};keiQDs}BebNxm0`X(NR1f&X1<6d!snp6UZQC@xgKAoNiRC+~^!!y4K#b7Xi zoi4bJ7XobD2P%tKd;ZVUPyV;cn#L0Z0Dz+ZI1IMm!T*q)7~IqZ2?OYB?4SMc;LId0 z88JUX(!gIV@xoCn!U(dIKsomD957V?AOE%b*}v~+>=B24k0ul5otPetpx?D9d?ei- zVXO$0%UFnAQ?Rx_?u}KTZP+UXSzY4}uB=Yrob|WLIIJ5f69YD0CM*S&N)~o5r2_$Sn{9ca97-3F8UoFR^@DV z)`Mq$s&rD8)&2XcJin3!Y(QDlY|UmLYRg^BD&lBa6i@c{JgIL)P`-vN+fQjYAJU_6 z3r3S7{pHS4|8sFPs;UH<)jY5j5`%||Qxs%scce;U9IcWe@q3T1{m^Lpd*g=%0DKJ6 zqGyA%zK94sgZ1{8)io-v2R`pNtSZu4<0Je?5j^V)K)o*V!HZ^CRj-R;RTQJAl~K2% zr82q8phISr*N(R7lj@HsB=8krB8)Q7{Evgj0ASoyLHrBxP7*37Ef^lWsNdWo0Ici< z2qY|^ufV-2&>Jdp+sC7ikUQt&G=TPv5mef|nF6V3>l>w|k|z3fQ5^5?-hH(1H7x!r zEith9Qu54F?>$_9Fda!?S_gD{L1HlDn~!k<#(gG6*ST2@=^d!`D05+QkF5qRYT@{c`&bkrJv$N=m^yIEua5r9BOfa(6LfaGZUL;3GdH*;V-Oh6ukC$iATfTR+ zWaxTXmJVHW_?kf1!47U1R#o}%Vb(NUi9}A$AhDecSKrgJL@Z6Gf8Bs>gte=@SQbV0 zLk*yod7jnHiFHvPLShJDZ7MLZe103~w>{^(kM`YGg||-cJMuX#%O`t#mtBkZn98#s z`TGvjMR)He*a{olWv7UHLD~qK8diavD)F))Hp#qAab8c&wxF!8i-QGlM@bMOVeg8C z=v11vIsj9uIKGkrXpf`Sp57qDY?na@VsW2Wb?-iI+deG;08V}RbG^oX5XJdw#3{x- zs)Kr_g`5K<6onT#1|l*aS=5~c7H8&EFyoxO@tm3SRXg%y>&Dnc575OvJpp7Nb-Am2 zad290Z!{Q_=vP3z{+iWj{$14F6VG=N(DsNYt)br8xjlb8s2c^~%;o{W*%7$cuydB% z4eNgpIuOW{cL1Bm5h4Xs6B4quyjmDk z94vlL4z9wa(LYpl%MjDyU9i}s)3;E(J0u}-8*MUc1v%H_G5pJKmuEhM;U_|W^>58N zJ+Y&qa8(PJKtbZ!Y%u!8_jdt;`3`_vxd4C$g?lBkx}lj408Yvhfb9kWI4R4lZa~Ab zC{}rq)ioNJAY+QqdYKoiJYV9Go?9gV44NkDMD2WOR8?EEnL8Ksiq@oNJg)8~+}d7I z4=Nwdt~Q)+Osl*&nnVtGi>X}rdUeL(?(_;A{R+P2;?Qr3r{4fb6bFkG^!4syg7~!y z^K)~)CWsx^^h10+g#s{z2Jv(qmALq6eOOgZaV}mDG-s8OQ+;*AtboGG_tkGAC4T>F z8~D}lc;Y@p$87>Yu{fa3k93Zgt(j?2d%U*wKyJ0!nBE))reKv97Q@3J#){l|{FruZ z3Aq(rtZ5!B2WJ09=uF%R3Iw7FH=n03+8z-Vqhl#w-N?WDYI66{K5kn!FcyVbctIE# zMJjkmGD0HSTW(=l>ZJ?<6?hl{vI#WU&O+trNx}f&42|uZcrU1f8-Db(+qG`0p{;!c zF!XNzDf>r&X8vN?Uw*%b9i3dnb=v*5%<2A0qZ8lWi)t|<3XkXIMMdqOJ5%yx5Uf~s z$y6d)l(M=h4i>c0m&sH-(Ms$3;T0~TxD6?=wL!kXdNX_y?s5tvd(9p}?Yy{Ph1CGZ zlgYE`^o!%a{wn4K>x!aulU?VFMLC-#lWs(-<%zLs=2KPR9uFyNnyhKWq*g3yA+s;g zow5c1WGyq_ok)D?2swnUTPI0Oe9hZ&2{3LB8a;X9UgSt7{E^)EHGoRmn zJkOdBR{3_(bmj2*j8s0Hoy8RMJZUp==4I2-?qpRY#bjxAMefr}WzZuk!f^M!9u=(y zUH$tVB4KsW5R0ZqqO%AiJjLBE<^gZBf39o>z4Uk`(X^PQ({Hn7ynt@x9{^bsOo zx{_Oq$-LTaoTotC%x(^U`^Ca88+J1TP&4;Jze!0eAzm$_lk@LYJrK1F+vccCEU9?+X2%g>FBdzboh$-o*~qNvGT8F&n?_l;S2^k+9D- z$GMBO5$VMM;|*!h)NR#ihrSH%dKftJU~3URuftd{9m_MpI!T7fXM!dB%l|~QKs~4Ju_u{Y+x^gtS`4qynlVOc=6@<=C_OM-!?vkQyiob zDrSLxg4v9cnMznZcDh|=O{3WPUbt!xn);+Hd7r`~JWsdF;bC>U?Y4QNid$RX<0$lB z7P<9{=7C`=q)-Cg_|_;8qF-d>qe{Va2h&Qy(|`Q>iw6(rMM5MDW>>I)!2$piFV4TB z_U^oK*iY8wVQa8rERiOLxwT~y@%=5k>5QvwV`*){umIse9=|Bl3~hV01$AvPXXhs}7L)eV`J5lH5^njENj$haJZto6dn}P~`S{vfZ3BT6)++ zdUj4`v20g*26ugD&it$+08p=Q79U|Cf?O5gUJ#f~1tGwaGti{~aFtX500@HtoEw#! zwEs&1&~~tI0Dpbfgf|lpckpVJ7kG10mczpe8)Q}F%e>GUvbtX7#WK$=kOR;_w@Y@W zm)#3?i0M~Fku^1FSQUBH%fOGn*!tU7zq`YHxyzQ3V3?v9DyA<4tP^lf&NZxszDmfY z1laX)Z}hq)*g|ERJ=qRt10c|z+ge|fK!N*PwY!v=Lob5vnTja)di8gP44uRxieMSO z)f`XSq2lH07tsdJV>R!k5bnJ)c~N)f^V{?Jpss-iCnTGSarlvHDVffHg?N^cXn*-N z8H)aE3`{LR##)hmK9fL+612GYDY`0k(6T6+ot>lI-Bn%)>En;rQ|Innkw=5NhWQ-k z^9yaSEF1ardykJC!NUMx?b-0hbVzNd&ydMcky~Xw3OEKu%w_9Q>ZqQ;Rw~KbrYN>D zMV@?pGuIlLVhjMQB4?0$4d2}@oD=tFhBT@U0pO(E9@q_9UV4Pt%mo@fOGtZYVYWHO zvnZbI?M2T%BxW+0G!Q z6~-KL2VL6f{G5X>;mevqAP#^-e$=l`kFgY_aR@e8JTzZOxTS=!M+)=oTylayuO?yj zT4;D!6=m6!>Pm`pYTz_>UD z^-43%;o~g@wd8=fl%rE}?7zzMwP1FXhE?^&g9l&y;Sb=0Z9IGn717SpjP1?F1W~VM ztD>MYHe2>{elV2PP5JQQW!D0Lv5Y|Ku^y~RJH^*D9o{7}Zkb)!6RSLbKK=SE(DBTA zSBVqW)j+Q0%oBF6{$G2giro#R`NAyzW>in>VirZh~uWhFa&Rz=V+ zUN>KkKb_CfkCRhZCP1&RjRbkkt^(|8I;*Dxig4-i189SW2wu--=!Er_&(YCezd+{R z$%v}B!qXfLZNsm>sI`JY(`W_7w+C3>swnEb5JE19PY4kt6*Xf~N@Y!r9|cwDN*M@k zu`y(gIn3FZ$J#eDd$uj)CPa-K0x9IPriTks%R17vshoCg?i@Qr9Jo3NL?KxS5#7BX z5ZM1DB|{;T7gP4~r{V`E1qHP?Q7nsuS4JCXI=*->qFL6--j+|&gVrRk3Q`}xW3>;k`ocJN3i2)YoO0f^tA_r(S5(kh)Uw? zkz&Fo1E!UzO{|OlWpD3vyZk7CwOrrZq6ZeS?rpV*bzAa}WWqWh@(_7OU}f)O$Y0Sjr-+`}bFG z_uznbd3wO`xa%<1hNzHL4Rhm9g_TN0rDp&|2?kAlt%vvf$kz`i_{&&ETvU`BE{3QmA{SG z)$zZYhe;xo%eWo?4ID@0(ikK`Ia?=C<~8ieL!bZK?0-JrUgkM7J(JjqK2~CWkfHdE zR>Ry}4|Ai*ze}J#Tc; zCuq=`^tT^BzB8Yj4Ruzy6?;92Q(aFsK-q4Fu&KNQ&4CR(3krgPEu`}1vFNDOGRmoQ zy(j`0+QAP4KpX}(t(llix(T(u&Cb|oG2PO8MSW;cRq*&R#Ev++P->aJSu|rkct=UF zwe}e^rfHb?T~2XqY-|&l)DwULf$lmbGRKq2^M9IBjiZP+1%pLYNJrRle;R_fs(l9k<)O-8XN~dmJvewASKD*8^)S zj^}l)ihPw9))jfqYe=^U%MqXZo5>wc%j&wE&CYmM{CY&=ByK$jeEg>P$d(aCOPNox z0KOB4C1Kqkcy+vq#9#DI%JO8ZJR@l7uK|wE03oN5;%Xom%WQbYE75cCwz5OrPu=+Q zL3>J*zO4iFt7z}0UOSH{`1h|8=$DYgnQL~%&j5g9tQE2G?!a127)i4^!=zLSe%vbG zXi#+Mm16!wFjF9tFpYzcTpR&od_6$pal`FZ_uqrhQ7v6J%IcUd=VrHL_p^1R36RXu zoNf#lcSLDO-NsF+L4k&!{b~MxUr)h~aq)|Ww^4Y^rz0lOa8n;cu!s#cL%;5S08L<+ zq9~ANMeGl*5fq?5k!7A6$X(=kv>2|cFXgcwl6aki@JL8j*ICnK(KWzUkskFRyV%D| zt&=ugPWC;Pm61uLCR1)qTMuW& zyW_9;T*Rg zbVDk)ak>$qg9SxgYd^ir!Cq<+7!nsB0p~|;IG0`_B@c8}!MqZz!biP5KetdHy(>W9 zb1^8xw3UYzDbs}}GiM|pYajK|*jxWK@3BTxN8#D|y(Y1XNwM^?h^|-igLF$WuWHe- zR*67shMlx5ii?)%_wR(4PR=o}2a^;6-4HUNs_@k(`HRoCMo%lHY)S-L_L?|ng@905 zUIIhK7bb|!?$#jQpM%LS{;759rwaqOKn$M~H}Ax!agZ(W>7TxN@%LYzY?WX>gu_G( z2Ggygk7Wwf_BlRwS>-}~vW2ypse&UPniAt+R0`3!q8tcjhE}>Ug@h!gSM;hHO{_J% zxpni^ts?vMn>jAS%e47_Q<0mTd zW`f|8ge}t^4FJRH@b3Qp(6SM4dXE=|U`_igaU1y!(66l{yAJu~IHvVvNe^_5oePPDkx?b-5JckmV zB(tI=VCF@|n4@MqKAucY%2M(Acvv?c9>hkX+JS3utr7_&mz>Tv#+yfZy$cvk>M68s5C=F`>rpaYyx9Q>un6C z3u3din=yPm%t52~)-Cmp4t5`NQlPk0vZF=Y#a;MlY0Zx;;Jtn6Pv`UM{ynZ@6fDGc?OBW_uywmRO-i1yI@DNBfZK z4S!@W#NKXM6cn_~bBmvI{G4=N768;cI{=W?jd6U!zW2#iIjjy(%TnWBtUUJtHVvC3 z?v3)G?G&cJGoR;+1wvl}>0XMcu)+RO0^GV=+xtQc%vl0AL_H%?cIlx}Io>#IWtYK^ z_8-!Ia$rz+Lt5p<(PVPGJCW57=nCt$)1a#0;ls;zLECU zKc7xp4Z(U*3fA%@JTX%H%&;!>y-;d37y$sd@#ll=hcy-&nV&!vZCYY}g=y`L&+7=O zCfzWw+6Q5TmFC;(crbUzxcM$-;gaC}qKjBrV%S4+@}ZLO`(N$c{LjY`+-tPK-Yp=e zqHt0zSv;(?R}ba=5!Fox$S568X8W!tNgu*dgBP8L9c9n#Q9PXY$q-fdsk0sdU||%~^5=^MNHwGQ*c$j}#^bZ93OB?f*M(~**u7Yk z6@q7cSODy1JjUH(tGrkh1(~1GzN}$Y<%>nJSooeu+Murky{TUrsNMI9+c|4dN&@!^ za4MVASL*Wi43KYlBig@((utnz{oV|=O=r@R>%$G7{D9~ZZJs%O_ILkqOf@iyl_hx*T?EVJ%_eba;jrf^ZNMykeQy@Xb1Yh|fJz+QYz|UyW5_ zSRMB1|34k->hs3@li5fsrSywmY`uA-jrLb*kkHp4UVg0 zji?l1-~b7O{qzPHvx+I630wPIqw2=1GH^QjZ%wt-wl`U0{V6+sThLKyk1TIlCfev(!X(x?LVkCZ}cDjK`;CX%|a9 z@R9Jqxi&pi3Qo)IQFTa4T{Iz63ea`RsHz4{O|f9dl>#8mmQ(7x;TVj)NUxU7+z3?*lu;{8H%F-QWDI{4D^i zi++=HvF-bw^D0nw0%3A@T&rA^LB+ISS>)VW4+Q{lJed&E5TF-2x@9DHvR-a4I4T@X zUG!84UpnQBMLC;wr+ZK7EjIP(cFEB%iNFJ(+ZF{e!?TN{psaH!-DgAu6XTgm8VQ+# zH@9-7^~=wPQhi>t#PBds+VfJ*r;uc(+OkMqxDu(nx8>-fo7U>C zj(7B=u00;Pq7BI!(-Qlsl!Bw*P40X%7qG`F5z$AMyf!Eo?buO!Y|yVcS3(0I3JZ0@ zPUewxrkVWAzC<2?9l4^F*H>G6Vi3t4M0eN1Wy6zPtLuER=ya6e8{3*|p@a3)D@rVE zp#`VJ!vzxNrn?-L^OJGiTd`_TJ_I9eRYO1-sk|R+=>Gu#0RR8&UCnbH$8qlg_Yn`m zE(u7a$c5yxOA?+^@kcB$NhKE{X9LdJz9;`q{AbwLlt^FWr`%iua*M48SLI*_3x~2n zVwVD-_khV^c4oSJdS>_GgM?@`Sr7BQv$ONjzwViyOz{xSoSM0<#cd9ErEvcvf-q7k z^c)NeTkaTjqj-l>E<4v30cbdUv|&K62|l}1oTBqrUtyjdF&{^;fgLVZ;$0K~WKDfm z6kzX?27t4o7*>@_HfY*QGMB0=7s*!=+z$gHIxm8@2vk*HdsoG(d6JY zDG;mfBQ#hk5CXbpDsAH^25zHVc^F)Z_DWsYtSGAOt&`F#ek1*A4p!c5%c0NV3}_nt z_M@&<@}<+g@pyIT6-#7Z2U7Uz=@{tc-PH+hLYcj#dAaYNy(>C!5>M|OP11fjzrck1 z)0naXXMg9HpDZl!m5JgdU_Mt;Sk1wU8USDc1~2Ntiy9696x`YSTq@7z-j$z7*(Cm` z@PKI6G|jr(oetBY7}WK&D9mx|*aclDWr;5a!xwJPOT(&qR)@Mg(k3>m1vL8&cUDE{cPvxgZ0k&L1Jcf zGSsX?XC^|_Jd$yJX&7KLP*SgB!!I9+%MblpE1?xG;^ zwQwu)7#`q3u;ry?$mh#*5ZZ-TTiZ_AyFe=tAT$+=4N`_~4FG3FZfZ6w3iCvzpefeF zet=GAMLBii(Hi_6m^z2o!xrX*; zYIAa%%3H`>&=ym#L1OL9tYG>!393u0NXI}NG|#$)lu)R##QzVmna$~yoM zoo)!VUn6k2b#8+ysCH`edv?lix0m zY*B~`6JU|2v`+9SH<<=vR1dSAboc~%q$Ki=|~tsD1>AXyrL z^VX^diG$@zq)0xSzXg=XQY5S#3*r)Fb+i1(eKNxB(FqX)3sNOIH}FQGRikn*%ha?V z*Iq4XQxKUQV2Qs1$&NPwi1Ow|`9mwj1WhW$6XZ_+XUQ7A3a37Of&mQJ`xU zQQ^wB@RvjZ8r2v+pkye3gJI!~0uKhpnuTjI8!G}&izuxoi5x8))ptJIF-%dS*QEil zm@F+G71ykogJ~0??Fpg%e3rmCnEshnj4+`w)-KbU0Akdp68a@x4}c-{Re~ochG^Kb zcr{W0NCV2zZvfa%*4FCv^=33e(3ch-hz;gi?CEBT1RtXk{XncnSOJ&ptSAh(Y!$Hj ztjN!b{1i$ZH2sSYM*#3V-mQW546|x#-I@$_aN2C{Djz?-{i3E%cqNXt z5&&3Tt}zhj%f!;wPGgNiKbhsl7n_^)Xng_Bp$7**r$WzXyS(DXm?HEQb-yuGj0Bv{ z9HI(p8@`~tzxw*9eDXMbIPe?ty;re7&LsNDaSWOpjEp0QZtzpw`A>*Emixvwfh~lnEXHg`Y+aK<=o^L0{~zk+32o~rV<}+=M8UYm}i8RHvyj4C8iGh6SH57UNi8dz;NKU4ow3U%N{!J{Celvd+Tn~ ztHem?cocf62()p(Y|jo$5c9?z1h_iJ$?bV&s$-X(sw-k6fiP6r`5E3~Xnr(u6Gzy@ z*w;OOsDzIYXC|3de1%?A3%!r+c4mt}oPkJ4wNZ^I?hP~I&tp`|30=RW_m9;CizS3t zU|q*m#zu9w_t~970VoCMcM7e+?B&jydhPL(VYP2W2*vN(+fWn${1>|o(7D{j7Bp7D zEYCr;`@J20e*3f@{DEGwVlZ=Af>~>kFnc;04XO$Nrez5ROj_~w*Me@sao^z^tM}gd z{&4wC=p40DbTo^fc{Bta&MjQbtV!S$A0-qB0QG2eu)PHUx8OWhDWI4ZjYN-r+oiP~ zESj3C3Qa!5j6lfHmpxi~JE8}}qm_v{**wFV6$Gq3>LL=h#tg7EuYhMe8j z*OIOkR2x|5^nOagpFi5TKOQ68>ynG;RD!!?;3+Z)6`Ie((vl9rOB}r9C^5h!!Y&^~ z-5&aCo=i|u!ku4#_F{X>0mwEUV?OMZK6I$6b-&o5HF4ly)*NYdAgfq_k2qqNlomKc zShU9B+1VMAE0C{1KSt=~9*I=U7ao%#WugTP<+KYPb8t>p3pcGZzZL z9=kHNdgGvK!;cR8TR$FH!#o2VX#SKXR28@bS49DN-X5>Tfpy)cWb3qv0*klv9MI{k zp4Cg${OXSTUReE`4TdXkf3R}@eE_f@E6!pE;uQLABRL|`mbV0n74#{3(k#!PJ$iJw zvC-#NNQY_LN+QV=fEPcDdv6%lO`B_uNKfY&o8cbOgr1o#S<-eUoLHi`7tV`<=m%i%oV^806=v>ktKddn%c=Vp zu@)Bq0N|R?+La)sFXmIDS*$ zo&W;Nu(this$d`D9W2+3GFh8^S@Mt9~bT%g)Y8D+(O1Du_AmPSwhpaXuPVRC|blm zC-At~7U-3?-(R`^esHi68Mx(=xN7&v~v^q{8 zgLqigp1Ji7sR9=mSE+-MJ;!MXKg8YFp^S`r6<%HN3WO6lTG`oI-QDereqX{q>>EZN z;h-f@yE)H_cASW(8I79JI#7-Q^AHgwaHuE_;8Lm=$s+vT*?9#L$-;tBB_esGp)VyC zYOu1i%f#MdCBoXp_?eIgrT!kRpe?4JlcKC}q$Ke?oMR}+Uke1{y`X)yrypZcw0@R>e~BXM``pKO}dPjE)sXQRK75+mWt5;;@OnzKXTJeI=gE|4s<*mI7ZIg+Ok zE$Vp^OYOaM+I=nI(@UnFiwm*KN{1BxV#7MI{ml3>9SGSc z;cWyVo_*$UzgpSZ4OynNEHx3A%BHb0*^76Xx;RY0swC>7dywbK0%5RSo_$dYj1jCb zRkUpCQlgj0J(9A>NDlxe=g>YOp23^-Q8OCZO)?Jj%1@MJ7%{Pj?4?nd<+%){w%wyd zIGo7=TsW^xnpFy;jF~HgmxNqh@0w;$YydmV4dm;-ezdhUo%1x*v?%a_XRltSo7NP- zLGO}RAG~+}-R~Zl0bke9UaYO0P}$tnWungVB5RsiQRI`!%o+$aM$Q0KYizu!Ps%kT zB{BBHv!(%TPaXjS4Pb8jHFL6JM)d+pbcSYq^mKF6t;&6-E}KS$Ugx%Zn{jyTl&=dR zP`Pt0NlxfJ0SP`-!Lc_oAMK&93AYX{B9nK2{)=H%875mY3UpKG235+mCxAPp=6btU z(2Pb0Tiamu^K6$F^(veU0KjiaFdnWob*o!aI(`v+I~T>qoitJ?;tw)L1{a~X{^Qg0 zbAs`F;w~&I@r7c55))jw*L61eT;D`EJWSxOt0oqSp$Nh^>zjaTE=&O*Jo`*RitsM;JAZZSwGQIobUp1rdE0JQn z3P}-cSEh6xQ@r%2wGpCZf{>-@pk~~?o?2`x%TFR_m=Wi05G$|`Q1V(`0{Q$6@FzM zU*2_>a<$(cU(;p66Ix0`?k=vZZl*Kcc;t2nZzF`L9Rz@To9%hIg4 zSyNYA+h(!U#N1Vi|Hf(PMq-vrz{6q)Er(#>2&Lt5y#}~{G8btnv>LGo1#%{0aasdF z)->hg$HRjvYH-i~d3{Ie#mPzYFbq~2o_@R;f?KDAcVY+%Zc&%gewZP-r}z=UEOS&m zN~m*>l0>o~700rH#!z}}poK+A<#5U;dxJk5oUvMkSB?k%H1x#+1mUSTg~(0?z}Y(y zR97@lszNkLFqjEG#~sHp=wN#sNd^r40s!CxfmbdZxhjeQ-2^urD}>2F(Uf@EN_x7s zDf0T}-g&<~M)(eC8<>4L@<8`wtu)NTtjK@=lb?Xy?~Uy;I^A_vH(65;5cA;EG|eo} z4aNq0B>Q5<9W}<1Zft3P7qLrcZB}Ebg|dguO$Mp5h}Zm6T06Bb-Gh$8)_uM87Kl0Mw(=vyBb6%_DvMPei<309di8Sh1FpizH7o?}RHYkdfyw z)|PQei8Z6xo2>5c4)-fin%xtH`-xPiC_~X5;ARvXc4cRPZvvGiY;I0pwN1$E_V8Z$ z{#)gH0Fas&=iq@n7aq%H)*B~iJhd~OyQ53|wbOveLn{Et>iXg1Cl5aP<}Gh@^g-Ex^VwK=tg&rJaUXf-WzW9ejSblrLGUWz_C&A$5z_c?>1CRr>$ z-G<<2A8z==I9IL6sr7*4Kr9o`28t zbK2-HLULL+#7#t#G(sF z%{eSA9KBe4{sI6r!0n?K0C4+xa~u8$v>Uzg+uzZLv3Us`8|`wPlx0>o+N_azF)Ipu z;Ro*DW-jsq=Dcw6W@GuFu4hGlT&@k8+AOGn7*zokg0fZ>mju>&0d|s8QVgc^$=?0( zIIA12+Hs1utZVJ2dktjgkPi%M60q!F_1C<2oI0UOk+nF4t@t_wC z9~lF?5+GOthQ?4IZ!!eb%my;{Tl@%ZfAH52>$Qc06Pe$g}4H{1H! z2t|-EGM{E=AM`>!mYWUAJd3LS}F&J#TD?7Wz-el-EJmbGYJ#dgurhSlGg;5tZ1A-NR z$0lX*UIY60JdD3B9%&$A!bwI%Y)ypl3y~ zR8`Gr-5i_-YLi9*Op9Cr9Ger`y4~(&aP=(Dv${Dh%VAYDqmfxMc@-!yW_V+DclX|S z4D7r30gO*>L))gl1SPhyOQUUBetCXPhPOn>>WNvWm=KyeP$SCIwIiL3B?-c<1T-q@ zjb$;U!^2Os==Lc(@%tO1F?$w{Vz(I^;nk zRZA)O{APYyq|G6&-$g0lUPsq`U9HGjVU9{lpu(sgA&K6s!FG7mr5Trcm3a78-RD43 z7hNAf{~AK;d@`xmN3`Ocp~Wj*Oohl|sbVl1?kMo8Sge@wbj_F@g)_9ohdhD311wMWP_~Md0RVSNY2rlugayuuLL;+evpmN9m z^ZBEXlwi|Rn3+|iyLGN639%+1_5zFB-Ox5`Vi$uQLenVpr7W6aZsg^O!;~?)Hy&qK zf-A0-g1OP12?uAwyX`P``SX7j_WJU0!-%sGLB9wOqYG4Gboi*3{rt<5=gXoTS0B95 z{!OG2A8uD1zft1)(50bt@vj(wUdPK{GpNodd$5I3lf;_xX^r=&SSNHAiNiEfcNJ7( z{og*)_VVkP3Db356O6L>r)sTdc`;os;2geMF5n!#e6R)&!n&dL;v)cn^`HHWl?&AW z0J!T<_Ympw z+am3Iw#wlQSi4$(3zL)hmtD+@v9AlDoKS~#rCE_T>!ZU*8;OlNJz;IA?2aUhl_sJ} zValGDL`jvUzVnnQ^^b{3l+wehDjz>-uXmrX{&al?f<y9(?k6xL+9tQJZoI^aawfH2d2{biGWE!rqKSJfVwGY%;`78AjqjKXu05 zSHr^d1^{k7Z#2L;z`{`j0Lw=;Xtf9jPd7J@KJfeV@y(XW@8Sn;d%hak6!8#6gSH2# z%raJY*a z8@P`bhGOV67|thYnia)Kxz;!JJS1WX9EIFHaj%NSiXo9&dE+;Z@wFI(uVR;?u5zvw zeZLxXeYK!k`l4pNu+y4ij7O;Y3d-YMD8#)%NDKz|=lpe=H40M8ZZ}CNbkxNqbX5wU zD3wD({`|v7E4%K_YC1260}TKGZar^q9W?;3XgG?xmEA8wg~h=Dkbk~s<~zSuwhm2G zYSgZ6vSzeymE^7RX1l51yzQct!2^d zx~zHgutk+2UH``|#i^EMbW)bhXq33#Gcu(nj+F4>5p(na!;U%x5^)l;T~sP5a#V<^ zS0r$CcQ>C*mP8A9LZ#%rQ-tMK&dIJ#(UB;=h~sCOu#?5%fB*FlV-*{oo}MfYho>jz z*Q6hwo~#Oc?`zO3K0~D+ma#1QqdA@h)XJzc z@@WF`VhQcim=}9{0Ig6ttDDT-*Hzcf5E^LZ-EFm!m0-P~U7r1Q7cSfcHlxuWw|}(Y zb-yjk(v}e2_I%-Wq?>}TrXt~q>^w`L*Hy?3fX?t^+^fS5-J2dhzT!(zl$i(Fcf|ac zBZiEKa&^uX+m2#_bMZm4DDuUzLfc)e`y5+1aT!wNCQlJCM3KqGx_x?~N#~-wMz0Hp zX3eYIs&E}|^|C>=)Gt?db`I=S8csE8C@nw{d!Qr%?D>`*2iL>IY@SF%-+%#&eoqUA zl_rJ~TNZ}#Y%HUr!;OuV9S4AWZ1J_lE1(iRWfc^P<)lDe`BEImr&^S(T~PqAJlQi0 zV?Jp|lOpFdeO-z@asZ8f5cUpjq~Rz)!I=TcMN#ZcPRg~+;a&t|QCSk^B@wZirS|~3 zF!YT_34L7zy`2EKYnb&XfnV=4iN`3B(M9Exz4FOp8_NFj%K5)4j9}jA&v{4RPuO2-+ytBG=dIA8)i%Y9Vhc4Oh^w>F` zZ9HoJ;qPtU6qW<|uw-8>xYkXh`#UybkX?11(vUl3OVWdN&#uxL`~$>jrY zm55c@4%Sov&8`^Q^|ebz=TuG7D4ssn2(j0cYCFq|gYB*3vLqufJ}iPyCeK~zj2Gau zneEM4kU{Uqq-gSbent$-}Ceq1!vnq~&&b0l=WCv!K z6UjOW3ovMp)#18xd79;D8_Ubaj@Lq04yv!DRj{=`Qz{m+swyipE33Nu0i?ni_;{p;$i z%>32gS#lN?sj(&h<(sfqRA@v8>KBVw$4BX@44TDLlBz27EzkE(g28#)WkRPWx>D3| zvZzsK`7oc|zMpm7!B=PVwjEhP%C}ZLP*pe8Pe~$Gy-<8$Mc7d7#zmW&Ha=S4-E+U~ z!5)BF`@@q>d$322fHMHlEfz0NJ`cwZ8J?B!dRCmj{SHI+-oAOY|C8p$9{^xI|6u<1 zJ1(T*-Zx)|BtFeY-+aBkyJrCIzWwg)`~v{EyZ#OU{?+`0-Oqkq-}}kvQFg8$hM{kX z_`wV;&x~aE@|~K<)N%Ks{p9p?cG+2HTmqVy0Gw&!+XN{&WalenVp9ECnKX1|@j+0k z0qbJd6zA3q9Ne0K;V~~IWelvF=K14C8@B!@e!G~~NOykvE?Nffj`Aa$u`)Rmq##$X zKdJ!W4%q9DDtGbq_dLm)q);r8s0nKf%-gnka{AeS|8EemF@T>I-qh8)Y4+N7Q&+}> ztGVh5!YOD5U{lvuRkhp8D>ooav*Tr5c<&_yz$r{X*R4?RB^^+Q$Mh)=(c>h&`<*~v z0GM_CK|G|bNF%yxK)(qFhG0?w`F?_Iu<1hIbP~yj1QaPLuG{8%h23X zk!=nD6UX3Md#?+GoKa17^3)chr6q_*H)PJiH@d1Sx*6mh(*L*UdTOf}fO@%n*>zMx zCLcoSc>erfd6^soV>T{NWAamg+wzpyI1DWLHno35gfYbSJ+tcon2OBh`ReHC9z6_b zh>}(($4n~`#e^Aad9Xx*#f##6r9<8EQH){HRHB0!JegA8^c$h2W&wNEIqB>zF0rVxx0UlnOG+NP@7$B*3x zs!WmCC7EM=_XD&H-p)TT0MCE=sSEiAegcGjje$S?>=%${V*tQGzCTZRU<~f{6)j=Z zh*U?0i$}$5b@co3muL5$p8K)+Xj6J_vX)q)8QRJ!aHjhU-~6~1q-mL>Z`hTIk?lpiLv58hfC;pTQ!H`AaOC6r1j;}Uf-M3 zgtM;(OH6DL1J=!7a7mrfN|6Qq38x0YO|)1aVmu^{f@?%8jA^Lb!#Sv3e%P;n*st%% zUKX`a;$V*`=;eU}H*N@`#(E5ki;Rp@1P~d_X&2@N$(gw}y`6R({HpG@`S(G$)XOB@ z9>3j$4EqBHVDI@wzppP_$nhBE5H$|hO#wg2&AL(Shg3%7pysS{;~0ww7@MIhW7QRv z9WK+uxob#xxPA2a(=Wczb4e)6bOGuba3T@dI%$^7>rPy_hv3%vxi#Up42P^C{!P7r z-wHpQUUkuCF6JygOt4I;B{T~x%32-=Y$6k=ztx zD^E(R=AvnXRbz@M&1tx&v#zU_t9rGZUtEAGSIQ}SUKdOLW01w9Rz#EGdO?#&Ge2Uk z)5NpNo5d2GM=xc4*mMsTuaA#O0!uoKiFTCkz;x_%amsJ$*m-$uUN!d%W8rF?5klFD zkl>KJO$Hq~*gU^zKRG?!x$G@~#VgaidR|~=P*oB8LQSCe z@E=b1{&->TxMxA<8UTnIJp5R6#cVNLCCtnF$;tW#_MTrjku&Qr>s1F9<{=j0ACLU* z$#4KZ$O6&!@PT-v^(Nd)>CO*_@cFK)8jE<-G&`65RaLnPZ>s95uHB87{t_>@NqaQy zwQZfdU~CJrV6C+V4E_Uy2bdA;Mh<8J`LQr75Z}!8c4x&IXR*0$AwXoLlF7)LZ%-z? z4drBj*T+YiDnYMsqin3GURgUxhHs$vA)N=Y|V zN!!!yw$td>$RP!E?X_*cSg8CqhKRA@K@tXzwxAUAJ4tKOI3l;AMTE?szGvyfsNLBZ z*0XZ2`TftEw};KVZ6O_MpF$QO3<$;p@WVv}(Ig^85Zp_rk_})eP>H~W7!66d1zSPU zxhffe+5i39zunYTwOoQf#?$SRs@xf#K=${$qeo_4kC#pD_I`ENtnU-W&no)r`1tkF z5iVx9qt<5F9?H%D3?T>AxB=DZ31o@Lj)~G}JWVdMYRo6++}kGjR8+;MUP!%hvOVu z89&r+tUpr3O-`D4kpl^L{KZ=tA`^nU2g@1@uyfgig*%u1UE6X__WW!u>`!FZxD?+4 z7;r~|;~uC@RdtKSi<1+2%(x5388*B~%*6qE4tc&U!@+$(e}Tvw5(4DU5D`^sLO#}S zejp5rDwOF*72M@X>Nlpp(rPCrI=nqREYD)8b`JJCOHM$<_{36}X1j|_f|{@~IBvg; zcN)2=EjQC1?CX(8_}x;D3Dd7oBC9%YfwmR%+mc%Q43g1MO%!|eYWec>lcJ$MrCydX zcCorylJk2*mRrX9N~M5Ww^B8zF&55W#8uF-o+>y3Ffae(Z~pcF_@6F=M7&!F3tL7~ zG}WR5AuzFsV{8EJE)QQh#bZGiQ3WK-^VOJV_QQT{!1fEe%)kP`x4&8xETj}?y2Cb& zfqC1ytD<(he%@Z(KR=)K-JkW{Pyg`@0NhE|Ky{%%p{v8gMfckFP1CsZND3w9-O_j} z*i|mDYzvO)DqBkbLO$iL?karm>3O|c;!s7tO6q8|;egf!X8sa)5#+j_H~QU&BU+tp zGbIm%W#F#S0=vb7mnSEV1C4w-0D22ACWgJo2=wi6ZyIw51`i-!;U*BbSo?77vk3=i zSqpp5+mF9IyL-`s1$!r8LW&QAg&n1^wG2JV*Ugl@)#D^sdqb^rY-vk)7z@Fb6P8A2(hDaP6unu5o5S~t!0N3}ZfP_{Z!V+rCdyFNk@1{W(V6$%|MW-0^1AV!d- z!Fq{a%rmP85p+zdToNzPWn9xv#+W5df$uJw};JJX!hER z>i4U9xtx95fr0w>a$OS}5id##0-|K z-g+SXwACQfM00gSKHT_Y$!A?xuT~$2W86mcqhKnkC22vyq9T7OuA_Gv=87XZ=HcK# zy#qqe$1^M{1{pn$2;(|C^qh5b_~PV*+hG$RE-yqi#C@KH(?SGR$;e9W8(JA&UW!u) zOua%%sMeC`N5n|-rxf0Mdj9d*nY92r4iiQTTS3AEH{$uL$}c2_kE;V0GviEzVbhiR z5DH~E!-;&oYL^nj&mfwsvMp64G*(lsw6o%G1uE)t<wWvVBUjRj7P~#P}UT)#~qy0N~vYaz%nFc0F zBs{H!5z)pJ?dwVi2Tvi+2}5{8qvn9vIDMJ{&$7^)P#NQ;5tOuqZ1R9&iO`ADLNfV` zqii(_F-GR8G>dGL)aG@opjmDMb`hg=inTm9Pz+Swd=NLiH?o#?5Y#h9R4E`nV+?%r z7svbmXSLgP+-B#yX1qGEU=7-4c$&I5q%#IdrlRG5V4F)>f-z|oeFQ4~7#|f@URf{z zvpaX#8Q-Bm?c=MRmi0)O^m#)BB4&R# zl;~8^m6$2S;}%&ttvTy@oTGO0(&0X3cL!!gQ?A2lA`WBE+qPdUa5g)T&50me0zt~m z^Q`adG=f1home5^&35<1&=Z&FiLKK~sf$FpP{b zcGh(tpM6y=mrg8%xln|)e6EQJU+Lfp*)L#w`8A?If?~b!C-{wcDn1oUh~$eip*R3$ zSBVOXUv|JO(8Z|)p(N(5&SwD7lQj!6LTX9rG|dnkfkkQQlc_i#m3&c@{Dy@Tfo>W? z%q7x8je&W4aq!ibkXUaZnsrFnX^o*URVhI6Q+4Of66075#i7L=s|+9jz25?`>lx0v z-uv$8hUoV_&{f#X{QWNu@LAV^f!#2by{T)q84c|U z3)N}~7OvctU1Sh&-nLidN*?$5W_@@0Z;vSe7WkM#S(S2Q@ghT#PwY6kY_|{#hV;E8 z5Zi!7pkuqZ{TSjTwpZVNYHKU<3owG+t~C&;Q{Ku|avm(2C=ePnlxPZNj$j!!`x1Zn zt8cm2ycPg<`!1(w#*D2Hv>bU7iW9K>(ZuE&NAGSVF~DGJ*k)iaj!+i42-o}7*PlN; zd~zxbAgUj1_(Sb6Yu%m%z<>^4jOGEf4_>~ZcBS~mkc(WuqeZO;1c z;Oxw;e+I?A&rlhkCz+p0!Cv^11^b3o-X@VPtPh)hvDnTi{88px+-}qWqGC00!V^0b^$uR8d;L)j z0B`qeW8iyeTzh}FzmLU2=$qeuwt(1Aak$NLZ>;cxzxzAq+fpu^9Amf_AneQv zF|&9$HLAom__V}9dY9{H7&;>cg1Nq?s5lxj{oX-Fu1n2-e7bnc1B?iM~~Infk?i;Jj_`KYd!Q!XoD^ z#2O~n_$tLo_k0T}4-}*!`eH_$Zcnqm2Qag)N7Yh2lP4uufDfMyAA0%n6UCmpz8Q5KhBo63zjW=&wr{P?xjX%0mfI87=X^W(sBSjj|uuKR} zyie+`@j0bcPy@ne?-vg|c%TnW`pUFr(k>Ha%HU#(l=3psW+Dh2G%7<40N+#?r$Rp+ zKy6M>-LAYS@vy5~GyuZ_1LF?v38xDZ3&V2TE<#EkhZxy>jj^nljShp%Pr)EM4M`Op zH0K<8Pk%*K4Ibn;NpwoG9V~QafVMJIm3zo01>-ML_t&x zgynKLnhap!&EetR#f6)-c5~)#V;a4MYuz-s=^Bx?&vkU$l1V><)4T%c(gwWA^sl3< zD(n^K*S7?>!5(Fa(I35#>-Q6A>&ubeFklIkVtp$K<_g>*fbc++h#=yV)n_qwU?3w>A zR(^=!w8*h8CNs}0_&$Vl!YX8Nwu$@PxN*#TA$mhc5z`FHn;YhevXl2R7L&i+?9QD* z&0#ZcxcBtweZL%6ub}0BDW4A%$3H^ai_~N(UNOouqb88at&EFD6><8)JxqfJ%6 zK0fLei%nILk7NMA7B4Jos_Ny*Nk?{=j5Fvh zeuWW{WBCOTn~5MEO|$&Q17j^hj5lVXkwyjps^znTvom@Qja2kr&Y=+x5CkhN-*S(o zzad{{rZZdIkSOA1Ok5Qzra`@YW@;rqW1`KF3iu~FP@nos0X$jgh~;mp{TC+>y9bLq zfkWuYsOdydY{LvMjRC!d9Bw`xm*k)rJ$YEG09`&KXVXU_A@H{|27db0m%HCyO6`@A zHfaNlPzQ|hGWkXWf!WLkD1U=V$uo>fL27|$H{!DbdPi{fsTMP}0 zt_@g#w@vf?&kwOV3wKvyIqw1MA_>roA%5=G&=9W_sFxA~T>{3iPlp?simyhsfQog~ zrnA<5@Vn&?*YO+25?EPj!4Zovu&IJ_R_5Hu0B+Di)=^KOp^LDYAGBqU_(#7eyD zB@QnBrehR@d-#~nIKdMUqzyENcK`nFl?>7Mo%Xj zUyW*!mnRSV#lm=j5SR9)zsg4#M+x}U6xI|)o{4PBaf-9GEKn%^#12qyHd3Pjz;53) zPoB6-kANzfN$(pg4jGozST&m$Nh&%GUcUojd@iUxKFULxIr$rT*!TgXa7YLsstpsx zkY{_6Ra`Fz;jV8Q|Bt_U?Ch|B=;EwhY&n+feGsZw758#4h;6-;GH^F!$(bWZDemPC zi(U~30JE;2|L)m_l`}LF%bC&hzQi-q9h}pRdZYW|x&_Nhn)Usx@4+4a5>A0(WT9Rz z36EJWd;Q);h?^L#4HuNmFIs1xxMA^KGC}Q5EW4^Jx33MzuI&E70sv-VEgl|7ZUHtQ z#)HH|x5K84D|vu7H@?X9_EUmP){`ukE_^*YpO%kDEOAhI#{cynH@?524pM>v_~3b~ z-CZYJM|424q=MNSxjERv+-%ufCJJ=ZwH|8xGUW%UZ5lzVjFc{q0d(HN-M8+|8*Aff6v^u${{EY^9x&;h9`KRkTLF#=?~Y!2s~JdB?PhN8~-OYI^YSXG&>PRj-ea zUL76BsM`X{DAB;Z~Cr1NO-yZ%P0IY>gwVxi&>3U8vj@&zLTp z7b!{(LlecLgy&$b#?@iedCu;U7H+k)KJehHFZZ7Rb84#*O5fC|&&h5o@3Az+SUso| z6%5C~=8>^Op86F?#usX=Mb1x$nJm6J5M+xy$IlB@9O+ar#l!I8i{~quS-^J)&5s2(Nzkzkk?VkGCLIN+*R#bI`z; zH{wE@>Q9qz8x4(#frTnPgfW zL~(?LQXT^*)^_{LdbPx(-8IFboJ>Su9=G>NuT0$#JF;hw)B>L>i;_-SiaFliE~xAb z22RI(J#Ff$|J8&0PoMhq;KeohN;df;A(?Mw3WGfc_BRL^zdAa~e{q0l;uZ_~5_g_x z6No!;0ZF_Kb=FkPrKjR%mp*M`t{iO(&#-J79V3_8@guy$}tc6Uo zkDfnz)D_n)=Yek7I~ZOr>pc-4DW`gtvZefHo4N+DxD;xAc$jHn`}zp#)zTeNzIXZr zKs5~`li>R8^az$u2DgZ)D21{SXB`Vas4KW(ZHti29T;;(F-5hTXc$EeS(@-L98cXA=Jo};0! z#K0t>6$$U3KiywFBiPbC&em3a8{C>?qGo!kVq`{0ONt|6UM=m;H{JD(+fDm?dZr1y;af{2ym9yx01)oVMSolbhqDtQ zjvGp&PN}e%jPT=>SU&jjSp!Zoe+Iw%RaLn(T3jm$p%QluUvIp>e zzit`_ryWRUG8}BRT5alTH{5saXxANkW?z481Fx)-nxEE2epfEVUq+0o~%3 zb#WH7eh_cA8eDA!5r$rNXbXX$xsNIrZV1DhnKMd1Elo8KhLcK^Lq=g>`snM=AO872 z{V%;T^p8OuhWM1~BET^$rxA>CqfRDnSc_|T-uwUv{9l)vbhZuJY276I1JL8rs)@p z*T+Y>_+mzPigz$POXYPM8RA`Vm@iVnl*xBu<OL4+l7cH}l`gAIE z5xP8=xwKX z%EqGg7Ke_Yx+3#tF#_4O<#VCSQ^{Hjphe&X#GpTgi+}%kX9ple60^Se@A?|7^%vDR zFHGmCF(hVsX`m}HozWe{tNF<9X->OZF1It#ra{0!LV8zA4*dYF9NC<1N0TE0I1 zby~?Guo@!*vuTkrDG~+%t6i6!ZGG(v5`!UT3&NWlGP{XPC;;HWr;h&kn@7#*6Hr={ z7_q1`0HU5FJvANnaJ}1gF}9ZtsIkN?AKa=y!$VyZ+M?YISb!Nx%1q8`xvZDVd04PP zj8GPBOkIdYz={VoJOqyF@{?XWD*q{|kW|4`PLMyA$qfwS8-504IC4~Xt(d~Jw3mF{*(us9Ak<|gOpmwL>K@+sy(Kf^*tCf zZ=VC6)cyRqc$I3k0)Tq8;s%9QbRdVTH+5~p?biM_i!f#Fk~px>qH3lqOAj?hr#vX&5RK+Lhpz-Xh3#+1r4gL`A`bIm*i&dj6Az^!S!<@fpd zXZ;N41QP4eH+9s@r56{Ypl>7&aOgWGYX;Gvcb>qWnz^3=z@$!jFhH3(*dkb>$LHX{ zc^FhO;dBxR?GfA%dL~`1DBg>E*!U492WtV=O>^~WGh?=(NdT~z6E@e^%FJ-+hd%8X zO7x~l!;8a7Rt+Z(n&}6V}<$gU8%?F>llTYzmc-w&&Hb2z<}4@xE{z;&Af8 z+1ae`{SjzYwcE!D008T+GBMCSSnRd!o2GI5x5Iipsu2uF!qlurIgke?qjXm^05$E* z*v(ocTC|%+bEP_JT;v3q_4=^c)YYu-(wuB;JFGJ9W)9X_SP+vKW8{sSIQmgFdWiW4~cRgJlXGUp64Wm{Rq91M&>mo=T(w5|?9Oll%$ zb23wW>)CWh~8H%htKD<2QXeZ`)6voMImI4*6W2X+;ukgdxP*7dAevHNsxx z@ic@al{tyZ=w9J4GSI}af(U&fS}T0+Dmax7jZJ5Ghye>P{=?(h%m~Ctr$-#(r9f9e zUkZ$YaLyJ$W;E`_ni$QBWpDALleK>Bk{#mOAAwMeTIQRaMUF%VfuSbYss`IpItfhW zvyjyV(M@tl%&8GuNkyF0>nI&M9!=9A{ib$Di&+SZ!26obR5wqaRLf +#else translate <2.5, -1, -1> +#end pigment { color White } diff --git a/resource/logo/logo64.png b/resource/logo/logo64.png index 5667871134a555ed0bd7d91bc37f3f429690a8b7..45610c5456ca4d849dd43a4458b39df9d36d440c 100644 GIT binary patch delta 124 zcmeyM{6Tp_2G=VVAyEP4w#zFuCi@ABOPT2!nCKc>gcuoG8Jbxcn`#>vSQ!}j=l?IC pT#q4bXbF+ty_@+BDnwn delta 183 zcmeyM{6Tp_2G>h&88%bJs?h0en>iTo3)HKYxJHzuB$lLFB^RXvDF!10BU4>NLtP__ z5CbzSQ)4S*V{HQiD+7b;u^-$R7#I*5a`RI%(<(7F7@0yea8}jE0X1mAZ79jiO)V}- b%q>9ZQ9!rlqiCioP!ofvtDnm{r-UW|y{9vy diff --git a/tools/logo.sh b/tools/logo.sh index b2f2f6c73..9d346018b 100755 --- a/tools/logo.sh +++ b/tools/logo.sh @@ -1,8 +1,9 @@ #!/bin/sh povray +A +W256 +H256 +Ologo.png resource/logo/logo.pov povray +A +W1280 +H640 +Obanner.png resource/logo/banner.pov +povray +A +W1280 +H640 +Obanner-nodejs.png Declare=NODEJS=1 resource/logo/banner.pov povray +A +W102 +H47 +O102x47.png resource/logo/102x47.pov -mv logo.png banner.png resource/logo/ +mv logo.png banner.png banner-nodejs.png resource/logo/ magick resource/logo/logo.png -scale x64 resource/logo/logo64.png magick 102x47.png resource/logo/overlay-102x47.png -compose over -composite resource/logo/102x47.png rm -f 102x47.png From 7fb12e81829a5e9433da27801b138393c4e0eeec Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 19 Apr 2026 11:57:19 +0900 Subject: [PATCH 444/836] oops --- milsko.xml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/milsko.xml b/milsko.xml index 37d3fe5b9..34efa32ad 100644 --- a/milsko.xml +++ b/milsko.xml @@ -475,13 +475,6 @@ - - - - - - -

From 74f41cafde23fd025e2ee7c65ed74de7aee2642d Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 20 Apr 2026 00:09:08 +0900 Subject: [PATCH 445/836] fix --- milsko.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/milsko.xml b/milsko.xml index 34efa32ad..0fda1d626 100644 --- a/milsko.xml +++ b/milsko.xml @@ -759,6 +759,11 @@ + + + + + From d3eb93a30a6176b8faf83c7709467a6d5dd979d7 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 20 Apr 2026 00:18:04 +0900 Subject: [PATCH 446/836] change key constants --- examples/gldemos/gears.c | 8 ++++---- include/Mw/Constants.h | 18 ++++++++++++++++++ include/Mw/LowLevel.h | 18 ------------------ src/backend/gdi.c | 32 ++++++++++++++++---------------- src/backend/wayland.c | 26 +++++++++++++------------- src/backend/x11.c | 30 +++++++++++++++--------------- src/widget/entry.c | 12 ++++++------ src/widget/numberentry.c | 2 +- 8 files changed, 73 insertions(+), 73 deletions(-) diff --git a/examples/gldemos/gears.c b/examples/gldemos/gears.c index 04962c8c5..5d06b067b 100644 --- a/examples/gldemos/gears.c +++ b/examples/gldemos/gears.c @@ -231,13 +231,13 @@ static void init(void) { static void key(int k) { (void)k; - if(k == MwLLKeyLeft) { + if(k == MwKEY_LEFT) { view_roty += 5.0; - } else if(k == MwLLKeyRight) { + } else if(k == MwKEY_RIGHT) { view_roty -= 5.0; - } else if(k == MwLLKeyUp) { + } else if(k == MwKEY_UP) { view_rotx += 5.0; - } else if(k == MwLLKeyDown) { + } else if(k == MwKEY_DOWN) { view_rotx -= 5.0; } } diff --git a/include/Mw/Constants.h b/include/Mw/Constants.h index d710ca006..dbb9953ce 100644 --- a/include/Mw/Constants.h +++ b/include/Mw/Constants.h @@ -121,4 +121,22 @@ enum MwMOUSE { MwMOUSE_WHEELDOWN }; +#define MwKEY_MASK (1 << 31) +#define MwKEY_CONTROL_MASK MwKEY_MASK | (1 << 30) +#define MwKEY_ALT_MASK MwKEY_MASK | (1 << 29) + +enum MwKEY { + MwKEY_BACKSPACE = MwKEY_MASK | 1, + MwKEY_LEFT, + MwKEY_RIGHT, + MwKEY_UP, + MwKEY_DOWN, + MwKEY_ENTER, + MwKEY_ESCAPE, + MwKEY_LEFTSHIFT, + MwKEY_RIGHTSHIFT, + MwKEY_ALT, + MwKEY_CONTROL +}; + #endif diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 1b5ec5299..3b3ae66ba 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -177,24 +177,6 @@ union _MwLLPixmap { #define MwLLDispatch(x, y, z) \ if(x->common.handler != NULL && x->common.handler->y != NULL) x->common.handler->y(x, z) -#define MwLLKeyMask (1 << 31) -enum MwLLKeyEnum { - MwLLKeyBackSpace = MwLLKeyMask | 1, - MwLLKeyLeft, - MwLLKeyRight, - MwLLKeyUp, - MwLLKeyDown, - MwLLKeyEnter, - MwLLKeyEscape, - MwLLKeyLeftShift, - MwLLKeyRightShift, - MwLLKeyAlt, - MwLLKeyControl -}; - -#define MwLLControlMask MwLLKeyMask | (1 << 30) -#define MwLLAltMask MwLLKeyMask | (1 << 29) - struct _MwLLHandler { void (*draw)(MwLL handle, void* data); void (*up)(MwLL handle, void* data); diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 024959e9d..5725912ce 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -166,13 +166,13 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { const int base = 'A' - 1; if(n != 0x1b && n <= 0x1f) { - n = (n + base) | MwLLControlMask; + n = (n + base) | MwKEY_CONTROL_MASK; if(!(GetKeyState(VK_LSHIFT) || GetKeyState(VK_RSHIFT))) n += 0x20; } - if(HIBYTE(VkKeyScan(wp)) & 2) n |= MwLLControlMask; - if(msg == WM_SYSCHAR) n |= MwLLAltMask; + if(HIBYTE(VkKeyScan(wp)) & 2) n |= MwKEY_CONTROL_MASK; + if(msg == WM_SYSCHAR) n |= MwKEY_ALT_MASK; - if((0x20 <= n && n <= 0x7f) || (n & MwLLKeyMask)) MwLLDispatch(u->ll, key, &n); + if((0x20 <= n && n <= 0x7f) || (n & MwKEY_MASK)) MwLLDispatch(u->ll, key, &n); } else if(msg == WM_SETFOCUS) { MwLLDispatch(u->ll, focus_in, NULL); } else if(msg == WM_KILLFOCUS) { @@ -180,20 +180,20 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { } else if(msg == WM_KEYDOWN || msg == WM_KEYUP || msg == WM_SYSKEYDOWN || msg == WM_SYSKEYUP) { int n = -1; if(wp == VK_MENU && msg == WM_KEYUP) return 0; - if(wp == VK_LEFT) n = MwLLKeyLeft; - if(wp == VK_RIGHT) n = MwLLKeyRight; - if(wp == VK_UP) n = MwLLKeyUp; - if(wp == VK_DOWN) n = MwLLKeyDown; - if(wp == VK_RETURN) n = MwLLKeyEnter; - if(wp == VK_BACK) n = MwLLKeyBackSpace; - if(wp == VK_ESCAPE) n = MwLLKeyEscape; - if(wp == VK_LSHIFT) n = MwLLKeyLeftShift; - if(wp == VK_RSHIFT) n = MwLLKeyRightShift; - if(wp == VK_MENU) n = MwLLKeyAlt; - if(wp == VK_CONTROL) n = MwLLKeyControl; + if(wp == VK_LEFT) n = MwKEY_LEFT; + if(wp == VK_RIGHT) n = MwKEY_RIGHT; + if(wp == VK_UP) n = MwKEY_UP; + if(wp == VK_DOWN) n = MwKEY_DOWN; + if(wp == VK_RETURN) n = MwKEY_ENTER; + if(wp == VK_BACK) n = MwKEY_BACKSPACE; + if(wp == VK_ESCAPE) n = MwKEY_ESCAPE; + if(wp == VK_LSHIFT) n = MwKEY_LEFTSHIFT; + if(wp == VK_RSHIFT) n = MwKEY_RIGHTSHIFT; + if(wp == VK_MENU) n = MwKEY_ALT; + if(wp == VK_CONTROL) n = MwKEY_CONTROL; if((msg == WM_SYSKEYDOWN || msg == WM_SYSKEYUP) && n != -1 && wp != VK_MENU) { - n |= MwLLAltMask; + n |= MwKEY_ALT_MASK; } if(n != -1) { if(msg == WM_KEYDOWN || msg == WM_SYSKEYDOWN) { diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 4cab7e624..56a356f3b 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -766,39 +766,39 @@ static void keyboard_key(void* data, switch(sym) { case XKB_KEY_BackSpace: - key = MwLLKeyBackSpace; + key = MwKEY_BACKSPACE; break; case XKB_KEY_Left: - key = MwLLKeyLeft; + key = MwKEY_LEFT; break; case XKB_KEY_Right: - key = MwLLKeyRight; + key = MwKEY_RIGHT; break; case XKB_KEY_Up: - key = MwLLKeyUp; + key = MwKEY_UP; break; case XKB_KEY_Down: - key = MwLLKeyDown; + key = MwKEY_DOWN; break; case XKB_KEY_Return: - key = MwLLKeyEnter; + key = MwKEY_ENTER; break; case XKB_KEY_Escape: - key = MwLLKeyEscape; + key = MwKEY_ESCAPE; break; case XKB_KEY_Shift_L: - key = MwLLKeyLeftShift; + key = MwKEY_LEFTSHIFT; break; case XKB_KEY_Shift_R: - key = MwLLKeyRightShift; + key = MwKEY_RIGHTSHIFT; break; case XKB_KEY_Alt_L: case XKB_KEY_Alt_R: - key = MwLLKeyAlt; + key = MwKEY_ALT; break; case XKB_KEY_Control_L: case XKB_KEY_Control_R: - key = MwLLKeyControl; + key = MwKEY_CONTROL; break; default: if(MwStringIsKeyUTF8(sym)) { @@ -807,10 +807,10 @@ static void keyboard_key(void* data, } if((self->wayland.mod_state & 4) == 4) { - key |= MwLLControlMask; + key |= MwKEY_CONTROL_MASK; } if((self->wayland.mod_state & 8) == 8) { - key |= MwLLAltMask; + key |= MwKEY_ALT_MASK; } if(key != -1) { diff --git a/src/backend/x11.c b/src/backend/x11.c index f772b7b12..fd86af0d0 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -791,34 +791,34 @@ static void MwLLNextEventImpl(MwLL handle) { } if(strcmp(str, "BackSpace") == 0) { - n = MwLLKeyBackSpace; + n = MwKEY_BACKSPACE; } else if(strcmp(str, "Left") == 0) { - n = MwLLKeyLeft; + n = MwKEY_LEFT; } else if(strcmp(str, "Right") == 0) { - n = MwLLKeyRight; + n = MwKEY_RIGHT; } else if(strcmp(str, "Up") == 0) { - n = MwLLKeyUp; + n = MwKEY_UP; } else if(strcmp(str, "Down") == 0) { - n = MwLLKeyDown; + n = MwKEY_DOWN; } else if(strcmp(str, "Return") == 0) { - n = MwLLKeyEnter; + n = MwKEY_ENTER; } else if(strcmp(str, "Escape") == 0) { - n = MwLLKeyEscape; + n = MwKEY_ESCAPE; } else if(strcmp(str, "Shift_L") == 0) { - n = MwLLKeyLeftShift; + n = MwKEY_LEFTSHIFT; } else if(strcmp(str, "Shift_R") == 0) { - n = MwLLKeyRightShift; + n = MwKEY_RIGHTSHIFT; } else if(strcmp(str, "Alt_L") == 0 || strcmp(str, "Alt_R") == 0) { - n = MwLLKeyAlt; + n = MwKEY_ALT; } else if(strcmp(str, "Control_R") == 0 || strcmp(str, "Control_R") == 0) { - n = MwLLKeyControl; + n = MwKEY_CONTROL; } - if(n != MwLLKeyControl && ev.xkey.state & ControlMask) { - n |= MwLLControlMask; + if(n != MwKEY_CONTROL && ev.xkey.state & ControlMask) { + n |= MwKEY_CONTROL_MASK; } - if(n != MwLLKeyAlt && ev.xkey.state & Mod1Mask) { - n |= MwLLAltMask; + if(n != MwKEY_ALT && ev.xkey.state & Mod1Mask) { + n |= MwKEY_ALT_MASK; } if(n != -1) { diff --git a/src/widget/entry.c b/src/widget/entry.c index 71b3284b0..173b5eec8 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -92,7 +92,7 @@ static void key(MwWidget handle, int code) { char* out; if(str == NULL) str = ""; - if(code == MwLLKeyBackSpace) { + if(code == MwKEY_BACKSPACE) { if(t->cursor == 0) return; out = malloc(strlen(str) + 1); @@ -105,17 +105,17 @@ static void key(MwWidget handle, int code) { MwDispatchUserHandler(handle, MwNchangedHandler, NULL); free(out); - } else if(code == MwLLKeyLeft) { + } else if(code == MwKEY_LEFT) { if(t->cursor == 0) return; t->cursor--; - } else if(code == MwLLKeyRight) { + } else if(code == MwKEY_RIGHT) { if(t->cursor == MwUTF8Length(str)) return; t->cursor++; - } else if(code == MwLLKeyEnter) { + } else if(code == MwKEY_ENTER) { MwDispatchUserHandler(handle, MwNactivateHandler, NULL); - } else if(code == (MwLLControlMask | 'v')) { + } else if(code == (MwKEY_CONTROL_MASK | 'v')) { MwLLGetClipboard(handle->lowlevel, MwCLIPBOARD_MAIN); - } else if(!(code & MwLLKeyMask)) { + } else if(!(code & MwKEY_MASK)) { int incr = 0; out = malloc(strlen(str) + 5 + 1); incr += MwUTF8Copy(str, 0, out, 0, t->cursor); diff --git a/src/widget/numberentry.c b/src/widget/numberentry.c index 617f2a1ef..f1d7bde71 100644 --- a/src/widget/numberentry.c +++ b/src/widget/numberentry.c @@ -75,7 +75,7 @@ static void key(MwWidget handle, int code) { ok = 1; } else if(code == '.' && strchr(str, (int)'.') == NULL) { ok = 1; - } else if(code == MwLLKeyBackSpace || code == MwLLKeyLeft || code == MwLLKeyRight) { + } else if(code == MwKEY_BACKSPACE || code == MwKEY_LEFT || code == MwKEY_RIGHT) { ok = 1; } From 47ba1a9b50974699a5b9eb6353deb19a34d333b2 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 20 Apr 2026 00:23:04 +0900 Subject: [PATCH 447/836] rename some stuff --- include/Mw/Constants.h | 8 ++++---- milsko.xml | 29 +++++++++++++++++++++++++++++ src/backend/gdi.c | 10 +++++----- src/backend/wayland.c | 4 ++-- src/backend/x11.c | 4 ++-- src/widget/entry.c | 4 ++-- 6 files changed, 44 insertions(+), 15 deletions(-) diff --git a/include/Mw/Constants.h b/include/Mw/Constants.h index dbb9953ce..15853ff7b 100644 --- a/include/Mw/Constants.h +++ b/include/Mw/Constants.h @@ -121,12 +121,12 @@ enum MwMOUSE { MwMOUSE_WHEELDOWN }; -#define MwKEY_MASK (1 << 31) -#define MwKEY_CONTROL_MASK MwKEY_MASK | (1 << 30) -#define MwKEY_ALT_MASK MwKEY_MASK | (1 << 29) +#define MwKEY_FLAG 0x80000000 +#define MwKEY_CONTROL_FLAG MwKEY_FLAG | 0x40000000 +#define MwKEY_ALT_FLAG MwKEY_FLAG | 0x20000000 enum MwKEY { - MwKEY_BACKSPACE = MwKEY_MASK | 1, + MwKEY_BACKSPACE = MwKEY_FLAG | 1, MwKEY_LEFT, MwKEY_RIGHT, MwKEY_UP, diff --git a/milsko.xml b/milsko.xml index 0fda1d626..717a49e42 100644 --- a/milsko.xml +++ b/milsko.xml @@ -216,15 +216,44 @@ + + 0x80000001 + + + + + + + + + + + + + 0 + + + + + + + + + 0x0fffffff + 0xf 0xf0 0x10 0x20 0x40 0x80 + + 0x80000000 + 0xc0000000 + 0xa0000000
diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 5725912ce..b7bebe0c2 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -166,13 +166,13 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { const int base = 'A' - 1; if(n != 0x1b && n <= 0x1f) { - n = (n + base) | MwKEY_CONTROL_MASK; + n = (n + base) | MwKEY_CONTROL_FLAG; if(!(GetKeyState(VK_LSHIFT) || GetKeyState(VK_RSHIFT))) n += 0x20; } - if(HIBYTE(VkKeyScan(wp)) & 2) n |= MwKEY_CONTROL_MASK; - if(msg == WM_SYSCHAR) n |= MwKEY_ALT_MASK; + if(HIBYTE(VkKeyScan(wp)) & 2) n |= MwKEY_CONTROL_FLAG; + if(msg == WM_SYSCHAR) n |= MwKEY_ALT_FLAG; - if((0x20 <= n && n <= 0x7f) || (n & MwKEY_MASK)) MwLLDispatch(u->ll, key, &n); + if((0x20 <= n && n <= 0x7f) || (n & MwKEY_FLAG)) MwLLDispatch(u->ll, key, &n); } else if(msg == WM_SETFOCUS) { MwLLDispatch(u->ll, focus_in, NULL); } else if(msg == WM_KILLFOCUS) { @@ -193,7 +193,7 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { if(wp == VK_CONTROL) n = MwKEY_CONTROL; if((msg == WM_SYSKEYDOWN || msg == WM_SYSKEYUP) && n != -1 && wp != VK_MENU) { - n |= MwKEY_ALT_MASK; + n |= MwKEY_ALT_FLAG; } if(n != -1) { if(msg == WM_KEYDOWN || msg == WM_SYSKEYDOWN) { diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 56a356f3b..59366481e 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -807,10 +807,10 @@ static void keyboard_key(void* data, } if((self->wayland.mod_state & 4) == 4) { - key |= MwKEY_CONTROL_MASK; + key |= MwKEY_CONTROL_FLAG; } if((self->wayland.mod_state & 8) == 8) { - key |= MwKEY_ALT_MASK; + key |= MwKEY_ALT_FLAG; } if(key != -1) { diff --git a/src/backend/x11.c b/src/backend/x11.c index fd86af0d0..8d93e6a47 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -815,10 +815,10 @@ static void MwLLNextEventImpl(MwLL handle) { } if(n != MwKEY_CONTROL && ev.xkey.state & ControlMask) { - n |= MwKEY_CONTROL_MASK; + n |= MwKEY_CONTROL_FLAG; } if(n != MwKEY_ALT && ev.xkey.state & Mod1Mask) { - n |= MwKEY_ALT_MASK; + n |= MwKEY_ALT_FLAG; } if(n != -1) { diff --git a/src/widget/entry.c b/src/widget/entry.c index 173b5eec8..d38e6d5f5 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -113,9 +113,9 @@ static void key(MwWidget handle, int code) { t->cursor++; } else if(code == MwKEY_ENTER) { MwDispatchUserHandler(handle, MwNactivateHandler, NULL); - } else if(code == (MwKEY_CONTROL_MASK | 'v')) { + } else if(code == (MwKEY_CONTROL_FLAG | 'v')) { MwLLGetClipboard(handle->lowlevel, MwCLIPBOARD_MAIN); - } else if(!(code & MwKEY_MASK)) { + } else if(!(code & MwKEY_FLAG)) { int incr = 0; out = malloc(strlen(str) + 5 + 1); incr += MwUTF8Copy(str, 0, out, 0, t->cursor); From be6198aa835b62c4ebd3ad63e818b6cbf7f14deb Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 20 Apr 2026 00:24:49 +0900 Subject: [PATCH 448/836] oops --- milsko.xml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/milsko.xml b/milsko.xml index 717a49e42..7043b307c 100644 --- a/milsko.xml +++ b/milsko.xml @@ -205,17 +205,6 @@ - - 0 - - - - - - - - - 0x80000001 From 4eb20e47b5e7b08dce5199f736d9c8ea986094ac Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 20 Apr 2026 00:28:35 +0900 Subject: [PATCH 449/836] update --- milsko.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/milsko.xml b/milsko.xml index 7043b307c..d166ff228 100644 --- a/milsko.xml +++ b/milsko.xml @@ -230,6 +230,7 @@ + 0x0fffffff From 20d1a455e7227b8ba27e6d987625cd1660f1a6c9 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 20 Apr 2026 01:51:29 +0900 Subject: [PATCH 450/836] solve problems --- examples/basic/messagebox.c | 3 +++ milsko.xml | 1 + src/dialog/messagebox.c | 8 -------- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/examples/basic/messagebox.c b/examples/basic/messagebox.c index bb1c30dd3..e95f55ae1 100644 --- a/examples/basic/messagebox.c +++ b/examples/basic/messagebox.c @@ -13,6 +13,7 @@ void spawn(MwWidget handle, void* user, void* call) { (void)call; MwAddUserHandler(MwMessageBoxGetChild(mb, MwMB_BUTTONOK), MwNactivateHandler, ok, mb); + MwAddUserHandler(mb, MwNcloseHandler, ok, mb); } void spawn2(MwWidget handle, void* user, void* call) { @@ -22,6 +23,7 @@ void spawn2(MwWidget handle, void* user, void* call) { (void)call; MwAddUserHandler(MwMessageBoxGetChild(mb, MwMB_BUTTONOK), MwNactivateHandler, ok, mb); + MwAddUserHandler(mb, MwNcloseHandler, ok, mb); } void spawn3(MwWidget handle, void* user, void* call) { @@ -33,6 +35,7 @@ void spawn3(MwWidget handle, void* user, void* call) { for(i = 0; i <= MwMB_ICONCLOCK; i++) { MwWidget mb = MwMessageBox(user, "messagebox test", "title", i | MwMB_BUTTONOK); MwAddUserHandler(MwMessageBoxGetChild(mb, MwMB_BUTTONOK), MwNactivateHandler, ok, mb); + MwAddUserHandler(mb, MwNcloseHandler, ok, mb); } } diff --git a/milsko.xml b/milsko.xml index d166ff228..5e93f3095 100644 --- a/milsko.xml +++ b/milsko.xml @@ -782,6 +782,7 @@ + diff --git a/src/dialog/messagebox.c b/src/dialog/messagebox.c index 1d2b9912c..43e837aaf 100644 --- a/src/dialog/messagebox.c +++ b/src/dialog/messagebox.c @@ -18,12 +18,6 @@ static void spawn_button(MwWidget handle, int x, int y, int id, const char* text handle->opaque = mb; } -static void messagebox_close(MwWidget handle, void* user, void* call) { - (void)user; - (void)call; - MwMessageBoxDestroy(handle); -} - MwWidget MwMessageBox(MwWidget handle, const char* text, const char* title, unsigned int flag) { MwWidget window; int w, h; @@ -112,8 +106,6 @@ MwWidget MwMessageBox(MwWidget handle, const char* text, const char* title, unsi MwLLMakePopup(window->lowlevel, handle == NULL ? NULL : handle->lowlevel); MwLLEndStateChange(window->lowlevel); - MwAddUserHandler(window, MwNcloseHandler, messagebox_close, NULL); - return window; } From a59154d5f16a2ab8f5b6bfee7698da2db8fdd0d3 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 20 Apr 2026 02:04:43 +0900 Subject: [PATCH 451/836] remove MwMessageBoxDestroy, introduce destroy_inject --- examples/basic/listbox.c | 2 +- examples/basic/messagebox.c | 2 +- examples/basic/treeview.c | 2 +- include/Mw/Dialog/MessageBox.h | 6 ------ include/Mw/TypeDefs.h | 1 + milsko.xml | 5 ----- src/core.c | 2 ++ src/dialog/filechooser.c | 2 +- src/dialog/messagebox.c | 22 +++++++++++++++------- 9 files changed, 22 insertions(+), 22 deletions(-) diff --git a/examples/basic/listbox.c b/examples/basic/listbox.c index 8f6ca5a26..3120d01be 100644 --- a/examples/basic/listbox.c +++ b/examples/basic/listbox.c @@ -7,7 +7,7 @@ MwWidget wmain; void destroy(MwWidget handle, void* user, void* call) { (void)handle; (void)call; - MwMessageBoxDestroy(user); + MwDestroyWidget(user); } void activate(MwWidget handle, void* user, void* call) { diff --git a/examples/basic/messagebox.c b/examples/basic/messagebox.c index e95f55ae1..343042f16 100644 --- a/examples/basic/messagebox.c +++ b/examples/basic/messagebox.c @@ -3,7 +3,7 @@ void ok(MwWidget handle, void* user, void* call) { (void)handle; (void)call; - MwMessageBoxDestroy(user); + MwDestroyWidget(user); } void spawn(MwWidget handle, void* user, void* call) { diff --git a/examples/basic/treeview.c b/examples/basic/treeview.c index e08db39c3..3be61cd49 100644 --- a/examples/basic/treeview.c +++ b/examples/basic/treeview.c @@ -5,7 +5,7 @@ MwWidget wmain; void destroy(MwWidget handle, void* user, void* call) { (void)handle; (void)call; - MwMessageBoxDestroy(user); + MwDestroyWidget(user); } void activate(MwWidget handle, void* user, void* call) { diff --git a/include/Mw/Dialog/MessageBox.h b/include/Mw/Dialog/MessageBox.h index 8a5e9cba8..c0e76edb6 100644 --- a/include/Mw/Dialog/MessageBox.h +++ b/include/Mw/Dialog/MessageBox.h @@ -29,12 +29,6 @@ MWDECL MwWidget MwMessageBox(MwWidget handle, const char* text, const char* titl */ MWDECL MwWidget MwMessageBoxGetChild(MwWidget handle, int child); -/*! - * @brief Destroys the message box - * @param handle Widget - */ -MWDECL void MwMessageBoxDestroy(MwWidget handle); - #ifdef __cplusplus } #endif diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index 21def057b..5e62dbf30 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -91,6 +91,7 @@ struct _MwWidget { void* internal; void* opaque; void (*draw_inject)(MwWidget handle); + void (*destroy_inject)(MwWidget handle); MwIntegerKeyValue* integer; MwTextKeyValue* text; diff --git a/milsko.xml b/milsko.xml index 5e93f3095..fadaadcd3 100644 --- a/milsko.xml +++ b/milsko.xml @@ -554,11 +554,6 @@ - - - - -
diff --git a/src/core.c b/src/core.c index 6476ccbb6..758e86a9a 100644 --- a/src/core.c +++ b/src/core.c @@ -200,6 +200,7 @@ MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, h->destroy_queue = NULL; h->prop_event = 1; h->draw_inject = NULL; + h->destroy_inject = NULL; h->tick_list = NULL; h->destroyed = 0; h->bgcolor = NULL; @@ -317,6 +318,7 @@ static void MwFreeWidget(MwWidget handle) { handle->destroyed = 0; MwDispatch(handle, destroy); + if(handle->destroy_inject != NULL) handle->destroy_inject(handle); for(i = 0; i < arrlen(handle->children); i++) { MwFreeWidget(handle->children[i]); diff --git a/src/dialog/filechooser.c b/src/dialog/filechooser.c index f155f0747..b65346b04 100644 --- a/src/dialog/filechooser.c +++ b/src/dialog/filechooser.c @@ -78,7 +78,7 @@ static void msgbox_okay(MwWidget handle, void* user, void* call) { (void)user; (void)call; - MwMessageBoxDestroy(handle->parent); + MwDestroyWidget(handle->parent); } static void files_activate(MwWidget handle, void* user, void* call) { diff --git a/src/dialog/messagebox.c b/src/dialog/messagebox.c index 43e837aaf..c634b5d88 100644 --- a/src/dialog/messagebox.c +++ b/src/dialog/messagebox.c @@ -18,6 +18,18 @@ static void spawn_button(MwWidget handle, int x, int y, int id, const char* text handle->opaque = mb; } +static void messagebox_destroy_inject(MwWidget handle) { + void* px; + + if((px = MwGetVoid(handle, MwNpixmap)) != NULL) MwLLDestroyPixmap(px); +} + +static void messagebox_close(MwWidget handle, void* user, void* call) { + (void)user; + (void)call; + MwDestroyWidget(handle); +} + MwWidget MwMessageBox(MwWidget handle, const char* text, const char* title, unsigned int flag) { MwWidget window; int w, h; @@ -106,6 +118,9 @@ MwWidget MwMessageBox(MwWidget handle, const char* text, const char* title, unsi MwLLMakePopup(window->lowlevel, handle == NULL ? NULL : handle->lowlevel); MwLLEndStateChange(window->lowlevel); + MwAddUserHandler(window, MwNcloseHandler, messagebox_close, NULL); + window->destroy_inject = messagebox_destroy_inject; + return window; } @@ -114,10 +129,3 @@ MwWidget MwMessageBoxGetChild(MwWidget handle, int child) { return hmget(mb, child); } - -void MwMessageBoxDestroy(MwWidget handle) { - void* px; - - if((px = MwGetVoid(handle, MwNpixmap)) != NULL) MwLLDestroyPixmap(px); - MwDestroyWidget(handle); -} From 449a0691e0339de35f863b79468f43c548517978 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 20 Apr 2026 02:44:37 +0900 Subject: [PATCH 452/836] fix --- configure | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/configure b/configure index 259254266..3c0d63d6b 100755 --- a/configure +++ b/configure @@ -73,6 +73,21 @@ my @features_keys = ( "1dbus" ); +if($target ne "Darwin" and $target ne "ClassicMacOS" and $target ne "Windows") { + param_set("freetype2", 1); + param_set("stb-truetype", 0); +} else { + param_set("freetype2", 0); + param_set("stb-truetype", 0); +} + +if($target eq "Linux") { + param_set("x11", 1); + if(!param_get("tiny")){ + param_set("wayland", 1); + } +} + foreach my $l (@ARGV) { if ($l =~ /^--with-([^=]+)=(.+)$/) { param_set($1, $2); @@ -135,21 +150,6 @@ foreach my $l (@ARGV) { } } -if($target ne "Darwin" and $target ne "ClassicMacOS" and $target ne "Windows") { - param_set("freetype2", 1); - param_set("stb-truetype", 0); -} else { - param_set("freetype2", 0); - param_set("stb-truetype", 0); -} - -if($target eq "Linux") { - param_set("x11", 1); - if(!param_get("tiny")){ - param_set("wayland", 1); - } -} - if (-f "./pl/ostype/${target}.pl") { require("./pl/ostype/${target}.pl"); } From 27c9eb97c1f623b82f3fc51781270cf7c376b545 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 20 Apr 2026 02:48:51 +0900 Subject: [PATCH 453/836] fix as ioi intended this --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index 3c0d63d6b..5bd5cc60e 100755 --- a/configure +++ b/configure @@ -78,7 +78,7 @@ if($target ne "Darwin" and $target ne "ClassicMacOS" and $target ne "Windows") { param_set("stb-truetype", 0); } else { param_set("freetype2", 0); - param_set("stb-truetype", 0); + param_set("stb-truetype", 1); } if($target eq "Linux") { From c945ebb9cad578f03b4460527fdada516830d7f7 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 20 Apr 2026 03:05:17 +0900 Subject: [PATCH 454/836] oops --- milsko.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/milsko.xml b/milsko.xml index fadaadcd3..8489ab86e 100644 --- a/milsko.xml +++ b/milsko.xml @@ -494,6 +494,14 @@ + + + + + + + +
From a7828a44d814c850c3e974fc8a74a3d4e15743ab Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 20 Apr 2026 03:45:45 +0900 Subject: [PATCH 455/836] fix --- milsko.xml | 2 +- resource/logo/logo.pov | 4 ++++ resource/logo/logo64.png | Bin 4592 -> 0 bytes 3 files changed, 5 insertions(+), 1 deletion(-) delete mode 100644 resource/logo/logo64.png diff --git a/milsko.xml b/milsko.xml index 8489ab86e..e4bf6aef6 100644 --- a/milsko.xml +++ b/milsko.xml @@ -664,7 +664,7 @@ - + diff --git a/resource/logo/logo.pov b/resource/logo/logo.pov index b86f23ecf..5348056ec 100644 --- a/resource/logo/logo.pov +++ b/resource/logo/logo.pov @@ -17,6 +17,7 @@ sky_sphere { } } +union { object { Cube translate <-1, 0, 1> @@ -57,6 +58,9 @@ object { } } +rotate <0, clock * 360, 0> +} + plane { y, -1 pigment { diff --git a/resource/logo/logo64.png b/resource/logo/logo64.png deleted file mode 100644 index 45610c5456ca4d849dd43a4458b39df9d36d440c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4592 zcmZXYcQD+6x5dA^M2#AvM%f^0tcV`bmaH0@ zak=Hh0sxF(wP9)|Pv1(}RNq4yUdzMreF2DxOca&o&9wk8tSs zuJ|dK46zJ|;oY+nyyW|=0a}KZ=>%eoXsl#bW3`H|T24#jkSZA-zAY$- zSnaETxnt|344pn)hxl*+oNQL%hg$j8LPB`xMF?`#ChQ#}q%${s9(sW~S^lpO-s-a_JsURB9Dj z-4bain`cKRKwKW@#e}Q-azgDHKsG4ira2$3OiE;+xlY=Sf+-HJ10Mq1>*A}v9$buC zcXBet+q!Xh!E}CtSebTj+JGpbHj*5v*!@{Xk^HctpY{i3)HY1um_f#5QTJTy&OaWr zza+;Ugw`@+Dg+^SqTVix+q+>oAWvuN+vhlL5?JgxJK->xeQ2S$u{{f4S5cbOTG>Xh zo(MCO4K@KyTvgbeGFAaj%jILF#3A;o{Cy=%OdL(+q9CFL+4}es0IrkrZ4yjwr~?+R ztCgjMBLP-wd)lv0gb!abO$NJF%t(ucr7f`&PcSjDTa%Q2T)FYK5LP2(>1$E44>PS) zKr-mW?1^@t`__{!?_Y0^`Megl$4Fjr#?1D5zs0p<&6$f~Wku>`%Ng3Q>}|Bg?^KZ? z5mvVMFW1@PeKX`Z_8(PGy$Yzr++bU8J?#o??PJ|r3_ai1zZH6_R#7K*Nqdf;nz&qi zc)6D{8dIZ0`g#&^WaC9jEvJfaO&)AD+#L$9#F8tA@z-<&34I}1upX(0I;M+Jmo9O( zRXf~yvTXBPa zf7DAI3{ESGV;d=L5J=g}(TG8#NvlF+Y45@!(6fzp61cL4S>M>f`by5!iiCm5Urh_K z#>QLiitk}5j@;nDyw7(mt>~ns1LhFSucgvo{c7V}9eJtRYP3j+p%}C)BgzWkQOXez z17us9Yu0sg$2VhR=J71xKnA-ZY3~sfiXV+gW4UQpzx};FB9m230520B`H0GQ;=s8% zA;nn-a}`@@RF9dyt%&ERnQ!`4okVX_%&u1OYcFNSH27VMzR0VKyPslgQ!7?tV5T1k zcTo}HV#0zbGTd}#g|qX91rqdowK1(2%qe4VynWYKrLn~6Q8->_MypOQ_}bL(fq&%dB8UKUw<)J*RKo5t zDBq{ZwJkBgfNN%{ou;^GcuT#p@%HE3w@Jf9q9A^(?>b{xOO;rlj{63ah@GcSwEn?6 zp{Byo^{$8;3GUZ|rf!wuHXSNq$PBU6nOO+3ypTAPBj=yb>ExtmRUQ)+1&h>!l$$$Y zCLl)4tBW$HvUy;BmX%0y@L~zWIxz_rj7+BSbeH=Jf^F4!l#6i63N=5GzjCD1x0#q+LM#Ca>$Gj14oP~wsM-E^=4Bn0v~hiO#Z}5D6A&j$a8M2 zGB(F0IeeU(Dq!y=T!mSUJ!LbNNuMp+S0#^sdUZ+PDd|y)7ONwxK!!_qNflDCIi9(^ zb~fOR(QAlFa0*P|_k2mx(svdk@h>@tXmss@9JSN?BXbJgennJa58OPfl8JJ+?q2$p zGhsgj7>KF-B4#lMCu+HAQv(gj4^SKWE(k{r-*Q6McQ)2Q&rN!Q9eY_#R9(~j==5eO zmjn;Z7U7#tMmlOdQ5_do|8cnvQqxN`Fr-&UjrSf2lLVynW9G@qe%iL$iHdF-NX!(n z_hqyj9>(wLUF}PI%^el5B{v&SktWhnH9!_CJUYd5khZ3$?L1?6dS{Ceg|VP+{oYOXi@e!0`;%x|UdzP8Y7 zs|=zXN{2mhxUzFXemlu2=K7{(8ndTIL({zL=ItbznL-n!)e{oV<$!{;_v(@95h*V^ zA)T5UYJ(@tKTAy*q6`=M`BT{OkP*V}^61flVt~mTto8U;pIYvIJB|jU5IvqqJjKTpJUtvyB1$;o#s20g%e_1Q(;uDp{AhiuPNs&AU|nzl zeabp^9S5s{Q|tzs9A1f(gEGw0b6kGSNF;$uYzBRSjaiqWgntCxo)@M;z4sDC^VRq3bFt= z5Y*NLtD4Zg1PE_!k6@ZaWHRN!y}cOmf|%!J;5Xp036npwM+}`O(>Bj9gS%IZ;A!@3 z&bc82k*aSvyaWzB7f#ICN$$UTwrIax-z>MbKCNS$HwXhVLVD%hr~V@Oz%DsW)0NT} zGwCGcIcdS(1I0{9mSl8sB6)$cPLx0SO8&=AK<4GtkL@OBE%_#gNuHp+Gq+DWn;uw8 zl|2rPy|~V1Pr0GfZUIn4C&@m@n-1)={Bvt(w^`=)C_}5}a$`$d2&HhF-xo<0{{zAg zIeOl-`*EC1!}#;BLwSd0BV4bH8laU&{T9$ zGv4RI`bdX->=3jd}1;H zKvkt=dcy=p(-f^&bMe*gsPdBShX{_t^_+07Idiw*mc=b@uF8| zzVp)zs>uk}YPB|;sk8(vC<`@mw}-B3$Sc=c%<i*Jc_F4Ya z?nB}3S7hgrkwpvj+~Q`{IXz_(bK;lupNLb#!OyT{75% z_kb!^4MtG|tXbs`+v zJr!Y^GNDUF4!6xaaJiuSA0#(!u_-;PPo@G1z}*%7^y3p)VnaF?q^(ICF1)D5`gDo6 z;GyRQU30)myS9w~nKX?HY9k9PA~<&Un`~?heOHjk(9+RU-vF1h^|!Kph z{EYzs*PQ*05=rQ*QQMCGIPr6nHz9%8M%DeH3A zv;ud~#tl|ws2$-J&mg$7M@dmmd<5{Y+wGA_=P~&GUrF83${ETSnoQ{6E?_U2bWFgG1DjV z%$=`4I2M1#@i+?CkyY~XZ~tZCm95p#YT(76A2XpRE0x)6oOdNG9^TJ)E8SmLJfTmB z_8j6}df9pQRfDLo-IC@Q$YWny1~P^MijfGQUu^A#)*C+;^^3fy>fx!t^%uI3QC@RPYAXxcb zx%&kIE1sqY{MyfZ*zZex&E2#3Q{-OIjbp0zT!#sU6T}qdh;K+aGck3t{mVcvr9TWfmzX!_I?m{f&eBCM-*LMB+>^ zB9aKC4yO2BjZ*LGAd|Gpr?FrU%cH>P;*by?IX+wq{loF{z2>rf|2#oy-{AF`OJ5Rn z$m)}o|KVEHgT&m+9yVZc^h!_&2#BrO)tk#~T&a>q^`e|xuD`wztA-mDeQ2BH)~xbb zQ8f6NM6fDn9r*CRa)FhK`+Ub=AFV;VGJK{|dj^`WI7{9ToE&d8{abVG^a zO;~Vc0(gWueTbd^j_Yl87pV41{cf0YQ_tdqZj43Q{KE0_}7O3+L{KiDs`KP F{{r! Date: Mon, 20 Apr 2026 03:46:34 +0900 Subject: [PATCH 456/836] fix --- milsko.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/milsko.xml b/milsko.xml index e4bf6aef6..356b93553 100644 --- a/milsko.xml +++ b/milsko.xml @@ -665,6 +665,9 @@ + + + From 6eee227693751342def9d3dc987628b95bbfe742 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 20 Apr 2026 04:21:34 +0900 Subject: [PATCH 457/836] fix --- milsko.xml | 7 +++++++ src/widget/submenu.c | 2 ++ 2 files changed, 9 insertions(+) diff --git a/milsko.xml b/milsko.xml index 356b93553..7b4f27300 100644 --- a/milsko.xml +++ b/milsko.xml @@ -756,6 +756,13 @@ + + + + + + + diff --git a/src/widget/submenu.c b/src/widget/submenu.c index c937a9ca4..b681c9871 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -8,6 +8,8 @@ static int wcreate(MwWidget handle) { MwSetDefault(handle); MwSetInteger(handle, MwNleftPadding, 0); + handle->internal = NULL; + return 0; } From 93325bb49ce3c046fc3964ea847a4b8b32d8d4b2 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 20 Apr 2026 05:36:33 +0900 Subject: [PATCH 458/836] update --- milsko.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/milsko.xml b/milsko.xml index 7b4f27300..8783710f9 100644 --- a/milsko.xml +++ b/milsko.xml @@ -576,6 +576,16 @@ + + + + + + + + + +
From 5d0c84d7483ef94962d0332184a8333b4038430f Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 20 Apr 2026 09:00:28 +0900 Subject: [PATCH 459/836] introduce early props --- examples/vkdemos/vulkan.c | 6 ++--- include/Mw/StringDefs.h | 3 +++ include/Mw/Widget/Vulkan.h | 12 ---------- milsko.xml | 7 ++++++ src/core.c | 46 ++++++++++++++++++++++++++++---------- src/widget/vulkan.c | 33 +++++++++++++-------------- 6 files changed, 62 insertions(+), 45 deletions(-) diff --git a/examples/vkdemos/vulkan.c b/examples/vkdemos/vulkan.c index 7e20a5be7..f5faa9bb4 100644 --- a/examples/vkdemos/vulkan.c +++ b/examples/vkdemos/vulkan.c @@ -624,9 +624,9 @@ int main() { MwNtitle, "hello world", NULL); - MwVulkanEnableExtension(VK_KHR_SWAPCHAIN_EXTENSION_NAME); - - vulkan = MwCreateWidget(MwVulkanClass, "vulkan", window, 50, 50, ow, oh); + vulkan = MwVaCreateWidget(MwVulkanClass, "vulkan", window, 50, 50, ow, oh, + MwNvulkanExtension, VK_KHR_SWAPCHAIN_EXTENSION_NAME, + NULL); MwAddUserHandler(window, MwNtickHandler, tick, NULL); diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index c657a637e..394cb9e56 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -51,6 +51,9 @@ #define MwNforeground "Sforeground" #define MwNsubForeground "SsubForeground" +#define MwNvulkanExtension "SEvulkanExtension" +#define MwNvulkanLayer "SEvulkanLayer" + #define MwNpixmap "Vpixmap" #define MwNiconPixmap "ViconPixmap" #define MwNsizeHints "VsizeHints" diff --git a/include/Mw/Widget/Vulkan.h b/include/Mw/Widget/Vulkan.h index 0b7db3ac8..255c8d3a7 100644 --- a/include/Mw/Widget/Vulkan.h +++ b/include/Mw/Widget/Vulkan.h @@ -33,18 +33,6 @@ extern "C" { */ MWDECL MwClass MwVulkanClass; -/*! - * @brief Add an extension to the list of extensions to enable prior to initialization. - * @warning This must be called before MwCreateWidget. - */ -MWDECL void MwVulkanEnableExtension(const char* ext_name); - -/*! - * @brief Add an layer to the list of layers to enable prior to initialization. - * @warning This must be called before MwCreateWidget. - */ -MWDECL void MwVulkanEnableLayer(const char* ext_name); - /*! * @brief Configuration options that can be passed to setup Vulkan before a widget is created. */ diff --git a/milsko.xml b/milsko.xml index 8783710f9..b69e8b7d7 100644 --- a/milsko.xml +++ b/milsko.xml @@ -55,6 +55,9 @@ String properties must be prefixed with S. Handler properties must be prefixed with C. Other properties must be prefixed with V. + + "Early" properties must have letter "E" as 2nd letter. + e.g. vulkanExtension would be SEvulkanExtension --> @@ -104,6 +107,10 @@ + + + + diff --git a/src/core.c b/src/core.c index 758e86a9a..dddf25ba1 100644 --- a/src/core.c +++ b/src/core.c @@ -18,6 +18,9 @@ MwLLEndDraw(handle->lowlevel); \ } +static void MwVaListApply_Internal(MwWidget handle, va_list va, int only_early); +static MwWidget MwCreateWidget_Internal(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height, int do_prop, va_list prop); + static void lldrawhandler(MwLL handle, void* data) { MwWidget h = (MwWidget)handle->common.user; #ifdef PERIODIC @@ -177,7 +180,7 @@ static void lldarkthemehandler(MwLL handle, void* data) { } } -MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height) { +static MwWidget MwCreateWidget_Internal(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height, int do_prop, va_list prop) { MwWidget h = malloc(sizeof(*h)); h->name = MwStringDuplicate(name); @@ -194,17 +197,17 @@ MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, } else { h->lowlevel = NULL; } - h->widget_class = widget_class; - h->pressed = 0; - h->close = 0; - h->destroy_queue = NULL; - h->prop_event = 1; - h->draw_inject = NULL; + h->widget_class = widget_class; + h->pressed = 0; + h->close = 0; + h->destroy_queue = NULL; + h->prop_event = 1; + h->draw_inject = NULL; h->destroy_inject = NULL; - h->tick_list = NULL; - h->destroyed = 0; - h->bgcolor = NULL; - h->berserk = 0; + h->tick_list = NULL; + h->destroyed = 0; + h->bgcolor = NULL; + h->berserk = 0; h->top_step = 0; h->draw_queue = NULL; @@ -243,6 +246,8 @@ MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, shdefault(h->handler, NULL); shdefault(h->data, NULL); + if(do_prop) MwVaListApply_Internal(h, prop, 1); + h->prop_event = 0; if(MwDispatch2(h, create) != 0) { h->widget_class = NULL; @@ -276,6 +281,12 @@ MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, return h; } +MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height) { + va_list dummy; + + return MwCreateWidget_Internal(widget_class, name, parent, x, y, width, height, 0, dummy); +} + MwWidget MwVaCreateWidget(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height, ...) { MwWidget h; va_list va; @@ -704,13 +715,15 @@ void MwVaApply(MwWidget handle, ...) { va_end(va); } -void MwVaListApply(MwWidget handle, va_list va) { +static void MwVaListApply_Internal(MwWidget handle, va_list va, int only_early) { char* key; int x = MwDEFAULT, y = MwDEFAULT, w = MwDEFAULT, h = MwDEFAULT; while((key = va_arg(va, char*)) != NULL) { if(key[0] == 'I') { int n = va_arg(va, int); + if(only_early && key[1] != 'E') continue; + if(strcmp(key, MwNx) == 0) { x = n; } else if(strcmp(key, MwNy) == 0) { @@ -724,12 +737,17 @@ void MwVaListApply(MwWidget handle, va_list va) { } } else if(key[0] == 'S') { char* t = va_arg(va, char*); + if(only_early && key[1] != 'E') continue; + MwSetText(handle, key, t); } else if(key[0] == 'C') { MwUserHandler h = va_arg(va, MwUserHandler); + if(only_early && key[1] != 'E') continue; + MwAddUserHandler(handle, key, h, NULL); } else if(key[0] == 'V') { void* v = va_arg(va, void*); + if(only_early && key[1] != 'E') continue; MwSetVoid(handle, key, v); } } @@ -761,6 +779,10 @@ void MwVaListApply(MwWidget handle, va_list va) { } } +void MwVaListApply(MwWidget handle, va_list va) { + MwVaListApply_Internal(handle, va, 0); +} + void MwSetDefault(MwWidget handle) { if(handle->lowlevel != NULL) MwLLSetCursor(handle->lowlevel, &MwCursorDefault, &MwCursorDefaultMask); } diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index bc0e1bbda..32ae20add 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -493,14 +493,6 @@ void MwVulkanConfigure(MwVulkanConfig* cfg) { vulkan_config = *cfg; } -void MwVulkanEnableExtension(const char* name) { - arrput(enabledExtensions, name); -} - -void MwVulkanEnableLayer(const char* name) { - arrput(enabledLayers, name); -} - int MwVulkanSupported(void) { if(vulkan_supported == VULKAN_SUPPORTED_UNKNOWN) { void* lib = vulkan_lib_load(); @@ -552,7 +544,20 @@ static void* mwVulkanGetFieldImpl(MwWidget handle, int field, int* err) { if(err != NULL) { *err = 0; } -}; +} + +static void prop_change(MwWidget handle, const char* prop) { + /* TODO: make this local to widgets, not global */ + if(strcmp(prop, MwNvulkanExtension) == 0) { + char* str = MwStringDuplicate(MwGetText(handle, MwNvulkanExtension)); + + arrput(enabledExtensions, str); + } else if(strcmp(prop, MwNvulkanLayer) == 0) { + char* str = MwStringDuplicate(MwGetText(handle, MwNvulkanExtension)); + + arrput(enabledLayers, str); + } +} static void func_handler(MwWidget handle, const char* name, void* output, va_list va) { if(strcmp(name, "mwVulkanGetField") == 0) { @@ -568,7 +573,7 @@ MwClassRec MwVulkanClassRec = { NULL, /* draw */ NULL, /* click */ NULL, /* parent_resize */ - NULL, /* prop_change */ + prop_change, /* prop_change */ NULL, /* mouse_move */ NULL, /* mouse_up */ NULL, /* mouse_down */ @@ -587,14 +592,6 @@ MwClass MwVulkanClass = &MwVulkanClassRec; #else MwClass MwVulkanClass = NULL; -void MwVulkanEnableExtension(const char* ext_name) { - (void)ext_name; -} - -void MwVulkanEnableLayer(const char* ext_name) { - (void)ext_name; -} - void MwVulkanConfigure(MwVulkanConfig* cfg) { (void)cfg; } From 51f88a848f6989a058ab06bed806e7a56ff63550 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 20 Apr 2026 09:01:36 +0900 Subject: [PATCH 460/836] update --- milsko.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/milsko.xml b/milsko.xml index b69e8b7d7..e64bf4514 100644 --- a/milsko.xml +++ b/milsko.xml @@ -889,6 +889,10 @@ + + + + From 775488f7d26d645c7d639ca45a155e0a8e204bab Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 20 Apr 2026 09:06:04 +0900 Subject: [PATCH 461/836] update --- milsko.xml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/milsko.xml b/milsko.xml index e64bf4514..adb45d46e 100644 --- a/milsko.xml +++ b/milsko.xml @@ -583,16 +583,6 @@ - - - - - - - - - -
From b4df1ab241dfd76850174126ac434df8ec9837a3 Mon Sep 17 00:00:00 2001 From: nishi Date: Sun, 19 Apr 2026 19:19:26 -0500 Subject: [PATCH 462/836] Update src/core.c --- src/core.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/core.c b/src/core.c index dddf25ba1..c334e9e3b 100644 --- a/src/core.c +++ b/src/core.c @@ -301,8 +301,7 @@ MwWidget MwVaCreateWidget(MwClass widget_class, const char* name, MwWidget paren MwWidget MwVaListCreateWidget(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height, va_list va) { MwWidget h; - h = MwCreateWidget(widget_class, name, parent, x, y, width, height); - MwVaListApply(h, va); + h = MwCreateWidget_Internal(widget_class, name, parent, x, y, width, height, 1, va); return h; } From 98a6559215dc3080006930910554cdc73bba718a Mon Sep 17 00:00:00 2001 From: nishi Date: Sun, 19 Apr 2026 19:25:20 -0500 Subject: [PATCH 463/836] Update src/core.c --- src/core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/core.c b/src/core.c index c334e9e3b..baa11aea6 100644 --- a/src/core.c +++ b/src/core.c @@ -302,7 +302,8 @@ MwWidget MwVaListCreateWidget(MwClass widget_class, const char* name, MwWidget p MwWidget h; h = MwCreateWidget_Internal(widget_class, name, parent, x, y, width, height, 1, va); - + MwVaListApply(h, va); + return h; } From aecfdf8f2bc86e738a15c43ad34433d61a89a15a Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 19 Apr 2026 17:29:58 -0700 Subject: [PATCH 464/836] vulkan: initialize handle->internal if null --- src/widget/vulkan.c | 48 +++++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index 32ae20add..26ffe2ccd 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -85,9 +85,6 @@ MwVulkanConfig vulkan_config = { return 1; \ } -const char** enabledExtensions; -const char** enabledLayers; - typedef enum vulkan_supported_state_t { VULKAN_SUPPORTED_UNKNOWN, VULKAN_SUPPORTED_YES, @@ -115,6 +112,10 @@ typedef struct vulkan { int vkInstanceExtensionCount; int vkDeviceExtensionCount; int vkLayerCount; + + const char** enabledExtensions; + const char** enabledLayers; + } vulkan_t; static int vulkan_instance_setup(MwWidget handle, vulkan_t* o); @@ -224,27 +225,27 @@ static int vulkan_instance_setup(MwWidget handle, vulkan_t* o) { VK_ASSERT(_vkCreateInstance); /* setup enabled extensions */ - arrput(enabledExtensions, VK_KHR_SURFACE_EXTENSION_NAME); + arrput(o->enabledExtensions, VK_KHR_SURFACE_EXTENSION_NAME); #ifdef USE_GDI if(handle->lowlevel->common.type == MwLLBackendGDI) { - arrput(enabledExtensions, VK_KHR_WIN32_SURFACE_EXTENSION_NAME); + arrput(o->enabledExtensions, VK_KHR_WIN32_SURFACE_EXTENSION_NAME); } #endif #ifdef USE_X11 if(handle->lowlevel->common.type == MwLLBackendX11) { - arrput(enabledExtensions, VK_KHR_XLIB_SURFACE_EXTENSION_NAME); + arrput(o->enabledExtensions, VK_KHR_XLIB_SURFACE_EXTENSION_NAME); } #endif #ifdef USE_WAYLAND if(handle->lowlevel->common.type == MwLLBackendWayland) { - arrput(enabledExtensions, VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME); + arrput(o->enabledExtensions, VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME); /* take this opprutunity to set the widget to always render */ MwWaylandAlwaysRender = MwTRUE; } #endif #ifdef USE_COCOA if(handle->lowlevel->common.type == MwLLBackendCocoa) { - arrput(enabledExtensions, VK_EXT_METAL_SURFACE_EXTENSION_NAME); + arrput(o->enabledExtensions, VK_EXT_METAL_SURFACE_EXTENSION_NAME); } #endif @@ -252,11 +253,11 @@ static int vulkan_instance_setup(MwWidget handle, vulkan_t* o) { VK_CMD(_vkEnumerateInstanceExtensionProperties(NULL, &extension_count, NULL)); ext_props = malloc(sizeof(VkExtensionProperties) * extension_count); VK_CMD(_vkEnumerateInstanceExtensionProperties(NULL, &extension_count, ext_props)); - o->vkInstanceExtensions = malloc(sizeof(const char*) * (arrlen(enabledExtensions) + 1)); + o->vkInstanceExtensions = malloc(sizeof(const char*) * (arrlen(o->enabledExtensions) + 1)); for(i = 0; i < extension_count; i++) { - for(n = 0; n < (unsigned long)arrlen(enabledExtensions); n++) { - if(strcmp(ext_props[i].extensionName, enabledExtensions[n]) == 0) { + for(n = 0; n < (unsigned long)arrlen(o->enabledExtensions); n++) { + if(strcmp(ext_props[i].extensionName, o->enabledExtensions[n]) == 0) { printf("[Vulkan Widget] Enabling extension %s\n", ext_props[i].extensionName); o->vkInstanceExtensions[o->vkInstanceExtensionCount] = ext_props[i].extensionName; o->vkInstanceExtensionCount++; @@ -278,14 +279,14 @@ static int vulkan_instance_setup(MwWidget handle, vulkan_t* o) { VK_CMD(_vkEnumerateInstanceLayerProperties(&layer_count, NULL)); layer_props = malloc(sizeof(VkLayerProperties) * layer_count); VK_CMD(_vkEnumerateInstanceLayerProperties(&layer_count, layer_props)); - o->vkLayers = malloc(256 * (arrlen(enabledLayers) + 1)); + o->vkLayers = malloc(256 * (arrlen(o->enabledLayers) + 1)); if(vulkan_config.validation_layers) { - arrput(enabledLayers, "VK_LAYER_KHRONOS_validation"); + arrput(o->enabledLayers, "VK_LAYER_KHRONOS_validation"); } for(i = 0; i < layer_count; i++) { - for(n = 0; n < (unsigned long)arrlen(enabledLayers); n++) { - if(strcmp(layer_props[i].layerName, enabledLayers[n]) == 0) { + for(n = 0; n < (unsigned long)arrlen(o->enabledLayers); n++) { + if(strcmp(layer_props[i].layerName, o->enabledLayers[n]) == 0) { printf("[Vulkan Widget] Enabling layer %s\n", layer_props[i].layerName); o->vkLayers[o->vkLayerCount] = layer_props[i].layerName; o->vkLayerCount++; @@ -452,11 +453,11 @@ static int vulkan_devices_setup(MwWidget handle, vulkan_t* o) { VK_CMD(_vkEnumerateDeviceExtensionProperties(o->vkPhysicalDevice, NULL, &extension_count, NULL)); ext_props = malloc(sizeof(VkExtensionProperties) * extension_count); VK_CMD(_vkEnumerateDeviceExtensionProperties(o->vkPhysicalDevice, NULL, &extension_count, ext_props)); - o->vkDeviceExtensions = malloc(sizeof(const char*) * (arrlen(enabledExtensions) + 1)); + o->vkDeviceExtensions = malloc(sizeof(const char*) * (arrlen(o->enabledExtensions) + 1)); for(i = 0; i < extension_count; i++) { - for(n = 0; n < (unsigned long)arrlen(enabledExtensions); n++) { - if(strcmp(ext_props[i].extensionName, enabledExtensions[n]) == 0) { + for(n = 0; n < (unsigned long)arrlen(o->enabledExtensions); n++) { + if(strcmp(ext_props[i].extensionName, o->enabledExtensions[n]) == 0) { o->vkDeviceExtensions[o->vkDeviceExtensionCount] = ext_props[i].extensionName; o->vkDeviceExtensionCount++; break; @@ -547,15 +548,20 @@ static void* mwVulkanGetFieldImpl(MwWidget handle, int field, int* err) { } static void prop_change(MwWidget handle, const char* prop) { - /* TODO: make this local to widgets, not global */ + vulkan_t* o = (vulkan_t*)handle->internal; + if(!o) { + handle->internal = malloc(sizeof(*o)); + o = (vulkan_t*)handle->internal; + } + if(strcmp(prop, MwNvulkanExtension) == 0) { char* str = MwStringDuplicate(MwGetText(handle, MwNvulkanExtension)); - arrput(enabledExtensions, str); + arrput(o->enabledExtensions, str); } else if(strcmp(prop, MwNvulkanLayer) == 0) { char* str = MwStringDuplicate(MwGetText(handle, MwNvulkanExtension)); - arrput(enabledLayers, str); + arrput(o->enabledLayers, str); } } From 315638ba3f16fe88a2a3b4fa9e698b1735adf7d6 Mon Sep 17 00:00:00 2001 From: nishi Date: Sun, 19 Apr 2026 19:31:35 -0500 Subject: [PATCH 465/836] Update src/core.c --- src/core.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/core.c b/src/core.c index baa11aea6..4ceca6945 100644 --- a/src/core.c +++ b/src/core.c @@ -209,6 +209,9 @@ static MwWidget MwCreateWidget_Internal(MwClass widget_class, const char* name, h->bgcolor = NULL; h->berserk = 0; + h->internal = NULL; + h->opaque = NULL; + h->top_step = 0; h->draw_queue = NULL; From 3f722de0b6baabf587a293acc58fcbe6905a8cce Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 19 Apr 2026 17:33:44 -0700 Subject: [PATCH 466/836] vulkan: temp going back to global thing --- src/widget/vulkan.c | 42 +++++++++++++++++------------------------- 1 file changed, 17 insertions(+), 25 deletions(-) diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index 26ffe2ccd..7fb390e2b 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -112,10 +112,6 @@ typedef struct vulkan { int vkInstanceExtensionCount; int vkDeviceExtensionCount; int vkLayerCount; - - const char** enabledExtensions; - const char** enabledLayers; - } vulkan_t; static int vulkan_instance_setup(MwWidget handle, vulkan_t* o); @@ -225,27 +221,27 @@ static int vulkan_instance_setup(MwWidget handle, vulkan_t* o) { VK_ASSERT(_vkCreateInstance); /* setup enabled extensions */ - arrput(o->enabledExtensions, VK_KHR_SURFACE_EXTENSION_NAME); + arrput(enabledExtensions, VK_KHR_SURFACE_EXTENSION_NAME); #ifdef USE_GDI if(handle->lowlevel->common.type == MwLLBackendGDI) { - arrput(o->enabledExtensions, VK_KHR_WIN32_SURFACE_EXTENSION_NAME); + arrput(enabledExtensions, VK_KHR_WIN32_SURFACE_EXTENSION_NAME); } #endif #ifdef USE_X11 if(handle->lowlevel->common.type == MwLLBackendX11) { - arrput(o->enabledExtensions, VK_KHR_XLIB_SURFACE_EXTENSION_NAME); + arrput(enabledExtensions, VK_KHR_XLIB_SURFACE_EXTENSION_NAME); } #endif #ifdef USE_WAYLAND if(handle->lowlevel->common.type == MwLLBackendWayland) { - arrput(o->enabledExtensions, VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME); + arrput(enabledExtensions, VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME); /* take this opprutunity to set the widget to always render */ MwWaylandAlwaysRender = MwTRUE; } #endif #ifdef USE_COCOA if(handle->lowlevel->common.type == MwLLBackendCocoa) { - arrput(o->enabledExtensions, VK_EXT_METAL_SURFACE_EXTENSION_NAME); + arrput(enabledExtensions, VK_EXT_METAL_SURFACE_EXTENSION_NAME); } #endif @@ -253,11 +249,11 @@ static int vulkan_instance_setup(MwWidget handle, vulkan_t* o) { VK_CMD(_vkEnumerateInstanceExtensionProperties(NULL, &extension_count, NULL)); ext_props = malloc(sizeof(VkExtensionProperties) * extension_count); VK_CMD(_vkEnumerateInstanceExtensionProperties(NULL, &extension_count, ext_props)); - o->vkInstanceExtensions = malloc(sizeof(const char*) * (arrlen(o->enabledExtensions) + 1)); + o->vkInstanceExtensions = malloc(sizeof(const char*) * (arrlen(enabledExtensions) + 1)); for(i = 0; i < extension_count; i++) { - for(n = 0; n < (unsigned long)arrlen(o->enabledExtensions); n++) { - if(strcmp(ext_props[i].extensionName, o->enabledExtensions[n]) == 0) { + for(n = 0; n < (unsigned long)arrlen(enabledExtensions); n++) { + if(strcmp(ext_props[i].extensionName, enabledExtensions[n]) == 0) { printf("[Vulkan Widget] Enabling extension %s\n", ext_props[i].extensionName); o->vkInstanceExtensions[o->vkInstanceExtensionCount] = ext_props[i].extensionName; o->vkInstanceExtensionCount++; @@ -279,14 +275,14 @@ static int vulkan_instance_setup(MwWidget handle, vulkan_t* o) { VK_CMD(_vkEnumerateInstanceLayerProperties(&layer_count, NULL)); layer_props = malloc(sizeof(VkLayerProperties) * layer_count); VK_CMD(_vkEnumerateInstanceLayerProperties(&layer_count, layer_props)); - o->vkLayers = malloc(256 * (arrlen(o->enabledLayers) + 1)); + o->vkLayers = malloc(256 * (arrlen(enabledLayers) + 1)); if(vulkan_config.validation_layers) { - arrput(o->enabledLayers, "VK_LAYER_KHRONOS_validation"); + arrput(enabledLayers, "VK_LAYER_KHRONOS_validation"); } for(i = 0; i < layer_count; i++) { - for(n = 0; n < (unsigned long)arrlen(o->enabledLayers); n++) { - if(strcmp(layer_props[i].layerName, o->enabledLayers[n]) == 0) { + for(n = 0; n < (unsigned long)arrlen(enabledLayers); n++) { + if(strcmp(layer_props[i].layerName, enabledLayers[n]) == 0) { printf("[Vulkan Widget] Enabling layer %s\n", layer_props[i].layerName); o->vkLayers[o->vkLayerCount] = layer_props[i].layerName; o->vkLayerCount++; @@ -453,11 +449,11 @@ static int vulkan_devices_setup(MwWidget handle, vulkan_t* o) { VK_CMD(_vkEnumerateDeviceExtensionProperties(o->vkPhysicalDevice, NULL, &extension_count, NULL)); ext_props = malloc(sizeof(VkExtensionProperties) * extension_count); VK_CMD(_vkEnumerateDeviceExtensionProperties(o->vkPhysicalDevice, NULL, &extension_count, ext_props)); - o->vkDeviceExtensions = malloc(sizeof(const char*) * (arrlen(o->enabledExtensions) + 1)); + o->vkDeviceExtensions = malloc(sizeof(const char*) * (arrlen(enabledExtensions) + 1)); for(i = 0; i < extension_count; i++) { - for(n = 0; n < (unsigned long)arrlen(o->enabledExtensions); n++) { - if(strcmp(ext_props[i].extensionName, o->enabledExtensions[n]) == 0) { + for(n = 0; n < (unsigned long)arrlen(enabledExtensions); n++) { + if(strcmp(ext_props[i].extensionName, enabledExtensions[n]) == 0) { o->vkDeviceExtensions[o->vkDeviceExtensionCount] = ext_props[i].extensionName; o->vkDeviceExtensionCount++; break; @@ -549,19 +545,15 @@ static void* mwVulkanGetFieldImpl(MwWidget handle, int field, int* err) { static void prop_change(MwWidget handle, const char* prop) { vulkan_t* o = (vulkan_t*)handle->internal; - if(!o) { - handle->internal = malloc(sizeof(*o)); - o = (vulkan_t*)handle->internal; - } if(strcmp(prop, MwNvulkanExtension) == 0) { char* str = MwStringDuplicate(MwGetText(handle, MwNvulkanExtension)); - arrput(o->enabledExtensions, str); + arrput(enabledExtensions, str); } else if(strcmp(prop, MwNvulkanLayer) == 0) { char* str = MwStringDuplicate(MwGetText(handle, MwNvulkanExtension)); - arrput(o->enabledLayers, str); + arrput(enabledLayers, str); } } From e3e170bebd383863f7a60c75e2a5b73fb59796ac Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 19 Apr 2026 17:34:23 -0700 Subject: [PATCH 467/836] vulkan: temp going back to global thing --- src/widget/vulkan.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index 7fb390e2b..99d462e03 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -85,6 +85,9 @@ MwVulkanConfig vulkan_config = { return 1; \ } +const char** enabledExtensions; +const char** enabledLayers; + typedef enum vulkan_supported_state_t { VULKAN_SUPPORTED_UNKNOWN, VULKAN_SUPPORTED_YES, From e62db26db2778d56a8ef950226d74f726b53977d Mon Sep 17 00:00:00 2001 From: nishi Date: Sun, 19 Apr 2026 19:40:41 -0500 Subject: [PATCH 468/836] Update src/core.c --- src/core.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/core.c b/src/core.c index 4ceca6945..15d1a5120 100644 --- a/src/core.c +++ b/src/core.c @@ -303,9 +303,18 @@ MwWidget MwVaCreateWidget(MwClass widget_class, const char* name, MwWidget paren MwWidget MwVaListCreateWidget(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height, va_list va) { MwWidget h; + va_list va2; + +#ifdef va_copy + va_copy(va2, va); +#else + va2 = va; +#endif h = MwCreateWidget_Internal(widget_class, name, parent, x, y, width, height, 1, va); - MwVaListApply(h, va); + MwVaListApply(h, va2); + + va_end(va2); return h; } From ccdad14846848b7194342eeae0d44659801ec28a Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 19 Apr 2026 17:53:10 -0700 Subject: [PATCH 469/836] vulkan: use new system --- include/Mw/StringDefs.h | 5 ++- include/Mw/Widget/Vulkan.h | 9 +--- src/widget/vulkan.c | 89 +++++++++++++++++++++----------------- 3 files changed, 53 insertions(+), 50 deletions(-) diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index 394cb9e56..58fd173ec 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -51,8 +51,9 @@ #define MwNforeground "Sforeground" #define MwNsubForeground "SsubForeground" -#define MwNvulkanExtension "SEvulkanExtension" -#define MwNvulkanLayer "SEvulkanLayer" +#define MwNvulkanExtension "SEvulkanExtension" /* char* */ +#define MwNvulkanLayer "SEvulkanLayer" /* char* */ +#define MwNvulkanConfig "VEvulkanConfig" /* MwVulkanConfig */ #define MwNpixmap "Vpixmap" #define MwNiconPixmap "ViconPixmap" diff --git a/include/Mw/Widget/Vulkan.h b/include/Mw/Widget/Vulkan.h index 255c8d3a7..d9084d744 100644 --- a/include/Mw/Widget/Vulkan.h +++ b/include/Mw/Widget/Vulkan.h @@ -34,7 +34,7 @@ extern "C" { MWDECL MwClass MwVulkanClass; /*! - * @brief Configuration options that can be passed to setup Vulkan before a widget is created. + * @brief Configuration options that can be passed to setup parts of the Vulkan widget. */ typedef struct _MwVulkanConfig { /*! @@ -51,13 +51,6 @@ typedef struct _MwVulkanConfig { int validation_layers; } MwVulkanConfig; -/*! - * @brief Configure Vulkan prior to initializing the widget. - * @warning This must be called before MwCreateWidget. - * @warning The configuration provided will be used for future initializations of the Vulkan widget (unless it's changed) - */ -MWDECL void MwVulkanConfigure(MwVulkanConfig* cfg); - /*! * @brief Field that can be gotten from Vulkan. */ diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index 99d462e03..55387d25f 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -44,12 +44,6 @@ #include "../../external/stb_ds.h" -MwVulkanConfig vulkan_config = { - .api_version = VK_API_VERSION_1_0, - .vk_version = VK_VERSION_1_0, - .validation_layers = VK_FALSE, -}; - /* convienence macro for handling vulkan errors */ #ifdef HAS_VK_ENUM_STRING_HELPER #define VK_CMD(func) \ @@ -85,9 +79,6 @@ MwVulkanConfig vulkan_config = { return 1; \ } -const char** enabledExtensions; -const char** enabledLayers; - typedef enum vulkan_supported_state_t { VULKAN_SUPPORTED_UNKNOWN, VULKAN_SUPPORTED_YES, @@ -102,6 +93,8 @@ typedef struct vulkan { VkInstance vkInstance; VkSurfaceKHR vkSurface; + MwVulkanConfig vulkan_config; + VkPhysicalDevice vkPhysicalDevice; VkDevice vkLogicalDevice; VkQueue vkGraphicsQueue; @@ -115,6 +108,10 @@ typedef struct vulkan { int vkInstanceExtensionCount; int vkDeviceExtensionCount; int vkLayerCount; + + const char** enabledExtensions; + const char** enabledLayers; + } vulkan_t; static int vulkan_instance_setup(MwWidget handle, vulkan_t* o); @@ -122,27 +119,33 @@ static int vulkan_surface_setup(MwWidget handle, vulkan_t* o); static int vulkan_devices_setup(MwWidget handle, vulkan_t* o); static int wcreate(MwWidget handle) { - vulkan_t* o = malloc(sizeof(*o)); - int err; + int err; + if(!handle->internal) { + vulkan_t* o; + handle->internal = malloc(sizeof(vulkan_t)); + memset(handle->internal, 0, sizeof(vulkan_t)); - memset(o, 0, sizeof(*o)); + o = handle->internal; + o->vulkan_config.api_version = VK_API_VERSION_1_0; + o->vulkan_config.vk_version = VK_VERSION_1_0; + o->vulkan_config.validation_layers = VK_FALSE; + } - err = vulkan_instance_setup(handle, o); + err = vulkan_instance_setup(handle, handle->internal); if(err != 0) { return 1; } - err = vulkan_surface_setup(handle, o); + err = vulkan_surface_setup(handle, handle->internal); if(err != 0) { return 1; } - err = vulkan_devices_setup(handle, o); + err = vulkan_devices_setup(handle, handle->internal); if(err != 0) { return 1; } handle->lowlevel->common.copy_buffer = 0; - handle->internal = o; MwSetDefault(handle); return 0; @@ -185,8 +188,8 @@ static void* vulkan_lib_load() { } static int vulkan_instance_setup(MwWidget handle, vulkan_t* o) { - uint32_t vulkan_version = vulkan_config.vk_version; - uint32_t api_version = vulkan_config.api_version; + uint32_t vulkan_version = o->vulkan_config.vk_version; + uint32_t api_version = o->vulkan_config.api_version; uint32_t extension_count = 0; uint32_t layer_count = 0; unsigned long i = 0; @@ -224,27 +227,27 @@ static int vulkan_instance_setup(MwWidget handle, vulkan_t* o) { VK_ASSERT(_vkCreateInstance); /* setup enabled extensions */ - arrput(enabledExtensions, VK_KHR_SURFACE_EXTENSION_NAME); + arrput(o->enabledExtensions, VK_KHR_SURFACE_EXTENSION_NAME); #ifdef USE_GDI if(handle->lowlevel->common.type == MwLLBackendGDI) { - arrput(enabledExtensions, VK_KHR_WIN32_SURFACE_EXTENSION_NAME); + arrput(o->enabledExtensions, VK_KHR_WIN32_SURFACE_EXTENSION_NAME); } #endif #ifdef USE_X11 if(handle->lowlevel->common.type == MwLLBackendX11) { - arrput(enabledExtensions, VK_KHR_XLIB_SURFACE_EXTENSION_NAME); + arrput(o->enabledExtensions, VK_KHR_XLIB_SURFACE_EXTENSION_NAME); } #endif #ifdef USE_WAYLAND if(handle->lowlevel->common.type == MwLLBackendWayland) { - arrput(enabledExtensions, VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME); + arrput(o->enabledExtensions, VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME); /* take this opprutunity to set the widget to always render */ MwWaylandAlwaysRender = MwTRUE; } #endif #ifdef USE_COCOA if(handle->lowlevel->common.type == MwLLBackendCocoa) { - arrput(enabledExtensions, VK_EXT_METAL_SURFACE_EXTENSION_NAME); + arrput(o->enabledExtensions, VK_EXT_METAL_SURFACE_EXTENSION_NAME); } #endif @@ -252,11 +255,11 @@ static int vulkan_instance_setup(MwWidget handle, vulkan_t* o) { VK_CMD(_vkEnumerateInstanceExtensionProperties(NULL, &extension_count, NULL)); ext_props = malloc(sizeof(VkExtensionProperties) * extension_count); VK_CMD(_vkEnumerateInstanceExtensionProperties(NULL, &extension_count, ext_props)); - o->vkInstanceExtensions = malloc(sizeof(const char*) * (arrlen(enabledExtensions) + 1)); + o->vkInstanceExtensions = malloc(sizeof(const char*) * (arrlen(o->enabledExtensions) + 1)); for(i = 0; i < extension_count; i++) { - for(n = 0; n < (unsigned long)arrlen(enabledExtensions); n++) { - if(strcmp(ext_props[i].extensionName, enabledExtensions[n]) == 0) { + for(n = 0; n < (unsigned long)arrlen(o->enabledExtensions); n++) { + if(strcmp(ext_props[i].extensionName, o->enabledExtensions[n]) == 0) { printf("[Vulkan Widget] Enabling extension %s\n", ext_props[i].extensionName); o->vkInstanceExtensions[o->vkInstanceExtensionCount] = ext_props[i].extensionName; o->vkInstanceExtensionCount++; @@ -278,14 +281,14 @@ static int vulkan_instance_setup(MwWidget handle, vulkan_t* o) { VK_CMD(_vkEnumerateInstanceLayerProperties(&layer_count, NULL)); layer_props = malloc(sizeof(VkLayerProperties) * layer_count); VK_CMD(_vkEnumerateInstanceLayerProperties(&layer_count, layer_props)); - o->vkLayers = malloc(256 * (arrlen(enabledLayers) + 1)); + o->vkLayers = malloc(256 * (arrlen(o->enabledLayers) + 1)); - if(vulkan_config.validation_layers) { - arrput(enabledLayers, "VK_LAYER_KHRONOS_validation"); + if(o->vulkan_config.validation_layers) { + arrput(o->enabledLayers, "VK_LAYER_KHRONOS_validation"); } for(i = 0; i < layer_count; i++) { - for(n = 0; n < (unsigned long)arrlen(enabledLayers); n++) { - if(strcmp(layer_props[i].layerName, enabledLayers[n]) == 0) { + for(n = 0; n < (unsigned long)arrlen(o->enabledLayers); n++) { + if(strcmp(layer_props[i].layerName, o->enabledLayers[n]) == 0) { printf("[Vulkan Widget] Enabling layer %s\n", layer_props[i].layerName); o->vkLayers[o->vkLayerCount] = layer_props[i].layerName; o->vkLayerCount++; @@ -452,11 +455,11 @@ static int vulkan_devices_setup(MwWidget handle, vulkan_t* o) { VK_CMD(_vkEnumerateDeviceExtensionProperties(o->vkPhysicalDevice, NULL, &extension_count, NULL)); ext_props = malloc(sizeof(VkExtensionProperties) * extension_count); VK_CMD(_vkEnumerateDeviceExtensionProperties(o->vkPhysicalDevice, NULL, &extension_count, ext_props)); - o->vkDeviceExtensions = malloc(sizeof(const char*) * (arrlen(enabledExtensions) + 1)); + o->vkDeviceExtensions = malloc(sizeof(const char*) * (arrlen(o->enabledExtensions) + 1)); for(i = 0; i < extension_count; i++) { - for(n = 0; n < (unsigned long)arrlen(enabledExtensions); n++) { - if(strcmp(ext_props[i].extensionName, enabledExtensions[n]) == 0) { + for(n = 0; n < (unsigned long)arrlen(o->enabledExtensions); n++) { + if(strcmp(ext_props[i].extensionName, o->enabledExtensions[n]) == 0) { o->vkDeviceExtensions[o->vkDeviceExtensionCount] = ext_props[i].extensionName; o->vkDeviceExtensionCount++; break; @@ -489,10 +492,6 @@ static int vulkan_devices_setup(MwWidget handle, vulkan_t* o) { return 0; } -void MwVulkanConfigure(MwVulkanConfig* cfg) { - vulkan_config = *cfg; -} - int MwVulkanSupported(void) { if(vulkan_supported == VULKAN_SUPPORTED_UNKNOWN) { void* lib = vulkan_lib_load(); @@ -548,15 +547,25 @@ static void* mwVulkanGetFieldImpl(MwWidget handle, int field, int* err) { static void prop_change(MwWidget handle, const char* prop) { vulkan_t* o = (vulkan_t*)handle->internal; + if(!o) { + handle->internal = malloc(sizeof(vulkan_t)); + o = (vulkan_t*)handle->internal; + memset(o, 0, sizeof(vulkan_t)); + o->vulkan_config.api_version = VK_API_VERSION_1_0; + o->vulkan_config.vk_version = VK_VERSION_1_0; + o->vulkan_config.validation_layers = VK_FALSE; + } if(strcmp(prop, MwNvulkanExtension) == 0) { char* str = MwStringDuplicate(MwGetText(handle, MwNvulkanExtension)); - arrput(enabledExtensions, str); + arrput(o->enabledExtensions, str); } else if(strcmp(prop, MwNvulkanLayer) == 0) { char* str = MwStringDuplicate(MwGetText(handle, MwNvulkanExtension)); - arrput(enabledLayers, str); + arrput(o->enabledLayers, str); + } else if(strcmp(prop, MwNvulkanConfig) == 0) { + memcpy(&o->vulkan_config, MwGetVoid(handle, MwNvulkanConfig), sizeof(MwVulkanConfig)); } } From 70deb1b3030b05d3cdaa90bb70496b9b07c7e15f Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 19 Apr 2026 17:55:18 -0700 Subject: [PATCH 470/836] vulkan/milsko.xml: document vulkanConfig --- milsko.xml | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/milsko.xml b/milsko.xml index adb45d46e..7122bbb4f 100644 --- a/milsko.xml +++ b/milsko.xml @@ -571,19 +571,9 @@
- +
- - - - - - - - - -
@@ -882,6 +872,7 @@ + From 65382dcf3fcee56cfb2099ac16fede4ce2a0e6d4 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 19 Apr 2026 17:56:48 -0700 Subject: [PATCH 471/836] vulkan/milsko.xml: document MwVulkanConfig --- milsko.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/milsko.xml b/milsko.xml index 7122bbb4f..f7eeb602b 100644 --- a/milsko.xml +++ b/milsko.xml @@ -574,6 +574,11 @@
+ + + + +
From eff89312acfb45f9cd95a094aa01fc443cec3def Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 19 Apr 2026 18:02:17 -0700 Subject: [PATCH 472/836] vulkan milsko.xml --- milsko.xml | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/milsko.xml b/milsko.xml index f7eeb602b..fa6d84c4a 100644 --- a/milsko.xml +++ b/milsko.xml @@ -110,6 +110,7 @@ + @@ -574,11 +575,6 @@
- - - - -
@@ -874,11 +870,6 @@
- - - - - From 0396e9b269626e468ff85f3db3134ff0efb4fa27 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 19 Apr 2026 18:03:08 -0700 Subject: [PATCH 473/836] milsko.xml vulkanConfig should be struct prop --- milsko.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/milsko.xml b/milsko.xml index fa6d84c4a..fb4bf6a80 100644 --- a/milsko.xml +++ b/milsko.xml @@ -110,7 +110,12 @@ - + From 4b250960b6af0dc396cbbd26b280d42510d428d9 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 19 Apr 2026 18:03:37 -0700 Subject: [PATCH 474/836] milsko.xml seperate void props --- milsko.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/milsko.xml b/milsko.xml index fb4bf6a80..9cc6afe96 100644 --- a/milsko.xml +++ b/milsko.xml @@ -110,6 +110,7 @@ + Date: Sun, 19 Apr 2026 18:05:58 -0700 Subject: [PATCH 475/836] m --- milsko.xml | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/milsko.xml b/milsko.xml index 9cc6afe96..d0a75ed55 100644 --- a/milsko.xml +++ b/milsko.xml @@ -110,13 +110,6 @@ - - @@ -126,6 +119,14 @@ + + + @@ -578,10 +579,6 @@
- - -
-
From e0554cdb927b8fd264ef4c8bb12294f59af8b183 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 19 Apr 2026 18:50:33 -0700 Subject: [PATCH 476/836] wayland clipping --- include/Mw/LowLevel/Wayland.h | 2 ++ src/backend/wayland.c | 51 ++++++++++++++++++++++++++++++----- 2 files changed, 47 insertions(+), 6 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index c75f7bc0b..410e8a4a3 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -408,6 +408,8 @@ struct _MwLLWayland { enum _MwLLWaylandType type; enum _MwLLWaylandType type_to_be; + MwRect clipping_rect; + MwBool detatching; MwPoint detach_point; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 59366481e..dfd560d4f 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1349,14 +1349,14 @@ static void region_invalidate(MwLL handle) { } static void region_setup(MwLL handle) { MwLL parent = handle->wayland.parent; - int width = handle->wayland.ww; - int height = handle->wayland.wh; + int width = (handle->wayland.clipping_rect.width == 0) ? handle->wayland.ww : handle->wayland.clipping_rect.width; + int height = (handle->wayland.clipping_rect.height == 0) ? handle->wayland.wh : handle->wayland.clipping_rect.height; if(!handle->wayland.configured) { return; } - wl_region_add(handle->wayland.o_region, 0, 0, width, height); + // wl_region_add(handle->wayland.o_region, 0, 0, width, height); if(handle->wayland.type == MWLL_WAYLAND_POPUP) { wl_region_add(handle->wayland.region, 0, 0, width + abs(handle->wayland.x), height + abs(handle->wayland.y)); @@ -1716,10 +1716,49 @@ static void destroy_popup(MwLL r) { } static void clip(MwLL handle) { - MwLL parent = handle->wayland.parent; - if(parent && handle->wayland.type == MWLL_WAYLAND_SUBLEVEL) { + int i; + int w, h, x, y, cx, cy; + MwLL toplevel = handle->wayland.parent; + MwLL* ws = NULL; + + arrpush(ws, handle); + while(toplevel) { + arrpush(ws, toplevel); + if(!toplevel->wayland.parent) { + break; + } + toplevel = toplevel->wayland.parent; + } + if(toplevel) { +#define MIN(a, b) ((a) < (b) ? (a) : (b)) +#define MAX(a, b) ((a) > (b) ? (a) : (b)) + w = toplevel->wayland.ww; + h = toplevel->wayland.wh; + x = 0; + y = 0; + cx = 0; + cy = 0; + // # ws is traversed result + // # ws[ws.length - 1] is ignored bc it's toplevel + for(i = arrlen(ws) - 2; i >= 0; i--) { + ; + x += ws[i]->wayland.x; + y += ws[i]->wayland.y; + cx = cx - ws[i]->wayland.x; + cy = cy - ws[i]->wayland.y; + w = MIN(x + ws[i]->wayland.ww, w); + h = MIN(y + ws[i]->wayland.wh, h); + } + cx = MAX(cx, 0); + cy = MAX(cy, 0); + + handle->wayland.clipping_rect.x = cx; + handle->wayland.clipping_rect.y = cy; + handle->wayland.clipping_rect.width = w; + handle->wayland.clipping_rect.height = h; + region_setup(handle); cairo_reset_clip(handle->wayland.front_cairo); - cairo_rectangle(handle->wayland.front_cairo, 0, 0, (parent->wayland.ww + handle->wayland.x), (parent->wayland.wh + handle->wayland.y)); + cairo_rectangle(handle->wayland.front_cairo, cx, cy, w, h); cairo_clip(handle->wayland.front_cairo); } } From 0606f398aeda1a22649ca2099aa98cf2dc53720b Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 20 Apr 2026 12:36:01 +0900 Subject: [PATCH 477/836] working clipping with wayland --- include/Mw/LowLevel/Wayland.h | 7 ++++++ src/backend/wayland.c | 40 ++++++++++++++++++++++++++++++++--- 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 410e8a4a3..02b59ef12 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -118,6 +118,8 @@ typedef struct wayland_call_table { void (*cairo_paint)(cairo_t* cr); void (*cairo_surface_flush)(cairo_surface_t* surface); void (*cairo_clip)(cairo_t* cr); + void (*cairo_save)(cairo_t* cr); + void (*cairo_restore)(cairo_t* cr); void (*cairo_surface_mark_dirty)(cairo_surface_t* surface); void (*cairo_stroke)(cairo_t* cr); void (*cairo_set_source_surface)(cairo_t* cr, @@ -224,6 +226,8 @@ MwInline int wayland_load_funcs() { CAIRO_FUNC(cairo_paint); CAIRO_FUNC(cairo_surface_flush); CAIRO_FUNC(cairo_clip); + CAIRO_FUNC(cairo_save); + CAIRO_FUNC(cairo_restore); CAIRO_FUNC(cairo_surface_mark_dirty); CAIRO_FUNC(cairo_stroke); CAIRO_FUNC(cairo_set_source_surface); @@ -288,6 +292,8 @@ MwInline int wayland_load_funcs() { #define cairo_paint wl_call_tbl.cairo_paint #define cairo_surface_flush wl_call_tbl.cairo_surface_flush #define cairo_clip wl_call_tbl.cairo_clip +#define cairo_save wl_call_tbl.cairo_save +#define cairo_restore wl_call_tbl.cairo_restore #define cairo_surface_mark_dirty wl_call_tbl.cairo_surface_mark_dirty #define cairo_stroke wl_call_tbl.cairo_stroke #define cairo_set_source_surface wl_call_tbl.cairo_set_source_surface @@ -499,6 +505,7 @@ struct _MwLLWayland { MwU32 mw, mh; /* Monitor width and height as advertised by wl_output.mode */ MwLL parent; + MwLL* children; MwBool force_render; MwBool did_event_loop_early; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index dfd560d4f..99a628058 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1721,9 +1721,9 @@ static void clip(MwLL handle) { MwLL toplevel = handle->wayland.parent; MwLL* ws = NULL; - arrpush(ws, handle); + arrput(ws, handle); while(toplevel) { - arrpush(ws, toplevel); + arrput(ws, toplevel); if(!toplevel->wayland.parent) { break; } @@ -1741,7 +1741,6 @@ static void clip(MwLL handle) { // # ws is traversed result // # ws[ws.length - 1] is ignored bc it's toplevel for(i = arrlen(ws) - 2; i >= 0; i--) { - ; x += ws[i]->wayland.x; y += ws[i]->wayland.y; cx = cx - ws[i]->wayland.x; @@ -1752,11 +1751,14 @@ static void clip(MwLL handle) { cx = MAX(cx, 0); cy = MAX(cy, 0); + arrfree(ws); + handle->wayland.clipping_rect.x = cx; handle->wayland.clipping_rect.y = cy; handle->wayland.clipping_rect.width = w; handle->wayland.clipping_rect.height = h; region_setup(handle); + cairo_reset_clip(handle->wayland.front_cairo); cairo_rectangle(handle->wayland.front_cairo, cx, cy, w, h); cairo_clip(handle->wayland.front_cairo); @@ -1866,6 +1868,10 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { } #endif + if(parent != NULL){ + arrput(parent->wayland.children, r); + } + return r; } @@ -1943,6 +1949,17 @@ static void MwLLDestroyImpl(MwLL handle) { wl_flush(handle); + if(handle->wayland.parent != NULL){ + for(i = 0; i < arrlen(handle->wayland.parent->wayland.children); i++){ + if(handle->wayland.parent->wayland.children[i] == handle){ + arrdel(handle->wayland.parent->wayland.children, i); + break; + } + } + } + + arrfree(handle->wayland.children); + // free(handle); if(currentlyHeldWidget == handle) { @@ -1957,6 +1974,14 @@ static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsign *h = handle->wayland.wh; } +static void recursive_render(MwLL handle){ + int i; + + for(i = 0; i < arrlen(handle->wayland.children); i++) recursive_render(handle->wayland.children[i]); + + MwLLForceRender(handle); +} + static void MwLLSetXYImpl(MwLL handle, int x, int y) { region_invalidate(handle); handle->wayland.x = x; @@ -1966,6 +1991,8 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { } region_setup(handle); + recursive_render(handle); + MwLLDispatch(handle, draw, NULL); } @@ -2008,6 +2035,13 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { } static void MwLLBeginDrawImpl(MwLL handle) { + cairo_save(handle->wayland.front_cairo); + cairo_set_source_rgba(handle->wayland.front_cairo, 0, 0, 0, 0); + cairo_set_operator(handle->wayland.front_cairo, CAIRO_OPERATOR_SOURCE); + cairo_rectangle(handle->wayland.front_cairo, 0, 0, handle->wayland.ww, handle->wayland.wh); + cairo_fill(handle->wayland.front_cairo); + cairo_restore(handle->wayland.front_cairo); + if(handle->wayland.type != MWLL_WAYLAND_TOPLEVEL) { handle->wayland.selected_cairo = handle->wayland.front_cairo; return; From 81b229c99a7f462afb0af0203e1cdc090b58b3cc Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 19 Apr 2026 20:53:47 -0700 Subject: [PATCH 478/836] Recursive_render on SetWH --- examples/gldemos/tripaint.c | 14 ++++++-------- src/backend/wayland.c | 14 +++++++++----- src/widget/opengl.c | 2 ++ 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/examples/gldemos/tripaint.c b/examples/gldemos/tripaint.c index 1208b26ae..2e53d9b9f 100644 --- a/examples/gldemos/tripaint.c +++ b/examples/gldemos/tripaint.c @@ -108,14 +108,13 @@ static void mouse_move(MwWidget handle, void* user, void* call) { int main() { MwSizeHints hints; - MwWidget window, viewport; + MwWidget window; MwLibraryInit(); - window = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 640, 480, - MwNtitle, "tripaint", - NULL); - viewport = MwCreateWidget(MwViewportClass, "viewport", window, 5, 5, 630, 470 - 16 - 5); + window = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 640, 480, + MwNtitle, "tripaint", + NULL); hints.min_width = hints.max_width = 640; hints.min_height = hints.max_height = 480; @@ -125,13 +124,12 @@ int main() { MwNtext, "Press left click to draw triangle, right click to undo", NULL); - MwViewportSetSize(viewport, 1024, 768); - t = malloc(sizeof(*t)); - opengl = MwCreateWidget(MwOpenGLClass, "opengl", MwViewportGetViewport(viewport), 0, 0, 1024, 768); + opengl = MwCreateWidget(MwOpenGLClass, "opengl", window, 0, 0, 640, 460); MwAddUserHandler(window, MwNtickHandler, tick, NULL); + MwAddUserHandler(opengl, MwNtickHandler, tick, NULL); MwAddUserHandler(opengl, MwNmouseDownHandler, mouse, NULL); MwAddUserHandler(opengl, MwNmouseMoveHandler, mouse_move, NULL); diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 99a628058..09130d721 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1720,6 +1720,7 @@ static void clip(MwLL handle) { int w, h, x, y, cx, cy; MwLL toplevel = handle->wayland.parent; MwLL* ws = NULL; + return; arrput(ws, handle); while(toplevel) { @@ -1868,7 +1869,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { } #endif - if(parent != NULL){ + if(parent != NULL) { arrput(parent->wayland.children, r); } @@ -1949,9 +1950,9 @@ static void MwLLDestroyImpl(MwLL handle) { wl_flush(handle); - if(handle->wayland.parent != NULL){ - for(i = 0; i < arrlen(handle->wayland.parent->wayland.children); i++){ - if(handle->wayland.parent->wayland.children[i] == handle){ + if(handle->wayland.parent != NULL) { + for(i = 0; i < arrlen(handle->wayland.parent->wayland.children); i++) { + if(handle->wayland.parent->wayland.children[i] == handle) { arrdel(handle->wayland.parent->wayland.children, i); break; } @@ -1974,7 +1975,7 @@ static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsign *h = handle->wayland.wh; } -static void recursive_render(MwLL handle){ +static void recursive_render(MwLL handle) { int i; for(i = 0; i < arrlen(handle->wayland.children); i++) recursive_render(handle->wayland.children[i]); @@ -2030,6 +2031,9 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { framebuffer_setup(&handle->wayland); backbuffer_destroy(&handle->wayland); backbuffer_setup(&handle->wayland); + + recursive_render(handle); + MwLLDispatch(handle, draw, NULL); handle->wayland.events_pending = 1; } diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 252d7ad56..b93692020 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -431,6 +431,8 @@ static void mwOpenGLMakeCurrentImpl(MwWidget handle) { o->egl_context)) { printf("ERROR: eglMakeCurrent, %0X\n", eglGetError()); } + + MwLLForceRender(handle->lowlevel); } #endif } From fdf73ab9e769abfbdf7d488611d9bf28e5fc7026 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 19 Apr 2026 21:08:52 -0700 Subject: [PATCH 479/836] somehow my recursive render change with setwh undid clipping --- src/backend/wayland.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 09130d721..aedf1bab3 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1720,7 +1720,6 @@ static void clip(MwLL handle) { int w, h, x, y, cx, cy; MwLL toplevel = handle->wayland.parent; MwLL* ws = NULL; - return; arrput(ws, handle); while(toplevel) { @@ -2026,14 +2025,12 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { } region_setup(handle); + recursive_render(handle); framebuffer_destroy(&handle->wayland); framebuffer_setup(&handle->wayland); backbuffer_destroy(&handle->wayland); backbuffer_setup(&handle->wayland); - - recursive_render(handle); - MwLLDispatch(handle, draw, NULL); handle->wayland.events_pending = 1; } From 0788297ed3e0eaf03c7d501c953c5f7dc3b86811 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 19 Apr 2026 21:12:39 -0700 Subject: [PATCH 480/836] wayland: prevent xdg_toplevel_configure from firing too often --- include/Mw/LowLevel/Wayland.h | 4 +++- src/backend/wayland.c | 27 ++++++++++++++++----------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 02b59ef12..db81bbac0 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -502,9 +502,11 @@ struct _MwLLWayland { MwU32 ww, wh; /* Window position */ MwPoint cur_mouse_pos; /* Currently known mouse position */ + int resizing; + MwU32 mw, mh; /* Monitor width and height as advertised by wl_output.mode */ - MwLL parent; + MwLL parent; MwLL* children; MwBool force_render; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index aedf1bab3..275b0a085 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1162,21 +1162,24 @@ static void xdg_toplevel_configure(void* data, self->wayland.ww = width; self->wayland.wh = height; - xdg_surface_set_window_geometry(self->wayland.toplevel->xdg_surface, 0, 0, self->wayland.ww, self->wayland.wh); + if(self->wayland.resizing == 0) { + xdg_surface_set_window_geometry(self->wayland.toplevel->xdg_surface, 0, 0, self->wayland.ww, self->wayland.wh); - backbuffer_destroy(&self->wayland); - backbuffer_setup(&self->wayland); - framebuffer_destroy(&self->wayland); - framebuffer_setup(&self->wayland); + backbuffer_destroy(&self->wayland); + backbuffer_setup(&self->wayland); + framebuffer_destroy(&self->wayland); + framebuffer_setup(&self->wayland); - region_setup(self); - MwLLDispatch(self, resize, NULL); + region_setup(self); + MwLLDispatch(self, resize, NULL); - recursive_dispatch_resize(self); + recursive_dispatch_resize(self); - if(self->wayland.pointer_constrained) { - zwp_locked_pointer_v1_set_cursor_position_hint(self->wayland.locked_pointer, 0, CSD_BORDER_FRAME_TOP); - wl_surface_commit(self->wayland.framebuffer.surface); + if(self->wayland.pointer_constrained) { + zwp_locked_pointer_v1_set_cursor_position_hint(self->wayland.locked_pointer, 0, CSD_BORDER_FRAME_TOP); + wl_surface_commit(self->wayland.framebuffer.surface); + } + self->wayland.resizing = 1; } }; @@ -2220,6 +2223,8 @@ static int MwLLPendingImpl(MwLL handle) { }; int pending = 0; + handle->wayland.resizing = 0; + #ifdef USE_DBUS if(wl_call_tbl.has_dbus) { if(handle->wayland.dark_theme_detection) { From 65f907a65f04545a1a47ddb3d17728fed79d3864 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 20 Apr 2026 14:44:53 +0900 Subject: [PATCH 481/836] fix corner --- src/backend/wayland.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 275b0a085..4ed083e09 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1746,12 +1746,13 @@ static void clip(MwLL handle) { for(i = arrlen(ws) - 2; i >= 0; i--) { x += ws[i]->wayland.x; y += ws[i]->wayland.y; - cx = cx - ws[i]->wayland.x; - cy = cy - ws[i]->wayland.y; - w = MIN(x + ws[i]->wayland.ww, w); - h = MIN(y + ws[i]->wayland.wh, h); + w = MIN(ws[i]->wayland.ww - x, w); + h = MIN(ws[i]->wayland.wh - y, h); } - cx = MAX(cx, 0); + cx = -x; + cy = -y; + + cx = MAX(cx, 0); cy = MAX(cy, 0); arrfree(ws); From 42d6ca171ece6de287ca8cd6380d0f66d1ab76e9 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 20 Apr 2026 14:49:20 +0900 Subject: [PATCH 482/836] clip only sublevel widget --- include/Mw/LowLevel/Wayland.h | 8 ++-- src/backend/wayland.c | 88 ++++++++++++++++++----------------- 2 files changed, 49 insertions(+), 47 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index db81bbac0..6aa9c48c0 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -378,10 +378,10 @@ struct _MwLLWaylandShmBuffer { }; enum _MwLLWaylandType { - MWLL_WAYLAND_UNKNOWN = 0, - MWLL_WAYLAND_TOPLEVEL, - MWLL_WAYLAND_SUBLEVEL, - MWLL_WAYLAND_POPUP, + MwLL_WAYLAND_UNKNOWN = 0, + MwLL_WAYLAND_TOPLEVEL, + MwLL_WAYLAND_SUBLEVEL, + MwLL_WAYLAND_POPUP, }; typedef struct wl_clipboard_device_context { diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 4ed083e09..ec5912fe2 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -474,7 +474,7 @@ static void pointer_leave(void* data, struct wl_pointer* wl_pointer, MwU32 seria }; static void xdg_borderless_step(MwLL self, MwMouse p, MwU32 serial) { - if(self->wayland.type == MWLL_WAYLAND_TOPLEVEL && self->wayland.backbuffer.surface == curSurface) { + if(self->wayland.type == MwLL_WAYLAND_TOPLEVEL && self->wayland.backbuffer.surface == curSurface) { if(p.point.y >= (self->wayland.wh + CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM) - 5) { if(p.point.x >= (self->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT) - 5) { xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_BOTTOM_RIGHT); @@ -651,7 +651,7 @@ static void keyboard_keymap(void* data, MwLL self = data; (void)wl_keyboard; - if(self->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + if(self->wayland.type == MwLL_WAYLAND_TOPLEVEL) { assert(format == WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1); char* map_shm = (char*)mmap(NULL, size, PROT_READ, MAP_SHARED, fd, 0); @@ -1005,7 +1005,7 @@ static void wl_compositor_interface_destroy(struct _MwLLWayland* wayland, waylan /* wl_subcompositor setup function */ static wayland_protocol_t* wl_subcompositor_setup(MwU32 name, struct _MwLLWayland* wayland) { - if(wayland->type == MWLL_WAYLAND_TOPLEVEL) { + if(wayland->type == MwLL_WAYLAND_TOPLEVEL) { wayland->toplevel->scompositor = wl_registry_bind(wayland->registry, name, &wl_subcompositor_interface, 1); } else { wayland->sublevel->subcompositor = wl_registry_bind(wayland->registry, name, &wl_subcompositor_interface, 1); @@ -1112,7 +1112,7 @@ static int event_loop(MwLL handle) { wl_display_cancel_read(wayland->display); update_buffer(handle, &wayland->framebuffer); - if(wayland->type == MWLL_WAYLAND_TOPLEVEL) + if(wayland->type == MwLL_WAYLAND_TOPLEVEL) update_buffer(handle, &wayland->backbuffer); return 0; } @@ -1317,7 +1317,7 @@ static void framebuffer_destroy(struct _MwLLWayland* wayland) { }; static void backbuffer_setup(struct _MwLLWayland* wayland) { - if(wayland->type != MWLL_WAYLAND_TOPLEVEL) { + if(wayland->type != MwLL_WAYLAND_TOPLEVEL) { return; } MwU32 w = wayland->ww; @@ -1361,7 +1361,7 @@ static void region_setup(MwLL handle) { // wl_region_add(handle->wayland.o_region, 0, 0, width, height); - if(handle->wayland.type == MWLL_WAYLAND_POPUP) { + if(handle->wayland.type == MwLL_WAYLAND_POPUP) { wl_region_add(handle->wayland.region, 0, 0, width + abs(handle->wayland.x), height + abs(handle->wayland.y)); } else { if(parent) { @@ -1380,7 +1380,7 @@ static void region_setup(MwLL handle) { wl_region_add(handle->wayland.region, 0, 0, width, height); } - if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { wl_surface_set_opaque_region(handle->wayland.backbuffer.surface, handle->wayland.o_region); wl_surface_set_input_region(handle->wayland.backbuffer.surface, handle->wayland.region); } @@ -1427,12 +1427,12 @@ static void setup_callbacks(struct _MwLLWayland* wayland) { WL_INTERFACE(zwp_pointer_constraints_v1); WL_INTERFACE(zwp_relative_pointer_manager_v1); WL_INTERFACE(xdg_wm_base); - if(wayland->type == MWLL_WAYLAND_TOPLEVEL) { + if(wayland->type == MwLL_WAYLAND_TOPLEVEL) { WL_INTERFACE(wp_viewporter); WL_INTERFACE(zxdg_decoration_manager_v1); WL_INTERFACE(xdg_toplevel_icon_manager_v1); WL_INTERFACE(wl_subcompositor); - } else if(wayland->type == MWLL_WAYLAND_POPUP) { + } else if(wayland->type == MwLL_WAYLAND_POPUP) { } else { WL_INTERFACE(wl_subcompositor); } @@ -1441,7 +1441,7 @@ static void setup_callbacks(struct _MwLLWayland* wayland) { /* Toplevel setup function */ static void setup_toplevel(MwLL r, int x, int y) { - r->wayland.type = MWLL_WAYLAND_TOPLEVEL; + r->wayland.type = MwLL_WAYLAND_TOPLEVEL; r->wayland.toplevel = malloc(sizeof(struct _MwLLWaylandTopLevel)); r->wayland.x = x; r->wayland.y = y; @@ -1554,7 +1554,7 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { r->wayland.sublevel = malloc(sizeof(struct _MwLLWaylandSublevel)); r->wayland.sublevel->parent = parent; - r->wayland.type = MWLL_WAYLAND_SUBLEVEL; + r->wayland.type = MwLL_WAYLAND_SUBLEVEL; r->wayland.display = parent->wayland.display; @@ -1563,7 +1563,7 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { r->wayland.registry = wl_display_get_registry(parent->wayland.display); r->wayland.display = parent->wayland.display; - if(parent->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + if(parent->wayland.type == MwLL_WAYLAND_TOPLEVEL) { r->wayland.sublevel->xdg_surface = parent->wayland.toplevel->xdg_surface; } else { r->wayland.sublevel->xdg_surface = parent->wayland.sublevel->xdg_surface; @@ -1636,12 +1636,12 @@ static void setup_popup(MwLL r, int x, int y, MwLL parent) { struct xdg_surface* xdg_surface; MwLL topmost_parent = r->wayland.parent; - r->wayland.type = MWLL_WAYLAND_POPUP; + r->wayland.type = MwLL_WAYLAND_POPUP; r->wayland.x = x; r->wayland.y = y; r->wayland.popup = malloc(sizeof(struct _MwLLWaylandPopup)); - while(topmost_parent->wayland.type != MWLL_WAYLAND_TOPLEVEL) { + while(topmost_parent->wayland.type != MwLL_WAYLAND_TOPLEVEL) { topmost_parent = topmost_parent->wayland.parent; } if(!topmost_parent->wayland.has_decorations) { @@ -1764,8 +1764,10 @@ static void clip(MwLL handle) { region_setup(handle); cairo_reset_clip(handle->wayland.front_cairo); - cairo_rectangle(handle->wayland.front_cairo, cx, cy, w, h); - cairo_clip(handle->wayland.front_cairo); + if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL){ + cairo_rectangle(handle->wayland.front_cairo, cx, cy, w, h); + cairo_clip(handle->wayland.front_cairo); + } } } @@ -1797,7 +1799,7 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh r->wayland.y = y; r->wayland.parent = parent; - if(ty == MWLL_WAYLAND_UNKNOWN) { + if(ty == MwLL_WAYLAND_UNKNOWN) { if(parent == NULL) { setup_toplevel(r, x, y); } else { @@ -1805,15 +1807,15 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh } } else { switch(ty) { - case MWLL_WAYLAND_UNKNOWN: + case MwLL_WAYLAND_UNKNOWN: break; - case MWLL_WAYLAND_TOPLEVEL: + case MwLL_WAYLAND_TOPLEVEL: setup_toplevel(r, x, y); break; - case MWLL_WAYLAND_SUBLEVEL: + case MwLL_WAYLAND_SUBLEVEL: setup_sublevel(parent, r, x, y); break; - case MWLL_WAYLAND_POPUP: + case MwLL_WAYLAND_POPUP: setup_popup(r, x, y, parent); break; } @@ -1862,7 +1864,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { memset(r, 0, sizeof(*r)); MwLLCreateCommon(r); - widget_setup(r, parent, x, y, width, height, MWLL_WAYLAND_UNKNOWN); + widget_setup(r, parent, x, y, width, height, MwLL_WAYLAND_UNKNOWN); #ifdef USE_DBUS if(!parent && wl_call_tbl.has_dbus) { @@ -1929,11 +1931,11 @@ static void MwLLDestroyImpl(MwLL handle) { wl_surface_destroy(handle->wayland.icon->surface); } - if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { destroy_toplevel(handle); - } else if(handle->wayland.type == MWLL_WAYLAND_SUBLEVEL) { + } else if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL) { destroy_sublevel(handle); - } else if(handle->wayland.type == MWLL_WAYLAND_POPUP) { + } else if(handle->wayland.type == MwLL_WAYLAND_POPUP) { destroy_popup(handle); } @@ -1990,7 +1992,7 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { region_invalidate(handle); handle->wayland.x = x; handle->wayland.y = y; - if(handle->wayland.type == MWLL_WAYLAND_SUBLEVEL) { + if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL) { wl_subsurface_set_position(handle->wayland.sublevel->subsurface, x, y); } region_setup(handle); @@ -2012,17 +2014,17 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { handle->wayland.wh = h; } - if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL && handle->wayland.configured) { + if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL && handle->wayland.configured) { xdg_surface_set_window_geometry(handle->wayland.toplevel->xdg_surface, 0, 0, handle->wayland.ww, handle->wayland.wh); } - if(handle->wayland.type == MWLL_WAYLAND_SUBLEVEL && handle->wayland.configured && !handle->wayland.dispatching_resize) { + if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL && handle->wayland.configured && !handle->wayland.dispatching_resize) { handle->wayland.dispatching_resize = MwTRUE; MwLLDispatch(handle, resize, NULL); handle->wayland.dispatching_resize = MwFALSE; } - if(handle->wayland.type == MWLL_WAYLAND_POPUP) { + if(handle->wayland.type == MwLL_WAYLAND_POPUP) { destroy_popup(handle); wl_flush(handle); setup_popup(handle, handle->wayland.x, handle->wayland.y, handle->wayland.parent); @@ -2047,7 +2049,7 @@ static void MwLLBeginDrawImpl(MwLL handle) { cairo_fill(handle->wayland.front_cairo); cairo_restore(handle->wayland.front_cairo); - if(handle->wayland.type != MWLL_WAYLAND_TOPLEVEL) { + if(handle->wayland.type != MwLL_WAYLAND_TOPLEVEL) { handle->wayland.selected_cairo = handle->wayland.front_cairo; return; } @@ -2139,7 +2141,7 @@ static void MwLLBeginDrawImpl(MwLL handle) { static void MwLLEndDrawImpl(MwLL handle) { if(handle->wayland.configured) { - if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { update_buffer(handle, &handle->wayland.backbuffer); } update_buffer(handle, &handle->wayland.framebuffer); @@ -2267,7 +2269,7 @@ static int MwLLPendingImpl(MwLL handle) { } update_buffer(handle, &handle->wayland.framebuffer); - if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { update_buffer(handle, &handle->wayland.backbuffer); } @@ -2294,7 +2296,7 @@ static void MwLLNextEventImpl(MwLL handle) { } static void MwLLSetTitleImpl(MwLL handle, const char* title) { - if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { xdg_toplevel_set_title(handle->wayland.toplevel->xdg_top_level, title); } if(!handle->wayland.has_decorations) { @@ -2375,7 +2377,7 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { wl_surface_damage(handle->wayland.framebuffer.surface, 0, 0, handle->wayland.ww, handle->wayland.wh); } static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { - if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { if(WAYLAND_GET_INTERFACE(handle->wayland, xdg_toplevel_icon_manager_v1) != NULL) { struct xdg_toplevel_icon_manager_v1* icon_manager = WAYLAND_GET_INTERFACE(handle->wayland, xdg_toplevel_icon_manager_v1)->context; struct xdg_toplevel_icon_v1* icon = xdg_toplevel_icon_manager_v1_create_icon(icon_manager); @@ -2514,7 +2516,7 @@ static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { } static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) { - if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { xdg_toplevel_set_min_size(handle->wayland.toplevel->xdg_top_level, minx, miny); xdg_toplevel_set_max_size(handle->wayland.toplevel->xdg_top_level, maxx, maxy); } @@ -2522,7 +2524,7 @@ static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { (void)toggle; - if(handle->wayland.type == MWLL_WAYLAND_TOPLEVEL) { + if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { if(WAYLAND_GET_INTERFACE(handle->wayland, zxdg_decoration_manager_v1) != NULL) { zxdg_decoration_manager_v1_context_t* dec = WAYLAND_GET_INTERFACE(handle->wayland, zxdg_decoration_manager_v1)->context; @@ -2613,7 +2615,7 @@ static void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) { } static void MwLLMakeToolWindowImpl(MwLL handle) { - handle->wayland.type_to_be = MWLL_WAYLAND_POPUP; + handle->wayland.type_to_be = MwLL_WAYLAND_POPUP; } static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { @@ -2636,19 +2638,19 @@ static void MwLLEndStateChangeImpl(MwLL handle) { if(handle->wayland.detatching) { MwLL topmost_parent = handle->wayland.parent; - while(topmost_parent->wayland.type != MWLL_WAYLAND_TOPLEVEL) { + while(topmost_parent->wayland.type != MwLL_WAYLAND_TOPLEVEL) { topmost_parent = topmost_parent->wayland.parent; } switch(handle->wayland.type) { - case MWLL_WAYLAND_UNKNOWN: + case MwLL_WAYLAND_UNKNOWN: break; - case MWLL_WAYLAND_TOPLEVEL: + case MwLL_WAYLAND_TOPLEVEL: destroy_toplevel(handle); break; - case MWLL_WAYLAND_SUBLEVEL: + case MwLL_WAYLAND_SUBLEVEL: destroy_sublevel(handle); break; - case MWLL_WAYLAND_POPUP: + case MwLL_WAYLAND_POPUP: destroy_popup(handle); break; } @@ -2664,7 +2666,7 @@ static void MwLLEndStateChangeImpl(MwLL handle) { MwWidget w = handle->common.user; int i; for(i = 0; i < arrlen(w->children); i++) { - if(w->children[i]->lowlevel->wayland.type == MWLL_WAYLAND_SUBLEVEL) { + if(w->children[i]->lowlevel->wayland.type == MwLL_WAYLAND_SUBLEVEL) { MwLL child = w->children[i]->lowlevel; child->wayland.sublevel->xdg_surface = handle->wayland.popup->xdg_surface; wl_subsurface_destroy(child->wayland.sublevel->subsurface); From 76a82c821e856618586edf8b4ddf64003f6a09b8 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 20 Apr 2026 14:55:09 +0900 Subject: [PATCH 483/836] fix --- src/backend/wayland.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index ec5912fe2..6ddb70846 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1746,8 +1746,8 @@ static void clip(MwLL handle) { for(i = arrlen(ws) - 2; i >= 0; i--) { x += ws[i]->wayland.x; y += ws[i]->wayland.y; - w = MIN(ws[i]->wayland.ww - x, w); - h = MIN(ws[i]->wayland.wh - y, h); + w = MIN(ws[i]->wayland.ww - ws[i]->wayland.x, w); + h = MIN(ws[i]->wayland.wh - ws[i]->wayland.y, h); } cx = -x; cy = -y; From 8870b3a0c589f1065ce1d25120fa10499487199b Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 20 Apr 2026 15:15:35 +0900 Subject: [PATCH 484/836] fix someday --- src/backend/wayland.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 6ddb70846..b7ef2f131 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1746,14 +1746,12 @@ static void clip(MwLL handle) { for(i = arrlen(ws) - 2; i >= 0; i--) { x += ws[i]->wayland.x; y += ws[i]->wayland.y; - w = MIN(ws[i]->wayland.ww - ws[i]->wayland.x, w); - h = MIN(ws[i]->wayland.wh - ws[i]->wayland.y, h); + w = MIN(ws[i]->wayland.ww - MAX(-x, 0), w); + h = MIN(ws[i]->wayland.wh - MAX(-y, 0), h); } - cx = -x; - cy = -y; - cx = MAX(cx, 0); - cy = MAX(cy, 0); + cx = MAX(-x, 0); + cy = MAX(-y, 0); arrfree(ws); From ece1527689d029660457cb25900b3b7780ab748e Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 20 Apr 2026 15:37:50 +0900 Subject: [PATCH 485/836] idk how this works, but seems to work --- examples/basic/viewport.c | 6 +++--- src/backend/wayland.c | 9 ++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/examples/basic/viewport.c b/examples/basic/viewport.c index a9b8961ea..506ec78f6 100644 --- a/examples/basic/viewport.c +++ b/examples/basic/viewport.c @@ -10,8 +10,8 @@ static void resize(MwWidget handle, void* user, void* call) { (void)call; MwVaApply(vp, - MwNwidth, w - 10, - MwNheight, h - 10, + MwNwidth, w - 10 - 100, + MwNheight, h - 10 - 100, NULL); } @@ -23,7 +23,7 @@ int main() { w = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 640, 480, MwNtitle, "test", NULL); - vp = MwCreateWidget(MwViewportClass, "vp", w, 5, 5, 630, 470); + vp = MwCreateWidget(MwViewportClass, "vp", w, 5 + 100, 5 + 100, 640 - 10 - 100, 480 - 10 - 100); px = MwLoadImage(vp, "examples/picture.png"); diff --git a/src/backend/wayland.c b/src/backend/wayland.c index b7ef2f131..24b7014c9 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1741,18 +1741,17 @@ static void clip(MwLL handle) { y = 0; cx = 0; cy = 0; - // # ws is traversed result - // # ws[ws.length - 1] is ignored bc it's toplevel + // ws is traversed result + // ws[ws.length - 1] is ignored bc it's toplevel for(i = arrlen(ws) - 2; i >= 0; i--) { x += ws[i]->wayland.x; y += ws[i]->wayland.y; + cx += MAX(-ws[i]->wayland.x, 0); + cy += MAX(-ws[i]->wayland.y, 0); w = MIN(ws[i]->wayland.ww - MAX(-x, 0), w); h = MIN(ws[i]->wayland.wh - MAX(-y, 0), h); } - cx = MAX(-x, 0); - cy = MAX(-y, 0); - arrfree(ws); handle->wayland.clipping_rect.x = cx; From 4423c318e8300b0a7f5f2140f29c0dab004e5ce6 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 20 Apr 2026 15:51:51 +0900 Subject: [PATCH 486/836] fix for -O3 --- include/Mw/Core.h | 7 ------- include/Mw/LowLevel/Wayland.h | 2 +- include/Mw/MachDep.h | 1 - include/Mw/TypeDefs.h | 4 ++-- src/core.c | 9 +++------ src/widget/submenu.c | 2 -- 6 files changed, 6 insertions(+), 19 deletions(-) diff --git a/include/Mw/Core.h b/include/Mw/Core.h index ad4cd19de..31c6ca4df 100644 --- a/include/Mw/Core.h +++ b/include/Mw/Core.h @@ -246,13 +246,6 @@ MWDECL void MwSetErrorHandler(MwErrorHandler handler, void* user_data); */ MWDECL void MwDispatchError(int code, const char* message); -/*! - * @brief Gets the before_step of widget - * @param handle Widget - * @param jmpbuf jmp_buf - */ -MWDECL void MwGetBeforeStep(MwWidget handle, jmp_buf* jmpbuf); - /*! * @brief Forcefully makes widget render * @param handle Widget diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 6aa9c48c0..42990a3df 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -434,7 +434,7 @@ struct _MwLLWayland { }* wl_protocol_map; MwBool has_decorations; - char title[255]; + char title[256]; struct xkb_context* xkb_context; struct xkb_keymap* xkb_keymap; diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index df2043cd8..4c9b9d645 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -9,7 +9,6 @@ #include #include #include -#include #include #include #include diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index 5e62dbf30..d3e4ba338 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -35,6 +35,7 @@ typedef void* MwWidget; #endif typedef void (*MwHandler)(MwWidget handle); typedef int (*MwHandlerWithStatus)(MwWidget handle); +typedef void (*MwHandlerProps)(MwWidget handle, const char** key); typedef void (*MwHandlerProp)(MwWidget handle, const char* key); typedef void (*MwHandlerChildrenProp)(MwWidget handle, MwWidget child, const char* key); typedef void (*MwHandlerKey)(MwWidget handle, int key); @@ -85,7 +86,6 @@ struct _MwWidget { int pressed; MwPoint mouse_point; int close; - jmp_buf before_step; int prop_event; void* internal; @@ -228,10 +228,10 @@ struct _MwClass { MwHandler children_update; MwHandlerChildrenProp children_prop_change; MwHandlerClipboardReceived clipboard; + MwHandlerProps props_change; void* reserved1; void* reserved2; void* reserved3; - void* reserved4; }; #endif diff --git a/src/core.c b/src/core.c index 15d1a5120..d5a6903f4 100644 --- a/src/core.c +++ b/src/core.c @@ -340,8 +340,8 @@ static void MwFreeWidget(MwWidget handle) { } handle->destroyed = 0; - MwDispatch(handle, destroy); if(handle->destroy_inject != NULL) handle->destroy_inject(handle); + MwDispatch(handle, destroy); for(i = 0; i < arrlen(handle->children); i++) { MwFreeWidget(handle->children[i]); @@ -392,6 +392,8 @@ static void destroy_children(MwWidget handle) { } void MwDestroyWidget(MwWidget handle) { + if(handle->destroyed) return; + if(handle->parent != NULL) { int i; for(i = 0; i < arrlen(handle->parent->destroy_queue); i++) { @@ -457,7 +459,6 @@ static void MwAfterStep(MwWidget handle) { int MwStep(MwWidget handle) { int i; MwWidget* widgets = NULL; - if(setjmp(handle->before_step)) return 0; for(i = 0; i < arrlen(handle->children); i++) { arrput(widgets, handle->children[i]); } @@ -859,10 +860,6 @@ void MwDispatchError(int code, const char* message) { } } -void MwGetBeforeStep(MwWidget handle, jmp_buf* jmpbuf) { - memcpy(jmpbuf, &handle->before_step, sizeof(*jmpbuf)); -} - void MwForceRender(MwWidget handle) { MwLLForceRender(handle->lowlevel); } diff --git a/src/widget/submenu.c b/src/widget/submenu.c index b681c9871..7a2afcaba 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -102,7 +102,6 @@ static void draw(MwWidget handle) { static void click(MwWidget handle) { MwWidget w = handle; - jmp_buf jmp; MwMenu menu = handle->internal; if(arrlen(menu->sub) > 0) { @@ -152,7 +151,6 @@ static void click(MwWidget handle) { MwForceRender(handle); } else if(strcmp(menu->sub[i]->name, "----") != 0 && arrlen(menu->sub[i]->sub) == 0) { while(w->parent->widget_class == MwSubMenuClass) w = w->parent; - MwGetBeforeStep(w, &jmp); MwDestroyWidget(w); ((MwMenu)w->internal)->wsub = NULL; From 1fd86732f55ac518ec19d74fc9e2ab2d6c67b5f8 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 20 Apr 2026 16:22:06 +0900 Subject: [PATCH 487/836] add props_change, closes #20 --- include/Mw/TypeDefs.h | 2 +- src/backend/wayland.c | 10 +++---- src/core.c | 61 +++++++++++++++++++++++++++++++++------- src/widget/box.c | 21 ++++++++------ src/widget/button.c | 2 +- src/widget/checkbox.c | 2 +- src/widget/combobox.c | 2 +- src/widget/entry.c | 2 +- src/widget/frame.c | 2 +- src/widget/image.c | 2 +- src/widget/label.c | 2 +- src/widget/listbox.c | 14 +++++++-- src/widget/menu.c | 2 +- src/widget/numberentry.c | 2 +- src/widget/opengl.c | 3 +- src/widget/progressbar.c | 2 +- src/widget/radiobox.c | 2 +- src/widget/scrollbar.c | 2 +- src/widget/separator.c | 2 +- src/widget/submenu.c | 4 +-- src/widget/treeview.c | 19 +++++++++---- src/widget/viewport.c | 2 +- src/widget/vulkan.c | 2 +- src/widget/window.c | 2 +- 24 files changed, 114 insertions(+), 52 deletions(-) diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index d3e4ba338..561c53b71 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -35,7 +35,7 @@ typedef void* MwWidget; #endif typedef void (*MwHandler)(MwWidget handle); typedef int (*MwHandlerWithStatus)(MwWidget handle); -typedef void (*MwHandlerProps)(MwWidget handle, const char** key); +typedef void (*MwHandlerProps)(MwWidget handle, char** key); typedef void (*MwHandlerProp)(MwWidget handle, const char* key); typedef void (*MwHandlerChildrenProp)(MwWidget handle, MwWidget child, const char* key); typedef void (*MwHandlerKey)(MwWidget handle, int key); diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 24b7014c9..159b25ea6 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1748,8 +1748,8 @@ static void clip(MwLL handle) { y += ws[i]->wayland.y; cx += MAX(-ws[i]->wayland.x, 0); cy += MAX(-ws[i]->wayland.y, 0); - w = MIN(ws[i]->wayland.ww - MAX(-x, 0), w); - h = MIN(ws[i]->wayland.wh - MAX(-y, 0), h); + w = MIN(ws[i]->wayland.ww - MAX(-x, 0), w); + h = MIN(ws[i]->wayland.wh - MAX(-y, 0), h); } arrfree(ws); @@ -1761,7 +1761,7 @@ static void clip(MwLL handle) { region_setup(handle); cairo_reset_clip(handle->wayland.front_cairo); - if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL){ + if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL) { cairo_rectangle(handle->wayland.front_cairo, cx, cy, w, h); cairo_clip(handle->wayland.front_cairo); } @@ -1994,7 +1994,7 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { } region_setup(handle); - recursive_render(handle); + if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL) recursive_render(handle); MwLLDispatch(handle, draw, NULL); } @@ -2028,7 +2028,7 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { } region_setup(handle); - recursive_render(handle); + if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL) recursive_render(handle); framebuffer_destroy(&handle->wayland); framebuffer_setup(&handle->wayland); diff --git a/src/core.c b/src/core.c index d5a6903f4..4c8e51234 100644 --- a/src/core.c +++ b/src/core.c @@ -209,8 +209,8 @@ static MwWidget MwCreateWidget_Internal(MwClass widget_class, const char* name, h->bgcolor = NULL; h->berserk = 0; - h->internal = NULL; - h->opaque = NULL; + h->internal = NULL; + h->opaque = NULL; h->top_step = 0; h->draw_queue = NULL; @@ -303,19 +303,19 @@ MwWidget MwVaCreateWidget(MwClass widget_class, const char* name, MwWidget paren MwWidget MwVaListCreateWidget(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height, va_list va) { MwWidget h; - va_list va2; + va_list va2; #ifdef va_copy - va_copy(va2, va); + va_copy(va2, va); #else - va2 = va; + va2 = va; #endif h = MwCreateWidget_Internal(widget_class, name, parent, x, y, width, height, 1, va); - MwVaListApply(h, va2); + MwVaListApply(h, va2); + + va_end(va2); - va_end(va2); - return h; } @@ -550,6 +550,13 @@ void MwSetInteger(MwWidget handle, const char* key, int n) { shput(handle->integer, key, n); } if(handle->prop_event) { + char** keys = NULL; + + arrput(keys, (char*)key); + arrput(keys, NULL); + MwDispatch3(handle, props_change, keys); + arrfree(keys); + MwDispatch3(handle, prop_change, key); if(handle->parent != NULL) MwDispatch4(handle->parent, children_prop_change, handle, key); } @@ -584,6 +591,13 @@ void MwSetText(MwWidget handle, const char* key, const char* value) { } } if(handle->prop_event) { + char** keys = NULL; + + arrput(keys, (char*)key); + arrput(keys, NULL); + MwDispatch3(handle, props_change, keys); + arrfree(keys); + MwDispatch3(handle, prop_change, key); if(handle->parent != NULL) MwDispatch4(handle->parent, children_prop_change, handle, key); } @@ -605,6 +619,13 @@ void MwSetVoid(MwWidget handle, const char* key, void* value) { shput(handle->data, key, value); } if(handle->prop_event) { + char** keys = NULL; + + arrput(keys, (char*)key); + arrput(keys, NULL); + MwDispatch3(handle, props_change, keys); + arrfree(keys); + MwDispatch3(handle, prop_change, key); if(handle->parent != NULL) MwDispatch4(handle->parent, children_prop_change, handle, key); } @@ -729,10 +750,18 @@ void MwVaApply(MwWidget handle, ...) { } static void MwVaListApply_Internal(MwWidget handle, va_list va, int only_early) { - char* key; - int x = MwDEFAULT, y = MwDEFAULT, w = MwDEFAULT, h = MwDEFAULT; + char* key; + int x = MwDEFAULT, y = MwDEFAULT, w = MwDEFAULT, h = MwDEFAULT; + char** keys = NULL; + int old = handle->prop_event; + int i; + handle->prop_event = 0; while((key = va_arg(va, char*)) != NULL) { + if(!only_early || key[1] == 'E') { + arrput(keys, key); + } + if(key[0] == 'I') { int n = va_arg(va, int); if(only_early && key[1] != 'E') continue; @@ -790,6 +819,18 @@ static void MwVaListApply_Internal(MwWidget handle, va_list va, int only_early) MwSetInteger(handle, MwNheight, h); } } + handle->prop_event = old; + + arrput(keys, NULL); + + if(handle->prop_event) { + for(i = 0; keys[i] != NULL; i++) { + MwDispatch3(handle, prop_change, keys[i]); + } + MwDispatch3(handle, props_change, keys); + } + + arrfree(keys); } void MwVaListApply(MwWidget handle, va_list va) { diff --git a/src/widget/box.c b/src/widget/box.c index 6fb893550..626ebad0a 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -78,7 +78,6 @@ static void layout(MwWidget handle) { static void draw(MwWidget handle) { MwRect r; MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); - MwBox b = handle->internal; r.x = 0; r.y = 0; @@ -92,12 +91,6 @@ static void draw(MwWidget handle) { MwDrawRect(handle, &r, base); MwLLFreeColor(base); - - if(b->layout) { - layout(handle); - - b->layout = 0; - } } static void prop_change(MwWidget handle, const char* key) { @@ -120,6 +113,16 @@ static void children_prop_change(MwWidget handle, MwWidget child, const char* ke } } +static void tick(MwWidget handle) { + MwBox b = handle->internal; + + if(b->layout) { + layout(handle); + + b->layout = 0; + } +} + static void resize(MwWidget handle) { MwBox b = handle->internal; b->layout = 1; @@ -146,12 +149,12 @@ MwClassRec MwBoxClassRec = { NULL, /* mouse_down */ NULL, /* key */ NULL, /* execute */ - NULL, /* tick */ + tick, /* tick */ resize, /* resize */ children_update, /* children_update */ children_prop_change, /* children_prop_change */ NULL, /* clipboard */ - NULL, + NULL, /* props_change */ NULL, NULL, NULL}; diff --git a/src/widget/button.c b/src/widget/button.c index 7287f2a4e..edee8c18d 100644 --- a/src/widget/button.c +++ b/src/widget/button.c @@ -109,7 +109,7 @@ MwClassRec MwButtonClassRec = { NULL, /* children_update */ NULL, /* children_prop_change */ NULL, /* clipboard */ - NULL, + NULL, /* props_change */ NULL, NULL, NULL}; diff --git a/src/widget/checkbox.c b/src/widget/checkbox.c index 2301aa0ff..72e0da3e3 100644 --- a/src/widget/checkbox.c +++ b/src/widget/checkbox.c @@ -54,7 +54,7 @@ MwClassRec MwCheckBoxClassRec = { NULL, /* children_update */ NULL, /* children_prop_change */ NULL, /* clipboard */ - NULL, + NULL, /* props_change */ NULL, NULL, NULL}; diff --git a/src/widget/combobox.c b/src/widget/combobox.c index 823185d12..2803cbec2 100644 --- a/src/widget/combobox.c +++ b/src/widget/combobox.c @@ -200,7 +200,7 @@ MwClassRec MwComboBoxClassRec = { NULL, /* children_update */ NULL, /* children_prop_change */ NULL, /* clipboard */ - NULL, + NULL, /* props_change */ NULL, NULL, NULL}; diff --git a/src/widget/entry.c b/src/widget/entry.c index d38e6d5f5..2d4f12f00 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -204,7 +204,7 @@ MwClassRec MwEntryClassRec = { NULL, /* children_update */ NULL, /* children_prop_change */ clipboard, /* clipboard */ - NULL, + NULL, /* props_change */ NULL, NULL, NULL}; diff --git a/src/widget/frame.c b/src/widget/frame.c index 0cc0c4163..f2af10802 100644 --- a/src/widget/frame.c +++ b/src/widget/frame.c @@ -62,7 +62,7 @@ MwClassRec MwFrameClassRec = { NULL, /* children_update */ NULL, /* children_prop_change */ NULL, /* clipboard */ - NULL, + NULL, /* props_change */ NULL, NULL, NULL}; diff --git a/src/widget/image.c b/src/widget/image.c index 791570ecb..c8e068002 100644 --- a/src/widget/image.c +++ b/src/widget/image.c @@ -58,7 +58,7 @@ MwClassRec MwImageClassRec = { NULL, /* children_update */ NULL, /* children_prop_change */ NULL, /* clipboard */ - NULL, + NULL, /* props_change */ NULL, NULL, NULL}; diff --git a/src/widget/label.c b/src/widget/label.c index 98a0d5fef..29e63e9c2 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -376,7 +376,7 @@ MwClassRec MwLabelClassRec = { NULL, /* children_update */ NULL, /* children_prop_change */ NULL, /* clipboard */ - NULL, + NULL, /* props_change */ NULL, NULL, NULL}; diff --git a/src/widget/listbox.c b/src/widget/listbox.c index b2acad781..90d5126d1 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -377,7 +377,6 @@ static void draw(MwWidget handle) { } static void prop_change(MwWidget handle, const char* prop) { - if(strcmp(prop, MwNwidth) == 0 || strcmp(prop, MwNheight) == 0 || strcmp(prop, MwNhasHeading) == 0) resize(handle); if(strcmp(prop, MwNleftPadding) == 0) { MwListBox lb = handle->internal; MwForceRender(lb->frame); @@ -564,6 +563,17 @@ static void tick(MwWidget handle) { } } +static void props_change(MwWidget handle, char** props) { + int i; + int rsz = 0; + + for(i = 0; props[i] != NULL; i++) { + if(strcmp(props[i], MwNwidth) == 0 || strcmp(props[i], MwNheight) == 0 || strcmp(props[i], MwNhasHeading) == 0) rsz = 1; + } + + if(rsz) resize(handle); +} + MwClassRec MwListBoxClassRec = { wcreate, /* create */ destroy, /* destroy */ @@ -581,7 +591,7 @@ MwClassRec MwListBoxClassRec = { NULL, /* children_update */ NULL, /* children_prop_change */ NULL, /* clipboard */ - NULL, + props_change, /* props_change */ NULL, NULL, NULL}; diff --git a/src/widget/menu.c b/src/widget/menu.c index 1517591bc..3d39e7d03 100644 --- a/src/widget/menu.c +++ b/src/widget/menu.c @@ -205,7 +205,7 @@ MwClassRec MwMenuClassRec = { NULL, /* children_update */ NULL, /* children_prop_change */ NULL, /* clipboard */ - NULL, + NULL, /* props_change */ NULL, NULL, NULL}; diff --git a/src/widget/numberentry.c b/src/widget/numberentry.c index f1d7bde71..969d54403 100644 --- a/src/widget/numberentry.c +++ b/src/widget/numberentry.c @@ -146,7 +146,7 @@ MwClassRec MwNumberEntryClassRec = { NULL, /* children_update */ NULL, /* children_prop_change */ NULL, /* clipboard */ - NULL, + NULL, /* props_change */ NULL, NULL, NULL}; diff --git a/src/widget/opengl.c b/src/widget/opengl.c index b93692020..d8f8f7cd3 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -521,7 +521,8 @@ MwClassRec MwOpenGLClassRec = {wcreate, /* create */ NULL, /* children_update */ NULL, /* children_prop_change */ NULL, /* clipboard */ - NULL, NULL, NULL, NULL}; + NULL, /* props_change */ + NULL, NULL, NULL}; MwClass MwOpenGLClass = &MwOpenGLClassRec; #else MWDECL MwClass MwOpenGLClass; diff --git a/src/widget/progressbar.c b/src/widget/progressbar.c index dedd7a911..ec80a3eb9 100644 --- a/src/widget/progressbar.c +++ b/src/widget/progressbar.c @@ -62,7 +62,7 @@ MwClassRec MwProgressBarClassRec = { NULL, /* children_update */ NULL, /* children_prop_change */ NULL, /* clipboard */ - NULL, + NULL, /* props_change */ NULL, NULL, NULL}; diff --git a/src/widget/radiobox.c b/src/widget/radiobox.c index 1342232e5..82fff2942 100644 --- a/src/widget/radiobox.c +++ b/src/widget/radiobox.c @@ -63,7 +63,7 @@ MwClassRec MwRadioBoxClassRec = { NULL, /* children_update */ NULL, /* children_prop_change */ NULL, /* clipboard */ - NULL, + NULL, /* props_change */ NULL, NULL, NULL}; diff --git a/src/widget/scrollbar.c b/src/widget/scrollbar.c index 58ed578b2..98a050d9c 100644 --- a/src/widget/scrollbar.c +++ b/src/widget/scrollbar.c @@ -273,7 +273,7 @@ MwClassRec MwScrollBarClassRec = { NULL, /* children_update */ NULL, /* children_prop_change */ NULL, /* clipboard */ - NULL, + NULL, /* props_change */ NULL, NULL, NULL}; diff --git a/src/widget/separator.c b/src/widget/separator.c index 15919d0ed..4e70ccc7b 100644 --- a/src/widget/separator.c +++ b/src/widget/separator.c @@ -51,7 +51,7 @@ MwClassRec MwSeparatorClassRec = { NULL, /* children_update */ NULL, /* children_prop_change */ NULL, /* clipboard */ - NULL, + NULL, /* props_change */ NULL, NULL, NULL}; diff --git a/src/widget/submenu.c b/src/widget/submenu.c index 7a2afcaba..addd999c3 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -101,7 +101,7 @@ static void draw(MwWidget handle) { } static void click(MwWidget handle) { - MwWidget w = handle; + MwWidget w = handle; MwMenu menu = handle->internal; if(arrlen(menu->sub) > 0) { @@ -257,7 +257,7 @@ MwClassRec MwSubMenuClassRec = { NULL, /* children_update */ NULL, /* children_prop_change */ NULL, /* clipboard */ - NULL, + NULL, /* props_change */ NULL, NULL, NULL}; diff --git a/src/widget/treeview.c b/src/widget/treeview.c index 99f12e27e..580ecd6b2 100644 --- a/src/widget/treeview.c +++ b/src/widget/treeview.c @@ -331,10 +331,6 @@ static void draw(MwWidget handle) { MwLLFreeColor(c); } -static void prop_change(MwWidget handle, const char* prop) { - if(strcmp(prop, MwNwidth) == 0 || strcmp(prop, MwNheight) == 0) resize(handle); -} - static void* mwTreeViewAddImpl(MwWidget handle, void* parent, MwLLPixmap pixmap, const char* item) { MwTreeView tv = handle->internal; MwTreeViewEntry* t = malloc(sizeof(*t)); @@ -480,13 +476,24 @@ static void tick(MwWidget handle) { } } +static void props_change(MwWidget handle, char** props) { + int i; + int rsz = 0; + + for(i = 0; props[i] != NULL; i++) { + if(strcmp(props[i], MwNwidth) == 0 || strcmp(props[i], MwNheight) == 0) rsz = 1; + } + + if(rsz) resize(handle); +} + MwClassRec MwTreeViewClassRec = { wcreate, /* create */ destroy, /* destroy */ draw, /* draw */ NULL, /* click */ NULL, /* parent_resize */ - prop_change, /* prop_change */ + NULL, /* prop_change */ NULL, /* mouse_move */ NULL, /* mouse_up */ NULL, /* mouse_down */ @@ -497,7 +504,7 @@ MwClassRec MwTreeViewClassRec = { NULL, /* children_update */ NULL, /* children_prop_change */ NULL, /* clipboard */ - NULL, + props_change, /* props_change */ NULL, NULL, NULL}; diff --git a/src/widget/viewport.c b/src/widget/viewport.c index f05b18d5b..ceaab5eb8 100644 --- a/src/widget/viewport.c +++ b/src/widget/viewport.c @@ -192,7 +192,7 @@ MwClassRec MwViewportClassRec = { NULL, /* children_update */ NULL, /* children_prop_change */ NULL, /* clipboard */ - NULL, + NULL, /* props_change */ NULL, NULL, NULL}; diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index 55387d25f..8da8ef1dc 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -594,7 +594,7 @@ MwClassRec MwVulkanClassRec = { NULL, /* children_update */ NULL, /* children_prop_change */ NULL, /* clipboard */ - NULL, + NULL, /* props_change */ NULL, NULL, NULL}; diff --git a/src/widget/window.c b/src/widget/window.c index 2b596b50d..7178d3f1e 100644 --- a/src/widget/window.c +++ b/src/widget/window.c @@ -60,7 +60,7 @@ MwClassRec MwWindowClassRec = { NULL, /* children_update */ NULL, /* children_prop_change */ NULL, /* clipboard */ - NULL, + NULL, /* props_change */ NULL, NULL, NULL}; From 352f2e50593a60d486cb4517cc48ebe1b9aa191c Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Mon, 20 Apr 2026 16:02:33 -0500 Subject: [PATCH 488/836] tim cook is stepping down --- pl/rules.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pl/rules.pl b/pl/rules.pl index d45d7c993..e669ae853 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -83,7 +83,7 @@ if (grep(/^cocoa$/, @backends) || param_get("gnustep")) { new_object("src/widget/opengl_cocoa.m"); } -# tim cook my man literally everybody and their mother who knows what opengl is knows its deprecated on macos and i'm not having you spam the console with this +# John Apple my man literally everybody and their mother who knows what opengl is knows its deprecated on macos and i'm not having you spam the console with this add_cflags("-DGL_SILENCE_DEPRECATION"); $gl_libs = "-framework OpenGL"; From 8eca6c04e9724559fcbceec52f14385507956088 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 20 Apr 2026 16:02:44 -0700 Subject: [PATCH 489/836] some mac fixes --- src/backend/cocoa.m | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index dc00b0abd..3da1047c4 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -310,23 +310,23 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { KEY_CASE(kVK_ANSI_Backslash, '/') KEY_CASE(kVK_ANSI_Comma, ',') KEY_CASE(kVK_ANSI_Equal, '=') - KEY_CASE(kVK_Escape, MwLLKeyEscape) + KEY_CASE(kVK_Escape, MwKEY_ESCAPE) KEY_CASE(kVK_ANSI_LeftBracket, '[') KEY_CASE(kVK_ANSI_Minus, '-') KEY_CASE(kVK_ANSI_Period, '.') - KEY_CASE(kVK_Return, MwLLKeyEnter) + KEY_CASE(kVK_Return, MwKEY_ENTER) KEY_CASE(kVK_ANSI_RightBracket, ']') KEY_CASE(kVK_ANSI_Semicolon, ';') KEY_CASE(kVK_ANSI_Slash, '\\') KEY_CASE(kVK_Space, ' ') - KEY_CASE(kVK_Control, MwLLKeyControl) - KEY_CASE(kVK_RightControl, MwLLKeyControl) - KEY_CASE(kVK_Shift, MwLLKeyLeftShift) - KEY_CASE(kVK_RightShift, MwLLKeyRightShift) - KEY_CASE(kVK_DownArrow, MwLLKeyDown) - KEY_CASE(kVK_LeftArrow, MwLLKeyLeft) - KEY_CASE(kVK_RightArrow, MwLLKeyRight) - KEY_CASE(kVK_UpArrow, MwLLKeyUp) + KEY_CASE(kVK_Control, MwKEY_CONTROL) + KEY_CASE(kVK_RightControl, MwKEY_CONTROL) + KEY_CASE(kVK_Shift, MwKEY_LEFTSHIFT) + KEY_CASE(kVK_RightShift, MwKEY_RIGHTSHIFT) + KEY_CASE(kVK_DownArrow, MwKEY_DOWN) + KEY_CASE(kVK_LeftArrow, MwKEY_LEFT) + KEY_CASE(kVK_RightArrow, MwKEY_RIGHT) + KEY_CASE(kVK_UpArrow, MwKEY_UP) } if(isDown) { recursive_dispatch_key(ll, &ch); @@ -697,7 +697,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { c->window = p->window; c->view = [[MilskoCocoaView alloc] initWithFrame:rect]; - [c->view setBounds:c->rect]; + [c->view setFrame:rect]; [c->view retain]; [c->view setChild]; From 79e1774cb8df90dc54b12b68d99c3d6bc0a5fe2d Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 21 Apr 2026 12:12:08 -0700 Subject: [PATCH 490/836] mac fixed --- include/Mw/LowLevel/Cocoa.h | 1 + src/backend/cocoa.m | 79 ++++++++++++++++++++++++++++--------- 2 files changed, 61 insertions(+), 19 deletions(-) diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 53c85a14d..9758074f0 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -123,6 +123,7 @@ typedef struct { MilskoCocoaApplication* application; MwBool _forceRender; MwBool _eventsPending; + MwBool isClosing; NSWindow* window; NSRect rect; MilskoCocoaView* view; diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 3da1047c4..8e9b2ee9f 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -131,6 +131,8 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { [nscolor setFill]; for(n = 0; n < cmd.poly.points_count; n++) { NSPoint p = localPointFlip(NSMakePoint(cmd.poly.points[n].x, cmd.poly.points[n].y), self); + p.x += [self bounds].origin.x; + p.y += [self bounds].origin.y; if(n == 0) { [path moveToPoint:p]; } else { @@ -157,6 +159,8 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { [nscolor setFill]; for(n = 0; n < 2; n++) { NSPoint p = localPointFlip(NSMakePoint(cmd.lines.points[n].x, cmd.lines.points[n].y), self); + p.x += [self bounds].origin.x; + p.y += [self bounds].origin.y; if(n == 0) { [path moveToPoint:p]; } else { @@ -171,8 +175,11 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { } break; case COCOA_DRAW_COMMAND_PIXMAP: { + NSRect rect = localRectFlip(NSMakeRect(cmd.pixmap.rect.x, cmd.pixmap.rect.y, cmd.pixmap.rect.width, cmd.pixmap.rect.height), self); + rect.origin.x += [self bounds].origin.x; + rect.origin.y += [self bounds].origin.y; [cmd.pixmap.pixmap->cocoa.real->image - drawInRect:localRectFlip(NSMakeRect(cmd.pixmap.rect.x, cmd.pixmap.rect.y, cmd.pixmap.rect.width, cmd.pixmap.rect.height), self) + drawInRect:rect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0]; @@ -186,6 +193,10 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { [pool release]; } +- (BOOL)isFlipped { + return NO; +} + - (BOOL)canBecomeKeyView { return YES; } @@ -366,7 +377,6 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { mouse.point.x = mousePoint.x; mouse.point.y = mousePoint.y; MwLLDispatch(this, move, &mouse); - [this->cocoa.real nudge]; [super mouseMoved:ev]; } - (BOOL)mouseDownCanMoveWindow { @@ -382,7 +392,6 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { mouse.point.x = mousePoint.x; mouse.point.y = mousePoint.y; MwLLDispatch(this, down, &mouse); - [this->cocoa.real nudge]; [super mouseDown:ev]; } @@ -395,7 +404,6 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { mouse.point.x = mousePoint.x; mouse.point.y = mousePoint.y; MwLLDispatch(this, up, &mouse); - [this->cocoa.real nudge]; [super mouseUp:ev]; } - (void)rightMouseDown:(NSEvent*)ev { @@ -407,7 +415,6 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { mouse.point.x = mousePoint.x; mouse.point.y = mousePoint.y; MwLLDispatch(this, down, &mouse); - [this->cocoa.real nudge]; [super rightMouseDown:ev]; } @@ -420,7 +427,6 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { mouse.point.x = mousePoint.x; mouse.point.y = mousePoint.y; MwLLDispatch(this, up, &mouse); - [this->cocoa.real nudge]; [super rightMouseUp:ev]; } @@ -466,6 +472,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { MwLL h = [((MilskoFakePointer*)[[[w contentView] subviews] objectAtIndex:0]) pointer]; MwLLDispatch(h, close, NULL); + h->cocoa.real->isClosing = MwTRUE; } } @@ -611,14 +618,33 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { } - (void)nudge { - MwLL p = self->parent; - self->_eventsPending = MwTRUE; + MwLL topmost_parent = [self->handle pointer]; + MwWidget h; - while(p) { - MwLLDispatch(p, draw, NULL); - [p->cocoa.real->view setNeedsDisplay:true]; - p = p->cocoa.real->parent; + while(topmost_parent->cocoa.real->parent) topmost_parent = topmost_parent->cocoa.real->parent; + + if(!topmost_parent->cocoa.real->isClosing) + self->_eventsPending = MwTRUE; + + [topmost_parent->cocoa.real->view setNeedsDisplay:true]; + MwLLDispatch(topmost_parent, draw, NULL); + + h = (MwWidget)topmost_parent->common.user; + if(h) { + int i; + for(i = 0; i < arrlen(h->children); i++) { + [h->children[i]->lowlevel->cocoa.real->view setNeedsDisplay:true]; + MwLLDispatch(h->children[i]->lowlevel, draw, NULL); + } } + + // MwLL p = self->parent; + // self->_eventsPending = MwTRUE; + + // while(p) { + // MwLLDispatch(p, draw, NULL); + // p = p->cocoa.real->parent; + // } } - (void)pushCursor { @@ -697,7 +723,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { c->window = p->window; c->view = [[MilskoCocoaView alloc] initWithFrame:rect]; - [c->view setFrame:rect]; + [c->view setBounds:rect]; [c->view retain]; [c->view setChild]; @@ -727,6 +753,8 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { [pool release]; + c->isClosing = MwFALSE; + r->cocoa.real = c; return r; @@ -748,7 +776,7 @@ static void MwLLBeginDrawImpl(MwLL handle) { static void MwLLEndDrawImpl(MwLL handle) { (void)handle; - [handle->cocoa.real->view displayRect:[handle->cocoa.real->window frame]]; + // [handle->cocoa.real->view displayRect:[handle->cocoa.real->window frame]]; } static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, @@ -763,6 +791,8 @@ static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, memcpy(poly.poly.points, points, sizeof(MwPoint) * points_count); arrpush(handle->cocoa.real->view->commands, poly); + + [handle->cocoa.real nudge]; } static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { @@ -775,6 +805,8 @@ static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { memcpy(lines.lines.points, points, sizeof(MwPoint) * 2); arrpush(handle->cocoa.real->view->commands, lines); + + [handle->cocoa.real nudge]; } static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { @@ -828,7 +860,7 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { if(!self->parent) { frame = rectFlip(frame); - [self->window setFrame:frame display:MwTRUE animate:MwTRUE]; + [self->window setFrame:frame display:MwTRUE animate:false]; } else { frame = localRectFlip(frame, self->parent->cocoa.real->view); [self->view setFrame:frame]; @@ -837,10 +869,16 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { } static void MwLLSetWHImpl(MwLL handle, int w, int h) { - MilskoCocoa* self = handle->cocoa.real; - NSRect frame = [self->window frame]; - frame.size.width = w; - frame.size.height = h; + MilskoCocoa* self = handle->cocoa.real; + NSRect frame; + if(self->parent) { + frame = [self->view frame]; + } else { + frame = [self->window frame]; + } + + frame.size.width = w; + frame.size.height = h; self->rect = frame; @@ -861,6 +899,7 @@ static int MwLLPendingImpl(MwLL handle) { MilskoCocoa* self = handle->cocoa.real; NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; MwBool isPending = [self->application pending]; + [self->application runModalSession:self->modalSession]; [pool release]; return self->_forceRender || self->_eventsPending || isPending; @@ -941,6 +980,8 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { pix.pixmap.pixmap = MwLLCreatePixmap(handle, pixmap->common.raw, pixmap->common.width, pixmap->common.height); arrpush(handle->cocoa.real->view->commands, pix); + + [handle->cocoa.real nudge]; } static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { From 89cfece7675b5d8b2f2d070db3e74987a13b0a85 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 21 Apr 2026 12:54:26 -0700 Subject: [PATCH 491/836] M --- src/backend/cocoa.m | 51 +++++++++++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 8e9b2ee9f..903cf2984 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -19,6 +19,16 @@ #pragma clang diagnostic ignored "-Wdeprecated-declarations" #endif +/* + * GNUStep has the modal session be a global singleton and once we assign it we can't do any more. This breaks several widgets. + * I barely care about supporting this so we'll just not support that, sorry. + */ +#ifndef __APPLE__ +static bool canAssignModalSession = MwTRUE; +#else +#define canAssignModalSession 1 +#endif + /* Coordinate flipping function (global, rect) */ static NSRect rectFlip(NSRect originFrame) { NSScreen* zeroScreen = [[NSScreen screens] objectAtIndex:0]; @@ -204,14 +214,6 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { return YES; } -- (NSView*)hitTest:(NSPoint)aPoint { - if(self->_child) { - return NSPointInRect(aPoint, [self bounds]) ? self : nil; - } else { - return [super hitTest:aPoint]; - } -} - - (void)handleKeyEvent:(NSEvent*)ev ll:(MwLL)ll down:(MwBool)isDown { int ch; /* todo: consolidate these values into the below switch case. */ @@ -371,7 +373,7 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { - (void)mouseMoved:(NSEvent*)ev { MwMouse mouse; - NSPoint mousePoint = pointFlip([ev locationInWindow]); + NSPoint mousePoint = [ev locationInWindow]; MwLL this = [((MilskoFakePointer*)[[self subviews] objectAtIndex:0]) pointer]; mouse.button = MwMOUSE_LEFT; mouse.point.x = mousePoint.x; @@ -443,11 +445,14 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { - (NSSize)windowWillResize:(NSWindow*)win toSize:(NSSize)frameSize; { - if([[[win contentView] subviews] count] >= 1) { - NSView* ptr = [[[win contentView] subviews] objectAtIndex:0]; + int i; + NSUInteger placeholder = [[[win contentView] subviews] count]; + for(i = 0; i < placeholder; i++) { + NSView* ptr = [[[win contentView] subviews] objectAtIndex:i]; if([ptr isKindOfClass:[MilskoFakePointer class]]) { MwLL h = [(MilskoFakePointer*)ptr pointer]; MwLLDispatch(h, resize, NULL); + break; } } return frameSize; @@ -716,7 +721,13 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { [c->application retain]; [c->view addTrackingRect:c->rect owner:c->view userData:NULL assumeInside:MwFALSE]; - c->modalSession = [c->application beginModalSessionForWindow:c->window]; + if(canAssignModalSession) + c->modalSession = [c->application beginModalSessionForWindow:c->window]; + +#ifndef __APPLE__ + canAssignModalSession = MwFALSE; +#endif + } else { MilskoCocoa* p = parent->cocoa.real; NSRect rect = localRectFlip(c->rect, p->view); @@ -864,8 +875,9 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { } else { frame = localRectFlip(frame, self->parent->cocoa.real->view); [self->view setFrame:frame]; + [self->view setBounds:frame]; } - [self nudge]; + MwLLForceRender(handle); } static void MwLLSetWHImpl(MwLL handle, int w, int h) { @@ -885,10 +897,11 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { [self->view setFrameSize:frame.size]; if(self->parent) { [self->view setFrame:frame]; + [self->view setBounds:frame]; } else { [self->window setFrame:frame display:YES animate:false]; } - [self nudge]; + MwLLForceRender(handle); } static void MwLLFreeColorImpl(MwLLColor color) { @@ -900,9 +913,11 @@ static int MwLLPendingImpl(MwLL handle) { NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; MwBool isPending = [self->application pending]; - [self->application runModalSession:self->modalSession]; + if(self->modalSession) { + [self->application runModalSession:self->modalSession]; + } [pool release]; - return self->_forceRender || self->_eventsPending || isPending; + return !self->isClosing && (self->_forceRender || self->_eventsPending || isPending); } static void MwLLNextEventImpl(MwLL handle) { @@ -913,7 +928,6 @@ static void MwLLNextEventImpl(MwLL handle) { self->_forceRender = MwFALSE; } if(self->_eventsPending) { - MwLLDispatch(h, draw, NULL); self->_eventsPending = MwFALSE; } [self sendClipboardEvent]; @@ -1052,7 +1066,8 @@ static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { } static void MwLLDetachImpl(MwLL handle, MwPoint* point) { - [handle->cocoa.real->window setParentWindow:NULL]; + (void)handle; + (void)point; } static void MwLLShowImpl(MwLL handle, int show) { From b0f89d1dcce5d976651dffb3ffe0ce27c9afcdb3 Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 22 Apr 2026 08:50:56 +0900 Subject: [PATCH 492/836] thing --- configure | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/configure b/configure index 5bd5cc60e..6bd00b710 100755 --- a/configure +++ b/configure @@ -73,14 +73,24 @@ my @features_keys = ( "1dbus" ); -if($target ne "Darwin" and $target ne "ClassicMacOS" and $target ne "Windows") { - param_set("freetype2", 1); - param_set("stb-truetype", 0); -} else { - param_set("freetype2", 0); - param_set("stb-truetype", 1); +sub def_platform { + if($target ne "Darwin" and $target ne "ClassicMacOS" and $target ne "Windows") { + param_set("freetype2", 1); + param_set("stb-truetype", 0); + } else { + param_set("freetype2", 0); + param_set("stb-truetype", 1); + } } +foreach my $l (@ARGV) { + if ($l =~ /^--target=(.+)$/) { + $target = $1; + } +} + +def_platform(); + if($target eq "Linux") { param_set("x11", 1); if(!param_get("tiny")){ @@ -98,9 +108,6 @@ foreach my $l (@ARGV) { elsif ($l =~ /^--(?:without|disable)-(.+)$/) { param_set($1, 0); } - elsif ($l =~ /^--target=(.+)$/) { - $target = $1; - } elsif ($l =~ /^--host=(.+)$/) { $host = $1 . "-"; } From 77ca92452ec0a7bacb7e258890281a6202174be3 Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 22 Apr 2026 08:52:57 +0900 Subject: [PATCH 493/836] fix --- src/core.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core.c b/src/core.c index 4c8e51234..4a5aecdb0 100644 --- a/src/core.c +++ b/src/core.c @@ -287,6 +287,8 @@ static MwWidget MwCreateWidget_Internal(MwClass widget_class, const char* name, MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height) { va_list dummy; + memset(&dummy, 0, sizeof(dummy)); + return MwCreateWidget_Internal(widget_class, name, parent, x, y, width, height, 0, dummy); } From 2dd2c3870f799bc9d209067419fad08eb4d9a226 Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 22 Apr 2026 12:05:49 +0900 Subject: [PATCH 494/836] introduce MWAPI --- examples/basic/box.c | 2 +- examples/basic/calculator.c | 4 +- examples/basic/clipboard.c | 6 +- examples/basic/colorpicker.c | 4 +- examples/basic/example.c | 10 ++-- examples/basic/listbox.c | 4 +- examples/basic/messagebox.c | 8 +-- examples/basic/periodic.c | 8 +-- examples/basic/rotate.c | 4 +- examples/basic/scrollbar.c | 1 - examples/basic/treeview.c | 4 +- examples/basic/viewport.c | 2 +- examples/gldemos/clock.c | 4 +- examples/gldemos/glutlayer.c | 6 +- examples/gldemos/triangle.c | 6 +- examples/gldemos/tripaint.c | 6 +- examples/vkdemos/vulkan.c | 2 +- include/Mw/Abstract/Directory.h | 12 ++-- include/Mw/Abstract/Dynamic.h | 6 +- include/Mw/Abstract/Time.h | 4 +- include/Mw/Core.h | 88 +++++++++++++++------------- include/Mw/Default.h | 2 +- include/Mw/Dialog/ColorPicker.h | 2 +- include/Mw/Dialog/DirectoryChooser.h | 2 +- include/Mw/Dialog/FileChooser.h | 4 +- include/Mw/Dialog/MessageBox.h | 4 +- include/Mw/Draw.h | 46 +++++++-------- include/Mw/Font.h | 4 +- include/Mw/MachDep.h | 6 ++ include/Mw/String.h | 12 ++-- include/Mw/TypeDefs.h | 4 +- include/Mw/Unicode.h | 8 +-- include/Mw/Widget/Vulkan.h | 2 +- src/core.c | 10 ++++ src/dialog/colorpicker.c | 12 ++-- src/dialog/filechooser.c | 24 ++++---- src/dialog/messagebox.c | 2 +- src/widget/combobox.c | 2 +- src/widget/listbox.c | 8 +-- src/widget/treeview.c | 6 +- src/widget/viewport.c | 4 +- 41 files changed, 189 insertions(+), 166 deletions(-) diff --git a/examples/basic/box.c b/examples/basic/box.c index 1b37168e8..e14b9f574 100644 --- a/examples/basic/box.c +++ b/examples/basic/box.c @@ -2,7 +2,7 @@ MwWidget window, box; -void resize(MwWidget handle, void* user, void* client) { +void MWAPI resize(MwWidget handle, void* user, void* client) { int ww = MwGetInteger(handle, MwNwidth); int wh = MwGetInteger(handle, MwNheight); diff --git a/examples/basic/calculator.c b/examples/basic/calculator.c index 998c3e35d..8889e97d3 100644 --- a/examples/basic/calculator.c +++ b/examples/basic/calculator.c @@ -7,7 +7,7 @@ MwWidget inp; double stack[512]; int sp = 0; -static void resize(MwWidget handle, void* client, void* user) { +static void MWAPI resize(MwWidget handle, void* client, void* user) { int ww = MwGetInteger(handle, MwNwidth); int wh = MwGetInteger(handle, MwNheight) - MwGetInteger(inp, MwNheight); int i; @@ -30,7 +30,7 @@ static void resize(MwWidget handle, void* client, void* user) { } } -static void activate(MwWidget handle, void* client, void* user) { +static void MWAPI activate(MwWidget handle, void* client, void* user) { const char* n = MwGetText(handle, MwNtext); if(('0' <= n[0] && n[0] <= '9') || n[0] == '.') { diff --git a/examples/basic/clipboard.c b/examples/basic/clipboard.c index 94a192f22..9d060c31a 100644 --- a/examples/basic/clipboard.c +++ b/examples/basic/clipboard.c @@ -2,7 +2,7 @@ MwWidget window, instructions, text1, text2, cur_text; -static void resize(MwWidget handle, void* user_data, void* call_data) { +static void MWAPI resize(MwWidget handle, void* user_data, void* call_data) { unsigned int w, h; (void)user_data; @@ -28,7 +28,7 @@ static void resize(MwWidget handle, void* user_data, void* call_data) { MwNheight, h - 125 - 50 * 3, NULL); } -static void clipboard(MwWidget handle, void* user_data, void* call_data) { +static void MWAPI clipboard(MwWidget handle, void* user_data, void* call_data) { char* clipboard = call_data; (void)handle; @@ -40,7 +40,7 @@ static void clipboard(MwWidget handle, void* user_data, void* call_data) { } } -static void tick(MwWidget handle, void* user_data, void* call_data) { +static void MWAPI tick(MwWidget handle, void* user_data, void* call_data) { cur_text = text1; MwGetClipboard(handle, MwCLIPBOARD_MAIN); cur_text = text2; diff --git a/examples/basic/colorpicker.c b/examples/basic/colorpicker.c index 6471b7822..fb92fda50 100644 --- a/examples/basic/colorpicker.c +++ b/examples/basic/colorpicker.c @@ -4,7 +4,7 @@ MwWidget cpicker; MwWidget window; MwWidget button; -void color_callback(MwWidget handle, void* user_data, void* call_data) { +void MWAPI color_callback(MwWidget handle, void* user_data, void* call_data) { char hexColor[8]; MwRGB* rgb = call_data; @@ -18,7 +18,7 @@ void color_callback(MwWidget handle, void* user_data, void* call_data) { MwSetText(window, MwNbackground, hexColor); } -void color_picker(MwWidget handle, void* user_data, void* call_data) { +void MWAPI color_picker(MwWidget handle, void* user_data, void* call_data) { MwWidget cpicker = MwColorPicker(window, "cpicker"); (void)handle; diff --git a/examples/basic/example.c b/examples/basic/example.c index 7e13acd1e..9facecb21 100644 --- a/examples/basic/example.c +++ b/examples/basic/example.c @@ -2,7 +2,7 @@ MwWidget window, menu, button, button2, button3, button4, button5, button6; -void handler(MwWidget handle, void* user_data, void* call_data) { +void MWAPI handler(MwWidget handle, void* user_data, void* call_data) { (void)handle; (void)user_data; (void)call_data; @@ -10,7 +10,7 @@ void handler(MwWidget handle, void* user_data, void* call_data) { printf("hello world!\n"); } -void handler_theme(MwWidget handle, void* user_data, void* call_data) { +void MWAPI handler_theme(MwWidget handle, void* user_data, void* call_data) { (void)handle; (void)user_data; (void)call_data; @@ -20,7 +20,7 @@ void handler_theme(MwWidget handle, void* user_data, void* call_data) { NULL); } -void handler_look(MwWidget handle, void* user_data, void* call_data) { +void MWAPI handler_look(MwWidget handle, void* user_data, void* call_data) { (void)handle; (void)user_data; (void)call_data; @@ -30,7 +30,7 @@ void handler_look(MwWidget handle, void* user_data, void* call_data) { NULL); } -void handler_font(MwWidget handle, void* user_data, void* call_data) { +void MWAPI handler_font(MwWidget handle, void* user_data, void* call_data) { (void)handle; (void)user_data; (void)call_data; @@ -40,7 +40,7 @@ void handler_font(MwWidget handle, void* user_data, void* call_data) { NULL); } -void resize(MwWidget handle, void* user_data, void* call_data) { +void MWAPI resize(MwWidget handle, void* user_data, void* call_data) { unsigned int w, h, mh; (void)user_data; diff --git a/examples/basic/listbox.c b/examples/basic/listbox.c index 3120d01be..2b74119c9 100644 --- a/examples/basic/listbox.c +++ b/examples/basic/listbox.c @@ -4,13 +4,13 @@ MwWidget wmain; -void destroy(MwWidget handle, void* user, void* call) { +void MWAPI destroy(MwWidget handle, void* user, void* call) { (void)handle; (void)call; MwDestroyWidget(user); } -void activate(MwWidget handle, void* user, void* call) { +void MWAPI activate(MwWidget handle, void* user, void* call) { char msg[256]; MwWidget msgbox; diff --git a/examples/basic/messagebox.c b/examples/basic/messagebox.c index 343042f16..8c617d7b0 100644 --- a/examples/basic/messagebox.c +++ b/examples/basic/messagebox.c @@ -1,12 +1,12 @@ #include -void ok(MwWidget handle, void* user, void* call) { +void MWAPI ok(MwWidget handle, void* user, void* call) { (void)handle; (void)call; MwDestroyWidget(user); } -void spawn(MwWidget handle, void* user, void* call) { +void MWAPI spawn(MwWidget handle, void* user, void* call) { MwWidget mb = MwMessageBox(user, "news has arrived!", "title", MwMB_ICONNEWS | MwMB_BUTTONOK); (void)handle; @@ -16,7 +16,7 @@ void spawn(MwWidget handle, void* user, void* call) { MwAddUserHandler(mb, MwNcloseHandler, ok, mb); } -void spawn2(MwWidget handle, void* user, void* call) { +void MWAPI spawn2(MwWidget handle, void* user, void* call) { MwWidget mb = MwMessageBox(user, "something went wrong!", "title", MwMB_ICONERROR | MwMB_BUTTONOK); (void)handle; @@ -26,7 +26,7 @@ void spawn2(MwWidget handle, void* user, void* call) { MwAddUserHandler(mb, MwNcloseHandler, ok, mb); } -void spawn3(MwWidget handle, void* user, void* call) { +void MWAPI spawn3(MwWidget handle, void* user, void* call) { int i; (void)handle; diff --git a/examples/basic/periodic.c b/examples/basic/periodic.c index f2466ad8b..c46bba757 100644 --- a/examples/basic/periodic.c +++ b/examples/basic/periodic.c @@ -11,7 +11,7 @@ MwWidget boxes[32]; int n = 0, row = -1; MwMenu e; -static void resize(MwWidget handle, void* user, void* call) { +static void MWAPI resize(MwWidget handle, void* user, void* call) { int w = MwGetInteger(window, MwNwidth); int h = MwGetInteger(window, MwNheight); @@ -47,7 +47,7 @@ static void add(MwWidget w) { } } -static void resize_content(MwWidget handle, void* user, void* call) { +static void MWAPI resize_content(MwWidget handle, void* user, void* call) { MwWidget* ws = MwGetChildren(handle); if(ws != NULL) { int pw = MwGetInteger(ws[0], "IpWidth"); @@ -76,7 +76,7 @@ static void resize_content(MwWidget handle, void* user, void* call) { } } -static void resize_frame(MwWidget handle, void* user, void* call) { +static void MWAPI resize_frame(MwWidget handle, void* user, void* call) { MwWidget* ws = MwGetChildren(handle); if(ws != NULL) { int w = MwGetInteger(handle, MwNwidth); @@ -140,7 +140,7 @@ static MwWidget child(MwWidget w) { return MwGetVoid(w, "VhandledWidget"); } -static void menu_handler(MwWidget handle, void* user, void* call) { +static void MWAPI menu_handler(MwWidget handle, void* user, void* call) { if(call == e) MwDestroyWidget(window); } diff --git a/examples/basic/rotate.c b/examples/basic/rotate.c index 574eb2d6f..dbf9c5e15 100644 --- a/examples/basic/rotate.c +++ b/examples/basic/rotate.c @@ -14,7 +14,7 @@ double deg = 0; int ww, wh; -void handler(MwWidget w, void* user, void* client) { +void MWAPI handler(MwWidget w, void* user, void* client) { int i; double cdeg = deg; @@ -44,7 +44,7 @@ void handler(MwWidget w, void* user, void* client) { deg += 120.0 / (1000.0 / MwWaitMS); } -void resize(MwWidget w, void* user, void* client) { +void MWAPI resize(MwWidget w, void* user, void* client) { (void)w; (void)user; (void)client; diff --git a/examples/basic/scrollbar.c b/examples/basic/scrollbar.c index 594cd9814..dbaae9a01 100644 --- a/examples/basic/scrollbar.c +++ b/examples/basic/scrollbar.c @@ -1,4 +1,3 @@ - #include int main() { diff --git a/examples/basic/treeview.c b/examples/basic/treeview.c index 3be61cd49..273dd3e2a 100644 --- a/examples/basic/treeview.c +++ b/examples/basic/treeview.c @@ -2,13 +2,13 @@ MwWidget wmain; -void destroy(MwWidget handle, void* user, void* call) { +void MWAPI destroy(MwWidget handle, void* user, void* call) { (void)handle; (void)call; MwDestroyWidget(user); } -void activate(MwWidget handle, void* user, void* call) { +void MWAPI activate(MwWidget handle, void* user, void* call) { char msg[256]; MwWidget msgbox; diff --git a/examples/basic/viewport.c b/examples/basic/viewport.c index 506ec78f6..c114935af 100644 --- a/examples/basic/viewport.c +++ b/examples/basic/viewport.c @@ -2,7 +2,7 @@ MwWidget vp; -static void resize(MwWidget handle, void* user, void* call) { +static void MWAPI resize(MwWidget handle, void* user, void* call) { int w = MwGetInteger(handle, MwNwidth); int h = MwGetInteger(handle, MwNheight); diff --git a/examples/gldemos/clock.c b/examples/gldemos/clock.c index 271b08811..9f683b507 100644 --- a/examples/gldemos/clock.c +++ b/examples/gldemos/clock.c @@ -13,7 +13,7 @@ double deg2rad(double deg) { return (360.0 - deg) / 180.0 * M_PI; } -void tick(MwWidget handle, void* user, void* call) { +void MWAPI tick(MwWidget handle, void* user, void* call) { time_t t = time(NULL); int i; double rad; @@ -104,7 +104,7 @@ void tick(MwWidget handle, void* user, void* call) { MwOpenGLSwapBuffer(opengl); } -void resize(MwWidget handle, void* user, void* call) { +void MWAPI resize(MwWidget handle, void* user, void* call) { int w = MwGetInteger(handle, MwNwidth); int h = MwGetInteger(handle, MwNheight); diff --git a/examples/gldemos/glutlayer.c b/examples/gldemos/glutlayer.c index dd24ef5a2..dda07d80c 100644 --- a/examples/gldemos/glutlayer.c +++ b/examples/gldemos/glutlayer.c @@ -9,7 +9,7 @@ static void reshape(int width, int height); static void init(void); static void key(int k); -static void tick(MwWidget handle, void* user, void* client) { +static void MWAPI tick(MwWidget handle, void* user, void* client) { (void)handle; (void)user; (void)client; @@ -20,7 +20,7 @@ static void tick(MwWidget handle, void* user, void* client) { MwOpenGLSwapBuffer(opengl); } -static void resize(MwWidget handle, void* user, void* client) { +static void MWAPI resize(MwWidget handle, void* user, void* client) { int ww, wh; (void)user; @@ -37,7 +37,7 @@ static void resize(MwWidget handle, void* user, void* client) { reshape(ww, wh); } -static void key_pressed(MwWidget handle, void* user, void* client) { +static void MWAPI key_pressed(MwWidget handle, void* user, void* client) { (void)handle; (void)user; diff --git a/examples/gldemos/triangle.c b/examples/gldemos/triangle.c index ceb70e37d..702fca057 100644 --- a/examples/gldemos/triangle.c +++ b/examples/gldemos/triangle.c @@ -6,7 +6,7 @@ int ow, oh; double deg = 0; double dir = 1; -void resize(MwWidget handle, void* user_data, void* call_data) { +void MWAPI resize(MwWidget handle, void* user_data, void* call_data) { unsigned int w, h; (void)user_data; @@ -27,7 +27,7 @@ void resize(MwWidget handle, void* user_data, void* call_data) { NULL); } -void tick(MwWidget handle, void* user_data, void* call_data) { +void MWAPI tick(MwWidget handle, void* user_data, void* call_data) { (void)handle; (void)user_data; (void)call_data; @@ -61,7 +61,7 @@ void tick(MwWidget handle, void* user_data, void* call_data) { deg += 120.0 / (1000.0 / MwWaitMS) * dir; } -void activate(MwWidget handle, void* user_data, void* call_data) { +void MWAPI activate(MwWidget handle, void* user_data, void* call_data) { (void)handle; (void)user_data; (void)call_data; diff --git a/examples/gldemos/tripaint.c b/examples/gldemos/tripaint.c index 2e53d9b9f..069315a07 100644 --- a/examples/gldemos/tripaint.c +++ b/examples/gldemos/tripaint.c @@ -17,7 +17,7 @@ int ct = 0; int click = 0; int mx, my; -static void tick(MwWidget handle, void* user, void* call) { +static void MWAPI tick(MwWidget handle, void* user, void* call) { int i; int w = MwGetInteger(opengl, MwNwidth); int h = MwGetInteger(opengl, MwNheight); @@ -50,7 +50,7 @@ static void tick(MwWidget handle, void* user, void* call) { MwOpenGLSwapBuffer(opengl); } -static void mouse(MwWidget handle, void* user, void* call) { +static void MWAPI mouse(MwWidget handle, void* user, void* call) { MwMouse* mouse = call; (void)handle; @@ -91,7 +91,7 @@ static void mouse(MwWidget handle, void* user, void* call) { } } -static void mouse_move(MwWidget handle, void* user, void* call) { +static void MWAPI mouse_move(MwWidget handle, void* user, void* call) { MwPoint* point = call; (void)handle; diff --git a/examples/vkdemos/vulkan.c b/examples/vkdemos/vulkan.c index f5faa9bb4..2d03030e9 100644 --- a/examples/vkdemos/vulkan.c +++ b/examples/vkdemos/vulkan.c @@ -66,7 +66,7 @@ VkSwapchainCreateInfoKHR swapchainCreateInfo = {}; PFN_##name _##name = (PFN_##name)_vkGetInstanceProcAddr(instance, #name); \ assert(_##name); -void tick(MwWidget handle, void* user_data, void* call_data) { +void MWAPI tick(MwWidget handle, void* user_data, void* call_data) { (void)handle; (void)user_data; (void)call_data; diff --git a/include/Mw/Abstract/Directory.h b/include/Mw/Abstract/Directory.h index 7f6629bdb..1e1db49cc 100644 --- a/include/Mw/Abstract/Directory.h +++ b/include/Mw/Abstract/Directory.h @@ -17,32 +17,32 @@ extern "C" { * @param path Path * @return Handle */ -MWDECL void* MwDirectoryOpen(const char* path); +MWDECL void* MWAPI MwDirectoryOpen(const char* path); /*! * @brief Closes a directory * @param handle Handle */ -MWDECL void MwDirectoryClose(void* handle); +MWDECL void MWAPI MwDirectoryClose(void* handle); /*! * @brief Reads a directory * @param handle Handle * @return Directory entry */ -MWDECL MwDirectoryEntry* MwDirectoryRead(void* handle); +MWDECL MwDirectoryEntry* MWAPI MwDirectoryRead(void* handle); /*! * @brief Frees a directory entry * @param entry Entry */ -MWDECL void MwDirectoryFreeEntry(MwDirectoryEntry* entry); +MWDECL void MWAPI MwDirectoryFreeEntry(MwDirectoryEntry* entry); /*! * @brief Gets a current directory * @param Directory */ -MWDECL char* MwDirectoryCurrent(void); +MWDECL char* MWAPI MwDirectoryCurrent(void); /*! * @brief Joins 2 paths @@ -50,7 +50,7 @@ MWDECL char* MwDirectoryCurrent(void); * @param b Path * @return Path */ -MWDECL char* MwDirectoryJoin(char* a, char* b); +MWDECL char* MWAPI MwDirectoryJoin(char* a, char* b); #ifdef __cplusplus } diff --git a/include/Mw/Abstract/Dynamic.h b/include/Mw/Abstract/Dynamic.h index d649d4d51..ead507061 100644 --- a/include/Mw/Abstract/Dynamic.h +++ b/include/Mw/Abstract/Dynamic.h @@ -16,20 +16,20 @@ extern "C" { * @param path Path * @return Handle */ -MWDECL void* MwDynamicOpen(const char* path); +MWDECL void* MWAPI MwDynamicOpen(const char* path); /*! * @brief Gets a symbol from the dynamic library * @param handle Handle * @param symbol Symbol */ -MWDECL void* MwDynamicSymbol(void* handle, const char* symbol); +MWDECL void* MWAPI MwDynamicSymbol(void* handle, const char* symbol); /*! * @brief Closes a dynamic library * @param handle Handle */ -MWDECL void MwDynamicClose(void* handle); +MWDECL void MWAPI MwDynamicClose(void* handle); #ifdef __cplusplus } diff --git a/include/Mw/Abstract/Time.h b/include/Mw/Abstract/Time.h index 58f246ecb..c8ffbf6bf 100644 --- a/include/Mw/Abstract/Time.h +++ b/include/Mw/Abstract/Time.h @@ -15,13 +15,13 @@ extern "C" { * @brief Sleeps for milliseconds * @param ms Milliseconds */ -MWDECL void MwTimeSleep(int ms); +MWDECL void MWAPI MwTimeSleep(int ms); /*! * @brief Gets a monotonic time * @return Monotonic time */ -MWDECL long MwTimeGetTick(void); +MWDECL long MWAPI MwTimeGetTick(void); #ifdef __cplusplus } diff --git a/include/Mw/Core.h b/include/Mw/Core.h index 31c6ca4df..2562e9be7 100644 --- a/include/Mw/Core.h +++ b/include/Mw/Core.h @@ -60,7 +60,7 @@ extern "C" { * @brief Initializes the Milsko Toolkit * @return `0` if successful */ -MWDECL int MwLibraryInit(void); +MWDECL int MWAPI MwLibraryInit(void); /*! * @brief Creates a widget @@ -73,7 +73,7 @@ MWDECL int MwLibraryInit(void); * @param height Height * @return Widget */ -MWDECL MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height); +MWDECL MwWidget MWAPI MwCreateWidget(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height); /*! * @brief Creates a widget @@ -87,7 +87,7 @@ MWDECL MwWidget MwCreateWidget(MwClass widget_class, const char* name, MwWidget * @param ... Same with MwVaApply * @return Widget */ -MWDECL MwWidget MwVaCreateWidget(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height, ...); +MWDECL MwWidget MWAPI MwVaCreateWidget(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height, ...); /*! * @brief Creates a widget @@ -101,13 +101,13 @@ MWDECL MwWidget MwVaCreateWidget(MwClass widget_class, const char* name, MwWidge * @param va Same with MwVaListApply * @return Widget */ -MWDECL MwWidget MwVaListCreateWidget(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height, va_list va); +MWDECL MwWidget MWAPI MwVaListCreateWidget(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height, va_list va); /*! * @brief Destroys the widget and its child widgets * @param handle Widget */ -MWDECL void MwDestroyWidget(MwWidget handle); +MWDECL void MWAPI MwDestroyWidget(MwWidget handle); /*! * @brief Executes a method specific to the widget (varadic version). @@ -115,7 +115,7 @@ MWDECL void MwDestroyWidget(MwWidget handle); * @param handle Widget * @param ... Widget function arguments. */ -MWDECL void MwVaWidgetExecute(MwWidget handle, const char* func_name, void* out, ...); +MWDECL void MWAPI MwVaWidgetExecute(MwWidget handle, const char* func_name, void* out, ...); /*! * @brief Executes a method specific to the widget (va_list version). @@ -123,27 +123,27 @@ MWDECL void MwVaWidgetExecute(MwWidget handle, const char* func_name, void* out, * @param handle Widget * @param va Widget function arguments. */ -MWDECL void MwVaListWidgetExecute(MwWidget handle, const char* func_name, void* out, va_list va); +MWDECL void MWAPI MwVaListWidgetExecute(MwWidget handle, const char* func_name, void* out, va_list va); /*! * @brief Runs the main loop * @param handle Widget */ -MWDECL void MwLoop(MwWidget handle); +MWDECL void MWAPI MwLoop(MwWidget handle); /*! * @brief Runs the single step * @param handle Widget * @return `0` if successful */ -MWDECL int MwStep(MwWidget handle); +MWDECL int MWAPI MwStep(MwWidget handle); /*! * @brief Check if any event is pending * @param handle Widget * @return `1` if any event is pending */ -MWDECL int MwPending(MwWidget handle); +MWDECL int MWAPI MwPending(MwWidget handle); /*! * @brief Sets an integer property @@ -151,7 +151,7 @@ MWDECL int MwPending(MwWidget handle); * @param key Key * @param n Value */ -MWDECL void MwSetInteger(MwWidget handle, const char* key, int n); +MWDECL void MWAPI MwSetInteger(MwWidget handle, const char* key, int n); /*! * @brief Sets a text property @@ -159,7 +159,7 @@ MWDECL void MwSetInteger(MwWidget handle, const char* key, int n); * @param key Key * @param value Value */ -MWDECL void MwSetText(MwWidget handle, const char* key, const char* value); +MWDECL void MWAPI MwSetText(MwWidget handle, const char* key, const char* value); /*! * @brief Sets a void pointer property @@ -167,7 +167,7 @@ MWDECL void MwSetText(MwWidget handle, const char* key, const char* value); * @param key Key * @param value Value */ -MWDECL void MwSetVoid(MwWidget handle, const char* key, void* value); +MWDECL void MWAPI MwSetVoid(MwWidget handle, const char* key, void* value); /*! * @brief Gets the integer property @@ -175,7 +175,7 @@ MWDECL void MwSetVoid(MwWidget handle, const char* key, void* value); * @param key Key * @return Value */ -MWDECL int MwGetInteger(MwWidget handle, const char* key); +MWDECL int MWAPI MwGetInteger(MwWidget handle, const char* key); /*! * @brief Gets the text property @@ -183,7 +183,7 @@ MWDECL int MwGetInteger(MwWidget handle, const char* key); * @param key Key * @return Value */ -MWDECL const char* MwGetText(MwWidget handle, const char* key); +MWDECL const char* MWAPI MwGetText(MwWidget handle, const char* key); /*! * @brief Gets the void pointer property @@ -191,28 +191,28 @@ MWDECL const char* MwGetText(MwWidget handle, const char* key); * @param key Key * @return Value */ -MWDECL void* MwGetVoid(MwWidget handle, const char* key); +MWDECL void* MWAPI MwGetVoid(MwWidget handle, const char* key); /*! * @brief Sets the default property * @param handle Widget * @warning This is called when widget is created */ -MWDECL void MwSetDefault(MwWidget handle); +MWDECL void MWAPI MwSetDefault(MwWidget handle); /*! * @brief Sets the properties * @param handle Widget * @param ... Properties */ -MWDECL void MwVaApply(MwWidget handle, ...); +MWDECL void MWAPI MwVaApply(MwWidget handle, ...); /*! * @brief Sets properties * @param handle Widget * @param va Properties */ -MWDECL void MwVaListApply(MwWidget handle, va_list va); +MWDECL void MWAPI MwVaListApply(MwWidget handle, va_list va); /*! * @brief Sets a user handler @@ -221,7 +221,7 @@ MWDECL void MwVaListApply(MwWidget handle, va_list va); * @param handler Handler * @param user_data User data passed to handler */ -MWDECL void MwAddUserHandler(MwWidget handle, const char* key, MwUserHandler handler, void* user_data); +MWDECL void MWAPI MwAddUserHandler(MwWidget handle, const char* key, MwUserHandler handler, void* user_data); /*! * @brief Dispatches the user handler @@ -229,7 +229,7 @@ MWDECL void MwAddUserHandler(MwWidget handle, const char* key, MwUserHandler han * @param key Key * @param handler_data Handler data passed to handler */ -MWDECL void MwDispatchUserHandler(MwWidget handle, const char* key, void* handler_data); +MWDECL void MWAPI MwDispatchUserHandler(MwWidget handle, const char* key, void* handler_data); /*! * @brief Sets an error handler @@ -237,52 +237,52 @@ MWDECL void MwDispatchUserHandler(MwWidget handle, const char* key, void* handle * @param handler Handler * @param user_data User data passed to handler */ -MWDECL void MwSetErrorHandler(MwErrorHandler handler, void* user_data); +MWDECL void MWAPI MwSetErrorHandler(MwErrorHandler handler, void* user_data); /*! * @brief Dispatches the error handler * @param code Error code * @param message Error message */ -MWDECL void MwDispatchError(int code, const char* message); +MWDECL void MWAPI MwDispatchError(int code, const char* message); /*! * @brief Forcefully makes widget render * @param handle Widget */ -MWDECL void MwForceRender(MwWidget handle); +MWDECL void MWAPI MwForceRender(MwWidget handle); /*! * @brief Forcefully makes widget render * @param handle Widget * @param ptr Ignored */ -MWDECL void MwForceRender2(MwWidget handle, void* ptr); +MWDECL void MWAPI MwForceRender2(MwWidget handle, void* ptr); /*! * @brief Adds an widget to tick handler list * @param handle Widget */ -MWDECL void MwAddTickList(MwWidget handle); +MWDECL void MWAPI MwAddTickList(MwWidget handle); /*! * @brief Focus the widget * @param handle Widget */ -MWDECL void MwFocus(MwWidget handle); +MWDECL void MWAPI MwFocus(MwWidget handle); /*! * @brief Grabs the pointer * @param handle Widget * @param toggle Toggle */ -MWDECL void MwGrabPointer(MwWidget handle, int toggle); +MWDECL void MWAPI MwGrabPointer(MwWidget handle, int toggle); /*! * @brief Hides the cursor * @param handle Widget */ -MWDECL void MwHideCursor(MwWidget handle); +MWDECL void MWAPI MwHideCursor(MwWidget handle); /*! * @brief Toggles the dark theme @@ -290,76 +290,84 @@ MWDECL void MwHideCursor(MwWidget handle); * @param toggle Toggle * @deprecated Use MwNdarkTheme instead */ -MWDECL void MwSetDarkTheme(MwWidget handle, int toggle); +MWDECL void MWAPI MwSetDarkTheme(MwWidget handle, int toggle); /*! * @brief Gets the parent widget * @param handle Widget * @return Parent widget */ -MWDECL MwWidget MwGetParent(MwWidget handle); +MWDECL MwWidget MWAPI MwGetParent(MwWidget handle); /*! * @brief Show widget * @param handle Widget * @param toggle Toggle */ -MWDECL void MwShow(MwWidget handle, int toggle); +MWDECL void MWAPI MwShow(MwWidget handle, int toggle); /*! * @brief Reparents widget * @param handle Widget * @param new_parent New parent */ -MWDECL void MwReparent(MwWidget handle, MwWidget new_parent); +MWDECL void MWAPI MwReparent(MwWidget handle, MwWidget new_parent); /*! * @brief Gets class of widget * @param handle Widget * @return Class */ -MWDECL MwClass MwGetClass(MwWidget handle); +MWDECL MwClass MWAPI MwGetClass(MwWidget handle); /*! * @brief Gets name of widget * @param handle Widget * @return Name */ -MWDECL const char* MwGetName(MwWidget handle); +MWDECL const char* MWAPI MwGetName(MwWidget handle); /*! * @brief Gets children of widget * @param handle Widget * @return Children (NULL-terminated array) */ -MWDECL MwWidget* MwGetChildren(MwWidget handle); +MWDECL MwWidget* MWAPI MwGetChildren(MwWidget handle); /*! * @brief Gets the cursor coordinate * @param handle Widget * @param point Point */ -MWDECL void MwGetCursorCoord(MwWidget handle, MwPoint* point); +MWDECL void MWAPI MwGetCursorCoord(MwWidget handle, MwPoint* point); /*! * @brief Gets the screen size * @param handle Widget * @param rect Rectangle */ -MWDECL void MwGetScreenSize(MwWidget handle, MwRect* rect); +MWDECL void MWAPI MwGetScreenSize(MwWidget handle, MwRect* rect); /*! * @brief Reports whether a widget reports global or local coordinates upon GetXY/SetXY. Anything with a parent reports local, and most backends report global coordinates being supported for top level windows, but some (Wayland) do not. * @param handle Widget */ -MWDECL int MwGetCoordinateType(MwWidget handle); +MWDECL int MWAPI MwGetCoordinateType(MwWidget handle); /*! * @brief Queue to get clipboard content. * @param handle Widget * @param clipboard_type The Clipboard Type to get. See MwClipboardType. This is ignored on backends that aren't X11/Wayland, so if you're unsure, just use MwClipboardMain */ -MWDECL void MwGetClipboard(MwWidget handle, int clipboard_type); +MWDECL void MWAPI MwGetClipboard(MwWidget handle, int clipboard_type); + +#ifdef _MILSKO +MWDECL void MwForceRender_Internal(MwWidget handle); +MWDECL void MwForceRender2_Internal(MwWidget handle, void* ptr); + +#define MwForceRender MwForceRender_Internal +#define MwForceRender2 MwForceRender2_Internal +#endif #ifdef __cplusplus } diff --git a/include/Mw/Default.h b/include/Mw/Default.h index 3d197d011..8e3c0b25b 100644 --- a/include/Mw/Default.h +++ b/include/Mw/Default.h @@ -61,7 +61,7 @@ MWDECL const int MwDefaultShadow; * @brief Gets default border width * @param handle Widget */ -MWDECL int MwDefaultBorderWidth(MwWidget handle); +MWDECL int MWAPI MwDefaultBorderWidth(MwWidget handle); #ifdef __cplusplus } diff --git a/include/Mw/Dialog/ColorPicker.h b/include/Mw/Dialog/ColorPicker.h index a4d77a171..b143fdf50 100644 --- a/include/Mw/Dialog/ColorPicker.h +++ b/include/Mw/Dialog/ColorPicker.h @@ -18,7 +18,7 @@ extern "C" { * @param title Title text * @return Widget */ -MWDECL MwWidget MwColorPicker(MwWidget handle, const char* title); +MWDECL MwWidget MWAPI MwColorPicker(MwWidget handle, const char* title); #ifdef __cplusplus } diff --git a/include/Mw/Dialog/DirectoryChooser.h b/include/Mw/Dialog/DirectoryChooser.h index dceaaa667..cc6853c30 100644 --- a/include/Mw/Dialog/DirectoryChooser.h +++ b/include/Mw/Dialog/DirectoryChooser.h @@ -18,7 +18,7 @@ extern "C" { * @param title Title text * @return Widget */ -MWDECL MwWidget MwDirectoryChooser(MwWidget handle, const char* title); +MWDECL MwWidget MWAPI MwDirectoryChooser(MwWidget handle, const char* title); #ifdef __cplusplus } diff --git a/include/Mw/Dialog/FileChooser.h b/include/Mw/Dialog/FileChooser.h index fbabc49ae..f6aa094ed 100644 --- a/include/Mw/Dialog/FileChooser.h +++ b/include/Mw/Dialog/FileChooser.h @@ -18,7 +18,7 @@ extern "C" { * @param title Title text * @return Widget */ -MWDECL MwWidget MwFileChooser(MwWidget handle, const char* title); +MWDECL MwWidget MWAPI MwFileChooser(MwWidget handle, const char* title); /*! * @brief Creates a file chooser @@ -27,7 +27,7 @@ MWDECL MwWidget MwFileChooser(MwWidget handle, const char* title); * @param dir Show directory only or not * @return Widget */ -MWDECL MwWidget MwFileChooserEx(MwWidget handle, const char* title, int dir); +MWDECL MwWidget MWAPI MwFileChooserEx(MwWidget handle, const char* title, int dir); #ifdef __cplusplus } diff --git a/include/Mw/Dialog/MessageBox.h b/include/Mw/Dialog/MessageBox.h index c0e76edb6..a8a5a462d 100644 --- a/include/Mw/Dialog/MessageBox.h +++ b/include/Mw/Dialog/MessageBox.h @@ -20,14 +20,14 @@ extern "C" { * @param flag Flag * @return Widget */ -MWDECL MwWidget MwMessageBox(MwWidget handle, const char* text, const char* title, unsigned int flag); +MWDECL MwWidget MWAPI MwMessageBox(MwWidget handle, const char* text, const char* title, unsigned int flag); /*! * @brief Gets a child of the message box * @param handle Widget * @param child Child */ -MWDECL MwWidget MwMessageBoxGetChild(MwWidget handle, int child); +MWDECL MwWidget MWAPI MwMessageBoxGetChild(MwWidget handle, int child); #ifdef __cplusplus } diff --git a/include/Mw/Draw.h b/include/Mw/Draw.h index 9208d725d..15bf655da 100644 --- a/include/Mw/Draw.h +++ b/include/Mw/Draw.h @@ -19,14 +19,14 @@ extern "C" { * @param text Color text * @return Color */ -MWDECL MwLLColor MwParseColor(MwWidget handle, const char* text); +MWDECL MwLLColor MWAPI MwParseColor(MwWidget handle, const char* text); /*! * @brief Parses a color text * @param text Color text * @param rgb RGB */ -MWDECL void MwParseColorNoAllocate(const char* text, MwRGB* rgb); +MWDECL void MWAPI MwParseColorNoAllocate(const char* text, MwRGB* rgb); /*! * @brief Lighten a color @@ -37,7 +37,7 @@ MWDECL void MwParseColorNoAllocate(const char* text, MwRGB* rgb); * @param b Blue * @return Color */ -MWDECL MwLLColor MwLightenColor(MwWidget handle, MwLLColor color, int r, int g, int b); +MWDECL MwLLColor MWAPI MwLightenColor(MwWidget handle, MwLLColor color, int r, int g, int b); /*! * @brief Draws a filled rectangle @@ -45,7 +45,7 @@ MWDECL MwLLColor MwLightenColor(MwWidget handle, MwLLColor color, int r, int g, * @param rect Rectangle area * @param color Color */ -MWDECL void MwDrawRect(MwWidget handle, MwRect* rect, MwLLColor color); +MWDECL void MWAPI MwDrawRect(MwWidget handle, MwRect* rect, MwLLColor color); /*! * @brief Draws a filled rectangle that fades to a darker color @@ -53,7 +53,7 @@ MWDECL void MwDrawRect(MwWidget handle, MwRect* rect, MwLLColor color); * @param rect Rectangle area * @param color Color */ -MWDECL void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color); +MWDECL void MWAPI MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color); /*! * @brief Draws a frame @@ -63,7 +63,7 @@ MWDECL void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color); * @param invert Invert the 3D border color or not * @warning `rect` gets changed to the area of rectangle inside */ -MWDECL void MwDrawFrame(MwWidget handle, MwRect* rect, MwLLColor color, int invert); +MWDECL void MWAPI MwDrawFrame(MwWidget handle, MwRect* rect, MwLLColor color, int invert); /*! * @brief Does the DrawFrame/DrawRect combo used for drawing widget. @@ -73,7 +73,7 @@ MWDECL void MwDrawFrame(MwWidget handle, MwRect* rect, MwLLColor color, int inve * @param invert Invert the 3D border color or not * @warning `rect` gets changed to the area of rectangle inside */ -MWDECL void MwDrawWidgetBack(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border); +MWDECL void MWAPI MwDrawWidgetBack(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border); /*! * @brief Draws a triangle @@ -82,7 +82,7 @@ MWDECL void MwDrawWidgetBack(MwWidget handle, MwRect* rect, MwLLColor color, int * @param color Color * @param invert Invert the 3D border color or not */ -MWDECL void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int direction); +MWDECL void MWAPI MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int direction); /*! * @brief Draws a frame with specified border width @@ -96,7 +96,7 @@ MWDECL void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int i * @param rounded Rounded or not * @warning `rect` gets changed to the area of rectangle inside */ -MWDECL void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border, int diff, int same); +MWDECL void MWAPI MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border, int diff, int same); /*! * @brief Creates a pixmap from image @@ -104,7 +104,7 @@ MWDECL void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int in * @param path Path * @return Pixmap */ -MWDECL MwLLPixmap MwLoadImage(MwWidget handle, const char* path); +MWDECL MwLLPixmap MWAPI MwLoadImage(MwWidget handle, const char* path); /*! * @brief Get color components @@ -113,7 +113,7 @@ MWDECL MwLLPixmap MwLoadImage(MwWidget handle, const char* path); * @param green Pointer to green color * @param blue Pointer to blue color */ -MWDECL void MwColorGet(MwLLColor color, int* red, int* green, int* blue); +MWDECL void MWAPI MwColorGet(MwLLColor color, int* red, int* green, int* blue); /*! * @brief Creates a pixmap from raw data @@ -123,28 +123,28 @@ MWDECL void MwColorGet(MwLLColor color, int* red, int* green, int* blue); * @param height Height * @return Pixmap */ -MWDECL MwLLPixmap MwLoadRaw(MwWidget handle, unsigned char* rgb, int width, int height); +MWDECL MwLLPixmap MWAPI MwLoadRaw(MwWidget handle, unsigned char* rgb, int width, int height); /*! * @brief Updates a pixmap using raw data * @param pixmap Pixmap to update * @param rgb RGBA data */ -MWDECL void MwPixmapReloadRaw(MwLLPixmap pixmap, unsigned char* rgb); +MWDECL void MWAPI MwPixmapReloadRaw(MwLLPixmap pixmap, unsigned char* rgb); /*! * @brief Gets the raw data of pixmap * @param pixmap Pixmap * @return RFBA data */ -MWDECL unsigned char* MwPixmapGetRaw(MwLLPixmap pixmap); +MWDECL unsigned char* MWAPI MwPixmapGetRaw(MwLLPixmap pixmap); /*! * @brief Gets the size of pixmap * @param pixmap Pixmap * @param rect Size */ -MWDECL void MwPixmapGetSize(MwLLPixmap pixmap, MwRect* rect); +MWDECL void MWAPI MwPixmapGetSize(MwLLPixmap pixmap, MwRect* rect); /*! * @brief Creates a pixmap from XPM data @@ -152,7 +152,7 @@ MWDECL void MwPixmapGetSize(MwLLPixmap pixmap, MwRect* rect); * @param data Data * @return Pixmap */ -MWDECL MwLLPixmap MwLoadXPM(MwWidget handle, char** data); +MWDECL MwLLPixmap MWAPI MwLoadXPM(MwWidget handle, char** data); /*! * @brief Creates a pixmap from icon data @@ -160,7 +160,7 @@ MWDECL MwLLPixmap MwLoadXPM(MwWidget handle, char** data); * @param data Data * @return Pixmap */ -MWDECL MwLLPixmap MwLoadIcon(MwWidget handle, MwU32* data); +MWDECL MwLLPixmap MWAPI MwLoadIcon(MwWidget handle, MwU32* data); /*! * @brief Draws a diamond @@ -169,7 +169,7 @@ MWDECL MwLLPixmap MwLoadIcon(MwWidget handle, MwU32* data); * @param color Color * @param invert Invert the 3D border color or not */ -MWDECL void MwDrawDiamond(MwWidget handle, MwRect* rect, MwLLColor color, int invert); +MWDECL void MWAPI MwDrawDiamond(MwWidget handle, MwRect* rect, MwLLColor color, int invert); /* text.c */ @@ -182,7 +182,7 @@ MWDECL void MwDrawDiamond(MwWidget handle, MwRect* rect, MwLLColor color, int in * @param align Align * @param color Color */ -MWDECL void MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, int align, MwLLColor color); +MWDECL void MWAPI MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, int align, MwLLColor color); /*! * @brief Calculates a text width @@ -191,7 +191,7 @@ MWDECL void MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char * @param font Font, NULLable * @return Text width */ -MWDECL int MwTextWidth(MwWidget handle, MwFLFont font, const char* text); +MWDECL int MWAPI MwTextWidth(MwWidget handle, MwFLFont font, const char* text); /*! * @brief Calculates a text height @@ -200,7 +200,7 @@ MWDECL int MwTextWidth(MwWidget handle, MwFLFont font, const char* text); * @param font Font, NULLable * @return Text height */ -MWDECL int MwTextHeight(MwWidget handle, MwFLFont font, const char* text); +MWDECL int MWAPI MwTextHeight(MwWidget handle, MwFLFont font, const char* text); /* color.c */ @@ -210,14 +210,14 @@ MWDECL int MwTextHeight(MwWidget handle, MwFLFont font, const char* text); * @param color Color name * @return Color */ -MWDECL MwLLColor MwParseColorName(MwWidget handle, const char* color); +MWDECL MwLLColor MWAPI MwParseColorName(MwWidget handle, const char* color); /*! * @brief Parses a color name * @param color Color name * @param rgb RGB */ -MWDECL void MwParseColorNameNoAllocate(const char* color, MwRGB* rgb); +MWDECL void MWAPI MwParseColorNameNoAllocate(const char* color, MwRGB* rgb); #ifdef __cplusplus } diff --git a/include/Mw/Font.h b/include/Mw/Font.h index 6f22b89f2..9902af69e 100644 --- a/include/Mw/Font.h +++ b/include/Mw/Font.h @@ -18,13 +18,13 @@ extern "C" { * @param size Data size * @return Font handle */ -MWDECL void* MwFontLoad(unsigned char* data, unsigned int size); +MWDECL void* MWAPI MwFontLoad(unsigned char* data, unsigned int size); /*! * @brief Frees a font handle * @param handle Handle */ -MWDECL void MwFontFree(void* handle); +MWDECL void MWAPI MwFontFree(void* handle); #ifdef __cplusplus } diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index 4c9b9d645..218ab5d0c 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -94,6 +94,12 @@ #define MWDECL extern #endif +#if defined(_WIN32) +#define MWAPI __cdecl +#else +#define MWAPI +#endif + #define MwInline static __inline #endif diff --git a/include/Mw/String.h b/include/Mw/String.h index 2a744d9e9..5333d0190 100644 --- a/include/Mw/String.h +++ b/include/Mw/String.h @@ -17,7 +17,7 @@ extern "C" { * @param str String * @return String */ -MWDECL char* MwStringDuplicate(const char* str); +MWDECL char* MWAPI MwStringDuplicate(const char* str); /*! * @brief Concatenates 2 strings @@ -25,21 +25,21 @@ MWDECL char* MwStringDuplicate(const char* str); * @param str2 String * @return String */ -MWDECL char* MwStringConcat(const char* str1, const char* str2); +MWDECL char* MWAPI MwStringConcat(const char* str1, const char* str2); /*! * @brief Converts size to string * @param out Output * @param size Size */ -MWDECL void MwStringSize(char* out, MwOffset size); +MWDECL void MWAPI MwStringSize(char* out, MwOffset size); /*! * @brief Converts time to string * @param out Output * @param t Time */ -MWDECL void MwStringTime(char* out, time_t t); +MWDECL void MWAPI MwStringTime(char* out, time_t t); /*! * @brief Prints up to n characters into a bufferMwStringPrintIntoBuffer. @@ -47,14 +47,14 @@ MWDECL void MwStringTime(char* out, time_t t); * @param out Buffer * @param size Max size */ -MWDECL void MwStringPrintIntoBuffer(char* out, MwU32 size, const char* fmt, ...); +MWDECL void MWAPI MwStringPrintIntoBuffer(char* out, MwU32 size, const char* fmt, ...); /*! * @brief Check if the given key is UTF8 * @param key Input * @return whether its utf8 */ -MWDECL MwBool MwStringIsKeyUTF8(MwU32 key); +MWDECL MwBool MWAPI MwStringIsKeyUTF8(MwU32 key); #ifdef __cplusplus } diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index 561c53b71..04187d616 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -43,8 +43,8 @@ typedef void (*MwHandlerMouse)(MwWidget handle, void* ptr); typedef void (*MwHandlerExecute)(MwWidget handle, const char* name, void* out, va_list args); typedef void (*MwHandlerClipboardReceived)(MwWidget handle, const char* data); -typedef void (*MwUserHandler)(MwWidget handle, void* user_data, void* call_data); -typedef void (*MwErrorHandler)(int code, const char* message, void* user_data); +typedef void (MWAPI *MwUserHandler)(MwWidget handle, void* user_data, void* call_data); +typedef void (MWAPI *MwErrorHandler)(int code, const char* message, void* user_data); struct _MwTextKeyValue { char* key; diff --git a/include/Mw/Unicode.h b/include/Mw/Unicode.h index 2aa6d19ea..32edeaabc 100644 --- a/include/Mw/Unicode.h +++ b/include/Mw/Unicode.h @@ -18,14 +18,14 @@ extern "C" { * @brief output Output * @return Bytes this multibyte takes */ -MWDECL int MwUTF8ToUTF32(const char* input, int* output); +MWDECL int MWAPI MwUTF8ToUTF32(const char* input, int* output); /*! * @brief Calculates UTF-8 string length * @brief input Input * @return Length */ -MWDECL int MwUTF8Length(const char* input); +MWDECL int MWAPI MwUTF8Length(const char* input); /*! * @brief Copies UTF-8 string to other string @@ -36,7 +36,7 @@ MWDECL int MwUTF8Length(const char* input); * @brief len Length * @return Copied length in bytes */ -MWDECL int MwUTF8Copy(const char* src, int srcskip, char* dst, int dstskip, int len); +MWDECL int MWAPI MwUTF8Copy(const char* src, int srcskip, char* dst, int dstskip, int len); /*! * @brief Converts UTF-32 to UTF-8 @@ -44,7 +44,7 @@ MWDECL int MwUTF8Copy(const char* src, int srcskip, char* dst, int dstskip, int * @brief output Output * @return Bytes this wide byte takes */ -MWDECL int MwUTF32ToUTF8(int input, char* output); +MWDECL int MWAPI MwUTF32ToUTF8(int input, char* output); #ifdef __cplusplus } diff --git a/include/Mw/Widget/Vulkan.h b/include/Mw/Widget/Vulkan.h index d9084d744..4c7e0bb13 100644 --- a/include/Mw/Widget/Vulkan.h +++ b/include/Mw/Widget/Vulkan.h @@ -103,7 +103,7 @@ MwInline void* MwVulkanGetField(MwWidget handle, int field, int* err) { /*! * @brief Return whether Vulkan is installed on the target platform. */ -MWDECL int MwVulkanSupported(void); +MWDECL int MWAPI MwVulkanSupported(void); #ifdef __cplusplus } diff --git a/src/core.c b/src/core.c index 4a5aecdb0..8342b839b 100644 --- a/src/core.c +++ b/src/core.c @@ -913,6 +913,16 @@ void MwForceRender2(MwWidget handle, void* ptr) { MwForceRender(handle); } +void MwForceRender_Internal(MwWidget handle) { + MwForceRender(handle); +} + +void MwForceRender2_Internal(MwWidget handle, void* ptr) { + (void)ptr; + + MwForceRender(handle); +} + void MwAddTickList(MwWidget handle) { MwWidget root = handle; while(root->parent != NULL) root = root->parent; diff --git a/src/dialog/colorpicker.c b/src/dialog/colorpicker.c index c08b53589..3a26ad893 100644 --- a/src/dialog/colorpicker.c +++ b/src/dialog/colorpicker.c @@ -158,7 +158,7 @@ static void color_picker_image_update(color_picker_t* picker) { /* printf("%d\n", n); */ } -static void color_picker_click(MwWidget handle, void* user, void* call) { +static void MWAPI color_picker_click(MwWidget handle, void* user, void* call) { color_picker_t* picker = user; MwMouse* mouse = call; char hexColor[8]; @@ -190,7 +190,7 @@ static void color_picker_click(MwWidget handle, void* user, void* call) { MwSetText(picker->color_display_text, MwNbackground, hexColor); MwSetText(picker->color_display_text, MwNtext, hexColor); } -static void color_picker_on_change_value(MwWidget handle, void* user, +static void MWAPI color_picker_on_change_value(MwWidget handle, void* user, void* call) { color_picker_t* picker = user; @@ -206,7 +206,7 @@ static void color_picker_on_change_value(MwWidget handle, void* user, /* color_picker_image_update(picker); */ } -static void color_picker_tick(MwWidget handle, void* user, +static void MWAPI color_picker_tick(MwWidget handle, void* user, void* call) { color_picker_t* picker = user; @@ -224,7 +224,7 @@ static void color_picker_destroy(color_picker_t* picker) { free(picker); } -static void color_picker_close(MwWidget handle, void* user, +static void MWAPI color_picker_close(MwWidget handle, void* user, void* call) { color_picker_t* picker = user; @@ -234,7 +234,7 @@ static void color_picker_close(MwWidget handle, void* user, MwDestroyWidget(handle); } -static void color_display_text_change(MwWidget handle, void* user, +static void MWAPI color_display_text_change(MwWidget handle, void* user, void* call) { color_picker_t* picker = user; char hexColor[9]; @@ -265,7 +265,7 @@ static void color_display_text_change(MwWidget handle, void* user, MwLLFreeColor(color); } -static void color_picker_finish(MwWidget handle, void* user, +static void MWAPI color_picker_finish(MwWidget handle, void* user, void* call) { color_picker_t* picker = user; diff --git a/src/dialog/filechooser.c b/src/dialog/filechooser.c index b65346b04..8b603e969 100644 --- a/src/dialog/filechooser.c +++ b/src/dialog/filechooser.c @@ -53,35 +53,35 @@ static void destroy(MwWidget handle) { MwDestroyWidget(handle); } -static void filecancel(MwWidget handle, void* user, void* call) { +static void MWAPI filecancel(MwWidget handle, void* user, void* call) { (void)user; (void)call; destroy(handle->parent); } -static void cancel_window(MwWidget handle, void* user, void* call) { +static void MWAPI cancel_window(MwWidget handle, void* user, void* call) { (void)user; (void)call; destroy(handle); } -static void okay(MwWidget handle, void* user, void* call) { +static void MWAPI okay(MwWidget handle, void* user, void* call) { (void)user; (void)call; destroy(handle->parent); } -static void msgbox_okay(MwWidget handle, void* user, void* call) { +static void MWAPI msgbox_okay(MwWidget handle, void* user, void* call) { (void)user; (void)call; MwDestroyWidget(handle->parent); } -static void files_activate(MwWidget handle, void* user, void* call) { +static void MWAPI files_activate(MwWidget handle, void* user, void* call) { int index = *(int*)call; filechooser_t* fc = handle->parent->opaque; @@ -104,7 +104,7 @@ static void files_activate(MwWidget handle, void* user, void* call) { } } -static void okay_activate(MwWidget handle, void* user, void* call) { +static void MWAPI okay_activate(MwWidget handle, void* user, void* call) { filechooser_t* fc = handle->parent->opaque; char* t = (char*)MwGetText(fc->filename, MwNtext); struct stat s; @@ -140,7 +140,7 @@ static void okay_activate(MwWidget handle, void* user, void* call) { if(p != NULL) free(p); } -static void nav_activate(MwWidget handle, void* user, void* call) { +static void MWAPI nav_activate(MwWidget handle, void* user, void* call) { int index = *(int*)call; const char* e = MwListBoxGet(handle, index); @@ -156,7 +156,7 @@ static void nav_activate(MwWidget handle, void* user, void* call) { } } -static void addr_up_activate(MwWidget handle, void* user, void* call) { +static void MWAPI addr_up_activate(MwWidget handle, void* user, void* call) { filechooser_t* fc = handle->parent->opaque; char* p = MwDirectoryJoin(fc->path, ".."); @@ -168,7 +168,7 @@ static void addr_up_activate(MwWidget handle, void* user, void* call) { free(p); } -static void addr_back_activate(MwWidget handle, void* user, void* call) { +static void MWAPI addr_back_activate(MwWidget handle, void* user, void* call) { filechooser_t* fc = handle->parent->opaque; (void)user; @@ -181,7 +181,7 @@ static void addr_back_activate(MwWidget handle, void* user, void* call) { } } -static void addr_fwd_activate(MwWidget handle, void* user, void* call) { +static void MWAPI addr_fwd_activate(MwWidget handle, void* user, void* call) { filechooser_t* fc = handle->parent->opaque; (void)user; @@ -192,7 +192,7 @@ static void addr_fwd_activate(MwWidget handle, void* user, void* call) { } } -static void addr_activate(MwWidget handle, void* user, void* call) { +static void MWAPI addr_activate(MwWidget handle, void* user, void* call) { (void)user; (void)call; @@ -390,7 +390,7 @@ static void layout(MwWidget handle) { } } -static void resize(MwWidget handle, void* user, void* call) { +static void MWAPI resize(MwWidget handle, void* user, void* call) { (void)user; (void)call; diff --git a/src/dialog/messagebox.c b/src/dialog/messagebox.c index c634b5d88..4bb5d3421 100644 --- a/src/dialog/messagebox.c +++ b/src/dialog/messagebox.c @@ -24,7 +24,7 @@ static void messagebox_destroy_inject(MwWidget handle) { if((px = MwGetVoid(handle, MwNpixmap)) != NULL) MwLLDestroyPixmap(px); } -static void messagebox_close(MwWidget handle, void* user, void* call) { +static void MWAPI messagebox_close(MwWidget handle, void* user, void* call) { (void)user; (void)call; MwDestroyWidget(handle); diff --git a/src/widget/combobox.c b/src/widget/combobox.c index 2803cbec2..dd037e945 100644 --- a/src/widget/combobox.c +++ b/src/widget/combobox.c @@ -78,7 +78,7 @@ static void draw(MwWidget handle) { MwLLFreeColor(base); } -static void listbox_activate(MwWidget handle, void* user, void* client) { +static void MWAPI listbox_activate(MwWidget handle, void* user, void* client) { MwComboBox cb = handle->parent->internal; (void)user; diff --git a/src/widget/listbox.c b/src/widget/listbox.c index 90d5126d1..c500d3a23 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -54,7 +54,7 @@ static int get_col_width(MwListBox lb, int ind) { return 0; } -static void vscroll_changed(MwWidget handle, void* user, void* call) { +static void MWAPI vscroll_changed(MwWidget handle, void* user, void* call) { MwListBox lb = handle->parent->internal; (void)user; @@ -63,7 +63,7 @@ static void vscroll_changed(MwWidget handle, void* user, void* call) { lb->changed = 1; } -static void frame_mouse_down(MwWidget handle, void* user, void* call) { +static void MWAPI frame_mouse_down(MwWidget handle, void* user, void* call) { MwListBox lb = handle->parent->internal; MwMouse* m = call; @@ -98,7 +98,7 @@ static void frame_mouse_down(MwWidget handle, void* user, void* call) { } } -static void frame_mouse_up(MwWidget handle, void* user, void* call) { +static void MWAPI frame_mouse_up(MwWidget handle, void* user, void* call) { MwListBox lb = handle->parent->internal; MwMouse* m = call; @@ -109,7 +109,7 @@ static void frame_mouse_up(MwWidget handle, void* user, void* call) { } } -static void frame_mouse_move(MwWidget handle, void* user, void* call) { +static void MWAPI frame_mouse_move(MwWidget handle, void* user, void* call) { MwListBox lb = handle->parent->internal; MwPoint* p = call; diff --git a/src/widget/treeview.c b/src/widget/treeview.c index 580ecd6b2..3fe398549 100644 --- a/src/widget/treeview.c +++ b/src/widget/treeview.c @@ -6,7 +6,7 @@ #define LineSpace 16 #define LinePadding 4 -static void vscroll_changed(MwWidget handle, void* user, void* call) { +static void MWAPI vscroll_changed(MwWidget handle, void* user, void* call) { MwTreeView tv = handle->parent->internal; (void)user; @@ -211,7 +211,7 @@ static int recursive_length(MwTreeViewEntry** e) { return l; } -static void frame_mouse_down(MwWidget handle, void* user, void* call) { +static void MWAPI frame_mouse_down(MwWidget handle, void* user, void* call) { MwTreeView tv = handle->parent->internal; MwMouse* mouse = call; @@ -222,7 +222,7 @@ static void frame_mouse_down(MwWidget handle, void* user, void* call) { static void resize(MwWidget handle); -static void frame_mouse_up(MwWidget handle, void* user, void* call) { +static void MWAPI frame_mouse_up(MwWidget handle, void* user, void* call) { MwTreeView tv = handle->parent->internal; int shared = 0; int skip = MwGetInteger(tv->vscroll, MwNvalue) * (MwGetInteger(tv->vscroll, MwNmaxValue) - MwGetInteger(tv->vscroll, MwNareaShown)) / MwGetInteger(tv->vscroll, MwNmaxValue); diff --git a/src/widget/viewport.c b/src/widget/viewport.c index ceaab5eb8..2541b65d2 100644 --- a/src/widget/viewport.c +++ b/src/widget/viewport.c @@ -1,6 +1,6 @@ #include -static void vscroll_changed(MwWidget handle, void* user, void* call) { +static void MWAPI vscroll_changed(MwWidget handle, void* user, void* call) { MwViewport vp = user; (void)handle; @@ -9,7 +9,7 @@ static void vscroll_changed(MwWidget handle, void* user, void* call) { vp->vchanged = 1; } -static void hscroll_changed(MwWidget handle, void* user, void* call) { +static void MWAPI hscroll_changed(MwWidget handle, void* user, void* call) { MwViewport vp = user; (void)handle; From 129f8f4d6636bfc6b574a5f560b66297bedccbb6 Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 22 Apr 2026 12:13:43 +0900 Subject: [PATCH 495/836] build dll --- Jenkinsfile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 8c1d0050a..f2818d1bf 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -42,6 +42,8 @@ pipeline { sh("./configure --enable-opengl --enable-stb-truetype --disable-freetype2 --cross --target=Windows --host=i686-w64-mingw32") sh("make clean") sh("make -j4") + sh("mv src/Mw.dll Mw32.dll") + archiveArtifacts("Mw32.dll") } } stage("Build for Windows 64-bit") { @@ -52,6 +54,8 @@ pipeline { sh("./configure --enable-opengl --enable-stb-truetype --disable-freetype2 --cross --target=Windows --host=x86_64-w64-mingw32") sh("make clean") sh("make -j4") + sh("mv src/Mw.dll Mw64.dll") + archiveArtifacts("Mw64.dll") } } stage("Build for Windows 32-bit (MSVC)") { @@ -61,6 +65,8 @@ pipeline { steps { bat("nmake -f NTMakefile clean") bat("nmake -f NTMakefile") + bat("move /y src\\Mw.dll MwWatcom32.dll") + archiveArtifacts("MwWatcom32.dll") } } } From 319927aee1c6739c2debaac83693fd6f0d5a0db1 Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 22 Apr 2026 12:14:35 +0900 Subject: [PATCH 496/836] fix --- src/core.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core.c b/src/core.c index 8342b839b..1bb03a96e 100644 --- a/src/core.c +++ b/src/core.c @@ -903,10 +903,12 @@ void MwDispatchError(int code, const char* message) { } } +#undef MwForceRender void MwForceRender(MwWidget handle) { MwLLForceRender(handle->lowlevel); } +#undef MwForceRender2 void MwForceRender2(MwWidget handle, void* ptr) { (void)ptr; From 0b1879bfa5d4670b2d5da5e411182e5b9d9caf7b Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 22 Apr 2026 13:41:18 +0900 Subject: [PATCH 497/836] build for linux --- Jenkinsfile | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f2818d1bf..dd5a5f760 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -32,6 +32,8 @@ pipeline { sh("./configure --enable-opengl --enable-vulkan --without-vulkan-string-helper") sh("make clean") sh("make -j4") + sh("mv src/libMw.so libMw64.so") + archiveArtifacts("libMw64.so") } } stage("Build for Windows 32-bit") { @@ -43,7 +45,8 @@ pipeline { sh("make clean") sh("make -j4") sh("mv src/Mw.dll Mw32.dll") - archiveArtifacts("Mw32.dll") + sh("mv src/libMw.dll.a libMw32.dll.a") + archiveArtifacts("Mw32.dll,libMw32.dll.a") } } stage("Build for Windows 64-bit") { @@ -55,7 +58,8 @@ pipeline { sh("make clean") sh("make -j4") sh("mv src/Mw.dll Mw64.dll") - archiveArtifacts("Mw64.dll") + sh("mv src/libMw.dll.a libMw64.dll.a") + archiveArtifacts("Mw64.dll,libMw64.dll.a") } } stage("Build for Windows 32-bit (MSVC)") { @@ -66,7 +70,8 @@ pipeline { bat("nmake -f NTMakefile clean") bat("nmake -f NTMakefile") bat("move /y src\\Mw.dll MwWatcom32.dll") - archiveArtifacts("MwWatcom32.dll") + bat("move /y src\\Mw.lib MwWatcom32.lib") + archiveArtifacts("MwWatcom32.dll,MwWatcom32.lib") } } } From 65f16f3144837b9203e358f80cc11a8e35d27fcb Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 22 Apr 2026 13:45:55 +0900 Subject: [PATCH 498/836] fix --- Jenkinsfile | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index dd5a5f760..89ca744a3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -29,6 +29,7 @@ pipeline { label "built-in" } steps { + sh("rm -f *.so") sh("./configure --enable-opengl --enable-vulkan --without-vulkan-string-helper") sh("make clean") sh("make -j4") @@ -41,6 +42,7 @@ pipeline { label "built-in" } steps { + sh("rm -f *.dll *.dll.a") sh("./configure --enable-opengl --enable-stb-truetype --disable-freetype2 --cross --target=Windows --host=i686-w64-mingw32") sh("make clean") sh("make -j4") @@ -54,6 +56,7 @@ pipeline { label "built-in" } steps { + sh("rm -f *.dll *.dll.a") sh("./configure --enable-opengl --enable-stb-truetype --disable-freetype2 --cross --target=Windows --host=x86_64-w64-mingw32") sh("make clean") sh("make -j4") @@ -67,11 +70,12 @@ pipeline { label "2012r2" } steps { + bat("del /s *.dll *.lib") bat("nmake -f NTMakefile clean") bat("nmake -f NTMakefile") - bat("move /y src\\Mw.dll MwWatcom32.dll") - bat("move /y src\\Mw.lib MwWatcom32.lib") - archiveArtifacts("MwWatcom32.dll,MwWatcom32.lib") + bat("move /y src\\Mw.dll MwMSVC32.dll") + bat("move /y src\\Mw.lib MwMSVC32.lib") + archiveArtifacts("MwMSVC32.dll,MwMSVC32.lib") } } } From 2369b96091f28fca09a5c47c714c3bdadb6f5878 Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 22 Apr 2026 14:28:28 +0900 Subject: [PATCH 499/836] add checkbox and radiobox demo to periodic table --- examples/basic/periodic.c | 28 ++++++++++++++++++++++++++-- include/Mw/TypeDefs.h | 4 ++-- src/dialog/colorpicker.c | 10 +++++----- src/draw.c | 6 +++--- src/widget/checkbox.c | 11 ++++++++++- src/widget/radiobox.c | 10 +++++++++- 6 files changed, 55 insertions(+), 14 deletions(-) diff --git a/examples/basic/periodic.c b/examples/basic/periodic.c index c46bba757..2f4e4a542 100644 --- a/examples/basic/periodic.c +++ b/examples/basic/periodic.c @@ -145,8 +145,8 @@ static void MWAPI menu_handler(MwWidget handle, void* user, void* call) { } int main() { - int i; - MwWidget f, w; + int i, j; + MwWidget f, w, b; int index; MwMenu m, m2; void* v; @@ -224,6 +224,30 @@ int main() { MwNratio, Columns - 2, NULL)); + for(i = 0; i < 2; i++) { + f = frame(i == 0 ? "CheckBox" : "RadioBox", -PaddingContent, -PaddingContent, MwBoxClass, + MwNmargin, PaddingContent, + NULL); + w = child(f); + b = MwVaCreateWidget(MwBoxClass, "box1", w, 0, 0, 0, 0, + MwNorientation, MwVERTICAL, + MwNfixedSize, 16, + NULL); + for(j = 0; j < 5; j++) MwCreateWidget(i == 0 ? MwCheckBoxClass : MwRadioBoxClass, i == 0 ? "cb" : "rb", b, 0, 0, 0, 0); + b = MwVaCreateWidget(MwBoxClass, "box1", w, 0, 0, 0, 0, + MwNorientation, MwVERTICAL, + NULL); + for(j = 0; j < 5; j++) { + char buf[32]; + sprintf(buf, "%sBox %d", i == 0 ? "Check" : "Radio", j + 1); + MwVaCreateWidget(MwLabelClass, "label", b, 0, 0, 0, 0, + MwNtext, buf, + MwNalignment, MwALIGNMENT_BEGINNING, + NULL); + } + add(f); + } + f = frame("ComboBox", -PaddingContent, 24, MwComboBoxClass, NULL); w = child(f); MwComboBoxAdd(w, -1, "Hello!"); diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index 04187d616..f205de59d 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -43,8 +43,8 @@ typedef void (*MwHandlerMouse)(MwWidget handle, void* ptr); typedef void (*MwHandlerExecute)(MwWidget handle, const char* name, void* out, va_list args); typedef void (*MwHandlerClipboardReceived)(MwWidget handle, const char* data); -typedef void (MWAPI *MwUserHandler)(MwWidget handle, void* user_data, void* call_data); -typedef void (MWAPI *MwErrorHandler)(int code, const char* message, void* user_data); +typedef void(MWAPI* MwUserHandler)(MwWidget handle, void* user_data, void* call_data); +typedef void(MWAPI* MwErrorHandler)(int code, const char* message, void* user_data); struct _MwTextKeyValue { char* key; diff --git a/src/dialog/colorpicker.c b/src/dialog/colorpicker.c index 3a26ad893..926fddcbc 100644 --- a/src/dialog/colorpicker.c +++ b/src/dialog/colorpicker.c @@ -191,7 +191,7 @@ static void MWAPI color_picker_click(MwWidget handle, void* user, void* call) { MwSetText(picker->color_display_text, MwNtext, hexColor); } static void MWAPI color_picker_on_change_value(MwWidget handle, void* user, - void* call) { + void* call) { color_picker_t* picker = user; int value = MwGetInteger(handle, MwNvalue); @@ -207,7 +207,7 @@ static void MWAPI color_picker_on_change_value(MwWidget handle, void* user, } static void MWAPI color_picker_tick(MwWidget handle, void* user, - void* call) { + void* call) { color_picker_t* picker = user; (void)handle; @@ -225,7 +225,7 @@ static void color_picker_destroy(color_picker_t* picker) { } static void MWAPI color_picker_close(MwWidget handle, void* user, - void* call) { + void* call) { color_picker_t* picker = user; (void)call; @@ -235,7 +235,7 @@ static void MWAPI color_picker_close(MwWidget handle, void* user, } static void MWAPI color_display_text_change(MwWidget handle, void* user, - void* call) { + void* call) { color_picker_t* picker = user; char hexColor[9]; char fgColor[9]; @@ -266,7 +266,7 @@ static void MWAPI color_display_text_change(MwWidget handle, void* user, } static void MWAPI color_picker_finish(MwWidget handle, void* user, - void* call) { + void* call) { color_picker_t* picker = user; (void)call; diff --git a/src/draw.c b/src/draw.c index 8dde8418e..7297973fa 100644 --- a/src/draw.c +++ b/src/draw.c @@ -237,16 +237,16 @@ void MwDrawDiamond(MwWidget handle, MwRect* rect, MwLLColor color, int invert) { MwLLPolygon(handle->lowlevel, p, 6, invert ? lighter : darker); p[0].x = rect->x + rect->width / 2; - p[0].y = border; + p[0].y = rect->y + border; p[1].x = rect->x + rect->width - border; - p[1].y = rect->height / 2; + p[1].y = rect->y + rect->height / 2; p[2].x = rect->x + rect->width / 2; p[2].y = rect->y + rect->height - border; p[3].x = rect->x + border; - p[3].y = rect->height / 2; + p[3].y = rect->y + rect->height / 2; MwLLPolygon(handle->lowlevel, p, 4, col); diff --git a/src/widget/checkbox.c b/src/widget/checkbox.c index 72e0da3e3..353397619 100644 --- a/src/widget/checkbox.c +++ b/src/widget/checkbox.c @@ -17,6 +17,15 @@ static void draw(MwWidget handle) { r.y = 0; r.width = MwGetInteger(handle, MwNwidth); r.height = MwGetInteger(handle, MwNheight); + MwDrawRect(handle, &r, base); + + if(r.width < r.height) { + r.height = r.width; + } else { + r.width = r.height; + } + r.x = (MwGetInteger(handle, MwNwidth) - r.width) / 2; + r.y = (MwGetInteger(handle, MwNheight) - r.height) / 2; MwDrawWidgetBack(handle, &r, base, (handle->pressed || MwGetInteger(handle, MwNchecked)) ? 1 : 0, MwTRUE); if(bgpx != NULL) MwLLDrawPixmap(handle->lowlevel, &r, bgpx); @@ -50,7 +59,7 @@ MwClassRec MwCheckBoxClassRec = { NULL, /* key */ NULL, /* execute */ NULL, /* tick */ - NULL, /* resize */ + MwForceRender, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ NULL, /* clipboard */ diff --git a/src/widget/radiobox.c b/src/widget/radiobox.c index 82fff2942..c93e054b4 100644 --- a/src/widget/radiobox.c +++ b/src/widget/radiobox.c @@ -19,9 +19,17 @@ static void draw(MwWidget handle) { r.y = 0; r.width = MwGetInteger(handle, MwNwidth); r.height = MwGetInteger(handle, MwNheight); - MwDrawRect(handle, &r, base); if(bgpx != NULL) MwLLDrawPixmap(handle->lowlevel, &r, bgpx); + + if(r.width < r.height) { + r.height = r.width; + } else { + r.width = r.height; + } + r.x = (MwGetInteger(handle, MwNwidth) - r.width) / 2; + r.y = (MwGetInteger(handle, MwNheight) - r.height) / 2; + MwDrawDiamond(handle, &r, base, (handle->pressed || MwGetInteger(handle, MwNchecked)) ? 1 : 0); MwLLFreeColor(base); From 5ff982d10654ab38a4b92815c4954177471d7e8e Mon Sep 17 00:00:00 2001 From: Nishi Date: Thu, 23 Apr 2026 14:59:35 +0900 Subject: [PATCH 500/836] add ui charset converter and stuff --- BorMakefile | 5 +- NTMakefile | 5 +- WatMakefile | 9 ++-- include/Mw/Abstract/CharSet.h | 22 ++++++++ include/Mw/MachDep.h | 4 ++ include/Mw/Milsko.h | 1 + src/abstract/charset.c | 95 +++++++++++++++++++++++++++++++++++ src/dialog/filechooser.c | 19 ++++--- src/widget/listbox.c | 41 ++++++++++----- 9 files changed, 176 insertions(+), 25 deletions(-) create mode 100644 include/Mw/Abstract/CharSet.h create mode 100644 src/abstract/charset.c diff --git a/BorMakefile b/BorMakefile index 0f61bac95..2fc9d24ba 100644 --- a/BorMakefile +++ b/BorMakefile @@ -24,6 +24,7 @@ clean: del /f /q external\stb_ds.obj del /f /q external\stb_image.obj del /f /q external\stb_truetype.obj + del /f /q src\abstract\charset.obj del /f /q src\abstract\directory.obj del /f /q src\abstract\dynamic.obj del /f /q src\abstract\time.obj @@ -92,8 +93,8 @@ clean: del /f /q src\Mw.dll del /f /q src\Mw.lib -src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj - $(LD) $(LDFLAGS) -e$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj -lopengl32.lib -lgdi32.lib -luser32.lib -ladvapi32.lib +src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj + $(LD) $(LDFLAGS) -e$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj -lopengl32.lib -lgdi32.lib -luser32.lib -ladvapi32.lib implib src\Mw.lib src\Mw.dll .c.obj: diff --git a/NTMakefile b/NTMakefile index de5186841..669dd15d6 100644 --- a/NTMakefile +++ b/NTMakefile @@ -24,6 +24,7 @@ clean: del /f /q external\stb_ds.obj del /f /q external\stb_image.obj del /f /q external\stb_truetype.obj + del /f /q src\abstract\charset.obj del /f /q src\abstract\directory.obj del /f /q src\abstract\dynamic.obj del /f /q src\abstract\time.obj @@ -92,8 +93,8 @@ clean: del /f /q src\Mw.dll del /f /q src\Mw.lib -src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj - $(LD) $(LDFLAGS) /OUT:$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib user32.lib advapi32.lib +src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj + $(LD) $(LDFLAGS) /OUT:$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib user32.lib advapi32.lib .c.obj: diff --git a/WatMakefile b/WatMakefile index 633a259a3..4ce4c3ff8 100644 --- a/WatMakefile +++ b/WatMakefile @@ -1,4 +1,4 @@ -CC = wcc386 -bt=nt -q -bd -d3 +CC = wcc386 -bt=nt -q -bd LD = wlink option quiet CFLAGS = -i=include -i=external/libz/include -d_MILSKO -dUSE_GDI -dUSE_STB_TRUETYPE -dUSE_STB_IMAGE -dSTBI_NO_SIMD @@ -23,6 +23,7 @@ clean: .SYMBOLIC %erase external/stb_ds.obj %erase external/stb_image.obj %erase external/stb_truetype.obj + %erase src/abstract/charset.obj %erase src/abstract/directory.obj %erase src/abstract/dynamic.obj %erase src/abstract/time.obj @@ -91,8 +92,8 @@ clean: .SYMBOLIC %erase src/Mw.dll %erase src/Mw.lib -src/Mw.dll: external/libz/src/adler32.obj external/libz/src/compress.obj external/libz/src/crc32.obj external/libz/src/deflate.obj external/libz/src/gzclose.obj external/libz/src/gzlib.obj external/libz/src/gzread.obj external/libz/src/gzwrite.obj external/libz/src/infback.obj external/libz/src/inffast.obj external/libz/src/inflate.obj external/libz/src/inftrees.obj external/libz/src/trees.obj external/libz/src/uncompr.obj external/libz/src/zutil.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text/font/boldfont.obj src/text/font/boldmonottf.obj src/text/font/boldttf.obj src/text/font/font.obj src/text/font/monottf.obj src/text/font/ttf.obj src/text/ft2.obj src/text/stbtt.obj src/text/text.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj - $(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file external/libz/src/adler32.obj file external/libz/src/compress.obj file external/libz/src/crc32.obj file external/libz/src/deflate.obj file external/libz/src/gzclose.obj file external/libz/src/gzlib.obj file external/libz/src/gzread.obj file external/libz/src/gzwrite.obj file external/libz/src/infback.obj file external/libz/src/inffast.obj file external/libz/src/inflate.obj file external/libz/src/inftrees.obj file external/libz/src/trees.obj file external/libz/src/uncompr.obj file external/libz/src/zutil.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/font/boldfont.obj file src/text/font/boldmonottf.obj file src/text/font/boldttf.obj file src/text/font/font.obj file src/text/font/monottf.obj file src/text/font/ttf.obj file src/text/ft2.obj file src/text/stbtt.obj file src/text/text.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib library advapi32.lib +src/Mw.dll: external/libz/src/adler32.obj external/libz/src/compress.obj external/libz/src/crc32.obj external/libz/src/deflate.obj external/libz/src/gzclose.obj external/libz/src/gzlib.obj external/libz/src/gzread.obj external/libz/src/gzwrite.obj external/libz/src/infback.obj external/libz/src/inffast.obj external/libz/src/inflate.obj external/libz/src/inftrees.obj external/libz/src/trees.obj external/libz/src/uncompr.obj external/libz/src/zutil.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/charset.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text/font/boldfont.obj src/text/font/boldmonottf.obj src/text/font/boldttf.obj src/text/font/font.obj src/text/font/monottf.obj src/text/font/ttf.obj src/text/ft2.obj src/text/stbtt.obj src/text/text.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj + $(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file external/libz/src/adler32.obj file external/libz/src/compress.obj file external/libz/src/crc32.obj file external/libz/src/deflate.obj file external/libz/src/gzclose.obj file external/libz/src/gzlib.obj file external/libz/src/gzread.obj file external/libz/src/gzwrite.obj file external/libz/src/infback.obj file external/libz/src/inffast.obj file external/libz/src/inflate.obj file external/libz/src/inftrees.obj file external/libz/src/trees.obj file external/libz/src/uncompr.obj file external/libz/src/zutil.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/charset.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/font/boldfont.obj file src/text/font/boldmonottf.obj file src/text/font/boldttf.obj file src/text/font/font.obj file src/text/font/monottf.obj file src/text/font/ttf.obj file src/text/ft2.obj file src/text/stbtt.obj file src/text/text.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib library advapi32.lib @@ -132,6 +133,8 @@ external/stb_image.obj: external/stb_image.c $(CC) $(CFLAGS) -fo=$@ $< external/stb_truetype.obj: external/stb_truetype.c $(CC) $(CFLAGS) -fo=$@ $< +src/abstract/charset.obj: src/abstract/charset.c + $(CC) $(CFLAGS) -fo=$@ $< src/abstract/directory.obj: src/abstract/directory.c $(CC) $(CFLAGS) -fo=$@ $< src/abstract/dynamic.obj: src/abstract/dynamic.c diff --git a/include/Mw/Abstract/CharSet.h b/include/Mw/Abstract/CharSet.h new file mode 100644 index 000000000..f0a42f7d0 --- /dev/null +++ b/include/Mw/Abstract/CharSet.h @@ -0,0 +1,22 @@ +/*! + * @file Mw/Abstract/CharSet.h + * @brief CharSet + */ +#ifndef __MW_ABSTRACT_CHARSET_H__ +#define __MW_ABSTRACT_CHARSET_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +MWDECL char* MWAPI MwACPToUTF8(const char* input); + +MWDECL char* MWAPI MwUTF8ToACP(const char* input); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index 218ab5d0c..7b068a874 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -16,6 +16,10 @@ #include #include #include +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199409L +#include +#define MW_HAS_WCHAR +#endif #ifdef _WIN32 #include diff --git a/include/Mw/Milsko.h b/include/Mw/Milsko.h index 07a560b00..153f12440 100644 --- a/include/Mw/Milsko.h +++ b/include/Mw/Milsko.h @@ -21,6 +21,7 @@ #include #include #include +#include #include #include diff --git a/src/abstract/charset.c b/src/abstract/charset.c new file mode 100644 index 000000000..971496d9a --- /dev/null +++ b/src/abstract/charset.c @@ -0,0 +1,95 @@ +#include + +#ifndef CP_UTF8 +#define CP_UTF8 65001 +#endif + +char* MwACPToUTF8(const char* input){ +#if defined(_WIN32) && defined(MW_HAS_WCHAR) + int mbbytes = (strlen(input) + 1) * 4; + int wbytes = 0; + int len; + + wchar_t* wout; + char* mbout = malloc(mbbytes); + + wbytes = MultiByteToWideChar(CP_ACP, 0, input, strlen(input), NULL, 0) * sizeof(wchar_t); + if(wbytes == 0){ + free(mbout); + return MwStringDuplicate(input); + } + + wout = malloc(wbytes); + len = wbytes / sizeof(wchar_t); + + memset(wout, 0, wbytes); + memset(mbout, 0, mbbytes); + + len = MultiByteToWideChar(CP_ACP, 0, input, strlen(input), wout, len); + if(len == 0){ + free(mbout); + free(wout); + return MwStringDuplicate(input); + } + + len = WideCharToMultiByte(CP_UTF8, 0, wout, len, mbout, mbbytes, 0, 0); + if(len == 0){ + free(mbout); + free(wout); + return MwStringDuplicate(input); + } + + mbout[len] = 0; + + free(wout); + + return mbout; +#else + return MwStringDuplicate(input); +#endif +} + +char* MwUTF8ToACP(const char* input){ +#if defined(_WIN32) && defined(MW_HAS_WCHAR) + int mbbytes = (strlen(input) + 1) * 4; + int wbytes = 0; + int len; + + wchar_t* wout; + char* mbout = malloc(mbbytes); + + wbytes = MultiByteToWideChar(CP_UTF8, 0, input, strlen(input), NULL, 0) * sizeof(wchar_t); + if(wbytes == 0){ + free(mbout); + return MwStringDuplicate(input); + } + + wout = malloc(wbytes); + len = wbytes / sizeof(wchar_t); + + memset(wout, 0, wbytes); + memset(mbout, 0, mbbytes); + + len = MultiByteToWideChar(CP_UTF8, 0, input, strlen(input), wout, len); + if(len == 0){ + free(mbout); + free(wout); + return MwStringDuplicate(input); + } + + len = WideCharToMultiByte(CP_ACP, 0, wout, len, mbout, mbbytes, 0, 0); + if(len == 0){ + free(mbout); + free(wout); + return MwStringDuplicate(input); + } + + mbout[len] = 0; + + free(wout); + + return mbout; +#else + return MwStringDuplicate(input); +#endif +} diff --git a/src/dialog/filechooser.c b/src/dialog/filechooser.c index 8b603e969..edd2eaf94 100644 --- a/src/dialog/filechooser.c +++ b/src/dialog/filechooser.c @@ -50,28 +50,27 @@ static void destroy(MwWidget handle) { MwLLDestroyPixmap(fc->up); MwLLDestroyPixmap(fc->computer); free(handle->opaque); - MwDestroyWidget(handle); } static void MWAPI filecancel(MwWidget handle, void* user, void* call) { (void)user; (void)call; - destroy(handle->parent); + MwDestroyWidget(handle->parent); } static void MWAPI cancel_window(MwWidget handle, void* user, void* call) { (void)user; (void)call; - destroy(handle); + MwDestroyWidget(handle); } static void MWAPI okay(MwWidget handle, void* user, void* call) { (void)user; (void)call; - destroy(handle->parent); + MwDestroyWidget(handle->parent); } static void MWAPI msgbox_okay(MwWidget handle, void* user, void* call) { @@ -470,13 +469,16 @@ static void scan(MwWidget handle, const char* path, int record) { if(strcmp(fc->entries[i]->name, ".") == 0 || strcmp(fc->entries[i]->name, "..") == 0) continue; if(fc->entries[i]->type == MwDIRECTORY_DIRECTORY) { char date[128]; + char* n = MwACPToUTF8(fc->entries[i]->name); MwStringTime(date, fc->entries[i]->mtime); - index = MwListBoxSet(fc->files, -1, 0, fc->entries[i]->name); + index = MwListBoxSet(fc->files, -1, 0, n); MwListBoxSet(fc->files, index, -1, date); MwListBoxSet(fc->files, index, -1, NULL); MwListBoxSetIcon(fc->files, index, fc->dir); + + free(n); arrput(fc->sorted_entries, fc->entries[i]); } @@ -485,15 +487,18 @@ static void scan(MwWidget handle, const char* path, int record) { if(fc->entries[i]->type == MwDIRECTORY_FILE && !fc->dir_only) { char date[128]; char size[128]; + char* n = MwACPToUTF8(fc->entries[i]->name); MwStringTime(date, fc->entries[i]->mtime); MwStringSize(size, fc->entries[i]->size); - index = MwListBoxSet(fc->files, -1, 0, fc->entries[i]->name); + index = MwListBoxSet(fc->files, -1, 0, n); MwListBoxSet(fc->files, index, -1, date); MwListBoxSet(fc->files, index, -1, size); MwListBoxSetIcon(fc->files, index, fc->file); + free(n); + arrput(fc->sorted_entries, fc->entries[i]); } } @@ -542,6 +547,8 @@ MwWidget MwFileChooserEx(MwWidget handle, const char* title, int dir) { window->opaque = fc; + window->destroy_inject = destroy; + layout(window); MwAddUserHandler(window, MwNresizeHandler, resize, NULL); MwAddUserHandler(window, MwNcloseHandler, cancel_window, NULL); diff --git a/src/widget/listbox.c b/src/widget/listbox.c index c500d3a23..209bb8eb6 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -187,45 +187,58 @@ static void frame_draw(MwWidget handle) { r2.height = h; MwLLDrawPixmap(handle->lowlevel, &r2, lb->list[i].pixmap); } - p.y += (MwTextHeight(handle, Font, "M") + Padding) / 2; p.x = MwDefaultBorderWidth(handle) + MwGetInteger(handle->parent, MwNleftPadding); for(j = 0; j < arrlen(lb->list[i].name); j++) { char* t = lb->list[i].name[j]; char* str; int l = (j == 0 ? MwGetInteger(handle->parent, MwNleftPadding) : 0); + MwPoint p2 = p; + + p2.y += (MwTextHeight(handle, Font, "M") + Padding) / 2; if(t == NULL) t = ""; str = MwStringDuplicate(t); if(MwUTF8Length(str) > (get_col_width(lb, j) - l) / MwTextWidth(handle, Font, "M")) { - int ind = (get_col_width(lb, j) - l) / MwTextWidth(handle, Font, "M"); - str[ind] = 0; - if(ind > 3) memset(str + ind - 3, '.', 3); + int ind = (get_col_width(lb, j) - l) / MwTextWidth(handle, Font, "M"); + int seek = 0; + int l = 0; + + while(str[seek] != 0){ + int cp; + seek += MwUTF8ToUTF32(str + seek, &cp); + + l++; + if(l == ind) break; + } + + memset(str + seek, '.', 3); + str[seek + 3] = 0; } if(j == (arrlen(lb->list[i].name) - 1)) p.x -= MwDefaultBorderWidth(handle); if(arrlen(lb->alignment) <= j || lb->alignment[j] == MwALIGNMENT_BEGINNING) { p.x += 4; - MwDrawText(handle, Font, &p, str, MwALIGNMENT_BEGINNING, selected ? base2 : text2); + MwDrawText(handle, Font, &p2, str, MwALIGNMENT_BEGINNING, selected ? base2 : text2); p.x -= 4; p.x += get_col_width(lb, j); } else if(lb->alignment[j] == MwALIGNMENT_CENTER) { p.x += (get_col_width(lb, j) - l) / 2; - MwDrawText(handle, Font, &p, str, MwALIGNMENT_CENTER, selected ? base2 : text2); + MwDrawText(handle, Font, &p2, str, MwALIGNMENT_CENTER, selected ? base2 : text2); p.x += (get_col_width(lb, j) - l) / 2; p.x += l; } else if(lb->alignment[j] == MwALIGNMENT_END) { p.x += get_col_width(lb, j); p.x -= 4; - MwDrawText(handle, Font, &p, str, MwALIGNMENT_END, selected ? base2 : text2); + MwDrawText(handle, Font, &p2, str, MwALIGNMENT_END, selected ? base2 : text2); p.x += 4; } free(str); if(j == 0) p.x -= MwGetInteger(handle->parent, MwNleftPadding); } - p.y += (MwTextHeight(handle, Font, "M") + Padding) / 2; + p.y += MwTextHeight(handle, Font, "M") + Padding; handle->bgcolor = NULL; } @@ -244,7 +257,7 @@ static void resize(MwWidget handle) { int ih, y; int m = 0; - y = MwGetInteger(handle, MwNhasHeading) ? (MwTextHeight(handle, NULL, "M") + MwDefaultBorderWidth(handle) * 2) : 0; + y = MwGetInteger(handle, MwNhasHeading) ? (MwTextHeight(handle, Font, "M") + MwDefaultBorderWidth(handle) * 2) : 0; if(lb->vscroll == NULL) { lb->vscroll = MwVaCreateWidget(MwScrollBarClass, "vscroll", handle, w - 16, 0, 16, h, NULL); @@ -347,7 +360,7 @@ static void draw(MwWidget handle) { r.x = x; r.y = 0; r.width = get_col_width(lb, i); - r.height = MwDefaultBorderWidth(handle) * 2 + MwTextHeight(handle, NULL, "M"); + r.height = MwDefaultBorderWidth(handle) * 2 + MwTextHeight(handle, Font, "M"); MwDrawFrame(handle, &r, base, 0); x += MwDefaultBorderWidth(handle); @@ -398,6 +411,7 @@ static int mwListBoxSetImpl(MwWidget handle, int row, int col, const char* text) MwListBox lb = handle->internal; MwListBoxEntry entry; char* t = text == NULL ? NULL : MwStringDuplicate(text); + int new = 0; if(row == -1) row = arrlen(lb->list); entry.name = NULL; @@ -413,9 +427,10 @@ static int mwListBoxSetImpl(MwWidget handle, int row, int col, const char* text) lb->list[row] = entry; } else { arrins(lb->list, row, entry); + new = 1; } - if(row >= arrlen(lb->list)) resize(handle); + if(new) resize(handle); redrawIfNeeded(handle, row); return row; @@ -424,6 +439,7 @@ static int mwListBoxSetImpl(MwWidget handle, int row, int col, const char* text) static void mwListBoxSetIconImpl(MwWidget handle, int index, MwLLPixmap icon) { MwListBox lb = handle->internal; MwListBoxEntry entry; + int new = 0; if(index == -1) index = arrlen(lb->list); entry.name = NULL; @@ -438,9 +454,10 @@ static void mwListBoxSetIconImpl(MwWidget handle, int index, MwLLPixmap icon) { lb->list[index] = entry; } else { arrins(lb->list, index, entry); + new = 1; } - if(index >= arrlen(lb->list)) resize(handle); + if(new) resize(handle); redrawIfNeeded(handle, index); } From 6ae6386852a8e30bfcfd8612263202772d3cc343 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 23 Apr 2026 17:05:24 +0900 Subject: [PATCH 501/836] test --- README.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/README.txt b/README.txt index dc9d6bf2f..93ae75d4b 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,3 @@ - Greetings - Welcome to the Milsko GUI Toolkit (Version pre-1.0) This document contains a brief summary of the contents of this source From 06645250cab676fd07996f4091b17f9718eabaca Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 23 Apr 2026 17:05:50 +0900 Subject: [PATCH 502/836] fix --- README.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/README.txt b/README.txt index 93ae75d4b..dc9d6bf2f 100644 --- a/README.txt +++ b/README.txt @@ -1,3 +1,4 @@ + Greetings - Welcome to the Milsko GUI Toolkit (Version pre-1.0) This document contains a brief summary of the contents of this source From dbb436f5a210023e638cf48cce6860138ff612bc Mon Sep 17 00:00:00 2001 From: Nishi Date: Thu, 23 Apr 2026 22:45:34 +0900 Subject: [PATCH 503/836] better yet broken --- examples/basic/viewport.c | 9 +++++---- src/backend/wayland.c | 23 +++++++++++------------ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/examples/basic/viewport.c b/examples/basic/viewport.c index c114935af..724dba59f 100644 --- a/examples/basic/viewport.c +++ b/examples/basic/viewport.c @@ -23,7 +23,7 @@ int main() { w = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 640, 480, MwNtitle, "test", NULL); - vp = MwCreateWidget(MwViewportClass, "vp", w, 5 + 100, 5 + 100, 640 - 10 - 100, 480 - 10 - 100); + vp = MwCreateWidget(MwViewportClass, "vp", w, 5 + 50, 5 + 50, 640 - 10 - 100, 480 - 10 - 100); px = MwLoadImage(vp, "examples/picture.png"); @@ -31,10 +31,11 @@ int main() { if(px == NULL) px = MwLoadImage(vp, "picture.png"); - MwVaCreateWidget(MwImageClass, "image", MwViewportGetViewport(vp), 0, 0, 1024, 1024, - MwNpixmap, px, - NULL); +// MwVaCreateWidget(MwImageClass, "image", MwViewportGetViewport(vp), 0, 0, 1024, 1024, +// MwNpixmap, px, +// NULL); MwViewportSetSize(vp, 1024, 1024); + MwCreateWidget(MwButtonClass, "btn", MwViewportGetViewport(vp), 256, 256, 128, 128); MwAddUserHandler(w, MwNresizeHandler, resize, NULL); diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 159b25ea6..f186cb788 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1720,7 +1720,7 @@ static void destroy_popup(MwLL r) { static void clip(MwLL handle) { int i; - int w, h, x, y, cx, cy; + int x, y, cx, cy, mx, my; MwLL toplevel = handle->wayland.parent; MwLL* ws = NULL; @@ -1735,34 +1735,33 @@ static void clip(MwLL handle) { if(toplevel) { #define MIN(a, b) ((a) < (b) ? (a) : (b)) #define MAX(a, b) ((a) > (b) ? (a) : (b)) - w = toplevel->wayland.ww; - h = toplevel->wayland.wh; x = 0; y = 0; cx = 0; cy = 0; + mx = toplevel->wayland.ww; + my = toplevel->wayland.wh; // ws is traversed result // ws[ws.length - 1] is ignored bc it's toplevel for(i = arrlen(ws) - 2; i >= 0; i--) { x += ws[i]->wayland.x; y += ws[i]->wayland.y; - cx += MAX(-ws[i]->wayland.x, 0); - cy += MAX(-ws[i]->wayland.y, 0); - w = MIN(ws[i]->wayland.ww - MAX(-x, 0), w); - h = MIN(ws[i]->wayland.wh - MAX(-y, 0), h); + + mx = MIN(mx, x + ws[i]->wayland.ww); + my = MIN(my, y + ws[i]->wayland.wh); } arrfree(ws); - handle->wayland.clipping_rect.x = cx; - handle->wayland.clipping_rect.y = cy; - handle->wayland.clipping_rect.width = w; - handle->wayland.clipping_rect.height = h; + handle->wayland.clipping_rect.x = cx - x; + handle->wayland.clipping_rect.y = cy - y; + handle->wayland.clipping_rect.width = mx - cx; + handle->wayland.clipping_rect.height = my - cy; region_setup(handle); cairo_reset_clip(handle->wayland.front_cairo); if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL) { - cairo_rectangle(handle->wayland.front_cairo, cx, cy, w, h); + cairo_rectangle(handle->wayland.front_cairo, cx - x, cy - y, mx - cx, my - cy); cairo_clip(handle->wayland.front_cairo); } } From ca7e50d91153cb79818a58d20dcc13bc4eadaf7e Mon Sep 17 00:00:00 2001 From: Nishi Date: Thu, 23 Apr 2026 22:47:52 +0900 Subject: [PATCH 504/836] fix clipping --- examples/basic/viewport.c | 2 +- src/backend/wayland.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/basic/viewport.c b/examples/basic/viewport.c index 724dba59f..95718915e 100644 --- a/examples/basic/viewport.c +++ b/examples/basic/viewport.c @@ -35,7 +35,7 @@ int main() { // MwNpixmap, px, // NULL); MwViewportSetSize(vp, 1024, 1024); - MwCreateWidget(MwButtonClass, "btn", MwViewportGetViewport(vp), 256, 256, 128, 128); + MwCreateWidget(MwButtonClass, "btn", MwViewportGetViewport(vp), -64, 256, 128, 128); MwAddUserHandler(w, MwNresizeHandler, resize, NULL); diff --git a/src/backend/wayland.c b/src/backend/wayland.c index f186cb788..f5dfb1910 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1747,6 +1747,8 @@ static void clip(MwLL handle) { x += ws[i]->wayland.x; y += ws[i]->wayland.y; + cx = MAX(cx, ws[i]->wayland.x); + cy = MAX(cy, ws[i]->wayland.x); mx = MIN(mx, x + ws[i]->wayland.ww); my = MIN(my, y + ws[i]->wayland.wh); } From a249b3264d651a3feac6488beb4b9ad689a6c7d4 Mon Sep 17 00:00:00 2001 From: Nishi Date: Thu, 23 Apr 2026 23:03:25 +0900 Subject: [PATCH 505/836] seems to work --- examples/basic/viewport.c | 2 +- src/backend/wayland.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/examples/basic/viewport.c b/examples/basic/viewport.c index 95718915e..724dba59f 100644 --- a/examples/basic/viewport.c +++ b/examples/basic/viewport.c @@ -35,7 +35,7 @@ int main() { // MwNpixmap, px, // NULL); MwViewportSetSize(vp, 1024, 1024); - MwCreateWidget(MwButtonClass, "btn", MwViewportGetViewport(vp), -64, 256, 128, 128); + MwCreateWidget(MwButtonClass, "btn", MwViewportGetViewport(vp), 256, 256, 128, 128); MwAddUserHandler(w, MwNresizeHandler, resize, NULL); diff --git a/src/backend/wayland.c b/src/backend/wayland.c index f5dfb1910..f5f06bba5 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1747,8 +1747,10 @@ static void clip(MwLL handle) { x += ws[i]->wayland.x; y += ws[i]->wayland.y; - cx = MAX(cx, ws[i]->wayland.x); - cy = MAX(cy, ws[i]->wayland.x); + if(i > 0){ + cx = MAX(cx, ws[i]->wayland.x); + cy = MAX(cy, ws[i]->wayland.y); + } mx = MIN(mx, x + ws[i]->wayland.ww); my = MIN(my, y + ws[i]->wayland.wh); } From 85c54097903b2f961f4880628e766be17cd001de Mon Sep 17 00:00:00 2001 From: Nishi Date: Thu, 23 Apr 2026 23:27:44 +0900 Subject: [PATCH 506/836] man --- examples/basic/viewport.c | 4 +++- src/backend/wayland.c | 7 +++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/examples/basic/viewport.c b/examples/basic/viewport.c index 724dba59f..30be60c60 100644 --- a/examples/basic/viewport.c +++ b/examples/basic/viewport.c @@ -35,7 +35,9 @@ int main() { // MwNpixmap, px, // NULL); MwViewportSetSize(vp, 1024, 1024); - MwCreateWidget(MwButtonClass, "btn", MwViewportGetViewport(vp), 256, 256, 128, 128); + MwWidget f = MwCreateWidget(MwFrameClass, "fr", MwViewportGetViewport(vp), 256, 256, 128, 128); + f = MwCreateWidget(MwFrameClass, "fr", f, 0, 0, 128, 128); + MwCreateWidget(MwButtonClass, "btn", f, 64, 64, 128, 128); MwAddUserHandler(w, MwNresizeHandler, resize, NULL); diff --git a/src/backend/wayland.c b/src/backend/wayland.c index f5f06bba5..f67776203 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1747,10 +1747,9 @@ static void clip(MwLL handle) { x += ws[i]->wayland.x; y += ws[i]->wayland.y; - if(i > 0){ - cx = MAX(cx, ws[i]->wayland.x); - cy = MAX(cy, ws[i]->wayland.y); - } + cx = MAX(cx, ws[i]->wayland.x); + cy = MAX(cy, ws[i]->wayland.y); + mx = MIN(mx, x + ws[i]->wayland.ww); my = MIN(my, y + ws[i]->wayland.wh); } From da20432c310260a15ae9aee05fe719863a8ca26b Mon Sep 17 00:00:00 2001 From: Nishi Date: Fri, 24 Apr 2026 01:43:38 +0900 Subject: [PATCH 507/836] ugh --- resource/font/deccurs.bdf | 1256 ------------------------------------- src/backend/gdi.c | 2 + src/backend/wayland.c | 16 +- src/backend/x11.c | 2 + src/cursor/arrow.c | 101 ++- src/cursor/cross.c | 53 +- src/cursor/default.c | 101 ++- src/cursor/text.c | 101 ++- 8 files changed, 149 insertions(+), 1483 deletions(-) delete mode 100644 resource/font/deccurs.bdf diff --git a/resource/font/deccurs.bdf b/resource/font/deccurs.bdf deleted file mode 100644 index c3502d4e3..000000000 --- a/resource/font/deccurs.bdf +++ /dev/null @@ -1,1256 +0,0 @@ -STARTFONT 2.1 -FONT DECW$CURSOR -SIZE 31 78 78 -FONTBOUNDINGBOX 31 31 -15 -16 -STARTPROPERTIES 5 -FOUNDRY "Digital Equipment Corporation" -NOTICE "These images are owned by Digital Equipment Corporation" -FONT_ASCENT 16 -FONT_DESCENT 16 -COPYRIGHT "Copyright (c) Digital Equipment Corporation,1988. All Rights Reserved." -COMMENT -COMMENT Permission to use, copy, modify, and distribute this software and -COMMENT its documentation for any purpose and without fee is hereby granted, -COMMENT provided that the above copyright notices appear in all copies and -COMMENT that both those copyright notices and this permission notice appear -COMMENT in supporting documentation, and that the name -COMMENT Digital Equipment Corporation not be used in advertising or -COMMENT publicity pertaining to distribution of the software without -COMMENT specific, written prior permission. Digital -COMMENT Equipment Corporation makes no representations about the suitability -COMMENT of this software for any purpose. It is provided "as is" without -COMMENT express or implied warranty. -COMMENT -COMMENT DIGITAL EQUIPMENT CORPORATION DISCLAIMS ALL -COMMENT WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED -COMMENT WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL -COMMENT DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY SPECIAL, -COMMENT INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER -COMMENT RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF -COMMENT CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -COMMENT CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -COMMENT -ENDPROPERTIES -CHARS 54 -COMMENT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -STARTCHAR decw$c_select_cursor -ENCODING -1 0 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 0 -15 -BITMAP -0000 -6000 -7800 -3E00 -3F80 -1FE0 -1FF8 -0F80 -0FC0 -06E0 -0670 -0238 -021c -000e -0004 -0000 -ENDCHAR -STARTCHAR decw$c_select_cursor_mask -ENCODING -1 1 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 0 -15 -BITMAP -E000 -f800 -fe00 -7f80 -7fe0 -3ff8 -3ffc -1ff8 -1fe0 -0ff0 -0ff8 -077c -073e -021f -000e -0004 -ENDCHAR -STARTCHAR decw$c_help_cursor -ENCODING -1 2 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -2 -14 -BITMAP -0000 -6000 -70e0 -3bf0 -1ff8 -0ff8 -07fc -0bfc -07fc -03fb -00f6 -002f -001e -000c -0000 -0000 -ENDCHAR -STARTCHAR decw$c_help_cursor_mask -ENCODING -1 3 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -2 -14 -BITMAP -e000 -f0e0 -fbf0 -7ff8 -3ffc -1ffc -1ffe -1ffe -0fff -07ff -03ff -00ff -003e -001c -0000 -0000 -ENDCHAR -STARTCHAR decw$c_wait_cursor -ENCODING -1 4 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -2 -14 -BITMAP -2000 -5548 -a814 -500a -23c4 -4760 -0f72 -4f70 -0c72 -4ff0 -07e2 -23c4 -100a -0815 -02aa -0004 -ENDCHAR -STARTCHAR decw$c_wait_cursor_mask -ENCODING -1 5 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -2 -14 -BITMAP -3000 -7d48 -fffc -fffe -7ffc -7ffc -3ffe -7ffc -3ffe -7ffc -3ffe -3ffe -1fff -0fff -02be -000c -ENDCHAR -STARTCHAR decw$c_inactive_cursor -ENCODING -1 6 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -8 -8 -BITMAP -07c0 -1830 -2008 -4004 -4004 -8002 -9ff2 -9ff2 -9ff2 -8002 -4004 -4004 -2008 -1830 -07c0 -0000 -ENDCHAR -STARTCHAR decw$c_inactive_cursor_mask -ENCODING -1 7 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -8 -8 -BITMAP -07c0 -1ff0 -3ff8 -7ffc -7ffc -fffe -fffe -fffe -fffe -fffe -7ffc -7ffc -3ff8 -1ff0 -07c0 -0000 -ENDCHAR -STARTCHAR decw$c_resize_cursor -ENCODING -1 8 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -6 -9 -BITMAP -0000 -78f0 -4010 -5dd0 -5050 -1040 -0000 -1040 -5050 -5dd0 -4010 -78f0 -0000 -0000 -0000 -0000 -ENDCHAR -STARTCHAR decw$c_resize_cursor_mask -ENCODING -1 9 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -6 -9 -BITMAP -f078 -f8f8 -f8f8 -fdf8 -7ff0 -18c0 -0880 -18c0 -7ff0 -fdf8 -f8f8 -f8f8 -f078 -0000 -0000 -0000 -ENDCHAR -STARTCHAR decw$c_vpane_cursor -ENCODING -1 10 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -6 -8 -BITMAP -0200 -0500 -0880 -1240 -2720 -4f90 -8008 -7ff0 -8008 -4f90 -2720 -1240 -0880 -0500 -0200 -0000 -ENDCHAR -STARTCHAR decw$c_vpane_cursor_mask -ENCODING -1 11 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -6 -8 -BITMAP -0200 -0700 -0f80 -1fc0 -3fe0 -7ff0 -fff8 -7ff0 -fff8 -7ff0 -3fe0 -1fc0 -0f80 -0700 -0200 -0000 -ENDCHAR -STARTCHAR decw$c_hpane_cursor -ENCODING -1 12 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -7 -9 -BITMAP -0280 -0540 -0920 -1110 -2548 -4d64 -9d72 -4d64 -2548 -1110 -0920 -0540 -0280 -0000 -0000 -0000 -ENDCHAR -STARTCHAR decw$c_hpane_cursor_mask -ENCODING -1 13 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -7 -9 -BITMAP -0280 -07c0 -0fe0 -1ff0 -3ff8 -7ffc -fffe -7ffc -3ff8 -1ff0 -0fe0 -07c0 -0280 -0000 -0000 -0000 -ENDCHAR -STARTCHAR decw$c_text_insertion_cursor -ENCODING -1 14 -SWIDTH 0 0 -DWIDTH 7 0 -BBX 7 16 -3 -7 -BITMAP -0000 -8800 -5000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -2000 -5000 -8800 -0000 -ENDCHAR -STARTCHAR decw$c_text_insertion_cursor_mask -ENCODING -1 15 -SWIDTH 0 0 -DWIDTH 7 0 -BBX 7 16 -3 -7 -BITMAP -0000 -cc00 -7800 -3000 -3000 -3000 -3000 -3000 -3000 -3000 -3000 -3000 -3000 -7800 -cc00 -0000 -ENDCHAR -STARTCHAR decw$c_bitmap_text_insertion_cursor -ENCODING -1 16 -SWIDTH 0 0 -DWIDTH 8 0 -BBX 8 16 -3 -5 -BITMAP -0000 -4400 -2800 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -aa00 -1000 -1000 -2800 -4400 -0000 -ENDCHAR -STARTCHAR decw$c_bitmap_text_insertion_cursor_mask -ENCODING -1 17 -SWIDTH 0 0 -DWIDTH 8 0 -BBX 8 16 -3 -5 -BITMAP -0000 -6600 -3c00 -1800 -1800 -1800 -1800 -1800 -1800 -1800 -ff00 -1800 -1800 -3c00 -6600 -0000 -ENDCHAR -STARTCHAR decw$c_crosshair_cursor -ENCODING -1 18 -SWIDTH 0 0 -DWIDTH 13 0 -BBX 13 13 -6 -6 -BITMAP -0700 -0500 -0500 -0500 -0500 -fdf8 -8008 -fdf8 -0500 -0500 -0500 -0500 -0700 -ENDCHAR -STARTCHAR decw$c_crosshair_cursor_mask -ENCODING -1 19 -SWIDTH 0 0 -DWIDTH 13 0 -BBX 13 13 -6 -6 -BITMAP -0700 -0700 -0700 -0700 -0700 -fff8 -fff8 -fff8 -0700 -0700 -0700 -0700 -0700 -ENDCHAR -STARTCHAR decw$c_draw_cursor -ENCODING -1 20 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 15 -8 -7 -BITMAP -0380 -0280 -06c0 -0820 -16d0 -2ee8 -ec6e -8002 -ec6e -2ee8 -16d0 -0820 -06c0 -0280 -0380 -ENDCHAR -STARTCHAR decw$c_draw_cursor_mask -ENCODING -1 21 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 15 -8 -7 -BITMAP -0380 -0380 -07c0 -0fe0 -1ff0 -3ff8 -fc7e -fc7e -fc7e -3ff8 -1ff0 -0fe0 -07c0 -0380 -0380 -ENDCHAR -STARTCHAR decw$c_rpencil_cursor -ENCODING -1 22 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -1 -2 -BITMAP -0000 -001C -001C -002C -00D0 -01E0 -03e0 -07c0 -0f80 -1f00 -1e00 -2c00 -3000 -4000 -0000 -0000 -ENDCHAR -STARTCHAR decw$c_rpencil_cursor_mask -ENCODING -1 23 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -1 -2 -BITMAP -001c -003e -007e -00fe -01fc -03f8 -07f0 -0fe0 -1fc0 -3f80 -3f00 -7e00 -7c00 -f000 -c000 -0000 -ENDCHAR -STARTCHAR decw$c_centercursor -ENCODING -1 24 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -5 -15 -BITMAP -0000 -0400 -0400 -0e00 -0e00 -1f00 -1f00 -3f80 -3f80 -64c0 -4440 -0400 -0400 -0400 -0400 -0000 -ENDCHAR -STARTCHAR decw$c_centercursor_mask -ENCODING -1 25 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -5 -15 -BITMAP -0400 -0e00 -0e00 -1f00 -1f00 -3f80 -3f80 -7fc0 -7fc0 -ffe0 -eee0 -ce60 -0e00 -0e00 -0e00 -0e00 -ENDCHAR -STARTCHAR decw$c_rightselect_cursor -ENCODING -1 26 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -15 -15 -BITMAP -0000 -0006 -001e -007c -01fc -07f8 -1ff8 -01f0 -03f0 -0760 -0e60 -1c40 -3840 -7000 -2000 -0000 -ENDCHAR -STARTCHAR decw$c_rightselect_cursor_mask -ENCODING -1 27 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -15 -15 -BITMAP -0007 -001f -007f -01fe -07fe -1ffc -3ffc -1ff8 -07f8 -0ff0 -1ff0 -3ee0 -7ce0 -f840 -7000 -2000 -ENDCHAR -STARTCHAR decw$c_wselect_cursor -ENCODING -1 28 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 0 -10 -BITMAP -0000 -0060 -01c0 -0780 -1f80 -7ffe -1f80 -0780 -01c0 -0060 -0000 -0000 -0000 -0000 -0000 -0000 -ENDCHAR -STARTCHAR decw$c_wselect_cursor_mask -ENCODING -1 29 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 0 -10 -BITMAP -0070 -01f0 -07e0 -1fc0 -7fff -ffff -7fff -1fc0 -07e0 -01f0 -0070 -0000 -0000 -0000 -0000 -0000 -ENDCHAR -STARTCHAR decw$c_eselect_cursor -ENCODING -1 30 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -15 -10 -BITMAP -0000 -0600 -0380 -01e0 -01f8 -7ffe -01f8 -01e0 -0380 -0600 -0000 -0000 -0000 -0000 -0000 -0000 -ENDCHAR -STARTCHAR decw$c_eselect_cursor_mask -ENCODING -1 31 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -15 -10 -BITMAP -0e00 -0f80 -07e0 -03f8 -fffe -ffff -fffe -03f8 -07e0 -0f80 -0e00 -0000 -0000 -0000 -0000 -0000 -ENDCHAR -STARTCHAR decw$c_x_cursor -ENCODING -1 32 -SWIDTH 0 0 -DWIDTH 13 0 -BBX 13 12 -6 -6 -BITMAP -e038 -9048 -4890 -2520 -1240 -0880 -0880 -1240 -2520 -4890 -9048 -e038 -ENDCHAR -STARTCHAR decw$c_x_cursor_mask -ENCODING -1 33 -SWIDTH 0 0 -DWIDTH 13 0 -BBX 13 12 -6 -6 -BITMAP -e038 -f078 -78f0 -3de0 -1fc0 -0f80 -0f80 -1fc0 -3de0 -78f0 -f078 -e038 -ENDCHAR -STARTCHAR decw$c_circle_cursor -ENCODING -1 34 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 13 -7 -7 -BITMAP -0700 -18c0 -2020 -4010 -4010 -8008 -8008 -8008 -4010 -4010 -2020 -18c0 -0700 -ENDCHAR -STARTCHAR decw$c_circle_cursor_mask -ENCODING -1 35 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 13 -7 -7 -BITMAP -0700 -1fc0 -38e0 -6030 -6030 -c018 -c018 -c018 -6030 -6030 -38e0 -1fc0 -0700 -ENDCHAR -STARTCHAR decw$c_mouse_cursor -ENCODING -1 36 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -8 -7 -BITMAP -0000 -0000 -07c0 -1450 -2448 -2448 -4444 -7ffc -7ffc -7ffc -7ffc -3ff8 -3ff8 -1ff0 -07c0 -0000 -ENDCHAR -STARTCHAR decw$c_mouse_cursor_mask -ENCODING -1 37 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -8 -7 -BITMAP -0100 -07c0 -1ff0 -3ff8 -7ffc -7ffc -fffe -fffe -fffe -fffe -fffe -7ffc -7ffc -3ff8 -1ff0 -07c0 -ENDCHAR -STARTCHAR decw$c_lpencil_cursor -ENCODING -1 38 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -1 -2 -BITMAP -0000 -3800 -3800 -3400 -0b00 -0780 -07c0 -03e0 -01f0 -00f8 -0078 -0034 -000c -0002 -0000 -0000 -ENDCHAR -STARTCHAR decw$c_lpencil_cursor_mask -ENCODING -1 39 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -1 -2 -BITMAP -3800 -7c00 -7e00 -7f00 -3f80 -1fc0 -0fe0 -07f0 -03f8 -01fc -00fc -007e -003e -000f -0003 -0000 -ENDCHAR -STARTCHAR decw$c_leftgrab_cursor -ENCODING -1 40 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 0 -15 -BITMAP -0000 -6c00 -3680 -5b40 -6da0 -36f0 -1bf8 -0ff8 -07f8 -3bf8 -0ff6 -07ee -005c -003c -0018 -0000 -ENDCHAR -STARTCHAR decw$c_leftgrab_cursor_mask -ENCODING -1 41 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 0 -15 -BITMAP -6c00 -ff80 -7fc0 -ffe0 -fff0 -7ff8 -3ffc -1ffc -3ffc -7ffe -7fff -0ffe -07fe -007c -0038 -0010 -ENDCHAR -STARTCHAR decw$c_grabhand_cursor -ENCODING -1 42 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -8 -15 -BITMAP -0000 -0100 -0540 -0540 -0540 -0550 -6550 -37d0 -17f0 -1ff0 -1ff0 -0ff0 -07e0 -07e0 -0000 -07e0 -ENDCHAR -STARTCHAR decw$c_grabhand_cursor_mask -ENCODING -1 43 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -8 -15 -BITMAP -0100 -07c0 -0fe0 -0fe0 -0ff0 -6ff8 -fff8 -7ff8 -3ff8 -3ff8 -3ff8 -1ff8 -0ff0 -0ff0 -0ff0 -0ff0 -ENDCHAR -STARTCHAR decw$c_rightgrab_cursor -ENCODING -1 44 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -15 -15 -BITMAP -0000 -0036 -016c -02da -05b6 -0f6c -1fd8 -1ff0 -1fe0 -1fdc -6ff0 -77e0 -3a00 -3c00 -1800 -0000 -ENDCHAR -STARTCHAR decw$c_rightgrab_cursor_mask -ENCODING -1 45 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -15 -15 -BITMAP -0036 -01ff -03fe -07ff -0fff -1ffe -3ffc -3ff8 -3ffc -7ffe -fffe -7ff0 -7fe0 -3e00 -1c00 -0800 -ENDCHAR -STARTCHAR decw$c_leftpointing_cursor -ENCODING -1 46 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 0 -13 -BITMAP -0000 -00e0 -7ff0 -01fb -07fb -03fb -03fa -01f3 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -ENDCHAR -STARTCHAR decw$c_leftpointing_cursor_mask -ENCODING -1 47 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 0 -13 -BITMAP -03e0 -7ff0 -ffff -7fff -0fff -0fff -07ff -07ff -03f7 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -ENDCHAR -STARTCHAR decw$c_uppointing_cursor -ENCODING -1 48 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -2 -15 -BITMAP -0000 -2000 -2000 -2000 -2000 -2800 -3e00 -3f00 -7f00 -7f00 -7f00 -3f00 -1e00 -0000 -1f00 -1d00 -ENDCHAR -STARTCHAR decw$c_uppointing_cursor_mask -ENCODING -1 49 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -2 -15 -BITMAP -2000 -7000 -7000 -7000 -7c00 -7f00 -ff80 -ff80 -ff80 -ff80 -ff80 -7f80 -3f00 -3f80 -3f80 -3f80 -ENDCHAR -STARTCHAR decw$c_rightpointing_cursor -ENCODING -1 50 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -15 -13 -BITMAP -0000 -0700 -0ffe -df80 -dfe0 -dfc0 -5fc0 -cf80 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -ENDCHAR -STARTCHAR decw$c_rightpointing_cursor_mask -ENCODING -1 51 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -15 -13 -BITMAP -07c0 -0ffe -ffff -fffe -fff0 -fff0 -ffe0 -ffe0 -efc0 -0000 -0000 -0000 -0000 -0000 -0000 -0000 -ENDCHAR -STARTCHAR decw$c_check_cursor -ENCODING -1 52 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -5 -6 -BITMAP -000e -0012 -0024 -0048 -e090 -9120 -4a40 -2480 -1100 -0a00 -0400 -0000 -0000 -0000 -0000 -0000 -ENDCHAR -STARTCHAR decw$c_check_cursor_mask -ENCODING -1 53 -SWIDTH 0 0 -DWIDTH 16 0 -BBX 16 16 -5 -6 -BITMAP -000e -001e -003c -0078 -e0f0 -f1e0 -7bc0 -3f80 -1f00 -0e00 -0400 -0000 -0000 -0000 -0000 -0000 -ENDCHAR -ENDFONT diff --git a/src/backend/gdi.c b/src/backend/gdi.c index b7bebe0c2..bbeb8dc9e 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -605,6 +605,8 @@ HCURSOR MwLLGDICreateCursor(MwCursor* image, MwCursor* mask) { ys = mask->height + mask->y; ys = image->height + image->y - ys; + if(ys < 0) ys = -ys; + memset(dmask, 0xff, (MwCursorDataHeight / 8) * MwCursorDataHeight); memset(dimage, 0, (MwCursorDataHeight / 8) * MwCursorDataHeight); diff --git a/src/backend/wayland.c b/src/backend/wayland.c index f67776203..b53011cca 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1754,8 +1754,16 @@ static void clip(MwLL handle) { my = MIN(my, y + ws[i]->wayland.wh); } + cx = cy = 50; + + if(mx < cx) mx = cx; + if(my < cy) my = cy; + arrfree(ws); + if(mx < cx) mx = cx; + if(my < cy) my = cy; + handle->wayland.clipping_rect.x = cx - x; handle->wayland.clipping_rect.y = cy - y; handle->wayland.clipping_rect.width = mx - cx; @@ -2432,17 +2440,19 @@ static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { buffer_destroy(&handle->wayland.cursor); wl_surface_destroy(handle->wayland.cursor.surface); } - buffer_setup(&handle->wayland.cursor, image->width, image->height); + buffer_setup(&handle->wayland.cursor, mask->width, mask->height); memset(handle->wayland.cursor.buf_back, 0, handle->wayland.cursor.buf_size); xs = -mask->x + image->x; ys = mask->height + mask->y; ys = image->height + image->y - ys; + if(ys < 0) ys = -ys; + for(y = 0; y < mask->height; y++) { unsigned int d = mask->data[y]; for(x = mask->width - 1; x >= 0; x--) { - int idx = ((y * image->width) + x) * 4; + int idx = ((y * mask->width) + x) * 4; if(d & 1) { handle->wayland.cursor.buf_back[idx + 3] = 255; @@ -2454,7 +2464,7 @@ static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { unsigned int d = image->data[y]; for(x = image->width - 1; x >= 0; x--) { int px = 0; - int idx = (((y + ys) * image->width) + (x + xs)) * 4; + int idx = (((y + ys) * mask->width) + (x + xs)) * 4; if(d & 1) { px = 255; diff --git a/src/backend/x11.c b/src/backend/x11.c index 8d93e6a47..67489cda7 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -1124,6 +1124,8 @@ Cursor MwLLX11CreateCursor(Display* display, MwCursor* image, MwCursor* mask) { ys = mask->height + mask->y; ys = image->height + image->y - ys; + if(ys < 0) ys = -ys; + memset(cimage->data, 0, cimage->bytes_per_line * cimage->height); memset(cmask->data, 0, cmask->bytes_per_line * cmask->height); for(y = 0; y < mask->height; y++) { diff --git a/src/cursor/arrow.c b/src/cursor/arrow.c index ca53c5e45..fab8af109 100644 --- a/src/cursor/arrow.c +++ b/src/cursor/arrow.c @@ -1,65 +1,50 @@ #include /** + * Created by bitmaptobdf + * * Copyright notice: - * Copyright (c) Digital Equipment Corporation,1988. All Rights Reserved. - */ -/** - * Permission to use, copy, modify, and distribute this software and - * its documentation for any purpose and without fee is hereby granted, - * provided that the above copyright notices appear in all copies and - * that both those copyright notices and this permission notice appear - * in supporting documentation, and that the name - * Digital Equipment Corporation not be used in advertising or - * publicity pertaining to distribution of the software without - * specific, written prior permission. Digital - * Equipment Corporation makes no representations about the suitability - * of this software for any purpose. It is provided "as is" without - * express or implied warranty. - * DIGITAL EQUIPMENT CORPORATION DISCLAIMS ALL - * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL - * DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY SPECIAL, - * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER - * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF - * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * These ""glyphs"" are unencumbered */ MwCursor MwCursorArrow = { - 16, 16, -15, -15, { - 0, /* ................ */ - 6, /* .............##. */ - 30, /* ...........####. */ - 124, /* .........#####.. */ - 508, /* .......#######.. */ - 2040, /* .....########... */ - 8184, /* ...##########... */ - 496, /* .......#####.... */ - 1008, /* ......######.... */ - 1888, /* .....###.##..... */ - 3680, /* ....###..##..... */ - 7232, /* ...###...#...... */ - 14400, /* ..###....#...... */ - 28672, /* .###............ */ - 8192, /* ..#............. */ - 0 /* ................ */ - }}; + 14, 14, -13, -14, + { + 3, /* ............## */ + 15, /* ..........#### */ + 62, /* ........#####. */ + 254, /* ......#######. */ + 1020, /* ....########.. */ + 4092, /* ..##########.. */ + 248, /* ......#####... */ + 504, /* .....######... */ + 944, /* ....###.##.... */ + 1840, /* ...###..##.... */ + 3616, /* ..###...#..... */ + 7200, /* .###....#..... */ + 14336, /* ###........... */ + 4096, /* .#............ */ + 0, + 0 + } +}; MwCursor MwCursorArrowMask = { - 16, 16, -15, -15, { - 7, /* .............### */ - 31, /* ...........##### */ - 127, /* .........####### */ - 510, /* .......########. */ - 2046, /* .....##########. */ - 8188, /* ...###########.. */ - 16380, /* ..############.. */ - 8184, /* ...##########... */ - 2040, /* .....########... */ - 4080, /* ....########.... */ - 8176, /* ...#########.... */ - 16096, /* ..#####.###..... */ - 31968, /* .#####..###..... */ - 63552, /* #####....#...... */ - 28672, /* .###............ */ - 8192 /* ..#............. */ - }}; + 16, 16, -14, -15, + { + 7, /* .............### */ + 31, /* ...........##### */ + 127, /* .........####### */ + 510, /* .......########. */ + 2046, /* .....##########. */ + 8188, /* ...###########.. */ + 16380, /* ..############.. */ + 16376, /* ..###########... */ + 2040, /* .....########... */ + 4080, /* ....########.... */ + 8176, /* ...#########.... */ + 16096, /* ..#####.###..... */ + 31968, /* .#####..###..... */ + 63552, /* #####....#...... */ + 28672, /* .###............ */ + 8192 /* ..#............. */ + } +}; diff --git a/src/cursor/cross.c b/src/cursor/cross.c index 946551039..8c53739b3 100644 --- a/src/cursor/cross.c +++ b/src/cursor/cross.c @@ -1,55 +1,8 @@ #include /** + * Created by bitmaptobdf + * * Copyright notice: - * Copyright (c) Digital Equipment Corporation,1988. All Rights Reserved. + * These ""glyphs"" are unencumbered */ -/** - * Permission to use, copy, modify, and distribute this software and - * its documentation for any purpose and without fee is hereby granted, - * provided that the above copyright notices appear in all copies and - * that both those copyright notices and this permission notice appear - * in supporting documentation, and that the name - * Digital Equipment Corporation not be used in advertising or - * publicity pertaining to distribution of the software without - * specific, written prior permission. Digital - * Equipment Corporation makes no representations about the suitability - * of this software for any purpose. It is provided "as is" without - * express or implied warranty. - * DIGITAL EQUIPMENT CORPORATION DISCLAIMS ALL - * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL - * DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY SPECIAL, - * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER - * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF - * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ -MwCursor MwCursorCross = { - 13, 12, -6, -6, {7175, /* ###.......### */ - 4617, /* #..#.....#..# */ - 2322, /* .#..#...#..#. */ - 1188, /* ..#..#.#..#.. */ - 584, /* ...#..#..#... */ - 272, /* ....#...#.... */ - 272, /* ....#...#.... */ - 584, /* ...#..#..#... */ - 1188, /* ..#..#.#..#.. */ - 2322, /* .#..#...#..#. */ - 4617, /* #..#.....#..# */ - 7175, /* ###.......### */ - 0, 0, 0, 0}}; -MwCursor MwCursorCrossMask = { - 13, 12, -6, -6, {7175, /* ###.......### */ - 7695, /* ####.....#### */ - 3870, /* .####...####. */ - 1980, /* ..####.####.. */ - 1016, /* ...#######... */ - 496, /* ....#####.... */ - 496, /* ....#####.... */ - 1016, /* ...#######... */ - 1980, /* ..####.####.. */ - 3870, /* .####...####. */ - 7695, /* ####.....#### */ - 7175, /* ###.......### */ - 0, 0, 0, 0}}; diff --git a/src/cursor/default.c b/src/cursor/default.c index 1116d9074..9f1f146cf 100644 --- a/src/cursor/default.c +++ b/src/cursor/default.c @@ -1,65 +1,50 @@ #include /** + * Created by bitmaptobdf + * * Copyright notice: - * Copyright (c) Digital Equipment Corporation,1988. All Rights Reserved. - */ -/** - * Permission to use, copy, modify, and distribute this software and - * its documentation for any purpose and without fee is hereby granted, - * provided that the above copyright notices appear in all copies and - * that both those copyright notices and this permission notice appear - * in supporting documentation, and that the name - * Digital Equipment Corporation not be used in advertising or - * publicity pertaining to distribution of the software without - * specific, written prior permission. Digital - * Equipment Corporation makes no representations about the suitability - * of this software for any purpose. It is provided "as is" without - * express or implied warranty. - * DIGITAL EQUIPMENT CORPORATION DISCLAIMS ALL - * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL - * DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY SPECIAL, - * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER - * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF - * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * These ""glyphs"" are unencumbered */ MwCursor MwCursorDefault = { - 16, 16, 0, -15, { - 0, /* ................ */ - 24576, /* .##............. */ - 30720, /* .####........... */ - 15872, /* ..#####......... */ - 16256, /* ..#######....... */ - 8160, /* ...########..... */ - 8184, /* ...##########... */ - 3968, /* ....#####....... */ - 4032, /* ....######...... */ - 1760, /* .....##.###..... */ - 1648, /* .....##..###.... */ - 568, /* ......#...###... */ - 540, /* ......#....###.. */ - 14, /* ............###. */ - 4, /* .............#.. */ - 0 /* ................ */ - }}; + 8, 14, 0, -14, + { + 128, /* #....... */ + 192, /* ##...... */ + 224, /* ###..... */ + 240, /* ####.... */ + 248, /* #####... */ + 252, /* ######.. */ + 254, /* #######. */ + 255, /* ######## */ + 248, /* #####... */ + 216, /* ##.##... */ + 140, /* #...##.. */ + 12, /* ....##.. */ + 6, /* .....##. */ + 6, /* .....##. */ + 0, + 0 + } +}; MwCursor MwCursorDefaultMask = { - 16, 16, 0, -15, { - 57344, /* ###............. */ - 63488, /* #####........... */ - 65024, /* #######......... */ - 32640, /* .########....... */ - 32736, /* .##########..... */ - 16376, /* ..###########... */ - 16380, /* ..############.. */ - 8184, /* ...##########... */ - 8160, /* ...########..... */ - 4080, /* ....########.... */ - 4088, /* ....#########... */ - 1916, /* .....###.#####.. */ - 1854, /* .....###..#####. */ - 543, /* ......#....##### */ - 14, /* ............###. */ - 4 /* .............#.. */ - }}; + 10, 16, -1, -15, + { + 768, /* ##........ */ + 896, /* ###....... */ + 960, /* ####...... */ + 992, /* #####..... */ + 1008, /* ######.... */ + 1016, /* #######... */ + 1020, /* ########.. */ + 1022, /* #########. */ + 1023, /* ########## */ + 1023, /* ########## */ + 1016, /* #######... */ + 956, /* ###.####.. */ + 828, /* ##..####.. */ + 30, /* .....####. */ + 30, /* .....####. */ + 12 /* ......##.. */ + } +}; diff --git a/src/cursor/text.c b/src/cursor/text.c index 4f0ea94de..fa2c372b1 100644 --- a/src/cursor/text.c +++ b/src/cursor/text.c @@ -1,65 +1,50 @@ #include /** + * Created by bitmaptobdf + * * Copyright notice: - * Copyright (c) Digital Equipment Corporation,1988. All Rights Reserved. - */ -/** - * Permission to use, copy, modify, and distribute this software and - * its documentation for any purpose and without fee is hereby granted, - * provided that the above copyright notices appear in all copies and - * that both those copyright notices and this permission notice appear - * in supporting documentation, and that the name - * Digital Equipment Corporation not be used in advertising or - * publicity pertaining to distribution of the software without - * specific, written prior permission. Digital - * Equipment Corporation makes no representations about the suitability - * of this software for any purpose. It is provided "as is" without - * express or implied warranty. - * DIGITAL EQUIPMENT CORPORATION DISCLAIMS ALL - * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL - * DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY SPECIAL, - * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER - * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF - * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * These ""glyphs"" are unencumbered */ MwCursor MwCursorText = { - 7, 16, -3, -7, { - 0, /* ....... */ - 68, /* #...#.. */ - 40, /* .#.#... */ - 16, /* ..#.... */ - 16, /* ..#.... */ - 16, /* ..#.... */ - 16, /* ..#.... */ - 16, /* ..#.... */ - 16, /* ..#.... */ - 16, /* ..#.... */ - 16, /* ..#.... */ - 16, /* ..#.... */ - 16, /* ..#.... */ - 40, /* .#.#... */ - 68, /* #...#.. */ - 0 /* ....... */ - }}; + 7, 14, -3, -7, + { + 119, /* ###.### */ + 28, /* ..###.. */ + 8, /* ...#... */ + 8, /* ...#... */ + 8, /* ...#... */ + 8, /* ...#... */ + 8, /* ...#... */ + 8, /* ...#... */ + 8, /* ...#... */ + 8, /* ...#... */ + 8, /* ...#... */ + 8, /* ...#... */ + 28, /* ..###.. */ + 119, /* ###.### */ + 0, + 0 + } +}; MwCursor MwCursorTextMask = { - 7, 16, -3, -7, { - 0, /* ....... */ - 102, /* ##..##. */ - 60, /* .####.. */ - 24, /* ..##... */ - 24, /* ..##... */ - 24, /* ..##... */ - 24, /* ..##... */ - 24, /* ..##... */ - 24, /* ..##... */ - 24, /* ..##... */ - 24, /* ..##... */ - 24, /* ..##... */ - 24, /* ..##... */ - 60, /* .####.. */ - 102, /* ##..##. */ - 0 /* ....... */ - }}; + 9, 16, -4, -8, + { + 495, /* ####.#### */ + 511, /* ######### */ + 511, /* ######### */ + 124, /* ..#####.. */ + 56, /* ...###... */ + 56, /* ...###... */ + 56, /* ...###... */ + 56, /* ...###... */ + 56, /* ...###... */ + 56, /* ...###... */ + 56, /* ...###... */ + 56, /* ...###... */ + 124, /* ..#####.. */ + 511, /* ######### */ + 511, /* ######### */ + 495 /* ####.#### */ + } +}; From f8fff8f37d8d7f617a88000bd387d0256007ea40 Mon Sep 17 00:00:00 2001 From: Nishi Date: Fri, 24 Apr 2026 01:43:50 +0900 Subject: [PATCH 508/836] add cursor --- resource/font/cursor.bdf | 3289 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 3289 insertions(+) create mode 100644 resource/font/cursor.bdf diff --git a/resource/font/cursor.bdf b/resource/font/cursor.bdf new file mode 100644 index 000000000..d78af3f8b --- /dev/null +++ b/resource/font/cursor.bdf @@ -0,0 +1,3289 @@ +STARTFONT 2.1 +COMMENT Created by bitmaptobdf +FONT cursor +SIZE 31 78 78 +FONTBOUNDINGBOX 31 31 -15 -16 +STARTPROPERTIES 3 +COPYRIGHT "These ""glyphs"" are unencumbered" +FONT_ASCENT 16 +FONT_DESCENT 17 +ENDPROPERTIES +CHARS 154 +STARTCHAR X_cursor +ENCODING -1 0 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 14 14 -6 -8 +BITMAP +e01d +f03c +f87c +7cf8 +3ff0 +1fe0 +0fc0 +0fc0 +1fe0 +3ff0 +7cf8 +f87c +f03c +e01c +ENDCHAR +STARTCHAR X_cursor_mask +ENCODING -1 1 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -7 -9 +BITMAP +f00f +f81f +fc3f +fe7f +7ffe +3ffc +1ff8 +0ff0 +0ff0 +1ff8 +3ffc +7ffe +fe7f +fc3f +f81f +f00f +ENDCHAR +STARTCHAR arrow +ENCODING -1 2 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 14 14 -13 -14 +BITMAP +000d +003c +00f8 +03f8 +0ff0 +3ff0 +03e0 +07e0 +0ec0 +1cc0 +3880 +7080 +e000 +4000 +ENDCHAR +STARTCHAR arrow_mask +ENCODING -1 3 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -14 -15 +BITMAP +0007 +001f +007f +01fe +07fe +1ffc +3ffc +3ff8 +07f8 +0ff0 +1ff0 +3ee0 +7ce0 +f840 +7000 +2000 +ENDCHAR +STARTCHAR based_arrow_down +ENCODING -1 4 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 8 10 -3 -1 +BITMAP +ff +00 +ff +18 +18 +18 +18 +5a +3c +18 +ENDCHAR +STARTCHAR based_arrow_down_mask +ENCODING -1 5 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 10 12 -4 -2 +BITMAP +ffc4 +ffc0 +ffc0 +ffc0 +ffc0 +1e00 +1e00 +7f80 +7f80 +7f80 +3f00 +1e00 +ENDCHAR +STARTCHAR based_arrow_up +ENCODING -1 6 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 8 10 -3 -1 +BITMAP +18 +3c +5a +18 +18 +18 +18 +ff +00 +ff +ENDCHAR +STARTCHAR based_arrow_up_mask +ENCODING -1 7 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 10 12 -4 -2 +BITMAP +0c04 +1e00 +7f80 +7f80 +7f80 +1e00 +1e00 +ffc0 +ffc0 +ffc0 +ffc0 +ffc0 +ENDCHAR +STARTCHAR boat +ENCODING -1 8 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 8 -14 -5 +BITMAP +0100 +07c0 +8860 +ffff +0018 +0020 +0040 +ffc0 +ENDCHAR +STARTCHAR boat_mask +ENCODING -1 9 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 9 -14 -5 +BITMAP +0700 +0fc0 +9fe0 +ffff +ffff +ffff +fff8 +ffe0 +ffc0 +ENDCHAR +STARTCHAR bogosity +ENCODING -1 10 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 13 14 -6 -8 +BITMAP +e239 +2220 +2220 +2220 +fff8 +a228 +a228 +a228 +a228 +fff8 +2220 +2220 +2220 +e238 +ENDCHAR +STARTCHAR bogosity_mask +ENCODING -1 11 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 16 -7 -9 +BITMAP +fbbe +fbbe +fbbe +3bb8 +fffe +fffe +fffe +fbbe +fbbe +fffe +fffe +fffe +3bb8 +fbbe +fbbe +fbbe +ENDCHAR +STARTCHAR bottom_left_corner +ENCODING -1 12 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 14 14 0 -1 +BITMAP +c001 +c000 +c410 +c420 +c440 +c480 +c500 +c600 +c7f0 +c000 +c000 +c000 +fffc +fffc +ENDCHAR +STARTCHAR bottom_left_corner_mask +ENCODING -1 13 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -1 -2 +BITMAP +f000 +f000 +f70c +f71c +f738 +f770 +f7e0 +f7c0 +f7fc +f7fc +f7fc +f000 +ffff +ffff +ffff +ffff +ENDCHAR +STARTCHAR bottom_right_corner +ENCODING -1 14 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 14 14 -13 -1 +BITMAP +000d +000c +208c +108c +088c +048c +028c +018c +3f8c +000c +000c +000c +fffc +fffc +ENDCHAR +STARTCHAR bottom_right_corner_mask +ENCODING -1 15 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -14 -2 +BITMAP +000f +000f +30ef +38ef +1cef +0eef +07ef +03ef +3fef +3fef +3fef +000f +ffff +ffff +ffff +ffff +ENDCHAR +STARTCHAR bottom_side +ENCODING -1 16 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 13 14 -6 -1 +BITMAP +0201 +0200 +0200 +0200 +0200 +0200 +2220 +1240 +0a80 +0700 +0200 +0000 +fff8 +fff8 +ENDCHAR +STARTCHAR bottom_side_mask +ENCODING -1 17 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 16 -7 -2 +BITMAP +0380 +0380 +0380 +0380 +0380 +0380 +3398 +3bb8 +1ff0 +0fe0 +07c0 +0380 +fffe +fffe +fffe +fffe +ENDCHAR +STARTCHAR bottom_tee +ENCODING -1 18 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 14 10 -7 -1 +BITMAP +0301 +0300 +0300 +0300 +0300 +0300 +0300 +0300 +fffc +fffc +ENDCHAR +STARTCHAR bottom_tee_mask +ENCODING -1 19 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 12 -8 -2 +BITMAP +03c0 +03c0 +03c0 +03c0 +03c0 +03c0 +03c0 +03c0 +ffff +ffff +ffff +ffff +ENDCHAR +STARTCHAR box_spiral +ENCODING -1 20 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 16 -8 -8 +BITMAP +ffff +8000 +bffe +a002 +affa +a80a +abea +aa2a +aaaa +abaa +a82a +afea +a00a +bffa +8002 +fffe +ENDCHAR +STARTCHAR box_spiral_mask +ENCODING -1 21 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -8 -8 +BITMAP +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ENDCHAR +STARTCHAR center_ptr +ENCODING -1 22 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 10 14 -4 -14 +BITMAP +0c09 +0c00 +1e00 +1e00 +3f00 +3f00 +7f80 +7f80 +ccc0 +8c40 +0c00 +0c00 +0c00 +0c00 +ENDCHAR +STARTCHAR center_ptr_mask +ENCODING -1 23 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 12 16 -5 -15 +BITMAP +0f04 +0f00 +1f80 +1f80 +3fc0 +3fc0 +7fe0 +7fe0 +fff0 +fff0 +fff0 +ef70 +0f00 +0f00 +0f00 +0f00 +ENDCHAR +STARTCHAR circle +ENCODING -1 24 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 14 14 -7 -7 +BITMAP +0781 +1fe0 +3ff0 +7878 +7038 +e01c +e01c +e01c +e01c +7038 +7878 +3ff0 +1fe0 +0780 +ENDCHAR +STARTCHAR circle_mask +ENCODING -1 25 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -8 -8 +BITMAP +07e0 +1ff8 +3ffc +7ffe +7ffe +fc3f +f81f +f81f +f81f +f81f +fc3f +7ffe +7ffe +3ffc +1ff8 +07e0 +ENDCHAR +STARTCHAR clock +ENCODING -1 26 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 14 16 -6 -13 +BITMAP +3ff1 +6798 +c8cc +9324 +9e24 +8844 +c78c +7ff8 +5328 +5328 +5328 +57a8 +d32c +f03c +fffc +fffc +ENDCHAR +STARTCHAR clock_mask +ENCODING -1 27 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 16 -6 -13 +BITMAP +7ff8 +ef9c +dbee +b7b6 +bff6 +9f66 +cfce +fffc +d7ac +d7ac +d7ac +dfec +d7ae +f33e +fffe +fffe +ENDCHAR +STARTCHAR coffee_mug +ENCODING -1 28 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 16 -7 -7 +BITMAP +1ff1 +2008 +6006 +501a +4fe2 +c002 +c002 +4002 +4002 +591a +6aaa +ebaa +da9a +4002 +4002 +3ffc +ENDCHAR +STARTCHAR coffee_mug_mask +ENCODING -1 29 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -7 -7 +BITMAP +1ff0 +3ff8 +7fff +7fff +ffff +ffff +ffff +ffff +7fff +7fff +ffff +ffff +ffff +ffff +7fff +3ffc +ENDCHAR +STARTCHAR cross +ENCODING -1 30 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 15 -7 -8 +BITMAP +0280 +0280 +0280 +0280 +0280 +0280 +feff +0000 +feff +0280 +0280 +0280 +0280 +0280 +0280 +ENDCHAR +STARTCHAR cross_mask +ENCODING -1 31 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -7 -9 +BITMAP +07c0 +07c0 +07c0 +07c0 +07c0 +ffff +ffff +ffff +ffff +ffff +07c0 +07c0 +07c0 +07c0 +07c0 +07c0 +ENDCHAR +STARTCHAR cross_reverse +ENCODING -1 32 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 15 -7 -8 +BITMAP +4284 +a28a +5294 +2aa8 +16d0 +0aa0 +fd7f +0280 +fd7f +0aa0 +16d0 +2aa8 +5294 +a28a +4284 +ENDCHAR +STARTCHAR cross_reverse_mask +ENCODING -1 33 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 15 -7 -8 +BITMAP +66cc +b6db +def6 +6eec +36d8 +fabf +fc7f +0100 +fc7f +fabf +36d8 +6eec +def6 +b6db +66cc +ENDCHAR +STARTCHAR crosshair +ENCODING -1 34 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 15 -7 -8 +BITMAP +0100 +0100 +0100 +0100 +0100 +0100 +0100 +feff +0100 +0100 +0100 +0100 +0100 +0100 +0100 +ENDCHAR +STARTCHAR crosshair_mask +ENCODING -1 35 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -7 -9 +BITMAP +0380 +0380 +0380 +0380 +0380 +0380 +ffff +ffff +ffff +0380 +0380 +0380 +0380 +0380 +0380 +0380 +ENDCHAR +STARTCHAR diamond_cross +ENCODING -1 36 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 15 -7 -8 +BITMAP +0281 +06c0 +0aa0 +1290 +2288 +4284 +fefe +0000 +fefe +4284 +2288 +1290 +0aa0 +06c0 +0280 +ENDCHAR +STARTCHAR diamond_cross_mask +ENCODING -1 37 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -7 -9 +BITMAP +07c0 +0fe0 +1ff0 +3bb8 +739c +e38e +ffff +feff +ffff +e38e +739c +3bb8 +1ff0 +0fe0 +07c0 +0380 +ENDCHAR +STARTCHAR dot +ENCODING -1 38 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 10 10 -5 -5 +BITMAP +1e09 +7f80 +7f80 +ffc0 +ffc0 +ffc0 +ffc0 +7f80 +7f80 +1e00 +ENDCHAR +STARTCHAR dot_mask +ENCODING -1 39 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 12 12 -6 -6 +BITMAP +1f84 +7fe0 +7fe0 +fff0 +fff0 +fff0 +fff0 +fff0 +fff0 +7fe0 +7fe0 +1f80 +ENDCHAR +STARTCHAR dotbox +ENCODING -1 40 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 12 12 -6 -7 +BITMAP +fff9 +8010 +8010 +8010 +8010 +8610 +8610 +8010 +8010 +8010 +8010 +fff0 +ENDCHAR +STARTCHAR dotbox_mask +ENCODING -1 41 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 14 14 -7 -8 +BITMAP +fffc +fffc +fffc +e01c +e01c +e79c +e79c +e79c +e79c +e01c +e01c +fffc +fffc +fffc +ENDCHAR +STARTCHAR double_arrow +ENCODING -1 42 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 10 14 -5 -7 +BITMAP +0c09 +1e00 +3f00 +6d80 +ccc0 +0c00 +0c00 +0c00 +0c00 +ccc0 +6d80 +3f00 +1e00 +0c00 +ENDCHAR +STARTCHAR double_arrow_mask +ENCODING -1 43 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 12 16 -6 -8 +BITMAP +0f04 +1f80 +3fc0 +7fe0 +fff0 +fff0 +fff0 +0f00 +0f00 +fff0 +fff0 +fff0 +7fe0 +3fc0 +1f80 +0f00 +ENDCHAR +STARTCHAR draft_large +ENCODING -1 44 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 15 -14 -15 +BITMAP +0003 +000c +003c +00f8 +03f8 +0ff0 +3ff0 +01e0 +02e0 +04c0 +08c0 +1080 +2080 +4000 +8000 +ENDCHAR +STARTCHAR draft_large_mask +ENCODING -1 45 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 16 -14 -16 +BITMAP +0006 +001e +007e +01fc +07f8 +1ff8 +7ff0 +7ff0 +07e0 +0fe0 +1dc0 +39c0 +7180 +e180 +c000 +8000 +ENDCHAR +STARTCHAR draft_small +ENCODING -1 46 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 15 -14 -15 +BITMAP +0002 +000c +003c +00f8 +03f8 +0070 +00b0 +0120 +0220 +0400 +0800 +1000 +2000 +4000 +8000 +ENDCHAR +STARTCHAR draft_small_mask +ENCODING -1 47 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 15 -14 -15 +BITMAP +0006 +001e +007c +01fc +07f8 +07f8 +01f0 +03f0 +0760 +0e40 +1c00 +3800 +7000 +e000 +c000 +ENDCHAR +STARTCHAR draped_box +ENCODING -1 48 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 12 12 -6 -7 +BITMAP +fff8 +8910 +9990 +b0d0 +e070 +8610 +8610 +e070 +b0d0 +9990 +8910 +fff0 +ENDCHAR +STARTCHAR draped_box_mask +ENCODING -1 49 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 14 14 -7 -8 +BITMAP +fffc +fffc +cfcc +dfec +fcfc +fb7c +f7bc +f7bc +fb7c +fcfc +dfec +cfcc +fffc +fffc +ENDCHAR +STARTCHAR exchange +ENCODING -1 50 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 14 14 -6 -8 +BITMAP +8fc0 +dfe0 +f830 +9010 +9800 +fc00 +0000 +0000 +00fc +0064 +2024 +307c +1fec +0fc4 +ENDCHAR +STARTCHAR exchange_mask +ENCODING -1 51 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -7 -9 +BITMAP +c7e0 +eff0 +fff8 +fffc +fc1c +ff0c +ff00 +ff00 +00ff +00ff +307f +383f +3fff +1fff +0ff7 +07e3 +ENDCHAR +STARTCHAR fleur +ENCODING -1 52 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 14 14 -7 -7 +BITMAP +0300 +0780 +0fc0 +0300 +2310 +6318 +fffc +fffc +6318 +2310 +0300 +0fc0 +0780 +0300 +ENDCHAR +STARTCHAR fleur_mask +ENCODING -1 53 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -8 -8 +BITMAP +03c0 +03e0 +07e0 +0ff0 +17e8 +3bdc +ffff +ffff +ffff +ffff +3bdc +17e8 +0ff0 +07e0 +03c0 +03c0 +ENDCHAR +STARTCHAR gobbler +ENCODING -1 54 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 15 -14 -13 +BITMAP +0078 +0070 +8033 +9fb0 +fff0 +fe30 +fc30 +6038 +00f0 +1fe0 +0800 +0800 +0800 +0800 +1e00 +ENDCHAR +STARTCHAR gobbler_mask +ENCODING -1 55 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -14 -13 +BITMAP +00fc +00fc +c0ff +ffff +ffff +fffc +fffc +fffc +fffc +fffc +7ff8 +1ff0 +1c00 +1c00 +3f00 +3f00 +ENDCHAR +STARTCHAR gumby +ENCODING -1 56 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -2 -16 +BITMAP +3f00 +1080 +c840 +eaa0 +c820 +cba0 +f83c +383f +0827 +0827 +092f +0927 +0920 +1110 +2108 +3ef8 +ENDCHAR +STARTCHAR gumby_mask +ENCODING -1 57 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -2 -16 +BITMAP +3f00 +df80 +efc0 +ffe0 +efe0 +effc +fffe +ffff +3fef +0fef +0fff +0fef +0fe7 +1ff0 +3ff8 +3ef8 +ENDCHAR +STARTCHAR hand1 +ENCODING -1 58 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 13 16 -12 -16 +BITMAP +0018 +0078 +01e0 +03c0 +0780 +0fc0 +1fe0 +5fc0 +ffe0 +bfe0 +0fc0 +0f80 +9400 +c400 +6800 +3000 +ENDCHAR +STARTCHAR hand1_mask +ENCODING -1 59 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 13 16 -12 -16 +BITMAP +003b +00f8 +03f0 +07e0 +0fc0 +1fe0 +7ff0 +fff0 +fff0 +fff0 +ffe0 +ffc0 +ff80 +fe00 +fc00 +7800 +ENDCHAR +STARTCHAR hand2 +ENCODING -1 60 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 14 0 -14 +BITMAP +7f80 +8040 +7e20 +1010 +0e10 +1010 +0e28 +1044 +0c82 +0304 +0248 +0110 +00a0 +0040 +ENDCHAR +STARTCHAR hand2_mask +ENCODING -1 61 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 0 -15 +BITMAP +7f80 +ffc0 +ffe0 +fff0 +7ff8 +1ff8 +3ff8 +1ffc +3ffe +1fff +0ffe +07fc +03f8 +01f0 +00e0 +0040 +ENDCHAR +STARTCHAR heart +ENCODING -1 62 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 14 -6 -6 +BITMAP +3ef8 +638c +c106 +8002 +8002 +8002 +8002 +c006 +600c +3018 +1830 +0c60 +06c0 +0380 +ENDCHAR +STARTCHAR heart_mask +ENCODING -1 63 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 14 -6 -6 +BITMAP +3ef9 +7ffc +e38e +c106 +c006 +c006 +c286 +e10e +701c +3838 +1c70 +0fe0 +07c0 +0380 +ENDCHAR +STARTCHAR icon +ENCODING -1 64 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -8 -8 +BITMAP +ffff +d555 +aaab +d555 +a00b +d005 +a00b +d005 +a00b +d005 +a00b +d005 +aaab +d555 +aaab +ffff +ENDCHAR +STARTCHAR icon_mask +ENCODING -1 65 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -8 -8 +BITMAP +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ENDCHAR +STARTCHAR iron_cross +ENCODING -1 66 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 14 14 -7 -8 +BITMAP +7ff8 +3ff0 +9fe4 +cfcc +e79c +f33c +fffc +fffc +f33c +e79c +cfcc +9fe4 +3ff0 +7ff8 +ENDCHAR +STARTCHAR iron_cross_mask +ENCODING -1 67 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -8 -9 +BITMAP +3ffc +7ffe +7ffe +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +ffff +7ffe +7ffe +3ffc +ENDCHAR +STARTCHAR left_ptr +ENCODING -1 68 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 8 14 0 -14 +BITMAP +80 +c0 +e0 +f0 +f8 +fc +fe +ff +f8 +d8 +8c +0c +06 +06 +ENDCHAR +STARTCHAR left_ptr_mask +ENCODING -1 69 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 10 16 -1 -15 +BITMAP +c003 +e000 +f000 +f800 +fc00 +fe00 +ff00 +ff80 +ffc0 +ffc0 +fe00 +ef00 +cf00 +0780 +0780 +0300 +ENDCHAR +STARTCHAR left_side +ENCODING -1 70 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 14 13 0 -7 +BITMAP +c000 +c000 +c100 +c200 +c400 +c800 +dffc +c800 +c400 +c200 +c100 +c000 +c000 +ENDCHAR +STARTCHAR left_side_mask +ENCODING -1 71 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 15 -1 -8 +BITMAP +f000 +f000 +f0c0 +f1c0 +f380 +f700 +ffff +ffff +ffff +f700 +f380 +f1c0 +f0c0 +f000 +f000 +ENDCHAR +STARTCHAR left_tee +ENCODING -1 72 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 10 14 0 -7 +BITMAP +c008 +c000 +c000 +c000 +c000 +c000 +ffc0 +ffc0 +c000 +c000 +c000 +c000 +c000 +c000 +ENDCHAR +STARTCHAR left_tee_mask +ENCODING -1 73 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 12 16 -1 -8 +BITMAP +f003 +f000 +f000 +f000 +f000 +f000 +fff0 +fff0 +fff0 +fff0 +f000 +f000 +f000 +f000 +f000 +f000 +ENDCHAR +STARTCHAR leftbutton +ENCODING -1 74 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -8 -8 +BITMAP +8003 +7ffd +7ffd +4445 +4555 +4555 +4555 +4555 +4445 +7ffd +7ffd +7ffd +7ffd +7ffd +7ffd +8003 +ENDCHAR +STARTCHAR leftbutton_mask +ENCODING -1 75 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 16 -8 -8 +BITMAP +7ffd +fffe +fffe +fffe +fffe +fffe +fffe +fffe +fffe +fffe +fffe +fffe +fffe +fffe +fffe +7ffc +ENDCHAR +STARTCHAR ll_angle +ENCODING -1 76 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 10 10 0 -1 +BITMAP +c008 +c000 +c000 +c000 +c000 +c000 +c000 +c000 +ffc0 +ffc0 +ENDCHAR +STARTCHAR ll_angle_mask +ENCODING -1 77 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 12 12 -1 -2 +BITMAP +f003 +f000 +f000 +f000 +f000 +f000 +f000 +f000 +fff0 +fff0 +fff0 +fff0 +ENDCHAR +STARTCHAR lr_angle +ENCODING -1 78 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 10 10 -9 -1 +BITMAP +00c8 +00c0 +00c0 +00c0 +00c0 +00c0 +00c0 +00c0 +ffc0 +ffc0 +ENDCHAR +STARTCHAR lr_angle_mask +ENCODING -1 79 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 12 12 -10 -2 +BITMAP +00f3 +00f0 +00f0 +00f0 +00f0 +00f0 +00f0 +00f0 +fff0 +fff0 +fff0 +fff0 +ENDCHAR +STARTCHAR man +ENCODING -1 80 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -14 -11 +BITMAP +0380 +1ef0 +0280 +8100 +4387 +244b +1d70 +0540 +0440 +0280 +0440 +0920 +1290 +1450 +783c +f83f +ENDCHAR +STARTCHAR man_mask +ENCODING -1 81 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -14 -11 +BITMAP +1fe0 +3ff0 +3ff8 +c382 +e7c7 +7fff +3ffb +1ff0 +07e0 +07c0 +0fe0 +1ff0 +3ff8 +7efc +fc7f +fc7f +ENDCHAR +STARTCHAR middlebutton +ENCODING -1 82 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -8 -8 +BITMAP +8003 +7ffd +7ffd +4445 +5455 +5455 +5455 +5455 +4445 +7ffd +7ffd +7ffd +7ffd +7ffd +7ffd +8003 +ENDCHAR +STARTCHAR middlebutton_mask +ENCODING -1 83 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 16 -8 -8 +BITMAP +7ffd +fffe +fffe +fffe +fffe +fffe +fffe +fffe +fffe +fffe +fffe +fffe +fffe +fffe +fffe +7ffc +ENDCHAR +STARTCHAR mouse +ENCODING -1 84 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 14 -4 -13 +BITMAP +0700 +0c00 +0600 +0300 +7ff8 +8004 +b336 +b336 +b336 +8006 +8006 +601c +1860 +0780 +ENDCHAR +STARTCHAR mouse_mask +ENCODING -1 85 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -4 -15 +BITMAP +0f80 +1e00 +0f00 +0700 +7ff8 +fffc +ffff +ffff +ffff +ffff +ffff +ffff +3ff7 +1fe0 +0fc0 +0780 +ENDCHAR +STARTCHAR pencil +ENCODING -1 86 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 11 16 -10 -1 +BITMAP +7008 +8800 +8c00 +4a00 +7a00 +2100 +1100 +1080 +0880 +0c40 +0440 +0220 +01e0 +00e0 +0060 +0020 +ENDCHAR +STARTCHAR pencil_mask +ENCODING -1 87 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 13 16 -11 -1 +BITMAP +fc03 +fe00 +ff00 +7f00 +3f80 +3f80 +1fc0 +0fc0 +0fe0 +07e0 +07f0 +03f8 +01f8 +00f8 +0078 +0038 +ENDCHAR +STARTCHAR pirate +ENCODING -1 88 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 16 -7 -4 +BITMAP +0780 +0fc0 +1fe0 +3330 +3330 +1fe0 +0fc0 +0780 +8784 +8786 +4308 +3870 +0780 +1fe2 +f03e +8004 +ENDCHAR +STARTCHAR pirate_mask +ENCODING -1 89 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -7 -4 +BITMAP +0fc0 +1fe0 +3ff0 +7ff8 +7ff8 +3ff0 +1fe0 +8fc1 +8fc7 +cfcf +f79c +7878 +0780 +7fe3 +ffff +f03e +ENDCHAR +STARTCHAR plus +ENCODING -1 90 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 10 10 -4 -5 +BITMAP +0c08 +0c00 +0c00 +0c00 +ffc0 +ffc0 +0c00 +0c00 +0c00 +0c00 +ENDCHAR +STARTCHAR plus_mask +ENCODING -1 91 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 12 12 -5 -6 +BITMAP +0f03 +0f00 +0f00 +0f00 +fff0 +fff0 +fff0 +fff0 +0f00 +0f00 +0f00 +0f00 +ENDCHAR +STARTCHAR question_arrow +ENCODING -1 92 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 9 15 -4 -8 +BITMAP +3e08 +7f00 +e380 +c180 +e180 +6380 +0700 +1e00 +1c00 +1400 +1400 +7700 +3600 +1c00 +0800 +ENDCHAR +STARTCHAR question_arrow_mask +ENCODING -1 93 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 11 16 -5 -8 +BITMAP +1f03 +3f80 +7fc0 +ffe0 +f1e0 +f9e0 +7be0 +3fc0 +1f80 +1f00 +1f00 +3f80 +7fc0 +3f80 +1f00 +0e00 +ENDCHAR +STARTCHAR right_ptr +ENCODING -1 94 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 8 14 -7 -14 +BITMAP +01 +03 +07 +0f +1f +3f +7f +ff +1f +1b +31 +30 +60 +60 +ENDCHAR +STARTCHAR right_ptr_mask +ENCODING -1 95 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 10 16 -8 -15 +BITMAP +00c3 +01c0 +03c0 +07c0 +0fc0 +1fc0 +3fc0 +7fc0 +ffc0 +ffc0 +1fc0 +3dc0 +3cc0 +7800 +7800 +3000 +ENDCHAR +STARTCHAR right_side +ENCODING -1 96 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 14 13 -13 -7 +BITMAP +000c +000c +020c +010c +008c +004c +ffec +004c +008c +010c +020c +000c +000c +ENDCHAR +STARTCHAR right_side_mask +ENCODING -1 97 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 15 -14 -8 +BITMAP +000f +000f +030f +038f +01cf +00ef +ffff +ffff +ffff +00ef +01cf +038f +030f +000f +000f +ENDCHAR +STARTCHAR right_tee +ENCODING -1 98 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 10 14 -9 -7 +BITMAP +00c8 +00c0 +00c0 +00c0 +00c0 +00c0 +ffc0 +ffc0 +00c0 +00c0 +00c0 +00c0 +00c0 +00c0 +ENDCHAR +STARTCHAR right_tee_mask +ENCODING -1 99 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 12 16 -10 -8 +BITMAP +00f3 +00f0 +00f0 +00f0 +00f0 +00f0 +fff0 +fff0 +fff0 +fff0 +00f0 +00f0 +00f0 +00f0 +00f0 +00f0 +ENDCHAR +STARTCHAR rightbutton +ENCODING -1 100 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -8 -8 +BITMAP +8003 +7ffd +7ffd +4445 +5545 +5545 +5545 +5545 +4445 +7ffd +7ffd +7ffd +7ffd +7ffd +7ffd +8003 +ENDCHAR +STARTCHAR rightbutton_mask +ENCODING -1 101 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 16 -8 -8 +BITMAP +7ffd +fffe +fffe +fffe +fffe +fffe +fffe +fffe +fffe +fffe +fffe +fffe +fffe +fffe +fffe +7ffc +ENDCHAR +STARTCHAR rtl_logo +ENCODING -1 102 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 14 14 -6 -8 +BITMAP +fffc +8044 +8044 +8044 +ffc4 +8844 +8844 +8844 +8844 +8ffc +8804 +8804 +8804 +fffc +ENDCHAR +STARTCHAR rtl_logo_mask +ENCODING -1 103 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -7 -9 +BITMAP +ffff +ffff +ffff +e077 +fff7 +fff7 +fff7 +ee77 +ee77 +efff +efff +efff +ee07 +ffff +ffff +ffff +ENDCHAR +STARTCHAR sailboat +ENCODING -1 104 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 12 13 -6 -14 +BITMAP +0108 +0100 +0580 +0580 +0d80 +0dc0 +1dc0 +1dc0 +3de0 +3de0 +7de0 +7df0 +f8e0 +ENDCHAR +STARTCHAR sailboat_mask +ENCODING -1 105 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -8 -16 +BITMAP +00c0 +00e0 +01e0 +03f0 +03f0 +07f0 +07f8 +0ff8 +0ff8 +1ffc +1ffc +3ffc +3fff +7fff +fff8 +7fe0 +ENDCHAR +STARTCHAR sb_down_arrow +ENCODING -1 106 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 7 15 -3 0 +BITMAP +28 +28 +28 +28 +28 +28 +28 +28 +28 +28 +28 +fe +7c +38 +10 +ENDCHAR +STARTCHAR sb_down_arrow_mask +ENCODING -1 107 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 9 16 -4 -1 +BITMAP +3e03 +3e00 +3e00 +3e00 +3e00 +3e00 +3e00 +3e00 +3e00 +3e00 +ff80 +ff80 +7f00 +3e00 +1c00 +0800 +ENDCHAR +STARTCHAR sb_h_double_arrow +ENCODING -1 108 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 7 -7 -4 +BITMAP +1010 +3018 +7ffc +f01e +7ffc +3018 +1010 +ENDCHAR +STARTCHAR sb_h_double_arrow_mask +ENCODING -1 109 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 9 -7 -5 +BITMAP +1831 +3838 +7ffc +fffe +fffe +fffe +7ffc +3838 +1830 +ENDCHAR +STARTCHAR sb_left_arrow +ENCODING -1 110 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 7 1 -4 +BITMAP +1000 +3000 +7ffe +f000 +7ffe +3000 +1000 +ENDCHAR +STARTCHAR sb_left_arrow_mask +ENCODING -1 111 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 9 0 -5 +BITMAP +0c00 +1c00 +3fff +7fff +ffff +7fff +3fff +1c00 +0c00 +ENDCHAR +STARTCHAR sb_right_arrow +ENCODING -1 112 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 7 -15 -4 +BITMAP +0010 +0018 +fffc +001e +fffc +0018 +0010 +ENDCHAR +STARTCHAR sb_right_arrow_mask +ENCODING -1 113 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 9 -15 -5 +BITMAP +0030 +0038 +fffc +fffe +ffff +fffe +fffc +0038 +0030 +ENDCHAR +STARTCHAR sb_up_arrow +ENCODING -1 114 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 7 15 -3 -16 +BITMAP +10 +39 +7c +fe +28 +28 +28 +28 +28 +28 +28 +28 +28 +28 +28 +ENDCHAR +STARTCHAR sb_up_arrow_mask +ENCODING -1 115 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 9 16 -4 -16 +BITMAP +0803 +1c00 +3e00 +7f00 +ff80 +ff80 +3e00 +3e00 +3e00 +3e00 +3e00 +3e00 +3e00 +3e00 +3e00 +3e00 +ENDCHAR +STARTCHAR sb_v_double_arrow +ENCODING -1 116 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 7 15 -3 -8 +BITMAP +10 +39 +7c +fe +28 +28 +28 +28 +28 +28 +28 +fe +7c +38 +10 +ENDCHAR +STARTCHAR sb_v_double_arrow_mask +ENCODING -1 117 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 9 15 -4 -8 +BITMAP +1c03 +3e00 +7f00 +ff80 +ff80 +3e00 +3e00 +3e00 +3e00 +3e00 +ff80 +ff80 +7f00 +3e00 +1c00 +ENDCHAR +STARTCHAR shuttle +ENCODING -1 118 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 16 -10 -16 +BITMAP +0021 +0070 +00f8 +01de +05de +09de +11de +11de +11de +11de +31de +71de +fdde +1888 +0078 +0030 +ENDCHAR +STARTCHAR shuttle_mask +ENCODING -1 119 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -11 -16 +BITMAP +0038 +007c +00fe +00ff +06ff +0eff +1eff +1eff +1eff +1eff +3eff +7eff +feff +7efe +0c7e +003c +ENDCHAR +STARTCHAR sizing +ENCODING -1 120 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 14 14 -7 -7 +BITMAP +ff03 +8000 +8000 +8000 +8fc0 +8840 +8844 +8844 +0844 +0fc4 +0024 +0014 +000c +03fc +ENDCHAR +STARTCHAR sizing_mask +ENCODING -1 121 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -8 -8 +BITMAP +ffc0 +ffc0 +ffc0 +e000 +eff0 +eff0 +eff7 +ee77 +ee77 +eff7 +0ff7 +0fff +001f +03ff +03ff +03ff +ENDCHAR +STARTCHAR spider +ENCODING -1 122 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -6 -9 +BITMAP +2010 +1020 +1020 +0840 +0840 +8787 +6798 +1fe0 +1fe0 +6798 +8787 +0840 +0840 +1020 +1020 +2010 +ENDCHAR +STARTCHAR spider_mask +ENCODING -1 123 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -6 -9 +BITMAP +6018 +3030 +1020 +1860 +8fc1 +cfcf +6fdc +3ff0 +3fe0 +6ff8 +cfcf +8fc1 +1840 +1860 +3030 +6018 +ENDCHAR +STARTCHAR spraycan +ENCODING -1 124 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 11 16 -9 -14 +BITMAP +0067 +0100 +3460 +7900 +6860 +fc00 +8400 +e400 +a400 +e400 +a400 +e400 +e400 +8400 +8400 +fc00 +ENDCHAR +STARTCHAR spraycan_mask +ENCODING -1 125 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 12 16 -10 -14 +BITMAP +0032 +18b0 +3eb0 +3eb0 +7eb0 +ff00 +ff00 +ff00 +ff00 +ff00 +ff00 +ff00 +ff00 +ff00 +ff00 +ff00 +ENDCHAR +STARTCHAR star +ENCODING -1 126 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 16 -7 -9 +BITMAP +0101 +0280 +0280 +0280 +0440 +0440 +0440 +3938 +c006 +3838 +0920 +1290 +2448 +2828 +3018 +2008 +ENDCHAR +STARTCHAR star_mask +ENCODING -1 127 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -7 -9 +BITMAP +0100 +0380 +0380 +06c0 +06c0 +0c60 +1c78 +f93e +c007 +f83e +3938 +3398 +66cc +6c6c +783c +701c +ENDCHAR +STARTCHAR target +ENCODING -1 128 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 13 -7 -7 +BITMAP +0381 +0fe0 +1c70 +3018 +600c +c106 +c286 +c106 +600c +3018 +1c70 +0fe0 +0380 +ENDCHAR +STARTCHAR target_mask +ENCODING -1 129 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 14 -7 -7 +BITMAP +07c0 +0fe0 +1ff0 +3c78 +701c +e10e +c387 +c6c7 +c387 +e10e +701c +3c78 +1ff0 +07c0 +ENDCHAR +STARTCHAR tcross +ENCODING -1 130 +SWIDTH 516 0 +DWIDTH 16 0 +BBX 13 13 -6 -7 +BITMAP +0207 +0200 +0200 +0200 +0200 +0200 +fff8 +0200 +0200 +0200 +0200 +0200 +0200 +ENDCHAR +STARTCHAR tcross_mask +ENCODING -1 131 +SWIDTH 516 0 +DWIDTH 16 0 +BBX 15 15 -7 -8 +BITMAP +0380 +0380 +0380 +0380 +0380 +0380 +fffe +fffe +fffe +0380 +0380 +0380 +0380 +0380 +0380 +ENDCHAR +STARTCHAR top_left_arrow +ENCODING -1 132 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 14 14 0 -14 +BITMAP +c003 +f000 +7c00 +7f00 +3fc0 +3ff0 +1f00 +1f00 +0c80 +0c40 +0420 +0410 +0008 +0004 +ENDCHAR +STARTCHAR top_left_arrow_mask +ENCODING -1 133 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -1 -15 +BITMAP +e000 +f800 +fe00 +7f80 +7fe0 +3ffc +3ffc +1ffc +1fc0 +0fe0 +0f70 +0738 +071c +070e +0007 +0003 +ENDCHAR +STARTCHAR top_left_corner +ENCODING -1 134 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 14 14 0 -14 +BITMAP +ffff +fffc +c000 +c000 +c000 +c7f0 +c600 +c500 +c480 +c440 +c420 +c410 +c000 +c000 +ENDCHAR +STARTCHAR top_left_corner_mask +ENCODING -1 135 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -1 -15 +BITMAP +ffff +ffff +ffff +ffff +f000 +f7fc +f7fc +f7fc +f7c0 +f7e0 +f770 +f738 +f71c +f70c +f000 +f000 +ENDCHAR +STARTCHAR top_right_corner +ENCODING -1 136 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 14 14 -13 -14 +BITMAP +ffff +fffc +000c +000c +000c +3f8c +018c +028c +048c +088c +108c +208c +000c +000c +ENDCHAR +STARTCHAR top_right_corner_mask +ENCODING -1 137 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -14 -15 +BITMAP +ffff +ffff +ffff +ffff +000f +3fef +3fef +3fef +03ef +07ef +0eef +1cef +38ef +30ef +000f +000f +ENDCHAR +STARTCHAR top_side +ENCODING -1 138 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 13 14 -6 -14 +BITMAP +ffff +fff8 +0000 +0200 +0700 +0a80 +1240 +2220 +0200 +0200 +0200 +0200 +0200 +0200 +ENDCHAR +STARTCHAR top_side_mask +ENCODING -1 139 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 15 16 -7 -15 +BITMAP +fffe +fffe +fffe +fffe +0380 +07c0 +0fe0 +1ff0 +3bb8 +3398 +0380 +0380 +0380 +0380 +0380 +0380 +ENDCHAR +STARTCHAR top_tee +ENCODING -1 140 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 14 10 -7 -10 +BITMAP +ffff +fffc +0300 +0300 +0300 +0300 +0300 +0300 +0300 +0300 +ENDCHAR +STARTCHAR top_tee_mask +ENCODING -1 141 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 12 -8 -11 +BITMAP +ffff +ffff +ffff +ffff +03c0 +03c0 +03c0 +03c0 +03c0 +03c0 +03c0 +03c0 +ENDCHAR +STARTCHAR trek +ENCODING -1 142 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 7 16 -3 -16 +BITMAP +11 +01 +38 +7c +fe +ee +fe +7c +38 +10 +ba +d6 +92 +82 +82 +82 +ENDCHAR +STARTCHAR trek_mask +ENCODING -1 143 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 9 16 -4 -16 +BITMAP +1c02 +1c00 +3e00 +7f00 +ff80 +ff80 +ff80 +7f00 +3e00 +5d00 +ff80 +ff80 +ff80 +eb80 +eb80 +e380 +ENDCHAR +STARTCHAR ul_angle +ENCODING -1 144 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 10 10 0 -10 +BITMAP +ffc7 +ffc0 +c000 +c000 +c000 +c000 +c000 +c000 +c000 +c000 +ENDCHAR +STARTCHAR ul_angle_mask +ENCODING -1 145 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 12 12 -1 -11 +BITMAP +fff2 +fff0 +fff0 +fff0 +f000 +f000 +f000 +f000 +f000 +f000 +f000 +f000 +ENDCHAR +STARTCHAR umbrella +ENCODING -1 146 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 14 14 -7 -12 +BITMAP +1123 +0450 +934c +4f90 +3260 +c218 +0200 +0200 +0200 +0200 +0200 +0280 +0280 +0100 +ENDCHAR +STARTCHAR umbrella_mask +ENCODING -1 147 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -8 -14 +BITMAP +176e +dffb +bffc +7fff +fffc +ffff +f39e +0380 +0380 +0380 +0380 +03e0 +03e0 +03e0 +03e0 +01c0 +ENDCHAR +STARTCHAR ur_angle +ENCODING -1 148 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 10 10 -9 -10 +BITMAP +ffc7 +ffc0 +00c0 +00c0 +00c0 +00c0 +00c0 +00c0 +00c0 +00c0 +ENDCHAR +STARTCHAR ur_angle_mask +ENCODING -1 149 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 12 12 -10 -11 +BITMAP +fff2 +fff0 +fff0 +fff0 +00f0 +00f0 +00f0 +00f0 +00f0 +00f0 +00f0 +00f0 +ENDCHAR +STARTCHAR watch +ENCODING -1 150 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -15 -7 +BITMAP +1fe0 +1fe0 +1fe0 +3ff0 +6118 +c10c +8107 +8387 +8387 +8407 +c80c +6018 +3ff0 +1fe0 +1fe0 +1fe0 +ENDCHAR +STARTCHAR watch_mask +ENCODING -1 151 +SWIDTH 548 0 +DWIDTH 17 0 +BBX 16 16 -15 -7 +BITMAP +3ff0 +3ff0 +3ff0 +7ff8 +fffc +ffff +ffff +ffff +ffff +ffff +ffff +fffc +7ff8 +3ff0 +3ff0 +3ff0 +ENDCHAR +STARTCHAR xterm +ENCODING -1 152 +SWIDTH 322 0 +DWIDTH 10 0 +BBX 7 14 -3 -7 +BITMAP +ef +39 +10 +10 +10 +10 +10 +10 +10 +10 +10 +10 +38 +ee +ENDCHAR +STARTCHAR xterm_mask +ENCODING -1 153 +SWIDTH 322 0 +DWIDTH 10 0 +BBX 9 16 -4 -8 +BITMAP +f782 +ff80 +ff80 +3e00 +1c00 +1c00 +1c00 +1c00 +1c00 +1c00 +1c00 +1c00 +3e00 +ff80 +ff80 +f780 +ENDCHAR +ENDFONT From 81b154982b42e86c6eb069c049ed702be8093b00 Mon Sep 17 00:00:00 2001 From: Nishi Date: Fri, 24 Apr 2026 01:51:11 +0900 Subject: [PATCH 509/836] ughghghhhh --- src/backend/wayland.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index b53011cca..c2a5ebdcb 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1754,8 +1754,6 @@ static void clip(MwLL handle) { my = MIN(my, y + ws[i]->wayland.wh); } - cx = cy = 50; - if(mx < cx) mx = cx; if(my < cy) my = cy; From 183e2b0e042f0ee0d06b2ea835ab79b8e6249dc6 Mon Sep 17 00:00:00 2001 From: Nishi Date: Fri, 24 Apr 2026 02:02:44 +0900 Subject: [PATCH 510/836] WOW --- src/backend/wayland.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index c2a5ebdcb..823f941fb 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1735,6 +1735,7 @@ static void clip(MwLL handle) { if(toplevel) { #define MIN(a, b) ((a) < (b) ? (a) : (b)) #define MAX(a, b) ((a) > (b) ? (a) : (b)) + /* i seriously have no fucking idea how this works, do not ask me how this really works (nishi) */ x = 0; y = 0; cx = 0; @@ -1744,11 +1745,22 @@ static void clip(MwLL handle) { // ws is traversed result // ws[ws.length - 1] is ignored bc it's toplevel for(i = arrlen(ws) - 2; i >= 0; i--) { + int j; + int l = 0; + x += ws[i]->wayland.x; y += ws[i]->wayland.y; - cx = MAX(cx, ws[i]->wayland.x); - cy = MAX(cy, ws[i]->wayland.y); + for(j = i - 1; j >= 0; j--){ + if(ws[j]->wayland.x > cx) l = 1; + if(ws[j]->wayland.y > cy) l = 1; + if(l) break; + } + + if(!l){ + cx = MAX(cx, ws[i]->wayland.x); + cy = MAX(cy, ws[i]->wayland.y); + } mx = MIN(mx, x + ws[i]->wayland.ww); my = MIN(my, y + ws[i]->wayland.wh); From d225f7cb722a5c04280cdd80b4c5cb1368154315 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 24 Apr 2026 02:23:25 +0900 Subject: [PATCH 511/836] add widgets to periodic table --- examples/basic/periodic.c | 29 +++++++++++++--- examples/basic/viewport.c | 8 ++--- src/abstract/charset.c | 36 +++++++++---------- src/backend/wayland.c | 4 +-- src/cursor/arrow.c | 73 ++++++++++++++++++--------------------- src/cursor/default.c | 73 ++++++++++++++++++--------------------- src/cursor/text.c | 73 ++++++++++++++++++--------------------- src/dialog/filechooser.c | 8 ++--- src/widget/listbox.c | 14 ++++---- 9 files changed, 158 insertions(+), 160 deletions(-) diff --git a/examples/basic/periodic.c b/examples/basic/periodic.c index 2f4e4a542..7403ca701 100644 --- a/examples/basic/periodic.c +++ b/examples/basic/periodic.c @@ -145,11 +145,12 @@ static void MWAPI menu_handler(MwWidget handle, void* user, void* call) { } int main() { - int i, j; - MwWidget f, w, b; - int index; - MwMenu m, m2; - void* v; + int i, j; + MwWidget f, w, b; + MwLLPixmap px; + int index; + MwMenu m, m2; + void* v; MwLibraryInit(); @@ -157,6 +158,8 @@ int main() { MwNtitle, "Milsko Periodic Table", NULL); + px = MwLoadIcon(window, MwIconError); + menu = MwCreateWidget(MwMenuClass, "menu", window, 0, 0, 0, 0); m = MwMenuAdd(menu, NULL, "File"); @@ -256,6 +259,12 @@ int main() { f = frame("Entry", -PaddingContent, 24, MwEntryClass, NULL); add(f); + f = frame("Image", -PaddingContent, -PaddingContent, MwImageClass, + MwNpixmap, px, + NULL); + w = child(f); + add(f); + f = frame("Label", -PaddingContent, -PaddingContent, MwLabelClass, MwNtext, "Epic text", NULL); @@ -292,6 +301,14 @@ int main() { v = MwTreeViewAdd(w, v, NULL, "ghi"); add(f); + f = frame("Viewport", -PaddingContent, -PaddingContent, MwViewportClass, NULL); + w = child(f); + MwViewportSetSize(w, 256, 256); + MwVaCreateWidget(MwButtonClass, "btn", MwViewportGetViewport(w), 64, 64, 128, 128, + MwNtext, "Thing", + NULL); + add(f); + if(n != 0) newrow(); if(n == 0) MwDestroyWidget(boxes[row]); @@ -300,4 +317,6 @@ int main() { resize(window, NULL, NULL); MwLoop(window); + + MwLLDestroyPixmap(px); } diff --git a/examples/basic/viewport.c b/examples/basic/viewport.c index 30be60c60..75524c471 100644 --- a/examples/basic/viewport.c +++ b/examples/basic/viewport.c @@ -31,12 +31,12 @@ int main() { if(px == NULL) px = MwLoadImage(vp, "picture.png"); -// MwVaCreateWidget(MwImageClass, "image", MwViewportGetViewport(vp), 0, 0, 1024, 1024, -// MwNpixmap, px, -// NULL); + // MwVaCreateWidget(MwImageClass, "image", MwViewportGetViewport(vp), 0, 0, 1024, 1024, + // MwNpixmap, px, + // NULL); MwViewportSetSize(vp, 1024, 1024); MwWidget f = MwCreateWidget(MwFrameClass, "fr", MwViewportGetViewport(vp), 256, 256, 128, 128); - f = MwCreateWidget(MwFrameClass, "fr", f, 0, 0, 128, 128); + f = MwCreateWidget(MwFrameClass, "fr", f, 0, 0, 128, 128); MwCreateWidget(MwButtonClass, "btn", f, 64, 64, 128, 128); MwAddUserHandler(w, MwNresizeHandler, resize, NULL); diff --git a/src/abstract/charset.c b/src/abstract/charset.c index 971496d9a..c0cf53933 100644 --- a/src/abstract/charset.c +++ b/src/abstract/charset.c @@ -4,36 +4,36 @@ #define CP_UTF8 65001 #endif -char* MwACPToUTF8(const char* input){ +char* MwACPToUTF8(const char* input) { #if defined(_WIN32) && defined(MW_HAS_WCHAR) int mbbytes = (strlen(input) + 1) * 4; - int wbytes = 0; + int wbytes = 0; int len; wchar_t* wout; - char* mbout = malloc(mbbytes); + char* mbout = malloc(mbbytes); wbytes = MultiByteToWideChar(CP_ACP, 0, input, strlen(input), NULL, 0) * sizeof(wchar_t); - if(wbytes == 0){ + if(wbytes == 0) { free(mbout); return MwStringDuplicate(input); } wout = malloc(wbytes); - len = wbytes / sizeof(wchar_t); + len = wbytes / sizeof(wchar_t); memset(wout, 0, wbytes); memset(mbout, 0, mbbytes); len = MultiByteToWideChar(CP_ACP, 0, input, strlen(input), wout, len); - if(len == 0){ + if(len == 0) { free(mbout); free(wout); return MwStringDuplicate(input); } - + len = WideCharToMultiByte(CP_UTF8, 0, wout, len, mbout, mbbytes, 0, 0); - if(len == 0){ + if(len == 0) { free(mbout); free(wout); return MwStringDuplicate(input); @@ -46,39 +46,39 @@ char* MwACPToUTF8(const char* input){ return mbout; #else return MwStringDuplicate(input); -#endif +#endif } -char* MwUTF8ToACP(const char* input){ +char* MwUTF8ToACP(const char* input) { #if defined(_WIN32) && defined(MW_HAS_WCHAR) int mbbytes = (strlen(input) + 1) * 4; - int wbytes = 0; + int wbytes = 0; int len; wchar_t* wout; - char* mbout = malloc(mbbytes); + char* mbout = malloc(mbbytes); wbytes = MultiByteToWideChar(CP_UTF8, 0, input, strlen(input), NULL, 0) * sizeof(wchar_t); - if(wbytes == 0){ + if(wbytes == 0) { free(mbout); return MwStringDuplicate(input); } wout = malloc(wbytes); - len = wbytes / sizeof(wchar_t); + len = wbytes / sizeof(wchar_t); memset(wout, 0, wbytes); memset(mbout, 0, mbbytes); len = MultiByteToWideChar(CP_UTF8, 0, input, strlen(input), wout, len); - if(len == 0){ + if(len == 0) { free(mbout); free(wout); return MwStringDuplicate(input); } - + len = WideCharToMultiByte(CP_ACP, 0, wout, len, mbout, mbbytes, 0, 0); - if(len == 0){ + if(len == 0) { free(mbout); free(wout); return MwStringDuplicate(input); @@ -91,5 +91,5 @@ char* MwUTF8ToACP(const char* input){ return mbout; #else return MwStringDuplicate(input); -#endif +#endif } diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 823f941fb..998736439 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1751,13 +1751,13 @@ static void clip(MwLL handle) { x += ws[i]->wayland.x; y += ws[i]->wayland.y; - for(j = i - 1; j >= 0; j--){ + for(j = i - 1; j >= 0; j--) { if(ws[j]->wayland.x > cx) l = 1; if(ws[j]->wayland.y > cy) l = 1; if(l) break; } - if(!l){ + if(!l) { cx = MAX(cx, ws[i]->wayland.x); cy = MAX(cy, ws[i]->wayland.y); } diff --git a/src/cursor/arrow.c b/src/cursor/arrow.c index fab8af109..5a1d9bff8 100644 --- a/src/cursor/arrow.c +++ b/src/cursor/arrow.c @@ -7,44 +7,37 @@ * These ""glyphs"" are unencumbered */ MwCursor MwCursorArrow = { - 14, 14, -13, -14, - { - 3, /* ............## */ - 15, /* ..........#### */ - 62, /* ........#####. */ - 254, /* ......#######. */ - 1020, /* ....########.. */ - 4092, /* ..##########.. */ - 248, /* ......#####... */ - 504, /* .....######... */ - 944, /* ....###.##.... */ - 1840, /* ...###..##.... */ - 3616, /* ..###...#..... */ - 7200, /* .###....#..... */ - 14336, /* ###........... */ - 4096, /* .#............ */ - 0, - 0 - } -}; + 14, 14, -13, -14, {3, /* ............## */ + 15, /* ..........#### */ + 62, /* ........#####. */ + 254, /* ......#######. */ + 1020, /* ....########.. */ + 4092, /* ..##########.. */ + 248, /* ......#####... */ + 504, /* .....######... */ + 944, /* ....###.##.... */ + 1840, /* ...###..##.... */ + 3616, /* ..###...#..... */ + 7200, /* .###....#..... */ + 14336, /* ###........... */ + 4096, /* .#............ */ + 0, 0}}; MwCursor MwCursorArrowMask = { - 16, 16, -14, -15, - { - 7, /* .............### */ - 31, /* ...........##### */ - 127, /* .........####### */ - 510, /* .......########. */ - 2046, /* .....##########. */ - 8188, /* ...###########.. */ - 16380, /* ..############.. */ - 16376, /* ..###########... */ - 2040, /* .....########... */ - 4080, /* ....########.... */ - 8176, /* ...#########.... */ - 16096, /* ..#####.###..... */ - 31968, /* .#####..###..... */ - 63552, /* #####....#...... */ - 28672, /* .###............ */ - 8192 /* ..#............. */ - } -}; + 16, 16, -14, -15, { + 7, /* .............### */ + 31, /* ...........##### */ + 127, /* .........####### */ + 510, /* .......########. */ + 2046, /* .....##########. */ + 8188, /* ...###########.. */ + 16380, /* ..############.. */ + 16376, /* ..###########... */ + 2040, /* .....########... */ + 4080, /* ....########.... */ + 8176, /* ...#########.... */ + 16096, /* ..#####.###..... */ + 31968, /* .#####..###..... */ + 63552, /* #####....#...... */ + 28672, /* .###............ */ + 8192 /* ..#............. */ + }}; diff --git a/src/cursor/default.c b/src/cursor/default.c index 9f1f146cf..d4bda3cda 100644 --- a/src/cursor/default.c +++ b/src/cursor/default.c @@ -7,44 +7,37 @@ * These ""glyphs"" are unencumbered */ MwCursor MwCursorDefault = { - 8, 14, 0, -14, - { - 128, /* #....... */ - 192, /* ##...... */ - 224, /* ###..... */ - 240, /* ####.... */ - 248, /* #####... */ - 252, /* ######.. */ - 254, /* #######. */ - 255, /* ######## */ - 248, /* #####... */ - 216, /* ##.##... */ - 140, /* #...##.. */ - 12, /* ....##.. */ - 6, /* .....##. */ - 6, /* .....##. */ - 0, - 0 - } -}; + 8, 14, 0, -14, {128, /* #....... */ + 192, /* ##...... */ + 224, /* ###..... */ + 240, /* ####.... */ + 248, /* #####... */ + 252, /* ######.. */ + 254, /* #######. */ + 255, /* ######## */ + 248, /* #####... */ + 216, /* ##.##... */ + 140, /* #...##.. */ + 12, /* ....##.. */ + 6, /* .....##. */ + 6, /* .....##. */ + 0, 0}}; MwCursor MwCursorDefaultMask = { - 10, 16, -1, -15, - { - 768, /* ##........ */ - 896, /* ###....... */ - 960, /* ####...... */ - 992, /* #####..... */ - 1008, /* ######.... */ - 1016, /* #######... */ - 1020, /* ########.. */ - 1022, /* #########. */ - 1023, /* ########## */ - 1023, /* ########## */ - 1016, /* #######... */ - 956, /* ###.####.. */ - 828, /* ##..####.. */ - 30, /* .....####. */ - 30, /* .....####. */ - 12 /* ......##.. */ - } -}; + 10, 16, -1, -15, { + 768, /* ##........ */ + 896, /* ###....... */ + 960, /* ####...... */ + 992, /* #####..... */ + 1008, /* ######.... */ + 1016, /* #######... */ + 1020, /* ########.. */ + 1022, /* #########. */ + 1023, /* ########## */ + 1023, /* ########## */ + 1016, /* #######... */ + 956, /* ###.####.. */ + 828, /* ##..####.. */ + 30, /* .....####. */ + 30, /* .....####. */ + 12 /* ......##.. */ + }}; diff --git a/src/cursor/text.c b/src/cursor/text.c index fa2c372b1..855f01a32 100644 --- a/src/cursor/text.c +++ b/src/cursor/text.c @@ -7,44 +7,37 @@ * These ""glyphs"" are unencumbered */ MwCursor MwCursorText = { - 7, 14, -3, -7, - { - 119, /* ###.### */ - 28, /* ..###.. */ - 8, /* ...#... */ - 8, /* ...#... */ - 8, /* ...#... */ - 8, /* ...#... */ - 8, /* ...#... */ - 8, /* ...#... */ - 8, /* ...#... */ - 8, /* ...#... */ - 8, /* ...#... */ - 8, /* ...#... */ - 28, /* ..###.. */ - 119, /* ###.### */ - 0, - 0 - } -}; + 7, 14, -3, -7, {119, /* ###.### */ + 28, /* ..###.. */ + 8, /* ...#... */ + 8, /* ...#... */ + 8, /* ...#... */ + 8, /* ...#... */ + 8, /* ...#... */ + 8, /* ...#... */ + 8, /* ...#... */ + 8, /* ...#... */ + 8, /* ...#... */ + 8, /* ...#... */ + 28, /* ..###.. */ + 119, /* ###.### */ + 0, 0}}; MwCursor MwCursorTextMask = { - 9, 16, -4, -8, - { - 495, /* ####.#### */ - 511, /* ######### */ - 511, /* ######### */ - 124, /* ..#####.. */ - 56, /* ...###... */ - 56, /* ...###... */ - 56, /* ...###... */ - 56, /* ...###... */ - 56, /* ...###... */ - 56, /* ...###... */ - 56, /* ...###... */ - 56, /* ...###... */ - 124, /* ..#####.. */ - 511, /* ######### */ - 511, /* ######### */ - 495 /* ####.#### */ - } -}; + 9, 16, -4, -8, { + 495, /* ####.#### */ + 511, /* ######### */ + 511, /* ######### */ + 124, /* ..#####.. */ + 56, /* ...###... */ + 56, /* ...###... */ + 56, /* ...###... */ + 56, /* ...###... */ + 56, /* ...###... */ + 56, /* ...###... */ + 56, /* ...###... */ + 56, /* ...###... */ + 124, /* ..#####.. */ + 511, /* ######### */ + 511, /* ######### */ + 495 /* ####.#### */ + }}; diff --git a/src/dialog/filechooser.c b/src/dialog/filechooser.c index edd2eaf94..0c4d1b899 100644 --- a/src/dialog/filechooser.c +++ b/src/dialog/filechooser.c @@ -468,7 +468,7 @@ static void scan(MwWidget handle, const char* path, int record) { for(i = 0; i < arrlen(fc->entries); i++) { if(strcmp(fc->entries[i]->name, ".") == 0 || strcmp(fc->entries[i]->name, "..") == 0) continue; if(fc->entries[i]->type == MwDIRECTORY_DIRECTORY) { - char date[128]; + char date[128]; char* n = MwACPToUTF8(fc->entries[i]->name); MwStringTime(date, fc->entries[i]->mtime); @@ -477,7 +477,7 @@ static void scan(MwWidget handle, const char* path, int record) { MwListBoxSet(fc->files, index, -1, date); MwListBoxSet(fc->files, index, -1, NULL); MwListBoxSetIcon(fc->files, index, fc->dir); - + free(n); arrput(fc->sorted_entries, fc->entries[i]); @@ -485,8 +485,8 @@ static void scan(MwWidget handle, const char* path, int record) { } for(i = 0; i < arrlen(fc->entries); i++) { if(fc->entries[i]->type == MwDIRECTORY_FILE && !fc->dir_only) { - char date[128]; - char size[128]; + char date[128]; + char size[128]; char* n = MwACPToUTF8(fc->entries[i]->name); MwStringTime(date, fc->entries[i]->mtime); diff --git a/src/widget/listbox.c b/src/widget/listbox.c index 209bb8eb6..fbfb51475 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -189,9 +189,9 @@ static void frame_draw(MwWidget handle) { } p.x = MwDefaultBorderWidth(handle) + MwGetInteger(handle->parent, MwNleftPadding); for(j = 0; j < arrlen(lb->list[i].name); j++) { - char* t = lb->list[i].name[j]; - char* str; - int l = (j == 0 ? MwGetInteger(handle->parent, MwNleftPadding) : 0); + char* t = lb->list[i].name[j]; + char* str; + int l = (j == 0 ? MwGetInteger(handle->parent, MwNleftPadding) : 0); MwPoint p2 = p; p2.y += (MwTextHeight(handle, Font, "M") + Padding) / 2; @@ -200,11 +200,11 @@ static void frame_draw(MwWidget handle) { str = MwStringDuplicate(t); if(MwUTF8Length(str) > (get_col_width(lb, j) - l) / MwTextWidth(handle, Font, "M")) { - int ind = (get_col_width(lb, j) - l) / MwTextWidth(handle, Font, "M"); + int ind = (get_col_width(lb, j) - l) / MwTextWidth(handle, Font, "M"); int seek = 0; - int l = 0; + int l = 0; - while(str[seek] != 0){ + while(str[seek] != 0) { int cp; seek += MwUTF8ToUTF32(str + seek, &cp); @@ -411,7 +411,7 @@ static int mwListBoxSetImpl(MwWidget handle, int row, int col, const char* text) MwListBox lb = handle->internal; MwListBoxEntry entry; char* t = text == NULL ? NULL : MwStringDuplicate(text); - int new = 0; + int new = 0; if(row == -1) row = arrlen(lb->list); entry.name = NULL; From 0c793d6832c5e4bfabf9180e4b8c9368aa4b44ec Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 24 Apr 2026 02:42:29 +0900 Subject: [PATCH 512/836] improve xrender output --- src/backend/x11.c | 73 +++++++++++++++++++++-------------------------- 1 file changed, 32 insertions(+), 41 deletions(-) diff --git a/src/backend/x11.c b/src/backend/x11.c index 67489cda7..7cae9e191 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -962,38 +962,43 @@ static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { free(pixmap); } +#define DO_XRENDER(dest_px, src, format, bpp) \ + { \ + Picture src_pic, dest_pic; \ + XRenderPictFormat* fmt = XRenderFindStandardFormat(handle->x11.display, format); \ + Pixmap src_px = XCreatePixmap(handle->x11.display, handle->x11.window, pixmap->common.width, pixmap->common.height, bpp); \ + GC gc = XCreateGC(handle->x11.display, src_px, 0, NULL); \ +\ + dest_px = XCreatePixmap(handle->x11.display, handle->x11.window, rect->width, rect->height, bpp); \ +\ + XPutImage(handle->x11.display, src_px, gc, src, 0, 0, 0, 0, pixmap->common.width, pixmap->common.height); \ +\ + src_pic = XRenderCreatePicture(handle->x11.display, src_px, fmt, 0, &attr); \ + dest_pic = XRenderCreatePicture(handle->x11.display, dest_px, fmt, 0, &attr); \ +\ + XRenderSetPictureTransform(handle->x11.display, src_pic, &m); \ + XRenderComposite(handle->x11.display, PictOpSrc, src_pic, 0, dest_pic, 0, 0, 0, 0, 0, 0, rect->width, rect->height); \ +\ + XRenderFreePicture(handle->x11.display, src_pic); \ + XRenderFreePicture(handle->x11.display, dest_pic); \ + XFreePixmap(handle->x11.display, src_px); \ + } + static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { if(rect->width <= 0 || rect->height <= 0 || pixmap->common.width <= 0 || pixmap->common.height <= 0) return; #ifdef USE_XRENDER if(pixmap->x11.image != NULL && pixmap->x11.use_xrender) { - Pixmap px = XCreatePixmap(handle->x11.display, handle->x11.window, pixmap->common.width, pixmap->common.height, pixmap->x11.depth); - Pixmap mask = XCreatePixmap(handle->x11.display, handle->x11.window, rect->width, rect->height, 1); - Pixmap pxsrc = XCreatePixmap(handle->x11.display, handle->x11.window, rect->width, rect->height, pixmap->x11.depth); - GC maskgc = XCreateGC(handle->x11.display, mask, 0, NULL); - XRenderPictFormat* format = XRenderFindStandardFormat(handle->x11.display, PictStandardRGB24); + Pixmap px; + Pixmap mask; XRenderPictureAttributes attr; - Picture src, dest; XTransform m; - double xsc = (double)pixmap->common.width / rect->width; - double ysc = (double)pixmap->common.height / rect->height; - char* dm = malloc(rect->width * rect->height * 4); - XImage* destmask; - int y, x; + double xsc; + double ysc; - destmask = XCreateImage(handle->x11.display, DefaultVisual(handle->x11.display, DefaultScreen(handle->x11.display)), 1, ZPixmap, 0, dm, rect->width, rect->height, 32, rect->width * 4); + memset(&attr, 0, sizeof(attr)); - for(y = 0; y < (int)rect->height; y++) { - for(x = 0; x < (int)rect->width; x++) { - int sy = y * pixmap->common.height / rect->height; - int sx = x * pixmap->common.width / rect->width; - sy = (int)sy; - sx = (int)sx; - - XPutPixel(destmask, x, y, XGetPixel(pixmap->x11.mask, sx, sy)); - } - } - - XPutImage(handle->x11.display, mask, maskgc, destmask, 0, 0, 0, 0, rect->width, rect->height); + xsc = (double)pixmap->common.width / rect->width; + ysc = (double)pixmap->common.height / rect->height; m.matrix[0][0] = XDoubleToFixed(xsc); m.matrix[0][1] = XDoubleToFixed(0); @@ -1007,30 +1012,16 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { m.matrix[2][1] = XDoubleToFixed(0); m.matrix[2][2] = XDoubleToFixed(1.0); - memset(&attr, 0, sizeof(attr)); - - XPutImage(handle->x11.display, px, handle->x11.gc, pixmap->x11.image, 0, 0, 0, 0, pixmap->common.width, pixmap->common.height); - - src = XRenderCreatePicture(handle->x11.display, px, format, 0, &attr); - dest = XRenderCreatePicture(handle->x11.display, pxsrc, format, 0, &attr); - - XRenderSetPictureTransform(handle->x11.display, src, &m); - XRenderComposite(handle->x11.display, PictOpSrc, src, 0, dest, 0, 0, 0, 0, 0, 0, rect->width, rect->height); - - XRenderFreePicture(handle->x11.display, src); - XRenderFreePicture(handle->x11.display, dest); + DO_XRENDER(px, pixmap->x11.image, PictStandardRGB24, pixmap->x11.depth); + DO_XRENDER(mask, pixmap->x11.mask, PictStandardA1, 1); XSetClipMask(handle->x11.display, handle->x11.gc, mask); XSetClipOrigin(handle->x11.display, handle->x11.gc, rect->x, rect->y); - XCopyArea(handle->x11.display, pxsrc, handle->x11.pixmap, handle->x11.gc, 0, 0, rect->width, rect->height, rect->x, rect->y); + XCopyArea(handle->x11.display, px, handle->x11.pixmap, handle->x11.gc, 0, 0, rect->width, rect->height, rect->x, rect->y); XSetClipMask(handle->x11.display, handle->x11.gc, None); - XDestroyImage(destmask); - - XFreeGC(handle->x11.display, maskgc); XFreePixmap(handle->x11.display, mask); XFreePixmap(handle->x11.display, px); - XFreePixmap(handle->x11.display, pxsrc); } else #endif if(pixmap->x11.image != NULL) { From 9c95757f8dbc418a06a3cc84d24ca683e3a9587e Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 23 Apr 2026 10:45:29 -0700 Subject: [PATCH 513/836] wayland: better system for destroyed events --- include/Mw/LowLevel/Wayland.h | 8 +- src/backend/wayland.c | 196 +++++++++++++++++++++++++++------- 2 files changed, 164 insertions(+), 40 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 42990a3df..39e671885 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -456,6 +456,7 @@ struct _MwLLWayland { struct zwp_relative_pointer_v1* relative_pointer; struct zwp_locked_pointer_v1* locked_pointer; MwBool pointer_constrained; + MwBool valid; #ifdef USE_DBUS MwLLDBusContext dbus; @@ -519,12 +520,11 @@ struct _MwLLWayland { struct _MwLLWaylandShmBuffer cursor; struct _MwLLWaylandShmBuffer* icon; - /* - Events mutex. Any time a keyboard/mouse event happens, we try to lock this for 100 milliseconds, then give up if we can't do it. This is used in conjunction with some code in the MwLLDestroyImpl to make sure that destroy is NEVER interferes with an ongoing event. - - IOI_XD: This sounds like a hilariously rare edge case, so it's almost funnier that this happened with 100% certainty for me and I spent day(s) trying to figure out what was happening. */ pthread_mutex_t eventsMutex; + int cancelEvent; + int numCallbacksRunning; + uint32_t last_time; MwBool moving; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index c2a5ebdcb..cfd6c5ec6 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -17,17 +17,37 @@ wayland_call_table_t wl_call_tbl; MwBool MwWaylandAlwaysRender = MwFALSE; -/* Standard procedure before most event callbacks in Wayland ("most" because the setup ones don't need this). Wait for the Mutex to be freed, if we're deadlocking for longer then a quarter of a second then do nothing with the event. */ +static pthread_mutex_t destroyedWidgetsTableMutex; +static MwLL* destroyedWidgetsTable; + +static MwBool is_destroyed(MwLL self) { + int i; + pthread_mutex_lock(&destroyedWidgetsTableMutex); + for(i = 0; i < arrlen(destroyedWidgetsTable); i++) { + if(self == destroyedWidgetsTable[i]) { + pthread_mutex_unlock(&destroyedWidgetsTableMutex); + return MwTRUE; + } + } + pthread_mutex_unlock(&destroyedWidgetsTableMutex); + return MwFALSE; +} +static void undestroy(MwLL self) { + int i; + pthread_mutex_lock(&destroyedWidgetsTableMutex); + for(i = 0; i < arrlen(destroyedWidgetsTable); i++) { + if(self == destroyedWidgetsTable[i]) { + arrdel(destroyedWidgetsTable, i); + break; + } + } + pthread_mutex_unlock(&destroyedWidgetsTableMutex); + return; +} +/* Standard procedure before event callbacks in Wayland */ #define WAYLAND_EVENT_OP_START(self) \ - do { \ - struct timespec t; \ - t.tv_sec = 0; \ - t.tv_nsec = 250; \ - if(pthread_mutex_timedlock(&self->wayland.eventsMutex, &t) != 0) { \ - /*printf("deadlock at line %d\n", __LINE__);*/ \ - return; \ - }; \ - } while(0); + if(is_destroyed(self)) return; \ + pthread_mutex_lock(&self->wayland.eventsMutex); /* Footer for WAYLAND_EVENT_OP_START */ #define WAYLAND_EVENT_OP_END(self) pthread_mutex_unlock(&self->wayland.eventsMutex); @@ -743,6 +763,7 @@ static void keyboard_key(void* data, int i; if(!self->wayland.xkb_keymap) { + WAYLAND_EVENT_OP_END(self); return; } @@ -757,6 +778,7 @@ static void keyboard_key(void* data, } syms_num = xkb_keymap_key_get_syms_by_level(self->wayland.xkb_keymap, keycode, layout, level, &syms_out); if(syms_out == NULL) { + WAYLAND_EVENT_OP_END(self); return; } @@ -1578,6 +1600,12 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { r->wayland.framebuffer.surface = wl_compositor_create_surface(compositor); + if(is_destroyed(parent) || is_destroyed(r)) { + printf("H\n"); + r->wayland.valid = MwFALSE; + return; + } + r->wayland.sublevel->subsurface = wl_subcompositor_get_subsurface(r->wayland.sublevel->subcompositor, r->wayland.framebuffer.surface, parent_surface); wl_subsurface_set_desync(r->wayland.sublevel->subsurface); @@ -1803,6 +1831,7 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh r->wayland.x = x; r->wayland.y = y; r->wayland.parent = parent; + r->wayland.valid = MwTRUE; if(ty == MwLL_WAYLAND_UNKNOWN) { if(parent == NULL) { @@ -1826,6 +1855,10 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh } } + if(!r->wayland.valid) { + return; + } + framebuffer_setup(&r->wayland); backbuffer_setup(&r->wayland); @@ -1869,6 +1902,10 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { memset(r, 0, sizeof(*r)); MwLLCreateCommon(r); + if(is_destroyed(r)) { + undestroy(r); + } + widget_setup(r, parent, x, y, width, height, MwLL_WAYLAND_UNKNOWN); #ifdef USE_DBUS @@ -1900,21 +1937,19 @@ static void MwLLDestroyImpl(MwLL handle) { wl_flush(handle); - if(pthread_mutex_timedlock(&handle->wayland.eventsMutex, &t) != 0) { - printf("WARNING: Couldn't call MwLLDestroyImpl due to deadlock.\n"); - return; + handle->wayland.cancelEvent = MwTRUE; + while(pthread_mutex_trylock(&handle->wayland.eventsMutex)) { + printf("h\n"); }; MwLLDestroyCommon(handle); - /* sleep long enough that any active attempts to wait for the mutex will have given up and we can safely unlock/destroy it */ tv.tv_sec = 0; tv.tv_usec = 1000; do { select_ret = select(1, NULL, NULL, NULL, &tv); } while((select_ret == -1) && (errno == EINTR)); - pthread_mutex_unlock(&handle->wayland.eventsMutex); pthread_mutex_destroy(&handle->wayland.eventsMutex); #ifdef USE_DBUS @@ -1923,25 +1958,29 @@ static void MwLLDestroyImpl(MwLL handle) { } #endif - buffer_destroy(&handle->wayland.cursor); - wl_region_destroy(handle->wayland.region); + if(handle->wayland.valid) { + buffer_destroy(&handle->wayland.cursor); + wl_region_destroy(handle->wayland.region); - if(handle->wayland.supports_zwp) { - zwp_primary_selection_source_v1_destroy(handle->wayland.clipboard_source.zwp); - } else { - wl_data_source_destroy(handle->wayland.clipboard_source.wl); - } - if(handle->wayland.icon != NULL) { - buffer_destroy(handle->wayland.icon); - wl_surface_destroy(handle->wayland.icon->surface); - } + if(handle->wayland.supports_zwp) { + zwp_primary_selection_source_v1_destroy(handle->wayland.clipboard_source.zwp); + } else { + wl_data_source_destroy(handle->wayland.clipboard_source.wl); + } + if(handle->wayland.icon != NULL) { + buffer_destroy(handle->wayland.icon); + wl_surface_destroy(handle->wayland.icon->surface); + } - if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { - destroy_toplevel(handle); - } else if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL) { - destroy_sublevel(handle); - } else if(handle->wayland.type == MwLL_WAYLAND_POPUP) { - destroy_popup(handle); + if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { + destroy_toplevel(handle); + } else if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL) { + destroy_sublevel(handle); + } else if(handle->wayland.type == MwLL_WAYLAND_POPUP) { + destroy_popup(handle); + } + wl_keyboard_destroy(handle->wayland.keyboard); + wl_pointer_destroy(handle->wayland.pointer); } for(i = 0; i < shlen(handle->wayland.wl_protocol_setup_map); i++) { @@ -1955,9 +1994,6 @@ static void MwLLDestroyImpl(MwLL handle) { shfree(handle->wayland.wl_protocol_map); shfree(handle->wayland.wl_protocol_setup_map); - wl_keyboard_destroy(handle->wayland.keyboard); - wl_pointer_destroy(handle->wayland.pointer); - wl_flush(handle); if(handle->wayland.parent != NULL) { @@ -1971,7 +2007,11 @@ static void MwLLDestroyImpl(MwLL handle) { arrfree(handle->wayland.children); - // free(handle); + free(handle); + + pthread_mutex_lock(&destroyedWidgetsTableMutex); + arrput(destroyedWidgetsTable, handle); + pthread_mutex_unlock(&destroyedWidgetsTableMutex); if(currentlyHeldWidget == handle) { currentlyHeldWidget = NULL; @@ -1979,6 +2019,13 @@ static void MwLLDestroyImpl(MwLL handle) { } static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h) { + if(!handle->wayland.valid) { + *x = 0; + *y = 0; + *w = 1; + *h = 1; + return; + } *x = handle->wayland.x; *y = handle->wayland.y; *w = handle->wayland.ww; @@ -1987,6 +2034,9 @@ static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsign static void recursive_render(MwLL handle) { int i; + if(!handle->wayland.valid) { + return; + } for(i = 0; i < arrlen(handle->wayland.children); i++) recursive_render(handle->wayland.children[i]); @@ -1994,6 +2044,9 @@ static void recursive_render(MwLL handle) { } static void MwLLSetXYImpl(MwLL handle, int x, int y) { + if(!handle->wayland.valid) { + return; + } region_invalidate(handle); handle->wayland.x = x; handle->wayland.y = y; @@ -2008,6 +2061,9 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { } static void MwLLSetWHImpl(MwLL handle, int w, int h) { + if(!handle->wayland.valid) { + return; + } region_invalidate(handle); /* Prevent an integer underflow when the w/h is too low */ @@ -2047,6 +2103,9 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { } static void MwLLBeginDrawImpl(MwLL handle) { + if(!handle->wayland.valid) { + return; + } cairo_save(handle->wayland.front_cairo); cairo_set_source_rgba(handle->wayland.front_cairo, 0, 0, 0, 0); cairo_set_operator(handle->wayland.front_cairo, CAIRO_OPERATOR_SOURCE); @@ -2155,6 +2214,9 @@ static void MwLLEndDrawImpl(MwLL handle) { static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { int i; + if(!handle->wayland.valid) { + return; + } clip(handle); @@ -2178,6 +2240,9 @@ static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLL static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { int i; + if(!handle->wayland.valid) { + return; + } clip(handle); @@ -2230,6 +2295,9 @@ static int MwLLPendingImpl(MwLL handle) { .events = POLLOUT, }; int pending = 0; + if(!handle->wayland.valid) { + return 0; + } handle->wayland.resizing = 0; @@ -2282,6 +2350,9 @@ static int MwLLPendingImpl(MwLL handle) { } static void MwLLNextEventImpl(MwLL handle) { + if(!handle->wayland.valid) { + return; + } if(!MwWaylandAlwaysRender) { if(handle->wayland.did_event_loop_early) { handle->wayland.did_event_loop_early = MwFALSE; @@ -2301,6 +2372,9 @@ static void MwLLNextEventImpl(MwLL handle) { } static void MwLLSetTitleImpl(MwLL handle, const char* title) { + if(!handle->wayland.valid) { + return; + } if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { xdg_toplevel_set_title(handle->wayland.toplevel->xdg_top_level, title); } @@ -2357,6 +2431,9 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { cairo_t* c; cairo_surface_t* cs; cairo_t* selected_cairo = handle->wayland.selected_cairo ? handle->wayland.selected_cairo : handle->wayland.front_cairo; + if(!handle->wayland.valid) { + return; + } cs = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, rect->width, rect->height); c = cairo_create(cs); @@ -2382,6 +2459,9 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { wl_surface_damage(handle->wayland.framebuffer.surface, 0, 0, handle->wayland.ww, handle->wayland.wh); } static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { + if(!handle->wayland.valid) { + return; + } if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { if(WAYLAND_GET_INTERFACE(handle->wayland, xdg_toplevel_icon_manager_v1) != NULL) { struct xdg_toplevel_icon_manager_v1* icon_manager = WAYLAND_GET_INTERFACE(handle->wayland, xdg_toplevel_icon_manager_v1)->context; @@ -2423,6 +2503,9 @@ static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { } static void MwLLForceRenderImpl(MwLL handle) { + if(!handle->wayland.valid) { + return; + } wl_surface_damage(handle->wayland.framebuffer.surface, 0, 0, handle->wayland.ww, handle->wayland.wh); handle->wayland.force_render = MwTRUE; @@ -2434,6 +2517,10 @@ static void MwLLForceRenderImpl(MwLL handle) { static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { int x, y, xs, ys; + if(!handle->wayland.valid) { + return; + } + if(handle->wayland.cursor.setup) { buffer_destroy(&handle->wayland.cursor); wl_surface_destroy(handle->wayland.cursor.surface); @@ -2489,6 +2576,9 @@ static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { static void MwLLDetachImpl(MwLL handle, MwPoint* point) { MwLL p = handle->wayland.parent; int x = 0, y = 0; + if(!handle->wayland.valid) { + return; + } while(p != NULL) { x += p->wayland.x; y += p->wayland.y; @@ -2505,6 +2595,9 @@ static void MwLLShowImpl(MwLL handle, int show) { if(!handle->wayland.configured) { return; } + if(!handle->wayland.valid) { + return; + } /* Some guy on a mailing list said that "abusing" wl_surface_attach for this purpose is bad? This is documented behavior so please I beg of you let me know if there's a compositor that actually has a problem with this. */ if(handle->wayland.framebuffer.surface) { wl_surface_attach(handle->wayland.framebuffer.surface, show ? handle->wayland.framebuffer.shm_buffer : NULL, 0, 0); @@ -2523,6 +2616,9 @@ static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { } static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) { + if(!handle->wayland.valid) { + return; + } if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { xdg_toplevel_set_min_size(handle->wayland.toplevel->xdg_top_level, minx, miny); xdg_toplevel_set_max_size(handle->wayland.toplevel->xdg_top_level, maxx, maxy); @@ -2531,6 +2627,9 @@ static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { (void)toggle; + if(!handle->wayland.valid) { + return; + } if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { if(WAYLAND_GET_INTERFACE(handle->wayland, zxdg_decoration_manager_v1) != NULL) { zxdg_decoration_manager_v1_context_t* dec = WAYLAND_GET_INTERFACE(handle->wayland, zxdg_decoration_manager_v1)->context; @@ -2551,6 +2650,9 @@ static void MwLLFocusImpl(MwLL handle) { static void MwLLGrabPointerImpl(MwLL handle, int toggle) { MwLL topmost_parent = handle; + if(!handle->wayland.valid) { + return; + } while(topmost_parent->wayland.parent) topmost_parent = topmost_parent->wayland.parent; if(handle->wayland.pointer_constraints && handle->wayland.relative_pointer_manager) { if(toggle) { @@ -2577,6 +2679,9 @@ static void MwLLGrabPointerImpl(MwLL handle, int toggle) { static void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_type) { int i; + if(!handle->wayland.valid) { + return; + } if(handle->wayland.clipboard_buffer != NULL) { free(handle->wayland.clipboard_buffer); @@ -2603,6 +2708,9 @@ static void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_ty static void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) { int i; + if(!handle->wayland.valid) { + return; + } if(clipboard_type == MwCLIPBOARD_PRIMARY) { if(handle->wayland.supports_zwp) { for(i = 0; i < arrlen(handle->wayland.clipboard_devices_zwp); i++) { @@ -2622,14 +2730,26 @@ static void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) { } static void MwLLMakeToolWindowImpl(MwLL handle) { + if(!handle->wayland.valid) { + return; + } + handle->wayland.type_to_be = MwLL_WAYLAND_POPUP; } static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { + if(!handle->wayland.valid) { + return; + } + *point = handle->wayland.cur_mouse_pos; } static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { + if(!handle->wayland.valid) { + return; + } + rect->x = 0; rect->y = 0; rect->width = handle->wayland.mw; @@ -2642,6 +2762,10 @@ static void MwLLBeginStateChangeImpl(MwLL handle) { } static void MwLLEndStateChangeImpl(MwLL handle) { + if(!handle->wayland.valid) { + return; + } + if(handle->wayland.detatching) { MwLL topmost_parent = handle->wayland.parent; From 21d07056d9d5fdf55f94d292a9a70ee9f4ef2ebb Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 23 Apr 2026 10:57:05 -0700 Subject: [PATCH 514/836] fix window disappearing on weston --- src/backend/wayland.c | 120 ++++++++++++++---------------------------- 1 file changed, 40 insertions(+), 80 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 7ff1c4481..8d8bbba77 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -44,9 +44,18 @@ static void undestroy(MwLL self) { pthread_mutex_unlock(&destroyedWidgetsTableMutex); return; } + +#define WIDGET_CHECK(handle) \ + if(!handle->wayland.valid) { \ + printf("[WARNING] Operation on invalid widget at line %d\n", __LINE__); \ + return; \ + } + /* Standard procedure before event callbacks in Wayland */ #define WAYLAND_EVENT_OP_START(self) \ - if(is_destroyed(self)) return; \ + if(is_destroyed(self)) { \ + return; \ + } \ pthread_mutex_lock(&self->wayland.eventsMutex); /* Footer for WAYLAND_EVENT_OP_START */ @@ -1600,12 +1609,6 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { r->wayland.framebuffer.surface = wl_compositor_create_surface(compositor); - if(is_destroyed(parent) || is_destroyed(r)) { - printf("H\n"); - r->wayland.valid = MwFALSE; - return; - } - r->wayland.sublevel->subsurface = wl_subcompositor_get_subsurface(r->wayland.sublevel->subcompositor, r->wayland.framebuffer.surface, parent_surface); wl_subsurface_set_desync(r->wayland.sublevel->subsurface); @@ -1843,7 +1846,12 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh r->wayland.x = x; r->wayland.y = y; r->wayland.parent = parent; - r->wayland.valid = MwTRUE; + if(is_destroyed(parent)) { + r->wayland.valid = MwFALSE; + return; + } else { + r->wayland.valid = MwTRUE; + } if(ty == MwLL_WAYLAND_UNKNOWN) { if(parent == NULL) { @@ -1867,9 +1875,7 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh } } - if(!r->wayland.valid) { - return; - } + WIDGET_CHECK(r); framebuffer_setup(&r->wayland); backbuffer_setup(&r->wayland); @@ -2046,9 +2052,7 @@ static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsign static void recursive_render(MwLL handle) { int i; - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); for(i = 0; i < arrlen(handle->wayland.children); i++) recursive_render(handle->wayland.children[i]); @@ -2056,9 +2060,7 @@ static void recursive_render(MwLL handle) { } static void MwLLSetXYImpl(MwLL handle, int x, int y) { - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); region_invalidate(handle); handle->wayland.x = x; handle->wayland.y = y; @@ -2073,9 +2075,7 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { } static void MwLLSetWHImpl(MwLL handle, int w, int h) { - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); region_invalidate(handle); /* Prevent an integer underflow when the w/h is too low */ @@ -2115,9 +2115,7 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { } static void MwLLBeginDrawImpl(MwLL handle) { - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); cairo_save(handle->wayland.front_cairo); cairo_set_source_rgba(handle->wayland.front_cairo, 0, 0, 0, 0); cairo_set_operator(handle->wayland.front_cairo, CAIRO_OPERATOR_SOURCE); @@ -2226,9 +2224,7 @@ static void MwLLEndDrawImpl(MwLL handle) { static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { int i; - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); clip(handle); @@ -2252,9 +2248,7 @@ static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLL static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { int i; - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); clip(handle); @@ -2362,9 +2356,7 @@ static int MwLLPendingImpl(MwLL handle) { } static void MwLLNextEventImpl(MwLL handle) { - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); if(!MwWaylandAlwaysRender) { if(handle->wayland.did_event_loop_early) { handle->wayland.did_event_loop_early = MwFALSE; @@ -2384,9 +2376,7 @@ static void MwLLNextEventImpl(MwLL handle) { } static void MwLLSetTitleImpl(MwLL handle, const char* title) { - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { xdg_toplevel_set_title(handle->wayland.toplevel->xdg_top_level, title); } @@ -2443,9 +2433,7 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { cairo_t* c; cairo_surface_t* cs; cairo_t* selected_cairo = handle->wayland.selected_cairo ? handle->wayland.selected_cairo : handle->wayland.front_cairo; - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); cs = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, rect->width, rect->height); c = cairo_create(cs); @@ -2471,9 +2459,7 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { wl_surface_damage(handle->wayland.framebuffer.surface, 0, 0, handle->wayland.ww, handle->wayland.wh); } static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { if(WAYLAND_GET_INTERFACE(handle->wayland, xdg_toplevel_icon_manager_v1) != NULL) { struct xdg_toplevel_icon_manager_v1* icon_manager = WAYLAND_GET_INTERFACE(handle->wayland, xdg_toplevel_icon_manager_v1)->context; @@ -2515,9 +2501,7 @@ static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { } static void MwLLForceRenderImpl(MwLL handle) { - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); wl_surface_damage(handle->wayland.framebuffer.surface, 0, 0, handle->wayland.ww, handle->wayland.wh); handle->wayland.force_render = MwTRUE; @@ -2529,9 +2513,7 @@ static void MwLLForceRenderImpl(MwLL handle) { static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { int x, y, xs, ys; - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); if(handle->wayland.cursor.setup) { buffer_destroy(&handle->wayland.cursor); @@ -2588,9 +2570,7 @@ static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { static void MwLLDetachImpl(MwLL handle, MwPoint* point) { MwLL p = handle->wayland.parent; int x = 0, y = 0; - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); while(p != NULL) { x += p->wayland.x; y += p->wayland.y; @@ -2607,9 +2587,7 @@ static void MwLLShowImpl(MwLL handle, int show) { if(!handle->wayland.configured) { return; } - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); /* Some guy on a mailing list said that "abusing" wl_surface_attach for this purpose is bad? This is documented behavior so please I beg of you let me know if there's a compositor that actually has a problem with this. */ if(handle->wayland.framebuffer.surface) { wl_surface_attach(handle->wayland.framebuffer.surface, show ? handle->wayland.framebuffer.shm_buffer : NULL, 0, 0); @@ -2628,9 +2606,7 @@ static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { } static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) { - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { xdg_toplevel_set_min_size(handle->wayland.toplevel->xdg_top_level, minx, miny); xdg_toplevel_set_max_size(handle->wayland.toplevel->xdg_top_level, maxx, maxy); @@ -2639,9 +2615,7 @@ static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { (void)toggle; - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { if(WAYLAND_GET_INTERFACE(handle->wayland, zxdg_decoration_manager_v1) != NULL) { zxdg_decoration_manager_v1_context_t* dec = WAYLAND_GET_INTERFACE(handle->wayland, zxdg_decoration_manager_v1)->context; @@ -2662,9 +2636,7 @@ static void MwLLFocusImpl(MwLL handle) { static void MwLLGrabPointerImpl(MwLL handle, int toggle) { MwLL topmost_parent = handle; - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); while(topmost_parent->wayland.parent) topmost_parent = topmost_parent->wayland.parent; if(handle->wayland.pointer_constraints && handle->wayland.relative_pointer_manager) { if(toggle) { @@ -2691,9 +2663,7 @@ static void MwLLGrabPointerImpl(MwLL handle, int toggle) { static void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_type) { int i; - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); if(handle->wayland.clipboard_buffer != NULL) { free(handle->wayland.clipboard_buffer); @@ -2720,9 +2690,7 @@ static void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_ty static void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) { int i; - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); if(clipboard_type == MwCLIPBOARD_PRIMARY) { if(handle->wayland.supports_zwp) { for(i = 0; i < arrlen(handle->wayland.clipboard_devices_zwp); i++) { @@ -2742,25 +2710,19 @@ static void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) { } static void MwLLMakeToolWindowImpl(MwLL handle) { - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); handle->wayland.type_to_be = MwLL_WAYLAND_POPUP; } static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); *point = handle->wayland.cur_mouse_pos; } static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); rect->x = 0; rect->y = 0; @@ -2774,9 +2736,7 @@ static void MwLLBeginStateChangeImpl(MwLL handle) { } static void MwLLEndStateChangeImpl(MwLL handle) { - if(!handle->wayland.valid) { - return; - } + WIDGET_CHECK(handle); if(handle->wayland.detatching) { MwLL topmost_parent = handle->wayland.parent; From 261622a2e0c9e77666c0784b1c3a5d25e0512da2 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 23 Apr 2026 11:04:47 -0700 Subject: [PATCH 515/836] h --- include/Mw/LowLevel/Wayland.h | 3 +-- src/backend/wayland.c | 21 ++++----------------- 2 files changed, 5 insertions(+), 19 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 39e671885..adfc70a62 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -507,8 +507,7 @@ struct _MwLLWayland { MwU32 mw, mh; /* Monitor width and height as advertised by wl_output.mode */ - MwLL parent; - MwLL* children; + MwLL parent; MwBool force_render; MwBool did_event_loop_early; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 8d8bbba77..ba1768c38 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -54,6 +54,7 @@ static void undestroy(MwLL self) { /* Standard procedure before event callbacks in Wayland */ #define WAYLAND_EVENT_OP_START(self) \ if(is_destroyed(self)) { \ + printf("[WARNING] Operation on invalid widget at line %d\n", __LINE__); \ return; \ } \ pthread_mutex_lock(&self->wayland.eventsMutex); @@ -1934,10 +1935,6 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { } #endif - if(parent != NULL) { - arrput(parent->wayland.children, r); - } - return r; } @@ -2014,17 +2011,6 @@ static void MwLLDestroyImpl(MwLL handle) { wl_flush(handle); - if(handle->wayland.parent != NULL) { - for(i = 0; i < arrlen(handle->wayland.parent->wayland.children); i++) { - if(handle->wayland.parent->wayland.children[i] == handle) { - arrdel(handle->wayland.parent->wayland.children, i); - break; - } - } - } - - arrfree(handle->wayland.children); - free(handle); pthread_mutex_lock(&destroyedWidgetsTableMutex); @@ -2054,7 +2040,7 @@ static void recursive_render(MwLL handle) { int i; WIDGET_CHECK(handle); - for(i = 0; i < arrlen(handle->wayland.children); i++) recursive_render(handle->wayland.children[i]); + for(i = 0; i < arrlen(((MwWidget)handle->common.user)->children); i++) recursive_render(((MwWidget)handle->common.user)->children[i]->lowlevel); MwLLForceRender(handle); } @@ -2301,7 +2287,8 @@ static int MwLLPendingImpl(MwLL handle) { .events = POLLOUT, }; int pending = 0; - if(!handle->wayland.valid) { + + if(is_destroyed(handle) || !handle->wayland.valid) { return 0; } From ae0791dbc3f5c3633f2f9a8ef37d1abae295545b Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 23 Apr 2026 11:28:38 -0700 Subject: [PATCH 516/836] don't call wl_pointer_set_cursor on pointer_enteR --- src/backend/wayland.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index ba1768c38..8404792e4 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -471,7 +471,7 @@ static void zwp_pointer_constraints_v1_interface_destroy(struct _MwLLWayland* wa (void)data; } -static struct wl_surface* curSurface; +static struct wl_surface* curSurface = NULL; /* `wl_pointer.enter` callback */ static void pointer_enter(void* data, struct wl_pointer* wl_pointer, MwU32 serial, @@ -486,8 +486,6 @@ static void pointer_enter(void* data, struct wl_pointer* wl_pointer, MwU32 seria self->wayland.pointer_serial = serial; - wl_pointer_set_cursor(wl_pointer, serial, self->wayland.cursor.surface, 0, 0); - WAYLAND_EVENT_OP_END(self); }; @@ -1259,8 +1257,7 @@ static void wl_shm_interface_destroy(struct _MwLLWayland* wayland, wayland_proto static void update_buffer(MwLL self, struct _MwLLWaylandShmBuffer* buffer) { memcpy(buffer->buf, buffer->buf_back, buffer->buf_size); // Yes this is needed every time, it's how we fix weston. - if(self->wayland.configured) - wl_surface_attach(buffer->surface, buffer->shm_buffer, 0, 0); + wl_surface_attach(buffer->surface, buffer->shm_buffer, 0, 0); wl_surface_commit(buffer->surface); } @@ -2550,7 +2547,7 @@ static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { /* If there's currently a pointer, set it up. (Otherwise, it'll be setup during the pointer enter event) */ if(handle->wayland.pointer != NULL) { - // wl_pointer_set_cursor(handle->wayland.pointer, handle->wayland.pointer_serial, handle->wayland.cursor.surface, 0, 0); + wl_pointer_set_cursor(handle->wayland.pointer, handle->wayland.pointer_serial, handle->wayland.cursor.surface, 0, 0); } } From 05e7d8377b2960ae39ee62e6e24ba99f5ff04d29 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 24 Apr 2026 03:52:17 +0900 Subject: [PATCH 517/836] improve menu --- src/widget/menu.c | 72 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 60 insertions(+), 12 deletions(-) diff --git a/src/widget/menu.c b/src/widget/menu.c index 3d39e7d03..5c7cf668b 100644 --- a/src/widget/menu.c +++ b/src/widget/menu.c @@ -57,7 +57,9 @@ static void destroy(MwWidget handle) { MwPoint p; \ MwRect r; \ int rx; \ -\ + int in_area; \ + +#define MENU_LOOP_INIT \ p.x = 5; \ p.y = (MwGetInteger(handle, MwNheight) - MwDefaultBorderWidth(handle)) / 2 + MwDefaultBorderWidth(handle); \ \ @@ -73,7 +75,6 @@ static void destroy(MwWidget handle) { int incr = m->sub[i]->name[0] == '?' ? 1 : 0; \ int tw = MwTextWidth(handle, NULL, m->sub[i]->name + incr); \ int th = MwTextHeight(handle, NULL, m->sub[i]->name + incr); \ - int in_area; \ \ if(incr) { \ p.x = rx -= tw; \ @@ -91,11 +92,22 @@ static void destroy(MwWidget handle) { p.x += tw + 20; \ } +#define NEW_SUBMENU \ + MwPoint p2; \ +\ + p2.x = p.x - 5; \ + p2.y = p.y + th / 2 + 5; \ +\ + m->sub[i]->wsub = MwCreateWidget(MwSubMenuClass, "submenu", handle, 0, 0, 0, 0); \ + MwSubMenuAppear(m->sub[i]->wsub, m->sub[i], &p2, 0); + static void draw(MwWidget handle) { MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); MwLLColor text = MwParseColor(handle, MwGetText(handle, MwNforeground)); MENU_LOOP_DECL; + MENU_LOOP_INIT; + MwDrawWidgetBack(handle, &r, base, 0, MwTRUE); BEGIN_MENU_LOOP; @@ -118,24 +130,18 @@ static void parent_resize(MwWidget handle) { static void mouse_down(MwWidget handle, void* ptr) { MENU_LOOP_DECL; + MENU_LOOP_INIT; + if(((MwMouse*)ptr)->button != MwMOUSE_LEFT) return; BEGIN_MENU_LOOP; if(in_area) { if(m->sub[i]->wsub == NULL && arrlen(m->sub[i]->sub) > 0) { - MwPoint p2; - - p2.x = p.x - 5; - p2.y = p.y + th / 2 + 5; - - m->sub[i]->wsub = MwCreateWidget(MwSubMenuClass, "submenu", handle, 0, 0, 0, 0); - MwSubMenuAppear(m->sub[i]->wsub, m->sub[i], &p2, 0); + NEW_SUBMENU; } else if(m->sub[i]->wsub != NULL && m->sub[i]->keep) { MwDestroyWidget(m->sub[i]->wsub); m->sub[i]->wsub = NULL; m->sub[i]->keep = 0; - } else if(arrlen(m->sub[i]->sub) == 0) { - MwDispatchUserHandler(handle, MwNmenuHandler, m->sub[i]); } } else if(m->sub[i]->keep && m->sub[i]->wsub != NULL) { MwDestroyWidget(m->sub[i]->wsub); @@ -147,14 +153,56 @@ static void mouse_down(MwWidget handle, void* ptr) { MwForceRender(handle); } +static void mouse_move(MwWidget handle) { + MENU_LOOP_DECL; + int matched = 0; + + MENU_LOOP_INIT; + + if(!handle->pressed) return; + + BEGIN_MENU_LOOP; + if(in_area && m->sub[i]->wsub == NULL) { + matched = 1; + } + END_MENU_LOOP; + + MENU_LOOP_INIT; + BEGIN_MENU_LOOP; + if(matched && m->sub[i]->wsub != NULL) { + MwDestroyWidget(m->sub[i]->wsub); + m->sub[i]->wsub = NULL; + m->sub[i]->keep = 0; + } + END_MENU_LOOP; + + MENU_LOOP_INIT; + BEGIN_MENU_LOOP; + if(matched && in_area) { + if(m->sub[i]->wsub == NULL && arrlen(m->sub[i]->sub) > 0) { + NEW_SUBMENU; + } + } + END_MENU_LOOP; + + if(matched) MwForceRender(handle); +} + static void mouse_up(MwWidget handle, void* ptr) { MENU_LOOP_DECL; + MENU_LOOP_INIT; + if(((MwMouse*)ptr)->button != MwMOUSE_LEFT) return; BEGIN_MENU_LOOP; if(in_area && m->sub[i]->wsub != NULL) { m->sub[i]->keep = 1; + } else if(in_area) { + if(arrlen(m->sub[i]->sub) == 0) { + MwDispatchUserHandler(handle, MwNmenuHandler, m->sub[i]); + printf("fired\n"); + } } else if(m->sub[i]->wsub != NULL) { MwDestroyWidget(m->sub[i]->wsub); m->sub[i]->wsub = NULL; @@ -195,7 +243,7 @@ MwClassRec MwMenuClassRec = { NULL, /* click */ parent_resize, /* parent_resize */ NULL, /* prop_change */ - NULL, /* mouse_move */ + mouse_move, /* mouse_move */ mouse_up, /* mouse_up */ mouse_down, /* mouse_down */ NULL, /* key */ From d9a6c7ee5f7981c7740a2b19c62ef392a3a5bd9b Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 24 Apr 2026 03:53:54 +0900 Subject: [PATCH 518/836] format --- src/widget/menu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widget/menu.c b/src/widget/menu.c index 5c7cf668b..c184ce458 100644 --- a/src/widget/menu.c +++ b/src/widget/menu.c @@ -57,7 +57,7 @@ static void destroy(MwWidget handle) { MwPoint p; \ MwRect r; \ int rx; \ - int in_area; \ + int in_area; #define MENU_LOOP_INIT \ p.x = 5; \ From 2a09a71659b139a04eff41fedf5f0749996d78fe Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 24 Apr 2026 04:06:24 +0900 Subject: [PATCH 519/836] oops --- src/widget/menu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widget/menu.c b/src/widget/menu.c index c184ce458..82072bd95 100644 --- a/src/widget/menu.c +++ b/src/widget/menu.c @@ -154,8 +154,8 @@ static void mouse_down(MwWidget handle, void* ptr) { } static void mouse_move(MwWidget handle) { - MENU_LOOP_DECL; int matched = 0; + MENU_LOOP_DECL; MENU_LOOP_INIT; From 201c5f84a5b89d201ad30eb7d4c498126b0dedd5 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 24 Apr 2026 04:24:07 +0900 Subject: [PATCH 520/836] add NULL as parent for MwReparent --- src/core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/core.c b/src/core.c index 1bb03a96e..1307e1476 100644 --- a/src/core.c +++ b/src/core.c @@ -1018,9 +1018,11 @@ void MwReparent(MwWidget handle, MwWidget new_parent) { } handle->parent = new_parent; - arrput(new_parent->children, handle); + if(new_parent != NULL) { + arrput(new_parent->children, handle); - MwDispatch(handle->parent, children_update); + MwDispatch(handle->parent, children_update); + } MwForceRender(handle); } From cb375fbcbf5ec80f6744a8c351e5eeb036f23099 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 23 Apr 2026 12:31:53 -0700 Subject: [PATCH 521/836] fix weston --- src/backend/wayland.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 8404792e4..fcfc30987 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -56,11 +56,10 @@ static void undestroy(MwLL self) { if(is_destroyed(self)) { \ printf("[WARNING] Operation on invalid widget at line %d\n", __LINE__); \ return; \ - } \ - pthread_mutex_lock(&self->wayland.eventsMutex); + } /* Footer for WAYLAND_EVENT_OP_START */ -#define WAYLAND_EVENT_OP_END(self) pthread_mutex_unlock(&self->wayland.eventsMutex); +#define WAYLAND_EVENT_OP_END(self) /* Setup the framebuffer with the saved width/height */ static void framebuffer_setup(struct _MwLLWayland* wayland); @@ -485,6 +484,7 @@ static void pointer_enter(void* data, struct wl_pointer* wl_pointer, MwU32 seria curSurface = surface; self->wayland.pointer_serial = serial; + wl_pointer_set_cursor(self->wayland.pointer, self->wayland.pointer_serial, self->wayland.cursor.surface, 0, 0); WAYLAND_EVENT_OP_END(self); }; @@ -1257,7 +1257,8 @@ static void wl_shm_interface_destroy(struct _MwLLWayland* wayland, wayland_proto static void update_buffer(MwLL self, struct _MwLLWaylandShmBuffer* buffer) { memcpy(buffer->buf, buffer->buf_back, buffer->buf_size); // Yes this is needed every time, it's how we fix weston. - wl_surface_attach(buffer->surface, buffer->shm_buffer, 0, 0); + if(self->wayland.configured) + wl_surface_attach(buffer->surface, buffer->shm_buffer, 0, 0); wl_surface_commit(buffer->surface); } @@ -1950,9 +1951,6 @@ static void MwLLDestroyImpl(MwLL handle) { wl_flush(handle); handle->wayland.cancelEvent = MwTRUE; - while(pthread_mutex_trylock(&handle->wayland.eventsMutex)) { - printf("h\n"); - }; MwLLDestroyCommon(handle); @@ -2499,6 +2497,10 @@ static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { WIDGET_CHECK(handle); + if(handle->wayland.parent) { + return; + } + if(handle->wayland.cursor.setup) { buffer_destroy(&handle->wayland.cursor); wl_surface_destroy(handle->wayland.cursor.surface); From 70c5d7782f63fa87966c9fe1dc797e9f4e06f993 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 23 Apr 2026 13:32:05 -0700 Subject: [PATCH 522/836] wayland now changes the cursor properly --- src/backend/wayland.c | 30 +++++++++++++++++++----------- src/widget/entry.c | 1 - 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index fcfc30987..13162a0b5 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -476,15 +476,20 @@ static struct wl_surface* curSurface = NULL; static void pointer_enter(void* data, struct wl_pointer* wl_pointer, MwU32 serial, struct wl_surface* surface, wl_fixed_t surface_x, wl_fixed_t surface_y) { - MwLL self = data; + MwLL self = data; + MwLL topmost_parent = self; + (void)surface_x; (void)surface_y; WAYLAND_EVENT_OP_START(self); + while(topmost_parent->wayland.parent) topmost_parent = topmost_parent->wayland.parent; + curSurface = surface; self->wayland.pointer_serial = serial; - wl_pointer_set_cursor(self->wayland.pointer, self->wayland.pointer_serial, self->wayland.cursor.surface, 0, 0); + + wl_pointer_set_cursor(self->wayland.pointer, self->wayland.pointer_serial, topmost_parent->wayland.cursor.surface, 0, 0); WAYLAND_EVENT_OP_END(self); }; @@ -576,6 +581,8 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time MwLL self = data; MwLL topmost_parent = self; MwMouse p; + MwBool inArea = MwFALSE; + (void)time; (void)wl_pointer; @@ -591,6 +598,16 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time MwLLDispatch(currentlyHeldWidget, down, &p); } + if(self->wayland.framebuffer.surface) { + inArea |= self->wayland.framebuffer.surface == curSurface; + } + + if(self->wayland.backbuffer.surface) { + inArea |= self->wayland.backbuffer.surface == curSurface; + } + if(inArea) { + wl_pointer_set_cursor(self->wayland.pointer, self->wayland.pointer_serial, self->wayland.cursor.surface, 0, 0); + } WAYLAND_EVENT_OP_END(self); }; @@ -2497,10 +2514,6 @@ static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { WIDGET_CHECK(handle); - if(handle->wayland.parent) { - return; - } - if(handle->wayland.cursor.setup) { buffer_destroy(&handle->wayland.cursor); wl_surface_destroy(handle->wayland.cursor.surface); @@ -2546,11 +2559,6 @@ static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { wl_surface_attach(handle->wayland.cursor.surface, handle->wayland.cursor.shm_buffer, 0, 0); wl_surface_commit(handle->wayland.cursor.surface); update_buffer(handle, &handle->wayland.cursor); - - /* If there's currently a pointer, set it up. (Otherwise, it'll be setup during the pointer enter event) */ - if(handle->wayland.pointer != NULL) { - wl_pointer_set_cursor(handle->wayland.pointer, handle->wayland.pointer_serial, handle->wayland.cursor.surface, 0, 0); - } } static void MwLLDetachImpl(MwLL handle, MwPoint* point) { diff --git a/src/widget/entry.c b/src/widget/entry.c index 2d4f12f00..eed193fbe 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -11,7 +11,6 @@ static int wcreate(MwWidget handle) { MwSetDefault(handle); MwLLSetCursor(handle->lowlevel, &MwCursorText, &MwCursorTextMask); - MwSetInteger(handle, MwNroundness, 5); return 0; } From 7cdd2bcc7979eec663b4b88dbba8865d8bc8b0cd Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 23 Apr 2026 14:02:33 -0700 Subject: [PATCH 523/836] fix memleaks under wayland --- include/Mw/LowLevel/Wayland.h | 7 +++++-- src/backend/wayland.c | 15 +++++++++------ tools/fuzzer.c | 25 +++++++++++-------------- 3 files changed, 25 insertions(+), 22 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index adfc70a62..dbf9b7459 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -60,6 +60,7 @@ typedef struct wayland_call_table { struct wl_display* (*wl_display_connect)(const char* name); uint32_t (*wl_proxy_get_version)(struct wl_proxy* proxy); struct wl_display* (*wl_display_connect_to_fd)(int fd); + int (*wl_display_get_error)(struct wl_display* display); struct xkb_context* (*xkb_context_new)(enum xkb_context_flags flags); void (*xkb_context_unref)(struct xkb_context* context); @@ -176,6 +177,7 @@ MwInline int wayland_load_funcs() { WAYLAND_FUNC(wl_display_connect) WAYLAND_FUNC(wl_proxy_get_version) WAYLAND_FUNC(wl_display_connect_to_fd) + WAYLAND_FUNC(wl_display_get_error) #undef WAYLAND_FUNC @@ -259,6 +261,7 @@ MwInline int wayland_load_funcs() { #define wl_display_connect wl_call_tbl.wl_display_connect #define wl_proxy_get_version wl_call_tbl.wl_proxy_get_version #define wl_display_connect_to_fd wl_call_tbl.wl_display_connect_to_fd +#define wl_display_get_error wl_call_tbl.wl_display_get_error #define xkb_state_unref wl_call_tbl.xkb_state_unref #define xkb_context_new wl_call_tbl.xkb_context_new @@ -423,13 +426,13 @@ struct _MwLLWayland { /* Map of Wayland interfaces to their relevant setup functions. */ struct { - char key[255]; + char* key; wayland_protocol_callback_table_t* value; }* wl_protocol_setup_map; /* Map of Wayland interfaces to any information we keep about them once we've registered them. */ struct { - char key[255]; + char* key; wayland_protocol_t* value; }* wl_protocol_map; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 13162a0b5..c88f49034 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -91,9 +91,7 @@ static void new_protocol(void* data, struct wl_registry* registry, wayland_protocol_callback_table_t* cb = shget(self->wayland.wl_protocol_setup_map, interface); if(cb != NULL) { - char* inter = malloc(strlen(interface) + 1); - strcpy(inter, interface); - shput(self->wayland.wl_protocol_map, inter, cb->setup(name, data)); + shput(self->wayland.wl_protocol_map, interface, cb->setup(name, data)); /* we don't care for adding this protocol, we just use it to know if the compositor will let us have transparent surfaces */ } else if(strcmp(interface, "wp_alpha_modifier_v1") == 0) { self->common.supports_transparency = MwTRUE; @@ -1174,7 +1172,7 @@ static int event_loop(MwLL handle) { static void hang_until_configured(MwLL handle) { while(!handle->wayland.configured) { if(wl_display_roundtrip(handle->wayland.display) == -1) { - printf("roundtrip failed\n"); + printf("roundtrip failed: %d\n", wl_display_get_error(handle->wayland.display)); raise(SIGTRAP); return; } @@ -1334,6 +1332,8 @@ static void buffer_destroy(struct _MwLLWaylandShmBuffer* buffer) { if(!buffer->setup) { return; } + if(buffer->buf) munmap(buffer->buf, buffer->buf_size); + if(buffer->buf_back) munmap(buffer->buf_back, buffer->buf_size); if(buffer->shm_buffer) wl_buffer_destroy(buffer->shm_buffer); if(buffer->shm_buffer_back) wl_buffer_destroy(buffer->shm_buffer_back); if(buffer->shm_pool) wl_shm_pool_destroy(buffer->shm_pool); @@ -1465,6 +1465,9 @@ static void setup_callbacks(struct _MwLLWayland* wayland) { wayland->wl_protocol_setup_map = NULL; wayland->wl_protocol_map = NULL; + sh_new_arena(wayland->wl_protocol_map); + sh_new_arena(wayland->wl_protocol_setup_map); + WL_INTERFACE(wl_shm); WL_INTERFACE(wl_compositor); WL_INTERFACE(wl_seat); @@ -1618,7 +1621,7 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { wl_registry_add_listener(r->wayland.registry, &r->wayland.registry_listener, r); if(wl_display_roundtrip(r->wayland.display) == -1) { - printf("roundtrip failed\n"); + printf("roundtrip failed: %d\n", wl_display_get_error(r->wayland.display)); raise(SIGTRAP); return; } @@ -1705,7 +1708,7 @@ static void setup_popup(MwLL r, int x, int y, MwLL parent) { r->wayland.registry = wl_display_get_registry(r->wayland.display); wl_registry_add_listener(r->wayland.registry, &r->wayland.registry_listener, r); if(wl_display_roundtrip(r->wayland.display) == -1) { - printf("roundtrip failed\n"); + printf("roundtrip failed: %d\n", wl_display_get_error(r->wayland.display)); raise(SIGTRAP); return; } diff --git a/tools/fuzzer.c b/tools/fuzzer.c index 5b4224e93..991d929ad 100644 --- a/tools/fuzzer.c +++ b/tools/fuzzer.c @@ -1,6 +1,6 @@ #include -#define WIDGET_AMOUNT 1 +#define WIDGET_AMOUNT 16 int main() { MwWidget window, widget; @@ -9,7 +9,7 @@ int main() { window = MwCreateWidget(MwWindowClass, "window", NULL, 0, 0, 400, 400); - while(true) { + while(MwPending(window)) { int r = rand() % WIDGET_AMOUNT; MwClass cls; switch(r) { @@ -46,38 +46,35 @@ int main() { case 10: cls = MwNumberEntryClass; break; - case 12: + case 11: cls = MwProgressBarClass; break; - case 13: + case 12: cls = MwRadioBoxClass; break; - case 14: + case 13: cls = MwScrollBarClass; break; - case 15: + case 14: cls = MwSeparatorClass; break; - // case 16: - // cls = MwSubMenuClass; - // break; - case 17: + + case 15: cls = MwTreeViewClass; break; - case 18: + case 16: cls = MwViewportClass; break; default: cls = NULL; break; } + printf("%d\n", r); if(cls) { widget = MwCreateWidget(cls, "Cls", window, 0, 0, 100, 100); } - if(MwPending(window)) { - MwStep(window); - } + MwStep(window); if(cls) { MwDestroyWidget(widget); } From 931cff0f6dd1f0a776b943811286d3b6c0f74713 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 23 Apr 2026 14:39:38 -0700 Subject: [PATCH 524/836] wayland: only recreate buffers on SetWH when Pending rolls around --- include/Mw/LowLevel/Wayland.h | 1 + src/backend/wayland.c | 35 ++++++++++++++++++++++++----------- src/widget/listbox.c | 6 +++--- 3 files changed, 28 insertions(+), 14 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index dbf9b7459..d06119d83 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -507,6 +507,7 @@ struct _MwLLWayland { MwPoint cur_mouse_pos; /* Currently known mouse position */ int resizing; + int setting_wh; MwU32 mw, mh; /* Monitor width and height as advertised by wl_output.mode */ diff --git a/src/backend/wayland.c b/src/backend/wayland.c index c88f49034..6065d5f94 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -2075,19 +2075,9 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { MwLLDispatch(handle, draw, NULL); } -static void MwLLSetWHImpl(MwLL handle, int w, int h) { - WIDGET_CHECK(handle); +static void actually_set_wh(MwLL handle) { region_invalidate(handle); - /* Prevent an integer underflow when the w/h is too low */ - if((w < 2 || h < 2)) { - handle->wayland.ww = 2; - handle->wayland.wh = 2; - } else { - handle->wayland.ww = w; - handle->wayland.wh = h; - } - if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL && handle->wayland.configured) { xdg_surface_set_window_geometry(handle->wayland.toplevel->xdg_surface, 0, 0, handle->wayland.ww, handle->wayland.wh); } @@ -2112,6 +2102,24 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { backbuffer_destroy(&handle->wayland); backbuffer_setup(&handle->wayland); MwLLDispatch(handle, draw, NULL); +} + +static void MwLLSetWHImpl(MwLL handle, int w, int h) { + WIDGET_CHECK(handle); + + /* Prevent an integer underflow when the w/h is too low */ + if((w < 2 || h < 2)) { + handle->wayland.ww = 2; + handle->wayland.wh = 2; + } else { + handle->wayland.ww = w; + handle->wayland.wh = h; + } + + if(!handle->wayland.setting_wh) { + handle->wayland.setting_wh = 1; + } + handle->wayland.events_pending = 1; } @@ -2309,6 +2317,11 @@ static int MwLLPendingImpl(MwLL handle) { handle->wayland.resizing = 0; + if(handle->wayland.setting_wh) { + actually_set_wh(handle); + handle->wayland.setting_wh = 0; + } + #ifdef USE_DBUS if(wl_call_tbl.has_dbus) { if(handle->wayland.dark_theme_detection) { diff --git a/src/widget/listbox.c b/src/widget/listbox.c index fbfb51475..78114c613 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -410,8 +410,8 @@ static void redrawIfNeeded(MwWidget handle, int row) { static int mwListBoxSetImpl(MwWidget handle, int row, int col, const char* text) { MwListBox lb = handle->internal; MwListBoxEntry entry; - char* t = text == NULL ? NULL : MwStringDuplicate(text); - int new = 0; + char* t = text == NULL ? NULL : MwStringDuplicate(text); + int new = 0; if(row == -1) row = arrlen(lb->list); entry.name = NULL; @@ -439,7 +439,7 @@ static int mwListBoxSetImpl(MwWidget handle, int row, int col, const char* text) static void mwListBoxSetIconImpl(MwWidget handle, int index, MwLLPixmap icon) { MwListBox lb = handle->internal; MwListBoxEntry entry; - int new = 0; + int new = 0; if(index == -1) index = arrlen(lb->list); entry.name = NULL; From 4d6d459920d52ce0d86d96b042f69879b689b51b Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 23 Apr 2026 14:47:51 -0700 Subject: [PATCH 525/836] wayland: fix warnings --- src/backend/wayland.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 6065d5f94..a09d372fd 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -47,14 +47,14 @@ static void undestroy(MwLL self) { #define WIDGET_CHECK(handle) \ if(!handle->wayland.valid) { \ - printf("[WARNING] Operation on invalid widget at line %d\n", __LINE__); \ + /*printf("[WARNING] Operation on invalid widget at line %d\n", __LINE__);*/ \ return; \ } /* Standard procedure before event callbacks in Wayland */ #define WAYLAND_EVENT_OP_START(self) \ if(is_destroyed(self)) { \ - printf("[WARNING] Operation on invalid widget at line %d\n", __LINE__); \ + /*printf("[WARNING] Operation on invalid widget at line %d\n", __LINE__);*/ \ return; \ } @@ -479,6 +479,7 @@ static void pointer_enter(void* data, struct wl_pointer* wl_pointer, MwU32 seria (void)surface_x; (void)surface_y; + (void)wl_pointer; WAYLAND_EVENT_OP_START(self); while(topmost_parent->wayland.parent) topmost_parent = topmost_parent->wayland.parent; @@ -1957,13 +1958,9 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { } static void MwLLDestroyImpl(MwLL handle) { - int i; - struct timeval tv; - struct timespec t = { - .tv_sec = 0, - .tv_nsec = 0, - }; - int select_ret; + int i; + struct timeval tv; + int select_ret; event_loop(handle); // wl_display_cancel_read(handle->wayland.display); From 47c2a74d7447a2530e91de36d49cf7371a4f4108 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 23 Apr 2026 14:50:11 -0700 Subject: [PATCH 526/836] combobox should close when the parent window is resized --- src/widget/combobox.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/widget/combobox.c b/src/widget/combobox.c index dd037e945..d650dadac 100644 --- a/src/widget/combobox.c +++ b/src/widget/combobox.c @@ -183,12 +183,19 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v } } +static void parent_resize(MwWidget handle) { + MwComboBox cb = handle->internal; + if(cb->opened) { + click(handle); + } +} + MwClassRec MwComboBoxClassRec = { wcreate, /* create */ destroy, /* destroy */ draw, /* draw */ click, /* click */ - NULL, /* parent_resize */ + parent_resize, /* parent_resize */ prop_change, /* prop_change */ NULL, /* mouse_move */ MwForceRender2, /* mouse_up */ From 1c26efcc9154aa26d832d96374ac26f04be2f103 Mon Sep 17 00:00:00 2001 From: Nishi Date: Fri, 24 Apr 2026 09:09:37 +0900 Subject: [PATCH 527/836] idk --- src/backend/wayland.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index a09d372fd..cc74677b1 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -159,6 +159,15 @@ static void recursive_dispatch_move(MwLL handle, MwMouse* p) { } }; +static void recursive_render(MwLL handle) { + int i; + WIDGET_CHECK(handle); + + for(i = 0; i < arrlen(((MwWidget)handle->common.user)->children); i++) recursive_render(((MwWidget)handle->common.user)->children[i]->lowlevel); + + MwLLForceRender(handle); +} + static void wl_offer(void* data, struct wl_data_offer* wl_data_offer, const char* mime_type) { @@ -2048,15 +2057,6 @@ static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsign *h = handle->wayland.wh; } -static void recursive_render(MwLL handle) { - int i; - WIDGET_CHECK(handle); - - for(i = 0; i < arrlen(((MwWidget)handle->common.user)->children); i++) recursive_render(((MwWidget)handle->common.user)->children[i]->lowlevel); - - MwLLForceRender(handle); -} - static void MwLLSetXYImpl(MwLL handle, int x, int y) { WIDGET_CHECK(handle); region_invalidate(handle); @@ -2794,10 +2794,7 @@ static void MwLLEndStateChangeImpl(MwLL handle) { } } - MwLLForceRender(handle); - if(handle->wayland.parent != NULL) { - MwLLForceRender(handle->wayland.parent); - } + recursive_render(handle); handle->wayland.events_pending = 1; From 4536b30fbcf1074c84bd9990fee7bdfabca6c154 Mon Sep 17 00:00:00 2001 From: Nishi Date: Fri, 24 Apr 2026 12:53:27 +0900 Subject: [PATCH 528/836] fix combobox issue --- include/Mw/LowLevel/Wayland.h | 2 ++ src/backend/wayland.c | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index d06119d83..0a3a7478b 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -424,6 +424,8 @@ struct _MwLLWayland { MwBool did_initial_resize; + MwBool is_toplevel; + /* Map of Wayland interfaces to their relevant setup functions. */ struct { char* key; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index cc74677b1..90777abd5 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1787,7 +1787,7 @@ static void clip(MwLL handle) { arrput(ws, handle); while(toplevel) { arrput(ws, toplevel); - if(!toplevel->wayland.parent) { + if(!toplevel->wayland.parent || toplevel->wayland.is_toplevel) { break; } toplevel = toplevel->wayland.parent; @@ -1841,7 +1841,7 @@ static void clip(MwLL handle) { region_setup(handle); cairo_reset_clip(handle->wayland.front_cairo); - if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL) { + if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL && !handle->wayland.is_toplevel) { cairo_rectangle(handle->wayland.front_cairo, cx - x, cy - y, mx - cx, my - cy); cairo_clip(handle->wayland.front_cairo); } @@ -1953,6 +1953,8 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { undestroy(r); } + r->wayland.is_toplevel = parent == NULL; + widget_setup(r, parent, x, y, width, height, MwLL_WAYLAND_UNKNOWN); #ifdef USE_DBUS @@ -2514,6 +2516,7 @@ static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { static void MwLLForceRenderImpl(MwLL handle) { WIDGET_CHECK(handle); + if(handle->wayland.force_render) return; wl_surface_damage(handle->wayland.framebuffer.surface, 0, 0, handle->wayland.ww, handle->wayland.wh); handle->wayland.force_render = MwTRUE; @@ -2769,6 +2772,8 @@ static void MwLLEndStateChangeImpl(MwLL handle) { widget_setup(handle, handle->wayland.parent, handle->wayland.detach_point.x, handle->wayland.detach_point.y, handle->wayland.ww, handle->wayland.wh, handle->wayland.type_to_be); + handle->wayland.is_toplevel = MwTRUE; + if(!handle->wayland.parent) handle->wayland.dark_theme_detection = MwTRUE; From 833947c1ec99dc3ef015ab6e720a78dab59708b9 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 26 Apr 2026 23:08:52 +0900 Subject: [PATCH 529/836] introduce widget->user --- include/Mw/Core.h | 14 ++++++++++++++ include/Mw/TypeDefs.h | 1 + src/core.c | 9 +++++++++ 3 files changed, 24 insertions(+) diff --git a/include/Mw/Core.h b/include/Mw/Core.h index 2562e9be7..bf1c6f059 100644 --- a/include/Mw/Core.h +++ b/include/Mw/Core.h @@ -361,6 +361,20 @@ MWDECL int MWAPI MwGetCoordinateType(MwWidget handle); */ MWDECL void MWAPI MwGetClipboard(MwWidget handle, int clipboard_type); +/*! + * @brief Set user pointer. + * @param handle Widget + * @param user User pointer + */ +MWDECL void MWAPI MwSetUser(MwWidget handle, void* user); + +/*! + * @brief Get user pointer. + * @param handle Widget + * @return User pointer + */ +MWDECL void* MWAPI MwGetUser(MwWidget handle); + #ifdef _MILSKO MWDECL void MwForceRender_Internal(MwWidget handle); MWDECL void MwForceRender2_Internal(MwWidget handle, void* ptr); diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index f205de59d..c3b86e08d 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -90,6 +90,7 @@ struct _MwWidget { void* internal; void* opaque; + void* user; void (*draw_inject)(MwWidget handle); void (*destroy_inject)(MwWidget handle); diff --git a/src/core.c b/src/core.c index 1307e1476..c07e24a56 100644 --- a/src/core.c +++ b/src/core.c @@ -211,6 +211,7 @@ static MwWidget MwCreateWidget_Internal(MwClass widget_class, const char* name, h->internal = NULL; h->opaque = NULL; + h->user = NULL; h->top_step = 0; h->draw_queue = NULL; @@ -1066,3 +1067,11 @@ int MwGetCoordinateType(MwWidget handle) { void MwGetClipboard(MwWidget handle, int clipboard_type) { MwLLGetClipboard(handle->lowlevel, clipboard_type); } + +void MwSetUser(MwWidget handle, void* user){ + handle->user = user; +} + +void* MwGetUser(MwWidget handle){ + return handle->user; +} From ca703f24d511ae4097b5d9805b5c261e1e3203fb Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 27 Apr 2026 03:14:12 +0900 Subject: [PATCH 530/836] measure line properly --- src/core.c | 6 ++--- src/text/text.c | 54 ++++++++++++++++++++++++++++++++++++-------- src/widget/listbox.c | 12 ++++++---- 3 files changed, 54 insertions(+), 18 deletions(-) diff --git a/src/core.c b/src/core.c index c07e24a56..e3a58fe90 100644 --- a/src/core.c +++ b/src/core.c @@ -211,7 +211,7 @@ static MwWidget MwCreateWidget_Internal(MwClass widget_class, const char* name, h->internal = NULL; h->opaque = NULL; - h->user = NULL; + h->user = NULL; h->top_step = 0; h->draw_queue = NULL; @@ -1068,10 +1068,10 @@ void MwGetClipboard(MwWidget handle, int clipboard_type) { MwLLGetClipboard(handle->lowlevel, clipboard_type); } -void MwSetUser(MwWidget handle, void* user){ +void MwSetUser(MwWidget handle, void* user) { handle->user = user; } -void* MwGetUser(MwWidget handle){ +void* MwGetUser(MwWidget handle) { return handle->user; } diff --git a/src/text/text.c b/src/text/text.c index fec0bb449..eac182e72 100644 --- a/src/text/text.c +++ b/src/text/text.c @@ -71,19 +71,53 @@ void MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, } int MwTextWidth(MwWidget handle, MwFLFont ttf, const char* text) { - /* TODO: check newline */ -#ifdef TTF - int st; - - if(ttf <= MwFLBuildFont(0xff)) ttf = assume_ttf(handle, ttf); - - if(MwFLTextWidth) - if(!MwGetInteger(handle, MwNbitmapFont) && ttf != NULL && (st = MwFLTextWidth(ttf, text)) != -1) return st; -#else + int len = 0; + int st; + int cp; + char* input = (char*)text; + char* last = input; +#ifndef TTF (void)handle; (void)ttf; #endif - return MwUTF8Length(text) * FontWidth; + +#ifdef TTF + if(ttf <= MwFLBuildFont(0xff)) ttf = assume_ttf(handle, ttf); +#endif + + while(*input != 0) { + input += MwUTF8ToUTF32(input, &cp); + + if(*input == 0 || cp == '\n') { + char* line = malloc(input - last + 1); + int i; + + memcpy(line, last, input - last); + + line[input - last] = 0; + + for(i = 0; line[i] != 0; i++) { + if(line[i] == '\r' || line[i] == '\n') { + line[i] = 0; + break; + } + } + +#ifdef TTF + if(MwFLTextWidth && !MwGetInteger(handle, MwNbitmapFont) && ttf != NULL && (st = MwFLTextWidth(ttf, line)) != -1) { + } else +#endif + st = MwUTF8Length(line) * FontWidth; + + if(st > len) len = st; + + free(line); + + last = input + 1; + } + } + + return len; } int MwTextHeight(MwWidget handle, MwFLFont ttf, const char* text) { diff --git a/src/widget/listbox.c b/src/widget/listbox.c index 78114c613..e9865d0b6 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -193,14 +193,13 @@ static void frame_draw(MwWidget handle) { char* str; int l = (j == 0 ? MwGetInteger(handle->parent, MwNleftPadding) : 0); MwPoint p2 = p; - p2.y += (MwTextHeight(handle, Font, "M") + Padding) / 2; if(t == NULL) t = ""; str = MwStringDuplicate(t); if(MwUTF8Length(str) > (get_col_width(lb, j) - l) / MwTextWidth(handle, Font, "M")) { - int ind = (get_col_width(lb, j) - l) / MwTextWidth(handle, Font, "M"); + int ind = (get_col_width(lb, j) - l) / MwTextWidth(handle, Font, "M") - 3; int seek = 0; int l = 0; @@ -219,18 +218,21 @@ static void frame_draw(MwWidget handle) { if(j == (arrlen(lb->list[i].name) - 1)) p.x -= MwDefaultBorderWidth(handle); if(arrlen(lb->alignment) <= j || lb->alignment[j] == MwALIGNMENT_BEGINNING) { p.x += 4; + p2.x = p.x; MwDrawText(handle, Font, &p2, str, MwALIGNMENT_BEGINNING, selected ? base2 : text2); p.x -= 4; p.x += get_col_width(lb, j); } else if(lb->alignment[j] == MwALIGNMENT_CENTER) { p.x += (get_col_width(lb, j) - l) / 2; + p2.x = p.x; MwDrawText(handle, Font, &p2, str, MwALIGNMENT_CENTER, selected ? base2 : text2); p.x += (get_col_width(lb, j) - l) / 2; p.x += l; } else if(lb->alignment[j] == MwALIGNMENT_END) { p.x += get_col_width(lb, j); p.x -= 4; + p2.x = p.x; MwDrawText(handle, Font, &p2, str, MwALIGNMENT_END, selected ? base2 : text2); p.x += 4; } @@ -410,8 +412,8 @@ static void redrawIfNeeded(MwWidget handle, int row) { static int mwListBoxSetImpl(MwWidget handle, int row, int col, const char* text) { MwListBox lb = handle->internal; MwListBoxEntry entry; - char* t = text == NULL ? NULL : MwStringDuplicate(text); - int new = 0; + char* t = text == NULL ? NULL : MwStringDuplicate(text); + int new = 0; if(row == -1) row = arrlen(lb->list); entry.name = NULL; @@ -439,7 +441,7 @@ static int mwListBoxSetImpl(MwWidget handle, int row, int col, const char* text) static void mwListBoxSetIconImpl(MwWidget handle, int index, MwLLPixmap icon) { MwListBox lb = handle->internal; MwListBoxEntry entry; - int new = 0; + int new = 0; if(index == -1) index = arrlen(lb->list); entry.name = NULL; From 986ffdccc1b5c7a888628156e6c69e9a80638bda Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 27 Apr 2026 03:31:18 +0900 Subject: [PATCH 531/836] fix cursor position --- src/widget/entry.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widget/entry.c b/src/widget/entry.c index eed193fbe..6164af673 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -72,7 +72,7 @@ static void draw(MwWidget handle) { show[i] = 0; currc.x = p.x + MwTextWidth(handle, font, show); - currc.y = (r.height - h) / 2; + currc.y = (r.height - h) / 2 + MwDefaultBorderWidth(handle); currc.width = 1; currc.height = h; MwDrawRect(handle, &currc, text); From 190e4353e47d21421c67c7cffee887bc6c109497 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 27 Apr 2026 03:39:02 +0900 Subject: [PATCH 532/836] fix ft2 rendering --- src/text/ft2.c | 19 ++++++------------- src/text/stbtt.c | 15 ++++----------- 2 files changed, 10 insertions(+), 24 deletions(-) diff --git a/src/text/ft2.c b/src/text/ft2.c index 32e658775..3634656b1 100644 --- a/src/text/ft2.c +++ b/src/text/ft2.c @@ -81,7 +81,7 @@ static int ft2_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const c } } - x += (ttf->face->glyph->advance.x >> 6) + (ttf->face->glyph->metrics.horiBearingX >> 6); + x += (ttf->face->glyph->advance.x >> 6); old_text = text; text += MwUTF8ToUTF32(text, &c2); @@ -109,7 +109,7 @@ static int ft2_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const c } static int ft2_MwTextWidth(MwFLFont ttf, const char* text) { - int tw = 0, mtw = 0; + int tw = 0; while(text[0] != 0) { int c, c2; @@ -117,29 +117,22 @@ static int ft2_MwTextWidth(MwFLFont ttf, const char* text) { const char* old_text; text += MwUTF8ToUTF32(text, &c); - if(c == '\n') { - tw = 0; - continue; - } ft_table.FT_Load_Char(ttf->face, c, FT_LOAD_DEFAULT); - tw += (ttf->face->glyph->advance.x >> 6) + (ttf->face->glyph->metrics.horiBearingX >> 6); + tw += (ttf->face->glyph->advance.x >> 6); old_text = text; text += MwUTF8ToUTF32(text, &c2); - if(c2 != '\n') { - ft_table.FT_Get_Kerning(ttf->face, c, c2, FT_KERNING_DEFAULT, &vec); + ft_table.FT_Get_Kerning(ttf->face, c, c2, FT_KERNING_DEFAULT, &vec); - tw += vec.x >> 6; - } + tw += vec.x >> 6; text = old_text; - if(tw > mtw) mtw = tw; } - return mtw + 1; + return tw + 1; } static int ft2_MwTextHeight(MwFLFont ttf, int count) { diff --git a/src/text/stbtt.c b/src/text/stbtt.c index a84190769..ace01903f 100644 --- a/src/text/stbtt.c +++ b/src/text/stbtt.c @@ -95,7 +95,7 @@ static int stbtt_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const static int stbtt_MwTextWidth(MwFLFont ttf, const char* text) { int ax, lsb; - int tw = 0, mtw = 0; + int tw = 0; while(text[0] != 0) { int kern; @@ -103,10 +103,6 @@ static int stbtt_MwTextWidth(MwFLFont ttf, const char* text) { const char* old_text; text += MwUTF8ToUTF32(text, &c); - if(c == '\n') { - tw = 0; - continue; - } stbtt_GetCodepointHMetrics(&ttf->font, c, &ax, &lsb); @@ -115,17 +111,14 @@ static int stbtt_MwTextWidth(MwFLFont ttf, const char* text) { old_text = text; text += MwUTF8ToUTF32(text, &c2); - if(c2 != '\n') { - kern = stbtt_GetCodepointKernAdvance(&ttf->font, c, c2); + kern = stbtt_GetCodepointKernAdvance(&ttf->font, c, c2); - tw += ceil(kern * ttf->scale); - } + tw += ceil(kern * ttf->scale); text = old_text; - if(tw > mtw) mtw = tw; } - return mtw + 1; + return tw + 1; } static int stbtt_MwTextHeight(MwFLFont ttf, int count) { From 2cd11d018923271871fe2346c79783bf3d9f281f Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 27 Apr 2026 03:40:09 +0900 Subject: [PATCH 533/836] stuff --- src/text/ft2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/text/ft2.c b/src/text/ft2.c index 3634656b1..90a0de8c5 100644 --- a/src/text/ft2.c +++ b/src/text/ft2.c @@ -66,7 +66,7 @@ static int ft2_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const c for(cy = 0; cy < bmp->rows; cy++) { for(cx = 0; cx < bmp->width; cx++) { - int ox = x + (ttf->face->glyph->metrics.horiBearingX / 64) + cx + ttf->face->glyph->bitmap_left; + int ox = x + (ttf->face->glyph->metrics.horiBearingX >> 6) + cx + ttf->face->glyph->bitmap_left; int oy = y + (ttf->face->height * ttf->px / ttf->face->units_per_EM) - ttf->face->glyph->bitmap_top + cy + (ttf->face->descender * ttf->px / ttf->face->units_per_EM); unsigned char* opx = &px[(oy * tw + ox) * 4]; opx[0] = color->common.red; From 2ae01d3902d7a061ede0de8c04447269b3f9d9fc Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 27 Apr 2026 03:48:15 +0900 Subject: [PATCH 534/836] fix font rendering --- examples/basic/periodic.c | 2 +- src/text/ft2.c | 6 ++++-- src/text/stbtt.c | 7 ++++++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/examples/basic/periodic.c b/examples/basic/periodic.c index 7403ca701..91dd601ab 100644 --- a/examples/basic/periodic.c +++ b/examples/basic/periodic.c @@ -266,7 +266,7 @@ int main() { add(f); f = frame("Label", -PaddingContent, -PaddingContent, MwLabelClass, - MwNtext, "Epic text", + MwNtext, "Epic text\nI am newline too!", NULL); add(f); diff --git a/src/text/ft2.c b/src/text/ft2.c index 90a0de8c5..26cf8cd93 100644 --- a/src/text/ft2.c +++ b/src/text/ft2.c @@ -66,7 +66,7 @@ static int ft2_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const c for(cy = 0; cy < bmp->rows; cy++) { for(cx = 0; cx < bmp->width; cx++) { - int ox = x + (ttf->face->glyph->metrics.horiBearingX >> 6) + cx + ttf->face->glyph->bitmap_left; + int ox = x + cx + (ttf->face->glyph->metrics.horiBearingX >> 6) + ttf->face->glyph->bitmap_left; int oy = y + (ttf->face->height * ttf->px / ttf->face->units_per_EM) - ttf->face->glyph->bitmap_top + cy + (ttf->face->descender * ttf->px / ttf->face->units_per_EM); unsigned char* opx = &px[(oy * tw + ox) * 4]; opx[0] = color->common.red; @@ -120,7 +120,7 @@ static int ft2_MwTextWidth(MwFLFont ttf, const char* text) { ft_table.FT_Load_Char(ttf->face, c, FT_LOAD_DEFAULT); - tw += (ttf->face->glyph->advance.x >> 6); + tw += ttf->face->glyph->advance.x >> 6; old_text = text; text += MwUTF8ToUTF32(text, &c2); @@ -132,6 +132,8 @@ static int ft2_MwTextWidth(MwFLFont ttf, const char* text) { text = old_text; } + tw += ttf->face->glyph->bitmap_left + ttf->face->glyph->bitmap.width; + return tw + 1; } diff --git a/src/text/stbtt.c b/src/text/stbtt.c index ace01903f..0bacc80d5 100644 --- a/src/text/stbtt.c +++ b/src/text/stbtt.c @@ -96,10 +96,12 @@ static int stbtt_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const static int stbtt_MwTextWidth(MwFLFont ttf, const char* text) { int ax, lsb; int tw = 0; + int c; + int x0, y0, x1, y1; while(text[0] != 0) { int kern; - int c, c2; + int c2; const char* old_text; text += MwUTF8ToUTF32(text, &c); @@ -118,6 +120,9 @@ static int stbtt_MwTextWidth(MwFLFont ttf, const char* text) { text = old_text; } + stbtt_GetCodepointBitmapBox(&ttf->font, c, ttf->scale, ttf->scale, &x0, &y0, &x1, &y1); + tw += x1; + return tw + 1; } From 21e2f2d599c498252b4a6b97023cca868cbb710b Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 27 Apr 2026 04:04:04 +0900 Subject: [PATCH 535/836] update how newlines are handled --- examples/basic/periodic.c | 2 +- src/text/ft2.c | 12 +----- src/text/stbtt.c | 11 +----- src/text/text.c | 78 +++++++++++++++++++++++++++++---------- 4 files changed, 63 insertions(+), 40 deletions(-) diff --git a/examples/basic/periodic.c b/examples/basic/periodic.c index 91dd601ab..cc55882bb 100644 --- a/examples/basic/periodic.c +++ b/examples/basic/periodic.c @@ -266,7 +266,7 @@ int main() { add(f); f = frame("Label", -PaddingContent, -PaddingContent, MwLabelClass, - MwNtext, "Epic text\nI am newline too!", + MwNtext, "Epic text\nNewline can be used too!", NULL); add(f); diff --git a/src/text/ft2.c b/src/text/ft2.c index 26cf8cd93..472a93f71 100644 --- a/src/text/ft2.c +++ b/src/text/ft2.c @@ -55,12 +55,6 @@ static int ft2_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const c if(l <= 0) break; text += l; - if(c == '\n') { - x = 0; - y += ttf->face->height * ttf->px / ttf->face->units_per_EM; - continue; - } - ft_table.FT_Load_Char(ttf->face, c, FT_LOAD_RENDER); bmp = &ttf->face->glyph->bitmap; @@ -86,11 +80,9 @@ static int ft2_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const c old_text = text; text += MwUTF8ToUTF32(text, &c2); - if(c2 != '\n') { - ft_table.FT_Get_Kerning(ttf->face, c, c2, FT_KERNING_DEFAULT, &vec); + ft_table.FT_Get_Kerning(ttf->face, c, c2, FT_KERNING_DEFAULT, &vec); - x += vec.x >> 6; - } + x += vec.x >> 6; text = old_text; } diff --git a/src/text/stbtt.c b/src/text/stbtt.c index 0bacc80d5..369ad2041 100644 --- a/src/text/stbtt.c +++ b/src/text/stbtt.c @@ -33,11 +33,6 @@ static int stbtt_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const const char* old_text; text += MwUTF8ToUTF32(text, &c); - if(c == '\n') { - x = 0; - y += ceil((ttf->ascent - ttf->descent) * ttf->scale); - continue; - } stbtt_GetCodepointHMetrics(&ttf->font, c, &ax, &lsb); @@ -69,11 +64,9 @@ static int stbtt_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const old_text = text; text += MwUTF8ToUTF32(text, &c2); - if(c2 != '\n') { - kern = stbtt_GetCodepointKernAdvance(&ttf->font, c, c2); + kern = stbtt_GetCodepointKernAdvance(&ttf->font, c, c2); - x += ceil(kern * ttf->scale); - } + x += ceil(kern * ttf->scale); text = old_text; diff --git a/src/text/text.c b/src/text/text.c index eac182e72..c3f7cc7e5 100644 --- a/src/text/text.c +++ b/src/text/text.c @@ -15,6 +15,21 @@ void (*MwFLFontFree)(void* handle) = NULL; static void bitmap_MwDrawText(MwWidget handle, MwPoint* point, const char* text, int bold, MwLLColor color); +static int count_nl(const char* text) { + int c = 1; + int i = 0; + while(text[i] != 0) { + int out; + int l = MwUTF8ToUTF32(text + i, &out); + if(l == 0) break; + i += l; + + if(out == '\n') c++; + } + + return c; +} + static int is_bold(MwWidget handle, MwFLFont ttf) { size_t u = (size_t)ttf; int s; @@ -50,24 +65,56 @@ static MwFLFont assume_ttf(MwWidget handle, MwFLFont ttf) { #endif void MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, int align, MwLLColor color) { - MwPoint p = *point; + MwPoint p = *point; + char* input = (char*)text; + char* last = input; + int cp; if(strlen(text) == 0) return; #ifdef TTF if(ttf <= MwFLBuildFont(0xff)) ttf = assume_ttf(handle, ttf); #endif - if(align == MwALIGNMENT_CENTER) { - p.x -= MwTextWidth(handle, ttf, text) / 2; - } else if(align == MwALIGNMENT_END) { - p.x -= MwTextWidth(handle, ttf, text); - } + p.y -= MwTextHeight(handle, ttf, text) / 2 - (MwTextHeight(handle, ttf, text) / count_nl(text)) / 2; + + while(*input != 0) { + input += MwUTF8ToUTF32(input, &cp); + + if(*input == 0 || cp == '\n') { + char* line = malloc(input - last + 1); + int i; + + memcpy(line, last, input - last); + + line[input - last] = 0; + + for(i = 0; line[i] != 0; i++) { + if(line[i] == '\r' || line[i] == '\n') { + line[i] = 0; + break; + } + } + + p.x = point->x; + if(align == MwALIGNMENT_CENTER) { + p.x -= MwTextWidth(handle, ttf, line) / 2; + } else if(align == MwALIGNMENT_END) { + p.x -= MwTextWidth(handle, ttf, line); + } #ifdef TTF - if(MwFLDrawText) - if(MwGetInteger(handle, MwNbitmapFont) || ttf == NULL || MwFLDrawText(handle, ttf, &p, text, color)) + if(MwFLDrawText) + if(MwGetInteger(handle, MwNbitmapFont) || ttf == NULL || MwFLDrawText(handle, ttf, &p, line, color)) #endif - bitmap_MwDrawText(handle, &p, text, is_bold(handle, ttf), color); + bitmap_MwDrawText(handle, &p, line, is_bold(handle, ttf), color); + + p.y += MwTextHeight(handle, ttf, line); + + free(line); + + last = input; + } + } } int MwTextWidth(MwWidget handle, MwFLFont ttf, const char* text) { @@ -113,7 +160,7 @@ int MwTextWidth(MwWidget handle, MwFLFont ttf, const char* text) { free(line); - last = input + 1; + last = input; } } @@ -121,8 +168,7 @@ int MwTextWidth(MwWidget handle, MwFLFont ttf, const char* text) { } int MwTextHeight(MwWidget handle, MwFLFont ttf, const char* text) { - int c = 1; - int i = 0; + int c = count_nl(text); #ifdef TTF int st; #endif @@ -135,14 +181,6 @@ int MwTextHeight(MwWidget handle, MwFLFont ttf, const char* text) { (void)ttf; #endif - while(text[i] != 0) { - int out; - int l = MwUTF8ToUTF32(text + i, &out); - if(l == 0) break; - i += l; - - if(out == '\n') c++; - } #ifdef TTF if(MwFLTextHeight) if(!MwGetInteger(handle, MwNbitmapFont) && ttf != NULL && (st = MwFLTextHeight(ttf, c)) != -1) return st; From 212d00ea13c8eda0ab72508634c6e1a1b92b5909 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 27 Apr 2026 04:25:16 +0900 Subject: [PATCH 536/836] fix stuff --- src/text/ft2.c | 6 +++--- src/text/text.c | 9 ++++++++- src/widget/listbox.c | 16 ++++++++++++---- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/text/ft2.c b/src/text/ft2.c index 472a93f71..fef3f05ac 100644 --- a/src/text/ft2.c +++ b/src/text/ft2.c @@ -49,11 +49,10 @@ static int ft2_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const c FT_Bitmap* bmp; int cy, cx; int c, c2; - int l = MwUTF8ToUTF32(text, &c); FT_Vector vec; const char* old_text; - if(l <= 0) break; - text += l; + + text += MwUTF8ToUTF32(text, &c); ft_table.FT_Load_Char(ttf->face, c, FT_LOAD_RENDER); bmp = &ttf->face->glyph->bitmap; @@ -124,6 +123,7 @@ static int ft2_MwTextWidth(MwFLFont ttf, const char* text) { text = old_text; } + tw -= ttf->face->glyph->advance.x >> 6; tw += ttf->face->glyph->bitmap_left + ttf->face->glyph->bitmap.width; return tw + 1; diff --git a/src/text/text.c b/src/text/text.c index c3f7cc7e5..9ad643571 100644 --- a/src/text/text.c +++ b/src/text/text.c @@ -70,7 +70,6 @@ void MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, char* last = input; int cp; - if(strlen(text) == 0) return; #ifdef TTF if(ttf <= MwFLBuildFont(0xff)) ttf = assume_ttf(handle, ttf); #endif @@ -95,6 +94,14 @@ void MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, } } + if(strlen(line) == 0) { + free(line); + + last = input; + + continue; + } + p.x = point->x; if(align == MwALIGNMENT_CENTER) { p.x -= MwTextWidth(handle, ttf, line) / 2; diff --git a/src/widget/listbox.c b/src/widget/listbox.c index e9865d0b6..359d8e519 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -199,16 +199,24 @@ static void frame_draw(MwWidget handle) { str = MwStringDuplicate(t); if(MwUTF8Length(str) > (get_col_width(lb, j) - l) / MwTextWidth(handle, Font, "M")) { - int ind = (get_col_width(lb, j) - l) / MwTextWidth(handle, Font, "M") - 3; - int seek = 0; - int l = 0; + int ind = (get_col_width(lb, j) - l) / MwTextWidth(handle, Font, "M") - 3; + int seek = 0; + int l = 0; + char* old = str; + + if(ind < 0) ind = 0; + + str = malloc(strlen(old) + 5); + strcpy(str, old); + free(old); while(str[seek] != 0) { int cp; + if(l == ind) break; + seek += MwUTF8ToUTF32(str + seek, &cp); l++; - if(l == ind) break; } memset(str + seek, '.', 3); From 8ad9e19de05b238539dda65a1a642b94781994b3 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 12:44:04 -0700 Subject: [PATCH 537/836] fix viewport on wayland --- examples/basic/viewport.c | 9 +++------ src/backend/wayland.c | 1 - 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/examples/basic/viewport.c b/examples/basic/viewport.c index 75524c471..930488d9e 100644 --- a/examples/basic/viewport.c +++ b/examples/basic/viewport.c @@ -31,13 +31,10 @@ int main() { if(px == NULL) px = MwLoadImage(vp, "picture.png"); - // MwVaCreateWidget(MwImageClass, "image", MwViewportGetViewport(vp), 0, 0, 1024, 1024, - // MwNpixmap, px, - // NULL); + MwVaCreateWidget(MwImageClass, "image", MwViewportGetViewport(vp), 0, 0, 1024, 1024, + MwNpixmap, px, + NULL); MwViewportSetSize(vp, 1024, 1024); - MwWidget f = MwCreateWidget(MwFrameClass, "fr", MwViewportGetViewport(vp), 256, 256, 128, 128); - f = MwCreateWidget(MwFrameClass, "fr", f, 0, 0, 128, 128); - MwCreateWidget(MwButtonClass, "btn", f, 64, 64, 128, 128); MwAddUserHandler(w, MwNresizeHandler, resize, NULL); diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 90777abd5..27fcadb66 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -2516,7 +2516,6 @@ static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { static void MwLLForceRenderImpl(MwLL handle) { WIDGET_CHECK(handle); - if(handle->wayland.force_render) return; wl_surface_damage(handle->wayland.framebuffer.surface, 0, 0, handle->wayland.ww, handle->wayland.wh); handle->wayland.force_render = MwTRUE; From 7cb7a2739e041c7e31f75b1273cda1885596396d Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 12:47:22 -0700 Subject: [PATCH 538/836] wayland: early return on SetWHImpl if width and height are the same --- src/backend/wayland.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 27fcadb66..de42d06e9 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -2106,6 +2106,10 @@ static void actually_set_wh(MwLL handle) { static void MwLLSetWHImpl(MwLL handle, int w, int h) { WIDGET_CHECK(handle); + if(handle->wayland.ww == w && handle->wayland.wh == h) { + return; + } + /* Prevent an integer underflow when the w/h is too low */ if((w < 2 || h < 2)) { handle->wayland.ww = 2; From 6f9f98f22c0281a9484295591100eee329536799 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 13:00:12 -0700 Subject: [PATCH 539/836] wayland: don't destroy wl_pointer/wl_keyboard --- src/backend/wayland.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index de42d06e9..03e2d149c 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -2017,8 +2017,6 @@ static void MwLLDestroyImpl(MwLL handle) { } else if(handle->wayland.type == MwLL_WAYLAND_POPUP) { destroy_popup(handle); } - wl_keyboard_destroy(handle->wayland.keyboard); - wl_pointer_destroy(handle->wayland.pointer); } for(i = 0; i < shlen(handle->wayland.wl_protocol_setup_map); i++) { From 6927ffd27d45f47c6b7d2d7f0d80d0cbf1013bfd Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 27 Apr 2026 05:00:36 +0900 Subject: [PATCH 540/836] introduce MwNdarkThemeAutomatic --- include/Mw/StringDefs.h | 1 + milsko.xml | 1 + src/core.c | 6 +++++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index 58fd173ec..ca540cc09 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -43,6 +43,7 @@ #define MwNisRounded "IisRounded" #define MwNdarkTheme "IdarkTheme" #define MwNuseMonospace "IuseMonospace" +#define MwNdarkThemeAutomatic "IdarkThemeAutomatic" #define MwNtitle "Stitle" #define MwNtext "Stext" diff --git a/milsko.xml b/milsko.xml index d0a75ed55..c3d26b352 100644 --- a/milsko.xml +++ b/milsko.xml @@ -96,6 +96,7 @@ + diff --git a/src/core.c b/src/core.c index e3a58fe90..e0c018f88 100644 --- a/src/core.c +++ b/src/core.c @@ -170,10 +170,12 @@ static void llclipboardhandler(MwLL handle, void* data) { static void lldarkthemehandler(MwLL handle, void* data) { MwWidget h = (MwWidget)handle->common.user; int* ptr = data; + int s; - if(IsFirstVisible(h)) { + if(IsFirstVisible(h) && (shgeti(h->integer, MwNdarkTheme) == -1 || ((s = MwGetInteger(h, MwNdarkThemeAutomatic)) != MwDEFAULT && s))) { MwVaApply(h, MwNdarkTheme, *ptr, + MwNdarkThemeAutomatic, 1, NULL); MwDispatchUserHandler(h, MwNdarkThemeHandler, data); @@ -573,6 +575,8 @@ void MwSetInteger(MwWidget handle, const char* key, int n) { if(strcmp(key, MwNdarkTheme) == 0) { MwWidget h = handle; + shdel(h->integer, MwNdarkThemeAutomatic); + while(h->parent != NULL && h->parent->widget_class != NULL) h = h->parent; MwLLSetDarkTheme(h->lowlevel, n); From 3beb11706efc030633c41bb35d37761f0ac96450 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 27 Apr 2026 05:04:54 +0900 Subject: [PATCH 541/836] make listbox faster --- src/widget/listbox.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/widget/listbox.c b/src/widget/listbox.c index 359d8e519..f92b2a5b0 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -260,7 +260,7 @@ static void frame_draw(MwWidget handle) { MwLLFreeColor(base); } -static void resize(MwWidget handle) { +static void resize(MwWidget handle, int no_resize) { MwListBox lb = handle->internal; int w = MwGetInteger(handle, MwNwidth); int h = MwGetInteger(handle, MwNheight); @@ -272,7 +272,7 @@ static void resize(MwWidget handle) { if(lb->vscroll == NULL) { lb->vscroll = MwVaCreateWidget(MwScrollBarClass, "vscroll", handle, w - 16, 0, 16, h, NULL); MwAddUserHandler(lb->vscroll, MwNchangedHandler, vscroll_changed, NULL); - } else { + } else if(!no_resize){ MwVaApply(lb->vscroll, MwNx, w - 16, MwNy, 0, @@ -299,7 +299,7 @@ static void resize(MwWidget handle) { MwAddUserHandler(lb->frame, MwNmouseDownHandler, frame_mouse_down, NULL); MwAddUserHandler(lb->frame, MwNmouseUpHandler, frame_mouse_up, NULL); MwAddUserHandler(lb->frame, MwNmouseMoveHandler, frame_mouse_move, NULL); - } else { + } else if(!no_resize){ MwVaApply(lb->frame, MwNx, 0, MwNy, y, @@ -328,7 +328,7 @@ static int wcreate(MwWidget handle) { MwSetInteger(handle, MwNleftPadding, 0); MwSetInteger(handle, MwNvalue, -1); - resize(handle); + resize(handle, 0); lb->list = NULL; lb->click_time = 0; lb->width = NULL; @@ -440,7 +440,7 @@ static int mwListBoxSetImpl(MwWidget handle, int row, int col, const char* text) new = 1; } - if(new) resize(handle); + if(new) resize(handle, 1); redrawIfNeeded(handle, row); return row; @@ -467,7 +467,7 @@ static void mwListBoxSetIconImpl(MwWidget handle, int index, MwLLPixmap icon) { new = 1; } - if(new) resize(handle); + if(new) resize(handle, 1); redrawIfNeeded(handle, index); } @@ -489,7 +489,7 @@ static void mwListBoxDeleteImpl(MwWidget handle, int index) { MwSetInteger(handle, MwNvalue, -1); } - resize(handle); + resize(handle, 1); if(index < (MwGetInteger(lb->vscroll, MwNvalue) + MwGetInteger(lb->vscroll, MwNareaShown))) { MwForceRender(lb->frame); } @@ -511,7 +511,7 @@ static void mwListBoxResetImpl(MwWidget handle) { MwSetInteger(lb->vscroll, MwNvalue, 0); - resize(handle); + resize(handle, 0); MwForceRender(lb->frame); } @@ -598,7 +598,7 @@ static void props_change(MwWidget handle, char** props) { if(strcmp(props[i], MwNwidth) == 0 || strcmp(props[i], MwNheight) == 0 || strcmp(props[i], MwNhasHeading) == 0) rsz = 1; } - if(rsz) resize(handle); + if(rsz) resize(handle, 0); } MwClassRec MwListBoxClassRec = { From 64bd6405293088d10248793f5beddea2c9fe7ac2 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 27 Apr 2026 05:07:24 +0900 Subject: [PATCH 542/836] remove comments as they are documented in xml now --- include/Mw/StringDefs.h | 50 ++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index ca540cc09..36366f4fb 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -52,9 +52,9 @@ #define MwNforeground "Sforeground" #define MwNsubForeground "SsubForeground" -#define MwNvulkanExtension "SEvulkanExtension" /* char* */ -#define MwNvulkanLayer "SEvulkanLayer" /* char* */ -#define MwNvulkanConfig "VEvulkanConfig" /* MwVulkanConfig */ +#define MwNvulkanExtension "SEvulkanExtension" +#define MwNvulkanLayer "SEvulkanLayer" +#define MwNvulkanConfig "VEvulkanConfig" #define MwNpixmap "Vpixmap" #define MwNiconPixmap "ViconPixmap" @@ -65,27 +65,27 @@ #define MwNmonospaceFont "VmonospaceFont" #define MwNboldMonospaceFont "VboldMonospaceFont" -#define MwNactivateHandler "Cactivate" /* NULL */ -#define MwNlistBoxActivateHandler "ClistBoxActivate" /* int* */ -#define MwNtreeViewActivateHandler "CtreeViewActivate" /* void* */ -#define MwNresizeHandler "Cresize" /* NULL */ -#define MwNtickHandler "Ctick" /* NULL */ -#define MwNmenuHandler "Cmenu" /* MwMenu */ -#define MwNmouseDownHandler "CmouseDown" /* MwMouse* */ -#define MwNmouseUpHandler "CmouseUp" /* same as MwNmouseDownHandler */ -#define MwNmouseMoveHandler "CmouseMove" /* MwPoint* */ -#define MwNchangedHandler "Cchanged" /* NULL */ -#define MwNcomboBoxChangedHandler "CcomboBoxChanged" /* int* */ -#define MwNkeyHandler "Ckey" /* int* (MwLLKeyEnum or character code) */ -#define MwNkeyReleaseHandler "CkeyRelease" /* same as MwNkeyHandler */ -#define MwNcloseHandler "Cclose" /* NULL */ -#define MwNfocusInHandler "CfocusIn" /* NULL */ -#define MwNfocusOutHandler "CfocusOut" /* NULL */ -#define MwNfileChosenHandler "CfileChosen" /* char* */ -#define MwNdirectoryChosenHandler "CdirectoryChosen" /* char* */ -#define MwNcolorChosenHandler "CcolorChosen" /* MwRGB* */ -#define MwNdrawHandler "Cdraw" /* NULL */ -#define MwNclipboardHandler "Cclipboard" /* char* */ -#define MwNdarkThemeHandler "CdarkTheme" /* int* */ +#define MwNactivateHandler "Cactivate" +#define MwNlistBoxActivateHandler "ClistBoxActivate" +#define MwNtreeViewActivateHandler "CtreeViewActivate" +#define MwNresizeHandler "Cresize" +#define MwNtickHandler "Ctick" +#define MwNmenuHandler "Cmenu" +#define MwNmouseDownHandler "CmouseDown" +#define MwNmouseUpHandler "CmouseUp" +#define MwNmouseMoveHandler "CmouseMove" +#define MwNchangedHandler "Cchanged" +#define MwNcomboBoxChangedHandler "CcomboBoxChanged" +#define MwNkeyHandler "Ckey" +#define MwNkeyReleaseHandler "CkeyRelease" +#define MwNcloseHandler "Cclose" +#define MwNfocusInHandler "CfocusIn" +#define MwNfocusOutHandler "CfocusOut" +#define MwNfileChosenHandler "CfileChosen" +#define MwNdirectoryChosenHandler "CdirectoryChosen" +#define MwNcolorChosenHandler "CcolorChosen" +#define MwNdrawHandler "Cdraw" +#define MwNclipboardHandler "Cclipboard" +#define MwNdarkThemeHandler "CdarkTheme" #endif From 1e939ae316571247aa21dc9814517c0361cf07ae Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 13:10:45 -0700 Subject: [PATCH 543/836] wayland: memset device_ctx_wl to accomidate for platforms that don't have a clipboard device --- src/backend/wayland.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 03e2d149c..e3ce9c1aa 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -930,6 +930,7 @@ static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat, MwLL self = data; wl_clipboard_device_context_t* device_ctx_zwp = NULL; wl_clipboard_device_context_t* device_ctx_wl = malloc(sizeof(wl_clipboard_device_context_t)); + memset(device_ctx_wl, 0, sizeof(wl_clipboard_device_context_t)); WAYLAND_EVENT_OP_START(self); From b6e21d847845f018b98ac7e885839eb6d85d27e5 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 27 Apr 2026 05:12:40 +0900 Subject: [PATCH 544/836] make treeview faster too --- src/widget/listbox.c | 4 ++-- src/widget/treeview.c | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/widget/listbox.c b/src/widget/listbox.c index f92b2a5b0..80ceb0811 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -272,7 +272,7 @@ static void resize(MwWidget handle, int no_resize) { if(lb->vscroll == NULL) { lb->vscroll = MwVaCreateWidget(MwScrollBarClass, "vscroll", handle, w - 16, 0, 16, h, NULL); MwAddUserHandler(lb->vscroll, MwNchangedHandler, vscroll_changed, NULL); - } else if(!no_resize){ + } else if(!no_resize) { MwVaApply(lb->vscroll, MwNx, w - 16, MwNy, 0, @@ -299,7 +299,7 @@ static void resize(MwWidget handle, int no_resize) { MwAddUserHandler(lb->frame, MwNmouseDownHandler, frame_mouse_down, NULL); MwAddUserHandler(lb->frame, MwNmouseUpHandler, frame_mouse_up, NULL); MwAddUserHandler(lb->frame, MwNmouseMoveHandler, frame_mouse_move, NULL); - } else if(!no_resize){ + } else if(!no_resize) { MwVaApply(lb->frame, MwNx, 0, MwNy, y, diff --git a/src/widget/treeview.c b/src/widget/treeview.c index 3fe398549..63b529359 100644 --- a/src/widget/treeview.c +++ b/src/widget/treeview.c @@ -220,7 +220,7 @@ static void MWAPI frame_mouse_down(MwWidget handle, void* user, void* call) { if(mouse->button == MwMOUSE_LEFT) tv->pressed = mouse->point; } -static void resize(MwWidget handle); +static void resize(MwWidget handle, int no_resize); static void MWAPI frame_mouse_up(MwWidget handle, void* user, void* call) { MwTreeView tv = handle->parent->internal; @@ -239,12 +239,12 @@ static void MWAPI frame_mouse_up(MwWidget handle, void* user, void* call) { if(shared > (MwGetInteger(tv->frame, MwNheight) / MwTextHeight(tv->frame, NULL, "M"))) break; recursion(tv->frame, tv->tree[i], tv->tree, NULL, NULL, NULL, NULL, &p, 0, LineSpace, &skip, &shared, 0, &tv->pressed); } - resize(handle->parent); + resize(handle->parent, 1); MwForceRender(tv->frame); } } -static void resize(MwWidget handle) { +static void resize(MwWidget handle, int no_resize) { MwTreeView tv = handle->internal; int w = MwGetInteger(handle, MwNwidth); int h = MwGetInteger(handle, MwNheight); @@ -255,7 +255,7 @@ static void resize(MwWidget handle) { tv->vscroll = MwCreateWidget(MwScrollBarClass, "vscroll", handle, w - 16, 0, 16, h); MwAddUserHandler(tv->vscroll, MwNchangedHandler, vscroll_changed, NULL); MwSetInteger(tv->vscroll, MwNvalue, 5); - } else { + } else if(!no_resize) { MwVaApply(tv->vscroll, MwNx, w - 16, MwNy, 0, @@ -282,7 +282,7 @@ static void resize(MwWidget handle) { tv->frame->draw_inject = frame_draw; MwAddUserHandler(tv->frame, MwNmouseDownHandler, frame_mouse_down, NULL); MwAddUserHandler(tv->frame, MwNmouseUpHandler, frame_mouse_up, NULL); - } else { + } else if(!no_resize) { MwVaApply(tv->frame, MwNx, 0, MwNy, 0, @@ -308,7 +308,7 @@ static int wcreate(MwWidget handle) { MwSetInteger(handle, MwNsingleClickSelectable, 0); MwSetInteger(handle, MwNleftPadding, 0); - resize(handle); + resize(handle, 0); tv->changed = 0; return 0; @@ -350,7 +350,7 @@ static void* mwTreeViewAddImpl(MwWidget handle, void* parent, MwLLPixmap pixmap, arrput(e->tree, t); } - resize(handle); + resize(handle, 1); MwForceRender(tv->frame); return t; @@ -383,7 +383,7 @@ static void mwTreeViewResetImpl(MwWidget handle) { free_all(tv->tree); tv->tree = NULL; - resize(handle); + resize(handle, 1); MwForceRender(tv->frame); } @@ -403,7 +403,7 @@ static void mwTreeViewSetLabelImpl(MwWidget handle, void* item, const char* labe e->label = MwStringDuplicate(label); if(e->parent == NULL || (e->parent != NULL && e->parent->opened)) { - resize(handle); + resize(handle, 1); MwForceRender(tv->frame); } } @@ -415,7 +415,7 @@ static void mwTreeViewSetPixmapImpl(MwWidget handle, void* item, MwLLPixmap pixm e->pixmap = pixmap; if(e->parent == NULL || (e->parent != NULL && e->parent->opened)) { - resize(handle); + resize(handle, 1); MwForceRender(tv->frame); } } @@ -427,7 +427,7 @@ static void mwTreeViewSetOpenedImpl(MwWidget handle, void* item, int opened) { e->opened = opened; if(e->parent == NULL || (e->parent != NULL && e->parent->opened)) { - resize(handle); + resize(handle, 1); MwForceRender(tv->frame); } } @@ -484,7 +484,7 @@ static void props_change(MwWidget handle, char** props) { if(strcmp(props[i], MwNwidth) == 0 || strcmp(props[i], MwNheight) == 0) rsz = 1; } - if(rsz) resize(handle); + if(rsz) resize(handle, 0); } MwClassRec MwTreeViewClassRec = { From 215488e6533f1662a63114123a89c2e55a92063a Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 13:23:33 -0700 Subject: [PATCH 545/836] wayland: account also for compositors that may be presenting wl_data_device before wl_seat --- include/Mw/LowLevel/Wayland.h | 1 - src/backend/wayland.c | 59 ++++++++++++++++++++--------------- 2 files changed, 34 insertions(+), 26 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 0a3a7478b..047f09b6d 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -399,7 +399,6 @@ typedef struct wl_clipboard_device_context { MwLL ll; struct wl_seat* seat; - MwU32 capabilities; } wl_clipboard_device_context_t; struct _MwLLWayland { diff --git a/src/backend/wayland.c b/src/backend/wayland.c index e3ce9c1aa..35cfb7f14 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -76,6 +76,9 @@ static void buffer_destroy(struct _MwLLWaylandShmBuffer* buffer); static void region_setup(MwLL handle); static void region_invalidate(MwLL handle); static void update_buffer(MwLL self, struct _MwLLWaylandShmBuffer* buffer); + +static void setup_clipboard(MwLL self, struct wl_seat* wl_seat); + /* Get the registered interface from r, or NULL if it doesn't currently have it. */ #define WAYLAND_GET_INTERFACE(handle, inter) shget(handle.wl_protocol_map, inter##_interface.name) @@ -290,7 +293,7 @@ static void wl_clipboard_read(wl_clipboard_device_context_t* ctx, int clipboard_ timeout.tv_sec = 0; timeout.tv_usec = 100; - if(clipboard_type == MwCLIPBOARD_PRIMARY) { + if(clipboard_type == MwCLIPBOARD_PRIMARY && ctx->offer.zwp) { zwp_primary_selection_offer_v1_receive(ctx->offer.zwp, "text/plain", fds[1]); } else if(ctx->offer.wl) { wl_data_offer_receive(ctx->offer.wl, "text/plain", fds[1]); @@ -430,6 +433,10 @@ static wayland_protocol_t* wl_data_device_manager_setup(MwU32 name, struct _MwLL wl_data_source_add_listener(wayland->clipboard_source.wl, &wl_data_source_listener, wayland); + if(wayland->pointer_seat) { + setup_clipboard((MwLL)wayland, wayland->pointer_seat); + } + return NULL; } @@ -908,6 +915,30 @@ static void keyboard_modifiers(void* data, WAYLAND_EVENT_OP_END(self); }; +static void setup_clipboard(MwLL self, struct wl_seat* wl_seat) { + wl_clipboard_device_context_t* device_ctx_zwp = NULL; + wl_clipboard_device_context_t* device_ctx_wl = malloc(sizeof(wl_clipboard_device_context_t)); + memset(device_ctx_wl, 0, sizeof(wl_clipboard_device_context_t)); + + if(self->wayland.supports_zwp) { + device_ctx_zwp = malloc(sizeof(wl_clipboard_device_context_t)); + device_ctx_zwp->device.zwp = zwp_primary_selection_device_manager_v1_get_device(self->wayland.clipboard_manager.zwp, wl_seat); + device_ctx_zwp->ll = self; + device_ctx_zwp->seat = wl_seat; + } + + device_ctx_wl->device.wl = wl_data_device_manager_get_data_device(self->wayland.clipboard_manager.wl, wl_seat); + device_ctx_wl->ll = self; + device_ctx_wl->seat = wl_seat; + + if(self->wayland.supports_zwp) { + zwp_primary_selection_device_v1_add_listener(device_ctx_zwp->device.zwp, &zwp_primary_selection_device_v1_listener, device_ctx_zwp); + arrpush(self->wayland.clipboard_devices_zwp, device_ctx_zwp); + } + wl_data_device_add_listener(device_ctx_wl->device.wl, &wl_data_device_listener, device_ctx_wl); + arrpush(self->wayland.clipboard_devices_wl, device_ctx_wl); +}; + struct wl_keyboard_listener keyboard_listener = { .keymap = keyboard_keymap, .enter = keyboard_enter, @@ -927,10 +958,7 @@ wl_seat_name(void* data, struct wl_seat* wl_seat, const char* name) { /* `wl_seat.capabilities` callback */ static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat, MwU32 capabilities) { - MwLL self = data; - wl_clipboard_device_context_t* device_ctx_zwp = NULL; - wl_clipboard_device_context_t* device_ctx_wl = malloc(sizeof(wl_clipboard_device_context_t)); - memset(device_ctx_wl, 0, sizeof(wl_clipboard_device_context_t)); + MwLL self = data; WAYLAND_EVENT_OP_START(self); @@ -943,28 +971,9 @@ static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat, self->wayland.pointer = wl_seat_get_pointer(wl_seat); wl_pointer_add_listener(self->wayland.pointer, &pointer_listener, data); } - if(self->wayland.clipboard_manager.wl != NULL) { - if(self->wayland.supports_zwp) { - device_ctx_zwp = malloc(sizeof(wl_clipboard_device_context_t)); - device_ctx_zwp->device.zwp = zwp_primary_selection_device_manager_v1_get_device(self->wayland.clipboard_manager.zwp, wl_seat); - device_ctx_zwp->ll = self; - device_ctx_zwp->seat = wl_seat; - device_ctx_zwp->capabilities = capabilities; - } - device_ctx_wl->device.wl = wl_data_device_manager_get_data_device(self->wayland.clipboard_manager.wl, wl_seat); - device_ctx_wl->ll = self; - device_ctx_wl->seat = wl_seat; - device_ctx_wl->capabilities = capabilities; - - if(self->wayland.supports_zwp) { - zwp_primary_selection_device_v1_add_listener(device_ctx_zwp->device.zwp, &zwp_primary_selection_device_v1_listener, device_ctx_zwp); - arrpush(self->wayland.clipboard_devices_zwp, device_ctx_zwp); - } - wl_data_device_add_listener(device_ctx_wl->device.wl, &wl_data_device_listener, device_ctx_wl); - arrpush(self->wayland.clipboard_devices_wl, device_ctx_wl); + setup_clipboard(self, wl_seat); } - WAYLAND_EVENT_OP_END(self); }; From 837c28133afb9553b9880555611380fed8794fbd Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 13:44:11 -0700 Subject: [PATCH 546/836] ensure even further that the clipboards are set up if the function is called before wl_seat) --- include/Mw/LowLevel/Wayland.h | 5 ++-- src/backend/wayland.c | 49 +++++++++++++++++++++++------------ 2 files changed, 35 insertions(+), 19 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 047f09b6d..ba6075198 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -397,8 +397,8 @@ typedef struct wl_clipboard_device_context { struct zwp_primary_selection_offer_v1* zwp; } offer; - MwLL ll; - struct wl_seat* seat; + MwLL ll; + // struct wl_seat* seat; } wl_clipboard_device_context_t; struct _MwLLWayland { @@ -482,6 +482,7 @@ struct _MwLLWayland { } clipboard_source; char* clipboard_buffer; MwBool supports_zwp; + MwBool zwp_setup; uint32_t clipboard_serial; wl_clipboard_device_context_t** clipboard_devices_wl; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 35cfb7f14..495df92a6 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -78,6 +78,8 @@ static void region_invalidate(MwLL handle); static void update_buffer(MwLL self, struct _MwLLWaylandShmBuffer* buffer); static void setup_clipboard(MwLL self, struct wl_seat* wl_seat); +static void setup_zwp_clipboard(MwLL self, struct wl_seat* wl_seat); +static int event_loop(MwLL handle); /* Get the registered interface from r, or NULL if it doesn't currently have it. */ #define WAYLAND_GET_INTERFACE(handle, inter) shget(handle.wl_protocol_map, inter##_interface.name) @@ -433,6 +435,14 @@ static wayland_protocol_t* wl_data_device_manager_setup(MwU32 name, struct _MwLL wl_data_source_add_listener(wayland->clipboard_source.wl, &wl_data_source_listener, wayland); + while(!wayland->pointer_seat) { + if(wl_display_roundtrip(wayland->display) == -1) { + printf("roundtrip failed: %d\n", wl_display_get_error(wayland->display)); + raise(SIGTRAP); + return NULL; + } + } + if(wayland->pointer_seat) { setup_clipboard((MwLL)wayland, wayland->pointer_seat); } @@ -465,6 +475,18 @@ static wayland_protocol_t* zwp_primary_selection_device_manager_v1_setup(MwU32 n wayland->supports_zwp = MwTRUE; + while(!wayland->pointer_seat) { + if(wl_display_roundtrip(wayland->display) == -1) { + printf("roundtrip failed: %d\n", wl_display_get_error(wayland->display)); + raise(SIGTRAP); + return NULL; + } + } + + if(wayland->pointer_seat) { + setup_zwp_clipboard((MwLL)wayland, wayland->pointer_seat); + } + return NULL; } @@ -915,26 +937,22 @@ static void keyboard_modifiers(void* data, WAYLAND_EVENT_OP_END(self); }; -static void setup_clipboard(MwLL self, struct wl_seat* wl_seat) { +static void setup_zwp_clipboard(MwLL self, struct wl_seat* wl_seat) { wl_clipboard_device_context_t* device_ctx_zwp = NULL; - wl_clipboard_device_context_t* device_ctx_wl = malloc(sizeof(wl_clipboard_device_context_t)); + device_ctx_zwp = malloc(sizeof(wl_clipboard_device_context_t)); + memset(device_ctx_zwp, 0, sizeof(wl_clipboard_device_context_t)); + device_ctx_zwp->device.zwp = zwp_primary_selection_device_manager_v1_get_device(self->wayland.clipboard_manager.zwp, wl_seat); + device_ctx_zwp->ll = self; + zwp_primary_selection_device_v1_add_listener(device_ctx_zwp->device.zwp, &zwp_primary_selection_device_v1_listener, device_ctx_zwp); + arrpush(self->wayland.clipboard_devices_zwp, device_ctx_zwp); +} +static void setup_clipboard(MwLL self, struct wl_seat* wl_seat) { + wl_clipboard_device_context_t* device_ctx_wl = malloc(sizeof(wl_clipboard_device_context_t)); memset(device_ctx_wl, 0, sizeof(wl_clipboard_device_context_t)); - if(self->wayland.supports_zwp) { - device_ctx_zwp = malloc(sizeof(wl_clipboard_device_context_t)); - device_ctx_zwp->device.zwp = zwp_primary_selection_device_manager_v1_get_device(self->wayland.clipboard_manager.zwp, wl_seat); - device_ctx_zwp->ll = self; - device_ctx_zwp->seat = wl_seat; - } - device_ctx_wl->device.wl = wl_data_device_manager_get_data_device(self->wayland.clipboard_manager.wl, wl_seat); device_ctx_wl->ll = self; - device_ctx_wl->seat = wl_seat; - if(self->wayland.supports_zwp) { - zwp_primary_selection_device_v1_add_listener(device_ctx_zwp->device.zwp, &zwp_primary_selection_device_v1_listener, device_ctx_zwp); - arrpush(self->wayland.clipboard_devices_zwp, device_ctx_zwp); - } wl_data_device_add_listener(device_ctx_wl->device.wl, &wl_data_device_listener, device_ctx_wl); arrpush(self->wayland.clipboard_devices_wl, device_ctx_wl); }; @@ -971,9 +989,6 @@ static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat, self->wayland.pointer = wl_seat_get_pointer(wl_seat); wl_pointer_add_listener(self->wayland.pointer, &pointer_listener, data); } - if(self->wayland.clipboard_manager.wl != NULL) { - setup_clipboard(self, wl_seat); - } WAYLAND_EVENT_OP_END(self); }; From 16a0eeae4fa852587dacab3ebca57620c8c7f999 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 27 Apr 2026 05:29:22 +0900 Subject: [PATCH 547/836] fix font rendering --- src/text/ft2.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/text/ft2.c b/src/text/ft2.c index fef3f05ac..df63a274c 100644 --- a/src/text/ft2.c +++ b/src/text/ft2.c @@ -123,7 +123,6 @@ static int ft2_MwTextWidth(MwFLFont ttf, const char* text) { text = old_text; } - tw -= ttf->face->glyph->advance.x >> 6; tw += ttf->face->glyph->bitmap_left + ttf->face->glyph->bitmap.width; return tw + 1; From 4e78157e71864f84657f4cec4eda22a61dd56f3f Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 27 Apr 2026 05:50:05 +0900 Subject: [PATCH 548/836] why? --- src/backend/x11.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/backend/x11.c b/src/backend/x11.c index 7cae9e191..1cb06f867 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -489,8 +489,6 @@ static void MwLLBeginDrawImpl(MwLL handle) { static void MwLLEndDrawImpl(MwLL handle) { (void)handle; - - XClearWindow(handle->x11.display, handle->x11.window); } static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { From e65d4e7f32250f7612c47906d2357e82ecf64465 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 27 Apr 2026 05:50:50 +0900 Subject: [PATCH 549/836] fix font rendering --- src/text/ft2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/text/ft2.c b/src/text/ft2.c index df63a274c..37bed4e85 100644 --- a/src/text/ft2.c +++ b/src/text/ft2.c @@ -59,7 +59,7 @@ static int ft2_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const c for(cy = 0; cy < bmp->rows; cy++) { for(cx = 0; cx < bmp->width; cx++) { - int ox = x + cx + (ttf->face->glyph->metrics.horiBearingX >> 6) + ttf->face->glyph->bitmap_left; + int ox = x + cx + ttf->face->glyph->bitmap_left; int oy = y + (ttf->face->height * ttf->px / ttf->face->units_per_EM) - ttf->face->glyph->bitmap_top + cy + (ttf->face->descender * ttf->px / ttf->face->units_per_EM); unsigned char* opx = &px[(oy * tw + ox) * 4]; opx[0] = color->common.red; From 984b8de414874369e56d624b2ee105c999102f3a Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 14:01:33 -0700 Subject: [PATCH 550/836] tiny config disables dbus integrationg --- doc/TINYCONFIG.md | 3 ++- pl/ostype/Linux.pl | 2 +- pl/rules.pl | 12 +++++++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/doc/TINYCONFIG.md b/doc/TINYCONFIG.md index 7ab60b527..024edf605 100644 --- a/doc/TINYCONFIG.md +++ b/doc/TINYCONFIG.md @@ -5,4 +5,5 @@ Milsko's configure script supports the `--tiny` option for building the tiniest - Add `-Oz` to the cflags - (clang only) add `-flto=thin` to the cflags and linker flags - Build stb-image with `STB_IMAGE_STATIC` (this is why you get warnings with stb_image when you use it) -- Disable the Wayland backend +- (Linux) Disable the Wayland backend +- (Linux) Disable dbus integration diff --git a/pl/ostype/Linux.pl b/pl/ostype/Linux.pl index 278cbfe0c..75159d562 100644 --- a/pl/ostype/Linux.pl +++ b/pl/ostype/Linux.pl @@ -1,6 +1,6 @@ my @enabled_backends = (); -if (param_get("wayland")) { +if (param_get("wayland") && not(param_get("tiny"))) { push(@enabled_backends, "wayland"); } if (param_get("x11")) { diff --git a/pl/rules.pl b/pl/rules.pl index e669ae853..348a57671 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -4,9 +4,15 @@ my $gl_libs = ""; if (param_get("tiny")) { add_cflags("-Oz"); if (defined($ENV{CC}) && grep(/^clang$/, $ENV{CC})) { - add_libs("-flto=thin"); - add_cflags("-flto=thin"); + add_libs("-flto=full"); + add_cflags("-flto=full"); } + add_cflags("-fdata-sections -ffunction-sections"); + add_libs("-Wl,--gc-sections"); + + # these don't actually disable either, they're here for the final output. + param_set("wayland", 0); + param_set("dbus", 0); } if (param_get("classic-theme")) { add_cflags("-DUSE_CLASSIC_THEME"); @@ -60,7 +66,7 @@ if (grep(/^wayland$/, @backends)) { $gl_libs = "-lGL -lGLU"; } -if (not(param_get("dbus"))) { +if (not(param_get("dbus")) && not(param_get("tiny"))) { $cflags =~ s/( |^)-DUSE_DBUS( |$)/ /; } From a78b7b6762c010ed9e83903f81b2bc3466d31f81 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 27 Apr 2026 08:54:13 +0900 Subject: [PATCH 551/836] fix some uninitialized values --- src/backend/x11.c | 5 +++-- src/draw.c | 3 +++ src/widget/menu.c | 1 - tools/Makefile | 6 +++--- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/backend/x11.c b/src/backend/x11.c index 1cb06f867..3e03eca7e 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -405,8 +405,9 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->x11.width = width; r->x11.height = height; - r->x11.grabbed = 0; - r->x11.force_render = 0; + r->x11.grabbed = 0; + r->x11.force_render = 0; + r->x11.dark_theme_detection = 0; r->x11.colormap = DefaultColormap(r->x11.display, XDefaultScreen(r->x11.display)); r->x11.wm_delete = XInternAtom(r->x11.display, "WM_DELETE_WINDOW", False); diff --git a/src/draw.c b/src/draw.c index 7297973fa..32c2cd30b 100644 --- a/src/draw.c +++ b/src/draw.c @@ -179,6 +179,9 @@ void MwDrawWidgetBack(MwWidget handle, MwRect* rect, MwLLColor color, int invert MwDrawFrame(handle, rect, color, invert); } + + if(rect->width <= 0 || rect->height <= 0) return; + col = invert ? MwLightenColor(handle, color, -8, -8, -8) : color; if(MwGetInteger(handle, MwNmodernLook)) { MwDrawRectFading(handle, rect, col); diff --git a/src/widget/menu.c b/src/widget/menu.c index 82072bd95..a7232a6b6 100644 --- a/src/widget/menu.c +++ b/src/widget/menu.c @@ -1,7 +1,6 @@ #include #include "../../external/stb_ds.h" -#include "Mw/TypeDefs.h" static void set_xywh(MwWidget handle) { int height = 0; diff --git a/tools/Makefile b/tools/Makefile index ef8636836..3bac0e660 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -1,7 +1,7 @@ CC = gcc -CFLAGS = `freetype-config --cflags` +CFLAGS = `pkg-config --cflags freetype2` -I../include LDFLAGS = -LIBS = `freetype-config --libs` +LIBS = `pkg-config --libs freetype2` .PHONY: all clean .SUFFIXES: .c .o @@ -9,7 +9,7 @@ LIBS = `freetype-config --libs` all: fuzzer font fuzzer: fuzzer.o - $(CC) -g -L../src/ -Wl,-R../src -lMw -o $@ fuzzer.o + $(CC) -g -L../src/ -Wl,-R../src -o $@ fuzzer.o -lMw font: font.o $(CC) $(LDFLAGS) -o $@ font.o $(LIBS) From f00c380f3d3f3e576a877965a2966d59a869cae7 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 17:42:27 -0700 Subject: [PATCH 552/836] more comprehensive fuzzer --- tools/fuzzer.c | 118 ++++++++++++++++++++++--------------------------- 1 file changed, 52 insertions(+), 66 deletions(-) diff --git a/tools/fuzzer.c b/tools/fuzzer.c index 991d929ad..bfc3a0e2e 100644 --- a/tools/fuzzer.c +++ b/tools/fuzzer.c @@ -1,82 +1,68 @@ #include +#include #define WIDGET_AMOUNT 16 +#define H(h) {&h, #h} + +typedef struct cls_pair { + MwClass* cls; + const char* name; +} cls_pair_t; + +cls_pair_t classes[] = {H(MwBoxClass), H(MwButtonClass), H(MwCheckBoxClass), H(MwComboBoxClass), H(MwEntryClass), H(MwFrameClass), H(MwImageClass), H(MwLabelClass), H(MwListBoxClass), H(MwMenuClass), H(MwNumberEntryClass), H(MwProgressBarClass), H(MwRadioBoxClass), H(MwScrollBarClass), H(MwSeparatorClass), H(MwTreeViewClass), H(MwViewportClass)}; +char* int_params[] = {/*MwNx, MwNy, MwNwidth, MwNheight,*/ MwNorientation, MwNminValue, MwNmaxValue, MwNvalue, MwNchangedBy, MwNareaShown, MwNchecked, MwNalignment, MwNbold, MwNmain, MwNleftPadding, MwNhasHeading, MwNhasBorder, MwNinverted, MwNmodernLook, MwNwaitMS, MwNhideInput, MwNsingleClickSelectable, MwNflat, MwNshowArrows, MwNpadding, MwNborderWidth, MwNfillArea, MwNratio, MwNfixedSize, MwNmargin, MwNbitmapFont, MwNsevenSegment, MwNlength, MwNforceInverted, MwNroundness, MwNisRounded, MwNdarkTheme}; +unsigned long maxxes[] = {UINT8_MAX, UINT16_MAX, UINT32_MAX, UINT64_MAX}; + int main() { - MwWidget window, widget; + int i; + char input; + MwWidget window, widget; + unsigned long upper_limit; + + printf("What upper limit of int params do you want to test?\n"); + for(i = 0; i < (sizeof(maxxes) / sizeof(unsigned long)); i++) { + printf("%d) %lu\n", i, maxxes[i]); + } +get_input: + input = getchar(); + switch(input) { + case '0': + upper_limit = maxxes[0]; + break; + case '1': + upper_limit = maxxes[1]; + break; + case '2': + upper_limit = maxxes[2]; + break; + case '3': + upper_limit = maxxes[3]; + break; + default: + printf("Invalid value. Pick 0-3.\n"); + goto get_input; + } MwLibraryInit(); window = MwCreateWidget(MwWindowClass, "window", NULL, 0, 0, 400, 400); while(MwPending(window)) { - int r = rand() % WIDGET_AMOUNT; - MwClass cls; - switch(r) { - case 0: - cls = MwBoxClass; - break; - case 1: - cls = MwButtonClass; - break; - case 2: - cls = MwCheckBoxClass; - break; - case 3: - cls = MwComboBoxClass; - break; - case 4: - cls = MwEntryClass; - break; - case 5: - cls = MwFrameClass; - break; - case 6: - cls = MwImageClass; - break; - case 7: - cls = MwLabelClass; - break; - case 8: - cls = MwListBoxClass; - break; - case 9: - cls = MwMenuClass; - break; - case 10: - cls = MwNumberEntryClass; - break; - case 11: - cls = MwProgressBarClass; - break; - case 12: - cls = MwRadioBoxClass; - break; - case 13: - cls = MwScrollBarClass; - break; - case 14: - cls = MwSeparatorClass; - break; + int class_num = rand() % (sizeof(classes) / sizeof(cls_pair_t)); + widget = MwCreateWidget(*classes[class_num].cls, classes[class_num].name, window, 0, 0, 100, 100); - case 15: - cls = MwTreeViewClass; - break; - case 16: - cls = MwViewportClass; - break; - default: - cls = NULL; - break; - } - printf("%d\n", r); - if(cls) { - widget = MwCreateWidget(cls, "Cls", window, 0, 0, 100, 100); + printf("%s\n", classes[class_num].name); + /* apply int params with random scale */ + for(i = 0; i < (sizeof(int_params) / sizeof(void*)); i++) { + unsigned long number = rand() % UINT8_MAX; + printf("> %s = %lu\n", int_params[i], number); + MwVaApply(widget, int_params[i], number, NULL); + MwStep(window); } - MwStep(window); - if(cls) { - MwDestroyWidget(widget); - } + MwDestroyWidget(widget); + + printf("\n"); } } From 2e233426203871e140ad31b1aa9a97bc44470827 Mon Sep 17 00:00:00 2001 From: nishi Date: Sun, 26 Apr 2026 19:54:19 -0500 Subject: [PATCH 553/836] Update src/backend/x11.c --- src/backend/x11.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/backend/x11.c b/src/backend/x11.c index 3e03eca7e..1e1f932cd 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -981,6 +981,7 @@ static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { XRenderFreePicture(handle->x11.display, src_pic); \ XRenderFreePicture(handle->x11.display, dest_pic); \ XFreePixmap(handle->x11.display, src_px); \ + XFreeGC(handle->x11.display, gc); } static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { From 3005ec9c0c1217d5897e36ac554720d882b427d1 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 18:11:39 -0700 Subject: [PATCH 554/836] fuzzer fixes --- tools/fuzzer.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/fuzzer.c b/tools/fuzzer.c index bfc3a0e2e..b64ba1d5d 100644 --- a/tools/fuzzer.c +++ b/tools/fuzzer.c @@ -40,8 +40,9 @@ get_input: upper_limit = maxxes[3]; break; default: - printf("Invalid value. Pick 0-3.\n"); - goto get_input; + upper_limit = maxxes[0]; + // printf("Invalid value. Pick 0-3.\n"); + // goto get_input; } MwLibraryInit(); @@ -58,8 +59,8 @@ get_input: unsigned long number = rand() % UINT8_MAX; printf("> %s = %lu\n", int_params[i], number); MwVaApply(widget, int_params[i], number, NULL); - MwStep(window); } + MwStep(window); MwDestroyWidget(widget); From 9035133782b8056cd1188362bb46d329507e05b8 Mon Sep 17 00:00:00 2001 From: nishi Date: Sun, 26 Apr 2026 20:13:33 -0500 Subject: [PATCH 555/836] Update src/backend/x11.c --- src/backend/x11.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/x11.c b/src/backend/x11.c index 1e1f932cd..42750d56a 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -981,7 +981,7 @@ static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { XRenderFreePicture(handle->x11.display, src_pic); \ XRenderFreePicture(handle->x11.display, dest_pic); \ XFreePixmap(handle->x11.display, src_px); \ - XFreeGC(handle->x11.display, gc); + XFreeGC(handle->x11.display, gc); \ } static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { From bb51bc3c5f25b068072ceb6198dc570d78fd0ce6 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 19:34:11 -0700 Subject: [PATCH 556/836] x11: have upper bounds on pixmap drawings --- src/backend/x11.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/backend/x11.c b/src/backend/x11.c index 42750d56a..1d73ed175 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -981,11 +981,14 @@ static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { XRenderFreePicture(handle->x11.display, src_pic); \ XRenderFreePicture(handle->x11.display, dest_pic); \ XFreePixmap(handle->x11.display, src_px); \ - XFreeGC(handle->x11.display, gc); \ + XFreeGC(handle->x11.display, gc); \ } static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { if(rect->width <= 0 || rect->height <= 0 || pixmap->common.width <= 0 || pixmap->common.height <= 0) return; + if(rect->width >= INT16_MAX) rect->width = INT16_MAX; + if(rect->height >= INT16_MAX) rect->height = INT16_MAX; + #ifdef USE_XRENDER if(pixmap->x11.image != NULL && pixmap->x11.use_xrender) { Pixmap px; From 3779b2e0dbc9b4af55490a94cd3d257328f13636 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 19:43:32 -0700 Subject: [PATCH 557/836] new x11 option for disabling the forced click-to-focus so that the fuzzer can work: --- configure | 17 ++++++++++------- pl/rules.pl | 4 ++++ src/backend/x11.c | 5 ++++- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/configure b/configure index 6bd00b710..af9247062 100755 --- a/configure +++ b/configure @@ -47,6 +47,8 @@ param_set("static", 1); param_set("examples", 1); param_set("dbus", 1); +# (option that only makes sense on x11) +param_set("allow-sloppy-focus", 0); my %features = ( "classic-theme" => "use classic theme", @@ -61,7 +63,8 @@ my %features = ( "static" => "build static library", "wayland" => "enable wayland backend", "gnustep" => "use gnustep", - "dbus" => "use DBus on supported platform" + "dbus" => "use DBus on supported platform", + "allow-sloppy-focus" => "prevent the x11 backend from using XSetInputFocus to enforce click-to-focus" ); my @features_keys = ( "1classic-theme", "1stb-image", @@ -81,6 +84,12 @@ sub def_platform { param_set("freetype2", 0); param_set("stb-truetype", 1); } + if($target eq "Linux") { + param_set("x11", 1); + if(!param_get("tiny")){ + param_set("wayland", 1); + } + } } foreach my $l (@ARGV) { @@ -91,12 +100,6 @@ foreach my $l (@ARGV) { def_platform(); -if($target eq "Linux") { - param_set("x11", 1); - if(!param_get("tiny")){ - param_set("wayland", 1); - } -} foreach my $l (@ARGV) { if ($l =~ /^--with-([^=]+)=(.+)$/) { diff --git a/pl/rules.pl b/pl/rules.pl index 348a57671..c435bff82 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -110,6 +110,10 @@ else { if (param_get("stb-truetype")) { add_cflags("-DUSE_STB_TRUETYPE"); } +if (param_get("allow-sloppy-focus")) { + add_cflags("-DALLOW_SLOPPY_FOCUS"); +} + add_incdir("-Iexternal/libz/include"); diff --git a/src/backend/x11.c b/src/backend/x11.c index 1d73ed175..b8f68f555 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -708,7 +708,8 @@ static void MwLLNextEventImpl(MwLL handle) { p.button = MwMOUSE_WHEELDOWN; } - XSetInputFocus(handle->x11.display, handle->x11.window, RevertToNone, CurrentTime); + /* this really shouldn't be in this function but it might be needed for enforcing click-to-focus. check later. */ + /* XSetInputFocus(handle->x11.display, handle->x11.window, RevertToNone, CurrentTime);*/ MwLLDispatch(handle, down, &p); } else if(ev.type == ButtonRelease) { @@ -1200,7 +1201,9 @@ static void MwLLShowImpl(MwLL handle, int show) { if(show) { wait_map(handle, 1); +#ifndef ALLOW_SLOPPY_FOCUS XSetInputFocus(handle->x11.display, handle->x11.window, RevertToNone, CurrentTime); +#endif } else { wait_unmap(handle, 1); } From 4bf321f3a2dd84ad4121360b0cd69501d5a7fd42 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 27 Apr 2026 11:44:03 +0900 Subject: [PATCH 558/836] introduce MwFreeWidget --- include/Mw/Core.h | 8 ++++++++ milsko.xml | 19 +++++++++++++++++++ src/backend/x11.c | 3 +++ src/core.c | 11 ++++++++--- src/widget/label.c | 2 ++ tools/fuzzer.c | 10 +++++++--- 6 files changed, 47 insertions(+), 6 deletions(-) diff --git a/include/Mw/Core.h b/include/Mw/Core.h index bf1c6f059..37cbc9f99 100644 --- a/include/Mw/Core.h +++ b/include/Mw/Core.h @@ -375,6 +375,14 @@ MWDECL void MWAPI MwSetUser(MwWidget handle, void* user); */ MWDECL void* MWAPI MwGetUser(MwWidget handle); +/*! + * @brief Free the widget + * @param handle Widget + * @warning This is used internally! + * @note You can call this on toplevel widget safely if you're sure no event loops will be ran, e.g. after `MwLoop`. + */ +MWDECL void MWAPI MwFreeWidget(MwWidget handle); + #ifdef _MILSKO MWDECL void MwForceRender_Internal(MwWidget handle); MWDECL void MwForceRender2_Internal(MwWidget handle, void* ptr); diff --git a/milsko.xml b/milsko.xml index c3d26b352..e5165a4fb 100644 --- a/milsko.xml +++ b/milsko.xml @@ -518,6 +518,25 @@ + + + + + + + + + + + + + + + + + + +
diff --git a/src/backend/x11.c b/src/backend/x11.c index b8f68f555..500ef7d72 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -1164,6 +1164,9 @@ Cursor MwLLX11CreateCursor(Display* display, MwCursor* image, MwCursor* mask) { XDestroyImage(cimage); XDestroyImage(cmask); + XFreeGC(display, imagegc); + XFreeGC(display, maskgc); + return cur; } diff --git a/src/core.c b/src/core.c index e0c018f88..0a125da60 100644 --- a/src/core.c +++ b/src/core.c @@ -278,8 +278,10 @@ static MwWidget MwCreateWidget_Internal(MwClass widget_class, const char* name, } else #endif { - h->root_font = NULL; - h->root_boldfont = NULL; + h->root_font = NULL; + h->root_boldfont = NULL; + h->root_monofont = NULL; + h->root_boldmonofont = NULL; } if(h->parent != NULL) MwDispatch(h->parent, children_update); @@ -324,7 +326,7 @@ MwWidget MwVaListCreateWidget(MwClass widget_class, const char* name, MwWidget p return h; } -static void MwFreeWidget(MwWidget handle) { +void MwFreeWidget(MwWidget handle) { int i; MwWidget root = handle; MwWidget w; @@ -351,6 +353,7 @@ static void MwFreeWidget(MwWidget handle) { for(i = 0; i < arrlen(handle->children); i++) { MwFreeWidget(handle->children[i]); } + arrfree(handle->children); while(root->parent != NULL) root = root->parent; for(i = 0; i < arrlen(root->tick_list); i++) { @@ -384,6 +387,8 @@ static void MwFreeWidget(MwWidget handle) { if(handle->root_font != NULL) MwFontFree(handle->root_font); if(handle->root_boldfont != NULL) MwFontFree(handle->root_boldfont); + if(handle->root_monofont != NULL) MwFontFree(handle->root_monofont); + if(handle->root_boldmonofont != NULL) MwFontFree(handle->root_boldmonofont); free(handle); } diff --git a/src/widget/label.c b/src/widget/label.c index 29e63e9c2..64cfcbd13 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -309,6 +309,8 @@ static void draw(MwWidget handle) { r.width = w; MwLLDrawPixmap(handle->lowlevel, &r, px); + free(raw); + MwLLDestroyPixmap(px); } else { r.width -= MwGetInteger(handle, MwNleftPadding); diff --git a/tools/fuzzer.c b/tools/fuzzer.c index b64ba1d5d..bacfd7435 100644 --- a/tools/fuzzer.c +++ b/tools/fuzzer.c @@ -15,7 +15,7 @@ char* int_params[] = {/*MwNx, MwNy, MwNwidth, MwNheight,*/ MwNorientation, unsigned long maxxes[] = {UINT8_MAX, UINT16_MAX, UINT32_MAX, UINT64_MAX}; int main() { - int i; + int i, j = 0; char input; MwWidget window, widget; unsigned long upper_limit; @@ -49,14 +49,14 @@ get_input: window = MwCreateWidget(MwWindowClass, "window", NULL, 0, 0, 400, 400); - while(MwPending(window)) { + while(MwPending(window) && j < 50) { int class_num = rand() % (sizeof(classes) / sizeof(cls_pair_t)); widget = MwCreateWidget(*classes[class_num].cls, classes[class_num].name, window, 0, 0, 100, 100); printf("%s\n", classes[class_num].name); /* apply int params with random scale */ for(i = 0; i < (sizeof(int_params) / sizeof(void*)); i++) { - unsigned long number = rand() % UINT8_MAX; + unsigned long number = rand() % upper_limit; printf("> %s = %lu\n", int_params[i], number); MwVaApply(widget, int_params[i], number, NULL); } @@ -65,5 +65,9 @@ get_input: MwDestroyWidget(widget); printf("\n"); + + j++; } + + MwFreeWidget(window); } From 2a982603d3945f7f34984de4ee5a37f0f17f024e Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 27 Apr 2026 11:58:53 +0900 Subject: [PATCH 559/836] fix font rendering --- src/text/ft2.c | 10 +++++++--- src/text/stbtt.c | 11 ++++++++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/text/ft2.c b/src/text/ft2.c index 37bed4e85..0cff8666d 100644 --- a/src/text/ft2.c +++ b/src/text/ft2.c @@ -100,11 +100,11 @@ static int ft2_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const c } static int ft2_MwTextWidth(MwFLFont ttf, const char* text) { - int tw = 0; + int tw = 0; + FT_Vector vec; while(text[0] != 0) { int c, c2; - FT_Vector vec; const char* old_text; text += MwUTF8ToUTF32(text, &c); @@ -123,7 +123,11 @@ static int ft2_MwTextWidth(MwFLFont ttf, const char* text) { text = old_text; } - tw += ttf->face->glyph->bitmap_left + ttf->face->glyph->bitmap.width; + if(tw > 0) { + tw -= vec.x >> 6; + tw -= ttf->face->glyph->advance.x >> 6; + tw += ttf->face->glyph->bitmap_left + ttf->face->glyph->bitmap.width; + } return tw + 1; } diff --git a/src/text/stbtt.c b/src/text/stbtt.c index 369ad2041..bd2674145 100644 --- a/src/text/stbtt.c +++ b/src/text/stbtt.c @@ -91,9 +91,9 @@ static int stbtt_MwTextWidth(MwFLFont ttf, const char* text) { int tw = 0; int c; int x0, y0, x1, y1; + int kern; while(text[0] != 0) { - int kern; int c2; const char* old_text; @@ -113,8 +113,13 @@ static int stbtt_MwTextWidth(MwFLFont ttf, const char* text) { text = old_text; } - stbtt_GetCodepointBitmapBox(&ttf->font, c, ttf->scale, ttf->scale, &x0, &y0, &x1, &y1); - tw += x1; + if(tw > 0) { + tw -= ceil(kern * ttf->scale); + tw -= ceil(ax * ttf->scale); + stbtt_GetCodepointBitmapBox(&ttf->font, c, ttf->scale, ttf->scale, &x0, &y0, &x1, &y1); + tw += ceil(lsb * ttf->scale); + tw += x1 - x0; + } return tw + 1; } From beba0116a0b7abc26609a91917826048b6d218ee Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 19:49:02 -0700 Subject: [PATCH 560/836] put MwLLNextEvent's XSetInputFocus under the new option --- src/backend/x11.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/backend/x11.c b/src/backend/x11.c index 500ef7d72..82e7be3ce 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -708,8 +708,9 @@ static void MwLLNextEventImpl(MwLL handle) { p.button = MwMOUSE_WHEELDOWN; } - /* this really shouldn't be in this function but it might be needed for enforcing click-to-focus. check later. */ - /* XSetInputFocus(handle->x11.display, handle->x11.window, RevertToNone, CurrentTime);*/ +#ifndef ALLOW_SLOPPY_FOCUS + XSetInputFocus(handle->x11.display, handle->x11.window, RevertToNone, CurrentTime); +#endif MwLLDispatch(handle, down, &p); } else if(ev.type == ButtonRelease) { From ea5906b03b22c4f7ae4f8f45b0325ef257687fa9 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 20:01:03 -0700 Subject: [PATCH 561/836] wayland --- src/backend/wayland.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 495df92a6..23079f674 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -18,7 +18,8 @@ wayland_call_table_t wl_call_tbl; MwBool MwWaylandAlwaysRender = MwFALSE; static pthread_mutex_t destroyedWidgetsTableMutex; -static MwLL* destroyedWidgetsTable; +/* So Wayland, bless its soul; it keeps using callbacks LONG after they should not only be destroyed but the widget doesn't even exist anymore. Naturally, this causes use after free. so we fight fire with fire in the worst code i've ever written: by storing the freed pointers here, we disallow wayland from ever using them again. if something else is created that takes this slot, we remove it from the table. */ +static MwLL* destroyedWidgetsTable; static MwBool is_destroyed(MwLL self) { int i; @@ -364,7 +365,8 @@ static void wl_data_source_listener_cancelled(void* data, WAYLAND_EVENT_OP_START(self); - wl_data_source_destroy(wl_data_source); + if(wl_data_source) + wl_data_source_destroy(wl_data_source); self->wayland.clipboard_source.wl = wl_data_device_manager_create_data_source(self->wayland.clipboard_manager.wl); @@ -454,9 +456,12 @@ static void wl_data_device_manager_interface_destroy(struct _MwLLWayland* waylan (void)data; if(wayland->clipboard_manager.wl != NULL) { wl_data_device_manager_destroy(wayland->clipboard_manager.wl); - wl_data_source_destroy(wayland->clipboard_source.wl); wayland->clipboard_manager.wl = NULL; } + if(wayland->clipboard_source.wl) { + // wl_data_source_destroy(wayland->clipboard_source.wl); + wayland->clipboard_source.wl = NULL; + } } /* zwp_primary_selection_device_manager_v1 setup function */ @@ -2057,12 +2062,12 @@ static void MwLLDestroyImpl(MwLL handle) { wl_flush(handle); - free(handle); - pthread_mutex_lock(&destroyedWidgetsTableMutex); arrput(destroyedWidgetsTable, handle); pthread_mutex_unlock(&destroyedWidgetsTableMutex); + free(handle); + if(currentlyHeldWidget == handle) { currentlyHeldWidget = NULL; } @@ -2474,6 +2479,11 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { cairo_t* c; cairo_surface_t* cs; cairo_t* selected_cairo = handle->wayland.selected_cairo ? handle->wayland.selected_cairo : handle->wayland.front_cairo; + + if(rect->width <= 0 || rect->height <= 0 || pixmap->common.width <= 0 || pixmap->common.height <= 0) return; + if(rect->width >= INT16_MAX) rect->width = INT16_MAX; + if(rect->height >= INT16_MAX) rect->height = INT16_MAX; + WIDGET_CHECK(handle); cs = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, rect->width, rect->height); From 4f7b3718e3453a50faf877ad551e7e82708b4f83 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 27 Apr 2026 12:07:06 +0900 Subject: [PATCH 562/836] better looking progressbar --- src/widget/progressbar.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/widget/progressbar.c b/src/widget/progressbar.c index ec80a3eb9..5cb6f1569 100644 --- a/src/widget/progressbar.c +++ b/src/widget/progressbar.c @@ -23,10 +23,10 @@ static void draw(MwWidget handle) { r.width = MwGetInteger(handle, MwNwidth); r.height = MwGetInteger(handle, MwNheight); - MwDrawFrame(handle, &r, base, 1); - MwDrawRect(handle, &r, base); w = MwGetInteger(handle, MwNvalue) - MwGetInteger(handle, MwNminValue); w = w / (MwGetInteger(handle, MwNmaxValue) - MwGetInteger(handle, MwNminValue)); + + MwDrawWidgetBack(handle, &r, base, 1, MwTRUE); if(bgpx != NULL) MwLLDrawPixmap(handle->lowlevel, &r, bgpx); r.x += MwDefaultBorderWidth(handle); From fa3488402ee13e55f3c9153706a969000df41c0d Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 20:07:14 -0700 Subject: [PATCH 563/836] apologies to all niri users guess you can't use clipboard until we find that out --- src/backend/wayland.c | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 23079f674..715a9880d 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -437,14 +437,6 @@ static wayland_protocol_t* wl_data_device_manager_setup(MwU32 name, struct _MwLL wl_data_source_add_listener(wayland->clipboard_source.wl, &wl_data_source_listener, wayland); - while(!wayland->pointer_seat) { - if(wl_display_roundtrip(wayland->display) == -1) { - printf("roundtrip failed: %d\n", wl_display_get_error(wayland->display)); - raise(SIGTRAP); - return NULL; - } - } - if(wayland->pointer_seat) { setup_clipboard((MwLL)wayland, wayland->pointer_seat); } @@ -480,14 +472,6 @@ static wayland_protocol_t* zwp_primary_selection_device_manager_v1_setup(MwU32 n wayland->supports_zwp = MwTRUE; - while(!wayland->pointer_seat) { - if(wl_display_roundtrip(wayland->display) == -1) { - printf("roundtrip failed: %d\n", wl_display_get_error(wayland->display)); - raise(SIGTRAP); - return NULL; - } - } - if(wayland->pointer_seat) { setup_zwp_clipboard((MwLL)wayland, wayland->pointer_seat); } @@ -2437,6 +2421,9 @@ static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int wid MwLLPixmap r = malloc(sizeof(*r)); (void)handle; + if(width >= INT16_MAX) width = INT16_MAX; + if(height >= INT16_MAX) height = INT16_MAX; + r->common.width = width; r->common.height = height; r->common.raw = malloc(4 * width * height); From 1562c3b89e52ebd4d0bedb47c1faa051a877917b Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 20:31:09 -0700 Subject: [PATCH 564/836] cocoa backend postponed --- pl/ostype/Darwin.pl | 3 ++- src/backend/nococoa.m | 8 ++++++++ src/core.c | 7 +++++-- 3 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 src/backend/nococoa.m diff --git a/pl/ostype/Darwin.pl b/pl/ostype/Darwin.pl index c786eb87f..5d5baabdb 100644 --- a/pl/ostype/Darwin.pl +++ b/pl/ostype/Darwin.pl @@ -1,7 +1,8 @@ $library_suffix = ".dylib"; set_shared_flag("-dynamiclib"); -use_backend("cocoa"); +#use_backend("cocoa"); +new_object("src/backend/nococoa.m"); add_cflags("-DSTBI_NO_THREAD_LOCALS"); add_ldflags("-framework Cocoa -lobjc"); diff --git a/src/backend/nococoa.m b/src/backend/nococoa.m new file mode 100644 index 000000000..c0e3c704e --- /dev/null +++ b/src/backend/nococoa.m @@ -0,0 +1,8 @@ +#include + +void MwLLNoCocoaErrorMessage() { + NSAlert* alert = [[NSAlert alloc] init]; + [alert setMessageText:@"Milsko applications currently requires XQuartz or cocoa-way. PRs are welcome for anyone who wants to finish the Cocoa backend (prefarably in Objective-C)"]; + [alert addButtonWithTitle:@"Ok"]; + [alert runModal]; +} diff --git a/src/core.c b/src/core.c index 0a125da60..76507ea02 100644 --- a/src/core.c +++ b/src/core.c @@ -967,7 +967,6 @@ int MwLibraryInit(void) { #ifdef USE_WAYLAND MwLLWaylandCallInit, #endif -/* x11 has higher priority then cocoa until it works */ #ifdef USE_X11 MwLLX11CallInit, #endif @@ -989,6 +988,10 @@ int MwLibraryInit(void) { if(calls[i]() == 0) return 0; } +#ifdef __APPLE__ + void MwNoCocoaErrorMessage(); + MwNoCocoaErrorMessage(); +#else printf("[WARNING] No suitable GUI backend found! Enabled:" #ifdef USE_COCOA " Cocoa" @@ -1006,7 +1009,7 @@ int MwLibraryInit(void) { " ClassicMacOS" #endif "\n"); - +#endif return 1; } From b63936747075ff8e0cb2c6abaa1c15d0519d1945 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 27 Apr 2026 12:41:53 +0900 Subject: [PATCH 565/836] remove roundness --- include/Mw/StringDefs.h | 1 - src/widget/button.c | 1 - 2 files changed, 2 deletions(-) diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index 36366f4fb..95340853b 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -39,7 +39,6 @@ #define MwNsevenSegment "IsevenSegment" #define MwNlength "Ilength" #define MwNforceInverted "IforceInverted" -#define MwNroundness "Iroundness" #define MwNisRounded "IisRounded" #define MwNdarkTheme "IdarkTheme" #define MwNuseMonospace "IuseMonospace" diff --git a/src/widget/button.c b/src/widget/button.c index edee8c18d..a73635628 100644 --- a/src/widget/button.c +++ b/src/widget/button.c @@ -8,7 +8,6 @@ static int wcreate(MwWidget handle) { MwSetInteger(handle, MwNflat, 0); MwSetInteger(handle, MwNpadding, 0); MwSetInteger(handle, MwNfillArea, 1); - MwSetInteger(handle, MwNroundness, 5); return 0; } From c14c267ebeabf5c52780fd7b259ca79082c718b0 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 27 Apr 2026 12:45:48 +0900 Subject: [PATCH 566/836] add iteration option to fuzzer --- configure | 2 +- tools/fuzzer.c | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/configure b/configure index af9247062..d0915229a 100755 --- a/configure +++ b/configure @@ -221,7 +221,7 @@ print(OUT " cp -rf include \$(DESTDIR)\$(PREFIX)/\n"); print(OUT "\n"); print(OUT "format:\n"); print(OUT -" clang-format --verbose -i `find src include examples \"(\" -name \"*.c\" -or -name \"*.h\" -or -name \"*.m\" \")\" -and -not -name \"*ttf.c\"`\n" +" clang-format --verbose -i `find tools src include examples \"(\" -name \"*.c\" -or -name \"*.h\" -or -name \"*.m\" \")\" -and -not -name \"*ttf.c\"`\n" ); print(OUT " perltidy -b -bext=\"/\" --paren-tightness=2 `find tools pl configure -name \"*.pl\"`\n" diff --git a/tools/fuzzer.c b/tools/fuzzer.c index bacfd7435..dae1dde25 100644 --- a/tools/fuzzer.c +++ b/tools/fuzzer.c @@ -11,15 +11,18 @@ typedef struct cls_pair { } cls_pair_t; cls_pair_t classes[] = {H(MwBoxClass), H(MwButtonClass), H(MwCheckBoxClass), H(MwComboBoxClass), H(MwEntryClass), H(MwFrameClass), H(MwImageClass), H(MwLabelClass), H(MwListBoxClass), H(MwMenuClass), H(MwNumberEntryClass), H(MwProgressBarClass), H(MwRadioBoxClass), H(MwScrollBarClass), H(MwSeparatorClass), H(MwTreeViewClass), H(MwViewportClass)}; -char* int_params[] = {/*MwNx, MwNy, MwNwidth, MwNheight,*/ MwNorientation, MwNminValue, MwNmaxValue, MwNvalue, MwNchangedBy, MwNareaShown, MwNchecked, MwNalignment, MwNbold, MwNmain, MwNleftPadding, MwNhasHeading, MwNhasBorder, MwNinverted, MwNmodernLook, MwNwaitMS, MwNhideInput, MwNsingleClickSelectable, MwNflat, MwNshowArrows, MwNpadding, MwNborderWidth, MwNfillArea, MwNratio, MwNfixedSize, MwNmargin, MwNbitmapFont, MwNsevenSegment, MwNlength, MwNforceInverted, MwNroundness, MwNisRounded, MwNdarkTheme}; +char* int_params[] = {/*MwNx, MwNy, MwNwidth, MwNheight,*/ MwNorientation, MwNminValue, MwNmaxValue, MwNvalue, MwNchangedBy, MwNareaShown, MwNchecked, MwNalignment, MwNbold, MwNmain, MwNleftPadding, MwNhasHeading, MwNhasBorder, MwNinverted, MwNmodernLook, MwNwaitMS, MwNhideInput, MwNsingleClickSelectable, MwNflat, MwNshowArrows, MwNpadding, MwNborderWidth, MwNfillArea, MwNratio, MwNfixedSize, MwNmargin, MwNbitmapFont, MwNsevenSegment, MwNlength, MwNforceInverted, MwNisRounded, MwNdarkTheme}; unsigned long maxxes[] = {UINT8_MAX, UINT16_MAX, UINT32_MAX, UINT64_MAX}; int main() { - int i, j = 0; + int i, j = 0, max = 0; char input; MwWidget window, widget; unsigned long upper_limit; + printf("How many iteration do you want to do? Type -1 if you wanna run it forever.\n"); + scanf("%d", &max); + printf("What upper limit of int params do you want to test?\n"); for(i = 0; i < (sizeof(maxxes) / sizeof(unsigned long)); i++) { printf("%d) %lu\n", i, maxxes[i]); @@ -49,7 +52,7 @@ get_input: window = MwCreateWidget(MwWindowClass, "window", NULL, 0, 0, 400, 400); - while(MwPending(window) && j < 50) { + while(MwPending(window) && (max == -1 || j < max)) { int class_num = rand() % (sizeof(classes) / sizeof(cls_pair_t)); widget = MwCreateWidget(*classes[class_num].cls, classes[class_num].name, window, 0, 0, 100, 100); @@ -68,6 +71,6 @@ get_input: j++; } - + MwFreeWidget(window); } From a8b2fa1e18ef5a686de006b95b0a8a24790cef5f Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 27 Apr 2026 12:59:01 +0900 Subject: [PATCH 567/836] prepare for 1.0 --- resource/logo/banner.pov | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/resource/logo/banner.pov b/resource/logo/banner.pov index 426d1c80d..7f496f715 100644 --- a/resource/logo/banner.pov +++ b/resource/logo/banner.pov @@ -1,6 +1,25 @@ #declare BASE = 1; #include "resource/logo/logo.pov" +#ifdef(VERSION_10) +object { + text { + ttf "resource/font/IBMPlexSerif.ttf", + "1.0", + 1, 0 + } + scale 5 + translate <7.5, -1, 1> + pigment { + color Red + } + finish { + phong 1 + reflection 0.3 + } +} +#end + object { text { ttf "resource/font/IBMPlexSerif.ttf", From 93a7c5e350aa15e16076567d7765b133aed98405 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 27 Apr 2026 13:00:35 +0900 Subject: [PATCH 568/836] prepare for 1.0 --- resource/logo/banner.pov | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resource/logo/banner.pov b/resource/logo/banner.pov index 7f496f715..3474f066b 100644 --- a/resource/logo/banner.pov +++ b/resource/logo/banner.pov @@ -1,11 +1,11 @@ #declare BASE = 1; #include "resource/logo/logo.pov" -#ifdef(VERSION_10) +#ifdef(VERSION) object { text { ttf "resource/font/IBMPlexSerif.ttf", - "1.0", + VERSION, 1, 0 } scale 5 From 24d7412f1c319dd59c5b2b28c21a7070c97f9cef Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 27 Apr 2026 13:07:56 +0900 Subject: [PATCH 569/836] prepare for 1.0 --- resource/logo/banner.pov | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resource/logo/banner.pov b/resource/logo/banner.pov index 3474f066b..0f4e3ec7f 100644 --- a/resource/logo/banner.pov +++ b/resource/logo/banner.pov @@ -9,7 +9,7 @@ object { 1, 0 } scale 5 - translate <7.5, -1, 1> + translate <7.5, 0, 1> pigment { color Red } From d3135d4c1e5500429c7bbeb413954764c1e95b20 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 21:16:32 -0700 Subject: [PATCH 570/836] wayland: fix clipboard --- CMakeLists.txt | 62 ++++++++++++++++++++++++++++++++----------- src/backend/wayland.c | 5 ++++ 2 files changed, 51 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a6f823d31..33722b0e3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -131,17 +131,18 @@ if(MW_USE_STB_TRUETYPE) endif() if(MW_USE_FREETYPE2) - target_compile_definitions( + find_package(Freetype) + if(Freetype_FOUND) + target_compile_definitions( Mw PRIVATE USE_FREETYPE2 ) - find_package(PkgConfig) - pkg_check_modules(FT2 REQUIRED freetype2) - list(APPEND INCLUDE_DIRS ${FT2_INCLUDE_DIRS}) - list(APPEND LIBRARY_DIRS ${FT2_LIBRARY_DIRS}) - list(APPEND LIBRARIES ${FT2_LIBRARIES}) + list(APPEND INCLUDE_DIRS ${FT2_INCLUDE_DIRS}) + list(APPEND LIBRARY_DIRS ${FT2_LIBRARY_DIRS}) + list(APPEND LIBRARIES ${FT2_LIBRARIES}) + endif() endif() if(MW_USE_WAYLAND) @@ -197,6 +198,8 @@ if(MW_USE_WAYLAND) ) endfunction() + + check_include_files(wayland-client.h HAVE_WL_H) check_include_files(xkbcommon/xkbcommon.h HAVE_XKBCOMMON_H) check_include_files(cairo/cairo.h HAVE_CAIRO_H) @@ -318,27 +321,54 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "Retro") ) else() find_package(PkgConfig) - pkg_check_modules(X11 REQUIRED x11) - pkg_check_modules(XRENDER REQUIRED xrender) + find_package(X11) + pkg_check_modules(DBUS dbus-1) target_sources( Mw PRIVATE src/backend/x11.c ) - target_compile_definitions( - Mw - PRIVATE - USE_X11 - ) - list(APPEND INCLUDE_DIRS ${X11_INCLUDE_DIRS} ${XRENDER_INCLUDE_DIRS}) - list(APPEND LIBRARY_DIRS ${X11_LIBRARY_DIRS} ${XRENDER_LIBRARY_DIRS}) - list(APPEND LIBRARIES ${X11_LIBRARIES} ${XRENDER_LIBRARIES} m) + + if(${X11_FOUND}) + list(APPEND INCLUDE_DIRS ${X11_INCLUDE_DIRS}) + list(APPEND LIBRARY_DIRS ${X11_LIBRARY_DIRS}) + list(APPEND LIBRARIES ${X11_LIBRARIES} m) + target_compile_definitions( + Mw + PRIVATE + USE_X11 + ) + endif() + if(${X11_Xrender_FOUND}) + list(APPEND INCLUDE_DIRS ${XRENDER_INCLUDE_DIRS}) + list(APPEND LIBRARY_DIRS ${XRENDER_LIBRARY_DIRS}) + list(APPEND LIBRARIES ${XRENDER_LIBRARIES} m) + target_compile_definitions( + Mw + PRIVATE + USE_XRENDER + ) + endif() + if(CMAKE_SYSTEM_NAME STREQUAL "Linux") list(APPEND LIBRARIES dl) endif() endif() +find_package(DBus1) + +if(${DBus1_FOUND}) + list(APPEND INCLUDE_DIRS ${DBUS_INCLUDE_DIRS}) + list(APPEND LIBRARY_DIRS ${DBUS_LIBRARY_DIRS}) + list(APPEND LIBRARIES ${DBUS_LIBRARIES}) + target_compile_definitions( + Mw + PRIVATE + USE_DBUS + ) +endif() + target_include_directories( Mw PRIVATE diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 715a9880d..c3f5cbed1 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -979,6 +979,11 @@ static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat, wl_pointer_add_listener(self->wayland.pointer, &pointer_listener, data); } WAYLAND_EVENT_OP_END(self); + + if(self->wayland.clipboard_manager.wl) + setup_clipboard(self, self->wayland.pointer_seat); + if(self->wayland.clipboard_manager.zwp) + setup_zwp_clipboard(self, self->wayland.pointer_seat); }; static void output_geometry(void* data, From c7d9a2e6cc1043bf2d0f2da3e75c5d24695a1617 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 21:21:03 -0700 Subject: [PATCH 571/836] Wayland: fix input region --- src/backend/wayland.c | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index c3f5cbed1..06b60b561 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -1440,20 +1440,9 @@ static void region_setup(MwLL handle) { if(handle->wayland.type == MwLL_WAYLAND_POPUP) { wl_region_add(handle->wayland.region, 0, 0, width + abs(handle->wayland.x), height + abs(handle->wayland.y)); } else { - if(parent) { - if(width - handle->wayland.x > parent->wayland.ww) { - width = parent->wayland.ww - handle->wayland.x; - } - if(height - handle->wayland.y > parent->wayland.wh) { - height = parent->wayland.wh - handle->wayland.y; - } - } else { - if(!handle->wayland.has_decorations) { - width += CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT; - height += CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM; - } - } - wl_region_add(handle->wayland.region, 0, 0, width, height); + wl_region_subtract(handle->wayland.region, 0, 0, width + abs(handle->wayland.x), height + abs(handle->wayland.y)); + wl_region_add(handle->wayland.region, handle->wayland.clipping_rect.x, handle->wayland.clipping_rect.y, handle->wayland.clipping_rect.width, handle->wayland.clipping_rect.height); + // wl_region_add(handle->wayland.region, 0, 0, width, height); } if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { From c56bea32ed5627b58ffbcb34b496f6d72d628589 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 27 Apr 2026 13:45:39 +0900 Subject: [PATCH 572/836] document some of lowlevel functions --- README.txt | 2 +- doc/LOWLEVEL.md | 5 ----- include/Mw/Core.h | 6 +++--- include/Mw/LowLevel.h | 42 ++++++++++++++++++++++++++++++++++++++++++ include/Mw/Version.h | 14 ++++++++++++-- src/core.c | 2 ++ 6 files changed, 60 insertions(+), 11 deletions(-) delete mode 100644 doc/LOWLEVEL.md diff --git a/README.txt b/README.txt index dc9d6bf2f..76a67a01a 100644 --- a/README.txt +++ b/README.txt @@ -1,5 +1,5 @@ -Greetings - Welcome to the Milsko GUI Toolkit (Version pre-1.0) +Greetings - Welcome to the Milsko GUI Toolkit (Version 1.0) This document contains a brief summary of the contents of this source distributions and building instructions for Milsko GUI Toolkit. diff --git a/doc/LOWLEVEL.md b/doc/LOWLEVEL.md deleted file mode 100644 index 9593e8d07..000000000 --- a/doc/LOWLEVEL.md +++ /dev/null @@ -1,5 +0,0 @@ -# LowLevel.h function tips -@warning This is mainly for developers - -1. `MwLLSetSizeHints`, `MwLLMakeBorderless`, `MwLLMakeToolWindow`, `MwLLMakePopup` have to be called between `MwLLBeginStateChange` and `MwLLEndStateChange` - diff --git a/include/Mw/Core.h b/include/Mw/Core.h index 37cbc9f99..80fbb97d9 100644 --- a/include/Mw/Core.h +++ b/include/Mw/Core.h @@ -355,21 +355,21 @@ MWDECL void MWAPI MwGetScreenSize(MwWidget handle, MwRect* rect); MWDECL int MWAPI MwGetCoordinateType(MwWidget handle); /*! - * @brief Queue to get clipboard content. + * @brief Queue to get clipboard content * @param handle Widget * @param clipboard_type The Clipboard Type to get. See MwClipboardType. This is ignored on backends that aren't X11/Wayland, so if you're unsure, just use MwClipboardMain */ MWDECL void MWAPI MwGetClipboard(MwWidget handle, int clipboard_type); /*! - * @brief Set user pointer. + * @brief Set user pointer * @param handle Widget * @param user User pointer */ MWDECL void MWAPI MwSetUser(MwWidget handle, void* user); /*! - * @brief Get user pointer. + * @brief Get user pointer * @param handle Widget * @return User pointer */ diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 3b3ae66ba..696fd5141 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -218,7 +218,17 @@ MWDECL void (*MwLLDestroy)(MwLL handle); MWDECL void (*MwLLPolygon)(MwLL handle, MwPoint* points, int points_count, MwLLColor color); MWDECL void (*MwLLLine)(MwLL handle, MwPoint* points, MwLLColor color); + +/*! + * @brief Begin drawing sequence + * @param handle Handle + */ MWDECL void (*MwLLBeginDraw)(MwLL handle); + +/*! + * @brief End drawing sequence + * @param handle Handle + */ MWDECL void (*MwLLEndDraw)(MwLL handle); MWDECL MwLLColor (*MwLLAllocColor)(MwLL handle, int r, int g, int b); @@ -243,18 +253,44 @@ MWDECL void (*MwLLSetIcon)(MwLL handle, MwLLPixmap pixmap); MWDECL void (*MwLLForceRender)(MwLL handle); MWDECL void (*MwLLSetCursor)(MwLL handle, MwCursor* image, MwCursor* mask); + +/*! + * @brief Detach handle and make it toplevel window + * @param handle Handle + * @param point Point to be detached at, relative from the parent handle + */ MWDECL void (*MwLLDetach)(MwLL handle, MwPoint* point); MWDECL void (*MwLLShow)(MwLL handle, int show); MWDECL void (*MwLLSetSizeHints)(MwLL handle, int minx, int miny, int maxx, int maxy); MWDECL void (*MwLLMakeBorderless)(MwLL handle, int toggle); + +/*! + * @brief Make handle "tool" window, e.g. Submenu, combobox menu, and etc. + * @param handle Handle + */ MWDECL void (*MwLLMakeToolWindow)(MwLL handle); MWDECL void (*MwLLMakePopup)(MwLL handle, MwLL parent); +/*! + * @brief Begin changing state (has to be called before `MwLLSetSizeHints`, `MwLLMakeBorderless`, `MwLLMakeToolWindow`, and `MwLLMakePopup`) + * @param handle Handle + */ MWDECL void (*MwLLBeginStateChange)(MwLL handle); + +/*! + * @brief End changing state + * @param handle Handle + */ MWDECL void (*MwLLEndStateChange)(MwLL handle); MWDECL void (*MwLLFocus)(MwLL handle); + +/*! + * @brief Grab pointer, and keep moving pointer to center of handle + * @param handle Handle + * @param toggle Toggle + */ MWDECL void (*MwLLGrabPointer)(MwLL handle, int toggle); MWDECL void (*MwLLSetClipboard)(MwLL handle, const char* text, int clipboard_type); @@ -263,6 +299,12 @@ MWDECL void (*MwLLGetClipboard)(MwLL handle, int clipboard_type); MWDECL void (*MwLLGetCursorCoord)(MwLL handle, MwPoint* point); MWDECL void (*MwLLGetScreenSize)(MwLL handle, MwRect* rect); +/*! + * @brief Set dark theme + * @param handle Handle + * @param toggle Toggle + * @warning Do not run `handle->common.handler->dark_theme` when this function gets called + */ MWDECL void (*MwLLSetDarkTheme)(MwLL handle, int toggle); /* font renderer */ diff --git a/include/Mw/Version.h b/include/Mw/Version.h index e83fe71ea..f59205c37 100644 --- a/include/Mw/Version.h +++ b/include/Mw/Version.h @@ -8,16 +8,26 @@ /*! * @brief Major version */ -#define MwMAJOR 0 +#define MwMAJOR 1 /*! * @brief Minor version */ #define MwMINOR 0 +/*! + * @brief Patchlevel of version, calculated by `patchlevel_alphabet - 'a'` + */ +#define MwPATCH 0 + /*! * @brief Version in string */ -#define MwVERSION "pre-1.0" +#define MwVERSION "1.0" + +/*! + * @brief Version in string + */ +MWDECL const char* MwVersionString; #endif diff --git a/src/core.c b/src/core.c index 76507ea02..1565963de 100644 --- a/src/core.c +++ b/src/core.c @@ -1087,3 +1087,5 @@ void MwSetUser(MwWidget handle, void* user) { void* MwGetUser(MwWidget handle) { return handle->user; } + +const char* MwVersionString = MwVERSION; From 53ab5dd875e486fe7f18e3de1bb0a9b2d5a1f272 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 27 Apr 2026 13:46:42 +0900 Subject: [PATCH 573/836] add 1.0 banner --- resource/logo/banner_10.pov | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 resource/logo/banner_10.pov diff --git a/resource/logo/banner_10.pov b/resource/logo/banner_10.pov new file mode 100644 index 000000000..a306e9829 --- /dev/null +++ b/resource/logo/banner_10.pov @@ -0,0 +1,2 @@ +#declare VERSION="1.0"; +#include "resource/logo/banner.pov" From c0c64ad677a448432b0d00d22bdcd18e5737dd6a Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 21:51:29 -0700 Subject: [PATCH 574/836] backenddev.md --- doc/BACKENDDEV.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 doc/BACKENDDEV.md diff --git a/doc/BACKENDDEV.md b/doc/BACKENDDEV.md new file mode 100644 index 000000000..b77564bcc --- /dev/null +++ b/doc/BACKENDDEV.md @@ -0,0 +1,22 @@ +# Backend dev + +The basic process of creating a new Milsko backend is + +- Adding a new include header into `include/Mw/LowLevel`. It must include; + - `struct _MwLLBackendName`: Any details about a window or a subwidget + - `struct _MwLLBackendNameColor`: An 8-bit RGB Color. You'll probably never impl this, this is for platforms like X11/GDI where they have a secondary color representation that can be stored. + - `struct _MwLLBackendNamePixmap`: Self-explanatory. This is also used for the soft gradients in the modern theme. + - `MwLLBackendNameCallInitImpl(void)` called by `MwLibraryInit` to address and platform globals. + - Note that all of those structs are actually unions. They should all start with their `MwLLCommon...` equivalants. +- Creating a new impl file in `src/backend` + - Backends actually return a table of function pointers that you have to implement with static functions. Your file should end with `#include "call.c"` and then `CALL(BackendName);`, and somewhere you should have the impl for `MwLLBackendNameCallInitImpl(void)`. +- Add `MwLLBackendNameCallInitImpl` to the `MwLibraryInit` impl in `src/core.c`. +- Either + - a.) Modify `CMakeLists.txt` for your platform. + - b.) Add a new perl file in `pl/ostype` that `./configure` can reference, and modify `pl/rules.pl`; If you don't know how to use perl it's fine, just copy a file like the `Linux.pl` or `Windows.pl`, the functions you'll have to change for your platform are self explanatory. Ensure it ends with `1;`. + - c.) Both. + - Both are recommended, but some platforms like Classic Mac OS can't be used with the `./configure` script, and that's fine. + +The functions you'll have to impl are too many to list here so you should start by just copying `x11.c` and then replacing all the function impls with your own. + +\*\*Pay attention to some of these functions' comments in LowLevel.h as they might not be as you expect; for example, `MwLLSetDarkThemeImpl` is for setting the accent color to dark theme on platforms like modern Windows (dark theme itself is set with `MwSetInteger(handle, MwNdarktheme, 1)`). From a155126e844f0a21584a57c7065d8e236d67d2d6 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 21:53:19 -0700 Subject: [PATCH 575/836] mention enums in backenddev.md --- doc/BACKENDDEV.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/BACKENDDEV.md b/doc/BACKENDDEV.md index b77564bcc..826c77b3a 100644 --- a/doc/BACKENDDEV.md +++ b/doc/BACKENDDEV.md @@ -11,6 +11,7 @@ The basic process of creating a new Milsko backend is - Creating a new impl file in `src/backend` - Backends actually return a table of function pointers that you have to implement with static functions. Your file should end with `#include "call.c"` and then `CALL(BackendName);`, and somewhere you should have the impl for `MwLLBackendNameCallInitImpl(void)`. - Add `MwLLBackendNameCallInitImpl` to the `MwLibraryInit` impl in `src/core.c`. +- Add a new enum variation to `MwLLBackends` in `Mw/Include/LowLevel.h`; your impl of `MwLLCreateImpl` will set `common.type` to this so the user can check which backend they're on (important for platforms with multiple supported backends). - Either - a.) Modify `CMakeLists.txt` for your platform. - b.) Add a new perl file in `pl/ostype` that `./configure` can reference, and modify `pl/rules.pl`; If you don't know how to use perl it's fine, just copy a file like the `Linux.pl` or `Windows.pl`, the functions you'll have to change for your platform are self explanatory. Ensure it ends with `1;`. From 153b7e82542409f81ada20fef987d89b4d4bbb6f Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 21:57:46 -0700 Subject: [PATCH 576/836] wayland: allow use on macos --- include/Mw/LowLevel/Wayland.h | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index ba6075198..0d46e503a 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -139,19 +139,31 @@ extern wayland_call_table_t wl_call_tbl; extern MwBool MwWaylandAlwaysRender; /* defined inline right here so that it doesn't conflict with the other macros */ MwInline int wayland_load_funcs() { +#ifdef __APPLE__ + wl_call_tbl.lib = MwDynamicOpen("libwayland-client.dylib"); +#else wl_call_tbl.lib = MwDynamicOpen("libwayland-client.so"); +#endif if(!wl_call_tbl.lib) { - printf("(libwayland-client.so not found, falling back to X11)\n"); + printf("(libwayland-client not found, falling back to X11)\n"); return 1; } +#ifdef __APPLE__ + wl_call_tbl.xkb_lib = MwDynamicOpen("libxkbcommon.dylib"); +#else wl_call_tbl.xkb_lib = MwDynamicOpen("libxkbcommon.so"); +#endif if(!wl_call_tbl.xkb_lib) { - printf("(libxkbcommon.so not found, cannot use Wayland backend.)\n"); + printf("(libxkbcommon not found, cannot use Wayland backend.)\n"); return 1; } +#ifdef __APPLE__ + wl_call_tbl.cairo_lib = MwDynamicOpen("libcairo.dylib"); +#else wl_call_tbl.cairo_lib = MwDynamicOpen("libcairo.so"); +#endif if(!wl_call_tbl.cairo_lib) { - printf("(libcairo.so not found, cannot use Wayland backend.)\n"); + printf("(libcairo not found, cannot use Wayland backend.)\n"); return 1; } #define WAYLAND_FUNC(x) \ From 196a1c87f5306a8b0dba8495a919aabfe6aa8fdf Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 22:00:15 -0700 Subject: [PATCH 577/836] lowlevel.md: mention adding to mw/lowlevel.h --- doc/BACKENDDEV.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/BACKENDDEV.md b/doc/BACKENDDEV.md index 826c77b3a..4fa2ed72d 100644 --- a/doc/BACKENDDEV.md +++ b/doc/BACKENDDEV.md @@ -8,6 +8,7 @@ The basic process of creating a new Milsko backend is - `struct _MwLLBackendNamePixmap`: Self-explanatory. This is also used for the soft gradients in the modern theme. - `MwLLBackendNameCallInitImpl(void)` called by `MwLibraryInit` to address and platform globals. - Note that all of those structs are actually unions. They should all start with their `MwLLCommon...` equivalants. +- Fill out `Mw/LowLevel.h` appopriately, adding an include to your new file and the structs in the appropriate unions. These need to be guarded by a `USE_BACKENDNAME` macro which you'll define later when you modify the build system. - Creating a new impl file in `src/backend` - Backends actually return a table of function pointers that you have to implement with static functions. Your file should end with `#include "call.c"` and then `CALL(BackendName);`, and somewhere you should have the impl for `MwLLBackendNameCallInitImpl(void)`. - Add `MwLLBackendNameCallInitImpl` to the `MwLibraryInit` impl in `src/core.c`. From a8b406bc0418848e7e86fe7b077c33450723188c Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 22:03:00 -0700 Subject: [PATCH 578/836] update readme --- README.txt | 7 ++++--- tools/readme.pl | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/README.txt b/README.txt index 76a67a01a..2bf543daa 100644 --- a/README.txt +++ b/README.txt @@ -8,7 +8,6 @@ distributions and building instructions for Milsko GUI Toolkit. Milsko requires either * A Windows environment with GDI (so anything NT or 9x) - * A MacOS environment with Cocoa (10.4 or above supported) * A Unix-like environment with X11 for runtime. To build Milsko for Windows, you must have one of following compilers: @@ -63,8 +62,10 @@ D. MinGW-w64/GCC/Clang 1) Determine if you need Vulkan and/or OpenGL. -2) Run `./configure'. - For help, run `./configure --help'. +2) Either: + a.) Run `./configure'. For help, run `./configure --help'. + b.) Use CMake; i.e. `cmake -B build`. (if contributing, name the build +folder build as that's what's included in the .gitignore) 3) Run `make'. diff --git a/tools/readme.pl b/tools/readme.pl index 653184c1b..eab9cd62e 100755 --- a/tools/readme.pl +++ b/tools/readme.pl @@ -60,7 +60,7 @@ c("Requirements"); l(""); l(" Milsko requires either"); l(" * A Windows environment with GDI (so anything NT or 9x)"); -l(" * A MacOS environment with Cocoa (10.4 or above supported)"); +#l(" * A MacOS environment with Cocoa (10.4 or above supported)"); l(" * A Unix-like environment with X11 for runtime."); l(""); l(" To build Milsko for Windows, you must have one of following compilers:"); @@ -106,8 +106,9 @@ l("1) Run `wmake -f WatMakefile'."); h("D. MinGW-w64/GCC/Clang"); l("1) Determine if you need Vulkan and/or OpenGL."); l(""); -l("2) Run `./configure'."); -l(" For help, run `./configure --help'."); +l("2) Either:"); +l(" a.) Run `./configure'. For help, run `./configure --help'."); +l(" b.) Use CMake; i.e. `cmake -B build`. (if contributing, name the build folder build as that's what's included in the .gitignore)"); l(""); l("3) Run `make'."); l(""); From af3f569b0a85f192640e707f7ac6b11476e7f54d Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 22:03:50 -0700 Subject: [PATCH 579/836] readme should mention wayland too oops --- README.txt | 2 +- tools/readme.pl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.txt b/README.txt index 2bf543daa..1650acfc6 100644 --- a/README.txt +++ b/README.txt @@ -8,7 +8,7 @@ distributions and building instructions for Milsko GUI Toolkit. Milsko requires either * A Windows environment with GDI (so anything NT or 9x) - * A Unix-like environment with X11 for runtime. + * A Unix-like environment with Wayland and/or X11 for runtime. To build Milsko for Windows, you must have one of following compilers: * Visual C++ 6.0 or newer diff --git a/tools/readme.pl b/tools/readme.pl index eab9cd62e..182b01001 100755 --- a/tools/readme.pl +++ b/tools/readme.pl @@ -61,7 +61,7 @@ l(""); l(" Milsko requires either"); l(" * A Windows environment with GDI (so anything NT or 9x)"); #l(" * A MacOS environment with Cocoa (10.4 or above supported)"); -l(" * A Unix-like environment with X11 for runtime."); +l(" * A Unix-like environment with Wayland and/or X11 for runtime."); l(""); l(" To build Milsko for Windows, you must have one of following compilers:"); l(" * Visual C++ 6.0 or newer"); From 4a0059b2f13775555291fa8d7af5c0a2a120e026 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 22:12:00 -0700 Subject: [PATCH 580/836] typo --- src/backend/nococoa.m | 2 +- src/core.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/nococoa.m b/src/backend/nococoa.m index c0e3c704e..828f83049 100644 --- a/src/backend/nococoa.m +++ b/src/backend/nococoa.m @@ -1,6 +1,6 @@ #include -void MwLLNoCocoaErrorMessage() { +void MwLLNoCocoaErrorMessage(void) { NSAlert* alert = [[NSAlert alloc] init]; [alert setMessageText:@"Milsko applications currently requires XQuartz or cocoa-way. PRs are welcome for anyone who wants to finish the Cocoa backend (prefarably in Objective-C)"]; [alert addButtonWithTitle:@"Ok"]; diff --git a/src/core.c b/src/core.c index 1565963de..3b322a421 100644 --- a/src/core.c +++ b/src/core.c @@ -989,8 +989,8 @@ int MwLibraryInit(void) { } #ifdef __APPLE__ - void MwNoCocoaErrorMessage(); - MwNoCocoaErrorMessage(); + void MwLLNoCocoaErrorMessage(void); + MwLLNoCocoaErrorMessage(); #else printf("[WARNING] No suitable GUI backend found! Enabled:" #ifdef USE_COCOA From fb56fac3dc4ae42adddb30b7b652d8075a0df3f1 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 22:14:51 -0700 Subject: [PATCH 581/836] cmake nococoa.mg --- CMakeLists.txt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 33722b0e3..1bc2461f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -285,11 +285,16 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows") -static-libgcc ) elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") + # target_sources( + # Mw + # PRIVATE + # src/backend/cocoa.m + # ) target_sources( - Mw - PRIVATE - src/backend/cocoa.m - ) + Mw + PRIVATE + src/backend/nococoa.m +) target_compile_definitions( Mw PRIVATE From e40735b6e9a0bc7125f306f8763861ea0442c587 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 22:15:37 -0700 Subject: [PATCH 582/836] cmake: don't have USE_COCOA oops --- CMakeLists.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1bc2461f3..d24d322d9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -295,11 +295,11 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") PRIVATE src/backend/nococoa.m ) - target_compile_definitions( - Mw - PRIVATE - USE_COCOA - ) + # target_compile_definitions( + # Mw + # PRIVATE + # USE_COCOA + # ) list(APPEND LIBRARIES objc) target_link_options( Mw From 2a333897b7efdce6d01428cfc3fb94de2d0836d7 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 22:20:50 -0700 Subject: [PATCH 583/836] disable cocoa opengl on cmake --- CMakeLists.txt | 5 +---- src/backend/nococoa.m | 1 + 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d24d322d9..25ea4600d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,11 +60,8 @@ endif() if(MW_TRY_OPENGL) find_package(OpenGL) - if(OpenGL_FOUND) + if(OpenGL_FOUND and NOT APPLE) set(MW_BUILD_OPENGL ON) - if(APPLE) - list(APPEND SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/widget/opengl_cocoa.m") - endif() message(STATUS "OpenGL widget has been enabled") else() message(WARNING "OpenGL widget has been disabled") diff --git a/src/backend/nococoa.m b/src/backend/nococoa.m index 828f83049..c009b38d3 100644 --- a/src/backend/nococoa.m +++ b/src/backend/nococoa.m @@ -1,4 +1,5 @@ #include +#import void MwLLNoCocoaErrorMessage(void) { NSAlert* alert = [[NSAlert alloc] init]; From 84db46648eb467ef73ef84dc76953ab639266826 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 22:35:44 -0700 Subject: [PATCH 584/836] Tier --- doc/TIERS.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 doc/TIERS.md diff --git a/doc/TIERS.md b/doc/TIERS.md new file mode 100644 index 000000000..4be4fd6c0 --- /dev/null +++ b/doc/TIERS.md @@ -0,0 +1,17 @@ +Ports of Milsko are grouped into three "tiers" in terms of their support. + +- **Tier 1**: Before every new release of Milsko, these platforms will be tested to make sure they have full support, and the CI will test them. +- **Tier 2**: These might be outdated or not updated in awhile, they might only compile under a specific version/commit of Milsko. Authors of these backends will be made aware of these updates. +- **Tier 3**: These are outright unfinished. Only use these if you're a developer. + +Currently, the Tier 1 backends are: + +- Windows 9x+/NT 4.0+ +- Any Unix/Linux system that supports X11 or Wayland. + +There are currently no Tier 2 backends. + +Tier 3 backends are: + +- Mac OS X 10.4+ with Cocoa +- Mac OS 7-9, PowerPC (68k support not planned). From b4829308d912ff4e61be39f965b635fcf5e94135 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 27 Apr 2026 15:54:29 +0900 Subject: [PATCH 585/836] use BitBlt instead for gdi --- src/backend/gdi.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index bbeb8dc9e..3e6284b00 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -551,9 +551,14 @@ static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { } static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { - HDC hmdc = CreateCompatibleDC(handle->gdi.hDC); + HDC hmdc = CreateCompatibleDC(handle->gdi.hDC); +#ifdef USE_PLGBLT POINT p[3]; +#endif + SetStretchBltMode(handle->gdi.hDC, HALFTONE); + +#ifdef USE_PLGBLT p[0].x = rect->x; p[0].y = rect->y; @@ -565,8 +570,15 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { SelectObject(hmdc, pixmap->gdi.hBitmap); - SetStretchBltMode(handle->gdi.hDC, HALFTONE); - PlgBlt(handle->gdi.hDC, p, hmdc, 0, 0, pixmap->common.width, pixmap->common.height, pixmap->gdi.hMask, 0, 0); + if(PlgBlt(handle->gdi.hDC, p, hmdc, 0, 0, pixmap->common.width, pixmap->common.height, pixmap->gdi.hMask, 0, 0) == 0) +#endif + { + SelectObject(hmdc, pixmap->gdi.hMask2); + StretchBlt(handle->gdi.hDC, rect->x, rect->y, rect->width, rect->height, hmdc, 0, 0, pixmap->common.width, pixmap->common.height, SRCAND); + + SelectObject(hmdc, pixmap->gdi.hBitmap); + StretchBlt(handle->gdi.hDC, rect->x, rect->y, rect->width, rect->height, hmdc, 0, 0, pixmap->common.width, pixmap->common.height, SRCPAINT); + } DeleteDC(hmdc); } From 2323b7f69fac0f152240b932da2d28da3c9eaada Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 26 Apr 2026 23:55:34 -0700 Subject: [PATCH 586/836] MwLLDoModern --- WatMakefile | 2 +- include/Mw/LowLevel.h | 10 +++++++++- src/backend/call.c | 2 +- src/backend/classicmacos.c | 5 +++++ src/backend/cocoa.m | 5 +++++ src/backend/gdi.c | 5 +++++ src/backend/wayland.c | 5 +++++ src/backend/x11.c | 5 +++++ src/core.c | 2 +- src/lowlevel.c | 2 ++ tools/watcom-pack.sh | 1 - 11 files changed, 39 insertions(+), 5 deletions(-) diff --git a/WatMakefile b/WatMakefile index 4ce4c3ff8..50e315bd1 100644 --- a/WatMakefile +++ b/WatMakefile @@ -1,7 +1,7 @@ CC = wcc386 -bt=nt -q -bd LD = wlink option quiet -CFLAGS = -i=include -i=external/libz/include -d_MILSKO -dUSE_GDI -dUSE_STB_TRUETYPE -dUSE_STB_IMAGE -dSTBI_NO_SIMD +CFLAGS = -i=include -i=external/libz/include -d_MILSKO -dUSE_GDI -dUSE_STB_TRUETYPE -dUSE_STB_IMAGE -dSTBI_NO_SIMD -dUSE_CLASSIC_THEME LDFLAGS = system nt_dll all: src/Mw.dll clean: .SYMBOLIC diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 696fd5141..c7fefb464 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -300,13 +300,21 @@ MWDECL void (*MwLLGetCursorCoord)(MwLL handle, MwPoint* point); MWDECL void (*MwLLGetScreenSize)(MwLL handle, MwRect* rect); /*! - * @brief Set dark theme + * @brief Set any extra parameters for dark theme * @param handle Handle * @param toggle Toggle * @warning Do not run `handle->common.handler->dark_theme` when this function gets called + * @warning This is for stuff like, i.e. setting the accent color on modern Windows. The user themselves sets dark theme with MwNdarkTheme. */ MWDECL void (*MwLLSetDarkTheme)(MwLL handle, int toggle); +/*! + * @brief Whether or not the platform should default to modern theme. + * @param handle Handle + * @return whether to default. + */ +MWDECL MwBool (*MwLLDoModern)(MwLL handle); + /* font renderer */ MWDECL void MwFLSetup(void); diff --git a/src/backend/call.c b/src/backend/call.c index 14338ecc9..6e6c98fe5 100644 --- a/src/backend/call.c +++ b/src/backend/call.c @@ -56,6 +56,6 @@ MwLLGetScreenSize = MwLLGetScreenSizeImpl; \ \ MwLLSetDarkTheme = MwLLSetDarkThemeImpl; \ -\ + MwLLDoModern = MwLLDoModernImpl; \ return 0; \ } diff --git a/src/backend/classicmacos.c b/src/backend/classicmacos.c index d7db43318..eb0478a90 100644 --- a/src/backend/classicmacos.c +++ b/src/backend/classicmacos.c @@ -340,6 +340,11 @@ static void MwLLSetDarkThemeImpl(MwLL handle, int toggle) { (void)toggle; } +static MwBool MwLLDoModernImpl(MwLL handle) { + (void)handle; + return MwFALSE; +} + static int MwLLClassicMacOSCallInitImpl(void) { InitGraf(&qd.thePort); InitFonts(); diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 903cf2984..d52fbbaa9 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1156,6 +1156,11 @@ static void MwLLSetDarkThemeImpl(MwLL handle, int toggle) { (void)toggle; } +static MwBool MwLLDoModernImpl(MwLL handle) { + (void)handle; + return MwTRUE; +} + static int MwLLCocoaCallInitImpl(void) { #ifndef __APPLE__ printf("Using GNUStep Backend\n"); diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 3e6284b00..f2da6705b 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -839,6 +839,11 @@ static void MwLLSetDarkThemeImpl(MwLL handle, int toggle) { DwmSetWindowAttribute(handle->gdi.hWnd, 20, &v, sizeof(v)); } +static MwBool MwLLDoModernImpl(MwLL handle) { + (void)handle; + return MwTRUE; +} + static int MwLLGDICallInitImpl(void) { memset(&wsymtbl, 0, sizeof(wsymtbl)); diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 06b60b561..aad034f72 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -2851,5 +2851,10 @@ static int MwLLWaylandCallInitImpl(void) { return 1; } +static MwBool MwLLDoModernImpl(MwLL handle) { + (void)handle; + return MwTRUE; +} + #include "call.c" CALL(Wayland); diff --git a/src/backend/x11.c b/src/backend/x11.c index 82e7be3ce..e5282b112 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -1449,5 +1449,10 @@ static int MwLLX11CallInitImpl(void) { return 0; } +static MwBool MwLLDoModernImpl(MwLL handle) { + (void)handle; + return MwTRUE; +} + #include "call.c" CALL(X11); diff --git a/src/core.c b/src/core.c index 3b322a421..ac650c15c 100644 --- a/src/core.c +++ b/src/core.c @@ -674,7 +674,7 @@ int MwGetInteger(MwWidget handle, const char* key) { #ifdef USE_CLASSIC_THEME if(strcmp(key, MwNmodernLook) == 0) return inherit_integer(handle, key, 0); #else - if(strcmp(key, MwNmodernLook) == 0) return inherit_integer(handle, key, 1); + if(strcmp(key, MwNmodernLook) == 0) return inherit_integer(handle, key, MwLLDoModern(handle->lowlevel)); #endif if(strcmp(key, MwNdarkTheme) == 0) return inherit_integer(handle, key, 0); if(strcmp(key, MwNuseMonospace) == 0) return inherit_integer(handle, key, 0); diff --git a/src/lowlevel.c b/src/lowlevel.c index e2a576e7a..55822f190 100644 --- a/src/lowlevel.c +++ b/src/lowlevel.c @@ -53,6 +53,8 @@ void (*MwLLGetScreenSize)(MwLL handle, MwRect* rect) = NULL; void (*MwLLSetDarkTheme)(MwLL handle, int toggle) = NULL; +MwBool (*MwLLDoModern)(MwLL handle) = NULL; + void MwLLCreateCommon(MwLL handle) { handle->common.handler = malloc(sizeof(*handle->common.handler)); memset(handle->common.handler, 0, sizeof(*handle->common.handler)); diff --git a/tools/watcom-pack.sh b/tools/watcom-pack.sh index 81626dbfb..57885e0d4 100755 --- a/tools/watcom-pack.sh +++ b/tools/watcom-pack.sh @@ -20,4 +20,3 @@ cd ../.. rm -f milsko-examples.zip cp resource/logo/logo.png examples/picture.jpg examples/picture.png milsko-examples/ zip -rv milsko-examples.zip milsko-examples -rm -rf milsko-examples From 413105c1a8dab68282902bcdda8d0ab59b9783d1 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 27 Apr 2026 16:29:23 +0900 Subject: [PATCH 587/836] detect old windows and do stuff --- src/backend/gdi.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index f2da6705b..1434f0541 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -840,7 +840,18 @@ static void MwLLSetDarkThemeImpl(MwLL handle, int toggle) { } static MwBool MwLLDoModernImpl(MwLL handle) { + OSVERSIONINFO osvi; + (void)handle; + + osvi.dwOSVersionInfoSize = sizeof(osvi); + + GetVersionEx(&osvi); + + if(osvi.dwMajorVersion < 5 || (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion < 1)) { + return MwFALSE; + } + return MwTRUE; } From 36f56478832dd9b2039cd81ae310819d805a6218 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 27 Apr 2026 16:31:03 +0900 Subject: [PATCH 588/836] test --- src/backend/gdi.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 1434f0541..3a68f9176 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -550,6 +550,7 @@ static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { free(pixmap); } +#define USE_PLGBLT static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { HDC hmdc = CreateCompatibleDC(handle->gdi.hDC); #ifdef USE_PLGBLT From 73b320fc18c7494bd1c12e5e4a7ecb445e19015d Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 27 Apr 2026 00:30:58 -0700 Subject: [PATCH 589/836] have opengl gracefully fail --- examples/gldemos/glutlayer.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/examples/gldemos/glutlayer.c b/examples/gldemos/glutlayer.c index dda07d80c..8746b9400 100644 --- a/examples/gldemos/glutlayer.c +++ b/examples/gldemos/glutlayer.c @@ -53,18 +53,21 @@ int main() { MwNtitle, TITLE, NULL); opengl = MwCreateWidget(MwOpenGLClass, "opengl", window, 50, 50, 400, 400); + if(!opengl) { + MwMessageBox(NULL, "Unable to create OpenGL window.", "Error", MwMB_ICONERROR); + } else { + MwOpenGLMakeCurrent(opengl); - MwOpenGLMakeCurrent(opengl); + init(); + reshape(400, 400); - init(); - reshape(400, 400); + MwAddUserHandler(window, MwNresizeHandler, resize, NULL); + MwAddUserHandler(opengl, MwNtickHandler, tick, NULL); - MwAddUserHandler(window, MwNresizeHandler, resize, NULL); - MwAddUserHandler(opengl, MwNtickHandler, tick, NULL); + MwAddTickList(opengl); - MwAddTickList(opengl); - - MwAddUserHandler(opengl, MwNkeyHandler, key_pressed, NULL); + MwAddUserHandler(opengl, MwNkeyHandler, key_pressed, NULL); + } MwLoop(window); } From 790688e4ccd9dbc724e22b09092c23cfa07391c5 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 27 Apr 2026 01:02:17 -0700 Subject: [PATCH 590/836] gdi: check for DwmSetWindowAttribute before executing --- src/backend/gdi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 3a68f9176..1df263baf 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -837,7 +837,8 @@ static void MwLLEndStateChangeImpl(MwLL handle) { static void MwLLSetDarkThemeImpl(MwLL handle, int toggle) { BOOL v = toggle ? TRUE : FALSE; - DwmSetWindowAttribute(handle->gdi.hWnd, 20, &v, sizeof(v)); + if(DwmSetWindowAttribute) + DwmSetWindowAttribute(handle->gdi.hWnd, 20, &v, sizeof(v)); } static MwBool MwLLDoModernImpl(MwLL handle) { From e66cb4e3d424cb1f4d6aabacedddbe9255f42ffb Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 27 Apr 2026 01:07:17 -0700 Subject: [PATCH 591/836] 1.0a --- include/Mw/Version.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/Mw/Version.h b/include/Mw/Version.h index f59205c37..972c59cb8 100644 --- a/include/Mw/Version.h +++ b/include/Mw/Version.h @@ -18,12 +18,12 @@ /*! * @brief Patchlevel of version, calculated by `patchlevel_alphabet - 'a'` */ -#define MwPATCH 0 +#define MwPATCH 'a' /*! * @brief Version in string */ -#define MwVERSION "1.0" +#define MwVERSION "1.0a" /*! * @brief Version in string From e79bffa5c63bd984771cb6d307257bfba819971c Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 27 Apr 2026 01:12:27 -0700 Subject: [PATCH 592/836] 1.0a but with the correct patch level --- include/Mw/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/Mw/Version.h b/include/Mw/Version.h index 972c59cb8..f1c1090a9 100644 --- a/include/Mw/Version.h +++ b/include/Mw/Version.h @@ -18,7 +18,7 @@ /*! * @brief Patchlevel of version, calculated by `patchlevel_alphabet - 'a'` */ -#define MwPATCH 'a' +#define MwPATCH 1 /*! * @brief Version in string From e878ae0253162dae9c63af106d61b5bde95d1fc8 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 27 Apr 2026 17:29:34 +0900 Subject: [PATCH 593/836] 1.0a --- README.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.txt b/README.txt index 1650acfc6..296194fde 100644 --- a/README.txt +++ b/README.txt @@ -1,5 +1,5 @@ -Greetings - Welcome to the Milsko GUI Toolkit (Version 1.0) +Greetings - Welcome to the Milsko GUI Toolkit (Version 1.0a) This document contains a brief summary of the contents of this source distributions and building instructions for Milsko GUI Toolkit. From d1936e4a8f6a5db50b31ba7f4ed26eda5ea0135c Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 27 Apr 2026 17:59:16 +0900 Subject: [PATCH 594/836] add BSD targets --- pl/ostype/FreeBSD.pl | 9 +++++++++ pl/ostype/OpenBSD.pl | 9 +++++++++ 2 files changed, 18 insertions(+) create mode 100644 pl/ostype/FreeBSD.pl create mode 100644 pl/ostype/OpenBSD.pl diff --git a/pl/ostype/FreeBSD.pl b/pl/ostype/FreeBSD.pl new file mode 100644 index 000000000..5fb0cda20 --- /dev/null +++ b/pl/ostype/FreeBSD.pl @@ -0,0 +1,9 @@ +add_incdir2("-I/usr/local/include"); +add_libdir( + "-L/usr/local/lib -Wl,-R/usr/local/lib"); +use_backend("x11"); +add_libs("-lpthread"); + +add_cflags("-DUSE_DBUS"); + +1; diff --git a/pl/ostype/OpenBSD.pl b/pl/ostype/OpenBSD.pl new file mode 100644 index 000000000..5fb0cda20 --- /dev/null +++ b/pl/ostype/OpenBSD.pl @@ -0,0 +1,9 @@ +add_incdir2("-I/usr/local/include"); +add_libdir( + "-L/usr/local/lib -Wl,-R/usr/local/lib"); +use_backend("x11"); +add_libs("-lpthread"); + +add_cflags("-DUSE_DBUS"); + +1; From d909812891ce5e7891b5ccb046bdeb6123c72701 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 27 Apr 2026 12:39:23 -0700 Subject: [PATCH 595/836] i think this is probably needed for doing wayland on freebsd? --- CMakeLists.txt | 2 +- configure | 5 ++++- pl/ostype/FreeBSD.pl | 9 ++++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 25ea4600d..6099d2cb0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,7 +35,7 @@ else() option(MW_USE_FREETYPE2 "Use FreeType 2" ON) endif() -if(${CMAKE_SYSTEM_NAME} STREQUAL Linux) +if(${CMAKE_SYSTEM_NAME} STREQUAL Linux OR ${CMAKE_SYSTEM_NAME} STREQUAL FreeBSD) option(MW_USE_WAYLAND "Enable Wayland backend" ON) endif() diff --git a/configure b/configure index d0915229a..fcc7014ea 100755 --- a/configure +++ b/configure @@ -84,12 +84,15 @@ sub def_platform { param_set("freetype2", 0); param_set("stb-truetype", 1); } - if($target eq "Linux") { + if($target eq "Linux" || $target eq "FreeBSD") { param_set("x11", 1); if(!param_get("tiny")){ param_set("wayland", 1); } } + if($target eq "NetBSD" || $target eq "OpenBSD") { + param_set("x11", 1); + } } foreach my $l (@ARGV) { diff --git a/pl/ostype/FreeBSD.pl b/pl/ostype/FreeBSD.pl index 5fb0cda20..7b4c63801 100644 --- a/pl/ostype/FreeBSD.pl +++ b/pl/ostype/FreeBSD.pl @@ -1,7 +1,14 @@ add_incdir2("-I/usr/local/include"); add_libdir( "-L/usr/local/lib -Wl,-R/usr/local/lib"); -use_backend("x11"); + +if (param_get("wayland") && not(param_get("tiny"))) { + push(@enabled_backends, "wayland"); +} +if (param_get("x11")) { + push(@enabled_backends, "x11"); +} + add_libs("-lpthread"); add_cflags("-DUSE_DBUS"); From 75ce2c3adc08cef85444e89a50b5c3be8f30f904 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 27 Apr 2026 13:14:31 -0700 Subject: [PATCH 596/836] FreeBSD pl: correction --- pl/ostype/FreeBSD.pl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pl/ostype/FreeBSD.pl b/pl/ostype/FreeBSD.pl index 7b4c63801..5ba602be3 100644 --- a/pl/ostype/FreeBSD.pl +++ b/pl/ostype/FreeBSD.pl @@ -1,3 +1,5 @@ +my @enabled_backends = (); + add_incdir2("-I/usr/local/include"); add_libdir( "-L/usr/local/lib -Wl,-R/usr/local/lib"); @@ -9,6 +11,8 @@ if (param_get("x11")) { push(@enabled_backends, "x11"); } +use_backend(@enabled_backends); + add_libs("-lpthread"); add_cflags("-DUSE_DBUS"); From 7f98e8cae16ac92eba80110815730fbc28326fb8 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 27 Apr 2026 21:18:16 -0700 Subject: [PATCH 597/836] gdi: secondary dark theme detction through GetSysColor --- src/backend/gdi.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 1df263baf..51c05b64d 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -16,6 +16,17 @@ static struct symtbl { #define DwmSetWindowAttribute wsymtbl.DwmSetWindowAttribute +/* Dark theme detection for classic Windows: check if the user has set their theme to be dark. */ +static void detect_darktheme_classictheme(MwLL handle) { + /* Returns NULL on Windows 10+, use this to our advantage to check if the value is supported. */ + if(GetSysColorBrush(COLOR_MENU)) { + DWORD col = GetSysColor(COLOR_MENU); + int t = (GetRValue(col) <= 75 && GetGValue(col) <= 75 && GetBValue(col) <= 75); + MwLLDispatch(handle, dark_theme, &t); + } +} + +/* Dark theme detection for modern Windows: use the registry to check if dark mode is enabled. */ static void detect_darktheme(MwLL handle) { DWORD dw; DWORD sz = sizeof(dw); @@ -24,11 +35,15 @@ static void detect_darktheme(MwLL handle) { DWORD type; err = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize", 0, KEY_QUERY_VALUE, &hkey); - if(err != ERROR_SUCCESS) return; + if(err != ERROR_SUCCESS) { + detect_darktheme_classictheme(handle); + return; + } err = RegQueryValueEx(hkey, "AppsUseLightTheme", NULL, &type, (PBYTE)&dw, &sz); RegCloseKey(hkey); if(err != ERROR_SUCCESS || type != REG_DWORD) { + detect_darktheme_classictheme(handle); return; } From 095867ce70d5eb0c02a8a5bd18f606a4ffc7adb9 Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 28 Apr 2026 13:18:59 +0900 Subject: [PATCH 598/836] opengl stuff --- WatMakefile | 2 +- src/widget/opengl.c | 36 +++++++++++++++++++++--------------- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/WatMakefile b/WatMakefile index 50e315bd1..4ce4c3ff8 100644 --- a/WatMakefile +++ b/WatMakefile @@ -1,7 +1,7 @@ CC = wcc386 -bt=nt -q -bd LD = wlink option quiet -CFLAGS = -i=include -i=external/libz/include -d_MILSKO -dUSE_GDI -dUSE_STB_TRUETYPE -dUSE_STB_IMAGE -dSTBI_NO_SIMD -dUSE_CLASSIC_THEME +CFLAGS = -i=include -i=external/libz/include -d_MILSKO -dUSE_GDI -dUSE_STB_TRUETYPE -dUSE_STB_IMAGE -dSTBI_NO_SIMD LDFLAGS = system nt_dll all: src/Mw.dll clean: .SYMBOLIC diff --git a/src/widget/opengl.c b/src/widget/opengl.c index d8f8f7cd3..010ab1594 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -129,15 +129,21 @@ static int wcreate(MwWidget handle) { SetPixelFormat(o->dc, pf, &pfd); o->lib = MwDynamicOpen("opengl32.dll"); + if(!o->lib){ + printf("Could not load OpenGL widget under WGL! " #x " missing.\n"); \ + return 1; + } - o->wglCreateContext = - (MWwglCreateContext)(void*)MwDynamicSymbol(o->lib, "wglCreateContext"); - o->wglMakeCurrent = - (MWwglMakeCurrent)(void*)MwDynamicSymbol(o->lib, "wglMakeCurrent"); - o->wglDeleteContext = - (MWwglDeleteContext)(void*)MwDynamicSymbol(o->lib, "wglDeleteContext"); - o->wglGetProcAddress = (MWwglGetProcAddress)(void*)MwDynamicSymbol( - o->lib, "wglGetProcAddress"); +#define WGL_FUNC(x) o->x = MwDynamicSymbol(o->lib, #x); \ + if(o->x == NULL){ \ + printf("Could not load OpenGL widget under WGL! " #x " missing.\n"); \ + return 1; \ + } + + WGL_FUNC(wglCreateContext); + WGL_FUNC(wglMakeCurrent); + WGL_FUNC(wglDeleteContext); + WGL_FUNC(wglGetProcAddress); o->gl = o->wglCreateContext(o->dc); } @@ -269,19 +275,19 @@ static int wcreate(MwWidget handle) { eglGetDisplay((EGLNativeDisplayType)handle->lowlevel->wayland.display); if(display == EGL_NO_DISPLAY) { printf("ERROR: eglGetDisplay, %0X\n", eglGetError()); - return MwFALSE; + return 1; } /* Initialize EGL */ if(!eglInitialize(display, &majorVersion, &minorVersion)) { printf("ERROR: eglInitialize, %0X\n", eglGetError()); - return MwFALSE; + return 1; } /* Get configs */ if((eglGetConfigs(display, NULL, 0, &numConfigs) != EGL_TRUE) || (numConfigs == 0)) { printf("ERROR: eglGetConfigs, %0X\n", eglGetError()); - return MwFALSE; + return 1; } /* Choose config */ @@ -289,7 +295,7 @@ static int wcreate(MwWidget handle) { EGL_TRUE) || (numConfigs != 1)) { printf("ERROR: eglChooseConfig, %0X\n", eglGetError()); - return MwFALSE; + return 1; } o->egl_window_native = (EGLNativeWindowType)wl_egl_window_create( @@ -297,7 +303,7 @@ static int wcreate(MwWidget handle) { handle->lowlevel->wayland.ww, handle->lowlevel->wayland.wh); if(!o->egl_window_native) { printf("ERROR: wl_egl_window_create, EGL_NO_SURFACE\n"); - return MwFALSE; + return 1; } /* Create a surface */ @@ -305,7 +311,7 @@ static int wcreate(MwWidget handle) { o->egl_window_native, NULL); if(surface == EGL_NO_SURFACE) { printf("ERROR: eglCreateWindowSurface, %0X\n", eglGetError()); - return MwFALSE; + return 1; } eglBindAPI(EGL_OPENGL_API); @@ -315,7 +321,7 @@ static int wcreate(MwWidget handle) { contextAttribs); if(context == EGL_NO_CONTEXT) { printf("ERROR: eglCreateContext, %0X\n", eglGetError()); - return MwFALSE; + return 1; } if(!eglMakeCurrent(display, surface, surface, context)) { From 5ae3704a4ca2020f86316d06531b0d7b33708c2f Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 28 Apr 2026 13:30:02 +0900 Subject: [PATCH 599/836] fix --- src/widget/opengl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 010ab1594..219c02fee 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -130,7 +130,7 @@ static int wcreate(MwWidget handle) { o->lib = MwDynamicOpen("opengl32.dll"); if(!o->lib){ - printf("Could not load OpenGL widget under WGL! " #x " missing.\n"); \ + printf("Could not load OpenGL widget under WGL!\n"); \ return 1; } From bdcd380a2c048223dda2a94ef48191b6b2a3faa0 Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 28 Apr 2026 13:32:55 +0900 Subject: [PATCH 600/836] wine fix --- src/backend/gdi.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 51c05b64d..f59091cfe 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -14,6 +14,8 @@ static struct symtbl { HRESULT(WINAPI* DwmSetWindowAttribute)(HWND hwnd, DWORD dwAttribute, LPCVOID pvAttribute, DWORD cbAttribute); } wsymtbl; +static int is_plgblt_reliable = 0; + #define DwmSetWindowAttribute wsymtbl.DwmSetWindowAttribute /* Dark theme detection for classic Windows: check if the user has set their theme to be dark. */ @@ -586,7 +588,7 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { SelectObject(hmdc, pixmap->gdi.hBitmap); - if(PlgBlt(handle->gdi.hDC, p, hmdc, 0, 0, pixmap->common.width, pixmap->common.height, pixmap->gdi.hMask, 0, 0) == 0) + if(!is_plgblt_reliable || PlgBlt(handle->gdi.hDC, p, hmdc, 0, 0, pixmap->common.width, pixmap->common.height, pixmap->gdi.hMask, 0, 0) == 0) #endif { SelectObject(hmdc, pixmap->gdi.hMask2); @@ -873,12 +875,20 @@ static MwBool MwLLDoModernImpl(MwLL handle) { } static int MwLLGDICallInitImpl(void) { + void* ntdll; + memset(&wsymtbl, 0, sizeof(wsymtbl)); wsymtbl.lib_dwmapi = MwDynamicOpen("dwmapi.dll"); if(wsymtbl.lib_dwmapi != NULL) DwmSetWindowAttribute = MwDynamicSymbol(wsymtbl.lib_dwmapi, "DwmSetWindowAttribute"); + if((ntdll = GetModuleHandle("ntdll.dll")) != NULL && GetProcAddress(ntdll, "wine_get_version") != NULL){ + is_plgblt_reliable = 0; + }else{ + is_plgblt_reliable = 1; + } + /* TODO: check properly */ return 0; } From f4be507c350c4e6bfab131808586c0017230d40c Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 27 Apr 2026 22:00:28 -0700 Subject: [PATCH 601/836] gdi: remove dead USE_PLGBLT code, since its always defined --- src/backend/gdi.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index f59091cfe..e030c1fd1 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -567,16 +567,11 @@ static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { free(pixmap); } -#define USE_PLGBLT static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { - HDC hmdc = CreateCompatibleDC(handle->gdi.hDC); -#ifdef USE_PLGBLT + HDC hmdc = CreateCompatibleDC(handle->gdi.hDC); POINT p[3]; -#endif - SetStretchBltMode(handle->gdi.hDC, HALFTONE); -#ifdef USE_PLGBLT p[0].x = rect->x; p[0].y = rect->y; @@ -588,9 +583,7 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { SelectObject(hmdc, pixmap->gdi.hBitmap); - if(!is_plgblt_reliable || PlgBlt(handle->gdi.hDC, p, hmdc, 0, 0, pixmap->common.width, pixmap->common.height, pixmap->gdi.hMask, 0, 0) == 0) -#endif - { + if(!is_plgblt_reliable || PlgBlt(handle->gdi.hDC, p, hmdc, 0, 0, pixmap->common.width, pixmap->common.height, pixmap->gdi.hMask, 0, 0) == 0) { SelectObject(hmdc, pixmap->gdi.hMask2); StretchBlt(handle->gdi.hDC, rect->x, rect->y, rect->width, rect->height, hmdc, 0, 0, pixmap->common.width, pixmap->common.height, SRCAND); From 6137728de754c598afb4a380329aa0801e27e588 Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 28 Apr 2026 14:12:54 +0900 Subject: [PATCH 602/836] bring back some old code --- src/backend/x11.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/backend/x11.c b/src/backend/x11.c index e5282b112..f3cf98652 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -490,6 +490,8 @@ static void MwLLBeginDrawImpl(MwLL handle) { static void MwLLEndDrawImpl(MwLL handle) { (void)handle; + + if(handle->common.copy_buffer) XClearWindow(handle->x11.display, handle->x11.window); } static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { From 22b0891598b2986ad42f99e6b3efbf24d8656dde Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 28 Apr 2026 15:06:38 +0000 Subject: [PATCH 603/836] init haiku --- configure | 5 ++++- include/Mw/LowLevel.h | 13 +++++++++++++ include/Mw/MachDep.h | 2 +- pl/ostype/Haiku.pl | 5 +++++ pl/rules.pl | 4 ++++ pl/utils.pl | 2 +- src/abstract/dynamic.c | 2 +- src/abstract/time.c | 2 +- src/backend/haiku.cxx | 4 ++++ 9 files changed, 34 insertions(+), 5 deletions(-) create mode 100644 pl/ostype/Haiku.pl create mode 100644 src/backend/haiku.cxx diff --git a/configure b/configure index fcc7014ea..cab810a53 100755 --- a/configure +++ b/configure @@ -77,7 +77,7 @@ my @features_keys = ( ); sub def_platform { - if($target ne "Darwin" and $target ne "ClassicMacOS" and $target ne "Windows") { + if($target ne "Darwin" and $target ne "ClassicMacOS" and $target ne "Windows" and $target ne "Haiku") { param_set("freetype2", 1); param_set("stb-truetype", 0); } else { @@ -264,6 +264,9 @@ foreach my $l (@library_targets) { if ($l =~ /cocoa/) { $s =~ s/$o$/.m/; } + elsif ($l =~ /haiku/) { + $s =~ s/$o$/.cxx/; + } else { $s =~ s/$o$/.c/; } diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index c7fefb464..dee33a243 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -30,6 +30,7 @@ enum MwLLBackends { MwLLBackendGDI, MwLLBackendWayland, MwLLBackendCocoa, + MwLLBackendHaiku }; struct _MwLLCommon { @@ -117,6 +118,9 @@ MWDECL void MwLLDBusFreeContext(MwLLDBusFuncTable* tbl, MwLLDBusContext* ctx); #ifdef CLASSIC_MAC_OS #include #endif +#ifdef USE_HAIKU +#include +#endif union _MwLL { struct _MwLLCommon common; @@ -135,6 +139,9 @@ union _MwLL { #ifdef CLASSIC_MAC_OS struct _MwLLClassicMacOS cmacos; #endif +#ifdef USE_HAIKU + struct _MwLLHaiku haiku; +#endif }; union _MwLLColor { @@ -151,6 +158,9 @@ union _MwLLColor { #ifdef USE_COCOA struct _MwLLCocoaColor cocoa; #endif +#ifdef USE_HAIKU + struct _MwLLHaikuColor haiku; +#endif }; union _MwLLPixmap { @@ -170,6 +180,9 @@ union _MwLLPixmap { #ifdef CLASSIC_MAC_OS struct _MwLLClassicMacOSPixmap cmacos; #endif +#ifdef USE_HAIKU + struct _MwLLHaikuPixmap haiku; +#endif }; #endif #include diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index 7b068a874..a9419a83d 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -57,7 +57,7 @@ #include #endif -#if defined(__unix__) || defined(__APPLE__) +#if defined(__unix__) || defined(__APPLE__) || defined(__HAIKU__) #include #include #endif diff --git a/pl/ostype/Haiku.pl b/pl/ostype/Haiku.pl new file mode 100644 index 000000000..2091b4062 --- /dev/null +++ b/pl/ostype/Haiku.pl @@ -0,0 +1,5 @@ +$cc = "g++"; + +use_backend("haiku"); + +1; diff --git a/pl/rules.pl b/pl/rules.pl index c435bff82..498e30449 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -95,6 +95,10 @@ if (grep(/^cocoa$/, @backends) || param_get("gnustep")) { $gl_libs = "-framework OpenGL"; } +if (grep(/^haiku$/, @backends)) { + new_object("src/backend/haiku.cxx"); +} + if (param_get("stb-image")) { add_cflags("-DUSE_STB_IMAGE"); if (param_get("tiny")) { diff --git a/pl/utils.pl b/pl/utils.pl index 70c0b517c..3073a9eda 100644 --- a/pl/utils.pl +++ b/pl/utils.pl @@ -54,7 +54,7 @@ sub set_shared_flag { sub new_object { my @l = glob($_[0]); foreach my $e (@l) { - $e =~ s/\.(c|m)$/$object_suffix/; + $e =~ s/\.(cxx|c|m)$/$object_suffix/; push(@library_targets, $e); } } diff --git a/src/abstract/dynamic.c b/src/abstract/dynamic.c index ae31e82bf..58bc8312d 100644 --- a/src/abstract/dynamic.c +++ b/src/abstract/dynamic.c @@ -48,7 +48,7 @@ void MwDynamicClose(void* handle) { // CFragConnectionID connID = (CFragConnectionID)handle; // CloseConnection(&connID); } -#elif defined(__unix__) || defined(__APPLE__) +#elif defined(__unix__) || defined(__APPLE__) || defined(__HAIKU__) void* MwDynamicOpen(const char* path) { return dlopen(path, RTLD_LOCAL | RTLD_LAZY); } diff --git a/src/abstract/time.c b/src/abstract/time.c index cd09b94d9..d1ddb83b3 100644 --- a/src/abstract/time.c +++ b/src/abstract/time.c @@ -55,7 +55,7 @@ void MwTimeSleep(int ms) { // DisposeTimerUPP(tm.tmAddr); } -#elif defined(__unix__) +#elif defined(__unix__) || defined(__HAIKU__) long MwTimeGetTick(void) { struct timespec ts; long n = 0; diff --git a/src/backend/haiku.cxx b/src/backend/haiku.cxx new file mode 100644 index 000000000..fb333b5b9 --- /dev/null +++ b/src/backend/haiku.cxx @@ -0,0 +1,4 @@ +#include + +#include "call.c" +CALL(Haiku); From 6341b76a865de034f814c6ac81ae15c9f9836017 Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 28 Apr 2026 15:08:00 +0900 Subject: [PATCH 604/836] perltidy --- pl/ostype/FreeBSD.pl | 3 +-- pl/ostype/OpenBSD.pl | 3 +-- pl/rules.pl | 5 ++--- src/backend/gdi.c | 4 ++-- src/widget/opengl.c | 15 ++++++++------- tools/readme.pl | 5 ++++- 6 files changed, 18 insertions(+), 17 deletions(-) diff --git a/pl/ostype/FreeBSD.pl b/pl/ostype/FreeBSD.pl index 5ba602be3..4d4b17a83 100644 --- a/pl/ostype/FreeBSD.pl +++ b/pl/ostype/FreeBSD.pl @@ -1,8 +1,7 @@ my @enabled_backends = (); add_incdir2("-I/usr/local/include"); -add_libdir( - "-L/usr/local/lib -Wl,-R/usr/local/lib"); +add_libdir("-L/usr/local/lib -Wl,-R/usr/local/lib"); if (param_get("wayland") && not(param_get("tiny"))) { push(@enabled_backends, "wayland"); diff --git a/pl/ostype/OpenBSD.pl b/pl/ostype/OpenBSD.pl index 5fb0cda20..dbbc3be22 100644 --- a/pl/ostype/OpenBSD.pl +++ b/pl/ostype/OpenBSD.pl @@ -1,6 +1,5 @@ add_incdir2("-I/usr/local/include"); -add_libdir( - "-L/usr/local/lib -Wl,-R/usr/local/lib"); +add_libdir("-L/usr/local/lib -Wl,-R/usr/local/lib"); use_backend("x11"); add_libs("-lpthread"); diff --git a/pl/rules.pl b/pl/rules.pl index 498e30449..4741b1c4f 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -12,7 +12,7 @@ if (param_get("tiny")) { # these don't actually disable either, they're here for the final output. param_set("wayland", 0); - param_set("dbus", 0); + param_set("dbus", 0); } if (param_get("classic-theme")) { add_cflags("-DUSE_CLASSIC_THEME"); @@ -96,7 +96,7 @@ if (grep(/^cocoa$/, @backends) || param_get("gnustep")) { } if (grep(/^haiku$/, @backends)) { - new_object("src/backend/haiku.cxx"); + new_object("src/backend/haiku.cxx"); } if (param_get("stb-image")) { @@ -118,7 +118,6 @@ if (param_get("allow-sloppy-focus")) { add_cflags("-DALLOW_SLOPPY_FOCUS"); } - add_incdir("-Iexternal/libz/include"); if (param_get("freetype2")) { diff --git a/src/backend/gdi.c b/src/backend/gdi.c index e030c1fd1..f273b8b59 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -876,9 +876,9 @@ static int MwLLGDICallInitImpl(void) { if(wsymtbl.lib_dwmapi != NULL) DwmSetWindowAttribute = MwDynamicSymbol(wsymtbl.lib_dwmapi, "DwmSetWindowAttribute"); - if((ntdll = GetModuleHandle("ntdll.dll")) != NULL && GetProcAddress(ntdll, "wine_get_version") != NULL){ + if((ntdll = GetModuleHandle("ntdll.dll")) != NULL && GetProcAddress(ntdll, "wine_get_version") != NULL) { is_plgblt_reliable = 0; - }else{ + } else { is_plgblt_reliable = 1; } diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 219c02fee..53374b811 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -129,16 +129,17 @@ static int wcreate(MwWidget handle) { SetPixelFormat(o->dc, pf, &pfd); o->lib = MwDynamicOpen("opengl32.dll"); - if(!o->lib){ - printf("Could not load OpenGL widget under WGL!\n"); \ + if(!o->lib) { + printf("Could not load OpenGL widget under WGL!\n"); return 1; } -#define WGL_FUNC(x) o->x = MwDynamicSymbol(o->lib, #x); \ - if(o->x == NULL){ \ - printf("Could not load OpenGL widget under WGL! " #x " missing.\n"); \ - return 1; \ - } +#define WGL_FUNC(x) \ + o->x = MwDynamicSymbol(o->lib, #x); \ + if(o->x == NULL) { \ + printf("Could not load OpenGL widget under WGL! " #x " missing.\n"); \ + return 1; \ + } WGL_FUNC(wglCreateContext); WGL_FUNC(wglMakeCurrent); diff --git a/tools/readme.pl b/tools/readme.pl index 182b01001..d7c1909ad 100755 --- a/tools/readme.pl +++ b/tools/readme.pl @@ -60,6 +60,7 @@ c("Requirements"); l(""); l(" Milsko requires either"); l(" * A Windows environment with GDI (so anything NT or 9x)"); + #l(" * A MacOS environment with Cocoa (10.4 or above supported)"); l(" * A Unix-like environment with Wayland and/or X11 for runtime."); l(""); @@ -108,7 +109,9 @@ l("1) Determine if you need Vulkan and/or OpenGL."); l(""); l("2) Either:"); l(" a.) Run `./configure'. For help, run `./configure --help'."); -l(" b.) Use CMake; i.e. `cmake -B build`. (if contributing, name the build folder build as that's what's included in the .gitignore)"); +l( +" b.) Use CMake; i.e. `cmake -B build`. (if contributing, name the build folder build as that's what's included in the .gitignore)" +); l(""); l("3) Run `make'."); l(""); From 733b3c1f1c1b714fb70c565816d052829c031ebe Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 28 Apr 2026 15:18:09 +0900 Subject: [PATCH 605/836] stub --- configure | 2 +- src/backend/haiku.cxx | 50 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/configure b/configure index cab810a53..c66d2e7ed 100755 --- a/configure +++ b/configure @@ -224,7 +224,7 @@ print(OUT " cp -rf include \$(DESTDIR)\$(PREFIX)/\n"); print(OUT "\n"); print(OUT "format:\n"); print(OUT -" clang-format --verbose -i `find tools src include examples \"(\" -name \"*.c\" -or -name \"*.h\" -or -name \"*.m\" \")\" -and -not -name \"*ttf.c\"`\n" +" clang-format --verbose -i `find tools src include examples \"(\" -name \"*.c\" -or -name \"*.cxx\" -or -name \"*.h\" -or -name \"*.m\" \")\" -and -not -name \"*ttf.c\"`\n" ); print(OUT " perltidy -b -bext=\"/\" --paren-tightness=2 `find tools pl configure -name \"*.pl\"`\n" diff --git a/src/backend/haiku.cxx b/src/backend/haiku.cxx index fb333b5b9..e492195ce 100644 --- a/src/backend/haiku.cxx +++ b/src/backend/haiku.cxx @@ -1,4 +1,54 @@ #include +MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) {} + +void MwLLDestroyImpl(MwLL handle) {} + +void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) {} + +void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) {} + +WDECL void MwLLBeginDrawImpl(MwLL handle) {} + +WDECL void MwLLEndDrawImpl(MwLL handle) {} + +MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) {} + +void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) {} + +void MwLLFreeColorImpl(MwLLColor color) {} + +void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h) {} + +void MwLLSetXYImpl(MwLL handle, int x, int y) {} + +void MwLLSetWHImpl(MwLL handle, int w, int h) {} + +void MwLLSetTitleImpl(MwLL handle, const char* title) {} + +int MwLLPendingImpl(MwLL handle) {} + +void MwLLNextEventImpl(MwLL handle) {} + +MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) {} + +void MwLLPixmapUpdateImpl(MwLLPixmap pixmap) {} + +void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) {} + +void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) {} + +void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) {} + +void MwLLForceRenderImpl(MwLL handle) {} + +void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) {} + +void MwLLDetachImpl(MwLL handle, MwPoint* point) {} + +void MwLLShowImpl(MwLL handle, int show) {} + +void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) {} + #include "call.c" CALL(Haiku); From 7893234cd36223a51dd85e1b57d22f82ee9966a6 Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 28 Apr 2026 15:20:14 +0900 Subject: [PATCH 606/836] stub --- src/backend/haiku.cxx | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/backend/haiku.cxx b/src/backend/haiku.cxx index e492195ce..55540252f 100644 --- a/src/backend/haiku.cxx +++ b/src/backend/haiku.cxx @@ -50,5 +50,31 @@ void MwLLShowImpl(MwLL handle, int show) {} void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) {} +void MwLLMakeBorderlessImpl(MwLL handle, int toggle){} + +void MwLLMakeToolWindowImpl(MwLL handle){} + +void MwLLMakePopupImpl(MwLL handle, MwLL parent){} + +void MwLLBeginStateChangeImpl(MwLL handle){} + +void MwLLEndStateChangeImpl(MwLL handle){} + +void MwLLFocusImpl(MwLL handle){} + +void MwLLGrabPointerImpl(MwLL handle, int toggle){} + +void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_type){} + +void MwLLGetClipboardImpl(MwLL handle, int clipboard_type){} + +void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point){} + +void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect){} + +void MwLLSetDarkThemeImpl(MwLL handle, int toggle){} + +MwBool MwLLDoModernImpl(MwLL handle){} + #include "call.c" CALL(Haiku); From 7b06a0d5f50593b8b24312a93e3afd4046ac4493 Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 28 Apr 2026 15:21:11 +0900 Subject: [PATCH 607/836] stub --- src/backend/haiku.cxx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/backend/haiku.cxx b/src/backend/haiku.cxx index 55540252f..e29ee7699 100644 --- a/src/backend/haiku.cxx +++ b/src/backend/haiku.cxx @@ -8,9 +8,9 @@ void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor c void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) {} -WDECL void MwLLBeginDrawImpl(MwLL handle) {} +void MwLLBeginDrawImpl(MwLL handle) {} -WDECL void MwLLEndDrawImpl(MwLL handle) {} +void MwLLEndDrawImpl(MwLL handle) {} MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) {} @@ -76,5 +76,7 @@ void MwLLSetDarkThemeImpl(MwLL handle, int toggle){} MwBool MwLLDoModernImpl(MwLL handle){} +int MwLLHaikuCallInitImpl(){} + #include "call.c" CALL(Haiku); From 4b2676b741d5b9db53af5537e896db4fbe01db8a Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 28 Apr 2026 15:21:57 +0900 Subject: [PATCH 608/836] stub --- src/core.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/core.c b/src/core.c index ac650c15c..5cc7bbddc 100644 --- a/src/core.c +++ b/src/core.c @@ -978,6 +978,9 @@ int MwLibraryInit(void) { #endif #ifdef CLASSIC_MAC_OS MwLLClassicMacOSCallInit, +#endif +#ifdef USE_HAIKU + MwLLHaikuCallInit, #endif NULL}; int i; From df275c3331acb111564ccdae9bf3ee10d622663f Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 28 Apr 2026 15:24:45 +0900 Subject: [PATCH 609/836] use proper linker --- configure | 12 ++++++++++-- pl/ostype/Haiku.pl | 2 -- src/backend/haiku.cxx | 28 ++++++++++++++-------------- 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/configure b/configure index c66d2e7ed..53a48f2d9 100755 --- a/configure +++ b/configure @@ -12,6 +12,7 @@ foreach my $l (@ARGV) { our $prefix = "/usr/local"; our $cc = defined($ENV{CC}) ? $ENV{CC} : "*host*gcc"; +our $cxx = defined($ENV{CXX}) ? $ENV{CXX} : "*host*g++"; our $ar = defined($ENV{AR}) ? $ENV{AR} : "*host*ar"; our $incdir = "-I include"; our $incdir2 = ""; @@ -201,6 +202,7 @@ open(OUT, ">", "Makefile"); print(OUT "PREFIX = ${prefix}\n"); print(OUT "AR = ${ar}\n"); print(OUT "CC = ${cc}\n"); +print(OUT "CXX = ${cxx}\n"); print(OUT "INCDIR = ${incdir} ${incdir2}\n"); print(OUT "CFLAGS = ${cflags}\n"); print(OUT "LIBDIR = ${libdir}\n"); @@ -241,11 +243,15 @@ if (param_get("static")) { print(OUT "\n"); print(OUT "\n"); if (param_get("shared")) { + my $linker = "CC"; +if (grep(/^haiku$/, @backends)) { + $linker = "CXX"; +} print( OUT "src/${library_prefix}Mw${library_suffix}: " . join(" ", @library_targets) . "\n"); print(OUT -" \$(CC) \$(SHARED) \$(LDFLAGS\) \$(LIBDIR) -o src/${library_prefix}Mw${library_suffix} " +" \$($linker) \$(SHARED) \$(LDFLAGS\) \$(LIBDIR) -o src/${library_prefix}Mw${library_suffix} " . join(" ", @library_targets) . " \$(LIBS)\n"); print(OUT "\n"); @@ -258,6 +264,7 @@ if (param_get("static")) { foreach my $l (@library_targets) { my $warn = "-Wall -Wextra -Wno-sign-compare -Wno-unused-value"; my $s = $l; + my $compiler = "CC"; my $o = $object_suffix; $o =~ s/\./\\\./g; @@ -266,6 +273,7 @@ foreach my $l (@library_targets) { } elsif ($l =~ /haiku/) { $s =~ s/$o$/.cxx/; + $compiler = "CXX"; } else { $s =~ s/$o$/.c/; @@ -276,7 +284,7 @@ foreach my $l (@library_targets) { } print(OUT "${l}: ${s}\n"); - print(OUT " \$(CC) $warn \$\(INCDIR) \$(CFLAGS\) -c -o ${l} ${s}\n"); + print(OUT " \$($compiler) $warn \$\(INCDIR) \$(CFLAGS\) -c -o ${l} ${s}\n"); } print(OUT "\n"); print(OUT "\n"); diff --git a/pl/ostype/Haiku.pl b/pl/ostype/Haiku.pl index 2091b4062..68322b91b 100644 --- a/pl/ostype/Haiku.pl +++ b/pl/ostype/Haiku.pl @@ -1,5 +1,3 @@ -$cc = "g++"; - use_backend("haiku"); 1; diff --git a/src/backend/haiku.cxx b/src/backend/haiku.cxx index e29ee7699..ae07d6b30 100644 --- a/src/backend/haiku.cxx +++ b/src/backend/haiku.cxx @@ -50,33 +50,33 @@ void MwLLShowImpl(MwLL handle, int show) {} void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) {} -void MwLLMakeBorderlessImpl(MwLL handle, int toggle){} +void MwLLMakeBorderlessImpl(MwLL handle, int toggle) {} -void MwLLMakeToolWindowImpl(MwLL handle){} +void MwLLMakeToolWindowImpl(MwLL handle) {} -void MwLLMakePopupImpl(MwLL handle, MwLL parent){} +void MwLLMakePopupImpl(MwLL handle, MwLL parent) {} -void MwLLBeginStateChangeImpl(MwLL handle){} +void MwLLBeginStateChangeImpl(MwLL handle) {} -void MwLLEndStateChangeImpl(MwLL handle){} +void MwLLEndStateChangeImpl(MwLL handle) {} -void MwLLFocusImpl(MwLL handle){} +void MwLLFocusImpl(MwLL handle) {} -void MwLLGrabPointerImpl(MwLL handle, int toggle){} +void MwLLGrabPointerImpl(MwLL handle, int toggle) {} -void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_type){} +void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_type) {} -void MwLLGetClipboardImpl(MwLL handle, int clipboard_type){} +void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) {} -void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point){} +void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) {} -void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect){} +void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) {} -void MwLLSetDarkThemeImpl(MwLL handle, int toggle){} +void MwLLSetDarkThemeImpl(MwLL handle, int toggle) {} -MwBool MwLLDoModernImpl(MwLL handle){} +MwBool MwLLDoModernImpl(MwLL handle) {} -int MwLLHaikuCallInitImpl(){} +int MwLLHaikuCallInitImpl() {} #include "call.c" CALL(Haiku); From d980f5c6b2e62288415964a3c226cf9683be0b7d Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 28 Apr 2026 15:25:22 +0900 Subject: [PATCH 610/836] forgot to replace --- configure | 1 + 1 file changed, 1 insertion(+) diff --git a/configure b/configure index 53a48f2d9..24f80a474 100755 --- a/configure +++ b/configure @@ -196,6 +196,7 @@ foreach my $e (param_list()) { print("Enabled: " . join(" ", @l) . "\n"); $cc =~ s/\*host\*/$host/; +$cxx =~ s/\*host\*/$host/; $ar =~ s/\*host\*/$host/; open(OUT, ">", "Makefile"); From 39b3c035fc3ba9f36c6befe8285582aa417688f8 Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 28 Apr 2026 16:30:01 +0000 Subject: [PATCH 611/836] at least no more segfault --- include/Mw/LowLevel/ClassicMacOS.h | 8 ++++ include/Mw/LowLevel/Cocoa.h | 10 ++++- include/Mw/LowLevel/GDI.h | 8 ++++ include/Mw/LowLevel/Wayland.h | 8 ++++ include/Mw/LowLevel/X11.h | 8 ++++ include/Mw/MachDep.h | 5 +++ pl/rules.pl | 1 + src/backend/haiku.cxx | 67 +++++++++++++++++++++++++----- 8 files changed, 104 insertions(+), 11 deletions(-) diff --git a/include/Mw/LowLevel/ClassicMacOS.h b/include/Mw/LowLevel/ClassicMacOS.h index 958b5e8b1..9d76e202e 100644 --- a/include/Mw/LowLevel/ClassicMacOS.h +++ b/include/Mw/LowLevel/ClassicMacOS.h @@ -10,6 +10,10 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif + struct _MwLLClassicMacOS { struct _MwLLCommon common; @@ -32,4 +36,8 @@ struct _MwLLClassicMacOSPixmap { MWDECL int MwLLClassicMacOSCallInit(void); +#ifdef __cplusplus +} +#endif + #endif diff --git a/include/Mw/LowLevel/Cocoa.h b/include/Mw/LowLevel/Cocoa.h index 9758074f0..1f18006f9 100644 --- a/include/Mw/LowLevel/Cocoa.h +++ b/include/Mw/LowLevel/Cocoa.h @@ -160,7 +160,9 @@ typedef struct { #define OBJC(x) void* #endif -MWDECL int MwLLCocoaCallInit(void); +#ifdef __cplusplus +extern "C" { +#endif struct _MwLLCocoa { struct _MwLLCommon common; @@ -178,4 +180,10 @@ struct _MwLLCocoaPixmap { real; }; +MWDECL int MwLLCocoaCallInit(void); + +#ifdef __cplusplus +} +#endif + #endif diff --git a/include/Mw/LowLevel/GDI.h b/include/Mw/LowLevel/GDI.h index c695cbd13..e11f8f295 100644 --- a/include/Mw/LowLevel/GDI.h +++ b/include/Mw/LowLevel/GDI.h @@ -10,6 +10,10 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif + struct _MwLLGDI { struct _MwLLCommon common; @@ -43,4 +47,8 @@ struct _MwLLGDIPixmap { MWDECL int MwLLGDICallInit(void); MWDECL HCURSOR MwLLGDICreateCursor(MwCursor* image, MwCursor* mask); +#ifdef __cplusplus +} +#endif + #endif diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 0d46e503a..1a23f2a91 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -16,8 +16,16 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif + MWDECL int MwLLWaylandCallInit(void); +#ifdef __cplusplus +} +#endif + #define CSD_BORDER_FRAME_LEFT 5 #define CSD_BORDER_FRAME_RIGHT 5 #define CSD_BORDER_FRAME_TOP 24 diff --git a/include/Mw/LowLevel/X11.h b/include/Mw/LowLevel/X11.h index 3d0e1252e..305a24ae1 100644 --- a/include/Mw/LowLevel/X11.h +++ b/include/Mw/LowLevel/X11.h @@ -17,6 +17,10 @@ #include #endif +#ifdef __cplusplus +extern "C" { +#endif + struct _MwLLX11 { struct _MwLLCommon common; @@ -86,4 +90,8 @@ struct _MwLLX11Pixmap { MWDECL int MwLLX11CallInit(void); MWDECL Cursor MwLLX11CreateCursor(Display* display, MwCursor* image, MwCursor* mask); +#ifdef __cplusplus +} +#endif + #endif diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index a9419a83d..a9ac37c6d 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -62,6 +62,11 @@ #include #endif +#if defined(__HAIKU__) && defined(__cplusplus) +#include +#include +#endif + #ifdef __APPLE__ #include #include diff --git a/pl/rules.pl b/pl/rules.pl index 4741b1c4f..68386b49c 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -96,6 +96,7 @@ if (grep(/^cocoa$/, @backends) || param_get("gnustep")) { } if (grep(/^haiku$/, @backends)) { + add_cflags("-DUSE_HAIKU"); new_object("src/backend/haiku.cxx"); } diff --git a/src/backend/haiku.cxx b/src/backend/haiku.cxx index ae07d6b30..db97322d9 100644 --- a/src/backend/haiku.cxx +++ b/src/backend/haiku.cxx @@ -1,8 +1,21 @@ #include -MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) {} +MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { + MwLL r = (MwLL)malloc(sizeof(*r)); -void MwLLDestroyImpl(MwLL handle) {} + MwLLCreateCommon(r); + + r->common.copy_buffer = 1; + r->common.type = MwLLBackendHaiku; + + return r; +} + +void MwLLDestroyImpl(MwLL handle) { + MwLLDestroyCommon(handle); + + free(handle); +} void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) {} @@ -12,9 +25,17 @@ void MwLLBeginDrawImpl(MwLL handle) {} void MwLLEndDrawImpl(MwLL handle) {} -MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) {} +MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { + MwLLColor c = (MwLLColor)malloc(sizeof(*c)); + MwLLColorUpdate(handle, c, r, g, b); + return c; +} -void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) {} +void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { + c->common.red = r; + c->common.green = g; + c->common.blue = b; +} void MwLLFreeColorImpl(MwLLColor color) {} @@ -26,15 +47,33 @@ void MwLLSetWHImpl(MwLL handle, int w, int h) {} void MwLLSetTitleImpl(MwLL handle, const char* title) {} -int MwLLPendingImpl(MwLL handle) {} +int MwLLPendingImpl(MwLL handle) { + return 0; +} void MwLLNextEventImpl(MwLL handle) {} -MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) {} +MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) { + MwLLPixmap r = (MwLLPixmap)malloc(sizeof(*r)); + r->common.raw = (unsigned char*)malloc(4 * width * height); + memcpy(r->common.raw, data, 4 * width * height); + + r->common.width = width; + r->common.height = height; + + MwLLPixmapUpdate(r); + return r; + + return r; +} void MwLLPixmapUpdateImpl(MwLLPixmap pixmap) {} -void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) {} +void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { + free(pixmap->common.raw); + + free(pixmap); +} void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) {} @@ -72,11 +111,19 @@ void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) {} void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) {} -void MwLLSetDarkThemeImpl(MwLL handle, int toggle) {} +void MwLLSetDarkThemeImpl(MwLL handle, int toggle) { + (void)handle; + (void)toggle; +} -MwBool MwLLDoModernImpl(MwLL handle) {} +MwBool MwLLDoModernImpl(MwLL handle) { + (void)handle; + return MwTRUE; +} -int MwLLHaikuCallInitImpl() {} +int MwLLHaikuCallInitImpl() { + return 0; +} #include "call.c" CALL(Haiku); From 147124d408641e897efd04c64a26a09defdbf9df Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 28 Apr 2026 00:31:21 -0700 Subject: [PATCH 612/836] Fpicker example --- examples/basic/colorpicker.c | 10 +++--- examples/basic/filechooser.c | 70 ++++++++++++++++++++++++++++++++++++ pl/rules.pl | 1 + src/backend/wayland.c | 3 +- src/dialog/filechooser.c | 50 ++++++++++++++------------ 5 files changed, 105 insertions(+), 29 deletions(-) create mode 100644 examples/basic/filechooser.c diff --git a/examples/basic/colorpicker.c b/examples/basic/colorpicker.c index fb92fda50..dbce7fe2b 100644 --- a/examples/basic/colorpicker.c +++ b/examples/basic/colorpicker.c @@ -1,10 +1,10 @@ #include -MwWidget cpicker; +MwWidget fpicker; MwWidget window; MwWidget button; -void MWAPI color_callback(MwWidget handle, void* user_data, void* call_data) { +void MWAPI file_callback(MwWidget handle, void* user_data, void* call_data) { char hexColor[8]; MwRGB* rgb = call_data; @@ -18,14 +18,14 @@ void MWAPI color_callback(MwWidget handle, void* user_data, void* call_data) { MwSetText(window, MwNbackground, hexColor); } -void MWAPI color_picker(MwWidget handle, void* user_data, void* call_data) { +void MWAPI file_picker(MwWidget handle, void* user_data, void* call_data) { MwWidget cpicker = MwColorPicker(window, "cpicker"); (void)handle; (void)user_data; (void)call_data; - MwAddUserHandler(cpicker, MwNcolorChosenHandler, color_callback, NULL); + MwAddUserHandler(cpicker, MwNcolorChosenHandler, file_callback, NULL); MwSetText(cpicker, MwNbackground, MwGetInteger(cpicker, MwNdarkTheme) ? MwDefaultDarkBackground : MwDefaultBackground); } @@ -42,7 +42,7 @@ int main() { NULL); MwSetText(button, MwNbackground, MwGetInteger(window, MwNdarkTheme) ? MwDefaultBackground : MwDefaultDarkBackground); - MwAddUserHandler(button, MwNactivateHandler, color_picker, NULL); + MwAddUserHandler(button, MwNactivateHandler, file_picker, NULL); MwLoop(window); } diff --git a/examples/basic/filechooser.c b/examples/basic/filechooser.c new file mode 100644 index 000000000..2637f86f8 --- /dev/null +++ b/examples/basic/filechooser.c @@ -0,0 +1,70 @@ +#include + +MwWidget fpicker; +MwWidget window; +MwWidget button; +MwWidget mb; + +MwBool fpicker_wait = MwFALSE; +MwBool msgbox_wait = MwFALSE; + +void MWAPI ok(MwWidget handle, void* user, void* call) { + (void)handle; + (void)call; + msgbox_wait = MwFALSE; +} + +void MWAPI file_callback(MwWidget handle, void* user_data, void* call_data) { + mb = MwMessageBox(handle, call_data, "File chosen", MwMB_ICONERROR | MwMB_BUTTONOK); + + (void)user_data; + + MwAddUserHandler(MwMessageBoxGetChild(mb, MwMB_BUTTONOK), MwNactivateHandler, ok, mb); + MwAddUserHandler(mb, MwNcloseHandler, ok, mb); + + msgbox_wait = MwTRUE; + + while(msgbox_wait) { + MwStep(mb); + } + + fpicker_wait = MwFALSE; +} + +void MWAPI file_picker(MwWidget handle, void* user_data, void* call_data) { + fpicker = MwFileChooserEx(handle, "file chooser", 0); + + (void)handle; + (void)user_data; + (void)call_data; + + MwAddUserHandler(fpicker, MwNfileChosenHandler, file_callback, NULL); + + MwSetText(fpicker, MwNbackground, MwGetInteger(fpicker, MwNdarkTheme) ? MwDefaultDarkBackground : MwDefaultBackground); + + fpicker_wait = MwTRUE; + + while(fpicker_wait) { + MwStep(fpicker); + } + + MwDestroyWidget(fpicker); + MwDestroyWidget(mb); +} + +int main() { + MwLibraryInit(); + + window = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, + MwDEFAULT, 640, 480, MwNtitle, "color picker", NULL); + MwSetText(window, MwNbackground, MwGetInteger(window, MwNdarkTheme) ? MwDefaultBackground : MwDefaultDarkBackground); + + button = MwVaCreateWidget(MwButtonClass, "button", window, 160, 180, 320, 120, + MwNtext, "select file", + NULL); + MwSetText(button, MwNbackground, MwGetInteger(window, MwNdarkTheme) ? MwDefaultBackground : MwDefaultDarkBackground); + + MwAddUserHandler(button, MwNactivateHandler, file_picker, NULL); + + MwLoop(window); +} diff --git a/pl/rules.pl b/pl/rules.pl index 68386b49c..a725c6ca7 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -191,6 +191,7 @@ new_example("examples/basic/box"); new_example("examples/basic/clipboard"); new_example("examples/basic/sevensegment"); new_example("examples/basic/calculator"); +new_example("examples/basic/filechooser"); new_example("examples/basic/periodic"); if (param_get("opengl")) { diff --git a/src/backend/wayland.c b/src/backend/wayland.c index aad034f72..f554623ed 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -2498,6 +2498,7 @@ static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { struct xdg_toplevel_icon_v1* icon = xdg_toplevel_icon_manager_v1_create_icon(icon_manager); MwU64 size = pixmap->common.width * pixmap->common.height * 4; int i = 0; + int line = (pixmap->common.width < pixmap->common.height) ? pixmap->common.height : pixmap->common.width; if(handle->wayland.icon == NULL) { handle->wayland.icon = malloc(sizeof(struct _MwLLWaylandShmBuffer)); @@ -2511,7 +2512,7 @@ static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { } handle->wayland.icon->surface = wl_compositor_create_surface(handle->wayland.compositor); - buffer_setup(handle->wayland.icon, pixmap->common.width, pixmap->common.height); + buffer_setup(handle->wayland.icon, line, line); wl_surface_attach(handle->wayland.icon->surface, handle->wayland.icon->shm_buffer, 0, 0); wl_surface_commit(handle->wayland.icon->surface); diff --git a/src/dialog/filechooser.c b/src/dialog/filechooser.c index 0c4d1b899..138fc6cf0 100644 --- a/src/dialog/filechooser.c +++ b/src/dialog/filechooser.c @@ -504,32 +504,12 @@ static void scan(MwWidget handle, const char* path, int record) { } } -MwWidget MwFileChooserEx(MwWidget handle, const char* title, int dir) { - MwWidget window; - int w, h; - filechooser_t* fc = malloc(sizeof(*fc)); +static void setup_fallback_filechooser(MwWidget window, int dir) { char* path; MwLLPixmap icon; - int wx; - int wy; - + filechooser_t* fc = malloc(sizeof(*fc)); memset(fc, 0, sizeof(*fc)); - w = 700; - h = w * 2 / 3; - - if(handle == NULL) { - wx = wy = MwDEFAULT; - } else { - wx = MwGetInteger(handle, MwNx) + (MwGetInteger(handle, MwNwidth) - w) / 2; - wy = MwGetInteger(handle, MwNy) + (MwGetInteger(handle, MwNheight) - h) / 2; - } - - window = MwVaCreateWidget(MwWindowClass, "filechooser", NULL, wx, wy, w, h, - MwNtitle, title, - NULL); - if(handle != NULL) MwReparent(window, handle); - fc->history_seek = 0; fc->dir = MwLoadIcon(window, MwIconDirectory); @@ -558,8 +538,32 @@ MwWidget MwFileChooserEx(MwWidget handle, const char* title, int dir) { free(path); MwLLBeginStateChange(window->lowlevel); - MwLLMakePopup(window->lowlevel, handle == NULL ? NULL : handle->lowlevel); + MwLLMakePopup(window->lowlevel, window == NULL ? NULL : window->lowlevel); MwLLEndStateChange(window->lowlevel); +} + +MwWidget MwFileChooserEx(MwWidget handle, const char* title, int dir) { + MwWidget window; + int w, h; + int wx; + int wy; + + w = 700; + h = w * 2 / 3; + + if(handle == NULL) { + wx = wy = MwDEFAULT; + } else { + wx = MwGetInteger(handle, MwNx) + (MwGetInteger(handle, MwNwidth) - w) / 2; + wy = MwGetInteger(handle, MwNy) + (MwGetInteger(handle, MwNheight) - h) / 2; + } + + window = MwVaCreateWidget(MwWindowClass, "filechooser", NULL, wx, wy, w, h, + MwNtitle, title, + NULL); + if(handle != NULL) MwReparent(window, handle); + + setup_fallback_filechooser(window, dir); return window; } From f23a466d33e79ab64bcbfba5ecc3c00c22b8cd3c Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 28 Apr 2026 17:44:59 +0000 Subject: [PATCH 613/836] wip haiku --- include/Mw/MachDep.h | 2 ++ pl/rules.pl | 1 + src/backend/haiku.cxx | 58 ++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 60 insertions(+), 1 deletion(-) diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index a9ac37c6d..f00a119ba 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -65,6 +65,8 @@ #if defined(__HAIKU__) && defined(__cplusplus) #include #include +#include +#include #endif #ifdef __APPLE__ diff --git a/pl/rules.pl b/pl/rules.pl index a725c6ca7..b117d5f46 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -98,6 +98,7 @@ if (grep(/^cocoa$/, @backends) || param_get("gnustep")) { if (grep(/^haiku$/, @backends)) { add_cflags("-DUSE_HAIKU"); new_object("src/backend/haiku.cxx"); + add_libs("-lbe"); } if (param_get("stb-image")) { diff --git a/src/backend/haiku.cxx b/src/backend/haiku.cxx index db97322d9..948c2d598 100644 --- a/src/backend/haiku.cxx +++ b/src/backend/haiku.cxx @@ -1,13 +1,58 @@ #include +void MwApplication::ReadyToRun(){ + this->ready = 1; +} + +void MwApplication::Pulse(){ +} + +MwApplication::MwApplication(BRect rc, MwLL handle) : BApplication("application/milsko-generic") { + BScreen* scr = new BScreen(); + float left = rc.left; + float top = rc.top; + + if(rc.left == MwDEFAULT) left = (scr->Frame().Width() - rc.Width()) / 2; + if(rc.top == MwDEFAULT) top = (scr->Frame().Height() - rc.Height()) / 2; + rc = BRect(BPoint(left, top), BSize(rc.Width(), rc.Height())); + + this->window = new BWindow(rc, "Milsko", B_TITLED_WINDOW, 0); + this->window->Show(); + + handle->haiku.view = new BView(this->window->Bounds(), NULL, B_FOLLOW_ALL_SIDES, B_WILL_DRAW); + + this->ready = 0; + + delete scr; +} + +MwApplication::~MwApplication(){ + delete this->window; +} + MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLL r = (MwLL)malloc(sizeof(*r)); + BRect rc(BPoint(x, y), BSize(width, height)); MwLLCreateCommon(r); r->common.copy_buffer = 1; r->common.type = MwLLBackendHaiku; + if(parent == NULL){ + r->haiku.app = new MwApplication(rc, r); + r->haiku.app->window->AddChild(r->haiku.view); + + r->haiku.app->Run(); + + while(!r->haiku.app->ready); + }else{ + r->haiku.app = NULL; + r->haiku.view = new BView(rc, NULL, B_FOLLOW_NONE, B_WILL_DRAW); + + parent->haiku.view->AddChild(r->haiku.view); + } + return r; } @@ -17,7 +62,18 @@ void MwLLDestroyImpl(MwLL handle) { free(handle); } -void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) {} +void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { + BPoint* p = (BPoint*)malloc(sizeof(*p) * points_count); + int i; + + for(i = 0; i < points_count; i++){ + p[i] = BPoint(points[i].x, points[i].y); + } + + handle->haiku.view->FillPolygon(p, points_count); + + free(p); +} void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) {} From f2de281e209151ffd6955a04e583a574f9205a24 Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 28 Apr 2026 17:48:20 +0000 Subject: [PATCH 614/836] locker --- include/Mw/MachDep.h | 1 + src/backend/haiku.cxx | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index f00a119ba..ecc7bc05d 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -67,6 +67,7 @@ #include #include #include +#include #endif #ifdef __APPLE__ diff --git a/src/backend/haiku.cxx b/src/backend/haiku.cxx index 948c2d598..292040f4b 100644 --- a/src/backend/haiku.cxx +++ b/src/backend/haiku.cxx @@ -5,6 +5,8 @@ void MwApplication::ReadyToRun(){ } void MwApplication::Pulse(){ + this->locker->Lock(); + this->locker->Unlock(); } MwApplication::MwApplication(BRect rc, MwLL handle) : BApplication("application/milsko-generic") { @@ -22,12 +24,14 @@ MwApplication::MwApplication(BRect rc, MwLL handle) : BApplication("application/ handle->haiku.view = new BView(this->window->Bounds(), NULL, B_FOLLOW_ALL_SIDES, B_WILL_DRAW); this->ready = 0; + this->locker = new BLocker(); delete scr; } MwApplication::~MwApplication(){ delete this->window; + delete this->locker; } MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { From f02a4d3f4bea6cd28a02172c0d81ddc931fbfa49 Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 28 Apr 2026 18:24:29 +0000 Subject: [PATCH 615/836] wip --- src/backend/haiku.cxx | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/src/backend/haiku.cxx b/src/backend/haiku.cxx index 292040f4b..e54434aa4 100644 --- a/src/backend/haiku.cxx +++ b/src/backend/haiku.cxx @@ -1,12 +1,18 @@ #include +MwView::MwView(MwApplication* app, BRect rc, uint32 resizing, uint32 flags) : BView(rc, NULL, resizing, flags) { + app->PostMessage(new BMessage(B_PULSE)); + + this->SetViewColor(rand() % 256, 0, 0); + printf("?\n"); +} + void MwApplication::ReadyToRun(){ this->ready = 1; } void MwApplication::Pulse(){ - this->locker->Lock(); - this->locker->Unlock(); + printf("!\n"); } MwApplication::MwApplication(BRect rc, MwLL handle) : BApplication("application/milsko-generic") { @@ -21,7 +27,9 @@ MwApplication::MwApplication(BRect rc, MwLL handle) : BApplication("application/ this->window = new BWindow(rc, "Milsko", B_TITLED_WINDOW, 0); this->window->Show(); - handle->haiku.view = new BView(this->window->Bounds(), NULL, B_FOLLOW_ALL_SIDES, B_WILL_DRAW); + handle->haiku.view = new MwView(this, this->window->Bounds(), B_FOLLOW_ALL_SIDES, B_WILL_DRAW); + + this->window->AddChild(handle->haiku.view); this->ready = 0; this->locker = new BLocker(); @@ -43,17 +51,21 @@ MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->common.copy_buffer = 1; r->common.type = MwLLBackendHaiku; + r->haiku.parent = parent; + if(parent == NULL){ r->haiku.app = new MwApplication(rc, r); - r->haiku.app->window->AddChild(r->haiku.view); - r->haiku.app->Run(); - - while(!r->haiku.app->ready); + //r->haiku.app->Run(); }else{ + MwLL top = r; + while(top->haiku.parent != NULL){ + top = top->haiku.parent; + } + r->haiku.app = NULL; - r->haiku.view = new BView(rc, NULL, B_FOLLOW_NONE, B_WILL_DRAW); - + r->haiku.view = new MwView(top->haiku.app, rc, B_FOLLOW_NONE, B_WILL_DRAW); + parent->haiku.view->AddChild(r->haiku.view); } @@ -83,7 +95,9 @@ void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) {} void MwLLBeginDrawImpl(MwLL handle) {} -void MwLLEndDrawImpl(MwLL handle) {} +void MwLLEndDrawImpl(MwLL handle) { + new BMessage(B_PULSE); +} MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { MwLLColor c = (MwLLColor)malloc(sizeof(*c)); From 6a5ad2cd8ce34ce8f4d3c879fc9329b966108ba8 Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 28 Apr 2026 18:46:51 +0000 Subject: [PATCH 616/836] oops --- include/Mw/LowLevel/Haiku.h | 64 +++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 include/Mw/LowLevel/Haiku.h diff --git a/include/Mw/LowLevel/Haiku.h b/include/Mw/LowLevel/Haiku.h new file mode 100644 index 000000000..d6ed9af14 --- /dev/null +++ b/include/Mw/LowLevel/Haiku.h @@ -0,0 +1,64 @@ +/*! + * @file Mw/LowLevel/Haiku.h + * @brief Haiku Backend + * @warning This is used internally + */ +#ifndef __MW_LOWLEVEL_HAIKU_H__ +#define __MW_LOWLEVEL_HAIKU_H__ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +class MwApplication : public BApplication { + private: + void ReadyToRun(); + + public: + BWindow* window; + int ready; + BLocker* locker; + + MwApplication(BRect rc, MwLL handle); + ~MwApplication(); + + void Pulse(); +}; + +class MwView : public BView { + public: + MwView(MwApplication* app, BRect rc, uint32 resizing, uint32 flags); +}; +#else +typedef void MwApplication; +typedef void MwView; +#endif + +struct _MwLLHaiku { + struct _MwLLCommon common; + + MwLL parent; + MwApplication* app; + MwView* view; +}; + +struct _MwLLHaikuColor { + struct _MwLLCommonColor common; +}; + +struct _MwLLHaikuPixmap { + struct _MwLLCommonPixmap common; +}; + +MWDECL int MwLLHaikuCallInit(void); + +#ifdef __cplusplus +} +#endif + +#endif From f2f901dc056326ac57a3d80a0ad8fff1db3ef4a0 Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 28 Apr 2026 12:59:25 +0000 Subject: [PATCH 617/836] haiku --- configure | 2 +- examples/vkdemos/vulkan.c | 4 +- include/Mw/LowLevel/Haiku.h | 31 +++++---- include/Mw/MachDep.h | 1 + pl/rules.pl | 2 +- src/backend/{haiku.cxx => haiku.cc} | 104 +++++++++++++++++++--------- src/widget/listbox.c | 6 +- src/widget/scrollbar.c | 6 +- 8 files changed, 97 insertions(+), 59 deletions(-) rename src/backend/{haiku.cxx => haiku.cc} (68%) diff --git a/configure b/configure index 24f80a474..a29cb7e1a 100755 --- a/configure +++ b/configure @@ -273,7 +273,7 @@ foreach my $l (@library_targets) { $s =~ s/$o$/.m/; } elsif ($l =~ /haiku/) { - $s =~ s/$o$/.cxx/; + $s =~ s/$o$/.cc/; $compiler = "CXX"; } else { diff --git a/examples/vkdemos/vulkan.c b/examples/vkdemos/vulkan.c index 2d03030e9..9dfa311eb 100644 --- a/examples/vkdemos/vulkan.c +++ b/examples/vkdemos/vulkan.c @@ -264,8 +264,8 @@ void vulkan_setup(MwWidget handle) { swapchainCreateInfo.imageExtent = (VkExtent2D){.width = ow, .height = oh}, swapchainCreateInfo.imageArrayLayers = 1, swapchainCreateInfo.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | - VK_IMAGE_USAGE_TRANSFER_DST_BIT | - VK_IMAGE_USAGE_SAMPLED_BIT; + VK_IMAGE_USAGE_TRANSFER_DST_BIT | + VK_IMAGE_USAGE_SAMPLED_BIT; // th is how we specify no transformation. swapchainCreateInfo.preTransform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; swapchainCreateInfo.compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR; diff --git a/include/Mw/LowLevel/Haiku.h b/include/Mw/LowLevel/Haiku.h index d6ed9af14..8ea6abe13 100644 --- a/include/Mw/LowLevel/Haiku.h +++ b/include/Mw/LowLevel/Haiku.h @@ -16,35 +16,36 @@ extern "C" { #ifdef __cplusplus class MwApplication : public BApplication { - private: - void ReadyToRun(); + public: + BWindow* window; + BLocker* locker; - public: - BWindow* window; - int ready; - BLocker* locker; + MwApplication(BRect rc, MwLL handle); + ~MwApplication(); - MwApplication(BRect rc, MwLL handle); - ~MwApplication(); - - void Pulse(); + void MessageReceived(BMessage* message); }; class MwView : public BView { - public: - MwView(MwApplication* app, BRect rc, uint32 resizing, uint32 flags); + public: + MwView(BRect rc, uint32 resizing, uint32 flags); }; #else typedef void MwApplication; typedef void MwView; #endif +enum B_MW_WHAT { + B_MW_DESTROY = 0 +}; + struct _MwLLHaiku { struct _MwLLCommon common; - MwLL parent; + MwLL parent; MwApplication* app; - MwView* view; + MwView* view; + thread_id app_thread; }; struct _MwLLHaikuColor { @@ -55,7 +56,7 @@ struct _MwLLHaikuPixmap { struct _MwLLCommonPixmap common; }; -MWDECL int MwLLHaikuCallInit(void); +MWDECL int MwLLHaikuCallInit(void); #ifdef __cplusplus } diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index ecc7bc05d..99245fb44 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -68,6 +68,7 @@ #include #include #include +#include #endif #ifdef __APPLE__ diff --git a/pl/rules.pl b/pl/rules.pl index b117d5f46..6d781157c 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -97,7 +97,7 @@ if (grep(/^cocoa$/, @backends) || param_get("gnustep")) { if (grep(/^haiku$/, @backends)) { add_cflags("-DUSE_HAIKU"); - new_object("src/backend/haiku.cxx"); + new_object("src/backend/haiku.cc"); add_libs("-lbe"); } diff --git a/src/backend/haiku.cxx b/src/backend/haiku.cc similarity index 68% rename from src/backend/haiku.cxx rename to src/backend/haiku.cc index e54434aa4..2dd5d1121 100644 --- a/src/backend/haiku.cxx +++ b/src/backend/haiku.cc @@ -1,24 +1,12 @@ #include -MwView::MwView(MwApplication* app, BRect rc, uint32 resizing, uint32 flags) : BView(rc, NULL, resizing, flags) { - app->PostMessage(new BMessage(B_PULSE)); - - this->SetViewColor(rand() % 256, 0, 0); - printf("?\n"); -} - -void MwApplication::ReadyToRun(){ - this->ready = 1; -} - -void MwApplication::Pulse(){ - printf("!\n"); +MwView::MwView(BRect rc, uint32 resizing, uint32 flags) : BView(rc, NULL, resizing, flags) { } MwApplication::MwApplication(BRect rc, MwLL handle) : BApplication("application/milsko-generic") { - BScreen* scr = new BScreen(); - float left = rc.left; - float top = rc.top; + BScreen* scr = new BScreen(); + float left = rc.left; + float top = rc.top; if(rc.left == MwDEFAULT) left = (scr->Frame().Width() - rc.Width()) / 2; if(rc.top == MwDEFAULT) top = (scr->Frame().Height() - rc.Height()) / 2; @@ -27,23 +15,51 @@ MwApplication::MwApplication(BRect rc, MwLL handle) : BApplication("application/ this->window = new BWindow(rc, "Milsko", B_TITLED_WINDOW, 0); this->window->Show(); - handle->haiku.view = new MwView(this, this->window->Bounds(), B_FOLLOW_ALL_SIDES, B_WILL_DRAW); + handle->haiku.view = new MwView(this->window->Bounds(), B_FOLLOW_ALL_SIDES, B_WILL_DRAW); this->window->AddChild(handle->haiku.view); - this->ready = 0; this->locker = new BLocker(); delete scr; } -MwApplication::~MwApplication(){ +MwApplication::~MwApplication() { delete this->window; delete this->locker; } +void MwApplication::MessageReceived(BMessage* message) { + switch(message->what) { + case B_MW_DESTROY: { + this->Quit(); + break; + } + default: { + BLooper::MessageReceived(message); + break; + } + } +} + +struct app_param { + BRect rc; + MwLL handle; +}; + +static int32 app_thread(void* data) { + struct app_param* r = (struct app_param*)data; + + r->handle->haiku.app = new MwApplication(r->rc, r->handle); + r->handle->haiku.app->Run(); + + free(r); + + return 0; +} + MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { - MwLL r = (MwLL)malloc(sizeof(*r)); + MwLL r = (MwLL)malloc(sizeof(*r)); BRect rc(BPoint(x, y), BSize(width, height)); MwLLCreateCommon(r); @@ -53,18 +69,26 @@ MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->haiku.parent = parent; - if(parent == NULL){ - r->haiku.app = new MwApplication(rc, r); + if(parent == NULL) { + struct app_param* p = (struct app_param*)malloc(sizeof(*p)); - //r->haiku.app->Run(); - }else{ + r->haiku.app = NULL; + + p->rc = rc; + p->handle = r; + + r->haiku.app_thread = spawn_thread(app_thread, NULL, B_NORMAL_PRIORITY, p); + resume_thread(r->haiku.app_thread); + + while(r->haiku.app == NULL) MwTimeSleep(10); + } else { MwLL top = r; - while(top->haiku.parent != NULL){ + while(top->haiku.parent != NULL) { top = top->haiku.parent; } - r->haiku.app = NULL; - r->haiku.view = new MwView(top->haiku.app, rc, B_FOLLOW_NONE, B_WILL_DRAW); + r->haiku.app = NULL; + r->haiku.view = new MwView(rc, B_FOLLOW_NONE, B_WILL_DRAW); parent->haiku.view->AddChild(r->haiku.view); } @@ -75,14 +99,24 @@ MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { void MwLLDestroyImpl(MwLL handle) { MwLLDestroyCommon(handle); + if(handle->haiku.app != NULL) { + status_t exit_value; + + handle->haiku.app->PostMessage(B_MW_DESTROY); + wait_for_thread(handle->haiku.app_thread, &exit_value); + + delete handle->haiku.app; + } + delete handle->haiku.view; + free(handle); } void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { BPoint* p = (BPoint*)malloc(sizeof(*p) * points_count); - int i; + int i; - for(i = 0; i < points_count; i++){ + for(i = 0; i < points_count; i++) { p[i] = BPoint(points[i].x, points[i].y); } @@ -95,9 +129,7 @@ void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) {} void MwLLBeginDrawImpl(MwLL handle) {} -void MwLLEndDrawImpl(MwLL handle) { - new BMessage(B_PULSE); -} +void MwLLEndDrawImpl(MwLL handle) {} MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { MwLLColor c = (MwLLColor)malloc(sizeof(*c)); @@ -119,7 +151,11 @@ void MwLLSetXYImpl(MwLL handle, int x, int y) {} void MwLLSetWHImpl(MwLL handle, int w, int h) {} -void MwLLSetTitleImpl(MwLL handle, const char* title) {} +void MwLLSetTitleImpl(MwLL handle, const char* title) { + if(handle->haiku.app == NULL) return; + + handle->haiku.app->window->SetTitle(title); +} int MwLLPendingImpl(MwLL handle) { return 0; @@ -128,7 +164,7 @@ int MwLLPendingImpl(MwLL handle) { void MwLLNextEventImpl(MwLL handle) {} MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) { - MwLLPixmap r = (MwLLPixmap)malloc(sizeof(*r)); + MwLLPixmap r = (MwLLPixmap)malloc(sizeof(*r)); r->common.raw = (unsigned char*)malloc(4 * width * height); memcpy(r->common.raw, data, 4 * width * height); diff --git a/src/widget/listbox.c b/src/widget/listbox.c index 80ceb0811..3eba969de 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -420,8 +420,8 @@ static void redrawIfNeeded(MwWidget handle, int row) { static int mwListBoxSetImpl(MwWidget handle, int row, int col, const char* text) { MwListBox lb = handle->internal; MwListBoxEntry entry; - char* t = text == NULL ? NULL : MwStringDuplicate(text); - int new = 0; + char* t = text == NULL ? NULL : MwStringDuplicate(text); + int new = 0; if(row == -1) row = arrlen(lb->list); entry.name = NULL; @@ -449,7 +449,7 @@ static int mwListBoxSetImpl(MwWidget handle, int row, int col, const char* text) static void mwListBoxSetIconImpl(MwWidget handle, int index, MwLLPixmap icon) { MwListBox lb = handle->internal; MwListBoxEntry entry; - int new = 0; + int new = 0; if(index == -1) index = arrlen(lb->list); entry.name = NULL; diff --git a/src/widget/scrollbar.c b/src/widget/scrollbar.c index 98a050d9c..17f38fdc2 100644 --- a/src/widget/scrollbar.c +++ b/src/widget/scrollbar.c @@ -58,9 +58,9 @@ static void draw(MwWidget handle) { MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); MwLLColor dark = MwLightenColor(handle, base, -64, -64, -64); MwScrollBar scr = handle->internal; - int or ; - int uy, dy, ux, dx; - MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); + int or; + int uy, dy, ux, dx; + MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); r.x = 0; r.y = 0; From 62008ec5d9322429962ccaae16fb2f5cac663449 Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 28 Apr 2026 22:01:42 +0900 Subject: [PATCH 618/836] fix --- include/Mw/MachDep.h | 4 +++- pl/utils.pl | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index 99245fb44..2658b0475 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -62,12 +62,14 @@ #include #endif -#if defined(__HAIKU__) && defined(__cplusplus) +#ifdef __HAIKU__ +#ifdef __cplusplus #include #include #include #include #include +#endif #include #endif diff --git a/pl/utils.pl b/pl/utils.pl index 3073a9eda..70750cba8 100644 --- a/pl/utils.pl +++ b/pl/utils.pl @@ -54,7 +54,7 @@ sub set_shared_flag { sub new_object { my @l = glob($_[0]); foreach my $e (@l) { - $e =~ s/\.(cxx|c|m)$/$object_suffix/; + $e =~ s/\.(cc|c|m)$/$object_suffix/; push(@library_targets, $e); } } From 7d005dc7bb09dcc3d1f95099649d0af6408bd80e Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 28 Apr 2026 23:21:32 +0900 Subject: [PATCH 619/836] polygon --- include/Mw/LowLevel/Haiku.h | 56 +++++++++- src/backend/haiku.cc | 205 ++++++++++++++++++++++++++++++++---- 2 files changed, 236 insertions(+), 25 deletions(-) diff --git a/include/Mw/LowLevel/Haiku.h b/include/Mw/LowLevel/Haiku.h index 8ea6abe13..91f635aec 100644 --- a/include/Mw/LowLevel/Haiku.h +++ b/include/Mw/LowLevel/Haiku.h @@ -15,10 +15,13 @@ extern "C" { #endif #ifdef __cplusplus +class MwApplication; +class MwView; +class MwWindow; + class MwApplication : public BApplication { public: - BWindow* window; - BLocker* locker; + MwWindow* window; MwApplication(BRect rc, MwLL handle); ~MwApplication(); @@ -28,24 +31,67 @@ class MwApplication : public BApplication { class MwView : public BView { public: - MwView(BRect rc, uint32 resizing, uint32 flags); + MwLL handle; + BLocker* locker; + + MwView(MwLL handle, BRect rc, uint32 resizingMode, uint32 flags); + ~MwView(); + + void MessageReceived(BMessage* message); + void PostMessage(BMessage* message); + + void Draw(BRect updateRect); +}; + +class MwWindow : public BWindow { + public: + MwWindow(BRect rc, window_type type, uint32 flags); + + void MessageReceived(BMessage* message); }; #else typedef void MwApplication; typedef void MwView; #endif -enum B_MW_WHAT { - B_MW_DESTROY = 0 +typedef union _MwLLHaikuEvent MwLLHaikuEvent; + +enum BAPP_MW_WHAT { + BAPP_MW_DESTROY = 0 +}; + +enum BVIEW_MW_WHAT { + BVIEW_MW_RESIZE = 0, + BVIEW_MW_MOVE, + BVIEW_MW_POLYGON +}; + +enum BWIN_MW_WHAT { + BWIN_MW_SET_TITLE = 0 +}; + +enum MwLLHAIKU_EVENT { + MwLLHAIKU_EVENT_DRAW = 0 +}; + +union _MwLLHaikuEvent { + int type; }; struct _MwLLHaiku { struct _MwLLCommon common; + int x; + int y; + int width; + int height; + MwLL parent; MwApplication* app; MwView* view; thread_id app_thread; + + MwLLHaikuEvent* events; }; struct _MwLLHaikuColor { diff --git a/src/backend/haiku.cc b/src/backend/haiku.cc index 2dd5d1121..688c09594 100644 --- a/src/backend/haiku.cc +++ b/src/backend/haiku.cc @@ -1,7 +1,6 @@ #include -MwView::MwView(BRect rc, uint32 resizing, uint32 flags) : BView(rc, NULL, resizing, flags) { -} +#include "../../external/stb_ds.h" MwApplication::MwApplication(BRect rc, MwLL handle) : BApplication("application/milsko-generic") { BScreen* scr = new BScreen(); @@ -12,26 +11,23 @@ MwApplication::MwApplication(BRect rc, MwLL handle) : BApplication("application/ if(rc.top == MwDEFAULT) top = (scr->Frame().Height() - rc.Height()) / 2; rc = BRect(BPoint(left, top), BSize(rc.Width(), rc.Height())); - this->window = new BWindow(rc, "Milsko", B_TITLED_WINDOW, 0); + this->window = new MwWindow(rc, B_TITLED_WINDOW, 0); this->window->Show(); - handle->haiku.view = new MwView(this->window->Bounds(), B_FOLLOW_ALL_SIDES, B_WILL_DRAW); + handle->haiku.view = new MwView(handle, this->window->Bounds(), B_FOLLOW_ALL_SIDES, B_WILL_DRAW); this->window->AddChild(handle->haiku.view); - this->locker = new BLocker(); - delete scr; } MwApplication::~MwApplication() { delete this->window; - delete this->locker; } void MwApplication::MessageReceived(BMessage* message) { switch(message->what) { - case B_MW_DESTROY: { + case BAPP_MW_DESTROY: { this->Quit(); break; } @@ -42,6 +38,109 @@ void MwApplication::MessageReceived(BMessage* message) { } } +MwView::MwView(MwLL handle, BRect frame, uint32 resizingMode, uint32 flags) : BView(frame, NULL, resizingMode, flags) { + this->handle = handle; + + this->SetViewColor(rand(), rand(), rand()); + this->SetHighColor(rand(), rand(), rand()); + + this->locker = new BLocker(); +} + +MwView::~MwView(){ + delete this->locker; +} + +void MwView::MessageReceived(BMessage* message) { + switch(message->what) { + case BVIEW_MW_RESIZE: { + int width, height; + + if(message->FindInt32("view-width", &width) != B_OK) break; + if(message->FindInt32("view-height", &height) != B_OK) break; + + this->ResizeTo(width, height); + break; + } + case BVIEW_MW_MOVE: { + int x, y; + + if(message->FindInt32("view-x", &x) != B_OK) break; + if(message->FindInt32("view-y", &y) != B_OK) break; + + this->MoveTo(x, y); + break; + } + case BVIEW_MW_POLYGON: + { + int i; + BPoint p; + BPoint points[128]; + + for(i = 0; message->FindPoint("view-point", i, &p) == B_OK; i++){ + points[i] = p; + } + + this->FillPolygon(points, i); + break; + } + default: { + BView::MessageReceived(message); + break; + } + } +} + +void MwView::PostMessage(BMessage* message){ + BMessage copy = *message; + + copy.AddPointer("window-view", this); + + this->Window()->PostMessage(©); +} + +void MwView::Draw(BRect updateRect){ + MwLLHaikuEvent ev; + + (void)updateRect; + + ev.type = MwLLHAIKU_EVENT_DRAW; + + this->locker->Lock(); + arrput(this->handle->haiku.events, ev); + this->locker->Unlock(); +} + +MwWindow::MwWindow(BRect frame, window_type type, uint32 flags) : BWindow(frame, "Milsko", type, flags) { +} + +void MwWindow::MessageReceived(BMessage* message) { + void* ptr; + + if(message->FindPointer("window-view", &ptr) == B_OK){ + MwView* v = (MwView*)ptr; + + v->MessageReceived(message); + + return; + } + + switch(message->what) { + case BWIN_MW_SET_TITLE: { + const char* title; + + if(message->FindString("window-title", &title) != B_OK) break; + + this->SetTitle(title); + break; + } + default: { + BWindow::MessageReceived(message); + break; + } + } +} + struct app_param { BRect rc; MwLL handle; @@ -69,6 +168,8 @@ MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->haiku.parent = parent; + r->haiku.events = NULL; + if(parent == NULL) { struct app_param* p = (struct app_param*)malloc(sizeof(*p)); @@ -77,6 +178,9 @@ MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { p->rc = rc; p->handle = r; + r->haiku.app = NULL; + r->haiku.view = NULL; + r->haiku.app_thread = spawn_thread(app_thread, NULL, B_NORMAL_PRIORITY, p); resume_thread(r->haiku.app_thread); @@ -88,11 +192,16 @@ MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { } r->haiku.app = NULL; - r->haiku.view = new MwView(rc, B_FOLLOW_NONE, B_WILL_DRAW); + r->haiku.view = new MwView(r, rc, B_FOLLOW_NONE, B_WILL_DRAW); parent->haiku.view->AddChild(r->haiku.view); } + r->haiku.x = x; + r->haiku.y = y; + r->haiku.width = width; + r->haiku.height = height; + return r; } @@ -102,7 +211,7 @@ void MwLLDestroyImpl(MwLL handle) { if(handle->haiku.app != NULL) { status_t exit_value; - handle->haiku.app->PostMessage(B_MW_DESTROY); + handle->haiku.app->PostMessage(BAPP_MW_DESTROY); wait_for_thread(handle->haiku.app_thread, &exit_value); delete handle->haiku.app; @@ -113,16 +222,14 @@ void MwLLDestroyImpl(MwLL handle) { } void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { - BPoint* p = (BPoint*)malloc(sizeof(*p) * points_count); int i; + BMessage msg(BVIEW_MW_POLYGON); for(i = 0; i < points_count; i++) { - p[i] = BPoint(points[i].x, points[i].y); + msg.AddPoint("view-point", BPoint(points[i].x, points[i].y)); } - handle->haiku.view->FillPolygon(p, points_count); - - free(p); + handle->haiku.view->PostMessage(&msg); } void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) {} @@ -133,7 +240,9 @@ void MwLLEndDrawImpl(MwLL handle) {} MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { MwLLColor c = (MwLLColor)malloc(sizeof(*c)); + MwLLColorUpdate(handle, c, r, g, b); + return c; } @@ -145,23 +254,79 @@ void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { void MwLLFreeColorImpl(MwLLColor color) {} -void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h) {} +void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h) { + BRect rc; -void MwLLSetXYImpl(MwLL handle, int x, int y) {} + if(handle->haiku.app == NULL){ + rc = BRect(BPoint(handle->haiku.x, handle->haiku.y), BSize(handle->haiku.width, handle->haiku.height)); + }else{ + rc = handle->haiku.app->window->Frame(); + } -void MwLLSetWHImpl(MwLL handle, int w, int h) {} + *x = rc.left; + *y = rc.top; + *w = rc.Width(); + *h = rc.Height(); +} + +void MwLLSetXYImpl(MwLL handle, int x, int y) { + BMessage msg(BVIEW_MW_MOVE); + + handle->haiku.x = x; + handle->haiku.y = y; + + msg.AddInt32("view-x", x); + msg.AddInt32("view-y", y); + + handle->haiku.view->PostMessage(&msg); +} + +void MwLLSetWHImpl(MwLL handle, int w, int h) { + BMessage msg(BVIEW_MW_RESIZE); + + handle->haiku.width = w; + handle->haiku.height = h; + + msg.AddInt32("view-width", w); + msg.AddInt32("view-height", h); + + handle->haiku.view->PostMessage(&msg); +} void MwLLSetTitleImpl(MwLL handle, const char* title) { + BMessage msg(BWIN_MW_SET_TITLE); + if(handle->haiku.app == NULL) return; - handle->haiku.app->window->SetTitle(title); + msg.AddString("window-title", title); + + handle->haiku.app->window->PostMessage(&msg); } int MwLLPendingImpl(MwLL handle) { + handle->haiku.view->locker->Lock(); + if(arrlen(handle->haiku.events) > 0){ + handle->haiku.view->locker->Unlock(); + return 1; + } + handle->haiku.view->locker->Unlock(); + return 0; } -void MwLLNextEventImpl(MwLL handle) {} +void MwLLNextEventImpl(MwLL handle) { + handle->haiku.view->locker->Lock(); + while(arrlen(handle->haiku.events) > 0){ + MwLLHaikuEvent* ev = &handle->haiku.events[0]; + + if(ev->type == MwLLHAIKU_EVENT_DRAW){ + MwLLDispatch(handle, draw, NULL); + } + + arrdel(handle->haiku.events, 0); + } + handle->haiku.view->locker->Unlock(); +} MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) { MwLLPixmap r = (MwLLPixmap)malloc(sizeof(*r)); From 1eb0b0154b01d654d9e137cb04fec7561c285875 Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 29 Apr 2026 01:03:50 +0900 Subject: [PATCH 620/836] bitmap --- include/Mw/LowLevel/Haiku.h | 8 +++- include/Mw/MachDep.h | 1 + src/backend/haiku.cc | 96 +++++++++++++++++++++++++++++++++---- 3 files changed, 96 insertions(+), 9 deletions(-) diff --git a/include/Mw/LowLevel/Haiku.h b/include/Mw/LowLevel/Haiku.h index 91f635aec..a231d01e7 100644 --- a/include/Mw/LowLevel/Haiku.h +++ b/include/Mw/LowLevel/Haiku.h @@ -41,6 +41,8 @@ class MwView : public BView { void PostMessage(BMessage* message); void Draw(BRect updateRect); + + void SetColor(MwLLColor color); }; class MwWindow : public BWindow { @@ -63,7 +65,9 @@ enum BAPP_MW_WHAT { enum BVIEW_MW_WHAT { BVIEW_MW_RESIZE = 0, BVIEW_MW_MOVE, - BVIEW_MW_POLYGON + BVIEW_MW_SET_COLOR, + BVIEW_MW_POLYGON, + BVIEW_MW_BITMAP }; enum BWIN_MW_WHAT { @@ -100,6 +104,8 @@ struct _MwLLHaikuColor { struct _MwLLHaikuPixmap { struct _MwLLCommonPixmap common; + + BBitmap* bitmap; }; MWDECL int MwLLHaikuCallInit(void); diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index 2658b0475..05d55aadd 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -69,6 +69,7 @@ #include #include #include +#include #endif #include #endif diff --git a/src/backend/haiku.cc b/src/backend/haiku.cc index 688c09594..d37266900 100644 --- a/src/backend/haiku.cc +++ b/src/backend/haiku.cc @@ -2,6 +2,11 @@ #include "../../external/stb_ds.h" +static void fix_point(BPoint* p, MwView* v){ + p->x = p->x * (v->handle->haiku.width + 1) / v->handle->haiku.width; + p->y = p->y * (v->handle->haiku.height + 1) / v->handle->haiku.height; +} + MwApplication::MwApplication(BRect rc, MwLL handle) : BApplication("application/milsko-generic") { BScreen* scr = new BScreen(); float left = rc.left; @@ -41,10 +46,11 @@ void MwApplication::MessageReceived(BMessage* message) { MwView::MwView(MwLL handle, BRect frame, uint32 resizingMode, uint32 flags) : BView(frame, NULL, resizingMode, flags) { this->handle = handle; - this->SetViewColor(rand(), rand(), rand()); - this->SetHighColor(rand(), rand(), rand()); - this->locker = new BLocker(); + + this->SetDrawingMode(B_OP_OVER); + + this->SetViewColor(255, 0, 0); } MwView::~MwView(){ @@ -71,6 +77,19 @@ void MwView::MessageReceived(BMessage* message) { this->MoveTo(x, y); break; } + case BVIEW_MW_SET_COLOR: + { + int32 rgb[3]; + int i; + + rgb[0] = rgb[1] = rgb[2] = 0; + + for(i = 0; i < 3 && message->FindInt32("view-color", i, &rgb[i]) == B_OK; i++); + + this->SetHighColor(rgb[0], rgb[1], rgb[2]); + + break; + } case BVIEW_MW_POLYGON: { int i; @@ -84,6 +103,17 @@ void MwView::MessageReceived(BMessage* message) { this->FillPolygon(points, i); break; } + case BVIEW_MW_BITMAP: + { + BRect rc; + BBitmap* bitmap; + + if(message->FindRect("view-rect", &rc) != B_OK) break; + if(message->FindPointer("view-bitmap", (void**)&bitmap) != B_OK) break; + + this->DrawBitmap(bitmap, rc); + break; + } default: { BView::MessageReceived(message); break; @@ -111,6 +141,16 @@ void MwView::Draw(BRect updateRect){ this->locker->Unlock(); } +void MwView::SetColor(MwLLColor color){ + BMessage msg(BVIEW_MW_SET_COLOR); + + msg.AddInt32("view-color", color->common.red); + msg.AddInt32("view-color", color->common.green); + msg.AddInt32("view-color", color->common.blue); + + this->PostMessage(&msg); +} + MwWindow::MwWindow(BRect frame, window_type type, uint32 flags) : BWindow(frame, "Milsko", type, flags) { } @@ -159,7 +199,7 @@ static int32 app_thread(void* data) { MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLL r = (MwLL)malloc(sizeof(*r)); - BRect rc(BPoint(x, y), BSize(width, height)); + BRect rc = BRect(BPoint(x, y), BSize(width, height)); MwLLCreateCommon(r); @@ -226,9 +266,14 @@ void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor c BMessage msg(BVIEW_MW_POLYGON); for(i = 0; i < points_count; i++) { - msg.AddPoint("view-point", BPoint(points[i].x, points[i].y)); + BPoint p(points[i].x, points[i].y); + + fix_point(&p, handle->haiku.view); + + msg.AddPoint("view-point", p); } + handle->haiku.view->SetColor(color); handle->haiku.view->PostMessage(&msg); } @@ -252,10 +297,13 @@ void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { c->common.blue = b; } -void MwLLFreeColorImpl(MwLLColor color) {} +void MwLLFreeColorImpl(MwLLColor color) { + free(color); +} void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h) { BRect rc; + int m = 0; if(handle->haiku.app == NULL){ rc = BRect(BPoint(handle->haiku.x, handle->haiku.y), BSize(handle->haiku.width, handle->haiku.height)); @@ -336,13 +384,32 @@ MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int r->common.width = width; r->common.height = height; + r->haiku.bitmap = NULL; + MwLLPixmapUpdate(r); return r; return r; } -void MwLLPixmapUpdateImpl(MwLLPixmap pixmap) {} +void MwLLPixmapUpdateImpl(MwLLPixmap pixmap) { + uint32* px = (uint32*)malloc(4 * pixmap->common.width * pixmap->common.height); + int i; + + for(i = 0; i < pixmap->common.width * pixmap->common.height; i++){ + unsigned char* ipx = &pixmap->common.raw[4 * i]; + + px[i] = (ipx[3] << 24) | (ipx[0] << 16) | (ipx[1] << 8) | (ipx[2] << 0); + } + + if(pixmap->haiku.bitmap != NULL) delete pixmap->haiku.bitmap; + + pixmap->haiku.bitmap = new BBitmap(BRect(0, 0, pixmap->common.width - 1, pixmap->common.height - 1), B_RGBA32); + + pixmap->haiku.bitmap->SetBits(px, pixmap->common.width * pixmap->common.height * 4, 0, B_RGBA32); + + free(px); +} void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { free(pixmap->common.raw); @@ -350,7 +417,20 @@ void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { free(pixmap); } -void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) {} +void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { + BPoint p; + BRect rc; + BMessage msg(BVIEW_MW_BITMAP); + + p = BPoint(rect->x, rect->y); + fix_point(&p, handle->haiku.view); + rc = BRect(p, BSize(rect->width, rect->height)); + + msg.AddRect("view-rect", rc); + msg.AddPointer("view-bitmap", pixmap->haiku.bitmap); + + handle->haiku.view->PostMessage(&msg); +} void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) {} From c998c6165508aa7541a4b05acd9068aa4cdf63e3 Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 29 Apr 2026 03:41:00 +0900 Subject: [PATCH 621/836] mouse and stuff --- examples/basic/periodic.c | 11 ++ include/Mw/LowLevel/Haiku.h | 36 ++++++- src/backend/haiku.cc | 197 ++++++++++++++++++++++++++++++++++-- src/widget/menu.c | 2 +- 4 files changed, 231 insertions(+), 15 deletions(-) diff --git a/examples/basic/periodic.c b/examples/basic/periodic.c index cc55882bb..7ecb1d9d0 100644 --- a/examples/basic/periodic.c +++ b/examples/basic/periodic.c @@ -151,6 +151,7 @@ int main() { int index; MwMenu m, m2; void* v; + MwRect rc; MwLibraryInit(); @@ -158,6 +159,16 @@ int main() { MwNtitle, "Milsko Periodic Table", NULL); + MwGetScreenSize(window, &rc); + if(rc.height < 800) { + MwVaApply(window, + MwNx, (rc.width - (rc.height - 64)) / 2, + MwNy, (rc.height - (rc.height - 64)) / 2, + MwNwidth, rc.height - 64, + MwNheight, rc.height - 64, + NULL); + } + px = MwLoadIcon(window, MwIconError); menu = MwCreateWidget(MwMenuClass, "menu", window, 0, 0, 0, 0); diff --git a/include/Mw/LowLevel/Haiku.h b/include/Mw/LowLevel/Haiku.h index a231d01e7..eeafb6915 100644 --- a/include/Mw/LowLevel/Haiku.h +++ b/include/Mw/LowLevel/Haiku.h @@ -33,14 +33,21 @@ class MwView : public BView { public: MwLL handle; BLocker* locker; + uint32 buttons; MwView(MwLL handle, BRect rc, uint32 resizingMode, uint32 flags); ~MwView(); void MessageReceived(BMessage* message); void PostMessage(BMessage* message); + void PostMessage(uint32 command); + void Invalidate(); + void AttachedToWindow(); void Draw(BRect updateRect); + void MouseDown(BPoint point); + void MouseUp(BPoint point); + void MouseMoved(BPoint point, uint32 transit, const BMessage* message); void SetColor(MwLLColor color); }; @@ -51,9 +58,12 @@ class MwWindow : public BWindow { void MessageReceived(BMessage* message); }; + +typedef BBitmap MwBBitmap; #else typedef void MwApplication; typedef void MwView; +typedef void MwBBitmap; #endif typedef union _MwLLHaikuEvent MwLLHaikuEvent; @@ -63,11 +73,17 @@ enum BAPP_MW_WHAT { }; enum BVIEW_MW_WHAT { - BVIEW_MW_RESIZE = 0, + BVIEW_MW_DESTROY = 0, + BVIEW_MW_DETACH, + BVIEW_MW_RESIZE, BVIEW_MW_MOVE, + BVIEW_MW_SHOW, + BVIEW_MW_HIDE, BVIEW_MW_SET_COLOR, BVIEW_MW_POLYGON, - BVIEW_MW_BITMAP + BVIEW_MW_LINE, + BVIEW_MW_BITMAP, + BVIEW_MW_RENDER }; enum BWIN_MW_WHAT { @@ -75,11 +91,21 @@ enum BWIN_MW_WHAT { }; enum MwLLHAIKU_EVENT { - MwLLHAIKU_EVENT_DRAW = 0 + MwLLHAIKU_EVENT_DRAW = 0, + MwLLHAIKU_EVENT_MOUSEDOWN, + MwLLHAIKU_EVENT_MOUSEUP, + MwLLHAIKU_EVENT_MOUSEMOVED +}; + +struct _MwLLHaikuEventMouse { + int type; + MwPoint point; + int button; }; union _MwLLHaikuEvent { - int type; + int type; + struct _MwLLHaikuEventMouse mouse; }; struct _MwLLHaiku { @@ -105,7 +131,7 @@ struct _MwLLHaikuColor { struct _MwLLHaikuPixmap { struct _MwLLCommonPixmap common; - BBitmap* bitmap; + MwBBitmap* bitmap; }; MWDECL int MwLLHaikuCallInit(void); diff --git a/src/backend/haiku.cc b/src/backend/haiku.cc index d37266900..1ad864ddb 100644 --- a/src/backend/haiku.cc +++ b/src/backend/haiku.cc @@ -49,8 +49,11 @@ MwView::MwView(MwLL handle, BRect frame, uint32 resizingMode, uint32 flags) : BV this->locker = new BLocker(); this->SetDrawingMode(B_OP_OVER); + this->SetLineMode(B_BUTT_CAP, B_BUTT_JOIN); this->SetViewColor(255, 0, 0); + + this->buttons = 0; } MwView::~MwView(){ @@ -59,13 +62,28 @@ MwView::~MwView(){ void MwView::MessageReceived(BMessage* message) { switch(message->what) { + case BVIEW_MW_DESTROY: + { + this->RemoveSelf(); + delete this; + break; + } + case BVIEW_MW_DETACH: + { + this->RemoveSelf(); + break; + } case BVIEW_MW_RESIZE: { int width, height; if(message->FindInt32("view-width", &width) != B_OK) break; if(message->FindInt32("view-height", &height) != B_OK) break; - this->ResizeTo(width, height); + if(this->handle->haiku.app == NULL){ + this->ResizeTo(width, height); + }else{ + this->Window()->ResizeTo(width, height); + } break; } case BVIEW_MW_MOVE: { @@ -74,7 +92,25 @@ void MwView::MessageReceived(BMessage* message) { if(message->FindInt32("view-x", &x) != B_OK) break; if(message->FindInt32("view-y", &y) != B_OK) break; - this->MoveTo(x, y); + if(this->handle->haiku.app == NULL){ + this->MoveTo(x, y); + }else{ + this->Window()->MoveTo(x, y); + } + break; + } + case BVIEW_MW_SHOW: + { + if(this->Window() == NULL){ + this->handle->haiku.parent->haiku.view->AddChild(this); + } + break; + } + case BVIEW_MW_HIDE: + { + if(this->Window() != NULL){ + this->RemoveSelf(); + } break; } case BVIEW_MW_SET_COLOR: @@ -94,15 +130,28 @@ void MwView::MessageReceived(BMessage* message) { { int i; BPoint p; - BPoint points[128]; + BPoint points[32]; - for(i = 0; message->FindPoint("view-point", i, &p) == B_OK; i++){ + for(i = 0; i < 32 && message->FindPoint("view-point", i, &p) == B_OK; i++){ points[i] = p; } this->FillPolygon(points, i); break; } + case BVIEW_MW_LINE: + { + int i; + BPoint p; + BPoint points[2]; + + for(i = 0; i < 2 && message->FindPoint("view-point", i, &p) == B_OK; i++){ + points[i] = p; + } + + this->StrokeLine(points[0], points[1]); + break; + } case BVIEW_MW_BITMAP: { BRect rc; @@ -114,6 +163,11 @@ void MwView::MessageReceived(BMessage* message) { this->DrawBitmap(bitmap, rc); break; } + case BVIEW_MW_RENDER: + { + this->Invalidate(); + break; + } default: { BView::MessageReceived(message); break; @@ -129,6 +183,20 @@ void MwView::PostMessage(BMessage* message){ this->Window()->PostMessage(©); } +void MwView::PostMessage(uint32 command){ + BMessage msg(command); + + this->PostMessage(&msg); +} + +void MwView::Invalidate(){ + this->Draw(BRect(0, 0, 0, 0)); +} + +void MwView::AttachedToWindow(){ + this->SetOrigin(0, 0); +} + void MwView::Draw(BRect updateRect){ MwLLHaikuEvent ev; @@ -141,6 +209,71 @@ void MwView::Draw(BRect updateRect){ this->locker->Unlock(); } +void MwView::MouseDown(BPoint point){ + MwLLHaikuEvent ev; + uint32 btn; + BPoint p; + + this->GetMouse(&p, &btn, false); + + this->SetMouseEventMask(B_LOCK_WINDOW_FOCUS); + + ev.type = MwLLHAIKU_EVENT_MOUSEDOWN; + ev.mouse.point.x = point.x; + ev.mouse.point.y = point.y; + + if((btn & B_PRIMARY_MOUSE_BUTTON) && !(this->buttons & B_PRIMARY_MOUSE_BUTTON)){ + ev.mouse.button = MwMOUSE_LEFT; + }else if((btn & B_SECONDARY_MOUSE_BUTTON) && !(this->buttons & B_SECONDARY_MOUSE_BUTTON)){ + ev.mouse.button = MwMOUSE_RIGHT; + }else if((btn & B_TERTIARY_MOUSE_BUTTON) && !(this->buttons & B_TERTIARY_MOUSE_BUTTON)){ + ev.mouse.button = MwMOUSE_MIDDLE; + } + this->buttons = btn; + + this->locker->Lock(); + arrput(this->handle->haiku.events, ev); + this->locker->Unlock(); +} + +void MwView::MouseUp(BPoint point){ + MwLLHaikuEvent ev; + uint32 btn; + BPoint p; + + this->GetMouse(&p, &btn, false); + + ev.type = MwLLHAIKU_EVENT_MOUSEUP; + ev.mouse.point.x = point.x; + ev.mouse.point.y = point.y; + + if(!(btn & B_PRIMARY_MOUSE_BUTTON) && (this->buttons & B_PRIMARY_MOUSE_BUTTON)){ + ev.mouse.button = MwMOUSE_LEFT; + }else if(!(btn & B_SECONDARY_MOUSE_BUTTON) && (this->buttons & B_SECONDARY_MOUSE_BUTTON)){ + ev.mouse.button = MwMOUSE_RIGHT; + }else if(!(btn & B_TERTIARY_MOUSE_BUTTON) && (this->buttons & B_TERTIARY_MOUSE_BUTTON)){ + ev.mouse.button = MwMOUSE_MIDDLE; + } + this->buttons = btn; + + this->locker->Lock(); + arrput(this->handle->haiku.events, ev); + this->locker->Unlock(); +} + +void MwView::MouseMoved(BPoint point, uint32 transit, const BMessage* message){ + MwLLHaikuEvent ev; + + ev.type = MwLLHAIKU_EVENT_MOUSEMOVED; + ev.mouse.point.x = point.x; + ev.mouse.point.y = point.y; + ev.mouse.button = 0; + + this->locker->Lock(); + arrput(this->handle->haiku.events, ev); + this->locker->Unlock(); +} + void MwView::SetColor(MwLLColor color){ BMessage msg(BVIEW_MW_SET_COLOR); @@ -248,6 +381,8 @@ MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { void MwLLDestroyImpl(MwLL handle) { MwLLDestroyCommon(handle); + handle->haiku.view->PostMessage(BVIEW_MW_DESTROY); + if(handle->haiku.app != NULL) { status_t exit_value; @@ -256,7 +391,6 @@ void MwLLDestroyImpl(MwLL handle) { delete handle->haiku.app; } - delete handle->haiku.view; free(handle); } @@ -277,7 +411,21 @@ void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor c handle->haiku.view->PostMessage(&msg); } -void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) {} +void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { + int i; + BMessage msg(BVIEW_MW_LINE); + + for(i = 0; i < 2; i++){ + BPoint p(points[i].x, points[i].y); + + fix_point(&p, handle->haiku.view); + + msg.AddPoint("view-point", p); + } + + handle->haiku.view->SetColor(color); + handle->haiku.view->PostMessage(&msg); +} void MwLLBeginDrawImpl(MwLL handle) {} @@ -339,6 +487,8 @@ void MwLLSetWHImpl(MwLL handle, int w, int h) { msg.AddInt32("view-height", h); handle->haiku.view->PostMessage(&msg); + + MwLLDispatch(handle, resize, NULL); } void MwLLSetTitleImpl(MwLL handle, const char* title) { @@ -366,9 +516,21 @@ void MwLLNextEventImpl(MwLL handle) { handle->haiku.view->locker->Lock(); while(arrlen(handle->haiku.events) > 0){ MwLLHaikuEvent* ev = &handle->haiku.events[0]; + MwMouse m; + + if(ev->type == MwLLHAIKU_EVENT_MOUSEDOWN || ev->type == MwLLHAIKU_EVENT_MOUSEUP){ + m.point = ev->mouse.point; + m.button = ev->mouse.button; + } if(ev->type == MwLLHAIKU_EVENT_DRAW){ MwLLDispatch(handle, draw, NULL); + }else if(ev->type == MwLLHAIKU_EVENT_MOUSEDOWN){ + MwLLDispatch(handle, down, &m); + }else if(ev->type == MwLLHAIKU_EVENT_MOUSEUP){ + MwLLDispatch(handle, up, &m); + }else if(ev->type == MwLLHAIKU_EVENT_MOUSEMOVED){ + MwLLDispatch(handle, move, &ev->mouse.point); } arrdel(handle->haiku.events, 0); @@ -434,13 +596,21 @@ void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) {} -void MwLLForceRenderImpl(MwLL handle) {} +void MwLLForceRenderImpl(MwLL handle) { + handle->haiku.view->PostMessage(BVIEW_MW_RENDER); +} void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) {} void MwLLDetachImpl(MwLL handle, MwPoint* point) {} -void MwLLShowImpl(MwLL handle, int show) {} +void MwLLShowImpl(MwLL handle, int show) { + if(show){ + handle->haiku.view->PostMessage(BVIEW_MW_SHOW); + }else{ + handle->haiku.view->PostMessage(BVIEW_MW_HIDE); + } +} void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) {} @@ -464,7 +634,16 @@ void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) {} void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) {} -void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) {} +void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { + BScreen* screen = new BScreen(); + + if(screen->IsValid()){ + rect->width = screen->Frame().Width(); + rect->height = screen->Frame().Height(); + } + + delete screen; +} void MwLLSetDarkThemeImpl(MwLL handle, int toggle) { (void)handle; diff --git a/src/widget/menu.c b/src/widget/menu.c index a7232a6b6..edadf4091 100644 --- a/src/widget/menu.c +++ b/src/widget/menu.c @@ -97,7 +97,7 @@ static void destroy(MwWidget handle) { p2.x = p.x - 5; \ p2.y = p.y + th / 2 + 5; \ \ - m->sub[i]->wsub = MwCreateWidget(MwSubMenuClass, "submenu", handle, 0, 0, 0, 0); \ + m->sub[i]->wsub = MwCreateWidget(MwSubMenuClass, "submenu", handle, 0, MwGetInteger(handle, MwNheight), 0, 0); \ MwSubMenuAppear(m->sub[i]->wsub, m->sub[i], &p2, 0); static void draw(MwWidget handle) { From c095fb97a8c4af10d197b17a22feb09c1ca4993a Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 29 Apr 2026 04:24:01 +0900 Subject: [PATCH 622/836] less flickering --- .clang-format | 3 + configure | 2 +- include/Mw/LowLevel/Haiku.h | 1 + include/Mw/MachDep.h | 1 + src/backend/classicmacos.c | 18 ++-- src/backend/cocoa.m | 9 +- src/backend/haiku.cc | 169 +++++++++++++++++++----------------- src/dialog/messagebox.c | 18 ++-- 8 files changed, 125 insertions(+), 96 deletions(-) diff --git a/.clang-format b/.clang-format index 10cb6acb5..eb9d30cc5 100644 --- a/.clang-format +++ b/.clang-format @@ -14,6 +14,9 @@ AllowShortIfStatementsOnASingleLine: Always AllowShortBlocksOnASingleLine: Never AllowShortFunctionsOnASingleLine: Empty AllowShortLoopsOnASingleLine: true +BreakBeforeBraces: Custom +BraceWrapping: + AfterCaseLabel: true SpaceBeforeParens: Never AlignEscapedNewlines: DontAlign SortIncludes: false diff --git a/configure b/configure index a29cb7e1a..bf4699a0a 100755 --- a/configure +++ b/configure @@ -227,7 +227,7 @@ print(OUT " cp -rf include \$(DESTDIR)\$(PREFIX)/\n"); print(OUT "\n"); print(OUT "format:\n"); print(OUT -" clang-format --verbose -i `find tools src include examples \"(\" -name \"*.c\" -or -name \"*.cxx\" -or -name \"*.h\" -or -name \"*.m\" \")\" -and -not -name \"*ttf.c\"`\n" +" clang-format --verbose -i `find tools src include examples \"(\" -name \"*.c\" -or -name \"*.cc\" -or -name \"*.h\" -or -name \"*.m\" \")\" -and -not -name \"*ttf.c\"`\n" ); print(OUT " perltidy -b -bext=\"/\" --paren-tightness=2 `find tools pl configure -name \"*.pl\"`\n" diff --git a/include/Mw/LowLevel/Haiku.h b/include/Mw/LowLevel/Haiku.h index eeafb6915..8e6026a34 100644 --- a/include/Mw/LowLevel/Haiku.h +++ b/include/Mw/LowLevel/Haiku.h @@ -34,6 +34,7 @@ class MwView : public BView { MwLL handle; BLocker* locker; uint32 buttons; + BBitmap* bitmap; MwView(MwLL handle, BRect rc, uint32 resizingMode, uint32 flags); ~MwView(); diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index 05d55aadd..7fb94eb89 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -69,6 +69,7 @@ #include #include #include +#include #include #endif #include diff --git a/src/backend/classicmacos.c b/src/backend/classicmacos.c index eb0478a90..602322054 100644 --- a/src/backend/classicmacos.c +++ b/src/backend/classicmacos.c @@ -130,13 +130,15 @@ static void MwLLNextEventImpl(MwLL handle) { GetNextEvent(everyEvent, &event); switch(event.what) { - case updateEvt: { + case updateEvt: + { } // MwLLDispatch(handle, draw, NULL); break; case osEvt: break; - case mouseUp: { + case mouseUp: + { // MwLLMouse m; // m.button = MwLLMouseLeft; // if(___curWindow->mouseButtonCallback != NULL) { @@ -151,7 +153,8 @@ static void MwLLNextEventImpl(MwLL handle) { // } // } } - case mouseDown: { + case mouseDown: + { // // start with callback stuff // if(___curWindow->mouseButtonCallback != NULL) { // int mods = MacModifiersToGLFWModifiers(event.modifiers); @@ -174,7 +177,8 @@ static void MwLLNextEventImpl(MwLL handle) { // event.where.v); // } break; - case inGrow: { + case inGrow: + { long growResult = GrowWindow(handle->cmacos.window, event.where, &qd.screenBits.bounds); @@ -201,7 +205,8 @@ static void MwLLNextEventImpl(MwLL handle) { // } } break; - case inGoAway: { + case inGoAway: + { if(TrackGoAway(handle->cmacos.window, event.where)) { MwLLDispatch(handle, close, NULL); // if(___curWindow->windowCloseCallback != NULL) { @@ -214,7 +219,8 @@ static void MwLLNextEventImpl(MwLL handle) { } case autoKey: case keyDown: - case keyUp: { + case keyUp: + { // // key char stuff // unsigned char ch = (event.message & charCodeMask); // if(*___curWindow->charCallback != NULL) { diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index d52fbbaa9..5b2d6da52 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -128,7 +128,8 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { for(i = 0; i < arrlen(self->commands); i++) { draw_command cmd = self->commands[i]; switch(cmd.type) { - case COCOA_DRAW_COMMAND_POLY: { + case COCOA_DRAW_COMMAND_POLY: + { int n; NSBezierPath* path = [NSBezierPath bezierPath]; @@ -156,7 +157,8 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { free(cmd.poly.points); } break; - case COCOA_DRAW_COMMAND_LINES: { + case COCOA_DRAW_COMMAND_LINES: + { int n; NSBezierPath* path = [NSBezierPath bezierPath]; @@ -184,7 +186,8 @@ static void recursive_dispatch_key_released(MwLL handle, int* k) { free(cmd.lines.points); } break; - case COCOA_DRAW_COMMAND_PIXMAP: { + case COCOA_DRAW_COMMAND_PIXMAP: + { NSRect rect = localRectFlip(NSMakeRect(cmd.pixmap.rect.x, cmd.pixmap.rect.y, cmd.pixmap.rect.width, cmd.pixmap.rect.height), self); rect.origin.x += [self bounds].origin.x; rect.origin.y += [self bounds].origin.y; diff --git a/src/backend/haiku.cc b/src/backend/haiku.cc index 1ad864ddb..c431374c6 100644 --- a/src/backend/haiku.cc +++ b/src/backend/haiku.cc @@ -2,7 +2,7 @@ #include "../../external/stb_ds.h" -static void fix_point(BPoint* p, MwView* v){ +static void fix_point(BPoint* p, MwView* v) { p->x = p->x * (v->handle->haiku.width + 1) / v->handle->haiku.width; p->y = p->y * (v->handle->haiku.height + 1) / v->handle->haiku.height; } @@ -32,11 +32,13 @@ MwApplication::~MwApplication() { void MwApplication::MessageReceived(BMessage* message) { switch(message->what) { - case BAPP_MW_DESTROY: { + case BAPP_MW_DESTROY: + { this->Quit(); break; } - default: { + default: + { BLooper::MessageReceived(message); break; } @@ -51,12 +53,12 @@ MwView::MwView(MwLL handle, BRect frame, uint32 resizingMode, uint32 flags) : BV this->SetDrawingMode(B_OP_OVER); this->SetLineMode(B_BUTT_CAP, B_BUTT_JOIN); - this->SetViewColor(255, 0, 0); + this->SetViewColor(B_TRANSPARENT_COLOR); this->buttons = 0; } -MwView::~MwView(){ +MwView::~MwView() { delete this->locker; } @@ -73,42 +75,44 @@ void MwView::MessageReceived(BMessage* message) { this->RemoveSelf(); break; } - case BVIEW_MW_RESIZE: { + case BVIEW_MW_RESIZE: + { int width, height; if(message->FindInt32("view-width", &width) != B_OK) break; if(message->FindInt32("view-height", &height) != B_OK) break; - if(this->handle->haiku.app == NULL){ + if(this->handle->haiku.app == NULL) { this->ResizeTo(width, height); - }else{ + } else { this->Window()->ResizeTo(width, height); } break; } - case BVIEW_MW_MOVE: { + case BVIEW_MW_MOVE: + { int x, y; if(message->FindInt32("view-x", &x) != B_OK) break; if(message->FindInt32("view-y", &y) != B_OK) break; - if(this->handle->haiku.app == NULL){ + if(this->handle->haiku.app == NULL) { this->MoveTo(x, y); - }else{ + } else { this->Window()->MoveTo(x, y); } break; } case BVIEW_MW_SHOW: { - if(this->Window() == NULL){ + if(this->Window() == NULL) { this->handle->haiku.parent->haiku.view->AddChild(this); } break; } case BVIEW_MW_HIDE: { - if(this->Window() != NULL){ + if(this->Window() != NULL) { this->RemoveSelf(); } break; @@ -116,7 +120,7 @@ void MwView::MessageReceived(BMessage* message) { case BVIEW_MW_SET_COLOR: { int32 rgb[3]; - int i; + int i; rgb[0] = rgb[1] = rgb[2] = 0; @@ -128,11 +132,11 @@ void MwView::MessageReceived(BMessage* message) { } case BVIEW_MW_POLYGON: { - int i; + int i; BPoint p; BPoint points[32]; - for(i = 0; i < 32 && message->FindPoint("view-point", i, &p) == B_OK; i++){ + for(i = 0; i < 32 && message->FindPoint("view-point", i, &p) == B_OK; i++) { points[i] = p; } @@ -141,11 +145,11 @@ void MwView::MessageReceived(BMessage* message) { } case BVIEW_MW_LINE: { - int i; + int i; BPoint p; BPoint points[2]; - for(i = 0; i < 2 && message->FindPoint("view-point", i, &p) == B_OK; i++){ + for(i = 0; i < 2 && message->FindPoint("view-point", i, &p) == B_OK; i++) { points[i] = p; } @@ -154,7 +158,7 @@ void MwView::MessageReceived(BMessage* message) { } case BVIEW_MW_BITMAP: { - BRect rc; + BRect rc; BBitmap* bitmap; if(message->FindRect("view-rect", &rc) != B_OK) break; @@ -168,14 +172,15 @@ void MwView::MessageReceived(BMessage* message) { this->Invalidate(); break; } - default: { + default: + { BView::MessageReceived(message); break; } } } -void MwView::PostMessage(BMessage* message){ +void MwView::PostMessage(BMessage* message) { BMessage copy = *message; copy.AddPointer("window-view", this); @@ -183,21 +188,21 @@ void MwView::PostMessage(BMessage* message){ this->Window()->PostMessage(©); } -void MwView::PostMessage(uint32 command){ +void MwView::PostMessage(uint32 command) { BMessage msg(command); this->PostMessage(&msg); } -void MwView::Invalidate(){ +void MwView::Invalidate() { this->Draw(BRect(0, 0, 0, 0)); } -void MwView::AttachedToWindow(){ +void MwView::AttachedToWindow() { this->SetOrigin(0, 0); } -void MwView::Draw(BRect updateRect){ +void MwView::Draw(BRect updateRect) { MwLLHaikuEvent ev; (void)updateRect; @@ -209,24 +214,24 @@ void MwView::Draw(BRect updateRect){ this->locker->Unlock(); } -void MwView::MouseDown(BPoint point){ +void MwView::MouseDown(BPoint point) { MwLLHaikuEvent ev; - uint32 btn; - BPoint p; + uint32 btn; + BPoint p; this->GetMouse(&p, &btn, false); - + this->SetMouseEventMask(B_LOCK_WINDOW_FOCUS); - ev.type = MwLLHAIKU_EVENT_MOUSEDOWN; + ev.type = MwLLHAIKU_EVENT_MOUSEDOWN; ev.mouse.point.x = point.x; ev.mouse.point.y = point.y; - if((btn & B_PRIMARY_MOUSE_BUTTON) && !(this->buttons & B_PRIMARY_MOUSE_BUTTON)){ + if((btn & B_PRIMARY_MOUSE_BUTTON) && !(this->buttons & B_PRIMARY_MOUSE_BUTTON)) { ev.mouse.button = MwMOUSE_LEFT; - }else if((btn & B_SECONDARY_MOUSE_BUTTON) && !(this->buttons & B_SECONDARY_MOUSE_BUTTON)){ + } else if((btn & B_SECONDARY_MOUSE_BUTTON) && !(this->buttons & B_SECONDARY_MOUSE_BUTTON)) { ev.mouse.button = MwMOUSE_RIGHT; - }else if((btn & B_TERTIARY_MOUSE_BUTTON) && !(this->buttons & B_TERTIARY_MOUSE_BUTTON)){ + } else if((btn & B_TERTIARY_MOUSE_BUTTON) && !(this->buttons & B_TERTIARY_MOUSE_BUTTON)) { ev.mouse.button = MwMOUSE_MIDDLE; } this->buttons = btn; @@ -236,22 +241,22 @@ void MwView::MouseDown(BPoint point){ this->locker->Unlock(); } -void MwView::MouseUp(BPoint point){ +void MwView::MouseUp(BPoint point) { MwLLHaikuEvent ev; - uint32 btn; - BPoint p; + uint32 btn; + BPoint p; this->GetMouse(&p, &btn, false); - - ev.type = MwLLHAIKU_EVENT_MOUSEUP; + + ev.type = MwLLHAIKU_EVENT_MOUSEUP; ev.mouse.point.x = point.x; ev.mouse.point.y = point.y; - if(!(btn & B_PRIMARY_MOUSE_BUTTON) && (this->buttons & B_PRIMARY_MOUSE_BUTTON)){ + if(!(btn & B_PRIMARY_MOUSE_BUTTON) && (this->buttons & B_PRIMARY_MOUSE_BUTTON)) { ev.mouse.button = MwMOUSE_LEFT; - }else if(!(btn & B_SECONDARY_MOUSE_BUTTON) && (this->buttons & B_SECONDARY_MOUSE_BUTTON)){ + } else if(!(btn & B_SECONDARY_MOUSE_BUTTON) && (this->buttons & B_SECONDARY_MOUSE_BUTTON)) { ev.mouse.button = MwMOUSE_RIGHT; - }else if(!(btn & B_TERTIARY_MOUSE_BUTTON) && (this->buttons & B_TERTIARY_MOUSE_BUTTON)){ + } else if(!(btn & B_TERTIARY_MOUSE_BUTTON) && (this->buttons & B_TERTIARY_MOUSE_BUTTON)) { ev.mouse.button = MwMOUSE_MIDDLE; } this->buttons = btn; @@ -261,20 +266,20 @@ void MwView::MouseUp(BPoint point){ this->locker->Unlock(); } -void MwView::MouseMoved(BPoint point, uint32 transit, const BMessage* message){ +void MwView::MouseMoved(BPoint point, uint32 transit, const BMessage* message) { MwLLHaikuEvent ev; - - ev.type = MwLLHAIKU_EVENT_MOUSEMOVED; + + ev.type = MwLLHAIKU_EVENT_MOUSEMOVED; ev.mouse.point.x = point.x; ev.mouse.point.y = point.y; - ev.mouse.button = 0; + ev.mouse.button = 0; this->locker->Lock(); arrput(this->handle->haiku.events, ev); this->locker->Unlock(); } -void MwView::SetColor(MwLLColor color){ +void MwView::SetColor(MwLLColor color) { BMessage msg(BVIEW_MW_SET_COLOR); msg.AddInt32("view-color", color->common.red); @@ -290,7 +295,7 @@ MwWindow::MwWindow(BRect frame, window_type type, uint32 flags) : BWindow(frame, void MwWindow::MessageReceived(BMessage* message) { void* ptr; - if(message->FindPointer("window-view", &ptr) == B_OK){ + if(message->FindPointer("window-view", &ptr) == B_OK) { MwView* v = (MwView*)ptr; v->MessageReceived(message); @@ -299,7 +304,8 @@ void MwWindow::MessageReceived(BMessage* message) { } switch(message->what) { - case BWIN_MW_SET_TITLE: { + case BWIN_MW_SET_TITLE: + { const char* title; if(message->FindString("window-title", &title) != B_OK) break; @@ -307,7 +313,8 @@ void MwWindow::MessageReceived(BMessage* message) { this->SetTitle(title); break; } - default: { + default: + { BWindow::MessageReceived(message); break; } @@ -331,7 +338,7 @@ static int32 app_thread(void* data) { } MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { - MwLL r = (MwLL)malloc(sizeof(*r)); + MwLL r = (MwLL)malloc(sizeof(*r)); BRect rc = BRect(BPoint(x, y), BSize(width, height)); MwLLCreateCommon(r); @@ -351,7 +358,7 @@ MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { p->rc = rc; p->handle = r; - r->haiku.app = NULL; + r->haiku.app = NULL; r->haiku.view = NULL; r->haiku.app_thread = spawn_thread(app_thread, NULL, B_NORMAL_PRIORITY, p); @@ -370,9 +377,9 @@ MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { parent->haiku.view->AddChild(r->haiku.view); } - r->haiku.x = x; - r->haiku.y = y; - r->haiku.width = width; + r->haiku.x = x; + r->haiku.y = y; + r->haiku.width = width; r->haiku.height = height; return r; @@ -396,7 +403,7 @@ void MwLLDestroyImpl(MwLL handle) { } void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { - int i; + int i; BMessage msg(BVIEW_MW_POLYGON); for(i = 0; i < points_count; i++) { @@ -412,10 +419,10 @@ void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor c } void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { - int i; + int i; BMessage msg(BVIEW_MW_LINE); - for(i = 0; i < 2; i++){ + for(i = 0; i < 2; i++) { BPoint p(points[i].x, points[i].y); fix_point(&p, handle->haiku.view); @@ -427,9 +434,11 @@ void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { handle->haiku.view->PostMessage(&msg); } -void MwLLBeginDrawImpl(MwLL handle) {} +void MwLLBeginDrawImpl(MwLL handle) { +} -void MwLLEndDrawImpl(MwLL handle) {} +void MwLLEndDrawImpl(MwLL handle) { +} MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { MwLLColor c = (MwLLColor)malloc(sizeof(*c)); @@ -451,11 +460,11 @@ void MwLLFreeColorImpl(MwLLColor color) { void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h) { BRect rc; - int m = 0; + int m = 0; - if(handle->haiku.app == NULL){ + if(handle->haiku.app == NULL) { rc = BRect(BPoint(handle->haiku.x, handle->haiku.y), BSize(handle->haiku.width, handle->haiku.height)); - }else{ + } else { rc = handle->haiku.app->window->Frame(); } @@ -480,7 +489,7 @@ void MwLLSetXYImpl(MwLL handle, int x, int y) { void MwLLSetWHImpl(MwLL handle, int w, int h) { BMessage msg(BVIEW_MW_RESIZE); - handle->haiku.width = w; + handle->haiku.width = w; handle->haiku.height = h; msg.AddInt32("view-width", w); @@ -503,7 +512,7 @@ void MwLLSetTitleImpl(MwLL handle, const char* title) { int MwLLPendingImpl(MwLL handle) { handle->haiku.view->locker->Lock(); - if(arrlen(handle->haiku.events) > 0){ + if(arrlen(handle->haiku.events) > 0) { handle->haiku.view->locker->Unlock(); return 1; } @@ -514,22 +523,22 @@ int MwLLPendingImpl(MwLL handle) { void MwLLNextEventImpl(MwLL handle) { handle->haiku.view->locker->Lock(); - while(arrlen(handle->haiku.events) > 0){ + while(arrlen(handle->haiku.events) > 0) { MwLLHaikuEvent* ev = &handle->haiku.events[0]; - MwMouse m; + MwMouse m; - if(ev->type == MwLLHAIKU_EVENT_MOUSEDOWN || ev->type == MwLLHAIKU_EVENT_MOUSEUP){ - m.point = ev->mouse.point; + if(ev->type == MwLLHAIKU_EVENT_MOUSEDOWN || ev->type == MwLLHAIKU_EVENT_MOUSEUP) { + m.point = ev->mouse.point; m.button = ev->mouse.button; } - if(ev->type == MwLLHAIKU_EVENT_DRAW){ + if(ev->type == MwLLHAIKU_EVENT_DRAW) { MwLLDispatch(handle, draw, NULL); - }else if(ev->type == MwLLHAIKU_EVENT_MOUSEDOWN){ + } else if(ev->type == MwLLHAIKU_EVENT_MOUSEDOWN) { MwLLDispatch(handle, down, &m); - }else if(ev->type == MwLLHAIKU_EVENT_MOUSEUP){ + } else if(ev->type == MwLLHAIKU_EVENT_MOUSEUP) { MwLLDispatch(handle, up, &m); - }else if(ev->type == MwLLHAIKU_EVENT_MOUSEMOVED){ + } else if(ev->type == MwLLHAIKU_EVENT_MOUSEMOVED) { MwLLDispatch(handle, move, &ev->mouse.point); } @@ -556,9 +565,9 @@ MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int void MwLLPixmapUpdateImpl(MwLLPixmap pixmap) { uint32* px = (uint32*)malloc(4 * pixmap->common.width * pixmap->common.height); - int i; + int i; - for(i = 0; i < pixmap->common.width * pixmap->common.height; i++){ + for(i = 0; i < pixmap->common.width * pixmap->common.height; i++) { unsigned char* ipx = &pixmap->common.raw[4 * i]; px[i] = (ipx[3] << 24) | (ipx[0] << 16) | (ipx[1] << 8) | (ipx[2] << 0); @@ -580,8 +589,8 @@ void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { } void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { - BPoint p; - BRect rc; + BPoint p; + BRect rc; BMessage msg(BVIEW_MW_BITMAP); p = BPoint(rect->x, rect->y); @@ -605,9 +614,9 @@ void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) {} void MwLLDetachImpl(MwLL handle, MwPoint* point) {} void MwLLShowImpl(MwLL handle, int show) { - if(show){ + if(show) { handle->haiku.view->PostMessage(BVIEW_MW_SHOW); - }else{ + } else { handle->haiku.view->PostMessage(BVIEW_MW_HIDE); } } @@ -637,8 +646,8 @@ void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) {} void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { BScreen* screen = new BScreen(); - if(screen->IsValid()){ - rect->width = screen->Frame().Width(); + if(screen->IsValid()) { + rect->width = screen->Frame().Width(); rect->height = screen->Frame().Height(); } diff --git a/src/dialog/messagebox.c b/src/dialog/messagebox.c index 4bb5d3421..f7084ab2e 100644 --- a/src/dialog/messagebox.c +++ b/src/dialog/messagebox.c @@ -75,27 +75,33 @@ MwWidget MwMessageBox(MwWidget handle, const char* text, const char* title, unsi icon = MwCreateWidget(MwImageClass, "image", window, 8, (h - 48) / 2, 48, 48); switch(flag & MwMB_ICONMASK) { - case MwMB_ICONWARNING: { + case MwMB_ICONWARNING: + { data = MwIconWarning; break; } - case MwMB_ICONINFO: { + case MwMB_ICONINFO: + { data = MwIconInfo; break; } - case MwMB_ICONNOTE: { + case MwMB_ICONNOTE: + { data = MwIconNote; break; } - case MwMB_ICONNEWS: { + case MwMB_ICONNEWS: + { data = MwIconNews; break; } - case MwMB_ICONERROR: { + case MwMB_ICONERROR: + { data = MwIconError; break; } - case MwMB_ICONCLOCK: { + case MwMB_ICONCLOCK: + { data = MwIconClock; break; } From 76f03c201981d541a9409ef201935ebfbb9b89d9 Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 29 Apr 2026 05:20:06 +0900 Subject: [PATCH 623/836] stuff --- include/Mw/LowLevel/Haiku.h | 2 +- src/backend/haiku.cc | 75 +++++++++++++++++-------------------- src/text/text.c | 2 +- src/widget/menu.c | 20 +++++----- 4 files changed, 46 insertions(+), 53 deletions(-) diff --git a/include/Mw/LowLevel/Haiku.h b/include/Mw/LowLevel/Haiku.h index 8e6026a34..2849e5f04 100644 --- a/include/Mw/LowLevel/Haiku.h +++ b/include/Mw/LowLevel/Haiku.h @@ -23,7 +23,7 @@ class MwApplication : public BApplication { public: MwWindow* window; - MwApplication(BRect rc, MwLL handle); + MwApplication(MwRect rc, MwLL handle); ~MwApplication(); void MessageReceived(BMessage* message); diff --git a/src/backend/haiku.cc b/src/backend/haiku.cc index c431374c6..e04915ebe 100644 --- a/src/backend/haiku.cc +++ b/src/backend/haiku.cc @@ -2,24 +2,26 @@ #include "../../external/stb_ds.h" -static void fix_point(BPoint* p, MwView* v) { - p->x = p->x * (v->handle->haiku.width + 1) / v->handle->haiku.width; - p->y = p->y * (v->handle->haiku.height + 1) / v->handle->haiku.height; -} +MwApplication::MwApplication(MwRect rc, MwLL handle) : BApplication("application/milsko-generic") { + BScreen* scr = new BScreen(); + float x = (scr->Frame().Width() - rc.width) / 2; + float y = (scr->Frame().Height() - rc.height) / 2; + BRect rc2; + int dx = rc.x == MwDEFAULT; + int dy = rc.y == MwDEFAULT; -MwApplication::MwApplication(BRect rc, MwLL handle) : BApplication("application/milsko-generic") { - BScreen* scr = new BScreen(); - float left = rc.left; - float top = rc.top; + rc.x += dx ? -rc.x : 0; + rc.y += dy ? -rc.y : 0; - if(rc.left == MwDEFAULT) left = (scr->Frame().Width() - rc.Width()) / 2; - if(rc.top == MwDEFAULT) top = (scr->Frame().Height() - rc.Height()) / 2; - rc = BRect(BPoint(left, top), BSize(rc.Width(), rc.Height())); + if(dx) rc.x += x; + if(dy) rc.y += y; - this->window = new MwWindow(rc, B_TITLED_WINDOW, 0); + rc2 = BRect(rc.x, rc.y, rc.x + rc.width - 1, rc.y + rc.height - 1); + + this->window = new MwWindow(rc2, B_TITLED_WINDOW, 0); this->window->Show(); - handle->haiku.view = new MwView(handle, this->window->Bounds(), B_FOLLOW_ALL_SIDES, B_WILL_DRAW); + handle->haiku.view = new MwView(handle, this->window->Bounds(), B_FOLLOW_ALL_SIDES, B_WILL_DRAW | B_FULL_UPDATE_ON_RESIZE); this->window->AddChild(handle->haiku.view); @@ -83,9 +85,10 @@ void MwView::MessageReceived(BMessage* message) { if(message->FindInt32("view-height", &height) != B_OK) break; if(this->handle->haiku.app == NULL) { - this->ResizeTo(width, height); + this->ResizeTo(width - 1, height - 1); } else { - this->Window()->ResizeTo(width, height); + this->Window()->ResizeTo(width - 1, height - 1); + this->ResizeTo(width - 1, height - 1); } break; } @@ -322,8 +325,8 @@ void MwWindow::MessageReceived(BMessage* message) { } struct app_param { - BRect rc; - MwLL handle; + MwRect rc; + MwLL handle; }; static int32 app_thread(void* data) { @@ -338,8 +341,14 @@ static int32 app_thread(void* data) { } MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { - MwLL r = (MwLL)malloc(sizeof(*r)); - BRect rc = BRect(BPoint(x, y), BSize(width, height)); + MwLL r = (MwLL)malloc(sizeof(*r)); + MwRect mrc; + BRect rc = BRect(x, y, x + width - 1, x + height - 1); + + mrc.x = x; + mrc.y = y; + mrc.width = width; + mrc.height = height; MwLLCreateCommon(r); @@ -355,7 +364,7 @@ MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->haiku.app = NULL; - p->rc = rc; + p->rc = mrc; p->handle = r; r->haiku.app = NULL; @@ -409,8 +418,6 @@ void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor c for(i = 0; i < points_count; i++) { BPoint p(points[i].x, points[i].y); - fix_point(&p, handle->haiku.view); - msg.AddPoint("view-point", p); } @@ -425,8 +432,6 @@ void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { for(i = 0; i < 2; i++) { BPoint p(points[i].x, points[i].y); - fix_point(&p, handle->haiku.view); - msg.AddPoint("view-point", p); } @@ -459,19 +464,10 @@ void MwLLFreeColorImpl(MwLLColor color) { } void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h) { - BRect rc; - int m = 0; - - if(handle->haiku.app == NULL) { - rc = BRect(BPoint(handle->haiku.x, handle->haiku.y), BSize(handle->haiku.width, handle->haiku.height)); - } else { - rc = handle->haiku.app->window->Frame(); - } - - *x = rc.left; - *y = rc.top; - *w = rc.Width(); - *h = rc.Height(); + *x = handle->haiku.x; + *y = handle->haiku.y; + *w = handle->haiku.width; + *h = handle->haiku.height; } void MwLLSetXYImpl(MwLL handle, int x, int y) { @@ -589,13 +585,10 @@ void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { } void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { - BPoint p; BRect rc; BMessage msg(BVIEW_MW_BITMAP); - p = BPoint(rect->x, rect->y); - fix_point(&p, handle->haiku.view); - rc = BRect(p, BSize(rect->width, rect->height)); + rc = BRect(rect->x, rect->y, rect->x + rect->width - 1, rect->y + rect->height - 1); msg.AddRect("view-rect", rc); msg.AddPointer("view-bitmap", pixmap->haiku.bitmap); diff --git a/src/text/text.c b/src/text/text.c index 9ad643571..cf7bf64a7 100644 --- a/src/text/text.c +++ b/src/text/text.c @@ -71,7 +71,7 @@ void MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, int cp; #ifdef TTF - if(ttf <= MwFLBuildFont(0xff)) ttf = assume_ttf(handle, ttf); + if(!MwGetInteger(handle, MwNbitmapFont) && ttf <= MwFLBuildFont(0xff)) ttf = assume_ttf(handle, ttf); #endif p.y -= MwTextHeight(handle, ttf, text) / 2 - (MwTextHeight(handle, ttf, text) / count_nl(text)) / 2; diff --git a/src/widget/menu.c b/src/widget/menu.c index edadf4091..e242cdafd 100644 --- a/src/widget/menu.c +++ b/src/widget/menu.c @@ -59,7 +59,7 @@ static void destroy(MwWidget handle) { int in_area; #define MENU_LOOP_INIT \ - p.x = 5; \ + p.x = 0; \ p.y = (MwGetInteger(handle, MwNheight) - MwDefaultBorderWidth(handle)) / 2 + MwDefaultBorderWidth(handle); \ \ r.x = 0; \ @@ -67,28 +67,28 @@ static void destroy(MwWidget handle) { r.width = MwGetInteger(handle, MwNwidth); \ r.height = MwGetInteger(handle, MwNheight); \ \ - rx = r.width - 5; + rx = r.width; #define BEGIN_MENU_LOOP \ for(i = 0; i < arrlen(m->sub); i++) { \ int incr = m->sub[i]->name[0] == '?' ? 1 : 0; \ - int tw = MwTextWidth(handle, NULL, m->sub[i]->name + incr); \ - int th = MwTextHeight(handle, NULL, m->sub[i]->name + incr); \ + int tw = MwTextWidth(handle, MwFLBuildFont(MwFLFlagBold), m->sub[i]->name + incr); \ + int th = MwTextHeight(handle, MwFLBuildFont(MwFLFlagBold), m->sub[i]->name + incr); \ \ if(incr) { \ - p.x = rx -= tw; \ - rx -= 10; \ + p.x = rx -= 10 + tw; \ } \ \ - r.x = p.x - 5; \ + r.x = p.x; \ r.y = p.y + ((MwGetInteger(handle, MwNheight) - p.y * 2) - (th + 10)) / 2; \ r.width = tw + 10; \ r.height = th + 10; \ \ - in_area = (r.x <= handle->mouse_point.x && r.y <= handle->mouse_point.y && handle->mouse_point.x <= (int)(r.x + r.width) && handle->mouse_point.y <= (int)(r.y + r.height)) ? 1 : 0; + in_area = (r.x <= handle->mouse_point.x && r.y <= handle->mouse_point.y && handle->mouse_point.x <= (int)(r.x + r.width) && handle->mouse_point.y <= (int)(r.y + r.height)) ? 1 : 0; \ + p.x += 5 + tw / 2; #define END_MENU_LOOP \ - p.x += tw + 20; \ + p.x += tw / 2 + 5; \ } #define NEW_SUBMENU \ @@ -115,7 +115,7 @@ static void draw(MwWidget handle) { MwDrawWidgetBack(handle, &r, base, 0, MwFALSE); } - MwDrawText(handle, MwFLBuildFont((m->sub[i]->wsub != NULL || (in_area && handle->pressed)) ? MwFLFlagBold : 0), &p, m->sub[i]->name + incr, MwALIGNMENT_BEGINNING, text); + MwDrawText(handle, MwFLBuildFont((m->sub[i]->wsub != NULL || (in_area && handle->pressed)) ? MwFLFlagBold : 0), &p, m->sub[i]->name + incr, MwALIGNMENT_CENTER, text); END_MENU_LOOP; MwLLFreeColor(text); From 38321022b9a1a1b097160a235d1d72017eb8fd95 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 29 Apr 2026 05:21:59 +0900 Subject: [PATCH 624/836] fix menu --- src/widget/menu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widget/menu.c b/src/widget/menu.c index e242cdafd..25802b1cc 100644 --- a/src/widget/menu.c +++ b/src/widget/menu.c @@ -94,7 +94,7 @@ static void destroy(MwWidget handle) { #define NEW_SUBMENU \ MwPoint p2; \ \ - p2.x = p.x - 5; \ + p2.x = p.x - 5 - tw / 2; \ p2.y = p.y + th / 2 + 5; \ \ m->sub[i]->wsub = MwCreateWidget(MwSubMenuClass, "submenu", handle, 0, MwGetInteger(handle, MwNheight), 0, 0); \ From 8d6c2c0d52072685c3a5d1860bb77bc10a188ffa Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 29 Apr 2026 05:39:47 +0900 Subject: [PATCH 625/836] implement close --- include/Mw/LowLevel/Haiku.h | 3 +++ src/backend/haiku.cc | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/include/Mw/LowLevel/Haiku.h b/include/Mw/LowLevel/Haiku.h index 2849e5f04..751f45ec8 100644 --- a/include/Mw/LowLevel/Haiku.h +++ b/include/Mw/LowLevel/Haiku.h @@ -58,6 +58,8 @@ class MwWindow : public BWindow { MwWindow(BRect rc, window_type type, uint32 flags); void MessageReceived(BMessage* message); + + bool QuitRequested(); }; typedef BBitmap MwBBitmap; @@ -93,6 +95,7 @@ enum BWIN_MW_WHAT { enum MwLLHAIKU_EVENT { MwLLHAIKU_EVENT_DRAW = 0, + MwLLHAIKU_EVENT_CLOSE, MwLLHAIKU_EVENT_MOUSEDOWN, MwLLHAIKU_EVENT_MOUSEUP, MwLLHAIKU_EVENT_MOUSEMOVED diff --git a/src/backend/haiku.cc b/src/backend/haiku.cc index e04915ebe..d3dd02ade 100644 --- a/src/backend/haiku.cc +++ b/src/backend/haiku.cc @@ -324,6 +324,19 @@ void MwWindow::MessageReceived(BMessage* message) { } } +bool MwWindow::QuitRequested() { + MwLLHaikuEvent ev; + MwView* v = (MwView*)this->ChildAt(0); + + ev.type = MwLLHAIKU_EVENT_CLOSE; + + v->locker->Lock(); + arrput(v->handle->haiku.events, ev); + v->locker->Unlock(); + + return false; +} + struct app_param { MwRect rc; MwLL handle; @@ -530,6 +543,8 @@ void MwLLNextEventImpl(MwLL handle) { if(ev->type == MwLLHAIKU_EVENT_DRAW) { MwLLDispatch(handle, draw, NULL); + } else if(ev->type == MwLLHAIKU_EVENT_CLOSE) { + MwLLDispatch(handle, close, NULL); } else if(ev->type == MwLLHAIKU_EVENT_MOUSEDOWN) { MwLLDispatch(handle, down, &m); } else if(ev->type == MwLLHAIKU_EVENT_MOUSEUP) { From b908921d680607a2604ed7249f6e47925e203c46 Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 29 Apr 2026 05:53:22 +0900 Subject: [PATCH 626/836] resize/move --- include/Mw/LowLevel/Haiku.h | 21 +++++++++++++++++++-- src/backend/haiku.cc | 37 +++++++++++++++++++++++++++++++++++-- 2 files changed, 54 insertions(+), 4 deletions(-) diff --git a/include/Mw/LowLevel/Haiku.h b/include/Mw/LowLevel/Haiku.h index 751f45ec8..aca5b753b 100644 --- a/include/Mw/LowLevel/Haiku.h +++ b/include/Mw/LowLevel/Haiku.h @@ -46,6 +46,7 @@ class MwView : public BView { void AttachedToWindow(); void Draw(BRect updateRect); + void FrameResized(float width, float height); void MouseDown(BPoint point); void MouseUp(BPoint point); void MouseMoved(BPoint point, uint32 transit, const BMessage* message); @@ -59,6 +60,7 @@ class MwWindow : public BWindow { void MessageReceived(BMessage* message); + void FrameMoved(BPoint newLocation); bool QuitRequested(); }; @@ -96,6 +98,8 @@ enum BWIN_MW_WHAT { enum MwLLHAIKU_EVENT { MwLLHAIKU_EVENT_DRAW = 0, MwLLHAIKU_EVENT_CLOSE, + MwLLHAIKU_EVENT_FRAMERESIZED, + MwLLHAIKU_EVENT_FRAMEMOVED, MwLLHAIKU_EVENT_MOUSEDOWN, MwLLHAIKU_EVENT_MOUSEUP, MwLLHAIKU_EVENT_MOUSEMOVED @@ -107,9 +111,22 @@ struct _MwLLHaikuEventMouse { int button; }; +struct _MwLLHaikuEventFrameResized { + int type; + float width; + float height; +}; + +struct _MwLLHaikuEventFrameMoved { + int type; + MwPoint point; +}; + union _MwLLHaikuEvent { - int type; - struct _MwLLHaikuEventMouse mouse; + int type; + struct _MwLLHaikuEventMouse mouse; + struct _MwLLHaikuEventFrameResized frame_resized; + struct _MwLLHaikuEventFrameMoved frame_moved; }; struct _MwLLHaiku { diff --git a/src/backend/haiku.cc b/src/backend/haiku.cc index d3dd02ade..d881421b3 100644 --- a/src/backend/haiku.cc +++ b/src/backend/haiku.cc @@ -21,7 +21,7 @@ MwApplication::MwApplication(MwRect rc, MwLL handle) : BApplication("application this->window = new MwWindow(rc2, B_TITLED_WINDOW, 0); this->window->Show(); - handle->haiku.view = new MwView(handle, this->window->Bounds(), B_FOLLOW_ALL_SIDES, B_WILL_DRAW | B_FULL_UPDATE_ON_RESIZE); + handle->haiku.view = new MwView(handle, this->window->Bounds(), B_FOLLOW_ALL_SIDES, B_WILL_DRAW); this->window->AddChild(handle->haiku.view); @@ -47,7 +47,7 @@ void MwApplication::MessageReceived(BMessage* message) { } } -MwView::MwView(MwLL handle, BRect frame, uint32 resizingMode, uint32 flags) : BView(frame, NULL, resizingMode, flags) { +MwView::MwView(MwLL handle, BRect frame, uint32 resizingMode, uint32 flags) : BView(frame, NULL, resizingMode, flags | B_FRAME_EVENTS) { this->handle = handle; this->locker = new BLocker(); @@ -217,6 +217,18 @@ void MwView::Draw(BRect updateRect) { this->locker->Unlock(); } +void MwView::FrameResized(float width, float height) { + MwLLHaikuEvent ev; + + ev.type = MwLLHAIKU_EVENT_FRAMERESIZED; + ev.frame_resized.width = width; + ev.frame_resized.height = height; + + this->locker->Lock(); + arrput(this->handle->haiku.events, ev); + this->locker->Unlock(); +} + void MwView::MouseDown(BPoint point) { MwLLHaikuEvent ev; uint32 btn; @@ -324,6 +336,19 @@ void MwWindow::MessageReceived(BMessage* message) { } } +void MwWindow::FrameMoved(BPoint newLocation) { + MwLLHaikuEvent ev; + MwView* v = (MwView*)this->ChildAt(0); + + ev.type = MwLLHAIKU_EVENT_FRAMEMOVED; + ev.frame_moved.point.x = newLocation.x; + ev.frame_moved.point.y = newLocation.y; + + v->locker->Lock(); + arrput(v->handle->haiku.events, ev); + v->locker->Unlock(); +} + bool MwWindow::QuitRequested() { MwLLHaikuEvent ev; MwView* v = (MwView*)this->ChildAt(0); @@ -545,6 +570,14 @@ void MwLLNextEventImpl(MwLL handle) { MwLLDispatch(handle, draw, NULL); } else if(ev->type == MwLLHAIKU_EVENT_CLOSE) { MwLLDispatch(handle, close, NULL); + } else if(ev->type == MwLLHAIKU_EVENT_FRAMERESIZED) { + handle->haiku.width = ev->frame_resized.width + 1; + handle->haiku.height = ev->frame_resized.height + 1; + + MwLLDispatch(handle, resize, NULL); + } else if(ev->type == MwLLHAIKU_EVENT_FRAMEMOVED) { + handle->haiku.x = ev->frame_moved.point.x + 1; + handle->haiku.y = ev->frame_moved.point.y + 1; } else if(ev->type == MwLLHAIKU_EVENT_MOUSEDOWN) { MwLLDispatch(handle, down, &m); } else if(ev->type == MwLLHAIKU_EVENT_MOUSEUP) { From 94c4bcd2ccf99441694ee88a850b33b0cba53894 Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 29 Apr 2026 11:47:45 +0000 Subject: [PATCH 627/836] better treeview --- include/Mw/LowLevel/Haiku.h | 1 + src/backend/haiku.cc | 15 +++++++++++-- src/widget/listbox.c | 2 +- src/widget/treeview.c | 43 ++++++++++++++++++++----------------- 4 files changed, 38 insertions(+), 23 deletions(-) diff --git a/include/Mw/LowLevel/Haiku.h b/include/Mw/LowLevel/Haiku.h index aca5b753b..417edc394 100644 --- a/include/Mw/LowLevel/Haiku.h +++ b/include/Mw/LowLevel/Haiku.h @@ -141,6 +141,7 @@ struct _MwLLHaiku { MwApplication* app; MwView* view; thread_id app_thread; + int force_render; MwLLHaikuEvent* events; }; diff --git a/src/backend/haiku.cc b/src/backend/haiku.cc index d881421b3..8d509baf3 100644 --- a/src/backend/haiku.cc +++ b/src/backend/haiku.cc @@ -108,14 +108,14 @@ void MwView::MessageReceived(BMessage* message) { } case BVIEW_MW_SHOW: { - if(this->Window() == NULL) { + if(this->Parent() == NULL) { this->handle->haiku.parent->haiku.view->AddChild(this); } break; } case BVIEW_MW_HIDE: { - if(this->Window() != NULL) { + if(this->Parent() != NULL) { this->RemoveSelf(); } break; @@ -393,6 +393,8 @@ MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->common.copy_buffer = 1; r->common.type = MwLLBackendHaiku; + r->haiku.force_render = 0; + r->haiku.parent = parent; r->haiku.events = NULL; @@ -556,6 +558,8 @@ int MwLLPendingImpl(MwLL handle) { } void MwLLNextEventImpl(MwLL handle) { + int rendered = 0; + handle->haiku.view->locker->Lock(); while(arrlen(handle->haiku.events) > 0) { MwLLHaikuEvent* ev = &handle->haiku.events[0]; @@ -568,6 +572,8 @@ void MwLLNextEventImpl(MwLL handle) { if(ev->type == MwLLHAIKU_EVENT_DRAW) { MwLLDispatch(handle, draw, NULL); + + rendered = 1; } else if(ev->type == MwLLHAIKU_EVENT_CLOSE) { MwLLDispatch(handle, close, NULL); } else if(ev->type == MwLLHAIKU_EVENT_FRAMERESIZED) { @@ -589,6 +595,8 @@ void MwLLNextEventImpl(MwLL handle) { arrdel(handle->haiku.events, 0); } handle->haiku.view->locker->Unlock(); + + if(rendered) handle->haiku.force_render = 0; } MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) { @@ -647,6 +655,9 @@ void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) {} void MwLLForceRenderImpl(MwLL handle) { + if(handle->haiku.force_render) return; + + handle->haiku.force_render = 1; handle->haiku.view->PostMessage(BVIEW_MW_RENDER); } diff --git a/src/widget/listbox.c b/src/widget/listbox.c index 3eba969de..9ef2cb57f 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -299,7 +299,7 @@ static void resize(MwWidget handle, int no_resize) { MwAddUserHandler(lb->frame, MwNmouseDownHandler, frame_mouse_down, NULL); MwAddUserHandler(lb->frame, MwNmouseUpHandler, frame_mouse_up, NULL); MwAddUserHandler(lb->frame, MwNmouseMoveHandler, frame_mouse_move, NULL); - } else if(!no_resize) { + } else if(!no_resize || MwGetInteger(lb->frame, MwNwidth) != (w - m)) { MwVaApply(lb->frame, MwNx, 0, MwNy, y, diff --git a/src/widget/treeview.c b/src/widget/treeview.c index 63b529359..f7441c7c3 100644 --- a/src/widget/treeview.c +++ b/src/widget/treeview.c @@ -6,6 +6,8 @@ #define LineSpace 16 #define LinePadding 4 +#define Font MwFLBuildFont(MwFLFlagMonospace) + static void MWAPI vscroll_changed(MwWidget handle, void* user, void* call) { MwTreeView tv = handle->parent->internal; @@ -30,11 +32,11 @@ static void recursion(MwWidget handle, MwTreeViewEntry* tree, MwTreeViewEntry** if((*skip) > 0) { (*skip)--; skipped = 1; - if(p->y == MwDefaultBorderWidth(handle)) p->y -= MwTextHeight(handle, NULL, "M"); - } else if((*shared) < (MwGetInteger(handle, MwNheight) / MwTextHeight(handle, NULL, "M") + 2)) { + if(p->y == MwDefaultBorderWidth(handle)) p->y -= MwTextHeight(handle, Font, "M"); + } else if((*shared) < (MwGetInteger(handle, MwNheight) / MwTextHeight(handle, Font, "M") + 2)) { MwRect r; p->x += shift; - p->y += MwTextHeight(handle, NULL, "M") / 2 + LinePadding; + p->y += MwTextHeight(handle, Font, "M") / 2 + LinePadding; if(tree->tree != NULL || shift > LineSpace) { l[0] = *p; @@ -47,9 +49,9 @@ static void recursion(MwWidget handle, MwTreeViewEntry* tree, MwTreeViewEntry** l[0] = *p; l[0].x -= LineSpace / 2; l[1] = l[0]; - l[0].y -= MwTextHeight(handle, NULL, "M") / 2 + LinePadding; + l[0].y -= MwTextHeight(handle, Font, "M") / 2 + LinePadding; if(next) { - l[1].y += MwTextHeight(handle, NULL, "M") / 2; + l[1].y += MwTextHeight(handle, Font, "M") / 2; } if(draw) MwLLLine(handle->lowlevel, &l[0], text2); } @@ -57,7 +59,7 @@ static void recursion(MwWidget handle, MwTreeViewEntry* tree, MwTreeViewEntry** r.width = OpenerSize; r.height = OpenerSize; r.x = p->x - LineSpace + (LineSpace - r.width) / 2; - r.y = p->y - MwTextHeight(handle, NULL, "M") / 2 + (MwTextHeight(handle, NULL, "M") - r.height) / 2; + r.y = p->y - MwTextHeight(handle, Font, "M") / 2 + (MwTextHeight(handle, Font, "M") - r.height) / 2; if(draw) { MwLLColor col = tree->opened ? MwLightenColor(handle, base, -8, -8, -8) : base; MwRect r2 = r; @@ -101,11 +103,11 @@ static void recursion(MwWidget handle, MwTreeViewEntry* tree, MwTreeViewEntry** } } if(tree->pixmap != NULL) { - r.height = MwTextHeight(handle, NULL, "M"); + r.height = MwTextHeight(handle, Font, "M"); r.width = r.height * tree->pixmap->common.width / tree->pixmap->common.height; r.x = p->x; - r.y = p->y - MwTextHeight(handle, NULL, "M") / 2; + r.y = p->y - MwTextHeight(handle, Font, "M") / 2; if(draw) MwLLDrawPixmap(handle->lowlevel, &r, tree->pixmap); } @@ -113,16 +115,16 @@ static void recursion(MwWidget handle, MwTreeViewEntry* tree, MwTreeViewEntry** if(draw) { if(tree->selected) { r.x = p->x; - r.y = p->y - MwTextHeight(handle, NULL, "M") / 2; - r.width = MwGetInteger(handle, MwNwidth) - MwGetInteger(handle, MwNleftPadding) - shift; - r.height = MwTextHeight(handle, NULL, "M"); + r.y = p->y - MwTextHeight(handle, Font, "M") / 2; + r.width = MwGetInteger(handle, MwNwidth) - MwGetInteger(handle->parent, MwNleftPadding) - shift; + r.height = MwTextHeight(handle, Font, "M"); MwDrawRect(handle, &r, text2); } handle->bgcolor = tree->selected ? text2 : base2; - MwDrawText(handle, NULL, p, tree->label, MwALIGNMENT_BEGINNING, tree->selected ? base2 : text2); + MwDrawText(handle, Font, p, tree->label, MwALIGNMENT_BEGINNING, tree->selected ? base2 : text2); handle->bgcolor = NULL; } else { - if(p->x <= mouse->x && mouse->x <= (p->x + MwTextWidth(handle, NULL, tree->label)) && (p->y - MwTextHeight(handle, NULL, "M") / 2) <= mouse->y && mouse->y <= (p->y + MwTextHeight(handle, NULL, "M") / 2)) { + if(p->x <= mouse->x && mouse->x <= (p->x + MwTextWidth(handle, Font, tree->label)) && (p->y - MwTextHeight(handle, Font, "M") / 2) <= mouse->y && mouse->y <= (p->y + MwTextHeight(handle, Font, "M") / 2)) { unsigned long t; set_all(root, 0); @@ -136,7 +138,7 @@ static void recursion(MwWidget handle, MwTreeViewEntry* tree, MwTreeViewEntry** } p->x -= MwGetInteger(handle->parent, MwNleftPadding); - p->y += MwTextHeight(handle, NULL, "M") / 2; + p->y += MwTextHeight(handle, Font, "M") / 2; p->x -= shift; (*shared)++; @@ -145,7 +147,7 @@ static void recursion(MwWidget handle, MwTreeViewEntry* tree, MwTreeViewEntry** for(i = 0; i < arrlen(tree->tree); i++) { l[0] = *p; l[0].x += shift + LineSpace / 2; - l[0].y += MwTextHeight(handle, NULL, "M") - (MwTextHeight(handle, NULL, "M") - OpenerSize) / 2; + l[0].y += MwTextHeight(handle, Font, "M") - (MwTextHeight(handle, Font, "M") - OpenerSize) / 2; if(tree->tree[i]->tree != NULL) { l[0].y += OpenerSize / 2; } @@ -189,7 +191,7 @@ static void frame_draw(MwWidget handle) { r = r2; for(i = 0; i < arrlen(tv->tree); i++) { - if(shared > (r.height / MwTextHeight(handle, NULL, "M"))) break; + if(shared > (r.height / MwTextHeight(handle, Font, "M"))) break; recursion(handle, tv->tree[i], tv->tree, base, text, base2, text2, &p, 0, LineSpace, &skip, &shared, 1, NULL); } @@ -236,7 +238,7 @@ static void MWAPI frame_mouse_up(MwWidget handle, void* user, void* call) { p.x = MwDefaultBorderWidth(tv->frame); p.y = MwDefaultBorderWidth(tv->frame); for(i = 0; i < arrlen(tv->tree); i++) { - if(shared > (MwGetInteger(tv->frame, MwNheight) / MwTextHeight(tv->frame, NULL, "M"))) break; + if(shared > (MwGetInteger(tv->frame, MwNheight) / MwTextHeight(tv->frame, Font, "M"))) break; recursion(tv->frame, tv->tree[i], tv->tree, NULL, NULL, NULL, NULL, &p, 0, LineSpace, &skip, &shared, 0, &tv->pressed); } resize(handle->parent, 1); @@ -267,7 +269,7 @@ static void resize(MwWidget handle, int no_resize) { ih = recursive_length(tv->tree); if(ih == 0) ih = 1; - if(ih <= (h / (LinePadding + MwTextHeight(handle, NULL, "M")))) { + if(ih <= (h / (LinePadding + MwTextHeight(handle, Font, "M")))) { MwLLShow(tv->vscroll->lowlevel, 0); } else { MwLLShow(tv->vscroll->lowlevel, 1); @@ -282,7 +284,7 @@ static void resize(MwWidget handle, int no_resize) { tv->frame->draw_inject = frame_draw; MwAddUserHandler(tv->frame, MwNmouseDownHandler, frame_mouse_down, NULL); MwAddUserHandler(tv->frame, MwNmouseUpHandler, frame_mouse_up, NULL); - } else if(!no_resize) { + } else if(!no_resize || MwGetInteger(tv->frame, MwNwidth) != (w - m)) { MwVaApply(tv->frame, MwNx, 0, MwNy, 0, @@ -292,7 +294,7 @@ static void resize(MwWidget handle, int no_resize) { } MwVaApply(tv->vscroll, - MwNareaShown, h / (LinePadding + MwTextHeight(handle, NULL, "M")), + MwNareaShown, h / (LinePadding + MwTextHeight(handle, Font, "M")), MwNmaxValue, ih, NULL); } @@ -375,6 +377,7 @@ static void mwTreeViewDeleteImpl(MwWidget handle, void* item) { free_all(p->tree); p->tree = NULL; + resize(handle, 1); MwForceRender(tv->frame); } From 572c170cd6772e7ff633b6406b3eebbb57965bce Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 29 Apr 2026 12:27:53 +0000 Subject: [PATCH 628/836] fix --- src/backend/haiku.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/backend/haiku.cc b/src/backend/haiku.cc index 8d509baf3..ee2476360 100644 --- a/src/backend/haiku.cc +++ b/src/backend/haiku.cc @@ -185,10 +185,13 @@ void MwView::MessageReceived(BMessage* message) { void MwView::PostMessage(BMessage* message) { BMessage copy = *message; + MwLL top = this->handle; + + while(top->haiku.parent != NULL) top = top->haiku.parent; copy.AddPointer("window-view", this); - this->Window()->PostMessage(©); + top->haiku.app->window->PostMessage(©); } void MwView::PostMessage(uint32 command) { @@ -413,7 +416,7 @@ MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->haiku.app_thread = spawn_thread(app_thread, NULL, B_NORMAL_PRIORITY, p); resume_thread(r->haiku.app_thread); - while(r->haiku.app == NULL) MwTimeSleep(10); + while(r->haiku.app == NULL || r->haiku.app->window == NULL || r->haiku.view == NULL) MwTimeSleep(10); } else { MwLL top = r; while(top->haiku.parent != NULL) { From e618144fbc8ee9da7a7eefaf0e704d263befd840 Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 29 Apr 2026 13:45:32 +0900 Subject: [PATCH 629/836] add darwin dylib ifdefs for shared libs Co-Authored-By: Quote Walker --- src/lowlevel.c | 4 ++++ src/text/ft2.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/lowlevel.c b/src/lowlevel.c index 55822f190..a0bc4596d 100644 --- a/src/lowlevel.c +++ b/src/lowlevel.c @@ -68,7 +68,11 @@ void MwLLDestroyCommon(MwLL handle) { #ifdef USE_DBUS MwBool MwLLDBusFuncSetup(MwLLDBusFuncTable* tbl) { +#ifdef __APPLE__ + tbl->lib = MwDynamicOpen("libdbus-1.dylib"); +#else tbl->lib = MwDynamicOpen("libdbus-1.so"); +#endif if(!tbl->lib) { fprintf(stderr, "[WARNING] dbus library (libdbus-1.so) not found, will not be able to check for any XDG settings.\n"); return MwFALSE; diff --git a/src/text/ft2.c b/src/text/ft2.c index 0cff8666d..b83b06ce8 100644 --- a/src/text/ft2.c +++ b/src/text/ft2.c @@ -162,7 +162,11 @@ static void ft2_MwFontFree(void* handle) { int MWFL_FT2Setup(void) { /* Try and load FreeType2. If it fails, return 1, signifying we default to stbtt. */ void* ftlib; +#ifdef __APPLE__ + if(!(ftlib = MwDynamicOpen("libfreetype.dylib"))) { +#else if(!(ftlib = MwDynamicOpen("libfreetype.so"))) { +#endif return 1; } From 150581e716891bdf7c29fca48970ee42d8b303db Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 29 Apr 2026 15:14:38 +0900 Subject: [PATCH 630/836] wip --- examples/basic/periodic.c | 13 +++++++++++++ examples/vkdemos/vulkan.c | 4 ++-- include/Mw/LowLevel/Haiku.h | 2 +- src/backend/haiku.cc | 11 +++++++---- src/widget/listbox.c | 6 +++--- src/widget/scrollbar.c | 6 +++--- 6 files changed, 29 insertions(+), 13 deletions(-) diff --git a/examples/basic/periodic.c b/examples/basic/periodic.c index 7ecb1d9d0..2280e9381 100644 --- a/examples/basic/periodic.c +++ b/examples/basic/periodic.c @@ -126,6 +126,7 @@ static MwWidget frame(const char* name, int width, int height, MwClass cl, ...) MwVaApply(f, "VhandledWidget", w, + MwNratio, MwGetInteger(w, MwNratio), NULL); } @@ -305,6 +306,18 @@ int main() { f = frame("Separator", -PaddingContent, -PaddingContent, MwSeparatorClass, NULL); add(f); +#if 0 + f = frame("SubWindow", -PaddingContent, -PaddingContent, MwViewportClass, + MwNratio, 3, + NULL); + w = child(f); + MwViewportSetSize(w, 512, 512); + MwVaCreateWidget(MwSubWindowClass, "swnd", MwViewportGetViewport(w), 0, 0, 512, 512, + MwNtitle, "Sub window", + NULL); + add(f); +#endif + f = frame("TreeView", -PaddingContent, -PaddingContent, MwTreeViewClass, NULL); w = child(f); v = MwTreeViewAdd(w, NULL, NULL, "abc"); diff --git a/examples/vkdemos/vulkan.c b/examples/vkdemos/vulkan.c index 9dfa311eb..2d03030e9 100644 --- a/examples/vkdemos/vulkan.c +++ b/examples/vkdemos/vulkan.c @@ -264,8 +264,8 @@ void vulkan_setup(MwWidget handle) { swapchainCreateInfo.imageExtent = (VkExtent2D){.width = ow, .height = oh}, swapchainCreateInfo.imageArrayLayers = 1, swapchainCreateInfo.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | - VK_IMAGE_USAGE_TRANSFER_DST_BIT | - VK_IMAGE_USAGE_SAMPLED_BIT; + VK_IMAGE_USAGE_TRANSFER_DST_BIT | + VK_IMAGE_USAGE_SAMPLED_BIT; // th is how we specify no transformation. swapchainCreateInfo.preTransform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; swapchainCreateInfo.compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR; diff --git a/include/Mw/LowLevel/Haiku.h b/include/Mw/LowLevel/Haiku.h index 417edc394..446dfddda 100644 --- a/include/Mw/LowLevel/Haiku.h +++ b/include/Mw/LowLevel/Haiku.h @@ -141,7 +141,7 @@ struct _MwLLHaiku { MwApplication* app; MwView* view; thread_id app_thread; - int force_render; + int force_render; MwLLHaikuEvent* events; }; diff --git a/src/backend/haiku.cc b/src/backend/haiku.cc index ee2476360..2201e76fd 100644 --- a/src/backend/haiku.cc +++ b/src/backend/haiku.cc @@ -2,7 +2,8 @@ #include "../../external/stb_ds.h" -MwApplication::MwApplication(MwRect rc, MwLL handle) : BApplication("application/milsko-generic") { +MwApplication::MwApplication(MwRect rc, MwLL handle) + : BApplication("application/milsko-generic") { BScreen* scr = new BScreen(); float x = (scr->Frame().Width() - rc.width) / 2; float y = (scr->Frame().Height() - rc.height) / 2; @@ -47,7 +48,8 @@ void MwApplication::MessageReceived(BMessage* message) { } } -MwView::MwView(MwLL handle, BRect frame, uint32 resizingMode, uint32 flags) : BView(frame, NULL, resizingMode, flags | B_FRAME_EVENTS) { +MwView::MwView(MwLL handle, BRect frame, uint32 resizingMode, uint32 flags) + : BView(frame, NULL, resizingMode, flags | B_FRAME_EVENTS) { this->handle = handle; this->locker = new BLocker(); @@ -185,7 +187,7 @@ void MwView::MessageReceived(BMessage* message) { void MwView::PostMessage(BMessage* message) { BMessage copy = *message; - MwLL top = this->handle; + MwLL top = this->handle; while(top->haiku.parent != NULL) top = top->haiku.parent; @@ -307,7 +309,8 @@ void MwView::SetColor(MwLLColor color) { this->PostMessage(&msg); } -MwWindow::MwWindow(BRect frame, window_type type, uint32 flags) : BWindow(frame, "Milsko", type, flags) { +MwWindow::MwWindow(BRect frame, window_type type, uint32 flags) + : BWindow(frame, "Milsko", type, flags) { } void MwWindow::MessageReceived(BMessage* message) { diff --git a/src/widget/listbox.c b/src/widget/listbox.c index 9ef2cb57f..72fa74391 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -420,8 +420,8 @@ static void redrawIfNeeded(MwWidget handle, int row) { static int mwListBoxSetImpl(MwWidget handle, int row, int col, const char* text) { MwListBox lb = handle->internal; MwListBoxEntry entry; - char* t = text == NULL ? NULL : MwStringDuplicate(text); - int new = 0; + char* t = text == NULL ? NULL : MwStringDuplicate(text); + int new = 0; if(row == -1) row = arrlen(lb->list); entry.name = NULL; @@ -449,7 +449,7 @@ static int mwListBoxSetImpl(MwWidget handle, int row, int col, const char* text) static void mwListBoxSetIconImpl(MwWidget handle, int index, MwLLPixmap icon) { MwListBox lb = handle->internal; MwListBoxEntry entry; - int new = 0; + int new = 0; if(index == -1) index = arrlen(lb->list); entry.name = NULL; diff --git a/src/widget/scrollbar.c b/src/widget/scrollbar.c index 17f38fdc2..98a050d9c 100644 --- a/src/widget/scrollbar.c +++ b/src/widget/scrollbar.c @@ -58,9 +58,9 @@ static void draw(MwWidget handle) { MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); MwLLColor dark = MwLightenColor(handle, base, -64, -64, -64); MwScrollBar scr = handle->internal; - int or; - int uy, dy, ux, dx; - MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); + int or ; + int uy, dy, ux, dx; + MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); r.x = 0; r.y = 0; From c483c5f04213cdc4bab7f172c714e278da6c0c2b Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 29 Apr 2026 16:48:20 -0500 Subject: [PATCH 631/836] add haiku to tier 3 --- doc/TIERS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/TIERS.md b/doc/TIERS.md index 4be4fd6c0..c546bea01 100644 --- a/doc/TIERS.md +++ b/doc/TIERS.md @@ -15,3 +15,4 @@ Tier 3 backends are: - Mac OS X 10.4+ with Cocoa - Mac OS 7-9, PowerPC (68k support not planned). +- Haiku \ No newline at end of file From a6adca66966db5813f04b54fc9f75e945bec69e7 Mon Sep 17 00:00:00 2001 From: Nishi Date: Thu, 30 Apr 2026 08:37:50 +0900 Subject: [PATCH 632/836] wip subwindow --- examples/basic/periodic.c | 4 +-- include/Mw/Milsko.h | 1 + include/Mw/Widget/ComboBox.h | 1 + include/Mw/Widget/Label.h | 1 + include/Mw/Widget/SubWindow.h | 25 ++++++++++++++ pl/rules.pl | 1 + src/backend/gdi.c | 4 +-- src/core.c | 12 ++++--- src/widget/subwindow.c | 65 +++++++++++++++++++++++++++++++++++ 9 files changed, 105 insertions(+), 9 deletions(-) create mode 100644 include/Mw/Widget/SubWindow.h create mode 100644 src/widget/subwindow.c diff --git a/examples/basic/periodic.c b/examples/basic/periodic.c index 2280e9381..39c6b4a74 100644 --- a/examples/basic/periodic.c +++ b/examples/basic/periodic.c @@ -306,13 +306,13 @@ int main() { f = frame("Separator", -PaddingContent, -PaddingContent, MwSeparatorClass, NULL); add(f); -#if 0 +#if 1 f = frame("SubWindow", -PaddingContent, -PaddingContent, MwViewportClass, MwNratio, 3, NULL); w = child(f); MwViewportSetSize(w, 512, 512); - MwVaCreateWidget(MwSubWindowClass, "swnd", MwViewportGetViewport(w), 0, 0, 512, 512, + MwVaCreateWidget(MwSubWindowClass, "swnd", MwViewportGetViewport(w), 32, 32, 128, 128, MwNtitle, "Sub window", NULL); add(f); diff --git a/include/Mw/Milsko.h b/include/Mw/Milsko.h index 153f12440..9600b0cb4 100644 --- a/include/Mw/Milsko.h +++ b/include/Mw/Milsko.h @@ -51,5 +51,6 @@ #include #include #include +#include #endif diff --git a/include/Mw/Widget/ComboBox.h b/include/Mw/Widget/ComboBox.h index f6170ccd1..7b2dc2fca 100644 --- a/include/Mw/Widget/ComboBox.h +++ b/include/Mw/Widget/ComboBox.h @@ -7,6 +7,7 @@ #include #include +#include #ifdef __cplusplus extern "C" { diff --git a/include/Mw/Widget/Label.h b/include/Mw/Widget/Label.h index 4c7513310..f9338e337 100644 --- a/include/Mw/Widget/Label.h +++ b/include/Mw/Widget/Label.h @@ -7,6 +7,7 @@ #include #include +#include #ifdef __cplusplus extern "C" { diff --git a/include/Mw/Widget/SubWindow.h b/include/Mw/Widget/SubWindow.h new file mode 100644 index 000000000..38a1cdd3e --- /dev/null +++ b/include/Mw/Widget/SubWindow.h @@ -0,0 +1,25 @@ +/*! + * @file Mw/Widget/SubWindow.h + * @brief SubWindow widget + */ +#ifndef __MW_WIDGET_SUBWINDOW_H__ +#define __MW_WIDGET_SUBWINDOW_H__ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/*! + * @brief SubWindow widget class + */ +MWDECL MwClass MwSubWindowClass; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/pl/rules.pl b/pl/rules.pl index 6d781157c..853400076 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -154,6 +154,7 @@ new_object("src/widget/radiobox.c"); new_object("src/widget/scrollbar.c"); new_object("src/widget/separator.c"); new_object("src/widget/submenu.c"); +new_object("src/widget/subwindow.c"); new_object("src/widget/treeview.c"); new_object("src/widget/viewport.c"); new_object("src/widget/window.c"); diff --git a/src/backend/gdi.c b/src/backend/gdi.c index f273b8b59..c87e3fad3 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -52,8 +52,8 @@ static void detect_darktheme(MwLL handle) { t = dw ? 0 : 1; if(t && DwmSetWindowAttribute != NULL) { - LPARAM style = GetWindowLongPtr(handle->gdi.hWnd, GWL_STYLE); - if(!(style & WS_CHILD)) MwLLSetDarkTheme(handle, 1); + // LPARAM style = GetWindowLongPtr(handle->gdi.hWnd, GWL_STYLE); + // if(!(style & WS_CHILD)) MwLLSetDarkTheme(handle, 1); } MwLLDispatch(handle, dark_theme, &t); diff --git a/src/core.c b/src/core.c index 5cc7bbddc..c73a6355e 100644 --- a/src/core.c +++ b/src/core.c @@ -173,12 +173,14 @@ static void lldarkthemehandler(MwLL handle, void* data) { int s; if(IsFirstVisible(h) && (shgeti(h->integer, MwNdarkTheme) == -1 || ((s = MwGetInteger(h, MwNdarkThemeAutomatic)) != MwDEFAULT && s))) { - MwVaApply(h, - MwNdarkTheme, *ptr, - MwNdarkThemeAutomatic, 1, - NULL); + if(MwGetInteger(h, MwNmodernLook)){ + MwVaApply(h, + MwNdarkTheme, *ptr, + MwNdarkThemeAutomatic, 1, + NULL); - MwDispatchUserHandler(h, MwNdarkThemeHandler, data); + MwDispatchUserHandler(h, MwNdarkThemeHandler, data); + } } } diff --git a/src/widget/subwindow.c b/src/widget/subwindow.c new file mode 100644 index 000000000..b7051f904 --- /dev/null +++ b/src/widget/subwindow.c @@ -0,0 +1,65 @@ +#include + +#define TitleHeight 20 + +static int wcreate(MwWidget handle) { + MwSetDefault(handle); + + return 0; +} + +static void draw(MwWidget handle) { + MwLLColor c = MwParseColor(handle, MwGetText(handle, MwNbackground)); + MwLLColor c2 = MwParseColor(handle, MwGetText(handle, MwNsubBackground)); + MwRect r, r2; + + r.x = 0; + r.y = 0; + r.width = MwGetInteger(handle, MwNwidth); + r.height = MwGetInteger(handle, MwNheight); + + MwDrawFrame(handle, &r, c, 0); + MwDrawRect(handle, &r, c); + + r2 = r; + r2.height = TitleHeight; + MwDrawRect(handle, &r2, c2); + + r.y += TitleHeight; + r.height -= TitleHeight; + MwDrawFrame(handle, &r, c, 1); + + MwLLFreeColor(c2); + MwLLFreeColor(c); +} + +static void prop_change(MwWidget handle, const char* key) { + if(strcmp(key, MwNtitle) == 0) MwForceRender(handle); +} + +static void func_handler(MwWidget handle, const char* name, void* out, va_list va) { + (void)out; +} + +MwClassRec MwSubWindowClassRec = { + wcreate, /* create */ + NULL, /* destroy */ + draw, /* draw */ + NULL, /* click */ + NULL, /* parent_resize */ + prop_change, /* prop_change */ + NULL, /* mouse_move */ + NULL, /* mouse_up */ + NULL, /* mouse_down */ + NULL, /* key */ + func_handler, /* execute */ + NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, /* clipboard */ + NULL, /* props_change */ + NULL, + NULL, + NULL}; +MwClass MwSubWindowClass = &MwSubWindowClassRec; From d1f97c0fa4d502e1dc4d7d0124bf77711a9d58db Mon Sep 17 00:00:00 2001 From: Nishi Date: Thu, 30 Apr 2026 12:35:42 +0900 Subject: [PATCH 633/836] comment --- examples/basic/periodic.c | 4 ++-- include/Mw/StringDefs.h | 1 + src/backend/gdi.c | 7 +++++-- src/core.c | 2 +- src/widget/subwindow.c | 8 +++++--- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/examples/basic/periodic.c b/examples/basic/periodic.c index 39c6b4a74..efc1da55c 100644 --- a/examples/basic/periodic.c +++ b/examples/basic/periodic.c @@ -313,8 +313,8 @@ int main() { w = child(f); MwViewportSetSize(w, 512, 512); MwVaCreateWidget(MwSubWindowClass, "swnd", MwViewportGetViewport(w), 32, 32, 128, 128, - MwNtitle, "Sub window", - NULL); + MwNtitle, "Sub window", + NULL); add(f); #endif diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index 95340853b..d8e01b100 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -50,6 +50,7 @@ #define MwNsubBackground "SsubBackground" #define MwNforeground "Sforeground" #define MwNsubForeground "SsubForeground" +#define MwNtitleBackground "StitleBackground" #define MwNvulkanExtension "SEvulkanExtension" #define MwNvulkanLayer "SEvulkanLayer" diff --git a/src/backend/gdi.c b/src/backend/gdi.c index c87e3fad3..db6090d9e 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -51,10 +51,13 @@ static void detect_darktheme(MwLL handle) { t = dw ? 0 : 1; + /* no don't do this here (nishi) */ +#if 0 if(t && DwmSetWindowAttribute != NULL) { - // LPARAM style = GetWindowLongPtr(handle->gdi.hWnd, GWL_STYLE); - // if(!(style & WS_CHILD)) MwLLSetDarkTheme(handle, 1); + LPARAM style = GetWindowLongPtr(handle->gdi.hWnd, GWL_STYLE); + if(!(style & WS_CHILD)) MwLLSetDarkTheme(handle, 1); } +#endif MwLLDispatch(handle, dark_theme, &t); } diff --git a/src/core.c b/src/core.c index c73a6355e..cc0cdc4f9 100644 --- a/src/core.c +++ b/src/core.c @@ -173,7 +173,7 @@ static void lldarkthemehandler(MwLL handle, void* data) { int s; if(IsFirstVisible(h) && (shgeti(h->integer, MwNdarkTheme) == -1 || ((s = MwGetInteger(h, MwNdarkThemeAutomatic)) != MwDEFAULT && s))) { - if(MwGetInteger(h, MwNmodernLook)){ + if(MwGetInteger(h, MwNmodernLook)) { MwVaApply(h, MwNdarkTheme, *ptr, MwNdarkThemeAutomatic, 1, diff --git a/src/widget/subwindow.c b/src/widget/subwindow.c index b7051f904..16594987d 100644 --- a/src/widget/subwindow.c +++ b/src/widget/subwindow.c @@ -5,12 +5,14 @@ static int wcreate(MwWidget handle) { MwSetDefault(handle); + MwSetText(handle, MwNtitleBackground, "#008"); + return 0; } static void draw(MwWidget handle) { - MwLLColor c = MwParseColor(handle, MwGetText(handle, MwNbackground)); - MwLLColor c2 = MwParseColor(handle, MwGetText(handle, MwNsubBackground)); + MwLLColor c = MwParseColor(handle, MwGetText(handle, MwNbackground)); + MwLLColor c2 = MwParseColor(handle, MwGetText(handle, MwNtitleBackground)); MwRect r, r2; r.x = 0; @@ -21,7 +23,7 @@ static void draw(MwWidget handle) { MwDrawFrame(handle, &r, c, 0); MwDrawRect(handle, &r, c); - r2 = r; + r2 = r; r2.height = TitleHeight; MwDrawRect(handle, &r2, c2); From 6b94ac5db95c237b583d3d565774334184e77e8c Mon Sep 17 00:00:00 2001 From: Nishi Date: Thu, 30 Apr 2026 14:28:56 +0900 Subject: [PATCH 634/836] wip --- examples/basic/periodic.c | 2 +- include/Mw/Default.h | 20 +++++++++ include/Mw/StringDefs.h | 3 +- include/Mw/TypeDefs.h | 8 ++++ milsko.xml | 8 ++++ src/core.c | 18 ++++++--- src/default.c | 20 +++++---- src/widget/subwindow.c | 85 ++++++++++++++++++++++++++++++++++++--- 8 files changed, 142 insertions(+), 22 deletions(-) diff --git a/examples/basic/periodic.c b/examples/basic/periodic.c index efc1da55c..58f5c2e5e 100644 --- a/examples/basic/periodic.c +++ b/examples/basic/periodic.c @@ -312,7 +312,7 @@ int main() { NULL); w = child(f); MwViewportSetSize(w, 512, 512); - MwVaCreateWidget(MwSubWindowClass, "swnd", MwViewportGetViewport(w), 32, 32, 128, 128, + MwVaCreateWidget(MwSubWindowClass, "swnd", MwViewportGetViewport(w), 32, 32, 256, 128, MwNtitle, "Sub window", NULL); add(f); diff --git a/include/Mw/Default.h b/include/Mw/Default.h index 8e3c0b25b..f20a60c68 100644 --- a/include/Mw/Default.h +++ b/include/Mw/Default.h @@ -32,6 +32,16 @@ MWDECL const char* MwDefaultSubBackground; */ MWDECL const char* MwDefaultSubForeground; +/*! + * @brief Default title background color + */ +MWDECL const char* MwDefaultTitleBackground; + +/*! + * @brief Default title foreground color + */ +MWDECL const char* MwDefaultTitleForeground; + /*! * @brief Default dark theme background color */ @@ -52,6 +62,16 @@ MWDECL const char* MwDefaultDarkSubBackground; */ MWDECL const char* MwDefaultDarkSubForeground; +/*! + * @brief Default dark theme title background color + */ +MWDECL const char* MwDefaultDarkTitleBackground; + +/*! + * @brief Default dark theme title foreground color + */ +MWDECL const char* MwDefaultDarkTitleForeground; + /*! * @brief Default shadow difference */ diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index d8e01b100..67a53a42c 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -48,9 +48,10 @@ #define MwNtext "Stext" #define MwNbackground "Sbackground" #define MwNsubBackground "SsubBackground" +#define MwNtitleBackground "StitleBackground" #define MwNforeground "Sforeground" #define MwNsubForeground "SsubForeground" -#define MwNtitleBackground "StitleBackground" +#define MwNtitleForeground "StitleForeground" #define MwNvulkanExtension "SEvulkanExtension" #define MwNvulkanLayer "SEvulkanLayer" diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index c3b86e08d..f0b8cb84c 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -27,6 +27,7 @@ typedef struct _MwListBoxEntry MwListBoxEntry; typedef struct _MwTreeViewEntry MwTreeViewEntry; typedef struct _MwDirectoryEntry MwDirectoryEntry; typedef struct _MwBox* MwBox; +typedef struct _MwSubWindow* MwSubWindow; typedef struct _MwMouse MwMouse; #ifdef _MILSKO typedef struct _MwWidget* MwWidget; @@ -207,6 +208,13 @@ struct _MwBox { int layout; }; +struct _MwSubWindow { + MwWidget frame; + MwWidget minimize; + MwWidget maximize; + MwWidget close; +}; + struct _MwMouse { MwPoint point; int button; diff --git a/milsko.xml b/milsko.xml index e5165a4fb..94a68ac39 100644 --- a/milsko.xml +++ b/milsko.xml @@ -105,8 +105,10 @@ + + @@ -876,6 +878,12 @@ + + + + + + diff --git a/src/core.c b/src/core.c index cc0cdc4f9..b6343b909 100644 --- a/src/core.c +++ b/src/core.c @@ -591,7 +591,7 @@ void MwSetInteger(MwWidget handle, const char* key, int n) { } void MwSetText(MwWidget handle, const char* key, const char* value) { - if(strcmp(key, MwNtitle) == 0) { + if(handle->widget_class == MwWindowClass && strcmp(key, MwNtitle) == 0) { MwLLSetTitle(handle->lowlevel, value); } else { char* v = value == NULL ? NULL : MwStringDuplicate(value); @@ -686,12 +686,14 @@ int MwGetInteger(MwWidget handle, const char* key) { } const char* MwGetText(MwWidget handle, const char* key) { - if(shgeti(handle->text, key) == -1 && (strcmp(key, MwNbackground) == 0 || strcmp(key, MwNforeground) == 0 || strcmp(key, MwNsubBackground) == 0 || strcmp(key, MwNsubForeground) == 0)) { + if((shgeti(handle->text, key) == -1 || strcmp(shget(handle->text, key), "DEFAULT") == 0) && (strcmp(key, MwNbackground) == 0 || strcmp(key, MwNforeground) == 0 || strcmp(key, MwNsubBackground) == 0 || strcmp(key, MwNsubForeground) == 0 || strcmp(key, MwNtitleBackground) == 0 || strcmp(key, MwNtitleForeground) == 0)) { const char* v = NULL; - MwWidget h = handle->parent; - while(h != NULL) { - if((v = MwGetText(h, key)) != NULL) break; - h = h->parent; + if(shgeti(handle->text, key) != -1 && strcmp(shget(handle->text, key), "DEFAULT") != 0) { + MwWidget h = handle->parent; + while(h != NULL) { + if((v = MwGetText(h, key)) != NULL) break; + h = h->parent; + } } if(v == NULL) { if(MwGetInteger(handle, MwNdarkTheme)) { @@ -699,11 +701,15 @@ const char* MwGetText(MwWidget handle, const char* key) { if(strcmp(key, MwNforeground) == 0) return MwDefaultDarkForeground; if(strcmp(key, MwNsubBackground) == 0) return MwDefaultDarkSubBackground; if(strcmp(key, MwNsubForeground) == 0) return MwDefaultDarkSubForeground; + if(strcmp(key, MwNtitleBackground) == 0) return MwDefaultDarkTitleBackground; + if(strcmp(key, MwNtitleForeground) == 0) return MwDefaultDarkTitleForeground; } else { if(strcmp(key, MwNbackground) == 0) return MwDefaultBackground; if(strcmp(key, MwNforeground) == 0) return MwDefaultForeground; if(strcmp(key, MwNsubBackground) == 0) return MwDefaultSubBackground; if(strcmp(key, MwNsubForeground) == 0) return MwDefaultSubForeground; + if(strcmp(key, MwNtitleBackground) == 0) return MwDefaultTitleBackground; + if(strcmp(key, MwNtitleForeground) == 0) return MwDefaultTitleForeground; } } return v; diff --git a/src/default.c b/src/default.c index 36537a183..a1acbd09e 100644 --- a/src/default.c +++ b/src/default.c @@ -1,14 +1,18 @@ #include -const char* MwDefaultBackground = "#d2d2d2"; -const char* MwDefaultForeground = "#000"; -const char* MwDefaultSubBackground = "#fff"; -const char* MwDefaultSubForeground = "#000"; +const char* MwDefaultBackground = "#d2d2d2"; +const char* MwDefaultForeground = "#000"; +const char* MwDefaultSubBackground = "#fff"; +const char* MwDefaultSubForeground = "#000"; +const char* MwDefaultTitleBackground = "#008"; +const char* MwDefaultTitleForeground = "#fff"; -const char* MwDefaultDarkBackground = "#333"; -const char* MwDefaultDarkForeground = "#ddd"; -const char* MwDefaultDarkSubBackground = "#333"; -const char* MwDefaultDarkSubForeground = "#ddd"; +const char* MwDefaultDarkBackground = "#333"; +const char* MwDefaultDarkForeground = "#ddd"; +const char* MwDefaultDarkSubBackground = "#333"; +const char* MwDefaultDarkSubForeground = "#ddd"; +const char* MwDefaultDarkTitleBackground = "#008"; +const char* MwDefaultDarkTitleForeground = "#fff"; const int MwDefaultShadow = -32; diff --git a/src/widget/subwindow.c b/src/widget/subwindow.c index 16594987d..61cc9f8b7 100644 --- a/src/widget/subwindow.c +++ b/src/widget/subwindow.c @@ -1,19 +1,82 @@ #include #define TitleHeight 20 +#define ButtonSize 18 + +static void resize(MwWidget handle){ + MwSubWindow sw = handle->internal; + int x, y, w, h; + int ww = MwGetInteger(handle, MwNwidth); + int wh = MwGetInteger(handle, MwNheight); + int bw = MwDefaultBorderWidth(handle); + int p; + + x = bw * 2; + y = bw * 2 + TitleHeight; + w = ww - bw * 4; + h = wh - bw * 4 - TitleHeight; + if(sw->frame == NULL){ + sw->frame = MwCreateWidget(MwFrameClass, "frame", handle, x, y, w, h); + }else{ + MwVaApply(sw->frame, + MwNx, x, + MwNy, y, + MwNwidth, w, + MwNheight, h, + NULL); + } + + p = (TitleHeight - ButtonSize) / 2; + x = ww - bw - p; + y = bw + p; + w = ButtonSize; + h = ButtonSize; + +#define BUTTON(name) \ + x -= ButtonSize; \ + if(sw->name == NULL){ \ + sw->name = MwCreateWidget(MwButtonClass, #name, handle, x, y, w, h); \ + }else{ \ + MwVaApply(sw->name, \ + MwNx, x, \ + MwNy, y, \ + MwNwidth, w, \ + MwNheight, h, \ + NULL); \ + } \ + x -= p; + + BUTTON(close); + BUTTON(maximize); + BUTTON(minimize); + + MwSetText(sw->frame, MwNbackground, "#f00"); +} static int wcreate(MwWidget handle) { - MwSetDefault(handle); + MwSubWindow sw = malloc(sizeof(*sw)); + memset(sw, 0, sizeof(*sw)); - MwSetText(handle, MwNtitleBackground, "#008"); + handle->internal = sw; + + resize(handle); + + MwSetDefault(handle); return 0; } +static void destroy(MwWidget handle) { + MwSubWindow sw = handle->internal; + free(handle->internal); +} + static void draw(MwWidget handle) { MwLLColor c = MwParseColor(handle, MwGetText(handle, MwNbackground)); - MwLLColor c2 = MwParseColor(handle, MwGetText(handle, MwNtitleBackground)); + MwLLColor tb = MwParseColor(handle, MwGetText(handle, MwNtitleBackground)); + MwLLColor tf = MwParseColor(handle, MwGetText(handle, MwNtitleForeground)); MwRect r, r2; + const char* title = MwGetText(handle, MwNtitle); r.x = 0; r.y = 0; @@ -25,13 +88,23 @@ static void draw(MwWidget handle) { r2 = r; r2.height = TitleHeight; - MwDrawRect(handle, &r2, c2); + MwDrawRect(handle, &r2, tb); + + if(title != NULL){ + MwPoint p; + p.x = r2.x + (TitleHeight - ButtonSize); + p.y = r2.y + TitleHeight / 2; + handle->bgcolor = tb; + MwDrawText(handle, NULL, &p, title, MwALIGNMENT_BEGINNING, tf); + handle->bgcolor = NULL; + } r.y += TitleHeight; r.height -= TitleHeight; MwDrawFrame(handle, &r, c, 1); - MwLLFreeColor(c2); + MwLLFreeColor(tf); + MwLLFreeColor(tb); MwLLFreeColor(c); } @@ -45,7 +118,7 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v MwClassRec MwSubWindowClassRec = { wcreate, /* create */ - NULL, /* destroy */ + destroy, /* destroy */ draw, /* draw */ NULL, /* click */ NULL, /* parent_resize */ From 4c17f84d4b8dcf451ee5ae1bf04dd13b46ddd13c Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 30 Apr 2026 22:43:11 +0900 Subject: [PATCH 635/836] win32 fix --- src/abstract/charset.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/abstract/charset.c b/src/abstract/charset.c index c0cf53933..603aa3f74 100644 --- a/src/abstract/charset.c +++ b/src/abstract/charset.c @@ -31,6 +31,7 @@ char* MwACPToUTF8(const char* input) { free(wout); return MwStringDuplicate(input); } + wout[len] = 0; len = WideCharToMultiByte(CP_UTF8, 0, wout, len, mbout, mbbytes, 0, 0); if(len == 0) { @@ -38,7 +39,6 @@ char* MwACPToUTF8(const char* input) { free(wout); return MwStringDuplicate(input); } - mbout[len] = 0; free(wout); @@ -76,6 +76,7 @@ char* MwUTF8ToACP(const char* input) { free(wout); return MwStringDuplicate(input); } + wout[len] = 0 len = WideCharToMultiByte(CP_ACP, 0, wout, len, mbout, mbbytes, 0, 0); if(len == 0) { @@ -83,7 +84,6 @@ char* MwUTF8ToACP(const char* input) { free(wout); return MwStringDuplicate(input); } - mbout[len] = 0; free(wout); From d3bb57757c704f1650ab4d212908c7e771a75073 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 30 Apr 2026 22:56:37 +0900 Subject: [PATCH 636/836] oops --- src/abstract/charset.c | 2 +- src/widget/subwindow.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/abstract/charset.c b/src/abstract/charset.c index 603aa3f74..3620aa056 100644 --- a/src/abstract/charset.c +++ b/src/abstract/charset.c @@ -76,7 +76,7 @@ char* MwUTF8ToACP(const char* input) { free(wout); return MwStringDuplicate(input); } - wout[len] = 0 + wout[len] = 0; len = WideCharToMultiByte(CP_ACP, 0, wout, len, mbout, mbbytes, 0, 0); if(len == 0) { diff --git a/src/widget/subwindow.c b/src/widget/subwindow.c index 61cc9f8b7..396032fc1 100644 --- a/src/widget/subwindow.c +++ b/src/widget/subwindow.c @@ -1,7 +1,7 @@ #include #define TitleHeight 20 -#define ButtonSize 18 +#define ButtonSize 14 static void resize(MwWidget handle){ MwSubWindow sw = handle->internal; From dce15aed4dd47ba1e6295da3ea398a9a24444453 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 1 May 2026 19:53:28 +0900 Subject: [PATCH 637/836] update --- BorMakefile | 5 +++-- NTMakefile | 5 +++-- WatMakefile | 7 +++++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/BorMakefile b/BorMakefile index 2fc9d24ba..19cb9d59e 100644 --- a/BorMakefile +++ b/BorMakefile @@ -87,14 +87,15 @@ clean: del /f /q src\widget\scrollbar.obj del /f /q src\widget\separator.obj del /f /q src\widget\submenu.obj + del /f /q src\widget\subwindow.obj del /f /q src\widget\treeview.obj del /f /q src\widget\viewport.obj del /f /q src\widget\window.obj del /f /q src\Mw.dll del /f /q src\Mw.lib -src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj - $(LD) $(LDFLAGS) -e$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj -lopengl32.lib -lgdi32.lib -luser32.lib -ladvapi32.lib +src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj + $(LD) $(LDFLAGS) -e$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj -lopengl32.lib -lgdi32.lib -luser32.lib -ladvapi32.lib implib src\Mw.lib src\Mw.dll .c.obj: diff --git a/NTMakefile b/NTMakefile index 669dd15d6..ead72f4d1 100644 --- a/NTMakefile +++ b/NTMakefile @@ -87,14 +87,15 @@ clean: del /f /q src\widget\scrollbar.obj del /f /q src\widget\separator.obj del /f /q src\widget\submenu.obj + del /f /q src\widget\subwindow.obj del /f /q src\widget\treeview.obj del /f /q src\widget\viewport.obj del /f /q src\widget\window.obj del /f /q src\Mw.dll del /f /q src\Mw.lib -src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj - $(LD) $(LDFLAGS) /OUT:$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib user32.lib advapi32.lib +src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj + $(LD) $(LDFLAGS) /OUT:$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib user32.lib advapi32.lib .c.obj: diff --git a/WatMakefile b/WatMakefile index 4ce4c3ff8..9141b9bba 100644 --- a/WatMakefile +++ b/WatMakefile @@ -86,14 +86,15 @@ clean: .SYMBOLIC %erase src/widget/scrollbar.obj %erase src/widget/separator.obj %erase src/widget/submenu.obj + %erase src/widget/subwindow.obj %erase src/widget/treeview.obj %erase src/widget/viewport.obj %erase src/widget/window.obj %erase src/Mw.dll %erase src/Mw.lib -src/Mw.dll: external/libz/src/adler32.obj external/libz/src/compress.obj external/libz/src/crc32.obj external/libz/src/deflate.obj external/libz/src/gzclose.obj external/libz/src/gzlib.obj external/libz/src/gzread.obj external/libz/src/gzwrite.obj external/libz/src/infback.obj external/libz/src/inffast.obj external/libz/src/inflate.obj external/libz/src/inftrees.obj external/libz/src/trees.obj external/libz/src/uncompr.obj external/libz/src/zutil.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/charset.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text/font/boldfont.obj src/text/font/boldmonottf.obj src/text/font/boldttf.obj src/text/font/font.obj src/text/font/monottf.obj src/text/font/ttf.obj src/text/ft2.obj src/text/stbtt.obj src/text/text.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj - $(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file external/libz/src/adler32.obj file external/libz/src/compress.obj file external/libz/src/crc32.obj file external/libz/src/deflate.obj file external/libz/src/gzclose.obj file external/libz/src/gzlib.obj file external/libz/src/gzread.obj file external/libz/src/gzwrite.obj file external/libz/src/infback.obj file external/libz/src/inffast.obj file external/libz/src/inflate.obj file external/libz/src/inftrees.obj file external/libz/src/trees.obj file external/libz/src/uncompr.obj file external/libz/src/zutil.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/charset.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/font/boldfont.obj file src/text/font/boldmonottf.obj file src/text/font/boldttf.obj file src/text/font/font.obj file src/text/font/monottf.obj file src/text/font/ttf.obj file src/text/ft2.obj file src/text/stbtt.obj file src/text/text.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib library advapi32.lib +src/Mw.dll: external/libz/src/adler32.obj external/libz/src/compress.obj external/libz/src/crc32.obj external/libz/src/deflate.obj external/libz/src/gzclose.obj external/libz/src/gzlib.obj external/libz/src/gzread.obj external/libz/src/gzwrite.obj external/libz/src/infback.obj external/libz/src/inffast.obj external/libz/src/inflate.obj external/libz/src/inftrees.obj external/libz/src/trees.obj external/libz/src/uncompr.obj external/libz/src/zutil.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/charset.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text/font/boldfont.obj src/text/font/boldmonottf.obj src/text/font/boldttf.obj src/text/font/font.obj src/text/font/monottf.obj src/text/font/ttf.obj src/text/ft2.obj src/text/stbtt.obj src/text/text.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/subwindow.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj + $(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file external/libz/src/adler32.obj file external/libz/src/compress.obj file external/libz/src/crc32.obj file external/libz/src/deflate.obj file external/libz/src/gzclose.obj file external/libz/src/gzlib.obj file external/libz/src/gzread.obj file external/libz/src/gzwrite.obj file external/libz/src/infback.obj file external/libz/src/inffast.obj file external/libz/src/inflate.obj file external/libz/src/inftrees.obj file external/libz/src/trees.obj file external/libz/src/uncompr.obj file external/libz/src/zutil.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/charset.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/font/boldfont.obj file src/text/font/boldmonottf.obj file src/text/font/boldttf.obj file src/text/font/font.obj file src/text/font/monottf.obj file src/text/font/ttf.obj file src/text/ft2.obj file src/text/stbtt.obj file src/text/text.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/subwindow.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib library advapi32.lib @@ -259,6 +260,8 @@ src/widget/separator.obj: src/widget/separator.c $(CC) $(CFLAGS) -fo=$@ $< src/widget/submenu.obj: src/widget/submenu.c $(CC) $(CFLAGS) -fo=$@ $< +src/widget/subwindow.obj: src/widget/subwindow.c + $(CC) $(CFLAGS) -fo=$@ $< src/widget/treeview.obj: src/widget/treeview.c $(CC) $(CFLAGS) -fo=$@ $< src/widget/viewport.obj: src/widget/viewport.c From 3542d7524ae1ea2ffdc38a915cd4c6e1a6b0cfc4 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 1 May 2026 22:25:13 +0900 Subject: [PATCH 638/836] buttons --- src/widget/subwindow.c | 123 +++++++++++++++++++++++++++++++---------- src/widget/treeview.c | 4 +- 2 files changed, 97 insertions(+), 30 deletions(-) diff --git a/src/widget/subwindow.c b/src/widget/subwindow.c index 396032fc1..d2cbb51a5 100644 --- a/src/widget/subwindow.c +++ b/src/widget/subwindow.c @@ -3,27 +3,93 @@ #define TitleHeight 20 #define ButtonSize 14 -static void resize(MwWidget handle){ +static void close_draw(MwWidget handle) { + int w = MwGetInteger(handle, MwNwidth); + int h = MwGetInteger(handle, MwNheight); + MwPoint p[2]; + MwLLColor c = MwParseColor(handle, MwGetText(handle, MwNforeground)); + int bw = MwDefaultBorderWidth(handle); + + p[0].x = bw * 2; + p[0].y = bw * 2; + p[1].x = w - bw * 2 - 1; + p[1].y = h - bw * 2 - 1; + MwLLLine(handle->lowlevel, p, c); + + p[0].x = w - bw * 2 - 1; + p[0].y = bw * 2; + p[1].x = bw * 2; + p[1].y = h - bw * 2 - 1; + MwLLLine(handle->lowlevel, p, c); + + MwLLFreeColor(c); +} + +static void maximize_draw(MwWidget handle) { + int w = MwGetInteger(handle, MwNwidth); + int h = MwGetInteger(handle, MwNheight); + MwPoint p[2]; + MwLLColor c = MwParseColor(handle, MwGetText(handle, MwNforeground)); + int bw = MwDefaultBorderWidth(handle); + + p[0].x = bw * 2; + p[0].y = bw * 2; + p[1].x = w - bw * 2 - 1; + p[1].y = bw * 2; + MwLLLine(handle->lowlevel, p, c); + + p[0].y = p[1].y = h - bw * 2 - 1; + MwLLLine(handle->lowlevel, p, c); + + p[0].x = bw * 2; + p[0].y = bw * 2; + p[1].x = bw * 2; + p[1].y = h - bw * 2 - 1; + MwLLLine(handle->lowlevel, p, c); + + p[0].x = p[1].x = w - bw * 2 - 1; + MwLLLine(handle->lowlevel, p, c); + + MwLLFreeColor(c); +} + +static void minimize_draw(MwWidget handle) { + int w = MwGetInteger(handle, MwNwidth); + int h = MwGetInteger(handle, MwNheight); + MwPoint p[2]; + MwLLColor c = MwParseColor(handle, MwGetText(handle, MwNforeground)); + int bw = MwDefaultBorderWidth(handle); + + p[0].x = bw * 2; + p[0].y = h - bw * 2 - 1; + p[1].x = w - bw * 2 - 1; + p[1].y = h - bw * 2 - 1; + MwLLLine(handle->lowlevel, p, c); + + MwLLFreeColor(c); +} + +static void resize(MwWidget handle) { MwSubWindow sw = handle->internal; - int x, y, w, h; - int ww = MwGetInteger(handle, MwNwidth); - int wh = MwGetInteger(handle, MwNheight); - int bw = MwDefaultBorderWidth(handle); - int p; + int x, y, w, h; + int ww = MwGetInteger(handle, MwNwidth); + int wh = MwGetInteger(handle, MwNheight); + int bw = MwDefaultBorderWidth(handle); + int p; x = bw * 2; y = bw * 2 + TitleHeight; w = ww - bw * 4; h = wh - bw * 4 - TitleHeight; - if(sw->frame == NULL){ + if(sw->frame == NULL) { sw->frame = MwCreateWidget(MwFrameClass, "frame", handle, x, y, w, h); - }else{ + } else { MwVaApply(sw->frame, - MwNx, x, - MwNy, y, - MwNwidth, w, - MwNheight, h, - NULL); + MwNx, x, + MwNy, y, + MwNwidth, w, + MwNheight, h, + NULL); } p = (TitleHeight - ButtonSize) / 2; @@ -34,15 +100,16 @@ static void resize(MwWidget handle){ #define BUTTON(name) \ x -= ButtonSize; \ - if(sw->name == NULL){ \ - sw->name = MwCreateWidget(MwButtonClass, #name, handle, x, y, w, h); \ - }else{ \ + if(sw->name == NULL) { \ + sw->name = MwCreateWidget(MwButtonClass, #name, handle, x, y, w, h); \ + sw->name->draw_inject = name##_draw; \ + } else { \ MwVaApply(sw->name, \ - MwNx, x, \ - MwNy, y, \ - MwNwidth, w, \ - MwNheight, h, \ - NULL); \ + MwNx, x, \ + MwNy, y, \ + MwNwidth, w, \ + MwNheight, h, \ + NULL); \ } \ x -= p; @@ -72,10 +139,10 @@ static void destroy(MwWidget handle) { } static void draw(MwWidget handle) { - MwLLColor c = MwParseColor(handle, MwGetText(handle, MwNbackground)); - MwLLColor tb = MwParseColor(handle, MwGetText(handle, MwNtitleBackground)); - MwLLColor tf = MwParseColor(handle, MwGetText(handle, MwNtitleForeground)); - MwRect r, r2; + MwLLColor c = MwParseColor(handle, MwGetText(handle, MwNbackground)); + MwLLColor tb = MwParseColor(handle, MwGetText(handle, MwNtitleBackground)); + MwLLColor tf = MwParseColor(handle, MwGetText(handle, MwNtitleForeground)); + MwRect r, r2; const char* title = MwGetText(handle, MwNtitle); r.x = 0; @@ -90,10 +157,10 @@ static void draw(MwWidget handle) { r2.height = TitleHeight; MwDrawRect(handle, &r2, tb); - if(title != NULL){ + if(title != NULL) { MwPoint p; - p.x = r2.x + (TitleHeight - ButtonSize); - p.y = r2.y + TitleHeight / 2; + p.x = r2.x + (TitleHeight - ButtonSize); + p.y = r2.y + TitleHeight / 2; handle->bgcolor = tb; MwDrawText(handle, NULL, &p, title, MwALIGNMENT_BEGINNING, tf); handle->bgcolor = NULL; diff --git a/src/widget/treeview.c b/src/widget/treeview.c index f7441c7c3..9979f9c89 100644 --- a/src/widget/treeview.c +++ b/src/widget/treeview.c @@ -2,7 +2,7 @@ #include "../../external/stb_ds.h" -#define OpenerSize 10 +#define OpenerSize 11 #define LineSpace 16 #define LinePadding 4 @@ -68,7 +68,7 @@ static void recursion(MwWidget handle, MwTreeViewEntry* tree, MwTreeViewEntry** MwDrawRect(handle, &r, col); MwDrawFrame(handle, &r, base, tree->opened); if(tree->opened) { - l[0].x = r.x + (r.width - len) / 2; + l[0].x = r.x + (r.width - 1 - len) / 2; l[0].y = r.y + r.height / 2; l[1].x = l[0].x + len; From 141ea4a02708c2361bd6c9c325613967a711ff46 Mon Sep 17 00:00:00 2001 From: Nishi Date: Fri, 1 May 2026 22:35:35 +0900 Subject: [PATCH 639/836] haiku fix --- src/backend/haiku.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/backend/haiku.cc b/src/backend/haiku.cc index 2201e76fd..6017a3725 100644 --- a/src/backend/haiku.cc +++ b/src/backend/haiku.cc @@ -92,6 +92,7 @@ void MwView::MessageReceived(BMessage* message) { this->Window()->ResizeTo(width - 1, height - 1); this->ResizeTo(width - 1, height - 1); } + this->Draw(BRect(0, 0, 0, 0)); break; } case BVIEW_MW_MOVE: @@ -387,7 +388,7 @@ static int32 app_thread(void* data) { MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLL r = (MwLL)malloc(sizeof(*r)); MwRect mrc; - BRect rc = BRect(x, y, x + width - 1, x + height - 1); + BRect rc = BRect(x, y, x + width - 1, y + height - 1); mrc.x = x; mrc.y = y; From 1f232522b711a8ca247b85ef796cbe868be0cb77 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sat, 2 May 2026 00:22:00 +0900 Subject: [PATCH 640/836] minimize/maximize --- examples/basic/periodic.c | 4 ++ include/Mw/TypeDefs.h | 6 ++ src/widget/subwindow.c | 116 +++++++++++++++++++++++++++++++++++++- 3 files changed, 124 insertions(+), 2 deletions(-) diff --git a/examples/basic/periodic.c b/examples/basic/periodic.c index 58f5c2e5e..2fd4e4bf5 100644 --- a/examples/basic/periodic.c +++ b/examples/basic/periodic.c @@ -316,6 +316,10 @@ int main() { MwNtitle, "Sub window", NULL); add(f); + MwVaCreateWidget(MwSubWindowClass, "swnd", MwViewportGetViewport(w), 64, 64, 256, 128, + MwNtitle, "Sub window", + NULL); + add(f); #endif f = frame("TreeView", -PaddingContent, -PaddingContent, MwTreeViewClass, NULL); diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index f0b8cb84c..7e75c81fd 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -213,6 +213,12 @@ struct _MwSubWindow { MwWidget minimize; MwWidget maximize; MwWidget close; + int maximized; + int minimized; + int x; + int y; + int width; + int height; }; struct _MwMouse { diff --git a/src/widget/subwindow.c b/src/widget/subwindow.c index d2cbb51a5..662cf624e 100644 --- a/src/widget/subwindow.c +++ b/src/widget/subwindow.c @@ -1,8 +1,12 @@ #include +#include "../../external/stb_ds.h" + #define TitleHeight 20 #define ButtonSize 14 +static void resize(MwWidget handle); + static void close_draw(MwWidget handle) { int w = MwGetInteger(handle, MwNwidth); int h = MwGetInteger(handle, MwNheight); @@ -25,6 +29,12 @@ static void close_draw(MwWidget handle) { MwLLFreeColor(c); } +static void MWAPI close_activate(MwWidget handle, void* user, void* client) { + MwWidget w = user; + + MwDispatchUserHandler(w, MwNcloseHandler, NULL); +} + static void maximize_draw(MwWidget handle) { int w = MwGetInteger(handle, MwNwidth); int h = MwGetInteger(handle, MwNheight); @@ -53,6 +63,36 @@ static void maximize_draw(MwWidget handle) { MwLLFreeColor(c); } +static void MWAPI maximize_activate(MwWidget handle, void* user, void* client) { + MwWidget w = user; + MwSubWindow sw = w->internal; + + if(sw->minimized) return; + + if(sw->maximized) { + MwVaApply(user, + MwNx, sw->x, + MwNy, sw->y, + MwNwidth, sw->width, + MwNheight, sw->height, + NULL); + } else { + sw->x = MwGetInteger(w, MwNx); + sw->y = MwGetInteger(w, MwNy); + sw->width = MwGetInteger(w, MwNwidth); + sw->height = MwGetInteger(w, MwNheight); + + MwVaApply(user, + MwNx, 0, + MwNy, 0, + MwNwidth, MwGetInteger(w->parent, MwNwidth), + MwNheight, MwGetInteger(w->parent, MwNheight), + NULL); + } + sw->maximized = !sw->maximized; + resize(user); +} + static void minimize_draw(MwWidget handle) { int w = MwGetInteger(handle, MwNwidth); int h = MwGetInteger(handle, MwNheight); @@ -69,6 +109,77 @@ static void minimize_draw(MwWidget handle) { MwLLFreeColor(c); } +static int sort_subwindow(const void* _a, const void* _b) { + MwWidget a = *(MwWidget*)_a; + MwWidget b = *(MwWidget*)_b; + int ax = MwGetInteger(a, MwNx); + int bx = MwGetInteger(b, MwNx); + + if(ax < bx) return -1; + if(ax > bx) return 1; + return 0; +} + +static void MWAPI minimize_activate(MwWidget handle, void* user, void* client) { + MwWidget w = user; + MwSubWindow sw = w->internal; + + if(sw->maximized) return; + + if(sw->minimized) { + int i; + MwWidget* ws = NULL; + int p = 0; + + for(i = 0; i < arrlen(w->parent->children); i++) { + arrput(ws, w->parent->children[i]); + } + + if(ws != NULL) { + qsort(ws, arrlen(ws), sizeof(*ws), sort_subwindow); + + for(i = 0; i < arrlen(ws); i++) { + if(p) { + MwVaApply(ws[i], + MwNx, MwGetInteger(ws[i], MwNx) - MwGetInteger(w, MwNwidth), + NULL); + } else if(ws[i] == w) { + p = 1; + } + } + } + arrfree(ws); + + MwVaApply(user, + MwNx, sw->x, + MwNy, sw->y, + NULL); + } else { + int x = 0; + int i; + + for(i = 0; i < arrlen(w->parent->children); i++) { + MwWidget c = w->parent->children[i]; + + if(c->widget_class == MwSubWindowClass) { + MwSubWindow cw = c->internal; + + if(cw->minimized) x += MwGetInteger(c, MwNwidth); + } + } + + sw->x = MwGetInteger(w, MwNx); + sw->y = MwGetInteger(w, MwNy); + + MwVaApply(user, + MwNx, x, + MwNy, MwGetInteger(w->parent, MwNheight) - TitleHeight - MwDefaultBorderWidth(handle), + NULL); + } + sw->minimized = !sw->minimized; + resize(user); +} + static void resize(MwWidget handle) { MwSubWindow sw = handle->internal; int x, y, w, h; @@ -103,6 +214,7 @@ static void resize(MwWidget handle) { if(sw->name == NULL) { \ sw->name = MwCreateWidget(MwButtonClass, #name, handle, x, y, w, h); \ sw->name->draw_inject = name##_draw; \ + MwAddUserHandler(sw->name, MwNactivateHandler, name##_activate, handle); \ } else { \ MwVaApply(sw->name, \ MwNx, x, \ @@ -116,14 +228,14 @@ static void resize(MwWidget handle) { BUTTON(close); BUTTON(maximize); BUTTON(minimize); - - MwSetText(sw->frame, MwNbackground, "#f00"); } static int wcreate(MwWidget handle) { MwSubWindow sw = malloc(sizeof(*sw)); memset(sw, 0, sizeof(*sw)); + sw->maximized = 0; + sw->minimized = 0; handle->internal = sw; resize(handle); From 9bfa4f4092f62f8ba6f9300deae3e6dff5db9bac Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sat, 2 May 2026 02:00:51 +0900 Subject: [PATCH 641/836] some fix --- examples/basic/periodic.c | 2 +- examples/basic/subwindow.c | 49 ++++++++++++++++ include/Mw/Widget/SubWindow.h | 11 ++++ pl/rules.pl | 1 + src/backend/x11.c | 52 +++++++++++++++-- src/widget/subwindow.c | 103 ++++++++++++++++++++++++++-------- 6 files changed, 189 insertions(+), 29 deletions(-) create mode 100644 examples/basic/subwindow.c diff --git a/examples/basic/periodic.c b/examples/basic/periodic.c index 2fd4e4bf5..a1c36b2f3 100644 --- a/examples/basic/periodic.c +++ b/examples/basic/periodic.c @@ -317,7 +317,7 @@ int main() { NULL); add(f); MwVaCreateWidget(MwSubWindowClass, "swnd", MwViewportGetViewport(w), 64, 64, 256, 128, - MwNtitle, "Sub window", + MwNtitle, "Sub window 2", NULL); add(f); #endif diff --git a/examples/basic/subwindow.c b/examples/basic/subwindow.c new file mode 100644 index 000000000..1225f41f0 --- /dev/null +++ b/examples/basic/subwindow.c @@ -0,0 +1,49 @@ +#include + +static void resize(MwWidget handle, void* user, void* client) { + MwWidget f = MwSubWindowGetFrame(handle); + MwVaApply(user, + MwNwidth, MwGetInteger(f, MwNwidth), + MwNheight, MwGetInteger(f, MwNheight), + NULL); +} + +int main() { + MwWidget w; + int i; + MwLLPixmap px[6]; + + MwLibraryInit(); + + w = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 800, 600, + MwNtitle, "subwindow", + NULL); + + px[0] = MwLoadIcon(w, MwIconClock); + px[1] = MwLoadIcon(w, MwIconError); + px[2] = MwLoadIcon(w, MwIconInfo); + px[3] = MwLoadIcon(w, MwIconNews); + px[4] = MwLoadIcon(w, MwIconNote); + px[5] = MwLoadIcon(w, MwIconWarning); + + for(i = 0; i < 16; i++) { + char buf[32]; + MwWidget sw, f, img; + + sprintf(buf, "Sub window %d", i); + + sw = MwVaCreateWidget(MwSubWindowClass, "swnd", w, i * 32, i * 32, 128, 128, + MwNtitle, buf, + NULL); + + f = MwSubWindowGetFrame(sw); + + img = MwVaCreateWidget(MwImageClass, "img", f, 0, 0, MwGetInteger(f, MwNwidth), MwGetInteger(f, MwNheight), + MwNpixmap, px[rand() % 6], + NULL); + + MwAddUserHandler(sw, MwNresizeHandler, resize, img); + } + + MwLoop(w); +} diff --git a/include/Mw/Widget/SubWindow.h b/include/Mw/Widget/SubWindow.h index 38a1cdd3e..c7ce2e1f2 100644 --- a/include/Mw/Widget/SubWindow.h +++ b/include/Mw/Widget/SubWindow.h @@ -18,6 +18,17 @@ extern "C" { */ MWDECL MwClass MwSubWindowClass; +/*! + * @brief Get parent widget where widgets should be placed + * @param handle Widget + * @return Widget + */ +MwInline MwWidget MwSubWindowGetFrame(MwWidget handle) { + MwWidget out; + MwVaWidgetExecute(handle, "mwSubWindowGetFrame", &out); + return out; +} + #ifdef __cplusplus } #endif diff --git a/pl/rules.pl b/pl/rules.pl index 853400076..04f7ba55e 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -195,6 +195,7 @@ new_example("examples/basic/sevensegment"); new_example("examples/basic/calculator"); new_example("examples/basic/filechooser"); new_example("examples/basic/periodic"); +new_example("examples/basic/subwindow"); if (param_get("opengl")) { new_example("examples/gldemos/boing", $gl_libs); diff --git a/src/backend/x11.c b/src/backend/x11.c index f3cf98652..e9e24bdb4 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -4,6 +4,10 @@ #define ClipboardTimeout 100 +#ifdef USE_XRENDER +// #undef USE_XRENDER +#endif + static struct symtbl { void* lib_xlib; void* lib_xrender; @@ -75,6 +79,7 @@ static struct symtbl { XIC (*XCreateIC)(XIM, ...); void (*XDestroyIC)(XIC); void (*XSetICFocus)(XIC); + XImage* (*XGetImage)(Display*, Drawable, int, int, unsigned int, unsigned int, unsigned long, int); XSizeHints* (*XAllocSizeHints)(void); XVisualInfo* (*XGetVisualInfo)(Display*, long, XVisualInfo*, int*); @@ -176,6 +181,7 @@ static struct symtbl { #define XQueryTree xsymtbl.XQueryTree #define XPending xsymtbl.XPending #define XChangeWindowAttributes xsymtbl.XChangeWindowAttributes +#define XGetImage xsymtbl.XGetImage #if USE_XRENDER #define XRenderFindStandardFormat xsymtbl.XRenderFindStandardFormat @@ -919,7 +925,7 @@ static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int wid #endif r->x11.image = XCreateImage(handle->x11.display, DefaultVisual(handle->x11.display, DefaultScreen(handle->x11.display)), r->x11.depth, ZPixmap, 0, NULL, width, height, 32, 0); - r->x11.mask = XCreateImage(handle->x11.display, DefaultVisual(handle->x11.display, DefaultScreen(handle->x11.display)), 1, ZPixmap, 0, NULL, width, height, 32, 0); + r->x11.mask = XCreateImage(handle->x11.display, DefaultVisual(handle->x11.display, DefaultScreen(handle->x11.display)), 8, ZPixmap, 0, NULL, width, height, 32, 0); r->x11.image->data = malloc(r->x11.image->bytes_per_line * height); r->x11.mask->data = malloc(r->x11.mask->bytes_per_line * height); @@ -948,7 +954,7 @@ static void MwLLPixmapUpdateImpl(MwLLPixmap r) { for(y = 0; y < r->common.height; y++) { for(x = 0; x < r->common.width; x++) { if(r->common.raw[(y * r->common.width + x) * 4 + 3]) { - XPutPixel(r->x11.mask, x, y, 1); + XPutPixel(r->x11.mask, x, y, 255); } else { XPutPixel(r->x11.mask, x, y, 0); } @@ -976,8 +982,8 @@ static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { \ XPutImage(handle->x11.display, src_px, gc, src, 0, 0, 0, 0, pixmap->common.width, pixmap->common.height); \ \ - src_pic = XRenderCreatePicture(handle->x11.display, src_px, fmt, 0, &attr); \ - dest_pic = XRenderCreatePicture(handle->x11.display, dest_px, fmt, 0, &attr); \ + src_pic = XRenderCreatePicture(handle->x11.display, src_px, fmt, render_mask, &attr); \ + dest_pic = XRenderCreatePicture(handle->x11.display, dest_px, fmt, render_mask, &attr); \ \ XRenderSetPictureTransform(handle->x11.display, src_pic, &m); \ XRenderComposite(handle->x11.display, PictOpSrc, src_pic, 0, dest_pic, 0, 0, 0, 0, 0, 0, rect->width, rect->height); \ @@ -996,11 +1002,16 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { #ifdef USE_XRENDER if(pixmap->x11.image != NULL && pixmap->x11.use_xrender) { Pixmap px; - Pixmap mask; + Pixmap mask, mask_tmp; XRenderPictureAttributes attr; XTransform m; double xsc; double ysc; + unsigned long render_mask = 0; + XImage* mask_tmp_img; + XImage* mask_img; + int y, x; + GC mask_gc; memset(&attr, 0, sizeof(attr)); @@ -1020,13 +1031,41 @@ static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { m.matrix[2][2] = XDoubleToFixed(1.0); DO_XRENDER(px, pixmap->x11.image, PictStandardRGB24, pixmap->x11.depth); - DO_XRENDER(mask, pixmap->x11.mask, PictStandardA1, 1); + DO_XRENDER(mask_tmp, pixmap->x11.mask, PictStandardA8, 8); + + /* FIXME: this is terrible way to do this... i hope someone who knows xrender better than me + * gives me better solution + */ + mask_tmp_img = XGetImage(handle->x11.display, mask_tmp, 0, 0, rect->width, rect->height, 0xff, ZPixmap); + mask_img = XCreateImage(handle->x11.display, DefaultVisual(handle->x11.display, DefaultScreen(handle->x11.display)), 1, ZPixmap, 0, NULL, rect->width, rect->height, 32, 0); + mask = XCreatePixmap(handle->x11.display, handle->x11.window, rect->width, rect->height, 1); + mask_gc = XCreateGC(handle->x11.display, mask, 0, NULL); + + mask_img->data = malloc(mask_img->bytes_per_line * rect->height); + + for(y = 0; y < rect->height; y++) { + for(x = 0; x < rect->width; x++) { + unsigned long p = XGetPixel(mask_tmp_img, x, y); + if(p == 255) { + p = 1; + } else { + p = 0; + } + XPutPixel(mask_img, x, y, p); + } + } + XPutImage(handle->x11.display, mask, mask_gc, mask_img, 0, 0, 0, 0, rect->width, rect->height); + XFreeGC(handle->x11.display, mask_gc); + XDestroyImage(mask_img); + XDestroyImage(mask_tmp_img); + /* end terrible hack */ XSetClipMask(handle->x11.display, handle->x11.gc, mask); XSetClipOrigin(handle->x11.display, handle->x11.gc, rect->x, rect->y); XCopyArea(handle->x11.display, px, handle->x11.pixmap, handle->x11.gc, 0, 0, rect->width, rect->height, rect->x, rect->y); XSetClipMask(handle->x11.display, handle->x11.gc, None); + XFreePixmap(handle->x11.display, mask_tmp); XFreePixmap(handle->x11.display, mask); XFreePixmap(handle->x11.display, px); } else @@ -1424,6 +1463,7 @@ static int MwLLX11CallInitImpl(void) { X11_FUNC_LOAD(XCreateIC); X11_FUNC_LOAD(XDestroyIC); X11_FUNC_LOAD(XSetICFocus); + X11_FUNC_LOAD(XGetImage); X11_FUNC_LOAD(XAllocSizeHints); X11_FUNC_LOAD(XGetVisualInfo); diff --git a/src/widget/subwindow.c b/src/widget/subwindow.c index 662cf624e..d4294e4de 100644 --- a/src/widget/subwindow.c +++ b/src/widget/subwindow.c @@ -20,18 +20,29 @@ static void close_draw(MwWidget handle) { p[1].y = h - bw * 2 - 1; MwLLLine(handle->lowlevel, p, c); + p[0].x++; + p[1].x--; + MwLLLine(handle->lowlevel, p, c); + p[0].x = w - bw * 2 - 1; p[0].y = bw * 2; p[1].x = bw * 2; p[1].y = h - bw * 2 - 1; MwLLLine(handle->lowlevel, p, c); + p[0].x--; + p[1].x++; + MwLLLine(handle->lowlevel, p, c); + MwLLFreeColor(c); } static void MWAPI close_activate(MwWidget handle, void* user, void* client) { MwWidget w = user; + (void)handle; + (void)client; + MwDispatchUserHandler(w, MwNcloseHandler, NULL); } @@ -51,6 +62,9 @@ static void maximize_draw(MwWidget handle) { p[0].y = p[1].y = h - bw * 2 - 1; MwLLLine(handle->lowlevel, p, c); + p[0].y = p[1].y = bw * 2 + 1; + MwLLLine(handle->lowlevel, p, c); + p[0].x = bw * 2; p[0].y = bw * 2; p[1].x = bw * 2; @@ -67,6 +81,9 @@ static void MWAPI maximize_activate(MwWidget handle, void* user, void* client) { MwWidget w = user; MwSubWindow sw = w->internal; + (void)handle; + (void)client; + if(sw->minimized) return; if(sw->maximized) { @@ -90,7 +107,6 @@ static void MWAPI maximize_activate(MwWidget handle, void* user, void* client) { NULL); } sw->maximized = !sw->maximized; - resize(user); } static void minimize_draw(MwWidget handle) { @@ -106,6 +122,10 @@ static void minimize_draw(MwWidget handle) { p[1].y = h - bw * 2 - 1; MwLLLine(handle->lowlevel, p, c); + p[0].y--; + p[1].y--; + MwLLLine(handle->lowlevel, p, c); + MwLLFreeColor(c); } @@ -124,6 +144,9 @@ static void MWAPI minimize_activate(MwWidget handle, void* user, void* client) { MwWidget w = user; MwSubWindow sw = w->internal; + (void)handle; + (void)client; + if(sw->maximized) return; if(sw->minimized) { @@ -132,7 +155,14 @@ static void MWAPI minimize_activate(MwWidget handle, void* user, void* client) { int p = 0; for(i = 0; i < arrlen(w->parent->children); i++) { - arrput(ws, w->parent->children[i]); + MwWidget c = w->parent->children[i]; + if(c->widget_class == MwSubWindowClass) { + MwSubWindow csw = c->internal; + + if(!csw->minimized) continue; + + arrput(ws, c); + } } if(ws != NULL) { @@ -177,7 +207,6 @@ static void MWAPI minimize_activate(MwWidget handle, void* user, void* client) { NULL); } sw->minimized = !sw->minimized; - resize(user); } static void resize(MwWidget handle) { @@ -228,6 +257,8 @@ static void resize(MwWidget handle) { BUTTON(close); BUTTON(maximize); BUTTON(minimize); + + MwDispatchUserHandler(handle, MwNresizeHandler, NULL); } static int wcreate(MwWidget handle) { @@ -246,7 +277,6 @@ static int wcreate(MwWidget handle) { } static void destroy(MwWidget handle) { - MwSubWindow sw = handle->internal; free(handle->internal); } @@ -278,6 +308,10 @@ static void draw(MwWidget handle) { handle->bgcolor = NULL; } + r2.width = ButtonSize * 3 + (TitleHeight - ButtonSize) / 2 * 4; + r2.x = r.width - r2.width; + MwDrawRect(handle, &r2, tb); + r.y += TitleHeight; r.height -= TitleHeight; MwDrawFrame(handle, &r, c, 1); @@ -287,32 +321,57 @@ static void draw(MwWidget handle) { MwLLFreeColor(c); } +static void parent_resize(MwWidget handle) { + MwSubWindow sw = handle->internal; + + if(sw->maximized) { + MwVaApply(handle, + MwNwidth, MwGetInteger(handle->parent, MwNwidth), + MwNheight, MwGetInteger(handle->parent, MwNheight), + NULL); + } else if(sw->minimized) { + MwVaApply(handle, + MwNy, MwGetInteger(handle->parent, MwNheight) - TitleHeight - MwDefaultBorderWidth(handle), + NULL); + } +} + static void prop_change(MwWidget handle, const char* key) { if(strcmp(key, MwNtitle) == 0) MwForceRender(handle); } +static MwWidget mwSubWindowGetFrameImpl(MwWidget handle) { + MwSubWindow sw = handle->internal; + + return sw->frame; +} + static void func_handler(MwWidget handle, const char* name, void* out, va_list va) { - (void)out; + (void)va; + + if(strcmp(name, "mwSubWindowGetFrame") == 0) { + *(MwWidget*)out = mwSubWindowGetFrameImpl(handle); + } } MwClassRec MwSubWindowClassRec = { - wcreate, /* create */ - destroy, /* destroy */ - draw, /* draw */ - NULL, /* click */ - NULL, /* parent_resize */ - prop_change, /* prop_change */ - NULL, /* mouse_move */ - NULL, /* mouse_up */ - NULL, /* mouse_down */ - NULL, /* key */ - func_handler, /* execute */ - NULL, /* tick */ - NULL, /* resize */ - NULL, /* children_update */ - NULL, /* children_prop_change */ - NULL, /* clipboard */ - NULL, /* props_change */ + wcreate, /* create */ + destroy, /* destroy */ + draw, /* draw */ + NULL, /* click */ + parent_resize, /* parent_resize */ + prop_change, /* prop_change */ + NULL, /* mouse_move */ + NULL, /* mouse_up */ + NULL, /* mouse_down */ + NULL, /* key */ + func_handler, /* execute */ + NULL, /* tick */ + resize, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, /* clipboard */ + NULL, /* props_change */ NULL, NULL, NULL}; From 5ac885e0822f4d6245709fe01600a7bbbb01bf63 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sat, 2 May 2026 02:03:44 +0900 Subject: [PATCH 642/836] title was missing --- doc/TIERS.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/TIERS.md b/doc/TIERS.md index c546bea01..c94cd6a6e 100644 --- a/doc/TIERS.md +++ b/doc/TIERS.md @@ -1,3 +1,5 @@ +# Tiers + Ports of Milsko are grouped into three "tiers" in terms of their support. - **Tier 1**: Before every new release of Milsko, these platforms will be tested to make sure they have full support, and the CI will test them. @@ -15,4 +17,4 @@ Tier 3 backends are: - Mac OS X 10.4+ with Cocoa - Mac OS 7-9, PowerPC (68k support not planned). -- Haiku \ No newline at end of file +- Haiku From ea20a316942fe44340a9ce440e574a06592a318d Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sat, 2 May 2026 03:54:47 +0900 Subject: [PATCH 643/836] introduce boolean attr to xml --- milsko.xml | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/milsko.xml b/milsko.xml index 94a68ac39..a69cf0bfd 100644 --- a/milsko.xml +++ b/milsko.xml @@ -70,33 +70,33 @@ - + - - + + - - - - - - - - + + + + + + + + - - + + - - - - + + + + - + From b1389692a1c0f4a8e36bf0a16a0aab1e09ef74fb Mon Sep 17 00:00:00 2001 From: Nishi Date: Sat, 2 May 2026 13:44:16 +0900 Subject: [PATCH 644/836] fix typo --- include/Mw/Draw.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/Mw/Draw.h b/include/Mw/Draw.h index 15bf655da..a9148f5b1 100644 --- a/include/Mw/Draw.h +++ b/include/Mw/Draw.h @@ -135,7 +135,7 @@ MWDECL void MWAPI MwPixmapReloadRaw(MwLLPixmap pixmap, unsigned char* rgb); /*! * @brief Gets the raw data of pixmap * @param pixmap Pixmap - * @return RFBA data + * @return RGBA data */ MWDECL unsigned char* MWAPI MwPixmapGetRaw(MwLLPixmap pixmap); From d05e121bf1bccfbe96fb0b3b5c4b5316e721f4ae Mon Sep 17 00:00:00 2001 From: Nishi Date: Sat, 2 May 2026 21:51:51 +0900 Subject: [PATCH 645/836] win32 fix --- examples/basic/subwindow.c | 4 +++- src/backend/gdi.c | 16 ++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/examples/basic/subwindow.c b/examples/basic/subwindow.c index 1225f41f0..c18efdf45 100644 --- a/examples/basic/subwindow.c +++ b/examples/basic/subwindow.c @@ -1,5 +1,7 @@ #include +#define Shift 16 + static void resize(MwWidget handle, void* user, void* client) { MwWidget f = MwSubWindowGetFrame(handle); MwVaApply(user, @@ -32,7 +34,7 @@ int main() { sprintf(buf, "Sub window %d", i); - sw = MwVaCreateWidget(MwSubWindowClass, "swnd", w, i * 32, i * 32, 128, 128, + sw = MwVaCreateWidget(MwSubWindowClass, "swnd", w, i * Shift, i * Shift, 128, 128, MwNtitle, buf, NULL); diff --git a/src/backend/gdi.c b/src/backend/gdi.c index db6090d9e..a0454becb 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -302,7 +302,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { if(parent == NULL) r->gdi.get_darktheme = 1; r->gdi.force_render = 0; r->gdi.grabbed = 0; - r->gdi.hWnd = CreateWindow("milsko", "Milsko", parent == NULL ? (WS_OVERLAPPEDWINDOW) : (WS_CHILD | WS_VISIBLE), x == MwDEFAULT ? CW_USEDEFAULT : x, y == MwDEFAULT ? CW_USEDEFAULT : y, width, height, parent == NULL ? NULL : parent->gdi.hWnd, 0, wc.hInstance, NULL); + r->gdi.hWnd = CreateWindow("milsko", "Milsko", parent == NULL ? (WS_OVERLAPPEDWINDOW) : (WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS), x == MwDEFAULT ? CW_USEDEFAULT : x, y == MwDEFAULT ? CW_USEDEFAULT : y, width, height, parent == NULL ? NULL : parent->gdi.hWnd, 0, wc.hInstance, NULL); r->gdi.hInstance = wc.hInstance; r->gdi.cursor = NULL; r->gdi.icon = NULL; @@ -328,6 +328,8 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { InvalidateRect(r->gdi.hWnd, NULL, FALSE); } + SetWindowPos(r->gdi.hWnd, NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); + return r; } @@ -372,10 +374,17 @@ static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLL static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { HPEN pen = CreatePen(PS_SOLID, 1, RGB(color->common.red, color->common.green, color->common.blue)); + RECT rc; + + rc.left = points[1].x; + rc.top = points[1].y; + rc.right = rc.left + 1; + rc.bottom = rc.top + 1; SelectObject(handle->gdi.hDC, pen); MoveToEx(handle->gdi.hDC, points[0].x, points[0].y, NULL); LineTo(handle->gdi.hDC, points[1].x, points[1].y); + FillRect(handle->gdi.hDC, &rc, color->gdi.brush); DeleteObject(pen); } @@ -428,12 +437,11 @@ static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsign } static void MwLLSetXYImpl(MwLL handle, int x, int y) { - SetWindowPos(handle->gdi.hWnd, NULL, x, y, 0, 0, SWP_NOSIZE); - InvalidateRect(handle->gdi.hWnd, NULL, FALSE); + SetWindowPos(handle->gdi.hWnd, NULL, x, y, 0, 0, SWP_NOSIZE | SWP_NOZORDER); } static void MwLLSetWHImpl(MwLL handle, int w, int h) { - SetWindowPos(handle->gdi.hWnd, NULL, 0, 0, w, h, SWP_NOMOVE); + SetWindowPos(handle->gdi.hWnd, NULL, 0, 0, w, h, SWP_NOMOVE | SWP_NOZORDER); InvalidateRect(handle->gdi.hWnd, NULL, FALSE); } From ab1dfc2e6016720f2c6f2f63b19b22b55fa87634 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sat, 2 May 2026 22:43:54 +0900 Subject: [PATCH 646/836] drag --- include/Mw/TypeDefs.h | 2 ++ src/widget/subwindow.c | 30 ++++++++++++++++++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index 7e75c81fd..3b7dffbbf 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -219,6 +219,8 @@ struct _MwSubWindow { int y; int width; int height; + MwPoint cursor_start; + MwPoint base; }; struct _MwMouse { diff --git a/src/widget/subwindow.c b/src/widget/subwindow.c index d4294e4de..b3ce52736 100644 --- a/src/widget/subwindow.c +++ b/src/widget/subwindow.c @@ -346,6 +346,17 @@ static MwWidget mwSubWindowGetFrameImpl(MwWidget handle) { return sw->frame; } +static void mouse_down(MwWidget handle, void* ptr) { + MwSubWindow sw = handle->internal; + MwMouse* m = ptr; + + if(m->button == MwMOUSE_LEFT) { + MwGetCursorCoord(handle, &sw->cursor_start); + sw->base.x = MwGetInteger(handle, MwNx); + sw->base.y = MwGetInteger(handle, MwNy); + } +} + static void func_handler(MwWidget handle, const char* name, void* out, va_list va) { (void)va; @@ -354,6 +365,21 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v } } +static void tick(MwWidget handle) { + MwSubWindow sw = handle->internal; + + if(handle->pressed) { + MwPoint p; + + MwGetCursorCoord(handle, &p); + + MwVaApply(handle, + MwNx, sw->base.x + p.x - sw->cursor_start.x, + MwNy, sw->base.y + p.y - sw->cursor_start.y, + NULL); + } +} + MwClassRec MwSubWindowClassRec = { wcreate, /* create */ destroy, /* destroy */ @@ -363,10 +389,10 @@ MwClassRec MwSubWindowClassRec = { prop_change, /* prop_change */ NULL, /* mouse_move */ NULL, /* mouse_up */ - NULL, /* mouse_down */ + mouse_down, /* mouse_down */ NULL, /* key */ func_handler, /* execute */ - NULL, /* tick */ + tick, /* tick */ resize, /* resize */ NULL, /* children_update */ NULL, /* children_prop_change */ From 1214cc085421bdc06b1d3079c9a2eacd947bf221 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 4 May 2026 00:01:17 +0900 Subject: [PATCH 647/836] a little bit better --- include/Mw/LowLevel/Haiku.h | 5 ++++- src/backend/haiku.cc | 44 ++++++++++++++++++++++++++++++++++++- 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/include/Mw/LowLevel/Haiku.h b/include/Mw/LowLevel/Haiku.h index 446dfddda..3a33b38b9 100644 --- a/include/Mw/LowLevel/Haiku.h +++ b/include/Mw/LowLevel/Haiku.h @@ -42,6 +42,8 @@ class MwView : public BView { void MessageReceived(BMessage* message); void PostMessage(BMessage* message); void PostMessage(uint32 command); + status_t SendMessage(BMessage* message); + status_t SendMessage(uint32 command); void Invalidate(); void AttachedToWindow(); @@ -88,7 +90,8 @@ enum BVIEW_MW_WHAT { BVIEW_MW_POLYGON, BVIEW_MW_LINE, BVIEW_MW_BITMAP, - BVIEW_MW_RENDER + BVIEW_MW_RENDER, + BVIEW_MW_GET_MOUSE }; enum BWIN_MW_WHAT { diff --git a/src/backend/haiku.cc b/src/backend/haiku.cc index 6017a3725..e58e160c8 100644 --- a/src/backend/haiku.cc +++ b/src/backend/haiku.cc @@ -178,6 +178,17 @@ void MwView::MessageReceived(BMessage* message) { this->Invalidate(); break; } + case BVIEW_MW_GET_MOUSE: + { + BPoint* p; + uint32 btn; + + if(message->FindPointer("view-ppoint", (void**)&p) != B_OK) break; + + this->GetMouse(p, &btn); + + break; + } default: { BView::MessageReceived(message); @@ -203,6 +214,24 @@ void MwView::PostMessage(uint32 command) { this->PostMessage(&msg); } +status_t MwView::SendMessage(BMessage* message) { + BMessage copy = *message; + BMessage reply; + MwLL top = this->handle; + + while(top->haiku.parent != NULL) top = top->haiku.parent; + + copy.AddPointer("window-view", this); + + return BMessenger(top->haiku.app->window).SendMessage(©, &reply); +} + +status_t MwView::SendMessage(uint32 command) { + BMessage msg(command); + + return this->SendMessage(&msg); +} + void MwView::Invalidate() { this->Draw(BRect(0, 0, 0, 0)); } @@ -700,7 +729,20 @@ void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_type) {} void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) {} -void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) {} +void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { + MwLL top = handle; + BMessage msg(BVIEW_MW_GET_MOUSE); + BPoint p; + while(top->haiku.parent != NULL) { + top = top->haiku.parent; + } + + msg.AddPointer("view-ppoint", &p); + top->haiku.view->SendMessage(&msg); + + point->x = p.x; + point->y = p.y; +} void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { BScreen* screen = new BScreen(); From 3b0f5faa57c0c64a0b89835c4bd611412bc5453f Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 4 May 2026 12:37:27 +0900 Subject: [PATCH 648/836] improve tick system --- include/Mw/TypeDefs.h | 3 ++- src/core.c | 29 +++++++++++++++-------------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index 3b7dffbbf..6d5c1fa27 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -113,7 +113,8 @@ struct _MwWidget { int top_step; MwWidget* draw_queue; - int berserk; + int berserk; + long last_tick; }; #endif diff --git a/src/core.c b/src/core.c index b6343b909..0cf54e953 100644 --- a/src/core.c +++ b/src/core.c @@ -211,7 +211,9 @@ static MwWidget MwCreateWidget_Internal(MwClass widget_class, const char* name, h->tick_list = NULL; h->destroyed = 0; h->bgcolor = NULL; - h->berserk = 0; + + h->berserk = 0; + h->last_tick = MwTimeGetTick(); h->internal = NULL; h->opaque = NULL; @@ -222,9 +224,7 @@ static MwWidget MwCreateWidget_Internal(MwClass widget_class, const char* name, if(parent == NULL) arrput(h->tick_list, h); -#ifdef PERIODIC if(parent == NULL) h->top_step = 1; -#endif if(h->lowlevel != NULL) { h->lowlevel->common.user = h; @@ -453,19 +453,26 @@ static void clean_destroy_queue(MwWidget handle) { } static void MwAfterStep(MwWidget handle) { + int i; + #ifdef PERIODIC if(handle->top_step) { - int i; - for(i = 0; i < arrlen(handle->draw_queue); i++) { DRAW(handle->draw_queue[i]); } arrfree(handle->draw_queue); } -#else - (void)handle; #endif + + if(arrlen(handle->tick_list) > 0 && (MwTimeGetTick() - handle->last_tick) >= MwWaitMS) { + for(i = 0; i < arrlen(handle->tick_list); i++) { + MwDispatch(handle->tick_list[i], tick); + MwDispatchUserHandler(handle->tick_list[i], MwNtickHandler, NULL); + } + + handle->last_tick = MwTimeGetTick(); + } } int MwStep(MwWidget handle) { @@ -500,12 +507,11 @@ int MwPending(MwWidget handle) { for(i = 0; i < arrlen(handle->children); i++) { if(MwPending(handle->children[i])) return 1; } - return (arrlen(handle->destroy_queue) > 0) || (handle->widget_class == NULL ? 0 : MwLLPending(handle->lowlevel)); + return (arrlen(handle->tick_list) > 0 && (MwTimeGetTick() - handle->last_tick) >= MwWaitMS) || (arrlen(handle->destroy_queue) > 0) || (handle->widget_class == NULL ? 0 : MwLLPending(handle->lowlevel)); } void MwLoop(MwWidget handle) { long tick = MwTimeGetTick(); - int i; long wait = MwGetInteger(handle, MwNwaitMS); long over = 0; if(wait == MwDEFAULT) wait = MwWaitMS; @@ -518,11 +524,6 @@ void MwLoop(MwWidget handle) { } if(v != 0) break; - for(i = 0; i < arrlen(handle->tick_list); i++) { - MwDispatch(handle->tick_list[i], tick); - MwDispatchUserHandler(handle->tick_list[i], MwNtickHandler, NULL); - } - more = over % (wait / 2); t = (tick + wait - more) - (t2 = MwTimeGetTick()); if(t > 0) { From c43c4977801b14e169398417e44246deef8b8de2 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 4 May 2026 12:42:47 +0900 Subject: [PATCH 649/836] bugfix --- src/core.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core.c b/src/core.c index 0cf54e953..7248c62d4 100644 --- a/src/core.c +++ b/src/core.c @@ -1049,6 +1049,8 @@ void MwReparent(MwWidget handle, MwWidget new_parent) { MwDispatch(handle->parent, children_update); } + handle->top_step = 0; + MwForceRender(handle); } From e7d9edec279b1c1bbdb12c9011dfef6d5064700a Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 4 May 2026 12:47:24 +0900 Subject: [PATCH 650/836] bugfix --- src/core.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/core.c b/src/core.c index 7248c62d4..5a542b3e5 100644 --- a/src/core.c +++ b/src/core.c @@ -1049,7 +1049,11 @@ void MwReparent(MwWidget handle, MwWidget new_parent) { MwDispatch(handle->parent, children_update); } - handle->top_step = 0; + if(new_parent == NULL){ + handle->top_step = 1; + }else{ + handle->top_step = 0; + } MwForceRender(handle); } From 11069552dfb91c1cff48c4c0d39d4900b9c1f2e0 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 4 May 2026 19:24:09 +0900 Subject: [PATCH 651/836] raise --- include/Mw/LowLevel.h | 2 ++ include/Mw/LowLevel/Haiku.h | 8 ++++---- src/backend/call.c | 2 ++ src/backend/classicmacos.c | 4 ++++ src/backend/cocoa.m | 4 ++++ src/backend/gdi.c | 4 ++++ src/backend/haiku.cc | 12 ++++++++---- src/backend/wayland.c | 4 ++++ src/backend/x11.c | 17 ++++++++++++----- src/core.c | 4 ++-- src/lowlevel.c | 2 ++ src/widget/subwindow.c | 2 ++ 12 files changed, 50 insertions(+), 15 deletions(-) diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index dee33a243..494e4cdcd 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -328,6 +328,8 @@ MWDECL void (*MwLLSetDarkTheme)(MwLL handle, int toggle); */ MWDECL MwBool (*MwLLDoModern)(MwLL handle); +MWDECL void (*MwLLRaise)(MwLL handle); + /* font renderer */ MWDECL void MwFLSetup(void); diff --git a/include/Mw/LowLevel/Haiku.h b/include/Mw/LowLevel/Haiku.h index 3a33b38b9..504295eb6 100644 --- a/include/Mw/LowLevel/Haiku.h +++ b/include/Mw/LowLevel/Haiku.h @@ -39,12 +39,12 @@ class MwView : public BView { MwView(MwLL handle, BRect rc, uint32 resizingMode, uint32 flags); ~MwView(); - void MessageReceived(BMessage* message); - void PostMessage(BMessage* message); - void PostMessage(uint32 command); + void MessageReceived(BMessage* message); + void PostMessage(BMessage* message); + void PostMessage(uint32 command); status_t SendMessage(BMessage* message); status_t SendMessage(uint32 command); - void Invalidate(); + void Invalidate(); void AttachedToWindow(); void Draw(BRect updateRect); diff --git a/src/backend/call.c b/src/backend/call.c index 6e6c98fe5..122e26097 100644 --- a/src/backend/call.c +++ b/src/backend/call.c @@ -57,5 +57,7 @@ \ MwLLSetDarkTheme = MwLLSetDarkThemeImpl; \ MwLLDoModern = MwLLDoModernImpl; \ +\ + MwLLRaise = MwLLRaiseImpl; \ return 0; \ } diff --git a/src/backend/classicmacos.c b/src/backend/classicmacos.c index 602322054..4b09cd154 100644 --- a/src/backend/classicmacos.c +++ b/src/backend/classicmacos.c @@ -351,6 +351,10 @@ static MwBool MwLLDoModernImpl(MwLL handle) { return MwFALSE; } +static void MwLLRaiseImpl(MwLL handle) { + (void)handle; +} + static int MwLLClassicMacOSCallInitImpl(void) { InitGraf(&qd.thePort); InitFonts(); diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index 5b2d6da52..e1951c96a 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1164,6 +1164,10 @@ static MwBool MwLLDoModernImpl(MwLL handle) { return MwTRUE; } +static void MwLLRaiseImpl(MwLL handle) { + (void)handle; +} + static int MwLLCocoaCallInitImpl(void) { #ifndef __APPLE__ printf("Using GNUStep Backend\n"); diff --git a/src/backend/gdi.c b/src/backend/gdi.c index a0454becb..dad0b5a13 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -878,6 +878,10 @@ static MwBool MwLLDoModernImpl(MwLL handle) { return MwTRUE; } +static void MwLLRaiseImpl(MwLL handle) { + (void)handle; +} + static int MwLLGDICallInitImpl(void) { void* ntdll; diff --git a/src/backend/haiku.cc b/src/backend/haiku.cc index e58e160c8..03c755b2f 100644 --- a/src/backend/haiku.cc +++ b/src/backend/haiku.cc @@ -181,7 +181,7 @@ void MwView::MessageReceived(BMessage* message) { case BVIEW_MW_GET_MOUSE: { BPoint* p; - uint32 btn; + uint32 btn; if(message->FindPointer("view-ppoint", (void**)&p) != B_OK) break; @@ -217,7 +217,7 @@ void MwView::PostMessage(uint32 command) { status_t MwView::SendMessage(BMessage* message) { BMessage copy = *message; BMessage reply; - MwLL top = this->handle; + MwLL top = this->handle; while(top->haiku.parent != NULL) top = top->haiku.parent; @@ -730,9 +730,9 @@ void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_type) {} void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) {} void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { - MwLL top = handle; + MwLL top = handle; BMessage msg(BVIEW_MW_GET_MOUSE); - BPoint p; + BPoint p; while(top->haiku.parent != NULL) { top = top->haiku.parent; } @@ -765,6 +765,10 @@ MwBool MwLLDoModernImpl(MwLL handle) { return MwTRUE; } +static void MwLLRaiseImpl(MwLL handle) { + (void)handle; +} + int MwLLHaikuCallInitImpl() { return 0; } diff --git a/src/backend/wayland.c b/src/backend/wayland.c index f554623ed..950e82074 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -2830,6 +2830,10 @@ static void MwLLSetDarkThemeImpl(MwLL handle, int toggle) { (void)toggle; } +static void MwLLRaiseImpl(MwLL handle) { + (void)handle; +} + static int MwLLWaylandCallInitImpl(void) { #ifdef __linux__ MwBool loadWayland = MwFALSE; diff --git a/src/backend/x11.c b/src/backend/x11.c index e9e24bdb4..29af5d656 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -80,6 +80,7 @@ static struct symtbl { void (*XDestroyIC)(XIC); void (*XSetICFocus)(XIC); XImage* (*XGetImage)(Display*, Drawable, int, int, unsigned int, unsigned int, unsigned long, int); + int (*XRaiseWindow)(Display*, Window); XSizeHints* (*XAllocSizeHints)(void); XVisualInfo* (*XGetVisualInfo)(Display*, long, XVisualInfo*, int*); @@ -182,6 +183,7 @@ static struct symtbl { #define XPending xsymtbl.XPending #define XChangeWindowAttributes xsymtbl.XChangeWindowAttributes #define XGetImage xsymtbl.XGetImage +#define XRaiseWindow xsymtbl.XRaiseWindow #if USE_XRENDER #define XRenderFindStandardFormat xsymtbl.XRenderFindStandardFormat @@ -1370,6 +1372,15 @@ static void MwLLSetDarkThemeImpl(MwLL handle, int toggle) { (void)toggle; } +static MwBool MwLLDoModernImpl(MwLL handle) { + (void)handle; + return MwTRUE; +} + +static void MwLLRaiseImpl(MwLL handle) { + XRaiseWindow(handle->x11.display, handle->x11.window); +} + static int MwLLX11CallInitImpl(void) { MwBool loadX11 = MwFALSE; if(getenv("MILSKO_BACKEND")) { @@ -1464,6 +1475,7 @@ static int MwLLX11CallInitImpl(void) { X11_FUNC_LOAD(XDestroyIC); X11_FUNC_LOAD(XSetICFocus); X11_FUNC_LOAD(XGetImage); + X11_FUNC_LOAD(XRaiseWindow); X11_FUNC_LOAD(XAllocSizeHints); X11_FUNC_LOAD(XGetVisualInfo); @@ -1491,10 +1503,5 @@ static int MwLLX11CallInitImpl(void) { return 0; } -static MwBool MwLLDoModernImpl(MwLL handle) { - (void)handle; - return MwTRUE; -} - #include "call.c" CALL(X11); diff --git a/src/core.c b/src/core.c index 5a542b3e5..d0341e020 100644 --- a/src/core.c +++ b/src/core.c @@ -1049,9 +1049,9 @@ void MwReparent(MwWidget handle, MwWidget new_parent) { MwDispatch(handle->parent, children_update); } - if(new_parent == NULL){ + if(new_parent == NULL) { handle->top_step = 1; - }else{ + } else { handle->top_step = 0; } diff --git a/src/lowlevel.c b/src/lowlevel.c index a0bc4596d..ea07510d3 100644 --- a/src/lowlevel.c +++ b/src/lowlevel.c @@ -55,6 +55,8 @@ void (*MwLLSetDarkTheme)(MwLL handle, int toggle) = NULL; MwBool (*MwLLDoModern)(MwLL handle) = NULL; +void (*MwLLRaise)(MwLL handle) = NULL; + void MwLLCreateCommon(MwLL handle) { handle->common.handler = malloc(sizeof(*handle->common.handler)); memset(handle->common.handler, 0, sizeof(*handle->common.handler)); diff --git a/src/widget/subwindow.c b/src/widget/subwindow.c index b3ce52736..5cdf55be1 100644 --- a/src/widget/subwindow.c +++ b/src/widget/subwindow.c @@ -355,6 +355,8 @@ static void mouse_down(MwWidget handle, void* ptr) { sw->base.x = MwGetInteger(handle, MwNx); sw->base.y = MwGetInteger(handle, MwNy); } + + MwLLRaise(handle->lowlevel); } static void func_handler(MwWidget handle, const char* name, void* out, va_list va) { From d24c948fbf013c8bef3ae4840ff6ac9db9dc4100 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 4 May 2026 19:26:52 +0900 Subject: [PATCH 652/836] windows impl --- src/backend/gdi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index dad0b5a13..239ea4d53 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -879,7 +879,7 @@ static MwBool MwLLDoModernImpl(MwLL handle) { } static void MwLLRaiseImpl(MwLL handle) { - (void)handle; + SetWindowPos(handle->gdi.hWnd, NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); } static int MwLLGDICallInitImpl(void) { From 0ae1d7e62539298726e60eeb9455335a78c862df Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 4 May 2026 20:13:57 +0900 Subject: [PATCH 653/836] raise --- src/widget/subwindow.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/widget/subwindow.c b/src/widget/subwindow.c index 5cdf55be1..fc53f1a07 100644 --- a/src/widget/subwindow.c +++ b/src/widget/subwindow.c @@ -44,6 +44,8 @@ static void MWAPI close_activate(MwWidget handle, void* user, void* client) { (void)client; MwDispatchUserHandler(w, MwNcloseHandler, NULL); + + MwLLRaise(w->lowlevel); } static void maximize_draw(MwWidget handle) { @@ -107,6 +109,8 @@ static void MWAPI maximize_activate(MwWidget handle, void* user, void* client) { NULL); } sw->maximized = !sw->maximized; + + MwLLRaise(w->lowlevel); } static void minimize_draw(MwWidget handle) { @@ -207,6 +211,8 @@ static void MWAPI minimize_activate(MwWidget handle, void* user, void* client) { NULL); } sw->minimized = !sw->minimized; + + MwLLRaise(w->lowlevel); } static void resize(MwWidget handle) { @@ -350,7 +356,7 @@ static void mouse_down(MwWidget handle, void* ptr) { MwSubWindow sw = handle->internal; MwMouse* m = ptr; - if(m->button == MwMOUSE_LEFT) { + if(m->button == MwMOUSE_LEFT && !sw->minimized && !sw->maximized) { MwGetCursorCoord(handle, &sw->cursor_start); sw->base.x = MwGetInteger(handle, MwNx); sw->base.y = MwGetInteger(handle, MwNy); @@ -370,7 +376,7 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v static void tick(MwWidget handle) { MwSubWindow sw = handle->internal; - if(handle->pressed) { + if(handle->pressed && !sw->minimized && !sw->maximized) { MwPoint p; MwGetCursorCoord(handle, &p); From 49294dc975ea17a33726069e4d9803ba228e66ff Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 4 May 2026 20:15:08 +0900 Subject: [PATCH 654/836] h --- src/widget/subwindow.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widget/subwindow.c b/src/widget/subwindow.c index fc53f1a07..9f86cd006 100644 --- a/src/widget/subwindow.c +++ b/src/widget/subwindow.c @@ -307,7 +307,7 @@ static void draw(MwWidget handle) { if(title != NULL) { MwPoint p; - p.x = r2.x + (TitleHeight - ButtonSize); + p.x = r2.x + (TitleHeight - ButtonSize) / 2; p.y = r2.y + TitleHeight / 2; handle->bgcolor = tb; MwDrawText(handle, NULL, &p, title, MwALIGNMENT_BEGINNING, tf); From a205120e9193baa94c32b6299267221159294a81 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 4 May 2026 13:08:03 -0700 Subject: [PATCH 655/836] wayland: slightly fix GetCursorCoordImpl --- src/backend/wayland.c | 9 +- test | 73827 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73831 insertions(+), 5 deletions(-) create mode 100644 test diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 950e82074..57fd0adc4 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -615,12 +615,11 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time WAYLAND_EVENT_OP_START(self); while(topmost_parent->wayland.parent) topmost_parent = topmost_parent->wayland.parent; - self->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); - self->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); - p.point = self->wayland.cur_mouse_pos; - MwLLDispatch(self, move, &p); - if(currentlyHeldWidget) { + self->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); + self->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); + p.point = self->wayland.cur_mouse_pos; + MwLLDispatch(self, move, &p); MwLLDispatch(currentlyHeldWidget, down, &p); } diff --git a/test b/test new file mode 100644 index 000000000..a98c5be7a --- /dev/null +++ b/test @@ -0,0 +1,73827 @@ + +⚠️ warning: /home/gavin/Sources/pwndbg/gdbinit.py: No such file or directory +❌️ /home/gavin/.gdbinit:4: Error in sourced command file: +No symbol table is loaded. Use the "file" command. +[2617572.987] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2) +[2617573.006] {Default Queue} -> wl_display#1.sync(new id wl_callback#3) +[2617573.166] {Display Queue} wl_display#1.delete_id(3) +[2617573.173] {Default Queue} wl_registry#2.global(1, "wl_compositor", 6) +[2617573.180] {Default Queue} -> wl_registry#2.bind(1, "wl_compositor", 1, new id [unknown]#4) +[2617573.185] {Default Queue} wl_registry#2.global(2, "wl_subcompositor", 1) +[2617573.190] {Default Queue} -> wl_registry#2.bind(2, "wl_subcompositor", 1, new id [unknown]#5) +[2617573.194] {Default Queue} wl_registry#2.global(3, "xdg_wm_base", 6) +[2617573.199] {Default Queue} -> wl_registry#2.bind(3, "xdg_wm_base", 1, new id [unknown]#6) +[2617573.203] {Default Queue} wl_registry#2.global(6, "zwlr_layer_shell_v1", 5) +[2617573.208] {Default Queue} wl_registry#2.global(7, "ext_session_lock_manager_v1", 1) +[2617573.212] {Default Queue} wl_registry#2.global(8, "wl_shm", 2) +[2617573.217] {Default Queue} -> wl_registry#2.bind(8, "wl_shm", 1, new id [unknown]#7) +[2617573.221] {Default Queue} -> wl_registry#2.bind(8, "wl_shm", 1, new id [unknown]#8) +[2617573.225] {Default Queue} -> wl_registry#2.bind(8, "wl_shm", 1, new id [unknown]#9) +[2617573.229] {Default Queue} wl_registry#2.global(9, "zxdg_output_manager_v1", 3) +[2617573.233] {Default Queue} wl_registry#2.global(10, "wp_fractional_scale_manager_v1", 1) +[2617573.238] {Default Queue} wl_registry#2.global(11, "zwp_tablet_manager_v2", 1) +[2617573.242] {Default Queue} wl_registry#2.global(12, "zwp_pointer_gestures_v1", 3) +[2617573.246] {Default Queue} wl_registry#2.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617573.251] {Default Queue} -> wl_registry#2.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#10) +[2617573.255] {Default Queue} wl_registry#2.global(14, "zwp_pointer_constraints_v1", 1) +[2617573.260] {Default Queue} -> wl_registry#2.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#11) +[2617573.264] {Default Queue} wl_registry#2.global(15, "ext_idle_notifier_v1", 2) +[2617573.268] {Default Queue} wl_registry#2.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617573.273] {Default Queue} wl_registry#2.global(17, "wl_data_device_manager", 3) +[2617573.277] {Default Queue} -> wl_registry#2.bind(17, "wl_data_device_manager", 2, new id [unknown]#12) +[2617573.282] {Default Queue} -> wl_data_device_manager#12.create_data_source(new id wl_data_source#13) +[2617573.292] {Default Queue} -> wl_data_source#13.offer("text/plain") +[2617573.305] {Default Queue} -> wl_data_source#13.offer("text/plain;charset=utf-8") +[2617573.309] {Default Queue} -> wl_data_source#13.offer("TEXT") +[2617573.313] {Default Queue} -> wl_data_source#13.offer("STRING") +[2617573.317] {Default Queue} -> wl_data_source#13.offer("UTF8_STRING") +[2617573.321] {Default Queue} wl_registry#2.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617573.326] {Default Queue} -> wl_registry#2.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#14) +[2617573.330] {Default Queue} -> zwp_primary_selection_device_manager_v1#14.create_source(new id zwp_primary_selection_source_v1#15) +[2617573.338] {Default Queue} -> zwp_primary_selection_source_v1#15.offer("text/plain") +[2617573.342] {Default Queue} -> zwp_primary_selection_source_v1#15.offer("text/plain;charset=utf-8") +[2617573.346] {Default Queue} -> zwp_primary_selection_source_v1#15.offer("TEXT") +[2617573.350] {Default Queue} -> zwp_primary_selection_source_v1#15.offer("STRING") +[2617573.354] {Default Queue} -> zwp_primary_selection_source_v1#15.offer("UTF8_STRING") +[2617573.358] {Default Queue} wl_registry#2.global(19, "zwlr_data_control_manager_v1", 2) +[2617573.362] {Default Queue} wl_registry#2.global(20, "ext_data_control_manager_v1", 1) +[2617573.366] {Default Queue} wl_registry#2.global(21, "wp_presentation", 2) +[2617573.370] {Default Queue} wl_registry#2.global(22, "wp_security_context_manager_v1", 1) +[2617573.381] {Default Queue} wl_registry#2.global(23, "zwp_text_input_manager_v3", 1) +[2617573.390] {Default Queue} wl_registry#2.global(24, "zwp_input_method_manager_v2", 1) +[2617573.394] {Default Queue} wl_registry#2.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617573.398] {Default Queue} wl_registry#2.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617573.403] {Default Queue} wl_registry#2.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617573.407] {Default Queue} wl_registry#2.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617573.411] {Default Queue} wl_registry#2.global(29, "ext_workspace_manager_v1", 1) +[2617573.415] {Default Queue} wl_registry#2.global(30, "zwlr_output_manager_v1", 4) +[2617573.420] {Default Queue} wl_registry#2.global(31, "zwlr_screencopy_manager_v1", 3) +[2617573.424] {Default Queue} wl_registry#2.global(32, "wp_viewporter", 1) +[2617573.428] {Default Queue} -> wl_registry#2.bind(32, "wp_viewporter", 1, new id [unknown]#16) +[2617573.433] {Default Queue} wl_registry#2.global(33, "zxdg_exporter_v2", 1) +[2617573.437] {Default Queue} wl_registry#2.global(34, "zxdg_importer_v2", 1) +[2617573.442] {Default Queue} wl_registry#2.global(36, "xdg_activation_v1", 1) +[2617573.446] {Default Queue} wl_registry#2.global(37, "mutter_x11_interop", 1) +[2617573.452] {Default Queue} wl_registry#2.global(38, "wl_seat", 9) +[2617573.457] {Default Queue} -> wl_registry#2.bind(38, "wl_seat", 1, new id [unknown]#17) +[2617573.461] {Default Queue} wl_registry#2.global(39, "wp_cursor_shape_manager_v1", 2) +[2617573.466] {Default Queue} wl_registry#2.global(40, "wl_output", 4) +[2617573.470] {Default Queue} -> wl_registry#2.bind(40, "wl_output", 1, new id [unknown]#18) +[2617573.475] {Default Queue} wl_callback#3.done(0) +[2617573.505] {Default Queue} -> wl_compositor#4.create_surface(new id wl_surface#3) +[2617573.510] {Default Queue} -> wl_compositor#4.create_surface(new id wl_surface#19) +[2617573.514] {Default Queue} -> wl_subcompositor#5.get_subsurface(new id wl_subsurface#20, wl_surface#3, wl_surface#19) +[2617573.521] {Default Queue} -> wl_subsurface#20.set_desync() +[2617573.525] {Default Queue} -> xdg_wm_base#6.get_xdg_surface(new id xdg_surface#21, wl_surface#19) +[2617573.530] {Default Queue} -> xdg_surface#21.get_toplevel(new id xdg_toplevel#22) +[2617573.534] {Default Queue} -> xdg_toplevel#22.set_title("Milsko App") +[2617573.538] {Default Queue} -> xdg_toplevel#22.set_app_id("MilskoWaylandApp") +[2617573.543] {Default Queue} -> wl_surface#19.commit() +[2617573.547] {Default Queue} -> wl_surface#3.commit() +[2617573.728] {Default Queue} discarded wl_shm#7.format(875709016) +[2617573.738] {Default Queue} discarded wl_shm#7.format(1) +[2617573.743] {Default Queue} discarded wl_shm#7.format(0) +[2617573.748] {Default Queue} discarded wl_shm#7.format(875708993) +[2617573.752] {Default Queue} discarded wl_shm#8.format(875709016) +[2617573.755] {Default Queue} discarded wl_shm#8.format(1) +[2617573.759] {Default Queue} discarded wl_shm#8.format(0) +[2617573.763] {Default Queue} discarded wl_shm#8.format(875708993) +[2617573.767] {Default Queue} discarded wl_shm#9.format(875709016) +[2617573.771] {Default Queue} discarded wl_shm#9.format(1) +[2617573.775] {Default Queue} discarded wl_shm#9.format(0) +[2617573.779] {Default Queue} discarded wl_shm#9.format(875708993) +[2617573.783] {Default Queue} wl_seat#17.capabilities(7) +[2617573.787] {Default Queue} -> wl_seat#17.get_keyboard(new id wl_keyboard#23) +[2617573.792] {Default Queue} -> wl_seat#17.get_pointer(new id wl_pointer#24) +[2617573.796] {Default Queue} -> wl_data_device_manager#12.get_data_device(new id wl_data_device#25, wl_seat#17) +[2617573.801] {Default Queue} -> zwp_primary_selection_device_manager_v1#14.get_device(new id zwp_primary_selection_device_v1#26, wl_seat#17) +[2617573.809] {Default Queue} wl_output#18.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617573.814] {Default Queue} wl_output#18.mode(3, 1280, 800, 60000) +[2617573.819] {Default Queue} xdg_toplevel#22.configure(616, 738, array[0]) +[2617573.828] {Default Queue} xdg_surface#21.configure(565) +[2617573.836] {Default Queue} -> xdg_surface#21.ack_configure(565) +[2617573.841] {Default Queue} -> wl_subsurface#20.set_position(5, 24) +[2617575.678] {Default Queue} -> wl_shm#7.create_pool(new id wl_shm_pool#27, fd 6, 2560000) +[2617575.692] {Default Queue} -> wl_shm#7.create_pool(new id wl_shm_pool#28, fd 7, 2560000) +[2617575.699] {Default Queue} -> wl_shm_pool#27.create_buffer(new id wl_buffer#29, 0, 800, 800, 3200, 0) +[2617575.707] {Default Queue} -> wl_shm_pool#28.create_buffer(new id wl_buffer#30, 0, 800, 800, 3200, 0) +[2617576.469] {Default Queue} -> wl_surface#3.attach(wl_buffer#29, 0, 0) +[2617576.478] {Default Queue} -> wl_surface#3.commit() +[2617577.358] {Default Queue} -> wl_surface#3.attach(wl_buffer#29, 0, 0) +[2617577.371] {Default Queue} -> wl_surface#3.commit() +[2617579.257] {Default Queue} -> wl_shm#8.create_pool(new id wl_shm_pool#31, fd 10, 2685960) +[2617579.273] {Default Queue} -> wl_shm#8.create_pool(new id wl_shm_pool#32, fd 11, 2685960) +[2617579.279] {Default Queue} -> wl_shm_pool#31.create_buffer(new id wl_buffer#33, 0, 810, 829, 3240, 0) +[2617579.285] {Default Queue} -> wl_shm_pool#32.create_buffer(new id wl_buffer#34, 0, 810, 829, 3240, 0) +[2617579.981] {Default Queue} -> wl_surface#19.attach(wl_buffer#33, 0, 0) +[2617579.988] {Default Queue} -> wl_surface#19.commit() +[2617580.753] {Default Queue} -> wl_surface#19.attach(wl_buffer#33, 0, 0) +[2617580.760] {Default Queue} -> wl_surface#19.commit() +[2617580.764] {Default Queue} -> wl_compositor#4.create_region(new id wl_region#35) +[2617580.769] {Default Queue} -> wl_compositor#4.create_region(new id wl_region#36) +[2617580.773] {Default Queue} -> wl_region#35.subtract(0, 0, 800, 800) +[2617580.778] {Default Queue} -> wl_region#35.add(0, 0, 0, 0) +[2617580.782] {Default Queue} -> wl_surface#19.set_opaque_region(wl_region#36) +[2617580.786] {Default Queue} -> wl_surface#19.set_input_region(wl_region#35) +[2617580.791] {Default Queue} -> wl_surface#3.set_opaque_region(wl_region#36) +[2617580.795] {Default Queue} -> wl_surface#3.set_input_region(wl_region#35) +[2617580.799] {Default Queue} -> wl_surface#3.damage(0, 0, 800, 800) +[2617583.170] {Default Queue} -> wl_surface#19.attach(wl_buffer#33, 0, 0) +[2617583.185] {Default Queue} -> wl_surface#19.commit() +[2617583.246] {Default Queue} -> wl_surface#19.attach(wl_buffer#33, 0, 0) +[2617583.254] {Default Queue} -> wl_surface#19.commit() +[2617583.357] {Default Queue} -> wl_surface#3.attach(wl_buffer#29, 0, 0) +[2617583.364] {Default Queue} -> wl_surface#3.commit() +[2617583.621] {Default Queue} -> wl_shm#9.create_pool(new id wl_shm_pool#37, fd 17, 640) +[2617583.639] {Default Queue} -> wl_shm#9.create_pool(new id wl_shm_pool#38, fd 18, 640) +[2617583.646] {Default Queue} -> wl_shm_pool#37.create_buffer(new id wl_buffer#39, 0, 10, 16, 40, 0) +[2617583.654] {Default Queue} -> wl_shm_pool#38.create_buffer(new id wl_buffer#40, 0, 10, 16, 40, 0) +[2617583.664] {Default Queue} -> wl_compositor#4.create_surface(new id wl_surface#41) +[2617583.668] {Default Queue} -> wl_surface#41.attach(wl_buffer#39, 0, 0) +[2617583.673] {Default Queue} -> wl_surface#41.commit() +[2617583.678] {Default Queue} -> wl_surface#41.attach(wl_buffer#39, 0, 0) +[2617583.682] {Default Queue} -> wl_surface#41.commit() +[2617583.843] {Default Queue} -> xdg_toplevel#22.set_title("Milsko Periodic Table") +[2617586.057] {Default Queue} -> wl_surface#3.damage(0, 0, 800, 800) +[2617586.066] {Default Queue} -> wl_surface#3.damage(0, 0, 800, 800) +[2617586.124] {Default Queue} -> wl_surface#19.attach(wl_buffer#33, 0, 0) +[2617586.132] {Default Queue} -> wl_surface#19.commit() +[2617586.190] {Default Queue} -> wl_surface#19.attach(wl_buffer#33, 0, 0) +[2617586.203] {Default Queue} -> wl_surface#19.commit() +[2617586.280] {Default Queue} -> wl_surface#3.attach(wl_buffer#29, 0, 0) +[2617586.289] {Default Queue} -> wl_surface#3.commit() +[2617586.365] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#42) +[2617586.371] {Default Queue} -> wl_display#1.sync(new id wl_callback#43) +[2617590.524] {Display Queue} wl_display#1.delete_id(43) +[2617590.547] {Default Queue} wl_keyboard#23.keymap(1, fd 6, 68213) +[2617591.750] {Default Queue} discarded wl_surface#3.enter(wl_output#18) +[2617591.762] {Default Queue} discarded wl_surface#19.enter(wl_output#18) +[2617591.768] {Default Queue} wl_registry#42.global(1, "wl_compositor", 6) +[2617591.775] {Default Queue} -> wl_registry#42.bind(1, "wl_compositor", 1, new id [unknown]#44) +[2617591.780] {Default Queue} wl_registry#42.global(2, "wl_subcompositor", 1) +[2617591.785] {Default Queue} -> wl_registry#42.bind(2, "wl_subcompositor", 1, new id [unknown]#45) +[2617591.790] {Default Queue} wl_registry#42.global(3, "xdg_wm_base", 6) +[2617591.794] {Default Queue} -> wl_registry#42.bind(3, "xdg_wm_base", 1, new id [unknown]#46) +[2617591.799] {Default Queue} wl_registry#42.global(6, "zwlr_layer_shell_v1", 5) +[2617591.803] {Default Queue} wl_registry#42.global(7, "ext_session_lock_manager_v1", 1) +[2617591.807] {Default Queue} wl_registry#42.global(8, "wl_shm", 2) +[2617591.812] {Default Queue} -> wl_registry#42.bind(8, "wl_shm", 1, new id [unknown]#47) +[2617591.816] {Default Queue} -> wl_registry#42.bind(8, "wl_shm", 1, new id [unknown]#48) +[2617591.821] {Default Queue} -> wl_registry#42.bind(8, "wl_shm", 1, new id [unknown]#49) +[2617591.825] {Default Queue} wl_registry#42.global(9, "zxdg_output_manager_v1", 3) +[2617591.829] {Default Queue} wl_registry#42.global(10, "wp_fractional_scale_manager_v1", 1) +[2617591.834] {Default Queue} wl_registry#42.global(11, "zwp_tablet_manager_v2", 1) +[2617591.838] {Default Queue} wl_registry#42.global(12, "zwp_pointer_gestures_v1", 3) +[2617591.842] {Default Queue} wl_registry#42.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617591.847] {Default Queue} -> wl_registry#42.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#50) +[2617591.851] {Default Queue} wl_registry#42.global(14, "zwp_pointer_constraints_v1", 1) +[2617591.855] {Default Queue} -> wl_registry#42.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#51) +[2617591.860] {Default Queue} wl_registry#42.global(15, "ext_idle_notifier_v1", 2) +[2617591.870] {Default Queue} wl_registry#42.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617591.875] {Default Queue} wl_registry#42.global(17, "wl_data_device_manager", 3) +[2617591.879] {Default Queue} -> wl_registry#42.bind(17, "wl_data_device_manager", 2, new id [unknown]#52) +[2617591.884] {Default Queue} -> wl_data_device_manager#52.create_data_source(new id wl_data_source#53) +[2617591.888] {Default Queue} -> wl_data_source#53.offer("text/plain") +[2617591.893] {Default Queue} -> wl_data_source#53.offer("text/plain;charset=utf-8") +[2617591.897] {Default Queue} -> wl_data_source#53.offer("TEXT") +[2617591.901] {Default Queue} -> wl_data_source#53.offer("STRING") +[2617591.905] {Default Queue} -> wl_data_source#53.offer("UTF8_STRING") +[2617591.909] {Default Queue} wl_registry#42.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617591.914] {Default Queue} -> wl_registry#42.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#54) +[2617591.918] {Default Queue} -> zwp_primary_selection_device_manager_v1#54.create_source(new id zwp_primary_selection_source_v1#55) +[2617591.926] {Default Queue} -> zwp_primary_selection_source_v1#55.offer("text/plain") +[2617591.930] {Default Queue} -> zwp_primary_selection_source_v1#55.offer("text/plain;charset=utf-8") +[2617591.934] {Default Queue} -> zwp_primary_selection_source_v1#55.offer("TEXT") +[2617591.938] {Default Queue} -> zwp_primary_selection_source_v1#55.offer("STRING") +[2617591.942] {Default Queue} -> zwp_primary_selection_source_v1#55.offer("UTF8_STRING") +[2617591.946] {Default Queue} wl_registry#42.global(19, "zwlr_data_control_manager_v1", 2) +[2617591.950] {Default Queue} wl_registry#42.global(20, "ext_data_control_manager_v1", 1) +[2617591.955] {Default Queue} wl_registry#42.global(21, "wp_presentation", 2) +[2617591.959] {Default Queue} wl_registry#42.global(22, "wp_security_context_manager_v1", 1) +[2617591.968] {Default Queue} wl_registry#42.global(23, "zwp_text_input_manager_v3", 1) +[2617591.975] {Default Queue} wl_registry#42.global(24, "zwp_input_method_manager_v2", 1) +[2617591.979] {Default Queue} wl_registry#42.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617591.984] {Default Queue} wl_registry#42.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617591.988] {Default Queue} wl_registry#42.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617591.992] {Default Queue} wl_registry#42.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617591.996] {Default Queue} wl_registry#42.global(29, "ext_workspace_manager_v1", 1) +[2617592.001] {Default Queue} wl_registry#42.global(30, "zwlr_output_manager_v1", 4) +[2617592.005] {Default Queue} wl_registry#42.global(31, "zwlr_screencopy_manager_v1", 3) +[2617592.009] {Default Queue} wl_registry#42.global(32, "wp_viewporter", 1) +[2617592.013] {Default Queue} wl_registry#42.global(33, "zxdg_exporter_v2", 1) +[2617592.018] {Default Queue} wl_registry#42.global(34, "zxdg_importer_v2", 1) +[2617592.022] {Default Queue} wl_registry#42.global(36, "xdg_activation_v1", 1) +[2617592.026] {Default Queue} wl_registry#42.global(37, "mutter_x11_interop", 1) +[2617592.030] {Default Queue} wl_registry#42.global(38, "wl_seat", 9) +[2617592.035] {Default Queue} -> wl_registry#42.bind(38, "wl_seat", 1, new id [unknown]#56) +[2617592.039] {Default Queue} wl_registry#42.global(39, "wp_cursor_shape_manager_v1", 2) +[2617592.043] {Default Queue} wl_registry#42.global(40, "wl_output", 4) +[2617592.048] {Default Queue} -> wl_registry#42.bind(40, "wl_output", 1, new id [unknown]#57) +[2617592.052] {Default Queue} wl_callback#43.done(0) +[2617592.056] {Default Queue} wl_keyboard#23.enter(566, wl_surface#19, array[0]) +[2617592.062] {Default Queue} wl_keyboard#23.modifiers(566, 0, 0, 16, 0) +[2617592.067] {Default Queue} wl_data_device#25.selection(nil) +[2617592.071] {Default Queue} zwp_primary_selection_device_v1#26.selection(nil) +[2617592.076] {Default Queue} -> wl_compositor#4.create_surface(new id wl_surface#43) +[2617592.080] {Default Queue} -> wl_subcompositor#45.get_subsurface(new id wl_subsurface#58, wl_surface#43, wl_surface#3) +[2617592.085] {Default Queue} -> wl_subsurface#58.set_desync() +[2617592.089] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617592.094] {Default Queue} -> wl_subsurface#58.place_above(wl_surface#3) +[2617592.138] {Default Queue} -> wl_shm#47.create_pool(new id wl_shm_pool#59, fd 10, 16) +[2617592.145] {Default Queue} -> wl_shm#47.create_pool(new id wl_shm_pool#60, fd 11, 16) +[2617592.149] {Default Queue} -> wl_shm_pool#59.create_buffer(new id wl_buffer#61, 0, 2, 2, 8, 0) +[2617592.154] {Default Queue} -> wl_shm_pool#60.create_buffer(new id wl_buffer#62, 0, 2, 2, 8, 0) +[2617592.162] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617592.167] {Default Queue} -> wl_surface#43.commit() +[2617592.172] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617592.176] {Default Queue} -> wl_surface#43.commit() +[2617592.180] {Default Queue} -> wl_compositor#44.create_region(new id wl_region#63) +[2617592.185] {Default Queue} -> wl_compositor#44.create_region(new id wl_region#64) +[2617592.189] {Default Queue} -> wl_region#63.subtract(0, 0, 2, 2) +[2617592.193] {Default Queue} -> wl_region#63.add(0, 0, 0, 0) +[2617592.198] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617592.202] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617592.206] {Default Queue} -> wl_surface#43.damage(0, 0, 2, 2) +[2617592.210] {Default Queue} -> wl_surface#3.damage(0, 0, 800, 800) +[2617592.218] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617592.222] {Default Queue} -> wl_surface#43.commit() +[2617592.259] {Default Queue} -> wl_shm#49.create_pool(new id wl_shm_pool#65, fd 19, 640) +[2617592.265] {Default Queue} -> wl_shm#49.create_pool(new id wl_shm_pool#66, fd 20, 640) +[2617592.270] {Default Queue} -> wl_shm_pool#65.create_buffer(new id wl_buffer#67, 0, 10, 16, 40, 0) +[2617592.274] {Default Queue} -> wl_shm_pool#66.create_buffer(new id wl_buffer#68, 0, 10, 16, 40, 0) +[2617592.285] {Default Queue} -> wl_compositor#44.create_surface(new id wl_surface#69) +[2617592.291] {Default Queue} -> wl_surface#69.attach(wl_buffer#67, 0, 0) +[2617592.296] {Default Queue} -> wl_surface#69.commit() +[2617592.301] {Default Queue} -> wl_surface#69.attach(wl_buffer#67, 0, 0) +[2617592.305] {Default Queue} -> wl_surface#69.commit() +[2617592.315] {Default Queue} -> wl_region#63.subtract(0, 0, 2, 2) +[2617592.319] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617592.324] {Default Queue} -> wl_region#63.subtract(0, 0, 2, 2) +[2617592.328] {Default Queue} -> wl_region#63.add(0, 0, 0, 0) +[2617592.332] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617592.336] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617592.340] {Default Queue} -> wl_surface#43.damage(0, 0, 2, 2) +[2617592.348] {Default Queue} -> wl_region#63.subtract(0, 0, 2, 2) +[2617592.354] {Default Queue} -> wl_region#63.add(0, 0, 2, 2) +[2617592.358] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617592.362] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617592.371] {Default Queue} -> wl_region#63.subtract(0, 0, 2, 2) +[2617592.375] {Default Queue} -> wl_region#63.add(0, 0, 2, 2) +[2617592.379] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617592.383] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617592.393] {Default Queue} -> wl_region#63.subtract(0, 0, 2, 2) +[2617592.398] {Default Queue} -> wl_region#63.add(0, 0, 2, 2) +[2617592.403] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617592.407] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617592.412] {Default Queue} -> wl_region#63.subtract(0, 0, 2, 2) +[2617592.416] {Default Queue} -> wl_region#63.add(0, 0, 2, 2) +[2617592.420] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617592.424] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617592.430] {Default Queue} -> wl_region#63.subtract(0, 0, 2, 2) +[2617592.434] {Default Queue} -> wl_region#63.add(0, 0, 2, 2) +[2617592.438] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617592.442] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617592.448] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617592.452] {Default Queue} -> wl_surface#43.commit() +[2617592.459] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617592.463] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617592.467] {Default Queue} -> wl_region#63.subtract(0, 0, 2, 2) +[2617592.471] {Default Queue} -> wl_region#63.add(0, 0, 2, 2) +[2617592.476] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617592.480] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617592.484] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617592.490] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617592.494] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617592.498] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617592.502] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617592.508] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617592.512] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617592.516] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617592.520] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617592.526] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617592.530] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617592.534] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617592.538] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617592.543] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617592.547] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617592.551] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617592.558] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617592.565] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617592.570] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617592.574] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617592.578] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617592.586] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617592.590] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617592.594] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617592.598] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617592.619] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617592.624] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617592.727] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617592.734] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617592.740] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617592.748] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617592.760] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617592.767] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617592.775] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617592.780] {Default Queue} -> wl_surface#43.commit() +[2617592.789] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617592.795] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617592.800] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617592.806] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617592.811] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617592.817] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617592.822] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617592.831] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617592.837] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617592.842] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617592.848] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617592.855] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617592.868] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617592.874] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617592.879] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617592.887] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617592.893] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617592.898] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617592.904] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617592.910] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617592.916] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617592.921] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617592.927] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617592.933] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617592.939] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617592.944] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617592.950] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617592.959] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617592.965] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617592.970] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617592.976] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617592.994] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617593.001] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617593.047] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.053] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.059] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.064] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.077] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617593.085] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617593.092] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617593.098] {Default Queue} -> wl_surface#43.commit() +[2617593.105] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.111] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617593.116] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.122] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.127] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.132] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.138] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617593.146] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.151] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.157] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.162] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.170] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.176] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.181] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.186] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.193] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.199] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.204] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.210] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.216] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.222] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.227] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.232] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.239] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.244] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.250] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.255] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.264] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.270] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.275] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.281] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.299] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617593.304] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617593.351] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.356] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.362] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.367] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.374] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617593.389] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617593.396] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617593.402] {Default Queue} -> wl_surface#43.commit() +[2617593.409] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.415] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617593.420] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.425] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.431] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.436] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.441] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617593.450] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.455] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.461] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.466] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.473] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.483] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.491] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.497] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.504] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.510] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.515] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.520] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.526] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.532] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.538] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.543] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.549] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.555] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.560] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.565] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.575] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.581] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.587] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.592] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.610] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617593.618] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617593.663] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.669] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.675] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.680] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.687] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617593.692] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617593.699] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617593.704] {Default Queue} -> wl_surface#43.commit() +[2617593.711] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.717] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617593.722] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.728] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.733] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.738] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.744] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617593.752] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.757] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.763] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.768] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.775] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.781] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.786] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.791] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.798] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.804] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.809] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.815] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.821] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.826] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.832] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.837] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.843] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.849] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.854] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.861] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.881] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.890] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.896] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.901] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.919] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617593.926] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617593.970] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617593.975] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617593.981] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617593.986] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617593.993] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617593.999] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617594.005] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617594.011] {Default Queue} -> wl_surface#43.commit() +[2617594.018] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.023] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617594.029] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.035] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.040] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.046] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.051] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617594.059] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.065] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.070] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.076] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.083] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.088] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.094] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.099] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.106] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.112] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.117] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.123] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.129] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.134] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.140] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.145] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.151] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.157] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.162] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.168] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.177] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.183] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.188] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.194] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.211] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617594.217] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617594.258] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.263] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.269] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.274] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.281] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617594.287] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617594.293] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617594.298] {Default Queue} -> wl_surface#43.commit() +[2617594.305] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.317] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617594.325] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.331] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.336] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.342] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.347] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617594.355] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.361] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.366] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.371] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.378] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.384] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.390] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.395] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.402] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.407] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.413] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.418] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.424] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.430] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.435] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.440] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.447] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.452] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.458] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.463] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.473] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.478] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.484] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.489] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.507] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617594.515] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617594.557] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.562] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.568] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.573] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.580] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617594.586] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617594.592] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617594.598] {Default Queue} -> wl_surface#43.commit() +[2617594.605] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.610] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617594.616] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.621] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.627] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.632] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.638] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617594.646] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.651] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.657] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.662] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.670] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.675] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.681] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.686] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.693] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.702] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.710] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.715] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.721] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.727] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.733] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.738] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.744] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.750] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.755] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.760] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.770] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.776] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.781] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.787] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.805] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617594.810] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617594.853] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.859] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.865] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.877] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.885] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617594.890] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617594.942] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.947] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617594.953] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617594.958] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617594.965] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617594.970] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617594.977] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617594.982] {Default Queue} -> wl_surface#43.commit() +[2617594.989] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617594.995] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617595.001] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.006] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.016] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.022] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.027] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617595.035] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.041] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.046] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.052] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.059] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.064] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.070] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.075] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.082] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.088] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.093] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.099] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.105] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.110] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.116] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.121] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.128] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.133] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.143] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.150] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.160] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.166] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.171] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.176] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.195] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617595.201] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617595.243] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.248] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.254] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.259] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.266] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617595.272] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617595.318] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.323] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.329] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.334] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.341] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617595.346] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617595.353] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617595.358] {Default Queue} -> wl_surface#43.commit() +[2617595.365] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.371] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617595.377] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.382] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.388] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.393] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.398] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617595.406] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.412] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.417] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.423] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.430] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.435] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.441] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.446] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.453] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.459] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.464] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.469] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.475] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.481] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.486] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.492] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.498] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.504] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.509] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.514] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.524] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.529] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.535] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.541] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.559] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617595.564] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617595.605] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.613] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.621] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.627] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.633] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617595.639] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617595.682] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.688] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.693] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.699] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.705] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617595.711] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617595.717] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617595.723] {Default Queue} -> wl_surface#43.commit() +[2617595.730] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.736] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617595.741] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.747] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.752] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.757] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.763] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617595.771] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.776] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.782] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.787] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.794] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.800] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.805] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.810] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.817] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.823] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.828] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.833] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.840] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.845] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.851] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.856] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.863] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.869] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.881] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.886] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.896] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.902] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.907] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.913] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617595.930] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617595.936] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617595.979] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617595.984] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617595.990] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617595.995] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.002] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617596.008] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617596.055] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.060] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.066] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.071] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.082] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617596.090] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617596.096] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617596.102] {Default Queue} -> wl_surface#43.commit() +[2617596.109] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.115] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617596.120] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.125] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.131] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.136] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.142] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617596.150] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.155] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.161] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.166] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.173] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.179] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.184] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.189] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.196] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.202] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.207] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.213] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.219] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.225] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.230] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.236] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.242] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.247] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.253] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.258] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.268] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.273] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.279] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.284] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.302] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617596.308] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617596.350] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.355] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.361] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.366] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.373] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617596.378] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617596.423] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.428] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.434] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.439] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.446] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617596.451] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617596.457] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617596.463] {Default Queue} -> wl_surface#43.commit() +[2617596.470] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.476] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617596.481] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.487] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.492] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.497] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.507] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617596.517] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.523] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.528] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.533] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.540] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.546] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.552] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.557] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.564] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.569] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.575] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.580] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.586] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.592] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.597] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.603] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.609] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.615] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.620] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.625] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.635] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.641] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.646] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.651] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.669] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617596.675] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617596.717] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.726] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.732] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.737] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.744] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617596.749] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617596.795] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.800] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.806] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.811] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.818] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617596.823] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617596.830] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617596.835] {Default Queue} -> wl_surface#43.commit() +[2617596.842] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.848] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617596.853] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.859] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.871] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.894] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.899] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617596.908] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.913] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.919] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.924] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.931] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.937] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.943] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.948] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.959] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.967] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.973] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617596.978] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617596.984] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617596.990] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617596.995] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.000] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.007] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.012] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617597.018] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.023] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.033] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.038] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617597.044] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.049] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.067] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617597.073] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617597.117] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.122] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617597.128] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.133] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.140] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617597.146] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617597.193] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.198] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617597.203] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.209] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.216] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617597.221] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617597.227] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617597.233] {Default Queue} -> wl_surface#43.commit() +[2617597.240] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.246] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617597.251] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.257] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617597.262] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.267] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.273] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617597.281] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.286] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617597.292] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.297] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.304] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.310] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617597.315] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.321] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.328] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.333] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617597.339] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.344] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.350] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.356] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617597.361] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.366] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.373] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.383] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617597.391] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.396] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.405] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.411] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617597.416] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.422] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.440] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617597.446] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617597.488] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.493] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617597.499] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.504] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.511] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617597.517] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617597.560] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.565] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617597.571] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.576] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.583] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617597.589] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617597.595] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617597.601] {Default Queue} -> wl_surface#43.commit() +[2617597.608] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.613] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617597.619] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.624] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617597.630] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.635] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.640] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617597.648] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.654] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617597.659] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.664] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.672] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.677] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617597.683] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.688] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.695] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.700] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617597.706] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.711] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.717] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.723] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617597.728] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.733] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.740] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.745] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617597.751] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.756] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.765] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.771] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617597.776] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.782] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.799] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617597.805] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617597.849] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.856] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617597.866] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.872] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.879] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617597.885] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617597.930] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.935] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617597.941] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617597.946] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617597.953] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617597.959] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617597.965] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617597.971] {Default Queue} -> wl_surface#43.commit() +[2617597.978] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.983] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617597.989] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617597.994] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.000] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.005] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.010] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617598.018] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.024] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.030] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.035] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.042] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.048] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.054] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.059] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.066] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.072] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.077] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.082] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.089] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.094] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.100] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.105] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.111] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.117] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.122] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.128] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.137] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.143] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.148] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.154] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.172] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617598.178] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617598.218] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.223] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.229] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.234] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.241] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617598.247] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617598.294] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.299] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.305] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.314] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.323] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617598.329] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617598.381] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.386] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.392] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.397] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.404] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617598.410] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617598.416] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617598.421] {Default Queue} -> wl_surface#43.commit() +[2617598.428] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.434] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617598.439] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.445] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.451] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.456] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.461] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617598.469] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.475] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.484] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.490] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.497] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.503] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.508] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.514] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.521] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.526] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.532] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.537] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.543] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.549] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.554] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.559] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.566] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.571] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.577] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.582] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.592] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.597] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.603] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.608] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.626] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617598.632] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617598.675] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.681] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.686] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.692] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.698] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617598.704] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617598.749] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.754] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.760] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.765] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.772] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617598.777] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617598.826] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.833] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.839] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.844] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.851] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617598.856] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617598.868] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617598.874] {Default Queue} -> wl_surface#43.commit() +[2617598.881] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.886] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617598.892] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.897] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.903] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.908] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.914] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617598.922] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.927] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.933] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.938] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.946] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.951] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.957] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.962] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.969] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.975] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617598.980] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617598.986] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617598.992] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617598.997] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.003] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.008] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.015] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.020] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.026] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.031] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.041] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.046] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.052] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.057] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.075] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617599.083] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617599.127] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.132] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.138] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.143] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.150] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617599.156] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617599.203] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.208] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.214] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.219] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.226] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617599.232] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617599.279] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.284] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.290] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.295] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.307] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617599.315] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617599.321] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617599.327] {Default Queue} -> wl_surface#43.commit() +[2617599.334] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.339] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617599.345] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.350] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.356] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.361] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.367] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617599.375] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.380] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.386] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.391] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.398] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.404] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.409] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.415] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.422] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.427] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.433] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.438] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.444] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.450] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.455] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.460] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.467] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.472] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.478] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.483] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.493] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.498] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.504] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.509] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.527] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617599.533] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617599.576] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.581] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.586] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.592] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.598] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617599.604] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617599.651] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.656] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.662] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.667] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.674] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617599.680] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617599.727] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.732] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.737] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.743] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.749] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617599.755] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617599.761] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617599.773] {Default Queue} -> wl_surface#43.commit() +[2617599.782] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.788] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617599.793] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.799] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.804] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.810] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.815] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617599.824] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.829] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.835] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.840] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.847] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.853] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.858] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.865] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.879] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.884] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.890] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.896] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.902] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.907] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.913] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.918] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.925] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.930] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.936] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.941] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.951] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617599.956] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617599.962] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617599.967] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617599.985] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617599.993] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617600.036] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.041] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617600.047] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617600.052] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617600.059] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617600.065] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617600.113] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.118] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617600.123] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617600.129] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617600.135] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617600.141] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617600.188] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.193] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617600.199] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617600.204] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617600.211] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617600.217] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617600.223] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617600.228] {Default Queue} -> wl_surface#43.commit() +[2617600.235] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.241] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617600.251] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.258] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617600.264] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617600.269] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617600.274] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617600.282] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.288] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617600.293] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617600.299] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617600.306] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.311] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617600.321] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617600.327] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617600.334] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.339] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617600.345] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617600.350] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617600.356] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.362] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617600.367] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617600.373] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617600.379] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.385] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617600.390] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617600.396] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617600.405] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.411] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617600.416] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617600.421] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617600.439] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617600.445] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617600.487] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.492] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617600.498] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617600.503] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617600.510] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617600.516] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617600.561] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.566] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617600.572] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617600.577] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617600.584] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617600.589] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617600.635] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.640] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617600.645] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617600.650] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617600.657] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617600.663] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617600.669] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617600.674] {Default Queue} -> wl_surface#43.commit() +[2617600.681] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.687] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617600.692] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.698] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617600.703] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617600.709] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617600.718] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617600.728] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.734] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617600.739] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617600.745] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617600.752] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.757] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617600.763] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617600.768] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617600.775] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.781] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617600.786] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617600.791] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617600.798] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.803] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617600.809] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617600.814] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617600.820] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.826] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617600.831] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617600.837] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617600.846] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.852] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617600.857] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617600.869] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617600.888] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617600.894] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617600.938] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617600.943] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617600.948] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617600.954] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617600.961] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617600.966] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617601.014] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.019] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617601.025] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617601.030] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617601.037] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617601.043] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617601.090] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.095] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617601.100] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617601.106] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617601.112] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617601.118] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617601.124] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617601.130] {Default Queue} -> wl_surface#43.commit() +[2617601.137] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.142] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617601.148] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.153] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617601.159] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617601.164] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617601.169] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617601.177] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.183] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617601.193] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617601.201] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617601.208] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.214] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617601.219] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617601.225] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617601.232] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.237] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617601.243] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617601.248] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617601.254] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.260] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617601.266] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617601.271] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617601.277] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.283] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617601.288] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617601.294] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617601.303] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.309] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617601.314] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617601.319] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617601.337] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617601.343] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617601.386] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.391] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617601.397] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617601.402] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617601.409] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617601.414] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617601.461] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.466] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617601.472] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617601.477] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617601.483] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617601.489] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617601.536] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.541] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617601.547] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617601.552] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617601.559] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617601.564] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617601.570] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617601.576] {Default Queue} -> wl_surface#43.commit() +[2617601.583] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.588] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617601.594] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.599] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617601.605] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617601.610] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617601.615] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617601.623] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.629] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617601.634] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617601.640] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617601.647] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.656] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617601.664] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617601.669] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617601.676] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.682] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617601.687] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617601.693] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617601.699] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.704] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617601.710] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617601.715] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617601.721] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.727] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617601.733] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617601.738] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617601.747] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.753] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617601.758] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617601.764] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617601.781] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617601.788] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617601.830] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.835] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617601.841] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617601.846] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617601.853] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617601.858] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617601.910] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.916] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617601.922] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617601.927] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617601.934] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617601.940] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617601.984] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617601.989] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617601.995] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.000] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.007] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.013] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.099] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.106] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617602.111] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.117] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.122] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.127] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.132] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617602.136] {Default Queue} -> wl_surface#43.commit() +[2617602.142] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.146] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617602.150] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.154] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617602.158] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.162] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.167] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.173] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.177] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617602.188] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.197] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.203] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.208] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617602.212] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.216] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.222] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.226] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617602.230] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.234] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.239] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.243] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617602.247] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.251] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.256] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.260] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617602.264] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.268] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.275] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.280] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617602.284] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.288] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.299] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.304] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.340] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.345] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617602.350] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.354] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.359] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.363] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.401] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.406] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617602.410] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.414] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.419] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.423] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.461] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.466] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617602.470] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.474] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.479] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.483] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.549] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.554] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617602.558] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.562] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.567] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.571] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.576] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617602.580] {Default Queue} -> wl_surface#43.commit() +[2617602.586] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.590] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617602.594] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.599] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617602.603] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.607] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.615] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.623] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.627] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617602.632] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.636] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.641] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.645] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617602.649] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.653] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.658] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.663] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617602.667] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.671] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.675] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.680] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617602.684] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.688] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.693] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.697] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617602.701] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.705] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.712] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.718] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617602.722] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.726] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.737] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.742] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.775] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.780] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617602.784] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.788] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.793] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.797] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.869] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.882] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617602.888] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.893] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.900] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.905] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.949] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617602.954] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617602.958] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617602.962] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617602.968] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617602.972] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.043] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.048] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.052] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.056] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.061] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.065] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.070] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617603.075] {Default Queue} -> wl_surface#43.commit() +[2617603.081] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.085] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617603.090] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.094] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.103] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.110] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.114] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.121] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.125] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.129] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.133] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.139] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.143] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.148] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.152] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.158] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.162] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.166] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.170] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.175] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.179] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.184] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.188] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.193] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.197] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.201] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.205] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.212] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.217] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.221] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.225] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.237] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.242] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.277] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.282] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.286] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.290] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.295] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.300] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.339] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.343] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.348] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.352] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.357] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.361] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.400] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.405] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.410] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.414] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.418] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.423] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.489] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.494] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.498] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.502] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.507] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.511] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.516] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617603.521] {Default Queue} -> wl_surface#43.commit() +[2617603.526] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.534] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617603.540] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.544] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.548] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.552] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.556] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.562] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.566] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.571] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.575] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.580] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.584] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.588] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.592] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.597] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.602] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.606] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.610] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.614] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.618] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.623] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.626] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.631] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.635] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.640] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.644] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.650] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.655] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.659] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.663] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.674] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.678] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.711] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.716] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.720] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.724] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.729] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.734] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.771] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.776] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.780] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.784] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.789] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.793] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.830] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.835] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.839] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.848] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.853] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.858] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.928] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.933] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.937] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.941] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.947] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.951] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617603.959] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617603.965] {Default Queue} -> wl_surface#43.commit() +[2617603.971] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.976] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617603.980] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617603.984] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617603.988] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617603.992] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617603.996] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.002] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.007] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.011] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.015] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.020] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.025] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.029] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.033] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.038] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.042] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.046] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.050] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.055] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.059] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.063] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.067] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.072] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.076] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.080] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.084] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.091] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.095] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.099] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.103] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.115] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.119] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.152] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.156] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.161] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.165] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.170] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.174] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.210] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.215] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.219] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.223] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.228] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.233] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.269] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.274] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.278] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.282] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.287] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.291] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.352] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.357] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.361] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.369] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.376] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.380] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.385] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617604.389] {Default Queue} -> wl_surface#43.commit() +[2617604.395] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.399] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617604.403] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.407] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.411] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.415] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.419] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.425] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.429] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.434] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.438] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.443] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.447] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.451] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.455] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.460] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.465] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.469] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.473] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.477] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.482] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.486] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.490] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.494] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.499] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.503] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.507] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.514] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.518] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.522] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.526] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.537] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.542] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.574] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.578] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.583] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.587] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.591] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.596] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.632] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.637] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.641] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.645] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.650] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.654] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.690] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.695] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.699] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.703] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.708] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.712] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.776] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.783] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.787] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.791] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.796] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.801] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.805] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617604.809] {Default Queue} -> wl_surface#43.commit() +[2617604.815] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.819] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617604.823] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.827] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.831] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.835] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.839] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.847] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.854] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.860] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.872] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.881] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.887] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.894] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.899] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.906] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.911] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.915] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.919] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.923] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.928] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.932] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.936] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.941] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.945] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.949] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.953] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.960] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617604.964] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617604.969] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617604.973] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617604.985] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617604.989] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.026] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.031] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.035] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.039] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.045] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.049] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.086] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.090] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.095] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.099] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.103] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.108] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.145] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.149] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.154] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.162] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.169] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.173] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.236] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.241] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.245] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.249] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.254] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.259] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.263] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617605.268] {Default Queue} -> wl_surface#43.commit() +[2617605.273] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.278] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617605.282] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.286] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.290] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.294] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.298] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.305] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.309] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.313] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.317] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.322] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.326] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.331] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.335] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.340] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.344] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.348] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.352] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.357] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.361] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.365] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.369] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.374] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.378] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.382] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.386] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.393] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.401] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.406] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.410] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.421] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.426] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.458] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.463] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.467] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.471] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.476] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.480] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.516] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.521] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.526] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.530] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.534] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.539] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.575] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.583] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.589] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.593] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.598] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.602] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.664] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.668] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.673] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.677] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.682] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.686] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.691] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617605.695] {Default Queue} -> wl_surface#43.commit() +[2617605.700] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.705] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617605.709] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.713] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.717] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.721] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.725] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.731] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.735] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.740] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.744] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.749] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.753] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.757] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.761] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.766] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.770] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.775] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.779] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.783] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.787] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.792] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.795] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.800] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.804] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.809] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.813] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.819] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.824] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.828] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.832] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.843] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.847] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.887] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.892] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.896] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.900] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.905] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.909] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.946] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617605.951] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617605.955] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617605.959] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617605.967] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617605.973] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.010] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.014] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.019] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.023] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.027] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.032] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.093] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.098] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.102] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.106] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.111] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.115] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.120] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617606.124] {Default Queue} -> wl_surface#43.commit() +[2617606.130] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.134] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617606.138] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.142] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.146] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.150] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.155] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.160] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.165] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.169] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.173] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.178] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.182] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.187] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.191] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.196] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.200] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.204] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.208] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.213] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.217] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.221] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.225] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.230] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.234] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.238] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.242] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.249] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.254] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.258] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.262] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.273] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.278] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.309] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.314] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.318] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.322] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.327] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.332] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.368] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.376] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.381] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.385] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.390] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.395] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.430] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.435] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.439] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.443] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.448] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.452] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.512] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.517] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.521] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.525] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.530] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.534] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.539] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617606.543] {Default Queue} -> wl_surface#43.commit() +[2617606.549] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.553] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617606.557] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.561] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.565] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.570] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.574] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.579] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.584] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.588] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.592] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.597] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.601] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.605] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.609] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.614] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.619] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.623] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.627] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.631] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.635] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.640] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.644] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.648] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.653] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.657] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.661] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.667] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.672] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.676] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.680] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.691] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.695] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.726] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.731] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.735] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.739] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.747] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.753] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.789] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.794] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.798] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.802] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.807] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.811] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.847] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.852] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.856] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.867] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.873] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.879] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.965] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617606.971] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617606.975] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617606.979] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617606.985] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.990] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617606.994] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617606.999] {Default Queue} -> wl_surface#43.commit() +[2617607.004] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.009] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617607.013] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.017] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.021] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.029] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.033] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.040] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.044] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.048] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.052] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.058] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.062] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.066] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.070] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.076] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.080] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.085] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.089] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.093] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.097] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.102] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.105] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.110] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.115] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.119] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.123] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.130] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.134] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.138] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.142] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.154] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.158] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.191] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.200] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.207] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.211] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.216] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.220] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.256] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.261] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.266] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.270] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.275] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.279] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.315] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.320] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.324] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.328] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.333] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.337] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.398] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.403] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.407] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.411] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.416] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.420] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.458] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.463] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.467] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.471] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.476] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.481] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.485] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617607.489] {Default Queue} -> wl_surface#43.commit() +[2617607.495] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.499] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617607.504] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.508] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.512] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.516] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.520] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.526] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.530] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.534] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.538] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.543] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.548] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.552] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.556] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.561] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.565] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.569] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.573] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.578] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.582] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.586] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.590] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.595] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.599] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.603] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.610] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.619] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.623] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.627] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.631] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.642] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.647] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.679] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.684] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.688] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.692] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.697] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.701] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.737] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.742] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.747] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.751] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.756] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.760] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.796] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.801] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.805] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.809] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.814] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.818] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.888] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.893] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.897] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.901] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.906] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.911] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.947] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.952] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617607.956] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617607.960] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617607.965] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.970] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617607.974] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617607.978] {Default Queue} -> wl_surface#43.commit() +[2617607.984] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.988] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617607.992] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617607.996] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.001] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.005] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.009] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.015] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.019] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.023] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.027] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.032] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.037] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.041] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.045] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.050] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.054] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.062] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.067] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.072] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.076] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.080] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.084] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.089] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.094] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.098] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.102] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.109] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.113] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.117] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.121] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.133] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.137] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.169] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.174] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.179] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.182] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.187] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.192] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.228] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.232] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.237] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.241] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.246] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.250] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.286] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.291] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.295] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.299] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.304] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.308] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.369] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.374] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.378] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.382] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.387] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.391] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.428] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.433] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.437] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.441] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.446] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.450] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.455] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617608.459] {Default Queue} -> wl_surface#43.commit() +[2617608.464] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.468] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617608.472] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.476] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.481] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.485] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.489] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.494] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.502] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.508] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.512] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.517] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.521] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.525] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.530] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.535] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.539] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.543] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.547] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.552] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.556] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.560] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.564] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.569] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.573] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.581] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.585] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.592] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.596] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.600] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.604] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.615] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.621] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.654] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.659] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.663] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.667] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.672] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.676] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.712] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.717] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.721] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.725] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.730] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.734] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.770] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.775] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.779] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.783] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.788] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.792] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.854] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.859] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.869] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.875] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.881] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.886] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.944] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.952] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617608.957] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617608.962] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617608.968] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.972] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617608.977] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617608.986] {Default Queue} -> wl_surface#43.commit() +[2617608.994] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617608.998] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617609.003] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617609.007] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617609.011] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617609.015] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617609.019] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617609.026] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617609.030] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617609.034] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617609.038] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617609.044] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617609.048] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617609.052] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617609.056] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617609.062] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617609.066] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617609.071] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617609.075] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617609.079] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617609.084] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617609.088] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617609.092] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617609.097] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617609.102] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617609.110] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617609.121] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617609.136] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617609.144] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617609.151] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617609.157] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617609.172] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617609.177] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617609.221] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617609.226] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617609.231] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617609.235] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617609.240] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617609.245] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617609.285] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617609.290] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617609.294] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617609.298] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617609.303] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617609.308] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617609.348] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617609.353] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617609.357] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617609.361] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617609.366] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617609.370] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617609.437] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617609.442] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617609.446] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617609.450] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617609.460] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617609.467] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617609.506] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617609.511] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617609.515] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617609.519] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617609.524] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617609.528] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617609.533] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617609.538] {Default Queue} -> wl_surface#43.commit() +[2617609.547] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#70) +[2617609.551] {Default Queue} -> wl_display#1.sync(new id wl_callback#71) +[2617609.570] {Default Queue} xdg_toplevel#22.configure(616, 738, array[4]) +[2617609.576] {Default Queue} -> wl_region#35.subtract(0, 0, 800, 800) +[2617609.580] {Default Queue} -> xdg_surface#21.set_window_geometry(0, 0, 616, 738) +[2617609.775] {Default Queue} -> wl_buffer#33.destroy() +[2617609.780] {Default Queue} -> wl_buffer#34.destroy() +[2617609.784] {Default Queue} -> wl_shm_pool#31.destroy() +[2617609.788] {Default Queue} -> wl_shm_pool#32.destroy() +[2617610.850] {Default Queue} -> wl_shm#8.create_pool(new id wl_shm_pool#72, fd 10, 1920568) +[2617610.858] {Default Queue} -> wl_shm#8.create_pool(new id wl_shm_pool#73, fd 11, 1920568) +[2617610.865] {Default Queue} -> wl_shm_pool#72.create_buffer(new id wl_buffer#74, 0, 626, 767, 2504, 0) +[2617610.870] {Default Queue} -> wl_shm_pool#73.create_buffer(new id wl_buffer#75, 0, 626, 767, 2504, 0) +[2617611.386] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) +[2617611.398] {Default Queue} -> wl_surface#19.commit() +[2617611.926] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) +[2617611.933] {Default Queue} -> wl_surface#19.commit() +[2617612.141] {Default Queue} -> wl_buffer#29.destroy() +[2617612.146] {Default Queue} -> wl_buffer#30.destroy() +[2617612.150] {Default Queue} -> wl_shm_pool#27.destroy() +[2617612.154] {Default Queue} -> wl_shm_pool#28.destroy() +[2617613.200] {Default Queue} -> wl_shm#7.create_pool(new id wl_shm_pool#76, fd 19, 1818432) +[2617613.216] {Default Queue} -> wl_shm#7.create_pool(new id wl_shm_pool#77, fd 20, 1818432) +[2617613.223] {Default Queue} -> wl_shm_pool#76.create_buffer(new id wl_buffer#78, 0, 616, 738, 2464, 0) +[2617613.229] {Default Queue} -> wl_shm_pool#77.create_buffer(new id wl_buffer#79, 0, 616, 738, 2464, 0) +[2617613.675] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) +[2617613.681] {Default Queue} -> wl_surface#3.commit() +[2617614.179] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) +[2617614.186] {Default Queue} -> wl_surface#3.commit() +[2617614.190] {Default Queue} -> wl_region#35.subtract(0, 0, 616, 738) +[2617614.195] {Default Queue} -> wl_region#35.add(0, 0, 0, 0) +[2617614.199] {Default Queue} -> wl_surface#19.set_opaque_region(wl_region#36) +[2617614.203] {Default Queue} -> wl_surface#19.set_input_region(wl_region#35) +[2617614.207] {Default Queue} -> wl_surface#3.set_opaque_region(wl_region#36) +[2617614.211] {Default Queue} -> wl_surface#3.set_input_region(wl_region#35) +[2617614.219] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617614.223] {Default Queue} -> wl_subsurface#58.set_position(0, 0) +[2617614.228] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) +[2617614.232] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) +[2617614.236] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617614.240] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617614.244] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617614.254] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2617614.259] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2617614.264] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617614.268] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617614.280] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2617614.289] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2617614.294] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617614.298] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617614.305] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2617614.309] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2617614.313] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617614.317] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617614.322] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2617614.326] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2617614.331] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617614.335] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617614.340] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2617614.344] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2617614.348] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617614.352] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617614.361] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2617614.366] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2617614.370] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617614.374] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617614.388] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617614.393] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617614.439] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2617614.444] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2617614.448] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617614.452] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617614.458] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617614.462] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617614.503] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2617614.508] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2617614.512] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617614.516] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617614.521] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617614.526] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617614.567] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2617614.572] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2617614.576] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617614.580] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617614.585] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617614.590] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617614.661] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2617614.666] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2617614.670] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617614.674] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617614.679] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617614.683] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617614.723] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2617614.728] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2617614.732] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617614.736] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617614.741] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617614.745] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) +[2617614.750] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) +[2617614.755] {Default Queue} -> wl_surface#43.commit() +[2617614.761] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2617614.765] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2617614.773] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617614.779] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617614.785] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2617614.789] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2617614.793] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617614.797] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617614.803] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2617614.807] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2617614.811] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617614.815] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617614.820] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2617614.824] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2617614.828] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617614.833] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617614.837] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2617614.842] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2617614.846] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617614.850] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617614.857] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2617614.868] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2617614.873] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617614.877] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617614.887] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2617614.891] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2617614.927] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2617614.933] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2617614.938] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617614.948] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617614.959] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2617614.965] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2617615.024] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2617615.031] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2617615.036] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617615.042] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617615.049] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2617615.055] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2617615.104] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2617615.109] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2617615.115] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617615.120] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617615.127] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2617615.132] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2617615.209] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2617615.218] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2617615.225] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617615.231] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617615.240] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2617615.246] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2617615.293] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2617615.298] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2617615.303] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2617615.307] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2617615.312] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2617615.316] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2617615.322] {Default Queue} xdg_surface#21.configure(568) +[2617615.326] {Default Queue} -> xdg_surface#21.ack_configure(568) +[2617616.908] {Default Queue} -> wl_surface#3.damage(0, 0, 616, 738) +[2617616.918] {Default Queue} -> wl_surface#3.damage(0, 0, 616, 738) +[2617616.966] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) +[2617616.974] {Default Queue} -> wl_surface#19.commit() +[2617617.047] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) +[2617617.060] {Default Queue} -> wl_surface#19.commit() +[2617617.104] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) +[2617617.112] {Default Queue} -> wl_surface#3.commit() +[2617617.152] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) +[2617617.158] {Default Queue} -> wl_surface#3.commit() +[2617617.200] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) +[2617617.208] {Default Queue} -> wl_surface#19.commit() +[2617617.213] {Default Queue} discarded wl_shm#47.format(875709016) +[2617617.218] {Default Queue} discarded wl_shm#47.format(1) +[2617617.223] {Default Queue} discarded wl_shm#47.format(0) +[2617617.228] {Default Queue} discarded wl_shm#47.format(875708993) +[2617617.233] {Default Queue} discarded wl_shm#48.format(875709016) +[2617617.238] {Default Queue} discarded wl_shm#48.format(1) +[2617617.243] {Default Queue} discarded wl_shm#48.format(0) +[2617617.248] {Default Queue} discarded wl_shm#48.format(875708993) +[2617617.253] {Default Queue} discarded wl_shm#49.format(875709016) +[2617617.258] {Default Queue} discarded wl_shm#49.format(1) +[2617617.263] {Default Queue} discarded wl_shm#49.format(0) +[2617617.268] {Default Queue} discarded wl_shm#49.format(875708993) +[2617617.273] {Default Queue} wl_seat#56.capabilities(7) +[2617617.279] {Default Queue} -> wl_seat#56.get_keyboard(new id wl_keyboard#80) +[2617617.285] {Default Queue} -> wl_seat#56.get_pointer(new id wl_pointer#81) +[2617617.290] {Default Queue} -> wl_data_device_manager#52.get_data_device(new id wl_data_device#82, wl_seat#56) +[2617617.296] {Default Queue} -> zwp_primary_selection_device_manager_v1#54.get_device(new id zwp_primary_selection_device_v1#83, wl_seat#56) +[2617617.306] {Default Queue} wl_output#57.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617617.313] {Default Queue} wl_output#57.mode(3, 1280, 800, 60000) +[2617617.319] {Default Queue} discarded wl_surface#3.enter(wl_output#57) +[2617617.325] {Default Queue} discarded wl_surface#19.enter(wl_output#57) +[2617617.330] {Default Queue} discarded wl_surface#43.enter(wl_output#18) +[2617617.335] {Default Queue} discarded wl_surface#43.enter(wl_output#57) +[2617653.117] {Display Queue} wl_display#1.delete_id(71) +[2617653.139] {Display Queue} wl_display#1.delete_id(33) +[2617653.144] {Display Queue} wl_display#1.delete_id(34) +[2617653.149] {Display Queue} wl_display#1.delete_id(31) +[2617653.153] {Display Queue} wl_display#1.delete_id(32) +[2617653.158] {Display Queue} wl_display#1.delete_id(29) +[2617653.162] {Display Queue} wl_display#1.delete_id(30) +[2617653.166] {Display Queue} wl_display#1.delete_id(27) +[2617653.171] {Display Queue} wl_display#1.delete_id(28) +[2617653.175] {Default Queue} wl_registry#70.global(1, "wl_compositor", 6) +[2617653.183] {Default Queue} -> wl_registry#70.bind(1, "wl_compositor", 1, new id [unknown]#28) +[2617653.189] {Default Queue} wl_registry#70.global(2, "wl_subcompositor", 1) +[2617653.194] {Default Queue} -> wl_registry#70.bind(2, "wl_subcompositor", 1, new id [unknown]#27) +[2617653.199] {Default Queue} wl_registry#70.global(3, "xdg_wm_base", 6) +[2617653.205] {Default Queue} -> wl_registry#70.bind(3, "xdg_wm_base", 1, new id [unknown]#30) +[2617653.211] {Default Queue} wl_registry#70.global(6, "zwlr_layer_shell_v1", 5) +[2617653.216] {Default Queue} wl_registry#70.global(7, "ext_session_lock_manager_v1", 1) +[2617653.220] {Default Queue} wl_registry#70.global(8, "wl_shm", 2) +[2617653.226] {Default Queue} -> wl_registry#70.bind(8, "wl_shm", 1, new id [unknown]#29) +[2617653.231] {Default Queue} -> wl_registry#70.bind(8, "wl_shm", 1, new id [unknown]#32) +[2617653.236] {Default Queue} -> wl_registry#70.bind(8, "wl_shm", 1, new id [unknown]#31) +[2617653.240] {Default Queue} wl_registry#70.global(9, "zxdg_output_manager_v1", 3) +[2617653.252] {Default Queue} wl_registry#70.global(10, "wp_fractional_scale_manager_v1", 1) +[2617653.264] {Default Queue} wl_registry#70.global(11, "zwp_tablet_manager_v2", 1) +[2617653.268] {Default Queue} wl_registry#70.global(12, "zwp_pointer_gestures_v1", 3) +[2617653.273] {Default Queue} wl_registry#70.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617653.278] {Default Queue} -> wl_registry#70.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#34) +[2617653.283] {Default Queue} wl_registry#70.global(14, "zwp_pointer_constraints_v1", 1) +[2617653.288] {Default Queue} -> wl_registry#70.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#33) +[2617653.293] {Default Queue} wl_registry#70.global(15, "ext_idle_notifier_v1", 2) +[2617653.297] {Default Queue} wl_registry#70.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617653.301] {Default Queue} wl_registry#70.global(17, "wl_data_device_manager", 3) +[2617653.307] {Default Queue} -> wl_registry#70.bind(17, "wl_data_device_manager", 2, new id [unknown]#84) +[2617653.312] {Default Queue} -> wl_data_device_manager#84.create_data_source(new id wl_data_source#85) +[2617653.317] {Default Queue} -> wl_data_source#85.offer("text/plain") +[2617653.322] {Default Queue} -> wl_data_source#85.offer("text/plain;charset=utf-8") +[2617653.326] {Default Queue} -> wl_data_source#85.offer("TEXT") +[2617653.330] {Default Queue} -> wl_data_source#85.offer("STRING") +[2617653.334] {Default Queue} -> wl_data_source#85.offer("UTF8_STRING") +[2617653.339] {Default Queue} wl_registry#70.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617653.344] {Default Queue} -> wl_registry#70.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#86) +[2617653.349] {Default Queue} -> zwp_primary_selection_device_manager_v1#86.create_source(new id zwp_primary_selection_source_v1#87) +[2617653.357] {Default Queue} -> zwp_primary_selection_source_v1#87.offer("text/plain") +[2617653.362] {Default Queue} -> zwp_primary_selection_source_v1#87.offer("text/plain;charset=utf-8") +[2617653.366] {Default Queue} -> zwp_primary_selection_source_v1#87.offer("TEXT") +[2617653.370] {Default Queue} -> zwp_primary_selection_source_v1#87.offer("STRING") +[2617653.375] {Default Queue} -> zwp_primary_selection_source_v1#87.offer("UTF8_STRING") +[2617653.379] {Default Queue} wl_registry#70.global(19, "zwlr_data_control_manager_v1", 2) +[2617653.384] {Default Queue} wl_registry#70.global(20, "ext_data_control_manager_v1", 1) +[2617653.389] {Default Queue} wl_registry#70.global(21, "wp_presentation", 2) +[2617653.393] {Default Queue} wl_registry#70.global(22, "wp_security_context_manager_v1", 1) +[2617653.397] {Default Queue} wl_registry#70.global(23, "zwp_text_input_manager_v3", 1) +[2617653.402] {Default Queue} wl_registry#70.global(24, "zwp_input_method_manager_v2", 1) +[2617653.406] {Default Queue} wl_registry#70.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617653.410] {Default Queue} wl_registry#70.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617653.415] {Default Queue} wl_registry#70.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617653.419] {Default Queue} wl_registry#70.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617653.423] {Default Queue} wl_registry#70.global(29, "ext_workspace_manager_v1", 1) +[2617653.428] {Default Queue} wl_registry#70.global(30, "zwlr_output_manager_v1", 4) +[2617653.432] {Default Queue} wl_registry#70.global(31, "zwlr_screencopy_manager_v1", 3) +[2617653.436] {Default Queue} wl_registry#70.global(32, "wp_viewporter", 1) +[2617653.441] {Default Queue} wl_registry#70.global(33, "zxdg_exporter_v2", 1) +[2617653.445] {Default Queue} wl_registry#70.global(34, "zxdg_importer_v2", 1) +[2617653.450] {Default Queue} wl_registry#70.global(36, "xdg_activation_v1", 1) +[2617653.454] {Default Queue} wl_registry#70.global(37, "mutter_x11_interop", 1) +[2617653.458] {Default Queue} wl_registry#70.global(38, "wl_seat", 9) +[2617653.463] {Default Queue} -> wl_registry#70.bind(38, "wl_seat", 1, new id [unknown]#88) +[2617653.468] {Default Queue} wl_registry#70.global(39, "wp_cursor_shape_manager_v1", 2) +[2617653.475] {Default Queue} wl_registry#70.global(40, "wl_output", 4) +[2617653.482] {Default Queue} -> wl_registry#70.bind(40, "wl_output", 1, new id [unknown]#89) +[2617653.487] {Default Queue} wl_callback#71.done(0) +[2617653.492] {Default Queue} -> wl_compositor#4.create_surface(new id wl_surface#71) +[2617653.496] {Default Queue} -> wl_subcompositor#27.get_subsurface(new id wl_subsurface#90, wl_surface#71, wl_surface#3) +[2617653.501] {Default Queue} -> wl_subsurface#90.set_desync() +[2617653.506] {Default Queue} -> wl_subsurface#90.set_position(0, 0) +[2617653.511] {Default Queue} -> wl_subsurface#90.place_above(wl_surface#3) +[2617653.564] {Default Queue} -> wl_shm#29.create_pool(new id wl_shm_pool#91, fd 19, 16) +[2617653.571] {Default Queue} -> wl_shm#29.create_pool(new id wl_shm_pool#92, fd 20, 16) +[2617653.576] {Default Queue} -> wl_shm_pool#91.create_buffer(new id wl_buffer#93, 0, 2, 2, 8, 0) +[2617653.581] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 2, 2, 8, 0) +[2617653.593] {Default Queue} -> wl_surface#71.attach(wl_buffer#93, 0, 0) +[2617653.598] {Default Queue} -> wl_surface#71.commit() +[2617653.603] {Default Queue} -> wl_surface#71.attach(wl_buffer#93, 0, 0) +[2617653.608] {Default Queue} -> wl_surface#71.commit() +[2617653.612] {Default Queue} -> wl_compositor#28.create_region(new id wl_region#95) +[2617653.617] {Default Queue} -> wl_compositor#28.create_region(new id wl_region#96) +[2617653.622] {Default Queue} -> wl_region#95.subtract(0, 0, 2, 2) +[2617653.627] {Default Queue} -> wl_region#95.add(0, 0, 0, 0) +[2617653.632] {Default Queue} -> wl_surface#71.set_opaque_region(wl_region#96) +[2617653.636] {Default Queue} -> wl_surface#71.set_input_region(wl_region#95) +[2617653.641] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) +[2617653.646] {Default Queue} -> wl_surface#3.damage(0, 0, 616, 738) +[2617653.659] {Default Queue} -> wl_surface#71.attach(wl_buffer#93, 0, 0) +[2617653.665] {Default Queue} -> wl_surface#71.commit() +[2617653.704] {Default Queue} -> wl_shm#31.create_pool(new id wl_shm_pool#97, fd 23, 640) +[2617653.711] {Default Queue} -> wl_shm#31.create_pool(new id wl_shm_pool#98, fd 24, 640) +[2617653.716] {Default Queue} -> wl_shm_pool#97.create_buffer(new id wl_buffer#99, 0, 10, 16, 40, 0) +[2617653.721] {Default Queue} -> wl_shm_pool#98.create_buffer(new id wl_buffer#100, 0, 10, 16, 40, 0) +[2617653.728] {Default Queue} -> wl_compositor#28.create_surface(new id wl_surface#101) +[2617653.733] {Default Queue} -> wl_surface#101.attach(wl_buffer#99, 0, 0) +[2617653.737] {Default Queue} -> wl_surface#101.commit() +[2617653.743] {Default Queue} -> wl_surface#101.attach(wl_buffer#99, 0, 0) +[2617653.747] {Default Queue} -> wl_surface#101.commit() +[2617653.757] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) +[2617653.766] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#102) +[2617653.773] {Default Queue} -> wl_display#1.sync(new id wl_callback#103) +[2617658.118] {Default Queue} wl_keyboard#80.keymap(1, fd 19, 68213) +[2617658.135] {Default Queue} wl_keyboard#80.enter(566, wl_surface#19, array[0]) +[2617658.144] {Default Queue} wl_keyboard#80.modifiers(566, 0, 0, 16, 0) +[2617663.114] {Display Queue} wl_display#1.delete_id(103) +[2617663.128] {Default Queue} discarded wl_shm#29.format(875709016) +[2617663.134] {Default Queue} discarded wl_shm#29.format(1) +[2617663.140] {Default Queue} discarded wl_shm#29.format(0) +[2617663.145] {Default Queue} discarded wl_shm#29.format(875708993) +[2617663.150] {Default Queue} discarded wl_shm#32.format(875709016) +[2617663.155] {Default Queue} discarded wl_shm#32.format(1) +[2617663.160] {Default Queue} discarded wl_shm#32.format(0) +[2617663.165] {Default Queue} discarded wl_shm#32.format(875708993) +[2617663.169] {Default Queue} discarded wl_shm#31.format(875709016) +[2617663.174] {Default Queue} discarded wl_shm#31.format(1) +[2617663.179] {Default Queue} discarded wl_shm#31.format(0) +[2617663.184] {Default Queue} discarded wl_shm#31.format(875708993) +[2617663.196] {Default Queue} wl_seat#88.capabilities(7) +[2617663.207] {Default Queue} -> wl_seat#88.get_keyboard(new id wl_keyboard#104) +[2617663.213] {Default Queue} -> wl_seat#88.get_pointer(new id wl_pointer#105) +[2617663.219] {Default Queue} -> wl_data_device_manager#84.get_data_device(new id wl_data_device#106, wl_seat#88) +[2617663.225] {Default Queue} -> zwp_primary_selection_device_manager_v1#86.get_device(new id zwp_primary_selection_device_v1#107, wl_seat#88) +[2617663.236] {Default Queue} wl_output#89.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617663.242] {Default Queue} wl_output#89.mode(3, 1280, 800, 60000) +[2617663.248] {Default Queue} discarded wl_surface#3.enter(wl_output#89) +[2617663.254] {Default Queue} discarded wl_surface#43.enter(wl_output#89) +[2617663.259] {Default Queue} discarded wl_surface#19.enter(wl_output#89) +[2617663.264] {Default Queue} wl_registry#102.global(1, "wl_compositor", 6) +[2617663.271] {Default Queue} -> wl_registry#102.bind(1, "wl_compositor", 1, new id [unknown]#108) +[2617663.277] {Default Queue} wl_registry#102.global(2, "wl_subcompositor", 1) +[2617663.283] {Default Queue} -> wl_registry#102.bind(2, "wl_subcompositor", 1, new id [unknown]#109) +[2617663.291] {Default Queue} wl_registry#102.global(3, "xdg_wm_base", 6) +[2617663.300] {Default Queue} -> wl_registry#102.bind(3, "xdg_wm_base", 1, new id [unknown]#110) +[2617663.310] {Default Queue} wl_registry#102.global(6, "zwlr_layer_shell_v1", 5) +[2617663.319] {Default Queue} wl_registry#102.global(7, "ext_session_lock_manager_v1", 1) +[2617663.328] {Default Queue} wl_registry#102.global(8, "wl_shm", 2) +[2617663.338] {Default Queue} -> wl_registry#102.bind(8, "wl_shm", 1, new id [unknown]#111) +[2617663.346] {Default Queue} -> wl_registry#102.bind(8, "wl_shm", 1, new id [unknown]#112) +[2617663.354] {Default Queue} -> wl_registry#102.bind(8, "wl_shm", 1, new id [unknown]#113) +[2617663.360] {Default Queue} wl_registry#102.global(9, "zxdg_output_manager_v1", 3) +[2617663.365] {Default Queue} wl_registry#102.global(10, "wp_fractional_scale_manager_v1", 1) +[2617663.371] {Default Queue} wl_registry#102.global(11, "zwp_tablet_manager_v2", 1) +[2617663.376] {Default Queue} wl_registry#102.global(12, "zwp_pointer_gestures_v1", 3) +[2617663.382] {Default Queue} wl_registry#102.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617663.387] {Default Queue} -> wl_registry#102.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#114) +[2617663.393] {Default Queue} wl_registry#102.global(14, "zwp_pointer_constraints_v1", 1) +[2617663.399] {Default Queue} -> wl_registry#102.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#115) +[2617663.404] {Default Queue} wl_registry#102.global(15, "ext_idle_notifier_v1", 2) +[2617663.410] {Default Queue} wl_registry#102.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617663.415] {Default Queue} wl_registry#102.global(17, "wl_data_device_manager", 3) +[2617663.421] {Default Queue} -> wl_registry#102.bind(17, "wl_data_device_manager", 2, new id [unknown]#116) +[2617663.426] {Default Queue} -> wl_data_device_manager#116.create_data_source(new id wl_data_source#117) +[2617663.432] {Default Queue} -> wl_data_source#117.offer("text/plain") +[2617663.437] {Default Queue} -> wl_data_source#117.offer("text/plain;charset=utf-8") +[2617663.442] {Default Queue} -> wl_data_source#117.offer("TEXT") +[2617663.447] {Default Queue} -> wl_data_source#117.offer("STRING") +[2617663.453] {Default Queue} -> wl_data_source#117.offer("UTF8_STRING") +[2617663.458] {Default Queue} wl_registry#102.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617663.464] {Default Queue} -> wl_registry#102.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#118) +[2617663.470] {Default Queue} -> zwp_primary_selection_device_manager_v1#118.create_source(new id zwp_primary_selection_source_v1#119) +[2617663.480] {Default Queue} -> zwp_primary_selection_source_v1#119.offer("text/plain") +[2617663.485] {Default Queue} -> zwp_primary_selection_source_v1#119.offer("text/plain;charset=utf-8") +[2617663.495] {Default Queue} -> zwp_primary_selection_source_v1#119.offer("TEXT") +[2617663.503] {Default Queue} -> zwp_primary_selection_source_v1#119.offer("STRING") +[2617663.508] {Default Queue} -> zwp_primary_selection_source_v1#119.offer("UTF8_STRING") +[2617663.513] {Default Queue} wl_registry#102.global(19, "zwlr_data_control_manager_v1", 2) +[2617663.519] {Default Queue} wl_registry#102.global(20, "ext_data_control_manager_v1", 1) +[2617663.524] {Default Queue} wl_registry#102.global(21, "wp_presentation", 2) +[2617663.530] {Default Queue} wl_registry#102.global(22, "wp_security_context_manager_v1", 1) +[2617663.535] {Default Queue} wl_registry#102.global(23, "zwp_text_input_manager_v3", 1) +[2617663.540] {Default Queue} wl_registry#102.global(24, "zwp_input_method_manager_v2", 1) +[2617663.546] {Default Queue} wl_registry#102.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617663.552] {Default Queue} wl_registry#102.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617663.557] {Default Queue} wl_registry#102.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617663.563] {Default Queue} wl_registry#102.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617663.568] {Default Queue} wl_registry#102.global(29, "ext_workspace_manager_v1", 1) +[2617663.574] {Default Queue} wl_registry#102.global(30, "zwlr_output_manager_v1", 4) +[2617663.579] {Default Queue} wl_registry#102.global(31, "zwlr_screencopy_manager_v1", 3) +[2617663.585] {Default Queue} wl_registry#102.global(32, "wp_viewporter", 1) +[2617663.590] {Default Queue} wl_registry#102.global(33, "zxdg_exporter_v2", 1) +[2617663.596] {Default Queue} wl_registry#102.global(34, "zxdg_importer_v2", 1) +[2617663.601] {Default Queue} wl_registry#102.global(36, "xdg_activation_v1", 1) +[2617663.607] {Default Queue} wl_registry#102.global(37, "mutter_x11_interop", 1) +[2617663.612] {Default Queue} wl_registry#102.global(38, "wl_seat", 9) +[2617663.618] {Default Queue} -> wl_registry#102.bind(38, "wl_seat", 1, new id [unknown]#120) +[2617663.624] {Default Queue} wl_registry#102.global(39, "wp_cursor_shape_manager_v1", 2) +[2617663.629] {Default Queue} wl_registry#102.global(40, "wl_output", 4) +[2617663.635] {Default Queue} -> wl_registry#102.bind(40, "wl_output", 1, new id [unknown]#121) +[2617663.641] {Default Queue} wl_callback#103.done(0) +[2617663.646] {Default Queue} discarded wl_surface#71.enter(wl_output#18) +[2617663.652] {Default Queue} discarded wl_surface#71.enter(wl_output#57) +[2617663.657] {Default Queue} discarded wl_surface#71.enter(wl_output#89) +[2617663.662] {Default Queue} -> wl_compositor#28.create_surface(new id wl_surface#103) +[2617663.667] {Default Queue} -> wl_subcompositor#109.get_subsurface(new id wl_subsurface#122, wl_surface#103, wl_surface#71) +[2617663.673] {Default Queue} -> wl_subsurface#122.set_desync() +[2617663.679] {Default Queue} -> wl_subsurface#122.set_position(0, 0) +[2617663.685] {Default Queue} -> wl_subsurface#122.place_above(wl_surface#71) +[2617663.740] {Default Queue} -> wl_shm#111.create_pool(new id wl_shm_pool#123, fd 24, 16) +[2617663.749] {Default Queue} -> wl_shm#111.create_pool(new id wl_shm_pool#124, fd 25, 16) +[2617663.756] {Default Queue} -> wl_shm_pool#123.create_buffer(new id wl_buffer#125, 0, 2, 2, 8, 0) +[2617663.762] {Default Queue} -> wl_shm_pool#124.create_buffer(new id wl_buffer#126, 0, 2, 2, 8, 0) +[2617663.773] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) +[2617663.780] {Default Queue} -> wl_surface#103.commit() +[2617663.787] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) +[2617663.792] {Default Queue} -> wl_surface#103.commit() +[2617663.798] {Default Queue} -> wl_compositor#108.create_region(new id wl_region#127) +[2617663.804] {Default Queue} -> wl_compositor#108.create_region(new id wl_region#128) +[2617663.810] {Default Queue} -> wl_region#127.subtract(0, 0, 2, 2) +[2617663.815] {Default Queue} -> wl_region#127.add(0, 0, 0, 0) +[2617663.821] {Default Queue} -> wl_surface#103.set_opaque_region(wl_region#128) +[2617663.827] {Default Queue} -> wl_surface#103.set_input_region(wl_region#127) +[2617663.836] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) +[2617663.844] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) +[2617663.853] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) +[2617663.869] {Default Queue} -> wl_surface#103.commit() +[2617663.913] {Default Queue} -> wl_shm#113.create_pool(new id wl_shm_pool#129, fd 28, 640) +[2617663.922] {Default Queue} -> wl_shm#113.create_pool(new id wl_shm_pool#130, fd 29, 640) +[2617663.928] {Default Queue} -> wl_shm_pool#129.create_buffer(new id wl_buffer#131, 0, 10, 16, 40, 0) +[2617663.934] {Default Queue} -> wl_shm_pool#130.create_buffer(new id wl_buffer#132, 0, 10, 16, 40, 0) +[2617663.943] {Default Queue} -> wl_compositor#108.create_surface(new id wl_surface#133) +[2617663.948] {Default Queue} -> wl_surface#133.attach(wl_buffer#131, 0, 0) +[2617663.954] {Default Queue} -> wl_surface#133.commit() +[2617663.961] {Default Queue} -> wl_surface#133.attach(wl_buffer#131, 0, 0) +[2617663.966] {Default Queue} -> wl_surface#133.commit() +[2617663.973] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) +[2617663.984] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#134) +[2617663.990] {Default Queue} -> wl_display#1.sync(new id wl_callback#135) +[2617673.211] {Display Queue} wl_display#1.delete_id(135) +[2617673.226] {Default Queue} wl_keyboard#104.keymap(1, fd 24, 68213) +[2617673.232] {Default Queue} wl_keyboard#104.enter(566, wl_surface#19, array[0]) +[2617673.237] {Default Queue} wl_keyboard#104.modifiers(566, 0, 0, 16, 0) +[2617673.243] {Default Queue} discarded wl_shm#111.format(875709016) +[2617673.247] {Default Queue} discarded wl_shm#111.format(1) +[2617673.251] {Default Queue} discarded wl_shm#111.format(0) +[2617673.255] {Default Queue} discarded wl_shm#111.format(875708993) +[2617673.259] {Default Queue} discarded wl_shm#112.format(875709016) +[2617673.264] {Default Queue} discarded wl_shm#112.format(1) +[2617673.269] {Default Queue} discarded wl_shm#112.format(0) +[2617673.274] {Default Queue} discarded wl_shm#112.format(875708993) +[2617673.278] {Default Queue} discarded wl_shm#113.format(875709016) +[2617673.282] {Default Queue} discarded wl_shm#113.format(1) +[2617673.286] {Default Queue} discarded wl_shm#113.format(0) +[2617673.290] {Default Queue} discarded wl_shm#113.format(875708993) +[2617673.294] {Default Queue} wl_seat#120.capabilities(7) +[2617673.299] {Default Queue} -> wl_seat#120.get_keyboard(new id wl_keyboard#136) +[2617673.304] {Default Queue} -> wl_seat#120.get_pointer(new id wl_pointer#137) +[2617673.309] {Default Queue} -> wl_data_device_manager#116.get_data_device(new id wl_data_device#138, wl_seat#120) +[2617673.314] {Default Queue} -> zwp_primary_selection_device_manager_v1#118.get_device(new id zwp_primary_selection_device_v1#139, wl_seat#120) +[2617673.322] {Default Queue} wl_output#121.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617673.327] {Default Queue} wl_output#121.mode(3, 1280, 800, 60000) +[2617673.332] {Default Queue} discarded wl_surface#3.enter(wl_output#121) +[2617673.336] {Default Queue} discarded wl_surface#43.enter(wl_output#121) +[2617673.340] {Default Queue} discarded wl_surface#19.enter(wl_output#121) +[2617673.344] {Default Queue} discarded wl_surface#71.enter(wl_output#121) +[2617673.348] {Default Queue} wl_registry#134.global(1, "wl_compositor", 6) +[2617673.354] {Default Queue} -> wl_registry#134.bind(1, "wl_compositor", 1, new id [unknown]#140) +[2617673.359] {Default Queue} wl_registry#134.global(2, "wl_subcompositor", 1) +[2617673.363] {Default Queue} -> wl_registry#134.bind(2, "wl_subcompositor", 1, new id [unknown]#141) +[2617673.368] {Default Queue} wl_registry#134.global(3, "xdg_wm_base", 6) +[2617673.373] {Default Queue} -> wl_registry#134.bind(3, "xdg_wm_base", 1, new id [unknown]#142) +[2617673.378] {Default Queue} wl_registry#134.global(6, "zwlr_layer_shell_v1", 5) +[2617673.384] {Default Queue} wl_registry#134.global(7, "ext_session_lock_manager_v1", 1) +[2617673.388] {Default Queue} wl_registry#134.global(8, "wl_shm", 2) +[2617673.393] {Default Queue} -> wl_registry#134.bind(8, "wl_shm", 1, new id [unknown]#143) +[2617673.403] {Default Queue} -> wl_registry#134.bind(8, "wl_shm", 1, new id [unknown]#144) +[2617673.411] {Default Queue} -> wl_registry#134.bind(8, "wl_shm", 1, new id [unknown]#145) +[2617673.416] {Default Queue} wl_registry#134.global(9, "zxdg_output_manager_v1", 3) +[2617673.420] {Default Queue} wl_registry#134.global(10, "wp_fractional_scale_manager_v1", 1) +[2617673.426] {Default Queue} wl_registry#134.global(11, "zwp_tablet_manager_v2", 1) +[2617673.433] {Default Queue} wl_registry#134.global(12, "zwp_pointer_gestures_v1", 3) +[2617673.440] {Default Queue} wl_registry#134.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617673.448] {Default Queue} -> wl_registry#134.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#146) +[2617673.455] {Default Queue} wl_registry#134.global(14, "zwp_pointer_constraints_v1", 1) +[2617673.465] {Default Queue} -> wl_registry#134.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#147) +[2617673.473] {Default Queue} wl_registry#134.global(15, "ext_idle_notifier_v1", 2) +[2617673.480] {Default Queue} wl_registry#134.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617673.485] {Default Queue} wl_registry#134.global(17, "wl_data_device_manager", 3) +[2617673.490] {Default Queue} -> wl_registry#134.bind(17, "wl_data_device_manager", 2, new id [unknown]#148) +[2617673.497] {Default Queue} -> wl_data_device_manager#148.create_data_source(new id wl_data_source#149) +[2617673.510] {Default Queue} -> wl_data_source#149.offer("text/plain") +[2617673.515] {Default Queue} -> wl_data_source#149.offer("text/plain;charset=utf-8") +[2617673.521] {Default Queue} -> wl_data_source#149.offer("TEXT") +[2617673.527] {Default Queue} -> wl_data_source#149.offer("STRING") +[2617673.531] {Default Queue} -> wl_data_source#149.offer("UTF8_STRING") +[2617673.536] {Default Queue} wl_registry#134.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617673.542] {Default Queue} -> wl_registry#134.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#150) +[2617673.547] {Default Queue} -> zwp_primary_selection_device_manager_v1#150.create_source(new id zwp_primary_selection_source_v1#151) +[2617673.555] {Default Queue} -> zwp_primary_selection_source_v1#151.offer("text/plain") +[2617673.559] {Default Queue} -> zwp_primary_selection_source_v1#151.offer("text/plain;charset=utf-8") +[2617673.563] {Default Queue} -> zwp_primary_selection_source_v1#151.offer("TEXT") +[2617673.568] {Default Queue} -> zwp_primary_selection_source_v1#151.offer("STRING") +[2617673.572] {Default Queue} -> zwp_primary_selection_source_v1#151.offer("UTF8_STRING") +[2617673.576] {Default Queue} wl_registry#134.global(19, "zwlr_data_control_manager_v1", 2) +[2617673.581] {Default Queue} wl_registry#134.global(20, "ext_data_control_manager_v1", 1) +[2617673.586] {Default Queue} wl_registry#134.global(21, "wp_presentation", 2) +[2617673.591] {Default Queue} wl_registry#134.global(22, "wp_security_context_manager_v1", 1) +[2617673.596] {Default Queue} wl_registry#134.global(23, "zwp_text_input_manager_v3", 1) +[2617673.602] {Default Queue} wl_registry#134.global(24, "zwp_input_method_manager_v2", 1) +[2617673.607] {Default Queue} wl_registry#134.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617673.611] {Default Queue} wl_registry#134.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617673.616] {Default Queue} wl_registry#134.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617673.620] {Default Queue} wl_registry#134.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617673.625] {Default Queue} wl_registry#134.global(29, "ext_workspace_manager_v1", 1) +[2617673.629] {Default Queue} wl_registry#134.global(30, "zwlr_output_manager_v1", 4) +[2617673.634] {Default Queue} wl_registry#134.global(31, "zwlr_screencopy_manager_v1", 3) +[2617673.638] {Default Queue} wl_registry#134.global(32, "wp_viewporter", 1) +[2617673.643] {Default Queue} wl_registry#134.global(33, "zxdg_exporter_v2", 1) +[2617673.649] {Default Queue} wl_registry#134.global(34, "zxdg_importer_v2", 1) +[2617673.658] {Default Queue} wl_registry#134.global(36, "xdg_activation_v1", 1) +[2617673.665] {Default Queue} wl_registry#134.global(37, "mutter_x11_interop", 1) +[2617673.670] {Default Queue} wl_registry#134.global(38, "wl_seat", 9) +[2617673.675] {Default Queue} -> wl_registry#134.bind(38, "wl_seat", 1, new id [unknown]#152) +[2617673.679] {Default Queue} wl_registry#134.global(39, "wp_cursor_shape_manager_v1", 2) +[2617673.684] {Default Queue} wl_registry#134.global(40, "wl_output", 4) +[2617673.689] {Default Queue} -> wl_registry#134.bind(40, "wl_output", 1, new id [unknown]#153) +[2617673.694] {Default Queue} wl_callback#135.done(0) +[2617673.698] {Default Queue} discarded wl_surface#103.enter(wl_output#18) +[2617673.703] {Default Queue} discarded wl_surface#103.enter(wl_output#57) +[2617673.707] {Default Queue} discarded wl_surface#103.enter(wl_output#89) +[2617673.711] {Default Queue} discarded wl_surface#103.enter(wl_output#121) +[2617673.716] {Default Queue} -> wl_compositor#108.create_surface(new id wl_surface#135) +[2617673.721] {Default Queue} -> wl_subcompositor#141.get_subsurface(new id wl_subsurface#154, wl_surface#135, wl_surface#103) +[2617673.725] {Default Queue} -> wl_subsurface#154.set_desync() +[2617673.730] {Default Queue} -> wl_subsurface#154.set_position(0, 0) +[2617673.735] {Default Queue} -> wl_subsurface#154.place_above(wl_surface#103) +[2617673.782] {Default Queue} -> wl_shm#143.create_pool(new id wl_shm_pool#155, fd 29, 16) +[2617673.790] {Default Queue} -> wl_shm#143.create_pool(new id wl_shm_pool#156, fd 30, 16) +[2617673.796] {Default Queue} -> wl_shm_pool#155.create_buffer(new id wl_buffer#157, 0, 2, 2, 8, 0) +[2617673.800] {Default Queue} -> wl_shm_pool#156.create_buffer(new id wl_buffer#158, 0, 2, 2, 8, 0) +[2617673.809] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) +[2617673.814] {Default Queue} -> wl_surface#135.commit() +[2617673.820] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) +[2617673.824] {Default Queue} -> wl_surface#135.commit() +[2617673.829] {Default Queue} -> wl_compositor#140.create_region(new id wl_region#159) +[2617673.833] {Default Queue} -> wl_compositor#140.create_region(new id wl_region#160) +[2617673.838] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) +[2617673.842] {Default Queue} -> wl_region#159.add(0, 0, 0, 0) +[2617673.847] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2617673.852] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2617673.856] {Default Queue} -> wl_surface#135.damage(0, 0, 2, 2) +[2617673.862] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) +[2617673.878] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) +[2617673.885] {Default Queue} -> wl_surface#135.commit() +[2617673.932] {Default Queue} -> wl_shm#145.create_pool(new id wl_shm_pool#161, fd 33, 640) +[2617673.943] {Default Queue} -> wl_shm#145.create_pool(new id wl_shm_pool#162, fd 34, 640) +[2617673.949] {Default Queue} -> wl_shm_pool#161.create_buffer(new id wl_buffer#163, 0, 10, 16, 40, 0) +[2617673.955] {Default Queue} -> wl_shm_pool#162.create_buffer(new id wl_buffer#164, 0, 10, 16, 40, 0) +[2617673.963] {Default Queue} -> wl_compositor#140.create_surface(new id wl_surface#165) +[2617673.969] {Default Queue} -> wl_surface#165.attach(wl_buffer#163, 0, 0) +[2617673.974] {Default Queue} -> wl_surface#165.commit() +[2617673.980] {Default Queue} -> wl_surface#165.attach(wl_buffer#163, 0, 0) +[2617673.985] {Default Queue} -> wl_surface#165.commit() +[2617673.991] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) +[2617673.998] {Default Queue} -> wl_surface#135.damage(0, 0, 2, 2) +[2617674.004] {Default Queue} -> wl_surface#135.damage(0, 0, 2, 2) +[2617674.014] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#166) +[2617674.020] {Default Queue} -> wl_display#1.sync(new id wl_callback#167) +[2617684.121] {Display Queue} wl_display#1.delete_id(167) +[2617684.139] {Default Queue} wl_keyboard#136.keymap(1, fd 29, 68213) +[2617684.145] {Default Queue} wl_keyboard#136.enter(566, wl_surface#19, array[0]) +[2617684.158] {Default Queue} wl_keyboard#136.modifiers(566, 0, 0, 16, 0) +[2617684.168] {Default Queue} discarded wl_shm#143.format(875709016) +[2617684.173] {Default Queue} discarded wl_shm#143.format(1) +[2617684.177] {Default Queue} discarded wl_shm#143.format(0) +[2617684.181] {Default Queue} discarded wl_shm#143.format(875708993) +[2617684.185] {Default Queue} discarded wl_shm#144.format(875709016) +[2617684.189] {Default Queue} discarded wl_shm#144.format(1) +[2617684.193] {Default Queue} discarded wl_shm#144.format(0) +[2617684.197] {Default Queue} discarded wl_shm#144.format(875708993) +[2617684.201] {Default Queue} discarded wl_shm#145.format(875709016) +[2617684.205] {Default Queue} discarded wl_shm#145.format(1) +[2617684.209] {Default Queue} discarded wl_shm#145.format(0) +[2617684.212] {Default Queue} discarded wl_shm#145.format(875708993) +[2617684.216] {Default Queue} wl_seat#152.capabilities(7) +[2617684.221] {Default Queue} -> wl_seat#152.get_keyboard(new id wl_keyboard#168) +[2617684.227] {Default Queue} -> wl_seat#152.get_pointer(new id wl_pointer#169) +[2617684.231] {Default Queue} -> wl_data_device_manager#148.get_data_device(new id wl_data_device#170, wl_seat#152) +[2617684.236] {Default Queue} -> zwp_primary_selection_device_manager_v1#150.get_device(new id zwp_primary_selection_device_v1#171, wl_seat#152) +[2617684.245] {Default Queue} wl_output#153.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617684.250] {Default Queue} wl_output#153.mode(3, 1280, 800, 60000) +[2617684.255] {Default Queue} discarded wl_surface#3.enter(wl_output#153) +[2617684.259] {Default Queue} discarded wl_surface#103.enter(wl_output#153) +[2617684.263] {Default Queue} discarded wl_surface#43.enter(wl_output#153) +[2617684.267] {Default Queue} discarded wl_surface#19.enter(wl_output#153) +[2617684.271] {Default Queue} discarded wl_surface#71.enter(wl_output#153) +[2617684.275] {Default Queue} wl_registry#166.global(1, "wl_compositor", 6) +[2617684.281] {Default Queue} -> wl_registry#166.bind(1, "wl_compositor", 1, new id [unknown]#172) +[2617684.285] {Default Queue} wl_registry#166.global(2, "wl_subcompositor", 1) +[2617684.290] {Default Queue} -> wl_registry#166.bind(2, "wl_subcompositor", 1, new id [unknown]#173) +[2617684.295] {Default Queue} wl_registry#166.global(3, "xdg_wm_base", 6) +[2617684.300] {Default Queue} -> wl_registry#166.bind(3, "xdg_wm_base", 1, new id [unknown]#174) +[2617684.305] {Default Queue} wl_registry#166.global(6, "zwlr_layer_shell_v1", 5) +[2617684.309] {Default Queue} wl_registry#166.global(7, "ext_session_lock_manager_v1", 1) +[2617684.314] {Default Queue} wl_registry#166.global(8, "wl_shm", 2) +[2617684.318] {Default Queue} -> wl_registry#166.bind(8, "wl_shm", 1, new id [unknown]#175) +[2617684.324] {Default Queue} -> wl_registry#166.bind(8, "wl_shm", 1, new id [unknown]#176) +[2617684.328] {Default Queue} -> wl_registry#166.bind(8, "wl_shm", 1, new id [unknown]#177) +[2617684.332] {Default Queue} wl_registry#166.global(9, "zxdg_output_manager_v1", 3) +[2617684.337] {Default Queue} wl_registry#166.global(10, "wp_fractional_scale_manager_v1", 1) +[2617684.341] {Default Queue} wl_registry#166.global(11, "zwp_tablet_manager_v2", 1) +[2617684.345] {Default Queue} wl_registry#166.global(12, "zwp_pointer_gestures_v1", 3) +[2617684.350] {Default Queue} wl_registry#166.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617684.354] {Default Queue} -> wl_registry#166.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#178) +[2617684.359] {Default Queue} wl_registry#166.global(14, "zwp_pointer_constraints_v1", 1) +[2617684.364] {Default Queue} -> wl_registry#166.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#179) +[2617684.369] {Default Queue} wl_registry#166.global(15, "ext_idle_notifier_v1", 2) +[2617684.373] {Default Queue} wl_registry#166.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617684.377] {Default Queue} wl_registry#166.global(17, "wl_data_device_manager", 3) +[2617684.382] {Default Queue} -> wl_registry#166.bind(17, "wl_data_device_manager", 2, new id [unknown]#180) +[2617684.388] {Default Queue} -> wl_data_device_manager#180.create_data_source(new id wl_data_source#181) +[2617684.395] {Default Queue} -> wl_data_source#181.offer("text/plain") +[2617684.401] {Default Queue} -> wl_data_source#181.offer("text/plain;charset=utf-8") +[2617684.406] {Default Queue} -> wl_data_source#181.offer("TEXT") +[2617684.410] {Default Queue} -> wl_data_source#181.offer("STRING") +[2617684.414] {Default Queue} -> wl_data_source#181.offer("UTF8_STRING") +[2617684.418] {Default Queue} wl_registry#166.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617684.423] {Default Queue} -> wl_registry#166.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#182) +[2617684.428] {Default Queue} -> zwp_primary_selection_device_manager_v1#182.create_source(new id zwp_primary_selection_source_v1#183) +[2617684.435] {Default Queue} -> zwp_primary_selection_source_v1#183.offer("text/plain") +[2617684.439] {Default Queue} -> zwp_primary_selection_source_v1#183.offer("text/plain;charset=utf-8") +[2617684.443] {Default Queue} -> zwp_primary_selection_source_v1#183.offer("TEXT") +[2617684.448] {Default Queue} -> zwp_primary_selection_source_v1#183.offer("STRING") +[2617684.452] {Default Queue} -> zwp_primary_selection_source_v1#183.offer("UTF8_STRING") +[2617684.456] {Default Queue} wl_registry#166.global(19, "zwlr_data_control_manager_v1", 2) +[2617684.461] {Default Queue} wl_registry#166.global(20, "ext_data_control_manager_v1", 1) +[2617684.465] {Default Queue} wl_registry#166.global(21, "wp_presentation", 2) +[2617684.470] {Default Queue} wl_registry#166.global(22, "wp_security_context_manager_v1", 1) +[2617684.474] {Default Queue} wl_registry#166.global(23, "zwp_text_input_manager_v3", 1) +[2617684.479] {Default Queue} wl_registry#166.global(24, "zwp_input_method_manager_v2", 1) +[2617684.483] {Default Queue} wl_registry#166.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617684.487] {Default Queue} wl_registry#166.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617684.492] {Default Queue} wl_registry#166.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617684.496] {Default Queue} wl_registry#166.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617684.501] {Default Queue} wl_registry#166.global(29, "ext_workspace_manager_v1", 1) +[2617684.505] {Default Queue} wl_registry#166.global(30, "zwlr_output_manager_v1", 4) +[2617684.509] {Default Queue} wl_registry#166.global(31, "zwlr_screencopy_manager_v1", 3) +[2617684.514] {Default Queue} wl_registry#166.global(32, "wp_viewporter", 1) +[2617684.518] {Default Queue} wl_registry#166.global(33, "zxdg_exporter_v2", 1) +[2617684.523] {Default Queue} wl_registry#166.global(34, "zxdg_importer_v2", 1) +[2617684.528] {Default Queue} wl_registry#166.global(36, "xdg_activation_v1", 1) +[2617684.532] {Default Queue} wl_registry#166.global(37, "mutter_x11_interop", 1) +[2617684.536] {Default Queue} wl_registry#166.global(38, "wl_seat", 9) +[2617684.541] {Default Queue} -> wl_registry#166.bind(38, "wl_seat", 1, new id [unknown]#184) +[2617684.546] {Default Queue} wl_registry#166.global(39, "wp_cursor_shape_manager_v1", 2) +[2617684.550] {Default Queue} wl_registry#166.global(40, "wl_output", 4) +[2617684.555] {Default Queue} -> wl_registry#166.bind(40, "wl_output", 1, new id [unknown]#185) +[2617684.559] {Default Queue} wl_callback#167.done(0) +[2617684.564] {Default Queue} discarded wl_surface#135.enter(wl_output#18) +[2617684.569] {Default Queue} discarded wl_surface#135.enter(wl_output#57) +[2617684.573] {Default Queue} discarded wl_surface#135.enter(wl_output#89) +[2617684.576] {Default Queue} discarded wl_surface#135.enter(wl_output#121) +[2617684.581] {Default Queue} discarded wl_surface#135.enter(wl_output#153) +[2617684.585] {Default Queue} -> wl_compositor#140.create_surface(new id wl_surface#167) +[2617684.590] {Default Queue} -> wl_subcompositor#173.get_subsurface(new id wl_subsurface#186, wl_surface#167, wl_surface#135) +[2617684.595] {Default Queue} -> wl_subsurface#186.set_desync() +[2617684.599] {Default Queue} -> wl_subsurface#186.set_position(0, 0) +[2617684.603] {Default Queue} -> wl_subsurface#186.place_above(wl_surface#135) +[2617684.657] {Default Queue} -> wl_shm#175.create_pool(new id wl_shm_pool#187, fd 34, 16) +[2617684.666] {Default Queue} -> wl_shm#175.create_pool(new id wl_shm_pool#188, fd 35, 16) +[2617684.671] {Default Queue} -> wl_shm_pool#187.create_buffer(new id wl_buffer#189, 0, 2, 2, 8, 0) +[2617684.676] {Default Queue} -> wl_shm_pool#188.create_buffer(new id wl_buffer#190, 0, 2, 2, 8, 0) +[2617684.686] {Default Queue} -> wl_surface#167.attach(wl_buffer#189, 0, 0) +[2617684.691] {Default Queue} -> wl_surface#167.commit() +[2617684.696] {Default Queue} -> wl_surface#167.attach(wl_buffer#189, 0, 0) +[2617684.701] {Default Queue} -> wl_surface#167.commit() +[2617684.705] {Default Queue} -> wl_compositor#172.create_region(new id wl_region#191) +[2617684.709] {Default Queue} -> wl_compositor#172.create_region(new id wl_region#192) +[2617684.713] {Default Queue} -> wl_region#191.subtract(0, 0, 2, 2) +[2617684.718] {Default Queue} -> wl_region#191.add(0, 0, 0, 0) +[2617684.722] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) +[2617684.726] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) +[2617684.731] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) +[2617684.735] {Default Queue} -> wl_surface#135.damage(0, 0, 2, 2) +[2617684.746] {Default Queue} -> wl_surface#167.attach(wl_buffer#189, 0, 0) +[2617684.751] {Default Queue} -> wl_surface#167.commit() +[2617684.783] {Default Queue} -> wl_shm#177.create_pool(new id wl_shm_pool#193, fd 38, 640) +[2617684.790] {Default Queue} -> wl_shm#177.create_pool(new id wl_shm_pool#194, fd 39, 640) +[2617684.795] {Default Queue} -> wl_shm_pool#193.create_buffer(new id wl_buffer#195, 0, 10, 16, 40, 0) +[2617684.799] {Default Queue} -> wl_shm_pool#194.create_buffer(new id wl_buffer#196, 0, 10, 16, 40, 0) +[2617684.806] {Default Queue} -> wl_compositor#172.create_surface(new id wl_surface#197) +[2617684.811] {Default Queue} -> wl_surface#197.attach(wl_buffer#195, 0, 0) +[2617684.815] {Default Queue} -> wl_surface#197.commit() +[2617684.821] {Default Queue} -> wl_surface#197.attach(wl_buffer#195, 0, 0) +[2617684.826] {Default Queue} -> wl_surface#197.commit() +[2617684.832] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) +[2617684.840] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#198) +[2617684.846] {Default Queue} -> wl_display#1.sync(new id wl_callback#199) +[2617693.217] {Display Queue} wl_display#1.delete_id(199) +[2617693.230] {Default Queue} wl_keyboard#168.keymap(1, fd 34, 68213) +[2617693.236] {Default Queue} wl_keyboard#168.enter(566, wl_surface#19, array[0]) +[2617693.243] {Default Queue} wl_keyboard#168.modifiers(566, 0, 0, 16, 0) +[2617693.249] {Default Queue} discarded wl_shm#175.format(875709016) +[2617693.255] {Default Queue} discarded wl_shm#175.format(1) +[2617693.260] {Default Queue} discarded wl_shm#175.format(0) +[2617693.265] {Default Queue} discarded wl_shm#175.format(875708993) +[2617693.270] {Default Queue} discarded wl_shm#176.format(875709016) +[2617693.275] {Default Queue} discarded wl_shm#176.format(1) +[2617693.280] {Default Queue} discarded wl_shm#176.format(0) +[2617693.285] {Default Queue} discarded wl_shm#176.format(875708993) +[2617693.290] {Default Queue} discarded wl_shm#177.format(875709016) +[2617693.295] {Default Queue} discarded wl_shm#177.format(1) +[2617693.300] {Default Queue} discarded wl_shm#177.format(0) +[2617693.305] {Default Queue} discarded wl_shm#177.format(875708993) +[2617693.310] {Default Queue} wl_seat#184.capabilities(7) +[2617693.316] {Default Queue} -> wl_seat#184.get_keyboard(new id wl_keyboard#200) +[2617693.321] {Default Queue} -> wl_seat#184.get_pointer(new id wl_pointer#201) +[2617693.327] {Default Queue} -> wl_data_device_manager#180.get_data_device(new id wl_data_device#202, wl_seat#184) +[2617693.334] {Default Queue} -> zwp_primary_selection_device_manager_v1#182.get_device(new id zwp_primary_selection_device_v1#203, wl_seat#184) +[2617693.344] {Default Queue} wl_output#185.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617693.357] {Default Queue} wl_output#185.mode(3, 1280, 800, 60000) +[2617693.367] {Default Queue} discarded wl_surface#3.enter(wl_output#185) +[2617693.372] {Default Queue} discarded wl_surface#135.enter(wl_output#185) +[2617693.377] {Default Queue} discarded wl_surface#103.enter(wl_output#185) +[2617693.383] {Default Queue} discarded wl_surface#43.enter(wl_output#185) +[2617693.388] {Default Queue} discarded wl_surface#19.enter(wl_output#185) +[2617693.393] {Default Queue} discarded wl_surface#71.enter(wl_output#185) +[2617693.398] {Default Queue} wl_registry#198.global(1, "wl_compositor", 6) +[2617693.405] {Default Queue} -> wl_registry#198.bind(1, "wl_compositor", 1, new id [unknown]#204) +[2617693.412] {Default Queue} wl_registry#198.global(2, "wl_subcompositor", 1) +[2617693.418] {Default Queue} -> wl_registry#198.bind(2, "wl_subcompositor", 1, new id [unknown]#205) +[2617693.426] {Default Queue} wl_registry#198.global(3, "xdg_wm_base", 6) +[2617693.437] {Default Queue} -> wl_registry#198.bind(3, "xdg_wm_base", 1, new id [unknown]#206) +[2617693.446] {Default Queue} wl_registry#198.global(6, "zwlr_layer_shell_v1", 5) +[2617693.455] {Default Queue} wl_registry#198.global(7, "ext_session_lock_manager_v1", 1) +[2617693.465] {Default Queue} wl_registry#198.global(8, "wl_shm", 2) +[2617693.474] {Default Queue} -> wl_registry#198.bind(8, "wl_shm", 1, new id [unknown]#207) +[2617693.482] {Default Queue} -> wl_registry#198.bind(8, "wl_shm", 1, new id [unknown]#208) +[2617693.489] {Default Queue} -> wl_registry#198.bind(8, "wl_shm", 1, new id [unknown]#209) +[2617693.495] {Default Queue} wl_registry#198.global(9, "zxdg_output_manager_v1", 3) +[2617693.500] {Default Queue} wl_registry#198.global(10, "wp_fractional_scale_manager_v1", 1) +[2617693.506] {Default Queue} wl_registry#198.global(11, "zwp_tablet_manager_v2", 1) +[2617693.512] {Default Queue} wl_registry#198.global(12, "zwp_pointer_gestures_v1", 3) +[2617693.517] {Default Queue} wl_registry#198.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617693.524] {Default Queue} -> wl_registry#198.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#210) +[2617693.529] {Default Queue} wl_registry#198.global(14, "zwp_pointer_constraints_v1", 1) +[2617693.536] {Default Queue} -> wl_registry#198.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#211) +[2617693.542] {Default Queue} wl_registry#198.global(15, "ext_idle_notifier_v1", 2) +[2617693.547] {Default Queue} wl_registry#198.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617693.553] {Default Queue} wl_registry#198.global(17, "wl_data_device_manager", 3) +[2617693.559] {Default Queue} -> wl_registry#198.bind(17, "wl_data_device_manager", 2, new id [unknown]#212) +[2617693.564] {Default Queue} -> wl_data_device_manager#212.create_data_source(new id wl_data_source#213) +[2617693.570] {Default Queue} -> wl_data_source#213.offer("text/plain") +[2617693.575] {Default Queue} -> wl_data_source#213.offer("text/plain;charset=utf-8") +[2617693.581] {Default Queue} -> wl_data_source#213.offer("TEXT") +[2617693.586] {Default Queue} -> wl_data_source#213.offer("STRING") +[2617693.591] {Default Queue} -> wl_data_source#213.offer("UTF8_STRING") +[2617693.596] {Default Queue} wl_registry#198.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617693.602] {Default Queue} -> wl_registry#198.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#214) +[2617693.608] {Default Queue} -> zwp_primary_selection_device_manager_v1#214.create_source(new id zwp_primary_selection_source_v1#215) +[2617693.618] {Default Queue} -> zwp_primary_selection_source_v1#215.offer("text/plain") +[2617693.623] {Default Queue} -> zwp_primary_selection_source_v1#215.offer("text/plain;charset=utf-8") +[2617693.628] {Default Queue} -> zwp_primary_selection_source_v1#215.offer("TEXT") +[2617693.633] {Default Queue} -> zwp_primary_selection_source_v1#215.offer("STRING") +[2617693.639] {Default Queue} -> zwp_primary_selection_source_v1#215.offer("UTF8_STRING") +[2617693.644] {Default Queue} wl_registry#198.global(19, "zwlr_data_control_manager_v1", 2) +[2617693.656] {Default Queue} wl_registry#198.global(20, "ext_data_control_manager_v1", 1) +[2617693.663] {Default Queue} wl_registry#198.global(21, "wp_presentation", 2) +[2617693.669] {Default Queue} wl_registry#198.global(22, "wp_security_context_manager_v1", 1) +[2617693.675] {Default Queue} wl_registry#198.global(23, "zwp_text_input_manager_v3", 1) +[2617693.681] {Default Queue} wl_registry#198.global(24, "zwp_input_method_manager_v2", 1) +[2617693.686] {Default Queue} wl_registry#198.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617693.692] {Default Queue} wl_registry#198.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617693.697] {Default Queue} wl_registry#198.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617693.703] {Default Queue} wl_registry#198.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617693.709] {Default Queue} wl_registry#198.global(29, "ext_workspace_manager_v1", 1) +[2617693.715] {Default Queue} wl_registry#198.global(30, "zwlr_output_manager_v1", 4) +[2617693.720] {Default Queue} wl_registry#198.global(31, "zwlr_screencopy_manager_v1", 3) +[2617693.725] {Default Queue} wl_registry#198.global(32, "wp_viewporter", 1) +[2617693.731] {Default Queue} wl_registry#198.global(33, "zxdg_exporter_v2", 1) +[2617693.736] {Default Queue} wl_registry#198.global(34, "zxdg_importer_v2", 1) +[2617693.742] {Default Queue} wl_registry#198.global(36, "xdg_activation_v1", 1) +[2617693.747] {Default Queue} wl_registry#198.global(37, "mutter_x11_interop", 1) +[2617693.753] {Default Queue} wl_registry#198.global(38, "wl_seat", 9) +[2617693.759] {Default Queue} -> wl_registry#198.bind(38, "wl_seat", 1, new id [unknown]#216) +[2617693.765] {Default Queue} wl_registry#198.global(39, "wp_cursor_shape_manager_v1", 2) +[2617693.770] {Default Queue} wl_registry#198.global(40, "wl_output", 4) +[2617693.776] {Default Queue} -> wl_registry#198.bind(40, "wl_output", 1, new id [unknown]#217) +[2617693.781] {Default Queue} wl_callback#199.done(0) +[2617693.787] {Default Queue} discarded wl_surface#167.enter(wl_output#18) +[2617693.792] {Default Queue} discarded wl_surface#167.enter(wl_output#57) +[2617693.797] {Default Queue} discarded wl_surface#167.enter(wl_output#89) +[2617693.802] {Default Queue} discarded wl_surface#167.enter(wl_output#121) +[2617693.807] {Default Queue} discarded wl_surface#167.enter(wl_output#153) +[2617693.811] {Default Queue} discarded wl_surface#167.enter(wl_output#185) +[2617693.817] {Default Queue} -> wl_compositor#172.create_surface(new id wl_surface#199) +[2617693.822] {Default Queue} -> wl_subcompositor#205.get_subsurface(new id wl_subsurface#218, wl_surface#199, wl_surface#167) +[2617693.828] {Default Queue} -> wl_subsurface#218.set_desync() +[2617693.834] {Default Queue} -> wl_subsurface#218.set_position(0, 0) +[2617693.840] {Default Queue} -> wl_subsurface#218.place_above(wl_surface#167) +[2617693.906] {Default Queue} -> wl_shm#207.create_pool(new id wl_shm_pool#219, fd 39, 16) +[2617693.915] {Default Queue} -> wl_shm#207.create_pool(new id wl_shm_pool#220, fd 40, 16) +[2617693.921] {Default Queue} -> wl_shm_pool#219.create_buffer(new id wl_buffer#221, 0, 2, 2, 8, 0) +[2617693.927] {Default Queue} -> wl_shm_pool#220.create_buffer(new id wl_buffer#222, 0, 2, 2, 8, 0) +[2617693.938] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) +[2617693.943] {Default Queue} -> wl_surface#199.commit() +[2617693.951] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) +[2617693.956] {Default Queue} -> wl_surface#199.commit() +[2617693.962] {Default Queue} -> wl_compositor#204.create_region(new id wl_region#223) +[2617693.968] {Default Queue} -> wl_compositor#204.create_region(new id wl_region#224) +[2617693.973] {Default Queue} -> wl_region#223.subtract(0, 0, 2, 2) +[2617693.979] {Default Queue} -> wl_region#223.add(0, 0, 0, 0) +[2617693.984] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2617693.990] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2617693.995] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2617694.001] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) +[2617694.016] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) +[2617694.024] {Default Queue} -> wl_surface#199.commit() +[2617694.067] {Default Queue} -> wl_shm#209.create_pool(new id wl_shm_pool#225, fd 43, 640) +[2617694.075] {Default Queue} -> wl_shm#209.create_pool(new id wl_shm_pool#226, fd 44, 640) +[2617694.081] {Default Queue} -> wl_shm_pool#225.create_buffer(new id wl_buffer#227, 0, 10, 16, 40, 0) +[2617694.088] {Default Queue} -> wl_shm_pool#226.create_buffer(new id wl_buffer#228, 0, 10, 16, 40, 0) +[2617694.097] {Default Queue} -> wl_compositor#204.create_surface(new id wl_surface#229) +[2617694.102] {Default Queue} -> wl_surface#229.attach(wl_buffer#227, 0, 0) +[2617694.109] {Default Queue} -> wl_surface#229.commit() +[2617694.114] {Default Queue} -> wl_surface#229.attach(wl_buffer#227, 0, 0) +[2617694.119] {Default Queue} -> wl_surface#229.commit() +[2617694.125] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) +[2617694.131] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2617694.135] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2617694.143] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#230) +[2617694.149] {Default Queue} -> wl_display#1.sync(new id wl_callback#231) +[2617703.232] {Display Queue} wl_display#1.delete_id(231) +[2617703.243] {Default Queue} wl_keyboard#200.keymap(1, fd 39, 68213) +[2617703.249] {Default Queue} wl_keyboard#200.enter(566, wl_surface#19, array[0]) +[2617703.255] {Default Queue} wl_keyboard#200.modifiers(566, 0, 0, 16, 0) +[2617703.262] {Default Queue} discarded wl_shm#207.format(875709016) +[2617703.267] {Default Queue} discarded wl_shm#207.format(1) +[2617703.272] {Default Queue} discarded wl_shm#207.format(0) +[2617703.277] {Default Queue} discarded wl_shm#207.format(875708993) +[2617703.282] {Default Queue} discarded wl_shm#208.format(875709016) +[2617703.288] {Default Queue} discarded wl_shm#208.format(1) +[2617703.295] {Default Queue} discarded wl_shm#208.format(0) +[2617703.303] {Default Queue} discarded wl_shm#208.format(875708993) +[2617703.311] {Default Queue} discarded wl_shm#209.format(875709016) +[2617703.319] {Default Queue} discarded wl_shm#209.format(1) +[2617703.327] {Default Queue} discarded wl_shm#209.format(0) +[2617703.338] {Default Queue} discarded wl_shm#209.format(875708993) +[2617703.346] {Default Queue} wl_seat#216.capabilities(7) +[2617703.354] {Default Queue} -> wl_seat#216.get_keyboard(new id wl_keyboard#232) +[2617703.362] {Default Queue} -> wl_seat#216.get_pointer(new id wl_pointer#233) +[2617703.368] {Default Queue} -> wl_data_device_manager#212.get_data_device(new id wl_data_device#234, wl_seat#216) +[2617703.374] {Default Queue} -> zwp_primary_selection_device_manager_v1#214.get_device(new id zwp_primary_selection_device_v1#235, wl_seat#216) +[2617703.384] {Default Queue} wl_output#217.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617703.390] {Default Queue} wl_output#217.mode(3, 1280, 800, 60000) +[2617703.396] {Default Queue} discarded wl_surface#3.enter(wl_output#217) +[2617703.401] {Default Queue} discarded wl_surface#135.enter(wl_output#217) +[2617703.406] {Default Queue} discarded wl_surface#103.enter(wl_output#217) +[2617703.411] {Default Queue} discarded wl_surface#43.enter(wl_output#217) +[2617703.416] {Default Queue} discarded wl_surface#19.enter(wl_output#217) +[2617703.421] {Default Queue} discarded wl_surface#71.enter(wl_output#217) +[2617703.426] {Default Queue} discarded wl_surface#167.enter(wl_output#217) +[2617703.431] {Default Queue} wl_registry#230.global(1, "wl_compositor", 6) +[2617703.437] {Default Queue} -> wl_registry#230.bind(1, "wl_compositor", 1, new id [unknown]#236) +[2617703.443] {Default Queue} wl_registry#230.global(2, "wl_subcompositor", 1) +[2617703.449] {Default Queue} -> wl_registry#230.bind(2, "wl_subcompositor", 1, new id [unknown]#237) +[2617703.455] {Default Queue} wl_registry#230.global(3, "xdg_wm_base", 6) +[2617703.461] {Default Queue} -> wl_registry#230.bind(3, "xdg_wm_base", 1, new id [unknown]#238) +[2617703.467] {Default Queue} wl_registry#230.global(6, "zwlr_layer_shell_v1", 5) +[2617703.477] {Default Queue} wl_registry#230.global(7, "ext_session_lock_manager_v1", 1) +[2617703.486] {Default Queue} wl_registry#230.global(8, "wl_shm", 2) +[2617703.492] {Default Queue} -> wl_registry#230.bind(8, "wl_shm", 1, new id [unknown]#239) +[2617703.498] {Default Queue} -> wl_registry#230.bind(8, "wl_shm", 1, new id [unknown]#240) +[2617703.503] {Default Queue} -> wl_registry#230.bind(8, "wl_shm", 1, new id [unknown]#241) +[2617703.509] {Default Queue} wl_registry#230.global(9, "zxdg_output_manager_v1", 3) +[2617703.515] {Default Queue} wl_registry#230.global(10, "wp_fractional_scale_manager_v1", 1) +[2617703.520] {Default Queue} wl_registry#230.global(11, "zwp_tablet_manager_v2", 1) +[2617703.525] {Default Queue} wl_registry#230.global(12, "zwp_pointer_gestures_v1", 3) +[2617703.531] {Default Queue} wl_registry#230.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617703.537] {Default Queue} -> wl_registry#230.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#242) +[2617703.542] {Default Queue} wl_registry#230.global(14, "zwp_pointer_constraints_v1", 1) +[2617703.548] {Default Queue} -> wl_registry#230.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#243) +[2617703.554] {Default Queue} wl_registry#230.global(15, "ext_idle_notifier_v1", 2) +[2617703.559] {Default Queue} wl_registry#230.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617703.565] {Default Queue} wl_registry#230.global(17, "wl_data_device_manager", 3) +[2617703.571] {Default Queue} -> wl_registry#230.bind(17, "wl_data_device_manager", 2, new id [unknown]#244) +[2617703.576] {Default Queue} -> wl_data_device_manager#244.create_data_source(new id wl_data_source#245) +[2617703.582] {Default Queue} -> wl_data_source#245.offer("text/plain") +[2617703.587] {Default Queue} -> wl_data_source#245.offer("text/plain;charset=utf-8") +[2617703.592] {Default Queue} -> wl_data_source#245.offer("TEXT") +[2617703.597] {Default Queue} -> wl_data_source#245.offer("STRING") +[2617703.602] {Default Queue} -> wl_data_source#245.offer("UTF8_STRING") +[2617703.607] {Default Queue} wl_registry#230.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617703.613] {Default Queue} -> wl_registry#230.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#246) +[2617703.619] {Default Queue} -> zwp_primary_selection_device_manager_v1#246.create_source(new id zwp_primary_selection_source_v1#247) +[2617703.629] {Default Queue} -> zwp_primary_selection_source_v1#247.offer("text/plain") +[2617703.634] {Default Queue} -> zwp_primary_selection_source_v1#247.offer("text/plain;charset=utf-8") +[2617703.639] {Default Queue} -> zwp_primary_selection_source_v1#247.offer("TEXT") +[2617703.644] {Default Queue} -> zwp_primary_selection_source_v1#247.offer("STRING") +[2617703.649] {Default Queue} -> zwp_primary_selection_source_v1#247.offer("UTF8_STRING") +[2617703.655] {Default Queue} wl_registry#230.global(19, "zwlr_data_control_manager_v1", 2) +[2617703.660] {Default Queue} wl_registry#230.global(20, "ext_data_control_manager_v1", 1) +[2617703.666] {Default Queue} wl_registry#230.global(21, "wp_presentation", 2) +[2617703.671] {Default Queue} wl_registry#230.global(22, "wp_security_context_manager_v1", 1) +[2617703.677] {Default Queue} wl_registry#230.global(23, "zwp_text_input_manager_v3", 1) +[2617703.682] {Default Queue} wl_registry#230.global(24, "zwp_input_method_manager_v2", 1) +[2617703.688] {Default Queue} wl_registry#230.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617703.693] {Default Queue} wl_registry#230.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617703.699] {Default Queue} wl_registry#230.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617703.704] {Default Queue} wl_registry#230.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617703.710] {Default Queue} wl_registry#230.global(29, "ext_workspace_manager_v1", 1) +[2617703.715] {Default Queue} wl_registry#230.global(30, "zwlr_output_manager_v1", 4) +[2617703.720] {Default Queue} wl_registry#230.global(31, "zwlr_screencopy_manager_v1", 3) +[2617703.730] {Default Queue} wl_registry#230.global(32, "wp_viewporter", 1) +[2617703.737] {Default Queue} wl_registry#230.global(33, "zxdg_exporter_v2", 1) +[2617703.743] {Default Queue} wl_registry#230.global(34, "zxdg_importer_v2", 1) +[2617703.748] {Default Queue} wl_registry#230.global(36, "xdg_activation_v1", 1) +[2617703.753] {Default Queue} wl_registry#230.global(37, "mutter_x11_interop", 1) +[2617703.759] {Default Queue} wl_registry#230.global(38, "wl_seat", 9) +[2617703.765] {Default Queue} -> wl_registry#230.bind(38, "wl_seat", 1, new id [unknown]#248) +[2617703.771] {Default Queue} wl_registry#230.global(39, "wp_cursor_shape_manager_v1", 2) +[2617703.776] {Default Queue} wl_registry#230.global(40, "wl_output", 4) +[2617703.782] {Default Queue} -> wl_registry#230.bind(40, "wl_output", 1, new id [unknown]#249) +[2617703.788] {Default Queue} wl_callback#231.done(0) +[2617703.795] {Default Queue} discarded wl_surface#199.enter(wl_output#18) +[2617703.800] {Default Queue} discarded wl_surface#199.enter(wl_output#57) +[2617703.805] {Default Queue} discarded wl_surface#199.enter(wl_output#89) +[2617703.810] {Default Queue} discarded wl_surface#199.enter(wl_output#121) +[2617703.815] {Default Queue} discarded wl_surface#199.enter(wl_output#153) +[2617703.820] {Default Queue} discarded wl_surface#199.enter(wl_output#185) +[2617703.825] {Default Queue} discarded wl_surface#199.enter(wl_output#217) +[2617703.830] {Default Queue} -> wl_compositor#172.create_surface(new id wl_surface#231) +[2617703.836] {Default Queue} -> wl_subcompositor#237.get_subsurface(new id wl_subsurface#250, wl_surface#231, wl_surface#167) +[2617703.842] {Default Queue} -> wl_subsurface#250.set_desync() +[2617703.847] {Default Queue} -> wl_subsurface#250.set_position(0, 0) +[2617703.853] {Default Queue} -> wl_subsurface#250.place_above(wl_surface#167) +[2617703.919] {Default Queue} -> wl_shm#239.create_pool(new id wl_shm_pool#251, fd 44, 16) +[2617703.928] {Default Queue} -> wl_shm#239.create_pool(new id wl_shm_pool#252, fd 45, 16) +[2617703.934] {Default Queue} -> wl_shm_pool#251.create_buffer(new id wl_buffer#253, 0, 2, 2, 8, 0) +[2617703.940] {Default Queue} -> wl_shm_pool#252.create_buffer(new id wl_buffer#254, 0, 2, 2, 8, 0) +[2617703.949] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) +[2617703.955] {Default Queue} -> wl_surface#231.commit() +[2617703.962] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) +[2617703.968] {Default Queue} -> wl_surface#231.commit() +[2617703.973] {Default Queue} -> wl_compositor#236.create_region(new id wl_region#255) +[2617703.979] {Default Queue} -> wl_compositor#236.create_region(new id wl_region#256) +[2617703.984] {Default Queue} -> wl_region#255.subtract(0, 0, 2, 2) +[2617703.990] {Default Queue} -> wl_region#255.add(0, 0, 0, 0) +[2617703.995] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) +[2617704.000] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) +[2617704.006] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) +[2617704.011] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) +[2617704.021] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) +[2617704.026] {Default Queue} -> wl_surface#231.commit() +[2617704.064] {Default Queue} -> wl_shm#241.create_pool(new id wl_shm_pool#257, fd 48, 640) +[2617704.072] {Default Queue} -> wl_shm#241.create_pool(new id wl_shm_pool#258, fd 49, 640) +[2617704.077] {Default Queue} -> wl_shm_pool#257.create_buffer(new id wl_buffer#259, 0, 10, 16, 40, 0) +[2617704.083] {Default Queue} -> wl_shm_pool#258.create_buffer(new id wl_buffer#260, 0, 10, 16, 40, 0) +[2617704.092] {Default Queue} -> wl_compositor#236.create_surface(new id wl_surface#261) +[2617704.097] {Default Queue} -> wl_surface#261.attach(wl_buffer#259, 0, 0) +[2617704.102] {Default Queue} -> wl_surface#261.commit() +[2617704.109] {Default Queue} -> wl_surface#261.attach(wl_buffer#259, 0, 0) +[2617704.114] {Default Queue} -> wl_surface#261.commit() +[2617704.121] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) +[2617704.131] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#262) +[2617704.140] {Default Queue} -> wl_display#1.sync(new id wl_callback#263) +[2617713.221] {Display Queue} wl_display#1.delete_id(263) +[2617713.232] {Default Queue} wl_keyboard#232.keymap(1, fd 44, 68213) +[2617713.238] {Default Queue} wl_keyboard#232.enter(566, wl_surface#19, array[0]) +[2617713.244] {Default Queue} wl_keyboard#232.modifiers(566, 0, 0, 16, 0) +[2617713.250] {Default Queue} discarded wl_shm#239.format(875709016) +[2617713.255] {Default Queue} discarded wl_shm#239.format(1) +[2617713.260] {Default Queue} discarded wl_shm#239.format(0) +[2617713.265] {Default Queue} discarded wl_shm#239.format(875708993) +[2617713.270] {Default Queue} discarded wl_shm#240.format(875709016) +[2617713.275] {Default Queue} discarded wl_shm#240.format(1) +[2617713.279] {Default Queue} discarded wl_shm#240.format(0) +[2617713.284] {Default Queue} discarded wl_shm#240.format(875708993) +[2617713.289] {Default Queue} discarded wl_shm#241.format(875709016) +[2617713.294] {Default Queue} discarded wl_shm#241.format(1) +[2617713.299] {Default Queue} discarded wl_shm#241.format(0) +[2617713.304] {Default Queue} discarded wl_shm#241.format(875708993) +[2617713.309] {Default Queue} wl_seat#248.capabilities(7) +[2617713.314] {Default Queue} -> wl_seat#248.get_keyboard(new id wl_keyboard#264) +[2617713.320] {Default Queue} -> wl_seat#248.get_pointer(new id wl_pointer#265) +[2617713.326] {Default Queue} -> wl_data_device_manager#244.get_data_device(new id wl_data_device#266, wl_seat#248) +[2617713.332] {Default Queue} -> zwp_primary_selection_device_manager_v1#246.get_device(new id zwp_primary_selection_device_v1#267, wl_seat#248) +[2617713.342] {Default Queue} wl_output#249.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617713.348] {Default Queue} wl_output#249.mode(3, 1280, 800, 60000) +[2617713.354] {Default Queue} discarded wl_surface#3.enter(wl_output#249) +[2617713.359] {Default Queue} discarded wl_surface#135.enter(wl_output#249) +[2617713.364] {Default Queue} discarded wl_surface#103.enter(wl_output#249) +[2617713.369] {Default Queue} discarded wl_surface#43.enter(wl_output#249) +[2617713.374] {Default Queue} discarded wl_surface#19.enter(wl_output#249) +[2617713.379] {Default Queue} discarded wl_surface#199.enter(wl_output#249) +[2617713.384] {Default Queue} discarded wl_surface#71.enter(wl_output#249) +[2617713.389] {Default Queue} discarded wl_surface#167.enter(wl_output#249) +[2617713.394] {Default Queue} wl_registry#262.global(1, "wl_compositor", 6) +[2617713.401] {Default Queue} -> wl_registry#262.bind(1, "wl_compositor", 1, new id [unknown]#268) +[2617713.407] {Default Queue} wl_registry#262.global(2, "wl_subcompositor", 1) +[2617713.413] {Default Queue} -> wl_registry#262.bind(2, "wl_subcompositor", 1, new id [unknown]#269) +[2617713.418] {Default Queue} wl_registry#262.global(3, "xdg_wm_base", 6) +[2617713.424] {Default Queue} -> wl_registry#262.bind(3, "xdg_wm_base", 1, new id [unknown]#270) +[2617713.430] {Default Queue} wl_registry#262.global(6, "zwlr_layer_shell_v1", 5) +[2617713.435] {Default Queue} wl_registry#262.global(7, "ext_session_lock_manager_v1", 1) +[2617713.441] {Default Queue} wl_registry#262.global(8, "wl_shm", 2) +[2617713.447] {Default Queue} -> wl_registry#262.bind(8, "wl_shm", 1, new id [unknown]#271) +[2617713.453] {Default Queue} -> wl_registry#262.bind(8, "wl_shm", 1, new id [unknown]#272) +[2617713.459] {Default Queue} -> wl_registry#262.bind(8, "wl_shm", 1, new id [unknown]#273) +[2617713.464] {Default Queue} wl_registry#262.global(9, "zxdg_output_manager_v1", 3) +[2617713.470] {Default Queue} wl_registry#262.global(10, "wp_fractional_scale_manager_v1", 1) +[2617713.475] {Default Queue} wl_registry#262.global(11, "zwp_tablet_manager_v2", 1) +[2617713.481] {Default Queue} wl_registry#262.global(12, "zwp_pointer_gestures_v1", 3) +[2617713.486] {Default Queue} wl_registry#262.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617713.492] {Default Queue} -> wl_registry#262.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#274) +[2617713.497] {Default Queue} wl_registry#262.global(14, "zwp_pointer_constraints_v1", 1) +[2617713.512] {Default Queue} -> wl_registry#262.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#275) +[2617713.520] {Default Queue} wl_registry#262.global(15, "ext_idle_notifier_v1", 2) +[2617713.526] {Default Queue} wl_registry#262.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617713.531] {Default Queue} wl_registry#262.global(17, "wl_data_device_manager", 3) +[2617713.538] {Default Queue} -> wl_registry#262.bind(17, "wl_data_device_manager", 2, new id [unknown]#276) +[2617713.543] {Default Queue} -> wl_data_device_manager#276.create_data_source(new id wl_data_source#277) +[2617713.548] {Default Queue} -> wl_data_source#277.offer("text/plain") +[2617713.554] {Default Queue} -> wl_data_source#277.offer("text/plain;charset=utf-8") +[2617713.559] {Default Queue} -> wl_data_source#277.offer("TEXT") +[2617713.564] {Default Queue} -> wl_data_source#277.offer("STRING") +[2617713.569] {Default Queue} -> wl_data_source#277.offer("UTF8_STRING") +[2617713.574] {Default Queue} wl_registry#262.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617713.580] {Default Queue} -> wl_registry#262.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#278) +[2617713.586] {Default Queue} -> zwp_primary_selection_device_manager_v1#278.create_source(new id zwp_primary_selection_source_v1#279) +[2617713.595] {Default Queue} -> zwp_primary_selection_source_v1#279.offer("text/plain") +[2617713.601] {Default Queue} -> zwp_primary_selection_source_v1#279.offer("text/plain;charset=utf-8") +[2617713.606] {Default Queue} -> zwp_primary_selection_source_v1#279.offer("TEXT") +[2617713.611] {Default Queue} -> zwp_primary_selection_source_v1#279.offer("STRING") +[2617713.616] {Default Queue} -> zwp_primary_selection_source_v1#279.offer("UTF8_STRING") +[2617713.622] {Default Queue} wl_registry#262.global(19, "zwlr_data_control_manager_v1", 2) +[2617713.628] {Default Queue} wl_registry#262.global(20, "ext_data_control_manager_v1", 1) +[2617713.633] {Default Queue} wl_registry#262.global(21, "wp_presentation", 2) +[2617713.639] {Default Queue} wl_registry#262.global(22, "wp_security_context_manager_v1", 1) +[2617713.644] {Default Queue} wl_registry#262.global(23, "zwp_text_input_manager_v3", 1) +[2617713.650] {Default Queue} wl_registry#262.global(24, "zwp_input_method_manager_v2", 1) +[2617713.655] {Default Queue} wl_registry#262.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617713.661] {Default Queue} wl_registry#262.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617713.667] {Default Queue} wl_registry#262.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617713.672] {Default Queue} wl_registry#262.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617713.677] {Default Queue} wl_registry#262.global(29, "ext_workspace_manager_v1", 1) +[2617713.683] {Default Queue} wl_registry#262.global(30, "zwlr_output_manager_v1", 4) +[2617713.688] {Default Queue} wl_registry#262.global(31, "zwlr_screencopy_manager_v1", 3) +[2617713.694] {Default Queue} wl_registry#262.global(32, "wp_viewporter", 1) +[2617713.699] {Default Queue} wl_registry#262.global(33, "zxdg_exporter_v2", 1) +[2617713.705] {Default Queue} wl_registry#262.global(34, "zxdg_importer_v2", 1) +[2617713.710] {Default Queue} wl_registry#262.global(36, "xdg_activation_v1", 1) +[2617713.715] {Default Queue} wl_registry#262.global(37, "mutter_x11_interop", 1) +[2617713.721] {Default Queue} wl_registry#262.global(38, "wl_seat", 9) +[2617713.726] {Default Queue} -> wl_registry#262.bind(38, "wl_seat", 1, new id [unknown]#280) +[2617713.733] {Default Queue} wl_registry#262.global(39, "wp_cursor_shape_manager_v1", 2) +[2617713.738] {Default Queue} wl_registry#262.global(40, "wl_output", 4) +[2617713.744] {Default Queue} -> wl_registry#262.bind(40, "wl_output", 1, new id [unknown]#281) +[2617713.750] {Default Queue} wl_callback#263.done(0) +[2617713.755] {Default Queue} discarded wl_surface#231.enter(wl_output#18) +[2617713.760] {Default Queue} discarded wl_surface#231.enter(wl_output#57) +[2617713.765] {Default Queue} discarded wl_surface#231.enter(wl_output#89) +[2617713.774] {Default Queue} discarded wl_surface#231.enter(wl_output#121) +[2617713.781] {Default Queue} discarded wl_surface#231.enter(wl_output#153) +[2617713.786] {Default Queue} discarded wl_surface#231.enter(wl_output#185) +[2617713.791] {Default Queue} discarded wl_surface#231.enter(wl_output#217) +[2617713.796] {Default Queue} discarded wl_surface#231.enter(wl_output#249) +[2617713.802] {Default Queue} -> wl_compositor#236.create_surface(new id wl_surface#263) +[2617713.807] {Default Queue} -> wl_subcompositor#269.get_subsurface(new id wl_subsurface#282, wl_surface#263, wl_surface#231) +[2617713.813] {Default Queue} -> wl_subsurface#282.set_desync() +[2617713.818] {Default Queue} -> wl_subsurface#282.set_position(0, 0) +[2617713.824] {Default Queue} -> wl_subsurface#282.place_above(wl_surface#231) +[2617713.880] {Default Queue} -> wl_shm#271.create_pool(new id wl_shm_pool#283, fd 49, 16) +[2617713.890] {Default Queue} -> wl_shm#271.create_pool(new id wl_shm_pool#284, fd 50, 16) +[2617713.896] {Default Queue} -> wl_shm_pool#283.create_buffer(new id wl_buffer#285, 0, 2, 2, 8, 0) +[2617713.902] {Default Queue} -> wl_shm_pool#284.create_buffer(new id wl_buffer#286, 0, 2, 2, 8, 0) +[2617713.912] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) +[2617713.917] {Default Queue} -> wl_surface#263.commit() +[2617713.924] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) +[2617713.930] {Default Queue} -> wl_surface#263.commit() +[2617713.935] {Default Queue} -> wl_compositor#268.create_region(new id wl_region#287) +[2617713.940] {Default Queue} -> wl_compositor#268.create_region(new id wl_region#288) +[2617713.946] {Default Queue} -> wl_region#287.subtract(0, 0, 2, 2) +[2617713.951] {Default Queue} -> wl_region#287.add(0, 0, 0, 0) +[2617713.957] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2617713.962] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2617713.967] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2617713.973] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) +[2617713.982] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) +[2617713.987] {Default Queue} -> wl_surface#263.commit() +[2617714.032] {Default Queue} -> wl_shm#273.create_pool(new id wl_shm_pool#289, fd 53, 640) +[2617714.040] {Default Queue} -> wl_shm#273.create_pool(new id wl_shm_pool#290, fd 54, 640) +[2617714.046] {Default Queue} -> wl_shm_pool#289.create_buffer(new id wl_buffer#291, 0, 10, 16, 40, 0) +[2617714.052] {Default Queue} -> wl_shm_pool#290.create_buffer(new id wl_buffer#292, 0, 10, 16, 40, 0) +[2617714.060] {Default Queue} -> wl_compositor#268.create_surface(new id wl_surface#293) +[2617714.065] {Default Queue} -> wl_surface#293.attach(wl_buffer#291, 0, 0) +[2617714.071] {Default Queue} -> wl_surface#293.commit() +[2617714.077] {Default Queue} -> wl_surface#293.attach(wl_buffer#291, 0, 0) +[2617714.083] {Default Queue} -> wl_surface#293.commit() +[2617714.090] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2617714.107] {Default Queue} -> wl_region#191.subtract(0, 0, 2, 2) +[2617714.114] {Default Queue} -> wl_subsurface#186.set_position(3, 3) +[2617714.121] {Default Queue} -> wl_region#191.subtract(0, 0, 5, 5) +[2617714.126] {Default Queue} -> wl_region#191.add(0, 0, 0, 0) +[2617714.132] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) +[2617714.137] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) +[2617714.143] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2617714.148] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2617714.153] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) +[2617714.157] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) +[2617714.164] {Default Queue} -> wl_region#191.subtract(0, 0, 5, 5) +[2617714.169] {Default Queue} -> wl_region#191.add(0, 0, 0, 0) +[2617714.174] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) +[2617714.178] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) +[2617714.184] {Default Queue} -> wl_surface#167.attach(wl_buffer#189, 0, 0) +[2617714.192] {Default Queue} -> wl_surface#167.commit() +[2617714.202] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#294) +[2617714.207] {Default Queue} -> wl_display#1.sync(new id wl_callback#295) +[2617723.277] {Display Queue} wl_display#1.delete_id(295) +[2617723.295] {Default Queue} wl_keyboard#264.keymap(1, fd 49, 68213) +[2617723.305] {Default Queue} wl_keyboard#264.enter(566, wl_surface#19, array[0]) +[2617723.315] {Default Queue} wl_keyboard#264.modifiers(566, 0, 0, 16, 0) +[2617723.324] {Default Queue} discarded wl_shm#271.format(875709016) +[2617723.332] {Default Queue} discarded wl_shm#271.format(1) +[2617723.340] {Default Queue} discarded wl_shm#271.format(0) +[2617723.348] {Default Queue} discarded wl_shm#271.format(875708993) +[2617723.356] {Default Queue} discarded wl_shm#272.format(875709016) +[2617723.363] {Default Queue} discarded wl_shm#272.format(1) +[2617723.370] {Default Queue} discarded wl_shm#272.format(0) +[2617723.377] {Default Queue} discarded wl_shm#272.format(875708993) +[2617723.382] {Default Queue} discarded wl_shm#273.format(875709016) +[2617723.387] {Default Queue} discarded wl_shm#273.format(1) +[2617723.392] {Default Queue} discarded wl_shm#273.format(0) +[2617723.397] {Default Queue} discarded wl_shm#273.format(875708993) +[2617723.402] {Default Queue} wl_seat#280.capabilities(7) +[2617723.408] {Default Queue} -> wl_seat#280.get_keyboard(new id wl_keyboard#296) +[2617723.414] {Default Queue} -> wl_seat#280.get_pointer(new id wl_pointer#297) +[2617723.420] {Default Queue} -> wl_data_device_manager#276.get_data_device(new id wl_data_device#298, wl_seat#280) +[2617723.426] {Default Queue} -> zwp_primary_selection_device_manager_v1#278.get_device(new id zwp_primary_selection_device_v1#299, wl_seat#280) +[2617723.436] {Default Queue} wl_output#281.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617723.442] {Default Queue} wl_output#281.mode(3, 1280, 800, 60000) +[2617723.448] {Default Queue} discarded wl_surface#3.enter(wl_output#281) +[2617723.454] {Default Queue} discarded wl_surface#135.enter(wl_output#281) +[2617723.459] {Default Queue} discarded wl_surface#231.enter(wl_output#281) +[2617723.464] {Default Queue} discarded wl_surface#103.enter(wl_output#281) +[2617723.468] {Default Queue} discarded wl_surface#43.enter(wl_output#281) +[2617723.473] {Default Queue} discarded wl_surface#19.enter(wl_output#281) +[2617723.478] {Default Queue} discarded wl_surface#199.enter(wl_output#281) +[2617723.483] {Default Queue} discarded wl_surface#71.enter(wl_output#281) +[2617723.488] {Default Queue} discarded wl_surface#167.enter(wl_output#281) +[2617723.493] {Default Queue} wl_registry#294.global(1, "wl_compositor", 6) +[2617723.499] {Default Queue} -> wl_registry#294.bind(1, "wl_compositor", 1, new id [unknown]#300) +[2617723.505] {Default Queue} wl_registry#294.global(2, "wl_subcompositor", 1) +[2617723.511] {Default Queue} -> wl_registry#294.bind(2, "wl_subcompositor", 1, new id [unknown]#301) +[2617723.517] {Default Queue} wl_registry#294.global(3, "xdg_wm_base", 6) +[2617723.522] {Default Queue} -> wl_registry#294.bind(3, "xdg_wm_base", 1, new id [unknown]#302) +[2617723.528] {Default Queue} wl_registry#294.global(6, "zwlr_layer_shell_v1", 5) +[2617723.534] {Default Queue} wl_registry#294.global(7, "ext_session_lock_manager_v1", 1) +[2617723.540] {Default Queue} wl_registry#294.global(8, "wl_shm", 2) +[2617723.546] {Default Queue} -> wl_registry#294.bind(8, "wl_shm", 1, new id [unknown]#303) +[2617723.551] {Default Queue} -> wl_registry#294.bind(8, "wl_shm", 1, new id [unknown]#304) +[2617723.557] {Default Queue} -> wl_registry#294.bind(8, "wl_shm", 1, new id [unknown]#305) +[2617723.562] {Default Queue} wl_registry#294.global(9, "zxdg_output_manager_v1", 3) +[2617723.567] {Default Queue} wl_registry#294.global(10, "wp_fractional_scale_manager_v1", 1) +[2617723.573] {Default Queue} wl_registry#294.global(11, "zwp_tablet_manager_v2", 1) +[2617723.578] {Default Queue} wl_registry#294.global(12, "zwp_pointer_gestures_v1", 3) +[2617723.584] {Default Queue} wl_registry#294.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617723.595] {Default Queue} -> wl_registry#294.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#306) +[2617723.606] {Default Queue} wl_registry#294.global(14, "zwp_pointer_constraints_v1", 1) +[2617723.612] {Default Queue} -> wl_registry#294.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#307) +[2617723.618] {Default Queue} wl_registry#294.global(15, "ext_idle_notifier_v1", 2) +[2617723.624] {Default Queue} wl_registry#294.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617723.629] {Default Queue} wl_registry#294.global(17, "wl_data_device_manager", 3) +[2617723.635] {Default Queue} -> wl_registry#294.bind(17, "wl_data_device_manager", 2, new id [unknown]#308) +[2617723.641] {Default Queue} -> wl_data_device_manager#308.create_data_source(new id wl_data_source#309) +[2617723.647] {Default Queue} -> wl_data_source#309.offer("text/plain") +[2617723.653] {Default Queue} -> wl_data_source#309.offer("text/plain;charset=utf-8") +[2617723.658] {Default Queue} -> wl_data_source#309.offer("TEXT") +[2617723.663] {Default Queue} -> wl_data_source#309.offer("STRING") +[2617723.668] {Default Queue} -> wl_data_source#309.offer("UTF8_STRING") +[2617723.673] {Default Queue} wl_registry#294.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617723.680] {Default Queue} -> wl_registry#294.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#310) +[2617723.686] {Default Queue} -> zwp_primary_selection_device_manager_v1#310.create_source(new id zwp_primary_selection_source_v1#311) +[2617723.695] {Default Queue} -> zwp_primary_selection_source_v1#311.offer("text/plain") +[2617723.700] {Default Queue} -> zwp_primary_selection_source_v1#311.offer("text/plain;charset=utf-8") +[2617723.705] {Default Queue} -> zwp_primary_selection_source_v1#311.offer("TEXT") +[2617723.710] {Default Queue} -> zwp_primary_selection_source_v1#311.offer("STRING") +[2617723.716] {Default Queue} -> zwp_primary_selection_source_v1#311.offer("UTF8_STRING") +[2617723.721] {Default Queue} wl_registry#294.global(19, "zwlr_data_control_manager_v1", 2) +[2617723.727] {Default Queue} wl_registry#294.global(20, "ext_data_control_manager_v1", 1) +[2617723.732] {Default Queue} wl_registry#294.global(21, "wp_presentation", 2) +[2617723.738] {Default Queue} wl_registry#294.global(22, "wp_security_context_manager_v1", 1) +[2617723.743] {Default Queue} wl_registry#294.global(23, "zwp_text_input_manager_v3", 1) +[2617723.749] {Default Queue} wl_registry#294.global(24, "zwp_input_method_manager_v2", 1) +[2617723.754] {Default Queue} wl_registry#294.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617723.760] {Default Queue} wl_registry#294.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617723.765] {Default Queue} wl_registry#294.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617723.771] {Default Queue} wl_registry#294.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617723.776] {Default Queue} wl_registry#294.global(29, "ext_workspace_manager_v1", 1) +[2617723.782] {Default Queue} wl_registry#294.global(30, "zwlr_output_manager_v1", 4) +[2617723.787] {Default Queue} wl_registry#294.global(31, "zwlr_screencopy_manager_v1", 3) +[2617723.793] {Default Queue} wl_registry#294.global(32, "wp_viewporter", 1) +[2617723.798] {Default Queue} wl_registry#294.global(33, "zxdg_exporter_v2", 1) +[2617723.804] {Default Queue} wl_registry#294.global(34, "zxdg_importer_v2", 1) +[2617723.809] {Default Queue} wl_registry#294.global(36, "xdg_activation_v1", 1) +[2617723.815] {Default Queue} wl_registry#294.global(37, "mutter_x11_interop", 1) +[2617723.820] {Default Queue} wl_registry#294.global(38, "wl_seat", 9) +[2617723.826] {Default Queue} -> wl_registry#294.bind(38, "wl_seat", 1, new id [unknown]#312) +[2617723.831] {Default Queue} wl_registry#294.global(39, "wp_cursor_shape_manager_v1", 2) +[2617723.837] {Default Queue} wl_registry#294.global(40, "wl_output", 4) +[2617723.842] {Default Queue} -> wl_registry#294.bind(40, "wl_output", 1, new id [unknown]#313) +[2617723.848] {Default Queue} wl_callback#295.done(0) +[2617723.858] {Default Queue} discarded wl_surface#263.enter(wl_output#18) +[2617723.872] {Default Queue} discarded wl_surface#263.enter(wl_output#57) +[2617723.877] {Default Queue} discarded wl_surface#263.enter(wl_output#89) +[2617723.882] {Default Queue} discarded wl_surface#263.enter(wl_output#121) +[2617723.887] {Default Queue} discarded wl_surface#263.enter(wl_output#153) +[2617723.892] {Default Queue} discarded wl_surface#263.enter(wl_output#185) +[2617723.897] {Default Queue} discarded wl_surface#263.enter(wl_output#217) +[2617723.902] {Default Queue} discarded wl_surface#263.enter(wl_output#249) +[2617723.907] {Default Queue} discarded wl_surface#263.enter(wl_output#281) +[2617723.912] {Default Queue} -> wl_compositor#108.create_surface(new id wl_surface#295) +[2617723.918] {Default Queue} -> wl_subcompositor#301.get_subsurface(new id wl_subsurface#314, wl_surface#295, wl_surface#103) +[2617723.923] {Default Queue} -> wl_subsurface#314.set_desync() +[2617723.929] {Default Queue} -> wl_subsurface#314.set_position(0, 0) +[2617723.935] {Default Queue} -> wl_subsurface#314.place_above(wl_surface#103) +[2617723.986] {Default Queue} -> wl_shm#303.create_pool(new id wl_shm_pool#315, fd 54, 16) +[2617723.994] {Default Queue} -> wl_shm#303.create_pool(new id wl_shm_pool#316, fd 55, 16) +[2617724.001] {Default Queue} -> wl_shm_pool#315.create_buffer(new id wl_buffer#317, 0, 2, 2, 8, 0) +[2617724.007] {Default Queue} -> wl_shm_pool#316.create_buffer(new id wl_buffer#318, 0, 2, 2, 8, 0) +[2617724.018] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) +[2617724.025] {Default Queue} -> wl_surface#295.commit() +[2617724.032] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) +[2617724.038] {Default Queue} -> wl_surface#295.commit() +[2617724.043] {Default Queue} -> wl_compositor#300.create_region(new id wl_region#319) +[2617724.048] {Default Queue} -> wl_compositor#300.create_region(new id wl_region#320) +[2617724.054] {Default Queue} -> wl_region#319.subtract(0, 0, 2, 2) +[2617724.059] {Default Queue} -> wl_region#319.add(0, 0, 0, 0) +[2617724.065] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2617724.070] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2617724.076] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) +[2617724.081] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) +[2617724.090] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) +[2617724.097] {Default Queue} -> wl_surface#295.commit() +[2617724.137] {Default Queue} -> wl_shm#305.create_pool(new id wl_shm_pool#321, fd 58, 640) +[2617724.145] {Default Queue} -> wl_shm#305.create_pool(new id wl_shm_pool#322, fd 59, 640) +[2617724.151] {Default Queue} -> wl_shm_pool#321.create_buffer(new id wl_buffer#323, 0, 10, 16, 40, 0) +[2617724.157] {Default Queue} -> wl_shm_pool#322.create_buffer(new id wl_buffer#324, 0, 10, 16, 40, 0) +[2617724.166] {Default Queue} -> wl_compositor#300.create_surface(new id wl_surface#325) +[2617724.171] {Default Queue} -> wl_surface#325.attach(wl_buffer#323, 0, 0) +[2617724.175] {Default Queue} -> wl_surface#325.commit() +[2617724.181] {Default Queue} -> wl_surface#325.attach(wl_buffer#323, 0, 0) +[2617724.185] {Default Queue} -> wl_surface#325.commit() +[2617724.191] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) +[2617724.197] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) +[2617724.205] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#326) +[2617724.210] {Default Queue} -> wl_display#1.sync(new id wl_callback#327) +[2617733.315] {Display Queue} wl_display#1.delete_id(327) +[2617733.331] {Default Queue} wl_keyboard#296.keymap(1, fd 54, 68213) +[2617733.339] {Default Queue} wl_keyboard#296.enter(566, wl_surface#19, array[0]) +[2617733.346] {Default Queue} wl_keyboard#296.modifiers(566, 0, 0, 16, 0) +[2617733.353] {Default Queue} discarded wl_shm#303.format(875709016) +[2617733.358] {Default Queue} discarded wl_shm#303.format(1) +[2617733.363] {Default Queue} discarded wl_shm#303.format(0) +[2617733.368] {Default Queue} discarded wl_shm#303.format(875708993) +[2617733.379] {Default Queue} discarded wl_shm#304.format(875709016) +[2617733.388] {Default Queue} discarded wl_shm#304.format(1) +[2617733.393] {Default Queue} discarded wl_shm#304.format(0) +[2617733.399] {Default Queue} discarded wl_shm#304.format(875708993) +[2617733.403] {Default Queue} discarded wl_shm#305.format(875709016) +[2617733.408] {Default Queue} discarded wl_shm#305.format(1) +[2617733.414] {Default Queue} discarded wl_shm#305.format(0) +[2617733.419] {Default Queue} discarded wl_shm#305.format(875708993) +[2617733.423] {Default Queue} wl_seat#312.capabilities(7) +[2617733.429] {Default Queue} -> wl_seat#312.get_keyboard(new id wl_keyboard#328) +[2617733.435] {Default Queue} -> wl_seat#312.get_pointer(new id wl_pointer#329) +[2617733.441] {Default Queue} -> wl_data_device_manager#308.get_data_device(new id wl_data_device#330, wl_seat#312) +[2617733.447] {Default Queue} -> zwp_primary_selection_device_manager_v1#310.get_device(new id zwp_primary_selection_device_v1#331, wl_seat#312) +[2617733.456] {Default Queue} wl_output#313.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617733.463] {Default Queue} wl_output#313.mode(3, 1280, 800, 60000) +[2617733.469] {Default Queue} discarded wl_surface#3.enter(wl_output#313) +[2617733.474] {Default Queue} discarded wl_surface#135.enter(wl_output#313) +[2617733.479] {Default Queue} discarded wl_surface#231.enter(wl_output#313) +[2617733.484] {Default Queue} discarded wl_surface#103.enter(wl_output#313) +[2617733.489] {Default Queue} discarded wl_surface#43.enter(wl_output#313) +[2617733.494] {Default Queue} discarded wl_surface#19.enter(wl_output#313) +[2617733.499] {Default Queue} discarded wl_surface#199.enter(wl_output#313) +[2617733.506] {Default Queue} discarded wl_surface#263.enter(wl_output#313) +[2617733.512] {Default Queue} discarded wl_surface#71.enter(wl_output#313) +[2617733.520] {Default Queue} discarded wl_surface#167.enter(wl_output#313) +[2617733.527] {Default Queue} wl_registry#326.global(1, "wl_compositor", 6) +[2617733.537] {Default Queue} -> wl_registry#326.bind(1, "wl_compositor", 1, new id [unknown]#332) +[2617733.548] {Default Queue} wl_registry#326.global(2, "wl_subcompositor", 1) +[2617733.557] {Default Queue} -> wl_registry#326.bind(2, "wl_subcompositor", 1, new id [unknown]#333) +[2617733.566] {Default Queue} wl_registry#326.global(3, "xdg_wm_base", 6) +[2617733.575] {Default Queue} -> wl_registry#326.bind(3, "xdg_wm_base", 1, new id [unknown]#334) +[2617733.583] {Default Queue} wl_registry#326.global(6, "zwlr_layer_shell_v1", 5) +[2617733.589] {Default Queue} wl_registry#326.global(7, "ext_session_lock_manager_v1", 1) +[2617733.595] {Default Queue} wl_registry#326.global(8, "wl_shm", 2) +[2617733.601] {Default Queue} -> wl_registry#326.bind(8, "wl_shm", 1, new id [unknown]#335) +[2617733.607] {Default Queue} -> wl_registry#326.bind(8, "wl_shm", 1, new id [unknown]#336) +[2617733.612] {Default Queue} -> wl_registry#326.bind(8, "wl_shm", 1, new id [unknown]#337) +[2617733.617] {Default Queue} wl_registry#326.global(9, "zxdg_output_manager_v1", 3) +[2617733.623] {Default Queue} wl_registry#326.global(10, "wp_fractional_scale_manager_v1", 1) +[2617733.628] {Default Queue} wl_registry#326.global(11, "zwp_tablet_manager_v2", 1) +[2617733.634] {Default Queue} wl_registry#326.global(12, "zwp_pointer_gestures_v1", 3) +[2617733.639] {Default Queue} wl_registry#326.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617733.645] {Default Queue} -> wl_registry#326.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#338) +[2617733.651] {Default Queue} wl_registry#326.global(14, "zwp_pointer_constraints_v1", 1) +[2617733.656] {Default Queue} -> wl_registry#326.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#339) +[2617733.662] {Default Queue} wl_registry#326.global(15, "ext_idle_notifier_v1", 2) +[2617733.667] {Default Queue} wl_registry#326.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617733.673] {Default Queue} wl_registry#326.global(17, "wl_data_device_manager", 3) +[2617733.679] {Default Queue} -> wl_registry#326.bind(17, "wl_data_device_manager", 2, new id [unknown]#340) +[2617733.689] {Default Queue} -> wl_data_device_manager#340.create_data_source(new id wl_data_source#341) +[2617733.697] {Default Queue} -> wl_data_source#341.offer("text/plain") +[2617733.703] {Default Queue} -> wl_data_source#341.offer("text/plain;charset=utf-8") +[2617733.708] {Default Queue} -> wl_data_source#341.offer("TEXT") +[2617733.713] {Default Queue} -> wl_data_source#341.offer("STRING") +[2617733.718] {Default Queue} -> wl_data_source#341.offer("UTF8_STRING") +[2617733.723] {Default Queue} wl_registry#326.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617733.730] {Default Queue} -> wl_registry#326.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#342) +[2617733.735] {Default Queue} -> zwp_primary_selection_device_manager_v1#342.create_source(new id zwp_primary_selection_source_v1#343) +[2617733.745] {Default Queue} -> zwp_primary_selection_source_v1#343.offer("text/plain") +[2617733.750] {Default Queue} -> zwp_primary_selection_source_v1#343.offer("text/plain;charset=utf-8") +[2617733.755] {Default Queue} -> zwp_primary_selection_source_v1#343.offer("TEXT") +[2617733.761] {Default Queue} -> zwp_primary_selection_source_v1#343.offer("STRING") +[2617733.766] {Default Queue} -> zwp_primary_selection_source_v1#343.offer("UTF8_STRING") +[2617733.771] {Default Queue} wl_registry#326.global(19, "zwlr_data_control_manager_v1", 2) +[2617733.776] {Default Queue} wl_registry#326.global(20, "ext_data_control_manager_v1", 1) +[2617733.782] {Default Queue} wl_registry#326.global(21, "wp_presentation", 2) +[2617733.788] {Default Queue} wl_registry#326.global(22, "wp_security_context_manager_v1", 1) +[2617733.793] {Default Queue} wl_registry#326.global(23, "zwp_text_input_manager_v3", 1) +[2617733.799] {Default Queue} wl_registry#326.global(24, "zwp_input_method_manager_v2", 1) +[2617733.804] {Default Queue} wl_registry#326.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617733.810] {Default Queue} wl_registry#326.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617733.815] {Default Queue} wl_registry#326.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617733.821] {Default Queue} wl_registry#326.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617733.827] {Default Queue} wl_registry#326.global(29, "ext_workspace_manager_v1", 1) +[2617733.832] {Default Queue} wl_registry#326.global(30, "zwlr_output_manager_v1", 4) +[2617733.837] {Default Queue} wl_registry#326.global(31, "zwlr_screencopy_manager_v1", 3) +[2617733.843] {Default Queue} wl_registry#326.global(32, "wp_viewporter", 1) +[2617733.849] {Default Queue} wl_registry#326.global(33, "zxdg_exporter_v2", 1) +[2617733.854] {Default Queue} wl_registry#326.global(34, "zxdg_importer_v2", 1) +[2617733.860] {Default Queue} wl_registry#326.global(36, "xdg_activation_v1", 1) +[2617733.872] {Default Queue} wl_registry#326.global(37, "mutter_x11_interop", 1) +[2617733.877] {Default Queue} wl_registry#326.global(38, "wl_seat", 9) +[2617733.884] {Default Queue} -> wl_registry#326.bind(38, "wl_seat", 1, new id [unknown]#344) +[2617733.890] {Default Queue} wl_registry#326.global(39, "wp_cursor_shape_manager_v1", 2) +[2617733.895] {Default Queue} wl_registry#326.global(40, "wl_output", 4) +[2617733.901] {Default Queue} -> wl_registry#326.bind(40, "wl_output", 1, new id [unknown]#345) +[2617733.907] {Default Queue} wl_callback#327.done(0) +[2617733.912] {Default Queue} discarded wl_surface#295.enter(wl_output#18) +[2617733.918] {Default Queue} discarded wl_surface#295.enter(wl_output#57) +[2617733.923] {Default Queue} discarded wl_surface#295.enter(wl_output#89) +[2617733.928] {Default Queue} discarded wl_surface#295.enter(wl_output#121) +[2617733.933] {Default Queue} discarded wl_surface#295.enter(wl_output#153) +[2617733.938] {Default Queue} discarded wl_surface#295.enter(wl_output#185) +[2617733.943] {Default Queue} discarded wl_surface#295.enter(wl_output#217) +[2617733.948] {Default Queue} discarded wl_surface#295.enter(wl_output#249) +[2617733.952] {Default Queue} discarded wl_surface#295.enter(wl_output#281) +[2617733.962] {Default Queue} discarded wl_surface#295.enter(wl_output#313) +[2617733.969] {Default Queue} -> wl_compositor#108.create_surface(new id wl_surface#327) +[2617733.975] {Default Queue} -> wl_subcompositor#333.get_subsurface(new id wl_subsurface#346, wl_surface#327, wl_surface#103) +[2617733.980] {Default Queue} -> wl_subsurface#346.set_desync() +[2617733.986] {Default Queue} -> wl_subsurface#346.set_position(0, 0) +[2617733.991] {Default Queue} -> wl_subsurface#346.place_above(wl_surface#103) +[2617734.048] {Default Queue} -> wl_shm#335.create_pool(new id wl_shm_pool#347, fd 59, 16) +[2617734.056] {Default Queue} -> wl_shm#335.create_pool(new id wl_shm_pool#348, fd 60, 16) +[2617734.062] {Default Queue} -> wl_shm_pool#347.create_buffer(new id wl_buffer#349, 0, 2, 2, 8, 0) +[2617734.068] {Default Queue} -> wl_shm_pool#348.create_buffer(new id wl_buffer#350, 0, 2, 2, 8, 0) +[2617734.079] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) +[2617734.085] {Default Queue} -> wl_surface#327.commit() +[2617734.093] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) +[2617734.098] {Default Queue} -> wl_surface#327.commit() +[2617734.104] {Default Queue} -> wl_compositor#332.create_region(new id wl_region#351) +[2617734.109] {Default Queue} -> wl_compositor#332.create_region(new id wl_region#352) +[2617734.114] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) +[2617734.120] {Default Queue} -> wl_region#351.add(0, 0, 0, 0) +[2617734.126] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2617734.131] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2617734.136] {Default Queue} -> wl_surface#327.damage(0, 0, 2, 2) +[2617734.142] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) +[2617734.151] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) +[2617734.156] {Default Queue} -> wl_surface#327.commit() +[2617734.193] {Default Queue} -> wl_shm#337.create_pool(new id wl_shm_pool#353, fd 63, 640) +[2617734.201] {Default Queue} -> wl_shm#337.create_pool(new id wl_shm_pool#354, fd 64, 640) +[2617734.206] {Default Queue} -> wl_shm_pool#353.create_buffer(new id wl_buffer#355, 0, 10, 16, 40, 0) +[2617734.210] {Default Queue} -> wl_shm_pool#354.create_buffer(new id wl_buffer#356, 0, 10, 16, 40, 0) +[2617734.218] {Default Queue} -> wl_compositor#332.create_surface(new id wl_surface#357) +[2617734.222] {Default Queue} -> wl_surface#357.attach(wl_buffer#355, 0, 0) +[2617734.226] {Default Queue} -> wl_surface#357.commit() +[2617734.232] {Default Queue} -> wl_surface#357.attach(wl_buffer#355, 0, 0) +[2617734.236] {Default Queue} -> wl_surface#357.commit() +[2617734.241] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) +[2617734.246] {Default Queue} -> wl_surface#327.damage(0, 0, 2, 2) +[2617734.251] {Default Queue} -> wl_surface#327.damage(0, 0, 2, 2) +[2617734.258] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#358) +[2617734.263] {Default Queue} -> wl_display#1.sync(new id wl_callback#359) +[2617743.319] {Display Queue} wl_display#1.delete_id(359) +[2617743.336] {Default Queue} wl_keyboard#328.keymap(1, fd 59, 68213) +[2617743.344] {Default Queue} wl_keyboard#328.enter(566, wl_surface#19, array[0]) +[2617743.351] {Default Queue} wl_keyboard#328.modifiers(566, 0, 0, 16, 0) +[2617743.357] {Default Queue} discarded wl_shm#335.format(875709016) +[2617743.362] {Default Queue} discarded wl_shm#335.format(1) +[2617743.367] {Default Queue} discarded wl_shm#335.format(0) +[2617743.372] {Default Queue} discarded wl_shm#335.format(875708993) +[2617743.377] {Default Queue} discarded wl_shm#336.format(875709016) +[2617743.382] {Default Queue} discarded wl_shm#336.format(1) +[2617743.387] {Default Queue} discarded wl_shm#336.format(0) +[2617743.392] {Default Queue} discarded wl_shm#336.format(875708993) +[2617743.396] {Default Queue} discarded wl_shm#337.format(875709016) +[2617743.401] {Default Queue} discarded wl_shm#337.format(1) +[2617743.406] {Default Queue} discarded wl_shm#337.format(0) +[2617743.412] {Default Queue} discarded wl_shm#337.format(875708993) +[2617743.423] {Default Queue} wl_seat#344.capabilities(7) +[2617743.433] {Default Queue} -> wl_seat#344.get_keyboard(new id wl_keyboard#360) +[2617743.439] {Default Queue} -> wl_seat#344.get_pointer(new id wl_pointer#361) +[2617743.445] {Default Queue} -> wl_data_device_manager#340.get_data_device(new id wl_data_device#362, wl_seat#344) +[2617743.451] {Default Queue} -> zwp_primary_selection_device_manager_v1#342.get_device(new id zwp_primary_selection_device_v1#363, wl_seat#344) +[2617743.461] {Default Queue} wl_output#345.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617743.467] {Default Queue} wl_output#345.mode(3, 1280, 800, 60000) +[2617743.474] {Default Queue} discarded wl_surface#3.enter(wl_output#345) +[2617743.479] {Default Queue} discarded wl_surface#135.enter(wl_output#345) +[2617743.484] {Default Queue} discarded wl_surface#231.enter(wl_output#345) +[2617743.489] {Default Queue} discarded wl_surface#103.enter(wl_output#345) +[2617743.494] {Default Queue} discarded wl_surface#43.enter(wl_output#345) +[2617743.499] {Default Queue} discarded wl_surface#19.enter(wl_output#345) +[2617743.504] {Default Queue} discarded wl_surface#199.enter(wl_output#345) +[2617743.509] {Default Queue} discarded wl_surface#263.enter(wl_output#345) +[2617743.514] {Default Queue} discarded wl_surface#71.enter(wl_output#345) +[2617743.519] {Default Queue} discarded wl_surface#295.enter(wl_output#345) +[2617743.524] {Default Queue} discarded wl_surface#167.enter(wl_output#345) +[2617743.529] {Default Queue} wl_registry#358.global(1, "wl_compositor", 6) +[2617743.536] {Default Queue} -> wl_registry#358.bind(1, "wl_compositor", 1, new id [unknown]#364) +[2617743.542] {Default Queue} wl_registry#358.global(2, "wl_subcompositor", 1) +[2617743.547] {Default Queue} -> wl_registry#358.bind(2, "wl_subcompositor", 1, new id [unknown]#365) +[2617743.553] {Default Queue} wl_registry#358.global(3, "xdg_wm_base", 6) +[2617743.559] {Default Queue} -> wl_registry#358.bind(3, "xdg_wm_base", 1, new id [unknown]#366) +[2617743.565] {Default Queue} wl_registry#358.global(6, "zwlr_layer_shell_v1", 5) +[2617743.570] {Default Queue} wl_registry#358.global(7, "ext_session_lock_manager_v1", 1) +[2617743.576] {Default Queue} wl_registry#358.global(8, "wl_shm", 2) +[2617743.582] {Default Queue} -> wl_registry#358.bind(8, "wl_shm", 1, new id [unknown]#367) +[2617743.587] {Default Queue} -> wl_registry#358.bind(8, "wl_shm", 1, new id [unknown]#368) +[2617743.593] {Default Queue} -> wl_registry#358.bind(8, "wl_shm", 1, new id [unknown]#369) +[2617743.598] {Default Queue} wl_registry#358.global(9, "zxdg_output_manager_v1", 3) +[2617743.604] {Default Queue} wl_registry#358.global(10, "wp_fractional_scale_manager_v1", 1) +[2617743.610] {Default Queue} wl_registry#358.global(11, "zwp_tablet_manager_v2", 1) +[2617743.615] {Default Queue} wl_registry#358.global(12, "zwp_pointer_gestures_v1", 3) +[2617743.621] {Default Queue} wl_registry#358.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617743.626] {Default Queue} -> wl_registry#358.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#370) +[2617743.632] {Default Queue} wl_registry#358.global(14, "zwp_pointer_constraints_v1", 1) +[2617743.638] {Default Queue} -> wl_registry#358.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#371) +[2617743.643] {Default Queue} wl_registry#358.global(15, "ext_idle_notifier_v1", 2) +[2617743.649] {Default Queue} wl_registry#358.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617743.654] {Default Queue} wl_registry#358.global(17, "wl_data_device_manager", 3) +[2617743.660] {Default Queue} -> wl_registry#358.bind(17, "wl_data_device_manager", 2, new id [unknown]#372) +[2617743.666] {Default Queue} -> wl_data_device_manager#372.create_data_source(new id wl_data_source#373) +[2617743.671] {Default Queue} -> wl_data_source#373.offer("text/plain") +[2617743.677] {Default Queue} -> wl_data_source#373.offer("text/plain;charset=utf-8") +[2617743.682] {Default Queue} -> wl_data_source#373.offer("TEXT") +[2617743.687] {Default Queue} -> wl_data_source#373.offer("STRING") +[2617743.692] {Default Queue} -> wl_data_source#373.offer("UTF8_STRING") +[2617743.701] {Default Queue} wl_registry#358.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617743.709] {Default Queue} -> wl_registry#358.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#374) +[2617743.716] {Default Queue} -> zwp_primary_selection_device_manager_v1#374.create_source(new id zwp_primary_selection_source_v1#375) +[2617743.729] {Default Queue} -> zwp_primary_selection_source_v1#375.offer("text/plain") +[2617743.736] {Default Queue} -> zwp_primary_selection_source_v1#375.offer("text/plain;charset=utf-8") +[2617743.744] {Default Queue} -> zwp_primary_selection_source_v1#375.offer("TEXT") +[2617743.753] {Default Queue} -> zwp_primary_selection_source_v1#375.offer("STRING") +[2617743.760] {Default Queue} -> zwp_primary_selection_source_v1#375.offer("UTF8_STRING") +[2617743.768] {Default Queue} wl_registry#358.global(19, "zwlr_data_control_manager_v1", 2) +[2617743.777] {Default Queue} wl_registry#358.global(20, "ext_data_control_manager_v1", 1) +[2617743.785] {Default Queue} wl_registry#358.global(21, "wp_presentation", 2) +[2617743.793] {Default Queue} wl_registry#358.global(22, "wp_security_context_manager_v1", 1) +[2617743.801] {Default Queue} wl_registry#358.global(23, "zwp_text_input_manager_v3", 1) +[2617743.806] {Default Queue} wl_registry#358.global(24, "zwp_input_method_manager_v2", 1) +[2617743.812] {Default Queue} wl_registry#358.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617743.818] {Default Queue} wl_registry#358.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617743.823] {Default Queue} wl_registry#358.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617743.829] {Default Queue} wl_registry#358.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617743.835] {Default Queue} wl_registry#358.global(29, "ext_workspace_manager_v1", 1) +[2617743.840] {Default Queue} wl_registry#358.global(30, "zwlr_output_manager_v1", 4) +[2617743.846] {Default Queue} wl_registry#358.global(31, "zwlr_screencopy_manager_v1", 3) +[2617743.851] {Default Queue} wl_registry#358.global(32, "wp_viewporter", 1) +[2617743.856] {Default Queue} wl_registry#358.global(33, "zxdg_exporter_v2", 1) +[2617743.869] {Default Queue} wl_registry#358.global(34, "zxdg_importer_v2", 1) +[2617743.874] {Default Queue} wl_registry#358.global(36, "xdg_activation_v1", 1) +[2617743.898] {Default Queue} wl_registry#358.global(37, "mutter_x11_interop", 1) +[2617743.913] {Default Queue} wl_registry#358.global(38, "wl_seat", 9) +[2617743.921] {Default Queue} -> wl_registry#358.bind(38, "wl_seat", 1, new id [unknown]#376) +[2617743.927] {Default Queue} wl_registry#358.global(39, "wp_cursor_shape_manager_v1", 2) +[2617743.931] {Default Queue} wl_registry#358.global(40, "wl_output", 4) +[2617743.936] {Default Queue} -> wl_registry#358.bind(40, "wl_output", 1, new id [unknown]#377) +[2617743.941] {Default Queue} wl_callback#359.done(0) +[2617743.946] {Default Queue} discarded wl_surface#327.enter(wl_output#18) +[2617743.950] {Default Queue} discarded wl_surface#327.enter(wl_output#57) +[2617743.955] {Default Queue} discarded wl_surface#327.enter(wl_output#89) +[2617743.959] {Default Queue} discarded wl_surface#327.enter(wl_output#121) +[2617743.963] {Default Queue} discarded wl_surface#327.enter(wl_output#153) +[2617743.967] {Default Queue} discarded wl_surface#327.enter(wl_output#185) +[2617743.971] {Default Queue} discarded wl_surface#327.enter(wl_output#217) +[2617743.975] {Default Queue} discarded wl_surface#327.enter(wl_output#249) +[2617743.979] {Default Queue} discarded wl_surface#327.enter(wl_output#281) +[2617743.983] {Default Queue} discarded wl_surface#327.enter(wl_output#313) +[2617743.987] {Default Queue} discarded wl_surface#327.enter(wl_output#345) +[2617743.991] {Default Queue} -> wl_compositor#332.create_surface(new id wl_surface#359) +[2617743.996] {Default Queue} -> wl_subcompositor#365.get_subsurface(new id wl_subsurface#378, wl_surface#359, wl_surface#327) +[2617744.001] {Default Queue} -> wl_subsurface#378.set_desync() +[2617744.005] {Default Queue} -> wl_subsurface#378.set_position(0, 0) +[2617744.016] {Default Queue} -> wl_subsurface#378.place_above(wl_surface#327) +[2617744.068] {Default Queue} -> wl_shm#367.create_pool(new id wl_shm_pool#379, fd 64, 16) +[2617744.075] {Default Queue} -> wl_shm#367.create_pool(new id wl_shm_pool#380, fd 65, 16) +[2617744.081] {Default Queue} -> wl_shm_pool#379.create_buffer(new id wl_buffer#381, 0, 2, 2, 8, 0) +[2617744.086] {Default Queue} -> wl_shm_pool#380.create_buffer(new id wl_buffer#382, 0, 2, 2, 8, 0) +[2617744.094] {Default Queue} -> wl_surface#359.attach(wl_buffer#381, 0, 0) +[2617744.099] {Default Queue} -> wl_surface#359.commit() +[2617744.105] {Default Queue} -> wl_surface#359.attach(wl_buffer#381, 0, 0) +[2617744.109] {Default Queue} -> wl_surface#359.commit() +[2617744.114] {Default Queue} -> wl_compositor#364.create_region(new id wl_region#383) +[2617744.118] {Default Queue} -> wl_compositor#364.create_region(new id wl_region#384) +[2617744.122] {Default Queue} -> wl_region#383.subtract(0, 0, 2, 2) +[2617744.127] {Default Queue} -> wl_region#383.add(0, 0, 0, 0) +[2617744.132] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) +[2617744.136] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) +[2617744.140] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) +[2617744.145] {Default Queue} -> wl_surface#327.damage(0, 0, 2, 2) +[2617744.152] {Default Queue} -> wl_surface#359.attach(wl_buffer#381, 0, 0) +[2617744.157] {Default Queue} -> wl_surface#359.commit() +[2617744.189] {Default Queue} -> wl_shm#369.create_pool(new id wl_shm_pool#385, fd 68, 640) +[2617744.196] {Default Queue} -> wl_shm#369.create_pool(new id wl_shm_pool#386, fd 69, 640) +[2617744.202] {Default Queue} -> wl_shm_pool#385.create_buffer(new id wl_buffer#387, 0, 10, 16, 40, 0) +[2617744.206] {Default Queue} -> wl_shm_pool#386.create_buffer(new id wl_buffer#388, 0, 10, 16, 40, 0) +[2617744.214] {Default Queue} -> wl_compositor#364.create_surface(new id wl_surface#389) +[2617744.218] {Default Queue} -> wl_surface#389.attach(wl_buffer#387, 0, 0) +[2617744.222] {Default Queue} -> wl_surface#389.commit() +[2617744.228] {Default Queue} -> wl_surface#389.attach(wl_buffer#387, 0, 0) +[2617744.233] {Default Queue} -> wl_surface#389.commit() +[2617744.239] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) +[2617744.247] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#390) +[2617744.251] {Default Queue} -> wl_display#1.sync(new id wl_callback#391) +[2617753.308] {Display Queue} wl_display#1.delete_id(391) +[2617753.323] {Default Queue} wl_keyboard#360.keymap(1, fd 64, 68213) +[2617753.331] {Default Queue} wl_keyboard#360.enter(566, wl_surface#19, array[0]) +[2617753.340] {Default Queue} wl_keyboard#360.modifiers(566, 0, 0, 16, 0) +[2617753.346] {Default Queue} discarded wl_shm#367.format(875709016) +[2617753.353] {Default Queue} discarded wl_shm#367.format(1) +[2617753.358] {Default Queue} discarded wl_shm#367.format(0) +[2617753.365] {Default Queue} discarded wl_shm#367.format(875708993) +[2617753.371] {Default Queue} discarded wl_shm#368.format(875709016) +[2617753.377] {Default Queue} discarded wl_shm#368.format(1) +[2617753.383] {Default Queue} discarded wl_shm#368.format(0) +[2617753.388] {Default Queue} discarded wl_shm#368.format(875708993) +[2617753.393] {Default Queue} discarded wl_shm#369.format(875709016) +[2617753.399] {Default Queue} discarded wl_shm#369.format(1) +[2617753.404] {Default Queue} discarded wl_shm#369.format(0) +[2617753.410] {Default Queue} discarded wl_shm#369.format(875708993) +[2617753.416] {Default Queue} wl_seat#376.capabilities(7) +[2617753.423] {Default Queue} -> wl_seat#376.get_keyboard(new id wl_keyboard#392) +[2617753.429] {Default Queue} -> wl_seat#376.get_pointer(new id wl_pointer#393) +[2617753.436] {Default Queue} -> wl_data_device_manager#372.get_data_device(new id wl_data_device#394, wl_seat#376) +[2617753.443] {Default Queue} -> zwp_primary_selection_device_manager_v1#374.get_device(new id zwp_primary_selection_device_v1#395, wl_seat#376) +[2617753.454] {Default Queue} wl_output#377.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617753.468] {Default Queue} wl_output#377.mode(3, 1280, 800, 60000) +[2617753.480] {Default Queue} discarded wl_surface#3.enter(wl_output#377) +[2617753.487] {Default Queue} discarded wl_surface#135.enter(wl_output#377) +[2617753.491] {Default Queue} discarded wl_surface#231.enter(wl_output#377) +[2617753.495] {Default Queue} discarded wl_surface#103.enter(wl_output#377) +[2617753.499] {Default Queue} discarded wl_surface#327.enter(wl_output#377) +[2617753.504] {Default Queue} discarded wl_surface#43.enter(wl_output#377) +[2617753.509] {Default Queue} discarded wl_surface#19.enter(wl_output#377) +[2617753.514] {Default Queue} discarded wl_surface#199.enter(wl_output#377) +[2617753.519] {Default Queue} discarded wl_surface#263.enter(wl_output#377) +[2617753.525] {Default Queue} discarded wl_surface#71.enter(wl_output#377) +[2617753.531] {Default Queue} discarded wl_surface#295.enter(wl_output#377) +[2617753.536] {Default Queue} discarded wl_surface#167.enter(wl_output#377) +[2617753.542] {Default Queue} wl_registry#390.global(1, "wl_compositor", 6) +[2617753.550] {Default Queue} -> wl_registry#390.bind(1, "wl_compositor", 1, new id [unknown]#396) +[2617753.556] {Default Queue} wl_registry#390.global(2, "wl_subcompositor", 1) +[2617753.561] {Default Queue} -> wl_registry#390.bind(2, "wl_subcompositor", 1, new id [unknown]#397) +[2617753.565] {Default Queue} wl_registry#390.global(3, "xdg_wm_base", 6) +[2617753.570] {Default Queue} -> wl_registry#390.bind(3, "xdg_wm_base", 1, new id [unknown]#398) +[2617753.574] {Default Queue} wl_registry#390.global(6, "zwlr_layer_shell_v1", 5) +[2617753.579] {Default Queue} wl_registry#390.global(7, "ext_session_lock_manager_v1", 1) +[2617753.583] {Default Queue} wl_registry#390.global(8, "wl_shm", 2) +[2617753.588] {Default Queue} -> wl_registry#390.bind(8, "wl_shm", 1, new id [unknown]#399) +[2617753.593] {Default Queue} -> wl_registry#390.bind(8, "wl_shm", 1, new id [unknown]#400) +[2617753.597] {Default Queue} -> wl_registry#390.bind(8, "wl_shm", 1, new id [unknown]#401) +[2617753.601] {Default Queue} wl_registry#390.global(9, "zxdg_output_manager_v1", 3) +[2617753.606] {Default Queue} wl_registry#390.global(10, "wp_fractional_scale_manager_v1", 1) +[2617753.610] {Default Queue} wl_registry#390.global(11, "zwp_tablet_manager_v2", 1) +[2617753.614] {Default Queue} wl_registry#390.global(12, "zwp_pointer_gestures_v1", 3) +[2617753.619] {Default Queue} wl_registry#390.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617753.623] {Default Queue} -> wl_registry#390.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#402) +[2617753.628] {Default Queue} wl_registry#390.global(14, "zwp_pointer_constraints_v1", 1) +[2617753.632] {Default Queue} -> wl_registry#390.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#403) +[2617753.637] {Default Queue} wl_registry#390.global(15, "ext_idle_notifier_v1", 2) +[2617753.641] {Default Queue} wl_registry#390.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617753.646] {Default Queue} wl_registry#390.global(17, "wl_data_device_manager", 3) +[2617753.650] {Default Queue} -> wl_registry#390.bind(17, "wl_data_device_manager", 2, new id [unknown]#404) +[2617753.655] {Default Queue} -> wl_data_device_manager#404.create_data_source(new id wl_data_source#405) +[2617753.660] {Default Queue} -> wl_data_source#405.offer("text/plain") +[2617753.664] {Default Queue} -> wl_data_source#405.offer("text/plain;charset=utf-8") +[2617753.668] {Default Queue} -> wl_data_source#405.offer("TEXT") +[2617753.672] {Default Queue} -> wl_data_source#405.offer("STRING") +[2617753.676] {Default Queue} -> wl_data_source#405.offer("UTF8_STRING") +[2617753.680] {Default Queue} wl_registry#390.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617753.685] {Default Queue} -> wl_registry#390.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#406) +[2617753.689] {Default Queue} -> zwp_primary_selection_device_manager_v1#406.create_source(new id zwp_primary_selection_source_v1#407) +[2617753.697] {Default Queue} -> zwp_primary_selection_source_v1#407.offer("text/plain") +[2617753.705] {Default Queue} -> zwp_primary_selection_source_v1#407.offer("text/plain;charset=utf-8") +[2617753.711] {Default Queue} -> zwp_primary_selection_source_v1#407.offer("TEXT") +[2617753.716] {Default Queue} -> zwp_primary_selection_source_v1#407.offer("STRING") +[2617753.720] {Default Queue} -> zwp_primary_selection_source_v1#407.offer("UTF8_STRING") +[2617753.724] {Default Queue} wl_registry#390.global(19, "zwlr_data_control_manager_v1", 2) +[2617753.729] {Default Queue} wl_registry#390.global(20, "ext_data_control_manager_v1", 1) +[2617753.733] {Default Queue} wl_registry#390.global(21, "wp_presentation", 2) +[2617753.737] {Default Queue} wl_registry#390.global(22, "wp_security_context_manager_v1", 1) +[2617753.742] {Default Queue} wl_registry#390.global(23, "zwp_text_input_manager_v3", 1) +[2617753.747] {Default Queue} wl_registry#390.global(24, "zwp_input_method_manager_v2", 1) +[2617753.751] {Default Queue} wl_registry#390.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617753.755] {Default Queue} wl_registry#390.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617753.759] {Default Queue} wl_registry#390.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617753.764] {Default Queue} wl_registry#390.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617753.768] {Default Queue} wl_registry#390.global(29, "ext_workspace_manager_v1", 1) +[2617753.772] {Default Queue} wl_registry#390.global(30, "zwlr_output_manager_v1", 4) +[2617753.777] {Default Queue} wl_registry#390.global(31, "zwlr_screencopy_manager_v1", 3) +[2617753.781] {Default Queue} wl_registry#390.global(32, "wp_viewporter", 1) +[2617753.785] {Default Queue} wl_registry#390.global(33, "zxdg_exporter_v2", 1) +[2617753.790] {Default Queue} wl_registry#390.global(34, "zxdg_importer_v2", 1) +[2617753.794] {Default Queue} wl_registry#390.global(36, "xdg_activation_v1", 1) +[2617753.799] {Default Queue} wl_registry#390.global(37, "mutter_x11_interop", 1) +[2617753.803] {Default Queue} wl_registry#390.global(38, "wl_seat", 9) +[2617753.807] {Default Queue} -> wl_registry#390.bind(38, "wl_seat", 1, new id [unknown]#408) +[2617753.812] {Default Queue} wl_registry#390.global(39, "wp_cursor_shape_manager_v1", 2) +[2617753.816] {Default Queue} wl_registry#390.global(40, "wl_output", 4) +[2617753.821] {Default Queue} -> wl_registry#390.bind(40, "wl_output", 1, new id [unknown]#409) +[2617753.825] {Default Queue} wl_callback#391.done(0) +[2617753.830] {Default Queue} discarded wl_surface#359.enter(wl_output#18) +[2617753.833] {Default Queue} discarded wl_surface#359.enter(wl_output#57) +[2617753.837] {Default Queue} discarded wl_surface#359.enter(wl_output#89) +[2617753.841] {Default Queue} discarded wl_surface#359.enter(wl_output#121) +[2617753.845] {Default Queue} discarded wl_surface#359.enter(wl_output#153) +[2617753.849] {Default Queue} discarded wl_surface#359.enter(wl_output#185) +[2617753.853] {Default Queue} discarded wl_surface#359.enter(wl_output#217) +[2617753.857] {Default Queue} discarded wl_surface#359.enter(wl_output#249) +[2617753.870] {Default Queue} discarded wl_surface#359.enter(wl_output#281) +[2617753.874] {Default Queue} discarded wl_surface#359.enter(wl_output#313) +[2617753.877] {Default Queue} discarded wl_surface#359.enter(wl_output#345) +[2617753.882] {Default Queue} discarded wl_surface#359.enter(wl_output#377) +[2617753.886] {Default Queue} -> wl_compositor#364.create_surface(new id wl_surface#391) +[2617753.890] {Default Queue} -> wl_subcompositor#397.get_subsurface(new id wl_subsurface#410, wl_surface#391, wl_surface#359) +[2617753.895] {Default Queue} -> wl_subsurface#410.set_desync() +[2617753.899] {Default Queue} -> wl_subsurface#410.set_position(0, 0) +[2617753.903] {Default Queue} -> wl_subsurface#410.place_above(wl_surface#359) +[2617753.952] {Default Queue} -> wl_shm#399.create_pool(new id wl_shm_pool#411, fd 69, 16) +[2617753.960] {Default Queue} -> wl_shm#399.create_pool(new id wl_shm_pool#412, fd 70, 16) +[2617753.964] {Default Queue} -> wl_shm_pool#411.create_buffer(new id wl_buffer#413, 0, 2, 2, 8, 0) +[2617753.973] {Default Queue} -> wl_shm_pool#412.create_buffer(new id wl_buffer#414, 0, 2, 2, 8, 0) +[2617753.983] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) +[2617753.988] {Default Queue} -> wl_surface#391.commit() +[2617753.993] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) +[2617753.998] {Default Queue} -> wl_surface#391.commit() +[2617754.002] {Default Queue} -> wl_compositor#396.create_region(new id wl_region#415) +[2617754.006] {Default Queue} -> wl_compositor#396.create_region(new id wl_region#416) +[2617754.011] {Default Queue} -> wl_region#415.subtract(0, 0, 2, 2) +[2617754.015] {Default Queue} -> wl_region#415.add(0, 0, 0, 0) +[2617754.020] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2617754.024] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2617754.028] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2617754.032] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) +[2617754.046] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) +[2617754.054] {Default Queue} -> wl_surface#391.commit() +[2617754.087] {Default Queue} -> wl_shm#401.create_pool(new id wl_shm_pool#417, fd 73, 640) +[2617754.094] {Default Queue} -> wl_shm#401.create_pool(new id wl_shm_pool#418, fd 74, 640) +[2617754.099] {Default Queue} -> wl_shm_pool#417.create_buffer(new id wl_buffer#419, 0, 10, 16, 40, 0) +[2617754.104] {Default Queue} -> wl_shm_pool#418.create_buffer(new id wl_buffer#420, 0, 10, 16, 40, 0) +[2617754.110] {Default Queue} -> wl_compositor#396.create_surface(new id wl_surface#421) +[2617754.115] {Default Queue} -> wl_surface#421.attach(wl_buffer#419, 0, 0) +[2617754.120] {Default Queue} -> wl_surface#421.commit() +[2617754.125] {Default Queue} -> wl_surface#421.attach(wl_buffer#419, 0, 0) +[2617754.129] {Default Queue} -> wl_surface#421.commit() +[2617754.135] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) +[2617754.141] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2617754.146] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2617754.153] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#422) +[2617754.158] {Default Queue} -> wl_display#1.sync(new id wl_callback#423) +[2617763.338] {Display Queue} wl_display#1.delete_id(423) +[2617763.356] {Default Queue} wl_keyboard#392.keymap(1, fd 69, 68213) +[2617763.366] {Default Queue} wl_keyboard#392.enter(566, wl_surface#19, array[0]) +[2617763.376] {Default Queue} wl_keyboard#392.modifiers(566, 0, 0, 16, 0) +[2617763.386] {Default Queue} discarded wl_shm#399.format(875709016) +[2617763.394] {Default Queue} discarded wl_shm#399.format(1) +[2617763.400] {Default Queue} discarded wl_shm#399.format(0) +[2617763.410] {Default Queue} discarded wl_shm#399.format(875708993) +[2617763.417] {Default Queue} discarded wl_shm#400.format(875709016) +[2617763.425] {Default Queue} discarded wl_shm#400.format(1) +[2617763.432] {Default Queue} discarded wl_shm#400.format(0) +[2617763.440] {Default Queue} discarded wl_shm#400.format(875708993) +[2617763.447] {Default Queue} discarded wl_shm#401.format(875709016) +[2617763.454] {Default Queue} discarded wl_shm#401.format(1) +[2617763.461] {Default Queue} discarded wl_shm#401.format(0) +[2617763.467] {Default Queue} discarded wl_shm#401.format(875708993) +[2617763.474] {Default Queue} wl_seat#408.capabilities(7) +[2617763.482] {Default Queue} -> wl_seat#408.get_keyboard(new id wl_keyboard#424) +[2617763.490] {Default Queue} -> wl_seat#408.get_pointer(new id wl_pointer#425) +[2617763.499] {Default Queue} -> wl_data_device_manager#404.get_data_device(new id wl_data_device#426, wl_seat#408) +[2617763.508] {Default Queue} -> zwp_primary_selection_device_manager_v1#406.get_device(new id zwp_primary_selection_device_v1#427, wl_seat#408) +[2617763.523] {Default Queue} wl_output#409.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617763.534] {Default Queue} wl_output#409.mode(3, 1280, 800, 60000) +[2617763.542] {Default Queue} discarded wl_surface#3.enter(wl_output#409) +[2617763.550] {Default Queue} discarded wl_surface#135.enter(wl_output#409) +[2617763.566] {Default Queue} discarded wl_surface#231.enter(wl_output#409) +[2617763.580] {Default Queue} discarded wl_surface#359.enter(wl_output#409) +[2617763.587] {Default Queue} discarded wl_surface#103.enter(wl_output#409) +[2617763.592] {Default Queue} discarded wl_surface#327.enter(wl_output#409) +[2617763.597] {Default Queue} discarded wl_surface#43.enter(wl_output#409) +[2617763.603] {Default Queue} discarded wl_surface#19.enter(wl_output#409) +[2617763.610] {Default Queue} discarded wl_surface#199.enter(wl_output#409) +[2617763.616] {Default Queue} discarded wl_surface#263.enter(wl_output#409) +[2617763.623] {Default Queue} discarded wl_surface#71.enter(wl_output#409) +[2617763.630] {Default Queue} discarded wl_surface#295.enter(wl_output#409) +[2617763.637] {Default Queue} discarded wl_surface#167.enter(wl_output#409) +[2617763.644] {Default Queue} wl_registry#422.global(1, "wl_compositor", 6) +[2617763.651] {Default Queue} -> wl_registry#422.bind(1, "wl_compositor", 1, new id [unknown]#428) +[2617763.657] {Default Queue} wl_registry#422.global(2, "wl_subcompositor", 1) +[2617763.663] {Default Queue} -> wl_registry#422.bind(2, "wl_subcompositor", 1, new id [unknown]#429) +[2617763.669] {Default Queue} wl_registry#422.global(3, "xdg_wm_base", 6) +[2617763.675] {Default Queue} -> wl_registry#422.bind(3, "xdg_wm_base", 1, new id [unknown]#430) +[2617763.681] {Default Queue} wl_registry#422.global(6, "zwlr_layer_shell_v1", 5) +[2617763.687] {Default Queue} wl_registry#422.global(7, "ext_session_lock_manager_v1", 1) +[2617763.692] {Default Queue} wl_registry#422.global(8, "wl_shm", 2) +[2617763.699] {Default Queue} -> wl_registry#422.bind(8, "wl_shm", 1, new id [unknown]#431) +[2617763.704] {Default Queue} -> wl_registry#422.bind(8, "wl_shm", 1, new id [unknown]#432) +[2617763.710] {Default Queue} -> wl_registry#422.bind(8, "wl_shm", 1, new id [unknown]#433) +[2617763.716] {Default Queue} wl_registry#422.global(9, "zxdg_output_manager_v1", 3) +[2617763.721] {Default Queue} wl_registry#422.global(10, "wp_fractional_scale_manager_v1", 1) +[2617763.727] {Default Queue} wl_registry#422.global(11, "zwp_tablet_manager_v2", 1) +[2617763.733] {Default Queue} wl_registry#422.global(12, "zwp_pointer_gestures_v1", 3) +[2617763.738] {Default Queue} wl_registry#422.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617763.744] {Default Queue} -> wl_registry#422.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#434) +[2617763.749] {Default Queue} wl_registry#422.global(14, "zwp_pointer_constraints_v1", 1) +[2617763.755] {Default Queue} -> wl_registry#422.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#435) +[2617763.761] {Default Queue} wl_registry#422.global(15, "ext_idle_notifier_v1", 2) +[2617763.766] {Default Queue} wl_registry#422.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617763.772] {Default Queue} wl_registry#422.global(17, "wl_data_device_manager", 3) +[2617763.779] {Default Queue} -> wl_registry#422.bind(17, "wl_data_device_manager", 2, new id [unknown]#436) +[2617763.784] {Default Queue} -> wl_data_device_manager#436.create_data_source(new id wl_data_source#437) +[2617763.790] {Default Queue} -> wl_data_source#437.offer("text/plain") +[2617763.795] {Default Queue} -> wl_data_source#437.offer("text/plain;charset=utf-8") +[2617763.800] {Default Queue} -> wl_data_source#437.offer("TEXT") +[2617763.806] {Default Queue} -> wl_data_source#437.offer("STRING") +[2617763.811] {Default Queue} -> wl_data_source#437.offer("UTF8_STRING") +[2617763.817] {Default Queue} wl_registry#422.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617763.823] {Default Queue} -> wl_registry#422.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#438) +[2617763.828] {Default Queue} -> zwp_primary_selection_device_manager_v1#438.create_source(new id zwp_primary_selection_source_v1#439) +[2617763.838] {Default Queue} -> zwp_primary_selection_source_v1#439.offer("text/plain") +[2617763.843] {Default Queue} -> zwp_primary_selection_source_v1#439.offer("text/plain;charset=utf-8") +[2617763.848] {Default Queue} -> zwp_primary_selection_source_v1#439.offer("TEXT") +[2617763.860] {Default Queue} -> zwp_primary_selection_source_v1#439.offer("STRING") +[2617763.873] {Default Queue} -> zwp_primary_selection_source_v1#439.offer("UTF8_STRING") +[2617763.878] {Default Queue} wl_registry#422.global(19, "zwlr_data_control_manager_v1", 2) +[2617763.884] {Default Queue} wl_registry#422.global(20, "ext_data_control_manager_v1", 1) +[2617763.890] {Default Queue} wl_registry#422.global(21, "wp_presentation", 2) +[2617763.896] {Default Queue} wl_registry#422.global(22, "wp_security_context_manager_v1", 1) +[2617763.902] {Default Queue} wl_registry#422.global(23, "zwp_text_input_manager_v3", 1) +[2617763.907] {Default Queue} wl_registry#422.global(24, "zwp_input_method_manager_v2", 1) +[2617763.913] {Default Queue} wl_registry#422.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617763.918] {Default Queue} wl_registry#422.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617763.924] {Default Queue} wl_registry#422.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617763.930] {Default Queue} wl_registry#422.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617763.936] {Default Queue} wl_registry#422.global(29, "ext_workspace_manager_v1", 1) +[2617763.942] {Default Queue} wl_registry#422.global(30, "zwlr_output_manager_v1", 4) +[2617763.947] {Default Queue} wl_registry#422.global(31, "zwlr_screencopy_manager_v1", 3) +[2617763.952] {Default Queue} wl_registry#422.global(32, "wp_viewporter", 1) +[2617763.958] {Default Queue} wl_registry#422.global(33, "zxdg_exporter_v2", 1) +[2617763.963] {Default Queue} wl_registry#422.global(34, "zxdg_importer_v2", 1) +[2617763.969] {Default Queue} wl_registry#422.global(36, "xdg_activation_v1", 1) +[2617763.974] {Default Queue} wl_registry#422.global(37, "mutter_x11_interop", 1) +[2617763.980] {Default Queue} wl_registry#422.global(38, "wl_seat", 9) +[2617763.986] {Default Queue} -> wl_registry#422.bind(38, "wl_seat", 1, new id [unknown]#440) +[2617763.992] {Default Queue} wl_registry#422.global(39, "wp_cursor_shape_manager_v1", 2) +[2617763.997] {Default Queue} wl_registry#422.global(40, "wl_output", 4) +[2617764.003] {Default Queue} -> wl_registry#422.bind(40, "wl_output", 1, new id [unknown]#441) +[2617764.009] {Default Queue} wl_callback#423.done(0) +[2617764.015] {Default Queue} discarded wl_surface#391.enter(wl_output#18) +[2617764.020] {Default Queue} discarded wl_surface#391.enter(wl_output#57) +[2617764.026] {Default Queue} discarded wl_surface#391.enter(wl_output#89) +[2617764.031] {Default Queue} discarded wl_surface#391.enter(wl_output#121) +[2617764.036] {Default Queue} discarded wl_surface#391.enter(wl_output#153) +[2617764.041] {Default Queue} discarded wl_surface#391.enter(wl_output#185) +[2617764.046] {Default Queue} discarded wl_surface#391.enter(wl_output#217) +[2617764.051] {Default Queue} discarded wl_surface#391.enter(wl_output#249) +[2617764.056] {Default Queue} discarded wl_surface#391.enter(wl_output#281) +[2617764.061] {Default Queue} discarded wl_surface#391.enter(wl_output#313) +[2617764.066] {Default Queue} discarded wl_surface#391.enter(wl_output#345) +[2617764.071] {Default Queue} discarded wl_surface#391.enter(wl_output#377) +[2617764.076] {Default Queue} discarded wl_surface#391.enter(wl_output#409) +[2617764.082] {Default Queue} -> wl_compositor#364.create_surface(new id wl_surface#423) +[2617764.087] {Default Queue} -> wl_subcompositor#429.get_subsurface(new id wl_subsurface#442, wl_surface#423, wl_surface#359) +[2617764.094] {Default Queue} -> wl_subsurface#442.set_desync() +[2617764.099] {Default Queue} -> wl_subsurface#442.set_position(0, 0) +[2617764.105] {Default Queue} -> wl_subsurface#442.place_above(wl_surface#359) +[2617764.161] {Default Queue} -> wl_shm#431.create_pool(new id wl_shm_pool#443, fd 74, 16) +[2617764.169] {Default Queue} -> wl_shm#431.create_pool(new id wl_shm_pool#444, fd 75, 16) +[2617764.176] {Default Queue} -> wl_shm_pool#443.create_buffer(new id wl_buffer#445, 0, 2, 2, 8, 0) +[2617764.182] {Default Queue} -> wl_shm_pool#444.create_buffer(new id wl_buffer#446, 0, 2, 2, 8, 0) +[2617764.197] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) +[2617764.207] {Default Queue} -> wl_surface#423.commit() +[2617764.217] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) +[2617764.225] {Default Queue} -> wl_surface#423.commit() +[2617764.233] {Default Queue} -> wl_compositor#428.create_region(new id wl_region#447) +[2617764.240] {Default Queue} -> wl_compositor#428.create_region(new id wl_region#448) +[2617764.245] {Default Queue} -> wl_region#447.subtract(0, 0, 2, 2) +[2617764.250] {Default Queue} -> wl_region#447.add(0, 0, 0, 0) +[2617764.254] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) +[2617764.259] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) +[2617764.263] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) +[2617764.268] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) +[2617764.277] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) +[2617764.282] {Default Queue} -> wl_surface#423.commit() +[2617764.321] {Default Queue} -> wl_shm#433.create_pool(new id wl_shm_pool#449, fd 78, 640) +[2617764.329] {Default Queue} -> wl_shm#433.create_pool(new id wl_shm_pool#450, fd 79, 640) +[2617764.334] {Default Queue} -> wl_shm_pool#449.create_buffer(new id wl_buffer#451, 0, 10, 16, 40, 0) +[2617764.339] {Default Queue} -> wl_shm_pool#450.create_buffer(new id wl_buffer#452, 0, 10, 16, 40, 0) +[2617764.347] {Default Queue} -> wl_compositor#428.create_surface(new id wl_surface#453) +[2617764.352] {Default Queue} -> wl_surface#453.attach(wl_buffer#451, 0, 0) +[2617764.356] {Default Queue} -> wl_surface#453.commit() +[2617764.363] {Default Queue} -> wl_surface#453.attach(wl_buffer#451, 0, 0) +[2617764.369] {Default Queue} -> wl_surface#453.commit() +[2617764.374] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) +[2617764.381] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#454) +[2617764.386] {Default Queue} -> wl_display#1.sync(new id wl_callback#455) +[2617773.370] {Display Queue} wl_display#1.delete_id(455) +[2617773.384] {Default Queue} wl_keyboard#424.keymap(1, fd 74, 68213) +[2617773.392] {Default Queue} wl_keyboard#424.enter(566, wl_surface#19, array[0]) +[2617773.399] {Default Queue} wl_keyboard#424.modifiers(566, 0, 0, 16, 0) +[2617773.407] {Default Queue} discarded wl_shm#431.format(875709016) +[2617773.412] {Default Queue} discarded wl_shm#431.format(1) +[2617773.418] {Default Queue} discarded wl_shm#431.format(0) +[2617773.424] {Default Queue} discarded wl_shm#431.format(875708993) +[2617773.430] {Default Queue} discarded wl_shm#432.format(875709016) +[2617773.436] {Default Queue} discarded wl_shm#432.format(1) +[2617773.442] {Default Queue} discarded wl_shm#432.format(0) +[2617773.449] {Default Queue} discarded wl_shm#432.format(875708993) +[2617773.455] {Default Queue} discarded wl_shm#433.format(875709016) +[2617773.460] {Default Queue} discarded wl_shm#433.format(1) +[2617773.466] {Default Queue} discarded wl_shm#433.format(0) +[2617773.471] {Default Queue} discarded wl_shm#433.format(875708993) +[2617773.476] {Default Queue} wl_seat#440.capabilities(7) +[2617773.483] {Default Queue} -> wl_seat#440.get_keyboard(new id wl_keyboard#456) +[2617773.489] {Default Queue} -> wl_seat#440.get_pointer(new id wl_pointer#457) +[2617773.496] {Default Queue} -> wl_data_device_manager#436.get_data_device(new id wl_data_device#458, wl_seat#440) +[2617773.503] {Default Queue} -> zwp_primary_selection_device_manager_v1#438.get_device(new id zwp_primary_selection_device_v1#459, wl_seat#440) +[2617773.514] {Default Queue} wl_output#441.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617773.522] {Default Queue} wl_output#441.mode(3, 1280, 800, 60000) +[2617773.528] {Default Queue} discarded wl_surface#3.enter(wl_output#441) +[2617773.534] {Default Queue} discarded wl_surface#135.enter(wl_output#441) +[2617773.540] {Default Queue} discarded wl_surface#231.enter(wl_output#441) +[2617773.545] {Default Queue} discarded wl_surface#359.enter(wl_output#441) +[2617773.551] {Default Queue} discarded wl_surface#103.enter(wl_output#441) +[2617773.562] {Default Queue} discarded wl_surface#327.enter(wl_output#441) +[2617773.569] {Default Queue} discarded wl_surface#43.enter(wl_output#441) +[2617773.573] {Default Queue} discarded wl_surface#19.enter(wl_output#441) +[2617773.577] {Default Queue} discarded wl_surface#199.enter(wl_output#441) +[2617773.581] {Default Queue} discarded wl_surface#391.enter(wl_output#441) +[2617773.585] {Default Queue} discarded wl_surface#263.enter(wl_output#441) +[2617773.590] {Default Queue} discarded wl_surface#71.enter(wl_output#441) +[2617773.596] {Default Queue} discarded wl_surface#295.enter(wl_output#441) +[2617773.601] {Default Queue} discarded wl_surface#167.enter(wl_output#441) +[2617773.606] {Default Queue} wl_registry#454.global(1, "wl_compositor", 6) +[2617773.614] {Default Queue} -> wl_registry#454.bind(1, "wl_compositor", 1, new id [unknown]#460) +[2617773.620] {Default Queue} wl_registry#454.global(2, "wl_subcompositor", 1) +[2617773.626] {Default Queue} -> wl_registry#454.bind(2, "wl_subcompositor", 1, new id [unknown]#461) +[2617773.630] {Default Queue} wl_registry#454.global(3, "xdg_wm_base", 6) +[2617773.635] {Default Queue} -> wl_registry#454.bind(3, "xdg_wm_base", 1, new id [unknown]#462) +[2617773.639] {Default Queue} wl_registry#454.global(6, "zwlr_layer_shell_v1", 5) +[2617773.644] {Default Queue} wl_registry#454.global(7, "ext_session_lock_manager_v1", 1) +[2617773.648] {Default Queue} wl_registry#454.global(8, "wl_shm", 2) +[2617773.653] {Default Queue} -> wl_registry#454.bind(8, "wl_shm", 1, new id [unknown]#463) +[2617773.657] {Default Queue} -> wl_registry#454.bind(8, "wl_shm", 1, new id [unknown]#464) +[2617773.662] {Default Queue} -> wl_registry#454.bind(8, "wl_shm", 1, new id [unknown]#465) +[2617773.666] {Default Queue} wl_registry#454.global(9, "zxdg_output_manager_v1", 3) +[2617773.670] {Default Queue} wl_registry#454.global(10, "wp_fractional_scale_manager_v1", 1) +[2617773.675] {Default Queue} wl_registry#454.global(11, "zwp_tablet_manager_v2", 1) +[2617773.679] {Default Queue} wl_registry#454.global(12, "zwp_pointer_gestures_v1", 3) +[2617773.684] {Default Queue} wl_registry#454.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617773.688] {Default Queue} -> wl_registry#454.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#466) +[2617773.693] {Default Queue} wl_registry#454.global(14, "zwp_pointer_constraints_v1", 1) +[2617773.697] {Default Queue} -> wl_registry#454.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#467) +[2617773.702] {Default Queue} wl_registry#454.global(15, "ext_idle_notifier_v1", 2) +[2617773.706] {Default Queue} wl_registry#454.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617773.711] {Default Queue} wl_registry#454.global(17, "wl_data_device_manager", 3) +[2617773.717] {Default Queue} -> wl_registry#454.bind(17, "wl_data_device_manager", 2, new id [unknown]#468) +[2617773.721] {Default Queue} -> wl_data_device_manager#468.create_data_source(new id wl_data_source#469) +[2617773.725] {Default Queue} -> wl_data_source#469.offer("text/plain") +[2617773.730] {Default Queue} -> wl_data_source#469.offer("text/plain;charset=utf-8") +[2617773.734] {Default Queue} -> wl_data_source#469.offer("TEXT") +[2617773.738] {Default Queue} -> wl_data_source#469.offer("STRING") +[2617773.742] {Default Queue} -> wl_data_source#469.offer("UTF8_STRING") +[2617773.746] {Default Queue} wl_registry#454.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617773.751] {Default Queue} -> wl_registry#454.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#470) +[2617773.755] {Default Queue} -> zwp_primary_selection_device_manager_v1#470.create_source(new id zwp_primary_selection_source_v1#471) +[2617773.765] {Default Queue} -> zwp_primary_selection_source_v1#471.offer("text/plain") +[2617773.771] {Default Queue} -> zwp_primary_selection_source_v1#471.offer("text/plain;charset=utf-8") +[2617773.775] {Default Queue} -> zwp_primary_selection_source_v1#471.offer("TEXT") +[2617773.780] {Default Queue} -> zwp_primary_selection_source_v1#471.offer("STRING") +[2617773.784] {Default Queue} -> zwp_primary_selection_source_v1#471.offer("UTF8_STRING") +[2617773.792] {Default Queue} wl_registry#454.global(19, "zwlr_data_control_manager_v1", 2) +[2617773.799] {Default Queue} wl_registry#454.global(20, "ext_data_control_manager_v1", 1) +[2617773.803] {Default Queue} wl_registry#454.global(21, "wp_presentation", 2) +[2617773.807] {Default Queue} wl_registry#454.global(22, "wp_security_context_manager_v1", 1) +[2617773.812] {Default Queue} wl_registry#454.global(23, "zwp_text_input_manager_v3", 1) +[2617773.816] {Default Queue} wl_registry#454.global(24, "zwp_input_method_manager_v2", 1) +[2617773.821] {Default Queue} wl_registry#454.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617773.825] {Default Queue} wl_registry#454.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617773.829] {Default Queue} wl_registry#454.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617773.834] {Default Queue} wl_registry#454.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617773.838] {Default Queue} wl_registry#454.global(29, "ext_workspace_manager_v1", 1) +[2617773.843] {Default Queue} wl_registry#454.global(30, "zwlr_output_manager_v1", 4) +[2617773.847] {Default Queue} wl_registry#454.global(31, "zwlr_screencopy_manager_v1", 3) +[2617773.852] {Default Queue} wl_registry#454.global(32, "wp_viewporter", 1) +[2617773.857] {Default Queue} wl_registry#454.global(33, "zxdg_exporter_v2", 1) +[2617773.862] {Default Queue} wl_registry#454.global(34, "zxdg_importer_v2", 1) +[2617773.866] {Default Queue} wl_registry#454.global(36, "xdg_activation_v1", 1) +[2617773.880] {Default Queue} wl_registry#454.global(37, "mutter_x11_interop", 1) +[2617773.885] {Default Queue} wl_registry#454.global(38, "wl_seat", 9) +[2617773.890] {Default Queue} -> wl_registry#454.bind(38, "wl_seat", 1, new id [unknown]#472) +[2617773.894] {Default Queue} wl_registry#454.global(39, "wp_cursor_shape_manager_v1", 2) +[2617773.898] {Default Queue} wl_registry#454.global(40, "wl_output", 4) +[2617773.903] {Default Queue} -> wl_registry#454.bind(40, "wl_output", 1, new id [unknown]#473) +[2617773.908] {Default Queue} wl_callback#455.done(0) +[2617773.912] {Default Queue} discarded wl_surface#423.enter(wl_output#18) +[2617773.916] {Default Queue} discarded wl_surface#423.enter(wl_output#57) +[2617773.920] {Default Queue} discarded wl_surface#423.enter(wl_output#89) +[2617773.924] {Default Queue} discarded wl_surface#423.enter(wl_output#121) +[2617773.928] {Default Queue} discarded wl_surface#423.enter(wl_output#153) +[2617773.933] {Default Queue} discarded wl_surface#423.enter(wl_output#185) +[2617773.938] {Default Queue} discarded wl_surface#423.enter(wl_output#217) +[2617773.944] {Default Queue} discarded wl_surface#423.enter(wl_output#249) +[2617773.949] {Default Queue} discarded wl_surface#423.enter(wl_output#281) +[2617773.953] {Default Queue} discarded wl_surface#423.enter(wl_output#313) +[2617773.957] {Default Queue} discarded wl_surface#423.enter(wl_output#345) +[2617773.961] {Default Queue} discarded wl_surface#423.enter(wl_output#377) +[2617773.965] {Default Queue} discarded wl_surface#423.enter(wl_output#409) +[2617773.969] {Default Queue} discarded wl_surface#423.enter(wl_output#441) +[2617773.973] {Default Queue} -> wl_compositor#428.create_surface(new id wl_surface#455) +[2617773.978] {Default Queue} -> wl_subcompositor#461.get_subsurface(new id wl_subsurface#474, wl_surface#455, wl_surface#423) +[2617773.983] {Default Queue} -> wl_subsurface#474.set_desync() +[2617773.987] {Default Queue} -> wl_subsurface#474.set_position(0, 0) +[2617773.992] {Default Queue} -> wl_subsurface#474.place_above(wl_surface#423) +[2617774.048] {Default Queue} -> wl_shm#463.create_pool(new id wl_shm_pool#475, fd 79, 16) +[2617774.058] {Default Queue} -> wl_shm#463.create_pool(new id wl_shm_pool#476, fd 80, 16) +[2617774.063] {Default Queue} -> wl_shm_pool#475.create_buffer(new id wl_buffer#477, 0, 2, 2, 8, 0) +[2617774.068] {Default Queue} -> wl_shm_pool#476.create_buffer(new id wl_buffer#478, 0, 2, 2, 8, 0) +[2617774.079] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) +[2617774.090] {Default Queue} -> wl_surface#455.commit() +[2617774.099] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) +[2617774.104] {Default Queue} -> wl_surface#455.commit() +[2617774.108] {Default Queue} -> wl_compositor#460.create_region(new id wl_region#479) +[2617774.112] {Default Queue} -> wl_compositor#460.create_region(new id wl_region#480) +[2617774.118] {Default Queue} -> wl_region#479.subtract(0, 0, 2, 2) +[2617774.124] {Default Queue} -> wl_region#479.add(0, 0, 0, 0) +[2617774.128] {Default Queue} -> wl_surface#455.set_opaque_region(wl_region#480) +[2617774.133] {Default Queue} -> wl_surface#455.set_input_region(wl_region#479) +[2617774.137] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2617774.142] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) +[2617774.149] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) +[2617774.153] {Default Queue} -> wl_surface#455.commit() +[2617774.190] {Default Queue} -> wl_shm#465.create_pool(new id wl_shm_pool#481, fd 83, 640) +[2617774.198] {Default Queue} -> wl_shm#465.create_pool(new id wl_shm_pool#482, fd 84, 640) +[2617774.203] {Default Queue} -> wl_shm_pool#481.create_buffer(new id wl_buffer#483, 0, 10, 16, 40, 0) +[2617774.208] {Default Queue} -> wl_shm_pool#482.create_buffer(new id wl_buffer#484, 0, 10, 16, 40, 0) +[2617774.216] {Default Queue} -> wl_compositor#460.create_surface(new id wl_surface#485) +[2617774.220] {Default Queue} -> wl_surface#485.attach(wl_buffer#483, 0, 0) +[2617774.225] {Default Queue} -> wl_surface#485.commit() +[2617774.230] {Default Queue} -> wl_surface#485.attach(wl_buffer#483, 0, 0) +[2617774.235] {Default Queue} -> wl_surface#485.commit() +[2617774.247] {Default Queue} -> wl_region#383.subtract(0, 0, 2, 2) +[2617774.252] {Default Queue} -> wl_subsurface#378.set_position(3, 3) +[2617774.257] {Default Queue} -> wl_region#383.subtract(0, 0, 5, 5) +[2617774.262] {Default Queue} -> wl_region#383.add(0, 0, 0, 0) +[2617774.266] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) +[2617774.271] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) +[2617774.275] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2617774.279] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2617774.284] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) +[2617774.288] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) +[2617774.296] {Default Queue} -> wl_region#383.subtract(0, 0, 5, 5) +[2617774.301] {Default Queue} -> wl_region#383.add(0, 0, 0, 0) +[2617774.305] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) +[2617774.309] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) +[2617774.315] {Default Queue} -> wl_surface#359.attach(wl_buffer#381, 0, 0) +[2617774.320] {Default Queue} -> wl_surface#359.commit() +[2617774.328] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#486) +[2617774.333] {Default Queue} -> wl_display#1.sync(new id wl_callback#487) +[2617783.979] {Display Queue} wl_display#1.delete_id(487) +[2617783.996] {Default Queue} wl_keyboard#456.keymap(1, fd 79, 68213) +[2617784.003] {Default Queue} wl_keyboard#456.enter(566, wl_surface#19, array[0]) +[2617784.011] {Default Queue} wl_keyboard#456.modifiers(566, 0, 0, 16, 0) +[2617784.018] {Default Queue} discarded wl_shm#463.format(875709016) +[2617784.025] {Default Queue} discarded wl_shm#463.format(1) +[2617784.030] {Default Queue} discarded wl_shm#463.format(0) +[2617784.035] {Default Queue} discarded wl_shm#463.format(875708993) +[2617784.041] {Default Queue} discarded wl_shm#464.format(875709016) +[2617784.046] {Default Queue} discarded wl_shm#464.format(1) +[2617784.052] {Default Queue} discarded wl_shm#464.format(0) +[2617784.058] {Default Queue} discarded wl_shm#464.format(875708993) +[2617784.064] {Default Queue} discarded wl_shm#465.format(875709016) +[2617784.069] {Default Queue} discarded wl_shm#465.format(1) +[2617784.075] {Default Queue} discarded wl_shm#465.format(0) +[2617784.081] {Default Queue} discarded wl_shm#465.format(875708993) +[2617784.086] {Default Queue} wl_seat#472.capabilities(7) +[2617784.101] {Default Queue} -> wl_seat#472.get_keyboard(new id wl_keyboard#488) +[2617784.113] {Default Queue} -> wl_seat#472.get_pointer(new id wl_pointer#489) +[2617784.120] {Default Queue} -> wl_data_device_manager#468.get_data_device(new id wl_data_device#490, wl_seat#472) +[2617784.126] {Default Queue} -> zwp_primary_selection_device_manager_v1#470.get_device(new id zwp_primary_selection_device_v1#491, wl_seat#472) +[2617784.138] {Default Queue} wl_output#473.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617784.145] {Default Queue} wl_output#473.mode(3, 1280, 800, 60000) +[2617784.152] {Default Queue} discarded wl_surface#3.enter(wl_output#473) +[2617784.158] {Default Queue} discarded wl_surface#423.enter(wl_output#473) +[2617784.164] {Default Queue} discarded wl_surface#135.enter(wl_output#473) +[2617784.170] {Default Queue} discarded wl_surface#231.enter(wl_output#473) +[2617784.175] {Default Queue} discarded wl_surface#359.enter(wl_output#473) +[2617784.181] {Default Queue} discarded wl_surface#103.enter(wl_output#473) +[2617784.187] {Default Queue} discarded wl_surface#327.enter(wl_output#473) +[2617784.192] {Default Queue} discarded wl_surface#43.enter(wl_output#473) +[2617784.198] {Default Queue} discarded wl_surface#19.enter(wl_output#473) +[2617784.204] {Default Queue} discarded wl_surface#199.enter(wl_output#473) +[2617784.209] {Default Queue} discarded wl_surface#391.enter(wl_output#473) +[2617784.213] {Default Queue} discarded wl_surface#263.enter(wl_output#473) +[2617784.217] {Default Queue} discarded wl_surface#71.enter(wl_output#473) +[2617784.221] {Default Queue} discarded wl_surface#295.enter(wl_output#473) +[2617784.225] {Default Queue} discarded wl_surface#167.enter(wl_output#473) +[2617784.229] {Default Queue} wl_registry#486.global(1, "wl_compositor", 6) +[2617784.237] {Default Queue} -> wl_registry#486.bind(1, "wl_compositor", 1, new id [unknown]#492) +[2617784.244] {Default Queue} wl_registry#486.global(2, "wl_subcompositor", 1) +[2617784.250] {Default Queue} -> wl_registry#486.bind(2, "wl_subcompositor", 1, new id [unknown]#493) +[2617784.256] {Default Queue} wl_registry#486.global(3, "xdg_wm_base", 6) +[2617784.263] {Default Queue} -> wl_registry#486.bind(3, "xdg_wm_base", 1, new id [unknown]#494) +[2617784.268] {Default Queue} wl_registry#486.global(6, "zwlr_layer_shell_v1", 5) +[2617784.273] {Default Queue} wl_registry#486.global(7, "ext_session_lock_manager_v1", 1) +[2617784.278] {Default Queue} wl_registry#486.global(8, "wl_shm", 2) +[2617784.283] {Default Queue} -> wl_registry#486.bind(8, "wl_shm", 1, new id [unknown]#495) +[2617784.288] {Default Queue} -> wl_registry#486.bind(8, "wl_shm", 1, new id [unknown]#496) +[2617784.292] {Default Queue} -> wl_registry#486.bind(8, "wl_shm", 1, new id [unknown]#497) +[2617784.297] {Default Queue} wl_registry#486.global(9, "zxdg_output_manager_v1", 3) +[2617784.301] {Default Queue} wl_registry#486.global(10, "wp_fractional_scale_manager_v1", 1) +[2617784.305] {Default Queue} wl_registry#486.global(11, "zwp_tablet_manager_v2", 1) +[2617784.310] {Default Queue} wl_registry#486.global(12, "zwp_pointer_gestures_v1", 3) +[2617784.314] {Default Queue} wl_registry#486.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617784.319] {Default Queue} -> wl_registry#486.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#498) +[2617784.324] {Default Queue} wl_registry#486.global(14, "zwp_pointer_constraints_v1", 1) +[2617784.328] {Default Queue} -> wl_registry#486.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#499) +[2617784.333] {Default Queue} wl_registry#486.global(15, "ext_idle_notifier_v1", 2) +[2617784.337] {Default Queue} wl_registry#486.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617784.341] {Default Queue} wl_registry#486.global(17, "wl_data_device_manager", 3) +[2617784.346] {Default Queue} -> wl_registry#486.bind(17, "wl_data_device_manager", 2, new id [unknown]#500) +[2617784.351] {Default Queue} -> wl_data_device_manager#500.create_data_source(new id wl_data_source#501) +[2617784.356] {Default Queue} -> wl_data_source#501.offer("text/plain") +[2617784.364] {Default Queue} -> wl_data_source#501.offer("text/plain;charset=utf-8") +[2617784.371] {Default Queue} -> wl_data_source#501.offer("TEXT") +[2617784.376] {Default Queue} -> wl_data_source#501.offer("STRING") +[2617784.380] {Default Queue} -> wl_data_source#501.offer("UTF8_STRING") +[2617784.384] {Default Queue} wl_registry#486.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617784.389] {Default Queue} -> wl_registry#486.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#502) +[2617784.394] {Default Queue} -> zwp_primary_selection_device_manager_v1#502.create_source(new id zwp_primary_selection_source_v1#503) +[2617784.401] {Default Queue} -> zwp_primary_selection_source_v1#503.offer("text/plain") +[2617784.405] {Default Queue} -> zwp_primary_selection_source_v1#503.offer("text/plain;charset=utf-8") +[2617784.410] {Default Queue} -> zwp_primary_selection_source_v1#503.offer("TEXT") +[2617784.414] {Default Queue} -> zwp_primary_selection_source_v1#503.offer("STRING") +[2617784.418] {Default Queue} -> zwp_primary_selection_source_v1#503.offer("UTF8_STRING") +[2617784.422] {Default Queue} wl_registry#486.global(19, "zwlr_data_control_manager_v1", 2) +[2617784.426] {Default Queue} wl_registry#486.global(20, "ext_data_control_manager_v1", 1) +[2617784.431] {Default Queue} wl_registry#486.global(21, "wp_presentation", 2) +[2617784.435] {Default Queue} wl_registry#486.global(22, "wp_security_context_manager_v1", 1) +[2617784.440] {Default Queue} wl_registry#486.global(23, "zwp_text_input_manager_v3", 1) +[2617784.444] {Default Queue} wl_registry#486.global(24, "zwp_input_method_manager_v2", 1) +[2617784.449] {Default Queue} wl_registry#486.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617784.454] {Default Queue} wl_registry#486.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617784.458] {Default Queue} wl_registry#486.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617784.462] {Default Queue} wl_registry#486.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617784.466] {Default Queue} wl_registry#486.global(29, "ext_workspace_manager_v1", 1) +[2617784.471] {Default Queue} wl_registry#486.global(30, "zwlr_output_manager_v1", 4) +[2617784.475] {Default Queue} wl_registry#486.global(31, "zwlr_screencopy_manager_v1", 3) +[2617784.479] {Default Queue} wl_registry#486.global(32, "wp_viewporter", 1) +[2617784.484] {Default Queue} wl_registry#486.global(33, "zxdg_exporter_v2", 1) +[2617784.489] {Default Queue} wl_registry#486.global(34, "zxdg_importer_v2", 1) +[2617784.493] {Default Queue} wl_registry#486.global(36, "xdg_activation_v1", 1) +[2617784.497] {Default Queue} wl_registry#486.global(37, "mutter_x11_interop", 1) +[2617784.502] {Default Queue} wl_registry#486.global(38, "wl_seat", 9) +[2617784.506] {Default Queue} -> wl_registry#486.bind(38, "wl_seat", 1, new id [unknown]#504) +[2617784.511] {Default Queue} wl_registry#486.global(39, "wp_cursor_shape_manager_v1", 2) +[2617784.515] {Default Queue} wl_registry#486.global(40, "wl_output", 4) +[2617784.520] {Default Queue} -> wl_registry#486.bind(40, "wl_output", 1, new id [unknown]#505) +[2617784.524] {Default Queue} wl_callback#487.done(0) +[2617784.529] {Default Queue} discarded wl_surface#455.enter(wl_output#18) +[2617784.533] {Default Queue} discarded wl_surface#455.enter(wl_output#57) +[2617784.537] {Default Queue} discarded wl_surface#455.enter(wl_output#89) +[2617784.541] {Default Queue} discarded wl_surface#455.enter(wl_output#121) +[2617784.545] {Default Queue} discarded wl_surface#455.enter(wl_output#153) +[2617784.549] {Default Queue} discarded wl_surface#455.enter(wl_output#185) +[2617784.554] {Default Queue} discarded wl_surface#455.enter(wl_output#217) +[2617784.558] {Default Queue} discarded wl_surface#455.enter(wl_output#249) +[2617784.562] {Default Queue} discarded wl_surface#455.enter(wl_output#281) +[2617784.566] {Default Queue} discarded wl_surface#455.enter(wl_output#313) +[2617784.569] {Default Queue} discarded wl_surface#455.enter(wl_output#345) +[2617784.573] {Default Queue} discarded wl_surface#455.enter(wl_output#377) +[2617784.580] {Default Queue} discarded wl_surface#455.enter(wl_output#409) +[2617784.586] {Default Queue} discarded wl_surface#455.enter(wl_output#441) +[2617784.590] {Default Queue} discarded wl_surface#455.enter(wl_output#473) +[2617784.594] {Default Queue} -> wl_compositor#460.create_surface(new id wl_surface#487) +[2617784.598] {Default Queue} -> wl_subcompositor#493.get_subsurface(new id wl_subsurface#506, wl_surface#487, wl_surface#455) +[2617784.603] {Default Queue} -> wl_subsurface#506.set_desync() +[2617784.608] {Default Queue} -> wl_subsurface#506.set_position(0, 0) +[2617784.612] {Default Queue} -> wl_subsurface#506.place_above(wl_surface#455) +[2617784.668] {Default Queue} -> wl_shm#495.create_pool(new id wl_shm_pool#507, fd 84, 16) +[2617784.675] {Default Queue} -> wl_shm#495.create_pool(new id wl_shm_pool#508, fd 85, 16) +[2617784.680] {Default Queue} -> wl_shm_pool#507.create_buffer(new id wl_buffer#509, 0, 2, 2, 8, 0) +[2617784.685] {Default Queue} -> wl_shm_pool#508.create_buffer(new id wl_buffer#510, 0, 2, 2, 8, 0) +[2617784.695] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) +[2617784.700] {Default Queue} -> wl_surface#487.commit() +[2617784.705] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) +[2617784.710] {Default Queue} -> wl_surface#487.commit() +[2617784.714] {Default Queue} -> wl_compositor#492.create_region(new id wl_region#511) +[2617784.721] {Default Queue} -> wl_compositor#492.create_region(new id wl_region#512) +[2617784.726] {Default Queue} -> wl_region#511.subtract(0, 0, 2, 2) +[2617784.730] {Default Queue} -> wl_region#511.add(0, 0, 0, 0) +[2617784.735] {Default Queue} -> wl_surface#487.set_opaque_region(wl_region#512) +[2617784.740] {Default Queue} -> wl_surface#487.set_input_region(wl_region#511) +[2617784.744] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2617784.748] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2617784.760] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) +[2617784.766] {Default Queue} -> wl_surface#487.commit() +[2617784.799] {Default Queue} -> wl_shm#497.create_pool(new id wl_shm_pool#513, fd 88, 640) +[2617784.805] {Default Queue} -> wl_shm#497.create_pool(new id wl_shm_pool#514, fd 89, 640) +[2617784.810] {Default Queue} -> wl_shm_pool#513.create_buffer(new id wl_buffer#515, 0, 10, 16, 40, 0) +[2617784.815] {Default Queue} -> wl_shm_pool#514.create_buffer(new id wl_buffer#516, 0, 10, 16, 40, 0) +[2617784.822] {Default Queue} -> wl_compositor#492.create_surface(new id wl_surface#517) +[2617784.826] {Default Queue} -> wl_surface#517.attach(wl_buffer#515, 0, 0) +[2617784.831] {Default Queue} -> wl_surface#517.commit() +[2617784.836] {Default Queue} -> wl_surface#517.attach(wl_buffer#515, 0, 0) +[2617784.840] {Default Queue} -> wl_surface#517.commit() +[2617784.847] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2617784.853] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2617784.863] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#518) +[2617784.868] {Default Queue} -> wl_display#1.sync(new id wl_callback#519) +[2617793.447] {Display Queue} wl_display#1.delete_id(519) +[2617793.465] {Default Queue} wl_keyboard#488.keymap(1, fd 84, 68213) +[2617793.475] {Default Queue} wl_keyboard#488.enter(566, wl_surface#19, array[0]) +[2617793.485] {Default Queue} wl_keyboard#488.modifiers(566, 0, 0, 16, 0) +[2617793.493] {Default Queue} discarded wl_shm#495.format(875709016) +[2617793.503] {Default Queue} discarded wl_shm#495.format(1) +[2617793.510] {Default Queue} discarded wl_shm#495.format(0) +[2617793.518] {Default Queue} discarded wl_shm#495.format(875708993) +[2617793.525] {Default Queue} discarded wl_shm#496.format(875709016) +[2617793.533] {Default Queue} discarded wl_shm#496.format(1) +[2617793.540] {Default Queue} discarded wl_shm#496.format(0) +[2617793.547] {Default Queue} discarded wl_shm#496.format(875708993) +[2617793.553] {Default Queue} discarded wl_shm#497.format(875709016) +[2617793.560] {Default Queue} discarded wl_shm#497.format(1) +[2617793.566] {Default Queue} discarded wl_shm#497.format(0) +[2617793.582] {Default Queue} discarded wl_shm#497.format(875708993) +[2617793.592] {Default Queue} wl_seat#504.capabilities(7) +[2617793.599] {Default Queue} -> wl_seat#504.get_keyboard(new id wl_keyboard#520) +[2617793.606] {Default Queue} -> wl_seat#504.get_pointer(new id wl_pointer#521) +[2617793.613] {Default Queue} -> wl_data_device_manager#500.get_data_device(new id wl_data_device#522, wl_seat#504) +[2617793.620] {Default Queue} -> zwp_primary_selection_device_manager_v1#502.get_device(new id zwp_primary_selection_device_v1#523, wl_seat#504) +[2617793.633] {Default Queue} wl_output#505.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617793.642] {Default Queue} wl_output#505.mode(3, 1280, 800, 60000) +[2617793.649] {Default Queue} discarded wl_surface#3.enter(wl_output#505) +[2617793.655] {Default Queue} discarded wl_surface#423.enter(wl_output#505) +[2617793.662] {Default Queue} discarded wl_surface#455.enter(wl_output#505) +[2617793.668] {Default Queue} discarded wl_surface#135.enter(wl_output#505) +[2617793.674] {Default Queue} discarded wl_surface#231.enter(wl_output#505) +[2617793.681] {Default Queue} discarded wl_surface#359.enter(wl_output#505) +[2617793.688] {Default Queue} discarded wl_surface#103.enter(wl_output#505) +[2617793.695] {Default Queue} discarded wl_surface#327.enter(wl_output#505) +[2617793.701] {Default Queue} discarded wl_surface#43.enter(wl_output#505) +[2617793.707] {Default Queue} discarded wl_surface#19.enter(wl_output#505) +[2617793.713] {Default Queue} discarded wl_surface#199.enter(wl_output#505) +[2617793.720] {Default Queue} discarded wl_surface#391.enter(wl_output#505) +[2617793.727] {Default Queue} discarded wl_surface#263.enter(wl_output#505) +[2617793.734] {Default Queue} discarded wl_surface#71.enter(wl_output#505) +[2617793.742] {Default Queue} discarded wl_surface#295.enter(wl_output#505) +[2617793.749] {Default Queue} discarded wl_surface#167.enter(wl_output#505) +[2617793.756] {Default Queue} wl_registry#518.global(1, "wl_compositor", 6) +[2617793.766] {Default Queue} -> wl_registry#518.bind(1, "wl_compositor", 1, new id [unknown]#524) +[2617793.776] {Default Queue} wl_registry#518.global(2, "wl_subcompositor", 1) +[2617793.785] {Default Queue} -> wl_registry#518.bind(2, "wl_subcompositor", 1, new id [unknown]#525) +[2617793.793] {Default Queue} wl_registry#518.global(3, "xdg_wm_base", 6) +[2617793.802] {Default Queue} -> wl_registry#518.bind(3, "xdg_wm_base", 1, new id [unknown]#526) +[2617793.811] {Default Queue} wl_registry#518.global(6, "zwlr_layer_shell_v1", 5) +[2617793.819] {Default Queue} wl_registry#518.global(7, "ext_session_lock_manager_v1", 1) +[2617793.827] {Default Queue} wl_registry#518.global(8, "wl_shm", 2) +[2617793.834] {Default Queue} -> wl_registry#518.bind(8, "wl_shm", 1, new id [unknown]#527) +[2617793.839] {Default Queue} -> wl_registry#518.bind(8, "wl_shm", 1, new id [unknown]#528) +[2617793.845] {Default Queue} -> wl_registry#518.bind(8, "wl_shm", 1, new id [unknown]#529) +[2617793.850] {Default Queue} wl_registry#518.global(9, "zxdg_output_manager_v1", 3) +[2617793.857] {Default Queue} wl_registry#518.global(10, "wp_fractional_scale_manager_v1", 1) +[2617793.875] {Default Queue} wl_registry#518.global(11, "zwp_tablet_manager_v2", 1) +[2617793.908] {Default Queue} wl_registry#518.global(12, "zwp_pointer_gestures_v1", 3) +[2617793.917] {Default Queue} wl_registry#518.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617793.924] {Default Queue} -> wl_registry#518.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#530) +[2617793.929] {Default Queue} wl_registry#518.global(14, "zwp_pointer_constraints_v1", 1) +[2617793.934] {Default Queue} -> wl_registry#518.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#531) +[2617793.939] {Default Queue} wl_registry#518.global(15, "ext_idle_notifier_v1", 2) +[2617793.945] {Default Queue} wl_registry#518.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617793.949] {Default Queue} wl_registry#518.global(17, "wl_data_device_manager", 3) +[2617793.954] {Default Queue} -> wl_registry#518.bind(17, "wl_data_device_manager", 2, new id [unknown]#532) +[2617793.966] {Default Queue} -> wl_data_device_manager#532.create_data_source(new id wl_data_source#533) +[2617793.976] {Default Queue} -> wl_data_source#533.offer("text/plain") +[2617793.981] {Default Queue} -> wl_data_source#533.offer("text/plain;charset=utf-8") +[2617793.985] {Default Queue} -> wl_data_source#533.offer("TEXT") +[2617793.990] {Default Queue} -> wl_data_source#533.offer("STRING") +[2617793.993] {Default Queue} -> wl_data_source#533.offer("UTF8_STRING") +[2617793.998] {Default Queue} wl_registry#518.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617794.003] {Default Queue} -> wl_registry#518.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#534) +[2617794.008] {Default Queue} -> zwp_primary_selection_device_manager_v1#534.create_source(new id zwp_primary_selection_source_v1#535) +[2617794.016] {Default Queue} -> zwp_primary_selection_source_v1#535.offer("text/plain") +[2617794.020] {Default Queue} -> zwp_primary_selection_source_v1#535.offer("text/plain;charset=utf-8") +[2617794.024] {Default Queue} -> zwp_primary_selection_source_v1#535.offer("TEXT") +[2617794.029] {Default Queue} -> zwp_primary_selection_source_v1#535.offer("STRING") +[2617794.032] {Default Queue} -> zwp_primary_selection_source_v1#535.offer("UTF8_STRING") +[2617794.037] {Default Queue} wl_registry#518.global(19, "zwlr_data_control_manager_v1", 2) +[2617794.041] {Default Queue} wl_registry#518.global(20, "ext_data_control_manager_v1", 1) +[2617794.046] {Default Queue} wl_registry#518.global(21, "wp_presentation", 2) +[2617794.050] {Default Queue} wl_registry#518.global(22, "wp_security_context_manager_v1", 1) +[2617794.055] {Default Queue} wl_registry#518.global(23, "zwp_text_input_manager_v3", 1) +[2617794.059] {Default Queue} wl_registry#518.global(24, "zwp_input_method_manager_v2", 1) +[2617794.064] {Default Queue} wl_registry#518.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617794.068] {Default Queue} wl_registry#518.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617794.072] {Default Queue} wl_registry#518.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617794.077] {Default Queue} wl_registry#518.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617794.081] {Default Queue} wl_registry#518.global(29, "ext_workspace_manager_v1", 1) +[2617794.086] {Default Queue} wl_registry#518.global(30, "zwlr_output_manager_v1", 4) +[2617794.090] {Default Queue} wl_registry#518.global(31, "zwlr_screencopy_manager_v1", 3) +[2617794.095] {Default Queue} wl_registry#518.global(32, "wp_viewporter", 1) +[2617794.099] {Default Queue} wl_registry#518.global(33, "zxdg_exporter_v2", 1) +[2617794.103] {Default Queue} wl_registry#518.global(34, "zxdg_importer_v2", 1) +[2617794.108] {Default Queue} wl_registry#518.global(36, "xdg_activation_v1", 1) +[2617794.112] {Default Queue} wl_registry#518.global(37, "mutter_x11_interop", 1) +[2617794.117] {Default Queue} wl_registry#518.global(38, "wl_seat", 9) +[2617794.121] {Default Queue} -> wl_registry#518.bind(38, "wl_seat", 1, new id [unknown]#536) +[2617794.126] {Default Queue} wl_registry#518.global(39, "wp_cursor_shape_manager_v1", 2) +[2617794.130] {Default Queue} wl_registry#518.global(40, "wl_output", 4) +[2617794.135] {Default Queue} -> wl_registry#518.bind(40, "wl_output", 1, new id [unknown]#537) +[2617794.139] {Default Queue} wl_callback#519.done(0) +[2617794.144] {Default Queue} discarded wl_surface#487.enter(wl_output#18) +[2617794.148] {Default Queue} discarded wl_surface#487.enter(wl_output#57) +[2617794.153] {Default Queue} discarded wl_surface#487.enter(wl_output#89) +[2617794.156] {Default Queue} discarded wl_surface#487.enter(wl_output#121) +[2617794.160] {Default Queue} discarded wl_surface#487.enter(wl_output#153) +[2617794.164] {Default Queue} discarded wl_surface#487.enter(wl_output#185) +[2617794.168] {Default Queue} discarded wl_surface#487.enter(wl_output#217) +[2617794.172] {Default Queue} discarded wl_surface#487.enter(wl_output#249) +[2617794.176] {Default Queue} discarded wl_surface#487.enter(wl_output#281) +[2617794.183] {Default Queue} discarded wl_surface#487.enter(wl_output#313) +[2617794.189] {Default Queue} discarded wl_surface#487.enter(wl_output#345) +[2617794.193] {Default Queue} discarded wl_surface#487.enter(wl_output#377) +[2617794.198] {Default Queue} discarded wl_surface#487.enter(wl_output#409) +[2617794.201] {Default Queue} discarded wl_surface#487.enter(wl_output#441) +[2617794.205] {Default Queue} discarded wl_surface#487.enter(wl_output#473) +[2617794.209] {Default Queue} discarded wl_surface#487.enter(wl_output#505) +[2617794.214] {Default Queue} -> wl_compositor#492.create_surface(new id wl_surface#519) +[2617794.219] {Default Queue} -> wl_subcompositor#525.get_subsurface(new id wl_subsurface#538, wl_surface#519, wl_surface#487) +[2617794.223] {Default Queue} -> wl_subsurface#538.set_desync() +[2617794.228] {Default Queue} -> wl_subsurface#538.set_position(0, 0) +[2617794.232] {Default Queue} -> wl_subsurface#538.place_above(wl_surface#487) +[2617794.281] {Default Queue} -> wl_shm#527.create_pool(new id wl_shm_pool#539, fd 89, 16) +[2617794.289] {Default Queue} -> wl_shm#527.create_pool(new id wl_shm_pool#540, fd 90, 16) +[2617794.295] {Default Queue} -> wl_shm_pool#539.create_buffer(new id wl_buffer#541, 0, 2, 2, 8, 0) +[2617794.300] {Default Queue} -> wl_shm_pool#540.create_buffer(new id wl_buffer#542, 0, 2, 2, 8, 0) +[2617794.308] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) +[2617794.313] {Default Queue} -> wl_surface#519.commit() +[2617794.319] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) +[2617794.323] {Default Queue} -> wl_surface#519.commit() +[2617794.328] {Default Queue} -> wl_compositor#524.create_region(new id wl_region#543) +[2617794.332] {Default Queue} -> wl_compositor#524.create_region(new id wl_region#544) +[2617794.337] {Default Queue} -> wl_region#543.subtract(0, 0, 2, 2) +[2617794.342] {Default Queue} -> wl_region#543.add(0, 0, 0, 0) +[2617794.346] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2617794.351] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2617794.355] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2617794.360] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2617794.368] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) +[2617794.373] {Default Queue} -> wl_surface#519.commit() +[2617794.408] {Default Queue} -> wl_shm#529.create_pool(new id wl_shm_pool#545, fd 93, 640) +[2617794.415] {Default Queue} -> wl_shm#529.create_pool(new id wl_shm_pool#546, fd 94, 640) +[2617794.420] {Default Queue} -> wl_shm_pool#545.create_buffer(new id wl_buffer#547, 0, 10, 16, 40, 0) +[2617794.425] {Default Queue} -> wl_shm_pool#546.create_buffer(new id wl_buffer#548, 0, 10, 16, 40, 0) +[2617794.432] {Default Queue} -> wl_compositor#524.create_surface(new id wl_surface#549) +[2617794.437] {Default Queue} -> wl_surface#549.attach(wl_buffer#547, 0, 0) +[2617794.441] {Default Queue} -> wl_surface#549.commit() +[2617794.447] {Default Queue} -> wl_surface#549.attach(wl_buffer#547, 0, 0) +[2617794.451] {Default Queue} -> wl_surface#549.commit() +[2617794.456] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2617794.464] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#550) +[2617794.469] {Default Queue} -> wl_display#1.sync(new id wl_callback#551) +[2617804.397] {Display Queue} wl_display#1.delete_id(551) +[2617804.410] {Default Queue} wl_keyboard#520.keymap(1, fd 89, 68213) +[2617804.416] {Default Queue} wl_keyboard#520.enter(566, wl_surface#19, array[0]) +[2617804.421] {Default Queue} wl_keyboard#520.modifiers(566, 0, 0, 16, 0) +[2617804.426] {Default Queue} discarded wl_shm#527.format(875709016) +[2617804.430] {Default Queue} discarded wl_shm#527.format(1) +[2617804.434] {Default Queue} discarded wl_shm#527.format(0) +[2617804.438] {Default Queue} discarded wl_shm#527.format(875708993) +[2617804.442] {Default Queue} discarded wl_shm#528.format(875709016) +[2617804.446] {Default Queue} discarded wl_shm#528.format(1) +[2617804.450] {Default Queue} discarded wl_shm#528.format(0) +[2617804.458] {Default Queue} discarded wl_shm#528.format(875708993) +[2617804.466] {Default Queue} discarded wl_shm#529.format(875709016) +[2617804.470] {Default Queue} discarded wl_shm#529.format(1) +[2617804.473] {Default Queue} discarded wl_shm#529.format(0) +[2617804.477] {Default Queue} discarded wl_shm#529.format(875708993) +[2617804.481] {Default Queue} wl_seat#536.capabilities(7) +[2617804.486] {Default Queue} -> wl_seat#536.get_keyboard(new id wl_keyboard#552) +[2617804.490] {Default Queue} -> wl_seat#536.get_pointer(new id wl_pointer#553) +[2617804.495] {Default Queue} -> wl_data_device_manager#532.get_data_device(new id wl_data_device#554, wl_seat#536) +[2617804.500] {Default Queue} -> zwp_primary_selection_device_manager_v1#534.get_device(new id zwp_primary_selection_device_v1#555, wl_seat#536) +[2617804.509] {Default Queue} wl_output#537.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617804.514] {Default Queue} wl_output#537.mode(3, 1280, 800, 60000) +[2617804.519] {Default Queue} discarded wl_surface#3.enter(wl_output#537) +[2617804.523] {Default Queue} discarded wl_surface#423.enter(wl_output#537) +[2617804.528] {Default Queue} discarded wl_surface#455.enter(wl_output#537) +[2617804.532] {Default Queue} discarded wl_surface#135.enter(wl_output#537) +[2617804.536] {Default Queue} discarded wl_surface#231.enter(wl_output#537) +[2617804.540] {Default Queue} discarded wl_surface#359.enter(wl_output#537) +[2617804.544] {Default Queue} discarded wl_surface#103.enter(wl_output#537) +[2617804.548] {Default Queue} discarded wl_surface#327.enter(wl_output#537) +[2617804.552] {Default Queue} discarded wl_surface#43.enter(wl_output#537) +[2617804.556] {Default Queue} discarded wl_surface#19.enter(wl_output#537) +[2617804.560] {Default Queue} discarded wl_surface#199.enter(wl_output#537) +[2617804.564] {Default Queue} discarded wl_surface#391.enter(wl_output#537) +[2617804.568] {Default Queue} discarded wl_surface#263.enter(wl_output#537) +[2617804.571] {Default Queue} discarded wl_surface#71.enter(wl_output#537) +[2617804.575] {Default Queue} discarded wl_surface#487.enter(wl_output#537) +[2617804.579] {Default Queue} discarded wl_surface#295.enter(wl_output#537) +[2617804.583] {Default Queue} discarded wl_surface#167.enter(wl_output#537) +[2617804.587] {Default Queue} wl_registry#550.global(1, "wl_compositor", 6) +[2617804.593] {Default Queue} -> wl_registry#550.bind(1, "wl_compositor", 1, new id [unknown]#556) +[2617804.598] {Default Queue} wl_registry#550.global(2, "wl_subcompositor", 1) +[2617804.603] {Default Queue} -> wl_registry#550.bind(2, "wl_subcompositor", 1, new id [unknown]#557) +[2617804.608] {Default Queue} wl_registry#550.global(3, "xdg_wm_base", 6) +[2617804.614] {Default Queue} -> wl_registry#550.bind(3, "xdg_wm_base", 1, new id [unknown]#558) +[2617804.620] {Default Queue} wl_registry#550.global(6, "zwlr_layer_shell_v1", 5) +[2617804.627] {Default Queue} wl_registry#550.global(7, "ext_session_lock_manager_v1", 1) +[2617804.631] {Default Queue} wl_registry#550.global(8, "wl_shm", 2) +[2617804.636] {Default Queue} -> wl_registry#550.bind(8, "wl_shm", 1, new id [unknown]#559) +[2617804.640] {Default Queue} -> wl_registry#550.bind(8, "wl_shm", 1, new id [unknown]#560) +[2617804.645] {Default Queue} -> wl_registry#550.bind(8, "wl_shm", 1, new id [unknown]#561) +[2617804.649] {Default Queue} wl_registry#550.global(9, "zxdg_output_manager_v1", 3) +[2617804.654] {Default Queue} wl_registry#550.global(10, "wp_fractional_scale_manager_v1", 1) +[2617804.658] {Default Queue} wl_registry#550.global(11, "zwp_tablet_manager_v2", 1) +[2617804.663] {Default Queue} wl_registry#550.global(12, "zwp_pointer_gestures_v1", 3) +[2617804.667] {Default Queue} wl_registry#550.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617804.671] {Default Queue} -> wl_registry#550.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#562) +[2617804.676] {Default Queue} wl_registry#550.global(14, "zwp_pointer_constraints_v1", 1) +[2617804.681] {Default Queue} -> wl_registry#550.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#563) +[2617804.685] {Default Queue} wl_registry#550.global(15, "ext_idle_notifier_v1", 2) +[2617804.693] {Default Queue} wl_registry#550.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617804.699] {Default Queue} wl_registry#550.global(17, "wl_data_device_manager", 3) +[2617804.704] {Default Queue} -> wl_registry#550.bind(17, "wl_data_device_manager", 2, new id [unknown]#564) +[2617804.709] {Default Queue} -> wl_data_device_manager#564.create_data_source(new id wl_data_source#565) +[2617804.713] {Default Queue} -> wl_data_source#565.offer("text/plain") +[2617804.718] {Default Queue} -> wl_data_source#565.offer("text/plain;charset=utf-8") +[2617804.722] {Default Queue} -> wl_data_source#565.offer("TEXT") +[2617804.726] {Default Queue} -> wl_data_source#565.offer("STRING") +[2617804.730] {Default Queue} -> wl_data_source#565.offer("UTF8_STRING") +[2617804.735] {Default Queue} wl_registry#550.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617804.740] {Default Queue} -> wl_registry#550.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#566) +[2617804.744] {Default Queue} -> zwp_primary_selection_device_manager_v1#566.create_source(new id zwp_primary_selection_source_v1#567) +[2617804.751] {Default Queue} -> zwp_primary_selection_source_v1#567.offer("text/plain") +[2617804.756] {Default Queue} -> zwp_primary_selection_source_v1#567.offer("text/plain;charset=utf-8") +[2617804.760] {Default Queue} -> zwp_primary_selection_source_v1#567.offer("TEXT") +[2617804.764] {Default Queue} -> zwp_primary_selection_source_v1#567.offer("STRING") +[2617804.768] {Default Queue} -> zwp_primary_selection_source_v1#567.offer("UTF8_STRING") +[2617804.772] {Default Queue} wl_registry#550.global(19, "zwlr_data_control_manager_v1", 2) +[2617804.777] {Default Queue} wl_registry#550.global(20, "ext_data_control_manager_v1", 1) +[2617804.781] {Default Queue} wl_registry#550.global(21, "wp_presentation", 2) +[2617804.786] {Default Queue} wl_registry#550.global(22, "wp_security_context_manager_v1", 1) +[2617804.790] {Default Queue} wl_registry#550.global(23, "zwp_text_input_manager_v3", 1) +[2617804.795] {Default Queue} wl_registry#550.global(24, "zwp_input_method_manager_v2", 1) +[2617804.799] {Default Queue} wl_registry#550.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617804.803] {Default Queue} wl_registry#550.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617804.808] {Default Queue} wl_registry#550.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617804.812] {Default Queue} wl_registry#550.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617804.816] {Default Queue} wl_registry#550.global(29, "ext_workspace_manager_v1", 1) +[2617804.820] {Default Queue} wl_registry#550.global(30, "zwlr_output_manager_v1", 4) +[2617804.825] {Default Queue} wl_registry#550.global(31, "zwlr_screencopy_manager_v1", 3) +[2617804.829] {Default Queue} wl_registry#550.global(32, "wp_viewporter", 1) +[2617804.833] {Default Queue} wl_registry#550.global(33, "zxdg_exporter_v2", 1) +[2617804.837] {Default Queue} wl_registry#550.global(34, "zxdg_importer_v2", 1) +[2617804.842] {Default Queue} wl_registry#550.global(36, "xdg_activation_v1", 1) +[2617804.847] {Default Queue} wl_registry#550.global(37, "mutter_x11_interop", 1) +[2617804.851] {Default Queue} wl_registry#550.global(38, "wl_seat", 9) +[2617804.855] {Default Queue} -> wl_registry#550.bind(38, "wl_seat", 1, new id [unknown]#568) +[2617804.860] {Default Queue} wl_registry#550.global(39, "wp_cursor_shape_manager_v1", 2) +[2617804.871] {Default Queue} wl_registry#550.global(40, "wl_output", 4) +[2617804.890] {Default Queue} -> wl_registry#550.bind(40, "wl_output", 1, new id [unknown]#569) +[2617804.895] {Default Queue} wl_callback#551.done(0) +[2617804.900] {Default Queue} discarded wl_surface#519.enter(wl_output#18) +[2617804.904] {Default Queue} discarded wl_surface#519.enter(wl_output#57) +[2617804.908] {Default Queue} discarded wl_surface#519.enter(wl_output#89) +[2617804.912] {Default Queue} discarded wl_surface#519.enter(wl_output#121) +[2617804.916] {Default Queue} discarded wl_surface#519.enter(wl_output#153) +[2617804.923] {Default Queue} discarded wl_surface#519.enter(wl_output#185) +[2617804.928] {Default Queue} discarded wl_surface#519.enter(wl_output#217) +[2617804.934] {Default Queue} discarded wl_surface#519.enter(wl_output#249) +[2617804.938] {Default Queue} discarded wl_surface#519.enter(wl_output#281) +[2617804.942] {Default Queue} discarded wl_surface#519.enter(wl_output#313) +[2617804.946] {Default Queue} discarded wl_surface#519.enter(wl_output#345) +[2617804.950] {Default Queue} discarded wl_surface#519.enter(wl_output#377) +[2617804.954] {Default Queue} discarded wl_surface#519.enter(wl_output#409) +[2617804.958] {Default Queue} discarded wl_surface#519.enter(wl_output#441) +[2617804.962] {Default Queue} discarded wl_surface#519.enter(wl_output#473) +[2617804.966] {Default Queue} discarded wl_surface#519.enter(wl_output#505) +[2617804.970] {Default Queue} discarded wl_surface#519.enter(wl_output#537) +[2617804.974] {Default Queue} -> wl_compositor#492.create_surface(new id wl_surface#551) +[2617804.979] {Default Queue} -> wl_subcompositor#557.get_subsurface(new id wl_subsurface#570, wl_surface#551, wl_surface#487) +[2617804.984] {Default Queue} -> wl_subsurface#570.set_desync() +[2617804.988] {Default Queue} -> wl_subsurface#570.set_position(0, 0) +[2617804.993] {Default Queue} -> wl_subsurface#570.place_above(wl_surface#487) +[2617805.036] {Default Queue} -> wl_shm#559.create_pool(new id wl_shm_pool#571, fd 94, 16) +[2617805.043] {Default Queue} -> wl_shm#559.create_pool(new id wl_shm_pool#572, fd 95, 16) +[2617805.048] {Default Queue} -> wl_shm_pool#571.create_buffer(new id wl_buffer#573, 0, 2, 2, 8, 0) +[2617805.053] {Default Queue} -> wl_shm_pool#572.create_buffer(new id wl_buffer#574, 0, 2, 2, 8, 0) +[2617805.061] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) +[2617805.066] {Default Queue} -> wl_surface#551.commit() +[2617805.072] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) +[2617805.076] {Default Queue} -> wl_surface#551.commit() +[2617805.080] {Default Queue} -> wl_compositor#556.create_region(new id wl_region#575) +[2617805.084] {Default Queue} -> wl_compositor#556.create_region(new id wl_region#576) +[2617805.089] {Default Queue} -> wl_region#575.subtract(0, 0, 2, 2) +[2617805.093] {Default Queue} -> wl_region#575.add(0, 0, 0, 0) +[2617805.098] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2617805.102] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2617805.106] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2617805.111] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2617805.118] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) +[2617805.122] {Default Queue} -> wl_surface#551.commit() +[2617805.154] {Default Queue} -> wl_shm#561.create_pool(new id wl_shm_pool#577, fd 98, 640) +[2617805.161] {Default Queue} -> wl_shm#561.create_pool(new id wl_shm_pool#578, fd 99, 640) +[2617805.165] {Default Queue} -> wl_shm_pool#577.create_buffer(new id wl_buffer#579, 0, 10, 16, 40, 0) +[2617805.170] {Default Queue} -> wl_shm_pool#578.create_buffer(new id wl_buffer#580, 0, 10, 16, 40, 0) +[2617805.177] {Default Queue} -> wl_compositor#556.create_surface(new id wl_surface#581) +[2617805.181] {Default Queue} -> wl_surface#581.attach(wl_buffer#579, 0, 0) +[2617805.186] {Default Queue} -> wl_surface#581.commit() +[2617805.191] {Default Queue} -> wl_surface#581.attach(wl_buffer#579, 0, 0) +[2617805.195] {Default Queue} -> wl_surface#581.commit() +[2617805.200] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2617805.208] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#582) +[2617805.212] {Default Queue} -> wl_display#1.sync(new id wl_callback#583) +[2617813.437] {Display Queue} wl_display#1.delete_id(583) +[2617813.449] {Default Queue} wl_keyboard#552.keymap(1, fd 94, 68213) +[2617813.455] {Default Queue} wl_keyboard#552.enter(566, wl_surface#19, array[0]) +[2617813.460] {Default Queue} wl_keyboard#552.modifiers(566, 0, 0, 16, 0) +[2617813.465] {Default Queue} discarded wl_shm#559.format(875709016) +[2617813.469] {Default Queue} discarded wl_shm#559.format(1) +[2617813.477] {Default Queue} discarded wl_shm#559.format(0) +[2617813.485] {Default Queue} discarded wl_shm#559.format(875708993) +[2617813.489] {Default Queue} discarded wl_shm#560.format(875709016) +[2617813.493] {Default Queue} discarded wl_shm#560.format(1) +[2617813.497] {Default Queue} discarded wl_shm#560.format(0) +[2617813.501] {Default Queue} discarded wl_shm#560.format(875708993) +[2617813.505] {Default Queue} discarded wl_shm#561.format(875709016) +[2617813.509] {Default Queue} discarded wl_shm#561.format(1) +[2617813.513] {Default Queue} discarded wl_shm#561.format(0) +[2617813.516] {Default Queue} discarded wl_shm#561.format(875708993) +[2617813.521] {Default Queue} wl_seat#568.capabilities(7) +[2617813.525] {Default Queue} -> wl_seat#568.get_keyboard(new id wl_keyboard#584) +[2617813.530] {Default Queue} -> wl_seat#568.get_pointer(new id wl_pointer#585) +[2617813.534] {Default Queue} -> wl_data_device_manager#564.get_data_device(new id wl_data_device#586, wl_seat#568) +[2617813.539] {Default Queue} -> zwp_primary_selection_device_manager_v1#566.get_device(new id zwp_primary_selection_device_v1#587, wl_seat#568) +[2617813.547] {Default Queue} wl_output#569.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617813.552] {Default Queue} wl_output#569.mode(3, 1280, 800, 60000) +[2617813.557] {Default Queue} discarded wl_surface#3.enter(wl_output#569) +[2617813.561] {Default Queue} discarded wl_surface#423.enter(wl_output#569) +[2617813.565] {Default Queue} discarded wl_surface#455.enter(wl_output#569) +[2617813.569] {Default Queue} discarded wl_surface#135.enter(wl_output#569) +[2617813.573] {Default Queue} discarded wl_surface#231.enter(wl_output#569) +[2617813.576] {Default Queue} discarded wl_surface#359.enter(wl_output#569) +[2617813.580] {Default Queue} discarded wl_surface#103.enter(wl_output#569) +[2617813.584] {Default Queue} discarded wl_surface#327.enter(wl_output#569) +[2617813.588] {Default Queue} discarded wl_surface#43.enter(wl_output#569) +[2617813.592] {Default Queue} discarded wl_surface#19.enter(wl_output#569) +[2617813.597] {Default Queue} discarded wl_surface#199.enter(wl_output#569) +[2617813.601] {Default Queue} discarded wl_surface#391.enter(wl_output#569) +[2617813.605] {Default Queue} discarded wl_surface#263.enter(wl_output#569) +[2617813.608] {Default Queue} discarded wl_surface#71.enter(wl_output#569) +[2617813.612] {Default Queue} discarded wl_surface#487.enter(wl_output#569) +[2617813.616] {Default Queue} discarded wl_surface#519.enter(wl_output#569) +[2617813.620] {Default Queue} discarded wl_surface#295.enter(wl_output#569) +[2617813.624] {Default Queue} discarded wl_surface#167.enter(wl_output#569) +[2617813.629] {Default Queue} wl_registry#582.global(1, "wl_compositor", 6) +[2617813.634] {Default Queue} -> wl_registry#582.bind(1, "wl_compositor", 1, new id [unknown]#588) +[2617813.639] {Default Queue} wl_registry#582.global(2, "wl_subcompositor", 1) +[2617813.644] {Default Queue} -> wl_registry#582.bind(2, "wl_subcompositor", 1, new id [unknown]#589) +[2617813.650] {Default Queue} wl_registry#582.global(3, "xdg_wm_base", 6) +[2617813.657] {Default Queue} -> wl_registry#582.bind(3, "xdg_wm_base", 1, new id [unknown]#590) +[2617813.663] {Default Queue} wl_registry#582.global(6, "zwlr_layer_shell_v1", 5) +[2617813.667] {Default Queue} wl_registry#582.global(7, "ext_session_lock_manager_v1", 1) +[2617813.672] {Default Queue} wl_registry#582.global(8, "wl_shm", 2) +[2617813.677] {Default Queue} -> wl_registry#582.bind(8, "wl_shm", 1, new id [unknown]#591) +[2617813.681] {Default Queue} -> wl_registry#582.bind(8, "wl_shm", 1, new id [unknown]#592) +[2617813.685] {Default Queue} -> wl_registry#582.bind(8, "wl_shm", 1, new id [unknown]#593) +[2617813.690] {Default Queue} wl_registry#582.global(9, "zxdg_output_manager_v1", 3) +[2617813.695] {Default Queue} wl_registry#582.global(10, "wp_fractional_scale_manager_v1", 1) +[2617813.699] {Default Queue} wl_registry#582.global(11, "zwp_tablet_manager_v2", 1) +[2617813.704] {Default Queue} wl_registry#582.global(12, "zwp_pointer_gestures_v1", 3) +[2617813.711] {Default Queue} wl_registry#582.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617813.718] {Default Queue} -> wl_registry#582.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#594) +[2617813.723] {Default Queue} wl_registry#582.global(14, "zwp_pointer_constraints_v1", 1) +[2617813.728] {Default Queue} -> wl_registry#582.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#595) +[2617813.732] {Default Queue} wl_registry#582.global(15, "ext_idle_notifier_v1", 2) +[2617813.736] {Default Queue} wl_registry#582.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617813.741] {Default Queue} wl_registry#582.global(17, "wl_data_device_manager", 3) +[2617813.746] {Default Queue} -> wl_registry#582.bind(17, "wl_data_device_manager", 2, new id [unknown]#596) +[2617813.750] {Default Queue} -> wl_data_device_manager#596.create_data_source(new id wl_data_source#597) +[2617813.755] {Default Queue} -> wl_data_source#597.offer("text/plain") +[2617813.759] {Default Queue} -> wl_data_source#597.offer("text/plain;charset=utf-8") +[2617813.763] {Default Queue} -> wl_data_source#597.offer("TEXT") +[2617813.767] {Default Queue} -> wl_data_source#597.offer("STRING") +[2617813.771] {Default Queue} -> wl_data_source#597.offer("UTF8_STRING") +[2617813.775] {Default Queue} wl_registry#582.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617813.780] {Default Queue} -> wl_registry#582.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#598) +[2617813.784] {Default Queue} -> zwp_primary_selection_device_manager_v1#598.create_source(new id zwp_primary_selection_source_v1#599) +[2617813.792] {Default Queue} -> zwp_primary_selection_source_v1#599.offer("text/plain") +[2617813.797] {Default Queue} -> zwp_primary_selection_source_v1#599.offer("text/plain;charset=utf-8") +[2617813.800] {Default Queue} -> zwp_primary_selection_source_v1#599.offer("TEXT") +[2617813.805] {Default Queue} -> zwp_primary_selection_source_v1#599.offer("STRING") +[2617813.809] {Default Queue} -> zwp_primary_selection_source_v1#599.offer("UTF8_STRING") +[2617813.813] {Default Queue} wl_registry#582.global(19, "zwlr_data_control_manager_v1", 2) +[2617813.817] {Default Queue} wl_registry#582.global(20, "ext_data_control_manager_v1", 1) +[2617813.822] {Default Queue} wl_registry#582.global(21, "wp_presentation", 2) +[2617813.826] {Default Queue} wl_registry#582.global(22, "wp_security_context_manager_v1", 1) +[2617813.830] {Default Queue} wl_registry#582.global(23, "zwp_text_input_manager_v3", 1) +[2617813.834] {Default Queue} wl_registry#582.global(24, "zwp_input_method_manager_v2", 1) +[2617813.839] {Default Queue} wl_registry#582.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617813.843] {Default Queue} wl_registry#582.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617813.847] {Default Queue} wl_registry#582.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617813.851] {Default Queue} wl_registry#582.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617813.856] {Default Queue} wl_registry#582.global(29, "ext_workspace_manager_v1", 1) +[2617813.866] {Default Queue} wl_registry#582.global(30, "zwlr_output_manager_v1", 4) +[2617813.871] {Default Queue} wl_registry#582.global(31, "zwlr_screencopy_manager_v1", 3) +[2617813.875] {Default Queue} wl_registry#582.global(32, "wp_viewporter", 1) +[2617813.880] {Default Queue} wl_registry#582.global(33, "zxdg_exporter_v2", 1) +[2617813.884] {Default Queue} wl_registry#582.global(34, "zxdg_importer_v2", 1) +[2617813.888] {Default Queue} wl_registry#582.global(36, "xdg_activation_v1", 1) +[2617813.893] {Default Queue} wl_registry#582.global(37, "mutter_x11_interop", 1) +[2617813.897] {Default Queue} wl_registry#582.global(38, "wl_seat", 9) +[2617813.902] {Default Queue} -> wl_registry#582.bind(38, "wl_seat", 1, new id [unknown]#600) +[2617813.906] {Default Queue} wl_registry#582.global(39, "wp_cursor_shape_manager_v1", 2) +[2617813.911] {Default Queue} wl_registry#582.global(40, "wl_output", 4) +[2617813.915] {Default Queue} -> wl_registry#582.bind(40, "wl_output", 1, new id [unknown]#601) +[2617813.933] {Default Queue} wl_callback#583.done(0) +[2617813.939] {Default Queue} discarded wl_surface#551.enter(wl_output#18) +[2617813.943] {Default Queue} discarded wl_surface#551.enter(wl_output#57) +[2617813.947] {Default Queue} discarded wl_surface#551.enter(wl_output#89) +[2617813.951] {Default Queue} discarded wl_surface#551.enter(wl_output#121) +[2617813.955] {Default Queue} discarded wl_surface#551.enter(wl_output#153) +[2617813.959] {Default Queue} discarded wl_surface#551.enter(wl_output#185) +[2617813.963] {Default Queue} discarded wl_surface#551.enter(wl_output#217) +[2617813.967] {Default Queue} discarded wl_surface#551.enter(wl_output#249) +[2617813.971] {Default Queue} discarded wl_surface#551.enter(wl_output#281) +[2617813.975] {Default Queue} discarded wl_surface#551.enter(wl_output#313) +[2617813.979] {Default Queue} discarded wl_surface#551.enter(wl_output#345) +[2617813.983] {Default Queue} discarded wl_surface#551.enter(wl_output#377) +[2617813.987] {Default Queue} discarded wl_surface#551.enter(wl_output#409) +[2617813.992] {Default Queue} discarded wl_surface#551.enter(wl_output#441) +[2617813.996] {Default Queue} discarded wl_surface#551.enter(wl_output#473) +[2617814.000] {Default Queue} discarded wl_surface#551.enter(wl_output#505) +[2617814.004] {Default Queue} discarded wl_surface#551.enter(wl_output#537) +[2617814.008] {Default Queue} discarded wl_surface#551.enter(wl_output#569) +[2617814.012] {Default Queue} -> wl_compositor#492.create_surface(new id wl_surface#583) +[2617814.017] {Default Queue} -> wl_subcompositor#589.get_subsurface(new id wl_subsurface#602, wl_surface#583, wl_surface#487) +[2617814.022] {Default Queue} -> wl_subsurface#602.set_desync() +[2617814.026] {Default Queue} -> wl_subsurface#602.set_position(0, 0) +[2617814.031] {Default Queue} -> wl_subsurface#602.place_above(wl_surface#487) +[2617814.080] {Default Queue} -> wl_shm#591.create_pool(new id wl_shm_pool#603, fd 99, 16) +[2617814.087] {Default Queue} -> wl_shm#591.create_pool(new id wl_shm_pool#604, fd 100, 16) +[2617814.091] {Default Queue} -> wl_shm_pool#603.create_buffer(new id wl_buffer#605, 0, 2, 2, 8, 0) +[2617814.097] {Default Queue} -> wl_shm_pool#604.create_buffer(new id wl_buffer#606, 0, 2, 2, 8, 0) +[2617814.107] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) +[2617814.115] {Default Queue} -> wl_surface#583.commit() +[2617814.124] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) +[2617814.131] {Default Queue} -> wl_surface#583.commit() +[2617814.138] {Default Queue} -> wl_compositor#588.create_region(new id wl_region#607) +[2617814.145] {Default Queue} -> wl_compositor#588.create_region(new id wl_region#608) +[2617814.151] {Default Queue} -> wl_region#607.subtract(0, 0, 2, 2) +[2617814.158] {Default Queue} -> wl_region#607.add(0, 0, 0, 0) +[2617814.163] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2617814.168] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2617814.172] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2617814.177] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2617814.184] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) +[2617814.189] {Default Queue} -> wl_surface#583.commit() +[2617814.229] {Default Queue} -> wl_shm#593.create_pool(new id wl_shm_pool#609, fd 103, 640) +[2617814.236] {Default Queue} -> wl_shm#593.create_pool(new id wl_shm_pool#610, fd 104, 640) +[2617814.241] {Default Queue} -> wl_shm_pool#609.create_buffer(new id wl_buffer#611, 0, 10, 16, 40, 0) +[2617814.246] {Default Queue} -> wl_shm_pool#610.create_buffer(new id wl_buffer#612, 0, 10, 16, 40, 0) +[2617814.253] {Default Queue} -> wl_compositor#588.create_surface(new id wl_surface#613) +[2617814.258] {Default Queue} -> wl_surface#613.attach(wl_buffer#611, 0, 0) +[2617814.262] {Default Queue} -> wl_surface#613.commit() +[2617814.268] {Default Queue} -> wl_surface#613.attach(wl_buffer#611, 0, 0) +[2617814.273] {Default Queue} -> wl_surface#613.commit() +[2617814.277] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2617814.289] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#614) +[2617814.297] {Default Queue} -> wl_display#1.sync(new id wl_callback#615) +[2617823.441] {Display Queue} wl_display#1.delete_id(615) +[2617823.456] {Default Queue} wl_keyboard#584.keymap(1, fd 99, 68213) +[2617823.461] {Default Queue} wl_keyboard#584.enter(566, wl_surface#19, array[0]) +[2617823.467] {Default Queue} wl_keyboard#584.modifiers(566, 0, 0, 16, 0) +[2617823.472] {Default Queue} discarded wl_shm#591.format(875709016) +[2617823.476] {Default Queue} discarded wl_shm#591.format(1) +[2617823.480] {Default Queue} discarded wl_shm#591.format(0) +[2617823.484] {Default Queue} discarded wl_shm#591.format(875708993) +[2617823.488] {Default Queue} discarded wl_shm#592.format(875709016) +[2617823.492] {Default Queue} discarded wl_shm#592.format(1) +[2617823.496] {Default Queue} discarded wl_shm#592.format(0) +[2617823.499] {Default Queue} discarded wl_shm#592.format(875708993) +[2617823.503] {Default Queue} discarded wl_shm#593.format(875709016) +[2617823.507] {Default Queue} discarded wl_shm#593.format(1) +[2617823.511] {Default Queue} discarded wl_shm#593.format(0) +[2617823.515] {Default Queue} discarded wl_shm#593.format(875708993) +[2617823.519] {Default Queue} wl_seat#600.capabilities(7) +[2617823.524] {Default Queue} -> wl_seat#600.get_keyboard(new id wl_keyboard#616) +[2617823.529] {Default Queue} -> wl_seat#600.get_pointer(new id wl_pointer#617) +[2617823.534] {Default Queue} -> wl_data_device_manager#596.get_data_device(new id wl_data_device#618, wl_seat#600) +[2617823.538] {Default Queue} -> zwp_primary_selection_device_manager_v1#598.get_device(new id zwp_primary_selection_device_v1#619, wl_seat#600) +[2617823.546] {Default Queue} wl_output#601.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617823.551] {Default Queue} wl_output#601.mode(3, 1280, 800, 60000) +[2617823.556] {Default Queue} discarded wl_surface#3.enter(wl_output#601) +[2617823.560] {Default Queue} discarded wl_surface#423.enter(wl_output#601) +[2617823.564] {Default Queue} discarded wl_surface#455.enter(wl_output#601) +[2617823.568] {Default Queue} discarded wl_surface#135.enter(wl_output#601) +[2617823.572] {Default Queue} discarded wl_surface#231.enter(wl_output#601) +[2617823.576] {Default Queue} discarded wl_surface#359.enter(wl_output#601) +[2617823.580] {Default Queue} discarded wl_surface#103.enter(wl_output#601) +[2617823.584] {Default Queue} discarded wl_surface#327.enter(wl_output#601) +[2617823.588] {Default Queue} discarded wl_surface#43.enter(wl_output#601) +[2617823.591] {Default Queue} discarded wl_surface#19.enter(wl_output#601) +[2617823.595] {Default Queue} discarded wl_surface#199.enter(wl_output#601) +[2617823.600] {Default Queue} discarded wl_surface#391.enter(wl_output#601) +[2617823.603] {Default Queue} discarded wl_surface#263.enter(wl_output#601) +[2617823.607] {Default Queue} discarded wl_surface#551.enter(wl_output#601) +[2617823.611] {Default Queue} discarded wl_surface#71.enter(wl_output#601) +[2617823.615] {Default Queue} discarded wl_surface#487.enter(wl_output#601) +[2617823.619] {Default Queue} discarded wl_surface#519.enter(wl_output#601) +[2617823.623] {Default Queue} discarded wl_surface#295.enter(wl_output#601) +[2617823.627] {Default Queue} discarded wl_surface#167.enter(wl_output#601) +[2617823.631] {Default Queue} wl_registry#614.global(1, "wl_compositor", 6) +[2617823.636] {Default Queue} -> wl_registry#614.bind(1, "wl_compositor", 1, new id [unknown]#620) +[2617823.640] {Default Queue} wl_registry#614.global(2, "wl_subcompositor", 1) +[2617823.647] {Default Queue} -> wl_registry#614.bind(2, "wl_subcompositor", 1, new id [unknown]#621) +[2617823.653] {Default Queue} wl_registry#614.global(3, "xdg_wm_base", 6) +[2617823.659] {Default Queue} -> wl_registry#614.bind(3, "xdg_wm_base", 1, new id [unknown]#622) +[2617823.665] {Default Queue} wl_registry#614.global(6, "zwlr_layer_shell_v1", 5) +[2617823.669] {Default Queue} wl_registry#614.global(7, "ext_session_lock_manager_v1", 1) +[2617823.674] {Default Queue} wl_registry#614.global(8, "wl_shm", 2) +[2617823.678] {Default Queue} -> wl_registry#614.bind(8, "wl_shm", 1, new id [unknown]#623) +[2617823.688] {Default Queue} -> wl_registry#614.bind(8, "wl_shm", 1, new id [unknown]#624) +[2617823.696] {Default Queue} -> wl_registry#614.bind(8, "wl_shm", 1, new id [unknown]#625) +[2617823.700] {Default Queue} wl_registry#614.global(9, "zxdg_output_manager_v1", 3) +[2617823.705] {Default Queue} wl_registry#614.global(10, "wp_fractional_scale_manager_v1", 1) +[2617823.709] {Default Queue} wl_registry#614.global(11, "zwp_tablet_manager_v2", 1) +[2617823.714] {Default Queue} wl_registry#614.global(12, "zwp_pointer_gestures_v1", 3) +[2617823.718] {Default Queue} wl_registry#614.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617823.722] {Default Queue} -> wl_registry#614.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#626) +[2617823.727] {Default Queue} wl_registry#614.global(14, "zwp_pointer_constraints_v1", 1) +[2617823.731] {Default Queue} -> wl_registry#614.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#627) +[2617823.736] {Default Queue} wl_registry#614.global(15, "ext_idle_notifier_v1", 2) +[2617823.741] {Default Queue} wl_registry#614.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617823.745] {Default Queue} wl_registry#614.global(17, "wl_data_device_manager", 3) +[2617823.750] {Default Queue} -> wl_registry#614.bind(17, "wl_data_device_manager", 2, new id [unknown]#628) +[2617823.755] {Default Queue} -> wl_data_device_manager#628.create_data_source(new id wl_data_source#629) +[2617823.759] {Default Queue} -> wl_data_source#629.offer("text/plain") +[2617823.763] {Default Queue} -> wl_data_source#629.offer("text/plain;charset=utf-8") +[2617823.767] {Default Queue} -> wl_data_source#629.offer("TEXT") +[2617823.771] {Default Queue} -> wl_data_source#629.offer("STRING") +[2617823.776] {Default Queue} -> wl_data_source#629.offer("UTF8_STRING") +[2617823.780] {Default Queue} wl_registry#614.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617823.785] {Default Queue} -> wl_registry#614.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#630) +[2617823.789] {Default Queue} -> zwp_primary_selection_device_manager_v1#630.create_source(new id zwp_primary_selection_source_v1#631) +[2617823.797] {Default Queue} -> zwp_primary_selection_source_v1#631.offer("text/plain") +[2617823.801] {Default Queue} -> zwp_primary_selection_source_v1#631.offer("text/plain;charset=utf-8") +[2617823.806] {Default Queue} -> zwp_primary_selection_source_v1#631.offer("TEXT") +[2617823.810] {Default Queue} -> zwp_primary_selection_source_v1#631.offer("STRING") +[2617823.814] {Default Queue} -> zwp_primary_selection_source_v1#631.offer("UTF8_STRING") +[2617823.819] {Default Queue} wl_registry#614.global(19, "zwlr_data_control_manager_v1", 2) +[2617823.823] {Default Queue} wl_registry#614.global(20, "ext_data_control_manager_v1", 1) +[2617823.827] {Default Queue} wl_registry#614.global(21, "wp_presentation", 2) +[2617823.832] {Default Queue} wl_registry#614.global(22, "wp_security_context_manager_v1", 1) +[2617823.836] {Default Queue} wl_registry#614.global(23, "zwp_text_input_manager_v3", 1) +[2617823.840] {Default Queue} wl_registry#614.global(24, "zwp_input_method_manager_v2", 1) +[2617823.845] {Default Queue} wl_registry#614.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617823.849] {Default Queue} wl_registry#614.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617823.854] {Default Queue} wl_registry#614.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617823.858] {Default Queue} wl_registry#614.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617823.864] {Default Queue} wl_registry#614.global(29, "ext_workspace_manager_v1", 1) +[2617823.868] {Default Queue} wl_registry#614.global(30, "zwlr_output_manager_v1", 4) +[2617823.880] {Default Queue} wl_registry#614.global(31, "zwlr_screencopy_manager_v1", 3) +[2617823.884] {Default Queue} wl_registry#614.global(32, "wp_viewporter", 1) +[2617823.889] {Default Queue} wl_registry#614.global(33, "zxdg_exporter_v2", 1) +[2617823.893] {Default Queue} wl_registry#614.global(34, "zxdg_importer_v2", 1) +[2617823.900] {Default Queue} wl_registry#614.global(36, "xdg_activation_v1", 1) +[2617823.906] {Default Queue} wl_registry#614.global(37, "mutter_x11_interop", 1) +[2617823.911] {Default Queue} wl_registry#614.global(38, "wl_seat", 9) +[2617823.916] {Default Queue} -> wl_registry#614.bind(38, "wl_seat", 1, new id [unknown]#632) +[2617823.921] {Default Queue} wl_registry#614.global(39, "wp_cursor_shape_manager_v1", 2) +[2617823.925] {Default Queue} wl_registry#614.global(40, "wl_output", 4) +[2617823.930] {Default Queue} -> wl_registry#614.bind(40, "wl_output", 1, new id [unknown]#633) +[2617823.934] {Default Queue} wl_callback#615.done(0) +[2617823.938] {Default Queue} discarded wl_surface#583.enter(wl_output#18) +[2617823.942] {Default Queue} discarded wl_surface#583.enter(wl_output#57) +[2617823.946] {Default Queue} discarded wl_surface#583.enter(wl_output#89) +[2617823.950] {Default Queue} discarded wl_surface#583.enter(wl_output#121) +[2617823.955] {Default Queue} discarded wl_surface#583.enter(wl_output#153) +[2617823.959] {Default Queue} discarded wl_surface#583.enter(wl_output#185) +[2617823.962] {Default Queue} discarded wl_surface#583.enter(wl_output#217) +[2617823.966] {Default Queue} discarded wl_surface#583.enter(wl_output#249) +[2617823.970] {Default Queue} discarded wl_surface#583.enter(wl_output#281) +[2617823.974] {Default Queue} discarded wl_surface#583.enter(wl_output#313) +[2617823.978] {Default Queue} discarded wl_surface#583.enter(wl_output#345) +[2617823.982] {Default Queue} discarded wl_surface#583.enter(wl_output#377) +[2617823.986] {Default Queue} discarded wl_surface#583.enter(wl_output#409) +[2617823.990] {Default Queue} discarded wl_surface#583.enter(wl_output#441) +[2617823.994] {Default Queue} discarded wl_surface#583.enter(wl_output#473) +[2617823.998] {Default Queue} discarded wl_surface#583.enter(wl_output#505) +[2617824.002] {Default Queue} discarded wl_surface#583.enter(wl_output#537) +[2617824.005] {Default Queue} discarded wl_surface#583.enter(wl_output#569) +[2617824.009] {Default Queue} discarded wl_surface#583.enter(wl_output#601) +[2617824.014] {Default Queue} -> wl_compositor#492.create_surface(new id wl_surface#615) +[2617824.018] {Default Queue} -> wl_subcompositor#621.get_subsurface(new id wl_subsurface#634, wl_surface#615, wl_surface#487) +[2617824.023] {Default Queue} -> wl_subsurface#634.set_desync() +[2617824.028] {Default Queue} -> wl_subsurface#634.set_position(0, 0) +[2617824.032] {Default Queue} -> wl_subsurface#634.place_above(wl_surface#487) +[2617824.077] {Default Queue} -> wl_shm#623.create_pool(new id wl_shm_pool#635, fd 104, 16) +[2617824.084] {Default Queue} -> wl_shm#623.create_pool(new id wl_shm_pool#636, fd 105, 16) +[2617824.088] {Default Queue} -> wl_shm_pool#635.create_buffer(new id wl_buffer#637, 0, 2, 2, 8, 0) +[2617824.093] {Default Queue} -> wl_shm_pool#636.create_buffer(new id wl_buffer#638, 0, 2, 2, 8, 0) +[2617824.102] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) +[2617824.106] {Default Queue} -> wl_surface#615.commit() +[2617824.112] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) +[2617824.117] {Default Queue} -> wl_surface#615.commit() +[2617824.121] {Default Queue} -> wl_compositor#620.create_region(new id wl_region#639) +[2617824.126] {Default Queue} -> wl_compositor#620.create_region(new id wl_region#640) +[2617824.130] {Default Queue} -> wl_region#639.subtract(0, 0, 2, 2) +[2617824.135] {Default Queue} -> wl_region#639.add(0, 0, 0, 0) +[2617824.139] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2617824.143] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2617824.147] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2617824.152] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2617824.159] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) +[2617824.164] {Default Queue} -> wl_surface#615.commit() +[2617824.196] {Default Queue} -> wl_shm#625.create_pool(new id wl_shm_pool#641, fd 108, 640) +[2617824.202] {Default Queue} -> wl_shm#625.create_pool(new id wl_shm_pool#642, fd 109, 640) +[2617824.211] {Default Queue} -> wl_shm_pool#641.create_buffer(new id wl_buffer#643, 0, 10, 16, 40, 0) +[2617824.217] {Default Queue} -> wl_shm_pool#642.create_buffer(new id wl_buffer#644, 0, 10, 16, 40, 0) +[2617824.224] {Default Queue} -> wl_compositor#620.create_surface(new id wl_surface#645) +[2617824.229] {Default Queue} -> wl_surface#645.attach(wl_buffer#643, 0, 0) +[2617824.233] {Default Queue} -> wl_surface#645.commit() +[2617824.238] {Default Queue} -> wl_surface#645.attach(wl_buffer#643, 0, 0) +[2617824.245] {Default Queue} -> wl_surface#645.commit() +[2617824.252] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2617824.262] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#646) +[2617824.270] {Default Queue} -> wl_display#1.sync(new id wl_callback#647) +[2617833.456] {Display Queue} wl_display#1.delete_id(647) +[2617833.469] {Default Queue} wl_keyboard#616.keymap(1, fd 104, 68213) +[2617833.474] {Default Queue} wl_keyboard#616.enter(566, wl_surface#19, array[0]) +[2617833.480] {Default Queue} wl_keyboard#616.modifiers(566, 0, 0, 16, 0) +[2617833.485] {Default Queue} discarded wl_shm#623.format(875709016) +[2617833.489] {Default Queue} discarded wl_shm#623.format(1) +[2617833.492] {Default Queue} discarded wl_shm#623.format(0) +[2617833.496] {Default Queue} discarded wl_shm#623.format(875708993) +[2617833.501] {Default Queue} discarded wl_shm#624.format(875709016) +[2617833.505] {Default Queue} discarded wl_shm#624.format(1) +[2617833.508] {Default Queue} discarded wl_shm#624.format(0) +[2617833.512] {Default Queue} discarded wl_shm#624.format(875708993) +[2617833.516] {Default Queue} discarded wl_shm#625.format(875709016) +[2617833.520] {Default Queue} discarded wl_shm#625.format(1) +[2617833.523] {Default Queue} discarded wl_shm#625.format(0) +[2617833.528] {Default Queue} discarded wl_shm#625.format(875708993) +[2617833.532] {Default Queue} wl_seat#632.capabilities(7) +[2617833.536] {Default Queue} -> wl_seat#632.get_keyboard(new id wl_keyboard#648) +[2617833.540] {Default Queue} -> wl_seat#632.get_pointer(new id wl_pointer#649) +[2617833.545] {Default Queue} -> wl_data_device_manager#628.get_data_device(new id wl_data_device#650, wl_seat#632) +[2617833.550] {Default Queue} -> zwp_primary_selection_device_manager_v1#630.get_device(new id zwp_primary_selection_device_v1#651, wl_seat#632) +[2617833.557] {Default Queue} wl_output#633.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617833.562] {Default Queue} wl_output#633.mode(3, 1280, 800, 60000) +[2617833.567] {Default Queue} discarded wl_surface#3.enter(wl_output#633) +[2617833.571] {Default Queue} discarded wl_surface#423.enter(wl_output#633) +[2617833.575] {Default Queue} discarded wl_surface#455.enter(wl_output#633) +[2617833.579] {Default Queue} discarded wl_surface#135.enter(wl_output#633) +[2617833.583] {Default Queue} discarded wl_surface#231.enter(wl_output#633) +[2617833.586] {Default Queue} discarded wl_surface#359.enter(wl_output#633) +[2617833.590] {Default Queue} discarded wl_surface#583.enter(wl_output#633) +[2617833.594] {Default Queue} discarded wl_surface#103.enter(wl_output#633) +[2617833.598] {Default Queue} discarded wl_surface#327.enter(wl_output#633) +[2617833.602] {Default Queue} discarded wl_surface#43.enter(wl_output#633) +[2617833.606] {Default Queue} discarded wl_surface#19.enter(wl_output#633) +[2617833.610] {Default Queue} discarded wl_surface#199.enter(wl_output#633) +[2617833.613] {Default Queue} discarded wl_surface#391.enter(wl_output#633) +[2617833.617] {Default Queue} discarded wl_surface#263.enter(wl_output#633) +[2617833.621] {Default Queue} discarded wl_surface#551.enter(wl_output#633) +[2617833.625] {Default Queue} discarded wl_surface#71.enter(wl_output#633) +[2617833.629] {Default Queue} discarded wl_surface#487.enter(wl_output#633) +[2617833.633] {Default Queue} discarded wl_surface#519.enter(wl_output#633) +[2617833.637] {Default Queue} discarded wl_surface#295.enter(wl_output#633) +[2617833.641] {Default Queue} discarded wl_surface#167.enter(wl_output#633) +[2617833.645] {Default Queue} wl_registry#646.global(1, "wl_compositor", 6) +[2617833.655] {Default Queue} -> wl_registry#646.bind(1, "wl_compositor", 1, new id [unknown]#652) +[2617833.662] {Default Queue} wl_registry#646.global(2, "wl_subcompositor", 1) +[2617833.667] {Default Queue} -> wl_registry#646.bind(2, "wl_subcompositor", 1, new id [unknown]#653) +[2617833.671] {Default Queue} wl_registry#646.global(3, "xdg_wm_base", 6) +[2617833.676] {Default Queue} -> wl_registry#646.bind(3, "xdg_wm_base", 1, new id [unknown]#654) +[2617833.680] {Default Queue} wl_registry#646.global(6, "zwlr_layer_shell_v1", 5) +[2617833.685] {Default Queue} wl_registry#646.global(7, "ext_session_lock_manager_v1", 1) +[2617833.689] {Default Queue} wl_registry#646.global(8, "wl_shm", 2) +[2617833.700] {Default Queue} -> wl_registry#646.bind(8, "wl_shm", 1, new id [unknown]#655) +[2617833.704] {Default Queue} -> wl_registry#646.bind(8, "wl_shm", 1, new id [unknown]#656) +[2617833.709] {Default Queue} -> wl_registry#646.bind(8, "wl_shm", 1, new id [unknown]#657) +[2617833.713] {Default Queue} wl_registry#646.global(9, "zxdg_output_manager_v1", 3) +[2617833.717] {Default Queue} wl_registry#646.global(10, "wp_fractional_scale_manager_v1", 1) +[2617833.722] {Default Queue} wl_registry#646.global(11, "zwp_tablet_manager_v2", 1) +[2617833.728] {Default Queue} wl_registry#646.global(12, "zwp_pointer_gestures_v1", 3) +[2617833.734] {Default Queue} wl_registry#646.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617833.741] {Default Queue} -> wl_registry#646.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#658) +[2617833.747] {Default Queue} wl_registry#646.global(14, "zwp_pointer_constraints_v1", 1) +[2617833.751] {Default Queue} -> wl_registry#646.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#659) +[2617833.756] {Default Queue} wl_registry#646.global(15, "ext_idle_notifier_v1", 2) +[2617833.760] {Default Queue} wl_registry#646.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617833.765] {Default Queue} wl_registry#646.global(17, "wl_data_device_manager", 3) +[2617833.770] {Default Queue} -> wl_registry#646.bind(17, "wl_data_device_manager", 2, new id [unknown]#660) +[2617833.774] {Default Queue} -> wl_data_device_manager#660.create_data_source(new id wl_data_source#661) +[2617833.778] {Default Queue} -> wl_data_source#661.offer("text/plain") +[2617833.782] {Default Queue} -> wl_data_source#661.offer("text/plain;charset=utf-8") +[2617833.786] {Default Queue} -> wl_data_source#661.offer("TEXT") +[2617833.790] {Default Queue} -> wl_data_source#661.offer("STRING") +[2617833.794] {Default Queue} -> wl_data_source#661.offer("UTF8_STRING") +[2617833.798] {Default Queue} wl_registry#646.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617833.803] {Default Queue} -> wl_registry#646.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#662) +[2617833.808] {Default Queue} -> zwp_primary_selection_device_manager_v1#662.create_source(new id zwp_primary_selection_source_v1#663) +[2617833.815] {Default Queue} -> zwp_primary_selection_source_v1#663.offer("text/plain") +[2617833.819] {Default Queue} -> zwp_primary_selection_source_v1#663.offer("text/plain;charset=utf-8") +[2617833.823] {Default Queue} -> zwp_primary_selection_source_v1#663.offer("TEXT") +[2617833.827] {Default Queue} -> zwp_primary_selection_source_v1#663.offer("STRING") +[2617833.831] {Default Queue} -> zwp_primary_selection_source_v1#663.offer("UTF8_STRING") +[2617833.835] {Default Queue} wl_registry#646.global(19, "zwlr_data_control_manager_v1", 2) +[2617833.839] {Default Queue} wl_registry#646.global(20, "ext_data_control_manager_v1", 1) +[2617833.844] {Default Queue} wl_registry#646.global(21, "wp_presentation", 2) +[2617833.848] {Default Queue} wl_registry#646.global(22, "wp_security_context_manager_v1", 1) +[2617833.852] {Default Queue} wl_registry#646.global(23, "zwp_text_input_manager_v3", 1) +[2617833.856] {Default Queue} wl_registry#646.global(24, "zwp_input_method_manager_v2", 1) +[2617833.862] {Default Queue} wl_registry#646.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617833.876] {Default Queue} wl_registry#646.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617833.882] {Default Queue} wl_registry#646.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617833.886] {Default Queue} wl_registry#646.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617833.891] {Default Queue} wl_registry#646.global(29, "ext_workspace_manager_v1", 1) +[2617833.895] {Default Queue} wl_registry#646.global(30, "zwlr_output_manager_v1", 4) +[2617833.899] {Default Queue} wl_registry#646.global(31, "zwlr_screencopy_manager_v1", 3) +[2617833.903] {Default Queue} wl_registry#646.global(32, "wp_viewporter", 1) +[2617833.908] {Default Queue} wl_registry#646.global(33, "zxdg_exporter_v2", 1) +[2617833.912] {Default Queue} wl_registry#646.global(34, "zxdg_importer_v2", 1) +[2617833.916] {Default Queue} wl_registry#646.global(36, "xdg_activation_v1", 1) +[2617833.921] {Default Queue} wl_registry#646.global(37, "mutter_x11_interop", 1) +[2617833.925] {Default Queue} wl_registry#646.global(38, "wl_seat", 9) +[2617833.930] {Default Queue} -> wl_registry#646.bind(38, "wl_seat", 1, new id [unknown]#664) +[2617833.935] {Default Queue} wl_registry#646.global(39, "wp_cursor_shape_manager_v1", 2) +[2617833.939] {Default Queue} wl_registry#646.global(40, "wl_output", 4) +[2617833.943] {Default Queue} -> wl_registry#646.bind(40, "wl_output", 1, new id [unknown]#665) +[2617833.948] {Default Queue} wl_callback#647.done(0) +[2617833.952] {Default Queue} discarded wl_surface#615.enter(wl_output#18) +[2617833.956] {Default Queue} discarded wl_surface#615.enter(wl_output#57) +[2617833.960] {Default Queue} discarded wl_surface#615.enter(wl_output#89) +[2617833.964] {Default Queue} discarded wl_surface#615.enter(wl_output#121) +[2617833.967] {Default Queue} discarded wl_surface#615.enter(wl_output#153) +[2617833.971] {Default Queue} discarded wl_surface#615.enter(wl_output#185) +[2617833.975] {Default Queue} discarded wl_surface#615.enter(wl_output#217) +[2617833.979] {Default Queue} discarded wl_surface#615.enter(wl_output#249) +[2617833.983] {Default Queue} discarded wl_surface#615.enter(wl_output#281) +[2617833.987] {Default Queue} discarded wl_surface#615.enter(wl_output#313) +[2617833.991] {Default Queue} discarded wl_surface#615.enter(wl_output#345) +[2617833.995] {Default Queue} discarded wl_surface#615.enter(wl_output#377) +[2617833.999] {Default Queue} discarded wl_surface#615.enter(wl_output#409) +[2617834.003] {Default Queue} discarded wl_surface#615.enter(wl_output#441) +[2617834.007] {Default Queue} discarded wl_surface#615.enter(wl_output#473) +[2617834.011] {Default Queue} discarded wl_surface#615.enter(wl_output#505) +[2617834.014] {Default Queue} discarded wl_surface#615.enter(wl_output#537) +[2617834.018] {Default Queue} discarded wl_surface#615.enter(wl_output#569) +[2617834.022] {Default Queue} discarded wl_surface#615.enter(wl_output#601) +[2617834.026] {Default Queue} discarded wl_surface#615.enter(wl_output#633) +[2617834.030] {Default Queue} -> wl_compositor#492.create_surface(new id wl_surface#647) +[2617834.035] {Default Queue} -> wl_subcompositor#653.get_subsurface(new id wl_subsurface#666, wl_surface#647, wl_surface#487) +[2617834.039] {Default Queue} -> wl_subsurface#666.set_desync() +[2617834.044] {Default Queue} -> wl_subsurface#666.set_position(0, 0) +[2617834.049] {Default Queue} -> wl_subsurface#666.place_above(wl_surface#487) +[2617834.092] {Default Queue} -> wl_shm#655.create_pool(new id wl_shm_pool#667, fd 109, 16) +[2617834.099] {Default Queue} -> wl_shm#655.create_pool(new id wl_shm_pool#668, fd 110, 16) +[2617834.104] {Default Queue} -> wl_shm_pool#667.create_buffer(new id wl_buffer#669, 0, 2, 2, 8, 0) +[2617834.109] {Default Queue} -> wl_shm_pool#668.create_buffer(new id wl_buffer#670, 0, 2, 2, 8, 0) +[2617834.117] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) +[2617834.121] {Default Queue} -> wl_surface#647.commit() +[2617834.127] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) +[2617834.131] {Default Queue} -> wl_surface#647.commit() +[2617834.135] {Default Queue} -> wl_compositor#652.create_region(new id wl_region#671) +[2617834.143] {Default Queue} -> wl_compositor#652.create_region(new id wl_region#672) +[2617834.149] {Default Queue} -> wl_region#671.subtract(0, 0, 2, 2) +[2617834.154] {Default Queue} -> wl_region#671.add(0, 0, 0, 0) +[2617834.158] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2617834.163] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2617834.167] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2617834.171] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2617834.178] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) +[2617834.183] {Default Queue} -> wl_surface#647.commit() +[2617834.214] {Default Queue} -> wl_shm#657.create_pool(new id wl_shm_pool#673, fd 113, 640) +[2617834.220] {Default Queue} -> wl_shm#657.create_pool(new id wl_shm_pool#674, fd 114, 640) +[2617834.224] {Default Queue} -> wl_shm_pool#673.create_buffer(new id wl_buffer#675, 0, 10, 16, 40, 0) +[2617834.229] {Default Queue} -> wl_shm_pool#674.create_buffer(new id wl_buffer#676, 0, 10, 16, 40, 0) +[2617834.236] {Default Queue} -> wl_compositor#652.create_surface(new id wl_surface#677) +[2617834.240] {Default Queue} -> wl_surface#677.attach(wl_buffer#675, 0, 0) +[2617834.245] {Default Queue} -> wl_surface#677.commit() +[2617834.250] {Default Queue} -> wl_surface#677.attach(wl_buffer#675, 0, 0) +[2617834.255] {Default Queue} -> wl_surface#677.commit() +[2617834.260] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2617834.268] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#678) +[2617834.273] {Default Queue} -> wl_display#1.sync(new id wl_callback#679) +[2617843.472] {Display Queue} wl_display#1.delete_id(679) +[2617843.484] {Default Queue} wl_keyboard#648.keymap(1, fd 109, 68213) +[2617843.490] {Default Queue} wl_keyboard#648.enter(566, wl_surface#19, array[0]) +[2617843.495] {Default Queue} wl_keyboard#648.modifiers(566, 0, 0, 16, 0) +[2617843.500] {Default Queue} discarded wl_shm#655.format(875709016) +[2617843.504] {Default Queue} discarded wl_shm#655.format(1) +[2617843.508] {Default Queue} discarded wl_shm#655.format(0) +[2617843.512] {Default Queue} discarded wl_shm#655.format(875708993) +[2617843.516] {Default Queue} discarded wl_shm#656.format(875709016) +[2617843.520] {Default Queue} discarded wl_shm#656.format(1) +[2617843.524] {Default Queue} discarded wl_shm#656.format(0) +[2617843.528] {Default Queue} discarded wl_shm#656.format(875708993) +[2617843.532] {Default Queue} discarded wl_shm#657.format(875709016) +[2617843.536] {Default Queue} discarded wl_shm#657.format(1) +[2617843.540] {Default Queue} discarded wl_shm#657.format(0) +[2617843.544] {Default Queue} discarded wl_shm#657.format(875708993) +[2617843.548] {Default Queue} wl_seat#664.capabilities(7) +[2617843.552] {Default Queue} -> wl_seat#664.get_keyboard(new id wl_keyboard#680) +[2617843.557] {Default Queue} -> wl_seat#664.get_pointer(new id wl_pointer#681) +[2617843.561] {Default Queue} -> wl_data_device_manager#660.get_data_device(new id wl_data_device#682, wl_seat#664) +[2617843.567] {Default Queue} -> zwp_primary_selection_device_manager_v1#662.get_device(new id zwp_primary_selection_device_v1#683, wl_seat#664) +[2617843.574] {Default Queue} wl_output#665.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617843.579] {Default Queue} wl_output#665.mode(3, 1280, 800, 60000) +[2617843.584] {Default Queue} discarded wl_surface#3.enter(wl_output#665) +[2617843.588] {Default Queue} discarded wl_surface#423.enter(wl_output#665) +[2617843.592] {Default Queue} discarded wl_surface#455.enter(wl_output#665) +[2617843.596] {Default Queue} discarded wl_surface#135.enter(wl_output#665) +[2617843.600] {Default Queue} discarded wl_surface#615.enter(wl_output#665) +[2617843.604] {Default Queue} discarded wl_surface#231.enter(wl_output#665) +[2617843.607] {Default Queue} discarded wl_surface#359.enter(wl_output#665) +[2617843.612] {Default Queue} discarded wl_surface#583.enter(wl_output#665) +[2617843.616] {Default Queue} discarded wl_surface#103.enter(wl_output#665) +[2617843.619] {Default Queue} discarded wl_surface#327.enter(wl_output#665) +[2617843.627] {Default Queue} discarded wl_surface#43.enter(wl_output#665) +[2617843.634] {Default Queue} discarded wl_surface#19.enter(wl_output#665) +[2617843.638] {Default Queue} discarded wl_surface#199.enter(wl_output#665) +[2617843.642] {Default Queue} discarded wl_surface#391.enter(wl_output#665) +[2617843.646] {Default Queue} discarded wl_surface#263.enter(wl_output#665) +[2617843.649] {Default Queue} discarded wl_surface#551.enter(wl_output#665) +[2617843.654] {Default Queue} discarded wl_surface#71.enter(wl_output#665) +[2617843.658] {Default Queue} discarded wl_surface#487.enter(wl_output#665) +[2617843.661] {Default Queue} discarded wl_surface#519.enter(wl_output#665) +[2617843.665] {Default Queue} discarded wl_surface#295.enter(wl_output#665) +[2617843.669] {Default Queue} discarded wl_surface#167.enter(wl_output#665) +[2617843.673] {Default Queue} wl_registry#678.global(1, "wl_compositor", 6) +[2617843.678] {Default Queue} -> wl_registry#678.bind(1, "wl_compositor", 1, new id [unknown]#684) +[2617843.683] {Default Queue} wl_registry#678.global(2, "wl_subcompositor", 1) +[2617843.687] {Default Queue} -> wl_registry#678.bind(2, "wl_subcompositor", 1, new id [unknown]#685) +[2617843.692] {Default Queue} wl_registry#678.global(3, "xdg_wm_base", 6) +[2617843.696] {Default Queue} -> wl_registry#678.bind(3, "xdg_wm_base", 1, new id [unknown]#686) +[2617843.701] {Default Queue} wl_registry#678.global(6, "zwlr_layer_shell_v1", 5) +[2617843.705] {Default Queue} wl_registry#678.global(7, "ext_session_lock_manager_v1", 1) +[2617843.710] {Default Queue} wl_registry#678.global(8, "wl_shm", 2) +[2617843.716] {Default Queue} -> wl_registry#678.bind(8, "wl_shm", 1, new id [unknown]#687) +[2617843.723] {Default Queue} -> wl_registry#678.bind(8, "wl_shm", 1, new id [unknown]#688) +[2617843.729] {Default Queue} -> wl_registry#678.bind(8, "wl_shm", 1, new id [unknown]#689) +[2617843.734] {Default Queue} wl_registry#678.global(9, "zxdg_output_manager_v1", 3) +[2617843.739] {Default Queue} wl_registry#678.global(10, "wp_fractional_scale_manager_v1", 1) +[2617843.743] {Default Queue} wl_registry#678.global(11, "zwp_tablet_manager_v2", 1) +[2617843.747] {Default Queue} wl_registry#678.global(12, "zwp_pointer_gestures_v1", 3) +[2617843.752] {Default Queue} wl_registry#678.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617843.756] {Default Queue} -> wl_registry#678.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#690) +[2617843.761] {Default Queue} wl_registry#678.global(14, "zwp_pointer_constraints_v1", 1) +[2617843.765] {Default Queue} -> wl_registry#678.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#691) +[2617843.770] {Default Queue} wl_registry#678.global(15, "ext_idle_notifier_v1", 2) +[2617843.774] {Default Queue} wl_registry#678.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617843.778] {Default Queue} wl_registry#678.global(17, "wl_data_device_manager", 3) +[2617843.783] {Default Queue} -> wl_registry#678.bind(17, "wl_data_device_manager", 2, new id [unknown]#692) +[2617843.788] {Default Queue} -> wl_data_device_manager#692.create_data_source(new id wl_data_source#693) +[2617843.792] {Default Queue} -> wl_data_source#693.offer("text/plain") +[2617843.796] {Default Queue} -> wl_data_source#693.offer("text/plain;charset=utf-8") +[2617843.800] {Default Queue} -> wl_data_source#693.offer("TEXT") +[2617843.805] {Default Queue} -> wl_data_source#693.offer("STRING") +[2617843.808] {Default Queue} -> wl_data_source#693.offer("UTF8_STRING") +[2617843.813] {Default Queue} wl_registry#678.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617843.817] {Default Queue} -> wl_registry#678.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#694) +[2617843.822] {Default Queue} -> zwp_primary_selection_device_manager_v1#694.create_source(new id zwp_primary_selection_source_v1#695) +[2617843.829] {Default Queue} -> zwp_primary_selection_source_v1#695.offer("text/plain") +[2617843.834] {Default Queue} -> zwp_primary_selection_source_v1#695.offer("text/plain;charset=utf-8") +[2617843.841] {Default Queue} -> zwp_primary_selection_source_v1#695.offer("TEXT") +[2617843.847] {Default Queue} -> zwp_primary_selection_source_v1#695.offer("STRING") +[2617843.851] {Default Queue} -> zwp_primary_selection_source_v1#695.offer("UTF8_STRING") +[2617843.855] {Default Queue} wl_registry#678.global(19, "zwlr_data_control_manager_v1", 2) +[2617843.859] {Default Queue} wl_registry#678.global(20, "ext_data_control_manager_v1", 1) +[2617843.869] {Default Queue} wl_registry#678.global(21, "wp_presentation", 2) +[2617843.874] {Default Queue} wl_registry#678.global(22, "wp_security_context_manager_v1", 1) +[2617843.895] {Default Queue} wl_registry#678.global(23, "zwp_text_input_manager_v3", 1) +[2617843.911] {Default Queue} wl_registry#678.global(24, "zwp_input_method_manager_v2", 1) +[2617843.918] {Default Queue} wl_registry#678.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617843.925] {Default Queue} wl_registry#678.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617843.931] {Default Queue} wl_registry#678.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617843.936] {Default Queue} wl_registry#678.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617843.941] {Default Queue} wl_registry#678.global(29, "ext_workspace_manager_v1", 1) +[2617843.947] {Default Queue} wl_registry#678.global(30, "zwlr_output_manager_v1", 4) +[2617843.952] {Default Queue} wl_registry#678.global(31, "zwlr_screencopy_manager_v1", 3) +[2617843.957] {Default Queue} wl_registry#678.global(32, "wp_viewporter", 1) +[2617843.963] {Default Queue} wl_registry#678.global(33, "zxdg_exporter_v2", 1) +[2617843.969] {Default Queue} wl_registry#678.global(34, "zxdg_importer_v2", 1) +[2617843.974] {Default Queue} wl_registry#678.global(36, "xdg_activation_v1", 1) +[2617843.980] {Default Queue} wl_registry#678.global(37, "mutter_x11_interop", 1) +[2617843.985] {Default Queue} wl_registry#678.global(38, "wl_seat", 9) +[2617843.991] {Default Queue} -> wl_registry#678.bind(38, "wl_seat", 1, new id [unknown]#696) +[2617843.998] {Default Queue} wl_registry#678.global(39, "wp_cursor_shape_manager_v1", 2) +[2617844.003] {Default Queue} wl_registry#678.global(40, "wl_output", 4) +[2617844.009] {Default Queue} -> wl_registry#678.bind(40, "wl_output", 1, new id [unknown]#697) +[2617844.015] {Default Queue} wl_callback#679.done(0) +[2617844.020] {Default Queue} discarded wl_surface#647.enter(wl_output#18) +[2617844.026] {Default Queue} discarded wl_surface#647.enter(wl_output#57) +[2617844.031] {Default Queue} discarded wl_surface#647.enter(wl_output#89) +[2617844.036] {Default Queue} discarded wl_surface#647.enter(wl_output#121) +[2617844.041] {Default Queue} discarded wl_surface#647.enter(wl_output#153) +[2617844.046] {Default Queue} discarded wl_surface#647.enter(wl_output#185) +[2617844.051] {Default Queue} discarded wl_surface#647.enter(wl_output#217) +[2617844.055] {Default Queue} discarded wl_surface#647.enter(wl_output#249) +[2617844.060] {Default Queue} discarded wl_surface#647.enter(wl_output#281) +[2617844.065] {Default Queue} discarded wl_surface#647.enter(wl_output#313) +[2617844.070] {Default Queue} discarded wl_surface#647.enter(wl_output#345) +[2617844.075] {Default Queue} discarded wl_surface#647.enter(wl_output#377) +[2617844.080] {Default Queue} discarded wl_surface#647.enter(wl_output#409) +[2617844.085] {Default Queue} discarded wl_surface#647.enter(wl_output#441) +[2617844.090] {Default Queue} discarded wl_surface#647.enter(wl_output#473) +[2617844.095] {Default Queue} discarded wl_surface#647.enter(wl_output#505) +[2617844.100] {Default Queue} discarded wl_surface#647.enter(wl_output#537) +[2617844.104] {Default Queue} discarded wl_surface#647.enter(wl_output#569) +[2617844.109] {Default Queue} discarded wl_surface#647.enter(wl_output#601) +[2617844.114] {Default Queue} discarded wl_surface#647.enter(wl_output#633) +[2617844.119] {Default Queue} discarded wl_surface#647.enter(wl_output#665) +[2617844.124] {Default Queue} -> wl_compositor#460.create_surface(new id wl_surface#679) +[2617844.130] {Default Queue} -> wl_subcompositor#685.get_subsurface(new id wl_subsurface#698, wl_surface#679, wl_surface#455) +[2617844.142] {Default Queue} -> wl_subsurface#698.set_desync() +[2617844.151] {Default Queue} -> wl_subsurface#698.set_position(0, 0) +[2617844.157] {Default Queue} -> wl_subsurface#698.place_above(wl_surface#455) +[2617844.220] {Default Queue} -> wl_shm#687.create_pool(new id wl_shm_pool#699, fd 114, 16) +[2617844.231] {Default Queue} -> wl_shm#687.create_pool(new id wl_shm_pool#700, fd 115, 16) +[2617844.237] {Default Queue} -> wl_shm_pool#699.create_buffer(new id wl_buffer#701, 0, 2, 2, 8, 0) +[2617844.244] {Default Queue} -> wl_shm_pool#700.create_buffer(new id wl_buffer#702, 0, 2, 2, 8, 0) +[2617844.254] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) +[2617844.260] {Default Queue} -> wl_surface#679.commit() +[2617844.267] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) +[2617844.272] {Default Queue} -> wl_surface#679.commit() +[2617844.277] {Default Queue} -> wl_compositor#684.create_region(new id wl_region#703) +[2617844.283] {Default Queue} -> wl_compositor#684.create_region(new id wl_region#704) +[2617844.288] {Default Queue} -> wl_region#703.subtract(0, 0, 2, 2) +[2617844.293] {Default Queue} -> wl_region#703.add(0, 0, 0, 0) +[2617844.299] {Default Queue} -> wl_surface#679.set_opaque_region(wl_region#704) +[2617844.304] {Default Queue} -> wl_surface#679.set_input_region(wl_region#703) +[2617844.309] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2617844.315] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2617844.324] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) +[2617844.329] {Default Queue} -> wl_surface#679.commit() +[2617844.372] {Default Queue} -> wl_shm#689.create_pool(new id wl_shm_pool#705, fd 118, 640) +[2617844.380] {Default Queue} -> wl_shm#689.create_pool(new id wl_shm_pool#706, fd 119, 640) +[2617844.386] {Default Queue} -> wl_shm_pool#705.create_buffer(new id wl_buffer#707, 0, 10, 16, 40, 0) +[2617844.392] {Default Queue} -> wl_shm_pool#706.create_buffer(new id wl_buffer#708, 0, 10, 16, 40, 0) +[2617844.401] {Default Queue} -> wl_compositor#684.create_surface(new id wl_surface#709) +[2617844.407] {Default Queue} -> wl_surface#709.attach(wl_buffer#707, 0, 0) +[2617844.411] {Default Queue} -> wl_surface#709.commit() +[2617844.417] {Default Queue} -> wl_surface#709.attach(wl_buffer#707, 0, 0) +[2617844.421] {Default Queue} -> wl_surface#709.commit() +[2617844.427] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2617844.432] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2617844.442] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#710) +[2617844.447] {Default Queue} -> wl_display#1.sync(new id wl_callback#711) +[2617853.510] {Display Queue} wl_display#1.delete_id(711) +[2617853.528] {Default Queue} wl_keyboard#680.keymap(1, fd 114, 68213) +[2617853.539] {Default Queue} wl_keyboard#680.enter(566, wl_surface#19, array[0]) +[2617853.548] {Default Queue} wl_keyboard#680.modifiers(566, 0, 0, 16, 0) +[2617853.557] {Default Queue} discarded wl_shm#687.format(875709016) +[2617853.564] {Default Queue} discarded wl_shm#687.format(1) +[2617853.571] {Default Queue} discarded wl_shm#687.format(0) +[2617853.579] {Default Queue} discarded wl_shm#687.format(875708993) +[2617853.586] {Default Queue} discarded wl_shm#688.format(875709016) +[2617853.594] {Default Queue} discarded wl_shm#688.format(1) +[2617853.601] {Default Queue} discarded wl_shm#688.format(0) +[2617853.608] {Default Queue} discarded wl_shm#688.format(875708993) +[2617853.614] {Default Queue} discarded wl_shm#689.format(875709016) +[2617853.621] {Default Queue} discarded wl_shm#689.format(1) +[2617853.628] {Default Queue} discarded wl_shm#689.format(0) +[2617853.634] {Default Queue} discarded wl_shm#689.format(875708993) +[2617853.641] {Default Queue} wl_seat#696.capabilities(7) +[2617853.649] {Default Queue} -> wl_seat#696.get_keyboard(new id wl_keyboard#712) +[2617853.657] {Default Queue} -> wl_seat#696.get_pointer(new id wl_pointer#713) +[2617853.666] {Default Queue} -> wl_data_device_manager#692.get_data_device(new id wl_data_device#714, wl_seat#696) +[2617853.683] {Default Queue} -> zwp_primary_selection_device_manager_v1#694.get_device(new id zwp_primary_selection_device_v1#715, wl_seat#696) +[2617853.702] {Default Queue} wl_output#697.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617853.711] {Default Queue} wl_output#697.mode(3, 1280, 800, 60000) +[2617853.719] {Default Queue} discarded wl_surface#3.enter(wl_output#697) +[2617853.727] {Default Queue} discarded wl_surface#423.enter(wl_output#697) +[2617853.734] {Default Queue} discarded wl_surface#455.enter(wl_output#697) +[2617853.740] {Default Queue} discarded wl_surface#135.enter(wl_output#697) +[2617853.747] {Default Queue} discarded wl_surface#615.enter(wl_output#697) +[2617853.754] {Default Queue} discarded wl_surface#231.enter(wl_output#697) +[2617853.760] {Default Queue} discarded wl_surface#359.enter(wl_output#697) +[2617853.765] {Default Queue} discarded wl_surface#583.enter(wl_output#697) +[2617853.770] {Default Queue} discarded wl_surface#103.enter(wl_output#697) +[2617853.776] {Default Queue} discarded wl_surface#327.enter(wl_output#697) +[2617853.782] {Default Queue} discarded wl_surface#43.enter(wl_output#697) +[2617853.788] {Default Queue} discarded wl_surface#19.enter(wl_output#697) +[2617853.794] {Default Queue} discarded wl_surface#199.enter(wl_output#697) +[2617853.801] {Default Queue} discarded wl_surface#391.enter(wl_output#697) +[2617853.808] {Default Queue} discarded wl_surface#263.enter(wl_output#697) +[2617853.814] {Default Queue} discarded wl_surface#551.enter(wl_output#697) +[2617853.820] {Default Queue} discarded wl_surface#647.enter(wl_output#697) +[2617853.825] {Default Queue} discarded wl_surface#71.enter(wl_output#697) +[2617853.830] {Default Queue} discarded wl_surface#487.enter(wl_output#697) +[2617853.835] {Default Queue} discarded wl_surface#519.enter(wl_output#697) +[2617853.839] {Default Queue} discarded wl_surface#295.enter(wl_output#697) +[2617853.844] {Default Queue} discarded wl_surface#167.enter(wl_output#697) +[2617853.849] {Default Queue} wl_registry#710.global(1, "wl_compositor", 6) +[2617853.856] {Default Queue} -> wl_registry#710.bind(1, "wl_compositor", 1, new id [unknown]#716) +[2617853.868] {Default Queue} wl_registry#710.global(2, "wl_subcompositor", 1) +[2617853.875] {Default Queue} -> wl_registry#710.bind(2, "wl_subcompositor", 1, new id [unknown]#717) +[2617853.880] {Default Queue} wl_registry#710.global(3, "xdg_wm_base", 6) +[2617853.886] {Default Queue} -> wl_registry#710.bind(3, "xdg_wm_base", 1, new id [unknown]#718) +[2617853.891] {Default Queue} wl_registry#710.global(6, "zwlr_layer_shell_v1", 5) +[2617853.897] {Default Queue} wl_registry#710.global(7, "ext_session_lock_manager_v1", 1) +[2617853.902] {Default Queue} wl_registry#710.global(8, "wl_shm", 2) +[2617853.908] {Default Queue} -> wl_registry#710.bind(8, "wl_shm", 1, new id [unknown]#719) +[2617853.914] {Default Queue} -> wl_registry#710.bind(8, "wl_shm", 1, new id [unknown]#720) +[2617853.919] {Default Queue} -> wl_registry#710.bind(8, "wl_shm", 1, new id [unknown]#721) +[2617853.924] {Default Queue} wl_registry#710.global(9, "zxdg_output_manager_v1", 3) +[2617853.930] {Default Queue} wl_registry#710.global(10, "wp_fractional_scale_manager_v1", 1) +[2617853.935] {Default Queue} wl_registry#710.global(11, "zwp_tablet_manager_v2", 1) +[2617853.940] {Default Queue} wl_registry#710.global(12, "zwp_pointer_gestures_v1", 3) +[2617853.946] {Default Queue} wl_registry#710.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617853.951] {Default Queue} -> wl_registry#710.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#722) +[2617853.957] {Default Queue} wl_registry#710.global(14, "zwp_pointer_constraints_v1", 1) +[2617853.962] {Default Queue} -> wl_registry#710.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#723) +[2617853.968] {Default Queue} wl_registry#710.global(15, "ext_idle_notifier_v1", 2) +[2617853.973] {Default Queue} wl_registry#710.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617853.978] {Default Queue} wl_registry#710.global(17, "wl_data_device_manager", 3) +[2617853.989] {Default Queue} -> wl_registry#710.bind(17, "wl_data_device_manager", 2, new id [unknown]#724) +[2617853.998] {Default Queue} -> wl_data_device_manager#724.create_data_source(new id wl_data_source#725) +[2617854.003] {Default Queue} -> wl_data_source#725.offer("text/plain") +[2617854.009] {Default Queue} -> wl_data_source#725.offer("text/plain;charset=utf-8") +[2617854.014] {Default Queue} -> wl_data_source#725.offer("TEXT") +[2617854.019] {Default Queue} -> wl_data_source#725.offer("STRING") +[2617854.024] {Default Queue} -> wl_data_source#725.offer("UTF8_STRING") +[2617854.030] {Default Queue} wl_registry#710.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617854.036] {Default Queue} -> wl_registry#710.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#726) +[2617854.042] {Default Queue} -> zwp_primary_selection_device_manager_v1#726.create_source(new id zwp_primary_selection_source_v1#727) +[2617854.051] {Default Queue} -> zwp_primary_selection_source_v1#727.offer("text/plain") +[2617854.056] {Default Queue} -> zwp_primary_selection_source_v1#727.offer("text/plain;charset=utf-8") +[2617854.061] {Default Queue} -> zwp_primary_selection_source_v1#727.offer("TEXT") +[2617854.066] {Default Queue} -> zwp_primary_selection_source_v1#727.offer("STRING") +[2617854.071] {Default Queue} -> zwp_primary_selection_source_v1#727.offer("UTF8_STRING") +[2617854.076] {Default Queue} wl_registry#710.global(19, "zwlr_data_control_manager_v1", 2) +[2617854.082] {Default Queue} wl_registry#710.global(20, "ext_data_control_manager_v1", 1) +[2617854.087] {Default Queue} wl_registry#710.global(21, "wp_presentation", 2) +[2617854.093] {Default Queue} wl_registry#710.global(22, "wp_security_context_manager_v1", 1) +[2617854.098] {Default Queue} wl_registry#710.global(23, "zwp_text_input_manager_v3", 1) +[2617854.103] {Default Queue} wl_registry#710.global(24, "zwp_input_method_manager_v2", 1) +[2617854.108] {Default Queue} wl_registry#710.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617854.114] {Default Queue} wl_registry#710.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617854.119] {Default Queue} wl_registry#710.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617854.125] {Default Queue} wl_registry#710.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617854.130] {Default Queue} wl_registry#710.global(29, "ext_workspace_manager_v1", 1) +[2617854.136] {Default Queue} wl_registry#710.global(30, "zwlr_output_manager_v1", 4) +[2617854.141] {Default Queue} wl_registry#710.global(31, "zwlr_screencopy_manager_v1", 3) +[2617854.146] {Default Queue} wl_registry#710.global(32, "wp_viewporter", 1) +[2617854.152] {Default Queue} wl_registry#710.global(33, "zxdg_exporter_v2", 1) +[2617854.157] {Default Queue} wl_registry#710.global(34, "zxdg_importer_v2", 1) +[2617854.162] {Default Queue} wl_registry#710.global(36, "xdg_activation_v1", 1) +[2617854.167] {Default Queue} wl_registry#710.global(37, "mutter_x11_interop", 1) +[2617854.173] {Default Queue} wl_registry#710.global(38, "wl_seat", 9) +[2617854.179] {Default Queue} -> wl_registry#710.bind(38, "wl_seat", 1, new id [unknown]#728) +[2617854.184] {Default Queue} wl_registry#710.global(39, "wp_cursor_shape_manager_v1", 2) +[2617854.189] {Default Queue} wl_registry#710.global(40, "wl_output", 4) +[2617854.195] {Default Queue} -> wl_registry#710.bind(40, "wl_output", 1, new id [unknown]#729) +[2617854.201] {Default Queue} wl_callback#711.done(0) +[2617854.206] {Default Queue} discarded wl_surface#679.enter(wl_output#18) +[2617854.211] {Default Queue} discarded wl_surface#679.enter(wl_output#57) +[2617854.216] {Default Queue} discarded wl_surface#679.enter(wl_output#89) +[2617854.221] {Default Queue} discarded wl_surface#679.enter(wl_output#121) +[2617854.226] {Default Queue} discarded wl_surface#679.enter(wl_output#153) +[2617854.231] {Default Queue} discarded wl_surface#679.enter(wl_output#185) +[2617854.236] {Default Queue} discarded wl_surface#679.enter(wl_output#217) +[2617854.241] {Default Queue} discarded wl_surface#679.enter(wl_output#249) +[2617854.245] {Default Queue} discarded wl_surface#679.enter(wl_output#281) +[2617854.254] {Default Queue} discarded wl_surface#679.enter(wl_output#313) +[2617854.261] {Default Queue} discarded wl_surface#679.enter(wl_output#345) +[2617854.266] {Default Queue} discarded wl_surface#679.enter(wl_output#377) +[2617854.271] {Default Queue} discarded wl_surface#679.enter(wl_output#409) +[2617854.276] {Default Queue} discarded wl_surface#679.enter(wl_output#441) +[2617854.280] {Default Queue} discarded wl_surface#679.enter(wl_output#473) +[2617854.285] {Default Queue} discarded wl_surface#679.enter(wl_output#505) +[2617854.290] {Default Queue} discarded wl_surface#679.enter(wl_output#537) +[2617854.295] {Default Queue} discarded wl_surface#679.enter(wl_output#569) +[2617854.300] {Default Queue} discarded wl_surface#679.enter(wl_output#601) +[2617854.304] {Default Queue} discarded wl_surface#679.enter(wl_output#633) +[2617854.309] {Default Queue} discarded wl_surface#679.enter(wl_output#665) +[2617854.314] {Default Queue} discarded wl_surface#679.enter(wl_output#697) +[2617854.319] {Default Queue} -> wl_compositor#684.create_surface(new id wl_surface#711) +[2617854.325] {Default Queue} -> wl_subcompositor#717.get_subsurface(new id wl_subsurface#730, wl_surface#711, wl_surface#679) +[2617854.331] {Default Queue} -> wl_subsurface#730.set_desync() +[2617854.336] {Default Queue} -> wl_subsurface#730.set_position(0, 0) +[2617854.342] {Default Queue} -> wl_subsurface#730.place_above(wl_surface#679) +[2617854.398] {Default Queue} -> wl_shm#719.create_pool(new id wl_shm_pool#731, fd 119, 16) +[2617854.407] {Default Queue} -> wl_shm#719.create_pool(new id wl_shm_pool#732, fd 120, 16) +[2617854.412] {Default Queue} -> wl_shm_pool#731.create_buffer(new id wl_buffer#733, 0, 2, 2, 8, 0) +[2617854.418] {Default Queue} -> wl_shm_pool#732.create_buffer(new id wl_buffer#734, 0, 2, 2, 8, 0) +[2617854.429] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) +[2617854.434] {Default Queue} -> wl_surface#711.commit() +[2617854.440] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) +[2617854.444] {Default Queue} -> wl_surface#711.commit() +[2617854.448] {Default Queue} -> wl_compositor#716.create_region(new id wl_region#735) +[2617854.453] {Default Queue} -> wl_compositor#716.create_region(new id wl_region#736) +[2617854.457] {Default Queue} -> wl_region#735.subtract(0, 0, 2, 2) +[2617854.461] {Default Queue} -> wl_region#735.add(0, 0, 0, 0) +[2617854.466] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2617854.471] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2617854.476] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2617854.480] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2617854.487] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) +[2617854.492] {Default Queue} -> wl_surface#711.commit() +[2617854.526] {Default Queue} -> wl_shm#721.create_pool(new id wl_shm_pool#737, fd 123, 640) +[2617854.533] {Default Queue} -> wl_shm#721.create_pool(new id wl_shm_pool#738, fd 124, 640) +[2617854.537] {Default Queue} -> wl_shm_pool#737.create_buffer(new id wl_buffer#739, 0, 10, 16, 40, 0) +[2617854.542] {Default Queue} -> wl_shm_pool#738.create_buffer(new id wl_buffer#740, 0, 10, 16, 40, 0) +[2617854.549] {Default Queue} -> wl_compositor#716.create_surface(new id wl_surface#741) +[2617854.553] {Default Queue} -> wl_surface#741.attach(wl_buffer#739, 0, 0) +[2617854.558] {Default Queue} -> wl_surface#741.commit() +[2617854.563] {Default Queue} -> wl_surface#741.attach(wl_buffer#739, 0, 0) +[2617854.568] {Default Queue} -> wl_surface#741.commit() +[2617854.573] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2617854.578] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2617854.583] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2617854.590] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#742) +[2617854.594] {Default Queue} -> wl_display#1.sync(new id wl_callback#743) +[2617863.533] {Display Queue} wl_display#1.delete_id(743) +[2617863.551] {Default Queue} wl_keyboard#712.keymap(1, fd 119, 68213) +[2617863.568] {Default Queue} wl_keyboard#712.enter(566, wl_surface#19, array[0]) +[2617863.583] {Default Queue} wl_keyboard#712.modifiers(566, 0, 0, 16, 0) +[2617863.590] {Default Queue} discarded wl_shm#719.format(875709016) +[2617863.597] {Default Queue} discarded wl_shm#719.format(1) +[2617863.605] {Default Queue} discarded wl_shm#719.format(0) +[2617863.612] {Default Queue} discarded wl_shm#719.format(875708993) +[2617863.619] {Default Queue} discarded wl_shm#720.format(875709016) +[2617863.626] {Default Queue} discarded wl_shm#720.format(1) +[2617863.633] {Default Queue} discarded wl_shm#720.format(0) +[2617863.642] {Default Queue} discarded wl_shm#720.format(875708993) +[2617863.649] {Default Queue} discarded wl_shm#721.format(875709016) +[2617863.656] {Default Queue} discarded wl_shm#721.format(1) +[2617863.662] {Default Queue} discarded wl_shm#721.format(0) +[2617863.669] {Default Queue} discarded wl_shm#721.format(875708993) +[2617863.675] {Default Queue} wl_seat#728.capabilities(7) +[2617863.683] {Default Queue} -> wl_seat#728.get_keyboard(new id wl_keyboard#744) +[2617863.694] {Default Queue} -> wl_seat#728.get_pointer(new id wl_pointer#745) +[2617863.702] {Default Queue} -> wl_data_device_manager#724.get_data_device(new id wl_data_device#746, wl_seat#728) +[2617863.711] {Default Queue} -> zwp_primary_selection_device_manager_v1#726.get_device(new id zwp_primary_selection_device_v1#747, wl_seat#728) +[2617863.726] {Default Queue} wl_output#729.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617863.737] {Default Queue} wl_output#729.mode(3, 1280, 800, 60000) +[2617863.745] {Default Queue} discarded wl_surface#3.enter(wl_output#729) +[2617863.752] {Default Queue} discarded wl_surface#423.enter(wl_output#729) +[2617863.760] {Default Queue} discarded wl_surface#455.enter(wl_output#729) +[2617863.766] {Default Queue} discarded wl_surface#135.enter(wl_output#729) +[2617863.773] {Default Queue} discarded wl_surface#615.enter(wl_output#729) +[2617863.780] {Default Queue} discarded wl_surface#231.enter(wl_output#729) +[2617863.787] {Default Queue} discarded wl_surface#359.enter(wl_output#729) +[2617863.794] {Default Queue} discarded wl_surface#583.enter(wl_output#729) +[2617863.801] {Default Queue} discarded wl_surface#103.enter(wl_output#729) +[2617863.807] {Default Queue} discarded wl_surface#327.enter(wl_output#729) +[2617863.815] {Default Queue} discarded wl_surface#43.enter(wl_output#729) +[2617863.822] {Default Queue} discarded wl_surface#19.enter(wl_output#729) +[2617863.827] {Default Queue} discarded wl_surface#199.enter(wl_output#729) +[2617863.833] {Default Queue} discarded wl_surface#391.enter(wl_output#729) +[2617863.838] {Default Queue} discarded wl_surface#263.enter(wl_output#729) +[2617863.842] {Default Queue} discarded wl_surface#551.enter(wl_output#729) +[2617863.847] {Default Queue} discarded wl_surface#647.enter(wl_output#729) +[2617863.853] {Default Queue} discarded wl_surface#71.enter(wl_output#729) +[2617863.859] {Default Queue} discarded wl_surface#487.enter(wl_output#729) +[2617863.875] {Default Queue} discarded wl_surface#519.enter(wl_output#729) +[2617863.882] {Default Queue} discarded wl_surface#295.enter(wl_output#729) +[2617863.889] {Default Queue} discarded wl_surface#167.enter(wl_output#729) +[2617863.896] {Default Queue} discarded wl_surface#679.enter(wl_output#729) +[2617863.902] {Default Queue} wl_registry#742.global(1, "wl_compositor", 6) +[2617863.909] {Default Queue} -> wl_registry#742.bind(1, "wl_compositor", 1, new id [unknown]#748) +[2617863.915] {Default Queue} wl_registry#742.global(2, "wl_subcompositor", 1) +[2617863.920] {Default Queue} -> wl_registry#742.bind(2, "wl_subcompositor", 1, new id [unknown]#749) +[2617863.926] {Default Queue} wl_registry#742.global(3, "xdg_wm_base", 6) +[2617863.932] {Default Queue} -> wl_registry#742.bind(3, "xdg_wm_base", 1, new id [unknown]#750) +[2617863.937] {Default Queue} wl_registry#742.global(6, "zwlr_layer_shell_v1", 5) +[2617863.943] {Default Queue} wl_registry#742.global(7, "ext_session_lock_manager_v1", 1) +[2617863.948] {Default Queue} wl_registry#742.global(8, "wl_shm", 2) +[2617863.967] {Default Queue} -> wl_registry#742.bind(8, "wl_shm", 1, new id [unknown]#751) +[2617863.976] {Default Queue} -> wl_registry#742.bind(8, "wl_shm", 1, new id [unknown]#752) +[2617863.982] {Default Queue} -> wl_registry#742.bind(8, "wl_shm", 1, new id [unknown]#753) +[2617863.987] {Default Queue} wl_registry#742.global(9, "zxdg_output_manager_v1", 3) +[2617863.992] {Default Queue} wl_registry#742.global(10, "wp_fractional_scale_manager_v1", 1) +[2617863.998] {Default Queue} wl_registry#742.global(11, "zwp_tablet_manager_v2", 1) +[2617864.003] {Default Queue} wl_registry#742.global(12, "zwp_pointer_gestures_v1", 3) +[2617864.008] {Default Queue} wl_registry#742.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617864.014] {Default Queue} -> wl_registry#742.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#754) +[2617864.020] {Default Queue} wl_registry#742.global(14, "zwp_pointer_constraints_v1", 1) +[2617864.026] {Default Queue} -> wl_registry#742.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#755) +[2617864.032] {Default Queue} wl_registry#742.global(15, "ext_idle_notifier_v1", 2) +[2617864.037] {Default Queue} wl_registry#742.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617864.043] {Default Queue} wl_registry#742.global(17, "wl_data_device_manager", 3) +[2617864.049] {Default Queue} -> wl_registry#742.bind(17, "wl_data_device_manager", 2, new id [unknown]#756) +[2617864.055] {Default Queue} -> wl_data_device_manager#756.create_data_source(new id wl_data_source#757) +[2617864.060] {Default Queue} -> wl_data_source#757.offer("text/plain") +[2617864.066] {Default Queue} -> wl_data_source#757.offer("text/plain;charset=utf-8") +[2617864.071] {Default Queue} -> wl_data_source#757.offer("TEXT") +[2617864.076] {Default Queue} -> wl_data_source#757.offer("STRING") +[2617864.081] {Default Queue} -> wl_data_source#757.offer("UTF8_STRING") +[2617864.086] {Default Queue} wl_registry#742.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617864.092] {Default Queue} -> wl_registry#742.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#758) +[2617864.098] {Default Queue} -> zwp_primary_selection_device_manager_v1#758.create_source(new id zwp_primary_selection_source_v1#759) +[2617864.107] {Default Queue} -> zwp_primary_selection_source_v1#759.offer("text/plain") +[2617864.112] {Default Queue} -> zwp_primary_selection_source_v1#759.offer("text/plain;charset=utf-8") +[2617864.117] {Default Queue} -> zwp_primary_selection_source_v1#759.offer("TEXT") +[2617864.122] {Default Queue} -> zwp_primary_selection_source_v1#759.offer("STRING") +[2617864.128] {Default Queue} -> zwp_primary_selection_source_v1#759.offer("UTF8_STRING") +[2617864.133] {Default Queue} wl_registry#742.global(19, "zwlr_data_control_manager_v1", 2) +[2617864.138] {Default Queue} wl_registry#742.global(20, "ext_data_control_manager_v1", 1) +[2617864.144] {Default Queue} wl_registry#742.global(21, "wp_presentation", 2) +[2617864.149] {Default Queue} wl_registry#742.global(22, "wp_security_context_manager_v1", 1) +[2617864.155] {Default Queue} wl_registry#742.global(23, "zwp_text_input_manager_v3", 1) +[2617864.160] {Default Queue} wl_registry#742.global(24, "zwp_input_method_manager_v2", 1) +[2617864.166] {Default Queue} wl_registry#742.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617864.171] {Default Queue} wl_registry#742.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617864.177] {Default Queue} wl_registry#742.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617864.182] {Default Queue} wl_registry#742.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617864.188] {Default Queue} wl_registry#742.global(29, "ext_workspace_manager_v1", 1) +[2617864.193] {Default Queue} wl_registry#742.global(30, "zwlr_output_manager_v1", 4) +[2617864.198] {Default Queue} wl_registry#742.global(31, "zwlr_screencopy_manager_v1", 3) +[2617864.203] {Default Queue} wl_registry#742.global(32, "wp_viewporter", 1) +[2617864.209] {Default Queue} wl_registry#742.global(33, "zxdg_exporter_v2", 1) +[2617864.218] {Default Queue} wl_registry#742.global(34, "zxdg_importer_v2", 1) +[2617864.226] {Default Queue} wl_registry#742.global(36, "xdg_activation_v1", 1) +[2617864.231] {Default Queue} wl_registry#742.global(37, "mutter_x11_interop", 1) +[2617864.236] {Default Queue} wl_registry#742.global(38, "wl_seat", 9) +[2617864.242] {Default Queue} -> wl_registry#742.bind(38, "wl_seat", 1, new id [unknown]#760) +[2617864.247] {Default Queue} wl_registry#742.global(39, "wp_cursor_shape_manager_v1", 2) +[2617864.253] {Default Queue} wl_registry#742.global(40, "wl_output", 4) +[2617864.259] {Default Queue} -> wl_registry#742.bind(40, "wl_output", 1, new id [unknown]#761) +[2617864.265] {Default Queue} wl_callback#743.done(0) +[2617864.270] {Default Queue} discarded wl_surface#711.enter(wl_output#18) +[2617864.275] {Default Queue} discarded wl_surface#711.enter(wl_output#57) +[2617864.280] {Default Queue} discarded wl_surface#711.enter(wl_output#89) +[2617864.285] {Default Queue} discarded wl_surface#711.enter(wl_output#121) +[2617864.290] {Default Queue} discarded wl_surface#711.enter(wl_output#153) +[2617864.295] {Default Queue} discarded wl_surface#711.enter(wl_output#185) +[2617864.300] {Default Queue} discarded wl_surface#711.enter(wl_output#217) +[2617864.305] {Default Queue} discarded wl_surface#711.enter(wl_output#249) +[2617864.310] {Default Queue} discarded wl_surface#711.enter(wl_output#281) +[2617864.315] {Default Queue} discarded wl_surface#711.enter(wl_output#313) +[2617864.320] {Default Queue} discarded wl_surface#711.enter(wl_output#345) +[2617864.325] {Default Queue} discarded wl_surface#711.enter(wl_output#377) +[2617864.330] {Default Queue} discarded wl_surface#711.enter(wl_output#409) +[2617864.335] {Default Queue} discarded wl_surface#711.enter(wl_output#441) +[2617864.340] {Default Queue} discarded wl_surface#711.enter(wl_output#473) +[2617864.345] {Default Queue} discarded wl_surface#711.enter(wl_output#505) +[2617864.349] {Default Queue} discarded wl_surface#711.enter(wl_output#537) +[2617864.355] {Default Queue} discarded wl_surface#711.enter(wl_output#569) +[2617864.359] {Default Queue} discarded wl_surface#711.enter(wl_output#601) +[2617864.364] {Default Queue} discarded wl_surface#711.enter(wl_output#633) +[2617864.369] {Default Queue} discarded wl_surface#711.enter(wl_output#665) +[2617864.374] {Default Queue} discarded wl_surface#711.enter(wl_output#697) +[2617864.379] {Default Queue} discarded wl_surface#711.enter(wl_output#729) +[2617864.384] {Default Queue} -> wl_compositor#684.create_surface(new id wl_surface#743) +[2617864.390] {Default Queue} -> wl_subcompositor#749.get_subsurface(new id wl_subsurface#762, wl_surface#743, wl_surface#679) +[2617864.396] {Default Queue} -> wl_subsurface#762.set_desync() +[2617864.401] {Default Queue} -> wl_subsurface#762.set_position(0, 0) +[2617864.407] {Default Queue} -> wl_subsurface#762.place_above(wl_surface#679) +[2617864.455] {Default Queue} -> wl_shm#751.create_pool(new id wl_shm_pool#763, fd 124, 16) +[2617864.462] {Default Queue} -> wl_shm#751.create_pool(new id wl_shm_pool#764, fd 125, 16) +[2617864.466] {Default Queue} -> wl_shm_pool#763.create_buffer(new id wl_buffer#765, 0, 2, 2, 8, 0) +[2617864.471] {Default Queue} -> wl_shm_pool#764.create_buffer(new id wl_buffer#766, 0, 2, 2, 8, 0) +[2617864.479] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) +[2617864.485] {Default Queue} -> wl_surface#743.commit() +[2617864.490] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) +[2617864.494] {Default Queue} -> wl_surface#743.commit() +[2617864.499] {Default Queue} -> wl_compositor#748.create_region(new id wl_region#767) +[2617864.503] {Default Queue} -> wl_compositor#748.create_region(new id wl_region#768) +[2617864.507] {Default Queue} -> wl_region#767.subtract(0, 0, 2, 2) +[2617864.512] {Default Queue} -> wl_region#767.add(0, 0, 0, 0) +[2617864.517] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2617864.521] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2617864.526] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2617864.534] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2617864.545] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) +[2617864.549] {Default Queue} -> wl_surface#743.commit() +[2617864.588] {Default Queue} -> wl_shm#753.create_pool(new id wl_shm_pool#769, fd 128, 640) +[2617864.595] {Default Queue} -> wl_shm#753.create_pool(new id wl_shm_pool#770, fd 129, 640) +[2617864.600] {Default Queue} -> wl_shm_pool#769.create_buffer(new id wl_buffer#771, 0, 10, 16, 40, 0) +[2617864.604] {Default Queue} -> wl_shm_pool#770.create_buffer(new id wl_buffer#772, 0, 10, 16, 40, 0) +[2617864.611] {Default Queue} -> wl_compositor#748.create_surface(new id wl_surface#773) +[2617864.616] {Default Queue} -> wl_surface#773.attach(wl_buffer#771, 0, 0) +[2617864.620] {Default Queue} -> wl_surface#773.commit() +[2617864.626] {Default Queue} -> wl_surface#773.attach(wl_buffer#771, 0, 0) +[2617864.630] {Default Queue} -> wl_surface#773.commit() +[2617864.636] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2617864.641] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2617864.646] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2617864.653] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#774) +[2617864.658] {Default Queue} -> wl_display#1.sync(new id wl_callback#775) +[2617873.548] {Display Queue} wl_display#1.delete_id(775) +[2617873.566] {Default Queue} wl_keyboard#744.keymap(1, fd 124, 68213) +[2617873.575] {Default Queue} wl_keyboard#744.enter(566, wl_surface#19, array[0]) +[2617873.584] {Default Queue} wl_keyboard#744.modifiers(566, 0, 0, 16, 0) +[2617873.594] {Default Queue} discarded wl_shm#751.format(875709016) +[2617873.601] {Default Queue} discarded wl_shm#751.format(1) +[2617873.607] {Default Queue} discarded wl_shm#751.format(0) +[2617873.616] {Default Queue} discarded wl_shm#751.format(875708993) +[2617873.623] {Default Queue} discarded wl_shm#752.format(875709016) +[2617873.631] {Default Queue} discarded wl_shm#752.format(1) +[2617873.641] {Default Queue} discarded wl_shm#752.format(0) +[2617873.649] {Default Queue} discarded wl_shm#752.format(875708993) +[2617873.656] {Default Queue} discarded wl_shm#753.format(875709016) +[2617873.663] {Default Queue} discarded wl_shm#753.format(1) +[2617873.669] {Default Queue} discarded wl_shm#753.format(0) +[2617873.676] {Default Queue} discarded wl_shm#753.format(875708993) +[2617873.683] {Default Queue} wl_seat#760.capabilities(7) +[2617873.690] {Default Queue} -> wl_seat#760.get_keyboard(new id wl_keyboard#776) +[2617873.698] {Default Queue} -> wl_seat#760.get_pointer(new id wl_pointer#777) +[2617873.705] {Default Queue} -> wl_data_device_manager#756.get_data_device(new id wl_data_device#778, wl_seat#760) +[2617873.713] {Default Queue} -> zwp_primary_selection_device_manager_v1#758.get_device(new id zwp_primary_selection_device_v1#779, wl_seat#760) +[2617873.728] {Default Queue} wl_output#761.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617873.737] {Default Queue} wl_output#761.mode(3, 1280, 800, 60000) +[2617873.745] {Default Queue} discarded wl_surface#3.enter(wl_output#761) +[2617873.753] {Default Queue} discarded wl_surface#423.enter(wl_output#761) +[2617873.760] {Default Queue} discarded wl_surface#455.enter(wl_output#761) +[2617873.768] {Default Queue} discarded wl_surface#135.enter(wl_output#761) +[2617873.776] {Default Queue} discarded wl_surface#615.enter(wl_output#761) +[2617873.783] {Default Queue} discarded wl_surface#231.enter(wl_output#761) +[2617873.790] {Default Queue} discarded wl_surface#359.enter(wl_output#761) +[2617873.797] {Default Queue} discarded wl_surface#583.enter(wl_output#761) +[2617873.804] {Default Queue} discarded wl_surface#103.enter(wl_output#761) +[2617873.811] {Default Queue} discarded wl_surface#327.enter(wl_output#761) +[2617873.818] {Default Queue} discarded wl_surface#43.enter(wl_output#761) +[2617873.825] {Default Queue} discarded wl_surface#19.enter(wl_output#761) +[2617873.832] {Default Queue} discarded wl_surface#199.enter(wl_output#761) +[2617873.838] {Default Queue} discarded wl_surface#391.enter(wl_output#761) +[2617873.853] {Default Queue} discarded wl_surface#711.enter(wl_output#761) +[2617873.870] {Default Queue} discarded wl_surface#263.enter(wl_output#761) +[2617873.877] {Default Queue} discarded wl_surface#551.enter(wl_output#761) +[2617873.883] {Default Queue} discarded wl_surface#647.enter(wl_output#761) +[2617873.891] {Default Queue} discarded wl_surface#71.enter(wl_output#761) +[2617873.897] {Default Queue} discarded wl_surface#487.enter(wl_output#761) +[2617873.904] {Default Queue} discarded wl_surface#519.enter(wl_output#761) +[2617873.909] {Default Queue} discarded wl_surface#295.enter(wl_output#761) +[2617873.914] {Default Queue} discarded wl_surface#167.enter(wl_output#761) +[2617873.919] {Default Queue} discarded wl_surface#679.enter(wl_output#761) +[2617873.924] {Default Queue} wl_registry#774.global(1, "wl_compositor", 6) +[2617873.931] {Default Queue} -> wl_registry#774.bind(1, "wl_compositor", 1, new id [unknown]#780) +[2617873.937] {Default Queue} wl_registry#774.global(2, "wl_subcompositor", 1) +[2617873.942] {Default Queue} -> wl_registry#774.bind(2, "wl_subcompositor", 1, new id [unknown]#781) +[2617873.948] {Default Queue} wl_registry#774.global(3, "xdg_wm_base", 6) +[2617873.954] {Default Queue} -> wl_registry#774.bind(3, "xdg_wm_base", 1, new id [unknown]#782) +[2617873.960] {Default Queue} wl_registry#774.global(6, "zwlr_layer_shell_v1", 5) +[2617873.966] {Default Queue} wl_registry#774.global(7, "ext_session_lock_manager_v1", 1) +[2617873.973] {Default Queue} wl_registry#774.global(8, "wl_shm", 2) +[2617873.981] {Default Queue} -> wl_registry#774.bind(8, "wl_shm", 1, new id [unknown]#783) +[2617873.987] {Default Queue} -> wl_registry#774.bind(8, "wl_shm", 1, new id [unknown]#784) +[2617873.992] {Default Queue} -> wl_registry#774.bind(8, "wl_shm", 1, new id [unknown]#785) +[2617873.998] {Default Queue} wl_registry#774.global(9, "zxdg_output_manager_v1", 3) +[2617874.004] {Default Queue} wl_registry#774.global(10, "wp_fractional_scale_manager_v1", 1) +[2617874.009] {Default Queue} wl_registry#774.global(11, "zwp_tablet_manager_v2", 1) +[2617874.015] {Default Queue} wl_registry#774.global(12, "zwp_pointer_gestures_v1", 3) +[2617874.020] {Default Queue} wl_registry#774.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617874.026] {Default Queue} -> wl_registry#774.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#786) +[2617874.031] {Default Queue} wl_registry#774.global(14, "zwp_pointer_constraints_v1", 1) +[2617874.037] {Default Queue} -> wl_registry#774.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#787) +[2617874.043] {Default Queue} wl_registry#774.global(15, "ext_idle_notifier_v1", 2) +[2617874.048] {Default Queue} wl_registry#774.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617874.053] {Default Queue} wl_registry#774.global(17, "wl_data_device_manager", 3) +[2617874.059] {Default Queue} -> wl_registry#774.bind(17, "wl_data_device_manager", 2, new id [unknown]#788) +[2617874.065] {Default Queue} -> wl_data_device_manager#788.create_data_source(new id wl_data_source#789) +[2617874.072] {Default Queue} -> wl_data_source#789.offer("text/plain") +[2617874.079] {Default Queue} -> wl_data_source#789.offer("text/plain;charset=utf-8") +[2617874.084] {Default Queue} -> wl_data_source#789.offer("TEXT") +[2617874.089] {Default Queue} -> wl_data_source#789.offer("STRING") +[2617874.094] {Default Queue} -> wl_data_source#789.offer("UTF8_STRING") +[2617874.099] {Default Queue} wl_registry#774.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617874.105] {Default Queue} -> wl_registry#774.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#790) +[2617874.111] {Default Queue} -> zwp_primary_selection_device_manager_v1#790.create_source(new id zwp_primary_selection_source_v1#791) +[2617874.120] {Default Queue} -> zwp_primary_selection_source_v1#791.offer("text/plain") +[2617874.126] {Default Queue} -> zwp_primary_selection_source_v1#791.offer("text/plain;charset=utf-8") +[2617874.131] {Default Queue} -> zwp_primary_selection_source_v1#791.offer("TEXT") +[2617874.136] {Default Queue} -> zwp_primary_selection_source_v1#791.offer("STRING") +[2617874.145] {Default Queue} -> zwp_primary_selection_source_v1#791.offer("UTF8_STRING") +[2617874.153] {Default Queue} wl_registry#774.global(19, "zwlr_data_control_manager_v1", 2) +[2617874.158] {Default Queue} wl_registry#774.global(20, "ext_data_control_manager_v1", 1) +[2617874.164] {Default Queue} wl_registry#774.global(21, "wp_presentation", 2) +[2617874.172] {Default Queue} wl_registry#774.global(22, "wp_security_context_manager_v1", 1) +[2617874.178] {Default Queue} wl_registry#774.global(23, "zwp_text_input_manager_v3", 1) +[2617874.185] {Default Queue} wl_registry#774.global(24, "zwp_input_method_manager_v2", 1) +[2617874.193] {Default Queue} wl_registry#774.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617874.200] {Default Queue} wl_registry#774.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617874.208] {Default Queue} wl_registry#774.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617874.215] {Default Queue} wl_registry#774.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617874.222] {Default Queue} wl_registry#774.global(29, "ext_workspace_manager_v1", 1) +[2617874.229] {Default Queue} wl_registry#774.global(30, "zwlr_output_manager_v1", 4) +[2617874.236] {Default Queue} wl_registry#774.global(31, "zwlr_screencopy_manager_v1", 3) +[2617874.243] {Default Queue} wl_registry#774.global(32, "wp_viewporter", 1) +[2617874.255] {Default Queue} wl_registry#774.global(33, "zxdg_exporter_v2", 1) +[2617874.262] {Default Queue} wl_registry#774.global(34, "zxdg_importer_v2", 1) +[2617874.269] {Default Queue} wl_registry#774.global(36, "xdg_activation_v1", 1) +[2617874.277] {Default Queue} wl_registry#774.global(37, "mutter_x11_interop", 1) +[2617874.284] {Default Queue} wl_registry#774.global(38, "wl_seat", 9) +[2617874.292] {Default Queue} -> wl_registry#774.bind(38, "wl_seat", 1, new id [unknown]#792) +[2617874.302] {Default Queue} wl_registry#774.global(39, "wp_cursor_shape_manager_v1", 2) +[2617874.309] {Default Queue} wl_registry#774.global(40, "wl_output", 4) +[2617874.317] {Default Queue} -> wl_registry#774.bind(40, "wl_output", 1, new id [unknown]#793) +[2617874.323] {Default Queue} wl_callback#775.done(0) +[2617874.329] {Default Queue} discarded wl_surface#743.enter(wl_output#18) +[2617874.334] {Default Queue} discarded wl_surface#743.enter(wl_output#57) +[2617874.339] {Default Queue} discarded wl_surface#743.enter(wl_output#89) +[2617874.344] {Default Queue} discarded wl_surface#743.enter(wl_output#121) +[2617874.349] {Default Queue} discarded wl_surface#743.enter(wl_output#153) +[2617874.354] {Default Queue} discarded wl_surface#743.enter(wl_output#185) +[2617874.359] {Default Queue} discarded wl_surface#743.enter(wl_output#217) +[2617874.364] {Default Queue} discarded wl_surface#743.enter(wl_output#249) +[2617874.369] {Default Queue} discarded wl_surface#743.enter(wl_output#281) +[2617874.374] {Default Queue} discarded wl_surface#743.enter(wl_output#313) +[2617874.379] {Default Queue} discarded wl_surface#743.enter(wl_output#345) +[2617874.384] {Default Queue} discarded wl_surface#743.enter(wl_output#377) +[2617874.389] {Default Queue} discarded wl_surface#743.enter(wl_output#409) +[2617874.394] {Default Queue} discarded wl_surface#743.enter(wl_output#441) +[2617874.399] {Default Queue} discarded wl_surface#743.enter(wl_output#473) +[2617874.403] {Default Queue} discarded wl_surface#743.enter(wl_output#505) +[2617874.408] {Default Queue} discarded wl_surface#743.enter(wl_output#537) +[2617874.413] {Default Queue} discarded wl_surface#743.enter(wl_output#569) +[2617874.418] {Default Queue} discarded wl_surface#743.enter(wl_output#601) +[2617874.423] {Default Queue} discarded wl_surface#743.enter(wl_output#633) +[2617874.428] {Default Queue} discarded wl_surface#743.enter(wl_output#665) +[2617874.433] {Default Queue} discarded wl_surface#743.enter(wl_output#697) +[2617874.438] {Default Queue} discarded wl_surface#743.enter(wl_output#729) +[2617874.443] {Default Queue} discarded wl_surface#743.enter(wl_output#761) +[2617874.449] {Default Queue} -> wl_compositor#684.create_surface(new id wl_surface#775) +[2617874.461] {Default Queue} -> wl_subcompositor#781.get_subsurface(new id wl_subsurface#794, wl_surface#775, wl_surface#679) +[2617874.469] {Default Queue} -> wl_subsurface#794.set_desync() +[2617874.473] {Default Queue} -> wl_subsurface#794.set_position(0, 0) +[2617874.478] {Default Queue} -> wl_subsurface#794.place_above(wl_surface#679) +[2617874.523] {Default Queue} -> wl_shm#783.create_pool(new id wl_shm_pool#795, fd 129, 16) +[2617874.530] {Default Queue} -> wl_shm#783.create_pool(new id wl_shm_pool#796, fd 130, 16) +[2617874.535] {Default Queue} -> wl_shm_pool#795.create_buffer(new id wl_buffer#797, 0, 2, 2, 8, 0) +[2617874.539] {Default Queue} -> wl_shm_pool#796.create_buffer(new id wl_buffer#798, 0, 2, 2, 8, 0) +[2617874.548] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) +[2617874.552] {Default Queue} -> wl_surface#775.commit() +[2617874.558] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) +[2617874.563] {Default Queue} -> wl_surface#775.commit() +[2617874.567] {Default Queue} -> wl_compositor#780.create_region(new id wl_region#799) +[2617874.571] {Default Queue} -> wl_compositor#780.create_region(new id wl_region#800) +[2617874.575] {Default Queue} -> wl_region#799.subtract(0, 0, 2, 2) +[2617874.580] {Default Queue} -> wl_region#799.add(0, 0, 0, 0) +[2617874.584] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2617874.589] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2617874.593] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2617874.598] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2617874.606] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) +[2617874.610] {Default Queue} -> wl_surface#775.commit() +[2617874.642] {Default Queue} -> wl_shm#785.create_pool(new id wl_shm_pool#801, fd 133, 640) +[2617874.648] {Default Queue} -> wl_shm#785.create_pool(new id wl_shm_pool#802, fd 134, 640) +[2617874.653] {Default Queue} -> wl_shm_pool#801.create_buffer(new id wl_buffer#803, 0, 10, 16, 40, 0) +[2617874.658] {Default Queue} -> wl_shm_pool#802.create_buffer(new id wl_buffer#804, 0, 10, 16, 40, 0) +[2617874.665] {Default Queue} -> wl_compositor#780.create_surface(new id wl_surface#805) +[2617874.670] {Default Queue} -> wl_surface#805.attach(wl_buffer#803, 0, 0) +[2617874.674] {Default Queue} -> wl_surface#805.commit() +[2617874.680] {Default Queue} -> wl_surface#805.attach(wl_buffer#803, 0, 0) +[2617874.684] {Default Queue} -> wl_surface#805.commit() +[2617874.691] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2617874.697] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2617874.702] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2617874.709] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#806) +[2617874.714] {Default Queue} -> wl_display#1.sync(new id wl_callback#807) +[2617884.179] {Display Queue} wl_display#1.delete_id(807) +[2617884.199] {Default Queue} wl_keyboard#776.keymap(1, fd 129, 68213) +[2617884.207] {Default Queue} wl_keyboard#776.enter(566, wl_surface#19, array[0]) +[2617884.215] {Default Queue} wl_keyboard#776.modifiers(566, 0, 0, 16, 0) +[2617884.221] {Default Queue} discarded wl_shm#783.format(875709016) +[2617884.226] {Default Queue} discarded wl_shm#783.format(1) +[2617884.231] {Default Queue} discarded wl_shm#783.format(0) +[2617884.236] {Default Queue} discarded wl_shm#783.format(875708993) +[2617884.241] {Default Queue} discarded wl_shm#784.format(875709016) +[2617884.247] {Default Queue} discarded wl_shm#784.format(1) +[2617884.252] {Default Queue} discarded wl_shm#784.format(0) +[2617884.258] {Default Queue} discarded wl_shm#784.format(875708993) +[2617884.264] {Default Queue} discarded wl_shm#785.format(875709016) +[2617884.269] {Default Queue} discarded wl_shm#785.format(1) +[2617884.275] {Default Queue} discarded wl_shm#785.format(0) +[2617884.280] {Default Queue} discarded wl_shm#785.format(875708993) +[2617884.285] {Default Queue} wl_seat#792.capabilities(7) +[2617884.292] {Default Queue} -> wl_seat#792.get_keyboard(new id wl_keyboard#808) +[2617884.304] {Default Queue} -> wl_seat#792.get_pointer(new id wl_pointer#809) +[2617884.316] {Default Queue} -> wl_data_device_manager#788.get_data_device(new id wl_data_device#810, wl_seat#792) +[2617884.323] {Default Queue} -> zwp_primary_selection_device_manager_v1#790.get_device(new id zwp_primary_selection_device_v1#811, wl_seat#792) +[2617884.334] {Default Queue} wl_output#793.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617884.342] {Default Queue} wl_output#793.mode(3, 1280, 800, 60000) +[2617884.348] {Default Queue} discarded wl_surface#3.enter(wl_output#793) +[2617884.354] {Default Queue} discarded wl_surface#423.enter(wl_output#793) +[2617884.360] {Default Queue} discarded wl_surface#455.enter(wl_output#793) +[2617884.366] {Default Queue} discarded wl_surface#135.enter(wl_output#793) +[2617884.371] {Default Queue} discarded wl_surface#615.enter(wl_output#793) +[2617884.377] {Default Queue} discarded wl_surface#231.enter(wl_output#793) +[2617884.383] {Default Queue} discarded wl_surface#359.enter(wl_output#793) +[2617884.389] {Default Queue} discarded wl_surface#583.enter(wl_output#793) +[2617884.394] {Default Queue} discarded wl_surface#743.enter(wl_output#793) +[2617884.400] {Default Queue} discarded wl_surface#103.enter(wl_output#793) +[2617884.406] {Default Queue} discarded wl_surface#327.enter(wl_output#793) +[2617884.411] {Default Queue} discarded wl_surface#43.enter(wl_output#793) +[2617884.416] {Default Queue} discarded wl_surface#19.enter(wl_output#793) +[2617884.422] {Default Queue} discarded wl_surface#199.enter(wl_output#793) +[2617884.428] {Default Queue} discarded wl_surface#391.enter(wl_output#793) +[2617884.433] {Default Queue} discarded wl_surface#711.enter(wl_output#793) +[2617884.438] {Default Queue} discarded wl_surface#263.enter(wl_output#793) +[2617884.442] {Default Queue} discarded wl_surface#551.enter(wl_output#793) +[2617884.446] {Default Queue} discarded wl_surface#647.enter(wl_output#793) +[2617884.450] {Default Queue} discarded wl_surface#71.enter(wl_output#793) +[2617884.454] {Default Queue} discarded wl_surface#487.enter(wl_output#793) +[2617884.460] {Default Queue} discarded wl_surface#519.enter(wl_output#793) +[2617884.465] {Default Queue} discarded wl_surface#295.enter(wl_output#793) +[2617884.470] {Default Queue} discarded wl_surface#167.enter(wl_output#793) +[2617884.475] {Default Queue} discarded wl_surface#679.enter(wl_output#793) +[2617884.479] {Default Queue} wl_registry#806.global(1, "wl_compositor", 6) +[2617884.487] {Default Queue} -> wl_registry#806.bind(1, "wl_compositor", 1, new id [unknown]#812) +[2617884.494] {Default Queue} wl_registry#806.global(2, "wl_subcompositor", 1) +[2617884.499] {Default Queue} -> wl_registry#806.bind(2, "wl_subcompositor", 1, new id [unknown]#813) +[2617884.504] {Default Queue} wl_registry#806.global(3, "xdg_wm_base", 6) +[2617884.509] {Default Queue} -> wl_registry#806.bind(3, "xdg_wm_base", 1, new id [unknown]#814) +[2617884.513] {Default Queue} wl_registry#806.global(6, "zwlr_layer_shell_v1", 5) +[2617884.518] {Default Queue} wl_registry#806.global(7, "ext_session_lock_manager_v1", 1) +[2617884.522] {Default Queue} wl_registry#806.global(8, "wl_shm", 2) +[2617884.527] {Default Queue} -> wl_registry#806.bind(8, "wl_shm", 1, new id [unknown]#815) +[2617884.532] {Default Queue} -> wl_registry#806.bind(8, "wl_shm", 1, new id [unknown]#816) +[2617884.536] {Default Queue} -> wl_registry#806.bind(8, "wl_shm", 1, new id [unknown]#817) +[2617884.541] {Default Queue} wl_registry#806.global(9, "zxdg_output_manager_v1", 3) +[2617884.546] {Default Queue} wl_registry#806.global(10, "wp_fractional_scale_manager_v1", 1) +[2617884.550] {Default Queue} wl_registry#806.global(11, "zwp_tablet_manager_v2", 1) +[2617884.554] {Default Queue} wl_registry#806.global(12, "zwp_pointer_gestures_v1", 3) +[2617884.558] {Default Queue} wl_registry#806.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617884.563] {Default Queue} -> wl_registry#806.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#818) +[2617884.568] {Default Queue} wl_registry#806.global(14, "zwp_pointer_constraints_v1", 1) +[2617884.577] {Default Queue} -> wl_registry#806.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#819) +[2617884.584] {Default Queue} wl_registry#806.global(15, "ext_idle_notifier_v1", 2) +[2617884.588] {Default Queue} wl_registry#806.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617884.593] {Default Queue} wl_registry#806.global(17, "wl_data_device_manager", 3) +[2617884.598] {Default Queue} -> wl_registry#806.bind(17, "wl_data_device_manager", 2, new id [unknown]#820) +[2617884.602] {Default Queue} -> wl_data_device_manager#820.create_data_source(new id wl_data_source#821) +[2617884.607] {Default Queue} -> wl_data_source#821.offer("text/plain") +[2617884.611] {Default Queue} -> wl_data_source#821.offer("text/plain;charset=utf-8") +[2617884.615] {Default Queue} -> wl_data_source#821.offer("TEXT") +[2617884.619] {Default Queue} -> wl_data_source#821.offer("STRING") +[2617884.623] {Default Queue} -> wl_data_source#821.offer("UTF8_STRING") +[2617884.627] {Default Queue} wl_registry#806.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617884.632] {Default Queue} -> wl_registry#806.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#822) +[2617884.637] {Default Queue} -> zwp_primary_selection_device_manager_v1#822.create_source(new id zwp_primary_selection_source_v1#823) +[2617884.645] {Default Queue} -> zwp_primary_selection_source_v1#823.offer("text/plain") +[2617884.649] {Default Queue} -> zwp_primary_selection_source_v1#823.offer("text/plain;charset=utf-8") +[2617884.653] {Default Queue} -> zwp_primary_selection_source_v1#823.offer("TEXT") +[2617884.658] {Default Queue} -> zwp_primary_selection_source_v1#823.offer("STRING") +[2617884.662] {Default Queue} -> zwp_primary_selection_source_v1#823.offer("UTF8_STRING") +[2617884.666] {Default Queue} wl_registry#806.global(19, "zwlr_data_control_manager_v1", 2) +[2617884.670] {Default Queue} wl_registry#806.global(20, "ext_data_control_manager_v1", 1) +[2617884.675] {Default Queue} wl_registry#806.global(21, "wp_presentation", 2) +[2617884.679] {Default Queue} wl_registry#806.global(22, "wp_security_context_manager_v1", 1) +[2617884.684] {Default Queue} wl_registry#806.global(23, "zwp_text_input_manager_v3", 1) +[2617884.688] {Default Queue} wl_registry#806.global(24, "zwp_input_method_manager_v2", 1) +[2617884.692] {Default Queue} wl_registry#806.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617884.697] {Default Queue} wl_registry#806.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617884.701] {Default Queue} wl_registry#806.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617884.705] {Default Queue} wl_registry#806.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617884.710] {Default Queue} wl_registry#806.global(29, "ext_workspace_manager_v1", 1) +[2617884.715] {Default Queue} wl_registry#806.global(30, "zwlr_output_manager_v1", 4) +[2617884.719] {Default Queue} wl_registry#806.global(31, "zwlr_screencopy_manager_v1", 3) +[2617884.724] {Default Queue} wl_registry#806.global(32, "wp_viewporter", 1) +[2617884.728] {Default Queue} wl_registry#806.global(33, "zxdg_exporter_v2", 1) +[2617884.732] {Default Queue} wl_registry#806.global(34, "zxdg_importer_v2", 1) +[2617884.737] {Default Queue} wl_registry#806.global(36, "xdg_activation_v1", 1) +[2617884.741] {Default Queue} wl_registry#806.global(37, "mutter_x11_interop", 1) +[2617884.746] {Default Queue} wl_registry#806.global(38, "wl_seat", 9) +[2617884.750] {Default Queue} -> wl_registry#806.bind(38, "wl_seat", 1, new id [unknown]#824) +[2617884.755] {Default Queue} wl_registry#806.global(39, "wp_cursor_shape_manager_v1", 2) +[2617884.759] {Default Queue} wl_registry#806.global(40, "wl_output", 4) +[2617884.764] {Default Queue} -> wl_registry#806.bind(40, "wl_output", 1, new id [unknown]#825) +[2617884.769] {Default Queue} wl_callback#807.done(0) +[2617884.773] {Default Queue} discarded wl_surface#775.enter(wl_output#18) +[2617884.777] {Default Queue} discarded wl_surface#775.enter(wl_output#57) +[2617884.781] {Default Queue} discarded wl_surface#775.enter(wl_output#89) +[2617884.788] {Default Queue} discarded wl_surface#775.enter(wl_output#121) +[2617884.794] {Default Queue} discarded wl_surface#775.enter(wl_output#153) +[2617884.798] {Default Queue} discarded wl_surface#775.enter(wl_output#185) +[2617884.801] {Default Queue} discarded wl_surface#775.enter(wl_output#217) +[2617884.806] {Default Queue} discarded wl_surface#775.enter(wl_output#249) +[2617884.810] {Default Queue} discarded wl_surface#775.enter(wl_output#281) +[2617884.814] {Default Queue} discarded wl_surface#775.enter(wl_output#313) +[2617884.817] {Default Queue} discarded wl_surface#775.enter(wl_output#345) +[2617884.821] {Default Queue} discarded wl_surface#775.enter(wl_output#377) +[2617884.825] {Default Queue} discarded wl_surface#775.enter(wl_output#409) +[2617884.829] {Default Queue} discarded wl_surface#775.enter(wl_output#441) +[2617884.833] {Default Queue} discarded wl_surface#775.enter(wl_output#473) +[2617884.837] {Default Queue} discarded wl_surface#775.enter(wl_output#505) +[2617884.841] {Default Queue} discarded wl_surface#775.enter(wl_output#537) +[2617884.845] {Default Queue} discarded wl_surface#775.enter(wl_output#569) +[2617884.849] {Default Queue} discarded wl_surface#775.enter(wl_output#601) +[2617884.853] {Default Queue} discarded wl_surface#775.enter(wl_output#633) +[2617884.857] {Default Queue} discarded wl_surface#775.enter(wl_output#665) +[2617884.868] {Default Queue} discarded wl_surface#775.enter(wl_output#697) +[2617884.872] {Default Queue} discarded wl_surface#775.enter(wl_output#729) +[2617884.876] {Default Queue} discarded wl_surface#775.enter(wl_output#761) +[2617884.880] {Default Queue} discarded wl_surface#775.enter(wl_output#793) +[2617884.885] {Default Queue} -> wl_compositor#684.create_surface(new id wl_surface#807) +[2617884.889] {Default Queue} -> wl_subcompositor#813.get_subsurface(new id wl_subsurface#826, wl_surface#807, wl_surface#679) +[2617884.894] {Default Queue} -> wl_subsurface#826.set_desync() +[2617884.898] {Default Queue} -> wl_subsurface#826.set_position(0, 0) +[2617884.903] {Default Queue} -> wl_subsurface#826.place_above(wl_surface#679) +[2617884.960] {Default Queue} -> wl_shm#815.create_pool(new id wl_shm_pool#827, fd 134, 16) +[2617884.967] {Default Queue} -> wl_shm#815.create_pool(new id wl_shm_pool#828, fd 135, 16) +[2617884.971] {Default Queue} -> wl_shm_pool#827.create_buffer(new id wl_buffer#829, 0, 2, 2, 8, 0) +[2617884.976] {Default Queue} -> wl_shm_pool#828.create_buffer(new id wl_buffer#830, 0, 2, 2, 8, 0) +[2617884.986] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) +[2617884.991] {Default Queue} -> wl_surface#807.commit() +[2617884.996] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) +[2617885.001] {Default Queue} -> wl_surface#807.commit() +[2617885.005] {Default Queue} -> wl_compositor#812.create_region(new id wl_region#831) +[2617885.009] {Default Queue} -> wl_compositor#812.create_region(new id wl_region#832) +[2617885.013] {Default Queue} -> wl_region#831.subtract(0, 0, 2, 2) +[2617885.018] {Default Queue} -> wl_region#831.add(0, 0, 0, 0) +[2617885.022] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2617885.027] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2617885.031] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2617885.035] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2617885.051] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) +[2617885.056] {Default Queue} -> wl_surface#807.commit() +[2617885.091] {Default Queue} -> wl_shm#817.create_pool(new id wl_shm_pool#833, fd 138, 640) +[2617885.098] {Default Queue} -> wl_shm#817.create_pool(new id wl_shm_pool#834, fd 139, 640) +[2617885.103] {Default Queue} -> wl_shm_pool#833.create_buffer(new id wl_buffer#835, 0, 10, 16, 40, 0) +[2617885.108] {Default Queue} -> wl_shm_pool#834.create_buffer(new id wl_buffer#836, 0, 10, 16, 40, 0) +[2617885.115] {Default Queue} -> wl_compositor#812.create_surface(new id wl_surface#837) +[2617885.119] {Default Queue} -> wl_surface#837.attach(wl_buffer#835, 0, 0) +[2617885.124] {Default Queue} -> wl_surface#837.commit() +[2617885.133] {Default Queue} -> wl_surface#837.attach(wl_buffer#835, 0, 0) +[2617885.140] {Default Queue} -> wl_surface#837.commit() +[2617885.147] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2617885.153] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2617885.158] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2617885.165] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#838) +[2617885.170] {Default Queue} -> wl_display#1.sync(new id wl_callback#839) +[2617893.646] {Display Queue} wl_display#1.delete_id(839) +[2617893.665] {Default Queue} wl_keyboard#808.keymap(1, fd 134, 68213) +[2617893.675] {Default Queue} wl_keyboard#808.enter(566, wl_surface#19, array[0]) +[2617893.684] {Default Queue} wl_keyboard#808.modifiers(566, 0, 0, 16, 0) +[2617893.692] {Default Queue} discarded wl_shm#815.format(875709016) +[2617893.699] {Default Queue} discarded wl_shm#815.format(1) +[2617893.707] {Default Queue} discarded wl_shm#815.format(0) +[2617893.713] {Default Queue} discarded wl_shm#815.format(875708993) +[2617893.721] {Default Queue} discarded wl_shm#816.format(875709016) +[2617893.731] {Default Queue} discarded wl_shm#816.format(1) +[2617893.738] {Default Queue} discarded wl_shm#816.format(0) +[2617893.746] {Default Queue} discarded wl_shm#816.format(875708993) +[2617893.753] {Default Queue} discarded wl_shm#817.format(875709016) +[2617893.760] {Default Queue} discarded wl_shm#817.format(1) +[2617893.766] {Default Queue} discarded wl_shm#817.format(0) +[2617893.773] {Default Queue} discarded wl_shm#817.format(875708993) +[2617893.780] {Default Queue} wl_seat#824.capabilities(7) +[2617893.787] {Default Queue} -> wl_seat#824.get_keyboard(new id wl_keyboard#840) +[2617893.795] {Default Queue} -> wl_seat#824.get_pointer(new id wl_pointer#841) +[2617893.803] {Default Queue} -> wl_data_device_manager#820.get_data_device(new id wl_data_device#842, wl_seat#824) +[2617893.811] {Default Queue} -> zwp_primary_selection_device_manager_v1#822.get_device(new id zwp_primary_selection_device_v1#843, wl_seat#824) +[2617893.824] {Default Queue} wl_output#825.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617893.832] {Default Queue} wl_output#825.mode(3, 1280, 800, 60000) +[2617893.840] {Default Queue} discarded wl_surface#3.enter(wl_output#825) +[2617893.847] {Default Queue} discarded wl_surface#423.enter(wl_output#825) +[2617893.855] {Default Queue} discarded wl_surface#455.enter(wl_output#825) +[2617893.873] {Default Queue} discarded wl_surface#775.enter(wl_output#825) +[2617893.880] {Default Queue} discarded wl_surface#135.enter(wl_output#825) +[2617893.887] {Default Queue} discarded wl_surface#615.enter(wl_output#825) +[2617893.895] {Default Queue} discarded wl_surface#231.enter(wl_output#825) +[2617893.902] {Default Queue} discarded wl_surface#359.enter(wl_output#825) +[2617893.909] {Default Queue} discarded wl_surface#583.enter(wl_output#825) +[2617893.917] {Default Queue} discarded wl_surface#743.enter(wl_output#825) +[2617893.924] {Default Queue} discarded wl_surface#103.enter(wl_output#825) +[2617893.931] {Default Queue} discarded wl_surface#327.enter(wl_output#825) +[2617893.938] {Default Queue} discarded wl_surface#43.enter(wl_output#825) +[2617893.946] {Default Queue} discarded wl_surface#19.enter(wl_output#825) +[2617893.952] {Default Queue} discarded wl_surface#199.enter(wl_output#825) +[2617893.958] {Default Queue} discarded wl_surface#391.enter(wl_output#825) +[2617893.965] {Default Queue} discarded wl_surface#711.enter(wl_output#825) +[2617893.972] {Default Queue} discarded wl_surface#263.enter(wl_output#825) +[2617893.979] {Default Queue} discarded wl_surface#551.enter(wl_output#825) +[2617893.985] {Default Queue} discarded wl_surface#647.enter(wl_output#825) +[2617893.992] {Default Queue} discarded wl_surface#71.enter(wl_output#825) +[2617893.998] {Default Queue} discarded wl_surface#487.enter(wl_output#825) +[2617894.005] {Default Queue} discarded wl_surface#519.enter(wl_output#825) +[2617894.011] {Default Queue} discarded wl_surface#295.enter(wl_output#825) +[2617894.017] {Default Queue} discarded wl_surface#167.enter(wl_output#825) +[2617894.039] {Default Queue} discarded wl_surface#679.enter(wl_output#825) +[2617894.049] {Default Queue} wl_registry#838.global(1, "wl_compositor", 6) +[2617894.057] {Default Queue} -> wl_registry#838.bind(1, "wl_compositor", 1, new id [unknown]#844) +[2617894.063] {Default Queue} wl_registry#838.global(2, "wl_subcompositor", 1) +[2617894.069] {Default Queue} -> wl_registry#838.bind(2, "wl_subcompositor", 1, new id [unknown]#845) +[2617894.075] {Default Queue} wl_registry#838.global(3, "xdg_wm_base", 6) +[2617894.081] {Default Queue} -> wl_registry#838.bind(3, "xdg_wm_base", 1, new id [unknown]#846) +[2617894.086] {Default Queue} wl_registry#838.global(6, "zwlr_layer_shell_v1", 5) +[2617894.092] {Default Queue} wl_registry#838.global(7, "ext_session_lock_manager_v1", 1) +[2617894.098] {Default Queue} wl_registry#838.global(8, "wl_shm", 2) +[2617894.104] {Default Queue} -> wl_registry#838.bind(8, "wl_shm", 1, new id [unknown]#847) +[2617894.110] {Default Queue} -> wl_registry#838.bind(8, "wl_shm", 1, new id [unknown]#848) +[2617894.115] {Default Queue} -> wl_registry#838.bind(8, "wl_shm", 1, new id [unknown]#849) +[2617894.121] {Default Queue} wl_registry#838.global(9, "zxdg_output_manager_v1", 3) +[2617894.126] {Default Queue} wl_registry#838.global(10, "wp_fractional_scale_manager_v1", 1) +[2617894.132] {Default Queue} wl_registry#838.global(11, "zwp_tablet_manager_v2", 1) +[2617894.138] {Default Queue} wl_registry#838.global(12, "zwp_pointer_gestures_v1", 3) +[2617894.143] {Default Queue} wl_registry#838.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617894.149] {Default Queue} -> wl_registry#838.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#850) +[2617894.154] {Default Queue} wl_registry#838.global(14, "zwp_pointer_constraints_v1", 1) +[2617894.160] {Default Queue} -> wl_registry#838.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#851) +[2617894.165] {Default Queue} wl_registry#838.global(15, "ext_idle_notifier_v1", 2) +[2617894.171] {Default Queue} wl_registry#838.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617894.176] {Default Queue} wl_registry#838.global(17, "wl_data_device_manager", 3) +[2617894.182] {Default Queue} -> wl_registry#838.bind(17, "wl_data_device_manager", 2, new id [unknown]#852) +[2617894.188] {Default Queue} -> wl_data_device_manager#852.create_data_source(new id wl_data_source#853) +[2617894.194] {Default Queue} -> wl_data_source#853.offer("text/plain") +[2617894.199] {Default Queue} -> wl_data_source#853.offer("text/plain;charset=utf-8") +[2617894.205] {Default Queue} -> wl_data_source#853.offer("TEXT") +[2617894.210] {Default Queue} -> wl_data_source#853.offer("STRING") +[2617894.215] {Default Queue} -> wl_data_source#853.offer("UTF8_STRING") +[2617894.221] {Default Queue} wl_registry#838.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617894.227] {Default Queue} -> wl_registry#838.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#854) +[2617894.233] {Default Queue} -> zwp_primary_selection_device_manager_v1#854.create_source(new id zwp_primary_selection_source_v1#855) +[2617894.242] {Default Queue} -> zwp_primary_selection_source_v1#855.offer("text/plain") +[2617894.247] {Default Queue} -> zwp_primary_selection_source_v1#855.offer("text/plain;charset=utf-8") +[2617894.253] {Default Queue} -> zwp_primary_selection_source_v1#855.offer("TEXT") +[2617894.258] {Default Queue} -> zwp_primary_selection_source_v1#855.offer("STRING") +[2617894.263] {Default Queue} -> zwp_primary_selection_source_v1#855.offer("UTF8_STRING") +[2617894.268] {Default Queue} wl_registry#838.global(19, "zwlr_data_control_manager_v1", 2) +[2617894.274] {Default Queue} wl_registry#838.global(20, "ext_data_control_manager_v1", 1) +[2617894.279] {Default Queue} wl_registry#838.global(21, "wp_presentation", 2) +[2617894.285] {Default Queue} wl_registry#838.global(22, "wp_security_context_manager_v1", 1) +[2617894.290] {Default Queue} wl_registry#838.global(23, "zwp_text_input_manager_v3", 1) +[2617894.295] {Default Queue} wl_registry#838.global(24, "zwp_input_method_manager_v2", 1) +[2617894.305] {Default Queue} wl_registry#838.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617894.313] {Default Queue} wl_registry#838.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617894.318] {Default Queue} wl_registry#838.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617894.323] {Default Queue} wl_registry#838.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617894.329] {Default Queue} wl_registry#838.global(29, "ext_workspace_manager_v1", 1) +[2617894.334] {Default Queue} wl_registry#838.global(30, "zwlr_output_manager_v1", 4) +[2617894.339] {Default Queue} wl_registry#838.global(31, "zwlr_screencopy_manager_v1", 3) +[2617894.345] {Default Queue} wl_registry#838.global(32, "wp_viewporter", 1) +[2617894.350] {Default Queue} wl_registry#838.global(33, "zxdg_exporter_v2", 1) +[2617894.356] {Default Queue} wl_registry#838.global(34, "zxdg_importer_v2", 1) +[2617894.361] {Default Queue} wl_registry#838.global(36, "xdg_activation_v1", 1) +[2617894.366] {Default Queue} wl_registry#838.global(37, "mutter_x11_interop", 1) +[2617894.372] {Default Queue} wl_registry#838.global(38, "wl_seat", 9) +[2617894.377] {Default Queue} -> wl_registry#838.bind(38, "wl_seat", 1, new id [unknown]#856) +[2617894.383] {Default Queue} wl_registry#838.global(39, "wp_cursor_shape_manager_v1", 2) +[2617894.388] {Default Queue} wl_registry#838.global(40, "wl_output", 4) +[2617894.393] {Default Queue} -> wl_registry#838.bind(40, "wl_output", 1, new id [unknown]#857) +[2617894.399] {Default Queue} wl_callback#839.done(0) +[2617894.404] {Default Queue} discarded wl_surface#807.enter(wl_output#18) +[2617894.410] {Default Queue} discarded wl_surface#807.enter(wl_output#57) +[2617894.415] {Default Queue} discarded wl_surface#807.enter(wl_output#89) +[2617894.419] {Default Queue} discarded wl_surface#807.enter(wl_output#121) +[2617894.424] {Default Queue} discarded wl_surface#807.enter(wl_output#153) +[2617894.429] {Default Queue} discarded wl_surface#807.enter(wl_output#185) +[2617894.434] {Default Queue} discarded wl_surface#807.enter(wl_output#217) +[2617894.439] {Default Queue} discarded wl_surface#807.enter(wl_output#249) +[2617894.444] {Default Queue} discarded wl_surface#807.enter(wl_output#281) +[2617894.449] {Default Queue} discarded wl_surface#807.enter(wl_output#313) +[2617894.454] {Default Queue} discarded wl_surface#807.enter(wl_output#345) +[2617894.459] {Default Queue} discarded wl_surface#807.enter(wl_output#377) +[2617894.464] {Default Queue} discarded wl_surface#807.enter(wl_output#409) +[2617894.469] {Default Queue} discarded wl_surface#807.enter(wl_output#441) +[2617894.473] {Default Queue} discarded wl_surface#807.enter(wl_output#473) +[2617894.478] {Default Queue} discarded wl_surface#807.enter(wl_output#505) +[2617894.483] {Default Queue} discarded wl_surface#807.enter(wl_output#537) +[2617894.488] {Default Queue} discarded wl_surface#807.enter(wl_output#569) +[2617894.493] {Default Queue} discarded wl_surface#807.enter(wl_output#601) +[2617894.497] {Default Queue} discarded wl_surface#807.enter(wl_output#633) +[2617894.500] {Default Queue} discarded wl_surface#807.enter(wl_output#665) +[2617894.504] {Default Queue} discarded wl_surface#807.enter(wl_output#697) +[2617894.508] {Default Queue} discarded wl_surface#807.enter(wl_output#729) +[2617894.512] {Default Queue} discarded wl_surface#807.enter(wl_output#761) +[2617894.516] {Default Queue} discarded wl_surface#807.enter(wl_output#793) +[2617894.520] {Default Queue} discarded wl_surface#807.enter(wl_output#825) +[2617894.524] {Default Queue} -> wl_compositor#684.create_surface(new id wl_surface#839) +[2617894.529] {Default Queue} -> wl_subcompositor#845.get_subsurface(new id wl_subsurface#858, wl_surface#839, wl_surface#679) +[2617894.534] {Default Queue} -> wl_subsurface#858.set_desync() +[2617894.538] {Default Queue} -> wl_subsurface#858.set_position(0, 0) +[2617894.543] {Default Queue} -> wl_subsurface#858.place_above(wl_surface#679) +[2617894.590] {Default Queue} -> wl_shm#847.create_pool(new id wl_shm_pool#859, fd 139, 16) +[2617894.601] {Default Queue} -> wl_shm#847.create_pool(new id wl_shm_pool#860, fd 140, 16) +[2617894.607] {Default Queue} -> wl_shm_pool#859.create_buffer(new id wl_buffer#861, 0, 2, 2, 8, 0) +[2617894.613] {Default Queue} -> wl_shm_pool#860.create_buffer(new id wl_buffer#862, 0, 2, 2, 8, 0) +[2617894.621] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) +[2617894.626] {Default Queue} -> wl_surface#839.commit() +[2617894.631] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) +[2617894.636] {Default Queue} -> wl_surface#839.commit() +[2617894.640] {Default Queue} -> wl_compositor#844.create_region(new id wl_region#863) +[2617894.644] {Default Queue} -> wl_compositor#844.create_region(new id wl_region#864) +[2617894.650] {Default Queue} -> wl_region#863.subtract(0, 0, 2, 2) +[2617894.655] {Default Queue} -> wl_region#863.add(0, 0, 0, 0) +[2617894.659] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2617894.664] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2617894.668] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2617894.673] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2617894.681] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) +[2617894.686] {Default Queue} -> wl_surface#839.commit() +[2617894.723] {Default Queue} -> wl_shm#849.create_pool(new id wl_shm_pool#865, fd 143, 640) +[2617894.729] {Default Queue} -> wl_shm#849.create_pool(new id wl_shm_pool#866, fd 144, 640) +[2617894.736] {Default Queue} -> wl_shm_pool#865.create_buffer(new id wl_buffer#867, 0, 10, 16, 40, 0) +[2617894.741] {Default Queue} -> wl_shm_pool#866.create_buffer(new id wl_buffer#868, 0, 10, 16, 40, 0) +[2617894.748] {Default Queue} -> wl_compositor#844.create_surface(new id wl_surface#869) +[2617894.753] {Default Queue} -> wl_surface#869.attach(wl_buffer#867, 0, 0) +[2617894.757] {Default Queue} -> wl_surface#869.commit() +[2617894.762] {Default Queue} -> wl_surface#869.attach(wl_buffer#867, 0, 0) +[2617894.767] {Default Queue} -> wl_surface#869.commit() +[2617894.773] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2617894.779] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2617894.783] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2617894.792] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#870) +[2617894.798] {Default Queue} -> wl_display#1.sync(new id wl_callback#871) +[2617904.398] {Display Queue} wl_display#1.delete_id(871) +[2617904.413] {Default Queue} wl_keyboard#840.keymap(1, fd 139, 68213) +[2617904.420] {Default Queue} wl_keyboard#840.enter(566, wl_surface#19, array[0]) +[2617904.428] {Default Queue} wl_keyboard#840.modifiers(566, 0, 0, 16, 0) +[2617904.434] {Default Queue} discarded wl_shm#847.format(875709016) +[2617904.439] {Default Queue} discarded wl_shm#847.format(1) +[2617904.445] {Default Queue} discarded wl_shm#847.format(0) +[2617904.451] {Default Queue} discarded wl_shm#847.format(875708993) +[2617904.456] {Default Queue} discarded wl_shm#848.format(875709016) +[2617904.462] {Default Queue} discarded wl_shm#848.format(1) +[2617904.468] {Default Queue} discarded wl_shm#848.format(0) +[2617904.473] {Default Queue} discarded wl_shm#848.format(875708993) +[2617904.479] {Default Queue} discarded wl_shm#849.format(875709016) +[2617904.485] {Default Queue} discarded wl_shm#849.format(1) +[2617904.490] {Default Queue} discarded wl_shm#849.format(0) +[2617904.496] {Default Queue} discarded wl_shm#849.format(875708993) +[2617904.501] {Default Queue} wl_seat#856.capabilities(7) +[2617904.507] {Default Queue} -> wl_seat#856.get_keyboard(new id wl_keyboard#872) +[2617904.513] {Default Queue} -> wl_seat#856.get_pointer(new id wl_pointer#873) +[2617904.520] {Default Queue} -> wl_data_device_manager#852.get_data_device(new id wl_data_device#874, wl_seat#856) +[2617904.528] {Default Queue} -> zwp_primary_selection_device_manager_v1#854.get_device(new id zwp_primary_selection_device_v1#875, wl_seat#856) +[2617904.543] {Default Queue} wl_output#857.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617904.552] {Default Queue} wl_output#857.mode(3, 1280, 800, 60000) +[2617904.570] {Default Queue} discarded wl_surface#3.enter(wl_output#857) +[2617904.582] {Default Queue} discarded wl_surface#423.enter(wl_output#857) +[2617904.589] {Default Queue} discarded wl_surface#455.enter(wl_output#857) +[2617904.596] {Default Queue} discarded wl_surface#775.enter(wl_output#857) +[2617904.603] {Default Queue} discarded wl_surface#135.enter(wl_output#857) +[2617904.610] {Default Queue} discarded wl_surface#615.enter(wl_output#857) +[2617904.618] {Default Queue} discarded wl_surface#231.enter(wl_output#857) +[2617904.625] {Default Queue} discarded wl_surface#359.enter(wl_output#857) +[2617904.632] {Default Queue} discarded wl_surface#583.enter(wl_output#857) +[2617904.639] {Default Queue} discarded wl_surface#743.enter(wl_output#857) +[2617904.646] {Default Queue} discarded wl_surface#103.enter(wl_output#857) +[2617904.653] {Default Queue} discarded wl_surface#327.enter(wl_output#857) +[2617904.658] {Default Queue} discarded wl_surface#43.enter(wl_output#857) +[2617904.662] {Default Queue} discarded wl_surface#807.enter(wl_output#857) +[2617904.667] {Default Queue} discarded wl_surface#19.enter(wl_output#857) +[2617904.673] {Default Queue} discarded wl_surface#199.enter(wl_output#857) +[2617904.680] {Default Queue} discarded wl_surface#391.enter(wl_output#857) +[2617904.686] {Default Queue} discarded wl_surface#711.enter(wl_output#857) +[2617904.693] {Default Queue} discarded wl_surface#263.enter(wl_output#857) +[2617904.699] {Default Queue} discarded wl_surface#551.enter(wl_output#857) +[2617904.706] {Default Queue} discarded wl_surface#647.enter(wl_output#857) +[2617904.712] {Default Queue} discarded wl_surface#71.enter(wl_output#857) +[2617904.718] {Default Queue} discarded wl_surface#487.enter(wl_output#857) +[2617904.723] {Default Queue} discarded wl_surface#519.enter(wl_output#857) +[2617904.728] {Default Queue} discarded wl_surface#295.enter(wl_output#857) +[2617904.733] {Default Queue} discarded wl_surface#167.enter(wl_output#857) +[2617904.737] {Default Queue} discarded wl_surface#679.enter(wl_output#857) +[2617904.742] {Default Queue} wl_registry#870.global(1, "wl_compositor", 6) +[2617904.749] {Default Queue} -> wl_registry#870.bind(1, "wl_compositor", 1, new id [unknown]#876) +[2617904.755] {Default Queue} wl_registry#870.global(2, "wl_subcompositor", 1) +[2617904.761] {Default Queue} -> wl_registry#870.bind(2, "wl_subcompositor", 1, new id [unknown]#877) +[2617904.767] {Default Queue} wl_registry#870.global(3, "xdg_wm_base", 6) +[2617904.773] {Default Queue} -> wl_registry#870.bind(3, "xdg_wm_base", 1, new id [unknown]#878) +[2617904.779] {Default Queue} wl_registry#870.global(6, "zwlr_layer_shell_v1", 5) +[2617904.784] {Default Queue} wl_registry#870.global(7, "ext_session_lock_manager_v1", 1) +[2617904.790] {Default Queue} wl_registry#870.global(8, "wl_shm", 2) +[2617904.796] {Default Queue} -> wl_registry#870.bind(8, "wl_shm", 1, new id [unknown]#879) +[2617904.801] {Default Queue} -> wl_registry#870.bind(8, "wl_shm", 1, new id [unknown]#880) +[2617904.806] {Default Queue} -> wl_registry#870.bind(8, "wl_shm", 1, new id [unknown]#881) +[2617904.812] {Default Queue} wl_registry#870.global(9, "zxdg_output_manager_v1", 3) +[2617904.817] {Default Queue} wl_registry#870.global(10, "wp_fractional_scale_manager_v1", 1) +[2617904.822] {Default Queue} wl_registry#870.global(11, "zwp_tablet_manager_v2", 1) +[2617904.828] {Default Queue} wl_registry#870.global(12, "zwp_pointer_gestures_v1", 3) +[2617904.833] {Default Queue} wl_registry#870.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617904.839] {Default Queue} -> wl_registry#870.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#882) +[2617904.844] {Default Queue} wl_registry#870.global(14, "zwp_pointer_constraints_v1", 1) +[2617904.850] {Default Queue} -> wl_registry#870.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#883) +[2617904.856] {Default Queue} wl_registry#870.global(15, "ext_idle_notifier_v1", 2) +[2617904.871] {Default Queue} wl_registry#870.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617904.876] {Default Queue} wl_registry#870.global(17, "wl_data_device_manager", 3) +[2617904.888] {Default Queue} -> wl_registry#870.bind(17, "wl_data_device_manager", 2, new id [unknown]#884) +[2617904.896] {Default Queue} -> wl_data_device_manager#884.create_data_source(new id wl_data_source#885) +[2617904.902] {Default Queue} -> wl_data_source#885.offer("text/plain") +[2617904.907] {Default Queue} -> wl_data_source#885.offer("text/plain;charset=utf-8") +[2617904.913] {Default Queue} -> wl_data_source#885.offer("TEXT") +[2617904.918] {Default Queue} -> wl_data_source#885.offer("STRING") +[2617904.923] {Default Queue} -> wl_data_source#885.offer("UTF8_STRING") +[2617904.928] {Default Queue} wl_registry#870.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617904.934] {Default Queue} -> wl_registry#870.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#886) +[2617904.940] {Default Queue} -> zwp_primary_selection_device_manager_v1#886.create_source(new id zwp_primary_selection_source_v1#887) +[2617904.950] {Default Queue} -> zwp_primary_selection_source_v1#887.offer("text/plain") +[2617904.955] {Default Queue} -> zwp_primary_selection_source_v1#887.offer("text/plain;charset=utf-8") +[2617904.960] {Default Queue} -> zwp_primary_selection_source_v1#887.offer("TEXT") +[2617904.966] {Default Queue} -> zwp_primary_selection_source_v1#887.offer("STRING") +[2617904.971] {Default Queue} -> zwp_primary_selection_source_v1#887.offer("UTF8_STRING") +[2617904.976] {Default Queue} wl_registry#870.global(19, "zwlr_data_control_manager_v1", 2) +[2617904.981] {Default Queue} wl_registry#870.global(20, "ext_data_control_manager_v1", 1) +[2617904.987] {Default Queue} wl_registry#870.global(21, "wp_presentation", 2) +[2617904.992] {Default Queue} wl_registry#870.global(22, "wp_security_context_manager_v1", 1) +[2617904.998] {Default Queue} wl_registry#870.global(23, "zwp_text_input_manager_v3", 1) +[2617905.003] {Default Queue} wl_registry#870.global(24, "zwp_input_method_manager_v2", 1) +[2617905.009] {Default Queue} wl_registry#870.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617905.014] {Default Queue} wl_registry#870.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617905.020] {Default Queue} wl_registry#870.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617905.026] {Default Queue} wl_registry#870.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617905.031] {Default Queue} wl_registry#870.global(29, "ext_workspace_manager_v1", 1) +[2617905.036] {Default Queue} wl_registry#870.global(30, "zwlr_output_manager_v1", 4) +[2617905.042] {Default Queue} wl_registry#870.global(31, "zwlr_screencopy_manager_v1", 3) +[2617905.047] {Default Queue} wl_registry#870.global(32, "wp_viewporter", 1) +[2617905.053] {Default Queue} wl_registry#870.global(33, "zxdg_exporter_v2", 1) +[2617905.058] {Default Queue} wl_registry#870.global(34, "zxdg_importer_v2", 1) +[2617905.064] {Default Queue} wl_registry#870.global(36, "xdg_activation_v1", 1) +[2617905.069] {Default Queue} wl_registry#870.global(37, "mutter_x11_interop", 1) +[2617905.074] {Default Queue} wl_registry#870.global(38, "wl_seat", 9) +[2617905.080] {Default Queue} -> wl_registry#870.bind(38, "wl_seat", 1, new id [unknown]#888) +[2617905.086] {Default Queue} wl_registry#870.global(39, "wp_cursor_shape_manager_v1", 2) +[2617905.092] {Default Queue} wl_registry#870.global(40, "wl_output", 4) +[2617905.097] {Default Queue} -> wl_registry#870.bind(40, "wl_output", 1, new id [unknown]#889) +[2617905.102] {Default Queue} wl_callback#871.done(0) +[2617905.108] {Default Queue} discarded wl_surface#839.enter(wl_output#18) +[2617905.113] {Default Queue} discarded wl_surface#839.enter(wl_output#57) +[2617905.118] {Default Queue} discarded wl_surface#839.enter(wl_output#89) +[2617905.123] {Default Queue} discarded wl_surface#839.enter(wl_output#121) +[2617905.128] {Default Queue} discarded wl_surface#839.enter(wl_output#153) +[2617905.133] {Default Queue} discarded wl_surface#839.enter(wl_output#185) +[2617905.138] {Default Queue} discarded wl_surface#839.enter(wl_output#217) +[2617905.143] {Default Queue} discarded wl_surface#839.enter(wl_output#249) +[2617905.152] {Default Queue} discarded wl_surface#839.enter(wl_output#281) +[2617905.159] {Default Queue} discarded wl_surface#839.enter(wl_output#313) +[2617905.163] {Default Queue} discarded wl_surface#839.enter(wl_output#345) +[2617905.168] {Default Queue} discarded wl_surface#839.enter(wl_output#377) +[2617905.173] {Default Queue} discarded wl_surface#839.enter(wl_output#409) +[2617905.178] {Default Queue} discarded wl_surface#839.enter(wl_output#441) +[2617905.183] {Default Queue} discarded wl_surface#839.enter(wl_output#473) +[2617905.188] {Default Queue} discarded wl_surface#839.enter(wl_output#505) +[2617905.193] {Default Queue} discarded wl_surface#839.enter(wl_output#537) +[2617905.199] {Default Queue} discarded wl_surface#839.enter(wl_output#569) +[2617905.204] {Default Queue} discarded wl_surface#839.enter(wl_output#601) +[2617905.209] {Default Queue} discarded wl_surface#839.enter(wl_output#633) +[2617905.214] {Default Queue} discarded wl_surface#839.enter(wl_output#665) +[2617905.219] {Default Queue} discarded wl_surface#839.enter(wl_output#697) +[2617905.224] {Default Queue} discarded wl_surface#839.enter(wl_output#729) +[2617905.229] {Default Queue} discarded wl_surface#839.enter(wl_output#761) +[2617905.234] {Default Queue} discarded wl_surface#839.enter(wl_output#793) +[2617905.239] {Default Queue} discarded wl_surface#839.enter(wl_output#825) +[2617905.243] {Default Queue} discarded wl_surface#839.enter(wl_output#857) +[2617905.249] {Default Queue} -> wl_compositor#28.create_surface(new id wl_surface#871) +[2617905.254] {Default Queue} -> wl_subcompositor#877.get_subsurface(new id wl_subsurface#890, wl_surface#871, wl_surface#71) +[2617905.260] {Default Queue} -> wl_subsurface#890.set_desync() +[2617905.266] {Default Queue} -> wl_subsurface#890.set_position(0, 0) +[2617905.271] {Default Queue} -> wl_subsurface#890.place_above(wl_surface#71) +[2617905.323] {Default Queue} -> wl_shm#879.create_pool(new id wl_shm_pool#891, fd 144, 16) +[2617905.331] {Default Queue} -> wl_shm#879.create_pool(new id wl_shm_pool#892, fd 145, 16) +[2617905.337] {Default Queue} -> wl_shm_pool#891.create_buffer(new id wl_buffer#893, 0, 2, 2, 8, 0) +[2617905.343] {Default Queue} -> wl_shm_pool#892.create_buffer(new id wl_buffer#894, 0, 2, 2, 8, 0) +[2617905.353] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) +[2617905.360] {Default Queue} -> wl_surface#871.commit() +[2617905.367] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) +[2617905.372] {Default Queue} -> wl_surface#871.commit() +[2617905.377] {Default Queue} -> wl_compositor#876.create_region(new id wl_region#895) +[2617905.385] {Default Queue} -> wl_compositor#876.create_region(new id wl_region#896) +[2617905.390] {Default Queue} -> wl_region#895.subtract(0, 0, 2, 2) +[2617905.396] {Default Queue} -> wl_region#895.add(0, 0, 0, 0) +[2617905.401] {Default Queue} -> wl_surface#871.set_opaque_region(wl_region#896) +[2617905.407] {Default Queue} -> wl_surface#871.set_input_region(wl_region#895) +[2617905.413] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) +[2617905.418] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) +[2617905.428] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) +[2617905.433] {Default Queue} -> wl_surface#871.commit() +[2617905.477] {Default Queue} -> wl_shm#881.create_pool(new id wl_shm_pool#897, fd 148, 640) +[2617905.485] {Default Queue} -> wl_shm#881.create_pool(new id wl_shm_pool#898, fd 149, 640) +[2617905.490] {Default Queue} -> wl_shm_pool#897.create_buffer(new id wl_buffer#899, 0, 10, 16, 40, 0) +[2617905.496] {Default Queue} -> wl_shm_pool#898.create_buffer(new id wl_buffer#900, 0, 10, 16, 40, 0) +[2617905.505] {Default Queue} -> wl_compositor#876.create_surface(new id wl_surface#901) +[2617905.510] {Default Queue} -> wl_surface#901.attach(wl_buffer#899, 0, 0) +[2617905.516] {Default Queue} -> wl_surface#901.commit() +[2617905.521] {Default Queue} -> wl_surface#901.attach(wl_buffer#899, 0, 0) +[2617905.525] {Default Queue} -> wl_surface#901.commit() +[2617905.531] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) +[2617905.542] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#902) +[2617905.551] {Default Queue} -> wl_display#1.sync(new id wl_callback#903) +[2617913.617] {Display Queue} wl_display#1.delete_id(903) +[2617913.634] {Default Queue} wl_keyboard#872.keymap(1, fd 144, 68213) +[2617913.643] {Default Queue} wl_keyboard#872.enter(566, wl_surface#19, array[0]) +[2617913.653] {Default Queue} wl_keyboard#872.modifiers(566, 0, 0, 16, 0) +[2617913.663] {Default Queue} discarded wl_shm#879.format(875709016) +[2617913.670] {Default Queue} discarded wl_shm#879.format(1) +[2617913.677] {Default Queue} discarded wl_shm#879.format(0) +[2617913.685] {Default Queue} discarded wl_shm#879.format(875708993) +[2617913.691] {Default Queue} discarded wl_shm#880.format(875709016) +[2617913.699] {Default Queue} discarded wl_shm#880.format(1) +[2617913.706] {Default Queue} discarded wl_shm#880.format(0) +[2617913.713] {Default Queue} discarded wl_shm#880.format(875708993) +[2617913.723] {Default Queue} discarded wl_shm#881.format(875709016) +[2617913.730] {Default Queue} discarded wl_shm#881.format(1) +[2617913.736] {Default Queue} discarded wl_shm#881.format(0) +[2617913.743] {Default Queue} discarded wl_shm#881.format(875708993) +[2617913.749] {Default Queue} wl_seat#888.capabilities(7) +[2617913.757] {Default Queue} -> wl_seat#888.get_keyboard(new id wl_keyboard#904) +[2617913.765] {Default Queue} -> wl_seat#888.get_pointer(new id wl_pointer#905) +[2617913.773] {Default Queue} -> wl_data_device_manager#884.get_data_device(new id wl_data_device#906, wl_seat#888) +[2617913.782] {Default Queue} -> zwp_primary_selection_device_manager_v1#886.get_device(new id zwp_primary_selection_device_v1#907, wl_seat#888) +[2617913.797] {Default Queue} wl_output#889.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617913.806] {Default Queue} wl_output#889.mode(3, 1280, 800, 60000) +[2617913.814] {Default Queue} discarded wl_surface#3.enter(wl_output#889) +[2617913.821] {Default Queue} discarded wl_surface#423.enter(wl_output#889) +[2617913.828] {Default Queue} discarded wl_surface#455.enter(wl_output#889) +[2617913.835] {Default Queue} discarded wl_surface#775.enter(wl_output#889) +[2617913.843] {Default Queue} discarded wl_surface#135.enter(wl_output#889) +[2617913.850] {Default Queue} discarded wl_surface#615.enter(wl_output#889) +[2617913.857] {Default Queue} discarded wl_surface#231.enter(wl_output#889) +[2617913.876] {Default Queue} discarded wl_surface#359.enter(wl_output#889) +[2617913.883] {Default Queue} discarded wl_surface#583.enter(wl_output#889) +[2617913.889] {Default Queue} discarded wl_surface#743.enter(wl_output#889) +[2617913.896] {Default Queue} discarded wl_surface#103.enter(wl_output#889) +[2617913.903] {Default Queue} discarded wl_surface#327.enter(wl_output#889) +[2617913.910] {Default Queue} discarded wl_surface#43.enter(wl_output#889) +[2617913.916] {Default Queue} discarded wl_surface#807.enter(wl_output#889) +[2617913.920] {Default Queue} discarded wl_surface#19.enter(wl_output#889) +[2617913.925] {Default Queue} discarded wl_surface#199.enter(wl_output#889) +[2617913.931] {Default Queue} discarded wl_surface#391.enter(wl_output#889) +[2617913.938] {Default Queue} discarded wl_surface#711.enter(wl_output#889) +[2617913.945] {Default Queue} discarded wl_surface#263.enter(wl_output#889) +[2617913.951] {Default Queue} discarded wl_surface#551.enter(wl_output#889) +[2617913.958] {Default Queue} discarded wl_surface#647.enter(wl_output#889) +[2617913.964] {Default Queue} discarded wl_surface#71.enter(wl_output#889) +[2617913.971] {Default Queue} discarded wl_surface#839.enter(wl_output#889) +[2617913.977] {Default Queue} discarded wl_surface#487.enter(wl_output#889) +[2617913.982] {Default Queue} discarded wl_surface#519.enter(wl_output#889) +[2617913.987] {Default Queue} discarded wl_surface#295.enter(wl_output#889) +[2617913.992] {Default Queue} discarded wl_surface#167.enter(wl_output#889) +[2617913.997] {Default Queue} discarded wl_surface#679.enter(wl_output#889) +[2617914.002] {Default Queue} wl_registry#902.global(1, "wl_compositor", 6) +[2617914.016] {Default Queue} -> wl_registry#902.bind(1, "wl_compositor", 1, new id [unknown]#908) +[2617914.025] {Default Queue} wl_registry#902.global(2, "wl_subcompositor", 1) +[2617914.031] {Default Queue} -> wl_registry#902.bind(2, "wl_subcompositor", 1, new id [unknown]#909) +[2617914.037] {Default Queue} wl_registry#902.global(3, "xdg_wm_base", 6) +[2617914.043] {Default Queue} -> wl_registry#902.bind(3, "xdg_wm_base", 1, new id [unknown]#910) +[2617914.049] {Default Queue} wl_registry#902.global(6, "zwlr_layer_shell_v1", 5) +[2617914.054] {Default Queue} wl_registry#902.global(7, "ext_session_lock_manager_v1", 1) +[2617914.060] {Default Queue} wl_registry#902.global(8, "wl_shm", 2) +[2617914.066] {Default Queue} -> wl_registry#902.bind(8, "wl_shm", 1, new id [unknown]#911) +[2617914.071] {Default Queue} -> wl_registry#902.bind(8, "wl_shm", 1, new id [unknown]#912) +[2617914.077] {Default Queue} -> wl_registry#902.bind(8, "wl_shm", 1, new id [unknown]#913) +[2617914.082] {Default Queue} wl_registry#902.global(9, "zxdg_output_manager_v1", 3) +[2617914.088] {Default Queue} wl_registry#902.global(10, "wp_fractional_scale_manager_v1", 1) +[2617914.093] {Default Queue} wl_registry#902.global(11, "zwp_tablet_manager_v2", 1) +[2617914.098] {Default Queue} wl_registry#902.global(12, "zwp_pointer_gestures_v1", 3) +[2617914.104] {Default Queue} wl_registry#902.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617914.109] {Default Queue} -> wl_registry#902.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#914) +[2617914.115] {Default Queue} wl_registry#902.global(14, "zwp_pointer_constraints_v1", 1) +[2617914.120] {Default Queue} -> wl_registry#902.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#915) +[2617914.126] {Default Queue} wl_registry#902.global(15, "ext_idle_notifier_v1", 2) +[2617914.132] {Default Queue} wl_registry#902.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617914.137] {Default Queue} wl_registry#902.global(17, "wl_data_device_manager", 3) +[2617914.143] {Default Queue} -> wl_registry#902.bind(17, "wl_data_device_manager", 2, new id [unknown]#916) +[2617914.149] {Default Queue} -> wl_data_device_manager#916.create_data_source(new id wl_data_source#917) +[2617914.155] {Default Queue} -> wl_data_source#917.offer("text/plain") +[2617914.160] {Default Queue} -> wl_data_source#917.offer("text/plain;charset=utf-8") +[2617914.166] {Default Queue} -> wl_data_source#917.offer("TEXT") +[2617914.171] {Default Queue} -> wl_data_source#917.offer("STRING") +[2617914.176] {Default Queue} -> wl_data_source#917.offer("UTF8_STRING") +[2617914.181] {Default Queue} wl_registry#902.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617914.187] {Default Queue} -> wl_registry#902.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#918) +[2617914.192] {Default Queue} -> zwp_primary_selection_device_manager_v1#918.create_source(new id zwp_primary_selection_source_v1#919) +[2617914.201] {Default Queue} -> zwp_primary_selection_source_v1#919.offer("text/plain") +[2617914.207] {Default Queue} -> zwp_primary_selection_source_v1#919.offer("text/plain;charset=utf-8") +[2617914.212] {Default Queue} -> zwp_primary_selection_source_v1#919.offer("TEXT") +[2617914.217] {Default Queue} -> zwp_primary_selection_source_v1#919.offer("STRING") +[2617914.222] {Default Queue} -> zwp_primary_selection_source_v1#919.offer("UTF8_STRING") +[2617914.227] {Default Queue} wl_registry#902.global(19, "zwlr_data_control_manager_v1", 2) +[2617914.233] {Default Queue} wl_registry#902.global(20, "ext_data_control_manager_v1", 1) +[2617914.238] {Default Queue} wl_registry#902.global(21, "wp_presentation", 2) +[2617914.244] {Default Queue} wl_registry#902.global(22, "wp_security_context_manager_v1", 1) +[2617914.249] {Default Queue} wl_registry#902.global(23, "zwp_text_input_manager_v3", 1) +[2617914.254] {Default Queue} wl_registry#902.global(24, "zwp_input_method_manager_v2", 1) +[2617914.260] {Default Queue} wl_registry#902.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617914.265] {Default Queue} wl_registry#902.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617914.276] {Default Queue} wl_registry#902.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617914.284] {Default Queue} wl_registry#902.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617914.289] {Default Queue} wl_registry#902.global(29, "ext_workspace_manager_v1", 1) +[2617914.295] {Default Queue} wl_registry#902.global(30, "zwlr_output_manager_v1", 4) +[2617914.300] {Default Queue} wl_registry#902.global(31, "zwlr_screencopy_manager_v1", 3) +[2617914.305] {Default Queue} wl_registry#902.global(32, "wp_viewporter", 1) +[2617914.311] {Default Queue} wl_registry#902.global(33, "zxdg_exporter_v2", 1) +[2617914.316] {Default Queue} wl_registry#902.global(34, "zxdg_importer_v2", 1) +[2617914.321] {Default Queue} wl_registry#902.global(36, "xdg_activation_v1", 1) +[2617914.327] {Default Queue} wl_registry#902.global(37, "mutter_x11_interop", 1) +[2617914.332] {Default Queue} wl_registry#902.global(38, "wl_seat", 9) +[2617914.338] {Default Queue} -> wl_registry#902.bind(38, "wl_seat", 1, new id [unknown]#920) +[2617914.343] {Default Queue} wl_registry#902.global(39, "wp_cursor_shape_manager_v1", 2) +[2617914.349] {Default Queue} wl_registry#902.global(40, "wl_output", 4) +[2617914.354] {Default Queue} -> wl_registry#902.bind(40, "wl_output", 1, new id [unknown]#921) +[2617914.360] {Default Queue} wl_callback#903.done(0) +[2617914.366] {Default Queue} discarded wl_surface#871.enter(wl_output#18) +[2617914.371] {Default Queue} discarded wl_surface#871.enter(wl_output#57) +[2617914.376] {Default Queue} discarded wl_surface#871.enter(wl_output#89) +[2617914.381] {Default Queue} discarded wl_surface#871.enter(wl_output#121) +[2617914.385] {Default Queue} discarded wl_surface#871.enter(wl_output#153) +[2617914.390] {Default Queue} discarded wl_surface#871.enter(wl_output#185) +[2617914.395] {Default Queue} discarded wl_surface#871.enter(wl_output#217) +[2617914.400] {Default Queue} discarded wl_surface#871.enter(wl_output#249) +[2617914.405] {Default Queue} discarded wl_surface#871.enter(wl_output#281) +[2617914.409] {Default Queue} discarded wl_surface#871.enter(wl_output#313) +[2617914.414] {Default Queue} discarded wl_surface#871.enter(wl_output#345) +[2617914.419] {Default Queue} discarded wl_surface#871.enter(wl_output#377) +[2617914.424] {Default Queue} discarded wl_surface#871.enter(wl_output#409) +[2617914.429] {Default Queue} discarded wl_surface#871.enter(wl_output#441) +[2617914.434] {Default Queue} discarded wl_surface#871.enter(wl_output#473) +[2617914.438] {Default Queue} discarded wl_surface#871.enter(wl_output#505) +[2617914.443] {Default Queue} discarded wl_surface#871.enter(wl_output#537) +[2617914.448] {Default Queue} discarded wl_surface#871.enter(wl_output#569) +[2617914.453] {Default Queue} discarded wl_surface#871.enter(wl_output#601) +[2617914.458] {Default Queue} discarded wl_surface#871.enter(wl_output#633) +[2617914.463] {Default Queue} discarded wl_surface#871.enter(wl_output#665) +[2617914.468] {Default Queue} discarded wl_surface#871.enter(wl_output#697) +[2617914.473] {Default Queue} discarded wl_surface#871.enter(wl_output#729) +[2617914.477] {Default Queue} discarded wl_surface#871.enter(wl_output#761) +[2617914.483] {Default Queue} discarded wl_surface#871.enter(wl_output#793) +[2617914.487] {Default Queue} discarded wl_surface#871.enter(wl_output#825) +[2617914.492] {Default Queue} discarded wl_surface#871.enter(wl_output#857) +[2617914.497] {Default Queue} discarded wl_surface#871.enter(wl_output#889) +[2617914.502] {Default Queue} -> wl_compositor#876.create_surface(new id wl_surface#903) +[2617914.508] {Default Queue} -> wl_subcompositor#909.get_subsurface(new id wl_subsurface#922, wl_surface#903, wl_surface#871) +[2617914.513] {Default Queue} -> wl_subsurface#922.set_desync() +[2617914.519] {Default Queue} -> wl_subsurface#922.set_position(0, 0) +[2617914.524] {Default Queue} -> wl_subsurface#922.place_above(wl_surface#871) +[2617914.569] {Default Queue} -> wl_shm#911.create_pool(new id wl_shm_pool#923, fd 149, 16) +[2617914.576] {Default Queue} -> wl_shm#911.create_pool(new id wl_shm_pool#924, fd 150, 16) +[2617914.583] {Default Queue} -> wl_shm_pool#923.create_buffer(new id wl_buffer#925, 0, 2, 2, 8, 0) +[2617914.590] {Default Queue} -> wl_shm_pool#924.create_buffer(new id wl_buffer#926, 0, 2, 2, 8, 0) +[2617914.598] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) +[2617914.602] {Default Queue} -> wl_surface#903.commit() +[2617914.608] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) +[2617914.612] {Default Queue} -> wl_surface#903.commit() +[2617914.616] {Default Queue} -> wl_compositor#908.create_region(new id wl_region#927) +[2617914.620] {Default Queue} -> wl_compositor#908.create_region(new id wl_region#928) +[2617914.625] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) +[2617914.629] {Default Queue} -> wl_region#927.add(0, 0, 0, 0) +[2617914.634] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2617914.638] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2617914.642] {Default Queue} -> wl_surface#903.damage(0, 0, 2, 2) +[2617914.647] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) +[2617914.654] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) +[2617914.658] {Default Queue} -> wl_surface#903.commit() +[2617914.690] {Default Queue} -> wl_shm#913.create_pool(new id wl_shm_pool#929, fd 153, 640) +[2617914.697] {Default Queue} -> wl_shm#913.create_pool(new id wl_shm_pool#930, fd 154, 640) +[2617914.704] {Default Queue} -> wl_shm_pool#929.create_buffer(new id wl_buffer#931, 0, 10, 16, 40, 0) +[2617914.709] {Default Queue} -> wl_shm_pool#930.create_buffer(new id wl_buffer#932, 0, 10, 16, 40, 0) +[2617914.716] {Default Queue} -> wl_compositor#908.create_surface(new id wl_surface#933) +[2617914.720] {Default Queue} -> wl_surface#933.attach(wl_buffer#931, 0, 0) +[2617914.725] {Default Queue} -> wl_surface#933.commit() +[2617914.730] {Default Queue} -> wl_surface#933.attach(wl_buffer#931, 0, 0) +[2617914.735] {Default Queue} -> wl_surface#933.commit() +[2617914.740] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) +[2617914.745] {Default Queue} -> wl_surface#903.damage(0, 0, 2, 2) +[2617914.749] {Default Queue} -> wl_surface#903.damage(0, 0, 2, 2) +[2617914.757] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#934) +[2617914.762] {Default Queue} -> wl_display#1.sync(new id wl_callback#935) +[2617923.667] {Display Queue} wl_display#1.delete_id(935) +[2617923.684] {Default Queue} wl_keyboard#904.keymap(1, fd 149, 68213) +[2617923.693] {Default Queue} wl_keyboard#904.enter(566, wl_surface#19, array[0]) +[2617923.702] {Default Queue} wl_keyboard#904.modifiers(566, 0, 0, 16, 0) +[2617923.710] {Default Queue} discarded wl_shm#911.format(875709016) +[2617923.717] {Default Queue} discarded wl_shm#911.format(1) +[2617923.723] {Default Queue} discarded wl_shm#911.format(0) +[2617923.728] {Default Queue} discarded wl_shm#911.format(875708993) +[2617923.733] {Default Queue} discarded wl_shm#912.format(875709016) +[2617923.738] {Default Queue} discarded wl_shm#912.format(1) +[2617923.743] {Default Queue} discarded wl_shm#912.format(0) +[2617923.748] {Default Queue} discarded wl_shm#912.format(875708993) +[2617923.753] {Default Queue} discarded wl_shm#913.format(875709016) +[2617923.758] {Default Queue} discarded wl_shm#913.format(1) +[2617923.763] {Default Queue} discarded wl_shm#913.format(0) +[2617923.767] {Default Queue} discarded wl_shm#913.format(875708993) +[2617923.772] {Default Queue} wl_seat#920.capabilities(7) +[2617923.778] {Default Queue} -> wl_seat#920.get_keyboard(new id wl_keyboard#936) +[2617923.784] {Default Queue} -> wl_seat#920.get_pointer(new id wl_pointer#937) +[2617923.789] {Default Queue} -> wl_data_device_manager#916.get_data_device(new id wl_data_device#938, wl_seat#920) +[2617923.795] {Default Queue} -> zwp_primary_selection_device_manager_v1#918.get_device(new id zwp_primary_selection_device_v1#939, wl_seat#920) +[2617923.805] {Default Queue} wl_output#921.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617923.811] {Default Queue} wl_output#921.mode(3, 1280, 800, 60000) +[2617923.827] {Default Queue} discarded wl_surface#3.enter(wl_output#921) +[2617923.836] {Default Queue} discarded wl_surface#423.enter(wl_output#921) +[2617923.843] {Default Queue} discarded wl_surface#455.enter(wl_output#921) +[2617923.849] {Default Queue} discarded wl_surface#775.enter(wl_output#921) +[2617923.856] {Default Queue} discarded wl_surface#135.enter(wl_output#921) +[2617923.869] {Default Queue} discarded wl_surface#615.enter(wl_output#921) +[2617923.876] {Default Queue} discarded wl_surface#231.enter(wl_output#921) +[2617923.882] {Default Queue} discarded wl_surface#359.enter(wl_output#921) +[2617923.889] {Default Queue} discarded wl_surface#583.enter(wl_output#921) +[2617923.896] {Default Queue} discarded wl_surface#743.enter(wl_output#921) +[2617923.903] {Default Queue} discarded wl_surface#103.enter(wl_output#921) +[2617923.910] {Default Queue} discarded wl_surface#327.enter(wl_output#921) +[2617923.918] {Default Queue} discarded wl_surface#43.enter(wl_output#921) +[2617923.925] {Default Queue} discarded wl_surface#807.enter(wl_output#921) +[2617923.931] {Default Queue} discarded wl_surface#19.enter(wl_output#921) +[2617923.938] {Default Queue} discarded wl_surface#199.enter(wl_output#921) +[2617923.946] {Default Queue} discarded wl_surface#391.enter(wl_output#921) +[2617923.952] {Default Queue} discarded wl_surface#711.enter(wl_output#921) +[2617923.960] {Default Queue} discarded wl_surface#871.enter(wl_output#921) +[2617923.968] {Default Queue} discarded wl_surface#263.enter(wl_output#921) +[2617923.975] {Default Queue} discarded wl_surface#551.enter(wl_output#921) +[2617923.984] {Default Queue} discarded wl_surface#647.enter(wl_output#921) +[2617923.991] {Default Queue} discarded wl_surface#71.enter(wl_output#921) +[2617923.997] {Default Queue} discarded wl_surface#839.enter(wl_output#921) +[2617924.004] {Default Queue} discarded wl_surface#487.enter(wl_output#921) +[2617924.011] {Default Queue} discarded wl_surface#519.enter(wl_output#921) +[2617924.017] {Default Queue} discarded wl_surface#295.enter(wl_output#921) +[2617924.024] {Default Queue} discarded wl_surface#167.enter(wl_output#921) +[2617924.030] {Default Queue} discarded wl_surface#679.enter(wl_output#921) +[2617924.038] {Default Queue} wl_registry#934.global(1, "wl_compositor", 6) +[2617924.047] {Default Queue} -> wl_registry#934.bind(1, "wl_compositor", 1, new id [unknown]#940) +[2617924.058] {Default Queue} wl_registry#934.global(2, "wl_subcompositor", 1) +[2617924.066] {Default Queue} -> wl_registry#934.bind(2, "wl_subcompositor", 1, new id [unknown]#941) +[2617924.074] {Default Queue} wl_registry#934.global(3, "xdg_wm_base", 6) +[2617924.083] {Default Queue} -> wl_registry#934.bind(3, "xdg_wm_base", 1, new id [unknown]#942) +[2617924.091] {Default Queue} wl_registry#934.global(6, "zwlr_layer_shell_v1", 5) +[2617924.099] {Default Queue} wl_registry#934.global(7, "ext_session_lock_manager_v1", 1) +[2617924.109] {Default Queue} wl_registry#934.global(8, "wl_shm", 2) +[2617924.118] {Default Queue} -> wl_registry#934.bind(8, "wl_shm", 1, new id [unknown]#943) +[2617924.126] {Default Queue} -> wl_registry#934.bind(8, "wl_shm", 1, new id [unknown]#944) +[2617924.134] {Default Queue} -> wl_registry#934.bind(8, "wl_shm", 1, new id [unknown]#945) +[2617924.143] {Default Queue} wl_registry#934.global(9, "zxdg_output_manager_v1", 3) +[2617924.150] {Default Queue} wl_registry#934.global(10, "wp_fractional_scale_manager_v1", 1) +[2617924.158] {Default Queue} wl_registry#934.global(11, "zwp_tablet_manager_v2", 1) +[2617924.166] {Default Queue} wl_registry#934.global(12, "zwp_pointer_gestures_v1", 3) +[2617924.173] {Default Queue} wl_registry#934.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617924.180] {Default Queue} -> wl_registry#934.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#946) +[2617924.186] {Default Queue} wl_registry#934.global(14, "zwp_pointer_constraints_v1", 1) +[2617924.194] {Default Queue} -> wl_registry#934.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#947) +[2617924.203] {Default Queue} wl_registry#934.global(15, "ext_idle_notifier_v1", 2) +[2617924.218] {Default Queue} wl_registry#934.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617924.227] {Default Queue} wl_registry#934.global(17, "wl_data_device_manager", 3) +[2617924.234] {Default Queue} -> wl_registry#934.bind(17, "wl_data_device_manager", 2, new id [unknown]#948) +[2617924.239] {Default Queue} -> wl_data_device_manager#948.create_data_source(new id wl_data_source#949) +[2617924.245] {Default Queue} -> wl_data_source#949.offer("text/plain") +[2617924.251] {Default Queue} -> wl_data_source#949.offer("text/plain;charset=utf-8") +[2617924.256] {Default Queue} -> wl_data_source#949.offer("TEXT") +[2617924.261] {Default Queue} -> wl_data_source#949.offer("STRING") +[2617924.266] {Default Queue} -> wl_data_source#949.offer("UTF8_STRING") +[2617924.271] {Default Queue} wl_registry#934.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617924.277] {Default Queue} -> wl_registry#934.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#950) +[2617924.283] {Default Queue} -> zwp_primary_selection_device_manager_v1#950.create_source(new id zwp_primary_selection_source_v1#951) +[2617924.292] {Default Queue} -> zwp_primary_selection_source_v1#951.offer("text/plain") +[2617924.298] {Default Queue} -> zwp_primary_selection_source_v1#951.offer("text/plain;charset=utf-8") +[2617924.302] {Default Queue} -> zwp_primary_selection_source_v1#951.offer("TEXT") +[2617924.307] {Default Queue} -> zwp_primary_selection_source_v1#951.offer("STRING") +[2617924.313] {Default Queue} -> zwp_primary_selection_source_v1#951.offer("UTF8_STRING") +[2617924.318] {Default Queue} wl_registry#934.global(19, "zwlr_data_control_manager_v1", 2) +[2617924.323] {Default Queue} wl_registry#934.global(20, "ext_data_control_manager_v1", 1) +[2617924.328] {Default Queue} wl_registry#934.global(21, "wp_presentation", 2) +[2617924.334] {Default Queue} wl_registry#934.global(22, "wp_security_context_manager_v1", 1) +[2617924.339] {Default Queue} wl_registry#934.global(23, "zwp_text_input_manager_v3", 1) +[2617924.344] {Default Queue} wl_registry#934.global(24, "zwp_input_method_manager_v2", 1) +[2617924.350] {Default Queue} wl_registry#934.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617924.355] {Default Queue} wl_registry#934.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617924.360] {Default Queue} wl_registry#934.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617924.366] {Default Queue} wl_registry#934.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617924.371] {Default Queue} wl_registry#934.global(29, "ext_workspace_manager_v1", 1) +[2617924.377] {Default Queue} wl_registry#934.global(30, "zwlr_output_manager_v1", 4) +[2617924.382] {Default Queue} wl_registry#934.global(31, "zwlr_screencopy_manager_v1", 3) +[2617924.388] {Default Queue} wl_registry#934.global(32, "wp_viewporter", 1) +[2617924.397] {Default Queue} wl_registry#934.global(33, "zxdg_exporter_v2", 1) +[2617924.412] {Default Queue} wl_registry#934.global(34, "zxdg_importer_v2", 1) +[2617924.422] {Default Queue} wl_registry#934.global(36, "xdg_activation_v1", 1) +[2617924.430] {Default Queue} wl_registry#934.global(37, "mutter_x11_interop", 1) +[2617924.439] {Default Queue} wl_registry#934.global(38, "wl_seat", 9) +[2617924.448] {Default Queue} -> wl_registry#934.bind(38, "wl_seat", 1, new id [unknown]#952) +[2617924.460] {Default Queue} wl_registry#934.global(39, "wp_cursor_shape_manager_v1", 2) +[2617924.468] {Default Queue} wl_registry#934.global(40, "wl_output", 4) +[2617924.474] {Default Queue} -> wl_registry#934.bind(40, "wl_output", 1, new id [unknown]#953) +[2617924.480] {Default Queue} wl_callback#935.done(0) +[2617924.486] {Default Queue} discarded wl_surface#903.enter(wl_output#18) +[2617924.491] {Default Queue} discarded wl_surface#903.enter(wl_output#57) +[2617924.496] {Default Queue} discarded wl_surface#903.enter(wl_output#89) +[2617924.501] {Default Queue} discarded wl_surface#903.enter(wl_output#121) +[2617924.506] {Default Queue} discarded wl_surface#903.enter(wl_output#153) +[2617924.511] {Default Queue} discarded wl_surface#903.enter(wl_output#185) +[2617924.522] {Default Queue} discarded wl_surface#903.enter(wl_output#217) +[2617924.530] {Default Queue} discarded wl_surface#903.enter(wl_output#249) +[2617924.535] {Default Queue} discarded wl_surface#903.enter(wl_output#281) +[2617924.540] {Default Queue} discarded wl_surface#903.enter(wl_output#313) +[2617924.544] {Default Queue} discarded wl_surface#903.enter(wl_output#345) +[2617924.549] {Default Queue} discarded wl_surface#903.enter(wl_output#377) +[2617924.553] {Default Queue} discarded wl_surface#903.enter(wl_output#409) +[2617924.557] {Default Queue} discarded wl_surface#903.enter(wl_output#441) +[2617924.561] {Default Queue} discarded wl_surface#903.enter(wl_output#473) +[2617924.564] {Default Queue} discarded wl_surface#903.enter(wl_output#505) +[2617924.568] {Default Queue} discarded wl_surface#903.enter(wl_output#537) +[2617924.572] {Default Queue} discarded wl_surface#903.enter(wl_output#569) +[2617924.576] {Default Queue} discarded wl_surface#903.enter(wl_output#601) +[2617924.580] {Default Queue} discarded wl_surface#903.enter(wl_output#633) +[2617924.584] {Default Queue} discarded wl_surface#903.enter(wl_output#665) +[2617924.588] {Default Queue} discarded wl_surface#903.enter(wl_output#697) +[2617924.592] {Default Queue} discarded wl_surface#903.enter(wl_output#729) +[2617924.596] {Default Queue} discarded wl_surface#903.enter(wl_output#761) +[2617924.600] {Default Queue} discarded wl_surface#903.enter(wl_output#793) +[2617924.604] {Default Queue} discarded wl_surface#903.enter(wl_output#825) +[2617924.607] {Default Queue} discarded wl_surface#903.enter(wl_output#857) +[2617924.611] {Default Queue} discarded wl_surface#903.enter(wl_output#889) +[2617924.615] {Default Queue} discarded wl_surface#903.enter(wl_output#921) +[2617924.620] {Default Queue} -> wl_compositor#908.create_surface(new id wl_surface#935) +[2617924.624] {Default Queue} -> wl_subcompositor#941.get_subsurface(new id wl_subsurface#954, wl_surface#935, wl_surface#903) +[2617924.629] {Default Queue} -> wl_subsurface#954.set_desync() +[2617924.633] {Default Queue} -> wl_subsurface#954.set_position(0, 0) +[2617924.638] {Default Queue} -> wl_subsurface#954.place_above(wl_surface#903) +[2617924.688] {Default Queue} -> wl_shm#943.create_pool(new id wl_shm_pool#955, fd 154, 16) +[2617924.695] {Default Queue} -> wl_shm#943.create_pool(new id wl_shm_pool#956, fd 155, 16) +[2617924.699] {Default Queue} -> wl_shm_pool#955.create_buffer(new id wl_buffer#957, 0, 2, 2, 8, 0) +[2617924.704] {Default Queue} -> wl_shm_pool#956.create_buffer(new id wl_buffer#958, 0, 2, 2, 8, 0) +[2617924.712] {Default Queue} -> wl_surface#935.attach(wl_buffer#957, 0, 0) +[2617924.717] {Default Queue} -> wl_surface#935.commit() +[2617924.723] {Default Queue} -> wl_surface#935.attach(wl_buffer#957, 0, 0) +[2617924.727] {Default Queue} -> wl_surface#935.commit() +[2617924.731] {Default Queue} -> wl_compositor#940.create_region(new id wl_region#959) +[2617924.736] {Default Queue} -> wl_compositor#940.create_region(new id wl_region#960) +[2617924.740] {Default Queue} -> wl_region#959.subtract(0, 0, 2, 2) +[2617924.744] {Default Queue} -> wl_region#959.add(0, 0, 0, 0) +[2617924.749] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) +[2617924.753] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) +[2617924.758] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) +[2617924.762] {Default Queue} -> wl_surface#903.damage(0, 0, 2, 2) +[2617924.769] {Default Queue} -> wl_surface#935.attach(wl_buffer#957, 0, 0) +[2617924.773] {Default Queue} -> wl_surface#935.commit() +[2617924.814] {Default Queue} -> wl_shm#945.create_pool(new id wl_shm_pool#961, fd 158, 640) +[2617924.822] {Default Queue} -> wl_shm#945.create_pool(new id wl_shm_pool#962, fd 159, 640) +[2617924.827] {Default Queue} -> wl_shm_pool#961.create_buffer(new id wl_buffer#963, 0, 10, 16, 40, 0) +[2617924.832] {Default Queue} -> wl_shm_pool#962.create_buffer(new id wl_buffer#964, 0, 10, 16, 40, 0) +[2617924.839] {Default Queue} -> wl_compositor#940.create_surface(new id wl_surface#965) +[2617924.846] {Default Queue} -> wl_surface#965.attach(wl_buffer#963, 0, 0) +[2617924.853] {Default Queue} -> wl_surface#965.commit() +[2617924.859] {Default Queue} -> wl_surface#965.attach(wl_buffer#963, 0, 0) +[2617924.877] {Default Queue} -> wl_surface#965.commit() +[2617924.884] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) +[2617924.891] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#966) +[2617924.897] {Default Queue} -> wl_display#1.sync(new id wl_callback#967) +[2617933.660] {Display Queue} wl_display#1.delete_id(967) +[2617933.672] {Default Queue} wl_keyboard#936.keymap(1, fd 154, 68213) +[2617933.677] {Default Queue} wl_keyboard#936.enter(566, wl_surface#19, array[0]) +[2617933.683] {Default Queue} wl_keyboard#936.modifiers(566, 0, 0, 16, 0) +[2617933.687] {Default Queue} discarded wl_shm#943.format(875709016) +[2617933.691] {Default Queue} discarded wl_shm#943.format(1) +[2617933.695] {Default Queue} discarded wl_shm#943.format(0) +[2617933.699] {Default Queue} discarded wl_shm#943.format(875708993) +[2617933.703] {Default Queue} discarded wl_shm#944.format(875709016) +[2617933.707] {Default Queue} discarded wl_shm#944.format(1) +[2617933.712] {Default Queue} discarded wl_shm#944.format(0) +[2617933.716] {Default Queue} discarded wl_shm#944.format(875708993) +[2617933.720] {Default Queue} discarded wl_shm#945.format(875709016) +[2617933.723] {Default Queue} discarded wl_shm#945.format(1) +[2617933.727] {Default Queue} discarded wl_shm#945.format(0) +[2617933.731] {Default Queue} discarded wl_shm#945.format(875708993) +[2617933.735] {Default Queue} wl_seat#952.capabilities(7) +[2617933.740] {Default Queue} -> wl_seat#952.get_keyboard(new id wl_keyboard#968) +[2617933.745] {Default Queue} -> wl_seat#952.get_pointer(new id wl_pointer#969) +[2617933.749] {Default Queue} -> wl_data_device_manager#948.get_data_device(new id wl_data_device#970, wl_seat#952) +[2617933.754] {Default Queue} -> zwp_primary_selection_device_manager_v1#950.get_device(new id zwp_primary_selection_device_v1#971, wl_seat#952) +[2617933.762] {Default Queue} wl_output#953.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617933.767] {Default Queue} wl_output#953.mode(3, 1280, 800, 60000) +[2617933.771] {Default Queue} discarded wl_surface#3.enter(wl_output#953) +[2617933.776] {Default Queue} discarded wl_surface#423.enter(wl_output#953) +[2617933.780] {Default Queue} discarded wl_surface#455.enter(wl_output#953) +[2617933.784] {Default Queue} discarded wl_surface#903.enter(wl_output#953) +[2617933.787] {Default Queue} discarded wl_surface#775.enter(wl_output#953) +[2617933.791] {Default Queue} discarded wl_surface#135.enter(wl_output#953) +[2617933.795] {Default Queue} discarded wl_surface#615.enter(wl_output#953) +[2617933.799] {Default Queue} discarded wl_surface#231.enter(wl_output#953) +[2617933.803] {Default Queue} discarded wl_surface#359.enter(wl_output#953) +[2617933.807] {Default Queue} discarded wl_surface#583.enter(wl_output#953) +[2617933.811] {Default Queue} discarded wl_surface#743.enter(wl_output#953) +[2617933.815] {Default Queue} discarded wl_surface#103.enter(wl_output#953) +[2617933.819] {Default Queue} discarded wl_surface#327.enter(wl_output#953) +[2617933.823] {Default Queue} discarded wl_surface#43.enter(wl_output#953) +[2617933.827] {Default Queue} discarded wl_surface#807.enter(wl_output#953) +[2617933.831] {Default Queue} discarded wl_surface#19.enter(wl_output#953) +[2617933.834] {Default Queue} discarded wl_surface#199.enter(wl_output#953) +[2617933.838] {Default Queue} discarded wl_surface#391.enter(wl_output#953) +[2617933.842] {Default Queue} discarded wl_surface#711.enter(wl_output#953) +[2617933.846] {Default Queue} discarded wl_surface#871.enter(wl_output#953) +[2617933.850] {Default Queue} discarded wl_surface#263.enter(wl_output#953) +[2617933.854] {Default Queue} discarded wl_surface#551.enter(wl_output#953) +[2617933.858] {Default Queue} discarded wl_surface#647.enter(wl_output#953) +[2617933.867] {Default Queue} discarded wl_surface#71.enter(wl_output#953) +[2617933.871] {Default Queue} discarded wl_surface#839.enter(wl_output#953) +[2617933.879] {Default Queue} discarded wl_surface#487.enter(wl_output#953) +[2617933.886] {Default Queue} discarded wl_surface#519.enter(wl_output#953) +[2617933.891] {Default Queue} discarded wl_surface#295.enter(wl_output#953) +[2617933.895] {Default Queue} discarded wl_surface#167.enter(wl_output#953) +[2617933.898] {Default Queue} discarded wl_surface#679.enter(wl_output#953) +[2617933.903] {Default Queue} wl_registry#966.global(1, "wl_compositor", 6) +[2617933.908] {Default Queue} -> wl_registry#966.bind(1, "wl_compositor", 1, new id [unknown]#972) +[2617933.912] {Default Queue} wl_registry#966.global(2, "wl_subcompositor", 1) +[2617933.917] {Default Queue} -> wl_registry#966.bind(2, "wl_subcompositor", 1, new id [unknown]#973) +[2617933.921] {Default Queue} wl_registry#966.global(3, "xdg_wm_base", 6) +[2617933.926] {Default Queue} -> wl_registry#966.bind(3, "xdg_wm_base", 1, new id [unknown]#974) +[2617933.930] {Default Queue} wl_registry#966.global(6, "zwlr_layer_shell_v1", 5) +[2617933.935] {Default Queue} wl_registry#966.global(7, "ext_session_lock_manager_v1", 1) +[2617933.939] {Default Queue} wl_registry#966.global(8, "wl_shm", 2) +[2617933.943] {Default Queue} -> wl_registry#966.bind(8, "wl_shm", 1, new id [unknown]#975) +[2617933.948] {Default Queue} -> wl_registry#966.bind(8, "wl_shm", 1, new id [unknown]#976) +[2617933.952] {Default Queue} -> wl_registry#966.bind(8, "wl_shm", 1, new id [unknown]#977) +[2617933.956] {Default Queue} wl_registry#966.global(9, "zxdg_output_manager_v1", 3) +[2617933.961] {Default Queue} wl_registry#966.global(10, "wp_fractional_scale_manager_v1", 1) +[2617933.965] {Default Queue} wl_registry#966.global(11, "zwp_tablet_manager_v2", 1) +[2617933.970] {Default Queue} wl_registry#966.global(12, "zwp_pointer_gestures_v1", 3) +[2617933.974] {Default Queue} wl_registry#966.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617933.978] {Default Queue} -> wl_registry#966.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#978) +[2617933.983] {Default Queue} wl_registry#966.global(14, "zwp_pointer_constraints_v1", 1) +[2617933.987] {Default Queue} -> wl_registry#966.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#979) +[2617933.992] {Default Queue} wl_registry#966.global(15, "ext_idle_notifier_v1", 2) +[2617933.996] {Default Queue} wl_registry#966.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617934.001] {Default Queue} wl_registry#966.global(17, "wl_data_device_manager", 3) +[2617934.005] {Default Queue} -> wl_registry#966.bind(17, "wl_data_device_manager", 2, new id [unknown]#980) +[2617934.010] {Default Queue} -> wl_data_device_manager#980.create_data_source(new id wl_data_source#981) +[2617934.014] {Default Queue} -> wl_data_source#981.offer("text/plain") +[2617934.019] {Default Queue} -> wl_data_source#981.offer("text/plain;charset=utf-8") +[2617934.023] {Default Queue} -> wl_data_source#981.offer("TEXT") +[2617934.027] {Default Queue} -> wl_data_source#981.offer("STRING") +[2617934.032] {Default Queue} -> wl_data_source#981.offer("UTF8_STRING") +[2617934.037] {Default Queue} wl_registry#966.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617934.041] {Default Queue} -> wl_registry#966.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#982) +[2617934.046] {Default Queue} -> zwp_primary_selection_device_manager_v1#982.create_source(new id zwp_primary_selection_source_v1#983) +[2617934.053] {Default Queue} -> zwp_primary_selection_source_v1#983.offer("text/plain") +[2617934.057] {Default Queue} -> zwp_primary_selection_source_v1#983.offer("text/plain;charset=utf-8") +[2617934.061] {Default Queue} -> zwp_primary_selection_source_v1#983.offer("TEXT") +[2617934.065] {Default Queue} -> zwp_primary_selection_source_v1#983.offer("STRING") +[2617934.069] {Default Queue} -> zwp_primary_selection_source_v1#983.offer("UTF8_STRING") +[2617934.073] {Default Queue} wl_registry#966.global(19, "zwlr_data_control_manager_v1", 2) +[2617934.078] {Default Queue} wl_registry#966.global(20, "ext_data_control_manager_v1", 1) +[2617934.082] {Default Queue} wl_registry#966.global(21, "wp_presentation", 2) +[2617934.090] {Default Queue} wl_registry#966.global(22, "wp_security_context_manager_v1", 1) +[2617934.096] {Default Queue} wl_registry#966.global(23, "zwp_text_input_manager_v3", 1) +[2617934.100] {Default Queue} wl_registry#966.global(24, "zwp_input_method_manager_v2", 1) +[2617934.104] {Default Queue} wl_registry#966.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617934.109] {Default Queue} wl_registry#966.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617934.113] {Default Queue} wl_registry#966.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617934.117] {Default Queue} wl_registry#966.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617934.122] {Default Queue} wl_registry#966.global(29, "ext_workspace_manager_v1", 1) +[2617934.126] {Default Queue} wl_registry#966.global(30, "zwlr_output_manager_v1", 4) +[2617934.131] {Default Queue} wl_registry#966.global(31, "zwlr_screencopy_manager_v1", 3) +[2617934.135] {Default Queue} wl_registry#966.global(32, "wp_viewporter", 1) +[2617934.139] {Default Queue} wl_registry#966.global(33, "zxdg_exporter_v2", 1) +[2617934.143] {Default Queue} wl_registry#966.global(34, "zxdg_importer_v2", 1) +[2617934.148] {Default Queue} wl_registry#966.global(36, "xdg_activation_v1", 1) +[2617934.152] {Default Queue} wl_registry#966.global(37, "mutter_x11_interop", 1) +[2617934.156] {Default Queue} wl_registry#966.global(38, "wl_seat", 9) +[2617934.162] {Default Queue} -> wl_registry#966.bind(38, "wl_seat", 1, new id [unknown]#984) +[2617934.166] {Default Queue} wl_registry#966.global(39, "wp_cursor_shape_manager_v1", 2) +[2617934.170] {Default Queue} wl_registry#966.global(40, "wl_output", 4) +[2617934.175] {Default Queue} -> wl_registry#966.bind(40, "wl_output", 1, new id [unknown]#985) +[2617934.179] {Default Queue} wl_callback#967.done(0) +[2617934.184] {Default Queue} discarded wl_surface#935.enter(wl_output#18) +[2617934.188] {Default Queue} discarded wl_surface#935.enter(wl_output#57) +[2617934.192] {Default Queue} discarded wl_surface#935.enter(wl_output#89) +[2617934.196] {Default Queue} discarded wl_surface#935.enter(wl_output#121) +[2617934.200] {Default Queue} discarded wl_surface#935.enter(wl_output#153) +[2617934.204] {Default Queue} discarded wl_surface#935.enter(wl_output#185) +[2617934.208] {Default Queue} discarded wl_surface#935.enter(wl_output#217) +[2617934.212] {Default Queue} discarded wl_surface#935.enter(wl_output#249) +[2617934.216] {Default Queue} discarded wl_surface#935.enter(wl_output#281) +[2617934.220] {Default Queue} discarded wl_surface#935.enter(wl_output#313) +[2617934.223] {Default Queue} discarded wl_surface#935.enter(wl_output#345) +[2617934.227] {Default Queue} discarded wl_surface#935.enter(wl_output#377) +[2617934.231] {Default Queue} discarded wl_surface#935.enter(wl_output#409) +[2617934.235] {Default Queue} discarded wl_surface#935.enter(wl_output#441) +[2617934.239] {Default Queue} discarded wl_surface#935.enter(wl_output#473) +[2617934.243] {Default Queue} discarded wl_surface#935.enter(wl_output#505) +[2617934.247] {Default Queue} discarded wl_surface#935.enter(wl_output#537) +[2617934.251] {Default Queue} discarded wl_surface#935.enter(wl_output#569) +[2617934.255] {Default Queue} discarded wl_surface#935.enter(wl_output#601) +[2617934.259] {Default Queue} discarded wl_surface#935.enter(wl_output#633) +[2617934.263] {Default Queue} discarded wl_surface#935.enter(wl_output#665) +[2617934.266] {Default Queue} discarded wl_surface#935.enter(wl_output#697) +[2617934.270] {Default Queue} discarded wl_surface#935.enter(wl_output#729) +[2617934.274] {Default Queue} discarded wl_surface#935.enter(wl_output#761) +[2617934.278] {Default Queue} discarded wl_surface#935.enter(wl_output#793) +[2617934.282] {Default Queue} discarded wl_surface#935.enter(wl_output#825) +[2617934.286] {Default Queue} discarded wl_surface#935.enter(wl_output#857) +[2617934.290] {Default Queue} discarded wl_surface#935.enter(wl_output#889) +[2617934.294] {Default Queue} discarded wl_surface#935.enter(wl_output#921) +[2617934.298] {Default Queue} discarded wl_surface#935.enter(wl_output#953) +[2617934.305] {Default Queue} -> wl_compositor#940.create_surface(new id wl_surface#967) +[2617934.311] {Default Queue} -> wl_subcompositor#973.get_subsurface(new id wl_subsurface#986, wl_surface#967, wl_surface#935) +[2617934.315] {Default Queue} -> wl_subsurface#986.set_desync() +[2617934.320] {Default Queue} -> wl_subsurface#986.set_position(0, 0) +[2617934.324] {Default Queue} -> wl_subsurface#986.place_above(wl_surface#935) +[2617934.368] {Default Queue} -> wl_shm#975.create_pool(new id wl_shm_pool#987, fd 159, 16) +[2617934.374] {Default Queue} -> wl_shm#975.create_pool(new id wl_shm_pool#988, fd 160, 16) +[2617934.379] {Default Queue} -> wl_shm_pool#987.create_buffer(new id wl_buffer#989, 0, 2, 2, 8, 0) +[2617934.383] {Default Queue} -> wl_shm_pool#988.create_buffer(new id wl_buffer#990, 0, 2, 2, 8, 0) +[2617934.393] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) +[2617934.398] {Default Queue} -> wl_surface#967.commit() +[2617934.404] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) +[2617934.408] {Default Queue} -> wl_surface#967.commit() +[2617934.412] {Default Queue} -> wl_compositor#972.create_region(new id wl_region#991) +[2617934.417] {Default Queue} -> wl_compositor#972.create_region(new id wl_region#992) +[2617934.421] {Default Queue} -> wl_region#991.subtract(0, 0, 2, 2) +[2617934.426] {Default Queue} -> wl_region#991.add(0, 0, 0, 0) +[2617934.430] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2617934.435] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2617934.439] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2617934.443] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) +[2617934.451] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) +[2617934.455] {Default Queue} -> wl_surface#967.commit() +[2617934.488] {Default Queue} -> wl_shm#977.create_pool(new id wl_shm_pool#993, fd 163, 640) +[2617934.494] {Default Queue} -> wl_shm#977.create_pool(new id wl_shm_pool#994, fd 164, 640) +[2617934.499] {Default Queue} -> wl_shm_pool#993.create_buffer(new id wl_buffer#995, 0, 10, 16, 40, 0) +[2617934.503] {Default Queue} -> wl_shm_pool#994.create_buffer(new id wl_buffer#996, 0, 10, 16, 40, 0) +[2617934.510] {Default Queue} -> wl_compositor#972.create_surface(new id wl_surface#997) +[2617934.515] {Default Queue} -> wl_surface#997.attach(wl_buffer#995, 0, 0) +[2617934.521] {Default Queue} -> wl_surface#997.commit() +[2617934.528] {Default Queue} -> wl_surface#997.attach(wl_buffer#995, 0, 0) +[2617934.535] {Default Queue} -> wl_surface#997.commit() +[2617934.544] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) +[2617934.553] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2617934.560] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2617934.571] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#998) +[2617934.578] {Default Queue} -> wl_display#1.sync(new id wl_callback#999) +[2617938.677] {Display Queue} wl_display#1.delete_id(999) +[2617938.692] {Default Queue} wl_keyboard#968.keymap(1, fd 159, 68213) +[2617938.699] {Default Queue} wl_keyboard#968.enter(566, wl_surface#19, array[0]) +[2617938.706] {Default Queue} wl_keyboard#968.modifiers(566, 0, 0, 16, 0) +[2617938.711] {Default Queue} discarded wl_shm#975.format(875709016) +[2617938.716] {Default Queue} discarded wl_shm#975.format(1) +[2617938.721] {Default Queue} discarded wl_shm#975.format(0) +[2617938.726] {Default Queue} discarded wl_shm#975.format(875708993) +[2617938.731] {Default Queue} discarded wl_shm#976.format(875709016) +[2617938.736] {Default Queue} discarded wl_shm#976.format(1) +[2617938.740] {Default Queue} discarded wl_shm#976.format(0) +[2617938.745] {Default Queue} discarded wl_shm#976.format(875708993) +[2617938.751] {Default Queue} discarded wl_shm#977.format(875709016) +[2617938.755] {Default Queue} discarded wl_shm#977.format(1) +[2617938.760] {Default Queue} discarded wl_shm#977.format(0) +[2617938.765] {Default Queue} discarded wl_shm#977.format(875708993) +[2617938.771] {Default Queue} wl_seat#984.capabilities(7) +[2617938.781] {Default Queue} -> wl_seat#984.get_keyboard(new id wl_keyboard#1000) +[2617938.790] {Default Queue} -> wl_seat#984.get_pointer(new id wl_pointer#1001) +[2617938.796] {Default Queue} -> wl_data_device_manager#980.get_data_device(new id wl_data_device#1002, wl_seat#984) +[2617938.802] {Default Queue} -> zwp_primary_selection_device_manager_v1#982.get_device(new id zwp_primary_selection_device_v1#1003, wl_seat#984) +[2617938.811] {Default Queue} wl_output#985.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617938.818] {Default Queue} wl_output#985.mode(3, 1280, 800, 60000) +[2617938.823] {Default Queue} discarded wl_surface#3.enter(wl_output#985) +[2617938.828] {Default Queue} discarded wl_surface#423.enter(wl_output#985) +[2617938.833] {Default Queue} discarded wl_surface#455.enter(wl_output#985) +[2617938.838] {Default Queue} discarded wl_surface#903.enter(wl_output#985) +[2617938.843] {Default Queue} discarded wl_surface#775.enter(wl_output#985) +[2617938.847] {Default Queue} discarded wl_surface#135.enter(wl_output#985) +[2617938.852] {Default Queue} discarded wl_surface#615.enter(wl_output#985) +[2617938.857] {Default Queue} discarded wl_surface#231.enter(wl_output#985) +[2617938.868] {Default Queue} discarded wl_surface#359.enter(wl_output#985) +[2617938.873] {Default Queue} discarded wl_surface#583.enter(wl_output#985) +[2617938.878] {Default Queue} discarded wl_surface#743.enter(wl_output#985) +[2617938.883] {Default Queue} discarded wl_surface#103.enter(wl_output#985) +[2617938.888] {Default Queue} discarded wl_surface#327.enter(wl_output#985) +[2617938.893] {Default Queue} discarded wl_surface#43.enter(wl_output#985) +[2617938.897] {Default Queue} discarded wl_surface#807.enter(wl_output#985) +[2617938.902] {Default Queue} discarded wl_surface#19.enter(wl_output#985) +[2617938.907] {Default Queue} discarded wl_surface#199.enter(wl_output#985) +[2617938.912] {Default Queue} discarded wl_surface#391.enter(wl_output#985) +[2617938.917] {Default Queue} discarded wl_surface#935.enter(wl_output#985) +[2617938.922] {Default Queue} discarded wl_surface#711.enter(wl_output#985) +[2617938.927] {Default Queue} discarded wl_surface#871.enter(wl_output#985) +[2617938.934] {Default Queue} discarded wl_surface#263.enter(wl_output#985) +[2617938.939] {Default Queue} discarded wl_surface#551.enter(wl_output#985) +[2617938.944] {Default Queue} discarded wl_surface#647.enter(wl_output#985) +[2617938.949] {Default Queue} discarded wl_surface#71.enter(wl_output#985) +[2617938.954] {Default Queue} discarded wl_surface#839.enter(wl_output#985) +[2617938.959] {Default Queue} discarded wl_surface#487.enter(wl_output#985) +[2617938.964] {Default Queue} discarded wl_surface#519.enter(wl_output#985) +[2617938.968] {Default Queue} discarded wl_surface#295.enter(wl_output#985) +[2617938.973] {Default Queue} discarded wl_surface#167.enter(wl_output#985) +[2617938.978] {Default Queue} discarded wl_surface#679.enter(wl_output#985) +[2617938.983] {Default Queue} wl_registry#998.global(1, "wl_compositor", 6) +[2617938.989] {Default Queue} -> wl_registry#998.bind(1, "wl_compositor", 1, new id [unknown]#1004) +[2617938.995] {Default Queue} wl_registry#998.global(2, "wl_subcompositor", 1) +[2617939.002] {Default Queue} -> wl_registry#998.bind(2, "wl_subcompositor", 1, new id [unknown]#1005) +[2617939.007] {Default Queue} wl_registry#998.global(3, "xdg_wm_base", 6) +[2617939.013] {Default Queue} -> wl_registry#998.bind(3, "xdg_wm_base", 1, new id [unknown]#1006) +[2617939.019] {Default Queue} wl_registry#998.global(6, "zwlr_layer_shell_v1", 5) +[2617939.024] {Default Queue} wl_registry#998.global(7, "ext_session_lock_manager_v1", 1) +[2617939.030] {Default Queue} wl_registry#998.global(8, "wl_shm", 2) +[2617939.036] {Default Queue} -> wl_registry#998.bind(8, "wl_shm", 1, new id [unknown]#1007) +[2617939.042] {Default Queue} -> wl_registry#998.bind(8, "wl_shm", 1, new id [unknown]#1008) +[2617939.048] {Default Queue} -> wl_registry#998.bind(8, "wl_shm", 1, new id [unknown]#1009) +[2617939.053] {Default Queue} wl_registry#998.global(9, "zxdg_output_manager_v1", 3) +[2617939.062] {Default Queue} wl_registry#998.global(10, "wp_fractional_scale_manager_v1", 1) +[2617939.070] {Default Queue} wl_registry#998.global(11, "zwp_tablet_manager_v2", 1) +[2617939.075] {Default Queue} wl_registry#998.global(12, "zwp_pointer_gestures_v1", 3) +[2617939.081] {Default Queue} wl_registry#998.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617939.086] {Default Queue} -> wl_registry#998.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1010) +[2617939.092] {Default Queue} wl_registry#998.global(14, "zwp_pointer_constraints_v1", 1) +[2617939.097] {Default Queue} -> wl_registry#998.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1011) +[2617939.103] {Default Queue} wl_registry#998.global(15, "ext_idle_notifier_v1", 2) +[2617939.108] {Default Queue} wl_registry#998.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617939.114] {Default Queue} wl_registry#998.global(17, "wl_data_device_manager", 3) +[2617939.120] {Default Queue} -> wl_registry#998.bind(17, "wl_data_device_manager", 2, new id [unknown]#1012) +[2617939.125] {Default Queue} -> wl_data_device_manager#1012.create_data_source(new id wl_data_source#1013) +[2617939.131] {Default Queue} -> wl_data_source#1013.offer("text/plain") +[2617939.136] {Default Queue} -> wl_data_source#1013.offer("text/plain;charset=utf-8") +[2617939.141] {Default Queue} -> wl_data_source#1013.offer("TEXT") +[2617939.146] {Default Queue} -> wl_data_source#1013.offer("STRING") +[2617939.151] {Default Queue} -> wl_data_source#1013.offer("UTF8_STRING") +[2617939.156] {Default Queue} wl_registry#998.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617939.162] {Default Queue} -> wl_registry#998.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1014) +[2617939.168] {Default Queue} -> zwp_primary_selection_device_manager_v1#1014.create_source(new id zwp_primary_selection_source_v1#1015) +[2617939.177] {Default Queue} -> zwp_primary_selection_source_v1#1015.offer("text/plain") +[2617939.182] {Default Queue} -> zwp_primary_selection_source_v1#1015.offer("text/plain;charset=utf-8") +[2617939.188] {Default Queue} -> zwp_primary_selection_source_v1#1015.offer("TEXT") +[2617939.193] {Default Queue} -> zwp_primary_selection_source_v1#1015.offer("STRING") +[2617939.198] {Default Queue} -> zwp_primary_selection_source_v1#1015.offer("UTF8_STRING") +[2617939.203] {Default Queue} wl_registry#998.global(19, "zwlr_data_control_manager_v1", 2) +[2617939.208] {Default Queue} wl_registry#998.global(20, "ext_data_control_manager_v1", 1) +[2617939.214] {Default Queue} wl_registry#998.global(21, "wp_presentation", 2) +[2617939.219] {Default Queue} wl_registry#998.global(22, "wp_security_context_manager_v1", 1) +[2617939.225] {Default Queue} wl_registry#998.global(23, "zwp_text_input_manager_v3", 1) +[2617939.230] {Default Queue} wl_registry#998.global(24, "zwp_input_method_manager_v2", 1) +[2617939.235] {Default Queue} wl_registry#998.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617939.241] {Default Queue} wl_registry#998.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617939.246] {Default Queue} wl_registry#998.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617939.252] {Default Queue} wl_registry#998.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617939.257] {Default Queue} wl_registry#998.global(29, "ext_workspace_manager_v1", 1) +[2617939.262] {Default Queue} wl_registry#998.global(30, "zwlr_output_manager_v1", 4) +[2617939.268] {Default Queue} wl_registry#998.global(31, "zwlr_screencopy_manager_v1", 3) +[2617939.273] {Default Queue} wl_registry#998.global(32, "wp_viewporter", 1) +[2617939.279] {Default Queue} wl_registry#998.global(33, "zxdg_exporter_v2", 1) +[2617939.284] {Default Queue} wl_registry#998.global(34, "zxdg_importer_v2", 1) +[2617939.290] {Default Queue} wl_registry#998.global(36, "xdg_activation_v1", 1) +[2617939.295] {Default Queue} wl_registry#998.global(37, "mutter_x11_interop", 1) +[2617939.301] {Default Queue} wl_registry#998.global(38, "wl_seat", 9) +[2617939.306] {Default Queue} -> wl_registry#998.bind(38, "wl_seat", 1, new id [unknown]#1016) +[2617939.315] {Default Queue} wl_registry#998.global(39, "wp_cursor_shape_manager_v1", 2) +[2617939.323] {Default Queue} wl_registry#998.global(40, "wl_output", 4) +[2617939.328] {Default Queue} -> wl_registry#998.bind(40, "wl_output", 1, new id [unknown]#1017) +[2617939.334] {Default Queue} wl_callback#999.done(0) +[2617939.339] {Default Queue} discarded wl_surface#967.enter(wl_output#18) +[2617939.344] {Default Queue} discarded wl_surface#967.enter(wl_output#57) +[2617939.349] {Default Queue} discarded wl_surface#967.enter(wl_output#89) +[2617939.354] {Default Queue} discarded wl_surface#967.enter(wl_output#121) +[2617939.359] {Default Queue} discarded wl_surface#967.enter(wl_output#153) +[2617939.364] {Default Queue} discarded wl_surface#967.enter(wl_output#185) +[2617939.369] {Default Queue} discarded wl_surface#967.enter(wl_output#217) +[2617939.374] {Default Queue} discarded wl_surface#967.enter(wl_output#249) +[2617939.379] {Default Queue} discarded wl_surface#967.enter(wl_output#281) +[2617939.384] {Default Queue} discarded wl_surface#967.enter(wl_output#313) +[2617939.389] {Default Queue} discarded wl_surface#967.enter(wl_output#345) +[2617939.393] {Default Queue} discarded wl_surface#967.enter(wl_output#377) +[2617939.398] {Default Queue} discarded wl_surface#967.enter(wl_output#409) +[2617939.403] {Default Queue} discarded wl_surface#967.enter(wl_output#441) +[2617939.408] {Default Queue} discarded wl_surface#967.enter(wl_output#473) +[2617939.413] {Default Queue} discarded wl_surface#967.enter(wl_output#505) +[2617939.418] {Default Queue} discarded wl_surface#967.enter(wl_output#537) +[2617939.422] {Default Queue} discarded wl_surface#967.enter(wl_output#569) +[2617939.427] {Default Queue} discarded wl_surface#967.enter(wl_output#601) +[2617939.432] {Default Queue} discarded wl_surface#967.enter(wl_output#633) +[2617939.438] {Default Queue} discarded wl_surface#967.enter(wl_output#665) +[2617939.442] {Default Queue} discarded wl_surface#967.enter(wl_output#697) +[2617939.447] {Default Queue} discarded wl_surface#967.enter(wl_output#729) +[2617939.452] {Default Queue} discarded wl_surface#967.enter(wl_output#761) +[2617939.457] {Default Queue} discarded wl_surface#967.enter(wl_output#793) +[2617939.462] {Default Queue} discarded wl_surface#967.enter(wl_output#825) +[2617939.467] {Default Queue} discarded wl_surface#967.enter(wl_output#857) +[2617939.472] {Default Queue} discarded wl_surface#967.enter(wl_output#889) +[2617939.476] {Default Queue} discarded wl_surface#967.enter(wl_output#921) +[2617939.481] {Default Queue} discarded wl_surface#967.enter(wl_output#953) +[2617939.486] {Default Queue} discarded wl_surface#967.enter(wl_output#985) +[2617939.491] {Default Queue} -> wl_compositor#940.create_surface(new id wl_surface#999) +[2617939.497] {Default Queue} -> wl_subcompositor#1005.get_subsurface(new id wl_subsurface#1018, wl_surface#999, wl_surface#935) +[2617939.507] {Default Queue} -> wl_subsurface#1018.set_desync() +[2617939.512] {Default Queue} -> wl_subsurface#1018.set_position(0, 0) +[2617939.518] {Default Queue} -> wl_subsurface#1018.place_above(wl_surface#935) +[2617939.570] {Default Queue} -> wl_shm#1007.create_pool(new id wl_shm_pool#1019, fd 164, 16) +[2617939.578] {Default Queue} -> wl_shm#1007.create_pool(new id wl_shm_pool#1020, fd 165, 16) +[2617939.583] {Default Queue} -> wl_shm_pool#1019.create_buffer(new id wl_buffer#1021, 0, 2, 2, 8, 0) +[2617939.588] {Default Queue} -> wl_shm_pool#1020.create_buffer(new id wl_buffer#1022, 0, 2, 2, 8, 0) +[2617939.596] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) +[2617939.603] {Default Queue} -> wl_surface#999.commit() +[2617939.608] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) +[2617939.612] {Default Queue} -> wl_surface#999.commit() +[2617939.617] {Default Queue} -> wl_compositor#1004.create_region(new id wl_region#1023) +[2617939.625] {Default Queue} -> wl_compositor#1004.create_region(new id wl_region#1024) +[2617939.637] {Default Queue} -> wl_region#1023.subtract(0, 0, 2, 2) +[2617939.649] {Default Queue} -> wl_region#1023.add(0, 0, 0, 0) +[2617939.657] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) +[2617939.663] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) +[2617939.667] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) +[2617939.672] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) +[2617939.679] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) +[2617939.683] {Default Queue} -> wl_surface#999.commit() +[2617939.720] {Default Queue} -> wl_shm#1009.create_pool(new id wl_shm_pool#1025, fd 168, 640) +[2617939.727] {Default Queue} -> wl_shm#1009.create_pool(new id wl_shm_pool#1026, fd 169, 640) +[2617939.731] {Default Queue} -> wl_shm_pool#1025.create_buffer(new id wl_buffer#1027, 0, 10, 16, 40, 0) +[2617939.736] {Default Queue} -> wl_shm_pool#1026.create_buffer(new id wl_buffer#1028, 0, 10, 16, 40, 0) +[2617939.743] {Default Queue} -> wl_compositor#1004.create_surface(new id wl_surface#1029) +[2617939.747] {Default Queue} -> wl_surface#1029.attach(wl_buffer#1027, 0, 0) +[2617939.752] {Default Queue} -> wl_surface#1029.commit() +[2617939.758] {Default Queue} -> wl_surface#1029.attach(wl_buffer#1027, 0, 0) +[2617939.762] {Default Queue} -> wl_surface#1029.commit() +[2617939.766] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) +[2617939.773] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1030) +[2617939.778] {Default Queue} -> wl_display#1.sync(new id wl_callback#1031) +[2617943.684] {Display Queue} wl_display#1.delete_id(1031) +[2617943.696] {Default Queue} wl_keyboard#1000.keymap(1, fd 164, 68213) +[2617943.701] {Default Queue} wl_keyboard#1000.enter(566, wl_surface#19, array[0]) +[2617943.707] {Default Queue} wl_keyboard#1000.modifiers(566, 0, 0, 16, 0) +[2617943.712] {Default Queue} discarded wl_shm#1007.format(875709016) +[2617943.716] {Default Queue} discarded wl_shm#1007.format(1) +[2617943.719] {Default Queue} discarded wl_shm#1007.format(0) +[2617943.723] {Default Queue} discarded wl_shm#1007.format(875708993) +[2617943.727] {Default Queue} discarded wl_shm#1008.format(875709016) +[2617943.731] {Default Queue} discarded wl_shm#1008.format(1) +[2617943.735] {Default Queue} discarded wl_shm#1008.format(0) +[2617943.739] {Default Queue} discarded wl_shm#1008.format(875708993) +[2617943.743] {Default Queue} discarded wl_shm#1009.format(875709016) +[2617943.747] {Default Queue} discarded wl_shm#1009.format(1) +[2617943.751] {Default Queue} discarded wl_shm#1009.format(0) +[2617943.754] {Default Queue} discarded wl_shm#1009.format(875708993) +[2617943.758] {Default Queue} wl_seat#1016.capabilities(7) +[2617943.763] {Default Queue} -> wl_seat#1016.get_keyboard(new id wl_keyboard#1032) +[2617943.767] {Default Queue} -> wl_seat#1016.get_pointer(new id wl_pointer#1033) +[2617943.772] {Default Queue} -> wl_data_device_manager#1012.get_data_device(new id wl_data_device#1034, wl_seat#1016) +[2617943.777] {Default Queue} -> zwp_primary_selection_device_manager_v1#1014.get_device(new id zwp_primary_selection_device_v1#1035, wl_seat#1016) +[2617943.785] {Default Queue} wl_output#1017.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617943.790] {Default Queue} wl_output#1017.mode(3, 1280, 800, 60000) +[2617943.795] {Default Queue} discarded wl_surface#3.enter(wl_output#1017) +[2617943.799] {Default Queue} discarded wl_surface#423.enter(wl_output#1017) +[2617943.803] {Default Queue} discarded wl_surface#455.enter(wl_output#1017) +[2617943.807] {Default Queue} discarded wl_surface#903.enter(wl_output#1017) +[2617943.811] {Default Queue} discarded wl_surface#775.enter(wl_output#1017) +[2617943.815] {Default Queue} discarded wl_surface#135.enter(wl_output#1017) +[2617943.819] {Default Queue} discarded wl_surface#615.enter(wl_output#1017) +[2617943.823] {Default Queue} discarded wl_surface#231.enter(wl_output#1017) +[2617943.827] {Default Queue} discarded wl_surface#359.enter(wl_output#1017) +[2617943.831] {Default Queue} discarded wl_surface#583.enter(wl_output#1017) +[2617943.835] {Default Queue} discarded wl_surface#743.enter(wl_output#1017) +[2617943.839] {Default Queue} discarded wl_surface#967.enter(wl_output#1017) +[2617943.849] {Default Queue} discarded wl_surface#103.enter(wl_output#1017) +[2617943.856] {Default Queue} discarded wl_surface#327.enter(wl_output#1017) +[2617943.859] {Default Queue} discarded wl_surface#43.enter(wl_output#1017) +[2617943.868] {Default Queue} discarded wl_surface#807.enter(wl_output#1017) +[2617943.872] {Default Queue} discarded wl_surface#19.enter(wl_output#1017) +[2617943.876] {Default Queue} discarded wl_surface#199.enter(wl_output#1017) +[2617943.879] {Default Queue} discarded wl_surface#391.enter(wl_output#1017) +[2617943.883] {Default Queue} discarded wl_surface#935.enter(wl_output#1017) +[2617943.887] {Default Queue} discarded wl_surface#711.enter(wl_output#1017) +[2617943.891] {Default Queue} discarded wl_surface#871.enter(wl_output#1017) +[2617943.895] {Default Queue} discarded wl_surface#263.enter(wl_output#1017) +[2617943.899] {Default Queue} discarded wl_surface#551.enter(wl_output#1017) +[2617943.903] {Default Queue} discarded wl_surface#647.enter(wl_output#1017) +[2617943.907] {Default Queue} discarded wl_surface#71.enter(wl_output#1017) +[2617943.911] {Default Queue} discarded wl_surface#839.enter(wl_output#1017) +[2617943.915] {Default Queue} discarded wl_surface#487.enter(wl_output#1017) +[2617943.919] {Default Queue} discarded wl_surface#519.enter(wl_output#1017) +[2617943.923] {Default Queue} discarded wl_surface#295.enter(wl_output#1017) +[2617943.927] {Default Queue} discarded wl_surface#167.enter(wl_output#1017) +[2617943.931] {Default Queue} discarded wl_surface#679.enter(wl_output#1017) +[2617943.935] {Default Queue} wl_registry#1030.global(1, "wl_compositor", 6) +[2617943.941] {Default Queue} -> wl_registry#1030.bind(1, "wl_compositor", 1, new id [unknown]#1036) +[2617943.946] {Default Queue} wl_registry#1030.global(2, "wl_subcompositor", 1) +[2617943.951] {Default Queue} -> wl_registry#1030.bind(2, "wl_subcompositor", 1, new id [unknown]#1037) +[2617943.955] {Default Queue} wl_registry#1030.global(3, "xdg_wm_base", 6) +[2617943.960] {Default Queue} -> wl_registry#1030.bind(3, "xdg_wm_base", 1, new id [unknown]#1038) +[2617943.965] {Default Queue} wl_registry#1030.global(6, "zwlr_layer_shell_v1", 5) +[2617943.969] {Default Queue} wl_registry#1030.global(7, "ext_session_lock_manager_v1", 1) +[2617943.974] {Default Queue} wl_registry#1030.global(8, "wl_shm", 2) +[2617943.978] {Default Queue} -> wl_registry#1030.bind(8, "wl_shm", 1, new id [unknown]#1039) +[2617943.983] {Default Queue} -> wl_registry#1030.bind(8, "wl_shm", 1, new id [unknown]#1040) +[2617943.987] {Default Queue} -> wl_registry#1030.bind(8, "wl_shm", 1, new id [unknown]#1041) +[2617943.992] {Default Queue} wl_registry#1030.global(9, "zxdg_output_manager_v1", 3) +[2617943.996] {Default Queue} wl_registry#1030.global(10, "wp_fractional_scale_manager_v1", 1) +[2617944.000] {Default Queue} wl_registry#1030.global(11, "zwp_tablet_manager_v2", 1) +[2617944.005] {Default Queue} wl_registry#1030.global(12, "zwp_pointer_gestures_v1", 3) +[2617944.009] {Default Queue} wl_registry#1030.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617944.013] {Default Queue} -> wl_registry#1030.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1042) +[2617944.018] {Default Queue} wl_registry#1030.global(14, "zwp_pointer_constraints_v1", 1) +[2617944.022] {Default Queue} -> wl_registry#1030.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1043) +[2617944.027] {Default Queue} wl_registry#1030.global(15, "ext_idle_notifier_v1", 2) +[2617944.031] {Default Queue} wl_registry#1030.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617944.036] {Default Queue} wl_registry#1030.global(17, "wl_data_device_manager", 3) +[2617944.040] {Default Queue} -> wl_registry#1030.bind(17, "wl_data_device_manager", 2, new id [unknown]#1044) +[2617944.045] {Default Queue} -> wl_data_device_manager#1044.create_data_source(new id wl_data_source#1045) +[2617944.049] {Default Queue} -> wl_data_source#1045.offer("text/plain") +[2617944.053] {Default Queue} -> wl_data_source#1045.offer("text/plain;charset=utf-8") +[2617944.058] {Default Queue} -> wl_data_source#1045.offer("TEXT") +[2617944.065] {Default Queue} -> wl_data_source#1045.offer("STRING") +[2617944.070] {Default Queue} -> wl_data_source#1045.offer("UTF8_STRING") +[2617944.074] {Default Queue} wl_registry#1030.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617944.079] {Default Queue} -> wl_registry#1030.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1046) +[2617944.087] {Default Queue} -> zwp_primary_selection_device_manager_v1#1046.create_source(new id zwp_primary_selection_source_v1#1047) +[2617944.095] {Default Queue} -> zwp_primary_selection_source_v1#1047.offer("text/plain") +[2617944.099] {Default Queue} -> zwp_primary_selection_source_v1#1047.offer("text/plain;charset=utf-8") +[2617944.103] {Default Queue} -> zwp_primary_selection_source_v1#1047.offer("TEXT") +[2617944.107] {Default Queue} -> zwp_primary_selection_source_v1#1047.offer("STRING") +[2617944.111] {Default Queue} -> zwp_primary_selection_source_v1#1047.offer("UTF8_STRING") +[2617944.115] {Default Queue} wl_registry#1030.global(19, "zwlr_data_control_manager_v1", 2) +[2617944.120] {Default Queue} wl_registry#1030.global(20, "ext_data_control_manager_v1", 1) +[2617944.124] {Default Queue} wl_registry#1030.global(21, "wp_presentation", 2) +[2617944.129] {Default Queue} wl_registry#1030.global(22, "wp_security_context_manager_v1", 1) +[2617944.133] {Default Queue} wl_registry#1030.global(23, "zwp_text_input_manager_v3", 1) +[2617944.137] {Default Queue} wl_registry#1030.global(24, "zwp_input_method_manager_v2", 1) +[2617944.141] {Default Queue} wl_registry#1030.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617944.146] {Default Queue} wl_registry#1030.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617944.150] {Default Queue} wl_registry#1030.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617944.154] {Default Queue} wl_registry#1030.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617944.159] {Default Queue} wl_registry#1030.global(29, "ext_workspace_manager_v1", 1) +[2617944.163] {Default Queue} wl_registry#1030.global(30, "zwlr_output_manager_v1", 4) +[2617944.168] {Default Queue} wl_registry#1030.global(31, "zwlr_screencopy_manager_v1", 3) +[2617944.172] {Default Queue} wl_registry#1030.global(32, "wp_viewporter", 1) +[2617944.176] {Default Queue} wl_registry#1030.global(33, "zxdg_exporter_v2", 1) +[2617944.180] {Default Queue} wl_registry#1030.global(34, "zxdg_importer_v2", 1) +[2617944.185] {Default Queue} wl_registry#1030.global(36, "xdg_activation_v1", 1) +[2617944.189] {Default Queue} wl_registry#1030.global(37, "mutter_x11_interop", 1) +[2617944.193] {Default Queue} wl_registry#1030.global(38, "wl_seat", 9) +[2617944.198] {Default Queue} -> wl_registry#1030.bind(38, "wl_seat", 1, new id [unknown]#1048) +[2617944.202] {Default Queue} wl_registry#1030.global(39, "wp_cursor_shape_manager_v1", 2) +[2617944.206] {Default Queue} wl_registry#1030.global(40, "wl_output", 4) +[2617944.211] {Default Queue} -> wl_registry#1030.bind(40, "wl_output", 1, new id [unknown]#1049) +[2617944.215] {Default Queue} wl_callback#1031.done(0) +[2617944.220] {Default Queue} discarded wl_surface#999.enter(wl_output#18) +[2617944.224] {Default Queue} discarded wl_surface#999.enter(wl_output#57) +[2617944.228] {Default Queue} discarded wl_surface#999.enter(wl_output#89) +[2617944.231] {Default Queue} discarded wl_surface#999.enter(wl_output#121) +[2617944.235] {Default Queue} discarded wl_surface#999.enter(wl_output#153) +[2617944.239] {Default Queue} discarded wl_surface#999.enter(wl_output#185) +[2617944.243] {Default Queue} discarded wl_surface#999.enter(wl_output#217) +[2617944.248] {Default Queue} discarded wl_surface#999.enter(wl_output#249) +[2617944.251] {Default Queue} discarded wl_surface#999.enter(wl_output#281) +[2617944.255] {Default Queue} discarded wl_surface#999.enter(wl_output#313) +[2617944.259] {Default Queue} discarded wl_surface#999.enter(wl_output#345) +[2617944.263] {Default Queue} discarded wl_surface#999.enter(wl_output#377) +[2617944.267] {Default Queue} discarded wl_surface#999.enter(wl_output#409) +[2617944.274] {Default Queue} discarded wl_surface#999.enter(wl_output#441) +[2617944.280] {Default Queue} discarded wl_surface#999.enter(wl_output#473) +[2617944.284] {Default Queue} discarded wl_surface#999.enter(wl_output#505) +[2617944.288] {Default Queue} discarded wl_surface#999.enter(wl_output#537) +[2617944.292] {Default Queue} discarded wl_surface#999.enter(wl_output#569) +[2617944.296] {Default Queue} discarded wl_surface#999.enter(wl_output#601) +[2617944.300] {Default Queue} discarded wl_surface#999.enter(wl_output#633) +[2617944.304] {Default Queue} discarded wl_surface#999.enter(wl_output#665) +[2617944.308] {Default Queue} discarded wl_surface#999.enter(wl_output#697) +[2617944.312] {Default Queue} discarded wl_surface#999.enter(wl_output#729) +[2617944.316] {Default Queue} discarded wl_surface#999.enter(wl_output#761) +[2617944.320] {Default Queue} discarded wl_surface#999.enter(wl_output#793) +[2617944.324] {Default Queue} discarded wl_surface#999.enter(wl_output#825) +[2617944.328] {Default Queue} discarded wl_surface#999.enter(wl_output#857) +[2617944.332] {Default Queue} discarded wl_surface#999.enter(wl_output#889) +[2617944.336] {Default Queue} discarded wl_surface#999.enter(wl_output#921) +[2617944.340] {Default Queue} discarded wl_surface#999.enter(wl_output#953) +[2617944.344] {Default Queue} discarded wl_surface#999.enter(wl_output#985) +[2617944.348] {Default Queue} discarded wl_surface#999.enter(wl_output#1017) +[2617944.352] {Default Queue} -> wl_compositor#1004.create_surface(new id wl_surface#1031) +[2617944.357] {Default Queue} -> wl_subcompositor#1037.get_subsurface(new id wl_subsurface#1050, wl_surface#1031, wl_surface#999) +[2617944.365] {Default Queue} -> wl_subsurface#1050.set_desync() +[2617944.369] {Default Queue} -> wl_subsurface#1050.set_position(0, 0) +[2617944.374] {Default Queue} -> wl_subsurface#1050.place_above(wl_surface#999) +[2617944.415] {Default Queue} -> wl_shm#1039.create_pool(new id wl_shm_pool#1051, fd 169, 16) +[2617944.421] {Default Queue} -> wl_shm#1039.create_pool(new id wl_shm_pool#1052, fd 170, 16) +[2617944.426] {Default Queue} -> wl_shm_pool#1051.create_buffer(new id wl_buffer#1053, 0, 2, 2, 8, 0) +[2617944.431] {Default Queue} -> wl_shm_pool#1052.create_buffer(new id wl_buffer#1054, 0, 2, 2, 8, 0) +[2617944.438] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) +[2617944.445] {Default Queue} -> wl_surface#1031.commit() +[2617944.451] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) +[2617944.455] {Default Queue} -> wl_surface#1031.commit() +[2617944.459] {Default Queue} -> wl_compositor#1036.create_region(new id wl_region#1055) +[2617944.464] {Default Queue} -> wl_compositor#1036.create_region(new id wl_region#1056) +[2617944.468] {Default Queue} -> wl_region#1055.subtract(0, 0, 2, 2) +[2617944.472] {Default Queue} -> wl_region#1055.add(0, 0, 0, 0) +[2617944.476] {Default Queue} -> wl_surface#1031.set_opaque_region(wl_region#1056) +[2617944.480] {Default Queue} -> wl_surface#1031.set_input_region(wl_region#1055) +[2617944.485] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2617944.489] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) +[2617944.496] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) +[2617944.500] {Default Queue} -> wl_surface#1031.commit() +[2617944.532] {Default Queue} -> wl_shm#1041.create_pool(new id wl_shm_pool#1057, fd 173, 640) +[2617944.538] {Default Queue} -> wl_shm#1041.create_pool(new id wl_shm_pool#1058, fd 174, 640) +[2617944.545] {Default Queue} -> wl_shm_pool#1057.create_buffer(new id wl_buffer#1059, 0, 10, 16, 40, 0) +[2617944.550] {Default Queue} -> wl_shm_pool#1058.create_buffer(new id wl_buffer#1060, 0, 10, 16, 40, 0) +[2617944.557] {Default Queue} -> wl_compositor#1036.create_surface(new id wl_surface#1061) +[2617944.561] {Default Queue} -> wl_surface#1061.attach(wl_buffer#1059, 0, 0) +[2617944.565] {Default Queue} -> wl_surface#1061.commit() +[2617944.571] {Default Queue} -> wl_surface#1061.attach(wl_buffer#1059, 0, 0) +[2617944.575] {Default Queue} -> wl_surface#1061.commit() +[2617944.588] {Default Queue} -> wl_region#959.subtract(0, 0, 2, 2) +[2617944.595] {Default Queue} -> wl_subsurface#954.set_position(3, 3) +[2617944.599] {Default Queue} -> wl_region#959.subtract(0, 0, 5, 5) +[2617944.604] {Default Queue} -> wl_region#959.add(0, 0, 0, 0) +[2617944.608] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) +[2617944.612] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) +[2617944.617] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2617944.621] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2617944.626] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) +[2617944.631] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) +[2617944.642] {Default Queue} -> wl_region#959.subtract(0, 0, 5, 5) +[2617944.649] {Default Queue} -> wl_region#959.add(0, 0, 0, 0) +[2617944.656] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) +[2617944.662] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) +[2617944.671] {Default Queue} -> wl_surface#935.attach(wl_buffer#957, 0, 0) +[2617944.678] {Default Queue} -> wl_surface#935.commit() +[2617944.688] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1062) +[2617944.694] {Default Queue} -> wl_display#1.sync(new id wl_callback#1063) +[2617953.710] {Display Queue} wl_display#1.delete_id(1063) +[2617953.724] {Default Queue} wl_keyboard#1032.keymap(1, fd 169, 68213) +[2617953.731] {Default Queue} wl_keyboard#1032.enter(566, wl_surface#19, array[0]) +[2617953.738] {Default Queue} wl_keyboard#1032.modifiers(566, 0, 0, 16, 0) +[2617953.745] {Default Queue} discarded wl_shm#1039.format(875709016) +[2617953.750] {Default Queue} discarded wl_shm#1039.format(1) +[2617953.755] {Default Queue} discarded wl_shm#1039.format(0) +[2617953.759] {Default Queue} discarded wl_shm#1039.format(875708993) +[2617953.762] {Default Queue} discarded wl_shm#1040.format(875709016) +[2617953.766] {Default Queue} discarded wl_shm#1040.format(1) +[2617953.770] {Default Queue} discarded wl_shm#1040.format(0) +[2617953.774] {Default Queue} discarded wl_shm#1040.format(875708993) +[2617953.778] {Default Queue} discarded wl_shm#1041.format(875709016) +[2617953.782] {Default Queue} discarded wl_shm#1041.format(1) +[2617953.786] {Default Queue} discarded wl_shm#1041.format(0) +[2617953.790] {Default Queue} discarded wl_shm#1041.format(875708993) +[2617953.793] {Default Queue} wl_seat#1048.capabilities(7) +[2617953.799] {Default Queue} -> wl_seat#1048.get_keyboard(new id wl_keyboard#1064) +[2617953.803] {Default Queue} -> wl_seat#1048.get_pointer(new id wl_pointer#1065) +[2617953.807] {Default Queue} -> wl_data_device_manager#1044.get_data_device(new id wl_data_device#1066, wl_seat#1048) +[2617953.812] {Default Queue} -> zwp_primary_selection_device_manager_v1#1046.get_device(new id zwp_primary_selection_device_v1#1067, wl_seat#1048) +[2617953.820] {Default Queue} wl_output#1049.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617953.826] {Default Queue} wl_output#1049.mode(3, 1280, 800, 60000) +[2617953.830] {Default Queue} discarded wl_surface#3.enter(wl_output#1049) +[2617953.835] {Default Queue} discarded wl_surface#999.enter(wl_output#1049) +[2617953.838] {Default Queue} discarded wl_surface#423.enter(wl_output#1049) +[2617953.842] {Default Queue} discarded wl_surface#455.enter(wl_output#1049) +[2617953.846] {Default Queue} discarded wl_surface#903.enter(wl_output#1049) +[2617953.850] {Default Queue} discarded wl_surface#775.enter(wl_output#1049) +[2617953.854] {Default Queue} discarded wl_surface#135.enter(wl_output#1049) +[2617953.858] {Default Queue} discarded wl_surface#615.enter(wl_output#1049) +[2617953.872] {Default Queue} discarded wl_surface#231.enter(wl_output#1049) +[2617953.876] {Default Queue} discarded wl_surface#359.enter(wl_output#1049) +[2617953.880] {Default Queue} discarded wl_surface#583.enter(wl_output#1049) +[2617953.885] {Default Queue} discarded wl_surface#743.enter(wl_output#1049) +[2617953.889] {Default Queue} discarded wl_surface#967.enter(wl_output#1049) +[2617953.892] {Default Queue} discarded wl_surface#103.enter(wl_output#1049) +[2617953.900] {Default Queue} discarded wl_surface#327.enter(wl_output#1049) +[2617953.907] {Default Queue} discarded wl_surface#43.enter(wl_output#1049) +[2617953.911] {Default Queue} discarded wl_surface#807.enter(wl_output#1049) +[2617953.915] {Default Queue} discarded wl_surface#19.enter(wl_output#1049) +[2617953.919] {Default Queue} discarded wl_surface#199.enter(wl_output#1049) +[2617953.923] {Default Queue} discarded wl_surface#391.enter(wl_output#1049) +[2617953.927] {Default Queue} discarded wl_surface#935.enter(wl_output#1049) +[2617953.931] {Default Queue} discarded wl_surface#711.enter(wl_output#1049) +[2617953.935] {Default Queue} discarded wl_surface#871.enter(wl_output#1049) +[2617953.939] {Default Queue} discarded wl_surface#263.enter(wl_output#1049) +[2617953.943] {Default Queue} discarded wl_surface#551.enter(wl_output#1049) +[2617953.947] {Default Queue} discarded wl_surface#647.enter(wl_output#1049) +[2617953.951] {Default Queue} discarded wl_surface#71.enter(wl_output#1049) +[2617953.955] {Default Queue} discarded wl_surface#839.enter(wl_output#1049) +[2617953.959] {Default Queue} discarded wl_surface#487.enter(wl_output#1049) +[2617953.963] {Default Queue} discarded wl_surface#519.enter(wl_output#1049) +[2617953.967] {Default Queue} discarded wl_surface#295.enter(wl_output#1049) +[2617953.971] {Default Queue} discarded wl_surface#167.enter(wl_output#1049) +[2617953.974] {Default Queue} discarded wl_surface#679.enter(wl_output#1049) +[2617953.978] {Default Queue} wl_registry#1062.global(1, "wl_compositor", 6) +[2617953.983] {Default Queue} -> wl_registry#1062.bind(1, "wl_compositor", 1, new id [unknown]#1068) +[2617953.988] {Default Queue} wl_registry#1062.global(2, "wl_subcompositor", 1) +[2617953.993] {Default Queue} -> wl_registry#1062.bind(2, "wl_subcompositor", 1, new id [unknown]#1069) +[2617953.998] {Default Queue} wl_registry#1062.global(3, "xdg_wm_base", 6) +[2617954.002] {Default Queue} -> wl_registry#1062.bind(3, "xdg_wm_base", 1, new id [unknown]#1070) +[2617954.007] {Default Queue} wl_registry#1062.global(6, "zwlr_layer_shell_v1", 5) +[2617954.011] {Default Queue} wl_registry#1062.global(7, "ext_session_lock_manager_v1", 1) +[2617954.015] {Default Queue} wl_registry#1062.global(8, "wl_shm", 2) +[2617954.020] {Default Queue} -> wl_registry#1062.bind(8, "wl_shm", 1, new id [unknown]#1071) +[2617954.025] {Default Queue} -> wl_registry#1062.bind(8, "wl_shm", 1, new id [unknown]#1072) +[2617954.029] {Default Queue} -> wl_registry#1062.bind(8, "wl_shm", 1, new id [unknown]#1073) +[2617954.033] {Default Queue} wl_registry#1062.global(9, "zxdg_output_manager_v1", 3) +[2617954.037] {Default Queue} wl_registry#1062.global(10, "wp_fractional_scale_manager_v1", 1) +[2617954.042] {Default Queue} wl_registry#1062.global(11, "zwp_tablet_manager_v2", 1) +[2617954.046] {Default Queue} wl_registry#1062.global(12, "zwp_pointer_gestures_v1", 3) +[2617954.051] {Default Queue} wl_registry#1062.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617954.055] {Default Queue} -> wl_registry#1062.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1074) +[2617954.060] {Default Queue} wl_registry#1062.global(14, "zwp_pointer_constraints_v1", 1) +[2617954.064] {Default Queue} -> wl_registry#1062.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1075) +[2617954.068] {Default Queue} wl_registry#1062.global(15, "ext_idle_notifier_v1", 2) +[2617954.073] {Default Queue} wl_registry#1062.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617954.077] {Default Queue} wl_registry#1062.global(17, "wl_data_device_manager", 3) +[2617954.082] {Default Queue} -> wl_registry#1062.bind(17, "wl_data_device_manager", 2, new id [unknown]#1076) +[2617954.086] {Default Queue} -> wl_data_device_manager#1076.create_data_source(new id wl_data_source#1077) +[2617954.091] {Default Queue} -> wl_data_source#1077.offer("text/plain") +[2617954.095] {Default Queue} -> wl_data_source#1077.offer("text/plain;charset=utf-8") +[2617954.099] {Default Queue} -> wl_data_source#1077.offer("TEXT") +[2617954.103] {Default Queue} -> wl_data_source#1077.offer("STRING") +[2617954.110] {Default Queue} -> wl_data_source#1077.offer("UTF8_STRING") +[2617954.116] {Default Queue} wl_registry#1062.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617954.121] {Default Queue} -> wl_registry#1062.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1078) +[2617954.129] {Default Queue} -> zwp_primary_selection_device_manager_v1#1078.create_source(new id zwp_primary_selection_source_v1#1079) +[2617954.136] {Default Queue} -> zwp_primary_selection_source_v1#1079.offer("text/plain") +[2617954.140] {Default Queue} -> zwp_primary_selection_source_v1#1079.offer("text/plain;charset=utf-8") +[2617954.144] {Default Queue} -> zwp_primary_selection_source_v1#1079.offer("TEXT") +[2617954.148] {Default Queue} -> zwp_primary_selection_source_v1#1079.offer("STRING") +[2617954.152] {Default Queue} -> zwp_primary_selection_source_v1#1079.offer("UTF8_STRING") +[2617954.156] {Default Queue} wl_registry#1062.global(19, "zwlr_data_control_manager_v1", 2) +[2617954.160] {Default Queue} wl_registry#1062.global(20, "ext_data_control_manager_v1", 1) +[2617954.165] {Default Queue} wl_registry#1062.global(21, "wp_presentation", 2) +[2617954.169] {Default Queue} wl_registry#1062.global(22, "wp_security_context_manager_v1", 1) +[2617954.173] {Default Queue} wl_registry#1062.global(23, "zwp_text_input_manager_v3", 1) +[2617954.177] {Default Queue} wl_registry#1062.global(24, "zwp_input_method_manager_v2", 1) +[2617954.182] {Default Queue} wl_registry#1062.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617954.186] {Default Queue} wl_registry#1062.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617954.190] {Default Queue} wl_registry#1062.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617954.195] {Default Queue} wl_registry#1062.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617954.199] {Default Queue} wl_registry#1062.global(29, "ext_workspace_manager_v1", 1) +[2617954.204] {Default Queue} wl_registry#1062.global(30, "zwlr_output_manager_v1", 4) +[2617954.209] {Default Queue} wl_registry#1062.global(31, "zwlr_screencopy_manager_v1", 3) +[2617954.213] {Default Queue} wl_registry#1062.global(32, "wp_viewporter", 1) +[2617954.217] {Default Queue} wl_registry#1062.global(33, "zxdg_exporter_v2", 1) +[2617954.221] {Default Queue} wl_registry#1062.global(34, "zxdg_importer_v2", 1) +[2617954.226] {Default Queue} wl_registry#1062.global(36, "xdg_activation_v1", 1) +[2617954.230] {Default Queue} wl_registry#1062.global(37, "mutter_x11_interop", 1) +[2617954.234] {Default Queue} wl_registry#1062.global(38, "wl_seat", 9) +[2617954.239] {Default Queue} -> wl_registry#1062.bind(38, "wl_seat", 1, new id [unknown]#1080) +[2617954.244] {Default Queue} wl_registry#1062.global(39, "wp_cursor_shape_manager_v1", 2) +[2617954.248] {Default Queue} wl_registry#1062.global(40, "wl_output", 4) +[2617954.252] {Default Queue} -> wl_registry#1062.bind(40, "wl_output", 1, new id [unknown]#1081) +[2617954.257] {Default Queue} wl_callback#1063.done(0) +[2617954.261] {Default Queue} discarded wl_surface#1031.enter(wl_output#18) +[2617954.265] {Default Queue} discarded wl_surface#1031.enter(wl_output#57) +[2617954.269] {Default Queue} discarded wl_surface#1031.enter(wl_output#89) +[2617954.273] {Default Queue} discarded wl_surface#1031.enter(wl_output#121) +[2617954.277] {Default Queue} discarded wl_surface#1031.enter(wl_output#153) +[2617954.281] {Default Queue} discarded wl_surface#1031.enter(wl_output#185) +[2617954.285] {Default Queue} discarded wl_surface#1031.enter(wl_output#217) +[2617954.289] {Default Queue} discarded wl_surface#1031.enter(wl_output#249) +[2617954.292] {Default Queue} discarded wl_surface#1031.enter(wl_output#281) +[2617954.296] {Default Queue} discarded wl_surface#1031.enter(wl_output#313) +[2617954.300] {Default Queue} discarded wl_surface#1031.enter(wl_output#345) +[2617954.304] {Default Queue} discarded wl_surface#1031.enter(wl_output#377) +[2617954.308] {Default Queue} discarded wl_surface#1031.enter(wl_output#409) +[2617954.312] {Default Queue} discarded wl_surface#1031.enter(wl_output#441) +[2617954.318] {Default Queue} discarded wl_surface#1031.enter(wl_output#473) +[2617954.324] {Default Queue} discarded wl_surface#1031.enter(wl_output#505) +[2617954.328] {Default Queue} discarded wl_surface#1031.enter(wl_output#537) +[2617954.331] {Default Queue} discarded wl_surface#1031.enter(wl_output#569) +[2617954.335] {Default Queue} discarded wl_surface#1031.enter(wl_output#601) +[2617954.339] {Default Queue} discarded wl_surface#1031.enter(wl_output#633) +[2617954.343] {Default Queue} discarded wl_surface#1031.enter(wl_output#665) +[2617954.347] {Default Queue} discarded wl_surface#1031.enter(wl_output#697) +[2617954.351] {Default Queue} discarded wl_surface#1031.enter(wl_output#729) +[2617954.355] {Default Queue} discarded wl_surface#1031.enter(wl_output#761) +[2617954.359] {Default Queue} discarded wl_surface#1031.enter(wl_output#793) +[2617954.362] {Default Queue} discarded wl_surface#1031.enter(wl_output#825) +[2617954.366] {Default Queue} discarded wl_surface#1031.enter(wl_output#857) +[2617954.370] {Default Queue} discarded wl_surface#1031.enter(wl_output#889) +[2617954.374] {Default Queue} discarded wl_surface#1031.enter(wl_output#921) +[2617954.378] {Default Queue} discarded wl_surface#1031.enter(wl_output#953) +[2617954.382] {Default Queue} discarded wl_surface#1031.enter(wl_output#985) +[2617954.386] {Default Queue} discarded wl_surface#1031.enter(wl_output#1017) +[2617954.390] {Default Queue} discarded wl_surface#1031.enter(wl_output#1049) +[2617954.394] {Default Queue} -> wl_compositor#1036.create_surface(new id wl_surface#1063) +[2617954.398] {Default Queue} -> wl_subcompositor#1069.get_subsurface(new id wl_subsurface#1082, wl_surface#1063, wl_surface#1031) +[2617954.406] {Default Queue} -> wl_subsurface#1082.set_desync() +[2617954.410] {Default Queue} -> wl_subsurface#1082.set_position(0, 0) +[2617954.415] {Default Queue} -> wl_subsurface#1082.place_above(wl_surface#1031) +[2617954.457] {Default Queue} -> wl_shm#1071.create_pool(new id wl_shm_pool#1083, fd 174, 16) +[2617954.464] {Default Queue} -> wl_shm#1071.create_pool(new id wl_shm_pool#1084, fd 175, 16) +[2617954.468] {Default Queue} -> wl_shm_pool#1083.create_buffer(new id wl_buffer#1085, 0, 2, 2, 8, 0) +[2617954.473] {Default Queue} -> wl_shm_pool#1084.create_buffer(new id wl_buffer#1086, 0, 2, 2, 8, 0) +[2617954.483] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) +[2617954.488] {Default Queue} -> wl_surface#1063.commit() +[2617954.493] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) +[2617954.498] {Default Queue} -> wl_surface#1063.commit() +[2617954.502] {Default Queue} -> wl_compositor#1068.create_region(new id wl_region#1087) +[2617954.506] {Default Queue} -> wl_compositor#1068.create_region(new id wl_region#1088) +[2617954.511] {Default Queue} -> wl_region#1087.subtract(0, 0, 2, 2) +[2617954.515] {Default Queue} -> wl_region#1087.add(0, 0, 0, 0) +[2617954.520] {Default Queue} -> wl_surface#1063.set_opaque_region(wl_region#1088) +[2617954.524] {Default Queue} -> wl_surface#1063.set_input_region(wl_region#1087) +[2617954.528] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2617954.533] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2617954.540] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) +[2617954.544] {Default Queue} -> wl_surface#1063.commit() +[2617954.577] {Default Queue} -> wl_shm#1073.create_pool(new id wl_shm_pool#1089, fd 178, 640) +[2617954.583] {Default Queue} -> wl_shm#1073.create_pool(new id wl_shm_pool#1090, fd 179, 640) +[2617954.588] {Default Queue} -> wl_shm_pool#1089.create_buffer(new id wl_buffer#1091, 0, 10, 16, 40, 0) +[2617954.593] {Default Queue} -> wl_shm_pool#1090.create_buffer(new id wl_buffer#1092, 0, 10, 16, 40, 0) +[2617954.599] {Default Queue} -> wl_compositor#1068.create_surface(new id wl_surface#1093) +[2617954.604] {Default Queue} -> wl_surface#1093.attach(wl_buffer#1091, 0, 0) +[2617954.608] {Default Queue} -> wl_surface#1093.commit() +[2617954.613] {Default Queue} -> wl_surface#1093.attach(wl_buffer#1091, 0, 0) +[2617954.618] {Default Queue} -> wl_surface#1093.commit() +[2617954.627] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2617954.634] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2617954.641] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1094) +[2617954.646] {Default Queue} -> wl_display#1.sync(new id wl_callback#1095) +[2617958.723] {Display Queue} wl_display#1.delete_id(1095) +[2617958.738] {Default Queue} wl_keyboard#1064.keymap(1, fd 174, 68213) +[2617958.745] {Default Queue} wl_keyboard#1064.enter(566, wl_surface#19, array[0]) +[2617958.752] {Default Queue} wl_keyboard#1064.modifiers(566, 0, 0, 16, 0) +[2617958.759] {Default Queue} discarded wl_shm#1071.format(875709016) +[2617958.764] {Default Queue} discarded wl_shm#1071.format(1) +[2617958.770] {Default Queue} discarded wl_shm#1071.format(0) +[2617958.776] {Default Queue} discarded wl_shm#1071.format(875708993) +[2617958.781] {Default Queue} discarded wl_shm#1072.format(875709016) +[2617958.787] {Default Queue} discarded wl_shm#1072.format(1) +[2617958.792] {Default Queue} discarded wl_shm#1072.format(0) +[2617958.799] {Default Queue} discarded wl_shm#1072.format(875708993) +[2617958.804] {Default Queue} discarded wl_shm#1073.format(875709016) +[2617958.809] {Default Queue} discarded wl_shm#1073.format(1) +[2617958.815] {Default Queue} discarded wl_shm#1073.format(0) +[2617958.820] {Default Queue} discarded wl_shm#1073.format(875708993) +[2617958.825] {Default Queue} wl_seat#1080.capabilities(7) +[2617958.831] {Default Queue} -> wl_seat#1080.get_keyboard(new id wl_keyboard#1096) +[2617958.836] {Default Queue} -> wl_seat#1080.get_pointer(new id wl_pointer#1097) +[2617958.842] {Default Queue} -> wl_data_device_manager#1076.get_data_device(new id wl_data_device#1098, wl_seat#1080) +[2617958.849] {Default Queue} -> zwp_primary_selection_device_manager_v1#1078.get_device(new id zwp_primary_selection_device_v1#1099, wl_seat#1080) +[2617958.869] {Default Queue} wl_output#1081.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617958.877] {Default Queue} wl_output#1081.mode(3, 1280, 800, 60000) +[2617958.883] {Default Queue} discarded wl_surface#3.enter(wl_output#1081) +[2617958.889] {Default Queue} discarded wl_surface#999.enter(wl_output#1081) +[2617958.894] {Default Queue} discarded wl_surface#423.enter(wl_output#1081) +[2617958.900] {Default Queue} discarded wl_surface#455.enter(wl_output#1081) +[2617958.905] {Default Queue} discarded wl_surface#903.enter(wl_output#1081) +[2617958.910] {Default Queue} discarded wl_surface#775.enter(wl_output#1081) +[2617958.916] {Default Queue} discarded wl_surface#135.enter(wl_output#1081) +[2617958.922] {Default Queue} discarded wl_surface#1031.enter(wl_output#1081) +[2617958.927] {Default Queue} discarded wl_surface#615.enter(wl_output#1081) +[2617958.934] {Default Queue} discarded wl_surface#231.enter(wl_output#1081) +[2617958.939] {Default Queue} discarded wl_surface#359.enter(wl_output#1081) +[2617958.945] {Default Queue} discarded wl_surface#583.enter(wl_output#1081) +[2617958.951] {Default Queue} discarded wl_surface#743.enter(wl_output#1081) +[2617958.957] {Default Queue} discarded wl_surface#967.enter(wl_output#1081) +[2617958.962] {Default Queue} discarded wl_surface#103.enter(wl_output#1081) +[2617958.968] {Default Queue} discarded wl_surface#327.enter(wl_output#1081) +[2617958.974] {Default Queue} discarded wl_surface#43.enter(wl_output#1081) +[2617958.980] {Default Queue} discarded wl_surface#807.enter(wl_output#1081) +[2617958.985] {Default Queue} discarded wl_surface#19.enter(wl_output#1081) +[2617958.991] {Default Queue} discarded wl_surface#199.enter(wl_output#1081) +[2617958.997] {Default Queue} discarded wl_surface#391.enter(wl_output#1081) +[2617959.002] {Default Queue} discarded wl_surface#935.enter(wl_output#1081) +[2617959.008] {Default Queue} discarded wl_surface#711.enter(wl_output#1081) +[2617959.014] {Default Queue} discarded wl_surface#871.enter(wl_output#1081) +[2617959.019] {Default Queue} discarded wl_surface#263.enter(wl_output#1081) +[2617959.024] {Default Queue} discarded wl_surface#551.enter(wl_output#1081) +[2617959.030] {Default Queue} discarded wl_surface#647.enter(wl_output#1081) +[2617959.043] {Default Queue} discarded wl_surface#71.enter(wl_output#1081) +[2617959.050] {Default Queue} discarded wl_surface#839.enter(wl_output#1081) +[2617959.054] {Default Queue} discarded wl_surface#487.enter(wl_output#1081) +[2617959.058] {Default Queue} discarded wl_surface#519.enter(wl_output#1081) +[2617959.063] {Default Queue} discarded wl_surface#295.enter(wl_output#1081) +[2617959.068] {Default Queue} discarded wl_surface#167.enter(wl_output#1081) +[2617959.073] {Default Queue} discarded wl_surface#679.enter(wl_output#1081) +[2617959.079] {Default Queue} wl_registry#1094.global(1, "wl_compositor", 6) +[2617959.086] {Default Queue} -> wl_registry#1094.bind(1, "wl_compositor", 1, new id [unknown]#1100) +[2617959.092] {Default Queue} wl_registry#1094.global(2, "wl_subcompositor", 1) +[2617959.098] {Default Queue} -> wl_registry#1094.bind(2, "wl_subcompositor", 1, new id [unknown]#1101) +[2617959.104] {Default Queue} wl_registry#1094.global(3, "xdg_wm_base", 6) +[2617959.109] {Default Queue} -> wl_registry#1094.bind(3, "xdg_wm_base", 1, new id [unknown]#1102) +[2617959.114] {Default Queue} wl_registry#1094.global(6, "zwlr_layer_shell_v1", 5) +[2617959.118] {Default Queue} wl_registry#1094.global(7, "ext_session_lock_manager_v1", 1) +[2617959.122] {Default Queue} wl_registry#1094.global(8, "wl_shm", 2) +[2617959.127] {Default Queue} -> wl_registry#1094.bind(8, "wl_shm", 1, new id [unknown]#1103) +[2617959.132] {Default Queue} -> wl_registry#1094.bind(8, "wl_shm", 1, new id [unknown]#1104) +[2617959.137] {Default Queue} -> wl_registry#1094.bind(8, "wl_shm", 1, new id [unknown]#1105) +[2617959.141] {Default Queue} wl_registry#1094.global(9, "zxdg_output_manager_v1", 3) +[2617959.145] {Default Queue} wl_registry#1094.global(10, "wp_fractional_scale_manager_v1", 1) +[2617959.150] {Default Queue} wl_registry#1094.global(11, "zwp_tablet_manager_v2", 1) +[2617959.154] {Default Queue} wl_registry#1094.global(12, "zwp_pointer_gestures_v1", 3) +[2617959.158] {Default Queue} wl_registry#1094.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617959.163] {Default Queue} -> wl_registry#1094.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1106) +[2617959.167] {Default Queue} wl_registry#1094.global(14, "zwp_pointer_constraints_v1", 1) +[2617959.172] {Default Queue} -> wl_registry#1094.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1107) +[2617959.176] {Default Queue} wl_registry#1094.global(15, "ext_idle_notifier_v1", 2) +[2617959.180] {Default Queue} wl_registry#1094.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617959.185] {Default Queue} wl_registry#1094.global(17, "wl_data_device_manager", 3) +[2617959.189] {Default Queue} -> wl_registry#1094.bind(17, "wl_data_device_manager", 2, new id [unknown]#1108) +[2617959.194] {Default Queue} -> wl_data_device_manager#1108.create_data_source(new id wl_data_source#1109) +[2617959.199] {Default Queue} -> wl_data_source#1109.offer("text/plain") +[2617959.204] {Default Queue} -> wl_data_source#1109.offer("text/plain;charset=utf-8") +[2617959.208] {Default Queue} -> wl_data_source#1109.offer("TEXT") +[2617959.212] {Default Queue} -> wl_data_source#1109.offer("STRING") +[2617959.216] {Default Queue} -> wl_data_source#1109.offer("UTF8_STRING") +[2617959.220] {Default Queue} wl_registry#1094.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617959.225] {Default Queue} -> wl_registry#1094.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1110) +[2617959.233] {Default Queue} -> zwp_primary_selection_device_manager_v1#1110.create_source(new id zwp_primary_selection_source_v1#1111) +[2617959.241] {Default Queue} -> zwp_primary_selection_source_v1#1111.offer("text/plain") +[2617959.245] {Default Queue} -> zwp_primary_selection_source_v1#1111.offer("text/plain;charset=utf-8") +[2617959.249] {Default Queue} -> zwp_primary_selection_source_v1#1111.offer("TEXT") +[2617959.253] {Default Queue} -> zwp_primary_selection_source_v1#1111.offer("STRING") +[2617959.257] {Default Queue} -> zwp_primary_selection_source_v1#1111.offer("UTF8_STRING") +[2617959.265] {Default Queue} wl_registry#1094.global(19, "zwlr_data_control_manager_v1", 2) +[2617959.271] {Default Queue} wl_registry#1094.global(20, "ext_data_control_manager_v1", 1) +[2617959.275] {Default Queue} wl_registry#1094.global(21, "wp_presentation", 2) +[2617959.280] {Default Queue} wl_registry#1094.global(22, "wp_security_context_manager_v1", 1) +[2617959.284] {Default Queue} wl_registry#1094.global(23, "zwp_text_input_manager_v3", 1) +[2617959.288] {Default Queue} wl_registry#1094.global(24, "zwp_input_method_manager_v2", 1) +[2617959.293] {Default Queue} wl_registry#1094.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617959.297] {Default Queue} wl_registry#1094.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617959.301] {Default Queue} wl_registry#1094.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617959.305] {Default Queue} wl_registry#1094.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617959.310] {Default Queue} wl_registry#1094.global(29, "ext_workspace_manager_v1", 1) +[2617959.314] {Default Queue} wl_registry#1094.global(30, "zwlr_output_manager_v1", 4) +[2617959.318] {Default Queue} wl_registry#1094.global(31, "zwlr_screencopy_manager_v1", 3) +[2617959.323] {Default Queue} wl_registry#1094.global(32, "wp_viewporter", 1) +[2617959.327] {Default Queue} wl_registry#1094.global(33, "zxdg_exporter_v2", 1) +[2617959.331] {Default Queue} wl_registry#1094.global(34, "zxdg_importer_v2", 1) +[2617959.336] {Default Queue} wl_registry#1094.global(36, "xdg_activation_v1", 1) +[2617959.340] {Default Queue} wl_registry#1094.global(37, "mutter_x11_interop", 1) +[2617959.344] {Default Queue} wl_registry#1094.global(38, "wl_seat", 9) +[2617959.349] {Default Queue} -> wl_registry#1094.bind(38, "wl_seat", 1, new id [unknown]#1112) +[2617959.353] {Default Queue} wl_registry#1094.global(39, "wp_cursor_shape_manager_v1", 2) +[2617959.358] {Default Queue} wl_registry#1094.global(40, "wl_output", 4) +[2617959.362] {Default Queue} -> wl_registry#1094.bind(40, "wl_output", 1, new id [unknown]#1113) +[2617959.367] {Default Queue} wl_callback#1095.done(0) +[2617959.371] {Default Queue} discarded wl_surface#1063.enter(wl_output#18) +[2617959.375] {Default Queue} discarded wl_surface#1063.enter(wl_output#57) +[2617959.379] {Default Queue} discarded wl_surface#1063.enter(wl_output#89) +[2617959.383] {Default Queue} discarded wl_surface#1063.enter(wl_output#121) +[2617959.387] {Default Queue} discarded wl_surface#1063.enter(wl_output#153) +[2617959.391] {Default Queue} discarded wl_surface#1063.enter(wl_output#185) +[2617959.395] {Default Queue} discarded wl_surface#1063.enter(wl_output#217) +[2617959.398] {Default Queue} discarded wl_surface#1063.enter(wl_output#249) +[2617959.402] {Default Queue} discarded wl_surface#1063.enter(wl_output#281) +[2617959.406] {Default Queue} discarded wl_surface#1063.enter(wl_output#313) +[2617959.410] {Default Queue} discarded wl_surface#1063.enter(wl_output#345) +[2617959.414] {Default Queue} discarded wl_surface#1063.enter(wl_output#377) +[2617959.418] {Default Queue} discarded wl_surface#1063.enter(wl_output#409) +[2617959.422] {Default Queue} discarded wl_surface#1063.enter(wl_output#441) +[2617959.426] {Default Queue} discarded wl_surface#1063.enter(wl_output#473) +[2617959.430] {Default Queue} discarded wl_surface#1063.enter(wl_output#505) +[2617959.434] {Default Queue} discarded wl_surface#1063.enter(wl_output#537) +[2617959.438] {Default Queue} discarded wl_surface#1063.enter(wl_output#569) +[2617959.442] {Default Queue} discarded wl_surface#1063.enter(wl_output#601) +[2617959.445] {Default Queue} discarded wl_surface#1063.enter(wl_output#633) +[2617959.449] {Default Queue} discarded wl_surface#1063.enter(wl_output#665) +[2617959.453] {Default Queue} discarded wl_surface#1063.enter(wl_output#697) +[2617959.457] {Default Queue} discarded wl_surface#1063.enter(wl_output#729) +[2617959.462] {Default Queue} discarded wl_surface#1063.enter(wl_output#761) +[2617959.467] {Default Queue} discarded wl_surface#1063.enter(wl_output#793) +[2617959.472] {Default Queue} discarded wl_surface#1063.enter(wl_output#825) +[2617959.480] {Default Queue} discarded wl_surface#1063.enter(wl_output#857) +[2617959.487] {Default Queue} discarded wl_surface#1063.enter(wl_output#889) +[2617959.492] {Default Queue} discarded wl_surface#1063.enter(wl_output#921) +[2617959.497] {Default Queue} discarded wl_surface#1063.enter(wl_output#953) +[2617959.501] {Default Queue} discarded wl_surface#1063.enter(wl_output#985) +[2617959.506] {Default Queue} discarded wl_surface#1063.enter(wl_output#1017) +[2617959.511] {Default Queue} discarded wl_surface#1063.enter(wl_output#1049) +[2617959.516] {Default Queue} discarded wl_surface#1063.enter(wl_output#1081) +[2617959.521] {Default Queue} -> wl_compositor#1068.create_surface(new id wl_surface#1095) +[2617959.526] {Default Queue} -> wl_subcompositor#1101.get_subsurface(new id wl_subsurface#1114, wl_surface#1095, wl_surface#1063) +[2617959.536] {Default Queue} -> wl_subsurface#1114.set_desync() +[2617959.542] {Default Queue} -> wl_subsurface#1114.set_position(0, 0) +[2617959.547] {Default Queue} -> wl_subsurface#1114.place_above(wl_surface#1063) +[2617959.596] {Default Queue} -> wl_shm#1103.create_pool(new id wl_shm_pool#1115, fd 179, 16) +[2617959.603] {Default Queue} -> wl_shm#1103.create_pool(new id wl_shm_pool#1116, fd 180, 16) +[2617959.608] {Default Queue} -> wl_shm_pool#1115.create_buffer(new id wl_buffer#1117, 0, 2, 2, 8, 0) +[2617959.613] {Default Queue} -> wl_shm_pool#1116.create_buffer(new id wl_buffer#1118, 0, 2, 2, 8, 0) +[2617959.621] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) +[2617959.627] {Default Queue} -> wl_surface#1095.commit() +[2617959.632] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) +[2617959.637] {Default Queue} -> wl_surface#1095.commit() +[2617959.641] {Default Queue} -> wl_compositor#1100.create_region(new id wl_region#1119) +[2617959.648] {Default Queue} -> wl_compositor#1100.create_region(new id wl_region#1120) +[2617959.653] {Default Queue} -> wl_region#1119.subtract(0, 0, 2, 2) +[2617959.658] {Default Queue} -> wl_region#1119.add(0, 0, 0, 0) +[2617959.662] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2617959.666] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2617959.671] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) +[2617959.675] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2617959.683] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) +[2617959.687] {Default Queue} -> wl_surface#1095.commit() +[2617959.723] {Default Queue} -> wl_shm#1105.create_pool(new id wl_shm_pool#1121, fd 183, 640) +[2617959.729] {Default Queue} -> wl_shm#1105.create_pool(new id wl_shm_pool#1122, fd 184, 640) +[2617959.733] {Default Queue} -> wl_shm_pool#1121.create_buffer(new id wl_buffer#1123, 0, 10, 16, 40, 0) +[2617959.738] {Default Queue} -> wl_shm_pool#1122.create_buffer(new id wl_buffer#1124, 0, 10, 16, 40, 0) +[2617959.745] {Default Queue} -> wl_compositor#1100.create_surface(new id wl_surface#1125) +[2617959.749] {Default Queue} -> wl_surface#1125.attach(wl_buffer#1123, 0, 0) +[2617959.754] {Default Queue} -> wl_surface#1125.commit() +[2617959.759] {Default Queue} -> wl_surface#1125.attach(wl_buffer#1123, 0, 0) +[2617959.763] {Default Queue} -> wl_surface#1125.commit() +[2617959.769] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2617959.776] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1126) +[2617959.781] {Default Queue} -> wl_display#1.sync(new id wl_callback#1127) +[2617968.936] {Display Queue} wl_display#1.delete_id(1127) +[2617968.951] {Default Queue} wl_keyboard#1096.keymap(1, fd 179, 68213) +[2617968.959] {Default Queue} wl_keyboard#1096.enter(566, wl_surface#19, array[0]) +[2617968.966] {Default Queue} wl_keyboard#1096.modifiers(566, 0, 0, 16, 0) +[2617968.971] {Default Queue} discarded wl_shm#1103.format(875709016) +[2617968.975] {Default Queue} discarded wl_shm#1103.format(1) +[2617968.979] {Default Queue} discarded wl_shm#1103.format(0) +[2617968.983] {Default Queue} discarded wl_shm#1103.format(875708993) +[2617968.986] {Default Queue} discarded wl_shm#1104.format(875709016) +[2617968.994] {Default Queue} discarded wl_shm#1104.format(1) +[2617969.001] {Default Queue} discarded wl_shm#1104.format(0) +[2617969.006] {Default Queue} discarded wl_shm#1104.format(875708993) +[2617969.010] {Default Queue} discarded wl_shm#1105.format(875709016) +[2617969.014] {Default Queue} discarded wl_shm#1105.format(1) +[2617969.017] {Default Queue} discarded wl_shm#1105.format(0) +[2617969.021] {Default Queue} discarded wl_shm#1105.format(875708993) +[2617969.025] {Default Queue} wl_seat#1112.capabilities(7) +[2617969.030] {Default Queue} -> wl_seat#1112.get_keyboard(new id wl_keyboard#1128) +[2617969.035] {Default Queue} -> wl_seat#1112.get_pointer(new id wl_pointer#1129) +[2617969.040] {Default Queue} -> wl_data_device_manager#1108.get_data_device(new id wl_data_device#1130, wl_seat#1112) +[2617969.045] {Default Queue} -> zwp_primary_selection_device_manager_v1#1110.get_device(new id zwp_primary_selection_device_v1#1131, wl_seat#1112) +[2617969.053] {Default Queue} wl_output#1113.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617969.058] {Default Queue} wl_output#1113.mode(3, 1280, 800, 60000) +[2617969.063] {Default Queue} discarded wl_surface#3.enter(wl_output#1113) +[2617969.067] {Default Queue} discarded wl_surface#999.enter(wl_output#1113) +[2617969.071] {Default Queue} discarded wl_surface#423.enter(wl_output#1113) +[2617969.075] {Default Queue} discarded wl_surface#1063.enter(wl_output#1113) +[2617969.079] {Default Queue} discarded wl_surface#455.enter(wl_output#1113) +[2617969.083] {Default Queue} discarded wl_surface#903.enter(wl_output#1113) +[2617969.087] {Default Queue} discarded wl_surface#775.enter(wl_output#1113) +[2617969.090] {Default Queue} discarded wl_surface#135.enter(wl_output#1113) +[2617969.094] {Default Queue} discarded wl_surface#1031.enter(wl_output#1113) +[2617969.098] {Default Queue} discarded wl_surface#615.enter(wl_output#1113) +[2617969.102] {Default Queue} discarded wl_surface#231.enter(wl_output#1113) +[2617969.106] {Default Queue} discarded wl_surface#359.enter(wl_output#1113) +[2617969.110] {Default Queue} discarded wl_surface#583.enter(wl_output#1113) +[2617969.114] {Default Queue} discarded wl_surface#743.enter(wl_output#1113) +[2617969.118] {Default Queue} discarded wl_surface#967.enter(wl_output#1113) +[2617969.121] {Default Queue} discarded wl_surface#103.enter(wl_output#1113) +[2617969.125] {Default Queue} discarded wl_surface#327.enter(wl_output#1113) +[2617969.129] {Default Queue} discarded wl_surface#43.enter(wl_output#1113) +[2617969.133] {Default Queue} discarded wl_surface#807.enter(wl_output#1113) +[2617969.137] {Default Queue} discarded wl_surface#19.enter(wl_output#1113) +[2617969.141] {Default Queue} discarded wl_surface#199.enter(wl_output#1113) +[2617969.145] {Default Queue} discarded wl_surface#391.enter(wl_output#1113) +[2617969.149] {Default Queue} discarded wl_surface#935.enter(wl_output#1113) +[2617969.152] {Default Queue} discarded wl_surface#711.enter(wl_output#1113) +[2617969.156] {Default Queue} discarded wl_surface#871.enter(wl_output#1113) +[2617969.160] {Default Queue} discarded wl_surface#263.enter(wl_output#1113) +[2617969.164] {Default Queue} discarded wl_surface#551.enter(wl_output#1113) +[2617969.168] {Default Queue} discarded wl_surface#647.enter(wl_output#1113) +[2617969.172] {Default Queue} discarded wl_surface#71.enter(wl_output#1113) +[2617969.176] {Default Queue} discarded wl_surface#839.enter(wl_output#1113) +[2617969.180] {Default Queue} discarded wl_surface#487.enter(wl_output#1113) +[2617969.184] {Default Queue} discarded wl_surface#519.enter(wl_output#1113) +[2617969.188] {Default Queue} discarded wl_surface#295.enter(wl_output#1113) +[2617969.192] {Default Queue} discarded wl_surface#167.enter(wl_output#1113) +[2617969.196] {Default Queue} discarded wl_surface#679.enter(wl_output#1113) +[2617969.200] {Default Queue} wl_registry#1126.global(1, "wl_compositor", 6) +[2617969.205] {Default Queue} -> wl_registry#1126.bind(1, "wl_compositor", 1, new id [unknown]#1132) +[2617969.210] {Default Queue} wl_registry#1126.global(2, "wl_subcompositor", 1) +[2617969.218] {Default Queue} -> wl_registry#1126.bind(2, "wl_subcompositor", 1, new id [unknown]#1133) +[2617969.224] {Default Queue} wl_registry#1126.global(3, "xdg_wm_base", 6) +[2617969.229] {Default Queue} -> wl_registry#1126.bind(3, "xdg_wm_base", 1, new id [unknown]#1134) +[2617969.234] {Default Queue} wl_registry#1126.global(6, "zwlr_layer_shell_v1", 5) +[2617969.239] {Default Queue} wl_registry#1126.global(7, "ext_session_lock_manager_v1", 1) +[2617969.243] {Default Queue} wl_registry#1126.global(8, "wl_shm", 2) +[2617969.247] {Default Queue} -> wl_registry#1126.bind(8, "wl_shm", 1, new id [unknown]#1135) +[2617969.252] {Default Queue} -> wl_registry#1126.bind(8, "wl_shm", 1, new id [unknown]#1136) +[2617969.256] {Default Queue} -> wl_registry#1126.bind(8, "wl_shm", 1, new id [unknown]#1137) +[2617969.260] {Default Queue} wl_registry#1126.global(9, "zxdg_output_manager_v1", 3) +[2617969.265] {Default Queue} wl_registry#1126.global(10, "wp_fractional_scale_manager_v1", 1) +[2617969.269] {Default Queue} wl_registry#1126.global(11, "zwp_tablet_manager_v2", 1) +[2617969.274] {Default Queue} wl_registry#1126.global(12, "zwp_pointer_gestures_v1", 3) +[2617969.278] {Default Queue} wl_registry#1126.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617969.283] {Default Queue} -> wl_registry#1126.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1138) +[2617969.288] {Default Queue} wl_registry#1126.global(14, "zwp_pointer_constraints_v1", 1) +[2617969.292] {Default Queue} -> wl_registry#1126.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1139) +[2617969.297] {Default Queue} wl_registry#1126.global(15, "ext_idle_notifier_v1", 2) +[2617969.301] {Default Queue} wl_registry#1126.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617969.305] {Default Queue} wl_registry#1126.global(17, "wl_data_device_manager", 3) +[2617969.310] {Default Queue} -> wl_registry#1126.bind(17, "wl_data_device_manager", 2, new id [unknown]#1140) +[2617969.314] {Default Queue} -> wl_data_device_manager#1140.create_data_source(new id wl_data_source#1141) +[2617969.319] {Default Queue} -> wl_data_source#1141.offer("text/plain") +[2617969.323] {Default Queue} -> wl_data_source#1141.offer("text/plain;charset=utf-8") +[2617969.327] {Default Queue} -> wl_data_source#1141.offer("TEXT") +[2617969.332] {Default Queue} -> wl_data_source#1141.offer("STRING") +[2617969.336] {Default Queue} -> wl_data_source#1141.offer("UTF8_STRING") +[2617969.340] {Default Queue} wl_registry#1126.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617969.345] {Default Queue} -> wl_registry#1126.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1142) +[2617969.354] {Default Queue} -> zwp_primary_selection_device_manager_v1#1142.create_source(new id zwp_primary_selection_source_v1#1143) +[2617969.362] {Default Queue} -> zwp_primary_selection_source_v1#1143.offer("text/plain") +[2617969.366] {Default Queue} -> zwp_primary_selection_source_v1#1143.offer("text/plain;charset=utf-8") +[2617969.370] {Default Queue} -> zwp_primary_selection_source_v1#1143.offer("TEXT") +[2617969.374] {Default Queue} -> zwp_primary_selection_source_v1#1143.offer("STRING") +[2617969.378] {Default Queue} -> zwp_primary_selection_source_v1#1143.offer("UTF8_STRING") +[2617969.383] {Default Queue} wl_registry#1126.global(19, "zwlr_data_control_manager_v1", 2) +[2617969.387] {Default Queue} wl_registry#1126.global(20, "ext_data_control_manager_v1", 1) +[2617969.391] {Default Queue} wl_registry#1126.global(21, "wp_presentation", 2) +[2617969.396] {Default Queue} wl_registry#1126.global(22, "wp_security_context_manager_v1", 1) +[2617969.401] {Default Queue} wl_registry#1126.global(23, "zwp_text_input_manager_v3", 1) +[2617969.405] {Default Queue} wl_registry#1126.global(24, "zwp_input_method_manager_v2", 1) +[2617969.409] {Default Queue} wl_registry#1126.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617969.414] {Default Queue} wl_registry#1126.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617969.418] {Default Queue} wl_registry#1126.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617969.425] {Default Queue} wl_registry#1126.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617969.431] {Default Queue} wl_registry#1126.global(29, "ext_workspace_manager_v1", 1) +[2617969.436] {Default Queue} wl_registry#1126.global(30, "zwlr_output_manager_v1", 4) +[2617969.440] {Default Queue} wl_registry#1126.global(31, "zwlr_screencopy_manager_v1", 3) +[2617969.444] {Default Queue} wl_registry#1126.global(32, "wp_viewporter", 1) +[2617969.449] {Default Queue} wl_registry#1126.global(33, "zxdg_exporter_v2", 1) +[2617969.453] {Default Queue} wl_registry#1126.global(34, "zxdg_importer_v2", 1) +[2617969.457] {Default Queue} wl_registry#1126.global(36, "xdg_activation_v1", 1) +[2617969.462] {Default Queue} wl_registry#1126.global(37, "mutter_x11_interop", 1) +[2617969.466] {Default Queue} wl_registry#1126.global(38, "wl_seat", 9) +[2617969.470] {Default Queue} -> wl_registry#1126.bind(38, "wl_seat", 1, new id [unknown]#1144) +[2617969.475] {Default Queue} wl_registry#1126.global(39, "wp_cursor_shape_manager_v1", 2) +[2617969.479] {Default Queue} wl_registry#1126.global(40, "wl_output", 4) +[2617969.484] {Default Queue} -> wl_registry#1126.bind(40, "wl_output", 1, new id [unknown]#1145) +[2617969.488] {Default Queue} wl_callback#1127.done(0) +[2617969.493] {Default Queue} discarded wl_surface#1095.enter(wl_output#18) +[2617969.497] {Default Queue} discarded wl_surface#1095.enter(wl_output#57) +[2617969.501] {Default Queue} discarded wl_surface#1095.enter(wl_output#89) +[2617969.505] {Default Queue} discarded wl_surface#1095.enter(wl_output#121) +[2617969.509] {Default Queue} discarded wl_surface#1095.enter(wl_output#153) +[2617969.513] {Default Queue} discarded wl_surface#1095.enter(wl_output#185) +[2617969.517] {Default Queue} discarded wl_surface#1095.enter(wl_output#217) +[2617969.521] {Default Queue} discarded wl_surface#1095.enter(wl_output#249) +[2617969.525] {Default Queue} discarded wl_surface#1095.enter(wl_output#281) +[2617969.528] {Default Queue} discarded wl_surface#1095.enter(wl_output#313) +[2617969.532] {Default Queue} discarded wl_surface#1095.enter(wl_output#345) +[2617969.536] {Default Queue} discarded wl_surface#1095.enter(wl_output#377) +[2617969.540] {Default Queue} discarded wl_surface#1095.enter(wl_output#409) +[2617969.544] {Default Queue} discarded wl_surface#1095.enter(wl_output#441) +[2617969.548] {Default Queue} discarded wl_surface#1095.enter(wl_output#473) +[2617969.553] {Default Queue} discarded wl_surface#1095.enter(wl_output#505) +[2617969.557] {Default Queue} discarded wl_surface#1095.enter(wl_output#537) +[2617969.560] {Default Queue} discarded wl_surface#1095.enter(wl_output#569) +[2617969.564] {Default Queue} discarded wl_surface#1095.enter(wl_output#601) +[2617969.568] {Default Queue} discarded wl_surface#1095.enter(wl_output#633) +[2617969.573] {Default Queue} discarded wl_surface#1095.enter(wl_output#665) +[2617969.577] {Default Queue} discarded wl_surface#1095.enter(wl_output#697) +[2617969.581] {Default Queue} discarded wl_surface#1095.enter(wl_output#729) +[2617969.585] {Default Queue} discarded wl_surface#1095.enter(wl_output#761) +[2617969.589] {Default Queue} discarded wl_surface#1095.enter(wl_output#793) +[2617969.593] {Default Queue} discarded wl_surface#1095.enter(wl_output#825) +[2617969.596] {Default Queue} discarded wl_surface#1095.enter(wl_output#857) +[2617969.600] {Default Queue} discarded wl_surface#1095.enter(wl_output#889) +[2617969.604] {Default Queue} discarded wl_surface#1095.enter(wl_output#921) +[2617969.608] {Default Queue} discarded wl_surface#1095.enter(wl_output#953) +[2617969.612] {Default Queue} discarded wl_surface#1095.enter(wl_output#985) +[2617969.616] {Default Queue} discarded wl_surface#1095.enter(wl_output#1017) +[2617969.621] {Default Queue} discarded wl_surface#1095.enter(wl_output#1049) +[2617969.625] {Default Queue} discarded wl_surface#1095.enter(wl_output#1081) +[2617969.629] {Default Queue} discarded wl_surface#1095.enter(wl_output#1113) +[2617969.633] {Default Queue} -> wl_compositor#1068.create_surface(new id wl_surface#1127) +[2617969.638] {Default Queue} -> wl_subcompositor#1133.get_subsurface(new id wl_subsurface#1146, wl_surface#1127, wl_surface#1063) +[2617969.651] {Default Queue} -> wl_subsurface#1146.set_desync() +[2617969.656] {Default Queue} -> wl_subsurface#1146.set_position(0, 0) +[2617969.660] {Default Queue} -> wl_subsurface#1146.place_above(wl_surface#1063) +[2617969.705] {Default Queue} -> wl_shm#1135.create_pool(new id wl_shm_pool#1147, fd 184, 16) +[2617969.711] {Default Queue} -> wl_shm#1135.create_pool(new id wl_shm_pool#1148, fd 185, 16) +[2617969.716] {Default Queue} -> wl_shm_pool#1147.create_buffer(new id wl_buffer#1149, 0, 2, 2, 8, 0) +[2617969.721] {Default Queue} -> wl_shm_pool#1148.create_buffer(new id wl_buffer#1150, 0, 2, 2, 8, 0) +[2617969.729] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) +[2617969.733] {Default Queue} -> wl_surface#1127.commit() +[2617969.738] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) +[2617969.743] {Default Queue} -> wl_surface#1127.commit() +[2617969.747] {Default Queue} -> wl_compositor#1132.create_region(new id wl_region#1151) +[2617969.751] {Default Queue} -> wl_compositor#1132.create_region(new id wl_region#1152) +[2617969.755] {Default Queue} -> wl_region#1151.subtract(0, 0, 2, 2) +[2617969.760] {Default Queue} -> wl_region#1151.add(0, 0, 0, 0) +[2617969.764] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2617969.769] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2617969.773] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) +[2617969.777] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2617969.785] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) +[2617969.789] {Default Queue} -> wl_surface#1127.commit() +[2617969.822] {Default Queue} -> wl_shm#1137.create_pool(new id wl_shm_pool#1153, fd 188, 640) +[2617969.830] {Default Queue} -> wl_shm#1137.create_pool(new id wl_shm_pool#1154, fd 189, 640) +[2617969.835] {Default Queue} -> wl_shm_pool#1153.create_buffer(new id wl_buffer#1155, 0, 10, 16, 40, 0) +[2617969.839] {Default Queue} -> wl_shm_pool#1154.create_buffer(new id wl_buffer#1156, 0, 10, 16, 40, 0) +[2617969.846] {Default Queue} -> wl_compositor#1132.create_surface(new id wl_surface#1157) +[2617969.851] {Default Queue} -> wl_surface#1157.attach(wl_buffer#1155, 0, 0) +[2617969.855] {Default Queue} -> wl_surface#1157.commit() +[2617969.868] {Default Queue} -> wl_surface#1157.attach(wl_buffer#1155, 0, 0) +[2617969.873] {Default Queue} -> wl_surface#1157.commit() +[2617969.878] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2617969.885] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1158) +[2617969.890] {Default Queue} -> wl_display#1.sync(new id wl_callback#1159) +[2617973.847] {Display Queue} wl_display#1.delete_id(1159) +[2617973.873] {Default Queue} wl_keyboard#1128.keymap(1, fd 184, 68213) +[2617973.882] {Default Queue} wl_keyboard#1128.enter(566, wl_surface#19, array[0]) +[2617973.891] {Default Queue} wl_keyboard#1128.modifiers(566, 0, 0, 16, 0) +[2617973.899] {Default Queue} discarded wl_shm#1135.format(875709016) +[2617973.906] {Default Queue} discarded wl_shm#1135.format(1) +[2617973.913] {Default Queue} discarded wl_shm#1135.format(0) +[2617973.922] {Default Queue} discarded wl_shm#1135.format(875708993) +[2617973.929] {Default Queue} discarded wl_shm#1136.format(875709016) +[2617973.936] {Default Queue} discarded wl_shm#1136.format(1) +[2617973.942] {Default Queue} discarded wl_shm#1136.format(0) +[2617973.950] {Default Queue} discarded wl_shm#1136.format(875708993) +[2617973.958] {Default Queue} discarded wl_shm#1137.format(875709016) +[2617973.964] {Default Queue} discarded wl_shm#1137.format(1) +[2617973.972] {Default Queue} discarded wl_shm#1137.format(0) +[2617973.979] {Default Queue} discarded wl_shm#1137.format(875708993) +[2617973.986] {Default Queue} wl_seat#1144.capabilities(7) +[2617973.993] {Default Queue} -> wl_seat#1144.get_keyboard(new id wl_keyboard#1160) +[2617974.000] {Default Queue} -> wl_seat#1144.get_pointer(new id wl_pointer#1161) +[2617974.008] {Default Queue} -> wl_data_device_manager#1140.get_data_device(new id wl_data_device#1162, wl_seat#1144) +[2617974.026] {Default Queue} -> zwp_primary_selection_device_manager_v1#1142.get_device(new id zwp_primary_selection_device_v1#1163, wl_seat#1144) +[2617974.047] {Default Queue} wl_output#1145.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617974.056] {Default Queue} wl_output#1145.mode(3, 1280, 800, 60000) +[2617974.063] {Default Queue} discarded wl_surface#3.enter(wl_output#1145) +[2617974.070] {Default Queue} discarded wl_surface#999.enter(wl_output#1145) +[2617974.077] {Default Queue} discarded wl_surface#423.enter(wl_output#1145) +[2617974.084] {Default Queue} discarded wl_surface#1063.enter(wl_output#1145) +[2617974.090] {Default Queue} discarded wl_surface#455.enter(wl_output#1145) +[2617974.098] {Default Queue} discarded wl_surface#903.enter(wl_output#1145) +[2617974.105] {Default Queue} discarded wl_surface#775.enter(wl_output#1145) +[2617974.112] {Default Queue} discarded wl_surface#135.enter(wl_output#1145) +[2617974.119] {Default Queue} discarded wl_surface#1031.enter(wl_output#1145) +[2617974.126] {Default Queue} discarded wl_surface#615.enter(wl_output#1145) +[2617974.133] {Default Queue} discarded wl_surface#231.enter(wl_output#1145) +[2617974.140] {Default Queue} discarded wl_surface#359.enter(wl_output#1145) +[2617974.148] {Default Queue} discarded wl_surface#583.enter(wl_output#1145) +[2617974.156] {Default Queue} discarded wl_surface#743.enter(wl_output#1145) +[2617974.164] {Default Queue} discarded wl_surface#967.enter(wl_output#1145) +[2617974.172] {Default Queue} discarded wl_surface#103.enter(wl_output#1145) +[2617974.180] {Default Queue} discarded wl_surface#327.enter(wl_output#1145) +[2617974.187] {Default Queue} discarded wl_surface#43.enter(wl_output#1145) +[2617974.197] {Default Queue} discarded wl_surface#807.enter(wl_output#1145) +[2617974.204] {Default Queue} discarded wl_surface#19.enter(wl_output#1145) +[2617974.211] {Default Queue} discarded wl_surface#199.enter(wl_output#1145) +[2617974.219] {Default Queue} discarded wl_surface#391.enter(wl_output#1145) +[2617974.225] {Default Queue} discarded wl_surface#935.enter(wl_output#1145) +[2617974.232] {Default Queue} discarded wl_surface#711.enter(wl_output#1145) +[2617974.239] {Default Queue} discarded wl_surface#871.enter(wl_output#1145) +[2617974.246] {Default Queue} discarded wl_surface#263.enter(wl_output#1145) +[2617974.252] {Default Queue} discarded wl_surface#551.enter(wl_output#1145) +[2617974.257] {Default Queue} discarded wl_surface#647.enter(wl_output#1145) +[2617974.262] {Default Queue} discarded wl_surface#71.enter(wl_output#1145) +[2617974.268] {Default Queue} discarded wl_surface#839.enter(wl_output#1145) +[2617974.272] {Default Queue} discarded wl_surface#1095.enter(wl_output#1145) +[2617974.278] {Default Queue} discarded wl_surface#487.enter(wl_output#1145) +[2617974.285] {Default Queue} discarded wl_surface#519.enter(wl_output#1145) +[2617974.292] {Default Queue} discarded wl_surface#295.enter(wl_output#1145) +[2617974.298] {Default Queue} discarded wl_surface#167.enter(wl_output#1145) +[2617974.305] {Default Queue} discarded wl_surface#679.enter(wl_output#1145) +[2617974.312] {Default Queue} wl_registry#1158.global(1, "wl_compositor", 6) +[2617974.321] {Default Queue} -> wl_registry#1158.bind(1, "wl_compositor", 1, new id [unknown]#1164) +[2617974.330] {Default Queue} wl_registry#1158.global(2, "wl_subcompositor", 1) +[2617974.336] {Default Queue} -> wl_registry#1158.bind(2, "wl_subcompositor", 1, new id [unknown]#1165) +[2617974.342] {Default Queue} wl_registry#1158.global(3, "xdg_wm_base", 6) +[2617974.348] {Default Queue} -> wl_registry#1158.bind(3, "xdg_wm_base", 1, new id [unknown]#1166) +[2617974.354] {Default Queue} wl_registry#1158.global(6, "zwlr_layer_shell_v1", 5) +[2617974.359] {Default Queue} wl_registry#1158.global(7, "ext_session_lock_manager_v1", 1) +[2617974.365] {Default Queue} wl_registry#1158.global(8, "wl_shm", 2) +[2617974.371] {Default Queue} -> wl_registry#1158.bind(8, "wl_shm", 1, new id [unknown]#1167) +[2617974.376] {Default Queue} -> wl_registry#1158.bind(8, "wl_shm", 1, new id [unknown]#1168) +[2617974.387] {Default Queue} -> wl_registry#1158.bind(8, "wl_shm", 1, new id [unknown]#1169) +[2617974.395] {Default Queue} wl_registry#1158.global(9, "zxdg_output_manager_v1", 3) +[2617974.401] {Default Queue} wl_registry#1158.global(10, "wp_fractional_scale_manager_v1", 1) +[2617974.406] {Default Queue} wl_registry#1158.global(11, "zwp_tablet_manager_v2", 1) +[2617974.412] {Default Queue} wl_registry#1158.global(12, "zwp_pointer_gestures_v1", 3) +[2617974.417] {Default Queue} wl_registry#1158.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617974.423] {Default Queue} -> wl_registry#1158.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1170) +[2617974.428] {Default Queue} wl_registry#1158.global(14, "zwp_pointer_constraints_v1", 1) +[2617974.434] {Default Queue} -> wl_registry#1158.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1171) +[2617974.439] {Default Queue} wl_registry#1158.global(15, "ext_idle_notifier_v1", 2) +[2617974.445] {Default Queue} wl_registry#1158.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617974.450] {Default Queue} wl_registry#1158.global(17, "wl_data_device_manager", 3) +[2617974.456] {Default Queue} -> wl_registry#1158.bind(17, "wl_data_device_manager", 2, new id [unknown]#1172) +[2617974.462] {Default Queue} -> wl_data_device_manager#1172.create_data_source(new id wl_data_source#1173) +[2617974.468] {Default Queue} -> wl_data_source#1173.offer("text/plain") +[2617974.473] {Default Queue} -> wl_data_source#1173.offer("text/plain;charset=utf-8") +[2617974.478] {Default Queue} -> wl_data_source#1173.offer("TEXT") +[2617974.484] {Default Queue} -> wl_data_source#1173.offer("STRING") +[2617974.489] {Default Queue} -> wl_data_source#1173.offer("UTF8_STRING") +[2617974.494] {Default Queue} wl_registry#1158.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617974.500] {Default Queue} -> wl_registry#1158.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1174) +[2617974.510] {Default Queue} -> zwp_primary_selection_device_manager_v1#1174.create_source(new id zwp_primary_selection_source_v1#1175) +[2617974.519] {Default Queue} -> zwp_primary_selection_source_v1#1175.offer("text/plain") +[2617974.525] {Default Queue} -> zwp_primary_selection_source_v1#1175.offer("text/plain;charset=utf-8") +[2617974.530] {Default Queue} -> zwp_primary_selection_source_v1#1175.offer("TEXT") +[2617974.535] {Default Queue} -> zwp_primary_selection_source_v1#1175.offer("STRING") +[2617974.540] {Default Queue} -> zwp_primary_selection_source_v1#1175.offer("UTF8_STRING") +[2617974.545] {Default Queue} wl_registry#1158.global(19, "zwlr_data_control_manager_v1", 2) +[2617974.551] {Default Queue} wl_registry#1158.global(20, "ext_data_control_manager_v1", 1) +[2617974.556] {Default Queue} wl_registry#1158.global(21, "wp_presentation", 2) +[2617974.561] {Default Queue} wl_registry#1158.global(22, "wp_security_context_manager_v1", 1) +[2617974.567] {Default Queue} wl_registry#1158.global(23, "zwp_text_input_manager_v3", 1) +[2617974.572] {Default Queue} wl_registry#1158.global(24, "zwp_input_method_manager_v2", 1) +[2617974.578] {Default Queue} wl_registry#1158.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617974.583] {Default Queue} wl_registry#1158.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617974.588] {Default Queue} wl_registry#1158.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617974.594] {Default Queue} wl_registry#1158.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617974.599] {Default Queue} wl_registry#1158.global(29, "ext_workspace_manager_v1", 1) +[2617974.604] {Default Queue} wl_registry#1158.global(30, "zwlr_output_manager_v1", 4) +[2617974.610] {Default Queue} wl_registry#1158.global(31, "zwlr_screencopy_manager_v1", 3) +[2617974.615] {Default Queue} wl_registry#1158.global(32, "wp_viewporter", 1) +[2617974.620] {Default Queue} wl_registry#1158.global(33, "zxdg_exporter_v2", 1) +[2617974.626] {Default Queue} wl_registry#1158.global(34, "zxdg_importer_v2", 1) +[2617974.632] {Default Queue} wl_registry#1158.global(36, "xdg_activation_v1", 1) +[2617974.641] {Default Queue} wl_registry#1158.global(37, "mutter_x11_interop", 1) +[2617974.648] {Default Queue} wl_registry#1158.global(38, "wl_seat", 9) +[2617974.654] {Default Queue} -> wl_registry#1158.bind(38, "wl_seat", 1, new id [unknown]#1176) +[2617974.660] {Default Queue} wl_registry#1158.global(39, "wp_cursor_shape_manager_v1", 2) +[2617974.664] {Default Queue} wl_registry#1158.global(40, "wl_output", 4) +[2617974.668] {Default Queue} -> wl_registry#1158.bind(40, "wl_output", 1, new id [unknown]#1177) +[2617974.674] {Default Queue} wl_callback#1159.done(0) +[2617974.678] {Default Queue} discarded wl_surface#1127.enter(wl_output#18) +[2617974.682] {Default Queue} discarded wl_surface#1127.enter(wl_output#57) +[2617974.687] {Default Queue} discarded wl_surface#1127.enter(wl_output#89) +[2617974.690] {Default Queue} discarded wl_surface#1127.enter(wl_output#121) +[2617974.695] {Default Queue} discarded wl_surface#1127.enter(wl_output#153) +[2617974.700] {Default Queue} discarded wl_surface#1127.enter(wl_output#185) +[2617974.706] {Default Queue} discarded wl_surface#1127.enter(wl_output#217) +[2617974.711] {Default Queue} discarded wl_surface#1127.enter(wl_output#249) +[2617974.716] {Default Queue} discarded wl_surface#1127.enter(wl_output#281) +[2617974.722] {Default Queue} discarded wl_surface#1127.enter(wl_output#313) +[2617974.726] {Default Queue} discarded wl_surface#1127.enter(wl_output#345) +[2617974.730] {Default Queue} discarded wl_surface#1127.enter(wl_output#377) +[2617974.734] {Default Queue} discarded wl_surface#1127.enter(wl_output#409) +[2617974.738] {Default Queue} discarded wl_surface#1127.enter(wl_output#441) +[2617974.742] {Default Queue} discarded wl_surface#1127.enter(wl_output#473) +[2617974.746] {Default Queue} discarded wl_surface#1127.enter(wl_output#505) +[2617974.749] {Default Queue} discarded wl_surface#1127.enter(wl_output#537) +[2617974.753] {Default Queue} discarded wl_surface#1127.enter(wl_output#569) +[2617974.757] {Default Queue} discarded wl_surface#1127.enter(wl_output#601) +[2617974.761] {Default Queue} discarded wl_surface#1127.enter(wl_output#633) +[2617974.765] {Default Queue} discarded wl_surface#1127.enter(wl_output#665) +[2617974.769] {Default Queue} discarded wl_surface#1127.enter(wl_output#697) +[2617974.773] {Default Queue} discarded wl_surface#1127.enter(wl_output#729) +[2617974.777] {Default Queue} discarded wl_surface#1127.enter(wl_output#761) +[2617974.780] {Default Queue} discarded wl_surface#1127.enter(wl_output#793) +[2617974.784] {Default Queue} discarded wl_surface#1127.enter(wl_output#825) +[2617974.788] {Default Queue} discarded wl_surface#1127.enter(wl_output#857) +[2617974.792] {Default Queue} discarded wl_surface#1127.enter(wl_output#889) +[2617974.796] {Default Queue} discarded wl_surface#1127.enter(wl_output#921) +[2617974.800] {Default Queue} discarded wl_surface#1127.enter(wl_output#953) +[2617974.804] {Default Queue} discarded wl_surface#1127.enter(wl_output#985) +[2617974.807] {Default Queue} discarded wl_surface#1127.enter(wl_output#1017) +[2617974.811] {Default Queue} discarded wl_surface#1127.enter(wl_output#1049) +[2617974.815] {Default Queue} discarded wl_surface#1127.enter(wl_output#1081) +[2617974.819] {Default Queue} discarded wl_surface#1127.enter(wl_output#1113) +[2617974.823] {Default Queue} discarded wl_surface#1127.enter(wl_output#1145) +[2617974.828] {Default Queue} -> wl_compositor#1068.create_surface(new id wl_surface#1159) +[2617974.832] {Default Queue} -> wl_subcompositor#1165.get_subsurface(new id wl_subsurface#1178, wl_surface#1159, wl_surface#1063) +[2617974.841] {Default Queue} -> wl_subsurface#1178.set_desync() +[2617974.845] {Default Queue} -> wl_subsurface#1178.set_position(0, 0) +[2617974.849] {Default Queue} -> wl_subsurface#1178.place_above(wl_surface#1063) +[2617974.899] {Default Queue} -> wl_shm#1167.create_pool(new id wl_shm_pool#1179, fd 189, 16) +[2617974.906] {Default Queue} -> wl_shm#1167.create_pool(new id wl_shm_pool#1180, fd 190, 16) +[2617974.910] {Default Queue} -> wl_shm_pool#1179.create_buffer(new id wl_buffer#1181, 0, 2, 2, 8, 0) +[2617974.919] {Default Queue} -> wl_shm_pool#1180.create_buffer(new id wl_buffer#1182, 0, 2, 2, 8, 0) +[2617974.930] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) +[2617974.934] {Default Queue} -> wl_surface#1159.commit() +[2617974.939] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) +[2617974.944] {Default Queue} -> wl_surface#1159.commit() +[2617974.948] {Default Queue} -> wl_compositor#1164.create_region(new id wl_region#1183) +[2617974.952] {Default Queue} -> wl_compositor#1164.create_region(new id wl_region#1184) +[2617974.956] {Default Queue} -> wl_region#1183.subtract(0, 0, 2, 2) +[2617974.960] {Default Queue} -> wl_region#1183.add(0, 0, 0, 0) +[2617974.965] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2617974.969] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2617974.973] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) +[2617974.977] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2617974.985] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) +[2617974.989] {Default Queue} -> wl_surface#1159.commit() +[2617975.024] {Default Queue} -> wl_shm#1169.create_pool(new id wl_shm_pool#1185, fd 193, 640) +[2617975.031] {Default Queue} -> wl_shm#1169.create_pool(new id wl_shm_pool#1186, fd 194, 640) +[2617975.035] {Default Queue} -> wl_shm_pool#1185.create_buffer(new id wl_buffer#1187, 0, 10, 16, 40, 0) +[2617975.040] {Default Queue} -> wl_shm_pool#1186.create_buffer(new id wl_buffer#1188, 0, 10, 16, 40, 0) +[2617975.047] {Default Queue} -> wl_compositor#1164.create_surface(new id wl_surface#1189) +[2617975.051] {Default Queue} -> wl_surface#1189.attach(wl_buffer#1187, 0, 0) +[2617975.056] {Default Queue} -> wl_surface#1189.commit() +[2617975.061] {Default Queue} -> wl_surface#1189.attach(wl_buffer#1187, 0, 0) +[2617975.065] {Default Queue} -> wl_surface#1189.commit() +[2617975.070] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2617975.077] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1190) +[2617975.083] {Default Queue} -> wl_display#1.sync(new id wl_callback#1191) +[2617983.842] {Display Queue} wl_display#1.delete_id(1191) +[2617983.869] {Default Queue} wl_keyboard#1160.keymap(1, fd 189, 68213) +[2617983.877] {Default Queue} wl_keyboard#1160.enter(566, wl_surface#19, array[0]) +[2617983.884] {Default Queue} wl_keyboard#1160.modifiers(566, 0, 0, 16, 0) +[2617983.889] {Default Queue} discarded wl_shm#1167.format(875709016) +[2617983.894] {Default Queue} discarded wl_shm#1167.format(1) +[2617983.898] {Default Queue} discarded wl_shm#1167.format(0) +[2617983.902] {Default Queue} discarded wl_shm#1167.format(875708993) +[2617983.906] {Default Queue} discarded wl_shm#1168.format(875709016) +[2617983.910] {Default Queue} discarded wl_shm#1168.format(1) +[2617983.914] {Default Queue} discarded wl_shm#1168.format(0) +[2617983.918] {Default Queue} discarded wl_shm#1168.format(875708993) +[2617983.922] {Default Queue} discarded wl_shm#1169.format(875709016) +[2617983.926] {Default Queue} discarded wl_shm#1169.format(1) +[2617983.930] {Default Queue} discarded wl_shm#1169.format(0) +[2617983.934] {Default Queue} discarded wl_shm#1169.format(875708993) +[2617983.937] {Default Queue} wl_seat#1176.capabilities(7) +[2617983.942] {Default Queue} -> wl_seat#1176.get_keyboard(new id wl_keyboard#1192) +[2617983.947] {Default Queue} -> wl_seat#1176.get_pointer(new id wl_pointer#1193) +[2617983.951] {Default Queue} -> wl_data_device_manager#1172.get_data_device(new id wl_data_device#1194, wl_seat#1176) +[2617983.956] {Default Queue} -> zwp_primary_selection_device_manager_v1#1174.get_device(new id zwp_primary_selection_device_v1#1195, wl_seat#1176) +[2617983.964] {Default Queue} wl_output#1177.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617983.969] {Default Queue} wl_output#1177.mode(3, 1280, 800, 60000) +[2617983.974] {Default Queue} discarded wl_surface#3.enter(wl_output#1177) +[2617983.978] {Default Queue} discarded wl_surface#999.enter(wl_output#1177) +[2617983.982] {Default Queue} discarded wl_surface#423.enter(wl_output#1177) +[2617983.991] {Default Queue} discarded wl_surface#1127.enter(wl_output#1177) +[2617983.999] {Default Queue} discarded wl_surface#1063.enter(wl_output#1177) +[2617984.003] {Default Queue} discarded wl_surface#455.enter(wl_output#1177) +[2617984.008] {Default Queue} discarded wl_surface#903.enter(wl_output#1177) +[2617984.012] {Default Queue} discarded wl_surface#775.enter(wl_output#1177) +[2617984.016] {Default Queue} discarded wl_surface#135.enter(wl_output#1177) +[2617984.020] {Default Queue} discarded wl_surface#1031.enter(wl_output#1177) +[2617984.024] {Default Queue} discarded wl_surface#615.enter(wl_output#1177) +[2617984.028] {Default Queue} discarded wl_surface#231.enter(wl_output#1177) +[2617984.031] {Default Queue} discarded wl_surface#359.enter(wl_output#1177) +[2617984.035] {Default Queue} discarded wl_surface#583.enter(wl_output#1177) +[2617984.040] {Default Queue} discarded wl_surface#743.enter(wl_output#1177) +[2617984.044] {Default Queue} discarded wl_surface#967.enter(wl_output#1177) +[2617984.047] {Default Queue} discarded wl_surface#103.enter(wl_output#1177) +[2617984.051] {Default Queue} discarded wl_surface#327.enter(wl_output#1177) +[2617984.055] {Default Queue} discarded wl_surface#43.enter(wl_output#1177) +[2617984.059] {Default Queue} discarded wl_surface#807.enter(wl_output#1177) +[2617984.064] {Default Queue} discarded wl_surface#19.enter(wl_output#1177) +[2617984.068] {Default Queue} discarded wl_surface#199.enter(wl_output#1177) +[2617984.072] {Default Queue} discarded wl_surface#391.enter(wl_output#1177) +[2617984.076] {Default Queue} discarded wl_surface#935.enter(wl_output#1177) +[2617984.079] {Default Queue} discarded wl_surface#711.enter(wl_output#1177) +[2617984.083] {Default Queue} discarded wl_surface#871.enter(wl_output#1177) +[2617984.087] {Default Queue} discarded wl_surface#263.enter(wl_output#1177) +[2617984.091] {Default Queue} discarded wl_surface#551.enter(wl_output#1177) +[2617984.095] {Default Queue} discarded wl_surface#647.enter(wl_output#1177) +[2617984.099] {Default Queue} discarded wl_surface#71.enter(wl_output#1177) +[2617984.103] {Default Queue} discarded wl_surface#839.enter(wl_output#1177) +[2617984.107] {Default Queue} discarded wl_surface#1095.enter(wl_output#1177) +[2617984.111] {Default Queue} discarded wl_surface#487.enter(wl_output#1177) +[2617984.115] {Default Queue} discarded wl_surface#519.enter(wl_output#1177) +[2617984.119] {Default Queue} discarded wl_surface#295.enter(wl_output#1177) +[2617984.123] {Default Queue} discarded wl_surface#167.enter(wl_output#1177) +[2617984.127] {Default Queue} discarded wl_surface#679.enter(wl_output#1177) +[2617984.131] {Default Queue} wl_registry#1190.global(1, "wl_compositor", 6) +[2617984.137] {Default Queue} -> wl_registry#1190.bind(1, "wl_compositor", 1, new id [unknown]#1196) +[2617984.143] {Default Queue} wl_registry#1190.global(2, "wl_subcompositor", 1) +[2617984.148] {Default Queue} -> wl_registry#1190.bind(2, "wl_subcompositor", 1, new id [unknown]#1197) +[2617984.152] {Default Queue} wl_registry#1190.global(3, "xdg_wm_base", 6) +[2617984.157] {Default Queue} -> wl_registry#1190.bind(3, "xdg_wm_base", 1, new id [unknown]#1198) +[2617984.162] {Default Queue} wl_registry#1190.global(6, "zwlr_layer_shell_v1", 5) +[2617984.166] {Default Queue} wl_registry#1190.global(7, "ext_session_lock_manager_v1", 1) +[2617984.171] {Default Queue} wl_registry#1190.global(8, "wl_shm", 2) +[2617984.176] {Default Queue} -> wl_registry#1190.bind(8, "wl_shm", 1, new id [unknown]#1199) +[2617984.181] {Default Queue} -> wl_registry#1190.bind(8, "wl_shm", 1, new id [unknown]#1200) +[2617984.185] {Default Queue} -> wl_registry#1190.bind(8, "wl_shm", 1, new id [unknown]#1201) +[2617984.189] {Default Queue} wl_registry#1190.global(9, "zxdg_output_manager_v1", 3) +[2617984.194] {Default Queue} wl_registry#1190.global(10, "wp_fractional_scale_manager_v1", 1) +[2617984.198] {Default Queue} wl_registry#1190.global(11, "zwp_tablet_manager_v2", 1) +[2617984.203] {Default Queue} wl_registry#1190.global(12, "zwp_pointer_gestures_v1", 3) +[2617984.211] {Default Queue} wl_registry#1190.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617984.217] {Default Queue} -> wl_registry#1190.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1202) +[2617984.221] {Default Queue} wl_registry#1190.global(14, "zwp_pointer_constraints_v1", 1) +[2617984.226] {Default Queue} -> wl_registry#1190.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1203) +[2617984.230] {Default Queue} wl_registry#1190.global(15, "ext_idle_notifier_v1", 2) +[2617984.235] {Default Queue} wl_registry#1190.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617984.240] {Default Queue} wl_registry#1190.global(17, "wl_data_device_manager", 3) +[2617984.244] {Default Queue} -> wl_registry#1190.bind(17, "wl_data_device_manager", 2, new id [unknown]#1204) +[2617984.249] {Default Queue} -> wl_data_device_manager#1204.create_data_source(new id wl_data_source#1205) +[2617984.253] {Default Queue} -> wl_data_source#1205.offer("text/plain") +[2617984.257] {Default Queue} -> wl_data_source#1205.offer("text/plain;charset=utf-8") +[2617984.262] {Default Queue} -> wl_data_source#1205.offer("TEXT") +[2617984.266] {Default Queue} -> wl_data_source#1205.offer("STRING") +[2617984.270] {Default Queue} -> wl_data_source#1205.offer("UTF8_STRING") +[2617984.274] {Default Queue} wl_registry#1190.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617984.279] {Default Queue} -> wl_registry#1190.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1206) +[2617984.287] {Default Queue} -> zwp_primary_selection_device_manager_v1#1206.create_source(new id zwp_primary_selection_source_v1#1207) +[2617984.295] {Default Queue} -> zwp_primary_selection_source_v1#1207.offer("text/plain") +[2617984.299] {Default Queue} -> zwp_primary_selection_source_v1#1207.offer("text/plain;charset=utf-8") +[2617984.303] {Default Queue} -> zwp_primary_selection_source_v1#1207.offer("TEXT") +[2617984.307] {Default Queue} -> zwp_primary_selection_source_v1#1207.offer("STRING") +[2617984.311] {Default Queue} -> zwp_primary_selection_source_v1#1207.offer("UTF8_STRING") +[2617984.315] {Default Queue} wl_registry#1190.global(19, "zwlr_data_control_manager_v1", 2) +[2617984.319] {Default Queue} wl_registry#1190.global(20, "ext_data_control_manager_v1", 1) +[2617984.324] {Default Queue} wl_registry#1190.global(21, "wp_presentation", 2) +[2617984.328] {Default Queue} wl_registry#1190.global(22, "wp_security_context_manager_v1", 1) +[2617984.333] {Default Queue} wl_registry#1190.global(23, "zwp_text_input_manager_v3", 1) +[2617984.337] {Default Queue} wl_registry#1190.global(24, "zwp_input_method_manager_v2", 1) +[2617984.341] {Default Queue} wl_registry#1190.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617984.345] {Default Queue} wl_registry#1190.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617984.350] {Default Queue} wl_registry#1190.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617984.354] {Default Queue} wl_registry#1190.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617984.358] {Default Queue} wl_registry#1190.global(29, "ext_workspace_manager_v1", 1) +[2617984.363] {Default Queue} wl_registry#1190.global(30, "zwlr_output_manager_v1", 4) +[2617984.367] {Default Queue} wl_registry#1190.global(31, "zwlr_screencopy_manager_v1", 3) +[2617984.371] {Default Queue} wl_registry#1190.global(32, "wp_viewporter", 1) +[2617984.376] {Default Queue} wl_registry#1190.global(33, "zxdg_exporter_v2", 1) +[2617984.380] {Default Queue} wl_registry#1190.global(34, "zxdg_importer_v2", 1) +[2617984.384] {Default Queue} wl_registry#1190.global(36, "xdg_activation_v1", 1) +[2617984.389] {Default Queue} wl_registry#1190.global(37, "mutter_x11_interop", 1) +[2617984.393] {Default Queue} wl_registry#1190.global(38, "wl_seat", 9) +[2617984.398] {Default Queue} -> wl_registry#1190.bind(38, "wl_seat", 1, new id [unknown]#1208) +[2617984.402] {Default Queue} wl_registry#1190.global(39, "wp_cursor_shape_manager_v1", 2) +[2617984.406] {Default Queue} wl_registry#1190.global(40, "wl_output", 4) +[2617984.411] {Default Queue} -> wl_registry#1190.bind(40, "wl_output", 1, new id [unknown]#1209) +[2617984.418] {Default Queue} wl_callback#1191.done(0) +[2617984.424] {Default Queue} discarded wl_surface#1159.enter(wl_output#18) +[2617984.428] {Default Queue} discarded wl_surface#1159.enter(wl_output#57) +[2617984.433] {Default Queue} discarded wl_surface#1159.enter(wl_output#89) +[2617984.437] {Default Queue} discarded wl_surface#1159.enter(wl_output#121) +[2617984.441] {Default Queue} discarded wl_surface#1159.enter(wl_output#153) +[2617984.444] {Default Queue} discarded wl_surface#1159.enter(wl_output#185) +[2617984.448] {Default Queue} discarded wl_surface#1159.enter(wl_output#217) +[2617984.452] {Default Queue} discarded wl_surface#1159.enter(wl_output#249) +[2617984.456] {Default Queue} discarded wl_surface#1159.enter(wl_output#281) +[2617984.460] {Default Queue} discarded wl_surface#1159.enter(wl_output#313) +[2617984.464] {Default Queue} discarded wl_surface#1159.enter(wl_output#345) +[2617984.468] {Default Queue} discarded wl_surface#1159.enter(wl_output#377) +[2617984.472] {Default Queue} discarded wl_surface#1159.enter(wl_output#409) +[2617984.476] {Default Queue} discarded wl_surface#1159.enter(wl_output#441) +[2617984.480] {Default Queue} discarded wl_surface#1159.enter(wl_output#473) +[2617984.485] {Default Queue} discarded wl_surface#1159.enter(wl_output#505) +[2617984.489] {Default Queue} discarded wl_surface#1159.enter(wl_output#537) +[2617984.492] {Default Queue} discarded wl_surface#1159.enter(wl_output#569) +[2617984.496] {Default Queue} discarded wl_surface#1159.enter(wl_output#601) +[2617984.500] {Default Queue} discarded wl_surface#1159.enter(wl_output#633) +[2617984.504] {Default Queue} discarded wl_surface#1159.enter(wl_output#665) +[2617984.508] {Default Queue} discarded wl_surface#1159.enter(wl_output#697) +[2617984.512] {Default Queue} discarded wl_surface#1159.enter(wl_output#729) +[2617984.516] {Default Queue} discarded wl_surface#1159.enter(wl_output#761) +[2617984.520] {Default Queue} discarded wl_surface#1159.enter(wl_output#793) +[2617984.524] {Default Queue} discarded wl_surface#1159.enter(wl_output#825) +[2617984.527] {Default Queue} discarded wl_surface#1159.enter(wl_output#857) +[2617984.531] {Default Queue} discarded wl_surface#1159.enter(wl_output#889) +[2617984.535] {Default Queue} discarded wl_surface#1159.enter(wl_output#921) +[2617984.539] {Default Queue} discarded wl_surface#1159.enter(wl_output#953) +[2617984.543] {Default Queue} discarded wl_surface#1159.enter(wl_output#985) +[2617984.547] {Default Queue} discarded wl_surface#1159.enter(wl_output#1017) +[2617984.550] {Default Queue} discarded wl_surface#1159.enter(wl_output#1049) +[2617984.554] {Default Queue} discarded wl_surface#1159.enter(wl_output#1081) +[2617984.558] {Default Queue} discarded wl_surface#1159.enter(wl_output#1113) +[2617984.562] {Default Queue} discarded wl_surface#1159.enter(wl_output#1145) +[2617984.566] {Default Queue} discarded wl_surface#1159.enter(wl_output#1177) +[2617984.571] {Default Queue} -> wl_compositor#1068.create_surface(new id wl_surface#1191) +[2617984.575] {Default Queue} -> wl_subcompositor#1197.get_subsurface(new id wl_subsurface#1210, wl_surface#1191, wl_surface#1063) +[2617984.584] {Default Queue} -> wl_subsurface#1210.set_desync() +[2617984.588] {Default Queue} -> wl_subsurface#1210.set_position(0, 0) +[2617984.593] {Default Queue} -> wl_subsurface#1210.place_above(wl_surface#1063) +[2617984.644] {Default Queue} -> wl_shm#1199.create_pool(new id wl_shm_pool#1211, fd 194, 16) +[2617984.651] {Default Queue} -> wl_shm#1199.create_pool(new id wl_shm_pool#1212, fd 195, 16) +[2617984.656] {Default Queue} -> wl_shm_pool#1211.create_buffer(new id wl_buffer#1213, 0, 2, 2, 8, 0) +[2617984.661] {Default Queue} -> wl_shm_pool#1212.create_buffer(new id wl_buffer#1214, 0, 2, 2, 8, 0) +[2617984.670] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) +[2617984.675] {Default Queue} -> wl_surface#1191.commit() +[2617984.680] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) +[2617984.685] {Default Queue} -> wl_surface#1191.commit() +[2617984.689] {Default Queue} -> wl_compositor#1196.create_region(new id wl_region#1215) +[2617984.696] {Default Queue} -> wl_compositor#1196.create_region(new id wl_region#1216) +[2617984.702] {Default Queue} -> wl_region#1215.subtract(0, 0, 2, 2) +[2617984.706] {Default Queue} -> wl_region#1215.add(0, 0, 0, 0) +[2617984.711] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2617984.715] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2617984.719] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) +[2617984.723] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2617984.735] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) +[2617984.740] {Default Queue} -> wl_surface#1191.commit() +[2617984.774] {Default Queue} -> wl_shm#1201.create_pool(new id wl_shm_pool#1217, fd 198, 640) +[2617984.781] {Default Queue} -> wl_shm#1201.create_pool(new id wl_shm_pool#1218, fd 199, 640) +[2617984.785] {Default Queue} -> wl_shm_pool#1217.create_buffer(new id wl_buffer#1219, 0, 10, 16, 40, 0) +[2617984.790] {Default Queue} -> wl_shm_pool#1218.create_buffer(new id wl_buffer#1220, 0, 10, 16, 40, 0) +[2617984.797] {Default Queue} -> wl_compositor#1196.create_surface(new id wl_surface#1221) +[2617984.802] {Default Queue} -> wl_surface#1221.attach(wl_buffer#1219, 0, 0) +[2617984.806] {Default Queue} -> wl_surface#1221.commit() +[2617984.811] {Default Queue} -> wl_surface#1221.attach(wl_buffer#1219, 0, 0) +[2617984.815] {Default Queue} -> wl_surface#1221.commit() +[2617984.820] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2617984.828] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1222) +[2617984.833] {Default Queue} -> wl_display#1.sync(new id wl_callback#1223) +[2617988.852] {Display Queue} wl_display#1.delete_id(1223) +[2617988.866] {Default Queue} wl_keyboard#1192.keymap(1, fd 194, 68213) +[2617988.878] {Default Queue} wl_keyboard#1192.enter(566, wl_surface#19, array[0]) +[2617988.884] {Default Queue} wl_keyboard#1192.modifiers(566, 0, 0, 16, 0) +[2617988.889] {Default Queue} discarded wl_shm#1199.format(875709016) +[2617988.893] {Default Queue} discarded wl_shm#1199.format(1) +[2617988.897] {Default Queue} discarded wl_shm#1199.format(0) +[2617988.901] {Default Queue} discarded wl_shm#1199.format(875708993) +[2617988.905] {Default Queue} discarded wl_shm#1200.format(875709016) +[2617988.909] {Default Queue} discarded wl_shm#1200.format(1) +[2617988.914] {Default Queue} discarded wl_shm#1200.format(0) +[2617988.918] {Default Queue} discarded wl_shm#1200.format(875708993) +[2617988.922] {Default Queue} discarded wl_shm#1201.format(875709016) +[2617988.926] {Default Queue} discarded wl_shm#1201.format(1) +[2617988.930] {Default Queue} discarded wl_shm#1201.format(0) +[2617988.934] {Default Queue} discarded wl_shm#1201.format(875708993) +[2617988.938] {Default Queue} wl_seat#1208.capabilities(7) +[2617988.942] {Default Queue} -> wl_seat#1208.get_keyboard(new id wl_keyboard#1224) +[2617988.947] {Default Queue} -> wl_seat#1208.get_pointer(new id wl_pointer#1225) +[2617988.952] {Default Queue} -> wl_data_device_manager#1204.get_data_device(new id wl_data_device#1226, wl_seat#1208) +[2617988.957] {Default Queue} -> zwp_primary_selection_device_manager_v1#1206.get_device(new id zwp_primary_selection_device_v1#1227, wl_seat#1208) +[2617988.966] {Default Queue} wl_output#1209.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617988.971] {Default Queue} wl_output#1209.mode(3, 1280, 800, 60000) +[2617988.975] {Default Queue} discarded wl_surface#3.enter(wl_output#1209) +[2617988.980] {Default Queue} discarded wl_surface#999.enter(wl_output#1209) +[2617988.984] {Default Queue} discarded wl_surface#1159.enter(wl_output#1209) +[2617988.988] {Default Queue} discarded wl_surface#423.enter(wl_output#1209) +[2617988.992] {Default Queue} discarded wl_surface#1127.enter(wl_output#1209) +[2617988.996] {Default Queue} discarded wl_surface#1063.enter(wl_output#1209) +[2617988.999] {Default Queue} discarded wl_surface#455.enter(wl_output#1209) +[2617989.003] {Default Queue} discarded wl_surface#903.enter(wl_output#1209) +[2617989.011] {Default Queue} discarded wl_surface#775.enter(wl_output#1209) +[2617989.019] {Default Queue} discarded wl_surface#135.enter(wl_output#1209) +[2617989.023] {Default Queue} discarded wl_surface#1031.enter(wl_output#1209) +[2617989.027] {Default Queue} discarded wl_surface#615.enter(wl_output#1209) +[2617989.031] {Default Queue} discarded wl_surface#231.enter(wl_output#1209) +[2617989.035] {Default Queue} discarded wl_surface#359.enter(wl_output#1209) +[2617989.038] {Default Queue} discarded wl_surface#583.enter(wl_output#1209) +[2617989.042] {Default Queue} discarded wl_surface#743.enter(wl_output#1209) +[2617989.046] {Default Queue} discarded wl_surface#967.enter(wl_output#1209) +[2617989.050] {Default Queue} discarded wl_surface#103.enter(wl_output#1209) +[2617989.054] {Default Queue} discarded wl_surface#327.enter(wl_output#1209) +[2617989.058] {Default Queue} discarded wl_surface#43.enter(wl_output#1209) +[2617989.062] {Default Queue} discarded wl_surface#807.enter(wl_output#1209) +[2617989.066] {Default Queue} discarded wl_surface#19.enter(wl_output#1209) +[2617989.070] {Default Queue} discarded wl_surface#199.enter(wl_output#1209) +[2617989.074] {Default Queue} discarded wl_surface#391.enter(wl_output#1209) +[2617989.078] {Default Queue} discarded wl_surface#935.enter(wl_output#1209) +[2617989.082] {Default Queue} discarded wl_surface#711.enter(wl_output#1209) +[2617989.086] {Default Queue} discarded wl_surface#871.enter(wl_output#1209) +[2617989.090] {Default Queue} discarded wl_surface#263.enter(wl_output#1209) +[2617989.094] {Default Queue} discarded wl_surface#551.enter(wl_output#1209) +[2617989.097] {Default Queue} discarded wl_surface#647.enter(wl_output#1209) +[2617989.102] {Default Queue} discarded wl_surface#71.enter(wl_output#1209) +[2617989.106] {Default Queue} discarded wl_surface#839.enter(wl_output#1209) +[2617989.110] {Default Queue} discarded wl_surface#1095.enter(wl_output#1209) +[2617989.114] {Default Queue} discarded wl_surface#487.enter(wl_output#1209) +[2617989.118] {Default Queue} discarded wl_surface#519.enter(wl_output#1209) +[2617989.122] {Default Queue} discarded wl_surface#295.enter(wl_output#1209) +[2617989.125] {Default Queue} discarded wl_surface#167.enter(wl_output#1209) +[2617989.129] {Default Queue} discarded wl_surface#679.enter(wl_output#1209) +[2617989.133] {Default Queue} wl_registry#1222.global(1, "wl_compositor", 6) +[2617989.138] {Default Queue} -> wl_registry#1222.bind(1, "wl_compositor", 1, new id [unknown]#1228) +[2617989.143] {Default Queue} wl_registry#1222.global(2, "wl_subcompositor", 1) +[2617989.148] {Default Queue} -> wl_registry#1222.bind(2, "wl_subcompositor", 1, new id [unknown]#1229) +[2617989.152] {Default Queue} wl_registry#1222.global(3, "xdg_wm_base", 6) +[2617989.157] {Default Queue} -> wl_registry#1222.bind(3, "xdg_wm_base", 1, new id [unknown]#1230) +[2617989.161] {Default Queue} wl_registry#1222.global(6, "zwlr_layer_shell_v1", 5) +[2617989.166] {Default Queue} wl_registry#1222.global(7, "ext_session_lock_manager_v1", 1) +[2617989.170] {Default Queue} wl_registry#1222.global(8, "wl_shm", 2) +[2617989.175] {Default Queue} -> wl_registry#1222.bind(8, "wl_shm", 1, new id [unknown]#1231) +[2617989.179] {Default Queue} -> wl_registry#1222.bind(8, "wl_shm", 1, new id [unknown]#1232) +[2617989.183] {Default Queue} -> wl_registry#1222.bind(8, "wl_shm", 1, new id [unknown]#1233) +[2617989.188] {Default Queue} wl_registry#1222.global(9, "zxdg_output_manager_v1", 3) +[2617989.192] {Default Queue} wl_registry#1222.global(10, "wp_fractional_scale_manager_v1", 1) +[2617989.196] {Default Queue} wl_registry#1222.global(11, "zwp_tablet_manager_v2", 1) +[2617989.201] {Default Queue} wl_registry#1222.global(12, "zwp_pointer_gestures_v1", 3) +[2617989.207] {Default Queue} wl_registry#1222.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617989.214] {Default Queue} -> wl_registry#1222.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1234) +[2617989.221] {Default Queue} wl_registry#1222.global(14, "zwp_pointer_constraints_v1", 1) +[2617989.228] {Default Queue} -> wl_registry#1222.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1235) +[2617989.240] {Default Queue} wl_registry#1222.global(15, "ext_idle_notifier_v1", 2) +[2617989.249] {Default Queue} wl_registry#1222.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617989.256] {Default Queue} wl_registry#1222.global(17, "wl_data_device_manager", 3) +[2617989.263] {Default Queue} -> wl_registry#1222.bind(17, "wl_data_device_manager", 2, new id [unknown]#1236) +[2617989.268] {Default Queue} -> wl_data_device_manager#1236.create_data_source(new id wl_data_source#1237) +[2617989.273] {Default Queue} -> wl_data_source#1237.offer("text/plain") +[2617989.277] {Default Queue} -> wl_data_source#1237.offer("text/plain;charset=utf-8") +[2617989.281] {Default Queue} -> wl_data_source#1237.offer("TEXT") +[2617989.285] {Default Queue} -> wl_data_source#1237.offer("STRING") +[2617989.289] {Default Queue} -> wl_data_source#1237.offer("UTF8_STRING") +[2617989.293] {Default Queue} wl_registry#1222.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617989.298] {Default Queue} -> wl_registry#1222.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1238) +[2617989.307] {Default Queue} -> zwp_primary_selection_device_manager_v1#1238.create_source(new id zwp_primary_selection_source_v1#1239) +[2617989.314] {Default Queue} -> zwp_primary_selection_source_v1#1239.offer("text/plain") +[2617989.318] {Default Queue} -> zwp_primary_selection_source_v1#1239.offer("text/plain;charset=utf-8") +[2617989.323] {Default Queue} -> zwp_primary_selection_source_v1#1239.offer("TEXT") +[2617989.327] {Default Queue} -> zwp_primary_selection_source_v1#1239.offer("STRING") +[2617989.331] {Default Queue} -> zwp_primary_selection_source_v1#1239.offer("UTF8_STRING") +[2617989.335] {Default Queue} wl_registry#1222.global(19, "zwlr_data_control_manager_v1", 2) +[2617989.342] {Default Queue} wl_registry#1222.global(20, "ext_data_control_manager_v1", 1) +[2617989.347] {Default Queue} wl_registry#1222.global(21, "wp_presentation", 2) +[2617989.351] {Default Queue} wl_registry#1222.global(22, "wp_security_context_manager_v1", 1) +[2617989.355] {Default Queue} wl_registry#1222.global(23, "zwp_text_input_manager_v3", 1) +[2617989.359] {Default Queue} wl_registry#1222.global(24, "zwp_input_method_manager_v2", 1) +[2617989.364] {Default Queue} wl_registry#1222.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617989.368] {Default Queue} wl_registry#1222.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617989.372] {Default Queue} wl_registry#1222.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617989.377] {Default Queue} wl_registry#1222.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617989.381] {Default Queue} wl_registry#1222.global(29, "ext_workspace_manager_v1", 1) +[2617989.386] {Default Queue} wl_registry#1222.global(30, "zwlr_output_manager_v1", 4) +[2617989.390] {Default Queue} wl_registry#1222.global(31, "zwlr_screencopy_manager_v1", 3) +[2617989.394] {Default Queue} wl_registry#1222.global(32, "wp_viewporter", 1) +[2617989.398] {Default Queue} wl_registry#1222.global(33, "zxdg_exporter_v2", 1) +[2617989.403] {Default Queue} wl_registry#1222.global(34, "zxdg_importer_v2", 1) +[2617989.407] {Default Queue} wl_registry#1222.global(36, "xdg_activation_v1", 1) +[2617989.411] {Default Queue} wl_registry#1222.global(37, "mutter_x11_interop", 1) +[2617989.415] {Default Queue} wl_registry#1222.global(38, "wl_seat", 9) +[2617989.420] {Default Queue} -> wl_registry#1222.bind(38, "wl_seat", 1, new id [unknown]#1240) +[2617989.424] {Default Queue} wl_registry#1222.global(39, "wp_cursor_shape_manager_v1", 2) +[2617989.429] {Default Queue} wl_registry#1222.global(40, "wl_output", 4) +[2617989.433] {Default Queue} -> wl_registry#1222.bind(40, "wl_output", 1, new id [unknown]#1241) +[2617989.438] {Default Queue} wl_callback#1223.done(0) +[2617989.442] {Default Queue} discarded wl_surface#1191.enter(wl_output#18) +[2617989.446] {Default Queue} discarded wl_surface#1191.enter(wl_output#57) +[2617989.450] {Default Queue} discarded wl_surface#1191.enter(wl_output#89) +[2617989.454] {Default Queue} discarded wl_surface#1191.enter(wl_output#121) +[2617989.461] {Default Queue} discarded wl_surface#1191.enter(wl_output#153) +[2617989.466] {Default Queue} discarded wl_surface#1191.enter(wl_output#185) +[2617989.470] {Default Queue} discarded wl_surface#1191.enter(wl_output#217) +[2617989.474] {Default Queue} discarded wl_surface#1191.enter(wl_output#249) +[2617989.478] {Default Queue} discarded wl_surface#1191.enter(wl_output#281) +[2617989.482] {Default Queue} discarded wl_surface#1191.enter(wl_output#313) +[2617989.486] {Default Queue} discarded wl_surface#1191.enter(wl_output#345) +[2617989.490] {Default Queue} discarded wl_surface#1191.enter(wl_output#377) +[2617989.494] {Default Queue} discarded wl_surface#1191.enter(wl_output#409) +[2617989.497] {Default Queue} discarded wl_surface#1191.enter(wl_output#441) +[2617989.501] {Default Queue} discarded wl_surface#1191.enter(wl_output#473) +[2617989.505] {Default Queue} discarded wl_surface#1191.enter(wl_output#505) +[2617989.509] {Default Queue} discarded wl_surface#1191.enter(wl_output#537) +[2617989.513] {Default Queue} discarded wl_surface#1191.enter(wl_output#569) +[2617989.517] {Default Queue} discarded wl_surface#1191.enter(wl_output#601) +[2617989.521] {Default Queue} discarded wl_surface#1191.enter(wl_output#633) +[2617989.525] {Default Queue} discarded wl_surface#1191.enter(wl_output#665) +[2617989.529] {Default Queue} discarded wl_surface#1191.enter(wl_output#697) +[2617989.533] {Default Queue} discarded wl_surface#1191.enter(wl_output#729) +[2617989.537] {Default Queue} discarded wl_surface#1191.enter(wl_output#761) +[2617989.541] {Default Queue} discarded wl_surface#1191.enter(wl_output#793) +[2617989.545] {Default Queue} discarded wl_surface#1191.enter(wl_output#825) +[2617989.548] {Default Queue} discarded wl_surface#1191.enter(wl_output#857) +[2617989.552] {Default Queue} discarded wl_surface#1191.enter(wl_output#889) +[2617989.556] {Default Queue} discarded wl_surface#1191.enter(wl_output#921) +[2617989.560] {Default Queue} discarded wl_surface#1191.enter(wl_output#953) +[2617989.564] {Default Queue} discarded wl_surface#1191.enter(wl_output#985) +[2617989.568] {Default Queue} discarded wl_surface#1191.enter(wl_output#1017) +[2617989.572] {Default Queue} discarded wl_surface#1191.enter(wl_output#1049) +[2617989.577] {Default Queue} discarded wl_surface#1191.enter(wl_output#1081) +[2617989.583] {Default Queue} discarded wl_surface#1191.enter(wl_output#1113) +[2617989.595] {Default Queue} discarded wl_surface#1191.enter(wl_output#1145) +[2617989.602] {Default Queue} discarded wl_surface#1191.enter(wl_output#1177) +[2617989.607] {Default Queue} discarded wl_surface#1191.enter(wl_output#1209) +[2617989.613] {Default Queue} -> wl_compositor#1068.create_surface(new id wl_surface#1223) +[2617989.620] {Default Queue} -> wl_subcompositor#1229.get_subsurface(new id wl_subsurface#1242, wl_surface#1223, wl_surface#1063) +[2617989.631] {Default Queue} -> wl_subsurface#1242.set_desync() +[2617989.636] {Default Queue} -> wl_subsurface#1242.set_position(0, 0) +[2617989.642] {Default Queue} -> wl_subsurface#1242.place_above(wl_surface#1063) +[2617989.711] {Default Queue} -> wl_shm#1231.create_pool(new id wl_shm_pool#1243, fd 199, 16) +[2617989.722] {Default Queue} -> wl_shm#1231.create_pool(new id wl_shm_pool#1244, fd 200, 16) +[2617989.728] {Default Queue} -> wl_shm_pool#1243.create_buffer(new id wl_buffer#1245, 0, 2, 2, 8, 0) +[2617989.734] {Default Queue} -> wl_shm_pool#1244.create_buffer(new id wl_buffer#1246, 0, 2, 2, 8, 0) +[2617989.745] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) +[2617989.752] {Default Queue} -> wl_surface#1223.commit() +[2617989.759] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) +[2617989.766] {Default Queue} -> wl_surface#1223.commit() +[2617989.772] {Default Queue} -> wl_compositor#1228.create_region(new id wl_region#1247) +[2617989.778] {Default Queue} -> wl_compositor#1228.create_region(new id wl_region#1248) +[2617989.784] {Default Queue} -> wl_region#1247.subtract(0, 0, 2, 2) +[2617989.790] {Default Queue} -> wl_region#1247.add(0, 0, 0, 0) +[2617989.801] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2617989.812] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2617989.818] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) +[2617989.824] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2617989.835] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) +[2617989.841] {Default Queue} -> wl_surface#1223.commit() +[2617989.932] {Default Queue} -> wl_shm#1233.create_pool(new id wl_shm_pool#1249, fd 203, 640) +[2617989.947] {Default Queue} -> wl_shm#1233.create_pool(new id wl_shm_pool#1250, fd 204, 640) +[2617989.954] {Default Queue} -> wl_shm_pool#1249.create_buffer(new id wl_buffer#1251, 0, 10, 16, 40, 0) +[2617989.959] {Default Queue} -> wl_shm_pool#1250.create_buffer(new id wl_buffer#1252, 0, 10, 16, 40, 0) +[2617989.969] {Default Queue} -> wl_compositor#1228.create_surface(new id wl_surface#1253) +[2617989.975] {Default Queue} -> wl_surface#1253.attach(wl_buffer#1251, 0, 0) +[2617989.980] {Default Queue} -> wl_surface#1253.commit() +[2617989.985] {Default Queue} -> wl_surface#1253.attach(wl_buffer#1251, 0, 0) +[2617989.990] {Default Queue} -> wl_surface#1253.commit() +[2617989.996] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2617990.004] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1254) +[2617990.010] {Default Queue} -> wl_display#1.sync(new id wl_callback#1255) +[2617999.059] {Display Queue} wl_display#1.delete_id(1255) +[2617999.072] {Default Queue} wl_keyboard#1224.keymap(1, fd 199, 68213) +[2617999.078] {Default Queue} wl_keyboard#1224.enter(566, wl_surface#19, array[0]) +[2617999.084] {Default Queue} wl_keyboard#1224.modifiers(566, 0, 0, 16, 0) +[2617999.089] {Default Queue} discarded wl_shm#1231.format(875709016) +[2617999.093] {Default Queue} discarded wl_shm#1231.format(1) +[2617999.097] {Default Queue} discarded wl_shm#1231.format(0) +[2617999.101] {Default Queue} discarded wl_shm#1231.format(875708993) +[2617999.105] {Default Queue} discarded wl_shm#1232.format(875709016) +[2617999.109] {Default Queue} discarded wl_shm#1232.format(1) +[2617999.113] {Default Queue} discarded wl_shm#1232.format(0) +[2617999.117] {Default Queue} discarded wl_shm#1232.format(875708993) +[2617999.121] {Default Queue} discarded wl_shm#1233.format(875709016) +[2617999.125] {Default Queue} discarded wl_shm#1233.format(1) +[2617999.129] {Default Queue} discarded wl_shm#1233.format(0) +[2617999.133] {Default Queue} discarded wl_shm#1233.format(875708993) +[2617999.137] {Default Queue} wl_seat#1240.capabilities(7) +[2617999.142] {Default Queue} -> wl_seat#1240.get_keyboard(new id wl_keyboard#1256) +[2617999.146] {Default Queue} -> wl_seat#1240.get_pointer(new id wl_pointer#1257) +[2617999.151] {Default Queue} -> wl_data_device_manager#1236.get_data_device(new id wl_data_device#1258, wl_seat#1240) +[2617999.156] {Default Queue} -> zwp_primary_selection_device_manager_v1#1238.get_device(new id zwp_primary_selection_device_v1#1259, wl_seat#1240) +[2617999.164] {Default Queue} wl_output#1241.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2617999.171] {Default Queue} wl_output#1241.mode(3, 1280, 800, 60000) +[2617999.176] {Default Queue} discarded wl_surface#3.enter(wl_output#1241) +[2617999.181] {Default Queue} discarded wl_surface#999.enter(wl_output#1241) +[2617999.185] {Default Queue} discarded wl_surface#1191.enter(wl_output#1241) +[2617999.189] {Default Queue} discarded wl_surface#1159.enter(wl_output#1241) +[2617999.193] {Default Queue} discarded wl_surface#423.enter(wl_output#1241) +[2617999.197] {Default Queue} discarded wl_surface#1127.enter(wl_output#1241) +[2617999.201] {Default Queue} discarded wl_surface#1063.enter(wl_output#1241) +[2617999.205] {Default Queue} discarded wl_surface#455.enter(wl_output#1241) +[2617999.209] {Default Queue} discarded wl_surface#903.enter(wl_output#1241) +[2617999.213] {Default Queue} discarded wl_surface#775.enter(wl_output#1241) +[2617999.217] {Default Queue} discarded wl_surface#135.enter(wl_output#1241) +[2617999.221] {Default Queue} discarded wl_surface#1031.enter(wl_output#1241) +[2617999.229] {Default Queue} discarded wl_surface#615.enter(wl_output#1241) +[2617999.237] {Default Queue} discarded wl_surface#231.enter(wl_output#1241) +[2617999.241] {Default Queue} discarded wl_surface#359.enter(wl_output#1241) +[2617999.245] {Default Queue} discarded wl_surface#583.enter(wl_output#1241) +[2617999.249] {Default Queue} discarded wl_surface#743.enter(wl_output#1241) +[2617999.253] {Default Queue} discarded wl_surface#967.enter(wl_output#1241) +[2617999.257] {Default Queue} discarded wl_surface#103.enter(wl_output#1241) +[2617999.261] {Default Queue} discarded wl_surface#327.enter(wl_output#1241) +[2617999.264] {Default Queue} discarded wl_surface#43.enter(wl_output#1241) +[2617999.268] {Default Queue} discarded wl_surface#807.enter(wl_output#1241) +[2617999.272] {Default Queue} discarded wl_surface#19.enter(wl_output#1241) +[2617999.276] {Default Queue} discarded wl_surface#199.enter(wl_output#1241) +[2617999.280] {Default Queue} discarded wl_surface#391.enter(wl_output#1241) +[2617999.284] {Default Queue} discarded wl_surface#935.enter(wl_output#1241) +[2617999.288] {Default Queue} discarded wl_surface#711.enter(wl_output#1241) +[2617999.292] {Default Queue} discarded wl_surface#871.enter(wl_output#1241) +[2617999.295] {Default Queue} discarded wl_surface#263.enter(wl_output#1241) +[2617999.300] {Default Queue} discarded wl_surface#551.enter(wl_output#1241) +[2617999.304] {Default Queue} discarded wl_surface#647.enter(wl_output#1241) +[2617999.308] {Default Queue} discarded wl_surface#71.enter(wl_output#1241) +[2617999.311] {Default Queue} discarded wl_surface#839.enter(wl_output#1241) +[2617999.315] {Default Queue} discarded wl_surface#1095.enter(wl_output#1241) +[2617999.319] {Default Queue} discarded wl_surface#487.enter(wl_output#1241) +[2617999.323] {Default Queue} discarded wl_surface#519.enter(wl_output#1241) +[2617999.327] {Default Queue} discarded wl_surface#295.enter(wl_output#1241) +[2617999.331] {Default Queue} discarded wl_surface#167.enter(wl_output#1241) +[2617999.335] {Default Queue} discarded wl_surface#679.enter(wl_output#1241) +[2617999.339] {Default Queue} wl_registry#1254.global(1, "wl_compositor", 6) +[2617999.344] {Default Queue} -> wl_registry#1254.bind(1, "wl_compositor", 1, new id [unknown]#1260) +[2617999.349] {Default Queue} wl_registry#1254.global(2, "wl_subcompositor", 1) +[2617999.353] {Default Queue} -> wl_registry#1254.bind(2, "wl_subcompositor", 1, new id [unknown]#1261) +[2617999.358] {Default Queue} wl_registry#1254.global(3, "xdg_wm_base", 6) +[2617999.363] {Default Queue} -> wl_registry#1254.bind(3, "xdg_wm_base", 1, new id [unknown]#1262) +[2617999.367] {Default Queue} wl_registry#1254.global(6, "zwlr_layer_shell_v1", 5) +[2617999.372] {Default Queue} wl_registry#1254.global(7, "ext_session_lock_manager_v1", 1) +[2617999.376] {Default Queue} wl_registry#1254.global(8, "wl_shm", 2) +[2617999.381] {Default Queue} -> wl_registry#1254.bind(8, "wl_shm", 1, new id [unknown]#1263) +[2617999.386] {Default Queue} -> wl_registry#1254.bind(8, "wl_shm", 1, new id [unknown]#1264) +[2617999.390] {Default Queue} -> wl_registry#1254.bind(8, "wl_shm", 1, new id [unknown]#1265) +[2617999.394] {Default Queue} wl_registry#1254.global(9, "zxdg_output_manager_v1", 3) +[2617999.399] {Default Queue} wl_registry#1254.global(10, "wp_fractional_scale_manager_v1", 1) +[2617999.403] {Default Queue} wl_registry#1254.global(11, "zwp_tablet_manager_v2", 1) +[2617999.407] {Default Queue} wl_registry#1254.global(12, "zwp_pointer_gestures_v1", 3) +[2617999.412] {Default Queue} wl_registry#1254.global(13, "zwp_relative_pointer_manager_v1", 1) +[2617999.416] {Default Queue} -> wl_registry#1254.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1266) +[2617999.422] {Default Queue} wl_registry#1254.global(14, "zwp_pointer_constraints_v1", 1) +[2617999.426] {Default Queue} -> wl_registry#1254.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1267) +[2617999.431] {Default Queue} wl_registry#1254.global(15, "ext_idle_notifier_v1", 2) +[2617999.435] {Default Queue} wl_registry#1254.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2617999.443] {Default Queue} wl_registry#1254.global(17, "wl_data_device_manager", 3) +[2617999.450] {Default Queue} -> wl_registry#1254.bind(17, "wl_data_device_manager", 2, new id [unknown]#1268) +[2617999.454] {Default Queue} -> wl_data_device_manager#1268.create_data_source(new id wl_data_source#1269) +[2617999.458] {Default Queue} -> wl_data_source#1269.offer("text/plain") +[2617999.463] {Default Queue} -> wl_data_source#1269.offer("text/plain;charset=utf-8") +[2617999.467] {Default Queue} -> wl_data_source#1269.offer("TEXT") +[2617999.471] {Default Queue} -> wl_data_source#1269.offer("STRING") +[2617999.475] {Default Queue} -> wl_data_source#1269.offer("UTF8_STRING") +[2617999.479] {Default Queue} wl_registry#1254.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2617999.484] {Default Queue} -> wl_registry#1254.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1270) +[2617999.492] {Default Queue} -> zwp_primary_selection_device_manager_v1#1270.create_source(new id zwp_primary_selection_source_v1#1271) +[2617999.499] {Default Queue} -> zwp_primary_selection_source_v1#1271.offer("text/plain") +[2617999.503] {Default Queue} -> zwp_primary_selection_source_v1#1271.offer("text/plain;charset=utf-8") +[2617999.507] {Default Queue} -> zwp_primary_selection_source_v1#1271.offer("TEXT") +[2617999.512] {Default Queue} -> zwp_primary_selection_source_v1#1271.offer("STRING") +[2617999.516] {Default Queue} -> zwp_primary_selection_source_v1#1271.offer("UTF8_STRING") +[2617999.520] {Default Queue} wl_registry#1254.global(19, "zwlr_data_control_manager_v1", 2) +[2617999.524] {Default Queue} wl_registry#1254.global(20, "ext_data_control_manager_v1", 1) +[2617999.529] {Default Queue} wl_registry#1254.global(21, "wp_presentation", 2) +[2617999.533] {Default Queue} wl_registry#1254.global(22, "wp_security_context_manager_v1", 1) +[2617999.537] {Default Queue} wl_registry#1254.global(23, "zwp_text_input_manager_v3", 1) +[2617999.542] {Default Queue} wl_registry#1254.global(24, "zwp_input_method_manager_v2", 1) +[2617999.546] {Default Queue} wl_registry#1254.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2617999.550] {Default Queue} wl_registry#1254.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2617999.555] {Default Queue} wl_registry#1254.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2617999.559] {Default Queue} wl_registry#1254.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2617999.563] {Default Queue} wl_registry#1254.global(29, "ext_workspace_manager_v1", 1) +[2617999.568] {Default Queue} wl_registry#1254.global(30, "zwlr_output_manager_v1", 4) +[2617999.572] {Default Queue} wl_registry#1254.global(31, "zwlr_screencopy_manager_v1", 3) +[2617999.576] {Default Queue} wl_registry#1254.global(32, "wp_viewporter", 1) +[2617999.580] {Default Queue} wl_registry#1254.global(33, "zxdg_exporter_v2", 1) +[2617999.584] {Default Queue} wl_registry#1254.global(34, "zxdg_importer_v2", 1) +[2617999.589] {Default Queue} wl_registry#1254.global(36, "xdg_activation_v1", 1) +[2617999.593] {Default Queue} wl_registry#1254.global(37, "mutter_x11_interop", 1) +[2617999.597] {Default Queue} wl_registry#1254.global(38, "wl_seat", 9) +[2617999.602] {Default Queue} -> wl_registry#1254.bind(38, "wl_seat", 1, new id [unknown]#1272) +[2617999.607] {Default Queue} wl_registry#1254.global(39, "wp_cursor_shape_manager_v1", 2) +[2617999.611] {Default Queue} wl_registry#1254.global(40, "wl_output", 4) +[2617999.616] {Default Queue} -> wl_registry#1254.bind(40, "wl_output", 1, new id [unknown]#1273) +[2617999.620] {Default Queue} wl_callback#1255.done(0) +[2617999.625] {Default Queue} discarded wl_surface#1223.enter(wl_output#18) +[2617999.630] {Default Queue} discarded wl_surface#1223.enter(wl_output#57) +[2617999.634] {Default Queue} discarded wl_surface#1223.enter(wl_output#89) +[2617999.638] {Default Queue} discarded wl_surface#1223.enter(wl_output#121) +[2617999.642] {Default Queue} discarded wl_surface#1223.enter(wl_output#153) +[2617999.646] {Default Queue} discarded wl_surface#1223.enter(wl_output#185) +[2617999.653] {Default Queue} discarded wl_surface#1223.enter(wl_output#217) +[2617999.658] {Default Queue} discarded wl_surface#1223.enter(wl_output#249) +[2617999.662] {Default Queue} discarded wl_surface#1223.enter(wl_output#281) +[2617999.666] {Default Queue} discarded wl_surface#1223.enter(wl_output#313) +[2617999.670] {Default Queue} discarded wl_surface#1223.enter(wl_output#345) +[2617999.674] {Default Queue} discarded wl_surface#1223.enter(wl_output#377) +[2617999.678] {Default Queue} discarded wl_surface#1223.enter(wl_output#409) +[2617999.682] {Default Queue} discarded wl_surface#1223.enter(wl_output#441) +[2617999.686] {Default Queue} discarded wl_surface#1223.enter(wl_output#473) +[2617999.690] {Default Queue} discarded wl_surface#1223.enter(wl_output#505) +[2617999.693] {Default Queue} discarded wl_surface#1223.enter(wl_output#537) +[2617999.697] {Default Queue} discarded wl_surface#1223.enter(wl_output#569) +[2617999.701] {Default Queue} discarded wl_surface#1223.enter(wl_output#601) +[2617999.705] {Default Queue} discarded wl_surface#1223.enter(wl_output#633) +[2617999.709] {Default Queue} discarded wl_surface#1223.enter(wl_output#665) +[2617999.713] {Default Queue} discarded wl_surface#1223.enter(wl_output#697) +[2617999.717] {Default Queue} discarded wl_surface#1223.enter(wl_output#729) +[2617999.721] {Default Queue} discarded wl_surface#1223.enter(wl_output#761) +[2617999.725] {Default Queue} discarded wl_surface#1223.enter(wl_output#793) +[2617999.729] {Default Queue} discarded wl_surface#1223.enter(wl_output#825) +[2617999.733] {Default Queue} discarded wl_surface#1223.enter(wl_output#857) +[2617999.737] {Default Queue} discarded wl_surface#1223.enter(wl_output#889) +[2617999.741] {Default Queue} discarded wl_surface#1223.enter(wl_output#921) +[2617999.745] {Default Queue} discarded wl_surface#1223.enter(wl_output#953) +[2617999.749] {Default Queue} discarded wl_surface#1223.enter(wl_output#985) +[2617999.752] {Default Queue} discarded wl_surface#1223.enter(wl_output#1017) +[2617999.756] {Default Queue} discarded wl_surface#1223.enter(wl_output#1049) +[2617999.760] {Default Queue} discarded wl_surface#1223.enter(wl_output#1081) +[2617999.764] {Default Queue} discarded wl_surface#1223.enter(wl_output#1113) +[2617999.768] {Default Queue} discarded wl_surface#1223.enter(wl_output#1145) +[2617999.772] {Default Queue} discarded wl_surface#1223.enter(wl_output#1177) +[2617999.776] {Default Queue} discarded wl_surface#1223.enter(wl_output#1209) +[2617999.780] {Default Queue} discarded wl_surface#1223.enter(wl_output#1241) +[2617999.785] {Default Queue} -> wl_compositor#1036.create_surface(new id wl_surface#1255) +[2617999.789] {Default Queue} -> wl_subcompositor#1261.get_subsurface(new id wl_subsurface#1274, wl_surface#1255, wl_surface#1031) +[2617999.797] {Default Queue} -> wl_subsurface#1274.set_desync() +[2617999.802] {Default Queue} -> wl_subsurface#1274.set_position(0, 0) +[2617999.806] {Default Queue} -> wl_subsurface#1274.place_above(wl_surface#1031) +[2617999.849] {Default Queue} -> wl_shm#1263.create_pool(new id wl_shm_pool#1275, fd 204, 16) +[2617999.856] {Default Queue} -> wl_shm#1263.create_pool(new id wl_shm_pool#1276, fd 205, 16) +[2617999.866] {Default Queue} -> wl_shm_pool#1275.create_buffer(new id wl_buffer#1277, 0, 2, 2, 8, 0) +[2617999.871] {Default Queue} -> wl_shm_pool#1276.create_buffer(new id wl_buffer#1278, 0, 2, 2, 8, 0) +[2617999.879] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) +[2617999.884] {Default Queue} -> wl_surface#1255.commit() +[2617999.890] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) +[2617999.894] {Default Queue} -> wl_surface#1255.commit() +[2617999.898] {Default Queue} -> wl_compositor#1260.create_region(new id wl_region#1279) +[2617999.902] {Default Queue} -> wl_compositor#1260.create_region(new id wl_region#1280) +[2617999.907] {Default Queue} -> wl_region#1279.subtract(0, 0, 2, 2) +[2617999.911] {Default Queue} -> wl_region#1279.add(0, 0, 0, 0) +[2617999.916] {Default Queue} -> wl_surface#1255.set_opaque_region(wl_region#1280) +[2617999.920] {Default Queue} -> wl_surface#1255.set_input_region(wl_region#1279) +[2617999.928] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2617999.934] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2617999.942] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) +[2617999.947] {Default Queue} -> wl_surface#1255.commit() +[2617999.981] {Default Queue} -> wl_shm#1265.create_pool(new id wl_shm_pool#1281, fd 208, 640) +[2617999.988] {Default Queue} -> wl_shm#1265.create_pool(new id wl_shm_pool#1282, fd 209, 640) +[2617999.992] {Default Queue} -> wl_shm_pool#1281.create_buffer(new id wl_buffer#1283, 0, 10, 16, 40, 0) +[2617999.997] {Default Queue} -> wl_shm_pool#1282.create_buffer(new id wl_buffer#1284, 0, 10, 16, 40, 0) +[2618000.004] {Default Queue} -> wl_compositor#1260.create_surface(new id wl_surface#1285) +[2618000.009] {Default Queue} -> wl_surface#1285.attach(wl_buffer#1283, 0, 0) +[2618000.013] {Default Queue} -> wl_surface#1285.commit() +[2618000.018] {Default Queue} -> wl_surface#1285.attach(wl_buffer#1283, 0, 0) +[2618000.023] {Default Queue} -> wl_surface#1285.commit() +[2618000.029] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2618000.034] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618000.042] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1286) +[2618000.047] {Default Queue} -> wl_display#1.sync(new id wl_callback#1287) +[2618004.447] {Display Queue} wl_display#1.delete_id(1287) +[2618004.460] {Default Queue} wl_keyboard#1256.keymap(1, fd 204, 68213) +[2618004.467] {Default Queue} wl_keyboard#1256.enter(566, wl_surface#19, array[0]) +[2618004.473] {Default Queue} wl_keyboard#1256.modifiers(566, 0, 0, 16, 0) +[2618004.479] {Default Queue} discarded wl_shm#1263.format(875709016) +[2618004.484] {Default Queue} discarded wl_shm#1263.format(1) +[2618004.489] {Default Queue} discarded wl_shm#1263.format(0) +[2618004.494] {Default Queue} discarded wl_shm#1263.format(875708993) +[2618004.500] {Default Queue} discarded wl_shm#1264.format(875709016) +[2618004.504] {Default Queue} discarded wl_shm#1264.format(1) +[2618004.509] {Default Queue} discarded wl_shm#1264.format(0) +[2618004.514] {Default Queue} discarded wl_shm#1264.format(875708993) +[2618004.519] {Default Queue} discarded wl_shm#1265.format(875709016) +[2618004.524] {Default Queue} discarded wl_shm#1265.format(1) +[2618004.529] {Default Queue} discarded wl_shm#1265.format(0) +[2618004.534] {Default Queue} discarded wl_shm#1265.format(875708993) +[2618004.539] {Default Queue} wl_seat#1272.capabilities(7) +[2618004.544] {Default Queue} -> wl_seat#1272.get_keyboard(new id wl_keyboard#1288) +[2618004.550] {Default Queue} -> wl_seat#1272.get_pointer(new id wl_pointer#1289) +[2618004.555] {Default Queue} -> wl_data_device_manager#1268.get_data_device(new id wl_data_device#1290, wl_seat#1272) +[2618004.561] {Default Queue} -> zwp_primary_selection_device_manager_v1#1270.get_device(new id zwp_primary_selection_device_v1#1291, wl_seat#1272) +[2618004.571] {Default Queue} wl_output#1273.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618004.577] {Default Queue} wl_output#1273.mode(3, 1280, 800, 60000) +[2618004.583] {Default Queue} discarded wl_surface#3.enter(wl_output#1273) +[2618004.588] {Default Queue} discarded wl_surface#999.enter(wl_output#1273) +[2618004.593] {Default Queue} discarded wl_surface#1191.enter(wl_output#1273) +[2618004.598] {Default Queue} discarded wl_surface#1159.enter(wl_output#1273) +[2618004.603] {Default Queue} discarded wl_surface#423.enter(wl_output#1273) +[2618004.608] {Default Queue} discarded wl_surface#1127.enter(wl_output#1273) +[2618004.613] {Default Queue} discarded wl_surface#1063.enter(wl_output#1273) +[2618004.618] {Default Queue} discarded wl_surface#455.enter(wl_output#1273) +[2618004.623] {Default Queue} discarded wl_surface#903.enter(wl_output#1273) +[2618004.628] {Default Queue} discarded wl_surface#775.enter(wl_output#1273) +[2618004.632] {Default Queue} discarded wl_surface#135.enter(wl_output#1273) +[2618004.637] {Default Queue} discarded wl_surface#1031.enter(wl_output#1273) +[2618004.642] {Default Queue} discarded wl_surface#615.enter(wl_output#1273) +[2618004.652] {Default Queue} discarded wl_surface#231.enter(wl_output#1273) +[2618004.663] {Default Queue} discarded wl_surface#359.enter(wl_output#1273) +[2618004.668] {Default Queue} discarded wl_surface#583.enter(wl_output#1273) +[2618004.673] {Default Queue} discarded wl_surface#743.enter(wl_output#1273) +[2618004.678] {Default Queue} discarded wl_surface#967.enter(wl_output#1273) +[2618004.683] {Default Queue} discarded wl_surface#103.enter(wl_output#1273) +[2618004.688] {Default Queue} discarded wl_surface#327.enter(wl_output#1273) +[2618004.693] {Default Queue} discarded wl_surface#43.enter(wl_output#1273) +[2618004.698] {Default Queue} discarded wl_surface#807.enter(wl_output#1273) +[2618004.702] {Default Queue} discarded wl_surface#19.enter(wl_output#1273) +[2618004.707] {Default Queue} discarded wl_surface#199.enter(wl_output#1273) +[2618004.712] {Default Queue} discarded wl_surface#391.enter(wl_output#1273) +[2618004.717] {Default Queue} discarded wl_surface#935.enter(wl_output#1273) +[2618004.722] {Default Queue} discarded wl_surface#711.enter(wl_output#1273) +[2618004.727] {Default Queue} discarded wl_surface#1223.enter(wl_output#1273) +[2618004.732] {Default Queue} discarded wl_surface#871.enter(wl_output#1273) +[2618004.737] {Default Queue} discarded wl_surface#263.enter(wl_output#1273) +[2618004.741] {Default Queue} discarded wl_surface#551.enter(wl_output#1273) +[2618004.746] {Default Queue} discarded wl_surface#647.enter(wl_output#1273) +[2618004.751] {Default Queue} discarded wl_surface#71.enter(wl_output#1273) +[2618004.756] {Default Queue} discarded wl_surface#839.enter(wl_output#1273) +[2618004.761] {Default Queue} discarded wl_surface#1095.enter(wl_output#1273) +[2618004.766] {Default Queue} discarded wl_surface#487.enter(wl_output#1273) +[2618004.771] {Default Queue} discarded wl_surface#519.enter(wl_output#1273) +[2618004.776] {Default Queue} discarded wl_surface#295.enter(wl_output#1273) +[2618004.780] {Default Queue} discarded wl_surface#167.enter(wl_output#1273) +[2618004.785] {Default Queue} discarded wl_surface#679.enter(wl_output#1273) +[2618004.790] {Default Queue} wl_registry#1286.global(1, "wl_compositor", 6) +[2618004.797] {Default Queue} -> wl_registry#1286.bind(1, "wl_compositor", 1, new id [unknown]#1292) +[2618004.803] {Default Queue} wl_registry#1286.global(2, "wl_subcompositor", 1) +[2618004.809] {Default Queue} -> wl_registry#1286.bind(2, "wl_subcompositor", 1, new id [unknown]#1293) +[2618004.814] {Default Queue} wl_registry#1286.global(3, "xdg_wm_base", 6) +[2618004.820] {Default Queue} -> wl_registry#1286.bind(3, "xdg_wm_base", 1, new id [unknown]#1294) +[2618004.825] {Default Queue} wl_registry#1286.global(6, "zwlr_layer_shell_v1", 5) +[2618004.831] {Default Queue} wl_registry#1286.global(7, "ext_session_lock_manager_v1", 1) +[2618004.838] {Default Queue} wl_registry#1286.global(8, "wl_shm", 2) +[2618004.844] {Default Queue} -> wl_registry#1286.bind(8, "wl_shm", 1, new id [unknown]#1295) +[2618004.850] {Default Queue} -> wl_registry#1286.bind(8, "wl_shm", 1, new id [unknown]#1296) +[2618004.856] {Default Queue} -> wl_registry#1286.bind(8, "wl_shm", 1, new id [unknown]#1297) +[2618004.869] {Default Queue} wl_registry#1286.global(9, "zxdg_output_manager_v1", 3) +[2618004.875] {Default Queue} wl_registry#1286.global(10, "wp_fractional_scale_manager_v1", 1) +[2618004.880] {Default Queue} wl_registry#1286.global(11, "zwp_tablet_manager_v2", 1) +[2618004.886] {Default Queue} wl_registry#1286.global(12, "zwp_pointer_gestures_v1", 3) +[2618004.891] {Default Queue} wl_registry#1286.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618004.896] {Default Queue} -> wl_registry#1286.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1298) +[2618004.902] {Default Queue} wl_registry#1286.global(14, "zwp_pointer_constraints_v1", 1) +[2618004.908] {Default Queue} -> wl_registry#1286.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1299) +[2618004.913] {Default Queue} wl_registry#1286.global(15, "ext_idle_notifier_v1", 2) +[2618004.919] {Default Queue} wl_registry#1286.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618004.928] {Default Queue} wl_registry#1286.global(17, "wl_data_device_manager", 3) +[2618004.936] {Default Queue} -> wl_registry#1286.bind(17, "wl_data_device_manager", 2, new id [unknown]#1300) +[2618004.941] {Default Queue} -> wl_data_device_manager#1300.create_data_source(new id wl_data_source#1301) +[2618004.947] {Default Queue} -> wl_data_source#1301.offer("text/plain") +[2618004.952] {Default Queue} -> wl_data_source#1301.offer("text/plain;charset=utf-8") +[2618004.957] {Default Queue} -> wl_data_source#1301.offer("TEXT") +[2618004.963] {Default Queue} -> wl_data_source#1301.offer("STRING") +[2618004.968] {Default Queue} -> wl_data_source#1301.offer("UTF8_STRING") +[2618004.973] {Default Queue} wl_registry#1286.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618004.979] {Default Queue} -> wl_registry#1286.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1302) +[2618004.988] {Default Queue} -> zwp_primary_selection_device_manager_v1#1302.create_source(new id zwp_primary_selection_source_v1#1303) +[2618004.998] {Default Queue} -> zwp_primary_selection_source_v1#1303.offer("text/plain") +[2618005.003] {Default Queue} -> zwp_primary_selection_source_v1#1303.offer("text/plain;charset=utf-8") +[2618005.008] {Default Queue} -> zwp_primary_selection_source_v1#1303.offer("TEXT") +[2618005.013] {Default Queue} -> zwp_primary_selection_source_v1#1303.offer("STRING") +[2618005.018] {Default Queue} -> zwp_primary_selection_source_v1#1303.offer("UTF8_STRING") +[2618005.023] {Default Queue} wl_registry#1286.global(19, "zwlr_data_control_manager_v1", 2) +[2618005.029] {Default Queue} wl_registry#1286.global(20, "ext_data_control_manager_v1", 1) +[2618005.034] {Default Queue} wl_registry#1286.global(21, "wp_presentation", 2) +[2618005.040] {Default Queue} wl_registry#1286.global(22, "wp_security_context_manager_v1", 1) +[2618005.045] {Default Queue} wl_registry#1286.global(23, "zwp_text_input_manager_v3", 1) +[2618005.050] {Default Queue} wl_registry#1286.global(24, "zwp_input_method_manager_v2", 1) +[2618005.056] {Default Queue} wl_registry#1286.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618005.061] {Default Queue} wl_registry#1286.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618005.067] {Default Queue} wl_registry#1286.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618005.072] {Default Queue} wl_registry#1286.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618005.077] {Default Queue} wl_registry#1286.global(29, "ext_workspace_manager_v1", 1) +[2618005.083] {Default Queue} wl_registry#1286.global(30, "zwlr_output_manager_v1", 4) +[2618005.088] {Default Queue} wl_registry#1286.global(31, "zwlr_screencopy_manager_v1", 3) +[2618005.094] {Default Queue} wl_registry#1286.global(32, "wp_viewporter", 1) +[2618005.099] {Default Queue} wl_registry#1286.global(33, "zxdg_exporter_v2", 1) +[2618005.104] {Default Queue} wl_registry#1286.global(34, "zxdg_importer_v2", 1) +[2618005.110] {Default Queue} wl_registry#1286.global(36, "xdg_activation_v1", 1) +[2618005.115] {Default Queue} wl_registry#1286.global(37, "mutter_x11_interop", 1) +[2618005.121] {Default Queue} wl_registry#1286.global(38, "wl_seat", 9) +[2618005.126] {Default Queue} -> wl_registry#1286.bind(38, "wl_seat", 1, new id [unknown]#1304) +[2618005.132] {Default Queue} wl_registry#1286.global(39, "wp_cursor_shape_manager_v1", 2) +[2618005.137] {Default Queue} wl_registry#1286.global(40, "wl_output", 4) +[2618005.142] {Default Queue} -> wl_registry#1286.bind(40, "wl_output", 1, new id [unknown]#1305) +[2618005.147] {Default Queue} wl_callback#1287.done(0) +[2618005.151] {Default Queue} discarded wl_surface#1255.enter(wl_output#18) +[2618005.155] {Default Queue} discarded wl_surface#1255.enter(wl_output#57) +[2618005.159] {Default Queue} discarded wl_surface#1255.enter(wl_output#89) +[2618005.164] {Default Queue} discarded wl_surface#1255.enter(wl_output#121) +[2618005.168] {Default Queue} discarded wl_surface#1255.enter(wl_output#153) +[2618005.172] {Default Queue} discarded wl_surface#1255.enter(wl_output#185) +[2618005.178] {Default Queue} discarded wl_surface#1255.enter(wl_output#217) +[2618005.183] {Default Queue} discarded wl_surface#1255.enter(wl_output#249) +[2618005.187] {Default Queue} discarded wl_surface#1255.enter(wl_output#281) +[2618005.191] {Default Queue} discarded wl_surface#1255.enter(wl_output#313) +[2618005.195] {Default Queue} discarded wl_surface#1255.enter(wl_output#345) +[2618005.199] {Default Queue} discarded wl_surface#1255.enter(wl_output#377) +[2618005.203] {Default Queue} discarded wl_surface#1255.enter(wl_output#409) +[2618005.207] {Default Queue} discarded wl_surface#1255.enter(wl_output#441) +[2618005.211] {Default Queue} discarded wl_surface#1255.enter(wl_output#473) +[2618005.214] {Default Queue} discarded wl_surface#1255.enter(wl_output#505) +[2618005.218] {Default Queue} discarded wl_surface#1255.enter(wl_output#537) +[2618005.222] {Default Queue} discarded wl_surface#1255.enter(wl_output#569) +[2618005.226] {Default Queue} discarded wl_surface#1255.enter(wl_output#601) +[2618005.230] {Default Queue} discarded wl_surface#1255.enter(wl_output#633) +[2618005.234] {Default Queue} discarded wl_surface#1255.enter(wl_output#665) +[2618005.238] {Default Queue} discarded wl_surface#1255.enter(wl_output#697) +[2618005.242] {Default Queue} discarded wl_surface#1255.enter(wl_output#729) +[2618005.246] {Default Queue} discarded wl_surface#1255.enter(wl_output#761) +[2618005.250] {Default Queue} discarded wl_surface#1255.enter(wl_output#793) +[2618005.253] {Default Queue} discarded wl_surface#1255.enter(wl_output#825) +[2618005.257] {Default Queue} discarded wl_surface#1255.enter(wl_output#857) +[2618005.261] {Default Queue} discarded wl_surface#1255.enter(wl_output#889) +[2618005.265] {Default Queue} discarded wl_surface#1255.enter(wl_output#921) +[2618005.269] {Default Queue} discarded wl_surface#1255.enter(wl_output#953) +[2618005.273] {Default Queue} discarded wl_surface#1255.enter(wl_output#985) +[2618005.277] {Default Queue} discarded wl_surface#1255.enter(wl_output#1017) +[2618005.281] {Default Queue} discarded wl_surface#1255.enter(wl_output#1049) +[2618005.285] {Default Queue} discarded wl_surface#1255.enter(wl_output#1081) +[2618005.289] {Default Queue} discarded wl_surface#1255.enter(wl_output#1113) +[2618005.292] {Default Queue} discarded wl_surface#1255.enter(wl_output#1145) +[2618005.296] {Default Queue} discarded wl_surface#1255.enter(wl_output#1177) +[2618005.301] {Default Queue} discarded wl_surface#1255.enter(wl_output#1209) +[2618005.305] {Default Queue} discarded wl_surface#1255.enter(wl_output#1241) +[2618005.308] {Default Queue} discarded wl_surface#1255.enter(wl_output#1273) +[2618005.312] {Default Queue} -> wl_compositor#1260.create_surface(new id wl_surface#1287) +[2618005.317] {Default Queue} -> wl_subcompositor#1293.get_subsurface(new id wl_subsurface#1306, wl_surface#1287, wl_surface#1255) +[2618005.325] {Default Queue} -> wl_subsurface#1306.set_desync() +[2618005.329] {Default Queue} -> wl_subsurface#1306.set_position(0, 0) +[2618005.334] {Default Queue} -> wl_subsurface#1306.place_above(wl_surface#1255) +[2618005.375] {Default Queue} -> wl_shm#1295.create_pool(new id wl_shm_pool#1307, fd 209, 16) +[2618005.381] {Default Queue} -> wl_shm#1295.create_pool(new id wl_shm_pool#1308, fd 210, 16) +[2618005.386] {Default Queue} -> wl_shm_pool#1307.create_buffer(new id wl_buffer#1309, 0, 2, 2, 8, 0) +[2618005.391] {Default Queue} -> wl_shm_pool#1308.create_buffer(new id wl_buffer#1310, 0, 2, 2, 8, 0) +[2618005.399] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) +[2618005.404] {Default Queue} -> wl_surface#1287.commit() +[2618005.410] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) +[2618005.414] {Default Queue} -> wl_surface#1287.commit() +[2618005.418] {Default Queue} -> wl_compositor#1292.create_region(new id wl_region#1311) +[2618005.422] {Default Queue} -> wl_compositor#1292.create_region(new id wl_region#1312) +[2618005.426] {Default Queue} -> wl_region#1311.subtract(0, 0, 2, 2) +[2618005.431] {Default Queue} -> wl_region#1311.add(0, 0, 0, 0) +[2618005.438] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2618005.444] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2618005.449] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618005.453] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618005.460] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) +[2618005.464] {Default Queue} -> wl_surface#1287.commit() +[2618005.495] {Default Queue} -> wl_shm#1297.create_pool(new id wl_shm_pool#1313, fd 213, 640) +[2618005.501] {Default Queue} -> wl_shm#1297.create_pool(new id wl_shm_pool#1314, fd 214, 640) +[2618005.505] {Default Queue} -> wl_shm_pool#1313.create_buffer(new id wl_buffer#1315, 0, 10, 16, 40, 0) +[2618005.510] {Default Queue} -> wl_shm_pool#1314.create_buffer(new id wl_buffer#1316, 0, 10, 16, 40, 0) +[2618005.517] {Default Queue} -> wl_compositor#1292.create_surface(new id wl_surface#1317) +[2618005.522] {Default Queue} -> wl_surface#1317.attach(wl_buffer#1315, 0, 0) +[2618005.527] {Default Queue} -> wl_surface#1317.commit() +[2618005.532] {Default Queue} -> wl_surface#1317.attach(wl_buffer#1315, 0, 0) +[2618005.537] {Default Queue} -> wl_surface#1317.commit() +[2618005.542] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618005.548] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618005.552] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618005.559] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1318) +[2618005.564] {Default Queue} -> wl_display#1.sync(new id wl_callback#1319) +[2618008.815] {Display Queue} wl_display#1.delete_id(1319) +[2618008.827] {Default Queue} wl_keyboard#1288.keymap(1, fd 209, 68213) +[2618008.833] {Default Queue} wl_keyboard#1288.enter(566, wl_surface#19, array[0]) +[2618008.838] {Default Queue} wl_keyboard#1288.modifiers(566, 0, 0, 16, 0) +[2618008.843] {Default Queue} discarded wl_shm#1295.format(875709016) +[2618008.847] {Default Queue} discarded wl_shm#1295.format(1) +[2618008.851] {Default Queue} discarded wl_shm#1295.format(0) +[2618008.855] {Default Queue} discarded wl_shm#1295.format(875708993) +[2618008.858] {Default Queue} discarded wl_shm#1296.format(875709016) +[2618008.867] {Default Queue} discarded wl_shm#1296.format(1) +[2618008.871] {Default Queue} discarded wl_shm#1296.format(0) +[2618008.875] {Default Queue} discarded wl_shm#1296.format(875708993) +[2618008.879] {Default Queue} discarded wl_shm#1297.format(875709016) +[2618008.883] {Default Queue} discarded wl_shm#1297.format(1) +[2618008.887] {Default Queue} discarded wl_shm#1297.format(0) +[2618008.891] {Default Queue} discarded wl_shm#1297.format(875708993) +[2618008.895] {Default Queue} wl_seat#1304.capabilities(7) +[2618008.899] {Default Queue} -> wl_seat#1304.get_keyboard(new id wl_keyboard#1320) +[2618008.903] {Default Queue} -> wl_seat#1304.get_pointer(new id wl_pointer#1321) +[2618008.908] {Default Queue} -> wl_data_device_manager#1300.get_data_device(new id wl_data_device#1322, wl_seat#1304) +[2618008.913] {Default Queue} -> zwp_primary_selection_device_manager_v1#1302.get_device(new id zwp_primary_selection_device_v1#1323, wl_seat#1304) +[2618008.921] {Default Queue} wl_output#1305.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618008.926] {Default Queue} wl_output#1305.mode(3, 1280, 800, 60000) +[2618008.930] {Default Queue} discarded wl_surface#3.enter(wl_output#1305) +[2618008.935] {Default Queue} discarded wl_surface#999.enter(wl_output#1305) +[2618008.939] {Default Queue} discarded wl_surface#1191.enter(wl_output#1305) +[2618008.942] {Default Queue} discarded wl_surface#1159.enter(wl_output#1305) +[2618008.946] {Default Queue} discarded wl_surface#423.enter(wl_output#1305) +[2618008.950] {Default Queue} discarded wl_surface#1127.enter(wl_output#1305) +[2618008.954] {Default Queue} discarded wl_surface#1063.enter(wl_output#1305) +[2618008.958] {Default Queue} discarded wl_surface#455.enter(wl_output#1305) +[2618008.962] {Default Queue} discarded wl_surface#903.enter(wl_output#1305) +[2618008.966] {Default Queue} discarded wl_surface#775.enter(wl_output#1305) +[2618008.974] {Default Queue} discarded wl_surface#135.enter(wl_output#1305) +[2618008.981] {Default Queue} discarded wl_surface#1031.enter(wl_output#1305) +[2618008.985] {Default Queue} discarded wl_surface#615.enter(wl_output#1305) +[2618008.988] {Default Queue} discarded wl_surface#231.enter(wl_output#1305) +[2618008.992] {Default Queue} discarded wl_surface#359.enter(wl_output#1305) +[2618008.996] {Default Queue} discarded wl_surface#583.enter(wl_output#1305) +[2618009.000] {Default Queue} discarded wl_surface#743.enter(wl_output#1305) +[2618009.004] {Default Queue} discarded wl_surface#967.enter(wl_output#1305) +[2618009.008] {Default Queue} discarded wl_surface#103.enter(wl_output#1305) +[2618009.011] {Default Queue} discarded wl_surface#327.enter(wl_output#1305) +[2618009.015] {Default Queue} discarded wl_surface#43.enter(wl_output#1305) +[2618009.019] {Default Queue} discarded wl_surface#807.enter(wl_output#1305) +[2618009.023] {Default Queue} discarded wl_surface#19.enter(wl_output#1305) +[2618009.027] {Default Queue} discarded wl_surface#199.enter(wl_output#1305) +[2618009.032] {Default Queue} discarded wl_surface#391.enter(wl_output#1305) +[2618009.035] {Default Queue} discarded wl_surface#935.enter(wl_output#1305) +[2618009.039] {Default Queue} discarded wl_surface#711.enter(wl_output#1305) +[2618009.043] {Default Queue} discarded wl_surface#1223.enter(wl_output#1305) +[2618009.047] {Default Queue} discarded wl_surface#871.enter(wl_output#1305) +[2618009.051] {Default Queue} discarded wl_surface#263.enter(wl_output#1305) +[2618009.055] {Default Queue} discarded wl_surface#551.enter(wl_output#1305) +[2618009.059] {Default Queue} discarded wl_surface#647.enter(wl_output#1305) +[2618009.063] {Default Queue} discarded wl_surface#71.enter(wl_output#1305) +[2618009.066] {Default Queue} discarded wl_surface#839.enter(wl_output#1305) +[2618009.070] {Default Queue} discarded wl_surface#1095.enter(wl_output#1305) +[2618009.074] {Default Queue} discarded wl_surface#487.enter(wl_output#1305) +[2618009.078] {Default Queue} discarded wl_surface#519.enter(wl_output#1305) +[2618009.082] {Default Queue} discarded wl_surface#295.enter(wl_output#1305) +[2618009.086] {Default Queue} discarded wl_surface#167.enter(wl_output#1305) +[2618009.090] {Default Queue} discarded wl_surface#1255.enter(wl_output#1305) +[2618009.094] {Default Queue} discarded wl_surface#679.enter(wl_output#1305) +[2618009.099] {Default Queue} wl_registry#1318.global(1, "wl_compositor", 6) +[2618009.105] {Default Queue} -> wl_registry#1318.bind(1, "wl_compositor", 1, new id [unknown]#1324) +[2618009.114] {Default Queue} wl_registry#1318.global(2, "wl_subcompositor", 1) +[2618009.118] {Default Queue} -> wl_registry#1318.bind(2, "wl_subcompositor", 1, new id [unknown]#1325) +[2618009.123] {Default Queue} wl_registry#1318.global(3, "xdg_wm_base", 6) +[2618009.128] {Default Queue} -> wl_registry#1318.bind(3, "xdg_wm_base", 1, new id [unknown]#1326) +[2618009.132] {Default Queue} wl_registry#1318.global(6, "zwlr_layer_shell_v1", 5) +[2618009.136] {Default Queue} wl_registry#1318.global(7, "ext_session_lock_manager_v1", 1) +[2618009.141] {Default Queue} wl_registry#1318.global(8, "wl_shm", 2) +[2618009.145] {Default Queue} -> wl_registry#1318.bind(8, "wl_shm", 1, new id [unknown]#1327) +[2618009.150] {Default Queue} -> wl_registry#1318.bind(8, "wl_shm", 1, new id [unknown]#1328) +[2618009.155] {Default Queue} -> wl_registry#1318.bind(8, "wl_shm", 1, new id [unknown]#1329) +[2618009.159] {Default Queue} wl_registry#1318.global(9, "zxdg_output_manager_v1", 3) +[2618009.163] {Default Queue} wl_registry#1318.global(10, "wp_fractional_scale_manager_v1", 1) +[2618009.167] {Default Queue} wl_registry#1318.global(11, "zwp_tablet_manager_v2", 1) +[2618009.172] {Default Queue} wl_registry#1318.global(12, "zwp_pointer_gestures_v1", 3) +[2618009.176] {Default Queue} wl_registry#1318.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618009.180] {Default Queue} -> wl_registry#1318.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1330) +[2618009.185] {Default Queue} wl_registry#1318.global(14, "zwp_pointer_constraints_v1", 1) +[2618009.192] {Default Queue} -> wl_registry#1318.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1331) +[2618009.198] {Default Queue} wl_registry#1318.global(15, "ext_idle_notifier_v1", 2) +[2618009.202] {Default Queue} wl_registry#1318.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618009.207] {Default Queue} wl_registry#1318.global(17, "wl_data_device_manager", 3) +[2618009.212] {Default Queue} -> wl_registry#1318.bind(17, "wl_data_device_manager", 2, new id [unknown]#1332) +[2618009.217] {Default Queue} -> wl_data_device_manager#1332.create_data_source(new id wl_data_source#1333) +[2618009.221] {Default Queue} -> wl_data_source#1333.offer("text/plain") +[2618009.225] {Default Queue} -> wl_data_source#1333.offer("text/plain;charset=utf-8") +[2618009.230] {Default Queue} -> wl_data_source#1333.offer("TEXT") +[2618009.234] {Default Queue} -> wl_data_source#1333.offer("STRING") +[2618009.238] {Default Queue} -> wl_data_source#1333.offer("UTF8_STRING") +[2618009.242] {Default Queue} wl_registry#1318.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618009.247] {Default Queue} -> wl_registry#1318.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1334) +[2618009.254] {Default Queue} -> zwp_primary_selection_device_manager_v1#1334.create_source(new id zwp_primary_selection_source_v1#1335) +[2618009.262] {Default Queue} -> zwp_primary_selection_source_v1#1335.offer("text/plain") +[2618009.266] {Default Queue} -> zwp_primary_selection_source_v1#1335.offer("text/plain;charset=utf-8") +[2618009.270] {Default Queue} -> zwp_primary_selection_source_v1#1335.offer("TEXT") +[2618009.275] {Default Queue} -> zwp_primary_selection_source_v1#1335.offer("STRING") +[2618009.279] {Default Queue} -> zwp_primary_selection_source_v1#1335.offer("UTF8_STRING") +[2618009.283] {Default Queue} wl_registry#1318.global(19, "zwlr_data_control_manager_v1", 2) +[2618009.288] {Default Queue} wl_registry#1318.global(20, "ext_data_control_manager_v1", 1) +[2618009.292] {Default Queue} wl_registry#1318.global(21, "wp_presentation", 2) +[2618009.297] {Default Queue} wl_registry#1318.global(22, "wp_security_context_manager_v1", 1) +[2618009.301] {Default Queue} wl_registry#1318.global(23, "zwp_text_input_manager_v3", 1) +[2618009.305] {Default Queue} wl_registry#1318.global(24, "zwp_input_method_manager_v2", 1) +[2618009.310] {Default Queue} wl_registry#1318.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618009.314] {Default Queue} wl_registry#1318.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618009.318] {Default Queue} wl_registry#1318.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618009.323] {Default Queue} wl_registry#1318.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618009.327] {Default Queue} wl_registry#1318.global(29, "ext_workspace_manager_v1", 1) +[2618009.331] {Default Queue} wl_registry#1318.global(30, "zwlr_output_manager_v1", 4) +[2618009.336] {Default Queue} wl_registry#1318.global(31, "zwlr_screencopy_manager_v1", 3) +[2618009.340] {Default Queue} wl_registry#1318.global(32, "wp_viewporter", 1) +[2618009.344] {Default Queue} wl_registry#1318.global(33, "zxdg_exporter_v2", 1) +[2618009.349] {Default Queue} wl_registry#1318.global(34, "zxdg_importer_v2", 1) +[2618009.353] {Default Queue} wl_registry#1318.global(36, "xdg_activation_v1", 1) +[2618009.357] {Default Queue} wl_registry#1318.global(37, "mutter_x11_interop", 1) +[2618009.361] {Default Queue} wl_registry#1318.global(38, "wl_seat", 9) +[2618009.366] {Default Queue} -> wl_registry#1318.bind(38, "wl_seat", 1, new id [unknown]#1336) +[2618009.370] {Default Queue} wl_registry#1318.global(39, "wp_cursor_shape_manager_v1", 2) +[2618009.375] {Default Queue} wl_registry#1318.global(40, "wl_output", 4) +[2618009.379] {Default Queue} -> wl_registry#1318.bind(40, "wl_output", 1, new id [unknown]#1337) +[2618009.383] {Default Queue} wl_callback#1319.done(0) +[2618009.388] {Default Queue} discarded wl_surface#1287.enter(wl_output#18) +[2618009.392] {Default Queue} discarded wl_surface#1287.enter(wl_output#57) +[2618009.398] {Default Queue} discarded wl_surface#1287.enter(wl_output#89) +[2618009.404] {Default Queue} discarded wl_surface#1287.enter(wl_output#121) +[2618009.408] {Default Queue} discarded wl_surface#1287.enter(wl_output#153) +[2618009.412] {Default Queue} discarded wl_surface#1287.enter(wl_output#185) +[2618009.416] {Default Queue} discarded wl_surface#1287.enter(wl_output#217) +[2618009.420] {Default Queue} discarded wl_surface#1287.enter(wl_output#249) +[2618009.424] {Default Queue} discarded wl_surface#1287.enter(wl_output#281) +[2618009.428] {Default Queue} discarded wl_surface#1287.enter(wl_output#313) +[2618009.431] {Default Queue} discarded wl_surface#1287.enter(wl_output#345) +[2618009.435] {Default Queue} discarded wl_surface#1287.enter(wl_output#377) +[2618009.439] {Default Queue} discarded wl_surface#1287.enter(wl_output#409) +[2618009.443] {Default Queue} discarded wl_surface#1287.enter(wl_output#441) +[2618009.447] {Default Queue} discarded wl_surface#1287.enter(wl_output#473) +[2618009.451] {Default Queue} discarded wl_surface#1287.enter(wl_output#505) +[2618009.454] {Default Queue} discarded wl_surface#1287.enter(wl_output#537) +[2618009.458] {Default Queue} discarded wl_surface#1287.enter(wl_output#569) +[2618009.462] {Default Queue} discarded wl_surface#1287.enter(wl_output#601) +[2618009.466] {Default Queue} discarded wl_surface#1287.enter(wl_output#633) +[2618009.470] {Default Queue} discarded wl_surface#1287.enter(wl_output#665) +[2618009.474] {Default Queue} discarded wl_surface#1287.enter(wl_output#697) +[2618009.478] {Default Queue} discarded wl_surface#1287.enter(wl_output#729) +[2618009.482] {Default Queue} discarded wl_surface#1287.enter(wl_output#761) +[2618009.486] {Default Queue} discarded wl_surface#1287.enter(wl_output#793) +[2618009.490] {Default Queue} discarded wl_surface#1287.enter(wl_output#825) +[2618009.493] {Default Queue} discarded wl_surface#1287.enter(wl_output#857) +[2618009.497] {Default Queue} discarded wl_surface#1287.enter(wl_output#889) +[2618009.501] {Default Queue} discarded wl_surface#1287.enter(wl_output#921) +[2618009.505] {Default Queue} discarded wl_surface#1287.enter(wl_output#953) +[2618009.509] {Default Queue} discarded wl_surface#1287.enter(wl_output#985) +[2618009.513] {Default Queue} discarded wl_surface#1287.enter(wl_output#1017) +[2618009.517] {Default Queue} discarded wl_surface#1287.enter(wl_output#1049) +[2618009.521] {Default Queue} discarded wl_surface#1287.enter(wl_output#1081) +[2618009.525] {Default Queue} discarded wl_surface#1287.enter(wl_output#1113) +[2618009.529] {Default Queue} discarded wl_surface#1287.enter(wl_output#1145) +[2618009.533] {Default Queue} discarded wl_surface#1287.enter(wl_output#1177) +[2618009.537] {Default Queue} discarded wl_surface#1287.enter(wl_output#1209) +[2618009.541] {Default Queue} discarded wl_surface#1287.enter(wl_output#1241) +[2618009.545] {Default Queue} discarded wl_surface#1287.enter(wl_output#1273) +[2618009.549] {Default Queue} discarded wl_surface#1287.enter(wl_output#1305) +[2618009.553] {Default Queue} -> wl_compositor#1260.create_surface(new id wl_surface#1319) +[2618009.557] {Default Queue} -> wl_subcompositor#1325.get_subsurface(new id wl_subsurface#1338, wl_surface#1319, wl_surface#1255) +[2618009.565] {Default Queue} -> wl_subsurface#1338.set_desync() +[2618009.569] {Default Queue} -> wl_subsurface#1338.set_position(0, 0) +[2618009.574] {Default Queue} -> wl_subsurface#1338.place_above(wl_surface#1255) +[2618009.617] {Default Queue} -> wl_shm#1327.create_pool(new id wl_shm_pool#1339, fd 214, 16) +[2618009.625] {Default Queue} -> wl_shm#1327.create_pool(new id wl_shm_pool#1340, fd 215, 16) +[2618009.629] {Default Queue} -> wl_shm_pool#1339.create_buffer(new id wl_buffer#1341, 0, 2, 2, 8, 0) +[2618009.634] {Default Queue} -> wl_shm_pool#1340.create_buffer(new id wl_buffer#1342, 0, 2, 2, 8, 0) +[2618009.641] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) +[2618009.646] {Default Queue} -> wl_surface#1319.commit() +[2618009.652] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) +[2618009.656] {Default Queue} -> wl_surface#1319.commit() +[2618009.664] {Default Queue} -> wl_compositor#1324.create_region(new id wl_region#1343) +[2618009.669] {Default Queue} -> wl_compositor#1324.create_region(new id wl_region#1344) +[2618009.674] {Default Queue} -> wl_region#1343.subtract(0, 0, 2, 2) +[2618009.678] {Default Queue} -> wl_region#1343.add(0, 0, 0, 0) +[2618009.683] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2618009.687] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2618009.691] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618009.695] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618009.702] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) +[2618009.707] {Default Queue} -> wl_surface#1319.commit() +[2618009.741] {Default Queue} -> wl_shm#1329.create_pool(new id wl_shm_pool#1345, fd 218, 640) +[2618009.747] {Default Queue} -> wl_shm#1329.create_pool(new id wl_shm_pool#1346, fd 219, 640) +[2618009.752] {Default Queue} -> wl_shm_pool#1345.create_buffer(new id wl_buffer#1347, 0, 10, 16, 40, 0) +[2618009.756] {Default Queue} -> wl_shm_pool#1346.create_buffer(new id wl_buffer#1348, 0, 10, 16, 40, 0) +[2618009.763] {Default Queue} -> wl_compositor#1324.create_surface(new id wl_surface#1349) +[2618009.767] {Default Queue} -> wl_surface#1349.attach(wl_buffer#1347, 0, 0) +[2618009.772] {Default Queue} -> wl_surface#1349.commit() +[2618009.778] {Default Queue} -> wl_surface#1349.attach(wl_buffer#1347, 0, 0) +[2618009.783] {Default Queue} -> wl_surface#1349.commit() +[2618009.788] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618009.794] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618009.798] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618009.806] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1350) +[2618009.810] {Default Queue} -> wl_display#1.sync(new id wl_callback#1351) +[2618018.840] {Display Queue} wl_display#1.delete_id(1351) +[2618018.855] {Default Queue} wl_keyboard#1320.keymap(1, fd 214, 68213) +[2618018.871] {Default Queue} wl_keyboard#1320.enter(566, wl_surface#19, array[0]) +[2618018.896] {Default Queue} wl_keyboard#1320.modifiers(566, 0, 0, 16, 0) +[2618018.910] {Default Queue} discarded wl_shm#1327.format(875709016) +[2618018.916] {Default Queue} discarded wl_shm#1327.format(1) +[2618018.921] {Default Queue} discarded wl_shm#1327.format(0) +[2618018.925] {Default Queue} discarded wl_shm#1327.format(875708993) +[2618018.929] {Default Queue} discarded wl_shm#1328.format(875709016) +[2618018.933] {Default Queue} discarded wl_shm#1328.format(1) +[2618018.937] {Default Queue} discarded wl_shm#1328.format(0) +[2618018.941] {Default Queue} discarded wl_shm#1328.format(875708993) +[2618018.945] {Default Queue} discarded wl_shm#1329.format(875709016) +[2618018.948] {Default Queue} discarded wl_shm#1329.format(1) +[2618018.952] {Default Queue} discarded wl_shm#1329.format(0) +[2618018.956] {Default Queue} discarded wl_shm#1329.format(875708993) +[2618018.960] {Default Queue} wl_seat#1336.capabilities(7) +[2618018.964] {Default Queue} -> wl_seat#1336.get_keyboard(new id wl_keyboard#1352) +[2618018.969] {Default Queue} -> wl_seat#1336.get_pointer(new id wl_pointer#1353) +[2618018.973] {Default Queue} -> wl_data_device_manager#1332.get_data_device(new id wl_data_device#1354, wl_seat#1336) +[2618018.978] {Default Queue} -> zwp_primary_selection_device_manager_v1#1334.get_device(new id zwp_primary_selection_device_v1#1355, wl_seat#1336) +[2618018.986] {Default Queue} wl_output#1337.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618018.992] {Default Queue} wl_output#1337.mode(3, 1280, 800, 60000) +[2618018.996] {Default Queue} discarded wl_surface#3.enter(wl_output#1337) +[2618019.001] {Default Queue} discarded wl_surface#999.enter(wl_output#1337) +[2618019.005] {Default Queue} discarded wl_surface#1191.enter(wl_output#1337) +[2618019.009] {Default Queue} discarded wl_surface#1159.enter(wl_output#1337) +[2618019.013] {Default Queue} discarded wl_surface#423.enter(wl_output#1337) +[2618019.017] {Default Queue} discarded wl_surface#1127.enter(wl_output#1337) +[2618019.026] {Default Queue} discarded wl_surface#1063.enter(wl_output#1337) +[2618019.033] {Default Queue} discarded wl_surface#455.enter(wl_output#1337) +[2618019.037] {Default Queue} discarded wl_surface#903.enter(wl_output#1337) +[2618019.041] {Default Queue} discarded wl_surface#775.enter(wl_output#1337) +[2618019.045] {Default Queue} discarded wl_surface#135.enter(wl_output#1337) +[2618019.048] {Default Queue} discarded wl_surface#1287.enter(wl_output#1337) +[2618019.052] {Default Queue} discarded wl_surface#1031.enter(wl_output#1337) +[2618019.056] {Default Queue} discarded wl_surface#615.enter(wl_output#1337) +[2618019.060] {Default Queue} discarded wl_surface#231.enter(wl_output#1337) +[2618019.064] {Default Queue} discarded wl_surface#359.enter(wl_output#1337) +[2618019.068] {Default Queue} discarded wl_surface#583.enter(wl_output#1337) +[2618019.072] {Default Queue} discarded wl_surface#743.enter(wl_output#1337) +[2618019.076] {Default Queue} discarded wl_surface#967.enter(wl_output#1337) +[2618019.080] {Default Queue} discarded wl_surface#103.enter(wl_output#1337) +[2618019.084] {Default Queue} discarded wl_surface#327.enter(wl_output#1337) +[2618019.088] {Default Queue} discarded wl_surface#43.enter(wl_output#1337) +[2618019.092] {Default Queue} discarded wl_surface#807.enter(wl_output#1337) +[2618019.096] {Default Queue} discarded wl_surface#19.enter(wl_output#1337) +[2618019.100] {Default Queue} discarded wl_surface#199.enter(wl_output#1337) +[2618019.104] {Default Queue} discarded wl_surface#391.enter(wl_output#1337) +[2618019.108] {Default Queue} discarded wl_surface#935.enter(wl_output#1337) +[2618019.112] {Default Queue} discarded wl_surface#711.enter(wl_output#1337) +[2618019.115] {Default Queue} discarded wl_surface#1223.enter(wl_output#1337) +[2618019.119] {Default Queue} discarded wl_surface#871.enter(wl_output#1337) +[2618019.123] {Default Queue} discarded wl_surface#263.enter(wl_output#1337) +[2618019.127] {Default Queue} discarded wl_surface#551.enter(wl_output#1337) +[2618019.131] {Default Queue} discarded wl_surface#647.enter(wl_output#1337) +[2618019.135] {Default Queue} discarded wl_surface#71.enter(wl_output#1337) +[2618019.138] {Default Queue} discarded wl_surface#839.enter(wl_output#1337) +[2618019.142] {Default Queue} discarded wl_surface#1095.enter(wl_output#1337) +[2618019.146] {Default Queue} discarded wl_surface#487.enter(wl_output#1337) +[2618019.150] {Default Queue} discarded wl_surface#519.enter(wl_output#1337) +[2618019.154] {Default Queue} discarded wl_surface#295.enter(wl_output#1337) +[2618019.158] {Default Queue} discarded wl_surface#167.enter(wl_output#1337) +[2618019.162] {Default Queue} discarded wl_surface#1255.enter(wl_output#1337) +[2618019.165] {Default Queue} discarded wl_surface#679.enter(wl_output#1337) +[2618019.169] {Default Queue} wl_registry#1350.global(1, "wl_compositor", 6) +[2618019.175] {Default Queue} -> wl_registry#1350.bind(1, "wl_compositor", 1, new id [unknown]#1356) +[2618019.184] {Default Queue} wl_registry#1350.global(2, "wl_subcompositor", 1) +[2618019.189] {Default Queue} -> wl_registry#1350.bind(2, "wl_subcompositor", 1, new id [unknown]#1357) +[2618019.193] {Default Queue} wl_registry#1350.global(3, "xdg_wm_base", 6) +[2618019.198] {Default Queue} -> wl_registry#1350.bind(3, "xdg_wm_base", 1, new id [unknown]#1358) +[2618019.202] {Default Queue} wl_registry#1350.global(6, "zwlr_layer_shell_v1", 5) +[2618019.207] {Default Queue} wl_registry#1350.global(7, "ext_session_lock_manager_v1", 1) +[2618019.212] {Default Queue} wl_registry#1350.global(8, "wl_shm", 2) +[2618019.217] {Default Queue} -> wl_registry#1350.bind(8, "wl_shm", 1, new id [unknown]#1359) +[2618019.221] {Default Queue} -> wl_registry#1350.bind(8, "wl_shm", 1, new id [unknown]#1360) +[2618019.225] {Default Queue} -> wl_registry#1350.bind(8, "wl_shm", 1, new id [unknown]#1361) +[2618019.229] {Default Queue} wl_registry#1350.global(9, "zxdg_output_manager_v1", 3) +[2618019.234] {Default Queue} wl_registry#1350.global(10, "wp_fractional_scale_manager_v1", 1) +[2618019.239] {Default Queue} wl_registry#1350.global(11, "zwp_tablet_manager_v2", 1) +[2618019.247] {Default Queue} wl_registry#1350.global(12, "zwp_pointer_gestures_v1", 3) +[2618019.253] {Default Queue} wl_registry#1350.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618019.258] {Default Queue} -> wl_registry#1350.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1362) +[2618019.262] {Default Queue} wl_registry#1350.global(14, "zwp_pointer_constraints_v1", 1) +[2618019.266] {Default Queue} -> wl_registry#1350.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1363) +[2618019.271] {Default Queue} wl_registry#1350.global(15, "ext_idle_notifier_v1", 2) +[2618019.275] {Default Queue} wl_registry#1350.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618019.280] {Default Queue} wl_registry#1350.global(17, "wl_data_device_manager", 3) +[2618019.285] {Default Queue} -> wl_registry#1350.bind(17, "wl_data_device_manager", 2, new id [unknown]#1364) +[2618019.290] {Default Queue} -> wl_data_device_manager#1364.create_data_source(new id wl_data_source#1365) +[2618019.294] {Default Queue} -> wl_data_source#1365.offer("text/plain") +[2618019.299] {Default Queue} -> wl_data_source#1365.offer("text/plain;charset=utf-8") +[2618019.303] {Default Queue} -> wl_data_source#1365.offer("TEXT") +[2618019.307] {Default Queue} -> wl_data_source#1365.offer("STRING") +[2618019.311] {Default Queue} -> wl_data_source#1365.offer("UTF8_STRING") +[2618019.315] {Default Queue} wl_registry#1350.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618019.320] {Default Queue} -> wl_registry#1350.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1366) +[2618019.328] {Default Queue} -> zwp_primary_selection_device_manager_v1#1366.create_source(new id zwp_primary_selection_source_v1#1367) +[2618019.335] {Default Queue} -> zwp_primary_selection_source_v1#1367.offer("text/plain") +[2618019.340] {Default Queue} -> zwp_primary_selection_source_v1#1367.offer("text/plain;charset=utf-8") +[2618019.344] {Default Queue} -> zwp_primary_selection_source_v1#1367.offer("TEXT") +[2618019.348] {Default Queue} -> zwp_primary_selection_source_v1#1367.offer("STRING") +[2618019.352] {Default Queue} -> zwp_primary_selection_source_v1#1367.offer("UTF8_STRING") +[2618019.356] {Default Queue} wl_registry#1350.global(19, "zwlr_data_control_manager_v1", 2) +[2618019.361] {Default Queue} wl_registry#1350.global(20, "ext_data_control_manager_v1", 1) +[2618019.365] {Default Queue} wl_registry#1350.global(21, "wp_presentation", 2) +[2618019.369] {Default Queue} wl_registry#1350.global(22, "wp_security_context_manager_v1", 1) +[2618019.374] {Default Queue} wl_registry#1350.global(23, "zwp_text_input_manager_v3", 1) +[2618019.378] {Default Queue} wl_registry#1350.global(24, "zwp_input_method_manager_v2", 1) +[2618019.382] {Default Queue} wl_registry#1350.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618019.387] {Default Queue} wl_registry#1350.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618019.391] {Default Queue} wl_registry#1350.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618019.395] {Default Queue} wl_registry#1350.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618019.400] {Default Queue} wl_registry#1350.global(29, "ext_workspace_manager_v1", 1) +[2618019.404] {Default Queue} wl_registry#1350.global(30, "zwlr_output_manager_v1", 4) +[2618019.408] {Default Queue} wl_registry#1350.global(31, "zwlr_screencopy_manager_v1", 3) +[2618019.413] {Default Queue} wl_registry#1350.global(32, "wp_viewporter", 1) +[2618019.417] {Default Queue} wl_registry#1350.global(33, "zxdg_exporter_v2", 1) +[2618019.421] {Default Queue} wl_registry#1350.global(34, "zxdg_importer_v2", 1) +[2618019.425] {Default Queue} wl_registry#1350.global(36, "xdg_activation_v1", 1) +[2618019.430] {Default Queue} wl_registry#1350.global(37, "mutter_x11_interop", 1) +[2618019.434] {Default Queue} wl_registry#1350.global(38, "wl_seat", 9) +[2618019.439] {Default Queue} -> wl_registry#1350.bind(38, "wl_seat", 1, new id [unknown]#1368) +[2618019.443] {Default Queue} wl_registry#1350.global(39, "wp_cursor_shape_manager_v1", 2) +[2618019.450] {Default Queue} wl_registry#1350.global(40, "wl_output", 4) +[2618019.456] {Default Queue} -> wl_registry#1350.bind(40, "wl_output", 1, new id [unknown]#1369) +[2618019.461] {Default Queue} wl_callback#1351.done(0) +[2618019.465] {Default Queue} discarded wl_surface#1319.enter(wl_output#18) +[2618019.469] {Default Queue} discarded wl_surface#1319.enter(wl_output#57) +[2618019.473] {Default Queue} discarded wl_surface#1319.enter(wl_output#89) +[2618019.477] {Default Queue} discarded wl_surface#1319.enter(wl_output#121) +[2618019.481] {Default Queue} discarded wl_surface#1319.enter(wl_output#153) +[2618019.485] {Default Queue} discarded wl_surface#1319.enter(wl_output#185) +[2618019.489] {Default Queue} discarded wl_surface#1319.enter(wl_output#217) +[2618019.493] {Default Queue} discarded wl_surface#1319.enter(wl_output#249) +[2618019.496] {Default Queue} discarded wl_surface#1319.enter(wl_output#281) +[2618019.500] {Default Queue} discarded wl_surface#1319.enter(wl_output#313) +[2618019.504] {Default Queue} discarded wl_surface#1319.enter(wl_output#345) +[2618019.508] {Default Queue} discarded wl_surface#1319.enter(wl_output#377) +[2618019.512] {Default Queue} discarded wl_surface#1319.enter(wl_output#409) +[2618019.516] {Default Queue} discarded wl_surface#1319.enter(wl_output#441) +[2618019.519] {Default Queue} discarded wl_surface#1319.enter(wl_output#473) +[2618019.523] {Default Queue} discarded wl_surface#1319.enter(wl_output#505) +[2618019.527] {Default Queue} discarded wl_surface#1319.enter(wl_output#537) +[2618019.531] {Default Queue} discarded wl_surface#1319.enter(wl_output#569) +[2618019.535] {Default Queue} discarded wl_surface#1319.enter(wl_output#601) +[2618019.539] {Default Queue} discarded wl_surface#1319.enter(wl_output#633) +[2618019.543] {Default Queue} discarded wl_surface#1319.enter(wl_output#665) +[2618019.547] {Default Queue} discarded wl_surface#1319.enter(wl_output#697) +[2618019.551] {Default Queue} discarded wl_surface#1319.enter(wl_output#729) +[2618019.555] {Default Queue} discarded wl_surface#1319.enter(wl_output#761) +[2618019.559] {Default Queue} discarded wl_surface#1319.enter(wl_output#793) +[2618019.562] {Default Queue} discarded wl_surface#1319.enter(wl_output#825) +[2618019.566] {Default Queue} discarded wl_surface#1319.enter(wl_output#857) +[2618019.570] {Default Queue} discarded wl_surface#1319.enter(wl_output#889) +[2618019.574] {Default Queue} discarded wl_surface#1319.enter(wl_output#921) +[2618019.578] {Default Queue} discarded wl_surface#1319.enter(wl_output#953) +[2618019.584] {Default Queue} discarded wl_surface#1319.enter(wl_output#985) +[2618019.590] {Default Queue} discarded wl_surface#1319.enter(wl_output#1017) +[2618019.596] {Default Queue} discarded wl_surface#1319.enter(wl_output#1049) +[2618019.602] {Default Queue} discarded wl_surface#1319.enter(wl_output#1081) +[2618019.608] {Default Queue} discarded wl_surface#1319.enter(wl_output#1113) +[2618019.614] {Default Queue} discarded wl_surface#1319.enter(wl_output#1145) +[2618019.620] {Default Queue} discarded wl_surface#1319.enter(wl_output#1177) +[2618019.626] {Default Queue} discarded wl_surface#1319.enter(wl_output#1209) +[2618019.632] {Default Queue} discarded wl_surface#1319.enter(wl_output#1241) +[2618019.637] {Default Queue} discarded wl_surface#1319.enter(wl_output#1273) +[2618019.643] {Default Queue} discarded wl_surface#1319.enter(wl_output#1305) +[2618019.647] {Default Queue} discarded wl_surface#1319.enter(wl_output#1337) +[2618019.652] {Default Queue} -> wl_compositor#1260.create_surface(new id wl_surface#1351) +[2618019.657] {Default Queue} -> wl_subcompositor#1357.get_subsurface(new id wl_subsurface#1370, wl_surface#1351, wl_surface#1255) +[2618019.664] {Default Queue} -> wl_subsurface#1370.set_desync() +[2618019.669] {Default Queue} -> wl_subsurface#1370.set_position(0, 0) +[2618019.673] {Default Queue} -> wl_subsurface#1370.place_above(wl_surface#1255) +[2618019.716] {Default Queue} -> wl_shm#1359.create_pool(new id wl_shm_pool#1371, fd 219, 16) +[2618019.723] {Default Queue} -> wl_shm#1359.create_pool(new id wl_shm_pool#1372, fd 220, 16) +[2618019.731] {Default Queue} -> wl_shm_pool#1371.create_buffer(new id wl_buffer#1373, 0, 2, 2, 8, 0) +[2618019.739] {Default Queue} -> wl_shm_pool#1372.create_buffer(new id wl_buffer#1374, 0, 2, 2, 8, 0) +[2618019.747] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) +[2618019.752] {Default Queue} -> wl_surface#1351.commit() +[2618019.757] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) +[2618019.761] {Default Queue} -> wl_surface#1351.commit() +[2618019.765] {Default Queue} -> wl_compositor#1356.create_region(new id wl_region#1375) +[2618019.770] {Default Queue} -> wl_compositor#1356.create_region(new id wl_region#1376) +[2618019.774] {Default Queue} -> wl_region#1375.subtract(0, 0, 2, 2) +[2618019.779] {Default Queue} -> wl_region#1375.add(0, 0, 0, 0) +[2618019.783] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2618019.787] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2618019.791] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618019.796] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618019.803] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) +[2618019.808] {Default Queue} -> wl_surface#1351.commit() +[2618019.845] {Default Queue} -> wl_shm#1361.create_pool(new id wl_shm_pool#1377, fd 223, 640) +[2618019.854] {Default Queue} -> wl_shm#1361.create_pool(new id wl_shm_pool#1378, fd 224, 640) +[2618019.867] {Default Queue} -> wl_shm_pool#1377.create_buffer(new id wl_buffer#1379, 0, 10, 16, 40, 0) +[2618019.875] {Default Queue} -> wl_shm_pool#1378.create_buffer(new id wl_buffer#1380, 0, 10, 16, 40, 0) +[2618019.887] {Default Queue} -> wl_compositor#1356.create_surface(new id wl_surface#1381) +[2618019.894] {Default Queue} -> wl_surface#1381.attach(wl_buffer#1379, 0, 0) +[2618019.900] {Default Queue} -> wl_surface#1381.commit() +[2618019.906] {Default Queue} -> wl_surface#1381.attach(wl_buffer#1379, 0, 0) +[2618019.911] {Default Queue} -> wl_surface#1381.commit() +[2618019.917] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618019.923] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618019.927] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618019.935] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1382) +[2618019.941] {Default Queue} -> wl_display#1.sync(new id wl_callback#1383) +[2618023.887] {Display Queue} wl_display#1.delete_id(1383) +[2618023.913] {Default Queue} wl_keyboard#1352.keymap(1, fd 219, 68213) +[2618023.922] {Default Queue} wl_keyboard#1352.enter(566, wl_surface#19, array[0]) +[2618023.931] {Default Queue} wl_keyboard#1352.modifiers(566, 0, 0, 16, 0) +[2618023.940] {Default Queue} discarded wl_shm#1359.format(875709016) +[2618023.948] {Default Queue} discarded wl_shm#1359.format(1) +[2618023.955] {Default Queue} discarded wl_shm#1359.format(0) +[2618023.962] {Default Queue} discarded wl_shm#1359.format(875708993) +[2618023.968] {Default Queue} discarded wl_shm#1360.format(875709016) +[2618023.975] {Default Queue} discarded wl_shm#1360.format(1) +[2618023.983] {Default Queue} discarded wl_shm#1360.format(0) +[2618023.989] {Default Queue} discarded wl_shm#1360.format(875708993) +[2618023.996] {Default Queue} discarded wl_shm#1361.format(875709016) +[2618024.003] {Default Queue} discarded wl_shm#1361.format(1) +[2618024.010] {Default Queue} discarded wl_shm#1361.format(0) +[2618024.016] {Default Queue} discarded wl_shm#1361.format(875708993) +[2618024.022] {Default Queue} wl_seat#1368.capabilities(7) +[2618024.029] {Default Queue} -> wl_seat#1368.get_keyboard(new id wl_keyboard#1384) +[2618024.038] {Default Queue} -> wl_seat#1368.get_pointer(new id wl_pointer#1385) +[2618024.046] {Default Queue} -> wl_data_device_manager#1364.get_data_device(new id wl_data_device#1386, wl_seat#1368) +[2618024.055] {Default Queue} -> zwp_primary_selection_device_manager_v1#1366.get_device(new id zwp_primary_selection_device_v1#1387, wl_seat#1368) +[2618024.071] {Default Queue} wl_output#1369.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618024.080] {Default Queue} wl_output#1369.mode(3, 1280, 800, 60000) +[2618024.095] {Default Queue} discarded wl_surface#3.enter(wl_output#1369) +[2618024.106] {Default Queue} discarded wl_surface#999.enter(wl_output#1369) +[2618024.113] {Default Queue} discarded wl_surface#1191.enter(wl_output#1369) +[2618024.120] {Default Queue} discarded wl_surface#1159.enter(wl_output#1369) +[2618024.126] {Default Queue} discarded wl_surface#423.enter(wl_output#1369) +[2618024.133] {Default Queue} discarded wl_surface#1319.enter(wl_output#1369) +[2618024.140] {Default Queue} discarded wl_surface#1127.enter(wl_output#1369) +[2618024.147] {Default Queue} discarded wl_surface#1063.enter(wl_output#1369) +[2618024.155] {Default Queue} discarded wl_surface#455.enter(wl_output#1369) +[2618024.162] {Default Queue} discarded wl_surface#903.enter(wl_output#1369) +[2618024.169] {Default Queue} discarded wl_surface#775.enter(wl_output#1369) +[2618024.176] {Default Queue} discarded wl_surface#135.enter(wl_output#1369) +[2618024.183] {Default Queue} discarded wl_surface#1287.enter(wl_output#1369) +[2618024.191] {Default Queue} discarded wl_surface#1031.enter(wl_output#1369) +[2618024.198] {Default Queue} discarded wl_surface#615.enter(wl_output#1369) +[2618024.205] {Default Queue} discarded wl_surface#231.enter(wl_output#1369) +[2618024.213] {Default Queue} discarded wl_surface#359.enter(wl_output#1369) +[2618024.220] {Default Queue} discarded wl_surface#583.enter(wl_output#1369) +[2618024.227] {Default Queue} discarded wl_surface#743.enter(wl_output#1369) +[2618024.234] {Default Queue} discarded wl_surface#967.enter(wl_output#1369) +[2618024.242] {Default Queue} discarded wl_surface#103.enter(wl_output#1369) +[2618024.249] {Default Queue} discarded wl_surface#327.enter(wl_output#1369) +[2618024.257] {Default Queue} discarded wl_surface#43.enter(wl_output#1369) +[2618024.264] {Default Queue} discarded wl_surface#807.enter(wl_output#1369) +[2618024.271] {Default Queue} discarded wl_surface#19.enter(wl_output#1369) +[2618024.278] {Default Queue} discarded wl_surface#199.enter(wl_output#1369) +[2618024.284] {Default Queue} discarded wl_surface#391.enter(wl_output#1369) +[2618024.292] {Default Queue} discarded wl_surface#935.enter(wl_output#1369) +[2618024.298] {Default Queue} discarded wl_surface#711.enter(wl_output#1369) +[2618024.303] {Default Queue} discarded wl_surface#1223.enter(wl_output#1369) +[2618024.308] {Default Queue} discarded wl_surface#871.enter(wl_output#1369) +[2618024.313] {Default Queue} discarded wl_surface#263.enter(wl_output#1369) +[2618024.318] {Default Queue} discarded wl_surface#551.enter(wl_output#1369) +[2618024.324] {Default Queue} discarded wl_surface#647.enter(wl_output#1369) +[2618024.331] {Default Queue} discarded wl_surface#71.enter(wl_output#1369) +[2618024.337] {Default Queue} discarded wl_surface#839.enter(wl_output#1369) +[2618024.343] {Default Queue} discarded wl_surface#1095.enter(wl_output#1369) +[2618024.350] {Default Queue} discarded wl_surface#487.enter(wl_output#1369) +[2618024.357] {Default Queue} discarded wl_surface#519.enter(wl_output#1369) +[2618024.364] {Default Queue} discarded wl_surface#295.enter(wl_output#1369) +[2618024.370] {Default Queue} discarded wl_surface#167.enter(wl_output#1369) +[2618024.375] {Default Queue} discarded wl_surface#1255.enter(wl_output#1369) +[2618024.379] {Default Queue} discarded wl_surface#679.enter(wl_output#1369) +[2618024.384] {Default Queue} wl_registry#1382.global(1, "wl_compositor", 6) +[2618024.392] {Default Queue} -> wl_registry#1382.bind(1, "wl_compositor", 1, new id [unknown]#1388) +[2618024.398] {Default Queue} wl_registry#1382.global(2, "wl_subcompositor", 1) +[2618024.404] {Default Queue} -> wl_registry#1382.bind(2, "wl_subcompositor", 1, new id [unknown]#1389) +[2618024.410] {Default Queue} wl_registry#1382.global(3, "xdg_wm_base", 6) +[2618024.416] {Default Queue} -> wl_registry#1382.bind(3, "xdg_wm_base", 1, new id [unknown]#1390) +[2618024.421] {Default Queue} wl_registry#1382.global(6, "zwlr_layer_shell_v1", 5) +[2618024.427] {Default Queue} wl_registry#1382.global(7, "ext_session_lock_manager_v1", 1) +[2618024.432] {Default Queue} wl_registry#1382.global(8, "wl_shm", 2) +[2618024.444] {Default Queue} -> wl_registry#1382.bind(8, "wl_shm", 1, new id [unknown]#1391) +[2618024.452] {Default Queue} -> wl_registry#1382.bind(8, "wl_shm", 1, new id [unknown]#1392) +[2618024.461] {Default Queue} -> wl_registry#1382.bind(8, "wl_shm", 1, new id [unknown]#1393) +[2618024.467] {Default Queue} wl_registry#1382.global(9, "zxdg_output_manager_v1", 3) +[2618024.472] {Default Queue} wl_registry#1382.global(10, "wp_fractional_scale_manager_v1", 1) +[2618024.478] {Default Queue} wl_registry#1382.global(11, "zwp_tablet_manager_v2", 1) +[2618024.483] {Default Queue} wl_registry#1382.global(12, "zwp_pointer_gestures_v1", 3) +[2618024.488] {Default Queue} wl_registry#1382.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618024.494] {Default Queue} -> wl_registry#1382.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1394) +[2618024.500] {Default Queue} wl_registry#1382.global(14, "zwp_pointer_constraints_v1", 1) +[2618024.505] {Default Queue} -> wl_registry#1382.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1395) +[2618024.511] {Default Queue} wl_registry#1382.global(15, "ext_idle_notifier_v1", 2) +[2618024.516] {Default Queue} wl_registry#1382.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618024.522] {Default Queue} wl_registry#1382.global(17, "wl_data_device_manager", 3) +[2618024.528] {Default Queue} -> wl_registry#1382.bind(17, "wl_data_device_manager", 2, new id [unknown]#1396) +[2618024.533] {Default Queue} -> wl_data_device_manager#1396.create_data_source(new id wl_data_source#1397) +[2618024.539] {Default Queue} -> wl_data_source#1397.offer("text/plain") +[2618024.544] {Default Queue} -> wl_data_source#1397.offer("text/plain;charset=utf-8") +[2618024.549] {Default Queue} -> wl_data_source#1397.offer("TEXT") +[2618024.554] {Default Queue} -> wl_data_source#1397.offer("STRING") +[2618024.559] {Default Queue} -> wl_data_source#1397.offer("UTF8_STRING") +[2618024.565] {Default Queue} wl_registry#1382.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618024.571] {Default Queue} -> wl_registry#1382.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1398) +[2618024.581] {Default Queue} -> zwp_primary_selection_device_manager_v1#1398.create_source(new id zwp_primary_selection_source_v1#1399) +[2618024.591] {Default Queue} -> zwp_primary_selection_source_v1#1399.offer("text/plain") +[2618024.596] {Default Queue} -> zwp_primary_selection_source_v1#1399.offer("text/plain;charset=utf-8") +[2618024.601] {Default Queue} -> zwp_primary_selection_source_v1#1399.offer("TEXT") +[2618024.606] {Default Queue} -> zwp_primary_selection_source_v1#1399.offer("STRING") +[2618024.611] {Default Queue} -> zwp_primary_selection_source_v1#1399.offer("UTF8_STRING") +[2618024.616] {Default Queue} wl_registry#1382.global(19, "zwlr_data_control_manager_v1", 2) +[2618024.622] {Default Queue} wl_registry#1382.global(20, "ext_data_control_manager_v1", 1) +[2618024.627] {Default Queue} wl_registry#1382.global(21, "wp_presentation", 2) +[2618024.632] {Default Queue} wl_registry#1382.global(22, "wp_security_context_manager_v1", 1) +[2618024.638] {Default Queue} wl_registry#1382.global(23, "zwp_text_input_manager_v3", 1) +[2618024.643] {Default Queue} wl_registry#1382.global(24, "zwp_input_method_manager_v2", 1) +[2618024.649] {Default Queue} wl_registry#1382.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618024.654] {Default Queue} wl_registry#1382.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618024.660] {Default Queue} wl_registry#1382.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618024.665] {Default Queue} wl_registry#1382.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618024.670] {Default Queue} wl_registry#1382.global(29, "ext_workspace_manager_v1", 1) +[2618024.676] {Default Queue} wl_registry#1382.global(30, "zwlr_output_manager_v1", 4) +[2618024.681] {Default Queue} wl_registry#1382.global(31, "zwlr_screencopy_manager_v1", 3) +[2618024.686] {Default Queue} wl_registry#1382.global(32, "wp_viewporter", 1) +[2618024.696] {Default Queue} wl_registry#1382.global(33, "zxdg_exporter_v2", 1) +[2618024.703] {Default Queue} wl_registry#1382.global(34, "zxdg_importer_v2", 1) +[2618024.709] {Default Queue} wl_registry#1382.global(36, "xdg_activation_v1", 1) +[2618024.714] {Default Queue} wl_registry#1382.global(37, "mutter_x11_interop", 1) +[2618024.719] {Default Queue} wl_registry#1382.global(38, "wl_seat", 9) +[2618024.725] {Default Queue} -> wl_registry#1382.bind(38, "wl_seat", 1, new id [unknown]#1400) +[2618024.731] {Default Queue} wl_registry#1382.global(39, "wp_cursor_shape_manager_v1", 2) +[2618024.736] {Default Queue} wl_registry#1382.global(40, "wl_output", 4) +[2618024.742] {Default Queue} -> wl_registry#1382.bind(40, "wl_output", 1, new id [unknown]#1401) +[2618024.746] {Default Queue} wl_callback#1383.done(0) +[2618024.751] {Default Queue} discarded wl_surface#1351.enter(wl_output#18) +[2618024.755] {Default Queue} discarded wl_surface#1351.enter(wl_output#57) +[2618024.759] {Default Queue} discarded wl_surface#1351.enter(wl_output#89) +[2618024.763] {Default Queue} discarded wl_surface#1351.enter(wl_output#121) +[2618024.767] {Default Queue} discarded wl_surface#1351.enter(wl_output#153) +[2618024.771] {Default Queue} discarded wl_surface#1351.enter(wl_output#185) +[2618024.775] {Default Queue} discarded wl_surface#1351.enter(wl_output#217) +[2618024.779] {Default Queue} discarded wl_surface#1351.enter(wl_output#249) +[2618024.783] {Default Queue} discarded wl_surface#1351.enter(wl_output#281) +[2618024.787] {Default Queue} discarded wl_surface#1351.enter(wl_output#313) +[2618024.791] {Default Queue} discarded wl_surface#1351.enter(wl_output#345) +[2618024.795] {Default Queue} discarded wl_surface#1351.enter(wl_output#377) +[2618024.799] {Default Queue} discarded wl_surface#1351.enter(wl_output#409) +[2618024.802] {Default Queue} discarded wl_surface#1351.enter(wl_output#441) +[2618024.806] {Default Queue} discarded wl_surface#1351.enter(wl_output#473) +[2618024.810] {Default Queue} discarded wl_surface#1351.enter(wl_output#505) +[2618024.814] {Default Queue} discarded wl_surface#1351.enter(wl_output#537) +[2618024.818] {Default Queue} discarded wl_surface#1351.enter(wl_output#569) +[2618024.822] {Default Queue} discarded wl_surface#1351.enter(wl_output#601) +[2618024.826] {Default Queue} discarded wl_surface#1351.enter(wl_output#633) +[2618024.830] {Default Queue} discarded wl_surface#1351.enter(wl_output#665) +[2618024.834] {Default Queue} discarded wl_surface#1351.enter(wl_output#697) +[2618024.838] {Default Queue} discarded wl_surface#1351.enter(wl_output#729) +[2618024.842] {Default Queue} discarded wl_surface#1351.enter(wl_output#761) +[2618024.846] {Default Queue} discarded wl_surface#1351.enter(wl_output#793) +[2618024.850] {Default Queue} discarded wl_surface#1351.enter(wl_output#825) +[2618024.854] {Default Queue} discarded wl_surface#1351.enter(wl_output#857) +[2618024.858] {Default Queue} discarded wl_surface#1351.enter(wl_output#889) +[2618024.868] {Default Queue} discarded wl_surface#1351.enter(wl_output#921) +[2618024.871] {Default Queue} discarded wl_surface#1351.enter(wl_output#953) +[2618024.875] {Default Queue} discarded wl_surface#1351.enter(wl_output#985) +[2618024.879] {Default Queue} discarded wl_surface#1351.enter(wl_output#1017) +[2618024.883] {Default Queue} discarded wl_surface#1351.enter(wl_output#1049) +[2618024.887] {Default Queue} discarded wl_surface#1351.enter(wl_output#1081) +[2618024.891] {Default Queue} discarded wl_surface#1351.enter(wl_output#1113) +[2618024.895] {Default Queue} discarded wl_surface#1351.enter(wl_output#1145) +[2618024.899] {Default Queue} discarded wl_surface#1351.enter(wl_output#1177) +[2618024.903] {Default Queue} discarded wl_surface#1351.enter(wl_output#1209) +[2618024.906] {Default Queue} discarded wl_surface#1351.enter(wl_output#1241) +[2618024.910] {Default Queue} discarded wl_surface#1351.enter(wl_output#1273) +[2618024.914] {Default Queue} discarded wl_surface#1351.enter(wl_output#1305) +[2618024.918] {Default Queue} discarded wl_surface#1351.enter(wl_output#1337) +[2618024.922] {Default Queue} discarded wl_surface#1351.enter(wl_output#1369) +[2618024.929] {Default Queue} -> wl_compositor#1260.create_surface(new id wl_surface#1383) +[2618024.935] {Default Queue} -> wl_subcompositor#1389.get_subsurface(new id wl_subsurface#1402, wl_surface#1383, wl_surface#1255) +[2618024.945] {Default Queue} -> wl_subsurface#1402.set_desync() +[2618024.949] {Default Queue} -> wl_subsurface#1402.set_position(0, 0) +[2618024.954] {Default Queue} -> wl_subsurface#1402.place_above(wl_surface#1255) +[2618024.997] {Default Queue} -> wl_shm#1391.create_pool(new id wl_shm_pool#1403, fd 224, 16) +[2618025.004] {Default Queue} -> wl_shm#1391.create_pool(new id wl_shm_pool#1404, fd 225, 16) +[2618025.009] {Default Queue} -> wl_shm_pool#1403.create_buffer(new id wl_buffer#1405, 0, 2, 2, 8, 0) +[2618025.014] {Default Queue} -> wl_shm_pool#1404.create_buffer(new id wl_buffer#1406, 0, 2, 2, 8, 0) +[2618025.023] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) +[2618025.027] {Default Queue} -> wl_surface#1383.commit() +[2618025.033] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) +[2618025.037] {Default Queue} -> wl_surface#1383.commit() +[2618025.041] {Default Queue} -> wl_compositor#1388.create_region(new id wl_region#1407) +[2618025.045] {Default Queue} -> wl_compositor#1388.create_region(new id wl_region#1408) +[2618025.049] {Default Queue} -> wl_region#1407.subtract(0, 0, 2, 2) +[2618025.054] {Default Queue} -> wl_region#1407.add(0, 0, 0, 0) +[2618025.058] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2618025.063] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2618025.067] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618025.071] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618025.078] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) +[2618025.083] {Default Queue} -> wl_surface#1383.commit() +[2618025.117] {Default Queue} -> wl_shm#1393.create_pool(new id wl_shm_pool#1409, fd 228, 640) +[2618025.123] {Default Queue} -> wl_shm#1393.create_pool(new id wl_shm_pool#1410, fd 229, 640) +[2618025.128] {Default Queue} -> wl_shm_pool#1409.create_buffer(new id wl_buffer#1411, 0, 10, 16, 40, 0) +[2618025.132] {Default Queue} -> wl_shm_pool#1410.create_buffer(new id wl_buffer#1412, 0, 10, 16, 40, 0) +[2618025.139] {Default Queue} -> wl_compositor#1388.create_surface(new id wl_surface#1413) +[2618025.144] {Default Queue} -> wl_surface#1413.attach(wl_buffer#1411, 0, 0) +[2618025.148] {Default Queue} -> wl_surface#1413.commit() +[2618025.153] {Default Queue} -> wl_surface#1413.attach(wl_buffer#1411, 0, 0) +[2618025.159] {Default Queue} -> wl_surface#1413.commit() +[2618025.165] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618025.170] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618025.175] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618025.183] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1414) +[2618025.188] {Default Queue} -> wl_display#1.sync(new id wl_callback#1415) +[2618033.871] {Display Queue} wl_display#1.delete_id(1415) +[2618033.885] {Default Queue} wl_keyboard#1384.keymap(1, fd 224, 68213) +[2618033.892] {Default Queue} wl_keyboard#1384.enter(566, wl_surface#19, array[0]) +[2618033.899] {Default Queue} wl_keyboard#1384.modifiers(566, 0, 0, 16, 0) +[2618033.906] {Default Queue} discarded wl_shm#1391.format(875709016) +[2618033.911] {Default Queue} discarded wl_shm#1391.format(1) +[2618033.916] {Default Queue} discarded wl_shm#1391.format(0) +[2618033.921] {Default Queue} discarded wl_shm#1391.format(875708993) +[2618033.925] {Default Queue} discarded wl_shm#1392.format(875709016) +[2618033.928] {Default Queue} discarded wl_shm#1392.format(1) +[2618033.932] {Default Queue} discarded wl_shm#1392.format(0) +[2618033.936] {Default Queue} discarded wl_shm#1392.format(875708993) +[2618033.940] {Default Queue} discarded wl_shm#1393.format(875709016) +[2618033.943] {Default Queue} discarded wl_shm#1393.format(1) +[2618033.947] {Default Queue} discarded wl_shm#1393.format(0) +[2618033.951] {Default Queue} discarded wl_shm#1393.format(875708993) +[2618033.959] {Default Queue} wl_seat#1400.capabilities(7) +[2618033.966] {Default Queue} -> wl_seat#1400.get_keyboard(new id wl_keyboard#1416) +[2618033.971] {Default Queue} -> wl_seat#1400.get_pointer(new id wl_pointer#1417) +[2618033.976] {Default Queue} -> wl_data_device_manager#1396.get_data_device(new id wl_data_device#1418, wl_seat#1400) +[2618033.980] {Default Queue} -> zwp_primary_selection_device_manager_v1#1398.get_device(new id zwp_primary_selection_device_v1#1419, wl_seat#1400) +[2618033.989] {Default Queue} wl_output#1401.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618033.994] {Default Queue} wl_output#1401.mode(3, 1280, 800, 60000) +[2618033.999] {Default Queue} discarded wl_surface#3.enter(wl_output#1401) +[2618034.003] {Default Queue} discarded wl_surface#999.enter(wl_output#1401) +[2618034.007] {Default Queue} discarded wl_surface#1191.enter(wl_output#1401) +[2618034.011] {Default Queue} discarded wl_surface#1159.enter(wl_output#1401) +[2618034.015] {Default Queue} discarded wl_surface#423.enter(wl_output#1401) +[2618034.018] {Default Queue} discarded wl_surface#1319.enter(wl_output#1401) +[2618034.022] {Default Queue} discarded wl_surface#1127.enter(wl_output#1401) +[2618034.026] {Default Queue} discarded wl_surface#1063.enter(wl_output#1401) +[2618034.030] {Default Queue} discarded wl_surface#455.enter(wl_output#1401) +[2618034.034] {Default Queue} discarded wl_surface#903.enter(wl_output#1401) +[2618034.038] {Default Queue} discarded wl_surface#775.enter(wl_output#1401) +[2618034.042] {Default Queue} discarded wl_surface#135.enter(wl_output#1401) +[2618034.045] {Default Queue} discarded wl_surface#1287.enter(wl_output#1401) +[2618034.049] {Default Queue} discarded wl_surface#1031.enter(wl_output#1401) +[2618034.053] {Default Queue} discarded wl_surface#615.enter(wl_output#1401) +[2618034.057] {Default Queue} discarded wl_surface#231.enter(wl_output#1401) +[2618034.061] {Default Queue} discarded wl_surface#359.enter(wl_output#1401) +[2618034.065] {Default Queue} discarded wl_surface#583.enter(wl_output#1401) +[2618034.069] {Default Queue} discarded wl_surface#743.enter(wl_output#1401) +[2618034.073] {Default Queue} discarded wl_surface#967.enter(wl_output#1401) +[2618034.077] {Default Queue} discarded wl_surface#103.enter(wl_output#1401) +[2618034.081] {Default Queue} discarded wl_surface#327.enter(wl_output#1401) +[2618034.085] {Default Queue} discarded wl_surface#43.enter(wl_output#1401) +[2618034.089] {Default Queue} discarded wl_surface#807.enter(wl_output#1401) +[2618034.093] {Default Queue} discarded wl_surface#19.enter(wl_output#1401) +[2618034.097] {Default Queue} discarded wl_surface#199.enter(wl_output#1401) +[2618034.101] {Default Queue} discarded wl_surface#391.enter(wl_output#1401) +[2618034.104] {Default Queue} discarded wl_surface#935.enter(wl_output#1401) +[2618034.108] {Default Queue} discarded wl_surface#1351.enter(wl_output#1401) +[2618034.113] {Default Queue} discarded wl_surface#711.enter(wl_output#1401) +[2618034.117] {Default Queue} discarded wl_surface#1223.enter(wl_output#1401) +[2618034.120] {Default Queue} discarded wl_surface#871.enter(wl_output#1401) +[2618034.124] {Default Queue} discarded wl_surface#263.enter(wl_output#1401) +[2618034.128] {Default Queue} discarded wl_surface#551.enter(wl_output#1401) +[2618034.132] {Default Queue} discarded wl_surface#647.enter(wl_output#1401) +[2618034.136] {Default Queue} discarded wl_surface#71.enter(wl_output#1401) +[2618034.140] {Default Queue} discarded wl_surface#839.enter(wl_output#1401) +[2618034.143] {Default Queue} discarded wl_surface#1095.enter(wl_output#1401) +[2618034.147] {Default Queue} discarded wl_surface#487.enter(wl_output#1401) +[2618034.151] {Default Queue} discarded wl_surface#519.enter(wl_output#1401) +[2618034.155] {Default Queue} discarded wl_surface#295.enter(wl_output#1401) +[2618034.159] {Default Queue} discarded wl_surface#167.enter(wl_output#1401) +[2618034.163] {Default Queue} discarded wl_surface#1255.enter(wl_output#1401) +[2618034.167] {Default Queue} discarded wl_surface#679.enter(wl_output#1401) +[2618034.174] {Default Queue} wl_registry#1414.global(1, "wl_compositor", 6) +[2618034.181] {Default Queue} -> wl_registry#1414.bind(1, "wl_compositor", 1, new id [unknown]#1420) +[2618034.186] {Default Queue} wl_registry#1414.global(2, "wl_subcompositor", 1) +[2618034.191] {Default Queue} -> wl_registry#1414.bind(2, "wl_subcompositor", 1, new id [unknown]#1421) +[2618034.195] {Default Queue} wl_registry#1414.global(3, "xdg_wm_base", 6) +[2618034.200] {Default Queue} -> wl_registry#1414.bind(3, "xdg_wm_base", 1, new id [unknown]#1422) +[2618034.204] {Default Queue} wl_registry#1414.global(6, "zwlr_layer_shell_v1", 5) +[2618034.209] {Default Queue} wl_registry#1414.global(7, "ext_session_lock_manager_v1", 1) +[2618034.213] {Default Queue} wl_registry#1414.global(8, "wl_shm", 2) +[2618034.218] {Default Queue} -> wl_registry#1414.bind(8, "wl_shm", 1, new id [unknown]#1423) +[2618034.222] {Default Queue} -> wl_registry#1414.bind(8, "wl_shm", 1, new id [unknown]#1424) +[2618034.227] {Default Queue} -> wl_registry#1414.bind(8, "wl_shm", 1, new id [unknown]#1425) +[2618034.231] {Default Queue} wl_registry#1414.global(9, "zxdg_output_manager_v1", 3) +[2618034.235] {Default Queue} wl_registry#1414.global(10, "wp_fractional_scale_manager_v1", 1) +[2618034.241] {Default Queue} wl_registry#1414.global(11, "zwp_tablet_manager_v2", 1) +[2618034.246] {Default Queue} wl_registry#1414.global(12, "zwp_pointer_gestures_v1", 3) +[2618034.250] {Default Queue} wl_registry#1414.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618034.255] {Default Queue} -> wl_registry#1414.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1426) +[2618034.259] {Default Queue} wl_registry#1414.global(14, "zwp_pointer_constraints_v1", 1) +[2618034.264] {Default Queue} -> wl_registry#1414.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1427) +[2618034.268] {Default Queue} wl_registry#1414.global(15, "ext_idle_notifier_v1", 2) +[2618034.272] {Default Queue} wl_registry#1414.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618034.277] {Default Queue} wl_registry#1414.global(17, "wl_data_device_manager", 3) +[2618034.282] {Default Queue} -> wl_registry#1414.bind(17, "wl_data_device_manager", 2, new id [unknown]#1428) +[2618034.286] {Default Queue} -> wl_data_device_manager#1428.create_data_source(new id wl_data_source#1429) +[2618034.290] {Default Queue} -> wl_data_source#1429.offer("text/plain") +[2618034.294] {Default Queue} -> wl_data_source#1429.offer("text/plain;charset=utf-8") +[2618034.298] {Default Queue} -> wl_data_source#1429.offer("TEXT") +[2618034.302] {Default Queue} -> wl_data_source#1429.offer("STRING") +[2618034.307] {Default Queue} -> wl_data_source#1429.offer("UTF8_STRING") +[2618034.311] {Default Queue} wl_registry#1414.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618034.315] {Default Queue} -> wl_registry#1414.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1430) +[2618034.323] {Default Queue} -> zwp_primary_selection_device_manager_v1#1430.create_source(new id zwp_primary_selection_source_v1#1431) +[2618034.330] {Default Queue} -> zwp_primary_selection_source_v1#1431.offer("text/plain") +[2618034.334] {Default Queue} -> zwp_primary_selection_source_v1#1431.offer("text/plain;charset=utf-8") +[2618034.339] {Default Queue} -> zwp_primary_selection_source_v1#1431.offer("TEXT") +[2618034.343] {Default Queue} -> zwp_primary_selection_source_v1#1431.offer("STRING") +[2618034.347] {Default Queue} -> zwp_primary_selection_source_v1#1431.offer("UTF8_STRING") +[2618034.351] {Default Queue} wl_registry#1414.global(19, "zwlr_data_control_manager_v1", 2) +[2618034.356] {Default Queue} wl_registry#1414.global(20, "ext_data_control_manager_v1", 1) +[2618034.360] {Default Queue} wl_registry#1414.global(21, "wp_presentation", 2) +[2618034.364] {Default Queue} wl_registry#1414.global(22, "wp_security_context_manager_v1", 1) +[2618034.369] {Default Queue} wl_registry#1414.global(23, "zwp_text_input_manager_v3", 1) +[2618034.373] {Default Queue} wl_registry#1414.global(24, "zwp_input_method_manager_v2", 1) +[2618034.377] {Default Queue} wl_registry#1414.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618034.384] {Default Queue} wl_registry#1414.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618034.390] {Default Queue} wl_registry#1414.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618034.395] {Default Queue} wl_registry#1414.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618034.399] {Default Queue} wl_registry#1414.global(29, "ext_workspace_manager_v1", 1) +[2618034.403] {Default Queue} wl_registry#1414.global(30, "zwlr_output_manager_v1", 4) +[2618034.407] {Default Queue} wl_registry#1414.global(31, "zwlr_screencopy_manager_v1", 3) +[2618034.412] {Default Queue} wl_registry#1414.global(32, "wp_viewporter", 1) +[2618034.416] {Default Queue} wl_registry#1414.global(33, "zxdg_exporter_v2", 1) +[2618034.420] {Default Queue} wl_registry#1414.global(34, "zxdg_importer_v2", 1) +[2618034.425] {Default Queue} wl_registry#1414.global(36, "xdg_activation_v1", 1) +[2618034.429] {Default Queue} wl_registry#1414.global(37, "mutter_x11_interop", 1) +[2618034.433] {Default Queue} wl_registry#1414.global(38, "wl_seat", 9) +[2618034.438] {Default Queue} -> wl_registry#1414.bind(38, "wl_seat", 1, new id [unknown]#1432) +[2618034.442] {Default Queue} wl_registry#1414.global(39, "wp_cursor_shape_manager_v1", 2) +[2618034.447] {Default Queue} wl_registry#1414.global(40, "wl_output", 4) +[2618034.451] {Default Queue} -> wl_registry#1414.bind(40, "wl_output", 1, new id [unknown]#1433) +[2618034.456] {Default Queue} wl_callback#1415.done(0) +[2618034.460] {Default Queue} discarded wl_surface#1383.enter(wl_output#18) +[2618034.464] {Default Queue} discarded wl_surface#1383.enter(wl_output#57) +[2618034.468] {Default Queue} discarded wl_surface#1383.enter(wl_output#89) +[2618034.472] {Default Queue} discarded wl_surface#1383.enter(wl_output#121) +[2618034.476] {Default Queue} discarded wl_surface#1383.enter(wl_output#153) +[2618034.481] {Default Queue} discarded wl_surface#1383.enter(wl_output#185) +[2618034.485] {Default Queue} discarded wl_surface#1383.enter(wl_output#217) +[2618034.488] {Default Queue} discarded wl_surface#1383.enter(wl_output#249) +[2618034.492] {Default Queue} discarded wl_surface#1383.enter(wl_output#281) +[2618034.496] {Default Queue} discarded wl_surface#1383.enter(wl_output#313) +[2618034.500] {Default Queue} discarded wl_surface#1383.enter(wl_output#345) +[2618034.504] {Default Queue} discarded wl_surface#1383.enter(wl_output#377) +[2618034.508] {Default Queue} discarded wl_surface#1383.enter(wl_output#409) +[2618034.512] {Default Queue} discarded wl_surface#1383.enter(wl_output#441) +[2618034.516] {Default Queue} discarded wl_surface#1383.enter(wl_output#473) +[2618034.520] {Default Queue} discarded wl_surface#1383.enter(wl_output#505) +[2618034.524] {Default Queue} discarded wl_surface#1383.enter(wl_output#537) +[2618034.528] {Default Queue} discarded wl_surface#1383.enter(wl_output#569) +[2618034.532] {Default Queue} discarded wl_surface#1383.enter(wl_output#601) +[2618034.536] {Default Queue} discarded wl_surface#1383.enter(wl_output#633) +[2618034.540] {Default Queue} discarded wl_surface#1383.enter(wl_output#665) +[2618034.544] {Default Queue} discarded wl_surface#1383.enter(wl_output#697) +[2618034.548] {Default Queue} discarded wl_surface#1383.enter(wl_output#729) +[2618034.552] {Default Queue} discarded wl_surface#1383.enter(wl_output#761) +[2618034.555] {Default Queue} discarded wl_surface#1383.enter(wl_output#793) +[2618034.559] {Default Queue} discarded wl_surface#1383.enter(wl_output#825) +[2618034.563] {Default Queue} discarded wl_surface#1383.enter(wl_output#857) +[2618034.567] {Default Queue} discarded wl_surface#1383.enter(wl_output#889) +[2618034.571] {Default Queue} discarded wl_surface#1383.enter(wl_output#921) +[2618034.575] {Default Queue} discarded wl_surface#1383.enter(wl_output#953) +[2618034.578] {Default Queue} discarded wl_surface#1383.enter(wl_output#985) +[2618034.582] {Default Queue} discarded wl_surface#1383.enter(wl_output#1017) +[2618034.586] {Default Queue} discarded wl_surface#1383.enter(wl_output#1049) +[2618034.590] {Default Queue} discarded wl_surface#1383.enter(wl_output#1081) +[2618034.597] {Default Queue} discarded wl_surface#1383.enter(wl_output#1113) +[2618034.602] {Default Queue} discarded wl_surface#1383.enter(wl_output#1145) +[2618034.606] {Default Queue} discarded wl_surface#1383.enter(wl_output#1177) +[2618034.610] {Default Queue} discarded wl_surface#1383.enter(wl_output#1209) +[2618034.614] {Default Queue} discarded wl_surface#1383.enter(wl_output#1241) +[2618034.618] {Default Queue} discarded wl_surface#1383.enter(wl_output#1273) +[2618034.622] {Default Queue} discarded wl_surface#1383.enter(wl_output#1305) +[2618034.626] {Default Queue} discarded wl_surface#1383.enter(wl_output#1337) +[2618034.630] {Default Queue} discarded wl_surface#1383.enter(wl_output#1369) +[2618034.634] {Default Queue} discarded wl_surface#1383.enter(wl_output#1401) +[2618034.638] {Default Queue} -> wl_compositor#1260.create_surface(new id wl_surface#1415) +[2618034.642] {Default Queue} -> wl_subcompositor#1421.get_subsurface(new id wl_subsurface#1434, wl_surface#1415, wl_surface#1255) +[2618034.650] {Default Queue} -> wl_subsurface#1434.set_desync() +[2618034.655] {Default Queue} -> wl_subsurface#1434.set_position(0, 0) +[2618034.659] {Default Queue} -> wl_subsurface#1434.place_above(wl_surface#1255) +[2618034.703] {Default Queue} -> wl_shm#1423.create_pool(new id wl_shm_pool#1435, fd 229, 16) +[2618034.710] {Default Queue} -> wl_shm#1423.create_pool(new id wl_shm_pool#1436, fd 230, 16) +[2618034.714] {Default Queue} -> wl_shm_pool#1435.create_buffer(new id wl_buffer#1437, 0, 2, 2, 8, 0) +[2618034.719] {Default Queue} -> wl_shm_pool#1436.create_buffer(new id wl_buffer#1438, 0, 2, 2, 8, 0) +[2618034.727] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) +[2618034.731] {Default Queue} -> wl_surface#1415.commit() +[2618034.737] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) +[2618034.742] {Default Queue} -> wl_surface#1415.commit() +[2618034.746] {Default Queue} -> wl_compositor#1420.create_region(new id wl_region#1439) +[2618034.750] {Default Queue} -> wl_compositor#1420.create_region(new id wl_region#1440) +[2618034.754] {Default Queue} -> wl_region#1439.subtract(0, 0, 2, 2) +[2618034.759] {Default Queue} -> wl_region#1439.add(0, 0, 0, 0) +[2618034.764] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2618034.768] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2618034.772] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618034.776] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618034.784] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) +[2618034.788] {Default Queue} -> wl_surface#1415.commit() +[2618034.822] {Default Queue} -> wl_shm#1425.create_pool(new id wl_shm_pool#1441, fd 233, 640) +[2618034.828] {Default Queue} -> wl_shm#1425.create_pool(new id wl_shm_pool#1442, fd 234, 640) +[2618034.833] {Default Queue} -> wl_shm_pool#1441.create_buffer(new id wl_buffer#1443, 0, 10, 16, 40, 0) +[2618034.838] {Default Queue} -> wl_shm_pool#1442.create_buffer(new id wl_buffer#1444, 0, 10, 16, 40, 0) +[2618034.845] {Default Queue} -> wl_compositor#1420.create_surface(new id wl_surface#1445) +[2618034.849] {Default Queue} -> wl_surface#1445.attach(wl_buffer#1443, 0, 0) +[2618034.853] {Default Queue} -> wl_surface#1445.commit() +[2618034.859] {Default Queue} -> wl_surface#1445.attach(wl_buffer#1443, 0, 0) +[2618034.870] {Default Queue} -> wl_surface#1445.commit() +[2618034.876] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618034.881] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618034.886] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618034.894] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1446) +[2618034.899] {Default Queue} -> wl_display#1.sync(new id wl_callback#1447) +[2618038.890] {Display Queue} wl_display#1.delete_id(1447) +[2618038.905] {Default Queue} wl_keyboard#1416.keymap(1, fd 229, 68213) +[2618038.911] {Default Queue} wl_keyboard#1416.enter(566, wl_surface#19, array[0]) +[2618038.916] {Default Queue} wl_keyboard#1416.modifiers(566, 0, 0, 16, 0) +[2618038.927] {Default Queue} discarded wl_shm#1423.format(875709016) +[2618038.935] {Default Queue} discarded wl_shm#1423.format(1) +[2618038.940] {Default Queue} discarded wl_shm#1423.format(0) +[2618038.944] {Default Queue} discarded wl_shm#1423.format(875708993) +[2618038.948] {Default Queue} discarded wl_shm#1424.format(875709016) +[2618038.952] {Default Queue} discarded wl_shm#1424.format(1) +[2618038.955] {Default Queue} discarded wl_shm#1424.format(0) +[2618038.959] {Default Queue} discarded wl_shm#1424.format(875708993) +[2618038.964] {Default Queue} discarded wl_shm#1425.format(875709016) +[2618038.968] {Default Queue} discarded wl_shm#1425.format(1) +[2618038.972] {Default Queue} discarded wl_shm#1425.format(0) +[2618038.977] {Default Queue} discarded wl_shm#1425.format(875708993) +[2618038.981] {Default Queue} wl_seat#1432.capabilities(7) +[2618038.985] {Default Queue} -> wl_seat#1432.get_keyboard(new id wl_keyboard#1448) +[2618038.990] {Default Queue} -> wl_seat#1432.get_pointer(new id wl_pointer#1449) +[2618038.994] {Default Queue} -> wl_data_device_manager#1428.get_data_device(new id wl_data_device#1450, wl_seat#1432) +[2618038.999] {Default Queue} -> zwp_primary_selection_device_manager_v1#1430.get_device(new id zwp_primary_selection_device_v1#1451, wl_seat#1432) +[2618039.007] {Default Queue} wl_output#1433.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618039.013] {Default Queue} wl_output#1433.mode(3, 1280, 800, 60000) +[2618039.017] {Default Queue} discarded wl_surface#3.enter(wl_output#1433) +[2618039.022] {Default Queue} discarded wl_surface#999.enter(wl_output#1433) +[2618039.026] {Default Queue} discarded wl_surface#1191.enter(wl_output#1433) +[2618039.030] {Default Queue} discarded wl_surface#1159.enter(wl_output#1433) +[2618039.033] {Default Queue} discarded wl_surface#423.enter(wl_output#1433) +[2618039.037] {Default Queue} discarded wl_surface#1319.enter(wl_output#1433) +[2618039.041] {Default Queue} discarded wl_surface#1127.enter(wl_output#1433) +[2618039.045] {Default Queue} discarded wl_surface#1063.enter(wl_output#1433) +[2618039.049] {Default Queue} discarded wl_surface#455.enter(wl_output#1433) +[2618039.053] {Default Queue} discarded wl_surface#903.enter(wl_output#1433) +[2618039.057] {Default Queue} discarded wl_surface#775.enter(wl_output#1433) +[2618039.061] {Default Queue} discarded wl_surface#135.enter(wl_output#1433) +[2618039.065] {Default Queue} discarded wl_surface#1287.enter(wl_output#1433) +[2618039.069] {Default Queue} discarded wl_surface#1031.enter(wl_output#1433) +[2618039.074] {Default Queue} discarded wl_surface#615.enter(wl_output#1433) +[2618039.078] {Default Queue} discarded wl_surface#231.enter(wl_output#1433) +[2618039.081] {Default Queue} discarded wl_surface#359.enter(wl_output#1433) +[2618039.085] {Default Queue} discarded wl_surface#583.enter(wl_output#1433) +[2618039.089] {Default Queue} discarded wl_surface#743.enter(wl_output#1433) +[2618039.093] {Default Queue} discarded wl_surface#967.enter(wl_output#1433) +[2618039.097] {Default Queue} discarded wl_surface#103.enter(wl_output#1433) +[2618039.101] {Default Queue} discarded wl_surface#327.enter(wl_output#1433) +[2618039.105] {Default Queue} discarded wl_surface#43.enter(wl_output#1433) +[2618039.109] {Default Queue} discarded wl_surface#807.enter(wl_output#1433) +[2618039.113] {Default Queue} discarded wl_surface#19.enter(wl_output#1433) +[2618039.117] {Default Queue} discarded wl_surface#199.enter(wl_output#1433) +[2618039.121] {Default Queue} discarded wl_surface#391.enter(wl_output#1433) +[2618039.124] {Default Queue} discarded wl_surface#935.enter(wl_output#1433) +[2618039.128] {Default Queue} discarded wl_surface#1351.enter(wl_output#1433) +[2618039.132] {Default Queue} discarded wl_surface#711.enter(wl_output#1433) +[2618039.136] {Default Queue} discarded wl_surface#1223.enter(wl_output#1433) +[2618039.140] {Default Queue} discarded wl_surface#871.enter(wl_output#1433) +[2618039.144] {Default Queue} discarded wl_surface#263.enter(wl_output#1433) +[2618039.148] {Default Queue} discarded wl_surface#551.enter(wl_output#1433) +[2618039.155] {Default Queue} discarded wl_surface#647.enter(wl_output#1433) +[2618039.161] {Default Queue} discarded wl_surface#71.enter(wl_output#1433) +[2618039.165] {Default Queue} discarded wl_surface#839.enter(wl_output#1433) +[2618039.169] {Default Queue} discarded wl_surface#1095.enter(wl_output#1433) +[2618039.173] {Default Queue} discarded wl_surface#1383.enter(wl_output#1433) +[2618039.177] {Default Queue} discarded wl_surface#487.enter(wl_output#1433) +[2618039.181] {Default Queue} discarded wl_surface#519.enter(wl_output#1433) +[2618039.185] {Default Queue} discarded wl_surface#295.enter(wl_output#1433) +[2618039.189] {Default Queue} discarded wl_surface#167.enter(wl_output#1433) +[2618039.193] {Default Queue} discarded wl_surface#1255.enter(wl_output#1433) +[2618039.197] {Default Queue} discarded wl_surface#679.enter(wl_output#1433) +[2618039.201] {Default Queue} wl_registry#1446.global(1, "wl_compositor", 6) +[2618039.206] {Default Queue} -> wl_registry#1446.bind(1, "wl_compositor", 1, new id [unknown]#1452) +[2618039.211] {Default Queue} wl_registry#1446.global(2, "wl_subcompositor", 1) +[2618039.215] {Default Queue} -> wl_registry#1446.bind(2, "wl_subcompositor", 1, new id [unknown]#1453) +[2618039.220] {Default Queue} wl_registry#1446.global(3, "xdg_wm_base", 6) +[2618039.225] {Default Queue} -> wl_registry#1446.bind(3, "xdg_wm_base", 1, new id [unknown]#1454) +[2618039.229] {Default Queue} wl_registry#1446.global(6, "zwlr_layer_shell_v1", 5) +[2618039.233] {Default Queue} wl_registry#1446.global(7, "ext_session_lock_manager_v1", 1) +[2618039.238] {Default Queue} wl_registry#1446.global(8, "wl_shm", 2) +[2618039.242] {Default Queue} -> wl_registry#1446.bind(8, "wl_shm", 1, new id [unknown]#1455) +[2618039.247] {Default Queue} -> wl_registry#1446.bind(8, "wl_shm", 1, new id [unknown]#1456) +[2618039.253] {Default Queue} -> wl_registry#1446.bind(8, "wl_shm", 1, new id [unknown]#1457) +[2618039.257] {Default Queue} wl_registry#1446.global(9, "zxdg_output_manager_v1", 3) +[2618039.262] {Default Queue} wl_registry#1446.global(10, "wp_fractional_scale_manager_v1", 1) +[2618039.267] {Default Queue} wl_registry#1446.global(11, "zwp_tablet_manager_v2", 1) +[2618039.271] {Default Queue} wl_registry#1446.global(12, "zwp_pointer_gestures_v1", 3) +[2618039.275] {Default Queue} wl_registry#1446.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618039.279] {Default Queue} -> wl_registry#1446.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1458) +[2618039.284] {Default Queue} wl_registry#1446.global(14, "zwp_pointer_constraints_v1", 1) +[2618039.288] {Default Queue} -> wl_registry#1446.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1459) +[2618039.293] {Default Queue} wl_registry#1446.global(15, "ext_idle_notifier_v1", 2) +[2618039.297] {Default Queue} wl_registry#1446.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618039.302] {Default Queue} wl_registry#1446.global(17, "wl_data_device_manager", 3) +[2618039.307] {Default Queue} -> wl_registry#1446.bind(17, "wl_data_device_manager", 2, new id [unknown]#1460) +[2618039.311] {Default Queue} -> wl_data_device_manager#1460.create_data_source(new id wl_data_source#1461) +[2618039.316] {Default Queue} -> wl_data_source#1461.offer("text/plain") +[2618039.320] {Default Queue} -> wl_data_source#1461.offer("text/plain;charset=utf-8") +[2618039.325] {Default Queue} -> wl_data_source#1461.offer("TEXT") +[2618039.329] {Default Queue} -> wl_data_source#1461.offer("STRING") +[2618039.333] {Default Queue} -> wl_data_source#1461.offer("UTF8_STRING") +[2618039.338] {Default Queue} wl_registry#1446.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618039.342] {Default Queue} -> wl_registry#1446.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1462) +[2618039.350] {Default Queue} -> zwp_primary_selection_device_manager_v1#1462.create_source(new id zwp_primary_selection_source_v1#1463) +[2618039.358] {Default Queue} -> zwp_primary_selection_source_v1#1463.offer("text/plain") +[2618039.362] {Default Queue} -> zwp_primary_selection_source_v1#1463.offer("text/plain;charset=utf-8") +[2618039.369] {Default Queue} -> zwp_primary_selection_source_v1#1463.offer("TEXT") +[2618039.374] {Default Queue} -> zwp_primary_selection_source_v1#1463.offer("STRING") +[2618039.379] {Default Queue} -> zwp_primary_selection_source_v1#1463.offer("UTF8_STRING") +[2618039.383] {Default Queue} wl_registry#1446.global(19, "zwlr_data_control_manager_v1", 2) +[2618039.387] {Default Queue} wl_registry#1446.global(20, "ext_data_control_manager_v1", 1) +[2618039.391] {Default Queue} wl_registry#1446.global(21, "wp_presentation", 2) +[2618039.396] {Default Queue} wl_registry#1446.global(22, "wp_security_context_manager_v1", 1) +[2618039.400] {Default Queue} wl_registry#1446.global(23, "zwp_text_input_manager_v3", 1) +[2618039.405] {Default Queue} wl_registry#1446.global(24, "zwp_input_method_manager_v2", 1) +[2618039.410] {Default Queue} wl_registry#1446.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618039.414] {Default Queue} wl_registry#1446.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618039.418] {Default Queue} wl_registry#1446.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618039.423] {Default Queue} wl_registry#1446.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618039.427] {Default Queue} wl_registry#1446.global(29, "ext_workspace_manager_v1", 1) +[2618039.431] {Default Queue} wl_registry#1446.global(30, "zwlr_output_manager_v1", 4) +[2618039.435] {Default Queue} wl_registry#1446.global(31, "zwlr_screencopy_manager_v1", 3) +[2618039.440] {Default Queue} wl_registry#1446.global(32, "wp_viewporter", 1) +[2618039.444] {Default Queue} wl_registry#1446.global(33, "zxdg_exporter_v2", 1) +[2618039.448] {Default Queue} wl_registry#1446.global(34, "zxdg_importer_v2", 1) +[2618039.452] {Default Queue} wl_registry#1446.global(36, "xdg_activation_v1", 1) +[2618039.457] {Default Queue} wl_registry#1446.global(37, "mutter_x11_interop", 1) +[2618039.461] {Default Queue} wl_registry#1446.global(38, "wl_seat", 9) +[2618039.465] {Default Queue} -> wl_registry#1446.bind(38, "wl_seat", 1, new id [unknown]#1464) +[2618039.470] {Default Queue} wl_registry#1446.global(39, "wp_cursor_shape_manager_v1", 2) +[2618039.474] {Default Queue} wl_registry#1446.global(40, "wl_output", 4) +[2618039.479] {Default Queue} -> wl_registry#1446.bind(40, "wl_output", 1, new id [unknown]#1465) +[2618039.483] {Default Queue} wl_callback#1447.done(0) +[2618039.488] {Default Queue} discarded wl_surface#1415.enter(wl_output#18) +[2618039.492] {Default Queue} discarded wl_surface#1415.enter(wl_output#57) +[2618039.496] {Default Queue} discarded wl_surface#1415.enter(wl_output#89) +[2618039.500] {Default Queue} discarded wl_surface#1415.enter(wl_output#121) +[2618039.504] {Default Queue} discarded wl_surface#1415.enter(wl_output#153) +[2618039.508] {Default Queue} discarded wl_surface#1415.enter(wl_output#185) +[2618039.512] {Default Queue} discarded wl_surface#1415.enter(wl_output#217) +[2618039.516] {Default Queue} discarded wl_surface#1415.enter(wl_output#249) +[2618039.520] {Default Queue} discarded wl_surface#1415.enter(wl_output#281) +[2618039.523] {Default Queue} discarded wl_surface#1415.enter(wl_output#313) +[2618039.527] {Default Queue} discarded wl_surface#1415.enter(wl_output#345) +[2618039.531] {Default Queue} discarded wl_surface#1415.enter(wl_output#377) +[2618039.538] {Default Queue} discarded wl_surface#1415.enter(wl_output#409) +[2618039.541] {Default Queue} discarded wl_surface#1415.enter(wl_output#441) +[2618039.546] {Default Queue} discarded wl_surface#1415.enter(wl_output#473) +[2618039.550] {Default Queue} discarded wl_surface#1415.enter(wl_output#505) +[2618039.554] {Default Queue} discarded wl_surface#1415.enter(wl_output#537) +[2618039.558] {Default Queue} discarded wl_surface#1415.enter(wl_output#569) +[2618039.562] {Default Queue} discarded wl_surface#1415.enter(wl_output#601) +[2618039.566] {Default Queue} discarded wl_surface#1415.enter(wl_output#633) +[2618039.570] {Default Queue} discarded wl_surface#1415.enter(wl_output#665) +[2618039.574] {Default Queue} discarded wl_surface#1415.enter(wl_output#697) +[2618039.581] {Default Queue} discarded wl_surface#1415.enter(wl_output#729) +[2618039.586] {Default Queue} discarded wl_surface#1415.enter(wl_output#761) +[2618039.590] {Default Queue} discarded wl_surface#1415.enter(wl_output#793) +[2618039.594] {Default Queue} discarded wl_surface#1415.enter(wl_output#825) +[2618039.599] {Default Queue} discarded wl_surface#1415.enter(wl_output#857) +[2618039.602] {Default Queue} discarded wl_surface#1415.enter(wl_output#889) +[2618039.606] {Default Queue} discarded wl_surface#1415.enter(wl_output#921) +[2618039.610] {Default Queue} discarded wl_surface#1415.enter(wl_output#953) +[2618039.614] {Default Queue} discarded wl_surface#1415.enter(wl_output#985) +[2618039.618] {Default Queue} discarded wl_surface#1415.enter(wl_output#1017) +[2618039.622] {Default Queue} discarded wl_surface#1415.enter(wl_output#1049) +[2618039.626] {Default Queue} discarded wl_surface#1415.enter(wl_output#1081) +[2618039.630] {Default Queue} discarded wl_surface#1415.enter(wl_output#1113) +[2618039.634] {Default Queue} discarded wl_surface#1415.enter(wl_output#1145) +[2618039.638] {Default Queue} discarded wl_surface#1415.enter(wl_output#1177) +[2618039.642] {Default Queue} discarded wl_surface#1415.enter(wl_output#1209) +[2618039.648] {Default Queue} discarded wl_surface#1415.enter(wl_output#1241) +[2618039.652] {Default Queue} discarded wl_surface#1415.enter(wl_output#1273) +[2618039.656] {Default Queue} discarded wl_surface#1415.enter(wl_output#1305) +[2618039.660] {Default Queue} discarded wl_surface#1415.enter(wl_output#1337) +[2618039.664] {Default Queue} discarded wl_surface#1415.enter(wl_output#1369) +[2618039.668] {Default Queue} discarded wl_surface#1415.enter(wl_output#1401) +[2618039.672] {Default Queue} discarded wl_surface#1415.enter(wl_output#1433) +[2618039.676] {Default Queue} -> wl_compositor#876.create_surface(new id wl_surface#1447) +[2618039.681] {Default Queue} -> wl_subcompositor#1453.get_subsurface(new id wl_subsurface#1466, wl_surface#1447, wl_surface#871) +[2618039.689] {Default Queue} -> wl_subsurface#1466.set_desync() +[2618039.693] {Default Queue} -> wl_subsurface#1466.set_position(0, 0) +[2618039.698] {Default Queue} -> wl_subsurface#1466.place_above(wl_surface#871) +[2618039.743] {Default Queue} -> wl_shm#1455.create_pool(new id wl_shm_pool#1467, fd 234, 16) +[2618039.751] {Default Queue} -> wl_shm#1455.create_pool(new id wl_shm_pool#1468, fd 235, 16) +[2618039.755] {Default Queue} -> wl_shm_pool#1467.create_buffer(new id wl_buffer#1469, 0, 2, 2, 8, 0) +[2618039.760] {Default Queue} -> wl_shm_pool#1468.create_buffer(new id wl_buffer#1470, 0, 2, 2, 8, 0) +[2618039.768] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) +[2618039.773] {Default Queue} -> wl_surface#1447.commit() +[2618039.779] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) +[2618039.783] {Default Queue} -> wl_surface#1447.commit() +[2618039.787] {Default Queue} -> wl_compositor#1452.create_region(new id wl_region#1471) +[2618039.791] {Default Queue} -> wl_compositor#1452.create_region(new id wl_region#1472) +[2618039.795] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) +[2618039.800] {Default Queue} -> wl_region#1471.add(0, 0, 0, 0) +[2618039.804] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618039.808] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618039.813] {Default Queue} -> wl_surface#1447.damage(0, 0, 2, 2) +[2618039.817] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) +[2618039.824] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) +[2618039.829] {Default Queue} -> wl_surface#1447.commit() +[2618039.867] {Default Queue} -> wl_shm#1457.create_pool(new id wl_shm_pool#1473, fd 238, 640) +[2618039.874] {Default Queue} -> wl_shm#1457.create_pool(new id wl_shm_pool#1474, fd 239, 640) +[2618039.898] {Default Queue} -> wl_shm_pool#1473.create_buffer(new id wl_buffer#1475, 0, 10, 16, 40, 0) +[2618039.911] {Default Queue} -> wl_shm_pool#1474.create_buffer(new id wl_buffer#1476, 0, 10, 16, 40, 0) +[2618039.921] {Default Queue} -> wl_compositor#1452.create_surface(new id wl_surface#1477) +[2618039.931] {Default Queue} -> wl_surface#1477.attach(wl_buffer#1475, 0, 0) +[2618039.939] {Default Queue} -> wl_surface#1477.commit() +[2618039.946] {Default Queue} -> wl_surface#1477.attach(wl_buffer#1475, 0, 0) +[2618039.950] {Default Queue} -> wl_surface#1477.commit() +[2618039.956] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) +[2618039.961] {Default Queue} -> wl_surface#1447.damage(0, 0, 2, 2) +[2618039.965] {Default Queue} -> wl_surface#1447.damage(0, 0, 2, 2) +[2618039.974] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1478) +[2618039.979] {Default Queue} -> wl_display#1.sync(new id wl_callback#1479) +[2618048.929] {Display Queue} wl_display#1.delete_id(1479) +[2618048.945] {Default Queue} wl_keyboard#1448.keymap(1, fd 234, 68213) +[2618048.952] {Default Queue} wl_keyboard#1448.enter(566, wl_surface#19, array[0]) +[2618048.959] {Default Queue} wl_keyboard#1448.modifiers(566, 0, 0, 16, 0) +[2618048.965] {Default Queue} discarded wl_shm#1455.format(875709016) +[2618048.969] {Default Queue} discarded wl_shm#1455.format(1) +[2618048.973] {Default Queue} discarded wl_shm#1455.format(0) +[2618048.977] {Default Queue} discarded wl_shm#1455.format(875708993) +[2618048.981] {Default Queue} discarded wl_shm#1456.format(875709016) +[2618048.984] {Default Queue} discarded wl_shm#1456.format(1) +[2618048.988] {Default Queue} discarded wl_shm#1456.format(0) +[2618048.992] {Default Queue} discarded wl_shm#1456.format(875708993) +[2618048.996] {Default Queue} discarded wl_shm#1457.format(875709016) +[2618049.000] {Default Queue} discarded wl_shm#1457.format(1) +[2618049.004] {Default Queue} discarded wl_shm#1457.format(0) +[2618049.008] {Default Queue} discarded wl_shm#1457.format(875708993) +[2618049.012] {Default Queue} wl_seat#1464.capabilities(7) +[2618049.017] {Default Queue} -> wl_seat#1464.get_keyboard(new id wl_keyboard#1480) +[2618049.021] {Default Queue} -> wl_seat#1464.get_pointer(new id wl_pointer#1481) +[2618049.026] {Default Queue} -> wl_data_device_manager#1460.get_data_device(new id wl_data_device#1482, wl_seat#1464) +[2618049.030] {Default Queue} -> zwp_primary_selection_device_manager_v1#1462.get_device(new id zwp_primary_selection_device_v1#1483, wl_seat#1464) +[2618049.038] {Default Queue} wl_output#1465.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618049.044] {Default Queue} wl_output#1465.mode(3, 1280, 800, 60000) +[2618049.049] {Default Queue} discarded wl_surface#3.enter(wl_output#1465) +[2618049.053] {Default Queue} discarded wl_surface#999.enter(wl_output#1465) +[2618049.057] {Default Queue} discarded wl_surface#1191.enter(wl_output#1465) +[2618049.061] {Default Queue} discarded wl_surface#1159.enter(wl_output#1465) +[2618049.065] {Default Queue} discarded wl_surface#423.enter(wl_output#1465) +[2618049.069] {Default Queue} discarded wl_surface#1319.enter(wl_output#1465) +[2618049.073] {Default Queue} discarded wl_surface#1127.enter(wl_output#1465) +[2618049.077] {Default Queue} discarded wl_surface#1063.enter(wl_output#1465) +[2618049.081] {Default Queue} discarded wl_surface#455.enter(wl_output#1465) +[2618049.085] {Default Queue} discarded wl_surface#1415.enter(wl_output#1465) +[2618049.089] {Default Queue} discarded wl_surface#903.enter(wl_output#1465) +[2618049.092] {Default Queue} discarded wl_surface#775.enter(wl_output#1465) +[2618049.096] {Default Queue} discarded wl_surface#135.enter(wl_output#1465) +[2618049.100] {Default Queue} discarded wl_surface#1287.enter(wl_output#1465) +[2618049.104] {Default Queue} discarded wl_surface#1031.enter(wl_output#1465) +[2618049.108] {Default Queue} discarded wl_surface#615.enter(wl_output#1465) +[2618049.112] {Default Queue} discarded wl_surface#231.enter(wl_output#1465) +[2618049.116] {Default Queue} discarded wl_surface#359.enter(wl_output#1465) +[2618049.120] {Default Queue} discarded wl_surface#583.enter(wl_output#1465) +[2618049.124] {Default Queue} discarded wl_surface#743.enter(wl_output#1465) +[2618049.128] {Default Queue} discarded wl_surface#967.enter(wl_output#1465) +[2618049.132] {Default Queue} discarded wl_surface#103.enter(wl_output#1465) +[2618049.140] {Default Queue} discarded wl_surface#327.enter(wl_output#1465) +[2618049.147] {Default Queue} discarded wl_surface#43.enter(wl_output#1465) +[2618049.151] {Default Queue} discarded wl_surface#807.enter(wl_output#1465) +[2618049.155] {Default Queue} discarded wl_surface#19.enter(wl_output#1465) +[2618049.159] {Default Queue} discarded wl_surface#199.enter(wl_output#1465) +[2618049.163] {Default Queue} discarded wl_surface#391.enter(wl_output#1465) +[2618049.167] {Default Queue} discarded wl_surface#935.enter(wl_output#1465) +[2618049.171] {Default Queue} discarded wl_surface#1351.enter(wl_output#1465) +[2618049.175] {Default Queue} discarded wl_surface#711.enter(wl_output#1465) +[2618049.179] {Default Queue} discarded wl_surface#1223.enter(wl_output#1465) +[2618049.183] {Default Queue} discarded wl_surface#871.enter(wl_output#1465) +[2618049.186] {Default Queue} discarded wl_surface#263.enter(wl_output#1465) +[2618049.190] {Default Queue} discarded wl_surface#551.enter(wl_output#1465) +[2618049.194] {Default Queue} discarded wl_surface#647.enter(wl_output#1465) +[2618049.198] {Default Queue} discarded wl_surface#71.enter(wl_output#1465) +[2618049.202] {Default Queue} discarded wl_surface#839.enter(wl_output#1465) +[2618049.206] {Default Queue} discarded wl_surface#1095.enter(wl_output#1465) +[2618049.210] {Default Queue} discarded wl_surface#1383.enter(wl_output#1465) +[2618049.214] {Default Queue} discarded wl_surface#487.enter(wl_output#1465) +[2618049.218] {Default Queue} discarded wl_surface#519.enter(wl_output#1465) +[2618049.221] {Default Queue} discarded wl_surface#295.enter(wl_output#1465) +[2618049.225] {Default Queue} discarded wl_surface#167.enter(wl_output#1465) +[2618049.230] {Default Queue} discarded wl_surface#1255.enter(wl_output#1465) +[2618049.234] {Default Queue} discarded wl_surface#679.enter(wl_output#1465) +[2618049.238] {Default Queue} wl_registry#1478.global(1, "wl_compositor", 6) +[2618049.243] {Default Queue} -> wl_registry#1478.bind(1, "wl_compositor", 1, new id [unknown]#1484) +[2618049.248] {Default Queue} wl_registry#1478.global(2, "wl_subcompositor", 1) +[2618049.253] {Default Queue} -> wl_registry#1478.bind(2, "wl_subcompositor", 1, new id [unknown]#1485) +[2618049.257] {Default Queue} wl_registry#1478.global(3, "xdg_wm_base", 6) +[2618049.262] {Default Queue} -> wl_registry#1478.bind(3, "xdg_wm_base", 1, new id [unknown]#1486) +[2618049.266] {Default Queue} wl_registry#1478.global(6, "zwlr_layer_shell_v1", 5) +[2618049.271] {Default Queue} wl_registry#1478.global(7, "ext_session_lock_manager_v1", 1) +[2618049.275] {Default Queue} wl_registry#1478.global(8, "wl_shm", 2) +[2618049.280] {Default Queue} -> wl_registry#1478.bind(8, "wl_shm", 1, new id [unknown]#1487) +[2618049.284] {Default Queue} -> wl_registry#1478.bind(8, "wl_shm", 1, new id [unknown]#1488) +[2618049.291] {Default Queue} -> wl_registry#1478.bind(8, "wl_shm", 1, new id [unknown]#1489) +[2618049.296] {Default Queue} wl_registry#1478.global(9, "zxdg_output_manager_v1", 3) +[2618049.301] {Default Queue} wl_registry#1478.global(10, "wp_fractional_scale_manager_v1", 1) +[2618049.305] {Default Queue} wl_registry#1478.global(11, "zwp_tablet_manager_v2", 1) +[2618049.309] {Default Queue} wl_registry#1478.global(12, "zwp_pointer_gestures_v1", 3) +[2618049.314] {Default Queue} wl_registry#1478.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618049.318] {Default Queue} -> wl_registry#1478.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1490) +[2618049.322] {Default Queue} wl_registry#1478.global(14, "zwp_pointer_constraints_v1", 1) +[2618049.327] {Default Queue} -> wl_registry#1478.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1491) +[2618049.332] {Default Queue} wl_registry#1478.global(15, "ext_idle_notifier_v1", 2) +[2618049.336] {Default Queue} wl_registry#1478.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618049.340] {Default Queue} wl_registry#1478.global(17, "wl_data_device_manager", 3) +[2618049.345] {Default Queue} -> wl_registry#1478.bind(17, "wl_data_device_manager", 2, new id [unknown]#1492) +[2618049.352] {Default Queue} -> wl_data_device_manager#1492.create_data_source(new id wl_data_source#1493) +[2618049.358] {Default Queue} -> wl_data_source#1493.offer("text/plain") +[2618049.362] {Default Queue} -> wl_data_source#1493.offer("text/plain;charset=utf-8") +[2618049.367] {Default Queue} -> wl_data_source#1493.offer("TEXT") +[2618049.372] {Default Queue} -> wl_data_source#1493.offer("STRING") +[2618049.378] {Default Queue} -> wl_data_source#1493.offer("UTF8_STRING") +[2618049.384] {Default Queue} wl_registry#1478.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618049.390] {Default Queue} -> wl_registry#1478.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1494) +[2618049.400] {Default Queue} -> zwp_primary_selection_device_manager_v1#1494.create_source(new id zwp_primary_selection_source_v1#1495) +[2618049.408] {Default Queue} -> zwp_primary_selection_source_v1#1495.offer("text/plain") +[2618049.412] {Default Queue} -> zwp_primary_selection_source_v1#1495.offer("text/plain;charset=utf-8") +[2618049.417] {Default Queue} -> zwp_primary_selection_source_v1#1495.offer("TEXT") +[2618049.421] {Default Queue} -> zwp_primary_selection_source_v1#1495.offer("STRING") +[2618049.425] {Default Queue} -> zwp_primary_selection_source_v1#1495.offer("UTF8_STRING") +[2618049.429] {Default Queue} wl_registry#1478.global(19, "zwlr_data_control_manager_v1", 2) +[2618049.433] {Default Queue} wl_registry#1478.global(20, "ext_data_control_manager_v1", 1) +[2618049.438] {Default Queue} wl_registry#1478.global(21, "wp_presentation", 2) +[2618049.443] {Default Queue} wl_registry#1478.global(22, "wp_security_context_manager_v1", 1) +[2618049.447] {Default Queue} wl_registry#1478.global(23, "zwp_text_input_manager_v3", 1) +[2618049.451] {Default Queue} wl_registry#1478.global(24, "zwp_input_method_manager_v2", 1) +[2618049.456] {Default Queue} wl_registry#1478.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618049.460] {Default Queue} wl_registry#1478.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618049.464] {Default Queue} wl_registry#1478.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618049.469] {Default Queue} wl_registry#1478.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618049.473] {Default Queue} wl_registry#1478.global(29, "ext_workspace_manager_v1", 1) +[2618049.477] {Default Queue} wl_registry#1478.global(30, "zwlr_output_manager_v1", 4) +[2618049.481] {Default Queue} wl_registry#1478.global(31, "zwlr_screencopy_manager_v1", 3) +[2618049.486] {Default Queue} wl_registry#1478.global(32, "wp_viewporter", 1) +[2618049.491] {Default Queue} wl_registry#1478.global(33, "zxdg_exporter_v2", 1) +[2618049.495] {Default Queue} wl_registry#1478.global(34, "zxdg_importer_v2", 1) +[2618049.499] {Default Queue} wl_registry#1478.global(36, "xdg_activation_v1", 1) +[2618049.503] {Default Queue} wl_registry#1478.global(37, "mutter_x11_interop", 1) +[2618049.507] {Default Queue} wl_registry#1478.global(38, "wl_seat", 9) +[2618049.512] {Default Queue} -> wl_registry#1478.bind(38, "wl_seat", 1, new id [unknown]#1496) +[2618049.516] {Default Queue} wl_registry#1478.global(39, "wp_cursor_shape_manager_v1", 2) +[2618049.520] {Default Queue} wl_registry#1478.global(40, "wl_output", 4) +[2618049.525] {Default Queue} -> wl_registry#1478.bind(40, "wl_output", 1, new id [unknown]#1497) +[2618049.529] {Default Queue} wl_callback#1479.done(0) +[2618049.534] {Default Queue} discarded wl_surface#1447.enter(wl_output#18) +[2618049.538] {Default Queue} discarded wl_surface#1447.enter(wl_output#57) +[2618049.542] {Default Queue} discarded wl_surface#1447.enter(wl_output#89) +[2618049.546] {Default Queue} discarded wl_surface#1447.enter(wl_output#121) +[2618049.550] {Default Queue} discarded wl_surface#1447.enter(wl_output#153) +[2618049.554] {Default Queue} discarded wl_surface#1447.enter(wl_output#185) +[2618049.558] {Default Queue} discarded wl_surface#1447.enter(wl_output#217) +[2618049.562] {Default Queue} discarded wl_surface#1447.enter(wl_output#249) +[2618049.566] {Default Queue} discarded wl_surface#1447.enter(wl_output#281) +[2618049.572] {Default Queue} discarded wl_surface#1447.enter(wl_output#313) +[2618049.578] {Default Queue} discarded wl_surface#1447.enter(wl_output#345) +[2618049.582] {Default Queue} discarded wl_surface#1447.enter(wl_output#377) +[2618049.586] {Default Queue} discarded wl_surface#1447.enter(wl_output#409) +[2618049.590] {Default Queue} discarded wl_surface#1447.enter(wl_output#441) +[2618049.594] {Default Queue} discarded wl_surface#1447.enter(wl_output#473) +[2618049.598] {Default Queue} discarded wl_surface#1447.enter(wl_output#505) +[2618049.602] {Default Queue} discarded wl_surface#1447.enter(wl_output#537) +[2618049.606] {Default Queue} discarded wl_surface#1447.enter(wl_output#569) +[2618049.609] {Default Queue} discarded wl_surface#1447.enter(wl_output#601) +[2618049.613] {Default Queue} discarded wl_surface#1447.enter(wl_output#633) +[2618049.618] {Default Queue} discarded wl_surface#1447.enter(wl_output#665) +[2618049.621] {Default Queue} discarded wl_surface#1447.enter(wl_output#697) +[2618049.625] {Default Queue} discarded wl_surface#1447.enter(wl_output#729) +[2618049.629] {Default Queue} discarded wl_surface#1447.enter(wl_output#761) +[2618049.633] {Default Queue} discarded wl_surface#1447.enter(wl_output#793) +[2618049.637] {Default Queue} discarded wl_surface#1447.enter(wl_output#825) +[2618049.641] {Default Queue} discarded wl_surface#1447.enter(wl_output#857) +[2618049.645] {Default Queue} discarded wl_surface#1447.enter(wl_output#889) +[2618049.649] {Default Queue} discarded wl_surface#1447.enter(wl_output#921) +[2618049.653] {Default Queue} discarded wl_surface#1447.enter(wl_output#953) +[2618049.657] {Default Queue} discarded wl_surface#1447.enter(wl_output#985) +[2618049.660] {Default Queue} discarded wl_surface#1447.enter(wl_output#1017) +[2618049.664] {Default Queue} discarded wl_surface#1447.enter(wl_output#1049) +[2618049.669] {Default Queue} discarded wl_surface#1447.enter(wl_output#1081) +[2618049.673] {Default Queue} discarded wl_surface#1447.enter(wl_output#1113) +[2618049.676] {Default Queue} discarded wl_surface#1447.enter(wl_output#1145) +[2618049.680] {Default Queue} discarded wl_surface#1447.enter(wl_output#1177) +[2618049.684] {Default Queue} discarded wl_surface#1447.enter(wl_output#1209) +[2618049.689] {Default Queue} discarded wl_surface#1447.enter(wl_output#1241) +[2618049.693] {Default Queue} discarded wl_surface#1447.enter(wl_output#1273) +[2618049.697] {Default Queue} discarded wl_surface#1447.enter(wl_output#1305) +[2618049.701] {Default Queue} discarded wl_surface#1447.enter(wl_output#1337) +[2618049.705] {Default Queue} discarded wl_surface#1447.enter(wl_output#1369) +[2618049.709] {Default Queue} discarded wl_surface#1447.enter(wl_output#1401) +[2618049.712] {Default Queue} discarded wl_surface#1447.enter(wl_output#1433) +[2618049.717] {Default Queue} discarded wl_surface#1447.enter(wl_output#1465) +[2618049.721] {Default Queue} -> wl_compositor#1452.create_surface(new id wl_surface#1479) +[2618049.726] {Default Queue} -> wl_subcompositor#1485.get_subsurface(new id wl_subsurface#1498, wl_surface#1479, wl_surface#1447) +[2618049.734] {Default Queue} -> wl_subsurface#1498.set_desync() +[2618049.738] {Default Queue} -> wl_subsurface#1498.set_position(0, 0) +[2618049.743] {Default Queue} -> wl_subsurface#1498.place_above(wl_surface#1447) +[2618049.790] {Default Queue} -> wl_shm#1487.create_pool(new id wl_shm_pool#1499, fd 239, 16) +[2618049.797] {Default Queue} -> wl_shm#1487.create_pool(new id wl_shm_pool#1500, fd 240, 16) +[2618049.802] {Default Queue} -> wl_shm_pool#1499.create_buffer(new id wl_buffer#1501, 0, 2, 2, 8, 0) +[2618049.807] {Default Queue} -> wl_shm_pool#1500.create_buffer(new id wl_buffer#1502, 0, 2, 2, 8, 0) +[2618049.816] {Default Queue} -> wl_surface#1479.attach(wl_buffer#1501, 0, 0) +[2618049.820] {Default Queue} -> wl_surface#1479.commit() +[2618049.826] {Default Queue} -> wl_surface#1479.attach(wl_buffer#1501, 0, 0) +[2618049.830] {Default Queue} -> wl_surface#1479.commit() +[2618049.835] {Default Queue} -> wl_compositor#1484.create_region(new id wl_region#1503) +[2618049.842] {Default Queue} -> wl_compositor#1484.create_region(new id wl_region#1504) +[2618049.848] {Default Queue} -> wl_region#1503.subtract(0, 0, 2, 2) +[2618049.853] {Default Queue} -> wl_region#1503.add(0, 0, 0, 0) +[2618049.858] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) +[2618049.863] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) +[2618049.867] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) +[2618049.877] {Default Queue} -> wl_surface#1447.damage(0, 0, 2, 2) +[2618049.884] {Default Queue} -> wl_surface#1479.attach(wl_buffer#1501, 0, 0) +[2618049.888] {Default Queue} -> wl_surface#1479.commit() +[2618049.927] {Default Queue} -> wl_shm#1489.create_pool(new id wl_shm_pool#1505, fd 243, 640) +[2618049.933] {Default Queue} -> wl_shm#1489.create_pool(new id wl_shm_pool#1506, fd 244, 640) +[2618049.938] {Default Queue} -> wl_shm_pool#1505.create_buffer(new id wl_buffer#1507, 0, 10, 16, 40, 0) +[2618049.943] {Default Queue} -> wl_shm_pool#1506.create_buffer(new id wl_buffer#1508, 0, 10, 16, 40, 0) +[2618049.950] {Default Queue} -> wl_compositor#1484.create_surface(new id wl_surface#1509) +[2618049.954] {Default Queue} -> wl_surface#1509.attach(wl_buffer#1507, 0, 0) +[2618049.958] {Default Queue} -> wl_surface#1509.commit() +[2618049.963] {Default Queue} -> wl_surface#1509.attach(wl_buffer#1507, 0, 0) +[2618049.968] {Default Queue} -> wl_surface#1509.commit() +[2618049.974] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) +[2618049.981] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1510) +[2618049.986] {Default Queue} -> wl_display#1.sync(new id wl_callback#1511) +[2618053.926] {Display Queue} wl_display#1.delete_id(1511) +[2618053.943] {Default Queue} wl_keyboard#1480.keymap(1, fd 239, 68213) +[2618053.952] {Default Queue} wl_keyboard#1480.enter(566, wl_surface#19, array[0]) +[2618053.961] {Default Queue} wl_keyboard#1480.modifiers(566, 0, 0, 16, 0) +[2618053.968] {Default Queue} discarded wl_shm#1487.format(875709016) +[2618053.975] {Default Queue} discarded wl_shm#1487.format(1) +[2618053.980] {Default Queue} discarded wl_shm#1487.format(0) +[2618053.985] {Default Queue} discarded wl_shm#1487.format(875708993) +[2618053.990] {Default Queue} discarded wl_shm#1488.format(875709016) +[2618053.994] {Default Queue} discarded wl_shm#1488.format(1) +[2618053.999] {Default Queue} discarded wl_shm#1488.format(0) +[2618054.004] {Default Queue} discarded wl_shm#1488.format(875708993) +[2618054.009] {Default Queue} discarded wl_shm#1489.format(875709016) +[2618054.014] {Default Queue} discarded wl_shm#1489.format(1) +[2618054.018] {Default Queue} discarded wl_shm#1489.format(0) +[2618054.023] {Default Queue} discarded wl_shm#1489.format(875708993) +[2618054.028] {Default Queue} wl_seat#1496.capabilities(7) +[2618054.033] {Default Queue} -> wl_seat#1496.get_keyboard(new id wl_keyboard#1512) +[2618054.039] {Default Queue} -> wl_seat#1496.get_pointer(new id wl_pointer#1513) +[2618054.045] {Default Queue} -> wl_data_device_manager#1492.get_data_device(new id wl_data_device#1514, wl_seat#1496) +[2618054.051] {Default Queue} -> zwp_primary_selection_device_manager_v1#1494.get_device(new id zwp_primary_selection_device_v1#1515, wl_seat#1496) +[2618054.061] {Default Queue} wl_output#1497.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618054.068] {Default Queue} wl_output#1497.mode(3, 1280, 800, 60000) +[2618054.073] {Default Queue} discarded wl_surface#3.enter(wl_output#1497) +[2618054.079] {Default Queue} discarded wl_surface#999.enter(wl_output#1497) +[2618054.084] {Default Queue} discarded wl_surface#1191.enter(wl_output#1497) +[2618054.089] {Default Queue} discarded wl_surface#1159.enter(wl_output#1497) +[2618054.094] {Default Queue} discarded wl_surface#423.enter(wl_output#1497) +[2618054.099] {Default Queue} discarded wl_surface#1447.enter(wl_output#1497) +[2618054.103] {Default Queue} discarded wl_surface#1319.enter(wl_output#1497) +[2618054.108] {Default Queue} discarded wl_surface#1127.enter(wl_output#1497) +[2618054.114] {Default Queue} discarded wl_surface#1063.enter(wl_output#1497) +[2618054.124] {Default Queue} discarded wl_surface#455.enter(wl_output#1497) +[2618054.132] {Default Queue} discarded wl_surface#1415.enter(wl_output#1497) +[2618054.137] {Default Queue} discarded wl_surface#903.enter(wl_output#1497) +[2618054.142] {Default Queue} discarded wl_surface#775.enter(wl_output#1497) +[2618054.147] {Default Queue} discarded wl_surface#135.enter(wl_output#1497) +[2618054.152] {Default Queue} discarded wl_surface#1287.enter(wl_output#1497) +[2618054.157] {Default Queue} discarded wl_surface#1031.enter(wl_output#1497) +[2618054.162] {Default Queue} discarded wl_surface#615.enter(wl_output#1497) +[2618054.167] {Default Queue} discarded wl_surface#231.enter(wl_output#1497) +[2618054.172] {Default Queue} discarded wl_surface#359.enter(wl_output#1497) +[2618054.176] {Default Queue} discarded wl_surface#583.enter(wl_output#1497) +[2618054.181] {Default Queue} discarded wl_surface#743.enter(wl_output#1497) +[2618054.186] {Default Queue} discarded wl_surface#967.enter(wl_output#1497) +[2618054.191] {Default Queue} discarded wl_surface#103.enter(wl_output#1497) +[2618054.195] {Default Queue} discarded wl_surface#327.enter(wl_output#1497) +[2618054.200] {Default Queue} discarded wl_surface#43.enter(wl_output#1497) +[2618054.205] {Default Queue} discarded wl_surface#807.enter(wl_output#1497) +[2618054.210] {Default Queue} discarded wl_surface#19.enter(wl_output#1497) +[2618054.214] {Default Queue} discarded wl_surface#199.enter(wl_output#1497) +[2618054.219] {Default Queue} discarded wl_surface#391.enter(wl_output#1497) +[2618054.225] {Default Queue} discarded wl_surface#935.enter(wl_output#1497) +[2618054.229] {Default Queue} discarded wl_surface#1351.enter(wl_output#1497) +[2618054.234] {Default Queue} discarded wl_surface#711.enter(wl_output#1497) +[2618054.239] {Default Queue} discarded wl_surface#1223.enter(wl_output#1497) +[2618054.244] {Default Queue} discarded wl_surface#871.enter(wl_output#1497) +[2618054.249] {Default Queue} discarded wl_surface#263.enter(wl_output#1497) +[2618054.254] {Default Queue} discarded wl_surface#551.enter(wl_output#1497) +[2618054.258] {Default Queue} discarded wl_surface#647.enter(wl_output#1497) +[2618054.263] {Default Queue} discarded wl_surface#71.enter(wl_output#1497) +[2618054.268] {Default Queue} discarded wl_surface#839.enter(wl_output#1497) +[2618054.273] {Default Queue} discarded wl_surface#1095.enter(wl_output#1497) +[2618054.278] {Default Queue} discarded wl_surface#1383.enter(wl_output#1497) +[2618054.282] {Default Queue} discarded wl_surface#487.enter(wl_output#1497) +[2618054.287] {Default Queue} discarded wl_surface#519.enter(wl_output#1497) +[2618054.292] {Default Queue} discarded wl_surface#295.enter(wl_output#1497) +[2618054.297] {Default Queue} discarded wl_surface#167.enter(wl_output#1497) +[2618054.302] {Default Queue} discarded wl_surface#1255.enter(wl_output#1497) +[2618054.307] {Default Queue} discarded wl_surface#679.enter(wl_output#1497) +[2618054.311] {Default Queue} wl_registry#1510.global(1, "wl_compositor", 6) +[2618054.318] {Default Queue} -> wl_registry#1510.bind(1, "wl_compositor", 1, new id [unknown]#1516) +[2618054.324] {Default Queue} wl_registry#1510.global(2, "wl_subcompositor", 1) +[2618054.330] {Default Queue} -> wl_registry#1510.bind(2, "wl_subcompositor", 1, new id [unknown]#1517) +[2618054.335] {Default Queue} wl_registry#1510.global(3, "xdg_wm_base", 6) +[2618054.341] {Default Queue} -> wl_registry#1510.bind(3, "xdg_wm_base", 1, new id [unknown]#1518) +[2618054.347] {Default Queue} wl_registry#1510.global(6, "zwlr_layer_shell_v1", 5) +[2618054.352] {Default Queue} wl_registry#1510.global(7, "ext_session_lock_manager_v1", 1) +[2618054.358] {Default Queue} wl_registry#1510.global(8, "wl_shm", 2) +[2618054.364] {Default Queue} -> wl_registry#1510.bind(8, "wl_shm", 1, new id [unknown]#1519) +[2618054.369] {Default Queue} -> wl_registry#1510.bind(8, "wl_shm", 1, new id [unknown]#1520) +[2618054.374] {Default Queue} -> wl_registry#1510.bind(8, "wl_shm", 1, new id [unknown]#1521) +[2618054.380] {Default Queue} wl_registry#1510.global(9, "zxdg_output_manager_v1", 3) +[2618054.389] {Default Queue} wl_registry#1510.global(10, "wp_fractional_scale_manager_v1", 1) +[2618054.396] {Default Queue} wl_registry#1510.global(11, "zwp_tablet_manager_v2", 1) +[2618054.401] {Default Queue} wl_registry#1510.global(12, "zwp_pointer_gestures_v1", 3) +[2618054.409] {Default Queue} wl_registry#1510.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618054.415] {Default Queue} -> wl_registry#1510.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1522) +[2618054.420] {Default Queue} wl_registry#1510.global(14, "zwp_pointer_constraints_v1", 1) +[2618054.426] {Default Queue} -> wl_registry#1510.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1523) +[2618054.432] {Default Queue} wl_registry#1510.global(15, "ext_idle_notifier_v1", 2) +[2618054.437] {Default Queue} wl_registry#1510.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618054.442] {Default Queue} wl_registry#1510.global(17, "wl_data_device_manager", 3) +[2618054.448] {Default Queue} -> wl_registry#1510.bind(17, "wl_data_device_manager", 2, new id [unknown]#1524) +[2618054.454] {Default Queue} -> wl_data_device_manager#1524.create_data_source(new id wl_data_source#1525) +[2618054.460] {Default Queue} -> wl_data_source#1525.offer("text/plain") +[2618054.465] {Default Queue} -> wl_data_source#1525.offer("text/plain;charset=utf-8") +[2618054.470] {Default Queue} -> wl_data_source#1525.offer("TEXT") +[2618054.475] {Default Queue} -> wl_data_source#1525.offer("STRING") +[2618054.480] {Default Queue} -> wl_data_source#1525.offer("UTF8_STRING") +[2618054.485] {Default Queue} wl_registry#1510.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618054.491] {Default Queue} -> wl_registry#1510.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1526) +[2618054.501] {Default Queue} -> zwp_primary_selection_device_manager_v1#1526.create_source(new id zwp_primary_selection_source_v1#1527) +[2618054.512] {Default Queue} -> zwp_primary_selection_source_v1#1527.offer("text/plain") +[2618054.517] {Default Queue} -> zwp_primary_selection_source_v1#1527.offer("text/plain;charset=utf-8") +[2618054.522] {Default Queue} -> zwp_primary_selection_source_v1#1527.offer("TEXT") +[2618054.527] {Default Queue} -> zwp_primary_selection_source_v1#1527.offer("STRING") +[2618054.532] {Default Queue} -> zwp_primary_selection_source_v1#1527.offer("UTF8_STRING") +[2618054.537] {Default Queue} wl_registry#1510.global(19, "zwlr_data_control_manager_v1", 2) +[2618054.543] {Default Queue} wl_registry#1510.global(20, "ext_data_control_manager_v1", 1) +[2618054.548] {Default Queue} wl_registry#1510.global(21, "wp_presentation", 2) +[2618054.553] {Default Queue} wl_registry#1510.global(22, "wp_security_context_manager_v1", 1) +[2618054.559] {Default Queue} wl_registry#1510.global(23, "zwp_text_input_manager_v3", 1) +[2618054.564] {Default Queue} wl_registry#1510.global(24, "zwp_input_method_manager_v2", 1) +[2618054.570] {Default Queue} wl_registry#1510.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618054.575] {Default Queue} wl_registry#1510.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618054.580] {Default Queue} wl_registry#1510.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618054.586] {Default Queue} wl_registry#1510.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618054.591] {Default Queue} wl_registry#1510.global(29, "ext_workspace_manager_v1", 1) +[2618054.596] {Default Queue} wl_registry#1510.global(30, "zwlr_output_manager_v1", 4) +[2618054.602] {Default Queue} wl_registry#1510.global(31, "zwlr_screencopy_manager_v1", 3) +[2618054.607] {Default Queue} wl_registry#1510.global(32, "wp_viewporter", 1) +[2618054.613] {Default Queue} wl_registry#1510.global(33, "zxdg_exporter_v2", 1) +[2618054.618] {Default Queue} wl_registry#1510.global(34, "zxdg_importer_v2", 1) +[2618054.623] {Default Queue} wl_registry#1510.global(36, "xdg_activation_v1", 1) +[2618054.629] {Default Queue} wl_registry#1510.global(37, "mutter_x11_interop", 1) +[2618054.634] {Default Queue} wl_registry#1510.global(38, "wl_seat", 9) +[2618054.642] {Default Queue} -> wl_registry#1510.bind(38, "wl_seat", 1, new id [unknown]#1528) +[2618054.652] {Default Queue} wl_registry#1510.global(39, "wp_cursor_shape_manager_v1", 2) +[2618054.659] {Default Queue} wl_registry#1510.global(40, "wl_output", 4) +[2618054.665] {Default Queue} -> wl_registry#1510.bind(40, "wl_output", 1, new id [unknown]#1529) +[2618054.671] {Default Queue} wl_callback#1511.done(0) +[2618054.676] {Default Queue} discarded wl_surface#1479.enter(wl_output#18) +[2618054.681] {Default Queue} discarded wl_surface#1479.enter(wl_output#57) +[2618054.686] {Default Queue} discarded wl_surface#1479.enter(wl_output#89) +[2618054.691] {Default Queue} discarded wl_surface#1479.enter(wl_output#121) +[2618054.696] {Default Queue} discarded wl_surface#1479.enter(wl_output#153) +[2618054.701] {Default Queue} discarded wl_surface#1479.enter(wl_output#185) +[2618054.706] {Default Queue} discarded wl_surface#1479.enter(wl_output#217) +[2618054.711] {Default Queue} discarded wl_surface#1479.enter(wl_output#249) +[2618054.715] {Default Queue} discarded wl_surface#1479.enter(wl_output#281) +[2618054.720] {Default Queue} discarded wl_surface#1479.enter(wl_output#313) +[2618054.725] {Default Queue} discarded wl_surface#1479.enter(wl_output#345) +[2618054.730] {Default Queue} discarded wl_surface#1479.enter(wl_output#377) +[2618054.735] {Default Queue} discarded wl_surface#1479.enter(wl_output#409) +[2618054.740] {Default Queue} discarded wl_surface#1479.enter(wl_output#441) +[2618054.745] {Default Queue} discarded wl_surface#1479.enter(wl_output#473) +[2618054.750] {Default Queue} discarded wl_surface#1479.enter(wl_output#505) +[2618054.754] {Default Queue} discarded wl_surface#1479.enter(wl_output#537) +[2618054.759] {Default Queue} discarded wl_surface#1479.enter(wl_output#569) +[2618054.764] {Default Queue} discarded wl_surface#1479.enter(wl_output#601) +[2618054.769] {Default Queue} discarded wl_surface#1479.enter(wl_output#633) +[2618054.774] {Default Queue} discarded wl_surface#1479.enter(wl_output#665) +[2618054.779] {Default Queue} discarded wl_surface#1479.enter(wl_output#697) +[2618054.784] {Default Queue} discarded wl_surface#1479.enter(wl_output#729) +[2618054.789] {Default Queue} discarded wl_surface#1479.enter(wl_output#761) +[2618054.793] {Default Queue} discarded wl_surface#1479.enter(wl_output#793) +[2618054.798] {Default Queue} discarded wl_surface#1479.enter(wl_output#825) +[2618054.803] {Default Queue} discarded wl_surface#1479.enter(wl_output#857) +[2618054.808] {Default Queue} discarded wl_surface#1479.enter(wl_output#889) +[2618054.813] {Default Queue} discarded wl_surface#1479.enter(wl_output#921) +[2618054.818] {Default Queue} discarded wl_surface#1479.enter(wl_output#953) +[2618054.823] {Default Queue} discarded wl_surface#1479.enter(wl_output#985) +[2618054.827] {Default Queue} discarded wl_surface#1479.enter(wl_output#1017) +[2618054.832] {Default Queue} discarded wl_surface#1479.enter(wl_output#1049) +[2618054.837] {Default Queue} discarded wl_surface#1479.enter(wl_output#1081) +[2618054.842] {Default Queue} discarded wl_surface#1479.enter(wl_output#1113) +[2618054.847] {Default Queue} discarded wl_surface#1479.enter(wl_output#1145) +[2618054.852] {Default Queue} discarded wl_surface#1479.enter(wl_output#1177) +[2618054.857] {Default Queue} discarded wl_surface#1479.enter(wl_output#1209) +[2618054.868] {Default Queue} discarded wl_surface#1479.enter(wl_output#1241) +[2618054.873] {Default Queue} discarded wl_surface#1479.enter(wl_output#1273) +[2618054.877] {Default Queue} discarded wl_surface#1479.enter(wl_output#1305) +[2618054.882] {Default Queue} discarded wl_surface#1479.enter(wl_output#1337) +[2618054.887] {Default Queue} discarded wl_surface#1479.enter(wl_output#1369) +[2618054.892] {Default Queue} discarded wl_surface#1479.enter(wl_output#1401) +[2618054.897] {Default Queue} discarded wl_surface#1479.enter(wl_output#1433) +[2618054.902] {Default Queue} discarded wl_surface#1479.enter(wl_output#1465) +[2618054.907] {Default Queue} discarded wl_surface#1479.enter(wl_output#1497) +[2618054.912] {Default Queue} -> wl_compositor#1484.create_surface(new id wl_surface#1511) +[2618054.921] {Default Queue} -> wl_subcompositor#1517.get_subsurface(new id wl_subsurface#1530, wl_surface#1511, wl_surface#1479) +[2618054.932] {Default Queue} -> wl_subsurface#1530.set_desync() +[2618054.938] {Default Queue} -> wl_subsurface#1530.set_position(0, 0) +[2618054.943] {Default Queue} -> wl_subsurface#1530.place_above(wl_surface#1479) +[2618054.989] {Default Queue} -> wl_shm#1519.create_pool(new id wl_shm_pool#1531, fd 244, 16) +[2618054.996] {Default Queue} -> wl_shm#1519.create_pool(new id wl_shm_pool#1532, fd 245, 16) +[2618055.000] {Default Queue} -> wl_shm_pool#1531.create_buffer(new id wl_buffer#1533, 0, 2, 2, 8, 0) +[2618055.005] {Default Queue} -> wl_shm_pool#1532.create_buffer(new id wl_buffer#1534, 0, 2, 2, 8, 0) +[2618055.013] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) +[2618055.019] {Default Queue} -> wl_surface#1511.commit() +[2618055.024] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) +[2618055.029] {Default Queue} -> wl_surface#1511.commit() +[2618055.033] {Default Queue} -> wl_compositor#1516.create_region(new id wl_region#1535) +[2618055.037] {Default Queue} -> wl_compositor#1516.create_region(new id wl_region#1536) +[2618055.042] {Default Queue} -> wl_region#1535.subtract(0, 0, 2, 2) +[2618055.046] {Default Queue} -> wl_region#1535.add(0, 0, 0, 0) +[2618055.051] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2618055.055] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2618055.059] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618055.064] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) +[2618055.071] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) +[2618055.075] {Default Queue} -> wl_surface#1511.commit() +[2618055.107] {Default Queue} -> wl_shm#1521.create_pool(new id wl_shm_pool#1537, fd 248, 640) +[2618055.113] {Default Queue} -> wl_shm#1521.create_pool(new id wl_shm_pool#1538, fd 249, 640) +[2618055.117] {Default Queue} -> wl_shm_pool#1537.create_buffer(new id wl_buffer#1539, 0, 10, 16, 40, 0) +[2618055.122] {Default Queue} -> wl_shm_pool#1538.create_buffer(new id wl_buffer#1540, 0, 10, 16, 40, 0) +[2618055.129] {Default Queue} -> wl_compositor#1516.create_surface(new id wl_surface#1541) +[2618055.133] {Default Queue} -> wl_surface#1541.attach(wl_buffer#1539, 0, 0) +[2618055.138] {Default Queue} -> wl_surface#1541.commit() +[2618055.143] {Default Queue} -> wl_surface#1541.attach(wl_buffer#1539, 0, 0) +[2618055.147] {Default Queue} -> wl_surface#1541.commit() +[2618055.153] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) +[2618055.159] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618055.163] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618055.170] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1542) +[2618055.175] {Default Queue} -> wl_display#1.sync(new id wl_callback#1543) +[2618058.964] {Display Queue} wl_display#1.delete_id(1543) +[2618058.980] {Default Queue} wl_keyboard#1512.keymap(1, fd 244, 68213) +[2618058.986] {Default Queue} wl_keyboard#1512.enter(566, wl_surface#19, array[0]) +[2618058.992] {Default Queue} wl_keyboard#1512.modifiers(566, 0, 0, 16, 0) +[2618058.996] {Default Queue} discarded wl_shm#1519.format(875709016) +[2618059.001] {Default Queue} discarded wl_shm#1519.format(1) +[2618059.005] {Default Queue} discarded wl_shm#1519.format(0) +[2618059.009] {Default Queue} discarded wl_shm#1519.format(875708993) +[2618059.013] {Default Queue} discarded wl_shm#1520.format(875709016) +[2618059.017] {Default Queue} discarded wl_shm#1520.format(1) +[2618059.021] {Default Queue} discarded wl_shm#1520.format(0) +[2618059.025] {Default Queue} discarded wl_shm#1520.format(875708993) +[2618059.029] {Default Queue} discarded wl_shm#1521.format(875709016) +[2618059.032] {Default Queue} discarded wl_shm#1521.format(1) +[2618059.036] {Default Queue} discarded wl_shm#1521.format(0) +[2618059.041] {Default Queue} discarded wl_shm#1521.format(875708993) +[2618059.044] {Default Queue} wl_seat#1528.capabilities(7) +[2618059.049] {Default Queue} -> wl_seat#1528.get_keyboard(new id wl_keyboard#1544) +[2618059.058] {Default Queue} -> wl_seat#1528.get_pointer(new id wl_pointer#1545) +[2618059.066] {Default Queue} -> wl_data_device_manager#1524.get_data_device(new id wl_data_device#1546, wl_seat#1528) +[2618059.071] {Default Queue} -> zwp_primary_selection_device_manager_v1#1526.get_device(new id zwp_primary_selection_device_v1#1547, wl_seat#1528) +[2618059.079] {Default Queue} wl_output#1529.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618059.084] {Default Queue} wl_output#1529.mode(3, 1280, 800, 60000) +[2618059.089] {Default Queue} discarded wl_surface#3.enter(wl_output#1529) +[2618059.093] {Default Queue} discarded wl_surface#999.enter(wl_output#1529) +[2618059.097] {Default Queue} discarded wl_surface#1191.enter(wl_output#1529) +[2618059.101] {Default Queue} discarded wl_surface#1159.enter(wl_output#1529) +[2618059.105] {Default Queue} discarded wl_surface#423.enter(wl_output#1529) +[2618059.109] {Default Queue} discarded wl_surface#1447.enter(wl_output#1529) +[2618059.113] {Default Queue} discarded wl_surface#1319.enter(wl_output#1529) +[2618059.117] {Default Queue} discarded wl_surface#1127.enter(wl_output#1529) +[2618059.121] {Default Queue} discarded wl_surface#1063.enter(wl_output#1529) +[2618059.124] {Default Queue} discarded wl_surface#455.enter(wl_output#1529) +[2618059.128] {Default Queue} discarded wl_surface#1415.enter(wl_output#1529) +[2618059.132] {Default Queue} discarded wl_surface#903.enter(wl_output#1529) +[2618059.136] {Default Queue} discarded wl_surface#775.enter(wl_output#1529) +[2618059.140] {Default Queue} discarded wl_surface#135.enter(wl_output#1529) +[2618059.144] {Default Queue} discarded wl_surface#1287.enter(wl_output#1529) +[2618059.148] {Default Queue} discarded wl_surface#1031.enter(wl_output#1529) +[2618059.152] {Default Queue} discarded wl_surface#615.enter(wl_output#1529) +[2618059.156] {Default Queue} discarded wl_surface#231.enter(wl_output#1529) +[2618059.160] {Default Queue} discarded wl_surface#359.enter(wl_output#1529) +[2618059.164] {Default Queue} discarded wl_surface#583.enter(wl_output#1529) +[2618059.168] {Default Queue} discarded wl_surface#743.enter(wl_output#1529) +[2618059.172] {Default Queue} discarded wl_surface#967.enter(wl_output#1529) +[2618059.176] {Default Queue} discarded wl_surface#103.enter(wl_output#1529) +[2618059.180] {Default Queue} discarded wl_surface#327.enter(wl_output#1529) +[2618059.183] {Default Queue} discarded wl_surface#43.enter(wl_output#1529) +[2618059.187] {Default Queue} discarded wl_surface#807.enter(wl_output#1529) +[2618059.191] {Default Queue} discarded wl_surface#19.enter(wl_output#1529) +[2618059.195] {Default Queue} discarded wl_surface#199.enter(wl_output#1529) +[2618059.199] {Default Queue} discarded wl_surface#391.enter(wl_output#1529) +[2618059.203] {Default Queue} discarded wl_surface#935.enter(wl_output#1529) +[2618059.207] {Default Queue} discarded wl_surface#1351.enter(wl_output#1529) +[2618059.211] {Default Queue} discarded wl_surface#711.enter(wl_output#1529) +[2618059.215] {Default Queue} discarded wl_surface#1223.enter(wl_output#1529) +[2618059.219] {Default Queue} discarded wl_surface#871.enter(wl_output#1529) +[2618059.222] {Default Queue} discarded wl_surface#263.enter(wl_output#1529) +[2618059.226] {Default Queue} discarded wl_surface#551.enter(wl_output#1529) +[2618059.230] {Default Queue} discarded wl_surface#1479.enter(wl_output#1529) +[2618059.234] {Default Queue} discarded wl_surface#647.enter(wl_output#1529) +[2618059.238] {Default Queue} discarded wl_surface#71.enter(wl_output#1529) +[2618059.242] {Default Queue} discarded wl_surface#839.enter(wl_output#1529) +[2618059.246] {Default Queue} discarded wl_surface#1095.enter(wl_output#1529) +[2618059.250] {Default Queue} discarded wl_surface#1383.enter(wl_output#1529) +[2618059.254] {Default Queue} discarded wl_surface#487.enter(wl_output#1529) +[2618059.258] {Default Queue} discarded wl_surface#519.enter(wl_output#1529) +[2618059.262] {Default Queue} discarded wl_surface#295.enter(wl_output#1529) +[2618059.266] {Default Queue} discarded wl_surface#167.enter(wl_output#1529) +[2618059.273] {Default Queue} discarded wl_surface#1255.enter(wl_output#1529) +[2618059.279] {Default Queue} discarded wl_surface#679.enter(wl_output#1529) +[2618059.283] {Default Queue} wl_registry#1542.global(1, "wl_compositor", 6) +[2618059.288] {Default Queue} -> wl_registry#1542.bind(1, "wl_compositor", 1, new id [unknown]#1548) +[2618059.293] {Default Queue} wl_registry#1542.global(2, "wl_subcompositor", 1) +[2618059.297] {Default Queue} -> wl_registry#1542.bind(2, "wl_subcompositor", 1, new id [unknown]#1549) +[2618059.302] {Default Queue} wl_registry#1542.global(3, "xdg_wm_base", 6) +[2618059.306] {Default Queue} -> wl_registry#1542.bind(3, "xdg_wm_base", 1, new id [unknown]#1550) +[2618059.311] {Default Queue} wl_registry#1542.global(6, "zwlr_layer_shell_v1", 5) +[2618059.316] {Default Queue} wl_registry#1542.global(7, "ext_session_lock_manager_v1", 1) +[2618059.320] {Default Queue} wl_registry#1542.global(8, "wl_shm", 2) +[2618059.325] {Default Queue} -> wl_registry#1542.bind(8, "wl_shm", 1, new id [unknown]#1551) +[2618059.331] {Default Queue} -> wl_registry#1542.bind(8, "wl_shm", 1, new id [unknown]#1552) +[2618059.336] {Default Queue} -> wl_registry#1542.bind(8, "wl_shm", 1, new id [unknown]#1553) +[2618059.340] {Default Queue} wl_registry#1542.global(9, "zxdg_output_manager_v1", 3) +[2618059.345] {Default Queue} wl_registry#1542.global(10, "wp_fractional_scale_manager_v1", 1) +[2618059.349] {Default Queue} wl_registry#1542.global(11, "zwp_tablet_manager_v2", 1) +[2618059.353] {Default Queue} wl_registry#1542.global(12, "zwp_pointer_gestures_v1", 3) +[2618059.357] {Default Queue} wl_registry#1542.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618059.362] {Default Queue} -> wl_registry#1542.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1554) +[2618059.367] {Default Queue} wl_registry#1542.global(14, "zwp_pointer_constraints_v1", 1) +[2618059.371] {Default Queue} -> wl_registry#1542.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1555) +[2618059.376] {Default Queue} wl_registry#1542.global(15, "ext_idle_notifier_v1", 2) +[2618059.380] {Default Queue} wl_registry#1542.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618059.384] {Default Queue} wl_registry#1542.global(17, "wl_data_device_manager", 3) +[2618059.390] {Default Queue} -> wl_registry#1542.bind(17, "wl_data_device_manager", 2, new id [unknown]#1556) +[2618059.394] {Default Queue} -> wl_data_device_manager#1556.create_data_source(new id wl_data_source#1557) +[2618059.399] {Default Queue} -> wl_data_source#1557.offer("text/plain") +[2618059.403] {Default Queue} -> wl_data_source#1557.offer("text/plain;charset=utf-8") +[2618059.407] {Default Queue} -> wl_data_source#1557.offer("TEXT") +[2618059.411] {Default Queue} -> wl_data_source#1557.offer("STRING") +[2618059.415] {Default Queue} -> wl_data_source#1557.offer("UTF8_STRING") +[2618059.419] {Default Queue} wl_registry#1542.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618059.424] {Default Queue} -> wl_registry#1542.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1558) +[2618059.432] {Default Queue} -> zwp_primary_selection_device_manager_v1#1558.create_source(new id zwp_primary_selection_source_v1#1559) +[2618059.439] {Default Queue} -> zwp_primary_selection_source_v1#1559.offer("text/plain") +[2618059.443] {Default Queue} -> zwp_primary_selection_source_v1#1559.offer("text/plain;charset=utf-8") +[2618059.447] {Default Queue} -> zwp_primary_selection_source_v1#1559.offer("TEXT") +[2618059.452] {Default Queue} -> zwp_primary_selection_source_v1#1559.offer("STRING") +[2618059.456] {Default Queue} -> zwp_primary_selection_source_v1#1559.offer("UTF8_STRING") +[2618059.459] {Default Queue} wl_registry#1542.global(19, "zwlr_data_control_manager_v1", 2) +[2618059.464] {Default Queue} wl_registry#1542.global(20, "ext_data_control_manager_v1", 1) +[2618059.468] {Default Queue} wl_registry#1542.global(21, "wp_presentation", 2) +[2618059.473] {Default Queue} wl_registry#1542.global(22, "wp_security_context_manager_v1", 1) +[2618059.480] {Default Queue} wl_registry#1542.global(23, "zwp_text_input_manager_v3", 1) +[2618059.486] {Default Queue} wl_registry#1542.global(24, "zwp_input_method_manager_v2", 1) +[2618059.490] {Default Queue} wl_registry#1542.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618059.495] {Default Queue} wl_registry#1542.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618059.499] {Default Queue} wl_registry#1542.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618059.503] {Default Queue} wl_registry#1542.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618059.507] {Default Queue} wl_registry#1542.global(29, "ext_workspace_manager_v1", 1) +[2618059.512] {Default Queue} wl_registry#1542.global(30, "zwlr_output_manager_v1", 4) +[2618059.516] {Default Queue} wl_registry#1542.global(31, "zwlr_screencopy_manager_v1", 3) +[2618059.520] {Default Queue} wl_registry#1542.global(32, "wp_viewporter", 1) +[2618059.525] {Default Queue} wl_registry#1542.global(33, "zxdg_exporter_v2", 1) +[2618059.529] {Default Queue} wl_registry#1542.global(34, "zxdg_importer_v2", 1) +[2618059.533] {Default Queue} wl_registry#1542.global(36, "xdg_activation_v1", 1) +[2618059.538] {Default Queue} wl_registry#1542.global(37, "mutter_x11_interop", 1) +[2618059.542] {Default Queue} wl_registry#1542.global(38, "wl_seat", 9) +[2618059.546] {Default Queue} -> wl_registry#1542.bind(38, "wl_seat", 1, new id [unknown]#1560) +[2618059.551] {Default Queue} wl_registry#1542.global(39, "wp_cursor_shape_manager_v1", 2) +[2618059.555] {Default Queue} wl_registry#1542.global(40, "wl_output", 4) +[2618059.560] {Default Queue} -> wl_registry#1542.bind(40, "wl_output", 1, new id [unknown]#1561) +[2618059.564] {Default Queue} wl_callback#1543.done(0) +[2618059.569] {Default Queue} discarded wl_surface#1511.enter(wl_output#18) +[2618059.574] {Default Queue} discarded wl_surface#1511.enter(wl_output#57) +[2618059.578] {Default Queue} discarded wl_surface#1511.enter(wl_output#89) +[2618059.582] {Default Queue} discarded wl_surface#1511.enter(wl_output#121) +[2618059.586] {Default Queue} discarded wl_surface#1511.enter(wl_output#153) +[2618059.590] {Default Queue} discarded wl_surface#1511.enter(wl_output#185) +[2618059.594] {Default Queue} discarded wl_surface#1511.enter(wl_output#217) +[2618059.598] {Default Queue} discarded wl_surface#1511.enter(wl_output#249) +[2618059.602] {Default Queue} discarded wl_surface#1511.enter(wl_output#281) +[2618059.606] {Default Queue} discarded wl_surface#1511.enter(wl_output#313) +[2618059.610] {Default Queue} discarded wl_surface#1511.enter(wl_output#345) +[2618059.614] {Default Queue} discarded wl_surface#1511.enter(wl_output#377) +[2618059.617] {Default Queue} discarded wl_surface#1511.enter(wl_output#409) +[2618059.621] {Default Queue} discarded wl_surface#1511.enter(wl_output#441) +[2618059.625] {Default Queue} discarded wl_surface#1511.enter(wl_output#473) +[2618059.629] {Default Queue} discarded wl_surface#1511.enter(wl_output#505) +[2618059.633] {Default Queue} discarded wl_surface#1511.enter(wl_output#537) +[2618059.637] {Default Queue} discarded wl_surface#1511.enter(wl_output#569) +[2618059.641] {Default Queue} discarded wl_surface#1511.enter(wl_output#601) +[2618059.644] {Default Queue} discarded wl_surface#1511.enter(wl_output#633) +[2618059.648] {Default Queue} discarded wl_surface#1511.enter(wl_output#665) +[2618059.652] {Default Queue} discarded wl_surface#1511.enter(wl_output#697) +[2618059.656] {Default Queue} discarded wl_surface#1511.enter(wl_output#729) +[2618059.660] {Default Queue} discarded wl_surface#1511.enter(wl_output#761) +[2618059.664] {Default Queue} discarded wl_surface#1511.enter(wl_output#793) +[2618059.668] {Default Queue} discarded wl_surface#1511.enter(wl_output#825) +[2618059.672] {Default Queue} discarded wl_surface#1511.enter(wl_output#857) +[2618059.676] {Default Queue} discarded wl_surface#1511.enter(wl_output#889) +[2618059.680] {Default Queue} discarded wl_surface#1511.enter(wl_output#921) +[2618059.684] {Default Queue} discarded wl_surface#1511.enter(wl_output#953) +[2618059.688] {Default Queue} discarded wl_surface#1511.enter(wl_output#985) +[2618059.694] {Default Queue} discarded wl_surface#1511.enter(wl_output#1017) +[2618059.700] {Default Queue} discarded wl_surface#1511.enter(wl_output#1049) +[2618059.704] {Default Queue} discarded wl_surface#1511.enter(wl_output#1081) +[2618059.708] {Default Queue} discarded wl_surface#1511.enter(wl_output#1113) +[2618059.712] {Default Queue} discarded wl_surface#1511.enter(wl_output#1145) +[2618059.716] {Default Queue} discarded wl_surface#1511.enter(wl_output#1177) +[2618059.720] {Default Queue} discarded wl_surface#1511.enter(wl_output#1209) +[2618059.723] {Default Queue} discarded wl_surface#1511.enter(wl_output#1241) +[2618059.727] {Default Queue} discarded wl_surface#1511.enter(wl_output#1273) +[2618059.731] {Default Queue} discarded wl_surface#1511.enter(wl_output#1305) +[2618059.735] {Default Queue} discarded wl_surface#1511.enter(wl_output#1337) +[2618059.739] {Default Queue} discarded wl_surface#1511.enter(wl_output#1369) +[2618059.743] {Default Queue} discarded wl_surface#1511.enter(wl_output#1401) +[2618059.747] {Default Queue} discarded wl_surface#1511.enter(wl_output#1433) +[2618059.751] {Default Queue} discarded wl_surface#1511.enter(wl_output#1465) +[2618059.755] {Default Queue} discarded wl_surface#1511.enter(wl_output#1497) +[2618059.759] {Default Queue} discarded wl_surface#1511.enter(wl_output#1529) +[2618059.763] {Default Queue} -> wl_compositor#1484.create_surface(new id wl_surface#1543) +[2618059.767] {Default Queue} -> wl_subcompositor#1549.get_subsurface(new id wl_subsurface#1562, wl_surface#1543, wl_surface#1479) +[2618059.775] {Default Queue} -> wl_subsurface#1562.set_desync() +[2618059.780] {Default Queue} -> wl_subsurface#1562.set_position(0, 0) +[2618059.784] {Default Queue} -> wl_subsurface#1562.place_above(wl_surface#1479) +[2618059.835] {Default Queue} -> wl_shm#1551.create_pool(new id wl_shm_pool#1563, fd 249, 16) +[2618059.842] {Default Queue} -> wl_shm#1551.create_pool(new id wl_shm_pool#1564, fd 250, 16) +[2618059.847] {Default Queue} -> wl_shm_pool#1563.create_buffer(new id wl_buffer#1565, 0, 2, 2, 8, 0) +[2618059.852] {Default Queue} -> wl_shm_pool#1564.create_buffer(new id wl_buffer#1566, 0, 2, 2, 8, 0) +[2618059.859] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) +[2618059.874] {Default Queue} -> wl_surface#1543.commit() +[2618059.880] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) +[2618059.885] {Default Queue} -> wl_surface#1543.commit() +[2618059.889] {Default Queue} -> wl_compositor#1548.create_region(new id wl_region#1567) +[2618059.893] {Default Queue} -> wl_compositor#1548.create_region(new id wl_region#1568) +[2618059.897] {Default Queue} -> wl_region#1567.subtract(0, 0, 2, 2) +[2618059.902] {Default Queue} -> wl_region#1567.add(0, 0, 0, 0) +[2618059.907] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) +[2618059.911] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) +[2618059.915] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) +[2618059.920] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) +[2618059.927] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) +[2618059.931] {Default Queue} -> wl_surface#1543.commit() +[2618059.966] {Default Queue} -> wl_shm#1553.create_pool(new id wl_shm_pool#1569, fd 253, 640) +[2618059.973] {Default Queue} -> wl_shm#1553.create_pool(new id wl_shm_pool#1570, fd 254, 640) +[2618059.977] {Default Queue} -> wl_shm_pool#1569.create_buffer(new id wl_buffer#1571, 0, 10, 16, 40, 0) +[2618059.982] {Default Queue} -> wl_shm_pool#1570.create_buffer(new id wl_buffer#1572, 0, 10, 16, 40, 0) +[2618059.989] {Default Queue} -> wl_compositor#1548.create_surface(new id wl_surface#1573) +[2618059.994] {Default Queue} -> wl_surface#1573.attach(wl_buffer#1571, 0, 0) +[2618059.999] {Default Queue} -> wl_surface#1573.commit() +[2618060.004] {Default Queue} -> wl_surface#1573.attach(wl_buffer#1571, 0, 0) +[2618060.008] {Default Queue} -> wl_surface#1573.commit() +[2618060.013] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) +[2618060.020] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1574) +[2618060.030] {Default Queue} -> wl_display#1.sync(new id wl_callback#1575) +[2618065.132] {Display Queue} wl_display#1.delete_id(1575) +[2618065.144] {Default Queue} wl_keyboard#1544.keymap(1, fd 249, 68213) +[2618065.151] {Default Queue} wl_keyboard#1544.enter(566, wl_surface#19, array[0]) +[2618065.158] {Default Queue} wl_keyboard#1544.modifiers(566, 0, 0, 16, 0) +[2618065.164] {Default Queue} discarded wl_shm#1551.format(875709016) +[2618065.170] {Default Queue} discarded wl_shm#1551.format(1) +[2618065.175] {Default Queue} discarded wl_shm#1551.format(0) +[2618065.179] {Default Queue} discarded wl_shm#1551.format(875708993) +[2618065.184] {Default Queue} discarded wl_shm#1552.format(875709016) +[2618065.189] {Default Queue} discarded wl_shm#1552.format(1) +[2618065.194] {Default Queue} discarded wl_shm#1552.format(0) +[2618065.199] {Default Queue} discarded wl_shm#1552.format(875708993) +[2618065.204] {Default Queue} discarded wl_shm#1553.format(875709016) +[2618065.209] {Default Queue} discarded wl_shm#1553.format(1) +[2618065.214] {Default Queue} discarded wl_shm#1553.format(0) +[2618065.219] {Default Queue} discarded wl_shm#1553.format(875708993) +[2618065.224] {Default Queue} wl_seat#1560.capabilities(7) +[2618065.229] {Default Queue} -> wl_seat#1560.get_keyboard(new id wl_keyboard#1576) +[2618065.235] {Default Queue} -> wl_seat#1560.get_pointer(new id wl_pointer#1577) +[2618065.241] {Default Queue} -> wl_data_device_manager#1556.get_data_device(new id wl_data_device#1578, wl_seat#1560) +[2618065.247] {Default Queue} -> zwp_primary_selection_device_manager_v1#1558.get_device(new id zwp_primary_selection_device_v1#1579, wl_seat#1560) +[2618065.257] {Default Queue} wl_output#1561.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618065.263] {Default Queue} wl_output#1561.mode(3, 1280, 800, 60000) +[2618065.269] {Default Queue} discarded wl_surface#3.enter(wl_output#1561) +[2618065.275] {Default Queue} discarded wl_surface#999.enter(wl_output#1561) +[2618065.279] {Default Queue} discarded wl_surface#1191.enter(wl_output#1561) +[2618065.284] {Default Queue} discarded wl_surface#1159.enter(wl_output#1561) +[2618065.289] {Default Queue} discarded wl_surface#423.enter(wl_output#1561) +[2618065.295] {Default Queue} discarded wl_surface#1447.enter(wl_output#1561) +[2618065.300] {Default Queue} discarded wl_surface#1319.enter(wl_output#1561) +[2618065.304] {Default Queue} discarded wl_surface#1127.enter(wl_output#1561) +[2618065.309] {Default Queue} discarded wl_surface#1063.enter(wl_output#1561) +[2618065.314] {Default Queue} discarded wl_surface#455.enter(wl_output#1561) +[2618065.319] {Default Queue} discarded wl_surface#1415.enter(wl_output#1561) +[2618065.324] {Default Queue} discarded wl_surface#903.enter(wl_output#1561) +[2618065.329] {Default Queue} discarded wl_surface#775.enter(wl_output#1561) +[2618065.334] {Default Queue} discarded wl_surface#135.enter(wl_output#1561) +[2618065.339] {Default Queue} discarded wl_surface#1287.enter(wl_output#1561) +[2618065.344] {Default Queue} discarded wl_surface#1031.enter(wl_output#1561) +[2618065.349] {Default Queue} discarded wl_surface#615.enter(wl_output#1561) +[2618065.354] {Default Queue} discarded wl_surface#231.enter(wl_output#1561) +[2618065.359] {Default Queue} discarded wl_surface#359.enter(wl_output#1561) +[2618065.364] {Default Queue} discarded wl_surface#583.enter(wl_output#1561) +[2618065.369] {Default Queue} discarded wl_surface#743.enter(wl_output#1561) +[2618065.374] {Default Queue} discarded wl_surface#967.enter(wl_output#1561) +[2618065.378] {Default Queue} discarded wl_surface#103.enter(wl_output#1561) +[2618065.383] {Default Queue} discarded wl_surface#327.enter(wl_output#1561) +[2618065.388] {Default Queue} discarded wl_surface#43.enter(wl_output#1561) +[2618065.393] {Default Queue} discarded wl_surface#807.enter(wl_output#1561) +[2618065.398] {Default Queue} discarded wl_surface#19.enter(wl_output#1561) +[2618065.403] {Default Queue} discarded wl_surface#1511.enter(wl_output#1561) +[2618065.408] {Default Queue} discarded wl_surface#199.enter(wl_output#1561) +[2618065.418] {Default Queue} discarded wl_surface#391.enter(wl_output#1561) +[2618065.426] {Default Queue} discarded wl_surface#935.enter(wl_output#1561) +[2618065.431] {Default Queue} discarded wl_surface#1351.enter(wl_output#1561) +[2618065.436] {Default Queue} discarded wl_surface#711.enter(wl_output#1561) +[2618065.441] {Default Queue} discarded wl_surface#1223.enter(wl_output#1561) +[2618065.446] {Default Queue} discarded wl_surface#871.enter(wl_output#1561) +[2618065.451] {Default Queue} discarded wl_surface#263.enter(wl_output#1561) +[2618065.456] {Default Queue} discarded wl_surface#551.enter(wl_output#1561) +[2618065.460] {Default Queue} discarded wl_surface#1479.enter(wl_output#1561) +[2618065.465] {Default Queue} discarded wl_surface#647.enter(wl_output#1561) +[2618065.470] {Default Queue} discarded wl_surface#71.enter(wl_output#1561) +[2618065.475] {Default Queue} discarded wl_surface#839.enter(wl_output#1561) +[2618065.480] {Default Queue} discarded wl_surface#1095.enter(wl_output#1561) +[2618065.485] {Default Queue} discarded wl_surface#1383.enter(wl_output#1561) +[2618065.489] {Default Queue} discarded wl_surface#487.enter(wl_output#1561) +[2618065.494] {Default Queue} discarded wl_surface#519.enter(wl_output#1561) +[2618065.499] {Default Queue} discarded wl_surface#295.enter(wl_output#1561) +[2618065.504] {Default Queue} discarded wl_surface#167.enter(wl_output#1561) +[2618065.509] {Default Queue} discarded wl_surface#1255.enter(wl_output#1561) +[2618065.514] {Default Queue} discarded wl_surface#679.enter(wl_output#1561) +[2618065.520] {Default Queue} wl_registry#1574.global(1, "wl_compositor", 6) +[2618065.526] {Default Queue} -> wl_registry#1574.bind(1, "wl_compositor", 1, new id [unknown]#1580) +[2618065.532] {Default Queue} wl_registry#1574.global(2, "wl_subcompositor", 1) +[2618065.538] {Default Queue} -> wl_registry#1574.bind(2, "wl_subcompositor", 1, new id [unknown]#1581) +[2618065.544] {Default Queue} wl_registry#1574.global(3, "xdg_wm_base", 6) +[2618065.549] {Default Queue} -> wl_registry#1574.bind(3, "xdg_wm_base", 1, new id [unknown]#1582) +[2618065.555] {Default Queue} wl_registry#1574.global(6, "zwlr_layer_shell_v1", 5) +[2618065.560] {Default Queue} wl_registry#1574.global(7, "ext_session_lock_manager_v1", 1) +[2618065.566] {Default Queue} wl_registry#1574.global(8, "wl_shm", 2) +[2618065.571] {Default Queue} -> wl_registry#1574.bind(8, "wl_shm", 1, new id [unknown]#1583) +[2618065.577] {Default Queue} -> wl_registry#1574.bind(8, "wl_shm", 1, new id [unknown]#1584) +[2618065.582] {Default Queue} -> wl_registry#1574.bind(8, "wl_shm", 1, new id [unknown]#1585) +[2618065.588] {Default Queue} wl_registry#1574.global(9, "zxdg_output_manager_v1", 3) +[2618065.593] {Default Queue} wl_registry#1574.global(10, "wp_fractional_scale_manager_v1", 1) +[2618065.601] {Default Queue} wl_registry#1574.global(11, "zwp_tablet_manager_v2", 1) +[2618065.606] {Default Queue} wl_registry#1574.global(12, "zwp_pointer_gestures_v1", 3) +[2618065.612] {Default Queue} wl_registry#1574.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618065.617] {Default Queue} -> wl_registry#1574.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1586) +[2618065.623] {Default Queue} wl_registry#1574.global(14, "zwp_pointer_constraints_v1", 1) +[2618065.629] {Default Queue} -> wl_registry#1574.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1587) +[2618065.634] {Default Queue} wl_registry#1574.global(15, "ext_idle_notifier_v1", 2) +[2618065.640] {Default Queue} wl_registry#1574.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618065.645] {Default Queue} wl_registry#1574.global(17, "wl_data_device_manager", 3) +[2618065.652] {Default Queue} -> wl_registry#1574.bind(17, "wl_data_device_manager", 2, new id [unknown]#1588) +[2618065.657] {Default Queue} -> wl_data_device_manager#1588.create_data_source(new id wl_data_source#1589) +[2618065.663] {Default Queue} -> wl_data_source#1589.offer("text/plain") +[2618065.668] {Default Queue} -> wl_data_source#1589.offer("text/plain;charset=utf-8") +[2618065.674] {Default Queue} -> wl_data_source#1589.offer("TEXT") +[2618065.682] {Default Queue} -> wl_data_source#1589.offer("STRING") +[2618065.689] {Default Queue} -> wl_data_source#1589.offer("UTF8_STRING") +[2618065.694] {Default Queue} wl_registry#1574.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618065.700] {Default Queue} -> wl_registry#1574.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1590) +[2618065.710] {Default Queue} -> zwp_primary_selection_device_manager_v1#1590.create_source(new id zwp_primary_selection_source_v1#1591) +[2618065.719] {Default Queue} -> zwp_primary_selection_source_v1#1591.offer("text/plain") +[2618065.724] {Default Queue} -> zwp_primary_selection_source_v1#1591.offer("text/plain;charset=utf-8") +[2618065.729] {Default Queue} -> zwp_primary_selection_source_v1#1591.offer("TEXT") +[2618065.734] {Default Queue} -> zwp_primary_selection_source_v1#1591.offer("STRING") +[2618065.739] {Default Queue} -> zwp_primary_selection_source_v1#1591.offer("UTF8_STRING") +[2618065.744] {Default Queue} wl_registry#1574.global(19, "zwlr_data_control_manager_v1", 2) +[2618065.750] {Default Queue} wl_registry#1574.global(20, "ext_data_control_manager_v1", 1) +[2618065.755] {Default Queue} wl_registry#1574.global(21, "wp_presentation", 2) +[2618065.761] {Default Queue} wl_registry#1574.global(22, "wp_security_context_manager_v1", 1) +[2618065.766] {Default Queue} wl_registry#1574.global(23, "zwp_text_input_manager_v3", 1) +[2618065.772] {Default Queue} wl_registry#1574.global(24, "zwp_input_method_manager_v2", 1) +[2618065.777] {Default Queue} wl_registry#1574.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618065.783] {Default Queue} wl_registry#1574.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618065.788] {Default Queue} wl_registry#1574.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618065.793] {Default Queue} wl_registry#1574.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618065.799] {Default Queue} wl_registry#1574.global(29, "ext_workspace_manager_v1", 1) +[2618065.804] {Default Queue} wl_registry#1574.global(30, "zwlr_output_manager_v1", 4) +[2618065.810] {Default Queue} wl_registry#1574.global(31, "zwlr_screencopy_manager_v1", 3) +[2618065.815] {Default Queue} wl_registry#1574.global(32, "wp_viewporter", 1) +[2618065.820] {Default Queue} wl_registry#1574.global(33, "zxdg_exporter_v2", 1) +[2618065.825] {Default Queue} wl_registry#1574.global(34, "zxdg_importer_v2", 1) +[2618065.829] {Default Queue} wl_registry#1574.global(36, "xdg_activation_v1", 1) +[2618065.833] {Default Queue} wl_registry#1574.global(37, "mutter_x11_interop", 1) +[2618065.838] {Default Queue} wl_registry#1574.global(38, "wl_seat", 9) +[2618065.842] {Default Queue} -> wl_registry#1574.bind(38, "wl_seat", 1, new id [unknown]#1592) +[2618065.847] {Default Queue} wl_registry#1574.global(39, "wp_cursor_shape_manager_v1", 2) +[2618065.851] {Default Queue} wl_registry#1574.global(40, "wl_output", 4) +[2618065.856] {Default Queue} -> wl_registry#1574.bind(40, "wl_output", 1, new id [unknown]#1593) +[2618065.865] {Default Queue} wl_callback#1575.done(0) +[2618065.869] {Default Queue} discarded wl_surface#1543.enter(wl_output#18) +[2618065.874] {Default Queue} discarded wl_surface#1543.enter(wl_output#57) +[2618065.878] {Default Queue} discarded wl_surface#1543.enter(wl_output#89) +[2618065.882] {Default Queue} discarded wl_surface#1543.enter(wl_output#121) +[2618065.886] {Default Queue} discarded wl_surface#1543.enter(wl_output#153) +[2618065.890] {Default Queue} discarded wl_surface#1543.enter(wl_output#185) +[2618065.894] {Default Queue} discarded wl_surface#1543.enter(wl_output#217) +[2618065.897] {Default Queue} discarded wl_surface#1543.enter(wl_output#249) +[2618065.901] {Default Queue} discarded wl_surface#1543.enter(wl_output#281) +[2618065.905] {Default Queue} discarded wl_surface#1543.enter(wl_output#313) +[2618065.909] {Default Queue} discarded wl_surface#1543.enter(wl_output#345) +[2618065.913] {Default Queue} discarded wl_surface#1543.enter(wl_output#377) +[2618065.917] {Default Queue} discarded wl_surface#1543.enter(wl_output#409) +[2618065.924] {Default Queue} discarded wl_surface#1543.enter(wl_output#441) +[2618065.929] {Default Queue} discarded wl_surface#1543.enter(wl_output#473) +[2618065.933] {Default Queue} discarded wl_surface#1543.enter(wl_output#505) +[2618065.937] {Default Queue} discarded wl_surface#1543.enter(wl_output#537) +[2618065.941] {Default Queue} discarded wl_surface#1543.enter(wl_output#569) +[2618065.945] {Default Queue} discarded wl_surface#1543.enter(wl_output#601) +[2618065.949] {Default Queue} discarded wl_surface#1543.enter(wl_output#633) +[2618065.953] {Default Queue} discarded wl_surface#1543.enter(wl_output#665) +[2618065.957] {Default Queue} discarded wl_surface#1543.enter(wl_output#697) +[2618065.961] {Default Queue} discarded wl_surface#1543.enter(wl_output#729) +[2618065.965] {Default Queue} discarded wl_surface#1543.enter(wl_output#761) +[2618065.969] {Default Queue} discarded wl_surface#1543.enter(wl_output#793) +[2618065.973] {Default Queue} discarded wl_surface#1543.enter(wl_output#825) +[2618065.976] {Default Queue} discarded wl_surface#1543.enter(wl_output#857) +[2618065.980] {Default Queue} discarded wl_surface#1543.enter(wl_output#889) +[2618065.984] {Default Queue} discarded wl_surface#1543.enter(wl_output#921) +[2618065.988] {Default Queue} discarded wl_surface#1543.enter(wl_output#953) +[2618065.993] {Default Queue} discarded wl_surface#1543.enter(wl_output#985) +[2618065.997] {Default Queue} discarded wl_surface#1543.enter(wl_output#1017) +[2618066.001] {Default Queue} discarded wl_surface#1543.enter(wl_output#1049) +[2618066.005] {Default Queue} discarded wl_surface#1543.enter(wl_output#1081) +[2618066.009] {Default Queue} discarded wl_surface#1543.enter(wl_output#1113) +[2618066.013] {Default Queue} discarded wl_surface#1543.enter(wl_output#1145) +[2618066.016] {Default Queue} discarded wl_surface#1543.enter(wl_output#1177) +[2618066.020] {Default Queue} discarded wl_surface#1543.enter(wl_output#1209) +[2618066.024] {Default Queue} discarded wl_surface#1543.enter(wl_output#1241) +[2618066.029] {Default Queue} discarded wl_surface#1543.enter(wl_output#1273) +[2618066.033] {Default Queue} discarded wl_surface#1543.enter(wl_output#1305) +[2618066.037] {Default Queue} discarded wl_surface#1543.enter(wl_output#1337) +[2618066.041] {Default Queue} discarded wl_surface#1543.enter(wl_output#1369) +[2618066.045] {Default Queue} discarded wl_surface#1543.enter(wl_output#1401) +[2618066.049] {Default Queue} discarded wl_surface#1543.enter(wl_output#1433) +[2618066.053] {Default Queue} discarded wl_surface#1543.enter(wl_output#1465) +[2618066.057] {Default Queue} discarded wl_surface#1543.enter(wl_output#1497) +[2618066.061] {Default Queue} discarded wl_surface#1543.enter(wl_output#1529) +[2618066.065] {Default Queue} discarded wl_surface#1543.enter(wl_output#1561) +[2618066.069] {Default Queue} -> wl_compositor#1548.create_surface(new id wl_surface#1575) +[2618066.074] {Default Queue} -> wl_subcompositor#1581.get_subsurface(new id wl_subsurface#1594, wl_surface#1575, wl_surface#1543) +[2618066.082] {Default Queue} -> wl_subsurface#1594.set_desync() +[2618066.086] {Default Queue} -> wl_subsurface#1594.set_position(0, 0) +[2618066.091] {Default Queue} -> wl_subsurface#1594.place_above(wl_surface#1543) +[2618066.135] {Default Queue} -> wl_shm#1583.create_pool(new id wl_shm_pool#1595, fd 254, 16) +[2618066.142] {Default Queue} -> wl_shm#1583.create_pool(new id wl_shm_pool#1596, fd 255, 16) +[2618066.147] {Default Queue} -> wl_shm_pool#1595.create_buffer(new id wl_buffer#1597, 0, 2, 2, 8, 0) +[2618066.152] {Default Queue} -> wl_shm_pool#1596.create_buffer(new id wl_buffer#1598, 0, 2, 2, 8, 0) +[2618066.159] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) +[2618066.164] {Default Queue} -> wl_surface#1575.commit() +[2618066.169] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) +[2618066.174] {Default Queue} -> wl_surface#1575.commit() +[2618066.178] {Default Queue} -> wl_compositor#1580.create_region(new id wl_region#1599) +[2618066.182] {Default Queue} -> wl_compositor#1580.create_region(new id wl_region#1600) +[2618066.186] {Default Queue} -> wl_region#1599.subtract(0, 0, 2, 2) +[2618066.194] {Default Queue} -> wl_region#1599.add(0, 0, 0, 0) +[2618066.200] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618066.204] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618066.208] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618066.213] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) +[2618066.220] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) +[2618066.224] {Default Queue} -> wl_surface#1575.commit() +[2618066.261] {Default Queue} -> wl_shm#1585.create_pool(new id wl_shm_pool#1601, fd 258, 640) +[2618066.268] {Default Queue} -> wl_shm#1585.create_pool(new id wl_shm_pool#1602, fd 259, 640) +[2618066.272] {Default Queue} -> wl_shm_pool#1601.create_buffer(new id wl_buffer#1603, 0, 10, 16, 40, 0) +[2618066.278] {Default Queue} -> wl_shm_pool#1602.create_buffer(new id wl_buffer#1604, 0, 10, 16, 40, 0) +[2618066.285] {Default Queue} -> wl_compositor#1580.create_surface(new id wl_surface#1605) +[2618066.290] {Default Queue} -> wl_surface#1605.attach(wl_buffer#1603, 0, 0) +[2618066.294] {Default Queue} -> wl_surface#1605.commit() +[2618066.299] {Default Queue} -> wl_surface#1605.attach(wl_buffer#1603, 0, 0) +[2618066.305] {Default Queue} -> wl_surface#1605.commit() +[2618066.316] {Default Queue} -> wl_region#1503.subtract(0, 0, 2, 2) +[2618066.321] {Default Queue} -> wl_subsurface#1498.set_position(3, 3) +[2618066.326] {Default Queue} -> wl_region#1503.subtract(0, 0, 5, 5) +[2618066.330] {Default Queue} -> wl_region#1503.add(0, 0, 0, 0) +[2618066.335] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) +[2618066.339] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) +[2618066.344] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618066.348] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618066.353] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) +[2618066.357] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) +[2618066.366] {Default Queue} -> wl_region#1503.subtract(0, 0, 5, 5) +[2618066.370] {Default Queue} -> wl_region#1503.add(0, 0, 0, 0) +[2618066.375] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) +[2618066.379] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) +[2618066.386] {Default Queue} -> wl_surface#1479.attach(wl_buffer#1501, 0, 0) +[2618066.391] {Default Queue} -> wl_surface#1479.commit() +[2618066.397] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618066.405] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1606) +[2618066.410] {Default Queue} -> wl_display#1.sync(new id wl_callback#1607) +[2618069.016] {Display Queue} wl_display#1.delete_id(1607) +[2618069.026] {Default Queue} wl_keyboard#1576.keymap(1, fd 254, 68213) +[2618069.032] {Default Queue} wl_keyboard#1576.enter(566, wl_surface#19, array[0]) +[2618069.038] {Default Queue} wl_keyboard#1576.modifiers(566, 0, 0, 16, 0) +[2618069.044] {Default Queue} discarded wl_shm#1583.format(875709016) +[2618069.049] {Default Queue} discarded wl_shm#1583.format(1) +[2618069.054] {Default Queue} discarded wl_shm#1583.format(0) +[2618069.059] {Default Queue} discarded wl_shm#1583.format(875708993) +[2618069.064] {Default Queue} discarded wl_shm#1584.format(875709016) +[2618069.069] {Default Queue} discarded wl_shm#1584.format(1) +[2618069.074] {Default Queue} discarded wl_shm#1584.format(0) +[2618069.079] {Default Queue} discarded wl_shm#1584.format(875708993) +[2618069.084] {Default Queue} discarded wl_shm#1585.format(875709016) +[2618069.089] {Default Queue} discarded wl_shm#1585.format(1) +[2618069.094] {Default Queue} discarded wl_shm#1585.format(0) +[2618069.099] {Default Queue} discarded wl_shm#1585.format(875708993) +[2618069.103] {Default Queue} wl_seat#1592.capabilities(7) +[2618069.110] {Default Queue} -> wl_seat#1592.get_keyboard(new id wl_keyboard#1608) +[2618069.115] {Default Queue} -> wl_seat#1592.get_pointer(new id wl_pointer#1609) +[2618069.121] {Default Queue} -> wl_data_device_manager#1588.get_data_device(new id wl_data_device#1610, wl_seat#1592) +[2618069.132] {Default Queue} -> zwp_primary_selection_device_manager_v1#1590.get_device(new id zwp_primary_selection_device_v1#1611, wl_seat#1592) +[2618069.146] {Default Queue} wl_output#1593.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618069.153] {Default Queue} wl_output#1593.mode(3, 1280, 800, 60000) +[2618069.158] {Default Queue} discarded wl_surface#3.enter(wl_output#1593) +[2618069.164] {Default Queue} discarded wl_surface#999.enter(wl_output#1593) +[2618069.169] {Default Queue} discarded wl_surface#1191.enter(wl_output#1593) +[2618069.174] {Default Queue} discarded wl_surface#1159.enter(wl_output#1593) +[2618069.179] {Default Queue} discarded wl_surface#423.enter(wl_output#1593) +[2618069.184] {Default Queue} discarded wl_surface#1447.enter(wl_output#1593) +[2618069.189] {Default Queue} discarded wl_surface#1319.enter(wl_output#1593) +[2618069.194] {Default Queue} discarded wl_surface#1127.enter(wl_output#1593) +[2618069.199] {Default Queue} discarded wl_surface#1063.enter(wl_output#1593) +[2618069.204] {Default Queue} discarded wl_surface#455.enter(wl_output#1593) +[2618069.209] {Default Queue} discarded wl_surface#1415.enter(wl_output#1593) +[2618069.214] {Default Queue} discarded wl_surface#903.enter(wl_output#1593) +[2618069.218] {Default Queue} discarded wl_surface#775.enter(wl_output#1593) +[2618069.223] {Default Queue} discarded wl_surface#1543.enter(wl_output#1593) +[2618069.228] {Default Queue} discarded wl_surface#135.enter(wl_output#1593) +[2618069.233] {Default Queue} discarded wl_surface#1287.enter(wl_output#1593) +[2618069.238] {Default Queue} discarded wl_surface#1031.enter(wl_output#1593) +[2618069.243] {Default Queue} discarded wl_surface#615.enter(wl_output#1593) +[2618069.248] {Default Queue} discarded wl_surface#231.enter(wl_output#1593) +[2618069.253] {Default Queue} discarded wl_surface#359.enter(wl_output#1593) +[2618069.258] {Default Queue} discarded wl_surface#583.enter(wl_output#1593) +[2618069.262] {Default Queue} discarded wl_surface#743.enter(wl_output#1593) +[2618069.267] {Default Queue} discarded wl_surface#967.enter(wl_output#1593) +[2618069.273] {Default Queue} discarded wl_surface#103.enter(wl_output#1593) +[2618069.278] {Default Queue} discarded wl_surface#327.enter(wl_output#1593) +[2618069.282] {Default Queue} discarded wl_surface#43.enter(wl_output#1593) +[2618069.287] {Default Queue} discarded wl_surface#807.enter(wl_output#1593) +[2618069.292] {Default Queue} discarded wl_surface#19.enter(wl_output#1593) +[2618069.297] {Default Queue} discarded wl_surface#1511.enter(wl_output#1593) +[2618069.302] {Default Queue} discarded wl_surface#199.enter(wl_output#1593) +[2618069.308] {Default Queue} discarded wl_surface#391.enter(wl_output#1593) +[2618069.313] {Default Queue} discarded wl_surface#935.enter(wl_output#1593) +[2618069.318] {Default Queue} discarded wl_surface#1351.enter(wl_output#1593) +[2618069.323] {Default Queue} discarded wl_surface#711.enter(wl_output#1593) +[2618069.328] {Default Queue} discarded wl_surface#1223.enter(wl_output#1593) +[2618069.333] {Default Queue} discarded wl_surface#871.enter(wl_output#1593) +[2618069.339] {Default Queue} discarded wl_surface#263.enter(wl_output#1593) +[2618069.344] {Default Queue} discarded wl_surface#551.enter(wl_output#1593) +[2618069.349] {Default Queue} discarded wl_surface#1479.enter(wl_output#1593) +[2618069.353] {Default Queue} discarded wl_surface#647.enter(wl_output#1593) +[2618069.359] {Default Queue} discarded wl_surface#71.enter(wl_output#1593) +[2618069.364] {Default Queue} discarded wl_surface#839.enter(wl_output#1593) +[2618069.369] {Default Queue} discarded wl_surface#1095.enter(wl_output#1593) +[2618069.374] {Default Queue} discarded wl_surface#1383.enter(wl_output#1593) +[2618069.379] {Default Queue} discarded wl_surface#487.enter(wl_output#1593) +[2618069.384] {Default Queue} discarded wl_surface#519.enter(wl_output#1593) +[2618069.389] {Default Queue} discarded wl_surface#295.enter(wl_output#1593) +[2618069.394] {Default Queue} discarded wl_surface#167.enter(wl_output#1593) +[2618069.399] {Default Queue} discarded wl_surface#1255.enter(wl_output#1593) +[2618069.408] {Default Queue} discarded wl_surface#679.enter(wl_output#1593) +[2618069.415] {Default Queue} wl_registry#1606.global(1, "wl_compositor", 6) +[2618069.421] {Default Queue} -> wl_registry#1606.bind(1, "wl_compositor", 1, new id [unknown]#1612) +[2618069.427] {Default Queue} wl_registry#1606.global(2, "wl_subcompositor", 1) +[2618069.433] {Default Queue} -> wl_registry#1606.bind(2, "wl_subcompositor", 1, new id [unknown]#1613) +[2618069.438] {Default Queue} wl_registry#1606.global(3, "xdg_wm_base", 6) +[2618069.444] {Default Queue} -> wl_registry#1606.bind(3, "xdg_wm_base", 1, new id [unknown]#1614) +[2618069.450] {Default Queue} wl_registry#1606.global(6, "zwlr_layer_shell_v1", 5) +[2618069.455] {Default Queue} wl_registry#1606.global(7, "ext_session_lock_manager_v1", 1) +[2618069.461] {Default Queue} wl_registry#1606.global(8, "wl_shm", 2) +[2618069.469] {Default Queue} -> wl_registry#1606.bind(8, "wl_shm", 1, new id [unknown]#1615) +[2618069.475] {Default Queue} -> wl_registry#1606.bind(8, "wl_shm", 1, new id [unknown]#1616) +[2618069.480] {Default Queue} -> wl_registry#1606.bind(8, "wl_shm", 1, new id [unknown]#1617) +[2618069.486] {Default Queue} wl_registry#1606.global(9, "zxdg_output_manager_v1", 3) +[2618069.491] {Default Queue} wl_registry#1606.global(10, "wp_fractional_scale_manager_v1", 1) +[2618069.496] {Default Queue} wl_registry#1606.global(11, "zwp_tablet_manager_v2", 1) +[2618069.502] {Default Queue} wl_registry#1606.global(12, "zwp_pointer_gestures_v1", 3) +[2618069.507] {Default Queue} wl_registry#1606.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618069.513] {Default Queue} -> wl_registry#1606.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1618) +[2618069.518] {Default Queue} wl_registry#1606.global(14, "zwp_pointer_constraints_v1", 1) +[2618069.524] {Default Queue} -> wl_registry#1606.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1619) +[2618069.530] {Default Queue} wl_registry#1606.global(15, "ext_idle_notifier_v1", 2) +[2618069.535] {Default Queue} wl_registry#1606.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618069.540] {Default Queue} wl_registry#1606.global(17, "wl_data_device_manager", 3) +[2618069.547] {Default Queue} -> wl_registry#1606.bind(17, "wl_data_device_manager", 2, new id [unknown]#1620) +[2618069.552] {Default Queue} -> wl_data_device_manager#1620.create_data_source(new id wl_data_source#1621) +[2618069.558] {Default Queue} -> wl_data_source#1621.offer("text/plain") +[2618069.563] {Default Queue} -> wl_data_source#1621.offer("text/plain;charset=utf-8") +[2618069.568] {Default Queue} -> wl_data_source#1621.offer("TEXT") +[2618069.573] {Default Queue} -> wl_data_source#1621.offer("STRING") +[2618069.578] {Default Queue} -> wl_data_source#1621.offer("UTF8_STRING") +[2618069.583] {Default Queue} wl_registry#1606.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618069.589] {Default Queue} -> wl_registry#1606.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1622) +[2618069.599] {Default Queue} -> zwp_primary_selection_device_manager_v1#1622.create_source(new id zwp_primary_selection_source_v1#1623) +[2618069.608] {Default Queue} -> zwp_primary_selection_source_v1#1623.offer("text/plain") +[2618069.613] {Default Queue} -> zwp_primary_selection_source_v1#1623.offer("text/plain;charset=utf-8") +[2618069.618] {Default Queue} -> zwp_primary_selection_source_v1#1623.offer("TEXT") +[2618069.623] {Default Queue} -> zwp_primary_selection_source_v1#1623.offer("STRING") +[2618069.628] {Default Queue} -> zwp_primary_selection_source_v1#1623.offer("UTF8_STRING") +[2618069.633] {Default Queue} wl_registry#1606.global(19, "zwlr_data_control_manager_v1", 2) +[2618069.638] {Default Queue} wl_registry#1606.global(20, "ext_data_control_manager_v1", 1) +[2618069.644] {Default Queue} wl_registry#1606.global(21, "wp_presentation", 2) +[2618069.650] {Default Queue} wl_registry#1606.global(22, "wp_security_context_manager_v1", 1) +[2618069.656] {Default Queue} wl_registry#1606.global(23, "zwp_text_input_manager_v3", 1) +[2618069.665] {Default Queue} wl_registry#1606.global(24, "zwp_input_method_manager_v2", 1) +[2618069.672] {Default Queue} wl_registry#1606.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618069.678] {Default Queue} wl_registry#1606.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618069.683] {Default Queue} wl_registry#1606.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618069.688] {Default Queue} wl_registry#1606.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618069.693] {Default Queue} wl_registry#1606.global(29, "ext_workspace_manager_v1", 1) +[2618069.699] {Default Queue} wl_registry#1606.global(30, "zwlr_output_manager_v1", 4) +[2618069.704] {Default Queue} wl_registry#1606.global(31, "zwlr_screencopy_manager_v1", 3) +[2618069.709] {Default Queue} wl_registry#1606.global(32, "wp_viewporter", 1) +[2618069.714] {Default Queue} wl_registry#1606.global(33, "zxdg_exporter_v2", 1) +[2618069.719] {Default Queue} wl_registry#1606.global(34, "zxdg_importer_v2", 1) +[2618069.725] {Default Queue} wl_registry#1606.global(36, "xdg_activation_v1", 1) +[2618069.730] {Default Queue} wl_registry#1606.global(37, "mutter_x11_interop", 1) +[2618069.736] {Default Queue} wl_registry#1606.global(38, "wl_seat", 9) +[2618069.741] {Default Queue} -> wl_registry#1606.bind(38, "wl_seat", 1, new id [unknown]#1624) +[2618069.747] {Default Queue} wl_registry#1606.global(39, "wp_cursor_shape_manager_v1", 2) +[2618069.752] {Default Queue} wl_registry#1606.global(40, "wl_output", 4) +[2618069.758] {Default Queue} -> wl_registry#1606.bind(40, "wl_output", 1, new id [unknown]#1625) +[2618069.763] {Default Queue} wl_callback#1607.done(0) +[2618069.769] {Default Queue} discarded wl_surface#1575.enter(wl_output#18) +[2618069.774] {Default Queue} discarded wl_surface#1575.enter(wl_output#57) +[2618069.779] {Default Queue} discarded wl_surface#1575.enter(wl_output#89) +[2618069.783] {Default Queue} discarded wl_surface#1575.enter(wl_output#121) +[2618069.788] {Default Queue} discarded wl_surface#1575.enter(wl_output#153) +[2618069.793] {Default Queue} discarded wl_surface#1575.enter(wl_output#185) +[2618069.798] {Default Queue} discarded wl_surface#1575.enter(wl_output#217) +[2618069.803] {Default Queue} discarded wl_surface#1575.enter(wl_output#249) +[2618069.808] {Default Queue} discarded wl_surface#1575.enter(wl_output#281) +[2618069.813] {Default Queue} discarded wl_surface#1575.enter(wl_output#313) +[2618069.818] {Default Queue} discarded wl_surface#1575.enter(wl_output#345) +[2618069.823] {Default Queue} discarded wl_surface#1575.enter(wl_output#377) +[2618069.828] {Default Queue} discarded wl_surface#1575.enter(wl_output#409) +[2618069.832] {Default Queue} discarded wl_surface#1575.enter(wl_output#441) +[2618069.836] {Default Queue} discarded wl_surface#1575.enter(wl_output#473) +[2618069.840] {Default Queue} discarded wl_surface#1575.enter(wl_output#505) +[2618069.844] {Default Queue} discarded wl_surface#1575.enter(wl_output#537) +[2618069.848] {Default Queue} discarded wl_surface#1575.enter(wl_output#569) +[2618069.852] {Default Queue} discarded wl_surface#1575.enter(wl_output#601) +[2618069.855] {Default Queue} discarded wl_surface#1575.enter(wl_output#633) +[2618069.859] {Default Queue} discarded wl_surface#1575.enter(wl_output#665) +[2618069.869] {Default Queue} discarded wl_surface#1575.enter(wl_output#697) +[2618069.873] {Default Queue} discarded wl_surface#1575.enter(wl_output#729) +[2618069.877] {Default Queue} discarded wl_surface#1575.enter(wl_output#761) +[2618069.881] {Default Queue} discarded wl_surface#1575.enter(wl_output#793) +[2618069.885] {Default Queue} discarded wl_surface#1575.enter(wl_output#825) +[2618069.888] {Default Queue} discarded wl_surface#1575.enter(wl_output#857) +[2618069.892] {Default Queue} discarded wl_surface#1575.enter(wl_output#889) +[2618069.896] {Default Queue} discarded wl_surface#1575.enter(wl_output#921) +[2618069.900] {Default Queue} discarded wl_surface#1575.enter(wl_output#953) +[2618069.904] {Default Queue} discarded wl_surface#1575.enter(wl_output#985) +[2618069.908] {Default Queue} discarded wl_surface#1575.enter(wl_output#1017) +[2618069.915] {Default Queue} discarded wl_surface#1575.enter(wl_output#1049) +[2618069.921] {Default Queue} discarded wl_surface#1575.enter(wl_output#1081) +[2618069.925] {Default Queue} discarded wl_surface#1575.enter(wl_output#1113) +[2618069.928] {Default Queue} discarded wl_surface#1575.enter(wl_output#1145) +[2618069.932] {Default Queue} discarded wl_surface#1575.enter(wl_output#1177) +[2618069.936] {Default Queue} discarded wl_surface#1575.enter(wl_output#1209) +[2618069.940] {Default Queue} discarded wl_surface#1575.enter(wl_output#1241) +[2618069.944] {Default Queue} discarded wl_surface#1575.enter(wl_output#1273) +[2618069.948] {Default Queue} discarded wl_surface#1575.enter(wl_output#1305) +[2618069.952] {Default Queue} discarded wl_surface#1575.enter(wl_output#1337) +[2618069.955] {Default Queue} discarded wl_surface#1575.enter(wl_output#1369) +[2618069.959] {Default Queue} discarded wl_surface#1575.enter(wl_output#1401) +[2618069.964] {Default Queue} discarded wl_surface#1575.enter(wl_output#1433) +[2618069.967] {Default Queue} discarded wl_surface#1575.enter(wl_output#1465) +[2618069.971] {Default Queue} discarded wl_surface#1575.enter(wl_output#1497) +[2618069.976] {Default Queue} discarded wl_surface#1575.enter(wl_output#1529) +[2618069.980] {Default Queue} discarded wl_surface#1575.enter(wl_output#1561) +[2618069.984] {Default Queue} discarded wl_surface#1575.enter(wl_output#1593) +[2618069.988] {Default Queue} -> wl_compositor#876.create_surface(new id wl_surface#1607) +[2618069.992] {Default Queue} -> wl_subcompositor#1613.get_subsurface(new id wl_subsurface#1626, wl_surface#1607, wl_surface#871) +[2618070.000] {Default Queue} -> wl_subsurface#1626.set_desync() +[2618070.005] {Default Queue} -> wl_subsurface#1626.set_position(0, 0) +[2618070.009] {Default Queue} -> wl_subsurface#1626.place_above(wl_surface#871) +[2618070.053] {Default Queue} -> wl_shm#1615.create_pool(new id wl_shm_pool#1627, fd 259, 16) +[2618070.060] {Default Queue} -> wl_shm#1615.create_pool(new id wl_shm_pool#1628, fd 260, 16) +[2618070.064] {Default Queue} -> wl_shm_pool#1627.create_buffer(new id wl_buffer#1629, 0, 2, 2, 8, 0) +[2618070.069] {Default Queue} -> wl_shm_pool#1628.create_buffer(new id wl_buffer#1630, 0, 2, 2, 8, 0) +[2618070.076] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) +[2618070.081] {Default Queue} -> wl_surface#1607.commit() +[2618070.087] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) +[2618070.091] {Default Queue} -> wl_surface#1607.commit() +[2618070.095] {Default Queue} -> wl_compositor#1612.create_region(new id wl_region#1631) +[2618070.099] {Default Queue} -> wl_compositor#1612.create_region(new id wl_region#1632) +[2618070.104] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) +[2618070.108] {Default Queue} -> wl_region#1631.add(0, 0, 0, 0) +[2618070.113] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618070.117] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618070.122] {Default Queue} -> wl_surface#1607.damage(0, 0, 2, 2) +[2618070.126] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) +[2618070.133] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) +[2618070.137] {Default Queue} -> wl_surface#1607.commit() +[2618070.170] {Default Queue} -> wl_shm#1617.create_pool(new id wl_shm_pool#1633, fd 263, 640) +[2618070.176] {Default Queue} -> wl_shm#1617.create_pool(new id wl_shm_pool#1634, fd 264, 640) +[2618070.181] {Default Queue} -> wl_shm_pool#1633.create_buffer(new id wl_buffer#1635, 0, 10, 16, 40, 0) +[2618070.186] {Default Queue} -> wl_shm_pool#1634.create_buffer(new id wl_buffer#1636, 0, 10, 16, 40, 0) +[2618070.193] {Default Queue} -> wl_compositor#1612.create_surface(new id wl_surface#1637) +[2618070.197] {Default Queue} -> wl_surface#1637.attach(wl_buffer#1635, 0, 0) +[2618070.201] {Default Queue} -> wl_surface#1637.commit() +[2618070.206] {Default Queue} -> wl_surface#1637.attach(wl_buffer#1635, 0, 0) +[2618070.211] {Default Queue} -> wl_surface#1637.commit() +[2618070.218] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) +[2618070.225] {Default Queue} -> wl_surface#1607.damage(0, 0, 2, 2) +[2618070.230] {Default Queue} -> wl_surface#1607.damage(0, 0, 2, 2) +[2618070.236] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1638) +[2618070.241] {Default Queue} -> wl_display#1.sync(new id wl_callback#1639) +[2618073.931] {Display Queue} wl_display#1.delete_id(1639) +[2618073.939] {Default Queue} wl_keyboard#1608.keymap(1, fd 259, 68213) +[2618073.943] {Default Queue} wl_keyboard#1608.enter(566, wl_surface#19, array[0]) +[2618073.949] {Default Queue} wl_keyboard#1608.modifiers(566, 0, 0, 16, 0) +[2618073.953] {Default Queue} discarded wl_shm#1615.format(875709016) +[2618073.957] {Default Queue} discarded wl_shm#1615.format(1) +[2618073.961] {Default Queue} discarded wl_shm#1615.format(0) +[2618073.965] {Default Queue} discarded wl_shm#1615.format(875708993) +[2618073.969] {Default Queue} discarded wl_shm#1616.format(875709016) +[2618073.973] {Default Queue} discarded wl_shm#1616.format(1) +[2618073.978] {Default Queue} discarded wl_shm#1616.format(0) +[2618073.982] {Default Queue} discarded wl_shm#1616.format(875708993) +[2618073.986] {Default Queue} discarded wl_shm#1617.format(875709016) +[2618073.990] {Default Queue} discarded wl_shm#1617.format(1) +[2618073.994] {Default Queue} discarded wl_shm#1617.format(0) +[2618073.998] {Default Queue} discarded wl_shm#1617.format(875708993) +[2618074.002] {Default Queue} wl_seat#1624.capabilities(7) +[2618074.006] {Default Queue} -> wl_seat#1624.get_keyboard(new id wl_keyboard#1640) +[2618074.011] {Default Queue} -> wl_seat#1624.get_pointer(new id wl_pointer#1641) +[2618074.015] {Default Queue} -> wl_data_device_manager#1620.get_data_device(new id wl_data_device#1642, wl_seat#1624) +[2618074.020] {Default Queue} -> zwp_primary_selection_device_manager_v1#1622.get_device(new id zwp_primary_selection_device_v1#1643, wl_seat#1624) +[2618074.027] {Default Queue} wl_output#1625.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618074.032] {Default Queue} wl_output#1625.mode(3, 1280, 800, 60000) +[2618074.037] {Default Queue} discarded wl_surface#3.enter(wl_output#1625) +[2618074.041] {Default Queue} discarded wl_surface#999.enter(wl_output#1625) +[2618074.045] {Default Queue} discarded wl_surface#1191.enter(wl_output#1625) +[2618074.049] {Default Queue} discarded wl_surface#1159.enter(wl_output#1625) +[2618074.053] {Default Queue} discarded wl_surface#423.enter(wl_output#1625) +[2618074.057] {Default Queue} discarded wl_surface#1447.enter(wl_output#1625) +[2618074.061] {Default Queue} discarded wl_surface#1319.enter(wl_output#1625) +[2618074.065] {Default Queue} discarded wl_surface#1127.enter(wl_output#1625) +[2618074.069] {Default Queue} discarded wl_surface#1063.enter(wl_output#1625) +[2618074.073] {Default Queue} discarded wl_surface#455.enter(wl_output#1625) +[2618074.077] {Default Queue} discarded wl_surface#1575.enter(wl_output#1625) +[2618074.081] {Default Queue} discarded wl_surface#1415.enter(wl_output#1625) +[2618074.085] {Default Queue} discarded wl_surface#903.enter(wl_output#1625) +[2618074.088] {Default Queue} discarded wl_surface#775.enter(wl_output#1625) +[2618074.092] {Default Queue} discarded wl_surface#1543.enter(wl_output#1625) +[2618074.096] {Default Queue} discarded wl_surface#135.enter(wl_output#1625) +[2618074.100] {Default Queue} discarded wl_surface#1287.enter(wl_output#1625) +[2618074.104] {Default Queue} discarded wl_surface#1031.enter(wl_output#1625) +[2618074.108] {Default Queue} discarded wl_surface#615.enter(wl_output#1625) +[2618074.112] {Default Queue} discarded wl_surface#231.enter(wl_output#1625) +[2618074.116] {Default Queue} discarded wl_surface#359.enter(wl_output#1625) +[2618074.120] {Default Queue} discarded wl_surface#583.enter(wl_output#1625) +[2618074.123] {Default Queue} discarded wl_surface#743.enter(wl_output#1625) +[2618074.127] {Default Queue} discarded wl_surface#967.enter(wl_output#1625) +[2618074.131] {Default Queue} discarded wl_surface#103.enter(wl_output#1625) +[2618074.135] {Default Queue} discarded wl_surface#327.enter(wl_output#1625) +[2618074.142] {Default Queue} discarded wl_surface#43.enter(wl_output#1625) +[2618074.148] {Default Queue} discarded wl_surface#807.enter(wl_output#1625) +[2618074.153] {Default Queue} discarded wl_surface#19.enter(wl_output#1625) +[2618074.157] {Default Queue} discarded wl_surface#1511.enter(wl_output#1625) +[2618074.161] {Default Queue} discarded wl_surface#199.enter(wl_output#1625) +[2618074.165] {Default Queue} discarded wl_surface#391.enter(wl_output#1625) +[2618074.169] {Default Queue} discarded wl_surface#935.enter(wl_output#1625) +[2618074.173] {Default Queue} discarded wl_surface#1351.enter(wl_output#1625) +[2618074.177] {Default Queue} discarded wl_surface#711.enter(wl_output#1625) +[2618074.181] {Default Queue} discarded wl_surface#1223.enter(wl_output#1625) +[2618074.185] {Default Queue} discarded wl_surface#871.enter(wl_output#1625) +[2618074.189] {Default Queue} discarded wl_surface#263.enter(wl_output#1625) +[2618074.192] {Default Queue} discarded wl_surface#551.enter(wl_output#1625) +[2618074.196] {Default Queue} discarded wl_surface#1479.enter(wl_output#1625) +[2618074.200] {Default Queue} discarded wl_surface#647.enter(wl_output#1625) +[2618074.204] {Default Queue} discarded wl_surface#71.enter(wl_output#1625) +[2618074.208] {Default Queue} discarded wl_surface#839.enter(wl_output#1625) +[2618074.212] {Default Queue} discarded wl_surface#1095.enter(wl_output#1625) +[2618074.216] {Default Queue} discarded wl_surface#1383.enter(wl_output#1625) +[2618074.219] {Default Queue} discarded wl_surface#487.enter(wl_output#1625) +[2618074.224] {Default Queue} discarded wl_surface#519.enter(wl_output#1625) +[2618074.227] {Default Queue} discarded wl_surface#295.enter(wl_output#1625) +[2618074.231] {Default Queue} discarded wl_surface#167.enter(wl_output#1625) +[2618074.235] {Default Queue} discarded wl_surface#1255.enter(wl_output#1625) +[2618074.239] {Default Queue} discarded wl_surface#679.enter(wl_output#1625) +[2618074.243] {Default Queue} wl_registry#1638.global(1, "wl_compositor", 6) +[2618074.248] {Default Queue} -> wl_registry#1638.bind(1, "wl_compositor", 1, new id [unknown]#1644) +[2618074.253] {Default Queue} wl_registry#1638.global(2, "wl_subcompositor", 1) +[2618074.257] {Default Queue} -> wl_registry#1638.bind(2, "wl_subcompositor", 1, new id [unknown]#1645) +[2618074.262] {Default Queue} wl_registry#1638.global(3, "xdg_wm_base", 6) +[2618074.266] {Default Queue} -> wl_registry#1638.bind(3, "xdg_wm_base", 1, new id [unknown]#1646) +[2618074.271] {Default Queue} wl_registry#1638.global(6, "zwlr_layer_shell_v1", 5) +[2618074.275] {Default Queue} wl_registry#1638.global(7, "ext_session_lock_manager_v1", 1) +[2618074.279] {Default Queue} wl_registry#1638.global(8, "wl_shm", 2) +[2618074.284] {Default Queue} -> wl_registry#1638.bind(8, "wl_shm", 1, new id [unknown]#1647) +[2618074.290] {Default Queue} -> wl_registry#1638.bind(8, "wl_shm", 1, new id [unknown]#1648) +[2618074.302] {Default Queue} -> wl_registry#1638.bind(8, "wl_shm", 1, new id [unknown]#1649) +[2618074.309] {Default Queue} wl_registry#1638.global(9, "zxdg_output_manager_v1", 3) +[2618074.314] {Default Queue} wl_registry#1638.global(10, "wp_fractional_scale_manager_v1", 1) +[2618074.318] {Default Queue} wl_registry#1638.global(11, "zwp_tablet_manager_v2", 1) +[2618074.323] {Default Queue} wl_registry#1638.global(12, "zwp_pointer_gestures_v1", 3) +[2618074.328] {Default Queue} wl_registry#1638.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618074.335] {Default Queue} -> wl_registry#1638.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1650) +[2618074.340] {Default Queue} wl_registry#1638.global(14, "zwp_pointer_constraints_v1", 1) +[2618074.345] {Default Queue} -> wl_registry#1638.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1651) +[2618074.350] {Default Queue} wl_registry#1638.global(15, "ext_idle_notifier_v1", 2) +[2618074.354] {Default Queue} wl_registry#1638.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618074.359] {Default Queue} wl_registry#1638.global(17, "wl_data_device_manager", 3) +[2618074.365] {Default Queue} -> wl_registry#1638.bind(17, "wl_data_device_manager", 2, new id [unknown]#1652) +[2618074.375] {Default Queue} -> wl_data_device_manager#1652.create_data_source(new id wl_data_source#1653) +[2618074.381] {Default Queue} -> wl_data_source#1653.offer("text/plain") +[2618074.385] {Default Queue} -> wl_data_source#1653.offer("text/plain;charset=utf-8") +[2618074.389] {Default Queue} -> wl_data_source#1653.offer("TEXT") +[2618074.393] {Default Queue} -> wl_data_source#1653.offer("STRING") +[2618074.398] {Default Queue} -> wl_data_source#1653.offer("UTF8_STRING") +[2618074.402] {Default Queue} wl_registry#1638.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618074.406] {Default Queue} -> wl_registry#1638.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1654) +[2618074.414] {Default Queue} -> zwp_primary_selection_device_manager_v1#1654.create_source(new id zwp_primary_selection_source_v1#1655) +[2618074.421] {Default Queue} -> zwp_primary_selection_source_v1#1655.offer("text/plain") +[2618074.426] {Default Queue} -> zwp_primary_selection_source_v1#1655.offer("text/plain;charset=utf-8") +[2618074.430] {Default Queue} -> zwp_primary_selection_source_v1#1655.offer("TEXT") +[2618074.434] {Default Queue} -> zwp_primary_selection_source_v1#1655.offer("STRING") +[2618074.440] {Default Queue} -> zwp_primary_selection_source_v1#1655.offer("UTF8_STRING") +[2618074.445] {Default Queue} wl_registry#1638.global(19, "zwlr_data_control_manager_v1", 2) +[2618074.451] {Default Queue} wl_registry#1638.global(20, "ext_data_control_manager_v1", 1) +[2618074.456] {Default Queue} wl_registry#1638.global(21, "wp_presentation", 2) +[2618074.461] {Default Queue} wl_registry#1638.global(22, "wp_security_context_manager_v1", 1) +[2618074.465] {Default Queue} wl_registry#1638.global(23, "zwp_text_input_manager_v3", 1) +[2618074.470] {Default Queue} wl_registry#1638.global(24, "zwp_input_method_manager_v2", 1) +[2618074.475] {Default Queue} wl_registry#1638.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618074.479] {Default Queue} wl_registry#1638.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618074.483] {Default Queue} wl_registry#1638.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618074.488] {Default Queue} wl_registry#1638.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618074.492] {Default Queue} wl_registry#1638.global(29, "ext_workspace_manager_v1", 1) +[2618074.496] {Default Queue} wl_registry#1638.global(30, "zwlr_output_manager_v1", 4) +[2618074.501] {Default Queue} wl_registry#1638.global(31, "zwlr_screencopy_manager_v1", 3) +[2618074.505] {Default Queue} wl_registry#1638.global(32, "wp_viewporter", 1) +[2618074.509] {Default Queue} wl_registry#1638.global(33, "zxdg_exporter_v2", 1) +[2618074.513] {Default Queue} wl_registry#1638.global(34, "zxdg_importer_v2", 1) +[2618074.518] {Default Queue} wl_registry#1638.global(36, "xdg_activation_v1", 1) +[2618074.522] {Default Queue} wl_registry#1638.global(37, "mutter_x11_interop", 1) +[2618074.526] {Default Queue} wl_registry#1638.global(38, "wl_seat", 9) +[2618074.531] {Default Queue} -> wl_registry#1638.bind(38, "wl_seat", 1, new id [unknown]#1656) +[2618074.535] {Default Queue} wl_registry#1638.global(39, "wp_cursor_shape_manager_v1", 2) +[2618074.539] {Default Queue} wl_registry#1638.global(40, "wl_output", 4) +[2618074.544] {Default Queue} -> wl_registry#1638.bind(40, "wl_output", 1, new id [unknown]#1657) +[2618074.548] {Default Queue} wl_callback#1639.done(0) +[2618074.552] {Default Queue} discarded wl_surface#1607.enter(wl_output#18) +[2618074.557] {Default Queue} discarded wl_surface#1607.enter(wl_output#57) +[2618074.561] {Default Queue} discarded wl_surface#1607.enter(wl_output#89) +[2618074.565] {Default Queue} discarded wl_surface#1607.enter(wl_output#121) +[2618074.569] {Default Queue} discarded wl_surface#1607.enter(wl_output#153) +[2618074.573] {Default Queue} discarded wl_surface#1607.enter(wl_output#185) +[2618074.577] {Default Queue} discarded wl_surface#1607.enter(wl_output#217) +[2618074.581] {Default Queue} discarded wl_surface#1607.enter(wl_output#249) +[2618074.588] {Default Queue} discarded wl_surface#1607.enter(wl_output#281) +[2618074.593] {Default Queue} discarded wl_surface#1607.enter(wl_output#313) +[2618074.597] {Default Queue} discarded wl_surface#1607.enter(wl_output#345) +[2618074.601] {Default Queue} discarded wl_surface#1607.enter(wl_output#377) +[2618074.605] {Default Queue} discarded wl_surface#1607.enter(wl_output#409) +[2618074.609] {Default Queue} discarded wl_surface#1607.enter(wl_output#441) +[2618074.612] {Default Queue} discarded wl_surface#1607.enter(wl_output#473) +[2618074.616] {Default Queue} discarded wl_surface#1607.enter(wl_output#505) +[2618074.620] {Default Queue} discarded wl_surface#1607.enter(wl_output#537) +[2618074.624] {Default Queue} discarded wl_surface#1607.enter(wl_output#569) +[2618074.628] {Default Queue} discarded wl_surface#1607.enter(wl_output#601) +[2618074.632] {Default Queue} discarded wl_surface#1607.enter(wl_output#633) +[2618074.636] {Default Queue} discarded wl_surface#1607.enter(wl_output#665) +[2618074.641] {Default Queue} discarded wl_surface#1607.enter(wl_output#697) +[2618074.646] {Default Queue} discarded wl_surface#1607.enter(wl_output#729) +[2618074.652] {Default Queue} discarded wl_surface#1607.enter(wl_output#761) +[2618074.655] {Default Queue} discarded wl_surface#1607.enter(wl_output#793) +[2618074.659] {Default Queue} discarded wl_surface#1607.enter(wl_output#825) +[2618074.663] {Default Queue} discarded wl_surface#1607.enter(wl_output#857) +[2618074.667] {Default Queue} discarded wl_surface#1607.enter(wl_output#889) +[2618074.672] {Default Queue} discarded wl_surface#1607.enter(wl_output#921) +[2618074.677] {Default Queue} discarded wl_surface#1607.enter(wl_output#953) +[2618074.682] {Default Queue} discarded wl_surface#1607.enter(wl_output#985) +[2618074.686] {Default Queue} discarded wl_surface#1607.enter(wl_output#1017) +[2618074.690] {Default Queue} discarded wl_surface#1607.enter(wl_output#1049) +[2618074.694] {Default Queue} discarded wl_surface#1607.enter(wl_output#1081) +[2618074.698] {Default Queue} discarded wl_surface#1607.enter(wl_output#1113) +[2618074.702] {Default Queue} discarded wl_surface#1607.enter(wl_output#1145) +[2618074.706] {Default Queue} discarded wl_surface#1607.enter(wl_output#1177) +[2618074.712] {Default Queue} discarded wl_surface#1607.enter(wl_output#1209) +[2618074.717] {Default Queue} discarded wl_surface#1607.enter(wl_output#1241) +[2618074.721] {Default Queue} discarded wl_surface#1607.enter(wl_output#1273) +[2618074.725] {Default Queue} discarded wl_surface#1607.enter(wl_output#1305) +[2618074.729] {Default Queue} discarded wl_surface#1607.enter(wl_output#1337) +[2618074.734] {Default Queue} discarded wl_surface#1607.enter(wl_output#1369) +[2618074.739] {Default Queue} discarded wl_surface#1607.enter(wl_output#1401) +[2618074.744] {Default Queue} discarded wl_surface#1607.enter(wl_output#1433) +[2618074.749] {Default Queue} discarded wl_surface#1607.enter(wl_output#1465) +[2618074.753] {Default Queue} discarded wl_surface#1607.enter(wl_output#1497) +[2618074.757] {Default Queue} discarded wl_surface#1607.enter(wl_output#1529) +[2618074.761] {Default Queue} discarded wl_surface#1607.enter(wl_output#1561) +[2618074.765] {Default Queue} discarded wl_surface#1607.enter(wl_output#1593) +[2618074.768] {Default Queue} discarded wl_surface#1607.enter(wl_output#1625) +[2618074.773] {Default Queue} -> wl_compositor#1612.create_surface(new id wl_surface#1639) +[2618074.777] {Default Queue} -> wl_subcompositor#1645.get_subsurface(new id wl_subsurface#1658, wl_surface#1639, wl_surface#1607) +[2618074.785] {Default Queue} -> wl_subsurface#1658.set_desync() +[2618074.789] {Default Queue} -> wl_subsurface#1658.set_position(0, 0) +[2618074.793] {Default Queue} -> wl_subsurface#1658.place_above(wl_surface#1607) +[2618074.835] {Default Queue} -> wl_shm#1647.create_pool(new id wl_shm_pool#1659, fd 264, 16) +[2618074.842] {Default Queue} -> wl_shm#1647.create_pool(new id wl_shm_pool#1660, fd 265, 16) +[2618074.847] {Default Queue} -> wl_shm_pool#1659.create_buffer(new id wl_buffer#1661, 0, 2, 2, 8, 0) +[2618074.852] {Default Queue} -> wl_shm_pool#1660.create_buffer(new id wl_buffer#1662, 0, 2, 2, 8, 0) +[2618074.870] {Default Queue} -> wl_surface#1639.attach(wl_buffer#1661, 0, 0) +[2618074.876] {Default Queue} -> wl_surface#1639.commit() +[2618074.882] {Default Queue} -> wl_surface#1639.attach(wl_buffer#1661, 0, 0) +[2618074.887] {Default Queue} -> wl_surface#1639.commit() +[2618074.891] {Default Queue} -> wl_compositor#1644.create_region(new id wl_region#1663) +[2618074.896] {Default Queue} -> wl_compositor#1644.create_region(new id wl_region#1664) +[2618074.902] {Default Queue} -> wl_region#1663.subtract(0, 0, 2, 2) +[2618074.908] {Default Queue} -> wl_region#1663.add(0, 0, 0, 0) +[2618074.913] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) +[2618074.918] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) +[2618074.922] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) +[2618074.926] {Default Queue} -> wl_surface#1607.damage(0, 0, 2, 2) +[2618074.934] {Default Queue} -> wl_surface#1639.attach(wl_buffer#1661, 0, 0) +[2618074.938] {Default Queue} -> wl_surface#1639.commit() +[2618074.972] {Default Queue} -> wl_shm#1649.create_pool(new id wl_shm_pool#1665, fd 268, 640) +[2618074.979] {Default Queue} -> wl_shm#1649.create_pool(new id wl_shm_pool#1666, fd 269, 640) +[2618074.983] {Default Queue} -> wl_shm_pool#1665.create_buffer(new id wl_buffer#1667, 0, 10, 16, 40, 0) +[2618074.988] {Default Queue} -> wl_shm_pool#1666.create_buffer(new id wl_buffer#1668, 0, 10, 16, 40, 0) +[2618074.995] {Default Queue} -> wl_compositor#1644.create_surface(new id wl_surface#1669) +[2618075.000] {Default Queue} -> wl_surface#1669.attach(wl_buffer#1667, 0, 0) +[2618075.004] {Default Queue} -> wl_surface#1669.commit() +[2618075.009] {Default Queue} -> wl_surface#1669.attach(wl_buffer#1667, 0, 0) +[2618075.014] {Default Queue} -> wl_surface#1669.commit() +[2618075.021] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) +[2618075.028] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1670) +[2618075.033] {Default Queue} -> wl_display#1.sync(new id wl_callback#1671) +[2618079.033] {Display Queue} wl_display#1.delete_id(1671) +[2618079.046] {Default Queue} wl_keyboard#1640.keymap(1, fd 264, 68213) +[2618079.052] {Default Queue} wl_keyboard#1640.enter(566, wl_surface#19, array[0]) +[2618079.057] {Default Queue} wl_keyboard#1640.modifiers(566, 0, 0, 16, 0) +[2618079.062] {Default Queue} discarded wl_shm#1647.format(875709016) +[2618079.066] {Default Queue} discarded wl_shm#1647.format(1) +[2618079.070] {Default Queue} discarded wl_shm#1647.format(0) +[2618079.074] {Default Queue} discarded wl_shm#1647.format(875708993) +[2618079.078] {Default Queue} discarded wl_shm#1648.format(875709016) +[2618079.082] {Default Queue} discarded wl_shm#1648.format(1) +[2618079.086] {Default Queue} discarded wl_shm#1648.format(0) +[2618079.090] {Default Queue} discarded wl_shm#1648.format(875708993) +[2618079.094] {Default Queue} discarded wl_shm#1649.format(875709016) +[2618079.098] {Default Queue} discarded wl_shm#1649.format(1) +[2618079.102] {Default Queue} discarded wl_shm#1649.format(0) +[2618079.106] {Default Queue} discarded wl_shm#1649.format(875708993) +[2618079.110] {Default Queue} wl_seat#1656.capabilities(7) +[2618079.114] {Default Queue} -> wl_seat#1656.get_keyboard(new id wl_keyboard#1672) +[2618079.119] {Default Queue} -> wl_seat#1656.get_pointer(new id wl_pointer#1673) +[2618079.123] {Default Queue} -> wl_data_device_manager#1652.get_data_device(new id wl_data_device#1674, wl_seat#1656) +[2618079.128] {Default Queue} -> zwp_primary_selection_device_manager_v1#1654.get_device(new id zwp_primary_selection_device_v1#1675, wl_seat#1656) +[2618079.135] {Default Queue} wl_output#1657.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618079.141] {Default Queue} wl_output#1657.mode(3, 1280, 800, 60000) +[2618079.146] {Default Queue} discarded wl_surface#3.enter(wl_output#1657) +[2618079.150] {Default Queue} discarded wl_surface#999.enter(wl_output#1657) +[2618079.154] {Default Queue} discarded wl_surface#1191.enter(wl_output#1657) +[2618079.158] {Default Queue} discarded wl_surface#1159.enter(wl_output#1657) +[2618079.166] {Default Queue} discarded wl_surface#423.enter(wl_output#1657) +[2618079.173] {Default Queue} discarded wl_surface#1447.enter(wl_output#1657) +[2618079.177] {Default Queue} discarded wl_surface#1319.enter(wl_output#1657) +[2618079.181] {Default Queue} discarded wl_surface#1127.enter(wl_output#1657) +[2618079.185] {Default Queue} discarded wl_surface#1063.enter(wl_output#1657) +[2618079.189] {Default Queue} discarded wl_surface#455.enter(wl_output#1657) +[2618079.193] {Default Queue} discarded wl_surface#1575.enter(wl_output#1657) +[2618079.197] {Default Queue} discarded wl_surface#1415.enter(wl_output#1657) +[2618079.200] {Default Queue} discarded wl_surface#903.enter(wl_output#1657) +[2618079.204] {Default Queue} discarded wl_surface#775.enter(wl_output#1657) +[2618079.208] {Default Queue} discarded wl_surface#1543.enter(wl_output#1657) +[2618079.212] {Default Queue} discarded wl_surface#135.enter(wl_output#1657) +[2618079.216] {Default Queue} discarded wl_surface#1287.enter(wl_output#1657) +[2618079.222] {Default Queue} discarded wl_surface#1031.enter(wl_output#1657) +[2618079.226] {Default Queue} discarded wl_surface#615.enter(wl_output#1657) +[2618079.231] {Default Queue} discarded wl_surface#231.enter(wl_output#1657) +[2618079.234] {Default Queue} discarded wl_surface#359.enter(wl_output#1657) +[2618079.238] {Default Queue} discarded wl_surface#583.enter(wl_output#1657) +[2618079.242] {Default Queue} discarded wl_surface#743.enter(wl_output#1657) +[2618079.246] {Default Queue} discarded wl_surface#967.enter(wl_output#1657) +[2618079.250] {Default Queue} discarded wl_surface#103.enter(wl_output#1657) +[2618079.255] {Default Queue} discarded wl_surface#327.enter(wl_output#1657) +[2618079.259] {Default Queue} discarded wl_surface#43.enter(wl_output#1657) +[2618079.263] {Default Queue} discarded wl_surface#807.enter(wl_output#1657) +[2618079.266] {Default Queue} discarded wl_surface#19.enter(wl_output#1657) +[2618079.270] {Default Queue} discarded wl_surface#1511.enter(wl_output#1657) +[2618079.274] {Default Queue} discarded wl_surface#199.enter(wl_output#1657) +[2618079.278] {Default Queue} discarded wl_surface#391.enter(wl_output#1657) +[2618079.282] {Default Queue} discarded wl_surface#935.enter(wl_output#1657) +[2618079.286] {Default Queue} discarded wl_surface#1351.enter(wl_output#1657) +[2618079.290] {Default Queue} discarded wl_surface#711.enter(wl_output#1657) +[2618079.294] {Default Queue} discarded wl_surface#1223.enter(wl_output#1657) +[2618079.298] {Default Queue} discarded wl_surface#871.enter(wl_output#1657) +[2618079.302] {Default Queue} discarded wl_surface#263.enter(wl_output#1657) +[2618079.306] {Default Queue} discarded wl_surface#551.enter(wl_output#1657) +[2618079.310] {Default Queue} discarded wl_surface#1479.enter(wl_output#1657) +[2618079.314] {Default Queue} discarded wl_surface#647.enter(wl_output#1657) +[2618079.318] {Default Queue} discarded wl_surface#71.enter(wl_output#1657) +[2618079.322] {Default Queue} discarded wl_surface#839.enter(wl_output#1657) +[2618079.325] {Default Queue} discarded wl_surface#1607.enter(wl_output#1657) +[2618079.329] {Default Queue} discarded wl_surface#1095.enter(wl_output#1657) +[2618079.333] {Default Queue} discarded wl_surface#1383.enter(wl_output#1657) +[2618079.337] {Default Queue} discarded wl_surface#487.enter(wl_output#1657) +[2618079.341] {Default Queue} discarded wl_surface#519.enter(wl_output#1657) +[2618079.345] {Default Queue} discarded wl_surface#295.enter(wl_output#1657) +[2618079.349] {Default Queue} discarded wl_surface#167.enter(wl_output#1657) +[2618079.353] {Default Queue} discarded wl_surface#1255.enter(wl_output#1657) +[2618079.357] {Default Queue} discarded wl_surface#679.enter(wl_output#1657) +[2618079.361] {Default Queue} wl_registry#1670.global(1, "wl_compositor", 6) +[2618079.366] {Default Queue} -> wl_registry#1670.bind(1, "wl_compositor", 1, new id [unknown]#1676) +[2618079.371] {Default Queue} wl_registry#1670.global(2, "wl_subcompositor", 1) +[2618079.376] {Default Queue} -> wl_registry#1670.bind(2, "wl_subcompositor", 1, new id [unknown]#1677) +[2618079.383] {Default Queue} wl_registry#1670.global(3, "xdg_wm_base", 6) +[2618079.390] {Default Queue} -> wl_registry#1670.bind(3, "xdg_wm_base", 1, new id [unknown]#1678) +[2618079.394] {Default Queue} wl_registry#1670.global(6, "zwlr_layer_shell_v1", 5) +[2618079.399] {Default Queue} wl_registry#1670.global(7, "ext_session_lock_manager_v1", 1) +[2618079.404] {Default Queue} wl_registry#1670.global(8, "wl_shm", 2) +[2618079.408] {Default Queue} -> wl_registry#1670.bind(8, "wl_shm", 1, new id [unknown]#1679) +[2618079.415] {Default Queue} -> wl_registry#1670.bind(8, "wl_shm", 1, new id [unknown]#1680) +[2618079.420] {Default Queue} -> wl_registry#1670.bind(8, "wl_shm", 1, new id [unknown]#1681) +[2618079.424] {Default Queue} wl_registry#1670.global(9, "zxdg_output_manager_v1", 3) +[2618079.428] {Default Queue} wl_registry#1670.global(10, "wp_fractional_scale_manager_v1", 1) +[2618079.433] {Default Queue} wl_registry#1670.global(11, "zwp_tablet_manager_v2", 1) +[2618079.438] {Default Queue} wl_registry#1670.global(12, "zwp_pointer_gestures_v1", 3) +[2618079.442] {Default Queue} wl_registry#1670.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618079.447] {Default Queue} -> wl_registry#1670.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1682) +[2618079.451] {Default Queue} wl_registry#1670.global(14, "zwp_pointer_constraints_v1", 1) +[2618079.456] {Default Queue} -> wl_registry#1670.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1683) +[2618079.460] {Default Queue} wl_registry#1670.global(15, "ext_idle_notifier_v1", 2) +[2618079.465] {Default Queue} wl_registry#1670.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618079.469] {Default Queue} wl_registry#1670.global(17, "wl_data_device_manager", 3) +[2618079.474] {Default Queue} -> wl_registry#1670.bind(17, "wl_data_device_manager", 2, new id [unknown]#1684) +[2618079.479] {Default Queue} -> wl_data_device_manager#1684.create_data_source(new id wl_data_source#1685) +[2618079.483] {Default Queue} -> wl_data_source#1685.offer("text/plain") +[2618079.487] {Default Queue} -> wl_data_source#1685.offer("text/plain;charset=utf-8") +[2618079.491] {Default Queue} -> wl_data_source#1685.offer("TEXT") +[2618079.495] {Default Queue} -> wl_data_source#1685.offer("STRING") +[2618079.499] {Default Queue} -> wl_data_source#1685.offer("UTF8_STRING") +[2618079.503] {Default Queue} wl_registry#1670.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618079.508] {Default Queue} -> wl_registry#1670.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1686) +[2618079.516] {Default Queue} -> zwp_primary_selection_device_manager_v1#1686.create_source(new id zwp_primary_selection_source_v1#1687) +[2618079.523] {Default Queue} -> zwp_primary_selection_source_v1#1687.offer("text/plain") +[2618079.528] {Default Queue} -> zwp_primary_selection_source_v1#1687.offer("text/plain;charset=utf-8") +[2618079.532] {Default Queue} -> zwp_primary_selection_source_v1#1687.offer("TEXT") +[2618079.536] {Default Queue} -> zwp_primary_selection_source_v1#1687.offer("STRING") +[2618079.540] {Default Queue} -> zwp_primary_selection_source_v1#1687.offer("UTF8_STRING") +[2618079.544] {Default Queue} wl_registry#1670.global(19, "zwlr_data_control_manager_v1", 2) +[2618079.548] {Default Queue} wl_registry#1670.global(20, "ext_data_control_manager_v1", 1) +[2618079.553] {Default Queue} wl_registry#1670.global(21, "wp_presentation", 2) +[2618079.557] {Default Queue} wl_registry#1670.global(22, "wp_security_context_manager_v1", 1) +[2618079.561] {Default Queue} wl_registry#1670.global(23, "zwp_text_input_manager_v3", 1) +[2618079.566] {Default Queue} wl_registry#1670.global(24, "zwp_input_method_manager_v2", 1) +[2618079.570] {Default Queue} wl_registry#1670.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618079.574] {Default Queue} wl_registry#1670.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618079.579] {Default Queue} wl_registry#1670.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618079.583] {Default Queue} wl_registry#1670.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618079.590] {Default Queue} wl_registry#1670.global(29, "ext_workspace_manager_v1", 1) +[2618079.596] {Default Queue} wl_registry#1670.global(30, "zwlr_output_manager_v1", 4) +[2618079.601] {Default Queue} wl_registry#1670.global(31, "zwlr_screencopy_manager_v1", 3) +[2618079.605] {Default Queue} wl_registry#1670.global(32, "wp_viewporter", 1) +[2618079.609] {Default Queue} wl_registry#1670.global(33, "zxdg_exporter_v2", 1) +[2618079.614] {Default Queue} wl_registry#1670.global(34, "zxdg_importer_v2", 1) +[2618079.618] {Default Queue} wl_registry#1670.global(36, "xdg_activation_v1", 1) +[2618079.623] {Default Queue} wl_registry#1670.global(37, "mutter_x11_interop", 1) +[2618079.627] {Default Queue} wl_registry#1670.global(38, "wl_seat", 9) +[2618079.632] {Default Queue} -> wl_registry#1670.bind(38, "wl_seat", 1, new id [unknown]#1688) +[2618079.636] {Default Queue} wl_registry#1670.global(39, "wp_cursor_shape_manager_v1", 2) +[2618079.641] {Default Queue} wl_registry#1670.global(40, "wl_output", 4) +[2618079.645] {Default Queue} -> wl_registry#1670.bind(40, "wl_output", 1, new id [unknown]#1689) +[2618079.649] {Default Queue} wl_callback#1671.done(0) +[2618079.654] {Default Queue} discarded wl_surface#1639.enter(wl_output#18) +[2618079.658] {Default Queue} discarded wl_surface#1639.enter(wl_output#57) +[2618079.662] {Default Queue} discarded wl_surface#1639.enter(wl_output#89) +[2618079.666] {Default Queue} discarded wl_surface#1639.enter(wl_output#121) +[2618079.670] {Default Queue} discarded wl_surface#1639.enter(wl_output#153) +[2618079.674] {Default Queue} discarded wl_surface#1639.enter(wl_output#185) +[2618079.678] {Default Queue} discarded wl_surface#1639.enter(wl_output#217) +[2618079.682] {Default Queue} discarded wl_surface#1639.enter(wl_output#249) +[2618079.687] {Default Queue} discarded wl_surface#1639.enter(wl_output#281) +[2618079.691] {Default Queue} discarded wl_surface#1639.enter(wl_output#313) +[2618079.695] {Default Queue} discarded wl_surface#1639.enter(wl_output#345) +[2618079.699] {Default Queue} discarded wl_surface#1639.enter(wl_output#377) +[2618079.703] {Default Queue} discarded wl_surface#1639.enter(wl_output#409) +[2618079.707] {Default Queue} discarded wl_surface#1639.enter(wl_output#441) +[2618079.711] {Default Queue} discarded wl_surface#1639.enter(wl_output#473) +[2618079.715] {Default Queue} discarded wl_surface#1639.enter(wl_output#505) +[2618079.719] {Default Queue} discarded wl_surface#1639.enter(wl_output#537) +[2618079.722] {Default Queue} discarded wl_surface#1639.enter(wl_output#569) +[2618079.726] {Default Queue} discarded wl_surface#1639.enter(wl_output#601) +[2618079.730] {Default Queue} discarded wl_surface#1639.enter(wl_output#633) +[2618079.734] {Default Queue} discarded wl_surface#1639.enter(wl_output#665) +[2618079.738] {Default Queue} discarded wl_surface#1639.enter(wl_output#697) +[2618079.742] {Default Queue} discarded wl_surface#1639.enter(wl_output#729) +[2618079.746] {Default Queue} discarded wl_surface#1639.enter(wl_output#761) +[2618079.750] {Default Queue} discarded wl_surface#1639.enter(wl_output#793) +[2618079.754] {Default Queue} discarded wl_surface#1639.enter(wl_output#825) +[2618079.758] {Default Queue} discarded wl_surface#1639.enter(wl_output#857) +[2618079.762] {Default Queue} discarded wl_surface#1639.enter(wl_output#889) +[2618079.765] {Default Queue} discarded wl_surface#1639.enter(wl_output#921) +[2618079.769] {Default Queue} discarded wl_surface#1639.enter(wl_output#953) +[2618079.774] {Default Queue} discarded wl_surface#1639.enter(wl_output#985) +[2618079.778] {Default Queue} discarded wl_surface#1639.enter(wl_output#1017) +[2618079.782] {Default Queue} discarded wl_surface#1639.enter(wl_output#1049) +[2618079.786] {Default Queue} discarded wl_surface#1639.enter(wl_output#1081) +[2618079.790] {Default Queue} discarded wl_surface#1639.enter(wl_output#1113) +[2618079.794] {Default Queue} discarded wl_surface#1639.enter(wl_output#1145) +[2618079.798] {Default Queue} discarded wl_surface#1639.enter(wl_output#1177) +[2618079.802] {Default Queue} discarded wl_surface#1639.enter(wl_output#1209) +[2618079.809] {Default Queue} discarded wl_surface#1639.enter(wl_output#1241) +[2618079.815] {Default Queue} discarded wl_surface#1639.enter(wl_output#1273) +[2618079.819] {Default Queue} discarded wl_surface#1639.enter(wl_output#1305) +[2618079.823] {Default Queue} discarded wl_surface#1639.enter(wl_output#1337) +[2618079.827] {Default Queue} discarded wl_surface#1639.enter(wl_output#1369) +[2618079.831] {Default Queue} discarded wl_surface#1639.enter(wl_output#1401) +[2618079.834] {Default Queue} discarded wl_surface#1639.enter(wl_output#1433) +[2618079.838] {Default Queue} discarded wl_surface#1639.enter(wl_output#1465) +[2618079.842] {Default Queue} discarded wl_surface#1639.enter(wl_output#1497) +[2618079.846] {Default Queue} discarded wl_surface#1639.enter(wl_output#1529) +[2618079.850] {Default Queue} discarded wl_surface#1639.enter(wl_output#1561) +[2618079.855] {Default Queue} discarded wl_surface#1639.enter(wl_output#1593) +[2618079.859] {Default Queue} discarded wl_surface#1639.enter(wl_output#1625) +[2618079.864] {Default Queue} discarded wl_surface#1639.enter(wl_output#1657) +[2618079.868] {Default Queue} -> wl_compositor#1644.create_surface(new id wl_surface#1671) +[2618079.877] {Default Queue} -> wl_subcompositor#1677.get_subsurface(new id wl_subsurface#1690, wl_surface#1671, wl_surface#1639) +[2618079.885] {Default Queue} -> wl_subsurface#1690.set_desync() +[2618079.890] {Default Queue} -> wl_subsurface#1690.set_position(0, 0) +[2618079.895] {Default Queue} -> wl_subsurface#1690.place_above(wl_surface#1639) +[2618079.940] {Default Queue} -> wl_shm#1679.create_pool(new id wl_shm_pool#1691, fd 269, 16) +[2618079.947] {Default Queue} -> wl_shm#1679.create_pool(new id wl_shm_pool#1692, fd 270, 16) +[2618079.951] {Default Queue} -> wl_shm_pool#1691.create_buffer(new id wl_buffer#1693, 0, 2, 2, 8, 0) +[2618079.956] {Default Queue} -> wl_shm_pool#1692.create_buffer(new id wl_buffer#1694, 0, 2, 2, 8, 0) +[2618079.964] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) +[2618079.969] {Default Queue} -> wl_surface#1671.commit() +[2618079.974] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) +[2618079.979] {Default Queue} -> wl_surface#1671.commit() +[2618079.983] {Default Queue} -> wl_compositor#1676.create_region(new id wl_region#1695) +[2618079.987] {Default Queue} -> wl_compositor#1676.create_region(new id wl_region#1696) +[2618079.991] {Default Queue} -> wl_region#1695.subtract(0, 0, 2, 2) +[2618079.996] {Default Queue} -> wl_region#1695.add(0, 0, 0, 0) +[2618080.001] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2618080.005] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2618080.009] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618080.014] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) +[2618080.022] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) +[2618080.026] {Default Queue} -> wl_surface#1671.commit() +[2618080.063] {Default Queue} -> wl_shm#1681.create_pool(new id wl_shm_pool#1697, fd 273, 640) +[2618080.071] {Default Queue} -> wl_shm#1681.create_pool(new id wl_shm_pool#1698, fd 274, 640) +[2618080.076] {Default Queue} -> wl_shm_pool#1697.create_buffer(new id wl_buffer#1699, 0, 10, 16, 40, 0) +[2618080.081] {Default Queue} -> wl_shm_pool#1698.create_buffer(new id wl_buffer#1700, 0, 10, 16, 40, 0) +[2618080.088] {Default Queue} -> wl_compositor#1676.create_surface(new id wl_surface#1701) +[2618080.092] {Default Queue} -> wl_surface#1701.attach(wl_buffer#1699, 0, 0) +[2618080.097] {Default Queue} -> wl_surface#1701.commit() +[2618080.102] {Default Queue} -> wl_surface#1701.attach(wl_buffer#1699, 0, 0) +[2618080.106] {Default Queue} -> wl_surface#1701.commit() +[2618080.112] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) +[2618080.118] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618080.122] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618080.129] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1702) +[2618080.135] {Default Queue} -> wl_display#1.sync(new id wl_callback#1703) +[2618084.633] {Display Queue} wl_display#1.delete_id(1703) +[2618084.649] {Default Queue} wl_keyboard#1672.keymap(1, fd 269, 68213) +[2618084.656] {Default Queue} wl_keyboard#1672.enter(566, wl_surface#19, array[0]) +[2618084.663] {Default Queue} wl_keyboard#1672.modifiers(566, 0, 0, 16, 0) +[2618084.669] {Default Queue} discarded wl_shm#1679.format(875709016) +[2618084.674] {Default Queue} discarded wl_shm#1679.format(1) +[2618084.679] {Default Queue} discarded wl_shm#1679.format(0) +[2618084.684] {Default Queue} discarded wl_shm#1679.format(875708993) +[2618084.689] {Default Queue} discarded wl_shm#1680.format(875709016) +[2618084.694] {Default Queue} discarded wl_shm#1680.format(1) +[2618084.699] {Default Queue} discarded wl_shm#1680.format(0) +[2618084.704] {Default Queue} discarded wl_shm#1680.format(875708993) +[2618084.708] {Default Queue} discarded wl_shm#1681.format(875709016) +[2618084.713] {Default Queue} discarded wl_shm#1681.format(1) +[2618084.718] {Default Queue} discarded wl_shm#1681.format(0) +[2618084.723] {Default Queue} discarded wl_shm#1681.format(875708993) +[2618084.728] {Default Queue} wl_seat#1688.capabilities(7) +[2618084.733] {Default Queue} -> wl_seat#1688.get_keyboard(new id wl_keyboard#1704) +[2618084.739] {Default Queue} -> wl_seat#1688.get_pointer(new id wl_pointer#1705) +[2618084.744] {Default Queue} -> wl_data_device_manager#1684.get_data_device(new id wl_data_device#1706, wl_seat#1688) +[2618084.750] {Default Queue} -> zwp_primary_selection_device_manager_v1#1686.get_device(new id zwp_primary_selection_device_v1#1707, wl_seat#1688) +[2618084.760] {Default Queue} wl_output#1689.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618084.766] {Default Queue} wl_output#1689.mode(3, 1280, 800, 60000) +[2618084.776] {Default Queue} discarded wl_surface#3.enter(wl_output#1689) +[2618084.790] {Default Queue} discarded wl_surface#999.enter(wl_output#1689) +[2618084.795] {Default Queue} discarded wl_surface#1191.enter(wl_output#1689) +[2618084.800] {Default Queue} discarded wl_surface#1159.enter(wl_output#1689) +[2618084.805] {Default Queue} discarded wl_surface#423.enter(wl_output#1689) +[2618084.810] {Default Queue} discarded wl_surface#1447.enter(wl_output#1689) +[2618084.814] {Default Queue} discarded wl_surface#1639.enter(wl_output#1689) +[2618084.819] {Default Queue} discarded wl_surface#1319.enter(wl_output#1689) +[2618084.824] {Default Queue} discarded wl_surface#1127.enter(wl_output#1689) +[2618084.829] {Default Queue} discarded wl_surface#1063.enter(wl_output#1689) +[2618084.834] {Default Queue} discarded wl_surface#455.enter(wl_output#1689) +[2618084.839] {Default Queue} discarded wl_surface#1575.enter(wl_output#1689) +[2618084.844] {Default Queue} discarded wl_surface#1415.enter(wl_output#1689) +[2618084.849] {Default Queue} discarded wl_surface#903.enter(wl_output#1689) +[2618084.854] {Default Queue} discarded wl_surface#775.enter(wl_output#1689) +[2618084.859] {Default Queue} discarded wl_surface#1543.enter(wl_output#1689) +[2618084.868] {Default Queue} discarded wl_surface#135.enter(wl_output#1689) +[2618084.872] {Default Queue} discarded wl_surface#1287.enter(wl_output#1689) +[2618084.876] {Default Queue} discarded wl_surface#1031.enter(wl_output#1689) +[2618084.879] {Default Queue} discarded wl_surface#615.enter(wl_output#1689) +[2618084.883] {Default Queue} discarded wl_surface#231.enter(wl_output#1689) +[2618084.887] {Default Queue} discarded wl_surface#359.enter(wl_output#1689) +[2618084.891] {Default Queue} discarded wl_surface#583.enter(wl_output#1689) +[2618084.895] {Default Queue} discarded wl_surface#743.enter(wl_output#1689) +[2618084.899] {Default Queue} discarded wl_surface#967.enter(wl_output#1689) +[2618084.903] {Default Queue} discarded wl_surface#103.enter(wl_output#1689) +[2618084.907] {Default Queue} discarded wl_surface#327.enter(wl_output#1689) +[2618084.911] {Default Queue} discarded wl_surface#43.enter(wl_output#1689) +[2618084.915] {Default Queue} discarded wl_surface#807.enter(wl_output#1689) +[2618084.919] {Default Queue} discarded wl_surface#19.enter(wl_output#1689) +[2618084.927] {Default Queue} discarded wl_surface#1511.enter(wl_output#1689) +[2618084.932] {Default Queue} discarded wl_surface#199.enter(wl_output#1689) +[2618084.937] {Default Queue} discarded wl_surface#391.enter(wl_output#1689) +[2618084.941] {Default Queue} discarded wl_surface#935.enter(wl_output#1689) +[2618084.945] {Default Queue} discarded wl_surface#1351.enter(wl_output#1689) +[2618084.949] {Default Queue} discarded wl_surface#711.enter(wl_output#1689) +[2618084.953] {Default Queue} discarded wl_surface#1223.enter(wl_output#1689) +[2618084.957] {Default Queue} discarded wl_surface#871.enter(wl_output#1689) +[2618084.961] {Default Queue} discarded wl_surface#263.enter(wl_output#1689) +[2618084.965] {Default Queue} discarded wl_surface#551.enter(wl_output#1689) +[2618084.969] {Default Queue} discarded wl_surface#1479.enter(wl_output#1689) +[2618084.972] {Default Queue} discarded wl_surface#647.enter(wl_output#1689) +[2618084.976] {Default Queue} discarded wl_surface#71.enter(wl_output#1689) +[2618084.980] {Default Queue} discarded wl_surface#839.enter(wl_output#1689) +[2618084.984] {Default Queue} discarded wl_surface#1607.enter(wl_output#1689) +[2618084.988] {Default Queue} discarded wl_surface#1095.enter(wl_output#1689) +[2618084.992] {Default Queue} discarded wl_surface#1383.enter(wl_output#1689) +[2618084.996] {Default Queue} discarded wl_surface#487.enter(wl_output#1689) +[2618085.000] {Default Queue} discarded wl_surface#519.enter(wl_output#1689) +[2618085.004] {Default Queue} discarded wl_surface#295.enter(wl_output#1689) +[2618085.008] {Default Queue} discarded wl_surface#167.enter(wl_output#1689) +[2618085.012] {Default Queue} discarded wl_surface#1255.enter(wl_output#1689) +[2618085.016] {Default Queue} discarded wl_surface#679.enter(wl_output#1689) +[2618085.020] {Default Queue} wl_registry#1702.global(1, "wl_compositor", 6) +[2618085.026] {Default Queue} -> wl_registry#1702.bind(1, "wl_compositor", 1, new id [unknown]#1708) +[2618085.032] {Default Queue} wl_registry#1702.global(2, "wl_subcompositor", 1) +[2618085.037] {Default Queue} -> wl_registry#1702.bind(2, "wl_subcompositor", 1, new id [unknown]#1709) +[2618085.042] {Default Queue} wl_registry#1702.global(3, "xdg_wm_base", 6) +[2618085.046] {Default Queue} -> wl_registry#1702.bind(3, "xdg_wm_base", 1, new id [unknown]#1710) +[2618085.051] {Default Queue} wl_registry#1702.global(6, "zwlr_layer_shell_v1", 5) +[2618085.055] {Default Queue} wl_registry#1702.global(7, "ext_session_lock_manager_v1", 1) +[2618085.060] {Default Queue} wl_registry#1702.global(8, "wl_shm", 2) +[2618085.064] {Default Queue} -> wl_registry#1702.bind(8, "wl_shm", 1, new id [unknown]#1711) +[2618085.069] {Default Queue} -> wl_registry#1702.bind(8, "wl_shm", 1, new id [unknown]#1712) +[2618085.073] {Default Queue} -> wl_registry#1702.bind(8, "wl_shm", 1, new id [unknown]#1713) +[2618085.077] {Default Queue} wl_registry#1702.global(9, "zxdg_output_manager_v1", 3) +[2618085.082] {Default Queue} wl_registry#1702.global(10, "wp_fractional_scale_manager_v1", 1) +[2618085.086] {Default Queue} wl_registry#1702.global(11, "zwp_tablet_manager_v2", 1) +[2618085.091] {Default Queue} wl_registry#1702.global(12, "zwp_pointer_gestures_v1", 3) +[2618085.095] {Default Queue} wl_registry#1702.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618085.099] {Default Queue} -> wl_registry#1702.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1714) +[2618085.104] {Default Queue} wl_registry#1702.global(14, "zwp_pointer_constraints_v1", 1) +[2618085.109] {Default Queue} -> wl_registry#1702.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1715) +[2618085.113] {Default Queue} wl_registry#1702.global(15, "ext_idle_notifier_v1", 2) +[2618085.117] {Default Queue} wl_registry#1702.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618085.122] {Default Queue} wl_registry#1702.global(17, "wl_data_device_manager", 3) +[2618085.126] {Default Queue} -> wl_registry#1702.bind(17, "wl_data_device_manager", 2, new id [unknown]#1716) +[2618085.131] {Default Queue} -> wl_data_device_manager#1716.create_data_source(new id wl_data_source#1717) +[2618085.139] {Default Queue} -> wl_data_source#1717.offer("text/plain") +[2618085.145] {Default Queue} -> wl_data_source#1717.offer("text/plain;charset=utf-8") +[2618085.149] {Default Queue} -> wl_data_source#1717.offer("TEXT") +[2618085.153] {Default Queue} -> wl_data_source#1717.offer("STRING") +[2618085.157] {Default Queue} -> wl_data_source#1717.offer("UTF8_STRING") +[2618085.163] {Default Queue} wl_registry#1702.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618085.167] {Default Queue} -> wl_registry#1702.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1718) +[2618085.175] {Default Queue} -> zwp_primary_selection_device_manager_v1#1718.create_source(new id zwp_primary_selection_source_v1#1719) +[2618085.182] {Default Queue} -> zwp_primary_selection_source_v1#1719.offer("text/plain") +[2618085.186] {Default Queue} -> zwp_primary_selection_source_v1#1719.offer("text/plain;charset=utf-8") +[2618085.190] {Default Queue} -> zwp_primary_selection_source_v1#1719.offer("TEXT") +[2618085.194] {Default Queue} -> zwp_primary_selection_source_v1#1719.offer("STRING") +[2618085.198] {Default Queue} -> zwp_primary_selection_source_v1#1719.offer("UTF8_STRING") +[2618085.202] {Default Queue} wl_registry#1702.global(19, "zwlr_data_control_manager_v1", 2) +[2618085.207] {Default Queue} wl_registry#1702.global(20, "ext_data_control_manager_v1", 1) +[2618085.211] {Default Queue} wl_registry#1702.global(21, "wp_presentation", 2) +[2618085.215] {Default Queue} wl_registry#1702.global(22, "wp_security_context_manager_v1", 1) +[2618085.221] {Default Queue} wl_registry#1702.global(23, "zwp_text_input_manager_v3", 1) +[2618085.225] {Default Queue} wl_registry#1702.global(24, "zwp_input_method_manager_v2", 1) +[2618085.229] {Default Queue} wl_registry#1702.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618085.234] {Default Queue} wl_registry#1702.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618085.238] {Default Queue} wl_registry#1702.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618085.242] {Default Queue} wl_registry#1702.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618085.247] {Default Queue} wl_registry#1702.global(29, "ext_workspace_manager_v1", 1) +[2618085.251] {Default Queue} wl_registry#1702.global(30, "zwlr_output_manager_v1", 4) +[2618085.255] {Default Queue} wl_registry#1702.global(31, "zwlr_screencopy_manager_v1", 3) +[2618085.260] {Default Queue} wl_registry#1702.global(32, "wp_viewporter", 1) +[2618085.264] {Default Queue} wl_registry#1702.global(33, "zxdg_exporter_v2", 1) +[2618085.268] {Default Queue} wl_registry#1702.global(34, "zxdg_importer_v2", 1) +[2618085.273] {Default Queue} wl_registry#1702.global(36, "xdg_activation_v1", 1) +[2618085.277] {Default Queue} wl_registry#1702.global(37, "mutter_x11_interop", 1) +[2618085.281] {Default Queue} wl_registry#1702.global(38, "wl_seat", 9) +[2618085.286] {Default Queue} -> wl_registry#1702.bind(38, "wl_seat", 1, new id [unknown]#1720) +[2618085.290] {Default Queue} wl_registry#1702.global(39, "wp_cursor_shape_manager_v1", 2) +[2618085.295] {Default Queue} wl_registry#1702.global(40, "wl_output", 4) +[2618085.299] {Default Queue} -> wl_registry#1702.bind(40, "wl_output", 1, new id [unknown]#1721) +[2618085.304] {Default Queue} wl_callback#1703.done(0) +[2618085.308] {Default Queue} discarded wl_surface#1671.enter(wl_output#18) +[2618085.312] {Default Queue} discarded wl_surface#1671.enter(wl_output#57) +[2618085.316] {Default Queue} discarded wl_surface#1671.enter(wl_output#89) +[2618085.320] {Default Queue} discarded wl_surface#1671.enter(wl_output#121) +[2618085.324] {Default Queue} discarded wl_surface#1671.enter(wl_output#153) +[2618085.328] {Default Queue} discarded wl_surface#1671.enter(wl_output#185) +[2618085.332] {Default Queue} discarded wl_surface#1671.enter(wl_output#217) +[2618085.336] {Default Queue} discarded wl_surface#1671.enter(wl_output#249) +[2618085.340] {Default Queue} discarded wl_surface#1671.enter(wl_output#281) +[2618085.344] {Default Queue} discarded wl_surface#1671.enter(wl_output#313) +[2618085.351] {Default Queue} discarded wl_surface#1671.enter(wl_output#345) +[2618085.356] {Default Queue} discarded wl_surface#1671.enter(wl_output#377) +[2618085.360] {Default Queue} discarded wl_surface#1671.enter(wl_output#409) +[2618085.364] {Default Queue} discarded wl_surface#1671.enter(wl_output#441) +[2618085.368] {Default Queue} discarded wl_surface#1671.enter(wl_output#473) +[2618085.373] {Default Queue} discarded wl_surface#1671.enter(wl_output#505) +[2618085.377] {Default Queue} discarded wl_surface#1671.enter(wl_output#537) +[2618085.381] {Default Queue} discarded wl_surface#1671.enter(wl_output#569) +[2618085.384] {Default Queue} discarded wl_surface#1671.enter(wl_output#601) +[2618085.388] {Default Queue} discarded wl_surface#1671.enter(wl_output#633) +[2618085.393] {Default Queue} discarded wl_surface#1671.enter(wl_output#665) +[2618085.397] {Default Queue} discarded wl_surface#1671.enter(wl_output#697) +[2618085.400] {Default Queue} discarded wl_surface#1671.enter(wl_output#729) +[2618085.404] {Default Queue} discarded wl_surface#1671.enter(wl_output#761) +[2618085.408] {Default Queue} discarded wl_surface#1671.enter(wl_output#793) +[2618085.412] {Default Queue} discarded wl_surface#1671.enter(wl_output#825) +[2618085.416] {Default Queue} discarded wl_surface#1671.enter(wl_output#857) +[2618085.420] {Default Queue} discarded wl_surface#1671.enter(wl_output#889) +[2618085.424] {Default Queue} discarded wl_surface#1671.enter(wl_output#921) +[2618085.428] {Default Queue} discarded wl_surface#1671.enter(wl_output#953) +[2618085.432] {Default Queue} discarded wl_surface#1671.enter(wl_output#985) +[2618085.436] {Default Queue} discarded wl_surface#1671.enter(wl_output#1017) +[2618085.440] {Default Queue} discarded wl_surface#1671.enter(wl_output#1049) +[2618085.444] {Default Queue} discarded wl_surface#1671.enter(wl_output#1081) +[2618085.448] {Default Queue} discarded wl_surface#1671.enter(wl_output#1113) +[2618085.452] {Default Queue} discarded wl_surface#1671.enter(wl_output#1145) +[2618085.455] {Default Queue} discarded wl_surface#1671.enter(wl_output#1177) +[2618085.459] {Default Queue} discarded wl_surface#1671.enter(wl_output#1209) +[2618085.463] {Default Queue} discarded wl_surface#1671.enter(wl_output#1241) +[2618085.467] {Default Queue} discarded wl_surface#1671.enter(wl_output#1273) +[2618085.471] {Default Queue} discarded wl_surface#1671.enter(wl_output#1305) +[2618085.475] {Default Queue} discarded wl_surface#1671.enter(wl_output#1337) +[2618085.479] {Default Queue} discarded wl_surface#1671.enter(wl_output#1369) +[2618085.483] {Default Queue} discarded wl_surface#1671.enter(wl_output#1401) +[2618085.487] {Default Queue} discarded wl_surface#1671.enter(wl_output#1433) +[2618085.491] {Default Queue} discarded wl_surface#1671.enter(wl_output#1465) +[2618085.496] {Default Queue} discarded wl_surface#1671.enter(wl_output#1497) +[2618085.499] {Default Queue} discarded wl_surface#1671.enter(wl_output#1529) +[2618085.503] {Default Queue} discarded wl_surface#1671.enter(wl_output#1561) +[2618085.507] {Default Queue} discarded wl_surface#1671.enter(wl_output#1593) +[2618085.511] {Default Queue} discarded wl_surface#1671.enter(wl_output#1625) +[2618085.515] {Default Queue} discarded wl_surface#1671.enter(wl_output#1657) +[2618085.519] {Default Queue} discarded wl_surface#1671.enter(wl_output#1689) +[2618085.523] {Default Queue} -> wl_compositor#1644.create_surface(new id wl_surface#1703) +[2618085.528] {Default Queue} -> wl_subcompositor#1709.get_subsurface(new id wl_subsurface#1722, wl_surface#1703, wl_surface#1639) +[2618085.536] {Default Queue} -> wl_subsurface#1722.set_desync() +[2618085.541] {Default Queue} -> wl_subsurface#1722.set_position(0, 0) +[2618085.546] {Default Queue} -> wl_subsurface#1722.place_above(wl_surface#1639) +[2618085.591] {Default Queue} -> wl_shm#1711.create_pool(new id wl_shm_pool#1723, fd 274, 16) +[2618085.598] {Default Queue} -> wl_shm#1711.create_pool(new id wl_shm_pool#1724, fd 275, 16) +[2618085.602] {Default Queue} -> wl_shm_pool#1723.create_buffer(new id wl_buffer#1725, 0, 2, 2, 8, 0) +[2618085.607] {Default Queue} -> wl_shm_pool#1724.create_buffer(new id wl_buffer#1726, 0, 2, 2, 8, 0) +[2618085.619] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) +[2618085.625] {Default Queue} -> wl_surface#1703.commit() +[2618085.630] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) +[2618085.635] {Default Queue} -> wl_surface#1703.commit() +[2618085.639] {Default Queue} -> wl_compositor#1708.create_region(new id wl_region#1727) +[2618085.643] {Default Queue} -> wl_compositor#1708.create_region(new id wl_region#1728) +[2618085.648] {Default Queue} -> wl_region#1727.subtract(0, 0, 2, 2) +[2618085.653] {Default Queue} -> wl_region#1727.add(0, 0, 0, 0) +[2618085.657] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) +[2618085.662] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) +[2618085.666] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) +[2618085.671] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) +[2618085.679] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) +[2618085.684] {Default Queue} -> wl_surface#1703.commit() +[2618085.723] {Default Queue} -> wl_shm#1713.create_pool(new id wl_shm_pool#1729, fd 278, 640) +[2618085.729] {Default Queue} -> wl_shm#1713.create_pool(new id wl_shm_pool#1730, fd 279, 640) +[2618085.734] {Default Queue} -> wl_shm_pool#1729.create_buffer(new id wl_buffer#1731, 0, 10, 16, 40, 0) +[2618085.738] {Default Queue} -> wl_shm_pool#1730.create_buffer(new id wl_buffer#1732, 0, 10, 16, 40, 0) +[2618085.745] {Default Queue} -> wl_compositor#1708.create_surface(new id wl_surface#1733) +[2618085.750] {Default Queue} -> wl_surface#1733.attach(wl_buffer#1731, 0, 0) +[2618085.754] {Default Queue} -> wl_surface#1733.commit() +[2618085.759] {Default Queue} -> wl_surface#1733.attach(wl_buffer#1731, 0, 0) +[2618085.764] {Default Queue} -> wl_surface#1733.commit() +[2618085.769] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) +[2618085.776] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1734) +[2618085.781] {Default Queue} -> wl_display#1.sync(new id wl_callback#1735) +[2618089.022] {Display Queue} wl_display#1.delete_id(1735) +[2618089.031] {Default Queue} wl_keyboard#1704.keymap(1, fd 274, 68213) +[2618089.036] {Default Queue} wl_keyboard#1704.enter(566, wl_surface#19, array[0]) +[2618089.042] {Default Queue} wl_keyboard#1704.modifiers(566, 0, 0, 16, 0) +[2618089.046] {Default Queue} discarded wl_shm#1711.format(875709016) +[2618089.050] {Default Queue} discarded wl_shm#1711.format(1) +[2618089.054] {Default Queue} discarded wl_shm#1711.format(0) +[2618089.058] {Default Queue} discarded wl_shm#1711.format(875708993) +[2618089.062] {Default Queue} discarded wl_shm#1712.format(875709016) +[2618089.066] {Default Queue} discarded wl_shm#1712.format(1) +[2618089.070] {Default Queue} discarded wl_shm#1712.format(0) +[2618089.074] {Default Queue} discarded wl_shm#1712.format(875708993) +[2618089.078] {Default Queue} discarded wl_shm#1713.format(875709016) +[2618089.082] {Default Queue} discarded wl_shm#1713.format(1) +[2618089.086] {Default Queue} discarded wl_shm#1713.format(0) +[2618089.090] {Default Queue} discarded wl_shm#1713.format(875708993) +[2618089.093] {Default Queue} wl_seat#1720.capabilities(7) +[2618089.098] {Default Queue} -> wl_seat#1720.get_keyboard(new id wl_keyboard#1736) +[2618089.102] {Default Queue} -> wl_seat#1720.get_pointer(new id wl_pointer#1737) +[2618089.106] {Default Queue} -> wl_data_device_manager#1716.get_data_device(new id wl_data_device#1738, wl_seat#1720) +[2618089.111] {Default Queue} -> zwp_primary_selection_device_manager_v1#1718.get_device(new id zwp_primary_selection_device_v1#1739, wl_seat#1720) +[2618089.119] {Default Queue} wl_output#1721.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618089.124] {Default Queue} wl_output#1721.mode(3, 1280, 800, 60000) +[2618089.128] {Default Queue} discarded wl_surface#3.enter(wl_output#1721) +[2618089.132] {Default Queue} discarded wl_surface#999.enter(wl_output#1721) +[2618089.136] {Default Queue} discarded wl_surface#1191.enter(wl_output#1721) +[2618089.144] {Default Queue} discarded wl_surface#1159.enter(wl_output#1721) +[2618089.151] {Default Queue} discarded wl_surface#423.enter(wl_output#1721) +[2618089.156] {Default Queue} discarded wl_surface#1447.enter(wl_output#1721) +[2618089.159] {Default Queue} discarded wl_surface#1639.enter(wl_output#1721) +[2618089.163] {Default Queue} discarded wl_surface#1319.enter(wl_output#1721) +[2618089.167] {Default Queue} discarded wl_surface#1127.enter(wl_output#1721) +[2618089.171] {Default Queue} discarded wl_surface#1063.enter(wl_output#1721) +[2618089.175] {Default Queue} discarded wl_surface#455.enter(wl_output#1721) +[2618089.179] {Default Queue} discarded wl_surface#1575.enter(wl_output#1721) +[2618089.183] {Default Queue} discarded wl_surface#1415.enter(wl_output#1721) +[2618089.187] {Default Queue} discarded wl_surface#903.enter(wl_output#1721) +[2618089.191] {Default Queue} discarded wl_surface#775.enter(wl_output#1721) +[2618089.195] {Default Queue} discarded wl_surface#1543.enter(wl_output#1721) +[2618089.199] {Default Queue} discarded wl_surface#135.enter(wl_output#1721) +[2618089.203] {Default Queue} discarded wl_surface#1287.enter(wl_output#1721) +[2618089.206] {Default Queue} discarded wl_surface#1031.enter(wl_output#1721) +[2618089.210] {Default Queue} discarded wl_surface#615.enter(wl_output#1721) +[2618089.214] {Default Queue} discarded wl_surface#231.enter(wl_output#1721) +[2618089.218] {Default Queue} discarded wl_surface#359.enter(wl_output#1721) +[2618089.222] {Default Queue} discarded wl_surface#583.enter(wl_output#1721) +[2618089.226] {Default Queue} discarded wl_surface#743.enter(wl_output#1721) +[2618089.230] {Default Queue} discarded wl_surface#967.enter(wl_output#1721) +[2618089.234] {Default Queue} discarded wl_surface#103.enter(wl_output#1721) +[2618089.238] {Default Queue} discarded wl_surface#327.enter(wl_output#1721) +[2618089.241] {Default Queue} discarded wl_surface#43.enter(wl_output#1721) +[2618089.245] {Default Queue} discarded wl_surface#807.enter(wl_output#1721) +[2618089.249] {Default Queue} discarded wl_surface#19.enter(wl_output#1721) +[2618089.253] {Default Queue} discarded wl_surface#1511.enter(wl_output#1721) +[2618089.257] {Default Queue} discarded wl_surface#199.enter(wl_output#1721) +[2618089.261] {Default Queue} discarded wl_surface#391.enter(wl_output#1721) +[2618089.264] {Default Queue} discarded wl_surface#935.enter(wl_output#1721) +[2618089.268] {Default Queue} discarded wl_surface#1671.enter(wl_output#1721) +[2618089.272] {Default Queue} discarded wl_surface#1351.enter(wl_output#1721) +[2618089.276] {Default Queue} discarded wl_surface#711.enter(wl_output#1721) +[2618089.280] {Default Queue} discarded wl_surface#1223.enter(wl_output#1721) +[2618089.284] {Default Queue} discarded wl_surface#871.enter(wl_output#1721) +[2618089.288] {Default Queue} discarded wl_surface#263.enter(wl_output#1721) +[2618089.292] {Default Queue} discarded wl_surface#551.enter(wl_output#1721) +[2618089.296] {Default Queue} discarded wl_surface#1479.enter(wl_output#1721) +[2618089.299] {Default Queue} discarded wl_surface#647.enter(wl_output#1721) +[2618089.303] {Default Queue} discarded wl_surface#71.enter(wl_output#1721) +[2618089.307] {Default Queue} discarded wl_surface#839.enter(wl_output#1721) +[2618089.311] {Default Queue} discarded wl_surface#1607.enter(wl_output#1721) +[2618089.315] {Default Queue} discarded wl_surface#1095.enter(wl_output#1721) +[2618089.319] {Default Queue} discarded wl_surface#1383.enter(wl_output#1721) +[2618089.323] {Default Queue} discarded wl_surface#487.enter(wl_output#1721) +[2618089.327] {Default Queue} discarded wl_surface#519.enter(wl_output#1721) +[2618089.331] {Default Queue} discarded wl_surface#295.enter(wl_output#1721) +[2618089.335] {Default Queue} discarded wl_surface#167.enter(wl_output#1721) +[2618089.339] {Default Queue} discarded wl_surface#1255.enter(wl_output#1721) +[2618089.343] {Default Queue} discarded wl_surface#679.enter(wl_output#1721) +[2618089.347] {Default Queue} wl_registry#1734.global(1, "wl_compositor", 6) +[2618089.352] {Default Queue} -> wl_registry#1734.bind(1, "wl_compositor", 1, new id [unknown]#1740) +[2618089.360] {Default Queue} wl_registry#1734.global(2, "wl_subcompositor", 1) +[2618089.366] {Default Queue} -> wl_registry#1734.bind(2, "wl_subcompositor", 1, new id [unknown]#1741) +[2618089.370] {Default Queue} wl_registry#1734.global(3, "xdg_wm_base", 6) +[2618089.375] {Default Queue} -> wl_registry#1734.bind(3, "xdg_wm_base", 1, new id [unknown]#1742) +[2618089.379] {Default Queue} wl_registry#1734.global(6, "zwlr_layer_shell_v1", 5) +[2618089.384] {Default Queue} wl_registry#1734.global(7, "ext_session_lock_manager_v1", 1) +[2618089.390] {Default Queue} wl_registry#1734.global(8, "wl_shm", 2) +[2618089.394] {Default Queue} -> wl_registry#1734.bind(8, "wl_shm", 1, new id [unknown]#1743) +[2618089.399] {Default Queue} -> wl_registry#1734.bind(8, "wl_shm", 1, new id [unknown]#1744) +[2618089.403] {Default Queue} -> wl_registry#1734.bind(8, "wl_shm", 1, new id [unknown]#1745) +[2618089.407] {Default Queue} wl_registry#1734.global(9, "zxdg_output_manager_v1", 3) +[2618089.412] {Default Queue} wl_registry#1734.global(10, "wp_fractional_scale_manager_v1", 1) +[2618089.417] {Default Queue} wl_registry#1734.global(11, "zwp_tablet_manager_v2", 1) +[2618089.421] {Default Queue} wl_registry#1734.global(12, "zwp_pointer_gestures_v1", 3) +[2618089.425] {Default Queue} wl_registry#1734.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618089.430] {Default Queue} -> wl_registry#1734.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1746) +[2618089.434] {Default Queue} wl_registry#1734.global(14, "zwp_pointer_constraints_v1", 1) +[2618089.439] {Default Queue} -> wl_registry#1734.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1747) +[2618089.443] {Default Queue} wl_registry#1734.global(15, "ext_idle_notifier_v1", 2) +[2618089.447] {Default Queue} wl_registry#1734.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618089.452] {Default Queue} wl_registry#1734.global(17, "wl_data_device_manager", 3) +[2618089.457] {Default Queue} -> wl_registry#1734.bind(17, "wl_data_device_manager", 2, new id [unknown]#1748) +[2618089.462] {Default Queue} -> wl_data_device_manager#1748.create_data_source(new id wl_data_source#1749) +[2618089.466] {Default Queue} -> wl_data_source#1749.offer("text/plain") +[2618089.470] {Default Queue} -> wl_data_source#1749.offer("text/plain;charset=utf-8") +[2618089.475] {Default Queue} -> wl_data_source#1749.offer("TEXT") +[2618089.479] {Default Queue} -> wl_data_source#1749.offer("STRING") +[2618089.483] {Default Queue} -> wl_data_source#1749.offer("UTF8_STRING") +[2618089.488] {Default Queue} wl_registry#1734.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618089.492] {Default Queue} -> wl_registry#1734.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1750) +[2618089.500] {Default Queue} -> zwp_primary_selection_device_manager_v1#1750.create_source(new id zwp_primary_selection_source_v1#1751) +[2618089.507] {Default Queue} -> zwp_primary_selection_source_v1#1751.offer("text/plain") +[2618089.511] {Default Queue} -> zwp_primary_selection_source_v1#1751.offer("text/plain;charset=utf-8") +[2618089.515] {Default Queue} -> zwp_primary_selection_source_v1#1751.offer("TEXT") +[2618089.520] {Default Queue} -> zwp_primary_selection_source_v1#1751.offer("STRING") +[2618089.523] {Default Queue} -> zwp_primary_selection_source_v1#1751.offer("UTF8_STRING") +[2618089.528] {Default Queue} wl_registry#1734.global(19, "zwlr_data_control_manager_v1", 2) +[2618089.532] {Default Queue} wl_registry#1734.global(20, "ext_data_control_manager_v1", 1) +[2618089.537] {Default Queue} wl_registry#1734.global(21, "wp_presentation", 2) +[2618089.541] {Default Queue} wl_registry#1734.global(22, "wp_security_context_manager_v1", 1) +[2618089.546] {Default Queue} wl_registry#1734.global(23, "zwp_text_input_manager_v3", 1) +[2618089.550] {Default Queue} wl_registry#1734.global(24, "zwp_input_method_manager_v2", 1) +[2618089.554] {Default Queue} wl_registry#1734.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618089.559] {Default Queue} wl_registry#1734.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618089.566] {Default Queue} wl_registry#1734.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618089.572] {Default Queue} wl_registry#1734.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618089.576] {Default Queue} wl_registry#1734.global(29, "ext_workspace_manager_v1", 1) +[2618089.580] {Default Queue} wl_registry#1734.global(30, "zwlr_output_manager_v1", 4) +[2618089.584] {Default Queue} wl_registry#1734.global(31, "zwlr_screencopy_manager_v1", 3) +[2618089.589] {Default Queue} wl_registry#1734.global(32, "wp_viewporter", 1) +[2618089.593] {Default Queue} wl_registry#1734.global(33, "zxdg_exporter_v2", 1) +[2618089.597] {Default Queue} wl_registry#1734.global(34, "zxdg_importer_v2", 1) +[2618089.602] {Default Queue} wl_registry#1734.global(36, "xdg_activation_v1", 1) +[2618089.606] {Default Queue} wl_registry#1734.global(37, "mutter_x11_interop", 1) +[2618089.610] {Default Queue} wl_registry#1734.global(38, "wl_seat", 9) +[2618089.615] {Default Queue} -> wl_registry#1734.bind(38, "wl_seat", 1, new id [unknown]#1752) +[2618089.619] {Default Queue} wl_registry#1734.global(39, "wp_cursor_shape_manager_v1", 2) +[2618089.624] {Default Queue} wl_registry#1734.global(40, "wl_output", 4) +[2618089.628] {Default Queue} -> wl_registry#1734.bind(40, "wl_output", 1, new id [unknown]#1753) +[2618089.633] {Default Queue} wl_callback#1735.done(0) +[2618089.637] {Default Queue} discarded wl_surface#1703.enter(wl_output#18) +[2618089.641] {Default Queue} discarded wl_surface#1703.enter(wl_output#57) +[2618089.645] {Default Queue} discarded wl_surface#1703.enter(wl_output#89) +[2618089.649] {Default Queue} discarded wl_surface#1703.enter(wl_output#121) +[2618089.653] {Default Queue} discarded wl_surface#1703.enter(wl_output#153) +[2618089.657] {Default Queue} discarded wl_surface#1703.enter(wl_output#185) +[2618089.661] {Default Queue} discarded wl_surface#1703.enter(wl_output#217) +[2618089.665] {Default Queue} discarded wl_surface#1703.enter(wl_output#249) +[2618089.669] {Default Queue} discarded wl_surface#1703.enter(wl_output#281) +[2618089.672] {Default Queue} discarded wl_surface#1703.enter(wl_output#313) +[2618089.676] {Default Queue} discarded wl_surface#1703.enter(wl_output#345) +[2618089.680] {Default Queue} discarded wl_surface#1703.enter(wl_output#377) +[2618089.684] {Default Queue} discarded wl_surface#1703.enter(wl_output#409) +[2618089.688] {Default Queue} discarded wl_surface#1703.enter(wl_output#441) +[2618089.692] {Default Queue} discarded wl_surface#1703.enter(wl_output#473) +[2618089.696] {Default Queue} discarded wl_surface#1703.enter(wl_output#505) +[2618089.700] {Default Queue} discarded wl_surface#1703.enter(wl_output#537) +[2618089.704] {Default Queue} discarded wl_surface#1703.enter(wl_output#569) +[2618089.708] {Default Queue} discarded wl_surface#1703.enter(wl_output#601) +[2618089.711] {Default Queue} discarded wl_surface#1703.enter(wl_output#633) +[2618089.715] {Default Queue} discarded wl_surface#1703.enter(wl_output#665) +[2618089.719] {Default Queue} discarded wl_surface#1703.enter(wl_output#697) +[2618089.723] {Default Queue} discarded wl_surface#1703.enter(wl_output#729) +[2618089.727] {Default Queue} discarded wl_surface#1703.enter(wl_output#761) +[2618089.731] {Default Queue} discarded wl_surface#1703.enter(wl_output#793) +[2618089.735] {Default Queue} discarded wl_surface#1703.enter(wl_output#825) +[2618089.739] {Default Queue} discarded wl_surface#1703.enter(wl_output#857) +[2618089.743] {Default Queue} discarded wl_surface#1703.enter(wl_output#889) +[2618089.747] {Default Queue} discarded wl_surface#1703.enter(wl_output#921) +[2618089.750] {Default Queue} discarded wl_surface#1703.enter(wl_output#953) +[2618089.755] {Default Queue} discarded wl_surface#1703.enter(wl_output#985) +[2618089.759] {Default Queue} discarded wl_surface#1703.enter(wl_output#1017) +[2618089.763] {Default Queue} discarded wl_surface#1703.enter(wl_output#1049) +[2618089.767] {Default Queue} discarded wl_surface#1703.enter(wl_output#1081) +[2618089.771] {Default Queue} discarded wl_surface#1703.enter(wl_output#1113) +[2618089.775] {Default Queue} discarded wl_surface#1703.enter(wl_output#1145) +[2618089.782] {Default Queue} discarded wl_surface#1703.enter(wl_output#1177) +[2618089.787] {Default Queue} discarded wl_surface#1703.enter(wl_output#1209) +[2618089.791] {Default Queue} discarded wl_surface#1703.enter(wl_output#1241) +[2618089.795] {Default Queue} discarded wl_surface#1703.enter(wl_output#1273) +[2618089.799] {Default Queue} discarded wl_surface#1703.enter(wl_output#1305) +[2618089.803] {Default Queue} discarded wl_surface#1703.enter(wl_output#1337) +[2618089.807] {Default Queue} discarded wl_surface#1703.enter(wl_output#1369) +[2618089.811] {Default Queue} discarded wl_surface#1703.enter(wl_output#1401) +[2618089.815] {Default Queue} discarded wl_surface#1703.enter(wl_output#1433) +[2618089.819] {Default Queue} discarded wl_surface#1703.enter(wl_output#1465) +[2618089.823] {Default Queue} discarded wl_surface#1703.enter(wl_output#1497) +[2618089.827] {Default Queue} discarded wl_surface#1703.enter(wl_output#1529) +[2618089.831] {Default Queue} discarded wl_surface#1703.enter(wl_output#1561) +[2618089.835] {Default Queue} discarded wl_surface#1703.enter(wl_output#1593) +[2618089.839] {Default Queue} discarded wl_surface#1703.enter(wl_output#1625) +[2618089.844] {Default Queue} discarded wl_surface#1703.enter(wl_output#1657) +[2618089.847] {Default Queue} discarded wl_surface#1703.enter(wl_output#1689) +[2618089.851] {Default Queue} discarded wl_surface#1703.enter(wl_output#1721) +[2618089.855] {Default Queue} -> wl_compositor#1708.create_surface(new id wl_surface#1735) +[2618089.860] {Default Queue} -> wl_subcompositor#1741.get_subsurface(new id wl_subsurface#1754, wl_surface#1735, wl_surface#1703) +[2618089.869] {Default Queue} -> wl_subsurface#1754.set_desync() +[2618089.877] {Default Queue} -> wl_subsurface#1754.set_position(0, 0) +[2618089.881] {Default Queue} -> wl_subsurface#1754.place_above(wl_surface#1703) +[2618089.921] {Default Queue} -> wl_shm#1743.create_pool(new id wl_shm_pool#1755, fd 279, 16) +[2618089.928] {Default Queue} -> wl_shm#1743.create_pool(new id wl_shm_pool#1756, fd 280, 16) +[2618089.932] {Default Queue} -> wl_shm_pool#1755.create_buffer(new id wl_buffer#1757, 0, 2, 2, 8, 0) +[2618089.937] {Default Queue} -> wl_shm_pool#1756.create_buffer(new id wl_buffer#1758, 0, 2, 2, 8, 0) +[2618089.944] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) +[2618089.948] {Default Queue} -> wl_surface#1735.commit() +[2618089.954] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) +[2618089.958] {Default Queue} -> wl_surface#1735.commit() +[2618089.963] {Default Queue} -> wl_compositor#1740.create_region(new id wl_region#1759) +[2618089.967] {Default Queue} -> wl_compositor#1740.create_region(new id wl_region#1760) +[2618089.971] {Default Queue} -> wl_region#1759.subtract(0, 0, 2, 2) +[2618089.976] {Default Queue} -> wl_region#1759.add(0, 0, 0, 0) +[2618089.980] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618089.984] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618089.989] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) +[2618089.993] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) +[2618090.000] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) +[2618090.005] {Default Queue} -> wl_surface#1735.commit() +[2618090.037] {Default Queue} -> wl_shm#1745.create_pool(new id wl_shm_pool#1761, fd 283, 640) +[2618090.043] {Default Queue} -> wl_shm#1745.create_pool(new id wl_shm_pool#1762, fd 284, 640) +[2618090.048] {Default Queue} -> wl_shm_pool#1761.create_buffer(new id wl_buffer#1763, 0, 10, 16, 40, 0) +[2618090.053] {Default Queue} -> wl_shm_pool#1762.create_buffer(new id wl_buffer#1764, 0, 10, 16, 40, 0) +[2618090.060] {Default Queue} -> wl_compositor#1740.create_surface(new id wl_surface#1765) +[2618090.064] {Default Queue} -> wl_surface#1765.attach(wl_buffer#1763, 0, 0) +[2618090.069] {Default Queue} -> wl_surface#1765.commit() +[2618090.074] {Default Queue} -> wl_surface#1765.attach(wl_buffer#1763, 0, 0) +[2618090.079] {Default Queue} -> wl_surface#1765.commit() +[2618090.095] {Default Queue} -> wl_buffer#1763.destroy() +[2618090.103] {Default Queue} -> wl_buffer#1764.destroy() +[2618090.107] {Default Queue} -> wl_shm_pool#1761.destroy() +[2618090.112] {Default Queue} -> wl_shm_pool#1762.destroy() +[2618090.117] {Default Queue} -> wl_surface#1765.destroy() +[2618090.151] {Default Queue} -> wl_shm#1745.create_pool(new id wl_shm_pool#1766, fd 285, 576) +[2618090.157] {Default Queue} -> wl_shm#1745.create_pool(new id wl_shm_pool#1767, fd 286, 576) +[2618090.162] {Default Queue} -> wl_shm_pool#1766.create_buffer(new id wl_buffer#1768, 0, 9, 16, 36, 0) +[2618090.167] {Default Queue} -> wl_shm_pool#1767.create_buffer(new id wl_buffer#1769, 0, 9, 16, 36, 0) +[2618090.173] {Default Queue} -> wl_compositor#1740.create_surface(new id wl_surface#1770) +[2618090.178] {Default Queue} -> wl_surface#1770.attach(wl_buffer#1768, 0, 0) +[2618090.182] {Default Queue} -> wl_surface#1770.commit() +[2618090.188] {Default Queue} -> wl_surface#1770.attach(wl_buffer#1768, 0, 0) +[2618090.192] {Default Queue} -> wl_surface#1770.commit() +[2618090.204] {Default Queue} -> wl_region#1663.subtract(0, 0, 2, 2) +[2618090.210] {Default Queue} -> wl_subsurface#1658.set_position(3, 3) +[2618090.215] {Default Queue} -> wl_region#1663.subtract(0, 0, 5, 5) +[2618090.220] {Default Queue} -> wl_region#1663.add(0, 0, 0, 0) +[2618090.224] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) +[2618090.229] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) +[2618090.234] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618090.238] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) +[2618090.243] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) +[2618090.247] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) +[2618090.256] {Default Queue} -> wl_region#1663.subtract(0, 0, 5, 5) +[2618090.261] {Default Queue} -> wl_region#1663.add(0, 0, 0, 0) +[2618090.265] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) +[2618090.269] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) +[2618090.276] {Default Queue} -> wl_surface#1639.attach(wl_buffer#1661, 0, 0) +[2618090.280] {Default Queue} -> wl_surface#1639.commit() +[2618090.287] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1771) +[2618090.292] {Default Queue} -> wl_display#1.sync(new id wl_callback#1772) +[2618094.821] {Display Queue} wl_display#1.delete_id(1763) +[2618094.831] {Display Queue} wl_display#1.delete_id(1764) +[2618094.837] {Display Queue} wl_display#1.delete_id(1761) +[2618094.842] {Display Queue} wl_display#1.delete_id(1762) +[2618094.847] {Display Queue} wl_display#1.delete_id(1765) +[2618094.852] {Display Queue} wl_display#1.delete_id(1772) +[2618094.857] {Default Queue} wl_keyboard#1736.keymap(1, fd 279, 68213) +[2618094.869] {Default Queue} wl_keyboard#1736.enter(566, wl_surface#19, array[0]) +[2618094.876] {Default Queue} wl_keyboard#1736.modifiers(566, 0, 0, 16, 0) +[2618094.881] {Default Queue} discarded wl_shm#1743.format(875709016) +[2618094.887] {Default Queue} discarded wl_shm#1743.format(1) +[2618094.891] {Default Queue} discarded wl_shm#1743.format(0) +[2618094.896] {Default Queue} discarded wl_shm#1743.format(875708993) +[2618094.901] {Default Queue} discarded wl_shm#1744.format(875709016) +[2618094.906] {Default Queue} discarded wl_shm#1744.format(1) +[2618094.911] {Default Queue} discarded wl_shm#1744.format(0) +[2618094.916] {Default Queue} discarded wl_shm#1744.format(875708993) +[2618094.921] {Default Queue} discarded wl_shm#1745.format(875709016) +[2618094.926] {Default Queue} discarded wl_shm#1745.format(1) +[2618094.931] {Default Queue} discarded wl_shm#1745.format(0) +[2618094.935] {Default Queue} discarded wl_shm#1745.format(875708993) +[2618094.940] {Default Queue} wl_seat#1752.capabilities(7) +[2618094.946] {Default Queue} -> wl_seat#1752.get_keyboard(new id wl_keyboard#1765) +[2618094.952] {Default Queue} -> wl_seat#1752.get_pointer(new id wl_pointer#1762) +[2618094.958] {Default Queue} -> wl_data_device_manager#1748.get_data_device(new id wl_data_device#1761, wl_seat#1752) +[2618094.969] {Default Queue} -> zwp_primary_selection_device_manager_v1#1750.get_device(new id zwp_primary_selection_device_v1#1764, wl_seat#1752) +[2618094.982] {Default Queue} wl_output#1753.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618094.989] {Default Queue} wl_output#1753.mode(3, 1280, 800, 60000) +[2618094.995] {Default Queue} discarded wl_surface#3.enter(wl_output#1753) +[2618095.000] {Default Queue} discarded wl_surface#999.enter(wl_output#1753) +[2618095.005] {Default Queue} discarded wl_surface#1191.enter(wl_output#1753) +[2618095.011] {Default Queue} discarded wl_surface#1159.enter(wl_output#1753) +[2618095.016] {Default Queue} discarded wl_surface#1703.enter(wl_output#1753) +[2618095.021] {Default Queue} discarded wl_surface#423.enter(wl_output#1753) +[2618095.026] {Default Queue} discarded wl_surface#1447.enter(wl_output#1753) +[2618095.031] {Default Queue} discarded wl_surface#1639.enter(wl_output#1753) +[2618095.036] {Default Queue} discarded wl_surface#1319.enter(wl_output#1753) +[2618095.041] {Default Queue} discarded wl_surface#1127.enter(wl_output#1753) +[2618095.046] {Default Queue} discarded wl_surface#1063.enter(wl_output#1753) +[2618095.051] {Default Queue} discarded wl_surface#455.enter(wl_output#1753) +[2618095.056] {Default Queue} discarded wl_surface#1575.enter(wl_output#1753) +[2618095.061] {Default Queue} discarded wl_surface#1415.enter(wl_output#1753) +[2618095.066] {Default Queue} discarded wl_surface#903.enter(wl_output#1753) +[2618095.071] {Default Queue} discarded wl_surface#775.enter(wl_output#1753) +[2618095.076] {Default Queue} discarded wl_surface#1543.enter(wl_output#1753) +[2618095.081] {Default Queue} discarded wl_surface#135.enter(wl_output#1753) +[2618095.086] {Default Queue} discarded wl_surface#1287.enter(wl_output#1753) +[2618095.091] {Default Queue} discarded wl_surface#1031.enter(wl_output#1753) +[2618095.096] {Default Queue} discarded wl_surface#615.enter(wl_output#1753) +[2618095.100] {Default Queue} discarded wl_surface#231.enter(wl_output#1753) +[2618095.105] {Default Queue} discarded wl_surface#359.enter(wl_output#1753) +[2618095.110] {Default Queue} discarded wl_surface#583.enter(wl_output#1753) +[2618095.115] {Default Queue} discarded wl_surface#743.enter(wl_output#1753) +[2618095.120] {Default Queue} discarded wl_surface#967.enter(wl_output#1753) +[2618095.125] {Default Queue} discarded wl_surface#103.enter(wl_output#1753) +[2618095.130] {Default Queue} discarded wl_surface#327.enter(wl_output#1753) +[2618095.135] {Default Queue} discarded wl_surface#43.enter(wl_output#1753) +[2618095.140] {Default Queue} discarded wl_surface#807.enter(wl_output#1753) +[2618095.144] {Default Queue} discarded wl_surface#19.enter(wl_output#1753) +[2618095.149] {Default Queue} discarded wl_surface#1511.enter(wl_output#1753) +[2618095.154] {Default Queue} discarded wl_surface#199.enter(wl_output#1753) +[2618095.159] {Default Queue} discarded wl_surface#391.enter(wl_output#1753) +[2618095.164] {Default Queue} discarded wl_surface#935.enter(wl_output#1753) +[2618095.169] {Default Queue} discarded wl_surface#1671.enter(wl_output#1753) +[2618095.174] {Default Queue} discarded wl_surface#1351.enter(wl_output#1753) +[2618095.179] {Default Queue} discarded wl_surface#711.enter(wl_output#1753) +[2618095.183] {Default Queue} discarded wl_surface#1223.enter(wl_output#1753) +[2618095.188] {Default Queue} discarded wl_surface#871.enter(wl_output#1753) +[2618095.193] {Default Queue} discarded wl_surface#263.enter(wl_output#1753) +[2618095.198] {Default Queue} discarded wl_surface#551.enter(wl_output#1753) +[2618095.203] {Default Queue} discarded wl_surface#1479.enter(wl_output#1753) +[2618095.208] {Default Queue} discarded wl_surface#647.enter(wl_output#1753) +[2618095.213] {Default Queue} discarded wl_surface#71.enter(wl_output#1753) +[2618095.218] {Default Queue} discarded wl_surface#839.enter(wl_output#1753) +[2618095.223] {Default Queue} discarded wl_surface#1607.enter(wl_output#1753) +[2618095.227] {Default Queue} discarded wl_surface#1095.enter(wl_output#1753) +[2618095.232] {Default Queue} discarded wl_surface#1383.enter(wl_output#1753) +[2618095.241] {Default Queue} discarded wl_surface#487.enter(wl_output#1753) +[2618095.248] {Default Queue} discarded wl_surface#519.enter(wl_output#1753) +[2618095.253] {Default Queue} discarded wl_surface#295.enter(wl_output#1753) +[2618095.258] {Default Queue} discarded wl_surface#167.enter(wl_output#1753) +[2618095.262] {Default Queue} discarded wl_surface#1255.enter(wl_output#1753) +[2618095.267] {Default Queue} discarded wl_surface#679.enter(wl_output#1753) +[2618095.272] {Default Queue} wl_registry#1771.global(1, "wl_compositor", 6) +[2618095.278] {Default Queue} -> wl_registry#1771.bind(1, "wl_compositor", 1, new id [unknown]#1763) +[2618095.284] {Default Queue} wl_registry#1771.global(2, "wl_subcompositor", 1) +[2618095.290] {Default Queue} -> wl_registry#1771.bind(2, "wl_subcompositor", 1, new id [unknown]#1773) +[2618095.296] {Default Queue} wl_registry#1771.global(3, "xdg_wm_base", 6) +[2618095.302] {Default Queue} -> wl_registry#1771.bind(3, "xdg_wm_base", 1, new id [unknown]#1774) +[2618095.307] {Default Queue} wl_registry#1771.global(6, "zwlr_layer_shell_v1", 5) +[2618095.312] {Default Queue} wl_registry#1771.global(7, "ext_session_lock_manager_v1", 1) +[2618095.318] {Default Queue} wl_registry#1771.global(8, "wl_shm", 2) +[2618095.324] {Default Queue} -> wl_registry#1771.bind(8, "wl_shm", 1, new id [unknown]#1775) +[2618095.329] {Default Queue} -> wl_registry#1771.bind(8, "wl_shm", 1, new id [unknown]#1776) +[2618095.334] {Default Queue} -> wl_registry#1771.bind(8, "wl_shm", 1, new id [unknown]#1777) +[2618095.340] {Default Queue} wl_registry#1771.global(9, "zxdg_output_manager_v1", 3) +[2618095.345] {Default Queue} wl_registry#1771.global(10, "wp_fractional_scale_manager_v1", 1) +[2618095.350] {Default Queue} wl_registry#1771.global(11, "zwp_tablet_manager_v2", 1) +[2618095.355] {Default Queue} wl_registry#1771.global(12, "zwp_pointer_gestures_v1", 3) +[2618095.361] {Default Queue} wl_registry#1771.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618095.367] {Default Queue} -> wl_registry#1771.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1778) +[2618095.372] {Default Queue} wl_registry#1771.global(14, "zwp_pointer_constraints_v1", 1) +[2618095.378] {Default Queue} -> wl_registry#1771.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1779) +[2618095.384] {Default Queue} wl_registry#1771.global(15, "ext_idle_notifier_v1", 2) +[2618095.389] {Default Queue} wl_registry#1771.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618095.395] {Default Queue} wl_registry#1771.global(17, "wl_data_device_manager", 3) +[2618095.401] {Default Queue} -> wl_registry#1771.bind(17, "wl_data_device_manager", 2, new id [unknown]#1780) +[2618095.406] {Default Queue} -> wl_data_device_manager#1780.create_data_source(new id wl_data_source#1781) +[2618095.411] {Default Queue} -> wl_data_source#1781.offer("text/plain") +[2618095.417] {Default Queue} -> wl_data_source#1781.offer("text/plain;charset=utf-8") +[2618095.422] {Default Queue} -> wl_data_source#1781.offer("TEXT") +[2618095.427] {Default Queue} -> wl_data_source#1781.offer("STRING") +[2618095.432] {Default Queue} -> wl_data_source#1781.offer("UTF8_STRING") +[2618095.437] {Default Queue} wl_registry#1771.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618095.443] {Default Queue} -> wl_registry#1771.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1782) +[2618095.453] {Default Queue} -> zwp_primary_selection_device_manager_v1#1782.create_source(new id zwp_primary_selection_source_v1#1783) +[2618095.462] {Default Queue} -> zwp_primary_selection_source_v1#1783.offer("text/plain") +[2618095.468] {Default Queue} -> zwp_primary_selection_source_v1#1783.offer("text/plain;charset=utf-8") +[2618095.473] {Default Queue} -> zwp_primary_selection_source_v1#1783.offer("TEXT") +[2618095.478] {Default Queue} -> zwp_primary_selection_source_v1#1783.offer("STRING") +[2618095.483] {Default Queue} -> zwp_primary_selection_source_v1#1783.offer("UTF8_STRING") +[2618095.488] {Default Queue} wl_registry#1771.global(19, "zwlr_data_control_manager_v1", 2) +[2618095.497] {Default Queue} wl_registry#1771.global(20, "ext_data_control_manager_v1", 1) +[2618095.504] {Default Queue} wl_registry#1771.global(21, "wp_presentation", 2) +[2618095.509] {Default Queue} wl_registry#1771.global(22, "wp_security_context_manager_v1", 1) +[2618095.515] {Default Queue} wl_registry#1771.global(23, "zwp_text_input_manager_v3", 1) +[2618095.520] {Default Queue} wl_registry#1771.global(24, "zwp_input_method_manager_v2", 1) +[2618095.526] {Default Queue} wl_registry#1771.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618095.532] {Default Queue} wl_registry#1771.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618095.537] {Default Queue} wl_registry#1771.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618095.542] {Default Queue} wl_registry#1771.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618095.548] {Default Queue} wl_registry#1771.global(29, "ext_workspace_manager_v1", 1) +[2618095.553] {Default Queue} wl_registry#1771.global(30, "zwlr_output_manager_v1", 4) +[2618095.558] {Default Queue} wl_registry#1771.global(31, "zwlr_screencopy_manager_v1", 3) +[2618095.564] {Default Queue} wl_registry#1771.global(32, "wp_viewporter", 1) +[2618095.569] {Default Queue} wl_registry#1771.global(33, "zxdg_exporter_v2", 1) +[2618095.575] {Default Queue} wl_registry#1771.global(34, "zxdg_importer_v2", 1) +[2618095.580] {Default Queue} wl_registry#1771.global(36, "xdg_activation_v1", 1) +[2618095.585] {Default Queue} wl_registry#1771.global(37, "mutter_x11_interop", 1) +[2618095.591] {Default Queue} wl_registry#1771.global(38, "wl_seat", 9) +[2618095.596] {Default Queue} -> wl_registry#1771.bind(38, "wl_seat", 1, new id [unknown]#1784) +[2618095.602] {Default Queue} wl_registry#1771.global(39, "wp_cursor_shape_manager_v1", 2) +[2618095.608] {Default Queue} wl_registry#1771.global(40, "wl_output", 4) +[2618095.613] {Default Queue} -> wl_registry#1771.bind(40, "wl_output", 1, new id [unknown]#1785) +[2618095.619] {Default Queue} wl_callback#1772.done(0) +[2618095.624] {Default Queue} discarded wl_surface#1735.enter(wl_output#18) +[2618095.629] {Default Queue} discarded wl_surface#1735.enter(wl_output#57) +[2618095.634] {Default Queue} discarded wl_surface#1735.enter(wl_output#89) +[2618095.639] {Default Queue} discarded wl_surface#1735.enter(wl_output#121) +[2618095.644] {Default Queue} discarded wl_surface#1735.enter(wl_output#153) +[2618095.650] {Default Queue} discarded wl_surface#1735.enter(wl_output#185) +[2618095.655] {Default Queue} discarded wl_surface#1735.enter(wl_output#217) +[2618095.660] {Default Queue} discarded wl_surface#1735.enter(wl_output#249) +[2618095.665] {Default Queue} discarded wl_surface#1735.enter(wl_output#281) +[2618095.670] {Default Queue} discarded wl_surface#1735.enter(wl_output#313) +[2618095.674] {Default Queue} discarded wl_surface#1735.enter(wl_output#345) +[2618095.679] {Default Queue} discarded wl_surface#1735.enter(wl_output#377) +[2618095.684] {Default Queue} discarded wl_surface#1735.enter(wl_output#409) +[2618095.690] {Default Queue} discarded wl_surface#1735.enter(wl_output#441) +[2618095.695] {Default Queue} discarded wl_surface#1735.enter(wl_output#473) +[2618095.700] {Default Queue} discarded wl_surface#1735.enter(wl_output#505) +[2618095.705] {Default Queue} discarded wl_surface#1735.enter(wl_output#537) +[2618095.710] {Default Queue} discarded wl_surface#1735.enter(wl_output#569) +[2618095.715] {Default Queue} discarded wl_surface#1735.enter(wl_output#601) +[2618095.720] {Default Queue} discarded wl_surface#1735.enter(wl_output#633) +[2618095.725] {Default Queue} discarded wl_surface#1735.enter(wl_output#665) +[2618095.730] {Default Queue} discarded wl_surface#1735.enter(wl_output#697) +[2618095.734] {Default Queue} discarded wl_surface#1735.enter(wl_output#729) +[2618095.739] {Default Queue} discarded wl_surface#1735.enter(wl_output#761) +[2618095.744] {Default Queue} discarded wl_surface#1735.enter(wl_output#793) +[2618095.749] {Default Queue} discarded wl_surface#1735.enter(wl_output#825) +[2618095.754] {Default Queue} discarded wl_surface#1735.enter(wl_output#857) +[2618095.765] {Default Queue} discarded wl_surface#1735.enter(wl_output#889) +[2618095.772] {Default Queue} discarded wl_surface#1735.enter(wl_output#921) +[2618095.778] {Default Queue} discarded wl_surface#1735.enter(wl_output#953) +[2618095.782] {Default Queue} discarded wl_surface#1735.enter(wl_output#985) +[2618095.787] {Default Queue} discarded wl_surface#1735.enter(wl_output#1017) +[2618095.792] {Default Queue} discarded wl_surface#1735.enter(wl_output#1049) +[2618095.797] {Default Queue} discarded wl_surface#1735.enter(wl_output#1081) +[2618095.802] {Default Queue} discarded wl_surface#1735.enter(wl_output#1113) +[2618095.807] {Default Queue} discarded wl_surface#1735.enter(wl_output#1145) +[2618095.812] {Default Queue} discarded wl_surface#1735.enter(wl_output#1177) +[2618095.817] {Default Queue} discarded wl_surface#1735.enter(wl_output#1209) +[2618095.821] {Default Queue} discarded wl_surface#1735.enter(wl_output#1241) +[2618095.827] {Default Queue} discarded wl_surface#1735.enter(wl_output#1273) +[2618095.832] {Default Queue} discarded wl_surface#1735.enter(wl_output#1305) +[2618095.836] {Default Queue} discarded wl_surface#1735.enter(wl_output#1337) +[2618095.841] {Default Queue} discarded wl_surface#1735.enter(wl_output#1369) +[2618095.846] {Default Queue} discarded wl_surface#1735.enter(wl_output#1401) +[2618095.851] {Default Queue} discarded wl_surface#1735.enter(wl_output#1433) +[2618095.856] {Default Queue} discarded wl_surface#1735.enter(wl_output#1465) +[2618095.862] {Default Queue} discarded wl_surface#1735.enter(wl_output#1497) +[2618095.867] {Default Queue} discarded wl_surface#1735.enter(wl_output#1529) +[2618095.881] {Default Queue} discarded wl_surface#1735.enter(wl_output#1561) +[2618095.885] {Default Queue} discarded wl_surface#1735.enter(wl_output#1593) +[2618095.889] {Default Queue} discarded wl_surface#1735.enter(wl_output#1625) +[2618095.894] {Default Queue} discarded wl_surface#1735.enter(wl_output#1657) +[2618095.898] {Default Queue} discarded wl_surface#1735.enter(wl_output#1689) +[2618095.902] {Default Queue} discarded wl_surface#1735.enter(wl_output#1721) +[2618095.906] {Default Queue} discarded wl_surface#1735.enter(wl_output#1753) +[2618095.910] {Default Queue} -> wl_compositor#876.create_surface(new id wl_surface#1772) +[2618095.914] {Default Queue} -> wl_subcompositor#1773.get_subsurface(new id wl_subsurface#1786, wl_surface#1772, wl_surface#871) +[2618095.922] {Default Queue} -> wl_subsurface#1786.set_desync() +[2618095.926] {Default Queue} -> wl_subsurface#1786.set_position(0, 0) +[2618095.931] {Default Queue} -> wl_subsurface#1786.place_above(wl_surface#871) +[2618095.971] {Default Queue} -> wl_shm#1775.create_pool(new id wl_shm_pool#1787, fd 284, 16) +[2618095.978] {Default Queue} -> wl_shm#1775.create_pool(new id wl_shm_pool#1788, fd 285, 16) +[2618095.982] {Default Queue} -> wl_shm_pool#1787.create_buffer(new id wl_buffer#1789, 0, 2, 2, 8, 0) +[2618095.987] {Default Queue} -> wl_shm_pool#1788.create_buffer(new id wl_buffer#1790, 0, 2, 2, 8, 0) +[2618095.995] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) +[2618096.000] {Default Queue} -> wl_surface#1772.commit() +[2618096.005] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) +[2618096.009] {Default Queue} -> wl_surface#1772.commit() +[2618096.015] {Default Queue} -> wl_compositor#1763.create_region(new id wl_region#1791) +[2618096.019] {Default Queue} -> wl_compositor#1763.create_region(new id wl_region#1792) +[2618096.024] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) +[2618096.028] {Default Queue} -> wl_region#1791.add(0, 0, 0, 0) +[2618096.032] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618096.037] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618096.041] {Default Queue} -> wl_surface#1772.damage(0, 0, 2, 2) +[2618096.045] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) +[2618096.052] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) +[2618096.057] {Default Queue} -> wl_surface#1772.commit() +[2618096.089] {Default Queue} -> wl_shm#1777.create_pool(new id wl_shm_pool#1793, fd 288, 640) +[2618096.099] {Default Queue} -> wl_shm#1777.create_pool(new id wl_shm_pool#1794, fd 289, 640) +[2618096.106] {Default Queue} -> wl_shm_pool#1793.create_buffer(new id wl_buffer#1795, 0, 10, 16, 40, 0) +[2618096.110] {Default Queue} -> wl_shm_pool#1794.create_buffer(new id wl_buffer#1796, 0, 10, 16, 40, 0) +[2618096.117] {Default Queue} -> wl_compositor#1763.create_surface(new id wl_surface#1797) +[2618096.121] {Default Queue} -> wl_surface#1797.attach(wl_buffer#1795, 0, 0) +[2618096.126] {Default Queue} -> wl_surface#1797.commit() +[2618096.131] {Default Queue} -> wl_surface#1797.attach(wl_buffer#1795, 0, 0) +[2618096.136] {Default Queue} -> wl_surface#1797.commit() +[2618096.140] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) +[2618096.145] {Default Queue} -> wl_surface#1772.damage(0, 0, 2, 2) +[2618096.150] {Default Queue} -> wl_surface#1772.damage(0, 0, 2, 2) +[2618096.157] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1798) +[2618096.162] {Default Queue} -> wl_display#1.sync(new id wl_callback#1799) +[2618099.213] {Display Queue} wl_display#1.delete_id(1799) +[2618099.223] {Default Queue} wl_keyboard#1765.keymap(1, fd 284, 68213) +[2618099.229] {Default Queue} wl_keyboard#1765.enter(566, wl_surface#19, array[0]) +[2618099.235] {Default Queue} wl_keyboard#1765.modifiers(566, 0, 0, 16, 0) +[2618099.241] {Default Queue} discarded wl_shm#1775.format(875709016) +[2618099.246] {Default Queue} discarded wl_shm#1775.format(1) +[2618099.251] {Default Queue} discarded wl_shm#1775.format(0) +[2618099.256] {Default Queue} discarded wl_shm#1775.format(875708993) +[2618099.261] {Default Queue} discarded wl_shm#1776.format(875709016) +[2618099.266] {Default Queue} discarded wl_shm#1776.format(1) +[2618099.271] {Default Queue} discarded wl_shm#1776.format(0) +[2618099.275] {Default Queue} discarded wl_shm#1776.format(875708993) +[2618099.280] {Default Queue} discarded wl_shm#1777.format(875709016) +[2618099.286] {Default Queue} discarded wl_shm#1777.format(1) +[2618099.291] {Default Queue} discarded wl_shm#1777.format(0) +[2618099.295] {Default Queue} discarded wl_shm#1777.format(875708993) +[2618099.300] {Default Queue} wl_seat#1784.capabilities(7) +[2618099.306] {Default Queue} -> wl_seat#1784.get_keyboard(new id wl_keyboard#1800) +[2618099.311] {Default Queue} -> wl_seat#1784.get_pointer(new id wl_pointer#1801) +[2618099.317] {Default Queue} -> wl_data_device_manager#1780.get_data_device(new id wl_data_device#1802, wl_seat#1784) +[2618099.323] {Default Queue} -> zwp_primary_selection_device_manager_v1#1782.get_device(new id zwp_primary_selection_device_v1#1803, wl_seat#1784) +[2618099.333] {Default Queue} wl_output#1785.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618099.339] {Default Queue} wl_output#1785.mode(3, 1280, 800, 60000) +[2618099.344] {Default Queue} discarded wl_surface#3.enter(wl_output#1785) +[2618099.349] {Default Queue} discarded wl_surface#999.enter(wl_output#1785) +[2618099.354] {Default Queue} discarded wl_surface#1191.enter(wl_output#1785) +[2618099.359] {Default Queue} discarded wl_surface#1159.enter(wl_output#1785) +[2618099.364] {Default Queue} discarded wl_surface#1703.enter(wl_output#1785) +[2618099.369] {Default Queue} discarded wl_surface#423.enter(wl_output#1785) +[2618099.374] {Default Queue} discarded wl_surface#1447.enter(wl_output#1785) +[2618099.379] {Default Queue} discarded wl_surface#1639.enter(wl_output#1785) +[2618099.383] {Default Queue} discarded wl_surface#1319.enter(wl_output#1785) +[2618099.388] {Default Queue} discarded wl_surface#1127.enter(wl_output#1785) +[2618099.393] {Default Queue} discarded wl_surface#1063.enter(wl_output#1785) +[2618099.398] {Default Queue} discarded wl_surface#455.enter(wl_output#1785) +[2618099.403] {Default Queue} discarded wl_surface#1575.enter(wl_output#1785) +[2618099.408] {Default Queue} discarded wl_surface#1415.enter(wl_output#1785) +[2618099.413] {Default Queue} discarded wl_surface#903.enter(wl_output#1785) +[2618099.418] {Default Queue} discarded wl_surface#775.enter(wl_output#1785) +[2618099.429] {Default Queue} discarded wl_surface#1543.enter(wl_output#1785) +[2618099.437] {Default Queue} discarded wl_surface#135.enter(wl_output#1785) +[2618099.442] {Default Queue} discarded wl_surface#1287.enter(wl_output#1785) +[2618099.447] {Default Queue} discarded wl_surface#1031.enter(wl_output#1785) +[2618099.452] {Default Queue} discarded wl_surface#615.enter(wl_output#1785) +[2618099.457] {Default Queue} discarded wl_surface#231.enter(wl_output#1785) +[2618099.462] {Default Queue} discarded wl_surface#359.enter(wl_output#1785) +[2618099.467] {Default Queue} discarded wl_surface#583.enter(wl_output#1785) +[2618099.472] {Default Queue} discarded wl_surface#743.enter(wl_output#1785) +[2618099.478] {Default Queue} discarded wl_surface#967.enter(wl_output#1785) +[2618099.483] {Default Queue} discarded wl_surface#103.enter(wl_output#1785) +[2618099.487] {Default Queue} discarded wl_surface#327.enter(wl_output#1785) +[2618099.492] {Default Queue} discarded wl_surface#43.enter(wl_output#1785) +[2618099.497] {Default Queue} discarded wl_surface#807.enter(wl_output#1785) +[2618099.502] {Default Queue} discarded wl_surface#19.enter(wl_output#1785) +[2618099.507] {Default Queue} discarded wl_surface#1511.enter(wl_output#1785) +[2618099.512] {Default Queue} discarded wl_surface#199.enter(wl_output#1785) +[2618099.517] {Default Queue} discarded wl_surface#391.enter(wl_output#1785) +[2618099.522] {Default Queue} discarded wl_surface#935.enter(wl_output#1785) +[2618099.527] {Default Queue} discarded wl_surface#1671.enter(wl_output#1785) +[2618099.532] {Default Queue} discarded wl_surface#1351.enter(wl_output#1785) +[2618099.537] {Default Queue} discarded wl_surface#711.enter(wl_output#1785) +[2618099.542] {Default Queue} discarded wl_surface#1223.enter(wl_output#1785) +[2618099.547] {Default Queue} discarded wl_surface#871.enter(wl_output#1785) +[2618099.552] {Default Queue} discarded wl_surface#263.enter(wl_output#1785) +[2618099.557] {Default Queue} discarded wl_surface#551.enter(wl_output#1785) +[2618099.561] {Default Queue} discarded wl_surface#1735.enter(wl_output#1785) +[2618099.566] {Default Queue} discarded wl_surface#1479.enter(wl_output#1785) +[2618099.571] {Default Queue} discarded wl_surface#647.enter(wl_output#1785) +[2618099.577] {Default Queue} discarded wl_surface#71.enter(wl_output#1785) +[2618099.582] {Default Queue} discarded wl_surface#839.enter(wl_output#1785) +[2618099.587] {Default Queue} discarded wl_surface#1607.enter(wl_output#1785) +[2618099.591] {Default Queue} discarded wl_surface#1095.enter(wl_output#1785) +[2618099.597] {Default Queue} discarded wl_surface#1383.enter(wl_output#1785) +[2618099.602] {Default Queue} discarded wl_surface#487.enter(wl_output#1785) +[2618099.607] {Default Queue} discarded wl_surface#519.enter(wl_output#1785) +[2618099.612] {Default Queue} discarded wl_surface#295.enter(wl_output#1785) +[2618099.617] {Default Queue} discarded wl_surface#167.enter(wl_output#1785) +[2618099.622] {Default Queue} discarded wl_surface#1255.enter(wl_output#1785) +[2618099.627] {Default Queue} discarded wl_surface#679.enter(wl_output#1785) +[2618099.632] {Default Queue} wl_registry#1798.global(1, "wl_compositor", 6) +[2618099.638] {Default Queue} -> wl_registry#1798.bind(1, "wl_compositor", 1, new id [unknown]#1804) +[2618099.644] {Default Queue} wl_registry#1798.global(2, "wl_subcompositor", 1) +[2618099.650] {Default Queue} -> wl_registry#1798.bind(2, "wl_subcompositor", 1, new id [unknown]#1805) +[2618099.656] {Default Queue} wl_registry#1798.global(3, "xdg_wm_base", 6) +[2618099.662] {Default Queue} -> wl_registry#1798.bind(3, "xdg_wm_base", 1, new id [unknown]#1806) +[2618099.667] {Default Queue} wl_registry#1798.global(6, "zwlr_layer_shell_v1", 5) +[2618099.673] {Default Queue} wl_registry#1798.global(7, "ext_session_lock_manager_v1", 1) +[2618099.678] {Default Queue} wl_registry#1798.global(8, "wl_shm", 2) +[2618099.687] {Default Queue} -> wl_registry#1798.bind(8, "wl_shm", 1, new id [unknown]#1807) +[2618099.692] {Default Queue} -> wl_registry#1798.bind(8, "wl_shm", 1, new id [unknown]#1808) +[2618099.698] {Default Queue} -> wl_registry#1798.bind(8, "wl_shm", 1, new id [unknown]#1809) +[2618099.707] {Default Queue} wl_registry#1798.global(9, "zxdg_output_manager_v1", 3) +[2618099.714] {Default Queue} wl_registry#1798.global(10, "wp_fractional_scale_manager_v1", 1) +[2618099.719] {Default Queue} wl_registry#1798.global(11, "zwp_tablet_manager_v2", 1) +[2618099.725] {Default Queue} wl_registry#1798.global(12, "zwp_pointer_gestures_v1", 3) +[2618099.730] {Default Queue} wl_registry#1798.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618099.736] {Default Queue} -> wl_registry#1798.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1810) +[2618099.741] {Default Queue} wl_registry#1798.global(14, "zwp_pointer_constraints_v1", 1) +[2618099.747] {Default Queue} -> wl_registry#1798.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1811) +[2618099.752] {Default Queue} wl_registry#1798.global(15, "ext_idle_notifier_v1", 2) +[2618099.759] {Default Queue} wl_registry#1798.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618099.764] {Default Queue} wl_registry#1798.global(17, "wl_data_device_manager", 3) +[2618099.770] {Default Queue} -> wl_registry#1798.bind(17, "wl_data_device_manager", 2, new id [unknown]#1812) +[2618099.776] {Default Queue} -> wl_data_device_manager#1812.create_data_source(new id wl_data_source#1813) +[2618099.781] {Default Queue} -> wl_data_source#1813.offer("text/plain") +[2618099.786] {Default Queue} -> wl_data_source#1813.offer("text/plain;charset=utf-8") +[2618099.791] {Default Queue} -> wl_data_source#1813.offer("TEXT") +[2618099.797] {Default Queue} -> wl_data_source#1813.offer("STRING") +[2618099.802] {Default Queue} -> wl_data_source#1813.offer("UTF8_STRING") +[2618099.807] {Default Queue} wl_registry#1798.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618099.813] {Default Queue} -> wl_registry#1798.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1814) +[2618099.823] {Default Queue} -> zwp_primary_selection_device_manager_v1#1814.create_source(new id zwp_primary_selection_source_v1#1815) +[2618099.833] {Default Queue} -> zwp_primary_selection_source_v1#1815.offer("text/plain") +[2618099.838] {Default Queue} -> zwp_primary_selection_source_v1#1815.offer("text/plain;charset=utf-8") +[2618099.843] {Default Queue} -> zwp_primary_selection_source_v1#1815.offer("TEXT") +[2618099.848] {Default Queue} -> zwp_primary_selection_source_v1#1815.offer("STRING") +[2618099.853] {Default Queue} -> zwp_primary_selection_source_v1#1815.offer("UTF8_STRING") +[2618099.858] {Default Queue} wl_registry#1798.global(19, "zwlr_data_control_manager_v1", 2) +[2618099.869] {Default Queue} wl_registry#1798.global(20, "ext_data_control_manager_v1", 1) +[2618099.875] {Default Queue} wl_registry#1798.global(21, "wp_presentation", 2) +[2618099.881] {Default Queue} wl_registry#1798.global(22, "wp_security_context_manager_v1", 1) +[2618099.886] {Default Queue} wl_registry#1798.global(23, "zwp_text_input_manager_v3", 1) +[2618099.891] {Default Queue} wl_registry#1798.global(24, "zwp_input_method_manager_v2", 1) +[2618099.895] {Default Queue} wl_registry#1798.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618099.899] {Default Queue} wl_registry#1798.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618099.904] {Default Queue} wl_registry#1798.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618099.908] {Default Queue} wl_registry#1798.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618099.913] {Default Queue} wl_registry#1798.global(29, "ext_workspace_manager_v1", 1) +[2618099.917] {Default Queue} wl_registry#1798.global(30, "zwlr_output_manager_v1", 4) +[2618099.922] {Default Queue} wl_registry#1798.global(31, "zwlr_screencopy_manager_v1", 3) +[2618099.926] {Default Queue} wl_registry#1798.global(32, "wp_viewporter", 1) +[2618099.930] {Default Queue} wl_registry#1798.global(33, "zxdg_exporter_v2", 1) +[2618099.935] {Default Queue} wl_registry#1798.global(34, "zxdg_importer_v2", 1) +[2618099.939] {Default Queue} wl_registry#1798.global(36, "xdg_activation_v1", 1) +[2618099.943] {Default Queue} wl_registry#1798.global(37, "mutter_x11_interop", 1) +[2618099.957] {Default Queue} wl_registry#1798.global(38, "wl_seat", 9) +[2618099.963] {Default Queue} -> wl_registry#1798.bind(38, "wl_seat", 1, new id [unknown]#1816) +[2618099.968] {Default Queue} wl_registry#1798.global(39, "wp_cursor_shape_manager_v1", 2) +[2618099.972] {Default Queue} wl_registry#1798.global(40, "wl_output", 4) +[2618099.976] {Default Queue} -> wl_registry#1798.bind(40, "wl_output", 1, new id [unknown]#1817) +[2618099.981] {Default Queue} wl_callback#1799.done(0) +[2618099.985] {Default Queue} discarded wl_surface#1772.enter(wl_output#18) +[2618099.989] {Default Queue} discarded wl_surface#1772.enter(wl_output#57) +[2618099.993] {Default Queue} discarded wl_surface#1772.enter(wl_output#89) +[2618099.997] {Default Queue} discarded wl_surface#1772.enter(wl_output#121) +[2618100.001] {Default Queue} discarded wl_surface#1772.enter(wl_output#153) +[2618100.005] {Default Queue} discarded wl_surface#1772.enter(wl_output#185) +[2618100.009] {Default Queue} discarded wl_surface#1772.enter(wl_output#217) +[2618100.013] {Default Queue} discarded wl_surface#1772.enter(wl_output#249) +[2618100.017] {Default Queue} discarded wl_surface#1772.enter(wl_output#281) +[2618100.021] {Default Queue} discarded wl_surface#1772.enter(wl_output#313) +[2618100.024] {Default Queue} discarded wl_surface#1772.enter(wl_output#345) +[2618100.028] {Default Queue} discarded wl_surface#1772.enter(wl_output#377) +[2618100.033] {Default Queue} discarded wl_surface#1772.enter(wl_output#409) +[2618100.037] {Default Queue} discarded wl_surface#1772.enter(wl_output#441) +[2618100.041] {Default Queue} discarded wl_surface#1772.enter(wl_output#473) +[2618100.045] {Default Queue} discarded wl_surface#1772.enter(wl_output#505) +[2618100.049] {Default Queue} discarded wl_surface#1772.enter(wl_output#537) +[2618100.053] {Default Queue} discarded wl_surface#1772.enter(wl_output#569) +[2618100.057] {Default Queue} discarded wl_surface#1772.enter(wl_output#601) +[2618100.061] {Default Queue} discarded wl_surface#1772.enter(wl_output#633) +[2618100.065] {Default Queue} discarded wl_surface#1772.enter(wl_output#665) +[2618100.069] {Default Queue} discarded wl_surface#1772.enter(wl_output#697) +[2618100.073] {Default Queue} discarded wl_surface#1772.enter(wl_output#729) +[2618100.077] {Default Queue} discarded wl_surface#1772.enter(wl_output#761) +[2618100.081] {Default Queue} discarded wl_surface#1772.enter(wl_output#793) +[2618100.085] {Default Queue} discarded wl_surface#1772.enter(wl_output#825) +[2618100.089] {Default Queue} discarded wl_surface#1772.enter(wl_output#857) +[2618100.093] {Default Queue} discarded wl_surface#1772.enter(wl_output#889) +[2618100.097] {Default Queue} discarded wl_surface#1772.enter(wl_output#921) +[2618100.101] {Default Queue} discarded wl_surface#1772.enter(wl_output#953) +[2618100.105] {Default Queue} discarded wl_surface#1772.enter(wl_output#985) +[2618100.109] {Default Queue} discarded wl_surface#1772.enter(wl_output#1017) +[2618100.113] {Default Queue} discarded wl_surface#1772.enter(wl_output#1049) +[2618100.117] {Default Queue} discarded wl_surface#1772.enter(wl_output#1081) +[2618100.121] {Default Queue} discarded wl_surface#1772.enter(wl_output#1113) +[2618100.125] {Default Queue} discarded wl_surface#1772.enter(wl_output#1145) +[2618100.129] {Default Queue} discarded wl_surface#1772.enter(wl_output#1177) +[2618100.133] {Default Queue} discarded wl_surface#1772.enter(wl_output#1209) +[2618100.137] {Default Queue} discarded wl_surface#1772.enter(wl_output#1241) +[2618100.141] {Default Queue} discarded wl_surface#1772.enter(wl_output#1273) +[2618100.145] {Default Queue} discarded wl_surface#1772.enter(wl_output#1305) +[2618100.149] {Default Queue} discarded wl_surface#1772.enter(wl_output#1337) +[2618100.153] {Default Queue} discarded wl_surface#1772.enter(wl_output#1369) +[2618100.157] {Default Queue} discarded wl_surface#1772.enter(wl_output#1401) +[2618100.161] {Default Queue} discarded wl_surface#1772.enter(wl_output#1433) +[2618100.164] {Default Queue} discarded wl_surface#1772.enter(wl_output#1465) +[2618100.171] {Default Queue} discarded wl_surface#1772.enter(wl_output#1497) +[2618100.177] {Default Queue} discarded wl_surface#1772.enter(wl_output#1529) +[2618100.180] {Default Queue} discarded wl_surface#1772.enter(wl_output#1561) +[2618100.184] {Default Queue} discarded wl_surface#1772.enter(wl_output#1593) +[2618100.189] {Default Queue} discarded wl_surface#1772.enter(wl_output#1625) +[2618100.193] {Default Queue} discarded wl_surface#1772.enter(wl_output#1657) +[2618100.196] {Default Queue} discarded wl_surface#1772.enter(wl_output#1689) +[2618100.200] {Default Queue} discarded wl_surface#1772.enter(wl_output#1721) +[2618100.204] {Default Queue} discarded wl_surface#1772.enter(wl_output#1753) +[2618100.208] {Default Queue} discarded wl_surface#1772.enter(wl_output#1785) +[2618100.212] {Default Queue} -> wl_compositor#1763.create_surface(new id wl_surface#1799) +[2618100.217] {Default Queue} -> wl_subcompositor#1805.get_subsurface(new id wl_subsurface#1818, wl_surface#1799, wl_surface#1772) +[2618100.225] {Default Queue} -> wl_subsurface#1818.set_desync() +[2618100.229] {Default Queue} -> wl_subsurface#1818.set_position(0, 0) +[2618100.233] {Default Queue} -> wl_subsurface#1818.place_above(wl_surface#1772) +[2618100.274] {Default Queue} -> wl_shm#1807.create_pool(new id wl_shm_pool#1819, fd 289, 16) +[2618100.281] {Default Queue} -> wl_shm#1807.create_pool(new id wl_shm_pool#1820, fd 290, 16) +[2618100.285] {Default Queue} -> wl_shm_pool#1819.create_buffer(new id wl_buffer#1821, 0, 2, 2, 8, 0) +[2618100.290] {Default Queue} -> wl_shm_pool#1820.create_buffer(new id wl_buffer#1822, 0, 2, 2, 8, 0) +[2618100.297] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1821, 0, 0) +[2618100.302] {Default Queue} -> wl_surface#1799.commit() +[2618100.307] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1821, 0, 0) +[2618100.312] {Default Queue} -> wl_surface#1799.commit() +[2618100.316] {Default Queue} -> wl_compositor#1804.create_region(new id wl_region#1823) +[2618100.320] {Default Queue} -> wl_compositor#1804.create_region(new id wl_region#1824) +[2618100.324] {Default Queue} -> wl_region#1823.subtract(0, 0, 2, 2) +[2618100.328] {Default Queue} -> wl_region#1823.add(0, 0, 0, 0) +[2618100.333] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) +[2618100.337] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) +[2618100.341] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) +[2618100.345] {Default Queue} -> wl_surface#1772.damage(0, 0, 2, 2) +[2618100.352] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1821, 0, 0) +[2618100.357] {Default Queue} -> wl_surface#1799.commit() +[2618100.391] {Default Queue} -> wl_shm#1809.create_pool(new id wl_shm_pool#1825, fd 293, 640) +[2618100.397] {Default Queue} -> wl_shm#1809.create_pool(new id wl_shm_pool#1826, fd 294, 640) +[2618100.401] {Default Queue} -> wl_shm_pool#1825.create_buffer(new id wl_buffer#1827, 0, 10, 16, 40, 0) +[2618100.406] {Default Queue} -> wl_shm_pool#1826.create_buffer(new id wl_buffer#1828, 0, 10, 16, 40, 0) +[2618100.413] {Default Queue} -> wl_compositor#1804.create_surface(new id wl_surface#1829) +[2618100.417] {Default Queue} -> wl_surface#1829.attach(wl_buffer#1827, 0, 0) +[2618100.421] {Default Queue} -> wl_surface#1829.commit() +[2618100.426] {Default Queue} -> wl_surface#1829.attach(wl_buffer#1827, 0, 0) +[2618100.430] {Default Queue} -> wl_surface#1829.commit() +[2618100.436] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) +[2618100.443] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1830) +[2618100.447] {Default Queue} -> wl_display#1.sync(new id wl_callback#1831) +[2618104.412] {Display Queue} wl_display#1.delete_id(1831) +[2618104.421] {Default Queue} wl_keyboard#1800.keymap(1, fd 289, 68213) +[2618104.427] {Default Queue} wl_keyboard#1800.enter(566, wl_surface#19, array[0]) +[2618104.434] {Default Queue} wl_keyboard#1800.modifiers(566, 0, 0, 16, 0) +[2618104.439] {Default Queue} discarded wl_shm#1807.format(875709016) +[2618104.444] {Default Queue} discarded wl_shm#1807.format(1) +[2618104.449] {Default Queue} discarded wl_shm#1807.format(0) +[2618104.459] {Default Queue} discarded wl_shm#1807.format(875708993) +[2618104.466] {Default Queue} discarded wl_shm#1808.format(875709016) +[2618104.471] {Default Queue} discarded wl_shm#1808.format(1) +[2618104.476] {Default Queue} discarded wl_shm#1808.format(0) +[2618104.481] {Default Queue} discarded wl_shm#1808.format(875708993) +[2618104.486] {Default Queue} discarded wl_shm#1809.format(875709016) +[2618104.491] {Default Queue} discarded wl_shm#1809.format(1) +[2618104.496] {Default Queue} discarded wl_shm#1809.format(0) +[2618104.501] {Default Queue} discarded wl_shm#1809.format(875708993) +[2618104.505] {Default Queue} wl_seat#1816.capabilities(7) +[2618104.511] {Default Queue} -> wl_seat#1816.get_keyboard(new id wl_keyboard#1832) +[2618104.516] {Default Queue} -> wl_seat#1816.get_pointer(new id wl_pointer#1833) +[2618104.522] {Default Queue} -> wl_data_device_manager#1812.get_data_device(new id wl_data_device#1834, wl_seat#1816) +[2618104.528] {Default Queue} -> zwp_primary_selection_device_manager_v1#1814.get_device(new id zwp_primary_selection_device_v1#1835, wl_seat#1816) +[2618104.537] {Default Queue} wl_output#1817.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618104.543] {Default Queue} wl_output#1817.mode(3, 1280, 800, 60000) +[2618104.549] {Default Queue} discarded wl_surface#3.enter(wl_output#1817) +[2618104.554] {Default Queue} discarded wl_surface#999.enter(wl_output#1817) +[2618104.559] {Default Queue} discarded wl_surface#1191.enter(wl_output#1817) +[2618104.564] {Default Queue} discarded wl_surface#1159.enter(wl_output#1817) +[2618104.568] {Default Queue} discarded wl_surface#1703.enter(wl_output#1817) +[2618104.573] {Default Queue} discarded wl_surface#423.enter(wl_output#1817) +[2618104.578] {Default Queue} discarded wl_surface#1447.enter(wl_output#1817) +[2618104.583] {Default Queue} discarded wl_surface#1639.enter(wl_output#1817) +[2618104.588] {Default Queue} discarded wl_surface#1319.enter(wl_output#1817) +[2618104.592] {Default Queue} discarded wl_surface#1127.enter(wl_output#1817) +[2618104.597] {Default Queue} discarded wl_surface#1063.enter(wl_output#1817) +[2618104.602] {Default Queue} discarded wl_surface#455.enter(wl_output#1817) +[2618104.607] {Default Queue} discarded wl_surface#1575.enter(wl_output#1817) +[2618104.611] {Default Queue} discarded wl_surface#1415.enter(wl_output#1817) +[2618104.617] {Default Queue} discarded wl_surface#903.enter(wl_output#1817) +[2618104.621] {Default Queue} discarded wl_surface#775.enter(wl_output#1817) +[2618104.626] {Default Queue} discarded wl_surface#1543.enter(wl_output#1817) +[2618104.631] {Default Queue} discarded wl_surface#135.enter(wl_output#1817) +[2618104.636] {Default Queue} discarded wl_surface#1287.enter(wl_output#1817) +[2618104.640] {Default Queue} discarded wl_surface#1031.enter(wl_output#1817) +[2618104.645] {Default Queue} discarded wl_surface#615.enter(wl_output#1817) +[2618104.650] {Default Queue} discarded wl_surface#231.enter(wl_output#1817) +[2618104.655] {Default Queue} discarded wl_surface#359.enter(wl_output#1817) +[2618104.660] {Default Queue} discarded wl_surface#583.enter(wl_output#1817) +[2618104.664] {Default Queue} discarded wl_surface#743.enter(wl_output#1817) +[2618104.669] {Default Queue} discarded wl_surface#967.enter(wl_output#1817) +[2618104.674] {Default Queue} discarded wl_surface#103.enter(wl_output#1817) +[2618104.679] {Default Queue} discarded wl_surface#327.enter(wl_output#1817) +[2618104.684] {Default Queue} discarded wl_surface#43.enter(wl_output#1817) +[2618104.689] {Default Queue} discarded wl_surface#807.enter(wl_output#1817) +[2618104.694] {Default Queue} discarded wl_surface#19.enter(wl_output#1817) +[2618104.699] {Default Queue} discarded wl_surface#1511.enter(wl_output#1817) +[2618104.704] {Default Queue} discarded wl_surface#199.enter(wl_output#1817) +[2618104.709] {Default Queue} discarded wl_surface#391.enter(wl_output#1817) +[2618104.714] {Default Queue} discarded wl_surface#935.enter(wl_output#1817) +[2618104.719] {Default Queue} discarded wl_surface#1671.enter(wl_output#1817) +[2618104.723] {Default Queue} discarded wl_surface#1351.enter(wl_output#1817) +[2618104.736] {Default Queue} discarded wl_surface#711.enter(wl_output#1817) +[2618104.742] {Default Queue} discarded wl_surface#1223.enter(wl_output#1817) +[2618104.747] {Default Queue} discarded wl_surface#871.enter(wl_output#1817) +[2618104.752] {Default Queue} discarded wl_surface#263.enter(wl_output#1817) +[2618104.757] {Default Queue} discarded wl_surface#551.enter(wl_output#1817) +[2618104.762] {Default Queue} discarded wl_surface#1735.enter(wl_output#1817) +[2618104.767] {Default Queue} discarded wl_surface#1479.enter(wl_output#1817) +[2618104.772] {Default Queue} discarded wl_surface#1772.enter(wl_output#1817) +[2618104.776] {Default Queue} discarded wl_surface#647.enter(wl_output#1817) +[2618104.781] {Default Queue} discarded wl_surface#71.enter(wl_output#1817) +[2618104.786] {Default Queue} discarded wl_surface#839.enter(wl_output#1817) +[2618104.791] {Default Queue} discarded wl_surface#1607.enter(wl_output#1817) +[2618104.796] {Default Queue} discarded wl_surface#1095.enter(wl_output#1817) +[2618104.801] {Default Queue} discarded wl_surface#1383.enter(wl_output#1817) +[2618104.806] {Default Queue} discarded wl_surface#487.enter(wl_output#1817) +[2618104.810] {Default Queue} discarded wl_surface#519.enter(wl_output#1817) +[2618104.816] {Default Queue} discarded wl_surface#295.enter(wl_output#1817) +[2618104.820] {Default Queue} discarded wl_surface#167.enter(wl_output#1817) +[2618104.825] {Default Queue} discarded wl_surface#1255.enter(wl_output#1817) +[2618104.830] {Default Queue} discarded wl_surface#679.enter(wl_output#1817) +[2618104.835] {Default Queue} wl_registry#1830.global(1, "wl_compositor", 6) +[2618104.841] {Default Queue} -> wl_registry#1830.bind(1, "wl_compositor", 1, new id [unknown]#1836) +[2618104.847] {Default Queue} wl_registry#1830.global(2, "wl_subcompositor", 1) +[2618104.853] {Default Queue} -> wl_registry#1830.bind(2, "wl_subcompositor", 1, new id [unknown]#1837) +[2618104.859] {Default Queue} wl_registry#1830.global(3, "xdg_wm_base", 6) +[2618104.869] {Default Queue} -> wl_registry#1830.bind(3, "xdg_wm_base", 1, new id [unknown]#1838) +[2618104.877] {Default Queue} wl_registry#1830.global(6, "zwlr_layer_shell_v1", 5) +[2618104.883] {Default Queue} wl_registry#1830.global(7, "ext_session_lock_manager_v1", 1) +[2618104.888] {Default Queue} wl_registry#1830.global(8, "wl_shm", 2) +[2618104.894] {Default Queue} -> wl_registry#1830.bind(8, "wl_shm", 1, new id [unknown]#1839) +[2618104.899] {Default Queue} -> wl_registry#1830.bind(8, "wl_shm", 1, new id [unknown]#1840) +[2618104.903] {Default Queue} -> wl_registry#1830.bind(8, "wl_shm", 1, new id [unknown]#1841) +[2618104.907] {Default Queue} wl_registry#1830.global(9, "zxdg_output_manager_v1", 3) +[2618104.911] {Default Queue} wl_registry#1830.global(10, "wp_fractional_scale_manager_v1", 1) +[2618104.916] {Default Queue} wl_registry#1830.global(11, "zwp_tablet_manager_v2", 1) +[2618104.920] {Default Queue} wl_registry#1830.global(12, "zwp_pointer_gestures_v1", 3) +[2618104.924] {Default Queue} wl_registry#1830.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618104.929] {Default Queue} -> wl_registry#1830.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1842) +[2618104.933] {Default Queue} wl_registry#1830.global(14, "zwp_pointer_constraints_v1", 1) +[2618104.938] {Default Queue} -> wl_registry#1830.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1843) +[2618104.942] {Default Queue} wl_registry#1830.global(15, "ext_idle_notifier_v1", 2) +[2618104.946] {Default Queue} wl_registry#1830.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618104.951] {Default Queue} wl_registry#1830.global(17, "wl_data_device_manager", 3) +[2618104.956] {Default Queue} -> wl_registry#1830.bind(17, "wl_data_device_manager", 2, new id [unknown]#1844) +[2618104.960] {Default Queue} -> wl_data_device_manager#1844.create_data_source(new id wl_data_source#1845) +[2618104.965] {Default Queue} -> wl_data_source#1845.offer("text/plain") +[2618104.969] {Default Queue} -> wl_data_source#1845.offer("text/plain;charset=utf-8") +[2618104.976] {Default Queue} -> wl_data_source#1845.offer("TEXT") +[2618104.981] {Default Queue} -> wl_data_source#1845.offer("STRING") +[2618104.986] {Default Queue} -> wl_data_source#1845.offer("UTF8_STRING") +[2618104.990] {Default Queue} wl_registry#1830.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618104.994] {Default Queue} -> wl_registry#1830.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1846) +[2618105.002] {Default Queue} -> zwp_primary_selection_device_manager_v1#1846.create_source(new id zwp_primary_selection_source_v1#1847) +[2618105.010] {Default Queue} -> zwp_primary_selection_source_v1#1847.offer("text/plain") +[2618105.014] {Default Queue} -> zwp_primary_selection_source_v1#1847.offer("text/plain;charset=utf-8") +[2618105.018] {Default Queue} -> zwp_primary_selection_source_v1#1847.offer("TEXT") +[2618105.022] {Default Queue} -> zwp_primary_selection_source_v1#1847.offer("STRING") +[2618105.026] {Default Queue} -> zwp_primary_selection_source_v1#1847.offer("UTF8_STRING") +[2618105.030] {Default Queue} wl_registry#1830.global(19, "zwlr_data_control_manager_v1", 2) +[2618105.035] {Default Queue} wl_registry#1830.global(20, "ext_data_control_manager_v1", 1) +[2618105.039] {Default Queue} wl_registry#1830.global(21, "wp_presentation", 2) +[2618105.043] {Default Queue} wl_registry#1830.global(22, "wp_security_context_manager_v1", 1) +[2618105.048] {Default Queue} wl_registry#1830.global(23, "zwp_text_input_manager_v3", 1) +[2618105.052] {Default Queue} wl_registry#1830.global(24, "zwp_input_method_manager_v2", 1) +[2618105.056] {Default Queue} wl_registry#1830.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618105.061] {Default Queue} wl_registry#1830.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618105.065] {Default Queue} wl_registry#1830.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618105.069] {Default Queue} wl_registry#1830.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618105.074] {Default Queue} wl_registry#1830.global(29, "ext_workspace_manager_v1", 1) +[2618105.078] {Default Queue} wl_registry#1830.global(30, "zwlr_output_manager_v1", 4) +[2618105.082] {Default Queue} wl_registry#1830.global(31, "zwlr_screencopy_manager_v1", 3) +[2618105.087] {Default Queue} wl_registry#1830.global(32, "wp_viewporter", 1) +[2618105.091] {Default Queue} wl_registry#1830.global(33, "zxdg_exporter_v2", 1) +[2618105.095] {Default Queue} wl_registry#1830.global(34, "zxdg_importer_v2", 1) +[2618105.100] {Default Queue} wl_registry#1830.global(36, "xdg_activation_v1", 1) +[2618105.104] {Default Queue} wl_registry#1830.global(37, "mutter_x11_interop", 1) +[2618105.108] {Default Queue} wl_registry#1830.global(38, "wl_seat", 9) +[2618105.113] {Default Queue} -> wl_registry#1830.bind(38, "wl_seat", 1, new id [unknown]#1848) +[2618105.117] {Default Queue} wl_registry#1830.global(39, "wp_cursor_shape_manager_v1", 2) +[2618105.122] {Default Queue} wl_registry#1830.global(40, "wl_output", 4) +[2618105.127] {Default Queue} -> wl_registry#1830.bind(40, "wl_output", 1, new id [unknown]#1849) +[2618105.131] {Default Queue} wl_callback#1831.done(0) +[2618105.136] {Default Queue} discarded wl_surface#1799.enter(wl_output#18) +[2618105.140] {Default Queue} discarded wl_surface#1799.enter(wl_output#57) +[2618105.144] {Default Queue} discarded wl_surface#1799.enter(wl_output#89) +[2618105.148] {Default Queue} discarded wl_surface#1799.enter(wl_output#121) +[2618105.152] {Default Queue} discarded wl_surface#1799.enter(wl_output#153) +[2618105.156] {Default Queue} discarded wl_surface#1799.enter(wl_output#185) +[2618105.160] {Default Queue} discarded wl_surface#1799.enter(wl_output#217) +[2618105.164] {Default Queue} discarded wl_surface#1799.enter(wl_output#249) +[2618105.168] {Default Queue} discarded wl_surface#1799.enter(wl_output#281) +[2618105.172] {Default Queue} discarded wl_surface#1799.enter(wl_output#313) +[2618105.176] {Default Queue} discarded wl_surface#1799.enter(wl_output#345) +[2618105.180] {Default Queue} discarded wl_surface#1799.enter(wl_output#377) +[2618105.184] {Default Queue} discarded wl_surface#1799.enter(wl_output#409) +[2618105.191] {Default Queue} discarded wl_surface#1799.enter(wl_output#441) +[2618105.196] {Default Queue} discarded wl_surface#1799.enter(wl_output#473) +[2618105.200] {Default Queue} discarded wl_surface#1799.enter(wl_output#505) +[2618105.204] {Default Queue} discarded wl_surface#1799.enter(wl_output#537) +[2618105.208] {Default Queue} discarded wl_surface#1799.enter(wl_output#569) +[2618105.212] {Default Queue} discarded wl_surface#1799.enter(wl_output#601) +[2618105.216] {Default Queue} discarded wl_surface#1799.enter(wl_output#633) +[2618105.220] {Default Queue} discarded wl_surface#1799.enter(wl_output#665) +[2618105.224] {Default Queue} discarded wl_surface#1799.enter(wl_output#697) +[2618105.228] {Default Queue} discarded wl_surface#1799.enter(wl_output#729) +[2618105.232] {Default Queue} discarded wl_surface#1799.enter(wl_output#761) +[2618105.236] {Default Queue} discarded wl_surface#1799.enter(wl_output#793) +[2618105.239] {Default Queue} discarded wl_surface#1799.enter(wl_output#825) +[2618105.244] {Default Queue} discarded wl_surface#1799.enter(wl_output#857) +[2618105.248] {Default Queue} discarded wl_surface#1799.enter(wl_output#889) +[2618105.251] {Default Queue} discarded wl_surface#1799.enter(wl_output#921) +[2618105.255] {Default Queue} discarded wl_surface#1799.enter(wl_output#953) +[2618105.259] {Default Queue} discarded wl_surface#1799.enter(wl_output#985) +[2618105.263] {Default Queue} discarded wl_surface#1799.enter(wl_output#1017) +[2618105.268] {Default Queue} discarded wl_surface#1799.enter(wl_output#1049) +[2618105.271] {Default Queue} discarded wl_surface#1799.enter(wl_output#1081) +[2618105.275] {Default Queue} discarded wl_surface#1799.enter(wl_output#1113) +[2618105.280] {Default Queue} discarded wl_surface#1799.enter(wl_output#1145) +[2618105.284] {Default Queue} discarded wl_surface#1799.enter(wl_output#1177) +[2618105.288] {Default Queue} discarded wl_surface#1799.enter(wl_output#1209) +[2618105.292] {Default Queue} discarded wl_surface#1799.enter(wl_output#1241) +[2618105.296] {Default Queue} discarded wl_surface#1799.enter(wl_output#1273) +[2618105.300] {Default Queue} discarded wl_surface#1799.enter(wl_output#1305) +[2618105.304] {Default Queue} discarded wl_surface#1799.enter(wl_output#1337) +[2618105.308] {Default Queue} discarded wl_surface#1799.enter(wl_output#1369) +[2618105.312] {Default Queue} discarded wl_surface#1799.enter(wl_output#1401) +[2618105.316] {Default Queue} discarded wl_surface#1799.enter(wl_output#1433) +[2618105.320] {Default Queue} discarded wl_surface#1799.enter(wl_output#1465) +[2618105.324] {Default Queue} discarded wl_surface#1799.enter(wl_output#1497) +[2618105.328] {Default Queue} discarded wl_surface#1799.enter(wl_output#1529) +[2618105.333] {Default Queue} discarded wl_surface#1799.enter(wl_output#1561) +[2618105.337] {Default Queue} discarded wl_surface#1799.enter(wl_output#1593) +[2618105.341] {Default Queue} discarded wl_surface#1799.enter(wl_output#1625) +[2618105.345] {Default Queue} discarded wl_surface#1799.enter(wl_output#1657) +[2618105.349] {Default Queue} discarded wl_surface#1799.enter(wl_output#1689) +[2618105.353] {Default Queue} discarded wl_surface#1799.enter(wl_output#1721) +[2618105.357] {Default Queue} discarded wl_surface#1799.enter(wl_output#1753) +[2618105.361] {Default Queue} discarded wl_surface#1799.enter(wl_output#1785) +[2618105.365] {Default Queue} discarded wl_surface#1799.enter(wl_output#1817) +[2618105.369] {Default Queue} -> wl_compositor#1804.create_surface(new id wl_surface#1831) +[2618105.374] {Default Queue} -> wl_subcompositor#1837.get_subsurface(new id wl_subsurface#1850, wl_surface#1831, wl_surface#1799) +[2618105.382] {Default Queue} -> wl_subsurface#1850.set_desync() +[2618105.386] {Default Queue} -> wl_subsurface#1850.set_position(0, 0) +[2618105.391] {Default Queue} -> wl_subsurface#1850.place_above(wl_surface#1799) +[2618105.430] {Default Queue} -> wl_shm#1839.create_pool(new id wl_shm_pool#1851, fd 294, 16) +[2618105.436] {Default Queue} -> wl_shm#1839.create_pool(new id wl_shm_pool#1852, fd 295, 16) +[2618105.444] {Default Queue} -> wl_shm_pool#1851.create_buffer(new id wl_buffer#1853, 0, 2, 2, 8, 0) +[2618105.450] {Default Queue} -> wl_shm_pool#1852.create_buffer(new id wl_buffer#1854, 0, 2, 2, 8, 0) +[2618105.458] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) +[2618105.463] {Default Queue} -> wl_surface#1831.commit() +[2618105.468] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) +[2618105.472] {Default Queue} -> wl_surface#1831.commit() +[2618105.477] {Default Queue} -> wl_compositor#1836.create_region(new id wl_region#1855) +[2618105.481] {Default Queue} -> wl_compositor#1836.create_region(new id wl_region#1856) +[2618105.485] {Default Queue} -> wl_region#1855.subtract(0, 0, 2, 2) +[2618105.489] {Default Queue} -> wl_region#1855.add(0, 0, 0, 0) +[2618105.494] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2618105.498] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2618105.503] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618105.507] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) +[2618105.514] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) +[2618105.518] {Default Queue} -> wl_surface#1831.commit() +[2618105.555] {Default Queue} -> wl_shm#1841.create_pool(new id wl_shm_pool#1857, fd 298, 640) +[2618105.561] {Default Queue} -> wl_shm#1841.create_pool(new id wl_shm_pool#1858, fd 299, 640) +[2618105.566] {Default Queue} -> wl_shm_pool#1857.create_buffer(new id wl_buffer#1859, 0, 10, 16, 40, 0) +[2618105.571] {Default Queue} -> wl_shm_pool#1858.create_buffer(new id wl_buffer#1860, 0, 10, 16, 40, 0) +[2618105.577] {Default Queue} -> wl_compositor#1836.create_surface(new id wl_surface#1861) +[2618105.582] {Default Queue} -> wl_surface#1861.attach(wl_buffer#1859, 0, 0) +[2618105.586] {Default Queue} -> wl_surface#1861.commit() +[2618105.591] {Default Queue} -> wl_surface#1861.attach(wl_buffer#1859, 0, 0) +[2618105.595] {Default Queue} -> wl_surface#1861.commit() +[2618105.600] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) +[2618105.606] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618105.610] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618105.617] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1862) +[2618105.622] {Default Queue} -> wl_display#1.sync(new id wl_callback#1863) +[2618108.999] {Display Queue} wl_display#1.delete_id(1863) +[2618109.009] {Default Queue} wl_keyboard#1832.keymap(1, fd 294, 68213) +[2618109.015] {Default Queue} wl_keyboard#1832.enter(566, wl_surface#19, array[0]) +[2618109.021] {Default Queue} wl_keyboard#1832.modifiers(566, 0, 0, 16, 0) +[2618109.027] {Default Queue} discarded wl_shm#1839.format(875709016) +[2618109.032] {Default Queue} discarded wl_shm#1839.format(1) +[2618109.037] {Default Queue} discarded wl_shm#1839.format(0) +[2618109.042] {Default Queue} discarded wl_shm#1839.format(875708993) +[2618109.047] {Default Queue} discarded wl_shm#1840.format(875709016) +[2618109.051] {Default Queue} discarded wl_shm#1840.format(1) +[2618109.056] {Default Queue} discarded wl_shm#1840.format(0) +[2618109.061] {Default Queue} discarded wl_shm#1840.format(875708993) +[2618109.066] {Default Queue} discarded wl_shm#1841.format(875709016) +[2618109.071] {Default Queue} discarded wl_shm#1841.format(1) +[2618109.076] {Default Queue} discarded wl_shm#1841.format(0) +[2618109.081] {Default Queue} discarded wl_shm#1841.format(875708993) +[2618109.086] {Default Queue} wl_seat#1848.capabilities(7) +[2618109.091] {Default Queue} -> wl_seat#1848.get_keyboard(new id wl_keyboard#1864) +[2618109.096] {Default Queue} -> wl_seat#1848.get_pointer(new id wl_pointer#1865) +[2618109.102] {Default Queue} -> wl_data_device_manager#1844.get_data_device(new id wl_data_device#1866, wl_seat#1848) +[2618109.107] {Default Queue} -> zwp_primary_selection_device_manager_v1#1846.get_device(new id zwp_primary_selection_device_v1#1867, wl_seat#1848) +[2618109.117] {Default Queue} wl_output#1849.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618109.123] {Default Queue} wl_output#1849.mode(3, 1280, 800, 60000) +[2618109.134] {Default Queue} discarded wl_surface#3.enter(wl_output#1849) +[2618109.142] {Default Queue} discarded wl_surface#999.enter(wl_output#1849) +[2618109.146] {Default Queue} discarded wl_surface#1191.enter(wl_output#1849) +[2618109.151] {Default Queue} discarded wl_surface#1159.enter(wl_output#1849) +[2618109.156] {Default Queue} discarded wl_surface#1703.enter(wl_output#1849) +[2618109.161] {Default Queue} discarded wl_surface#423.enter(wl_output#1849) +[2618109.166] {Default Queue} discarded wl_surface#1447.enter(wl_output#1849) +[2618109.171] {Default Queue} discarded wl_surface#1639.enter(wl_output#1849) +[2618109.176] {Default Queue} discarded wl_surface#1319.enter(wl_output#1849) +[2618109.181] {Default Queue} discarded wl_surface#1127.enter(wl_output#1849) +[2618109.185] {Default Queue} discarded wl_surface#1063.enter(wl_output#1849) +[2618109.190] {Default Queue} discarded wl_surface#455.enter(wl_output#1849) +[2618109.195] {Default Queue} discarded wl_surface#1575.enter(wl_output#1849) +[2618109.200] {Default Queue} discarded wl_surface#1799.enter(wl_output#1849) +[2618109.205] {Default Queue} discarded wl_surface#1415.enter(wl_output#1849) +[2618109.210] {Default Queue} discarded wl_surface#903.enter(wl_output#1849) +[2618109.215] {Default Queue} discarded wl_surface#775.enter(wl_output#1849) +[2618109.220] {Default Queue} discarded wl_surface#1543.enter(wl_output#1849) +[2618109.226] {Default Queue} discarded wl_surface#135.enter(wl_output#1849) +[2618109.231] {Default Queue} discarded wl_surface#1287.enter(wl_output#1849) +[2618109.235] {Default Queue} discarded wl_surface#1031.enter(wl_output#1849) +[2618109.240] {Default Queue} discarded wl_surface#615.enter(wl_output#1849) +[2618109.245] {Default Queue} discarded wl_surface#231.enter(wl_output#1849) +[2618109.250] {Default Queue} discarded wl_surface#359.enter(wl_output#1849) +[2618109.255] {Default Queue} discarded wl_surface#583.enter(wl_output#1849) +[2618109.260] {Default Queue} discarded wl_surface#743.enter(wl_output#1849) +[2618109.265] {Default Queue} discarded wl_surface#967.enter(wl_output#1849) +[2618109.270] {Default Queue} discarded wl_surface#103.enter(wl_output#1849) +[2618109.274] {Default Queue} discarded wl_surface#327.enter(wl_output#1849) +[2618109.279] {Default Queue} discarded wl_surface#43.enter(wl_output#1849) +[2618109.284] {Default Queue} discarded wl_surface#807.enter(wl_output#1849) +[2618109.289] {Default Queue} discarded wl_surface#19.enter(wl_output#1849) +[2618109.294] {Default Queue} discarded wl_surface#1511.enter(wl_output#1849) +[2618109.299] {Default Queue} discarded wl_surface#199.enter(wl_output#1849) +[2618109.304] {Default Queue} discarded wl_surface#391.enter(wl_output#1849) +[2618109.308] {Default Queue} discarded wl_surface#935.enter(wl_output#1849) +[2618109.313] {Default Queue} discarded wl_surface#1671.enter(wl_output#1849) +[2618109.318] {Default Queue} discarded wl_surface#1351.enter(wl_output#1849) +[2618109.323] {Default Queue} discarded wl_surface#711.enter(wl_output#1849) +[2618109.328] {Default Queue} discarded wl_surface#1223.enter(wl_output#1849) +[2618109.333] {Default Queue} discarded wl_surface#871.enter(wl_output#1849) +[2618109.338] {Default Queue} discarded wl_surface#263.enter(wl_output#1849) +[2618109.343] {Default Queue} discarded wl_surface#551.enter(wl_output#1849) +[2618109.348] {Default Queue} discarded wl_surface#1735.enter(wl_output#1849) +[2618109.352] {Default Queue} discarded wl_surface#1479.enter(wl_output#1849) +[2618109.357] {Default Queue} discarded wl_surface#1772.enter(wl_output#1849) +[2618109.362] {Default Queue} discarded wl_surface#647.enter(wl_output#1849) +[2618109.367] {Default Queue} discarded wl_surface#71.enter(wl_output#1849) +[2618109.372] {Default Queue} discarded wl_surface#839.enter(wl_output#1849) +[2618109.377] {Default Queue} discarded wl_surface#1607.enter(wl_output#1849) +[2618109.382] {Default Queue} discarded wl_surface#1095.enter(wl_output#1849) +[2618109.386] {Default Queue} discarded wl_surface#1383.enter(wl_output#1849) +[2618109.391] {Default Queue} discarded wl_surface#487.enter(wl_output#1849) +[2618109.400] {Default Queue} discarded wl_surface#519.enter(wl_output#1849) +[2618109.406] {Default Queue} discarded wl_surface#295.enter(wl_output#1849) +[2618109.412] {Default Queue} discarded wl_surface#167.enter(wl_output#1849) +[2618109.417] {Default Queue} discarded wl_surface#1255.enter(wl_output#1849) +[2618109.422] {Default Queue} discarded wl_surface#679.enter(wl_output#1849) +[2618109.426] {Default Queue} wl_registry#1862.global(1, "wl_compositor", 6) +[2618109.432] {Default Queue} -> wl_registry#1862.bind(1, "wl_compositor", 1, new id [unknown]#1868) +[2618109.438] {Default Queue} wl_registry#1862.global(2, "wl_subcompositor", 1) +[2618109.444] {Default Queue} -> wl_registry#1862.bind(2, "wl_subcompositor", 1, new id [unknown]#1869) +[2618109.450] {Default Queue} wl_registry#1862.global(3, "xdg_wm_base", 6) +[2618109.455] {Default Queue} -> wl_registry#1862.bind(3, "xdg_wm_base", 1, new id [unknown]#1870) +[2618109.461] {Default Queue} wl_registry#1862.global(6, "zwlr_layer_shell_v1", 5) +[2618109.466] {Default Queue} wl_registry#1862.global(7, "ext_session_lock_manager_v1", 1) +[2618109.472] {Default Queue} wl_registry#1862.global(8, "wl_shm", 2) +[2618109.479] {Default Queue} -> wl_registry#1862.bind(8, "wl_shm", 1, new id [unknown]#1871) +[2618109.485] {Default Queue} -> wl_registry#1862.bind(8, "wl_shm", 1, new id [unknown]#1872) +[2618109.491] {Default Queue} -> wl_registry#1862.bind(8, "wl_shm", 1, new id [unknown]#1873) +[2618109.496] {Default Queue} wl_registry#1862.global(9, "zxdg_output_manager_v1", 3) +[2618109.501] {Default Queue} wl_registry#1862.global(10, "wp_fractional_scale_manager_v1", 1) +[2618109.507] {Default Queue} wl_registry#1862.global(11, "zwp_tablet_manager_v2", 1) +[2618109.513] {Default Queue} wl_registry#1862.global(12, "zwp_pointer_gestures_v1", 3) +[2618109.518] {Default Queue} wl_registry#1862.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618109.524] {Default Queue} -> wl_registry#1862.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1874) +[2618109.529] {Default Queue} wl_registry#1862.global(14, "zwp_pointer_constraints_v1", 1) +[2618109.535] {Default Queue} -> wl_registry#1862.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1875) +[2618109.541] {Default Queue} wl_registry#1862.global(15, "ext_idle_notifier_v1", 2) +[2618109.546] {Default Queue} wl_registry#1862.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618109.552] {Default Queue} wl_registry#1862.global(17, "wl_data_device_manager", 3) +[2618109.557] {Default Queue} -> wl_registry#1862.bind(17, "wl_data_device_manager", 2, new id [unknown]#1876) +[2618109.563] {Default Queue} -> wl_data_device_manager#1876.create_data_source(new id wl_data_source#1877) +[2618109.568] {Default Queue} -> wl_data_source#1877.offer("text/plain") +[2618109.574] {Default Queue} -> wl_data_source#1877.offer("text/plain;charset=utf-8") +[2618109.579] {Default Queue} -> wl_data_source#1877.offer("TEXT") +[2618109.584] {Default Queue} -> wl_data_source#1877.offer("STRING") +[2618109.589] {Default Queue} -> wl_data_source#1877.offer("UTF8_STRING") +[2618109.594] {Default Queue} wl_registry#1862.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618109.600] {Default Queue} -> wl_registry#1862.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1878) +[2618109.609] {Default Queue} -> zwp_primary_selection_device_manager_v1#1878.create_source(new id zwp_primary_selection_source_v1#1879) +[2618109.619] {Default Queue} -> zwp_primary_selection_source_v1#1879.offer("text/plain") +[2618109.624] {Default Queue} -> zwp_primary_selection_source_v1#1879.offer("text/plain;charset=utf-8") +[2618109.629] {Default Queue} -> zwp_primary_selection_source_v1#1879.offer("TEXT") +[2618109.634] {Default Queue} -> zwp_primary_selection_source_v1#1879.offer("STRING") +[2618109.639] {Default Queue} -> zwp_primary_selection_source_v1#1879.offer("UTF8_STRING") +[2618109.644] {Default Queue} wl_registry#1862.global(19, "zwlr_data_control_manager_v1", 2) +[2618109.649] {Default Queue} wl_registry#1862.global(20, "ext_data_control_manager_v1", 1) +[2618109.658] {Default Queue} wl_registry#1862.global(21, "wp_presentation", 2) +[2618109.665] {Default Queue} wl_registry#1862.global(22, "wp_security_context_manager_v1", 1) +[2618109.670] {Default Queue} wl_registry#1862.global(23, "zwp_text_input_manager_v3", 1) +[2618109.676] {Default Queue} wl_registry#1862.global(24, "zwp_input_method_manager_v2", 1) +[2618109.681] {Default Queue} wl_registry#1862.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618109.687] {Default Queue} wl_registry#1862.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618109.692] {Default Queue} wl_registry#1862.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618109.697] {Default Queue} wl_registry#1862.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618109.703] {Default Queue} wl_registry#1862.global(29, "ext_workspace_manager_v1", 1) +[2618109.708] {Default Queue} wl_registry#1862.global(30, "zwlr_output_manager_v1", 4) +[2618109.714] {Default Queue} wl_registry#1862.global(31, "zwlr_screencopy_manager_v1", 3) +[2618109.719] {Default Queue} wl_registry#1862.global(32, "wp_viewporter", 1) +[2618109.724] {Default Queue} wl_registry#1862.global(33, "zxdg_exporter_v2", 1) +[2618109.730] {Default Queue} wl_registry#1862.global(34, "zxdg_importer_v2", 1) +[2618109.735] {Default Queue} wl_registry#1862.global(36, "xdg_activation_v1", 1) +[2618109.740] {Default Queue} wl_registry#1862.global(37, "mutter_x11_interop", 1) +[2618109.746] {Default Queue} wl_registry#1862.global(38, "wl_seat", 9) +[2618109.751] {Default Queue} -> wl_registry#1862.bind(38, "wl_seat", 1, new id [unknown]#1880) +[2618109.757] {Default Queue} wl_registry#1862.global(39, "wp_cursor_shape_manager_v1", 2) +[2618109.762] {Default Queue} wl_registry#1862.global(40, "wl_output", 4) +[2618109.768] {Default Queue} -> wl_registry#1862.bind(40, "wl_output", 1, new id [unknown]#1881) +[2618109.774] {Default Queue} wl_callback#1863.done(0) +[2618109.779] {Default Queue} discarded wl_surface#1831.enter(wl_output#18) +[2618109.784] {Default Queue} discarded wl_surface#1831.enter(wl_output#57) +[2618109.789] {Default Queue} discarded wl_surface#1831.enter(wl_output#89) +[2618109.794] {Default Queue} discarded wl_surface#1831.enter(wl_output#121) +[2618109.799] {Default Queue} discarded wl_surface#1831.enter(wl_output#153) +[2618109.804] {Default Queue} discarded wl_surface#1831.enter(wl_output#185) +[2618109.809] {Default Queue} discarded wl_surface#1831.enter(wl_output#217) +[2618109.814] {Default Queue} discarded wl_surface#1831.enter(wl_output#249) +[2618109.819] {Default Queue} discarded wl_surface#1831.enter(wl_output#281) +[2618109.824] {Default Queue} discarded wl_surface#1831.enter(wl_output#313) +[2618109.829] {Default Queue} discarded wl_surface#1831.enter(wl_output#345) +[2618109.834] {Default Queue} discarded wl_surface#1831.enter(wl_output#377) +[2618109.839] {Default Queue} discarded wl_surface#1831.enter(wl_output#409) +[2618109.844] {Default Queue} discarded wl_surface#1831.enter(wl_output#441) +[2618109.849] {Default Queue} discarded wl_surface#1831.enter(wl_output#473) +[2618109.854] {Default Queue} discarded wl_surface#1831.enter(wl_output#505) +[2618109.859] {Default Queue} discarded wl_surface#1831.enter(wl_output#537) +[2618109.870] {Default Queue} discarded wl_surface#1831.enter(wl_output#569) +[2618109.875] {Default Queue} discarded wl_surface#1831.enter(wl_output#601) +[2618109.880] {Default Queue} discarded wl_surface#1831.enter(wl_output#633) +[2618109.885] {Default Queue} discarded wl_surface#1831.enter(wl_output#665) +[2618109.890] {Default Queue} discarded wl_surface#1831.enter(wl_output#697) +[2618109.895] {Default Queue} discarded wl_surface#1831.enter(wl_output#729) +[2618109.900] {Default Queue} discarded wl_surface#1831.enter(wl_output#761) +[2618109.905] {Default Queue} discarded wl_surface#1831.enter(wl_output#793) +[2618109.909] {Default Queue} discarded wl_surface#1831.enter(wl_output#825) +[2618109.913] {Default Queue} discarded wl_surface#1831.enter(wl_output#857) +[2618109.917] {Default Queue} discarded wl_surface#1831.enter(wl_output#889) +[2618109.923] {Default Queue} discarded wl_surface#1831.enter(wl_output#921) +[2618109.929] {Default Queue} discarded wl_surface#1831.enter(wl_output#953) +[2618109.933] {Default Queue} discarded wl_surface#1831.enter(wl_output#985) +[2618109.936] {Default Queue} discarded wl_surface#1831.enter(wl_output#1017) +[2618109.940] {Default Queue} discarded wl_surface#1831.enter(wl_output#1049) +[2618109.944] {Default Queue} discarded wl_surface#1831.enter(wl_output#1081) +[2618109.948] {Default Queue} discarded wl_surface#1831.enter(wl_output#1113) +[2618109.952] {Default Queue} discarded wl_surface#1831.enter(wl_output#1145) +[2618109.956] {Default Queue} discarded wl_surface#1831.enter(wl_output#1177) +[2618109.960] {Default Queue} discarded wl_surface#1831.enter(wl_output#1209) +[2618109.964] {Default Queue} discarded wl_surface#1831.enter(wl_output#1241) +[2618109.968] {Default Queue} discarded wl_surface#1831.enter(wl_output#1273) +[2618109.972] {Default Queue} discarded wl_surface#1831.enter(wl_output#1305) +[2618109.975] {Default Queue} discarded wl_surface#1831.enter(wl_output#1337) +[2618109.979] {Default Queue} discarded wl_surface#1831.enter(wl_output#1369) +[2618109.983] {Default Queue} discarded wl_surface#1831.enter(wl_output#1401) +[2618109.987] {Default Queue} discarded wl_surface#1831.enter(wl_output#1433) +[2618109.991] {Default Queue} discarded wl_surface#1831.enter(wl_output#1465) +[2618109.995] {Default Queue} discarded wl_surface#1831.enter(wl_output#1497) +[2618109.999] {Default Queue} discarded wl_surface#1831.enter(wl_output#1529) +[2618110.002] {Default Queue} discarded wl_surface#1831.enter(wl_output#1561) +[2618110.006] {Default Queue} discarded wl_surface#1831.enter(wl_output#1593) +[2618110.010] {Default Queue} discarded wl_surface#1831.enter(wl_output#1625) +[2618110.014] {Default Queue} discarded wl_surface#1831.enter(wl_output#1657) +[2618110.018] {Default Queue} discarded wl_surface#1831.enter(wl_output#1689) +[2618110.022] {Default Queue} discarded wl_surface#1831.enter(wl_output#1721) +[2618110.026] {Default Queue} discarded wl_surface#1831.enter(wl_output#1753) +[2618110.030] {Default Queue} discarded wl_surface#1831.enter(wl_output#1785) +[2618110.034] {Default Queue} discarded wl_surface#1831.enter(wl_output#1817) +[2618110.038] {Default Queue} discarded wl_surface#1831.enter(wl_output#1849) +[2618110.042] {Default Queue} -> wl_compositor#1804.create_surface(new id wl_surface#1863) +[2618110.046] {Default Queue} -> wl_subcompositor#1869.get_subsurface(new id wl_subsurface#1882, wl_surface#1863, wl_surface#1799) +[2618110.054] {Default Queue} -> wl_subsurface#1882.set_desync() +[2618110.058] {Default Queue} -> wl_subsurface#1882.set_position(0, 0) +[2618110.063] {Default Queue} -> wl_subsurface#1882.place_above(wl_surface#1799) +[2618110.101] {Default Queue} -> wl_shm#1871.create_pool(new id wl_shm_pool#1883, fd 299, 16) +[2618110.108] {Default Queue} -> wl_shm#1871.create_pool(new id wl_shm_pool#1884, fd 300, 16) +[2618110.112] {Default Queue} -> wl_shm_pool#1883.create_buffer(new id wl_buffer#1885, 0, 2, 2, 8, 0) +[2618110.117] {Default Queue} -> wl_shm_pool#1884.create_buffer(new id wl_buffer#1886, 0, 2, 2, 8, 0) +[2618110.125] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) +[2618110.129] {Default Queue} -> wl_surface#1863.commit() +[2618110.134] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) +[2618110.140] {Default Queue} -> wl_surface#1863.commit() +[2618110.144] {Default Queue} -> wl_compositor#1868.create_region(new id wl_region#1887) +[2618110.149] {Default Queue} -> wl_compositor#1868.create_region(new id wl_region#1888) +[2618110.153] {Default Queue} -> wl_region#1887.subtract(0, 0, 2, 2) +[2618110.158] {Default Queue} -> wl_region#1887.add(0, 0, 0, 0) +[2618110.162] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) +[2618110.167] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) +[2618110.171] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) +[2618110.175] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) +[2618110.183] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) +[2618110.191] {Default Queue} -> wl_surface#1863.commit() +[2618110.226] {Default Queue} -> wl_shm#1873.create_pool(new id wl_shm_pool#1889, fd 303, 640) +[2618110.232] {Default Queue} -> wl_shm#1873.create_pool(new id wl_shm_pool#1890, fd 304, 640) +[2618110.237] {Default Queue} -> wl_shm_pool#1889.create_buffer(new id wl_buffer#1891, 0, 10, 16, 40, 0) +[2618110.241] {Default Queue} -> wl_shm_pool#1890.create_buffer(new id wl_buffer#1892, 0, 10, 16, 40, 0) +[2618110.248] {Default Queue} -> wl_compositor#1868.create_surface(new id wl_surface#1893) +[2618110.252] {Default Queue} -> wl_surface#1893.attach(wl_buffer#1891, 0, 0) +[2618110.257] {Default Queue} -> wl_surface#1893.commit() +[2618110.262] {Default Queue} -> wl_surface#1893.attach(wl_buffer#1891, 0, 0) +[2618110.266] {Default Queue} -> wl_surface#1893.commit() +[2618110.271] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) +[2618110.277] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1894) +[2618110.282] {Default Queue} -> wl_display#1.sync(new id wl_callback#1895) +[2618114.020] {Display Queue} wl_display#1.delete_id(1895) +[2618114.029] {Default Queue} wl_keyboard#1864.keymap(1, fd 299, 68213) +[2618114.035] {Default Queue} wl_keyboard#1864.enter(566, wl_surface#19, array[0]) +[2618114.042] {Default Queue} wl_keyboard#1864.modifiers(566, 0, 0, 16, 0) +[2618114.047] {Default Queue} discarded wl_shm#1871.format(875709016) +[2618114.052] {Default Queue} discarded wl_shm#1871.format(1) +[2618114.057] {Default Queue} discarded wl_shm#1871.format(0) +[2618114.062] {Default Queue} discarded wl_shm#1871.format(875708993) +[2618114.067] {Default Queue} discarded wl_shm#1872.format(875709016) +[2618114.072] {Default Queue} discarded wl_shm#1872.format(1) +[2618114.077] {Default Queue} discarded wl_shm#1872.format(0) +[2618114.082] {Default Queue} discarded wl_shm#1872.format(875708993) +[2618114.087] {Default Queue} discarded wl_shm#1873.format(875709016) +[2618114.091] {Default Queue} discarded wl_shm#1873.format(1) +[2618114.096] {Default Queue} discarded wl_shm#1873.format(0) +[2618114.101] {Default Queue} discarded wl_shm#1873.format(875708993) +[2618114.106] {Default Queue} wl_seat#1880.capabilities(7) +[2618114.112] {Default Queue} -> wl_seat#1880.get_keyboard(new id wl_keyboard#1896) +[2618114.117] {Default Queue} -> wl_seat#1880.get_pointer(new id wl_pointer#1897) +[2618114.123] {Default Queue} -> wl_data_device_manager#1876.get_data_device(new id wl_data_device#1898, wl_seat#1880) +[2618114.129] {Default Queue} -> zwp_primary_selection_device_manager_v1#1878.get_device(new id zwp_primary_selection_device_v1#1899, wl_seat#1880) +[2618114.138] {Default Queue} wl_output#1881.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618114.145] {Default Queue} wl_output#1881.mode(3, 1280, 800, 60000) +[2618114.150] {Default Queue} discarded wl_surface#3.enter(wl_output#1881) +[2618114.155] {Default Queue} discarded wl_surface#999.enter(wl_output#1881) +[2618114.160] {Default Queue} discarded wl_surface#1191.enter(wl_output#1881) +[2618114.165] {Default Queue} discarded wl_surface#1159.enter(wl_output#1881) +[2618114.170] {Default Queue} discarded wl_surface#1703.enter(wl_output#1881) +[2618114.175] {Default Queue} discarded wl_surface#423.enter(wl_output#1881) +[2618114.180] {Default Queue} discarded wl_surface#1447.enter(wl_output#1881) +[2618114.185] {Default Queue} discarded wl_surface#1639.enter(wl_output#1881) +[2618114.190] {Default Queue} discarded wl_surface#1319.enter(wl_output#1881) +[2618114.194] {Default Queue} discarded wl_surface#1127.enter(wl_output#1881) +[2618114.200] {Default Queue} discarded wl_surface#1063.enter(wl_output#1881) +[2618114.205] {Default Queue} discarded wl_surface#455.enter(wl_output#1881) +[2618114.210] {Default Queue} discarded wl_surface#1575.enter(wl_output#1881) +[2618114.215] {Default Queue} discarded wl_surface#1799.enter(wl_output#1881) +[2618114.219] {Default Queue} discarded wl_surface#1415.enter(wl_output#1881) +[2618114.224] {Default Queue} discarded wl_surface#1831.enter(wl_output#1881) +[2618114.238] {Default Queue} discarded wl_surface#903.enter(wl_output#1881) +[2618114.246] {Default Queue} discarded wl_surface#775.enter(wl_output#1881) +[2618114.251] {Default Queue} discarded wl_surface#1543.enter(wl_output#1881) +[2618114.256] {Default Queue} discarded wl_surface#135.enter(wl_output#1881) +[2618114.261] {Default Queue} discarded wl_surface#1287.enter(wl_output#1881) +[2618114.266] {Default Queue} discarded wl_surface#1031.enter(wl_output#1881) +[2618114.271] {Default Queue} discarded wl_surface#615.enter(wl_output#1881) +[2618114.276] {Default Queue} discarded wl_surface#231.enter(wl_output#1881) +[2618114.280] {Default Queue} discarded wl_surface#359.enter(wl_output#1881) +[2618114.285] {Default Queue} discarded wl_surface#583.enter(wl_output#1881) +[2618114.290] {Default Queue} discarded wl_surface#743.enter(wl_output#1881) +[2618114.295] {Default Queue} discarded wl_surface#967.enter(wl_output#1881) +[2618114.300] {Default Queue} discarded wl_surface#103.enter(wl_output#1881) +[2618114.305] {Default Queue} discarded wl_surface#327.enter(wl_output#1881) +[2618114.310] {Default Queue} discarded wl_surface#43.enter(wl_output#1881) +[2618114.315] {Default Queue} discarded wl_surface#807.enter(wl_output#1881) +[2618114.320] {Default Queue} discarded wl_surface#19.enter(wl_output#1881) +[2618114.325] {Default Queue} discarded wl_surface#1511.enter(wl_output#1881) +[2618114.330] {Default Queue} discarded wl_surface#199.enter(wl_output#1881) +[2618114.335] {Default Queue} discarded wl_surface#391.enter(wl_output#1881) +[2618114.340] {Default Queue} discarded wl_surface#935.enter(wl_output#1881) +[2618114.345] {Default Queue} discarded wl_surface#1671.enter(wl_output#1881) +[2618114.349] {Default Queue} discarded wl_surface#1351.enter(wl_output#1881) +[2618114.354] {Default Queue} discarded wl_surface#711.enter(wl_output#1881) +[2618114.359] {Default Queue} discarded wl_surface#1223.enter(wl_output#1881) +[2618114.364] {Default Queue} discarded wl_surface#871.enter(wl_output#1881) +[2618114.369] {Default Queue} discarded wl_surface#263.enter(wl_output#1881) +[2618114.374] {Default Queue} discarded wl_surface#551.enter(wl_output#1881) +[2618114.379] {Default Queue} discarded wl_surface#1735.enter(wl_output#1881) +[2618114.384] {Default Queue} discarded wl_surface#1479.enter(wl_output#1881) +[2618114.388] {Default Queue} discarded wl_surface#1772.enter(wl_output#1881) +[2618114.393] {Default Queue} discarded wl_surface#647.enter(wl_output#1881) +[2618114.398] {Default Queue} discarded wl_surface#71.enter(wl_output#1881) +[2618114.403] {Default Queue} discarded wl_surface#839.enter(wl_output#1881) +[2618114.408] {Default Queue} discarded wl_surface#1607.enter(wl_output#1881) +[2618114.413] {Default Queue} discarded wl_surface#1095.enter(wl_output#1881) +[2618114.418] {Default Queue} discarded wl_surface#1383.enter(wl_output#1881) +[2618114.422] {Default Queue} discarded wl_surface#487.enter(wl_output#1881) +[2618114.427] {Default Queue} discarded wl_surface#519.enter(wl_output#1881) +[2618114.432] {Default Queue} discarded wl_surface#295.enter(wl_output#1881) +[2618114.437] {Default Queue} discarded wl_surface#167.enter(wl_output#1881) +[2618114.442] {Default Queue} discarded wl_surface#1255.enter(wl_output#1881) +[2618114.447] {Default Queue} discarded wl_surface#679.enter(wl_output#1881) +[2618114.452] {Default Queue} wl_registry#1894.global(1, "wl_compositor", 6) +[2618114.458] {Default Queue} -> wl_registry#1894.bind(1, "wl_compositor", 1, new id [unknown]#1900) +[2618114.463] {Default Queue} wl_registry#1894.global(2, "wl_subcompositor", 1) +[2618114.469] {Default Queue} -> wl_registry#1894.bind(2, "wl_subcompositor", 1, new id [unknown]#1901) +[2618114.475] {Default Queue} wl_registry#1894.global(3, "xdg_wm_base", 6) +[2618114.481] {Default Queue} -> wl_registry#1894.bind(3, "xdg_wm_base", 1, new id [unknown]#1902) +[2618114.487] {Default Queue} wl_registry#1894.global(6, "zwlr_layer_shell_v1", 5) +[2618114.492] {Default Queue} wl_registry#1894.global(7, "ext_session_lock_manager_v1", 1) +[2618114.498] {Default Queue} wl_registry#1894.global(8, "wl_shm", 2) +[2618114.508] {Default Queue} -> wl_registry#1894.bind(8, "wl_shm", 1, new id [unknown]#1903) +[2618114.517] {Default Queue} -> wl_registry#1894.bind(8, "wl_shm", 1, new id [unknown]#1904) +[2618114.523] {Default Queue} -> wl_registry#1894.bind(8, "wl_shm", 1, new id [unknown]#1905) +[2618114.529] {Default Queue} wl_registry#1894.global(9, "zxdg_output_manager_v1", 3) +[2618114.534] {Default Queue} wl_registry#1894.global(10, "wp_fractional_scale_manager_v1", 1) +[2618114.540] {Default Queue} wl_registry#1894.global(11, "zwp_tablet_manager_v2", 1) +[2618114.545] {Default Queue} wl_registry#1894.global(12, "zwp_pointer_gestures_v1", 3) +[2618114.551] {Default Queue} wl_registry#1894.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618114.556] {Default Queue} -> wl_registry#1894.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1906) +[2618114.562] {Default Queue} wl_registry#1894.global(14, "zwp_pointer_constraints_v1", 1) +[2618114.567] {Default Queue} -> wl_registry#1894.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1907) +[2618114.573] {Default Queue} wl_registry#1894.global(15, "ext_idle_notifier_v1", 2) +[2618114.579] {Default Queue} wl_registry#1894.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618114.584] {Default Queue} wl_registry#1894.global(17, "wl_data_device_manager", 3) +[2618114.590] {Default Queue} -> wl_registry#1894.bind(17, "wl_data_device_manager", 2, new id [unknown]#1908) +[2618114.595] {Default Queue} -> wl_data_device_manager#1908.create_data_source(new id wl_data_source#1909) +[2618114.600] {Default Queue} -> wl_data_source#1909.offer("text/plain") +[2618114.605] {Default Queue} -> wl_data_source#1909.offer("text/plain;charset=utf-8") +[2618114.611] {Default Queue} -> wl_data_source#1909.offer("TEXT") +[2618114.616] {Default Queue} -> wl_data_source#1909.offer("STRING") +[2618114.621] {Default Queue} -> wl_data_source#1909.offer("UTF8_STRING") +[2618114.626] {Default Queue} wl_registry#1894.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618114.632] {Default Queue} -> wl_registry#1894.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1910) +[2618114.642] {Default Queue} -> zwp_primary_selection_device_manager_v1#1910.create_source(new id zwp_primary_selection_source_v1#1911) +[2618114.651] {Default Queue} -> zwp_primary_selection_source_v1#1911.offer("text/plain") +[2618114.656] {Default Queue} -> zwp_primary_selection_source_v1#1911.offer("text/plain;charset=utf-8") +[2618114.661] {Default Queue} -> zwp_primary_selection_source_v1#1911.offer("TEXT") +[2618114.666] {Default Queue} -> zwp_primary_selection_source_v1#1911.offer("STRING") +[2618114.671] {Default Queue} -> zwp_primary_selection_source_v1#1911.offer("UTF8_STRING") +[2618114.676] {Default Queue} wl_registry#1894.global(19, "zwlr_data_control_manager_v1", 2) +[2618114.682] {Default Queue} wl_registry#1894.global(20, "ext_data_control_manager_v1", 1) +[2618114.687] {Default Queue} wl_registry#1894.global(21, "wp_presentation", 2) +[2618114.693] {Default Queue} wl_registry#1894.global(22, "wp_security_context_manager_v1", 1) +[2618114.698] {Default Queue} wl_registry#1894.global(23, "zwp_text_input_manager_v3", 1) +[2618114.703] {Default Queue} wl_registry#1894.global(24, "zwp_input_method_manager_v2", 1) +[2618114.709] {Default Queue} wl_registry#1894.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618114.714] {Default Queue} wl_registry#1894.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618114.720] {Default Queue} wl_registry#1894.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618114.725] {Default Queue} wl_registry#1894.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618114.731] {Default Queue} wl_registry#1894.global(29, "ext_workspace_manager_v1", 1) +[2618114.736] {Default Queue} wl_registry#1894.global(30, "zwlr_output_manager_v1", 4) +[2618114.742] {Default Queue} wl_registry#1894.global(31, "zwlr_screencopy_manager_v1", 3) +[2618114.747] {Default Queue} wl_registry#1894.global(32, "wp_viewporter", 1) +[2618114.752] {Default Queue} wl_registry#1894.global(33, "zxdg_exporter_v2", 1) +[2618114.761] {Default Queue} wl_registry#1894.global(34, "zxdg_importer_v2", 1) +[2618114.768] {Default Queue} wl_registry#1894.global(36, "xdg_activation_v1", 1) +[2618114.774] {Default Queue} wl_registry#1894.global(37, "mutter_x11_interop", 1) +[2618114.779] {Default Queue} wl_registry#1894.global(38, "wl_seat", 9) +[2618114.785] {Default Queue} -> wl_registry#1894.bind(38, "wl_seat", 1, new id [unknown]#1912) +[2618114.790] {Default Queue} wl_registry#1894.global(39, "wp_cursor_shape_manager_v1", 2) +[2618114.796] {Default Queue} wl_registry#1894.global(40, "wl_output", 4) +[2618114.801] {Default Queue} -> wl_registry#1894.bind(40, "wl_output", 1, new id [unknown]#1913) +[2618114.807] {Default Queue} wl_callback#1895.done(0) +[2618114.812] {Default Queue} discarded wl_surface#1863.enter(wl_output#18) +[2618114.817] {Default Queue} discarded wl_surface#1863.enter(wl_output#57) +[2618114.822] {Default Queue} discarded wl_surface#1863.enter(wl_output#89) +[2618114.827] {Default Queue} discarded wl_surface#1863.enter(wl_output#121) +[2618114.832] {Default Queue} discarded wl_surface#1863.enter(wl_output#153) +[2618114.837] {Default Queue} discarded wl_surface#1863.enter(wl_output#185) +[2618114.842] {Default Queue} discarded wl_surface#1863.enter(wl_output#217) +[2618114.848] {Default Queue} discarded wl_surface#1863.enter(wl_output#249) +[2618114.853] {Default Queue} discarded wl_surface#1863.enter(wl_output#281) +[2618114.857] {Default Queue} discarded wl_surface#1863.enter(wl_output#313) +[2618114.863] {Default Queue} discarded wl_surface#1863.enter(wl_output#345) +[2618114.869] {Default Queue} discarded wl_surface#1863.enter(wl_output#377) +[2618114.879] {Default Queue} discarded wl_surface#1863.enter(wl_output#409) +[2618114.884] {Default Queue} discarded wl_surface#1863.enter(wl_output#441) +[2618114.889] {Default Queue} discarded wl_surface#1863.enter(wl_output#473) +[2618114.894] {Default Queue} discarded wl_surface#1863.enter(wl_output#505) +[2618114.899] {Default Queue} discarded wl_surface#1863.enter(wl_output#537) +[2618114.904] {Default Queue} discarded wl_surface#1863.enter(wl_output#569) +[2618114.908] {Default Queue} discarded wl_surface#1863.enter(wl_output#601) +[2618114.913] {Default Queue} discarded wl_surface#1863.enter(wl_output#633) +[2618114.918] {Default Queue} discarded wl_surface#1863.enter(wl_output#665) +[2618114.922] {Default Queue} discarded wl_surface#1863.enter(wl_output#697) +[2618114.926] {Default Queue} discarded wl_surface#1863.enter(wl_output#729) +[2618114.930] {Default Queue} discarded wl_surface#1863.enter(wl_output#761) +[2618114.934] {Default Queue} discarded wl_surface#1863.enter(wl_output#793) +[2618114.937] {Default Queue} discarded wl_surface#1863.enter(wl_output#825) +[2618114.941] {Default Queue} discarded wl_surface#1863.enter(wl_output#857) +[2618114.945] {Default Queue} discarded wl_surface#1863.enter(wl_output#889) +[2618114.949] {Default Queue} discarded wl_surface#1863.enter(wl_output#921) +[2618114.953] {Default Queue} discarded wl_surface#1863.enter(wl_output#953) +[2618114.957] {Default Queue} discarded wl_surface#1863.enter(wl_output#985) +[2618114.961] {Default Queue} discarded wl_surface#1863.enter(wl_output#1017) +[2618114.965] {Default Queue} discarded wl_surface#1863.enter(wl_output#1049) +[2618114.969] {Default Queue} discarded wl_surface#1863.enter(wl_output#1081) +[2618114.973] {Default Queue} discarded wl_surface#1863.enter(wl_output#1113) +[2618114.977] {Default Queue} discarded wl_surface#1863.enter(wl_output#1145) +[2618114.981] {Default Queue} discarded wl_surface#1863.enter(wl_output#1177) +[2618114.985] {Default Queue} discarded wl_surface#1863.enter(wl_output#1209) +[2618114.989] {Default Queue} discarded wl_surface#1863.enter(wl_output#1241) +[2618114.993] {Default Queue} discarded wl_surface#1863.enter(wl_output#1273) +[2618114.997] {Default Queue} discarded wl_surface#1863.enter(wl_output#1305) +[2618115.001] {Default Queue} discarded wl_surface#1863.enter(wl_output#1337) +[2618115.005] {Default Queue} discarded wl_surface#1863.enter(wl_output#1369) +[2618115.012] {Default Queue} discarded wl_surface#1863.enter(wl_output#1401) +[2618115.017] {Default Queue} discarded wl_surface#1863.enter(wl_output#1433) +[2618115.021] {Default Queue} discarded wl_surface#1863.enter(wl_output#1465) +[2618115.025] {Default Queue} discarded wl_surface#1863.enter(wl_output#1497) +[2618115.029] {Default Queue} discarded wl_surface#1863.enter(wl_output#1529) +[2618115.033] {Default Queue} discarded wl_surface#1863.enter(wl_output#1561) +[2618115.037] {Default Queue} discarded wl_surface#1863.enter(wl_output#1593) +[2618115.041] {Default Queue} discarded wl_surface#1863.enter(wl_output#1625) +[2618115.045] {Default Queue} discarded wl_surface#1863.enter(wl_output#1657) +[2618115.048] {Default Queue} discarded wl_surface#1863.enter(wl_output#1689) +[2618115.052] {Default Queue} discarded wl_surface#1863.enter(wl_output#1721) +[2618115.057] {Default Queue} discarded wl_surface#1863.enter(wl_output#1753) +[2618115.061] {Default Queue} discarded wl_surface#1863.enter(wl_output#1785) +[2618115.065] {Default Queue} discarded wl_surface#1863.enter(wl_output#1817) +[2618115.069] {Default Queue} discarded wl_surface#1863.enter(wl_output#1849) +[2618115.073] {Default Queue} discarded wl_surface#1863.enter(wl_output#1881) +[2618115.077] {Default Queue} -> wl_compositor#1868.create_surface(new id wl_surface#1895) +[2618115.081] {Default Queue} -> wl_subcompositor#1901.get_subsurface(new id wl_subsurface#1914, wl_surface#1895, wl_surface#1863) +[2618115.090] {Default Queue} -> wl_subsurface#1914.set_desync() +[2618115.094] {Default Queue} -> wl_subsurface#1914.set_position(0, 0) +[2618115.099] {Default Queue} -> wl_subsurface#1914.place_above(wl_surface#1863) +[2618115.139] {Default Queue} -> wl_shm#1903.create_pool(new id wl_shm_pool#1915, fd 304, 16) +[2618115.145] {Default Queue} -> wl_shm#1903.create_pool(new id wl_shm_pool#1916, fd 305, 16) +[2618115.150] {Default Queue} -> wl_shm_pool#1915.create_buffer(new id wl_buffer#1917, 0, 2, 2, 8, 0) +[2618115.155] {Default Queue} -> wl_shm_pool#1916.create_buffer(new id wl_buffer#1918, 0, 2, 2, 8, 0) +[2618115.162] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) +[2618115.167] {Default Queue} -> wl_surface#1895.commit() +[2618115.172] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) +[2618115.176] {Default Queue} -> wl_surface#1895.commit() +[2618115.181] {Default Queue} -> wl_compositor#1900.create_region(new id wl_region#1919) +[2618115.185] {Default Queue} -> wl_compositor#1900.create_region(new id wl_region#1920) +[2618115.189] {Default Queue} -> wl_region#1919.subtract(0, 0, 2, 2) +[2618115.193] {Default Queue} -> wl_region#1919.add(0, 0, 0, 0) +[2618115.198] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) +[2618115.203] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) +[2618115.207] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618115.211] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) +[2618115.218] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) +[2618115.223] {Default Queue} -> wl_surface#1895.commit() +[2618115.264] {Default Queue} -> wl_shm#1905.create_pool(new id wl_shm_pool#1921, fd 308, 640) +[2618115.271] {Default Queue} -> wl_shm#1905.create_pool(new id wl_shm_pool#1922, fd 309, 640) +[2618115.275] {Default Queue} -> wl_shm_pool#1921.create_buffer(new id wl_buffer#1923, 0, 10, 16, 40, 0) +[2618115.280] {Default Queue} -> wl_shm_pool#1922.create_buffer(new id wl_buffer#1924, 0, 10, 16, 40, 0) +[2618115.287] {Default Queue} -> wl_compositor#1900.create_surface(new id wl_surface#1925) +[2618115.291] {Default Queue} -> wl_surface#1925.attach(wl_buffer#1923, 0, 0) +[2618115.295] {Default Queue} -> wl_surface#1925.commit() +[2618115.301] {Default Queue} -> wl_surface#1925.attach(wl_buffer#1923, 0, 0) +[2618115.305] {Default Queue} -> wl_surface#1925.commit() +[2618115.310] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618115.319] {Default Queue} -> wl_region#1823.subtract(0, 0, 2, 2) +[2618115.324] {Default Queue} -> wl_subsurface#1818.set_position(3, 3) +[2618115.333] {Default Queue} -> wl_region#1823.subtract(0, 0, 5, 5) +[2618115.339] {Default Queue} -> wl_region#1823.add(0, 0, 0, 0) +[2618115.344] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) +[2618115.348] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) +[2618115.353] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618115.357] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618115.361] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) +[2618115.366] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) +[2618115.372] {Default Queue} -> wl_region#1823.subtract(0, 0, 5, 5) +[2618115.377] {Default Queue} -> wl_region#1823.add(0, 0, 0, 0) +[2618115.382] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) +[2618115.386] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) +[2618115.391] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1821, 0, 0) +[2618115.395] {Default Queue} -> wl_surface#1799.commit() +[2618115.403] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1926) +[2618115.407] {Default Queue} -> wl_display#1.sync(new id wl_callback#1927) +[2618119.027] {Display Queue} wl_display#1.delete_id(1927) +[2618119.043] {Default Queue} wl_keyboard#1896.keymap(1, fd 304, 68213) +[2618119.051] {Default Queue} wl_keyboard#1896.enter(566, wl_surface#19, array[0]) +[2618119.057] {Default Queue} wl_keyboard#1896.modifiers(566, 0, 0, 16, 0) +[2618119.064] {Default Queue} discarded wl_shm#1903.format(875709016) +[2618119.069] {Default Queue} discarded wl_shm#1903.format(1) +[2618119.074] {Default Queue} discarded wl_shm#1903.format(0) +[2618119.079] {Default Queue} discarded wl_shm#1903.format(875708993) +[2618119.084] {Default Queue} discarded wl_shm#1904.format(875709016) +[2618119.089] {Default Queue} discarded wl_shm#1904.format(1) +[2618119.094] {Default Queue} discarded wl_shm#1904.format(0) +[2618119.099] {Default Queue} discarded wl_shm#1904.format(875708993) +[2618119.104] {Default Queue} discarded wl_shm#1905.format(875709016) +[2618119.109] {Default Queue} discarded wl_shm#1905.format(1) +[2618119.114] {Default Queue} discarded wl_shm#1905.format(0) +[2618119.119] {Default Queue} discarded wl_shm#1905.format(875708993) +[2618119.124] {Default Queue} wl_seat#1912.capabilities(7) +[2618119.129] {Default Queue} -> wl_seat#1912.get_keyboard(new id wl_keyboard#1928) +[2618119.135] {Default Queue} -> wl_seat#1912.get_pointer(new id wl_pointer#1929) +[2618119.141] {Default Queue} -> wl_data_device_manager#1908.get_data_device(new id wl_data_device#1930, wl_seat#1912) +[2618119.146] {Default Queue} -> zwp_primary_selection_device_manager_v1#1910.get_device(new id zwp_primary_selection_device_v1#1931, wl_seat#1912) +[2618119.156] {Default Queue} wl_output#1913.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618119.163] {Default Queue} wl_output#1913.mode(3, 1280, 800, 60000) +[2618119.169] {Default Queue} discarded wl_surface#3.enter(wl_output#1913) +[2618119.174] {Default Queue} discarded wl_surface#999.enter(wl_output#1913) +[2618119.179] {Default Queue} discarded wl_surface#1191.enter(wl_output#1913) +[2618119.184] {Default Queue} discarded wl_surface#1159.enter(wl_output#1913) +[2618119.189] {Default Queue} discarded wl_surface#1703.enter(wl_output#1913) +[2618119.194] {Default Queue} discarded wl_surface#423.enter(wl_output#1913) +[2618119.199] {Default Queue} discarded wl_surface#1447.enter(wl_output#1913) +[2618119.204] {Default Queue} discarded wl_surface#1639.enter(wl_output#1913) +[2618119.208] {Default Queue} discarded wl_surface#1319.enter(wl_output#1913) +[2618119.213] {Default Queue} discarded wl_surface#1127.enter(wl_output#1913) +[2618119.218] {Default Queue} discarded wl_surface#1063.enter(wl_output#1913) +[2618119.223] {Default Queue} discarded wl_surface#455.enter(wl_output#1913) +[2618119.228] {Default Queue} discarded wl_surface#1575.enter(wl_output#1913) +[2618119.233] {Default Queue} discarded wl_surface#1799.enter(wl_output#1913) +[2618119.238] {Default Queue} discarded wl_surface#1415.enter(wl_output#1913) +[2618119.248] {Default Queue} discarded wl_surface#1831.enter(wl_output#1913) +[2618119.258] {Default Queue} discarded wl_surface#903.enter(wl_output#1913) +[2618119.263] {Default Queue} discarded wl_surface#775.enter(wl_output#1913) +[2618119.268] {Default Queue} discarded wl_surface#1543.enter(wl_output#1913) +[2618119.273] {Default Queue} discarded wl_surface#135.enter(wl_output#1913) +[2618119.278] {Default Queue} discarded wl_surface#1287.enter(wl_output#1913) +[2618119.283] {Default Queue} discarded wl_surface#1031.enter(wl_output#1913) +[2618119.288] {Default Queue} discarded wl_surface#615.enter(wl_output#1913) +[2618119.293] {Default Queue} discarded wl_surface#231.enter(wl_output#1913) +[2618119.298] {Default Queue} discarded wl_surface#1863.enter(wl_output#1913) +[2618119.304] {Default Queue} discarded wl_surface#359.enter(wl_output#1913) +[2618119.308] {Default Queue} discarded wl_surface#583.enter(wl_output#1913) +[2618119.313] {Default Queue} discarded wl_surface#743.enter(wl_output#1913) +[2618119.318] {Default Queue} discarded wl_surface#967.enter(wl_output#1913) +[2618119.323] {Default Queue} discarded wl_surface#103.enter(wl_output#1913) +[2618119.328] {Default Queue} discarded wl_surface#327.enter(wl_output#1913) +[2618119.333] {Default Queue} discarded wl_surface#43.enter(wl_output#1913) +[2618119.338] {Default Queue} discarded wl_surface#807.enter(wl_output#1913) +[2618119.343] {Default Queue} discarded wl_surface#19.enter(wl_output#1913) +[2618119.348] {Default Queue} discarded wl_surface#1511.enter(wl_output#1913) +[2618119.353] {Default Queue} discarded wl_surface#199.enter(wl_output#1913) +[2618119.358] {Default Queue} discarded wl_surface#391.enter(wl_output#1913) +[2618119.363] {Default Queue} discarded wl_surface#935.enter(wl_output#1913) +[2618119.368] {Default Queue} discarded wl_surface#1671.enter(wl_output#1913) +[2618119.373] {Default Queue} discarded wl_surface#1351.enter(wl_output#1913) +[2618119.378] {Default Queue} discarded wl_surface#711.enter(wl_output#1913) +[2618119.383] {Default Queue} discarded wl_surface#1223.enter(wl_output#1913) +[2618119.388] {Default Queue} discarded wl_surface#871.enter(wl_output#1913) +[2618119.392] {Default Queue} discarded wl_surface#263.enter(wl_output#1913) +[2618119.397] {Default Queue} discarded wl_surface#551.enter(wl_output#1913) +[2618119.402] {Default Queue} discarded wl_surface#1735.enter(wl_output#1913) +[2618119.407] {Default Queue} discarded wl_surface#1479.enter(wl_output#1913) +[2618119.412] {Default Queue} discarded wl_surface#1772.enter(wl_output#1913) +[2618119.417] {Default Queue} discarded wl_surface#647.enter(wl_output#1913) +[2618119.422] {Default Queue} discarded wl_surface#71.enter(wl_output#1913) +[2618119.427] {Default Queue} discarded wl_surface#839.enter(wl_output#1913) +[2618119.432] {Default Queue} discarded wl_surface#1607.enter(wl_output#1913) +[2618119.437] {Default Queue} discarded wl_surface#1095.enter(wl_output#1913) +[2618119.442] {Default Queue} discarded wl_surface#1383.enter(wl_output#1913) +[2618119.446] {Default Queue} discarded wl_surface#487.enter(wl_output#1913) +[2618119.451] {Default Queue} discarded wl_surface#519.enter(wl_output#1913) +[2618119.456] {Default Queue} discarded wl_surface#295.enter(wl_output#1913) +[2618119.461] {Default Queue} discarded wl_surface#167.enter(wl_output#1913) +[2618119.466] {Default Queue} discarded wl_surface#1255.enter(wl_output#1913) +[2618119.471] {Default Queue} discarded wl_surface#679.enter(wl_output#1913) +[2618119.476] {Default Queue} wl_registry#1926.global(1, "wl_compositor", 6) +[2618119.484] {Default Queue} -> wl_registry#1926.bind(1, "wl_compositor", 1, new id [unknown]#1932) +[2618119.490] {Default Queue} wl_registry#1926.global(2, "wl_subcompositor", 1) +[2618119.497] {Default Queue} -> wl_registry#1926.bind(2, "wl_subcompositor", 1, new id [unknown]#1933) +[2618119.503] {Default Queue} wl_registry#1926.global(3, "xdg_wm_base", 6) +[2618119.509] {Default Queue} -> wl_registry#1926.bind(3, "xdg_wm_base", 1, new id [unknown]#1934) +[2618119.517] {Default Queue} wl_registry#1926.global(6, "zwlr_layer_shell_v1", 5) +[2618119.526] {Default Queue} wl_registry#1926.global(7, "ext_session_lock_manager_v1", 1) +[2618119.534] {Default Queue} wl_registry#1926.global(8, "wl_shm", 2) +[2618119.540] {Default Queue} -> wl_registry#1926.bind(8, "wl_shm", 1, new id [unknown]#1935) +[2618119.546] {Default Queue} -> wl_registry#1926.bind(8, "wl_shm", 1, new id [unknown]#1936) +[2618119.551] {Default Queue} -> wl_registry#1926.bind(8, "wl_shm", 1, new id [unknown]#1937) +[2618119.556] {Default Queue} wl_registry#1926.global(9, "zxdg_output_manager_v1", 3) +[2618119.562] {Default Queue} wl_registry#1926.global(10, "wp_fractional_scale_manager_v1", 1) +[2618119.567] {Default Queue} wl_registry#1926.global(11, "zwp_tablet_manager_v2", 1) +[2618119.572] {Default Queue} wl_registry#1926.global(12, "zwp_pointer_gestures_v1", 3) +[2618119.578] {Default Queue} wl_registry#1926.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618119.583] {Default Queue} -> wl_registry#1926.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1938) +[2618119.589] {Default Queue} wl_registry#1926.global(14, "zwp_pointer_constraints_v1", 1) +[2618119.595] {Default Queue} -> wl_registry#1926.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1939) +[2618119.601] {Default Queue} wl_registry#1926.global(15, "ext_idle_notifier_v1", 2) +[2618119.606] {Default Queue} wl_registry#1926.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618119.612] {Default Queue} wl_registry#1926.global(17, "wl_data_device_manager", 3) +[2618119.617] {Default Queue} -> wl_registry#1926.bind(17, "wl_data_device_manager", 2, new id [unknown]#1940) +[2618119.623] {Default Queue} -> wl_data_device_manager#1940.create_data_source(new id wl_data_source#1941) +[2618119.629] {Default Queue} -> wl_data_source#1941.offer("text/plain") +[2618119.634] {Default Queue} -> wl_data_source#1941.offer("text/plain;charset=utf-8") +[2618119.639] {Default Queue} -> wl_data_source#1941.offer("TEXT") +[2618119.644] {Default Queue} -> wl_data_source#1941.offer("STRING") +[2618119.649] {Default Queue} -> wl_data_source#1941.offer("UTF8_STRING") +[2618119.654] {Default Queue} wl_registry#1926.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618119.660] {Default Queue} -> wl_registry#1926.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1942) +[2618119.670] {Default Queue} -> zwp_primary_selection_device_manager_v1#1942.create_source(new id zwp_primary_selection_source_v1#1943) +[2618119.679] {Default Queue} -> zwp_primary_selection_source_v1#1943.offer("text/plain") +[2618119.685] {Default Queue} -> zwp_primary_selection_source_v1#1943.offer("text/plain;charset=utf-8") +[2618119.690] {Default Queue} -> zwp_primary_selection_source_v1#1943.offer("TEXT") +[2618119.695] {Default Queue} -> zwp_primary_selection_source_v1#1943.offer("STRING") +[2618119.700] {Default Queue} -> zwp_primary_selection_source_v1#1943.offer("UTF8_STRING") +[2618119.705] {Default Queue} wl_registry#1926.global(19, "zwlr_data_control_manager_v1", 2) +[2618119.711] {Default Queue} wl_registry#1926.global(20, "ext_data_control_manager_v1", 1) +[2618119.716] {Default Queue} wl_registry#1926.global(21, "wp_presentation", 2) +[2618119.722] {Default Queue} wl_registry#1926.global(22, "wp_security_context_manager_v1", 1) +[2618119.727] {Default Queue} wl_registry#1926.global(23, "zwp_text_input_manager_v3", 1) +[2618119.732] {Default Queue} wl_registry#1926.global(24, "zwp_input_method_manager_v2", 1) +[2618119.738] {Default Queue} wl_registry#1926.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618119.743] {Default Queue} wl_registry#1926.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618119.749] {Default Queue} wl_registry#1926.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618119.754] {Default Queue} wl_registry#1926.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618119.760] {Default Queue} wl_registry#1926.global(29, "ext_workspace_manager_v1", 1) +[2618119.765] {Default Queue} wl_registry#1926.global(30, "zwlr_output_manager_v1", 4) +[2618119.770] {Default Queue} wl_registry#1926.global(31, "zwlr_screencopy_manager_v1", 3) +[2618119.780] {Default Queue} wl_registry#1926.global(32, "wp_viewporter", 1) +[2618119.787] {Default Queue} wl_registry#1926.global(33, "zxdg_exporter_v2", 1) +[2618119.792] {Default Queue} wl_registry#1926.global(34, "zxdg_importer_v2", 1) +[2618119.798] {Default Queue} wl_registry#1926.global(36, "xdg_activation_v1", 1) +[2618119.803] {Default Queue} wl_registry#1926.global(37, "mutter_x11_interop", 1) +[2618119.808] {Default Queue} wl_registry#1926.global(38, "wl_seat", 9) +[2618119.814] {Default Queue} -> wl_registry#1926.bind(38, "wl_seat", 1, new id [unknown]#1944) +[2618119.820] {Default Queue} wl_registry#1926.global(39, "wp_cursor_shape_manager_v1", 2) +[2618119.825] {Default Queue} wl_registry#1926.global(40, "wl_output", 4) +[2618119.831] {Default Queue} -> wl_registry#1926.bind(40, "wl_output", 1, new id [unknown]#1945) +[2618119.836] {Default Queue} wl_callback#1927.done(0) +[2618119.842] {Default Queue} discarded wl_surface#1895.enter(wl_output#18) +[2618119.847] {Default Queue} discarded wl_surface#1895.enter(wl_output#57) +[2618119.852] {Default Queue} discarded wl_surface#1895.enter(wl_output#89) +[2618119.857] {Default Queue} discarded wl_surface#1895.enter(wl_output#121) +[2618119.868] {Default Queue} discarded wl_surface#1895.enter(wl_output#153) +[2618119.873] {Default Queue} discarded wl_surface#1895.enter(wl_output#185) +[2618119.878] {Default Queue} discarded wl_surface#1895.enter(wl_output#217) +[2618119.882] {Default Queue} discarded wl_surface#1895.enter(wl_output#249) +[2618119.887] {Default Queue} discarded wl_surface#1895.enter(wl_output#281) +[2618119.892] {Default Queue} discarded wl_surface#1895.enter(wl_output#313) +[2618119.897] {Default Queue} discarded wl_surface#1895.enter(wl_output#345) +[2618119.902] {Default Queue} discarded wl_surface#1895.enter(wl_output#377) +[2618119.907] {Default Queue} discarded wl_surface#1895.enter(wl_output#409) +[2618119.912] {Default Queue} discarded wl_surface#1895.enter(wl_output#441) +[2618119.917] {Default Queue} discarded wl_surface#1895.enter(wl_output#473) +[2618119.922] {Default Queue} discarded wl_surface#1895.enter(wl_output#505) +[2618119.926] {Default Queue} discarded wl_surface#1895.enter(wl_output#537) +[2618119.930] {Default Queue} discarded wl_surface#1895.enter(wl_output#569) +[2618119.934] {Default Queue} discarded wl_surface#1895.enter(wl_output#601) +[2618119.938] {Default Queue} discarded wl_surface#1895.enter(wl_output#633) +[2618119.942] {Default Queue} discarded wl_surface#1895.enter(wl_output#665) +[2618119.946] {Default Queue} discarded wl_surface#1895.enter(wl_output#697) +[2618119.949] {Default Queue} discarded wl_surface#1895.enter(wl_output#729) +[2618119.953] {Default Queue} discarded wl_surface#1895.enter(wl_output#761) +[2618119.957] {Default Queue} discarded wl_surface#1895.enter(wl_output#793) +[2618119.961] {Default Queue} discarded wl_surface#1895.enter(wl_output#825) +[2618119.965] {Default Queue} discarded wl_surface#1895.enter(wl_output#857) +[2618119.969] {Default Queue} discarded wl_surface#1895.enter(wl_output#889) +[2618119.973] {Default Queue} discarded wl_surface#1895.enter(wl_output#921) +[2618119.977] {Default Queue} discarded wl_surface#1895.enter(wl_output#953) +[2618119.981] {Default Queue} discarded wl_surface#1895.enter(wl_output#985) +[2618119.985] {Default Queue} discarded wl_surface#1895.enter(wl_output#1017) +[2618119.988] {Default Queue} discarded wl_surface#1895.enter(wl_output#1049) +[2618119.992] {Default Queue} discarded wl_surface#1895.enter(wl_output#1081) +[2618119.996] {Default Queue} discarded wl_surface#1895.enter(wl_output#1113) +[2618120.000] {Default Queue} discarded wl_surface#1895.enter(wl_output#1145) +[2618120.004] {Default Queue} discarded wl_surface#1895.enter(wl_output#1177) +[2618120.008] {Default Queue} discarded wl_surface#1895.enter(wl_output#1209) +[2618120.012] {Default Queue} discarded wl_surface#1895.enter(wl_output#1241) +[2618120.016] {Default Queue} discarded wl_surface#1895.enter(wl_output#1273) +[2618120.020] {Default Queue} discarded wl_surface#1895.enter(wl_output#1305) +[2618120.024] {Default Queue} discarded wl_surface#1895.enter(wl_output#1337) +[2618120.029] {Default Queue} discarded wl_surface#1895.enter(wl_output#1369) +[2618120.034] {Default Queue} discarded wl_surface#1895.enter(wl_output#1401) +[2618120.038] {Default Queue} discarded wl_surface#1895.enter(wl_output#1433) +[2618120.042] {Default Queue} discarded wl_surface#1895.enter(wl_output#1465) +[2618120.046] {Default Queue} discarded wl_surface#1895.enter(wl_output#1497) +[2618120.050] {Default Queue} discarded wl_surface#1895.enter(wl_output#1529) +[2618120.054] {Default Queue} discarded wl_surface#1895.enter(wl_output#1561) +[2618120.058] {Default Queue} discarded wl_surface#1895.enter(wl_output#1593) +[2618120.062] {Default Queue} discarded wl_surface#1895.enter(wl_output#1625) +[2618120.066] {Default Queue} discarded wl_surface#1895.enter(wl_output#1657) +[2618120.070] {Default Queue} discarded wl_surface#1895.enter(wl_output#1689) +[2618120.074] {Default Queue} discarded wl_surface#1895.enter(wl_output#1721) +[2618120.078] {Default Queue} discarded wl_surface#1895.enter(wl_output#1753) +[2618120.082] {Default Queue} discarded wl_surface#1895.enter(wl_output#1785) +[2618120.086] {Default Queue} discarded wl_surface#1895.enter(wl_output#1817) +[2618120.090] {Default Queue} discarded wl_surface#1895.enter(wl_output#1849) +[2618120.096] {Default Queue} discarded wl_surface#1895.enter(wl_output#1881) +[2618120.100] {Default Queue} discarded wl_surface#1895.enter(wl_output#1913) +[2618120.104] {Default Queue} -> wl_compositor#876.create_surface(new id wl_surface#1927) +[2618120.109] {Default Queue} -> wl_subcompositor#1933.get_subsurface(new id wl_subsurface#1946, wl_surface#1927, wl_surface#871) +[2618120.117] {Default Queue} -> wl_subsurface#1946.set_desync() +[2618120.122] {Default Queue} -> wl_subsurface#1946.set_position(0, 0) +[2618120.126] {Default Queue} -> wl_subsurface#1946.place_above(wl_surface#871) +[2618120.171] {Default Queue} -> wl_shm#1935.create_pool(new id wl_shm_pool#1947, fd 309, 16) +[2618120.178] {Default Queue} -> wl_shm#1935.create_pool(new id wl_shm_pool#1948, fd 310, 16) +[2618120.182] {Default Queue} -> wl_shm_pool#1947.create_buffer(new id wl_buffer#1949, 0, 2, 2, 8, 0) +[2618120.187] {Default Queue} -> wl_shm_pool#1948.create_buffer(new id wl_buffer#1950, 0, 2, 2, 8, 0) +[2618120.195] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) +[2618120.199] {Default Queue} -> wl_surface#1927.commit() +[2618120.205] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) +[2618120.209] {Default Queue} -> wl_surface#1927.commit() +[2618120.213] {Default Queue} -> wl_compositor#1932.create_region(new id wl_region#1951) +[2618120.218] {Default Queue} -> wl_compositor#1932.create_region(new id wl_region#1952) +[2618120.222] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) +[2618120.227] {Default Queue} -> wl_region#1951.add(0, 0, 0, 0) +[2618120.231] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618120.235] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618120.239] {Default Queue} -> wl_surface#1927.damage(0, 0, 2, 2) +[2618120.244] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) +[2618120.251] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) +[2618120.255] {Default Queue} -> wl_surface#1927.commit() +[2618120.291] {Default Queue} -> wl_shm#1937.create_pool(new id wl_shm_pool#1953, fd 313, 640) +[2618120.298] {Default Queue} -> wl_shm#1937.create_pool(new id wl_shm_pool#1954, fd 314, 640) +[2618120.302] {Default Queue} -> wl_shm_pool#1953.create_buffer(new id wl_buffer#1955, 0, 10, 16, 40, 0) +[2618120.307] {Default Queue} -> wl_shm_pool#1954.create_buffer(new id wl_buffer#1956, 0, 10, 16, 40, 0) +[2618120.314] {Default Queue} -> wl_compositor#1932.create_surface(new id wl_surface#1957) +[2618120.318] {Default Queue} -> wl_surface#1957.attach(wl_buffer#1955, 0, 0) +[2618120.323] {Default Queue} -> wl_surface#1957.commit() +[2618120.329] {Default Queue} -> wl_surface#1957.attach(wl_buffer#1955, 0, 0) +[2618120.333] {Default Queue} -> wl_surface#1957.commit() +[2618120.341] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) +[2618120.348] {Default Queue} -> wl_surface#1927.damage(0, 0, 2, 2) +[2618120.353] {Default Queue} -> wl_surface#1927.damage(0, 0, 2, 2) +[2618120.361] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1958) +[2618120.366] {Default Queue} -> wl_display#1.sync(new id wl_callback#1959) +[2618124.077] {Display Queue} wl_display#1.delete_id(1959) +[2618124.087] {Default Queue} wl_keyboard#1928.keymap(1, fd 309, 68213) +[2618124.094] {Default Queue} wl_keyboard#1928.enter(566, wl_surface#19, array[0]) +[2618124.100] {Default Queue} wl_keyboard#1928.modifiers(566, 0, 0, 16, 0) +[2618124.106] {Default Queue} discarded wl_shm#1935.format(875709016) +[2618124.111] {Default Queue} discarded wl_shm#1935.format(1) +[2618124.116] {Default Queue} discarded wl_shm#1935.format(0) +[2618124.121] {Default Queue} discarded wl_shm#1935.format(875708993) +[2618124.126] {Default Queue} discarded wl_shm#1936.format(875709016) +[2618124.131] {Default Queue} discarded wl_shm#1936.format(1) +[2618124.135] {Default Queue} discarded wl_shm#1936.format(0) +[2618124.140] {Default Queue} discarded wl_shm#1936.format(875708993) +[2618124.145] {Default Queue} discarded wl_shm#1937.format(875709016) +[2618124.150] {Default Queue} discarded wl_shm#1937.format(1) +[2618124.155] {Default Queue} discarded wl_shm#1937.format(0) +[2618124.160] {Default Queue} discarded wl_shm#1937.format(875708993) +[2618124.164] {Default Queue} wl_seat#1944.capabilities(7) +[2618124.170] {Default Queue} -> wl_seat#1944.get_keyboard(new id wl_keyboard#1960) +[2618124.175] {Default Queue} -> wl_seat#1944.get_pointer(new id wl_pointer#1961) +[2618124.181] {Default Queue} -> wl_data_device_manager#1940.get_data_device(new id wl_data_device#1962, wl_seat#1944) +[2618124.186] {Default Queue} -> zwp_primary_selection_device_manager_v1#1942.get_device(new id zwp_primary_selection_device_v1#1963, wl_seat#1944) +[2618124.196] {Default Queue} wl_output#1945.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618124.202] {Default Queue} wl_output#1945.mode(3, 1280, 800, 60000) +[2618124.208] {Default Queue} discarded wl_surface#3.enter(wl_output#1945) +[2618124.213] {Default Queue} discarded wl_surface#999.enter(wl_output#1945) +[2618124.218] {Default Queue} discarded wl_surface#1191.enter(wl_output#1945) +[2618124.223] {Default Queue} discarded wl_surface#1159.enter(wl_output#1945) +[2618124.228] {Default Queue} discarded wl_surface#1703.enter(wl_output#1945) +[2618124.232] {Default Queue} discarded wl_surface#423.enter(wl_output#1945) +[2618124.237] {Default Queue} discarded wl_surface#1447.enter(wl_output#1945) +[2618124.242] {Default Queue} discarded wl_surface#1639.enter(wl_output#1945) +[2618124.247] {Default Queue} discarded wl_surface#1319.enter(wl_output#1945) +[2618124.252] {Default Queue} discarded wl_surface#1127.enter(wl_output#1945) +[2618124.257] {Default Queue} discarded wl_surface#1063.enter(wl_output#1945) +[2618124.262] {Default Queue} discarded wl_surface#455.enter(wl_output#1945) +[2618124.266] {Default Queue} discarded wl_surface#1575.enter(wl_output#1945) +[2618124.271] {Default Queue} discarded wl_surface#1799.enter(wl_output#1945) +[2618124.276] {Default Queue} discarded wl_surface#1415.enter(wl_output#1945) +[2618124.281] {Default Queue} discarded wl_surface#1831.enter(wl_output#1945) +[2618124.286] {Default Queue} discarded wl_surface#903.enter(wl_output#1945) +[2618124.290] {Default Queue} discarded wl_surface#775.enter(wl_output#1945) +[2618124.295] {Default Queue} discarded wl_surface#1543.enter(wl_output#1945) +[2618124.300] {Default Queue} discarded wl_surface#135.enter(wl_output#1945) +[2618124.305] {Default Queue} discarded wl_surface#1287.enter(wl_output#1945) +[2618124.310] {Default Queue} discarded wl_surface#1031.enter(wl_output#1945) +[2618124.315] {Default Queue} discarded wl_surface#615.enter(wl_output#1945) +[2618124.320] {Default Queue} discarded wl_surface#231.enter(wl_output#1945) +[2618124.325] {Default Queue} discarded wl_surface#1863.enter(wl_output#1945) +[2618124.329] {Default Queue} discarded wl_surface#359.enter(wl_output#1945) +[2618124.339] {Default Queue} discarded wl_surface#583.enter(wl_output#1945) +[2618124.347] {Default Queue} discarded wl_surface#743.enter(wl_output#1945) +[2618124.352] {Default Queue} discarded wl_surface#967.enter(wl_output#1945) +[2618124.357] {Default Queue} discarded wl_surface#103.enter(wl_output#1945) +[2618124.361] {Default Queue} discarded wl_surface#327.enter(wl_output#1945) +[2618124.366] {Default Queue} discarded wl_surface#43.enter(wl_output#1945) +[2618124.371] {Default Queue} discarded wl_surface#807.enter(wl_output#1945) +[2618124.376] {Default Queue} discarded wl_surface#19.enter(wl_output#1945) +[2618124.381] {Default Queue} discarded wl_surface#1511.enter(wl_output#1945) +[2618124.386] {Default Queue} discarded wl_surface#199.enter(wl_output#1945) +[2618124.390] {Default Queue} discarded wl_surface#391.enter(wl_output#1945) +[2618124.395] {Default Queue} discarded wl_surface#935.enter(wl_output#1945) +[2618124.400] {Default Queue} discarded wl_surface#1671.enter(wl_output#1945) +[2618124.405] {Default Queue} discarded wl_surface#1351.enter(wl_output#1945) +[2618124.410] {Default Queue} discarded wl_surface#711.enter(wl_output#1945) +[2618124.415] {Default Queue} discarded wl_surface#1223.enter(wl_output#1945) +[2618124.420] {Default Queue} discarded wl_surface#871.enter(wl_output#1945) +[2618124.425] {Default Queue} discarded wl_surface#1895.enter(wl_output#1945) +[2618124.429] {Default Queue} discarded wl_surface#263.enter(wl_output#1945) +[2618124.434] {Default Queue} discarded wl_surface#551.enter(wl_output#1945) +[2618124.439] {Default Queue} discarded wl_surface#1735.enter(wl_output#1945) +[2618124.444] {Default Queue} discarded wl_surface#1479.enter(wl_output#1945) +[2618124.449] {Default Queue} discarded wl_surface#1772.enter(wl_output#1945) +[2618124.454] {Default Queue} discarded wl_surface#647.enter(wl_output#1945) +[2618124.459] {Default Queue} discarded wl_surface#71.enter(wl_output#1945) +[2618124.464] {Default Queue} discarded wl_surface#839.enter(wl_output#1945) +[2618124.469] {Default Queue} discarded wl_surface#1607.enter(wl_output#1945) +[2618124.474] {Default Queue} discarded wl_surface#1095.enter(wl_output#1945) +[2618124.479] {Default Queue} discarded wl_surface#1383.enter(wl_output#1945) +[2618124.484] {Default Queue} discarded wl_surface#487.enter(wl_output#1945) +[2618124.489] {Default Queue} discarded wl_surface#519.enter(wl_output#1945) +[2618124.494] {Default Queue} discarded wl_surface#295.enter(wl_output#1945) +[2618124.499] {Default Queue} discarded wl_surface#167.enter(wl_output#1945) +[2618124.504] {Default Queue} discarded wl_surface#1255.enter(wl_output#1945) +[2618124.509] {Default Queue} discarded wl_surface#679.enter(wl_output#1945) +[2618124.514] {Default Queue} wl_registry#1958.global(1, "wl_compositor", 6) +[2618124.520] {Default Queue} -> wl_registry#1958.bind(1, "wl_compositor", 1, new id [unknown]#1964) +[2618124.526] {Default Queue} wl_registry#1958.global(2, "wl_subcompositor", 1) +[2618124.531] {Default Queue} -> wl_registry#1958.bind(2, "wl_subcompositor", 1, new id [unknown]#1965) +[2618124.537] {Default Queue} wl_registry#1958.global(3, "xdg_wm_base", 6) +[2618124.543] {Default Queue} -> wl_registry#1958.bind(3, "xdg_wm_base", 1, new id [unknown]#1966) +[2618124.550] {Default Queue} wl_registry#1958.global(6, "zwlr_layer_shell_v1", 5) +[2618124.556] {Default Queue} wl_registry#1958.global(7, "ext_session_lock_manager_v1", 1) +[2618124.561] {Default Queue} wl_registry#1958.global(8, "wl_shm", 2) +[2618124.567] {Default Queue} -> wl_registry#1958.bind(8, "wl_shm", 1, new id [unknown]#1967) +[2618124.572] {Default Queue} -> wl_registry#1958.bind(8, "wl_shm", 1, new id [unknown]#1968) +[2618124.578] {Default Queue} -> wl_registry#1958.bind(8, "wl_shm", 1, new id [unknown]#1969) +[2618124.584] {Default Queue} wl_registry#1958.global(9, "zxdg_output_manager_v1", 3) +[2618124.589] {Default Queue} wl_registry#1958.global(10, "wp_fractional_scale_manager_v1", 1) +[2618124.594] {Default Queue} wl_registry#1958.global(11, "zwp_tablet_manager_v2", 1) +[2618124.600] {Default Queue} wl_registry#1958.global(12, "zwp_pointer_gestures_v1", 3) +[2618124.609] {Default Queue} wl_registry#1958.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618124.616] {Default Queue} -> wl_registry#1958.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1970) +[2618124.622] {Default Queue} wl_registry#1958.global(14, "zwp_pointer_constraints_v1", 1) +[2618124.627] {Default Queue} -> wl_registry#1958.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1971) +[2618124.633] {Default Queue} wl_registry#1958.global(15, "ext_idle_notifier_v1", 2) +[2618124.638] {Default Queue} wl_registry#1958.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618124.644] {Default Queue} wl_registry#1958.global(17, "wl_data_device_manager", 3) +[2618124.650] {Default Queue} -> wl_registry#1958.bind(17, "wl_data_device_manager", 2, new id [unknown]#1972) +[2618124.656] {Default Queue} -> wl_data_device_manager#1972.create_data_source(new id wl_data_source#1973) +[2618124.661] {Default Queue} -> wl_data_source#1973.offer("text/plain") +[2618124.666] {Default Queue} -> wl_data_source#1973.offer("text/plain;charset=utf-8") +[2618124.671] {Default Queue} -> wl_data_source#1973.offer("TEXT") +[2618124.676] {Default Queue} -> wl_data_source#1973.offer("STRING") +[2618124.682] {Default Queue} -> wl_data_source#1973.offer("UTF8_STRING") +[2618124.687] {Default Queue} wl_registry#1958.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618124.693] {Default Queue} -> wl_registry#1958.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1974) +[2618124.702] {Default Queue} -> zwp_primary_selection_device_manager_v1#1974.create_source(new id zwp_primary_selection_source_v1#1975) +[2618124.712] {Default Queue} -> zwp_primary_selection_source_v1#1975.offer("text/plain") +[2618124.717] {Default Queue} -> zwp_primary_selection_source_v1#1975.offer("text/plain;charset=utf-8") +[2618124.722] {Default Queue} -> zwp_primary_selection_source_v1#1975.offer("TEXT") +[2618124.727] {Default Queue} -> zwp_primary_selection_source_v1#1975.offer("STRING") +[2618124.732] {Default Queue} -> zwp_primary_selection_source_v1#1975.offer("UTF8_STRING") +[2618124.737] {Default Queue} wl_registry#1958.global(19, "zwlr_data_control_manager_v1", 2) +[2618124.743] {Default Queue} wl_registry#1958.global(20, "ext_data_control_manager_v1", 1) +[2618124.748] {Default Queue} wl_registry#1958.global(21, "wp_presentation", 2) +[2618124.754] {Default Queue} wl_registry#1958.global(22, "wp_security_context_manager_v1", 1) +[2618124.759] {Default Queue} wl_registry#1958.global(23, "zwp_text_input_manager_v3", 1) +[2618124.765] {Default Queue} wl_registry#1958.global(24, "zwp_input_method_manager_v2", 1) +[2618124.770] {Default Queue} wl_registry#1958.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618124.776] {Default Queue} wl_registry#1958.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618124.781] {Default Queue} wl_registry#1958.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618124.787] {Default Queue} wl_registry#1958.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618124.792] {Default Queue} wl_registry#1958.global(29, "ext_workspace_manager_v1", 1) +[2618124.797] {Default Queue} wl_registry#1958.global(30, "zwlr_output_manager_v1", 4) +[2618124.803] {Default Queue} wl_registry#1958.global(31, "zwlr_screencopy_manager_v1", 3) +[2618124.809] {Default Queue} wl_registry#1958.global(32, "wp_viewporter", 1) +[2618124.814] {Default Queue} wl_registry#1958.global(33, "zxdg_exporter_v2", 1) +[2618124.820] {Default Queue} wl_registry#1958.global(34, "zxdg_importer_v2", 1) +[2618124.825] {Default Queue} wl_registry#1958.global(36, "xdg_activation_v1", 1) +[2618124.830] {Default Queue} wl_registry#1958.global(37, "mutter_x11_interop", 1) +[2618124.836] {Default Queue} wl_registry#1958.global(38, "wl_seat", 9) +[2618124.841] {Default Queue} -> wl_registry#1958.bind(38, "wl_seat", 1, new id [unknown]#1976) +[2618124.847] {Default Queue} wl_registry#1958.global(39, "wp_cursor_shape_manager_v1", 2) +[2618124.852] {Default Queue} wl_registry#1958.global(40, "wl_output", 4) +[2618124.863] {Default Queue} -> wl_registry#1958.bind(40, "wl_output", 1, new id [unknown]#1977) +[2618124.875] {Default Queue} wl_callback#1959.done(0) +[2618124.881] {Default Queue} discarded wl_surface#1927.enter(wl_output#18) +[2618124.886] {Default Queue} discarded wl_surface#1927.enter(wl_output#57) +[2618124.891] {Default Queue} discarded wl_surface#1927.enter(wl_output#89) +[2618124.896] {Default Queue} discarded wl_surface#1927.enter(wl_output#121) +[2618124.901] {Default Queue} discarded wl_surface#1927.enter(wl_output#153) +[2618124.906] {Default Queue} discarded wl_surface#1927.enter(wl_output#185) +[2618124.911] {Default Queue} discarded wl_surface#1927.enter(wl_output#217) +[2618124.916] {Default Queue} discarded wl_surface#1927.enter(wl_output#249) +[2618124.921] {Default Queue} discarded wl_surface#1927.enter(wl_output#281) +[2618124.926] {Default Queue} discarded wl_surface#1927.enter(wl_output#313) +[2618124.930] {Default Queue} discarded wl_surface#1927.enter(wl_output#345) +[2618124.935] {Default Queue} discarded wl_surface#1927.enter(wl_output#377) +[2618124.940] {Default Queue} discarded wl_surface#1927.enter(wl_output#409) +[2618124.945] {Default Queue} discarded wl_surface#1927.enter(wl_output#441) +[2618124.950] {Default Queue} discarded wl_surface#1927.enter(wl_output#473) +[2618124.955] {Default Queue} discarded wl_surface#1927.enter(wl_output#505) +[2618124.959] {Default Queue} discarded wl_surface#1927.enter(wl_output#537) +[2618124.963] {Default Queue} discarded wl_surface#1927.enter(wl_output#569) +[2618124.966] {Default Queue} discarded wl_surface#1927.enter(wl_output#601) +[2618124.970] {Default Queue} discarded wl_surface#1927.enter(wl_output#633) +[2618124.974] {Default Queue} discarded wl_surface#1927.enter(wl_output#665) +[2618124.978] {Default Queue} discarded wl_surface#1927.enter(wl_output#697) +[2618124.982] {Default Queue} discarded wl_surface#1927.enter(wl_output#729) +[2618124.986] {Default Queue} discarded wl_surface#1927.enter(wl_output#761) +[2618124.990] {Default Queue} discarded wl_surface#1927.enter(wl_output#793) +[2618124.994] {Default Queue} discarded wl_surface#1927.enter(wl_output#825) +[2618124.998] {Default Queue} discarded wl_surface#1927.enter(wl_output#857) +[2618125.002] {Default Queue} discarded wl_surface#1927.enter(wl_output#889) +[2618125.006] {Default Queue} discarded wl_surface#1927.enter(wl_output#921) +[2618125.010] {Default Queue} discarded wl_surface#1927.enter(wl_output#953) +[2618125.014] {Default Queue} discarded wl_surface#1927.enter(wl_output#985) +[2618125.018] {Default Queue} discarded wl_surface#1927.enter(wl_output#1017) +[2618125.022] {Default Queue} discarded wl_surface#1927.enter(wl_output#1049) +[2618125.026] {Default Queue} discarded wl_surface#1927.enter(wl_output#1081) +[2618125.030] {Default Queue} discarded wl_surface#1927.enter(wl_output#1113) +[2618125.034] {Default Queue} discarded wl_surface#1927.enter(wl_output#1145) +[2618125.038] {Default Queue} discarded wl_surface#1927.enter(wl_output#1177) +[2618125.042] {Default Queue} discarded wl_surface#1927.enter(wl_output#1209) +[2618125.045] {Default Queue} discarded wl_surface#1927.enter(wl_output#1241) +[2618125.049] {Default Queue} discarded wl_surface#1927.enter(wl_output#1273) +[2618125.053] {Default Queue} discarded wl_surface#1927.enter(wl_output#1305) +[2618125.057] {Default Queue} discarded wl_surface#1927.enter(wl_output#1337) +[2618125.061] {Default Queue} discarded wl_surface#1927.enter(wl_output#1369) +[2618125.065] {Default Queue} discarded wl_surface#1927.enter(wl_output#1401) +[2618125.069] {Default Queue} discarded wl_surface#1927.enter(wl_output#1433) +[2618125.073] {Default Queue} discarded wl_surface#1927.enter(wl_output#1465) +[2618125.077] {Default Queue} discarded wl_surface#1927.enter(wl_output#1497) +[2618125.081] {Default Queue} discarded wl_surface#1927.enter(wl_output#1529) +[2618125.085] {Default Queue} discarded wl_surface#1927.enter(wl_output#1561) +[2618125.089] {Default Queue} discarded wl_surface#1927.enter(wl_output#1593) +[2618125.093] {Default Queue} discarded wl_surface#1927.enter(wl_output#1625) +[2618125.100] {Default Queue} discarded wl_surface#1927.enter(wl_output#1657) +[2618125.105] {Default Queue} discarded wl_surface#1927.enter(wl_output#1689) +[2618125.110] {Default Queue} discarded wl_surface#1927.enter(wl_output#1721) +[2618125.114] {Default Queue} discarded wl_surface#1927.enter(wl_output#1753) +[2618125.118] {Default Queue} discarded wl_surface#1927.enter(wl_output#1785) +[2618125.121] {Default Queue} discarded wl_surface#1927.enter(wl_output#1817) +[2618125.125] {Default Queue} discarded wl_surface#1927.enter(wl_output#1849) +[2618125.129] {Default Queue} discarded wl_surface#1927.enter(wl_output#1881) +[2618125.133] {Default Queue} discarded wl_surface#1927.enter(wl_output#1913) +[2618125.137] {Default Queue} discarded wl_surface#1927.enter(wl_output#1945) +[2618125.141] {Default Queue} -> wl_compositor#1932.create_surface(new id wl_surface#1959) +[2618125.145] {Default Queue} -> wl_subcompositor#1965.get_subsurface(new id wl_subsurface#1978, wl_surface#1959, wl_surface#1927) +[2618125.153] {Default Queue} -> wl_subsurface#1978.set_desync() +[2618125.157] {Default Queue} -> wl_subsurface#1978.set_position(0, 0) +[2618125.162] {Default Queue} -> wl_subsurface#1978.place_above(wl_surface#1927) +[2618125.208] {Default Queue} -> wl_shm#1967.create_pool(new id wl_shm_pool#1979, fd 314, 16) +[2618125.214] {Default Queue} -> wl_shm#1967.create_pool(new id wl_shm_pool#1980, fd 315, 16) +[2618125.219] {Default Queue} -> wl_shm_pool#1979.create_buffer(new id wl_buffer#1981, 0, 2, 2, 8, 0) +[2618125.224] {Default Queue} -> wl_shm_pool#1980.create_buffer(new id wl_buffer#1982, 0, 2, 2, 8, 0) +[2618125.232] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1981, 0, 0) +[2618125.236] {Default Queue} -> wl_surface#1959.commit() +[2618125.241] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1981, 0, 0) +[2618125.246] {Default Queue} -> wl_surface#1959.commit() +[2618125.250] {Default Queue} -> wl_compositor#1964.create_region(new id wl_region#1983) +[2618125.254] {Default Queue} -> wl_compositor#1964.create_region(new id wl_region#1984) +[2618125.258] {Default Queue} -> wl_region#1983.subtract(0, 0, 2, 2) +[2618125.263] {Default Queue} -> wl_region#1983.add(0, 0, 0, 0) +[2618125.268] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) +[2618125.272] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) +[2618125.276] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) +[2618125.280] {Default Queue} -> wl_surface#1927.damage(0, 0, 2, 2) +[2618125.287] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1981, 0, 0) +[2618125.291] {Default Queue} -> wl_surface#1959.commit() +[2618125.325] {Default Queue} -> wl_shm#1969.create_pool(new id wl_shm_pool#1985, fd 318, 640) +[2618125.331] {Default Queue} -> wl_shm#1969.create_pool(new id wl_shm_pool#1986, fd 319, 640) +[2618125.336] {Default Queue} -> wl_shm_pool#1985.create_buffer(new id wl_buffer#1987, 0, 10, 16, 40, 0) +[2618125.340] {Default Queue} -> wl_shm_pool#1986.create_buffer(new id wl_buffer#1988, 0, 10, 16, 40, 0) +[2618125.347] {Default Queue} -> wl_compositor#1964.create_surface(new id wl_surface#1989) +[2618125.351] {Default Queue} -> wl_surface#1989.attach(wl_buffer#1987, 0, 0) +[2618125.356] {Default Queue} -> wl_surface#1989.commit() +[2618125.361] {Default Queue} -> wl_surface#1989.attach(wl_buffer#1987, 0, 0) +[2618125.365] {Default Queue} -> wl_surface#1989.commit() +[2618125.371] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) +[2618125.378] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1990) +[2618125.383] {Default Queue} -> wl_display#1.sync(new id wl_callback#1991) +[2618129.062] {Display Queue} wl_display#1.delete_id(1991) +[2618129.078] {Default Queue} wl_keyboard#1960.keymap(1, fd 314, 68213) +[2618129.085] {Default Queue} wl_keyboard#1960.enter(566, wl_surface#19, array[0]) +[2618129.092] {Default Queue} wl_keyboard#1960.modifiers(566, 0, 0, 16, 0) +[2618129.097] {Default Queue} discarded wl_shm#1967.format(875709016) +[2618129.103] {Default Queue} discarded wl_shm#1967.format(1) +[2618129.113] {Default Queue} discarded wl_shm#1967.format(0) +[2618129.122] {Default Queue} discarded wl_shm#1967.format(875708993) +[2618129.127] {Default Queue} discarded wl_shm#1968.format(875709016) +[2618129.132] {Default Queue} discarded wl_shm#1968.format(1) +[2618129.138] {Default Queue} discarded wl_shm#1968.format(0) +[2618129.143] {Default Queue} discarded wl_shm#1968.format(875708993) +[2618129.148] {Default Queue} discarded wl_shm#1969.format(875709016) +[2618129.153] {Default Queue} discarded wl_shm#1969.format(1) +[2618129.158] {Default Queue} discarded wl_shm#1969.format(0) +[2618129.162] {Default Queue} discarded wl_shm#1969.format(875708993) +[2618129.167] {Default Queue} wl_seat#1976.capabilities(7) +[2618129.173] {Default Queue} -> wl_seat#1976.get_keyboard(new id wl_keyboard#1992) +[2618129.179] {Default Queue} -> wl_seat#1976.get_pointer(new id wl_pointer#1993) +[2618129.184] {Default Queue} -> wl_data_device_manager#1972.get_data_device(new id wl_data_device#1994, wl_seat#1976) +[2618129.190] {Default Queue} -> zwp_primary_selection_device_manager_v1#1974.get_device(new id zwp_primary_selection_device_v1#1995, wl_seat#1976) +[2618129.200] {Default Queue} wl_output#1977.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618129.206] {Default Queue} wl_output#1977.mode(3, 1280, 800, 60000) +[2618129.212] {Default Queue} discarded wl_surface#3.enter(wl_output#1977) +[2618129.217] {Default Queue} discarded wl_surface#999.enter(wl_output#1977) +[2618129.222] {Default Queue} discarded wl_surface#1191.enter(wl_output#1977) +[2618129.227] {Default Queue} discarded wl_surface#1159.enter(wl_output#1977) +[2618129.232] {Default Queue} discarded wl_surface#1703.enter(wl_output#1977) +[2618129.237] {Default Queue} discarded wl_surface#423.enter(wl_output#1977) +[2618129.241] {Default Queue} discarded wl_surface#1447.enter(wl_output#1977) +[2618129.246] {Default Queue} discarded wl_surface#1639.enter(wl_output#1977) +[2618129.251] {Default Queue} discarded wl_surface#1319.enter(wl_output#1977) +[2618129.256] {Default Queue} discarded wl_surface#1127.enter(wl_output#1977) +[2618129.261] {Default Queue} discarded wl_surface#1063.enter(wl_output#1977) +[2618129.266] {Default Queue} discarded wl_surface#455.enter(wl_output#1977) +[2618129.271] {Default Queue} discarded wl_surface#1575.enter(wl_output#1977) +[2618129.275] {Default Queue} discarded wl_surface#1799.enter(wl_output#1977) +[2618129.280] {Default Queue} discarded wl_surface#1415.enter(wl_output#1977) +[2618129.285] {Default Queue} discarded wl_surface#1831.enter(wl_output#1977) +[2618129.290] {Default Queue} discarded wl_surface#903.enter(wl_output#1977) +[2618129.295] {Default Queue} discarded wl_surface#775.enter(wl_output#1977) +[2618129.300] {Default Queue} discarded wl_surface#1543.enter(wl_output#1977) +[2618129.304] {Default Queue} discarded wl_surface#135.enter(wl_output#1977) +[2618129.309] {Default Queue} discarded wl_surface#1287.enter(wl_output#1977) +[2618129.314] {Default Queue} discarded wl_surface#1031.enter(wl_output#1977) +[2618129.319] {Default Queue} discarded wl_surface#615.enter(wl_output#1977) +[2618129.324] {Default Queue} discarded wl_surface#231.enter(wl_output#1977) +[2618129.329] {Default Queue} discarded wl_surface#1863.enter(wl_output#1977) +[2618129.334] {Default Queue} discarded wl_surface#359.enter(wl_output#1977) +[2618129.339] {Default Queue} discarded wl_surface#583.enter(wl_output#1977) +[2618129.344] {Default Queue} discarded wl_surface#743.enter(wl_output#1977) +[2618129.349] {Default Queue} discarded wl_surface#967.enter(wl_output#1977) +[2618129.354] {Default Queue} discarded wl_surface#103.enter(wl_output#1977) +[2618129.359] {Default Queue} discarded wl_surface#327.enter(wl_output#1977) +[2618129.363] {Default Queue} discarded wl_surface#43.enter(wl_output#1977) +[2618129.368] {Default Queue} discarded wl_surface#807.enter(wl_output#1977) +[2618129.373] {Default Queue} discarded wl_surface#19.enter(wl_output#1977) +[2618129.378] {Default Queue} discarded wl_surface#1511.enter(wl_output#1977) +[2618129.383] {Default Queue} discarded wl_surface#199.enter(wl_output#1977) +[2618129.393] {Default Queue} discarded wl_surface#391.enter(wl_output#1977) +[2618129.399] {Default Queue} discarded wl_surface#935.enter(wl_output#1977) +[2618129.404] {Default Queue} discarded wl_surface#1671.enter(wl_output#1977) +[2618129.409] {Default Queue} discarded wl_surface#1351.enter(wl_output#1977) +[2618129.414] {Default Queue} discarded wl_surface#711.enter(wl_output#1977) +[2618129.419] {Default Queue} discarded wl_surface#1223.enter(wl_output#1977) +[2618129.424] {Default Queue} discarded wl_surface#1927.enter(wl_output#1977) +[2618129.429] {Default Queue} discarded wl_surface#871.enter(wl_output#1977) +[2618129.434] {Default Queue} discarded wl_surface#1895.enter(wl_output#1977) +[2618129.439] {Default Queue} discarded wl_surface#263.enter(wl_output#1977) +[2618129.444] {Default Queue} discarded wl_surface#551.enter(wl_output#1977) +[2618129.449] {Default Queue} discarded wl_surface#1735.enter(wl_output#1977) +[2618129.454] {Default Queue} discarded wl_surface#1479.enter(wl_output#1977) +[2618129.458] {Default Queue} discarded wl_surface#1772.enter(wl_output#1977) +[2618129.463] {Default Queue} discarded wl_surface#647.enter(wl_output#1977) +[2618129.468] {Default Queue} discarded wl_surface#71.enter(wl_output#1977) +[2618129.473] {Default Queue} discarded wl_surface#839.enter(wl_output#1977) +[2618129.478] {Default Queue} discarded wl_surface#1607.enter(wl_output#1977) +[2618129.483] {Default Queue} discarded wl_surface#1095.enter(wl_output#1977) +[2618129.488] {Default Queue} discarded wl_surface#1383.enter(wl_output#1977) +[2618129.492] {Default Queue} discarded wl_surface#487.enter(wl_output#1977) +[2618129.497] {Default Queue} discarded wl_surface#519.enter(wl_output#1977) +[2618129.502] {Default Queue} discarded wl_surface#295.enter(wl_output#1977) +[2618129.507] {Default Queue} discarded wl_surface#167.enter(wl_output#1977) +[2618129.512] {Default Queue} discarded wl_surface#1255.enter(wl_output#1977) +[2618129.517] {Default Queue} discarded wl_surface#679.enter(wl_output#1977) +[2618129.521] {Default Queue} wl_registry#1990.global(1, "wl_compositor", 6) +[2618129.528] {Default Queue} -> wl_registry#1990.bind(1, "wl_compositor", 1, new id [unknown]#1996) +[2618129.534] {Default Queue} wl_registry#1990.global(2, "wl_subcompositor", 1) +[2618129.540] {Default Queue} -> wl_registry#1990.bind(2, "wl_subcompositor", 1, new id [unknown]#1997) +[2618129.545] {Default Queue} wl_registry#1990.global(3, "xdg_wm_base", 6) +[2618129.552] {Default Queue} -> wl_registry#1990.bind(3, "xdg_wm_base", 1, new id [unknown]#1998) +[2618129.557] {Default Queue} wl_registry#1990.global(6, "zwlr_layer_shell_v1", 5) +[2618129.563] {Default Queue} wl_registry#1990.global(7, "ext_session_lock_manager_v1", 1) +[2618129.570] {Default Queue} wl_registry#1990.global(8, "wl_shm", 2) +[2618129.576] {Default Queue} -> wl_registry#1990.bind(8, "wl_shm", 1, new id [unknown]#1999) +[2618129.582] {Default Queue} -> wl_registry#1990.bind(8, "wl_shm", 1, new id [unknown]#2000) +[2618129.588] {Default Queue} -> wl_registry#1990.bind(8, "wl_shm", 1, new id [unknown]#2001) +[2618129.593] {Default Queue} wl_registry#1990.global(9, "zxdg_output_manager_v1", 3) +[2618129.598] {Default Queue} wl_registry#1990.global(10, "wp_fractional_scale_manager_v1", 1) +[2618129.604] {Default Queue} wl_registry#1990.global(11, "zwp_tablet_manager_v2", 1) +[2618129.609] {Default Queue} wl_registry#1990.global(12, "zwp_pointer_gestures_v1", 3) +[2618129.614] {Default Queue} wl_registry#1990.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618129.620] {Default Queue} -> wl_registry#1990.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2002) +[2618129.628] {Default Queue} wl_registry#1990.global(14, "zwp_pointer_constraints_v1", 1) +[2618129.634] {Default Queue} -> wl_registry#1990.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2003) +[2618129.639] {Default Queue} wl_registry#1990.global(15, "ext_idle_notifier_v1", 2) +[2618129.645] {Default Queue} wl_registry#1990.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618129.650] {Default Queue} wl_registry#1990.global(17, "wl_data_device_manager", 3) +[2618129.660] {Default Queue} -> wl_registry#1990.bind(17, "wl_data_device_manager", 2, new id [unknown]#2004) +[2618129.667] {Default Queue} -> wl_data_device_manager#2004.create_data_source(new id wl_data_source#2005) +[2618129.672] {Default Queue} -> wl_data_source#2005.offer("text/plain") +[2618129.678] {Default Queue} -> wl_data_source#2005.offer("text/plain;charset=utf-8") +[2618129.683] {Default Queue} -> wl_data_source#2005.offer("TEXT") +[2618129.688] {Default Queue} -> wl_data_source#2005.offer("STRING") +[2618129.693] {Default Queue} -> wl_data_source#2005.offer("UTF8_STRING") +[2618129.698] {Default Queue} wl_registry#1990.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618129.704] {Default Queue} -> wl_registry#1990.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2006) +[2618129.714] {Default Queue} -> zwp_primary_selection_device_manager_v1#2006.create_source(new id zwp_primary_selection_source_v1#2007) +[2618129.723] {Default Queue} -> zwp_primary_selection_source_v1#2007.offer("text/plain") +[2618129.728] {Default Queue} -> zwp_primary_selection_source_v1#2007.offer("text/plain;charset=utf-8") +[2618129.734] {Default Queue} -> zwp_primary_selection_source_v1#2007.offer("TEXT") +[2618129.739] {Default Queue} -> zwp_primary_selection_source_v1#2007.offer("STRING") +[2618129.744] {Default Queue} -> zwp_primary_selection_source_v1#2007.offer("UTF8_STRING") +[2618129.749] {Default Queue} wl_registry#1990.global(19, "zwlr_data_control_manager_v1", 2) +[2618129.755] {Default Queue} wl_registry#1990.global(20, "ext_data_control_manager_v1", 1) +[2618129.760] {Default Queue} wl_registry#1990.global(21, "wp_presentation", 2) +[2618129.766] {Default Queue} wl_registry#1990.global(22, "wp_security_context_manager_v1", 1) +[2618129.772] {Default Queue} wl_registry#1990.global(23, "zwp_text_input_manager_v3", 1) +[2618129.777] {Default Queue} wl_registry#1990.global(24, "zwp_input_method_manager_v2", 1) +[2618129.782] {Default Queue} wl_registry#1990.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618129.788] {Default Queue} wl_registry#1990.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618129.793] {Default Queue} wl_registry#1990.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618129.799] {Default Queue} wl_registry#1990.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618129.804] {Default Queue} wl_registry#1990.global(29, "ext_workspace_manager_v1", 1) +[2618129.810] {Default Queue} wl_registry#1990.global(30, "zwlr_output_manager_v1", 4) +[2618129.815] {Default Queue} wl_registry#1990.global(31, "zwlr_screencopy_manager_v1", 3) +[2618129.821] {Default Queue} wl_registry#1990.global(32, "wp_viewporter", 1) +[2618129.826] {Default Queue} wl_registry#1990.global(33, "zxdg_exporter_v2", 1) +[2618129.831] {Default Queue} wl_registry#1990.global(34, "zxdg_importer_v2", 1) +[2618129.837] {Default Queue} wl_registry#1990.global(36, "xdg_activation_v1", 1) +[2618129.843] {Default Queue} wl_registry#1990.global(37, "mutter_x11_interop", 1) +[2618129.848] {Default Queue} wl_registry#1990.global(38, "wl_seat", 9) +[2618129.853] {Default Queue} -> wl_registry#1990.bind(38, "wl_seat", 1, new id [unknown]#2008) +[2618129.859] {Default Queue} wl_registry#1990.global(39, "wp_cursor_shape_manager_v1", 2) +[2618129.866] {Default Queue} wl_registry#1990.global(40, "wl_output", 4) +[2618129.878] {Default Queue} -> wl_registry#1990.bind(40, "wl_output", 1, new id [unknown]#2009) +[2618129.883] {Default Queue} wl_callback#1991.done(0) +[2618129.889] {Default Queue} discarded wl_surface#1959.enter(wl_output#18) +[2618129.894] {Default Queue} discarded wl_surface#1959.enter(wl_output#57) +[2618129.899] {Default Queue} discarded wl_surface#1959.enter(wl_output#89) +[2618129.904] {Default Queue} discarded wl_surface#1959.enter(wl_output#121) +[2618129.909] {Default Queue} discarded wl_surface#1959.enter(wl_output#153) +[2618129.914] {Default Queue} discarded wl_surface#1959.enter(wl_output#185) +[2618129.919] {Default Queue} discarded wl_surface#1959.enter(wl_output#217) +[2618129.927] {Default Queue} discarded wl_surface#1959.enter(wl_output#249) +[2618129.934] {Default Queue} discarded wl_surface#1959.enter(wl_output#281) +[2618129.939] {Default Queue} discarded wl_surface#1959.enter(wl_output#313) +[2618129.944] {Default Queue} discarded wl_surface#1959.enter(wl_output#345) +[2618129.948] {Default Queue} discarded wl_surface#1959.enter(wl_output#377) +[2618129.952] {Default Queue} discarded wl_surface#1959.enter(wl_output#409) +[2618129.956] {Default Queue} discarded wl_surface#1959.enter(wl_output#441) +[2618129.960] {Default Queue} discarded wl_surface#1959.enter(wl_output#473) +[2618129.964] {Default Queue} discarded wl_surface#1959.enter(wl_output#505) +[2618129.968] {Default Queue} discarded wl_surface#1959.enter(wl_output#537) +[2618129.972] {Default Queue} discarded wl_surface#1959.enter(wl_output#569) +[2618129.976] {Default Queue} discarded wl_surface#1959.enter(wl_output#601) +[2618129.980] {Default Queue} discarded wl_surface#1959.enter(wl_output#633) +[2618129.984] {Default Queue} discarded wl_surface#1959.enter(wl_output#665) +[2618129.988] {Default Queue} discarded wl_surface#1959.enter(wl_output#697) +[2618129.991] {Default Queue} discarded wl_surface#1959.enter(wl_output#729) +[2618129.996] {Default Queue} discarded wl_surface#1959.enter(wl_output#761) +[2618129.999] {Default Queue} discarded wl_surface#1959.enter(wl_output#793) +[2618130.003] {Default Queue} discarded wl_surface#1959.enter(wl_output#825) +[2618130.007] {Default Queue} discarded wl_surface#1959.enter(wl_output#857) +[2618130.011] {Default Queue} discarded wl_surface#1959.enter(wl_output#889) +[2618130.015] {Default Queue} discarded wl_surface#1959.enter(wl_output#921) +[2618130.019] {Default Queue} discarded wl_surface#1959.enter(wl_output#953) +[2618130.023] {Default Queue} discarded wl_surface#1959.enter(wl_output#985) +[2618130.027] {Default Queue} discarded wl_surface#1959.enter(wl_output#1017) +[2618130.031] {Default Queue} discarded wl_surface#1959.enter(wl_output#1049) +[2618130.035] {Default Queue} discarded wl_surface#1959.enter(wl_output#1081) +[2618130.039] {Default Queue} discarded wl_surface#1959.enter(wl_output#1113) +[2618130.043] {Default Queue} discarded wl_surface#1959.enter(wl_output#1145) +[2618130.048] {Default Queue} discarded wl_surface#1959.enter(wl_output#1177) +[2618130.052] {Default Queue} discarded wl_surface#1959.enter(wl_output#1209) +[2618130.056] {Default Queue} discarded wl_surface#1959.enter(wl_output#1241) +[2618130.060] {Default Queue} discarded wl_surface#1959.enter(wl_output#1273) +[2618130.064] {Default Queue} discarded wl_surface#1959.enter(wl_output#1305) +[2618130.068] {Default Queue} discarded wl_surface#1959.enter(wl_output#1337) +[2618130.072] {Default Queue} discarded wl_surface#1959.enter(wl_output#1369) +[2618130.076] {Default Queue} discarded wl_surface#1959.enter(wl_output#1401) +[2618130.079] {Default Queue} discarded wl_surface#1959.enter(wl_output#1433) +[2618130.083] {Default Queue} discarded wl_surface#1959.enter(wl_output#1465) +[2618130.087] {Default Queue} discarded wl_surface#1959.enter(wl_output#1497) +[2618130.091] {Default Queue} discarded wl_surface#1959.enter(wl_output#1529) +[2618130.095] {Default Queue} discarded wl_surface#1959.enter(wl_output#1561) +[2618130.099] {Default Queue} discarded wl_surface#1959.enter(wl_output#1593) +[2618130.103] {Default Queue} discarded wl_surface#1959.enter(wl_output#1625) +[2618130.107] {Default Queue} discarded wl_surface#1959.enter(wl_output#1657) +[2618130.111] {Default Queue} discarded wl_surface#1959.enter(wl_output#1689) +[2618130.115] {Default Queue} discarded wl_surface#1959.enter(wl_output#1721) +[2618130.118] {Default Queue} discarded wl_surface#1959.enter(wl_output#1753) +[2618130.122] {Default Queue} discarded wl_surface#1959.enter(wl_output#1785) +[2618130.127] {Default Queue} discarded wl_surface#1959.enter(wl_output#1817) +[2618130.131] {Default Queue} discarded wl_surface#1959.enter(wl_output#1849) +[2618130.134] {Default Queue} discarded wl_surface#1959.enter(wl_output#1881) +[2618130.138] {Default Queue} discarded wl_surface#1959.enter(wl_output#1913) +[2618130.145] {Default Queue} discarded wl_surface#1959.enter(wl_output#1945) +[2618130.151] {Default Queue} discarded wl_surface#1959.enter(wl_output#1977) +[2618130.155] {Default Queue} -> wl_compositor#1964.create_surface(new id wl_surface#1991) +[2618130.159] {Default Queue} -> wl_subcompositor#1997.get_subsurface(new id wl_subsurface#2010, wl_surface#1991, wl_surface#1959) +[2618130.168] {Default Queue} -> wl_subsurface#2010.set_desync() +[2618130.172] {Default Queue} -> wl_subsurface#2010.set_position(0, 0) +[2618130.177] {Default Queue} -> wl_subsurface#2010.place_above(wl_surface#1959) +[2618130.219] {Default Queue} -> wl_shm#1999.create_pool(new id wl_shm_pool#2011, fd 319, 16) +[2618130.225] {Default Queue} -> wl_shm#1999.create_pool(new id wl_shm_pool#2012, fd 320, 16) +[2618130.230] {Default Queue} -> wl_shm_pool#2011.create_buffer(new id wl_buffer#2013, 0, 2, 2, 8, 0) +[2618130.235] {Default Queue} -> wl_shm_pool#2012.create_buffer(new id wl_buffer#2014, 0, 2, 2, 8, 0) +[2618130.243] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) +[2618130.247] {Default Queue} -> wl_surface#1991.commit() +[2618130.253] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) +[2618130.258] {Default Queue} -> wl_surface#1991.commit() +[2618130.262] {Default Queue} -> wl_compositor#1996.create_region(new id wl_region#2015) +[2618130.267] {Default Queue} -> wl_compositor#1996.create_region(new id wl_region#2016) +[2618130.271] {Default Queue} -> wl_region#2015.subtract(0, 0, 2, 2) +[2618130.276] {Default Queue} -> wl_region#2015.add(0, 0, 0, 0) +[2618130.280] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2618130.284] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2618130.289] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618130.293] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) +[2618130.301] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) +[2618130.305] {Default Queue} -> wl_surface#1991.commit() +[2618130.337] {Default Queue} -> wl_shm#2001.create_pool(new id wl_shm_pool#2017, fd 323, 640) +[2618130.344] {Default Queue} -> wl_shm#2001.create_pool(new id wl_shm_pool#2018, fd 324, 640) +[2618130.348] {Default Queue} -> wl_shm_pool#2017.create_buffer(new id wl_buffer#2019, 0, 10, 16, 40, 0) +[2618130.353] {Default Queue} -> wl_shm_pool#2018.create_buffer(new id wl_buffer#2020, 0, 10, 16, 40, 0) +[2618130.361] {Default Queue} -> wl_compositor#1996.create_surface(new id wl_surface#2021) +[2618130.365] {Default Queue} -> wl_surface#2021.attach(wl_buffer#2019, 0, 0) +[2618130.370] {Default Queue} -> wl_surface#2021.commit() +[2618130.376] {Default Queue} -> wl_surface#2021.attach(wl_buffer#2019, 0, 0) +[2618130.380] {Default Queue} -> wl_surface#2021.commit() +[2618130.385] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) +[2618130.392] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618130.396] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618130.403] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2022) +[2618130.408] {Default Queue} -> wl_display#1.sync(new id wl_callback#2023) +[2618134.117] {Display Queue} wl_display#1.delete_id(2023) +[2618134.128] {Default Queue} wl_keyboard#1992.keymap(1, fd 319, 68213) +[2618134.134] {Default Queue} wl_keyboard#1992.enter(566, wl_surface#19, array[0]) +[2618134.140] {Default Queue} wl_keyboard#1992.modifiers(566, 0, 0, 16, 0) +[2618134.146] {Default Queue} discarded wl_shm#1999.format(875709016) +[2618134.151] {Default Queue} discarded wl_shm#1999.format(1) +[2618134.156] {Default Queue} discarded wl_shm#1999.format(0) +[2618134.162] {Default Queue} discarded wl_shm#1999.format(875708993) +[2618134.166] {Default Queue} discarded wl_shm#2000.format(875709016) +[2618134.171] {Default Queue} discarded wl_shm#2000.format(1) +[2618134.176] {Default Queue} discarded wl_shm#2000.format(0) +[2618134.181] {Default Queue} discarded wl_shm#2000.format(875708993) +[2618134.186] {Default Queue} discarded wl_shm#2001.format(875709016) +[2618134.196] {Default Queue} discarded wl_shm#2001.format(1) +[2618134.203] {Default Queue} discarded wl_shm#2001.format(0) +[2618134.208] {Default Queue} discarded wl_shm#2001.format(875708993) +[2618134.213] {Default Queue} wl_seat#2008.capabilities(7) +[2618134.219] {Default Queue} -> wl_seat#2008.get_keyboard(new id wl_keyboard#2024) +[2618134.224] {Default Queue} -> wl_seat#2008.get_pointer(new id wl_pointer#2025) +[2618134.230] {Default Queue} -> wl_data_device_manager#2004.get_data_device(new id wl_data_device#2026, wl_seat#2008) +[2618134.235] {Default Queue} -> zwp_primary_selection_device_manager_v1#2006.get_device(new id zwp_primary_selection_device_v1#2027, wl_seat#2008) +[2618134.246] {Default Queue} wl_output#2009.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618134.252] {Default Queue} wl_output#2009.mode(3, 1280, 800, 60000) +[2618134.257] {Default Queue} discarded wl_surface#3.enter(wl_output#2009) +[2618134.262] {Default Queue} discarded wl_surface#999.enter(wl_output#2009) +[2618134.267] {Default Queue} discarded wl_surface#1191.enter(wl_output#2009) +[2618134.272] {Default Queue} discarded wl_surface#1159.enter(wl_output#2009) +[2618134.277] {Default Queue} discarded wl_surface#1703.enter(wl_output#2009) +[2618134.282] {Default Queue} discarded wl_surface#423.enter(wl_output#2009) +[2618134.287] {Default Queue} discarded wl_surface#1447.enter(wl_output#2009) +[2618134.291] {Default Queue} discarded wl_surface#1639.enter(wl_output#2009) +[2618134.296] {Default Queue} discarded wl_surface#1319.enter(wl_output#2009) +[2618134.301] {Default Queue} discarded wl_surface#1127.enter(wl_output#2009) +[2618134.306] {Default Queue} discarded wl_surface#1063.enter(wl_output#2009) +[2618134.311] {Default Queue} discarded wl_surface#455.enter(wl_output#2009) +[2618134.315] {Default Queue} discarded wl_surface#1575.enter(wl_output#2009) +[2618134.320] {Default Queue} discarded wl_surface#1799.enter(wl_output#2009) +[2618134.326] {Default Queue} discarded wl_surface#1415.enter(wl_output#2009) +[2618134.331] {Default Queue} discarded wl_surface#1831.enter(wl_output#2009) +[2618134.335] {Default Queue} discarded wl_surface#903.enter(wl_output#2009) +[2618134.340] {Default Queue} discarded wl_surface#775.enter(wl_output#2009) +[2618134.345] {Default Queue} discarded wl_surface#1543.enter(wl_output#2009) +[2618134.350] {Default Queue} discarded wl_surface#135.enter(wl_output#2009) +[2618134.355] {Default Queue} discarded wl_surface#1287.enter(wl_output#2009) +[2618134.359] {Default Queue} discarded wl_surface#1031.enter(wl_output#2009) +[2618134.364] {Default Queue} discarded wl_surface#615.enter(wl_output#2009) +[2618134.369] {Default Queue} discarded wl_surface#231.enter(wl_output#2009) +[2618134.374] {Default Queue} discarded wl_surface#1863.enter(wl_output#2009) +[2618134.379] {Default Queue} discarded wl_surface#359.enter(wl_output#2009) +[2618134.384] {Default Queue} discarded wl_surface#583.enter(wl_output#2009) +[2618134.389] {Default Queue} discarded wl_surface#743.enter(wl_output#2009) +[2618134.393] {Default Queue} discarded wl_surface#967.enter(wl_output#2009) +[2618134.398] {Default Queue} discarded wl_surface#103.enter(wl_output#2009) +[2618134.404] {Default Queue} discarded wl_surface#327.enter(wl_output#2009) +[2618134.408] {Default Queue} discarded wl_surface#43.enter(wl_output#2009) +[2618134.413] {Default Queue} discarded wl_surface#807.enter(wl_output#2009) +[2618134.418] {Default Queue} discarded wl_surface#19.enter(wl_output#2009) +[2618134.423] {Default Queue} discarded wl_surface#1511.enter(wl_output#2009) +[2618134.428] {Default Queue} discarded wl_surface#199.enter(wl_output#2009) +[2618134.433] {Default Queue} discarded wl_surface#391.enter(wl_output#2009) +[2618134.438] {Default Queue} discarded wl_surface#935.enter(wl_output#2009) +[2618134.443] {Default Queue} discarded wl_surface#1671.enter(wl_output#2009) +[2618134.448] {Default Queue} discarded wl_surface#1351.enter(wl_output#2009) +[2618134.453] {Default Queue} discarded wl_surface#711.enter(wl_output#2009) +[2618134.458] {Default Queue} discarded wl_surface#1223.enter(wl_output#2009) +[2618134.466] {Default Queue} discarded wl_surface#1927.enter(wl_output#2009) +[2618134.473] {Default Queue} discarded wl_surface#871.enter(wl_output#2009) +[2618134.478] {Default Queue} discarded wl_surface#1895.enter(wl_output#2009) +[2618134.483] {Default Queue} discarded wl_surface#263.enter(wl_output#2009) +[2618134.487] {Default Queue} discarded wl_surface#551.enter(wl_output#2009) +[2618134.492] {Default Queue} discarded wl_surface#1735.enter(wl_output#2009) +[2618134.497] {Default Queue} discarded wl_surface#1479.enter(wl_output#2009) +[2618134.502] {Default Queue} discarded wl_surface#1772.enter(wl_output#2009) +[2618134.507] {Default Queue} discarded wl_surface#1959.enter(wl_output#2009) +[2618134.512] {Default Queue} discarded wl_surface#647.enter(wl_output#2009) +[2618134.517] {Default Queue} discarded wl_surface#71.enter(wl_output#2009) +[2618134.522] {Default Queue} discarded wl_surface#839.enter(wl_output#2009) +[2618134.526] {Default Queue} discarded wl_surface#1607.enter(wl_output#2009) +[2618134.531] {Default Queue} discarded wl_surface#1095.enter(wl_output#2009) +[2618134.536] {Default Queue} discarded wl_surface#1383.enter(wl_output#2009) +[2618134.541] {Default Queue} discarded wl_surface#487.enter(wl_output#2009) +[2618134.546] {Default Queue} discarded wl_surface#519.enter(wl_output#2009) +[2618134.551] {Default Queue} discarded wl_surface#295.enter(wl_output#2009) +[2618134.556] {Default Queue} discarded wl_surface#167.enter(wl_output#2009) +[2618134.561] {Default Queue} discarded wl_surface#1255.enter(wl_output#2009) +[2618134.566] {Default Queue} discarded wl_surface#679.enter(wl_output#2009) +[2618134.571] {Default Queue} wl_registry#2022.global(1, "wl_compositor", 6) +[2618134.577] {Default Queue} -> wl_registry#2022.bind(1, "wl_compositor", 1, new id [unknown]#2028) +[2618134.583] {Default Queue} wl_registry#2022.global(2, "wl_subcompositor", 1) +[2618134.590] {Default Queue} -> wl_registry#2022.bind(2, "wl_subcompositor", 1, new id [unknown]#2029) +[2618134.595] {Default Queue} wl_registry#2022.global(3, "xdg_wm_base", 6) +[2618134.601] {Default Queue} -> wl_registry#2022.bind(3, "xdg_wm_base", 1, new id [unknown]#2030) +[2618134.607] {Default Queue} wl_registry#2022.global(6, "zwlr_layer_shell_v1", 5) +[2618134.612] {Default Queue} wl_registry#2022.global(7, "ext_session_lock_manager_v1", 1) +[2618134.620] {Default Queue} wl_registry#2022.global(8, "wl_shm", 2) +[2618134.626] {Default Queue} -> wl_registry#2022.bind(8, "wl_shm", 1, new id [unknown]#2031) +[2618134.631] {Default Queue} -> wl_registry#2022.bind(8, "wl_shm", 1, new id [unknown]#2032) +[2618134.637] {Default Queue} -> wl_registry#2022.bind(8, "wl_shm", 1, new id [unknown]#2033) +[2618134.642] {Default Queue} wl_registry#2022.global(9, "zxdg_output_manager_v1", 3) +[2618134.647] {Default Queue} wl_registry#2022.global(10, "wp_fractional_scale_manager_v1", 1) +[2618134.653] {Default Queue} wl_registry#2022.global(11, "zwp_tablet_manager_v2", 1) +[2618134.658] {Default Queue} wl_registry#2022.global(12, "zwp_pointer_gestures_v1", 3) +[2618134.664] {Default Queue} wl_registry#2022.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618134.669] {Default Queue} -> wl_registry#2022.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2034) +[2618134.675] {Default Queue} wl_registry#2022.global(14, "zwp_pointer_constraints_v1", 1) +[2618134.680] {Default Queue} -> wl_registry#2022.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2035) +[2618134.686] {Default Queue} wl_registry#2022.global(15, "ext_idle_notifier_v1", 2) +[2618134.691] {Default Queue} wl_registry#2022.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618134.697] {Default Queue} wl_registry#2022.global(17, "wl_data_device_manager", 3) +[2618134.703] {Default Queue} -> wl_registry#2022.bind(17, "wl_data_device_manager", 2, new id [unknown]#2036) +[2618134.708] {Default Queue} -> wl_data_device_manager#2036.create_data_source(new id wl_data_source#2037) +[2618134.713] {Default Queue} -> wl_data_source#2037.offer("text/plain") +[2618134.719] {Default Queue} -> wl_data_source#2037.offer("text/plain;charset=utf-8") +[2618134.728] {Default Queue} -> wl_data_source#2037.offer("TEXT") +[2618134.735] {Default Queue} -> wl_data_source#2037.offer("STRING") +[2618134.740] {Default Queue} -> wl_data_source#2037.offer("UTF8_STRING") +[2618134.746] {Default Queue} wl_registry#2022.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618134.752] {Default Queue} -> wl_registry#2022.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2038) +[2618134.762] {Default Queue} -> zwp_primary_selection_device_manager_v1#2038.create_source(new id zwp_primary_selection_source_v1#2039) +[2618134.771] {Default Queue} -> zwp_primary_selection_source_v1#2039.offer("text/plain") +[2618134.776] {Default Queue} -> zwp_primary_selection_source_v1#2039.offer("text/plain;charset=utf-8") +[2618134.781] {Default Queue} -> zwp_primary_selection_source_v1#2039.offer("TEXT") +[2618134.786] {Default Queue} -> zwp_primary_selection_source_v1#2039.offer("STRING") +[2618134.791] {Default Queue} -> zwp_primary_selection_source_v1#2039.offer("UTF8_STRING") +[2618134.797] {Default Queue} wl_registry#2022.global(19, "zwlr_data_control_manager_v1", 2) +[2618134.802] {Default Queue} wl_registry#2022.global(20, "ext_data_control_manager_v1", 1) +[2618134.808] {Default Queue} wl_registry#2022.global(21, "wp_presentation", 2) +[2618134.813] {Default Queue} wl_registry#2022.global(22, "wp_security_context_manager_v1", 1) +[2618134.819] {Default Queue} wl_registry#2022.global(23, "zwp_text_input_manager_v3", 1) +[2618134.824] {Default Queue} wl_registry#2022.global(24, "zwp_input_method_manager_v2", 1) +[2618134.830] {Default Queue} wl_registry#2022.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618134.835] {Default Queue} wl_registry#2022.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618134.841] {Default Queue} wl_registry#2022.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618134.846] {Default Queue} wl_registry#2022.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618134.851] {Default Queue} wl_registry#2022.global(29, "ext_workspace_manager_v1", 1) +[2618134.857] {Default Queue} wl_registry#2022.global(30, "zwlr_output_manager_v1", 4) +[2618134.870] {Default Queue} wl_registry#2022.global(31, "zwlr_screencopy_manager_v1", 3) +[2618134.876] {Default Queue} wl_registry#2022.global(32, "wp_viewporter", 1) +[2618134.881] {Default Queue} wl_registry#2022.global(33, "zxdg_exporter_v2", 1) +[2618134.887] {Default Queue} wl_registry#2022.global(34, "zxdg_importer_v2", 1) +[2618134.892] {Default Queue} wl_registry#2022.global(36, "xdg_activation_v1", 1) +[2618134.897] {Default Queue} wl_registry#2022.global(37, "mutter_x11_interop", 1) +[2618134.903] {Default Queue} wl_registry#2022.global(38, "wl_seat", 9) +[2618134.908] {Default Queue} -> wl_registry#2022.bind(38, "wl_seat", 1, new id [unknown]#2040) +[2618134.914] {Default Queue} wl_registry#2022.global(39, "wp_cursor_shape_manager_v1", 2) +[2618134.919] {Default Queue} wl_registry#2022.global(40, "wl_output", 4) +[2618134.925] {Default Queue} -> wl_registry#2022.bind(40, "wl_output", 1, new id [unknown]#2041) +[2618134.930] {Default Queue} wl_callback#2023.done(0) +[2618134.936] {Default Queue} discarded wl_surface#1991.enter(wl_output#18) +[2618134.941] {Default Queue} discarded wl_surface#1991.enter(wl_output#57) +[2618134.946] {Default Queue} discarded wl_surface#1991.enter(wl_output#89) +[2618134.951] {Default Queue} discarded wl_surface#1991.enter(wl_output#121) +[2618134.956] {Default Queue} discarded wl_surface#1991.enter(wl_output#153) +[2618134.960] {Default Queue} discarded wl_surface#1991.enter(wl_output#185) +[2618134.964] {Default Queue} discarded wl_surface#1991.enter(wl_output#217) +[2618134.968] {Default Queue} discarded wl_surface#1991.enter(wl_output#249) +[2618134.972] {Default Queue} discarded wl_surface#1991.enter(wl_output#281) +[2618134.976] {Default Queue} discarded wl_surface#1991.enter(wl_output#313) +[2618134.980] {Default Queue} discarded wl_surface#1991.enter(wl_output#345) +[2618134.984] {Default Queue} discarded wl_surface#1991.enter(wl_output#377) +[2618134.991] {Default Queue} discarded wl_surface#1991.enter(wl_output#409) +[2618134.997] {Default Queue} discarded wl_surface#1991.enter(wl_output#441) +[2618135.001] {Default Queue} discarded wl_surface#1991.enter(wl_output#473) +[2618135.005] {Default Queue} discarded wl_surface#1991.enter(wl_output#505) +[2618135.009] {Default Queue} discarded wl_surface#1991.enter(wl_output#537) +[2618135.013] {Default Queue} discarded wl_surface#1991.enter(wl_output#569) +[2618135.017] {Default Queue} discarded wl_surface#1991.enter(wl_output#601) +[2618135.021] {Default Queue} discarded wl_surface#1991.enter(wl_output#633) +[2618135.025] {Default Queue} discarded wl_surface#1991.enter(wl_output#665) +[2618135.030] {Default Queue} discarded wl_surface#1991.enter(wl_output#697) +[2618135.034] {Default Queue} discarded wl_surface#1991.enter(wl_output#729) +[2618135.037] {Default Queue} discarded wl_surface#1991.enter(wl_output#761) +[2618135.041] {Default Queue} discarded wl_surface#1991.enter(wl_output#793) +[2618135.045] {Default Queue} discarded wl_surface#1991.enter(wl_output#825) +[2618135.049] {Default Queue} discarded wl_surface#1991.enter(wl_output#857) +[2618135.053] {Default Queue} discarded wl_surface#1991.enter(wl_output#889) +[2618135.057] {Default Queue} discarded wl_surface#1991.enter(wl_output#921) +[2618135.061] {Default Queue} discarded wl_surface#1991.enter(wl_output#953) +[2618135.065] {Default Queue} discarded wl_surface#1991.enter(wl_output#985) +[2618135.069] {Default Queue} discarded wl_surface#1991.enter(wl_output#1017) +[2618135.073] {Default Queue} discarded wl_surface#1991.enter(wl_output#1049) +[2618135.077] {Default Queue} discarded wl_surface#1991.enter(wl_output#1081) +[2618135.080] {Default Queue} discarded wl_surface#1991.enter(wl_output#1113) +[2618135.084] {Default Queue} discarded wl_surface#1991.enter(wl_output#1145) +[2618135.088] {Default Queue} discarded wl_surface#1991.enter(wl_output#1177) +[2618135.092] {Default Queue} discarded wl_surface#1991.enter(wl_output#1209) +[2618135.096] {Default Queue} discarded wl_surface#1991.enter(wl_output#1241) +[2618135.100] {Default Queue} discarded wl_surface#1991.enter(wl_output#1273) +[2618135.104] {Default Queue} discarded wl_surface#1991.enter(wl_output#1305) +[2618135.108] {Default Queue} discarded wl_surface#1991.enter(wl_output#1337) +[2618135.111] {Default Queue} discarded wl_surface#1991.enter(wl_output#1369) +[2618135.115] {Default Queue} discarded wl_surface#1991.enter(wl_output#1401) +[2618135.119] {Default Queue} discarded wl_surface#1991.enter(wl_output#1433) +[2618135.123] {Default Queue} discarded wl_surface#1991.enter(wl_output#1465) +[2618135.127] {Default Queue} discarded wl_surface#1991.enter(wl_output#1497) +[2618135.131] {Default Queue} discarded wl_surface#1991.enter(wl_output#1529) +[2618135.135] {Default Queue} discarded wl_surface#1991.enter(wl_output#1561) +[2618135.139] {Default Queue} discarded wl_surface#1991.enter(wl_output#1593) +[2618135.143] {Default Queue} discarded wl_surface#1991.enter(wl_output#1625) +[2618135.147] {Default Queue} discarded wl_surface#1991.enter(wl_output#1657) +[2618135.151] {Default Queue} discarded wl_surface#1991.enter(wl_output#1689) +[2618135.154] {Default Queue} discarded wl_surface#1991.enter(wl_output#1721) +[2618135.158] {Default Queue} discarded wl_surface#1991.enter(wl_output#1753) +[2618135.162] {Default Queue} discarded wl_surface#1991.enter(wl_output#1785) +[2618135.166] {Default Queue} discarded wl_surface#1991.enter(wl_output#1817) +[2618135.170] {Default Queue} discarded wl_surface#1991.enter(wl_output#1849) +[2618135.174] {Default Queue} discarded wl_surface#1991.enter(wl_output#1881) +[2618135.178] {Default Queue} discarded wl_surface#1991.enter(wl_output#1913) +[2618135.182] {Default Queue} discarded wl_surface#1991.enter(wl_output#1945) +[2618135.186] {Default Queue} discarded wl_surface#1991.enter(wl_output#1977) +[2618135.190] {Default Queue} discarded wl_surface#1991.enter(wl_output#2009) +[2618135.194] {Default Queue} -> wl_compositor#1964.create_surface(new id wl_surface#2023) +[2618135.198] {Default Queue} -> wl_subcompositor#2029.get_subsurface(new id wl_subsurface#2042, wl_surface#2023, wl_surface#1959) +[2618135.211] {Default Queue} -> wl_subsurface#2042.set_desync() +[2618135.215] {Default Queue} -> wl_subsurface#2042.set_position(0, 0) +[2618135.219] {Default Queue} -> wl_subsurface#2042.place_above(wl_surface#1959) +[2618135.258] {Default Queue} -> wl_shm#2031.create_pool(new id wl_shm_pool#2043, fd 324, 16) +[2618135.264] {Default Queue} -> wl_shm#2031.create_pool(new id wl_shm_pool#2044, fd 325, 16) +[2618135.269] {Default Queue} -> wl_shm_pool#2043.create_buffer(new id wl_buffer#2045, 0, 2, 2, 8, 0) +[2618135.274] {Default Queue} -> wl_shm_pool#2044.create_buffer(new id wl_buffer#2046, 0, 2, 2, 8, 0) +[2618135.281] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) +[2618135.286] {Default Queue} -> wl_surface#2023.commit() +[2618135.291] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) +[2618135.296] {Default Queue} -> wl_surface#2023.commit() +[2618135.300] {Default Queue} -> wl_compositor#2028.create_region(new id wl_region#2047) +[2618135.313] {Default Queue} -> wl_compositor#2028.create_region(new id wl_region#2048) +[2618135.321] {Default Queue} -> wl_region#2047.subtract(0, 0, 2, 2) +[2618135.325] {Default Queue} -> wl_region#2047.add(0, 0, 0, 0) +[2618135.330] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) +[2618135.334] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) +[2618135.338] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) +[2618135.342] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) +[2618135.350] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) +[2618135.354] {Default Queue} -> wl_surface#2023.commit() +[2618135.389] {Default Queue} -> wl_shm#2033.create_pool(new id wl_shm_pool#2049, fd 328, 640) +[2618135.395] {Default Queue} -> wl_shm#2033.create_pool(new id wl_shm_pool#2050, fd 329, 640) +[2618135.400] {Default Queue} -> wl_shm_pool#2049.create_buffer(new id wl_buffer#2051, 0, 10, 16, 40, 0) +[2618135.404] {Default Queue} -> wl_shm_pool#2050.create_buffer(new id wl_buffer#2052, 0, 10, 16, 40, 0) +[2618135.411] {Default Queue} -> wl_compositor#2028.create_surface(new id wl_surface#2053) +[2618135.416] {Default Queue} -> wl_surface#2053.attach(wl_buffer#2051, 0, 0) +[2618135.420] {Default Queue} -> wl_surface#2053.commit() +[2618135.425] {Default Queue} -> wl_surface#2053.attach(wl_buffer#2051, 0, 0) +[2618135.430] {Default Queue} -> wl_surface#2053.commit() +[2618135.435] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) +[2618135.442] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2054) +[2618135.447] {Default Queue} -> wl_display#1.sync(new id wl_callback#2055) +[2618139.076] {Display Queue} wl_display#1.delete_id(2055) +[2618139.089] {Default Queue} wl_keyboard#2024.keymap(1, fd 324, 68213) +[2618139.095] {Default Queue} wl_keyboard#2024.enter(566, wl_surface#19, array[0]) +[2618139.101] {Default Queue} wl_keyboard#2024.modifiers(566, 0, 0, 16, 0) +[2618139.105] {Default Queue} discarded wl_shm#2031.format(875709016) +[2618139.110] {Default Queue} discarded wl_shm#2031.format(1) +[2618139.114] {Default Queue} discarded wl_shm#2031.format(0) +[2618139.118] {Default Queue} discarded wl_shm#2031.format(875708993) +[2618139.121] {Default Queue} discarded wl_shm#2032.format(875709016) +[2618139.125] {Default Queue} discarded wl_shm#2032.format(1) +[2618139.129] {Default Queue} discarded wl_shm#2032.format(0) +[2618139.133] {Default Queue} discarded wl_shm#2032.format(875708993) +[2618139.137] {Default Queue} discarded wl_shm#2033.format(875709016) +[2618139.141] {Default Queue} discarded wl_shm#2033.format(1) +[2618139.145] {Default Queue} discarded wl_shm#2033.format(0) +[2618139.149] {Default Queue} discarded wl_shm#2033.format(875708993) +[2618139.153] {Default Queue} wl_seat#2040.capabilities(7) +[2618139.157] {Default Queue} -> wl_seat#2040.get_keyboard(new id wl_keyboard#2056) +[2618139.162] {Default Queue} -> wl_seat#2040.get_pointer(new id wl_pointer#2057) +[2618139.166] {Default Queue} -> wl_data_device_manager#2036.get_data_device(new id wl_data_device#2058, wl_seat#2040) +[2618139.175] {Default Queue} -> zwp_primary_selection_device_manager_v1#2038.get_device(new id zwp_primary_selection_device_v1#2059, wl_seat#2040) +[2618139.186] {Default Queue} wl_output#2041.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618139.191] {Default Queue} wl_output#2041.mode(3, 1280, 800, 60000) +[2618139.195] {Default Queue} discarded wl_surface#3.enter(wl_output#2041) +[2618139.200] {Default Queue} discarded wl_surface#999.enter(wl_output#2041) +[2618139.204] {Default Queue} discarded wl_surface#1191.enter(wl_output#2041) +[2618139.208] {Default Queue} discarded wl_surface#1159.enter(wl_output#2041) +[2618139.212] {Default Queue} discarded wl_surface#1703.enter(wl_output#2041) +[2618139.215] {Default Queue} discarded wl_surface#423.enter(wl_output#2041) +[2618139.219] {Default Queue} discarded wl_surface#1447.enter(wl_output#2041) +[2618139.223] {Default Queue} discarded wl_surface#1639.enter(wl_output#2041) +[2618139.227] {Default Queue} discarded wl_surface#1319.enter(wl_output#2041) +[2618139.231] {Default Queue} discarded wl_surface#1127.enter(wl_output#2041) +[2618139.235] {Default Queue} discarded wl_surface#1063.enter(wl_output#2041) +[2618139.239] {Default Queue} discarded wl_surface#455.enter(wl_output#2041) +[2618139.242] {Default Queue} discarded wl_surface#1575.enter(wl_output#2041) +[2618139.246] {Default Queue} discarded wl_surface#1799.enter(wl_output#2041) +[2618139.251] {Default Queue} discarded wl_surface#1415.enter(wl_output#2041) +[2618139.255] {Default Queue} discarded wl_surface#1831.enter(wl_output#2041) +[2618139.258] {Default Queue} discarded wl_surface#903.enter(wl_output#2041) +[2618139.262] {Default Queue} discarded wl_surface#775.enter(wl_output#2041) +[2618139.266] {Default Queue} discarded wl_surface#1991.enter(wl_output#2041) +[2618139.270] {Default Queue} discarded wl_surface#1543.enter(wl_output#2041) +[2618139.274] {Default Queue} discarded wl_surface#135.enter(wl_output#2041) +[2618139.278] {Default Queue} discarded wl_surface#1287.enter(wl_output#2041) +[2618139.282] {Default Queue} discarded wl_surface#1031.enter(wl_output#2041) +[2618139.286] {Default Queue} discarded wl_surface#615.enter(wl_output#2041) +[2618139.290] {Default Queue} discarded wl_surface#231.enter(wl_output#2041) +[2618139.293] {Default Queue} discarded wl_surface#1863.enter(wl_output#2041) +[2618139.297] {Default Queue} discarded wl_surface#359.enter(wl_output#2041) +[2618139.301] {Default Queue} discarded wl_surface#583.enter(wl_output#2041) +[2618139.305] {Default Queue} discarded wl_surface#743.enter(wl_output#2041) +[2618139.309] {Default Queue} discarded wl_surface#967.enter(wl_output#2041) +[2618139.313] {Default Queue} discarded wl_surface#103.enter(wl_output#2041) +[2618139.317] {Default Queue} discarded wl_surface#327.enter(wl_output#2041) +[2618139.321] {Default Queue} discarded wl_surface#43.enter(wl_output#2041) +[2618139.325] {Default Queue} discarded wl_surface#807.enter(wl_output#2041) +[2618139.329] {Default Queue} discarded wl_surface#19.enter(wl_output#2041) +[2618139.332] {Default Queue} discarded wl_surface#1511.enter(wl_output#2041) +[2618139.336] {Default Queue} discarded wl_surface#199.enter(wl_output#2041) +[2618139.340] {Default Queue} discarded wl_surface#391.enter(wl_output#2041) +[2618139.344] {Default Queue} discarded wl_surface#935.enter(wl_output#2041) +[2618139.348] {Default Queue} discarded wl_surface#1671.enter(wl_output#2041) +[2618139.352] {Default Queue} discarded wl_surface#1351.enter(wl_output#2041) +[2618139.356] {Default Queue} discarded wl_surface#711.enter(wl_output#2041) +[2618139.360] {Default Queue} discarded wl_surface#1223.enter(wl_output#2041) +[2618139.364] {Default Queue} discarded wl_surface#1927.enter(wl_output#2041) +[2618139.368] {Default Queue} discarded wl_surface#871.enter(wl_output#2041) +[2618139.372] {Default Queue} discarded wl_surface#1895.enter(wl_output#2041) +[2618139.376] {Default Queue} discarded wl_surface#263.enter(wl_output#2041) +[2618139.380] {Default Queue} discarded wl_surface#551.enter(wl_output#2041) +[2618139.387] {Default Queue} discarded wl_surface#1735.enter(wl_output#2041) +[2618139.392] {Default Queue} discarded wl_surface#1479.enter(wl_output#2041) +[2618139.396] {Default Queue} discarded wl_surface#1772.enter(wl_output#2041) +[2618139.400] {Default Queue} discarded wl_surface#1959.enter(wl_output#2041) +[2618139.404] {Default Queue} discarded wl_surface#647.enter(wl_output#2041) +[2618139.408] {Default Queue} discarded wl_surface#71.enter(wl_output#2041) +[2618139.412] {Default Queue} discarded wl_surface#839.enter(wl_output#2041) +[2618139.416] {Default Queue} discarded wl_surface#1607.enter(wl_output#2041) +[2618139.420] {Default Queue} discarded wl_surface#1095.enter(wl_output#2041) +[2618139.424] {Default Queue} discarded wl_surface#1383.enter(wl_output#2041) +[2618139.428] {Default Queue} discarded wl_surface#487.enter(wl_output#2041) +[2618139.431] {Default Queue} discarded wl_surface#519.enter(wl_output#2041) +[2618139.435] {Default Queue} discarded wl_surface#295.enter(wl_output#2041) +[2618139.439] {Default Queue} discarded wl_surface#167.enter(wl_output#2041) +[2618139.443] {Default Queue} discarded wl_surface#1255.enter(wl_output#2041) +[2618139.447] {Default Queue} discarded wl_surface#679.enter(wl_output#2041) +[2618139.451] {Default Queue} wl_registry#2054.global(1, "wl_compositor", 6) +[2618139.456] {Default Queue} -> wl_registry#2054.bind(1, "wl_compositor", 1, new id [unknown]#2060) +[2618139.461] {Default Queue} wl_registry#2054.global(2, "wl_subcompositor", 1) +[2618139.465] {Default Queue} -> wl_registry#2054.bind(2, "wl_subcompositor", 1, new id [unknown]#2061) +[2618139.470] {Default Queue} wl_registry#2054.global(3, "xdg_wm_base", 6) +[2618139.475] {Default Queue} -> wl_registry#2054.bind(3, "xdg_wm_base", 1, new id [unknown]#2062) +[2618139.480] {Default Queue} wl_registry#2054.global(6, "zwlr_layer_shell_v1", 5) +[2618139.484] {Default Queue} wl_registry#2054.global(7, "ext_session_lock_manager_v1", 1) +[2618139.488] {Default Queue} wl_registry#2054.global(8, "wl_shm", 2) +[2618139.493] {Default Queue} -> wl_registry#2054.bind(8, "wl_shm", 1, new id [unknown]#2063) +[2618139.498] {Default Queue} -> wl_registry#2054.bind(8, "wl_shm", 1, new id [unknown]#2064) +[2618139.502] {Default Queue} -> wl_registry#2054.bind(8, "wl_shm", 1, new id [unknown]#2065) +[2618139.506] {Default Queue} wl_registry#2054.global(9, "zxdg_output_manager_v1", 3) +[2618139.510] {Default Queue} wl_registry#2054.global(10, "wp_fractional_scale_manager_v1", 1) +[2618139.515] {Default Queue} wl_registry#2054.global(11, "zwp_tablet_manager_v2", 1) +[2618139.519] {Default Queue} wl_registry#2054.global(12, "zwp_pointer_gestures_v1", 3) +[2618139.524] {Default Queue} wl_registry#2054.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618139.528] {Default Queue} -> wl_registry#2054.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2066) +[2618139.533] {Default Queue} wl_registry#2054.global(14, "zwp_pointer_constraints_v1", 1) +[2618139.537] {Default Queue} -> wl_registry#2054.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2067) +[2618139.542] {Default Queue} wl_registry#2054.global(15, "ext_idle_notifier_v1", 2) +[2618139.546] {Default Queue} wl_registry#2054.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618139.551] {Default Queue} wl_registry#2054.global(17, "wl_data_device_manager", 3) +[2618139.555] {Default Queue} -> wl_registry#2054.bind(17, "wl_data_device_manager", 2, new id [unknown]#2068) +[2618139.560] {Default Queue} -> wl_data_device_manager#2068.create_data_source(new id wl_data_source#2069) +[2618139.564] {Default Queue} -> wl_data_source#2069.offer("text/plain") +[2618139.568] {Default Queue} -> wl_data_source#2069.offer("text/plain;charset=utf-8") +[2618139.572] {Default Queue} -> wl_data_source#2069.offer("TEXT") +[2618139.577] {Default Queue} -> wl_data_source#2069.offer("STRING") +[2618139.581] {Default Queue} -> wl_data_source#2069.offer("UTF8_STRING") +[2618139.585] {Default Queue} wl_registry#2054.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618139.590] {Default Queue} -> wl_registry#2054.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2070) +[2618139.603] {Default Queue} -> zwp_primary_selection_device_manager_v1#2070.create_source(new id zwp_primary_selection_source_v1#2071) +[2618139.610] {Default Queue} -> zwp_primary_selection_source_v1#2071.offer("text/plain") +[2618139.614] {Default Queue} -> zwp_primary_selection_source_v1#2071.offer("text/plain;charset=utf-8") +[2618139.619] {Default Queue} -> zwp_primary_selection_source_v1#2071.offer("TEXT") +[2618139.623] {Default Queue} -> zwp_primary_selection_source_v1#2071.offer("STRING") +[2618139.627] {Default Queue} -> zwp_primary_selection_source_v1#2071.offer("UTF8_STRING") +[2618139.631] {Default Queue} wl_registry#2054.global(19, "zwlr_data_control_manager_v1", 2) +[2618139.635] {Default Queue} wl_registry#2054.global(20, "ext_data_control_manager_v1", 1) +[2618139.640] {Default Queue} wl_registry#2054.global(21, "wp_presentation", 2) +[2618139.644] {Default Queue} wl_registry#2054.global(22, "wp_security_context_manager_v1", 1) +[2618139.650] {Default Queue} wl_registry#2054.global(23, "zwp_text_input_manager_v3", 1) +[2618139.655] {Default Queue} wl_registry#2054.global(24, "zwp_input_method_manager_v2", 1) +[2618139.659] {Default Queue} wl_registry#2054.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618139.664] {Default Queue} wl_registry#2054.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618139.668] {Default Queue} wl_registry#2054.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618139.673] {Default Queue} wl_registry#2054.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618139.677] {Default Queue} wl_registry#2054.global(29, "ext_workspace_manager_v1", 1) +[2618139.681] {Default Queue} wl_registry#2054.global(30, "zwlr_output_manager_v1", 4) +[2618139.686] {Default Queue} wl_registry#2054.global(31, "zwlr_screencopy_manager_v1", 3) +[2618139.690] {Default Queue} wl_registry#2054.global(32, "wp_viewporter", 1) +[2618139.694] {Default Queue} wl_registry#2054.global(33, "zxdg_exporter_v2", 1) +[2618139.699] {Default Queue} wl_registry#2054.global(34, "zxdg_importer_v2", 1) +[2618139.703] {Default Queue} wl_registry#2054.global(36, "xdg_activation_v1", 1) +[2618139.707] {Default Queue} wl_registry#2054.global(37, "mutter_x11_interop", 1) +[2618139.711] {Default Queue} wl_registry#2054.global(38, "wl_seat", 9) +[2618139.716] {Default Queue} -> wl_registry#2054.bind(38, "wl_seat", 1, new id [unknown]#2072) +[2618139.721] {Default Queue} wl_registry#2054.global(39, "wp_cursor_shape_manager_v1", 2) +[2618139.725] {Default Queue} wl_registry#2054.global(40, "wl_output", 4) +[2618139.729] {Default Queue} -> wl_registry#2054.bind(40, "wl_output", 1, new id [unknown]#2073) +[2618139.734] {Default Queue} wl_callback#2055.done(0) +[2618139.739] {Default Queue} discarded wl_surface#2023.enter(wl_output#18) +[2618139.744] {Default Queue} discarded wl_surface#2023.enter(wl_output#57) +[2618139.748] {Default Queue} discarded wl_surface#2023.enter(wl_output#89) +[2618139.754] {Default Queue} discarded wl_surface#2023.enter(wl_output#121) +[2618139.757] {Default Queue} discarded wl_surface#2023.enter(wl_output#153) +[2618139.761] {Default Queue} discarded wl_surface#2023.enter(wl_output#185) +[2618139.765] {Default Queue} discarded wl_surface#2023.enter(wl_output#217) +[2618139.769] {Default Queue} discarded wl_surface#2023.enter(wl_output#249) +[2618139.773] {Default Queue} discarded wl_surface#2023.enter(wl_output#281) +[2618139.777] {Default Queue} discarded wl_surface#2023.enter(wl_output#313) +[2618139.781] {Default Queue} discarded wl_surface#2023.enter(wl_output#345) +[2618139.785] {Default Queue} discarded wl_surface#2023.enter(wl_output#377) +[2618139.789] {Default Queue} discarded wl_surface#2023.enter(wl_output#409) +[2618139.793] {Default Queue} discarded wl_surface#2023.enter(wl_output#441) +[2618139.796] {Default Queue} discarded wl_surface#2023.enter(wl_output#473) +[2618139.800] {Default Queue} discarded wl_surface#2023.enter(wl_output#505) +[2618139.804] {Default Queue} discarded wl_surface#2023.enter(wl_output#537) +[2618139.808] {Default Queue} discarded wl_surface#2023.enter(wl_output#569) +[2618139.815] {Default Queue} discarded wl_surface#2023.enter(wl_output#601) +[2618139.820] {Default Queue} discarded wl_surface#2023.enter(wl_output#633) +[2618139.824] {Default Queue} discarded wl_surface#2023.enter(wl_output#665) +[2618139.828] {Default Queue} discarded wl_surface#2023.enter(wl_output#697) +[2618139.832] {Default Queue} discarded wl_surface#2023.enter(wl_output#729) +[2618139.836] {Default Queue} discarded wl_surface#2023.enter(wl_output#761) +[2618139.840] {Default Queue} discarded wl_surface#2023.enter(wl_output#793) +[2618139.844] {Default Queue} discarded wl_surface#2023.enter(wl_output#825) +[2618139.848] {Default Queue} discarded wl_surface#2023.enter(wl_output#857) +[2618139.852] {Default Queue} discarded wl_surface#2023.enter(wl_output#889) +[2618139.856] {Default Queue} discarded wl_surface#2023.enter(wl_output#921) +[2618139.860] {Default Queue} discarded wl_surface#2023.enter(wl_output#953) +[2618139.869] {Default Queue} discarded wl_surface#2023.enter(wl_output#985) +[2618139.873] {Default Queue} discarded wl_surface#2023.enter(wl_output#1017) +[2618139.877] {Default Queue} discarded wl_surface#2023.enter(wl_output#1049) +[2618139.881] {Default Queue} discarded wl_surface#2023.enter(wl_output#1081) +[2618139.885] {Default Queue} discarded wl_surface#2023.enter(wl_output#1113) +[2618139.889] {Default Queue} discarded wl_surface#2023.enter(wl_output#1145) +[2618139.893] {Default Queue} discarded wl_surface#2023.enter(wl_output#1177) +[2618139.897] {Default Queue} discarded wl_surface#2023.enter(wl_output#1209) +[2618139.901] {Default Queue} discarded wl_surface#2023.enter(wl_output#1241) +[2618139.905] {Default Queue} discarded wl_surface#2023.enter(wl_output#1273) +[2618139.909] {Default Queue} discarded wl_surface#2023.enter(wl_output#1305) +[2618139.913] {Default Queue} discarded wl_surface#2023.enter(wl_output#1337) +[2618139.917] {Default Queue} discarded wl_surface#2023.enter(wl_output#1369) +[2618139.921] {Default Queue} discarded wl_surface#2023.enter(wl_output#1401) +[2618139.925] {Default Queue} discarded wl_surface#2023.enter(wl_output#1433) +[2618139.929] {Default Queue} discarded wl_surface#2023.enter(wl_output#1465) +[2618139.933] {Default Queue} discarded wl_surface#2023.enter(wl_output#1497) +[2618139.937] {Default Queue} discarded wl_surface#2023.enter(wl_output#1529) +[2618139.941] {Default Queue} discarded wl_surface#2023.enter(wl_output#1561) +[2618139.945] {Default Queue} discarded wl_surface#2023.enter(wl_output#1593) +[2618139.949] {Default Queue} discarded wl_surface#2023.enter(wl_output#1625) +[2618139.953] {Default Queue} discarded wl_surface#2023.enter(wl_output#1657) +[2618139.957] {Default Queue} discarded wl_surface#2023.enter(wl_output#1689) +[2618139.961] {Default Queue} discarded wl_surface#2023.enter(wl_output#1721) +[2618139.964] {Default Queue} discarded wl_surface#2023.enter(wl_output#1753) +[2618139.968] {Default Queue} discarded wl_surface#2023.enter(wl_output#1785) +[2618139.972] {Default Queue} discarded wl_surface#2023.enter(wl_output#1817) +[2618139.976] {Default Queue} discarded wl_surface#2023.enter(wl_output#1849) +[2618139.980] {Default Queue} discarded wl_surface#2023.enter(wl_output#1881) +[2618139.984] {Default Queue} discarded wl_surface#2023.enter(wl_output#1913) +[2618139.988] {Default Queue} discarded wl_surface#2023.enter(wl_output#1945) +[2618139.992] {Default Queue} discarded wl_surface#2023.enter(wl_output#1977) +[2618139.996] {Default Queue} discarded wl_surface#2023.enter(wl_output#2009) +[2618140.000] {Default Queue} discarded wl_surface#2023.enter(wl_output#2041) +[2618140.004] {Default Queue} -> wl_compositor#2028.create_surface(new id wl_surface#2055) +[2618140.008] {Default Queue} -> wl_subcompositor#2061.get_subsurface(new id wl_subsurface#2074, wl_surface#2055, wl_surface#2023) +[2618140.017] {Default Queue} -> wl_subsurface#2074.set_desync() +[2618140.021] {Default Queue} -> wl_subsurface#2074.set_position(0, 0) +[2618140.025] {Default Queue} -> wl_subsurface#2074.place_above(wl_surface#2023) +[2618140.070] {Default Queue} -> wl_shm#2063.create_pool(new id wl_shm_pool#2075, fd 329, 16) +[2618140.080] {Default Queue} -> wl_shm#2063.create_pool(new id wl_shm_pool#2076, fd 330, 16) +[2618140.086] {Default Queue} -> wl_shm_pool#2075.create_buffer(new id wl_buffer#2077, 0, 2, 2, 8, 0) +[2618140.091] {Default Queue} -> wl_shm_pool#2076.create_buffer(new id wl_buffer#2078, 0, 2, 2, 8, 0) +[2618140.099] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) +[2618140.104] {Default Queue} -> wl_surface#2055.commit() +[2618140.109] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) +[2618140.114] {Default Queue} -> wl_surface#2055.commit() +[2618140.118] {Default Queue} -> wl_compositor#2060.create_region(new id wl_region#2079) +[2618140.122] {Default Queue} -> wl_compositor#2060.create_region(new id wl_region#2080) +[2618140.126] {Default Queue} -> wl_region#2079.subtract(0, 0, 2, 2) +[2618140.131] {Default Queue} -> wl_region#2079.add(0, 0, 0, 0) +[2618140.136] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618140.140] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618140.144] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618140.148] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) +[2618140.156] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) +[2618140.160] {Default Queue} -> wl_surface#2055.commit() +[2618140.193] {Default Queue} -> wl_shm#2065.create_pool(new id wl_shm_pool#2081, fd 333, 640) +[2618140.199] {Default Queue} -> wl_shm#2065.create_pool(new id wl_shm_pool#2082, fd 334, 640) +[2618140.204] {Default Queue} -> wl_shm_pool#2081.create_buffer(new id wl_buffer#2083, 0, 10, 16, 40, 0) +[2618140.209] {Default Queue} -> wl_shm_pool#2082.create_buffer(new id wl_buffer#2084, 0, 10, 16, 40, 0) +[2618140.216] {Default Queue} -> wl_compositor#2060.create_surface(new id wl_surface#2085) +[2618140.220] {Default Queue} -> wl_surface#2085.attach(wl_buffer#2083, 0, 0) +[2618140.225] {Default Queue} -> wl_surface#2085.commit() +[2618140.230] {Default Queue} -> wl_surface#2085.attach(wl_buffer#2083, 0, 0) +[2618140.235] {Default Queue} -> wl_surface#2085.commit() +[2618140.240] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618140.249] {Default Queue} -> wl_region#1983.subtract(0, 0, 2, 2) +[2618140.254] {Default Queue} -> wl_subsurface#1978.set_position(3, 3) +[2618140.258] {Default Queue} -> wl_region#1983.subtract(0, 0, 5, 5) +[2618140.262] {Default Queue} -> wl_region#1983.add(0, 0, 0, 0) +[2618140.267] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) +[2618140.271] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) +[2618140.275] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618140.279] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618140.284] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) +[2618140.288] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) +[2618140.295] {Default Queue} -> wl_region#1983.subtract(0, 0, 5, 5) +[2618140.299] {Default Queue} -> wl_region#1983.add(0, 0, 0, 0) +[2618140.304] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) +[2618140.308] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) +[2618140.313] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1981, 0, 0) +[2618140.317] {Default Queue} -> wl_surface#1959.commit() +[2618140.324] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2086) +[2618140.329] {Default Queue} -> wl_display#1.sync(new id wl_callback#2087) +[2618144.120] {Display Queue} wl_display#1.delete_id(2087) +[2618144.130] {Default Queue} wl_keyboard#2056.keymap(1, fd 329, 68213) +[2618144.137] {Default Queue} wl_keyboard#2056.enter(566, wl_surface#19, array[0]) +[2618144.143] {Default Queue} wl_keyboard#2056.modifiers(566, 0, 0, 16, 0) +[2618144.149] {Default Queue} discarded wl_shm#2063.format(875709016) +[2618144.154] {Default Queue} discarded wl_shm#2063.format(1) +[2618144.159] {Default Queue} discarded wl_shm#2063.format(0) +[2618144.164] {Default Queue} discarded wl_shm#2063.format(875708993) +[2618144.174] {Default Queue} discarded wl_shm#2064.format(875709016) +[2618144.184] {Default Queue} discarded wl_shm#2064.format(1) +[2618144.189] {Default Queue} discarded wl_shm#2064.format(0) +[2618144.194] {Default Queue} discarded wl_shm#2064.format(875708993) +[2618144.199] {Default Queue} discarded wl_shm#2065.format(875709016) +[2618144.204] {Default Queue} discarded wl_shm#2065.format(1) +[2618144.209] {Default Queue} discarded wl_shm#2065.format(0) +[2618144.214] {Default Queue} discarded wl_shm#2065.format(875708993) +[2618144.219] {Default Queue} wl_seat#2072.capabilities(7) +[2618144.225] {Default Queue} -> wl_seat#2072.get_keyboard(new id wl_keyboard#2088) +[2618144.230] {Default Queue} -> wl_seat#2072.get_pointer(new id wl_pointer#2089) +[2618144.235] {Default Queue} -> wl_data_device_manager#2068.get_data_device(new id wl_data_device#2090, wl_seat#2072) +[2618144.241] {Default Queue} -> zwp_primary_selection_device_manager_v1#2070.get_device(new id zwp_primary_selection_device_v1#2091, wl_seat#2072) +[2618144.251] {Default Queue} wl_output#2073.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618144.258] {Default Queue} wl_output#2073.mode(3, 1280, 800, 60000) +[2618144.263] {Default Queue} discarded wl_surface#3.enter(wl_output#2073) +[2618144.268] {Default Queue} discarded wl_surface#999.enter(wl_output#2073) +[2618144.273] {Default Queue} discarded wl_surface#1191.enter(wl_output#2073) +[2618144.278] {Default Queue} discarded wl_surface#1159.enter(wl_output#2073) +[2618144.283] {Default Queue} discarded wl_surface#1703.enter(wl_output#2073) +[2618144.288] {Default Queue} discarded wl_surface#423.enter(wl_output#2073) +[2618144.293] {Default Queue} discarded wl_surface#1447.enter(wl_output#2073) +[2618144.298] {Default Queue} discarded wl_surface#2023.enter(wl_output#2073) +[2618144.303] {Default Queue} discarded wl_surface#1639.enter(wl_output#2073) +[2618144.308] {Default Queue} discarded wl_surface#1319.enter(wl_output#2073) +[2618144.312] {Default Queue} discarded wl_surface#1127.enter(wl_output#2073) +[2618144.317] {Default Queue} discarded wl_surface#1063.enter(wl_output#2073) +[2618144.322] {Default Queue} discarded wl_surface#455.enter(wl_output#2073) +[2618144.327] {Default Queue} discarded wl_surface#1575.enter(wl_output#2073) +[2618144.332] {Default Queue} discarded wl_surface#1799.enter(wl_output#2073) +[2618144.337] {Default Queue} discarded wl_surface#1415.enter(wl_output#2073) +[2618144.342] {Default Queue} discarded wl_surface#1831.enter(wl_output#2073) +[2618144.346] {Default Queue} discarded wl_surface#903.enter(wl_output#2073) +[2618144.351] {Default Queue} discarded wl_surface#775.enter(wl_output#2073) +[2618144.356] {Default Queue} discarded wl_surface#1991.enter(wl_output#2073) +[2618144.361] {Default Queue} discarded wl_surface#1543.enter(wl_output#2073) +[2618144.366] {Default Queue} discarded wl_surface#135.enter(wl_output#2073) +[2618144.371] {Default Queue} discarded wl_surface#1287.enter(wl_output#2073) +[2618144.376] {Default Queue} discarded wl_surface#1031.enter(wl_output#2073) +[2618144.381] {Default Queue} discarded wl_surface#615.enter(wl_output#2073) +[2618144.386] {Default Queue} discarded wl_surface#231.enter(wl_output#2073) +[2618144.391] {Default Queue} discarded wl_surface#1863.enter(wl_output#2073) +[2618144.396] {Default Queue} discarded wl_surface#359.enter(wl_output#2073) +[2618144.400] {Default Queue} discarded wl_surface#583.enter(wl_output#2073) +[2618144.405] {Default Queue} discarded wl_surface#743.enter(wl_output#2073) +[2618144.410] {Default Queue} discarded wl_surface#967.enter(wl_output#2073) +[2618144.415] {Default Queue} discarded wl_surface#103.enter(wl_output#2073) +[2618144.420] {Default Queue} discarded wl_surface#327.enter(wl_output#2073) +[2618144.425] {Default Queue} discarded wl_surface#43.enter(wl_output#2073) +[2618144.430] {Default Queue} discarded wl_surface#807.enter(wl_output#2073) +[2618144.435] {Default Queue} discarded wl_surface#19.enter(wl_output#2073) +[2618144.440] {Default Queue} discarded wl_surface#1511.enter(wl_output#2073) +[2618144.448] {Default Queue} discarded wl_surface#199.enter(wl_output#2073) +[2618144.455] {Default Queue} discarded wl_surface#391.enter(wl_output#2073) +[2618144.460] {Default Queue} discarded wl_surface#935.enter(wl_output#2073) +[2618144.465] {Default Queue} discarded wl_surface#1671.enter(wl_output#2073) +[2618144.469] {Default Queue} discarded wl_surface#1351.enter(wl_output#2073) +[2618144.474] {Default Queue} discarded wl_surface#711.enter(wl_output#2073) +[2618144.479] {Default Queue} discarded wl_surface#1223.enter(wl_output#2073) +[2618144.484] {Default Queue} discarded wl_surface#1927.enter(wl_output#2073) +[2618144.489] {Default Queue} discarded wl_surface#871.enter(wl_output#2073) +[2618144.494] {Default Queue} discarded wl_surface#1895.enter(wl_output#2073) +[2618144.499] {Default Queue} discarded wl_surface#263.enter(wl_output#2073) +[2618144.504] {Default Queue} discarded wl_surface#551.enter(wl_output#2073) +[2618144.508] {Default Queue} discarded wl_surface#1735.enter(wl_output#2073) +[2618144.513] {Default Queue} discarded wl_surface#1479.enter(wl_output#2073) +[2618144.518] {Default Queue} discarded wl_surface#1772.enter(wl_output#2073) +[2618144.523] {Default Queue} discarded wl_surface#1959.enter(wl_output#2073) +[2618144.528] {Default Queue} discarded wl_surface#647.enter(wl_output#2073) +[2618144.533] {Default Queue} discarded wl_surface#71.enter(wl_output#2073) +[2618144.538] {Default Queue} discarded wl_surface#839.enter(wl_output#2073) +[2618144.543] {Default Queue} discarded wl_surface#1607.enter(wl_output#2073) +[2618144.548] {Default Queue} discarded wl_surface#1095.enter(wl_output#2073) +[2618144.552] {Default Queue} discarded wl_surface#1383.enter(wl_output#2073) +[2618144.557] {Default Queue} discarded wl_surface#487.enter(wl_output#2073) +[2618144.562] {Default Queue} discarded wl_surface#519.enter(wl_output#2073) +[2618144.567] {Default Queue} discarded wl_surface#295.enter(wl_output#2073) +[2618144.572] {Default Queue} discarded wl_surface#167.enter(wl_output#2073) +[2618144.577] {Default Queue} discarded wl_surface#1255.enter(wl_output#2073) +[2618144.582] {Default Queue} discarded wl_surface#679.enter(wl_output#2073) +[2618144.587] {Default Queue} wl_registry#2086.global(1, "wl_compositor", 6) +[2618144.593] {Default Queue} -> wl_registry#2086.bind(1, "wl_compositor", 1, new id [unknown]#2092) +[2618144.599] {Default Queue} wl_registry#2086.global(2, "wl_subcompositor", 1) +[2618144.605] {Default Queue} -> wl_registry#2086.bind(2, "wl_subcompositor", 1, new id [unknown]#2093) +[2618144.610] {Default Queue} wl_registry#2086.global(3, "xdg_wm_base", 6) +[2618144.616] {Default Queue} -> wl_registry#2086.bind(3, "xdg_wm_base", 1, new id [unknown]#2094) +[2618144.622] {Default Queue} wl_registry#2086.global(6, "zwlr_layer_shell_v1", 5) +[2618144.627] {Default Queue} wl_registry#2086.global(7, "ext_session_lock_manager_v1", 1) +[2618144.636] {Default Queue} wl_registry#2086.global(8, "wl_shm", 2) +[2618144.642] {Default Queue} -> wl_registry#2086.bind(8, "wl_shm", 1, new id [unknown]#2095) +[2618144.648] {Default Queue} -> wl_registry#2086.bind(8, "wl_shm", 1, new id [unknown]#2096) +[2618144.653] {Default Queue} -> wl_registry#2086.bind(8, "wl_shm", 1, new id [unknown]#2097) +[2618144.659] {Default Queue} wl_registry#2086.global(9, "zxdg_output_manager_v1", 3) +[2618144.664] {Default Queue} wl_registry#2086.global(10, "wp_fractional_scale_manager_v1", 1) +[2618144.670] {Default Queue} wl_registry#2086.global(11, "zwp_tablet_manager_v2", 1) +[2618144.675] {Default Queue} wl_registry#2086.global(12, "zwp_pointer_gestures_v1", 3) +[2618144.680] {Default Queue} wl_registry#2086.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618144.686] {Default Queue} -> wl_registry#2086.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2098) +[2618144.691] {Default Queue} wl_registry#2086.global(14, "zwp_pointer_constraints_v1", 1) +[2618144.697] {Default Queue} -> wl_registry#2086.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2099) +[2618144.703] {Default Queue} wl_registry#2086.global(15, "ext_idle_notifier_v1", 2) +[2618144.712] {Default Queue} wl_registry#2086.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618144.719] {Default Queue} wl_registry#2086.global(17, "wl_data_device_manager", 3) +[2618144.725] {Default Queue} -> wl_registry#2086.bind(17, "wl_data_device_manager", 2, new id [unknown]#2100) +[2618144.731] {Default Queue} -> wl_data_device_manager#2100.create_data_source(new id wl_data_source#2101) +[2618144.736] {Default Queue} -> wl_data_source#2101.offer("text/plain") +[2618144.742] {Default Queue} -> wl_data_source#2101.offer("text/plain;charset=utf-8") +[2618144.747] {Default Queue} -> wl_data_source#2101.offer("TEXT") +[2618144.752] {Default Queue} -> wl_data_source#2101.offer("STRING") +[2618144.757] {Default Queue} -> wl_data_source#2101.offer("UTF8_STRING") +[2618144.762] {Default Queue} wl_registry#2086.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618144.768] {Default Queue} -> wl_registry#2086.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2102) +[2618144.778] {Default Queue} -> zwp_primary_selection_device_manager_v1#2102.create_source(new id zwp_primary_selection_source_v1#2103) +[2618144.787] {Default Queue} -> zwp_primary_selection_source_v1#2103.offer("text/plain") +[2618144.792] {Default Queue} -> zwp_primary_selection_source_v1#2103.offer("text/plain;charset=utf-8") +[2618144.797] {Default Queue} -> zwp_primary_selection_source_v1#2103.offer("TEXT") +[2618144.802] {Default Queue} -> zwp_primary_selection_source_v1#2103.offer("STRING") +[2618144.807] {Default Queue} -> zwp_primary_selection_source_v1#2103.offer("UTF8_STRING") +[2618144.812] {Default Queue} wl_registry#2086.global(19, "zwlr_data_control_manager_v1", 2) +[2618144.818] {Default Queue} wl_registry#2086.global(20, "ext_data_control_manager_v1", 1) +[2618144.823] {Default Queue} wl_registry#2086.global(21, "wp_presentation", 2) +[2618144.829] {Default Queue} wl_registry#2086.global(22, "wp_security_context_manager_v1", 1) +[2618144.834] {Default Queue} wl_registry#2086.global(23, "zwp_text_input_manager_v3", 1) +[2618144.839] {Default Queue} wl_registry#2086.global(24, "zwp_input_method_manager_v2", 1) +[2618144.845] {Default Queue} wl_registry#2086.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618144.850] {Default Queue} wl_registry#2086.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618144.855] {Default Queue} wl_registry#2086.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618144.866] {Default Queue} wl_registry#2086.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618144.872] {Default Queue} wl_registry#2086.global(29, "ext_workspace_manager_v1", 1) +[2618144.877] {Default Queue} wl_registry#2086.global(30, "zwlr_output_manager_v1", 4) +[2618144.882] {Default Queue} wl_registry#2086.global(31, "zwlr_screencopy_manager_v1", 3) +[2618144.888] {Default Queue} wl_registry#2086.global(32, "wp_viewporter", 1) +[2618144.893] {Default Queue} wl_registry#2086.global(33, "zxdg_exporter_v2", 1) +[2618144.899] {Default Queue} wl_registry#2086.global(34, "zxdg_importer_v2", 1) +[2618144.904] {Default Queue} wl_registry#2086.global(36, "xdg_activation_v1", 1) +[2618144.910] {Default Queue} wl_registry#2086.global(37, "mutter_x11_interop", 1) +[2618144.915] {Default Queue} wl_registry#2086.global(38, "wl_seat", 9) +[2618144.921] {Default Queue} -> wl_registry#2086.bind(38, "wl_seat", 1, new id [unknown]#2104) +[2618144.927] {Default Queue} wl_registry#2086.global(39, "wp_cursor_shape_manager_v1", 2) +[2618144.932] {Default Queue} wl_registry#2086.global(40, "wl_output", 4) +[2618144.938] {Default Queue} -> wl_registry#2086.bind(40, "wl_output", 1, new id [unknown]#2105) +[2618144.943] {Default Queue} wl_callback#2087.done(0) +[2618144.948] {Default Queue} discarded wl_surface#2055.enter(wl_output#18) +[2618144.953] {Default Queue} discarded wl_surface#2055.enter(wl_output#57) +[2618144.958] {Default Queue} discarded wl_surface#2055.enter(wl_output#89) +[2618144.964] {Default Queue} discarded wl_surface#2055.enter(wl_output#121) +[2618144.968] {Default Queue} discarded wl_surface#2055.enter(wl_output#153) +[2618144.973] {Default Queue} discarded wl_surface#2055.enter(wl_output#185) +[2618144.980] {Default Queue} discarded wl_surface#2055.enter(wl_output#217) +[2618144.985] {Default Queue} discarded wl_surface#2055.enter(wl_output#249) +[2618144.989] {Default Queue} discarded wl_surface#2055.enter(wl_output#281) +[2618144.993] {Default Queue} discarded wl_surface#2055.enter(wl_output#313) +[2618144.997] {Default Queue} discarded wl_surface#2055.enter(wl_output#345) +[2618145.001] {Default Queue} discarded wl_surface#2055.enter(wl_output#377) +[2618145.005] {Default Queue} discarded wl_surface#2055.enter(wl_output#409) +[2618145.009] {Default Queue} discarded wl_surface#2055.enter(wl_output#441) +[2618145.013] {Default Queue} discarded wl_surface#2055.enter(wl_output#473) +[2618145.017] {Default Queue} discarded wl_surface#2055.enter(wl_output#505) +[2618145.021] {Default Queue} discarded wl_surface#2055.enter(wl_output#537) +[2618145.025] {Default Queue} discarded wl_surface#2055.enter(wl_output#569) +[2618145.029] {Default Queue} discarded wl_surface#2055.enter(wl_output#601) +[2618145.033] {Default Queue} discarded wl_surface#2055.enter(wl_output#633) +[2618145.037] {Default Queue} discarded wl_surface#2055.enter(wl_output#665) +[2618145.041] {Default Queue} discarded wl_surface#2055.enter(wl_output#697) +[2618145.045] {Default Queue} discarded wl_surface#2055.enter(wl_output#729) +[2618145.049] {Default Queue} discarded wl_surface#2055.enter(wl_output#761) +[2618145.053] {Default Queue} discarded wl_surface#2055.enter(wl_output#793) +[2618145.057] {Default Queue} discarded wl_surface#2055.enter(wl_output#825) +[2618145.061] {Default Queue} discarded wl_surface#2055.enter(wl_output#857) +[2618145.065] {Default Queue} discarded wl_surface#2055.enter(wl_output#889) +[2618145.069] {Default Queue} discarded wl_surface#2055.enter(wl_output#921) +[2618145.073] {Default Queue} discarded wl_surface#2055.enter(wl_output#953) +[2618145.076] {Default Queue} discarded wl_surface#2055.enter(wl_output#985) +[2618145.080] {Default Queue} discarded wl_surface#2055.enter(wl_output#1017) +[2618145.084] {Default Queue} discarded wl_surface#2055.enter(wl_output#1049) +[2618145.088] {Default Queue} discarded wl_surface#2055.enter(wl_output#1081) +[2618145.092] {Default Queue} discarded wl_surface#2055.enter(wl_output#1113) +[2618145.096] {Default Queue} discarded wl_surface#2055.enter(wl_output#1145) +[2618145.100] {Default Queue} discarded wl_surface#2055.enter(wl_output#1177) +[2618145.104] {Default Queue} discarded wl_surface#2055.enter(wl_output#1209) +[2618145.108] {Default Queue} discarded wl_surface#2055.enter(wl_output#1241) +[2618145.112] {Default Queue} discarded wl_surface#2055.enter(wl_output#1273) +[2618145.116] {Default Queue} discarded wl_surface#2055.enter(wl_output#1305) +[2618145.120] {Default Queue} discarded wl_surface#2055.enter(wl_output#1337) +[2618145.124] {Default Queue} discarded wl_surface#2055.enter(wl_output#1369) +[2618145.128] {Default Queue} discarded wl_surface#2055.enter(wl_output#1401) +[2618145.132] {Default Queue} discarded wl_surface#2055.enter(wl_output#1433) +[2618145.136] {Default Queue} discarded wl_surface#2055.enter(wl_output#1465) +[2618145.139] {Default Queue} discarded wl_surface#2055.enter(wl_output#1497) +[2618145.143] {Default Queue} discarded wl_surface#2055.enter(wl_output#1529) +[2618145.147] {Default Queue} discarded wl_surface#2055.enter(wl_output#1561) +[2618145.151] {Default Queue} discarded wl_surface#2055.enter(wl_output#1593) +[2618145.155] {Default Queue} discarded wl_surface#2055.enter(wl_output#1625) +[2618145.159] {Default Queue} discarded wl_surface#2055.enter(wl_output#1657) +[2618145.163] {Default Queue} discarded wl_surface#2055.enter(wl_output#1689) +[2618145.167] {Default Queue} discarded wl_surface#2055.enter(wl_output#1721) +[2618145.171] {Default Queue} discarded wl_surface#2055.enter(wl_output#1753) +[2618145.175] {Default Queue} discarded wl_surface#2055.enter(wl_output#1785) +[2618145.179] {Default Queue} discarded wl_surface#2055.enter(wl_output#1817) +[2618145.183] {Default Queue} discarded wl_surface#2055.enter(wl_output#1849) +[2618145.189] {Default Queue} discarded wl_surface#2055.enter(wl_output#1881) +[2618145.195] {Default Queue} discarded wl_surface#2055.enter(wl_output#1913) +[2618145.199] {Default Queue} discarded wl_surface#2055.enter(wl_output#1945) +[2618145.203] {Default Queue} discarded wl_surface#2055.enter(wl_output#1977) +[2618145.207] {Default Queue} discarded wl_surface#2055.enter(wl_output#2009) +[2618145.212] {Default Queue} discarded wl_surface#2055.enter(wl_output#2041) +[2618145.215] {Default Queue} discarded wl_surface#2055.enter(wl_output#2073) +[2618145.220] {Default Queue} -> wl_compositor#28.create_surface(new id wl_surface#2087) +[2618145.224] {Default Queue} -> wl_subcompositor#2093.get_subsurface(new id wl_subsurface#2106, wl_surface#2087, wl_surface#71) +[2618145.233] {Default Queue} -> wl_subsurface#2106.set_desync() +[2618145.237] {Default Queue} -> wl_subsurface#2106.set_position(0, 0) +[2618145.242] {Default Queue} -> wl_subsurface#2106.place_above(wl_surface#71) +[2618145.283] {Default Queue} -> wl_shm#2095.create_pool(new id wl_shm_pool#2107, fd 334, 16) +[2618145.290] {Default Queue} -> wl_shm#2095.create_pool(new id wl_shm_pool#2108, fd 335, 16) +[2618145.295] {Default Queue} -> wl_shm_pool#2107.create_buffer(new id wl_buffer#2109, 0, 2, 2, 8, 0) +[2618145.300] {Default Queue} -> wl_shm_pool#2108.create_buffer(new id wl_buffer#2110, 0, 2, 2, 8, 0) +[2618145.308] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) +[2618145.312] {Default Queue} -> wl_surface#2087.commit() +[2618145.318] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) +[2618145.322] {Default Queue} -> wl_surface#2087.commit() +[2618145.326] {Default Queue} -> wl_compositor#2092.create_region(new id wl_region#2111) +[2618145.331] {Default Queue} -> wl_compositor#2092.create_region(new id wl_region#2112) +[2618145.336] {Default Queue} -> wl_region#2111.subtract(0, 0, 2, 2) +[2618145.341] {Default Queue} -> wl_region#2111.add(0, 0, 0, 0) +[2618145.345] {Default Queue} -> wl_surface#2087.set_opaque_region(wl_region#2112) +[2618145.349] {Default Queue} -> wl_surface#2087.set_input_region(wl_region#2111) +[2618145.353] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) +[2618145.358] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) +[2618145.365] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) +[2618145.369] {Default Queue} -> wl_surface#2087.commit() +[2618145.401] {Default Queue} -> wl_shm#2097.create_pool(new id wl_shm_pool#2113, fd 338, 640) +[2618145.407] {Default Queue} -> wl_shm#2097.create_pool(new id wl_shm_pool#2114, fd 339, 640) +[2618145.411] {Default Queue} -> wl_shm_pool#2113.create_buffer(new id wl_buffer#2115, 0, 10, 16, 40, 0) +[2618145.416] {Default Queue} -> wl_shm_pool#2114.create_buffer(new id wl_buffer#2116, 0, 10, 16, 40, 0) +[2618145.423] {Default Queue} -> wl_compositor#2092.create_surface(new id wl_surface#2117) +[2618145.427] {Default Queue} -> wl_surface#2117.attach(wl_buffer#2115, 0, 0) +[2618145.431] {Default Queue} -> wl_surface#2117.commit() +[2618145.437] {Default Queue} -> wl_surface#2117.attach(wl_buffer#2115, 0, 0) +[2618145.441] {Default Queue} -> wl_surface#2117.commit() +[2618145.447] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) +[2618145.453] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2118) +[2618145.458] {Default Queue} -> wl_display#1.sync(new id wl_callback#2119) +[2618149.117] {Display Queue} wl_display#1.delete_id(2119) +[2618149.126] {Default Queue} wl_keyboard#2088.keymap(1, fd 334, 68213) +[2618149.131] {Default Queue} wl_keyboard#2088.enter(566, wl_surface#19, array[0]) +[2618149.136] {Default Queue} wl_keyboard#2088.modifiers(566, 0, 0, 16, 0) +[2618149.141] {Default Queue} discarded wl_shm#2095.format(875709016) +[2618149.145] {Default Queue} discarded wl_shm#2095.format(1) +[2618149.149] {Default Queue} discarded wl_shm#2095.format(0) +[2618149.153] {Default Queue} discarded wl_shm#2095.format(875708993) +[2618149.157] {Default Queue} discarded wl_shm#2096.format(875709016) +[2618149.161] {Default Queue} discarded wl_shm#2096.format(1) +[2618149.169] {Default Queue} discarded wl_shm#2096.format(0) +[2618149.175] {Default Queue} discarded wl_shm#2096.format(875708993) +[2618149.179] {Default Queue} discarded wl_shm#2097.format(875709016) +[2618149.183] {Default Queue} discarded wl_shm#2097.format(1) +[2618149.187] {Default Queue} discarded wl_shm#2097.format(0) +[2618149.192] {Default Queue} discarded wl_shm#2097.format(875708993) +[2618149.196] {Default Queue} wl_seat#2104.capabilities(7) +[2618149.200] {Default Queue} -> wl_seat#2104.get_keyboard(new id wl_keyboard#2120) +[2618149.205] {Default Queue} -> wl_seat#2104.get_pointer(new id wl_pointer#2121) +[2618149.209] {Default Queue} -> wl_data_device_manager#2100.get_data_device(new id wl_data_device#2122, wl_seat#2104) +[2618149.214] {Default Queue} -> zwp_primary_selection_device_manager_v1#2102.get_device(new id zwp_primary_selection_device_v1#2123, wl_seat#2104) +[2618149.222] {Default Queue} wl_output#2105.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618149.227] {Default Queue} wl_output#2105.mode(3, 1280, 800, 60000) +[2618149.231] {Default Queue} discarded wl_surface#3.enter(wl_output#2105) +[2618149.235] {Default Queue} discarded wl_surface#999.enter(wl_output#2105) +[2618149.239] {Default Queue} discarded wl_surface#1191.enter(wl_output#2105) +[2618149.244] {Default Queue} discarded wl_surface#1159.enter(wl_output#2105) +[2618149.247] {Default Queue} discarded wl_surface#1703.enter(wl_output#2105) +[2618149.252] {Default Queue} discarded wl_surface#423.enter(wl_output#2105) +[2618149.255] {Default Queue} discarded wl_surface#1447.enter(wl_output#2105) +[2618149.259] {Default Queue} discarded wl_surface#2023.enter(wl_output#2105) +[2618149.263] {Default Queue} discarded wl_surface#1639.enter(wl_output#2105) +[2618149.267] {Default Queue} discarded wl_surface#1319.enter(wl_output#2105) +[2618149.271] {Default Queue} discarded wl_surface#1127.enter(wl_output#2105) +[2618149.275] {Default Queue} discarded wl_surface#1063.enter(wl_output#2105) +[2618149.279] {Default Queue} discarded wl_surface#455.enter(wl_output#2105) +[2618149.283] {Default Queue} discarded wl_surface#1575.enter(wl_output#2105) +[2618149.287] {Default Queue} discarded wl_surface#1799.enter(wl_output#2105) +[2618149.291] {Default Queue} discarded wl_surface#1415.enter(wl_output#2105) +[2618149.294] {Default Queue} discarded wl_surface#1831.enter(wl_output#2105) +[2618149.298] {Default Queue} discarded wl_surface#903.enter(wl_output#2105) +[2618149.302] {Default Queue} discarded wl_surface#775.enter(wl_output#2105) +[2618149.306] {Default Queue} discarded wl_surface#1991.enter(wl_output#2105) +[2618149.310] {Default Queue} discarded wl_surface#1543.enter(wl_output#2105) +[2618149.314] {Default Queue} discarded wl_surface#135.enter(wl_output#2105) +[2618149.318] {Default Queue} discarded wl_surface#1287.enter(wl_output#2105) +[2618149.322] {Default Queue} discarded wl_surface#1031.enter(wl_output#2105) +[2618149.326] {Default Queue} discarded wl_surface#615.enter(wl_output#2105) +[2618149.330] {Default Queue} discarded wl_surface#231.enter(wl_output#2105) +[2618149.334] {Default Queue} discarded wl_surface#1863.enter(wl_output#2105) +[2618149.338] {Default Queue} discarded wl_surface#359.enter(wl_output#2105) +[2618149.342] {Default Queue} discarded wl_surface#583.enter(wl_output#2105) +[2618149.346] {Default Queue} discarded wl_surface#743.enter(wl_output#2105) +[2618149.350] {Default Queue} discarded wl_surface#967.enter(wl_output#2105) +[2618149.354] {Default Queue} discarded wl_surface#103.enter(wl_output#2105) +[2618149.358] {Default Queue} discarded wl_surface#327.enter(wl_output#2105) +[2618149.362] {Default Queue} discarded wl_surface#43.enter(wl_output#2105) +[2618149.366] {Default Queue} discarded wl_surface#807.enter(wl_output#2105) +[2618149.371] {Default Queue} discarded wl_surface#19.enter(wl_output#2105) +[2618149.375] {Default Queue} discarded wl_surface#1511.enter(wl_output#2105) +[2618149.379] {Default Queue} discarded wl_surface#199.enter(wl_output#2105) +[2618149.382] {Default Queue} discarded wl_surface#391.enter(wl_output#2105) +[2618149.386] {Default Queue} discarded wl_surface#935.enter(wl_output#2105) +[2618149.394] {Default Queue} discarded wl_surface#1671.enter(wl_output#2105) +[2618149.399] {Default Queue} discarded wl_surface#1351.enter(wl_output#2105) +[2618149.403] {Default Queue} discarded wl_surface#711.enter(wl_output#2105) +[2618149.407] {Default Queue} discarded wl_surface#1223.enter(wl_output#2105) +[2618149.411] {Default Queue} discarded wl_surface#1927.enter(wl_output#2105) +[2618149.415] {Default Queue} discarded wl_surface#871.enter(wl_output#2105) +[2618149.419] {Default Queue} discarded wl_surface#1895.enter(wl_output#2105) +[2618149.423] {Default Queue} discarded wl_surface#263.enter(wl_output#2105) +[2618149.427] {Default Queue} discarded wl_surface#551.enter(wl_output#2105) +[2618149.431] {Default Queue} discarded wl_surface#1735.enter(wl_output#2105) +[2618149.434] {Default Queue} discarded wl_surface#1479.enter(wl_output#2105) +[2618149.438] {Default Queue} discarded wl_surface#1772.enter(wl_output#2105) +[2618149.443] {Default Queue} discarded wl_surface#1959.enter(wl_output#2105) +[2618149.447] {Default Queue} discarded wl_surface#647.enter(wl_output#2105) +[2618149.451] {Default Queue} discarded wl_surface#2055.enter(wl_output#2105) +[2618149.454] {Default Queue} discarded wl_surface#71.enter(wl_output#2105) +[2618149.458] {Default Queue} discarded wl_surface#839.enter(wl_output#2105) +[2618149.462] {Default Queue} discarded wl_surface#1607.enter(wl_output#2105) +[2618149.466] {Default Queue} discarded wl_surface#1095.enter(wl_output#2105) +[2618149.470] {Default Queue} discarded wl_surface#1383.enter(wl_output#2105) +[2618149.474] {Default Queue} discarded wl_surface#487.enter(wl_output#2105) +[2618149.478] {Default Queue} discarded wl_surface#519.enter(wl_output#2105) +[2618149.482] {Default Queue} discarded wl_surface#295.enter(wl_output#2105) +[2618149.486] {Default Queue} discarded wl_surface#167.enter(wl_output#2105) +[2618149.490] {Default Queue} discarded wl_surface#1255.enter(wl_output#2105) +[2618149.493] {Default Queue} discarded wl_surface#679.enter(wl_output#2105) +[2618149.497] {Default Queue} wl_registry#2118.global(1, "wl_compositor", 6) +[2618149.503] {Default Queue} -> wl_registry#2118.bind(1, "wl_compositor", 1, new id [unknown]#2124) +[2618149.508] {Default Queue} wl_registry#2118.global(2, "wl_subcompositor", 1) +[2618149.513] {Default Queue} -> wl_registry#2118.bind(2, "wl_subcompositor", 1, new id [unknown]#2125) +[2618149.517] {Default Queue} wl_registry#2118.global(3, "xdg_wm_base", 6) +[2618149.522] {Default Queue} -> wl_registry#2118.bind(3, "xdg_wm_base", 1, new id [unknown]#2126) +[2618149.528] {Default Queue} wl_registry#2118.global(6, "zwlr_layer_shell_v1", 5) +[2618149.532] {Default Queue} wl_registry#2118.global(7, "ext_session_lock_manager_v1", 1) +[2618149.537] {Default Queue} wl_registry#2118.global(8, "wl_shm", 2) +[2618149.544] {Default Queue} -> wl_registry#2118.bind(8, "wl_shm", 1, new id [unknown]#2127) +[2618149.548] {Default Queue} -> wl_registry#2118.bind(8, "wl_shm", 1, new id [unknown]#2128) +[2618149.553] {Default Queue} -> wl_registry#2118.bind(8, "wl_shm", 1, new id [unknown]#2129) +[2618149.558] {Default Queue} wl_registry#2118.global(9, "zxdg_output_manager_v1", 3) +[2618149.562] {Default Queue} wl_registry#2118.global(10, "wp_fractional_scale_manager_v1", 1) +[2618149.566] {Default Queue} wl_registry#2118.global(11, "zwp_tablet_manager_v2", 1) +[2618149.571] {Default Queue} wl_registry#2118.global(12, "zwp_pointer_gestures_v1", 3) +[2618149.575] {Default Queue} wl_registry#2118.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618149.580] {Default Queue} -> wl_registry#2118.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2130) +[2618149.584] {Default Queue} wl_registry#2118.global(14, "zwp_pointer_constraints_v1", 1) +[2618149.588] {Default Queue} -> wl_registry#2118.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2131) +[2618149.593] {Default Queue} wl_registry#2118.global(15, "ext_idle_notifier_v1", 2) +[2618149.597] {Default Queue} wl_registry#2118.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618149.604] {Default Queue} wl_registry#2118.global(17, "wl_data_device_manager", 3) +[2618149.611] {Default Queue} -> wl_registry#2118.bind(17, "wl_data_device_manager", 2, new id [unknown]#2132) +[2618149.616] {Default Queue} -> wl_data_device_manager#2132.create_data_source(new id wl_data_source#2133) +[2618149.620] {Default Queue} -> wl_data_source#2133.offer("text/plain") +[2618149.624] {Default Queue} -> wl_data_source#2133.offer("text/plain;charset=utf-8") +[2618149.629] {Default Queue} -> wl_data_source#2133.offer("TEXT") +[2618149.633] {Default Queue} -> wl_data_source#2133.offer("STRING") +[2618149.637] {Default Queue} -> wl_data_source#2133.offer("UTF8_STRING") +[2618149.641] {Default Queue} wl_registry#2118.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618149.646] {Default Queue} -> wl_registry#2118.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2134) +[2618149.654] {Default Queue} -> zwp_primary_selection_device_manager_v1#2134.create_source(new id zwp_primary_selection_source_v1#2135) +[2618149.661] {Default Queue} -> zwp_primary_selection_source_v1#2135.offer("text/plain") +[2618149.665] {Default Queue} -> zwp_primary_selection_source_v1#2135.offer("text/plain;charset=utf-8") +[2618149.669] {Default Queue} -> zwp_primary_selection_source_v1#2135.offer("TEXT") +[2618149.674] {Default Queue} -> zwp_primary_selection_source_v1#2135.offer("STRING") +[2618149.678] {Default Queue} -> zwp_primary_selection_source_v1#2135.offer("UTF8_STRING") +[2618149.682] {Default Queue} wl_registry#2118.global(19, "zwlr_data_control_manager_v1", 2) +[2618149.686] {Default Queue} wl_registry#2118.global(20, "ext_data_control_manager_v1", 1) +[2618149.690] {Default Queue} wl_registry#2118.global(21, "wp_presentation", 2) +[2618149.695] {Default Queue} wl_registry#2118.global(22, "wp_security_context_manager_v1", 1) +[2618149.699] {Default Queue} wl_registry#2118.global(23, "zwp_text_input_manager_v3", 1) +[2618149.703] {Default Queue} wl_registry#2118.global(24, "zwp_input_method_manager_v2", 1) +[2618149.708] {Default Queue} wl_registry#2118.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618149.712] {Default Queue} wl_registry#2118.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618149.716] {Default Queue} wl_registry#2118.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618149.721] {Default Queue} wl_registry#2118.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618149.725] {Default Queue} wl_registry#2118.global(29, "ext_workspace_manager_v1", 1) +[2618149.729] {Default Queue} wl_registry#2118.global(30, "zwlr_output_manager_v1", 4) +[2618149.734] {Default Queue} wl_registry#2118.global(31, "zwlr_screencopy_manager_v1", 3) +[2618149.738] {Default Queue} wl_registry#2118.global(32, "wp_viewporter", 1) +[2618149.742] {Default Queue} wl_registry#2118.global(33, "zxdg_exporter_v2", 1) +[2618149.747] {Default Queue} wl_registry#2118.global(34, "zxdg_importer_v2", 1) +[2618149.751] {Default Queue} wl_registry#2118.global(36, "xdg_activation_v1", 1) +[2618149.755] {Default Queue} wl_registry#2118.global(37, "mutter_x11_interop", 1) +[2618149.760] {Default Queue} wl_registry#2118.global(38, "wl_seat", 9) +[2618149.764] {Default Queue} -> wl_registry#2118.bind(38, "wl_seat", 1, new id [unknown]#2136) +[2618149.769] {Default Queue} wl_registry#2118.global(39, "wp_cursor_shape_manager_v1", 2) +[2618149.773] {Default Queue} wl_registry#2118.global(40, "wl_output", 4) +[2618149.777] {Default Queue} -> wl_registry#2118.bind(40, "wl_output", 1, new id [unknown]#2137) +[2618149.782] {Default Queue} wl_callback#2119.done(0) +[2618149.786] {Default Queue} discarded wl_surface#2087.enter(wl_output#18) +[2618149.790] {Default Queue} discarded wl_surface#2087.enter(wl_output#57) +[2618149.794] {Default Queue} discarded wl_surface#2087.enter(wl_output#89) +[2618149.798] {Default Queue} discarded wl_surface#2087.enter(wl_output#121) +[2618149.802] {Default Queue} discarded wl_surface#2087.enter(wl_output#153) +[2618149.806] {Default Queue} discarded wl_surface#2087.enter(wl_output#185) +[2618149.810] {Default Queue} discarded wl_surface#2087.enter(wl_output#217) +[2618149.817] {Default Queue} discarded wl_surface#2087.enter(wl_output#249) +[2618149.822] {Default Queue} discarded wl_surface#2087.enter(wl_output#281) +[2618149.826] {Default Queue} discarded wl_surface#2087.enter(wl_output#313) +[2618149.830] {Default Queue} discarded wl_surface#2087.enter(wl_output#345) +[2618149.834] {Default Queue} discarded wl_surface#2087.enter(wl_output#377) +[2618149.838] {Default Queue} discarded wl_surface#2087.enter(wl_output#409) +[2618149.841] {Default Queue} discarded wl_surface#2087.enter(wl_output#441) +[2618149.845] {Default Queue} discarded wl_surface#2087.enter(wl_output#473) +[2618149.849] {Default Queue} discarded wl_surface#2087.enter(wl_output#505) +[2618149.853] {Default Queue} discarded wl_surface#2087.enter(wl_output#537) +[2618149.857] {Default Queue} discarded wl_surface#2087.enter(wl_output#569) +[2618149.867] {Default Queue} discarded wl_surface#2087.enter(wl_output#601) +[2618149.871] {Default Queue} discarded wl_surface#2087.enter(wl_output#633) +[2618149.875] {Default Queue} discarded wl_surface#2087.enter(wl_output#665) +[2618149.879] {Default Queue} discarded wl_surface#2087.enter(wl_output#697) +[2618149.883] {Default Queue} discarded wl_surface#2087.enter(wl_output#729) +[2618149.887] {Default Queue} discarded wl_surface#2087.enter(wl_output#761) +[2618149.891] {Default Queue} discarded wl_surface#2087.enter(wl_output#793) +[2618149.895] {Default Queue} discarded wl_surface#2087.enter(wl_output#825) +[2618149.899] {Default Queue} discarded wl_surface#2087.enter(wl_output#857) +[2618149.903] {Default Queue} discarded wl_surface#2087.enter(wl_output#889) +[2618149.908] {Default Queue} discarded wl_surface#2087.enter(wl_output#921) +[2618149.912] {Default Queue} discarded wl_surface#2087.enter(wl_output#953) +[2618149.915] {Default Queue} discarded wl_surface#2087.enter(wl_output#985) +[2618149.919] {Default Queue} discarded wl_surface#2087.enter(wl_output#1017) +[2618149.923] {Default Queue} discarded wl_surface#2087.enter(wl_output#1049) +[2618149.927] {Default Queue} discarded wl_surface#2087.enter(wl_output#1081) +[2618149.931] {Default Queue} discarded wl_surface#2087.enter(wl_output#1113) +[2618149.935] {Default Queue} discarded wl_surface#2087.enter(wl_output#1145) +[2618149.939] {Default Queue} discarded wl_surface#2087.enter(wl_output#1177) +[2618149.943] {Default Queue} discarded wl_surface#2087.enter(wl_output#1209) +[2618149.947] {Default Queue} discarded wl_surface#2087.enter(wl_output#1241) +[2618149.951] {Default Queue} discarded wl_surface#2087.enter(wl_output#1273) +[2618149.955] {Default Queue} discarded wl_surface#2087.enter(wl_output#1305) +[2618149.960] {Default Queue} discarded wl_surface#2087.enter(wl_output#1337) +[2618149.964] {Default Queue} discarded wl_surface#2087.enter(wl_output#1369) +[2618149.968] {Default Queue} discarded wl_surface#2087.enter(wl_output#1401) +[2618149.971] {Default Queue} discarded wl_surface#2087.enter(wl_output#1433) +[2618149.976] {Default Queue} discarded wl_surface#2087.enter(wl_output#1465) +[2618149.979] {Default Queue} discarded wl_surface#2087.enter(wl_output#1497) +[2618149.983] {Default Queue} discarded wl_surface#2087.enter(wl_output#1529) +[2618149.987] {Default Queue} discarded wl_surface#2087.enter(wl_output#1561) +[2618149.992] {Default Queue} discarded wl_surface#2087.enter(wl_output#1593) +[2618149.996] {Default Queue} discarded wl_surface#2087.enter(wl_output#1625) +[2618149.999] {Default Queue} discarded wl_surface#2087.enter(wl_output#1657) +[2618150.003] {Default Queue} discarded wl_surface#2087.enter(wl_output#1689) +[2618150.007] {Default Queue} discarded wl_surface#2087.enter(wl_output#1721) +[2618150.011] {Default Queue} discarded wl_surface#2087.enter(wl_output#1753) +[2618150.015] {Default Queue} discarded wl_surface#2087.enter(wl_output#1785) +[2618150.019] {Default Queue} discarded wl_surface#2087.enter(wl_output#1817) +[2618150.023] {Default Queue} discarded wl_surface#2087.enter(wl_output#1849) +[2618150.027] {Default Queue} discarded wl_surface#2087.enter(wl_output#1881) +[2618150.031] {Default Queue} discarded wl_surface#2087.enter(wl_output#1913) +[2618150.038] {Default Queue} discarded wl_surface#2087.enter(wl_output#1945) +[2618150.043] {Default Queue} discarded wl_surface#2087.enter(wl_output#1977) +[2618150.047] {Default Queue} discarded wl_surface#2087.enter(wl_output#2009) +[2618150.051] {Default Queue} discarded wl_surface#2087.enter(wl_output#2041) +[2618150.055] {Default Queue} discarded wl_surface#2087.enter(wl_output#2073) +[2618150.059] {Default Queue} discarded wl_surface#2087.enter(wl_output#2105) +[2618150.063] {Default Queue} -> wl_compositor#2092.create_surface(new id wl_surface#2119) +[2618150.067] {Default Queue} -> wl_subcompositor#2125.get_subsurface(new id wl_subsurface#2138, wl_surface#2119, wl_surface#2087) +[2618150.075] {Default Queue} -> wl_subsurface#2138.set_desync() +[2618150.079] {Default Queue} -> wl_subsurface#2138.set_position(0, 0) +[2618150.084] {Default Queue} -> wl_subsurface#2138.place_above(wl_surface#2087) +[2618150.122] {Default Queue} -> wl_shm#2127.create_pool(new id wl_shm_pool#2139, fd 339, 16) +[2618150.129] {Default Queue} -> wl_shm#2127.create_pool(new id wl_shm_pool#2140, fd 340, 16) +[2618150.133] {Default Queue} -> wl_shm_pool#2139.create_buffer(new id wl_buffer#2141, 0, 2, 2, 8, 0) +[2618150.138] {Default Queue} -> wl_shm_pool#2140.create_buffer(new id wl_buffer#2142, 0, 2, 2, 8, 0) +[2618150.146] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) +[2618150.150] {Default Queue} -> wl_surface#2119.commit() +[2618150.156] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) +[2618150.160] {Default Queue} -> wl_surface#2119.commit() +[2618150.164] {Default Queue} -> wl_compositor#2124.create_region(new id wl_region#2143) +[2618150.168] {Default Queue} -> wl_compositor#2124.create_region(new id wl_region#2144) +[2618150.173] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) +[2618150.177] {Default Queue} -> wl_region#2143.add(0, 0, 0, 0) +[2618150.182] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618150.186] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618150.190] {Default Queue} -> wl_surface#2119.damage(0, 0, 2, 2) +[2618150.194] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) +[2618150.201] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) +[2618150.206] {Default Queue} -> wl_surface#2119.commit() +[2618150.241] {Default Queue} -> wl_shm#2129.create_pool(new id wl_shm_pool#2145, fd 343, 640) +[2618150.247] {Default Queue} -> wl_shm#2129.create_pool(new id wl_shm_pool#2146, fd 344, 640) +[2618150.252] {Default Queue} -> wl_shm_pool#2145.create_buffer(new id wl_buffer#2147, 0, 10, 16, 40, 0) +[2618150.257] {Default Queue} -> wl_shm_pool#2146.create_buffer(new id wl_buffer#2148, 0, 10, 16, 40, 0) +[2618150.264] {Default Queue} -> wl_compositor#2124.create_surface(new id wl_surface#2149) +[2618150.268] {Default Queue} -> wl_surface#2149.attach(wl_buffer#2147, 0, 0) +[2618150.273] {Default Queue} -> wl_surface#2149.commit() +[2618150.278] {Default Queue} -> wl_surface#2149.attach(wl_buffer#2147, 0, 0) +[2618150.282] {Default Queue} -> wl_surface#2149.commit() +[2618150.287] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) +[2618150.292] {Default Queue} -> wl_surface#2119.damage(0, 0, 2, 2) +[2618150.297] {Default Queue} -> wl_surface#2119.damage(0, 0, 2, 2) +[2618150.303] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2150) +[2618150.308] {Default Queue} -> wl_display#1.sync(new id wl_callback#2151) +[2618154.088] {Display Queue} wl_display#1.delete_id(2151) +[2618154.100] {Default Queue} wl_keyboard#2120.keymap(1, fd 339, 68213) +[2618154.106] {Default Queue} wl_keyboard#2120.enter(566, wl_surface#19, array[0]) +[2618154.113] {Default Queue} wl_keyboard#2120.modifiers(566, 0, 0, 16, 0) +[2618154.119] {Default Queue} discarded wl_shm#2127.format(875709016) +[2618154.123] {Default Queue} discarded wl_shm#2127.format(1) +[2618154.128] {Default Queue} discarded wl_shm#2127.format(0) +[2618154.133] {Default Queue} discarded wl_shm#2127.format(875708993) +[2618154.142] {Default Queue} discarded wl_shm#2128.format(875709016) +[2618154.151] {Default Queue} discarded wl_shm#2128.format(1) +[2618154.156] {Default Queue} discarded wl_shm#2128.format(0) +[2618154.161] {Default Queue} discarded wl_shm#2128.format(875708993) +[2618154.166] {Default Queue} discarded wl_shm#2129.format(875709016) +[2618154.171] {Default Queue} discarded wl_shm#2129.format(1) +[2618154.175] {Default Queue} discarded wl_shm#2129.format(0) +[2618154.180] {Default Queue} discarded wl_shm#2129.format(875708993) +[2618154.185] {Default Queue} wl_seat#2136.capabilities(7) +[2618154.191] {Default Queue} -> wl_seat#2136.get_keyboard(new id wl_keyboard#2152) +[2618154.196] {Default Queue} -> wl_seat#2136.get_pointer(new id wl_pointer#2153) +[2618154.202] {Default Queue} -> wl_data_device_manager#2132.get_data_device(new id wl_data_device#2154, wl_seat#2136) +[2618154.207] {Default Queue} -> zwp_primary_selection_device_manager_v1#2134.get_device(new id zwp_primary_selection_device_v1#2155, wl_seat#2136) +[2618154.218] {Default Queue} wl_output#2137.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618154.224] {Default Queue} wl_output#2137.mode(3, 1280, 800, 60000) +[2618154.230] {Default Queue} discarded wl_surface#3.enter(wl_output#2137) +[2618154.235] {Default Queue} discarded wl_surface#999.enter(wl_output#2137) +[2618154.240] {Default Queue} discarded wl_surface#1191.enter(wl_output#2137) +[2618154.245] {Default Queue} discarded wl_surface#1159.enter(wl_output#2137) +[2618154.250] {Default Queue} discarded wl_surface#1703.enter(wl_output#2137) +[2618154.255] {Default Queue} discarded wl_surface#423.enter(wl_output#2137) +[2618154.260] {Default Queue} discarded wl_surface#1447.enter(wl_output#2137) +[2618154.265] {Default Queue} discarded wl_surface#2023.enter(wl_output#2137) +[2618154.270] {Default Queue} discarded wl_surface#1639.enter(wl_output#2137) +[2618154.275] {Default Queue} discarded wl_surface#1319.enter(wl_output#2137) +[2618154.279] {Default Queue} discarded wl_surface#1127.enter(wl_output#2137) +[2618154.284] {Default Queue} discarded wl_surface#1063.enter(wl_output#2137) +[2618154.289] {Default Queue} discarded wl_surface#455.enter(wl_output#2137) +[2618154.294] {Default Queue} discarded wl_surface#1575.enter(wl_output#2137) +[2618154.299] {Default Queue} discarded wl_surface#1799.enter(wl_output#2137) +[2618154.304] {Default Queue} discarded wl_surface#1415.enter(wl_output#2137) +[2618154.309] {Default Queue} discarded wl_surface#1831.enter(wl_output#2137) +[2618154.313] {Default Queue} discarded wl_surface#903.enter(wl_output#2137) +[2618154.318] {Default Queue} discarded wl_surface#775.enter(wl_output#2137) +[2618154.323] {Default Queue} discarded wl_surface#1991.enter(wl_output#2137) +[2618154.328] {Default Queue} discarded wl_surface#1543.enter(wl_output#2137) +[2618154.333] {Default Queue} discarded wl_surface#135.enter(wl_output#2137) +[2618154.338] {Default Queue} discarded wl_surface#1287.enter(wl_output#2137) +[2618154.343] {Default Queue} discarded wl_surface#1031.enter(wl_output#2137) +[2618154.348] {Default Queue} discarded wl_surface#615.enter(wl_output#2137) +[2618154.352] {Default Queue} discarded wl_surface#231.enter(wl_output#2137) +[2618154.357] {Default Queue} discarded wl_surface#1863.enter(wl_output#2137) +[2618154.362] {Default Queue} discarded wl_surface#359.enter(wl_output#2137) +[2618154.367] {Default Queue} discarded wl_surface#583.enter(wl_output#2137) +[2618154.372] {Default Queue} discarded wl_surface#743.enter(wl_output#2137) +[2618154.377] {Default Queue} discarded wl_surface#967.enter(wl_output#2137) +[2618154.382] {Default Queue} discarded wl_surface#103.enter(wl_output#2137) +[2618154.387] {Default Queue} discarded wl_surface#327.enter(wl_output#2137) +[2618154.391] {Default Queue} discarded wl_surface#43.enter(wl_output#2137) +[2618154.396] {Default Queue} discarded wl_surface#807.enter(wl_output#2137) +[2618154.401] {Default Queue} discarded wl_surface#19.enter(wl_output#2137) +[2618154.406] {Default Queue} discarded wl_surface#1511.enter(wl_output#2137) +[2618154.411] {Default Queue} discarded wl_surface#199.enter(wl_output#2137) +[2618154.421] {Default Queue} discarded wl_surface#391.enter(wl_output#2137) +[2618154.428] {Default Queue} discarded wl_surface#935.enter(wl_output#2137) +[2618154.433] {Default Queue} discarded wl_surface#1671.enter(wl_output#2137) +[2618154.438] {Default Queue} discarded wl_surface#1351.enter(wl_output#2137) +[2618154.442] {Default Queue} discarded wl_surface#711.enter(wl_output#2137) +[2618154.447] {Default Queue} discarded wl_surface#1223.enter(wl_output#2137) +[2618154.452] {Default Queue} discarded wl_surface#1927.enter(wl_output#2137) +[2618154.457] {Default Queue} discarded wl_surface#871.enter(wl_output#2137) +[2618154.462] {Default Queue} discarded wl_surface#1895.enter(wl_output#2137) +[2618154.467] {Default Queue} discarded wl_surface#263.enter(wl_output#2137) +[2618154.472] {Default Queue} discarded wl_surface#551.enter(wl_output#2137) +[2618154.477] {Default Queue} discarded wl_surface#1735.enter(wl_output#2137) +[2618154.482] {Default Queue} discarded wl_surface#1479.enter(wl_output#2137) +[2618154.486] {Default Queue} discarded wl_surface#1772.enter(wl_output#2137) +[2618154.491] {Default Queue} discarded wl_surface#1959.enter(wl_output#2137) +[2618154.496] {Default Queue} discarded wl_surface#647.enter(wl_output#2137) +[2618154.501] {Default Queue} discarded wl_surface#2055.enter(wl_output#2137) +[2618154.506] {Default Queue} discarded wl_surface#71.enter(wl_output#2137) +[2618154.511] {Default Queue} discarded wl_surface#839.enter(wl_output#2137) +[2618154.515] {Default Queue} discarded wl_surface#1607.enter(wl_output#2137) +[2618154.520] {Default Queue} discarded wl_surface#1095.enter(wl_output#2137) +[2618154.525] {Default Queue} discarded wl_surface#1383.enter(wl_output#2137) +[2618154.530] {Default Queue} discarded wl_surface#487.enter(wl_output#2137) +[2618154.535] {Default Queue} discarded wl_surface#519.enter(wl_output#2137) +[2618154.540] {Default Queue} discarded wl_surface#2087.enter(wl_output#2137) +[2618154.545] {Default Queue} discarded wl_surface#295.enter(wl_output#2137) +[2618154.550] {Default Queue} discarded wl_surface#167.enter(wl_output#2137) +[2618154.554] {Default Queue} discarded wl_surface#1255.enter(wl_output#2137) +[2618154.559] {Default Queue} discarded wl_surface#679.enter(wl_output#2137) +[2618154.564] {Default Queue} wl_registry#2150.global(1, "wl_compositor", 6) +[2618154.570] {Default Queue} -> wl_registry#2150.bind(1, "wl_compositor", 1, new id [unknown]#2156) +[2618154.576] {Default Queue} wl_registry#2150.global(2, "wl_subcompositor", 1) +[2618154.582] {Default Queue} -> wl_registry#2150.bind(2, "wl_subcompositor", 1, new id [unknown]#2157) +[2618154.587] {Default Queue} wl_registry#2150.global(3, "xdg_wm_base", 6) +[2618154.593] {Default Queue} -> wl_registry#2150.bind(3, "xdg_wm_base", 1, new id [unknown]#2158) +[2618154.599] {Default Queue} wl_registry#2150.global(6, "zwlr_layer_shell_v1", 5) +[2618154.604] {Default Queue} wl_registry#2150.global(7, "ext_session_lock_manager_v1", 1) +[2618154.610] {Default Queue} wl_registry#2150.global(8, "wl_shm", 2) +[2618154.616] {Default Queue} -> wl_registry#2150.bind(8, "wl_shm", 1, new id [unknown]#2159) +[2618154.621] {Default Queue} -> wl_registry#2150.bind(8, "wl_shm", 1, new id [unknown]#2160) +[2618154.629] {Default Queue} -> wl_registry#2150.bind(8, "wl_shm", 1, new id [unknown]#2161) +[2618154.634] {Default Queue} wl_registry#2150.global(9, "zxdg_output_manager_v1", 3) +[2618154.640] {Default Queue} wl_registry#2150.global(10, "wp_fractional_scale_manager_v1", 1) +[2618154.645] {Default Queue} wl_registry#2150.global(11, "zwp_tablet_manager_v2", 1) +[2618154.651] {Default Queue} wl_registry#2150.global(12, "zwp_pointer_gestures_v1", 3) +[2618154.656] {Default Queue} wl_registry#2150.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618154.661] {Default Queue} -> wl_registry#2150.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2162) +[2618154.667] {Default Queue} wl_registry#2150.global(14, "zwp_pointer_constraints_v1", 1) +[2618154.672] {Default Queue} -> wl_registry#2150.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2163) +[2618154.681] {Default Queue} wl_registry#2150.global(15, "ext_idle_notifier_v1", 2) +[2618154.689] {Default Queue} wl_registry#2150.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618154.695] {Default Queue} wl_registry#2150.global(17, "wl_data_device_manager", 3) +[2618154.701] {Default Queue} -> wl_registry#2150.bind(17, "wl_data_device_manager", 2, new id [unknown]#2164) +[2618154.706] {Default Queue} -> wl_data_device_manager#2164.create_data_source(new id wl_data_source#2165) +[2618154.712] {Default Queue} -> wl_data_source#2165.offer("text/plain") +[2618154.717] {Default Queue} -> wl_data_source#2165.offer("text/plain;charset=utf-8") +[2618154.722] {Default Queue} -> wl_data_source#2165.offer("TEXT") +[2618154.728] {Default Queue} -> wl_data_source#2165.offer("STRING") +[2618154.732] {Default Queue} -> wl_data_source#2165.offer("UTF8_STRING") +[2618154.738] {Default Queue} wl_registry#2150.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618154.744] {Default Queue} -> wl_registry#2150.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2166) +[2618154.753] {Default Queue} -> zwp_primary_selection_device_manager_v1#2166.create_source(new id zwp_primary_selection_source_v1#2167) +[2618154.763] {Default Queue} -> zwp_primary_selection_source_v1#2167.offer("text/plain") +[2618154.768] {Default Queue} -> zwp_primary_selection_source_v1#2167.offer("text/plain;charset=utf-8") +[2618154.773] {Default Queue} -> zwp_primary_selection_source_v1#2167.offer("TEXT") +[2618154.778] {Default Queue} -> zwp_primary_selection_source_v1#2167.offer("STRING") +[2618154.783] {Default Queue} -> zwp_primary_selection_source_v1#2167.offer("UTF8_STRING") +[2618154.788] {Default Queue} wl_registry#2150.global(19, "zwlr_data_control_manager_v1", 2) +[2618154.794] {Default Queue} wl_registry#2150.global(20, "ext_data_control_manager_v1", 1) +[2618154.800] {Default Queue} wl_registry#2150.global(21, "wp_presentation", 2) +[2618154.805] {Default Queue} wl_registry#2150.global(22, "wp_security_context_manager_v1", 1) +[2618154.810] {Default Queue} wl_registry#2150.global(23, "zwp_text_input_manager_v3", 1) +[2618154.816] {Default Queue} wl_registry#2150.global(24, "zwp_input_method_manager_v2", 1) +[2618154.821] {Default Queue} wl_registry#2150.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618154.827] {Default Queue} wl_registry#2150.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618154.832] {Default Queue} wl_registry#2150.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618154.837] {Default Queue} wl_registry#2150.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618154.843] {Default Queue} wl_registry#2150.global(29, "ext_workspace_manager_v1", 1) +[2618154.848] {Default Queue} wl_registry#2150.global(30, "zwlr_output_manager_v1", 4) +[2618154.854] {Default Queue} wl_registry#2150.global(31, "zwlr_screencopy_manager_v1", 3) +[2618154.859] {Default Queue} wl_registry#2150.global(32, "wp_viewporter", 1) +[2618154.875] {Default Queue} wl_registry#2150.global(33, "zxdg_exporter_v2", 1) +[2618154.881] {Default Queue} wl_registry#2150.global(34, "zxdg_importer_v2", 1) +[2618154.886] {Default Queue} wl_registry#2150.global(36, "xdg_activation_v1", 1) +[2618154.891] {Default Queue} wl_registry#2150.global(37, "mutter_x11_interop", 1) +[2618154.897] {Default Queue} wl_registry#2150.global(38, "wl_seat", 9) +[2618154.903] {Default Queue} -> wl_registry#2150.bind(38, "wl_seat", 1, new id [unknown]#2168) +[2618154.908] {Default Queue} wl_registry#2150.global(39, "wp_cursor_shape_manager_v1", 2) +[2618154.914] {Default Queue} wl_registry#2150.global(40, "wl_output", 4) +[2618154.919] {Default Queue} -> wl_registry#2150.bind(40, "wl_output", 1, new id [unknown]#2169) +[2618154.925] {Default Queue} wl_callback#2151.done(0) +[2618154.931] {Default Queue} discarded wl_surface#2119.enter(wl_output#18) +[2618154.936] {Default Queue} discarded wl_surface#2119.enter(wl_output#57) +[2618154.941] {Default Queue} discarded wl_surface#2119.enter(wl_output#89) +[2618154.946] {Default Queue} discarded wl_surface#2119.enter(wl_output#121) +[2618154.954] {Default Queue} discarded wl_surface#2119.enter(wl_output#153) +[2618154.961] {Default Queue} discarded wl_surface#2119.enter(wl_output#185) +[2618154.966] {Default Queue} discarded wl_surface#2119.enter(wl_output#217) +[2618154.971] {Default Queue} discarded wl_surface#2119.enter(wl_output#249) +[2618154.976] {Default Queue} discarded wl_surface#2119.enter(wl_output#281) +[2618154.981] {Default Queue} discarded wl_surface#2119.enter(wl_output#313) +[2618154.986] {Default Queue} discarded wl_surface#2119.enter(wl_output#345) +[2618154.991] {Default Queue} discarded wl_surface#2119.enter(wl_output#377) +[2618154.995] {Default Queue} discarded wl_surface#2119.enter(wl_output#409) +[2618154.999] {Default Queue} discarded wl_surface#2119.enter(wl_output#441) +[2618155.003] {Default Queue} discarded wl_surface#2119.enter(wl_output#473) +[2618155.007] {Default Queue} discarded wl_surface#2119.enter(wl_output#505) +[2618155.011] {Default Queue} discarded wl_surface#2119.enter(wl_output#537) +[2618155.015] {Default Queue} discarded wl_surface#2119.enter(wl_output#569) +[2618155.019] {Default Queue} discarded wl_surface#2119.enter(wl_output#601) +[2618155.023] {Default Queue} discarded wl_surface#2119.enter(wl_output#633) +[2618155.027] {Default Queue} discarded wl_surface#2119.enter(wl_output#665) +[2618155.031] {Default Queue} discarded wl_surface#2119.enter(wl_output#697) +[2618155.034] {Default Queue} discarded wl_surface#2119.enter(wl_output#729) +[2618155.038] {Default Queue} discarded wl_surface#2119.enter(wl_output#761) +[2618155.043] {Default Queue} discarded wl_surface#2119.enter(wl_output#793) +[2618155.046] {Default Queue} discarded wl_surface#2119.enter(wl_output#825) +[2618155.050] {Default Queue} discarded wl_surface#2119.enter(wl_output#857) +[2618155.055] {Default Queue} discarded wl_surface#2119.enter(wl_output#889) +[2618155.059] {Default Queue} discarded wl_surface#2119.enter(wl_output#921) +[2618155.062] {Default Queue} discarded wl_surface#2119.enter(wl_output#953) +[2618155.066] {Default Queue} discarded wl_surface#2119.enter(wl_output#985) +[2618155.070] {Default Queue} discarded wl_surface#2119.enter(wl_output#1017) +[2618155.074] {Default Queue} discarded wl_surface#2119.enter(wl_output#1049) +[2618155.078] {Default Queue} discarded wl_surface#2119.enter(wl_output#1081) +[2618155.082] {Default Queue} discarded wl_surface#2119.enter(wl_output#1113) +[2618155.086] {Default Queue} discarded wl_surface#2119.enter(wl_output#1145) +[2618155.090] {Default Queue} discarded wl_surface#2119.enter(wl_output#1177) +[2618155.094] {Default Queue} discarded wl_surface#2119.enter(wl_output#1209) +[2618155.098] {Default Queue} discarded wl_surface#2119.enter(wl_output#1241) +[2618155.102] {Default Queue} discarded wl_surface#2119.enter(wl_output#1273) +[2618155.105] {Default Queue} discarded wl_surface#2119.enter(wl_output#1305) +[2618155.109] {Default Queue} discarded wl_surface#2119.enter(wl_output#1337) +[2618155.114] {Default Queue} discarded wl_surface#2119.enter(wl_output#1369) +[2618155.118] {Default Queue} discarded wl_surface#2119.enter(wl_output#1401) +[2618155.121] {Default Queue} discarded wl_surface#2119.enter(wl_output#1433) +[2618155.125] {Default Queue} discarded wl_surface#2119.enter(wl_output#1465) +[2618155.129] {Default Queue} discarded wl_surface#2119.enter(wl_output#1497) +[2618155.133] {Default Queue} discarded wl_surface#2119.enter(wl_output#1529) +[2618155.137] {Default Queue} discarded wl_surface#2119.enter(wl_output#1561) +[2618155.141] {Default Queue} discarded wl_surface#2119.enter(wl_output#1593) +[2618155.145] {Default Queue} discarded wl_surface#2119.enter(wl_output#1625) +[2618155.149] {Default Queue} discarded wl_surface#2119.enter(wl_output#1657) +[2618155.153] {Default Queue} discarded wl_surface#2119.enter(wl_output#1689) +[2618155.156] {Default Queue} discarded wl_surface#2119.enter(wl_output#1721) +[2618155.160] {Default Queue} discarded wl_surface#2119.enter(wl_output#1753) +[2618155.164] {Default Queue} discarded wl_surface#2119.enter(wl_output#1785) +[2618155.168] {Default Queue} discarded wl_surface#2119.enter(wl_output#1817) +[2618155.175] {Default Queue} discarded wl_surface#2119.enter(wl_output#1849) +[2618155.180] {Default Queue} discarded wl_surface#2119.enter(wl_output#1881) +[2618155.184] {Default Queue} discarded wl_surface#2119.enter(wl_output#1913) +[2618155.188] {Default Queue} discarded wl_surface#2119.enter(wl_output#1945) +[2618155.192] {Default Queue} discarded wl_surface#2119.enter(wl_output#1977) +[2618155.196] {Default Queue} discarded wl_surface#2119.enter(wl_output#2009) +[2618155.200] {Default Queue} discarded wl_surface#2119.enter(wl_output#2041) +[2618155.205] {Default Queue} discarded wl_surface#2119.enter(wl_output#2073) +[2618155.209] {Default Queue} discarded wl_surface#2119.enter(wl_output#2105) +[2618155.213] {Default Queue} discarded wl_surface#2119.enter(wl_output#2137) +[2618155.217] {Default Queue} -> wl_compositor#2124.create_surface(new id wl_surface#2151) +[2618155.221] {Default Queue} -> wl_subcompositor#2157.get_subsurface(new id wl_subsurface#2170, wl_surface#2151, wl_surface#2119) +[2618155.229] {Default Queue} -> wl_subsurface#2170.set_desync() +[2618155.233] {Default Queue} -> wl_subsurface#2170.set_position(0, 0) +[2618155.238] {Default Queue} -> wl_subsurface#2170.place_above(wl_surface#2119) +[2618155.284] {Default Queue} -> wl_shm#2159.create_pool(new id wl_shm_pool#2171, fd 344, 16) +[2618155.291] {Default Queue} -> wl_shm#2159.create_pool(new id wl_shm_pool#2172, fd 345, 16) +[2618155.295] {Default Queue} -> wl_shm_pool#2171.create_buffer(new id wl_buffer#2173, 0, 2, 2, 8, 0) +[2618155.300] {Default Queue} -> wl_shm_pool#2172.create_buffer(new id wl_buffer#2174, 0, 2, 2, 8, 0) +[2618155.308] {Default Queue} -> wl_surface#2151.attach(wl_buffer#2173, 0, 0) +[2618155.313] {Default Queue} -> wl_surface#2151.commit() +[2618155.318] {Default Queue} -> wl_surface#2151.attach(wl_buffer#2173, 0, 0) +[2618155.323] {Default Queue} -> wl_surface#2151.commit() +[2618155.327] {Default Queue} -> wl_compositor#2156.create_region(new id wl_region#2175) +[2618155.331] {Default Queue} -> wl_compositor#2156.create_region(new id wl_region#2176) +[2618155.335] {Default Queue} -> wl_region#2175.subtract(0, 0, 2, 2) +[2618155.340] {Default Queue} -> wl_region#2175.add(0, 0, 0, 0) +[2618155.344] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) +[2618155.348] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) +[2618155.353] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) +[2618155.357] {Default Queue} -> wl_surface#2119.damage(0, 0, 2, 2) +[2618155.364] {Default Queue} -> wl_surface#2151.attach(wl_buffer#2173, 0, 0) +[2618155.369] {Default Queue} -> wl_surface#2151.commit() +[2618155.403] {Default Queue} -> wl_shm#2161.create_pool(new id wl_shm_pool#2177, fd 348, 640) +[2618155.409] {Default Queue} -> wl_shm#2161.create_pool(new id wl_shm_pool#2178, fd 349, 640) +[2618155.413] {Default Queue} -> wl_shm_pool#2177.create_buffer(new id wl_buffer#2179, 0, 10, 16, 40, 0) +[2618155.418] {Default Queue} -> wl_shm_pool#2178.create_buffer(new id wl_buffer#2180, 0, 10, 16, 40, 0) +[2618155.425] {Default Queue} -> wl_compositor#2156.create_surface(new id wl_surface#2181) +[2618155.429] {Default Queue} -> wl_surface#2181.attach(wl_buffer#2179, 0, 0) +[2618155.434] {Default Queue} -> wl_surface#2181.commit() +[2618155.439] {Default Queue} -> wl_surface#2181.attach(wl_buffer#2179, 0, 0) +[2618155.443] {Default Queue} -> wl_surface#2181.commit() +[2618155.449] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) +[2618155.456] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2182) +[2618155.461] {Default Queue} -> wl_display#1.sync(new id wl_callback#2183) +[2618159.112] {Display Queue} wl_display#1.delete_id(2183) +[2618159.124] {Default Queue} wl_keyboard#2152.keymap(1, fd 344, 68213) +[2618159.130] {Default Queue} wl_keyboard#2152.enter(566, wl_surface#19, array[0]) +[2618159.137] {Default Queue} wl_keyboard#2152.modifiers(566, 0, 0, 16, 0) +[2618159.143] {Default Queue} discarded wl_shm#2159.format(875709016) +[2618159.148] {Default Queue} discarded wl_shm#2159.format(1) +[2618159.158] {Default Queue} discarded wl_shm#2159.format(0) +[2618159.166] {Default Queue} discarded wl_shm#2159.format(875708993) +[2618159.171] {Default Queue} discarded wl_shm#2160.format(875709016) +[2618159.176] {Default Queue} discarded wl_shm#2160.format(1) +[2618159.181] {Default Queue} discarded wl_shm#2160.format(0) +[2618159.186] {Default Queue} discarded wl_shm#2160.format(875708993) +[2618159.191] {Default Queue} discarded wl_shm#2161.format(875709016) +[2618159.196] {Default Queue} discarded wl_shm#2161.format(1) +[2618159.201] {Default Queue} discarded wl_shm#2161.format(0) +[2618159.206] {Default Queue} discarded wl_shm#2161.format(875708993) +[2618159.211] {Default Queue} wl_seat#2168.capabilities(7) +[2618159.216] {Default Queue} -> wl_seat#2168.get_keyboard(new id wl_keyboard#2184) +[2618159.222] {Default Queue} -> wl_seat#2168.get_pointer(new id wl_pointer#2185) +[2618159.228] {Default Queue} -> wl_data_device_manager#2164.get_data_device(new id wl_data_device#2186, wl_seat#2168) +[2618159.234] {Default Queue} -> zwp_primary_selection_device_manager_v1#2166.get_device(new id zwp_primary_selection_device_v1#2187, wl_seat#2168) +[2618159.244] {Default Queue} wl_output#2169.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618159.250] {Default Queue} wl_output#2169.mode(3, 1280, 800, 60000) +[2618159.256] {Default Queue} discarded wl_surface#3.enter(wl_output#2169) +[2618159.261] {Default Queue} discarded wl_surface#999.enter(wl_output#2169) +[2618159.266] {Default Queue} discarded wl_surface#1191.enter(wl_output#2169) +[2618159.271] {Default Queue} discarded wl_surface#1159.enter(wl_output#2169) +[2618159.276] {Default Queue} discarded wl_surface#1703.enter(wl_output#2169) +[2618159.281] {Default Queue} discarded wl_surface#423.enter(wl_output#2169) +[2618159.286] {Default Queue} discarded wl_surface#1447.enter(wl_output#2169) +[2618159.290] {Default Queue} discarded wl_surface#2023.enter(wl_output#2169) +[2618159.295] {Default Queue} discarded wl_surface#1639.enter(wl_output#2169) +[2618159.300] {Default Queue} discarded wl_surface#1319.enter(wl_output#2169) +[2618159.305] {Default Queue} discarded wl_surface#1127.enter(wl_output#2169) +[2618159.310] {Default Queue} discarded wl_surface#1063.enter(wl_output#2169) +[2618159.315] {Default Queue} discarded wl_surface#455.enter(wl_output#2169) +[2618159.320] {Default Queue} discarded wl_surface#1575.enter(wl_output#2169) +[2618159.325] {Default Queue} discarded wl_surface#1799.enter(wl_output#2169) +[2618159.329] {Default Queue} discarded wl_surface#1415.enter(wl_output#2169) +[2618159.334] {Default Queue} discarded wl_surface#1831.enter(wl_output#2169) +[2618159.339] {Default Queue} discarded wl_surface#903.enter(wl_output#2169) +[2618159.344] {Default Queue} discarded wl_surface#775.enter(wl_output#2169) +[2618159.349] {Default Queue} discarded wl_surface#1991.enter(wl_output#2169) +[2618159.354] {Default Queue} discarded wl_surface#1543.enter(wl_output#2169) +[2618159.359] {Default Queue} discarded wl_surface#135.enter(wl_output#2169) +[2618159.364] {Default Queue} discarded wl_surface#1287.enter(wl_output#2169) +[2618159.369] {Default Queue} discarded wl_surface#1031.enter(wl_output#2169) +[2618159.374] {Default Queue} discarded wl_surface#615.enter(wl_output#2169) +[2618159.378] {Default Queue} discarded wl_surface#231.enter(wl_output#2169) +[2618159.384] {Default Queue} discarded wl_surface#1863.enter(wl_output#2169) +[2618159.389] {Default Queue} discarded wl_surface#359.enter(wl_output#2169) +[2618159.394] {Default Queue} discarded wl_surface#583.enter(wl_output#2169) +[2618159.399] {Default Queue} discarded wl_surface#743.enter(wl_output#2169) +[2618159.404] {Default Queue} discarded wl_surface#967.enter(wl_output#2169) +[2618159.409] {Default Queue} discarded wl_surface#103.enter(wl_output#2169) +[2618159.414] {Default Queue} discarded wl_surface#327.enter(wl_output#2169) +[2618159.418] {Default Queue} discarded wl_surface#43.enter(wl_output#2169) +[2618159.424] {Default Queue} discarded wl_surface#807.enter(wl_output#2169) +[2618159.428] {Default Queue} discarded wl_surface#19.enter(wl_output#2169) +[2618159.438] {Default Queue} discarded wl_surface#1511.enter(wl_output#2169) +[2618159.445] {Default Queue} discarded wl_surface#199.enter(wl_output#2169) +[2618159.450] {Default Queue} discarded wl_surface#391.enter(wl_output#2169) +[2618159.455] {Default Queue} discarded wl_surface#935.enter(wl_output#2169) +[2618159.460] {Default Queue} discarded wl_surface#1671.enter(wl_output#2169) +[2618159.465] {Default Queue} discarded wl_surface#1351.enter(wl_output#2169) +[2618159.470] {Default Queue} discarded wl_surface#711.enter(wl_output#2169) +[2618159.475] {Default Queue} discarded wl_surface#1223.enter(wl_output#2169) +[2618159.479] {Default Queue} discarded wl_surface#1927.enter(wl_output#2169) +[2618159.484] {Default Queue} discarded wl_surface#871.enter(wl_output#2169) +[2618159.489] {Default Queue} discarded wl_surface#1895.enter(wl_output#2169) +[2618159.494] {Default Queue} discarded wl_surface#263.enter(wl_output#2169) +[2618159.499] {Default Queue} discarded wl_surface#551.enter(wl_output#2169) +[2618159.504] {Default Queue} discarded wl_surface#1735.enter(wl_output#2169) +[2618159.509] {Default Queue} discarded wl_surface#1479.enter(wl_output#2169) +[2618159.514] {Default Queue} discarded wl_surface#1772.enter(wl_output#2169) +[2618159.519] {Default Queue} discarded wl_surface#1959.enter(wl_output#2169) +[2618159.524] {Default Queue} discarded wl_surface#647.enter(wl_output#2169) +[2618159.528] {Default Queue} discarded wl_surface#2055.enter(wl_output#2169) +[2618159.533] {Default Queue} discarded wl_surface#71.enter(wl_output#2169) +[2618159.538] {Default Queue} discarded wl_surface#839.enter(wl_output#2169) +[2618159.543] {Default Queue} discarded wl_surface#1607.enter(wl_output#2169) +[2618159.548] {Default Queue} discarded wl_surface#1095.enter(wl_output#2169) +[2618159.553] {Default Queue} discarded wl_surface#1383.enter(wl_output#2169) +[2618159.558] {Default Queue} discarded wl_surface#487.enter(wl_output#2169) +[2618159.563] {Default Queue} discarded wl_surface#519.enter(wl_output#2169) +[2618159.567] {Default Queue} discarded wl_surface#2087.enter(wl_output#2169) +[2618159.572] {Default Queue} discarded wl_surface#295.enter(wl_output#2169) +[2618159.577] {Default Queue} discarded wl_surface#167.enter(wl_output#2169) +[2618159.582] {Default Queue} discarded wl_surface#1255.enter(wl_output#2169) +[2618159.587] {Default Queue} discarded wl_surface#679.enter(wl_output#2169) +[2618159.592] {Default Queue} discarded wl_surface#2119.enter(wl_output#2169) +[2618159.597] {Default Queue} wl_registry#2182.global(1, "wl_compositor", 6) +[2618159.603] {Default Queue} -> wl_registry#2182.bind(1, "wl_compositor", 1, new id [unknown]#2188) +[2618159.609] {Default Queue} wl_registry#2182.global(2, "wl_subcompositor", 1) +[2618159.615] {Default Queue} -> wl_registry#2182.bind(2, "wl_subcompositor", 1, new id [unknown]#2189) +[2618159.621] {Default Queue} wl_registry#2182.global(3, "xdg_wm_base", 6) +[2618159.627] {Default Queue} -> wl_registry#2182.bind(3, "xdg_wm_base", 1, new id [unknown]#2190) +[2618159.632] {Default Queue} wl_registry#2182.global(6, "zwlr_layer_shell_v1", 5) +[2618159.638] {Default Queue} wl_registry#2182.global(7, "ext_session_lock_manager_v1", 1) +[2618159.643] {Default Queue} wl_registry#2182.global(8, "wl_shm", 2) +[2618159.649] {Default Queue} -> wl_registry#2182.bind(8, "wl_shm", 1, new id [unknown]#2191) +[2618159.657] {Default Queue} -> wl_registry#2182.bind(8, "wl_shm", 1, new id [unknown]#2192) +[2618159.662] {Default Queue} -> wl_registry#2182.bind(8, "wl_shm", 1, new id [unknown]#2193) +[2618159.668] {Default Queue} wl_registry#2182.global(9, "zxdg_output_manager_v1", 3) +[2618159.674] {Default Queue} wl_registry#2182.global(10, "wp_fractional_scale_manager_v1", 1) +[2618159.679] {Default Queue} wl_registry#2182.global(11, "zwp_tablet_manager_v2", 1) +[2618159.684] {Default Queue} wl_registry#2182.global(12, "zwp_pointer_gestures_v1", 3) +[2618159.690] {Default Queue} wl_registry#2182.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618159.695] {Default Queue} -> wl_registry#2182.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2194) +[2618159.705] {Default Queue} wl_registry#2182.global(14, "zwp_pointer_constraints_v1", 1) +[2618159.712] {Default Queue} -> wl_registry#2182.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2195) +[2618159.718] {Default Queue} wl_registry#2182.global(15, "ext_idle_notifier_v1", 2) +[2618159.723] {Default Queue} wl_registry#2182.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618159.729] {Default Queue} wl_registry#2182.global(17, "wl_data_device_manager", 3) +[2618159.735] {Default Queue} -> wl_registry#2182.bind(17, "wl_data_device_manager", 2, new id [unknown]#2196) +[2618159.740] {Default Queue} -> wl_data_device_manager#2196.create_data_source(new id wl_data_source#2197) +[2618159.746] {Default Queue} -> wl_data_source#2197.offer("text/plain") +[2618159.751] {Default Queue} -> wl_data_source#2197.offer("text/plain;charset=utf-8") +[2618159.756] {Default Queue} -> wl_data_source#2197.offer("TEXT") +[2618159.761] {Default Queue} -> wl_data_source#2197.offer("STRING") +[2618159.766] {Default Queue} -> wl_data_source#2197.offer("UTF8_STRING") +[2618159.772] {Default Queue} wl_registry#2182.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618159.777] {Default Queue} -> wl_registry#2182.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2198) +[2618159.787] {Default Queue} -> zwp_primary_selection_device_manager_v1#2198.create_source(new id zwp_primary_selection_source_v1#2199) +[2618159.796] {Default Queue} -> zwp_primary_selection_source_v1#2199.offer("text/plain") +[2618159.801] {Default Queue} -> zwp_primary_selection_source_v1#2199.offer("text/plain;charset=utf-8") +[2618159.806] {Default Queue} -> zwp_primary_selection_source_v1#2199.offer("TEXT") +[2618159.811] {Default Queue} -> zwp_primary_selection_source_v1#2199.offer("STRING") +[2618159.817] {Default Queue} -> zwp_primary_selection_source_v1#2199.offer("UTF8_STRING") +[2618159.822] {Default Queue} wl_registry#2182.global(19, "zwlr_data_control_manager_v1", 2) +[2618159.827] {Default Queue} wl_registry#2182.global(20, "ext_data_control_manager_v1", 1) +[2618159.833] {Default Queue} wl_registry#2182.global(21, "wp_presentation", 2) +[2618159.838] {Default Queue} wl_registry#2182.global(22, "wp_security_context_manager_v1", 1) +[2618159.843] {Default Queue} wl_registry#2182.global(23, "zwp_text_input_manager_v3", 1) +[2618159.850] {Default Queue} wl_registry#2182.global(24, "zwp_input_method_manager_v2", 1) +[2618159.855] {Default Queue} wl_registry#2182.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618159.868] {Default Queue} wl_registry#2182.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618159.874] {Default Queue} wl_registry#2182.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618159.879] {Default Queue} wl_registry#2182.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618159.885] {Default Queue} wl_registry#2182.global(29, "ext_workspace_manager_v1", 1) +[2618159.890] {Default Queue} wl_registry#2182.global(30, "zwlr_output_manager_v1", 4) +[2618159.896] {Default Queue} wl_registry#2182.global(31, "zwlr_screencopy_manager_v1", 3) +[2618159.901] {Default Queue} wl_registry#2182.global(32, "wp_viewporter", 1) +[2618159.906] {Default Queue} wl_registry#2182.global(33, "zxdg_exporter_v2", 1) +[2618159.912] {Default Queue} wl_registry#2182.global(34, "zxdg_importer_v2", 1) +[2618159.918] {Default Queue} wl_registry#2182.global(36, "xdg_activation_v1", 1) +[2618159.923] {Default Queue} wl_registry#2182.global(37, "mutter_x11_interop", 1) +[2618159.928] {Default Queue} wl_registry#2182.global(38, "wl_seat", 9) +[2618159.934] {Default Queue} -> wl_registry#2182.bind(38, "wl_seat", 1, new id [unknown]#2200) +[2618159.939] {Default Queue} wl_registry#2182.global(39, "wp_cursor_shape_manager_v1", 2) +[2618159.945] {Default Queue} wl_registry#2182.global(40, "wl_output", 4) +[2618159.951] {Default Queue} -> wl_registry#2182.bind(40, "wl_output", 1, new id [unknown]#2201) +[2618159.956] {Default Queue} wl_callback#2183.done(0) +[2618159.962] {Default Queue} discarded wl_surface#2151.enter(wl_output#18) +[2618159.971] {Default Queue} discarded wl_surface#2151.enter(wl_output#57) +[2618159.978] {Default Queue} discarded wl_surface#2151.enter(wl_output#89) +[2618159.983] {Default Queue} discarded wl_surface#2151.enter(wl_output#121) +[2618159.988] {Default Queue} discarded wl_surface#2151.enter(wl_output#153) +[2618159.993] {Default Queue} discarded wl_surface#2151.enter(wl_output#185) +[2618159.998] {Default Queue} discarded wl_surface#2151.enter(wl_output#217) +[2618160.003] {Default Queue} discarded wl_surface#2151.enter(wl_output#249) +[2618160.007] {Default Queue} discarded wl_surface#2151.enter(wl_output#281) +[2618160.011] {Default Queue} discarded wl_surface#2151.enter(wl_output#313) +[2618160.015] {Default Queue} discarded wl_surface#2151.enter(wl_output#345) +[2618160.019] {Default Queue} discarded wl_surface#2151.enter(wl_output#377) +[2618160.023] {Default Queue} discarded wl_surface#2151.enter(wl_output#409) +[2618160.027] {Default Queue} discarded wl_surface#2151.enter(wl_output#441) +[2618160.031] {Default Queue} discarded wl_surface#2151.enter(wl_output#473) +[2618160.035] {Default Queue} discarded wl_surface#2151.enter(wl_output#505) +[2618160.039] {Default Queue} discarded wl_surface#2151.enter(wl_output#537) +[2618160.042] {Default Queue} discarded wl_surface#2151.enter(wl_output#569) +[2618160.046] {Default Queue} discarded wl_surface#2151.enter(wl_output#601) +[2618160.050] {Default Queue} discarded wl_surface#2151.enter(wl_output#633) +[2618160.054] {Default Queue} discarded wl_surface#2151.enter(wl_output#665) +[2618160.058] {Default Queue} discarded wl_surface#2151.enter(wl_output#697) +[2618160.062] {Default Queue} discarded wl_surface#2151.enter(wl_output#729) +[2618160.066] {Default Queue} discarded wl_surface#2151.enter(wl_output#761) +[2618160.070] {Default Queue} discarded wl_surface#2151.enter(wl_output#793) +[2618160.074] {Default Queue} discarded wl_surface#2151.enter(wl_output#825) +[2618160.078] {Default Queue} discarded wl_surface#2151.enter(wl_output#857) +[2618160.082] {Default Queue} discarded wl_surface#2151.enter(wl_output#889) +[2618160.086] {Default Queue} discarded wl_surface#2151.enter(wl_output#921) +[2618160.089] {Default Queue} discarded wl_surface#2151.enter(wl_output#953) +[2618160.093] {Default Queue} discarded wl_surface#2151.enter(wl_output#985) +[2618160.097] {Default Queue} discarded wl_surface#2151.enter(wl_output#1017) +[2618160.101] {Default Queue} discarded wl_surface#2151.enter(wl_output#1049) +[2618160.105] {Default Queue} discarded wl_surface#2151.enter(wl_output#1081) +[2618160.109] {Default Queue} discarded wl_surface#2151.enter(wl_output#1113) +[2618160.113] {Default Queue} discarded wl_surface#2151.enter(wl_output#1145) +[2618160.117] {Default Queue} discarded wl_surface#2151.enter(wl_output#1177) +[2618160.121] {Default Queue} discarded wl_surface#2151.enter(wl_output#1209) +[2618160.125] {Default Queue} discarded wl_surface#2151.enter(wl_output#1241) +[2618160.129] {Default Queue} discarded wl_surface#2151.enter(wl_output#1273) +[2618160.133] {Default Queue} discarded wl_surface#2151.enter(wl_output#1305) +[2618160.137] {Default Queue} discarded wl_surface#2151.enter(wl_output#1337) +[2618160.141] {Default Queue} discarded wl_surface#2151.enter(wl_output#1369) +[2618160.145] {Default Queue} discarded wl_surface#2151.enter(wl_output#1401) +[2618160.149] {Default Queue} discarded wl_surface#2151.enter(wl_output#1433) +[2618160.152] {Default Queue} discarded wl_surface#2151.enter(wl_output#1465) +[2618160.156] {Default Queue} discarded wl_surface#2151.enter(wl_output#1497) +[2618160.160] {Default Queue} discarded wl_surface#2151.enter(wl_output#1529) +[2618160.164] {Default Queue} discarded wl_surface#2151.enter(wl_output#1561) +[2618160.168] {Default Queue} discarded wl_surface#2151.enter(wl_output#1593) +[2618160.172] {Default Queue} discarded wl_surface#2151.enter(wl_output#1625) +[2618160.176] {Default Queue} discarded wl_surface#2151.enter(wl_output#1657) +[2618160.180] {Default Queue} discarded wl_surface#2151.enter(wl_output#1689) +[2618160.184] {Default Queue} discarded wl_surface#2151.enter(wl_output#1721) +[2618160.192] {Default Queue} discarded wl_surface#2151.enter(wl_output#1753) +[2618160.197] {Default Queue} discarded wl_surface#2151.enter(wl_output#1785) +[2618160.201] {Default Queue} discarded wl_surface#2151.enter(wl_output#1817) +[2618160.205] {Default Queue} discarded wl_surface#2151.enter(wl_output#1849) +[2618160.209] {Default Queue} discarded wl_surface#2151.enter(wl_output#1881) +[2618160.213] {Default Queue} discarded wl_surface#2151.enter(wl_output#1913) +[2618160.217] {Default Queue} discarded wl_surface#2151.enter(wl_output#1945) +[2618160.221] {Default Queue} discarded wl_surface#2151.enter(wl_output#1977) +[2618160.226] {Default Queue} discarded wl_surface#2151.enter(wl_output#2009) +[2618160.230] {Default Queue} discarded wl_surface#2151.enter(wl_output#2041) +[2618160.234] {Default Queue} discarded wl_surface#2151.enter(wl_output#2073) +[2618160.237] {Default Queue} discarded wl_surface#2151.enter(wl_output#2105) +[2618160.241] {Default Queue} discarded wl_surface#2151.enter(wl_output#2137) +[2618160.245] {Default Queue} discarded wl_surface#2151.enter(wl_output#2169) +[2618160.249] {Default Queue} -> wl_compositor#2156.create_surface(new id wl_surface#2183) +[2618160.254] {Default Queue} -> wl_subcompositor#2189.get_subsurface(new id wl_subsurface#2202, wl_surface#2183, wl_surface#2151) +[2618160.262] {Default Queue} -> wl_subsurface#2202.set_desync() +[2618160.266] {Default Queue} -> wl_subsurface#2202.set_position(0, 0) +[2618160.270] {Default Queue} -> wl_subsurface#2202.place_above(wl_surface#2151) +[2618160.312] {Default Queue} -> wl_shm#2191.create_pool(new id wl_shm_pool#2203, fd 349, 16) +[2618160.318] {Default Queue} -> wl_shm#2191.create_pool(new id wl_shm_pool#2204, fd 350, 16) +[2618160.323] {Default Queue} -> wl_shm_pool#2203.create_buffer(new id wl_buffer#2205, 0, 2, 2, 8, 0) +[2618160.328] {Default Queue} -> wl_shm_pool#2204.create_buffer(new id wl_buffer#2206, 0, 2, 2, 8, 0) +[2618160.336] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) +[2618160.340] {Default Queue} -> wl_surface#2183.commit() +[2618160.346] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) +[2618160.350] {Default Queue} -> wl_surface#2183.commit() +[2618160.354] {Default Queue} -> wl_compositor#2188.create_region(new id wl_region#2207) +[2618160.358] {Default Queue} -> wl_compositor#2188.create_region(new id wl_region#2208) +[2618160.363] {Default Queue} -> wl_region#2207.subtract(0, 0, 2, 2) +[2618160.367] {Default Queue} -> wl_region#2207.add(0, 0, 0, 0) +[2618160.371] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2618160.376] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2618160.380] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618160.385] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) +[2618160.392] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) +[2618160.397] {Default Queue} -> wl_surface#2183.commit() +[2618160.435] {Default Queue} -> wl_shm#2193.create_pool(new id wl_shm_pool#2209, fd 353, 640) +[2618160.441] {Default Queue} -> wl_shm#2193.create_pool(new id wl_shm_pool#2210, fd 354, 640) +[2618160.446] {Default Queue} -> wl_shm_pool#2209.create_buffer(new id wl_buffer#2211, 0, 10, 16, 40, 0) +[2618160.451] {Default Queue} -> wl_shm_pool#2210.create_buffer(new id wl_buffer#2212, 0, 10, 16, 40, 0) +[2618160.458] {Default Queue} -> wl_compositor#2188.create_surface(new id wl_surface#2213) +[2618160.462] {Default Queue} -> wl_surface#2213.attach(wl_buffer#2211, 0, 0) +[2618160.466] {Default Queue} -> wl_surface#2213.commit() +[2618160.471] {Default Queue} -> wl_surface#2213.attach(wl_buffer#2211, 0, 0) +[2618160.476] {Default Queue} -> wl_surface#2213.commit() +[2618160.481] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) +[2618160.486] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618160.491] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618160.498] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2214) +[2618160.503] {Default Queue} -> wl_display#1.sync(new id wl_callback#2215) +[2618164.966] {Display Queue} wl_display#1.delete_id(2215) +[2618164.981] {Default Queue} wl_keyboard#2184.keymap(1, fd 349, 68213) +[2618164.988] {Default Queue} wl_keyboard#2184.enter(566, wl_surface#19, array[0]) +[2618164.994] {Default Queue} wl_keyboard#2184.modifiers(566, 0, 0, 16, 0) +[2618165.000] {Default Queue} discarded wl_shm#2191.format(875709016) +[2618165.005] {Default Queue} discarded wl_shm#2191.format(1) +[2618165.010] {Default Queue} discarded wl_shm#2191.format(0) +[2618165.014] {Default Queue} discarded wl_shm#2191.format(875708993) +[2618165.018] {Default Queue} discarded wl_shm#2192.format(875709016) +[2618165.023] {Default Queue} discarded wl_shm#2192.format(1) +[2618165.027] {Default Queue} discarded wl_shm#2192.format(0) +[2618165.030] {Default Queue} discarded wl_shm#2192.format(875708993) +[2618165.034] {Default Queue} discarded wl_shm#2193.format(875709016) +[2618165.038] {Default Queue} discarded wl_shm#2193.format(1) +[2618165.042] {Default Queue} discarded wl_shm#2193.format(0) +[2618165.046] {Default Queue} discarded wl_shm#2193.format(875708993) +[2618165.050] {Default Queue} wl_seat#2200.capabilities(7) +[2618165.055] {Default Queue} -> wl_seat#2200.get_keyboard(new id wl_keyboard#2216) +[2618165.059] {Default Queue} -> wl_seat#2200.get_pointer(new id wl_pointer#2217) +[2618165.064] {Default Queue} -> wl_data_device_manager#2196.get_data_device(new id wl_data_device#2218, wl_seat#2200) +[2618165.068] {Default Queue} -> zwp_primary_selection_device_manager_v1#2198.get_device(new id zwp_primary_selection_device_v1#2219, wl_seat#2200) +[2618165.076] {Default Queue} wl_output#2201.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618165.081] {Default Queue} wl_output#2201.mode(3, 1280, 800, 60000) +[2618165.086] {Default Queue} discarded wl_surface#3.enter(wl_output#2201) +[2618165.090] {Default Queue} discarded wl_surface#999.enter(wl_output#2201) +[2618165.094] {Default Queue} discarded wl_surface#1191.enter(wl_output#2201) +[2618165.098] {Default Queue} discarded wl_surface#1159.enter(wl_output#2201) +[2618165.102] {Default Queue} discarded wl_surface#1703.enter(wl_output#2201) +[2618165.106] {Default Queue} discarded wl_surface#423.enter(wl_output#2201) +[2618165.110] {Default Queue} discarded wl_surface#1447.enter(wl_output#2201) +[2618165.114] {Default Queue} discarded wl_surface#2023.enter(wl_output#2201) +[2618165.118] {Default Queue} discarded wl_surface#1639.enter(wl_output#2201) +[2618165.122] {Default Queue} discarded wl_surface#1319.enter(wl_output#2201) +[2618165.126] {Default Queue} discarded wl_surface#1127.enter(wl_output#2201) +[2618165.130] {Default Queue} discarded wl_surface#2151.enter(wl_output#2201) +[2618165.134] {Default Queue} discarded wl_surface#1063.enter(wl_output#2201) +[2618165.138] {Default Queue} discarded wl_surface#455.enter(wl_output#2201) +[2618165.142] {Default Queue} discarded wl_surface#1575.enter(wl_output#2201) +[2618165.146] {Default Queue} discarded wl_surface#1799.enter(wl_output#2201) +[2618165.150] {Default Queue} discarded wl_surface#1415.enter(wl_output#2201) +[2618165.155] {Default Queue} discarded wl_surface#1831.enter(wl_output#2201) +[2618165.159] {Default Queue} discarded wl_surface#903.enter(wl_output#2201) +[2618165.162] {Default Queue} discarded wl_surface#775.enter(wl_output#2201) +[2618165.166] {Default Queue} discarded wl_surface#1991.enter(wl_output#2201) +[2618165.170] {Default Queue} discarded wl_surface#1543.enter(wl_output#2201) +[2618165.174] {Default Queue} discarded wl_surface#135.enter(wl_output#2201) +[2618165.178] {Default Queue} discarded wl_surface#1287.enter(wl_output#2201) +[2618165.182] {Default Queue} discarded wl_surface#1031.enter(wl_output#2201) +[2618165.186] {Default Queue} discarded wl_surface#615.enter(wl_output#2201) +[2618165.190] {Default Queue} discarded wl_surface#231.enter(wl_output#2201) +[2618165.194] {Default Queue} discarded wl_surface#1863.enter(wl_output#2201) +[2618165.197] {Default Queue} discarded wl_surface#359.enter(wl_output#2201) +[2618165.201] {Default Queue} discarded wl_surface#583.enter(wl_output#2201) +[2618165.209] {Default Queue} discarded wl_surface#743.enter(wl_output#2201) +[2618165.215] {Default Queue} discarded wl_surface#967.enter(wl_output#2201) +[2618165.219] {Default Queue} discarded wl_surface#103.enter(wl_output#2201) +[2618165.223] {Default Queue} discarded wl_surface#327.enter(wl_output#2201) +[2618165.227] {Default Queue} discarded wl_surface#43.enter(wl_output#2201) +[2618165.231] {Default Queue} discarded wl_surface#807.enter(wl_output#2201) +[2618165.235] {Default Queue} discarded wl_surface#19.enter(wl_output#2201) +[2618165.238] {Default Queue} discarded wl_surface#1511.enter(wl_output#2201) +[2618165.243] {Default Queue} discarded wl_surface#199.enter(wl_output#2201) +[2618165.247] {Default Queue} discarded wl_surface#391.enter(wl_output#2201) +[2618165.251] {Default Queue} discarded wl_surface#935.enter(wl_output#2201) +[2618165.255] {Default Queue} discarded wl_surface#1671.enter(wl_output#2201) +[2618165.259] {Default Queue} discarded wl_surface#1351.enter(wl_output#2201) +[2618165.263] {Default Queue} discarded wl_surface#711.enter(wl_output#2201) +[2618165.267] {Default Queue} discarded wl_surface#1223.enter(wl_output#2201) +[2618165.271] {Default Queue} discarded wl_surface#1927.enter(wl_output#2201) +[2618165.275] {Default Queue} discarded wl_surface#871.enter(wl_output#2201) +[2618165.279] {Default Queue} discarded wl_surface#1895.enter(wl_output#2201) +[2618165.282] {Default Queue} discarded wl_surface#263.enter(wl_output#2201) +[2618165.286] {Default Queue} discarded wl_surface#551.enter(wl_output#2201) +[2618165.290] {Default Queue} discarded wl_surface#1735.enter(wl_output#2201) +[2618165.294] {Default Queue} discarded wl_surface#1479.enter(wl_output#2201) +[2618165.298] {Default Queue} discarded wl_surface#1772.enter(wl_output#2201) +[2618165.302] {Default Queue} discarded wl_surface#1959.enter(wl_output#2201) +[2618165.306] {Default Queue} discarded wl_surface#647.enter(wl_output#2201) +[2618165.309] {Default Queue} discarded wl_surface#2055.enter(wl_output#2201) +[2618165.313] {Default Queue} discarded wl_surface#71.enter(wl_output#2201) +[2618165.318] {Default Queue} discarded wl_surface#839.enter(wl_output#2201) +[2618165.321] {Default Queue} discarded wl_surface#1607.enter(wl_output#2201) +[2618165.325] {Default Queue} discarded wl_surface#1095.enter(wl_output#2201) +[2618165.329] {Default Queue} discarded wl_surface#1383.enter(wl_output#2201) +[2618165.333] {Default Queue} discarded wl_surface#487.enter(wl_output#2201) +[2618165.337] {Default Queue} discarded wl_surface#519.enter(wl_output#2201) +[2618165.341] {Default Queue} discarded wl_surface#2087.enter(wl_output#2201) +[2618165.345] {Default Queue} discarded wl_surface#295.enter(wl_output#2201) +[2618165.348] {Default Queue} discarded wl_surface#167.enter(wl_output#2201) +[2618165.352] {Default Queue} discarded wl_surface#1255.enter(wl_output#2201) +[2618165.357] {Default Queue} discarded wl_surface#679.enter(wl_output#2201) +[2618165.360] {Default Queue} discarded wl_surface#2119.enter(wl_output#2201) +[2618165.364] {Default Queue} wl_registry#2214.global(1, "wl_compositor", 6) +[2618165.369] {Default Queue} -> wl_registry#2214.bind(1, "wl_compositor", 1, new id [unknown]#2220) +[2618165.374] {Default Queue} wl_registry#2214.global(2, "wl_subcompositor", 1) +[2618165.378] {Default Queue} -> wl_registry#2214.bind(2, "wl_subcompositor", 1, new id [unknown]#2221) +[2618165.383] {Default Queue} wl_registry#2214.global(3, "xdg_wm_base", 6) +[2618165.388] {Default Queue} -> wl_registry#2214.bind(3, "xdg_wm_base", 1, new id [unknown]#2222) +[2618165.392] {Default Queue} wl_registry#2214.global(6, "zwlr_layer_shell_v1", 5) +[2618165.397] {Default Queue} wl_registry#2214.global(7, "ext_session_lock_manager_v1", 1) +[2618165.401] {Default Queue} wl_registry#2214.global(8, "wl_shm", 2) +[2618165.405] {Default Queue} -> wl_registry#2214.bind(8, "wl_shm", 1, new id [unknown]#2223) +[2618165.412] {Default Queue} -> wl_registry#2214.bind(8, "wl_shm", 1, new id [unknown]#2224) +[2618165.416] {Default Queue} -> wl_registry#2214.bind(8, "wl_shm", 1, new id [unknown]#2225) +[2618165.428] {Default Queue} wl_registry#2214.global(9, "zxdg_output_manager_v1", 3) +[2618165.433] {Default Queue} wl_registry#2214.global(10, "wp_fractional_scale_manager_v1", 1) +[2618165.438] {Default Queue} wl_registry#2214.global(11, "zwp_tablet_manager_v2", 1) +[2618165.442] {Default Queue} wl_registry#2214.global(12, "zwp_pointer_gestures_v1", 3) +[2618165.446] {Default Queue} wl_registry#2214.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618165.451] {Default Queue} -> wl_registry#2214.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2226) +[2618165.455] {Default Queue} wl_registry#2214.global(14, "zwp_pointer_constraints_v1", 1) +[2618165.460] {Default Queue} -> wl_registry#2214.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2227) +[2618165.464] {Default Queue} wl_registry#2214.global(15, "ext_idle_notifier_v1", 2) +[2618165.469] {Default Queue} wl_registry#2214.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618165.473] {Default Queue} wl_registry#2214.global(17, "wl_data_device_manager", 3) +[2618165.478] {Default Queue} -> wl_registry#2214.bind(17, "wl_data_device_manager", 2, new id [unknown]#2228) +[2618165.482] {Default Queue} -> wl_data_device_manager#2228.create_data_source(new id wl_data_source#2229) +[2618165.486] {Default Queue} -> wl_data_source#2229.offer("text/plain") +[2618165.491] {Default Queue} -> wl_data_source#2229.offer("text/plain;charset=utf-8") +[2618165.495] {Default Queue} -> wl_data_source#2229.offer("TEXT") +[2618165.499] {Default Queue} -> wl_data_source#2229.offer("STRING") +[2618165.503] {Default Queue} -> wl_data_source#2229.offer("UTF8_STRING") +[2618165.507] {Default Queue} wl_registry#2214.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618165.512] {Default Queue} -> wl_registry#2214.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2230) +[2618165.520] {Default Queue} -> zwp_primary_selection_device_manager_v1#2230.create_source(new id zwp_primary_selection_source_v1#2231) +[2618165.527] {Default Queue} -> zwp_primary_selection_source_v1#2231.offer("text/plain") +[2618165.531] {Default Queue} -> zwp_primary_selection_source_v1#2231.offer("text/plain;charset=utf-8") +[2618165.535] {Default Queue} -> zwp_primary_selection_source_v1#2231.offer("TEXT") +[2618165.539] {Default Queue} -> zwp_primary_selection_source_v1#2231.offer("STRING") +[2618165.543] {Default Queue} -> zwp_primary_selection_source_v1#2231.offer("UTF8_STRING") +[2618165.547] {Default Queue} wl_registry#2214.global(19, "zwlr_data_control_manager_v1", 2) +[2618165.553] {Default Queue} wl_registry#2214.global(20, "ext_data_control_manager_v1", 1) +[2618165.557] {Default Queue} wl_registry#2214.global(21, "wp_presentation", 2) +[2618165.561] {Default Queue} wl_registry#2214.global(22, "wp_security_context_manager_v1", 1) +[2618165.566] {Default Queue} wl_registry#2214.global(23, "zwp_text_input_manager_v3", 1) +[2618165.570] {Default Queue} wl_registry#2214.global(24, "zwp_input_method_manager_v2", 1) +[2618165.574] {Default Queue} wl_registry#2214.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618165.579] {Default Queue} wl_registry#2214.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618165.583] {Default Queue} wl_registry#2214.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618165.587] {Default Queue} wl_registry#2214.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618165.592] {Default Queue} wl_registry#2214.global(29, "ext_workspace_manager_v1", 1) +[2618165.596] {Default Queue} wl_registry#2214.global(30, "zwlr_output_manager_v1", 4) +[2618165.601] {Default Queue} wl_registry#2214.global(31, "zwlr_screencopy_manager_v1", 3) +[2618165.605] {Default Queue} wl_registry#2214.global(32, "wp_viewporter", 1) +[2618165.609] {Default Queue} wl_registry#2214.global(33, "zxdg_exporter_v2", 1) +[2618165.614] {Default Queue} wl_registry#2214.global(34, "zxdg_importer_v2", 1) +[2618165.619] {Default Queue} wl_registry#2214.global(36, "xdg_activation_v1", 1) +[2618165.623] {Default Queue} wl_registry#2214.global(37, "mutter_x11_interop", 1) +[2618165.627] {Default Queue} wl_registry#2214.global(38, "wl_seat", 9) +[2618165.635] {Default Queue} -> wl_registry#2214.bind(38, "wl_seat", 1, new id [unknown]#2232) +[2618165.641] {Default Queue} wl_registry#2214.global(39, "wp_cursor_shape_manager_v1", 2) +[2618165.645] {Default Queue} wl_registry#2214.global(40, "wl_output", 4) +[2618165.650] {Default Queue} -> wl_registry#2214.bind(40, "wl_output", 1, new id [unknown]#2233) +[2618165.654] {Default Queue} wl_callback#2215.done(0) +[2618165.658] {Default Queue} discarded wl_surface#2183.enter(wl_output#18) +[2618165.662] {Default Queue} discarded wl_surface#2183.enter(wl_output#57) +[2618165.667] {Default Queue} discarded wl_surface#2183.enter(wl_output#89) +[2618165.671] {Default Queue} discarded wl_surface#2183.enter(wl_output#121) +[2618165.675] {Default Queue} discarded wl_surface#2183.enter(wl_output#153) +[2618165.679] {Default Queue} discarded wl_surface#2183.enter(wl_output#185) +[2618165.683] {Default Queue} discarded wl_surface#2183.enter(wl_output#217) +[2618165.687] {Default Queue} discarded wl_surface#2183.enter(wl_output#249) +[2618165.691] {Default Queue} discarded wl_surface#2183.enter(wl_output#281) +[2618165.695] {Default Queue} discarded wl_surface#2183.enter(wl_output#313) +[2618165.699] {Default Queue} discarded wl_surface#2183.enter(wl_output#345) +[2618165.703] {Default Queue} discarded wl_surface#2183.enter(wl_output#377) +[2618165.707] {Default Queue} discarded wl_surface#2183.enter(wl_output#409) +[2618165.711] {Default Queue} discarded wl_surface#2183.enter(wl_output#441) +[2618165.715] {Default Queue} discarded wl_surface#2183.enter(wl_output#473) +[2618165.719] {Default Queue} discarded wl_surface#2183.enter(wl_output#505) +[2618165.723] {Default Queue} discarded wl_surface#2183.enter(wl_output#537) +[2618165.727] {Default Queue} discarded wl_surface#2183.enter(wl_output#569) +[2618165.731] {Default Queue} discarded wl_surface#2183.enter(wl_output#601) +[2618165.735] {Default Queue} discarded wl_surface#2183.enter(wl_output#633) +[2618165.739] {Default Queue} discarded wl_surface#2183.enter(wl_output#665) +[2618165.743] {Default Queue} discarded wl_surface#2183.enter(wl_output#697) +[2618165.747] {Default Queue} discarded wl_surface#2183.enter(wl_output#729) +[2618165.751] {Default Queue} discarded wl_surface#2183.enter(wl_output#761) +[2618165.755] {Default Queue} discarded wl_surface#2183.enter(wl_output#793) +[2618165.759] {Default Queue} discarded wl_surface#2183.enter(wl_output#825) +[2618165.763] {Default Queue} discarded wl_surface#2183.enter(wl_output#857) +[2618165.767] {Default Queue} discarded wl_surface#2183.enter(wl_output#889) +[2618165.771] {Default Queue} discarded wl_surface#2183.enter(wl_output#921) +[2618165.775] {Default Queue} discarded wl_surface#2183.enter(wl_output#953) +[2618165.779] {Default Queue} discarded wl_surface#2183.enter(wl_output#985) +[2618165.783] {Default Queue} discarded wl_surface#2183.enter(wl_output#1017) +[2618165.787] {Default Queue} discarded wl_surface#2183.enter(wl_output#1049) +[2618165.791] {Default Queue} discarded wl_surface#2183.enter(wl_output#1081) +[2618165.795] {Default Queue} discarded wl_surface#2183.enter(wl_output#1113) +[2618165.799] {Default Queue} discarded wl_surface#2183.enter(wl_output#1145) +[2618165.803] {Default Queue} discarded wl_surface#2183.enter(wl_output#1177) +[2618165.807] {Default Queue} discarded wl_surface#2183.enter(wl_output#1209) +[2618165.811] {Default Queue} discarded wl_surface#2183.enter(wl_output#1241) +[2618165.815] {Default Queue} discarded wl_surface#2183.enter(wl_output#1273) +[2618165.819] {Default Queue} discarded wl_surface#2183.enter(wl_output#1305) +[2618165.823] {Default Queue} discarded wl_surface#2183.enter(wl_output#1337) +[2618165.826] {Default Queue} discarded wl_surface#2183.enter(wl_output#1369) +[2618165.830] {Default Queue} discarded wl_surface#2183.enter(wl_output#1401) +[2618165.835] {Default Queue} discarded wl_surface#2183.enter(wl_output#1433) +[2618165.839] {Default Queue} discarded wl_surface#2183.enter(wl_output#1465) +[2618165.843] {Default Queue} discarded wl_surface#2183.enter(wl_output#1497) +[2618165.850] {Default Queue} discarded wl_surface#2183.enter(wl_output#1529) +[2618165.855] {Default Queue} discarded wl_surface#2183.enter(wl_output#1561) +[2618165.859] {Default Queue} discarded wl_surface#2183.enter(wl_output#1593) +[2618165.864] {Default Queue} discarded wl_surface#2183.enter(wl_output#1625) +[2618165.868] {Default Queue} discarded wl_surface#2183.enter(wl_output#1657) +[2618165.879] {Default Queue} discarded wl_surface#2183.enter(wl_output#1689) +[2618165.883] {Default Queue} discarded wl_surface#2183.enter(wl_output#1721) +[2618165.887] {Default Queue} discarded wl_surface#2183.enter(wl_output#1753) +[2618165.891] {Default Queue} discarded wl_surface#2183.enter(wl_output#1785) +[2618165.895] {Default Queue} discarded wl_surface#2183.enter(wl_output#1817) +[2618165.899] {Default Queue} discarded wl_surface#2183.enter(wl_output#1849) +[2618165.903] {Default Queue} discarded wl_surface#2183.enter(wl_output#1881) +[2618165.907] {Default Queue} discarded wl_surface#2183.enter(wl_output#1913) +[2618165.911] {Default Queue} discarded wl_surface#2183.enter(wl_output#1945) +[2618165.915] {Default Queue} discarded wl_surface#2183.enter(wl_output#1977) +[2618165.918] {Default Queue} discarded wl_surface#2183.enter(wl_output#2009) +[2618165.922] {Default Queue} discarded wl_surface#2183.enter(wl_output#2041) +[2618165.926] {Default Queue} discarded wl_surface#2183.enter(wl_output#2073) +[2618165.930] {Default Queue} discarded wl_surface#2183.enter(wl_output#2105) +[2618165.934] {Default Queue} discarded wl_surface#2183.enter(wl_output#2137) +[2618165.938] {Default Queue} discarded wl_surface#2183.enter(wl_output#2169) +[2618165.942] {Default Queue} discarded wl_surface#2183.enter(wl_output#2201) +[2618165.946] {Default Queue} -> wl_compositor#2156.create_surface(new id wl_surface#2215) +[2618165.951] {Default Queue} -> wl_subcompositor#2221.get_subsurface(new id wl_subsurface#2234, wl_surface#2215, wl_surface#2151) +[2618165.959] {Default Queue} -> wl_subsurface#2234.set_desync() +[2618165.963] {Default Queue} -> wl_subsurface#2234.set_position(0, 0) +[2618165.967] {Default Queue} -> wl_subsurface#2234.place_above(wl_surface#2151) +[2618166.010] {Default Queue} -> wl_shm#2223.create_pool(new id wl_shm_pool#2235, fd 354, 16) +[2618166.017] {Default Queue} -> wl_shm#2223.create_pool(new id wl_shm_pool#2236, fd 355, 16) +[2618166.021] {Default Queue} -> wl_shm_pool#2235.create_buffer(new id wl_buffer#2237, 0, 2, 2, 8, 0) +[2618166.026] {Default Queue} -> wl_shm_pool#2236.create_buffer(new id wl_buffer#2238, 0, 2, 2, 8, 0) +[2618166.035] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) +[2618166.039] {Default Queue} -> wl_surface#2215.commit() +[2618166.045] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) +[2618166.049] {Default Queue} -> wl_surface#2215.commit() +[2618166.053] {Default Queue} -> wl_compositor#2220.create_region(new id wl_region#2239) +[2618166.057] {Default Queue} -> wl_compositor#2220.create_region(new id wl_region#2240) +[2618166.062] {Default Queue} -> wl_region#2239.subtract(0, 0, 2, 2) +[2618166.067] {Default Queue} -> wl_region#2239.add(0, 0, 0, 0) +[2618166.071] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) +[2618166.076] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) +[2618166.080] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) +[2618166.085] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) +[2618166.093] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) +[2618166.097] {Default Queue} -> wl_surface#2215.commit() +[2618166.132] {Default Queue} -> wl_shm#2225.create_pool(new id wl_shm_pool#2241, fd 358, 640) +[2618166.138] {Default Queue} -> wl_shm#2225.create_pool(new id wl_shm_pool#2242, fd 359, 640) +[2618166.143] {Default Queue} -> wl_shm_pool#2241.create_buffer(new id wl_buffer#2243, 0, 10, 16, 40, 0) +[2618166.148] {Default Queue} -> wl_shm_pool#2242.create_buffer(new id wl_buffer#2244, 0, 10, 16, 40, 0) +[2618166.154] {Default Queue} -> wl_compositor#2220.create_surface(new id wl_surface#2245) +[2618166.162] {Default Queue} -> wl_surface#2245.attach(wl_buffer#2243, 0, 0) +[2618166.169] {Default Queue} -> wl_surface#2245.commit() +[2618166.174] {Default Queue} -> wl_surface#2245.attach(wl_buffer#2243, 0, 0) +[2618166.179] {Default Queue} -> wl_surface#2245.commit() +[2618166.183] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) +[2618166.190] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2246) +[2618166.195] {Default Queue} -> wl_display#1.sync(new id wl_callback#2247) +[2618171.114] {Display Queue} wl_display#1.delete_id(2247) +[2618171.125] {Default Queue} wl_keyboard#2216.keymap(1, fd 354, 68213) +[2618171.132] {Default Queue} wl_keyboard#2216.enter(566, wl_surface#19, array[0]) +[2618171.138] {Default Queue} wl_keyboard#2216.modifiers(566, 0, 0, 16, 0) +[2618171.144] {Default Queue} discarded wl_shm#2223.format(875709016) +[2618171.149] {Default Queue} discarded wl_shm#2223.format(1) +[2618171.154] {Default Queue} discarded wl_shm#2223.format(0) +[2618171.159] {Default Queue} discarded wl_shm#2223.format(875708993) +[2618171.163] {Default Queue} discarded wl_shm#2224.format(875709016) +[2618171.168] {Default Queue} discarded wl_shm#2224.format(1) +[2618171.173] {Default Queue} discarded wl_shm#2224.format(0) +[2618171.178] {Default Queue} discarded wl_shm#2224.format(875708993) +[2618171.183] {Default Queue} discarded wl_shm#2225.format(875709016) +[2618171.188] {Default Queue} discarded wl_shm#2225.format(1) +[2618171.193] {Default Queue} discarded wl_shm#2225.format(0) +[2618171.198] {Default Queue} discarded wl_shm#2225.format(875708993) +[2618171.203] {Default Queue} wl_seat#2232.capabilities(7) +[2618171.208] {Default Queue} -> wl_seat#2232.get_keyboard(new id wl_keyboard#2248) +[2618171.214] {Default Queue} -> wl_seat#2232.get_pointer(new id wl_pointer#2249) +[2618171.219] {Default Queue} -> wl_data_device_manager#2228.get_data_device(new id wl_data_device#2250, wl_seat#2232) +[2618171.225] {Default Queue} -> zwp_primary_selection_device_manager_v1#2230.get_device(new id zwp_primary_selection_device_v1#2251, wl_seat#2232) +[2618171.235] {Default Queue} wl_output#2233.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618171.241] {Default Queue} wl_output#2233.mode(3, 1280, 800, 60000) +[2618171.247] {Default Queue} discarded wl_surface#3.enter(wl_output#2233) +[2618171.252] {Default Queue} discarded wl_surface#999.enter(wl_output#2233) +[2618171.257] {Default Queue} discarded wl_surface#1191.enter(wl_output#2233) +[2618171.262] {Default Queue} discarded wl_surface#1159.enter(wl_output#2233) +[2618171.267] {Default Queue} discarded wl_surface#1703.enter(wl_output#2233) +[2618171.272] {Default Queue} discarded wl_surface#423.enter(wl_output#2233) +[2618171.277] {Default Queue} discarded wl_surface#1447.enter(wl_output#2233) +[2618171.282] {Default Queue} discarded wl_surface#2023.enter(wl_output#2233) +[2618171.287] {Default Queue} discarded wl_surface#1639.enter(wl_output#2233) +[2618171.291] {Default Queue} discarded wl_surface#1319.enter(wl_output#2233) +[2618171.296] {Default Queue} discarded wl_surface#1127.enter(wl_output#2233) +[2618171.301] {Default Queue} discarded wl_surface#2151.enter(wl_output#2233) +[2618171.306] {Default Queue} discarded wl_surface#1063.enter(wl_output#2233) +[2618171.311] {Default Queue} discarded wl_surface#455.enter(wl_output#2233) +[2618171.316] {Default Queue} discarded wl_surface#1575.enter(wl_output#2233) +[2618171.321] {Default Queue} discarded wl_surface#1799.enter(wl_output#2233) +[2618171.326] {Default Queue} discarded wl_surface#1415.enter(wl_output#2233) +[2618171.331] {Default Queue} discarded wl_surface#1831.enter(wl_output#2233) +[2618171.336] {Default Queue} discarded wl_surface#903.enter(wl_output#2233) +[2618171.341] {Default Queue} discarded wl_surface#775.enter(wl_output#2233) +[2618171.346] {Default Queue} discarded wl_surface#1991.enter(wl_output#2233) +[2618171.351] {Default Queue} discarded wl_surface#1543.enter(wl_output#2233) +[2618171.356] {Default Queue} discarded wl_surface#135.enter(wl_output#2233) +[2618171.361] {Default Queue} discarded wl_surface#1287.enter(wl_output#2233) +[2618171.370] {Default Queue} discarded wl_surface#1031.enter(wl_output#2233) +[2618171.378] {Default Queue} discarded wl_surface#615.enter(wl_output#2233) +[2618171.383] {Default Queue} discarded wl_surface#231.enter(wl_output#2233) +[2618171.388] {Default Queue} discarded wl_surface#1863.enter(wl_output#2233) +[2618171.393] {Default Queue} discarded wl_surface#359.enter(wl_output#2233) +[2618171.398] {Default Queue} discarded wl_surface#583.enter(wl_output#2233) +[2618171.402] {Default Queue} discarded wl_surface#743.enter(wl_output#2233) +[2618171.407] {Default Queue} discarded wl_surface#967.enter(wl_output#2233) +[2618171.412] {Default Queue} discarded wl_surface#103.enter(wl_output#2233) +[2618171.417] {Default Queue} discarded wl_surface#327.enter(wl_output#2233) +[2618171.422] {Default Queue} discarded wl_surface#43.enter(wl_output#2233) +[2618171.427] {Default Queue} discarded wl_surface#807.enter(wl_output#2233) +[2618171.432] {Default Queue} discarded wl_surface#19.enter(wl_output#2233) +[2618171.437] {Default Queue} discarded wl_surface#1511.enter(wl_output#2233) +[2618171.442] {Default Queue} discarded wl_surface#199.enter(wl_output#2233) +[2618171.447] {Default Queue} discarded wl_surface#391.enter(wl_output#2233) +[2618171.452] {Default Queue} discarded wl_surface#935.enter(wl_output#2233) +[2618171.456] {Default Queue} discarded wl_surface#1671.enter(wl_output#2233) +[2618171.461] {Default Queue} discarded wl_surface#1351.enter(wl_output#2233) +[2618171.466] {Default Queue} discarded wl_surface#711.enter(wl_output#2233) +[2618171.471] {Default Queue} discarded wl_surface#1223.enter(wl_output#2233) +[2618171.476] {Default Queue} discarded wl_surface#1927.enter(wl_output#2233) +[2618171.481] {Default Queue} discarded wl_surface#871.enter(wl_output#2233) +[2618171.486] {Default Queue} discarded wl_surface#1895.enter(wl_output#2233) +[2618171.491] {Default Queue} discarded wl_surface#263.enter(wl_output#2233) +[2618171.496] {Default Queue} discarded wl_surface#551.enter(wl_output#2233) +[2618171.501] {Default Queue} discarded wl_surface#1735.enter(wl_output#2233) +[2618171.506] {Default Queue} discarded wl_surface#1479.enter(wl_output#2233) +[2618171.511] {Default Queue} discarded wl_surface#1772.enter(wl_output#2233) +[2618171.516] {Default Queue} discarded wl_surface#1959.enter(wl_output#2233) +[2618171.521] {Default Queue} discarded wl_surface#647.enter(wl_output#2233) +[2618171.526] {Default Queue} discarded wl_surface#2055.enter(wl_output#2233) +[2618171.531] {Default Queue} discarded wl_surface#71.enter(wl_output#2233) +[2618171.535] {Default Queue} discarded wl_surface#2183.enter(wl_output#2233) +[2618171.540] {Default Queue} discarded wl_surface#839.enter(wl_output#2233) +[2618171.545] {Default Queue} discarded wl_surface#1607.enter(wl_output#2233) +[2618171.550] {Default Queue} discarded wl_surface#1095.enter(wl_output#2233) +[2618171.555] {Default Queue} discarded wl_surface#1383.enter(wl_output#2233) +[2618171.560] {Default Queue} discarded wl_surface#487.enter(wl_output#2233) +[2618171.565] {Default Queue} discarded wl_surface#519.enter(wl_output#2233) +[2618171.570] {Default Queue} discarded wl_surface#2087.enter(wl_output#2233) +[2618171.575] {Default Queue} discarded wl_surface#295.enter(wl_output#2233) +[2618171.580] {Default Queue} discarded wl_surface#167.enter(wl_output#2233) +[2618171.585] {Default Queue} discarded wl_surface#1255.enter(wl_output#2233) +[2618171.590] {Default Queue} discarded wl_surface#679.enter(wl_output#2233) +[2618171.594] {Default Queue} discarded wl_surface#2119.enter(wl_output#2233) +[2618171.599] {Default Queue} wl_registry#2246.global(1, "wl_compositor", 6) +[2618171.606] {Default Queue} -> wl_registry#2246.bind(1, "wl_compositor", 1, new id [unknown]#2252) +[2618171.612] {Default Queue} wl_registry#2246.global(2, "wl_subcompositor", 1) +[2618171.618] {Default Queue} -> wl_registry#2246.bind(2, "wl_subcompositor", 1, new id [unknown]#2253) +[2618171.623] {Default Queue} wl_registry#2246.global(3, "xdg_wm_base", 6) +[2618171.629] {Default Queue} -> wl_registry#2246.bind(3, "xdg_wm_base", 1, new id [unknown]#2254) +[2618171.639] {Default Queue} wl_registry#2246.global(6, "zwlr_layer_shell_v1", 5) +[2618171.646] {Default Queue} wl_registry#2246.global(7, "ext_session_lock_manager_v1", 1) +[2618171.652] {Default Queue} wl_registry#2246.global(8, "wl_shm", 2) +[2618171.657] {Default Queue} -> wl_registry#2246.bind(8, "wl_shm", 1, new id [unknown]#2255) +[2618171.665] {Default Queue} -> wl_registry#2246.bind(8, "wl_shm", 1, new id [unknown]#2256) +[2618171.673] {Default Queue} -> wl_registry#2246.bind(8, "wl_shm", 1, new id [unknown]#2257) +[2618171.680] {Default Queue} wl_registry#2246.global(9, "zxdg_output_manager_v1", 3) +[2618171.688] {Default Queue} wl_registry#2246.global(10, "wp_fractional_scale_manager_v1", 1) +[2618171.698] {Default Queue} wl_registry#2246.global(11, "zwp_tablet_manager_v2", 1) +[2618171.705] {Default Queue} wl_registry#2246.global(12, "zwp_pointer_gestures_v1", 3) +[2618171.710] {Default Queue} wl_registry#2246.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618171.716] {Default Queue} -> wl_registry#2246.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2258) +[2618171.721] {Default Queue} wl_registry#2246.global(14, "zwp_pointer_constraints_v1", 1) +[2618171.727] {Default Queue} -> wl_registry#2246.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2259) +[2618171.732] {Default Queue} wl_registry#2246.global(15, "ext_idle_notifier_v1", 2) +[2618171.738] {Default Queue} wl_registry#2246.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618171.747] {Default Queue} wl_registry#2246.global(17, "wl_data_device_manager", 3) +[2618171.753] {Default Queue} -> wl_registry#2246.bind(17, "wl_data_device_manager", 2, new id [unknown]#2260) +[2618171.758] {Default Queue} -> wl_data_device_manager#2260.create_data_source(new id wl_data_source#2261) +[2618171.764] {Default Queue} -> wl_data_source#2261.offer("text/plain") +[2618171.769] {Default Queue} -> wl_data_source#2261.offer("text/plain;charset=utf-8") +[2618171.774] {Default Queue} -> wl_data_source#2261.offer("TEXT") +[2618171.779] {Default Queue} -> wl_data_source#2261.offer("STRING") +[2618171.784] {Default Queue} -> wl_data_source#2261.offer("UTF8_STRING") +[2618171.789] {Default Queue} wl_registry#2246.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618171.795] {Default Queue} -> wl_registry#2246.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2262) +[2618171.805] {Default Queue} -> zwp_primary_selection_device_manager_v1#2262.create_source(new id zwp_primary_selection_source_v1#2263) +[2618171.814] {Default Queue} -> zwp_primary_selection_source_v1#2263.offer("text/plain") +[2618171.820] {Default Queue} -> zwp_primary_selection_source_v1#2263.offer("text/plain;charset=utf-8") +[2618171.825] {Default Queue} -> zwp_primary_selection_source_v1#2263.offer("TEXT") +[2618171.830] {Default Queue} -> zwp_primary_selection_source_v1#2263.offer("STRING") +[2618171.835] {Default Queue} -> zwp_primary_selection_source_v1#2263.offer("UTF8_STRING") +[2618171.840] {Default Queue} wl_registry#2246.global(19, "zwlr_data_control_manager_v1", 2) +[2618171.845] {Default Queue} wl_registry#2246.global(20, "ext_data_control_manager_v1", 1) +[2618171.851] {Default Queue} wl_registry#2246.global(21, "wp_presentation", 2) +[2618171.857] {Default Queue} wl_registry#2246.global(22, "wp_security_context_manager_v1", 1) +[2618171.869] {Default Queue} wl_registry#2246.global(23, "zwp_text_input_manager_v3", 1) +[2618171.899] {Default Queue} wl_registry#2246.global(24, "zwp_input_method_manager_v2", 1) +[2618171.908] {Default Queue} wl_registry#2246.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618171.914] {Default Queue} wl_registry#2246.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618171.919] {Default Queue} wl_registry#2246.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618171.923] {Default Queue} wl_registry#2246.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618171.928] {Default Queue} wl_registry#2246.global(29, "ext_workspace_manager_v1", 1) +[2618171.932] {Default Queue} wl_registry#2246.global(30, "zwlr_output_manager_v1", 4) +[2618171.943] {Default Queue} wl_registry#2246.global(31, "zwlr_screencopy_manager_v1", 3) +[2618171.952] {Default Queue} wl_registry#2246.global(32, "wp_viewporter", 1) +[2618171.956] {Default Queue} wl_registry#2246.global(33, "zxdg_exporter_v2", 1) +[2618171.960] {Default Queue} wl_registry#2246.global(34, "zxdg_importer_v2", 1) +[2618171.965] {Default Queue} wl_registry#2246.global(36, "xdg_activation_v1", 1) +[2618171.969] {Default Queue} wl_registry#2246.global(37, "mutter_x11_interop", 1) +[2618171.973] {Default Queue} wl_registry#2246.global(38, "wl_seat", 9) +[2618171.979] {Default Queue} -> wl_registry#2246.bind(38, "wl_seat", 1, new id [unknown]#2264) +[2618171.984] {Default Queue} wl_registry#2246.global(39, "wp_cursor_shape_manager_v1", 2) +[2618171.988] {Default Queue} wl_registry#2246.global(40, "wl_output", 4) +[2618171.993] {Default Queue} -> wl_registry#2246.bind(40, "wl_output", 1, new id [unknown]#2265) +[2618171.997] {Default Queue} wl_callback#2247.done(0) +[2618172.002] {Default Queue} discarded wl_surface#2215.enter(wl_output#18) +[2618172.006] {Default Queue} discarded wl_surface#2215.enter(wl_output#57) +[2618172.010] {Default Queue} discarded wl_surface#2215.enter(wl_output#89) +[2618172.014] {Default Queue} discarded wl_surface#2215.enter(wl_output#121) +[2618172.018] {Default Queue} discarded wl_surface#2215.enter(wl_output#153) +[2618172.022] {Default Queue} discarded wl_surface#2215.enter(wl_output#185) +[2618172.027] {Default Queue} discarded wl_surface#2215.enter(wl_output#217) +[2618172.031] {Default Queue} discarded wl_surface#2215.enter(wl_output#249) +[2618172.035] {Default Queue} discarded wl_surface#2215.enter(wl_output#281) +[2618172.038] {Default Queue} discarded wl_surface#2215.enter(wl_output#313) +[2618172.042] {Default Queue} discarded wl_surface#2215.enter(wl_output#345) +[2618172.046] {Default Queue} discarded wl_surface#2215.enter(wl_output#377) +[2618172.050] {Default Queue} discarded wl_surface#2215.enter(wl_output#409) +[2618172.054] {Default Queue} discarded wl_surface#2215.enter(wl_output#441) +[2618172.058] {Default Queue} discarded wl_surface#2215.enter(wl_output#473) +[2618172.062] {Default Queue} discarded wl_surface#2215.enter(wl_output#505) +[2618172.066] {Default Queue} discarded wl_surface#2215.enter(wl_output#537) +[2618172.070] {Default Queue} discarded wl_surface#2215.enter(wl_output#569) +[2618172.074] {Default Queue} discarded wl_surface#2215.enter(wl_output#601) +[2618172.078] {Default Queue} discarded wl_surface#2215.enter(wl_output#633) +[2618172.082] {Default Queue} discarded wl_surface#2215.enter(wl_output#665) +[2618172.086] {Default Queue} discarded wl_surface#2215.enter(wl_output#697) +[2618172.089] {Default Queue} discarded wl_surface#2215.enter(wl_output#729) +[2618172.093] {Default Queue} discarded wl_surface#2215.enter(wl_output#761) +[2618172.097] {Default Queue} discarded wl_surface#2215.enter(wl_output#793) +[2618172.101] {Default Queue} discarded wl_surface#2215.enter(wl_output#825) +[2618172.105] {Default Queue} discarded wl_surface#2215.enter(wl_output#857) +[2618172.109] {Default Queue} discarded wl_surface#2215.enter(wl_output#889) +[2618172.113] {Default Queue} discarded wl_surface#2215.enter(wl_output#921) +[2618172.117] {Default Queue} discarded wl_surface#2215.enter(wl_output#953) +[2618172.121] {Default Queue} discarded wl_surface#2215.enter(wl_output#985) +[2618172.125] {Default Queue} discarded wl_surface#2215.enter(wl_output#1017) +[2618172.128] {Default Queue} discarded wl_surface#2215.enter(wl_output#1049) +[2618172.132] {Default Queue} discarded wl_surface#2215.enter(wl_output#1081) +[2618172.136] {Default Queue} discarded wl_surface#2215.enter(wl_output#1113) +[2618172.140] {Default Queue} discarded wl_surface#2215.enter(wl_output#1145) +[2618172.144] {Default Queue} discarded wl_surface#2215.enter(wl_output#1177) +[2618172.148] {Default Queue} discarded wl_surface#2215.enter(wl_output#1209) +[2618172.152] {Default Queue} discarded wl_surface#2215.enter(wl_output#1241) +[2618172.155] {Default Queue} discarded wl_surface#2215.enter(wl_output#1273) +[2618172.164] {Default Queue} discarded wl_surface#2215.enter(wl_output#1305) +[2618172.170] {Default Queue} discarded wl_surface#2215.enter(wl_output#1337) +[2618172.174] {Default Queue} discarded wl_surface#2215.enter(wl_output#1369) +[2618172.178] {Default Queue} discarded wl_surface#2215.enter(wl_output#1401) +[2618172.182] {Default Queue} discarded wl_surface#2215.enter(wl_output#1433) +[2618172.186] {Default Queue} discarded wl_surface#2215.enter(wl_output#1465) +[2618172.190] {Default Queue} discarded wl_surface#2215.enter(wl_output#1497) +[2618172.193] {Default Queue} discarded wl_surface#2215.enter(wl_output#1529) +[2618172.197] {Default Queue} discarded wl_surface#2215.enter(wl_output#1561) +[2618172.201] {Default Queue} discarded wl_surface#2215.enter(wl_output#1593) +[2618172.205] {Default Queue} discarded wl_surface#2215.enter(wl_output#1625) +[2618172.209] {Default Queue} discarded wl_surface#2215.enter(wl_output#1657) +[2618172.213] {Default Queue} discarded wl_surface#2215.enter(wl_output#1689) +[2618172.217] {Default Queue} discarded wl_surface#2215.enter(wl_output#1721) +[2618172.221] {Default Queue} discarded wl_surface#2215.enter(wl_output#1753) +[2618172.225] {Default Queue} discarded wl_surface#2215.enter(wl_output#1785) +[2618172.229] {Default Queue} discarded wl_surface#2215.enter(wl_output#1817) +[2618172.233] {Default Queue} discarded wl_surface#2215.enter(wl_output#1849) +[2618172.237] {Default Queue} discarded wl_surface#2215.enter(wl_output#1881) +[2618172.241] {Default Queue} discarded wl_surface#2215.enter(wl_output#1913) +[2618172.245] {Default Queue} discarded wl_surface#2215.enter(wl_output#1945) +[2618172.249] {Default Queue} discarded wl_surface#2215.enter(wl_output#1977) +[2618172.253] {Default Queue} discarded wl_surface#2215.enter(wl_output#2009) +[2618172.256] {Default Queue} discarded wl_surface#2215.enter(wl_output#2041) +[2618172.260] {Default Queue} discarded wl_surface#2215.enter(wl_output#2073) +[2618172.264] {Default Queue} discarded wl_surface#2215.enter(wl_output#2105) +[2618172.268] {Default Queue} discarded wl_surface#2215.enter(wl_output#2137) +[2618172.273] {Default Queue} discarded wl_surface#2215.enter(wl_output#2169) +[2618172.277] {Default Queue} discarded wl_surface#2215.enter(wl_output#2201) +[2618172.281] {Default Queue} discarded wl_surface#2215.enter(wl_output#2233) +[2618172.285] {Default Queue} -> wl_compositor#2220.create_surface(new id wl_surface#2247) +[2618172.290] {Default Queue} -> wl_subcompositor#2253.get_subsurface(new id wl_subsurface#2266, wl_surface#2247, wl_surface#2215) +[2618172.298] {Default Queue} -> wl_subsurface#2266.set_desync() +[2618172.302] {Default Queue} -> wl_subsurface#2266.set_position(0, 0) +[2618172.308] {Default Queue} -> wl_subsurface#2266.place_above(wl_surface#2215) +[2618172.355] {Default Queue} -> wl_shm#2255.create_pool(new id wl_shm_pool#2267, fd 359, 16) +[2618172.362] {Default Queue} -> wl_shm#2255.create_pool(new id wl_shm_pool#2268, fd 360, 16) +[2618172.366] {Default Queue} -> wl_shm_pool#2267.create_buffer(new id wl_buffer#2269, 0, 2, 2, 8, 0) +[2618172.371] {Default Queue} -> wl_shm_pool#2268.create_buffer(new id wl_buffer#2270, 0, 2, 2, 8, 0) +[2618172.380] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) +[2618172.385] {Default Queue} -> wl_surface#2247.commit() +[2618172.390] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) +[2618172.395] {Default Queue} -> wl_surface#2247.commit() +[2618172.399] {Default Queue} -> wl_compositor#2252.create_region(new id wl_region#2271) +[2618172.403] {Default Queue} -> wl_compositor#2252.create_region(new id wl_region#2272) +[2618172.409] {Default Queue} -> wl_region#2271.subtract(0, 0, 2, 2) +[2618172.415] {Default Queue} -> wl_region#2271.add(0, 0, 0, 0) +[2618172.422] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618172.428] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618172.435] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618172.442] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) +[2618172.453] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) +[2618172.474] {Default Queue} -> wl_surface#2247.commit() +[2618172.518] {Default Queue} -> wl_shm#2257.create_pool(new id wl_shm_pool#2273, fd 363, 640) +[2618172.525] {Default Queue} -> wl_shm#2257.create_pool(new id wl_shm_pool#2274, fd 364, 640) +[2618172.529] {Default Queue} -> wl_shm_pool#2273.create_buffer(new id wl_buffer#2275, 0, 10, 16, 40, 0) +[2618172.534] {Default Queue} -> wl_shm_pool#2274.create_buffer(new id wl_buffer#2276, 0, 10, 16, 40, 0) +[2618172.543] {Default Queue} -> wl_compositor#2252.create_surface(new id wl_surface#2277) +[2618172.547] {Default Queue} -> wl_surface#2277.attach(wl_buffer#2275, 0, 0) +[2618172.552] {Default Queue} -> wl_surface#2277.commit() +[2618172.557] {Default Queue} -> wl_surface#2277.attach(wl_buffer#2275, 0, 0) +[2618172.561] {Default Queue} -> wl_surface#2277.commit() +[2618172.572] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2278) +[2618172.577] {Default Queue} -> wl_display#1.sync(new id wl_callback#2279) +[2618175.156] {Display Queue} wl_display#1.delete_id(2279) +[2618175.170] {Default Queue} wl_keyboard#2248.keymap(1, fd 359, 68213) +[2618175.175] {Default Queue} wl_keyboard#2248.enter(566, wl_surface#19, array[0]) +[2618175.182] {Default Queue} wl_keyboard#2248.modifiers(566, 0, 0, 16, 0) +[2618175.186] {Default Queue} discarded wl_shm#2255.format(875709016) +[2618175.191] {Default Queue} discarded wl_shm#2255.format(1) +[2618175.195] {Default Queue} discarded wl_shm#2255.format(0) +[2618175.199] {Default Queue} discarded wl_shm#2255.format(875708993) +[2618175.203] {Default Queue} discarded wl_shm#2256.format(875709016) +[2618175.207] {Default Queue} discarded wl_shm#2256.format(1) +[2618175.211] {Default Queue} discarded wl_shm#2256.format(0) +[2618175.216] {Default Queue} discarded wl_shm#2256.format(875708993) +[2618175.220] {Default Queue} discarded wl_shm#2257.format(875709016) +[2618175.224] {Default Queue} discarded wl_shm#2257.format(1) +[2618175.227] {Default Queue} discarded wl_shm#2257.format(0) +[2618175.231] {Default Queue} discarded wl_shm#2257.format(875708993) +[2618175.235] {Default Queue} wl_seat#2264.capabilities(7) +[2618175.240] {Default Queue} -> wl_seat#2264.get_keyboard(new id wl_keyboard#2280) +[2618175.244] {Default Queue} -> wl_seat#2264.get_pointer(new id wl_pointer#2281) +[2618175.250] {Default Queue} -> wl_data_device_manager#2260.get_data_device(new id wl_data_device#2282, wl_seat#2264) +[2618175.254] {Default Queue} -> zwp_primary_selection_device_manager_v1#2262.get_device(new id zwp_primary_selection_device_v1#2283, wl_seat#2264) +[2618175.262] {Default Queue} wl_output#2265.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618175.268] {Default Queue} wl_output#2265.mode(3, 1280, 800, 60000) +[2618175.272] {Default Queue} discarded wl_surface#3.enter(wl_output#2265) +[2618175.277] {Default Queue} discarded wl_surface#999.enter(wl_output#2265) +[2618175.281] {Default Queue} discarded wl_surface#1191.enter(wl_output#2265) +[2618175.286] {Default Queue} discarded wl_surface#1159.enter(wl_output#2265) +[2618175.290] {Default Queue} discarded wl_surface#1703.enter(wl_output#2265) +[2618175.294] {Default Queue} discarded wl_surface#2215.enter(wl_output#2265) +[2618175.298] {Default Queue} discarded wl_surface#423.enter(wl_output#2265) +[2618175.302] {Default Queue} discarded wl_surface#1447.enter(wl_output#2265) +[2618175.306] {Default Queue} discarded wl_surface#2023.enter(wl_output#2265) +[2618175.310] {Default Queue} discarded wl_surface#1639.enter(wl_output#2265) +[2618175.314] {Default Queue} discarded wl_surface#1319.enter(wl_output#2265) +[2618175.318] {Default Queue} discarded wl_surface#1127.enter(wl_output#2265) +[2618175.322] {Default Queue} discarded wl_surface#2151.enter(wl_output#2265) +[2618175.326] {Default Queue} discarded wl_surface#1063.enter(wl_output#2265) +[2618175.330] {Default Queue} discarded wl_surface#455.enter(wl_output#2265) +[2618175.334] {Default Queue} discarded wl_surface#1575.enter(wl_output#2265) +[2618175.337] {Default Queue} discarded wl_surface#1799.enter(wl_output#2265) +[2618175.347] {Default Queue} discarded wl_surface#1415.enter(wl_output#2265) +[2618175.355] {Default Queue} discarded wl_surface#1831.enter(wl_output#2265) +[2618175.359] {Default Queue} discarded wl_surface#903.enter(wl_output#2265) +[2618175.363] {Default Queue} discarded wl_surface#775.enter(wl_output#2265) +[2618175.367] {Default Queue} discarded wl_surface#1991.enter(wl_output#2265) +[2618175.372] {Default Queue} discarded wl_surface#1543.enter(wl_output#2265) +[2618175.376] {Default Queue} discarded wl_surface#135.enter(wl_output#2265) +[2618175.379] {Default Queue} discarded wl_surface#1287.enter(wl_output#2265) +[2618175.383] {Default Queue} discarded wl_surface#1031.enter(wl_output#2265) +[2618175.387] {Default Queue} discarded wl_surface#615.enter(wl_output#2265) +[2618175.391] {Default Queue} discarded wl_surface#231.enter(wl_output#2265) +[2618175.395] {Default Queue} discarded wl_surface#1863.enter(wl_output#2265) +[2618175.399] {Default Queue} discarded wl_surface#359.enter(wl_output#2265) +[2618175.403] {Default Queue} discarded wl_surface#583.enter(wl_output#2265) +[2618175.407] {Default Queue} discarded wl_surface#743.enter(wl_output#2265) +[2618175.410] {Default Queue} discarded wl_surface#967.enter(wl_output#2265) +[2618175.414] {Default Queue} discarded wl_surface#103.enter(wl_output#2265) +[2618175.418] {Default Queue} discarded wl_surface#327.enter(wl_output#2265) +[2618175.422] {Default Queue} discarded wl_surface#43.enter(wl_output#2265) +[2618175.427] {Default Queue} discarded wl_surface#807.enter(wl_output#2265) +[2618175.431] {Default Queue} discarded wl_surface#19.enter(wl_output#2265) +[2618175.435] {Default Queue} discarded wl_surface#1511.enter(wl_output#2265) +[2618175.439] {Default Queue} discarded wl_surface#199.enter(wl_output#2265) +[2618175.443] {Default Queue} discarded wl_surface#391.enter(wl_output#2265) +[2618175.447] {Default Queue} discarded wl_surface#935.enter(wl_output#2265) +[2618175.451] {Default Queue} discarded wl_surface#1671.enter(wl_output#2265) +[2618175.455] {Default Queue} discarded wl_surface#1351.enter(wl_output#2265) +[2618175.459] {Default Queue} discarded wl_surface#711.enter(wl_output#2265) +[2618175.463] {Default Queue} discarded wl_surface#1223.enter(wl_output#2265) +[2618175.467] {Default Queue} discarded wl_surface#1927.enter(wl_output#2265) +[2618175.470] {Default Queue} discarded wl_surface#871.enter(wl_output#2265) +[2618175.474] {Default Queue} discarded wl_surface#1895.enter(wl_output#2265) +[2618175.479] {Default Queue} discarded wl_surface#263.enter(wl_output#2265) +[2618175.483] {Default Queue} discarded wl_surface#551.enter(wl_output#2265) +[2618175.487] {Default Queue} discarded wl_surface#1735.enter(wl_output#2265) +[2618175.492] {Default Queue} discarded wl_surface#1479.enter(wl_output#2265) +[2618175.496] {Default Queue} discarded wl_surface#1772.enter(wl_output#2265) +[2618175.499] {Default Queue} discarded wl_surface#1959.enter(wl_output#2265) +[2618175.503] {Default Queue} discarded wl_surface#647.enter(wl_output#2265) +[2618175.507] {Default Queue} discarded wl_surface#2055.enter(wl_output#2265) +[2618175.511] {Default Queue} discarded wl_surface#71.enter(wl_output#2265) +[2618175.515] {Default Queue} discarded wl_surface#2183.enter(wl_output#2265) +[2618175.519] {Default Queue} discarded wl_surface#839.enter(wl_output#2265) +[2618175.523] {Default Queue} discarded wl_surface#1607.enter(wl_output#2265) +[2618175.527] {Default Queue} discarded wl_surface#1095.enter(wl_output#2265) +[2618175.531] {Default Queue} discarded wl_surface#1383.enter(wl_output#2265) +[2618175.535] {Default Queue} discarded wl_surface#487.enter(wl_output#2265) +[2618175.539] {Default Queue} discarded wl_surface#519.enter(wl_output#2265) +[2618175.543] {Default Queue} discarded wl_surface#2087.enter(wl_output#2265) +[2618175.547] {Default Queue} discarded wl_surface#295.enter(wl_output#2265) +[2618175.551] {Default Queue} discarded wl_surface#167.enter(wl_output#2265) +[2618175.555] {Default Queue} discarded wl_surface#1255.enter(wl_output#2265) +[2618175.559] {Default Queue} discarded wl_surface#679.enter(wl_output#2265) +[2618175.566] {Default Queue} discarded wl_surface#2119.enter(wl_output#2265) +[2618175.572] {Default Queue} wl_registry#2278.global(1, "wl_compositor", 6) +[2618175.577] {Default Queue} -> wl_registry#2278.bind(1, "wl_compositor", 1, new id [unknown]#2284) +[2618175.582] {Default Queue} wl_registry#2278.global(2, "wl_subcompositor", 1) +[2618175.587] {Default Queue} -> wl_registry#2278.bind(2, "wl_subcompositor", 1, new id [unknown]#2285) +[2618175.591] {Default Queue} wl_registry#2278.global(3, "xdg_wm_base", 6) +[2618175.596] {Default Queue} -> wl_registry#2278.bind(3, "xdg_wm_base", 1, new id [unknown]#2286) +[2618175.601] {Default Queue} wl_registry#2278.global(6, "zwlr_layer_shell_v1", 5) +[2618175.605] {Default Queue} wl_registry#2278.global(7, "ext_session_lock_manager_v1", 1) +[2618175.610] {Default Queue} wl_registry#2278.global(8, "wl_shm", 2) +[2618175.615] {Default Queue} -> wl_registry#2278.bind(8, "wl_shm", 1, new id [unknown]#2287) +[2618175.619] {Default Queue} -> wl_registry#2278.bind(8, "wl_shm", 1, new id [unknown]#2288) +[2618175.623] {Default Queue} -> wl_registry#2278.bind(8, "wl_shm", 1, new id [unknown]#2289) +[2618175.628] {Default Queue} wl_registry#2278.global(9, "zxdg_output_manager_v1", 3) +[2618175.632] {Default Queue} wl_registry#2278.global(10, "wp_fractional_scale_manager_v1", 1) +[2618175.636] {Default Queue} wl_registry#2278.global(11, "zwp_tablet_manager_v2", 1) +[2618175.641] {Default Queue} wl_registry#2278.global(12, "zwp_pointer_gestures_v1", 3) +[2618175.645] {Default Queue} wl_registry#2278.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618175.650] {Default Queue} -> wl_registry#2278.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2290) +[2618175.654] {Default Queue} wl_registry#2278.global(14, "zwp_pointer_constraints_v1", 1) +[2618175.661] {Default Queue} -> wl_registry#2278.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2291) +[2618175.665] {Default Queue} wl_registry#2278.global(15, "ext_idle_notifier_v1", 2) +[2618175.670] {Default Queue} wl_registry#2278.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618175.674] {Default Queue} wl_registry#2278.global(17, "wl_data_device_manager", 3) +[2618175.679] {Default Queue} -> wl_registry#2278.bind(17, "wl_data_device_manager", 2, new id [unknown]#2292) +[2618175.684] {Default Queue} -> wl_data_device_manager#2292.create_data_source(new id wl_data_source#2293) +[2618175.689] {Default Queue} -> wl_data_source#2293.offer("text/plain") +[2618175.693] {Default Queue} -> wl_data_source#2293.offer("text/plain;charset=utf-8") +[2618175.697] {Default Queue} -> wl_data_source#2293.offer("TEXT") +[2618175.702] {Default Queue} -> wl_data_source#2293.offer("STRING") +[2618175.706] {Default Queue} -> wl_data_source#2293.offer("UTF8_STRING") +[2618175.710] {Default Queue} wl_registry#2278.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618175.715] {Default Queue} -> wl_registry#2278.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2294) +[2618175.724] {Default Queue} -> zwp_primary_selection_device_manager_v1#2294.create_source(new id zwp_primary_selection_source_v1#2295) +[2618175.731] {Default Queue} -> zwp_primary_selection_source_v1#2295.offer("text/plain") +[2618175.736] {Default Queue} -> zwp_primary_selection_source_v1#2295.offer("text/plain;charset=utf-8") +[2618175.740] {Default Queue} -> zwp_primary_selection_source_v1#2295.offer("TEXT") +[2618175.745] {Default Queue} -> zwp_primary_selection_source_v1#2295.offer("STRING") +[2618175.749] {Default Queue} -> zwp_primary_selection_source_v1#2295.offer("UTF8_STRING") +[2618175.753] {Default Queue} wl_registry#2278.global(19, "zwlr_data_control_manager_v1", 2) +[2618175.757] {Default Queue} wl_registry#2278.global(20, "ext_data_control_manager_v1", 1) +[2618175.762] {Default Queue} wl_registry#2278.global(21, "wp_presentation", 2) +[2618175.766] {Default Queue} wl_registry#2278.global(22, "wp_security_context_manager_v1", 1) +[2618175.771] {Default Queue} wl_registry#2278.global(23, "zwp_text_input_manager_v3", 1) +[2618175.778] {Default Queue} wl_registry#2278.global(24, "zwp_input_method_manager_v2", 1) +[2618175.784] {Default Queue} wl_registry#2278.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618175.788] {Default Queue} wl_registry#2278.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618175.792] {Default Queue} wl_registry#2278.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618175.797] {Default Queue} wl_registry#2278.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618175.801] {Default Queue} wl_registry#2278.global(29, "ext_workspace_manager_v1", 1) +[2618175.806] {Default Queue} wl_registry#2278.global(30, "zwlr_output_manager_v1", 4) +[2618175.810] {Default Queue} wl_registry#2278.global(31, "zwlr_screencopy_manager_v1", 3) +[2618175.814] {Default Queue} wl_registry#2278.global(32, "wp_viewporter", 1) +[2618175.819] {Default Queue} wl_registry#2278.global(33, "zxdg_exporter_v2", 1) +[2618175.823] {Default Queue} wl_registry#2278.global(34, "zxdg_importer_v2", 1) +[2618175.829] {Default Queue} wl_registry#2278.global(36, "xdg_activation_v1", 1) +[2618175.833] {Default Queue} wl_registry#2278.global(37, "mutter_x11_interop", 1) +[2618175.837] {Default Queue} wl_registry#2278.global(38, "wl_seat", 9) +[2618175.842] {Default Queue} -> wl_registry#2278.bind(38, "wl_seat", 1, new id [unknown]#2296) +[2618175.846] {Default Queue} wl_registry#2278.global(39, "wp_cursor_shape_manager_v1", 2) +[2618175.851] {Default Queue} wl_registry#2278.global(40, "wl_output", 4) +[2618175.856] {Default Queue} -> wl_registry#2278.bind(40, "wl_output", 1, new id [unknown]#2297) +[2618175.868] {Default Queue} wl_callback#2279.done(0) +[2618175.872] {Default Queue} discarded wl_surface#2247.enter(wl_output#18) +[2618175.877] {Default Queue} discarded wl_surface#2247.enter(wl_output#57) +[2618175.881] {Default Queue} discarded wl_surface#2247.enter(wl_output#89) +[2618175.885] {Default Queue} discarded wl_surface#2247.enter(wl_output#121) +[2618175.889] {Default Queue} discarded wl_surface#2247.enter(wl_output#153) +[2618175.893] {Default Queue} discarded wl_surface#2247.enter(wl_output#185) +[2618175.897] {Default Queue} discarded wl_surface#2247.enter(wl_output#217) +[2618175.901] {Default Queue} discarded wl_surface#2247.enter(wl_output#249) +[2618175.905] {Default Queue} discarded wl_surface#2247.enter(wl_output#281) +[2618175.909] {Default Queue} discarded wl_surface#2247.enter(wl_output#313) +[2618175.913] {Default Queue} discarded wl_surface#2247.enter(wl_output#345) +[2618175.917] {Default Queue} discarded wl_surface#2247.enter(wl_output#377) +[2618175.921] {Default Queue} discarded wl_surface#2247.enter(wl_output#409) +[2618175.924] {Default Queue} discarded wl_surface#2247.enter(wl_output#441) +[2618175.928] {Default Queue} discarded wl_surface#2247.enter(wl_output#473) +[2618175.932] {Default Queue} discarded wl_surface#2247.enter(wl_output#505) +[2618175.936] {Default Queue} discarded wl_surface#2247.enter(wl_output#537) +[2618175.940] {Default Queue} discarded wl_surface#2247.enter(wl_output#569) +[2618175.944] {Default Queue} discarded wl_surface#2247.enter(wl_output#601) +[2618175.948] {Default Queue} discarded wl_surface#2247.enter(wl_output#633) +[2618175.952] {Default Queue} discarded wl_surface#2247.enter(wl_output#665) +[2618175.957] {Default Queue} discarded wl_surface#2247.enter(wl_output#697) +[2618175.960] {Default Queue} discarded wl_surface#2247.enter(wl_output#729) +[2618175.964] {Default Queue} discarded wl_surface#2247.enter(wl_output#761) +[2618175.968] {Default Queue} discarded wl_surface#2247.enter(wl_output#793) +[2618175.972] {Default Queue} discarded wl_surface#2247.enter(wl_output#825) +[2618175.976] {Default Queue} discarded wl_surface#2247.enter(wl_output#857) +[2618175.980] {Default Queue} discarded wl_surface#2247.enter(wl_output#889) +[2618175.984] {Default Queue} discarded wl_surface#2247.enter(wl_output#921) +[2618175.988] {Default Queue} discarded wl_surface#2247.enter(wl_output#953) +[2618175.992] {Default Queue} discarded wl_surface#2247.enter(wl_output#985) +[2618175.996] {Default Queue} discarded wl_surface#2247.enter(wl_output#1017) +[2618176.003] {Default Queue} discarded wl_surface#2247.enter(wl_output#1049) +[2618176.008] {Default Queue} discarded wl_surface#2247.enter(wl_output#1081) +[2618176.012] {Default Queue} discarded wl_surface#2247.enter(wl_output#1113) +[2618176.016] {Default Queue} discarded wl_surface#2247.enter(wl_output#1145) +[2618176.020] {Default Queue} discarded wl_surface#2247.enter(wl_output#1177) +[2618176.024] {Default Queue} discarded wl_surface#2247.enter(wl_output#1209) +[2618176.028] {Default Queue} discarded wl_surface#2247.enter(wl_output#1241) +[2618176.032] {Default Queue} discarded wl_surface#2247.enter(wl_output#1273) +[2618176.035] {Default Queue} discarded wl_surface#2247.enter(wl_output#1305) +[2618176.039] {Default Queue} discarded wl_surface#2247.enter(wl_output#1337) +[2618176.043] {Default Queue} discarded wl_surface#2247.enter(wl_output#1369) +[2618176.047] {Default Queue} discarded wl_surface#2247.enter(wl_output#1401) +[2618176.051] {Default Queue} discarded wl_surface#2247.enter(wl_output#1433) +[2618176.055] {Default Queue} discarded wl_surface#2247.enter(wl_output#1465) +[2618176.058] {Default Queue} discarded wl_surface#2247.enter(wl_output#1497) +[2618176.062] {Default Queue} discarded wl_surface#2247.enter(wl_output#1529) +[2618176.066] {Default Queue} discarded wl_surface#2247.enter(wl_output#1561) +[2618176.070] {Default Queue} discarded wl_surface#2247.enter(wl_output#1593) +[2618176.074] {Default Queue} discarded wl_surface#2247.enter(wl_output#1625) +[2618176.078] {Default Queue} discarded wl_surface#2247.enter(wl_output#1657) +[2618176.082] {Default Queue} discarded wl_surface#2247.enter(wl_output#1689) +[2618176.086] {Default Queue} discarded wl_surface#2247.enter(wl_output#1721) +[2618176.090] {Default Queue} discarded wl_surface#2247.enter(wl_output#1753) +[2618176.094] {Default Queue} discarded wl_surface#2247.enter(wl_output#1785) +[2618176.098] {Default Queue} discarded wl_surface#2247.enter(wl_output#1817) +[2618176.102] {Default Queue} discarded wl_surface#2247.enter(wl_output#1849) +[2618176.105] {Default Queue} discarded wl_surface#2247.enter(wl_output#1881) +[2618176.110] {Default Queue} discarded wl_surface#2247.enter(wl_output#1913) +[2618176.114] {Default Queue} discarded wl_surface#2247.enter(wl_output#1945) +[2618176.118] {Default Queue} discarded wl_surface#2247.enter(wl_output#1977) +[2618176.122] {Default Queue} discarded wl_surface#2247.enter(wl_output#2009) +[2618176.126] {Default Queue} discarded wl_surface#2247.enter(wl_output#2041) +[2618176.130] {Default Queue} discarded wl_surface#2247.enter(wl_output#2073) +[2618176.133] {Default Queue} discarded wl_surface#2247.enter(wl_output#2105) +[2618176.137] {Default Queue} discarded wl_surface#2247.enter(wl_output#2137) +[2618176.141] {Default Queue} discarded wl_surface#2247.enter(wl_output#2169) +[2618176.145] {Default Queue} discarded wl_surface#2247.enter(wl_output#2201) +[2618176.149] {Default Queue} discarded wl_surface#2247.enter(wl_output#2233) +[2618176.153] {Default Queue} discarded wl_surface#2247.enter(wl_output#2265) +[2618176.157] {Default Queue} -> wl_compositor#2252.create_surface(new id wl_surface#2279) +[2618176.162] {Default Queue} -> wl_subcompositor#2285.get_subsurface(new id wl_subsurface#2298, wl_surface#2279, wl_surface#2247) +[2618176.170] {Default Queue} -> wl_subsurface#2298.set_desync() +[2618176.174] {Default Queue} -> wl_subsurface#2298.set_position(-14, 0) +[2618176.179] {Default Queue} -> wl_subsurface#2298.place_above(wl_surface#2247) +[2618176.228] {Default Queue} -> wl_shm#2287.create_pool(new id wl_shm_pool#2299, fd 364, 128) +[2618176.235] {Default Queue} -> wl_shm#2287.create_pool(new id wl_shm_pool#2300, fd 365, 128) +[2618176.239] {Default Queue} -> wl_shm_pool#2299.create_buffer(new id wl_buffer#2301, 0, 16, 2, 64, 0) +[2618176.244] {Default Queue} -> wl_shm_pool#2300.create_buffer(new id wl_buffer#2302, 0, 16, 2, 64, 0) +[2618176.252] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618176.257] {Default Queue} -> wl_surface#2279.commit() +[2618176.262] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618176.271] {Default Queue} -> wl_surface#2279.commit() +[2618176.278] {Default Queue} -> wl_compositor#2284.create_region(new id wl_region#2303) +[2618176.282] {Default Queue} -> wl_compositor#2284.create_region(new id wl_region#2304) +[2618176.286] {Default Queue} -> wl_region#2303.subtract(0, 0, 30, 2) +[2618176.291] {Default Queue} -> wl_region#2303.add(0, 0, 0, 0) +[2618176.295] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618176.300] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618176.304] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618176.308] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618176.316] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618176.321] {Default Queue} -> wl_surface#2279.commit() +[2618176.357] {Default Queue} -> wl_shm#2289.create_pool(new id wl_shm_pool#2305, fd 368, 640) +[2618176.364] {Default Queue} -> wl_shm#2289.create_pool(new id wl_shm_pool#2306, fd 369, 640) +[2618176.369] {Default Queue} -> wl_shm_pool#2305.create_buffer(new id wl_buffer#2307, 0, 10, 16, 40, 0) +[2618176.373] {Default Queue} -> wl_shm_pool#2306.create_buffer(new id wl_buffer#2308, 0, 10, 16, 40, 0) +[2618176.381] {Default Queue} -> wl_compositor#2284.create_surface(new id wl_surface#2309) +[2618176.385] {Default Queue} -> wl_surface#2309.attach(wl_buffer#2307, 0, 0) +[2618176.390] {Default Queue} -> wl_surface#2309.commit() +[2618176.395] {Default Queue} -> wl_surface#2309.attach(wl_buffer#2307, 0, 0) +[2618176.399] {Default Queue} -> wl_surface#2309.commit() +[2618176.411] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618176.417] {Default Queue} -> wl_surface#2279.commit() +[2618176.424] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2310) +[2618176.428] {Default Queue} -> wl_display#1.sync(new id wl_callback#2311) +[2618179.208] {Display Queue} wl_display#1.delete_id(2311) +[2618179.224] {Default Queue} wl_keyboard#2280.keymap(1, fd 364, 68213) +[2618179.231] {Default Queue} wl_keyboard#2280.enter(566, wl_surface#19, array[0]) +[2618179.238] {Default Queue} wl_keyboard#2280.modifiers(566, 0, 0, 16, 0) +[2618179.243] {Default Queue} discarded wl_shm#2287.format(875709016) +[2618179.247] {Default Queue} discarded wl_shm#2287.format(1) +[2618179.251] {Default Queue} discarded wl_shm#2287.format(0) +[2618179.255] {Default Queue} discarded wl_shm#2287.format(875708993) +[2618179.259] {Default Queue} discarded wl_shm#2288.format(875709016) +[2618179.263] {Default Queue} discarded wl_shm#2288.format(1) +[2618179.267] {Default Queue} discarded wl_shm#2288.format(0) +[2618179.270] {Default Queue} discarded wl_shm#2288.format(875708993) +[2618179.274] {Default Queue} discarded wl_shm#2289.format(875709016) +[2618179.278] {Default Queue} discarded wl_shm#2289.format(1) +[2618179.282] {Default Queue} discarded wl_shm#2289.format(0) +[2618179.286] {Default Queue} discarded wl_shm#2289.format(875708993) +[2618179.290] {Default Queue} wl_seat#2296.capabilities(7) +[2618179.294] {Default Queue} -> wl_seat#2296.get_keyboard(new id wl_keyboard#2312) +[2618179.299] {Default Queue} -> wl_seat#2296.get_pointer(new id wl_pointer#2313) +[2618179.303] {Default Queue} -> wl_data_device_manager#2292.get_data_device(new id wl_data_device#2314, wl_seat#2296) +[2618179.308] {Default Queue} -> zwp_primary_selection_device_manager_v1#2294.get_device(new id zwp_primary_selection_device_v1#2315, wl_seat#2296) +[2618179.316] {Default Queue} wl_output#2297.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618179.322] {Default Queue} wl_output#2297.mode(3, 1280, 800, 60000) +[2618179.328] {Default Queue} discarded wl_surface#3.enter(wl_output#2297) +[2618179.334] {Default Queue} discarded wl_surface#999.enter(wl_output#2297) +[2618179.339] {Default Queue} discarded wl_surface#1191.enter(wl_output#2297) +[2618179.343] {Default Queue} discarded wl_surface#1159.enter(wl_output#2297) +[2618179.347] {Default Queue} discarded wl_surface#1703.enter(wl_output#2297) +[2618179.351] {Default Queue} discarded wl_surface#2215.enter(wl_output#2297) +[2618179.359] {Default Queue} discarded wl_surface#423.enter(wl_output#2297) +[2618179.368] {Default Queue} discarded wl_surface#1447.enter(wl_output#2297) +[2618179.372] {Default Queue} discarded wl_surface#2023.enter(wl_output#2297) +[2618179.376] {Default Queue} discarded wl_surface#1639.enter(wl_output#2297) +[2618179.380] {Default Queue} discarded wl_surface#1319.enter(wl_output#2297) +[2618179.384] {Default Queue} discarded wl_surface#1127.enter(wl_output#2297) +[2618179.388] {Default Queue} discarded wl_surface#2151.enter(wl_output#2297) +[2618179.392] {Default Queue} discarded wl_surface#1063.enter(wl_output#2297) +[2618179.396] {Default Queue} discarded wl_surface#455.enter(wl_output#2297) +[2618179.400] {Default Queue} discarded wl_surface#1575.enter(wl_output#2297) +[2618179.404] {Default Queue} discarded wl_surface#1799.enter(wl_output#2297) +[2618179.407] {Default Queue} discarded wl_surface#1415.enter(wl_output#2297) +[2618179.411] {Default Queue} discarded wl_surface#1831.enter(wl_output#2297) +[2618179.415] {Default Queue} discarded wl_surface#903.enter(wl_output#2297) +[2618179.419] {Default Queue} discarded wl_surface#775.enter(wl_output#2297) +[2618179.423] {Default Queue} discarded wl_surface#1991.enter(wl_output#2297) +[2618179.427] {Default Queue} discarded wl_surface#1543.enter(wl_output#2297) +[2618179.431] {Default Queue} discarded wl_surface#135.enter(wl_output#2297) +[2618179.435] {Default Queue} discarded wl_surface#1287.enter(wl_output#2297) +[2618179.438] {Default Queue} discarded wl_surface#1031.enter(wl_output#2297) +[2618179.442] {Default Queue} discarded wl_surface#615.enter(wl_output#2297) +[2618179.446] {Default Queue} discarded wl_surface#231.enter(wl_output#2297) +[2618179.450] {Default Queue} discarded wl_surface#1863.enter(wl_output#2297) +[2618179.454] {Default Queue} discarded wl_surface#359.enter(wl_output#2297) +[2618179.458] {Default Queue} discarded wl_surface#583.enter(wl_output#2297) +[2618179.462] {Default Queue} discarded wl_surface#743.enter(wl_output#2297) +[2618179.465] {Default Queue} discarded wl_surface#967.enter(wl_output#2297) +[2618179.470] {Default Queue} discarded wl_surface#103.enter(wl_output#2297) +[2618179.473] {Default Queue} discarded wl_surface#327.enter(wl_output#2297) +[2618179.477] {Default Queue} discarded wl_surface#43.enter(wl_output#2297) +[2618179.481] {Default Queue} discarded wl_surface#2247.enter(wl_output#2297) +[2618179.485] {Default Queue} discarded wl_surface#807.enter(wl_output#2297) +[2618179.489] {Default Queue} discarded wl_surface#19.enter(wl_output#2297) +[2618179.493] {Default Queue} discarded wl_surface#1511.enter(wl_output#2297) +[2618179.497] {Default Queue} discarded wl_surface#199.enter(wl_output#2297) +[2618179.501] {Default Queue} discarded wl_surface#391.enter(wl_output#2297) +[2618179.504] {Default Queue} discarded wl_surface#935.enter(wl_output#2297) +[2618179.509] {Default Queue} discarded wl_surface#1671.enter(wl_output#2297) +[2618179.513] {Default Queue} discarded wl_surface#1351.enter(wl_output#2297) +[2618179.516] {Default Queue} discarded wl_surface#711.enter(wl_output#2297) +[2618179.520] {Default Queue} discarded wl_surface#1223.enter(wl_output#2297) +[2618179.524] {Default Queue} discarded wl_surface#1927.enter(wl_output#2297) +[2618179.528] {Default Queue} discarded wl_surface#871.enter(wl_output#2297) +[2618179.532] {Default Queue} discarded wl_surface#1895.enter(wl_output#2297) +[2618179.536] {Default Queue} discarded wl_surface#263.enter(wl_output#2297) +[2618179.540] {Default Queue} discarded wl_surface#551.enter(wl_output#2297) +[2618179.543] {Default Queue} discarded wl_surface#1735.enter(wl_output#2297) +[2618179.547] {Default Queue} discarded wl_surface#1479.enter(wl_output#2297) +[2618179.551] {Default Queue} discarded wl_surface#1772.enter(wl_output#2297) +[2618179.555] {Default Queue} discarded wl_surface#1959.enter(wl_output#2297) +[2618179.559] {Default Queue} discarded wl_surface#647.enter(wl_output#2297) +[2618179.563] {Default Queue} discarded wl_surface#2055.enter(wl_output#2297) +[2618179.567] {Default Queue} discarded wl_surface#71.enter(wl_output#2297) +[2618179.574] {Default Queue} discarded wl_surface#2183.enter(wl_output#2297) +[2618179.580] {Default Queue} discarded wl_surface#839.enter(wl_output#2297) +[2618179.584] {Default Queue} discarded wl_surface#1607.enter(wl_output#2297) +[2618179.588] {Default Queue} discarded wl_surface#1095.enter(wl_output#2297) +[2618179.593] {Default Queue} discarded wl_surface#1383.enter(wl_output#2297) +[2618179.596] {Default Queue} discarded wl_surface#487.enter(wl_output#2297) +[2618179.600] {Default Queue} discarded wl_surface#519.enter(wl_output#2297) +[2618179.604] {Default Queue} discarded wl_surface#2087.enter(wl_output#2297) +[2618179.608] {Default Queue} discarded wl_surface#295.enter(wl_output#2297) +[2618179.612] {Default Queue} discarded wl_surface#167.enter(wl_output#2297) +[2618179.616] {Default Queue} discarded wl_surface#1255.enter(wl_output#2297) +[2618179.620] {Default Queue} discarded wl_surface#679.enter(wl_output#2297) +[2618179.623] {Default Queue} discarded wl_surface#2119.enter(wl_output#2297) +[2618179.627] {Default Queue} wl_registry#2310.global(1, "wl_compositor", 6) +[2618179.633] {Default Queue} -> wl_registry#2310.bind(1, "wl_compositor", 1, new id [unknown]#2316) +[2618179.638] {Default Queue} wl_registry#2310.global(2, "wl_subcompositor", 1) +[2618179.643] {Default Queue} -> wl_registry#2310.bind(2, "wl_subcompositor", 1, new id [unknown]#2317) +[2618179.648] {Default Queue} wl_registry#2310.global(3, "xdg_wm_base", 6) +[2618179.652] {Default Queue} -> wl_registry#2310.bind(3, "xdg_wm_base", 1, new id [unknown]#2318) +[2618179.657] {Default Queue} wl_registry#2310.global(6, "zwlr_layer_shell_v1", 5) +[2618179.661] {Default Queue} wl_registry#2310.global(7, "ext_session_lock_manager_v1", 1) +[2618179.666] {Default Queue} wl_registry#2310.global(8, "wl_shm", 2) +[2618179.670] {Default Queue} -> wl_registry#2310.bind(8, "wl_shm", 1, new id [unknown]#2319) +[2618179.677] {Default Queue} -> wl_registry#2310.bind(8, "wl_shm", 1, new id [unknown]#2320) +[2618179.681] {Default Queue} -> wl_registry#2310.bind(8, "wl_shm", 1, new id [unknown]#2321) +[2618179.686] {Default Queue} wl_registry#2310.global(9, "zxdg_output_manager_v1", 3) +[2618179.690] {Default Queue} wl_registry#2310.global(10, "wp_fractional_scale_manager_v1", 1) +[2618179.694] {Default Queue} wl_registry#2310.global(11, "zwp_tablet_manager_v2", 1) +[2618179.699] {Default Queue} wl_registry#2310.global(12, "zwp_pointer_gestures_v1", 3) +[2618179.703] {Default Queue} wl_registry#2310.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618179.707] {Default Queue} -> wl_registry#2310.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2322) +[2618179.712] {Default Queue} wl_registry#2310.global(14, "zwp_pointer_constraints_v1", 1) +[2618179.716] {Default Queue} -> wl_registry#2310.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2323) +[2618179.721] {Default Queue} wl_registry#2310.global(15, "ext_idle_notifier_v1", 2) +[2618179.725] {Default Queue} wl_registry#2310.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618179.729] {Default Queue} wl_registry#2310.global(17, "wl_data_device_manager", 3) +[2618179.734] {Default Queue} -> wl_registry#2310.bind(17, "wl_data_device_manager", 2, new id [unknown]#2324) +[2618179.739] {Default Queue} -> wl_data_device_manager#2324.create_data_source(new id wl_data_source#2325) +[2618179.743] {Default Queue} -> wl_data_source#2325.offer("text/plain") +[2618179.748] {Default Queue} -> wl_data_source#2325.offer("text/plain;charset=utf-8") +[2618179.752] {Default Queue} -> wl_data_source#2325.offer("TEXT") +[2618179.756] {Default Queue} -> wl_data_source#2325.offer("STRING") +[2618179.761] {Default Queue} -> wl_data_source#2325.offer("UTF8_STRING") +[2618179.765] {Default Queue} wl_registry#2310.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618179.770] {Default Queue} -> wl_registry#2310.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2326) +[2618179.778] {Default Queue} -> zwp_primary_selection_device_manager_v1#2326.create_source(new id zwp_primary_selection_source_v1#2327) +[2618179.789] {Default Queue} -> zwp_primary_selection_source_v1#2327.offer("text/plain") +[2618179.795] {Default Queue} -> zwp_primary_selection_source_v1#2327.offer("text/plain;charset=utf-8") +[2618179.800] {Default Queue} -> zwp_primary_selection_source_v1#2327.offer("TEXT") +[2618179.804] {Default Queue} -> zwp_primary_selection_source_v1#2327.offer("STRING") +[2618179.808] {Default Queue} -> zwp_primary_selection_source_v1#2327.offer("UTF8_STRING") +[2618179.812] {Default Queue} wl_registry#2310.global(19, "zwlr_data_control_manager_v1", 2) +[2618179.816] {Default Queue} wl_registry#2310.global(20, "ext_data_control_manager_v1", 1) +[2618179.821] {Default Queue} wl_registry#2310.global(21, "wp_presentation", 2) +[2618179.825] {Default Queue} wl_registry#2310.global(22, "wp_security_context_manager_v1", 1) +[2618179.830] {Default Queue} wl_registry#2310.global(23, "zwp_text_input_manager_v3", 1) +[2618179.834] {Default Queue} wl_registry#2310.global(24, "zwp_input_method_manager_v2", 1) +[2618179.839] {Default Queue} wl_registry#2310.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618179.843] {Default Queue} wl_registry#2310.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618179.847] {Default Queue} wl_registry#2310.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618179.852] {Default Queue} wl_registry#2310.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618179.856] {Default Queue} wl_registry#2310.global(29, "ext_workspace_manager_v1", 1) +[2618179.867] {Default Queue} wl_registry#2310.global(30, "zwlr_output_manager_v1", 4) +[2618179.872] {Default Queue} wl_registry#2310.global(31, "zwlr_screencopy_manager_v1", 3) +[2618179.877] {Default Queue} wl_registry#2310.global(32, "wp_viewporter", 1) +[2618179.881] {Default Queue} wl_registry#2310.global(33, "zxdg_exporter_v2", 1) +[2618179.885] {Default Queue} wl_registry#2310.global(34, "zxdg_importer_v2", 1) +[2618179.889] {Default Queue} wl_registry#2310.global(36, "xdg_activation_v1", 1) +[2618179.894] {Default Queue} wl_registry#2310.global(37, "mutter_x11_interop", 1) +[2618179.898] {Default Queue} wl_registry#2310.global(38, "wl_seat", 9) +[2618179.903] {Default Queue} -> wl_registry#2310.bind(38, "wl_seat", 1, new id [unknown]#2328) +[2618179.907] {Default Queue} wl_registry#2310.global(39, "wp_cursor_shape_manager_v1", 2) +[2618179.911] {Default Queue} wl_registry#2310.global(40, "wl_output", 4) +[2618179.916] {Default Queue} -> wl_registry#2310.bind(40, "wl_output", 1, new id [unknown]#2329) +[2618179.920] {Default Queue} wl_callback#2311.done(0) +[2618179.925] {Default Queue} discarded wl_surface#2279.enter(wl_output#18) +[2618179.929] {Default Queue} discarded wl_surface#2279.enter(wl_output#57) +[2618179.933] {Default Queue} discarded wl_surface#2279.enter(wl_output#89) +[2618179.937] {Default Queue} discarded wl_surface#2279.enter(wl_output#121) +[2618179.941] {Default Queue} discarded wl_surface#2279.enter(wl_output#153) +[2618179.945] {Default Queue} discarded wl_surface#2279.enter(wl_output#185) +[2618179.949] {Default Queue} discarded wl_surface#2279.enter(wl_output#217) +[2618179.953] {Default Queue} discarded wl_surface#2279.enter(wl_output#249) +[2618179.957] {Default Queue} discarded wl_surface#2279.enter(wl_output#281) +[2618179.961] {Default Queue} discarded wl_surface#2279.enter(wl_output#313) +[2618179.964] {Default Queue} discarded wl_surface#2279.enter(wl_output#345) +[2618179.968] {Default Queue} discarded wl_surface#2279.enter(wl_output#377) +[2618179.972] {Default Queue} discarded wl_surface#2279.enter(wl_output#409) +[2618179.976] {Default Queue} discarded wl_surface#2279.enter(wl_output#441) +[2618179.980] {Default Queue} discarded wl_surface#2279.enter(wl_output#473) +[2618179.984] {Default Queue} discarded wl_surface#2279.enter(wl_output#505) +[2618179.988] {Default Queue} discarded wl_surface#2279.enter(wl_output#537) +[2618179.991] {Default Queue} discarded wl_surface#2279.enter(wl_output#569) +[2618179.995] {Default Queue} discarded wl_surface#2279.enter(wl_output#601) +[2618179.999] {Default Queue} discarded wl_surface#2279.enter(wl_output#633) +[2618180.007] {Default Queue} discarded wl_surface#2279.enter(wl_output#665) +[2618180.012] {Default Queue} discarded wl_surface#2279.enter(wl_output#697) +[2618180.016] {Default Queue} discarded wl_surface#2279.enter(wl_output#729) +[2618180.020] {Default Queue} discarded wl_surface#2279.enter(wl_output#761) +[2618180.024] {Default Queue} discarded wl_surface#2279.enter(wl_output#793) +[2618180.028] {Default Queue} discarded wl_surface#2279.enter(wl_output#825) +[2618180.032] {Default Queue} discarded wl_surface#2279.enter(wl_output#857) +[2618180.036] {Default Queue} discarded wl_surface#2279.enter(wl_output#889) +[2618180.040] {Default Queue} discarded wl_surface#2279.enter(wl_output#921) +[2618180.044] {Default Queue} discarded wl_surface#2279.enter(wl_output#953) +[2618180.048] {Default Queue} discarded wl_surface#2279.enter(wl_output#985) +[2618180.052] {Default Queue} discarded wl_surface#2279.enter(wl_output#1017) +[2618180.055] {Default Queue} discarded wl_surface#2279.enter(wl_output#1049) +[2618180.059] {Default Queue} discarded wl_surface#2279.enter(wl_output#1081) +[2618180.063] {Default Queue} discarded wl_surface#2279.enter(wl_output#1113) +[2618180.067] {Default Queue} discarded wl_surface#2279.enter(wl_output#1145) +[2618180.071] {Default Queue} discarded wl_surface#2279.enter(wl_output#1177) +[2618180.075] {Default Queue} discarded wl_surface#2279.enter(wl_output#1209) +[2618180.079] {Default Queue} discarded wl_surface#2279.enter(wl_output#1241) +[2618180.084] {Default Queue} discarded wl_surface#2279.enter(wl_output#1273) +[2618180.088] {Default Queue} discarded wl_surface#2279.enter(wl_output#1305) +[2618180.092] {Default Queue} discarded wl_surface#2279.enter(wl_output#1337) +[2618180.096] {Default Queue} discarded wl_surface#2279.enter(wl_output#1369) +[2618180.100] {Default Queue} discarded wl_surface#2279.enter(wl_output#1401) +[2618180.104] {Default Queue} discarded wl_surface#2279.enter(wl_output#1433) +[2618180.108] {Default Queue} discarded wl_surface#2279.enter(wl_output#1465) +[2618180.112] {Default Queue} discarded wl_surface#2279.enter(wl_output#1497) +[2618180.116] {Default Queue} discarded wl_surface#2279.enter(wl_output#1529) +[2618180.120] {Default Queue} discarded wl_surface#2279.enter(wl_output#1561) +[2618180.124] {Default Queue} discarded wl_surface#2279.enter(wl_output#1593) +[2618180.128] {Default Queue} discarded wl_surface#2279.enter(wl_output#1625) +[2618180.132] {Default Queue} discarded wl_surface#2279.enter(wl_output#1657) +[2618180.136] {Default Queue} discarded wl_surface#2279.enter(wl_output#1689) +[2618180.140] {Default Queue} discarded wl_surface#2279.enter(wl_output#1721) +[2618180.144] {Default Queue} discarded wl_surface#2279.enter(wl_output#1753) +[2618180.147] {Default Queue} discarded wl_surface#2279.enter(wl_output#1785) +[2618180.151] {Default Queue} discarded wl_surface#2279.enter(wl_output#1817) +[2618180.155] {Default Queue} discarded wl_surface#2279.enter(wl_output#1849) +[2618180.159] {Default Queue} discarded wl_surface#2279.enter(wl_output#1881) +[2618180.163] {Default Queue} discarded wl_surface#2279.enter(wl_output#1913) +[2618180.167] {Default Queue} discarded wl_surface#2279.enter(wl_output#1945) +[2618180.171] {Default Queue} discarded wl_surface#2279.enter(wl_output#1977) +[2618180.175] {Default Queue} discarded wl_surface#2279.enter(wl_output#2009) +[2618180.178] {Default Queue} discarded wl_surface#2279.enter(wl_output#2041) +[2618180.182] {Default Queue} discarded wl_surface#2279.enter(wl_output#2073) +[2618180.186] {Default Queue} discarded wl_surface#2279.enter(wl_output#2105) +[2618180.190] {Default Queue} discarded wl_surface#2279.enter(wl_output#2137) +[2618180.194] {Default Queue} discarded wl_surface#2279.enter(wl_output#2169) +[2618180.198] {Default Queue} discarded wl_surface#2279.enter(wl_output#2201) +[2618180.202] {Default Queue} discarded wl_surface#2279.enter(wl_output#2233) +[2618180.207] {Default Queue} discarded wl_surface#2279.enter(wl_output#2265) +[2618180.211] {Default Queue} discarded wl_surface#2279.enter(wl_output#2297) +[2618180.215] {Default Queue} -> wl_compositor#2252.create_surface(new id wl_surface#2311) +[2618180.222] {Default Queue} -> wl_subcompositor#2317.get_subsurface(new id wl_subsurface#2330, wl_surface#2311, wl_surface#2247) +[2618180.232] {Default Queue} -> wl_subsurface#2330.set_desync() +[2618180.237] {Default Queue} -> wl_subsurface#2330.set_position(0, 0) +[2618180.241] {Default Queue} -> wl_subsurface#2330.place_above(wl_surface#2247) +[2618180.287] {Default Queue} -> wl_shm#2319.create_pool(new id wl_shm_pool#2331, fd 369, 16) +[2618180.295] {Default Queue} -> wl_shm#2319.create_pool(new id wl_shm_pool#2332, fd 370, 16) +[2618180.300] {Default Queue} -> wl_shm_pool#2331.create_buffer(new id wl_buffer#2333, 0, 2, 2, 8, 0) +[2618180.304] {Default Queue} -> wl_shm_pool#2332.create_buffer(new id wl_buffer#2334, 0, 2, 2, 8, 0) +[2618180.313] {Default Queue} -> wl_surface#2311.attach(wl_buffer#2333, 0, 0) +[2618180.317] {Default Queue} -> wl_surface#2311.commit() +[2618180.323] {Default Queue} -> wl_surface#2311.attach(wl_buffer#2333, 0, 0) +[2618180.328] {Default Queue} -> wl_surface#2311.commit() +[2618180.332] {Default Queue} -> wl_compositor#2316.create_region(new id wl_region#2335) +[2618180.336] {Default Queue} -> wl_compositor#2316.create_region(new id wl_region#2336) +[2618180.341] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 2) +[2618180.345] {Default Queue} -> wl_region#2335.add(0, 0, 0, 0) +[2618180.349] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618180.354] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618180.358] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618180.362] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618180.372] {Default Queue} -> wl_surface#2311.attach(wl_buffer#2333, 0, 0) +[2618180.376] {Default Queue} -> wl_surface#2311.commit() +[2618180.412] {Default Queue} -> wl_shm#2321.create_pool(new id wl_shm_pool#2337, fd 373, 640) +[2618180.419] {Default Queue} -> wl_shm#2321.create_pool(new id wl_shm_pool#2338, fd 374, 640) +[2618180.424] {Default Queue} -> wl_shm_pool#2337.create_buffer(new id wl_buffer#2339, 0, 10, 16, 40, 0) +[2618180.429] {Default Queue} -> wl_shm_pool#2338.create_buffer(new id wl_buffer#2340, 0, 10, 16, 40, 0) +[2618180.436] {Default Queue} -> wl_compositor#2316.create_surface(new id wl_surface#2341) +[2618180.441] {Default Queue} -> wl_surface#2341.attach(wl_buffer#2339, 0, 0) +[2618180.445] {Default Queue} -> wl_surface#2341.commit() +[2618180.451] {Default Queue} -> wl_surface#2341.attach(wl_buffer#2339, 0, 0) +[2618180.455] {Default Queue} -> wl_surface#2341.commit() +[2618180.467] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618180.473] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618180.478] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618180.485] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) +[2618180.490] {Default Queue} -> wl_subsurface#2298.set_position(-14, 0) +[2618180.495] {Default Queue} -> wl_region#2303.subtract(0, 0, 30, 2) +[2618180.499] {Default Queue} -> wl_region#2303.add(0, 0, 0, 0) +[2618180.504] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618180.508] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618180.513] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618180.523] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) +[2618180.532] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) +[2618180.539] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618180.546] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618180.562] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) +[2618180.570] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) +[2618180.576] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618180.582] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618180.595] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) +[2618180.600] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) +[2618180.609] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618180.616] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618180.622] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) +[2618180.626] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) +[2618180.631] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618180.635] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618180.641] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) +[2618180.645] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) +[2618180.650] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618180.654] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618180.674] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) +[2618180.680] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) +[2618180.684] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618180.688] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618180.694] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) +[2618180.698] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) +[2618180.702] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618180.706] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618180.711] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) +[2618180.716] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) +[2618180.720] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618180.724] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618180.729] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) +[2618180.733] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) +[2618180.738] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618180.742] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618180.754] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) +[2618180.759] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) +[2618180.764] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618180.768] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618180.772] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) +[2618180.777] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) +[2618180.781] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618180.785] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618180.789] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) +[2618180.794] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) +[2618180.798] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618180.802] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618180.807] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) +[2618180.812] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) +[2618180.816] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618180.820] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618180.825] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618180.830] {Default Queue} -> wl_surface#2279.commit() +[2618180.836] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618180.840] {Default Queue} -> wl_surface#2279.commit() +[2618180.845] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 2) +[2618180.849] {Default Queue} -> wl_subsurface#2330.set_position(0, 20) +[2618180.853] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618180.858] {Default Queue} -> wl_region#2335.add(0, 0, 0, 0) +[2618180.864] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618180.869] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618180.877] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618180.884] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618180.889] {Default Queue} -> wl_region#2335.add(0, 0, 2, 0) +[2618180.896] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618180.902] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618180.912] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618180.918] {Default Queue} -> wl_region#2335.add(0, 0, 2, 0) +[2618180.922] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618180.927] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618180.931] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618180.936] {Default Queue} -> wl_region#2335.add(0, 0, 2, 0) +[2618180.941] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618180.945] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618180.950] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618180.954] {Default Queue} -> wl_region#2335.add(0, 0, 2, 0) +[2618180.958] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618180.962] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618180.967] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618180.971] {Default Queue} -> wl_region#2335.add(0, 0, 2, 0) +[2618180.976] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618180.979] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618180.984] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618180.989] {Default Queue} -> wl_region#2335.add(0, 0, 2, 0) +[2618180.993] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618180.997] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.006] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.011] {Default Queue} -> wl_region#2335.add(0, 0, 2, 0) +[2618181.015] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.019] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.024] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.028] {Default Queue} -> wl_region#2335.add(0, 0, 2, 0) +[2618181.032] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.036] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.041] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.045] {Default Queue} -> wl_region#2335.add(0, 0, 2, 0) +[2618181.049] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.054] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.058] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.063] {Default Queue} -> wl_region#2335.add(0, 0, 2, 0) +[2618181.067] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.071] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.075] {Default Queue} -> wl_surface#2311.attach(wl_buffer#2333, 0, 0) +[2618181.080] {Default Queue} -> wl_surface#2311.commit() +[2618181.086] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618181.091] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618181.099] {Default Queue} -> wl_region#2175.subtract(0, 0, 2, 2) +[2618181.105] {Default Queue} -> wl_subsurface#2170.set_position(3, 3) +[2618181.109] {Default Queue} -> wl_region#2175.subtract(0, 0, 5, 5) +[2618181.114] {Default Queue} -> wl_region#2175.add(0, 0, 0, 0) +[2618181.118] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) +[2618181.122] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) +[2618181.126] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618181.132] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618181.136] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618181.140] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618181.144] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) +[2618181.148] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) +[2618181.155] {Default Queue} -> wl_region#2175.subtract(0, 0, 5, 5) +[2618181.162] {Default Queue} -> wl_region#2175.add(0, 0, 0, 0) +[2618181.168] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) +[2618181.172] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) +[2618181.178] {Default Queue} -> wl_surface#2151.attach(wl_buffer#2173, 0, 0) +[2618181.182] {Default Queue} -> wl_surface#2151.commit() +[2618181.190] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618181.194] {Default Queue} -> wl_surface#2279.commit() +[2618181.199] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 2) +[2618181.203] {Default Queue} -> wl_subsurface#2330.set_position(0, 20) +[2618181.207] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.211] {Default Queue} -> wl_region#2335.add(0, 0, 2, 0) +[2618181.216] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.220] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.225] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618181.230] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.235] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618181.239] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.251] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.262] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.267] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618181.271] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.276] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.280] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.285] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618181.289] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.293] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.298] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.302] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618181.306] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.311] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.316] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.320] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618181.324] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.328] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.334] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.340] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618181.351] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.358] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.373] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.381] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618181.388] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.394] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.400] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.406] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618181.412] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.417] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.423] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.429] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618181.435] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.439] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.445] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.451] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618181.457] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.463] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.483] {Default Queue} -> wl_surface#2311.attach(wl_buffer#2333, 0, 0) +[2618181.496] {Default Queue} -> wl_surface#2311.commit() +[2618181.507] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618181.513] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618181.522] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618181.527] {Default Queue} -> wl_surface#2279.commit() +[2618181.531] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 2) +[2618181.536] {Default Queue} -> wl_subsurface#2330.set_position(0, 20) +[2618181.540] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.546] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618181.552] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.558] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.564] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618181.574] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.581] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618181.587] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.592] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.603] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.607] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618181.612] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.618] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.625] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.631] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618181.637] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.641] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.646] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.650] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618181.655] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.661] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.668] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.674] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618181.681] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.686] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.692] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.697] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618181.701] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.705] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.787] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.793] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618181.798] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.803] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.812] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618181.817] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618181.826] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.831] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618181.836] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.840] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.845] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.849] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618181.853] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.857] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.873] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.877] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618181.881] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.886] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.895] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618181.902] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618181.906] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618181.910] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618181.915] {Default Queue} -> wl_surface#2311.attach(wl_buffer#2333, 0, 0) +[2618181.920] {Default Queue} -> wl_surface#2311.commit() +[2618181.926] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618181.931] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618181.940] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2342) +[2618181.945] {Default Queue} -> wl_display#1.sync(new id wl_callback#2343) +[2618184.241] {Default Queue} wl_keyboard#2312.keymap(1, fd 369, 68213) +[2618184.253] {Default Queue} wl_keyboard#2312.enter(566, wl_surface#19, array[0]) +[2618184.260] {Default Queue} wl_keyboard#2312.modifiers(566, 0, 0, 16, 0) +[2618184.265] {Default Queue} discarded wl_shm#2319.format(875709016) +[2618184.270] {Default Queue} discarded wl_shm#2319.format(1) +[2618184.274] {Default Queue} discarded wl_shm#2319.format(0) +[2618184.278] {Default Queue} discarded wl_shm#2319.format(875708993) +[2618184.282] {Default Queue} discarded wl_shm#2320.format(875709016) +[2618184.286] {Default Queue} discarded wl_shm#2320.format(1) +[2618184.290] {Default Queue} discarded wl_shm#2320.format(0) +[2618184.294] {Default Queue} discarded wl_shm#2320.format(875708993) +[2618184.298] {Default Queue} discarded wl_shm#2321.format(875709016) +[2618184.302] {Default Queue} discarded wl_shm#2321.format(1) +[2618184.306] {Default Queue} discarded wl_shm#2321.format(0) +[2618184.310] {Default Queue} discarded wl_shm#2321.format(875708993) +[2618184.314] {Default Queue} wl_seat#2328.capabilities(7) +[2618184.319] {Default Queue} -> wl_seat#2328.get_keyboard(new id wl_keyboard#2344) +[2618184.323] {Default Queue} -> wl_seat#2328.get_pointer(new id wl_pointer#2345) +[2618184.328] {Default Queue} -> wl_data_device_manager#2324.get_data_device(new id wl_data_device#2346, wl_seat#2328) +[2618184.333] {Default Queue} -> zwp_primary_selection_device_manager_v1#2326.get_device(new id zwp_primary_selection_device_v1#2347, wl_seat#2328) +[2618184.343] {Default Queue} wl_output#2329.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618184.348] {Default Queue} wl_output#2329.mode(3, 1280, 800, 60000) +[2618184.352] {Default Queue} discarded wl_surface#3.enter(wl_output#2329) +[2618184.356] {Default Queue} discarded wl_surface#999.enter(wl_output#2329) +[2618184.360] {Default Queue} discarded wl_surface#1191.enter(wl_output#2329) +[2618184.364] {Default Queue} discarded wl_surface#1159.enter(wl_output#2329) +[2618184.368] {Default Queue} discarded wl_surface#1703.enter(wl_output#2329) +[2618184.372] {Default Queue} discarded wl_surface#2215.enter(wl_output#2329) +[2618184.376] {Default Queue} discarded wl_surface#423.enter(wl_output#2329) +[2618184.380] {Default Queue} discarded wl_surface#1447.enter(wl_output#2329) +[2618184.384] {Default Queue} discarded wl_surface#2023.enter(wl_output#2329) +[2618184.388] {Default Queue} discarded wl_surface#1639.enter(wl_output#2329) +[2618184.391] {Default Queue} discarded wl_surface#1319.enter(wl_output#2329) +[2618184.395] {Default Queue} discarded wl_surface#1127.enter(wl_output#2329) +[2618184.399] {Default Queue} discarded wl_surface#2151.enter(wl_output#2329) +[2618184.403] {Default Queue} discarded wl_surface#1063.enter(wl_output#2329) +[2618184.408] {Default Queue} discarded wl_surface#455.enter(wl_output#2329) +[2618184.412] {Default Queue} discarded wl_surface#1575.enter(wl_output#2329) +[2618184.416] {Default Queue} discarded wl_surface#1799.enter(wl_output#2329) +[2618184.419] {Default Queue} discarded wl_surface#1415.enter(wl_output#2329) +[2618184.423] {Default Queue} discarded wl_surface#2279.enter(wl_output#2329) +[2618184.428] {Default Queue} discarded wl_surface#1831.enter(wl_output#2329) +[2618184.432] {Default Queue} discarded wl_surface#903.enter(wl_output#2329) +[2618184.441] {Default Queue} discarded wl_surface#775.enter(wl_output#2329) +[2618184.447] {Default Queue} discarded wl_surface#1991.enter(wl_output#2329) +[2618184.452] {Default Queue} discarded wl_surface#1543.enter(wl_output#2329) +[2618184.456] {Default Queue} discarded wl_surface#135.enter(wl_output#2329) +[2618184.460] {Default Queue} discarded wl_surface#1287.enter(wl_output#2329) +[2618184.464] {Default Queue} discarded wl_surface#1031.enter(wl_output#2329) +[2618184.468] {Default Queue} discarded wl_surface#615.enter(wl_output#2329) +[2618184.472] {Default Queue} discarded wl_surface#231.enter(wl_output#2329) +[2618184.476] {Default Queue} discarded wl_surface#1863.enter(wl_output#2329) +[2618184.479] {Default Queue} discarded wl_surface#359.enter(wl_output#2329) +[2618184.483] {Default Queue} discarded wl_surface#583.enter(wl_output#2329) +[2618184.487] {Default Queue} discarded wl_surface#743.enter(wl_output#2329) +[2618184.492] {Default Queue} discarded wl_surface#967.enter(wl_output#2329) +[2618184.495] {Default Queue} discarded wl_surface#103.enter(wl_output#2329) +[2618184.499] {Default Queue} discarded wl_surface#327.enter(wl_output#2329) +[2618184.503] {Default Queue} discarded wl_surface#43.enter(wl_output#2329) +[2618184.507] {Default Queue} discarded wl_surface#2247.enter(wl_output#2329) +[2618184.511] {Default Queue} discarded wl_surface#807.enter(wl_output#2329) +[2618184.515] {Default Queue} discarded wl_surface#19.enter(wl_output#2329) +[2618184.519] {Default Queue} discarded wl_surface#1511.enter(wl_output#2329) +[2618184.523] {Default Queue} discarded wl_surface#199.enter(wl_output#2329) +[2618184.527] {Default Queue} discarded wl_surface#391.enter(wl_output#2329) +[2618184.532] {Default Queue} discarded wl_surface#935.enter(wl_output#2329) +[2618184.536] {Default Queue} discarded wl_surface#1671.enter(wl_output#2329) +[2618184.540] {Default Queue} discarded wl_surface#1351.enter(wl_output#2329) +[2618184.543] {Default Queue} discarded wl_surface#711.enter(wl_output#2329) +[2618184.547] {Default Queue} discarded wl_surface#1223.enter(wl_output#2329) +[2618184.551] {Default Queue} discarded wl_surface#1927.enter(wl_output#2329) +[2618184.555] {Default Queue} discarded wl_surface#871.enter(wl_output#2329) +[2618184.559] {Default Queue} discarded wl_surface#1895.enter(wl_output#2329) +[2618184.563] {Default Queue} discarded wl_surface#263.enter(wl_output#2329) +[2618184.567] {Default Queue} discarded wl_surface#551.enter(wl_output#2329) +[2618184.571] {Default Queue} discarded wl_surface#1735.enter(wl_output#2329) +[2618184.575] {Default Queue} discarded wl_surface#1479.enter(wl_output#2329) +[2618184.579] {Default Queue} discarded wl_surface#1772.enter(wl_output#2329) +[2618184.584] {Default Queue} discarded wl_surface#1959.enter(wl_output#2329) +[2618184.590] {Default Queue} discarded wl_surface#647.enter(wl_output#2329) +[2618184.596] {Default Queue} discarded wl_surface#2055.enter(wl_output#2329) +[2618184.603] {Default Queue} discarded wl_surface#71.enter(wl_output#2329) +[2618184.609] {Default Queue} discarded wl_surface#2183.enter(wl_output#2329) +[2618184.615] {Default Queue} discarded wl_surface#839.enter(wl_output#2329) +[2618184.622] {Default Queue} discarded wl_surface#1607.enter(wl_output#2329) +[2618184.628] {Default Queue} discarded wl_surface#1095.enter(wl_output#2329) +[2618184.634] {Default Queue} discarded wl_surface#1383.enter(wl_output#2329) +[2618184.639] {Default Queue} discarded wl_surface#487.enter(wl_output#2329) +[2618184.644] {Default Queue} discarded wl_surface#519.enter(wl_output#2329) +[2618184.648] {Default Queue} discarded wl_surface#2087.enter(wl_output#2329) +[2618184.652] {Default Queue} discarded wl_surface#295.enter(wl_output#2329) +[2618184.655] {Default Queue} discarded wl_surface#167.enter(wl_output#2329) +[2618184.659] {Default Queue} discarded wl_surface#1255.enter(wl_output#2329) +[2618184.664] {Default Queue} discarded wl_surface#679.enter(wl_output#2329) +[2618184.668] {Default Queue} discarded wl_surface#2119.enter(wl_output#2329) +[2618184.671] {Default Queue} discarded wl_surface#2311.enter(wl_output#18) +[2618184.679] {Default Queue} discarded wl_surface#2311.enter(wl_output#57) +[2618184.685] {Default Queue} discarded wl_surface#2311.enter(wl_output#89) +[2618184.690] {Default Queue} discarded wl_surface#2311.enter(wl_output#121) +[2618184.694] {Default Queue} discarded wl_surface#2311.enter(wl_output#153) +[2618184.697] {Default Queue} discarded wl_surface#2311.enter(wl_output#185) +[2618184.701] {Default Queue} discarded wl_surface#2311.enter(wl_output#217) +[2618184.705] {Default Queue} discarded wl_surface#2311.enter(wl_output#249) +[2618184.709] {Default Queue} discarded wl_surface#2311.enter(wl_output#281) +[2618184.713] {Default Queue} discarded wl_surface#2311.enter(wl_output#313) +[2618184.717] {Default Queue} discarded wl_surface#2311.enter(wl_output#345) +[2618184.720] {Default Queue} discarded wl_surface#2311.enter(wl_output#377) +[2618184.724] {Default Queue} discarded wl_surface#2311.enter(wl_output#409) +[2618184.728] {Default Queue} discarded wl_surface#2311.enter(wl_output#441) +[2618184.732] {Default Queue} discarded wl_surface#2311.enter(wl_output#473) +[2618184.736] {Default Queue} discarded wl_surface#2311.enter(wl_output#505) +[2618184.740] {Default Queue} discarded wl_surface#2311.enter(wl_output#537) +[2618184.744] {Default Queue} discarded wl_surface#2311.enter(wl_output#569) +[2618184.748] {Default Queue} discarded wl_surface#2311.enter(wl_output#601) +[2618184.752] {Default Queue} discarded wl_surface#2311.enter(wl_output#633) +[2618184.756] {Default Queue} discarded wl_surface#2311.enter(wl_output#665) +[2618184.760] {Default Queue} discarded wl_surface#2311.enter(wl_output#697) +[2618184.764] {Default Queue} discarded wl_surface#2311.enter(wl_output#729) +[2618184.768] {Default Queue} discarded wl_surface#2311.enter(wl_output#761) +[2618184.772] {Default Queue} discarded wl_surface#2311.enter(wl_output#793) +[2618184.776] {Default Queue} discarded wl_surface#2311.enter(wl_output#825) +[2618184.780] {Default Queue} discarded wl_surface#2311.enter(wl_output#857) +[2618184.784] {Default Queue} discarded wl_surface#2311.enter(wl_output#889) +[2618184.788] {Default Queue} discarded wl_surface#2311.enter(wl_output#921) +[2618184.792] {Default Queue} discarded wl_surface#2311.enter(wl_output#953) +[2618184.796] {Default Queue} discarded wl_surface#2311.enter(wl_output#985) +[2618184.800] {Default Queue} discarded wl_surface#2311.enter(wl_output#1017) +[2618184.803] {Default Queue} discarded wl_surface#2311.enter(wl_output#1049) +[2618184.807] {Default Queue} discarded wl_surface#2311.enter(wl_output#1081) +[2618184.811] {Default Queue} discarded wl_surface#2311.enter(wl_output#1113) +[2618184.815] {Default Queue} discarded wl_surface#2311.enter(wl_output#1145) +[2618184.819] {Default Queue} discarded wl_surface#2311.enter(wl_output#1177) +[2618184.823] {Default Queue} discarded wl_surface#2311.enter(wl_output#1209) +[2618184.827] {Default Queue} discarded wl_surface#2311.enter(wl_output#1241) +[2618184.831] {Default Queue} discarded wl_surface#2311.enter(wl_output#1273) +[2618184.835] {Default Queue} discarded wl_surface#2311.enter(wl_output#1305) +[2618184.839] {Default Queue} discarded wl_surface#2311.enter(wl_output#1337) +[2618184.844] {Default Queue} discarded wl_surface#2311.enter(wl_output#1369) +[2618184.852] {Default Queue} discarded wl_surface#2311.enter(wl_output#1401) +[2618184.860] {Default Queue} discarded wl_surface#2311.enter(wl_output#1433) +[2618184.872] {Default Queue} discarded wl_surface#2311.enter(wl_output#1465) +[2618184.876] {Default Queue} discarded wl_surface#2311.enter(wl_output#1497) +[2618184.880] {Default Queue} discarded wl_surface#2311.enter(wl_output#1529) +[2618184.885] {Default Queue} discarded wl_surface#2311.enter(wl_output#1561) +[2618184.891] {Default Queue} discarded wl_surface#2311.enter(wl_output#1593) +[2618184.896] {Default Queue} discarded wl_surface#2311.enter(wl_output#1625) +[2618184.901] {Default Queue} discarded wl_surface#2311.enter(wl_output#1657) +[2618184.907] {Default Queue} discarded wl_surface#2311.enter(wl_output#1689) +[2618184.912] {Default Queue} discarded wl_surface#2311.enter(wl_output#1721) +[2618184.923] {Default Queue} discarded wl_surface#2311.enter(wl_output#1753) +[2618184.930] {Default Queue} discarded wl_surface#2311.enter(wl_output#1785) +[2618184.933] {Default Queue} discarded wl_surface#2311.enter(wl_output#1817) +[2618184.937] {Default Queue} discarded wl_surface#2311.enter(wl_output#1849) +[2618184.941] {Default Queue} discarded wl_surface#2311.enter(wl_output#1881) +[2618184.945] {Default Queue} discarded wl_surface#2311.enter(wl_output#1913) +[2618184.949] {Default Queue} discarded wl_surface#2311.enter(wl_output#1945) +[2618184.953] {Default Queue} discarded wl_surface#2311.enter(wl_output#1977) +[2618184.957] {Default Queue} discarded wl_surface#2311.enter(wl_output#2009) +[2618184.961] {Default Queue} discarded wl_surface#2311.enter(wl_output#2041) +[2618184.965] {Default Queue} discarded wl_surface#2311.enter(wl_output#2073) +[2618184.969] {Default Queue} discarded wl_surface#2311.enter(wl_output#2105) +[2618184.972] {Default Queue} discarded wl_surface#2311.enter(wl_output#2137) +[2618184.976] {Default Queue} discarded wl_surface#2311.enter(wl_output#2169) +[2618184.980] {Default Queue} discarded wl_surface#2311.enter(wl_output#2201) +[2618184.984] {Default Queue} discarded wl_surface#2311.enter(wl_output#2233) +[2618184.988] {Default Queue} discarded wl_surface#2311.enter(wl_output#2265) +[2618184.992] {Default Queue} discarded wl_surface#2311.enter(wl_output#2297) +[2618184.996] {Default Queue} discarded wl_surface#2311.enter(wl_output#2329) +[2618190.766] {Display Queue} wl_display#1.delete_id(2343) +[2618190.781] {Default Queue} wl_registry#2342.global(1, "wl_compositor", 6) +[2618190.788] {Default Queue} -> wl_registry#2342.bind(1, "wl_compositor", 1, new id [unknown]#2348) +[2618190.794] {Default Queue} wl_registry#2342.global(2, "wl_subcompositor", 1) +[2618190.799] {Default Queue} -> wl_registry#2342.bind(2, "wl_subcompositor", 1, new id [unknown]#2349) +[2618190.803] {Default Queue} wl_registry#2342.global(3, "xdg_wm_base", 6) +[2618190.808] {Default Queue} -> wl_registry#2342.bind(3, "xdg_wm_base", 1, new id [unknown]#2350) +[2618190.814] {Default Queue} wl_registry#2342.global(6, "zwlr_layer_shell_v1", 5) +[2618190.818] {Default Queue} wl_registry#2342.global(7, "ext_session_lock_manager_v1", 1) +[2618190.822] {Default Queue} wl_registry#2342.global(8, "wl_shm", 2) +[2618190.827] {Default Queue} -> wl_registry#2342.bind(8, "wl_shm", 1, new id [unknown]#2351) +[2618190.832] {Default Queue} -> wl_registry#2342.bind(8, "wl_shm", 1, new id [unknown]#2352) +[2618190.836] {Default Queue} -> wl_registry#2342.bind(8, "wl_shm", 1, new id [unknown]#2353) +[2618190.841] {Default Queue} wl_registry#2342.global(9, "zxdg_output_manager_v1", 3) +[2618190.845] {Default Queue} wl_registry#2342.global(10, "wp_fractional_scale_manager_v1", 1) +[2618190.849] {Default Queue} wl_registry#2342.global(11, "zwp_tablet_manager_v2", 1) +[2618190.854] {Default Queue} wl_registry#2342.global(12, "zwp_pointer_gestures_v1", 3) +[2618190.858] {Default Queue} wl_registry#2342.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618190.872] {Default Queue} -> wl_registry#2342.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2354) +[2618190.877] {Default Queue} wl_registry#2342.global(14, "zwp_pointer_constraints_v1", 1) +[2618190.882] {Default Queue} -> wl_registry#2342.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2355) +[2618190.887] {Default Queue} wl_registry#2342.global(15, "ext_idle_notifier_v1", 2) +[2618190.891] {Default Queue} wl_registry#2342.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618190.896] {Default Queue} wl_registry#2342.global(17, "wl_data_device_manager", 3) +[2618190.901] {Default Queue} -> wl_registry#2342.bind(17, "wl_data_device_manager", 2, new id [unknown]#2356) +[2618190.905] {Default Queue} -> wl_data_device_manager#2356.create_data_source(new id wl_data_source#2357) +[2618190.910] {Default Queue} -> wl_data_source#2357.offer("text/plain") +[2618190.914] {Default Queue} -> wl_data_source#2357.offer("text/plain;charset=utf-8") +[2618190.919] {Default Queue} -> wl_data_source#2357.offer("TEXT") +[2618190.928] {Default Queue} -> wl_data_source#2357.offer("STRING") +[2618190.935] {Default Queue} -> wl_data_source#2357.offer("UTF8_STRING") +[2618190.940] {Default Queue} wl_registry#2342.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618190.945] {Default Queue} -> wl_registry#2342.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2358) +[2618190.954] {Default Queue} -> zwp_primary_selection_device_manager_v1#2358.create_source(new id zwp_primary_selection_source_v1#2359) +[2618190.961] {Default Queue} -> zwp_primary_selection_source_v1#2359.offer("text/plain") +[2618190.966] {Default Queue} -> zwp_primary_selection_source_v1#2359.offer("text/plain;charset=utf-8") +[2618190.970] {Default Queue} -> zwp_primary_selection_source_v1#2359.offer("TEXT") +[2618190.974] {Default Queue} -> zwp_primary_selection_source_v1#2359.offer("STRING") +[2618190.978] {Default Queue} -> zwp_primary_selection_source_v1#2359.offer("UTF8_STRING") +[2618190.983] {Default Queue} wl_registry#2342.global(19, "zwlr_data_control_manager_v1", 2) +[2618190.987] {Default Queue} wl_registry#2342.global(20, "ext_data_control_manager_v1", 1) +[2618190.991] {Default Queue} wl_registry#2342.global(21, "wp_presentation", 2) +[2618190.996] {Default Queue} wl_registry#2342.global(22, "wp_security_context_manager_v1", 1) +[2618191.001] {Default Queue} wl_registry#2342.global(23, "zwp_text_input_manager_v3", 1) +[2618191.005] {Default Queue} wl_registry#2342.global(24, "zwp_input_method_manager_v2", 1) +[2618191.010] {Default Queue} wl_registry#2342.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618191.014] {Default Queue} wl_registry#2342.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618191.019] {Default Queue} wl_registry#2342.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618191.024] {Default Queue} wl_registry#2342.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618191.028] {Default Queue} wl_registry#2342.global(29, "ext_workspace_manager_v1", 1) +[2618191.033] {Default Queue} wl_registry#2342.global(30, "zwlr_output_manager_v1", 4) +[2618191.037] {Default Queue} wl_registry#2342.global(31, "zwlr_screencopy_manager_v1", 3) +[2618191.041] {Default Queue} wl_registry#2342.global(32, "wp_viewporter", 1) +[2618191.046] {Default Queue} wl_registry#2342.global(33, "zxdg_exporter_v2", 1) +[2618191.050] {Default Queue} wl_registry#2342.global(34, "zxdg_importer_v2", 1) +[2618191.055] {Default Queue} wl_registry#2342.global(36, "xdg_activation_v1", 1) +[2618191.060] {Default Queue} wl_registry#2342.global(37, "mutter_x11_interop", 1) +[2618191.064] {Default Queue} wl_registry#2342.global(38, "wl_seat", 9) +[2618191.069] {Default Queue} -> wl_registry#2342.bind(38, "wl_seat", 1, new id [unknown]#2360) +[2618191.074] {Default Queue} wl_registry#2342.global(39, "wp_cursor_shape_manager_v1", 2) +[2618191.078] {Default Queue} wl_registry#2342.global(40, "wl_output", 4) +[2618191.083] {Default Queue} -> wl_registry#2342.bind(40, "wl_output", 1, new id [unknown]#2361) +[2618191.087] {Default Queue} wl_callback#2343.done(0) +[2618191.092] {Default Queue} -> wl_compositor#2092.create_surface(new id wl_surface#2343) +[2618191.097] {Default Queue} -> wl_subcompositor#2349.get_subsurface(new id wl_subsurface#2362, wl_surface#2343, wl_surface#2087) +[2618191.105] {Default Queue} -> wl_subsurface#2362.set_desync() +[2618191.109] {Default Queue} -> wl_subsurface#2362.set_position(0, 0) +[2618191.114] {Default Queue} -> wl_subsurface#2362.place_above(wl_surface#2087) +[2618191.167] {Default Queue} -> wl_shm#2351.create_pool(new id wl_shm_pool#2363, fd 374, 16) +[2618191.174] {Default Queue} -> wl_shm#2351.create_pool(new id wl_shm_pool#2364, fd 375, 16) +[2618191.179] {Default Queue} -> wl_shm_pool#2363.create_buffer(new id wl_buffer#2365, 0, 2, 2, 8, 0) +[2618191.184] {Default Queue} -> wl_shm_pool#2364.create_buffer(new id wl_buffer#2366, 0, 2, 2, 8, 0) +[2618191.193] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) +[2618191.197] {Default Queue} -> wl_surface#2343.commit() +[2618191.203] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) +[2618191.211] {Default Queue} -> wl_surface#2343.commit() +[2618191.217] {Default Queue} -> wl_compositor#2348.create_region(new id wl_region#2367) +[2618191.221] {Default Queue} -> wl_compositor#2348.create_region(new id wl_region#2368) +[2618191.225] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) +[2618191.230] {Default Queue} -> wl_region#2367.add(0, 0, 0, 0) +[2618191.234] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618191.238] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618191.242] {Default Queue} -> wl_surface#2343.damage(0, 0, 2, 2) +[2618191.247] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) +[2618191.256] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) +[2618191.260] {Default Queue} -> wl_surface#2343.commit() +[2618191.293] {Default Queue} -> wl_shm#2353.create_pool(new id wl_shm_pool#2369, fd 378, 640) +[2618191.300] {Default Queue} -> wl_shm#2353.create_pool(new id wl_shm_pool#2370, fd 379, 640) +[2618191.306] {Default Queue} -> wl_shm_pool#2369.create_buffer(new id wl_buffer#2371, 0, 10, 16, 40, 0) +[2618191.310] {Default Queue} -> wl_shm_pool#2370.create_buffer(new id wl_buffer#2372, 0, 10, 16, 40, 0) +[2618191.318] {Default Queue} -> wl_compositor#2348.create_surface(new id wl_surface#2373) +[2618191.322] {Default Queue} -> wl_surface#2373.attach(wl_buffer#2371, 0, 0) +[2618191.326] {Default Queue} -> wl_surface#2373.commit() +[2618191.331] {Default Queue} -> wl_surface#2373.attach(wl_buffer#2371, 0, 0) +[2618191.336] {Default Queue} -> wl_surface#2373.commit() +[2618191.341] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) +[2618191.346] {Default Queue} -> wl_surface#2343.damage(0, 0, 2, 2) +[2618191.351] {Default Queue} -> wl_surface#2343.damage(0, 0, 2, 2) +[2618191.358] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2374) +[2618191.364] {Default Queue} -> wl_display#1.sync(new id wl_callback#2375) +[2618191.381] {Default Queue} wl_keyboard#2344.keymap(1, fd 374, 68213) +[2618191.387] {Default Queue} wl_keyboard#2344.enter(566, wl_surface#19, array[0]) +[2618191.392] {Default Queue} wl_keyboard#2344.modifiers(566, 0, 0, 16, 0) +[2618194.227] {Display Queue} wl_display#1.delete_id(2375) +[2618194.247] {Default Queue} discarded wl_shm#2351.format(875709016) +[2618194.252] {Default Queue} discarded wl_shm#2351.format(1) +[2618194.256] {Default Queue} discarded wl_shm#2351.format(0) +[2618194.260] {Default Queue} discarded wl_shm#2351.format(875708993) +[2618194.264] {Default Queue} discarded wl_shm#2352.format(875709016) +[2618194.268] {Default Queue} discarded wl_shm#2352.format(1) +[2618194.272] {Default Queue} discarded wl_shm#2352.format(0) +[2618194.276] {Default Queue} discarded wl_shm#2352.format(875708993) +[2618194.280] {Default Queue} discarded wl_shm#2353.format(875709016) +[2618194.283] {Default Queue} discarded wl_shm#2353.format(1) +[2618194.287] {Default Queue} discarded wl_shm#2353.format(0) +[2618194.291] {Default Queue} discarded wl_shm#2353.format(875708993) +[2618194.295] {Default Queue} wl_seat#2360.capabilities(7) +[2618194.300] {Default Queue} -> wl_seat#2360.get_keyboard(new id wl_keyboard#2376) +[2618194.304] {Default Queue} -> wl_seat#2360.get_pointer(new id wl_pointer#2377) +[2618194.309] {Default Queue} -> wl_data_device_manager#2356.get_data_device(new id wl_data_device#2378, wl_seat#2360) +[2618194.314] {Default Queue} -> zwp_primary_selection_device_manager_v1#2358.get_device(new id zwp_primary_selection_device_v1#2379, wl_seat#2360) +[2618194.322] {Default Queue} wl_output#2361.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618194.327] {Default Queue} wl_output#2361.mode(3, 1280, 800, 60000) +[2618194.332] {Default Queue} discarded wl_surface#3.enter(wl_output#2361) +[2618194.336] {Default Queue} discarded wl_surface#999.enter(wl_output#2361) +[2618194.340] {Default Queue} discarded wl_surface#1191.enter(wl_output#2361) +[2618194.345] {Default Queue} discarded wl_surface#1159.enter(wl_output#2361) +[2618194.349] {Default Queue} discarded wl_surface#1703.enter(wl_output#2361) +[2618194.358] {Default Queue} discarded wl_surface#2215.enter(wl_output#2361) +[2618194.365] {Default Queue} discarded wl_surface#423.enter(wl_output#2361) +[2618194.369] {Default Queue} discarded wl_surface#1447.enter(wl_output#2361) +[2618194.373] {Default Queue} discarded wl_surface#2023.enter(wl_output#2361) +[2618194.377] {Default Queue} discarded wl_surface#1639.enter(wl_output#2361) +[2618194.381] {Default Queue} discarded wl_surface#1319.enter(wl_output#2361) +[2618194.385] {Default Queue} discarded wl_surface#1127.enter(wl_output#2361) +[2618194.389] {Default Queue} discarded wl_surface#2151.enter(wl_output#2361) +[2618194.393] {Default Queue} discarded wl_surface#1063.enter(wl_output#2361) +[2618194.397] {Default Queue} discarded wl_surface#455.enter(wl_output#2361) +[2618194.401] {Default Queue} discarded wl_surface#1575.enter(wl_output#2361) +[2618194.405] {Default Queue} discarded wl_surface#1799.enter(wl_output#2361) +[2618194.409] {Default Queue} discarded wl_surface#1415.enter(wl_output#2361) +[2618194.413] {Default Queue} discarded wl_surface#2279.enter(wl_output#2361) +[2618194.417] {Default Queue} discarded wl_surface#1831.enter(wl_output#2361) +[2618194.421] {Default Queue} discarded wl_surface#903.enter(wl_output#2361) +[2618194.425] {Default Queue} discarded wl_surface#775.enter(wl_output#2361) +[2618194.428] {Default Queue} discarded wl_surface#1991.enter(wl_output#2361) +[2618194.432] {Default Queue} discarded wl_surface#1543.enter(wl_output#2361) +[2618194.436] {Default Queue} discarded wl_surface#135.enter(wl_output#2361) +[2618194.440] {Default Queue} discarded wl_surface#1287.enter(wl_output#2361) +[2618194.444] {Default Queue} discarded wl_surface#1031.enter(wl_output#2361) +[2618194.448] {Default Queue} discarded wl_surface#615.enter(wl_output#2361) +[2618194.452] {Default Queue} discarded wl_surface#231.enter(wl_output#2361) +[2618194.456] {Default Queue} discarded wl_surface#1863.enter(wl_output#2361) +[2618194.460] {Default Queue} discarded wl_surface#359.enter(wl_output#2361) +[2618194.464] {Default Queue} discarded wl_surface#583.enter(wl_output#2361) +[2618194.468] {Default Queue} discarded wl_surface#743.enter(wl_output#2361) +[2618194.472] {Default Queue} discarded wl_surface#967.enter(wl_output#2361) +[2618194.476] {Default Queue} discarded wl_surface#103.enter(wl_output#2361) +[2618194.480] {Default Queue} discarded wl_surface#327.enter(wl_output#2361) +[2618194.484] {Default Queue} discarded wl_surface#43.enter(wl_output#2361) +[2618194.489] {Default Queue} discarded wl_surface#2247.enter(wl_output#2361) +[2618194.493] {Default Queue} discarded wl_surface#807.enter(wl_output#2361) +[2618194.497] {Default Queue} discarded wl_surface#19.enter(wl_output#2361) +[2618194.501] {Default Queue} discarded wl_surface#1511.enter(wl_output#2361) +[2618194.505] {Default Queue} discarded wl_surface#199.enter(wl_output#2361) +[2618194.509] {Default Queue} discarded wl_surface#391.enter(wl_output#2361) +[2618194.513] {Default Queue} discarded wl_surface#935.enter(wl_output#2361) +[2618194.517] {Default Queue} discarded wl_surface#1671.enter(wl_output#2361) +[2618194.521] {Default Queue} discarded wl_surface#1351.enter(wl_output#2361) +[2618194.525] {Default Queue} discarded wl_surface#711.enter(wl_output#2361) +[2618194.529] {Default Queue} discarded wl_surface#1223.enter(wl_output#2361) +[2618194.533] {Default Queue} discarded wl_surface#1927.enter(wl_output#2361) +[2618194.537] {Default Queue} discarded wl_surface#871.enter(wl_output#2361) +[2618194.540] {Default Queue} discarded wl_surface#1895.enter(wl_output#2361) +[2618194.544] {Default Queue} discarded wl_surface#263.enter(wl_output#2361) +[2618194.549] {Default Queue} discarded wl_surface#551.enter(wl_output#2361) +[2618194.553] {Default Queue} discarded wl_surface#1735.enter(wl_output#2361) +[2618194.556] {Default Queue} discarded wl_surface#1479.enter(wl_output#2361) +[2618194.560] {Default Queue} discarded wl_surface#1772.enter(wl_output#2361) +[2618194.564] {Default Queue} discarded wl_surface#1959.enter(wl_output#2361) +[2618194.568] {Default Queue} discarded wl_surface#647.enter(wl_output#2361) +[2618194.576] {Default Queue} discarded wl_surface#2055.enter(wl_output#2361) +[2618194.582] {Default Queue} discarded wl_surface#71.enter(wl_output#2361) +[2618194.586] {Default Queue} discarded wl_surface#2183.enter(wl_output#2361) +[2618194.590] {Default Queue} discarded wl_surface#839.enter(wl_output#2361) +[2618194.594] {Default Queue} discarded wl_surface#1607.enter(wl_output#2361) +[2618194.599] {Default Queue} discarded wl_surface#1095.enter(wl_output#2361) +[2618194.603] {Default Queue} discarded wl_surface#1383.enter(wl_output#2361) +[2618194.607] {Default Queue} discarded wl_surface#487.enter(wl_output#2361) +[2618194.611] {Default Queue} discarded wl_surface#2311.enter(wl_output#2361) +[2618194.615] {Default Queue} discarded wl_surface#519.enter(wl_output#2361) +[2618194.619] {Default Queue} discarded wl_surface#2087.enter(wl_output#2361) +[2618194.623] {Default Queue} discarded wl_surface#295.enter(wl_output#2361) +[2618194.626] {Default Queue} discarded wl_surface#167.enter(wl_output#2361) +[2618194.630] {Default Queue} discarded wl_surface#1255.enter(wl_output#2361) +[2618194.634] {Default Queue} discarded wl_surface#679.enter(wl_output#2361) +[2618194.638] {Default Queue} discarded wl_surface#2119.enter(wl_output#2361) +[2618194.642] {Default Queue} wl_registry#2374.global(1, "wl_compositor", 6) +[2618194.647] {Default Queue} -> wl_registry#2374.bind(1, "wl_compositor", 1, new id [unknown]#2380) +[2618194.652] {Default Queue} wl_registry#2374.global(2, "wl_subcompositor", 1) +[2618194.657] {Default Queue} -> wl_registry#2374.bind(2, "wl_subcompositor", 1, new id [unknown]#2381) +[2618194.662] {Default Queue} wl_registry#2374.global(3, "xdg_wm_base", 6) +[2618194.666] {Default Queue} -> wl_registry#2374.bind(3, "xdg_wm_base", 1, new id [unknown]#2382) +[2618194.671] {Default Queue} wl_registry#2374.global(6, "zwlr_layer_shell_v1", 5) +[2618194.675] {Default Queue} wl_registry#2374.global(7, "ext_session_lock_manager_v1", 1) +[2618194.679] {Default Queue} wl_registry#2374.global(8, "wl_shm", 2) +[2618194.684] {Default Queue} -> wl_registry#2374.bind(8, "wl_shm", 1, new id [unknown]#2383) +[2618194.689] {Default Queue} -> wl_registry#2374.bind(8, "wl_shm", 1, new id [unknown]#2384) +[2618194.693] {Default Queue} -> wl_registry#2374.bind(8, "wl_shm", 1, new id [unknown]#2385) +[2618194.697] {Default Queue} wl_registry#2374.global(9, "zxdg_output_manager_v1", 3) +[2618194.702] {Default Queue} wl_registry#2374.global(10, "wp_fractional_scale_manager_v1", 1) +[2618194.707] {Default Queue} wl_registry#2374.global(11, "zwp_tablet_manager_v2", 1) +[2618194.711] {Default Queue} wl_registry#2374.global(12, "zwp_pointer_gestures_v1", 3) +[2618194.715] {Default Queue} wl_registry#2374.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618194.720] {Default Queue} -> wl_registry#2374.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2386) +[2618194.724] {Default Queue} wl_registry#2374.global(14, "zwp_pointer_constraints_v1", 1) +[2618194.729] {Default Queue} -> wl_registry#2374.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2387) +[2618194.733] {Default Queue} wl_registry#2374.global(15, "ext_idle_notifier_v1", 2) +[2618194.737] {Default Queue} wl_registry#2374.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618194.742] {Default Queue} wl_registry#2374.global(17, "wl_data_device_manager", 3) +[2618194.747] {Default Queue} -> wl_registry#2374.bind(17, "wl_data_device_manager", 2, new id [unknown]#2388) +[2618194.753] {Default Queue} -> wl_data_device_manager#2388.create_data_source(new id wl_data_source#2389) +[2618194.758] {Default Queue} -> wl_data_source#2389.offer("text/plain") +[2618194.765] {Default Queue} -> wl_data_source#2389.offer("text/plain;charset=utf-8") +[2618194.771] {Default Queue} -> wl_data_source#2389.offer("TEXT") +[2618194.778] {Default Queue} -> wl_data_source#2389.offer("STRING") +[2618194.784] {Default Queue} -> wl_data_source#2389.offer("UTF8_STRING") +[2618194.791] {Default Queue} wl_registry#2374.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618194.803] {Default Queue} -> wl_registry#2374.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2390) +[2618194.816] {Default Queue} -> zwp_primary_selection_device_manager_v1#2390.create_source(new id zwp_primary_selection_source_v1#2391) +[2618194.824] {Default Queue} -> zwp_primary_selection_source_v1#2391.offer("text/plain") +[2618194.828] {Default Queue} -> zwp_primary_selection_source_v1#2391.offer("text/plain;charset=utf-8") +[2618194.832] {Default Queue} -> zwp_primary_selection_source_v1#2391.offer("TEXT") +[2618194.836] {Default Queue} -> zwp_primary_selection_source_v1#2391.offer("STRING") +[2618194.840] {Default Queue} -> zwp_primary_selection_source_v1#2391.offer("UTF8_STRING") +[2618194.845] {Default Queue} wl_registry#2374.global(19, "zwlr_data_control_manager_v1", 2) +[2618194.849] {Default Queue} wl_registry#2374.global(20, "ext_data_control_manager_v1", 1) +[2618194.854] {Default Queue} wl_registry#2374.global(21, "wp_presentation", 2) +[2618194.858] {Default Queue} wl_registry#2374.global(22, "wp_security_context_manager_v1", 1) +[2618194.868] {Default Queue} wl_registry#2374.global(23, "zwp_text_input_manager_v3", 1) +[2618194.873] {Default Queue} wl_registry#2374.global(24, "zwp_input_method_manager_v2", 1) +[2618194.877] {Default Queue} wl_registry#2374.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618194.882] {Default Queue} wl_registry#2374.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618194.886] {Default Queue} wl_registry#2374.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618194.890] {Default Queue} wl_registry#2374.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618194.895] {Default Queue} wl_registry#2374.global(29, "ext_workspace_manager_v1", 1) +[2618194.899] {Default Queue} wl_registry#2374.global(30, "zwlr_output_manager_v1", 4) +[2618194.903] {Default Queue} wl_registry#2374.global(31, "zwlr_screencopy_manager_v1", 3) +[2618194.908] {Default Queue} wl_registry#2374.global(32, "wp_viewporter", 1) +[2618194.912] {Default Queue} wl_registry#2374.global(33, "zxdg_exporter_v2", 1) +[2618194.917] {Default Queue} wl_registry#2374.global(34, "zxdg_importer_v2", 1) +[2618194.922] {Default Queue} wl_registry#2374.global(36, "xdg_activation_v1", 1) +[2618194.926] {Default Queue} wl_registry#2374.global(37, "mutter_x11_interop", 1) +[2618194.930] {Default Queue} wl_registry#2374.global(38, "wl_seat", 9) +[2618194.935] {Default Queue} -> wl_registry#2374.bind(38, "wl_seat", 1, new id [unknown]#2392) +[2618194.939] {Default Queue} wl_registry#2374.global(39, "wp_cursor_shape_manager_v1", 2) +[2618194.943] {Default Queue} wl_registry#2374.global(40, "wl_output", 4) +[2618194.948] {Default Queue} -> wl_registry#2374.bind(40, "wl_output", 1, new id [unknown]#2393) +[2618194.952] {Default Queue} wl_callback#2375.done(0) +[2618194.957] {Default Queue} discarded wl_surface#2343.enter(wl_output#18) +[2618194.961] {Default Queue} discarded wl_surface#2343.enter(wl_output#57) +[2618194.965] {Default Queue} discarded wl_surface#2343.enter(wl_output#89) +[2618194.969] {Default Queue} discarded wl_surface#2343.enter(wl_output#121) +[2618194.973] {Default Queue} discarded wl_surface#2343.enter(wl_output#153) +[2618194.978] {Default Queue} discarded wl_surface#2343.enter(wl_output#185) +[2618194.982] {Default Queue} discarded wl_surface#2343.enter(wl_output#217) +[2618194.985] {Default Queue} discarded wl_surface#2343.enter(wl_output#249) +[2618194.989] {Default Queue} discarded wl_surface#2343.enter(wl_output#281) +[2618194.993] {Default Queue} discarded wl_surface#2343.enter(wl_output#313) +[2618194.997] {Default Queue} discarded wl_surface#2343.enter(wl_output#345) +[2618195.001] {Default Queue} discarded wl_surface#2343.enter(wl_output#377) +[2618195.006] {Default Queue} discarded wl_surface#2343.enter(wl_output#409) +[2618195.010] {Default Queue} discarded wl_surface#2343.enter(wl_output#441) +[2618195.014] {Default Queue} discarded wl_surface#2343.enter(wl_output#473) +[2618195.018] {Default Queue} discarded wl_surface#2343.enter(wl_output#505) +[2618195.022] {Default Queue} discarded wl_surface#2343.enter(wl_output#537) +[2618195.029] {Default Queue} discarded wl_surface#2343.enter(wl_output#569) +[2618195.035] {Default Queue} discarded wl_surface#2343.enter(wl_output#601) +[2618195.038] {Default Queue} discarded wl_surface#2343.enter(wl_output#633) +[2618195.043] {Default Queue} discarded wl_surface#2343.enter(wl_output#665) +[2618195.047] {Default Queue} discarded wl_surface#2343.enter(wl_output#697) +[2618195.051] {Default Queue} discarded wl_surface#2343.enter(wl_output#729) +[2618195.055] {Default Queue} discarded wl_surface#2343.enter(wl_output#761) +[2618195.060] {Default Queue} discarded wl_surface#2343.enter(wl_output#793) +[2618195.064] {Default Queue} discarded wl_surface#2343.enter(wl_output#825) +[2618195.068] {Default Queue} discarded wl_surface#2343.enter(wl_output#857) +[2618195.072] {Default Queue} discarded wl_surface#2343.enter(wl_output#889) +[2618195.076] {Default Queue} discarded wl_surface#2343.enter(wl_output#921) +[2618195.080] {Default Queue} discarded wl_surface#2343.enter(wl_output#953) +[2618195.083] {Default Queue} discarded wl_surface#2343.enter(wl_output#985) +[2618195.087] {Default Queue} discarded wl_surface#2343.enter(wl_output#1017) +[2618195.091] {Default Queue} discarded wl_surface#2343.enter(wl_output#1049) +[2618195.095] {Default Queue} discarded wl_surface#2343.enter(wl_output#1081) +[2618195.099] {Default Queue} discarded wl_surface#2343.enter(wl_output#1113) +[2618195.103] {Default Queue} discarded wl_surface#2343.enter(wl_output#1145) +[2618195.107] {Default Queue} discarded wl_surface#2343.enter(wl_output#1177) +[2618195.111] {Default Queue} discarded wl_surface#2343.enter(wl_output#1209) +[2618195.115] {Default Queue} discarded wl_surface#2343.enter(wl_output#1241) +[2618195.120] {Default Queue} discarded wl_surface#2343.enter(wl_output#1273) +[2618195.124] {Default Queue} discarded wl_surface#2343.enter(wl_output#1305) +[2618195.128] {Default Queue} discarded wl_surface#2343.enter(wl_output#1337) +[2618195.131] {Default Queue} discarded wl_surface#2343.enter(wl_output#1369) +[2618195.136] {Default Queue} discarded wl_surface#2343.enter(wl_output#1401) +[2618195.141] {Default Queue} discarded wl_surface#2343.enter(wl_output#1433) +[2618195.144] {Default Queue} discarded wl_surface#2343.enter(wl_output#1465) +[2618195.148] {Default Queue} discarded wl_surface#2343.enter(wl_output#1497) +[2618195.152] {Default Queue} discarded wl_surface#2343.enter(wl_output#1529) +[2618195.156] {Default Queue} discarded wl_surface#2343.enter(wl_output#1561) +[2618195.161] {Default Queue} discarded wl_surface#2343.enter(wl_output#1593) +[2618195.164] {Default Queue} discarded wl_surface#2343.enter(wl_output#1625) +[2618195.168] {Default Queue} discarded wl_surface#2343.enter(wl_output#1657) +[2618195.172] {Default Queue} discarded wl_surface#2343.enter(wl_output#1689) +[2618195.176] {Default Queue} discarded wl_surface#2343.enter(wl_output#1721) +[2618195.180] {Default Queue} discarded wl_surface#2343.enter(wl_output#1753) +[2618195.184] {Default Queue} discarded wl_surface#2343.enter(wl_output#1785) +[2618195.188] {Default Queue} discarded wl_surface#2343.enter(wl_output#1817) +[2618195.192] {Default Queue} discarded wl_surface#2343.enter(wl_output#1849) +[2618195.196] {Default Queue} discarded wl_surface#2343.enter(wl_output#1881) +[2618195.200] {Default Queue} discarded wl_surface#2343.enter(wl_output#1913) +[2618195.204] {Default Queue} discarded wl_surface#2343.enter(wl_output#1945) +[2618195.208] {Default Queue} discarded wl_surface#2343.enter(wl_output#1977) +[2618195.212] {Default Queue} discarded wl_surface#2343.enter(wl_output#2009) +[2618195.216] {Default Queue} discarded wl_surface#2343.enter(wl_output#2041) +[2618195.220] {Default Queue} discarded wl_surface#2343.enter(wl_output#2073) +[2618195.224] {Default Queue} discarded wl_surface#2343.enter(wl_output#2105) +[2618195.228] {Default Queue} discarded wl_surface#2343.enter(wl_output#2137) +[2618195.232] {Default Queue} discarded wl_surface#2343.enter(wl_output#2169) +[2618195.236] {Default Queue} discarded wl_surface#2343.enter(wl_output#2201) +[2618195.240] {Default Queue} discarded wl_surface#2343.enter(wl_output#2233) +[2618195.247] {Default Queue} discarded wl_surface#2343.enter(wl_output#2265) +[2618195.253] {Default Queue} discarded wl_surface#2343.enter(wl_output#2297) +[2618195.257] {Default Queue} discarded wl_surface#2343.enter(wl_output#2329) +[2618195.260] {Default Queue} discarded wl_surface#2343.enter(wl_output#2361) +[2618195.265] {Default Queue} -> wl_compositor#2348.create_surface(new id wl_surface#2375) +[2618195.269] {Default Queue} -> wl_subcompositor#2381.get_subsurface(new id wl_subsurface#2394, wl_surface#2375, wl_surface#2343) +[2618195.277] {Default Queue} -> wl_subsurface#2394.set_desync() +[2618195.282] {Default Queue} -> wl_subsurface#2394.set_position(0, 0) +[2618195.286] {Default Queue} -> wl_subsurface#2394.place_above(wl_surface#2343) +[2618195.330] {Default Queue} -> wl_shm#2383.create_pool(new id wl_shm_pool#2395, fd 379, 16) +[2618195.338] {Default Queue} -> wl_shm#2383.create_pool(new id wl_shm_pool#2396, fd 380, 16) +[2618195.342] {Default Queue} -> wl_shm_pool#2395.create_buffer(new id wl_buffer#2397, 0, 2, 2, 8, 0) +[2618195.347] {Default Queue} -> wl_shm_pool#2396.create_buffer(new id wl_buffer#2398, 0, 2, 2, 8, 0) +[2618195.355] {Default Queue} -> wl_surface#2375.attach(wl_buffer#2397, 0, 0) +[2618195.360] {Default Queue} -> wl_surface#2375.commit() +[2618195.366] {Default Queue} -> wl_surface#2375.attach(wl_buffer#2397, 0, 0) +[2618195.370] {Default Queue} -> wl_surface#2375.commit() +[2618195.374] {Default Queue} -> wl_compositor#2380.create_region(new id wl_region#2399) +[2618195.378] {Default Queue} -> wl_compositor#2380.create_region(new id wl_region#2400) +[2618195.383] {Default Queue} -> wl_region#2399.subtract(0, 0, 2, 2) +[2618195.387] {Default Queue} -> wl_region#2399.add(0, 0, 0, 0) +[2618195.392] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) +[2618195.396] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) +[2618195.400] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) +[2618195.405] {Default Queue} -> wl_surface#2343.damage(0, 0, 2, 2) +[2618195.412] {Default Queue} -> wl_surface#2375.attach(wl_buffer#2397, 0, 0) +[2618195.417] {Default Queue} -> wl_surface#2375.commit() +[2618195.455] {Default Queue} -> wl_shm#2385.create_pool(new id wl_shm_pool#2401, fd 383, 640) +[2618195.462] {Default Queue} -> wl_shm#2385.create_pool(new id wl_shm_pool#2402, fd 384, 640) +[2618195.466] {Default Queue} -> wl_shm_pool#2401.create_buffer(new id wl_buffer#2403, 0, 10, 16, 40, 0) +[2618195.471] {Default Queue} -> wl_shm_pool#2402.create_buffer(new id wl_buffer#2404, 0, 10, 16, 40, 0) +[2618195.478] {Default Queue} -> wl_compositor#2380.create_surface(new id wl_surface#2405) +[2618195.483] {Default Queue} -> wl_surface#2405.attach(wl_buffer#2403, 0, 0) +[2618195.488] {Default Queue} -> wl_surface#2405.commit() +[2618195.493] {Default Queue} -> wl_surface#2405.attach(wl_buffer#2403, 0, 0) +[2618195.497] {Default Queue} -> wl_surface#2405.commit() +[2618195.503] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) +[2618195.510] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2406) +[2618195.515] {Default Queue} -> wl_display#1.sync(new id wl_callback#2407) +[2618199.439] {Display Queue} wl_display#1.delete_id(2407) +[2618199.452] {Default Queue} wl_keyboard#2376.keymap(1, fd 379, 68213) +[2618199.457] {Default Queue} wl_keyboard#2376.enter(566, wl_surface#19, array[0]) +[2618199.463] {Default Queue} wl_keyboard#2376.modifiers(566, 0, 0, 16, 0) +[2618199.469] {Default Queue} discarded wl_shm#2383.format(875709016) +[2618199.473] {Default Queue} discarded wl_shm#2383.format(1) +[2618199.477] {Default Queue} discarded wl_shm#2383.format(0) +[2618199.481] {Default Queue} discarded wl_shm#2383.format(875708993) +[2618199.485] {Default Queue} discarded wl_shm#2384.format(875709016) +[2618199.489] {Default Queue} discarded wl_shm#2384.format(1) +[2618199.493] {Default Queue} discarded wl_shm#2384.format(0) +[2618199.497] {Default Queue} discarded wl_shm#2384.format(875708993) +[2618199.501] {Default Queue} discarded wl_shm#2385.format(875709016) +[2618199.513] {Default Queue} discarded wl_shm#2385.format(1) +[2618199.520] {Default Queue} discarded wl_shm#2385.format(0) +[2618199.525] {Default Queue} discarded wl_shm#2385.format(875708993) +[2618199.529] {Default Queue} wl_seat#2392.capabilities(7) +[2618199.533] {Default Queue} -> wl_seat#2392.get_keyboard(new id wl_keyboard#2408) +[2618199.538] {Default Queue} -> wl_seat#2392.get_pointer(new id wl_pointer#2409) +[2618199.543] {Default Queue} -> wl_data_device_manager#2388.get_data_device(new id wl_data_device#2410, wl_seat#2392) +[2618199.548] {Default Queue} -> zwp_primary_selection_device_manager_v1#2390.get_device(new id zwp_primary_selection_device_v1#2411, wl_seat#2392) +[2618199.556] {Default Queue} wl_output#2393.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618199.561] {Default Queue} wl_output#2393.mode(3, 1280, 800, 60000) +[2618199.566] {Default Queue} discarded wl_surface#3.enter(wl_output#2393) +[2618199.570] {Default Queue} discarded wl_surface#999.enter(wl_output#2393) +[2618199.574] {Default Queue} discarded wl_surface#1191.enter(wl_output#2393) +[2618199.578] {Default Queue} discarded wl_surface#1159.enter(wl_output#2393) +[2618199.582] {Default Queue} discarded wl_surface#1703.enter(wl_output#2393) +[2618199.585] {Default Queue} discarded wl_surface#2215.enter(wl_output#2393) +[2618199.589] {Default Queue} discarded wl_surface#423.enter(wl_output#2393) +[2618199.593] {Default Queue} discarded wl_surface#1447.enter(wl_output#2393) +[2618199.597] {Default Queue} discarded wl_surface#2023.enter(wl_output#2393) +[2618199.601] {Default Queue} discarded wl_surface#1639.enter(wl_output#2393) +[2618199.605] {Default Queue} discarded wl_surface#1319.enter(wl_output#2393) +[2618199.609] {Default Queue} discarded wl_surface#1127.enter(wl_output#2393) +[2618199.613] {Default Queue} discarded wl_surface#2151.enter(wl_output#2393) +[2618199.616] {Default Queue} discarded wl_surface#1063.enter(wl_output#2393) +[2618199.621] {Default Queue} discarded wl_surface#455.enter(wl_output#2393) +[2618199.625] {Default Queue} discarded wl_surface#1575.enter(wl_output#2393) +[2618199.628] {Default Queue} discarded wl_surface#1799.enter(wl_output#2393) +[2618199.632] {Default Queue} discarded wl_surface#1415.enter(wl_output#2393) +[2618199.636] {Default Queue} discarded wl_surface#2279.enter(wl_output#2393) +[2618199.640] {Default Queue} discarded wl_surface#1831.enter(wl_output#2393) +[2618199.644] {Default Queue} discarded wl_surface#903.enter(wl_output#2393) +[2618199.648] {Default Queue} discarded wl_surface#775.enter(wl_output#2393) +[2618199.652] {Default Queue} discarded wl_surface#1991.enter(wl_output#2393) +[2618199.656] {Default Queue} discarded wl_surface#1543.enter(wl_output#2393) +[2618199.660] {Default Queue} discarded wl_surface#135.enter(wl_output#2393) +[2618199.664] {Default Queue} discarded wl_surface#1287.enter(wl_output#2393) +[2618199.668] {Default Queue} discarded wl_surface#1031.enter(wl_output#2393) +[2618199.672] {Default Queue} discarded wl_surface#615.enter(wl_output#2393) +[2618199.676] {Default Queue} discarded wl_surface#231.enter(wl_output#2393) +[2618199.680] {Default Queue} discarded wl_surface#2343.enter(wl_output#2393) +[2618199.684] {Default Queue} discarded wl_surface#1863.enter(wl_output#2393) +[2618199.688] {Default Queue} discarded wl_surface#359.enter(wl_output#2393) +[2618199.691] {Default Queue} discarded wl_surface#583.enter(wl_output#2393) +[2618199.695] {Default Queue} discarded wl_surface#743.enter(wl_output#2393) +[2618199.699] {Default Queue} discarded wl_surface#967.enter(wl_output#2393) +[2618199.703] {Default Queue} discarded wl_surface#103.enter(wl_output#2393) +[2618199.707] {Default Queue} discarded wl_surface#327.enter(wl_output#2393) +[2618199.711] {Default Queue} discarded wl_surface#43.enter(wl_output#2393) +[2618199.715] {Default Queue} discarded wl_surface#2247.enter(wl_output#2393) +[2618199.719] {Default Queue} discarded wl_surface#807.enter(wl_output#2393) +[2618199.723] {Default Queue} discarded wl_surface#19.enter(wl_output#2393) +[2618199.727] {Default Queue} discarded wl_surface#1511.enter(wl_output#2393) +[2618199.734] {Default Queue} discarded wl_surface#199.enter(wl_output#2393) +[2618199.739] {Default Queue} discarded wl_surface#391.enter(wl_output#2393) +[2618199.743] {Default Queue} discarded wl_surface#935.enter(wl_output#2393) +[2618199.747] {Default Queue} discarded wl_surface#1671.enter(wl_output#2393) +[2618199.751] {Default Queue} discarded wl_surface#1351.enter(wl_output#2393) +[2618199.755] {Default Queue} discarded wl_surface#711.enter(wl_output#2393) +[2618199.759] {Default Queue} discarded wl_surface#1223.enter(wl_output#2393) +[2618199.763] {Default Queue} discarded wl_surface#1927.enter(wl_output#2393) +[2618199.766] {Default Queue} discarded wl_surface#871.enter(wl_output#2393) +[2618199.770] {Default Queue} discarded wl_surface#1895.enter(wl_output#2393) +[2618199.774] {Default Queue} discarded wl_surface#263.enter(wl_output#2393) +[2618199.778] {Default Queue} discarded wl_surface#551.enter(wl_output#2393) +[2618199.782] {Default Queue} discarded wl_surface#1735.enter(wl_output#2393) +[2618199.786] {Default Queue} discarded wl_surface#1479.enter(wl_output#2393) +[2618199.790] {Default Queue} discarded wl_surface#1772.enter(wl_output#2393) +[2618199.794] {Default Queue} discarded wl_surface#1959.enter(wl_output#2393) +[2618199.798] {Default Queue} discarded wl_surface#647.enter(wl_output#2393) +[2618199.802] {Default Queue} discarded wl_surface#2055.enter(wl_output#2393) +[2618199.806] {Default Queue} discarded wl_surface#71.enter(wl_output#2393) +[2618199.810] {Default Queue} discarded wl_surface#2183.enter(wl_output#2393) +[2618199.814] {Default Queue} discarded wl_surface#839.enter(wl_output#2393) +[2618199.817] {Default Queue} discarded wl_surface#1607.enter(wl_output#2393) +[2618199.822] {Default Queue} discarded wl_surface#1095.enter(wl_output#2393) +[2618199.826] {Default Queue} discarded wl_surface#1383.enter(wl_output#2393) +[2618199.829] {Default Queue} discarded wl_surface#487.enter(wl_output#2393) +[2618199.833] {Default Queue} discarded wl_surface#2311.enter(wl_output#2393) +[2618199.837] {Default Queue} discarded wl_surface#519.enter(wl_output#2393) +[2618199.841] {Default Queue} discarded wl_surface#2087.enter(wl_output#2393) +[2618199.845] {Default Queue} discarded wl_surface#295.enter(wl_output#2393) +[2618199.849] {Default Queue} discarded wl_surface#167.enter(wl_output#2393) +[2618199.853] {Default Queue} discarded wl_surface#1255.enter(wl_output#2393) +[2618199.857] {Default Queue} discarded wl_surface#679.enter(wl_output#2393) +[2618199.870] {Default Queue} discarded wl_surface#2119.enter(wl_output#2393) +[2618199.874] {Default Queue} wl_registry#2406.global(1, "wl_compositor", 6) +[2618199.879] {Default Queue} -> wl_registry#2406.bind(1, "wl_compositor", 1, new id [unknown]#2412) +[2618199.884] {Default Queue} wl_registry#2406.global(2, "wl_subcompositor", 1) +[2618199.889] {Default Queue} -> wl_registry#2406.bind(2, "wl_subcompositor", 1, new id [unknown]#2413) +[2618199.894] {Default Queue} wl_registry#2406.global(3, "xdg_wm_base", 6) +[2618199.898] {Default Queue} -> wl_registry#2406.bind(3, "xdg_wm_base", 1, new id [unknown]#2414) +[2618199.902] {Default Queue} wl_registry#2406.global(6, "zwlr_layer_shell_v1", 5) +[2618199.907] {Default Queue} wl_registry#2406.global(7, "ext_session_lock_manager_v1", 1) +[2618199.911] {Default Queue} wl_registry#2406.global(8, "wl_shm", 2) +[2618199.916] {Default Queue} -> wl_registry#2406.bind(8, "wl_shm", 1, new id [unknown]#2415) +[2618199.921] {Default Queue} -> wl_registry#2406.bind(8, "wl_shm", 1, new id [unknown]#2416) +[2618199.925] {Default Queue} -> wl_registry#2406.bind(8, "wl_shm", 1, new id [unknown]#2417) +[2618199.930] {Default Queue} wl_registry#2406.global(9, "zxdg_output_manager_v1", 3) +[2618199.934] {Default Queue} wl_registry#2406.global(10, "wp_fractional_scale_manager_v1", 1) +[2618199.938] {Default Queue} wl_registry#2406.global(11, "zwp_tablet_manager_v2", 1) +[2618199.942] {Default Queue} wl_registry#2406.global(12, "zwp_pointer_gestures_v1", 3) +[2618199.947] {Default Queue} wl_registry#2406.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618199.954] {Default Queue} -> wl_registry#2406.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2418) +[2618199.960] {Default Queue} wl_registry#2406.global(14, "zwp_pointer_constraints_v1", 1) +[2618199.964] {Default Queue} -> wl_registry#2406.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2419) +[2618199.969] {Default Queue} wl_registry#2406.global(15, "ext_idle_notifier_v1", 2) +[2618199.974] {Default Queue} wl_registry#2406.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618199.978] {Default Queue} wl_registry#2406.global(17, "wl_data_device_manager", 3) +[2618199.983] {Default Queue} -> wl_registry#2406.bind(17, "wl_data_device_manager", 2, new id [unknown]#2420) +[2618199.987] {Default Queue} -> wl_data_device_manager#2420.create_data_source(new id wl_data_source#2421) +[2618199.992] {Default Queue} -> wl_data_source#2421.offer("text/plain") +[2618199.996] {Default Queue} -> wl_data_source#2421.offer("text/plain;charset=utf-8") +[2618200.000] {Default Queue} -> wl_data_source#2421.offer("TEXT") +[2618200.005] {Default Queue} -> wl_data_source#2421.offer("STRING") +[2618200.009] {Default Queue} -> wl_data_source#2421.offer("UTF8_STRING") +[2618200.014] {Default Queue} wl_registry#2406.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618200.018] {Default Queue} -> wl_registry#2406.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2422) +[2618200.026] {Default Queue} -> zwp_primary_selection_device_manager_v1#2422.create_source(new id zwp_primary_selection_source_v1#2423) +[2618200.034] {Default Queue} -> zwp_primary_selection_source_v1#2423.offer("text/plain") +[2618200.038] {Default Queue} -> zwp_primary_selection_source_v1#2423.offer("text/plain;charset=utf-8") +[2618200.042] {Default Queue} -> zwp_primary_selection_source_v1#2423.offer("TEXT") +[2618200.046] {Default Queue} -> zwp_primary_selection_source_v1#2423.offer("STRING") +[2618200.050] {Default Queue} -> zwp_primary_selection_source_v1#2423.offer("UTF8_STRING") +[2618200.054] {Default Queue} wl_registry#2406.global(19, "zwlr_data_control_manager_v1", 2) +[2618200.059] {Default Queue} wl_registry#2406.global(20, "ext_data_control_manager_v1", 1) +[2618200.063] {Default Queue} wl_registry#2406.global(21, "wp_presentation", 2) +[2618200.067] {Default Queue} wl_registry#2406.global(22, "wp_security_context_manager_v1", 1) +[2618200.071] {Default Queue} wl_registry#2406.global(23, "zwp_text_input_manager_v3", 1) +[2618200.076] {Default Queue} wl_registry#2406.global(24, "zwp_input_method_manager_v2", 1) +[2618200.080] {Default Queue} wl_registry#2406.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618200.084] {Default Queue} wl_registry#2406.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618200.089] {Default Queue} wl_registry#2406.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618200.093] {Default Queue} wl_registry#2406.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618200.097] {Default Queue} wl_registry#2406.global(29, "ext_workspace_manager_v1", 1) +[2618200.102] {Default Queue} wl_registry#2406.global(30, "zwlr_output_manager_v1", 4) +[2618200.106] {Default Queue} wl_registry#2406.global(31, "zwlr_screencopy_manager_v1", 3) +[2618200.110] {Default Queue} wl_registry#2406.global(32, "wp_viewporter", 1) +[2618200.115] {Default Queue} wl_registry#2406.global(33, "zxdg_exporter_v2", 1) +[2618200.119] {Default Queue} wl_registry#2406.global(34, "zxdg_importer_v2", 1) +[2618200.123] {Default Queue} wl_registry#2406.global(36, "xdg_activation_v1", 1) +[2618200.127] {Default Queue} wl_registry#2406.global(37, "mutter_x11_interop", 1) +[2618200.132] {Default Queue} wl_registry#2406.global(38, "wl_seat", 9) +[2618200.136] {Default Queue} -> wl_registry#2406.bind(38, "wl_seat", 1, new id [unknown]#2424) +[2618200.141] {Default Queue} wl_registry#2406.global(39, "wp_cursor_shape_manager_v1", 2) +[2618200.145] {Default Queue} wl_registry#2406.global(40, "wl_output", 4) +[2618200.149] {Default Queue} -> wl_registry#2406.bind(40, "wl_output", 1, new id [unknown]#2425) +[2618200.157] {Default Queue} wl_callback#2407.done(0) +[2618200.162] {Default Queue} discarded wl_surface#2375.enter(wl_output#18) +[2618200.166] {Default Queue} discarded wl_surface#2375.enter(wl_output#57) +[2618200.170] {Default Queue} discarded wl_surface#2375.enter(wl_output#89) +[2618200.175] {Default Queue} discarded wl_surface#2375.enter(wl_output#121) +[2618200.178] {Default Queue} discarded wl_surface#2375.enter(wl_output#153) +[2618200.182] {Default Queue} discarded wl_surface#2375.enter(wl_output#185) +[2618200.186] {Default Queue} discarded wl_surface#2375.enter(wl_output#217) +[2618200.190] {Default Queue} discarded wl_surface#2375.enter(wl_output#249) +[2618200.194] {Default Queue} discarded wl_surface#2375.enter(wl_output#281) +[2618200.198] {Default Queue} discarded wl_surface#2375.enter(wl_output#313) +[2618200.202] {Default Queue} discarded wl_surface#2375.enter(wl_output#345) +[2618200.206] {Default Queue} discarded wl_surface#2375.enter(wl_output#377) +[2618200.210] {Default Queue} discarded wl_surface#2375.enter(wl_output#409) +[2618200.214] {Default Queue} discarded wl_surface#2375.enter(wl_output#441) +[2618200.217] {Default Queue} discarded wl_surface#2375.enter(wl_output#473) +[2618200.221] {Default Queue} discarded wl_surface#2375.enter(wl_output#505) +[2618200.226] {Default Queue} discarded wl_surface#2375.enter(wl_output#537) +[2618200.230] {Default Queue} discarded wl_surface#2375.enter(wl_output#569) +[2618200.233] {Default Queue} discarded wl_surface#2375.enter(wl_output#601) +[2618200.237] {Default Queue} discarded wl_surface#2375.enter(wl_output#633) +[2618200.241] {Default Queue} discarded wl_surface#2375.enter(wl_output#665) +[2618200.245] {Default Queue} discarded wl_surface#2375.enter(wl_output#697) +[2618200.249] {Default Queue} discarded wl_surface#2375.enter(wl_output#729) +[2618200.253] {Default Queue} discarded wl_surface#2375.enter(wl_output#761) +[2618200.257] {Default Queue} discarded wl_surface#2375.enter(wl_output#793) +[2618200.261] {Default Queue} discarded wl_surface#2375.enter(wl_output#825) +[2618200.265] {Default Queue} discarded wl_surface#2375.enter(wl_output#857) +[2618200.269] {Default Queue} discarded wl_surface#2375.enter(wl_output#889) +[2618200.273] {Default Queue} discarded wl_surface#2375.enter(wl_output#921) +[2618200.277] {Default Queue} discarded wl_surface#2375.enter(wl_output#953) +[2618200.281] {Default Queue} discarded wl_surface#2375.enter(wl_output#985) +[2618200.285] {Default Queue} discarded wl_surface#2375.enter(wl_output#1017) +[2618200.289] {Default Queue} discarded wl_surface#2375.enter(wl_output#1049) +[2618200.293] {Default Queue} discarded wl_surface#2375.enter(wl_output#1081) +[2618200.297] {Default Queue} discarded wl_surface#2375.enter(wl_output#1113) +[2618200.300] {Default Queue} discarded wl_surface#2375.enter(wl_output#1145) +[2618200.304] {Default Queue} discarded wl_surface#2375.enter(wl_output#1177) +[2618200.308] {Default Queue} discarded wl_surface#2375.enter(wl_output#1209) +[2618200.312] {Default Queue} discarded wl_surface#2375.enter(wl_output#1241) +[2618200.316] {Default Queue} discarded wl_surface#2375.enter(wl_output#1273) +[2618200.320] {Default Queue} discarded wl_surface#2375.enter(wl_output#1305) +[2618200.324] {Default Queue} discarded wl_surface#2375.enter(wl_output#1337) +[2618200.328] {Default Queue} discarded wl_surface#2375.enter(wl_output#1369) +[2618200.332] {Default Queue} discarded wl_surface#2375.enter(wl_output#1401) +[2618200.336] {Default Queue} discarded wl_surface#2375.enter(wl_output#1433) +[2618200.340] {Default Queue} discarded wl_surface#2375.enter(wl_output#1465) +[2618200.344] {Default Queue} discarded wl_surface#2375.enter(wl_output#1497) +[2618200.347] {Default Queue} discarded wl_surface#2375.enter(wl_output#1529) +[2618200.351] {Default Queue} discarded wl_surface#2375.enter(wl_output#1561) +[2618200.356] {Default Queue} discarded wl_surface#2375.enter(wl_output#1593) +[2618200.359] {Default Queue} discarded wl_surface#2375.enter(wl_output#1625) +[2618200.363] {Default Queue} discarded wl_surface#2375.enter(wl_output#1657) +[2618200.367] {Default Queue} discarded wl_surface#2375.enter(wl_output#1689) +[2618200.374] {Default Queue} discarded wl_surface#2375.enter(wl_output#1721) +[2618200.379] {Default Queue} discarded wl_surface#2375.enter(wl_output#1753) +[2618200.383] {Default Queue} discarded wl_surface#2375.enter(wl_output#1785) +[2618200.388] {Default Queue} discarded wl_surface#2375.enter(wl_output#1817) +[2618200.392] {Default Queue} discarded wl_surface#2375.enter(wl_output#1849) +[2618200.396] {Default Queue} discarded wl_surface#2375.enter(wl_output#1881) +[2618200.400] {Default Queue} discarded wl_surface#2375.enter(wl_output#1913) +[2618200.404] {Default Queue} discarded wl_surface#2375.enter(wl_output#1945) +[2618200.408] {Default Queue} discarded wl_surface#2375.enter(wl_output#1977) +[2618200.412] {Default Queue} discarded wl_surface#2375.enter(wl_output#2009) +[2618200.416] {Default Queue} discarded wl_surface#2375.enter(wl_output#2041) +[2618200.420] {Default Queue} discarded wl_surface#2375.enter(wl_output#2073) +[2618200.424] {Default Queue} discarded wl_surface#2375.enter(wl_output#2105) +[2618200.428] {Default Queue} discarded wl_surface#2375.enter(wl_output#2137) +[2618200.432] {Default Queue} discarded wl_surface#2375.enter(wl_output#2169) +[2618200.436] {Default Queue} discarded wl_surface#2375.enter(wl_output#2201) +[2618200.441] {Default Queue} discarded wl_surface#2375.enter(wl_output#2233) +[2618200.445] {Default Queue} discarded wl_surface#2375.enter(wl_output#2265) +[2618200.448] {Default Queue} discarded wl_surface#2375.enter(wl_output#2297) +[2618200.452] {Default Queue} discarded wl_surface#2375.enter(wl_output#2329) +[2618200.457] {Default Queue} discarded wl_surface#2375.enter(wl_output#2361) +[2618200.460] {Default Queue} discarded wl_surface#2375.enter(wl_output#2393) +[2618200.465] {Default Queue} -> wl_compositor#2380.create_surface(new id wl_surface#2407) +[2618200.469] {Default Queue} -> wl_subcompositor#2413.get_subsurface(new id wl_subsurface#2426, wl_surface#2407, wl_surface#2375) +[2618200.478] {Default Queue} -> wl_subsurface#2426.set_desync() +[2618200.482] {Default Queue} -> wl_subsurface#2426.set_position(0, 0) +[2618200.486] {Default Queue} -> wl_subsurface#2426.place_above(wl_surface#2375) +[2618200.533] {Default Queue} -> wl_shm#2415.create_pool(new id wl_shm_pool#2427, fd 384, 16) +[2618200.541] {Default Queue} -> wl_shm#2415.create_pool(new id wl_shm_pool#2428, fd 385, 16) +[2618200.545] {Default Queue} -> wl_shm_pool#2427.create_buffer(new id wl_buffer#2429, 0, 2, 2, 8, 0) +[2618200.550] {Default Queue} -> wl_shm_pool#2428.create_buffer(new id wl_buffer#2430, 0, 2, 2, 8, 0) +[2618200.559] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) +[2618200.563] {Default Queue} -> wl_surface#2407.commit() +[2618200.569] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) +[2618200.573] {Default Queue} -> wl_surface#2407.commit() +[2618200.577] {Default Queue} -> wl_compositor#2412.create_region(new id wl_region#2431) +[2618200.582] {Default Queue} -> wl_compositor#2412.create_region(new id wl_region#2432) +[2618200.586] {Default Queue} -> wl_region#2431.subtract(0, 0, 2, 2) +[2618200.590] {Default Queue} -> wl_region#2431.add(0, 0, 0, 0) +[2618200.595] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2618200.600] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2618200.604] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618200.608] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) +[2618200.615] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) +[2618200.620] {Default Queue} -> wl_surface#2407.commit() +[2618200.661] {Default Queue} -> wl_shm#2417.create_pool(new id wl_shm_pool#2433, fd 388, 640) +[2618200.667] {Default Queue} -> wl_shm#2417.create_pool(new id wl_shm_pool#2434, fd 389, 640) +[2618200.672] {Default Queue} -> wl_shm_pool#2433.create_buffer(new id wl_buffer#2435, 0, 10, 16, 40, 0) +[2618200.677] {Default Queue} -> wl_shm_pool#2434.create_buffer(new id wl_buffer#2436, 0, 10, 16, 40, 0) +[2618200.684] {Default Queue} -> wl_compositor#2412.create_surface(new id wl_surface#2437) +[2618200.691] {Default Queue} -> wl_surface#2437.attach(wl_buffer#2435, 0, 0) +[2618200.698] {Default Queue} -> wl_surface#2437.commit() +[2618200.703] {Default Queue} -> wl_surface#2437.attach(wl_buffer#2435, 0, 0) +[2618200.707] {Default Queue} -> wl_surface#2437.commit() +[2618200.713] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) +[2618200.719] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618200.723] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618200.731] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2438) +[2618200.735] {Default Queue} -> wl_display#1.sync(new id wl_callback#2439) +[2618205.559] {Display Queue} wl_display#1.delete_id(2439) +[2618205.571] {Default Queue} wl_keyboard#2408.keymap(1, fd 384, 68213) +[2618205.577] {Default Queue} wl_keyboard#2408.enter(566, wl_surface#19, array[0]) +[2618205.582] {Default Queue} wl_keyboard#2408.modifiers(566, 0, 0, 16, 0) +[2618205.587] {Default Queue} discarded wl_shm#2415.format(875709016) +[2618205.591] {Default Queue} discarded wl_shm#2415.format(1) +[2618205.595] {Default Queue} discarded wl_shm#2415.format(0) +[2618205.599] {Default Queue} discarded wl_shm#2415.format(875708993) +[2618205.603] {Default Queue} discarded wl_shm#2416.format(875709016) +[2618205.606] {Default Queue} discarded wl_shm#2416.format(1) +[2618205.610] {Default Queue} discarded wl_shm#2416.format(0) +[2618205.614] {Default Queue} discarded wl_shm#2416.format(875708993) +[2618205.619] {Default Queue} discarded wl_shm#2417.format(875709016) +[2618205.623] {Default Queue} discarded wl_shm#2417.format(1) +[2618205.627] {Default Queue} discarded wl_shm#2417.format(0) +[2618205.630] {Default Queue} discarded wl_shm#2417.format(875708993) +[2618205.634] {Default Queue} wl_seat#2424.capabilities(7) +[2618205.639] {Default Queue} -> wl_seat#2424.get_keyboard(new id wl_keyboard#2440) +[2618205.644] {Default Queue} -> wl_seat#2424.get_pointer(new id wl_pointer#2441) +[2618205.648] {Default Queue} -> wl_data_device_manager#2420.get_data_device(new id wl_data_device#2442, wl_seat#2424) +[2618205.653] {Default Queue} -> zwp_primary_selection_device_manager_v1#2422.get_device(new id zwp_primary_selection_device_v1#2443, wl_seat#2424) +[2618205.661] {Default Queue} wl_output#2425.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618205.666] {Default Queue} wl_output#2425.mode(3, 1280, 800, 60000) +[2618205.671] {Default Queue} discarded wl_surface#3.enter(wl_output#2425) +[2618205.675] {Default Queue} discarded wl_surface#999.enter(wl_output#2425) +[2618205.679] {Default Queue} discarded wl_surface#1191.enter(wl_output#2425) +[2618205.683] {Default Queue} discarded wl_surface#1159.enter(wl_output#2425) +[2618205.687] {Default Queue} discarded wl_surface#1703.enter(wl_output#2425) +[2618205.691] {Default Queue} discarded wl_surface#2215.enter(wl_output#2425) +[2618205.695] {Default Queue} discarded wl_surface#423.enter(wl_output#2425) +[2618205.699] {Default Queue} discarded wl_surface#1447.enter(wl_output#2425) +[2618205.703] {Default Queue} discarded wl_surface#2023.enter(wl_output#2425) +[2618205.706] {Default Queue} discarded wl_surface#1639.enter(wl_output#2425) +[2618205.710] {Default Queue} discarded wl_surface#1319.enter(wl_output#2425) +[2618205.714] {Default Queue} discarded wl_surface#1127.enter(wl_output#2425) +[2618205.718] {Default Queue} discarded wl_surface#2151.enter(wl_output#2425) +[2618205.722] {Default Queue} discarded wl_surface#2375.enter(wl_output#2425) +[2618205.726] {Default Queue} discarded wl_surface#1063.enter(wl_output#2425) +[2618205.730] {Default Queue} discarded wl_surface#455.enter(wl_output#2425) +[2618205.734] {Default Queue} discarded wl_surface#1575.enter(wl_output#2425) +[2618205.738] {Default Queue} discarded wl_surface#1799.enter(wl_output#2425) +[2618205.742] {Default Queue} discarded wl_surface#1415.enter(wl_output#2425) +[2618205.746] {Default Queue} discarded wl_surface#2279.enter(wl_output#2425) +[2618205.750] {Default Queue} discarded wl_surface#1831.enter(wl_output#2425) +[2618205.753] {Default Queue} discarded wl_surface#903.enter(wl_output#2425) +[2618205.763] {Default Queue} discarded wl_surface#775.enter(wl_output#2425) +[2618205.770] {Default Queue} discarded wl_surface#1991.enter(wl_output#2425) +[2618205.774] {Default Queue} discarded wl_surface#1543.enter(wl_output#2425) +[2618205.778] {Default Queue} discarded wl_surface#135.enter(wl_output#2425) +[2618205.782] {Default Queue} discarded wl_surface#1287.enter(wl_output#2425) +[2618205.786] {Default Queue} discarded wl_surface#1031.enter(wl_output#2425) +[2618205.790] {Default Queue} discarded wl_surface#615.enter(wl_output#2425) +[2618205.794] {Default Queue} discarded wl_surface#231.enter(wl_output#2425) +[2618205.798] {Default Queue} discarded wl_surface#2343.enter(wl_output#2425) +[2618205.801] {Default Queue} discarded wl_surface#1863.enter(wl_output#2425) +[2618205.805] {Default Queue} discarded wl_surface#359.enter(wl_output#2425) +[2618205.809] {Default Queue} discarded wl_surface#583.enter(wl_output#2425) +[2618205.813] {Default Queue} discarded wl_surface#743.enter(wl_output#2425) +[2618205.817] {Default Queue} discarded wl_surface#967.enter(wl_output#2425) +[2618205.821] {Default Queue} discarded wl_surface#103.enter(wl_output#2425) +[2618205.825] {Default Queue} discarded wl_surface#327.enter(wl_output#2425) +[2618205.829] {Default Queue} discarded wl_surface#43.enter(wl_output#2425) +[2618205.833] {Default Queue} discarded wl_surface#2247.enter(wl_output#2425) +[2618205.837] {Default Queue} discarded wl_surface#807.enter(wl_output#2425) +[2618205.841] {Default Queue} discarded wl_surface#19.enter(wl_output#2425) +[2618205.845] {Default Queue} discarded wl_surface#1511.enter(wl_output#2425) +[2618205.849] {Default Queue} discarded wl_surface#199.enter(wl_output#2425) +[2618205.853] {Default Queue} discarded wl_surface#391.enter(wl_output#2425) +[2618205.857] {Default Queue} discarded wl_surface#935.enter(wl_output#2425) +[2618205.870] {Default Queue} discarded wl_surface#1671.enter(wl_output#2425) +[2618205.874] {Default Queue} discarded wl_surface#1351.enter(wl_output#2425) +[2618205.878] {Default Queue} discarded wl_surface#711.enter(wl_output#2425) +[2618205.882] {Default Queue} discarded wl_surface#1223.enter(wl_output#2425) +[2618205.886] {Default Queue} discarded wl_surface#1927.enter(wl_output#2425) +[2618205.889] {Default Queue} discarded wl_surface#871.enter(wl_output#2425) +[2618205.893] {Default Queue} discarded wl_surface#1895.enter(wl_output#2425) +[2618205.897] {Default Queue} discarded wl_surface#263.enter(wl_output#2425) +[2618205.901] {Default Queue} discarded wl_surface#551.enter(wl_output#2425) +[2618205.905] {Default Queue} discarded wl_surface#1735.enter(wl_output#2425) +[2618205.909] {Default Queue} discarded wl_surface#1479.enter(wl_output#2425) +[2618205.913] {Default Queue} discarded wl_surface#1772.enter(wl_output#2425) +[2618205.917] {Default Queue} discarded wl_surface#1959.enter(wl_output#2425) +[2618205.921] {Default Queue} discarded wl_surface#647.enter(wl_output#2425) +[2618205.925] {Default Queue} discarded wl_surface#2055.enter(wl_output#2425) +[2618205.928] {Default Queue} discarded wl_surface#71.enter(wl_output#2425) +[2618205.932] {Default Queue} discarded wl_surface#2183.enter(wl_output#2425) +[2618205.937] {Default Queue} discarded wl_surface#839.enter(wl_output#2425) +[2618205.941] {Default Queue} discarded wl_surface#1607.enter(wl_output#2425) +[2618205.944] {Default Queue} discarded wl_surface#1095.enter(wl_output#2425) +[2618205.948] {Default Queue} discarded wl_surface#1383.enter(wl_output#2425) +[2618205.952] {Default Queue} discarded wl_surface#487.enter(wl_output#2425) +[2618205.956] {Default Queue} discarded wl_surface#2311.enter(wl_output#2425) +[2618205.960] {Default Queue} discarded wl_surface#519.enter(wl_output#2425) +[2618205.964] {Default Queue} discarded wl_surface#2087.enter(wl_output#2425) +[2618205.968] {Default Queue} discarded wl_surface#295.enter(wl_output#2425) +[2618205.972] {Default Queue} discarded wl_surface#167.enter(wl_output#2425) +[2618205.976] {Default Queue} discarded wl_surface#1255.enter(wl_output#2425) +[2618205.980] {Default Queue} discarded wl_surface#679.enter(wl_output#2425) +[2618205.987] {Default Queue} discarded wl_surface#2119.enter(wl_output#2425) +[2618205.993] {Default Queue} wl_registry#2438.global(1, "wl_compositor", 6) +[2618205.998] {Default Queue} -> wl_registry#2438.bind(1, "wl_compositor", 1, new id [unknown]#2444) +[2618206.003] {Default Queue} wl_registry#2438.global(2, "wl_subcompositor", 1) +[2618206.008] {Default Queue} -> wl_registry#2438.bind(2, "wl_subcompositor", 1, new id [unknown]#2445) +[2618206.012] {Default Queue} wl_registry#2438.global(3, "xdg_wm_base", 6) +[2618206.017] {Default Queue} -> wl_registry#2438.bind(3, "xdg_wm_base", 1, new id [unknown]#2446) +[2618206.022] {Default Queue} wl_registry#2438.global(6, "zwlr_layer_shell_v1", 5) +[2618206.026] {Default Queue} wl_registry#2438.global(7, "ext_session_lock_manager_v1", 1) +[2618206.030] {Default Queue} wl_registry#2438.global(8, "wl_shm", 2) +[2618206.035] {Default Queue} -> wl_registry#2438.bind(8, "wl_shm", 1, new id [unknown]#2447) +[2618206.040] {Default Queue} -> wl_registry#2438.bind(8, "wl_shm", 1, new id [unknown]#2448) +[2618206.044] {Default Queue} -> wl_registry#2438.bind(8, "wl_shm", 1, new id [unknown]#2449) +[2618206.049] {Default Queue} wl_registry#2438.global(9, "zxdg_output_manager_v1", 3) +[2618206.054] {Default Queue} wl_registry#2438.global(10, "wp_fractional_scale_manager_v1", 1) +[2618206.058] {Default Queue} wl_registry#2438.global(11, "zwp_tablet_manager_v2", 1) +[2618206.063] {Default Queue} wl_registry#2438.global(12, "zwp_pointer_gestures_v1", 3) +[2618206.067] {Default Queue} wl_registry#2438.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618206.072] {Default Queue} -> wl_registry#2438.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2450) +[2618206.076] {Default Queue} wl_registry#2438.global(14, "zwp_pointer_constraints_v1", 1) +[2618206.081] {Default Queue} -> wl_registry#2438.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2451) +[2618206.085] {Default Queue} wl_registry#2438.global(15, "ext_idle_notifier_v1", 2) +[2618206.089] {Default Queue} wl_registry#2438.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618206.094] {Default Queue} wl_registry#2438.global(17, "wl_data_device_manager", 3) +[2618206.098] {Default Queue} -> wl_registry#2438.bind(17, "wl_data_device_manager", 2, new id [unknown]#2452) +[2618206.103] {Default Queue} -> wl_data_device_manager#2452.create_data_source(new id wl_data_source#2453) +[2618206.107] {Default Queue} -> wl_data_source#2453.offer("text/plain") +[2618206.111] {Default Queue} -> wl_data_source#2453.offer("text/plain;charset=utf-8") +[2618206.115] {Default Queue} -> wl_data_source#2453.offer("TEXT") +[2618206.120] {Default Queue} -> wl_data_source#2453.offer("STRING") +[2618206.123] {Default Queue} -> wl_data_source#2453.offer("UTF8_STRING") +[2618206.128] {Default Queue} wl_registry#2438.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618206.133] {Default Queue} -> wl_registry#2438.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2454) +[2618206.140] {Default Queue} -> zwp_primary_selection_device_manager_v1#2454.create_source(new id zwp_primary_selection_source_v1#2455) +[2618206.148] {Default Queue} -> zwp_primary_selection_source_v1#2455.offer("text/plain") +[2618206.152] {Default Queue} -> zwp_primary_selection_source_v1#2455.offer("text/plain;charset=utf-8") +[2618206.156] {Default Queue} -> zwp_primary_selection_source_v1#2455.offer("TEXT") +[2618206.160] {Default Queue} -> zwp_primary_selection_source_v1#2455.offer("STRING") +[2618206.164] {Default Queue} -> zwp_primary_selection_source_v1#2455.offer("UTF8_STRING") +[2618206.169] {Default Queue} wl_registry#2438.global(19, "zwlr_data_control_manager_v1", 2) +[2618206.173] {Default Queue} wl_registry#2438.global(20, "ext_data_control_manager_v1", 1) +[2618206.177] {Default Queue} wl_registry#2438.global(21, "wp_presentation", 2) +[2618206.181] {Default Queue} wl_registry#2438.global(22, "wp_security_context_manager_v1", 1) +[2618206.186] {Default Queue} wl_registry#2438.global(23, "zwp_text_input_manager_v3", 1) +[2618206.193] {Default Queue} wl_registry#2438.global(24, "zwp_input_method_manager_v2", 1) +[2618206.199] {Default Queue} wl_registry#2438.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618206.203] {Default Queue} wl_registry#2438.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618206.208] {Default Queue} wl_registry#2438.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618206.212] {Default Queue} wl_registry#2438.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618206.216] {Default Queue} wl_registry#2438.global(29, "ext_workspace_manager_v1", 1) +[2618206.221] {Default Queue} wl_registry#2438.global(30, "zwlr_output_manager_v1", 4) +[2618206.225] {Default Queue} wl_registry#2438.global(31, "zwlr_screencopy_manager_v1", 3) +[2618206.229] {Default Queue} wl_registry#2438.global(32, "wp_viewporter", 1) +[2618206.233] {Default Queue} wl_registry#2438.global(33, "zxdg_exporter_v2", 1) +[2618206.238] {Default Queue} wl_registry#2438.global(34, "zxdg_importer_v2", 1) +[2618206.242] {Default Queue} wl_registry#2438.global(36, "xdg_activation_v1", 1) +[2618206.247] {Default Queue} wl_registry#2438.global(37, "mutter_x11_interop", 1) +[2618206.251] {Default Queue} wl_registry#2438.global(38, "wl_seat", 9) +[2618206.255] {Default Queue} -> wl_registry#2438.bind(38, "wl_seat", 1, new id [unknown]#2456) +[2618206.260] {Default Queue} wl_registry#2438.global(39, "wp_cursor_shape_manager_v1", 2) +[2618206.264] {Default Queue} wl_registry#2438.global(40, "wl_output", 4) +[2618206.269] {Default Queue} -> wl_registry#2438.bind(40, "wl_output", 1, new id [unknown]#2457) +[2618206.273] {Default Queue} wl_callback#2439.done(0) +[2618206.277] {Default Queue} discarded wl_surface#2407.enter(wl_output#18) +[2618206.282] {Default Queue} discarded wl_surface#2407.enter(wl_output#57) +[2618206.285] {Default Queue} discarded wl_surface#2407.enter(wl_output#89) +[2618206.289] {Default Queue} discarded wl_surface#2407.enter(wl_output#121) +[2618206.294] {Default Queue} discarded wl_surface#2407.enter(wl_output#153) +[2618206.298] {Default Queue} discarded wl_surface#2407.enter(wl_output#185) +[2618206.302] {Default Queue} discarded wl_surface#2407.enter(wl_output#217) +[2618206.305] {Default Queue} discarded wl_surface#2407.enter(wl_output#249) +[2618206.309] {Default Queue} discarded wl_surface#2407.enter(wl_output#281) +[2618206.314] {Default Queue} discarded wl_surface#2407.enter(wl_output#313) +[2618206.317] {Default Queue} discarded wl_surface#2407.enter(wl_output#345) +[2618206.321] {Default Queue} discarded wl_surface#2407.enter(wl_output#377) +[2618206.326] {Default Queue} discarded wl_surface#2407.enter(wl_output#409) +[2618206.330] {Default Queue} discarded wl_surface#2407.enter(wl_output#441) +[2618206.333] {Default Queue} discarded wl_surface#2407.enter(wl_output#473) +[2618206.337] {Default Queue} discarded wl_surface#2407.enter(wl_output#505) +[2618206.341] {Default Queue} discarded wl_surface#2407.enter(wl_output#537) +[2618206.345] {Default Queue} discarded wl_surface#2407.enter(wl_output#569) +[2618206.349] {Default Queue} discarded wl_surface#2407.enter(wl_output#601) +[2618206.353] {Default Queue} discarded wl_surface#2407.enter(wl_output#633) +[2618206.357] {Default Queue} discarded wl_surface#2407.enter(wl_output#665) +[2618206.361] {Default Queue} discarded wl_surface#2407.enter(wl_output#697) +[2618206.365] {Default Queue} discarded wl_surface#2407.enter(wl_output#729) +[2618206.368] {Default Queue} discarded wl_surface#2407.enter(wl_output#761) +[2618206.372] {Default Queue} discarded wl_surface#2407.enter(wl_output#793) +[2618206.376] {Default Queue} discarded wl_surface#2407.enter(wl_output#825) +[2618206.380] {Default Queue} discarded wl_surface#2407.enter(wl_output#857) +[2618206.384] {Default Queue} discarded wl_surface#2407.enter(wl_output#889) +[2618206.388] {Default Queue} discarded wl_surface#2407.enter(wl_output#921) +[2618206.392] {Default Queue} discarded wl_surface#2407.enter(wl_output#953) +[2618206.396] {Default Queue} discarded wl_surface#2407.enter(wl_output#985) +[2618206.400] {Default Queue} discarded wl_surface#2407.enter(wl_output#1017) +[2618206.408] {Default Queue} discarded wl_surface#2407.enter(wl_output#1049) +[2618206.413] {Default Queue} discarded wl_surface#2407.enter(wl_output#1081) +[2618206.417] {Default Queue} discarded wl_surface#2407.enter(wl_output#1113) +[2618206.421] {Default Queue} discarded wl_surface#2407.enter(wl_output#1145) +[2618206.425] {Default Queue} discarded wl_surface#2407.enter(wl_output#1177) +[2618206.429] {Default Queue} discarded wl_surface#2407.enter(wl_output#1209) +[2618206.433] {Default Queue} discarded wl_surface#2407.enter(wl_output#1241) +[2618206.437] {Default Queue} discarded wl_surface#2407.enter(wl_output#1273) +[2618206.442] {Default Queue} discarded wl_surface#2407.enter(wl_output#1305) +[2618206.445] {Default Queue} discarded wl_surface#2407.enter(wl_output#1337) +[2618206.450] {Default Queue} discarded wl_surface#2407.enter(wl_output#1369) +[2618206.454] {Default Queue} discarded wl_surface#2407.enter(wl_output#1401) +[2618206.457] {Default Queue} discarded wl_surface#2407.enter(wl_output#1433) +[2618206.461] {Default Queue} discarded wl_surface#2407.enter(wl_output#1465) +[2618206.465] {Default Queue} discarded wl_surface#2407.enter(wl_output#1497) +[2618206.470] {Default Queue} discarded wl_surface#2407.enter(wl_output#1529) +[2618206.474] {Default Queue} discarded wl_surface#2407.enter(wl_output#1561) +[2618206.478] {Default Queue} discarded wl_surface#2407.enter(wl_output#1593) +[2618206.483] {Default Queue} discarded wl_surface#2407.enter(wl_output#1625) +[2618206.487] {Default Queue} discarded wl_surface#2407.enter(wl_output#1657) +[2618206.491] {Default Queue} discarded wl_surface#2407.enter(wl_output#1689) +[2618206.494] {Default Queue} discarded wl_surface#2407.enter(wl_output#1721) +[2618206.498] {Default Queue} discarded wl_surface#2407.enter(wl_output#1753) +[2618206.503] {Default Queue} discarded wl_surface#2407.enter(wl_output#1785) +[2618206.507] {Default Queue} discarded wl_surface#2407.enter(wl_output#1817) +[2618206.511] {Default Queue} discarded wl_surface#2407.enter(wl_output#1849) +[2618206.515] {Default Queue} discarded wl_surface#2407.enter(wl_output#1881) +[2618206.519] {Default Queue} discarded wl_surface#2407.enter(wl_output#1913) +[2618206.523] {Default Queue} discarded wl_surface#2407.enter(wl_output#1945) +[2618206.527] {Default Queue} discarded wl_surface#2407.enter(wl_output#1977) +[2618206.531] {Default Queue} discarded wl_surface#2407.enter(wl_output#2009) +[2618206.535] {Default Queue} discarded wl_surface#2407.enter(wl_output#2041) +[2618206.539] {Default Queue} discarded wl_surface#2407.enter(wl_output#2073) +[2618206.543] {Default Queue} discarded wl_surface#2407.enter(wl_output#2105) +[2618206.547] {Default Queue} discarded wl_surface#2407.enter(wl_output#2137) +[2618206.551] {Default Queue} discarded wl_surface#2407.enter(wl_output#2169) +[2618206.555] {Default Queue} discarded wl_surface#2407.enter(wl_output#2201) +[2618206.559] {Default Queue} discarded wl_surface#2407.enter(wl_output#2233) +[2618206.563] {Default Queue} discarded wl_surface#2407.enter(wl_output#2265) +[2618206.567] {Default Queue} discarded wl_surface#2407.enter(wl_output#2297) +[2618206.571] {Default Queue} discarded wl_surface#2407.enter(wl_output#2329) +[2618206.575] {Default Queue} discarded wl_surface#2407.enter(wl_output#2361) +[2618206.579] {Default Queue} discarded wl_surface#2407.enter(wl_output#2393) +[2618206.583] {Default Queue} discarded wl_surface#2407.enter(wl_output#2425) +[2618206.587] {Default Queue} -> wl_compositor#2380.create_surface(new id wl_surface#2439) +[2618206.592] {Default Queue} -> wl_subcompositor#2445.get_subsurface(new id wl_subsurface#2458, wl_surface#2439, wl_surface#2375) +[2618206.599] {Default Queue} -> wl_subsurface#2458.set_desync() +[2618206.604] {Default Queue} -> wl_subsurface#2458.set_position(0, 0) +[2618206.608] {Default Queue} -> wl_subsurface#2458.place_above(wl_surface#2375) +[2618206.654] {Default Queue} -> wl_shm#2447.create_pool(new id wl_shm_pool#2459, fd 389, 16) +[2618206.662] {Default Queue} -> wl_shm#2447.create_pool(new id wl_shm_pool#2460, fd 390, 16) +[2618206.669] {Default Queue} -> wl_shm_pool#2459.create_buffer(new id wl_buffer#2461, 0, 2, 2, 8, 0) +[2618206.675] {Default Queue} -> wl_shm_pool#2460.create_buffer(new id wl_buffer#2462, 0, 2, 2, 8, 0) +[2618206.683] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) +[2618206.688] {Default Queue} -> wl_surface#2439.commit() +[2618206.694] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) +[2618206.699] {Default Queue} -> wl_surface#2439.commit() +[2618206.703] {Default Queue} -> wl_compositor#2444.create_region(new id wl_region#2463) +[2618206.708] {Default Queue} -> wl_compositor#2444.create_region(new id wl_region#2464) +[2618206.712] {Default Queue} -> wl_region#2463.subtract(0, 0, 2, 2) +[2618206.717] {Default Queue} -> wl_region#2463.add(0, 0, 0, 0) +[2618206.721] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) +[2618206.725] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) +[2618206.730] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) +[2618206.734] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) +[2618206.741] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) +[2618206.746] {Default Queue} -> wl_surface#2439.commit() +[2618206.787] {Default Queue} -> wl_shm#2449.create_pool(new id wl_shm_pool#2465, fd 393, 640) +[2618206.795] {Default Queue} -> wl_shm#2449.create_pool(new id wl_shm_pool#2466, fd 394, 640) +[2618206.799] {Default Queue} -> wl_shm_pool#2465.create_buffer(new id wl_buffer#2467, 0, 10, 16, 40, 0) +[2618206.804] {Default Queue} -> wl_shm_pool#2466.create_buffer(new id wl_buffer#2468, 0, 10, 16, 40, 0) +[2618206.812] {Default Queue} -> wl_compositor#2444.create_surface(new id wl_surface#2469) +[2618206.816] {Default Queue} -> wl_surface#2469.attach(wl_buffer#2467, 0, 0) +[2618206.821] {Default Queue} -> wl_surface#2469.commit() +[2618206.826] {Default Queue} -> wl_surface#2469.attach(wl_buffer#2467, 0, 0) +[2618206.831] {Default Queue} -> wl_surface#2469.commit() +[2618206.836] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) +[2618206.844] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2470) +[2618206.849] {Default Queue} -> wl_display#1.sync(new id wl_callback#2471) +[2618210.260] {Display Queue} wl_display#1.delete_id(2471) +[2618210.272] {Default Queue} wl_keyboard#2440.keymap(1, fd 389, 68213) +[2618210.277] {Default Queue} wl_keyboard#2440.enter(566, wl_surface#19, array[0]) +[2618210.283] {Default Queue} wl_keyboard#2440.modifiers(566, 0, 0, 16, 0) +[2618210.287] {Default Queue} discarded wl_shm#2447.format(875709016) +[2618210.291] {Default Queue} discarded wl_shm#2447.format(1) +[2618210.295] {Default Queue} discarded wl_shm#2447.format(0) +[2618210.299] {Default Queue} discarded wl_shm#2447.format(875708993) +[2618210.303] {Default Queue} discarded wl_shm#2448.format(875709016) +[2618210.307] {Default Queue} discarded wl_shm#2448.format(1) +[2618210.311] {Default Queue} discarded wl_shm#2448.format(0) +[2618210.315] {Default Queue} discarded wl_shm#2448.format(875708993) +[2618210.319] {Default Queue} discarded wl_shm#2449.format(875709016) +[2618210.322] {Default Queue} discarded wl_shm#2449.format(1) +[2618210.326] {Default Queue} discarded wl_shm#2449.format(0) +[2618210.330] {Default Queue} discarded wl_shm#2449.format(875708993) +[2618210.334] {Default Queue} wl_seat#2456.capabilities(7) +[2618210.339] {Default Queue} -> wl_seat#2456.get_keyboard(new id wl_keyboard#2472) +[2618210.343] {Default Queue} -> wl_seat#2456.get_pointer(new id wl_pointer#2473) +[2618210.348] {Default Queue} -> wl_data_device_manager#2452.get_data_device(new id wl_data_device#2474, wl_seat#2456) +[2618210.353] {Default Queue} -> zwp_primary_selection_device_manager_v1#2454.get_device(new id zwp_primary_selection_device_v1#2475, wl_seat#2456) +[2618210.361] {Default Queue} wl_output#2457.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618210.366] {Default Queue} wl_output#2457.mode(3, 1280, 800, 60000) +[2618210.370] {Default Queue} discarded wl_surface#3.enter(wl_output#2457) +[2618210.374] {Default Queue} discarded wl_surface#999.enter(wl_output#2457) +[2618210.383] {Default Queue} discarded wl_surface#1191.enter(wl_output#2457) +[2618210.390] {Default Queue} discarded wl_surface#1159.enter(wl_output#2457) +[2618210.394] {Default Queue} discarded wl_surface#1703.enter(wl_output#2457) +[2618210.398] {Default Queue} discarded wl_surface#2215.enter(wl_output#2457) +[2618210.402] {Default Queue} discarded wl_surface#423.enter(wl_output#2457) +[2618210.406] {Default Queue} discarded wl_surface#1447.enter(wl_output#2457) +[2618210.409] {Default Queue} discarded wl_surface#2023.enter(wl_output#2457) +[2618210.413] {Default Queue} discarded wl_surface#1639.enter(wl_output#2457) +[2618210.417] {Default Queue} discarded wl_surface#1319.enter(wl_output#2457) +[2618210.421] {Default Queue} discarded wl_surface#1127.enter(wl_output#2457) +[2618210.425] {Default Queue} discarded wl_surface#2151.enter(wl_output#2457) +[2618210.429] {Default Queue} discarded wl_surface#2375.enter(wl_output#2457) +[2618210.433] {Default Queue} discarded wl_surface#1063.enter(wl_output#2457) +[2618210.437] {Default Queue} discarded wl_surface#455.enter(wl_output#2457) +[2618210.441] {Default Queue} discarded wl_surface#1575.enter(wl_output#2457) +[2618210.444] {Default Queue} discarded wl_surface#1799.enter(wl_output#2457) +[2618210.448] {Default Queue} discarded wl_surface#1415.enter(wl_output#2457) +[2618210.453] {Default Queue} discarded wl_surface#2279.enter(wl_output#2457) +[2618210.457] {Default Queue} discarded wl_surface#1831.enter(wl_output#2457) +[2618210.460] {Default Queue} discarded wl_surface#903.enter(wl_output#2457) +[2618210.464] {Default Queue} discarded wl_surface#775.enter(wl_output#2457) +[2618210.468] {Default Queue} discarded wl_surface#1991.enter(wl_output#2457) +[2618210.472] {Default Queue} discarded wl_surface#1543.enter(wl_output#2457) +[2618210.476] {Default Queue} discarded wl_surface#135.enter(wl_output#2457) +[2618210.480] {Default Queue} discarded wl_surface#1287.enter(wl_output#2457) +[2618210.484] {Default Queue} discarded wl_surface#1031.enter(wl_output#2457) +[2618210.488] {Default Queue} discarded wl_surface#615.enter(wl_output#2457) +[2618210.492] {Default Queue} discarded wl_surface#231.enter(wl_output#2457) +[2618210.496] {Default Queue} discarded wl_surface#2343.enter(wl_output#2457) +[2618210.499] {Default Queue} discarded wl_surface#1863.enter(wl_output#2457) +[2618210.503] {Default Queue} discarded wl_surface#359.enter(wl_output#2457) +[2618210.507] {Default Queue} discarded wl_surface#583.enter(wl_output#2457) +[2618210.511] {Default Queue} discarded wl_surface#743.enter(wl_output#2457) +[2618210.515] {Default Queue} discarded wl_surface#967.enter(wl_output#2457) +[2618210.519] {Default Queue} discarded wl_surface#103.enter(wl_output#2457) +[2618210.523] {Default Queue} discarded wl_surface#327.enter(wl_output#2457) +[2618210.527] {Default Queue} discarded wl_surface#43.enter(wl_output#2457) +[2618210.531] {Default Queue} discarded wl_surface#2247.enter(wl_output#2457) +[2618210.535] {Default Queue} discarded wl_surface#807.enter(wl_output#2457) +[2618210.539] {Default Queue} discarded wl_surface#19.enter(wl_output#2457) +[2618210.543] {Default Queue} discarded wl_surface#1511.enter(wl_output#2457) +[2618210.547] {Default Queue} discarded wl_surface#199.enter(wl_output#2457) +[2618210.551] {Default Queue} discarded wl_surface#391.enter(wl_output#2457) +[2618210.555] {Default Queue} discarded wl_surface#935.enter(wl_output#2457) +[2618210.559] {Default Queue} discarded wl_surface#1671.enter(wl_output#2457) +[2618210.563] {Default Queue} discarded wl_surface#1351.enter(wl_output#2457) +[2618210.566] {Default Queue} discarded wl_surface#711.enter(wl_output#2457) +[2618210.570] {Default Queue} discarded wl_surface#1223.enter(wl_output#2457) +[2618210.574] {Default Queue} discarded wl_surface#1927.enter(wl_output#2457) +[2618210.578] {Default Queue} discarded wl_surface#871.enter(wl_output#2457) +[2618210.582] {Default Queue} discarded wl_surface#1895.enter(wl_output#2457) +[2618210.586] {Default Queue} discarded wl_surface#263.enter(wl_output#2457) +[2618210.590] {Default Queue} discarded wl_surface#551.enter(wl_output#2457) +[2618210.597] {Default Queue} discarded wl_surface#1735.enter(wl_output#2457) +[2618210.603] {Default Queue} discarded wl_surface#1479.enter(wl_output#2457) +[2618210.607] {Default Queue} discarded wl_surface#1772.enter(wl_output#2457) +[2618210.611] {Default Queue} discarded wl_surface#1959.enter(wl_output#2457) +[2618210.615] {Default Queue} discarded wl_surface#647.enter(wl_output#2457) +[2618210.618] {Default Queue} discarded wl_surface#2055.enter(wl_output#2457) +[2618210.622] {Default Queue} discarded wl_surface#71.enter(wl_output#2457) +[2618210.626] {Default Queue} discarded wl_surface#2183.enter(wl_output#2457) +[2618210.630] {Default Queue} discarded wl_surface#839.enter(wl_output#2457) +[2618210.634] {Default Queue} discarded wl_surface#1607.enter(wl_output#2457) +[2618210.638] {Default Queue} discarded wl_surface#1095.enter(wl_output#2457) +[2618210.642] {Default Queue} discarded wl_surface#1383.enter(wl_output#2457) +[2618210.646] {Default Queue} discarded wl_surface#487.enter(wl_output#2457) +[2618210.650] {Default Queue} discarded wl_surface#2311.enter(wl_output#2457) +[2618210.654] {Default Queue} discarded wl_surface#519.enter(wl_output#2457) +[2618210.658] {Default Queue} discarded wl_surface#2087.enter(wl_output#2457) +[2618210.661] {Default Queue} discarded wl_surface#295.enter(wl_output#2457) +[2618210.665] {Default Queue} discarded wl_surface#167.enter(wl_output#2457) +[2618210.669] {Default Queue} discarded wl_surface#1255.enter(wl_output#2457) +[2618210.673] {Default Queue} discarded wl_surface#679.enter(wl_output#2457) +[2618210.677] {Default Queue} discarded wl_surface#2407.enter(wl_output#2457) +[2618210.681] {Default Queue} discarded wl_surface#2119.enter(wl_output#2457) +[2618210.685] {Default Queue} wl_registry#2470.global(1, "wl_compositor", 6) +[2618210.690] {Default Queue} -> wl_registry#2470.bind(1, "wl_compositor", 1, new id [unknown]#2476) +[2618210.695] {Default Queue} wl_registry#2470.global(2, "wl_subcompositor", 1) +[2618210.700] {Default Queue} -> wl_registry#2470.bind(2, "wl_subcompositor", 1, new id [unknown]#2477) +[2618210.704] {Default Queue} wl_registry#2470.global(3, "xdg_wm_base", 6) +[2618210.709] {Default Queue} -> wl_registry#2470.bind(3, "xdg_wm_base", 1, new id [unknown]#2478) +[2618210.713] {Default Queue} wl_registry#2470.global(6, "zwlr_layer_shell_v1", 5) +[2618210.718] {Default Queue} wl_registry#2470.global(7, "ext_session_lock_manager_v1", 1) +[2618210.722] {Default Queue} wl_registry#2470.global(8, "wl_shm", 2) +[2618210.727] {Default Queue} -> wl_registry#2470.bind(8, "wl_shm", 1, new id [unknown]#2479) +[2618210.732] {Default Queue} -> wl_registry#2470.bind(8, "wl_shm", 1, new id [unknown]#2480) +[2618210.736] {Default Queue} -> wl_registry#2470.bind(8, "wl_shm", 1, new id [unknown]#2481) +[2618210.740] {Default Queue} wl_registry#2470.global(9, "zxdg_output_manager_v1", 3) +[2618210.745] {Default Queue} wl_registry#2470.global(10, "wp_fractional_scale_manager_v1", 1) +[2618210.749] {Default Queue} wl_registry#2470.global(11, "zwp_tablet_manager_v2", 1) +[2618210.754] {Default Queue} wl_registry#2470.global(12, "zwp_pointer_gestures_v1", 3) +[2618210.758] {Default Queue} wl_registry#2470.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618210.762] {Default Queue} -> wl_registry#2470.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2482) +[2618210.767] {Default Queue} wl_registry#2470.global(14, "zwp_pointer_constraints_v1", 1) +[2618210.771] {Default Queue} -> wl_registry#2470.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2483) +[2618210.776] {Default Queue} wl_registry#2470.global(15, "ext_idle_notifier_v1", 2) +[2618210.780] {Default Queue} wl_registry#2470.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618210.785] {Default Queue} wl_registry#2470.global(17, "wl_data_device_manager", 3) +[2618210.790] {Default Queue} -> wl_registry#2470.bind(17, "wl_data_device_manager", 2, new id [unknown]#2484) +[2618210.794] {Default Queue} -> wl_data_device_manager#2484.create_data_source(new id wl_data_source#2485) +[2618210.801] {Default Queue} -> wl_data_source#2485.offer("text/plain") +[2618210.807] {Default Queue} -> wl_data_source#2485.offer("text/plain;charset=utf-8") +[2618210.811] {Default Queue} -> wl_data_source#2485.offer("TEXT") +[2618210.815] {Default Queue} -> wl_data_source#2485.offer("STRING") +[2618210.819] {Default Queue} -> wl_data_source#2485.offer("UTF8_STRING") +[2618210.823] {Default Queue} wl_registry#2470.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618210.828] {Default Queue} -> wl_registry#2470.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2486) +[2618210.836] {Default Queue} -> zwp_primary_selection_device_manager_v1#2486.create_source(new id zwp_primary_selection_source_v1#2487) +[2618210.844] {Default Queue} -> zwp_primary_selection_source_v1#2487.offer("text/plain") +[2618210.848] {Default Queue} -> zwp_primary_selection_source_v1#2487.offer("text/plain;charset=utf-8") +[2618210.852] {Default Queue} -> zwp_primary_selection_source_v1#2487.offer("TEXT") +[2618210.856] {Default Queue} -> zwp_primary_selection_source_v1#2487.offer("STRING") +[2618210.868] {Default Queue} -> zwp_primary_selection_source_v1#2487.offer("UTF8_STRING") +[2618210.872] {Default Queue} wl_registry#2470.global(19, "zwlr_data_control_manager_v1", 2) +[2618210.877] {Default Queue} wl_registry#2470.global(20, "ext_data_control_manager_v1", 1) +[2618210.881] {Default Queue} wl_registry#2470.global(21, "wp_presentation", 2) +[2618210.914] {Default Queue} wl_registry#2470.global(22, "wp_security_context_manager_v1", 1) +[2618210.920] {Default Queue} wl_registry#2470.global(23, "zwp_text_input_manager_v3", 1) +[2618210.925] {Default Queue} wl_registry#2470.global(24, "zwp_input_method_manager_v2", 1) +[2618210.930] {Default Queue} wl_registry#2470.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618210.935] {Default Queue} wl_registry#2470.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618210.939] {Default Queue} wl_registry#2470.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618210.945] {Default Queue} wl_registry#2470.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618210.949] {Default Queue} wl_registry#2470.global(29, "ext_workspace_manager_v1", 1) +[2618210.953] {Default Queue} wl_registry#2470.global(30, "zwlr_output_manager_v1", 4) +[2618210.958] {Default Queue} wl_registry#2470.global(31, "zwlr_screencopy_manager_v1", 3) +[2618210.962] {Default Queue} wl_registry#2470.global(32, "wp_viewporter", 1) +[2618210.967] {Default Queue} wl_registry#2470.global(33, "zxdg_exporter_v2", 1) +[2618210.971] {Default Queue} wl_registry#2470.global(34, "zxdg_importer_v2", 1) +[2618210.975] {Default Queue} wl_registry#2470.global(36, "xdg_activation_v1", 1) +[2618210.979] {Default Queue} wl_registry#2470.global(37, "mutter_x11_interop", 1) +[2618210.983] {Default Queue} wl_registry#2470.global(38, "wl_seat", 9) +[2618210.989] {Default Queue} -> wl_registry#2470.bind(38, "wl_seat", 1, new id [unknown]#2488) +[2618210.994] {Default Queue} wl_registry#2470.global(39, "wp_cursor_shape_manager_v1", 2) +[2618210.998] {Default Queue} wl_registry#2470.global(40, "wl_output", 4) +[2618211.003] {Default Queue} -> wl_registry#2470.bind(40, "wl_output", 1, new id [unknown]#2489) +[2618211.007] {Default Queue} wl_callback#2471.done(0) +[2618211.012] {Default Queue} discarded wl_surface#2439.enter(wl_output#18) +[2618211.016] {Default Queue} discarded wl_surface#2439.enter(wl_output#57) +[2618211.020] {Default Queue} discarded wl_surface#2439.enter(wl_output#89) +[2618211.024] {Default Queue} discarded wl_surface#2439.enter(wl_output#121) +[2618211.028] {Default Queue} discarded wl_surface#2439.enter(wl_output#153) +[2618211.032] {Default Queue} discarded wl_surface#2439.enter(wl_output#185) +[2618211.036] {Default Queue} discarded wl_surface#2439.enter(wl_output#217) +[2618211.040] {Default Queue} discarded wl_surface#2439.enter(wl_output#249) +[2618211.044] {Default Queue} discarded wl_surface#2439.enter(wl_output#281) +[2618211.048] {Default Queue} discarded wl_surface#2439.enter(wl_output#313) +[2618211.052] {Default Queue} discarded wl_surface#2439.enter(wl_output#345) +[2618211.061] {Default Queue} discarded wl_surface#2439.enter(wl_output#377) +[2618211.068] {Default Queue} discarded wl_surface#2439.enter(wl_output#409) +[2618211.072] {Default Queue} discarded wl_surface#2439.enter(wl_output#441) +[2618211.076] {Default Queue} discarded wl_surface#2439.enter(wl_output#473) +[2618211.080] {Default Queue} discarded wl_surface#2439.enter(wl_output#505) +[2618211.084] {Default Queue} discarded wl_surface#2439.enter(wl_output#537) +[2618211.088] {Default Queue} discarded wl_surface#2439.enter(wl_output#569) +[2618211.092] {Default Queue} discarded wl_surface#2439.enter(wl_output#601) +[2618211.096] {Default Queue} discarded wl_surface#2439.enter(wl_output#633) +[2618211.100] {Default Queue} discarded wl_surface#2439.enter(wl_output#665) +[2618211.104] {Default Queue} discarded wl_surface#2439.enter(wl_output#697) +[2618211.108] {Default Queue} discarded wl_surface#2439.enter(wl_output#729) +[2618211.112] {Default Queue} discarded wl_surface#2439.enter(wl_output#761) +[2618211.116] {Default Queue} discarded wl_surface#2439.enter(wl_output#793) +[2618211.120] {Default Queue} discarded wl_surface#2439.enter(wl_output#825) +[2618211.124] {Default Queue} discarded wl_surface#2439.enter(wl_output#857) +[2618211.128] {Default Queue} discarded wl_surface#2439.enter(wl_output#889) +[2618211.132] {Default Queue} discarded wl_surface#2439.enter(wl_output#921) +[2618211.136] {Default Queue} discarded wl_surface#2439.enter(wl_output#953) +[2618211.139] {Default Queue} discarded wl_surface#2439.enter(wl_output#985) +[2618211.143] {Default Queue} discarded wl_surface#2439.enter(wl_output#1017) +[2618211.147] {Default Queue} discarded wl_surface#2439.enter(wl_output#1049) +[2618211.152] {Default Queue} discarded wl_surface#2439.enter(wl_output#1081) +[2618211.155] {Default Queue} discarded wl_surface#2439.enter(wl_output#1113) +[2618211.159] {Default Queue} discarded wl_surface#2439.enter(wl_output#1145) +[2618211.164] {Default Queue} discarded wl_surface#2439.enter(wl_output#1177) +[2618211.168] {Default Queue} discarded wl_surface#2439.enter(wl_output#1209) +[2618211.171] {Default Queue} discarded wl_surface#2439.enter(wl_output#1241) +[2618211.175] {Default Queue} discarded wl_surface#2439.enter(wl_output#1273) +[2618211.180] {Default Queue} discarded wl_surface#2439.enter(wl_output#1305) +[2618211.184] {Default Queue} discarded wl_surface#2439.enter(wl_output#1337) +[2618211.187] {Default Queue} discarded wl_surface#2439.enter(wl_output#1369) +[2618211.191] {Default Queue} discarded wl_surface#2439.enter(wl_output#1401) +[2618211.195] {Default Queue} discarded wl_surface#2439.enter(wl_output#1433) +[2618211.199] {Default Queue} discarded wl_surface#2439.enter(wl_output#1465) +[2618211.203] {Default Queue} discarded wl_surface#2439.enter(wl_output#1497) +[2618211.207] {Default Queue} discarded wl_surface#2439.enter(wl_output#1529) +[2618211.211] {Default Queue} discarded wl_surface#2439.enter(wl_output#1561) +[2618211.215] {Default Queue} discarded wl_surface#2439.enter(wl_output#1593) +[2618211.219] {Default Queue} discarded wl_surface#2439.enter(wl_output#1625) +[2618211.223] {Default Queue} discarded wl_surface#2439.enter(wl_output#1657) +[2618211.227] {Default Queue} discarded wl_surface#2439.enter(wl_output#1689) +[2618211.231] {Default Queue} discarded wl_surface#2439.enter(wl_output#1721) +[2618211.235] {Default Queue} discarded wl_surface#2439.enter(wl_output#1753) +[2618211.239] {Default Queue} discarded wl_surface#2439.enter(wl_output#1785) +[2618211.243] {Default Queue} discarded wl_surface#2439.enter(wl_output#1817) +[2618211.247] {Default Queue} discarded wl_surface#2439.enter(wl_output#1849) +[2618211.251] {Default Queue} discarded wl_surface#2439.enter(wl_output#1881) +[2618211.255] {Default Queue} discarded wl_surface#2439.enter(wl_output#1913) +[2618211.258] {Default Queue} discarded wl_surface#2439.enter(wl_output#1945) +[2618211.262] {Default Queue} discarded wl_surface#2439.enter(wl_output#1977) +[2618211.266] {Default Queue} discarded wl_surface#2439.enter(wl_output#2009) +[2618211.273] {Default Queue} discarded wl_surface#2439.enter(wl_output#2041) +[2618211.279] {Default Queue} discarded wl_surface#2439.enter(wl_output#2073) +[2618211.283] {Default Queue} discarded wl_surface#2439.enter(wl_output#2105) +[2618211.287] {Default Queue} discarded wl_surface#2439.enter(wl_output#2137) +[2618211.291] {Default Queue} discarded wl_surface#2439.enter(wl_output#2169) +[2618211.295] {Default Queue} discarded wl_surface#2439.enter(wl_output#2201) +[2618211.299] {Default Queue} discarded wl_surface#2439.enter(wl_output#2233) +[2618211.303] {Default Queue} discarded wl_surface#2439.enter(wl_output#2265) +[2618211.307] {Default Queue} discarded wl_surface#2439.enter(wl_output#2297) +[2618211.312] {Default Queue} discarded wl_surface#2439.enter(wl_output#2329) +[2618211.317] {Default Queue} discarded wl_surface#2439.enter(wl_output#2361) +[2618211.323] {Default Queue} discarded wl_surface#2439.enter(wl_output#2393) +[2618211.327] {Default Queue} discarded wl_surface#2439.enter(wl_output#2425) +[2618211.331] {Default Queue} discarded wl_surface#2439.enter(wl_output#2457) +[2618211.335] {Default Queue} -> wl_compositor#2444.create_surface(new id wl_surface#2471) +[2618211.340] {Default Queue} -> wl_subcompositor#2477.get_subsurface(new id wl_subsurface#2490, wl_surface#2471, wl_surface#2439) +[2618211.348] {Default Queue} -> wl_subsurface#2490.set_desync() +[2618211.352] {Default Queue} -> wl_subsurface#2490.set_position(0, 0) +[2618211.357] {Default Queue} -> wl_subsurface#2490.place_above(wl_surface#2439) +[2618211.407] {Default Queue} -> wl_shm#2479.create_pool(new id wl_shm_pool#2491, fd 394, 16) +[2618211.415] {Default Queue} -> wl_shm#2479.create_pool(new id wl_shm_pool#2492, fd 395, 16) +[2618211.419] {Default Queue} -> wl_shm_pool#2491.create_buffer(new id wl_buffer#2493, 0, 2, 2, 8, 0) +[2618211.424] {Default Queue} -> wl_shm_pool#2492.create_buffer(new id wl_buffer#2494, 0, 2, 2, 8, 0) +[2618211.434] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) +[2618211.439] {Default Queue} -> wl_surface#2471.commit() +[2618211.444] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) +[2618211.449] {Default Queue} -> wl_surface#2471.commit() +[2618211.453] {Default Queue} -> wl_compositor#2476.create_region(new id wl_region#2495) +[2618211.457] {Default Queue} -> wl_compositor#2476.create_region(new id wl_region#2496) +[2618211.461] {Default Queue} -> wl_region#2495.subtract(0, 0, 2, 2) +[2618211.466] {Default Queue} -> wl_region#2495.add(0, 0, 0, 0) +[2618211.470] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618211.475] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618211.479] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) +[2618211.483] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) +[2618211.490] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) +[2618211.495] {Default Queue} -> wl_surface#2471.commit() +[2618211.528] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2497, fd 398, 640) +[2618211.535] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2498, fd 399, 640) +[2618211.539] {Default Queue} -> wl_shm_pool#2497.create_buffer(new id wl_buffer#2499, 0, 10, 16, 40, 0) +[2618211.544] {Default Queue} -> wl_shm_pool#2498.create_buffer(new id wl_buffer#2500, 0, 10, 16, 40, 0) +[2618211.551] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#2501) +[2618211.555] {Default Queue} -> wl_surface#2501.attach(wl_buffer#2499, 0, 0) +[2618211.560] {Default Queue} -> wl_surface#2501.commit() +[2618211.565] {Default Queue} -> wl_surface#2501.attach(wl_buffer#2499, 0, 0) +[2618211.569] {Default Queue} -> wl_surface#2501.commit() +[2618211.582] {Default Queue} -> wl_buffer#2499.destroy() +[2618211.588] {Default Queue} -> wl_buffer#2500.destroy() +[2618211.592] {Default Queue} -> wl_shm_pool#2497.destroy() +[2618211.597] {Default Queue} -> wl_shm_pool#2498.destroy() +[2618211.602] {Default Queue} -> wl_surface#2501.destroy() +[2618211.634] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2502, fd 400, 576) +[2618211.644] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2503, fd 401, 576) +[2618211.651] {Default Queue} -> wl_shm_pool#2502.create_buffer(new id wl_buffer#2504, 0, 9, 16, 36, 0) +[2618211.655] {Default Queue} -> wl_shm_pool#2503.create_buffer(new id wl_buffer#2505, 0, 9, 16, 36, 0) +[2618211.662] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#2506) +[2618211.666] {Default Queue} -> wl_surface#2506.attach(wl_buffer#2504, 0, 0) +[2618211.671] {Default Queue} -> wl_surface#2506.commit() +[2618211.676] {Default Queue} -> wl_surface#2506.attach(wl_buffer#2504, 0, 0) +[2618211.680] {Default Queue} -> wl_surface#2506.commit() +[2618211.691] {Default Queue} -> wl_region#2399.subtract(0, 0, 2, 2) +[2618211.696] {Default Queue} -> wl_subsurface#2394.set_position(3, 3) +[2618211.701] {Default Queue} -> wl_region#2399.subtract(0, 0, 5, 5) +[2618211.705] {Default Queue} -> wl_region#2399.add(0, 0, 0, 0) +[2618211.710] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) +[2618211.715] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) +[2618211.719] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618211.724] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) +[2618211.728] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) +[2618211.732] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) +[2618211.740] {Default Queue} -> wl_region#2399.subtract(0, 0, 5, 5) +[2618211.746] {Default Queue} -> wl_region#2399.add(0, 0, 0, 0) +[2618211.751] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) +[2618211.755] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) +[2618211.761] {Default Queue} -> wl_surface#2375.attach(wl_buffer#2397, 0, 0) +[2618211.766] {Default Queue} -> wl_surface#2375.commit() +[2618211.773] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2507) +[2618211.779] {Default Queue} -> wl_display#1.sync(new id wl_callback#2508) +[2618215.249] {Display Queue} wl_display#1.delete_id(2499) +[2618215.262] {Display Queue} wl_display#1.delete_id(2500) +[2618215.268] {Display Queue} wl_display#1.delete_id(2497) +[2618215.272] {Display Queue} wl_display#1.delete_id(2498) +[2618215.276] {Display Queue} wl_display#1.delete_id(2501) +[2618215.280] {Display Queue} wl_display#1.delete_id(2508) +[2618215.284] {Default Queue} wl_keyboard#2472.keymap(1, fd 394, 68213) +[2618215.289] {Default Queue} wl_keyboard#2472.enter(566, wl_surface#19, array[0]) +[2618215.294] {Default Queue} wl_keyboard#2472.modifiers(566, 0, 0, 16, 0) +[2618215.299] {Default Queue} discarded wl_shm#2479.format(875709016) +[2618215.303] {Default Queue} discarded wl_shm#2479.format(1) +[2618215.307] {Default Queue} discarded wl_shm#2479.format(0) +[2618215.312] {Default Queue} discarded wl_shm#2479.format(875708993) +[2618215.316] {Default Queue} discarded wl_shm#2480.format(875709016) +[2618215.321] {Default Queue} discarded wl_shm#2480.format(1) +[2618215.325] {Default Queue} discarded wl_shm#2480.format(0) +[2618215.329] {Default Queue} discarded wl_shm#2480.format(875708993) +[2618215.332] {Default Queue} discarded wl_shm#2481.format(875709016) +[2618215.336] {Default Queue} discarded wl_shm#2481.format(1) +[2618215.340] {Default Queue} discarded wl_shm#2481.format(0) +[2618215.344] {Default Queue} discarded wl_shm#2481.format(875708993) +[2618215.348] {Default Queue} wl_seat#2488.capabilities(7) +[2618215.352] {Default Queue} -> wl_seat#2488.get_keyboard(new id wl_keyboard#2501) +[2618215.357] {Default Queue} -> wl_seat#2488.get_pointer(new id wl_pointer#2498) +[2618215.361] {Default Queue} -> wl_data_device_manager#2484.get_data_device(new id wl_data_device#2497, wl_seat#2488) +[2618215.367] {Default Queue} -> zwp_primary_selection_device_manager_v1#2486.get_device(new id zwp_primary_selection_device_v1#2500, wl_seat#2488) +[2618215.375] {Default Queue} wl_output#2489.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618215.380] {Default Queue} wl_output#2489.mode(3, 1280, 800, 60000) +[2618215.385] {Default Queue} discarded wl_surface#3.enter(wl_output#2489) +[2618215.395] {Default Queue} discarded wl_surface#999.enter(wl_output#2489) +[2618215.403] {Default Queue} discarded wl_surface#1191.enter(wl_output#2489) +[2618215.407] {Default Queue} discarded wl_surface#1159.enter(wl_output#2489) +[2618215.411] {Default Queue} discarded wl_surface#1703.enter(wl_output#2489) +[2618215.415] {Default Queue} discarded wl_surface#2215.enter(wl_output#2489) +[2618215.418] {Default Queue} discarded wl_surface#423.enter(wl_output#2489) +[2618215.422] {Default Queue} discarded wl_surface#1447.enter(wl_output#2489) +[2618215.426] {Default Queue} discarded wl_surface#2023.enter(wl_output#2489) +[2618215.430] {Default Queue} discarded wl_surface#1639.enter(wl_output#2489) +[2618215.434] {Default Queue} discarded wl_surface#1319.enter(wl_output#2489) +[2618215.438] {Default Queue} discarded wl_surface#1127.enter(wl_output#2489) +[2618215.442] {Default Queue} discarded wl_surface#2151.enter(wl_output#2489) +[2618215.446] {Default Queue} discarded wl_surface#2375.enter(wl_output#2489) +[2618215.450] {Default Queue} discarded wl_surface#1063.enter(wl_output#2489) +[2618215.453] {Default Queue} discarded wl_surface#455.enter(wl_output#2489) +[2618215.457] {Default Queue} discarded wl_surface#1575.enter(wl_output#2489) +[2618215.461] {Default Queue} discarded wl_surface#1799.enter(wl_output#2489) +[2618215.465] {Default Queue} discarded wl_surface#1415.enter(wl_output#2489) +[2618215.469] {Default Queue} discarded wl_surface#2439.enter(wl_output#2489) +[2618215.473] {Default Queue} discarded wl_surface#2279.enter(wl_output#2489) +[2618215.477] {Default Queue} discarded wl_surface#1831.enter(wl_output#2489) +[2618215.481] {Default Queue} discarded wl_surface#903.enter(wl_output#2489) +[2618215.485] {Default Queue} discarded wl_surface#775.enter(wl_output#2489) +[2618215.489] {Default Queue} discarded wl_surface#1991.enter(wl_output#2489) +[2618215.493] {Default Queue} discarded wl_surface#1543.enter(wl_output#2489) +[2618215.497] {Default Queue} discarded wl_surface#135.enter(wl_output#2489) +[2618215.501] {Default Queue} discarded wl_surface#1287.enter(wl_output#2489) +[2618215.504] {Default Queue} discarded wl_surface#1031.enter(wl_output#2489) +[2618215.508] {Default Queue} discarded wl_surface#615.enter(wl_output#2489) +[2618215.512] {Default Queue} discarded wl_surface#231.enter(wl_output#2489) +[2618215.516] {Default Queue} discarded wl_surface#2343.enter(wl_output#2489) +[2618215.520] {Default Queue} discarded wl_surface#1863.enter(wl_output#2489) +[2618215.524] {Default Queue} discarded wl_surface#359.enter(wl_output#2489) +[2618215.528] {Default Queue} discarded wl_surface#583.enter(wl_output#2489) +[2618215.532] {Default Queue} discarded wl_surface#743.enter(wl_output#2489) +[2618215.536] {Default Queue} discarded wl_surface#967.enter(wl_output#2489) +[2618215.540] {Default Queue} discarded wl_surface#103.enter(wl_output#2489) +[2618215.544] {Default Queue} discarded wl_surface#327.enter(wl_output#2489) +[2618215.548] {Default Queue} discarded wl_surface#43.enter(wl_output#2489) +[2618215.551] {Default Queue} discarded wl_surface#2247.enter(wl_output#2489) +[2618215.555] {Default Queue} discarded wl_surface#807.enter(wl_output#2489) +[2618215.559] {Default Queue} discarded wl_surface#19.enter(wl_output#2489) +[2618215.563] {Default Queue} discarded wl_surface#1511.enter(wl_output#2489) +[2618215.567] {Default Queue} discarded wl_surface#199.enter(wl_output#2489) +[2618215.571] {Default Queue} discarded wl_surface#391.enter(wl_output#2489) +[2618215.575] {Default Queue} discarded wl_surface#935.enter(wl_output#2489) +[2618215.579] {Default Queue} discarded wl_surface#1671.enter(wl_output#2489) +[2618215.582] {Default Queue} discarded wl_surface#1351.enter(wl_output#2489) +[2618215.586] {Default Queue} discarded wl_surface#711.enter(wl_output#2489) +[2618215.590] {Default Queue} discarded wl_surface#1223.enter(wl_output#2489) +[2618215.594] {Default Queue} discarded wl_surface#1927.enter(wl_output#2489) +[2618215.598] {Default Queue} discarded wl_surface#871.enter(wl_output#2489) +[2618215.602] {Default Queue} discarded wl_surface#1895.enter(wl_output#2489) +[2618215.609] {Default Queue} discarded wl_surface#263.enter(wl_output#2489) +[2618215.614] {Default Queue} discarded wl_surface#551.enter(wl_output#2489) +[2618215.618] {Default Queue} discarded wl_surface#1735.enter(wl_output#2489) +[2618215.622] {Default Queue} discarded wl_surface#1479.enter(wl_output#2489) +[2618215.626] {Default Queue} discarded wl_surface#1772.enter(wl_output#2489) +[2618215.630] {Default Queue} discarded wl_surface#1959.enter(wl_output#2489) +[2618215.635] {Default Queue} discarded wl_surface#647.enter(wl_output#2489) +[2618215.639] {Default Queue} discarded wl_surface#2055.enter(wl_output#2489) +[2618215.643] {Default Queue} discarded wl_surface#71.enter(wl_output#2489) +[2618215.646] {Default Queue} discarded wl_surface#2183.enter(wl_output#2489) +[2618215.650] {Default Queue} discarded wl_surface#839.enter(wl_output#2489) +[2618215.654] {Default Queue} discarded wl_surface#1607.enter(wl_output#2489) +[2618215.658] {Default Queue} discarded wl_surface#1095.enter(wl_output#2489) +[2618215.662] {Default Queue} discarded wl_surface#1383.enter(wl_output#2489) +[2618215.666] {Default Queue} discarded wl_surface#487.enter(wl_output#2489) +[2618215.670] {Default Queue} discarded wl_surface#2311.enter(wl_output#2489) +[2618215.674] {Default Queue} discarded wl_surface#519.enter(wl_output#2489) +[2618215.678] {Default Queue} discarded wl_surface#2087.enter(wl_output#2489) +[2618215.681] {Default Queue} discarded wl_surface#295.enter(wl_output#2489) +[2618215.685] {Default Queue} discarded wl_surface#167.enter(wl_output#2489) +[2618215.689] {Default Queue} discarded wl_surface#1255.enter(wl_output#2489) +[2618215.693] {Default Queue} discarded wl_surface#679.enter(wl_output#2489) +[2618215.697] {Default Queue} discarded wl_surface#2407.enter(wl_output#2489) +[2618215.701] {Default Queue} discarded wl_surface#2119.enter(wl_output#2489) +[2618215.705] {Default Queue} wl_registry#2507.global(1, "wl_compositor", 6) +[2618215.711] {Default Queue} -> wl_registry#2507.bind(1, "wl_compositor", 1, new id [unknown]#2499) +[2618215.715] {Default Queue} wl_registry#2507.global(2, "wl_subcompositor", 1) +[2618215.721] {Default Queue} -> wl_registry#2507.bind(2, "wl_subcompositor", 1, new id [unknown]#2509) +[2618215.725] {Default Queue} wl_registry#2507.global(3, "xdg_wm_base", 6) +[2618215.730] {Default Queue} -> wl_registry#2507.bind(3, "xdg_wm_base", 1, new id [unknown]#2510) +[2618215.734] {Default Queue} wl_registry#2507.global(6, "zwlr_layer_shell_v1", 5) +[2618215.739] {Default Queue} wl_registry#2507.global(7, "ext_session_lock_manager_v1", 1) +[2618215.743] {Default Queue} wl_registry#2507.global(8, "wl_shm", 2) +[2618215.748] {Default Queue} -> wl_registry#2507.bind(8, "wl_shm", 1, new id [unknown]#2511) +[2618215.752] {Default Queue} -> wl_registry#2507.bind(8, "wl_shm", 1, new id [unknown]#2512) +[2618215.757] {Default Queue} -> wl_registry#2507.bind(8, "wl_shm", 1, new id [unknown]#2513) +[2618215.761] {Default Queue} wl_registry#2507.global(9, "zxdg_output_manager_v1", 3) +[2618215.765] {Default Queue} wl_registry#2507.global(10, "wp_fractional_scale_manager_v1", 1) +[2618215.770] {Default Queue} wl_registry#2507.global(11, "zwp_tablet_manager_v2", 1) +[2618215.774] {Default Queue} wl_registry#2507.global(12, "zwp_pointer_gestures_v1", 3) +[2618215.778] {Default Queue} wl_registry#2507.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618215.783] {Default Queue} -> wl_registry#2507.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2514) +[2618215.787] {Default Queue} wl_registry#2507.global(14, "zwp_pointer_constraints_v1", 1) +[2618215.792] {Default Queue} -> wl_registry#2507.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2515) +[2618215.796] {Default Queue} wl_registry#2507.global(15, "ext_idle_notifier_v1", 2) +[2618215.801] {Default Queue} wl_registry#2507.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618215.805] {Default Queue} wl_registry#2507.global(17, "wl_data_device_manager", 3) +[2618215.810] {Default Queue} -> wl_registry#2507.bind(17, "wl_data_device_manager", 2, new id [unknown]#2516) +[2618215.818] {Default Queue} -> wl_data_device_manager#2516.create_data_source(new id wl_data_source#2517) +[2618215.823] {Default Queue} -> wl_data_source#2517.offer("text/plain") +[2618215.828] {Default Queue} -> wl_data_source#2517.offer("text/plain;charset=utf-8") +[2618215.832] {Default Queue} -> wl_data_source#2517.offer("TEXT") +[2618215.836] {Default Queue} -> wl_data_source#2517.offer("STRING") +[2618215.840] {Default Queue} -> wl_data_source#2517.offer("UTF8_STRING") +[2618215.844] {Default Queue} wl_registry#2507.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618215.849] {Default Queue} -> wl_registry#2507.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2518) +[2618215.857] {Default Queue} -> zwp_primary_selection_device_manager_v1#2518.create_source(new id zwp_primary_selection_source_v1#2519) +[2618215.871] {Default Queue} -> zwp_primary_selection_source_v1#2519.offer("text/plain") +[2618215.876] {Default Queue} -> zwp_primary_selection_source_v1#2519.offer("text/plain;charset=utf-8") +[2618215.880] {Default Queue} -> zwp_primary_selection_source_v1#2519.offer("TEXT") +[2618215.885] {Default Queue} -> zwp_primary_selection_source_v1#2519.offer("STRING") +[2618215.888] {Default Queue} -> zwp_primary_selection_source_v1#2519.offer("UTF8_STRING") +[2618215.893] {Default Queue} wl_registry#2507.global(19, "zwlr_data_control_manager_v1", 2) +[2618215.899] {Default Queue} wl_registry#2507.global(20, "ext_data_control_manager_v1", 1) +[2618215.904] {Default Queue} wl_registry#2507.global(21, "wp_presentation", 2) +[2618215.909] {Default Queue} wl_registry#2507.global(22, "wp_security_context_manager_v1", 1) +[2618215.913] {Default Queue} wl_registry#2507.global(23, "zwp_text_input_manager_v3", 1) +[2618215.917] {Default Queue} wl_registry#2507.global(24, "zwp_input_method_manager_v2", 1) +[2618215.922] {Default Queue} wl_registry#2507.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618215.926] {Default Queue} wl_registry#2507.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618215.930] {Default Queue} wl_registry#2507.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618215.934] {Default Queue} wl_registry#2507.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618215.939] {Default Queue} wl_registry#2507.global(29, "ext_workspace_manager_v1", 1) +[2618215.943] {Default Queue} wl_registry#2507.global(30, "zwlr_output_manager_v1", 4) +[2618215.947] {Default Queue} wl_registry#2507.global(31, "zwlr_screencopy_manager_v1", 3) +[2618215.952] {Default Queue} wl_registry#2507.global(32, "wp_viewporter", 1) +[2618215.956] {Default Queue} wl_registry#2507.global(33, "zxdg_exporter_v2", 1) +[2618215.960] {Default Queue} wl_registry#2507.global(34, "zxdg_importer_v2", 1) +[2618215.965] {Default Queue} wl_registry#2507.global(36, "xdg_activation_v1", 1) +[2618215.969] {Default Queue} wl_registry#2507.global(37, "mutter_x11_interop", 1) +[2618215.973] {Default Queue} wl_registry#2507.global(38, "wl_seat", 9) +[2618215.978] {Default Queue} -> wl_registry#2507.bind(38, "wl_seat", 1, new id [unknown]#2520) +[2618215.982] {Default Queue} wl_registry#2507.global(39, "wp_cursor_shape_manager_v1", 2) +[2618215.987] {Default Queue} wl_registry#2507.global(40, "wl_output", 4) +[2618215.991] {Default Queue} -> wl_registry#2507.bind(40, "wl_output", 1, new id [unknown]#2521) +[2618215.996] {Default Queue} wl_callback#2508.done(0) +[2618216.000] {Default Queue} discarded wl_surface#2471.enter(wl_output#18) +[2618216.004] {Default Queue} discarded wl_surface#2471.enter(wl_output#57) +[2618216.008] {Default Queue} discarded wl_surface#2471.enter(wl_output#89) +[2618216.012] {Default Queue} discarded wl_surface#2471.enter(wl_output#121) +[2618216.016] {Default Queue} discarded wl_surface#2471.enter(wl_output#153) +[2618216.020] {Default Queue} discarded wl_surface#2471.enter(wl_output#185) +[2618216.024] {Default Queue} discarded wl_surface#2471.enter(wl_output#217) +[2618216.028] {Default Queue} discarded wl_surface#2471.enter(wl_output#249) +[2618216.032] {Default Queue} discarded wl_surface#2471.enter(wl_output#281) +[2618216.039] {Default Queue} discarded wl_surface#2471.enter(wl_output#313) +[2618216.044] {Default Queue} discarded wl_surface#2471.enter(wl_output#345) +[2618216.049] {Default Queue} discarded wl_surface#2471.enter(wl_output#377) +[2618216.052] {Default Queue} discarded wl_surface#2471.enter(wl_output#409) +[2618216.056] {Default Queue} discarded wl_surface#2471.enter(wl_output#441) +[2618216.060] {Default Queue} discarded wl_surface#2471.enter(wl_output#473) +[2618216.064] {Default Queue} discarded wl_surface#2471.enter(wl_output#505) +[2618216.068] {Default Queue} discarded wl_surface#2471.enter(wl_output#537) +[2618216.072] {Default Queue} discarded wl_surface#2471.enter(wl_output#569) +[2618216.076] {Default Queue} discarded wl_surface#2471.enter(wl_output#601) +[2618216.080] {Default Queue} discarded wl_surface#2471.enter(wl_output#633) +[2618216.083] {Default Queue} discarded wl_surface#2471.enter(wl_output#665) +[2618216.088] {Default Queue} discarded wl_surface#2471.enter(wl_output#697) +[2618216.092] {Default Queue} discarded wl_surface#2471.enter(wl_output#729) +[2618216.096] {Default Queue} discarded wl_surface#2471.enter(wl_output#761) +[2618216.100] {Default Queue} discarded wl_surface#2471.enter(wl_output#793) +[2618216.104] {Default Queue} discarded wl_surface#2471.enter(wl_output#825) +[2618216.108] {Default Queue} discarded wl_surface#2471.enter(wl_output#857) +[2618216.112] {Default Queue} discarded wl_surface#2471.enter(wl_output#889) +[2618216.116] {Default Queue} discarded wl_surface#2471.enter(wl_output#921) +[2618216.120] {Default Queue} discarded wl_surface#2471.enter(wl_output#953) +[2618216.124] {Default Queue} discarded wl_surface#2471.enter(wl_output#985) +[2618216.127] {Default Queue} discarded wl_surface#2471.enter(wl_output#1017) +[2618216.131] {Default Queue} discarded wl_surface#2471.enter(wl_output#1049) +[2618216.135] {Default Queue} discarded wl_surface#2471.enter(wl_output#1081) +[2618216.139] {Default Queue} discarded wl_surface#2471.enter(wl_output#1113) +[2618216.143] {Default Queue} discarded wl_surface#2471.enter(wl_output#1145) +[2618216.147] {Default Queue} discarded wl_surface#2471.enter(wl_output#1177) +[2618216.151] {Default Queue} discarded wl_surface#2471.enter(wl_output#1209) +[2618216.155] {Default Queue} discarded wl_surface#2471.enter(wl_output#1241) +[2618216.158] {Default Queue} discarded wl_surface#2471.enter(wl_output#1273) +[2618216.162] {Default Queue} discarded wl_surface#2471.enter(wl_output#1305) +[2618216.166] {Default Queue} discarded wl_surface#2471.enter(wl_output#1337) +[2618216.170] {Default Queue} discarded wl_surface#2471.enter(wl_output#1369) +[2618216.174] {Default Queue} discarded wl_surface#2471.enter(wl_output#1401) +[2618216.178] {Default Queue} discarded wl_surface#2471.enter(wl_output#1433) +[2618216.182] {Default Queue} discarded wl_surface#2471.enter(wl_output#1465) +[2618216.186] {Default Queue} discarded wl_surface#2471.enter(wl_output#1497) +[2618216.190] {Default Queue} discarded wl_surface#2471.enter(wl_output#1529) +[2618216.193] {Default Queue} discarded wl_surface#2471.enter(wl_output#1561) +[2618216.198] {Default Queue} discarded wl_surface#2471.enter(wl_output#1593) +[2618216.202] {Default Queue} discarded wl_surface#2471.enter(wl_output#1625) +[2618216.206] {Default Queue} discarded wl_surface#2471.enter(wl_output#1657) +[2618216.209] {Default Queue} discarded wl_surface#2471.enter(wl_output#1689) +[2618216.213] {Default Queue} discarded wl_surface#2471.enter(wl_output#1721) +[2618216.217] {Default Queue} discarded wl_surface#2471.enter(wl_output#1753) +[2618216.221] {Default Queue} discarded wl_surface#2471.enter(wl_output#1785) +[2618216.225] {Default Queue} discarded wl_surface#2471.enter(wl_output#1817) +[2618216.229] {Default Queue} discarded wl_surface#2471.enter(wl_output#1849) +[2618216.233] {Default Queue} discarded wl_surface#2471.enter(wl_output#1881) +[2618216.236] {Default Queue} discarded wl_surface#2471.enter(wl_output#1913) +[2618216.240] {Default Queue} discarded wl_surface#2471.enter(wl_output#1945) +[2618216.244] {Default Queue} discarded wl_surface#2471.enter(wl_output#1977) +[2618216.259] {Default Queue} discarded wl_surface#2471.enter(wl_output#2009) +[2618216.265] {Default Queue} discarded wl_surface#2471.enter(wl_output#2041) +[2618216.268] {Default Queue} discarded wl_surface#2471.enter(wl_output#2073) +[2618216.273] {Default Queue} discarded wl_surface#2471.enter(wl_output#2105) +[2618216.276] {Default Queue} discarded wl_surface#2471.enter(wl_output#2137) +[2618216.281] {Default Queue} discarded wl_surface#2471.enter(wl_output#2169) +[2618216.285] {Default Queue} discarded wl_surface#2471.enter(wl_output#2201) +[2618216.288] {Default Queue} discarded wl_surface#2471.enter(wl_output#2233) +[2618216.292] {Default Queue} discarded wl_surface#2471.enter(wl_output#2265) +[2618216.296] {Default Queue} discarded wl_surface#2471.enter(wl_output#2297) +[2618216.300] {Default Queue} discarded wl_surface#2471.enter(wl_output#2329) +[2618216.306] {Default Queue} discarded wl_surface#2471.enter(wl_output#2361) +[2618216.311] {Default Queue} discarded wl_surface#2471.enter(wl_output#2393) +[2618216.318] {Default Queue} discarded wl_surface#2471.enter(wl_output#2425) +[2618216.325] {Default Queue} discarded wl_surface#2471.enter(wl_output#2457) +[2618216.331] {Default Queue} discarded wl_surface#2471.enter(wl_output#2489) +[2618216.338] {Default Queue} -> wl_compositor#2092.create_surface(new id wl_surface#2508) +[2618216.345] {Default Queue} -> wl_subcompositor#2509.get_subsurface(new id wl_subsurface#2522, wl_surface#2508, wl_surface#2087) +[2618216.357] {Default Queue} -> wl_subsurface#2522.set_desync() +[2618216.363] {Default Queue} -> wl_subsurface#2522.set_position(0, 0) +[2618216.370] {Default Queue} -> wl_subsurface#2522.place_above(wl_surface#2087) +[2618216.412] {Default Queue} -> wl_shm#2511.create_pool(new id wl_shm_pool#2523, fd 399, 16) +[2618216.419] {Default Queue} -> wl_shm#2511.create_pool(new id wl_shm_pool#2524, fd 400, 16) +[2618216.424] {Default Queue} -> wl_shm_pool#2523.create_buffer(new id wl_buffer#2525, 0, 2, 2, 8, 0) +[2618216.429] {Default Queue} -> wl_shm_pool#2524.create_buffer(new id wl_buffer#2526, 0, 2, 2, 8, 0) +[2618216.437] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) +[2618216.442] {Default Queue} -> wl_surface#2508.commit() +[2618216.449] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) +[2618216.453] {Default Queue} -> wl_surface#2508.commit() +[2618216.457] {Default Queue} -> wl_compositor#2499.create_region(new id wl_region#2527) +[2618216.461] {Default Queue} -> wl_compositor#2499.create_region(new id wl_region#2528) +[2618216.465] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) +[2618216.470] {Default Queue} -> wl_region#2527.add(0, 0, 0, 0) +[2618216.475] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618216.479] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618216.483] {Default Queue} -> wl_surface#2508.damage(0, 0, 2, 2) +[2618216.487] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) +[2618216.495] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) +[2618216.499] {Default Queue} -> wl_surface#2508.commit() +[2618216.536] {Default Queue} -> wl_shm#2513.create_pool(new id wl_shm_pool#2529, fd 403, 640) +[2618216.543] {Default Queue} -> wl_shm#2513.create_pool(new id wl_shm_pool#2530, fd 404, 640) +[2618216.547] {Default Queue} -> wl_shm_pool#2529.create_buffer(new id wl_buffer#2531, 0, 10, 16, 40, 0) +[2618216.552] {Default Queue} -> wl_shm_pool#2530.create_buffer(new id wl_buffer#2532, 0, 10, 16, 40, 0) +[2618216.559] {Default Queue} -> wl_compositor#2499.create_surface(new id wl_surface#2533) +[2618216.564] {Default Queue} -> wl_surface#2533.attach(wl_buffer#2531, 0, 0) +[2618216.568] {Default Queue} -> wl_surface#2533.commit() +[2618216.574] {Default Queue} -> wl_surface#2533.attach(wl_buffer#2531, 0, 0) +[2618216.578] {Default Queue} -> wl_surface#2533.commit() +[2618216.584] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) +[2618216.589] {Default Queue} -> wl_surface#2508.damage(0, 0, 2, 2) +[2618216.597] {Default Queue} -> wl_surface#2508.damage(0, 0, 2, 2) +[2618216.607] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2534) +[2618216.612] {Default Queue} -> wl_display#1.sync(new id wl_callback#2535) +[2618220.296] {Display Queue} wl_display#1.delete_id(2535) +[2618220.309] {Default Queue} wl_keyboard#2501.keymap(1, fd 399, 68213) +[2618220.315] {Default Queue} wl_keyboard#2501.enter(566, wl_surface#19, array[0]) +[2618220.321] {Default Queue} wl_keyboard#2501.modifiers(566, 0, 0, 16, 0) +[2618220.325] {Default Queue} discarded wl_shm#2511.format(875709016) +[2618220.329] {Default Queue} discarded wl_shm#2511.format(1) +[2618220.334] {Default Queue} discarded wl_shm#2511.format(0) +[2618220.338] {Default Queue} discarded wl_shm#2511.format(875708993) +[2618220.342] {Default Queue} discarded wl_shm#2512.format(875709016) +[2618220.345] {Default Queue} discarded wl_shm#2512.format(1) +[2618220.349] {Default Queue} discarded wl_shm#2512.format(0) +[2618220.354] {Default Queue} discarded wl_shm#2512.format(875708993) +[2618220.357] {Default Queue} discarded wl_shm#2513.format(875709016) +[2618220.362] {Default Queue} discarded wl_shm#2513.format(1) +[2618220.368] {Default Queue} discarded wl_shm#2513.format(0) +[2618220.374] {Default Queue} discarded wl_shm#2513.format(875708993) +[2618220.381] {Default Queue} wl_seat#2520.capabilities(7) +[2618220.388] {Default Queue} -> wl_seat#2520.get_keyboard(new id wl_keyboard#2536) +[2618220.395] {Default Queue} -> wl_seat#2520.get_pointer(new id wl_pointer#2537) +[2618220.402] {Default Queue} -> wl_data_device_manager#2516.get_data_device(new id wl_data_device#2538, wl_seat#2520) +[2618220.409] {Default Queue} -> zwp_primary_selection_device_manager_v1#2518.get_device(new id zwp_primary_selection_device_v1#2539, wl_seat#2520) +[2618220.420] {Default Queue} wl_output#2521.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618220.426] {Default Queue} wl_output#2521.mode(3, 1280, 800, 60000) +[2618220.431] {Default Queue} discarded wl_surface#3.enter(wl_output#2521) +[2618220.435] {Default Queue} discarded wl_surface#999.enter(wl_output#2521) +[2618220.439] {Default Queue} discarded wl_surface#1191.enter(wl_output#2521) +[2618220.443] {Default Queue} discarded wl_surface#1159.enter(wl_output#2521) +[2618220.447] {Default Queue} discarded wl_surface#1703.enter(wl_output#2521) +[2618220.451] {Default Queue} discarded wl_surface#2215.enter(wl_output#2521) +[2618220.455] {Default Queue} discarded wl_surface#423.enter(wl_output#2521) +[2618220.459] {Default Queue} discarded wl_surface#1447.enter(wl_output#2521) +[2618220.462] {Default Queue} discarded wl_surface#2023.enter(wl_output#2521) +[2618220.466] {Default Queue} discarded wl_surface#1639.enter(wl_output#2521) +[2618220.470] {Default Queue} discarded wl_surface#1319.enter(wl_output#2521) +[2618220.474] {Default Queue} discarded wl_surface#1127.enter(wl_output#2521) +[2618220.479] {Default Queue} discarded wl_surface#2151.enter(wl_output#2521) +[2618220.483] {Default Queue} discarded wl_surface#2375.enter(wl_output#2521) +[2618220.487] {Default Queue} discarded wl_surface#1063.enter(wl_output#2521) +[2618220.490] {Default Queue} discarded wl_surface#455.enter(wl_output#2521) +[2618220.494] {Default Queue} discarded wl_surface#1575.enter(wl_output#2521) +[2618220.499] {Default Queue} discarded wl_surface#1799.enter(wl_output#2521) +[2618220.503] {Default Queue} discarded wl_surface#1415.enter(wl_output#2521) +[2618220.507] {Default Queue} discarded wl_surface#2439.enter(wl_output#2521) +[2618220.511] {Default Queue} discarded wl_surface#2279.enter(wl_output#2521) +[2618220.515] {Default Queue} discarded wl_surface#1831.enter(wl_output#2521) +[2618220.518] {Default Queue} discarded wl_surface#903.enter(wl_output#2521) +[2618220.522] {Default Queue} discarded wl_surface#775.enter(wl_output#2521) +[2618220.526] {Default Queue} discarded wl_surface#1991.enter(wl_output#2521) +[2618220.530] {Default Queue} discarded wl_surface#1543.enter(wl_output#2521) +[2618220.534] {Default Queue} discarded wl_surface#135.enter(wl_output#2521) +[2618220.538] {Default Queue} discarded wl_surface#1287.enter(wl_output#2521) +[2618220.546] {Default Queue} discarded wl_surface#1031.enter(wl_output#2521) +[2618220.553] {Default Queue} discarded wl_surface#615.enter(wl_output#2521) +[2618220.557] {Default Queue} discarded wl_surface#231.enter(wl_output#2521) +[2618220.561] {Default Queue} discarded wl_surface#2343.enter(wl_output#2521) +[2618220.565] {Default Queue} discarded wl_surface#1863.enter(wl_output#2521) +[2618220.569] {Default Queue} discarded wl_surface#359.enter(wl_output#2521) +[2618220.573] {Default Queue} discarded wl_surface#583.enter(wl_output#2521) +[2618220.576] {Default Queue} discarded wl_surface#743.enter(wl_output#2521) +[2618220.580] {Default Queue} discarded wl_surface#967.enter(wl_output#2521) +[2618220.584] {Default Queue} discarded wl_surface#103.enter(wl_output#2521) +[2618220.588] {Default Queue} discarded wl_surface#327.enter(wl_output#2521) +[2618220.592] {Default Queue} discarded wl_surface#43.enter(wl_output#2521) +[2618220.596] {Default Queue} discarded wl_surface#2247.enter(wl_output#2521) +[2618220.600] {Default Queue} discarded wl_surface#807.enter(wl_output#2521) +[2618220.604] {Default Queue} discarded wl_surface#19.enter(wl_output#2521) +[2618220.608] {Default Queue} discarded wl_surface#1511.enter(wl_output#2521) +[2618220.611] {Default Queue} discarded wl_surface#199.enter(wl_output#2521) +[2618220.615] {Default Queue} discarded wl_surface#391.enter(wl_output#2521) +[2618220.619] {Default Queue} discarded wl_surface#935.enter(wl_output#2521) +[2618220.623] {Default Queue} discarded wl_surface#1671.enter(wl_output#2521) +[2618220.627] {Default Queue} discarded wl_surface#1351.enter(wl_output#2521) +[2618220.631] {Default Queue} discarded wl_surface#711.enter(wl_output#2521) +[2618220.635] {Default Queue} discarded wl_surface#1223.enter(wl_output#2521) +[2618220.638] {Default Queue} discarded wl_surface#1927.enter(wl_output#2521) +[2618220.642] {Default Queue} discarded wl_surface#871.enter(wl_output#2521) +[2618220.646] {Default Queue} discarded wl_surface#1895.enter(wl_output#2521) +[2618220.650] {Default Queue} discarded wl_surface#263.enter(wl_output#2521) +[2618220.654] {Default Queue} discarded wl_surface#551.enter(wl_output#2521) +[2618220.658] {Default Queue} discarded wl_surface#1735.enter(wl_output#2521) +[2618220.662] {Default Queue} discarded wl_surface#1479.enter(wl_output#2521) +[2618220.666] {Default Queue} discarded wl_surface#1772.enter(wl_output#2521) +[2618220.670] {Default Queue} discarded wl_surface#1959.enter(wl_output#2521) +[2618220.674] {Default Queue} discarded wl_surface#647.enter(wl_output#2521) +[2618220.678] {Default Queue} discarded wl_surface#2055.enter(wl_output#2521) +[2618220.681] {Default Queue} discarded wl_surface#71.enter(wl_output#2521) +[2618220.686] {Default Queue} discarded wl_surface#2183.enter(wl_output#2521) +[2618220.690] {Default Queue} discarded wl_surface#839.enter(wl_output#2521) +[2618220.693] {Default Queue} discarded wl_surface#1607.enter(wl_output#2521) +[2618220.697] {Default Queue} discarded wl_surface#1095.enter(wl_output#2521) +[2618220.701] {Default Queue} discarded wl_surface#1383.enter(wl_output#2521) +[2618220.705] {Default Queue} discarded wl_surface#487.enter(wl_output#2521) +[2618220.709] {Default Queue} discarded wl_surface#2311.enter(wl_output#2521) +[2618220.713] {Default Queue} discarded wl_surface#519.enter(wl_output#2521) +[2618220.716] {Default Queue} discarded wl_surface#2087.enter(wl_output#2521) +[2618220.720] {Default Queue} discarded wl_surface#2471.enter(wl_output#2521) +[2618220.724] {Default Queue} discarded wl_surface#295.enter(wl_output#2521) +[2618220.728] {Default Queue} discarded wl_surface#167.enter(wl_output#2521) +[2618220.732] {Default Queue} discarded wl_surface#1255.enter(wl_output#2521) +[2618220.736] {Default Queue} discarded wl_surface#679.enter(wl_output#2521) +[2618220.740] {Default Queue} discarded wl_surface#2407.enter(wl_output#2521) +[2618220.744] {Default Queue} discarded wl_surface#2119.enter(wl_output#2521) +[2618220.748] {Default Queue} wl_registry#2534.global(1, "wl_compositor", 6) +[2618220.754] {Default Queue} -> wl_registry#2534.bind(1, "wl_compositor", 1, new id [unknown]#2540) +[2618220.761] {Default Queue} wl_registry#2534.global(2, "wl_subcompositor", 1) +[2618220.768] {Default Queue} -> wl_registry#2534.bind(2, "wl_subcompositor", 1, new id [unknown]#2541) +[2618220.772] {Default Queue} wl_registry#2534.global(3, "xdg_wm_base", 6) +[2618220.777] {Default Queue} -> wl_registry#2534.bind(3, "xdg_wm_base", 1, new id [unknown]#2542) +[2618220.781] {Default Queue} wl_registry#2534.global(6, "zwlr_layer_shell_v1", 5) +[2618220.786] {Default Queue} wl_registry#2534.global(7, "ext_session_lock_manager_v1", 1) +[2618220.790] {Default Queue} wl_registry#2534.global(8, "wl_shm", 2) +[2618220.795] {Default Queue} -> wl_registry#2534.bind(8, "wl_shm", 1, new id [unknown]#2543) +[2618220.799] {Default Queue} -> wl_registry#2534.bind(8, "wl_shm", 1, new id [unknown]#2544) +[2618220.804] {Default Queue} -> wl_registry#2534.bind(8, "wl_shm", 1, new id [unknown]#2545) +[2618220.809] {Default Queue} wl_registry#2534.global(9, "zxdg_output_manager_v1", 3) +[2618220.813] {Default Queue} wl_registry#2534.global(10, "wp_fractional_scale_manager_v1", 1) +[2618220.817] {Default Queue} wl_registry#2534.global(11, "zwp_tablet_manager_v2", 1) +[2618220.822] {Default Queue} wl_registry#2534.global(12, "zwp_pointer_gestures_v1", 3) +[2618220.827] {Default Queue} wl_registry#2534.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618220.831] {Default Queue} -> wl_registry#2534.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2546) +[2618220.836] {Default Queue} wl_registry#2534.global(14, "zwp_pointer_constraints_v1", 1) +[2618220.840] {Default Queue} -> wl_registry#2534.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2547) +[2618220.845] {Default Queue} wl_registry#2534.global(15, "ext_idle_notifier_v1", 2) +[2618220.850] {Default Queue} wl_registry#2534.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618220.854] {Default Queue} wl_registry#2534.global(17, "wl_data_device_manager", 3) +[2618220.862] {Default Queue} -> wl_registry#2534.bind(17, "wl_data_device_manager", 2, new id [unknown]#2548) +[2618220.866] {Default Queue} -> wl_data_device_manager#2548.create_data_source(new id wl_data_source#2549) +[2618220.893] {Default Queue} -> wl_data_source#2549.offer("text/plain") +[2618220.897] {Default Queue} -> wl_data_source#2549.offer("text/plain;charset=utf-8") +[2618220.902] {Default Queue} -> wl_data_source#2549.offer("TEXT") +[2618220.906] {Default Queue} -> wl_data_source#2549.offer("STRING") +[2618220.910] {Default Queue} -> wl_data_source#2549.offer("UTF8_STRING") +[2618220.914] {Default Queue} wl_registry#2534.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618220.919] {Default Queue} -> wl_registry#2534.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2550) +[2618220.927] {Default Queue} -> zwp_primary_selection_device_manager_v1#2550.create_source(new id zwp_primary_selection_source_v1#2551) +[2618220.935] {Default Queue} -> zwp_primary_selection_source_v1#2551.offer("text/plain") +[2618220.939] {Default Queue} -> zwp_primary_selection_source_v1#2551.offer("text/plain;charset=utf-8") +[2618220.943] {Default Queue} -> zwp_primary_selection_source_v1#2551.offer("TEXT") +[2618220.947] {Default Queue} -> zwp_primary_selection_source_v1#2551.offer("STRING") +[2618220.951] {Default Queue} -> zwp_primary_selection_source_v1#2551.offer("UTF8_STRING") +[2618220.955] {Default Queue} wl_registry#2534.global(19, "zwlr_data_control_manager_v1", 2) +[2618220.960] {Default Queue} wl_registry#2534.global(20, "ext_data_control_manager_v1", 1) +[2618220.964] {Default Queue} wl_registry#2534.global(21, "wp_presentation", 2) +[2618220.968] {Default Queue} wl_registry#2534.global(22, "wp_security_context_manager_v1", 1) +[2618220.973] {Default Queue} wl_registry#2534.global(23, "zwp_text_input_manager_v3", 1) +[2618220.977] {Default Queue} wl_registry#2534.global(24, "zwp_input_method_manager_v2", 1) +[2618220.982] {Default Queue} wl_registry#2534.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618220.989] {Default Queue} wl_registry#2534.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618220.995] {Default Queue} wl_registry#2534.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618220.999] {Default Queue} wl_registry#2534.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618221.004] {Default Queue} wl_registry#2534.global(29, "ext_workspace_manager_v1", 1) +[2618221.008] {Default Queue} wl_registry#2534.global(30, "zwlr_output_manager_v1", 4) +[2618221.012] {Default Queue} wl_registry#2534.global(31, "zwlr_screencopy_manager_v1", 3) +[2618221.017] {Default Queue} wl_registry#2534.global(32, "wp_viewporter", 1) +[2618221.021] {Default Queue} wl_registry#2534.global(33, "zxdg_exporter_v2", 1) +[2618221.025] {Default Queue} wl_registry#2534.global(34, "zxdg_importer_v2", 1) +[2618221.030] {Default Queue} wl_registry#2534.global(36, "xdg_activation_v1", 1) +[2618221.034] {Default Queue} wl_registry#2534.global(37, "mutter_x11_interop", 1) +[2618221.038] {Default Queue} wl_registry#2534.global(38, "wl_seat", 9) +[2618221.043] {Default Queue} -> wl_registry#2534.bind(38, "wl_seat", 1, new id [unknown]#2552) +[2618221.047] {Default Queue} wl_registry#2534.global(39, "wp_cursor_shape_manager_v1", 2) +[2618221.052] {Default Queue} wl_registry#2534.global(40, "wl_output", 4) +[2618221.056] {Default Queue} -> wl_registry#2534.bind(40, "wl_output", 1, new id [unknown]#2553) +[2618221.061] {Default Queue} wl_callback#2535.done(0) +[2618221.065] {Default Queue} discarded wl_surface#2508.enter(wl_output#18) +[2618221.069] {Default Queue} discarded wl_surface#2508.enter(wl_output#57) +[2618221.073] {Default Queue} discarded wl_surface#2508.enter(wl_output#89) +[2618221.077] {Default Queue} discarded wl_surface#2508.enter(wl_output#121) +[2618221.081] {Default Queue} discarded wl_surface#2508.enter(wl_output#153) +[2618221.085] {Default Queue} discarded wl_surface#2508.enter(wl_output#185) +[2618221.089] {Default Queue} discarded wl_surface#2508.enter(wl_output#217) +[2618221.093] {Default Queue} discarded wl_surface#2508.enter(wl_output#249) +[2618221.097] {Default Queue} discarded wl_surface#2508.enter(wl_output#281) +[2618221.101] {Default Queue} discarded wl_surface#2508.enter(wl_output#313) +[2618221.105] {Default Queue} discarded wl_surface#2508.enter(wl_output#345) +[2618221.109] {Default Queue} discarded wl_surface#2508.enter(wl_output#377) +[2618221.113] {Default Queue} discarded wl_surface#2508.enter(wl_output#409) +[2618221.116] {Default Queue} discarded wl_surface#2508.enter(wl_output#441) +[2618221.121] {Default Queue} discarded wl_surface#2508.enter(wl_output#473) +[2618221.125] {Default Queue} discarded wl_surface#2508.enter(wl_output#505) +[2618221.129] {Default Queue} discarded wl_surface#2508.enter(wl_output#537) +[2618221.133] {Default Queue} discarded wl_surface#2508.enter(wl_output#569) +[2618221.137] {Default Queue} discarded wl_surface#2508.enter(wl_output#601) +[2618221.141] {Default Queue} discarded wl_surface#2508.enter(wl_output#633) +[2618221.145] {Default Queue} discarded wl_surface#2508.enter(wl_output#665) +[2618221.149] {Default Queue} discarded wl_surface#2508.enter(wl_output#697) +[2618221.153] {Default Queue} discarded wl_surface#2508.enter(wl_output#729) +[2618221.157] {Default Queue} discarded wl_surface#2508.enter(wl_output#761) +[2618221.161] {Default Queue} discarded wl_surface#2508.enter(wl_output#793) +[2618221.165] {Default Queue} discarded wl_surface#2508.enter(wl_output#825) +[2618221.169] {Default Queue} discarded wl_surface#2508.enter(wl_output#857) +[2618221.172] {Default Queue} discarded wl_surface#2508.enter(wl_output#889) +[2618221.176] {Default Queue} discarded wl_surface#2508.enter(wl_output#921) +[2618221.180] {Default Queue} discarded wl_surface#2508.enter(wl_output#953) +[2618221.184] {Default Queue} discarded wl_surface#2508.enter(wl_output#985) +[2618221.188] {Default Queue} discarded wl_surface#2508.enter(wl_output#1017) +[2618221.192] {Default Queue} discarded wl_surface#2508.enter(wl_output#1049) +[2618221.196] {Default Queue} discarded wl_surface#2508.enter(wl_output#1081) +[2618221.200] {Default Queue} discarded wl_surface#2508.enter(wl_output#1113) +[2618221.207] {Default Queue} discarded wl_surface#2508.enter(wl_output#1145) +[2618221.212] {Default Queue} discarded wl_surface#2508.enter(wl_output#1177) +[2618221.216] {Default Queue} discarded wl_surface#2508.enter(wl_output#1209) +[2618221.220] {Default Queue} discarded wl_surface#2508.enter(wl_output#1241) +[2618221.224] {Default Queue} discarded wl_surface#2508.enter(wl_output#1273) +[2618221.228] {Default Queue} discarded wl_surface#2508.enter(wl_output#1305) +[2618221.232] {Default Queue} discarded wl_surface#2508.enter(wl_output#1337) +[2618221.236] {Default Queue} discarded wl_surface#2508.enter(wl_output#1369) +[2618221.240] {Default Queue} discarded wl_surface#2508.enter(wl_output#1401) +[2618221.244] {Default Queue} discarded wl_surface#2508.enter(wl_output#1433) +[2618221.248] {Default Queue} discarded wl_surface#2508.enter(wl_output#1465) +[2618221.252] {Default Queue} discarded wl_surface#2508.enter(wl_output#1497) +[2618221.255] {Default Queue} discarded wl_surface#2508.enter(wl_output#1529) +[2618221.259] {Default Queue} discarded wl_surface#2508.enter(wl_output#1561) +[2618221.263] {Default Queue} discarded wl_surface#2508.enter(wl_output#1593) +[2618221.267] {Default Queue} discarded wl_surface#2508.enter(wl_output#1625) +[2618221.271] {Default Queue} discarded wl_surface#2508.enter(wl_output#1657) +[2618221.275] {Default Queue} discarded wl_surface#2508.enter(wl_output#1689) +[2618221.279] {Default Queue} discarded wl_surface#2508.enter(wl_output#1721) +[2618221.283] {Default Queue} discarded wl_surface#2508.enter(wl_output#1753) +[2618221.287] {Default Queue} discarded wl_surface#2508.enter(wl_output#1785) +[2618221.291] {Default Queue} discarded wl_surface#2508.enter(wl_output#1817) +[2618221.295] {Default Queue} discarded wl_surface#2508.enter(wl_output#1849) +[2618221.299] {Default Queue} discarded wl_surface#2508.enter(wl_output#1881) +[2618221.303] {Default Queue} discarded wl_surface#2508.enter(wl_output#1913) +[2618221.307] {Default Queue} discarded wl_surface#2508.enter(wl_output#1945) +[2618221.311] {Default Queue} discarded wl_surface#2508.enter(wl_output#1977) +[2618221.316] {Default Queue} discarded wl_surface#2508.enter(wl_output#2009) +[2618221.320] {Default Queue} discarded wl_surface#2508.enter(wl_output#2041) +[2618221.323] {Default Queue} discarded wl_surface#2508.enter(wl_output#2073) +[2618221.327] {Default Queue} discarded wl_surface#2508.enter(wl_output#2105) +[2618221.331] {Default Queue} discarded wl_surface#2508.enter(wl_output#2137) +[2618221.335] {Default Queue} discarded wl_surface#2508.enter(wl_output#2169) +[2618221.339] {Default Queue} discarded wl_surface#2508.enter(wl_output#2201) +[2618221.343] {Default Queue} discarded wl_surface#2508.enter(wl_output#2233) +[2618221.347] {Default Queue} discarded wl_surface#2508.enter(wl_output#2265) +[2618221.351] {Default Queue} discarded wl_surface#2508.enter(wl_output#2297) +[2618221.356] {Default Queue} discarded wl_surface#2508.enter(wl_output#2329) +[2618221.359] {Default Queue} discarded wl_surface#2508.enter(wl_output#2361) +[2618221.363] {Default Queue} discarded wl_surface#2508.enter(wl_output#2393) +[2618221.367] {Default Queue} discarded wl_surface#2508.enter(wl_output#2425) +[2618221.371] {Default Queue} discarded wl_surface#2508.enter(wl_output#2457) +[2618221.376] {Default Queue} discarded wl_surface#2508.enter(wl_output#2489) +[2618221.380] {Default Queue} discarded wl_surface#2508.enter(wl_output#2521) +[2618221.384] {Default Queue} -> wl_compositor#2499.create_surface(new id wl_surface#2535) +[2618221.389] {Default Queue} -> wl_subcompositor#2541.get_subsurface(new id wl_subsurface#2554, wl_surface#2535, wl_surface#2508) +[2618221.397] {Default Queue} -> wl_subsurface#2554.set_desync() +[2618221.402] {Default Queue} -> wl_subsurface#2554.set_position(0, 0) +[2618221.406] {Default Queue} -> wl_subsurface#2554.place_above(wl_surface#2508) +[2618221.451] {Default Queue} -> wl_shm#2543.create_pool(new id wl_shm_pool#2555, fd 404, 16) +[2618221.458] {Default Queue} -> wl_shm#2543.create_pool(new id wl_shm_pool#2556, fd 405, 16) +[2618221.466] {Default Queue} -> wl_shm_pool#2555.create_buffer(new id wl_buffer#2557, 0, 2, 2, 8, 0) +[2618221.473] {Default Queue} -> wl_shm_pool#2556.create_buffer(new id wl_buffer#2558, 0, 2, 2, 8, 0) +[2618221.481] {Default Queue} -> wl_surface#2535.attach(wl_buffer#2557, 0, 0) +[2618221.486] {Default Queue} -> wl_surface#2535.commit() +[2618221.492] {Default Queue} -> wl_surface#2535.attach(wl_buffer#2557, 0, 0) +[2618221.496] {Default Queue} -> wl_surface#2535.commit() +[2618221.500] {Default Queue} -> wl_compositor#2540.create_region(new id wl_region#2559) +[2618221.505] {Default Queue} -> wl_compositor#2540.create_region(new id wl_region#2560) +[2618221.510] {Default Queue} -> wl_region#2559.subtract(0, 0, 2, 2) +[2618221.514] {Default Queue} -> wl_region#2559.add(0, 0, 0, 0) +[2618221.519] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) +[2618221.523] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) +[2618221.527] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) +[2618221.532] {Default Queue} -> wl_surface#2508.damage(0, 0, 2, 2) +[2618221.539] {Default Queue} -> wl_surface#2535.attach(wl_buffer#2557, 0, 0) +[2618221.544] {Default Queue} -> wl_surface#2535.commit() +[2618221.578] {Default Queue} -> wl_shm#2545.create_pool(new id wl_shm_pool#2561, fd 408, 640) +[2618221.585] {Default Queue} -> wl_shm#2545.create_pool(new id wl_shm_pool#2562, fd 409, 640) +[2618221.590] {Default Queue} -> wl_shm_pool#2561.create_buffer(new id wl_buffer#2563, 0, 10, 16, 40, 0) +[2618221.594] {Default Queue} -> wl_shm_pool#2562.create_buffer(new id wl_buffer#2564, 0, 10, 16, 40, 0) +[2618221.601] {Default Queue} -> wl_compositor#2540.create_surface(new id wl_surface#2565) +[2618221.606] {Default Queue} -> wl_surface#2565.attach(wl_buffer#2563, 0, 0) +[2618221.610] {Default Queue} -> wl_surface#2565.commit() +[2618221.615] {Default Queue} -> wl_surface#2565.attach(wl_buffer#2563, 0, 0) +[2618221.619] {Default Queue} -> wl_surface#2565.commit() +[2618221.625] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) +[2618221.633] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2566) +[2618221.638] {Default Queue} -> wl_display#1.sync(new id wl_callback#2567) +[2618225.266] {Display Queue} wl_display#1.delete_id(2567) +[2618225.279] {Default Queue} wl_keyboard#2536.keymap(1, fd 404, 68213) +[2618225.285] {Default Queue} wl_keyboard#2536.enter(566, wl_surface#19, array[0]) +[2618225.291] {Default Queue} wl_keyboard#2536.modifiers(566, 0, 0, 16, 0) +[2618225.295] {Default Queue} discarded wl_shm#2543.format(875709016) +[2618225.299] {Default Queue} discarded wl_shm#2543.format(1) +[2618225.303] {Default Queue} discarded wl_shm#2543.format(0) +[2618225.307] {Default Queue} discarded wl_shm#2543.format(875708993) +[2618225.311] {Default Queue} discarded wl_shm#2544.format(875709016) +[2618225.315] {Default Queue} discarded wl_shm#2544.format(1) +[2618225.319] {Default Queue} discarded wl_shm#2544.format(0) +[2618225.323] {Default Queue} discarded wl_shm#2544.format(875708993) +[2618225.327] {Default Queue} discarded wl_shm#2545.format(875709016) +[2618225.331] {Default Queue} discarded wl_shm#2545.format(1) +[2618225.335] {Default Queue} discarded wl_shm#2545.format(0) +[2618225.339] {Default Queue} discarded wl_shm#2545.format(875708993) +[2618225.343] {Default Queue} wl_seat#2552.capabilities(7) +[2618225.347] {Default Queue} -> wl_seat#2552.get_keyboard(new id wl_keyboard#2568) +[2618225.352] {Default Queue} -> wl_seat#2552.get_pointer(new id wl_pointer#2569) +[2618225.357] {Default Queue} -> wl_data_device_manager#2548.get_data_device(new id wl_data_device#2570, wl_seat#2552) +[2618225.361] {Default Queue} -> zwp_primary_selection_device_manager_v1#2550.get_device(new id zwp_primary_selection_device_v1#2571, wl_seat#2552) +[2618225.369] {Default Queue} wl_output#2553.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618225.374] {Default Queue} wl_output#2553.mode(3, 1280, 800, 60000) +[2618225.379] {Default Queue} discarded wl_surface#3.enter(wl_output#2553) +[2618225.383] {Default Queue} discarded wl_surface#999.enter(wl_output#2553) +[2618225.391] {Default Queue} discarded wl_surface#1191.enter(wl_output#2553) +[2618225.398] {Default Queue} discarded wl_surface#1159.enter(wl_output#2553) +[2618225.402] {Default Queue} discarded wl_surface#1703.enter(wl_output#2553) +[2618225.406] {Default Queue} discarded wl_surface#2215.enter(wl_output#2553) +[2618225.410] {Default Queue} discarded wl_surface#423.enter(wl_output#2553) +[2618225.414] {Default Queue} discarded wl_surface#1447.enter(wl_output#2553) +[2618225.418] {Default Queue} discarded wl_surface#2023.enter(wl_output#2553) +[2618225.422] {Default Queue} discarded wl_surface#1639.enter(wl_output#2553) +[2618225.426] {Default Queue} discarded wl_surface#1319.enter(wl_output#2553) +[2618225.430] {Default Queue} discarded wl_surface#1127.enter(wl_output#2553) +[2618225.433] {Default Queue} discarded wl_surface#2151.enter(wl_output#2553) +[2618225.437] {Default Queue} discarded wl_surface#2375.enter(wl_output#2553) +[2618225.441] {Default Queue} discarded wl_surface#1063.enter(wl_output#2553) +[2618225.445] {Default Queue} discarded wl_surface#455.enter(wl_output#2553) +[2618225.449] {Default Queue} discarded wl_surface#1575.enter(wl_output#2553) +[2618225.453] {Default Queue} discarded wl_surface#1799.enter(wl_output#2553) +[2618225.457] {Default Queue} discarded wl_surface#1415.enter(wl_output#2553) +[2618225.461] {Default Queue} discarded wl_surface#2439.enter(wl_output#2553) +[2618225.465] {Default Queue} discarded wl_surface#2279.enter(wl_output#2553) +[2618225.469] {Default Queue} discarded wl_surface#1831.enter(wl_output#2553) +[2618225.472] {Default Queue} discarded wl_surface#903.enter(wl_output#2553) +[2618225.476] {Default Queue} discarded wl_surface#775.enter(wl_output#2553) +[2618225.480] {Default Queue} discarded wl_surface#1991.enter(wl_output#2553) +[2618225.484] {Default Queue} discarded wl_surface#1543.enter(wl_output#2553) +[2618225.488] {Default Queue} discarded wl_surface#135.enter(wl_output#2553) +[2618225.492] {Default Queue} discarded wl_surface#1287.enter(wl_output#2553) +[2618225.496] {Default Queue} discarded wl_surface#1031.enter(wl_output#2553) +[2618225.500] {Default Queue} discarded wl_surface#615.enter(wl_output#2553) +[2618225.504] {Default Queue} discarded wl_surface#231.enter(wl_output#2553) +[2618225.508] {Default Queue} discarded wl_surface#2343.enter(wl_output#2553) +[2618225.511] {Default Queue} discarded wl_surface#1863.enter(wl_output#2553) +[2618225.515] {Default Queue} discarded wl_surface#359.enter(wl_output#2553) +[2618225.520] {Default Queue} discarded wl_surface#583.enter(wl_output#2553) +[2618225.524] {Default Queue} discarded wl_surface#743.enter(wl_output#2553) +[2618225.528] {Default Queue} discarded wl_surface#967.enter(wl_output#2553) +[2618225.532] {Default Queue} discarded wl_surface#103.enter(wl_output#2553) +[2618225.535] {Default Queue} discarded wl_surface#327.enter(wl_output#2553) +[2618225.540] {Default Queue} discarded wl_surface#43.enter(wl_output#2553) +[2618225.544] {Default Queue} discarded wl_surface#2247.enter(wl_output#2553) +[2618225.547] {Default Queue} discarded wl_surface#807.enter(wl_output#2553) +[2618225.551] {Default Queue} discarded wl_surface#19.enter(wl_output#2553) +[2618225.555] {Default Queue} discarded wl_surface#1511.enter(wl_output#2553) +[2618225.559] {Default Queue} discarded wl_surface#199.enter(wl_output#2553) +[2618225.563] {Default Queue} discarded wl_surface#391.enter(wl_output#2553) +[2618225.567] {Default Queue} discarded wl_surface#935.enter(wl_output#2553) +[2618225.571] {Default Queue} discarded wl_surface#1671.enter(wl_output#2553) +[2618225.575] {Default Queue} discarded wl_surface#1351.enter(wl_output#2553) +[2618225.579] {Default Queue} discarded wl_surface#711.enter(wl_output#2553) +[2618225.583] {Default Queue} discarded wl_surface#1223.enter(wl_output#2553) +[2618225.587] {Default Queue} discarded wl_surface#1927.enter(wl_output#2553) +[2618225.591] {Default Queue} discarded wl_surface#871.enter(wl_output#2553) +[2618225.595] {Default Queue} discarded wl_surface#1895.enter(wl_output#2553) +[2618225.599] {Default Queue} discarded wl_surface#263.enter(wl_output#2553) +[2618225.604] {Default Queue} discarded wl_surface#551.enter(wl_output#2553) +[2618225.609] {Default Queue} discarded wl_surface#1735.enter(wl_output#2553) +[2618225.613] {Default Queue} discarded wl_surface#1479.enter(wl_output#2553) +[2618225.617] {Default Queue} discarded wl_surface#1772.enter(wl_output#2553) +[2618225.621] {Default Queue} discarded wl_surface#1959.enter(wl_output#2553) +[2618225.625] {Default Queue} discarded wl_surface#647.enter(wl_output#2553) +[2618225.629] {Default Queue} discarded wl_surface#2055.enter(wl_output#2553) +[2618225.633] {Default Queue} discarded wl_surface#2508.enter(wl_output#2553) +[2618225.636] {Default Queue} discarded wl_surface#71.enter(wl_output#2553) +[2618225.640] {Default Queue} discarded wl_surface#2183.enter(wl_output#2553) +[2618225.645] {Default Queue} discarded wl_surface#839.enter(wl_output#2553) +[2618225.649] {Default Queue} discarded wl_surface#1607.enter(wl_output#2553) +[2618225.653] {Default Queue} discarded wl_surface#1095.enter(wl_output#2553) +[2618225.657] {Default Queue} discarded wl_surface#1383.enter(wl_output#2553) +[2618225.661] {Default Queue} discarded wl_surface#487.enter(wl_output#2553) +[2618225.665] {Default Queue} discarded wl_surface#2311.enter(wl_output#2553) +[2618225.669] {Default Queue} discarded wl_surface#519.enter(wl_output#2553) +[2618225.673] {Default Queue} discarded wl_surface#2087.enter(wl_output#2553) +[2618225.676] {Default Queue} discarded wl_surface#2471.enter(wl_output#2553) +[2618225.680] {Default Queue} discarded wl_surface#295.enter(wl_output#2553) +[2618225.685] {Default Queue} discarded wl_surface#167.enter(wl_output#2553) +[2618225.689] {Default Queue} discarded wl_surface#1255.enter(wl_output#2553) +[2618225.692] {Default Queue} discarded wl_surface#679.enter(wl_output#2553) +[2618225.696] {Default Queue} discarded wl_surface#2407.enter(wl_output#2553) +[2618225.700] {Default Queue} discarded wl_surface#2119.enter(wl_output#2553) +[2618225.704] {Default Queue} wl_registry#2566.global(1, "wl_compositor", 6) +[2618225.709] {Default Queue} -> wl_registry#2566.bind(1, "wl_compositor", 1, new id [unknown]#2572) +[2618225.714] {Default Queue} wl_registry#2566.global(2, "wl_subcompositor", 1) +[2618225.718] {Default Queue} -> wl_registry#2566.bind(2, "wl_subcompositor", 1, new id [unknown]#2573) +[2618225.723] {Default Queue} wl_registry#2566.global(3, "xdg_wm_base", 6) +[2618225.728] {Default Queue} -> wl_registry#2566.bind(3, "xdg_wm_base", 1, new id [unknown]#2574) +[2618225.733] {Default Queue} wl_registry#2566.global(6, "zwlr_layer_shell_v1", 5) +[2618225.737] {Default Queue} wl_registry#2566.global(7, "ext_session_lock_manager_v1", 1) +[2618225.741] {Default Queue} wl_registry#2566.global(8, "wl_shm", 2) +[2618225.746] {Default Queue} -> wl_registry#2566.bind(8, "wl_shm", 1, new id [unknown]#2575) +[2618225.751] {Default Queue} -> wl_registry#2566.bind(8, "wl_shm", 1, new id [unknown]#2576) +[2618225.755] {Default Queue} -> wl_registry#2566.bind(8, "wl_shm", 1, new id [unknown]#2577) +[2618225.759] {Default Queue} wl_registry#2566.global(9, "zxdg_output_manager_v1", 3) +[2618225.764] {Default Queue} wl_registry#2566.global(10, "wp_fractional_scale_manager_v1", 1) +[2618225.768] {Default Queue} wl_registry#2566.global(11, "zwp_tablet_manager_v2", 1) +[2618225.772] {Default Queue} wl_registry#2566.global(12, "zwp_pointer_gestures_v1", 3) +[2618225.777] {Default Queue} wl_registry#2566.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618225.781] {Default Queue} -> wl_registry#2566.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2578) +[2618225.785] {Default Queue} wl_registry#2566.global(14, "zwp_pointer_constraints_v1", 1) +[2618225.790] {Default Queue} -> wl_registry#2566.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2579) +[2618225.794] {Default Queue} wl_registry#2566.global(15, "ext_idle_notifier_v1", 2) +[2618225.799] {Default Queue} wl_registry#2566.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618225.803] {Default Queue} wl_registry#2566.global(17, "wl_data_device_manager", 3) +[2618225.811] {Default Queue} -> wl_registry#2566.bind(17, "wl_data_device_manager", 2, new id [unknown]#2580) +[2618225.817] {Default Queue} -> wl_data_device_manager#2580.create_data_source(new id wl_data_source#2581) +[2618225.821] {Default Queue} -> wl_data_source#2581.offer("text/plain") +[2618225.825] {Default Queue} -> wl_data_source#2581.offer("text/plain;charset=utf-8") +[2618225.830] {Default Queue} -> wl_data_source#2581.offer("TEXT") +[2618225.834] {Default Queue} -> wl_data_source#2581.offer("STRING") +[2618225.838] {Default Queue} -> wl_data_source#2581.offer("UTF8_STRING") +[2618225.842] {Default Queue} wl_registry#2566.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618225.847] {Default Queue} -> wl_registry#2566.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2582) +[2618225.855] {Default Queue} -> zwp_primary_selection_device_manager_v1#2582.create_source(new id zwp_primary_selection_source_v1#2583) +[2618225.863] {Default Queue} -> zwp_primary_selection_source_v1#2583.offer("text/plain") +[2618225.867] {Default Queue} -> zwp_primary_selection_source_v1#2583.offer("text/plain;charset=utf-8") +[2618225.877] {Default Queue} -> zwp_primary_selection_source_v1#2583.offer("TEXT") +[2618225.881] {Default Queue} -> zwp_primary_selection_source_v1#2583.offer("STRING") +[2618225.885] {Default Queue} -> zwp_primary_selection_source_v1#2583.offer("UTF8_STRING") +[2618225.889] {Default Queue} wl_registry#2566.global(19, "zwlr_data_control_manager_v1", 2) +[2618225.894] {Default Queue} wl_registry#2566.global(20, "ext_data_control_manager_v1", 1) +[2618225.898] {Default Queue} wl_registry#2566.global(21, "wp_presentation", 2) +[2618225.902] {Default Queue} wl_registry#2566.global(22, "wp_security_context_manager_v1", 1) +[2618225.907] {Default Queue} wl_registry#2566.global(23, "zwp_text_input_manager_v3", 1) +[2618225.911] {Default Queue} wl_registry#2566.global(24, "zwp_input_method_manager_v2", 1) +[2618225.915] {Default Queue} wl_registry#2566.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618225.920] {Default Queue} wl_registry#2566.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618225.924] {Default Queue} wl_registry#2566.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618225.928] {Default Queue} wl_registry#2566.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618225.933] {Default Queue} wl_registry#2566.global(29, "ext_workspace_manager_v1", 1) +[2618225.937] {Default Queue} wl_registry#2566.global(30, "zwlr_output_manager_v1", 4) +[2618225.941] {Default Queue} wl_registry#2566.global(31, "zwlr_screencopy_manager_v1", 3) +[2618225.945] {Default Queue} wl_registry#2566.global(32, "wp_viewporter", 1) +[2618225.949] {Default Queue} wl_registry#2566.global(33, "zxdg_exporter_v2", 1) +[2618225.954] {Default Queue} wl_registry#2566.global(34, "zxdg_importer_v2", 1) +[2618225.958] {Default Queue} wl_registry#2566.global(36, "xdg_activation_v1", 1) +[2618225.963] {Default Queue} wl_registry#2566.global(37, "mutter_x11_interop", 1) +[2618225.967] {Default Queue} wl_registry#2566.global(38, "wl_seat", 9) +[2618225.972] {Default Queue} -> wl_registry#2566.bind(38, "wl_seat", 1, new id [unknown]#2584) +[2618225.976] {Default Queue} wl_registry#2566.global(39, "wp_cursor_shape_manager_v1", 2) +[2618225.980] {Default Queue} wl_registry#2566.global(40, "wl_output", 4) +[2618225.985] {Default Queue} -> wl_registry#2566.bind(40, "wl_output", 1, new id [unknown]#2585) +[2618225.989] {Default Queue} wl_callback#2567.done(0) +[2618225.993] {Default Queue} discarded wl_surface#2535.enter(wl_output#18) +[2618225.998] {Default Queue} discarded wl_surface#2535.enter(wl_output#57) +[2618226.001] {Default Queue} discarded wl_surface#2535.enter(wl_output#89) +[2618226.005] {Default Queue} discarded wl_surface#2535.enter(wl_output#121) +[2618226.009] {Default Queue} discarded wl_surface#2535.enter(wl_output#153) +[2618226.013] {Default Queue} discarded wl_surface#2535.enter(wl_output#185) +[2618226.017] {Default Queue} discarded wl_surface#2535.enter(wl_output#217) +[2618226.021] {Default Queue} discarded wl_surface#2535.enter(wl_output#249) +[2618226.028] {Default Queue} discarded wl_surface#2535.enter(wl_output#281) +[2618226.033] {Default Queue} discarded wl_surface#2535.enter(wl_output#313) +[2618226.037] {Default Queue} discarded wl_surface#2535.enter(wl_output#345) +[2618226.041] {Default Queue} discarded wl_surface#2535.enter(wl_output#377) +[2618226.045] {Default Queue} discarded wl_surface#2535.enter(wl_output#409) +[2618226.049] {Default Queue} discarded wl_surface#2535.enter(wl_output#441) +[2618226.052] {Default Queue} discarded wl_surface#2535.enter(wl_output#473) +[2618226.056] {Default Queue} discarded wl_surface#2535.enter(wl_output#505) +[2618226.060] {Default Queue} discarded wl_surface#2535.enter(wl_output#537) +[2618226.064] {Default Queue} discarded wl_surface#2535.enter(wl_output#569) +[2618226.068] {Default Queue} discarded wl_surface#2535.enter(wl_output#601) +[2618226.072] {Default Queue} discarded wl_surface#2535.enter(wl_output#633) +[2618226.075] {Default Queue} discarded wl_surface#2535.enter(wl_output#665) +[2618226.079] {Default Queue} discarded wl_surface#2535.enter(wl_output#697) +[2618226.083] {Default Queue} discarded wl_surface#2535.enter(wl_output#729) +[2618226.087] {Default Queue} discarded wl_surface#2535.enter(wl_output#761) +[2618226.091] {Default Queue} discarded wl_surface#2535.enter(wl_output#793) +[2618226.095] {Default Queue} discarded wl_surface#2535.enter(wl_output#825) +[2618226.098] {Default Queue} discarded wl_surface#2535.enter(wl_output#857) +[2618226.102] {Default Queue} discarded wl_surface#2535.enter(wl_output#889) +[2618226.107] {Default Queue} discarded wl_surface#2535.enter(wl_output#921) +[2618226.111] {Default Queue} discarded wl_surface#2535.enter(wl_output#953) +[2618226.115] {Default Queue} discarded wl_surface#2535.enter(wl_output#985) +[2618226.119] {Default Queue} discarded wl_surface#2535.enter(wl_output#1017) +[2618226.123] {Default Queue} discarded wl_surface#2535.enter(wl_output#1049) +[2618226.127] {Default Queue} discarded wl_surface#2535.enter(wl_output#1081) +[2618226.131] {Default Queue} discarded wl_surface#2535.enter(wl_output#1113) +[2618226.135] {Default Queue} discarded wl_surface#2535.enter(wl_output#1145) +[2618226.139] {Default Queue} discarded wl_surface#2535.enter(wl_output#1177) +[2618226.143] {Default Queue} discarded wl_surface#2535.enter(wl_output#1209) +[2618226.147] {Default Queue} discarded wl_surface#2535.enter(wl_output#1241) +[2618226.151] {Default Queue} discarded wl_surface#2535.enter(wl_output#1273) +[2618226.155] {Default Queue} discarded wl_surface#2535.enter(wl_output#1305) +[2618226.159] {Default Queue} discarded wl_surface#2535.enter(wl_output#1337) +[2618226.163] {Default Queue} discarded wl_surface#2535.enter(wl_output#1369) +[2618226.166] {Default Queue} discarded wl_surface#2535.enter(wl_output#1401) +[2618226.170] {Default Queue} discarded wl_surface#2535.enter(wl_output#1433) +[2618226.174] {Default Queue} discarded wl_surface#2535.enter(wl_output#1465) +[2618226.178] {Default Queue} discarded wl_surface#2535.enter(wl_output#1497) +[2618226.182] {Default Queue} discarded wl_surface#2535.enter(wl_output#1529) +[2618226.186] {Default Queue} discarded wl_surface#2535.enter(wl_output#1561) +[2618226.190] {Default Queue} discarded wl_surface#2535.enter(wl_output#1593) +[2618226.194] {Default Queue} discarded wl_surface#2535.enter(wl_output#1625) +[2618226.198] {Default Queue} discarded wl_surface#2535.enter(wl_output#1657) +[2618226.202] {Default Queue} discarded wl_surface#2535.enter(wl_output#1689) +[2618226.206] {Default Queue} discarded wl_surface#2535.enter(wl_output#1721) +[2618226.210] {Default Queue} discarded wl_surface#2535.enter(wl_output#1753) +[2618226.214] {Default Queue} discarded wl_surface#2535.enter(wl_output#1785) +[2618226.218] {Default Queue} discarded wl_surface#2535.enter(wl_output#1817) +[2618226.222] {Default Queue} discarded wl_surface#2535.enter(wl_output#1849) +[2618226.226] {Default Queue} discarded wl_surface#2535.enter(wl_output#1881) +[2618226.230] {Default Queue} discarded wl_surface#2535.enter(wl_output#1913) +[2618226.237] {Default Queue} discarded wl_surface#2535.enter(wl_output#1945) +[2618226.242] {Default Queue} discarded wl_surface#2535.enter(wl_output#1977) +[2618226.246] {Default Queue} discarded wl_surface#2535.enter(wl_output#2009) +[2618226.250] {Default Queue} discarded wl_surface#2535.enter(wl_output#2041) +[2618226.254] {Default Queue} discarded wl_surface#2535.enter(wl_output#2073) +[2618226.258] {Default Queue} discarded wl_surface#2535.enter(wl_output#2105) +[2618226.262] {Default Queue} discarded wl_surface#2535.enter(wl_output#2137) +[2618226.266] {Default Queue} discarded wl_surface#2535.enter(wl_output#2169) +[2618226.270] {Default Queue} discarded wl_surface#2535.enter(wl_output#2201) +[2618226.274] {Default Queue} discarded wl_surface#2535.enter(wl_output#2233) +[2618226.277] {Default Queue} discarded wl_surface#2535.enter(wl_output#2265) +[2618226.281] {Default Queue} discarded wl_surface#2535.enter(wl_output#2297) +[2618226.285] {Default Queue} discarded wl_surface#2535.enter(wl_output#2329) +[2618226.289] {Default Queue} discarded wl_surface#2535.enter(wl_output#2361) +[2618226.293] {Default Queue} discarded wl_surface#2535.enter(wl_output#2393) +[2618226.297] {Default Queue} discarded wl_surface#2535.enter(wl_output#2425) +[2618226.301] {Default Queue} discarded wl_surface#2535.enter(wl_output#2457) +[2618226.305] {Default Queue} discarded wl_surface#2535.enter(wl_output#2489) +[2618226.309] {Default Queue} discarded wl_surface#2535.enter(wl_output#2521) +[2618226.312] {Default Queue} discarded wl_surface#2535.enter(wl_output#2553) +[2618226.317] {Default Queue} -> wl_compositor#2540.create_surface(new id wl_surface#2567) +[2618226.321] {Default Queue} -> wl_subcompositor#2573.get_subsurface(new id wl_subsurface#2586, wl_surface#2567, wl_surface#2535) +[2618226.329] {Default Queue} -> wl_subsurface#2586.set_desync() +[2618226.333] {Default Queue} -> wl_subsurface#2586.set_position(0, 0) +[2618226.337] {Default Queue} -> wl_subsurface#2586.place_above(wl_surface#2535) +[2618226.383] {Default Queue} -> wl_shm#2575.create_pool(new id wl_shm_pool#2587, fd 409, 16) +[2618226.390] {Default Queue} -> wl_shm#2575.create_pool(new id wl_shm_pool#2588, fd 410, 16) +[2618226.395] {Default Queue} -> wl_shm_pool#2587.create_buffer(new id wl_buffer#2589, 0, 2, 2, 8, 0) +[2618226.399] {Default Queue} -> wl_shm_pool#2588.create_buffer(new id wl_buffer#2590, 0, 2, 2, 8, 0) +[2618226.407] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) +[2618226.412] {Default Queue} -> wl_surface#2567.commit() +[2618226.418] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) +[2618226.422] {Default Queue} -> wl_surface#2567.commit() +[2618226.427] {Default Queue} -> wl_compositor#2572.create_region(new id wl_region#2591) +[2618226.431] {Default Queue} -> wl_compositor#2572.create_region(new id wl_region#2592) +[2618226.435] {Default Queue} -> wl_region#2591.subtract(0, 0, 2, 2) +[2618226.441] {Default Queue} -> wl_region#2591.add(0, 0, 0, 0) +[2618226.447] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2618226.453] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2618226.460] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618226.467] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) +[2618226.478] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) +[2618226.487] {Default Queue} -> wl_surface#2567.commit() +[2618226.529] {Default Queue} -> wl_shm#2577.create_pool(new id wl_shm_pool#2593, fd 413, 640) +[2618226.536] {Default Queue} -> wl_shm#2577.create_pool(new id wl_shm_pool#2594, fd 414, 640) +[2618226.541] {Default Queue} -> wl_shm_pool#2593.create_buffer(new id wl_buffer#2595, 0, 10, 16, 40, 0) +[2618226.546] {Default Queue} -> wl_shm_pool#2594.create_buffer(new id wl_buffer#2596, 0, 10, 16, 40, 0) +[2618226.553] {Default Queue} -> wl_compositor#2572.create_surface(new id wl_surface#2597) +[2618226.558] {Default Queue} -> wl_surface#2597.attach(wl_buffer#2595, 0, 0) +[2618226.562] {Default Queue} -> wl_surface#2597.commit() +[2618226.567] {Default Queue} -> wl_surface#2597.attach(wl_buffer#2595, 0, 0) +[2618226.576] {Default Queue} -> wl_surface#2597.commit() +[2618226.585] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) +[2618226.591] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618226.596] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618226.602] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2598) +[2618226.607] {Default Queue} -> wl_display#1.sync(new id wl_callback#2599) +[2618230.288] {Display Queue} wl_display#1.delete_id(2599) +[2618230.301] {Default Queue} wl_keyboard#2568.keymap(1, fd 409, 68213) +[2618230.307] {Default Queue} wl_keyboard#2568.enter(566, wl_surface#19, array[0]) +[2618230.312] {Default Queue} wl_keyboard#2568.modifiers(566, 0, 0, 16, 0) +[2618230.317] {Default Queue} discarded wl_shm#2575.format(875709016) +[2618230.321] {Default Queue} discarded wl_shm#2575.format(1) +[2618230.324] {Default Queue} discarded wl_shm#2575.format(0) +[2618230.328] {Default Queue} discarded wl_shm#2575.format(875708993) +[2618230.333] {Default Queue} discarded wl_shm#2576.format(875709016) +[2618230.337] {Default Queue} discarded wl_shm#2576.format(1) +[2618230.341] {Default Queue} discarded wl_shm#2576.format(0) +[2618230.344] {Default Queue} discarded wl_shm#2576.format(875708993) +[2618230.348] {Default Queue} discarded wl_shm#2577.format(875709016) +[2618230.353] {Default Queue} discarded wl_shm#2577.format(1) +[2618230.356] {Default Queue} discarded wl_shm#2577.format(0) +[2618230.360] {Default Queue} discarded wl_shm#2577.format(875708993) +[2618230.364] {Default Queue} wl_seat#2584.capabilities(7) +[2618230.369] {Default Queue} -> wl_seat#2584.get_keyboard(new id wl_keyboard#2600) +[2618230.374] {Default Queue} -> wl_seat#2584.get_pointer(new id wl_pointer#2601) +[2618230.378] {Default Queue} -> wl_data_device_manager#2580.get_data_device(new id wl_data_device#2602, wl_seat#2584) +[2618230.383] {Default Queue} -> zwp_primary_selection_device_manager_v1#2582.get_device(new id zwp_primary_selection_device_v1#2603, wl_seat#2584) +[2618230.391] {Default Queue} wl_output#2585.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618230.396] {Default Queue} wl_output#2585.mode(3, 1280, 800, 60000) +[2618230.401] {Default Queue} discarded wl_surface#3.enter(wl_output#2585) +[2618230.405] {Default Queue} discarded wl_surface#999.enter(wl_output#2585) +[2618230.409] {Default Queue} discarded wl_surface#1191.enter(wl_output#2585) +[2618230.413] {Default Queue} discarded wl_surface#1159.enter(wl_output#2585) +[2618230.417] {Default Queue} discarded wl_surface#1703.enter(wl_output#2585) +[2618230.421] {Default Queue} discarded wl_surface#2215.enter(wl_output#2585) +[2618230.425] {Default Queue} discarded wl_surface#423.enter(wl_output#2585) +[2618230.429] {Default Queue} discarded wl_surface#1447.enter(wl_output#2585) +[2618230.433] {Default Queue} discarded wl_surface#2023.enter(wl_output#2585) +[2618230.436] {Default Queue} discarded wl_surface#1639.enter(wl_output#2585) +[2618230.440] {Default Queue} discarded wl_surface#1319.enter(wl_output#2585) +[2618230.444] {Default Queue} discarded wl_surface#1127.enter(wl_output#2585) +[2618230.448] {Default Queue} discarded wl_surface#2151.enter(wl_output#2585) +[2618230.452] {Default Queue} discarded wl_surface#2375.enter(wl_output#2585) +[2618230.456] {Default Queue} discarded wl_surface#1063.enter(wl_output#2585) +[2618230.460] {Default Queue} discarded wl_surface#455.enter(wl_output#2585) +[2618230.464] {Default Queue} discarded wl_surface#1575.enter(wl_output#2585) +[2618230.468] {Default Queue} discarded wl_surface#1799.enter(wl_output#2585) +[2618230.471] {Default Queue} discarded wl_surface#1415.enter(wl_output#2585) +[2618230.475] {Default Queue} discarded wl_surface#2439.enter(wl_output#2585) +[2618230.479] {Default Queue} discarded wl_surface#2279.enter(wl_output#2585) +[2618230.483] {Default Queue} discarded wl_surface#1831.enter(wl_output#2585) +[2618230.487] {Default Queue} discarded wl_surface#903.enter(wl_output#2585) +[2618230.491] {Default Queue} discarded wl_surface#775.enter(wl_output#2585) +[2618230.495] {Default Queue} discarded wl_surface#1991.enter(wl_output#2585) +[2618230.506] {Default Queue} discarded wl_surface#1543.enter(wl_output#2585) +[2618230.517] {Default Queue} discarded wl_surface#135.enter(wl_output#2585) +[2618230.523] {Default Queue} discarded wl_surface#1287.enter(wl_output#2585) +[2618230.529] {Default Queue} discarded wl_surface#1031.enter(wl_output#2585) +[2618230.535] {Default Queue} discarded wl_surface#615.enter(wl_output#2585) +[2618230.541] {Default Queue} discarded wl_surface#231.enter(wl_output#2585) +[2618230.547] {Default Queue} discarded wl_surface#2343.enter(wl_output#2585) +[2618230.553] {Default Queue} discarded wl_surface#1863.enter(wl_output#2585) +[2618230.559] {Default Queue} discarded wl_surface#359.enter(wl_output#2585) +[2618230.564] {Default Queue} discarded wl_surface#583.enter(wl_output#2585) +[2618230.568] {Default Queue} discarded wl_surface#743.enter(wl_output#2585) +[2618230.571] {Default Queue} discarded wl_surface#2535.enter(wl_output#2585) +[2618230.575] {Default Queue} discarded wl_surface#967.enter(wl_output#2585) +[2618230.579] {Default Queue} discarded wl_surface#103.enter(wl_output#2585) +[2618230.583] {Default Queue} discarded wl_surface#327.enter(wl_output#2585) +[2618230.587] {Default Queue} discarded wl_surface#43.enter(wl_output#2585) +[2618230.591] {Default Queue} discarded wl_surface#2247.enter(wl_output#2585) +[2618230.595] {Default Queue} discarded wl_surface#807.enter(wl_output#2585) +[2618230.599] {Default Queue} discarded wl_surface#19.enter(wl_output#2585) +[2618230.603] {Default Queue} discarded wl_surface#1511.enter(wl_output#2585) +[2618230.606] {Default Queue} discarded wl_surface#199.enter(wl_output#2585) +[2618230.610] {Default Queue} discarded wl_surface#391.enter(wl_output#2585) +[2618230.614] {Default Queue} discarded wl_surface#935.enter(wl_output#2585) +[2618230.618] {Default Queue} discarded wl_surface#1671.enter(wl_output#2585) +[2618230.622] {Default Queue} discarded wl_surface#1351.enter(wl_output#2585) +[2618230.626] {Default Queue} discarded wl_surface#711.enter(wl_output#2585) +[2618230.630] {Default Queue} discarded wl_surface#1223.enter(wl_output#2585) +[2618230.633] {Default Queue} discarded wl_surface#1927.enter(wl_output#2585) +[2618230.637] {Default Queue} discarded wl_surface#871.enter(wl_output#2585) +[2618230.641] {Default Queue} discarded wl_surface#1895.enter(wl_output#2585) +[2618230.645] {Default Queue} discarded wl_surface#263.enter(wl_output#2585) +[2618230.649] {Default Queue} discarded wl_surface#551.enter(wl_output#2585) +[2618230.653] {Default Queue} discarded wl_surface#1735.enter(wl_output#2585) +[2618230.657] {Default Queue} discarded wl_surface#1479.enter(wl_output#2585) +[2618230.661] {Default Queue} discarded wl_surface#1772.enter(wl_output#2585) +[2618230.665] {Default Queue} discarded wl_surface#1959.enter(wl_output#2585) +[2618230.669] {Default Queue} discarded wl_surface#647.enter(wl_output#2585) +[2618230.672] {Default Queue} discarded wl_surface#2055.enter(wl_output#2585) +[2618230.676] {Default Queue} discarded wl_surface#2508.enter(wl_output#2585) +[2618230.680] {Default Queue} discarded wl_surface#71.enter(wl_output#2585) +[2618230.684] {Default Queue} discarded wl_surface#2183.enter(wl_output#2585) +[2618230.688] {Default Queue} discarded wl_surface#839.enter(wl_output#2585) +[2618230.692] {Default Queue} discarded wl_surface#1607.enter(wl_output#2585) +[2618230.696] {Default Queue} discarded wl_surface#1095.enter(wl_output#2585) +[2618230.700] {Default Queue} discarded wl_surface#1383.enter(wl_output#2585) +[2618230.704] {Default Queue} discarded wl_surface#487.enter(wl_output#2585) +[2618230.708] {Default Queue} discarded wl_surface#2311.enter(wl_output#2585) +[2618230.712] {Default Queue} discarded wl_surface#519.enter(wl_output#2585) +[2618230.718] {Default Queue} discarded wl_surface#2087.enter(wl_output#2585) +[2618230.731] {Default Queue} discarded wl_surface#2471.enter(wl_output#2585) +[2618230.738] {Default Queue} discarded wl_surface#295.enter(wl_output#2585) +[2618230.743] {Default Queue} discarded wl_surface#167.enter(wl_output#2585) +[2618230.752] {Default Queue} discarded wl_surface#1255.enter(wl_output#2585) +[2618230.759] {Default Queue} discarded wl_surface#679.enter(wl_output#2585) +[2618230.763] {Default Queue} discarded wl_surface#2407.enter(wl_output#2585) +[2618230.767] {Default Queue} discarded wl_surface#2119.enter(wl_output#2585) +[2618230.771] {Default Queue} wl_registry#2598.global(1, "wl_compositor", 6) +[2618230.778] {Default Queue} -> wl_registry#2598.bind(1, "wl_compositor", 1, new id [unknown]#2604) +[2618230.783] {Default Queue} wl_registry#2598.global(2, "wl_subcompositor", 1) +[2618230.787] {Default Queue} -> wl_registry#2598.bind(2, "wl_subcompositor", 1, new id [unknown]#2605) +[2618230.792] {Default Queue} wl_registry#2598.global(3, "xdg_wm_base", 6) +[2618230.797] {Default Queue} -> wl_registry#2598.bind(3, "xdg_wm_base", 1, new id [unknown]#2606) +[2618230.802] {Default Queue} wl_registry#2598.global(6, "zwlr_layer_shell_v1", 5) +[2618230.806] {Default Queue} wl_registry#2598.global(7, "ext_session_lock_manager_v1", 1) +[2618230.811] {Default Queue} wl_registry#2598.global(8, "wl_shm", 2) +[2618230.815] {Default Queue} -> wl_registry#2598.bind(8, "wl_shm", 1, new id [unknown]#2607) +[2618230.820] {Default Queue} -> wl_registry#2598.bind(8, "wl_shm", 1, new id [unknown]#2608) +[2618230.824] {Default Queue} -> wl_registry#2598.bind(8, "wl_shm", 1, new id [unknown]#2609) +[2618230.828] {Default Queue} wl_registry#2598.global(9, "zxdg_output_manager_v1", 3) +[2618230.833] {Default Queue} wl_registry#2598.global(10, "wp_fractional_scale_manager_v1", 1) +[2618230.837] {Default Queue} wl_registry#2598.global(11, "zwp_tablet_manager_v2", 1) +[2618230.841] {Default Queue} wl_registry#2598.global(12, "zwp_pointer_gestures_v1", 3) +[2618230.845] {Default Queue} wl_registry#2598.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618230.850] {Default Queue} -> wl_registry#2598.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2610) +[2618230.855] {Default Queue} wl_registry#2598.global(14, "zwp_pointer_constraints_v1", 1) +[2618230.859] {Default Queue} -> wl_registry#2598.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2611) +[2618230.873] {Default Queue} wl_registry#2598.global(15, "ext_idle_notifier_v1", 2) +[2618230.878] {Default Queue} wl_registry#2598.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618230.882] {Default Queue} wl_registry#2598.global(17, "wl_data_device_manager", 3) +[2618230.888] {Default Queue} -> wl_registry#2598.bind(17, "wl_data_device_manager", 2, new id [unknown]#2612) +[2618230.892] {Default Queue} -> wl_data_device_manager#2612.create_data_source(new id wl_data_source#2613) +[2618230.896] {Default Queue} -> wl_data_source#2613.offer("text/plain") +[2618230.901] {Default Queue} -> wl_data_source#2613.offer("text/plain;charset=utf-8") +[2618230.905] {Default Queue} -> wl_data_source#2613.offer("TEXT") +[2618230.909] {Default Queue} -> wl_data_source#2613.offer("STRING") +[2618230.913] {Default Queue} -> wl_data_source#2613.offer("UTF8_STRING") +[2618230.917] {Default Queue} wl_registry#2598.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618230.922] {Default Queue} -> wl_registry#2598.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2614) +[2618230.930] {Default Queue} -> zwp_primary_selection_device_manager_v1#2614.create_source(new id zwp_primary_selection_source_v1#2615) +[2618230.938] {Default Queue} -> zwp_primary_selection_source_v1#2615.offer("text/plain") +[2618230.942] {Default Queue} -> zwp_primary_selection_source_v1#2615.offer("text/plain;charset=utf-8") +[2618230.946] {Default Queue} -> zwp_primary_selection_source_v1#2615.offer("TEXT") +[2618230.951] {Default Queue} -> zwp_primary_selection_source_v1#2615.offer("STRING") +[2618230.955] {Default Queue} -> zwp_primary_selection_source_v1#2615.offer("UTF8_STRING") +[2618230.959] {Default Queue} wl_registry#2598.global(19, "zwlr_data_control_manager_v1", 2) +[2618230.964] {Default Queue} wl_registry#2598.global(20, "ext_data_control_manager_v1", 1) +[2618230.968] {Default Queue} wl_registry#2598.global(21, "wp_presentation", 2) +[2618230.976] {Default Queue} wl_registry#2598.global(22, "wp_security_context_manager_v1", 1) +[2618230.984] {Default Queue} wl_registry#2598.global(23, "zwp_text_input_manager_v3", 1) +[2618230.989] {Default Queue} wl_registry#2598.global(24, "zwp_input_method_manager_v2", 1) +[2618230.993] {Default Queue} wl_registry#2598.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618230.997] {Default Queue} wl_registry#2598.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618231.002] {Default Queue} wl_registry#2598.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618231.007] {Default Queue} wl_registry#2598.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618231.011] {Default Queue} wl_registry#2598.global(29, "ext_workspace_manager_v1", 1) +[2618231.016] {Default Queue} wl_registry#2598.global(30, "zwlr_output_manager_v1", 4) +[2618231.020] {Default Queue} wl_registry#2598.global(31, "zwlr_screencopy_manager_v1", 3) +[2618231.024] {Default Queue} wl_registry#2598.global(32, "wp_viewporter", 1) +[2618231.029] {Default Queue} wl_registry#2598.global(33, "zxdg_exporter_v2", 1) +[2618231.033] {Default Queue} wl_registry#2598.global(34, "zxdg_importer_v2", 1) +[2618231.037] {Default Queue} wl_registry#2598.global(36, "xdg_activation_v1", 1) +[2618231.042] {Default Queue} wl_registry#2598.global(37, "mutter_x11_interop", 1) +[2618231.046] {Default Queue} wl_registry#2598.global(38, "wl_seat", 9) +[2618231.050] {Default Queue} -> wl_registry#2598.bind(38, "wl_seat", 1, new id [unknown]#2616) +[2618231.055] {Default Queue} wl_registry#2598.global(39, "wp_cursor_shape_manager_v1", 2) +[2618231.059] {Default Queue} wl_registry#2598.global(40, "wl_output", 4) +[2618231.063] {Default Queue} -> wl_registry#2598.bind(40, "wl_output", 1, new id [unknown]#2617) +[2618231.068] {Default Queue} wl_callback#2599.done(0) +[2618231.072] {Default Queue} discarded wl_surface#2567.enter(wl_output#18) +[2618231.077] {Default Queue} discarded wl_surface#2567.enter(wl_output#57) +[2618231.081] {Default Queue} discarded wl_surface#2567.enter(wl_output#89) +[2618231.084] {Default Queue} discarded wl_surface#2567.enter(wl_output#121) +[2618231.089] {Default Queue} discarded wl_surface#2567.enter(wl_output#153) +[2618231.093] {Default Queue} discarded wl_surface#2567.enter(wl_output#185) +[2618231.097] {Default Queue} discarded wl_surface#2567.enter(wl_output#217) +[2618231.101] {Default Queue} discarded wl_surface#2567.enter(wl_output#249) +[2618231.104] {Default Queue} discarded wl_surface#2567.enter(wl_output#281) +[2618231.108] {Default Queue} discarded wl_surface#2567.enter(wl_output#313) +[2618231.112] {Default Queue} discarded wl_surface#2567.enter(wl_output#345) +[2618231.116] {Default Queue} discarded wl_surface#2567.enter(wl_output#377) +[2618231.120] {Default Queue} discarded wl_surface#2567.enter(wl_output#409) +[2618231.124] {Default Queue} discarded wl_surface#2567.enter(wl_output#441) +[2618231.128] {Default Queue} discarded wl_surface#2567.enter(wl_output#473) +[2618231.132] {Default Queue} discarded wl_surface#2567.enter(wl_output#505) +[2618231.136] {Default Queue} discarded wl_surface#2567.enter(wl_output#537) +[2618231.140] {Default Queue} discarded wl_surface#2567.enter(wl_output#569) +[2618231.145] {Default Queue} discarded wl_surface#2567.enter(wl_output#601) +[2618231.149] {Default Queue} discarded wl_surface#2567.enter(wl_output#633) +[2618231.152] {Default Queue} discarded wl_surface#2567.enter(wl_output#665) +[2618231.156] {Default Queue} discarded wl_surface#2567.enter(wl_output#697) +[2618231.160] {Default Queue} discarded wl_surface#2567.enter(wl_output#729) +[2618231.164] {Default Queue} discarded wl_surface#2567.enter(wl_output#761) +[2618231.168] {Default Queue} discarded wl_surface#2567.enter(wl_output#793) +[2618231.172] {Default Queue} discarded wl_surface#2567.enter(wl_output#825) +[2618231.176] {Default Queue} discarded wl_surface#2567.enter(wl_output#857) +[2618231.180] {Default Queue} discarded wl_surface#2567.enter(wl_output#889) +[2618231.184] {Default Queue} discarded wl_surface#2567.enter(wl_output#921) +[2618231.188] {Default Queue} discarded wl_surface#2567.enter(wl_output#953) +[2618231.194] {Default Queue} discarded wl_surface#2567.enter(wl_output#985) +[2618231.200] {Default Queue} discarded wl_surface#2567.enter(wl_output#1017) +[2618231.204] {Default Queue} discarded wl_surface#2567.enter(wl_output#1049) +[2618231.208] {Default Queue} discarded wl_surface#2567.enter(wl_output#1081) +[2618231.212] {Default Queue} discarded wl_surface#2567.enter(wl_output#1113) +[2618231.216] {Default Queue} discarded wl_surface#2567.enter(wl_output#1145) +[2618231.220] {Default Queue} discarded wl_surface#2567.enter(wl_output#1177) +[2618231.224] {Default Queue} discarded wl_surface#2567.enter(wl_output#1209) +[2618231.228] {Default Queue} discarded wl_surface#2567.enter(wl_output#1241) +[2618231.232] {Default Queue} discarded wl_surface#2567.enter(wl_output#1273) +[2618231.236] {Default Queue} discarded wl_surface#2567.enter(wl_output#1305) +[2618231.239] {Default Queue} discarded wl_surface#2567.enter(wl_output#1337) +[2618231.243] {Default Queue} discarded wl_surface#2567.enter(wl_output#1369) +[2618231.247] {Default Queue} discarded wl_surface#2567.enter(wl_output#1401) +[2618231.251] {Default Queue} discarded wl_surface#2567.enter(wl_output#1433) +[2618231.255] {Default Queue} discarded wl_surface#2567.enter(wl_output#1465) +[2618231.259] {Default Queue} discarded wl_surface#2567.enter(wl_output#1497) +[2618231.263] {Default Queue} discarded wl_surface#2567.enter(wl_output#1529) +[2618231.267] {Default Queue} discarded wl_surface#2567.enter(wl_output#1561) +[2618231.271] {Default Queue} discarded wl_surface#2567.enter(wl_output#1593) +[2618231.275] {Default Queue} discarded wl_surface#2567.enter(wl_output#1625) +[2618231.278] {Default Queue} discarded wl_surface#2567.enter(wl_output#1657) +[2618231.282] {Default Queue} discarded wl_surface#2567.enter(wl_output#1689) +[2618231.286] {Default Queue} discarded wl_surface#2567.enter(wl_output#1721) +[2618231.290] {Default Queue} discarded wl_surface#2567.enter(wl_output#1753) +[2618231.294] {Default Queue} discarded wl_surface#2567.enter(wl_output#1785) +[2618231.299] {Default Queue} discarded wl_surface#2567.enter(wl_output#1817) +[2618231.303] {Default Queue} discarded wl_surface#2567.enter(wl_output#1849) +[2618231.307] {Default Queue} discarded wl_surface#2567.enter(wl_output#1881) +[2618231.310] {Default Queue} discarded wl_surface#2567.enter(wl_output#1913) +[2618231.315] {Default Queue} discarded wl_surface#2567.enter(wl_output#1945) +[2618231.319] {Default Queue} discarded wl_surface#2567.enter(wl_output#1977) +[2618231.322] {Default Queue} discarded wl_surface#2567.enter(wl_output#2009) +[2618231.326] {Default Queue} discarded wl_surface#2567.enter(wl_output#2041) +[2618231.330] {Default Queue} discarded wl_surface#2567.enter(wl_output#2073) +[2618231.334] {Default Queue} discarded wl_surface#2567.enter(wl_output#2105) +[2618231.338] {Default Queue} discarded wl_surface#2567.enter(wl_output#2137) +[2618231.342] {Default Queue} discarded wl_surface#2567.enter(wl_output#2169) +[2618231.346] {Default Queue} discarded wl_surface#2567.enter(wl_output#2201) +[2618231.350] {Default Queue} discarded wl_surface#2567.enter(wl_output#2233) +[2618231.354] {Default Queue} discarded wl_surface#2567.enter(wl_output#2265) +[2618231.358] {Default Queue} discarded wl_surface#2567.enter(wl_output#2297) +[2618231.362] {Default Queue} discarded wl_surface#2567.enter(wl_output#2329) +[2618231.366] {Default Queue} discarded wl_surface#2567.enter(wl_output#2361) +[2618231.370] {Default Queue} discarded wl_surface#2567.enter(wl_output#2393) +[2618231.374] {Default Queue} discarded wl_surface#2567.enter(wl_output#2425) +[2618231.378] {Default Queue} discarded wl_surface#2567.enter(wl_output#2457) +[2618231.381] {Default Queue} discarded wl_surface#2567.enter(wl_output#2489) +[2618231.385] {Default Queue} discarded wl_surface#2567.enter(wl_output#2521) +[2618231.390] {Default Queue} discarded wl_surface#2567.enter(wl_output#2553) +[2618231.394] {Default Queue} discarded wl_surface#2567.enter(wl_output#2585) +[2618231.398] {Default Queue} -> wl_compositor#2540.create_surface(new id wl_surface#2599) +[2618231.405] {Default Queue} -> wl_subcompositor#2605.get_subsurface(new id wl_subsurface#2618, wl_surface#2599, wl_surface#2535) +[2618231.414] {Default Queue} -> wl_subsurface#2618.set_desync() +[2618231.419] {Default Queue} -> wl_subsurface#2618.set_position(0, 0) +[2618231.423] {Default Queue} -> wl_subsurface#2618.place_above(wl_surface#2535) +[2618231.467] {Default Queue} -> wl_shm#2607.create_pool(new id wl_shm_pool#2619, fd 414, 16) +[2618231.473] {Default Queue} -> wl_shm#2607.create_pool(new id wl_shm_pool#2620, fd 415, 16) +[2618231.478] {Default Queue} -> wl_shm_pool#2619.create_buffer(new id wl_buffer#2621, 0, 2, 2, 8, 0) +[2618231.483] {Default Queue} -> wl_shm_pool#2620.create_buffer(new id wl_buffer#2622, 0, 2, 2, 8, 0) +[2618231.491] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) +[2618231.496] {Default Queue} -> wl_surface#2599.commit() +[2618231.502] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) +[2618231.506] {Default Queue} -> wl_surface#2599.commit() +[2618231.511] {Default Queue} -> wl_compositor#2604.create_region(new id wl_region#2623) +[2618231.515] {Default Queue} -> wl_compositor#2604.create_region(new id wl_region#2624) +[2618231.520] {Default Queue} -> wl_region#2623.subtract(0, 0, 2, 2) +[2618231.524] {Default Queue} -> wl_region#2623.add(0, 0, 0, 0) +[2618231.528] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) +[2618231.533] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) +[2618231.537] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) +[2618231.542] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) +[2618231.549] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) +[2618231.554] {Default Queue} -> wl_surface#2599.commit() +[2618231.585] {Default Queue} -> wl_shm#2609.create_pool(new id wl_shm_pool#2625, fd 418, 640) +[2618231.592] {Default Queue} -> wl_shm#2609.create_pool(new id wl_shm_pool#2626, fd 419, 640) +[2618231.598] {Default Queue} -> wl_shm_pool#2625.create_buffer(new id wl_buffer#2627, 0, 10, 16, 40, 0) +[2618231.603] {Default Queue} -> wl_shm_pool#2626.create_buffer(new id wl_buffer#2628, 0, 10, 16, 40, 0) +[2618231.609] {Default Queue} -> wl_compositor#2604.create_surface(new id wl_surface#2629) +[2618231.614] {Default Queue} -> wl_surface#2629.attach(wl_buffer#2627, 0, 0) +[2618231.618] {Default Queue} -> wl_surface#2629.commit() +[2618231.624] {Default Queue} -> wl_surface#2629.attach(wl_buffer#2627, 0, 0) +[2618231.628] {Default Queue} -> wl_surface#2629.commit() +[2618231.633] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) +[2618231.640] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2630) +[2618231.645] {Default Queue} -> wl_display#1.sync(new id wl_callback#2631) +[2618235.324] {Display Queue} wl_display#1.delete_id(2631) +[2618235.337] {Default Queue} wl_keyboard#2600.keymap(1, fd 414, 68213) +[2618235.342] {Default Queue} wl_keyboard#2600.enter(566, wl_surface#19, array[0]) +[2618235.347] {Default Queue} wl_keyboard#2600.modifiers(566, 0, 0, 16, 0) +[2618235.352] {Default Queue} discarded wl_shm#2607.format(875709016) +[2618235.356] {Default Queue} discarded wl_shm#2607.format(1) +[2618235.360] {Default Queue} discarded wl_shm#2607.format(0) +[2618235.364] {Default Queue} discarded wl_shm#2607.format(875708993) +[2618235.368] {Default Queue} discarded wl_shm#2608.format(875709016) +[2618235.372] {Default Queue} discarded wl_shm#2608.format(1) +[2618235.376] {Default Queue} discarded wl_shm#2608.format(0) +[2618235.380] {Default Queue} discarded wl_shm#2608.format(875708993) +[2618235.383] {Default Queue} discarded wl_shm#2609.format(875709016) +[2618235.387] {Default Queue} discarded wl_shm#2609.format(1) +[2618235.391] {Default Queue} discarded wl_shm#2609.format(0) +[2618235.395] {Default Queue} discarded wl_shm#2609.format(875708993) +[2618235.399] {Default Queue} wl_seat#2616.capabilities(7) +[2618235.403] {Default Queue} -> wl_seat#2616.get_keyboard(new id wl_keyboard#2632) +[2618235.408] {Default Queue} -> wl_seat#2616.get_pointer(new id wl_pointer#2633) +[2618235.417] {Default Queue} -> wl_data_device_manager#2612.get_data_device(new id wl_data_device#2634, wl_seat#2616) +[2618235.425] {Default Queue} -> zwp_primary_selection_device_manager_v1#2614.get_device(new id zwp_primary_selection_device_v1#2635, wl_seat#2616) +[2618235.433] {Default Queue} wl_output#2617.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618235.438] {Default Queue} wl_output#2617.mode(3, 1280, 800, 60000) +[2618235.443] {Default Queue} discarded wl_surface#3.enter(wl_output#2617) +[2618235.447] {Default Queue} discarded wl_surface#999.enter(wl_output#2617) +[2618235.451] {Default Queue} discarded wl_surface#1191.enter(wl_output#2617) +[2618235.455] {Default Queue} discarded wl_surface#1159.enter(wl_output#2617) +[2618235.459] {Default Queue} discarded wl_surface#1703.enter(wl_output#2617) +[2618235.463] {Default Queue} discarded wl_surface#2215.enter(wl_output#2617) +[2618235.467] {Default Queue} discarded wl_surface#423.enter(wl_output#2617) +[2618235.470] {Default Queue} discarded wl_surface#1447.enter(wl_output#2617) +[2618235.474] {Default Queue} discarded wl_surface#2023.enter(wl_output#2617) +[2618235.478] {Default Queue} discarded wl_surface#1639.enter(wl_output#2617) +[2618235.482] {Default Queue} discarded wl_surface#1319.enter(wl_output#2617) +[2618235.486] {Default Queue} discarded wl_surface#1127.enter(wl_output#2617) +[2618235.490] {Default Queue} discarded wl_surface#2151.enter(wl_output#2617) +[2618235.494] {Default Queue} discarded wl_surface#2375.enter(wl_output#2617) +[2618235.498] {Default Queue} discarded wl_surface#1063.enter(wl_output#2617) +[2618235.502] {Default Queue} discarded wl_surface#455.enter(wl_output#2617) +[2618235.506] {Default Queue} discarded wl_surface#1575.enter(wl_output#2617) +[2618235.510] {Default Queue} discarded wl_surface#1799.enter(wl_output#2617) +[2618235.514] {Default Queue} discarded wl_surface#1415.enter(wl_output#2617) +[2618235.518] {Default Queue} discarded wl_surface#2439.enter(wl_output#2617) +[2618235.522] {Default Queue} discarded wl_surface#2279.enter(wl_output#2617) +[2618235.526] {Default Queue} discarded wl_surface#1831.enter(wl_output#2617) +[2618235.530] {Default Queue} discarded wl_surface#903.enter(wl_output#2617) +[2618235.534] {Default Queue} discarded wl_surface#775.enter(wl_output#2617) +[2618235.538] {Default Queue} discarded wl_surface#1991.enter(wl_output#2617) +[2618235.542] {Default Queue} discarded wl_surface#1543.enter(wl_output#2617) +[2618235.546] {Default Queue} discarded wl_surface#135.enter(wl_output#2617) +[2618235.549] {Default Queue} discarded wl_surface#1287.enter(wl_output#2617) +[2618235.553] {Default Queue} discarded wl_surface#1031.enter(wl_output#2617) +[2618235.557] {Default Queue} discarded wl_surface#615.enter(wl_output#2617) +[2618235.561] {Default Queue} discarded wl_surface#231.enter(wl_output#2617) +[2618235.565] {Default Queue} discarded wl_surface#2343.enter(wl_output#2617) +[2618235.569] {Default Queue} discarded wl_surface#1863.enter(wl_output#2617) +[2618235.573] {Default Queue} discarded wl_surface#359.enter(wl_output#2617) +[2618235.577] {Default Queue} discarded wl_surface#583.enter(wl_output#2617) +[2618235.581] {Default Queue} discarded wl_surface#743.enter(wl_output#2617) +[2618235.584] {Default Queue} discarded wl_surface#2535.enter(wl_output#2617) +[2618235.588] {Default Queue} discarded wl_surface#967.enter(wl_output#2617) +[2618235.592] {Default Queue} discarded wl_surface#103.enter(wl_output#2617) +[2618235.596] {Default Queue} discarded wl_surface#327.enter(wl_output#2617) +[2618235.600] {Default Queue} discarded wl_surface#43.enter(wl_output#2617) +[2618235.604] {Default Queue} discarded wl_surface#2247.enter(wl_output#2617) +[2618235.608] {Default Queue} discarded wl_surface#807.enter(wl_output#2617) +[2618235.612] {Default Queue} discarded wl_surface#19.enter(wl_output#2617) +[2618235.616] {Default Queue} discarded wl_surface#1511.enter(wl_output#2617) +[2618235.620] {Default Queue} discarded wl_surface#199.enter(wl_output#2617) +[2618235.623] {Default Queue} discarded wl_surface#391.enter(wl_output#2617) +[2618235.630] {Default Queue} discarded wl_surface#935.enter(wl_output#2617) +[2618235.636] {Default Queue} discarded wl_surface#1671.enter(wl_output#2617) +[2618235.640] {Default Queue} discarded wl_surface#1351.enter(wl_output#2617) +[2618235.644] {Default Queue} discarded wl_surface#711.enter(wl_output#2617) +[2618235.648] {Default Queue} discarded wl_surface#1223.enter(wl_output#2617) +[2618235.652] {Default Queue} discarded wl_surface#1927.enter(wl_output#2617) +[2618235.656] {Default Queue} discarded wl_surface#871.enter(wl_output#2617) +[2618235.659] {Default Queue} discarded wl_surface#1895.enter(wl_output#2617) +[2618235.663] {Default Queue} discarded wl_surface#263.enter(wl_output#2617) +[2618235.667] {Default Queue} discarded wl_surface#551.enter(wl_output#2617) +[2618235.671] {Default Queue} discarded wl_surface#1735.enter(wl_output#2617) +[2618235.675] {Default Queue} discarded wl_surface#1479.enter(wl_output#2617) +[2618235.679] {Default Queue} discarded wl_surface#1772.enter(wl_output#2617) +[2618235.683] {Default Queue} discarded wl_surface#1959.enter(wl_output#2617) +[2618235.687] {Default Queue} discarded wl_surface#647.enter(wl_output#2617) +[2618235.691] {Default Queue} discarded wl_surface#2055.enter(wl_output#2617) +[2618235.695] {Default Queue} discarded wl_surface#2508.enter(wl_output#2617) +[2618235.699] {Default Queue} discarded wl_surface#71.enter(wl_output#2617) +[2618235.703] {Default Queue} discarded wl_surface#2183.enter(wl_output#2617) +[2618235.707] {Default Queue} discarded wl_surface#2567.enter(wl_output#2617) +[2618235.711] {Default Queue} discarded wl_surface#839.enter(wl_output#2617) +[2618235.715] {Default Queue} discarded wl_surface#1607.enter(wl_output#2617) +[2618235.718] {Default Queue} discarded wl_surface#1095.enter(wl_output#2617) +[2618235.722] {Default Queue} discarded wl_surface#1383.enter(wl_output#2617) +[2618235.726] {Default Queue} discarded wl_surface#487.enter(wl_output#2617) +[2618235.730] {Default Queue} discarded wl_surface#2311.enter(wl_output#2617) +[2618235.734] {Default Queue} discarded wl_surface#519.enter(wl_output#2617) +[2618235.738] {Default Queue} discarded wl_surface#2087.enter(wl_output#2617) +[2618235.742] {Default Queue} discarded wl_surface#2471.enter(wl_output#2617) +[2618235.746] {Default Queue} discarded wl_surface#295.enter(wl_output#2617) +[2618235.750] {Default Queue} discarded wl_surface#167.enter(wl_output#2617) +[2618235.753] {Default Queue} discarded wl_surface#1255.enter(wl_output#2617) +[2618235.757] {Default Queue} discarded wl_surface#679.enter(wl_output#2617) +[2618235.761] {Default Queue} discarded wl_surface#2407.enter(wl_output#2617) +[2618235.765] {Default Queue} discarded wl_surface#2119.enter(wl_output#2617) +[2618235.769] {Default Queue} wl_registry#2630.global(1, "wl_compositor", 6) +[2618235.774] {Default Queue} -> wl_registry#2630.bind(1, "wl_compositor", 1, new id [unknown]#2636) +[2618235.779] {Default Queue} wl_registry#2630.global(2, "wl_subcompositor", 1) +[2618235.784] {Default Queue} -> wl_registry#2630.bind(2, "wl_subcompositor", 1, new id [unknown]#2637) +[2618235.788] {Default Queue} wl_registry#2630.global(3, "xdg_wm_base", 6) +[2618235.793] {Default Queue} -> wl_registry#2630.bind(3, "xdg_wm_base", 1, new id [unknown]#2638) +[2618235.797] {Default Queue} wl_registry#2630.global(6, "zwlr_layer_shell_v1", 5) +[2618235.802] {Default Queue} wl_registry#2630.global(7, "ext_session_lock_manager_v1", 1) +[2618235.806] {Default Queue} wl_registry#2630.global(8, "wl_shm", 2) +[2618235.811] {Default Queue} -> wl_registry#2630.bind(8, "wl_shm", 1, new id [unknown]#2639) +[2618235.815] {Default Queue} -> wl_registry#2630.bind(8, "wl_shm", 1, new id [unknown]#2640) +[2618235.820] {Default Queue} -> wl_registry#2630.bind(8, "wl_shm", 1, new id [unknown]#2641) +[2618235.824] {Default Queue} wl_registry#2630.global(9, "zxdg_output_manager_v1", 3) +[2618235.828] {Default Queue} wl_registry#2630.global(10, "wp_fractional_scale_manager_v1", 1) +[2618235.833] {Default Queue} wl_registry#2630.global(11, "zwp_tablet_manager_v2", 1) +[2618235.837] {Default Queue} wl_registry#2630.global(12, "zwp_pointer_gestures_v1", 3) +[2618235.844] {Default Queue} wl_registry#2630.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618235.850] {Default Queue} -> wl_registry#2630.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2642) +[2618235.855] {Default Queue} wl_registry#2630.global(14, "zwp_pointer_constraints_v1", 1) +[2618235.859] {Default Queue} -> wl_registry#2630.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2643) +[2618235.865] {Default Queue} wl_registry#2630.global(15, "ext_idle_notifier_v1", 2) +[2618235.870] {Default Queue} wl_registry#2630.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618235.879] {Default Queue} wl_registry#2630.global(17, "wl_data_device_manager", 3) +[2618235.884] {Default Queue} -> wl_registry#2630.bind(17, "wl_data_device_manager", 2, new id [unknown]#2644) +[2618235.889] {Default Queue} -> wl_data_device_manager#2644.create_data_source(new id wl_data_source#2645) +[2618235.893] {Default Queue} -> wl_data_source#2645.offer("text/plain") +[2618235.898] {Default Queue} -> wl_data_source#2645.offer("text/plain;charset=utf-8") +[2618235.902] {Default Queue} -> wl_data_source#2645.offer("TEXT") +[2618235.906] {Default Queue} -> wl_data_source#2645.offer("STRING") +[2618235.910] {Default Queue} -> wl_data_source#2645.offer("UTF8_STRING") +[2618235.914] {Default Queue} wl_registry#2630.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618235.919] {Default Queue} -> wl_registry#2630.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2646) +[2618235.927] {Default Queue} -> zwp_primary_selection_device_manager_v1#2646.create_source(new id zwp_primary_selection_source_v1#2647) +[2618235.934] {Default Queue} -> zwp_primary_selection_source_v1#2647.offer("text/plain") +[2618235.938] {Default Queue} -> zwp_primary_selection_source_v1#2647.offer("text/plain;charset=utf-8") +[2618235.943] {Default Queue} -> zwp_primary_selection_source_v1#2647.offer("TEXT") +[2618235.947] {Default Queue} -> zwp_primary_selection_source_v1#2647.offer("STRING") +[2618235.951] {Default Queue} -> zwp_primary_selection_source_v1#2647.offer("UTF8_STRING") +[2618235.955] {Default Queue} wl_registry#2630.global(19, "zwlr_data_control_manager_v1", 2) +[2618235.960] {Default Queue} wl_registry#2630.global(20, "ext_data_control_manager_v1", 1) +[2618235.964] {Default Queue} wl_registry#2630.global(21, "wp_presentation", 2) +[2618235.968] {Default Queue} wl_registry#2630.global(22, "wp_security_context_manager_v1", 1) +[2618235.973] {Default Queue} wl_registry#2630.global(23, "zwp_text_input_manager_v3", 1) +[2618235.977] {Default Queue} wl_registry#2630.global(24, "zwp_input_method_manager_v2", 1) +[2618235.981] {Default Queue} wl_registry#2630.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618235.986] {Default Queue} wl_registry#2630.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618235.990] {Default Queue} wl_registry#2630.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618235.994] {Default Queue} wl_registry#2630.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618235.999] {Default Queue} wl_registry#2630.global(29, "ext_workspace_manager_v1", 1) +[2618236.003] {Default Queue} wl_registry#2630.global(30, "zwlr_output_manager_v1", 4) +[2618236.007] {Default Queue} wl_registry#2630.global(31, "zwlr_screencopy_manager_v1", 3) +[2618236.012] {Default Queue} wl_registry#2630.global(32, "wp_viewporter", 1) +[2618236.016] {Default Queue} wl_registry#2630.global(33, "zxdg_exporter_v2", 1) +[2618236.020] {Default Queue} wl_registry#2630.global(34, "zxdg_importer_v2", 1) +[2618236.024] {Default Queue} wl_registry#2630.global(36, "xdg_activation_v1", 1) +[2618236.028] {Default Queue} wl_registry#2630.global(37, "mutter_x11_interop", 1) +[2618236.033] {Default Queue} wl_registry#2630.global(38, "wl_seat", 9) +[2618236.037] {Default Queue} -> wl_registry#2630.bind(38, "wl_seat", 1, new id [unknown]#2648) +[2618236.042] {Default Queue} wl_registry#2630.global(39, "wp_cursor_shape_manager_v1", 2) +[2618236.046] {Default Queue} wl_registry#2630.global(40, "wl_output", 4) +[2618236.053] {Default Queue} -> wl_registry#2630.bind(40, "wl_output", 1, new id [unknown]#2649) +[2618236.059] {Default Queue} wl_callback#2631.done(0) +[2618236.064] {Default Queue} discarded wl_surface#2599.enter(wl_output#18) +[2618236.068] {Default Queue} discarded wl_surface#2599.enter(wl_output#57) +[2618236.072] {Default Queue} discarded wl_surface#2599.enter(wl_output#89) +[2618236.076] {Default Queue} discarded wl_surface#2599.enter(wl_output#121) +[2618236.080] {Default Queue} discarded wl_surface#2599.enter(wl_output#153) +[2618236.084] {Default Queue} discarded wl_surface#2599.enter(wl_output#185) +[2618236.088] {Default Queue} discarded wl_surface#2599.enter(wl_output#217) +[2618236.092] {Default Queue} discarded wl_surface#2599.enter(wl_output#249) +[2618236.096] {Default Queue} discarded wl_surface#2599.enter(wl_output#281) +[2618236.100] {Default Queue} discarded wl_surface#2599.enter(wl_output#313) +[2618236.104] {Default Queue} discarded wl_surface#2599.enter(wl_output#345) +[2618236.108] {Default Queue} discarded wl_surface#2599.enter(wl_output#377) +[2618236.112] {Default Queue} discarded wl_surface#2599.enter(wl_output#409) +[2618236.116] {Default Queue} discarded wl_surface#2599.enter(wl_output#441) +[2618236.120] {Default Queue} discarded wl_surface#2599.enter(wl_output#473) +[2618236.124] {Default Queue} discarded wl_surface#2599.enter(wl_output#505) +[2618236.128] {Default Queue} discarded wl_surface#2599.enter(wl_output#537) +[2618236.132] {Default Queue} discarded wl_surface#2599.enter(wl_output#569) +[2618236.136] {Default Queue} discarded wl_surface#2599.enter(wl_output#601) +[2618236.140] {Default Queue} discarded wl_surface#2599.enter(wl_output#633) +[2618236.144] {Default Queue} discarded wl_surface#2599.enter(wl_output#665) +[2618236.148] {Default Queue} discarded wl_surface#2599.enter(wl_output#697) +[2618236.151] {Default Queue} discarded wl_surface#2599.enter(wl_output#729) +[2618236.155] {Default Queue} discarded wl_surface#2599.enter(wl_output#761) +[2618236.159] {Default Queue} discarded wl_surface#2599.enter(wl_output#793) +[2618236.163] {Default Queue} discarded wl_surface#2599.enter(wl_output#825) +[2618236.167] {Default Queue} discarded wl_surface#2599.enter(wl_output#857) +[2618236.171] {Default Queue} discarded wl_surface#2599.enter(wl_output#889) +[2618236.175] {Default Queue} discarded wl_surface#2599.enter(wl_output#921) +[2618236.179] {Default Queue} discarded wl_surface#2599.enter(wl_output#953) +[2618236.183] {Default Queue} discarded wl_surface#2599.enter(wl_output#985) +[2618236.187] {Default Queue} discarded wl_surface#2599.enter(wl_output#1017) +[2618236.190] {Default Queue} discarded wl_surface#2599.enter(wl_output#1049) +[2618236.194] {Default Queue} discarded wl_surface#2599.enter(wl_output#1081) +[2618236.198] {Default Queue} discarded wl_surface#2599.enter(wl_output#1113) +[2618236.202] {Default Queue} discarded wl_surface#2599.enter(wl_output#1145) +[2618236.206] {Default Queue} discarded wl_surface#2599.enter(wl_output#1177) +[2618236.210] {Default Queue} discarded wl_surface#2599.enter(wl_output#1209) +[2618236.214] {Default Queue} discarded wl_surface#2599.enter(wl_output#1241) +[2618236.218] {Default Queue} discarded wl_surface#2599.enter(wl_output#1273) +[2618236.222] {Default Queue} discarded wl_surface#2599.enter(wl_output#1305) +[2618236.226] {Default Queue} discarded wl_surface#2599.enter(wl_output#1337) +[2618236.230] {Default Queue} discarded wl_surface#2599.enter(wl_output#1369) +[2618236.234] {Default Queue} discarded wl_surface#2599.enter(wl_output#1401) +[2618236.238] {Default Queue} discarded wl_surface#2599.enter(wl_output#1433) +[2618236.242] {Default Queue} discarded wl_surface#2599.enter(wl_output#1465) +[2618236.246] {Default Queue} discarded wl_surface#2599.enter(wl_output#1497) +[2618236.249] {Default Queue} discarded wl_surface#2599.enter(wl_output#1529) +[2618236.253] {Default Queue} discarded wl_surface#2599.enter(wl_output#1561) +[2618236.257] {Default Queue} discarded wl_surface#2599.enter(wl_output#1593) +[2618236.261] {Default Queue} discarded wl_surface#2599.enter(wl_output#1625) +[2618236.270] {Default Queue} discarded wl_surface#2599.enter(wl_output#1657) +[2618236.275] {Default Queue} discarded wl_surface#2599.enter(wl_output#1689) +[2618236.279] {Default Queue} discarded wl_surface#2599.enter(wl_output#1721) +[2618236.283] {Default Queue} discarded wl_surface#2599.enter(wl_output#1753) +[2618236.287] {Default Queue} discarded wl_surface#2599.enter(wl_output#1785) +[2618236.291] {Default Queue} discarded wl_surface#2599.enter(wl_output#1817) +[2618236.295] {Default Queue} discarded wl_surface#2599.enter(wl_output#1849) +[2618236.299] {Default Queue} discarded wl_surface#2599.enter(wl_output#1881) +[2618236.304] {Default Queue} discarded wl_surface#2599.enter(wl_output#1913) +[2618236.308] {Default Queue} discarded wl_surface#2599.enter(wl_output#1945) +[2618236.312] {Default Queue} discarded wl_surface#2599.enter(wl_output#1977) +[2618236.316] {Default Queue} discarded wl_surface#2599.enter(wl_output#2009) +[2618236.320] {Default Queue} discarded wl_surface#2599.enter(wl_output#2041) +[2618236.324] {Default Queue} discarded wl_surface#2599.enter(wl_output#2073) +[2618236.328] {Default Queue} discarded wl_surface#2599.enter(wl_output#2105) +[2618236.332] {Default Queue} discarded wl_surface#2599.enter(wl_output#2137) +[2618236.336] {Default Queue} discarded wl_surface#2599.enter(wl_output#2169) +[2618236.341] {Default Queue} discarded wl_surface#2599.enter(wl_output#2201) +[2618236.344] {Default Queue} discarded wl_surface#2599.enter(wl_output#2233) +[2618236.348] {Default Queue} discarded wl_surface#2599.enter(wl_output#2265) +[2618236.352] {Default Queue} discarded wl_surface#2599.enter(wl_output#2297) +[2618236.356] {Default Queue} discarded wl_surface#2599.enter(wl_output#2329) +[2618236.360] {Default Queue} discarded wl_surface#2599.enter(wl_output#2361) +[2618236.364] {Default Queue} discarded wl_surface#2599.enter(wl_output#2393) +[2618236.368] {Default Queue} discarded wl_surface#2599.enter(wl_output#2425) +[2618236.372] {Default Queue} discarded wl_surface#2599.enter(wl_output#2457) +[2618236.376] {Default Queue} discarded wl_surface#2599.enter(wl_output#2489) +[2618236.379] {Default Queue} discarded wl_surface#2599.enter(wl_output#2521) +[2618236.383] {Default Queue} discarded wl_surface#2599.enter(wl_output#2553) +[2618236.387] {Default Queue} discarded wl_surface#2599.enter(wl_output#2585) +[2618236.391] {Default Queue} discarded wl_surface#2599.enter(wl_output#2617) +[2618236.396] {Default Queue} -> wl_compositor#2604.create_surface(new id wl_surface#2631) +[2618236.400] {Default Queue} -> wl_subcompositor#2637.get_subsurface(new id wl_subsurface#2650, wl_surface#2631, wl_surface#2599) +[2618236.408] {Default Queue} -> wl_subsurface#2650.set_desync() +[2618236.412] {Default Queue} -> wl_subsurface#2650.set_position(0, 0) +[2618236.417] {Default Queue} -> wl_subsurface#2650.place_above(wl_surface#2599) +[2618236.466] {Default Queue} -> wl_shm#2639.create_pool(new id wl_shm_pool#2651, fd 419, 16) +[2618236.473] {Default Queue} -> wl_shm#2639.create_pool(new id wl_shm_pool#2652, fd 420, 16) +[2618236.478] {Default Queue} -> wl_shm_pool#2651.create_buffer(new id wl_buffer#2653, 0, 2, 2, 8, 0) +[2618236.482] {Default Queue} -> wl_shm_pool#2652.create_buffer(new id wl_buffer#2654, 0, 2, 2, 8, 0) +[2618236.490] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) +[2618236.495] {Default Queue} -> wl_surface#2631.commit() +[2618236.501] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) +[2618236.505] {Default Queue} -> wl_surface#2631.commit() +[2618236.509] {Default Queue} -> wl_compositor#2636.create_region(new id wl_region#2655) +[2618236.513] {Default Queue} -> wl_compositor#2636.create_region(new id wl_region#2656) +[2618236.518] {Default Queue} -> wl_region#2655.subtract(0, 0, 2, 2) +[2618236.522] {Default Queue} -> wl_region#2655.add(0, 0, 0, 0) +[2618236.527] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618236.531] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618236.535] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) +[2618236.543] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) +[2618236.552] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) +[2618236.557] {Default Queue} -> wl_surface#2631.commit() +[2618236.600] {Default Queue} -> wl_shm#2641.create_pool(new id wl_shm_pool#2657, fd 423, 640) +[2618236.611] {Default Queue} -> wl_shm#2641.create_pool(new id wl_shm_pool#2658, fd 424, 640) +[2618236.619] {Default Queue} -> wl_shm_pool#2657.create_buffer(new id wl_buffer#2659, 0, 10, 16, 40, 0) +[2618236.626] {Default Queue} -> wl_shm_pool#2658.create_buffer(new id wl_buffer#2660, 0, 10, 16, 40, 0) +[2618236.637] {Default Queue} -> wl_compositor#2636.create_surface(new id wl_surface#2661) +[2618236.643] {Default Queue} -> wl_surface#2661.attach(wl_buffer#2659, 0, 0) +[2618236.648] {Default Queue} -> wl_surface#2661.commit() +[2618236.654] {Default Queue} -> wl_surface#2661.attach(wl_buffer#2659, 0, 0) +[2618236.659] {Default Queue} -> wl_surface#2661.commit() +[2618236.665] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) +[2618236.674] {Default Queue} -> wl_region#2559.subtract(0, 0, 2, 2) +[2618236.679] {Default Queue} -> wl_subsurface#2554.set_position(3, 3) +[2618236.683] {Default Queue} -> wl_region#2559.subtract(0, 0, 5, 5) +[2618236.688] {Default Queue} -> wl_region#2559.add(0, 0, 0, 0) +[2618236.692] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) +[2618236.697] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) +[2618236.701] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618236.705] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) +[2618236.710] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) +[2618236.714] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) +[2618236.721] {Default Queue} -> wl_region#2559.subtract(0, 0, 5, 5) +[2618236.725] {Default Queue} -> wl_region#2559.add(0, 0, 0, 0) +[2618236.730] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) +[2618236.734] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) +[2618236.739] {Default Queue} -> wl_surface#2535.attach(wl_buffer#2557, 0, 0) +[2618236.743] {Default Queue} -> wl_surface#2535.commit() +[2618236.750] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2662) +[2618236.758] {Default Queue} -> wl_display#1.sync(new id wl_callback#2663) +[2618240.326] {Display Queue} wl_display#1.delete_id(2663) +[2618240.341] {Default Queue} wl_keyboard#2632.keymap(1, fd 419, 68213) +[2618240.348] {Default Queue} wl_keyboard#2632.enter(566, wl_surface#19, array[0]) +[2618240.354] {Default Queue} wl_keyboard#2632.modifiers(566, 0, 0, 16, 0) +[2618240.360] {Default Queue} discarded wl_shm#2639.format(875709016) +[2618240.365] {Default Queue} discarded wl_shm#2639.format(1) +[2618240.370] {Default Queue} discarded wl_shm#2639.format(0) +[2618240.375] {Default Queue} discarded wl_shm#2639.format(875708993) +[2618240.379] {Default Queue} discarded wl_shm#2640.format(875709016) +[2618240.384] {Default Queue} discarded wl_shm#2640.format(1) +[2618240.389] {Default Queue} discarded wl_shm#2640.format(0) +[2618240.394] {Default Queue} discarded wl_shm#2640.format(875708993) +[2618240.399] {Default Queue} discarded wl_shm#2641.format(875709016) +[2618240.404] {Default Queue} discarded wl_shm#2641.format(1) +[2618240.408] {Default Queue} discarded wl_shm#2641.format(0) +[2618240.413] {Default Queue} discarded wl_shm#2641.format(875708993) +[2618240.418] {Default Queue} wl_seat#2648.capabilities(7) +[2618240.424] {Default Queue} -> wl_seat#2648.get_keyboard(new id wl_keyboard#2664) +[2618240.429] {Default Queue} -> wl_seat#2648.get_pointer(new id wl_pointer#2665) +[2618240.435] {Default Queue} -> wl_data_device_manager#2644.get_data_device(new id wl_data_device#2666, wl_seat#2648) +[2618240.441] {Default Queue} -> zwp_primary_selection_device_manager_v1#2646.get_device(new id zwp_primary_selection_device_v1#2667, wl_seat#2648) +[2618240.450] {Default Queue} wl_output#2649.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618240.456] {Default Queue} wl_output#2649.mode(3, 1280, 800, 60000) +[2618240.469] {Default Queue} discarded wl_surface#3.enter(wl_output#2649) +[2618240.478] {Default Queue} discarded wl_surface#999.enter(wl_output#2649) +[2618240.483] {Default Queue} discarded wl_surface#1191.enter(wl_output#2649) +[2618240.488] {Default Queue} discarded wl_surface#1159.enter(wl_output#2649) +[2618240.493] {Default Queue} discarded wl_surface#1703.enter(wl_output#2649) +[2618240.498] {Default Queue} discarded wl_surface#2215.enter(wl_output#2649) +[2618240.503] {Default Queue} discarded wl_surface#423.enter(wl_output#2649) +[2618240.507] {Default Queue} discarded wl_surface#1447.enter(wl_output#2649) +[2618240.512] {Default Queue} discarded wl_surface#2023.enter(wl_output#2649) +[2618240.517] {Default Queue} discarded wl_surface#1639.enter(wl_output#2649) +[2618240.522] {Default Queue} discarded wl_surface#1319.enter(wl_output#2649) +[2618240.527] {Default Queue} discarded wl_surface#1127.enter(wl_output#2649) +[2618240.532] {Default Queue} discarded wl_surface#2151.enter(wl_output#2649) +[2618240.537] {Default Queue} discarded wl_surface#2375.enter(wl_output#2649) +[2618240.542] {Default Queue} discarded wl_surface#1063.enter(wl_output#2649) +[2618240.547] {Default Queue} discarded wl_surface#455.enter(wl_output#2649) +[2618240.551] {Default Queue} discarded wl_surface#1575.enter(wl_output#2649) +[2618240.556] {Default Queue} discarded wl_surface#1799.enter(wl_output#2649) +[2618240.561] {Default Queue} discarded wl_surface#1415.enter(wl_output#2649) +[2618240.566] {Default Queue} discarded wl_surface#2439.enter(wl_output#2649) +[2618240.571] {Default Queue} discarded wl_surface#2279.enter(wl_output#2649) +[2618240.575] {Default Queue} discarded wl_surface#1831.enter(wl_output#2649) +[2618240.581] {Default Queue} discarded wl_surface#903.enter(wl_output#2649) +[2618240.585] {Default Queue} discarded wl_surface#775.enter(wl_output#2649) +[2618240.590] {Default Queue} discarded wl_surface#1991.enter(wl_output#2649) +[2618240.595] {Default Queue} discarded wl_surface#1543.enter(wl_output#2649) +[2618240.600] {Default Queue} discarded wl_surface#135.enter(wl_output#2649) +[2618240.605] {Default Queue} discarded wl_surface#1287.enter(wl_output#2649) +[2618240.610] {Default Queue} discarded wl_surface#1031.enter(wl_output#2649) +[2618240.614] {Default Queue} discarded wl_surface#615.enter(wl_output#2649) +[2618240.619] {Default Queue} discarded wl_surface#231.enter(wl_output#2649) +[2618240.624] {Default Queue} discarded wl_surface#2343.enter(wl_output#2649) +[2618240.629] {Default Queue} discarded wl_surface#1863.enter(wl_output#2649) +[2618240.634] {Default Queue} discarded wl_surface#359.enter(wl_output#2649) +[2618240.641] {Default Queue} discarded wl_surface#583.enter(wl_output#2649) +[2618240.647] {Default Queue} discarded wl_surface#743.enter(wl_output#2649) +[2618240.655] {Default Queue} discarded wl_surface#2535.enter(wl_output#2649) +[2618240.663] {Default Queue} discarded wl_surface#967.enter(wl_output#2649) +[2618240.671] {Default Queue} discarded wl_surface#103.enter(wl_output#2649) +[2618240.678] {Default Queue} discarded wl_surface#327.enter(wl_output#2649) +[2618240.686] {Default Queue} discarded wl_surface#43.enter(wl_output#2649) +[2618240.694] {Default Queue} discarded wl_surface#2247.enter(wl_output#2649) +[2618240.701] {Default Queue} discarded wl_surface#807.enter(wl_output#2649) +[2618240.708] {Default Queue} discarded wl_surface#19.enter(wl_output#2649) +[2618240.714] {Default Queue} discarded wl_surface#1511.enter(wl_output#2649) +[2618240.719] {Default Queue} discarded wl_surface#199.enter(wl_output#2649) +[2618240.724] {Default Queue} discarded wl_surface#391.enter(wl_output#2649) +[2618240.728] {Default Queue} discarded wl_surface#935.enter(wl_output#2649) +[2618240.733] {Default Queue} discarded wl_surface#1671.enter(wl_output#2649) +[2618240.738] {Default Queue} discarded wl_surface#1351.enter(wl_output#2649) +[2618240.743] {Default Queue} discarded wl_surface#711.enter(wl_output#2649) +[2618240.748] {Default Queue} discarded wl_surface#1223.enter(wl_output#2649) +[2618240.753] {Default Queue} discarded wl_surface#1927.enter(wl_output#2649) +[2618240.762] {Default Queue} discarded wl_surface#871.enter(wl_output#2649) +[2618240.769] {Default Queue} discarded wl_surface#1895.enter(wl_output#2649) +[2618240.774] {Default Queue} discarded wl_surface#263.enter(wl_output#2649) +[2618240.779] {Default Queue} discarded wl_surface#551.enter(wl_output#2649) +[2618240.784] {Default Queue} discarded wl_surface#1735.enter(wl_output#2649) +[2618240.789] {Default Queue} discarded wl_surface#1479.enter(wl_output#2649) +[2618240.794] {Default Queue} discarded wl_surface#1772.enter(wl_output#2649) +[2618240.798] {Default Queue} discarded wl_surface#2599.enter(wl_output#2649) +[2618240.804] {Default Queue} discarded wl_surface#1959.enter(wl_output#2649) +[2618240.808] {Default Queue} discarded wl_surface#647.enter(wl_output#2649) +[2618240.813] {Default Queue} discarded wl_surface#2055.enter(wl_output#2649) +[2618240.818] {Default Queue} discarded wl_surface#2508.enter(wl_output#2649) +[2618240.823] {Default Queue} discarded wl_surface#71.enter(wl_output#2649) +[2618240.828] {Default Queue} discarded wl_surface#2183.enter(wl_output#2649) +[2618240.832] {Default Queue} discarded wl_surface#2567.enter(wl_output#2649) +[2618240.837] {Default Queue} discarded wl_surface#839.enter(wl_output#2649) +[2618240.842] {Default Queue} discarded wl_surface#1607.enter(wl_output#2649) +[2618240.847] {Default Queue} discarded wl_surface#1095.enter(wl_output#2649) +[2618240.852] {Default Queue} discarded wl_surface#1383.enter(wl_output#2649) +[2618240.857] {Default Queue} discarded wl_surface#487.enter(wl_output#2649) +[2618240.886] {Default Queue} discarded wl_surface#2311.enter(wl_output#2649) +[2618240.899] {Default Queue} discarded wl_surface#519.enter(wl_output#2649) +[2618240.904] {Default Queue} discarded wl_surface#2087.enter(wl_output#2649) +[2618240.908] {Default Queue} discarded wl_surface#2471.enter(wl_output#2649) +[2618240.912] {Default Queue} discarded wl_surface#295.enter(wl_output#2649) +[2618240.916] {Default Queue} discarded wl_surface#167.enter(wl_output#2649) +[2618240.920] {Default Queue} discarded wl_surface#1255.enter(wl_output#2649) +[2618240.924] {Default Queue} discarded wl_surface#679.enter(wl_output#2649) +[2618240.928] {Default Queue} discarded wl_surface#2407.enter(wl_output#2649) +[2618240.932] {Default Queue} discarded wl_surface#2119.enter(wl_output#2649) +[2618240.936] {Default Queue} wl_registry#2662.global(1, "wl_compositor", 6) +[2618240.942] {Default Queue} -> wl_registry#2662.bind(1, "wl_compositor", 1, new id [unknown]#2668) +[2618240.948] {Default Queue} wl_registry#2662.global(2, "wl_subcompositor", 1) +[2618240.953] {Default Queue} -> wl_registry#2662.bind(2, "wl_subcompositor", 1, new id [unknown]#2669) +[2618240.958] {Default Queue} wl_registry#2662.global(3, "xdg_wm_base", 6) +[2618240.962] {Default Queue} -> wl_registry#2662.bind(3, "xdg_wm_base", 1, new id [unknown]#2670) +[2618240.967] {Default Queue} wl_registry#2662.global(6, "zwlr_layer_shell_v1", 5) +[2618240.972] {Default Queue} wl_registry#2662.global(7, "ext_session_lock_manager_v1", 1) +[2618240.976] {Default Queue} wl_registry#2662.global(8, "wl_shm", 2) +[2618240.981] {Default Queue} -> wl_registry#2662.bind(8, "wl_shm", 1, new id [unknown]#2671) +[2618240.985] {Default Queue} -> wl_registry#2662.bind(8, "wl_shm", 1, new id [unknown]#2672) +[2618240.990] {Default Queue} -> wl_registry#2662.bind(8, "wl_shm", 1, new id [unknown]#2673) +[2618240.994] {Default Queue} wl_registry#2662.global(9, "zxdg_output_manager_v1", 3) +[2618240.999] {Default Queue} wl_registry#2662.global(10, "wp_fractional_scale_manager_v1", 1) +[2618241.003] {Default Queue} wl_registry#2662.global(11, "zwp_tablet_manager_v2", 1) +[2618241.008] {Default Queue} wl_registry#2662.global(12, "zwp_pointer_gestures_v1", 3) +[2618241.012] {Default Queue} wl_registry#2662.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618241.016] {Default Queue} -> wl_registry#2662.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2674) +[2618241.021] {Default Queue} wl_registry#2662.global(14, "zwp_pointer_constraints_v1", 1) +[2618241.025] {Default Queue} -> wl_registry#2662.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2675) +[2618241.033] {Default Queue} wl_registry#2662.global(15, "ext_idle_notifier_v1", 2) +[2618241.042] {Default Queue} wl_registry#2662.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618241.047] {Default Queue} wl_registry#2662.global(17, "wl_data_device_manager", 3) +[2618241.051] {Default Queue} -> wl_registry#2662.bind(17, "wl_data_device_manager", 2, new id [unknown]#2676) +[2618241.056] {Default Queue} -> wl_data_device_manager#2676.create_data_source(new id wl_data_source#2677) +[2618241.061] {Default Queue} -> wl_data_source#2677.offer("text/plain") +[2618241.065] {Default Queue} -> wl_data_source#2677.offer("text/plain;charset=utf-8") +[2618241.069] {Default Queue} -> wl_data_source#2677.offer("TEXT") +[2618241.073] {Default Queue} -> wl_data_source#2677.offer("STRING") +[2618241.077] {Default Queue} -> wl_data_source#2677.offer("UTF8_STRING") +[2618241.081] {Default Queue} wl_registry#2662.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618241.086] {Default Queue} -> wl_registry#2662.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2678) +[2618241.095] {Default Queue} -> zwp_primary_selection_device_manager_v1#2678.create_source(new id zwp_primary_selection_source_v1#2679) +[2618241.102] {Default Queue} -> zwp_primary_selection_source_v1#2679.offer("text/plain") +[2618241.106] {Default Queue} -> zwp_primary_selection_source_v1#2679.offer("text/plain;charset=utf-8") +[2618241.111] {Default Queue} -> zwp_primary_selection_source_v1#2679.offer("TEXT") +[2618241.115] {Default Queue} -> zwp_primary_selection_source_v1#2679.offer("STRING") +[2618241.119] {Default Queue} -> zwp_primary_selection_source_v1#2679.offer("UTF8_STRING") +[2618241.123] {Default Queue} wl_registry#2662.global(19, "zwlr_data_control_manager_v1", 2) +[2618241.127] {Default Queue} wl_registry#2662.global(20, "ext_data_control_manager_v1", 1) +[2618241.132] {Default Queue} wl_registry#2662.global(21, "wp_presentation", 2) +[2618241.136] {Default Queue} wl_registry#2662.global(22, "wp_security_context_manager_v1", 1) +[2618241.141] {Default Queue} wl_registry#2662.global(23, "zwp_text_input_manager_v3", 1) +[2618241.145] {Default Queue} wl_registry#2662.global(24, "zwp_input_method_manager_v2", 1) +[2618241.149] {Default Queue} wl_registry#2662.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618241.153] {Default Queue} wl_registry#2662.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618241.158] {Default Queue} wl_registry#2662.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618241.163] {Default Queue} wl_registry#2662.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618241.167] {Default Queue} wl_registry#2662.global(29, "ext_workspace_manager_v1", 1) +[2618241.171] {Default Queue} wl_registry#2662.global(30, "zwlr_output_manager_v1", 4) +[2618241.176] {Default Queue} wl_registry#2662.global(31, "zwlr_screencopy_manager_v1", 3) +[2618241.180] {Default Queue} wl_registry#2662.global(32, "wp_viewporter", 1) +[2618241.184] {Default Queue} wl_registry#2662.global(33, "zxdg_exporter_v2", 1) +[2618241.189] {Default Queue} wl_registry#2662.global(34, "zxdg_importer_v2", 1) +[2618241.193] {Default Queue} wl_registry#2662.global(36, "xdg_activation_v1", 1) +[2618241.198] {Default Queue} wl_registry#2662.global(37, "mutter_x11_interop", 1) +[2618241.202] {Default Queue} wl_registry#2662.global(38, "wl_seat", 9) +[2618241.206] {Default Queue} -> wl_registry#2662.bind(38, "wl_seat", 1, new id [unknown]#2680) +[2618241.211] {Default Queue} wl_registry#2662.global(39, "wp_cursor_shape_manager_v1", 2) +[2618241.215] {Default Queue} wl_registry#2662.global(40, "wl_output", 4) +[2618241.220] {Default Queue} -> wl_registry#2662.bind(40, "wl_output", 1, new id [unknown]#2681) +[2618241.224] {Default Queue} wl_callback#2663.done(0) +[2618241.229] {Default Queue} discarded wl_surface#2631.enter(wl_output#18) +[2618241.234] {Default Queue} discarded wl_surface#2631.enter(wl_output#57) +[2618241.238] {Default Queue} discarded wl_surface#2631.enter(wl_output#89) +[2618241.244] {Default Queue} discarded wl_surface#2631.enter(wl_output#121) +[2618241.250] {Default Queue} discarded wl_surface#2631.enter(wl_output#153) +[2618241.255] {Default Queue} discarded wl_surface#2631.enter(wl_output#185) +[2618241.259] {Default Queue} discarded wl_surface#2631.enter(wl_output#217) +[2618241.263] {Default Queue} discarded wl_surface#2631.enter(wl_output#249) +[2618241.267] {Default Queue} discarded wl_surface#2631.enter(wl_output#281) +[2618241.270] {Default Queue} discarded wl_surface#2631.enter(wl_output#313) +[2618241.274] {Default Queue} discarded wl_surface#2631.enter(wl_output#345) +[2618241.278] {Default Queue} discarded wl_surface#2631.enter(wl_output#377) +[2618241.282] {Default Queue} discarded wl_surface#2631.enter(wl_output#409) +[2618241.286] {Default Queue} discarded wl_surface#2631.enter(wl_output#441) +[2618241.290] {Default Queue} discarded wl_surface#2631.enter(wl_output#473) +[2618241.294] {Default Queue} discarded wl_surface#2631.enter(wl_output#505) +[2618241.298] {Default Queue} discarded wl_surface#2631.enter(wl_output#537) +[2618241.302] {Default Queue} discarded wl_surface#2631.enter(wl_output#569) +[2618241.306] {Default Queue} discarded wl_surface#2631.enter(wl_output#601) +[2618241.309] {Default Queue} discarded wl_surface#2631.enter(wl_output#633) +[2618241.313] {Default Queue} discarded wl_surface#2631.enter(wl_output#665) +[2618241.317] {Default Queue} discarded wl_surface#2631.enter(wl_output#697) +[2618241.321] {Default Queue} discarded wl_surface#2631.enter(wl_output#729) +[2618241.325] {Default Queue} discarded wl_surface#2631.enter(wl_output#761) +[2618241.329] {Default Queue} discarded wl_surface#2631.enter(wl_output#793) +[2618241.333] {Default Queue} discarded wl_surface#2631.enter(wl_output#825) +[2618241.337] {Default Queue} discarded wl_surface#2631.enter(wl_output#857) +[2618241.341] {Default Queue} discarded wl_surface#2631.enter(wl_output#889) +[2618241.345] {Default Queue} discarded wl_surface#2631.enter(wl_output#921) +[2618241.348] {Default Queue} discarded wl_surface#2631.enter(wl_output#953) +[2618241.352] {Default Queue} discarded wl_surface#2631.enter(wl_output#985) +[2618241.356] {Default Queue} discarded wl_surface#2631.enter(wl_output#1017) +[2618241.360] {Default Queue} discarded wl_surface#2631.enter(wl_output#1049) +[2618241.366] {Default Queue} discarded wl_surface#2631.enter(wl_output#1081) +[2618241.371] {Default Queue} discarded wl_surface#2631.enter(wl_output#1113) +[2618241.377] {Default Queue} discarded wl_surface#2631.enter(wl_output#1145) +[2618241.383] {Default Queue} discarded wl_surface#2631.enter(wl_output#1177) +[2618241.388] {Default Queue} discarded wl_surface#2631.enter(wl_output#1209) +[2618241.392] {Default Queue} discarded wl_surface#2631.enter(wl_output#1241) +[2618241.396] {Default Queue} discarded wl_surface#2631.enter(wl_output#1273) +[2618241.400] {Default Queue} discarded wl_surface#2631.enter(wl_output#1305) +[2618241.404] {Default Queue} discarded wl_surface#2631.enter(wl_output#1337) +[2618241.408] {Default Queue} discarded wl_surface#2631.enter(wl_output#1369) +[2618241.412] {Default Queue} discarded wl_surface#2631.enter(wl_output#1401) +[2618241.416] {Default Queue} discarded wl_surface#2631.enter(wl_output#1433) +[2618241.420] {Default Queue} discarded wl_surface#2631.enter(wl_output#1465) +[2618241.424] {Default Queue} discarded wl_surface#2631.enter(wl_output#1497) +[2618241.428] {Default Queue} discarded wl_surface#2631.enter(wl_output#1529) +[2618241.432] {Default Queue} discarded wl_surface#2631.enter(wl_output#1561) +[2618241.436] {Default Queue} discarded wl_surface#2631.enter(wl_output#1593) +[2618241.439] {Default Queue} discarded wl_surface#2631.enter(wl_output#1625) +[2618241.443] {Default Queue} discarded wl_surface#2631.enter(wl_output#1657) +[2618241.447] {Default Queue} discarded wl_surface#2631.enter(wl_output#1689) +[2618241.451] {Default Queue} discarded wl_surface#2631.enter(wl_output#1721) +[2618241.455] {Default Queue} discarded wl_surface#2631.enter(wl_output#1753) +[2618241.459] {Default Queue} discarded wl_surface#2631.enter(wl_output#1785) +[2618241.467] {Default Queue} discarded wl_surface#2631.enter(wl_output#1817) +[2618241.473] {Default Queue} discarded wl_surface#2631.enter(wl_output#1849) +[2618241.477] {Default Queue} discarded wl_surface#2631.enter(wl_output#1881) +[2618241.481] {Default Queue} discarded wl_surface#2631.enter(wl_output#1913) +[2618241.485] {Default Queue} discarded wl_surface#2631.enter(wl_output#1945) +[2618241.489] {Default Queue} discarded wl_surface#2631.enter(wl_output#1977) +[2618241.493] {Default Queue} discarded wl_surface#2631.enter(wl_output#2009) +[2618241.497] {Default Queue} discarded wl_surface#2631.enter(wl_output#2041) +[2618241.501] {Default Queue} discarded wl_surface#2631.enter(wl_output#2073) +[2618241.505] {Default Queue} discarded wl_surface#2631.enter(wl_output#2105) +[2618241.509] {Default Queue} discarded wl_surface#2631.enter(wl_output#2137) +[2618241.513] {Default Queue} discarded wl_surface#2631.enter(wl_output#2169) +[2618241.517] {Default Queue} discarded wl_surface#2631.enter(wl_output#2201) +[2618241.521] {Default Queue} discarded wl_surface#2631.enter(wl_output#2233) +[2618241.525] {Default Queue} discarded wl_surface#2631.enter(wl_output#2265) +[2618241.529] {Default Queue} discarded wl_surface#2631.enter(wl_output#2297) +[2618241.533] {Default Queue} discarded wl_surface#2631.enter(wl_output#2329) +[2618241.537] {Default Queue} discarded wl_surface#2631.enter(wl_output#2361) +[2618241.541] {Default Queue} discarded wl_surface#2631.enter(wl_output#2393) +[2618241.545] {Default Queue} discarded wl_surface#2631.enter(wl_output#2425) +[2618241.549] {Default Queue} discarded wl_surface#2631.enter(wl_output#2457) +[2618241.553] {Default Queue} discarded wl_surface#2631.enter(wl_output#2489) +[2618241.557] {Default Queue} discarded wl_surface#2631.enter(wl_output#2521) +[2618241.561] {Default Queue} discarded wl_surface#2631.enter(wl_output#2553) +[2618241.565] {Default Queue} discarded wl_surface#2631.enter(wl_output#2585) +[2618241.569] {Default Queue} discarded wl_surface#2631.enter(wl_output#2617) +[2618241.572] {Default Queue} discarded wl_surface#2631.enter(wl_output#2649) +[2618241.577] {Default Queue} -> wl_compositor#2092.create_surface(new id wl_surface#2663) +[2618241.582] {Default Queue} -> wl_subcompositor#2669.get_subsurface(new id wl_subsurface#2682, wl_surface#2663, wl_surface#2087) +[2618241.589] {Default Queue} -> wl_subsurface#2682.set_desync() +[2618241.594] {Default Queue} -> wl_subsurface#2682.set_position(0, 0) +[2618241.599] {Default Queue} -> wl_subsurface#2682.place_above(wl_surface#2087) +[2618241.642] {Default Queue} -> wl_shm#2671.create_pool(new id wl_shm_pool#2683, fd 424, 16) +[2618241.649] {Default Queue} -> wl_shm#2671.create_pool(new id wl_shm_pool#2684, fd 425, 16) +[2618241.654] {Default Queue} -> wl_shm_pool#2683.create_buffer(new id wl_buffer#2685, 0, 2, 2, 8, 0) +[2618241.659] {Default Queue} -> wl_shm_pool#2684.create_buffer(new id wl_buffer#2686, 0, 2, 2, 8, 0) +[2618241.667] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) +[2618241.672] {Default Queue} -> wl_surface#2663.commit() +[2618241.678] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) +[2618241.682] {Default Queue} -> wl_surface#2663.commit() +[2618241.686] {Default Queue} -> wl_compositor#2668.create_region(new id wl_region#2687) +[2618241.691] {Default Queue} -> wl_compositor#2668.create_region(new id wl_region#2688) +[2618241.696] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) +[2618241.700] {Default Queue} -> wl_region#2687.add(0, 0, 0, 0) +[2618241.705] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618241.709] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618241.713] {Default Queue} -> wl_surface#2663.damage(0, 0, 2, 2) +[2618241.718] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) +[2618241.725] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) +[2618241.731] {Default Queue} -> wl_surface#2663.commit() +[2618241.774] {Default Queue} -> wl_shm#2673.create_pool(new id wl_shm_pool#2689, fd 428, 640) +[2618241.784] {Default Queue} -> wl_shm#2673.create_pool(new id wl_shm_pool#2690, fd 429, 640) +[2618241.791] {Default Queue} -> wl_shm_pool#2689.create_buffer(new id wl_buffer#2691, 0, 10, 16, 40, 0) +[2618241.796] {Default Queue} -> wl_shm_pool#2690.create_buffer(new id wl_buffer#2692, 0, 10, 16, 40, 0) +[2618241.804] {Default Queue} -> wl_compositor#2668.create_surface(new id wl_surface#2693) +[2618241.808] {Default Queue} -> wl_surface#2693.attach(wl_buffer#2691, 0, 0) +[2618241.812] {Default Queue} -> wl_surface#2693.commit() +[2618241.818] {Default Queue} -> wl_surface#2693.attach(wl_buffer#2691, 0, 0) +[2618241.822] {Default Queue} -> wl_surface#2693.commit() +[2618241.827] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) +[2618241.832] {Default Queue} -> wl_surface#2663.damage(0, 0, 2, 2) +[2618241.837] {Default Queue} -> wl_surface#2663.damage(0, 0, 2, 2) +[2618241.844] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2694) +[2618241.849] {Default Queue} -> wl_display#1.sync(new id wl_callback#2695) +[2618245.314] {Display Queue} wl_display#1.delete_id(2695) +[2618245.328] {Default Queue} wl_keyboard#2664.keymap(1, fd 424, 68213) +[2618245.336] {Default Queue} wl_keyboard#2664.enter(566, wl_surface#19, array[0]) +[2618245.343] {Default Queue} wl_keyboard#2664.modifiers(566, 0, 0, 16, 0) +[2618245.350] {Default Queue} discarded wl_shm#2671.format(875709016) +[2618245.356] {Default Queue} discarded wl_shm#2671.format(1) +[2618245.361] {Default Queue} discarded wl_shm#2671.format(0) +[2618245.365] {Default Queue} discarded wl_shm#2671.format(875708993) +[2618245.369] {Default Queue} discarded wl_shm#2672.format(875709016) +[2618245.372] {Default Queue} discarded wl_shm#2672.format(1) +[2618245.376] {Default Queue} discarded wl_shm#2672.format(0) +[2618245.380] {Default Queue} discarded wl_shm#2672.format(875708993) +[2618245.384] {Default Queue} discarded wl_shm#2673.format(875709016) +[2618245.388] {Default Queue} discarded wl_shm#2673.format(1) +[2618245.392] {Default Queue} discarded wl_shm#2673.format(0) +[2618245.396] {Default Queue} discarded wl_shm#2673.format(875708993) +[2618245.400] {Default Queue} wl_seat#2680.capabilities(7) +[2618245.404] {Default Queue} -> wl_seat#2680.get_keyboard(new id wl_keyboard#2696) +[2618245.409] {Default Queue} -> wl_seat#2680.get_pointer(new id wl_pointer#2697) +[2618245.414] {Default Queue} -> wl_data_device_manager#2676.get_data_device(new id wl_data_device#2698, wl_seat#2680) +[2618245.419] {Default Queue} -> zwp_primary_selection_device_manager_v1#2678.get_device(new id zwp_primary_selection_device_v1#2699, wl_seat#2680) +[2618245.427] {Default Queue} wl_output#2681.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618245.433] {Default Queue} wl_output#2681.mode(3, 1280, 800, 60000) +[2618245.437] {Default Queue} discarded wl_surface#3.enter(wl_output#2681) +[2618245.442] {Default Queue} discarded wl_surface#999.enter(wl_output#2681) +[2618245.446] {Default Queue} discarded wl_surface#1191.enter(wl_output#2681) +[2618245.450] {Default Queue} discarded wl_surface#1159.enter(wl_output#2681) +[2618245.453] {Default Queue} discarded wl_surface#1703.enter(wl_output#2681) +[2618245.457] {Default Queue} discarded wl_surface#2215.enter(wl_output#2681) +[2618245.461] {Default Queue} discarded wl_surface#423.enter(wl_output#2681) +[2618245.465] {Default Queue} discarded wl_surface#1447.enter(wl_output#2681) +[2618245.469] {Default Queue} discarded wl_surface#2023.enter(wl_output#2681) +[2618245.473] {Default Queue} discarded wl_surface#1639.enter(wl_output#2681) +[2618245.477] {Default Queue} discarded wl_surface#1319.enter(wl_output#2681) +[2618245.481] {Default Queue} discarded wl_surface#1127.enter(wl_output#2681) +[2618245.485] {Default Queue} discarded wl_surface#2151.enter(wl_output#2681) +[2618245.489] {Default Queue} discarded wl_surface#2375.enter(wl_output#2681) +[2618245.493] {Default Queue} discarded wl_surface#1063.enter(wl_output#2681) +[2618245.497] {Default Queue} discarded wl_surface#455.enter(wl_output#2681) +[2618245.500] {Default Queue} discarded wl_surface#1575.enter(wl_output#2681) +[2618245.509] {Default Queue} discarded wl_surface#1799.enter(wl_output#2681) +[2618245.516] {Default Queue} discarded wl_surface#1415.enter(wl_output#2681) +[2618245.520] {Default Queue} discarded wl_surface#2439.enter(wl_output#2681) +[2618245.524] {Default Queue} discarded wl_surface#2279.enter(wl_output#2681) +[2618245.528] {Default Queue} discarded wl_surface#1831.enter(wl_output#2681) +[2618245.532] {Default Queue} discarded wl_surface#903.enter(wl_output#2681) +[2618245.535] {Default Queue} discarded wl_surface#775.enter(wl_output#2681) +[2618245.539] {Default Queue} discarded wl_surface#1991.enter(wl_output#2681) +[2618245.543] {Default Queue} discarded wl_surface#1543.enter(wl_output#2681) +[2618245.547] {Default Queue} discarded wl_surface#135.enter(wl_output#2681) +[2618245.551] {Default Queue} discarded wl_surface#1287.enter(wl_output#2681) +[2618245.555] {Default Queue} discarded wl_surface#1031.enter(wl_output#2681) +[2618245.559] {Default Queue} discarded wl_surface#615.enter(wl_output#2681) +[2618245.563] {Default Queue} discarded wl_surface#231.enter(wl_output#2681) +[2618245.567] {Default Queue} discarded wl_surface#2343.enter(wl_output#2681) +[2618245.571] {Default Queue} discarded wl_surface#1863.enter(wl_output#2681) +[2618245.574] {Default Queue} discarded wl_surface#359.enter(wl_output#2681) +[2618245.578] {Default Queue} discarded wl_surface#583.enter(wl_output#2681) +[2618245.583] {Default Queue} discarded wl_surface#743.enter(wl_output#2681) +[2618245.587] {Default Queue} discarded wl_surface#2535.enter(wl_output#2681) +[2618245.590] {Default Queue} discarded wl_surface#967.enter(wl_output#2681) +[2618245.594] {Default Queue} discarded wl_surface#103.enter(wl_output#2681) +[2618245.598] {Default Queue} discarded wl_surface#327.enter(wl_output#2681) +[2618245.602] {Default Queue} discarded wl_surface#43.enter(wl_output#2681) +[2618245.606] {Default Queue} discarded wl_surface#2247.enter(wl_output#2681) +[2618245.610] {Default Queue} discarded wl_surface#807.enter(wl_output#2681) +[2618245.614] {Default Queue} discarded wl_surface#19.enter(wl_output#2681) +[2618245.618] {Default Queue} discarded wl_surface#1511.enter(wl_output#2681) +[2618245.622] {Default Queue} discarded wl_surface#199.enter(wl_output#2681) +[2618245.626] {Default Queue} discarded wl_surface#391.enter(wl_output#2681) +[2618245.630] {Default Queue} discarded wl_surface#935.enter(wl_output#2681) +[2618245.634] {Default Queue} discarded wl_surface#1671.enter(wl_output#2681) +[2618245.638] {Default Queue} discarded wl_surface#1351.enter(wl_output#2681) +[2618245.642] {Default Queue} discarded wl_surface#711.enter(wl_output#2681) +[2618245.645] {Default Queue} discarded wl_surface#1223.enter(wl_output#2681) +[2618245.649] {Default Queue} discarded wl_surface#1927.enter(wl_output#2681) +[2618245.654] {Default Queue} discarded wl_surface#871.enter(wl_output#2681) +[2618245.658] {Default Queue} discarded wl_surface#1895.enter(wl_output#2681) +[2618245.661] {Default Queue} discarded wl_surface#263.enter(wl_output#2681) +[2618245.665] {Default Queue} discarded wl_surface#551.enter(wl_output#2681) +[2618245.669] {Default Queue} discarded wl_surface#1735.enter(wl_output#2681) +[2618245.673] {Default Queue} discarded wl_surface#1479.enter(wl_output#2681) +[2618245.677] {Default Queue} discarded wl_surface#1772.enter(wl_output#2681) +[2618245.681] {Default Queue} discarded wl_surface#2599.enter(wl_output#2681) +[2618245.685] {Default Queue} discarded wl_surface#2631.enter(wl_output#2681) +[2618245.689] {Default Queue} discarded wl_surface#1959.enter(wl_output#2681) +[2618245.693] {Default Queue} discarded wl_surface#647.enter(wl_output#2681) +[2618245.697] {Default Queue} discarded wl_surface#2055.enter(wl_output#2681) +[2618245.701] {Default Queue} discarded wl_surface#2508.enter(wl_output#2681) +[2618245.705] {Default Queue} discarded wl_surface#71.enter(wl_output#2681) +[2618245.708] {Default Queue} discarded wl_surface#2183.enter(wl_output#2681) +[2618245.712] {Default Queue} discarded wl_surface#2567.enter(wl_output#2681) +[2618245.716] {Default Queue} discarded wl_surface#839.enter(wl_output#2681) +[2618245.724] {Default Queue} discarded wl_surface#1607.enter(wl_output#2681) +[2618245.730] {Default Queue} discarded wl_surface#1095.enter(wl_output#2681) +[2618245.734] {Default Queue} discarded wl_surface#1383.enter(wl_output#2681) +[2618245.737] {Default Queue} discarded wl_surface#487.enter(wl_output#2681) +[2618245.741] {Default Queue} discarded wl_surface#2311.enter(wl_output#2681) +[2618245.745] {Default Queue} discarded wl_surface#519.enter(wl_output#2681) +[2618245.749] {Default Queue} discarded wl_surface#2087.enter(wl_output#2681) +[2618245.753] {Default Queue} discarded wl_surface#2471.enter(wl_output#2681) +[2618245.757] {Default Queue} discarded wl_surface#295.enter(wl_output#2681) +[2618245.761] {Default Queue} discarded wl_surface#167.enter(wl_output#2681) +[2618245.765] {Default Queue} discarded wl_surface#1255.enter(wl_output#2681) +[2618245.769] {Default Queue} discarded wl_surface#679.enter(wl_output#2681) +[2618245.773] {Default Queue} discarded wl_surface#2407.enter(wl_output#2681) +[2618245.777] {Default Queue} discarded wl_surface#2119.enter(wl_output#2681) +[2618245.781] {Default Queue} wl_registry#2694.global(1, "wl_compositor", 6) +[2618245.786] {Default Queue} -> wl_registry#2694.bind(1, "wl_compositor", 1, new id [unknown]#2700) +[2618245.791] {Default Queue} wl_registry#2694.global(2, "wl_subcompositor", 1) +[2618245.796] {Default Queue} -> wl_registry#2694.bind(2, "wl_subcompositor", 1, new id [unknown]#2701) +[2618245.800] {Default Queue} wl_registry#2694.global(3, "xdg_wm_base", 6) +[2618245.805] {Default Queue} -> wl_registry#2694.bind(3, "xdg_wm_base", 1, new id [unknown]#2702) +[2618245.810] {Default Queue} wl_registry#2694.global(6, "zwlr_layer_shell_v1", 5) +[2618245.814] {Default Queue} wl_registry#2694.global(7, "ext_session_lock_manager_v1", 1) +[2618245.819] {Default Queue} wl_registry#2694.global(8, "wl_shm", 2) +[2618245.824] {Default Queue} -> wl_registry#2694.bind(8, "wl_shm", 1, new id [unknown]#2703) +[2618245.828] {Default Queue} -> wl_registry#2694.bind(8, "wl_shm", 1, new id [unknown]#2704) +[2618245.832] {Default Queue} -> wl_registry#2694.bind(8, "wl_shm", 1, new id [unknown]#2705) +[2618245.837] {Default Queue} wl_registry#2694.global(9, "zxdg_output_manager_v1", 3) +[2618245.841] {Default Queue} wl_registry#2694.global(10, "wp_fractional_scale_manager_v1", 1) +[2618245.845] {Default Queue} wl_registry#2694.global(11, "zwp_tablet_manager_v2", 1) +[2618245.850] {Default Queue} wl_registry#2694.global(12, "zwp_pointer_gestures_v1", 3) +[2618245.854] {Default Queue} wl_registry#2694.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618245.859] {Default Queue} -> wl_registry#2694.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2706) +[2618245.868] {Default Queue} wl_registry#2694.global(14, "zwp_pointer_constraints_v1", 1) +[2618245.873] {Default Queue} -> wl_registry#2694.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2707) +[2618245.877] {Default Queue} wl_registry#2694.global(15, "ext_idle_notifier_v1", 2) +[2618245.882] {Default Queue} wl_registry#2694.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618245.886] {Default Queue} wl_registry#2694.global(17, "wl_data_device_manager", 3) +[2618245.892] {Default Queue} -> wl_registry#2694.bind(17, "wl_data_device_manager", 2, new id [unknown]#2708) +[2618245.896] {Default Queue} -> wl_data_device_manager#2708.create_data_source(new id wl_data_source#2709) +[2618245.900] {Default Queue} -> wl_data_source#2709.offer("text/plain") +[2618245.905] {Default Queue} -> wl_data_source#2709.offer("text/plain;charset=utf-8") +[2618245.909] {Default Queue} -> wl_data_source#2709.offer("TEXT") +[2618245.913] {Default Queue} -> wl_data_source#2709.offer("STRING") +[2618245.917] {Default Queue} -> wl_data_source#2709.offer("UTF8_STRING") +[2618245.922] {Default Queue} wl_registry#2694.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618245.927] {Default Queue} -> wl_registry#2694.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2710) +[2618245.935] {Default Queue} -> zwp_primary_selection_device_manager_v1#2710.create_source(new id zwp_primary_selection_source_v1#2711) +[2618245.947] {Default Queue} -> zwp_primary_selection_source_v1#2711.offer("text/plain") +[2618245.951] {Default Queue} -> zwp_primary_selection_source_v1#2711.offer("text/plain;charset=utf-8") +[2618245.955] {Default Queue} -> zwp_primary_selection_source_v1#2711.offer("TEXT") +[2618245.959] {Default Queue} -> zwp_primary_selection_source_v1#2711.offer("STRING") +[2618245.964] {Default Queue} -> zwp_primary_selection_source_v1#2711.offer("UTF8_STRING") +[2618245.968] {Default Queue} wl_registry#2694.global(19, "zwlr_data_control_manager_v1", 2) +[2618245.973] {Default Queue} wl_registry#2694.global(20, "ext_data_control_manager_v1", 1) +[2618245.977] {Default Queue} wl_registry#2694.global(21, "wp_presentation", 2) +[2618245.982] {Default Queue} wl_registry#2694.global(22, "wp_security_context_manager_v1", 1) +[2618245.986] {Default Queue} wl_registry#2694.global(23, "zwp_text_input_manager_v3", 1) +[2618245.990] {Default Queue} wl_registry#2694.global(24, "zwp_input_method_manager_v2", 1) +[2618245.994] {Default Queue} wl_registry#2694.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618245.999] {Default Queue} wl_registry#2694.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618246.003] {Default Queue} wl_registry#2694.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618246.008] {Default Queue} wl_registry#2694.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618246.012] {Default Queue} wl_registry#2694.global(29, "ext_workspace_manager_v1", 1) +[2618246.017] {Default Queue} wl_registry#2694.global(30, "zwlr_output_manager_v1", 4) +[2618246.021] {Default Queue} wl_registry#2694.global(31, "zwlr_screencopy_manager_v1", 3) +[2618246.025] {Default Queue} wl_registry#2694.global(32, "wp_viewporter", 1) +[2618246.030] {Default Queue} wl_registry#2694.global(33, "zxdg_exporter_v2", 1) +[2618246.034] {Default Queue} wl_registry#2694.global(34, "zxdg_importer_v2", 1) +[2618246.038] {Default Queue} wl_registry#2694.global(36, "xdg_activation_v1", 1) +[2618246.042] {Default Queue} wl_registry#2694.global(37, "mutter_x11_interop", 1) +[2618246.047] {Default Queue} wl_registry#2694.global(38, "wl_seat", 9) +[2618246.052] {Default Queue} -> wl_registry#2694.bind(38, "wl_seat", 1, new id [unknown]#2712) +[2618246.056] {Default Queue} wl_registry#2694.global(39, "wp_cursor_shape_manager_v1", 2) +[2618246.061] {Default Queue} wl_registry#2694.global(40, "wl_output", 4) +[2618246.066] {Default Queue} -> wl_registry#2694.bind(40, "wl_output", 1, new id [unknown]#2713) +[2618246.070] {Default Queue} wl_callback#2695.done(0) +[2618246.075] {Default Queue} discarded wl_surface#2663.enter(wl_output#18) +[2618246.079] {Default Queue} discarded wl_surface#2663.enter(wl_output#57) +[2618246.083] {Default Queue} discarded wl_surface#2663.enter(wl_output#89) +[2618246.087] {Default Queue} discarded wl_surface#2663.enter(wl_output#121) +[2618246.091] {Default Queue} discarded wl_surface#2663.enter(wl_output#153) +[2618246.095] {Default Queue} discarded wl_surface#2663.enter(wl_output#185) +[2618246.099] {Default Queue} discarded wl_surface#2663.enter(wl_output#217) +[2618246.103] {Default Queue} discarded wl_surface#2663.enter(wl_output#249) +[2618246.107] {Default Queue} discarded wl_surface#2663.enter(wl_output#281) +[2618246.111] {Default Queue} discarded wl_surface#2663.enter(wl_output#313) +[2618246.115] {Default Queue} discarded wl_surface#2663.enter(wl_output#345) +[2618246.119] {Default Queue} discarded wl_surface#2663.enter(wl_output#377) +[2618246.122] {Default Queue} discarded wl_surface#2663.enter(wl_output#409) +[2618246.126] {Default Queue} discarded wl_surface#2663.enter(wl_output#441) +[2618246.130] {Default Queue} discarded wl_surface#2663.enter(wl_output#473) +[2618246.134] {Default Queue} discarded wl_surface#2663.enter(wl_output#505) +[2618246.138] {Default Queue} discarded wl_surface#2663.enter(wl_output#537) +[2618246.142] {Default Queue} discarded wl_surface#2663.enter(wl_output#569) +[2618246.146] {Default Queue} discarded wl_surface#2663.enter(wl_output#601) +[2618246.153] {Default Queue} discarded wl_surface#2663.enter(wl_output#633) +[2618246.158] {Default Queue} discarded wl_surface#2663.enter(wl_output#665) +[2618246.162] {Default Queue} discarded wl_surface#2663.enter(wl_output#697) +[2618246.166] {Default Queue} discarded wl_surface#2663.enter(wl_output#729) +[2618246.170] {Default Queue} discarded wl_surface#2663.enter(wl_output#761) +[2618246.174] {Default Queue} discarded wl_surface#2663.enter(wl_output#793) +[2618246.178] {Default Queue} discarded wl_surface#2663.enter(wl_output#825) +[2618246.182] {Default Queue} discarded wl_surface#2663.enter(wl_output#857) +[2618246.186] {Default Queue} discarded wl_surface#2663.enter(wl_output#889) +[2618246.190] {Default Queue} discarded wl_surface#2663.enter(wl_output#921) +[2618246.193] {Default Queue} discarded wl_surface#2663.enter(wl_output#953) +[2618246.197] {Default Queue} discarded wl_surface#2663.enter(wl_output#985) +[2618246.201] {Default Queue} discarded wl_surface#2663.enter(wl_output#1017) +[2618246.205] {Default Queue} discarded wl_surface#2663.enter(wl_output#1049) +[2618246.209] {Default Queue} discarded wl_surface#2663.enter(wl_output#1081) +[2618246.213] {Default Queue} discarded wl_surface#2663.enter(wl_output#1113) +[2618246.217] {Default Queue} discarded wl_surface#2663.enter(wl_output#1145) +[2618246.221] {Default Queue} discarded wl_surface#2663.enter(wl_output#1177) +[2618246.225] {Default Queue} discarded wl_surface#2663.enter(wl_output#1209) +[2618246.229] {Default Queue} discarded wl_surface#2663.enter(wl_output#1241) +[2618246.233] {Default Queue} discarded wl_surface#2663.enter(wl_output#1273) +[2618246.237] {Default Queue} discarded wl_surface#2663.enter(wl_output#1305) +[2618246.241] {Default Queue} discarded wl_surface#2663.enter(wl_output#1337) +[2618246.245] {Default Queue} discarded wl_surface#2663.enter(wl_output#1369) +[2618246.249] {Default Queue} discarded wl_surface#2663.enter(wl_output#1401) +[2618246.253] {Default Queue} discarded wl_surface#2663.enter(wl_output#1433) +[2618246.257] {Default Queue} discarded wl_surface#2663.enter(wl_output#1465) +[2618246.260] {Default Queue} discarded wl_surface#2663.enter(wl_output#1497) +[2618246.264] {Default Queue} discarded wl_surface#2663.enter(wl_output#1529) +[2618246.268] {Default Queue} discarded wl_surface#2663.enter(wl_output#1561) +[2618246.272] {Default Queue} discarded wl_surface#2663.enter(wl_output#1593) +[2618246.276] {Default Queue} discarded wl_surface#2663.enter(wl_output#1625) +[2618246.280] {Default Queue} discarded wl_surface#2663.enter(wl_output#1657) +[2618246.284] {Default Queue} discarded wl_surface#2663.enter(wl_output#1689) +[2618246.288] {Default Queue} discarded wl_surface#2663.enter(wl_output#1721) +[2618246.292] {Default Queue} discarded wl_surface#2663.enter(wl_output#1753) +[2618246.296] {Default Queue} discarded wl_surface#2663.enter(wl_output#1785) +[2618246.300] {Default Queue} discarded wl_surface#2663.enter(wl_output#1817) +[2618246.304] {Default Queue} discarded wl_surface#2663.enter(wl_output#1849) +[2618246.308] {Default Queue} discarded wl_surface#2663.enter(wl_output#1881) +[2618246.312] {Default Queue} discarded wl_surface#2663.enter(wl_output#1913) +[2618246.316] {Default Queue} discarded wl_surface#2663.enter(wl_output#1945) +[2618246.320] {Default Queue} discarded wl_surface#2663.enter(wl_output#1977) +[2618246.324] {Default Queue} discarded wl_surface#2663.enter(wl_output#2009) +[2618246.328] {Default Queue} discarded wl_surface#2663.enter(wl_output#2041) +[2618246.332] {Default Queue} discarded wl_surface#2663.enter(wl_output#2073) +[2618246.335] {Default Queue} discarded wl_surface#2663.enter(wl_output#2105) +[2618246.339] {Default Queue} discarded wl_surface#2663.enter(wl_output#2137) +[2618246.343] {Default Queue} discarded wl_surface#2663.enter(wl_output#2169) +[2618246.347] {Default Queue} discarded wl_surface#2663.enter(wl_output#2201) +[2618246.351] {Default Queue} discarded wl_surface#2663.enter(wl_output#2233) +[2618246.355] {Default Queue} discarded wl_surface#2663.enter(wl_output#2265) +[2618246.359] {Default Queue} discarded wl_surface#2663.enter(wl_output#2297) +[2618246.366] {Default Queue} discarded wl_surface#2663.enter(wl_output#2329) +[2618246.371] {Default Queue} discarded wl_surface#2663.enter(wl_output#2361) +[2618246.375] {Default Queue} discarded wl_surface#2663.enter(wl_output#2393) +[2618246.379] {Default Queue} discarded wl_surface#2663.enter(wl_output#2425) +[2618246.384] {Default Queue} discarded wl_surface#2663.enter(wl_output#2457) +[2618246.388] {Default Queue} discarded wl_surface#2663.enter(wl_output#2489) +[2618246.392] {Default Queue} discarded wl_surface#2663.enter(wl_output#2521) +[2618246.396] {Default Queue} discarded wl_surface#2663.enter(wl_output#2553) +[2618246.400] {Default Queue} discarded wl_surface#2663.enter(wl_output#2585) +[2618246.404] {Default Queue} discarded wl_surface#2663.enter(wl_output#2617) +[2618246.407] {Default Queue} discarded wl_surface#2663.enter(wl_output#2649) +[2618246.411] {Default Queue} discarded wl_surface#2663.enter(wl_output#2681) +[2618246.416] {Default Queue} -> wl_compositor#2668.create_surface(new id wl_surface#2695) +[2618246.420] {Default Queue} -> wl_subcompositor#2701.get_subsurface(new id wl_subsurface#2714, wl_surface#2695, wl_surface#2663) +[2618246.428] {Default Queue} -> wl_subsurface#2714.set_desync() +[2618246.433] {Default Queue} -> wl_subsurface#2714.set_position(0, 0) +[2618246.437] {Default Queue} -> wl_subsurface#2714.place_above(wl_surface#2663) +[2618246.481] {Default Queue} -> wl_shm#2703.create_pool(new id wl_shm_pool#2715, fd 429, 16) +[2618246.488] {Default Queue} -> wl_shm#2703.create_pool(new id wl_shm_pool#2716, fd 430, 16) +[2618246.492] {Default Queue} -> wl_shm_pool#2715.create_buffer(new id wl_buffer#2717, 0, 2, 2, 8, 0) +[2618246.498] {Default Queue} -> wl_shm_pool#2716.create_buffer(new id wl_buffer#2718, 0, 2, 2, 8, 0) +[2618246.506] {Default Queue} -> wl_surface#2695.attach(wl_buffer#2717, 0, 0) +[2618246.510] {Default Queue} -> wl_surface#2695.commit() +[2618246.516] {Default Queue} -> wl_surface#2695.attach(wl_buffer#2717, 0, 0) +[2618246.520] {Default Queue} -> wl_surface#2695.commit() +[2618246.524] {Default Queue} -> wl_compositor#2700.create_region(new id wl_region#2719) +[2618246.529] {Default Queue} -> wl_compositor#2700.create_region(new id wl_region#2720) +[2618246.533] {Default Queue} -> wl_region#2719.subtract(0, 0, 2, 2) +[2618246.537] {Default Queue} -> wl_region#2719.add(0, 0, 0, 0) +[2618246.542] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) +[2618246.546] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) +[2618246.550] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) +[2618246.555] {Default Queue} -> wl_surface#2663.damage(0, 0, 2, 2) +[2618246.562] {Default Queue} -> wl_surface#2695.attach(wl_buffer#2717, 0, 0) +[2618246.567] {Default Queue} -> wl_surface#2695.commit() +[2618246.607] {Default Queue} -> wl_shm#2705.create_pool(new id wl_shm_pool#2721, fd 433, 640) +[2618246.613] {Default Queue} -> wl_shm#2705.create_pool(new id wl_shm_pool#2722, fd 434, 640) +[2618246.618] {Default Queue} -> wl_shm_pool#2721.create_buffer(new id wl_buffer#2723, 0, 10, 16, 40, 0) +[2618246.623] {Default Queue} -> wl_shm_pool#2722.create_buffer(new id wl_buffer#2724, 0, 10, 16, 40, 0) +[2618246.630] {Default Queue} -> wl_compositor#2700.create_surface(new id wl_surface#2725) +[2618246.634] {Default Queue} -> wl_surface#2725.attach(wl_buffer#2723, 0, 0) +[2618246.638] {Default Queue} -> wl_surface#2725.commit() +[2618246.644] {Default Queue} -> wl_surface#2725.attach(wl_buffer#2723, 0, 0) +[2618246.648] {Default Queue} -> wl_surface#2725.commit() +[2618246.655] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) +[2618246.662] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2726) +[2618246.667] {Default Queue} -> wl_display#1.sync(new id wl_callback#2727) +[2618250.304] {Display Queue} wl_display#1.delete_id(2727) +[2618250.317] {Default Queue} wl_keyboard#2696.keymap(1, fd 429, 68213) +[2618250.322] {Default Queue} wl_keyboard#2696.enter(566, wl_surface#19, array[0]) +[2618250.328] {Default Queue} wl_keyboard#2696.modifiers(566, 0, 0, 16, 0) +[2618250.337] {Default Queue} discarded wl_shm#2703.format(875709016) +[2618250.344] {Default Queue} discarded wl_shm#2703.format(1) +[2618250.348] {Default Queue} discarded wl_shm#2703.format(0) +[2618250.352] {Default Queue} discarded wl_shm#2703.format(875708993) +[2618250.356] {Default Queue} discarded wl_shm#2704.format(875709016) +[2618250.360] {Default Queue} discarded wl_shm#2704.format(1) +[2618250.364] {Default Queue} discarded wl_shm#2704.format(0) +[2618250.368] {Default Queue} discarded wl_shm#2704.format(875708993) +[2618250.372] {Default Queue} discarded wl_shm#2705.format(875709016) +[2618250.375] {Default Queue} discarded wl_shm#2705.format(1) +[2618250.379] {Default Queue} discarded wl_shm#2705.format(0) +[2618250.383] {Default Queue} discarded wl_shm#2705.format(875708993) +[2618250.387] {Default Queue} wl_seat#2712.capabilities(7) +[2618250.391] {Default Queue} -> wl_seat#2712.get_keyboard(new id wl_keyboard#2728) +[2618250.396] {Default Queue} -> wl_seat#2712.get_pointer(new id wl_pointer#2729) +[2618250.400] {Default Queue} -> wl_data_device_manager#2708.get_data_device(new id wl_data_device#2730, wl_seat#2712) +[2618250.405] {Default Queue} -> zwp_primary_selection_device_manager_v1#2710.get_device(new id zwp_primary_selection_device_v1#2731, wl_seat#2712) +[2618250.413] {Default Queue} wl_output#2713.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618250.418] {Default Queue} wl_output#2713.mode(3, 1280, 800, 60000) +[2618250.423] {Default Queue} discarded wl_surface#3.enter(wl_output#2713) +[2618250.427] {Default Queue} discarded wl_surface#999.enter(wl_output#2713) +[2618250.431] {Default Queue} discarded wl_surface#1191.enter(wl_output#2713) +[2618250.435] {Default Queue} discarded wl_surface#1159.enter(wl_output#2713) +[2618250.439] {Default Queue} discarded wl_surface#1703.enter(wl_output#2713) +[2618250.443] {Default Queue} discarded wl_surface#2215.enter(wl_output#2713) +[2618250.447] {Default Queue} discarded wl_surface#423.enter(wl_output#2713) +[2618250.451] {Default Queue} discarded wl_surface#1447.enter(wl_output#2713) +[2618250.455] {Default Queue} discarded wl_surface#2023.enter(wl_output#2713) +[2618250.458] {Default Queue} discarded wl_surface#1639.enter(wl_output#2713) +[2618250.462] {Default Queue} discarded wl_surface#1319.enter(wl_output#2713) +[2618250.467] {Default Queue} discarded wl_surface#1127.enter(wl_output#2713) +[2618250.471] {Default Queue} discarded wl_surface#2151.enter(wl_output#2713) +[2618250.475] {Default Queue} discarded wl_surface#2375.enter(wl_output#2713) +[2618250.479] {Default Queue} discarded wl_surface#1063.enter(wl_output#2713) +[2618250.483] {Default Queue} discarded wl_surface#455.enter(wl_output#2713) +[2618250.486] {Default Queue} discarded wl_surface#1575.enter(wl_output#2713) +[2618250.491] {Default Queue} discarded wl_surface#1799.enter(wl_output#2713) +[2618250.495] {Default Queue} discarded wl_surface#1415.enter(wl_output#2713) +[2618250.500] {Default Queue} discarded wl_surface#2439.enter(wl_output#2713) +[2618250.504] {Default Queue} discarded wl_surface#2279.enter(wl_output#2713) +[2618250.508] {Default Queue} discarded wl_surface#1831.enter(wl_output#2713) +[2618250.512] {Default Queue} discarded wl_surface#903.enter(wl_output#2713) +[2618250.516] {Default Queue} discarded wl_surface#2663.enter(wl_output#2713) +[2618250.520] {Default Queue} discarded wl_surface#775.enter(wl_output#2713) +[2618250.524] {Default Queue} discarded wl_surface#1991.enter(wl_output#2713) +[2618250.528] {Default Queue} discarded wl_surface#1543.enter(wl_output#2713) +[2618250.531] {Default Queue} discarded wl_surface#135.enter(wl_output#2713) +[2618250.535] {Default Queue} discarded wl_surface#1287.enter(wl_output#2713) +[2618250.539] {Default Queue} discarded wl_surface#1031.enter(wl_output#2713) +[2618250.543] {Default Queue} discarded wl_surface#615.enter(wl_output#2713) +[2618250.547] {Default Queue} discarded wl_surface#231.enter(wl_output#2713) +[2618250.551] {Default Queue} discarded wl_surface#2343.enter(wl_output#2713) +[2618250.555] {Default Queue} discarded wl_surface#1863.enter(wl_output#2713) +[2618250.562] {Default Queue} discarded wl_surface#359.enter(wl_output#2713) +[2618250.568] {Default Queue} discarded wl_surface#583.enter(wl_output#2713) +[2618250.572] {Default Queue} discarded wl_surface#743.enter(wl_output#2713) +[2618250.575] {Default Queue} discarded wl_surface#2535.enter(wl_output#2713) +[2618250.579] {Default Queue} discarded wl_surface#967.enter(wl_output#2713) +[2618250.583] {Default Queue} discarded wl_surface#103.enter(wl_output#2713) +[2618250.588] {Default Queue} discarded wl_surface#327.enter(wl_output#2713) +[2618250.592] {Default Queue} discarded wl_surface#43.enter(wl_output#2713) +[2618250.596] {Default Queue} discarded wl_surface#2247.enter(wl_output#2713) +[2618250.599] {Default Queue} discarded wl_surface#807.enter(wl_output#2713) +[2618250.604] {Default Queue} discarded wl_surface#19.enter(wl_output#2713) +[2618250.607] {Default Queue} discarded wl_surface#1511.enter(wl_output#2713) +[2618250.612] {Default Queue} discarded wl_surface#199.enter(wl_output#2713) +[2618250.615] {Default Queue} discarded wl_surface#391.enter(wl_output#2713) +[2618250.620] {Default Queue} discarded wl_surface#935.enter(wl_output#2713) +[2618250.624] {Default Queue} discarded wl_surface#1671.enter(wl_output#2713) +[2618250.628] {Default Queue} discarded wl_surface#1351.enter(wl_output#2713) +[2618250.632] {Default Queue} discarded wl_surface#711.enter(wl_output#2713) +[2618250.636] {Default Queue} discarded wl_surface#1223.enter(wl_output#2713) +[2618250.640] {Default Queue} discarded wl_surface#1927.enter(wl_output#2713) +[2618250.644] {Default Queue} discarded wl_surface#871.enter(wl_output#2713) +[2618250.648] {Default Queue} discarded wl_surface#1895.enter(wl_output#2713) +[2618250.652] {Default Queue} discarded wl_surface#263.enter(wl_output#2713) +[2618250.656] {Default Queue} discarded wl_surface#551.enter(wl_output#2713) +[2618250.660] {Default Queue} discarded wl_surface#1735.enter(wl_output#2713) +[2618250.664] {Default Queue} discarded wl_surface#1479.enter(wl_output#2713) +[2618250.668] {Default Queue} discarded wl_surface#1772.enter(wl_output#2713) +[2618250.672] {Default Queue} discarded wl_surface#2599.enter(wl_output#2713) +[2618250.676] {Default Queue} discarded wl_surface#2631.enter(wl_output#2713) +[2618250.680] {Default Queue} discarded wl_surface#1959.enter(wl_output#2713) +[2618250.684] {Default Queue} discarded wl_surface#647.enter(wl_output#2713) +[2618250.688] {Default Queue} discarded wl_surface#2055.enter(wl_output#2713) +[2618250.692] {Default Queue} discarded wl_surface#2508.enter(wl_output#2713) +[2618250.696] {Default Queue} discarded wl_surface#71.enter(wl_output#2713) +[2618250.700] {Default Queue} discarded wl_surface#2183.enter(wl_output#2713) +[2618250.704] {Default Queue} discarded wl_surface#2567.enter(wl_output#2713) +[2618250.708] {Default Queue} discarded wl_surface#839.enter(wl_output#2713) +[2618250.712] {Default Queue} discarded wl_surface#1607.enter(wl_output#2713) +[2618250.716] {Default Queue} discarded wl_surface#1095.enter(wl_output#2713) +[2618250.720] {Default Queue} discarded wl_surface#1383.enter(wl_output#2713) +[2618250.724] {Default Queue} discarded wl_surface#487.enter(wl_output#2713) +[2618250.727] {Default Queue} discarded wl_surface#2311.enter(wl_output#2713) +[2618250.732] {Default Queue} discarded wl_surface#519.enter(wl_output#2713) +[2618250.735] {Default Queue} discarded wl_surface#2087.enter(wl_output#2713) +[2618250.739] {Default Queue} discarded wl_surface#2471.enter(wl_output#2713) +[2618250.744] {Default Queue} discarded wl_surface#295.enter(wl_output#2713) +[2618250.747] {Default Queue} discarded wl_surface#167.enter(wl_output#2713) +[2618250.751] {Default Queue} discarded wl_surface#1255.enter(wl_output#2713) +[2618250.755] {Default Queue} discarded wl_surface#679.enter(wl_output#2713) +[2618250.759] {Default Queue} discarded wl_surface#2407.enter(wl_output#2713) +[2618250.763] {Default Queue} discarded wl_surface#2119.enter(wl_output#2713) +[2618250.767] {Default Queue} wl_registry#2726.global(1, "wl_compositor", 6) +[2618250.772] {Default Queue} -> wl_registry#2726.bind(1, "wl_compositor", 1, new id [unknown]#2732) +[2618250.780] {Default Queue} wl_registry#2726.global(2, "wl_subcompositor", 1) +[2618250.786] {Default Queue} -> wl_registry#2726.bind(2, "wl_subcompositor", 1, new id [unknown]#2733) +[2618250.791] {Default Queue} wl_registry#2726.global(3, "xdg_wm_base", 6) +[2618250.796] {Default Queue} -> wl_registry#2726.bind(3, "xdg_wm_base", 1, new id [unknown]#2734) +[2618250.801] {Default Queue} wl_registry#2726.global(6, "zwlr_layer_shell_v1", 5) +[2618250.806] {Default Queue} wl_registry#2726.global(7, "ext_session_lock_manager_v1", 1) +[2618250.810] {Default Queue} wl_registry#2726.global(8, "wl_shm", 2) +[2618250.815] {Default Queue} -> wl_registry#2726.bind(8, "wl_shm", 1, new id [unknown]#2735) +[2618250.819] {Default Queue} -> wl_registry#2726.bind(8, "wl_shm", 1, new id [unknown]#2736) +[2618250.823] {Default Queue} -> wl_registry#2726.bind(8, "wl_shm", 1, new id [unknown]#2737) +[2618250.827] {Default Queue} wl_registry#2726.global(9, "zxdg_output_manager_v1", 3) +[2618250.832] {Default Queue} wl_registry#2726.global(10, "wp_fractional_scale_manager_v1", 1) +[2618250.837] {Default Queue} wl_registry#2726.global(11, "zwp_tablet_manager_v2", 1) +[2618250.841] {Default Queue} wl_registry#2726.global(12, "zwp_pointer_gestures_v1", 3) +[2618250.845] {Default Queue} wl_registry#2726.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618250.850] {Default Queue} -> wl_registry#2726.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2738) +[2618250.854] {Default Queue} wl_registry#2726.global(14, "zwp_pointer_constraints_v1", 1) +[2618250.858] {Default Queue} -> wl_registry#2726.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2739) +[2618250.864] {Default Queue} wl_registry#2726.global(15, "ext_idle_notifier_v1", 2) +[2618250.868] {Default Queue} wl_registry#2726.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618250.877] {Default Queue} wl_registry#2726.global(17, "wl_data_device_manager", 3) +[2618250.881] {Default Queue} -> wl_registry#2726.bind(17, "wl_data_device_manager", 2, new id [unknown]#2740) +[2618250.886] {Default Queue} -> wl_data_device_manager#2740.create_data_source(new id wl_data_source#2741) +[2618250.890] {Default Queue} -> wl_data_source#2741.offer("text/plain") +[2618250.895] {Default Queue} -> wl_data_source#2741.offer("text/plain;charset=utf-8") +[2618250.899] {Default Queue} -> wl_data_source#2741.offer("TEXT") +[2618250.903] {Default Queue} -> wl_data_source#2741.offer("STRING") +[2618250.907] {Default Queue} -> wl_data_source#2741.offer("UTF8_STRING") +[2618250.911] {Default Queue} wl_registry#2726.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618250.916] {Default Queue} -> wl_registry#2726.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2742) +[2618250.924] {Default Queue} -> zwp_primary_selection_device_manager_v1#2742.create_source(new id zwp_primary_selection_source_v1#2743) +[2618250.932] {Default Queue} -> zwp_primary_selection_source_v1#2743.offer("text/plain") +[2618250.936] {Default Queue} -> zwp_primary_selection_source_v1#2743.offer("text/plain;charset=utf-8") +[2618250.940] {Default Queue} -> zwp_primary_selection_source_v1#2743.offer("TEXT") +[2618250.944] {Default Queue} -> zwp_primary_selection_source_v1#2743.offer("STRING") +[2618250.948] {Default Queue} -> zwp_primary_selection_source_v1#2743.offer("UTF8_STRING") +[2618250.952] {Default Queue} wl_registry#2726.global(19, "zwlr_data_control_manager_v1", 2) +[2618250.957] {Default Queue} wl_registry#2726.global(20, "ext_data_control_manager_v1", 1) +[2618250.961] {Default Queue} wl_registry#2726.global(21, "wp_presentation", 2) +[2618250.966] {Default Queue} wl_registry#2726.global(22, "wp_security_context_manager_v1", 1) +[2618250.970] {Default Queue} wl_registry#2726.global(23, "zwp_text_input_manager_v3", 1) +[2618250.975] {Default Queue} wl_registry#2726.global(24, "zwp_input_method_manager_v2", 1) +[2618250.979] {Default Queue} wl_registry#2726.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618250.987] {Default Queue} wl_registry#2726.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618250.992] {Default Queue} wl_registry#2726.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618250.997] {Default Queue} wl_registry#2726.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618251.001] {Default Queue} wl_registry#2726.global(29, "ext_workspace_manager_v1", 1) +[2618251.006] {Default Queue} wl_registry#2726.global(30, "zwlr_output_manager_v1", 4) +[2618251.010] {Default Queue} wl_registry#2726.global(31, "zwlr_screencopy_manager_v1", 3) +[2618251.014] {Default Queue} wl_registry#2726.global(32, "wp_viewporter", 1) +[2618251.018] {Default Queue} wl_registry#2726.global(33, "zxdg_exporter_v2", 1) +[2618251.023] {Default Queue} wl_registry#2726.global(34, "zxdg_importer_v2", 1) +[2618251.027] {Default Queue} wl_registry#2726.global(36, "xdg_activation_v1", 1) +[2618251.031] {Default Queue} wl_registry#2726.global(37, "mutter_x11_interop", 1) +[2618251.036] {Default Queue} wl_registry#2726.global(38, "wl_seat", 9) +[2618251.040] {Default Queue} -> wl_registry#2726.bind(38, "wl_seat", 1, new id [unknown]#2744) +[2618251.045] {Default Queue} wl_registry#2726.global(39, "wp_cursor_shape_manager_v1", 2) +[2618251.049] {Default Queue} wl_registry#2726.global(40, "wl_output", 4) +[2618251.054] {Default Queue} -> wl_registry#2726.bind(40, "wl_output", 1, new id [unknown]#2745) +[2618251.058] {Default Queue} wl_callback#2727.done(0) +[2618251.063] {Default Queue} discarded wl_surface#2695.enter(wl_output#18) +[2618251.067] {Default Queue} discarded wl_surface#2695.enter(wl_output#57) +[2618251.071] {Default Queue} discarded wl_surface#2695.enter(wl_output#89) +[2618251.075] {Default Queue} discarded wl_surface#2695.enter(wl_output#121) +[2618251.079] {Default Queue} discarded wl_surface#2695.enter(wl_output#153) +[2618251.083] {Default Queue} discarded wl_surface#2695.enter(wl_output#185) +[2618251.087] {Default Queue} discarded wl_surface#2695.enter(wl_output#217) +[2618251.091] {Default Queue} discarded wl_surface#2695.enter(wl_output#249) +[2618251.094] {Default Queue} discarded wl_surface#2695.enter(wl_output#281) +[2618251.099] {Default Queue} discarded wl_surface#2695.enter(wl_output#313) +[2618251.102] {Default Queue} discarded wl_surface#2695.enter(wl_output#345) +[2618251.107] {Default Queue} discarded wl_surface#2695.enter(wl_output#377) +[2618251.111] {Default Queue} discarded wl_surface#2695.enter(wl_output#409) +[2618251.114] {Default Queue} discarded wl_surface#2695.enter(wl_output#441) +[2618251.118] {Default Queue} discarded wl_surface#2695.enter(wl_output#473) +[2618251.123] {Default Queue} discarded wl_surface#2695.enter(wl_output#505) +[2618251.127] {Default Queue} discarded wl_surface#2695.enter(wl_output#537) +[2618251.130] {Default Queue} discarded wl_surface#2695.enter(wl_output#569) +[2618251.134] {Default Queue} discarded wl_surface#2695.enter(wl_output#601) +[2618251.138] {Default Queue} discarded wl_surface#2695.enter(wl_output#633) +[2618251.142] {Default Queue} discarded wl_surface#2695.enter(wl_output#665) +[2618251.146] {Default Queue} discarded wl_surface#2695.enter(wl_output#697) +[2618251.150] {Default Queue} discarded wl_surface#2695.enter(wl_output#729) +[2618251.154] {Default Queue} discarded wl_surface#2695.enter(wl_output#761) +[2618251.158] {Default Queue} discarded wl_surface#2695.enter(wl_output#793) +[2618251.162] {Default Queue} discarded wl_surface#2695.enter(wl_output#825) +[2618251.166] {Default Queue} discarded wl_surface#2695.enter(wl_output#857) +[2618251.170] {Default Queue} discarded wl_surface#2695.enter(wl_output#889) +[2618251.174] {Default Queue} discarded wl_surface#2695.enter(wl_output#921) +[2618251.178] {Default Queue} discarded wl_surface#2695.enter(wl_output#953) +[2618251.182] {Default Queue} discarded wl_surface#2695.enter(wl_output#985) +[2618251.186] {Default Queue} discarded wl_surface#2695.enter(wl_output#1017) +[2618251.190] {Default Queue} discarded wl_surface#2695.enter(wl_output#1049) +[2618251.194] {Default Queue} discarded wl_surface#2695.enter(wl_output#1081) +[2618251.198] {Default Queue} discarded wl_surface#2695.enter(wl_output#1113) +[2618251.205] {Default Queue} discarded wl_surface#2695.enter(wl_output#1145) +[2618251.210] {Default Queue} discarded wl_surface#2695.enter(wl_output#1177) +[2618251.215] {Default Queue} discarded wl_surface#2695.enter(wl_output#1209) +[2618251.218] {Default Queue} discarded wl_surface#2695.enter(wl_output#1241) +[2618251.222] {Default Queue} discarded wl_surface#2695.enter(wl_output#1273) +[2618251.226] {Default Queue} discarded wl_surface#2695.enter(wl_output#1305) +[2618251.230] {Default Queue} discarded wl_surface#2695.enter(wl_output#1337) +[2618251.234] {Default Queue} discarded wl_surface#2695.enter(wl_output#1369) +[2618251.238] {Default Queue} discarded wl_surface#2695.enter(wl_output#1401) +[2618251.242] {Default Queue} discarded wl_surface#2695.enter(wl_output#1433) +[2618251.246] {Default Queue} discarded wl_surface#2695.enter(wl_output#1465) +[2618251.250] {Default Queue} discarded wl_surface#2695.enter(wl_output#1497) +[2618251.254] {Default Queue} discarded wl_surface#2695.enter(wl_output#1529) +[2618251.258] {Default Queue} discarded wl_surface#2695.enter(wl_output#1561) +[2618251.262] {Default Queue} discarded wl_surface#2695.enter(wl_output#1593) +[2618251.265] {Default Queue} discarded wl_surface#2695.enter(wl_output#1625) +[2618251.269] {Default Queue} discarded wl_surface#2695.enter(wl_output#1657) +[2618251.273] {Default Queue} discarded wl_surface#2695.enter(wl_output#1689) +[2618251.277] {Default Queue} discarded wl_surface#2695.enter(wl_output#1721) +[2618251.281] {Default Queue} discarded wl_surface#2695.enter(wl_output#1753) +[2618251.285] {Default Queue} discarded wl_surface#2695.enter(wl_output#1785) +[2618251.289] {Default Queue} discarded wl_surface#2695.enter(wl_output#1817) +[2618251.293] {Default Queue} discarded wl_surface#2695.enter(wl_output#1849) +[2618251.297] {Default Queue} discarded wl_surface#2695.enter(wl_output#1881) +[2618251.301] {Default Queue} discarded wl_surface#2695.enter(wl_output#1913) +[2618251.304] {Default Queue} discarded wl_surface#2695.enter(wl_output#1945) +[2618251.308] {Default Queue} discarded wl_surface#2695.enter(wl_output#1977) +[2618251.312] {Default Queue} discarded wl_surface#2695.enter(wl_output#2009) +[2618251.316] {Default Queue} discarded wl_surface#2695.enter(wl_output#2041) +[2618251.320] {Default Queue} discarded wl_surface#2695.enter(wl_output#2073) +[2618251.324] {Default Queue} discarded wl_surface#2695.enter(wl_output#2105) +[2618251.328] {Default Queue} discarded wl_surface#2695.enter(wl_output#2137) +[2618251.332] {Default Queue} discarded wl_surface#2695.enter(wl_output#2169) +[2618251.336] {Default Queue} discarded wl_surface#2695.enter(wl_output#2201) +[2618251.340] {Default Queue} discarded wl_surface#2695.enter(wl_output#2233) +[2618251.343] {Default Queue} discarded wl_surface#2695.enter(wl_output#2265) +[2618251.347] {Default Queue} discarded wl_surface#2695.enter(wl_output#2297) +[2618251.351] {Default Queue} discarded wl_surface#2695.enter(wl_output#2329) +[2618251.355] {Default Queue} discarded wl_surface#2695.enter(wl_output#2361) +[2618251.359] {Default Queue} discarded wl_surface#2695.enter(wl_output#2393) +[2618251.363] {Default Queue} discarded wl_surface#2695.enter(wl_output#2425) +[2618251.367] {Default Queue} discarded wl_surface#2695.enter(wl_output#2457) +[2618251.371] {Default Queue} discarded wl_surface#2695.enter(wl_output#2489) +[2618251.375] {Default Queue} discarded wl_surface#2695.enter(wl_output#2521) +[2618251.379] {Default Queue} discarded wl_surface#2695.enter(wl_output#2553) +[2618251.383] {Default Queue} discarded wl_surface#2695.enter(wl_output#2585) +[2618251.387] {Default Queue} discarded wl_surface#2695.enter(wl_output#2617) +[2618251.391] {Default Queue} discarded wl_surface#2695.enter(wl_output#2649) +[2618251.395] {Default Queue} discarded wl_surface#2695.enter(wl_output#2681) +[2618251.399] {Default Queue} discarded wl_surface#2695.enter(wl_output#2713) +[2618251.403] {Default Queue} -> wl_compositor#2700.create_surface(new id wl_surface#2727) +[2618251.407] {Default Queue} -> wl_subcompositor#2733.get_subsurface(new id wl_subsurface#2746, wl_surface#2727, wl_surface#2695) +[2618251.420] {Default Queue} -> wl_subsurface#2746.set_desync() +[2618251.424] {Default Queue} -> wl_subsurface#2746.set_position(0, 0) +[2618251.429] {Default Queue} -> wl_subsurface#2746.place_above(wl_surface#2695) +[2618251.473] {Default Queue} -> wl_shm#2735.create_pool(new id wl_shm_pool#2747, fd 434, 16) +[2618251.481] {Default Queue} -> wl_shm#2735.create_pool(new id wl_shm_pool#2748, fd 435, 16) +[2618251.485] {Default Queue} -> wl_shm_pool#2747.create_buffer(new id wl_buffer#2749, 0, 2, 2, 8, 0) +[2618251.490] {Default Queue} -> wl_shm_pool#2748.create_buffer(new id wl_buffer#2750, 0, 2, 2, 8, 0) +[2618251.498] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) +[2618251.503] {Default Queue} -> wl_surface#2727.commit() +[2618251.509] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) +[2618251.514] {Default Queue} -> wl_surface#2727.commit() +[2618251.518] {Default Queue} -> wl_compositor#2732.create_region(new id wl_region#2751) +[2618251.522] {Default Queue} -> wl_compositor#2732.create_region(new id wl_region#2752) +[2618251.526] {Default Queue} -> wl_region#2751.subtract(0, 0, 2, 2) +[2618251.531] {Default Queue} -> wl_region#2751.add(0, 0, 0, 0) +[2618251.536] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2618251.540] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2618251.544] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618251.548] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) +[2618251.556] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) +[2618251.560] {Default Queue} -> wl_surface#2727.commit() +[2618251.594] {Default Queue} -> wl_shm#2737.create_pool(new id wl_shm_pool#2753, fd 438, 640) +[2618251.600] {Default Queue} -> wl_shm#2737.create_pool(new id wl_shm_pool#2754, fd 439, 640) +[2618251.605] {Default Queue} -> wl_shm_pool#2753.create_buffer(new id wl_buffer#2755, 0, 10, 16, 40, 0) +[2618251.610] {Default Queue} -> wl_shm_pool#2754.create_buffer(new id wl_buffer#2756, 0, 10, 16, 40, 0) +[2618251.617] {Default Queue} -> wl_compositor#2732.create_surface(new id wl_surface#2757) +[2618251.621] {Default Queue} -> wl_surface#2757.attach(wl_buffer#2755, 0, 0) +[2618251.626] {Default Queue} -> wl_surface#2757.commit() +[2618251.631] {Default Queue} -> wl_surface#2757.attach(wl_buffer#2755, 0, 0) +[2618251.635] {Default Queue} -> wl_surface#2757.commit() +[2618251.641] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) +[2618251.646] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618251.651] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618251.658] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2758) +[2618251.663] {Default Queue} -> wl_display#1.sync(new id wl_callback#2759) +[2618255.335] {Display Queue} wl_display#1.delete_id(2759) +[2618255.350] {Default Queue} wl_keyboard#2728.keymap(1, fd 434, 68213) +[2618255.357] {Default Queue} wl_keyboard#2728.enter(566, wl_surface#19, array[0]) +[2618255.364] {Default Queue} wl_keyboard#2728.modifiers(566, 0, 0, 16, 0) +[2618255.370] {Default Queue} discarded wl_shm#2735.format(875709016) +[2618255.376] {Default Queue} discarded wl_shm#2735.format(1) +[2618255.380] {Default Queue} discarded wl_shm#2735.format(0) +[2618255.384] {Default Queue} discarded wl_shm#2735.format(875708993) +[2618255.389] {Default Queue} discarded wl_shm#2736.format(875709016) +[2618255.392] {Default Queue} discarded wl_shm#2736.format(1) +[2618255.396] {Default Queue} discarded wl_shm#2736.format(0) +[2618255.400] {Default Queue} discarded wl_shm#2736.format(875708993) +[2618255.404] {Default Queue} discarded wl_shm#2737.format(875709016) +[2618255.408] {Default Queue} discarded wl_shm#2737.format(1) +[2618255.412] {Default Queue} discarded wl_shm#2737.format(0) +[2618255.416] {Default Queue} discarded wl_shm#2737.format(875708993) +[2618255.419] {Default Queue} wl_seat#2744.capabilities(7) +[2618255.424] {Default Queue} -> wl_seat#2744.get_keyboard(new id wl_keyboard#2760) +[2618255.433] {Default Queue} -> wl_seat#2744.get_pointer(new id wl_pointer#2761) +[2618255.440] {Default Queue} -> wl_data_device_manager#2740.get_data_device(new id wl_data_device#2762, wl_seat#2744) +[2618255.445] {Default Queue} -> zwp_primary_selection_device_manager_v1#2742.get_device(new id zwp_primary_selection_device_v1#2763, wl_seat#2744) +[2618255.453] {Default Queue} wl_output#2745.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618255.458] {Default Queue} wl_output#2745.mode(3, 1280, 800, 60000) +[2618255.463] {Default Queue} discarded wl_surface#3.enter(wl_output#2745) +[2618255.467] {Default Queue} discarded wl_surface#999.enter(wl_output#2745) +[2618255.471] {Default Queue} discarded wl_surface#1191.enter(wl_output#2745) +[2618255.475] {Default Queue} discarded wl_surface#1159.enter(wl_output#2745) +[2618255.479] {Default Queue} discarded wl_surface#1703.enter(wl_output#2745) +[2618255.483] {Default Queue} discarded wl_surface#2215.enter(wl_output#2745) +[2618255.487] {Default Queue} discarded wl_surface#423.enter(wl_output#2745) +[2618255.491] {Default Queue} discarded wl_surface#1447.enter(wl_output#2745) +[2618255.495] {Default Queue} discarded wl_surface#2023.enter(wl_output#2745) +[2618255.499] {Default Queue} discarded wl_surface#1639.enter(wl_output#2745) +[2618255.503] {Default Queue} discarded wl_surface#1319.enter(wl_output#2745) +[2618255.507] {Default Queue} discarded wl_surface#1127.enter(wl_output#2745) +[2618255.511] {Default Queue} discarded wl_surface#2151.enter(wl_output#2745) +[2618255.515] {Default Queue} discarded wl_surface#2375.enter(wl_output#2745) +[2618255.518] {Default Queue} discarded wl_surface#2695.enter(wl_output#2745) +[2618255.522] {Default Queue} discarded wl_surface#1063.enter(wl_output#2745) +[2618255.526] {Default Queue} discarded wl_surface#455.enter(wl_output#2745) +[2618255.530] {Default Queue} discarded wl_surface#1575.enter(wl_output#2745) +[2618255.534] {Default Queue} discarded wl_surface#1799.enter(wl_output#2745) +[2618255.538] {Default Queue} discarded wl_surface#1415.enter(wl_output#2745) +[2618255.542] {Default Queue} discarded wl_surface#2439.enter(wl_output#2745) +[2618255.546] {Default Queue} discarded wl_surface#2279.enter(wl_output#2745) +[2618255.550] {Default Queue} discarded wl_surface#1831.enter(wl_output#2745) +[2618255.554] {Default Queue} discarded wl_surface#903.enter(wl_output#2745) +[2618255.558] {Default Queue} discarded wl_surface#2663.enter(wl_output#2745) +[2618255.562] {Default Queue} discarded wl_surface#775.enter(wl_output#2745) +[2618255.566] {Default Queue} discarded wl_surface#1991.enter(wl_output#2745) +[2618255.570] {Default Queue} discarded wl_surface#1543.enter(wl_output#2745) +[2618255.574] {Default Queue} discarded wl_surface#135.enter(wl_output#2745) +[2618255.578] {Default Queue} discarded wl_surface#1287.enter(wl_output#2745) +[2618255.582] {Default Queue} discarded wl_surface#1031.enter(wl_output#2745) +[2618255.586] {Default Queue} discarded wl_surface#615.enter(wl_output#2745) +[2618255.589] {Default Queue} discarded wl_surface#231.enter(wl_output#2745) +[2618255.593] {Default Queue} discarded wl_surface#2343.enter(wl_output#2745) +[2618255.597] {Default Queue} discarded wl_surface#1863.enter(wl_output#2745) +[2618255.601] {Default Queue} discarded wl_surface#359.enter(wl_output#2745) +[2618255.605] {Default Queue} discarded wl_surface#583.enter(wl_output#2745) +[2618255.609] {Default Queue} discarded wl_surface#743.enter(wl_output#2745) +[2618255.613] {Default Queue} discarded wl_surface#2535.enter(wl_output#2745) +[2618255.616] {Default Queue} discarded wl_surface#967.enter(wl_output#2745) +[2618255.620] {Default Queue} discarded wl_surface#103.enter(wl_output#2745) +[2618255.624] {Default Queue} discarded wl_surface#327.enter(wl_output#2745) +[2618255.628] {Default Queue} discarded wl_surface#43.enter(wl_output#2745) +[2618255.632] {Default Queue} discarded wl_surface#2247.enter(wl_output#2745) +[2618255.636] {Default Queue} discarded wl_surface#807.enter(wl_output#2745) +[2618255.640] {Default Queue} discarded wl_surface#19.enter(wl_output#2745) +[2618255.644] {Default Queue} discarded wl_surface#1511.enter(wl_output#2745) +[2618255.651] {Default Queue} discarded wl_surface#199.enter(wl_output#2745) +[2618255.656] {Default Queue} discarded wl_surface#391.enter(wl_output#2745) +[2618255.661] {Default Queue} discarded wl_surface#935.enter(wl_output#2745) +[2618255.664] {Default Queue} discarded wl_surface#1671.enter(wl_output#2745) +[2618255.668] {Default Queue} discarded wl_surface#1351.enter(wl_output#2745) +[2618255.672] {Default Queue} discarded wl_surface#711.enter(wl_output#2745) +[2618255.676] {Default Queue} discarded wl_surface#1223.enter(wl_output#2745) +[2618255.680] {Default Queue} discarded wl_surface#1927.enter(wl_output#2745) +[2618255.684] {Default Queue} discarded wl_surface#871.enter(wl_output#2745) +[2618255.688] {Default Queue} discarded wl_surface#1895.enter(wl_output#2745) +[2618255.692] {Default Queue} discarded wl_surface#263.enter(wl_output#2745) +[2618255.696] {Default Queue} discarded wl_surface#551.enter(wl_output#2745) +[2618255.700] {Default Queue} discarded wl_surface#1735.enter(wl_output#2745) +[2618255.704] {Default Queue} discarded wl_surface#1479.enter(wl_output#2745) +[2618255.708] {Default Queue} discarded wl_surface#1772.enter(wl_output#2745) +[2618255.711] {Default Queue} discarded wl_surface#2599.enter(wl_output#2745) +[2618255.715] {Default Queue} discarded wl_surface#2631.enter(wl_output#2745) +[2618255.719] {Default Queue} discarded wl_surface#1959.enter(wl_output#2745) +[2618255.723] {Default Queue} discarded wl_surface#647.enter(wl_output#2745) +[2618255.727] {Default Queue} discarded wl_surface#2055.enter(wl_output#2745) +[2618255.731] {Default Queue} discarded wl_surface#2508.enter(wl_output#2745) +[2618255.735] {Default Queue} discarded wl_surface#71.enter(wl_output#2745) +[2618255.739] {Default Queue} discarded wl_surface#2183.enter(wl_output#2745) +[2618255.743] {Default Queue} discarded wl_surface#2567.enter(wl_output#2745) +[2618255.747] {Default Queue} discarded wl_surface#839.enter(wl_output#2745) +[2618255.751] {Default Queue} discarded wl_surface#1607.enter(wl_output#2745) +[2618255.755] {Default Queue} discarded wl_surface#1095.enter(wl_output#2745) +[2618255.759] {Default Queue} discarded wl_surface#1383.enter(wl_output#2745) +[2618255.763] {Default Queue} discarded wl_surface#487.enter(wl_output#2745) +[2618255.766] {Default Queue} discarded wl_surface#2311.enter(wl_output#2745) +[2618255.770] {Default Queue} discarded wl_surface#519.enter(wl_output#2745) +[2618255.774] {Default Queue} discarded wl_surface#2087.enter(wl_output#2745) +[2618255.778] {Default Queue} discarded wl_surface#2471.enter(wl_output#2745) +[2618255.782] {Default Queue} discarded wl_surface#295.enter(wl_output#2745) +[2618255.786] {Default Queue} discarded wl_surface#167.enter(wl_output#2745) +[2618255.790] {Default Queue} discarded wl_surface#1255.enter(wl_output#2745) +[2618255.794] {Default Queue} discarded wl_surface#679.enter(wl_output#2745) +[2618255.798] {Default Queue} discarded wl_surface#2407.enter(wl_output#2745) +[2618255.802] {Default Queue} discarded wl_surface#2119.enter(wl_output#2745) +[2618255.806] {Default Queue} wl_registry#2758.global(1, "wl_compositor", 6) +[2618255.811] {Default Queue} -> wl_registry#2758.bind(1, "wl_compositor", 1, new id [unknown]#2764) +[2618255.816] {Default Queue} wl_registry#2758.global(2, "wl_subcompositor", 1) +[2618255.821] {Default Queue} -> wl_registry#2758.bind(2, "wl_subcompositor", 1, new id [unknown]#2765) +[2618255.826] {Default Queue} wl_registry#2758.global(3, "xdg_wm_base", 6) +[2618255.830] {Default Queue} -> wl_registry#2758.bind(3, "xdg_wm_base", 1, new id [unknown]#2766) +[2618255.835] {Default Queue} wl_registry#2758.global(6, "zwlr_layer_shell_v1", 5) +[2618255.839] {Default Queue} wl_registry#2758.global(7, "ext_session_lock_manager_v1", 1) +[2618255.843] {Default Queue} wl_registry#2758.global(8, "wl_shm", 2) +[2618255.848] {Default Queue} -> wl_registry#2758.bind(8, "wl_shm", 1, new id [unknown]#2767) +[2618255.853] {Default Queue} -> wl_registry#2758.bind(8, "wl_shm", 1, new id [unknown]#2768) +[2618255.857] {Default Queue} -> wl_registry#2758.bind(8, "wl_shm", 1, new id [unknown]#2769) +[2618255.870] {Default Queue} wl_registry#2758.global(9, "zxdg_output_manager_v1", 3) +[2618255.876] {Default Queue} wl_registry#2758.global(10, "wp_fractional_scale_manager_v1", 1) +[2618255.881] {Default Queue} wl_registry#2758.global(11, "zwp_tablet_manager_v2", 1) +[2618255.885] {Default Queue} wl_registry#2758.global(12, "zwp_pointer_gestures_v1", 3) +[2618255.889] {Default Queue} wl_registry#2758.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618255.894] {Default Queue} -> wl_registry#2758.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2770) +[2618255.898] {Default Queue} wl_registry#2758.global(14, "zwp_pointer_constraints_v1", 1) +[2618255.903] {Default Queue} -> wl_registry#2758.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2771) +[2618255.907] {Default Queue} wl_registry#2758.global(15, "ext_idle_notifier_v1", 2) +[2618255.912] {Default Queue} wl_registry#2758.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618255.916] {Default Queue} wl_registry#2758.global(17, "wl_data_device_manager", 3) +[2618255.921] {Default Queue} -> wl_registry#2758.bind(17, "wl_data_device_manager", 2, new id [unknown]#2772) +[2618255.926] {Default Queue} -> wl_data_device_manager#2772.create_data_source(new id wl_data_source#2773) +[2618255.930] {Default Queue} -> wl_data_source#2773.offer("text/plain") +[2618255.935] {Default Queue} -> wl_data_source#2773.offer("text/plain;charset=utf-8") +[2618255.939] {Default Queue} -> wl_data_source#2773.offer("TEXT") +[2618255.943] {Default Queue} -> wl_data_source#2773.offer("STRING") +[2618255.948] {Default Queue} -> wl_data_source#2773.offer("UTF8_STRING") +[2618255.952] {Default Queue} wl_registry#2758.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618255.957] {Default Queue} -> wl_registry#2758.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2774) +[2618255.964] {Default Queue} -> zwp_primary_selection_device_manager_v1#2774.create_source(new id zwp_primary_selection_source_v1#2775) +[2618255.972] {Default Queue} -> zwp_primary_selection_source_v1#2775.offer("text/plain") +[2618255.976] {Default Queue} -> zwp_primary_selection_source_v1#2775.offer("text/plain;charset=utf-8") +[2618255.980] {Default Queue} -> zwp_primary_selection_source_v1#2775.offer("TEXT") +[2618255.984] {Default Queue} -> zwp_primary_selection_source_v1#2775.offer("STRING") +[2618255.988] {Default Queue} -> zwp_primary_selection_source_v1#2775.offer("UTF8_STRING") +[2618255.992] {Default Queue} wl_registry#2758.global(19, "zwlr_data_control_manager_v1", 2) +[2618255.997] {Default Queue} wl_registry#2758.global(20, "ext_data_control_manager_v1", 1) +[2618256.001] {Default Queue} wl_registry#2758.global(21, "wp_presentation", 2) +[2618256.006] {Default Queue} wl_registry#2758.global(22, "wp_security_context_manager_v1", 1) +[2618256.010] {Default Queue} wl_registry#2758.global(23, "zwp_text_input_manager_v3", 1) +[2618256.015] {Default Queue} wl_registry#2758.global(24, "zwp_input_method_manager_v2", 1) +[2618256.019] {Default Queue} wl_registry#2758.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618256.023] {Default Queue} wl_registry#2758.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618256.028] {Default Queue} wl_registry#2758.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618256.033] {Default Queue} wl_registry#2758.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618256.037] {Default Queue} wl_registry#2758.global(29, "ext_workspace_manager_v1", 1) +[2618256.041] {Default Queue} wl_registry#2758.global(30, "zwlr_output_manager_v1", 4) +[2618256.046] {Default Queue} wl_registry#2758.global(31, "zwlr_screencopy_manager_v1", 3) +[2618256.050] {Default Queue} wl_registry#2758.global(32, "wp_viewporter", 1) +[2618256.054] {Default Queue} wl_registry#2758.global(33, "zxdg_exporter_v2", 1) +[2618256.059] {Default Queue} wl_registry#2758.global(34, "zxdg_importer_v2", 1) +[2618256.063] {Default Queue} wl_registry#2758.global(36, "xdg_activation_v1", 1) +[2618256.067] {Default Queue} wl_registry#2758.global(37, "mutter_x11_interop", 1) +[2618256.075] {Default Queue} wl_registry#2758.global(38, "wl_seat", 9) +[2618256.081] {Default Queue} -> wl_registry#2758.bind(38, "wl_seat", 1, new id [unknown]#2776) +[2618256.085] {Default Queue} wl_registry#2758.global(39, "wp_cursor_shape_manager_v1", 2) +[2618256.089] {Default Queue} wl_registry#2758.global(40, "wl_output", 4) +[2618256.094] {Default Queue} -> wl_registry#2758.bind(40, "wl_output", 1, new id [unknown]#2777) +[2618256.098] {Default Queue} wl_callback#2759.done(0) +[2618256.103] {Default Queue} discarded wl_surface#2727.enter(wl_output#18) +[2618256.107] {Default Queue} discarded wl_surface#2727.enter(wl_output#57) +[2618256.111] {Default Queue} discarded wl_surface#2727.enter(wl_output#89) +[2618256.115] {Default Queue} discarded wl_surface#2727.enter(wl_output#121) +[2618256.118] {Default Queue} discarded wl_surface#2727.enter(wl_output#153) +[2618256.122] {Default Queue} discarded wl_surface#2727.enter(wl_output#185) +[2618256.126] {Default Queue} discarded wl_surface#2727.enter(wl_output#217) +[2618256.130] {Default Queue} discarded wl_surface#2727.enter(wl_output#249) +[2618256.134] {Default Queue} discarded wl_surface#2727.enter(wl_output#281) +[2618256.138] {Default Queue} discarded wl_surface#2727.enter(wl_output#313) +[2618256.142] {Default Queue} discarded wl_surface#2727.enter(wl_output#345) +[2618256.146] {Default Queue} discarded wl_surface#2727.enter(wl_output#377) +[2618256.150] {Default Queue} discarded wl_surface#2727.enter(wl_output#409) +[2618256.153] {Default Queue} discarded wl_surface#2727.enter(wl_output#441) +[2618256.157] {Default Queue} discarded wl_surface#2727.enter(wl_output#473) +[2618256.162] {Default Queue} discarded wl_surface#2727.enter(wl_output#505) +[2618256.165] {Default Queue} discarded wl_surface#2727.enter(wl_output#537) +[2618256.169] {Default Queue} discarded wl_surface#2727.enter(wl_output#569) +[2618256.173] {Default Queue} discarded wl_surface#2727.enter(wl_output#601) +[2618256.177] {Default Queue} discarded wl_surface#2727.enter(wl_output#633) +[2618256.181] {Default Queue} discarded wl_surface#2727.enter(wl_output#665) +[2618256.185] {Default Queue} discarded wl_surface#2727.enter(wl_output#697) +[2618256.189] {Default Queue} discarded wl_surface#2727.enter(wl_output#729) +[2618256.193] {Default Queue} discarded wl_surface#2727.enter(wl_output#761) +[2618256.197] {Default Queue} discarded wl_surface#2727.enter(wl_output#793) +[2618256.201] {Default Queue} discarded wl_surface#2727.enter(wl_output#825) +[2618256.204] {Default Queue} discarded wl_surface#2727.enter(wl_output#857) +[2618256.208] {Default Queue} discarded wl_surface#2727.enter(wl_output#889) +[2618256.212] {Default Queue} discarded wl_surface#2727.enter(wl_output#921) +[2618256.216] {Default Queue} discarded wl_surface#2727.enter(wl_output#953) +[2618256.220] {Default Queue} discarded wl_surface#2727.enter(wl_output#985) +[2618256.224] {Default Queue} discarded wl_surface#2727.enter(wl_output#1017) +[2618256.228] {Default Queue} discarded wl_surface#2727.enter(wl_output#1049) +[2618256.232] {Default Queue} discarded wl_surface#2727.enter(wl_output#1081) +[2618256.236] {Default Queue} discarded wl_surface#2727.enter(wl_output#1113) +[2618256.239] {Default Queue} discarded wl_surface#2727.enter(wl_output#1145) +[2618256.243] {Default Queue} discarded wl_surface#2727.enter(wl_output#1177) +[2618256.247] {Default Queue} discarded wl_surface#2727.enter(wl_output#1209) +[2618256.252] {Default Queue} discarded wl_surface#2727.enter(wl_output#1241) +[2618256.256] {Default Queue} discarded wl_surface#2727.enter(wl_output#1273) +[2618256.259] {Default Queue} discarded wl_surface#2727.enter(wl_output#1305) +[2618256.263] {Default Queue} discarded wl_surface#2727.enter(wl_output#1337) +[2618256.267] {Default Queue} discarded wl_surface#2727.enter(wl_output#1369) +[2618256.271] {Default Queue} discarded wl_surface#2727.enter(wl_output#1401) +[2618256.275] {Default Queue} discarded wl_surface#2727.enter(wl_output#1433) +[2618256.279] {Default Queue} discarded wl_surface#2727.enter(wl_output#1465) +[2618256.283] {Default Queue} discarded wl_surface#2727.enter(wl_output#1497) +[2618256.290] {Default Queue} discarded wl_surface#2727.enter(wl_output#1529) +[2618256.295] {Default Queue} discarded wl_surface#2727.enter(wl_output#1561) +[2618256.299] {Default Queue} discarded wl_surface#2727.enter(wl_output#1593) +[2618256.304] {Default Queue} discarded wl_surface#2727.enter(wl_output#1625) +[2618256.307] {Default Queue} discarded wl_surface#2727.enter(wl_output#1657) +[2618256.311] {Default Queue} discarded wl_surface#2727.enter(wl_output#1689) +[2618256.315] {Default Queue} discarded wl_surface#2727.enter(wl_output#1721) +[2618256.319] {Default Queue} discarded wl_surface#2727.enter(wl_output#1753) +[2618256.323] {Default Queue} discarded wl_surface#2727.enter(wl_output#1785) +[2618256.327] {Default Queue} discarded wl_surface#2727.enter(wl_output#1817) +[2618256.331] {Default Queue} discarded wl_surface#2727.enter(wl_output#1849) +[2618256.335] {Default Queue} discarded wl_surface#2727.enter(wl_output#1881) +[2618256.339] {Default Queue} discarded wl_surface#2727.enter(wl_output#1913) +[2618256.343] {Default Queue} discarded wl_surface#2727.enter(wl_output#1945) +[2618256.347] {Default Queue} discarded wl_surface#2727.enter(wl_output#1977) +[2618256.351] {Default Queue} discarded wl_surface#2727.enter(wl_output#2009) +[2618256.354] {Default Queue} discarded wl_surface#2727.enter(wl_output#2041) +[2618256.358] {Default Queue} discarded wl_surface#2727.enter(wl_output#2073) +[2618256.362] {Default Queue} discarded wl_surface#2727.enter(wl_output#2105) +[2618256.366] {Default Queue} discarded wl_surface#2727.enter(wl_output#2137) +[2618256.370] {Default Queue} discarded wl_surface#2727.enter(wl_output#2169) +[2618256.374] {Default Queue} discarded wl_surface#2727.enter(wl_output#2201) +[2618256.378] {Default Queue} discarded wl_surface#2727.enter(wl_output#2233) +[2618256.382] {Default Queue} discarded wl_surface#2727.enter(wl_output#2265) +[2618256.386] {Default Queue} discarded wl_surface#2727.enter(wl_output#2297) +[2618256.390] {Default Queue} discarded wl_surface#2727.enter(wl_output#2329) +[2618256.393] {Default Queue} discarded wl_surface#2727.enter(wl_output#2361) +[2618256.397] {Default Queue} discarded wl_surface#2727.enter(wl_output#2393) +[2618256.401] {Default Queue} discarded wl_surface#2727.enter(wl_output#2425) +[2618256.405] {Default Queue} discarded wl_surface#2727.enter(wl_output#2457) +[2618256.409] {Default Queue} discarded wl_surface#2727.enter(wl_output#2489) +[2618256.413] {Default Queue} discarded wl_surface#2727.enter(wl_output#2521) +[2618256.417] {Default Queue} discarded wl_surface#2727.enter(wl_output#2553) +[2618256.421] {Default Queue} discarded wl_surface#2727.enter(wl_output#2585) +[2618256.425] {Default Queue} discarded wl_surface#2727.enter(wl_output#2617) +[2618256.429] {Default Queue} discarded wl_surface#2727.enter(wl_output#2649) +[2618256.432] {Default Queue} discarded wl_surface#2727.enter(wl_output#2681) +[2618256.436] {Default Queue} discarded wl_surface#2727.enter(wl_output#2713) +[2618256.440] {Default Queue} discarded wl_surface#2727.enter(wl_output#2745) +[2618256.444] {Default Queue} -> wl_compositor#2700.create_surface(new id wl_surface#2759) +[2618256.449] {Default Queue} -> wl_subcompositor#2765.get_subsurface(new id wl_subsurface#2778, wl_surface#2759, wl_surface#2695) +[2618256.458] {Default Queue} -> wl_subsurface#2778.set_desync() +[2618256.462] {Default Queue} -> wl_subsurface#2778.set_position(0, 0) +[2618256.466] {Default Queue} -> wl_subsurface#2778.place_above(wl_surface#2695) +[2618256.511] {Default Queue} -> wl_shm#2767.create_pool(new id wl_shm_pool#2779, fd 439, 16) +[2618256.518] {Default Queue} -> wl_shm#2767.create_pool(new id wl_shm_pool#2780, fd 440, 16) +[2618256.523] {Default Queue} -> wl_shm_pool#2779.create_buffer(new id wl_buffer#2781, 0, 2, 2, 8, 0) +[2618256.527] {Default Queue} -> wl_shm_pool#2780.create_buffer(new id wl_buffer#2782, 0, 2, 2, 8, 0) +[2618256.536] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) +[2618256.540] {Default Queue} -> wl_surface#2759.commit() +[2618256.546] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) +[2618256.554] {Default Queue} -> wl_surface#2759.commit() +[2618256.560] {Default Queue} -> wl_compositor#2764.create_region(new id wl_region#2783) +[2618256.565] {Default Queue} -> wl_compositor#2764.create_region(new id wl_region#2784) +[2618256.569] {Default Queue} -> wl_region#2783.subtract(0, 0, 2, 2) +[2618256.573] {Default Queue} -> wl_region#2783.add(0, 0, 0, 0) +[2618256.578] {Default Queue} -> wl_surface#2759.set_opaque_region(wl_region#2784) +[2618256.582] {Default Queue} -> wl_surface#2759.set_input_region(wl_region#2783) +[2618256.586] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) +[2618256.591] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) +[2618256.598] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) +[2618256.603] {Default Queue} -> wl_surface#2759.commit() +[2618256.637] {Default Queue} -> wl_shm#2769.create_pool(new id wl_shm_pool#2785, fd 443, 640) +[2618256.644] {Default Queue} -> wl_shm#2769.create_pool(new id wl_shm_pool#2786, fd 444, 640) +[2618256.648] {Default Queue} -> wl_shm_pool#2785.create_buffer(new id wl_buffer#2787, 0, 10, 16, 40, 0) +[2618256.653] {Default Queue} -> wl_shm_pool#2786.create_buffer(new id wl_buffer#2788, 0, 10, 16, 40, 0) +[2618256.660] {Default Queue} -> wl_compositor#2764.create_surface(new id wl_surface#2789) +[2618256.665] {Default Queue} -> wl_surface#2789.attach(wl_buffer#2787, 0, 0) +[2618256.669] {Default Queue} -> wl_surface#2789.commit() +[2618256.675] {Default Queue} -> wl_surface#2789.attach(wl_buffer#2787, 0, 0) +[2618256.679] {Default Queue} -> wl_surface#2789.commit() +[2618256.684] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) +[2618256.691] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2790) +[2618256.696] {Default Queue} -> wl_display#1.sync(new id wl_callback#2791) +[2618260.376] {Display Queue} wl_display#1.delete_id(2791) +[2618260.392] {Default Queue} wl_keyboard#2760.keymap(1, fd 439, 68213) +[2618260.400] {Default Queue} wl_keyboard#2760.enter(566, wl_surface#19, array[0]) +[2618260.407] {Default Queue} wl_keyboard#2760.modifiers(566, 0, 0, 16, 0) +[2618260.413] {Default Queue} discarded wl_shm#2767.format(875709016) +[2618260.419] {Default Queue} discarded wl_shm#2767.format(1) +[2618260.424] {Default Queue} discarded wl_shm#2767.format(0) +[2618260.429] {Default Queue} discarded wl_shm#2767.format(875708993) +[2618260.434] {Default Queue} discarded wl_shm#2768.format(875709016) +[2618260.439] {Default Queue} discarded wl_shm#2768.format(1) +[2618260.444] {Default Queue} discarded wl_shm#2768.format(0) +[2618260.449] {Default Queue} discarded wl_shm#2768.format(875708993) +[2618260.453] {Default Queue} discarded wl_shm#2769.format(875709016) +[2618260.458] {Default Queue} discarded wl_shm#2769.format(1) +[2618260.463] {Default Queue} discarded wl_shm#2769.format(0) +[2618260.468] {Default Queue} discarded wl_shm#2769.format(875708993) +[2618260.473] {Default Queue} wl_seat#2776.capabilities(7) +[2618260.479] {Default Queue} -> wl_seat#2776.get_keyboard(new id wl_keyboard#2792) +[2618260.485] {Default Queue} -> wl_seat#2776.get_pointer(new id wl_pointer#2793) +[2618260.490] {Default Queue} -> wl_data_device_manager#2772.get_data_device(new id wl_data_device#2794, wl_seat#2776) +[2618260.496] {Default Queue} -> zwp_primary_selection_device_manager_v1#2774.get_device(new id zwp_primary_selection_device_v1#2795, wl_seat#2776) +[2618260.506] {Default Queue} wl_output#2777.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618260.513] {Default Queue} wl_output#2777.mode(3, 1280, 800, 60000) +[2618260.519] {Default Queue} discarded wl_surface#2727.enter(wl_output#2777) +[2618260.524] {Default Queue} discarded wl_surface#3.enter(wl_output#2777) +[2618260.529] {Default Queue} discarded wl_surface#999.enter(wl_output#2777) +[2618260.534] {Default Queue} discarded wl_surface#1191.enter(wl_output#2777) +[2618260.539] {Default Queue} discarded wl_surface#1159.enter(wl_output#2777) +[2618260.544] {Default Queue} discarded wl_surface#1703.enter(wl_output#2777) +[2618260.557] {Default Queue} discarded wl_surface#2215.enter(wl_output#2777) +[2618260.566] {Default Queue} discarded wl_surface#423.enter(wl_output#2777) +[2618260.572] {Default Queue} discarded wl_surface#1447.enter(wl_output#2777) +[2618260.577] {Default Queue} discarded wl_surface#2023.enter(wl_output#2777) +[2618260.582] {Default Queue} discarded wl_surface#1639.enter(wl_output#2777) +[2618260.586] {Default Queue} discarded wl_surface#1319.enter(wl_output#2777) +[2618260.591] {Default Queue} discarded wl_surface#1127.enter(wl_output#2777) +[2618260.596] {Default Queue} discarded wl_surface#2151.enter(wl_output#2777) +[2618260.601] {Default Queue} discarded wl_surface#2375.enter(wl_output#2777) +[2618260.606] {Default Queue} discarded wl_surface#2695.enter(wl_output#2777) +[2618260.610] {Default Queue} discarded wl_surface#1063.enter(wl_output#2777) +[2618260.615] {Default Queue} discarded wl_surface#455.enter(wl_output#2777) +[2618260.620] {Default Queue} discarded wl_surface#1575.enter(wl_output#2777) +[2618260.625] {Default Queue} discarded wl_surface#1799.enter(wl_output#2777) +[2618260.630] {Default Queue} discarded wl_surface#1415.enter(wl_output#2777) +[2618260.635] {Default Queue} discarded wl_surface#2439.enter(wl_output#2777) +[2618260.640] {Default Queue} discarded wl_surface#2279.enter(wl_output#2777) +[2618260.645] {Default Queue} discarded wl_surface#1831.enter(wl_output#2777) +[2618260.649] {Default Queue} discarded wl_surface#903.enter(wl_output#2777) +[2618260.654] {Default Queue} discarded wl_surface#2663.enter(wl_output#2777) +[2618260.659] {Default Queue} discarded wl_surface#775.enter(wl_output#2777) +[2618260.664] {Default Queue} discarded wl_surface#1991.enter(wl_output#2777) +[2618260.669] {Default Queue} discarded wl_surface#1543.enter(wl_output#2777) +[2618260.674] {Default Queue} discarded wl_surface#135.enter(wl_output#2777) +[2618260.679] {Default Queue} discarded wl_surface#1287.enter(wl_output#2777) +[2618260.684] {Default Queue} discarded wl_surface#1031.enter(wl_output#2777) +[2618260.688] {Default Queue} discarded wl_surface#615.enter(wl_output#2777) +[2618260.694] {Default Queue} discarded wl_surface#231.enter(wl_output#2777) +[2618260.698] {Default Queue} discarded wl_surface#2343.enter(wl_output#2777) +[2618260.703] {Default Queue} discarded wl_surface#1863.enter(wl_output#2777) +[2618260.708] {Default Queue} discarded wl_surface#359.enter(wl_output#2777) +[2618260.713] {Default Queue} discarded wl_surface#583.enter(wl_output#2777) +[2618260.718] {Default Queue} discarded wl_surface#743.enter(wl_output#2777) +[2618260.723] {Default Queue} discarded wl_surface#2535.enter(wl_output#2777) +[2618260.727] {Default Queue} discarded wl_surface#967.enter(wl_output#2777) +[2618260.733] {Default Queue} discarded wl_surface#103.enter(wl_output#2777) +[2618260.738] {Default Queue} discarded wl_surface#327.enter(wl_output#2777) +[2618260.742] {Default Queue} discarded wl_surface#43.enter(wl_output#2777) +[2618260.747] {Default Queue} discarded wl_surface#2247.enter(wl_output#2777) +[2618260.752] {Default Queue} discarded wl_surface#807.enter(wl_output#2777) +[2618260.757] {Default Queue} discarded wl_surface#19.enter(wl_output#2777) +[2618260.762] {Default Queue} discarded wl_surface#1511.enter(wl_output#2777) +[2618260.767] {Default Queue} discarded wl_surface#199.enter(wl_output#2777) +[2618260.772] {Default Queue} discarded wl_surface#391.enter(wl_output#2777) +[2618260.777] {Default Queue} discarded wl_surface#935.enter(wl_output#2777) +[2618260.782] {Default Queue} discarded wl_surface#1671.enter(wl_output#2777) +[2618260.786] {Default Queue} discarded wl_surface#1351.enter(wl_output#2777) +[2618260.791] {Default Queue} discarded wl_surface#711.enter(wl_output#2777) +[2618260.797] {Default Queue} discarded wl_surface#1223.enter(wl_output#2777) +[2618260.802] {Default Queue} discarded wl_surface#1927.enter(wl_output#2777) +[2618260.806] {Default Queue} discarded wl_surface#871.enter(wl_output#2777) +[2618260.811] {Default Queue} discarded wl_surface#1895.enter(wl_output#2777) +[2618260.816] {Default Queue} discarded wl_surface#263.enter(wl_output#2777) +[2618260.825] {Default Queue} discarded wl_surface#551.enter(wl_output#2777) +[2618260.832] {Default Queue} discarded wl_surface#1735.enter(wl_output#2777) +[2618260.837] {Default Queue} discarded wl_surface#1479.enter(wl_output#2777) +[2618260.842] {Default Queue} discarded wl_surface#1772.enter(wl_output#2777) +[2618260.847] {Default Queue} discarded wl_surface#2599.enter(wl_output#2777) +[2618260.852] {Default Queue} discarded wl_surface#2631.enter(wl_output#2777) +[2618260.857] {Default Queue} discarded wl_surface#1959.enter(wl_output#2777) +[2618260.868] {Default Queue} discarded wl_surface#647.enter(wl_output#2777) +[2618260.873] {Default Queue} discarded wl_surface#2055.enter(wl_output#2777) +[2618260.878] {Default Queue} discarded wl_surface#2508.enter(wl_output#2777) +[2618260.883] {Default Queue} discarded wl_surface#71.enter(wl_output#2777) +[2618260.887] {Default Queue} discarded wl_surface#2183.enter(wl_output#2777) +[2618260.892] {Default Queue} discarded wl_surface#2567.enter(wl_output#2777) +[2618260.897] {Default Queue} discarded wl_surface#839.enter(wl_output#2777) +[2618260.902] {Default Queue} discarded wl_surface#1607.enter(wl_output#2777) +[2618260.907] {Default Queue} discarded wl_surface#1095.enter(wl_output#2777) +[2618260.912] {Default Queue} discarded wl_surface#1383.enter(wl_output#2777) +[2618260.916] {Default Queue} discarded wl_surface#487.enter(wl_output#2777) +[2618260.921] {Default Queue} discarded wl_surface#2311.enter(wl_output#2777) +[2618260.926] {Default Queue} discarded wl_surface#519.enter(wl_output#2777) +[2618260.931] {Default Queue} discarded wl_surface#2087.enter(wl_output#2777) +[2618260.936] {Default Queue} discarded wl_surface#2471.enter(wl_output#2777) +[2618260.941] {Default Queue} discarded wl_surface#295.enter(wl_output#2777) +[2618260.945] {Default Queue} discarded wl_surface#167.enter(wl_output#2777) +[2618260.950] {Default Queue} discarded wl_surface#1255.enter(wl_output#2777) +[2618260.955] {Default Queue} discarded wl_surface#679.enter(wl_output#2777) +[2618260.960] {Default Queue} discarded wl_surface#2407.enter(wl_output#2777) +[2618260.965] {Default Queue} discarded wl_surface#2119.enter(wl_output#2777) +[2618260.970] {Default Queue} wl_registry#2790.global(1, "wl_compositor", 6) +[2618260.976] {Default Queue} -> wl_registry#2790.bind(1, "wl_compositor", 1, new id [unknown]#2796) +[2618260.982] {Default Queue} wl_registry#2790.global(2, "wl_subcompositor", 1) +[2618260.988] {Default Queue} -> wl_registry#2790.bind(2, "wl_subcompositor", 1, new id [unknown]#2797) +[2618260.994] {Default Queue} wl_registry#2790.global(3, "xdg_wm_base", 6) +[2618261.000] {Default Queue} -> wl_registry#2790.bind(3, "xdg_wm_base", 1, new id [unknown]#2798) +[2618261.005] {Default Queue} wl_registry#2790.global(6, "zwlr_layer_shell_v1", 5) +[2618261.011] {Default Queue} wl_registry#2790.global(7, "ext_session_lock_manager_v1", 1) +[2618261.016] {Default Queue} wl_registry#2790.global(8, "wl_shm", 2) +[2618261.022] {Default Queue} -> wl_registry#2790.bind(8, "wl_shm", 1, new id [unknown]#2799) +[2618261.028] {Default Queue} -> wl_registry#2790.bind(8, "wl_shm", 1, new id [unknown]#2800) +[2618261.033] {Default Queue} -> wl_registry#2790.bind(8, "wl_shm", 1, new id [unknown]#2801) +[2618261.039] {Default Queue} wl_registry#2790.global(9, "zxdg_output_manager_v1", 3) +[2618261.044] {Default Queue} wl_registry#2790.global(10, "wp_fractional_scale_manager_v1", 1) +[2618261.050] {Default Queue} wl_registry#2790.global(11, "zwp_tablet_manager_v2", 1) +[2618261.055] {Default Queue} wl_registry#2790.global(12, "zwp_pointer_gestures_v1", 3) +[2618261.061] {Default Queue} wl_registry#2790.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618261.066] {Default Queue} -> wl_registry#2790.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2802) +[2618261.072] {Default Queue} wl_registry#2790.global(14, "zwp_pointer_constraints_v1", 1) +[2618261.078] {Default Queue} -> wl_registry#2790.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2803) +[2618261.084] {Default Queue} wl_registry#2790.global(15, "ext_idle_notifier_v1", 2) +[2618261.093] {Default Queue} wl_registry#2790.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618261.100] {Default Queue} wl_registry#2790.global(17, "wl_data_device_manager", 3) +[2618261.106] {Default Queue} -> wl_registry#2790.bind(17, "wl_data_device_manager", 2, new id [unknown]#2804) +[2618261.112] {Default Queue} -> wl_data_device_manager#2804.create_data_source(new id wl_data_source#2805) +[2618261.117] {Default Queue} -> wl_data_source#2805.offer("text/plain") +[2618261.123] {Default Queue} -> wl_data_source#2805.offer("text/plain;charset=utf-8") +[2618261.128] {Default Queue} -> wl_data_source#2805.offer("TEXT") +[2618261.133] {Default Queue} -> wl_data_source#2805.offer("STRING") +[2618261.138] {Default Queue} -> wl_data_source#2805.offer("UTF8_STRING") +[2618261.143] {Default Queue} wl_registry#2790.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618261.150] {Default Queue} -> wl_registry#2790.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2806) +[2618261.159] {Default Queue} -> zwp_primary_selection_device_manager_v1#2806.create_source(new id zwp_primary_selection_source_v1#2807) +[2618261.169] {Default Queue} -> zwp_primary_selection_source_v1#2807.offer("text/plain") +[2618261.174] {Default Queue} -> zwp_primary_selection_source_v1#2807.offer("text/plain;charset=utf-8") +[2618261.179] {Default Queue} -> zwp_primary_selection_source_v1#2807.offer("TEXT") +[2618261.184] {Default Queue} -> zwp_primary_selection_source_v1#2807.offer("STRING") +[2618261.189] {Default Queue} -> zwp_primary_selection_source_v1#2807.offer("UTF8_STRING") +[2618261.195] {Default Queue} wl_registry#2790.global(19, "zwlr_data_control_manager_v1", 2) +[2618261.200] {Default Queue} wl_registry#2790.global(20, "ext_data_control_manager_v1", 1) +[2618261.206] {Default Queue} wl_registry#2790.global(21, "wp_presentation", 2) +[2618261.211] {Default Queue} wl_registry#2790.global(22, "wp_security_context_manager_v1", 1) +[2618261.216] {Default Queue} wl_registry#2790.global(23, "zwp_text_input_manager_v3", 1) +[2618261.221] {Default Queue} wl_registry#2790.global(24, "zwp_input_method_manager_v2", 1) +[2618261.225] {Default Queue} wl_registry#2790.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618261.229] {Default Queue} wl_registry#2790.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618261.234] {Default Queue} wl_registry#2790.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618261.238] {Default Queue} wl_registry#2790.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618261.242] {Default Queue} wl_registry#2790.global(29, "ext_workspace_manager_v1", 1) +[2618261.247] {Default Queue} wl_registry#2790.global(30, "zwlr_output_manager_v1", 4) +[2618261.251] {Default Queue} wl_registry#2790.global(31, "zwlr_screencopy_manager_v1", 3) +[2618261.255] {Default Queue} wl_registry#2790.global(32, "wp_viewporter", 1) +[2618261.259] {Default Queue} wl_registry#2790.global(33, "zxdg_exporter_v2", 1) +[2618261.264] {Default Queue} wl_registry#2790.global(34, "zxdg_importer_v2", 1) +[2618261.268] {Default Queue} wl_registry#2790.global(36, "xdg_activation_v1", 1) +[2618261.272] {Default Queue} wl_registry#2790.global(37, "mutter_x11_interop", 1) +[2618261.276] {Default Queue} wl_registry#2790.global(38, "wl_seat", 9) +[2618261.281] {Default Queue} -> wl_registry#2790.bind(38, "wl_seat", 1, new id [unknown]#2808) +[2618261.285] {Default Queue} wl_registry#2790.global(39, "wp_cursor_shape_manager_v1", 2) +[2618261.290] {Default Queue} wl_registry#2790.global(40, "wl_output", 4) +[2618261.294] {Default Queue} -> wl_registry#2790.bind(40, "wl_output", 1, new id [unknown]#2809) +[2618261.299] {Default Queue} wl_callback#2791.done(0) +[2618261.303] {Default Queue} discarded wl_surface#2759.enter(wl_output#18) +[2618261.307] {Default Queue} discarded wl_surface#2759.enter(wl_output#57) +[2618261.311] {Default Queue} discarded wl_surface#2759.enter(wl_output#89) +[2618261.315] {Default Queue} discarded wl_surface#2759.enter(wl_output#121) +[2618261.319] {Default Queue} discarded wl_surface#2759.enter(wl_output#153) +[2618261.326] {Default Queue} discarded wl_surface#2759.enter(wl_output#185) +[2618261.331] {Default Queue} discarded wl_surface#2759.enter(wl_output#217) +[2618261.335] {Default Queue} discarded wl_surface#2759.enter(wl_output#249) +[2618261.339] {Default Queue} discarded wl_surface#2759.enter(wl_output#281) +[2618261.343] {Default Queue} discarded wl_surface#2759.enter(wl_output#313) +[2618261.347] {Default Queue} discarded wl_surface#2759.enter(wl_output#345) +[2618261.351] {Default Queue} discarded wl_surface#2759.enter(wl_output#377) +[2618261.355] {Default Queue} discarded wl_surface#2759.enter(wl_output#409) +[2618261.359] {Default Queue} discarded wl_surface#2759.enter(wl_output#441) +[2618261.363] {Default Queue} discarded wl_surface#2759.enter(wl_output#473) +[2618261.367] {Default Queue} discarded wl_surface#2759.enter(wl_output#505) +[2618261.371] {Default Queue} discarded wl_surface#2759.enter(wl_output#537) +[2618261.375] {Default Queue} discarded wl_surface#2759.enter(wl_output#569) +[2618261.379] {Default Queue} discarded wl_surface#2759.enter(wl_output#601) +[2618261.382] {Default Queue} discarded wl_surface#2759.enter(wl_output#633) +[2618261.386] {Default Queue} discarded wl_surface#2759.enter(wl_output#665) +[2618261.390] {Default Queue} discarded wl_surface#2759.enter(wl_output#697) +[2618261.394] {Default Queue} discarded wl_surface#2759.enter(wl_output#729) +[2618261.398] {Default Queue} discarded wl_surface#2759.enter(wl_output#761) +[2618261.402] {Default Queue} discarded wl_surface#2759.enter(wl_output#793) +[2618261.406] {Default Queue} discarded wl_surface#2759.enter(wl_output#825) +[2618261.410] {Default Queue} discarded wl_surface#2759.enter(wl_output#857) +[2618261.414] {Default Queue} discarded wl_surface#2759.enter(wl_output#889) +[2618261.418] {Default Queue} discarded wl_surface#2759.enter(wl_output#921) +[2618261.422] {Default Queue} discarded wl_surface#2759.enter(wl_output#953) +[2618261.426] {Default Queue} discarded wl_surface#2759.enter(wl_output#985) +[2618261.430] {Default Queue} discarded wl_surface#2759.enter(wl_output#1017) +[2618261.434] {Default Queue} discarded wl_surface#2759.enter(wl_output#1049) +[2618261.438] {Default Queue} discarded wl_surface#2759.enter(wl_output#1081) +[2618261.442] {Default Queue} discarded wl_surface#2759.enter(wl_output#1113) +[2618261.446] {Default Queue} discarded wl_surface#2759.enter(wl_output#1145) +[2618261.450] {Default Queue} discarded wl_surface#2759.enter(wl_output#1177) +[2618261.453] {Default Queue} discarded wl_surface#2759.enter(wl_output#1209) +[2618261.457] {Default Queue} discarded wl_surface#2759.enter(wl_output#1241) +[2618261.461] {Default Queue} discarded wl_surface#2759.enter(wl_output#1273) +[2618261.465] {Default Queue} discarded wl_surface#2759.enter(wl_output#1305) +[2618261.469] {Default Queue} discarded wl_surface#2759.enter(wl_output#1337) +[2618261.474] {Default Queue} discarded wl_surface#2759.enter(wl_output#1369) +[2618261.478] {Default Queue} discarded wl_surface#2759.enter(wl_output#1401) +[2618261.482] {Default Queue} discarded wl_surface#2759.enter(wl_output#1433) +[2618261.486] {Default Queue} discarded wl_surface#2759.enter(wl_output#1465) +[2618261.490] {Default Queue} discarded wl_surface#2759.enter(wl_output#1497) +[2618261.494] {Default Queue} discarded wl_surface#2759.enter(wl_output#1529) +[2618261.498] {Default Queue} discarded wl_surface#2759.enter(wl_output#1561) +[2618261.502] {Default Queue} discarded wl_surface#2759.enter(wl_output#1593) +[2618261.506] {Default Queue} discarded wl_surface#2759.enter(wl_output#1625) +[2618261.510] {Default Queue} discarded wl_surface#2759.enter(wl_output#1657) +[2618261.514] {Default Queue} discarded wl_surface#2759.enter(wl_output#1689) +[2618261.518] {Default Queue} discarded wl_surface#2759.enter(wl_output#1721) +[2618261.522] {Default Queue} discarded wl_surface#2759.enter(wl_output#1753) +[2618261.525] {Default Queue} discarded wl_surface#2759.enter(wl_output#1785) +[2618261.529] {Default Queue} discarded wl_surface#2759.enter(wl_output#1817) +[2618261.534] {Default Queue} discarded wl_surface#2759.enter(wl_output#1849) +[2618261.540] {Default Queue} discarded wl_surface#2759.enter(wl_output#1881) +[2618261.547] {Default Queue} discarded wl_surface#2759.enter(wl_output#1913) +[2618261.551] {Default Queue} discarded wl_surface#2759.enter(wl_output#1945) +[2618261.555] {Default Queue} discarded wl_surface#2759.enter(wl_output#1977) +[2618261.558] {Default Queue} discarded wl_surface#2759.enter(wl_output#2009) +[2618261.562] {Default Queue} discarded wl_surface#2759.enter(wl_output#2041) +[2618261.567] {Default Queue} discarded wl_surface#2759.enter(wl_output#2073) +[2618261.571] {Default Queue} discarded wl_surface#2759.enter(wl_output#2105) +[2618261.574] {Default Queue} discarded wl_surface#2759.enter(wl_output#2137) +[2618261.578] {Default Queue} discarded wl_surface#2759.enter(wl_output#2169) +[2618261.582] {Default Queue} discarded wl_surface#2759.enter(wl_output#2201) +[2618261.586] {Default Queue} discarded wl_surface#2759.enter(wl_output#2233) +[2618261.590] {Default Queue} discarded wl_surface#2759.enter(wl_output#2265) +[2618261.594] {Default Queue} discarded wl_surface#2759.enter(wl_output#2297) +[2618261.598] {Default Queue} discarded wl_surface#2759.enter(wl_output#2329) +[2618261.602] {Default Queue} discarded wl_surface#2759.enter(wl_output#2361) +[2618261.606] {Default Queue} discarded wl_surface#2759.enter(wl_output#2393) +[2618261.610] {Default Queue} discarded wl_surface#2759.enter(wl_output#2425) +[2618261.614] {Default Queue} discarded wl_surface#2759.enter(wl_output#2457) +[2618261.618] {Default Queue} discarded wl_surface#2759.enter(wl_output#2489) +[2618261.622] {Default Queue} discarded wl_surface#2759.enter(wl_output#2521) +[2618261.626] {Default Queue} discarded wl_surface#2759.enter(wl_output#2553) +[2618261.630] {Default Queue} discarded wl_surface#2759.enter(wl_output#2585) +[2618261.634] {Default Queue} discarded wl_surface#2759.enter(wl_output#2617) +[2618261.637] {Default Queue} discarded wl_surface#2759.enter(wl_output#2649) +[2618261.641] {Default Queue} discarded wl_surface#2759.enter(wl_output#2681) +[2618261.646] {Default Queue} discarded wl_surface#2759.enter(wl_output#2713) +[2618261.650] {Default Queue} discarded wl_surface#2759.enter(wl_output#2745) +[2618261.654] {Default Queue} discarded wl_surface#2759.enter(wl_output#2777) +[2618261.659] {Default Queue} -> wl_compositor#2764.create_surface(new id wl_surface#2791) +[2618261.663] {Default Queue} -> wl_subcompositor#2797.get_subsurface(new id wl_subsurface#2810, wl_surface#2791, wl_surface#2759) +[2618261.672] {Default Queue} -> wl_subsurface#2810.set_desync() +[2618261.676] {Default Queue} -> wl_subsurface#2810.set_position(0, 0) +[2618261.681] {Default Queue} -> wl_subsurface#2810.place_above(wl_surface#2759) +[2618261.733] {Default Queue} -> wl_shm#2799.create_pool(new id wl_shm_pool#2811, fd 444, 16) +[2618261.740] {Default Queue} -> wl_shm#2799.create_pool(new id wl_shm_pool#2812, fd 445, 16) +[2618261.744] {Default Queue} -> wl_shm_pool#2811.create_buffer(new id wl_buffer#2813, 0, 2, 2, 8, 0) +[2618261.749] {Default Queue} -> wl_shm_pool#2812.create_buffer(new id wl_buffer#2814, 0, 2, 2, 8, 0) +[2618261.758] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) +[2618261.762] {Default Queue} -> wl_surface#2791.commit() +[2618261.769] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) +[2618261.773] {Default Queue} -> wl_surface#2791.commit() +[2618261.777] {Default Queue} -> wl_compositor#2796.create_region(new id wl_region#2815) +[2618261.781] {Default Queue} -> wl_compositor#2796.create_region(new id wl_region#2816) +[2618261.785] {Default Queue} -> wl_region#2815.subtract(0, 0, 2, 2) +[2618261.790] {Default Queue} -> wl_region#2815.add(0, 0, 0, 0) +[2618261.794] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618261.799] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618261.803] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) +[2618261.807] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) +[2618261.815] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) +[2618261.824] {Default Queue} -> wl_surface#2791.commit() +[2618261.876] {Default Queue} -> wl_shm#2801.create_pool(new id wl_shm_pool#2817, fd 448, 640) +[2618261.886] {Default Queue} -> wl_shm#2801.create_pool(new id wl_shm_pool#2818, fd 449, 640) +[2618261.892] {Default Queue} -> wl_shm_pool#2817.create_buffer(new id wl_buffer#2819, 0, 10, 16, 40, 0) +[2618261.897] {Default Queue} -> wl_shm_pool#2818.create_buffer(new id wl_buffer#2820, 0, 10, 16, 40, 0) +[2618261.904] {Default Queue} -> wl_compositor#2796.create_surface(new id wl_surface#2821) +[2618261.909] {Default Queue} -> wl_surface#2821.attach(wl_buffer#2819, 0, 0) +[2618261.914] {Default Queue} -> wl_surface#2821.commit() +[2618261.920] {Default Queue} -> wl_surface#2821.attach(wl_buffer#2819, 0, 0) +[2618261.924] {Default Queue} -> wl_surface#2821.commit() +[2618261.935] {Default Queue} -> wl_region#2719.subtract(0, 0, 2, 2) +[2618261.940] {Default Queue} -> wl_subsurface#2714.set_position(3, 3) +[2618261.944] {Default Queue} -> wl_region#2719.subtract(0, 0, 5, 5) +[2618261.949] {Default Queue} -> wl_region#2719.add(0, 0, 0, 0) +[2618261.954] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) +[2618261.958] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) +[2618261.962] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618261.967] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) +[2618261.971] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) +[2618261.975] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) +[2618261.982] {Default Queue} -> wl_region#2719.subtract(0, 0, 5, 5) +[2618261.987] {Default Queue} -> wl_region#2719.add(0, 0, 0, 0) +[2618261.991] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) +[2618261.995] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) +[2618262.000] {Default Queue} -> wl_surface#2695.attach(wl_buffer#2717, 0, 0) +[2618262.004] {Default Queue} -> wl_surface#2695.commit() +[2618262.011] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2822) +[2618262.016] {Default Queue} -> wl_display#1.sync(new id wl_callback#2823) +[2618266.282] {Display Queue} wl_display#1.delete_id(2823) +[2618266.296] {Default Queue} wl_keyboard#2792.keymap(1, fd 444, 68213) +[2618266.303] {Default Queue} wl_keyboard#2792.enter(566, wl_surface#19, array[0]) +[2618266.310] {Default Queue} wl_keyboard#2792.modifiers(566, 0, 0, 16, 0) +[2618266.315] {Default Queue} discarded wl_shm#2799.format(875709016) +[2618266.321] {Default Queue} discarded wl_shm#2799.format(1) +[2618266.326] {Default Queue} discarded wl_shm#2799.format(0) +[2618266.330] {Default Queue} discarded wl_shm#2799.format(875708993) +[2618266.336] {Default Queue} discarded wl_shm#2800.format(875709016) +[2618266.340] {Default Queue} discarded wl_shm#2800.format(1) +[2618266.345] {Default Queue} discarded wl_shm#2800.format(0) +[2618266.350] {Default Queue} discarded wl_shm#2800.format(875708993) +[2618266.355] {Default Queue} discarded wl_shm#2801.format(875709016) +[2618266.360] {Default Queue} discarded wl_shm#2801.format(1) +[2618266.365] {Default Queue} discarded wl_shm#2801.format(0) +[2618266.370] {Default Queue} discarded wl_shm#2801.format(875708993) +[2618266.375] {Default Queue} wl_seat#2808.capabilities(7) +[2618266.380] {Default Queue} -> wl_seat#2808.get_keyboard(new id wl_keyboard#2824) +[2618266.386] {Default Queue} -> wl_seat#2808.get_pointer(new id wl_pointer#2825) +[2618266.392] {Default Queue} -> wl_data_device_manager#2804.get_data_device(new id wl_data_device#2826, wl_seat#2808) +[2618266.398] {Default Queue} -> zwp_primary_selection_device_manager_v1#2806.get_device(new id zwp_primary_selection_device_v1#2827, wl_seat#2808) +[2618266.408] {Default Queue} wl_output#2809.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618266.415] {Default Queue} wl_output#2809.mode(3, 1280, 800, 60000) +[2618266.420] {Default Queue} discarded wl_surface#2727.enter(wl_output#2809) +[2618266.425] {Default Queue} discarded wl_surface#3.enter(wl_output#2809) +[2618266.430] {Default Queue} discarded wl_surface#999.enter(wl_output#2809) +[2618266.440] {Default Queue} discarded wl_surface#1191.enter(wl_output#2809) +[2618266.450] {Default Queue} discarded wl_surface#1159.enter(wl_output#2809) +[2618266.455] {Default Queue} discarded wl_surface#1703.enter(wl_output#2809) +[2618266.460] {Default Queue} discarded wl_surface#2215.enter(wl_output#2809) +[2618266.465] {Default Queue} discarded wl_surface#423.enter(wl_output#2809) +[2618266.470] {Default Queue} discarded wl_surface#1447.enter(wl_output#2809) +[2618266.474] {Default Queue} discarded wl_surface#2023.enter(wl_output#2809) +[2618266.479] {Default Queue} discarded wl_surface#1639.enter(wl_output#2809) +[2618266.484] {Default Queue} discarded wl_surface#1319.enter(wl_output#2809) +[2618266.489] {Default Queue} discarded wl_surface#1127.enter(wl_output#2809) +[2618266.494] {Default Queue} discarded wl_surface#2151.enter(wl_output#2809) +[2618266.499] {Default Queue} discarded wl_surface#2375.enter(wl_output#2809) +[2618266.504] {Default Queue} discarded wl_surface#2695.enter(wl_output#2809) +[2618266.508] {Default Queue} discarded wl_surface#1063.enter(wl_output#2809) +[2618266.513] {Default Queue} discarded wl_surface#455.enter(wl_output#2809) +[2618266.518] {Default Queue} discarded wl_surface#1575.enter(wl_output#2809) +[2618266.523] {Default Queue} discarded wl_surface#1799.enter(wl_output#2809) +[2618266.528] {Default Queue} discarded wl_surface#1415.enter(wl_output#2809) +[2618266.533] {Default Queue} discarded wl_surface#2439.enter(wl_output#2809) +[2618266.538] {Default Queue} discarded wl_surface#2279.enter(wl_output#2809) +[2618266.543] {Default Queue} discarded wl_surface#1831.enter(wl_output#2809) +[2618266.548] {Default Queue} discarded wl_surface#903.enter(wl_output#2809) +[2618266.553] {Default Queue} discarded wl_surface#2663.enter(wl_output#2809) +[2618266.557] {Default Queue} discarded wl_surface#775.enter(wl_output#2809) +[2618266.563] {Default Queue} discarded wl_surface#1991.enter(wl_output#2809) +[2618266.568] {Default Queue} discarded wl_surface#1543.enter(wl_output#2809) +[2618266.572] {Default Queue} discarded wl_surface#135.enter(wl_output#2809) +[2618266.577] {Default Queue} discarded wl_surface#1287.enter(wl_output#2809) +[2618266.583] {Default Queue} discarded wl_surface#1031.enter(wl_output#2809) +[2618266.588] {Default Queue} discarded wl_surface#615.enter(wl_output#2809) +[2618266.592] {Default Queue} discarded wl_surface#231.enter(wl_output#2809) +[2618266.597] {Default Queue} discarded wl_surface#2343.enter(wl_output#2809) +[2618266.602] {Default Queue} discarded wl_surface#1863.enter(wl_output#2809) +[2618266.607] {Default Queue} discarded wl_surface#359.enter(wl_output#2809) +[2618266.612] {Default Queue} discarded wl_surface#583.enter(wl_output#2809) +[2618266.617] {Default Queue} discarded wl_surface#743.enter(wl_output#2809) +[2618266.622] {Default Queue} discarded wl_surface#2535.enter(wl_output#2809) +[2618266.627] {Default Queue} discarded wl_surface#967.enter(wl_output#2809) +[2618266.632] {Default Queue} discarded wl_surface#103.enter(wl_output#2809) +[2618266.637] {Default Queue} discarded wl_surface#327.enter(wl_output#2809) +[2618266.642] {Default Queue} discarded wl_surface#43.enter(wl_output#2809) +[2618266.647] {Default Queue} discarded wl_surface#2247.enter(wl_output#2809) +[2618266.652] {Default Queue} discarded wl_surface#807.enter(wl_output#2809) +[2618266.657] {Default Queue} discarded wl_surface#19.enter(wl_output#2809) +[2618266.662] {Default Queue} discarded wl_surface#1511.enter(wl_output#2809) +[2618266.667] {Default Queue} discarded wl_surface#199.enter(wl_output#2809) +[2618266.671] {Default Queue} discarded wl_surface#391.enter(wl_output#2809) +[2618266.676] {Default Queue} discarded wl_surface#935.enter(wl_output#2809) +[2618266.681] {Default Queue} discarded wl_surface#1671.enter(wl_output#2809) +[2618266.686] {Default Queue} discarded wl_surface#1351.enter(wl_output#2809) +[2618266.691] {Default Queue} discarded wl_surface#711.enter(wl_output#2809) +[2618266.696] {Default Queue} discarded wl_surface#1223.enter(wl_output#2809) +[2618266.701] {Default Queue} discarded wl_surface#1927.enter(wl_output#2809) +[2618266.710] {Default Queue} discarded wl_surface#871.enter(wl_output#2809) +[2618266.718] {Default Queue} discarded wl_surface#1895.enter(wl_output#2809) +[2618266.723] {Default Queue} discarded wl_surface#263.enter(wl_output#2809) +[2618266.728] {Default Queue} discarded wl_surface#551.enter(wl_output#2809) +[2618266.733] {Default Queue} discarded wl_surface#1735.enter(wl_output#2809) +[2618266.738] {Default Queue} discarded wl_surface#1479.enter(wl_output#2809) +[2618266.743] {Default Queue} discarded wl_surface#1772.enter(wl_output#2809) +[2618266.748] {Default Queue} discarded wl_surface#2599.enter(wl_output#2809) +[2618266.752] {Default Queue} discarded wl_surface#2631.enter(wl_output#2809) +[2618266.757] {Default Queue} discarded wl_surface#1959.enter(wl_output#2809) +[2618266.762] {Default Queue} discarded wl_surface#647.enter(wl_output#2809) +[2618266.767] {Default Queue} discarded wl_surface#2055.enter(wl_output#2809) +[2618266.772] {Default Queue} discarded wl_surface#2508.enter(wl_output#2809) +[2618266.777] {Default Queue} discarded wl_surface#71.enter(wl_output#2809) +[2618266.782] {Default Queue} discarded wl_surface#2759.enter(wl_output#2809) +[2618266.787] {Default Queue} discarded wl_surface#2183.enter(wl_output#2809) +[2618266.792] {Default Queue} discarded wl_surface#2567.enter(wl_output#2809) +[2618266.797] {Default Queue} discarded wl_surface#839.enter(wl_output#2809) +[2618266.802] {Default Queue} discarded wl_surface#1607.enter(wl_output#2809) +[2618266.806] {Default Queue} discarded wl_surface#1095.enter(wl_output#2809) +[2618266.811] {Default Queue} discarded wl_surface#1383.enter(wl_output#2809) +[2618266.816] {Default Queue} discarded wl_surface#487.enter(wl_output#2809) +[2618266.821] {Default Queue} discarded wl_surface#2311.enter(wl_output#2809) +[2618266.826] {Default Queue} discarded wl_surface#519.enter(wl_output#2809) +[2618266.831] {Default Queue} discarded wl_surface#2087.enter(wl_output#2809) +[2618266.836] {Default Queue} discarded wl_surface#2471.enter(wl_output#2809) +[2618266.842] {Default Queue} discarded wl_surface#295.enter(wl_output#2809) +[2618266.849] {Default Queue} discarded wl_surface#167.enter(wl_output#2809) +[2618266.855] {Default Queue} discarded wl_surface#1255.enter(wl_output#2809) +[2618266.871] {Default Queue} discarded wl_surface#679.enter(wl_output#2809) +[2618266.878] {Default Queue} discarded wl_surface#2407.enter(wl_output#2809) +[2618266.885] {Default Queue} discarded wl_surface#2119.enter(wl_output#2809) +[2618266.890] {Default Queue} wl_registry#2822.global(1, "wl_compositor", 6) +[2618266.897] {Default Queue} -> wl_registry#2822.bind(1, "wl_compositor", 1, new id [unknown]#2828) +[2618266.903] {Default Queue} wl_registry#2822.global(2, "wl_subcompositor", 1) +[2618266.909] {Default Queue} -> wl_registry#2822.bind(2, "wl_subcompositor", 1, new id [unknown]#2829) +[2618266.915] {Default Queue} wl_registry#2822.global(3, "xdg_wm_base", 6) +[2618266.921] {Default Queue} -> wl_registry#2822.bind(3, "xdg_wm_base", 1, new id [unknown]#2830) +[2618266.927] {Default Queue} wl_registry#2822.global(6, "zwlr_layer_shell_v1", 5) +[2618266.933] {Default Queue} wl_registry#2822.global(7, "ext_session_lock_manager_v1", 1) +[2618266.938] {Default Queue} wl_registry#2822.global(8, "wl_shm", 2) +[2618266.944] {Default Queue} -> wl_registry#2822.bind(8, "wl_shm", 1, new id [unknown]#2831) +[2618266.953] {Default Queue} -> wl_registry#2822.bind(8, "wl_shm", 1, new id [unknown]#2832) +[2618266.958] {Default Queue} -> wl_registry#2822.bind(8, "wl_shm", 1, new id [unknown]#2833) +[2618266.964] {Default Queue} wl_registry#2822.global(9, "zxdg_output_manager_v1", 3) +[2618266.969] {Default Queue} wl_registry#2822.global(10, "wp_fractional_scale_manager_v1", 1) +[2618266.975] {Default Queue} wl_registry#2822.global(11, "zwp_tablet_manager_v2", 1) +[2618266.980] {Default Queue} wl_registry#2822.global(12, "zwp_pointer_gestures_v1", 3) +[2618266.985] {Default Queue} wl_registry#2822.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618266.991] {Default Queue} -> wl_registry#2822.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2834) +[2618267.011] {Default Queue} wl_registry#2822.global(14, "zwp_pointer_constraints_v1", 1) +[2618267.019] {Default Queue} -> wl_registry#2822.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2835) +[2618267.025] {Default Queue} wl_registry#2822.global(15, "ext_idle_notifier_v1", 2) +[2618267.030] {Default Queue} wl_registry#2822.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618267.036] {Default Queue} wl_registry#2822.global(17, "wl_data_device_manager", 3) +[2618267.042] {Default Queue} -> wl_registry#2822.bind(17, "wl_data_device_manager", 2, new id [unknown]#2836) +[2618267.047] {Default Queue} -> wl_data_device_manager#2836.create_data_source(new id wl_data_source#2837) +[2618267.053] {Default Queue} -> wl_data_source#2837.offer("text/plain") +[2618267.058] {Default Queue} -> wl_data_source#2837.offer("text/plain;charset=utf-8") +[2618267.063] {Default Queue} -> wl_data_source#2837.offer("TEXT") +[2618267.068] {Default Queue} -> wl_data_source#2837.offer("STRING") +[2618267.073] {Default Queue} -> wl_data_source#2837.offer("UTF8_STRING") +[2618267.078] {Default Queue} wl_registry#2822.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618267.084] {Default Queue} -> wl_registry#2822.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2838) +[2618267.094] {Default Queue} -> zwp_primary_selection_device_manager_v1#2838.create_source(new id zwp_primary_selection_source_v1#2839) +[2618267.104] {Default Queue} -> zwp_primary_selection_source_v1#2839.offer("text/plain") +[2618267.108] {Default Queue} -> zwp_primary_selection_source_v1#2839.offer("text/plain;charset=utf-8") +[2618267.114] {Default Queue} -> zwp_primary_selection_source_v1#2839.offer("TEXT") +[2618267.119] {Default Queue} -> zwp_primary_selection_source_v1#2839.offer("STRING") +[2618267.124] {Default Queue} -> zwp_primary_selection_source_v1#2839.offer("UTF8_STRING") +[2618267.129] {Default Queue} wl_registry#2822.global(19, "zwlr_data_control_manager_v1", 2) +[2618267.134] {Default Queue} wl_registry#2822.global(20, "ext_data_control_manager_v1", 1) +[2618267.139] {Default Queue} wl_registry#2822.global(21, "wp_presentation", 2) +[2618267.145] {Default Queue} wl_registry#2822.global(22, "wp_security_context_manager_v1", 1) +[2618267.150] {Default Queue} wl_registry#2822.global(23, "zwp_text_input_manager_v3", 1) +[2618267.156] {Default Queue} wl_registry#2822.global(24, "zwp_input_method_manager_v2", 1) +[2618267.162] {Default Queue} wl_registry#2822.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618267.167] {Default Queue} wl_registry#2822.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618267.172] {Default Queue} wl_registry#2822.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618267.178] {Default Queue} wl_registry#2822.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618267.183] {Default Queue} wl_registry#2822.global(29, "ext_workspace_manager_v1", 1) +[2618267.188] {Default Queue} wl_registry#2822.global(30, "zwlr_output_manager_v1", 4) +[2618267.194] {Default Queue} wl_registry#2822.global(31, "zwlr_screencopy_manager_v1", 3) +[2618267.199] {Default Queue} wl_registry#2822.global(32, "wp_viewporter", 1) +[2618267.204] {Default Queue} wl_registry#2822.global(33, "zxdg_exporter_v2", 1) +[2618267.210] {Default Queue} wl_registry#2822.global(34, "zxdg_importer_v2", 1) +[2618267.214] {Default Queue} wl_registry#2822.global(36, "xdg_activation_v1", 1) +[2618267.219] {Default Queue} wl_registry#2822.global(37, "mutter_x11_interop", 1) +[2618267.223] {Default Queue} wl_registry#2822.global(38, "wl_seat", 9) +[2618267.228] {Default Queue} -> wl_registry#2822.bind(38, "wl_seat", 1, new id [unknown]#2840) +[2618267.232] {Default Queue} wl_registry#2822.global(39, "wp_cursor_shape_manager_v1", 2) +[2618267.237] {Default Queue} wl_registry#2822.global(40, "wl_output", 4) +[2618267.241] {Default Queue} -> wl_registry#2822.bind(40, "wl_output", 1, new id [unknown]#2841) +[2618267.246] {Default Queue} wl_callback#2823.done(0) +[2618267.250] {Default Queue} discarded wl_surface#2791.enter(wl_output#18) +[2618267.257] {Default Queue} discarded wl_surface#2791.enter(wl_output#57) +[2618267.263] {Default Queue} discarded wl_surface#2791.enter(wl_output#89) +[2618267.267] {Default Queue} discarded wl_surface#2791.enter(wl_output#121) +[2618267.271] {Default Queue} discarded wl_surface#2791.enter(wl_output#153) +[2618267.275] {Default Queue} discarded wl_surface#2791.enter(wl_output#185) +[2618267.279] {Default Queue} discarded wl_surface#2791.enter(wl_output#217) +[2618267.283] {Default Queue} discarded wl_surface#2791.enter(wl_output#249) +[2618267.287] {Default Queue} discarded wl_surface#2791.enter(wl_output#281) +[2618267.290] {Default Queue} discarded wl_surface#2791.enter(wl_output#313) +[2618267.295] {Default Queue} discarded wl_surface#2791.enter(wl_output#345) +[2618267.300] {Default Queue} discarded wl_surface#2791.enter(wl_output#377) +[2618267.304] {Default Queue} discarded wl_surface#2791.enter(wl_output#409) +[2618267.308] {Default Queue} discarded wl_surface#2791.enter(wl_output#441) +[2618267.312] {Default Queue} discarded wl_surface#2791.enter(wl_output#473) +[2618267.317] {Default Queue} discarded wl_surface#2791.enter(wl_output#505) +[2618267.320] {Default Queue} discarded wl_surface#2791.enter(wl_output#537) +[2618267.324] {Default Queue} discarded wl_surface#2791.enter(wl_output#569) +[2618267.328] {Default Queue} discarded wl_surface#2791.enter(wl_output#601) +[2618267.332] {Default Queue} discarded wl_surface#2791.enter(wl_output#633) +[2618267.336] {Default Queue} discarded wl_surface#2791.enter(wl_output#665) +[2618267.340] {Default Queue} discarded wl_surface#2791.enter(wl_output#697) +[2618267.344] {Default Queue} discarded wl_surface#2791.enter(wl_output#729) +[2618267.348] {Default Queue} discarded wl_surface#2791.enter(wl_output#761) +[2618267.351] {Default Queue} discarded wl_surface#2791.enter(wl_output#793) +[2618267.355] {Default Queue} discarded wl_surface#2791.enter(wl_output#825) +[2618267.360] {Default Queue} discarded wl_surface#2791.enter(wl_output#857) +[2618267.363] {Default Queue} discarded wl_surface#2791.enter(wl_output#889) +[2618267.368] {Default Queue} discarded wl_surface#2791.enter(wl_output#921) +[2618267.371] {Default Queue} discarded wl_surface#2791.enter(wl_output#953) +[2618267.375] {Default Queue} discarded wl_surface#2791.enter(wl_output#985) +[2618267.380] {Default Queue} discarded wl_surface#2791.enter(wl_output#1017) +[2618267.384] {Default Queue} discarded wl_surface#2791.enter(wl_output#1049) +[2618267.388] {Default Queue} discarded wl_surface#2791.enter(wl_output#1081) +[2618267.391] {Default Queue} discarded wl_surface#2791.enter(wl_output#1113) +[2618267.396] {Default Queue} discarded wl_surface#2791.enter(wl_output#1145) +[2618267.400] {Default Queue} discarded wl_surface#2791.enter(wl_output#1177) +[2618267.403] {Default Queue} discarded wl_surface#2791.enter(wl_output#1209) +[2618267.408] {Default Queue} discarded wl_surface#2791.enter(wl_output#1241) +[2618267.412] {Default Queue} discarded wl_surface#2791.enter(wl_output#1273) +[2618267.416] {Default Queue} discarded wl_surface#2791.enter(wl_output#1305) +[2618267.420] {Default Queue} discarded wl_surface#2791.enter(wl_output#1337) +[2618267.424] {Default Queue} discarded wl_surface#2791.enter(wl_output#1369) +[2618267.428] {Default Queue} discarded wl_surface#2791.enter(wl_output#1401) +[2618267.432] {Default Queue} discarded wl_surface#2791.enter(wl_output#1433) +[2618267.436] {Default Queue} discarded wl_surface#2791.enter(wl_output#1465) +[2618267.440] {Default Queue} discarded wl_surface#2791.enter(wl_output#1497) +[2618267.443] {Default Queue} discarded wl_surface#2791.enter(wl_output#1529) +[2618267.447] {Default Queue} discarded wl_surface#2791.enter(wl_output#1561) +[2618267.451] {Default Queue} discarded wl_surface#2791.enter(wl_output#1593) +[2618267.455] {Default Queue} discarded wl_surface#2791.enter(wl_output#1625) +[2618267.459] {Default Queue} discarded wl_surface#2791.enter(wl_output#1657) +[2618267.464] {Default Queue} discarded wl_surface#2791.enter(wl_output#1689) +[2618267.468] {Default Queue} discarded wl_surface#2791.enter(wl_output#1721) +[2618267.475] {Default Queue} discarded wl_surface#2791.enter(wl_output#1753) +[2618267.480] {Default Queue} discarded wl_surface#2791.enter(wl_output#1785) +[2618267.484] {Default Queue} discarded wl_surface#2791.enter(wl_output#1817) +[2618267.488] {Default Queue} discarded wl_surface#2791.enter(wl_output#1849) +[2618267.492] {Default Queue} discarded wl_surface#2791.enter(wl_output#1881) +[2618267.496] {Default Queue} discarded wl_surface#2791.enter(wl_output#1913) +[2618267.500] {Default Queue} discarded wl_surface#2791.enter(wl_output#1945) +[2618267.504] {Default Queue} discarded wl_surface#2791.enter(wl_output#1977) +[2618267.508] {Default Queue} discarded wl_surface#2791.enter(wl_output#2009) +[2618267.512] {Default Queue} discarded wl_surface#2791.enter(wl_output#2041) +[2618267.515] {Default Queue} discarded wl_surface#2791.enter(wl_output#2073) +[2618267.519] {Default Queue} discarded wl_surface#2791.enter(wl_output#2105) +[2618267.523] {Default Queue} discarded wl_surface#2791.enter(wl_output#2137) +[2618267.527] {Default Queue} discarded wl_surface#2791.enter(wl_output#2169) +[2618267.531] {Default Queue} discarded wl_surface#2791.enter(wl_output#2201) +[2618267.535] {Default Queue} discarded wl_surface#2791.enter(wl_output#2233) +[2618267.539] {Default Queue} discarded wl_surface#2791.enter(wl_output#2265) +[2618267.543] {Default Queue} discarded wl_surface#2791.enter(wl_output#2297) +[2618267.547] {Default Queue} discarded wl_surface#2791.enter(wl_output#2329) +[2618267.551] {Default Queue} discarded wl_surface#2791.enter(wl_output#2361) +[2618267.555] {Default Queue} discarded wl_surface#2791.enter(wl_output#2393) +[2618267.559] {Default Queue} discarded wl_surface#2791.enter(wl_output#2425) +[2618267.563] {Default Queue} discarded wl_surface#2791.enter(wl_output#2457) +[2618267.567] {Default Queue} discarded wl_surface#2791.enter(wl_output#2489) +[2618267.571] {Default Queue} discarded wl_surface#2791.enter(wl_output#2521) +[2618267.575] {Default Queue} discarded wl_surface#2791.enter(wl_output#2553) +[2618267.579] {Default Queue} discarded wl_surface#2791.enter(wl_output#2585) +[2618267.583] {Default Queue} discarded wl_surface#2791.enter(wl_output#2617) +[2618267.587] {Default Queue} discarded wl_surface#2791.enter(wl_output#2649) +[2618267.591] {Default Queue} discarded wl_surface#2791.enter(wl_output#2681) +[2618267.595] {Default Queue} discarded wl_surface#2791.enter(wl_output#2713) +[2618267.599] {Default Queue} discarded wl_surface#2791.enter(wl_output#2745) +[2618267.603] {Default Queue} discarded wl_surface#2791.enter(wl_output#2777) +[2618267.607] {Default Queue} discarded wl_surface#2791.enter(wl_output#2809) +[2618267.612] {Default Queue} -> wl_compositor#2092.create_surface(new id wl_surface#2823) +[2618267.616] {Default Queue} -> wl_subcompositor#2829.get_subsurface(new id wl_subsurface#2842, wl_surface#2823, wl_surface#2087) +[2618267.624] {Default Queue} -> wl_subsurface#2842.set_desync() +[2618267.628] {Default Queue} -> wl_subsurface#2842.set_position(0, 0) +[2618267.633] {Default Queue} -> wl_subsurface#2842.place_above(wl_surface#2087) +[2618267.676] {Default Queue} -> wl_shm#2831.create_pool(new id wl_shm_pool#2843, fd 449, 16) +[2618267.683] {Default Queue} -> wl_shm#2831.create_pool(new id wl_shm_pool#2844, fd 450, 16) +[2618267.688] {Default Queue} -> wl_shm_pool#2843.create_buffer(new id wl_buffer#2845, 0, 2, 2, 8, 0) +[2618267.693] {Default Queue} -> wl_shm_pool#2844.create_buffer(new id wl_buffer#2846, 0, 2, 2, 8, 0) +[2618267.700] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) +[2618267.705] {Default Queue} -> wl_surface#2823.commit() +[2618267.711] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) +[2618267.715] {Default Queue} -> wl_surface#2823.commit() +[2618267.719] {Default Queue} -> wl_compositor#2828.create_region(new id wl_region#2847) +[2618267.723] {Default Queue} -> wl_compositor#2828.create_region(new id wl_region#2848) +[2618267.729] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) +[2618267.733] {Default Queue} -> wl_region#2847.add(0, 0, 0, 0) +[2618267.740] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618267.746] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618267.751] {Default Queue} -> wl_surface#2823.damage(0, 0, 2, 2) +[2618267.756] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) +[2618267.764] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) +[2618267.768] {Default Queue} -> wl_surface#2823.commit() +[2618267.802] {Default Queue} -> wl_shm#2833.create_pool(new id wl_shm_pool#2849, fd 453, 640) +[2618267.808] {Default Queue} -> wl_shm#2833.create_pool(new id wl_shm_pool#2850, fd 454, 640) +[2618267.813] {Default Queue} -> wl_shm_pool#2849.create_buffer(new id wl_buffer#2851, 0, 10, 16, 40, 0) +[2618267.818] {Default Queue} -> wl_shm_pool#2850.create_buffer(new id wl_buffer#2852, 0, 10, 16, 40, 0) +[2618267.825] {Default Queue} -> wl_compositor#2828.create_surface(new id wl_surface#2853) +[2618267.829] {Default Queue} -> wl_surface#2853.attach(wl_buffer#2851, 0, 0) +[2618267.834] {Default Queue} -> wl_surface#2853.commit() +[2618267.840] {Default Queue} -> wl_surface#2853.attach(wl_buffer#2851, 0, 0) +[2618267.844] {Default Queue} -> wl_surface#2853.commit() +[2618267.849] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) +[2618267.854] {Default Queue} -> wl_surface#2823.damage(0, 0, 2, 2) +[2618267.859] {Default Queue} -> wl_surface#2823.damage(0, 0, 2, 2) +[2618267.867] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2854) +[2618267.877] {Default Queue} -> wl_display#1.sync(new id wl_callback#2855) +[2618268.166] {Display Queue} wl_display#1.delete_id(2855) +[2618268.172] {Default Queue} wl_keyboard#2824.keymap(1, fd 449, 68213) +[2618268.177] {Default Queue} wl_keyboard#2824.enter(566, wl_surface#19, array[0]) +[2618268.182] {Default Queue} wl_keyboard#2824.modifiers(566, 0, 0, 16, 0) +[2618268.187] {Default Queue} discarded wl_shm#2831.format(875709016) +[2618268.191] {Default Queue} discarded wl_shm#2831.format(1) +[2618268.195] {Default Queue} discarded wl_shm#2831.format(0) +[2618268.199] {Default Queue} discarded wl_shm#2831.format(875708993) +[2618268.203] {Default Queue} discarded wl_shm#2832.format(875709016) +[2618268.207] {Default Queue} discarded wl_shm#2832.format(1) +[2618268.210] {Default Queue} discarded wl_shm#2832.format(0) +[2618268.214] {Default Queue} discarded wl_shm#2832.format(875708993) +[2618268.218] {Default Queue} discarded wl_shm#2833.format(875709016) +[2618268.222] {Default Queue} discarded wl_shm#2833.format(1) +[2618268.226] {Default Queue} discarded wl_shm#2833.format(0) +[2618268.230] {Default Queue} discarded wl_shm#2833.format(875708993) +[2618268.234] {Default Queue} wl_seat#2840.capabilities(7) +[2618268.239] {Default Queue} -> wl_seat#2840.get_keyboard(new id wl_keyboard#2856) +[2618268.244] {Default Queue} -> wl_seat#2840.get_pointer(new id wl_pointer#2857) +[2618268.249] {Default Queue} -> wl_data_device_manager#2836.get_data_device(new id wl_data_device#2858, wl_seat#2840) +[2618268.253] {Default Queue} -> zwp_primary_selection_device_manager_v1#2838.get_device(new id zwp_primary_selection_device_v1#2859, wl_seat#2840) +[2618268.261] {Default Queue} wl_output#2841.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618268.266] {Default Queue} wl_output#2841.mode(3, 1280, 800, 60000) +[2618268.271] {Default Queue} discarded wl_surface#2727.enter(wl_output#2841) +[2618268.275] {Default Queue} discarded wl_surface#3.enter(wl_output#2841) +[2618268.279] {Default Queue} discarded wl_surface#999.enter(wl_output#2841) +[2618268.283] {Default Queue} discarded wl_surface#1191.enter(wl_output#2841) +[2618268.287] {Default Queue} discarded wl_surface#1159.enter(wl_output#2841) +[2618268.291] {Default Queue} discarded wl_surface#1703.enter(wl_output#2841) +[2618268.295] {Default Queue} discarded wl_surface#2215.enter(wl_output#2841) +[2618268.299] {Default Queue} discarded wl_surface#423.enter(wl_output#2841) +[2618268.303] {Default Queue} discarded wl_surface#1447.enter(wl_output#2841) +[2618268.307] {Default Queue} discarded wl_surface#2023.enter(wl_output#2841) +[2618268.315] {Default Queue} discarded wl_surface#1639.enter(wl_output#2841) +[2618268.321] {Default Queue} discarded wl_surface#1319.enter(wl_output#2841) +[2618268.326] {Default Queue} discarded wl_surface#1127.enter(wl_output#2841) +[2618268.330] {Default Queue} discarded wl_surface#2151.enter(wl_output#2841) +[2618268.334] {Default Queue} discarded wl_surface#2375.enter(wl_output#2841) +[2618268.338] {Default Queue} discarded wl_surface#2695.enter(wl_output#2841) +[2618268.342] {Default Queue} discarded wl_surface#1063.enter(wl_output#2841) +[2618268.347] {Default Queue} discarded wl_surface#455.enter(wl_output#2841) +[2618268.351] {Default Queue} discarded wl_surface#1575.enter(wl_output#2841) +[2618268.354] {Default Queue} discarded wl_surface#1799.enter(wl_output#2841) +[2618268.358] {Default Queue} discarded wl_surface#1415.enter(wl_output#2841) +[2618268.362] {Default Queue} discarded wl_surface#2439.enter(wl_output#2841) +[2618268.366] {Default Queue} discarded wl_surface#2279.enter(wl_output#2841) +[2618268.370] {Default Queue} discarded wl_surface#1831.enter(wl_output#2841) +[2618268.374] {Default Queue} discarded wl_surface#903.enter(wl_output#2841) +[2618268.378] {Default Queue} discarded wl_surface#2663.enter(wl_output#2841) +[2618268.382] {Default Queue} discarded wl_surface#775.enter(wl_output#2841) +[2618268.386] {Default Queue} discarded wl_surface#1991.enter(wl_output#2841) +[2618268.390] {Default Queue} discarded wl_surface#1543.enter(wl_output#2841) +[2618268.394] {Default Queue} discarded wl_surface#135.enter(wl_output#2841) +[2618268.397] {Default Queue} discarded wl_surface#1287.enter(wl_output#2841) +[2618268.401] {Default Queue} discarded wl_surface#1031.enter(wl_output#2841) +[2618268.405] {Default Queue} discarded wl_surface#615.enter(wl_output#2841) +[2618268.409] {Default Queue} discarded wl_surface#231.enter(wl_output#2841) +[2618268.413] {Default Queue} discarded wl_surface#2343.enter(wl_output#2841) +[2618268.417] {Default Queue} discarded wl_surface#1863.enter(wl_output#2841) +[2618268.423] {Default Queue} discarded wl_surface#359.enter(wl_output#2841) +[2618268.427] {Default Queue} discarded wl_surface#583.enter(wl_output#2841) +[2618268.431] {Default Queue} discarded wl_surface#743.enter(wl_output#2841) +[2618268.434] {Default Queue} discarded wl_surface#2535.enter(wl_output#2841) +[2618268.438] {Default Queue} discarded wl_surface#967.enter(wl_output#2841) +[2618268.442] {Default Queue} discarded wl_surface#103.enter(wl_output#2841) +[2618268.446] {Default Queue} discarded wl_surface#327.enter(wl_output#2841) +[2618268.450] {Default Queue} discarded wl_surface#43.enter(wl_output#2841) +[2618268.454] {Default Queue} discarded wl_surface#2247.enter(wl_output#2841) +[2618268.458] {Default Queue} discarded wl_surface#807.enter(wl_output#2841) +[2618268.462] {Default Queue} discarded wl_surface#19.enter(wl_output#2841) +[2618268.466] {Default Queue} discarded wl_surface#1511.enter(wl_output#2841) +[2618268.470] {Default Queue} discarded wl_surface#199.enter(wl_output#2841) +[2618268.474] {Default Queue} discarded wl_surface#391.enter(wl_output#2841) +[2618268.478] {Default Queue} discarded wl_surface#935.enter(wl_output#2841) +[2618268.482] {Default Queue} discarded wl_surface#1671.enter(wl_output#2841) +[2618268.486] {Default Queue} discarded wl_surface#1351.enter(wl_output#2841) +[2618268.490] {Default Queue} discarded wl_surface#711.enter(wl_output#2841) +[2618268.493] {Default Queue} discarded wl_surface#1223.enter(wl_output#2841) +[2618268.497] {Default Queue} discarded wl_surface#1927.enter(wl_output#2841) +[2618268.502] {Default Queue} discarded wl_surface#871.enter(wl_output#2841) +[2618268.506] {Default Queue} discarded wl_surface#1895.enter(wl_output#2841) +[2618268.509] {Default Queue} discarded wl_surface#263.enter(wl_output#2841) +[2618268.513] {Default Queue} discarded wl_surface#551.enter(wl_output#2841) +[2618268.517] {Default Queue} discarded wl_surface#1735.enter(wl_output#2841) +[2618268.521] {Default Queue} discarded wl_surface#1479.enter(wl_output#2841) +[2618268.525] {Default Queue} discarded wl_surface#1772.enter(wl_output#2841) +[2618268.532] {Default Queue} discarded wl_surface#2599.enter(wl_output#2841) +[2618268.537] {Default Queue} discarded wl_surface#2631.enter(wl_output#2841) +[2618268.541] {Default Queue} discarded wl_surface#1959.enter(wl_output#2841) +[2618268.545] {Default Queue} discarded wl_surface#647.enter(wl_output#2841) +[2618268.549] {Default Queue} discarded wl_surface#2055.enter(wl_output#2841) +[2618268.554] {Default Queue} discarded wl_surface#2508.enter(wl_output#2841) +[2618268.558] {Default Queue} discarded wl_surface#71.enter(wl_output#2841) +[2618268.562] {Default Queue} discarded wl_surface#2759.enter(wl_output#2841) +[2618268.567] {Default Queue} discarded wl_surface#2791.enter(wl_output#2841) +[2618268.571] {Default Queue} discarded wl_surface#2183.enter(wl_output#2841) +[2618268.575] {Default Queue} discarded wl_surface#2567.enter(wl_output#2841) +[2618268.579] {Default Queue} discarded wl_surface#839.enter(wl_output#2841) +[2618268.583] {Default Queue} discarded wl_surface#1607.enter(wl_output#2841) +[2618268.587] {Default Queue} discarded wl_surface#1095.enter(wl_output#2841) +[2618268.591] {Default Queue} discarded wl_surface#1383.enter(wl_output#2841) +[2618268.595] {Default Queue} discarded wl_surface#487.enter(wl_output#2841) +[2618268.599] {Default Queue} discarded wl_surface#2311.enter(wl_output#2841) +[2618268.602] {Default Queue} discarded wl_surface#519.enter(wl_output#2841) +[2618268.607] {Default Queue} discarded wl_surface#2087.enter(wl_output#2841) +[2618268.611] {Default Queue} discarded wl_surface#2471.enter(wl_output#2841) +[2618268.615] {Default Queue} discarded wl_surface#295.enter(wl_output#2841) +[2618268.619] {Default Queue} discarded wl_surface#167.enter(wl_output#2841) +[2618268.623] {Default Queue} discarded wl_surface#1255.enter(wl_output#2841) +[2618268.627] {Default Queue} discarded wl_surface#679.enter(wl_output#2841) +[2618268.631] {Default Queue} discarded wl_surface#2407.enter(wl_output#2841) +[2618268.635] {Default Queue} discarded wl_surface#2119.enter(wl_output#2841) +[2618268.638] {Default Queue} wl_registry#2854.global(1, "wl_compositor", 6) +[2618268.643] {Default Queue} -> wl_registry#2854.bind(1, "wl_compositor", 1, new id [unknown]#2860) +[2618268.648] {Default Queue} wl_registry#2854.global(2, "wl_subcompositor", 1) +[2618268.653] {Default Queue} -> wl_registry#2854.bind(2, "wl_subcompositor", 1, new id [unknown]#2861) +[2618268.658] {Default Queue} wl_registry#2854.global(3, "xdg_wm_base", 6) +[2618268.662] {Default Queue} -> wl_registry#2854.bind(3, "xdg_wm_base", 1, new id [unknown]#2862) +[2618268.667] {Default Queue} wl_registry#2854.global(6, "zwlr_layer_shell_v1", 5) +[2618268.671] {Default Queue} wl_registry#2854.global(7, "ext_session_lock_manager_v1", 1) +[2618268.676] {Default Queue} wl_registry#2854.global(8, "wl_shm", 2) +[2618268.680] {Default Queue} -> wl_registry#2854.bind(8, "wl_shm", 1, new id [unknown]#2863) +[2618268.685] {Default Queue} -> wl_registry#2854.bind(8, "wl_shm", 1, new id [unknown]#2864) +[2618268.690] {Default Queue} -> wl_registry#2854.bind(8, "wl_shm", 1, new id [unknown]#2865) +[2618268.694] {Default Queue} wl_registry#2854.global(9, "zxdg_output_manager_v1", 3) +[2618268.698] {Default Queue} wl_registry#2854.global(10, "wp_fractional_scale_manager_v1", 1) +[2618268.702] {Default Queue} wl_registry#2854.global(11, "zwp_tablet_manager_v2", 1) +[2618268.707] {Default Queue} wl_registry#2854.global(12, "zwp_pointer_gestures_v1", 3) +[2618268.711] {Default Queue} wl_registry#2854.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618268.716] {Default Queue} -> wl_registry#2854.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2866) +[2618268.720] {Default Queue} wl_registry#2854.global(14, "zwp_pointer_constraints_v1", 1) +[2618268.725] {Default Queue} -> wl_registry#2854.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2867) +[2618268.729] {Default Queue} wl_registry#2854.global(15, "ext_idle_notifier_v1", 2) +[2618268.733] {Default Queue} wl_registry#2854.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618268.741] {Default Queue} wl_registry#2854.global(17, "wl_data_device_manager", 3) +[2618268.747] {Default Queue} -> wl_registry#2854.bind(17, "wl_data_device_manager", 2, new id [unknown]#2868) +[2618268.752] {Default Queue} -> wl_data_device_manager#2868.create_data_source(new id wl_data_source#2869) +[2618268.756] {Default Queue} -> wl_data_source#2869.offer("text/plain") +[2618268.761] {Default Queue} -> wl_data_source#2869.offer("text/plain;charset=utf-8") +[2618268.765] {Default Queue} -> wl_data_source#2869.offer("TEXT") +[2618268.769] {Default Queue} -> wl_data_source#2869.offer("STRING") +[2618268.774] {Default Queue} -> wl_data_source#2869.offer("UTF8_STRING") +[2618268.778] {Default Queue} wl_registry#2854.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618268.782] {Default Queue} -> wl_registry#2854.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2870) +[2618268.790] {Default Queue} -> zwp_primary_selection_device_manager_v1#2870.create_source(new id zwp_primary_selection_source_v1#2871) +[2618268.798] {Default Queue} -> zwp_primary_selection_source_v1#2871.offer("text/plain") +[2618268.802] {Default Queue} -> zwp_primary_selection_source_v1#2871.offer("text/plain;charset=utf-8") +[2618268.807] {Default Queue} -> zwp_primary_selection_source_v1#2871.offer("TEXT") +[2618268.811] {Default Queue} -> zwp_primary_selection_source_v1#2871.offer("STRING") +[2618268.815] {Default Queue} -> zwp_primary_selection_source_v1#2871.offer("UTF8_STRING") +[2618268.819] {Default Queue} wl_registry#2854.global(19, "zwlr_data_control_manager_v1", 2) +[2618268.823] {Default Queue} wl_registry#2854.global(20, "ext_data_control_manager_v1", 1) +[2618268.828] {Default Queue} wl_registry#2854.global(21, "wp_presentation", 2) +[2618268.832] {Default Queue} wl_registry#2854.global(22, "wp_security_context_manager_v1", 1) +[2618268.837] {Default Queue} wl_registry#2854.global(23, "zwp_text_input_manager_v3", 1) +[2618268.841] {Default Queue} wl_registry#2854.global(24, "zwp_input_method_manager_v2", 1) +[2618268.845] {Default Queue} wl_registry#2854.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618268.850] {Default Queue} wl_registry#2854.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618268.854] {Default Queue} wl_registry#2854.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618268.858] {Default Queue} wl_registry#2854.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618268.870] {Default Queue} wl_registry#2854.global(29, "ext_workspace_manager_v1", 1) +[2618268.874] {Default Queue} wl_registry#2854.global(30, "zwlr_output_manager_v1", 4) +[2618268.879] {Default Queue} wl_registry#2854.global(31, "zwlr_screencopy_manager_v1", 3) +[2618268.883] {Default Queue} wl_registry#2854.global(32, "wp_viewporter", 1) +[2618268.888] {Default Queue} wl_registry#2854.global(33, "zxdg_exporter_v2", 1) +[2618268.893] {Default Queue} wl_registry#2854.global(34, "zxdg_importer_v2", 1) +[2618268.897] {Default Queue} wl_registry#2854.global(36, "xdg_activation_v1", 1) +[2618268.901] {Default Queue} wl_registry#2854.global(37, "mutter_x11_interop", 1) +[2618268.907] {Default Queue} wl_registry#2854.global(38, "wl_seat", 9) +[2618268.911] {Default Queue} -> wl_registry#2854.bind(38, "wl_seat", 1, new id [unknown]#2872) +[2618268.916] {Default Queue} wl_registry#2854.global(39, "wp_cursor_shape_manager_v1", 2) +[2618268.920] {Default Queue} wl_registry#2854.global(40, "wl_output", 4) +[2618268.925] {Default Queue} -> wl_registry#2854.bind(40, "wl_output", 1, new id [unknown]#2873) +[2618268.929] {Default Queue} wl_callback#2855.done(0) +[2618268.933] {Default Queue} discarded wl_surface#2823.enter(wl_output#18) +[2618268.937] {Default Queue} discarded wl_surface#2823.enter(wl_output#57) +[2618268.942] {Default Queue} discarded wl_surface#2823.enter(wl_output#89) +[2618268.946] {Default Queue} discarded wl_surface#2823.enter(wl_output#121) +[2618268.950] {Default Queue} discarded wl_surface#2823.enter(wl_output#153) +[2618268.954] {Default Queue} discarded wl_surface#2823.enter(wl_output#185) +[2618268.958] {Default Queue} discarded wl_surface#2823.enter(wl_output#217) +[2618268.965] {Default Queue} discarded wl_surface#2823.enter(wl_output#249) +[2618268.970] {Default Queue} discarded wl_surface#2823.enter(wl_output#281) +[2618268.974] {Default Queue} discarded wl_surface#2823.enter(wl_output#313) +[2618268.978] {Default Queue} discarded wl_surface#2823.enter(wl_output#345) +[2618268.982] {Default Queue} discarded wl_surface#2823.enter(wl_output#377) +[2618268.986] {Default Queue} discarded wl_surface#2823.enter(wl_output#409) +[2618268.990] {Default Queue} discarded wl_surface#2823.enter(wl_output#441) +[2618268.994] {Default Queue} discarded wl_surface#2823.enter(wl_output#473) +[2618268.998] {Default Queue} discarded wl_surface#2823.enter(wl_output#505) +[2618269.002] {Default Queue} discarded wl_surface#2823.enter(wl_output#537) +[2618269.006] {Default Queue} discarded wl_surface#2823.enter(wl_output#569) +[2618269.010] {Default Queue} discarded wl_surface#2823.enter(wl_output#601) +[2618269.014] {Default Queue} discarded wl_surface#2823.enter(wl_output#633) +[2618269.018] {Default Queue} discarded wl_surface#2823.enter(wl_output#665) +[2618269.022] {Default Queue} discarded wl_surface#2823.enter(wl_output#697) +[2618269.026] {Default Queue} discarded wl_surface#2823.enter(wl_output#729) +[2618269.030] {Default Queue} discarded wl_surface#2823.enter(wl_output#761) +[2618269.034] {Default Queue} discarded wl_surface#2823.enter(wl_output#793) +[2618269.037] {Default Queue} discarded wl_surface#2823.enter(wl_output#825) +[2618269.041] {Default Queue} discarded wl_surface#2823.enter(wl_output#857) +[2618269.046] {Default Queue} discarded wl_surface#2823.enter(wl_output#889) +[2618269.049] {Default Queue} discarded wl_surface#2823.enter(wl_output#921) +[2618269.053] {Default Queue} discarded wl_surface#2823.enter(wl_output#953) +[2618269.057] {Default Queue} discarded wl_surface#2823.enter(wl_output#985) +[2618269.061] {Default Queue} discarded wl_surface#2823.enter(wl_output#1017) +[2618269.065] {Default Queue} discarded wl_surface#2823.enter(wl_output#1049) +[2618269.069] {Default Queue} discarded wl_surface#2823.enter(wl_output#1081) +[2618269.073] {Default Queue} discarded wl_surface#2823.enter(wl_output#1113) +[2618269.077] {Default Queue} discarded wl_surface#2823.enter(wl_output#1145) +[2618269.082] {Default Queue} discarded wl_surface#2823.enter(wl_output#1177) +[2618269.086] {Default Queue} discarded wl_surface#2823.enter(wl_output#1209) +[2618269.090] {Default Queue} discarded wl_surface#2823.enter(wl_output#1241) +[2618269.094] {Default Queue} discarded wl_surface#2823.enter(wl_output#1273) +[2618269.098] {Default Queue} discarded wl_surface#2823.enter(wl_output#1305) +[2618269.102] {Default Queue} discarded wl_surface#2823.enter(wl_output#1337) +[2618269.106] {Default Queue} discarded wl_surface#2823.enter(wl_output#1369) +[2618269.110] {Default Queue} discarded wl_surface#2823.enter(wl_output#1401) +[2618269.114] {Default Queue} discarded wl_surface#2823.enter(wl_output#1433) +[2618269.118] {Default Queue} discarded wl_surface#2823.enter(wl_output#1465) +[2618269.122] {Default Queue} discarded wl_surface#2823.enter(wl_output#1497) +[2618269.126] {Default Queue} discarded wl_surface#2823.enter(wl_output#1529) +[2618269.130] {Default Queue} discarded wl_surface#2823.enter(wl_output#1561) +[2618269.134] {Default Queue} discarded wl_surface#2823.enter(wl_output#1593) +[2618269.137] {Default Queue} discarded wl_surface#2823.enter(wl_output#1625) +[2618269.141] {Default Queue} discarded wl_surface#2823.enter(wl_output#1657) +[2618269.146] {Default Queue} discarded wl_surface#2823.enter(wl_output#1689) +[2618269.150] {Default Queue} discarded wl_surface#2823.enter(wl_output#1721) +[2618269.154] {Default Queue} discarded wl_surface#2823.enter(wl_output#1753) +[2618269.157] {Default Queue} discarded wl_surface#2823.enter(wl_output#1785) +[2618269.161] {Default Queue} discarded wl_surface#2823.enter(wl_output#1817) +[2618269.165] {Default Queue} discarded wl_surface#2823.enter(wl_output#1849) +[2618269.169] {Default Queue} discarded wl_surface#2823.enter(wl_output#1881) +[2618269.176] {Default Queue} discarded wl_surface#2823.enter(wl_output#1913) +[2618269.182] {Default Queue} discarded wl_surface#2823.enter(wl_output#1945) +[2618269.186] {Default Queue} discarded wl_surface#2823.enter(wl_output#1977) +[2618269.190] {Default Queue} discarded wl_surface#2823.enter(wl_output#2009) +[2618269.194] {Default Queue} discarded wl_surface#2823.enter(wl_output#2041) +[2618269.198] {Default Queue} discarded wl_surface#2823.enter(wl_output#2073) +[2618269.202] {Default Queue} discarded wl_surface#2823.enter(wl_output#2105) +[2618269.206] {Default Queue} discarded wl_surface#2823.enter(wl_output#2137) +[2618269.210] {Default Queue} discarded wl_surface#2823.enter(wl_output#2169) +[2618269.214] {Default Queue} discarded wl_surface#2823.enter(wl_output#2201) +[2618269.218] {Default Queue} discarded wl_surface#2823.enter(wl_output#2233) +[2618269.221] {Default Queue} discarded wl_surface#2823.enter(wl_output#2265) +[2618269.225] {Default Queue} discarded wl_surface#2823.enter(wl_output#2297) +[2618269.229] {Default Queue} discarded wl_surface#2823.enter(wl_output#2329) +[2618269.233] {Default Queue} discarded wl_surface#2823.enter(wl_output#2361) +[2618269.237] {Default Queue} discarded wl_surface#2823.enter(wl_output#2393) +[2618269.241] {Default Queue} discarded wl_surface#2823.enter(wl_output#2425) +[2618269.245] {Default Queue} discarded wl_surface#2823.enter(wl_output#2457) +[2618269.249] {Default Queue} discarded wl_surface#2823.enter(wl_output#2489) +[2618269.253] {Default Queue} discarded wl_surface#2823.enter(wl_output#2521) +[2618269.257] {Default Queue} discarded wl_surface#2823.enter(wl_output#2553) +[2618269.261] {Default Queue} discarded wl_surface#2823.enter(wl_output#2585) +[2618269.265] {Default Queue} discarded wl_surface#2823.enter(wl_output#2617) +[2618269.268] {Default Queue} discarded wl_surface#2823.enter(wl_output#2649) +[2618269.273] {Default Queue} discarded wl_surface#2823.enter(wl_output#2681) +[2618269.276] {Default Queue} discarded wl_surface#2823.enter(wl_output#2713) +[2618269.280] {Default Queue} discarded wl_surface#2823.enter(wl_output#2745) +[2618269.285] {Default Queue} discarded wl_surface#2823.enter(wl_output#2777) +[2618269.289] {Default Queue} -> wl_compositor#2828.create_surface(new id wl_surface#2855) +[2618269.293] {Default Queue} -> wl_subcompositor#2861.get_subsurface(new id wl_subsurface#2874, wl_surface#2855, wl_surface#2823) +[2618269.301] {Default Queue} -> wl_subsurface#2874.set_desync() +[2618269.305] {Default Queue} -> wl_subsurface#2874.set_position(0, 0) +[2618269.310] {Default Queue} -> wl_subsurface#2874.place_above(wl_surface#2823) +[2618269.346] {Default Queue} -> wl_shm#2863.create_pool(new id wl_shm_pool#2875, fd 454, 16) +[2618269.353] {Default Queue} -> wl_shm#2863.create_pool(new id wl_shm_pool#2876, fd 455, 16) +[2618269.357] {Default Queue} -> wl_shm_pool#2875.create_buffer(new id wl_buffer#2877, 0, 2, 2, 8, 0) +[2618269.362] {Default Queue} -> wl_shm_pool#2876.create_buffer(new id wl_buffer#2878, 0, 2, 2, 8, 0) +[2618269.369] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2877, 0, 0) +[2618269.374] {Default Queue} -> wl_surface#2855.commit() +[2618269.380] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2877, 0, 0) +[2618269.384] {Default Queue} -> wl_surface#2855.commit() +[2618269.388] {Default Queue} -> wl_compositor#2860.create_region(new id wl_region#2879) +[2618269.392] {Default Queue} -> wl_compositor#2860.create_region(new id wl_region#2880) +[2618269.396] {Default Queue} -> wl_region#2879.subtract(0, 0, 2, 2) +[2618269.401] {Default Queue} -> wl_region#2879.add(0, 0, 0, 0) +[2618269.406] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) +[2618269.410] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) +[2618269.414] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) +[2618269.419] {Default Queue} -> wl_surface#2823.damage(0, 0, 2, 2) +[2618269.425] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2877, 0, 0) +[2618269.430] {Default Queue} -> wl_surface#2855.commit() +[2618269.461] {Default Queue} -> wl_shm#2865.create_pool(new id wl_shm_pool#2881, fd 458, 640) +[2618269.471] {Default Queue} -> wl_shm#2865.create_pool(new id wl_shm_pool#2882, fd 459, 640) +[2618269.477] {Default Queue} -> wl_shm_pool#2881.create_buffer(new id wl_buffer#2883, 0, 10, 16, 40, 0) +[2618269.482] {Default Queue} -> wl_shm_pool#2882.create_buffer(new id wl_buffer#2884, 0, 10, 16, 40, 0) +[2618269.489] {Default Queue} -> wl_compositor#2860.create_surface(new id wl_surface#2885) +[2618269.493] {Default Queue} -> wl_surface#2885.attach(wl_buffer#2883, 0, 0) +[2618269.497] {Default Queue} -> wl_surface#2885.commit() +[2618269.503] {Default Queue} -> wl_surface#2885.attach(wl_buffer#2883, 0, 0) +[2618269.507] {Default Queue} -> wl_surface#2885.commit() +[2618269.513] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) +[2618269.520] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2886) +[2618269.524] {Default Queue} -> wl_display#1.sync(new id wl_callback#2887) +[2618271.136] {Default Queue} discarded wl_surface#2823.enter(wl_output#2809) +[2618271.144] {Default Queue} discarded wl_surface#2823.enter(wl_output#2841) +[2618271.405] {Display Queue} wl_display#1.delete_id(2887) +[2618271.411] {Default Queue} wl_keyboard#2856.keymap(1, fd 454, 68213) +[2618271.415] {Default Queue} wl_keyboard#2856.enter(566, wl_surface#19, array[0]) +[2618271.421] {Default Queue} wl_keyboard#2856.modifiers(566, 0, 0, 16, 0) +[2618271.426] {Default Queue} discarded wl_shm#2863.format(875709016) +[2618271.430] {Default Queue} discarded wl_shm#2863.format(1) +[2618271.434] {Default Queue} discarded wl_shm#2863.format(0) +[2618271.438] {Default Queue} discarded wl_shm#2863.format(875708993) +[2618271.442] {Default Queue} discarded wl_shm#2864.format(875709016) +[2618271.446] {Default Queue} discarded wl_shm#2864.format(1) +[2618271.450] {Default Queue} discarded wl_shm#2864.format(0) +[2618271.454] {Default Queue} discarded wl_shm#2864.format(875708993) +[2618271.459] {Default Queue} discarded wl_shm#2865.format(875709016) +[2618271.463] {Default Queue} discarded wl_shm#2865.format(1) +[2618271.467] {Default Queue} discarded wl_shm#2865.format(0) +[2618271.471] {Default Queue} discarded wl_shm#2865.format(875708993) +[2618271.475] {Default Queue} wl_seat#2872.capabilities(7) +[2618271.479] {Default Queue} -> wl_seat#2872.get_keyboard(new id wl_keyboard#2888) +[2618271.485] {Default Queue} -> wl_seat#2872.get_pointer(new id wl_pointer#2889) +[2618271.489] {Default Queue} -> wl_data_device_manager#2868.get_data_device(new id wl_data_device#2890, wl_seat#2872) +[2618271.494] {Default Queue} -> zwp_primary_selection_device_manager_v1#2870.get_device(new id zwp_primary_selection_device_v1#2891, wl_seat#2872) +[2618271.502] {Default Queue} wl_output#2873.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618271.507] {Default Queue} wl_output#2873.mode(3, 1280, 800, 60000) +[2618271.511] {Default Queue} discarded wl_surface#2727.enter(wl_output#2873) +[2618271.516] {Default Queue} discarded wl_surface#3.enter(wl_output#2873) +[2618271.520] {Default Queue} discarded wl_surface#999.enter(wl_output#2873) +[2618271.524] {Default Queue} discarded wl_surface#1191.enter(wl_output#2873) +[2618271.529] {Default Queue} discarded wl_surface#1159.enter(wl_output#2873) +[2618271.533] {Default Queue} discarded wl_surface#1703.enter(wl_output#2873) +[2618271.537] {Default Queue} discarded wl_surface#2215.enter(wl_output#2873) +[2618271.541] {Default Queue} discarded wl_surface#423.enter(wl_output#2873) +[2618271.545] {Default Queue} discarded wl_surface#1447.enter(wl_output#2873) +[2618271.549] {Default Queue} discarded wl_surface#2023.enter(wl_output#2873) +[2618271.553] {Default Queue} discarded wl_surface#1639.enter(wl_output#2873) +[2618271.558] {Default Queue} discarded wl_surface#1319.enter(wl_output#2873) +[2618271.562] {Default Queue} discarded wl_surface#1127.enter(wl_output#2873) +[2618271.566] {Default Queue} discarded wl_surface#2151.enter(wl_output#2873) +[2618271.569] {Default Queue} discarded wl_surface#2375.enter(wl_output#2873) +[2618271.573] {Default Queue} discarded wl_surface#2695.enter(wl_output#2873) +[2618271.581] {Default Queue} discarded wl_surface#1063.enter(wl_output#2873) +[2618271.588] {Default Queue} discarded wl_surface#455.enter(wl_output#2873) +[2618271.592] {Default Queue} discarded wl_surface#1575.enter(wl_output#2873) +[2618271.596] {Default Queue} discarded wl_surface#1799.enter(wl_output#2873) +[2618271.600] {Default Queue} discarded wl_surface#1415.enter(wl_output#2873) +[2618271.604] {Default Queue} discarded wl_surface#2439.enter(wl_output#2873) +[2618271.608] {Default Queue} discarded wl_surface#2279.enter(wl_output#2873) +[2618271.612] {Default Queue} discarded wl_surface#1831.enter(wl_output#2873) +[2618271.616] {Default Queue} discarded wl_surface#903.enter(wl_output#2873) +[2618271.620] {Default Queue} discarded wl_surface#2663.enter(wl_output#2873) +[2618271.624] {Default Queue} discarded wl_surface#775.enter(wl_output#2873) +[2618271.627] {Default Queue} discarded wl_surface#1991.enter(wl_output#2873) +[2618271.632] {Default Queue} discarded wl_surface#1543.enter(wl_output#2873) +[2618271.636] {Default Queue} discarded wl_surface#135.enter(wl_output#2873) +[2618271.640] {Default Queue} discarded wl_surface#1287.enter(wl_output#2873) +[2618271.644] {Default Queue} discarded wl_surface#1031.enter(wl_output#2873) +[2618271.647] {Default Queue} discarded wl_surface#615.enter(wl_output#2873) +[2618271.651] {Default Queue} discarded wl_surface#231.enter(wl_output#2873) +[2618271.655] {Default Queue} discarded wl_surface#2343.enter(wl_output#2873) +[2618271.659] {Default Queue} discarded wl_surface#1863.enter(wl_output#2873) +[2618271.663] {Default Queue} discarded wl_surface#359.enter(wl_output#2873) +[2618271.667] {Default Queue} discarded wl_surface#583.enter(wl_output#2873) +[2618271.671] {Default Queue} discarded wl_surface#743.enter(wl_output#2873) +[2618271.675] {Default Queue} discarded wl_surface#2535.enter(wl_output#2873) +[2618271.679] {Default Queue} discarded wl_surface#967.enter(wl_output#2873) +[2618271.683] {Default Queue} discarded wl_surface#103.enter(wl_output#2873) +[2618271.687] {Default Queue} discarded wl_surface#327.enter(wl_output#2873) +[2618271.691] {Default Queue} discarded wl_surface#43.enter(wl_output#2873) +[2618271.694] {Default Queue} discarded wl_surface#2247.enter(wl_output#2873) +[2618271.698] {Default Queue} discarded wl_surface#807.enter(wl_output#2873) +[2618271.703] {Default Queue} discarded wl_surface#19.enter(wl_output#2873) +[2618271.707] {Default Queue} discarded wl_surface#1511.enter(wl_output#2873) +[2618271.711] {Default Queue} discarded wl_surface#199.enter(wl_output#2873) +[2618271.715] {Default Queue} discarded wl_surface#391.enter(wl_output#2873) +[2618271.719] {Default Queue} discarded wl_surface#935.enter(wl_output#2873) +[2618271.723] {Default Queue} discarded wl_surface#2823.enter(wl_output#2873) +[2618271.726] {Default Queue} discarded wl_surface#1671.enter(wl_output#2873) +[2618271.730] {Default Queue} discarded wl_surface#1351.enter(wl_output#2873) +[2618271.734] {Default Queue} discarded wl_surface#711.enter(wl_output#2873) +[2618271.739] {Default Queue} discarded wl_surface#1223.enter(wl_output#2873) +[2618271.743] {Default Queue} discarded wl_surface#1927.enter(wl_output#2873) +[2618271.747] {Default Queue} discarded wl_surface#871.enter(wl_output#2873) +[2618271.751] {Default Queue} discarded wl_surface#1895.enter(wl_output#2873) +[2618271.755] {Default Queue} discarded wl_surface#263.enter(wl_output#2873) +[2618271.759] {Default Queue} discarded wl_surface#551.enter(wl_output#2873) +[2618271.763] {Default Queue} discarded wl_surface#1735.enter(wl_output#2873) +[2618271.767] {Default Queue} discarded wl_surface#1479.enter(wl_output#2873) +[2618271.771] {Default Queue} discarded wl_surface#1772.enter(wl_output#2873) +[2618271.774] {Default Queue} discarded wl_surface#2599.enter(wl_output#2873) +[2618271.778] {Default Queue} discarded wl_surface#2631.enter(wl_output#2873) +[2618271.783] {Default Queue} discarded wl_surface#1959.enter(wl_output#2873) +[2618271.787] {Default Queue} discarded wl_surface#647.enter(wl_output#2873) +[2618271.791] {Default Queue} discarded wl_surface#2055.enter(wl_output#2873) +[2618271.798] {Default Queue} discarded wl_surface#2508.enter(wl_output#2873) +[2618271.803] {Default Queue} discarded wl_surface#71.enter(wl_output#2873) +[2618271.807] {Default Queue} discarded wl_surface#2759.enter(wl_output#2873) +[2618271.811] {Default Queue} discarded wl_surface#2791.enter(wl_output#2873) +[2618271.815] {Default Queue} discarded wl_surface#2183.enter(wl_output#2873) +[2618271.819] {Default Queue} discarded wl_surface#2567.enter(wl_output#2873) +[2618271.823] {Default Queue} discarded wl_surface#839.enter(wl_output#2873) +[2618271.827] {Default Queue} discarded wl_surface#1607.enter(wl_output#2873) +[2618271.831] {Default Queue} discarded wl_surface#1095.enter(wl_output#2873) +[2618271.835] {Default Queue} discarded wl_surface#1383.enter(wl_output#2873) +[2618271.839] {Default Queue} discarded wl_surface#487.enter(wl_output#2873) +[2618271.843] {Default Queue} discarded wl_surface#2311.enter(wl_output#2873) +[2618271.848] {Default Queue} discarded wl_surface#519.enter(wl_output#2873) +[2618271.852] {Default Queue} discarded wl_surface#2087.enter(wl_output#2873) +[2618271.857] {Default Queue} discarded wl_surface#2471.enter(wl_output#2873) +[2618271.867] {Default Queue} discarded wl_surface#295.enter(wl_output#2873) +[2618271.872] {Default Queue} discarded wl_surface#167.enter(wl_output#2873) +[2618271.878] {Default Queue} discarded wl_surface#1255.enter(wl_output#2873) +[2618271.883] {Default Queue} discarded wl_surface#679.enter(wl_output#2873) +[2618271.889] {Default Queue} discarded wl_surface#2407.enter(wl_output#2873) +[2618271.894] {Default Queue} discarded wl_surface#2119.enter(wl_output#2873) +[2618271.898] {Default Queue} wl_registry#2886.global(1, "wl_compositor", 6) +[2618271.904] {Default Queue} -> wl_registry#2886.bind(1, "wl_compositor", 1, new id [unknown]#2892) +[2618271.909] {Default Queue} wl_registry#2886.global(2, "wl_subcompositor", 1) +[2618271.913] {Default Queue} -> wl_registry#2886.bind(2, "wl_subcompositor", 1, new id [unknown]#2893) +[2618271.918] {Default Queue} wl_registry#2886.global(3, "xdg_wm_base", 6) +[2618271.923] {Default Queue} -> wl_registry#2886.bind(3, "xdg_wm_base", 1, new id [unknown]#2894) +[2618271.927] {Default Queue} wl_registry#2886.global(6, "zwlr_layer_shell_v1", 5) +[2618271.932] {Default Queue} wl_registry#2886.global(7, "ext_session_lock_manager_v1", 1) +[2618271.936] {Default Queue} wl_registry#2886.global(8, "wl_shm", 2) +[2618271.941] {Default Queue} -> wl_registry#2886.bind(8, "wl_shm", 1, new id [unknown]#2895) +[2618271.945] {Default Queue} -> wl_registry#2886.bind(8, "wl_shm", 1, new id [unknown]#2896) +[2618271.949] {Default Queue} -> wl_registry#2886.bind(8, "wl_shm", 1, new id [unknown]#2897) +[2618271.954] {Default Queue} wl_registry#2886.global(9, "zxdg_output_manager_v1", 3) +[2618271.958] {Default Queue} wl_registry#2886.global(10, "wp_fractional_scale_manager_v1", 1) +[2618271.962] {Default Queue} wl_registry#2886.global(11, "zwp_tablet_manager_v2", 1) +[2618271.967] {Default Queue} wl_registry#2886.global(12, "zwp_pointer_gestures_v1", 3) +[2618271.971] {Default Queue} wl_registry#2886.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618271.975] {Default Queue} -> wl_registry#2886.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2898) +[2618271.980] {Default Queue} wl_registry#2886.global(14, "zwp_pointer_constraints_v1", 1) +[2618271.984] {Default Queue} -> wl_registry#2886.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2899) +[2618271.989] {Default Queue} wl_registry#2886.global(15, "ext_idle_notifier_v1", 2) +[2618271.993] {Default Queue} wl_registry#2886.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618271.998] {Default Queue} wl_registry#2886.global(17, "wl_data_device_manager", 3) +[2618272.003] {Default Queue} -> wl_registry#2886.bind(17, "wl_data_device_manager", 2, new id [unknown]#2900) +[2618272.007] {Default Queue} -> wl_data_device_manager#2900.create_data_source(new id wl_data_source#2901) +[2618272.012] {Default Queue} -> wl_data_source#2901.offer("text/plain") +[2618272.016] {Default Queue} -> wl_data_source#2901.offer("text/plain;charset=utf-8") +[2618272.024] {Default Queue} -> wl_data_source#2901.offer("TEXT") +[2618272.030] {Default Queue} -> wl_data_source#2901.offer("STRING") +[2618272.034] {Default Queue} -> wl_data_source#2901.offer("UTF8_STRING") +[2618272.039] {Default Queue} wl_registry#2886.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618272.043] {Default Queue} -> wl_registry#2886.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2902) +[2618272.051] {Default Queue} -> zwp_primary_selection_device_manager_v1#2902.create_source(new id zwp_primary_selection_source_v1#2903) +[2618272.059] {Default Queue} -> zwp_primary_selection_source_v1#2903.offer("text/plain") +[2618272.063] {Default Queue} -> zwp_primary_selection_source_v1#2903.offer("text/plain;charset=utf-8") +[2618272.067] {Default Queue} -> zwp_primary_selection_source_v1#2903.offer("TEXT") +[2618272.071] {Default Queue} -> zwp_primary_selection_source_v1#2903.offer("STRING") +[2618272.075] {Default Queue} -> zwp_primary_selection_source_v1#2903.offer("UTF8_STRING") +[2618272.079] {Default Queue} wl_registry#2886.global(19, "zwlr_data_control_manager_v1", 2) +[2618272.084] {Default Queue} wl_registry#2886.global(20, "ext_data_control_manager_v1", 1) +[2618272.090] {Default Queue} wl_registry#2886.global(21, "wp_presentation", 2) +[2618272.094] {Default Queue} wl_registry#2886.global(22, "wp_security_context_manager_v1", 1) +[2618272.098] {Default Queue} wl_registry#2886.global(23, "zwp_text_input_manager_v3", 1) +[2618272.103] {Default Queue} wl_registry#2886.global(24, "zwp_input_method_manager_v2", 1) +[2618272.108] {Default Queue} wl_registry#2886.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618272.112] {Default Queue} wl_registry#2886.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618272.117] {Default Queue} wl_registry#2886.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618272.121] {Default Queue} wl_registry#2886.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618272.125] {Default Queue} wl_registry#2886.global(29, "ext_workspace_manager_v1", 1) +[2618272.130] {Default Queue} wl_registry#2886.global(30, "zwlr_output_manager_v1", 4) +[2618272.134] {Default Queue} wl_registry#2886.global(31, "zwlr_screencopy_manager_v1", 3) +[2618272.139] {Default Queue} wl_registry#2886.global(32, "wp_viewporter", 1) +[2618272.143] {Default Queue} wl_registry#2886.global(33, "zxdg_exporter_v2", 1) +[2618272.147] {Default Queue} wl_registry#2886.global(34, "zxdg_importer_v2", 1) +[2618272.152] {Default Queue} wl_registry#2886.global(36, "xdg_activation_v1", 1) +[2618272.157] {Default Queue} wl_registry#2886.global(37, "mutter_x11_interop", 1) +[2618272.161] {Default Queue} wl_registry#2886.global(38, "wl_seat", 9) +[2618272.165] {Default Queue} -> wl_registry#2886.bind(38, "wl_seat", 1, new id [unknown]#2904) +[2618272.170] {Default Queue} wl_registry#2886.global(39, "wp_cursor_shape_manager_v1", 2) +[2618272.175] {Default Queue} wl_registry#2886.global(40, "wl_output", 4) +[2618272.180] {Default Queue} -> wl_registry#2886.bind(40, "wl_output", 1, new id [unknown]#2905) +[2618272.184] {Default Queue} wl_callback#2887.done(0) +[2618272.188] {Default Queue} discarded wl_surface#2855.enter(wl_output#18) +[2618272.193] {Default Queue} discarded wl_surface#2855.enter(wl_output#57) +[2618272.197] {Default Queue} discarded wl_surface#2855.enter(wl_output#89) +[2618272.201] {Default Queue} discarded wl_surface#2855.enter(wl_output#121) +[2618272.205] {Default Queue} discarded wl_surface#2855.enter(wl_output#153) +[2618272.208] {Default Queue} discarded wl_surface#2855.enter(wl_output#185) +[2618272.212] {Default Queue} discarded wl_surface#2855.enter(wl_output#217) +[2618272.216] {Default Queue} discarded wl_surface#2855.enter(wl_output#249) +[2618272.220] {Default Queue} discarded wl_surface#2855.enter(wl_output#281) +[2618272.225] {Default Queue} discarded wl_surface#2855.enter(wl_output#313) +[2618272.228] {Default Queue} discarded wl_surface#2855.enter(wl_output#345) +[2618272.232] {Default Queue} discarded wl_surface#2855.enter(wl_output#377) +[2618272.239] {Default Queue} discarded wl_surface#2855.enter(wl_output#409) +[2618272.245] {Default Queue} discarded wl_surface#2855.enter(wl_output#441) +[2618272.248] {Default Queue} discarded wl_surface#2855.enter(wl_output#473) +[2618272.252] {Default Queue} discarded wl_surface#2855.enter(wl_output#505) +[2618272.256] {Default Queue} discarded wl_surface#2855.enter(wl_output#537) +[2618272.260] {Default Queue} discarded wl_surface#2855.enter(wl_output#569) +[2618272.264] {Default Queue} discarded wl_surface#2855.enter(wl_output#601) +[2618272.268] {Default Queue} discarded wl_surface#2855.enter(wl_output#633) +[2618272.272] {Default Queue} discarded wl_surface#2855.enter(wl_output#665) +[2618272.276] {Default Queue} discarded wl_surface#2855.enter(wl_output#697) +[2618272.280] {Default Queue} discarded wl_surface#2855.enter(wl_output#729) +[2618272.284] {Default Queue} discarded wl_surface#2855.enter(wl_output#761) +[2618272.288] {Default Queue} discarded wl_surface#2855.enter(wl_output#793) +[2618272.292] {Default Queue} discarded wl_surface#2855.enter(wl_output#825) +[2618272.295] {Default Queue} discarded wl_surface#2855.enter(wl_output#857) +[2618272.299] {Default Queue} discarded wl_surface#2855.enter(wl_output#889) +[2618272.303] {Default Queue} discarded wl_surface#2855.enter(wl_output#921) +[2618272.307] {Default Queue} discarded wl_surface#2855.enter(wl_output#953) +[2618272.311] {Default Queue} discarded wl_surface#2855.enter(wl_output#985) +[2618272.315] {Default Queue} discarded wl_surface#2855.enter(wl_output#1017) +[2618272.318] {Default Queue} discarded wl_surface#2855.enter(wl_output#1049) +[2618272.322] {Default Queue} discarded wl_surface#2855.enter(wl_output#1081) +[2618272.326] {Default Queue} discarded wl_surface#2855.enter(wl_output#1113) +[2618272.330] {Default Queue} discarded wl_surface#2855.enter(wl_output#1145) +[2618272.334] {Default Queue} discarded wl_surface#2855.enter(wl_output#1177) +[2618272.338] {Default Queue} discarded wl_surface#2855.enter(wl_output#1209) +[2618272.342] {Default Queue} discarded wl_surface#2855.enter(wl_output#1241) +[2618272.346] {Default Queue} discarded wl_surface#2855.enter(wl_output#1273) +[2618272.350] {Default Queue} discarded wl_surface#2855.enter(wl_output#1305) +[2618272.354] {Default Queue} discarded wl_surface#2855.enter(wl_output#1337) +[2618272.357] {Default Queue} discarded wl_surface#2855.enter(wl_output#1369) +[2618272.361] {Default Queue} discarded wl_surface#2855.enter(wl_output#1401) +[2618272.365] {Default Queue} discarded wl_surface#2855.enter(wl_output#1433) +[2618272.369] {Default Queue} discarded wl_surface#2855.enter(wl_output#1465) +[2618272.373] {Default Queue} discarded wl_surface#2855.enter(wl_output#1497) +[2618272.377] {Default Queue} discarded wl_surface#2855.enter(wl_output#1529) +[2618272.381] {Default Queue} discarded wl_surface#2855.enter(wl_output#1561) +[2618272.385] {Default Queue} discarded wl_surface#2855.enter(wl_output#1593) +[2618272.389] {Default Queue} discarded wl_surface#2855.enter(wl_output#1625) +[2618272.393] {Default Queue} discarded wl_surface#2855.enter(wl_output#1657) +[2618272.397] {Default Queue} discarded wl_surface#2855.enter(wl_output#1689) +[2618272.401] {Default Queue} discarded wl_surface#2855.enter(wl_output#1721) +[2618272.405] {Default Queue} discarded wl_surface#2855.enter(wl_output#1753) +[2618272.409] {Default Queue} discarded wl_surface#2855.enter(wl_output#1785) +[2618272.412] {Default Queue} discarded wl_surface#2855.enter(wl_output#1817) +[2618272.416] {Default Queue} discarded wl_surface#2855.enter(wl_output#1849) +[2618272.420] {Default Queue} discarded wl_surface#2855.enter(wl_output#1881) +[2618272.424] {Default Queue} discarded wl_surface#2855.enter(wl_output#1913) +[2618272.428] {Default Queue} discarded wl_surface#2855.enter(wl_output#1945) +[2618272.432] {Default Queue} discarded wl_surface#2855.enter(wl_output#1977) +[2618272.436] {Default Queue} discarded wl_surface#2855.enter(wl_output#2009) +[2618272.440] {Default Queue} discarded wl_surface#2855.enter(wl_output#2041) +[2618272.444] {Default Queue} discarded wl_surface#2855.enter(wl_output#2073) +[2618272.450] {Default Queue} discarded wl_surface#2855.enter(wl_output#2105) +[2618272.455] {Default Queue} discarded wl_surface#2855.enter(wl_output#2137) +[2618272.459] {Default Queue} discarded wl_surface#2855.enter(wl_output#2169) +[2618272.463] {Default Queue} discarded wl_surface#2855.enter(wl_output#2201) +[2618272.467] {Default Queue} discarded wl_surface#2855.enter(wl_output#2233) +[2618272.471] {Default Queue} discarded wl_surface#2855.enter(wl_output#2265) +[2618272.475] {Default Queue} discarded wl_surface#2855.enter(wl_output#2297) +[2618272.479] {Default Queue} discarded wl_surface#2855.enter(wl_output#2329) +[2618272.483] {Default Queue} discarded wl_surface#2855.enter(wl_output#2361) +[2618272.487] {Default Queue} discarded wl_surface#2855.enter(wl_output#2393) +[2618272.491] {Default Queue} discarded wl_surface#2855.enter(wl_output#2425) +[2618272.495] {Default Queue} discarded wl_surface#2855.enter(wl_output#2457) +[2618272.498] {Default Queue} discarded wl_surface#2855.enter(wl_output#2489) +[2618272.502] {Default Queue} discarded wl_surface#2855.enter(wl_output#2521) +[2618272.506] {Default Queue} discarded wl_surface#2855.enter(wl_output#2553) +[2618272.510] {Default Queue} discarded wl_surface#2855.enter(wl_output#2585) +[2618272.514] {Default Queue} discarded wl_surface#2855.enter(wl_output#2617) +[2618272.518] {Default Queue} discarded wl_surface#2855.enter(wl_output#2649) +[2618272.522] {Default Queue} discarded wl_surface#2855.enter(wl_output#2681) +[2618272.526] {Default Queue} discarded wl_surface#2855.enter(wl_output#2713) +[2618272.530] {Default Queue} discarded wl_surface#2855.enter(wl_output#2745) +[2618272.534] {Default Queue} -> wl_compositor#2860.create_surface(new id wl_surface#2887) +[2618272.539] {Default Queue} -> wl_subcompositor#2893.get_subsurface(new id wl_subsurface#2906, wl_surface#2887, wl_surface#2855) +[2618272.547] {Default Queue} -> wl_subsurface#2906.set_desync() +[2618272.551] {Default Queue} -> wl_subsurface#2906.set_position(0, 0) +[2618272.555] {Default Queue} -> wl_subsurface#2906.place_above(wl_surface#2855) +[2618272.598] {Default Queue} -> wl_shm#2895.create_pool(new id wl_shm_pool#2907, fd 459, 16) +[2618272.604] {Default Queue} -> wl_shm#2895.create_pool(new id wl_shm_pool#2908, fd 460, 16) +[2618272.609] {Default Queue} -> wl_shm_pool#2907.create_buffer(new id wl_buffer#2909, 0, 2, 2, 8, 0) +[2618272.614] {Default Queue} -> wl_shm_pool#2908.create_buffer(new id wl_buffer#2910, 0, 2, 2, 8, 0) +[2618272.622] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) +[2618272.626] {Default Queue} -> wl_surface#2887.commit() +[2618272.632] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) +[2618272.636] {Default Queue} -> wl_surface#2887.commit() +[2618272.640] {Default Queue} -> wl_compositor#2892.create_region(new id wl_region#2911) +[2618272.644] {Default Queue} -> wl_compositor#2892.create_region(new id wl_region#2912) +[2618272.649] {Default Queue} -> wl_region#2911.subtract(0, 0, 2, 2) +[2618272.653] {Default Queue} -> wl_region#2911.add(0, 0, 0, 0) +[2618272.658] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2618272.662] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2618272.666] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618272.671] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) +[2618272.678] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) +[2618272.682] {Default Queue} -> wl_surface#2887.commit() +[2618272.715] {Default Queue} -> wl_shm#2897.create_pool(new id wl_shm_pool#2913, fd 463, 640) +[2618272.722] {Default Queue} -> wl_shm#2897.create_pool(new id wl_shm_pool#2914, fd 464, 640) +[2618272.727] {Default Queue} -> wl_shm_pool#2913.create_buffer(new id wl_buffer#2915, 0, 10, 16, 40, 0) +[2618272.732] {Default Queue} -> wl_shm_pool#2914.create_buffer(new id wl_buffer#2916, 0, 10, 16, 40, 0) +[2618272.738] {Default Queue} -> wl_compositor#2892.create_surface(new id wl_surface#2917) +[2618272.743] {Default Queue} -> wl_surface#2917.attach(wl_buffer#2915, 0, 0) +[2618272.750] {Default Queue} -> wl_surface#2917.commit() +[2618272.757] {Default Queue} -> wl_surface#2917.attach(wl_buffer#2915, 0, 0) +[2618272.761] {Default Queue} -> wl_surface#2917.commit() +[2618272.766] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) +[2618272.772] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618272.777] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618272.784] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2918) +[2618272.789] {Default Queue} -> wl_display#1.sync(new id wl_callback#2919) +[2618275.353] {Default Queue} discarded wl_surface#2855.enter(wl_output#2777) +[2618275.371] {Default Queue} discarded wl_surface#2855.enter(wl_output#2809) +[2618275.380] {Default Queue} discarded wl_surface#2855.enter(wl_output#2841) +[2618275.387] {Default Queue} discarded wl_surface#2855.enter(wl_output#2873) +[2618275.746] {Display Queue} wl_display#1.delete_id(2919) +[2618275.763] {Default Queue} wl_keyboard#2888.keymap(1, fd 459, 68213) +[2618275.772] {Default Queue} wl_keyboard#2888.enter(566, wl_surface#19, array[0]) +[2618275.781] {Default Queue} wl_keyboard#2888.modifiers(566, 0, 0, 16, 0) +[2618275.789] {Default Queue} discarded wl_shm#2895.format(875709016) +[2618275.796] {Default Queue} discarded wl_shm#2895.format(1) +[2618275.803] {Default Queue} discarded wl_shm#2895.format(0) +[2618275.809] {Default Queue} discarded wl_shm#2895.format(875708993) +[2618275.816] {Default Queue} discarded wl_shm#2896.format(875709016) +[2618275.823] {Default Queue} discarded wl_shm#2896.format(1) +[2618275.831] {Default Queue} discarded wl_shm#2896.format(0) +[2618275.838] {Default Queue} discarded wl_shm#2896.format(875708993) +[2618275.845] {Default Queue} discarded wl_shm#2897.format(875709016) +[2618275.851] {Default Queue} discarded wl_shm#2897.format(1) +[2618275.857] {Default Queue} discarded wl_shm#2897.format(0) +[2618275.871] {Default Queue} discarded wl_shm#2897.format(875708993) +[2618275.879] {Default Queue} wl_seat#2904.capabilities(7) +[2618275.887] {Default Queue} -> wl_seat#2904.get_keyboard(new id wl_keyboard#2920) +[2618275.895] {Default Queue} -> wl_seat#2904.get_pointer(new id wl_pointer#2921) +[2618275.903] {Default Queue} -> wl_data_device_manager#2900.get_data_device(new id wl_data_device#2922, wl_seat#2904) +[2618275.913] {Default Queue} -> zwp_primary_selection_device_manager_v1#2902.get_device(new id zwp_primary_selection_device_v1#2923, wl_seat#2904) +[2618275.928] {Default Queue} wl_output#2905.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618275.937] {Default Queue} wl_output#2905.mode(3, 1280, 800, 60000) +[2618275.948] {Default Queue} discarded wl_surface#2727.enter(wl_output#2905) +[2618275.957] {Default Queue} discarded wl_surface#3.enter(wl_output#2905) +[2618275.964] {Default Queue} discarded wl_surface#999.enter(wl_output#2905) +[2618275.970] {Default Queue} discarded wl_surface#1191.enter(wl_output#2905) +[2618275.977] {Default Queue} discarded wl_surface#1159.enter(wl_output#2905) +[2618275.983] {Default Queue} discarded wl_surface#1703.enter(wl_output#2905) +[2618275.990] {Default Queue} discarded wl_surface#2215.enter(wl_output#2905) +[2618275.996] {Default Queue} discarded wl_surface#423.enter(wl_output#2905) +[2618276.003] {Default Queue} discarded wl_surface#1447.enter(wl_output#2905) +[2618276.009] {Default Queue} discarded wl_surface#2023.enter(wl_output#2905) +[2618276.016] {Default Queue} discarded wl_surface#1639.enter(wl_output#2905) +[2618276.022] {Default Queue} discarded wl_surface#1319.enter(wl_output#2905) +[2618276.029] {Default Queue} discarded wl_surface#1127.enter(wl_output#2905) +[2618276.036] {Default Queue} discarded wl_surface#2151.enter(wl_output#2905) +[2618276.043] {Default Queue} discarded wl_surface#2375.enter(wl_output#2905) +[2618276.051] {Default Queue} discarded wl_surface#2695.enter(wl_output#2905) +[2618276.058] {Default Queue} discarded wl_surface#1063.enter(wl_output#2905) +[2618276.065] {Default Queue} discarded wl_surface#455.enter(wl_output#2905) +[2618276.073] {Default Queue} discarded wl_surface#1575.enter(wl_output#2905) +[2618276.088] {Default Queue} discarded wl_surface#1799.enter(wl_output#2905) +[2618276.101] {Default Queue} discarded wl_surface#1415.enter(wl_output#2905) +[2618276.108] {Default Queue} discarded wl_surface#2439.enter(wl_output#2905) +[2618276.116] {Default Queue} discarded wl_surface#2279.enter(wl_output#2905) +[2618276.123] {Default Queue} discarded wl_surface#1831.enter(wl_output#2905) +[2618276.130] {Default Queue} discarded wl_surface#903.enter(wl_output#2905) +[2618276.141] {Default Queue} discarded wl_surface#2663.enter(wl_output#2905) +[2618276.149] {Default Queue} discarded wl_surface#775.enter(wl_output#2905) +[2618276.156] {Default Queue} discarded wl_surface#1991.enter(wl_output#2905) +[2618276.164] {Default Queue} discarded wl_surface#1543.enter(wl_output#2905) +[2618276.170] {Default Queue} discarded wl_surface#135.enter(wl_output#2905) +[2618276.177] {Default Queue} discarded wl_surface#1287.enter(wl_output#2905) +[2618276.184] {Default Queue} discarded wl_surface#1031.enter(wl_output#2905) +[2618276.190] {Default Queue} discarded wl_surface#615.enter(wl_output#2905) +[2618276.198] {Default Queue} discarded wl_surface#231.enter(wl_output#2905) +[2618276.205] {Default Queue} discarded wl_surface#2343.enter(wl_output#2905) +[2618276.212] {Default Queue} discarded wl_surface#1863.enter(wl_output#2905) +[2618276.219] {Default Queue} discarded wl_surface#359.enter(wl_output#2905) +[2618276.227] {Default Queue} discarded wl_surface#583.enter(wl_output#2905) +[2618276.234] {Default Queue} discarded wl_surface#743.enter(wl_output#2905) +[2618276.241] {Default Queue} discarded wl_surface#2535.enter(wl_output#2905) +[2618276.248] {Default Queue} discarded wl_surface#967.enter(wl_output#2905) +[2618276.254] {Default Queue} discarded wl_surface#103.enter(wl_output#2905) +[2618276.259] {Default Queue} discarded wl_surface#327.enter(wl_output#2905) +[2618276.265] {Default Queue} discarded wl_surface#43.enter(wl_output#2905) +[2618276.271] {Default Queue} discarded wl_surface#2247.enter(wl_output#2905) +[2618276.277] {Default Queue} discarded wl_surface#807.enter(wl_output#2905) +[2618276.283] {Default Queue} discarded wl_surface#19.enter(wl_output#2905) +[2618276.288] {Default Queue} discarded wl_surface#1511.enter(wl_output#2905) +[2618276.294] {Default Queue} discarded wl_surface#199.enter(wl_output#2905) +[2618276.299] {Default Queue} discarded wl_surface#391.enter(wl_output#2905) +[2618276.305] {Default Queue} discarded wl_surface#935.enter(wl_output#2905) +[2618276.310] {Default Queue} discarded wl_surface#2823.enter(wl_output#2905) +[2618276.316] {Default Queue} discarded wl_surface#1671.enter(wl_output#2905) +[2618276.321] {Default Queue} discarded wl_surface#1351.enter(wl_output#2905) +[2618276.326] {Default Queue} discarded wl_surface#711.enter(wl_output#2905) +[2618276.330] {Default Queue} discarded wl_surface#1223.enter(wl_output#2905) +[2618276.334] {Default Queue} discarded wl_surface#1927.enter(wl_output#2905) +[2618276.338] {Default Queue} discarded wl_surface#871.enter(wl_output#2905) +[2618276.342] {Default Queue} discarded wl_surface#1895.enter(wl_output#2905) +[2618276.346] {Default Queue} discarded wl_surface#263.enter(wl_output#2905) +[2618276.352] {Default Queue} discarded wl_surface#551.enter(wl_output#2905) +[2618276.357] {Default Queue} discarded wl_surface#1735.enter(wl_output#2905) +[2618276.362] {Default Queue} discarded wl_surface#1479.enter(wl_output#2905) +[2618276.367] {Default Queue} discarded wl_surface#1772.enter(wl_output#2905) +[2618276.371] {Default Queue} discarded wl_surface#2599.enter(wl_output#2905) +[2618276.376] {Default Queue} discarded wl_surface#2631.enter(wl_output#2905) +[2618276.381] {Default Queue} discarded wl_surface#1959.enter(wl_output#2905) +[2618276.387] {Default Queue} discarded wl_surface#647.enter(wl_output#2905) +[2618276.392] {Default Queue} discarded wl_surface#2055.enter(wl_output#2905) +[2618276.397] {Default Queue} discarded wl_surface#2508.enter(wl_output#2905) +[2618276.402] {Default Queue} discarded wl_surface#71.enter(wl_output#2905) +[2618276.406] {Default Queue} discarded wl_surface#2759.enter(wl_output#2905) +[2618276.415] {Default Queue} discarded wl_surface#2791.enter(wl_output#2905) +[2618276.421] {Default Queue} discarded wl_surface#2183.enter(wl_output#2905) +[2618276.425] {Default Queue} discarded wl_surface#2567.enter(wl_output#2905) +[2618276.429] {Default Queue} discarded wl_surface#839.enter(wl_output#2905) +[2618276.433] {Default Queue} discarded wl_surface#1607.enter(wl_output#2905) +[2618276.437] {Default Queue} discarded wl_surface#1095.enter(wl_output#2905) +[2618276.441] {Default Queue} discarded wl_surface#1383.enter(wl_output#2905) +[2618276.445] {Default Queue} discarded wl_surface#487.enter(wl_output#2905) +[2618276.449] {Default Queue} discarded wl_surface#2311.enter(wl_output#2905) +[2618276.452] {Default Queue} discarded wl_surface#519.enter(wl_output#2905) +[2618276.456] {Default Queue} discarded wl_surface#2087.enter(wl_output#2905) +[2618276.461] {Default Queue} discarded wl_surface#2471.enter(wl_output#2905) +[2618276.465] {Default Queue} discarded wl_surface#295.enter(wl_output#2905) +[2618276.469] {Default Queue} discarded wl_surface#167.enter(wl_output#2905) +[2618276.472] {Default Queue} discarded wl_surface#1255.enter(wl_output#2905) +[2618276.476] {Default Queue} discarded wl_surface#2855.enter(wl_output#2905) +[2618276.481] {Default Queue} discarded wl_surface#679.enter(wl_output#2905) +[2618276.484] {Default Queue} discarded wl_surface#2407.enter(wl_output#2905) +[2618276.488] {Default Queue} discarded wl_surface#2119.enter(wl_output#2905) +[2618276.492] {Default Queue} wl_registry#2918.global(1, "wl_compositor", 6) +[2618276.499] {Default Queue} -> wl_registry#2918.bind(1, "wl_compositor", 1, new id [unknown]#2924) +[2618276.504] {Default Queue} wl_registry#2918.global(2, "wl_subcompositor", 1) +[2618276.509] {Default Queue} -> wl_registry#2918.bind(2, "wl_subcompositor", 1, new id [unknown]#2925) +[2618276.514] {Default Queue} wl_registry#2918.global(3, "xdg_wm_base", 6) +[2618276.519] {Default Queue} -> wl_registry#2918.bind(3, "xdg_wm_base", 1, new id [unknown]#2926) +[2618276.523] {Default Queue} wl_registry#2918.global(6, "zwlr_layer_shell_v1", 5) +[2618276.528] {Default Queue} wl_registry#2918.global(7, "ext_session_lock_manager_v1", 1) +[2618276.533] {Default Queue} wl_registry#2918.global(8, "wl_shm", 2) +[2618276.537] {Default Queue} -> wl_registry#2918.bind(8, "wl_shm", 1, new id [unknown]#2927) +[2618276.542] {Default Queue} -> wl_registry#2918.bind(8, "wl_shm", 1, new id [unknown]#2928) +[2618276.546] {Default Queue} -> wl_registry#2918.bind(8, "wl_shm", 1, new id [unknown]#2929) +[2618276.550] {Default Queue} wl_registry#2918.global(9, "zxdg_output_manager_v1", 3) +[2618276.555] {Default Queue} wl_registry#2918.global(10, "wp_fractional_scale_manager_v1", 1) +[2618276.559] {Default Queue} wl_registry#2918.global(11, "zwp_tablet_manager_v2", 1) +[2618276.565] {Default Queue} wl_registry#2918.global(12, "zwp_pointer_gestures_v1", 3) +[2618276.569] {Default Queue} wl_registry#2918.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618276.573] {Default Queue} -> wl_registry#2918.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2930) +[2618276.578] {Default Queue} wl_registry#2918.global(14, "zwp_pointer_constraints_v1", 1) +[2618276.582] {Default Queue} -> wl_registry#2918.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2931) +[2618276.587] {Default Queue} wl_registry#2918.global(15, "ext_idle_notifier_v1", 2) +[2618276.591] {Default Queue} wl_registry#2918.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618276.596] {Default Queue} wl_registry#2918.global(17, "wl_data_device_manager", 3) +[2618276.601] {Default Queue} -> wl_registry#2918.bind(17, "wl_data_device_manager", 2, new id [unknown]#2932) +[2618276.605] {Default Queue} -> wl_data_device_manager#2932.create_data_source(new id wl_data_source#2933) +[2618276.610] {Default Queue} -> wl_data_source#2933.offer("text/plain") +[2618276.614] {Default Queue} -> wl_data_source#2933.offer("text/plain;charset=utf-8") +[2618276.618] {Default Queue} -> wl_data_source#2933.offer("TEXT") +[2618276.622] {Default Queue} -> wl_data_source#2933.offer("STRING") +[2618276.630] {Default Queue} -> wl_data_source#2933.offer("UTF8_STRING") +[2618276.636] {Default Queue} wl_registry#2918.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618276.641] {Default Queue} -> wl_registry#2918.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2934) +[2618276.649] {Default Queue} -> zwp_primary_selection_device_manager_v1#2934.create_source(new id zwp_primary_selection_source_v1#2935) +[2618276.657] {Default Queue} -> zwp_primary_selection_source_v1#2935.offer("text/plain") +[2618276.661] {Default Queue} -> zwp_primary_selection_source_v1#2935.offer("text/plain;charset=utf-8") +[2618276.665] {Default Queue} -> zwp_primary_selection_source_v1#2935.offer("TEXT") +[2618276.669] {Default Queue} -> zwp_primary_selection_source_v1#2935.offer("STRING") +[2618276.673] {Default Queue} -> zwp_primary_selection_source_v1#2935.offer("UTF8_STRING") +[2618276.677] {Default Queue} wl_registry#2918.global(19, "zwlr_data_control_manager_v1", 2) +[2618276.682] {Default Queue} wl_registry#2918.global(20, "ext_data_control_manager_v1", 1) +[2618276.686] {Default Queue} wl_registry#2918.global(21, "wp_presentation", 2) +[2618276.691] {Default Queue} wl_registry#2918.global(22, "wp_security_context_manager_v1", 1) +[2618276.695] {Default Queue} wl_registry#2918.global(23, "zwp_text_input_manager_v3", 1) +[2618276.700] {Default Queue} wl_registry#2918.global(24, "zwp_input_method_manager_v2", 1) +[2618276.704] {Default Queue} wl_registry#2918.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618276.709] {Default Queue} wl_registry#2918.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618276.713] {Default Queue} wl_registry#2918.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618276.717] {Default Queue} wl_registry#2918.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618276.721] {Default Queue} wl_registry#2918.global(29, "ext_workspace_manager_v1", 1) +[2618276.725] {Default Queue} wl_registry#2918.global(30, "zwlr_output_manager_v1", 4) +[2618276.730] {Default Queue} wl_registry#2918.global(31, "zwlr_screencopy_manager_v1", 3) +[2618276.736] {Default Queue} wl_registry#2918.global(32, "wp_viewporter", 1) +[2618276.740] {Default Queue} wl_registry#2918.global(33, "zxdg_exporter_v2", 1) +[2618276.744] {Default Queue} wl_registry#2918.global(34, "zxdg_importer_v2", 1) +[2618276.749] {Default Queue} wl_registry#2918.global(36, "xdg_activation_v1", 1) +[2618276.753] {Default Queue} wl_registry#2918.global(37, "mutter_x11_interop", 1) +[2618276.757] {Default Queue} wl_registry#2918.global(38, "wl_seat", 9) +[2618276.762] {Default Queue} -> wl_registry#2918.bind(38, "wl_seat", 1, new id [unknown]#2936) +[2618276.766] {Default Queue} wl_registry#2918.global(39, "wp_cursor_shape_manager_v1", 2) +[2618276.771] {Default Queue} wl_registry#2918.global(40, "wl_output", 4) +[2618276.775] {Default Queue} -> wl_registry#2918.bind(40, "wl_output", 1, new id [unknown]#2937) +[2618276.780] {Default Queue} wl_callback#2919.done(0) +[2618276.784] {Default Queue} discarded wl_surface#2887.enter(wl_output#18) +[2618276.789] {Default Queue} discarded wl_surface#2887.enter(wl_output#57) +[2618276.793] {Default Queue} discarded wl_surface#2887.enter(wl_output#89) +[2618276.797] {Default Queue} discarded wl_surface#2887.enter(wl_output#121) +[2618276.801] {Default Queue} discarded wl_surface#2887.enter(wl_output#153) +[2618276.805] {Default Queue} discarded wl_surface#2887.enter(wl_output#185) +[2618276.809] {Default Queue} discarded wl_surface#2887.enter(wl_output#217) +[2618276.813] {Default Queue} discarded wl_surface#2887.enter(wl_output#249) +[2618276.817] {Default Queue} discarded wl_surface#2887.enter(wl_output#281) +[2618276.821] {Default Queue} discarded wl_surface#2887.enter(wl_output#313) +[2618276.825] {Default Queue} discarded wl_surface#2887.enter(wl_output#345) +[2618276.829] {Default Queue} discarded wl_surface#2887.enter(wl_output#377) +[2618276.832] {Default Queue} discarded wl_surface#2887.enter(wl_output#409) +[2618276.836] {Default Queue} discarded wl_surface#2887.enter(wl_output#441) +[2618276.844] {Default Queue} discarded wl_surface#2887.enter(wl_output#473) +[2618276.849] {Default Queue} discarded wl_surface#2887.enter(wl_output#505) +[2618276.853] {Default Queue} discarded wl_surface#2887.enter(wl_output#537) +[2618276.857] {Default Queue} discarded wl_surface#2887.enter(wl_output#569) +[2618276.871] {Default Queue} discarded wl_surface#2887.enter(wl_output#601) +[2618276.876] {Default Queue} discarded wl_surface#2887.enter(wl_output#633) +[2618276.880] {Default Queue} discarded wl_surface#2887.enter(wl_output#665) +[2618276.884] {Default Queue} discarded wl_surface#2887.enter(wl_output#697) +[2618276.887] {Default Queue} discarded wl_surface#2887.enter(wl_output#729) +[2618276.891] {Default Queue} discarded wl_surface#2887.enter(wl_output#761) +[2618276.895] {Default Queue} discarded wl_surface#2887.enter(wl_output#793) +[2618276.900] {Default Queue} discarded wl_surface#2887.enter(wl_output#825) +[2618276.904] {Default Queue} discarded wl_surface#2887.enter(wl_output#857) +[2618276.908] {Default Queue} discarded wl_surface#2887.enter(wl_output#889) +[2618276.911] {Default Queue} discarded wl_surface#2887.enter(wl_output#921) +[2618276.915] {Default Queue} discarded wl_surface#2887.enter(wl_output#953) +[2618276.920] {Default Queue} discarded wl_surface#2887.enter(wl_output#985) +[2618276.924] {Default Queue} discarded wl_surface#2887.enter(wl_output#1017) +[2618276.928] {Default Queue} discarded wl_surface#2887.enter(wl_output#1049) +[2618276.932] {Default Queue} discarded wl_surface#2887.enter(wl_output#1081) +[2618276.936] {Default Queue} discarded wl_surface#2887.enter(wl_output#1113) +[2618276.940] {Default Queue} discarded wl_surface#2887.enter(wl_output#1145) +[2618276.943] {Default Queue} discarded wl_surface#2887.enter(wl_output#1177) +[2618276.947] {Default Queue} discarded wl_surface#2887.enter(wl_output#1209) +[2618276.951] {Default Queue} discarded wl_surface#2887.enter(wl_output#1241) +[2618276.955] {Default Queue} discarded wl_surface#2887.enter(wl_output#1273) +[2618276.961] {Default Queue} discarded wl_surface#2887.enter(wl_output#1305) +[2618276.965] {Default Queue} discarded wl_surface#2887.enter(wl_output#1337) +[2618276.969] {Default Queue} discarded wl_surface#2887.enter(wl_output#1369) +[2618276.973] {Default Queue} discarded wl_surface#2887.enter(wl_output#1401) +[2618276.977] {Default Queue} discarded wl_surface#2887.enter(wl_output#1433) +[2618276.981] {Default Queue} discarded wl_surface#2887.enter(wl_output#1465) +[2618276.985] {Default Queue} discarded wl_surface#2887.enter(wl_output#1497) +[2618276.990] {Default Queue} discarded wl_surface#2887.enter(wl_output#1529) +[2618276.994] {Default Queue} discarded wl_surface#2887.enter(wl_output#1561) +[2618276.998] {Default Queue} discarded wl_surface#2887.enter(wl_output#1593) +[2618277.002] {Default Queue} discarded wl_surface#2887.enter(wl_output#1625) +[2618277.006] {Default Queue} discarded wl_surface#2887.enter(wl_output#1657) +[2618277.010] {Default Queue} discarded wl_surface#2887.enter(wl_output#1689) +[2618277.014] {Default Queue} discarded wl_surface#2887.enter(wl_output#1721) +[2618277.018] {Default Queue} discarded wl_surface#2887.enter(wl_output#1753) +[2618277.022] {Default Queue} discarded wl_surface#2887.enter(wl_output#1785) +[2618277.026] {Default Queue} discarded wl_surface#2887.enter(wl_output#1817) +[2618277.031] {Default Queue} discarded wl_surface#2887.enter(wl_output#1849) +[2618277.035] {Default Queue} discarded wl_surface#2887.enter(wl_output#1881) +[2618277.039] {Default Queue} discarded wl_surface#2887.enter(wl_output#1913) +[2618277.043] {Default Queue} discarded wl_surface#2887.enter(wl_output#1945) +[2618277.047] {Default Queue} discarded wl_surface#2887.enter(wl_output#1977) +[2618277.051] {Default Queue} discarded wl_surface#2887.enter(wl_output#2009) +[2618277.056] {Default Queue} discarded wl_surface#2887.enter(wl_output#2041) +[2618277.060] {Default Queue} discarded wl_surface#2887.enter(wl_output#2073) +[2618277.064] {Default Queue} discarded wl_surface#2887.enter(wl_output#2105) +[2618277.069] {Default Queue} discarded wl_surface#2887.enter(wl_output#2137) +[2618277.075] {Default Queue} discarded wl_surface#2887.enter(wl_output#2169) +[2618277.081] {Default Queue} discarded wl_surface#2887.enter(wl_output#2201) +[2618277.085] {Default Queue} discarded wl_surface#2887.enter(wl_output#2233) +[2618277.089] {Default Queue} discarded wl_surface#2887.enter(wl_output#2265) +[2618277.093] {Default Queue} discarded wl_surface#2887.enter(wl_output#2297) +[2618277.097] {Default Queue} discarded wl_surface#2887.enter(wl_output#2329) +[2618277.101] {Default Queue} discarded wl_surface#2887.enter(wl_output#2361) +[2618277.105] {Default Queue} discarded wl_surface#2887.enter(wl_output#2393) +[2618277.109] {Default Queue} discarded wl_surface#2887.enter(wl_output#2425) +[2618277.113] {Default Queue} discarded wl_surface#2887.enter(wl_output#2457) +[2618277.117] {Default Queue} discarded wl_surface#2887.enter(wl_output#2489) +[2618277.120] {Default Queue} discarded wl_surface#2887.enter(wl_output#2521) +[2618277.124] {Default Queue} discarded wl_surface#2887.enter(wl_output#2553) +[2618277.129] {Default Queue} discarded wl_surface#2887.enter(wl_output#2585) +[2618277.133] {Default Queue} discarded wl_surface#2887.enter(wl_output#2617) +[2618277.137] {Default Queue} discarded wl_surface#2887.enter(wl_output#2649) +[2618277.141] {Default Queue} discarded wl_surface#2887.enter(wl_output#2681) +[2618277.145] {Default Queue} discarded wl_surface#2887.enter(wl_output#2713) +[2618277.150] {Default Queue} -> wl_compositor#2860.create_surface(new id wl_surface#2919) +[2618277.154] {Default Queue} -> wl_subcompositor#2925.get_subsurface(new id wl_subsurface#2938, wl_surface#2919, wl_surface#2855) +[2618277.163] {Default Queue} -> wl_subsurface#2938.set_desync() +[2618277.167] {Default Queue} -> wl_subsurface#2938.set_position(0, 0) +[2618277.172] {Default Queue} -> wl_subsurface#2938.place_above(wl_surface#2855) +[2618277.222] {Default Queue} -> wl_shm#2927.create_pool(new id wl_shm_pool#2939, fd 464, 16) +[2618277.230] {Default Queue} -> wl_shm#2927.create_pool(new id wl_shm_pool#2940, fd 465, 16) +[2618277.235] {Default Queue} -> wl_shm_pool#2939.create_buffer(new id wl_buffer#2941, 0, 2, 2, 8, 0) +[2618277.240] {Default Queue} -> wl_shm_pool#2940.create_buffer(new id wl_buffer#2942, 0, 2, 2, 8, 0) +[2618277.248] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) +[2618277.253] {Default Queue} -> wl_surface#2919.commit() +[2618277.259] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) +[2618277.263] {Default Queue} -> wl_surface#2919.commit() +[2618277.267] {Default Queue} -> wl_compositor#2924.create_region(new id wl_region#2943) +[2618277.272] {Default Queue} -> wl_compositor#2924.create_region(new id wl_region#2944) +[2618277.276] {Default Queue} -> wl_region#2943.subtract(0, 0, 2, 2) +[2618277.281] {Default Queue} -> wl_region#2943.add(0, 0, 0, 0) +[2618277.285] {Default Queue} -> wl_surface#2919.set_opaque_region(wl_region#2944) +[2618277.289] {Default Queue} -> wl_surface#2919.set_input_region(wl_region#2943) +[2618277.294] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) +[2618277.298] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) +[2618277.306] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) +[2618277.311] {Default Queue} -> wl_surface#2919.commit() +[2618277.344] {Default Queue} -> wl_shm#2929.create_pool(new id wl_shm_pool#2945, fd 468, 640) +[2618277.351] {Default Queue} -> wl_shm#2929.create_pool(new id wl_shm_pool#2946, fd 469, 640) +[2618277.356] {Default Queue} -> wl_shm_pool#2945.create_buffer(new id wl_buffer#2947, 0, 10, 16, 40, 0) +[2618277.361] {Default Queue} -> wl_shm_pool#2946.create_buffer(new id wl_buffer#2948, 0, 10, 16, 40, 0) +[2618277.368] {Default Queue} -> wl_compositor#2924.create_surface(new id wl_surface#2949) +[2618277.372] {Default Queue} -> wl_surface#2949.attach(wl_buffer#2947, 0, 0) +[2618277.377] {Default Queue} -> wl_surface#2949.commit() +[2618277.382] {Default Queue} -> wl_surface#2949.attach(wl_buffer#2947, 0, 0) +[2618277.386] {Default Queue} -> wl_surface#2949.commit() +[2618277.394] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) +[2618277.404] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2950) +[2618277.409] {Default Queue} -> wl_display#1.sync(new id wl_callback#2951) +[2618280.393] {Default Queue} discarded wl_surface#2887.enter(wl_output#2745) +[2618280.407] {Default Queue} discarded wl_surface#2887.enter(wl_output#2777) +[2618280.413] {Default Queue} discarded wl_surface#2887.enter(wl_output#2809) +[2618280.419] {Default Queue} discarded wl_surface#2887.enter(wl_output#2841) +[2618280.424] {Default Queue} discarded wl_surface#2887.enter(wl_output#2873) +[2618280.430] {Default Queue} discarded wl_surface#2887.enter(wl_output#2905) +[2618280.795] {Display Queue} wl_display#1.delete_id(2951) +[2618280.807] {Default Queue} wl_keyboard#2920.keymap(1, fd 464, 68213) +[2618280.814] {Default Queue} wl_keyboard#2920.enter(566, wl_surface#19, array[0]) +[2618280.821] {Default Queue} wl_keyboard#2920.modifiers(566, 0, 0, 16, 0) +[2618280.828] {Default Queue} discarded wl_shm#2927.format(875709016) +[2618280.833] {Default Queue} discarded wl_shm#2927.format(1) +[2618280.839] {Default Queue} discarded wl_shm#2927.format(0) +[2618280.844] {Default Queue} discarded wl_shm#2927.format(875708993) +[2618280.850] {Default Queue} discarded wl_shm#2928.format(875709016) +[2618280.855] {Default Queue} discarded wl_shm#2928.format(1) +[2618280.867] {Default Queue} discarded wl_shm#2928.format(0) +[2618280.873] {Default Queue} discarded wl_shm#2928.format(875708993) +[2618280.878] {Default Queue} discarded wl_shm#2929.format(875709016) +[2618280.883] {Default Queue} discarded wl_shm#2929.format(1) +[2618280.889] {Default Queue} discarded wl_shm#2929.format(0) +[2618280.893] {Default Queue} discarded wl_shm#2929.format(875708993) +[2618280.898] {Default Queue} wl_seat#2936.capabilities(7) +[2618280.904] {Default Queue} -> wl_seat#2936.get_keyboard(new id wl_keyboard#2952) +[2618280.911] {Default Queue} -> wl_seat#2936.get_pointer(new id wl_pointer#2953) +[2618280.917] {Default Queue} -> wl_data_device_manager#2932.get_data_device(new id wl_data_device#2954, wl_seat#2936) +[2618280.924] {Default Queue} -> zwp_primary_selection_device_manager_v1#2934.get_device(new id zwp_primary_selection_device_v1#2955, wl_seat#2936) +[2618280.935] {Default Queue} wl_output#2937.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618280.942] {Default Queue} wl_output#2937.mode(3, 1280, 800, 60000) +[2618280.948] {Default Queue} discarded wl_surface#2727.enter(wl_output#2937) +[2618280.953] {Default Queue} discarded wl_surface#3.enter(wl_output#2937) +[2618280.959] {Default Queue} discarded wl_surface#999.enter(wl_output#2937) +[2618280.964] {Default Queue} discarded wl_surface#1191.enter(wl_output#2937) +[2618280.970] {Default Queue} discarded wl_surface#1159.enter(wl_output#2937) +[2618280.975] {Default Queue} discarded wl_surface#1703.enter(wl_output#2937) +[2618280.980] {Default Queue} discarded wl_surface#2215.enter(wl_output#2937) +[2618280.986] {Default Queue} discarded wl_surface#423.enter(wl_output#2937) +[2618280.991] {Default Queue} discarded wl_surface#1447.enter(wl_output#2937) +[2618280.997] {Default Queue} discarded wl_surface#2023.enter(wl_output#2937) +[2618281.002] {Default Queue} discarded wl_surface#1639.enter(wl_output#2937) +[2618281.008] {Default Queue} discarded wl_surface#1319.enter(wl_output#2937) +[2618281.013] {Default Queue} discarded wl_surface#1127.enter(wl_output#2937) +[2618281.019] {Default Queue} discarded wl_surface#2151.enter(wl_output#2937) +[2618281.024] {Default Queue} discarded wl_surface#2375.enter(wl_output#2937) +[2618281.030] {Default Queue} discarded wl_surface#2695.enter(wl_output#2937) +[2618281.035] {Default Queue} discarded wl_surface#1063.enter(wl_output#2937) +[2618281.041] {Default Queue} discarded wl_surface#455.enter(wl_output#2937) +[2618281.046] {Default Queue} discarded wl_surface#1575.enter(wl_output#2937) +[2618281.052] {Default Queue} discarded wl_surface#1799.enter(wl_output#2937) +[2618281.057] {Default Queue} discarded wl_surface#1415.enter(wl_output#2937) +[2618281.062] {Default Queue} discarded wl_surface#2439.enter(wl_output#2937) +[2618281.074] {Default Queue} discarded wl_surface#2279.enter(wl_output#2937) +[2618281.084] {Default Queue} discarded wl_surface#1831.enter(wl_output#2937) +[2618281.089] {Default Queue} discarded wl_surface#903.enter(wl_output#2937) +[2618281.095] {Default Queue} discarded wl_surface#2663.enter(wl_output#2937) +[2618281.100] {Default Queue} discarded wl_surface#775.enter(wl_output#2937) +[2618281.106] {Default Queue} discarded wl_surface#1991.enter(wl_output#2937) +[2618281.111] {Default Queue} discarded wl_surface#1543.enter(wl_output#2937) +[2618281.117] {Default Queue} discarded wl_surface#135.enter(wl_output#2937) +[2618281.122] {Default Queue} discarded wl_surface#1287.enter(wl_output#2937) +[2618281.127] {Default Queue} discarded wl_surface#1031.enter(wl_output#2937) +[2618281.132] {Default Queue} discarded wl_surface#615.enter(wl_output#2937) +[2618281.138] {Default Queue} discarded wl_surface#231.enter(wl_output#2937) +[2618281.143] {Default Queue} discarded wl_surface#2343.enter(wl_output#2937) +[2618281.148] {Default Queue} discarded wl_surface#1863.enter(wl_output#2937) +[2618281.153] {Default Queue} discarded wl_surface#359.enter(wl_output#2937) +[2618281.158] {Default Queue} discarded wl_surface#583.enter(wl_output#2937) +[2618281.164] {Default Queue} discarded wl_surface#743.enter(wl_output#2937) +[2618281.168] {Default Queue} discarded wl_surface#2535.enter(wl_output#2937) +[2618281.174] {Default Queue} discarded wl_surface#967.enter(wl_output#2937) +[2618281.179] {Default Queue} discarded wl_surface#103.enter(wl_output#2937) +[2618281.184] {Default Queue} discarded wl_surface#327.enter(wl_output#2937) +[2618281.189] {Default Queue} discarded wl_surface#43.enter(wl_output#2937) +[2618281.195] {Default Queue} discarded wl_surface#2247.enter(wl_output#2937) +[2618281.199] {Default Queue} discarded wl_surface#807.enter(wl_output#2937) +[2618281.205] {Default Queue} discarded wl_surface#19.enter(wl_output#2937) +[2618281.210] {Default Queue} discarded wl_surface#1511.enter(wl_output#2937) +[2618281.215] {Default Queue} discarded wl_surface#199.enter(wl_output#2937) +[2618281.220] {Default Queue} discarded wl_surface#391.enter(wl_output#2937) +[2618281.225] {Default Queue} discarded wl_surface#935.enter(wl_output#2937) +[2618281.230] {Default Queue} discarded wl_surface#2823.enter(wl_output#2937) +[2618281.236] {Default Queue} discarded wl_surface#1671.enter(wl_output#2937) +[2618281.241] {Default Queue} discarded wl_surface#1351.enter(wl_output#2937) +[2618281.246] {Default Queue} discarded wl_surface#711.enter(wl_output#2937) +[2618281.251] {Default Queue} discarded wl_surface#1223.enter(wl_output#2937) +[2618281.256] {Default Queue} discarded wl_surface#1927.enter(wl_output#2937) +[2618281.262] {Default Queue} discarded wl_surface#871.enter(wl_output#2937) +[2618281.267] {Default Queue} discarded wl_surface#1895.enter(wl_output#2937) +[2618281.272] {Default Queue} discarded wl_surface#263.enter(wl_output#2937) +[2618281.277] {Default Queue} discarded wl_surface#551.enter(wl_output#2937) +[2618281.283] {Default Queue} discarded wl_surface#1735.enter(wl_output#2937) +[2618281.288] {Default Queue} discarded wl_surface#1479.enter(wl_output#2937) +[2618281.293] {Default Queue} discarded wl_surface#1772.enter(wl_output#2937) +[2618281.299] {Default Queue} discarded wl_surface#2599.enter(wl_output#2937) +[2618281.303] {Default Queue} discarded wl_surface#2631.enter(wl_output#2937) +[2618281.307] {Default Queue} discarded wl_surface#1959.enter(wl_output#2937) +[2618281.311] {Default Queue} discarded wl_surface#647.enter(wl_output#2937) +[2618281.315] {Default Queue} discarded wl_surface#2055.enter(wl_output#2937) +[2618281.318] {Default Queue} discarded wl_surface#2508.enter(wl_output#2937) +[2618281.323] {Default Queue} discarded wl_surface#71.enter(wl_output#2937) +[2618281.327] {Default Queue} discarded wl_surface#2759.enter(wl_output#2937) +[2618281.331] {Default Queue} discarded wl_surface#2791.enter(wl_output#2937) +[2618281.335] {Default Queue} discarded wl_surface#2887.enter(wl_output#2937) +[2618281.339] {Default Queue} discarded wl_surface#2183.enter(wl_output#2937) +[2618281.347] {Default Queue} discarded wl_surface#2567.enter(wl_output#2937) +[2618281.353] {Default Queue} discarded wl_surface#839.enter(wl_output#2937) +[2618281.357] {Default Queue} discarded wl_surface#1607.enter(wl_output#2937) +[2618281.361] {Default Queue} discarded wl_surface#1095.enter(wl_output#2937) +[2618281.365] {Default Queue} discarded wl_surface#1383.enter(wl_output#2937) +[2618281.369] {Default Queue} discarded wl_surface#487.enter(wl_output#2937) +[2618281.373] {Default Queue} discarded wl_surface#2311.enter(wl_output#2937) +[2618281.376] {Default Queue} discarded wl_surface#519.enter(wl_output#2937) +[2618281.380] {Default Queue} discarded wl_surface#2087.enter(wl_output#2937) +[2618281.384] {Default Queue} discarded wl_surface#2471.enter(wl_output#2937) +[2618281.388] {Default Queue} discarded wl_surface#295.enter(wl_output#2937) +[2618281.392] {Default Queue} discarded wl_surface#167.enter(wl_output#2937) +[2618281.396] {Default Queue} discarded wl_surface#1255.enter(wl_output#2937) +[2618281.400] {Default Queue} discarded wl_surface#2855.enter(wl_output#2937) +[2618281.404] {Default Queue} discarded wl_surface#679.enter(wl_output#2937) +[2618281.408] {Default Queue} discarded wl_surface#2407.enter(wl_output#2937) +[2618281.412] {Default Queue} discarded wl_surface#2119.enter(wl_output#2937) +[2618281.416] {Default Queue} wl_registry#2950.global(1, "wl_compositor", 6) +[2618281.422] {Default Queue} -> wl_registry#2950.bind(1, "wl_compositor", 1, new id [unknown]#2956) +[2618281.427] {Default Queue} wl_registry#2950.global(2, "wl_subcompositor", 1) +[2618281.432] {Default Queue} -> wl_registry#2950.bind(2, "wl_subcompositor", 1, new id [unknown]#2957) +[2618281.437] {Default Queue} wl_registry#2950.global(3, "xdg_wm_base", 6) +[2618281.442] {Default Queue} -> wl_registry#2950.bind(3, "xdg_wm_base", 1, new id [unknown]#2958) +[2618281.446] {Default Queue} wl_registry#2950.global(6, "zwlr_layer_shell_v1", 5) +[2618281.451] {Default Queue} wl_registry#2950.global(7, "ext_session_lock_manager_v1", 1) +[2618281.456] {Default Queue} wl_registry#2950.global(8, "wl_shm", 2) +[2618281.461] {Default Queue} -> wl_registry#2950.bind(8, "wl_shm", 1, new id [unknown]#2959) +[2618281.465] {Default Queue} -> wl_registry#2950.bind(8, "wl_shm", 1, new id [unknown]#2960) +[2618281.469] {Default Queue} -> wl_registry#2950.bind(8, "wl_shm", 1, new id [unknown]#2961) +[2618281.474] {Default Queue} wl_registry#2950.global(9, "zxdg_output_manager_v1", 3) +[2618281.478] {Default Queue} wl_registry#2950.global(10, "wp_fractional_scale_manager_v1", 1) +[2618281.483] {Default Queue} wl_registry#2950.global(11, "zwp_tablet_manager_v2", 1) +[2618281.487] {Default Queue} wl_registry#2950.global(12, "zwp_pointer_gestures_v1", 3) +[2618281.494] {Default Queue} wl_registry#2950.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618281.499] {Default Queue} -> wl_registry#2950.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2962) +[2618281.503] {Default Queue} wl_registry#2950.global(14, "zwp_pointer_constraints_v1", 1) +[2618281.508] {Default Queue} -> wl_registry#2950.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2963) +[2618281.512] {Default Queue} wl_registry#2950.global(15, "ext_idle_notifier_v1", 2) +[2618281.517] {Default Queue} wl_registry#2950.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618281.521] {Default Queue} wl_registry#2950.global(17, "wl_data_device_manager", 3) +[2618281.526] {Default Queue} -> wl_registry#2950.bind(17, "wl_data_device_manager", 2, new id [unknown]#2964) +[2618281.531] {Default Queue} -> wl_data_device_manager#2964.create_data_source(new id wl_data_source#2965) +[2618281.535] {Default Queue} -> wl_data_source#2965.offer("text/plain") +[2618281.539] {Default Queue} -> wl_data_source#2965.offer("text/plain;charset=utf-8") +[2618281.543] {Default Queue} -> wl_data_source#2965.offer("TEXT") +[2618281.548] {Default Queue} -> wl_data_source#2965.offer("STRING") +[2618281.552] {Default Queue} -> wl_data_source#2965.offer("UTF8_STRING") +[2618281.559] {Default Queue} wl_registry#2950.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618281.565] {Default Queue} -> wl_registry#2950.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2966) +[2618281.573] {Default Queue} -> zwp_primary_selection_device_manager_v1#2966.create_source(new id zwp_primary_selection_source_v1#2967) +[2618281.580] {Default Queue} -> zwp_primary_selection_source_v1#2967.offer("text/plain") +[2618281.585] {Default Queue} -> zwp_primary_selection_source_v1#2967.offer("text/plain;charset=utf-8") +[2618281.589] {Default Queue} -> zwp_primary_selection_source_v1#2967.offer("TEXT") +[2618281.593] {Default Queue} -> zwp_primary_selection_source_v1#2967.offer("STRING") +[2618281.597] {Default Queue} -> zwp_primary_selection_source_v1#2967.offer("UTF8_STRING") +[2618281.601] {Default Queue} wl_registry#2950.global(19, "zwlr_data_control_manager_v1", 2) +[2618281.605] {Default Queue} wl_registry#2950.global(20, "ext_data_control_manager_v1", 1) +[2618281.610] {Default Queue} wl_registry#2950.global(21, "wp_presentation", 2) +[2618281.615] {Default Queue} wl_registry#2950.global(22, "wp_security_context_manager_v1", 1) +[2618281.619] {Default Queue} wl_registry#2950.global(23, "zwp_text_input_manager_v3", 1) +[2618281.623] {Default Queue} wl_registry#2950.global(24, "zwp_input_method_manager_v2", 1) +[2618281.627] {Default Queue} wl_registry#2950.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618281.632] {Default Queue} wl_registry#2950.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618281.636] {Default Queue} wl_registry#2950.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618281.640] {Default Queue} wl_registry#2950.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618281.645] {Default Queue} wl_registry#2950.global(29, "ext_workspace_manager_v1", 1) +[2618281.649] {Default Queue} wl_registry#2950.global(30, "zwlr_output_manager_v1", 4) +[2618281.654] {Default Queue} wl_registry#2950.global(31, "zwlr_screencopy_manager_v1", 3) +[2618281.658] {Default Queue} wl_registry#2950.global(32, "wp_viewporter", 1) +[2618281.664] {Default Queue} wl_registry#2950.global(33, "zxdg_exporter_v2", 1) +[2618281.668] {Default Queue} wl_registry#2950.global(34, "zxdg_importer_v2", 1) +[2618281.672] {Default Queue} wl_registry#2950.global(36, "xdg_activation_v1", 1) +[2618281.676] {Default Queue} wl_registry#2950.global(37, "mutter_x11_interop", 1) +[2618281.681] {Default Queue} wl_registry#2950.global(38, "wl_seat", 9) +[2618281.685] {Default Queue} -> wl_registry#2950.bind(38, "wl_seat", 1, new id [unknown]#2968) +[2618281.690] {Default Queue} wl_registry#2950.global(39, "wp_cursor_shape_manager_v1", 2) +[2618281.694] {Default Queue} wl_registry#2950.global(40, "wl_output", 4) +[2618281.699] {Default Queue} -> wl_registry#2950.bind(40, "wl_output", 1, new id [unknown]#2969) +[2618281.703] {Default Queue} wl_callback#2951.done(0) +[2618281.707] {Default Queue} discarded wl_surface#2919.enter(wl_output#18) +[2618281.712] {Default Queue} discarded wl_surface#2919.enter(wl_output#57) +[2618281.716] {Default Queue} discarded wl_surface#2919.enter(wl_output#89) +[2618281.720] {Default Queue} discarded wl_surface#2919.enter(wl_output#121) +[2618281.724] {Default Queue} discarded wl_surface#2919.enter(wl_output#153) +[2618281.728] {Default Queue} discarded wl_surface#2919.enter(wl_output#185) +[2618281.732] {Default Queue} discarded wl_surface#2919.enter(wl_output#217) +[2618281.736] {Default Queue} discarded wl_surface#2919.enter(wl_output#249) +[2618281.740] {Default Queue} discarded wl_surface#2919.enter(wl_output#281) +[2618281.744] {Default Queue} discarded wl_surface#2919.enter(wl_output#313) +[2618281.748] {Default Queue} discarded wl_surface#2919.enter(wl_output#345) +[2618281.752] {Default Queue} discarded wl_surface#2919.enter(wl_output#377) +[2618281.756] {Default Queue} discarded wl_surface#2919.enter(wl_output#409) +[2618281.759] {Default Queue} discarded wl_surface#2919.enter(wl_output#441) +[2618281.763] {Default Queue} discarded wl_surface#2919.enter(wl_output#473) +[2618281.767] {Default Queue} discarded wl_surface#2919.enter(wl_output#505) +[2618281.774] {Default Queue} discarded wl_surface#2919.enter(wl_output#537) +[2618281.779] {Default Queue} discarded wl_surface#2919.enter(wl_output#569) +[2618281.783] {Default Queue} discarded wl_surface#2919.enter(wl_output#601) +[2618281.787] {Default Queue} discarded wl_surface#2919.enter(wl_output#633) +[2618281.791] {Default Queue} discarded wl_surface#2919.enter(wl_output#665) +[2618281.796] {Default Queue} discarded wl_surface#2919.enter(wl_output#697) +[2618281.800] {Default Queue} discarded wl_surface#2919.enter(wl_output#729) +[2618281.803] {Default Queue} discarded wl_surface#2919.enter(wl_output#761) +[2618281.807] {Default Queue} discarded wl_surface#2919.enter(wl_output#793) +[2618281.811] {Default Queue} discarded wl_surface#2919.enter(wl_output#825) +[2618281.815] {Default Queue} discarded wl_surface#2919.enter(wl_output#857) +[2618281.819] {Default Queue} discarded wl_surface#2919.enter(wl_output#889) +[2618281.823] {Default Queue} discarded wl_surface#2919.enter(wl_output#921) +[2618281.827] {Default Queue} discarded wl_surface#2919.enter(wl_output#953) +[2618281.831] {Default Queue} discarded wl_surface#2919.enter(wl_output#985) +[2618281.835] {Default Queue} discarded wl_surface#2919.enter(wl_output#1017) +[2618281.839] {Default Queue} discarded wl_surface#2919.enter(wl_output#1049) +[2618281.843] {Default Queue} discarded wl_surface#2919.enter(wl_output#1081) +[2618281.847] {Default Queue} discarded wl_surface#2919.enter(wl_output#1113) +[2618281.851] {Default Queue} discarded wl_surface#2919.enter(wl_output#1145) +[2618281.855] {Default Queue} discarded wl_surface#2919.enter(wl_output#1177) +[2618281.860] {Default Queue} discarded wl_surface#2919.enter(wl_output#1209) +[2618281.872] {Default Queue} discarded wl_surface#2919.enter(wl_output#1241) +[2618281.877] {Default Queue} discarded wl_surface#2919.enter(wl_output#1273) +[2618281.883] {Default Queue} discarded wl_surface#2919.enter(wl_output#1305) +[2618281.888] {Default Queue} discarded wl_surface#2919.enter(wl_output#1337) +[2618281.894] {Default Queue} discarded wl_surface#2919.enter(wl_output#1369) +[2618281.900] {Default Queue} discarded wl_surface#2919.enter(wl_output#1401) +[2618281.905] {Default Queue} discarded wl_surface#2919.enter(wl_output#1433) +[2618281.910] {Default Queue} discarded wl_surface#2919.enter(wl_output#1465) +[2618281.914] {Default Queue} discarded wl_surface#2919.enter(wl_output#1497) +[2618281.918] {Default Queue} discarded wl_surface#2919.enter(wl_output#1529) +[2618281.922] {Default Queue} discarded wl_surface#2919.enter(wl_output#1561) +[2618281.926] {Default Queue} discarded wl_surface#2919.enter(wl_output#1593) +[2618281.930] {Default Queue} discarded wl_surface#2919.enter(wl_output#1625) +[2618281.934] {Default Queue} discarded wl_surface#2919.enter(wl_output#1657) +[2618281.939] {Default Queue} discarded wl_surface#2919.enter(wl_output#1689) +[2618281.943] {Default Queue} discarded wl_surface#2919.enter(wl_output#1721) +[2618281.947] {Default Queue} discarded wl_surface#2919.enter(wl_output#1753) +[2618281.951] {Default Queue} discarded wl_surface#2919.enter(wl_output#1785) +[2618281.955] {Default Queue} discarded wl_surface#2919.enter(wl_output#1817) +[2618281.959] {Default Queue} discarded wl_surface#2919.enter(wl_output#1849) +[2618281.963] {Default Queue} discarded wl_surface#2919.enter(wl_output#1881) +[2618281.968] {Default Queue} discarded wl_surface#2919.enter(wl_output#1913) +[2618281.972] {Default Queue} discarded wl_surface#2919.enter(wl_output#1945) +[2618281.976] {Default Queue} discarded wl_surface#2919.enter(wl_output#1977) +[2618281.980] {Default Queue} discarded wl_surface#2919.enter(wl_output#2009) +[2618281.984] {Default Queue} discarded wl_surface#2919.enter(wl_output#2041) +[2618281.989] {Default Queue} discarded wl_surface#2919.enter(wl_output#2073) +[2618281.993] {Default Queue} discarded wl_surface#2919.enter(wl_output#2105) +[2618281.997] {Default Queue} discarded wl_surface#2919.enter(wl_output#2137) +[2618282.000] {Default Queue} discarded wl_surface#2919.enter(wl_output#2169) +[2618282.008] {Default Queue} discarded wl_surface#2919.enter(wl_output#2201) +[2618282.013] {Default Queue} discarded wl_surface#2919.enter(wl_output#2233) +[2618282.018] {Default Queue} discarded wl_surface#2919.enter(wl_output#2265) +[2618282.021] {Default Queue} discarded wl_surface#2919.enter(wl_output#2297) +[2618282.025] {Default Queue} discarded wl_surface#2919.enter(wl_output#2329) +[2618282.029] {Default Queue} discarded wl_surface#2919.enter(wl_output#2361) +[2618282.033] {Default Queue} discarded wl_surface#2919.enter(wl_output#2393) +[2618282.037] {Default Queue} discarded wl_surface#2919.enter(wl_output#2425) +[2618282.042] {Default Queue} discarded wl_surface#2919.enter(wl_output#2457) +[2618282.046] {Default Queue} discarded wl_surface#2919.enter(wl_output#2489) +[2618282.050] {Default Queue} discarded wl_surface#2919.enter(wl_output#2521) +[2618282.054] {Default Queue} discarded wl_surface#2919.enter(wl_output#2553) +[2618282.058] {Default Queue} discarded wl_surface#2919.enter(wl_output#2585) +[2618282.061] {Default Queue} discarded wl_surface#2919.enter(wl_output#2617) +[2618282.065] {Default Queue} discarded wl_surface#2919.enter(wl_output#2649) +[2618282.069] {Default Queue} discarded wl_surface#2919.enter(wl_output#2681) +[2618282.074] {Default Queue} -> wl_compositor#2924.create_surface(new id wl_surface#2951) +[2618282.078] {Default Queue} -> wl_subcompositor#2957.get_subsurface(new id wl_subsurface#2970, wl_surface#2951, wl_surface#2919) +[2618282.087] {Default Queue} -> wl_subsurface#2970.set_desync() +[2618282.091] {Default Queue} -> wl_subsurface#2970.set_position(0, 0) +[2618282.097] {Default Queue} -> wl_subsurface#2970.place_above(wl_surface#2919) +[2618282.145] {Default Queue} -> wl_shm#2959.create_pool(new id wl_shm_pool#2971, fd 469, 16) +[2618282.152] {Default Queue} -> wl_shm#2959.create_pool(new id wl_shm_pool#2972, fd 470, 16) +[2618282.157] {Default Queue} -> wl_shm_pool#2971.create_buffer(new id wl_buffer#2973, 0, 2, 2, 8, 0) +[2618282.162] {Default Queue} -> wl_shm_pool#2972.create_buffer(new id wl_buffer#2974, 0, 2, 2, 8, 0) +[2618282.170] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) +[2618282.175] {Default Queue} -> wl_surface#2951.commit() +[2618282.180] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) +[2618282.185] {Default Queue} -> wl_surface#2951.commit() +[2618282.189] {Default Queue} -> wl_compositor#2956.create_region(new id wl_region#2975) +[2618282.193] {Default Queue} -> wl_compositor#2956.create_region(new id wl_region#2976) +[2618282.197] {Default Queue} -> wl_region#2975.subtract(0, 0, 2, 2) +[2618282.202] {Default Queue} -> wl_region#2975.add(0, 0, 0, 0) +[2618282.206] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618282.210] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618282.214] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) +[2618282.219] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) +[2618282.227] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) +[2618282.231] {Default Queue} -> wl_surface#2951.commit() +[2618282.262] {Default Queue} -> wl_shm#2961.create_pool(new id wl_shm_pool#2977, fd 473, 640) +[2618282.269] {Default Queue} -> wl_shm#2961.create_pool(new id wl_shm_pool#2978, fd 474, 640) +[2618282.273] {Default Queue} -> wl_shm_pool#2977.create_buffer(new id wl_buffer#2979, 0, 10, 16, 40, 0) +[2618282.278] {Default Queue} -> wl_shm_pool#2978.create_buffer(new id wl_buffer#2980, 0, 10, 16, 40, 0) +[2618282.285] {Default Queue} -> wl_compositor#2956.create_surface(new id wl_surface#2981) +[2618282.290] {Default Queue} -> wl_surface#2981.attach(wl_buffer#2979, 0, 0) +[2618282.294] {Default Queue} -> wl_surface#2981.commit() +[2618282.300] {Default Queue} -> wl_surface#2981.attach(wl_buffer#2979, 0, 0) +[2618282.304] {Default Queue} -> wl_surface#2981.commit() +[2618282.315] {Default Queue} -> wl_region#2879.subtract(0, 0, 2, 2) +[2618282.320] {Default Queue} -> wl_subsurface#2874.set_position(3, 3) +[2618282.325] {Default Queue} -> wl_region#2879.subtract(0, 0, 5, 5) +[2618282.332] {Default Queue} -> wl_region#2879.add(0, 0, 0, 0) +[2618282.339] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) +[2618282.343] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) +[2618282.347] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618282.352] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) +[2618282.356] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) +[2618282.361] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) +[2618282.368] {Default Queue} -> wl_region#2879.subtract(0, 0, 5, 5) +[2618282.373] {Default Queue} -> wl_region#2879.add(0, 0, 0, 0) +[2618282.377] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) +[2618282.381] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) +[2618282.387] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2877, 0, 0) +[2618282.391] {Default Queue} -> wl_surface#2855.commit() +[2618282.398] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2982) +[2618282.403] {Default Queue} -> wl_display#1.sync(new id wl_callback#2983) +[2618286.117] {Default Queue} discarded wl_surface#2919.enter(wl_output#2713) +[2618286.125] {Default Queue} discarded wl_surface#2919.enter(wl_output#2745) +[2618286.130] {Default Queue} discarded wl_surface#2919.enter(wl_output#2777) +[2618286.135] {Default Queue} discarded wl_surface#2919.enter(wl_output#2809) +[2618286.140] {Default Queue} discarded wl_surface#2919.enter(wl_output#2841) +[2618286.145] {Default Queue} discarded wl_surface#2919.enter(wl_output#2873) +[2618286.150] {Default Queue} discarded wl_surface#2919.enter(wl_output#2905) +[2618286.155] {Default Queue} discarded wl_surface#2919.enter(wl_output#2937) +[2618286.478] {Display Queue} wl_display#1.delete_id(2983) +[2618286.486] {Default Queue} wl_keyboard#2952.keymap(1, fd 469, 68213) +[2618286.491] {Default Queue} wl_keyboard#2952.enter(566, wl_surface#19, array[0]) +[2618286.498] {Default Queue} wl_keyboard#2952.modifiers(566, 0, 0, 16, 0) +[2618286.504] {Default Queue} discarded wl_shm#2959.format(875709016) +[2618286.509] {Default Queue} discarded wl_shm#2959.format(1) +[2618286.514] {Default Queue} discarded wl_shm#2959.format(0) +[2618286.519] {Default Queue} discarded wl_shm#2959.format(875708993) +[2618286.524] {Default Queue} discarded wl_shm#2960.format(875709016) +[2618286.529] {Default Queue} discarded wl_shm#2960.format(1) +[2618286.534] {Default Queue} discarded wl_shm#2960.format(0) +[2618286.538] {Default Queue} discarded wl_shm#2960.format(875708993) +[2618286.543] {Default Queue} discarded wl_shm#2961.format(875709016) +[2618286.548] {Default Queue} discarded wl_shm#2961.format(1) +[2618286.553] {Default Queue} discarded wl_shm#2961.format(0) +[2618286.558] {Default Queue} discarded wl_shm#2961.format(875708993) +[2618286.563] {Default Queue} wl_seat#2968.capabilities(7) +[2618286.568] {Default Queue} -> wl_seat#2968.get_keyboard(new id wl_keyboard#2984) +[2618286.574] {Default Queue} -> wl_seat#2968.get_pointer(new id wl_pointer#2985) +[2618286.580] {Default Queue} -> wl_data_device_manager#2964.get_data_device(new id wl_data_device#2986, wl_seat#2968) +[2618286.585] {Default Queue} -> zwp_primary_selection_device_manager_v1#2966.get_device(new id zwp_primary_selection_device_v1#2987, wl_seat#2968) +[2618286.595] {Default Queue} wl_output#2969.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618286.602] {Default Queue} wl_output#2969.mode(3, 1280, 800, 60000) +[2618286.608] {Default Queue} discarded wl_surface#2727.enter(wl_output#2969) +[2618286.613] {Default Queue} discarded wl_surface#3.enter(wl_output#2969) +[2618286.618] {Default Queue} discarded wl_surface#999.enter(wl_output#2969) +[2618286.623] {Default Queue} discarded wl_surface#1191.enter(wl_output#2969) +[2618286.628] {Default Queue} discarded wl_surface#1159.enter(wl_output#2969) +[2618286.633] {Default Queue} discarded wl_surface#1703.enter(wl_output#2969) +[2618286.638] {Default Queue} discarded wl_surface#2215.enter(wl_output#2969) +[2618286.643] {Default Queue} discarded wl_surface#423.enter(wl_output#2969) +[2618286.652] {Default Queue} discarded wl_surface#1447.enter(wl_output#2969) +[2618286.659] {Default Queue} discarded wl_surface#2023.enter(wl_output#2969) +[2618286.664] {Default Queue} discarded wl_surface#1639.enter(wl_output#2969) +[2618286.669] {Default Queue} discarded wl_surface#1319.enter(wl_output#2969) +[2618286.674] {Default Queue} discarded wl_surface#1127.enter(wl_output#2969) +[2618286.678] {Default Queue} discarded wl_surface#2151.enter(wl_output#2969) +[2618286.683] {Default Queue} discarded wl_surface#2375.enter(wl_output#2969) +[2618286.688] {Default Queue} discarded wl_surface#2695.enter(wl_output#2969) +[2618286.693] {Default Queue} discarded wl_surface#2919.enter(wl_output#2969) +[2618286.698] {Default Queue} discarded wl_surface#1063.enter(wl_output#2969) +[2618286.703] {Default Queue} discarded wl_surface#455.enter(wl_output#2969) +[2618286.708] {Default Queue} discarded wl_surface#1575.enter(wl_output#2969) +[2618286.712] {Default Queue} discarded wl_surface#1799.enter(wl_output#2969) +[2618286.717] {Default Queue} discarded wl_surface#1415.enter(wl_output#2969) +[2618286.722] {Default Queue} discarded wl_surface#2439.enter(wl_output#2969) +[2618286.727] {Default Queue} discarded wl_surface#2279.enter(wl_output#2969) +[2618286.732] {Default Queue} discarded wl_surface#1831.enter(wl_output#2969) +[2618286.737] {Default Queue} discarded wl_surface#903.enter(wl_output#2969) +[2618286.742] {Default Queue} discarded wl_surface#2663.enter(wl_output#2969) +[2618286.747] {Default Queue} discarded wl_surface#775.enter(wl_output#2969) +[2618286.751] {Default Queue} discarded wl_surface#1991.enter(wl_output#2969) +[2618286.756] {Default Queue} discarded wl_surface#1543.enter(wl_output#2969) +[2618286.761] {Default Queue} discarded wl_surface#135.enter(wl_output#2969) +[2618286.766] {Default Queue} discarded wl_surface#1287.enter(wl_output#2969) +[2618286.771] {Default Queue} discarded wl_surface#1031.enter(wl_output#2969) +[2618286.775] {Default Queue} discarded wl_surface#615.enter(wl_output#2969) +[2618286.780] {Default Queue} discarded wl_surface#231.enter(wl_output#2969) +[2618286.785] {Default Queue} discarded wl_surface#2343.enter(wl_output#2969) +[2618286.790] {Default Queue} discarded wl_surface#1863.enter(wl_output#2969) +[2618286.795] {Default Queue} discarded wl_surface#359.enter(wl_output#2969) +[2618286.800] {Default Queue} discarded wl_surface#583.enter(wl_output#2969) +[2618286.805] {Default Queue} discarded wl_surface#743.enter(wl_output#2969) +[2618286.809] {Default Queue} discarded wl_surface#2535.enter(wl_output#2969) +[2618286.814] {Default Queue} discarded wl_surface#967.enter(wl_output#2969) +[2618286.819] {Default Queue} discarded wl_surface#103.enter(wl_output#2969) +[2618286.824] {Default Queue} discarded wl_surface#327.enter(wl_output#2969) +[2618286.829] {Default Queue} discarded wl_surface#43.enter(wl_output#2969) +[2618286.834] {Default Queue} discarded wl_surface#2247.enter(wl_output#2969) +[2618286.839] {Default Queue} discarded wl_surface#807.enter(wl_output#2969) +[2618286.843] {Default Queue} discarded wl_surface#19.enter(wl_output#2969) +[2618286.848] {Default Queue} discarded wl_surface#1511.enter(wl_output#2969) +[2618286.853] {Default Queue} discarded wl_surface#199.enter(wl_output#2969) +[2618286.858] {Default Queue} discarded wl_surface#391.enter(wl_output#2969) +[2618286.873] {Default Queue} discarded wl_surface#935.enter(wl_output#2969) +[2618286.878] {Default Queue} discarded wl_surface#2823.enter(wl_output#2969) +[2618286.885] {Default Queue} discarded wl_surface#1671.enter(wl_output#2969) +[2618286.892] {Default Queue} discarded wl_surface#1351.enter(wl_output#2969) +[2618286.899] {Default Queue} discarded wl_surface#711.enter(wl_output#2969) +[2618286.905] {Default Queue} discarded wl_surface#1223.enter(wl_output#2969) +[2618286.913] {Default Queue} discarded wl_surface#1927.enter(wl_output#2969) +[2618286.920] {Default Queue} discarded wl_surface#871.enter(wl_output#2969) +[2618286.926] {Default Queue} discarded wl_surface#1895.enter(wl_output#2969) +[2618286.931] {Default Queue} discarded wl_surface#263.enter(wl_output#2969) +[2618286.940] {Default Queue} discarded wl_surface#551.enter(wl_output#2969) +[2618286.948] {Default Queue} discarded wl_surface#1735.enter(wl_output#2969) +[2618286.953] {Default Queue} discarded wl_surface#1479.enter(wl_output#2969) +[2618286.958] {Default Queue} discarded wl_surface#1772.enter(wl_output#2969) +[2618286.963] {Default Queue} discarded wl_surface#2599.enter(wl_output#2969) +[2618286.967] {Default Queue} discarded wl_surface#2631.enter(wl_output#2969) +[2618286.972] {Default Queue} discarded wl_surface#1959.enter(wl_output#2969) +[2618286.977] {Default Queue} discarded wl_surface#647.enter(wl_output#2969) +[2618286.983] {Default Queue} discarded wl_surface#2055.enter(wl_output#2969) +[2618286.987] {Default Queue} discarded wl_surface#2508.enter(wl_output#2969) +[2618286.992] {Default Queue} discarded wl_surface#71.enter(wl_output#2969) +[2618286.998] {Default Queue} discarded wl_surface#2759.enter(wl_output#2969) +[2618287.002] {Default Queue} discarded wl_surface#2791.enter(wl_output#2969) +[2618287.007] {Default Queue} discarded wl_surface#2887.enter(wl_output#2969) +[2618287.012] {Default Queue} discarded wl_surface#2183.enter(wl_output#2969) +[2618287.017] {Default Queue} discarded wl_surface#2567.enter(wl_output#2969) +[2618287.022] {Default Queue} discarded wl_surface#839.enter(wl_output#2969) +[2618287.027] {Default Queue} discarded wl_surface#1607.enter(wl_output#2969) +[2618287.032] {Default Queue} discarded wl_surface#1095.enter(wl_output#2969) +[2618287.037] {Default Queue} discarded wl_surface#1383.enter(wl_output#2969) +[2618287.042] {Default Queue} discarded wl_surface#487.enter(wl_output#2969) +[2618287.047] {Default Queue} discarded wl_surface#2311.enter(wl_output#2969) +[2618287.052] {Default Queue} discarded wl_surface#519.enter(wl_output#2969) +[2618287.057] {Default Queue} discarded wl_surface#2087.enter(wl_output#2969) +[2618287.062] {Default Queue} discarded wl_surface#2471.enter(wl_output#2969) +[2618287.066] {Default Queue} discarded wl_surface#295.enter(wl_output#2969) +[2618287.071] {Default Queue} discarded wl_surface#167.enter(wl_output#2969) +[2618287.076] {Default Queue} discarded wl_surface#1255.enter(wl_output#2969) +[2618287.081] {Default Queue} discarded wl_surface#2855.enter(wl_output#2969) +[2618287.086] {Default Queue} discarded wl_surface#679.enter(wl_output#2969) +[2618287.091] {Default Queue} discarded wl_surface#2407.enter(wl_output#2969) +[2618287.096] {Default Queue} discarded wl_surface#2119.enter(wl_output#2969) +[2618287.101] {Default Queue} wl_registry#2982.global(1, "wl_compositor", 6) +[2618287.108] {Default Queue} -> wl_registry#2982.bind(1, "wl_compositor", 1, new id [unknown]#2988) +[2618287.115] {Default Queue} wl_registry#2982.global(2, "wl_subcompositor", 1) +[2618287.121] {Default Queue} -> wl_registry#2982.bind(2, "wl_subcompositor", 1, new id [unknown]#2989) +[2618287.126] {Default Queue} wl_registry#2982.global(3, "xdg_wm_base", 6) +[2618287.133] {Default Queue} -> wl_registry#2982.bind(3, "xdg_wm_base", 1, new id [unknown]#2990) +[2618287.138] {Default Queue} wl_registry#2982.global(6, "zwlr_layer_shell_v1", 5) +[2618287.144] {Default Queue} wl_registry#2982.global(7, "ext_session_lock_manager_v1", 1) +[2618287.149] {Default Queue} wl_registry#2982.global(8, "wl_shm", 2) +[2618287.156] {Default Queue} -> wl_registry#2982.bind(8, "wl_shm", 1, new id [unknown]#2991) +[2618287.161] {Default Queue} -> wl_registry#2982.bind(8, "wl_shm", 1, new id [unknown]#2992) +[2618287.167] {Default Queue} -> wl_registry#2982.bind(8, "wl_shm", 1, new id [unknown]#2993) +[2618287.172] {Default Queue} wl_registry#2982.global(9, "zxdg_output_manager_v1", 3) +[2618287.177] {Default Queue} wl_registry#2982.global(10, "wp_fractional_scale_manager_v1", 1) +[2618287.183] {Default Queue} wl_registry#2982.global(11, "zwp_tablet_manager_v2", 1) +[2618287.188] {Default Queue} wl_registry#2982.global(12, "zwp_pointer_gestures_v1", 3) +[2618287.194] {Default Queue} wl_registry#2982.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618287.199] {Default Queue} -> wl_registry#2982.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2994) +[2618287.210] {Default Queue} wl_registry#2982.global(14, "zwp_pointer_constraints_v1", 1) +[2618287.218] {Default Queue} -> wl_registry#2982.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2995) +[2618287.224] {Default Queue} wl_registry#2982.global(15, "ext_idle_notifier_v1", 2) +[2618287.230] {Default Queue} wl_registry#2982.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618287.238] {Default Queue} wl_registry#2982.global(17, "wl_data_device_manager", 3) +[2618287.244] {Default Queue} -> wl_registry#2982.bind(17, "wl_data_device_manager", 2, new id [unknown]#2996) +[2618287.249] {Default Queue} -> wl_data_device_manager#2996.create_data_source(new id wl_data_source#2997) +[2618287.254] {Default Queue} -> wl_data_source#2997.offer("text/plain") +[2618287.258] {Default Queue} -> wl_data_source#2997.offer("text/plain;charset=utf-8") +[2618287.262] {Default Queue} -> wl_data_source#2997.offer("TEXT") +[2618287.267] {Default Queue} -> wl_data_source#2997.offer("STRING") +[2618287.272] {Default Queue} -> wl_data_source#2997.offer("UTF8_STRING") +[2618287.276] {Default Queue} wl_registry#2982.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618287.282] {Default Queue} -> wl_registry#2982.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2998) +[2618287.289] {Default Queue} -> zwp_primary_selection_device_manager_v1#2998.create_source(new id zwp_primary_selection_source_v1#2999) +[2618287.297] {Default Queue} -> zwp_primary_selection_source_v1#2999.offer("text/plain") +[2618287.301] {Default Queue} -> zwp_primary_selection_source_v1#2999.offer("text/plain;charset=utf-8") +[2618287.305] {Default Queue} -> zwp_primary_selection_source_v1#2999.offer("TEXT") +[2618287.309] {Default Queue} -> zwp_primary_selection_source_v1#2999.offer("STRING") +[2618287.314] {Default Queue} -> zwp_primary_selection_source_v1#2999.offer("UTF8_STRING") +[2618287.318] {Default Queue} wl_registry#2982.global(19, "zwlr_data_control_manager_v1", 2) +[2618287.322] {Default Queue} wl_registry#2982.global(20, "ext_data_control_manager_v1", 1) +[2618287.327] {Default Queue} wl_registry#2982.global(21, "wp_presentation", 2) +[2618287.332] {Default Queue} wl_registry#2982.global(22, "wp_security_context_manager_v1", 1) +[2618287.336] {Default Queue} wl_registry#2982.global(23, "zwp_text_input_manager_v3", 1) +[2618287.340] {Default Queue} wl_registry#2982.global(24, "zwp_input_method_manager_v2", 1) +[2618287.345] {Default Queue} wl_registry#2982.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618287.349] {Default Queue} wl_registry#2982.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618287.354] {Default Queue} wl_registry#2982.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618287.358] {Default Queue} wl_registry#2982.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618287.362] {Default Queue} wl_registry#2982.global(29, "ext_workspace_manager_v1", 1) +[2618287.367] {Default Queue} wl_registry#2982.global(30, "zwlr_output_manager_v1", 4) +[2618287.371] {Default Queue} wl_registry#2982.global(31, "zwlr_screencopy_manager_v1", 3) +[2618287.375] {Default Queue} wl_registry#2982.global(32, "wp_viewporter", 1) +[2618287.379] {Default Queue} wl_registry#2982.global(33, "zxdg_exporter_v2", 1) +[2618287.384] {Default Queue} wl_registry#2982.global(34, "zxdg_importer_v2", 1) +[2618287.388] {Default Queue} wl_registry#2982.global(36, "xdg_activation_v1", 1) +[2618287.392] {Default Queue} wl_registry#2982.global(37, "mutter_x11_interop", 1) +[2618287.397] {Default Queue} wl_registry#2982.global(38, "wl_seat", 9) +[2618287.401] {Default Queue} -> wl_registry#2982.bind(38, "wl_seat", 1, new id [unknown]#3000) +[2618287.406] {Default Queue} wl_registry#2982.global(39, "wp_cursor_shape_manager_v1", 2) +[2618287.410] {Default Queue} wl_registry#2982.global(40, "wl_output", 4) +[2618287.414] {Default Queue} -> wl_registry#2982.bind(40, "wl_output", 1, new id [unknown]#3001) +[2618287.419] {Default Queue} wl_callback#2983.done(0) +[2618287.423] {Default Queue} discarded wl_surface#2951.enter(wl_output#18) +[2618287.433] {Default Queue} discarded wl_surface#2951.enter(wl_output#57) +[2618287.439] {Default Queue} discarded wl_surface#2951.enter(wl_output#89) +[2618287.443] {Default Queue} discarded wl_surface#2951.enter(wl_output#121) +[2618287.447] {Default Queue} discarded wl_surface#2951.enter(wl_output#153) +[2618287.451] {Default Queue} discarded wl_surface#2951.enter(wl_output#185) +[2618287.455] {Default Queue} discarded wl_surface#2951.enter(wl_output#217) +[2618287.459] {Default Queue} discarded wl_surface#2951.enter(wl_output#249) +[2618287.463] {Default Queue} discarded wl_surface#2951.enter(wl_output#281) +[2618287.467] {Default Queue} discarded wl_surface#2951.enter(wl_output#313) +[2618287.471] {Default Queue} discarded wl_surface#2951.enter(wl_output#345) +[2618287.475] {Default Queue} discarded wl_surface#2951.enter(wl_output#377) +[2618287.479] {Default Queue} discarded wl_surface#2951.enter(wl_output#409) +[2618287.483] {Default Queue} discarded wl_surface#2951.enter(wl_output#441) +[2618287.487] {Default Queue} discarded wl_surface#2951.enter(wl_output#473) +[2618287.491] {Default Queue} discarded wl_surface#2951.enter(wl_output#505) +[2618287.495] {Default Queue} discarded wl_surface#2951.enter(wl_output#537) +[2618287.499] {Default Queue} discarded wl_surface#2951.enter(wl_output#569) +[2618287.502] {Default Queue} discarded wl_surface#2951.enter(wl_output#601) +[2618287.506] {Default Queue} discarded wl_surface#2951.enter(wl_output#633) +[2618287.510] {Default Queue} discarded wl_surface#2951.enter(wl_output#665) +[2618287.514] {Default Queue} discarded wl_surface#2951.enter(wl_output#697) +[2618287.518] {Default Queue} discarded wl_surface#2951.enter(wl_output#729) +[2618287.522] {Default Queue} discarded wl_surface#2951.enter(wl_output#761) +[2618287.526] {Default Queue} discarded wl_surface#2951.enter(wl_output#793) +[2618287.530] {Default Queue} discarded wl_surface#2951.enter(wl_output#825) +[2618287.534] {Default Queue} discarded wl_surface#2951.enter(wl_output#857) +[2618287.537] {Default Queue} discarded wl_surface#2951.enter(wl_output#889) +[2618287.541] {Default Queue} discarded wl_surface#2951.enter(wl_output#921) +[2618287.545] {Default Queue} discarded wl_surface#2951.enter(wl_output#953) +[2618287.549] {Default Queue} discarded wl_surface#2951.enter(wl_output#985) +[2618287.553] {Default Queue} discarded wl_surface#2951.enter(wl_output#1017) +[2618287.557] {Default Queue} discarded wl_surface#2951.enter(wl_output#1049) +[2618287.561] {Default Queue} discarded wl_surface#2951.enter(wl_output#1081) +[2618287.565] {Default Queue} discarded wl_surface#2951.enter(wl_output#1113) +[2618287.569] {Default Queue} discarded wl_surface#2951.enter(wl_output#1145) +[2618287.572] {Default Queue} discarded wl_surface#2951.enter(wl_output#1177) +[2618287.577] {Default Queue} discarded wl_surface#2951.enter(wl_output#1209) +[2618287.580] {Default Queue} discarded wl_surface#2951.enter(wl_output#1241) +[2618287.584] {Default Queue} discarded wl_surface#2951.enter(wl_output#1273) +[2618287.589] {Default Queue} discarded wl_surface#2951.enter(wl_output#1305) +[2618287.593] {Default Queue} discarded wl_surface#2951.enter(wl_output#1337) +[2618287.597] {Default Queue} discarded wl_surface#2951.enter(wl_output#1369) +[2618287.601] {Default Queue} discarded wl_surface#2951.enter(wl_output#1401) +[2618287.605] {Default Queue} discarded wl_surface#2951.enter(wl_output#1433) +[2618287.609] {Default Queue} discarded wl_surface#2951.enter(wl_output#1465) +[2618287.613] {Default Queue} discarded wl_surface#2951.enter(wl_output#1497) +[2618287.617] {Default Queue} discarded wl_surface#2951.enter(wl_output#1529) +[2618287.621] {Default Queue} discarded wl_surface#2951.enter(wl_output#1561) +[2618287.625] {Default Queue} discarded wl_surface#2951.enter(wl_output#1593) +[2618287.629] {Default Queue} discarded wl_surface#2951.enter(wl_output#1625) +[2618287.633] {Default Queue} discarded wl_surface#2951.enter(wl_output#1657) +[2618287.637] {Default Queue} discarded wl_surface#2951.enter(wl_output#1689) +[2618287.641] {Default Queue} discarded wl_surface#2951.enter(wl_output#1721) +[2618287.648] {Default Queue} discarded wl_surface#2951.enter(wl_output#1753) +[2618287.653] {Default Queue} discarded wl_surface#2951.enter(wl_output#1785) +[2618287.657] {Default Queue} discarded wl_surface#2951.enter(wl_output#1817) +[2618287.661] {Default Queue} discarded wl_surface#2951.enter(wl_output#1849) +[2618287.665] {Default Queue} discarded wl_surface#2951.enter(wl_output#1881) +[2618287.669] {Default Queue} discarded wl_surface#2951.enter(wl_output#1913) +[2618287.673] {Default Queue} discarded wl_surface#2951.enter(wl_output#1945) +[2618287.677] {Default Queue} discarded wl_surface#2951.enter(wl_output#1977) +[2618287.681] {Default Queue} discarded wl_surface#2951.enter(wl_output#2009) +[2618287.685] {Default Queue} discarded wl_surface#2951.enter(wl_output#2041) +[2618287.690] {Default Queue} discarded wl_surface#2951.enter(wl_output#2073) +[2618287.694] {Default Queue} discarded wl_surface#2951.enter(wl_output#2105) +[2618287.697] {Default Queue} discarded wl_surface#2951.enter(wl_output#2137) +[2618287.701] {Default Queue} discarded wl_surface#2951.enter(wl_output#2169) +[2618287.705] {Default Queue} discarded wl_surface#2951.enter(wl_output#2201) +[2618287.709] {Default Queue} discarded wl_surface#2951.enter(wl_output#2233) +[2618287.713] {Default Queue} discarded wl_surface#2951.enter(wl_output#2265) +[2618287.717] {Default Queue} discarded wl_surface#2951.enter(wl_output#2297) +[2618287.721] {Default Queue} discarded wl_surface#2951.enter(wl_output#2329) +[2618287.725] {Default Queue} discarded wl_surface#2951.enter(wl_output#2361) +[2618287.729] {Default Queue} discarded wl_surface#2951.enter(wl_output#2393) +[2618287.732] {Default Queue} discarded wl_surface#2951.enter(wl_output#2425) +[2618287.736] {Default Queue} discarded wl_surface#2951.enter(wl_output#2457) +[2618287.740] {Default Queue} discarded wl_surface#2951.enter(wl_output#2489) +[2618287.744] {Default Queue} discarded wl_surface#2951.enter(wl_output#2521) +[2618287.748] {Default Queue} discarded wl_surface#2951.enter(wl_output#2553) +[2618287.752] {Default Queue} discarded wl_surface#2951.enter(wl_output#2585) +[2618287.756] {Default Queue} discarded wl_surface#2951.enter(wl_output#2617) +[2618287.760] {Default Queue} discarded wl_surface#2951.enter(wl_output#2649) +[2618287.764] {Default Queue} -> wl_compositor#28.create_surface(new id wl_surface#2983) +[2618287.769] {Default Queue} -> wl_subcompositor#2989.get_subsurface(new id wl_subsurface#3002, wl_surface#2983, wl_surface#71) +[2618287.777] {Default Queue} -> wl_subsurface#3002.set_desync() +[2618287.781] {Default Queue} -> wl_subsurface#3002.set_position(0, 0) +[2618287.785] {Default Queue} -> wl_subsurface#3002.place_above(wl_surface#71) +[2618287.826] {Default Queue} -> wl_shm#2991.create_pool(new id wl_shm_pool#3003, fd 474, 16) +[2618287.833] {Default Queue} -> wl_shm#2991.create_pool(new id wl_shm_pool#3004, fd 475, 16) +[2618287.838] {Default Queue} -> wl_shm_pool#3003.create_buffer(new id wl_buffer#3005, 0, 2, 2, 8, 0) +[2618287.842] {Default Queue} -> wl_shm_pool#3004.create_buffer(new id wl_buffer#3006, 0, 2, 2, 8, 0) +[2618287.851] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) +[2618287.855] {Default Queue} -> wl_surface#2983.commit() +[2618287.866] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) +[2618287.870] {Default Queue} -> wl_surface#2983.commit() +[2618287.875] {Default Queue} -> wl_compositor#2988.create_region(new id wl_region#3007) +[2618287.879] {Default Queue} -> wl_compositor#2988.create_region(new id wl_region#3008) +[2618287.906] {Default Queue} -> wl_region#3007.subtract(0, 0, 2, 2) +[2618287.914] {Default Queue} -> wl_region#3007.add(0, 0, 0, 0) +[2618287.919] {Default Queue} -> wl_surface#2983.set_opaque_region(wl_region#3008) +[2618287.924] {Default Queue} -> wl_surface#2983.set_input_region(wl_region#3007) +[2618287.929] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) +[2618287.934] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) +[2618287.941] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) +[2618287.953] {Default Queue} -> wl_surface#2983.commit() +[2618288.014] {Default Queue} -> wl_shm#2993.create_pool(new id wl_shm_pool#3009, fd 478, 640) +[2618288.023] {Default Queue} -> wl_shm#2993.create_pool(new id wl_shm_pool#3010, fd 479, 640) +[2618288.028] {Default Queue} -> wl_shm_pool#3009.create_buffer(new id wl_buffer#3011, 0, 10, 16, 40, 0) +[2618288.033] {Default Queue} -> wl_shm_pool#3010.create_buffer(new id wl_buffer#3012, 0, 10, 16, 40, 0) +[2618288.041] {Default Queue} -> wl_compositor#2988.create_surface(new id wl_surface#3013) +[2618288.046] {Default Queue} -> wl_surface#3013.attach(wl_buffer#3011, 0, 0) +[2618288.050] {Default Queue} -> wl_surface#3013.commit() +[2618288.056] {Default Queue} -> wl_surface#3013.attach(wl_buffer#3011, 0, 0) +[2618288.060] {Default Queue} -> wl_surface#3013.commit() +[2618288.066] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) +[2618288.074] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3014) +[2618288.079] {Default Queue} -> wl_display#1.sync(new id wl_callback#3015) +[2618290.424] {Default Queue} discarded wl_surface#2951.enter(wl_output#2681) +[2618290.436] {Default Queue} discarded wl_surface#2951.enter(wl_output#2713) +[2618290.441] {Default Queue} discarded wl_surface#2951.enter(wl_output#2745) +[2618290.446] {Default Queue} discarded wl_surface#2951.enter(wl_output#2777) +[2618290.450] {Default Queue} discarded wl_surface#2951.enter(wl_output#2809) +[2618290.454] {Default Queue} discarded wl_surface#2951.enter(wl_output#2841) +[2618290.458] {Default Queue} discarded wl_surface#2951.enter(wl_output#2873) +[2618290.462] {Default Queue} discarded wl_surface#2951.enter(wl_output#2905) +[2618290.466] {Default Queue} discarded wl_surface#2951.enter(wl_output#2937) +[2618290.470] {Default Queue} discarded wl_surface#2951.enter(wl_output#2969) +[2618290.838] {Display Queue} wl_display#1.delete_id(3015) +[2618290.844] {Default Queue} wl_keyboard#2984.keymap(1, fd 474, 68213) +[2618290.849] {Default Queue} wl_keyboard#2984.enter(566, wl_surface#19, array[0]) +[2618290.855] {Default Queue} wl_keyboard#2984.modifiers(566, 0, 0, 16, 0) +[2618290.860] {Default Queue} discarded wl_shm#2991.format(875709016) +[2618290.869] {Default Queue} discarded wl_shm#2991.format(1) +[2618290.873] {Default Queue} discarded wl_shm#2991.format(0) +[2618290.877] {Default Queue} discarded wl_shm#2991.format(875708993) +[2618290.881] {Default Queue} discarded wl_shm#2992.format(875709016) +[2618290.885] {Default Queue} discarded wl_shm#2992.format(1) +[2618290.889] {Default Queue} discarded wl_shm#2992.format(0) +[2618290.892] {Default Queue} discarded wl_shm#2992.format(875708993) +[2618290.896] {Default Queue} discarded wl_shm#2993.format(875709016) +[2618290.900] {Default Queue} discarded wl_shm#2993.format(1) +[2618290.904] {Default Queue} discarded wl_shm#2993.format(0) +[2618290.908] {Default Queue} discarded wl_shm#2993.format(875708993) +[2618290.912] {Default Queue} wl_seat#3000.capabilities(7) +[2618290.916] {Default Queue} -> wl_seat#3000.get_keyboard(new id wl_keyboard#3016) +[2618290.921] {Default Queue} -> wl_seat#3000.get_pointer(new id wl_pointer#3017) +[2618290.926] {Default Queue} -> wl_data_device_manager#2996.get_data_device(new id wl_data_device#3018, wl_seat#3000) +[2618290.930] {Default Queue} -> zwp_primary_selection_device_manager_v1#2998.get_device(new id zwp_primary_selection_device_v1#3019, wl_seat#3000) +[2618290.938] {Default Queue} wl_output#3001.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618290.944] {Default Queue} wl_output#3001.mode(3, 1280, 800, 60000) +[2618290.948] {Default Queue} discarded wl_surface#2727.enter(wl_output#3001) +[2618290.953] {Default Queue} discarded wl_surface#3.enter(wl_output#3001) +[2618290.957] {Default Queue} discarded wl_surface#999.enter(wl_output#3001) +[2618290.961] {Default Queue} discarded wl_surface#1191.enter(wl_output#3001) +[2618290.965] {Default Queue} discarded wl_surface#1159.enter(wl_output#3001) +[2618290.969] {Default Queue} discarded wl_surface#1703.enter(wl_output#3001) +[2618290.973] {Default Queue} discarded wl_surface#2215.enter(wl_output#3001) +[2618290.981] {Default Queue} discarded wl_surface#423.enter(wl_output#3001) +[2618290.989] {Default Queue} discarded wl_surface#1447.enter(wl_output#3001) +[2618290.993] {Default Queue} discarded wl_surface#2023.enter(wl_output#3001) +[2618290.996] {Default Queue} discarded wl_surface#1639.enter(wl_output#3001) +[2618291.001] {Default Queue} discarded wl_surface#1319.enter(wl_output#3001) +[2618291.005] {Default Queue} discarded wl_surface#1127.enter(wl_output#3001) +[2618291.009] {Default Queue} discarded wl_surface#2151.enter(wl_output#3001) +[2618291.013] {Default Queue} discarded wl_surface#2375.enter(wl_output#3001) +[2618291.017] {Default Queue} discarded wl_surface#2695.enter(wl_output#3001) +[2618291.021] {Default Queue} discarded wl_surface#2919.enter(wl_output#3001) +[2618291.025] {Default Queue} discarded wl_surface#1063.enter(wl_output#3001) +[2618291.029] {Default Queue} discarded wl_surface#455.enter(wl_output#3001) +[2618291.033] {Default Queue} discarded wl_surface#1575.enter(wl_output#3001) +[2618291.036] {Default Queue} discarded wl_surface#1799.enter(wl_output#3001) +[2618291.040] {Default Queue} discarded wl_surface#1415.enter(wl_output#3001) +[2618291.044] {Default Queue} discarded wl_surface#2439.enter(wl_output#3001) +[2618291.048] {Default Queue} discarded wl_surface#2279.enter(wl_output#3001) +[2618291.052] {Default Queue} discarded wl_surface#1831.enter(wl_output#3001) +[2618291.056] {Default Queue} discarded wl_surface#903.enter(wl_output#3001) +[2618291.060] {Default Queue} discarded wl_surface#2663.enter(wl_output#3001) +[2618291.064] {Default Queue} discarded wl_surface#775.enter(wl_output#3001) +[2618291.068] {Default Queue} discarded wl_surface#1991.enter(wl_output#3001) +[2618291.072] {Default Queue} discarded wl_surface#1543.enter(wl_output#3001) +[2618291.075] {Default Queue} discarded wl_surface#135.enter(wl_output#3001) +[2618291.079] {Default Queue} discarded wl_surface#1287.enter(wl_output#3001) +[2618291.083] {Default Queue} discarded wl_surface#1031.enter(wl_output#3001) +[2618291.087] {Default Queue} discarded wl_surface#615.enter(wl_output#3001) +[2618291.091] {Default Queue} discarded wl_surface#231.enter(wl_output#3001) +[2618291.095] {Default Queue} discarded wl_surface#2343.enter(wl_output#3001) +[2618291.099] {Default Queue} discarded wl_surface#1863.enter(wl_output#3001) +[2618291.103] {Default Queue} discarded wl_surface#359.enter(wl_output#3001) +[2618291.107] {Default Queue} discarded wl_surface#583.enter(wl_output#3001) +[2618291.110] {Default Queue} discarded wl_surface#743.enter(wl_output#3001) +[2618291.114] {Default Queue} discarded wl_surface#2535.enter(wl_output#3001) +[2618291.118] {Default Queue} discarded wl_surface#967.enter(wl_output#3001) +[2618291.122] {Default Queue} discarded wl_surface#103.enter(wl_output#3001) +[2618291.126] {Default Queue} discarded wl_surface#327.enter(wl_output#3001) +[2618291.130] {Default Queue} discarded wl_surface#43.enter(wl_output#3001) +[2618291.134] {Default Queue} discarded wl_surface#2247.enter(wl_output#3001) +[2618291.138] {Default Queue} discarded wl_surface#807.enter(wl_output#3001) +[2618291.142] {Default Queue} discarded wl_surface#19.enter(wl_output#3001) +[2618291.145] {Default Queue} discarded wl_surface#2951.enter(wl_output#3001) +[2618291.149] {Default Queue} discarded wl_surface#1511.enter(wl_output#3001) +[2618291.153] {Default Queue} discarded wl_surface#199.enter(wl_output#3001) +[2618291.157] {Default Queue} discarded wl_surface#391.enter(wl_output#3001) +[2618291.161] {Default Queue} discarded wl_surface#935.enter(wl_output#3001) +[2618291.165] {Default Queue} discarded wl_surface#2823.enter(wl_output#3001) +[2618291.169] {Default Queue} discarded wl_surface#1671.enter(wl_output#3001) +[2618291.173] {Default Queue} discarded wl_surface#1351.enter(wl_output#3001) +[2618291.177] {Default Queue} discarded wl_surface#711.enter(wl_output#3001) +[2618291.181] {Default Queue} discarded wl_surface#1223.enter(wl_output#3001) +[2618291.185] {Default Queue} discarded wl_surface#1927.enter(wl_output#3001) +[2618291.189] {Default Queue} discarded wl_surface#871.enter(wl_output#3001) +[2618291.196] {Default Queue} discarded wl_surface#1895.enter(wl_output#3001) +[2618291.202] {Default Queue} discarded wl_surface#263.enter(wl_output#3001) +[2618291.206] {Default Queue} discarded wl_surface#551.enter(wl_output#3001) +[2618291.209] {Default Queue} discarded wl_surface#1735.enter(wl_output#3001) +[2618291.214] {Default Queue} discarded wl_surface#1479.enter(wl_output#3001) +[2618291.218] {Default Queue} discarded wl_surface#1772.enter(wl_output#3001) +[2618291.221] {Default Queue} discarded wl_surface#2599.enter(wl_output#3001) +[2618291.225] {Default Queue} discarded wl_surface#2631.enter(wl_output#3001) +[2618291.229] {Default Queue} discarded wl_surface#1959.enter(wl_output#3001) +[2618291.233] {Default Queue} discarded wl_surface#647.enter(wl_output#3001) +[2618291.237] {Default Queue} discarded wl_surface#2055.enter(wl_output#3001) +[2618291.241] {Default Queue} discarded wl_surface#2508.enter(wl_output#3001) +[2618291.245] {Default Queue} discarded wl_surface#71.enter(wl_output#3001) +[2618291.249] {Default Queue} discarded wl_surface#2759.enter(wl_output#3001) +[2618291.253] {Default Queue} discarded wl_surface#2791.enter(wl_output#3001) +[2618291.256] {Default Queue} discarded wl_surface#2887.enter(wl_output#3001) +[2618291.260] {Default Queue} discarded wl_surface#2183.enter(wl_output#3001) +[2618291.264] {Default Queue} discarded wl_surface#2567.enter(wl_output#3001) +[2618291.268] {Default Queue} discarded wl_surface#839.enter(wl_output#3001) +[2618291.272] {Default Queue} discarded wl_surface#1607.enter(wl_output#3001) +[2618291.276] {Default Queue} discarded wl_surface#1095.enter(wl_output#3001) +[2618291.280] {Default Queue} discarded wl_surface#1383.enter(wl_output#3001) +[2618291.285] {Default Queue} discarded wl_surface#487.enter(wl_output#3001) +[2618291.289] {Default Queue} discarded wl_surface#2311.enter(wl_output#3001) +[2618291.292] {Default Queue} discarded wl_surface#519.enter(wl_output#3001) +[2618291.296] {Default Queue} discarded wl_surface#2087.enter(wl_output#3001) +[2618291.300] {Default Queue} discarded wl_surface#2471.enter(wl_output#3001) +[2618291.304] {Default Queue} discarded wl_surface#295.enter(wl_output#3001) +[2618291.308] {Default Queue} discarded wl_surface#167.enter(wl_output#3001) +[2618291.312] {Default Queue} discarded wl_surface#1255.enter(wl_output#3001) +[2618291.316] {Default Queue} discarded wl_surface#2855.enter(wl_output#3001) +[2618291.320] {Default Queue} discarded wl_surface#679.enter(wl_output#3001) +[2618291.324] {Default Queue} discarded wl_surface#2407.enter(wl_output#3001) +[2618291.328] {Default Queue} discarded wl_surface#2119.enter(wl_output#3001) +[2618291.332] {Default Queue} wl_registry#3014.global(1, "wl_compositor", 6) +[2618291.338] {Default Queue} -> wl_registry#3014.bind(1, "wl_compositor", 1, new id [unknown]#3020) +[2618291.342] {Default Queue} wl_registry#3014.global(2, "wl_subcompositor", 1) +[2618291.347] {Default Queue} -> wl_registry#3014.bind(2, "wl_subcompositor", 1, new id [unknown]#3021) +[2618291.352] {Default Queue} wl_registry#3014.global(3, "xdg_wm_base", 6) +[2618291.357] {Default Queue} -> wl_registry#3014.bind(3, "xdg_wm_base", 1, new id [unknown]#3022) +[2618291.361] {Default Queue} wl_registry#3014.global(6, "zwlr_layer_shell_v1", 5) +[2618291.365] {Default Queue} wl_registry#3014.global(7, "ext_session_lock_manager_v1", 1) +[2618291.370] {Default Queue} wl_registry#3014.global(8, "wl_shm", 2) +[2618291.374] {Default Queue} -> wl_registry#3014.bind(8, "wl_shm", 1, new id [unknown]#3023) +[2618291.379] {Default Queue} -> wl_registry#3014.bind(8, "wl_shm", 1, new id [unknown]#3024) +[2618291.383] {Default Queue} -> wl_registry#3014.bind(8, "wl_shm", 1, new id [unknown]#3025) +[2618291.388] {Default Queue} wl_registry#3014.global(9, "zxdg_output_manager_v1", 3) +[2618291.393] {Default Queue} wl_registry#3014.global(10, "wp_fractional_scale_manager_v1", 1) +[2618291.397] {Default Queue} wl_registry#3014.global(11, "zwp_tablet_manager_v2", 1) +[2618291.401] {Default Queue} wl_registry#3014.global(12, "zwp_pointer_gestures_v1", 3) +[2618291.408] {Default Queue} wl_registry#3014.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618291.414] {Default Queue} -> wl_registry#3014.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3026) +[2618291.419] {Default Queue} wl_registry#3014.global(14, "zwp_pointer_constraints_v1", 1) +[2618291.423] {Default Queue} -> wl_registry#3014.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3027) +[2618291.427] {Default Queue} wl_registry#3014.global(15, "ext_idle_notifier_v1", 2) +[2618291.432] {Default Queue} wl_registry#3014.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618291.436] {Default Queue} wl_registry#3014.global(17, "wl_data_device_manager", 3) +[2618291.441] {Default Queue} -> wl_registry#3014.bind(17, "wl_data_device_manager", 2, new id [unknown]#3028) +[2618291.445] {Default Queue} -> wl_data_device_manager#3028.create_data_source(new id wl_data_source#3029) +[2618291.450] {Default Queue} -> wl_data_source#3029.offer("text/plain") +[2618291.454] {Default Queue} -> wl_data_source#3029.offer("text/plain;charset=utf-8") +[2618291.458] {Default Queue} -> wl_data_source#3029.offer("TEXT") +[2618291.462] {Default Queue} -> wl_data_source#3029.offer("STRING") +[2618291.466] {Default Queue} -> wl_data_source#3029.offer("UTF8_STRING") +[2618291.470] {Default Queue} wl_registry#3014.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618291.475] {Default Queue} -> wl_registry#3014.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3030) +[2618291.483] {Default Queue} -> zwp_primary_selection_device_manager_v1#3030.create_source(new id zwp_primary_selection_source_v1#3031) +[2618291.491] {Default Queue} -> zwp_primary_selection_source_v1#3031.offer("text/plain") +[2618291.495] {Default Queue} -> zwp_primary_selection_source_v1#3031.offer("text/plain;charset=utf-8") +[2618291.499] {Default Queue} -> zwp_primary_selection_source_v1#3031.offer("TEXT") +[2618291.503] {Default Queue} -> zwp_primary_selection_source_v1#3031.offer("STRING") +[2618291.507] {Default Queue} -> zwp_primary_selection_source_v1#3031.offer("UTF8_STRING") +[2618291.511] {Default Queue} wl_registry#3014.global(19, "zwlr_data_control_manager_v1", 2) +[2618291.517] {Default Queue} wl_registry#3014.global(20, "ext_data_control_manager_v1", 1) +[2618291.521] {Default Queue} wl_registry#3014.global(21, "wp_presentation", 2) +[2618291.525] {Default Queue} wl_registry#3014.global(22, "wp_security_context_manager_v1", 1) +[2618291.530] {Default Queue} wl_registry#3014.global(23, "zwp_text_input_manager_v3", 1) +[2618291.534] {Default Queue} wl_registry#3014.global(24, "zwp_input_method_manager_v2", 1) +[2618291.538] {Default Queue} wl_registry#3014.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618291.543] {Default Queue} wl_registry#3014.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618291.547] {Default Queue} wl_registry#3014.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618291.552] {Default Queue} wl_registry#3014.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618291.556] {Default Queue} wl_registry#3014.global(29, "ext_workspace_manager_v1", 1) +[2618291.560] {Default Queue} wl_registry#3014.global(30, "zwlr_output_manager_v1", 4) +[2618291.564] {Default Queue} wl_registry#3014.global(31, "zwlr_screencopy_manager_v1", 3) +[2618291.569] {Default Queue} wl_registry#3014.global(32, "wp_viewporter", 1) +[2618291.573] {Default Queue} wl_registry#3014.global(33, "zxdg_exporter_v2", 1) +[2618291.577] {Default Queue} wl_registry#3014.global(34, "zxdg_importer_v2", 1) +[2618291.582] {Default Queue} wl_registry#3014.global(36, "xdg_activation_v1", 1) +[2618291.586] {Default Queue} wl_registry#3014.global(37, "mutter_x11_interop", 1) +[2618291.590] {Default Queue} wl_registry#3014.global(38, "wl_seat", 9) +[2618291.595] {Default Queue} -> wl_registry#3014.bind(38, "wl_seat", 1, new id [unknown]#3032) +[2618291.602] {Default Queue} wl_registry#3014.global(39, "wp_cursor_shape_manager_v1", 2) +[2618291.606] {Default Queue} wl_registry#3014.global(40, "wl_output", 4) +[2618291.611] {Default Queue} -> wl_registry#3014.bind(40, "wl_output", 1, new id [unknown]#3033) +[2618291.618] {Default Queue} wl_callback#3015.done(0) +[2618291.624] {Default Queue} discarded wl_surface#2983.enter(wl_output#18) +[2618291.629] {Default Queue} discarded wl_surface#2983.enter(wl_output#57) +[2618291.633] {Default Queue} discarded wl_surface#2983.enter(wl_output#89) +[2618291.637] {Default Queue} discarded wl_surface#2983.enter(wl_output#121) +[2618291.641] {Default Queue} discarded wl_surface#2983.enter(wl_output#153) +[2618291.646] {Default Queue} discarded wl_surface#2983.enter(wl_output#185) +[2618291.650] {Default Queue} discarded wl_surface#2983.enter(wl_output#217) +[2618291.654] {Default Queue} discarded wl_surface#2983.enter(wl_output#249) +[2618291.657] {Default Queue} discarded wl_surface#2983.enter(wl_output#281) +[2618291.661] {Default Queue} discarded wl_surface#2983.enter(wl_output#313) +[2618291.666] {Default Queue} discarded wl_surface#2983.enter(wl_output#345) +[2618291.670] {Default Queue} discarded wl_surface#2983.enter(wl_output#377) +[2618291.674] {Default Queue} discarded wl_surface#2983.enter(wl_output#409) +[2618291.678] {Default Queue} discarded wl_surface#2983.enter(wl_output#441) +[2618291.682] {Default Queue} discarded wl_surface#2983.enter(wl_output#473) +[2618291.686] {Default Queue} discarded wl_surface#2983.enter(wl_output#505) +[2618291.689] {Default Queue} discarded wl_surface#2983.enter(wl_output#537) +[2618291.693] {Default Queue} discarded wl_surface#2983.enter(wl_output#569) +[2618291.697] {Default Queue} discarded wl_surface#2983.enter(wl_output#601) +[2618291.701] {Default Queue} discarded wl_surface#2983.enter(wl_output#633) +[2618291.705] {Default Queue} discarded wl_surface#2983.enter(wl_output#665) +[2618291.709] {Default Queue} discarded wl_surface#2983.enter(wl_output#697) +[2618291.713] {Default Queue} discarded wl_surface#2983.enter(wl_output#729) +[2618291.717] {Default Queue} discarded wl_surface#2983.enter(wl_output#761) +[2618291.721] {Default Queue} discarded wl_surface#2983.enter(wl_output#793) +[2618291.725] {Default Queue} discarded wl_surface#2983.enter(wl_output#825) +[2618291.729] {Default Queue} discarded wl_surface#2983.enter(wl_output#857) +[2618291.733] {Default Queue} discarded wl_surface#2983.enter(wl_output#889) +[2618291.737] {Default Queue} discarded wl_surface#2983.enter(wl_output#921) +[2618291.741] {Default Queue} discarded wl_surface#2983.enter(wl_output#953) +[2618291.745] {Default Queue} discarded wl_surface#2983.enter(wl_output#985) +[2618291.749] {Default Queue} discarded wl_surface#2983.enter(wl_output#1017) +[2618291.753] {Default Queue} discarded wl_surface#2983.enter(wl_output#1049) +[2618291.757] {Default Queue} discarded wl_surface#2983.enter(wl_output#1081) +[2618291.761] {Default Queue} discarded wl_surface#2983.enter(wl_output#1113) +[2618291.765] {Default Queue} discarded wl_surface#2983.enter(wl_output#1145) +[2618291.769] {Default Queue} discarded wl_surface#2983.enter(wl_output#1177) +[2618291.773] {Default Queue} discarded wl_surface#2983.enter(wl_output#1209) +[2618291.776] {Default Queue} discarded wl_surface#2983.enter(wl_output#1241) +[2618291.781] {Default Queue} discarded wl_surface#2983.enter(wl_output#1273) +[2618291.785] {Default Queue} discarded wl_surface#2983.enter(wl_output#1305) +[2618291.788] {Default Queue} discarded wl_surface#2983.enter(wl_output#1337) +[2618291.792] {Default Queue} discarded wl_surface#2983.enter(wl_output#1369) +[2618291.796] {Default Queue} discarded wl_surface#2983.enter(wl_output#1401) +[2618291.800] {Default Queue} discarded wl_surface#2983.enter(wl_output#1433) +[2618291.805] {Default Queue} discarded wl_surface#2983.enter(wl_output#1465) +[2618291.809] {Default Queue} discarded wl_surface#2983.enter(wl_output#1497) +[2618291.813] {Default Queue} discarded wl_surface#2983.enter(wl_output#1529) +[2618291.817] {Default Queue} discarded wl_surface#2983.enter(wl_output#1561) +[2618291.821] {Default Queue} discarded wl_surface#2983.enter(wl_output#1593) +[2618291.825] {Default Queue} discarded wl_surface#2983.enter(wl_output#1625) +[2618291.829] {Default Queue} discarded wl_surface#2983.enter(wl_output#1657) +[2618291.836] {Default Queue} discarded wl_surface#2983.enter(wl_output#1689) +[2618291.841] {Default Queue} discarded wl_surface#2983.enter(wl_output#1721) +[2618291.845] {Default Queue} discarded wl_surface#2983.enter(wl_output#1753) +[2618291.849] {Default Queue} discarded wl_surface#2983.enter(wl_output#1785) +[2618291.853] {Default Queue} discarded wl_surface#2983.enter(wl_output#1817) +[2618291.857] {Default Queue} discarded wl_surface#2983.enter(wl_output#1849) +[2618291.864] {Default Queue} discarded wl_surface#2983.enter(wl_output#1881) +[2618291.868] {Default Queue} discarded wl_surface#2983.enter(wl_output#1913) +[2618291.872] {Default Queue} discarded wl_surface#2983.enter(wl_output#1945) +[2618291.876] {Default Queue} discarded wl_surface#2983.enter(wl_output#1977) +[2618291.880] {Default Queue} discarded wl_surface#2983.enter(wl_output#2009) +[2618291.884] {Default Queue} discarded wl_surface#2983.enter(wl_output#2041) +[2618291.888] {Default Queue} discarded wl_surface#2983.enter(wl_output#2073) +[2618291.892] {Default Queue} discarded wl_surface#2983.enter(wl_output#2105) +[2618291.896] {Default Queue} discarded wl_surface#2983.enter(wl_output#2137) +[2618291.900] {Default Queue} discarded wl_surface#2983.enter(wl_output#2169) +[2618291.904] {Default Queue} discarded wl_surface#2983.enter(wl_output#2201) +[2618291.907] {Default Queue} discarded wl_surface#2983.enter(wl_output#2233) +[2618291.911] {Default Queue} discarded wl_surface#2983.enter(wl_output#2265) +[2618291.917] {Default Queue} discarded wl_surface#2983.enter(wl_output#2297) +[2618291.923] {Default Queue} discarded wl_surface#2983.enter(wl_output#2329) +[2618291.928] {Default Queue} discarded wl_surface#2983.enter(wl_output#2361) +[2618291.933] {Default Queue} discarded wl_surface#2983.enter(wl_output#2393) +[2618291.938] {Default Queue} discarded wl_surface#2983.enter(wl_output#2425) +[2618291.943] {Default Queue} discarded wl_surface#2983.enter(wl_output#2457) +[2618291.947] {Default Queue} discarded wl_surface#2983.enter(wl_output#2489) +[2618291.951] {Default Queue} discarded wl_surface#2983.enter(wl_output#2521) +[2618291.955] {Default Queue} discarded wl_surface#2983.enter(wl_output#2553) +[2618291.959] {Default Queue} discarded wl_surface#2983.enter(wl_output#2585) +[2618291.963] {Default Queue} discarded wl_surface#2983.enter(wl_output#2617) +[2618291.967] {Default Queue} -> wl_compositor#2988.create_surface(new id wl_surface#3015) +[2618291.972] {Default Queue} -> wl_subcompositor#3021.get_subsurface(new id wl_subsurface#3034, wl_surface#3015, wl_surface#2983) +[2618291.980] {Default Queue} -> wl_subsurface#3034.set_desync() +[2618291.984] {Default Queue} -> wl_subsurface#3034.set_position(0, 0) +[2618291.989] {Default Queue} -> wl_subsurface#3034.place_above(wl_surface#2983) +[2618292.035] {Default Queue} -> wl_shm#3023.create_pool(new id wl_shm_pool#3035, fd 479, 16) +[2618292.042] {Default Queue} -> wl_shm#3023.create_pool(new id wl_shm_pool#3036, fd 480, 16) +[2618292.047] {Default Queue} -> wl_shm_pool#3035.create_buffer(new id wl_buffer#3037, 0, 2, 2, 8, 0) +[2618292.052] {Default Queue} -> wl_shm_pool#3036.create_buffer(new id wl_buffer#3038, 0, 2, 2, 8, 0) +[2618292.060] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) +[2618292.064] {Default Queue} -> wl_surface#3015.commit() +[2618292.070] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) +[2618292.074] {Default Queue} -> wl_surface#3015.commit() +[2618292.078] {Default Queue} -> wl_compositor#3020.create_region(new id wl_region#3039) +[2618292.083] {Default Queue} -> wl_compositor#3020.create_region(new id wl_region#3040) +[2618292.087] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) +[2618292.092] {Default Queue} -> wl_region#3039.add(0, 0, 0, 0) +[2618292.096] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618292.100] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618292.105] {Default Queue} -> wl_surface#3015.damage(0, 0, 2, 2) +[2618292.109] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) +[2618292.120] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) +[2618292.126] {Default Queue} -> wl_surface#3015.commit() +[2618292.160] {Default Queue} -> wl_shm#3025.create_pool(new id wl_shm_pool#3041, fd 483, 640) +[2618292.166] {Default Queue} -> wl_shm#3025.create_pool(new id wl_shm_pool#3042, fd 484, 640) +[2618292.171] {Default Queue} -> wl_shm_pool#3041.create_buffer(new id wl_buffer#3043, 0, 10, 16, 40, 0) +[2618292.176] {Default Queue} -> wl_shm_pool#3042.create_buffer(new id wl_buffer#3044, 0, 10, 16, 40, 0) +[2618292.183] {Default Queue} -> wl_compositor#3020.create_surface(new id wl_surface#3045) +[2618292.187] {Default Queue} -> wl_surface#3045.attach(wl_buffer#3043, 0, 0) +[2618292.192] {Default Queue} -> wl_surface#3045.commit() +[2618292.197] {Default Queue} -> wl_surface#3045.attach(wl_buffer#3043, 0, 0) +[2618292.201] {Default Queue} -> wl_surface#3045.commit() +[2618292.206] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) +[2618292.212] {Default Queue} -> wl_surface#3015.damage(0, 0, 2, 2) +[2618292.216] {Default Queue} -> wl_surface#3015.damage(0, 0, 2, 2) +[2618292.223] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3046) +[2618292.228] {Default Queue} -> wl_display#1.sync(new id wl_callback#3047) +[2618296.404] {Default Queue} discarded wl_surface#2983.enter(wl_output#2649) +[2618296.417] {Default Queue} discarded wl_surface#2983.enter(wl_output#2681) +[2618296.422] {Default Queue} discarded wl_surface#2983.enter(wl_output#2713) +[2618296.426] {Default Queue} discarded wl_surface#2983.enter(wl_output#2745) +[2618296.430] {Default Queue} discarded wl_surface#2983.enter(wl_output#2777) +[2618296.434] {Default Queue} discarded wl_surface#2983.enter(wl_output#2809) +[2618296.438] {Default Queue} discarded wl_surface#2983.enter(wl_output#2841) +[2618296.442] {Default Queue} discarded wl_surface#2983.enter(wl_output#2873) +[2618296.446] {Default Queue} discarded wl_surface#2983.enter(wl_output#2905) +[2618296.451] {Default Queue} discarded wl_surface#2983.enter(wl_output#2937) +[2618296.454] {Default Queue} discarded wl_surface#2983.enter(wl_output#2969) +[2618296.458] {Default Queue} discarded wl_surface#2983.enter(wl_output#3001) +[2618296.741] {Display Queue} wl_display#1.delete_id(3047) +[2618296.747] {Default Queue} wl_keyboard#3016.keymap(1, fd 479, 68213) +[2618296.752] {Default Queue} wl_keyboard#3016.enter(566, wl_surface#19, array[0]) +[2618296.758] {Default Queue} wl_keyboard#3016.modifiers(566, 0, 0, 16, 0) +[2618296.763] {Default Queue} discarded wl_shm#3023.format(875709016) +[2618296.767] {Default Queue} discarded wl_shm#3023.format(1) +[2618296.770] {Default Queue} discarded wl_shm#3023.format(0) +[2618296.775] {Default Queue} discarded wl_shm#3023.format(875708993) +[2618296.779] {Default Queue} discarded wl_shm#3024.format(875709016) +[2618296.783] {Default Queue} discarded wl_shm#3024.format(1) +[2618296.786] {Default Queue} discarded wl_shm#3024.format(0) +[2618296.790] {Default Queue} discarded wl_shm#3024.format(875708993) +[2618296.794] {Default Queue} discarded wl_shm#3025.format(875709016) +[2618296.798] {Default Queue} discarded wl_shm#3025.format(1) +[2618296.802] {Default Queue} discarded wl_shm#3025.format(0) +[2618296.805] {Default Queue} discarded wl_shm#3025.format(875708993) +[2618296.809] {Default Queue} wl_seat#3032.capabilities(7) +[2618296.814] {Default Queue} -> wl_seat#3032.get_keyboard(new id wl_keyboard#3048) +[2618296.818] {Default Queue} -> wl_seat#3032.get_pointer(new id wl_pointer#3049) +[2618296.823] {Default Queue} -> wl_data_device_manager#3028.get_data_device(new id wl_data_device#3050, wl_seat#3032) +[2618296.828] {Default Queue} -> zwp_primary_selection_device_manager_v1#3030.get_device(new id zwp_primary_selection_device_v1#3051, wl_seat#3032) +[2618296.836] {Default Queue} wl_output#3033.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618296.841] {Default Queue} wl_output#3033.mode(3, 1280, 800, 60000) +[2618296.845] {Default Queue} discarded wl_surface#2727.enter(wl_output#3033) +[2618296.849] {Default Queue} discarded wl_surface#3.enter(wl_output#3033) +[2618296.860] {Default Queue} discarded wl_surface#999.enter(wl_output#3033) +[2618296.878] {Default Queue} discarded wl_surface#1191.enter(wl_output#3033) +[2618296.882] {Default Queue} discarded wl_surface#1159.enter(wl_output#3033) +[2618296.886] {Default Queue} discarded wl_surface#1703.enter(wl_output#3033) +[2618296.890] {Default Queue} discarded wl_surface#2215.enter(wl_output#3033) +[2618296.894] {Default Queue} discarded wl_surface#423.enter(wl_output#3033) +[2618296.898] {Default Queue} discarded wl_surface#1447.enter(wl_output#3033) +[2618296.901] {Default Queue} discarded wl_surface#2023.enter(wl_output#3033) +[2618296.905] {Default Queue} discarded wl_surface#1639.enter(wl_output#3033) +[2618296.910] {Default Queue} discarded wl_surface#1319.enter(wl_output#3033) +[2618296.914] {Default Queue} discarded wl_surface#1127.enter(wl_output#3033) +[2618296.919] {Default Queue} discarded wl_surface#2151.enter(wl_output#3033) +[2618296.925] {Default Queue} discarded wl_surface#2375.enter(wl_output#3033) +[2618296.930] {Default Queue} discarded wl_surface#2695.enter(wl_output#3033) +[2618296.935] {Default Queue} discarded wl_surface#2919.enter(wl_output#3033) +[2618296.939] {Default Queue} discarded wl_surface#1063.enter(wl_output#3033) +[2618296.943] {Default Queue} discarded wl_surface#455.enter(wl_output#3033) +[2618296.946] {Default Queue} discarded wl_surface#1575.enter(wl_output#3033) +[2618296.950] {Default Queue} discarded wl_surface#1799.enter(wl_output#3033) +[2618296.954] {Default Queue} discarded wl_surface#1415.enter(wl_output#3033) +[2618296.958] {Default Queue} discarded wl_surface#2439.enter(wl_output#3033) +[2618296.962] {Default Queue} discarded wl_surface#2279.enter(wl_output#3033) +[2618296.966] {Default Queue} discarded wl_surface#1831.enter(wl_output#3033) +[2618296.970] {Default Queue} discarded wl_surface#903.enter(wl_output#3033) +[2618296.974] {Default Queue} discarded wl_surface#2663.enter(wl_output#3033) +[2618296.978] {Default Queue} discarded wl_surface#775.enter(wl_output#3033) +[2618296.982] {Default Queue} discarded wl_surface#1991.enter(wl_output#3033) +[2618296.986] {Default Queue} discarded wl_surface#1543.enter(wl_output#3033) +[2618296.989] {Default Queue} discarded wl_surface#135.enter(wl_output#3033) +[2618296.993] {Default Queue} discarded wl_surface#1287.enter(wl_output#3033) +[2618296.997] {Default Queue} discarded wl_surface#1031.enter(wl_output#3033) +[2618297.001] {Default Queue} discarded wl_surface#615.enter(wl_output#3033) +[2618297.005] {Default Queue} discarded wl_surface#231.enter(wl_output#3033) +[2618297.009] {Default Queue} discarded wl_surface#2343.enter(wl_output#3033) +[2618297.013] {Default Queue} discarded wl_surface#1863.enter(wl_output#3033) +[2618297.017] {Default Queue} discarded wl_surface#359.enter(wl_output#3033) +[2618297.021] {Default Queue} discarded wl_surface#2983.enter(wl_output#3033) +[2618297.024] {Default Queue} discarded wl_surface#583.enter(wl_output#3033) +[2618297.028] {Default Queue} discarded wl_surface#743.enter(wl_output#3033) +[2618297.032] {Default Queue} discarded wl_surface#2535.enter(wl_output#3033) +[2618297.036] {Default Queue} discarded wl_surface#967.enter(wl_output#3033) +[2618297.040] {Default Queue} discarded wl_surface#103.enter(wl_output#3033) +[2618297.044] {Default Queue} discarded wl_surface#327.enter(wl_output#3033) +[2618297.048] {Default Queue} discarded wl_surface#43.enter(wl_output#3033) +[2618297.052] {Default Queue} discarded wl_surface#2247.enter(wl_output#3033) +[2618297.055] {Default Queue} discarded wl_surface#807.enter(wl_output#3033) +[2618297.059] {Default Queue} discarded wl_surface#19.enter(wl_output#3033) +[2618297.063] {Default Queue} discarded wl_surface#2951.enter(wl_output#3033) +[2618297.067] {Default Queue} discarded wl_surface#1511.enter(wl_output#3033) +[2618297.071] {Default Queue} discarded wl_surface#199.enter(wl_output#3033) +[2618297.075] {Default Queue} discarded wl_surface#391.enter(wl_output#3033) +[2618297.079] {Default Queue} discarded wl_surface#935.enter(wl_output#3033) +[2618297.082] {Default Queue} discarded wl_surface#2823.enter(wl_output#3033) +[2618297.090] {Default Queue} discarded wl_surface#1671.enter(wl_output#3033) +[2618297.095] {Default Queue} discarded wl_surface#1351.enter(wl_output#3033) +[2618297.099] {Default Queue} discarded wl_surface#711.enter(wl_output#3033) +[2618297.103] {Default Queue} discarded wl_surface#1223.enter(wl_output#3033) +[2618297.107] {Default Queue} discarded wl_surface#1927.enter(wl_output#3033) +[2618297.112] {Default Queue} discarded wl_surface#871.enter(wl_output#3033) +[2618297.116] {Default Queue} discarded wl_surface#1895.enter(wl_output#3033) +[2618297.119] {Default Queue} discarded wl_surface#263.enter(wl_output#3033) +[2618297.123] {Default Queue} discarded wl_surface#551.enter(wl_output#3033) +[2618297.127] {Default Queue} discarded wl_surface#1735.enter(wl_output#3033) +[2618297.131] {Default Queue} discarded wl_surface#1479.enter(wl_output#3033) +[2618297.135] {Default Queue} discarded wl_surface#1772.enter(wl_output#3033) +[2618297.139] {Default Queue} discarded wl_surface#2599.enter(wl_output#3033) +[2618297.143] {Default Queue} discarded wl_surface#2631.enter(wl_output#3033) +[2618297.147] {Default Queue} discarded wl_surface#1959.enter(wl_output#3033) +[2618297.150] {Default Queue} discarded wl_surface#647.enter(wl_output#3033) +[2618297.154] {Default Queue} discarded wl_surface#2055.enter(wl_output#3033) +[2618297.158] {Default Queue} discarded wl_surface#2508.enter(wl_output#3033) +[2618297.162] {Default Queue} discarded wl_surface#71.enter(wl_output#3033) +[2618297.166] {Default Queue} discarded wl_surface#2759.enter(wl_output#3033) +[2618297.170] {Default Queue} discarded wl_surface#2791.enter(wl_output#3033) +[2618297.174] {Default Queue} discarded wl_surface#2887.enter(wl_output#3033) +[2618297.178] {Default Queue} discarded wl_surface#2183.enter(wl_output#3033) +[2618297.182] {Default Queue} discarded wl_surface#2567.enter(wl_output#3033) +[2618297.186] {Default Queue} discarded wl_surface#839.enter(wl_output#3033) +[2618297.190] {Default Queue} discarded wl_surface#1607.enter(wl_output#3033) +[2618297.194] {Default Queue} discarded wl_surface#1095.enter(wl_output#3033) +[2618297.198] {Default Queue} discarded wl_surface#1383.enter(wl_output#3033) +[2618297.202] {Default Queue} discarded wl_surface#487.enter(wl_output#3033) +[2618297.206] {Default Queue} discarded wl_surface#2311.enter(wl_output#3033) +[2618297.210] {Default Queue} discarded wl_surface#519.enter(wl_output#3033) +[2618297.214] {Default Queue} discarded wl_surface#2087.enter(wl_output#3033) +[2618297.218] {Default Queue} discarded wl_surface#2471.enter(wl_output#3033) +[2618297.222] {Default Queue} discarded wl_surface#295.enter(wl_output#3033) +[2618297.226] {Default Queue} discarded wl_surface#167.enter(wl_output#3033) +[2618297.230] {Default Queue} discarded wl_surface#1255.enter(wl_output#3033) +[2618297.233] {Default Queue} discarded wl_surface#2855.enter(wl_output#3033) +[2618297.237] {Default Queue} discarded wl_surface#679.enter(wl_output#3033) +[2618297.241] {Default Queue} discarded wl_surface#2407.enter(wl_output#3033) +[2618297.245] {Default Queue} discarded wl_surface#2119.enter(wl_output#3033) +[2618297.250] {Default Queue} wl_registry#3046.global(1, "wl_compositor", 6) +[2618297.258] {Default Queue} -> wl_registry#3046.bind(1, "wl_compositor", 1, new id [unknown]#3052) +[2618297.265] {Default Queue} wl_registry#3046.global(2, "wl_subcompositor", 1) +[2618297.270] {Default Queue} -> wl_registry#3046.bind(2, "wl_subcompositor", 1, new id [unknown]#3053) +[2618297.275] {Default Queue} wl_registry#3046.global(3, "xdg_wm_base", 6) +[2618297.280] {Default Queue} -> wl_registry#3046.bind(3, "xdg_wm_base", 1, new id [unknown]#3054) +[2618297.285] {Default Queue} wl_registry#3046.global(6, "zwlr_layer_shell_v1", 5) +[2618297.290] {Default Queue} wl_registry#3046.global(7, "ext_session_lock_manager_v1", 1) +[2618297.294] {Default Queue} wl_registry#3046.global(8, "wl_shm", 2) +[2618297.299] {Default Queue} -> wl_registry#3046.bind(8, "wl_shm", 1, new id [unknown]#3055) +[2618297.303] {Default Queue} -> wl_registry#3046.bind(8, "wl_shm", 1, new id [unknown]#3056) +[2618297.310] {Default Queue} -> wl_registry#3046.bind(8, "wl_shm", 1, new id [unknown]#3057) +[2618297.316] {Default Queue} wl_registry#3046.global(9, "zxdg_output_manager_v1", 3) +[2618297.320] {Default Queue} wl_registry#3046.global(10, "wp_fractional_scale_manager_v1", 1) +[2618297.325] {Default Queue} wl_registry#3046.global(11, "zwp_tablet_manager_v2", 1) +[2618297.329] {Default Queue} wl_registry#3046.global(12, "zwp_pointer_gestures_v1", 3) +[2618297.333] {Default Queue} wl_registry#3046.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618297.338] {Default Queue} -> wl_registry#3046.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3058) +[2618297.342] {Default Queue} wl_registry#3046.global(14, "zwp_pointer_constraints_v1", 1) +[2618297.347] {Default Queue} -> wl_registry#3046.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3059) +[2618297.351] {Default Queue} wl_registry#3046.global(15, "ext_idle_notifier_v1", 2) +[2618297.356] {Default Queue} wl_registry#3046.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618297.360] {Default Queue} wl_registry#3046.global(17, "wl_data_device_manager", 3) +[2618297.365] {Default Queue} -> wl_registry#3046.bind(17, "wl_data_device_manager", 2, new id [unknown]#3060) +[2618297.370] {Default Queue} -> wl_data_device_manager#3060.create_data_source(new id wl_data_source#3061) +[2618297.375] {Default Queue} -> wl_data_source#3061.offer("text/plain") +[2618297.379] {Default Queue} -> wl_data_source#3061.offer("text/plain;charset=utf-8") +[2618297.383] {Default Queue} -> wl_data_source#3061.offer("TEXT") +[2618297.388] {Default Queue} -> wl_data_source#3061.offer("STRING") +[2618297.392] {Default Queue} -> wl_data_source#3061.offer("UTF8_STRING") +[2618297.396] {Default Queue} wl_registry#3046.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618297.401] {Default Queue} -> wl_registry#3046.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3062) +[2618297.409] {Default Queue} -> zwp_primary_selection_device_manager_v1#3062.create_source(new id zwp_primary_selection_source_v1#3063) +[2618297.417] {Default Queue} -> zwp_primary_selection_source_v1#3063.offer("text/plain") +[2618297.421] {Default Queue} -> zwp_primary_selection_source_v1#3063.offer("text/plain;charset=utf-8") +[2618297.425] {Default Queue} -> zwp_primary_selection_source_v1#3063.offer("TEXT") +[2618297.429] {Default Queue} -> zwp_primary_selection_source_v1#3063.offer("STRING") +[2618297.433] {Default Queue} -> zwp_primary_selection_source_v1#3063.offer("UTF8_STRING") +[2618297.437] {Default Queue} wl_registry#3046.global(19, "zwlr_data_control_manager_v1", 2) +[2618297.441] {Default Queue} wl_registry#3046.global(20, "ext_data_control_manager_v1", 1) +[2618297.446] {Default Queue} wl_registry#3046.global(21, "wp_presentation", 2) +[2618297.450] {Default Queue} wl_registry#3046.global(22, "wp_security_context_manager_v1", 1) +[2618297.454] {Default Queue} wl_registry#3046.global(23, "zwp_text_input_manager_v3", 1) +[2618297.459] {Default Queue} wl_registry#3046.global(24, "zwp_input_method_manager_v2", 1) +[2618297.463] {Default Queue} wl_registry#3046.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618297.468] {Default Queue} wl_registry#3046.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618297.472] {Default Queue} wl_registry#3046.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618297.476] {Default Queue} wl_registry#3046.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618297.481] {Default Queue} wl_registry#3046.global(29, "ext_workspace_manager_v1", 1) +[2618297.486] {Default Queue} wl_registry#3046.global(30, "zwlr_output_manager_v1", 4) +[2618297.490] {Default Queue} wl_registry#3046.global(31, "zwlr_screencopy_manager_v1", 3) +[2618297.494] {Default Queue} wl_registry#3046.global(32, "wp_viewporter", 1) +[2618297.499] {Default Queue} wl_registry#3046.global(33, "zxdg_exporter_v2", 1) +[2618297.503] {Default Queue} wl_registry#3046.global(34, "zxdg_importer_v2", 1) +[2618297.507] {Default Queue} wl_registry#3046.global(36, "xdg_activation_v1", 1) +[2618297.515] {Default Queue} wl_registry#3046.global(37, "mutter_x11_interop", 1) +[2618297.520] {Default Queue} wl_registry#3046.global(38, "wl_seat", 9) +[2618297.525] {Default Queue} -> wl_registry#3046.bind(38, "wl_seat", 1, new id [unknown]#3064) +[2618297.529] {Default Queue} wl_registry#3046.global(39, "wp_cursor_shape_manager_v1", 2) +[2618297.534] {Default Queue} wl_registry#3046.global(40, "wl_output", 4) +[2618297.538] {Default Queue} -> wl_registry#3046.bind(40, "wl_output", 1, new id [unknown]#3065) +[2618297.543] {Default Queue} wl_callback#3047.done(0) +[2618297.547] {Default Queue} discarded wl_surface#3015.enter(wl_output#18) +[2618297.551] {Default Queue} discarded wl_surface#3015.enter(wl_output#57) +[2618297.555] {Default Queue} discarded wl_surface#3015.enter(wl_output#89) +[2618297.559] {Default Queue} discarded wl_surface#3015.enter(wl_output#121) +[2618297.563] {Default Queue} discarded wl_surface#3015.enter(wl_output#153) +[2618297.567] {Default Queue} discarded wl_surface#3015.enter(wl_output#185) +[2618297.571] {Default Queue} discarded wl_surface#3015.enter(wl_output#217) +[2618297.575] {Default Queue} discarded wl_surface#3015.enter(wl_output#249) +[2618297.579] {Default Queue} discarded wl_surface#3015.enter(wl_output#281) +[2618297.583] {Default Queue} discarded wl_surface#3015.enter(wl_output#313) +[2618297.588] {Default Queue} discarded wl_surface#3015.enter(wl_output#345) +[2618297.592] {Default Queue} discarded wl_surface#3015.enter(wl_output#377) +[2618297.596] {Default Queue} discarded wl_surface#3015.enter(wl_output#409) +[2618297.599] {Default Queue} discarded wl_surface#3015.enter(wl_output#441) +[2618297.603] {Default Queue} discarded wl_surface#3015.enter(wl_output#473) +[2618297.609] {Default Queue} discarded wl_surface#3015.enter(wl_output#505) +[2618297.613] {Default Queue} discarded wl_surface#3015.enter(wl_output#537) +[2618297.617] {Default Queue} discarded wl_surface#3015.enter(wl_output#569) +[2618297.621] {Default Queue} discarded wl_surface#3015.enter(wl_output#601) +[2618297.625] {Default Queue} discarded wl_surface#3015.enter(wl_output#633) +[2618297.629] {Default Queue} discarded wl_surface#3015.enter(wl_output#665) +[2618297.632] {Default Queue} discarded wl_surface#3015.enter(wl_output#697) +[2618297.636] {Default Queue} discarded wl_surface#3015.enter(wl_output#729) +[2618297.640] {Default Queue} discarded wl_surface#3015.enter(wl_output#761) +[2618297.644] {Default Queue} discarded wl_surface#3015.enter(wl_output#793) +[2618297.648] {Default Queue} discarded wl_surface#3015.enter(wl_output#825) +[2618297.652] {Default Queue} discarded wl_surface#3015.enter(wl_output#857) +[2618297.656] {Default Queue} discarded wl_surface#3015.enter(wl_output#889) +[2618297.660] {Default Queue} discarded wl_surface#3015.enter(wl_output#921) +[2618297.664] {Default Queue} discarded wl_surface#3015.enter(wl_output#953) +[2618297.668] {Default Queue} discarded wl_surface#3015.enter(wl_output#985) +[2618297.672] {Default Queue} discarded wl_surface#3015.enter(wl_output#1017) +[2618297.676] {Default Queue} discarded wl_surface#3015.enter(wl_output#1049) +[2618297.680] {Default Queue} discarded wl_surface#3015.enter(wl_output#1081) +[2618297.684] {Default Queue} discarded wl_surface#3015.enter(wl_output#1113) +[2618297.688] {Default Queue} discarded wl_surface#3015.enter(wl_output#1145) +[2618297.692] {Default Queue} discarded wl_surface#3015.enter(wl_output#1177) +[2618297.696] {Default Queue} discarded wl_surface#3015.enter(wl_output#1209) +[2618297.700] {Default Queue} discarded wl_surface#3015.enter(wl_output#1241) +[2618297.703] {Default Queue} discarded wl_surface#3015.enter(wl_output#1273) +[2618297.708] {Default Queue} discarded wl_surface#3015.enter(wl_output#1305) +[2618297.712] {Default Queue} discarded wl_surface#3015.enter(wl_output#1337) +[2618297.716] {Default Queue} discarded wl_surface#3015.enter(wl_output#1369) +[2618297.720] {Default Queue} discarded wl_surface#3015.enter(wl_output#1401) +[2618297.724] {Default Queue} discarded wl_surface#3015.enter(wl_output#1433) +[2618297.731] {Default Queue} discarded wl_surface#3015.enter(wl_output#1465) +[2618297.736] {Default Queue} discarded wl_surface#3015.enter(wl_output#1497) +[2618297.741] {Default Queue} discarded wl_surface#3015.enter(wl_output#1529) +[2618297.745] {Default Queue} discarded wl_surface#3015.enter(wl_output#1561) +[2618297.748] {Default Queue} discarded wl_surface#3015.enter(wl_output#1593) +[2618297.752] {Default Queue} discarded wl_surface#3015.enter(wl_output#1625) +[2618297.757] {Default Queue} discarded wl_surface#3015.enter(wl_output#1657) +[2618297.761] {Default Queue} discarded wl_surface#3015.enter(wl_output#1689) +[2618297.764] {Default Queue} discarded wl_surface#3015.enter(wl_output#1721) +[2618297.768] {Default Queue} discarded wl_surface#3015.enter(wl_output#1753) +[2618297.773] {Default Queue} discarded wl_surface#3015.enter(wl_output#1785) +[2618297.777] {Default Queue} discarded wl_surface#3015.enter(wl_output#1817) +[2618297.781] {Default Queue} discarded wl_surface#3015.enter(wl_output#1849) +[2618297.784] {Default Queue} discarded wl_surface#3015.enter(wl_output#1881) +[2618297.788] {Default Queue} discarded wl_surface#3015.enter(wl_output#1913) +[2618297.793] {Default Queue} discarded wl_surface#3015.enter(wl_output#1945) +[2618297.796] {Default Queue} discarded wl_surface#3015.enter(wl_output#1977) +[2618297.801] {Default Queue} discarded wl_surface#3015.enter(wl_output#2009) +[2618297.804] {Default Queue} discarded wl_surface#3015.enter(wl_output#2041) +[2618297.808] {Default Queue} discarded wl_surface#3015.enter(wl_output#2073) +[2618297.812] {Default Queue} discarded wl_surface#3015.enter(wl_output#2105) +[2618297.816] {Default Queue} discarded wl_surface#3015.enter(wl_output#2137) +[2618297.820] {Default Queue} discarded wl_surface#3015.enter(wl_output#2169) +[2618297.824] {Default Queue} discarded wl_surface#3015.enter(wl_output#2201) +[2618297.828] {Default Queue} discarded wl_surface#3015.enter(wl_output#2233) +[2618297.832] {Default Queue} discarded wl_surface#3015.enter(wl_output#2265) +[2618297.836] {Default Queue} discarded wl_surface#3015.enter(wl_output#2297) +[2618297.840] {Default Queue} discarded wl_surface#3015.enter(wl_output#2329) +[2618297.844] {Default Queue} discarded wl_surface#3015.enter(wl_output#2361) +[2618297.848] {Default Queue} discarded wl_surface#3015.enter(wl_output#2393) +[2618297.852] {Default Queue} discarded wl_surface#3015.enter(wl_output#2425) +[2618297.856] {Default Queue} discarded wl_surface#3015.enter(wl_output#2457) +[2618297.860] {Default Queue} discarded wl_surface#3015.enter(wl_output#2489) +[2618297.870] {Default Queue} discarded wl_surface#3015.enter(wl_output#2521) +[2618297.874] {Default Queue} discarded wl_surface#3015.enter(wl_output#2553) +[2618297.878] {Default Queue} discarded wl_surface#3015.enter(wl_output#2585) +[2618297.883] {Default Queue} -> wl_compositor#3020.create_surface(new id wl_surface#3047) +[2618297.887] {Default Queue} -> wl_subcompositor#3053.get_subsurface(new id wl_subsurface#3066, wl_surface#3047, wl_surface#3015) +[2618297.896] {Default Queue} -> wl_subsurface#3066.set_desync() +[2618297.900] {Default Queue} -> wl_subsurface#3066.set_position(0, 0) +[2618297.905] {Default Queue} -> wl_subsurface#3066.place_above(wl_surface#3015) +[2618297.958] {Default Queue} -> wl_shm#3055.create_pool(new id wl_shm_pool#3067, fd 484, 16) +[2618297.966] {Default Queue} -> wl_shm#3055.create_pool(new id wl_shm_pool#3068, fd 485, 16) +[2618297.970] {Default Queue} -> wl_shm_pool#3067.create_buffer(new id wl_buffer#3069, 0, 2, 2, 8, 0) +[2618297.975] {Default Queue} -> wl_shm_pool#3068.create_buffer(new id wl_buffer#3070, 0, 2, 2, 8, 0) +[2618297.986] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3069, 0, 0) +[2618297.992] {Default Queue} -> wl_surface#3047.commit() +[2618298.000] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3069, 0, 0) +[2618298.006] {Default Queue} -> wl_surface#3047.commit() +[2618298.012] {Default Queue} -> wl_compositor#3052.create_region(new id wl_region#3071) +[2618298.019] {Default Queue} -> wl_compositor#3052.create_region(new id wl_region#3072) +[2618298.030] {Default Queue} -> wl_region#3071.subtract(0, 0, 2, 2) +[2618298.040] {Default Queue} -> wl_region#3071.add(0, 0, 0, 0) +[2618298.046] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) +[2618298.052] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) +[2618298.057] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) +[2618298.063] {Default Queue} -> wl_surface#3015.damage(0, 0, 2, 2) +[2618298.073] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3069, 0, 0) +[2618298.079] {Default Queue} -> wl_surface#3047.commit() +[2618298.135] {Default Queue} -> wl_shm#3057.create_pool(new id wl_shm_pool#3073, fd 488, 640) +[2618298.148] {Default Queue} -> wl_shm#3057.create_pool(new id wl_shm_pool#3074, fd 489, 640) +[2618298.155] {Default Queue} -> wl_shm_pool#3073.create_buffer(new id wl_buffer#3075, 0, 10, 16, 40, 0) +[2618298.161] {Default Queue} -> wl_shm_pool#3074.create_buffer(new id wl_buffer#3076, 0, 10, 16, 40, 0) +[2618298.169] {Default Queue} -> wl_compositor#3052.create_surface(new id wl_surface#3077) +[2618298.174] {Default Queue} -> wl_surface#3077.attach(wl_buffer#3075, 0, 0) +[2618298.180] {Default Queue} -> wl_surface#3077.commit() +[2618298.189] {Default Queue} -> wl_surface#3077.attach(wl_buffer#3075, 0, 0) +[2618298.195] {Default Queue} -> wl_surface#3077.commit() +[2618298.203] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) +[2618298.213] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3078) +[2618298.221] {Default Queue} -> wl_display#1.sync(new id wl_callback#3079) +[2618300.732] {Default Queue} discarded wl_surface#3015.enter(wl_output#2617) +[2618300.746] {Default Queue} discarded wl_surface#3015.enter(wl_output#2649) +[2618300.752] {Default Queue} discarded wl_surface#3015.enter(wl_output#2681) +[2618300.757] {Default Queue} discarded wl_surface#3015.enter(wl_output#2713) +[2618300.762] {Default Queue} discarded wl_surface#3015.enter(wl_output#2745) +[2618300.766] {Default Queue} discarded wl_surface#3015.enter(wl_output#2777) +[2618300.772] {Default Queue} discarded wl_surface#3015.enter(wl_output#2809) +[2618300.776] {Default Queue} discarded wl_surface#3015.enter(wl_output#2841) +[2618300.781] {Default Queue} discarded wl_surface#3015.enter(wl_output#2873) +[2618300.786] {Default Queue} discarded wl_surface#3015.enter(wl_output#2905) +[2618300.791] {Default Queue} discarded wl_surface#3015.enter(wl_output#2937) +[2618300.796] {Default Queue} discarded wl_surface#3015.enter(wl_output#2969) +[2618300.801] {Default Queue} discarded wl_surface#3015.enter(wl_output#3001) +[2618300.806] {Default Queue} discarded wl_surface#3015.enter(wl_output#3033) +[2618301.067] {Display Queue} wl_display#1.delete_id(3079) +[2618301.083] {Default Queue} wl_keyboard#3048.keymap(1, fd 484, 68213) +[2618301.089] {Default Queue} wl_keyboard#3048.enter(566, wl_surface#19, array[0]) +[2618301.095] {Default Queue} wl_keyboard#3048.modifiers(566, 0, 0, 16, 0) +[2618301.101] {Default Queue} discarded wl_shm#3055.format(875709016) +[2618301.106] {Default Queue} discarded wl_shm#3055.format(1) +[2618301.111] {Default Queue} discarded wl_shm#3055.format(0) +[2618301.116] {Default Queue} discarded wl_shm#3055.format(875708993) +[2618301.121] {Default Queue} discarded wl_shm#3056.format(875709016) +[2618301.126] {Default Queue} discarded wl_shm#3056.format(1) +[2618301.131] {Default Queue} discarded wl_shm#3056.format(0) +[2618301.136] {Default Queue} discarded wl_shm#3056.format(875708993) +[2618301.141] {Default Queue} discarded wl_shm#3057.format(875709016) +[2618301.145] {Default Queue} discarded wl_shm#3057.format(1) +[2618301.150] {Default Queue} discarded wl_shm#3057.format(0) +[2618301.155] {Default Queue} discarded wl_shm#3057.format(875708993) +[2618301.160] {Default Queue} wl_seat#3064.capabilities(7) +[2618301.166] {Default Queue} -> wl_seat#3064.get_keyboard(new id wl_keyboard#3080) +[2618301.172] {Default Queue} -> wl_seat#3064.get_pointer(new id wl_pointer#3081) +[2618301.177] {Default Queue} -> wl_data_device_manager#3060.get_data_device(new id wl_data_device#3082, wl_seat#3064) +[2618301.188] {Default Queue} -> zwp_primary_selection_device_manager_v1#3062.get_device(new id zwp_primary_selection_device_v1#3083, wl_seat#3064) +[2618301.202] {Default Queue} wl_output#3065.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618301.209] {Default Queue} wl_output#3065.mode(3, 1280, 800, 60000) +[2618301.214] {Default Queue} discarded wl_surface#2727.enter(wl_output#3065) +[2618301.220] {Default Queue} discarded wl_surface#3.enter(wl_output#3065) +[2618301.224] {Default Queue} discarded wl_surface#999.enter(wl_output#3065) +[2618301.229] {Default Queue} discarded wl_surface#1191.enter(wl_output#3065) +[2618301.234] {Default Queue} discarded wl_surface#1159.enter(wl_output#3065) +[2618301.239] {Default Queue} discarded wl_surface#1703.enter(wl_output#3065) +[2618301.244] {Default Queue} discarded wl_surface#2215.enter(wl_output#3065) +[2618301.249] {Default Queue} discarded wl_surface#423.enter(wl_output#3065) +[2618301.254] {Default Queue} discarded wl_surface#1447.enter(wl_output#3065) +[2618301.259] {Default Queue} discarded wl_surface#2023.enter(wl_output#3065) +[2618301.263] {Default Queue} discarded wl_surface#1639.enter(wl_output#3065) +[2618301.269] {Default Queue} discarded wl_surface#1319.enter(wl_output#3065) +[2618301.274] {Default Queue} discarded wl_surface#1127.enter(wl_output#3065) +[2618301.278] {Default Queue} discarded wl_surface#2151.enter(wl_output#3065) +[2618301.282] {Default Queue} discarded wl_surface#2375.enter(wl_output#3065) +[2618301.285] {Default Queue} discarded wl_surface#2695.enter(wl_output#3065) +[2618301.289] {Default Queue} discarded wl_surface#2919.enter(wl_output#3065) +[2618301.293] {Default Queue} discarded wl_surface#1063.enter(wl_output#3065) +[2618301.297] {Default Queue} discarded wl_surface#455.enter(wl_output#3065) +[2618301.301] {Default Queue} discarded wl_surface#1575.enter(wl_output#3065) +[2618301.305] {Default Queue} discarded wl_surface#1799.enter(wl_output#3065) +[2618301.309] {Default Queue} discarded wl_surface#1415.enter(wl_output#3065) +[2618301.312] {Default Queue} discarded wl_surface#2439.enter(wl_output#3065) +[2618301.316] {Default Queue} discarded wl_surface#2279.enter(wl_output#3065) +[2618301.320] {Default Queue} discarded wl_surface#1831.enter(wl_output#3065) +[2618301.324] {Default Queue} discarded wl_surface#903.enter(wl_output#3065) +[2618301.328] {Default Queue} discarded wl_surface#2663.enter(wl_output#3065) +[2618301.332] {Default Queue} discarded wl_surface#775.enter(wl_output#3065) +[2618301.336] {Default Queue} discarded wl_surface#1991.enter(wl_output#3065) +[2618301.340] {Default Queue} discarded wl_surface#1543.enter(wl_output#3065) +[2618301.344] {Default Queue} discarded wl_surface#135.enter(wl_output#3065) +[2618301.348] {Default Queue} discarded wl_surface#1287.enter(wl_output#3065) +[2618301.351] {Default Queue} discarded wl_surface#1031.enter(wl_output#3065) +[2618301.355] {Default Queue} discarded wl_surface#615.enter(wl_output#3065) +[2618301.359] {Default Queue} discarded wl_surface#231.enter(wl_output#3065) +[2618301.363] {Default Queue} discarded wl_surface#2343.enter(wl_output#3065) +[2618301.367] {Default Queue} discarded wl_surface#1863.enter(wl_output#3065) +[2618301.371] {Default Queue} discarded wl_surface#359.enter(wl_output#3065) +[2618301.375] {Default Queue} discarded wl_surface#2983.enter(wl_output#3065) +[2618301.379] {Default Queue} discarded wl_surface#583.enter(wl_output#3065) +[2618301.382] {Default Queue} discarded wl_surface#743.enter(wl_output#3065) +[2618301.386] {Default Queue} discarded wl_surface#2535.enter(wl_output#3065) +[2618301.390] {Default Queue} discarded wl_surface#967.enter(wl_output#3065) +[2618301.394] {Default Queue} discarded wl_surface#103.enter(wl_output#3065) +[2618301.398] {Default Queue} discarded wl_surface#327.enter(wl_output#3065) +[2618301.402] {Default Queue} discarded wl_surface#43.enter(wl_output#3065) +[2618301.406] {Default Queue} discarded wl_surface#2247.enter(wl_output#3065) +[2618301.410] {Default Queue} discarded wl_surface#807.enter(wl_output#3065) +[2618301.414] {Default Queue} discarded wl_surface#19.enter(wl_output#3065) +[2618301.421] {Default Queue} discarded wl_surface#2951.enter(wl_output#3065) +[2618301.426] {Default Queue} discarded wl_surface#1511.enter(wl_output#3065) +[2618301.430] {Default Queue} discarded wl_surface#199.enter(wl_output#3065) +[2618301.434] {Default Queue} discarded wl_surface#391.enter(wl_output#3065) +[2618301.438] {Default Queue} discarded wl_surface#935.enter(wl_output#3065) +[2618301.442] {Default Queue} discarded wl_surface#2823.enter(wl_output#3065) +[2618301.446] {Default Queue} discarded wl_surface#3015.enter(wl_output#3065) +[2618301.449] {Default Queue} discarded wl_surface#1671.enter(wl_output#3065) +[2618301.453] {Default Queue} discarded wl_surface#1351.enter(wl_output#3065) +[2618301.457] {Default Queue} discarded wl_surface#711.enter(wl_output#3065) +[2618301.462] {Default Queue} discarded wl_surface#1223.enter(wl_output#3065) +[2618301.466] {Default Queue} discarded wl_surface#1927.enter(wl_output#3065) +[2618301.469] {Default Queue} discarded wl_surface#871.enter(wl_output#3065) +[2618301.473] {Default Queue} discarded wl_surface#1895.enter(wl_output#3065) +[2618301.477] {Default Queue} discarded wl_surface#263.enter(wl_output#3065) +[2618301.481] {Default Queue} discarded wl_surface#551.enter(wl_output#3065) +[2618301.485] {Default Queue} discarded wl_surface#1735.enter(wl_output#3065) +[2618301.489] {Default Queue} discarded wl_surface#1479.enter(wl_output#3065) +[2618301.493] {Default Queue} discarded wl_surface#1772.enter(wl_output#3065) +[2618301.497] {Default Queue} discarded wl_surface#2599.enter(wl_output#3065) +[2618301.501] {Default Queue} discarded wl_surface#2631.enter(wl_output#3065) +[2618301.504] {Default Queue} discarded wl_surface#1959.enter(wl_output#3065) +[2618301.508] {Default Queue} discarded wl_surface#647.enter(wl_output#3065) +[2618301.512] {Default Queue} discarded wl_surface#2055.enter(wl_output#3065) +[2618301.516] {Default Queue} discarded wl_surface#2508.enter(wl_output#3065) +[2618301.520] {Default Queue} discarded wl_surface#71.enter(wl_output#3065) +[2618301.524] {Default Queue} discarded wl_surface#2759.enter(wl_output#3065) +[2618301.528] {Default Queue} discarded wl_surface#2791.enter(wl_output#3065) +[2618301.532] {Default Queue} discarded wl_surface#2887.enter(wl_output#3065) +[2618301.536] {Default Queue} discarded wl_surface#2183.enter(wl_output#3065) +[2618301.539] {Default Queue} discarded wl_surface#2567.enter(wl_output#3065) +[2618301.543] {Default Queue} discarded wl_surface#839.enter(wl_output#3065) +[2618301.547] {Default Queue} discarded wl_surface#1607.enter(wl_output#3065) +[2618301.551] {Default Queue} discarded wl_surface#1095.enter(wl_output#3065) +[2618301.555] {Default Queue} discarded wl_surface#1383.enter(wl_output#3065) +[2618301.559] {Default Queue} discarded wl_surface#487.enter(wl_output#3065) +[2618301.563] {Default Queue} discarded wl_surface#2311.enter(wl_output#3065) +[2618301.567] {Default Queue} discarded wl_surface#519.enter(wl_output#3065) +[2618301.571] {Default Queue} discarded wl_surface#2087.enter(wl_output#3065) +[2618301.575] {Default Queue} discarded wl_surface#2471.enter(wl_output#3065) +[2618301.578] {Default Queue} discarded wl_surface#295.enter(wl_output#3065) +[2618301.582] {Default Queue} discarded wl_surface#167.enter(wl_output#3065) +[2618301.586] {Default Queue} discarded wl_surface#1255.enter(wl_output#3065) +[2618301.590] {Default Queue} discarded wl_surface#2855.enter(wl_output#3065) +[2618301.594] {Default Queue} discarded wl_surface#679.enter(wl_output#3065) +[2618301.598] {Default Queue} discarded wl_surface#2407.enter(wl_output#3065) +[2618301.602] {Default Queue} discarded wl_surface#2119.enter(wl_output#3065) +[2618301.606] {Default Queue} wl_registry#3078.global(1, "wl_compositor", 6) +[2618301.611] {Default Queue} -> wl_registry#3078.bind(1, "wl_compositor", 1, new id [unknown]#3084) +[2618301.616] {Default Queue} wl_registry#3078.global(2, "wl_subcompositor", 1) +[2618301.620] {Default Queue} -> wl_registry#3078.bind(2, "wl_subcompositor", 1, new id [unknown]#3085) +[2618301.625] {Default Queue} wl_registry#3078.global(3, "xdg_wm_base", 6) +[2618301.632] {Default Queue} -> wl_registry#3078.bind(3, "xdg_wm_base", 1, new id [unknown]#3086) +[2618301.638] {Default Queue} wl_registry#3078.global(6, "zwlr_layer_shell_v1", 5) +[2618301.643] {Default Queue} wl_registry#3078.global(7, "ext_session_lock_manager_v1", 1) +[2618301.648] {Default Queue} wl_registry#3078.global(8, "wl_shm", 2) +[2618301.652] {Default Queue} -> wl_registry#3078.bind(8, "wl_shm", 1, new id [unknown]#3087) +[2618301.657] {Default Queue} -> wl_registry#3078.bind(8, "wl_shm", 1, new id [unknown]#3088) +[2618301.661] {Default Queue} -> wl_registry#3078.bind(8, "wl_shm", 1, new id [unknown]#3089) +[2618301.665] {Default Queue} wl_registry#3078.global(9, "zxdg_output_manager_v1", 3) +[2618301.670] {Default Queue} wl_registry#3078.global(10, "wp_fractional_scale_manager_v1", 1) +[2618301.674] {Default Queue} wl_registry#3078.global(11, "zwp_tablet_manager_v2", 1) +[2618301.678] {Default Queue} wl_registry#3078.global(12, "zwp_pointer_gestures_v1", 3) +[2618301.683] {Default Queue} wl_registry#3078.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618301.687] {Default Queue} -> wl_registry#3078.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3090) +[2618301.692] {Default Queue} wl_registry#3078.global(14, "zwp_pointer_constraints_v1", 1) +[2618301.696] {Default Queue} -> wl_registry#3078.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3091) +[2618301.701] {Default Queue} wl_registry#3078.global(15, "ext_idle_notifier_v1", 2) +[2618301.705] {Default Queue} wl_registry#3078.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618301.710] {Default Queue} wl_registry#3078.global(17, "wl_data_device_manager", 3) +[2618301.714] {Default Queue} -> wl_registry#3078.bind(17, "wl_data_device_manager", 2, new id [unknown]#3092) +[2618301.719] {Default Queue} -> wl_data_device_manager#3092.create_data_source(new id wl_data_source#3093) +[2618301.723] {Default Queue} -> wl_data_source#3093.offer("text/plain") +[2618301.727] {Default Queue} -> wl_data_source#3093.offer("text/plain;charset=utf-8") +[2618301.732] {Default Queue} -> wl_data_source#3093.offer("TEXT") +[2618301.735] {Default Queue} -> wl_data_source#3093.offer("STRING") +[2618301.739] {Default Queue} -> wl_data_source#3093.offer("UTF8_STRING") +[2618301.744] {Default Queue} wl_registry#3078.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618301.748] {Default Queue} -> wl_registry#3078.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3094) +[2618301.756] {Default Queue} -> zwp_primary_selection_device_manager_v1#3094.create_source(new id zwp_primary_selection_source_v1#3095) +[2618301.764] {Default Queue} -> zwp_primary_selection_source_v1#3095.offer("text/plain") +[2618301.768] {Default Queue} -> zwp_primary_selection_source_v1#3095.offer("text/plain;charset=utf-8") +[2618301.772] {Default Queue} -> zwp_primary_selection_source_v1#3095.offer("TEXT") +[2618301.776] {Default Queue} -> zwp_primary_selection_source_v1#3095.offer("STRING") +[2618301.780] {Default Queue} -> zwp_primary_selection_source_v1#3095.offer("UTF8_STRING") +[2618301.784] {Default Queue} wl_registry#3078.global(19, "zwlr_data_control_manager_v1", 2) +[2618301.789] {Default Queue} wl_registry#3078.global(20, "ext_data_control_manager_v1", 1) +[2618301.793] {Default Queue} wl_registry#3078.global(21, "wp_presentation", 2) +[2618301.798] {Default Queue} wl_registry#3078.global(22, "wp_security_context_manager_v1", 1) +[2618301.803] {Default Queue} wl_registry#3078.global(23, "zwp_text_input_manager_v3", 1) +[2618301.808] {Default Queue} wl_registry#3078.global(24, "zwp_input_method_manager_v2", 1) +[2618301.812] {Default Queue} wl_registry#3078.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618301.816] {Default Queue} wl_registry#3078.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618301.820] {Default Queue} wl_registry#3078.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618301.825] {Default Queue} wl_registry#3078.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618301.829] {Default Queue} wl_registry#3078.global(29, "ext_workspace_manager_v1", 1) +[2618301.841] {Default Queue} wl_registry#3078.global(30, "zwlr_output_manager_v1", 4) +[2618301.847] {Default Queue} wl_registry#3078.global(31, "zwlr_screencopy_manager_v1", 3) +[2618301.851] {Default Queue} wl_registry#3078.global(32, "wp_viewporter", 1) +[2618301.855] {Default Queue} wl_registry#3078.global(33, "zxdg_exporter_v2", 1) +[2618301.860] {Default Queue} wl_registry#3078.global(34, "zxdg_importer_v2", 1) +[2618301.870] {Default Queue} wl_registry#3078.global(36, "xdg_activation_v1", 1) +[2618301.874] {Default Queue} wl_registry#3078.global(37, "mutter_x11_interop", 1) +[2618301.878] {Default Queue} wl_registry#3078.global(38, "wl_seat", 9) +[2618301.883] {Default Queue} -> wl_registry#3078.bind(38, "wl_seat", 1, new id [unknown]#3096) +[2618301.887] {Default Queue} wl_registry#3078.global(39, "wp_cursor_shape_manager_v1", 2) +[2618301.892] {Default Queue} wl_registry#3078.global(40, "wl_output", 4) +[2618301.896] {Default Queue} -> wl_registry#3078.bind(40, "wl_output", 1, new id [unknown]#3097) +[2618301.901] {Default Queue} wl_callback#3079.done(0) +[2618301.905] {Default Queue} discarded wl_surface#3047.enter(wl_output#18) +[2618301.909] {Default Queue} discarded wl_surface#3047.enter(wl_output#57) +[2618301.913] {Default Queue} discarded wl_surface#3047.enter(wl_output#89) +[2618301.919] {Default Queue} discarded wl_surface#3047.enter(wl_output#121) +[2618301.924] {Default Queue} discarded wl_surface#3047.enter(wl_output#153) +[2618301.929] {Default Queue} discarded wl_surface#3047.enter(wl_output#185) +[2618301.935] {Default Queue} discarded wl_surface#3047.enter(wl_output#217) +[2618301.940] {Default Queue} discarded wl_surface#3047.enter(wl_output#249) +[2618301.944] {Default Queue} discarded wl_surface#3047.enter(wl_output#281) +[2618301.948] {Default Queue} discarded wl_surface#3047.enter(wl_output#313) +[2618301.952] {Default Queue} discarded wl_surface#3047.enter(wl_output#345) +[2618301.956] {Default Queue} discarded wl_surface#3047.enter(wl_output#377) +[2618301.960] {Default Queue} discarded wl_surface#3047.enter(wl_output#409) +[2618301.964] {Default Queue} discarded wl_surface#3047.enter(wl_output#441) +[2618301.968] {Default Queue} discarded wl_surface#3047.enter(wl_output#473) +[2618301.972] {Default Queue} discarded wl_surface#3047.enter(wl_output#505) +[2618301.976] {Default Queue} discarded wl_surface#3047.enter(wl_output#537) +[2618301.980] {Default Queue} discarded wl_surface#3047.enter(wl_output#569) +[2618301.984] {Default Queue} discarded wl_surface#3047.enter(wl_output#601) +[2618301.988] {Default Queue} discarded wl_surface#3047.enter(wl_output#633) +[2618301.992] {Default Queue} discarded wl_surface#3047.enter(wl_output#665) +[2618301.996] {Default Queue} discarded wl_surface#3047.enter(wl_output#697) +[2618302.000] {Default Queue} discarded wl_surface#3047.enter(wl_output#729) +[2618302.004] {Default Queue} discarded wl_surface#3047.enter(wl_output#761) +[2618302.008] {Default Queue} discarded wl_surface#3047.enter(wl_output#793) +[2618302.012] {Default Queue} discarded wl_surface#3047.enter(wl_output#825) +[2618302.016] {Default Queue} discarded wl_surface#3047.enter(wl_output#857) +[2618302.020] {Default Queue} discarded wl_surface#3047.enter(wl_output#889) +[2618302.024] {Default Queue} discarded wl_surface#3047.enter(wl_output#921) +[2618302.028] {Default Queue} discarded wl_surface#3047.enter(wl_output#953) +[2618302.032] {Default Queue} discarded wl_surface#3047.enter(wl_output#985) +[2618302.036] {Default Queue} discarded wl_surface#3047.enter(wl_output#1017) +[2618302.040] {Default Queue} discarded wl_surface#3047.enter(wl_output#1049) +[2618302.044] {Default Queue} discarded wl_surface#3047.enter(wl_output#1081) +[2618302.047] {Default Queue} discarded wl_surface#3047.enter(wl_output#1113) +[2618302.051] {Default Queue} discarded wl_surface#3047.enter(wl_output#1145) +[2618302.056] {Default Queue} discarded wl_surface#3047.enter(wl_output#1177) +[2618302.060] {Default Queue} discarded wl_surface#3047.enter(wl_output#1209) +[2618302.064] {Default Queue} discarded wl_surface#3047.enter(wl_output#1241) +[2618302.071] {Default Queue} discarded wl_surface#3047.enter(wl_output#1273) +[2618302.077] {Default Queue} discarded wl_surface#3047.enter(wl_output#1305) +[2618302.081] {Default Queue} discarded wl_surface#3047.enter(wl_output#1337) +[2618302.085] {Default Queue} discarded wl_surface#3047.enter(wl_output#1369) +[2618302.090] {Default Queue} discarded wl_surface#3047.enter(wl_output#1401) +[2618302.094] {Default Queue} discarded wl_surface#3047.enter(wl_output#1433) +[2618302.098] {Default Queue} discarded wl_surface#3047.enter(wl_output#1465) +[2618302.102] {Default Queue} discarded wl_surface#3047.enter(wl_output#1497) +[2618302.106] {Default Queue} discarded wl_surface#3047.enter(wl_output#1529) +[2618302.110] {Default Queue} discarded wl_surface#3047.enter(wl_output#1561) +[2618302.114] {Default Queue} discarded wl_surface#3047.enter(wl_output#1593) +[2618302.118] {Default Queue} discarded wl_surface#3047.enter(wl_output#1625) +[2618302.123] {Default Queue} discarded wl_surface#3047.enter(wl_output#1657) +[2618302.127] {Default Queue} discarded wl_surface#3047.enter(wl_output#1689) +[2618302.131] {Default Queue} discarded wl_surface#3047.enter(wl_output#1721) +[2618302.134] {Default Queue} discarded wl_surface#3047.enter(wl_output#1753) +[2618302.138] {Default Queue} discarded wl_surface#3047.enter(wl_output#1785) +[2618302.143] {Default Queue} discarded wl_surface#3047.enter(wl_output#1817) +[2618302.147] {Default Queue} discarded wl_surface#3047.enter(wl_output#1849) +[2618302.150] {Default Queue} discarded wl_surface#3047.enter(wl_output#1881) +[2618302.154] {Default Queue} discarded wl_surface#3047.enter(wl_output#1913) +[2618302.158] {Default Queue} discarded wl_surface#3047.enter(wl_output#1945) +[2618302.162] {Default Queue} discarded wl_surface#3047.enter(wl_output#1977) +[2618302.166] {Default Queue} discarded wl_surface#3047.enter(wl_output#2009) +[2618302.170] {Default Queue} discarded wl_surface#3047.enter(wl_output#2041) +[2618302.174] {Default Queue} discarded wl_surface#3047.enter(wl_output#2073) +[2618302.178] {Default Queue} discarded wl_surface#3047.enter(wl_output#2105) +[2618302.183] {Default Queue} discarded wl_surface#3047.enter(wl_output#2137) +[2618302.187] {Default Queue} discarded wl_surface#3047.enter(wl_output#2169) +[2618302.191] {Default Queue} discarded wl_surface#3047.enter(wl_output#2201) +[2618302.194] {Default Queue} discarded wl_surface#3047.enter(wl_output#2233) +[2618302.198] {Default Queue} discarded wl_surface#3047.enter(wl_output#2265) +[2618302.202] {Default Queue} discarded wl_surface#3047.enter(wl_output#2297) +[2618302.206] {Default Queue} discarded wl_surface#3047.enter(wl_output#2329) +[2618302.210] {Default Queue} discarded wl_surface#3047.enter(wl_output#2361) +[2618302.214] {Default Queue} discarded wl_surface#3047.enter(wl_output#2393) +[2618302.218] {Default Queue} discarded wl_surface#3047.enter(wl_output#2425) +[2618302.222] {Default Queue} discarded wl_surface#3047.enter(wl_output#2457) +[2618302.226] {Default Queue} discarded wl_surface#3047.enter(wl_output#2489) +[2618302.230] {Default Queue} discarded wl_surface#3047.enter(wl_output#2521) +[2618302.234] {Default Queue} discarded wl_surface#3047.enter(wl_output#2553) +[2618302.238] {Default Queue} -> wl_compositor#3052.create_surface(new id wl_surface#3079) +[2618302.243] {Default Queue} -> wl_subcompositor#3085.get_subsurface(new id wl_subsurface#3098, wl_surface#3079, wl_surface#3047) +[2618302.251] {Default Queue} -> wl_subsurface#3098.set_desync() +[2618302.256] {Default Queue} -> wl_subsurface#3098.set_position(0, 0) +[2618302.260] {Default Queue} -> wl_subsurface#3098.place_above(wl_surface#3047) +[2618302.302] {Default Queue} -> wl_shm#3087.create_pool(new id wl_shm_pool#3099, fd 489, 16) +[2618302.309] {Default Queue} -> wl_shm#3087.create_pool(new id wl_shm_pool#3100, fd 490, 16) +[2618302.313] {Default Queue} -> wl_shm_pool#3099.create_buffer(new id wl_buffer#3101, 0, 2, 2, 8, 0) +[2618302.319] {Default Queue} -> wl_shm_pool#3100.create_buffer(new id wl_buffer#3102, 0, 2, 2, 8, 0) +[2618302.327] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) +[2618302.335] {Default Queue} -> wl_surface#3079.commit() +[2618302.342] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) +[2618302.347] {Default Queue} -> wl_surface#3079.commit() +[2618302.351] {Default Queue} -> wl_compositor#3084.create_region(new id wl_region#3103) +[2618302.356] {Default Queue} -> wl_compositor#3084.create_region(new id wl_region#3104) +[2618302.360] {Default Queue} -> wl_region#3103.subtract(0, 0, 2, 2) +[2618302.365] {Default Queue} -> wl_region#3103.add(0, 0, 0, 0) +[2618302.369] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2618302.373] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2618302.378] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618302.382] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) +[2618302.389] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) +[2618302.394] {Default Queue} -> wl_surface#3079.commit() +[2618302.432] {Default Queue} -> wl_shm#3089.create_pool(new id wl_shm_pool#3105, fd 493, 640) +[2618302.439] {Default Queue} -> wl_shm#3089.create_pool(new id wl_shm_pool#3106, fd 494, 640) +[2618302.443] {Default Queue} -> wl_shm_pool#3105.create_buffer(new id wl_buffer#3107, 0, 10, 16, 40, 0) +[2618302.448] {Default Queue} -> wl_shm_pool#3106.create_buffer(new id wl_buffer#3108, 0, 10, 16, 40, 0) +[2618302.455] {Default Queue} -> wl_compositor#3084.create_surface(new id wl_surface#3109) +[2618302.459] {Default Queue} -> wl_surface#3109.attach(wl_buffer#3107, 0, 0) +[2618302.464] {Default Queue} -> wl_surface#3109.commit() +[2618302.469] {Default Queue} -> wl_surface#3109.attach(wl_buffer#3107, 0, 0) +[2618302.473] {Default Queue} -> wl_surface#3109.commit() +[2618302.479] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) +[2618302.485] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618302.490] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618302.497] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3110) +[2618302.502] {Default Queue} -> wl_display#1.sync(new id wl_callback#3111) +[2618305.508] {Default Queue} discarded wl_surface#3047.enter(wl_output#2585) +[2618305.520] {Default Queue} discarded wl_surface#3047.enter(wl_output#2617) +[2618305.525] {Default Queue} discarded wl_surface#3047.enter(wl_output#2649) +[2618305.529] {Default Queue} discarded wl_surface#3047.enter(wl_output#2681) +[2618305.534] {Default Queue} discarded wl_surface#3047.enter(wl_output#2713) +[2618305.537] {Default Queue} discarded wl_surface#3047.enter(wl_output#2745) +[2618305.541] {Default Queue} discarded wl_surface#3047.enter(wl_output#2777) +[2618305.545] {Default Queue} discarded wl_surface#3047.enter(wl_output#2809) +[2618305.549] {Default Queue} discarded wl_surface#3047.enter(wl_output#2841) +[2618305.554] {Default Queue} discarded wl_surface#3047.enter(wl_output#2873) +[2618305.557] {Default Queue} discarded wl_surface#3047.enter(wl_output#2905) +[2618305.561] {Default Queue} discarded wl_surface#3047.enter(wl_output#2937) +[2618305.565] {Default Queue} discarded wl_surface#3047.enter(wl_output#2969) +[2618305.569] {Default Queue} discarded wl_surface#3047.enter(wl_output#3001) +[2618305.573] {Default Queue} discarded wl_surface#3047.enter(wl_output#3033) +[2618305.577] {Default Queue} discarded wl_surface#3047.enter(wl_output#3065) +[2618305.826] {Display Queue} wl_display#1.delete_id(3111) +[2618305.833] {Default Queue} wl_keyboard#3080.keymap(1, fd 489, 68213) +[2618305.838] {Default Queue} wl_keyboard#3080.enter(566, wl_surface#19, array[0]) +[2618305.843] {Default Queue} wl_keyboard#3080.modifiers(566, 0, 0, 16, 0) +[2618305.847] {Default Queue} discarded wl_shm#3087.format(875709016) +[2618305.851] {Default Queue} discarded wl_shm#3087.format(1) +[2618305.855] {Default Queue} discarded wl_shm#3087.format(0) +[2618305.859] {Default Queue} discarded wl_shm#3087.format(875708993) +[2618305.868] {Default Queue} discarded wl_shm#3088.format(875709016) +[2618305.872] {Default Queue} discarded wl_shm#3088.format(1) +[2618305.876] {Default Queue} discarded wl_shm#3088.format(0) +[2618305.885] {Default Queue} discarded wl_shm#3088.format(875708993) +[2618305.892] {Default Queue} discarded wl_shm#3089.format(875709016) +[2618305.896] {Default Queue} discarded wl_shm#3089.format(1) +[2618305.900] {Default Queue} discarded wl_shm#3089.format(0) +[2618305.904] {Default Queue} discarded wl_shm#3089.format(875708993) +[2618305.908] {Default Queue} wl_seat#3096.capabilities(7) +[2618305.912] {Default Queue} -> wl_seat#3096.get_keyboard(new id wl_keyboard#3112) +[2618305.917] {Default Queue} -> wl_seat#3096.get_pointer(new id wl_pointer#3113) +[2618305.921] {Default Queue} -> wl_data_device_manager#3092.get_data_device(new id wl_data_device#3114, wl_seat#3096) +[2618305.926] {Default Queue} -> zwp_primary_selection_device_manager_v1#3094.get_device(new id zwp_primary_selection_device_v1#3115, wl_seat#3096) +[2618305.934] {Default Queue} wl_output#3097.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618305.938] {Default Queue} wl_output#3097.mode(3, 1280, 800, 60000) +[2618305.943] {Default Queue} discarded wl_surface#2727.enter(wl_output#3097) +[2618305.947] {Default Queue} discarded wl_surface#3.enter(wl_output#3097) +[2618305.951] {Default Queue} discarded wl_surface#999.enter(wl_output#3097) +[2618305.955] {Default Queue} discarded wl_surface#1191.enter(wl_output#3097) +[2618305.959] {Default Queue} discarded wl_surface#1159.enter(wl_output#3097) +[2618305.963] {Default Queue} discarded wl_surface#1703.enter(wl_output#3097) +[2618305.967] {Default Queue} discarded wl_surface#2215.enter(wl_output#3097) +[2618305.971] {Default Queue} discarded wl_surface#423.enter(wl_output#3097) +[2618305.975] {Default Queue} discarded wl_surface#1447.enter(wl_output#3097) +[2618305.978] {Default Queue} discarded wl_surface#3047.enter(wl_output#3097) +[2618305.982] {Default Queue} discarded wl_surface#2023.enter(wl_output#3097) +[2618305.986] {Default Queue} discarded wl_surface#1639.enter(wl_output#3097) +[2618305.990] {Default Queue} discarded wl_surface#1319.enter(wl_output#3097) +[2618305.994] {Default Queue} discarded wl_surface#1127.enter(wl_output#3097) +[2618305.998] {Default Queue} discarded wl_surface#2151.enter(wl_output#3097) +[2618306.002] {Default Queue} discarded wl_surface#2375.enter(wl_output#3097) +[2618306.006] {Default Queue} discarded wl_surface#2695.enter(wl_output#3097) +[2618306.010] {Default Queue} discarded wl_surface#2919.enter(wl_output#3097) +[2618306.014] {Default Queue} discarded wl_surface#1063.enter(wl_output#3097) +[2618306.018] {Default Queue} discarded wl_surface#455.enter(wl_output#3097) +[2618306.022] {Default Queue} discarded wl_surface#1575.enter(wl_output#3097) +[2618306.026] {Default Queue} discarded wl_surface#1799.enter(wl_output#3097) +[2618306.030] {Default Queue} discarded wl_surface#1415.enter(wl_output#3097) +[2618306.034] {Default Queue} discarded wl_surface#2439.enter(wl_output#3097) +[2618306.038] {Default Queue} discarded wl_surface#2279.enter(wl_output#3097) +[2618306.042] {Default Queue} discarded wl_surface#1831.enter(wl_output#3097) +[2618306.046] {Default Queue} discarded wl_surface#903.enter(wl_output#3097) +[2618306.050] {Default Queue} discarded wl_surface#2663.enter(wl_output#3097) +[2618306.054] {Default Queue} discarded wl_surface#775.enter(wl_output#3097) +[2618306.058] {Default Queue} discarded wl_surface#1991.enter(wl_output#3097) +[2618306.061] {Default Queue} discarded wl_surface#1543.enter(wl_output#3097) +[2618306.065] {Default Queue} discarded wl_surface#135.enter(wl_output#3097) +[2618306.070] {Default Queue} discarded wl_surface#1287.enter(wl_output#3097) +[2618306.073] {Default Queue} discarded wl_surface#1031.enter(wl_output#3097) +[2618306.077] {Default Queue} discarded wl_surface#615.enter(wl_output#3097) +[2618306.081] {Default Queue} discarded wl_surface#231.enter(wl_output#3097) +[2618306.085] {Default Queue} discarded wl_surface#2343.enter(wl_output#3097) +[2618306.089] {Default Queue} discarded wl_surface#1863.enter(wl_output#3097) +[2618306.093] {Default Queue} discarded wl_surface#359.enter(wl_output#3097) +[2618306.097] {Default Queue} discarded wl_surface#2983.enter(wl_output#3097) +[2618306.104] {Default Queue} discarded wl_surface#583.enter(wl_output#3097) +[2618306.109] {Default Queue} discarded wl_surface#743.enter(wl_output#3097) +[2618306.113] {Default Queue} discarded wl_surface#2535.enter(wl_output#3097) +[2618306.117] {Default Queue} discarded wl_surface#967.enter(wl_output#3097) +[2618306.121] {Default Queue} discarded wl_surface#103.enter(wl_output#3097) +[2618306.125] {Default Queue} discarded wl_surface#327.enter(wl_output#3097) +[2618306.129] {Default Queue} discarded wl_surface#43.enter(wl_output#3097) +[2618306.132] {Default Queue} discarded wl_surface#2247.enter(wl_output#3097) +[2618306.136] {Default Queue} discarded wl_surface#807.enter(wl_output#3097) +[2618306.140] {Default Queue} discarded wl_surface#19.enter(wl_output#3097) +[2618306.144] {Default Queue} discarded wl_surface#2951.enter(wl_output#3097) +[2618306.148] {Default Queue} discarded wl_surface#1511.enter(wl_output#3097) +[2618306.152] {Default Queue} discarded wl_surface#199.enter(wl_output#3097) +[2618306.156] {Default Queue} discarded wl_surface#391.enter(wl_output#3097) +[2618306.160] {Default Queue} discarded wl_surface#935.enter(wl_output#3097) +[2618306.163] {Default Queue} discarded wl_surface#2823.enter(wl_output#3097) +[2618306.167] {Default Queue} discarded wl_surface#3015.enter(wl_output#3097) +[2618306.171] {Default Queue} discarded wl_surface#1671.enter(wl_output#3097) +[2618306.175] {Default Queue} discarded wl_surface#1351.enter(wl_output#3097) +[2618306.179] {Default Queue} discarded wl_surface#711.enter(wl_output#3097) +[2618306.183] {Default Queue} discarded wl_surface#1223.enter(wl_output#3097) +[2618306.187] {Default Queue} discarded wl_surface#1927.enter(wl_output#3097) +[2618306.191] {Default Queue} discarded wl_surface#871.enter(wl_output#3097) +[2618306.195] {Default Queue} discarded wl_surface#1895.enter(wl_output#3097) +[2618306.199] {Default Queue} discarded wl_surface#263.enter(wl_output#3097) +[2618306.203] {Default Queue} discarded wl_surface#551.enter(wl_output#3097) +[2618306.207] {Default Queue} discarded wl_surface#1735.enter(wl_output#3097) +[2618306.210] {Default Queue} discarded wl_surface#1479.enter(wl_output#3097) +[2618306.214] {Default Queue} discarded wl_surface#1772.enter(wl_output#3097) +[2618306.218] {Default Queue} discarded wl_surface#2599.enter(wl_output#3097) +[2618306.222] {Default Queue} discarded wl_surface#2631.enter(wl_output#3097) +[2618306.226] {Default Queue} discarded wl_surface#1959.enter(wl_output#3097) +[2618306.230] {Default Queue} discarded wl_surface#647.enter(wl_output#3097) +[2618306.234] {Default Queue} discarded wl_surface#2055.enter(wl_output#3097) +[2618306.238] {Default Queue} discarded wl_surface#2508.enter(wl_output#3097) +[2618306.242] {Default Queue} discarded wl_surface#71.enter(wl_output#3097) +[2618306.246] {Default Queue} discarded wl_surface#2759.enter(wl_output#3097) +[2618306.250] {Default Queue} discarded wl_surface#2791.enter(wl_output#3097) +[2618306.254] {Default Queue} discarded wl_surface#2887.enter(wl_output#3097) +[2618306.258] {Default Queue} discarded wl_surface#2183.enter(wl_output#3097) +[2618306.261] {Default Queue} discarded wl_surface#2567.enter(wl_output#3097) +[2618306.265] {Default Queue} discarded wl_surface#839.enter(wl_output#3097) +[2618306.269] {Default Queue} discarded wl_surface#1607.enter(wl_output#3097) +[2618306.273] {Default Queue} discarded wl_surface#1095.enter(wl_output#3097) +[2618306.277] {Default Queue} discarded wl_surface#1383.enter(wl_output#3097) +[2618306.282] {Default Queue} discarded wl_surface#487.enter(wl_output#3097) +[2618306.286] {Default Queue} discarded wl_surface#2311.enter(wl_output#3097) +[2618306.290] {Default Queue} discarded wl_surface#519.enter(wl_output#3097) +[2618306.293] {Default Queue} discarded wl_surface#2087.enter(wl_output#3097) +[2618306.298] {Default Queue} discarded wl_surface#2471.enter(wl_output#3097) +[2618306.302] {Default Queue} discarded wl_surface#295.enter(wl_output#3097) +[2618306.306] {Default Queue} discarded wl_surface#167.enter(wl_output#3097) +[2618306.310] {Default Queue} discarded wl_surface#1255.enter(wl_output#3097) +[2618306.317] {Default Queue} discarded wl_surface#2855.enter(wl_output#3097) +[2618306.324] {Default Queue} discarded wl_surface#679.enter(wl_output#3097) +[2618306.329] {Default Queue} discarded wl_surface#2407.enter(wl_output#3097) +[2618306.334] {Default Queue} discarded wl_surface#2119.enter(wl_output#3097) +[2618306.340] {Default Queue} wl_registry#3110.global(1, "wl_compositor", 6) +[2618306.346] {Default Queue} -> wl_registry#3110.bind(1, "wl_compositor", 1, new id [unknown]#3116) +[2618306.351] {Default Queue} wl_registry#3110.global(2, "wl_subcompositor", 1) +[2618306.356] {Default Queue} -> wl_registry#3110.bind(2, "wl_subcompositor", 1, new id [unknown]#3117) +[2618306.360] {Default Queue} wl_registry#3110.global(3, "xdg_wm_base", 6) +[2618306.365] {Default Queue} -> wl_registry#3110.bind(3, "xdg_wm_base", 1, new id [unknown]#3118) +[2618306.370] {Default Queue} wl_registry#3110.global(6, "zwlr_layer_shell_v1", 5) +[2618306.374] {Default Queue} wl_registry#3110.global(7, "ext_session_lock_manager_v1", 1) +[2618306.379] {Default Queue} wl_registry#3110.global(8, "wl_shm", 2) +[2618306.384] {Default Queue} -> wl_registry#3110.bind(8, "wl_shm", 1, new id [unknown]#3119) +[2618306.388] {Default Queue} -> wl_registry#3110.bind(8, "wl_shm", 1, new id [unknown]#3120) +[2618306.393] {Default Queue} -> wl_registry#3110.bind(8, "wl_shm", 1, new id [unknown]#3121) +[2618306.397] {Default Queue} wl_registry#3110.global(9, "zxdg_output_manager_v1", 3) +[2618306.401] {Default Queue} wl_registry#3110.global(10, "wp_fractional_scale_manager_v1", 1) +[2618306.405] {Default Queue} wl_registry#3110.global(11, "zwp_tablet_manager_v2", 1) +[2618306.410] {Default Queue} wl_registry#3110.global(12, "zwp_pointer_gestures_v1", 3) +[2618306.414] {Default Queue} wl_registry#3110.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618306.418] {Default Queue} -> wl_registry#3110.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3122) +[2618306.424] {Default Queue} wl_registry#3110.global(14, "zwp_pointer_constraints_v1", 1) +[2618306.428] {Default Queue} -> wl_registry#3110.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3123) +[2618306.433] {Default Queue} wl_registry#3110.global(15, "ext_idle_notifier_v1", 2) +[2618306.437] {Default Queue} wl_registry#3110.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618306.441] {Default Queue} wl_registry#3110.global(17, "wl_data_device_manager", 3) +[2618306.446] {Default Queue} -> wl_registry#3110.bind(17, "wl_data_device_manager", 2, new id [unknown]#3124) +[2618306.451] {Default Queue} -> wl_data_device_manager#3124.create_data_source(new id wl_data_source#3125) +[2618306.455] {Default Queue} -> wl_data_source#3125.offer("text/plain") +[2618306.459] {Default Queue} -> wl_data_source#3125.offer("text/plain;charset=utf-8") +[2618306.463] {Default Queue} -> wl_data_source#3125.offer("TEXT") +[2618306.467] {Default Queue} -> wl_data_source#3125.offer("STRING") +[2618306.471] {Default Queue} -> wl_data_source#3125.offer("UTF8_STRING") +[2618306.476] {Default Queue} wl_registry#3110.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618306.481] {Default Queue} -> wl_registry#3110.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3126) +[2618306.488] {Default Queue} -> zwp_primary_selection_device_manager_v1#3126.create_source(new id zwp_primary_selection_source_v1#3127) +[2618306.495] {Default Queue} -> zwp_primary_selection_source_v1#3127.offer("text/plain") +[2618306.499] {Default Queue} -> zwp_primary_selection_source_v1#3127.offer("text/plain;charset=utf-8") +[2618306.503] {Default Queue} -> zwp_primary_selection_source_v1#3127.offer("TEXT") +[2618306.507] {Default Queue} -> zwp_primary_selection_source_v1#3127.offer("STRING") +[2618306.511] {Default Queue} -> zwp_primary_selection_source_v1#3127.offer("UTF8_STRING") +[2618306.516] {Default Queue} wl_registry#3110.global(19, "zwlr_data_control_manager_v1", 2) +[2618306.520] {Default Queue} wl_registry#3110.global(20, "ext_data_control_manager_v1", 1) +[2618306.528] {Default Queue} wl_registry#3110.global(21, "wp_presentation", 2) +[2618306.534] {Default Queue} wl_registry#3110.global(22, "wp_security_context_manager_v1", 1) +[2618306.538] {Default Queue} wl_registry#3110.global(23, "zwp_text_input_manager_v3", 1) +[2618306.543] {Default Queue} wl_registry#3110.global(24, "zwp_input_method_manager_v2", 1) +[2618306.547] {Default Queue} wl_registry#3110.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618306.552] {Default Queue} wl_registry#3110.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618306.556] {Default Queue} wl_registry#3110.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618306.561] {Default Queue} wl_registry#3110.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618306.565] {Default Queue} wl_registry#3110.global(29, "ext_workspace_manager_v1", 1) +[2618306.569] {Default Queue} wl_registry#3110.global(30, "zwlr_output_manager_v1", 4) +[2618306.573] {Default Queue} wl_registry#3110.global(31, "zwlr_screencopy_manager_v1", 3) +[2618306.578] {Default Queue} wl_registry#3110.global(32, "wp_viewporter", 1) +[2618306.582] {Default Queue} wl_registry#3110.global(33, "zxdg_exporter_v2", 1) +[2618306.587] {Default Queue} wl_registry#3110.global(34, "zxdg_importer_v2", 1) +[2618306.591] {Default Queue} wl_registry#3110.global(36, "xdg_activation_v1", 1) +[2618306.595] {Default Queue} wl_registry#3110.global(37, "mutter_x11_interop", 1) +[2618306.600] {Default Queue} wl_registry#3110.global(38, "wl_seat", 9) +[2618306.604] {Default Queue} -> wl_registry#3110.bind(38, "wl_seat", 1, new id [unknown]#3128) +[2618306.609] {Default Queue} wl_registry#3110.global(39, "wp_cursor_shape_manager_v1", 2) +[2618306.614] {Default Queue} wl_registry#3110.global(40, "wl_output", 4) +[2618306.618] {Default Queue} -> wl_registry#3110.bind(40, "wl_output", 1, new id [unknown]#3129) +[2618306.623] {Default Queue} wl_callback#3111.done(0) +[2618306.627] {Default Queue} discarded wl_surface#3079.enter(wl_output#18) +[2618306.631] {Default Queue} discarded wl_surface#3079.enter(wl_output#57) +[2618306.636] {Default Queue} discarded wl_surface#3079.enter(wl_output#89) +[2618306.639] {Default Queue} discarded wl_surface#3079.enter(wl_output#121) +[2618306.643] {Default Queue} discarded wl_surface#3079.enter(wl_output#153) +[2618306.647] {Default Queue} discarded wl_surface#3079.enter(wl_output#185) +[2618306.651] {Default Queue} discarded wl_surface#3079.enter(wl_output#217) +[2618306.655] {Default Queue} discarded wl_surface#3079.enter(wl_output#249) +[2618306.659] {Default Queue} discarded wl_surface#3079.enter(wl_output#281) +[2618306.663] {Default Queue} discarded wl_surface#3079.enter(wl_output#313) +[2618306.667] {Default Queue} discarded wl_surface#3079.enter(wl_output#345) +[2618306.671] {Default Queue} discarded wl_surface#3079.enter(wl_output#377) +[2618306.675] {Default Queue} discarded wl_surface#3079.enter(wl_output#409) +[2618306.679] {Default Queue} discarded wl_surface#3079.enter(wl_output#441) +[2618306.683] {Default Queue} discarded wl_surface#3079.enter(wl_output#473) +[2618306.687] {Default Queue} discarded wl_surface#3079.enter(wl_output#505) +[2618306.691] {Default Queue} discarded wl_surface#3079.enter(wl_output#537) +[2618306.695] {Default Queue} discarded wl_surface#3079.enter(wl_output#569) +[2618306.698] {Default Queue} discarded wl_surface#3079.enter(wl_output#601) +[2618306.702] {Default Queue} discarded wl_surface#3079.enter(wl_output#633) +[2618306.706] {Default Queue} discarded wl_surface#3079.enter(wl_output#665) +[2618306.710] {Default Queue} discarded wl_surface#3079.enter(wl_output#697) +[2618306.714] {Default Queue} discarded wl_surface#3079.enter(wl_output#729) +[2618306.718] {Default Queue} discarded wl_surface#3079.enter(wl_output#761) +[2618306.722] {Default Queue} discarded wl_surface#3079.enter(wl_output#793) +[2618306.726] {Default Queue} discarded wl_surface#3079.enter(wl_output#825) +[2618306.730] {Default Queue} discarded wl_surface#3079.enter(wl_output#857) +[2618306.734] {Default Queue} discarded wl_surface#3079.enter(wl_output#889) +[2618306.737] {Default Queue} discarded wl_surface#3079.enter(wl_output#921) +[2618306.744] {Default Queue} discarded wl_surface#3079.enter(wl_output#953) +[2618306.750] {Default Queue} discarded wl_surface#3079.enter(wl_output#985) +[2618306.754] {Default Queue} discarded wl_surface#3079.enter(wl_output#1017) +[2618306.758] {Default Queue} discarded wl_surface#3079.enter(wl_output#1049) +[2618306.762] {Default Queue} discarded wl_surface#3079.enter(wl_output#1081) +[2618306.766] {Default Queue} discarded wl_surface#3079.enter(wl_output#1113) +[2618306.770] {Default Queue} discarded wl_surface#3079.enter(wl_output#1145) +[2618306.774] {Default Queue} discarded wl_surface#3079.enter(wl_output#1177) +[2618306.778] {Default Queue} discarded wl_surface#3079.enter(wl_output#1209) +[2618306.782] {Default Queue} discarded wl_surface#3079.enter(wl_output#1241) +[2618306.786] {Default Queue} discarded wl_surface#3079.enter(wl_output#1273) +[2618306.790] {Default Queue} discarded wl_surface#3079.enter(wl_output#1305) +[2618306.794] {Default Queue} discarded wl_surface#3079.enter(wl_output#1337) +[2618306.798] {Default Queue} discarded wl_surface#3079.enter(wl_output#1369) +[2618306.802] {Default Queue} discarded wl_surface#3079.enter(wl_output#1401) +[2618306.806] {Default Queue} discarded wl_surface#3079.enter(wl_output#1433) +[2618306.810] {Default Queue} discarded wl_surface#3079.enter(wl_output#1465) +[2618306.814] {Default Queue} discarded wl_surface#3079.enter(wl_output#1497) +[2618306.818] {Default Queue} discarded wl_surface#3079.enter(wl_output#1529) +[2618306.822] {Default Queue} discarded wl_surface#3079.enter(wl_output#1561) +[2618306.826] {Default Queue} discarded wl_surface#3079.enter(wl_output#1593) +[2618306.831] {Default Queue} discarded wl_surface#3079.enter(wl_output#1625) +[2618306.835] {Default Queue} discarded wl_surface#3079.enter(wl_output#1657) +[2618306.839] {Default Queue} discarded wl_surface#3079.enter(wl_output#1689) +[2618306.843] {Default Queue} discarded wl_surface#3079.enter(wl_output#1721) +[2618306.847] {Default Queue} discarded wl_surface#3079.enter(wl_output#1753) +[2618306.851] {Default Queue} discarded wl_surface#3079.enter(wl_output#1785) +[2618306.855] {Default Queue} discarded wl_surface#3079.enter(wl_output#1817) +[2618306.859] {Default Queue} discarded wl_surface#3079.enter(wl_output#1849) +[2618306.863] {Default Queue} discarded wl_surface#3079.enter(wl_output#1881) +[2618306.867] {Default Queue} discarded wl_surface#3079.enter(wl_output#1913) +[2618306.881] {Default Queue} discarded wl_surface#3079.enter(wl_output#1945) +[2618306.885] {Default Queue} discarded wl_surface#3079.enter(wl_output#1977) +[2618306.889] {Default Queue} discarded wl_surface#3079.enter(wl_output#2009) +[2618306.893] {Default Queue} discarded wl_surface#3079.enter(wl_output#2041) +[2618306.897] {Default Queue} discarded wl_surface#3079.enter(wl_output#2073) +[2618306.901] {Default Queue} discarded wl_surface#3079.enter(wl_output#2105) +[2618306.904] {Default Queue} discarded wl_surface#3079.enter(wl_output#2137) +[2618306.908] {Default Queue} discarded wl_surface#3079.enter(wl_output#2169) +[2618306.912] {Default Queue} discarded wl_surface#3079.enter(wl_output#2201) +[2618306.916] {Default Queue} discarded wl_surface#3079.enter(wl_output#2233) +[2618306.920] {Default Queue} discarded wl_surface#3079.enter(wl_output#2265) +[2618306.924] {Default Queue} discarded wl_surface#3079.enter(wl_output#2297) +[2618306.928] {Default Queue} discarded wl_surface#3079.enter(wl_output#2329) +[2618306.931] {Default Queue} discarded wl_surface#3079.enter(wl_output#2361) +[2618306.936] {Default Queue} discarded wl_surface#3079.enter(wl_output#2393) +[2618306.939] {Default Queue} discarded wl_surface#3079.enter(wl_output#2425) +[2618306.943] {Default Queue} discarded wl_surface#3079.enter(wl_output#2457) +[2618306.949] {Default Queue} discarded wl_surface#3079.enter(wl_output#2489) +[2618306.954] {Default Queue} discarded wl_surface#3079.enter(wl_output#2521) +[2618306.960] {Default Queue} -> wl_compositor#3052.create_surface(new id wl_surface#3111) +[2618306.966] {Default Queue} -> wl_subcompositor#3117.get_subsurface(new id wl_subsurface#3130, wl_surface#3111, wl_surface#3047) +[2618306.980] {Default Queue} -> wl_subsurface#3130.set_desync() +[2618306.984] {Default Queue} -> wl_subsurface#3130.set_position(0, 0) +[2618306.989] {Default Queue} -> wl_subsurface#3130.place_above(wl_surface#3047) +[2618307.041] {Default Queue} -> wl_shm#3119.create_pool(new id wl_shm_pool#3131, fd 494, 16) +[2618307.048] {Default Queue} -> wl_shm#3119.create_pool(new id wl_shm_pool#3132, fd 495, 16) +[2618307.052] {Default Queue} -> wl_shm_pool#3131.create_buffer(new id wl_buffer#3133, 0, 2, 2, 8, 0) +[2618307.057] {Default Queue} -> wl_shm_pool#3132.create_buffer(new id wl_buffer#3134, 0, 2, 2, 8, 0) +[2618307.065] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) +[2618307.072] {Default Queue} -> wl_surface#3111.commit() +[2618307.078] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) +[2618307.082] {Default Queue} -> wl_surface#3111.commit() +[2618307.087] {Default Queue} -> wl_compositor#3116.create_region(new id wl_region#3135) +[2618307.091] {Default Queue} -> wl_compositor#3116.create_region(new id wl_region#3136) +[2618307.095] {Default Queue} -> wl_region#3135.subtract(0, 0, 2, 2) +[2618307.100] {Default Queue} -> wl_region#3135.add(0, 0, 0, 0) +[2618307.105] {Default Queue} -> wl_surface#3111.set_opaque_region(wl_region#3136) +[2618307.109] {Default Queue} -> wl_surface#3111.set_input_region(wl_region#3135) +[2618307.113] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) +[2618307.118] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) +[2618307.125] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) +[2618307.129] {Default Queue} -> wl_surface#3111.commit() +[2618307.164] {Default Queue} -> wl_shm#3121.create_pool(new id wl_shm_pool#3137, fd 498, 640) +[2618307.171] {Default Queue} -> wl_shm#3121.create_pool(new id wl_shm_pool#3138, fd 499, 640) +[2618307.175] {Default Queue} -> wl_shm_pool#3137.create_buffer(new id wl_buffer#3139, 0, 10, 16, 40, 0) +[2618307.180] {Default Queue} -> wl_shm_pool#3138.create_buffer(new id wl_buffer#3140, 0, 10, 16, 40, 0) +[2618307.187] {Default Queue} -> wl_compositor#3116.create_surface(new id wl_surface#3141) +[2618307.192] {Default Queue} -> wl_surface#3141.attach(wl_buffer#3139, 0, 0) +[2618307.196] {Default Queue} -> wl_surface#3141.commit() +[2618307.202] {Default Queue} -> wl_surface#3141.attach(wl_buffer#3139, 0, 0) +[2618307.206] {Default Queue} -> wl_surface#3141.commit() +[2618307.211] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) +[2618307.218] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3142) +[2618307.223] {Default Queue} -> wl_display#1.sync(new id wl_callback#3143) +[2618310.382] {Default Queue} discarded wl_surface#3079.enter(wl_output#2553) +[2618310.394] {Default Queue} discarded wl_surface#3079.enter(wl_output#2585) +[2618310.399] {Default Queue} discarded wl_surface#3079.enter(wl_output#2617) +[2618310.403] {Default Queue} discarded wl_surface#3079.enter(wl_output#2649) +[2618310.407] {Default Queue} discarded wl_surface#3079.enter(wl_output#2681) +[2618310.411] {Default Queue} discarded wl_surface#3079.enter(wl_output#2713) +[2618310.415] {Default Queue} discarded wl_surface#3079.enter(wl_output#2745) +[2618310.419] {Default Queue} discarded wl_surface#3079.enter(wl_output#2777) +[2618310.423] {Default Queue} discarded wl_surface#3079.enter(wl_output#2809) +[2618310.427] {Default Queue} discarded wl_surface#3079.enter(wl_output#2841) +[2618310.431] {Default Queue} discarded wl_surface#3079.enter(wl_output#2873) +[2618310.435] {Default Queue} discarded wl_surface#3079.enter(wl_output#2905) +[2618310.439] {Default Queue} discarded wl_surface#3079.enter(wl_output#2937) +[2618310.443] {Default Queue} discarded wl_surface#3079.enter(wl_output#2969) +[2618310.447] {Default Queue} discarded wl_surface#3079.enter(wl_output#3001) +[2618310.451] {Default Queue} discarded wl_surface#3079.enter(wl_output#3033) +[2618310.455] {Default Queue} discarded wl_surface#3079.enter(wl_output#3065) +[2618310.459] {Default Queue} discarded wl_surface#3079.enter(wl_output#3097) +[2618310.632] {Display Queue} wl_display#1.delete_id(3143) +[2618310.641] {Default Queue} wl_keyboard#3112.keymap(1, fd 494, 68213) +[2618310.646] {Default Queue} wl_keyboard#3112.enter(566, wl_surface#19, array[0]) +[2618310.651] {Default Queue} wl_keyboard#3112.modifiers(566, 0, 0, 16, 0) +[2618310.656] {Default Queue} discarded wl_shm#3119.format(875709016) +[2618310.660] {Default Queue} discarded wl_shm#3119.format(1) +[2618310.664] {Default Queue} discarded wl_shm#3119.format(0) +[2618310.668] {Default Queue} discarded wl_shm#3119.format(875708993) +[2618310.672] {Default Queue} discarded wl_shm#3120.format(875709016) +[2618310.676] {Default Queue} discarded wl_shm#3120.format(1) +[2618310.680] {Default Queue} discarded wl_shm#3120.format(0) +[2618310.684] {Default Queue} discarded wl_shm#3120.format(875708993) +[2618310.688] {Default Queue} discarded wl_shm#3121.format(875709016) +[2618310.692] {Default Queue} discarded wl_shm#3121.format(1) +[2618310.696] {Default Queue} discarded wl_shm#3121.format(0) +[2618310.700] {Default Queue} discarded wl_shm#3121.format(875708993) +[2618310.703] {Default Queue} wl_seat#3128.capabilities(7) +[2618310.708] {Default Queue} -> wl_seat#3128.get_keyboard(new id wl_keyboard#3144) +[2618310.712] {Default Queue} -> wl_seat#3128.get_pointer(new id wl_pointer#3145) +[2618310.717] {Default Queue} -> wl_data_device_manager#3124.get_data_device(new id wl_data_device#3146, wl_seat#3128) +[2618310.722] {Default Queue} -> zwp_primary_selection_device_manager_v1#3126.get_device(new id zwp_primary_selection_device_v1#3147, wl_seat#3128) +[2618310.729] {Default Queue} wl_output#3129.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618310.734] {Default Queue} wl_output#3129.mode(3, 1280, 800, 60000) +[2618310.739] {Default Queue} discarded wl_surface#2727.enter(wl_output#3129) +[2618310.743] {Default Queue} discarded wl_surface#3.enter(wl_output#3129) +[2618310.747] {Default Queue} discarded wl_surface#999.enter(wl_output#3129) +[2618310.751] {Default Queue} discarded wl_surface#3079.enter(wl_output#3129) +[2618310.755] {Default Queue} discarded wl_surface#1191.enter(wl_output#3129) +[2618310.759] {Default Queue} discarded wl_surface#1159.enter(wl_output#3129) +[2618310.763] {Default Queue} discarded wl_surface#1703.enter(wl_output#3129) +[2618310.767] {Default Queue} discarded wl_surface#2215.enter(wl_output#3129) +[2618310.771] {Default Queue} discarded wl_surface#423.enter(wl_output#3129) +[2618310.775] {Default Queue} discarded wl_surface#1447.enter(wl_output#3129) +[2618310.778] {Default Queue} discarded wl_surface#3047.enter(wl_output#3129) +[2618310.783] {Default Queue} discarded wl_surface#2023.enter(wl_output#3129) +[2618310.786] {Default Queue} discarded wl_surface#1639.enter(wl_output#3129) +[2618310.790] {Default Queue} discarded wl_surface#1319.enter(wl_output#3129) +[2618310.794] {Default Queue} discarded wl_surface#1127.enter(wl_output#3129) +[2618310.798] {Default Queue} discarded wl_surface#2151.enter(wl_output#3129) +[2618310.802] {Default Queue} discarded wl_surface#2375.enter(wl_output#3129) +[2618310.806] {Default Queue} discarded wl_surface#2695.enter(wl_output#3129) +[2618310.810] {Default Queue} discarded wl_surface#2919.enter(wl_output#3129) +[2618310.814] {Default Queue} discarded wl_surface#1063.enter(wl_output#3129) +[2618310.818] {Default Queue} discarded wl_surface#455.enter(wl_output#3129) +[2618310.821] {Default Queue} discarded wl_surface#1575.enter(wl_output#3129) +[2618310.825] {Default Queue} discarded wl_surface#1799.enter(wl_output#3129) +[2618310.829] {Default Queue} discarded wl_surface#1415.enter(wl_output#3129) +[2618310.833] {Default Queue} discarded wl_surface#2439.enter(wl_output#3129) +[2618310.837] {Default Queue} discarded wl_surface#2279.enter(wl_output#3129) +[2618310.841] {Default Queue} discarded wl_surface#1831.enter(wl_output#3129) +[2618310.845] {Default Queue} discarded wl_surface#903.enter(wl_output#3129) +[2618310.849] {Default Queue} discarded wl_surface#2663.enter(wl_output#3129) +[2618310.852] {Default Queue} discarded wl_surface#775.enter(wl_output#3129) +[2618310.859] {Default Queue} discarded wl_surface#1991.enter(wl_output#3129) +[2618310.871] {Default Queue} discarded wl_surface#1543.enter(wl_output#3129) +[2618310.875] {Default Queue} discarded wl_surface#135.enter(wl_output#3129) +[2618310.879] {Default Queue} discarded wl_surface#1287.enter(wl_output#3129) +[2618310.884] {Default Queue} discarded wl_surface#1031.enter(wl_output#3129) +[2618310.888] {Default Queue} discarded wl_surface#615.enter(wl_output#3129) +[2618310.892] {Default Queue} discarded wl_surface#231.enter(wl_output#3129) +[2618310.895] {Default Queue} discarded wl_surface#2343.enter(wl_output#3129) +[2618310.899] {Default Queue} discarded wl_surface#1863.enter(wl_output#3129) +[2618310.903] {Default Queue} discarded wl_surface#359.enter(wl_output#3129) +[2618310.907] {Default Queue} discarded wl_surface#2983.enter(wl_output#3129) +[2618310.911] {Default Queue} discarded wl_surface#583.enter(wl_output#3129) +[2618310.915] {Default Queue} discarded wl_surface#743.enter(wl_output#3129) +[2618310.919] {Default Queue} discarded wl_surface#2535.enter(wl_output#3129) +[2618310.923] {Default Queue} discarded wl_surface#967.enter(wl_output#3129) +[2618310.927] {Default Queue} discarded wl_surface#103.enter(wl_output#3129) +[2618310.931] {Default Queue} discarded wl_surface#327.enter(wl_output#3129) +[2618310.935] {Default Queue} discarded wl_surface#43.enter(wl_output#3129) +[2618310.939] {Default Queue} discarded wl_surface#2247.enter(wl_output#3129) +[2618310.943] {Default Queue} discarded wl_surface#807.enter(wl_output#3129) +[2618310.947] {Default Queue} discarded wl_surface#19.enter(wl_output#3129) +[2618310.951] {Default Queue} discarded wl_surface#2951.enter(wl_output#3129) +[2618310.955] {Default Queue} discarded wl_surface#1511.enter(wl_output#3129) +[2618310.958] {Default Queue} discarded wl_surface#199.enter(wl_output#3129) +[2618310.962] {Default Queue} discarded wl_surface#391.enter(wl_output#3129) +[2618310.966] {Default Queue} discarded wl_surface#935.enter(wl_output#3129) +[2618310.970] {Default Queue} discarded wl_surface#2823.enter(wl_output#3129) +[2618310.974] {Default Queue} discarded wl_surface#3015.enter(wl_output#3129) +[2618310.978] {Default Queue} discarded wl_surface#1671.enter(wl_output#3129) +[2618310.982] {Default Queue} discarded wl_surface#1351.enter(wl_output#3129) +[2618310.985] {Default Queue} discarded wl_surface#711.enter(wl_output#3129) +[2618310.989] {Default Queue} discarded wl_surface#1223.enter(wl_output#3129) +[2618310.993] {Default Queue} discarded wl_surface#1927.enter(wl_output#3129) +[2618310.997] {Default Queue} discarded wl_surface#871.enter(wl_output#3129) +[2618311.001] {Default Queue} discarded wl_surface#1895.enter(wl_output#3129) +[2618311.005] {Default Queue} discarded wl_surface#263.enter(wl_output#3129) +[2618311.009] {Default Queue} discarded wl_surface#551.enter(wl_output#3129) +[2618311.013] {Default Queue} discarded wl_surface#1735.enter(wl_output#3129) +[2618311.017] {Default Queue} discarded wl_surface#1479.enter(wl_output#3129) +[2618311.021] {Default Queue} discarded wl_surface#1772.enter(wl_output#3129) +[2618311.025] {Default Queue} discarded wl_surface#2599.enter(wl_output#3129) +[2618311.029] {Default Queue} discarded wl_surface#2631.enter(wl_output#3129) +[2618311.032] {Default Queue} discarded wl_surface#1959.enter(wl_output#3129) +[2618311.036] {Default Queue} discarded wl_surface#647.enter(wl_output#3129) +[2618311.040] {Default Queue} discarded wl_surface#2055.enter(wl_output#3129) +[2618311.044] {Default Queue} discarded wl_surface#2508.enter(wl_output#3129) +[2618311.049] {Default Queue} discarded wl_surface#71.enter(wl_output#3129) +[2618311.053] {Default Queue} discarded wl_surface#2759.enter(wl_output#3129) +[2618311.057] {Default Queue} discarded wl_surface#2791.enter(wl_output#3129) +[2618311.061] {Default Queue} discarded wl_surface#2887.enter(wl_output#3129) +[2618311.064] {Default Queue} discarded wl_surface#2183.enter(wl_output#3129) +[2618311.068] {Default Queue} discarded wl_surface#2567.enter(wl_output#3129) +[2618311.072] {Default Queue} discarded wl_surface#839.enter(wl_output#3129) +[2618311.079] {Default Queue} discarded wl_surface#1607.enter(wl_output#3129) +[2618311.084] {Default Queue} discarded wl_surface#1095.enter(wl_output#3129) +[2618311.088] {Default Queue} discarded wl_surface#1383.enter(wl_output#3129) +[2618311.092] {Default Queue} discarded wl_surface#487.enter(wl_output#3129) +[2618311.096] {Default Queue} discarded wl_surface#2311.enter(wl_output#3129) +[2618311.100] {Default Queue} discarded wl_surface#519.enter(wl_output#3129) +[2618311.104] {Default Queue} discarded wl_surface#2087.enter(wl_output#3129) +[2618311.108] {Default Queue} discarded wl_surface#2471.enter(wl_output#3129) +[2618311.112] {Default Queue} discarded wl_surface#295.enter(wl_output#3129) +[2618311.116] {Default Queue} discarded wl_surface#167.enter(wl_output#3129) +[2618311.120] {Default Queue} discarded wl_surface#1255.enter(wl_output#3129) +[2618311.123] {Default Queue} discarded wl_surface#2855.enter(wl_output#3129) +[2618311.127] {Default Queue} discarded wl_surface#679.enter(wl_output#3129) +[2618311.131] {Default Queue} discarded wl_surface#2407.enter(wl_output#3129) +[2618311.135] {Default Queue} discarded wl_surface#2119.enter(wl_output#3129) +[2618311.139] {Default Queue} wl_registry#3142.global(1, "wl_compositor", 6) +[2618311.144] {Default Queue} -> wl_registry#3142.bind(1, "wl_compositor", 1, new id [unknown]#3148) +[2618311.149] {Default Queue} wl_registry#3142.global(2, "wl_subcompositor", 1) +[2618311.153] {Default Queue} -> wl_registry#3142.bind(2, "wl_subcompositor", 1, new id [unknown]#3149) +[2618311.158] {Default Queue} wl_registry#3142.global(3, "xdg_wm_base", 6) +[2618311.163] {Default Queue} -> wl_registry#3142.bind(3, "xdg_wm_base", 1, new id [unknown]#3150) +[2618311.167] {Default Queue} wl_registry#3142.global(6, "zwlr_layer_shell_v1", 5) +[2618311.171] {Default Queue} wl_registry#3142.global(7, "ext_session_lock_manager_v1", 1) +[2618311.176] {Default Queue} wl_registry#3142.global(8, "wl_shm", 2) +[2618311.181] {Default Queue} -> wl_registry#3142.bind(8, "wl_shm", 1, new id [unknown]#3151) +[2618311.186] {Default Queue} -> wl_registry#3142.bind(8, "wl_shm", 1, new id [unknown]#3152) +[2618311.190] {Default Queue} -> wl_registry#3142.bind(8, "wl_shm", 1, new id [unknown]#3153) +[2618311.195] {Default Queue} wl_registry#3142.global(9, "zxdg_output_manager_v1", 3) +[2618311.199] {Default Queue} wl_registry#3142.global(10, "wp_fractional_scale_manager_v1", 1) +[2618311.204] {Default Queue} wl_registry#3142.global(11, "zwp_tablet_manager_v2", 1) +[2618311.208] {Default Queue} wl_registry#3142.global(12, "zwp_pointer_gestures_v1", 3) +[2618311.212] {Default Queue} wl_registry#3142.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618311.217] {Default Queue} -> wl_registry#3142.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3154) +[2618311.221] {Default Queue} wl_registry#3142.global(14, "zwp_pointer_constraints_v1", 1) +[2618311.226] {Default Queue} -> wl_registry#3142.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3155) +[2618311.230] {Default Queue} wl_registry#3142.global(15, "ext_idle_notifier_v1", 2) +[2618311.234] {Default Queue} wl_registry#3142.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618311.239] {Default Queue} wl_registry#3142.global(17, "wl_data_device_manager", 3) +[2618311.244] {Default Queue} -> wl_registry#3142.bind(17, "wl_data_device_manager", 2, new id [unknown]#3156) +[2618311.249] {Default Queue} -> wl_data_device_manager#3156.create_data_source(new id wl_data_source#3157) +[2618311.253] {Default Queue} -> wl_data_source#3157.offer("text/plain") +[2618311.257] {Default Queue} -> wl_data_source#3157.offer("text/plain;charset=utf-8") +[2618311.261] {Default Queue} -> wl_data_source#3157.offer("TEXT") +[2618311.265] {Default Queue} -> wl_data_source#3157.offer("STRING") +[2618311.270] {Default Queue} -> wl_data_source#3157.offer("UTF8_STRING") +[2618311.274] {Default Queue} wl_registry#3142.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618311.278] {Default Queue} -> wl_registry#3142.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3158) +[2618311.291] {Default Queue} -> zwp_primary_selection_device_manager_v1#3158.create_source(new id zwp_primary_selection_source_v1#3159) +[2618311.299] {Default Queue} -> zwp_primary_selection_source_v1#3159.offer("text/plain") +[2618311.303] {Default Queue} -> zwp_primary_selection_source_v1#3159.offer("text/plain;charset=utf-8") +[2618311.307] {Default Queue} -> zwp_primary_selection_source_v1#3159.offer("TEXT") +[2618311.311] {Default Queue} -> zwp_primary_selection_source_v1#3159.offer("STRING") +[2618311.315] {Default Queue} -> zwp_primary_selection_source_v1#3159.offer("UTF8_STRING") +[2618311.319] {Default Queue} wl_registry#3142.global(19, "zwlr_data_control_manager_v1", 2) +[2618311.323] {Default Queue} wl_registry#3142.global(20, "ext_data_control_manager_v1", 1) +[2618311.328] {Default Queue} wl_registry#3142.global(21, "wp_presentation", 2) +[2618311.332] {Default Queue} wl_registry#3142.global(22, "wp_security_context_manager_v1", 1) +[2618311.336] {Default Queue} wl_registry#3142.global(23, "zwp_text_input_manager_v3", 1) +[2618311.341] {Default Queue} wl_registry#3142.global(24, "zwp_input_method_manager_v2", 1) +[2618311.345] {Default Queue} wl_registry#3142.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618311.349] {Default Queue} wl_registry#3142.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618311.354] {Default Queue} wl_registry#3142.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618311.358] {Default Queue} wl_registry#3142.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618311.362] {Default Queue} wl_registry#3142.global(29, "ext_workspace_manager_v1", 1) +[2618311.367] {Default Queue} wl_registry#3142.global(30, "zwlr_output_manager_v1", 4) +[2618311.371] {Default Queue} wl_registry#3142.global(31, "zwlr_screencopy_manager_v1", 3) +[2618311.375] {Default Queue} wl_registry#3142.global(32, "wp_viewporter", 1) +[2618311.380] {Default Queue} wl_registry#3142.global(33, "zxdg_exporter_v2", 1) +[2618311.384] {Default Queue} wl_registry#3142.global(34, "zxdg_importer_v2", 1) +[2618311.388] {Default Queue} wl_registry#3142.global(36, "xdg_activation_v1", 1) +[2618311.392] {Default Queue} wl_registry#3142.global(37, "mutter_x11_interop", 1) +[2618311.397] {Default Queue} wl_registry#3142.global(38, "wl_seat", 9) +[2618311.401] {Default Queue} -> wl_registry#3142.bind(38, "wl_seat", 1, new id [unknown]#3160) +[2618311.406] {Default Queue} wl_registry#3142.global(39, "wp_cursor_shape_manager_v1", 2) +[2618311.410] {Default Queue} wl_registry#3142.global(40, "wl_output", 4) +[2618311.415] {Default Queue} -> wl_registry#3142.bind(40, "wl_output", 1, new id [unknown]#3161) +[2618311.419] {Default Queue} wl_callback#3143.done(0) +[2618311.424] {Default Queue} discarded wl_surface#3111.enter(wl_output#18) +[2618311.428] {Default Queue} discarded wl_surface#3111.enter(wl_output#57) +[2618311.432] {Default Queue} discarded wl_surface#3111.enter(wl_output#89) +[2618311.435] {Default Queue} discarded wl_surface#3111.enter(wl_output#121) +[2618311.439] {Default Queue} discarded wl_surface#3111.enter(wl_output#153) +[2618311.443] {Default Queue} discarded wl_surface#3111.enter(wl_output#185) +[2618311.447] {Default Queue} discarded wl_surface#3111.enter(wl_output#217) +[2618311.451] {Default Queue} discarded wl_surface#3111.enter(wl_output#249) +[2618311.455] {Default Queue} discarded wl_surface#3111.enter(wl_output#281) +[2618311.459] {Default Queue} discarded wl_surface#3111.enter(wl_output#313) +[2618311.463] {Default Queue} discarded wl_surface#3111.enter(wl_output#345) +[2618311.467] {Default Queue} discarded wl_surface#3111.enter(wl_output#377) +[2618311.471] {Default Queue} discarded wl_surface#3111.enter(wl_output#409) +[2618311.474] {Default Queue} discarded wl_surface#3111.enter(wl_output#441) +[2618311.478] {Default Queue} discarded wl_surface#3111.enter(wl_output#473) +[2618311.482] {Default Queue} discarded wl_surface#3111.enter(wl_output#505) +[2618311.486] {Default Queue} discarded wl_surface#3111.enter(wl_output#537) +[2618311.490] {Default Queue} discarded wl_surface#3111.enter(wl_output#569) +[2618311.497] {Default Queue} discarded wl_surface#3111.enter(wl_output#601) +[2618311.502] {Default Queue} discarded wl_surface#3111.enter(wl_output#633) +[2618311.506] {Default Queue} discarded wl_surface#3111.enter(wl_output#665) +[2618311.510] {Default Queue} discarded wl_surface#3111.enter(wl_output#697) +[2618311.514] {Default Queue} discarded wl_surface#3111.enter(wl_output#729) +[2618311.518] {Default Queue} discarded wl_surface#3111.enter(wl_output#761) +[2618311.523] {Default Queue} discarded wl_surface#3111.enter(wl_output#793) +[2618311.527] {Default Queue} discarded wl_surface#3111.enter(wl_output#825) +[2618311.531] {Default Queue} discarded wl_surface#3111.enter(wl_output#857) +[2618311.536] {Default Queue} discarded wl_surface#3111.enter(wl_output#889) +[2618311.540] {Default Queue} discarded wl_surface#3111.enter(wl_output#921) +[2618311.544] {Default Queue} discarded wl_surface#3111.enter(wl_output#953) +[2618311.548] {Default Queue} discarded wl_surface#3111.enter(wl_output#985) +[2618311.552] {Default Queue} discarded wl_surface#3111.enter(wl_output#1017) +[2618311.556] {Default Queue} discarded wl_surface#3111.enter(wl_output#1049) +[2618311.560] {Default Queue} discarded wl_surface#3111.enter(wl_output#1081) +[2618311.564] {Default Queue} discarded wl_surface#3111.enter(wl_output#1113) +[2618311.568] {Default Queue} discarded wl_surface#3111.enter(wl_output#1145) +[2618311.572] {Default Queue} discarded wl_surface#3111.enter(wl_output#1177) +[2618311.576] {Default Queue} discarded wl_surface#3111.enter(wl_output#1209) +[2618311.580] {Default Queue} discarded wl_surface#3111.enter(wl_output#1241) +[2618311.584] {Default Queue} discarded wl_surface#3111.enter(wl_output#1273) +[2618311.588] {Default Queue} discarded wl_surface#3111.enter(wl_output#1305) +[2618311.592] {Default Queue} discarded wl_surface#3111.enter(wl_output#1337) +[2618311.596] {Default Queue} discarded wl_surface#3111.enter(wl_output#1369) +[2618311.600] {Default Queue} discarded wl_surface#3111.enter(wl_output#1401) +[2618311.604] {Default Queue} discarded wl_surface#3111.enter(wl_output#1433) +[2618311.608] {Default Queue} discarded wl_surface#3111.enter(wl_output#1465) +[2618311.612] {Default Queue} discarded wl_surface#3111.enter(wl_output#1497) +[2618311.615] {Default Queue} discarded wl_surface#3111.enter(wl_output#1529) +[2618311.619] {Default Queue} discarded wl_surface#3111.enter(wl_output#1561) +[2618311.623] {Default Queue} discarded wl_surface#3111.enter(wl_output#1593) +[2618311.627] {Default Queue} discarded wl_surface#3111.enter(wl_output#1625) +[2618311.631] {Default Queue} discarded wl_surface#3111.enter(wl_output#1657) +[2618311.635] {Default Queue} discarded wl_surface#3111.enter(wl_output#1689) +[2618311.639] {Default Queue} discarded wl_surface#3111.enter(wl_output#1721) +[2618311.643] {Default Queue} discarded wl_surface#3111.enter(wl_output#1753) +[2618311.647] {Default Queue} discarded wl_surface#3111.enter(wl_output#1785) +[2618311.651] {Default Queue} discarded wl_surface#3111.enter(wl_output#1817) +[2618311.655] {Default Queue} discarded wl_surface#3111.enter(wl_output#1849) +[2618311.659] {Default Queue} discarded wl_surface#3111.enter(wl_output#1881) +[2618311.663] {Default Queue} discarded wl_surface#3111.enter(wl_output#1913) +[2618311.667] {Default Queue} discarded wl_surface#3111.enter(wl_output#1945) +[2618311.671] {Default Queue} discarded wl_surface#3111.enter(wl_output#1977) +[2618311.674] {Default Queue} discarded wl_surface#3111.enter(wl_output#2009) +[2618311.678] {Default Queue} discarded wl_surface#3111.enter(wl_output#2041) +[2618311.682] {Default Queue} discarded wl_surface#3111.enter(wl_output#2073) +[2618311.686] {Default Queue} discarded wl_surface#3111.enter(wl_output#2105) +[2618311.690] {Default Queue} discarded wl_surface#3111.enter(wl_output#2137) +[2618311.694] {Default Queue} discarded wl_surface#3111.enter(wl_output#2169) +[2618311.698] {Default Queue} discarded wl_surface#3111.enter(wl_output#2201) +[2618311.701] {Default Queue} discarded wl_surface#3111.enter(wl_output#2233) +[2618311.705] {Default Queue} discarded wl_surface#3111.enter(wl_output#2265) +[2618311.712] {Default Queue} discarded wl_surface#3111.enter(wl_output#2297) +[2618311.717] {Default Queue} discarded wl_surface#3111.enter(wl_output#2329) +[2618311.721] {Default Queue} discarded wl_surface#3111.enter(wl_output#2361) +[2618311.725] {Default Queue} discarded wl_surface#3111.enter(wl_output#2393) +[2618311.729] {Default Queue} discarded wl_surface#3111.enter(wl_output#2425) +[2618311.733] {Default Queue} discarded wl_surface#3111.enter(wl_output#2457) +[2618311.737] {Default Queue} discarded wl_surface#3111.enter(wl_output#2489) +[2618311.741] {Default Queue} -> wl_compositor#3116.create_surface(new id wl_surface#3143) +[2618311.746] {Default Queue} -> wl_subcompositor#3149.get_subsurface(new id wl_subsurface#3162, wl_surface#3143, wl_surface#3111) +[2618311.754] {Default Queue} -> wl_subsurface#3162.set_desync() +[2618311.758] {Default Queue} -> wl_subsurface#3162.set_position(0, 0) +[2618311.762] {Default Queue} -> wl_subsurface#3162.place_above(wl_surface#3111) +[2618311.803] {Default Queue} -> wl_shm#3151.create_pool(new id wl_shm_pool#3163, fd 499, 16) +[2618311.811] {Default Queue} -> wl_shm#3151.create_pool(new id wl_shm_pool#3164, fd 500, 16) +[2618311.815] {Default Queue} -> wl_shm_pool#3163.create_buffer(new id wl_buffer#3165, 0, 2, 2, 8, 0) +[2618311.820] {Default Queue} -> wl_shm_pool#3164.create_buffer(new id wl_buffer#3166, 0, 2, 2, 8, 0) +[2618311.828] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) +[2618311.836] {Default Queue} -> wl_surface#3143.commit() +[2618311.842] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) +[2618311.846] {Default Queue} -> wl_surface#3143.commit() +[2618311.850] {Default Queue} -> wl_compositor#3148.create_region(new id wl_region#3167) +[2618311.854] {Default Queue} -> wl_compositor#3148.create_region(new id wl_region#3168) +[2618311.859] {Default Queue} -> wl_region#3167.subtract(0, 0, 2, 2) +[2618311.864] {Default Queue} -> wl_region#3167.add(0, 0, 0, 0) +[2618311.868] {Default Queue} -> wl_surface#3143.set_opaque_region(wl_region#3168) +[2618311.878] {Default Queue} -> wl_surface#3143.set_input_region(wl_region#3167) +[2618311.882] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) +[2618311.888] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) +[2618311.895] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) +[2618311.899] {Default Queue} -> wl_surface#3143.commit() +[2618311.941] {Default Queue} -> wl_shm#3153.create_pool(new id wl_shm_pool#3169, fd 503, 640) +[2618311.947] {Default Queue} -> wl_shm#3153.create_pool(new id wl_shm_pool#3170, fd 504, 640) +[2618311.952] {Default Queue} -> wl_shm_pool#3169.create_buffer(new id wl_buffer#3171, 0, 10, 16, 40, 0) +[2618311.957] {Default Queue} -> wl_shm_pool#3170.create_buffer(new id wl_buffer#3172, 0, 10, 16, 40, 0) +[2618311.966] {Default Queue} -> wl_compositor#3148.create_surface(new id wl_surface#3173) +[2618311.972] {Default Queue} -> wl_surface#3173.attach(wl_buffer#3171, 0, 0) +[2618311.978] {Default Queue} -> wl_surface#3173.commit() +[2618311.985] {Default Queue} -> wl_surface#3173.attach(wl_buffer#3171, 0, 0) +[2618311.991] {Default Queue} -> wl_surface#3173.commit() +[2618312.002] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3174) +[2618312.007] {Default Queue} -> wl_display#1.sync(new id wl_callback#3175) +[2618315.431] {Default Queue} discarded wl_surface#3111.enter(wl_output#2521) +[2618315.443] {Default Queue} discarded wl_surface#3111.enter(wl_output#2553) +[2618315.447] {Default Queue} discarded wl_surface#3111.enter(wl_output#2585) +[2618315.451] {Default Queue} discarded wl_surface#3111.enter(wl_output#2617) +[2618315.456] {Default Queue} discarded wl_surface#3111.enter(wl_output#2649) +[2618315.459] {Default Queue} discarded wl_surface#3111.enter(wl_output#2681) +[2618315.463] {Default Queue} discarded wl_surface#3111.enter(wl_output#2713) +[2618315.467] {Default Queue} discarded wl_surface#3111.enter(wl_output#2745) +[2618315.471] {Default Queue} discarded wl_surface#3111.enter(wl_output#2777) +[2618315.480] {Default Queue} discarded wl_surface#3111.enter(wl_output#2809) +[2618315.487] {Default Queue} discarded wl_surface#3111.enter(wl_output#2841) +[2618315.491] {Default Queue} discarded wl_surface#3111.enter(wl_output#2873) +[2618315.494] {Default Queue} discarded wl_surface#3111.enter(wl_output#2905) +[2618315.498] {Default Queue} discarded wl_surface#3111.enter(wl_output#2937) +[2618315.502] {Default Queue} discarded wl_surface#3111.enter(wl_output#2969) +[2618315.506] {Default Queue} discarded wl_surface#3111.enter(wl_output#3001) +[2618315.510] {Default Queue} discarded wl_surface#3111.enter(wl_output#3033) +[2618315.515] {Default Queue} discarded wl_surface#3111.enter(wl_output#3065) +[2618315.519] {Default Queue} discarded wl_surface#3111.enter(wl_output#3097) +[2618315.523] {Default Queue} discarded wl_surface#3111.enter(wl_output#3129) +[2618315.746] {Display Queue} wl_display#1.delete_id(3175) +[2618315.752] {Default Queue} wl_keyboard#3144.keymap(1, fd 499, 68213) +[2618315.757] {Default Queue} wl_keyboard#3144.enter(566, wl_surface#19, array[0]) +[2618315.762] {Default Queue} wl_keyboard#3144.modifiers(566, 0, 0, 16, 0) +[2618315.767] {Default Queue} discarded wl_shm#3151.format(875709016) +[2618315.771] {Default Queue} discarded wl_shm#3151.format(1) +[2618315.775] {Default Queue} discarded wl_shm#3151.format(0) +[2618315.779] {Default Queue} discarded wl_shm#3151.format(875708993) +[2618315.783] {Default Queue} discarded wl_shm#3152.format(875709016) +[2618315.787] {Default Queue} discarded wl_shm#3152.format(1) +[2618315.791] {Default Queue} discarded wl_shm#3152.format(0) +[2618315.795] {Default Queue} discarded wl_shm#3152.format(875708993) +[2618315.799] {Default Queue} discarded wl_shm#3153.format(875709016) +[2618315.803] {Default Queue} discarded wl_shm#3153.format(1) +[2618315.806] {Default Queue} discarded wl_shm#3153.format(0) +[2618315.810] {Default Queue} discarded wl_shm#3153.format(875708993) +[2618315.814] {Default Queue} wl_seat#3160.capabilities(7) +[2618315.819] {Default Queue} -> wl_seat#3160.get_keyboard(new id wl_keyboard#3176) +[2618315.823] {Default Queue} -> wl_seat#3160.get_pointer(new id wl_pointer#3177) +[2618315.829] {Default Queue} -> wl_data_device_manager#3156.get_data_device(new id wl_data_device#3178, wl_seat#3160) +[2618315.834] {Default Queue} -> zwp_primary_selection_device_manager_v1#3158.get_device(new id zwp_primary_selection_device_v1#3179, wl_seat#3160) +[2618315.841] {Default Queue} wl_output#3161.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618315.846] {Default Queue} wl_output#3161.mode(3, 1280, 800, 60000) +[2618315.851] {Default Queue} discarded wl_surface#2727.enter(wl_output#3161) +[2618315.856] {Default Queue} discarded wl_surface#3.enter(wl_output#3161) +[2618315.859] {Default Queue} discarded wl_surface#999.enter(wl_output#3161) +[2618315.870] {Default Queue} discarded wl_surface#3079.enter(wl_output#3161) +[2618315.874] {Default Queue} discarded wl_surface#1191.enter(wl_output#3161) +[2618315.878] {Default Queue} discarded wl_surface#1159.enter(wl_output#3161) +[2618315.882] {Default Queue} discarded wl_surface#1703.enter(wl_output#3161) +[2618315.887] {Default Queue} discarded wl_surface#2215.enter(wl_output#3161) +[2618315.890] {Default Queue} discarded wl_surface#423.enter(wl_output#3161) +[2618315.894] {Default Queue} discarded wl_surface#1447.enter(wl_output#3161) +[2618315.898] {Default Queue} discarded wl_surface#3047.enter(wl_output#3161) +[2618315.902] {Default Queue} discarded wl_surface#2023.enter(wl_output#3161) +[2618315.906] {Default Queue} discarded wl_surface#1639.enter(wl_output#3161) +[2618315.910] {Default Queue} discarded wl_surface#1319.enter(wl_output#3161) +[2618315.914] {Default Queue} discarded wl_surface#1127.enter(wl_output#3161) +[2618315.917] {Default Queue} discarded wl_surface#2151.enter(wl_output#3161) +[2618315.922] {Default Queue} discarded wl_surface#2375.enter(wl_output#3161) +[2618315.925] {Default Queue} discarded wl_surface#2695.enter(wl_output#3161) +[2618315.929] {Default Queue} discarded wl_surface#2919.enter(wl_output#3161) +[2618315.934] {Default Queue} discarded wl_surface#1063.enter(wl_output#3161) +[2618315.941] {Default Queue} discarded wl_surface#455.enter(wl_output#3161) +[2618315.947] {Default Queue} discarded wl_surface#1575.enter(wl_output#3161) +[2618315.951] {Default Queue} discarded wl_surface#1799.enter(wl_output#3161) +[2618315.955] {Default Queue} discarded wl_surface#1415.enter(wl_output#3161) +[2618315.959] {Default Queue} discarded wl_surface#2439.enter(wl_output#3161) +[2618315.963] {Default Queue} discarded wl_surface#2279.enter(wl_output#3161) +[2618315.967] {Default Queue} discarded wl_surface#1831.enter(wl_output#3161) +[2618315.971] {Default Queue} discarded wl_surface#903.enter(wl_output#3161) +[2618315.974] {Default Queue} discarded wl_surface#2663.enter(wl_output#3161) +[2618315.978] {Default Queue} discarded wl_surface#775.enter(wl_output#3161) +[2618315.982] {Default Queue} discarded wl_surface#1991.enter(wl_output#3161) +[2618315.986] {Default Queue} discarded wl_surface#1543.enter(wl_output#3161) +[2618315.990] {Default Queue} discarded wl_surface#135.enter(wl_output#3161) +[2618315.994] {Default Queue} discarded wl_surface#1287.enter(wl_output#3161) +[2618315.998] {Default Queue} discarded wl_surface#1031.enter(wl_output#3161) +[2618316.001] {Default Queue} discarded wl_surface#615.enter(wl_output#3161) +[2618316.005] {Default Queue} discarded wl_surface#3111.enter(wl_output#3161) +[2618316.009] {Default Queue} discarded wl_surface#231.enter(wl_output#3161) +[2618316.013] {Default Queue} discarded wl_surface#2343.enter(wl_output#3161) +[2618316.017] {Default Queue} discarded wl_surface#1863.enter(wl_output#3161) +[2618316.021] {Default Queue} discarded wl_surface#359.enter(wl_output#3161) +[2618316.025] {Default Queue} discarded wl_surface#2983.enter(wl_output#3161) +[2618316.029] {Default Queue} discarded wl_surface#583.enter(wl_output#3161) +[2618316.032] {Default Queue} discarded wl_surface#743.enter(wl_output#3161) +[2618316.036] {Default Queue} discarded wl_surface#2535.enter(wl_output#3161) +[2618316.040] {Default Queue} discarded wl_surface#967.enter(wl_output#3161) +[2618316.044] {Default Queue} discarded wl_surface#103.enter(wl_output#3161) +[2618316.048] {Default Queue} discarded wl_surface#327.enter(wl_output#3161) +[2618316.052] {Default Queue} discarded wl_surface#43.enter(wl_output#3161) +[2618316.056] {Default Queue} discarded wl_surface#2247.enter(wl_output#3161) +[2618316.060] {Default Queue} discarded wl_surface#807.enter(wl_output#3161) +[2618316.064] {Default Queue} discarded wl_surface#19.enter(wl_output#3161) +[2618316.068] {Default Queue} discarded wl_surface#2951.enter(wl_output#3161) +[2618316.072] {Default Queue} discarded wl_surface#1511.enter(wl_output#3161) +[2618316.075] {Default Queue} discarded wl_surface#199.enter(wl_output#3161) +[2618316.079] {Default Queue} discarded wl_surface#391.enter(wl_output#3161) +[2618316.083] {Default Queue} discarded wl_surface#935.enter(wl_output#3161) +[2618316.087] {Default Queue} discarded wl_surface#2823.enter(wl_output#3161) +[2618316.091] {Default Queue} discarded wl_surface#3015.enter(wl_output#3161) +[2618316.095] {Default Queue} discarded wl_surface#1671.enter(wl_output#3161) +[2618316.099] {Default Queue} discarded wl_surface#1351.enter(wl_output#3161) +[2618316.103] {Default Queue} discarded wl_surface#711.enter(wl_output#3161) +[2618316.107] {Default Queue} discarded wl_surface#1223.enter(wl_output#3161) +[2618316.111] {Default Queue} discarded wl_surface#1927.enter(wl_output#3161) +[2618316.115] {Default Queue} discarded wl_surface#871.enter(wl_output#3161) +[2618316.118] {Default Queue} discarded wl_surface#1895.enter(wl_output#3161) +[2618316.122] {Default Queue} discarded wl_surface#263.enter(wl_output#3161) +[2618316.126] {Default Queue} discarded wl_surface#551.enter(wl_output#3161) +[2618316.130] {Default Queue} discarded wl_surface#1735.enter(wl_output#3161) +[2618316.134] {Default Queue} discarded wl_surface#1479.enter(wl_output#3161) +[2618316.138] {Default Queue} discarded wl_surface#1772.enter(wl_output#3161) +[2618316.142] {Default Queue} discarded wl_surface#2599.enter(wl_output#3161) +[2618316.146] {Default Queue} discarded wl_surface#2631.enter(wl_output#3161) +[2618316.153] {Default Queue} discarded wl_surface#1959.enter(wl_output#3161) +[2618316.158] {Default Queue} discarded wl_surface#647.enter(wl_output#3161) +[2618316.162] {Default Queue} discarded wl_surface#2055.enter(wl_output#3161) +[2618316.166] {Default Queue} discarded wl_surface#2508.enter(wl_output#3161) +[2618316.170] {Default Queue} discarded wl_surface#71.enter(wl_output#3161) +[2618316.174] {Default Queue} discarded wl_surface#2759.enter(wl_output#3161) +[2618316.178] {Default Queue} discarded wl_surface#2791.enter(wl_output#3161) +[2618316.181] {Default Queue} discarded wl_surface#2887.enter(wl_output#3161) +[2618316.185] {Default Queue} discarded wl_surface#2183.enter(wl_output#3161) +[2618316.189] {Default Queue} discarded wl_surface#2567.enter(wl_output#3161) +[2618316.193] {Default Queue} discarded wl_surface#839.enter(wl_output#3161) +[2618316.197] {Default Queue} discarded wl_surface#1607.enter(wl_output#3161) +[2618316.201] {Default Queue} discarded wl_surface#1095.enter(wl_output#3161) +[2618316.205] {Default Queue} discarded wl_surface#1383.enter(wl_output#3161) +[2618316.209] {Default Queue} discarded wl_surface#487.enter(wl_output#3161) +[2618316.213] {Default Queue} discarded wl_surface#2311.enter(wl_output#3161) +[2618316.217] {Default Queue} discarded wl_surface#519.enter(wl_output#3161) +[2618316.221] {Default Queue} discarded wl_surface#2087.enter(wl_output#3161) +[2618316.225] {Default Queue} discarded wl_surface#2471.enter(wl_output#3161) +[2618316.229] {Default Queue} discarded wl_surface#295.enter(wl_output#3161) +[2618316.233] {Default Queue} discarded wl_surface#167.enter(wl_output#3161) +[2618316.237] {Default Queue} discarded wl_surface#1255.enter(wl_output#3161) +[2618316.241] {Default Queue} discarded wl_surface#2855.enter(wl_output#3161) +[2618316.245] {Default Queue} discarded wl_surface#679.enter(wl_output#3161) +[2618316.249] {Default Queue} discarded wl_surface#2407.enter(wl_output#3161) +[2618316.252] {Default Queue} discarded wl_surface#2119.enter(wl_output#3161) +[2618316.256] {Default Queue} wl_registry#3174.global(1, "wl_compositor", 6) +[2618316.262] {Default Queue} -> wl_registry#3174.bind(1, "wl_compositor", 1, new id [unknown]#3180) +[2618316.269] {Default Queue} wl_registry#3174.global(2, "wl_subcompositor", 1) +[2618316.274] {Default Queue} -> wl_registry#3174.bind(2, "wl_subcompositor", 1, new id [unknown]#3181) +[2618316.278] {Default Queue} wl_registry#3174.global(3, "xdg_wm_base", 6) +[2618316.283] {Default Queue} -> wl_registry#3174.bind(3, "xdg_wm_base", 1, new id [unknown]#3182) +[2618316.287] {Default Queue} wl_registry#3174.global(6, "zwlr_layer_shell_v1", 5) +[2618316.291] {Default Queue} wl_registry#3174.global(7, "ext_session_lock_manager_v1", 1) +[2618316.296] {Default Queue} wl_registry#3174.global(8, "wl_shm", 2) +[2618316.301] {Default Queue} -> wl_registry#3174.bind(8, "wl_shm", 1, new id [unknown]#3183) +[2618316.305] {Default Queue} -> wl_registry#3174.bind(8, "wl_shm", 1, new id [unknown]#3184) +[2618316.309] {Default Queue} -> wl_registry#3174.bind(8, "wl_shm", 1, new id [unknown]#3185) +[2618316.314] {Default Queue} wl_registry#3174.global(9, "zxdg_output_manager_v1", 3) +[2618316.318] {Default Queue} wl_registry#3174.global(10, "wp_fractional_scale_manager_v1", 1) +[2618316.323] {Default Queue} wl_registry#3174.global(11, "zwp_tablet_manager_v2", 1) +[2618316.329] {Default Queue} wl_registry#3174.global(12, "zwp_pointer_gestures_v1", 3) +[2618316.335] {Default Queue} wl_registry#3174.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618316.342] {Default Queue} -> wl_registry#3174.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3186) +[2618316.347] {Default Queue} wl_registry#3174.global(14, "zwp_pointer_constraints_v1", 1) +[2618316.353] {Default Queue} -> wl_registry#3174.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3187) +[2618316.359] {Default Queue} wl_registry#3174.global(15, "ext_idle_notifier_v1", 2) +[2618316.363] {Default Queue} wl_registry#3174.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618316.371] {Default Queue} wl_registry#3174.global(17, "wl_data_device_manager", 3) +[2618316.378] {Default Queue} -> wl_registry#3174.bind(17, "wl_data_device_manager", 2, new id [unknown]#3188) +[2618316.382] {Default Queue} -> wl_data_device_manager#3188.create_data_source(new id wl_data_source#3189) +[2618316.387] {Default Queue} -> wl_data_source#3189.offer("text/plain") +[2618316.391] {Default Queue} -> wl_data_source#3189.offer("text/plain;charset=utf-8") +[2618316.395] {Default Queue} -> wl_data_source#3189.offer("TEXT") +[2618316.399] {Default Queue} -> wl_data_source#3189.offer("STRING") +[2618316.403] {Default Queue} -> wl_data_source#3189.offer("UTF8_STRING") +[2618316.408] {Default Queue} wl_registry#3174.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618316.412] {Default Queue} -> wl_registry#3174.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3190) +[2618316.420] {Default Queue} -> zwp_primary_selection_device_manager_v1#3190.create_source(new id zwp_primary_selection_source_v1#3191) +[2618316.428] {Default Queue} -> zwp_primary_selection_source_v1#3191.offer("text/plain") +[2618316.432] {Default Queue} -> zwp_primary_selection_source_v1#3191.offer("text/plain;charset=utf-8") +[2618316.436] {Default Queue} -> zwp_primary_selection_source_v1#3191.offer("TEXT") +[2618316.440] {Default Queue} -> zwp_primary_selection_source_v1#3191.offer("STRING") +[2618316.445] {Default Queue} -> zwp_primary_selection_source_v1#3191.offer("UTF8_STRING") +[2618316.448] {Default Queue} wl_registry#3174.global(19, "zwlr_data_control_manager_v1", 2) +[2618316.453] {Default Queue} wl_registry#3174.global(20, "ext_data_control_manager_v1", 1) +[2618316.458] {Default Queue} wl_registry#3174.global(21, "wp_presentation", 2) +[2618316.462] {Default Queue} wl_registry#3174.global(22, "wp_security_context_manager_v1", 1) +[2618316.467] {Default Queue} wl_registry#3174.global(23, "zwp_text_input_manager_v3", 1) +[2618316.471] {Default Queue} wl_registry#3174.global(24, "zwp_input_method_manager_v2", 1) +[2618316.475] {Default Queue} wl_registry#3174.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618316.480] {Default Queue} wl_registry#3174.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618316.484] {Default Queue} wl_registry#3174.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618316.488] {Default Queue} wl_registry#3174.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618316.493] {Default Queue} wl_registry#3174.global(29, "ext_workspace_manager_v1", 1) +[2618316.497] {Default Queue} wl_registry#3174.global(30, "zwlr_output_manager_v1", 4) +[2618316.501] {Default Queue} wl_registry#3174.global(31, "zwlr_screencopy_manager_v1", 3) +[2618316.505] {Default Queue} wl_registry#3174.global(32, "wp_viewporter", 1) +[2618316.510] {Default Queue} wl_registry#3174.global(33, "zxdg_exporter_v2", 1) +[2618316.515] {Default Queue} wl_registry#3174.global(34, "zxdg_importer_v2", 1) +[2618316.519] {Default Queue} wl_registry#3174.global(36, "xdg_activation_v1", 1) +[2618316.524] {Default Queue} wl_registry#3174.global(37, "mutter_x11_interop", 1) +[2618316.528] {Default Queue} wl_registry#3174.global(38, "wl_seat", 9) +[2618316.533] {Default Queue} -> wl_registry#3174.bind(38, "wl_seat", 1, new id [unknown]#3192) +[2618316.537] {Default Queue} wl_registry#3174.global(39, "wp_cursor_shape_manager_v1", 2) +[2618316.542] {Default Queue} wl_registry#3174.global(40, "wl_output", 4) +[2618316.546] {Default Queue} -> wl_registry#3174.bind(40, "wl_output", 1, new id [unknown]#3193) +[2618316.551] {Default Queue} wl_callback#3175.done(0) +[2618316.555] {Default Queue} discarded wl_surface#3143.enter(wl_output#18) +[2618316.559] {Default Queue} discarded wl_surface#3143.enter(wl_output#57) +[2618316.563] {Default Queue} discarded wl_surface#3143.enter(wl_output#89) +[2618316.567] {Default Queue} discarded wl_surface#3143.enter(wl_output#121) +[2618316.571] {Default Queue} discarded wl_surface#3143.enter(wl_output#153) +[2618316.575] {Default Queue} discarded wl_surface#3143.enter(wl_output#185) +[2618316.579] {Default Queue} discarded wl_surface#3143.enter(wl_output#217) +[2618316.586] {Default Queue} discarded wl_surface#3143.enter(wl_output#249) +[2618316.591] {Default Queue} discarded wl_surface#3143.enter(wl_output#281) +[2618316.595] {Default Queue} discarded wl_surface#3143.enter(wl_output#313) +[2618316.599] {Default Queue} discarded wl_surface#3143.enter(wl_output#345) +[2618316.603] {Default Queue} discarded wl_surface#3143.enter(wl_output#377) +[2618316.607] {Default Queue} discarded wl_surface#3143.enter(wl_output#409) +[2618316.611] {Default Queue} discarded wl_surface#3143.enter(wl_output#441) +[2618316.615] {Default Queue} discarded wl_surface#3143.enter(wl_output#473) +[2618316.618] {Default Queue} discarded wl_surface#3143.enter(wl_output#505) +[2618316.622] {Default Queue} discarded wl_surface#3143.enter(wl_output#537) +[2618316.626] {Default Queue} discarded wl_surface#3143.enter(wl_output#569) +[2618316.630] {Default Queue} discarded wl_surface#3143.enter(wl_output#601) +[2618316.634] {Default Queue} discarded wl_surface#3143.enter(wl_output#633) +[2618316.638] {Default Queue} discarded wl_surface#3143.enter(wl_output#665) +[2618316.641] {Default Queue} discarded wl_surface#3143.enter(wl_output#697) +[2618316.645] {Default Queue} discarded wl_surface#3143.enter(wl_output#729) +[2618316.649] {Default Queue} discarded wl_surface#3143.enter(wl_output#761) +[2618316.654] {Default Queue} discarded wl_surface#3143.enter(wl_output#793) +[2618316.658] {Default Queue} discarded wl_surface#3143.enter(wl_output#825) +[2618316.662] {Default Queue} discarded wl_surface#3143.enter(wl_output#857) +[2618316.666] {Default Queue} discarded wl_surface#3143.enter(wl_output#889) +[2618316.670] {Default Queue} discarded wl_surface#3143.enter(wl_output#921) +[2618316.674] {Default Queue} discarded wl_surface#3143.enter(wl_output#953) +[2618316.678] {Default Queue} discarded wl_surface#3143.enter(wl_output#985) +[2618316.682] {Default Queue} discarded wl_surface#3143.enter(wl_output#1017) +[2618316.686] {Default Queue} discarded wl_surface#3143.enter(wl_output#1049) +[2618316.690] {Default Queue} discarded wl_surface#3143.enter(wl_output#1081) +[2618316.694] {Default Queue} discarded wl_surface#3143.enter(wl_output#1113) +[2618316.698] {Default Queue} discarded wl_surface#3143.enter(wl_output#1145) +[2618316.703] {Default Queue} discarded wl_surface#3143.enter(wl_output#1177) +[2618316.707] {Default Queue} discarded wl_surface#3143.enter(wl_output#1209) +[2618316.711] {Default Queue} discarded wl_surface#3143.enter(wl_output#1241) +[2618316.715] {Default Queue} discarded wl_surface#3143.enter(wl_output#1273) +[2618316.719] {Default Queue} discarded wl_surface#3143.enter(wl_output#1305) +[2618316.723] {Default Queue} discarded wl_surface#3143.enter(wl_output#1337) +[2618316.727] {Default Queue} discarded wl_surface#3143.enter(wl_output#1369) +[2618316.731] {Default Queue} discarded wl_surface#3143.enter(wl_output#1401) +[2618316.735] {Default Queue} discarded wl_surface#3143.enter(wl_output#1433) +[2618316.739] {Default Queue} discarded wl_surface#3143.enter(wl_output#1465) +[2618316.743] {Default Queue} discarded wl_surface#3143.enter(wl_output#1497) +[2618316.747] {Default Queue} discarded wl_surface#3143.enter(wl_output#1529) +[2618316.751] {Default Queue} discarded wl_surface#3143.enter(wl_output#1561) +[2618316.754] {Default Queue} discarded wl_surface#3143.enter(wl_output#1593) +[2618316.758] {Default Queue} discarded wl_surface#3143.enter(wl_output#1625) +[2618316.762] {Default Queue} discarded wl_surface#3143.enter(wl_output#1657) +[2618316.766] {Default Queue} discarded wl_surface#3143.enter(wl_output#1689) +[2618316.770] {Default Queue} discarded wl_surface#3143.enter(wl_output#1721) +[2618316.774] {Default Queue} discarded wl_surface#3143.enter(wl_output#1753) +[2618316.778] {Default Queue} discarded wl_surface#3143.enter(wl_output#1785) +[2618316.782] {Default Queue} discarded wl_surface#3143.enter(wl_output#1817) +[2618316.786] {Default Queue} discarded wl_surface#3143.enter(wl_output#1849) +[2618316.790] {Default Queue} discarded wl_surface#3143.enter(wl_output#1881) +[2618316.797] {Default Queue} discarded wl_surface#3143.enter(wl_output#1913) +[2618316.803] {Default Queue} discarded wl_surface#3143.enter(wl_output#1945) +[2618316.807] {Default Queue} discarded wl_surface#3143.enter(wl_output#1977) +[2618316.811] {Default Queue} discarded wl_surface#3143.enter(wl_output#2009) +[2618316.815] {Default Queue} discarded wl_surface#3143.enter(wl_output#2041) +[2618316.819] {Default Queue} discarded wl_surface#3143.enter(wl_output#2073) +[2618316.823] {Default Queue} discarded wl_surface#3143.enter(wl_output#2105) +[2618316.826] {Default Queue} discarded wl_surface#3143.enter(wl_output#2137) +[2618316.830] {Default Queue} discarded wl_surface#3143.enter(wl_output#2169) +[2618316.834] {Default Queue} discarded wl_surface#3143.enter(wl_output#2201) +[2618316.838] {Default Queue} discarded wl_surface#3143.enter(wl_output#2233) +[2618316.843] {Default Queue} discarded wl_surface#3143.enter(wl_output#2265) +[2618316.847] {Default Queue} discarded wl_surface#3143.enter(wl_output#2297) +[2618316.850] {Default Queue} discarded wl_surface#3143.enter(wl_output#2329) +[2618316.854] {Default Queue} discarded wl_surface#3143.enter(wl_output#2361) +[2618316.858] {Default Queue} discarded wl_surface#3143.enter(wl_output#2393) +[2618316.869] {Default Queue} discarded wl_surface#3143.enter(wl_output#2425) +[2618316.873] {Default Queue} discarded wl_surface#3143.enter(wl_output#2457) +[2618316.878] {Default Queue} -> wl_compositor#3148.create_surface(new id wl_surface#3175) +[2618316.883] {Default Queue} -> wl_subcompositor#3181.get_subsurface(new id wl_subsurface#3194, wl_surface#3175, wl_surface#3143) +[2618316.891] {Default Queue} -> wl_subsurface#3194.set_desync() +[2618316.895] {Default Queue} -> wl_subsurface#3194.set_position(-14, 0) +[2618316.900] {Default Queue} -> wl_subsurface#3194.place_above(wl_surface#3143) +[2618316.942] {Default Queue} -> wl_shm#3183.create_pool(new id wl_shm_pool#3195, fd 504, 128) +[2618316.949] {Default Queue} -> wl_shm#3183.create_pool(new id wl_shm_pool#3196, fd 505, 128) +[2618316.953] {Default Queue} -> wl_shm_pool#3195.create_buffer(new id wl_buffer#3197, 0, 16, 2, 64, 0) +[2618316.958] {Default Queue} -> wl_shm_pool#3196.create_buffer(new id wl_buffer#3198, 0, 16, 2, 64, 0) +[2618316.966] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618316.973] {Default Queue} -> wl_surface#3175.commit() +[2618316.981] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618316.986] {Default Queue} -> wl_surface#3175.commit() +[2618316.992] {Default Queue} -> wl_compositor#3180.create_region(new id wl_region#3199) +[2618316.998] {Default Queue} -> wl_compositor#3180.create_region(new id wl_region#3200) +[2618317.002] {Default Queue} -> wl_region#3199.subtract(0, 0, 30, 2) +[2618317.007] {Default Queue} -> wl_region#3199.add(0, 0, 0, 0) +[2618317.012] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618317.016] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618317.021] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618317.025] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) +[2618317.040] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618317.045] {Default Queue} -> wl_surface#3175.commit() +[2618317.083] {Default Queue} -> wl_shm#3185.create_pool(new id wl_shm_pool#3201, fd 508, 640) +[2618317.089] {Default Queue} -> wl_shm#3185.create_pool(new id wl_shm_pool#3202, fd 509, 640) +[2618317.093] {Default Queue} -> wl_shm_pool#3201.create_buffer(new id wl_buffer#3203, 0, 10, 16, 40, 0) +[2618317.098] {Default Queue} -> wl_shm_pool#3202.create_buffer(new id wl_buffer#3204, 0, 10, 16, 40, 0) +[2618317.106] {Default Queue} -> wl_compositor#3180.create_surface(new id wl_surface#3205) +[2618317.110] {Default Queue} -> wl_surface#3205.attach(wl_buffer#3203, 0, 0) +[2618317.114] {Default Queue} -> wl_surface#3205.commit() +[2618317.120] {Default Queue} -> wl_surface#3205.attach(wl_buffer#3203, 0, 0) +[2618317.124] {Default Queue} -> wl_surface#3205.commit() +[2618317.131] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618317.145] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618317.152] {Default Queue} -> wl_surface#3175.commit() +[2618317.159] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3206) +[2618317.164] {Default Queue} -> wl_display#1.sync(new id wl_callback#3207) +[2618320.448] {Default Queue} discarded wl_surface#3143.enter(wl_output#2489) +[2618320.459] {Default Queue} discarded wl_surface#3143.enter(wl_output#2521) +[2618320.464] {Default Queue} discarded wl_surface#3143.enter(wl_output#2553) +[2618320.468] {Default Queue} discarded wl_surface#3143.enter(wl_output#2585) +[2618320.473] {Default Queue} discarded wl_surface#3143.enter(wl_output#2617) +[2618320.477] {Default Queue} discarded wl_surface#3143.enter(wl_output#2649) +[2618320.481] {Default Queue} discarded wl_surface#3143.enter(wl_output#2681) +[2618320.484] {Default Queue} discarded wl_surface#3143.enter(wl_output#2713) +[2618320.489] {Default Queue} discarded wl_surface#3143.enter(wl_output#2745) +[2618320.493] {Default Queue} discarded wl_surface#3143.enter(wl_output#2777) +[2618320.497] {Default Queue} discarded wl_surface#3143.enter(wl_output#2809) +[2618320.500] {Default Queue} discarded wl_surface#3143.enter(wl_output#2841) +[2618320.504] {Default Queue} discarded wl_surface#3143.enter(wl_output#2873) +[2618320.508] {Default Queue} discarded wl_surface#3143.enter(wl_output#2905) +[2618320.512] {Default Queue} discarded wl_surface#3143.enter(wl_output#2937) +[2618320.516] {Default Queue} discarded wl_surface#3143.enter(wl_output#2969) +[2618320.520] {Default Queue} discarded wl_surface#3143.enter(wl_output#3001) +[2618320.524] {Default Queue} discarded wl_surface#3143.enter(wl_output#3033) +[2618320.528] {Default Queue} discarded wl_surface#3143.enter(wl_output#3065) +[2618320.532] {Default Queue} discarded wl_surface#3143.enter(wl_output#3097) +[2618320.536] {Default Queue} discarded wl_surface#3143.enter(wl_output#3129) +[2618320.540] {Default Queue} discarded wl_surface#3143.enter(wl_output#3161) +[2618320.754] {Display Queue} wl_display#1.delete_id(3207) +[2618320.760] {Default Queue} wl_keyboard#3176.keymap(1, fd 504, 68213) +[2618320.765] {Default Queue} wl_keyboard#3176.enter(566, wl_surface#19, array[0]) +[2618320.770] {Default Queue} wl_keyboard#3176.modifiers(566, 0, 0, 16, 0) +[2618320.775] {Default Queue} discarded wl_shm#3183.format(875709016) +[2618320.779] {Default Queue} discarded wl_shm#3183.format(1) +[2618320.782] {Default Queue} discarded wl_shm#3183.format(0) +[2618320.786] {Default Queue} discarded wl_shm#3183.format(875708993) +[2618320.791] {Default Queue} discarded wl_shm#3184.format(875709016) +[2618320.795] {Default Queue} discarded wl_shm#3184.format(1) +[2618320.799] {Default Queue} discarded wl_shm#3184.format(0) +[2618320.802] {Default Queue} discarded wl_shm#3184.format(875708993) +[2618320.806] {Default Queue} discarded wl_shm#3185.format(875709016) +[2618320.810] {Default Queue} discarded wl_shm#3185.format(1) +[2618320.814] {Default Queue} discarded wl_shm#3185.format(0) +[2618320.818] {Default Queue} discarded wl_shm#3185.format(875708993) +[2618320.821] {Default Queue} wl_seat#3192.capabilities(7) +[2618320.826] {Default Queue} -> wl_seat#3192.get_keyboard(new id wl_keyboard#3208) +[2618320.830] {Default Queue} -> wl_seat#3192.get_pointer(new id wl_pointer#3209) +[2618320.835] {Default Queue} -> wl_data_device_manager#3188.get_data_device(new id wl_data_device#3210, wl_seat#3192) +[2618320.840] {Default Queue} -> zwp_primary_selection_device_manager_v1#3190.get_device(new id zwp_primary_selection_device_v1#3211, wl_seat#3192) +[2618320.847] {Default Queue} wl_output#3193.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618320.852] {Default Queue} wl_output#3193.mode(3, 1280, 800, 60000) +[2618320.857] {Default Queue} discarded wl_surface#2727.enter(wl_output#3193) +[2618320.868] {Default Queue} discarded wl_surface#3.enter(wl_output#3193) +[2618320.872] {Default Queue} discarded wl_surface#999.enter(wl_output#3193) +[2618320.876] {Default Queue} discarded wl_surface#3079.enter(wl_output#3193) +[2618320.886] {Default Queue} discarded wl_surface#1191.enter(wl_output#3193) +[2618320.893] {Default Queue} discarded wl_surface#1159.enter(wl_output#3193) +[2618320.896] {Default Queue} discarded wl_surface#1703.enter(wl_output#3193) +[2618320.900] {Default Queue} discarded wl_surface#2215.enter(wl_output#3193) +[2618320.904] {Default Queue} discarded wl_surface#423.enter(wl_output#3193) +[2618320.908] {Default Queue} discarded wl_surface#1447.enter(wl_output#3193) +[2618320.912] {Default Queue} discarded wl_surface#3047.enter(wl_output#3193) +[2618320.916] {Default Queue} discarded wl_surface#2023.enter(wl_output#3193) +[2618320.920] {Default Queue} discarded wl_surface#1639.enter(wl_output#3193) +[2618320.923] {Default Queue} discarded wl_surface#1319.enter(wl_output#3193) +[2618320.927] {Default Queue} discarded wl_surface#1127.enter(wl_output#3193) +[2618320.931] {Default Queue} discarded wl_surface#2151.enter(wl_output#3193) +[2618320.935] {Default Queue} discarded wl_surface#2375.enter(wl_output#3193) +[2618320.939] {Default Queue} discarded wl_surface#2695.enter(wl_output#3193) +[2618320.944] {Default Queue} discarded wl_surface#2919.enter(wl_output#3193) +[2618320.948] {Default Queue} discarded wl_surface#1063.enter(wl_output#3193) +[2618320.952] {Default Queue} discarded wl_surface#455.enter(wl_output#3193) +[2618320.956] {Default Queue} discarded wl_surface#1575.enter(wl_output#3193) +[2618320.960] {Default Queue} discarded wl_surface#1799.enter(wl_output#3193) +[2618320.964] {Default Queue} discarded wl_surface#1415.enter(wl_output#3193) +[2618320.968] {Default Queue} discarded wl_surface#2439.enter(wl_output#3193) +[2618320.972] {Default Queue} discarded wl_surface#2279.enter(wl_output#3193) +[2618320.977] {Default Queue} discarded wl_surface#1831.enter(wl_output#3193) +[2618320.981] {Default Queue} discarded wl_surface#903.enter(wl_output#3193) +[2618320.984] {Default Queue} discarded wl_surface#2663.enter(wl_output#3193) +[2618320.988] {Default Queue} discarded wl_surface#775.enter(wl_output#3193) +[2618320.992] {Default Queue} discarded wl_surface#1991.enter(wl_output#3193) +[2618320.996] {Default Queue} discarded wl_surface#1543.enter(wl_output#3193) +[2618321.000] {Default Queue} discarded wl_surface#135.enter(wl_output#3193) +[2618321.004] {Default Queue} discarded wl_surface#1287.enter(wl_output#3193) +[2618321.008] {Default Queue} discarded wl_surface#1031.enter(wl_output#3193) +[2618321.011] {Default Queue} discarded wl_surface#615.enter(wl_output#3193) +[2618321.015] {Default Queue} discarded wl_surface#3111.enter(wl_output#3193) +[2618321.019] {Default Queue} discarded wl_surface#231.enter(wl_output#3193) +[2618321.023] {Default Queue} discarded wl_surface#2343.enter(wl_output#3193) +[2618321.027] {Default Queue} discarded wl_surface#1863.enter(wl_output#3193) +[2618321.031] {Default Queue} discarded wl_surface#359.enter(wl_output#3193) +[2618321.035] {Default Queue} discarded wl_surface#2983.enter(wl_output#3193) +[2618321.039] {Default Queue} discarded wl_surface#583.enter(wl_output#3193) +[2618321.043] {Default Queue} discarded wl_surface#743.enter(wl_output#3193) +[2618321.046] {Default Queue} discarded wl_surface#3143.enter(wl_output#3193) +[2618321.050] {Default Queue} discarded wl_surface#2535.enter(wl_output#3193) +[2618321.054] {Default Queue} discarded wl_surface#967.enter(wl_output#3193) +[2618321.058] {Default Queue} discarded wl_surface#103.enter(wl_output#3193) +[2618321.062] {Default Queue} discarded wl_surface#327.enter(wl_output#3193) +[2618321.066] {Default Queue} discarded wl_surface#43.enter(wl_output#3193) +[2618321.070] {Default Queue} discarded wl_surface#2247.enter(wl_output#3193) +[2618321.074] {Default Queue} discarded wl_surface#807.enter(wl_output#3193) +[2618321.077] {Default Queue} discarded wl_surface#19.enter(wl_output#3193) +[2618321.081] {Default Queue} discarded wl_surface#2951.enter(wl_output#3193) +[2618321.085] {Default Queue} discarded wl_surface#1511.enter(wl_output#3193) +[2618321.089] {Default Queue} discarded wl_surface#199.enter(wl_output#3193) +[2618321.093] {Default Queue} discarded wl_surface#391.enter(wl_output#3193) +[2618321.100] {Default Queue} discarded wl_surface#935.enter(wl_output#3193) +[2618321.105] {Default Queue} discarded wl_surface#2823.enter(wl_output#3193) +[2618321.109] {Default Queue} discarded wl_surface#3015.enter(wl_output#3193) +[2618321.113] {Default Queue} discarded wl_surface#1671.enter(wl_output#3193) +[2618321.117] {Default Queue} discarded wl_surface#1351.enter(wl_output#3193) +[2618321.121] {Default Queue} discarded wl_surface#711.enter(wl_output#3193) +[2618321.125] {Default Queue} discarded wl_surface#1223.enter(wl_output#3193) +[2618321.128] {Default Queue} discarded wl_surface#1927.enter(wl_output#3193) +[2618321.132] {Default Queue} discarded wl_surface#871.enter(wl_output#3193) +[2618321.137] {Default Queue} discarded wl_surface#1895.enter(wl_output#3193) +[2618321.141] {Default Queue} discarded wl_surface#263.enter(wl_output#3193) +[2618321.144] {Default Queue} discarded wl_surface#551.enter(wl_output#3193) +[2618321.148] {Default Queue} discarded wl_surface#1735.enter(wl_output#3193) +[2618321.152] {Default Queue} discarded wl_surface#1479.enter(wl_output#3193) +[2618321.156] {Default Queue} discarded wl_surface#1772.enter(wl_output#3193) +[2618321.160] {Default Queue} discarded wl_surface#2599.enter(wl_output#3193) +[2618321.164] {Default Queue} discarded wl_surface#2631.enter(wl_output#3193) +[2618321.168] {Default Queue} discarded wl_surface#1959.enter(wl_output#3193) +[2618321.172] {Default Queue} discarded wl_surface#647.enter(wl_output#3193) +[2618321.176] {Default Queue} discarded wl_surface#2055.enter(wl_output#3193) +[2618321.180] {Default Queue} discarded wl_surface#2508.enter(wl_output#3193) +[2618321.184] {Default Queue} discarded wl_surface#71.enter(wl_output#3193) +[2618321.187] {Default Queue} discarded wl_surface#2759.enter(wl_output#3193) +[2618321.191] {Default Queue} discarded wl_surface#2791.enter(wl_output#3193) +[2618321.195] {Default Queue} discarded wl_surface#2887.enter(wl_output#3193) +[2618321.199] {Default Queue} discarded wl_surface#2183.enter(wl_output#3193) +[2618321.203] {Default Queue} discarded wl_surface#2567.enter(wl_output#3193) +[2618321.207] {Default Queue} discarded wl_surface#839.enter(wl_output#3193) +[2618321.211] {Default Queue} discarded wl_surface#1607.enter(wl_output#3193) +[2618321.215] {Default Queue} discarded wl_surface#1095.enter(wl_output#3193) +[2618321.219] {Default Queue} discarded wl_surface#1383.enter(wl_output#3193) +[2618321.222] {Default Queue} discarded wl_surface#487.enter(wl_output#3193) +[2618321.226] {Default Queue} discarded wl_surface#2311.enter(wl_output#3193) +[2618321.230] {Default Queue} discarded wl_surface#519.enter(wl_output#3193) +[2618321.234] {Default Queue} discarded wl_surface#2087.enter(wl_output#3193) +[2618321.238] {Default Queue} discarded wl_surface#2471.enter(wl_output#3193) +[2618321.242] {Default Queue} discarded wl_surface#295.enter(wl_output#3193) +[2618321.246] {Default Queue} discarded wl_surface#167.enter(wl_output#3193) +[2618321.250] {Default Queue} discarded wl_surface#1255.enter(wl_output#3193) +[2618321.254] {Default Queue} discarded wl_surface#2855.enter(wl_output#3193) +[2618321.258] {Default Queue} discarded wl_surface#679.enter(wl_output#3193) +[2618321.262] {Default Queue} discarded wl_surface#2407.enter(wl_output#3193) +[2618321.265] {Default Queue} discarded wl_surface#2119.enter(wl_output#3193) +[2618321.269] {Default Queue} wl_registry#3206.global(1, "wl_compositor", 6) +[2618321.274] {Default Queue} -> wl_registry#3206.bind(1, "wl_compositor", 1, new id [unknown]#3212) +[2618321.279] {Default Queue} wl_registry#3206.global(2, "wl_subcompositor", 1) +[2618321.284] {Default Queue} -> wl_registry#3206.bind(2, "wl_subcompositor", 1, new id [unknown]#3213) +[2618321.288] {Default Queue} wl_registry#3206.global(3, "xdg_wm_base", 6) +[2618321.294] {Default Queue} -> wl_registry#3206.bind(3, "xdg_wm_base", 1, new id [unknown]#3214) +[2618321.298] {Default Queue} wl_registry#3206.global(6, "zwlr_layer_shell_v1", 5) +[2618321.303] {Default Queue} wl_registry#3206.global(7, "ext_session_lock_manager_v1", 1) +[2618321.307] {Default Queue} wl_registry#3206.global(8, "wl_shm", 2) +[2618321.317] {Default Queue} -> wl_registry#3206.bind(8, "wl_shm", 1, new id [unknown]#3215) +[2618321.323] {Default Queue} -> wl_registry#3206.bind(8, "wl_shm", 1, new id [unknown]#3216) +[2618321.327] {Default Queue} -> wl_registry#3206.bind(8, "wl_shm", 1, new id [unknown]#3217) +[2618321.332] {Default Queue} wl_registry#3206.global(9, "zxdg_output_manager_v1", 3) +[2618321.336] {Default Queue} wl_registry#3206.global(10, "wp_fractional_scale_manager_v1", 1) +[2618321.340] {Default Queue} wl_registry#3206.global(11, "zwp_tablet_manager_v2", 1) +[2618321.345] {Default Queue} wl_registry#3206.global(12, "zwp_pointer_gestures_v1", 3) +[2618321.349] {Default Queue} wl_registry#3206.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618321.353] {Default Queue} -> wl_registry#3206.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3218) +[2618321.358] {Default Queue} wl_registry#3206.global(14, "zwp_pointer_constraints_v1", 1) +[2618321.362] {Default Queue} -> wl_registry#3206.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3219) +[2618321.367] {Default Queue} wl_registry#3206.global(15, "ext_idle_notifier_v1", 2) +[2618321.371] {Default Queue} wl_registry#3206.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618321.375] {Default Queue} wl_registry#3206.global(17, "wl_data_device_manager", 3) +[2618321.380] {Default Queue} -> wl_registry#3206.bind(17, "wl_data_device_manager", 2, new id [unknown]#3220) +[2618321.385] {Default Queue} -> wl_data_device_manager#3220.create_data_source(new id wl_data_source#3221) +[2618321.389] {Default Queue} -> wl_data_source#3221.offer("text/plain") +[2618321.393] {Default Queue} -> wl_data_source#3221.offer("text/plain;charset=utf-8") +[2618321.397] {Default Queue} -> wl_data_source#3221.offer("TEXT") +[2618321.401] {Default Queue} -> wl_data_source#3221.offer("STRING") +[2618321.405] {Default Queue} -> wl_data_source#3221.offer("UTF8_STRING") +[2618321.410] {Default Queue} wl_registry#3206.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618321.415] {Default Queue} -> wl_registry#3206.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3222) +[2618321.423] {Default Queue} -> zwp_primary_selection_device_manager_v1#3222.create_source(new id zwp_primary_selection_source_v1#3223) +[2618321.430] {Default Queue} -> zwp_primary_selection_source_v1#3223.offer("text/plain") +[2618321.434] {Default Queue} -> zwp_primary_selection_source_v1#3223.offer("text/plain;charset=utf-8") +[2618321.438] {Default Queue} -> zwp_primary_selection_source_v1#3223.offer("TEXT") +[2618321.442] {Default Queue} -> zwp_primary_selection_source_v1#3223.offer("STRING") +[2618321.446] {Default Queue} -> zwp_primary_selection_source_v1#3223.offer("UTF8_STRING") +[2618321.451] {Default Queue} wl_registry#3206.global(19, "zwlr_data_control_manager_v1", 2) +[2618321.455] {Default Queue} wl_registry#3206.global(20, "ext_data_control_manager_v1", 1) +[2618321.459] {Default Queue} wl_registry#3206.global(21, "wp_presentation", 2) +[2618321.464] {Default Queue} wl_registry#3206.global(22, "wp_security_context_manager_v1", 1) +[2618321.468] {Default Queue} wl_registry#3206.global(23, "zwp_text_input_manager_v3", 1) +[2618321.472] {Default Queue} wl_registry#3206.global(24, "zwp_input_method_manager_v2", 1) +[2618321.477] {Default Queue} wl_registry#3206.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618321.481] {Default Queue} wl_registry#3206.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618321.485] {Default Queue} wl_registry#3206.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618321.490] {Default Queue} wl_registry#3206.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618321.494] {Default Queue} wl_registry#3206.global(29, "ext_workspace_manager_v1", 1) +[2618321.498] {Default Queue} wl_registry#3206.global(30, "zwlr_output_manager_v1", 4) +[2618321.503] {Default Queue} wl_registry#3206.global(31, "zwlr_screencopy_manager_v1", 3) +[2618321.507] {Default Queue} wl_registry#3206.global(32, "wp_viewporter", 1) +[2618321.511] {Default Queue} wl_registry#3206.global(33, "zxdg_exporter_v2", 1) +[2618321.518] {Default Queue} wl_registry#3206.global(34, "zxdg_importer_v2", 1) +[2618321.524] {Default Queue} wl_registry#3206.global(36, "xdg_activation_v1", 1) +[2618321.528] {Default Queue} wl_registry#3206.global(37, "mutter_x11_interop", 1) +[2618321.533] {Default Queue} wl_registry#3206.global(38, "wl_seat", 9) +[2618321.538] {Default Queue} -> wl_registry#3206.bind(38, "wl_seat", 1, new id [unknown]#3224) +[2618321.542] {Default Queue} wl_registry#3206.global(39, "wp_cursor_shape_manager_v1", 2) +[2618321.547] {Default Queue} wl_registry#3206.global(40, "wl_output", 4) +[2618321.551] {Default Queue} -> wl_registry#3206.bind(40, "wl_output", 1, new id [unknown]#3225) +[2618321.556] {Default Queue} wl_callback#3207.done(0) +[2618321.560] {Default Queue} discarded wl_surface#3175.enter(wl_output#18) +[2618321.564] {Default Queue} discarded wl_surface#3175.enter(wl_output#57) +[2618321.568] {Default Queue} discarded wl_surface#3175.enter(wl_output#89) +[2618321.572] {Default Queue} discarded wl_surface#3175.enter(wl_output#121) +[2618321.576] {Default Queue} discarded wl_surface#3175.enter(wl_output#153) +[2618321.580] {Default Queue} discarded wl_surface#3175.enter(wl_output#185) +[2618321.584] {Default Queue} discarded wl_surface#3175.enter(wl_output#217) +[2618321.588] {Default Queue} discarded wl_surface#3175.enter(wl_output#249) +[2618321.591] {Default Queue} discarded wl_surface#3175.enter(wl_output#281) +[2618321.595] {Default Queue} discarded wl_surface#3175.enter(wl_output#313) +[2618321.599] {Default Queue} discarded wl_surface#3175.enter(wl_output#345) +[2618321.603] {Default Queue} discarded wl_surface#3175.enter(wl_output#377) +[2618321.607] {Default Queue} discarded wl_surface#3175.enter(wl_output#409) +[2618321.611] {Default Queue} discarded wl_surface#3175.enter(wl_output#441) +[2618321.615] {Default Queue} discarded wl_surface#3175.enter(wl_output#473) +[2618321.618] {Default Queue} discarded wl_surface#3175.enter(wl_output#505) +[2618321.622] {Default Queue} discarded wl_surface#3175.enter(wl_output#537) +[2618321.627] {Default Queue} discarded wl_surface#3175.enter(wl_output#569) +[2618321.631] {Default Queue} discarded wl_surface#3175.enter(wl_output#601) +[2618321.635] {Default Queue} discarded wl_surface#3175.enter(wl_output#633) +[2618321.638] {Default Queue} discarded wl_surface#3175.enter(wl_output#665) +[2618321.642] {Default Queue} discarded wl_surface#3175.enter(wl_output#697) +[2618321.646] {Default Queue} discarded wl_surface#3175.enter(wl_output#729) +[2618321.650] {Default Queue} discarded wl_surface#3175.enter(wl_output#761) +[2618321.654] {Default Queue} discarded wl_surface#3175.enter(wl_output#793) +[2618321.658] {Default Queue} discarded wl_surface#3175.enter(wl_output#825) +[2618321.662] {Default Queue} discarded wl_surface#3175.enter(wl_output#857) +[2618321.666] {Default Queue} discarded wl_surface#3175.enter(wl_output#889) +[2618321.670] {Default Queue} discarded wl_surface#3175.enter(wl_output#921) +[2618321.674] {Default Queue} discarded wl_surface#3175.enter(wl_output#953) +[2618321.677] {Default Queue} discarded wl_surface#3175.enter(wl_output#985) +[2618321.681] {Default Queue} discarded wl_surface#3175.enter(wl_output#1017) +[2618321.686] {Default Queue} discarded wl_surface#3175.enter(wl_output#1049) +[2618321.690] {Default Queue} discarded wl_surface#3175.enter(wl_output#1081) +[2618321.694] {Default Queue} discarded wl_surface#3175.enter(wl_output#1113) +[2618321.698] {Default Queue} discarded wl_surface#3175.enter(wl_output#1145) +[2618321.702] {Default Queue} discarded wl_surface#3175.enter(wl_output#1177) +[2618321.706] {Default Queue} discarded wl_surface#3175.enter(wl_output#1209) +[2618321.710] {Default Queue} discarded wl_surface#3175.enter(wl_output#1241) +[2618321.714] {Default Queue} discarded wl_surface#3175.enter(wl_output#1273) +[2618321.718] {Default Queue} discarded wl_surface#3175.enter(wl_output#1305) +[2618321.722] {Default Queue} discarded wl_surface#3175.enter(wl_output#1337) +[2618321.726] {Default Queue} discarded wl_surface#3175.enter(wl_output#1369) +[2618321.733] {Default Queue} discarded wl_surface#3175.enter(wl_output#1401) +[2618321.738] {Default Queue} discarded wl_surface#3175.enter(wl_output#1433) +[2618321.742] {Default Queue} discarded wl_surface#3175.enter(wl_output#1465) +[2618321.746] {Default Queue} discarded wl_surface#3175.enter(wl_output#1497) +[2618321.750] {Default Queue} discarded wl_surface#3175.enter(wl_output#1529) +[2618321.754] {Default Queue} discarded wl_surface#3175.enter(wl_output#1561) +[2618321.758] {Default Queue} discarded wl_surface#3175.enter(wl_output#1593) +[2618321.762] {Default Queue} discarded wl_surface#3175.enter(wl_output#1625) +[2618321.765] {Default Queue} discarded wl_surface#3175.enter(wl_output#1657) +[2618321.769] {Default Queue} discarded wl_surface#3175.enter(wl_output#1689) +[2618321.773] {Default Queue} discarded wl_surface#3175.enter(wl_output#1721) +[2618321.778] {Default Queue} discarded wl_surface#3175.enter(wl_output#1753) +[2618321.781] {Default Queue} discarded wl_surface#3175.enter(wl_output#1785) +[2618321.785] {Default Queue} discarded wl_surface#3175.enter(wl_output#1817) +[2618321.789] {Default Queue} discarded wl_surface#3175.enter(wl_output#1849) +[2618321.793] {Default Queue} discarded wl_surface#3175.enter(wl_output#1881) +[2618321.796] {Default Queue} discarded wl_surface#3175.enter(wl_output#1913) +[2618321.800] {Default Queue} discarded wl_surface#3175.enter(wl_output#1945) +[2618321.804] {Default Queue} discarded wl_surface#3175.enter(wl_output#1977) +[2618321.808] {Default Queue} discarded wl_surface#3175.enter(wl_output#2009) +[2618321.812] {Default Queue} discarded wl_surface#3175.enter(wl_output#2041) +[2618321.816] {Default Queue} discarded wl_surface#3175.enter(wl_output#2073) +[2618321.820] {Default Queue} discarded wl_surface#3175.enter(wl_output#2105) +[2618321.824] {Default Queue} discarded wl_surface#3175.enter(wl_output#2137) +[2618321.827] {Default Queue} discarded wl_surface#3175.enter(wl_output#2169) +[2618321.831] {Default Queue} discarded wl_surface#3175.enter(wl_output#2201) +[2618321.835] {Default Queue} discarded wl_surface#3175.enter(wl_output#2233) +[2618321.839] {Default Queue} discarded wl_surface#3175.enter(wl_output#2265) +[2618321.843] {Default Queue} discarded wl_surface#3175.enter(wl_output#2297) +[2618321.847] {Default Queue} discarded wl_surface#3175.enter(wl_output#2329) +[2618321.851] {Default Queue} discarded wl_surface#3175.enter(wl_output#2361) +[2618321.855] {Default Queue} discarded wl_surface#3175.enter(wl_output#2393) +[2618321.859] {Default Queue} discarded wl_surface#3175.enter(wl_output#2425) +[2618321.864] {Default Queue} -> wl_compositor#3148.create_surface(new id wl_surface#3207) +[2618321.868] {Default Queue} -> wl_subcompositor#3213.get_subsurface(new id wl_subsurface#3226, wl_surface#3207, wl_surface#3143) +[2618321.881] {Default Queue} -> wl_subsurface#3226.set_desync() +[2618321.886] {Default Queue} -> wl_subsurface#3226.set_position(0, 0) +[2618321.890] {Default Queue} -> wl_subsurface#3226.place_above(wl_surface#3143) +[2618321.939] {Default Queue} -> wl_shm#3215.create_pool(new id wl_shm_pool#3227, fd 509, 16) +[2618321.946] {Default Queue} -> wl_shm#3215.create_pool(new id wl_shm_pool#3228, fd 510, 16) +[2618321.950] {Default Queue} -> wl_shm_pool#3227.create_buffer(new id wl_buffer#3229, 0, 2, 2, 8, 0) +[2618321.955] {Default Queue} -> wl_shm_pool#3228.create_buffer(new id wl_buffer#3230, 0, 2, 2, 8, 0) +[2618321.963] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3229, 0, 0) +[2618321.968] {Default Queue} -> wl_surface#3207.commit() +[2618321.974] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3229, 0, 0) +[2618321.979] {Default Queue} -> wl_surface#3207.commit() +[2618321.984] {Default Queue} -> wl_compositor#3212.create_region(new id wl_region#3231) +[2618321.990] {Default Queue} -> wl_compositor#3212.create_region(new id wl_region#3232) +[2618321.996] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.002] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.008] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.016] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.023] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618322.027] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) +[2618322.034] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3229, 0, 0) +[2618322.039] {Default Queue} -> wl_surface#3207.commit() +[2618322.086] {Default Queue} -> wl_shm#3217.create_pool(new id wl_shm_pool#3233, fd 513, 640) +[2618322.092] {Default Queue} -> wl_shm#3217.create_pool(new id wl_shm_pool#3234, fd 514, 640) +[2618322.097] {Default Queue} -> wl_shm_pool#3233.create_buffer(new id wl_buffer#3235, 0, 10, 16, 40, 0) +[2618322.102] {Default Queue} -> wl_shm_pool#3234.create_buffer(new id wl_buffer#3236, 0, 10, 16, 40, 0) +[2618322.109] {Default Queue} -> wl_compositor#3212.create_surface(new id wl_surface#3237) +[2618322.113] {Default Queue} -> wl_surface#3237.attach(wl_buffer#3235, 0, 0) +[2618322.117] {Default Queue} -> wl_surface#3237.commit() +[2618322.123] {Default Queue} -> wl_surface#3237.attach(wl_buffer#3235, 0, 0) +[2618322.127] {Default Queue} -> wl_surface#3237.commit() +[2618322.133] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618322.137] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618322.145] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618322.150] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618322.155] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618322.164] {Default Queue} -> wl_region#3071.subtract(0, 0, 2, 2) +[2618322.169] {Default Queue} -> wl_subsurface#3066.set_position(3, 3) +[2618322.174] {Default Queue} -> wl_region#3071.subtract(0, 0, 5, 5) +[2618322.178] {Default Queue} -> wl_region#3071.add(0, 0, 0, 0) +[2618322.182] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) +[2618322.186] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) +[2618322.191] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618322.195] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618322.200] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618322.204] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) +[2618322.209] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) +[2618322.213] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) +[2618322.220] {Default Queue} -> wl_region#3071.subtract(0, 0, 5, 5) +[2618322.225] {Default Queue} -> wl_region#3071.add(0, 0, 0, 0) +[2618322.229] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) +[2618322.233] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) +[2618322.238] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3069, 0, 0) +[2618322.243] {Default Queue} -> wl_surface#3047.commit() +[2618322.250] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618322.254] {Default Queue} -> wl_surface#3175.commit() +[2618322.259] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.263] {Default Queue} -> wl_subsurface#3226.set_position(0, 0) +[2618322.267] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.272] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.276] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.280] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.284] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618322.293] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.297] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.302] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.306] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.311] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.315] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.320] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.324] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.328] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.336] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.342] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.347] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.352] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.356] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.360] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.365] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.371] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.376] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.381] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.385] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.394] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.400] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.404] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.409] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.413] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.418] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.423] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.427] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.432] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.436] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.440] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.444] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.449] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.453] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.457] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.461] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.466] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.470] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.475] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.479] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.489] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.493] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.498] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.502] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.506] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.511] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.515] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.519] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.524] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.528] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.532] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.536] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.541] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.545] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.549] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.554] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.558] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3229, 0, 0) +[2618322.562] {Default Queue} -> wl_surface#3207.commit() +[2618322.569] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618322.573] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618322.578] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618322.584] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618322.588] {Default Queue} -> wl_surface#3175.commit() +[2618322.593] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.600] {Default Queue} -> wl_subsurface#3226.set_position(0, 0) +[2618322.606] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.610] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.615] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.620] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.624] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618322.631] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.636] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.640] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.644] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.649] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.653] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.657] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.662] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.666] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.670] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.675] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.679] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.683] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.687] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.691] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.696] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.702] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.706] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.711] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.715] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.724] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.729] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.733] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.737] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.742] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.746] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.750] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.754] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.759] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.763] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.768] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.771] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.776] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.780] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.785] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.789] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.794] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.798] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.802] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.807] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.819] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.824] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.828] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.832] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.845] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.850] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.854] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.858] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.926] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.934] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.939] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.943] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.952] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618322.956] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618322.966] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.971] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.975] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.979] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618322.984] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618322.989] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618322.993] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618322.997] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.002] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.006] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.010] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.014] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.019] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.025] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.032] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.038] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.044] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3229, 0, 0) +[2618323.050] {Default Queue} -> wl_surface#3207.commit() +[2618323.059] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618323.068] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618323.073] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618323.079] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618323.083] {Default Queue} -> wl_surface#3175.commit() +[2618323.087] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.092] {Default Queue} -> wl_subsurface#3226.set_position(0, 0) +[2618323.096] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.100] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.105] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.109] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.113] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618323.121] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.125] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.129] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.133] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.138] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.143] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.147] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.151] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.155] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.159] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.164] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.168] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.172] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.177] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.181] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.185] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.191] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.195] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.200] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.204] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.217] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.224] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.229] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.232] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.237] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.242] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.246] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.250] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.255] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.259] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.263] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.268] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.272] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.276] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.280] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.285] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.290] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.295] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.299] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.303] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.315] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.320] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.324] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.329] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.334] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.339] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.343] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.347] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.355] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.359] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.363] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.367] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.374] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.378] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.383] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.387] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.392] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.396] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.400] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.404] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.409] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.413] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.417] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.421] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.426] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.430] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.435] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.439] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.444] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.448] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.452] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.456] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.463] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.467] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.474] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.480] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.485] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.489] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.493] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.497] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.502] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.506] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.511] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.515] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.519] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.524] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.528] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.532] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.565] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.571] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.575] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.579] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.585] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618323.589] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618323.601] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.606] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.611] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.615] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.621] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.625] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.629] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.633] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.668] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.674] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.678] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.682] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.688] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618323.692] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618323.700] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.705] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.709] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.714] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.718] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.723] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.727] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.731] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.735] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.740] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.744] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.748] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.753] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618323.757] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618323.762] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618323.766] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618323.771] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3229, 0, 0) +[2618323.775] {Default Queue} -> wl_surface#3207.commit() +[2618323.781] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618323.786] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618323.791] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618323.801] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3238) +[2618323.808] {Default Queue} -> wl_display#1.sync(new id wl_callback#3239) +[2618325.459] {Default Queue} discarded wl_surface#3175.enter(wl_output#2457) +[2618325.470] {Default Queue} discarded wl_surface#3175.enter(wl_output#2489) +[2618325.475] {Default Queue} discarded wl_surface#3175.enter(wl_output#2521) +[2618325.480] {Default Queue} discarded wl_surface#3175.enter(wl_output#2553) +[2618325.483] {Default Queue} discarded wl_surface#3175.enter(wl_output#2585) +[2618325.487] {Default Queue} discarded wl_surface#3175.enter(wl_output#2617) +[2618325.491] {Default Queue} discarded wl_surface#3175.enter(wl_output#2649) +[2618325.495] {Default Queue} discarded wl_surface#3175.enter(wl_output#2681) +[2618325.499] {Default Queue} discarded wl_surface#3175.enter(wl_output#2713) +[2618325.503] {Default Queue} discarded wl_surface#3175.enter(wl_output#2745) +[2618325.507] {Default Queue} discarded wl_surface#3175.enter(wl_output#2777) +[2618325.511] {Default Queue} discarded wl_surface#3175.enter(wl_output#2809) +[2618325.515] {Default Queue} discarded wl_surface#3175.enter(wl_output#2841) +[2618325.519] {Default Queue} discarded wl_surface#3175.enter(wl_output#2873) +[2618325.523] {Default Queue} discarded wl_surface#3175.enter(wl_output#2905) +[2618325.527] {Default Queue} discarded wl_surface#3175.enter(wl_output#2937) +[2618325.531] {Default Queue} discarded wl_surface#3175.enter(wl_output#2969) +[2618325.535] {Default Queue} discarded wl_surface#3175.enter(wl_output#3001) +[2618325.538] {Default Queue} discarded wl_surface#3175.enter(wl_output#3033) +[2618325.542] {Default Queue} discarded wl_surface#3175.enter(wl_output#3065) +[2618325.546] {Default Queue} discarded wl_surface#3175.enter(wl_output#3097) +[2618325.550] {Default Queue} discarded wl_surface#3175.enter(wl_output#3129) +[2618325.554] {Default Queue} discarded wl_surface#3175.enter(wl_output#3161) +[2618325.558] {Default Queue} discarded wl_surface#3175.enter(wl_output#3193) +[2618330.480] {Default Queue} wl_keyboard#3208.keymap(1, fd 509, 68213) +[2618330.492] {Default Queue} wl_keyboard#3208.enter(566, wl_surface#19, array[0]) +[2618330.498] {Default Queue} wl_keyboard#3208.modifiers(566, 0, 0, 16, 0) +[2618330.503] {Default Queue} discarded wl_shm#3215.format(875709016) +[2618330.507] {Default Queue} discarded wl_shm#3215.format(1) +[2618330.512] {Default Queue} discarded wl_shm#3215.format(0) +[2618330.516] {Default Queue} discarded wl_shm#3215.format(875708993) +[2618330.520] {Default Queue} discarded wl_shm#3216.format(875709016) +[2618330.525] {Default Queue} discarded wl_shm#3216.format(1) +[2618330.529] {Default Queue} discarded wl_shm#3216.format(0) +[2618330.533] {Default Queue} discarded wl_shm#3216.format(875708993) +[2618330.536] {Default Queue} discarded wl_shm#3217.format(875709016) +[2618330.540] {Default Queue} discarded wl_shm#3217.format(1) +[2618330.544] {Default Queue} discarded wl_shm#3217.format(0) +[2618330.548] {Default Queue} discarded wl_shm#3217.format(875708993) +[2618330.552] {Default Queue} wl_seat#3224.capabilities(7) +[2618330.557] {Default Queue} -> wl_seat#3224.get_keyboard(new id wl_keyboard#3240) +[2618330.561] {Default Queue} -> wl_seat#3224.get_pointer(new id wl_pointer#3241) +[2618330.566] {Default Queue} -> wl_data_device_manager#3220.get_data_device(new id wl_data_device#3242, wl_seat#3224) +[2618330.571] {Default Queue} -> zwp_primary_selection_device_manager_v1#3222.get_device(new id zwp_primary_selection_device_v1#3243, wl_seat#3224) +[2618330.579] {Default Queue} wl_output#3225.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618330.584] {Default Queue} wl_output#3225.mode(3, 1280, 800, 60000) +[2618330.589] {Default Queue} discarded wl_surface#2727.enter(wl_output#3225) +[2618330.593] {Default Queue} discarded wl_surface#3.enter(wl_output#3225) +[2618330.597] {Default Queue} discarded wl_surface#999.enter(wl_output#3225) +[2618330.601] {Default Queue} discarded wl_surface#3079.enter(wl_output#3225) +[2618330.605] {Default Queue} discarded wl_surface#1191.enter(wl_output#3225) +[2618330.613] {Default Queue} discarded wl_surface#1159.enter(wl_output#3225) +[2618330.620] {Default Queue} discarded wl_surface#1703.enter(wl_output#3225) +[2618330.624] {Default Queue} discarded wl_surface#2215.enter(wl_output#3225) +[2618330.628] {Default Queue} discarded wl_surface#423.enter(wl_output#3225) +[2618330.632] {Default Queue} discarded wl_surface#1447.enter(wl_output#3225) +[2618330.636] {Default Queue} discarded wl_surface#3047.enter(wl_output#3225) +[2618330.640] {Default Queue} discarded wl_surface#2023.enter(wl_output#3225) +[2618330.643] {Default Queue} discarded wl_surface#1639.enter(wl_output#3225) +[2618330.647] {Default Queue} discarded wl_surface#1319.enter(wl_output#3225) +[2618330.651] {Default Queue} discarded wl_surface#1127.enter(wl_output#3225) +[2618330.655] {Default Queue} discarded wl_surface#2151.enter(wl_output#3225) +[2618330.659] {Default Queue} discarded wl_surface#2375.enter(wl_output#3225) +[2618330.663] {Default Queue} discarded wl_surface#2695.enter(wl_output#3225) +[2618330.667] {Default Queue} discarded wl_surface#2919.enter(wl_output#3225) +[2618330.671] {Default Queue} discarded wl_surface#1063.enter(wl_output#3225) +[2618330.675] {Default Queue} discarded wl_surface#455.enter(wl_output#3225) +[2618330.679] {Default Queue} discarded wl_surface#1575.enter(wl_output#3225) +[2618330.683] {Default Queue} discarded wl_surface#1799.enter(wl_output#3225) +[2618330.687] {Default Queue} discarded wl_surface#1415.enter(wl_output#3225) +[2618330.690] {Default Queue} discarded wl_surface#2439.enter(wl_output#3225) +[2618330.694] {Default Queue} discarded wl_surface#2279.enter(wl_output#3225) +[2618330.698] {Default Queue} discarded wl_surface#1831.enter(wl_output#3225) +[2618330.702] {Default Queue} discarded wl_surface#903.enter(wl_output#3225) +[2618330.706] {Default Queue} discarded wl_surface#2663.enter(wl_output#3225) +[2618330.710] {Default Queue} discarded wl_surface#775.enter(wl_output#3225) +[2618330.714] {Default Queue} discarded wl_surface#1991.enter(wl_output#3225) +[2618330.717] {Default Queue} discarded wl_surface#1543.enter(wl_output#3225) +[2618330.721] {Default Queue} discarded wl_surface#135.enter(wl_output#3225) +[2618330.725] {Default Queue} discarded wl_surface#1287.enter(wl_output#3225) +[2618330.729] {Default Queue} discarded wl_surface#1031.enter(wl_output#3225) +[2618330.733] {Default Queue} discarded wl_surface#615.enter(wl_output#3225) +[2618330.737] {Default Queue} discarded wl_surface#3111.enter(wl_output#3225) +[2618330.741] {Default Queue} discarded wl_surface#231.enter(wl_output#3225) +[2618330.744] {Default Queue} discarded wl_surface#2343.enter(wl_output#3225) +[2618330.748] {Default Queue} discarded wl_surface#1863.enter(wl_output#3225) +[2618330.752] {Default Queue} discarded wl_surface#359.enter(wl_output#3225) +[2618330.756] {Default Queue} discarded wl_surface#2983.enter(wl_output#3225) +[2618330.760] {Default Queue} discarded wl_surface#583.enter(wl_output#3225) +[2618330.764] {Default Queue} discarded wl_surface#743.enter(wl_output#3225) +[2618330.768] {Default Queue} discarded wl_surface#3143.enter(wl_output#3225) +[2618330.772] {Default Queue} discarded wl_surface#2535.enter(wl_output#3225) +[2618330.776] {Default Queue} discarded wl_surface#967.enter(wl_output#3225) +[2618330.780] {Default Queue} discarded wl_surface#103.enter(wl_output#3225) +[2618330.784] {Default Queue} discarded wl_surface#327.enter(wl_output#3225) +[2618330.788] {Default Queue} discarded wl_surface#43.enter(wl_output#3225) +[2618330.791] {Default Queue} discarded wl_surface#2247.enter(wl_output#3225) +[2618330.795] {Default Queue} discarded wl_surface#807.enter(wl_output#3225) +[2618330.799] {Default Queue} discarded wl_surface#19.enter(wl_output#3225) +[2618330.803] {Default Queue} discarded wl_surface#2951.enter(wl_output#3225) +[2618330.807] {Default Queue} discarded wl_surface#1511.enter(wl_output#3225) +[2618330.811] {Default Queue} discarded wl_surface#199.enter(wl_output#3225) +[2618330.814] {Default Queue} discarded wl_surface#391.enter(wl_output#3225) +[2618330.821] {Default Queue} discarded wl_surface#935.enter(wl_output#3225) +[2618330.827] {Default Queue} discarded wl_surface#2823.enter(wl_output#3225) +[2618330.831] {Default Queue} discarded wl_surface#3015.enter(wl_output#3225) +[2618330.835] {Default Queue} discarded wl_surface#1671.enter(wl_output#3225) +[2618330.838] {Default Queue} discarded wl_surface#1351.enter(wl_output#3225) +[2618330.842] {Default Queue} discarded wl_surface#711.enter(wl_output#3225) +[2618330.846] {Default Queue} discarded wl_surface#3175.enter(wl_output#3225) +[2618330.850] {Default Queue} discarded wl_surface#1223.enter(wl_output#3225) +[2618330.854] {Default Queue} discarded wl_surface#1927.enter(wl_output#3225) +[2618330.858] {Default Queue} discarded wl_surface#871.enter(wl_output#3225) +[2618330.870] {Default Queue} discarded wl_surface#1895.enter(wl_output#3225) +[2618330.874] {Default Queue} discarded wl_surface#263.enter(wl_output#3225) +[2618330.879] {Default Queue} discarded wl_surface#551.enter(wl_output#3225) +[2618330.883] {Default Queue} discarded wl_surface#1735.enter(wl_output#3225) +[2618330.887] {Default Queue} discarded wl_surface#1479.enter(wl_output#3225) +[2618330.891] {Default Queue} discarded wl_surface#1772.enter(wl_output#3225) +[2618330.895] {Default Queue} discarded wl_surface#2599.enter(wl_output#3225) +[2618330.899] {Default Queue} discarded wl_surface#2631.enter(wl_output#3225) +[2618330.903] {Default Queue} discarded wl_surface#1959.enter(wl_output#3225) +[2618330.907] {Default Queue} discarded wl_surface#647.enter(wl_output#3225) +[2618330.911] {Default Queue} discarded wl_surface#2055.enter(wl_output#3225) +[2618330.915] {Default Queue} discarded wl_surface#2508.enter(wl_output#3225) +[2618330.919] {Default Queue} discarded wl_surface#71.enter(wl_output#3225) +[2618330.923] {Default Queue} discarded wl_surface#2759.enter(wl_output#3225) +[2618330.927] {Default Queue} discarded wl_surface#2791.enter(wl_output#3225) +[2618330.930] {Default Queue} discarded wl_surface#2887.enter(wl_output#3225) +[2618330.934] {Default Queue} discarded wl_surface#2183.enter(wl_output#3225) +[2618330.938] {Default Queue} discarded wl_surface#2567.enter(wl_output#3225) +[2618330.942] {Default Queue} discarded wl_surface#839.enter(wl_output#3225) +[2618330.946] {Default Queue} discarded wl_surface#1607.enter(wl_output#3225) +[2618330.950] {Default Queue} discarded wl_surface#1095.enter(wl_output#3225) +[2618330.954] {Default Queue} discarded wl_surface#1383.enter(wl_output#3225) +[2618330.958] {Default Queue} discarded wl_surface#487.enter(wl_output#3225) +[2618330.962] {Default Queue} discarded wl_surface#2311.enter(wl_output#3225) +[2618330.966] {Default Queue} discarded wl_surface#519.enter(wl_output#3225) +[2618330.969] {Default Queue} discarded wl_surface#2087.enter(wl_output#3225) +[2618330.973] {Default Queue} discarded wl_surface#2471.enter(wl_output#3225) +[2618330.977] {Default Queue} discarded wl_surface#295.enter(wl_output#3225) +[2618330.981] {Default Queue} discarded wl_surface#167.enter(wl_output#3225) +[2618330.985] {Default Queue} discarded wl_surface#1255.enter(wl_output#3225) +[2618330.989] {Default Queue} discarded wl_surface#2855.enter(wl_output#3225) +[2618330.993] {Default Queue} discarded wl_surface#679.enter(wl_output#3225) +[2618330.997] {Default Queue} discarded wl_surface#2407.enter(wl_output#3225) +[2618331.001] {Default Queue} discarded wl_surface#2119.enter(wl_output#3225) +[2618331.005] {Default Queue} discarded wl_surface#3207.enter(wl_output#18) +[2618331.008] {Default Queue} discarded wl_surface#3207.enter(wl_output#57) +[2618331.012] {Default Queue} discarded wl_surface#3207.enter(wl_output#89) +[2618331.016] {Default Queue} discarded wl_surface#3207.enter(wl_output#121) +[2618331.020] {Default Queue} discarded wl_surface#3207.enter(wl_output#153) +[2618331.024] {Default Queue} discarded wl_surface#3207.enter(wl_output#185) +[2618331.028] {Default Queue} discarded wl_surface#3207.enter(wl_output#217) +[2618331.032] {Default Queue} discarded wl_surface#3207.enter(wl_output#249) +[2618331.036] {Default Queue} discarded wl_surface#3207.enter(wl_output#281) +[2618331.043] {Default Queue} discarded wl_surface#3207.enter(wl_output#313) +[2618331.049] {Default Queue} discarded wl_surface#3207.enter(wl_output#345) +[2618331.053] {Default Queue} discarded wl_surface#3207.enter(wl_output#377) +[2618331.057] {Default Queue} discarded wl_surface#3207.enter(wl_output#409) +[2618331.061] {Default Queue} discarded wl_surface#3207.enter(wl_output#441) +[2618331.065] {Default Queue} discarded wl_surface#3207.enter(wl_output#473) +[2618331.069] {Default Queue} discarded wl_surface#3207.enter(wl_output#505) +[2618331.073] {Default Queue} discarded wl_surface#3207.enter(wl_output#537) +[2618331.077] {Default Queue} discarded wl_surface#3207.enter(wl_output#569) +[2618331.081] {Default Queue} discarded wl_surface#3207.enter(wl_output#601) +[2618331.084] {Default Queue} discarded wl_surface#3207.enter(wl_output#633) +[2618331.088] {Default Queue} discarded wl_surface#3207.enter(wl_output#665) +[2618331.092] {Default Queue} discarded wl_surface#3207.enter(wl_output#697) +[2618331.096] {Default Queue} discarded wl_surface#3207.enter(wl_output#729) +[2618331.100] {Default Queue} discarded wl_surface#3207.enter(wl_output#761) +[2618331.104] {Default Queue} discarded wl_surface#3207.enter(wl_output#793) +[2618331.108] {Default Queue} discarded wl_surface#3207.enter(wl_output#825) +[2618331.112] {Default Queue} discarded wl_surface#3207.enter(wl_output#857) +[2618331.115] {Default Queue} discarded wl_surface#3207.enter(wl_output#889) +[2618331.119] {Default Queue} discarded wl_surface#3207.enter(wl_output#921) +[2618331.123] {Default Queue} discarded wl_surface#3207.enter(wl_output#953) +[2618331.127] {Default Queue} discarded wl_surface#3207.enter(wl_output#985) +[2618331.131] {Default Queue} discarded wl_surface#3207.enter(wl_output#1017) +[2618331.135] {Default Queue} discarded wl_surface#3207.enter(wl_output#1049) +[2618331.139] {Default Queue} discarded wl_surface#3207.enter(wl_output#1081) +[2618331.143] {Default Queue} discarded wl_surface#3207.enter(wl_output#1113) +[2618331.147] {Default Queue} discarded wl_surface#3207.enter(wl_output#1145) +[2618331.150] {Default Queue} discarded wl_surface#3207.enter(wl_output#1177) +[2618331.154] {Default Queue} discarded wl_surface#3207.enter(wl_output#1209) +[2618331.158] {Default Queue} discarded wl_surface#3207.enter(wl_output#1241) +[2618331.162] {Default Queue} discarded wl_surface#3207.enter(wl_output#1273) +[2618331.166] {Default Queue} discarded wl_surface#3207.enter(wl_output#1305) +[2618331.170] {Default Queue} discarded wl_surface#3207.enter(wl_output#1337) +[2618331.174] {Default Queue} discarded wl_surface#3207.enter(wl_output#1369) +[2618331.178] {Default Queue} discarded wl_surface#3207.enter(wl_output#1401) +[2618331.182] {Default Queue} discarded wl_surface#3207.enter(wl_output#1433) +[2618331.186] {Default Queue} discarded wl_surface#3207.enter(wl_output#1465) +[2618331.190] {Default Queue} discarded wl_surface#3207.enter(wl_output#1497) +[2618331.194] {Default Queue} discarded wl_surface#3207.enter(wl_output#1529) +[2618331.198] {Default Queue} discarded wl_surface#3207.enter(wl_output#1561) +[2618331.201] {Default Queue} discarded wl_surface#3207.enter(wl_output#1593) +[2618331.205] {Default Queue} discarded wl_surface#3207.enter(wl_output#1625) +[2618331.209] {Default Queue} discarded wl_surface#3207.enter(wl_output#1657) +[2618331.213] {Default Queue} discarded wl_surface#3207.enter(wl_output#1689) +[2618331.217] {Default Queue} discarded wl_surface#3207.enter(wl_output#1721) +[2618331.221] {Default Queue} discarded wl_surface#3207.enter(wl_output#1753) +[2618331.224] {Default Queue} discarded wl_surface#3207.enter(wl_output#1785) +[2618331.228] {Default Queue} discarded wl_surface#3207.enter(wl_output#1817) +[2618331.232] {Default Queue} discarded wl_surface#3207.enter(wl_output#1849) +[2618331.236] {Default Queue} discarded wl_surface#3207.enter(wl_output#1881) +[2618331.240] {Default Queue} discarded wl_surface#3207.enter(wl_output#1913) +[2618331.244] {Default Queue} discarded wl_surface#3207.enter(wl_output#1945) +[2618331.248] {Default Queue} discarded wl_surface#3207.enter(wl_output#1977) +[2618331.254] {Default Queue} discarded wl_surface#3207.enter(wl_output#2009) +[2618331.260] {Default Queue} discarded wl_surface#3207.enter(wl_output#2041) +[2618331.264] {Default Queue} discarded wl_surface#3207.enter(wl_output#2073) +[2618331.268] {Default Queue} discarded wl_surface#3207.enter(wl_output#2105) +[2618331.272] {Default Queue} discarded wl_surface#3207.enter(wl_output#2137) +[2618331.276] {Default Queue} discarded wl_surface#3207.enter(wl_output#2169) +[2618331.279] {Default Queue} discarded wl_surface#3207.enter(wl_output#2201) +[2618331.283] {Default Queue} discarded wl_surface#3207.enter(wl_output#2233) +[2618331.287] {Default Queue} discarded wl_surface#3207.enter(wl_output#2265) +[2618331.291] {Default Queue} discarded wl_surface#3207.enter(wl_output#2297) +[2618331.295] {Default Queue} discarded wl_surface#3207.enter(wl_output#2329) +[2618331.299] {Default Queue} discarded wl_surface#3207.enter(wl_output#2361) +[2618331.303] {Default Queue} discarded wl_surface#3207.enter(wl_output#2393) +[2618331.307] {Default Queue} discarded wl_surface#3207.enter(wl_output#2425) +[2618331.311] {Default Queue} discarded wl_surface#3207.enter(wl_output#2457) +[2618331.315] {Default Queue} discarded wl_surface#3207.enter(wl_output#2489) +[2618331.319] {Default Queue} discarded wl_surface#3207.enter(wl_output#2521) +[2618331.322] {Default Queue} discarded wl_surface#3207.enter(wl_output#2553) +[2618331.326] {Default Queue} discarded wl_surface#3207.enter(wl_output#2585) +[2618331.330] {Default Queue} discarded wl_surface#3207.enter(wl_output#2617) +[2618331.334] {Default Queue} discarded wl_surface#3207.enter(wl_output#2649) +[2618331.338] {Default Queue} discarded wl_surface#3207.enter(wl_output#2681) +[2618331.342] {Default Queue} discarded wl_surface#3207.enter(wl_output#2713) +[2618331.346] {Default Queue} discarded wl_surface#3207.enter(wl_output#2745) +[2618331.350] {Default Queue} discarded wl_surface#3207.enter(wl_output#2777) +[2618331.354] {Default Queue} discarded wl_surface#3207.enter(wl_output#2809) +[2618331.358] {Default Queue} discarded wl_surface#3207.enter(wl_output#2841) +[2618331.362] {Default Queue} discarded wl_surface#3207.enter(wl_output#2873) +[2618331.366] {Default Queue} discarded wl_surface#3207.enter(wl_output#2905) +[2618331.370] {Default Queue} discarded wl_surface#3207.enter(wl_output#2937) +[2618331.373] {Default Queue} discarded wl_surface#3207.enter(wl_output#2969) +[2618331.377] {Default Queue} discarded wl_surface#3207.enter(wl_output#3001) +[2618331.381] {Default Queue} discarded wl_surface#3207.enter(wl_output#3033) +[2618331.385] {Default Queue} discarded wl_surface#3207.enter(wl_output#3065) +[2618331.389] {Default Queue} discarded wl_surface#3207.enter(wl_output#3097) +[2618331.393] {Default Queue} discarded wl_surface#3207.enter(wl_output#3129) +[2618331.397] {Default Queue} discarded wl_surface#3207.enter(wl_output#3161) +[2618331.401] {Default Queue} discarded wl_surface#3207.enter(wl_output#3193) +[2618331.405] {Default Queue} discarded wl_surface#3207.enter(wl_output#3225) +[2618335.483] {Display Queue} wl_display#1.delete_id(3239) +[2618335.496] {Default Queue} wl_registry#3238.global(1, "wl_compositor", 6) +[2618335.502] {Default Queue} -> wl_registry#3238.bind(1, "wl_compositor", 1, new id [unknown]#3244) +[2618335.508] {Default Queue} wl_registry#3238.global(2, "wl_subcompositor", 1) +[2618335.512] {Default Queue} -> wl_registry#3238.bind(2, "wl_subcompositor", 1, new id [unknown]#3245) +[2618335.517] {Default Queue} wl_registry#3238.global(3, "xdg_wm_base", 6) +[2618335.522] {Default Queue} -> wl_registry#3238.bind(3, "xdg_wm_base", 1, new id [unknown]#3246) +[2618335.527] {Default Queue} wl_registry#3238.global(6, "zwlr_layer_shell_v1", 5) +[2618335.531] {Default Queue} wl_registry#3238.global(7, "ext_session_lock_manager_v1", 1) +[2618335.536] {Default Queue} wl_registry#3238.global(8, "wl_shm", 2) +[2618335.541] {Default Queue} -> wl_registry#3238.bind(8, "wl_shm", 1, new id [unknown]#3247) +[2618335.545] {Default Queue} -> wl_registry#3238.bind(8, "wl_shm", 1, new id [unknown]#3248) +[2618335.554] {Default Queue} -> wl_registry#3238.bind(8, "wl_shm", 1, new id [unknown]#3249) +[2618335.561] {Default Queue} wl_registry#3238.global(9, "zxdg_output_manager_v1", 3) +[2618335.566] {Default Queue} wl_registry#3238.global(10, "wp_fractional_scale_manager_v1", 1) +[2618335.571] {Default Queue} wl_registry#3238.global(11, "zwp_tablet_manager_v2", 1) +[2618335.575] {Default Queue} wl_registry#3238.global(12, "zwp_pointer_gestures_v1", 3) +[2618335.580] {Default Queue} wl_registry#3238.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618335.584] {Default Queue} -> wl_registry#3238.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3250) +[2618335.589] {Default Queue} wl_registry#3238.global(14, "zwp_pointer_constraints_v1", 1) +[2618335.593] {Default Queue} -> wl_registry#3238.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3251) +[2618335.598] {Default Queue} wl_registry#3238.global(15, "ext_idle_notifier_v1", 2) +[2618335.602] {Default Queue} wl_registry#3238.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618335.606] {Default Queue} wl_registry#3238.global(17, "wl_data_device_manager", 3) +[2618335.611] {Default Queue} -> wl_registry#3238.bind(17, "wl_data_device_manager", 2, new id [unknown]#3252) +[2618335.616] {Default Queue} -> wl_data_device_manager#3252.create_data_source(new id wl_data_source#3253) +[2618335.620] {Default Queue} -> wl_data_source#3253.offer("text/plain") +[2618335.624] {Default Queue} -> wl_data_source#3253.offer("text/plain;charset=utf-8") +[2618335.628] {Default Queue} -> wl_data_source#3253.offer("TEXT") +[2618335.633] {Default Queue} -> wl_data_source#3253.offer("STRING") +[2618335.637] {Default Queue} -> wl_data_source#3253.offer("UTF8_STRING") +[2618335.641] {Default Queue} wl_registry#3238.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618335.646] {Default Queue} -> wl_registry#3238.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3254) +[2618335.653] {Default Queue} -> zwp_primary_selection_device_manager_v1#3254.create_source(new id zwp_primary_selection_source_v1#3255) +[2618335.661] {Default Queue} -> zwp_primary_selection_source_v1#3255.offer("text/plain") +[2618335.665] {Default Queue} -> zwp_primary_selection_source_v1#3255.offer("text/plain;charset=utf-8") +[2618335.669] {Default Queue} -> zwp_primary_selection_source_v1#3255.offer("TEXT") +[2618335.673] {Default Queue} -> zwp_primary_selection_source_v1#3255.offer("STRING") +[2618335.677] {Default Queue} -> zwp_primary_selection_source_v1#3255.offer("UTF8_STRING") +[2618335.682] {Default Queue} wl_registry#3238.global(19, "zwlr_data_control_manager_v1", 2) +[2618335.686] {Default Queue} wl_registry#3238.global(20, "ext_data_control_manager_v1", 1) +[2618335.690] {Default Queue} wl_registry#3238.global(21, "wp_presentation", 2) +[2618335.695] {Default Queue} wl_registry#3238.global(22, "wp_security_context_manager_v1", 1) +[2618335.699] {Default Queue} wl_registry#3238.global(23, "zwp_text_input_manager_v3", 1) +[2618335.704] {Default Queue} wl_registry#3238.global(24, "zwp_input_method_manager_v2", 1) +[2618335.708] {Default Queue} wl_registry#3238.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618335.712] {Default Queue} wl_registry#3238.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618335.717] {Default Queue} wl_registry#3238.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618335.721] {Default Queue} wl_registry#3238.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618335.725] {Default Queue} wl_registry#3238.global(29, "ext_workspace_manager_v1", 1) +[2618335.730] {Default Queue} wl_registry#3238.global(30, "zwlr_output_manager_v1", 4) +[2618335.734] {Default Queue} wl_registry#3238.global(31, "zwlr_screencopy_manager_v1", 3) +[2618335.739] {Default Queue} wl_registry#3238.global(32, "wp_viewporter", 1) +[2618335.743] {Default Queue} wl_registry#3238.global(33, "zxdg_exporter_v2", 1) +[2618335.747] {Default Queue} wl_registry#3238.global(34, "zxdg_importer_v2", 1) +[2618335.751] {Default Queue} wl_registry#3238.global(36, "xdg_activation_v1", 1) +[2618335.759] {Default Queue} wl_registry#3238.global(37, "mutter_x11_interop", 1) +[2618335.765] {Default Queue} wl_registry#3238.global(38, "wl_seat", 9) +[2618335.770] {Default Queue} -> wl_registry#3238.bind(38, "wl_seat", 1, new id [unknown]#3256) +[2618335.775] {Default Queue} wl_registry#3238.global(39, "wp_cursor_shape_manager_v1", 2) +[2618335.779] {Default Queue} wl_registry#3238.global(40, "wl_output", 4) +[2618335.783] {Default Queue} -> wl_registry#3238.bind(40, "wl_output", 1, new id [unknown]#3257) +[2618335.788] {Default Queue} wl_callback#3239.done(0) +[2618335.792] {Default Queue} -> wl_compositor#2988.create_surface(new id wl_surface#3239) +[2618335.797] {Default Queue} -> wl_subcompositor#3245.get_subsurface(new id wl_subsurface#3258, wl_surface#3239, wl_surface#2983) +[2618335.805] {Default Queue} -> wl_subsurface#3258.set_desync() +[2618335.810] {Default Queue} -> wl_subsurface#3258.set_position(0, 0) +[2618335.814] {Default Queue} -> wl_subsurface#3258.place_above(wl_surface#2983) +[2618335.859] {Default Queue} -> wl_shm#3247.create_pool(new id wl_shm_pool#3259, fd 514, 16) +[2618335.867] {Default Queue} -> wl_shm#3247.create_pool(new id wl_shm_pool#3260, fd 515, 16) +[2618335.940] {Default Queue} -> wl_shm_pool#3259.create_buffer(new id wl_buffer#3261, 0, 2, 2, 8, 0) +[2618335.961] {Default Queue} -> wl_shm_pool#3260.create_buffer(new id wl_buffer#3262, 0, 2, 2, 8, 0) +[2618335.977] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) +[2618335.984] {Default Queue} -> wl_surface#3239.commit() +[2618335.992] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) +[2618335.997] {Default Queue} -> wl_surface#3239.commit() +[2618336.002] {Default Queue} -> wl_compositor#3244.create_region(new id wl_region#3263) +[2618336.006] {Default Queue} -> wl_compositor#3244.create_region(new id wl_region#3264) +[2618336.011] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) +[2618336.015] {Default Queue} -> wl_region#3263.add(0, 0, 0, 0) +[2618336.020] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618336.024] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618336.029] {Default Queue} -> wl_surface#3239.damage(0, 0, 2, 2) +[2618336.033] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) +[2618336.046] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) +[2618336.051] {Default Queue} -> wl_surface#3239.commit() +[2618336.113] {Default Queue} -> wl_shm#3249.create_pool(new id wl_shm_pool#3265, fd 518, 640) +[2618336.120] {Default Queue} -> wl_shm#3249.create_pool(new id wl_shm_pool#3266, fd 519, 640) +[2618336.124] {Default Queue} -> wl_shm_pool#3265.create_buffer(new id wl_buffer#3267, 0, 10, 16, 40, 0) +[2618336.129] {Default Queue} -> wl_shm_pool#3266.create_buffer(new id wl_buffer#3268, 0, 10, 16, 40, 0) +[2618336.137] {Default Queue} -> wl_compositor#3244.create_surface(new id wl_surface#3269) +[2618336.141] {Default Queue} -> wl_surface#3269.attach(wl_buffer#3267, 0, 0) +[2618336.146] {Default Queue} -> wl_surface#3269.commit() +[2618336.151] {Default Queue} -> wl_surface#3269.attach(wl_buffer#3267, 0, 0) +[2618336.155] {Default Queue} -> wl_surface#3269.commit() +[2618336.161] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) +[2618336.166] {Default Queue} -> wl_surface#3239.damage(0, 0, 2, 2) +[2618336.170] {Default Queue} -> wl_surface#3239.damage(0, 0, 2, 2) +[2618336.182] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3270) +[2618336.188] {Default Queue} -> wl_display#1.sync(new id wl_callback#3271) +[2618336.212] {Default Queue} wl_keyboard#3240.keymap(1, fd 514, 68213) +[2618336.219] {Default Queue} wl_keyboard#3240.enter(566, wl_surface#19, array[0]) +[2618336.225] {Default Queue} wl_keyboard#3240.modifiers(566, 0, 0, 16, 0) +[2618336.462] {Display Queue} wl_display#1.delete_id(3271) +[2618336.479] {Default Queue} discarded wl_shm#3247.format(875709016) +[2618336.486] {Default Queue} discarded wl_shm#3247.format(1) +[2618336.492] {Default Queue} discarded wl_shm#3247.format(0) +[2618336.498] {Default Queue} discarded wl_shm#3247.format(875708993) +[2618336.519] {Default Queue} discarded wl_shm#3248.format(875709016) +[2618336.529] {Default Queue} discarded wl_shm#3248.format(1) +[2618336.534] {Default Queue} discarded wl_shm#3248.format(0) +[2618336.540] {Default Queue} discarded wl_shm#3248.format(875708993) +[2618336.546] {Default Queue} discarded wl_shm#3249.format(875709016) +[2618336.552] {Default Queue} discarded wl_shm#3249.format(1) +[2618336.557] {Default Queue} discarded wl_shm#3249.format(0) +[2618336.563] {Default Queue} discarded wl_shm#3249.format(875708993) +[2618336.569] {Default Queue} wl_seat#3256.capabilities(7) +[2618336.578] {Default Queue} -> wl_seat#3256.get_keyboard(new id wl_keyboard#3272) +[2618336.585] {Default Queue} -> wl_seat#3256.get_pointer(new id wl_pointer#3273) +[2618336.591] {Default Queue} -> wl_data_device_manager#3252.get_data_device(new id wl_data_device#3274, wl_seat#3256) +[2618336.598] {Default Queue} -> zwp_primary_selection_device_manager_v1#3254.get_device(new id zwp_primary_selection_device_v1#3275, wl_seat#3256) +[2618336.609] {Default Queue} wl_output#3257.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618336.616] {Default Queue} wl_output#3257.mode(3, 1280, 800, 60000) +[2618336.623] {Default Queue} discarded wl_surface#2727.enter(wl_output#3257) +[2618336.628] {Default Queue} discarded wl_surface#3.enter(wl_output#3257) +[2618336.633] {Default Queue} discarded wl_surface#999.enter(wl_output#3257) +[2618336.639] {Default Queue} discarded wl_surface#3079.enter(wl_output#3257) +[2618336.644] {Default Queue} discarded wl_surface#1191.enter(wl_output#3257) +[2618336.649] {Default Queue} discarded wl_surface#1159.enter(wl_output#3257) +[2618336.655] {Default Queue} discarded wl_surface#1703.enter(wl_output#3257) +[2618336.660] {Default Queue} discarded wl_surface#2215.enter(wl_output#3257) +[2618336.665] {Default Queue} discarded wl_surface#423.enter(wl_output#3257) +[2618336.670] {Default Queue} discarded wl_surface#1447.enter(wl_output#3257) +[2618336.676] {Default Queue} discarded wl_surface#3047.enter(wl_output#3257) +[2618336.682] {Default Queue} discarded wl_surface#2023.enter(wl_output#3257) +[2618336.688] {Default Queue} discarded wl_surface#1639.enter(wl_output#3257) +[2618336.694] {Default Queue} discarded wl_surface#1319.enter(wl_output#3257) +[2618336.700] {Default Queue} discarded wl_surface#1127.enter(wl_output#3257) +[2618336.705] {Default Queue} discarded wl_surface#2151.enter(wl_output#3257) +[2618336.711] {Default Queue} discarded wl_surface#2375.enter(wl_output#3257) +[2618336.717] {Default Queue} discarded wl_surface#2695.enter(wl_output#3257) +[2618336.723] {Default Queue} discarded wl_surface#2919.enter(wl_output#3257) +[2618336.729] {Default Queue} discarded wl_surface#1063.enter(wl_output#3257) +[2618336.735] {Default Queue} discarded wl_surface#455.enter(wl_output#3257) +[2618336.741] {Default Queue} discarded wl_surface#1575.enter(wl_output#3257) +[2618336.747] {Default Queue} discarded wl_surface#1799.enter(wl_output#3257) +[2618336.752] {Default Queue} discarded wl_surface#1415.enter(wl_output#3257) +[2618336.758] {Default Queue} discarded wl_surface#2439.enter(wl_output#3257) +[2618336.764] {Default Queue} discarded wl_surface#2279.enter(wl_output#3257) +[2618336.770] {Default Queue} discarded wl_surface#1831.enter(wl_output#3257) +[2618336.776] {Default Queue} discarded wl_surface#903.enter(wl_output#3257) +[2618336.782] {Default Queue} discarded wl_surface#2663.enter(wl_output#3257) +[2618336.788] {Default Queue} discarded wl_surface#775.enter(wl_output#3257) +[2618336.794] {Default Queue} discarded wl_surface#1991.enter(wl_output#3257) +[2618336.800] {Default Queue} discarded wl_surface#1543.enter(wl_output#3257) +[2618336.806] {Default Queue} discarded wl_surface#135.enter(wl_output#3257) +[2618336.811] {Default Queue} discarded wl_surface#1287.enter(wl_output#3257) +[2618336.817] {Default Queue} discarded wl_surface#1031.enter(wl_output#3257) +[2618336.823] {Default Queue} discarded wl_surface#615.enter(wl_output#3257) +[2618336.829] {Default Queue} discarded wl_surface#3111.enter(wl_output#3257) +[2618336.843] {Default Queue} discarded wl_surface#231.enter(wl_output#3257) +[2618336.852] {Default Queue} discarded wl_surface#2343.enter(wl_output#3257) +[2618336.858] {Default Queue} discarded wl_surface#1863.enter(wl_output#3257) +[2618336.869] {Default Queue} discarded wl_surface#359.enter(wl_output#3257) +[2618336.875] {Default Queue} discarded wl_surface#2983.enter(wl_output#3257) +[2618336.880] {Default Queue} discarded wl_surface#583.enter(wl_output#3257) +[2618336.886] {Default Queue} discarded wl_surface#743.enter(wl_output#3257) +[2618336.892] {Default Queue} discarded wl_surface#3143.enter(wl_output#3257) +[2618336.897] {Default Queue} discarded wl_surface#2535.enter(wl_output#3257) +[2618336.903] {Default Queue} discarded wl_surface#967.enter(wl_output#3257) +[2618336.908] {Default Queue} discarded wl_surface#103.enter(wl_output#3257) +[2618336.913] {Default Queue} discarded wl_surface#327.enter(wl_output#3257) +[2618336.919] {Default Queue} discarded wl_surface#43.enter(wl_output#3257) +[2618336.924] {Default Queue} discarded wl_surface#2247.enter(wl_output#3257) +[2618336.928] {Default Queue} discarded wl_surface#807.enter(wl_output#3257) +[2618336.932] {Default Queue} discarded wl_surface#19.enter(wl_output#3257) +[2618336.936] {Default Queue} discarded wl_surface#2951.enter(wl_output#3257) +[2618336.940] {Default Queue} discarded wl_surface#1511.enter(wl_output#3257) +[2618336.945] {Default Queue} discarded wl_surface#199.enter(wl_output#3257) +[2618336.949] {Default Queue} discarded wl_surface#391.enter(wl_output#3257) +[2618336.953] {Default Queue} discarded wl_surface#935.enter(wl_output#3257) +[2618336.957] {Default Queue} discarded wl_surface#2823.enter(wl_output#3257) +[2618336.961] {Default Queue} discarded wl_surface#3015.enter(wl_output#3257) +[2618336.965] {Default Queue} discarded wl_surface#1671.enter(wl_output#3257) +[2618336.970] {Default Queue} discarded wl_surface#1351.enter(wl_output#3257) +[2618336.975] {Default Queue} discarded wl_surface#711.enter(wl_output#3257) +[2618336.981] {Default Queue} discarded wl_surface#3175.enter(wl_output#3257) +[2618336.986] {Default Queue} discarded wl_surface#1223.enter(wl_output#3257) +[2618336.991] {Default Queue} discarded wl_surface#1927.enter(wl_output#3257) +[2618336.995] {Default Queue} discarded wl_surface#871.enter(wl_output#3257) +[2618337.000] {Default Queue} discarded wl_surface#1895.enter(wl_output#3257) +[2618337.006] {Default Queue} discarded wl_surface#263.enter(wl_output#3257) +[2618337.011] {Default Queue} discarded wl_surface#551.enter(wl_output#3257) +[2618337.017] {Default Queue} discarded wl_surface#1735.enter(wl_output#3257) +[2618337.022] {Default Queue} discarded wl_surface#1479.enter(wl_output#3257) +[2618337.027] {Default Queue} discarded wl_surface#1772.enter(wl_output#3257) +[2618337.031] {Default Queue} discarded wl_surface#2599.enter(wl_output#3257) +[2618337.035] {Default Queue} discarded wl_surface#2631.enter(wl_output#3257) +[2618337.039] {Default Queue} discarded wl_surface#1959.enter(wl_output#3257) +[2618337.043] {Default Queue} discarded wl_surface#647.enter(wl_output#3257) +[2618337.047] {Default Queue} discarded wl_surface#2055.enter(wl_output#3257) +[2618337.051] {Default Queue} discarded wl_surface#2508.enter(wl_output#3257) +[2618337.055] {Default Queue} discarded wl_surface#71.enter(wl_output#3257) +[2618337.059] {Default Queue} discarded wl_surface#2759.enter(wl_output#3257) +[2618337.064] {Default Queue} discarded wl_surface#2791.enter(wl_output#3257) +[2618337.068] {Default Queue} discarded wl_surface#2887.enter(wl_output#3257) +[2618337.072] {Default Queue} discarded wl_surface#2183.enter(wl_output#3257) +[2618337.076] {Default Queue} discarded wl_surface#2567.enter(wl_output#3257) +[2618337.080] {Default Queue} discarded wl_surface#839.enter(wl_output#3257) +[2618337.084] {Default Queue} discarded wl_surface#1607.enter(wl_output#3257) +[2618337.089] {Default Queue} discarded wl_surface#1095.enter(wl_output#3257) +[2618337.093] {Default Queue} discarded wl_surface#1383.enter(wl_output#3257) +[2618337.097] {Default Queue} discarded wl_surface#487.enter(wl_output#3257) +[2618337.105] {Default Queue} discarded wl_surface#2311.enter(wl_output#3257) +[2618337.111] {Default Queue} discarded wl_surface#519.enter(wl_output#3257) +[2618337.116] {Default Queue} discarded wl_surface#2087.enter(wl_output#3257) +[2618337.120] {Default Queue} discarded wl_surface#2471.enter(wl_output#3257) +[2618337.123] {Default Queue} discarded wl_surface#295.enter(wl_output#3257) +[2618337.127] {Default Queue} discarded wl_surface#167.enter(wl_output#3257) +[2618337.131] {Default Queue} discarded wl_surface#1255.enter(wl_output#3257) +[2618337.135] {Default Queue} discarded wl_surface#2855.enter(wl_output#3257) +[2618337.139] {Default Queue} discarded wl_surface#679.enter(wl_output#3257) +[2618337.143] {Default Queue} discarded wl_surface#2407.enter(wl_output#3257) +[2618337.148] {Default Queue} discarded wl_surface#3207.enter(wl_output#3257) +[2618337.152] {Default Queue} discarded wl_surface#2119.enter(wl_output#3257) +[2618337.156] {Default Queue} wl_registry#3270.global(1, "wl_compositor", 6) +[2618337.163] {Default Queue} -> wl_registry#3270.bind(1, "wl_compositor", 1, new id [unknown]#3276) +[2618337.168] {Default Queue} wl_registry#3270.global(2, "wl_subcompositor", 1) +[2618337.172] {Default Queue} -> wl_registry#3270.bind(2, "wl_subcompositor", 1, new id [unknown]#3277) +[2618337.177] {Default Queue} wl_registry#3270.global(3, "xdg_wm_base", 6) +[2618337.183] {Default Queue} -> wl_registry#3270.bind(3, "xdg_wm_base", 1, new id [unknown]#3278) +[2618337.187] {Default Queue} wl_registry#3270.global(6, "zwlr_layer_shell_v1", 5) +[2618337.191] {Default Queue} wl_registry#3270.global(7, "ext_session_lock_manager_v1", 1) +[2618337.196] {Default Queue} wl_registry#3270.global(8, "wl_shm", 2) +[2618337.201] {Default Queue} -> wl_registry#3270.bind(8, "wl_shm", 1, new id [unknown]#3279) +[2618337.205] {Default Queue} -> wl_registry#3270.bind(8, "wl_shm", 1, new id [unknown]#3280) +[2618337.209] {Default Queue} -> wl_registry#3270.bind(8, "wl_shm", 1, new id [unknown]#3281) +[2618337.214] {Default Queue} wl_registry#3270.global(9, "zxdg_output_manager_v1", 3) +[2618337.219] {Default Queue} wl_registry#3270.global(10, "wp_fractional_scale_manager_v1", 1) +[2618337.223] {Default Queue} wl_registry#3270.global(11, "zwp_tablet_manager_v2", 1) +[2618337.228] {Default Queue} wl_registry#3270.global(12, "zwp_pointer_gestures_v1", 3) +[2618337.232] {Default Queue} wl_registry#3270.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618337.236] {Default Queue} -> wl_registry#3270.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3282) +[2618337.241] {Default Queue} wl_registry#3270.global(14, "zwp_pointer_constraints_v1", 1) +[2618337.245] {Default Queue} -> wl_registry#3270.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3283) +[2618337.250] {Default Queue} wl_registry#3270.global(15, "ext_idle_notifier_v1", 2) +[2618337.254] {Default Queue} wl_registry#3270.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618337.259] {Default Queue} wl_registry#3270.global(17, "wl_data_device_manager", 3) +[2618337.264] {Default Queue} -> wl_registry#3270.bind(17, "wl_data_device_manager", 2, new id [unknown]#3284) +[2618337.268] {Default Queue} -> wl_data_device_manager#3284.create_data_source(new id wl_data_source#3285) +[2618337.273] {Default Queue} -> wl_data_source#3285.offer("text/plain") +[2618337.277] {Default Queue} -> wl_data_source#3285.offer("text/plain;charset=utf-8") +[2618337.281] {Default Queue} -> wl_data_source#3285.offer("TEXT") +[2618337.285] {Default Queue} -> wl_data_source#3285.offer("STRING") +[2618337.289] {Default Queue} -> wl_data_source#3285.offer("UTF8_STRING") +[2618337.293] {Default Queue} wl_registry#3270.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618337.298] {Default Queue} -> wl_registry#3270.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3286) +[2618337.306] {Default Queue} -> zwp_primary_selection_device_manager_v1#3286.create_source(new id zwp_primary_selection_source_v1#3287) +[2618337.314] {Default Queue} -> zwp_primary_selection_source_v1#3287.offer("text/plain") +[2618337.321] {Default Queue} -> zwp_primary_selection_source_v1#3287.offer("text/plain;charset=utf-8") +[2618337.327] {Default Queue} -> zwp_primary_selection_source_v1#3287.offer("TEXT") +[2618337.331] {Default Queue} -> zwp_primary_selection_source_v1#3287.offer("STRING") +[2618337.335] {Default Queue} -> zwp_primary_selection_source_v1#3287.offer("UTF8_STRING") +[2618337.339] {Default Queue} wl_registry#3270.global(19, "zwlr_data_control_manager_v1", 2) +[2618337.344] {Default Queue} wl_registry#3270.global(20, "ext_data_control_manager_v1", 1) +[2618337.348] {Default Queue} wl_registry#3270.global(21, "wp_presentation", 2) +[2618337.352] {Default Queue} wl_registry#3270.global(22, "wp_security_context_manager_v1", 1) +[2618337.357] {Default Queue} wl_registry#3270.global(23, "zwp_text_input_manager_v3", 1) +[2618337.361] {Default Queue} wl_registry#3270.global(24, "zwp_input_method_manager_v2", 1) +[2618337.366] {Default Queue} wl_registry#3270.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618337.370] {Default Queue} wl_registry#3270.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618337.376] {Default Queue} wl_registry#3270.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618337.382] {Default Queue} wl_registry#3270.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618337.388] {Default Queue} wl_registry#3270.global(29, "ext_workspace_manager_v1", 1) +[2618337.394] {Default Queue} wl_registry#3270.global(30, "zwlr_output_manager_v1", 4) +[2618337.398] {Default Queue} wl_registry#3270.global(31, "zwlr_screencopy_manager_v1", 3) +[2618337.403] {Default Queue} wl_registry#3270.global(32, "wp_viewporter", 1) +[2618337.407] {Default Queue} wl_registry#3270.global(33, "zxdg_exporter_v2", 1) +[2618337.411] {Default Queue} wl_registry#3270.global(34, "zxdg_importer_v2", 1) +[2618337.416] {Default Queue} wl_registry#3270.global(36, "xdg_activation_v1", 1) +[2618337.420] {Default Queue} wl_registry#3270.global(37, "mutter_x11_interop", 1) +[2618337.424] {Default Queue} wl_registry#3270.global(38, "wl_seat", 9) +[2618337.429] {Default Queue} -> wl_registry#3270.bind(38, "wl_seat", 1, new id [unknown]#3288) +[2618337.434] {Default Queue} wl_registry#3270.global(39, "wp_cursor_shape_manager_v1", 2) +[2618337.438] {Default Queue} wl_registry#3270.global(40, "wl_output", 4) +[2618337.442] {Default Queue} -> wl_registry#3270.bind(40, "wl_output", 1, new id [unknown]#3289) +[2618337.447] {Default Queue} wl_callback#3271.done(0) +[2618337.452] {Default Queue} discarded wl_surface#3239.enter(wl_output#18) +[2618337.456] {Default Queue} discarded wl_surface#3239.enter(wl_output#57) +[2618337.460] {Default Queue} discarded wl_surface#3239.enter(wl_output#89) +[2618337.464] {Default Queue} discarded wl_surface#3239.enter(wl_output#121) +[2618337.468] {Default Queue} discarded wl_surface#3239.enter(wl_output#153) +[2618337.472] {Default Queue} discarded wl_surface#3239.enter(wl_output#185) +[2618337.476] {Default Queue} discarded wl_surface#3239.enter(wl_output#217) +[2618337.480] {Default Queue} discarded wl_surface#3239.enter(wl_output#249) +[2618337.484] {Default Queue} discarded wl_surface#3239.enter(wl_output#281) +[2618337.487] {Default Queue} discarded wl_surface#3239.enter(wl_output#313) +[2618337.491] {Default Queue} discarded wl_surface#3239.enter(wl_output#345) +[2618337.495] {Default Queue} discarded wl_surface#3239.enter(wl_output#377) +[2618337.499] {Default Queue} discarded wl_surface#3239.enter(wl_output#409) +[2618337.503] {Default Queue} discarded wl_surface#3239.enter(wl_output#441) +[2618337.507] {Default Queue} discarded wl_surface#3239.enter(wl_output#473) +[2618337.511] {Default Queue} discarded wl_surface#3239.enter(wl_output#505) +[2618337.515] {Default Queue} discarded wl_surface#3239.enter(wl_output#537) +[2618337.519] {Default Queue} discarded wl_surface#3239.enter(wl_output#569) +[2618337.523] {Default Queue} discarded wl_surface#3239.enter(wl_output#601) +[2618337.527] {Default Queue} discarded wl_surface#3239.enter(wl_output#633) +[2618337.531] {Default Queue} discarded wl_surface#3239.enter(wl_output#665) +[2618337.537] {Default Queue} discarded wl_surface#3239.enter(wl_output#697) +[2618337.543] {Default Queue} discarded wl_surface#3239.enter(wl_output#729) +[2618337.547] {Default Queue} discarded wl_surface#3239.enter(wl_output#761) +[2618337.550] {Default Queue} discarded wl_surface#3239.enter(wl_output#793) +[2618337.554] {Default Queue} discarded wl_surface#3239.enter(wl_output#825) +[2618337.558] {Default Queue} discarded wl_surface#3239.enter(wl_output#857) +[2618337.562] {Default Queue} discarded wl_surface#3239.enter(wl_output#889) +[2618337.566] {Default Queue} discarded wl_surface#3239.enter(wl_output#921) +[2618337.570] {Default Queue} discarded wl_surface#3239.enter(wl_output#953) +[2618337.574] {Default Queue} discarded wl_surface#3239.enter(wl_output#985) +[2618337.578] {Default Queue} discarded wl_surface#3239.enter(wl_output#1017) +[2618337.582] {Default Queue} discarded wl_surface#3239.enter(wl_output#1049) +[2618337.586] {Default Queue} discarded wl_surface#3239.enter(wl_output#1081) +[2618337.589] {Default Queue} discarded wl_surface#3239.enter(wl_output#1113) +[2618337.593] {Default Queue} discarded wl_surface#3239.enter(wl_output#1145) +[2618337.597] {Default Queue} discarded wl_surface#3239.enter(wl_output#1177) +[2618337.601] {Default Queue} discarded wl_surface#3239.enter(wl_output#1209) +[2618337.605] {Default Queue} discarded wl_surface#3239.enter(wl_output#1241) +[2618337.609] {Default Queue} discarded wl_surface#3239.enter(wl_output#1273) +[2618337.613] {Default Queue} discarded wl_surface#3239.enter(wl_output#1305) +[2618337.617] {Default Queue} discarded wl_surface#3239.enter(wl_output#1337) +[2618337.621] {Default Queue} discarded wl_surface#3239.enter(wl_output#1369) +[2618337.625] {Default Queue} discarded wl_surface#3239.enter(wl_output#1401) +[2618337.628] {Default Queue} discarded wl_surface#3239.enter(wl_output#1433) +[2618337.632] {Default Queue} discarded wl_surface#3239.enter(wl_output#1465) +[2618337.636] {Default Queue} discarded wl_surface#3239.enter(wl_output#1497) +[2618337.640] {Default Queue} discarded wl_surface#3239.enter(wl_output#1529) +[2618337.644] {Default Queue} discarded wl_surface#3239.enter(wl_output#1561) +[2618337.648] {Default Queue} discarded wl_surface#3239.enter(wl_output#1593) +[2618337.652] {Default Queue} discarded wl_surface#3239.enter(wl_output#1625) +[2618337.656] {Default Queue} discarded wl_surface#3239.enter(wl_output#1657) +[2618337.659] {Default Queue} discarded wl_surface#3239.enter(wl_output#1689) +[2618337.663] {Default Queue} discarded wl_surface#3239.enter(wl_output#1721) +[2618337.667] {Default Queue} discarded wl_surface#3239.enter(wl_output#1753) +[2618337.671] {Default Queue} discarded wl_surface#3239.enter(wl_output#1785) +[2618337.675] {Default Queue} discarded wl_surface#3239.enter(wl_output#1817) +[2618337.679] {Default Queue} discarded wl_surface#3239.enter(wl_output#1849) +[2618337.683] {Default Queue} discarded wl_surface#3239.enter(wl_output#1881) +[2618337.687] {Default Queue} discarded wl_surface#3239.enter(wl_output#1913) +[2618337.690] {Default Queue} discarded wl_surface#3239.enter(wl_output#1945) +[2618337.694] {Default Queue} discarded wl_surface#3239.enter(wl_output#1977) +[2618337.698] {Default Queue} discarded wl_surface#3239.enter(wl_output#2009) +[2618337.702] {Default Queue} discarded wl_surface#3239.enter(wl_output#2041) +[2618337.706] {Default Queue} discarded wl_surface#3239.enter(wl_output#2073) +[2618337.710] {Default Queue} discarded wl_surface#3239.enter(wl_output#2105) +[2618337.714] {Default Queue} discarded wl_surface#3239.enter(wl_output#2137) +[2618337.718] {Default Queue} discarded wl_surface#3239.enter(wl_output#2169) +[2618337.722] {Default Queue} discarded wl_surface#3239.enter(wl_output#2201) +[2618337.726] {Default Queue} discarded wl_surface#3239.enter(wl_output#2233) +[2618337.729] {Default Queue} discarded wl_surface#3239.enter(wl_output#2265) +[2618337.733] {Default Queue} discarded wl_surface#3239.enter(wl_output#2297) +[2618337.737] {Default Queue} discarded wl_surface#3239.enter(wl_output#2329) +[2618337.741] {Default Queue} discarded wl_surface#3239.enter(wl_output#2361) +[2618337.748] {Default Queue} discarded wl_surface#3239.enter(wl_output#2393) +[2618337.753] {Default Queue} discarded wl_surface#3239.enter(wl_output#2425) +[2618337.757] {Default Queue} discarded wl_surface#3239.enter(wl_output#2457) +[2618337.761] {Default Queue} discarded wl_surface#3239.enter(wl_output#2489) +[2618337.765] {Default Queue} discarded wl_surface#3239.enter(wl_output#2521) +[2618337.769] {Default Queue} -> wl_compositor#3244.create_surface(new id wl_surface#3271) +[2618337.774] {Default Queue} -> wl_subcompositor#3277.get_subsurface(new id wl_subsurface#3290, wl_surface#3271, wl_surface#3239) +[2618337.782] {Default Queue} -> wl_subsurface#3290.set_desync() +[2618337.787] {Default Queue} -> wl_subsurface#3290.set_position(0, 0) +[2618337.792] {Default Queue} -> wl_subsurface#3290.place_above(wl_surface#3239) +[2618337.836] {Default Queue} -> wl_shm#3279.create_pool(new id wl_shm_pool#3291, fd 519, 16) +[2618337.843] {Default Queue} -> wl_shm#3279.create_pool(new id wl_shm_pool#3292, fd 520, 16) +[2618337.847] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 2, 2, 8, 0) +[2618337.852] {Default Queue} -> wl_shm_pool#3292.create_buffer(new id wl_buffer#3294, 0, 2, 2, 8, 0) +[2618337.868] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3293, 0, 0) +[2618337.874] {Default Queue} -> wl_surface#3271.commit() +[2618337.880] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3293, 0, 0) +[2618337.884] {Default Queue} -> wl_surface#3271.commit() +[2618337.888] {Default Queue} -> wl_compositor#3276.create_region(new id wl_region#3295) +[2618337.893] {Default Queue} -> wl_compositor#3276.create_region(new id wl_region#3296) +[2618337.897] {Default Queue} -> wl_region#3295.subtract(0, 0, 2, 2) +[2618337.902] {Default Queue} -> wl_region#3295.add(0, 0, 0, 0) +[2618337.906] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) +[2618337.911] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) +[2618337.916] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) +[2618337.920] {Default Queue} -> wl_surface#3239.damage(0, 0, 2, 2) +[2618337.928] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3293, 0, 0) +[2618337.932] {Default Queue} -> wl_surface#3271.commit() +[2618337.969] {Default Queue} -> wl_shm#3281.create_pool(new id wl_shm_pool#3297, fd 523, 640) +[2618337.976] {Default Queue} -> wl_shm#3281.create_pool(new id wl_shm_pool#3298, fd 524, 640) +[2618337.980] {Default Queue} -> wl_shm_pool#3297.create_buffer(new id wl_buffer#3299, 0, 10, 16, 40, 0) +[2618337.985] {Default Queue} -> wl_shm_pool#3298.create_buffer(new id wl_buffer#3300, 0, 10, 16, 40, 0) +[2618337.992] {Default Queue} -> wl_compositor#3276.create_surface(new id wl_surface#3301) +[2618337.997] {Default Queue} -> wl_surface#3301.attach(wl_buffer#3299, 0, 0) +[2618338.001] {Default Queue} -> wl_surface#3301.commit() +[2618338.007] {Default Queue} -> wl_surface#3301.attach(wl_buffer#3299, 0, 0) +[2618338.011] {Default Queue} -> wl_surface#3301.commit() +[2618338.017] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) +[2618338.024] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3302) +[2618338.029] {Default Queue} -> wl_display#1.sync(new id wl_callback#3303) +[2618340.503] {Default Queue} discarded wl_surface#3239.enter(wl_output#2553) +[2618340.516] {Default Queue} discarded wl_surface#3239.enter(wl_output#2585) +[2618340.523] {Default Queue} discarded wl_surface#3239.enter(wl_output#2617) +[2618340.530] {Default Queue} discarded wl_surface#3239.enter(wl_output#2649) +[2618340.536] {Default Queue} discarded wl_surface#3239.enter(wl_output#2681) +[2618340.543] {Default Queue} discarded wl_surface#3239.enter(wl_output#2713) +[2618340.549] {Default Queue} discarded wl_surface#3239.enter(wl_output#2745) +[2618340.556] {Default Queue} discarded wl_surface#3239.enter(wl_output#2777) +[2618340.562] {Default Queue} discarded wl_surface#3239.enter(wl_output#2809) +[2618340.569] {Default Queue} discarded wl_surface#3239.enter(wl_output#2841) +[2618340.585] {Default Queue} discarded wl_surface#3239.enter(wl_output#2873) +[2618340.596] {Default Queue} discarded wl_surface#3239.enter(wl_output#2905) +[2618340.603] {Default Queue} discarded wl_surface#3239.enter(wl_output#2937) +[2618340.610] {Default Queue} discarded wl_surface#3239.enter(wl_output#2969) +[2618340.617] {Default Queue} discarded wl_surface#3239.enter(wl_output#3001) +[2618340.623] {Default Queue} discarded wl_surface#3239.enter(wl_output#3033) +[2618340.630] {Default Queue} discarded wl_surface#3239.enter(wl_output#3065) +[2618340.636] {Default Queue} discarded wl_surface#3239.enter(wl_output#3097) +[2618340.642] {Default Queue} discarded wl_surface#3239.enter(wl_output#3129) +[2618340.649] {Default Queue} discarded wl_surface#3239.enter(wl_output#3161) +[2618340.655] {Default Queue} discarded wl_surface#3239.enter(wl_output#3193) +[2618340.662] {Default Queue} discarded wl_surface#3239.enter(wl_output#3225) +[2618340.669] {Default Queue} discarded wl_surface#3239.enter(wl_output#3257) +[2618340.884] {Display Queue} wl_display#1.delete_id(3303) +[2618340.901] {Default Queue} wl_keyboard#3272.keymap(1, fd 519, 68213) +[2618340.910] {Default Queue} wl_keyboard#3272.enter(566, wl_surface#19, array[0]) +[2618340.919] {Default Queue} wl_keyboard#3272.modifiers(566, 0, 0, 16, 0) +[2618340.926] {Default Queue} discarded wl_shm#3279.format(875709016) +[2618340.933] {Default Queue} discarded wl_shm#3279.format(1) +[2618340.940] {Default Queue} discarded wl_shm#3279.format(0) +[2618340.946] {Default Queue} discarded wl_shm#3279.format(875708993) +[2618340.953] {Default Queue} discarded wl_shm#3280.format(875709016) +[2618340.959] {Default Queue} discarded wl_shm#3280.format(1) +[2618340.966] {Default Queue} discarded wl_shm#3280.format(0) +[2618340.973] {Default Queue} discarded wl_shm#3280.format(875708993) +[2618340.980] {Default Queue} discarded wl_shm#3281.format(875709016) +[2618340.987] {Default Queue} discarded wl_shm#3281.format(1) +[2618340.994] {Default Queue} discarded wl_shm#3281.format(0) +[2618341.001] {Default Queue} discarded wl_shm#3281.format(875708993) +[2618341.007] {Default Queue} wl_seat#3288.capabilities(7) +[2618341.015] {Default Queue} -> wl_seat#3288.get_keyboard(new id wl_keyboard#3304) +[2618341.024] {Default Queue} -> wl_seat#3288.get_pointer(new id wl_pointer#3305) +[2618341.033] {Default Queue} -> wl_data_device_manager#3284.get_data_device(new id wl_data_device#3306, wl_seat#3288) +[2618341.042] {Default Queue} -> zwp_primary_selection_device_manager_v1#3286.get_device(new id zwp_primary_selection_device_v1#3307, wl_seat#3288) +[2618341.056] {Default Queue} wl_output#3289.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618341.066] {Default Queue} wl_output#3289.mode(3, 1280, 800, 60000) +[2618341.075] {Default Queue} discarded wl_surface#2727.enter(wl_output#3289) +[2618341.082] {Default Queue} discarded wl_surface#3.enter(wl_output#3289) +[2618341.089] {Default Queue} discarded wl_surface#999.enter(wl_output#3289) +[2618341.096] {Default Queue} discarded wl_surface#3079.enter(wl_output#3289) +[2618341.102] {Default Queue} discarded wl_surface#1191.enter(wl_output#3289) +[2618341.109] {Default Queue} discarded wl_surface#1159.enter(wl_output#3289) +[2618341.115] {Default Queue} discarded wl_surface#1703.enter(wl_output#3289) +[2618341.122] {Default Queue} discarded wl_surface#2215.enter(wl_output#3289) +[2618341.128] {Default Queue} discarded wl_surface#423.enter(wl_output#3289) +[2618341.135] {Default Queue} discarded wl_surface#1447.enter(wl_output#3289) +[2618341.141] {Default Queue} discarded wl_surface#3047.enter(wl_output#3289) +[2618341.148] {Default Queue} discarded wl_surface#2023.enter(wl_output#3289) +[2618341.154] {Default Queue} discarded wl_surface#1639.enter(wl_output#3289) +[2618341.161] {Default Queue} discarded wl_surface#1319.enter(wl_output#3289) +[2618341.167] {Default Queue} discarded wl_surface#1127.enter(wl_output#3289) +[2618341.174] {Default Queue} discarded wl_surface#2151.enter(wl_output#3289) +[2618341.180] {Default Queue} discarded wl_surface#2375.enter(wl_output#3289) +[2618341.187] {Default Queue} discarded wl_surface#2695.enter(wl_output#3289) +[2618341.201] {Default Queue} discarded wl_surface#2919.enter(wl_output#3289) +[2618341.212] {Default Queue} discarded wl_surface#1063.enter(wl_output#3289) +[2618341.220] {Default Queue} discarded wl_surface#455.enter(wl_output#3289) +[2618341.227] {Default Queue} discarded wl_surface#1575.enter(wl_output#3289) +[2618341.234] {Default Queue} discarded wl_surface#1799.enter(wl_output#3289) +[2618341.241] {Default Queue} discarded wl_surface#1415.enter(wl_output#3289) +[2618341.249] {Default Queue} discarded wl_surface#2439.enter(wl_output#3289) +[2618341.256] {Default Queue} discarded wl_surface#2279.enter(wl_output#3289) +[2618341.263] {Default Queue} discarded wl_surface#1831.enter(wl_output#3289) +[2618341.271] {Default Queue} discarded wl_surface#903.enter(wl_output#3289) +[2618341.278] {Default Queue} discarded wl_surface#2663.enter(wl_output#3289) +[2618341.285] {Default Queue} discarded wl_surface#775.enter(wl_output#3289) +[2618341.293] {Default Queue} discarded wl_surface#1991.enter(wl_output#3289) +[2618341.300] {Default Queue} discarded wl_surface#1543.enter(wl_output#3289) +[2618341.307] {Default Queue} discarded wl_surface#135.enter(wl_output#3289) +[2618341.314] {Default Queue} discarded wl_surface#1287.enter(wl_output#3289) +[2618341.322] {Default Queue} discarded wl_surface#1031.enter(wl_output#3289) +[2618341.329] {Default Queue} discarded wl_surface#615.enter(wl_output#3289) +[2618341.336] {Default Queue} discarded wl_surface#3111.enter(wl_output#3289) +[2618341.343] {Default Queue} discarded wl_surface#231.enter(wl_output#3289) +[2618341.351] {Default Queue} discarded wl_surface#2343.enter(wl_output#3289) +[2618341.357] {Default Queue} discarded wl_surface#1863.enter(wl_output#3289) +[2618341.362] {Default Queue} discarded wl_surface#359.enter(wl_output#3289) +[2618341.368] {Default Queue} discarded wl_surface#2983.enter(wl_output#3289) +[2618341.374] {Default Queue} discarded wl_surface#583.enter(wl_output#3289) +[2618341.379] {Default Queue} discarded wl_surface#743.enter(wl_output#3289) +[2618341.385] {Default Queue} discarded wl_surface#3143.enter(wl_output#3289) +[2618341.391] {Default Queue} discarded wl_surface#2535.enter(wl_output#3289) +[2618341.397] {Default Queue} discarded wl_surface#967.enter(wl_output#3289) +[2618341.403] {Default Queue} discarded wl_surface#103.enter(wl_output#3289) +[2618341.409] {Default Queue} discarded wl_surface#327.enter(wl_output#3289) +[2618341.414] {Default Queue} discarded wl_surface#43.enter(wl_output#3289) +[2618341.420] {Default Queue} discarded wl_surface#2247.enter(wl_output#3289) +[2618341.426] {Default Queue} discarded wl_surface#807.enter(wl_output#3289) +[2618341.432] {Default Queue} discarded wl_surface#19.enter(wl_output#3289) +[2618341.438] {Default Queue} discarded wl_surface#2951.enter(wl_output#3289) +[2618341.444] {Default Queue} discarded wl_surface#1511.enter(wl_output#3289) +[2618341.449] {Default Queue} discarded wl_surface#199.enter(wl_output#3289) +[2618341.455] {Default Queue} discarded wl_surface#391.enter(wl_output#3289) +[2618341.460] {Default Queue} discarded wl_surface#935.enter(wl_output#3289) +[2618341.466] {Default Queue} discarded wl_surface#2823.enter(wl_output#3289) +[2618341.471] {Default Queue} discarded wl_surface#3015.enter(wl_output#3289) +[2618341.474] {Default Queue} discarded wl_surface#1671.enter(wl_output#3289) +[2618341.478] {Default Queue} discarded wl_surface#1351.enter(wl_output#3289) +[2618341.483] {Default Queue} discarded wl_surface#711.enter(wl_output#3289) +[2618341.487] {Default Queue} discarded wl_surface#3175.enter(wl_output#3289) +[2618341.490] {Default Queue} discarded wl_surface#1223.enter(wl_output#3289) +[2618341.494] {Default Queue} discarded wl_surface#1927.enter(wl_output#3289) +[2618341.498] {Default Queue} discarded wl_surface#871.enter(wl_output#3289) +[2618341.503] {Default Queue} discarded wl_surface#1895.enter(wl_output#3289) +[2618341.508] {Default Queue} discarded wl_surface#263.enter(wl_output#3289) +[2618341.514] {Default Queue} discarded wl_surface#551.enter(wl_output#3289) +[2618341.519] {Default Queue} discarded wl_surface#1735.enter(wl_output#3289) +[2618341.528] {Default Queue} discarded wl_surface#1479.enter(wl_output#3289) +[2618341.536] {Default Queue} discarded wl_surface#1772.enter(wl_output#3289) +[2618341.542] {Default Queue} discarded wl_surface#2599.enter(wl_output#3289) +[2618341.547] {Default Queue} discarded wl_surface#2631.enter(wl_output#3289) +[2618341.553] {Default Queue} discarded wl_surface#1959.enter(wl_output#3289) +[2618341.558] {Default Queue} discarded wl_surface#647.enter(wl_output#3289) +[2618341.562] {Default Queue} discarded wl_surface#2055.enter(wl_output#3289) +[2618341.566] {Default Queue} discarded wl_surface#2508.enter(wl_output#3289) +[2618341.570] {Default Queue} discarded wl_surface#71.enter(wl_output#3289) +[2618341.574] {Default Queue} discarded wl_surface#2759.enter(wl_output#3289) +[2618341.578] {Default Queue} discarded wl_surface#2791.enter(wl_output#3289) +[2618341.582] {Default Queue} discarded wl_surface#2887.enter(wl_output#3289) +[2618341.586] {Default Queue} discarded wl_surface#2183.enter(wl_output#3289) +[2618341.590] {Default Queue} discarded wl_surface#2567.enter(wl_output#3289) +[2618341.594] {Default Queue} discarded wl_surface#839.enter(wl_output#3289) +[2618341.598] {Default Queue} discarded wl_surface#1607.enter(wl_output#3289) +[2618341.602] {Default Queue} discarded wl_surface#1095.enter(wl_output#3289) +[2618341.606] {Default Queue} discarded wl_surface#1383.enter(wl_output#3289) +[2618341.610] {Default Queue} discarded wl_surface#487.enter(wl_output#3289) +[2618341.614] {Default Queue} discarded wl_surface#2311.enter(wl_output#3289) +[2618341.618] {Default Queue} discarded wl_surface#519.enter(wl_output#3289) +[2618341.622] {Default Queue} discarded wl_surface#3239.enter(wl_output#3289) +[2618341.626] {Default Queue} discarded wl_surface#2087.enter(wl_output#3289) +[2618341.630] {Default Queue} discarded wl_surface#2471.enter(wl_output#3289) +[2618341.634] {Default Queue} discarded wl_surface#295.enter(wl_output#3289) +[2618341.638] {Default Queue} discarded wl_surface#167.enter(wl_output#3289) +[2618341.641] {Default Queue} discarded wl_surface#1255.enter(wl_output#3289) +[2618341.645] {Default Queue} discarded wl_surface#2855.enter(wl_output#3289) +[2618341.649] {Default Queue} discarded wl_surface#679.enter(wl_output#3289) +[2618341.653] {Default Queue} discarded wl_surface#2407.enter(wl_output#3289) +[2618341.657] {Default Queue} discarded wl_surface#3207.enter(wl_output#3289) +[2618341.661] {Default Queue} discarded wl_surface#2119.enter(wl_output#3289) +[2618341.665] {Default Queue} wl_registry#3302.global(1, "wl_compositor", 6) +[2618341.672] {Default Queue} -> wl_registry#3302.bind(1, "wl_compositor", 1, new id [unknown]#3308) +[2618341.677] {Default Queue} wl_registry#3302.global(2, "wl_subcompositor", 1) +[2618341.681] {Default Queue} -> wl_registry#3302.bind(2, "wl_subcompositor", 1, new id [unknown]#3309) +[2618341.686] {Default Queue} wl_registry#3302.global(3, "xdg_wm_base", 6) +[2618341.691] {Default Queue} -> wl_registry#3302.bind(3, "xdg_wm_base", 1, new id [unknown]#3310) +[2618341.695] {Default Queue} wl_registry#3302.global(6, "zwlr_layer_shell_v1", 5) +[2618341.700] {Default Queue} wl_registry#3302.global(7, "ext_session_lock_manager_v1", 1) +[2618341.704] {Default Queue} wl_registry#3302.global(8, "wl_shm", 2) +[2618341.709] {Default Queue} -> wl_registry#3302.bind(8, "wl_shm", 1, new id [unknown]#3311) +[2618341.714] {Default Queue} -> wl_registry#3302.bind(8, "wl_shm", 1, new id [unknown]#3312) +[2618341.718] {Default Queue} -> wl_registry#3302.bind(8, "wl_shm", 1, new id [unknown]#3313) +[2618341.722] {Default Queue} wl_registry#3302.global(9, "zxdg_output_manager_v1", 3) +[2618341.727] {Default Queue} wl_registry#3302.global(10, "wp_fractional_scale_manager_v1", 1) +[2618341.731] {Default Queue} wl_registry#3302.global(11, "zwp_tablet_manager_v2", 1) +[2618341.736] {Default Queue} wl_registry#3302.global(12, "zwp_pointer_gestures_v1", 3) +[2618341.740] {Default Queue} wl_registry#3302.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618341.748] {Default Queue} -> wl_registry#3302.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3314) +[2618341.759] {Default Queue} wl_registry#3302.global(14, "zwp_pointer_constraints_v1", 1) +[2618341.765] {Default Queue} -> wl_registry#3302.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3315) +[2618341.769] {Default Queue} wl_registry#3302.global(15, "ext_idle_notifier_v1", 2) +[2618341.774] {Default Queue} wl_registry#3302.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618341.778] {Default Queue} wl_registry#3302.global(17, "wl_data_device_manager", 3) +[2618341.783] {Default Queue} -> wl_registry#3302.bind(17, "wl_data_device_manager", 2, new id [unknown]#3316) +[2618341.788] {Default Queue} -> wl_data_device_manager#3316.create_data_source(new id wl_data_source#3317) +[2618341.792] {Default Queue} -> wl_data_source#3317.offer("text/plain") +[2618341.796] {Default Queue} -> wl_data_source#3317.offer("text/plain;charset=utf-8") +[2618341.801] {Default Queue} -> wl_data_source#3317.offer("TEXT") +[2618341.805] {Default Queue} -> wl_data_source#3317.offer("STRING") +[2618341.809] {Default Queue} -> wl_data_source#3317.offer("UTF8_STRING") +[2618341.813] {Default Queue} wl_registry#3302.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618341.818] {Default Queue} -> wl_registry#3302.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3318) +[2618341.826] {Default Queue} -> zwp_primary_selection_device_manager_v1#3318.create_source(new id zwp_primary_selection_source_v1#3319) +[2618341.834] {Default Queue} -> zwp_primary_selection_source_v1#3319.offer("text/plain") +[2618341.838] {Default Queue} -> zwp_primary_selection_source_v1#3319.offer("text/plain;charset=utf-8") +[2618341.842] {Default Queue} -> zwp_primary_selection_source_v1#3319.offer("TEXT") +[2618341.846] {Default Queue} -> zwp_primary_selection_source_v1#3319.offer("STRING") +[2618341.850] {Default Queue} -> zwp_primary_selection_source_v1#3319.offer("UTF8_STRING") +[2618341.855] {Default Queue} wl_registry#3302.global(19, "zwlr_data_control_manager_v1", 2) +[2618341.859] {Default Queue} wl_registry#3302.global(20, "ext_data_control_manager_v1", 1) +[2618341.869] {Default Queue} wl_registry#3302.global(21, "wp_presentation", 2) +[2618341.874] {Default Queue} wl_registry#3302.global(22, "wp_security_context_manager_v1", 1) +[2618341.878] {Default Queue} wl_registry#3302.global(23, "zwp_text_input_manager_v3", 1) +[2618341.883] {Default Queue} wl_registry#3302.global(24, "zwp_input_method_manager_v2", 1) +[2618341.887] {Default Queue} wl_registry#3302.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618341.891] {Default Queue} wl_registry#3302.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618341.896] {Default Queue} wl_registry#3302.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618341.900] {Default Queue} wl_registry#3302.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618341.905] {Default Queue} wl_registry#3302.global(29, "ext_workspace_manager_v1", 1) +[2618341.909] {Default Queue} wl_registry#3302.global(30, "zwlr_output_manager_v1", 4) +[2618341.913] {Default Queue} wl_registry#3302.global(31, "zwlr_screencopy_manager_v1", 3) +[2618341.918] {Default Queue} wl_registry#3302.global(32, "wp_viewporter", 1) +[2618341.922] {Default Queue} wl_registry#3302.global(33, "zxdg_exporter_v2", 1) +[2618341.926] {Default Queue} wl_registry#3302.global(34, "zxdg_importer_v2", 1) +[2618341.931] {Default Queue} wl_registry#3302.global(36, "xdg_activation_v1", 1) +[2618341.935] {Default Queue} wl_registry#3302.global(37, "mutter_x11_interop", 1) +[2618341.939] {Default Queue} wl_registry#3302.global(38, "wl_seat", 9) +[2618341.944] {Default Queue} -> wl_registry#3302.bind(38, "wl_seat", 1, new id [unknown]#3320) +[2618341.949] {Default Queue} wl_registry#3302.global(39, "wp_cursor_shape_manager_v1", 2) +[2618341.953] {Default Queue} wl_registry#3302.global(40, "wl_output", 4) +[2618341.958] {Default Queue} -> wl_registry#3302.bind(40, "wl_output", 1, new id [unknown]#3321) +[2618341.962] {Default Queue} wl_callback#3303.done(0) +[2618341.970] {Default Queue} discarded wl_surface#3271.enter(wl_output#18) +[2618341.976] {Default Queue} discarded wl_surface#3271.enter(wl_output#57) +[2618341.980] {Default Queue} discarded wl_surface#3271.enter(wl_output#89) +[2618341.984] {Default Queue} discarded wl_surface#3271.enter(wl_output#121) +[2618341.988] {Default Queue} discarded wl_surface#3271.enter(wl_output#153) +[2618341.992] {Default Queue} discarded wl_surface#3271.enter(wl_output#185) +[2618341.996] {Default Queue} discarded wl_surface#3271.enter(wl_output#217) +[2618342.000] {Default Queue} discarded wl_surface#3271.enter(wl_output#249) +[2618342.004] {Default Queue} discarded wl_surface#3271.enter(wl_output#281) +[2618342.008] {Default Queue} discarded wl_surface#3271.enter(wl_output#313) +[2618342.012] {Default Queue} discarded wl_surface#3271.enter(wl_output#345) +[2618342.016] {Default Queue} discarded wl_surface#3271.enter(wl_output#377) +[2618342.020] {Default Queue} discarded wl_surface#3271.enter(wl_output#409) +[2618342.024] {Default Queue} discarded wl_surface#3271.enter(wl_output#441) +[2618342.027] {Default Queue} discarded wl_surface#3271.enter(wl_output#473) +[2618342.032] {Default Queue} discarded wl_surface#3271.enter(wl_output#505) +[2618342.036] {Default Queue} discarded wl_surface#3271.enter(wl_output#537) +[2618342.040] {Default Queue} discarded wl_surface#3271.enter(wl_output#569) +[2618342.044] {Default Queue} discarded wl_surface#3271.enter(wl_output#601) +[2618342.047] {Default Queue} discarded wl_surface#3271.enter(wl_output#633) +[2618342.051] {Default Queue} discarded wl_surface#3271.enter(wl_output#665) +[2618342.055] {Default Queue} discarded wl_surface#3271.enter(wl_output#697) +[2618342.059] {Default Queue} discarded wl_surface#3271.enter(wl_output#729) +[2618342.063] {Default Queue} discarded wl_surface#3271.enter(wl_output#761) +[2618342.067] {Default Queue} discarded wl_surface#3271.enter(wl_output#793) +[2618342.070] {Default Queue} discarded wl_surface#3271.enter(wl_output#825) +[2618342.075] {Default Queue} discarded wl_surface#3271.enter(wl_output#857) +[2618342.079] {Default Queue} discarded wl_surface#3271.enter(wl_output#889) +[2618342.082] {Default Queue} discarded wl_surface#3271.enter(wl_output#921) +[2618342.086] {Default Queue} discarded wl_surface#3271.enter(wl_output#953) +[2618342.090] {Default Queue} discarded wl_surface#3271.enter(wl_output#985) +[2618342.094] {Default Queue} discarded wl_surface#3271.enter(wl_output#1017) +[2618342.098] {Default Queue} discarded wl_surface#3271.enter(wl_output#1049) +[2618342.102] {Default Queue} discarded wl_surface#3271.enter(wl_output#1081) +[2618342.107] {Default Queue} discarded wl_surface#3271.enter(wl_output#1113) +[2618342.111] {Default Queue} discarded wl_surface#3271.enter(wl_output#1145) +[2618342.115] {Default Queue} discarded wl_surface#3271.enter(wl_output#1177) +[2618342.118] {Default Queue} discarded wl_surface#3271.enter(wl_output#1209) +[2618342.122] {Default Queue} discarded wl_surface#3271.enter(wl_output#1241) +[2618342.127] {Default Queue} discarded wl_surface#3271.enter(wl_output#1273) +[2618342.131] {Default Queue} discarded wl_surface#3271.enter(wl_output#1305) +[2618342.135] {Default Queue} discarded wl_surface#3271.enter(wl_output#1337) +[2618342.139] {Default Queue} discarded wl_surface#3271.enter(wl_output#1369) +[2618342.143] {Default Queue} discarded wl_surface#3271.enter(wl_output#1401) +[2618342.147] {Default Queue} discarded wl_surface#3271.enter(wl_output#1433) +[2618342.150] {Default Queue} discarded wl_surface#3271.enter(wl_output#1465) +[2618342.154] {Default Queue} discarded wl_surface#3271.enter(wl_output#1497) +[2618342.158] {Default Queue} discarded wl_surface#3271.enter(wl_output#1529) +[2618342.162] {Default Queue} discarded wl_surface#3271.enter(wl_output#1561) +[2618342.167] {Default Queue} discarded wl_surface#3271.enter(wl_output#1593) +[2618342.171] {Default Queue} discarded wl_surface#3271.enter(wl_output#1625) +[2618342.175] {Default Queue} discarded wl_surface#3271.enter(wl_output#1657) +[2618342.178] {Default Queue} discarded wl_surface#3271.enter(wl_output#1689) +[2618342.185] {Default Queue} discarded wl_surface#3271.enter(wl_output#1721) +[2618342.191] {Default Queue} discarded wl_surface#3271.enter(wl_output#1753) +[2618342.195] {Default Queue} discarded wl_surface#3271.enter(wl_output#1785) +[2618342.199] {Default Queue} discarded wl_surface#3271.enter(wl_output#1817) +[2618342.203] {Default Queue} discarded wl_surface#3271.enter(wl_output#1849) +[2618342.207] {Default Queue} discarded wl_surface#3271.enter(wl_output#1881) +[2618342.211] {Default Queue} discarded wl_surface#3271.enter(wl_output#1913) +[2618342.215] {Default Queue} discarded wl_surface#3271.enter(wl_output#1945) +[2618342.219] {Default Queue} discarded wl_surface#3271.enter(wl_output#1977) +[2618342.223] {Default Queue} discarded wl_surface#3271.enter(wl_output#2009) +[2618342.226] {Default Queue} discarded wl_surface#3271.enter(wl_output#2041) +[2618342.231] {Default Queue} discarded wl_surface#3271.enter(wl_output#2073) +[2618342.235] {Default Queue} discarded wl_surface#3271.enter(wl_output#2105) +[2618342.239] {Default Queue} discarded wl_surface#3271.enter(wl_output#2137) +[2618342.243] {Default Queue} discarded wl_surface#3271.enter(wl_output#2169) +[2618342.247] {Default Queue} discarded wl_surface#3271.enter(wl_output#2201) +[2618342.251] {Default Queue} discarded wl_surface#3271.enter(wl_output#2233) +[2618342.255] {Default Queue} discarded wl_surface#3271.enter(wl_output#2265) +[2618342.259] {Default Queue} discarded wl_surface#3271.enter(wl_output#2297) +[2618342.263] {Default Queue} discarded wl_surface#3271.enter(wl_output#2329) +[2618342.267] {Default Queue} -> wl_compositor#3276.create_surface(new id wl_surface#3303) +[2618342.272] {Default Queue} -> wl_subcompositor#3309.get_subsurface(new id wl_subsurface#3322, wl_surface#3303, wl_surface#3271) +[2618342.280] {Default Queue} -> wl_subsurface#3322.set_desync() +[2618342.284] {Default Queue} -> wl_subsurface#3322.set_position(0, 0) +[2618342.289] {Default Queue} -> wl_subsurface#3322.place_above(wl_surface#3271) +[2618342.330] {Default Queue} -> wl_shm#3311.create_pool(new id wl_shm_pool#3323, fd 524, 16) +[2618342.337] {Default Queue} -> wl_shm#3311.create_pool(new id wl_shm_pool#3324, fd 525, 16) +[2618342.341] {Default Queue} -> wl_shm_pool#3323.create_buffer(new id wl_buffer#3325, 0, 2, 2, 8, 0) +[2618342.346] {Default Queue} -> wl_shm_pool#3324.create_buffer(new id wl_buffer#3326, 0, 2, 2, 8, 0) +[2618342.354] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) +[2618342.359] {Default Queue} -> wl_surface#3303.commit() +[2618342.364] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) +[2618342.368] {Default Queue} -> wl_surface#3303.commit() +[2618342.372] {Default Queue} -> wl_compositor#3308.create_region(new id wl_region#3327) +[2618342.377] {Default Queue} -> wl_compositor#3308.create_region(new id wl_region#3328) +[2618342.381] {Default Queue} -> wl_region#3327.subtract(0, 0, 2, 2) +[2618342.385] {Default Queue} -> wl_region#3327.add(0, 0, 0, 0) +[2618342.390] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2618342.394] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2618342.398] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618342.403] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) +[2618342.410] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) +[2618342.414] {Default Queue} -> wl_surface#3303.commit() +[2618342.446] {Default Queue} -> wl_shm#3313.create_pool(new id wl_shm_pool#3329, fd 528, 640) +[2618342.453] {Default Queue} -> wl_shm#3313.create_pool(new id wl_shm_pool#3330, fd 529, 640) +[2618342.457] {Default Queue} -> wl_shm_pool#3329.create_buffer(new id wl_buffer#3331, 0, 10, 16, 40, 0) +[2618342.462] {Default Queue} -> wl_shm_pool#3330.create_buffer(new id wl_buffer#3332, 0, 10, 16, 40, 0) +[2618342.469] {Default Queue} -> wl_compositor#3308.create_surface(new id wl_surface#3333) +[2618342.474] {Default Queue} -> wl_surface#3333.attach(wl_buffer#3331, 0, 0) +[2618342.478] {Default Queue} -> wl_surface#3333.commit() +[2618342.483] {Default Queue} -> wl_surface#3333.attach(wl_buffer#3331, 0, 0) +[2618342.491] {Default Queue} -> wl_surface#3333.commit() +[2618342.499] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) +[2618342.504] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618342.509] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618342.516] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3334) +[2618342.521] {Default Queue} -> wl_display#1.sync(new id wl_callback#3335) +[2618345.570] {Default Queue} discarded wl_surface#3271.enter(wl_output#2361) +[2618345.583] {Default Queue} discarded wl_surface#3271.enter(wl_output#2393) +[2618345.590] {Default Queue} discarded wl_surface#3271.enter(wl_output#2425) +[2618345.597] {Default Queue} discarded wl_surface#3271.enter(wl_output#2457) +[2618345.604] {Default Queue} discarded wl_surface#3271.enter(wl_output#2489) +[2618345.611] {Default Queue} discarded wl_surface#3271.enter(wl_output#2521) +[2618345.617] {Default Queue} discarded wl_surface#3271.enter(wl_output#2553) +[2618345.623] {Default Queue} discarded wl_surface#3271.enter(wl_output#2585) +[2618345.630] {Default Queue} discarded wl_surface#3271.enter(wl_output#2617) +[2618345.636] {Default Queue} discarded wl_surface#3271.enter(wl_output#2649) +[2618345.644] {Default Queue} discarded wl_surface#3271.enter(wl_output#2681) +[2618345.651] {Default Queue} discarded wl_surface#3271.enter(wl_output#2713) +[2618345.657] {Default Queue} discarded wl_surface#3271.enter(wl_output#2745) +[2618345.664] {Default Queue} discarded wl_surface#3271.enter(wl_output#2777) +[2618345.671] {Default Queue} discarded wl_surface#3271.enter(wl_output#2809) +[2618345.678] {Default Queue} discarded wl_surface#3271.enter(wl_output#2841) +[2618345.685] {Default Queue} discarded wl_surface#3271.enter(wl_output#2873) +[2618345.691] {Default Queue} discarded wl_surface#3271.enter(wl_output#2905) +[2618345.697] {Default Queue} discarded wl_surface#3271.enter(wl_output#2937) +[2618345.704] {Default Queue} discarded wl_surface#3271.enter(wl_output#2969) +[2618345.711] {Default Queue} discarded wl_surface#3271.enter(wl_output#3001) +[2618345.717] {Default Queue} discarded wl_surface#3271.enter(wl_output#3033) +[2618345.723] {Default Queue} discarded wl_surface#3271.enter(wl_output#3065) +[2618345.730] {Default Queue} discarded wl_surface#3271.enter(wl_output#3097) +[2618345.737] {Default Queue} discarded wl_surface#3271.enter(wl_output#3129) +[2618345.744] {Default Queue} discarded wl_surface#3271.enter(wl_output#3161) +[2618345.751] {Default Queue} discarded wl_surface#3271.enter(wl_output#3193) +[2618345.758] {Default Queue} discarded wl_surface#3271.enter(wl_output#3225) +[2618345.766] {Default Queue} discarded wl_surface#3271.enter(wl_output#3257) +[2618345.772] {Default Queue} discarded wl_surface#3271.enter(wl_output#3289) +[2618345.963] {Display Queue} wl_display#1.delete_id(3335) +[2618345.980] {Default Queue} wl_keyboard#3304.keymap(1, fd 524, 68213) +[2618345.989] {Default Queue} wl_keyboard#3304.enter(566, wl_surface#19, array[0]) +[2618345.997] {Default Queue} wl_keyboard#3304.modifiers(566, 0, 0, 16, 0) +[2618346.005] {Default Queue} discarded wl_shm#3311.format(875709016) +[2618346.012] {Default Queue} discarded wl_shm#3311.format(1) +[2618346.018] {Default Queue} discarded wl_shm#3311.format(0) +[2618346.025] {Default Queue} discarded wl_shm#3311.format(875708993) +[2618346.031] {Default Queue} discarded wl_shm#3312.format(875709016) +[2618346.038] {Default Queue} discarded wl_shm#3312.format(1) +[2618346.045] {Default Queue} discarded wl_shm#3312.format(0) +[2618346.052] {Default Queue} discarded wl_shm#3312.format(875708993) +[2618346.059] {Default Queue} discarded wl_shm#3313.format(875709016) +[2618346.067] {Default Queue} discarded wl_shm#3313.format(1) +[2618346.075] {Default Queue} discarded wl_shm#3313.format(0) +[2618346.082] {Default Queue} discarded wl_shm#3313.format(875708993) +[2618346.088] {Default Queue} wl_seat#3320.capabilities(7) +[2618346.095] {Default Queue} -> wl_seat#3320.get_keyboard(new id wl_keyboard#3336) +[2618346.103] {Default Queue} -> wl_seat#3320.get_pointer(new id wl_pointer#3337) +[2618346.120] {Default Queue} -> wl_data_device_manager#3316.get_data_device(new id wl_data_device#3338, wl_seat#3320) +[2618346.133] {Default Queue} -> zwp_primary_selection_device_manager_v1#3318.get_device(new id zwp_primary_selection_device_v1#3339, wl_seat#3320) +[2618346.148] {Default Queue} wl_output#3321.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618346.159] {Default Queue} wl_output#3321.mode(3, 1280, 800, 60000) +[2618346.167] {Default Queue} discarded wl_surface#2727.enter(wl_output#3321) +[2618346.173] {Default Queue} discarded wl_surface#3.enter(wl_output#3321) +[2618346.180] {Default Queue} discarded wl_surface#999.enter(wl_output#3321) +[2618346.186] {Default Queue} discarded wl_surface#3079.enter(wl_output#3321) +[2618346.193] {Default Queue} discarded wl_surface#1191.enter(wl_output#3321) +[2618346.199] {Default Queue} discarded wl_surface#1159.enter(wl_output#3321) +[2618346.206] {Default Queue} discarded wl_surface#1703.enter(wl_output#3321) +[2618346.212] {Default Queue} discarded wl_surface#2215.enter(wl_output#3321) +[2618346.219] {Default Queue} discarded wl_surface#423.enter(wl_output#3321) +[2618346.225] {Default Queue} discarded wl_surface#1447.enter(wl_output#3321) +[2618346.232] {Default Queue} discarded wl_surface#3047.enter(wl_output#3321) +[2618346.238] {Default Queue} discarded wl_surface#2023.enter(wl_output#3321) +[2618346.245] {Default Queue} discarded wl_surface#1639.enter(wl_output#3321) +[2618346.251] {Default Queue} discarded wl_surface#1319.enter(wl_output#3321) +[2618346.258] {Default Queue} discarded wl_surface#1127.enter(wl_output#3321) +[2618346.264] {Default Queue} discarded wl_surface#2151.enter(wl_output#3321) +[2618346.271] {Default Queue} discarded wl_surface#2375.enter(wl_output#3321) +[2618346.278] {Default Queue} discarded wl_surface#2695.enter(wl_output#3321) +[2618346.285] {Default Queue} discarded wl_surface#2919.enter(wl_output#3321) +[2618346.292] {Default Queue} discarded wl_surface#1063.enter(wl_output#3321) +[2618346.300] {Default Queue} discarded wl_surface#455.enter(wl_output#3321) +[2618346.307] {Default Queue} discarded wl_surface#1575.enter(wl_output#3321) +[2618346.315] {Default Queue} discarded wl_surface#1799.enter(wl_output#3321) +[2618346.323] {Default Queue} discarded wl_surface#1415.enter(wl_output#3321) +[2618346.330] {Default Queue} discarded wl_surface#2439.enter(wl_output#3321) +[2618346.337] {Default Queue} discarded wl_surface#2279.enter(wl_output#3321) +[2618346.344] {Default Queue} discarded wl_surface#1831.enter(wl_output#3321) +[2618346.351] {Default Queue} discarded wl_surface#903.enter(wl_output#3321) +[2618346.358] {Default Queue} discarded wl_surface#2663.enter(wl_output#3321) +[2618346.365] {Default Queue} discarded wl_surface#775.enter(wl_output#3321) +[2618346.370] {Default Queue} discarded wl_surface#1991.enter(wl_output#3321) +[2618346.376] {Default Queue} discarded wl_surface#1543.enter(wl_output#3321) +[2618346.381] {Default Queue} discarded wl_surface#135.enter(wl_output#3321) +[2618346.387] {Default Queue} discarded wl_surface#1287.enter(wl_output#3321) +[2618346.393] {Default Queue} discarded wl_surface#1031.enter(wl_output#3321) +[2618346.398] {Default Queue} discarded wl_surface#615.enter(wl_output#3321) +[2618346.404] {Default Queue} discarded wl_surface#3111.enter(wl_output#3321) +[2618346.410] {Default Queue} discarded wl_surface#231.enter(wl_output#3321) +[2618346.416] {Default Queue} discarded wl_surface#2343.enter(wl_output#3321) +[2618346.422] {Default Queue} discarded wl_surface#1863.enter(wl_output#3321) +[2618346.428] {Default Queue} discarded wl_surface#359.enter(wl_output#3321) +[2618346.434] {Default Queue} discarded wl_surface#2983.enter(wl_output#3321) +[2618346.440] {Default Queue} discarded wl_surface#583.enter(wl_output#3321) +[2618346.446] {Default Queue} discarded wl_surface#743.enter(wl_output#3321) +[2618346.451] {Default Queue} discarded wl_surface#3143.enter(wl_output#3321) +[2618346.457] {Default Queue} discarded wl_surface#2535.enter(wl_output#3321) +[2618346.463] {Default Queue} discarded wl_surface#967.enter(wl_output#3321) +[2618346.475] {Default Queue} discarded wl_surface#103.enter(wl_output#3321) +[2618346.484] {Default Queue} discarded wl_surface#3271.enter(wl_output#3321) +[2618346.490] {Default Queue} discarded wl_surface#327.enter(wl_output#3321) +[2618346.496] {Default Queue} discarded wl_surface#43.enter(wl_output#3321) +[2618346.502] {Default Queue} discarded wl_surface#2247.enter(wl_output#3321) +[2618346.507] {Default Queue} discarded wl_surface#807.enter(wl_output#3321) +[2618346.512] {Default Queue} discarded wl_surface#19.enter(wl_output#3321) +[2618346.518] {Default Queue} discarded wl_surface#2951.enter(wl_output#3321) +[2618346.523] {Default Queue} discarded wl_surface#1511.enter(wl_output#3321) +[2618346.529] {Default Queue} discarded wl_surface#199.enter(wl_output#3321) +[2618346.534] {Default Queue} discarded wl_surface#391.enter(wl_output#3321) +[2618346.539] {Default Queue} discarded wl_surface#935.enter(wl_output#3321) +[2618346.543] {Default Queue} discarded wl_surface#2823.enter(wl_output#3321) +[2618346.547] {Default Queue} discarded wl_surface#3015.enter(wl_output#3321) +[2618346.551] {Default Queue} discarded wl_surface#1671.enter(wl_output#3321) +[2618346.554] {Default Queue} discarded wl_surface#1351.enter(wl_output#3321) +[2618346.558] {Default Queue} discarded wl_surface#711.enter(wl_output#3321) +[2618346.562] {Default Queue} discarded wl_surface#3175.enter(wl_output#3321) +[2618346.566] {Default Queue} discarded wl_surface#1223.enter(wl_output#3321) +[2618346.570] {Default Queue} discarded wl_surface#1927.enter(wl_output#3321) +[2618346.574] {Default Queue} discarded wl_surface#871.enter(wl_output#3321) +[2618346.580] {Default Queue} discarded wl_surface#1895.enter(wl_output#3321) +[2618346.585] {Default Queue} discarded wl_surface#263.enter(wl_output#3321) +[2618346.590] {Default Queue} discarded wl_surface#551.enter(wl_output#3321) +[2618346.595] {Default Queue} discarded wl_surface#1735.enter(wl_output#3321) +[2618346.600] {Default Queue} discarded wl_surface#1479.enter(wl_output#3321) +[2618346.605] {Default Queue} discarded wl_surface#1772.enter(wl_output#3321) +[2618346.610] {Default Queue} discarded wl_surface#2599.enter(wl_output#3321) +[2618346.615] {Default Queue} discarded wl_surface#2631.enter(wl_output#3321) +[2618346.621] {Default Queue} discarded wl_surface#1959.enter(wl_output#3321) +[2618346.627] {Default Queue} discarded wl_surface#647.enter(wl_output#3321) +[2618346.632] {Default Queue} discarded wl_surface#2055.enter(wl_output#3321) +[2618346.636] {Default Queue} discarded wl_surface#2508.enter(wl_output#3321) +[2618346.640] {Default Queue} discarded wl_surface#71.enter(wl_output#3321) +[2618346.645] {Default Queue} discarded wl_surface#2759.enter(wl_output#3321) +[2618346.649] {Default Queue} discarded wl_surface#2791.enter(wl_output#3321) +[2618346.653] {Default Queue} discarded wl_surface#2887.enter(wl_output#3321) +[2618346.657] {Default Queue} discarded wl_surface#2183.enter(wl_output#3321) +[2618346.661] {Default Queue} discarded wl_surface#2567.enter(wl_output#3321) +[2618346.665] {Default Queue} discarded wl_surface#839.enter(wl_output#3321) +[2618346.669] {Default Queue} discarded wl_surface#1607.enter(wl_output#3321) +[2618346.673] {Default Queue} discarded wl_surface#1095.enter(wl_output#3321) +[2618346.677] {Default Queue} discarded wl_surface#1383.enter(wl_output#3321) +[2618346.681] {Default Queue} discarded wl_surface#487.enter(wl_output#3321) +[2618346.685] {Default Queue} discarded wl_surface#2311.enter(wl_output#3321) +[2618346.689] {Default Queue} discarded wl_surface#519.enter(wl_output#3321) +[2618346.693] {Default Queue} discarded wl_surface#3239.enter(wl_output#3321) +[2618346.697] {Default Queue} discarded wl_surface#2087.enter(wl_output#3321) +[2618346.701] {Default Queue} discarded wl_surface#2471.enter(wl_output#3321) +[2618346.705] {Default Queue} discarded wl_surface#295.enter(wl_output#3321) +[2618346.709] {Default Queue} discarded wl_surface#167.enter(wl_output#3321) +[2618346.713] {Default Queue} discarded wl_surface#1255.enter(wl_output#3321) +[2618346.717] {Default Queue} discarded wl_surface#2855.enter(wl_output#3321) +[2618346.724] {Default Queue} discarded wl_surface#679.enter(wl_output#3321) +[2618346.730] {Default Queue} discarded wl_surface#2407.enter(wl_output#3321) +[2618346.735] {Default Queue} discarded wl_surface#3207.enter(wl_output#3321) +[2618346.739] {Default Queue} discarded wl_surface#2119.enter(wl_output#3321) +[2618346.743] {Default Queue} wl_registry#3334.global(1, "wl_compositor", 6) +[2618346.750] {Default Queue} -> wl_registry#3334.bind(1, "wl_compositor", 1, new id [unknown]#3340) +[2618346.755] {Default Queue} wl_registry#3334.global(2, "wl_subcompositor", 1) +[2618346.760] {Default Queue} -> wl_registry#3334.bind(2, "wl_subcompositor", 1, new id [unknown]#3341) +[2618346.765] {Default Queue} wl_registry#3334.global(3, "xdg_wm_base", 6) +[2618346.769] {Default Queue} -> wl_registry#3334.bind(3, "xdg_wm_base", 1, new id [unknown]#3342) +[2618346.773] {Default Queue} wl_registry#3334.global(6, "zwlr_layer_shell_v1", 5) +[2618346.778] {Default Queue} wl_registry#3334.global(7, "ext_session_lock_manager_v1", 1) +[2618346.782] {Default Queue} wl_registry#3334.global(8, "wl_shm", 2) +[2618346.787] {Default Queue} -> wl_registry#3334.bind(8, "wl_shm", 1, new id [unknown]#3343) +[2618346.798] {Default Queue} -> wl_registry#3334.bind(8, "wl_shm", 1, new id [unknown]#3344) +[2618346.806] {Default Queue} -> wl_registry#3334.bind(8, "wl_shm", 1, new id [unknown]#3345) +[2618346.810] {Default Queue} wl_registry#3334.global(9, "zxdg_output_manager_v1", 3) +[2618346.815] {Default Queue} wl_registry#3334.global(10, "wp_fractional_scale_manager_v1", 1) +[2618346.819] {Default Queue} wl_registry#3334.global(11, "zwp_tablet_manager_v2", 1) +[2618346.823] {Default Queue} wl_registry#3334.global(12, "zwp_pointer_gestures_v1", 3) +[2618346.827] {Default Queue} wl_registry#3334.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618346.832] {Default Queue} -> wl_registry#3334.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3346) +[2618346.836] {Default Queue} wl_registry#3334.global(14, "zwp_pointer_constraints_v1", 1) +[2618346.841] {Default Queue} -> wl_registry#3334.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3347) +[2618346.846] {Default Queue} wl_registry#3334.global(15, "ext_idle_notifier_v1", 2) +[2618346.850] {Default Queue} wl_registry#3334.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618346.856] {Default Queue} wl_registry#3334.global(17, "wl_data_device_manager", 3) +[2618346.862] {Default Queue} -> wl_registry#3334.bind(17, "wl_data_device_manager", 2, new id [unknown]#3348) +[2618346.867] {Default Queue} -> wl_data_device_manager#3348.create_data_source(new id wl_data_source#3349) +[2618346.879] {Default Queue} -> wl_data_source#3349.offer("text/plain") +[2618346.883] {Default Queue} -> wl_data_source#3349.offer("text/plain;charset=utf-8") +[2618346.887] {Default Queue} -> wl_data_source#3349.offer("TEXT") +[2618346.891] {Default Queue} -> wl_data_source#3349.offer("STRING") +[2618346.895] {Default Queue} -> wl_data_source#3349.offer("UTF8_STRING") +[2618346.901] {Default Queue} wl_registry#3334.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618346.905] {Default Queue} -> wl_registry#3334.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3350) +[2618346.913] {Default Queue} -> zwp_primary_selection_device_manager_v1#3350.create_source(new id zwp_primary_selection_source_v1#3351) +[2618346.921] {Default Queue} -> zwp_primary_selection_source_v1#3351.offer("text/plain") +[2618346.925] {Default Queue} -> zwp_primary_selection_source_v1#3351.offer("text/plain;charset=utf-8") +[2618346.929] {Default Queue} -> zwp_primary_selection_source_v1#3351.offer("TEXT") +[2618346.933] {Default Queue} -> zwp_primary_selection_source_v1#3351.offer("STRING") +[2618346.937] {Default Queue} -> zwp_primary_selection_source_v1#3351.offer("UTF8_STRING") +[2618346.941] {Default Queue} wl_registry#3334.global(19, "zwlr_data_control_manager_v1", 2) +[2618346.946] {Default Queue} wl_registry#3334.global(20, "ext_data_control_manager_v1", 1) +[2618346.950] {Default Queue} wl_registry#3334.global(21, "wp_presentation", 2) +[2618346.957] {Default Queue} wl_registry#3334.global(22, "wp_security_context_manager_v1", 1) +[2618346.963] {Default Queue} wl_registry#3334.global(23, "zwp_text_input_manager_v3", 1) +[2618346.968] {Default Queue} wl_registry#3334.global(24, "zwp_input_method_manager_v2", 1) +[2618346.973] {Default Queue} wl_registry#3334.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618346.977] {Default Queue} wl_registry#3334.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618346.981] {Default Queue} wl_registry#3334.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618346.985] {Default Queue} wl_registry#3334.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618346.990] {Default Queue} wl_registry#3334.global(29, "ext_workspace_manager_v1", 1) +[2618346.994] {Default Queue} wl_registry#3334.global(30, "zwlr_output_manager_v1", 4) +[2618346.998] {Default Queue} wl_registry#3334.global(31, "zwlr_screencopy_manager_v1", 3) +[2618347.003] {Default Queue} wl_registry#3334.global(32, "wp_viewporter", 1) +[2618347.007] {Default Queue} wl_registry#3334.global(33, "zxdg_exporter_v2", 1) +[2618347.011] {Default Queue} wl_registry#3334.global(34, "zxdg_importer_v2", 1) +[2618347.015] {Default Queue} wl_registry#3334.global(36, "xdg_activation_v1", 1) +[2618347.019] {Default Queue} wl_registry#3334.global(37, "mutter_x11_interop", 1) +[2618347.024] {Default Queue} wl_registry#3334.global(38, "wl_seat", 9) +[2618347.028] {Default Queue} -> wl_registry#3334.bind(38, "wl_seat", 1, new id [unknown]#3352) +[2618347.033] {Default Queue} wl_registry#3334.global(39, "wp_cursor_shape_manager_v1", 2) +[2618347.037] {Default Queue} wl_registry#3334.global(40, "wl_output", 4) +[2618347.042] {Default Queue} -> wl_registry#3334.bind(40, "wl_output", 1, new id [unknown]#3353) +[2618347.046] {Default Queue} wl_callback#3335.done(0) +[2618347.051] {Default Queue} discarded wl_surface#3303.enter(wl_output#18) +[2618347.055] {Default Queue} discarded wl_surface#3303.enter(wl_output#57) +[2618347.059] {Default Queue} discarded wl_surface#3303.enter(wl_output#89) +[2618347.063] {Default Queue} discarded wl_surface#3303.enter(wl_output#121) +[2618347.067] {Default Queue} discarded wl_surface#3303.enter(wl_output#153) +[2618347.071] {Default Queue} discarded wl_surface#3303.enter(wl_output#185) +[2618347.075] {Default Queue} discarded wl_surface#3303.enter(wl_output#217) +[2618347.079] {Default Queue} discarded wl_surface#3303.enter(wl_output#249) +[2618347.083] {Default Queue} discarded wl_surface#3303.enter(wl_output#281) +[2618347.087] {Default Queue} discarded wl_surface#3303.enter(wl_output#313) +[2618347.091] {Default Queue} discarded wl_surface#3303.enter(wl_output#345) +[2618347.096] {Default Queue} discarded wl_surface#3303.enter(wl_output#377) +[2618347.099] {Default Queue} discarded wl_surface#3303.enter(wl_output#409) +[2618347.103] {Default Queue} discarded wl_surface#3303.enter(wl_output#441) +[2618347.107] {Default Queue} discarded wl_surface#3303.enter(wl_output#473) +[2618347.111] {Default Queue} discarded wl_surface#3303.enter(wl_output#505) +[2618347.115] {Default Queue} discarded wl_surface#3303.enter(wl_output#537) +[2618347.119] {Default Queue} discarded wl_surface#3303.enter(wl_output#569) +[2618347.123] {Default Queue} discarded wl_surface#3303.enter(wl_output#601) +[2618347.127] {Default Queue} discarded wl_surface#3303.enter(wl_output#633) +[2618347.131] {Default Queue} discarded wl_surface#3303.enter(wl_output#665) +[2618347.135] {Default Queue} discarded wl_surface#3303.enter(wl_output#697) +[2618347.138] {Default Queue} discarded wl_surface#3303.enter(wl_output#729) +[2618347.142] {Default Queue} discarded wl_surface#3303.enter(wl_output#761) +[2618347.146] {Default Queue} discarded wl_surface#3303.enter(wl_output#793) +[2618347.150] {Default Queue} discarded wl_surface#3303.enter(wl_output#825) +[2618347.154] {Default Queue} discarded wl_surface#3303.enter(wl_output#857) +[2618347.158] {Default Queue} discarded wl_surface#3303.enter(wl_output#889) +[2618347.162] {Default Queue} discarded wl_surface#3303.enter(wl_output#921) +[2618347.169] {Default Queue} discarded wl_surface#3303.enter(wl_output#953) +[2618347.174] {Default Queue} discarded wl_surface#3303.enter(wl_output#985) +[2618347.178] {Default Queue} discarded wl_surface#3303.enter(wl_output#1017) +[2618347.182] {Default Queue} discarded wl_surface#3303.enter(wl_output#1049) +[2618347.186] {Default Queue} discarded wl_surface#3303.enter(wl_output#1081) +[2618347.190] {Default Queue} discarded wl_surface#3303.enter(wl_output#1113) +[2618347.194] {Default Queue} discarded wl_surface#3303.enter(wl_output#1145) +[2618347.199] {Default Queue} discarded wl_surface#3303.enter(wl_output#1177) +[2618347.203] {Default Queue} discarded wl_surface#3303.enter(wl_output#1209) +[2618347.208] {Default Queue} discarded wl_surface#3303.enter(wl_output#1241) +[2618347.212] {Default Queue} discarded wl_surface#3303.enter(wl_output#1273) +[2618347.215] {Default Queue} discarded wl_surface#3303.enter(wl_output#1305) +[2618347.219] {Default Queue} discarded wl_surface#3303.enter(wl_output#1337) +[2618347.223] {Default Queue} discarded wl_surface#3303.enter(wl_output#1369) +[2618347.227] {Default Queue} discarded wl_surface#3303.enter(wl_output#1401) +[2618347.231] {Default Queue} discarded wl_surface#3303.enter(wl_output#1433) +[2618347.235] {Default Queue} discarded wl_surface#3303.enter(wl_output#1465) +[2618347.239] {Default Queue} discarded wl_surface#3303.enter(wl_output#1497) +[2618347.242] {Default Queue} discarded wl_surface#3303.enter(wl_output#1529) +[2618347.247] {Default Queue} discarded wl_surface#3303.enter(wl_output#1561) +[2618347.251] {Default Queue} discarded wl_surface#3303.enter(wl_output#1593) +[2618347.255] {Default Queue} discarded wl_surface#3303.enter(wl_output#1625) +[2618347.258] {Default Queue} discarded wl_surface#3303.enter(wl_output#1657) +[2618347.262] {Default Queue} discarded wl_surface#3303.enter(wl_output#1689) +[2618347.266] {Default Queue} discarded wl_surface#3303.enter(wl_output#1721) +[2618347.270] {Default Queue} discarded wl_surface#3303.enter(wl_output#1753) +[2618347.274] {Default Queue} discarded wl_surface#3303.enter(wl_output#1785) +[2618347.278] {Default Queue} discarded wl_surface#3303.enter(wl_output#1817) +[2618347.282] {Default Queue} discarded wl_surface#3303.enter(wl_output#1849) +[2618347.286] {Default Queue} discarded wl_surface#3303.enter(wl_output#1881) +[2618347.290] {Default Queue} discarded wl_surface#3303.enter(wl_output#1913) +[2618347.294] {Default Queue} discarded wl_surface#3303.enter(wl_output#1945) +[2618347.298] {Default Queue} discarded wl_surface#3303.enter(wl_output#1977) +[2618347.302] {Default Queue} discarded wl_surface#3303.enter(wl_output#2009) +[2618347.306] {Default Queue} discarded wl_surface#3303.enter(wl_output#2041) +[2618347.310] {Default Queue} discarded wl_surface#3303.enter(wl_output#2073) +[2618347.314] {Default Queue} discarded wl_surface#3303.enter(wl_output#2105) +[2618347.318] {Default Queue} discarded wl_surface#3303.enter(wl_output#2137) +[2618347.321] {Default Queue} discarded wl_surface#3303.enter(wl_output#2169) +[2618347.325] {Default Queue} discarded wl_surface#3303.enter(wl_output#2201) +[2618347.329] {Default Queue} discarded wl_surface#3303.enter(wl_output#2233) +[2618347.333] {Default Queue} discarded wl_surface#3303.enter(wl_output#2265) +[2618347.337] {Default Queue} discarded wl_surface#3303.enter(wl_output#2297) +[2618347.342] {Default Queue} -> wl_compositor#3276.create_surface(new id wl_surface#3335) +[2618347.346] {Default Queue} -> wl_subcompositor#3341.get_subsurface(new id wl_subsurface#3354, wl_surface#3335, wl_surface#3271) +[2618347.354] {Default Queue} -> wl_subsurface#3354.set_desync() +[2618347.358] {Default Queue} -> wl_subsurface#3354.set_position(0, 0) +[2618347.363] {Default Queue} -> wl_subsurface#3354.place_above(wl_surface#3271) +[2618347.404] {Default Queue} -> wl_shm#3343.create_pool(new id wl_shm_pool#3355, fd 529, 16) +[2618347.412] {Default Queue} -> wl_shm#3343.create_pool(new id wl_shm_pool#3356, fd 530, 16) +[2618347.416] {Default Queue} -> wl_shm_pool#3355.create_buffer(new id wl_buffer#3357, 0, 2, 2, 8, 0) +[2618347.424] {Default Queue} -> wl_shm_pool#3356.create_buffer(new id wl_buffer#3358, 0, 2, 2, 8, 0) +[2618347.434] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) +[2618347.438] {Default Queue} -> wl_surface#3335.commit() +[2618347.444] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) +[2618347.448] {Default Queue} -> wl_surface#3335.commit() +[2618347.452] {Default Queue} -> wl_compositor#3340.create_region(new id wl_region#3359) +[2618347.456] {Default Queue} -> wl_compositor#3340.create_region(new id wl_region#3360) +[2618347.460] {Default Queue} -> wl_region#3359.subtract(0, 0, 2, 2) +[2618347.465] {Default Queue} -> wl_region#3359.add(0, 0, 0, 0) +[2618347.469] {Default Queue} -> wl_surface#3335.set_opaque_region(wl_region#3360) +[2618347.473] {Default Queue} -> wl_surface#3335.set_input_region(wl_region#3359) +[2618347.478] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) +[2618347.482] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) +[2618347.489] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) +[2618347.494] {Default Queue} -> wl_surface#3335.commit() +[2618347.528] {Default Queue} -> wl_shm#3345.create_pool(new id wl_shm_pool#3361, fd 533, 640) +[2618347.534] {Default Queue} -> wl_shm#3345.create_pool(new id wl_shm_pool#3362, fd 534, 640) +[2618347.538] {Default Queue} -> wl_shm_pool#3361.create_buffer(new id wl_buffer#3363, 0, 10, 16, 40, 0) +[2618347.543] {Default Queue} -> wl_shm_pool#3362.create_buffer(new id wl_buffer#3364, 0, 10, 16, 40, 0) +[2618347.550] {Default Queue} -> wl_compositor#3340.create_surface(new id wl_surface#3365) +[2618347.555] {Default Queue} -> wl_surface#3365.attach(wl_buffer#3363, 0, 0) +[2618347.559] {Default Queue} -> wl_surface#3365.commit() +[2618347.564] {Default Queue} -> wl_surface#3365.attach(wl_buffer#3363, 0, 0) +[2618347.568] {Default Queue} -> wl_surface#3365.commit() +[2618347.574] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) +[2618347.581] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3366) +[2618347.585] {Default Queue} -> wl_display#1.sync(new id wl_callback#3367) +[2618350.504] {Default Queue} discarded wl_surface#3303.enter(wl_output#2329) +[2618350.518] {Default Queue} discarded wl_surface#3303.enter(wl_output#2361) +[2618350.525] {Default Queue} discarded wl_surface#3303.enter(wl_output#2393) +[2618350.532] {Default Queue} discarded wl_surface#3303.enter(wl_output#2425) +[2618350.539] {Default Queue} discarded wl_surface#3303.enter(wl_output#2457) +[2618350.545] {Default Queue} discarded wl_surface#3303.enter(wl_output#2489) +[2618350.552] {Default Queue} discarded wl_surface#3303.enter(wl_output#2521) +[2618350.559] {Default Queue} discarded wl_surface#3303.enter(wl_output#2553) +[2618350.565] {Default Queue} discarded wl_surface#3303.enter(wl_output#2585) +[2618350.572] {Default Queue} discarded wl_surface#3303.enter(wl_output#2617) +[2618350.579] {Default Queue} discarded wl_surface#3303.enter(wl_output#2649) +[2618350.586] {Default Queue} discarded wl_surface#3303.enter(wl_output#2681) +[2618350.592] {Default Queue} discarded wl_surface#3303.enter(wl_output#2713) +[2618350.599] {Default Queue} discarded wl_surface#3303.enter(wl_output#2745) +[2618350.606] {Default Queue} discarded wl_surface#3303.enter(wl_output#2777) +[2618350.613] {Default Queue} discarded wl_surface#3303.enter(wl_output#2809) +[2618350.620] {Default Queue} discarded wl_surface#3303.enter(wl_output#2841) +[2618350.626] {Default Queue} discarded wl_surface#3303.enter(wl_output#2873) +[2618350.632] {Default Queue} discarded wl_surface#3303.enter(wl_output#2905) +[2618350.639] {Default Queue} discarded wl_surface#3303.enter(wl_output#2937) +[2618350.645] {Default Queue} discarded wl_surface#3303.enter(wl_output#2969) +[2618350.652] {Default Queue} discarded wl_surface#3303.enter(wl_output#3001) +[2618350.658] {Default Queue} discarded wl_surface#3303.enter(wl_output#3033) +[2618350.665] {Default Queue} discarded wl_surface#3303.enter(wl_output#3065) +[2618350.672] {Default Queue} discarded wl_surface#3303.enter(wl_output#3097) +[2618350.686] {Default Queue} discarded wl_surface#3303.enter(wl_output#3129) +[2618350.697] {Default Queue} discarded wl_surface#3303.enter(wl_output#3161) +[2618350.704] {Default Queue} discarded wl_surface#3303.enter(wl_output#3193) +[2618350.710] {Default Queue} discarded wl_surface#3303.enter(wl_output#3225) +[2618350.717] {Default Queue} discarded wl_surface#3303.enter(wl_output#3257) +[2618350.724] {Default Queue} discarded wl_surface#3303.enter(wl_output#3289) +[2618350.731] {Default Queue} discarded wl_surface#3303.enter(wl_output#3321) +[2618350.915] {Display Queue} wl_display#1.delete_id(3367) +[2618350.930] {Default Queue} wl_keyboard#3336.keymap(1, fd 529, 68213) +[2618350.939] {Default Queue} wl_keyboard#3336.enter(566, wl_surface#19, array[0]) +[2618350.948] {Default Queue} wl_keyboard#3336.modifiers(566, 0, 0, 16, 0) +[2618350.959] {Default Queue} discarded wl_shm#3343.format(875709016) +[2618350.965] {Default Queue} discarded wl_shm#3343.format(1) +[2618350.972] {Default Queue} discarded wl_shm#3343.format(0) +[2618350.978] {Default Queue} discarded wl_shm#3343.format(875708993) +[2618350.984] {Default Queue} discarded wl_shm#3344.format(875709016) +[2618350.991] {Default Queue} discarded wl_shm#3344.format(1) +[2618350.998] {Default Queue} discarded wl_shm#3344.format(0) +[2618351.004] {Default Queue} discarded wl_shm#3344.format(875708993) +[2618351.010] {Default Queue} discarded wl_shm#3345.format(875709016) +[2618351.017] {Default Queue} discarded wl_shm#3345.format(1) +[2618351.024] {Default Queue} discarded wl_shm#3345.format(0) +[2618351.031] {Default Queue} discarded wl_shm#3345.format(875708993) +[2618351.038] {Default Queue} wl_seat#3352.capabilities(7) +[2618351.047] {Default Queue} -> wl_seat#3352.get_keyboard(new id wl_keyboard#3368) +[2618351.054] {Default Queue} -> wl_seat#3352.get_pointer(new id wl_pointer#3369) +[2618351.062] {Default Queue} -> wl_data_device_manager#3348.get_data_device(new id wl_data_device#3370, wl_seat#3352) +[2618351.070] {Default Queue} -> zwp_primary_selection_device_manager_v1#3350.get_device(new id zwp_primary_selection_device_v1#3371, wl_seat#3352) +[2618351.085] {Default Queue} wl_output#3353.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618351.093] {Default Queue} wl_output#3353.mode(3, 1280, 800, 60000) +[2618351.101] {Default Queue} discarded wl_surface#2727.enter(wl_output#3353) +[2618351.108] {Default Queue} discarded wl_surface#3.enter(wl_output#3353) +[2618351.116] {Default Queue} discarded wl_surface#999.enter(wl_output#3353) +[2618351.123] {Default Queue} discarded wl_surface#3079.enter(wl_output#3353) +[2618351.130] {Default Queue} discarded wl_surface#1191.enter(wl_output#3353) +[2618351.137] {Default Queue} discarded wl_surface#1159.enter(wl_output#3353) +[2618351.144] {Default Queue} discarded wl_surface#1703.enter(wl_output#3353) +[2618351.150] {Default Queue} discarded wl_surface#2215.enter(wl_output#3353) +[2618351.157] {Default Queue} discarded wl_surface#423.enter(wl_output#3353) +[2618351.163] {Default Queue} discarded wl_surface#1447.enter(wl_output#3353) +[2618351.170] {Default Queue} discarded wl_surface#3047.enter(wl_output#3353) +[2618351.176] {Default Queue} discarded wl_surface#2023.enter(wl_output#3353) +[2618351.183] {Default Queue} discarded wl_surface#1639.enter(wl_output#3353) +[2618351.189] {Default Queue} discarded wl_surface#1319.enter(wl_output#3353) +[2618351.196] {Default Queue} discarded wl_surface#1127.enter(wl_output#3353) +[2618351.202] {Default Queue} discarded wl_surface#2151.enter(wl_output#3353) +[2618351.209] {Default Queue} discarded wl_surface#2375.enter(wl_output#3353) +[2618351.216] {Default Queue} discarded wl_surface#2695.enter(wl_output#3353) +[2618351.222] {Default Queue} discarded wl_surface#2919.enter(wl_output#3353) +[2618351.229] {Default Queue} discarded wl_surface#1063.enter(wl_output#3353) +[2618351.235] {Default Queue} discarded wl_surface#455.enter(wl_output#3353) +[2618351.241] {Default Queue} discarded wl_surface#1575.enter(wl_output#3353) +[2618351.248] {Default Queue} discarded wl_surface#1799.enter(wl_output#3353) +[2618351.255] {Default Queue} discarded wl_surface#1415.enter(wl_output#3353) +[2618351.270] {Default Queue} discarded wl_surface#2439.enter(wl_output#3353) +[2618351.282] {Default Queue} discarded wl_surface#2279.enter(wl_output#3353) +[2618351.289] {Default Queue} discarded wl_surface#1831.enter(wl_output#3353) +[2618351.296] {Default Queue} discarded wl_surface#903.enter(wl_output#3353) +[2618351.303] {Default Queue} discarded wl_surface#2663.enter(wl_output#3353) +[2618351.311] {Default Queue} discarded wl_surface#775.enter(wl_output#3353) +[2618351.318] {Default Queue} discarded wl_surface#1991.enter(wl_output#3353) +[2618351.325] {Default Queue} discarded wl_surface#1543.enter(wl_output#3353) +[2618351.333] {Default Queue} discarded wl_surface#135.enter(wl_output#3353) +[2618351.340] {Default Queue} discarded wl_surface#1287.enter(wl_output#3353) +[2618351.348] {Default Queue} discarded wl_surface#1031.enter(wl_output#3353) +[2618351.355] {Default Queue} discarded wl_surface#615.enter(wl_output#3353) +[2618351.362] {Default Queue} discarded wl_surface#3111.enter(wl_output#3353) +[2618351.370] {Default Queue} discarded wl_surface#231.enter(wl_output#3353) +[2618351.377] {Default Queue} discarded wl_surface#2343.enter(wl_output#3353) +[2618351.384] {Default Queue} discarded wl_surface#1863.enter(wl_output#3353) +[2618351.391] {Default Queue} discarded wl_surface#359.enter(wl_output#3353) +[2618351.397] {Default Queue} discarded wl_surface#2983.enter(wl_output#3353) +[2618351.403] {Default Queue} discarded wl_surface#583.enter(wl_output#3353) +[2618351.409] {Default Queue} discarded wl_surface#743.enter(wl_output#3353) +[2618351.414] {Default Queue} discarded wl_surface#3143.enter(wl_output#3353) +[2618351.420] {Default Queue} discarded wl_surface#2535.enter(wl_output#3353) +[2618351.426] {Default Queue} discarded wl_surface#967.enter(wl_output#3353) +[2618351.432] {Default Queue} discarded wl_surface#103.enter(wl_output#3353) +[2618351.438] {Default Queue} discarded wl_surface#3271.enter(wl_output#3353) +[2618351.443] {Default Queue} discarded wl_surface#327.enter(wl_output#3353) +[2618351.449] {Default Queue} discarded wl_surface#43.enter(wl_output#3353) +[2618351.455] {Default Queue} discarded wl_surface#2247.enter(wl_output#3353) +[2618351.461] {Default Queue} discarded wl_surface#807.enter(wl_output#3353) +[2618351.467] {Default Queue} discarded wl_surface#19.enter(wl_output#3353) +[2618351.472] {Default Queue} discarded wl_surface#2951.enter(wl_output#3353) +[2618351.478] {Default Queue} discarded wl_surface#1511.enter(wl_output#3353) +[2618351.484] {Default Queue} discarded wl_surface#199.enter(wl_output#3353) +[2618351.489] {Default Queue} discarded wl_surface#391.enter(wl_output#3353) +[2618351.495] {Default Queue} discarded wl_surface#935.enter(wl_output#3353) +[2618351.500] {Default Queue} discarded wl_surface#2823.enter(wl_output#3353) +[2618351.505] {Default Queue} discarded wl_surface#3015.enter(wl_output#3353) +[2618351.511] {Default Queue} discarded wl_surface#1671.enter(wl_output#3353) +[2618351.516] {Default Queue} discarded wl_surface#1351.enter(wl_output#3353) +[2618351.521] {Default Queue} discarded wl_surface#711.enter(wl_output#3353) +[2618351.525] {Default Queue} discarded wl_surface#3175.enter(wl_output#3353) +[2618351.529] {Default Queue} discarded wl_surface#1223.enter(wl_output#3353) +[2618351.533] {Default Queue} discarded wl_surface#1927.enter(wl_output#3353) +[2618351.537] {Default Queue} discarded wl_surface#871.enter(wl_output#3353) +[2618351.541] {Default Queue} discarded wl_surface#1895.enter(wl_output#3353) +[2618351.545] {Default Queue} discarded wl_surface#263.enter(wl_output#3353) +[2618351.549] {Default Queue} discarded wl_surface#551.enter(wl_output#3353) +[2618351.555] {Default Queue} discarded wl_surface#1735.enter(wl_output#3353) +[2618351.560] {Default Queue} discarded wl_surface#1479.enter(wl_output#3353) +[2618351.565] {Default Queue} discarded wl_surface#1772.enter(wl_output#3353) +[2618351.570] {Default Queue} discarded wl_surface#2599.enter(wl_output#3353) +[2618351.575] {Default Queue} discarded wl_surface#2631.enter(wl_output#3353) +[2618351.584] {Default Queue} discarded wl_surface#1959.enter(wl_output#3353) +[2618351.592] {Default Queue} discarded wl_surface#647.enter(wl_output#3353) +[2618351.598] {Default Queue} discarded wl_surface#2055.enter(wl_output#3353) +[2618351.603] {Default Queue} discarded wl_surface#2508.enter(wl_output#3353) +[2618351.607] {Default Queue} discarded wl_surface#71.enter(wl_output#3353) +[2618351.611] {Default Queue} discarded wl_surface#2759.enter(wl_output#3353) +[2618351.615] {Default Queue} discarded wl_surface#2791.enter(wl_output#3353) +[2618351.620] {Default Queue} discarded wl_surface#2887.enter(wl_output#3353) +[2618351.624] {Default Queue} discarded wl_surface#2183.enter(wl_output#3353) +[2618351.628] {Default Queue} discarded wl_surface#2567.enter(wl_output#3353) +[2618351.631] {Default Queue} discarded wl_surface#839.enter(wl_output#3353) +[2618351.635] {Default Queue} discarded wl_surface#1607.enter(wl_output#3353) +[2618351.639] {Default Queue} discarded wl_surface#1095.enter(wl_output#3353) +[2618351.643] {Default Queue} discarded wl_surface#1383.enter(wl_output#3353) +[2618351.647] {Default Queue} discarded wl_surface#487.enter(wl_output#3353) +[2618351.651] {Default Queue} discarded wl_surface#2311.enter(wl_output#3353) +[2618351.655] {Default Queue} discarded wl_surface#519.enter(wl_output#3353) +[2618351.659] {Default Queue} discarded wl_surface#3239.enter(wl_output#3353) +[2618351.663] {Default Queue} discarded wl_surface#2087.enter(wl_output#3353) +[2618351.667] {Default Queue} discarded wl_surface#2471.enter(wl_output#3353) +[2618351.670] {Default Queue} discarded wl_surface#295.enter(wl_output#3353) +[2618351.674] {Default Queue} discarded wl_surface#167.enter(wl_output#3353) +[2618351.678] {Default Queue} discarded wl_surface#1255.enter(wl_output#3353) +[2618351.682] {Default Queue} discarded wl_surface#2855.enter(wl_output#3353) +[2618351.686] {Default Queue} discarded wl_surface#3303.enter(wl_output#3353) +[2618351.690] {Default Queue} discarded wl_surface#679.enter(wl_output#3353) +[2618351.694] {Default Queue} discarded wl_surface#2407.enter(wl_output#3353) +[2618351.699] {Default Queue} discarded wl_surface#3207.enter(wl_output#3353) +[2618351.702] {Default Queue} discarded wl_surface#2119.enter(wl_output#3353) +[2618351.707] {Default Queue} wl_registry#3366.global(1, "wl_compositor", 6) +[2618351.713] {Default Queue} -> wl_registry#3366.bind(1, "wl_compositor", 1, new id [unknown]#3372) +[2618351.718] {Default Queue} wl_registry#3366.global(2, "wl_subcompositor", 1) +[2618351.723] {Default Queue} -> wl_registry#3366.bind(2, "wl_subcompositor", 1, new id [unknown]#3373) +[2618351.727] {Default Queue} wl_registry#3366.global(3, "xdg_wm_base", 6) +[2618351.732] {Default Queue} -> wl_registry#3366.bind(3, "xdg_wm_base", 1, new id [unknown]#3374) +[2618351.736] {Default Queue} wl_registry#3366.global(6, "zwlr_layer_shell_v1", 5) +[2618351.741] {Default Queue} wl_registry#3366.global(7, "ext_session_lock_manager_v1", 1) +[2618351.745] {Default Queue} wl_registry#3366.global(8, "wl_shm", 2) +[2618351.750] {Default Queue} -> wl_registry#3366.bind(8, "wl_shm", 1, new id [unknown]#3375) +[2618351.754] {Default Queue} -> wl_registry#3366.bind(8, "wl_shm", 1, new id [unknown]#3376) +[2618351.759] {Default Queue} -> wl_registry#3366.bind(8, "wl_shm", 1, new id [unknown]#3377) +[2618351.763] {Default Queue} wl_registry#3366.global(9, "zxdg_output_manager_v1", 3) +[2618351.767] {Default Queue} wl_registry#3366.global(10, "wp_fractional_scale_manager_v1", 1) +[2618351.772] {Default Queue} wl_registry#3366.global(11, "zwp_tablet_manager_v2", 1) +[2618351.776] {Default Queue} wl_registry#3366.global(12, "zwp_pointer_gestures_v1", 3) +[2618351.781] {Default Queue} wl_registry#3366.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618351.785] {Default Queue} -> wl_registry#3366.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3378) +[2618351.790] {Default Queue} wl_registry#3366.global(14, "zwp_pointer_constraints_v1", 1) +[2618351.794] {Default Queue} -> wl_registry#3366.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3379) +[2618351.802] {Default Queue} wl_registry#3366.global(15, "ext_idle_notifier_v1", 2) +[2618351.808] {Default Queue} wl_registry#3366.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618351.813] {Default Queue} wl_registry#3366.global(17, "wl_data_device_manager", 3) +[2618351.818] {Default Queue} -> wl_registry#3366.bind(17, "wl_data_device_manager", 2, new id [unknown]#3380) +[2618351.823] {Default Queue} -> wl_data_device_manager#3380.create_data_source(new id wl_data_source#3381) +[2618351.827] {Default Queue} -> wl_data_source#3381.offer("text/plain") +[2618351.831] {Default Queue} -> wl_data_source#3381.offer("text/plain;charset=utf-8") +[2618351.835] {Default Queue} -> wl_data_source#3381.offer("TEXT") +[2618351.840] {Default Queue} -> wl_data_source#3381.offer("STRING") +[2618351.844] {Default Queue} -> wl_data_source#3381.offer("UTF8_STRING") +[2618351.848] {Default Queue} wl_registry#3366.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618351.853] {Default Queue} -> wl_registry#3366.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3382) +[2618351.862] {Default Queue} -> zwp_primary_selection_device_manager_v1#3382.create_source(new id zwp_primary_selection_source_v1#3383) +[2618351.870] {Default Queue} -> zwp_primary_selection_source_v1#3383.offer("text/plain") +[2618351.879] {Default Queue} -> zwp_primary_selection_source_v1#3383.offer("text/plain;charset=utf-8") +[2618351.883] {Default Queue} -> zwp_primary_selection_source_v1#3383.offer("TEXT") +[2618351.887] {Default Queue} -> zwp_primary_selection_source_v1#3383.offer("STRING") +[2618351.891] {Default Queue} -> zwp_primary_selection_source_v1#3383.offer("UTF8_STRING") +[2618351.895] {Default Queue} wl_registry#3366.global(19, "zwlr_data_control_manager_v1", 2) +[2618351.903] {Default Queue} wl_registry#3366.global(20, "ext_data_control_manager_v1", 1) +[2618351.908] {Default Queue} wl_registry#3366.global(21, "wp_presentation", 2) +[2618351.912] {Default Queue} wl_registry#3366.global(22, "wp_security_context_manager_v1", 1) +[2618351.917] {Default Queue} wl_registry#3366.global(23, "zwp_text_input_manager_v3", 1) +[2618351.921] {Default Queue} wl_registry#3366.global(24, "zwp_input_method_manager_v2", 1) +[2618351.926] {Default Queue} wl_registry#3366.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618351.930] {Default Queue} wl_registry#3366.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618351.935] {Default Queue} wl_registry#3366.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618351.939] {Default Queue} wl_registry#3366.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618351.943] {Default Queue} wl_registry#3366.global(29, "ext_workspace_manager_v1", 1) +[2618351.948] {Default Queue} wl_registry#3366.global(30, "zwlr_output_manager_v1", 4) +[2618351.952] {Default Queue} wl_registry#3366.global(31, "zwlr_screencopy_manager_v1", 3) +[2618351.956] {Default Queue} wl_registry#3366.global(32, "wp_viewporter", 1) +[2618351.961] {Default Queue} wl_registry#3366.global(33, "zxdg_exporter_v2", 1) +[2618351.965] {Default Queue} wl_registry#3366.global(34, "zxdg_importer_v2", 1) +[2618351.969] {Default Queue} wl_registry#3366.global(36, "xdg_activation_v1", 1) +[2618351.974] {Default Queue} wl_registry#3366.global(37, "mutter_x11_interop", 1) +[2618351.978] {Default Queue} wl_registry#3366.global(38, "wl_seat", 9) +[2618351.982] {Default Queue} -> wl_registry#3366.bind(38, "wl_seat", 1, new id [unknown]#3384) +[2618351.987] {Default Queue} wl_registry#3366.global(39, "wp_cursor_shape_manager_v1", 2) +[2618351.992] {Default Queue} wl_registry#3366.global(40, "wl_output", 4) +[2618351.996] {Default Queue} -> wl_registry#3366.bind(40, "wl_output", 1, new id [unknown]#3385) +[2618352.001] {Default Queue} wl_callback#3367.done(0) +[2618352.005] {Default Queue} discarded wl_surface#3335.enter(wl_output#18) +[2618352.009] {Default Queue} discarded wl_surface#3335.enter(wl_output#57) +[2618352.013] {Default Queue} discarded wl_surface#3335.enter(wl_output#89) +[2618352.017] {Default Queue} discarded wl_surface#3335.enter(wl_output#121) +[2618352.024] {Default Queue} discarded wl_surface#3335.enter(wl_output#153) +[2618352.030] {Default Queue} discarded wl_surface#3335.enter(wl_output#185) +[2618352.034] {Default Queue} discarded wl_surface#3335.enter(wl_output#217) +[2618352.040] {Default Queue} discarded wl_surface#3335.enter(wl_output#249) +[2618352.043] {Default Queue} discarded wl_surface#3335.enter(wl_output#281) +[2618352.047] {Default Queue} discarded wl_surface#3335.enter(wl_output#313) +[2618352.051] {Default Queue} discarded wl_surface#3335.enter(wl_output#345) +[2618352.055] {Default Queue} discarded wl_surface#3335.enter(wl_output#377) +[2618352.059] {Default Queue} discarded wl_surface#3335.enter(wl_output#409) +[2618352.063] {Default Queue} discarded wl_surface#3335.enter(wl_output#441) +[2618352.067] {Default Queue} discarded wl_surface#3335.enter(wl_output#473) +[2618352.071] {Default Queue} discarded wl_surface#3335.enter(wl_output#505) +[2618352.075] {Default Queue} discarded wl_surface#3335.enter(wl_output#537) +[2618352.080] {Default Queue} discarded wl_surface#3335.enter(wl_output#569) +[2618352.084] {Default Queue} discarded wl_surface#3335.enter(wl_output#601) +[2618352.087] {Default Queue} discarded wl_surface#3335.enter(wl_output#633) +[2618352.091] {Default Queue} discarded wl_surface#3335.enter(wl_output#665) +[2618352.095] {Default Queue} discarded wl_surface#3335.enter(wl_output#697) +[2618352.101] {Default Queue} discarded wl_surface#3335.enter(wl_output#729) +[2618352.105] {Default Queue} discarded wl_surface#3335.enter(wl_output#761) +[2618352.109] {Default Queue} discarded wl_surface#3335.enter(wl_output#793) +[2618352.113] {Default Queue} discarded wl_surface#3335.enter(wl_output#825) +[2618352.117] {Default Queue} discarded wl_surface#3335.enter(wl_output#857) +[2618352.121] {Default Queue} discarded wl_surface#3335.enter(wl_output#889) +[2618352.125] {Default Queue} discarded wl_surface#3335.enter(wl_output#921) +[2618352.129] {Default Queue} discarded wl_surface#3335.enter(wl_output#953) +[2618352.133] {Default Queue} discarded wl_surface#3335.enter(wl_output#985) +[2618352.137] {Default Queue} discarded wl_surface#3335.enter(wl_output#1017) +[2618352.141] {Default Queue} discarded wl_surface#3335.enter(wl_output#1049) +[2618352.145] {Default Queue} discarded wl_surface#3335.enter(wl_output#1081) +[2618352.149] {Default Queue} discarded wl_surface#3335.enter(wl_output#1113) +[2618352.153] {Default Queue} discarded wl_surface#3335.enter(wl_output#1145) +[2618352.156] {Default Queue} discarded wl_surface#3335.enter(wl_output#1177) +[2618352.160] {Default Queue} discarded wl_surface#3335.enter(wl_output#1209) +[2618352.164] {Default Queue} discarded wl_surface#3335.enter(wl_output#1241) +[2618352.168] {Default Queue} discarded wl_surface#3335.enter(wl_output#1273) +[2618352.172] {Default Queue} discarded wl_surface#3335.enter(wl_output#1305) +[2618352.176] {Default Queue} discarded wl_surface#3335.enter(wl_output#1337) +[2618352.179] {Default Queue} discarded wl_surface#3335.enter(wl_output#1369) +[2618352.183] {Default Queue} discarded wl_surface#3335.enter(wl_output#1401) +[2618352.187] {Default Queue} discarded wl_surface#3335.enter(wl_output#1433) +[2618352.191] {Default Queue} discarded wl_surface#3335.enter(wl_output#1465) +[2618352.195] {Default Queue} discarded wl_surface#3335.enter(wl_output#1497) +[2618352.199] {Default Queue} discarded wl_surface#3335.enter(wl_output#1529) +[2618352.203] {Default Queue} discarded wl_surface#3335.enter(wl_output#1561) +[2618352.207] {Default Queue} discarded wl_surface#3335.enter(wl_output#1593) +[2618352.211] {Default Queue} discarded wl_surface#3335.enter(wl_output#1625) +[2618352.214] {Default Queue} discarded wl_surface#3335.enter(wl_output#1657) +[2618352.218] {Default Queue} discarded wl_surface#3335.enter(wl_output#1689) +[2618352.222] {Default Queue} discarded wl_surface#3335.enter(wl_output#1721) +[2618352.226] {Default Queue} discarded wl_surface#3335.enter(wl_output#1753) +[2618352.230] {Default Queue} discarded wl_surface#3335.enter(wl_output#1785) +[2618352.234] {Default Queue} discarded wl_surface#3335.enter(wl_output#1817) +[2618352.241] {Default Queue} discarded wl_surface#3335.enter(wl_output#1849) +[2618352.246] {Default Queue} discarded wl_surface#3335.enter(wl_output#1881) +[2618352.251] {Default Queue} discarded wl_surface#3335.enter(wl_output#1913) +[2618352.254] {Default Queue} discarded wl_surface#3335.enter(wl_output#1945) +[2618352.258] {Default Queue} discarded wl_surface#3335.enter(wl_output#1977) +[2618352.262] {Default Queue} discarded wl_surface#3335.enter(wl_output#2009) +[2618352.266] {Default Queue} discarded wl_surface#3335.enter(wl_output#2041) +[2618352.270] {Default Queue} discarded wl_surface#3335.enter(wl_output#2073) +[2618352.274] {Default Queue} discarded wl_surface#3335.enter(wl_output#2105) +[2618352.278] {Default Queue} discarded wl_surface#3335.enter(wl_output#2137) +[2618352.282] {Default Queue} discarded wl_surface#3335.enter(wl_output#2169) +[2618352.286] {Default Queue} discarded wl_surface#3335.enter(wl_output#2201) +[2618352.290] {Default Queue} discarded wl_surface#3335.enter(wl_output#2233) +[2618352.294] {Default Queue} discarded wl_surface#3335.enter(wl_output#2265) +[2618352.298] {Default Queue} -> wl_compositor#3340.create_surface(new id wl_surface#3367) +[2618352.303] {Default Queue} -> wl_subcompositor#3373.get_subsurface(new id wl_subsurface#3386, wl_surface#3367, wl_surface#3335) +[2618352.311] {Default Queue} -> wl_subsurface#3386.set_desync() +[2618352.315] {Default Queue} -> wl_subsurface#3386.set_position(0, 0) +[2618352.319] {Default Queue} -> wl_subsurface#3386.place_above(wl_surface#3335) +[2618352.363] {Default Queue} -> wl_shm#3375.create_pool(new id wl_shm_pool#3387, fd 534, 16) +[2618352.370] {Default Queue} -> wl_shm#3375.create_pool(new id wl_shm_pool#3388, fd 535, 16) +[2618352.374] {Default Queue} -> wl_shm_pool#3387.create_buffer(new id wl_buffer#3389, 0, 2, 2, 8, 0) +[2618352.379] {Default Queue} -> wl_shm_pool#3388.create_buffer(new id wl_buffer#3390, 0, 2, 2, 8, 0) +[2618352.387] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) +[2618352.391] {Default Queue} -> wl_surface#3367.commit() +[2618352.397] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) +[2618352.401] {Default Queue} -> wl_surface#3367.commit() +[2618352.405] {Default Queue} -> wl_compositor#3372.create_region(new id wl_region#3391) +[2618352.410] {Default Queue} -> wl_compositor#3372.create_region(new id wl_region#3392) +[2618352.414] {Default Queue} -> wl_region#3391.subtract(0, 0, 2, 2) +[2618352.418] {Default Queue} -> wl_region#3391.add(0, 0, 0, 0) +[2618352.423] {Default Queue} -> wl_surface#3367.set_opaque_region(wl_region#3392) +[2618352.427] {Default Queue} -> wl_surface#3367.set_input_region(wl_region#3391) +[2618352.431] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) +[2618352.435] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) +[2618352.443] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) +[2618352.447] {Default Queue} -> wl_surface#3367.commit() +[2618352.478] {Default Queue} -> wl_shm#3377.create_pool(new id wl_shm_pool#3393, fd 538, 640) +[2618352.485] {Default Queue} -> wl_shm#3377.create_pool(new id wl_shm_pool#3394, fd 539, 640) +[2618352.489] {Default Queue} -> wl_shm_pool#3393.create_buffer(new id wl_buffer#3395, 0, 10, 16, 40, 0) +[2618352.494] {Default Queue} -> wl_shm_pool#3394.create_buffer(new id wl_buffer#3396, 0, 10, 16, 40, 0) +[2618352.501] {Default Queue} -> wl_compositor#3372.create_surface(new id wl_surface#3397) +[2618352.505] {Default Queue} -> wl_surface#3397.attach(wl_buffer#3395, 0, 0) +[2618352.509] {Default Queue} -> wl_surface#3397.commit() +[2618352.515] {Default Queue} -> wl_surface#3397.attach(wl_buffer#3395, 0, 0) +[2618352.519] {Default Queue} -> wl_surface#3397.commit() +[2618352.526] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3398) +[2618352.531] {Default Queue} -> wl_display#1.sync(new id wl_callback#3399) +[2618355.531] {Default Queue} discarded wl_surface#3335.enter(wl_output#2297) +[2618355.544] {Default Queue} discarded wl_surface#3335.enter(wl_output#2329) +[2618355.550] {Default Queue} discarded wl_surface#3335.enter(wl_output#2361) +[2618355.565] {Default Queue} discarded wl_surface#3335.enter(wl_output#2393) +[2618355.575] {Default Queue} discarded wl_surface#3335.enter(wl_output#2425) +[2618355.581] {Default Queue} discarded wl_surface#3335.enter(wl_output#2457) +[2618355.587] {Default Queue} discarded wl_surface#3335.enter(wl_output#2489) +[2618355.594] {Default Queue} discarded wl_surface#3335.enter(wl_output#2521) +[2618355.600] {Default Queue} discarded wl_surface#3335.enter(wl_output#2553) +[2618355.607] {Default Queue} discarded wl_surface#3335.enter(wl_output#2585) +[2618355.614] {Default Queue} discarded wl_surface#3335.enter(wl_output#2617) +[2618355.621] {Default Queue} discarded wl_surface#3335.enter(wl_output#2649) +[2618355.628] {Default Queue} discarded wl_surface#3335.enter(wl_output#2681) +[2618355.634] {Default Queue} discarded wl_surface#3335.enter(wl_output#2713) +[2618355.641] {Default Queue} discarded wl_surface#3335.enter(wl_output#2745) +[2618355.648] {Default Queue} discarded wl_surface#3335.enter(wl_output#2777) +[2618355.655] {Default Queue} discarded wl_surface#3335.enter(wl_output#2809) +[2618355.661] {Default Queue} discarded wl_surface#3335.enter(wl_output#2841) +[2618355.668] {Default Queue} discarded wl_surface#3335.enter(wl_output#2873) +[2618355.674] {Default Queue} discarded wl_surface#3335.enter(wl_output#2905) +[2618355.681] {Default Queue} discarded wl_surface#3335.enter(wl_output#2937) +[2618355.687] {Default Queue} discarded wl_surface#3335.enter(wl_output#2969) +[2618355.694] {Default Queue} discarded wl_surface#3335.enter(wl_output#3001) +[2618355.700] {Default Queue} discarded wl_surface#3335.enter(wl_output#3033) +[2618355.707] {Default Queue} discarded wl_surface#3335.enter(wl_output#3065) +[2618355.714] {Default Queue} discarded wl_surface#3335.enter(wl_output#3097) +[2618355.721] {Default Queue} discarded wl_surface#3335.enter(wl_output#3129) +[2618355.729] {Default Queue} discarded wl_surface#3335.enter(wl_output#3161) +[2618355.735] {Default Queue} discarded wl_surface#3335.enter(wl_output#3193) +[2618355.742] {Default Queue} discarded wl_surface#3335.enter(wl_output#3225) +[2618355.748] {Default Queue} discarded wl_surface#3335.enter(wl_output#3257) +[2618355.755] {Default Queue} discarded wl_surface#3335.enter(wl_output#3289) +[2618355.762] {Default Queue} discarded wl_surface#3335.enter(wl_output#3321) +[2618355.769] {Default Queue} discarded wl_surface#3335.enter(wl_output#3353) +[2618355.943] {Display Queue} wl_display#1.delete_id(3399) +[2618355.959] {Default Queue} wl_keyboard#3368.keymap(1, fd 534, 68213) +[2618355.969] {Default Queue} wl_keyboard#3368.enter(566, wl_surface#19, array[0]) +[2618355.977] {Default Queue} wl_keyboard#3368.modifiers(566, 0, 0, 16, 0) +[2618355.985] {Default Queue} discarded wl_shm#3375.format(875709016) +[2618355.991] {Default Queue} discarded wl_shm#3375.format(1) +[2618355.998] {Default Queue} discarded wl_shm#3375.format(0) +[2618356.005] {Default Queue} discarded wl_shm#3375.format(875708993) +[2618356.011] {Default Queue} discarded wl_shm#3376.format(875709016) +[2618356.017] {Default Queue} discarded wl_shm#3376.format(1) +[2618356.024] {Default Queue} discarded wl_shm#3376.format(0) +[2618356.031] {Default Queue} discarded wl_shm#3376.format(875708993) +[2618356.038] {Default Queue} discarded wl_shm#3377.format(875709016) +[2618356.045] {Default Queue} discarded wl_shm#3377.format(1) +[2618356.052] {Default Queue} discarded wl_shm#3377.format(0) +[2618356.062] {Default Queue} discarded wl_shm#3377.format(875708993) +[2618356.068] {Default Queue} wl_seat#3384.capabilities(7) +[2618356.076] {Default Queue} -> wl_seat#3384.get_keyboard(new id wl_keyboard#3400) +[2618356.084] {Default Queue} -> wl_seat#3384.get_pointer(new id wl_pointer#3401) +[2618356.092] {Default Queue} -> wl_data_device_manager#3380.get_data_device(new id wl_data_device#3402, wl_seat#3384) +[2618356.101] {Default Queue} -> zwp_primary_selection_device_manager_v1#3382.get_device(new id zwp_primary_selection_device_v1#3403, wl_seat#3384) +[2618356.117] {Default Queue} wl_output#3385.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618356.134] {Default Queue} wl_output#3385.mode(3, 1280, 800, 60000) +[2618356.150] {Default Queue} discarded wl_surface#2727.enter(wl_output#3385) +[2618356.157] {Default Queue} discarded wl_surface#3.enter(wl_output#3385) +[2618356.163] {Default Queue} discarded wl_surface#999.enter(wl_output#3385) +[2618356.170] {Default Queue} discarded wl_surface#3079.enter(wl_output#3385) +[2618356.177] {Default Queue} discarded wl_surface#1191.enter(wl_output#3385) +[2618356.184] {Default Queue} discarded wl_surface#1159.enter(wl_output#3385) +[2618356.190] {Default Queue} discarded wl_surface#1703.enter(wl_output#3385) +[2618356.197] {Default Queue} discarded wl_surface#2215.enter(wl_output#3385) +[2618356.203] {Default Queue} discarded wl_surface#423.enter(wl_output#3385) +[2618356.210] {Default Queue} discarded wl_surface#1447.enter(wl_output#3385) +[2618356.216] {Default Queue} discarded wl_surface#3047.enter(wl_output#3385) +[2618356.223] {Default Queue} discarded wl_surface#2023.enter(wl_output#3385) +[2618356.229] {Default Queue} discarded wl_surface#1639.enter(wl_output#3385) +[2618356.235] {Default Queue} discarded wl_surface#1319.enter(wl_output#3385) +[2618356.242] {Default Queue} discarded wl_surface#1127.enter(wl_output#3385) +[2618356.249] {Default Queue} discarded wl_surface#2151.enter(wl_output#3385) +[2618356.255] {Default Queue} discarded wl_surface#2375.enter(wl_output#3385) +[2618356.261] {Default Queue} discarded wl_surface#2695.enter(wl_output#3385) +[2618356.268] {Default Queue} discarded wl_surface#2919.enter(wl_output#3385) +[2618356.274] {Default Queue} discarded wl_surface#1063.enter(wl_output#3385) +[2618356.280] {Default Queue} discarded wl_surface#455.enter(wl_output#3385) +[2618356.287] {Default Queue} discarded wl_surface#1575.enter(wl_output#3385) +[2618356.294] {Default Queue} discarded wl_surface#1799.enter(wl_output#3385) +[2618356.301] {Default Queue} discarded wl_surface#1415.enter(wl_output#3385) +[2618356.308] {Default Queue} discarded wl_surface#2439.enter(wl_output#3385) +[2618356.315] {Default Queue} discarded wl_surface#2279.enter(wl_output#3385) +[2618356.323] {Default Queue} discarded wl_surface#1831.enter(wl_output#3385) +[2618356.331] {Default Queue} discarded wl_surface#903.enter(wl_output#3385) +[2618356.338] {Default Queue} discarded wl_surface#2663.enter(wl_output#3385) +[2618356.345] {Default Queue} discarded wl_surface#775.enter(wl_output#3385) +[2618356.352] {Default Queue} discarded wl_surface#1991.enter(wl_output#3385) +[2618356.360] {Default Queue} discarded wl_surface#1543.enter(wl_output#3385) +[2618356.367] {Default Queue} discarded wl_surface#135.enter(wl_output#3385) +[2618356.375] {Default Queue} discarded wl_surface#1287.enter(wl_output#3385) +[2618356.382] {Default Queue} discarded wl_surface#1031.enter(wl_output#3385) +[2618356.387] {Default Queue} discarded wl_surface#615.enter(wl_output#3385) +[2618356.393] {Default Queue} discarded wl_surface#3111.enter(wl_output#3385) +[2618356.399] {Default Queue} discarded wl_surface#231.enter(wl_output#3385) +[2618356.405] {Default Queue} discarded wl_surface#2343.enter(wl_output#3385) +[2618356.411] {Default Queue} discarded wl_surface#1863.enter(wl_output#3385) +[2618356.417] {Default Queue} discarded wl_surface#359.enter(wl_output#3385) +[2618356.423] {Default Queue} discarded wl_surface#2983.enter(wl_output#3385) +[2618356.429] {Default Queue} discarded wl_surface#583.enter(wl_output#3385) +[2618356.435] {Default Queue} discarded wl_surface#743.enter(wl_output#3385) +[2618356.441] {Default Queue} discarded wl_surface#3143.enter(wl_output#3385) +[2618356.446] {Default Queue} discarded wl_surface#2535.enter(wl_output#3385) +[2618356.452] {Default Queue} discarded wl_surface#967.enter(wl_output#3385) +[2618356.458] {Default Queue} discarded wl_surface#103.enter(wl_output#3385) +[2618356.463] {Default Queue} discarded wl_surface#3271.enter(wl_output#3385) +[2618356.469] {Default Queue} discarded wl_surface#327.enter(wl_output#3385) +[2618356.475] {Default Queue} discarded wl_surface#43.enter(wl_output#3385) +[2618356.481] {Default Queue} discarded wl_surface#2247.enter(wl_output#3385) +[2618356.492] {Default Queue} discarded wl_surface#807.enter(wl_output#3385) +[2618356.500] {Default Queue} discarded wl_surface#19.enter(wl_output#3385) +[2618356.506] {Default Queue} discarded wl_surface#2951.enter(wl_output#3385) +[2618356.512] {Default Queue} discarded wl_surface#1511.enter(wl_output#3385) +[2618356.518] {Default Queue} discarded wl_surface#199.enter(wl_output#3385) +[2618356.523] {Default Queue} discarded wl_surface#391.enter(wl_output#3385) +[2618356.529] {Default Queue} discarded wl_surface#935.enter(wl_output#3385) +[2618356.535] {Default Queue} discarded wl_surface#2823.enter(wl_output#3385) +[2618356.540] {Default Queue} discarded wl_surface#3015.enter(wl_output#3385) +[2618356.546] {Default Queue} discarded wl_surface#1671.enter(wl_output#3385) +[2618356.552] {Default Queue} discarded wl_surface#1351.enter(wl_output#3385) +[2618356.557] {Default Queue} discarded wl_surface#711.enter(wl_output#3385) +[2618356.561] {Default Queue} discarded wl_surface#3175.enter(wl_output#3385) +[2618356.566] {Default Queue} discarded wl_surface#1223.enter(wl_output#3385) +[2618356.570] {Default Queue} discarded wl_surface#1927.enter(wl_output#3385) +[2618356.574] {Default Queue} discarded wl_surface#871.enter(wl_output#3385) +[2618356.578] {Default Queue} discarded wl_surface#1895.enter(wl_output#3385) +[2618356.582] {Default Queue} discarded wl_surface#263.enter(wl_output#3385) +[2618356.586] {Default Queue} discarded wl_surface#551.enter(wl_output#3385) +[2618356.589] {Default Queue} discarded wl_surface#1735.enter(wl_output#3385) +[2618356.593] {Default Queue} discarded wl_surface#1479.enter(wl_output#3385) +[2618356.597] {Default Queue} discarded wl_surface#1772.enter(wl_output#3385) +[2618356.602] {Default Queue} discarded wl_surface#2599.enter(wl_output#3385) +[2618356.607] {Default Queue} discarded wl_surface#2631.enter(wl_output#3385) +[2618356.613] {Default Queue} discarded wl_surface#1959.enter(wl_output#3385) +[2618356.618] {Default Queue} discarded wl_surface#647.enter(wl_output#3385) +[2618356.622] {Default Queue} discarded wl_surface#2055.enter(wl_output#3385) +[2618356.627] {Default Queue} discarded wl_surface#2508.enter(wl_output#3385) +[2618356.632] {Default Queue} discarded wl_surface#71.enter(wl_output#3385) +[2618356.637] {Default Queue} discarded wl_surface#2759.enter(wl_output#3385) +[2618356.643] {Default Queue} discarded wl_surface#2791.enter(wl_output#3385) +[2618356.648] {Default Queue} discarded wl_surface#2887.enter(wl_output#3385) +[2618356.653] {Default Queue} discarded wl_surface#2183.enter(wl_output#3385) +[2618356.658] {Default Queue} discarded wl_surface#2567.enter(wl_output#3385) +[2618356.664] {Default Queue} discarded wl_surface#839.enter(wl_output#3385) +[2618356.668] {Default Queue} discarded wl_surface#1607.enter(wl_output#3385) +[2618356.672] {Default Queue} discarded wl_surface#1095.enter(wl_output#3385) +[2618356.676] {Default Queue} discarded wl_surface#1383.enter(wl_output#3385) +[2618356.680] {Default Queue} discarded wl_surface#487.enter(wl_output#3385) +[2618356.684] {Default Queue} discarded wl_surface#2311.enter(wl_output#3385) +[2618356.688] {Default Queue} discarded wl_surface#519.enter(wl_output#3385) +[2618356.692] {Default Queue} discarded wl_surface#3335.enter(wl_output#3385) +[2618356.696] {Default Queue} discarded wl_surface#3239.enter(wl_output#3385) +[2618356.700] {Default Queue} discarded wl_surface#2087.enter(wl_output#3385) +[2618356.703] {Default Queue} discarded wl_surface#2471.enter(wl_output#3385) +[2618356.707] {Default Queue} discarded wl_surface#295.enter(wl_output#3385) +[2618356.711] {Default Queue} discarded wl_surface#167.enter(wl_output#3385) +[2618356.716] {Default Queue} discarded wl_surface#1255.enter(wl_output#3385) +[2618356.719] {Default Queue} discarded wl_surface#2855.enter(wl_output#3385) +[2618356.723] {Default Queue} discarded wl_surface#3303.enter(wl_output#3385) +[2618356.728] {Default Queue} discarded wl_surface#679.enter(wl_output#3385) +[2618356.732] {Default Queue} discarded wl_surface#2407.enter(wl_output#3385) +[2618356.737] {Default Queue} discarded wl_surface#3207.enter(wl_output#3385) +[2618356.744] {Default Queue} discarded wl_surface#2119.enter(wl_output#3385) +[2618356.751] {Default Queue} wl_registry#3398.global(1, "wl_compositor", 6) +[2618356.757] {Default Queue} -> wl_registry#3398.bind(1, "wl_compositor", 1, new id [unknown]#3404) +[2618356.762] {Default Queue} wl_registry#3398.global(2, "wl_subcompositor", 1) +[2618356.766] {Default Queue} -> wl_registry#3398.bind(2, "wl_subcompositor", 1, new id [unknown]#3405) +[2618356.771] {Default Queue} wl_registry#3398.global(3, "xdg_wm_base", 6) +[2618356.776] {Default Queue} -> wl_registry#3398.bind(3, "xdg_wm_base", 1, new id [unknown]#3406) +[2618356.781] {Default Queue} wl_registry#3398.global(6, "zwlr_layer_shell_v1", 5) +[2618356.785] {Default Queue} wl_registry#3398.global(7, "ext_session_lock_manager_v1", 1) +[2618356.790] {Default Queue} wl_registry#3398.global(8, "wl_shm", 2) +[2618356.795] {Default Queue} -> wl_registry#3398.bind(8, "wl_shm", 1, new id [unknown]#3407) +[2618356.799] {Default Queue} -> wl_registry#3398.bind(8, "wl_shm", 1, new id [unknown]#3408) +[2618356.804] {Default Queue} -> wl_registry#3398.bind(8, "wl_shm", 1, new id [unknown]#3409) +[2618356.808] {Default Queue} wl_registry#3398.global(9, "zxdg_output_manager_v1", 3) +[2618356.812] {Default Queue} wl_registry#3398.global(10, "wp_fractional_scale_manager_v1", 1) +[2618356.817] {Default Queue} wl_registry#3398.global(11, "zwp_tablet_manager_v2", 1) +[2618356.821] {Default Queue} wl_registry#3398.global(12, "zwp_pointer_gestures_v1", 3) +[2618356.825] {Default Queue} wl_registry#3398.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618356.830] {Default Queue} -> wl_registry#3398.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3410) +[2618356.834] {Default Queue} wl_registry#3398.global(14, "zwp_pointer_constraints_v1", 1) +[2618356.839] {Default Queue} -> wl_registry#3398.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3411) +[2618356.844] {Default Queue} wl_registry#3398.global(15, "ext_idle_notifier_v1", 2) +[2618356.848] {Default Queue} wl_registry#3398.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618356.852] {Default Queue} wl_registry#3398.global(17, "wl_data_device_manager", 3) +[2618356.857] {Default Queue} -> wl_registry#3398.bind(17, "wl_data_device_manager", 2, new id [unknown]#3412) +[2618356.863] {Default Queue} -> wl_data_device_manager#3412.create_data_source(new id wl_data_source#3413) +[2618356.867] {Default Queue} -> wl_data_source#3413.offer("text/plain") +[2618356.880] {Default Queue} -> wl_data_source#3413.offer("text/plain;charset=utf-8") +[2618356.884] {Default Queue} -> wl_data_source#3413.offer("TEXT") +[2618356.888] {Default Queue} -> wl_data_source#3413.offer("STRING") +[2618356.892] {Default Queue} -> wl_data_source#3413.offer("UTF8_STRING") +[2618356.896] {Default Queue} wl_registry#3398.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618356.902] {Default Queue} -> wl_registry#3398.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3414) +[2618356.910] {Default Queue} -> zwp_primary_selection_device_manager_v1#3414.create_source(new id zwp_primary_selection_source_v1#3415) +[2618356.918] {Default Queue} -> zwp_primary_selection_source_v1#3415.offer("text/plain") +[2618356.922] {Default Queue} -> zwp_primary_selection_source_v1#3415.offer("text/plain;charset=utf-8") +[2618356.926] {Default Queue} -> zwp_primary_selection_source_v1#3415.offer("TEXT") +[2618356.930] {Default Queue} -> zwp_primary_selection_source_v1#3415.offer("STRING") +[2618356.934] {Default Queue} -> zwp_primary_selection_source_v1#3415.offer("UTF8_STRING") +[2618356.938] {Default Queue} wl_registry#3398.global(19, "zwlr_data_control_manager_v1", 2) +[2618356.942] {Default Queue} wl_registry#3398.global(20, "ext_data_control_manager_v1", 1) +[2618356.947] {Default Queue} wl_registry#3398.global(21, "wp_presentation", 2) +[2618356.952] {Default Queue} wl_registry#3398.global(22, "wp_security_context_manager_v1", 1) +[2618356.962] {Default Queue} wl_registry#3398.global(23, "zwp_text_input_manager_v3", 1) +[2618356.977] {Default Queue} wl_registry#3398.global(24, "zwp_input_method_manager_v2", 1) +[2618356.983] {Default Queue} wl_registry#3398.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618356.987] {Default Queue} wl_registry#3398.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618356.992] {Default Queue} wl_registry#3398.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618356.996] {Default Queue} wl_registry#3398.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618357.001] {Default Queue} wl_registry#3398.global(29, "ext_workspace_manager_v1", 1) +[2618357.006] {Default Queue} wl_registry#3398.global(30, "zwlr_output_manager_v1", 4) +[2618357.010] {Default Queue} wl_registry#3398.global(31, "zwlr_screencopy_manager_v1", 3) +[2618357.015] {Default Queue} wl_registry#3398.global(32, "wp_viewporter", 1) +[2618357.019] {Default Queue} wl_registry#3398.global(33, "zxdg_exporter_v2", 1) +[2618357.023] {Default Queue} wl_registry#3398.global(34, "zxdg_importer_v2", 1) +[2618357.027] {Default Queue} wl_registry#3398.global(36, "xdg_activation_v1", 1) +[2618357.032] {Default Queue} wl_registry#3398.global(37, "mutter_x11_interop", 1) +[2618357.036] {Default Queue} wl_registry#3398.global(38, "wl_seat", 9) +[2618357.041] {Default Queue} -> wl_registry#3398.bind(38, "wl_seat", 1, new id [unknown]#3416) +[2618357.046] {Default Queue} wl_registry#3398.global(39, "wp_cursor_shape_manager_v1", 2) +[2618357.050] {Default Queue} wl_registry#3398.global(40, "wl_output", 4) +[2618357.054] {Default Queue} -> wl_registry#3398.bind(40, "wl_output", 1, new id [unknown]#3417) +[2618357.059] {Default Queue} wl_callback#3399.done(0) +[2618357.063] {Default Queue} discarded wl_surface#3367.enter(wl_output#18) +[2618357.067] {Default Queue} discarded wl_surface#3367.enter(wl_output#57) +[2618357.072] {Default Queue} discarded wl_surface#3367.enter(wl_output#89) +[2618357.076] {Default Queue} discarded wl_surface#3367.enter(wl_output#121) +[2618357.079] {Default Queue} discarded wl_surface#3367.enter(wl_output#153) +[2618357.083] {Default Queue} discarded wl_surface#3367.enter(wl_output#185) +[2618357.087] {Default Queue} discarded wl_surface#3367.enter(wl_output#217) +[2618357.091] {Default Queue} discarded wl_surface#3367.enter(wl_output#249) +[2618357.095] {Default Queue} discarded wl_surface#3367.enter(wl_output#281) +[2618357.099] {Default Queue} discarded wl_surface#3367.enter(wl_output#313) +[2618357.103] {Default Queue} discarded wl_surface#3367.enter(wl_output#345) +[2618357.107] {Default Queue} discarded wl_surface#3367.enter(wl_output#377) +[2618357.111] {Default Queue} discarded wl_surface#3367.enter(wl_output#409) +[2618357.115] {Default Queue} discarded wl_surface#3367.enter(wl_output#441) +[2618357.119] {Default Queue} discarded wl_surface#3367.enter(wl_output#473) +[2618357.123] {Default Queue} discarded wl_surface#3367.enter(wl_output#505) +[2618357.127] {Default Queue} discarded wl_surface#3367.enter(wl_output#537) +[2618357.131] {Default Queue} discarded wl_surface#3367.enter(wl_output#569) +[2618357.135] {Default Queue} discarded wl_surface#3367.enter(wl_output#601) +[2618357.139] {Default Queue} discarded wl_surface#3367.enter(wl_output#633) +[2618357.143] {Default Queue} discarded wl_surface#3367.enter(wl_output#665) +[2618357.146] {Default Queue} discarded wl_surface#3367.enter(wl_output#697) +[2618357.150] {Default Queue} discarded wl_surface#3367.enter(wl_output#729) +[2618357.154] {Default Queue} discarded wl_surface#3367.enter(wl_output#761) +[2618357.158] {Default Queue} discarded wl_surface#3367.enter(wl_output#793) +[2618357.162] {Default Queue} discarded wl_surface#3367.enter(wl_output#825) +[2618357.166] {Default Queue} discarded wl_surface#3367.enter(wl_output#857) +[2618357.170] {Default Queue} discarded wl_surface#3367.enter(wl_output#889) +[2618357.173] {Default Queue} discarded wl_surface#3367.enter(wl_output#921) +[2618357.178] {Default Queue} discarded wl_surface#3367.enter(wl_output#953) +[2618357.181] {Default Queue} discarded wl_surface#3367.enter(wl_output#985) +[2618357.185] {Default Queue} discarded wl_surface#3367.enter(wl_output#1017) +[2618357.192] {Default Queue} discarded wl_surface#3367.enter(wl_output#1049) +[2618357.198] {Default Queue} discarded wl_surface#3367.enter(wl_output#1081) +[2618357.203] {Default Queue} discarded wl_surface#3367.enter(wl_output#1113) +[2618357.208] {Default Queue} discarded wl_surface#3367.enter(wl_output#1145) +[2618357.211] {Default Queue} discarded wl_surface#3367.enter(wl_output#1177) +[2618357.216] {Default Queue} discarded wl_surface#3367.enter(wl_output#1209) +[2618357.220] {Default Queue} discarded wl_surface#3367.enter(wl_output#1241) +[2618357.224] {Default Queue} discarded wl_surface#3367.enter(wl_output#1273) +[2618357.228] {Default Queue} discarded wl_surface#3367.enter(wl_output#1305) +[2618357.231] {Default Queue} discarded wl_surface#3367.enter(wl_output#1337) +[2618357.236] {Default Queue} discarded wl_surface#3367.enter(wl_output#1369) +[2618357.240] {Default Queue} discarded wl_surface#3367.enter(wl_output#1401) +[2618357.243] {Default Queue} discarded wl_surface#3367.enter(wl_output#1433) +[2618357.247] {Default Queue} discarded wl_surface#3367.enter(wl_output#1465) +[2618357.251] {Default Queue} discarded wl_surface#3367.enter(wl_output#1497) +[2618357.257] {Default Queue} discarded wl_surface#3367.enter(wl_output#1529) +[2618357.261] {Default Queue} discarded wl_surface#3367.enter(wl_output#1561) +[2618357.264] {Default Queue} discarded wl_surface#3367.enter(wl_output#1593) +[2618357.268] {Default Queue} discarded wl_surface#3367.enter(wl_output#1625) +[2618357.272] {Default Queue} discarded wl_surface#3367.enter(wl_output#1657) +[2618357.276] {Default Queue} discarded wl_surface#3367.enter(wl_output#1689) +[2618357.280] {Default Queue} discarded wl_surface#3367.enter(wl_output#1721) +[2618357.284] {Default Queue} discarded wl_surface#3367.enter(wl_output#1753) +[2618357.288] {Default Queue} discarded wl_surface#3367.enter(wl_output#1785) +[2618357.292] {Default Queue} discarded wl_surface#3367.enter(wl_output#1817) +[2618357.296] {Default Queue} discarded wl_surface#3367.enter(wl_output#1849) +[2618357.300] {Default Queue} discarded wl_surface#3367.enter(wl_output#1881) +[2618357.304] {Default Queue} discarded wl_surface#3367.enter(wl_output#1913) +[2618357.307] {Default Queue} discarded wl_surface#3367.enter(wl_output#1945) +[2618357.311] {Default Queue} discarded wl_surface#3367.enter(wl_output#1977) +[2618357.316] {Default Queue} discarded wl_surface#3367.enter(wl_output#2009) +[2618357.319] {Default Queue} discarded wl_surface#3367.enter(wl_output#2041) +[2618357.323] {Default Queue} discarded wl_surface#3367.enter(wl_output#2073) +[2618357.327] {Default Queue} discarded wl_surface#3367.enter(wl_output#2105) +[2618357.331] {Default Queue} discarded wl_surface#3367.enter(wl_output#2137) +[2618357.335] {Default Queue} discarded wl_surface#3367.enter(wl_output#2169) +[2618357.339] {Default Queue} discarded wl_surface#3367.enter(wl_output#2201) +[2618357.343] {Default Queue} discarded wl_surface#3367.enter(wl_output#2233) +[2618357.347] {Default Queue} -> wl_compositor#3372.create_surface(new id wl_surface#3399) +[2618357.351] {Default Queue} -> wl_subcompositor#3405.get_subsurface(new id wl_subsurface#3418, wl_surface#3399, wl_surface#3367) +[2618357.359] {Default Queue} -> wl_subsurface#3418.set_desync() +[2618357.363] {Default Queue} -> wl_subsurface#3418.set_position(-14, 0) +[2618357.368] {Default Queue} -> wl_subsurface#3418.place_above(wl_surface#3367) +[2618357.417] {Default Queue} -> wl_shm#3407.create_pool(new id wl_shm_pool#3419, fd 539, 128) +[2618357.423] {Default Queue} -> wl_shm#3407.create_pool(new id wl_shm_pool#3420, fd 540, 128) +[2618357.428] {Default Queue} -> wl_shm_pool#3419.create_buffer(new id wl_buffer#3421, 0, 16, 2, 64, 0) +[2618357.433] {Default Queue} -> wl_shm_pool#3420.create_buffer(new id wl_buffer#3422, 0, 16, 2, 64, 0) +[2618357.440] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3421, 0, 0) +[2618357.445] {Default Queue} -> wl_surface#3399.commit() +[2618357.450] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3421, 0, 0) +[2618357.455] {Default Queue} -> wl_surface#3399.commit() +[2618357.462] {Default Queue} -> wl_compositor#3404.create_region(new id wl_region#3423) +[2618357.468] {Default Queue} -> wl_compositor#3404.create_region(new id wl_region#3424) +[2618357.472] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) +[2618357.478] {Default Queue} -> wl_region#3423.add(0, 0, 0, 0) +[2618357.482] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618357.486] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618357.490] {Default Queue} -> wl_surface#3399.damage(0, 0, 16, 2) +[2618357.495] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) +[2618357.502] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3421, 0, 0) +[2618357.506] {Default Queue} -> wl_surface#3399.commit() +[2618357.547] {Default Queue} -> wl_shm#3409.create_pool(new id wl_shm_pool#3425, fd 543, 640) +[2618357.553] {Default Queue} -> wl_shm#3409.create_pool(new id wl_shm_pool#3426, fd 544, 640) +[2618357.558] {Default Queue} -> wl_shm_pool#3425.create_buffer(new id wl_buffer#3427, 0, 10, 16, 40, 0) +[2618357.563] {Default Queue} -> wl_shm_pool#3426.create_buffer(new id wl_buffer#3428, 0, 10, 16, 40, 0) +[2618357.570] {Default Queue} -> wl_compositor#3404.create_surface(new id wl_surface#3429) +[2618357.574] {Default Queue} -> wl_surface#3429.attach(wl_buffer#3427, 0, 0) +[2618357.579] {Default Queue} -> wl_surface#3429.commit() +[2618357.585] {Default Queue} -> wl_surface#3429.attach(wl_buffer#3427, 0, 0) +[2618357.589] {Default Queue} -> wl_surface#3429.commit() +[2618357.598] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3430) +[2618357.602] {Default Queue} -> wl_display#1.sync(new id wl_callback#3431) +[2618360.544] {Default Queue} discarded wl_surface#3367.enter(wl_output#2265) +[2618360.555] {Default Queue} discarded wl_surface#3367.enter(wl_output#2297) +[2618360.560] {Default Queue} discarded wl_surface#3367.enter(wl_output#2329) +[2618360.565] {Default Queue} discarded wl_surface#3367.enter(wl_output#2361) +[2618360.569] {Default Queue} discarded wl_surface#3367.enter(wl_output#2393) +[2618360.573] {Default Queue} discarded wl_surface#3367.enter(wl_output#2425) +[2618360.577] {Default Queue} discarded wl_surface#3367.enter(wl_output#2457) +[2618360.581] {Default Queue} discarded wl_surface#3367.enter(wl_output#2489) +[2618360.585] {Default Queue} discarded wl_surface#3367.enter(wl_output#2521) +[2618360.589] {Default Queue} discarded wl_surface#3367.enter(wl_output#2553) +[2618360.593] {Default Queue} discarded wl_surface#3367.enter(wl_output#2585) +[2618360.597] {Default Queue} discarded wl_surface#3367.enter(wl_output#2617) +[2618360.601] {Default Queue} discarded wl_surface#3367.enter(wl_output#2649) +[2618360.604] {Default Queue} discarded wl_surface#3367.enter(wl_output#2681) +[2618360.608] {Default Queue} discarded wl_surface#3367.enter(wl_output#2713) +[2618360.613] {Default Queue} discarded wl_surface#3367.enter(wl_output#2745) +[2618360.617] {Default Queue} discarded wl_surface#3367.enter(wl_output#2777) +[2618360.621] {Default Queue} discarded wl_surface#3367.enter(wl_output#2809) +[2618360.624] {Default Queue} discarded wl_surface#3367.enter(wl_output#2841) +[2618360.628] {Default Queue} discarded wl_surface#3367.enter(wl_output#2873) +[2618360.632] {Default Queue} discarded wl_surface#3367.enter(wl_output#2905) +[2618360.636] {Default Queue} discarded wl_surface#3367.enter(wl_output#2937) +[2618360.640] {Default Queue} discarded wl_surface#3367.enter(wl_output#2969) +[2618360.644] {Default Queue} discarded wl_surface#3367.enter(wl_output#3001) +[2618360.648] {Default Queue} discarded wl_surface#3367.enter(wl_output#3033) +[2618360.652] {Default Queue} discarded wl_surface#3367.enter(wl_output#3065) +[2618360.656] {Default Queue} discarded wl_surface#3367.enter(wl_output#3097) +[2618360.660] {Default Queue} discarded wl_surface#3367.enter(wl_output#3129) +[2618360.664] {Default Queue} discarded wl_surface#3367.enter(wl_output#3161) +[2618360.668] {Default Queue} discarded wl_surface#3367.enter(wl_output#3193) +[2618360.671] {Default Queue} discarded wl_surface#3367.enter(wl_output#3225) +[2618360.683] {Default Queue} discarded wl_surface#3367.enter(wl_output#3257) +[2618360.690] {Default Queue} discarded wl_surface#3367.enter(wl_output#3289) +[2618360.694] {Default Queue} discarded wl_surface#3367.enter(wl_output#3321) +[2618360.698] {Default Queue} discarded wl_surface#3367.enter(wl_output#3353) +[2618360.702] {Default Queue} discarded wl_surface#3367.enter(wl_output#3385) +[2618360.875] {Display Queue} wl_display#1.delete_id(3431) +[2618360.882] {Default Queue} wl_keyboard#3400.keymap(1, fd 539, 68213) +[2618360.887] {Default Queue} wl_keyboard#3400.enter(566, wl_surface#19, array[0]) +[2618360.893] {Default Queue} wl_keyboard#3400.modifiers(566, 0, 0, 16, 0) +[2618360.898] {Default Queue} discarded wl_shm#3407.format(875709016) +[2618360.902] {Default Queue} discarded wl_shm#3407.format(1) +[2618360.906] {Default Queue} discarded wl_shm#3407.format(0) +[2618360.910] {Default Queue} discarded wl_shm#3407.format(875708993) +[2618360.914] {Default Queue} discarded wl_shm#3408.format(875709016) +[2618360.918] {Default Queue} discarded wl_shm#3408.format(1) +[2618360.922] {Default Queue} discarded wl_shm#3408.format(0) +[2618360.925] {Default Queue} discarded wl_shm#3408.format(875708993) +[2618360.929] {Default Queue} discarded wl_shm#3409.format(875709016) +[2618360.933] {Default Queue} discarded wl_shm#3409.format(1) +[2618360.937] {Default Queue} discarded wl_shm#3409.format(0) +[2618360.941] {Default Queue} discarded wl_shm#3409.format(875708993) +[2618360.945] {Default Queue} wl_seat#3416.capabilities(7) +[2618360.949] {Default Queue} -> wl_seat#3416.get_keyboard(new id wl_keyboard#3432) +[2618360.954] {Default Queue} -> wl_seat#3416.get_pointer(new id wl_pointer#3433) +[2618360.958] {Default Queue} -> wl_data_device_manager#3412.get_data_device(new id wl_data_device#3434, wl_seat#3416) +[2618360.963] {Default Queue} -> zwp_primary_selection_device_manager_v1#3414.get_device(new id zwp_primary_selection_device_v1#3435, wl_seat#3416) +[2618360.971] {Default Queue} wl_output#3417.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618360.976] {Default Queue} wl_output#3417.mode(3, 1280, 800, 60000) +[2618360.981] {Default Queue} discarded wl_surface#2727.enter(wl_output#3417) +[2618360.985] {Default Queue} discarded wl_surface#3.enter(wl_output#3417) +[2618360.989] {Default Queue} discarded wl_surface#999.enter(wl_output#3417) +[2618360.993] {Default Queue} discarded wl_surface#3079.enter(wl_output#3417) +[2618360.997] {Default Queue} discarded wl_surface#1191.enter(wl_output#3417) +[2618361.001] {Default Queue} discarded wl_surface#1159.enter(wl_output#3417) +[2618361.005] {Default Queue} discarded wl_surface#1703.enter(wl_output#3417) +[2618361.009] {Default Queue} discarded wl_surface#2215.enter(wl_output#3417) +[2618361.013] {Default Queue} discarded wl_surface#423.enter(wl_output#3417) +[2618361.017] {Default Queue} discarded wl_surface#1447.enter(wl_output#3417) +[2618361.021] {Default Queue} discarded wl_surface#3047.enter(wl_output#3417) +[2618361.025] {Default Queue} discarded wl_surface#2023.enter(wl_output#3417) +[2618361.029] {Default Queue} discarded wl_surface#1639.enter(wl_output#3417) +[2618361.033] {Default Queue} discarded wl_surface#1319.enter(wl_output#3417) +[2618361.038] {Default Queue} discarded wl_surface#1127.enter(wl_output#3417) +[2618361.043] {Default Queue} discarded wl_surface#2151.enter(wl_output#3417) +[2618361.049] {Default Queue} discarded wl_surface#2375.enter(wl_output#3417) +[2618361.054] {Default Queue} discarded wl_surface#2695.enter(wl_output#3417) +[2618361.059] {Default Queue} discarded wl_surface#2919.enter(wl_output#3417) +[2618361.063] {Default Queue} discarded wl_surface#1063.enter(wl_output#3417) +[2618361.068] {Default Queue} discarded wl_surface#455.enter(wl_output#3417) +[2618361.073] {Default Queue} discarded wl_surface#1575.enter(wl_output#3417) +[2618361.078] {Default Queue} discarded wl_surface#1799.enter(wl_output#3417) +[2618361.083] {Default Queue} discarded wl_surface#1415.enter(wl_output#3417) +[2618361.088] {Default Queue} discarded wl_surface#2439.enter(wl_output#3417) +[2618361.097] {Default Queue} discarded wl_surface#2279.enter(wl_output#3417) +[2618361.105] {Default Queue} discarded wl_surface#1831.enter(wl_output#3417) +[2618361.111] {Default Queue} discarded wl_surface#903.enter(wl_output#3417) +[2618361.115] {Default Queue} discarded wl_surface#2663.enter(wl_output#3417) +[2618361.119] {Default Queue} discarded wl_surface#775.enter(wl_output#3417) +[2618361.123] {Default Queue} discarded wl_surface#1991.enter(wl_output#3417) +[2618361.127] {Default Queue} discarded wl_surface#1543.enter(wl_output#3417) +[2618361.131] {Default Queue} discarded wl_surface#135.enter(wl_output#3417) +[2618361.135] {Default Queue} discarded wl_surface#1287.enter(wl_output#3417) +[2618361.139] {Default Queue} discarded wl_surface#1031.enter(wl_output#3417) +[2618361.142] {Default Queue} discarded wl_surface#615.enter(wl_output#3417) +[2618361.146] {Default Queue} discarded wl_surface#3111.enter(wl_output#3417) +[2618361.150] {Default Queue} discarded wl_surface#231.enter(wl_output#3417) +[2618361.154] {Default Queue} discarded wl_surface#2343.enter(wl_output#3417) +[2618361.158] {Default Queue} discarded wl_surface#1863.enter(wl_output#3417) +[2618361.162] {Default Queue} discarded wl_surface#359.enter(wl_output#3417) +[2618361.166] {Default Queue} discarded wl_surface#2983.enter(wl_output#3417) +[2618361.170] {Default Queue} discarded wl_surface#583.enter(wl_output#3417) +[2618361.173] {Default Queue} discarded wl_surface#743.enter(wl_output#3417) +[2618361.178] {Default Queue} discarded wl_surface#3143.enter(wl_output#3417) +[2618361.182] {Default Queue} discarded wl_surface#2535.enter(wl_output#3417) +[2618361.186] {Default Queue} discarded wl_surface#3367.enter(wl_output#3417) +[2618361.189] {Default Queue} discarded wl_surface#967.enter(wl_output#3417) +[2618361.193] {Default Queue} discarded wl_surface#103.enter(wl_output#3417) +[2618361.197] {Default Queue} discarded wl_surface#3271.enter(wl_output#3417) +[2618361.201] {Default Queue} discarded wl_surface#327.enter(wl_output#3417) +[2618361.205] {Default Queue} discarded wl_surface#43.enter(wl_output#3417) +[2618361.209] {Default Queue} discarded wl_surface#2247.enter(wl_output#3417) +[2618361.213] {Default Queue} discarded wl_surface#807.enter(wl_output#3417) +[2618361.216] {Default Queue} discarded wl_surface#19.enter(wl_output#3417) +[2618361.220] {Default Queue} discarded wl_surface#2951.enter(wl_output#3417) +[2618361.224] {Default Queue} discarded wl_surface#1511.enter(wl_output#3417) +[2618361.229] {Default Queue} discarded wl_surface#199.enter(wl_output#3417) +[2618361.232] {Default Queue} discarded wl_surface#391.enter(wl_output#3417) +[2618361.236] {Default Queue} discarded wl_surface#935.enter(wl_output#3417) +[2618361.240] {Default Queue} discarded wl_surface#2823.enter(wl_output#3417) +[2618361.244] {Default Queue} discarded wl_surface#3015.enter(wl_output#3417) +[2618361.248] {Default Queue} discarded wl_surface#1671.enter(wl_output#3417) +[2618361.252] {Default Queue} discarded wl_surface#1351.enter(wl_output#3417) +[2618361.256] {Default Queue} discarded wl_surface#711.enter(wl_output#3417) +[2618361.260] {Default Queue} discarded wl_surface#3175.enter(wl_output#3417) +[2618361.264] {Default Queue} discarded wl_surface#1223.enter(wl_output#3417) +[2618361.268] {Default Queue} discarded wl_surface#1927.enter(wl_output#3417) +[2618361.272] {Default Queue} discarded wl_surface#871.enter(wl_output#3417) +[2618361.276] {Default Queue} discarded wl_surface#1895.enter(wl_output#3417) +[2618361.280] {Default Queue} discarded wl_surface#263.enter(wl_output#3417) +[2618361.284] {Default Queue} discarded wl_surface#551.enter(wl_output#3417) +[2618361.288] {Default Queue} discarded wl_surface#1735.enter(wl_output#3417) +[2618361.292] {Default Queue} discarded wl_surface#1479.enter(wl_output#3417) +[2618361.296] {Default Queue} discarded wl_surface#1772.enter(wl_output#3417) +[2618361.299] {Default Queue} discarded wl_surface#2599.enter(wl_output#3417) +[2618361.303] {Default Queue} discarded wl_surface#2631.enter(wl_output#3417) +[2618361.307] {Default Queue} discarded wl_surface#1959.enter(wl_output#3417) +[2618361.314] {Default Queue} discarded wl_surface#647.enter(wl_output#3417) +[2618361.320] {Default Queue} discarded wl_surface#2055.enter(wl_output#3417) +[2618361.324] {Default Queue} discarded wl_surface#2508.enter(wl_output#3417) +[2618361.328] {Default Queue} discarded wl_surface#71.enter(wl_output#3417) +[2618361.331] {Default Queue} discarded wl_surface#2759.enter(wl_output#3417) +[2618361.335] {Default Queue} discarded wl_surface#2791.enter(wl_output#3417) +[2618361.339] {Default Queue} discarded wl_surface#2887.enter(wl_output#3417) +[2618361.343] {Default Queue} discarded wl_surface#2183.enter(wl_output#3417) +[2618361.347] {Default Queue} discarded wl_surface#2567.enter(wl_output#3417) +[2618361.351] {Default Queue} discarded wl_surface#839.enter(wl_output#3417) +[2618361.355] {Default Queue} discarded wl_surface#1607.enter(wl_output#3417) +[2618361.359] {Default Queue} discarded wl_surface#1095.enter(wl_output#3417) +[2618361.362] {Default Queue} discarded wl_surface#1383.enter(wl_output#3417) +[2618361.366] {Default Queue} discarded wl_surface#487.enter(wl_output#3417) +[2618361.370] {Default Queue} discarded wl_surface#2311.enter(wl_output#3417) +[2618361.374] {Default Queue} discarded wl_surface#519.enter(wl_output#3417) +[2618361.378] {Default Queue} discarded wl_surface#3335.enter(wl_output#3417) +[2618361.382] {Default Queue} discarded wl_surface#3239.enter(wl_output#3417) +[2618361.386] {Default Queue} discarded wl_surface#2087.enter(wl_output#3417) +[2618361.390] {Default Queue} discarded wl_surface#2471.enter(wl_output#3417) +[2618361.394] {Default Queue} discarded wl_surface#295.enter(wl_output#3417) +[2618361.398] {Default Queue} discarded wl_surface#167.enter(wl_output#3417) +[2618361.402] {Default Queue} discarded wl_surface#1255.enter(wl_output#3417) +[2618361.406] {Default Queue} discarded wl_surface#2855.enter(wl_output#3417) +[2618361.409] {Default Queue} discarded wl_surface#3303.enter(wl_output#3417) +[2618361.413] {Default Queue} discarded wl_surface#679.enter(wl_output#3417) +[2618361.418] {Default Queue} discarded wl_surface#2407.enter(wl_output#3417) +[2618361.421] {Default Queue} discarded wl_surface#3207.enter(wl_output#3417) +[2618361.425] {Default Queue} discarded wl_surface#2119.enter(wl_output#3417) +[2618361.429] {Default Queue} wl_registry#3430.global(1, "wl_compositor", 6) +[2618361.435] {Default Queue} -> wl_registry#3430.bind(1, "wl_compositor", 1, new id [unknown]#3436) +[2618361.440] {Default Queue} wl_registry#3430.global(2, "wl_subcompositor", 1) +[2618361.444] {Default Queue} -> wl_registry#3430.bind(2, "wl_subcompositor", 1, new id [unknown]#3437) +[2618361.449] {Default Queue} wl_registry#3430.global(3, "xdg_wm_base", 6) +[2618361.454] {Default Queue} -> wl_registry#3430.bind(3, "xdg_wm_base", 1, new id [unknown]#3438) +[2618361.458] {Default Queue} wl_registry#3430.global(6, "zwlr_layer_shell_v1", 5) +[2618361.463] {Default Queue} wl_registry#3430.global(7, "ext_session_lock_manager_v1", 1) +[2618361.467] {Default Queue} wl_registry#3430.global(8, "wl_shm", 2) +[2618361.472] {Default Queue} -> wl_registry#3430.bind(8, "wl_shm", 1, new id [unknown]#3439) +[2618361.476] {Default Queue} -> wl_registry#3430.bind(8, "wl_shm", 1, new id [unknown]#3440) +[2618361.481] {Default Queue} -> wl_registry#3430.bind(8, "wl_shm", 1, new id [unknown]#3441) +[2618361.485] {Default Queue} wl_registry#3430.global(9, "zxdg_output_manager_v1", 3) +[2618361.489] {Default Queue} wl_registry#3430.global(10, "wp_fractional_scale_manager_v1", 1) +[2618361.495] {Default Queue} wl_registry#3430.global(11, "zwp_tablet_manager_v2", 1) +[2618361.501] {Default Queue} wl_registry#3430.global(12, "zwp_pointer_gestures_v1", 3) +[2618361.507] {Default Queue} wl_registry#3430.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618361.513] {Default Queue} -> wl_registry#3430.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3442) +[2618361.519] {Default Queue} wl_registry#3430.global(14, "zwp_pointer_constraints_v1", 1) +[2618361.524] {Default Queue} -> wl_registry#3430.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3443) +[2618361.532] {Default Queue} wl_registry#3430.global(15, "ext_idle_notifier_v1", 2) +[2618361.538] {Default Queue} wl_registry#3430.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618361.542] {Default Queue} wl_registry#3430.global(17, "wl_data_device_manager", 3) +[2618361.547] {Default Queue} -> wl_registry#3430.bind(17, "wl_data_device_manager", 2, new id [unknown]#3444) +[2618361.552] {Default Queue} -> wl_data_device_manager#3444.create_data_source(new id wl_data_source#3445) +[2618361.557] {Default Queue} -> wl_data_source#3445.offer("text/plain") +[2618361.561] {Default Queue} -> wl_data_source#3445.offer("text/plain;charset=utf-8") +[2618361.566] {Default Queue} -> wl_data_source#3445.offer("TEXT") +[2618361.570] {Default Queue} -> wl_data_source#3445.offer("STRING") +[2618361.574] {Default Queue} -> wl_data_source#3445.offer("UTF8_STRING") +[2618361.578] {Default Queue} wl_registry#3430.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618361.582] {Default Queue} -> wl_registry#3430.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3446) +[2618361.590] {Default Queue} -> zwp_primary_selection_device_manager_v1#3446.create_source(new id zwp_primary_selection_source_v1#3447) +[2618361.598] {Default Queue} -> zwp_primary_selection_source_v1#3447.offer("text/plain") +[2618361.602] {Default Queue} -> zwp_primary_selection_source_v1#3447.offer("text/plain;charset=utf-8") +[2618361.607] {Default Queue} -> zwp_primary_selection_source_v1#3447.offer("TEXT") +[2618361.612] {Default Queue} -> zwp_primary_selection_source_v1#3447.offer("STRING") +[2618361.617] {Default Queue} -> zwp_primary_selection_source_v1#3447.offer("UTF8_STRING") +[2618361.623] {Default Queue} wl_registry#3430.global(19, "zwlr_data_control_manager_v1", 2) +[2618361.631] {Default Queue} wl_registry#3430.global(20, "ext_data_control_manager_v1", 1) +[2618361.637] {Default Queue} wl_registry#3430.global(21, "wp_presentation", 2) +[2618361.643] {Default Queue} wl_registry#3430.global(22, "wp_security_context_manager_v1", 1) +[2618361.649] {Default Queue} wl_registry#3430.global(23, "zwp_text_input_manager_v3", 1) +[2618361.654] {Default Queue} wl_registry#3430.global(24, "zwp_input_method_manager_v2", 1) +[2618361.660] {Default Queue} wl_registry#3430.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618361.667] {Default Queue} wl_registry#3430.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618361.673] {Default Queue} wl_registry#3430.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618361.679] {Default Queue} wl_registry#3430.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618361.685] {Default Queue} wl_registry#3430.global(29, "ext_workspace_manager_v1", 1) +[2618361.690] {Default Queue} wl_registry#3430.global(30, "zwlr_output_manager_v1", 4) +[2618361.696] {Default Queue} wl_registry#3430.global(31, "zwlr_screencopy_manager_v1", 3) +[2618361.702] {Default Queue} wl_registry#3430.global(32, "wp_viewporter", 1) +[2618361.708] {Default Queue} wl_registry#3430.global(33, "zxdg_exporter_v2", 1) +[2618361.713] {Default Queue} wl_registry#3430.global(34, "zxdg_importer_v2", 1) +[2618361.717] {Default Queue} wl_registry#3430.global(36, "xdg_activation_v1", 1) +[2618361.722] {Default Queue} wl_registry#3430.global(37, "mutter_x11_interop", 1) +[2618361.727] {Default Queue} wl_registry#3430.global(38, "wl_seat", 9) +[2618361.732] {Default Queue} -> wl_registry#3430.bind(38, "wl_seat", 1, new id [unknown]#3448) +[2618361.736] {Default Queue} wl_registry#3430.global(39, "wp_cursor_shape_manager_v1", 2) +[2618361.741] {Default Queue} wl_registry#3430.global(40, "wl_output", 4) +[2618361.746] {Default Queue} -> wl_registry#3430.bind(40, "wl_output", 1, new id [unknown]#3449) +[2618361.751] {Default Queue} wl_callback#3431.done(0) +[2618361.756] {Default Queue} discarded wl_surface#3399.enter(wl_output#18) +[2618361.760] {Default Queue} discarded wl_surface#3399.enter(wl_output#57) +[2618361.764] {Default Queue} discarded wl_surface#3399.enter(wl_output#89) +[2618361.768] {Default Queue} discarded wl_surface#3399.enter(wl_output#121) +[2618361.775] {Default Queue} discarded wl_surface#3399.enter(wl_output#153) +[2618361.782] {Default Queue} discarded wl_surface#3399.enter(wl_output#185) +[2618361.786] {Default Queue} discarded wl_surface#3399.enter(wl_output#217) +[2618361.791] {Default Queue} discarded wl_surface#3399.enter(wl_output#249) +[2618361.794] {Default Queue} discarded wl_surface#3399.enter(wl_output#281) +[2618361.798] {Default Queue} discarded wl_surface#3399.enter(wl_output#313) +[2618361.802] {Default Queue} discarded wl_surface#3399.enter(wl_output#345) +[2618361.808] {Default Queue} discarded wl_surface#3399.enter(wl_output#377) +[2618361.812] {Default Queue} discarded wl_surface#3399.enter(wl_output#409) +[2618361.816] {Default Queue} discarded wl_surface#3399.enter(wl_output#441) +[2618361.820] {Default Queue} discarded wl_surface#3399.enter(wl_output#473) +[2618361.824] {Default Queue} discarded wl_surface#3399.enter(wl_output#505) +[2618361.829] {Default Queue} discarded wl_surface#3399.enter(wl_output#537) +[2618361.833] {Default Queue} discarded wl_surface#3399.enter(wl_output#569) +[2618361.837] {Default Queue} discarded wl_surface#3399.enter(wl_output#601) +[2618361.841] {Default Queue} discarded wl_surface#3399.enter(wl_output#633) +[2618361.845] {Default Queue} discarded wl_surface#3399.enter(wl_output#665) +[2618361.849] {Default Queue} discarded wl_surface#3399.enter(wl_output#697) +[2618361.853] {Default Queue} discarded wl_surface#3399.enter(wl_output#729) +[2618361.857] {Default Queue} discarded wl_surface#3399.enter(wl_output#761) +[2618361.868] {Default Queue} discarded wl_surface#3399.enter(wl_output#793) +[2618361.872] {Default Queue} discarded wl_surface#3399.enter(wl_output#825) +[2618361.876] {Default Queue} discarded wl_surface#3399.enter(wl_output#857) +[2618361.881] {Default Queue} discarded wl_surface#3399.enter(wl_output#889) +[2618361.885] {Default Queue} discarded wl_surface#3399.enter(wl_output#921) +[2618361.889] {Default Queue} discarded wl_surface#3399.enter(wl_output#953) +[2618361.893] {Default Queue} discarded wl_surface#3399.enter(wl_output#985) +[2618361.896] {Default Queue} discarded wl_surface#3399.enter(wl_output#1017) +[2618361.900] {Default Queue} discarded wl_surface#3399.enter(wl_output#1049) +[2618361.905] {Default Queue} discarded wl_surface#3399.enter(wl_output#1081) +[2618361.908] {Default Queue} discarded wl_surface#3399.enter(wl_output#1113) +[2618361.912] {Default Queue} discarded wl_surface#3399.enter(wl_output#1145) +[2618361.916] {Default Queue} discarded wl_surface#3399.enter(wl_output#1177) +[2618361.920] {Default Queue} discarded wl_surface#3399.enter(wl_output#1209) +[2618361.924] {Default Queue} discarded wl_surface#3399.enter(wl_output#1241) +[2618361.928] {Default Queue} discarded wl_surface#3399.enter(wl_output#1273) +[2618361.932] {Default Queue} discarded wl_surface#3399.enter(wl_output#1305) +[2618361.937] {Default Queue} discarded wl_surface#3399.enter(wl_output#1337) +[2618361.941] {Default Queue} discarded wl_surface#3399.enter(wl_output#1369) +[2618361.945] {Default Queue} discarded wl_surface#3399.enter(wl_output#1401) +[2618361.948] {Default Queue} discarded wl_surface#3399.enter(wl_output#1433) +[2618361.952] {Default Queue} discarded wl_surface#3399.enter(wl_output#1465) +[2618361.956] {Default Queue} discarded wl_surface#3399.enter(wl_output#1497) +[2618361.960] {Default Queue} discarded wl_surface#3399.enter(wl_output#1529) +[2618361.964] {Default Queue} discarded wl_surface#3399.enter(wl_output#1561) +[2618361.968] {Default Queue} discarded wl_surface#3399.enter(wl_output#1593) +[2618361.972] {Default Queue} discarded wl_surface#3399.enter(wl_output#1625) +[2618361.976] {Default Queue} discarded wl_surface#3399.enter(wl_output#1657) +[2618361.980] {Default Queue} discarded wl_surface#3399.enter(wl_output#1689) +[2618361.984] {Default Queue} discarded wl_surface#3399.enter(wl_output#1721) +[2618361.989] {Default Queue} discarded wl_surface#3399.enter(wl_output#1753) +[2618361.993] {Default Queue} discarded wl_surface#3399.enter(wl_output#1785) +[2618361.997] {Default Queue} discarded wl_surface#3399.enter(wl_output#1817) +[2618362.004] {Default Queue} discarded wl_surface#3399.enter(wl_output#1849) +[2618362.010] {Default Queue} discarded wl_surface#3399.enter(wl_output#1881) +[2618362.014] {Default Queue} discarded wl_surface#3399.enter(wl_output#1913) +[2618362.017] {Default Queue} discarded wl_surface#3399.enter(wl_output#1945) +[2618362.022] {Default Queue} discarded wl_surface#3399.enter(wl_output#1977) +[2618362.026] {Default Queue} discarded wl_surface#3399.enter(wl_output#2009) +[2618362.030] {Default Queue} discarded wl_surface#3399.enter(wl_output#2041) +[2618362.034] {Default Queue} discarded wl_surface#3399.enter(wl_output#2073) +[2618362.038] {Default Queue} discarded wl_surface#3399.enter(wl_output#2105) +[2618362.042] {Default Queue} discarded wl_surface#3399.enter(wl_output#2137) +[2618362.046] {Default Queue} discarded wl_surface#3399.enter(wl_output#2169) +[2618362.050] {Default Queue} discarded wl_surface#3399.enter(wl_output#2201) +[2618362.054] {Default Queue} -> wl_compositor#3372.create_surface(new id wl_surface#3431) +[2618362.058] {Default Queue} -> wl_subcompositor#3437.get_subsurface(new id wl_subsurface#3450, wl_surface#3431, wl_surface#3367) +[2618362.066] {Default Queue} -> wl_subsurface#3450.set_desync() +[2618362.071] {Default Queue} -> wl_subsurface#3450.set_position(0, -14) +[2618362.075] {Default Queue} -> wl_subsurface#3450.place_above(wl_surface#3367) +[2618362.118] {Default Queue} -> wl_shm#3439.create_pool(new id wl_shm_pool#3451, fd 544, 128) +[2618362.125] {Default Queue} -> wl_shm#3439.create_pool(new id wl_shm_pool#3452, fd 545, 128) +[2618362.129] {Default Queue} -> wl_shm_pool#3451.create_buffer(new id wl_buffer#3453, 0, 2, 16, 8, 0) +[2618362.134] {Default Queue} -> wl_shm_pool#3452.create_buffer(new id wl_buffer#3454, 0, 2, 16, 8, 0) +[2618362.142] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3453, 0, 0) +[2618362.147] {Default Queue} -> wl_surface#3431.commit() +[2618362.153] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3453, 0, 0) +[2618362.157] {Default Queue} -> wl_surface#3431.commit() +[2618362.162] {Default Queue} -> wl_compositor#3436.create_region(new id wl_region#3455) +[2618362.166] {Default Queue} -> wl_compositor#3436.create_region(new id wl_region#3456) +[2618362.170] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) +[2618362.175] {Default Queue} -> wl_region#3455.add(0, 0, 0, 0) +[2618362.179] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618362.184] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618362.188] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 16) +[2618362.192] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) +[2618362.200] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3453, 0, 0) +[2618362.204] {Default Queue} -> wl_surface#3431.commit() +[2618362.241] {Default Queue} -> wl_shm#3441.create_pool(new id wl_shm_pool#3457, fd 548, 640) +[2618362.247] {Default Queue} -> wl_shm#3441.create_pool(new id wl_shm_pool#3458, fd 549, 640) +[2618362.251] {Default Queue} -> wl_shm_pool#3457.create_buffer(new id wl_buffer#3459, 0, 10, 16, 40, 0) +[2618362.256] {Default Queue} -> wl_shm_pool#3458.create_buffer(new id wl_buffer#3460, 0, 10, 16, 40, 0) +[2618362.264] {Default Queue} -> wl_compositor#3436.create_surface(new id wl_surface#3461) +[2618362.269] {Default Queue} -> wl_surface#3461.attach(wl_buffer#3459, 0, 0) +[2618362.273] {Default Queue} -> wl_surface#3461.commit() +[2618362.279] {Default Queue} -> wl_surface#3461.attach(wl_buffer#3459, 0, 0) +[2618362.283] {Default Queue} -> wl_surface#3461.commit() +[2618362.292] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3462) +[2618362.297] {Default Queue} -> wl_display#1.sync(new id wl_callback#3463) +[2618365.516] {Default Queue} discarded wl_surface#3399.enter(wl_output#2233) +[2618365.526] {Default Queue} discarded wl_surface#3399.enter(wl_output#2265) +[2618365.531] {Default Queue} discarded wl_surface#3399.enter(wl_output#2297) +[2618365.537] {Default Queue} discarded wl_surface#3399.enter(wl_output#2329) +[2618365.547] {Default Queue} discarded wl_surface#3399.enter(wl_output#2361) +[2618365.555] {Default Queue} discarded wl_surface#3399.enter(wl_output#2393) +[2618365.560] {Default Queue} discarded wl_surface#3399.enter(wl_output#2425) +[2618365.565] {Default Queue} discarded wl_surface#3399.enter(wl_output#2457) +[2618365.570] {Default Queue} discarded wl_surface#3399.enter(wl_output#2489) +[2618365.575] {Default Queue} discarded wl_surface#3399.enter(wl_output#2521) +[2618365.580] {Default Queue} discarded wl_surface#3399.enter(wl_output#2553) +[2618365.585] {Default Queue} discarded wl_surface#3399.enter(wl_output#2585) +[2618365.590] {Default Queue} discarded wl_surface#3399.enter(wl_output#2617) +[2618365.594] {Default Queue} discarded wl_surface#3399.enter(wl_output#2649) +[2618365.599] {Default Queue} discarded wl_surface#3399.enter(wl_output#2681) +[2618365.604] {Default Queue} discarded wl_surface#3399.enter(wl_output#2713) +[2618365.609] {Default Queue} discarded wl_surface#3399.enter(wl_output#2745) +[2618365.614] {Default Queue} discarded wl_surface#3399.enter(wl_output#2777) +[2618365.619] {Default Queue} discarded wl_surface#3399.enter(wl_output#2809) +[2618365.624] {Default Queue} discarded wl_surface#3399.enter(wl_output#2841) +[2618365.629] {Default Queue} discarded wl_surface#3399.enter(wl_output#2873) +[2618365.634] {Default Queue} discarded wl_surface#3399.enter(wl_output#2905) +[2618365.638] {Default Queue} discarded wl_surface#3399.enter(wl_output#2937) +[2618365.644] {Default Queue} discarded wl_surface#3399.enter(wl_output#2969) +[2618365.648] {Default Queue} discarded wl_surface#3399.enter(wl_output#3001) +[2618365.653] {Default Queue} discarded wl_surface#3399.enter(wl_output#3033) +[2618365.658] {Default Queue} discarded wl_surface#3399.enter(wl_output#3065) +[2618365.663] {Default Queue} discarded wl_surface#3399.enter(wl_output#3097) +[2618365.667] {Default Queue} discarded wl_surface#3399.enter(wl_output#3129) +[2618365.672] {Default Queue} discarded wl_surface#3399.enter(wl_output#3161) +[2618365.677] {Default Queue} discarded wl_surface#3399.enter(wl_output#3193) +[2618365.682] {Default Queue} discarded wl_surface#3399.enter(wl_output#3225) +[2618365.686] {Default Queue} discarded wl_surface#3399.enter(wl_output#3257) +[2618365.691] {Default Queue} discarded wl_surface#3399.enter(wl_output#3289) +[2618365.696] {Default Queue} discarded wl_surface#3399.enter(wl_output#3321) +[2618365.701] {Default Queue} discarded wl_surface#3399.enter(wl_output#3353) +[2618365.706] {Default Queue} discarded wl_surface#3399.enter(wl_output#3385) +[2618365.711] {Default Queue} discarded wl_surface#3399.enter(wl_output#3417) +[2618365.799] {Display Queue} wl_display#1.delete_id(3463) +[2618365.806] {Default Queue} wl_keyboard#3432.keymap(1, fd 544, 68213) +[2618365.812] {Default Queue} wl_keyboard#3432.enter(566, wl_surface#19, array[0]) +[2618365.819] {Default Queue} wl_keyboard#3432.modifiers(566, 0, 0, 16, 0) +[2618365.824] {Default Queue} discarded wl_shm#3439.format(875709016) +[2618365.830] {Default Queue} discarded wl_shm#3439.format(1) +[2618365.835] {Default Queue} discarded wl_shm#3439.format(0) +[2618365.839] {Default Queue} discarded wl_shm#3439.format(875708993) +[2618365.844] {Default Queue} discarded wl_shm#3440.format(875709016) +[2618365.849] {Default Queue} discarded wl_shm#3440.format(1) +[2618365.854] {Default Queue} discarded wl_shm#3440.format(0) +[2618365.859] {Default Queue} discarded wl_shm#3440.format(875708993) +[2618365.870] {Default Queue} discarded wl_shm#3441.format(875709016) +[2618365.874] {Default Queue} discarded wl_shm#3441.format(1) +[2618365.879] {Default Queue} discarded wl_shm#3441.format(0) +[2618365.884] {Default Queue} discarded wl_shm#3441.format(875708993) +[2618365.890] {Default Queue} wl_seat#3448.capabilities(7) +[2618365.895] {Default Queue} -> wl_seat#3448.get_keyboard(new id wl_keyboard#3464) +[2618365.900] {Default Queue} -> wl_seat#3448.get_pointer(new id wl_pointer#3465) +[2618365.906] {Default Queue} -> wl_data_device_manager#3444.get_data_device(new id wl_data_device#3466, wl_seat#3448) +[2618365.916] {Default Queue} -> zwp_primary_selection_device_manager_v1#3446.get_device(new id zwp_primary_selection_device_v1#3467, wl_seat#3448) +[2618365.929] {Default Queue} wl_output#3449.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618365.936] {Default Queue} wl_output#3449.mode(3, 1280, 800, 60000) +[2618365.942] {Default Queue} discarded wl_surface#2727.enter(wl_output#3449) +[2618365.947] {Default Queue} discarded wl_surface#3.enter(wl_output#3449) +[2618365.952] {Default Queue} discarded wl_surface#999.enter(wl_output#3449) +[2618365.957] {Default Queue} discarded wl_surface#3079.enter(wl_output#3449) +[2618365.962] {Default Queue} discarded wl_surface#1191.enter(wl_output#3449) +[2618365.967] {Default Queue} discarded wl_surface#1159.enter(wl_output#3449) +[2618365.972] {Default Queue} discarded wl_surface#1703.enter(wl_output#3449) +[2618365.977] {Default Queue} discarded wl_surface#2215.enter(wl_output#3449) +[2618365.982] {Default Queue} discarded wl_surface#423.enter(wl_output#3449) +[2618365.986] {Default Queue} discarded wl_surface#1447.enter(wl_output#3449) +[2618365.991] {Default Queue} discarded wl_surface#3047.enter(wl_output#3449) +[2618365.996] {Default Queue} discarded wl_surface#2023.enter(wl_output#3449) +[2618366.001] {Default Queue} discarded wl_surface#1639.enter(wl_output#3449) +[2618366.006] {Default Queue} discarded wl_surface#1319.enter(wl_output#3449) +[2618366.011] {Default Queue} discarded wl_surface#1127.enter(wl_output#3449) +[2618366.016] {Default Queue} discarded wl_surface#2151.enter(wl_output#3449) +[2618366.020] {Default Queue} discarded wl_surface#2375.enter(wl_output#3449) +[2618366.025] {Default Queue} discarded wl_surface#2695.enter(wl_output#3449) +[2618366.030] {Default Queue} discarded wl_surface#2919.enter(wl_output#3449) +[2618366.036] {Default Queue} discarded wl_surface#1063.enter(wl_output#3449) +[2618366.041] {Default Queue} discarded wl_surface#455.enter(wl_output#3449) +[2618366.046] {Default Queue} discarded wl_surface#1575.enter(wl_output#3449) +[2618366.050] {Default Queue} discarded wl_surface#1799.enter(wl_output#3449) +[2618366.056] {Default Queue} discarded wl_surface#1415.enter(wl_output#3449) +[2618366.060] {Default Queue} discarded wl_surface#2439.enter(wl_output#3449) +[2618366.065] {Default Queue} discarded wl_surface#2279.enter(wl_output#3449) +[2618366.070] {Default Queue} discarded wl_surface#1831.enter(wl_output#3449) +[2618366.075] {Default Queue} discarded wl_surface#903.enter(wl_output#3449) +[2618366.080] {Default Queue} discarded wl_surface#2663.enter(wl_output#3449) +[2618366.086] {Default Queue} discarded wl_surface#775.enter(wl_output#3449) +[2618366.092] {Default Queue} discarded wl_surface#1991.enter(wl_output#3449) +[2618366.097] {Default Queue} discarded wl_surface#1543.enter(wl_output#3449) +[2618366.103] {Default Queue} discarded wl_surface#135.enter(wl_output#3449) +[2618366.107] {Default Queue} discarded wl_surface#1287.enter(wl_output#3449) +[2618366.112] {Default Queue} discarded wl_surface#3399.enter(wl_output#3449) +[2618366.117] {Default Queue} discarded wl_surface#1031.enter(wl_output#3449) +[2618366.123] {Default Queue} discarded wl_surface#615.enter(wl_output#3449) +[2618366.128] {Default Queue} discarded wl_surface#3111.enter(wl_output#3449) +[2618366.133] {Default Queue} discarded wl_surface#231.enter(wl_output#3449) +[2618366.138] {Default Queue} discarded wl_surface#2343.enter(wl_output#3449) +[2618366.143] {Default Queue} discarded wl_surface#1863.enter(wl_output#3449) +[2618366.149] {Default Queue} discarded wl_surface#359.enter(wl_output#3449) +[2618366.154] {Default Queue} discarded wl_surface#2983.enter(wl_output#3449) +[2618366.159] {Default Queue} discarded wl_surface#583.enter(wl_output#3449) +[2618366.163] {Default Queue} discarded wl_surface#743.enter(wl_output#3449) +[2618366.169] {Default Queue} discarded wl_surface#3143.enter(wl_output#3449) +[2618366.174] {Default Queue} discarded wl_surface#2535.enter(wl_output#3449) +[2618366.179] {Default Queue} discarded wl_surface#3367.enter(wl_output#3449) +[2618366.184] {Default Queue} discarded wl_surface#967.enter(wl_output#3449) +[2618366.193] {Default Queue} discarded wl_surface#103.enter(wl_output#3449) +[2618366.200] {Default Queue} discarded wl_surface#3271.enter(wl_output#3449) +[2618366.205] {Default Queue} discarded wl_surface#327.enter(wl_output#3449) +[2618366.210] {Default Queue} discarded wl_surface#43.enter(wl_output#3449) +[2618366.215] {Default Queue} discarded wl_surface#2247.enter(wl_output#3449) +[2618366.220] {Default Queue} discarded wl_surface#807.enter(wl_output#3449) +[2618366.226] {Default Queue} discarded wl_surface#19.enter(wl_output#3449) +[2618366.231] {Default Queue} discarded wl_surface#2951.enter(wl_output#3449) +[2618366.236] {Default Queue} discarded wl_surface#1511.enter(wl_output#3449) +[2618366.241] {Default Queue} discarded wl_surface#199.enter(wl_output#3449) +[2618366.246] {Default Queue} discarded wl_surface#391.enter(wl_output#3449) +[2618366.251] {Default Queue} discarded wl_surface#935.enter(wl_output#3449) +[2618366.256] {Default Queue} discarded wl_surface#2823.enter(wl_output#3449) +[2618366.261] {Default Queue} discarded wl_surface#3015.enter(wl_output#3449) +[2618366.266] {Default Queue} discarded wl_surface#1671.enter(wl_output#3449) +[2618366.271] {Default Queue} discarded wl_surface#1351.enter(wl_output#3449) +[2618366.276] {Default Queue} discarded wl_surface#711.enter(wl_output#3449) +[2618366.281] {Default Queue} discarded wl_surface#3175.enter(wl_output#3449) +[2618366.286] {Default Queue} discarded wl_surface#1223.enter(wl_output#3449) +[2618366.290] {Default Queue} discarded wl_surface#1927.enter(wl_output#3449) +[2618366.296] {Default Queue} discarded wl_surface#871.enter(wl_output#3449) +[2618366.300] {Default Queue} discarded wl_surface#1895.enter(wl_output#3449) +[2618366.305] {Default Queue} discarded wl_surface#263.enter(wl_output#3449) +[2618366.310] {Default Queue} discarded wl_surface#551.enter(wl_output#3449) +[2618366.315] {Default Queue} discarded wl_surface#1735.enter(wl_output#3449) +[2618366.320] {Default Queue} discarded wl_surface#1479.enter(wl_output#3449) +[2618366.325] {Default Queue} discarded wl_surface#1772.enter(wl_output#3449) +[2618366.330] {Default Queue} discarded wl_surface#2599.enter(wl_output#3449) +[2618366.335] {Default Queue} discarded wl_surface#2631.enter(wl_output#3449) +[2618366.340] {Default Queue} discarded wl_surface#1959.enter(wl_output#3449) +[2618366.345] {Default Queue} discarded wl_surface#647.enter(wl_output#3449) +[2618366.350] {Default Queue} discarded wl_surface#2055.enter(wl_output#3449) +[2618366.356] {Default Queue} discarded wl_surface#2508.enter(wl_output#3449) +[2618366.361] {Default Queue} discarded wl_surface#71.enter(wl_output#3449) +[2618366.365] {Default Queue} discarded wl_surface#2759.enter(wl_output#3449) +[2618366.370] {Default Queue} discarded wl_surface#2791.enter(wl_output#3449) +[2618366.376] {Default Queue} discarded wl_surface#2887.enter(wl_output#3449) +[2618366.381] {Default Queue} discarded wl_surface#2183.enter(wl_output#3449) +[2618366.386] {Default Queue} discarded wl_surface#2567.enter(wl_output#3449) +[2618366.391] {Default Queue} discarded wl_surface#839.enter(wl_output#3449) +[2618366.396] {Default Queue} discarded wl_surface#1607.enter(wl_output#3449) +[2618366.401] {Default Queue} discarded wl_surface#1095.enter(wl_output#3449) +[2618366.405] {Default Queue} discarded wl_surface#1383.enter(wl_output#3449) +[2618366.409] {Default Queue} discarded wl_surface#487.enter(wl_output#3449) +[2618366.413] {Default Queue} discarded wl_surface#2311.enter(wl_output#3449) +[2618366.417] {Default Queue} discarded wl_surface#519.enter(wl_output#3449) +[2618366.421] {Default Queue} discarded wl_surface#3335.enter(wl_output#3449) +[2618366.425] {Default Queue} discarded wl_surface#3239.enter(wl_output#3449) +[2618366.429] {Default Queue} discarded wl_surface#2087.enter(wl_output#3449) +[2618366.433] {Default Queue} discarded wl_surface#2471.enter(wl_output#3449) +[2618366.437] {Default Queue} discarded wl_surface#295.enter(wl_output#3449) +[2618366.442] {Default Queue} discarded wl_surface#167.enter(wl_output#3449) +[2618366.446] {Default Queue} discarded wl_surface#1255.enter(wl_output#3449) +[2618366.454] {Default Queue} discarded wl_surface#2855.enter(wl_output#3449) +[2618366.459] {Default Queue} discarded wl_surface#3303.enter(wl_output#3449) +[2618366.463] {Default Queue} discarded wl_surface#679.enter(wl_output#3449) +[2618366.468] {Default Queue} discarded wl_surface#2407.enter(wl_output#3449) +[2618366.471] {Default Queue} discarded wl_surface#3207.enter(wl_output#3449) +[2618366.475] {Default Queue} discarded wl_surface#2119.enter(wl_output#3449) +[2618366.480] {Default Queue} wl_registry#3462.global(1, "wl_compositor", 6) +[2618366.485] {Default Queue} -> wl_registry#3462.bind(1, "wl_compositor", 1, new id [unknown]#3468) +[2618366.490] {Default Queue} wl_registry#3462.global(2, "wl_subcompositor", 1) +[2618366.495] {Default Queue} -> wl_registry#3462.bind(2, "wl_subcompositor", 1, new id [unknown]#3469) +[2618366.500] {Default Queue} wl_registry#3462.global(3, "xdg_wm_base", 6) +[2618366.504] {Default Queue} -> wl_registry#3462.bind(3, "xdg_wm_base", 1, new id [unknown]#3470) +[2618366.509] {Default Queue} wl_registry#3462.global(6, "zwlr_layer_shell_v1", 5) +[2618366.515] {Default Queue} wl_registry#3462.global(7, "ext_session_lock_manager_v1", 1) +[2618366.519] {Default Queue} wl_registry#3462.global(8, "wl_shm", 2) +[2618366.524] {Default Queue} -> wl_registry#3462.bind(8, "wl_shm", 1, new id [unknown]#3471) +[2618366.529] {Default Queue} -> wl_registry#3462.bind(8, "wl_shm", 1, new id [unknown]#3472) +[2618366.534] {Default Queue} -> wl_registry#3462.bind(8, "wl_shm", 1, new id [unknown]#3473) +[2618366.538] {Default Queue} wl_registry#3462.global(9, "zxdg_output_manager_v1", 3) +[2618366.543] {Default Queue} wl_registry#3462.global(10, "wp_fractional_scale_manager_v1", 1) +[2618366.548] {Default Queue} wl_registry#3462.global(11, "zwp_tablet_manager_v2", 1) +[2618366.553] {Default Queue} wl_registry#3462.global(12, "zwp_pointer_gestures_v1", 3) +[2618366.557] {Default Queue} wl_registry#3462.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618366.562] {Default Queue} -> wl_registry#3462.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3474) +[2618366.567] {Default Queue} wl_registry#3462.global(14, "zwp_pointer_constraints_v1", 1) +[2618366.572] {Default Queue} -> wl_registry#3462.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3475) +[2618366.576] {Default Queue} wl_registry#3462.global(15, "ext_idle_notifier_v1", 2) +[2618366.582] {Default Queue} wl_registry#3462.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618366.587] {Default Queue} wl_registry#3462.global(17, "wl_data_device_manager", 3) +[2618366.591] {Default Queue} -> wl_registry#3462.bind(17, "wl_data_device_manager", 2, new id [unknown]#3476) +[2618366.596] {Default Queue} -> wl_data_device_manager#3476.create_data_source(new id wl_data_source#3477) +[2618366.600] {Default Queue} -> wl_data_source#3477.offer("text/plain") +[2618366.605] {Default Queue} -> wl_data_source#3477.offer("text/plain;charset=utf-8") +[2618366.611] {Default Queue} -> wl_data_source#3477.offer("TEXT") +[2618366.616] {Default Queue} -> wl_data_source#3477.offer("STRING") +[2618366.621] {Default Queue} -> wl_data_source#3477.offer("UTF8_STRING") +[2618366.625] {Default Queue} wl_registry#3462.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618366.631] {Default Queue} -> wl_registry#3462.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3478) +[2618366.639] {Default Queue} -> zwp_primary_selection_device_manager_v1#3478.create_source(new id zwp_primary_selection_source_v1#3479) +[2618366.647] {Default Queue} -> zwp_primary_selection_source_v1#3479.offer("text/plain") +[2618366.651] {Default Queue} -> zwp_primary_selection_source_v1#3479.offer("text/plain;charset=utf-8") +[2618366.655] {Default Queue} -> zwp_primary_selection_source_v1#3479.offer("TEXT") +[2618366.659] {Default Queue} -> zwp_primary_selection_source_v1#3479.offer("STRING") +[2618366.663] {Default Queue} -> zwp_primary_selection_source_v1#3479.offer("UTF8_STRING") +[2618366.667] {Default Queue} wl_registry#3462.global(19, "zwlr_data_control_manager_v1", 2) +[2618366.675] {Default Queue} wl_registry#3462.global(20, "ext_data_control_manager_v1", 1) +[2618366.681] {Default Queue} wl_registry#3462.global(21, "wp_presentation", 2) +[2618366.686] {Default Queue} wl_registry#3462.global(22, "wp_security_context_manager_v1", 1) +[2618366.690] {Default Queue} wl_registry#3462.global(23, "zwp_text_input_manager_v3", 1) +[2618366.694] {Default Queue} wl_registry#3462.global(24, "zwp_input_method_manager_v2", 1) +[2618366.699] {Default Queue} wl_registry#3462.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618366.703] {Default Queue} wl_registry#3462.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618366.707] {Default Queue} wl_registry#3462.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618366.712] {Default Queue} wl_registry#3462.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618366.716] {Default Queue} wl_registry#3462.global(29, "ext_workspace_manager_v1", 1) +[2618366.720] {Default Queue} wl_registry#3462.global(30, "zwlr_output_manager_v1", 4) +[2618366.725] {Default Queue} wl_registry#3462.global(31, "zwlr_screencopy_manager_v1", 3) +[2618366.729] {Default Queue} wl_registry#3462.global(32, "wp_viewporter", 1) +[2618366.733] {Default Queue} wl_registry#3462.global(33, "zxdg_exporter_v2", 1) +[2618366.738] {Default Queue} wl_registry#3462.global(34, "zxdg_importer_v2", 1) +[2618366.742] {Default Queue} wl_registry#3462.global(36, "xdg_activation_v1", 1) +[2618366.746] {Default Queue} wl_registry#3462.global(37, "mutter_x11_interop", 1) +[2618366.751] {Default Queue} wl_registry#3462.global(38, "wl_seat", 9) +[2618366.755] {Default Queue} -> wl_registry#3462.bind(38, "wl_seat", 1, new id [unknown]#3480) +[2618366.760] {Default Queue} wl_registry#3462.global(39, "wp_cursor_shape_manager_v1", 2) +[2618366.764] {Default Queue} wl_registry#3462.global(40, "wl_output", 4) +[2618366.769] {Default Queue} -> wl_registry#3462.bind(40, "wl_output", 1, new id [unknown]#3481) +[2618366.773] {Default Queue} wl_callback#3463.done(0) +[2618366.778] {Default Queue} discarded wl_surface#3431.enter(wl_output#18) +[2618366.782] {Default Queue} discarded wl_surface#3431.enter(wl_output#57) +[2618366.786] {Default Queue} discarded wl_surface#3431.enter(wl_output#89) +[2618366.790] {Default Queue} discarded wl_surface#3431.enter(wl_output#121) +[2618366.794] {Default Queue} discarded wl_surface#3431.enter(wl_output#153) +[2618366.798] {Default Queue} discarded wl_surface#3431.enter(wl_output#185) +[2618366.803] {Default Queue} discarded wl_surface#3431.enter(wl_output#217) +[2618366.807] {Default Queue} discarded wl_surface#3431.enter(wl_output#249) +[2618366.811] {Default Queue} discarded wl_surface#3431.enter(wl_output#281) +[2618366.815] {Default Queue} discarded wl_surface#3431.enter(wl_output#313) +[2618366.819] {Default Queue} discarded wl_surface#3431.enter(wl_output#345) +[2618366.823] {Default Queue} discarded wl_surface#3431.enter(wl_output#377) +[2618366.826] {Default Queue} discarded wl_surface#3431.enter(wl_output#409) +[2618366.831] {Default Queue} discarded wl_surface#3431.enter(wl_output#441) +[2618366.837] {Default Queue} discarded wl_surface#3431.enter(wl_output#473) +[2618366.843] {Default Queue} discarded wl_surface#3431.enter(wl_output#505) +[2618366.848] {Default Queue} discarded wl_surface#3431.enter(wl_output#537) +[2618366.853] {Default Queue} discarded wl_surface#3431.enter(wl_output#569) +[2618366.858] {Default Queue} discarded wl_surface#3431.enter(wl_output#601) +[2618366.863] {Default Queue} discarded wl_surface#3431.enter(wl_output#633) +[2618366.867] {Default Queue} discarded wl_surface#3431.enter(wl_output#665) +[2618366.876] {Default Queue} discarded wl_surface#3431.enter(wl_output#697) +[2618366.880] {Default Queue} discarded wl_surface#3431.enter(wl_output#729) +[2618366.884] {Default Queue} discarded wl_surface#3431.enter(wl_output#761) +[2618366.888] {Default Queue} discarded wl_surface#3431.enter(wl_output#793) +[2618366.892] {Default Queue} discarded wl_surface#3431.enter(wl_output#825) +[2618366.896] {Default Queue} discarded wl_surface#3431.enter(wl_output#857) +[2618366.903] {Default Queue} discarded wl_surface#3431.enter(wl_output#889) +[2618366.909] {Default Queue} discarded wl_surface#3431.enter(wl_output#921) +[2618366.912] {Default Queue} discarded wl_surface#3431.enter(wl_output#953) +[2618366.916] {Default Queue} discarded wl_surface#3431.enter(wl_output#985) +[2618366.921] {Default Queue} discarded wl_surface#3431.enter(wl_output#1017) +[2618366.925] {Default Queue} discarded wl_surface#3431.enter(wl_output#1049) +[2618366.929] {Default Queue} discarded wl_surface#3431.enter(wl_output#1081) +[2618366.932] {Default Queue} discarded wl_surface#3431.enter(wl_output#1113) +[2618366.936] {Default Queue} discarded wl_surface#3431.enter(wl_output#1145) +[2618366.940] {Default Queue} discarded wl_surface#3431.enter(wl_output#1177) +[2618366.944] {Default Queue} discarded wl_surface#3431.enter(wl_output#1209) +[2618366.948] {Default Queue} discarded wl_surface#3431.enter(wl_output#1241) +[2618366.952] {Default Queue} discarded wl_surface#3431.enter(wl_output#1273) +[2618366.956] {Default Queue} discarded wl_surface#3431.enter(wl_output#1305) +[2618366.960] {Default Queue} discarded wl_surface#3431.enter(wl_output#1337) +[2618366.964] {Default Queue} discarded wl_surface#3431.enter(wl_output#1369) +[2618366.968] {Default Queue} discarded wl_surface#3431.enter(wl_output#1401) +[2618366.972] {Default Queue} discarded wl_surface#3431.enter(wl_output#1433) +[2618366.976] {Default Queue} discarded wl_surface#3431.enter(wl_output#1465) +[2618366.980] {Default Queue} discarded wl_surface#3431.enter(wl_output#1497) +[2618366.984] {Default Queue} discarded wl_surface#3431.enter(wl_output#1529) +[2618366.988] {Default Queue} discarded wl_surface#3431.enter(wl_output#1561) +[2618366.992] {Default Queue} discarded wl_surface#3431.enter(wl_output#1593) +[2618366.996] {Default Queue} discarded wl_surface#3431.enter(wl_output#1625) +[2618367.000] {Default Queue} discarded wl_surface#3431.enter(wl_output#1657) +[2618367.003] {Default Queue} discarded wl_surface#3431.enter(wl_output#1689) +[2618367.007] {Default Queue} discarded wl_surface#3431.enter(wl_output#1721) +[2618367.011] {Default Queue} discarded wl_surface#3431.enter(wl_output#1753) +[2618367.015] {Default Queue} discarded wl_surface#3431.enter(wl_output#1785) +[2618367.019] {Default Queue} discarded wl_surface#3431.enter(wl_output#1817) +[2618367.023] {Default Queue} discarded wl_surface#3431.enter(wl_output#1849) +[2618367.027] {Default Queue} discarded wl_surface#3431.enter(wl_output#1881) +[2618367.031] {Default Queue} discarded wl_surface#3431.enter(wl_output#1913) +[2618367.035] {Default Queue} discarded wl_surface#3431.enter(wl_output#1945) +[2618367.039] {Default Queue} discarded wl_surface#3431.enter(wl_output#1977) +[2618367.044] {Default Queue} discarded wl_surface#3431.enter(wl_output#2009) +[2618367.048] {Default Queue} discarded wl_surface#3431.enter(wl_output#2041) +[2618367.052] {Default Queue} discarded wl_surface#3431.enter(wl_output#2073) +[2618367.056] {Default Queue} discarded wl_surface#3431.enter(wl_output#2105) +[2618367.060] {Default Queue} discarded wl_surface#3431.enter(wl_output#2137) +[2618367.064] {Default Queue} discarded wl_surface#3431.enter(wl_output#2169) +[2618367.068] {Default Queue} -> wl_compositor#3372.create_surface(new id wl_surface#3463) +[2618367.072] {Default Queue} -> wl_subcompositor#3469.get_subsurface(new id wl_subsurface#3482, wl_surface#3463, wl_surface#3367) +[2618367.081] {Default Queue} -> wl_subsurface#3482.set_desync() +[2618367.085] {Default Queue} -> wl_subsurface#3482.set_position(0, 0) +[2618367.090] {Default Queue} -> wl_subsurface#3482.place_above(wl_surface#3367) +[2618367.129] {Default Queue} -> wl_shm#3471.create_pool(new id wl_shm_pool#3483, fd 549, 16) +[2618367.136] {Default Queue} -> wl_shm#3471.create_pool(new id wl_shm_pool#3484, fd 550, 16) +[2618367.141] {Default Queue} -> wl_shm_pool#3483.create_buffer(new id wl_buffer#3485, 0, 2, 2, 8, 0) +[2618367.146] {Default Queue} -> wl_shm_pool#3484.create_buffer(new id wl_buffer#3486, 0, 2, 2, 8, 0) +[2618367.154] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3485, 0, 0) +[2618367.161] {Default Queue} -> wl_surface#3463.commit() +[2618367.168] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3485, 0, 0) +[2618367.173] {Default Queue} -> wl_surface#3463.commit() +[2618367.177] {Default Queue} -> wl_compositor#3468.create_region(new id wl_region#3487) +[2618367.181] {Default Queue} -> wl_compositor#3468.create_region(new id wl_region#3488) +[2618367.185] {Default Queue} -> wl_region#3487.subtract(0, 0, 2, 2) +[2618367.190] {Default Queue} -> wl_region#3487.add(0, 0, 0, 0) +[2618367.194] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) +[2618367.199] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) +[2618367.203] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) +[2618367.209] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) +[2618367.216] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3485, 0, 0) +[2618367.220] {Default Queue} -> wl_surface#3463.commit() +[2618367.260] {Default Queue} -> wl_shm#3473.create_pool(new id wl_shm_pool#3489, fd 553, 640) +[2618367.267] {Default Queue} -> wl_shm#3473.create_pool(new id wl_shm_pool#3490, fd 554, 640) +[2618367.271] {Default Queue} -> wl_shm_pool#3489.create_buffer(new id wl_buffer#3491, 0, 10, 16, 40, 0) +[2618367.276] {Default Queue} -> wl_shm_pool#3490.create_buffer(new id wl_buffer#3492, 0, 10, 16, 40, 0) +[2618367.283] {Default Queue} -> wl_compositor#3468.create_surface(new id wl_surface#3493) +[2618367.287] {Default Queue} -> wl_surface#3493.attach(wl_buffer#3491, 0, 0) +[2618367.292] {Default Queue} -> wl_surface#3493.commit() +[2618367.297] {Default Queue} -> wl_surface#3493.attach(wl_buffer#3491, 0, 0) +[2618367.302] {Default Queue} -> wl_surface#3493.commit() +[2618367.309] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3494) +[2618367.314] {Default Queue} -> wl_display#1.sync(new id wl_callback#3495) +[2618371.179] {Default Queue} discarded wl_surface#3431.enter(wl_output#2201) +[2618371.185] {Default Queue} discarded wl_surface#3431.enter(wl_output#2233) +[2618371.189] {Default Queue} discarded wl_surface#3431.enter(wl_output#2265) +[2618371.193] {Default Queue} discarded wl_surface#3431.enter(wl_output#2297) +[2618371.198] {Default Queue} discarded wl_surface#3431.enter(wl_output#2329) +[2618371.201] {Default Queue} discarded wl_surface#3431.enter(wl_output#2361) +[2618371.205] {Default Queue} discarded wl_surface#3431.enter(wl_output#2393) +[2618371.209] {Default Queue} discarded wl_surface#3431.enter(wl_output#2425) +[2618371.213] {Default Queue} discarded wl_surface#3431.enter(wl_output#2457) +[2618371.217] {Default Queue} discarded wl_surface#3431.enter(wl_output#2489) +[2618371.221] {Default Queue} discarded wl_surface#3431.enter(wl_output#2521) +[2618371.225] {Default Queue} discarded wl_surface#3431.enter(wl_output#2553) +[2618371.229] {Default Queue} discarded wl_surface#3431.enter(wl_output#2585) +[2618371.233] {Default Queue} discarded wl_surface#3431.enter(wl_output#2617) +[2618371.238] {Default Queue} discarded wl_surface#3431.enter(wl_output#2649) +[2618371.242] {Default Queue} discarded wl_surface#3431.enter(wl_output#2681) +[2618371.245] {Default Queue} discarded wl_surface#3431.enter(wl_output#2713) +[2618371.249] {Default Queue} discarded wl_surface#3431.enter(wl_output#2745) +[2618371.253] {Default Queue} discarded wl_surface#3431.enter(wl_output#2777) +[2618371.257] {Default Queue} discarded wl_surface#3431.enter(wl_output#2809) +[2618371.261] {Default Queue} discarded wl_surface#3431.enter(wl_output#2841) +[2618371.265] {Default Queue} discarded wl_surface#3431.enter(wl_output#2873) +[2618371.269] {Default Queue} discarded wl_surface#3431.enter(wl_output#2905) +[2618371.273] {Default Queue} discarded wl_surface#3431.enter(wl_output#2937) +[2618371.277] {Default Queue} discarded wl_surface#3431.enter(wl_output#2969) +[2618371.280] {Default Queue} discarded wl_surface#3431.enter(wl_output#3001) +[2618371.284] {Default Queue} discarded wl_surface#3431.enter(wl_output#3033) +[2618371.288] {Default Queue} discarded wl_surface#3431.enter(wl_output#3065) +[2618371.296] {Default Queue} discarded wl_surface#3431.enter(wl_output#3097) +[2618371.303] {Default Queue} discarded wl_surface#3431.enter(wl_output#3129) +[2618371.307] {Default Queue} discarded wl_surface#3431.enter(wl_output#3161) +[2618371.310] {Default Queue} discarded wl_surface#3431.enter(wl_output#3193) +[2618371.314] {Default Queue} discarded wl_surface#3431.enter(wl_output#3225) +[2618371.318] {Default Queue} discarded wl_surface#3431.enter(wl_output#3257) +[2618371.322] {Default Queue} discarded wl_surface#3431.enter(wl_output#3289) +[2618371.326] {Default Queue} discarded wl_surface#3431.enter(wl_output#3321) +[2618371.330] {Default Queue} discarded wl_surface#3431.enter(wl_output#3353) +[2618371.333] {Default Queue} discarded wl_surface#3431.enter(wl_output#3385) +[2618371.337] {Default Queue} discarded wl_surface#3431.enter(wl_output#3417) +[2618371.341] {Default Queue} discarded wl_surface#3431.enter(wl_output#3449) +[2618371.495] {Display Queue} wl_display#1.delete_id(3495) +[2618371.501] {Default Queue} wl_keyboard#3464.keymap(1, fd 549, 68213) +[2618371.506] {Default Queue} wl_keyboard#3464.enter(566, wl_surface#19, array[0]) +[2618371.511] {Default Queue} wl_keyboard#3464.modifiers(566, 0, 0, 16, 0) +[2618371.516] {Default Queue} discarded wl_shm#3471.format(875709016) +[2618371.520] {Default Queue} discarded wl_shm#3471.format(1) +[2618371.524] {Default Queue} discarded wl_shm#3471.format(0) +[2618371.529] {Default Queue} discarded wl_shm#3471.format(875708993) +[2618371.533] {Default Queue} discarded wl_shm#3472.format(875709016) +[2618371.537] {Default Queue} discarded wl_shm#3472.format(1) +[2618371.541] {Default Queue} discarded wl_shm#3472.format(0) +[2618371.545] {Default Queue} discarded wl_shm#3472.format(875708993) +[2618371.549] {Default Queue} discarded wl_shm#3473.format(875709016) +[2618371.553] {Default Queue} discarded wl_shm#3473.format(1) +[2618371.557] {Default Queue} discarded wl_shm#3473.format(0) +[2618371.561] {Default Queue} discarded wl_shm#3473.format(875708993) +[2618371.565] {Default Queue} wl_seat#3480.capabilities(7) +[2618371.570] {Default Queue} -> wl_seat#3480.get_keyboard(new id wl_keyboard#3496) +[2618371.574] {Default Queue} -> wl_seat#3480.get_pointer(new id wl_pointer#3497) +[2618371.579] {Default Queue} -> wl_data_device_manager#3476.get_data_device(new id wl_data_device#3498, wl_seat#3480) +[2618371.584] {Default Queue} -> zwp_primary_selection_device_manager_v1#3478.get_device(new id zwp_primary_selection_device_v1#3499, wl_seat#3480) +[2618371.592] {Default Queue} wl_output#3481.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618371.597] {Default Queue} wl_output#3481.mode(3, 1280, 800, 60000) +[2618371.602] {Default Queue} discarded wl_surface#2727.enter(wl_output#3481) +[2618371.606] {Default Queue} discarded wl_surface#3.enter(wl_output#3481) +[2618371.610] {Default Queue} discarded wl_surface#999.enter(wl_output#3481) +[2618371.614] {Default Queue} discarded wl_surface#3079.enter(wl_output#3481) +[2618371.618] {Default Queue} discarded wl_surface#1191.enter(wl_output#3481) +[2618371.622] {Default Queue} discarded wl_surface#1159.enter(wl_output#3481) +[2618371.627] {Default Queue} discarded wl_surface#1703.enter(wl_output#3481) +[2618371.631] {Default Queue} discarded wl_surface#2215.enter(wl_output#3481) +[2618371.635] {Default Queue} discarded wl_surface#423.enter(wl_output#3481) +[2618371.639] {Default Queue} discarded wl_surface#1447.enter(wl_output#3481) +[2618371.643] {Default Queue} discarded wl_surface#3047.enter(wl_output#3481) +[2618371.647] {Default Queue} discarded wl_surface#2023.enter(wl_output#3481) +[2618371.651] {Default Queue} discarded wl_surface#1639.enter(wl_output#3481) +[2618371.655] {Default Queue} discarded wl_surface#1319.enter(wl_output#3481) +[2618371.659] {Default Queue} discarded wl_surface#1127.enter(wl_output#3481) +[2618371.663] {Default Queue} discarded wl_surface#2151.enter(wl_output#3481) +[2618371.667] {Default Queue} discarded wl_surface#2375.enter(wl_output#3481) +[2618371.672] {Default Queue} discarded wl_surface#2695.enter(wl_output#3481) +[2618371.679] {Default Queue} discarded wl_surface#2919.enter(wl_output#3481) +[2618371.684] {Default Queue} discarded wl_surface#1063.enter(wl_output#3481) +[2618371.688] {Default Queue} discarded wl_surface#455.enter(wl_output#3481) +[2618371.692] {Default Queue} discarded wl_surface#1575.enter(wl_output#3481) +[2618371.696] {Default Queue} discarded wl_surface#1799.enter(wl_output#3481) +[2618371.700] {Default Queue} discarded wl_surface#1415.enter(wl_output#3481) +[2618371.704] {Default Queue} discarded wl_surface#2439.enter(wl_output#3481) +[2618371.707] {Default Queue} discarded wl_surface#2279.enter(wl_output#3481) +[2618371.711] {Default Queue} discarded wl_surface#1831.enter(wl_output#3481) +[2618371.715] {Default Queue} discarded wl_surface#903.enter(wl_output#3481) +[2618371.719] {Default Queue} discarded wl_surface#2663.enter(wl_output#3481) +[2618371.723] {Default Queue} discarded wl_surface#775.enter(wl_output#3481) +[2618371.727] {Default Queue} discarded wl_surface#1991.enter(wl_output#3481) +[2618371.730] {Default Queue} discarded wl_surface#1543.enter(wl_output#3481) +[2618371.734] {Default Queue} discarded wl_surface#135.enter(wl_output#3481) +[2618371.738] {Default Queue} discarded wl_surface#1287.enter(wl_output#3481) +[2618371.742] {Default Queue} discarded wl_surface#3399.enter(wl_output#3481) +[2618371.746] {Default Queue} discarded wl_surface#1031.enter(wl_output#3481) +[2618371.750] {Default Queue} discarded wl_surface#615.enter(wl_output#3481) +[2618371.754] {Default Queue} discarded wl_surface#3111.enter(wl_output#3481) +[2618371.758] {Default Queue} discarded wl_surface#231.enter(wl_output#3481) +[2618371.762] {Default Queue} discarded wl_surface#2343.enter(wl_output#3481) +[2618371.766] {Default Queue} discarded wl_surface#1863.enter(wl_output#3481) +[2618371.769] {Default Queue} discarded wl_surface#359.enter(wl_output#3481) +[2618371.773] {Default Queue} discarded wl_surface#2983.enter(wl_output#3481) +[2618371.777] {Default Queue} discarded wl_surface#583.enter(wl_output#3481) +[2618371.781] {Default Queue} discarded wl_surface#743.enter(wl_output#3481) +[2618371.785] {Default Queue} discarded wl_surface#3143.enter(wl_output#3481) +[2618371.789] {Default Queue} discarded wl_surface#2535.enter(wl_output#3481) +[2618371.793] {Default Queue} discarded wl_surface#3367.enter(wl_output#3481) +[2618371.797] {Default Queue} discarded wl_surface#967.enter(wl_output#3481) +[2618371.801] {Default Queue} discarded wl_surface#103.enter(wl_output#3481) +[2618371.805] {Default Queue} discarded wl_surface#3271.enter(wl_output#3481) +[2618371.808] {Default Queue} discarded wl_surface#327.enter(wl_output#3481) +[2618371.813] {Default Queue} discarded wl_surface#43.enter(wl_output#3481) +[2618371.817] {Default Queue} discarded wl_surface#2247.enter(wl_output#3481) +[2618371.820] {Default Queue} discarded wl_surface#807.enter(wl_output#3481) +[2618371.825] {Default Queue} discarded wl_surface#19.enter(wl_output#3481) +[2618371.828] {Default Queue} discarded wl_surface#2951.enter(wl_output#3481) +[2618371.832] {Default Queue} discarded wl_surface#1511.enter(wl_output#3481) +[2618371.836] {Default Queue} discarded wl_surface#199.enter(wl_output#3481) +[2618371.840] {Default Queue} discarded wl_surface#391.enter(wl_output#3481) +[2618371.844] {Default Queue} discarded wl_surface#935.enter(wl_output#3481) +[2618371.849] {Default Queue} discarded wl_surface#2823.enter(wl_output#3481) +[2618371.853] {Default Queue} discarded wl_surface#3015.enter(wl_output#3481) +[2618371.857] {Default Queue} discarded wl_surface#1671.enter(wl_output#3481) +[2618371.869] {Default Queue} discarded wl_surface#1351.enter(wl_output#3481) +[2618371.874] {Default Queue} discarded wl_surface#711.enter(wl_output#3481) +[2618371.878] {Default Queue} discarded wl_surface#3175.enter(wl_output#3481) +[2618371.881] {Default Queue} discarded wl_surface#3431.enter(wl_output#3481) +[2618371.885] {Default Queue} discarded wl_surface#1223.enter(wl_output#3481) +[2618371.889] {Default Queue} discarded wl_surface#1927.enter(wl_output#3481) +[2618371.893] {Default Queue} discarded wl_surface#871.enter(wl_output#3481) +[2618371.900] {Default Queue} discarded wl_surface#1895.enter(wl_output#3481) +[2618371.905] {Default Queue} discarded wl_surface#263.enter(wl_output#3481) +[2618371.909] {Default Queue} discarded wl_surface#551.enter(wl_output#3481) +[2618371.913] {Default Queue} discarded wl_surface#1735.enter(wl_output#3481) +[2618371.917] {Default Queue} discarded wl_surface#1479.enter(wl_output#3481) +[2618371.922] {Default Queue} discarded wl_surface#1772.enter(wl_output#3481) +[2618371.926] {Default Queue} discarded wl_surface#2599.enter(wl_output#3481) +[2618371.930] {Default Queue} discarded wl_surface#2631.enter(wl_output#3481) +[2618371.933] {Default Queue} discarded wl_surface#1959.enter(wl_output#3481) +[2618371.937] {Default Queue} discarded wl_surface#647.enter(wl_output#3481) +[2618371.941] {Default Queue} discarded wl_surface#2055.enter(wl_output#3481) +[2618371.945] {Default Queue} discarded wl_surface#2508.enter(wl_output#3481) +[2618371.949] {Default Queue} discarded wl_surface#71.enter(wl_output#3481) +[2618371.953] {Default Queue} discarded wl_surface#2759.enter(wl_output#3481) +[2618371.957] {Default Queue} discarded wl_surface#2791.enter(wl_output#3481) +[2618371.961] {Default Queue} discarded wl_surface#2887.enter(wl_output#3481) +[2618371.965] {Default Queue} discarded wl_surface#2183.enter(wl_output#3481) +[2618371.969] {Default Queue} discarded wl_surface#2567.enter(wl_output#3481) +[2618371.973] {Default Queue} discarded wl_surface#839.enter(wl_output#3481) +[2618371.977] {Default Queue} discarded wl_surface#1607.enter(wl_output#3481) +[2618371.981] {Default Queue} discarded wl_surface#1095.enter(wl_output#3481) +[2618371.985] {Default Queue} discarded wl_surface#1383.enter(wl_output#3481) +[2618371.989] {Default Queue} discarded wl_surface#487.enter(wl_output#3481) +[2618371.992] {Default Queue} discarded wl_surface#2311.enter(wl_output#3481) +[2618371.996] {Default Queue} discarded wl_surface#519.enter(wl_output#3481) +[2618372.000] {Default Queue} discarded wl_surface#3335.enter(wl_output#3481) +[2618372.004] {Default Queue} discarded wl_surface#3239.enter(wl_output#3481) +[2618372.008] {Default Queue} discarded wl_surface#2087.enter(wl_output#3481) +[2618372.012] {Default Queue} discarded wl_surface#2471.enter(wl_output#3481) +[2618372.016] {Default Queue} discarded wl_surface#295.enter(wl_output#3481) +[2618372.020] {Default Queue} discarded wl_surface#167.enter(wl_output#3481) +[2618372.024] {Default Queue} discarded wl_surface#1255.enter(wl_output#3481) +[2618372.028] {Default Queue} discarded wl_surface#2855.enter(wl_output#3481) +[2618372.033] {Default Queue} discarded wl_surface#3303.enter(wl_output#3481) +[2618372.037] {Default Queue} discarded wl_surface#679.enter(wl_output#3481) +[2618372.041] {Default Queue} discarded wl_surface#2407.enter(wl_output#3481) +[2618372.046] {Default Queue} discarded wl_surface#3207.enter(wl_output#3481) +[2618372.050] {Default Queue} discarded wl_surface#2119.enter(wl_output#3481) +[2618372.054] {Default Queue} wl_registry#3494.global(1, "wl_compositor", 6) +[2618372.060] {Default Queue} -> wl_registry#3494.bind(1, "wl_compositor", 1, new id [unknown]#3500) +[2618372.066] {Default Queue} wl_registry#3494.global(2, "wl_subcompositor", 1) +[2618372.070] {Default Queue} -> wl_registry#3494.bind(2, "wl_subcompositor", 1, new id [unknown]#3501) +[2618372.075] {Default Queue} wl_registry#3494.global(3, "xdg_wm_base", 6) +[2618372.080] {Default Queue} -> wl_registry#3494.bind(3, "xdg_wm_base", 1, new id [unknown]#3502) +[2618372.085] {Default Queue} wl_registry#3494.global(6, "zwlr_layer_shell_v1", 5) +[2618372.089] {Default Queue} wl_registry#3494.global(7, "ext_session_lock_manager_v1", 1) +[2618372.094] {Default Queue} wl_registry#3494.global(8, "wl_shm", 2) +[2618372.099] {Default Queue} -> wl_registry#3494.bind(8, "wl_shm", 1, new id [unknown]#3503) +[2618372.103] {Default Queue} -> wl_registry#3494.bind(8, "wl_shm", 1, new id [unknown]#3504) +[2618372.108] {Default Queue} -> wl_registry#3494.bind(8, "wl_shm", 1, new id [unknown]#3505) +[2618372.112] {Default Queue} wl_registry#3494.global(9, "zxdg_output_manager_v1", 3) +[2618372.120] {Default Queue} wl_registry#3494.global(10, "wp_fractional_scale_manager_v1", 1) +[2618372.126] {Default Queue} wl_registry#3494.global(11, "zwp_tablet_manager_v2", 1) +[2618372.130] {Default Queue} wl_registry#3494.global(12, "zwp_pointer_gestures_v1", 3) +[2618372.135] {Default Queue} wl_registry#3494.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618372.139] {Default Queue} -> wl_registry#3494.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3506) +[2618372.144] {Default Queue} wl_registry#3494.global(14, "zwp_pointer_constraints_v1", 1) +[2618372.148] {Default Queue} -> wl_registry#3494.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3507) +[2618372.153] {Default Queue} wl_registry#3494.global(15, "ext_idle_notifier_v1", 2) +[2618372.158] {Default Queue} wl_registry#3494.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618372.164] {Default Queue} wl_registry#3494.global(17, "wl_data_device_manager", 3) +[2618372.171] {Default Queue} -> wl_registry#3494.bind(17, "wl_data_device_manager", 2, new id [unknown]#3508) +[2618372.177] {Default Queue} -> wl_data_device_manager#3508.create_data_source(new id wl_data_source#3509) +[2618372.182] {Default Queue} -> wl_data_source#3509.offer("text/plain") +[2618372.186] {Default Queue} -> wl_data_source#3509.offer("text/plain;charset=utf-8") +[2618372.190] {Default Queue} -> wl_data_source#3509.offer("TEXT") +[2618372.194] {Default Queue} -> wl_data_source#3509.offer("STRING") +[2618372.198] {Default Queue} -> wl_data_source#3509.offer("UTF8_STRING") +[2618372.203] {Default Queue} wl_registry#3494.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618372.208] {Default Queue} -> wl_registry#3494.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3510) +[2618372.215] {Default Queue} -> zwp_primary_selection_device_manager_v1#3510.create_source(new id zwp_primary_selection_source_v1#3511) +[2618372.223] {Default Queue} -> zwp_primary_selection_source_v1#3511.offer("text/plain") +[2618372.229] {Default Queue} -> zwp_primary_selection_source_v1#3511.offer("text/plain;charset=utf-8") +[2618372.233] {Default Queue} -> zwp_primary_selection_source_v1#3511.offer("TEXT") +[2618372.237] {Default Queue} -> zwp_primary_selection_source_v1#3511.offer("STRING") +[2618372.242] {Default Queue} -> zwp_primary_selection_source_v1#3511.offer("UTF8_STRING") +[2618372.246] {Default Queue} wl_registry#3494.global(19, "zwlr_data_control_manager_v1", 2) +[2618372.250] {Default Queue} wl_registry#3494.global(20, "ext_data_control_manager_v1", 1) +[2618372.255] {Default Queue} wl_registry#3494.global(21, "wp_presentation", 2) +[2618372.259] {Default Queue} wl_registry#3494.global(22, "wp_security_context_manager_v1", 1) +[2618372.263] {Default Queue} wl_registry#3494.global(23, "zwp_text_input_manager_v3", 1) +[2618372.268] {Default Queue} wl_registry#3494.global(24, "zwp_input_method_manager_v2", 1) +[2618372.272] {Default Queue} wl_registry#3494.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618372.276] {Default Queue} wl_registry#3494.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618372.281] {Default Queue} wl_registry#3494.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618372.285] {Default Queue} wl_registry#3494.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618372.289] {Default Queue} wl_registry#3494.global(29, "ext_workspace_manager_v1", 1) +[2618372.294] {Default Queue} wl_registry#3494.global(30, "zwlr_output_manager_v1", 4) +[2618372.298] {Default Queue} wl_registry#3494.global(31, "zwlr_screencopy_manager_v1", 3) +[2618372.303] {Default Queue} wl_registry#3494.global(32, "wp_viewporter", 1) +[2618372.307] {Default Queue} wl_registry#3494.global(33, "zxdg_exporter_v2", 1) +[2618372.311] {Default Queue} wl_registry#3494.global(34, "zxdg_importer_v2", 1) +[2618372.316] {Default Queue} wl_registry#3494.global(36, "xdg_activation_v1", 1) +[2618372.320] {Default Queue} wl_registry#3494.global(37, "mutter_x11_interop", 1) +[2618372.324] {Default Queue} wl_registry#3494.global(38, "wl_seat", 9) +[2618372.332] {Default Queue} -> wl_registry#3494.bind(38, "wl_seat", 1, new id [unknown]#3512) +[2618372.339] {Default Queue} wl_registry#3494.global(39, "wp_cursor_shape_manager_v1", 2) +[2618372.343] {Default Queue} wl_registry#3494.global(40, "wl_output", 4) +[2618372.348] {Default Queue} -> wl_registry#3494.bind(40, "wl_output", 1, new id [unknown]#3513) +[2618372.352] {Default Queue} wl_callback#3495.done(0) +[2618372.357] {Default Queue} discarded wl_surface#3463.enter(wl_output#18) +[2618372.361] {Default Queue} discarded wl_surface#3463.enter(wl_output#57) +[2618372.365] {Default Queue} discarded wl_surface#3463.enter(wl_output#89) +[2618372.369] {Default Queue} discarded wl_surface#3463.enter(wl_output#121) +[2618372.373] {Default Queue} discarded wl_surface#3463.enter(wl_output#153) +[2618372.377] {Default Queue} discarded wl_surface#3463.enter(wl_output#185) +[2618372.381] {Default Queue} discarded wl_surface#3463.enter(wl_output#217) +[2618372.385] {Default Queue} discarded wl_surface#3463.enter(wl_output#249) +[2618372.389] {Default Queue} discarded wl_surface#3463.enter(wl_output#281) +[2618372.392] {Default Queue} discarded wl_surface#3463.enter(wl_output#313) +[2618372.396] {Default Queue} discarded wl_surface#3463.enter(wl_output#345) +[2618372.400] {Default Queue} discarded wl_surface#3463.enter(wl_output#377) +[2618372.404] {Default Queue} discarded wl_surface#3463.enter(wl_output#409) +[2618372.408] {Default Queue} discarded wl_surface#3463.enter(wl_output#441) +[2618372.412] {Default Queue} discarded wl_surface#3463.enter(wl_output#473) +[2618372.416] {Default Queue} discarded wl_surface#3463.enter(wl_output#505) +[2618372.420] {Default Queue} discarded wl_surface#3463.enter(wl_output#537) +[2618372.424] {Default Queue} discarded wl_surface#3463.enter(wl_output#569) +[2618372.428] {Default Queue} discarded wl_surface#3463.enter(wl_output#601) +[2618372.432] {Default Queue} discarded wl_surface#3463.enter(wl_output#633) +[2618372.436] {Default Queue} discarded wl_surface#3463.enter(wl_output#665) +[2618372.440] {Default Queue} discarded wl_surface#3463.enter(wl_output#697) +[2618372.444] {Default Queue} discarded wl_surface#3463.enter(wl_output#729) +[2618372.448] {Default Queue} discarded wl_surface#3463.enter(wl_output#761) +[2618372.452] {Default Queue} discarded wl_surface#3463.enter(wl_output#793) +[2618372.456] {Default Queue} discarded wl_surface#3463.enter(wl_output#825) +[2618372.460] {Default Queue} discarded wl_surface#3463.enter(wl_output#857) +[2618372.464] {Default Queue} discarded wl_surface#3463.enter(wl_output#889) +[2618372.468] {Default Queue} discarded wl_surface#3463.enter(wl_output#921) +[2618372.471] {Default Queue} discarded wl_surface#3463.enter(wl_output#953) +[2618372.475] {Default Queue} discarded wl_surface#3463.enter(wl_output#985) +[2618372.480] {Default Queue} discarded wl_surface#3463.enter(wl_output#1017) +[2618372.483] {Default Queue} discarded wl_surface#3463.enter(wl_output#1049) +[2618372.487] {Default Queue} discarded wl_surface#3463.enter(wl_output#1081) +[2618372.491] {Default Queue} discarded wl_surface#3463.enter(wl_output#1113) +[2618372.495] {Default Queue} discarded wl_surface#3463.enter(wl_output#1145) +[2618372.499] {Default Queue} discarded wl_surface#3463.enter(wl_output#1177) +[2618372.503] {Default Queue} discarded wl_surface#3463.enter(wl_output#1209) +[2618372.507] {Default Queue} discarded wl_surface#3463.enter(wl_output#1241) +[2618372.511] {Default Queue} discarded wl_surface#3463.enter(wl_output#1273) +[2618372.515] {Default Queue} discarded wl_surface#3463.enter(wl_output#1305) +[2618372.519] {Default Queue} discarded wl_surface#3463.enter(wl_output#1337) +[2618372.523] {Default Queue} discarded wl_surface#3463.enter(wl_output#1369) +[2618372.527] {Default Queue} discarded wl_surface#3463.enter(wl_output#1401) +[2618372.531] {Default Queue} discarded wl_surface#3463.enter(wl_output#1433) +[2618372.535] {Default Queue} discarded wl_surface#3463.enter(wl_output#1465) +[2618372.539] {Default Queue} discarded wl_surface#3463.enter(wl_output#1497) +[2618372.542] {Default Queue} discarded wl_surface#3463.enter(wl_output#1529) +[2618372.550] {Default Queue} discarded wl_surface#3463.enter(wl_output#1561) +[2618372.555] {Default Queue} discarded wl_surface#3463.enter(wl_output#1593) +[2618372.560] {Default Queue} discarded wl_surface#3463.enter(wl_output#1625) +[2618372.563] {Default Queue} discarded wl_surface#3463.enter(wl_output#1657) +[2618372.568] {Default Queue} discarded wl_surface#3463.enter(wl_output#1689) +[2618372.572] {Default Queue} discarded wl_surface#3463.enter(wl_output#1721) +[2618372.576] {Default Queue} discarded wl_surface#3463.enter(wl_output#1753) +[2618372.580] {Default Queue} discarded wl_surface#3463.enter(wl_output#1785) +[2618372.584] {Default Queue} discarded wl_surface#3463.enter(wl_output#1817) +[2618372.587] {Default Queue} discarded wl_surface#3463.enter(wl_output#1849) +[2618372.592] {Default Queue} discarded wl_surface#3463.enter(wl_output#1881) +[2618372.596] {Default Queue} discarded wl_surface#3463.enter(wl_output#1913) +[2618372.600] {Default Queue} discarded wl_surface#3463.enter(wl_output#1945) +[2618372.604] {Default Queue} discarded wl_surface#3463.enter(wl_output#1977) +[2618372.608] {Default Queue} discarded wl_surface#3463.enter(wl_output#2009) +[2618372.612] {Default Queue} discarded wl_surface#3463.enter(wl_output#2041) +[2618372.616] {Default Queue} discarded wl_surface#3463.enter(wl_output#2073) +[2618372.620] {Default Queue} discarded wl_surface#3463.enter(wl_output#2105) +[2618372.624] {Default Queue} discarded wl_surface#3463.enter(wl_output#2137) +[2618372.628] {Default Queue} -> wl_compositor#3468.create_surface(new id wl_surface#3495) +[2618372.632] {Default Queue} -> wl_subcompositor#3501.get_subsurface(new id wl_subsurface#3514, wl_surface#3495, wl_surface#3463) +[2618372.640] {Default Queue} -> wl_subsurface#3514.set_desync() +[2618372.645] {Default Queue} -> wl_subsurface#3514.set_position(0, 0) +[2618372.649] {Default Queue} -> wl_subsurface#3514.place_above(wl_surface#3463) +[2618372.690] {Default Queue} -> wl_shm#3503.create_pool(new id wl_shm_pool#3515, fd 554, 16) +[2618372.696] {Default Queue} -> wl_shm#3503.create_pool(new id wl_shm_pool#3516, fd 555, 16) +[2618372.701] {Default Queue} -> wl_shm_pool#3515.create_buffer(new id wl_buffer#3517, 0, 2, 2, 8, 0) +[2618372.706] {Default Queue} -> wl_shm_pool#3516.create_buffer(new id wl_buffer#3518, 0, 2, 2, 8, 0) +[2618372.714] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3517, 0, 0) +[2618372.718] {Default Queue} -> wl_surface#3495.commit() +[2618372.725] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3517, 0, 0) +[2618372.729] {Default Queue} -> wl_surface#3495.commit() +[2618372.734] {Default Queue} -> wl_compositor#3500.create_region(new id wl_region#3519) +[2618372.738] {Default Queue} -> wl_compositor#3500.create_region(new id wl_region#3520) +[2618372.743] {Default Queue} -> wl_region#3519.subtract(0, 0, 2, 2) +[2618372.747] {Default Queue} -> wl_region#3519.add(0, 0, 0, 0) +[2618372.752] {Default Queue} -> wl_surface#3495.set_opaque_region(wl_region#3520) +[2618372.756] {Default Queue} -> wl_surface#3495.set_input_region(wl_region#3519) +[2618372.760] {Default Queue} -> wl_surface#3495.damage(0, 0, 2, 2) +[2618372.764] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) +[2618372.771] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3517, 0, 0) +[2618372.776] {Default Queue} -> wl_surface#3495.commit() +[2618372.808] {Default Queue} -> wl_shm#3505.create_pool(new id wl_shm_pool#3521, fd 558, 640) +[2618372.814] {Default Queue} -> wl_shm#3505.create_pool(new id wl_shm_pool#3522, fd 559, 640) +[2618372.818] {Default Queue} -> wl_shm_pool#3521.create_buffer(new id wl_buffer#3523, 0, 10, 16, 40, 0) +[2618372.823] {Default Queue} -> wl_shm_pool#3522.create_buffer(new id wl_buffer#3524, 0, 10, 16, 40, 0) +[2618372.830] {Default Queue} -> wl_compositor#3500.create_surface(new id wl_surface#3525) +[2618372.834] {Default Queue} -> wl_surface#3525.attach(wl_buffer#3523, 0, 0) +[2618372.839] {Default Queue} -> wl_surface#3525.commit() +[2618372.844] {Default Queue} -> wl_surface#3525.attach(wl_buffer#3523, 0, 0) +[2618372.852] {Default Queue} -> wl_surface#3525.commit() +[2618372.860] {Default Queue} -> wl_surface#3399.damage(0, 0, 16, 2) +[2618372.873] {Default Queue} -> wl_surface#3399.damage(0, 0, 16, 2) +[2618372.879] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 16) +[2618372.884] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 16) +[2618372.894] {Default Queue} -> wl_region#3295.subtract(0, 0, 2, 2) +[2618372.899] {Default Queue} -> wl_subsurface#3290.set_position(3, 3) +[2618372.903] {Default Queue} -> wl_region#3295.subtract(0, 0, 5, 5) +[2618372.908] {Default Queue} -> wl_region#3295.add(0, 0, 0, 0) +[2618372.912] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) +[2618372.916] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) +[2618372.920] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618372.925] {Default Queue} -> wl_surface#3399.damage(0, 0, 16, 2) +[2618372.929] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 16) +[2618372.934] {Default Queue} -> wl_surface#3495.damage(0, 0, 2, 2) +[2618372.938] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) +[2618372.942] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) +[2618372.946] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) +[2618372.951] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) +[2618372.959] {Default Queue} -> wl_region#3295.subtract(0, 0, 5, 5) +[2618372.963] {Default Queue} -> wl_region#3295.add(0, 0, 0, 0) +[2618372.968] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) +[2618372.972] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) +[2618372.977] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3293, 0, 0) +[2618372.981] {Default Queue} -> wl_surface#3271.commit() +[2618372.986] {Default Queue} -> wl_region#3423.subtract(0, 0, 16, 2) +[2618372.991] {Default Queue} -> wl_subsurface#3418.set_position(-14, 0) +[2618372.995] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) +[2618373.000] {Default Queue} -> wl_region#3423.add(0, 0, 0, 0) +[2618373.005] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618373.009] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618373.014] {Default Queue} -> wl_surface#3399.damage(0, 0, 16, 2) +[2618373.020] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) +[2618373.025] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) +[2618373.029] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618373.034] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618373.041] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) +[2618373.045] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) +[2618373.050] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618373.054] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618373.059] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) +[2618373.063] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) +[2618373.067] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618373.071] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618373.076] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) +[2618373.080] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) +[2618373.085] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618373.089] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618373.094] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) +[2618373.098] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) +[2618373.102] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618373.107] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618373.114] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) +[2618373.119] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) +[2618373.123] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618373.127] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618373.135] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) +[2618373.141] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) +[2618373.146] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618373.150] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618373.155] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) +[2618373.159] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) +[2618373.164] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618373.168] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618373.173] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) +[2618373.178] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) +[2618373.182] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618373.186] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618373.196] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) +[2618373.202] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) +[2618373.206] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618373.211] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618373.215] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) +[2618373.220] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) +[2618373.224] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618373.229] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618373.233] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) +[2618373.237] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) +[2618373.242] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618373.246] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618373.251] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) +[2618373.255] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) +[2618373.260] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618373.264] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618373.269] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) +[2618373.274] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) +[2618373.278] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618373.282] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618373.289] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) +[2618373.293] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) +[2618373.297] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618373.301] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618373.306] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) +[2618373.311] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) +[2618373.315] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618373.319] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618373.323] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) +[2618373.328] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) +[2618373.332] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618373.337] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618373.341] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) +[2618373.345] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) +[2618373.349] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618373.353] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618373.364] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) +[2618373.369] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) +[2618373.373] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618373.377] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618373.394] {Default Queue} -> wl_surface#3399.damage(0, 0, 16, 2) +[2618373.400] {Default Queue} -> wl_surface#3399.damage(0, 0, 16, 2) +[2618373.408] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3421, 0, 0) +[2618373.414] {Default Queue} -> wl_surface#3399.commit() +[2618373.418] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 16) +[2618373.423] {Default Queue} -> wl_subsurface#3450.set_position(0, -14) +[2618373.427] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) +[2618373.432] {Default Queue} -> wl_region#3455.add(0, 0, 0, 0) +[2618373.436] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618373.440] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618373.444] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 16) +[2618373.450] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) +[2618373.454] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) +[2618373.459] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618373.463] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618373.470] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) +[2618373.474] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) +[2618373.478] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618373.482] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618373.487] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) +[2618373.491] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) +[2618373.496] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618373.500] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618373.505] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) +[2618373.509] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) +[2618373.513] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618373.517] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618373.522] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) +[2618373.526] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) +[2618373.530] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618373.534] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618373.540] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) +[2618373.545] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) +[2618373.550] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618373.554] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618373.559] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) +[2618373.564] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) +[2618373.568] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618373.578] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618373.583] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) +[2618373.588] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) +[2618373.592] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618373.596] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618373.601] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) +[2618373.606] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) +[2618373.610] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618373.614] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618373.624] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) +[2618373.629] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) +[2618373.633] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618373.638] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618373.642] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) +[2618373.647] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) +[2618373.651] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618373.655] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618373.659] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) +[2618373.667] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) +[2618373.673] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618373.677] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618373.681] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) +[2618373.686] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) +[2618373.690] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618373.694] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618373.700] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) +[2618373.704] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) +[2618373.709] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618373.713] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618373.719] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) +[2618373.723] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) +[2618373.728] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618373.732] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618373.736] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) +[2618373.741] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) +[2618373.745] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618373.749] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618373.754] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) +[2618373.758] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) +[2618373.762] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618373.766] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618373.771] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) +[2618373.776] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) +[2618373.780] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618373.784] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618373.794] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) +[2618373.800] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) +[2618373.804] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618373.808] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618373.814] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 16) +[2618373.819] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 16) +[2618373.823] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3453, 0, 0) +[2618373.828] {Default Queue} -> wl_surface#3431.commit() +[2618373.832] {Default Queue} -> wl_region#3487.subtract(0, 0, 2, 2) +[2618373.837] {Default Queue} -> wl_subsurface#3482.set_position(0, 0) +[2618373.841] {Default Queue} -> wl_region#3487.subtract(0, 0, 2, 2) +[2618373.845] {Default Queue} -> wl_region#3487.add(0, 0, 0, 0) +[2618373.849] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) +[2618373.853] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) +[2618373.857] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) +[2618373.867] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) +[2618373.873] {Default Queue} -> wl_region#3487.subtract(0, 0, 2, 2) +[2618373.877] {Default Queue} -> wl_region#3487.add(0, 0, 0, 0) +[2618373.882] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) +[2618373.886] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) +[2618373.890] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3485, 0, 0) +[2618373.895] {Default Queue} -> wl_surface#3463.commit() +[2618373.900] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2618373.904] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2618373.909] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2618373.913] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2618373.920] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3526) +[2618373.925] {Default Queue} -> wl_display#1.sync(new id wl_callback#3527) +[2618375.497] {Default Queue} discarded wl_surface#3463.enter(wl_output#2169) +[2618375.506] {Default Queue} discarded wl_surface#3463.enter(wl_output#2201) +[2618375.510] {Default Queue} discarded wl_surface#3463.enter(wl_output#2233) +[2618375.514] {Default Queue} discarded wl_surface#3463.enter(wl_output#2265) +[2618375.518] {Default Queue} discarded wl_surface#3463.enter(wl_output#2297) +[2618375.522] {Default Queue} discarded wl_surface#3463.enter(wl_output#2329) +[2618375.525] {Default Queue} discarded wl_surface#3463.enter(wl_output#2361) +[2618375.529] {Default Queue} discarded wl_surface#3463.enter(wl_output#2393) +[2618375.533] {Default Queue} discarded wl_surface#3463.enter(wl_output#2425) +[2618375.538] {Default Queue} discarded wl_surface#3463.enter(wl_output#2457) +[2618375.541] {Default Queue} discarded wl_surface#3463.enter(wl_output#2489) +[2618375.546] {Default Queue} discarded wl_surface#3463.enter(wl_output#2521) +[2618375.549] {Default Queue} discarded wl_surface#3463.enter(wl_output#2553) +[2618375.553] {Default Queue} discarded wl_surface#3463.enter(wl_output#2585) +[2618375.557] {Default Queue} discarded wl_surface#3463.enter(wl_output#2617) +[2618375.561] {Default Queue} discarded wl_surface#3463.enter(wl_output#2649) +[2618375.565] {Default Queue} discarded wl_surface#3463.enter(wl_output#2681) +[2618375.569] {Default Queue} discarded wl_surface#3463.enter(wl_output#2713) +[2618375.573] {Default Queue} discarded wl_surface#3463.enter(wl_output#2745) +[2618375.577] {Default Queue} discarded wl_surface#3463.enter(wl_output#2777) +[2618375.580] {Default Queue} discarded wl_surface#3463.enter(wl_output#2809) +[2618375.584] {Default Queue} discarded wl_surface#3463.enter(wl_output#2841) +[2618375.588] {Default Queue} discarded wl_surface#3463.enter(wl_output#2873) +[2618375.592] {Default Queue} discarded wl_surface#3463.enter(wl_output#2905) +[2618375.596] {Default Queue} discarded wl_surface#3463.enter(wl_output#2937) +[2618375.599] {Default Queue} discarded wl_surface#3463.enter(wl_output#2969) +[2618375.603] {Default Queue} discarded wl_surface#3463.enter(wl_output#3001) +[2618375.607] {Default Queue} discarded wl_surface#3463.enter(wl_output#3033) +[2618375.611] {Default Queue} discarded wl_surface#3463.enter(wl_output#3065) +[2618375.615] {Default Queue} discarded wl_surface#3463.enter(wl_output#3097) +[2618375.619] {Default Queue} discarded wl_surface#3463.enter(wl_output#3129) +[2618375.623] {Default Queue} discarded wl_surface#3463.enter(wl_output#3161) +[2618375.627] {Default Queue} discarded wl_surface#3463.enter(wl_output#3193) +[2618375.630] {Default Queue} discarded wl_surface#3463.enter(wl_output#3225) +[2618375.634] {Default Queue} discarded wl_surface#3463.enter(wl_output#3257) +[2618375.638] {Default Queue} discarded wl_surface#3463.enter(wl_output#3289) +[2618375.642] {Default Queue} discarded wl_surface#3463.enter(wl_output#3321) +[2618375.646] {Default Queue} discarded wl_surface#3463.enter(wl_output#3353) +[2618375.650] {Default Queue} discarded wl_surface#3463.enter(wl_output#3385) +[2618375.654] {Default Queue} discarded wl_surface#3463.enter(wl_output#3417) +[2618375.658] {Default Queue} discarded wl_surface#3463.enter(wl_output#3449) +[2618375.662] {Default Queue} discarded wl_surface#3463.enter(wl_output#3481) +[2618380.569] {Default Queue} wl_keyboard#3496.keymap(1, fd 554, 68213) +[2618380.583] {Default Queue} wl_keyboard#3496.enter(566, wl_surface#19, array[0]) +[2618380.589] {Default Queue} wl_keyboard#3496.modifiers(566, 0, 0, 16, 0) +[2618380.595] {Default Queue} discarded wl_shm#3503.format(875709016) +[2618380.599] {Default Queue} discarded wl_shm#3503.format(1) +[2618380.603] {Default Queue} discarded wl_shm#3503.format(0) +[2618380.607] {Default Queue} discarded wl_shm#3503.format(875708993) +[2618380.611] {Default Queue} discarded wl_shm#3504.format(875709016) +[2618380.615] {Default Queue} discarded wl_shm#3504.format(1) +[2618380.619] {Default Queue} discarded wl_shm#3504.format(0) +[2618380.624] {Default Queue} discarded wl_shm#3504.format(875708993) +[2618380.629] {Default Queue} discarded wl_shm#3505.format(875709016) +[2618380.638] {Default Queue} discarded wl_shm#3505.format(1) +[2618380.646] {Default Queue} discarded wl_shm#3505.format(0) +[2618380.650] {Default Queue} discarded wl_shm#3505.format(875708993) +[2618380.654] {Default Queue} wl_seat#3512.capabilities(7) +[2618380.659] {Default Queue} -> wl_seat#3512.get_keyboard(new id wl_keyboard#3528) +[2618380.663] {Default Queue} -> wl_seat#3512.get_pointer(new id wl_pointer#3529) +[2618380.668] {Default Queue} -> wl_data_device_manager#3508.get_data_device(new id wl_data_device#3530, wl_seat#3512) +[2618380.673] {Default Queue} -> zwp_primary_selection_device_manager_v1#3510.get_device(new id zwp_primary_selection_device_v1#3531, wl_seat#3512) +[2618380.681] {Default Queue} wl_output#3513.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618380.686] {Default Queue} wl_output#3513.mode(3, 1280, 800, 60000) +[2618380.691] {Default Queue} discarded wl_surface#2727.enter(wl_output#3513) +[2618380.695] {Default Queue} discarded wl_surface#3.enter(wl_output#3513) +[2618380.699] {Default Queue} discarded wl_surface#999.enter(wl_output#3513) +[2618380.703] {Default Queue} discarded wl_surface#3079.enter(wl_output#3513) +[2618380.708] {Default Queue} discarded wl_surface#1191.enter(wl_output#3513) +[2618380.712] {Default Queue} discarded wl_surface#1159.enter(wl_output#3513) +[2618380.716] {Default Queue} discarded wl_surface#1703.enter(wl_output#3513) +[2618380.720] {Default Queue} discarded wl_surface#2215.enter(wl_output#3513) +[2618380.724] {Default Queue} discarded wl_surface#423.enter(wl_output#3513) +[2618380.727] {Default Queue} discarded wl_surface#1447.enter(wl_output#3513) +[2618380.731] {Default Queue} discarded wl_surface#3047.enter(wl_output#3513) +[2618380.735] {Default Queue} discarded wl_surface#2023.enter(wl_output#3513) +[2618380.739] {Default Queue} discarded wl_surface#1639.enter(wl_output#3513) +[2618380.743] {Default Queue} discarded wl_surface#1319.enter(wl_output#3513) +[2618380.747] {Default Queue} discarded wl_surface#1127.enter(wl_output#3513) +[2618380.751] {Default Queue} discarded wl_surface#2151.enter(wl_output#3513) +[2618380.755] {Default Queue} discarded wl_surface#2375.enter(wl_output#3513) +[2618380.759] {Default Queue} discarded wl_surface#2695.enter(wl_output#3513) +[2618380.763] {Default Queue} discarded wl_surface#2919.enter(wl_output#3513) +[2618380.767] {Default Queue} discarded wl_surface#1063.enter(wl_output#3513) +[2618380.771] {Default Queue} discarded wl_surface#455.enter(wl_output#3513) +[2618380.775] {Default Queue} discarded wl_surface#1575.enter(wl_output#3513) +[2618380.779] {Default Queue} discarded wl_surface#1799.enter(wl_output#3513) +[2618380.782] {Default Queue} discarded wl_surface#1415.enter(wl_output#3513) +[2618380.786] {Default Queue} discarded wl_surface#2439.enter(wl_output#3513) +[2618380.791] {Default Queue} discarded wl_surface#2279.enter(wl_output#3513) +[2618380.796] {Default Queue} discarded wl_surface#1831.enter(wl_output#3513) +[2618380.801] {Default Queue} discarded wl_surface#903.enter(wl_output#3513) +[2618380.807] {Default Queue} discarded wl_surface#2663.enter(wl_output#3513) +[2618380.814] {Default Queue} discarded wl_surface#775.enter(wl_output#3513) +[2618380.820] {Default Queue} discarded wl_surface#1991.enter(wl_output#3513) +[2618380.828] {Default Queue} discarded wl_surface#1543.enter(wl_output#3513) +[2618380.835] {Default Queue} discarded wl_surface#135.enter(wl_output#3513) +[2618380.841] {Default Queue} discarded wl_surface#1287.enter(wl_output#3513) +[2618380.847] {Default Queue} discarded wl_surface#3399.enter(wl_output#3513) +[2618380.852] {Default Queue} discarded wl_surface#1031.enter(wl_output#3513) +[2618380.857] {Default Queue} discarded wl_surface#615.enter(wl_output#3513) +[2618380.866] {Default Queue} discarded wl_surface#3111.enter(wl_output#3513) +[2618380.870] {Default Queue} discarded wl_surface#231.enter(wl_output#3513) +[2618380.875] {Default Queue} discarded wl_surface#2343.enter(wl_output#3513) +[2618380.879] {Default Queue} discarded wl_surface#1863.enter(wl_output#3513) +[2618380.882] {Default Queue} discarded wl_surface#359.enter(wl_output#3513) +[2618380.890] {Default Queue} discarded wl_surface#2983.enter(wl_output#3513) +[2618380.896] {Default Queue} discarded wl_surface#583.enter(wl_output#3513) +[2618380.900] {Default Queue} discarded wl_surface#743.enter(wl_output#3513) +[2618380.904] {Default Queue} discarded wl_surface#3143.enter(wl_output#3513) +[2618380.908] {Default Queue} discarded wl_surface#2535.enter(wl_output#3513) +[2618380.912] {Default Queue} discarded wl_surface#3367.enter(wl_output#3513) +[2618380.916] {Default Queue} discarded wl_surface#967.enter(wl_output#3513) +[2618380.920] {Default Queue} discarded wl_surface#103.enter(wl_output#3513) +[2618380.924] {Default Queue} discarded wl_surface#3271.enter(wl_output#3513) +[2618380.928] {Default Queue} discarded wl_surface#327.enter(wl_output#3513) +[2618380.932] {Default Queue} discarded wl_surface#43.enter(wl_output#3513) +[2618380.936] {Default Queue} discarded wl_surface#2247.enter(wl_output#3513) +[2618380.940] {Default Queue} discarded wl_surface#807.enter(wl_output#3513) +[2618380.944] {Default Queue} discarded wl_surface#19.enter(wl_output#3513) +[2618380.947] {Default Queue} discarded wl_surface#2951.enter(wl_output#3513) +[2618380.951] {Default Queue} discarded wl_surface#1511.enter(wl_output#3513) +[2618380.955] {Default Queue} discarded wl_surface#199.enter(wl_output#3513) +[2618380.959] {Default Queue} discarded wl_surface#3463.enter(wl_output#3513) +[2618380.963] {Default Queue} discarded wl_surface#391.enter(wl_output#3513) +[2618380.967] {Default Queue} discarded wl_surface#935.enter(wl_output#3513) +[2618380.971] {Default Queue} discarded wl_surface#2823.enter(wl_output#3513) +[2618380.975] {Default Queue} discarded wl_surface#3015.enter(wl_output#3513) +[2618380.979] {Default Queue} discarded wl_surface#1671.enter(wl_output#3513) +[2618380.983] {Default Queue} discarded wl_surface#1351.enter(wl_output#3513) +[2618380.987] {Default Queue} discarded wl_surface#711.enter(wl_output#3513) +[2618380.991] {Default Queue} discarded wl_surface#3175.enter(wl_output#3513) +[2618380.995] {Default Queue} discarded wl_surface#3431.enter(wl_output#3513) +[2618380.999] {Default Queue} discarded wl_surface#1223.enter(wl_output#3513) +[2618381.003] {Default Queue} discarded wl_surface#1927.enter(wl_output#3513) +[2618381.007] {Default Queue} discarded wl_surface#871.enter(wl_output#3513) +[2618381.011] {Default Queue} discarded wl_surface#1895.enter(wl_output#3513) +[2618381.015] {Default Queue} discarded wl_surface#263.enter(wl_output#3513) +[2618381.019] {Default Queue} discarded wl_surface#551.enter(wl_output#3513) +[2618381.022] {Default Queue} discarded wl_surface#1735.enter(wl_output#3513) +[2618381.026] {Default Queue} discarded wl_surface#1479.enter(wl_output#3513) +[2618381.031] {Default Queue} discarded wl_surface#1772.enter(wl_output#3513) +[2618381.035] {Default Queue} discarded wl_surface#2599.enter(wl_output#3513) +[2618381.039] {Default Queue} discarded wl_surface#2631.enter(wl_output#3513) +[2618381.043] {Default Queue} discarded wl_surface#1959.enter(wl_output#3513) +[2618381.047] {Default Queue} discarded wl_surface#647.enter(wl_output#3513) +[2618381.051] {Default Queue} discarded wl_surface#2055.enter(wl_output#3513) +[2618381.055] {Default Queue} discarded wl_surface#2508.enter(wl_output#3513) +[2618381.059] {Default Queue} discarded wl_surface#71.enter(wl_output#3513) +[2618381.063] {Default Queue} discarded wl_surface#2759.enter(wl_output#3513) +[2618381.067] {Default Queue} discarded wl_surface#2791.enter(wl_output#3513) +[2618381.071] {Default Queue} discarded wl_surface#2887.enter(wl_output#3513) +[2618381.074] {Default Queue} discarded wl_surface#2183.enter(wl_output#3513) +[2618381.078] {Default Queue} discarded wl_surface#2567.enter(wl_output#3513) +[2618381.083] {Default Queue} discarded wl_surface#839.enter(wl_output#3513) +[2618381.087] {Default Queue} discarded wl_surface#1607.enter(wl_output#3513) +[2618381.091] {Default Queue} discarded wl_surface#1095.enter(wl_output#3513) +[2618381.095] {Default Queue} discarded wl_surface#1383.enter(wl_output#3513) +[2618381.099] {Default Queue} discarded wl_surface#487.enter(wl_output#3513) +[2618381.106] {Default Queue} discarded wl_surface#2311.enter(wl_output#3513) +[2618381.111] {Default Queue} discarded wl_surface#519.enter(wl_output#3513) +[2618381.115] {Default Queue} discarded wl_surface#3335.enter(wl_output#3513) +[2618381.119] {Default Queue} discarded wl_surface#3239.enter(wl_output#3513) +[2618381.123] {Default Queue} discarded wl_surface#2087.enter(wl_output#3513) +[2618381.127] {Default Queue} discarded wl_surface#2471.enter(wl_output#3513) +[2618381.131] {Default Queue} discarded wl_surface#295.enter(wl_output#3513) +[2618381.135] {Default Queue} discarded wl_surface#167.enter(wl_output#3513) +[2618381.139] {Default Queue} discarded wl_surface#1255.enter(wl_output#3513) +[2618381.143] {Default Queue} discarded wl_surface#2855.enter(wl_output#3513) +[2618381.147] {Default Queue} discarded wl_surface#3303.enter(wl_output#3513) +[2618381.151] {Default Queue} discarded wl_surface#679.enter(wl_output#3513) +[2618381.155] {Default Queue} discarded wl_surface#2407.enter(wl_output#3513) +[2618381.158] {Default Queue} discarded wl_surface#3207.enter(wl_output#3513) +[2618381.162] {Default Queue} discarded wl_surface#2119.enter(wl_output#3513) +[2618381.167] {Default Queue} discarded wl_surface#3495.enter(wl_output#18) +[2618381.171] {Default Queue} discarded wl_surface#3495.enter(wl_output#57) +[2618381.175] {Default Queue} discarded wl_surface#3495.enter(wl_output#89) +[2618381.179] {Default Queue} discarded wl_surface#3495.enter(wl_output#121) +[2618381.183] {Default Queue} discarded wl_surface#3495.enter(wl_output#153) +[2618381.187] {Default Queue} discarded wl_surface#3495.enter(wl_output#185) +[2618381.191] {Default Queue} discarded wl_surface#3495.enter(wl_output#217) +[2618381.195] {Default Queue} discarded wl_surface#3495.enter(wl_output#249) +[2618381.199] {Default Queue} discarded wl_surface#3495.enter(wl_output#281) +[2618381.203] {Default Queue} discarded wl_surface#3495.enter(wl_output#313) +[2618381.207] {Default Queue} discarded wl_surface#3495.enter(wl_output#345) +[2618381.211] {Default Queue} discarded wl_surface#3495.enter(wl_output#377) +[2618381.215] {Default Queue} discarded wl_surface#3495.enter(wl_output#409) +[2618381.218] {Default Queue} discarded wl_surface#3495.enter(wl_output#441) +[2618381.222] {Default Queue} discarded wl_surface#3495.enter(wl_output#473) +[2618381.226] {Default Queue} discarded wl_surface#3495.enter(wl_output#505) +[2618381.230] {Default Queue} discarded wl_surface#3495.enter(wl_output#537) +[2618381.234] {Default Queue} discarded wl_surface#3495.enter(wl_output#569) +[2618381.238] {Default Queue} discarded wl_surface#3495.enter(wl_output#601) +[2618381.242] {Default Queue} discarded wl_surface#3495.enter(wl_output#633) +[2618381.246] {Default Queue} discarded wl_surface#3495.enter(wl_output#665) +[2618381.250] {Default Queue} discarded wl_surface#3495.enter(wl_output#697) +[2618381.254] {Default Queue} discarded wl_surface#3495.enter(wl_output#729) +[2618381.258] {Default Queue} discarded wl_surface#3495.enter(wl_output#761) +[2618381.261] {Default Queue} discarded wl_surface#3495.enter(wl_output#793) +[2618381.265] {Default Queue} discarded wl_surface#3495.enter(wl_output#825) +[2618381.269] {Default Queue} discarded wl_surface#3495.enter(wl_output#857) +[2618381.273] {Default Queue} discarded wl_surface#3495.enter(wl_output#889) +[2618381.277] {Default Queue} discarded wl_surface#3495.enter(wl_output#921) +[2618381.281] {Default Queue} discarded wl_surface#3495.enter(wl_output#953) +[2618381.285] {Default Queue} discarded wl_surface#3495.enter(wl_output#985) +[2618381.289] {Default Queue} discarded wl_surface#3495.enter(wl_output#1017) +[2618381.293] {Default Queue} discarded wl_surface#3495.enter(wl_output#1049) +[2618381.297] {Default Queue} discarded wl_surface#3495.enter(wl_output#1081) +[2618381.300] {Default Queue} discarded wl_surface#3495.enter(wl_output#1113) +[2618381.304] {Default Queue} discarded wl_surface#3495.enter(wl_output#1145) +[2618381.310] {Default Queue} discarded wl_surface#3495.enter(wl_output#1177) +[2618381.314] {Default Queue} discarded wl_surface#3495.enter(wl_output#1209) +[2618381.320] {Default Queue} discarded wl_surface#3495.enter(wl_output#1241) +[2618381.325] {Default Queue} discarded wl_surface#3495.enter(wl_output#1273) +[2618381.330] {Default Queue} discarded wl_surface#3495.enter(wl_output#1305) +[2618381.334] {Default Queue} discarded wl_surface#3495.enter(wl_output#1337) +[2618381.338] {Default Queue} discarded wl_surface#3495.enter(wl_output#1369) +[2618381.341] {Default Queue} discarded wl_surface#3495.enter(wl_output#1401) +[2618381.345] {Default Queue} discarded wl_surface#3495.enter(wl_output#1433) +[2618381.349] {Default Queue} discarded wl_surface#3495.enter(wl_output#1465) +[2618381.353] {Default Queue} discarded wl_surface#3495.enter(wl_output#1497) +[2618381.357] {Default Queue} discarded wl_surface#3495.enter(wl_output#1529) +[2618381.361] {Default Queue} discarded wl_surface#3495.enter(wl_output#1561) +[2618381.365] {Default Queue} discarded wl_surface#3495.enter(wl_output#1593) +[2618381.369] {Default Queue} discarded wl_surface#3495.enter(wl_output#1625) +[2618381.373] {Default Queue} discarded wl_surface#3495.enter(wl_output#1657) +[2618381.377] {Default Queue} discarded wl_surface#3495.enter(wl_output#1689) +[2618381.380] {Default Queue} discarded wl_surface#3495.enter(wl_output#1721) +[2618381.384] {Default Queue} discarded wl_surface#3495.enter(wl_output#1753) +[2618381.389] {Default Queue} discarded wl_surface#3495.enter(wl_output#1785) +[2618381.393] {Default Queue} discarded wl_surface#3495.enter(wl_output#1817) +[2618381.397] {Default Queue} discarded wl_surface#3495.enter(wl_output#1849) +[2618381.400] {Default Queue} discarded wl_surface#3495.enter(wl_output#1881) +[2618381.404] {Default Queue} discarded wl_surface#3495.enter(wl_output#1913) +[2618381.408] {Default Queue} discarded wl_surface#3495.enter(wl_output#1945) +[2618381.412] {Default Queue} discarded wl_surface#3495.enter(wl_output#1977) +[2618381.416] {Default Queue} discarded wl_surface#3495.enter(wl_output#2009) +[2618381.420] {Default Queue} discarded wl_surface#3495.enter(wl_output#2041) +[2618381.424] {Default Queue} discarded wl_surface#3495.enter(wl_output#2073) +[2618381.428] {Default Queue} discarded wl_surface#3495.enter(wl_output#2105) +[2618381.432] {Default Queue} discarded wl_surface#3495.enter(wl_output#2137) +[2618381.436] {Default Queue} discarded wl_surface#3495.enter(wl_output#2169) +[2618381.439] {Default Queue} discarded wl_surface#3495.enter(wl_output#2201) +[2618381.443] {Default Queue} discarded wl_surface#3495.enter(wl_output#2233) +[2618381.447] {Default Queue} discarded wl_surface#3495.enter(wl_output#2265) +[2618381.452] {Default Queue} discarded wl_surface#3495.enter(wl_output#2297) +[2618381.456] {Default Queue} discarded wl_surface#3495.enter(wl_output#2329) +[2618381.460] {Default Queue} discarded wl_surface#3495.enter(wl_output#2361) +[2618381.463] {Default Queue} discarded wl_surface#3495.enter(wl_output#2393) +[2618381.467] {Default Queue} discarded wl_surface#3495.enter(wl_output#2425) +[2618381.471] {Default Queue} discarded wl_surface#3495.enter(wl_output#2457) +[2618381.475] {Default Queue} discarded wl_surface#3495.enter(wl_output#2489) +[2618381.479] {Default Queue} discarded wl_surface#3495.enter(wl_output#2521) +[2618381.483] {Default Queue} discarded wl_surface#3495.enter(wl_output#2553) +[2618381.487] {Default Queue} discarded wl_surface#3495.enter(wl_output#2585) +[2618381.491] {Default Queue} discarded wl_surface#3495.enter(wl_output#2617) +[2618381.495] {Default Queue} discarded wl_surface#3495.enter(wl_output#2649) +[2618381.499] {Default Queue} discarded wl_surface#3495.enter(wl_output#2681) +[2618381.503] {Default Queue} discarded wl_surface#3495.enter(wl_output#2713) +[2618381.507] {Default Queue} discarded wl_surface#3495.enter(wl_output#2745) +[2618381.511] {Default Queue} discarded wl_surface#3495.enter(wl_output#2777) +[2618381.515] {Default Queue} discarded wl_surface#3495.enter(wl_output#2809) +[2618381.519] {Default Queue} discarded wl_surface#3495.enter(wl_output#2841) +[2618381.523] {Default Queue} discarded wl_surface#3495.enter(wl_output#2873) +[2618381.529] {Default Queue} discarded wl_surface#3495.enter(wl_output#2905) +[2618381.535] {Default Queue} discarded wl_surface#3495.enter(wl_output#2937) +[2618381.538] {Default Queue} discarded wl_surface#3495.enter(wl_output#2969) +[2618381.542] {Default Queue} discarded wl_surface#3495.enter(wl_output#3001) +[2618381.546] {Default Queue} discarded wl_surface#3495.enter(wl_output#3033) +[2618381.550] {Default Queue} discarded wl_surface#3495.enter(wl_output#3065) +[2618381.554] {Default Queue} discarded wl_surface#3495.enter(wl_output#3097) +[2618381.558] {Default Queue} discarded wl_surface#3495.enter(wl_output#3129) +[2618381.562] {Default Queue} discarded wl_surface#3495.enter(wl_output#3161) +[2618381.566] {Default Queue} discarded wl_surface#3495.enter(wl_output#3193) +[2618381.570] {Default Queue} discarded wl_surface#3495.enter(wl_output#3225) +[2618381.574] {Default Queue} discarded wl_surface#3495.enter(wl_output#3257) +[2618381.578] {Default Queue} discarded wl_surface#3495.enter(wl_output#3289) +[2618381.582] {Default Queue} discarded wl_surface#3495.enter(wl_output#3321) +[2618381.586] {Default Queue} discarded wl_surface#3495.enter(wl_output#3353) +[2618381.590] {Default Queue} discarded wl_surface#3495.enter(wl_output#3385) +[2618381.594] {Default Queue} discarded wl_surface#3495.enter(wl_output#3417) +[2618381.597] {Default Queue} discarded wl_surface#3495.enter(wl_output#3449) +[2618381.601] {Default Queue} discarded wl_surface#3495.enter(wl_output#3481) +[2618381.606] {Default Queue} discarded wl_surface#3495.enter(wl_output#3513) +[2618386.520] {Display Queue} wl_display#1.delete_id(3527) +[2618386.533] {Default Queue} wl_registry#3526.global(1, "wl_compositor", 6) +[2618386.541] {Default Queue} -> wl_registry#3526.bind(1, "wl_compositor", 1, new id [unknown]#3532) +[2618386.548] {Default Queue} wl_registry#3526.global(2, "wl_subcompositor", 1) +[2618386.554] {Default Queue} -> wl_registry#3526.bind(2, "wl_subcompositor", 1, new id [unknown]#3533) +[2618386.560] {Default Queue} wl_registry#3526.global(3, "xdg_wm_base", 6) +[2618386.566] {Default Queue} -> wl_registry#3526.bind(3, "xdg_wm_base", 1, new id [unknown]#3534) +[2618386.572] {Default Queue} wl_registry#3526.global(6, "zwlr_layer_shell_v1", 5) +[2618386.578] {Default Queue} wl_registry#3526.global(7, "ext_session_lock_manager_v1", 1) +[2618386.583] {Default Queue} wl_registry#3526.global(8, "wl_shm", 2) +[2618386.590] {Default Queue} -> wl_registry#3526.bind(8, "wl_shm", 1, new id [unknown]#3535) +[2618386.595] {Default Queue} -> wl_registry#3526.bind(8, "wl_shm", 1, new id [unknown]#3536) +[2618386.601] {Default Queue} -> wl_registry#3526.bind(8, "wl_shm", 1, new id [unknown]#3537) +[2618386.607] {Default Queue} wl_registry#3526.global(9, "zxdg_output_manager_v1", 3) +[2618386.612] {Default Queue} wl_registry#3526.global(10, "wp_fractional_scale_manager_v1", 1) +[2618386.619] {Default Queue} wl_registry#3526.global(11, "zwp_tablet_manager_v2", 1) +[2618386.627] {Default Queue} wl_registry#3526.global(12, "zwp_pointer_gestures_v1", 3) +[2618386.639] {Default Queue} wl_registry#3526.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618386.648] {Default Queue} -> wl_registry#3526.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3538) +[2618386.657] {Default Queue} wl_registry#3526.global(14, "zwp_pointer_constraints_v1", 1) +[2618386.667] {Default Queue} -> wl_registry#3526.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3539) +[2618386.676] {Default Queue} wl_registry#3526.global(15, "ext_idle_notifier_v1", 2) +[2618386.686] {Default Queue} wl_registry#3526.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618386.693] {Default Queue} wl_registry#3526.global(17, "wl_data_device_manager", 3) +[2618386.699] {Default Queue} -> wl_registry#3526.bind(17, "wl_data_device_manager", 2, new id [unknown]#3540) +[2618386.705] {Default Queue} -> wl_data_device_manager#3540.create_data_source(new id wl_data_source#3541) +[2618386.711] {Default Queue} -> wl_data_source#3541.offer("text/plain") +[2618386.716] {Default Queue} -> wl_data_source#3541.offer("text/plain;charset=utf-8") +[2618386.727] {Default Queue} -> wl_data_source#3541.offer("TEXT") +[2618386.738] {Default Queue} -> wl_data_source#3541.offer("STRING") +[2618386.744] {Default Queue} -> wl_data_source#3541.offer("UTF8_STRING") +[2618386.749] {Default Queue} wl_registry#3526.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618386.755] {Default Queue} -> wl_registry#3526.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3542) +[2618386.766] {Default Queue} -> zwp_primary_selection_device_manager_v1#3542.create_source(new id zwp_primary_selection_source_v1#3543) +[2618386.775] {Default Queue} -> zwp_primary_selection_source_v1#3543.offer("text/plain") +[2618386.781] {Default Queue} -> zwp_primary_selection_source_v1#3543.offer("text/plain;charset=utf-8") +[2618386.786] {Default Queue} -> zwp_primary_selection_source_v1#3543.offer("TEXT") +[2618386.792] {Default Queue} -> zwp_primary_selection_source_v1#3543.offer("STRING") +[2618386.797] {Default Queue} -> zwp_primary_selection_source_v1#3543.offer("UTF8_STRING") +[2618386.802] {Default Queue} wl_registry#3526.global(19, "zwlr_data_control_manager_v1", 2) +[2618386.807] {Default Queue} wl_registry#3526.global(20, "ext_data_control_manager_v1", 1) +[2618386.813] {Default Queue} wl_registry#3526.global(21, "wp_presentation", 2) +[2618386.819] {Default Queue} wl_registry#3526.global(22, "wp_security_context_manager_v1", 1) +[2618386.824] {Default Queue} wl_registry#3526.global(23, "zwp_text_input_manager_v3", 1) +[2618386.830] {Default Queue} wl_registry#3526.global(24, "zwp_input_method_manager_v2", 1) +[2618386.835] {Default Queue} wl_registry#3526.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618386.841] {Default Queue} wl_registry#3526.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618386.846] {Default Queue} wl_registry#3526.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618386.851] {Default Queue} wl_registry#3526.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618386.857] {Default Queue} wl_registry#3526.global(29, "ext_workspace_manager_v1", 1) +[2618386.868] {Default Queue} wl_registry#3526.global(30, "zwlr_output_manager_v1", 4) +[2618386.873] {Default Queue} wl_registry#3526.global(31, "zwlr_screencopy_manager_v1", 3) +[2618386.879] {Default Queue} wl_registry#3526.global(32, "wp_viewporter", 1) +[2618386.884] {Default Queue} wl_registry#3526.global(33, "zxdg_exporter_v2", 1) +[2618386.889] {Default Queue} wl_registry#3526.global(34, "zxdg_importer_v2", 1) +[2618386.894] {Default Queue} wl_registry#3526.global(36, "xdg_activation_v1", 1) +[2618386.900] {Default Queue} wl_registry#3526.global(37, "mutter_x11_interop", 1) +[2618386.905] {Default Queue} wl_registry#3526.global(38, "wl_seat", 9) +[2618386.911] {Default Queue} -> wl_registry#3526.bind(38, "wl_seat", 1, new id [unknown]#3544) +[2618386.917] {Default Queue} wl_registry#3526.global(39, "wp_cursor_shape_manager_v1", 2) +[2618386.922] {Default Queue} wl_registry#3526.global(40, "wl_output", 4) +[2618386.928] {Default Queue} -> wl_registry#3526.bind(40, "wl_output", 1, new id [unknown]#3545) +[2618386.933] {Default Queue} wl_callback#3527.done(0) +[2618386.939] {Default Queue} -> wl_compositor#3500.create_surface(new id wl_surface#3527) +[2618386.945] {Default Queue} -> wl_subcompositor#3533.get_subsurface(new id wl_subsurface#3546, wl_surface#3527, wl_surface#3495) +[2618386.955] {Default Queue} -> wl_subsurface#3546.set_desync() +[2618386.960] {Default Queue} -> wl_subsurface#3546.set_position(64, 64) +[2618386.966] {Default Queue} -> wl_subsurface#3546.place_above(wl_surface#3495) +[2618387.076] {Default Queue} -> wl_shm#3535.create_pool(new id wl_shm_pool#3547, fd 559, 65536) +[2618387.085] {Default Queue} -> wl_shm#3535.create_pool(new id wl_shm_pool#3548, fd 560, 65536) +[2618387.092] {Default Queue} -> wl_shm_pool#3547.create_buffer(new id wl_buffer#3549, 0, 128, 128, 512, 0) +[2618387.101] {Default Queue} -> wl_shm_pool#3548.create_buffer(new id wl_buffer#3550, 0, 128, 128, 512, 0) +[2618387.136] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2618387.147] {Default Queue} -> wl_surface#3527.commit() +[2618387.176] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2618387.183] {Default Queue} -> wl_surface#3527.commit() +[2618387.188] {Default Queue} -> wl_compositor#3532.create_region(new id wl_region#3551) +[2618387.194] {Default Queue} -> wl_compositor#3532.create_region(new id wl_region#3552) +[2618387.199] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) +[2618387.205] {Default Queue} -> wl_region#3551.add(0, 0, 0, 0) +[2618387.210] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618387.216] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618387.221] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618387.227] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) +[2618387.242] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2618387.248] {Default Queue} -> wl_surface#3527.commit() +[2618387.297] {Default Queue} -> wl_shm#3537.create_pool(new id wl_shm_pool#3553, fd 563, 640) +[2618387.305] {Default Queue} -> wl_shm#3537.create_pool(new id wl_shm_pool#3554, fd 564, 640) +[2618387.310] {Default Queue} -> wl_shm_pool#3553.create_buffer(new id wl_buffer#3555, 0, 10, 16, 40, 0) +[2618387.316] {Default Queue} -> wl_shm_pool#3554.create_buffer(new id wl_buffer#3556, 0, 10, 16, 40, 0) +[2618387.327] {Default Queue} -> wl_compositor#3532.create_surface(new id wl_surface#3557) +[2618387.332] {Default Queue} -> wl_surface#3557.attach(wl_buffer#3555, 0, 0) +[2618387.338] {Default Queue} -> wl_surface#3557.commit() +[2618387.344] {Default Queue} -> wl_surface#3557.attach(wl_buffer#3555, 0, 0) +[2618387.349] {Default Queue} -> wl_surface#3557.commit() +[2618387.357] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618387.367] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3558) +[2618387.373] {Default Queue} -> wl_display#1.sync(new id wl_callback#3559) +[2618387.394] {Default Queue} wl_keyboard#3528.keymap(1, fd 559, 68213) +[2618387.404] {Default Queue} wl_keyboard#3528.enter(566, wl_surface#19, array[0]) +[2618387.410] {Default Queue} wl_keyboard#3528.modifiers(566, 0, 0, 16, 0) +[2618387.664] {Display Queue} wl_display#1.delete_id(3559) +[2618387.671] {Default Queue} discarded wl_shm#3535.format(875709016) +[2618387.675] {Default Queue} discarded wl_shm#3535.format(1) +[2618387.679] {Default Queue} discarded wl_shm#3535.format(0) +[2618387.683] {Default Queue} discarded wl_shm#3535.format(875708993) +[2618387.687] {Default Queue} discarded wl_shm#3536.format(875709016) +[2618387.691] {Default Queue} discarded wl_shm#3536.format(1) +[2618387.695] {Default Queue} discarded wl_shm#3536.format(0) +[2618387.699] {Default Queue} discarded wl_shm#3536.format(875708993) +[2618387.703] {Default Queue} discarded wl_shm#3537.format(875709016) +[2618387.707] {Default Queue} discarded wl_shm#3537.format(1) +[2618387.710] {Default Queue} discarded wl_shm#3537.format(0) +[2618387.714] {Default Queue} discarded wl_shm#3537.format(875708993) +[2618387.718] {Default Queue} wl_seat#3544.capabilities(7) +[2618387.723] {Default Queue} -> wl_seat#3544.get_keyboard(new id wl_keyboard#3560) +[2618387.727] {Default Queue} -> wl_seat#3544.get_pointer(new id wl_pointer#3561) +[2618387.732] {Default Queue} -> wl_data_device_manager#3540.get_data_device(new id wl_data_device#3562, wl_seat#3544) +[2618387.736] {Default Queue} -> zwp_primary_selection_device_manager_v1#3542.get_device(new id zwp_primary_selection_device_v1#3563, wl_seat#3544) +[2618387.745] {Default Queue} wl_output#3545.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618387.750] {Default Queue} wl_output#3545.mode(3, 1280, 800, 60000) +[2618387.755] {Default Queue} discarded wl_surface#2727.enter(wl_output#3545) +[2618387.759] {Default Queue} discarded wl_surface#3.enter(wl_output#3545) +[2618387.763] {Default Queue} discarded wl_surface#999.enter(wl_output#3545) +[2618387.767] {Default Queue} discarded wl_surface#3079.enter(wl_output#3545) +[2618387.772] {Default Queue} discarded wl_surface#1191.enter(wl_output#3545) +[2618387.779] {Default Queue} discarded wl_surface#1159.enter(wl_output#3545) +[2618387.785] {Default Queue} discarded wl_surface#1703.enter(wl_output#3545) +[2618387.789] {Default Queue} discarded wl_surface#2215.enter(wl_output#3545) +[2618387.793] {Default Queue} discarded wl_surface#423.enter(wl_output#3545) +[2618387.797] {Default Queue} discarded wl_surface#1447.enter(wl_output#3545) +[2618387.801] {Default Queue} discarded wl_surface#3047.enter(wl_output#3545) +[2618387.805] {Default Queue} discarded wl_surface#2023.enter(wl_output#3545) +[2618387.809] {Default Queue} discarded wl_surface#1639.enter(wl_output#3545) +[2618387.813] {Default Queue} discarded wl_surface#1319.enter(wl_output#3545) +[2618387.817] {Default Queue} discarded wl_surface#1127.enter(wl_output#3545) +[2618387.821] {Default Queue} discarded wl_surface#2151.enter(wl_output#3545) +[2618387.824] {Default Queue} discarded wl_surface#2375.enter(wl_output#3545) +[2618387.828] {Default Queue} discarded wl_surface#2695.enter(wl_output#3545) +[2618387.832] {Default Queue} discarded wl_surface#2919.enter(wl_output#3545) +[2618387.836] {Default Queue} discarded wl_surface#1063.enter(wl_output#3545) +[2618387.840] {Default Queue} discarded wl_surface#455.enter(wl_output#3545) +[2618387.844] {Default Queue} discarded wl_surface#1575.enter(wl_output#3545) +[2618387.848] {Default Queue} discarded wl_surface#1799.enter(wl_output#3545) +[2618387.852] {Default Queue} discarded wl_surface#1415.enter(wl_output#3545) +[2618387.856] {Default Queue} discarded wl_surface#2439.enter(wl_output#3545) +[2618387.859] {Default Queue} discarded wl_surface#2279.enter(wl_output#3545) +[2618387.877] {Default Queue} discarded wl_surface#1831.enter(wl_output#3545) +[2618387.881] {Default Queue} discarded wl_surface#903.enter(wl_output#3545) +[2618387.887] {Default Queue} discarded wl_surface#2663.enter(wl_output#3545) +[2618387.891] {Default Queue} discarded wl_surface#775.enter(wl_output#3545) +[2618387.894] {Default Queue} discarded wl_surface#1991.enter(wl_output#3545) +[2618387.898] {Default Queue} discarded wl_surface#1543.enter(wl_output#3545) +[2618387.902] {Default Queue} discarded wl_surface#135.enter(wl_output#3545) +[2618387.907] {Default Queue} discarded wl_surface#1287.enter(wl_output#3545) +[2618387.910] {Default Queue} discarded wl_surface#3399.enter(wl_output#3545) +[2618387.915] {Default Queue} discarded wl_surface#1031.enter(wl_output#3545) +[2618387.919] {Default Queue} discarded wl_surface#615.enter(wl_output#3545) +[2618387.923] {Default Queue} discarded wl_surface#3111.enter(wl_output#3545) +[2618387.927] {Default Queue} discarded wl_surface#231.enter(wl_output#3545) +[2618387.931] {Default Queue} discarded wl_surface#2343.enter(wl_output#3545) +[2618387.934] {Default Queue} discarded wl_surface#1863.enter(wl_output#3545) +[2618387.939] {Default Queue} discarded wl_surface#359.enter(wl_output#3545) +[2618387.943] {Default Queue} discarded wl_surface#2983.enter(wl_output#3545) +[2618387.946] {Default Queue} discarded wl_surface#583.enter(wl_output#3545) +[2618387.950] {Default Queue} discarded wl_surface#743.enter(wl_output#3545) +[2618387.954] {Default Queue} discarded wl_surface#3143.enter(wl_output#3545) +[2618387.958] {Default Queue} discarded wl_surface#2535.enter(wl_output#3545) +[2618387.962] {Default Queue} discarded wl_surface#3367.enter(wl_output#3545) +[2618387.966] {Default Queue} discarded wl_surface#967.enter(wl_output#3545) +[2618387.970] {Default Queue} discarded wl_surface#103.enter(wl_output#3545) +[2618387.974] {Default Queue} discarded wl_surface#3271.enter(wl_output#3545) +[2618387.979] {Default Queue} discarded wl_surface#327.enter(wl_output#3545) +[2618387.983] {Default Queue} discarded wl_surface#43.enter(wl_output#3545) +[2618387.988] {Default Queue} discarded wl_surface#2247.enter(wl_output#3545) +[2618387.993] {Default Queue} discarded wl_surface#807.enter(wl_output#3545) +[2618387.997] {Default Queue} discarded wl_surface#19.enter(wl_output#3545) +[2618388.001] {Default Queue} discarded wl_surface#2951.enter(wl_output#3545) +[2618388.005] {Default Queue} discarded wl_surface#1511.enter(wl_output#3545) +[2618388.015] {Default Queue} discarded wl_surface#199.enter(wl_output#3545) +[2618388.023] {Default Queue} discarded wl_surface#3463.enter(wl_output#3545) +[2618388.029] {Default Queue} discarded wl_surface#3495.enter(wl_output#3545) +[2618388.033] {Default Queue} discarded wl_surface#391.enter(wl_output#3545) +[2618388.037] {Default Queue} discarded wl_surface#935.enter(wl_output#3545) +[2618388.041] {Default Queue} discarded wl_surface#2823.enter(wl_output#3545) +[2618388.045] {Default Queue} discarded wl_surface#3015.enter(wl_output#3545) +[2618388.049] {Default Queue} discarded wl_surface#1671.enter(wl_output#3545) +[2618388.053] {Default Queue} discarded wl_surface#1351.enter(wl_output#3545) +[2618388.057] {Default Queue} discarded wl_surface#711.enter(wl_output#3545) +[2618388.061] {Default Queue} discarded wl_surface#3175.enter(wl_output#3545) +[2618388.065] {Default Queue} discarded wl_surface#3431.enter(wl_output#3545) +[2618388.070] {Default Queue} discarded wl_surface#1223.enter(wl_output#3545) +[2618388.074] {Default Queue} discarded wl_surface#1927.enter(wl_output#3545) +[2618388.077] {Default Queue} discarded wl_surface#871.enter(wl_output#3545) +[2618388.081] {Default Queue} discarded wl_surface#1895.enter(wl_output#3545) +[2618388.085] {Default Queue} discarded wl_surface#263.enter(wl_output#3545) +[2618388.089] {Default Queue} discarded wl_surface#551.enter(wl_output#3545) +[2618388.093] {Default Queue} discarded wl_surface#1735.enter(wl_output#3545) +[2618388.097] {Default Queue} discarded wl_surface#1479.enter(wl_output#3545) +[2618388.101] {Default Queue} discarded wl_surface#1772.enter(wl_output#3545) +[2618388.105] {Default Queue} discarded wl_surface#2599.enter(wl_output#3545) +[2618388.109] {Default Queue} discarded wl_surface#2631.enter(wl_output#3545) +[2618388.113] {Default Queue} discarded wl_surface#1959.enter(wl_output#3545) +[2618388.117] {Default Queue} discarded wl_surface#647.enter(wl_output#3545) +[2618388.120] {Default Queue} discarded wl_surface#2055.enter(wl_output#3545) +[2618388.124] {Default Queue} discarded wl_surface#2508.enter(wl_output#3545) +[2618388.128] {Default Queue} discarded wl_surface#71.enter(wl_output#3545) +[2618388.132] {Default Queue} discarded wl_surface#2759.enter(wl_output#3545) +[2618388.136] {Default Queue} discarded wl_surface#2791.enter(wl_output#3545) +[2618388.142] {Default Queue} discarded wl_surface#2887.enter(wl_output#3545) +[2618388.147] {Default Queue} discarded wl_surface#2183.enter(wl_output#3545) +[2618388.152] {Default Queue} discarded wl_surface#2567.enter(wl_output#3545) +[2618388.156] {Default Queue} discarded wl_surface#839.enter(wl_output#3545) +[2618388.160] {Default Queue} discarded wl_surface#1607.enter(wl_output#3545) +[2618388.164] {Default Queue} discarded wl_surface#1095.enter(wl_output#3545) +[2618388.168] {Default Queue} discarded wl_surface#1383.enter(wl_output#3545) +[2618388.172] {Default Queue} discarded wl_surface#487.enter(wl_output#3545) +[2618388.177] {Default Queue} discarded wl_surface#2311.enter(wl_output#3545) +[2618388.186] {Default Queue} discarded wl_surface#519.enter(wl_output#3545) +[2618388.193] {Default Queue} discarded wl_surface#3335.enter(wl_output#3545) +[2618388.198] {Default Queue} discarded wl_surface#3239.enter(wl_output#3545) +[2618388.202] {Default Queue} discarded wl_surface#2087.enter(wl_output#3545) +[2618388.206] {Default Queue} discarded wl_surface#2471.enter(wl_output#3545) +[2618388.210] {Default Queue} discarded wl_surface#295.enter(wl_output#3545) +[2618388.214] {Default Queue} discarded wl_surface#167.enter(wl_output#3545) +[2618388.218] {Default Queue} discarded wl_surface#1255.enter(wl_output#3545) +[2618388.222] {Default Queue} discarded wl_surface#2855.enter(wl_output#3545) +[2618388.225] {Default Queue} discarded wl_surface#3303.enter(wl_output#3545) +[2618388.229] {Default Queue} discarded wl_surface#679.enter(wl_output#3545) +[2618388.233] {Default Queue} discarded wl_surface#2407.enter(wl_output#3545) +[2618388.237] {Default Queue} discarded wl_surface#3207.enter(wl_output#3545) +[2618388.241] {Default Queue} discarded wl_surface#2119.enter(wl_output#3545) +[2618388.249] {Default Queue} wl_registry#3558.global(1, "wl_compositor", 6) +[2618388.258] {Default Queue} -> wl_registry#3558.bind(1, "wl_compositor", 1, new id [unknown]#3564) +[2618388.264] {Default Queue} wl_registry#3558.global(2, "wl_subcompositor", 1) +[2618388.269] {Default Queue} -> wl_registry#3558.bind(2, "wl_subcompositor", 1, new id [unknown]#3565) +[2618388.274] {Default Queue} wl_registry#3558.global(3, "xdg_wm_base", 6) +[2618388.279] {Default Queue} -> wl_registry#3558.bind(3, "xdg_wm_base", 1, new id [unknown]#3566) +[2618388.283] {Default Queue} wl_registry#3558.global(6, "zwlr_layer_shell_v1", 5) +[2618388.288] {Default Queue} wl_registry#3558.global(7, "ext_session_lock_manager_v1", 1) +[2618388.292] {Default Queue} wl_registry#3558.global(8, "wl_shm", 2) +[2618388.297] {Default Queue} -> wl_registry#3558.bind(8, "wl_shm", 1, new id [unknown]#3567) +[2618388.302] {Default Queue} -> wl_registry#3558.bind(8, "wl_shm", 1, new id [unknown]#3568) +[2618388.306] {Default Queue} -> wl_registry#3558.bind(8, "wl_shm", 1, new id [unknown]#3569) +[2618388.311] {Default Queue} wl_registry#3558.global(9, "zxdg_output_manager_v1", 3) +[2618388.315] {Default Queue} wl_registry#3558.global(10, "wp_fractional_scale_manager_v1", 1) +[2618388.319] {Default Queue} wl_registry#3558.global(11, "zwp_tablet_manager_v2", 1) +[2618388.324] {Default Queue} wl_registry#3558.global(12, "zwp_pointer_gestures_v1", 3) +[2618388.328] {Default Queue} wl_registry#3558.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618388.332] {Default Queue} -> wl_registry#3558.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3570) +[2618388.337] {Default Queue} wl_registry#3558.global(14, "zwp_pointer_constraints_v1", 1) +[2618388.341] {Default Queue} -> wl_registry#3558.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3571) +[2618388.346] {Default Queue} wl_registry#3558.global(15, "ext_idle_notifier_v1", 2) +[2618388.350] {Default Queue} wl_registry#3558.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618388.358] {Default Queue} wl_registry#3558.global(17, "wl_data_device_manager", 3) +[2618388.363] {Default Queue} -> wl_registry#3558.bind(17, "wl_data_device_manager", 2, new id [unknown]#3572) +[2618388.367] {Default Queue} -> wl_data_device_manager#3572.create_data_source(new id wl_data_source#3573) +[2618388.372] {Default Queue} -> wl_data_source#3573.offer("text/plain") +[2618388.376] {Default Queue} -> wl_data_source#3573.offer("text/plain;charset=utf-8") +[2618388.380] {Default Queue} -> wl_data_source#3573.offer("TEXT") +[2618388.384] {Default Queue} -> wl_data_source#3573.offer("STRING") +[2618388.388] {Default Queue} -> wl_data_source#3573.offer("UTF8_STRING") +[2618388.392] {Default Queue} wl_registry#3558.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618388.398] {Default Queue} -> wl_registry#3558.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3574) +[2618388.406] {Default Queue} -> zwp_primary_selection_device_manager_v1#3574.create_source(new id zwp_primary_selection_source_v1#3575) +[2618388.413] {Default Queue} -> zwp_primary_selection_source_v1#3575.offer("text/plain") +[2618388.417] {Default Queue} -> zwp_primary_selection_source_v1#3575.offer("text/plain;charset=utf-8") +[2618388.421] {Default Queue} -> zwp_primary_selection_source_v1#3575.offer("TEXT") +[2618388.425] {Default Queue} -> zwp_primary_selection_source_v1#3575.offer("STRING") +[2618388.429] {Default Queue} -> zwp_primary_selection_source_v1#3575.offer("UTF8_STRING") +[2618388.433] {Default Queue} wl_registry#3558.global(19, "zwlr_data_control_manager_v1", 2) +[2618388.438] {Default Queue} wl_registry#3558.global(20, "ext_data_control_manager_v1", 1) +[2618388.442] {Default Queue} wl_registry#3558.global(21, "wp_presentation", 2) +[2618388.447] {Default Queue} wl_registry#3558.global(22, "wp_security_context_manager_v1", 1) +[2618388.452] {Default Queue} wl_registry#3558.global(23, "zwp_text_input_manager_v3", 1) +[2618388.456] {Default Queue} wl_registry#3558.global(24, "zwp_input_method_manager_v2", 1) +[2618388.464] {Default Queue} wl_registry#3558.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618388.469] {Default Queue} wl_registry#3558.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618388.474] {Default Queue} wl_registry#3558.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618388.478] {Default Queue} wl_registry#3558.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618388.483] {Default Queue} wl_registry#3558.global(29, "ext_workspace_manager_v1", 1) +[2618388.487] {Default Queue} wl_registry#3558.global(30, "zwlr_output_manager_v1", 4) +[2618388.491] {Default Queue} wl_registry#3558.global(31, "zwlr_screencopy_manager_v1", 3) +[2618388.496] {Default Queue} wl_registry#3558.global(32, "wp_viewporter", 1) +[2618388.500] {Default Queue} wl_registry#3558.global(33, "zxdg_exporter_v2", 1) +[2618388.504] {Default Queue} wl_registry#3558.global(34, "zxdg_importer_v2", 1) +[2618388.508] {Default Queue} wl_registry#3558.global(36, "xdg_activation_v1", 1) +[2618388.513] {Default Queue} wl_registry#3558.global(37, "mutter_x11_interop", 1) +[2618388.517] {Default Queue} wl_registry#3558.global(38, "wl_seat", 9) +[2618388.522] {Default Queue} -> wl_registry#3558.bind(38, "wl_seat", 1, new id [unknown]#3576) +[2618388.526] {Default Queue} wl_registry#3558.global(39, "wp_cursor_shape_manager_v1", 2) +[2618388.530] {Default Queue} wl_registry#3558.global(40, "wl_output", 4) +[2618388.535] {Default Queue} -> wl_registry#3558.bind(40, "wl_output", 1, new id [unknown]#3577) +[2618388.540] {Default Queue} wl_callback#3559.done(0) +[2618388.544] {Default Queue} discarded wl_surface#3527.enter(wl_output#18) +[2618388.548] {Default Queue} discarded wl_surface#3527.enter(wl_output#57) +[2618388.552] {Default Queue} discarded wl_surface#3527.enter(wl_output#89) +[2618388.556] {Default Queue} discarded wl_surface#3527.enter(wl_output#121) +[2618388.560] {Default Queue} discarded wl_surface#3527.enter(wl_output#153) +[2618388.564] {Default Queue} discarded wl_surface#3527.enter(wl_output#185) +[2618388.568] {Default Queue} discarded wl_surface#3527.enter(wl_output#217) +[2618388.572] {Default Queue} discarded wl_surface#3527.enter(wl_output#249) +[2618388.576] {Default Queue} discarded wl_surface#3527.enter(wl_output#281) +[2618388.581] {Default Queue} discarded wl_surface#3527.enter(wl_output#313) +[2618388.585] {Default Queue} discarded wl_surface#3527.enter(wl_output#345) +[2618388.589] {Default Queue} discarded wl_surface#3527.enter(wl_output#377) +[2618388.594] {Default Queue} discarded wl_surface#3527.enter(wl_output#409) +[2618388.598] {Default Queue} discarded wl_surface#3527.enter(wl_output#441) +[2618388.601] {Default Queue} discarded wl_surface#3527.enter(wl_output#473) +[2618388.605] {Default Queue} discarded wl_surface#3527.enter(wl_output#505) +[2618388.609] {Default Queue} discarded wl_surface#3527.enter(wl_output#537) +[2618388.613] {Default Queue} discarded wl_surface#3527.enter(wl_output#569) +[2618388.617] {Default Queue} discarded wl_surface#3527.enter(wl_output#601) +[2618388.621] {Default Queue} discarded wl_surface#3527.enter(wl_output#633) +[2618388.625] {Default Queue} discarded wl_surface#3527.enter(wl_output#665) +[2618388.629] {Default Queue} discarded wl_surface#3527.enter(wl_output#697) +[2618388.633] {Default Queue} discarded wl_surface#3527.enter(wl_output#729) +[2618388.637] {Default Queue} discarded wl_surface#3527.enter(wl_output#761) +[2618388.641] {Default Queue} discarded wl_surface#3527.enter(wl_output#793) +[2618388.646] {Default Queue} discarded wl_surface#3527.enter(wl_output#825) +[2618388.652] {Default Queue} discarded wl_surface#3527.enter(wl_output#857) +[2618388.658] {Default Queue} discarded wl_surface#3527.enter(wl_output#889) +[2618388.664] {Default Queue} discarded wl_surface#3527.enter(wl_output#921) +[2618388.670] {Default Queue} discarded wl_surface#3527.enter(wl_output#953) +[2618388.677] {Default Queue} discarded wl_surface#3527.enter(wl_output#985) +[2618388.685] {Default Queue} discarded wl_surface#3527.enter(wl_output#1017) +[2618388.691] {Default Queue} discarded wl_surface#3527.enter(wl_output#1049) +[2618388.708] {Default Queue} discarded wl_surface#3527.enter(wl_output#1081) +[2618388.715] {Default Queue} discarded wl_surface#3527.enter(wl_output#1113) +[2618388.719] {Default Queue} discarded wl_surface#3527.enter(wl_output#1145) +[2618388.723] {Default Queue} discarded wl_surface#3527.enter(wl_output#1177) +[2618388.727] {Default Queue} discarded wl_surface#3527.enter(wl_output#1209) +[2618388.732] {Default Queue} discarded wl_surface#3527.enter(wl_output#1241) +[2618388.736] {Default Queue} discarded wl_surface#3527.enter(wl_output#1273) +[2618388.740] {Default Queue} discarded wl_surface#3527.enter(wl_output#1305) +[2618388.744] {Default Queue} discarded wl_surface#3527.enter(wl_output#1337) +[2618388.748] {Default Queue} discarded wl_surface#3527.enter(wl_output#1369) +[2618388.752] {Default Queue} discarded wl_surface#3527.enter(wl_output#1401) +[2618388.756] {Default Queue} discarded wl_surface#3527.enter(wl_output#1433) +[2618388.760] {Default Queue} discarded wl_surface#3527.enter(wl_output#1465) +[2618388.764] {Default Queue} discarded wl_surface#3527.enter(wl_output#1497) +[2618388.768] {Default Queue} discarded wl_surface#3527.enter(wl_output#1529) +[2618388.771] {Default Queue} discarded wl_surface#3527.enter(wl_output#1561) +[2618388.775] {Default Queue} discarded wl_surface#3527.enter(wl_output#1593) +[2618388.779] {Default Queue} discarded wl_surface#3527.enter(wl_output#1625) +[2618388.783] {Default Queue} discarded wl_surface#3527.enter(wl_output#1657) +[2618388.787] {Default Queue} discarded wl_surface#3527.enter(wl_output#1689) +[2618388.791] {Default Queue} discarded wl_surface#3527.enter(wl_output#1721) +[2618388.795] {Default Queue} discarded wl_surface#3527.enter(wl_output#1753) +[2618388.799] {Default Queue} discarded wl_surface#3527.enter(wl_output#1785) +[2618388.803] {Default Queue} discarded wl_surface#3527.enter(wl_output#1817) +[2618388.807] {Default Queue} discarded wl_surface#3527.enter(wl_output#1849) +[2618388.811] {Default Queue} discarded wl_surface#3527.enter(wl_output#1881) +[2618388.815] {Default Queue} discarded wl_surface#3527.enter(wl_output#1913) +[2618388.819] {Default Queue} discarded wl_surface#3527.enter(wl_output#1945) +[2618388.823] {Default Queue} discarded wl_surface#3527.enter(wl_output#1977) +[2618388.827] {Default Queue} discarded wl_surface#3527.enter(wl_output#2009) +[2618388.831] {Default Queue} discarded wl_surface#3527.enter(wl_output#2041) +[2618388.835] {Default Queue} discarded wl_surface#3527.enter(wl_output#2073) +[2618388.840] {Default Queue} discarded wl_surface#3527.enter(wl_output#2105) +[2618388.844] {Default Queue} discarded wl_surface#3527.enter(wl_output#2137) +[2618388.847] {Default Queue} discarded wl_surface#3527.enter(wl_output#2169) +[2618388.851] {Default Queue} discarded wl_surface#3527.enter(wl_output#2201) +[2618388.855] {Default Queue} discarded wl_surface#3527.enter(wl_output#2233) +[2618388.860] {Default Queue} -> wl_compositor#2988.create_surface(new id wl_surface#3559) +[2618388.870] {Default Queue} -> wl_subcompositor#3565.get_subsurface(new id wl_subsurface#3578, wl_surface#3559, wl_surface#2983) +[2618388.878] {Default Queue} -> wl_subsurface#3578.set_desync() +[2618388.882] {Default Queue} -> wl_subsurface#3578.set_position(0, 0) +[2618388.887] {Default Queue} -> wl_subsurface#3578.place_above(wl_surface#2983) +[2618388.929] {Default Queue} -> wl_shm#3567.create_pool(new id wl_shm_pool#3579, fd 564, 16) +[2618388.936] {Default Queue} -> wl_shm#3567.create_pool(new id wl_shm_pool#3580, fd 565, 16) +[2618388.941] {Default Queue} -> wl_shm_pool#3579.create_buffer(new id wl_buffer#3581, 0, 2, 2, 8, 0) +[2618388.945] {Default Queue} -> wl_shm_pool#3580.create_buffer(new id wl_buffer#3582, 0, 2, 2, 8, 0) +[2618388.954] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) +[2618388.958] {Default Queue} -> wl_surface#3559.commit() +[2618388.964] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) +[2618388.968] {Default Queue} -> wl_surface#3559.commit() +[2618388.972] {Default Queue} -> wl_compositor#3564.create_region(new id wl_region#3583) +[2618388.980] {Default Queue} -> wl_compositor#3564.create_region(new id wl_region#3584) +[2618388.986] {Default Queue} -> wl_region#3583.subtract(0, 0, 2, 2) +[2618388.990] {Default Queue} -> wl_region#3583.add(0, 0, 0, 0) +[2618388.995] {Default Queue} -> wl_surface#3559.set_opaque_region(wl_region#3584) +[2618388.999] {Default Queue} -> wl_surface#3559.set_input_region(wl_region#3583) +[2618389.003] {Default Queue} -> wl_surface#3559.damage(0, 0, 2, 2) +[2618389.008] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) +[2618389.015] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) +[2618389.021] {Default Queue} -> wl_surface#3559.commit() +[2618389.054] {Default Queue} -> wl_shm#3569.create_pool(new id wl_shm_pool#3585, fd 568, 640) +[2618389.061] {Default Queue} -> wl_shm#3569.create_pool(new id wl_shm_pool#3586, fd 569, 640) +[2618389.065] {Default Queue} -> wl_shm_pool#3585.create_buffer(new id wl_buffer#3587, 0, 10, 16, 40, 0) +[2618389.070] {Default Queue} -> wl_shm_pool#3586.create_buffer(new id wl_buffer#3588, 0, 10, 16, 40, 0) +[2618389.077] {Default Queue} -> wl_compositor#3564.create_surface(new id wl_surface#3589) +[2618389.081] {Default Queue} -> wl_surface#3589.attach(wl_buffer#3587, 0, 0) +[2618389.085] {Default Queue} -> wl_surface#3589.commit() +[2618389.091] {Default Queue} -> wl_surface#3589.attach(wl_buffer#3587, 0, 0) +[2618389.095] {Default Queue} -> wl_surface#3589.commit() +[2618389.100] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) +[2618389.107] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3590) +[2618389.112] {Default Queue} -> wl_display#1.sync(new id wl_callback#3591) +[2618391.006] {Default Queue} discarded wl_surface#3527.enter(wl_output#2265) +[2618391.016] {Default Queue} discarded wl_surface#3527.enter(wl_output#2297) +[2618391.021] {Default Queue} discarded wl_surface#3527.enter(wl_output#2329) +[2618391.027] {Default Queue} discarded wl_surface#3527.enter(wl_output#2361) +[2618391.032] {Default Queue} discarded wl_surface#3527.enter(wl_output#2393) +[2618391.037] {Default Queue} discarded wl_surface#3527.enter(wl_output#2425) +[2618391.041] {Default Queue} discarded wl_surface#3527.enter(wl_output#2457) +[2618391.046] {Default Queue} discarded wl_surface#3527.enter(wl_output#2489) +[2618391.051] {Default Queue} discarded wl_surface#3527.enter(wl_output#2521) +[2618391.056] {Default Queue} discarded wl_surface#3527.enter(wl_output#2553) +[2618391.061] {Default Queue} discarded wl_surface#3527.enter(wl_output#2585) +[2618391.066] {Default Queue} discarded wl_surface#3527.enter(wl_output#2617) +[2618391.071] {Default Queue} discarded wl_surface#3527.enter(wl_output#2649) +[2618391.076] {Default Queue} discarded wl_surface#3527.enter(wl_output#2681) +[2618391.081] {Default Queue} discarded wl_surface#3527.enter(wl_output#2713) +[2618391.085] {Default Queue} discarded wl_surface#3527.enter(wl_output#2745) +[2618391.090] {Default Queue} discarded wl_surface#3527.enter(wl_output#2777) +[2618391.095] {Default Queue} discarded wl_surface#3527.enter(wl_output#2809) +[2618391.100] {Default Queue} discarded wl_surface#3527.enter(wl_output#2841) +[2618391.105] {Default Queue} discarded wl_surface#3527.enter(wl_output#2873) +[2618391.110] {Default Queue} discarded wl_surface#3527.enter(wl_output#2905) +[2618391.115] {Default Queue} discarded wl_surface#3527.enter(wl_output#2937) +[2618391.120] {Default Queue} discarded wl_surface#3527.enter(wl_output#2969) +[2618391.125] {Default Queue} discarded wl_surface#3527.enter(wl_output#3001) +[2618391.130] {Default Queue} discarded wl_surface#3527.enter(wl_output#3033) +[2618391.135] {Default Queue} discarded wl_surface#3527.enter(wl_output#3065) +[2618391.140] {Default Queue} discarded wl_surface#3527.enter(wl_output#3097) +[2618391.144] {Default Queue} discarded wl_surface#3527.enter(wl_output#3129) +[2618391.149] {Default Queue} discarded wl_surface#3527.enter(wl_output#3161) +[2618391.155] {Default Queue} discarded wl_surface#3527.enter(wl_output#3193) +[2618391.159] {Default Queue} discarded wl_surface#3527.enter(wl_output#3225) +[2618391.169] {Default Queue} discarded wl_surface#3527.enter(wl_output#3257) +[2618391.177] {Default Queue} discarded wl_surface#3527.enter(wl_output#3289) +[2618391.182] {Default Queue} discarded wl_surface#3527.enter(wl_output#3321) +[2618391.187] {Default Queue} discarded wl_surface#3527.enter(wl_output#3353) +[2618391.192] {Default Queue} discarded wl_surface#3527.enter(wl_output#3385) +[2618391.197] {Default Queue} discarded wl_surface#3527.enter(wl_output#3417) +[2618391.201] {Default Queue} discarded wl_surface#3527.enter(wl_output#3449) +[2618391.207] {Default Queue} discarded wl_surface#3527.enter(wl_output#3481) +[2618391.211] {Default Queue} discarded wl_surface#3527.enter(wl_output#3513) +[2618391.216] {Default Queue} discarded wl_surface#3527.enter(wl_output#3545) +[2618391.278] {Display Queue} wl_display#1.delete_id(3591) +[2618391.286] {Default Queue} wl_keyboard#3560.keymap(1, fd 564, 68213) +[2618391.292] {Default Queue} wl_keyboard#3560.enter(566, wl_surface#19, array[0]) +[2618391.298] {Default Queue} wl_keyboard#3560.modifiers(566, 0, 0, 16, 0) +[2618391.304] {Default Queue} discarded wl_shm#3567.format(875709016) +[2618391.309] {Default Queue} discarded wl_shm#3567.format(1) +[2618391.314] {Default Queue} discarded wl_shm#3567.format(0) +[2618391.319] {Default Queue} discarded wl_shm#3567.format(875708993) +[2618391.324] {Default Queue} discarded wl_shm#3568.format(875709016) +[2618391.329] {Default Queue} discarded wl_shm#3568.format(1) +[2618391.333] {Default Queue} discarded wl_shm#3568.format(0) +[2618391.338] {Default Queue} discarded wl_shm#3568.format(875708993) +[2618391.343] {Default Queue} discarded wl_shm#3569.format(875709016) +[2618391.348] {Default Queue} discarded wl_shm#3569.format(1) +[2618391.353] {Default Queue} discarded wl_shm#3569.format(0) +[2618391.358] {Default Queue} discarded wl_shm#3569.format(875708993) +[2618391.363] {Default Queue} wl_seat#3576.capabilities(7) +[2618391.368] {Default Queue} -> wl_seat#3576.get_keyboard(new id wl_keyboard#3592) +[2618391.374] {Default Queue} -> wl_seat#3576.get_pointer(new id wl_pointer#3593) +[2618391.380] {Default Queue} -> wl_data_device_manager#3572.get_data_device(new id wl_data_device#3594, wl_seat#3576) +[2618391.386] {Default Queue} -> zwp_primary_selection_device_manager_v1#3574.get_device(new id zwp_primary_selection_device_v1#3595, wl_seat#3576) +[2618391.395] {Default Queue} wl_output#3577.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618391.401] {Default Queue} wl_output#3577.mode(3, 1280, 800, 60000) +[2618391.407] {Default Queue} discarded wl_surface#2727.enter(wl_output#3577) +[2618391.412] {Default Queue} discarded wl_surface#3.enter(wl_output#3577) +[2618391.417] {Default Queue} discarded wl_surface#999.enter(wl_output#3577) +[2618391.422] {Default Queue} discarded wl_surface#3079.enter(wl_output#3577) +[2618391.427] {Default Queue} discarded wl_surface#1191.enter(wl_output#3577) +[2618391.432] {Default Queue} discarded wl_surface#1159.enter(wl_output#3577) +[2618391.437] {Default Queue} discarded wl_surface#1703.enter(wl_output#3577) +[2618391.441] {Default Queue} discarded wl_surface#2215.enter(wl_output#3577) +[2618391.446] {Default Queue} discarded wl_surface#423.enter(wl_output#3577) +[2618391.451] {Default Queue} discarded wl_surface#1447.enter(wl_output#3577) +[2618391.456] {Default Queue} discarded wl_surface#3527.enter(wl_output#3577) +[2618391.461] {Default Queue} discarded wl_surface#3047.enter(wl_output#3577) +[2618391.466] {Default Queue} discarded wl_surface#2023.enter(wl_output#3577) +[2618391.470] {Default Queue} discarded wl_surface#1639.enter(wl_output#3577) +[2618391.474] {Default Queue} discarded wl_surface#1319.enter(wl_output#3577) +[2618391.478] {Default Queue} discarded wl_surface#1127.enter(wl_output#3577) +[2618391.482] {Default Queue} discarded wl_surface#2151.enter(wl_output#3577) +[2618391.486] {Default Queue} discarded wl_surface#2375.enter(wl_output#3577) +[2618391.489] {Default Queue} discarded wl_surface#2695.enter(wl_output#3577) +[2618391.493] {Default Queue} discarded wl_surface#2919.enter(wl_output#3577) +[2618391.502] {Default Queue} discarded wl_surface#1063.enter(wl_output#3577) +[2618391.508] {Default Queue} discarded wl_surface#455.enter(wl_output#3577) +[2618391.512] {Default Queue} discarded wl_surface#1575.enter(wl_output#3577) +[2618391.515] {Default Queue} discarded wl_surface#1799.enter(wl_output#3577) +[2618391.519] {Default Queue} discarded wl_surface#1415.enter(wl_output#3577) +[2618391.523] {Default Queue} discarded wl_surface#2439.enter(wl_output#3577) +[2618391.527] {Default Queue} discarded wl_surface#2279.enter(wl_output#3577) +[2618391.531] {Default Queue} discarded wl_surface#1831.enter(wl_output#3577) +[2618391.535] {Default Queue} discarded wl_surface#903.enter(wl_output#3577) +[2618391.538] {Default Queue} discarded wl_surface#2663.enter(wl_output#3577) +[2618391.542] {Default Queue} discarded wl_surface#775.enter(wl_output#3577) +[2618391.546] {Default Queue} discarded wl_surface#1991.enter(wl_output#3577) +[2618391.550] {Default Queue} discarded wl_surface#1543.enter(wl_output#3577) +[2618391.554] {Default Queue} discarded wl_surface#135.enter(wl_output#3577) +[2618391.558] {Default Queue} discarded wl_surface#1287.enter(wl_output#3577) +[2618391.562] {Default Queue} discarded wl_surface#3399.enter(wl_output#3577) +[2618391.565] {Default Queue} discarded wl_surface#1031.enter(wl_output#3577) +[2618391.569] {Default Queue} discarded wl_surface#615.enter(wl_output#3577) +[2618391.573] {Default Queue} discarded wl_surface#3111.enter(wl_output#3577) +[2618391.577] {Default Queue} discarded wl_surface#231.enter(wl_output#3577) +[2618391.581] {Default Queue} discarded wl_surface#2343.enter(wl_output#3577) +[2618391.585] {Default Queue} discarded wl_surface#1863.enter(wl_output#3577) +[2618391.589] {Default Queue} discarded wl_surface#359.enter(wl_output#3577) +[2618391.593] {Default Queue} discarded wl_surface#2983.enter(wl_output#3577) +[2618391.596] {Default Queue} discarded wl_surface#583.enter(wl_output#3577) +[2618391.601] {Default Queue} discarded wl_surface#743.enter(wl_output#3577) +[2618391.605] {Default Queue} discarded wl_surface#3143.enter(wl_output#3577) +[2618391.608] {Default Queue} discarded wl_surface#2535.enter(wl_output#3577) +[2618391.612] {Default Queue} discarded wl_surface#3367.enter(wl_output#3577) +[2618391.616] {Default Queue} discarded wl_surface#967.enter(wl_output#3577) +[2618391.620] {Default Queue} discarded wl_surface#103.enter(wl_output#3577) +[2618391.624] {Default Queue} discarded wl_surface#3271.enter(wl_output#3577) +[2618391.628] {Default Queue} discarded wl_surface#327.enter(wl_output#3577) +[2618391.632] {Default Queue} discarded wl_surface#43.enter(wl_output#3577) +[2618391.636] {Default Queue} discarded wl_surface#2247.enter(wl_output#3577) +[2618391.640] {Default Queue} discarded wl_surface#807.enter(wl_output#3577) +[2618391.644] {Default Queue} discarded wl_surface#19.enter(wl_output#3577) +[2618391.648] {Default Queue} discarded wl_surface#2951.enter(wl_output#3577) +[2618391.651] {Default Queue} discarded wl_surface#1511.enter(wl_output#3577) +[2618391.656] {Default Queue} discarded wl_surface#199.enter(wl_output#3577) +[2618391.659] {Default Queue} discarded wl_surface#3463.enter(wl_output#3577) +[2618391.663] {Default Queue} discarded wl_surface#3495.enter(wl_output#3577) +[2618391.667] {Default Queue} discarded wl_surface#391.enter(wl_output#3577) +[2618391.671] {Default Queue} discarded wl_surface#935.enter(wl_output#3577) +[2618391.675] {Default Queue} discarded wl_surface#2823.enter(wl_output#3577) +[2618391.679] {Default Queue} discarded wl_surface#3015.enter(wl_output#3577) +[2618391.683] {Default Queue} discarded wl_surface#1671.enter(wl_output#3577) +[2618391.687] {Default Queue} discarded wl_surface#1351.enter(wl_output#3577) +[2618391.691] {Default Queue} discarded wl_surface#711.enter(wl_output#3577) +[2618391.695] {Default Queue} discarded wl_surface#3175.enter(wl_output#3577) +[2618391.699] {Default Queue} discarded wl_surface#3431.enter(wl_output#3577) +[2618391.703] {Default Queue} discarded wl_surface#1223.enter(wl_output#3577) +[2618391.707] {Default Queue} discarded wl_surface#1927.enter(wl_output#3577) +[2618391.714] {Default Queue} discarded wl_surface#871.enter(wl_output#3577) +[2618391.719] {Default Queue} discarded wl_surface#1895.enter(wl_output#3577) +[2618391.723] {Default Queue} discarded wl_surface#263.enter(wl_output#3577) +[2618391.727] {Default Queue} discarded wl_surface#551.enter(wl_output#3577) +[2618391.731] {Default Queue} discarded wl_surface#1735.enter(wl_output#3577) +[2618391.735] {Default Queue} discarded wl_surface#1479.enter(wl_output#3577) +[2618391.739] {Default Queue} discarded wl_surface#1772.enter(wl_output#3577) +[2618391.742] {Default Queue} discarded wl_surface#2599.enter(wl_output#3577) +[2618391.746] {Default Queue} discarded wl_surface#2631.enter(wl_output#3577) +[2618391.750] {Default Queue} discarded wl_surface#1959.enter(wl_output#3577) +[2618391.754] {Default Queue} discarded wl_surface#647.enter(wl_output#3577) +[2618391.758] {Default Queue} discarded wl_surface#2055.enter(wl_output#3577) +[2618391.762] {Default Queue} discarded wl_surface#2508.enter(wl_output#3577) +[2618391.766] {Default Queue} discarded wl_surface#71.enter(wl_output#3577) +[2618391.770] {Default Queue} discarded wl_surface#2759.enter(wl_output#3577) +[2618391.774] {Default Queue} discarded wl_surface#2791.enter(wl_output#3577) +[2618391.778] {Default Queue} discarded wl_surface#2887.enter(wl_output#3577) +[2618391.781] {Default Queue} discarded wl_surface#2183.enter(wl_output#3577) +[2618391.785] {Default Queue} discarded wl_surface#2567.enter(wl_output#3577) +[2618391.789] {Default Queue} discarded wl_surface#839.enter(wl_output#3577) +[2618391.793] {Default Queue} discarded wl_surface#1607.enter(wl_output#3577) +[2618391.797] {Default Queue} discarded wl_surface#1095.enter(wl_output#3577) +[2618391.801] {Default Queue} discarded wl_surface#1383.enter(wl_output#3577) +[2618391.805] {Default Queue} discarded wl_surface#487.enter(wl_output#3577) +[2618391.809] {Default Queue} discarded wl_surface#2311.enter(wl_output#3577) +[2618391.813] {Default Queue} discarded wl_surface#519.enter(wl_output#3577) +[2618391.817] {Default Queue} discarded wl_surface#3335.enter(wl_output#3577) +[2618391.820] {Default Queue} discarded wl_surface#3239.enter(wl_output#3577) +[2618391.824] {Default Queue} discarded wl_surface#2087.enter(wl_output#3577) +[2618391.828] {Default Queue} discarded wl_surface#2471.enter(wl_output#3577) +[2618391.832] {Default Queue} discarded wl_surface#295.enter(wl_output#3577) +[2618391.836] {Default Queue} discarded wl_surface#167.enter(wl_output#3577) +[2618391.840] {Default Queue} discarded wl_surface#1255.enter(wl_output#3577) +[2618391.844] {Default Queue} discarded wl_surface#2855.enter(wl_output#3577) +[2618391.848] {Default Queue} discarded wl_surface#3303.enter(wl_output#3577) +[2618391.852] {Default Queue} discarded wl_surface#679.enter(wl_output#3577) +[2618391.856] {Default Queue} discarded wl_surface#2407.enter(wl_output#3577) +[2618391.860] {Default Queue} discarded wl_surface#3207.enter(wl_output#3577) +[2618391.864] {Default Queue} discarded wl_surface#2119.enter(wl_output#3577) +[2618391.868] {Default Queue} wl_registry#3590.global(1, "wl_compositor", 6) +[2618391.877] {Default Queue} -> wl_registry#3590.bind(1, "wl_compositor", 1, new id [unknown]#3596) +[2618391.882] {Default Queue} wl_registry#3590.global(2, "wl_subcompositor", 1) +[2618391.887] {Default Queue} -> wl_registry#3590.bind(2, "wl_subcompositor", 1, new id [unknown]#3597) +[2618391.892] {Default Queue} wl_registry#3590.global(3, "xdg_wm_base", 6) +[2618391.897] {Default Queue} -> wl_registry#3590.bind(3, "xdg_wm_base", 1, new id [unknown]#3598) +[2618391.902] {Default Queue} wl_registry#3590.global(6, "zwlr_layer_shell_v1", 5) +[2618391.906] {Default Queue} wl_registry#3590.global(7, "ext_session_lock_manager_v1", 1) +[2618391.911] {Default Queue} wl_registry#3590.global(8, "wl_shm", 2) +[2618391.915] {Default Queue} -> wl_registry#3590.bind(8, "wl_shm", 1, new id [unknown]#3599) +[2618391.920] {Default Queue} -> wl_registry#3590.bind(8, "wl_shm", 1, new id [unknown]#3600) +[2618391.925] {Default Queue} -> wl_registry#3590.bind(8, "wl_shm", 1, new id [unknown]#3601) +[2618391.932] {Default Queue} wl_registry#3590.global(9, "zxdg_output_manager_v1", 3) +[2618391.938] {Default Queue} wl_registry#3590.global(10, "wp_fractional_scale_manager_v1", 1) +[2618391.943] {Default Queue} wl_registry#3590.global(11, "zwp_tablet_manager_v2", 1) +[2618391.947] {Default Queue} wl_registry#3590.global(12, "zwp_pointer_gestures_v1", 3) +[2618391.952] {Default Queue} wl_registry#3590.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618391.956] {Default Queue} -> wl_registry#3590.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3602) +[2618391.961] {Default Queue} wl_registry#3590.global(14, "zwp_pointer_constraints_v1", 1) +[2618391.965] {Default Queue} -> wl_registry#3590.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3603) +[2618391.969] {Default Queue} wl_registry#3590.global(15, "ext_idle_notifier_v1", 2) +[2618391.974] {Default Queue} wl_registry#3590.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618391.978] {Default Queue} wl_registry#3590.global(17, "wl_data_device_manager", 3) +[2618391.983] {Default Queue} -> wl_registry#3590.bind(17, "wl_data_device_manager", 2, new id [unknown]#3604) +[2618391.987] {Default Queue} -> wl_data_device_manager#3604.create_data_source(new id wl_data_source#3605) +[2618391.992] {Default Queue} -> wl_data_source#3605.offer("text/plain") +[2618391.997] {Default Queue} -> wl_data_source#3605.offer("text/plain;charset=utf-8") +[2618392.001] {Default Queue} -> wl_data_source#3605.offer("TEXT") +[2618392.005] {Default Queue} -> wl_data_source#3605.offer("STRING") +[2618392.009] {Default Queue} -> wl_data_source#3605.offer("UTF8_STRING") +[2618392.013] {Default Queue} wl_registry#3590.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618392.017] {Default Queue} -> wl_registry#3590.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3606) +[2618392.026] {Default Queue} -> zwp_primary_selection_device_manager_v1#3606.create_source(new id zwp_primary_selection_source_v1#3607) +[2618392.033] {Default Queue} -> zwp_primary_selection_source_v1#3607.offer("text/plain") +[2618392.039] {Default Queue} -> zwp_primary_selection_source_v1#3607.offer("text/plain;charset=utf-8") +[2618392.043] {Default Queue} -> zwp_primary_selection_source_v1#3607.offer("TEXT") +[2618392.048] {Default Queue} -> zwp_primary_selection_source_v1#3607.offer("STRING") +[2618392.052] {Default Queue} -> zwp_primary_selection_source_v1#3607.offer("UTF8_STRING") +[2618392.056] {Default Queue} wl_registry#3590.global(19, "zwlr_data_control_manager_v1", 2) +[2618392.060] {Default Queue} wl_registry#3590.global(20, "ext_data_control_manager_v1", 1) +[2618392.065] {Default Queue} wl_registry#3590.global(21, "wp_presentation", 2) +[2618392.069] {Default Queue} wl_registry#3590.global(22, "wp_security_context_manager_v1", 1) +[2618392.073] {Default Queue} wl_registry#3590.global(23, "zwp_text_input_manager_v3", 1) +[2618392.078] {Default Queue} wl_registry#3590.global(24, "zwp_input_method_manager_v2", 1) +[2618392.082] {Default Queue} wl_registry#3590.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618392.087] {Default Queue} wl_registry#3590.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618392.091] {Default Queue} wl_registry#3590.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618392.096] {Default Queue} wl_registry#3590.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618392.102] {Default Queue} wl_registry#3590.global(29, "ext_workspace_manager_v1", 1) +[2618392.108] {Default Queue} wl_registry#3590.global(30, "zwlr_output_manager_v1", 4) +[2618392.113] {Default Queue} wl_registry#3590.global(31, "zwlr_screencopy_manager_v1", 3) +[2618392.119] {Default Queue} wl_registry#3590.global(32, "wp_viewporter", 1) +[2618392.125] {Default Queue} wl_registry#3590.global(33, "zxdg_exporter_v2", 1) +[2618392.130] {Default Queue} wl_registry#3590.global(34, "zxdg_importer_v2", 1) +[2618392.134] {Default Queue} wl_registry#3590.global(36, "xdg_activation_v1", 1) +[2618392.139] {Default Queue} wl_registry#3590.global(37, "mutter_x11_interop", 1) +[2618392.146] {Default Queue} wl_registry#3590.global(38, "wl_seat", 9) +[2618392.152] {Default Queue} -> wl_registry#3590.bind(38, "wl_seat", 1, new id [unknown]#3608) +[2618392.157] {Default Queue} wl_registry#3590.global(39, "wp_cursor_shape_manager_v1", 2) +[2618392.161] {Default Queue} wl_registry#3590.global(40, "wl_output", 4) +[2618392.166] {Default Queue} -> wl_registry#3590.bind(40, "wl_output", 1, new id [unknown]#3609) +[2618392.171] {Default Queue} wl_callback#3591.done(0) +[2618392.175] {Default Queue} discarded wl_surface#3559.enter(wl_output#18) +[2618392.179] {Default Queue} discarded wl_surface#3559.enter(wl_output#57) +[2618392.182] {Default Queue} discarded wl_surface#3559.enter(wl_output#89) +[2618392.186] {Default Queue} discarded wl_surface#3559.enter(wl_output#121) +[2618392.191] {Default Queue} discarded wl_surface#3559.enter(wl_output#153) +[2618392.195] {Default Queue} discarded wl_surface#3559.enter(wl_output#185) +[2618392.199] {Default Queue} discarded wl_surface#3559.enter(wl_output#217) +[2618392.202] {Default Queue} discarded wl_surface#3559.enter(wl_output#249) +[2618392.206] {Default Queue} discarded wl_surface#3559.enter(wl_output#281) +[2618392.210] {Default Queue} discarded wl_surface#3559.enter(wl_output#313) +[2618392.214] {Default Queue} discarded wl_surface#3559.enter(wl_output#345) +[2618392.218] {Default Queue} discarded wl_surface#3559.enter(wl_output#377) +[2618392.222] {Default Queue} discarded wl_surface#3559.enter(wl_output#409) +[2618392.226] {Default Queue} discarded wl_surface#3559.enter(wl_output#441) +[2618392.230] {Default Queue} discarded wl_surface#3559.enter(wl_output#473) +[2618392.234] {Default Queue} discarded wl_surface#3559.enter(wl_output#505) +[2618392.238] {Default Queue} discarded wl_surface#3559.enter(wl_output#537) +[2618392.242] {Default Queue} discarded wl_surface#3559.enter(wl_output#569) +[2618392.246] {Default Queue} discarded wl_surface#3559.enter(wl_output#601) +[2618392.250] {Default Queue} discarded wl_surface#3559.enter(wl_output#633) +[2618392.253] {Default Queue} discarded wl_surface#3559.enter(wl_output#665) +[2618392.257] {Default Queue} discarded wl_surface#3559.enter(wl_output#697) +[2618392.262] {Default Queue} discarded wl_surface#3559.enter(wl_output#729) +[2618392.266] {Default Queue} discarded wl_surface#3559.enter(wl_output#761) +[2618392.269] {Default Queue} discarded wl_surface#3559.enter(wl_output#793) +[2618392.273] {Default Queue} discarded wl_surface#3559.enter(wl_output#825) +[2618392.277] {Default Queue} discarded wl_surface#3559.enter(wl_output#857) +[2618392.281] {Default Queue} discarded wl_surface#3559.enter(wl_output#889) +[2618392.285] {Default Queue} discarded wl_surface#3559.enter(wl_output#921) +[2618392.289] {Default Queue} discarded wl_surface#3559.enter(wl_output#953) +[2618392.293] {Default Queue} discarded wl_surface#3559.enter(wl_output#985) +[2618392.297] {Default Queue} discarded wl_surface#3559.enter(wl_output#1017) +[2618392.301] {Default Queue} discarded wl_surface#3559.enter(wl_output#1049) +[2618392.305] {Default Queue} discarded wl_surface#3559.enter(wl_output#1081) +[2618392.309] {Default Queue} discarded wl_surface#3559.enter(wl_output#1113) +[2618392.313] {Default Queue} discarded wl_surface#3559.enter(wl_output#1145) +[2618392.317] {Default Queue} discarded wl_surface#3559.enter(wl_output#1177) +[2618392.321] {Default Queue} discarded wl_surface#3559.enter(wl_output#1209) +[2618392.325] {Default Queue} discarded wl_surface#3559.enter(wl_output#1241) +[2618392.329] {Default Queue} discarded wl_surface#3559.enter(wl_output#1273) +[2618392.333] {Default Queue} discarded wl_surface#3559.enter(wl_output#1305) +[2618392.337] {Default Queue} discarded wl_surface#3559.enter(wl_output#1337) +[2618392.341] {Default Queue} discarded wl_surface#3559.enter(wl_output#1369) +[2618392.344] {Default Queue} discarded wl_surface#3559.enter(wl_output#1401) +[2618392.348] {Default Queue} discarded wl_surface#3559.enter(wl_output#1433) +[2618392.352] {Default Queue} discarded wl_surface#3559.enter(wl_output#1465) +[2618392.356] {Default Queue} discarded wl_surface#3559.enter(wl_output#1497) +[2618392.363] {Default Queue} discarded wl_surface#3559.enter(wl_output#1529) +[2618392.368] {Default Queue} discarded wl_surface#3559.enter(wl_output#1561) +[2618392.372] {Default Queue} discarded wl_surface#3559.enter(wl_output#1593) +[2618392.376] {Default Queue} discarded wl_surface#3559.enter(wl_output#1625) +[2618392.380] {Default Queue} discarded wl_surface#3559.enter(wl_output#1657) +[2618392.384] {Default Queue} discarded wl_surface#3559.enter(wl_output#1689) +[2618392.388] {Default Queue} discarded wl_surface#3559.enter(wl_output#1721) +[2618392.392] {Default Queue} discarded wl_surface#3559.enter(wl_output#1753) +[2618392.396] {Default Queue} discarded wl_surface#3559.enter(wl_output#1785) +[2618392.400] {Default Queue} discarded wl_surface#3559.enter(wl_output#1817) +[2618392.404] {Default Queue} discarded wl_surface#3559.enter(wl_output#1849) +[2618392.408] {Default Queue} discarded wl_surface#3559.enter(wl_output#1881) +[2618392.412] {Default Queue} discarded wl_surface#3559.enter(wl_output#1913) +[2618392.416] {Default Queue} discarded wl_surface#3559.enter(wl_output#1945) +[2618392.420] {Default Queue} discarded wl_surface#3559.enter(wl_output#1977) +[2618392.424] {Default Queue} discarded wl_surface#3559.enter(wl_output#2009) +[2618392.428] {Default Queue} discarded wl_surface#3559.enter(wl_output#2041) +[2618392.432] {Default Queue} -> wl_compositor#2988.create_surface(new id wl_surface#3591) +[2618392.436] {Default Queue} -> wl_subcompositor#3597.get_subsurface(new id wl_subsurface#3610, wl_surface#3591, wl_surface#2983) +[2618392.444] {Default Queue} -> wl_subsurface#3610.set_desync() +[2618392.449] {Default Queue} -> wl_subsurface#3610.set_position(0, 0) +[2618392.453] {Default Queue} -> wl_subsurface#3610.place_above(wl_surface#2983) +[2618392.503] {Default Queue} -> wl_shm#3599.create_pool(new id wl_shm_pool#3611, fd 569, 16) +[2618392.510] {Default Queue} -> wl_shm#3599.create_pool(new id wl_shm_pool#3612, fd 570, 16) +[2618392.514] {Default Queue} -> wl_shm_pool#3611.create_buffer(new id wl_buffer#3613, 0, 2, 2, 8, 0) +[2618392.519] {Default Queue} -> wl_shm_pool#3612.create_buffer(new id wl_buffer#3614, 0, 2, 2, 8, 0) +[2618392.527] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) +[2618392.533] {Default Queue} -> wl_surface#3591.commit() +[2618392.538] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) +[2618392.543] {Default Queue} -> wl_surface#3591.commit() +[2618392.547] {Default Queue} -> wl_compositor#3596.create_region(new id wl_region#3615) +[2618392.551] {Default Queue} -> wl_compositor#3596.create_region(new id wl_region#3616) +[2618392.556] {Default Queue} -> wl_region#3615.subtract(0, 0, 2, 2) +[2618392.560] {Default Queue} -> wl_region#3615.add(0, 0, 0, 0) +[2618392.565] {Default Queue} -> wl_surface#3591.set_opaque_region(wl_region#3616) +[2618392.569] {Default Queue} -> wl_surface#3591.set_input_region(wl_region#3615) +[2618392.574] {Default Queue} -> wl_surface#3591.damage(0, 0, 2, 2) +[2618392.578] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) +[2618392.585] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) +[2618392.589] {Default Queue} -> wl_surface#3591.commit() +[2618392.624] {Default Queue} -> wl_shm#3601.create_pool(new id wl_shm_pool#3617, fd 573, 640) +[2618392.630] {Default Queue} -> wl_shm#3601.create_pool(new id wl_shm_pool#3618, fd 574, 640) +[2618392.634] {Default Queue} -> wl_shm_pool#3617.create_buffer(new id wl_buffer#3619, 0, 10, 16, 40, 0) +[2618392.639] {Default Queue} -> wl_shm_pool#3618.create_buffer(new id wl_buffer#3620, 0, 10, 16, 40, 0) +[2618392.646] {Default Queue} -> wl_compositor#3596.create_surface(new id wl_surface#3621) +[2618392.650] {Default Queue} -> wl_surface#3621.attach(wl_buffer#3619, 0, 0) +[2618392.654] {Default Queue} -> wl_surface#3621.commit() +[2618392.660] {Default Queue} -> wl_surface#3621.attach(wl_buffer#3619, 0, 0) +[2618392.664] {Default Queue} -> wl_surface#3621.commit() +[2618392.669] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) +[2618392.676] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3622) +[2618392.684] {Default Queue} -> wl_display#1.sync(new id wl_callback#3623) +[2618396.013] {Default Queue} discarded wl_surface#3559.enter(wl_output#2073) +[2618396.021] {Default Queue} discarded wl_surface#3559.enter(wl_output#2105) +[2618396.025] {Default Queue} discarded wl_surface#3559.enter(wl_output#2137) +[2618396.029] {Default Queue} discarded wl_surface#3559.enter(wl_output#2169) +[2618396.033] {Default Queue} discarded wl_surface#3559.enter(wl_output#2201) +[2618396.037] {Default Queue} discarded wl_surface#3559.enter(wl_output#2233) +[2618396.042] {Default Queue} discarded wl_surface#3559.enter(wl_output#2265) +[2618396.045] {Default Queue} discarded wl_surface#3559.enter(wl_output#2297) +[2618396.049] {Default Queue} discarded wl_surface#3559.enter(wl_output#2329) +[2618396.053] {Default Queue} discarded wl_surface#3559.enter(wl_output#2361) +[2618396.057] {Default Queue} discarded wl_surface#3559.enter(wl_output#2393) +[2618396.060] {Default Queue} discarded wl_surface#3559.enter(wl_output#2425) +[2618396.064] {Default Queue} discarded wl_surface#3559.enter(wl_output#2457) +[2618396.069] {Default Queue} discarded wl_surface#3559.enter(wl_output#2489) +[2618396.073] {Default Queue} discarded wl_surface#3559.enter(wl_output#2521) +[2618396.077] {Default Queue} discarded wl_surface#3559.enter(wl_output#2553) +[2618396.080] {Default Queue} discarded wl_surface#3559.enter(wl_output#2585) +[2618396.084] {Default Queue} discarded wl_surface#3559.enter(wl_output#2617) +[2618396.089] {Default Queue} discarded wl_surface#3559.enter(wl_output#2649) +[2618396.093] {Default Queue} discarded wl_surface#3559.enter(wl_output#2681) +[2618396.096] {Default Queue} discarded wl_surface#3559.enter(wl_output#2713) +[2618396.100] {Default Queue} discarded wl_surface#3559.enter(wl_output#2745) +[2618396.104] {Default Queue} discarded wl_surface#3559.enter(wl_output#2777) +[2618396.108] {Default Queue} discarded wl_surface#3559.enter(wl_output#2809) +[2618396.112] {Default Queue} discarded wl_surface#3559.enter(wl_output#2841) +[2618396.116] {Default Queue} discarded wl_surface#3559.enter(wl_output#2873) +[2618396.120] {Default Queue} discarded wl_surface#3559.enter(wl_output#2905) +[2618396.124] {Default Queue} discarded wl_surface#3559.enter(wl_output#2937) +[2618396.128] {Default Queue} discarded wl_surface#3559.enter(wl_output#2969) +[2618396.132] {Default Queue} discarded wl_surface#3559.enter(wl_output#3001) +[2618396.136] {Default Queue} discarded wl_surface#3559.enter(wl_output#3033) +[2618396.140] {Default Queue} discarded wl_surface#3559.enter(wl_output#3065) +[2618396.144] {Default Queue} discarded wl_surface#3559.enter(wl_output#3097) +[2618396.148] {Default Queue} discarded wl_surface#3559.enter(wl_output#3129) +[2618396.152] {Default Queue} discarded wl_surface#3559.enter(wl_output#3161) +[2618396.155] {Default Queue} discarded wl_surface#3559.enter(wl_output#3193) +[2618396.160] {Default Queue} discarded wl_surface#3559.enter(wl_output#3225) +[2618396.164] {Default Queue} discarded wl_surface#3559.enter(wl_output#3257) +[2618396.167] {Default Queue} discarded wl_surface#3559.enter(wl_output#3289) +[2618396.171] {Default Queue} discarded wl_surface#3559.enter(wl_output#3321) +[2618396.175] {Default Queue} discarded wl_surface#3559.enter(wl_output#3353) +[2618396.179] {Default Queue} discarded wl_surface#3559.enter(wl_output#3385) +[2618396.183] {Default Queue} discarded wl_surface#3559.enter(wl_output#3417) +[2618396.187] {Default Queue} discarded wl_surface#3559.enter(wl_output#3449) +[2618396.191] {Default Queue} discarded wl_surface#3559.enter(wl_output#3481) +[2618396.195] {Default Queue} discarded wl_surface#3559.enter(wl_output#3513) +[2618396.198] {Default Queue} discarded wl_surface#3559.enter(wl_output#3545) +[2618396.202] {Default Queue} discarded wl_surface#3559.enter(wl_output#3577) +[2618396.332] {Display Queue} wl_display#1.delete_id(3623) +[2618396.339] {Default Queue} wl_keyboard#3592.keymap(1, fd 569, 68213) +[2618396.343] {Default Queue} wl_keyboard#3592.enter(566, wl_surface#19, array[0]) +[2618396.353] {Default Queue} wl_keyboard#3592.modifiers(566, 0, 0, 16, 0) +[2618396.360] {Default Queue} discarded wl_shm#3599.format(875709016) +[2618396.364] {Default Queue} discarded wl_shm#3599.format(1) +[2618396.368] {Default Queue} discarded wl_shm#3599.format(0) +[2618396.372] {Default Queue} discarded wl_shm#3599.format(875708993) +[2618396.376] {Default Queue} discarded wl_shm#3600.format(875709016) +[2618396.380] {Default Queue} discarded wl_shm#3600.format(1) +[2618396.384] {Default Queue} discarded wl_shm#3600.format(0) +[2618396.388] {Default Queue} discarded wl_shm#3600.format(875708993) +[2618396.392] {Default Queue} discarded wl_shm#3601.format(875709016) +[2618396.396] {Default Queue} discarded wl_shm#3601.format(1) +[2618396.400] {Default Queue} discarded wl_shm#3601.format(0) +[2618396.403] {Default Queue} discarded wl_shm#3601.format(875708993) +[2618396.407] {Default Queue} wl_seat#3608.capabilities(7) +[2618396.412] {Default Queue} -> wl_seat#3608.get_keyboard(new id wl_keyboard#3624) +[2618396.416] {Default Queue} -> wl_seat#3608.get_pointer(new id wl_pointer#3625) +[2618396.421] {Default Queue} -> wl_data_device_manager#3604.get_data_device(new id wl_data_device#3626, wl_seat#3608) +[2618396.425] {Default Queue} -> zwp_primary_selection_device_manager_v1#3606.get_device(new id zwp_primary_selection_device_v1#3627, wl_seat#3608) +[2618396.433] {Default Queue} wl_output#3609.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618396.438] {Default Queue} wl_output#3609.mode(3, 1280, 800, 60000) +[2618396.443] {Default Queue} discarded wl_surface#2727.enter(wl_output#3609) +[2618396.447] {Default Queue} discarded wl_surface#3.enter(wl_output#3609) +[2618396.451] {Default Queue} discarded wl_surface#999.enter(wl_output#3609) +[2618396.455] {Default Queue} discarded wl_surface#3079.enter(wl_output#3609) +[2618396.459] {Default Queue} discarded wl_surface#1191.enter(wl_output#3609) +[2618396.463] {Default Queue} discarded wl_surface#1159.enter(wl_output#3609) +[2618396.467] {Default Queue} discarded wl_surface#1703.enter(wl_output#3609) +[2618396.471] {Default Queue} discarded wl_surface#2215.enter(wl_output#3609) +[2618396.475] {Default Queue} discarded wl_surface#423.enter(wl_output#3609) +[2618396.479] {Default Queue} discarded wl_surface#1447.enter(wl_output#3609) +[2618396.483] {Default Queue} discarded wl_surface#3527.enter(wl_output#3609) +[2618396.487] {Default Queue} discarded wl_surface#3047.enter(wl_output#3609) +[2618396.491] {Default Queue} discarded wl_surface#2023.enter(wl_output#3609) +[2618396.495] {Default Queue} discarded wl_surface#1639.enter(wl_output#3609) +[2618396.499] {Default Queue} discarded wl_surface#1319.enter(wl_output#3609) +[2618396.502] {Default Queue} discarded wl_surface#1127.enter(wl_output#3609) +[2618396.506] {Default Queue} discarded wl_surface#2151.enter(wl_output#3609) +[2618396.510] {Default Queue} discarded wl_surface#2375.enter(wl_output#3609) +[2618396.514] {Default Queue} discarded wl_surface#2695.enter(wl_output#3609) +[2618396.518] {Default Queue} discarded wl_surface#2919.enter(wl_output#3609) +[2618396.522] {Default Queue} discarded wl_surface#1063.enter(wl_output#3609) +[2618396.526] {Default Queue} discarded wl_surface#455.enter(wl_output#3609) +[2618396.529] {Default Queue} discarded wl_surface#1575.enter(wl_output#3609) +[2618396.534] {Default Queue} discarded wl_surface#1799.enter(wl_output#3609) +[2618396.537] {Default Queue} discarded wl_surface#1415.enter(wl_output#3609) +[2618396.541] {Default Queue} discarded wl_surface#2439.enter(wl_output#3609) +[2618396.545] {Default Queue} discarded wl_surface#2279.enter(wl_output#3609) +[2618396.549] {Default Queue} discarded wl_surface#1831.enter(wl_output#3609) +[2618396.553] {Default Queue} discarded wl_surface#903.enter(wl_output#3609) +[2618396.557] {Default Queue} discarded wl_surface#2663.enter(wl_output#3609) +[2618396.561] {Default Queue} discarded wl_surface#775.enter(wl_output#3609) +[2618396.565] {Default Queue} discarded wl_surface#1991.enter(wl_output#3609) +[2618396.569] {Default Queue} discarded wl_surface#1543.enter(wl_output#3609) +[2618396.575] {Default Queue} discarded wl_surface#135.enter(wl_output#3609) +[2618396.581] {Default Queue} discarded wl_surface#1287.enter(wl_output#3609) +[2618396.585] {Default Queue} discarded wl_surface#3399.enter(wl_output#3609) +[2618396.589] {Default Queue} discarded wl_surface#1031.enter(wl_output#3609) +[2618396.593] {Default Queue} discarded wl_surface#615.enter(wl_output#3609) +[2618396.597] {Default Queue} discarded wl_surface#3111.enter(wl_output#3609) +[2618396.601] {Default Queue} discarded wl_surface#231.enter(wl_output#3609) +[2618396.606] {Default Queue} discarded wl_surface#2343.enter(wl_output#3609) +[2618396.609] {Default Queue} discarded wl_surface#1863.enter(wl_output#3609) +[2618396.613] {Default Queue} discarded wl_surface#359.enter(wl_output#3609) +[2618396.618] {Default Queue} discarded wl_surface#2983.enter(wl_output#3609) +[2618396.622] {Default Queue} discarded wl_surface#583.enter(wl_output#3609) +[2618396.626] {Default Queue} discarded wl_surface#743.enter(wl_output#3609) +[2618396.630] {Default Queue} discarded wl_surface#3143.enter(wl_output#3609) +[2618396.634] {Default Queue} discarded wl_surface#2535.enter(wl_output#3609) +[2618396.638] {Default Queue} discarded wl_surface#3367.enter(wl_output#3609) +[2618396.642] {Default Queue} discarded wl_surface#967.enter(wl_output#3609) +[2618396.646] {Default Queue} discarded wl_surface#103.enter(wl_output#3609) +[2618396.649] {Default Queue} discarded wl_surface#3271.enter(wl_output#3609) +[2618396.653] {Default Queue} discarded wl_surface#327.enter(wl_output#3609) +[2618396.658] {Default Queue} discarded wl_surface#43.enter(wl_output#3609) +[2618396.662] {Default Queue} discarded wl_surface#2247.enter(wl_output#3609) +[2618396.665] {Default Queue} discarded wl_surface#807.enter(wl_output#3609) +[2618396.669] {Default Queue} discarded wl_surface#19.enter(wl_output#3609) +[2618396.673] {Default Queue} discarded wl_surface#2951.enter(wl_output#3609) +[2618396.677] {Default Queue} discarded wl_surface#1511.enter(wl_output#3609) +[2618396.681] {Default Queue} discarded wl_surface#199.enter(wl_output#3609) +[2618396.685] {Default Queue} discarded wl_surface#3463.enter(wl_output#3609) +[2618396.689] {Default Queue} discarded wl_surface#3559.enter(wl_output#3609) +[2618396.693] {Default Queue} discarded wl_surface#3495.enter(wl_output#3609) +[2618396.697] {Default Queue} discarded wl_surface#391.enter(wl_output#3609) +[2618396.701] {Default Queue} discarded wl_surface#935.enter(wl_output#3609) +[2618396.705] {Default Queue} discarded wl_surface#2823.enter(wl_output#3609) +[2618396.709] {Default Queue} discarded wl_surface#3015.enter(wl_output#3609) +[2618396.713] {Default Queue} discarded wl_surface#1671.enter(wl_output#3609) +[2618396.717] {Default Queue} discarded wl_surface#1351.enter(wl_output#3609) +[2618396.720] {Default Queue} discarded wl_surface#711.enter(wl_output#3609) +[2618396.724] {Default Queue} discarded wl_surface#3175.enter(wl_output#3609) +[2618396.728] {Default Queue} discarded wl_surface#3431.enter(wl_output#3609) +[2618396.732] {Default Queue} discarded wl_surface#1223.enter(wl_output#3609) +[2618396.736] {Default Queue} discarded wl_surface#1927.enter(wl_output#3609) +[2618396.740] {Default Queue} discarded wl_surface#871.enter(wl_output#3609) +[2618396.744] {Default Queue} discarded wl_surface#1895.enter(wl_output#3609) +[2618396.749] {Default Queue} discarded wl_surface#263.enter(wl_output#3609) +[2618396.754] {Default Queue} discarded wl_surface#551.enter(wl_output#3609) +[2618396.760] {Default Queue} discarded wl_surface#1735.enter(wl_output#3609) +[2618396.766] {Default Queue} discarded wl_surface#1479.enter(wl_output#3609) +[2618396.773] {Default Queue} discarded wl_surface#1772.enter(wl_output#3609) +[2618396.779] {Default Queue} discarded wl_surface#2599.enter(wl_output#3609) +[2618396.785] {Default Queue} discarded wl_surface#2631.enter(wl_output#3609) +[2618396.791] {Default Queue} discarded wl_surface#1959.enter(wl_output#3609) +[2618396.797] {Default Queue} discarded wl_surface#647.enter(wl_output#3609) +[2618396.802] {Default Queue} discarded wl_surface#2055.enter(wl_output#3609) +[2618396.810] {Default Queue} discarded wl_surface#2508.enter(wl_output#3609) +[2618396.815] {Default Queue} discarded wl_surface#71.enter(wl_output#3609) +[2618396.820] {Default Queue} discarded wl_surface#2759.enter(wl_output#3609) +[2618396.824] {Default Queue} discarded wl_surface#2791.enter(wl_output#3609) +[2618396.828] {Default Queue} discarded wl_surface#2887.enter(wl_output#3609) +[2618396.832] {Default Queue} discarded wl_surface#2183.enter(wl_output#3609) +[2618396.836] {Default Queue} discarded wl_surface#2567.enter(wl_output#3609) +[2618396.840] {Default Queue} discarded wl_surface#839.enter(wl_output#3609) +[2618396.844] {Default Queue} discarded wl_surface#1607.enter(wl_output#3609) +[2618396.848] {Default Queue} discarded wl_surface#1095.enter(wl_output#3609) +[2618396.852] {Default Queue} discarded wl_surface#1383.enter(wl_output#3609) +[2618396.856] {Default Queue} discarded wl_surface#487.enter(wl_output#3609) +[2618396.861] {Default Queue} discarded wl_surface#2311.enter(wl_output#3609) +[2618396.865] {Default Queue} discarded wl_surface#519.enter(wl_output#3609) +[2618396.869] {Default Queue} discarded wl_surface#3335.enter(wl_output#3609) +[2618396.877] {Default Queue} discarded wl_surface#3239.enter(wl_output#3609) +[2618396.881] {Default Queue} discarded wl_surface#2087.enter(wl_output#3609) +[2618396.885] {Default Queue} discarded wl_surface#2471.enter(wl_output#3609) +[2618396.889] {Default Queue} discarded wl_surface#295.enter(wl_output#3609) +[2618396.893] {Default Queue} discarded wl_surface#167.enter(wl_output#3609) +[2618396.897] {Default Queue} discarded wl_surface#1255.enter(wl_output#3609) +[2618396.901] {Default Queue} discarded wl_surface#2855.enter(wl_output#3609) +[2618396.904] {Default Queue} discarded wl_surface#3303.enter(wl_output#3609) +[2618396.908] {Default Queue} discarded wl_surface#679.enter(wl_output#3609) +[2618396.912] {Default Queue} discarded wl_surface#2407.enter(wl_output#3609) +[2618396.917] {Default Queue} discarded wl_surface#3207.enter(wl_output#3609) +[2618396.920] {Default Queue} discarded wl_surface#2119.enter(wl_output#3609) +[2618396.924] {Default Queue} wl_registry#3622.global(1, "wl_compositor", 6) +[2618396.930] {Default Queue} -> wl_registry#3622.bind(1, "wl_compositor", 1, new id [unknown]#3628) +[2618396.935] {Default Queue} wl_registry#3622.global(2, "wl_subcompositor", 1) +[2618396.940] {Default Queue} -> wl_registry#3622.bind(2, "wl_subcompositor", 1, new id [unknown]#3629) +[2618396.944] {Default Queue} wl_registry#3622.global(3, "xdg_wm_base", 6) +[2618396.949] {Default Queue} -> wl_registry#3622.bind(3, "xdg_wm_base", 1, new id [unknown]#3630) +[2618396.953] {Default Queue} wl_registry#3622.global(6, "zwlr_layer_shell_v1", 5) +[2618396.957] {Default Queue} wl_registry#3622.global(7, "ext_session_lock_manager_v1", 1) +[2618396.962] {Default Queue} wl_registry#3622.global(8, "wl_shm", 2) +[2618396.967] {Default Queue} -> wl_registry#3622.bind(8, "wl_shm", 1, new id [unknown]#3631) +[2618396.971] {Default Queue} -> wl_registry#3622.bind(8, "wl_shm", 1, new id [unknown]#3632) +[2618396.975] {Default Queue} -> wl_registry#3622.bind(8, "wl_shm", 1, new id [unknown]#3633) +[2618396.980] {Default Queue} wl_registry#3622.global(9, "zxdg_output_manager_v1", 3) +[2618396.984] {Default Queue} wl_registry#3622.global(10, "wp_fractional_scale_manager_v1", 1) +[2618396.989] {Default Queue} wl_registry#3622.global(11, "zwp_tablet_manager_v2", 1) +[2618396.993] {Default Queue} wl_registry#3622.global(12, "zwp_pointer_gestures_v1", 3) +[2618396.997] {Default Queue} wl_registry#3622.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618397.004] {Default Queue} -> wl_registry#3622.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3634) +[2618397.009] {Default Queue} wl_registry#3622.global(14, "zwp_pointer_constraints_v1", 1) +[2618397.014] {Default Queue} -> wl_registry#3622.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3635) +[2618397.019] {Default Queue} wl_registry#3622.global(15, "ext_idle_notifier_v1", 2) +[2618397.023] {Default Queue} wl_registry#3622.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618397.030] {Default Queue} wl_registry#3622.global(17, "wl_data_device_manager", 3) +[2618397.037] {Default Queue} -> wl_registry#3622.bind(17, "wl_data_device_manager", 2, new id [unknown]#3636) +[2618397.042] {Default Queue} -> wl_data_device_manager#3636.create_data_source(new id wl_data_source#3637) +[2618397.046] {Default Queue} -> wl_data_source#3637.offer("text/plain") +[2618397.050] {Default Queue} -> wl_data_source#3637.offer("text/plain;charset=utf-8") +[2618397.054] {Default Queue} -> wl_data_source#3637.offer("TEXT") +[2618397.059] {Default Queue} -> wl_data_source#3637.offer("STRING") +[2618397.063] {Default Queue} -> wl_data_source#3637.offer("UTF8_STRING") +[2618397.067] {Default Queue} wl_registry#3622.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618397.072] {Default Queue} -> wl_registry#3622.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3638) +[2618397.080] {Default Queue} -> zwp_primary_selection_device_manager_v1#3638.create_source(new id zwp_primary_selection_source_v1#3639) +[2618397.087] {Default Queue} -> zwp_primary_selection_source_v1#3639.offer("text/plain") +[2618397.091] {Default Queue} -> zwp_primary_selection_source_v1#3639.offer("text/plain;charset=utf-8") +[2618397.096] {Default Queue} -> zwp_primary_selection_source_v1#3639.offer("TEXT") +[2618397.100] {Default Queue} -> zwp_primary_selection_source_v1#3639.offer("STRING") +[2618397.104] {Default Queue} -> zwp_primary_selection_source_v1#3639.offer("UTF8_STRING") +[2618397.108] {Default Queue} wl_registry#3622.global(19, "zwlr_data_control_manager_v1", 2) +[2618397.115] {Default Queue} wl_registry#3622.global(20, "ext_data_control_manager_v1", 1) +[2618397.120] {Default Queue} wl_registry#3622.global(21, "wp_presentation", 2) +[2618397.126] {Default Queue} wl_registry#3622.global(22, "wp_security_context_manager_v1", 1) +[2618397.133] {Default Queue} wl_registry#3622.global(23, "zwp_text_input_manager_v3", 1) +[2618397.137] {Default Queue} wl_registry#3622.global(24, "zwp_input_method_manager_v2", 1) +[2618397.141] {Default Queue} wl_registry#3622.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618397.146] {Default Queue} wl_registry#3622.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618397.150] {Default Queue} wl_registry#3622.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618397.155] {Default Queue} wl_registry#3622.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618397.159] {Default Queue} wl_registry#3622.global(29, "ext_workspace_manager_v1", 1) +[2618397.163] {Default Queue} wl_registry#3622.global(30, "zwlr_output_manager_v1", 4) +[2618397.168] {Default Queue} wl_registry#3622.global(31, "zwlr_screencopy_manager_v1", 3) +[2618397.173] {Default Queue} wl_registry#3622.global(32, "wp_viewporter", 1) +[2618397.177] {Default Queue} wl_registry#3622.global(33, "zxdg_exporter_v2", 1) +[2618397.181] {Default Queue} wl_registry#3622.global(34, "zxdg_importer_v2", 1) +[2618397.186] {Default Queue} wl_registry#3622.global(36, "xdg_activation_v1", 1) +[2618397.190] {Default Queue} wl_registry#3622.global(37, "mutter_x11_interop", 1) +[2618397.195] {Default Queue} wl_registry#3622.global(38, "wl_seat", 9) +[2618397.199] {Default Queue} -> wl_registry#3622.bind(38, "wl_seat", 1, new id [unknown]#3640) +[2618397.204] {Default Queue} wl_registry#3622.global(39, "wp_cursor_shape_manager_v1", 2) +[2618397.208] {Default Queue} wl_registry#3622.global(40, "wl_output", 4) +[2618397.213] {Default Queue} -> wl_registry#3622.bind(40, "wl_output", 1, new id [unknown]#3641) +[2618397.217] {Default Queue} wl_callback#3623.done(0) +[2618397.222] {Default Queue} discarded wl_surface#3591.enter(wl_output#18) +[2618397.226] {Default Queue} discarded wl_surface#3591.enter(wl_output#57) +[2618397.229] {Default Queue} discarded wl_surface#3591.enter(wl_output#89) +[2618397.233] {Default Queue} discarded wl_surface#3591.enter(wl_output#121) +[2618397.237] {Default Queue} discarded wl_surface#3591.enter(wl_output#153) +[2618397.241] {Default Queue} discarded wl_surface#3591.enter(wl_output#185) +[2618397.249] {Default Queue} discarded wl_surface#3591.enter(wl_output#217) +[2618397.254] {Default Queue} discarded wl_surface#3591.enter(wl_output#249) +[2618397.259] {Default Queue} discarded wl_surface#3591.enter(wl_output#281) +[2618397.263] {Default Queue} discarded wl_surface#3591.enter(wl_output#313) +[2618397.267] {Default Queue} discarded wl_surface#3591.enter(wl_output#345) +[2618397.271] {Default Queue} discarded wl_surface#3591.enter(wl_output#377) +[2618397.274] {Default Queue} discarded wl_surface#3591.enter(wl_output#409) +[2618397.279] {Default Queue} discarded wl_surface#3591.enter(wl_output#441) +[2618397.283] {Default Queue} discarded wl_surface#3591.enter(wl_output#473) +[2618397.286] {Default Queue} discarded wl_surface#3591.enter(wl_output#505) +[2618397.290] {Default Queue} discarded wl_surface#3591.enter(wl_output#537) +[2618397.294] {Default Queue} discarded wl_surface#3591.enter(wl_output#569) +[2618397.298] {Default Queue} discarded wl_surface#3591.enter(wl_output#601) +[2618397.302] {Default Queue} discarded wl_surface#3591.enter(wl_output#633) +[2618397.306] {Default Queue} discarded wl_surface#3591.enter(wl_output#665) +[2618397.310] {Default Queue} discarded wl_surface#3591.enter(wl_output#697) +[2618397.314] {Default Queue} discarded wl_surface#3591.enter(wl_output#729) +[2618397.319] {Default Queue} discarded wl_surface#3591.enter(wl_output#761) +[2618397.323] {Default Queue} discarded wl_surface#3591.enter(wl_output#793) +[2618397.326] {Default Queue} discarded wl_surface#3591.enter(wl_output#825) +[2618397.330] {Default Queue} discarded wl_surface#3591.enter(wl_output#857) +[2618397.334] {Default Queue} discarded wl_surface#3591.enter(wl_output#889) +[2618397.338] {Default Queue} discarded wl_surface#3591.enter(wl_output#921) +[2618397.342] {Default Queue} discarded wl_surface#3591.enter(wl_output#953) +[2618397.346] {Default Queue} discarded wl_surface#3591.enter(wl_output#985) +[2618397.350] {Default Queue} discarded wl_surface#3591.enter(wl_output#1017) +[2618397.354] {Default Queue} discarded wl_surface#3591.enter(wl_output#1049) +[2618397.358] {Default Queue} discarded wl_surface#3591.enter(wl_output#1081) +[2618397.362] {Default Queue} discarded wl_surface#3591.enter(wl_output#1113) +[2618397.366] {Default Queue} discarded wl_surface#3591.enter(wl_output#1145) +[2618397.370] {Default Queue} discarded wl_surface#3591.enter(wl_output#1177) +[2618397.373] {Default Queue} discarded wl_surface#3591.enter(wl_output#1209) +[2618397.378] {Default Queue} discarded wl_surface#3591.enter(wl_output#1241) +[2618397.381] {Default Queue} discarded wl_surface#3591.enter(wl_output#1273) +[2618397.385] {Default Queue} discarded wl_surface#3591.enter(wl_output#1305) +[2618397.389] {Default Queue} discarded wl_surface#3591.enter(wl_output#1337) +[2618397.393] {Default Queue} discarded wl_surface#3591.enter(wl_output#1369) +[2618397.397] {Default Queue} discarded wl_surface#3591.enter(wl_output#1401) +[2618397.400] {Default Queue} discarded wl_surface#3591.enter(wl_output#1433) +[2618397.404] {Default Queue} discarded wl_surface#3591.enter(wl_output#1465) +[2618397.408] {Default Queue} discarded wl_surface#3591.enter(wl_output#1497) +[2618397.412] {Default Queue} discarded wl_surface#3591.enter(wl_output#1529) +[2618397.416] {Default Queue} discarded wl_surface#3591.enter(wl_output#1561) +[2618397.420] {Default Queue} discarded wl_surface#3591.enter(wl_output#1593) +[2618397.424] {Default Queue} discarded wl_surface#3591.enter(wl_output#1625) +[2618397.428] {Default Queue} discarded wl_surface#3591.enter(wl_output#1657) +[2618397.432] {Default Queue} discarded wl_surface#3591.enter(wl_output#1689) +[2618397.436] {Default Queue} discarded wl_surface#3591.enter(wl_output#1721) +[2618397.440] {Default Queue} discarded wl_surface#3591.enter(wl_output#1753) +[2618397.444] {Default Queue} discarded wl_surface#3591.enter(wl_output#1785) +[2618397.448] {Default Queue} discarded wl_surface#3591.enter(wl_output#1817) +[2618397.452] {Default Queue} discarded wl_surface#3591.enter(wl_output#1849) +[2618397.456] {Default Queue} discarded wl_surface#3591.enter(wl_output#1881) +[2618397.463] {Default Queue} discarded wl_surface#3591.enter(wl_output#1913) +[2618397.469] {Default Queue} discarded wl_surface#3591.enter(wl_output#1945) +[2618397.472] {Default Queue} discarded wl_surface#3591.enter(wl_output#1977) +[2618397.476] {Default Queue} discarded wl_surface#3591.enter(wl_output#2009) +[2618397.481] {Default Queue} -> wl_compositor#2988.create_surface(new id wl_surface#3623) +[2618397.485] {Default Queue} -> wl_subcompositor#3629.get_subsurface(new id wl_subsurface#3642, wl_surface#3623, wl_surface#2983) +[2618397.493] {Default Queue} -> wl_subsurface#3642.set_desync() +[2618397.497] {Default Queue} -> wl_subsurface#3642.set_position(0, 0) +[2618397.502] {Default Queue} -> wl_subsurface#3642.place_above(wl_surface#2983) +[2618397.553] {Default Queue} -> wl_shm#3631.create_pool(new id wl_shm_pool#3643, fd 574, 16) +[2618397.560] {Default Queue} -> wl_shm#3631.create_pool(new id wl_shm_pool#3644, fd 575, 16) +[2618397.564] {Default Queue} -> wl_shm_pool#3643.create_buffer(new id wl_buffer#3645, 0, 2, 2, 8, 0) +[2618397.569] {Default Queue} -> wl_shm_pool#3644.create_buffer(new id wl_buffer#3646, 0, 2, 2, 8, 0) +[2618397.576] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) +[2618397.581] {Default Queue} -> wl_surface#3623.commit() +[2618397.586] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) +[2618397.590] {Default Queue} -> wl_surface#3623.commit() +[2618397.595] {Default Queue} -> wl_compositor#3628.create_region(new id wl_region#3647) +[2618397.599] {Default Queue} -> wl_compositor#3628.create_region(new id wl_region#3648) +[2618397.603] {Default Queue} -> wl_region#3647.subtract(0, 0, 2, 2) +[2618397.608] {Default Queue} -> wl_region#3647.add(0, 0, 0, 0) +[2618397.613] {Default Queue} -> wl_surface#3623.set_opaque_region(wl_region#3648) +[2618397.617] {Default Queue} -> wl_surface#3623.set_input_region(wl_region#3647) +[2618397.622] {Default Queue} -> wl_surface#3623.damage(0, 0, 2, 2) +[2618397.626] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) +[2618397.633] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) +[2618397.637] {Default Queue} -> wl_surface#3623.commit() +[2618397.674] {Default Queue} -> wl_shm#3633.create_pool(new id wl_shm_pool#3649, fd 578, 640) +[2618397.680] {Default Queue} -> wl_shm#3633.create_pool(new id wl_shm_pool#3650, fd 579, 640) +[2618397.685] {Default Queue} -> wl_shm_pool#3649.create_buffer(new id wl_buffer#3651, 0, 10, 16, 40, 0) +[2618397.689] {Default Queue} -> wl_shm_pool#3650.create_buffer(new id wl_buffer#3652, 0, 10, 16, 40, 0) +[2618397.696] {Default Queue} -> wl_compositor#3628.create_surface(new id wl_surface#3653) +[2618397.700] {Default Queue} -> wl_surface#3653.attach(wl_buffer#3651, 0, 0) +[2618397.705] {Default Queue} -> wl_surface#3653.commit() +[2618397.710] {Default Queue} -> wl_surface#3653.attach(wl_buffer#3651, 0, 0) +[2618397.714] {Default Queue} -> wl_surface#3653.commit() +[2618397.719] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) +[2618397.726] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3654) +[2618397.731] {Default Queue} -> wl_display#1.sync(new id wl_callback#3655) +[2618399.752] {Default Queue} discarded wl_surface#3591.enter(wl_output#2041) +[2618399.761] {Default Queue} discarded wl_surface#3591.enter(wl_output#2073) +[2618399.765] {Default Queue} discarded wl_surface#3591.enter(wl_output#2105) +[2618399.769] {Default Queue} discarded wl_surface#3591.enter(wl_output#2137) +[2618399.773] {Default Queue} discarded wl_surface#3591.enter(wl_output#2169) +[2618399.777] {Default Queue} discarded wl_surface#3591.enter(wl_output#2201) +[2618399.781] {Default Queue} discarded wl_surface#3591.enter(wl_output#2233) +[2618399.785] {Default Queue} discarded wl_surface#3591.enter(wl_output#2265) +[2618399.789] {Default Queue} discarded wl_surface#3591.enter(wl_output#2297) +[2618399.793] {Default Queue} discarded wl_surface#3591.enter(wl_output#2329) +[2618399.797] {Default Queue} discarded wl_surface#3591.enter(wl_output#2361) +[2618399.801] {Default Queue} discarded wl_surface#3591.enter(wl_output#2393) +[2618399.810] {Default Queue} discarded wl_surface#3591.enter(wl_output#2425) +[2618399.816] {Default Queue} discarded wl_surface#3591.enter(wl_output#2457) +[2618399.820] {Default Queue} discarded wl_surface#3591.enter(wl_output#2489) +[2618399.824] {Default Queue} discarded wl_surface#3591.enter(wl_output#2521) +[2618399.828] {Default Queue} discarded wl_surface#3591.enter(wl_output#2553) +[2618399.832] {Default Queue} discarded wl_surface#3591.enter(wl_output#2585) +[2618399.836] {Default Queue} discarded wl_surface#3591.enter(wl_output#2617) +[2618399.841] {Default Queue} discarded wl_surface#3591.enter(wl_output#2649) +[2618399.845] {Default Queue} discarded wl_surface#3591.enter(wl_output#2681) +[2618399.849] {Default Queue} discarded wl_surface#3591.enter(wl_output#2713) +[2618399.853] {Default Queue} discarded wl_surface#3591.enter(wl_output#2745) +[2618399.856] {Default Queue} discarded wl_surface#3591.enter(wl_output#2777) +[2618399.868] {Default Queue} discarded wl_surface#3591.enter(wl_output#2809) +[2618399.872] {Default Queue} discarded wl_surface#3591.enter(wl_output#2841) +[2618399.876] {Default Queue} discarded wl_surface#3591.enter(wl_output#2873) +[2618399.881] {Default Queue} discarded wl_surface#3591.enter(wl_output#2905) +[2618399.885] {Default Queue} discarded wl_surface#3591.enter(wl_output#2937) +[2618399.888] {Default Queue} discarded wl_surface#3591.enter(wl_output#2969) +[2618399.893] {Default Queue} discarded wl_surface#3591.enter(wl_output#3001) +[2618399.897] {Default Queue} discarded wl_surface#3591.enter(wl_output#3033) +[2618399.900] {Default Queue} discarded wl_surface#3591.enter(wl_output#3065) +[2618399.904] {Default Queue} discarded wl_surface#3591.enter(wl_output#3097) +[2618399.908] {Default Queue} discarded wl_surface#3591.enter(wl_output#3129) +[2618399.912] {Default Queue} discarded wl_surface#3591.enter(wl_output#3161) +[2618399.916] {Default Queue} discarded wl_surface#3591.enter(wl_output#3193) +[2618399.920] {Default Queue} discarded wl_surface#3591.enter(wl_output#3225) +[2618399.924] {Default Queue} discarded wl_surface#3591.enter(wl_output#3257) +[2618399.928] {Default Queue} discarded wl_surface#3591.enter(wl_output#3289) +[2618399.932] {Default Queue} discarded wl_surface#3591.enter(wl_output#3321) +[2618399.936] {Default Queue} discarded wl_surface#3591.enter(wl_output#3353) +[2618399.940] {Default Queue} discarded wl_surface#3591.enter(wl_output#3385) +[2618399.943] {Default Queue} discarded wl_surface#3591.enter(wl_output#3417) +[2618399.947] {Default Queue} discarded wl_surface#3591.enter(wl_output#3449) +[2618399.952] {Default Queue} discarded wl_surface#3591.enter(wl_output#3481) +[2618399.956] {Default Queue} discarded wl_surface#3591.enter(wl_output#3513) +[2618399.960] {Default Queue} discarded wl_surface#3591.enter(wl_output#3545) +[2618399.963] {Default Queue} discarded wl_surface#3591.enter(wl_output#3577) +[2618399.967] {Default Queue} discarded wl_surface#3591.enter(wl_output#3609) +[2618400.021] {Display Queue} wl_display#1.delete_id(3655) +[2618400.028] {Default Queue} wl_keyboard#3624.keymap(1, fd 574, 68213) +[2618400.032] {Default Queue} wl_keyboard#3624.enter(566, wl_surface#19, array[0]) +[2618400.037] {Default Queue} wl_keyboard#3624.modifiers(566, 0, 0, 16, 0) +[2618400.042] {Default Queue} discarded wl_shm#3631.format(875709016) +[2618400.046] {Default Queue} discarded wl_shm#3631.format(1) +[2618400.050] {Default Queue} discarded wl_shm#3631.format(0) +[2618400.055] {Default Queue} discarded wl_shm#3631.format(875708993) +[2618400.058] {Default Queue} discarded wl_shm#3632.format(875709016) +[2618400.062] {Default Queue} discarded wl_shm#3632.format(1) +[2618400.066] {Default Queue} discarded wl_shm#3632.format(0) +[2618400.070] {Default Queue} discarded wl_shm#3632.format(875708993) +[2618400.074] {Default Queue} discarded wl_shm#3633.format(875709016) +[2618400.078] {Default Queue} discarded wl_shm#3633.format(1) +[2618400.082] {Default Queue} discarded wl_shm#3633.format(0) +[2618400.085] {Default Queue} discarded wl_shm#3633.format(875708993) +[2618400.093] {Default Queue} wl_seat#3640.capabilities(7) +[2618400.099] {Default Queue} -> wl_seat#3640.get_keyboard(new id wl_keyboard#3656) +[2618400.104] {Default Queue} -> wl_seat#3640.get_pointer(new id wl_pointer#3657) +[2618400.108] {Default Queue} -> wl_data_device_manager#3636.get_data_device(new id wl_data_device#3658, wl_seat#3640) +[2618400.113] {Default Queue} -> zwp_primary_selection_device_manager_v1#3638.get_device(new id zwp_primary_selection_device_v1#3659, wl_seat#3640) +[2618400.121] {Default Queue} wl_output#3641.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618400.126] {Default Queue} wl_output#3641.mode(3, 1280, 800, 60000) +[2618400.131] {Default Queue} discarded wl_surface#2727.enter(wl_output#3641) +[2618400.135] {Default Queue} discarded wl_surface#3.enter(wl_output#3641) +[2618400.139] {Default Queue} discarded wl_surface#999.enter(wl_output#3641) +[2618400.143] {Default Queue} discarded wl_surface#3079.enter(wl_output#3641) +[2618400.147] {Default Queue} discarded wl_surface#1191.enter(wl_output#3641) +[2618400.152] {Default Queue} discarded wl_surface#1159.enter(wl_output#3641) +[2618400.156] {Default Queue} discarded wl_surface#1703.enter(wl_output#3641) +[2618400.160] {Default Queue} discarded wl_surface#2215.enter(wl_output#3641) +[2618400.164] {Default Queue} discarded wl_surface#423.enter(wl_output#3641) +[2618400.168] {Default Queue} discarded wl_surface#1447.enter(wl_output#3641) +[2618400.172] {Default Queue} discarded wl_surface#3527.enter(wl_output#3641) +[2618400.175] {Default Queue} discarded wl_surface#3047.enter(wl_output#3641) +[2618400.179] {Default Queue} discarded wl_surface#2023.enter(wl_output#3641) +[2618400.183] {Default Queue} discarded wl_surface#1639.enter(wl_output#3641) +[2618400.187] {Default Queue} discarded wl_surface#1319.enter(wl_output#3641) +[2618400.191] {Default Queue} discarded wl_surface#1127.enter(wl_output#3641) +[2618400.195] {Default Queue} discarded wl_surface#2151.enter(wl_output#3641) +[2618400.199] {Default Queue} discarded wl_surface#2375.enter(wl_output#3641) +[2618400.202] {Default Queue} discarded wl_surface#2695.enter(wl_output#3641) +[2618400.206] {Default Queue} discarded wl_surface#2919.enter(wl_output#3641) +[2618400.211] {Default Queue} discarded wl_surface#1063.enter(wl_output#3641) +[2618400.215] {Default Queue} discarded wl_surface#455.enter(wl_output#3641) +[2618400.218] {Default Queue} discarded wl_surface#1575.enter(wl_output#3641) +[2618400.222] {Default Queue} discarded wl_surface#1799.enter(wl_output#3641) +[2618400.226] {Default Queue} discarded wl_surface#1415.enter(wl_output#3641) +[2618400.230] {Default Queue} discarded wl_surface#2439.enter(wl_output#3641) +[2618400.234] {Default Queue} discarded wl_surface#2279.enter(wl_output#3641) +[2618400.238] {Default Queue} discarded wl_surface#3591.enter(wl_output#3641) +[2618400.242] {Default Queue} discarded wl_surface#1831.enter(wl_output#3641) +[2618400.246] {Default Queue} discarded wl_surface#903.enter(wl_output#3641) +[2618400.249] {Default Queue} discarded wl_surface#2663.enter(wl_output#3641) +[2618400.253] {Default Queue} discarded wl_surface#775.enter(wl_output#3641) +[2618400.257] {Default Queue} discarded wl_surface#1991.enter(wl_output#3641) +[2618400.261] {Default Queue} discarded wl_surface#1543.enter(wl_output#3641) +[2618400.265] {Default Queue} discarded wl_surface#135.enter(wl_output#3641) +[2618400.269] {Default Queue} discarded wl_surface#1287.enter(wl_output#3641) +[2618400.273] {Default Queue} discarded wl_surface#3399.enter(wl_output#3641) +[2618400.277] {Default Queue} discarded wl_surface#1031.enter(wl_output#3641) +[2618400.280] {Default Queue} discarded wl_surface#615.enter(wl_output#3641) +[2618400.284] {Default Queue} discarded wl_surface#3111.enter(wl_output#3641) +[2618400.288] {Default Queue} discarded wl_surface#231.enter(wl_output#3641) +[2618400.292] {Default Queue} discarded wl_surface#2343.enter(wl_output#3641) +[2618400.296] {Default Queue} discarded wl_surface#1863.enter(wl_output#3641) +[2618400.301] {Default Queue} discarded wl_surface#359.enter(wl_output#3641) +[2618400.308] {Default Queue} discarded wl_surface#2983.enter(wl_output#3641) +[2618400.314] {Default Queue} discarded wl_surface#583.enter(wl_output#3641) +[2618400.318] {Default Queue} discarded wl_surface#743.enter(wl_output#3641) +[2618400.322] {Default Queue} discarded wl_surface#3143.enter(wl_output#3641) +[2618400.326] {Default Queue} discarded wl_surface#2535.enter(wl_output#3641) +[2618400.330] {Default Queue} discarded wl_surface#3367.enter(wl_output#3641) +[2618400.334] {Default Queue} discarded wl_surface#967.enter(wl_output#3641) +[2618400.338] {Default Queue} discarded wl_surface#103.enter(wl_output#3641) +[2618400.342] {Default Queue} discarded wl_surface#3271.enter(wl_output#3641) +[2618400.346] {Default Queue} discarded wl_surface#327.enter(wl_output#3641) +[2618400.350] {Default Queue} discarded wl_surface#43.enter(wl_output#3641) +[2618400.354] {Default Queue} discarded wl_surface#2247.enter(wl_output#3641) +[2618400.357] {Default Queue} discarded wl_surface#807.enter(wl_output#3641) +[2618400.361] {Default Queue} discarded wl_surface#19.enter(wl_output#3641) +[2618400.365] {Default Queue} discarded wl_surface#2951.enter(wl_output#3641) +[2618400.369] {Default Queue} discarded wl_surface#1511.enter(wl_output#3641) +[2618400.373] {Default Queue} discarded wl_surface#199.enter(wl_output#3641) +[2618400.377] {Default Queue} discarded wl_surface#3463.enter(wl_output#3641) +[2618400.381] {Default Queue} discarded wl_surface#3559.enter(wl_output#3641) +[2618400.386] {Default Queue} discarded wl_surface#3495.enter(wl_output#3641) +[2618400.390] {Default Queue} discarded wl_surface#391.enter(wl_output#3641) +[2618400.394] {Default Queue} discarded wl_surface#935.enter(wl_output#3641) +[2618400.397] {Default Queue} discarded wl_surface#2823.enter(wl_output#3641) +[2618400.401] {Default Queue} discarded wl_surface#3015.enter(wl_output#3641) +[2618400.405] {Default Queue} discarded wl_surface#1671.enter(wl_output#3641) +[2618400.409] {Default Queue} discarded wl_surface#1351.enter(wl_output#3641) +[2618400.413] {Default Queue} discarded wl_surface#711.enter(wl_output#3641) +[2618400.417] {Default Queue} discarded wl_surface#3175.enter(wl_output#3641) +[2618400.421] {Default Queue} discarded wl_surface#3431.enter(wl_output#3641) +[2618400.425] {Default Queue} discarded wl_surface#1223.enter(wl_output#3641) +[2618400.429] {Default Queue} discarded wl_surface#1927.enter(wl_output#3641) +[2618400.433] {Default Queue} discarded wl_surface#871.enter(wl_output#3641) +[2618400.436] {Default Queue} discarded wl_surface#1895.enter(wl_output#3641) +[2618400.440] {Default Queue} discarded wl_surface#263.enter(wl_output#3641) +[2618400.444] {Default Queue} discarded wl_surface#551.enter(wl_output#3641) +[2618400.448] {Default Queue} discarded wl_surface#1735.enter(wl_output#3641) +[2618400.452] {Default Queue} discarded wl_surface#1479.enter(wl_output#3641) +[2618400.456] {Default Queue} discarded wl_surface#1772.enter(wl_output#3641) +[2618400.460] {Default Queue} discarded wl_surface#2599.enter(wl_output#3641) +[2618400.464] {Default Queue} discarded wl_surface#2631.enter(wl_output#3641) +[2618400.468] {Default Queue} discarded wl_surface#1959.enter(wl_output#3641) +[2618400.472] {Default Queue} discarded wl_surface#647.enter(wl_output#3641) +[2618400.476] {Default Queue} discarded wl_surface#2055.enter(wl_output#3641) +[2618400.480] {Default Queue} discarded wl_surface#2508.enter(wl_output#3641) +[2618400.484] {Default Queue} discarded wl_surface#71.enter(wl_output#3641) +[2618400.488] {Default Queue} discarded wl_surface#2759.enter(wl_output#3641) +[2618400.492] {Default Queue} discarded wl_surface#2791.enter(wl_output#3641) +[2618400.496] {Default Queue} discarded wl_surface#2887.enter(wl_output#3641) +[2618400.500] {Default Queue} discarded wl_surface#2183.enter(wl_output#3641) +[2618400.504] {Default Queue} discarded wl_surface#2567.enter(wl_output#3641) +[2618400.508] {Default Queue} discarded wl_surface#839.enter(wl_output#3641) +[2618400.512] {Default Queue} discarded wl_surface#1607.enter(wl_output#3641) +[2618400.516] {Default Queue} discarded wl_surface#1095.enter(wl_output#3641) +[2618400.523] {Default Queue} discarded wl_surface#1383.enter(wl_output#3641) +[2618400.528] {Default Queue} discarded wl_surface#487.enter(wl_output#3641) +[2618400.533] {Default Queue} discarded wl_surface#2311.enter(wl_output#3641) +[2618400.537] {Default Queue} discarded wl_surface#519.enter(wl_output#3641) +[2618400.541] {Default Queue} discarded wl_surface#3335.enter(wl_output#3641) +[2618400.545] {Default Queue} discarded wl_surface#3239.enter(wl_output#3641) +[2618400.549] {Default Queue} discarded wl_surface#2087.enter(wl_output#3641) +[2618400.553] {Default Queue} discarded wl_surface#2471.enter(wl_output#3641) +[2618400.557] {Default Queue} discarded wl_surface#295.enter(wl_output#3641) +[2618400.561] {Default Queue} discarded wl_surface#167.enter(wl_output#3641) +[2618400.565] {Default Queue} discarded wl_surface#1255.enter(wl_output#3641) +[2618400.569] {Default Queue} discarded wl_surface#2855.enter(wl_output#3641) +[2618400.573] {Default Queue} discarded wl_surface#3303.enter(wl_output#3641) +[2618400.577] {Default Queue} discarded wl_surface#679.enter(wl_output#3641) +[2618400.580] {Default Queue} discarded wl_surface#2407.enter(wl_output#3641) +[2618400.584] {Default Queue} discarded wl_surface#3207.enter(wl_output#3641) +[2618400.589] {Default Queue} discarded wl_surface#2119.enter(wl_output#3641) +[2618400.593] {Default Queue} wl_registry#3654.global(1, "wl_compositor", 6) +[2618400.598] {Default Queue} -> wl_registry#3654.bind(1, "wl_compositor", 1, new id [unknown]#3660) +[2618400.603] {Default Queue} wl_registry#3654.global(2, "wl_subcompositor", 1) +[2618400.607] {Default Queue} -> wl_registry#3654.bind(2, "wl_subcompositor", 1, new id [unknown]#3661) +[2618400.612] {Default Queue} wl_registry#3654.global(3, "xdg_wm_base", 6) +[2618400.616] {Default Queue} -> wl_registry#3654.bind(3, "xdg_wm_base", 1, new id [unknown]#3662) +[2618400.621] {Default Queue} wl_registry#3654.global(6, "zwlr_layer_shell_v1", 5) +[2618400.625] {Default Queue} wl_registry#3654.global(7, "ext_session_lock_manager_v1", 1) +[2618400.630] {Default Queue} wl_registry#3654.global(8, "wl_shm", 2) +[2618400.634] {Default Queue} -> wl_registry#3654.bind(8, "wl_shm", 1, new id [unknown]#3663) +[2618400.639] {Default Queue} -> wl_registry#3654.bind(8, "wl_shm", 1, new id [unknown]#3664) +[2618400.643] {Default Queue} -> wl_registry#3654.bind(8, "wl_shm", 1, new id [unknown]#3665) +[2618400.648] {Default Queue} wl_registry#3654.global(9, "zxdg_output_manager_v1", 3) +[2618400.653] {Default Queue} wl_registry#3654.global(10, "wp_fractional_scale_manager_v1", 1) +[2618400.658] {Default Queue} wl_registry#3654.global(11, "zwp_tablet_manager_v2", 1) +[2618400.662] {Default Queue} wl_registry#3654.global(12, "zwp_pointer_gestures_v1", 3) +[2618400.666] {Default Queue} wl_registry#3654.global(13, "zwp_relative_pointer_manager_v1", 1) +[2618400.671] {Default Queue} -> wl_registry#3654.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3666) +[2618400.675] {Default Queue} wl_registry#3654.global(14, "zwp_pointer_constraints_v1", 1) +[2618400.681] {Default Queue} -> wl_registry#3654.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3667) +[2618400.686] {Default Queue} wl_registry#3654.global(15, "ext_idle_notifier_v1", 2) +[2618400.690] {Default Queue} wl_registry#3654.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2618400.695] {Default Queue} wl_registry#3654.global(17, "wl_data_device_manager", 3) +[2618400.700] {Default Queue} -> wl_registry#3654.bind(17, "wl_data_device_manager", 2, new id [unknown]#3668) +[2618400.704] {Default Queue} -> wl_data_device_manager#3668.create_data_source(new id wl_data_source#3669) +[2618400.708] {Default Queue} -> wl_data_source#3669.offer("text/plain") +[2618400.713] {Default Queue} -> wl_data_source#3669.offer("text/plain;charset=utf-8") +[2618400.717] {Default Queue} -> wl_data_source#3669.offer("TEXT") +[2618400.721] {Default Queue} -> wl_data_source#3669.offer("STRING") +[2618400.725] {Default Queue} -> wl_data_source#3669.offer("UTF8_STRING") +[2618400.729] {Default Queue} wl_registry#3654.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2618400.737] {Default Queue} -> wl_registry#3654.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3670) +[2618400.746] {Default Queue} -> zwp_primary_selection_device_manager_v1#3670.create_source(new id zwp_primary_selection_source_v1#3671) +[2618400.754] {Default Queue} -> zwp_primary_selection_source_v1#3671.offer("text/plain") +[2618400.758] {Default Queue} -> zwp_primary_selection_source_v1#3671.offer("text/plain;charset=utf-8") +[2618400.762] {Default Queue} -> zwp_primary_selection_source_v1#3671.offer("TEXT") +[2618400.766] {Default Queue} -> zwp_primary_selection_source_v1#3671.offer("STRING") +[2618400.770] {Default Queue} -> zwp_primary_selection_source_v1#3671.offer("UTF8_STRING") +[2618400.775] {Default Queue} wl_registry#3654.global(19, "zwlr_data_control_manager_v1", 2) +[2618400.780] {Default Queue} wl_registry#3654.global(20, "ext_data_control_manager_v1", 1) +[2618400.784] {Default Queue} wl_registry#3654.global(21, "wp_presentation", 2) +[2618400.789] {Default Queue} wl_registry#3654.global(22, "wp_security_context_manager_v1", 1) +[2618400.793] {Default Queue} wl_registry#3654.global(23, "zwp_text_input_manager_v3", 1) +[2618400.798] {Default Queue} wl_registry#3654.global(24, "zwp_input_method_manager_v2", 1) +[2618400.803] {Default Queue} wl_registry#3654.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2618400.810] {Default Queue} wl_registry#3654.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2618400.817] {Default Queue} wl_registry#3654.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2618400.824] {Default Queue} wl_registry#3654.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2618400.830] {Default Queue} wl_registry#3654.global(29, "ext_workspace_manager_v1", 1) +[2618400.837] {Default Queue} wl_registry#3654.global(30, "zwlr_output_manager_v1", 4) +[2618400.844] {Default Queue} wl_registry#3654.global(31, "zwlr_screencopy_manager_v1", 3) +[2618400.850] {Default Queue} wl_registry#3654.global(32, "wp_viewporter", 1) +[2618400.856] {Default Queue} wl_registry#3654.global(33, "zxdg_exporter_v2", 1) +[2618400.869] {Default Queue} wl_registry#3654.global(34, "zxdg_importer_v2", 1) +[2618400.873] {Default Queue} wl_registry#3654.global(36, "xdg_activation_v1", 1) +[2618400.877] {Default Queue} wl_registry#3654.global(37, "mutter_x11_interop", 1) +[2618400.916] {Default Queue} wl_registry#3654.global(38, "wl_seat", 9) +[2618400.930] {Default Queue} -> wl_registry#3654.bind(38, "wl_seat", 1, new id [unknown]#3672) +[2618400.938] {Default Queue} wl_registry#3654.global(39, "wp_cursor_shape_manager_v1", 2) +[2618400.945] {Default Queue} wl_registry#3654.global(40, "wl_output", 4) +[2618400.951] {Default Queue} -> wl_registry#3654.bind(40, "wl_output", 1, new id [unknown]#3673) +[2618400.957] {Default Queue} wl_callback#3655.done(0) +[2618400.962] {Default Queue} discarded wl_surface#3623.enter(wl_output#18) +[2618400.968] {Default Queue} discarded wl_surface#3623.enter(wl_output#57) +[2618400.973] {Default Queue} discarded wl_surface#3623.enter(wl_output#89) +[2618400.978] {Default Queue} discarded wl_surface#3623.enter(wl_output#121) +[2618400.983] {Default Queue} discarded wl_surface#3623.enter(wl_output#153) +[2618400.988] {Default Queue} discarded wl_surface#3623.enter(wl_output#185) +[2618400.993] {Default Queue} discarded wl_surface#3623.enter(wl_output#217) +[2618400.998] {Default Queue} discarded wl_surface#3623.enter(wl_output#249) +[2618401.003] {Default Queue} discarded wl_surface#3623.enter(wl_output#281) +[2618401.008] {Default Queue} discarded wl_surface#3623.enter(wl_output#313) +[2618401.013] {Default Queue} discarded wl_surface#3623.enter(wl_output#345) +[2618401.017] {Default Queue} discarded wl_surface#3623.enter(wl_output#377) +[2618401.022] {Default Queue} discarded wl_surface#3623.enter(wl_output#409) +[2618401.027] {Default Queue} discarded wl_surface#3623.enter(wl_output#441) +[2618401.032] {Default Queue} discarded wl_surface#3623.enter(wl_output#473) +[2618401.037] {Default Queue} discarded wl_surface#3623.enter(wl_output#505) +[2618401.049] {Default Queue} discarded wl_surface#3623.enter(wl_output#537) +[2618401.058] {Default Queue} discarded wl_surface#3623.enter(wl_output#569) +[2618401.063] {Default Queue} discarded wl_surface#3623.enter(wl_output#601) +[2618401.068] {Default Queue} discarded wl_surface#3623.enter(wl_output#633) +[2618401.073] {Default Queue} discarded wl_surface#3623.enter(wl_output#665) +[2618401.078] {Default Queue} discarded wl_surface#3623.enter(wl_output#697) +[2618401.083] {Default Queue} discarded wl_surface#3623.enter(wl_output#729) +[2618401.088] {Default Queue} discarded wl_surface#3623.enter(wl_output#761) +[2618401.092] {Default Queue} discarded wl_surface#3623.enter(wl_output#793) +[2618401.097] {Default Queue} discarded wl_surface#3623.enter(wl_output#825) +[2618401.102] {Default Queue} discarded wl_surface#3623.enter(wl_output#857) +[2618401.107] {Default Queue} discarded wl_surface#3623.enter(wl_output#889) +[2618401.112] {Default Queue} discarded wl_surface#3623.enter(wl_output#921) +[2618401.117] {Default Queue} discarded wl_surface#3623.enter(wl_output#953) +[2618401.122] {Default Queue} discarded wl_surface#3623.enter(wl_output#985) +[2618401.127] {Default Queue} discarded wl_surface#3623.enter(wl_output#1017) +[2618401.132] {Default Queue} discarded wl_surface#3623.enter(wl_output#1049) +[2618401.137] {Default Queue} discarded wl_surface#3623.enter(wl_output#1081) +[2618401.142] {Default Queue} discarded wl_surface#3623.enter(wl_output#1113) +[2618401.147] {Default Queue} discarded wl_surface#3623.enter(wl_output#1145) +[2618401.152] {Default Queue} discarded wl_surface#3623.enter(wl_output#1177) +[2618401.156] {Default Queue} discarded wl_surface#3623.enter(wl_output#1209) +[2618401.161] {Default Queue} discarded wl_surface#3623.enter(wl_output#1241) +[2618401.166] {Default Queue} discarded wl_surface#3623.enter(wl_output#1273) +[2618401.171] {Default Queue} discarded wl_surface#3623.enter(wl_output#1305) +[2618401.176] {Default Queue} discarded wl_surface#3623.enter(wl_output#1337) +[2618401.181] {Default Queue} discarded wl_surface#3623.enter(wl_output#1369) +[2618401.185] {Default Queue} discarded wl_surface#3623.enter(wl_output#1401) +[2618401.190] {Default Queue} discarded wl_surface#3623.enter(wl_output#1433) +[2618401.195] {Default Queue} discarded wl_surface#3623.enter(wl_output#1465) +[2618401.200] {Default Queue} discarded wl_surface#3623.enter(wl_output#1497) +[2618401.205] {Default Queue} discarded wl_surface#3623.enter(wl_output#1529) +[2618401.210] {Default Queue} discarded wl_surface#3623.enter(wl_output#1561) +[2618401.214] {Default Queue} discarded wl_surface#3623.enter(wl_output#1593) +[2618401.219] {Default Queue} discarded wl_surface#3623.enter(wl_output#1625) +[2618401.224] {Default Queue} discarded wl_surface#3623.enter(wl_output#1657) +[2618401.229] {Default Queue} discarded wl_surface#3623.enter(wl_output#1689) +[2618401.234] {Default Queue} discarded wl_surface#3623.enter(wl_output#1721) +[2618401.238] {Default Queue} discarded wl_surface#3623.enter(wl_output#1753) +[2618401.244] {Default Queue} discarded wl_surface#3623.enter(wl_output#1785) +[2618401.248] {Default Queue} discarded wl_surface#3623.enter(wl_output#1817) +[2618401.253] {Default Queue} discarded wl_surface#3623.enter(wl_output#1849) +[2618401.258] {Default Queue} discarded wl_surface#3623.enter(wl_output#1881) +[2618401.263] {Default Queue} discarded wl_surface#3623.enter(wl_output#1913) +[2618401.268] {Default Queue} discarded wl_surface#3623.enter(wl_output#1945) +[2618401.273] {Default Queue} discarded wl_surface#3623.enter(wl_output#1977) +[2618401.278] {Default Queue} -> wl_compositor#28.create_surface(new id wl_surface#3655) +[2618401.285] {Default Queue} -> wl_subcompositor#3661.get_subsurface(new id wl_subsurface#3674, wl_surface#3655, wl_surface#71) +[2618401.295] {Default Queue} -> wl_subsurface#3674.set_desync() +[2618401.301] {Default Queue} -> wl_subsurface#3674.set_position(0, 0) +[2618401.307] {Default Queue} -> wl_subsurface#3674.place_above(wl_surface#71) +[2618401.365] {Default Queue} -> wl_shm#3663.create_pool(new id wl_shm_pool#3675, fd 579, 16) +[2618401.380] {Default Queue} -> wl_shm#3663.create_pool(new id wl_shm_pool#3676, fd 580, 16) +[2618401.393] {Default Queue} -> wl_shm_pool#3675.create_buffer(new id wl_buffer#3677, 0, 2, 2, 8, 0) +[2618401.402] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 2, 2, 8, 0) +[2618401.415] {Default Queue} -> wl_surface#3655.attach(wl_buffer#3677, 0, 0) +[2618401.421] {Default Queue} -> wl_surface#3655.commit() +[2618401.428] {Default Queue} -> wl_surface#3655.attach(wl_buffer#3677, 0, 0) +[2618401.433] {Default Queue} -> wl_surface#3655.commit() +[2618401.439] {Default Queue} -> wl_compositor#3660.create_region(new id wl_region#3679) +[2618401.444] {Default Queue} -> wl_compositor#3660.create_region(new id wl_region#3680) +[2618401.449] {Default Queue} -> wl_region#3679.subtract(0, 0, 2, 2) +[2618401.455] {Default Queue} -> wl_region#3679.add(0, 0, 0, 0) +[2618401.460] {Default Queue} -> wl_surface#3655.set_opaque_region(wl_region#3680) +[2618401.466] {Default Queue} -> wl_surface#3655.set_input_region(wl_region#3679) +[2618401.471] {Default Queue} -> wl_surface#3655.damage(0, 0, 2, 2) +[2618401.476] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) +[2618401.485] {Default Queue} -> wl_surface#3655.attach(wl_buffer#3677, 0, 0) +[2618401.489] {Default Queue} -> wl_surface#3655.commit() +[2618401.527] {Default Queue} -> wl_shm#3665.create_pool(new id wl_shm_pool#3681, fd 583, 640) +[2618401.533] {Default Queue} -> wl_shm#3665.create_pool(new id wl_shm_pool#3682, fd 584, 640) +[2618401.538] {Default Queue} -> wl_shm_pool#3681.create_buffer(new id wl_buffer#3683, 0, 10, 16, 40, 0) +[2618401.543] {Default Queue} -> wl_shm_pool#3682.create_buffer(new id wl_buffer#3684, 0, 10, 16, 40, 0) +[2618401.550] {Default Queue} -> wl_compositor#3660.create_surface(new id wl_surface#3685) +[2618401.554] {Default Queue} -> wl_surface#3685.attach(wl_buffer#3683, 0, 0) +[2618401.558] {Default Queue} -> wl_surface#3685.commit() +[2618401.563] {Default Queue} -> wl_surface#3685.attach(wl_buffer#3683, 0, 0) +[2618401.568] {Default Queue} -> wl_surface#3685.commit() +[2618401.573] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) +[2618401.580] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) +[2618401.587] {Default Queue} -> wl_region#95.subtract(0, 0, 2, 2) +[2618401.591] {Default Queue} -> wl_subsurface#90.set_position(20, 49) +[2618401.596] {Default Queue} -> wl_region#95.subtract(0, 0, 22, 51) +[2618401.601] {Default Queue} -> wl_region#95.add(0, 0, 0, 0) +[2618401.605] {Default Queue} -> wl_surface#71.set_opaque_region(wl_region#96) +[2618401.609] {Default Queue} -> wl_surface#71.set_input_region(wl_region#95) +[2618401.614] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618401.620] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618401.624] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) +[2618401.629] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) +[2618401.633] {Default Queue} -> wl_surface#135.damage(0, 0, 2, 2) +[2618401.637] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) +[2618401.643] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618401.649] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618401.653] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618401.658] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618401.663] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618401.667] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618401.672] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2618401.677] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618401.681] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618401.685] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618401.690] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618401.695] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618401.699] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2618401.703] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2618401.707] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) +[2618401.716] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) +[2618401.722] {Default Queue} -> wl_surface#327.damage(0, 0, 2, 2) +[2618401.726] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) +[2618401.732] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618401.738] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) +[2618401.742] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) +[2618401.747] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) +[2618401.751] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) +[2618401.755] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) +[2618401.760] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2618401.765] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618401.770] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618401.774] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618401.778] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618401.783] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618401.787] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618401.791] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2618401.795] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) +[2618401.800] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) +[2618401.805] {Default Queue} -> wl_surface#903.damage(0, 0, 2, 2) +[2618401.810] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618401.816] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618401.820] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) +[2618401.824] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) +[2618401.828] {Default Queue} -> wl_surface#1447.damage(0, 0, 2, 2) +[2618401.834] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618401.839] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) +[2618401.844] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) +[2618401.848] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) +[2618401.852] {Default Queue} -> wl_surface#1607.damage(0, 0, 2, 2) +[2618401.858] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618401.872] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618401.876] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) +[2618401.881] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) +[2618401.885] {Default Queue} -> wl_surface#1772.damage(0, 0, 2, 2) +[2618401.890] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618401.895] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618401.900] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) +[2618401.904] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) +[2618401.908] {Default Queue} -> wl_surface#1927.damage(0, 0, 2, 2) +[2618401.912] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) +[2618401.918] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618401.923] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618401.928] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618401.933] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618401.937] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) +[2618401.941] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) +[2618401.945] {Default Queue} -> wl_surface#2119.damage(0, 0, 2, 2) +[2618401.950] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618401.955] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) +[2618401.960] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) +[2618401.964] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) +[2618401.969] {Default Queue} -> wl_surface#2343.damage(0, 0, 2, 2) +[2618401.974] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618401.978] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) +[2618401.983] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) +[2618401.987] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) +[2618401.992] {Default Queue} -> wl_surface#2508.damage(0, 0, 2, 2) +[2618401.997] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618402.001] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) +[2618402.009] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) +[2618402.015] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) +[2618402.019] {Default Queue} -> wl_surface#2663.damage(0, 0, 2, 2) +[2618402.024] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618402.029] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) +[2618402.033] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) +[2618402.037] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) +[2618402.041] {Default Queue} -> wl_surface#2823.damage(0, 0, 2, 2) +[2618402.046] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) +[2618402.051] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618402.056] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618402.060] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618402.065] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) +[2618402.069] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) +[2618402.073] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) +[2618402.078] {Default Queue} -> wl_surface#3015.damage(0, 0, 2, 2) +[2618402.082] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618402.087] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2618402.091] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2618402.096] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618402.100] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) +[2618402.104] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) +[2618402.108] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) +[2618402.113] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) +[2618402.117] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) +[2618402.129] {Default Queue} -> wl_surface#3239.damage(0, 0, 2, 2) +[2618402.133] {Default Queue} -> wl_surface#3559.damage(0, 0, 2, 2) +[2618402.138] {Default Queue} -> wl_surface#3591.damage(0, 0, 2, 2) +[2618402.142] {Default Queue} -> wl_surface#3623.damage(0, 0, 2, 2) +[2618402.146] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) +[2618402.151] {Default Queue} -> wl_surface#3655.damage(0, 0, 2, 2) +[2618402.155] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) +[2618402.162] {Default Queue} -> wl_region#95.subtract(0, 0, 22, 51) +[2618402.167] {Default Queue} -> wl_region#95.add(0, 0, 2, 2) +[2618402.171] {Default Queue} -> wl_surface#71.set_opaque_region(wl_region#96) +[2618402.175] {Default Queue} -> wl_surface#71.set_input_region(wl_region#95) +[2618402.183] {Default Queue} -> wl_surface#71.attach(wl_buffer#93, 0, 0) +[2618402.187] {Default Queue} -> wl_surface#71.commit() +[2618402.196] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618402.201] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618402.206] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618402.211] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618402.215] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618402.219] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618402.234] {Default Queue} -> wl_buffer#61.destroy() +[2618402.239] {Default Queue} -> wl_buffer#62.destroy() +[2618402.244] {Default Queue} -> wl_shm_pool#59.destroy() +[2618402.248] {Default Queue} -> wl_shm_pool#60.destroy() +[2618402.337] {Default Queue} -> wl_shm#47.create_pool(new id wl_shm_pool#3686, fd 579, 71456) +[2618402.344] {Default Queue} -> wl_shm#47.create_pool(new id wl_shm_pool#3687, fd 580, 71456) +[2618402.349] {Default Queue} -> wl_shm_pool#3686.create_buffer(new id wl_buffer#3688, 0, 616, 29, 2464, 0) +[2618402.354] {Default Queue} -> wl_shm_pool#3687.create_buffer(new id wl_buffer#3689, 0, 616, 29, 2464, 0) +[2618402.376] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2618402.381] {Default Queue} -> wl_surface#43.commit() +[2618402.404] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2618402.409] {Default Queue} -> wl_surface#43.commit() +[2618402.419] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618402.428] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618402.434] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618402.439] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618402.446] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618402.451] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618402.455] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618402.459] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618402.471] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618402.476] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618402.481] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618402.485] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618402.491] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618402.495] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618402.500] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618402.504] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618402.510] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618402.514] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618402.518] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618402.522] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618402.539] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618402.544] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618402.549] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618402.557] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618402.591] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618402.596] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618402.661] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618402.666] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618402.672] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618402.676] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618402.683] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618402.687] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618402.734] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618402.739] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618402.744] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618402.748] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618402.754] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618402.758] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618402.805] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618402.810] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618402.814] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618402.819] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618402.824] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618402.829] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618402.912] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618402.918] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618402.922] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618402.926] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618402.933] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618402.937] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618402.979] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618402.986] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618402.990] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618402.994] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618403.000] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618403.005] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618403.011] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2618403.019] {Default Queue} -> wl_surface#43.commit() +[2618403.031] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2618403.037] {Default Queue} -> wl_surface#43.commit() +[2618403.045] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2618403.050] {Default Queue} -> wl_surface#43.commit() +[2618404.127] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2618404.142] {Default Queue} -> wl_surface#43.commit() +[2618404.155] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618404.160] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618404.166] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618404.172] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618404.183] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618404.189] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618404.195] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618404.200] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618404.208] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618404.212] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618404.216] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618404.220] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618404.227] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618404.231] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618404.236] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618404.240] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618404.245] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618404.250] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618404.254] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618404.258] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618404.290] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618404.295] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618404.299] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618404.304] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618404.320] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618404.325] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618404.372] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618404.378] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618404.382] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618404.386] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618404.393] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618404.397] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618404.442] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618404.454] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618404.458] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618404.462] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618404.469] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618404.473] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618404.633] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618404.654] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618404.662] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618404.668] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618404.691] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618404.698] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618404.851] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618404.872] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618404.880] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618404.886] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618404.899] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618404.906] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618404.970] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618404.982] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618404.988] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618404.994] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618405.002] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618405.008] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618405.026] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2618405.039] {Default Queue} -> wl_surface#43.commit() +[2618405.054] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2618405.064] {Default Queue} -> wl_surface#43.commit() +[2618405.080] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2618405.089] {Default Queue} -> wl_surface#43.commit() +[2618405.102] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) +[2618405.110] {Default Queue} -> wl_surface#199.commit() +[2618406.176] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) +[2618406.181] {Default Queue} -> wl_surface#199.commit() +[2618406.195] {Default Queue} -> wl_region#223.subtract(0, 0, 19, 48) +[2618406.199] {Default Queue} -> wl_region#223.add(-20, -49, 19, 48) +[2618406.204] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618406.208] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618406.288] {Default Queue} -> wl_region#223.subtract(0, 0, 19, 48) +[2618406.293] {Default Queue} -> wl_region#223.add(-20, -49, 19, 48) +[2618406.297] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618406.301] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618406.308] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618406.313] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618406.365] {Default Queue} -> wl_region#223.subtract(0, 0, 19, 48) +[2618406.370] {Default Queue} -> wl_region#223.add(-20, -49, 19, 48) +[2618406.374] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618406.379] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618406.384] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618406.388] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618406.393] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) +[2618406.397] {Default Queue} -> wl_surface#199.commit() +[2618406.402] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) +[2618406.406] {Default Queue} -> wl_surface#199.commit() +[2618406.412] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) +[2618406.416] {Default Queue} -> wl_surface#199.commit() +[2618406.422] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) +[2618406.426] {Default Queue} -> wl_surface#263.commit() +[2618406.584] {Default Queue} discarded wl_surface#3623.enter(wl_output#2009) +[2618406.601] {Default Queue} discarded wl_surface#3623.enter(wl_output#2041) +[2618406.608] {Default Queue} discarded wl_surface#3623.enter(wl_output#2073) +[2618406.614] {Default Queue} discarded wl_surface#3623.enter(wl_output#2105) +[2618406.619] {Default Queue} discarded wl_surface#3623.enter(wl_output#2137) +[2618406.624] {Default Queue} discarded wl_surface#3623.enter(wl_output#2169) +[2618406.629] {Default Queue} discarded wl_surface#3623.enter(wl_output#2201) +[2618406.634] {Default Queue} discarded wl_surface#3623.enter(wl_output#2233) +[2618406.639] {Default Queue} discarded wl_surface#3623.enter(wl_output#2265) +[2618406.644] {Default Queue} discarded wl_surface#3623.enter(wl_output#2297) +[2618406.649] {Default Queue} discarded wl_surface#3623.enter(wl_output#2329) +[2618406.654] {Default Queue} discarded wl_surface#3623.enter(wl_output#2361) +[2618406.659] {Default Queue} discarded wl_surface#3623.enter(wl_output#2393) +[2618406.664] {Default Queue} discarded wl_surface#3623.enter(wl_output#2425) +[2618406.669] {Default Queue} discarded wl_surface#3623.enter(wl_output#2457) +[2618406.673] {Default Queue} discarded wl_surface#3623.enter(wl_output#2489) +[2618406.685] {Default Queue} discarded wl_surface#3623.enter(wl_output#2521) +[2618406.695] {Default Queue} discarded wl_surface#3623.enter(wl_output#2553) +[2618406.700] {Default Queue} discarded wl_surface#3623.enter(wl_output#2585) +[2618406.704] {Default Queue} discarded wl_surface#3623.enter(wl_output#2617) +[2618406.709] {Default Queue} discarded wl_surface#3623.enter(wl_output#2649) +[2618406.714] {Default Queue} discarded wl_surface#3623.enter(wl_output#2681) +[2618406.719] {Default Queue} discarded wl_surface#3623.enter(wl_output#2713) +[2618406.724] {Default Queue} discarded wl_surface#3623.enter(wl_output#2745) +[2618406.728] {Default Queue} discarded wl_surface#3623.enter(wl_output#2777) +[2618406.733] {Default Queue} discarded wl_surface#3623.enter(wl_output#2809) +[2618406.738] {Default Queue} discarded wl_surface#3623.enter(wl_output#2841) +[2618406.743] {Default Queue} discarded wl_surface#3623.enter(wl_output#2873) +[2618406.748] {Default Queue} discarded wl_surface#3623.enter(wl_output#2905) +[2618406.753] {Default Queue} discarded wl_surface#3623.enter(wl_output#2937) +[2618406.758] {Default Queue} discarded wl_surface#3623.enter(wl_output#2969) +[2618406.763] {Default Queue} discarded wl_surface#3623.enter(wl_output#3001) +[2618406.768] {Default Queue} discarded wl_surface#3623.enter(wl_output#3033) +[2618406.772] {Default Queue} discarded wl_surface#3623.enter(wl_output#3065) +[2618406.777] {Default Queue} discarded wl_surface#3623.enter(wl_output#3097) +[2618406.783] {Default Queue} discarded wl_surface#3623.enter(wl_output#3129) +[2618406.788] {Default Queue} discarded wl_surface#3623.enter(wl_output#3161) +[2618406.793] {Default Queue} discarded wl_surface#3623.enter(wl_output#3193) +[2618406.798] {Default Queue} discarded wl_surface#3623.enter(wl_output#3225) +[2618406.803] {Default Queue} discarded wl_surface#3623.enter(wl_output#3257) +[2618406.807] {Default Queue} discarded wl_surface#3623.enter(wl_output#3289) +[2618406.812] {Default Queue} discarded wl_surface#3623.enter(wl_output#3321) +[2618406.817] {Default Queue} discarded wl_surface#3623.enter(wl_output#3353) +[2618406.822] {Default Queue} discarded wl_surface#3623.enter(wl_output#3385) +[2618406.827] {Default Queue} discarded wl_surface#3623.enter(wl_output#3417) +[2618406.832] {Default Queue} discarded wl_surface#3623.enter(wl_output#3449) +[2618406.837] {Default Queue} discarded wl_surface#3623.enter(wl_output#3481) +[2618406.842] {Default Queue} discarded wl_surface#3623.enter(wl_output#3513) +[2618406.846] {Default Queue} discarded wl_surface#3623.enter(wl_output#3545) +[2618406.851] {Default Queue} discarded wl_surface#3623.enter(wl_output#3577) +[2618406.856] {Default Queue} discarded wl_surface#3623.enter(wl_output#3609) +[2618406.868] {Default Queue} discarded wl_surface#3623.enter(wl_output#3641) +[2618406.884] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) +[2618406.892] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) +[2618406.898] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618406.903] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618406.915] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) +[2618406.921] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) +[2618406.927] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618406.932] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618406.939] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) +[2618406.944] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) +[2618406.949] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618406.955] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618406.961] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) +[2618406.966] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) +[2618406.971] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618406.976] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618406.982] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) +[2618406.992] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) +[2618406.999] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618407.005] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618407.119] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) +[2618407.126] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) +[2618407.131] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618407.137] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618407.145] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618407.152] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618407.160] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) +[2618407.168] {Default Queue} -> wl_surface#263.commit() +[2618407.174] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) +[2618407.179] {Default Queue} -> wl_surface#263.commit() +[2618407.188] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) +[2618407.195] {Default Queue} -> wl_surface#263.commit() +[2618407.202] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) +[2618407.208] {Default Queue} -> wl_surface#231.commit() +[2618408.274] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) +[2618408.280] {Default Queue} -> wl_surface#231.commit() +[2618408.287] {Default Queue} -> wl_region#255.subtract(0, 0, 19, 48) +[2618408.292] {Default Queue} -> wl_region#255.add(-20, -49, 19, 48) +[2618408.296] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) +[2618408.301] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) +[2618408.306] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) +[2618408.311] {Default Queue} -> wl_surface#231.commit() +[2618408.315] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) +[2618408.319] {Default Queue} -> wl_surface#231.commit() +[2618408.324] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) +[2618408.329] {Default Queue} -> wl_surface#231.commit() +[2618408.333] {Default Queue} -> wl_region#191.subtract(0, 0, 2, 2) +[2618408.340] {Default Queue} -> wl_region#223.subtract(0, 0, 19, 48) +[2618408.345] {Default Queue} -> wl_region#223.add(-20, -49, 19, 48) +[2618408.349] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618408.354] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618408.427] {Default Queue} -> wl_region#223.subtract(0, 0, 19, 48) +[2618408.433] {Default Queue} -> wl_region#223.add(-20, -49, 19, 48) +[2618408.437] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618408.441] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618408.447] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618408.451] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618408.503] {Default Queue} -> wl_region#223.subtract(0, 0, 19, 48) +[2618408.508] {Default Queue} -> wl_region#223.add(-20, -49, 19, 48) +[2618408.513] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618408.517] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618408.522] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618408.527] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618408.533] {Default Queue} -> wl_region#255.subtract(0, 0, 19, 48) +[2618408.537] {Default Queue} -> wl_region#255.add(-20, -49, 19, 48) +[2618408.542] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) +[2618408.546] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) +[2618408.550] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) +[2618408.555] {Default Queue} -> wl_region#191.subtract(0, 0, 5, 5) +[2618408.559] {Default Queue} -> wl_region#191.add(0, 0, 0, 0) +[2618408.564] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) +[2618408.568] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) +[2618408.573] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618408.577] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618408.586] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) +[2618408.592] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) +[2618408.610] {Default Queue} -> wl_buffer#189.destroy() +[2618408.616] {Default Queue} -> wl_buffer#190.destroy() +[2618408.620] {Default Queue} -> wl_shm_pool#187.destroy() +[2618408.624] {Default Queue} -> wl_shm_pool#188.destroy() +[2618408.690] {Default Queue} -> wl_shm#175.create_pool(new id wl_shm_pool#3690, fd 579, 16) +[2618408.697] {Default Queue} -> wl_shm#175.create_pool(new id wl_shm_pool#3691, fd 580, 16) +[2618408.702] {Default Queue} -> wl_shm_pool#3690.create_buffer(new id wl_buffer#3692, 0, 2, 2, 8, 0) +[2618408.707] {Default Queue} -> wl_shm_pool#3691.create_buffer(new id wl_buffer#3693, 0, 2, 2, 8, 0) +[2618408.714] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) +[2618408.719] {Default Queue} -> wl_surface#167.commit() +[2618408.724] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) +[2618408.729] {Default Queue} -> wl_surface#167.commit() +[2618408.736] {Default Queue} -> wl_region#191.subtract(0, 0, 22, 51) +[2618408.740] {Default Queue} -> wl_region#191.add(-20, -49, 19, 48) +[2618408.745] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) +[2618408.749] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) +[2618408.753] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) +[2618408.758] {Default Queue} -> wl_surface#167.commit() +[2618408.764] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) +[2618408.768] {Default Queue} -> wl_surface#167.commit() +[2618409.833] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) +[2618409.839] {Default Queue} -> wl_surface#167.commit() +[2618409.845] {Default Queue} -> wl_region#191.subtract(0, 0, 22, 51) +[2618409.849] {Default Queue} -> wl_region#191.add(-20, -49, 19, 48) +[2618409.854] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) +[2618409.858] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) +[2618409.866] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) +[2618409.870] {Default Queue} -> wl_surface#167.commit() +[2618409.875] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) +[2618409.879] {Default Queue} -> wl_surface#167.commit() +[2618409.885] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) +[2618409.889] {Default Queue} -> wl_surface#167.commit() +[2618409.894] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) +[2618409.900] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) +[2618409.905] {Default Queue} -> wl_surface#135.commit() +[2618410.637] {Default Queue} wl_keyboard#3656.keymap(1, fd 579, 68213) +[2618410.644] {Default Queue} wl_keyboard#3656.enter(566, wl_surface#19, array[0]) +[2618410.649] {Default Queue} wl_keyboard#3656.modifiers(566, 0, 0, 16, 0) +[2618410.653] {Default Queue} discarded wl_shm#3663.format(875709016) +[2618410.658] {Default Queue} discarded wl_shm#3663.format(1) +[2618410.662] {Default Queue} discarded wl_shm#3663.format(0) +[2618410.666] {Default Queue} discarded wl_shm#3663.format(875708993) +[2618410.669] {Default Queue} discarded wl_shm#3664.format(875709016) +[2618410.673] {Default Queue} discarded wl_shm#3664.format(1) +[2618410.678] {Default Queue} discarded wl_shm#3664.format(0) +[2618410.681] {Default Queue} discarded wl_shm#3664.format(875708993) +[2618410.685] {Default Queue} discarded wl_shm#3665.format(875709016) +[2618410.689] {Default Queue} discarded wl_shm#3665.format(1) +[2618410.693] {Default Queue} discarded wl_shm#3665.format(0) +[2618410.698] {Default Queue} discarded wl_shm#3665.format(875708993) +[2618410.702] {Default Queue} wl_seat#3672.capabilities(7) +[2618410.706] {Default Queue} -> wl_seat#3672.get_keyboard(new id wl_keyboard#3694) +[2618410.711] {Default Queue} -> wl_seat#3672.get_pointer(new id wl_pointer#3695) +[2618410.715] {Default Queue} -> wl_data_device_manager#3668.get_data_device(new id wl_data_device#3696, wl_seat#3672) +[2618410.720] {Default Queue} -> zwp_primary_selection_device_manager_v1#3670.get_device(new id zwp_primary_selection_device_v1#3697, wl_seat#3672) +[2618410.737] {Default Queue} wl_output#3673.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2618410.743] {Default Queue} wl_output#3673.mode(3, 1280, 800, 60000) +[2618410.747] {Default Queue} discarded wl_surface#2727.enter(wl_output#3673) +[2618410.752] {Default Queue} discarded wl_surface#3.enter(wl_output#3673) +[2618410.756] {Default Queue} discarded wl_surface#999.enter(wl_output#3673) +[2618410.760] {Default Queue} discarded wl_surface#3079.enter(wl_output#3673) +[2618410.764] {Default Queue} discarded wl_surface#1191.enter(wl_output#3673) +[2618410.768] {Default Queue} discarded wl_surface#1159.enter(wl_output#3673) +[2618410.771] {Default Queue} discarded wl_surface#1703.enter(wl_output#3673) +[2618410.776] {Default Queue} discarded wl_surface#2215.enter(wl_output#3673) +[2618410.780] {Default Queue} discarded wl_surface#423.enter(wl_output#3673) +[2618410.784] {Default Queue} discarded wl_surface#1447.enter(wl_output#3673) +[2618410.787] {Default Queue} discarded wl_surface#3527.enter(wl_output#3673) +[2618410.791] {Default Queue} discarded wl_surface#3047.enter(wl_output#3673) +[2618410.795] {Default Queue} discarded wl_surface#2023.enter(wl_output#3673) +[2618410.799] {Default Queue} discarded wl_surface#1639.enter(wl_output#3673) +[2618410.803] {Default Queue} discarded wl_surface#1319.enter(wl_output#3673) +[2618410.808] {Default Queue} discarded wl_surface#1127.enter(wl_output#3673) +[2618410.812] {Default Queue} discarded wl_surface#2151.enter(wl_output#3673) +[2618410.816] {Default Queue} discarded wl_surface#2375.enter(wl_output#3673) +[2618410.820] {Default Queue} discarded wl_surface#2695.enter(wl_output#3673) +[2618410.824] {Default Queue} discarded wl_surface#2919.enter(wl_output#3673) +[2618410.828] {Default Queue} discarded wl_surface#1063.enter(wl_output#3673) +[2618410.831] {Default Queue} discarded wl_surface#455.enter(wl_output#3673) +[2618410.835] {Default Queue} discarded wl_surface#1575.enter(wl_output#3673) +[2618410.839] {Default Queue} discarded wl_surface#1799.enter(wl_output#3673) +[2618410.843] {Default Queue} discarded wl_surface#1415.enter(wl_output#3673) +[2618410.847] {Default Queue} discarded wl_surface#2439.enter(wl_output#3673) +[2618410.851] {Default Queue} discarded wl_surface#2279.enter(wl_output#3673) +[2618410.855] {Default Queue} discarded wl_surface#3591.enter(wl_output#3673) +[2618410.859] {Default Queue} discarded wl_surface#1831.enter(wl_output#3673) +[2618410.866] {Default Queue} discarded wl_surface#903.enter(wl_output#3673) +[2618410.870] {Default Queue} discarded wl_surface#2663.enter(wl_output#3673) +[2618410.874] {Default Queue} discarded wl_surface#775.enter(wl_output#3673) +[2618410.879] {Default Queue} discarded wl_surface#1991.enter(wl_output#3673) +[2618410.882] {Default Queue} discarded wl_surface#1543.enter(wl_output#3673) +[2618410.886] {Default Queue} discarded wl_surface#135.enter(wl_output#3673) +[2618410.890] {Default Queue} discarded wl_surface#3623.enter(wl_output#3673) +[2618410.894] {Default Queue} discarded wl_surface#1287.enter(wl_output#3673) +[2618410.898] {Default Queue} discarded wl_surface#3399.enter(wl_output#3673) +[2618410.902] {Default Queue} discarded wl_surface#1031.enter(wl_output#3673) +[2618410.906] {Default Queue} discarded wl_surface#615.enter(wl_output#3673) +[2618410.909] {Default Queue} discarded wl_surface#3111.enter(wl_output#3673) +[2618410.913] {Default Queue} discarded wl_surface#231.enter(wl_output#3673) +[2618410.917] {Default Queue} discarded wl_surface#2343.enter(wl_output#3673) +[2618410.921] {Default Queue} discarded wl_surface#1863.enter(wl_output#3673) +[2618410.925] {Default Queue} discarded wl_surface#359.enter(wl_output#3673) +[2618410.929] {Default Queue} discarded wl_surface#2983.enter(wl_output#3673) +[2618410.933] {Default Queue} discarded wl_surface#583.enter(wl_output#3673) +[2618410.937] {Default Queue} discarded wl_surface#743.enter(wl_output#3673) +[2618410.941] {Default Queue} discarded wl_surface#3143.enter(wl_output#3673) +[2618410.948] {Default Queue} discarded wl_surface#2535.enter(wl_output#3673) +[2618410.953] {Default Queue} discarded wl_surface#3367.enter(wl_output#3673) +[2618410.957] {Default Queue} discarded wl_surface#967.enter(wl_output#3673) +[2618410.961] {Default Queue} discarded wl_surface#103.enter(wl_output#3673) +[2618410.965] {Default Queue} discarded wl_surface#3271.enter(wl_output#3673) +[2618410.969] {Default Queue} discarded wl_surface#327.enter(wl_output#3673) +[2618410.973] {Default Queue} discarded wl_surface#43.enter(wl_output#3673) +[2618410.977] {Default Queue} discarded wl_surface#2247.enter(wl_output#3673) +[2618410.981] {Default Queue} discarded wl_surface#807.enter(wl_output#3673) +[2618410.985] {Default Queue} discarded wl_surface#19.enter(wl_output#3673) +[2618410.988] {Default Queue} discarded wl_surface#2951.enter(wl_output#3673) +[2618410.992] {Default Queue} discarded wl_surface#1511.enter(wl_output#3673) +[2618410.996] {Default Queue} discarded wl_surface#199.enter(wl_output#3673) +[2618411.000] {Default Queue} discarded wl_surface#3463.enter(wl_output#3673) +[2618411.004] {Default Queue} discarded wl_surface#3559.enter(wl_output#3673) +[2618411.009] {Default Queue} discarded wl_surface#3495.enter(wl_output#3673) +[2618411.013] {Default Queue} discarded wl_surface#391.enter(wl_output#3673) +[2618411.017] {Default Queue} discarded wl_surface#935.enter(wl_output#3673) +[2618411.021] {Default Queue} discarded wl_surface#2823.enter(wl_output#3673) +[2618411.025] {Default Queue} discarded wl_surface#3015.enter(wl_output#3673) +[2618411.029] {Default Queue} discarded wl_surface#1671.enter(wl_output#3673) +[2618411.033] {Default Queue} discarded wl_surface#1351.enter(wl_output#3673) +[2618411.037] {Default Queue} discarded wl_surface#711.enter(wl_output#3673) +[2618411.041] {Default Queue} discarded wl_surface#3175.enter(wl_output#3673) +[2618411.045] {Default Queue} discarded wl_surface#3431.enter(wl_output#3673) +[2618411.049] {Default Queue} discarded wl_surface#1223.enter(wl_output#3673) +[2618411.053] {Default Queue} discarded wl_surface#1927.enter(wl_output#3673) +[2618411.057] {Default Queue} discarded wl_surface#871.enter(wl_output#3673) +[2618411.061] {Default Queue} discarded wl_surface#1895.enter(wl_output#3673) +[2618411.065] {Default Queue} discarded wl_surface#263.enter(wl_output#3673) +[2618411.069] {Default Queue} discarded wl_surface#551.enter(wl_output#3673) +[2618411.072] {Default Queue} discarded wl_surface#1735.enter(wl_output#3673) +[2618411.076] {Default Queue} discarded wl_surface#1479.enter(wl_output#3673) +[2618411.081] {Default Queue} discarded wl_surface#1772.enter(wl_output#3673) +[2618411.084] {Default Queue} discarded wl_surface#2599.enter(wl_output#3673) +[2618411.088] {Default Queue} discarded wl_surface#2631.enter(wl_output#3673) +[2618411.092] {Default Queue} discarded wl_surface#1959.enter(wl_output#3673) +[2618411.096] {Default Queue} discarded wl_surface#647.enter(wl_output#3673) +[2618411.100] {Default Queue} discarded wl_surface#2055.enter(wl_output#3673) +[2618411.104] {Default Queue} discarded wl_surface#2508.enter(wl_output#3673) +[2618411.108] {Default Queue} discarded wl_surface#71.enter(wl_output#3673) +[2618411.113] {Default Queue} discarded wl_surface#2759.enter(wl_output#3673) +[2618411.117] {Default Queue} discarded wl_surface#2791.enter(wl_output#3673) +[2618411.120] {Default Queue} discarded wl_surface#2887.enter(wl_output#3673) +[2618411.124] {Default Queue} discarded wl_surface#2183.enter(wl_output#3673) +[2618411.128] {Default Queue} discarded wl_surface#2567.enter(wl_output#3673) +[2618411.132] {Default Queue} discarded wl_surface#839.enter(wl_output#3673) +[2618411.136] {Default Queue} discarded wl_surface#1607.enter(wl_output#3673) +[2618411.140] {Default Queue} discarded wl_surface#1095.enter(wl_output#3673) +[2618411.144] {Default Queue} discarded wl_surface#1383.enter(wl_output#3673) +[2618411.148] {Default Queue} discarded wl_surface#487.enter(wl_output#3673) +[2618411.152] {Default Queue} discarded wl_surface#2311.enter(wl_output#3673) +[2618411.156] {Default Queue} discarded wl_surface#519.enter(wl_output#3673) +[2618411.162] {Default Queue} discarded wl_surface#3335.enter(wl_output#3673) +[2618411.168] {Default Queue} discarded wl_surface#3239.enter(wl_output#3673) +[2618411.172] {Default Queue} discarded wl_surface#2087.enter(wl_output#3673) +[2618411.175] {Default Queue} discarded wl_surface#2471.enter(wl_output#3673) +[2618411.179] {Default Queue} discarded wl_surface#295.enter(wl_output#3673) +[2618411.183] {Default Queue} discarded wl_surface#167.enter(wl_output#3673) +[2618411.187] {Default Queue} discarded wl_surface#1255.enter(wl_output#3673) +[2618411.191] {Default Queue} discarded wl_surface#2855.enter(wl_output#3673) +[2618411.195] {Default Queue} discarded wl_surface#3303.enter(wl_output#3673) +[2618411.199] {Default Queue} discarded wl_surface#679.enter(wl_output#3673) +[2618411.202] {Default Queue} discarded wl_surface#2407.enter(wl_output#3673) +[2618411.206] {Default Queue} discarded wl_surface#3207.enter(wl_output#3673) +[2618411.210] {Default Queue} discarded wl_surface#2119.enter(wl_output#3673) +[2618411.214] {Default Queue} discarded wl_surface#3655.enter(wl_output#18) +[2618411.218] {Default Queue} discarded wl_surface#3655.enter(wl_output#57) +[2618411.222] {Default Queue} discarded wl_surface#3655.enter(wl_output#89) +[2618411.226] {Default Queue} discarded wl_surface#3655.enter(wl_output#121) +[2618411.230] {Default Queue} discarded wl_surface#3655.enter(wl_output#153) +[2618411.234] {Default Queue} discarded wl_surface#3655.enter(wl_output#185) +[2618411.238] {Default Queue} discarded wl_surface#3655.enter(wl_output#217) +[2618411.241] {Default Queue} discarded wl_surface#3655.enter(wl_output#249) +[2618411.245] {Default Queue} discarded wl_surface#3655.enter(wl_output#281) +[2618411.249] {Default Queue} discarded wl_surface#3655.enter(wl_output#313) +[2618411.253] {Default Queue} discarded wl_surface#3655.enter(wl_output#345) +[2618411.257] {Default Queue} discarded wl_surface#3655.enter(wl_output#377) +[2618411.261] {Default Queue} discarded wl_surface#3655.enter(wl_output#409) +[2618411.265] {Default Queue} discarded wl_surface#3655.enter(wl_output#441) +[2618411.269] {Default Queue} discarded wl_surface#3655.enter(wl_output#473) +[2618411.273] {Default Queue} discarded wl_surface#3655.enter(wl_output#505) +[2618411.277] {Default Queue} discarded wl_surface#3655.enter(wl_output#537) +[2618411.280] {Default Queue} discarded wl_surface#3655.enter(wl_output#569) +[2618411.284] {Default Queue} discarded wl_surface#3655.enter(wl_output#601) +[2618411.288] {Default Queue} discarded wl_surface#3655.enter(wl_output#633) +[2618411.292] {Default Queue} discarded wl_surface#3655.enter(wl_output#665) +[2618411.296] {Default Queue} discarded wl_surface#3655.enter(wl_output#697) +[2618411.300] {Default Queue} discarded wl_surface#3655.enter(wl_output#729) +[2618411.304] {Default Queue} discarded wl_surface#3655.enter(wl_output#761) +[2618411.308] {Default Queue} discarded wl_surface#3655.enter(wl_output#793) +[2618411.311] {Default Queue} discarded wl_surface#3655.enter(wl_output#825) +[2618411.315] {Default Queue} discarded wl_surface#3655.enter(wl_output#857) +[2618411.319] {Default Queue} discarded wl_surface#3655.enter(wl_output#889) +[2618411.323] {Default Queue} discarded wl_surface#3655.enter(wl_output#921) +[2618411.327] {Default Queue} discarded wl_surface#3655.enter(wl_output#953) +[2618411.331] {Default Queue} discarded wl_surface#3655.enter(wl_output#985) +[2618411.335] {Default Queue} discarded wl_surface#3655.enter(wl_output#1017) +[2618411.339] {Default Queue} discarded wl_surface#3655.enter(wl_output#1049) +[2618411.343] {Default Queue} discarded wl_surface#3655.enter(wl_output#1081) +[2618411.347] {Default Queue} discarded wl_surface#3655.enter(wl_output#1113) +[2618411.350] {Default Queue} discarded wl_surface#3655.enter(wl_output#1145) +[2618411.354] {Default Queue} discarded wl_surface#3655.enter(wl_output#1177) +[2618411.358] {Default Queue} discarded wl_surface#3655.enter(wl_output#1209) +[2618411.362] {Default Queue} discarded wl_surface#3655.enter(wl_output#1241) +[2618411.366] {Default Queue} discarded wl_surface#3655.enter(wl_output#1273) +[2618411.373] {Default Queue} discarded wl_surface#3655.enter(wl_output#1305) +[2618411.378] {Default Queue} discarded wl_surface#3655.enter(wl_output#1337) +[2618411.382] {Default Queue} discarded wl_surface#3655.enter(wl_output#1369) +[2618411.386] {Default Queue} discarded wl_surface#3655.enter(wl_output#1401) +[2618411.390] {Default Queue} discarded wl_surface#3655.enter(wl_output#1433) +[2618411.394] {Default Queue} discarded wl_surface#3655.enter(wl_output#1465) +[2618411.398] {Default Queue} discarded wl_surface#3655.enter(wl_output#1497) +[2618411.402] {Default Queue} discarded wl_surface#3655.enter(wl_output#1529) +[2618411.405] {Default Queue} discarded wl_surface#3655.enter(wl_output#1561) +[2618411.409] {Default Queue} discarded wl_surface#3655.enter(wl_output#1593) +[2618411.413] {Default Queue} discarded wl_surface#3655.enter(wl_output#1625) +[2618411.417] {Default Queue} discarded wl_surface#3655.enter(wl_output#1657) +[2618411.421] {Default Queue} discarded wl_surface#3655.enter(wl_output#1689) +[2618411.425] {Default Queue} discarded wl_surface#3655.enter(wl_output#1721) +[2618411.429] {Default Queue} discarded wl_surface#3655.enter(wl_output#1753) +[2618411.433] {Default Queue} discarded wl_surface#3655.enter(wl_output#1785) +[2618411.437] {Default Queue} discarded wl_surface#3655.enter(wl_output#1817) +[2618411.441] {Default Queue} discarded wl_surface#3655.enter(wl_output#1849) +[2618411.444] {Default Queue} discarded wl_surface#3655.enter(wl_output#1881) +[2618411.448] {Default Queue} discarded wl_surface#3655.enter(wl_output#1913) +[2618411.452] {Default Queue} discarded wl_surface#3655.enter(wl_output#1945) +[2618411.456] {Default Queue} discarded wl_surface#3655.enter(wl_output#1977) +[2618411.460] {Default Queue} discarded wl_surface#3655.enter(wl_output#2009) +[2618411.464] {Default Queue} discarded wl_surface#3655.enter(wl_output#2041) +[2618411.468] {Default Queue} discarded wl_surface#3655.enter(wl_output#2073) +[2618411.472] {Default Queue} discarded wl_surface#3655.enter(wl_output#2105) +[2618411.476] {Default Queue} discarded wl_surface#3655.enter(wl_output#2137) +[2618411.480] {Default Queue} discarded wl_surface#3655.enter(wl_output#2169) +[2618411.484] {Default Queue} discarded wl_surface#3655.enter(wl_output#2201) +[2618411.488] {Default Queue} discarded wl_surface#3655.enter(wl_output#2233) +[2618411.492] {Default Queue} discarded wl_surface#3655.enter(wl_output#2265) +[2618411.496] {Default Queue} discarded wl_surface#3655.enter(wl_output#2297) +[2618411.499] {Default Queue} discarded wl_surface#3655.enter(wl_output#2329) +[2618411.503] {Default Queue} discarded wl_surface#3655.enter(wl_output#2361) +[2618411.507] {Default Queue} discarded wl_surface#3655.enter(wl_output#2393) +[2618411.511] {Default Queue} discarded wl_surface#3655.enter(wl_output#2425) +[2618411.515] {Default Queue} discarded wl_surface#3655.enter(wl_output#2457) +[2618411.519] {Default Queue} discarded wl_surface#3655.enter(wl_output#2489) +[2618411.523] {Default Queue} discarded wl_surface#3655.enter(wl_output#2521) +[2618411.527] {Default Queue} discarded wl_surface#3655.enter(wl_output#2553) +[2618411.531] {Default Queue} discarded wl_surface#3655.enter(wl_output#2585) +[2618411.535] {Default Queue} discarded wl_surface#3655.enter(wl_output#2617) +[2618411.539] {Default Queue} discarded wl_surface#3655.enter(wl_output#2649) +[2618411.542] {Default Queue} discarded wl_surface#3655.enter(wl_output#2681) +[2618411.546] {Default Queue} discarded wl_surface#3655.enter(wl_output#2713) +[2618411.550] {Default Queue} discarded wl_surface#3655.enter(wl_output#2745) +[2618411.554] {Default Queue} discarded wl_surface#3655.enter(wl_output#2777) +[2618411.558] {Default Queue} discarded wl_surface#3655.enter(wl_output#2809) +[2618411.562] {Default Queue} discarded wl_surface#3655.enter(wl_output#2841) +[2618411.566] {Default Queue} discarded wl_surface#3655.enter(wl_output#2873) +[2618411.570] {Default Queue} discarded wl_surface#3655.enter(wl_output#2905) +[2618411.574] {Default Queue} discarded wl_surface#3655.enter(wl_output#2937) +[2618411.578] {Default Queue} discarded wl_surface#3655.enter(wl_output#2969) +[2618411.585] {Default Queue} discarded wl_surface#3655.enter(wl_output#3001) +[2618411.590] {Default Queue} discarded wl_surface#3655.enter(wl_output#3033) +[2618411.594] {Default Queue} discarded wl_surface#3655.enter(wl_output#3065) +[2618411.598] {Default Queue} discarded wl_surface#3655.enter(wl_output#3097) +[2618411.602] {Default Queue} discarded wl_surface#3655.enter(wl_output#3129) +[2618411.605] {Default Queue} discarded wl_surface#3655.enter(wl_output#3161) +[2618411.609] {Default Queue} discarded wl_surface#3655.enter(wl_output#3193) +[2618411.613] {Default Queue} discarded wl_surface#3655.enter(wl_output#3225) +[2618411.617] {Default Queue} discarded wl_surface#3655.enter(wl_output#3257) +[2618411.621] {Default Queue} discarded wl_surface#3655.enter(wl_output#3289) +[2618411.625] {Default Queue} discarded wl_surface#3655.enter(wl_output#3321) +[2618411.628] {Default Queue} discarded wl_surface#3655.enter(wl_output#3353) +[2618411.632] {Default Queue} discarded wl_surface#3655.enter(wl_output#3385) +[2618411.636] {Default Queue} discarded wl_surface#3655.enter(wl_output#3417) +[2618411.640] {Default Queue} discarded wl_surface#3655.enter(wl_output#3449) +[2618411.644] {Default Queue} discarded wl_surface#3655.enter(wl_output#3481) +[2618411.648] {Default Queue} discarded wl_surface#3655.enter(wl_output#3513) +[2618411.652] {Default Queue} discarded wl_surface#3655.enter(wl_output#3545) +[2618411.656] {Default Queue} discarded wl_surface#3655.enter(wl_output#3577) +[2618411.660] {Default Queue} discarded wl_surface#3655.enter(wl_output#3609) +[2618411.663] {Default Queue} discarded wl_surface#3655.enter(wl_output#3641) +[2618411.667] {Default Queue} discarded wl_surface#3655.enter(wl_output#3673) +[2618411.675] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) +[2618411.680] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) +[2618411.685] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618411.689] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618411.696] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) +[2618411.701] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) +[2618411.705] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618411.709] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618411.715] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) +[2618411.719] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) +[2618411.724] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618411.728] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618411.733] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) +[2618411.738] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) +[2618411.742] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618411.746] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618411.753] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) +[2618411.757] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) +[2618411.761] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618411.765] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618411.770] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) +[2618411.774] {Default Queue} -> wl_surface#135.commit() +[2618411.778] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) +[2618411.782] {Default Queue} -> wl_surface#135.commit() +[2618411.788] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) +[2618411.793] {Default Queue} -> wl_surface#135.commit() +[2618411.798] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) +[2618411.803] {Default Queue} -> wl_surface#295.commit() +[2618412.868] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) +[2618412.874] {Default Queue} -> wl_surface#295.commit() +[2618412.882] {Default Queue} -> wl_region#319.subtract(0, 0, 2, 2) +[2618412.886] {Default Queue} -> wl_region#319.add(0, 0, 2, 2) +[2618412.891] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618412.898] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618413.191] {Default Queue} -> wl_region#319.subtract(0, 0, 2, 2) +[2618413.197] {Default Queue} -> wl_region#319.add(0, 0, 2, 2) +[2618413.201] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618413.206] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618413.214] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) +[2618413.218] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) +[2618413.452] {Default Queue} -> wl_region#319.subtract(0, 0, 2, 2) +[2618413.457] {Default Queue} -> wl_region#319.add(0, 0, 2, 2) +[2618413.461] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618413.466] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618413.472] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) +[2618413.476] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) +[2618413.481] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) +[2618413.486] {Default Queue} -> wl_surface#295.commit() +[2618413.490] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) +[2618413.494] {Default Queue} -> wl_surface#295.commit() +[2618413.500] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) +[2618413.505] {Default Queue} -> wl_surface#295.commit() +[2618413.511] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) +[2618413.516] {Default Queue} -> wl_surface#391.commit() +[2618414.578] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) +[2618414.584] {Default Queue} -> wl_surface#391.commit() +[2618414.592] {Default Queue} -> wl_region#415.subtract(0, 0, 19, 48) +[2618414.597] {Default Queue} -> wl_region#415.add(-20, -49, 19, 48) +[2618414.601] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618414.605] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618414.696] {Default Queue} -> wl_region#415.subtract(0, 0, 19, 48) +[2618414.701] {Default Queue} -> wl_region#415.add(-20, -49, 19, 48) +[2618414.706] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618414.710] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618414.715] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618414.720] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618414.784] {Default Queue} -> wl_region#415.subtract(0, 0, 19, 48) +[2618414.790] {Default Queue} -> wl_region#415.add(-20, -49, 19, 48) +[2618414.794] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618414.798] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618414.804] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618414.808] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618414.813] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) +[2618414.818] {Default Queue} -> wl_surface#391.commit() +[2618414.822] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) +[2618414.826] {Default Queue} -> wl_surface#391.commit() +[2618414.832] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) +[2618414.836] {Default Queue} -> wl_surface#391.commit() +[2618414.846] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) +[2618414.852] {Default Queue} -> wl_surface#519.commit() +[2618415.866] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) +[2618415.872] {Default Queue} -> wl_surface#519.commit() +[2618415.880] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) +[2618415.885] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) +[2618415.889] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618415.893] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618415.900] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) +[2618415.904] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) +[2618415.908] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618415.912] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618415.924] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) +[2618415.932] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) +[2618415.936] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618415.941] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618415.946] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) +[2618415.951] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) +[2618415.955] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618415.959] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618415.964] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) +[2618415.968] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) +[2618415.972] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618415.976] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618415.981] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) +[2618415.986] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) +[2618415.990] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618415.994] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618415.999] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) +[2618416.004] {Default Queue} -> wl_surface#519.commit() +[2618416.008] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) +[2618416.012] {Default Queue} -> wl_surface#519.commit() +[2618416.018] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) +[2618416.023] {Default Queue} -> wl_surface#519.commit() +[2618416.029] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) +[2618416.033] {Default Queue} -> wl_surface#551.commit() +[2618417.095] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) +[2618417.101] {Default Queue} -> wl_surface#551.commit() +[2618417.108] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) +[2618417.113] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) +[2618417.117] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618417.121] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618417.128] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) +[2618417.132] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) +[2618417.137] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618417.141] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618417.148] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) +[2618417.152] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) +[2618417.157] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618417.161] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618417.165] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) +[2618417.170] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) +[2618417.174] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618417.178] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618417.183] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) +[2618417.187] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) +[2618417.192] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618417.196] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618417.201] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) +[2618417.206] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) +[2618417.210] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618417.214] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618417.219] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) +[2618417.223] {Default Queue} -> wl_surface#551.commit() +[2618417.227] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) +[2618417.231] {Default Queue} -> wl_surface#551.commit() +[2618417.237] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) +[2618417.245] {Default Queue} -> wl_surface#551.commit() +[2618417.253] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) +[2618417.257] {Default Queue} -> wl_surface#583.commit() +[2618418.318] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) +[2618418.323] {Default Queue} -> wl_surface#583.commit() +[2618418.329] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) +[2618418.334] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) +[2618418.338] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618418.342] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618418.348] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) +[2618418.353] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) +[2618418.357] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618418.361] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618418.368] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) +[2618418.372] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) +[2618418.377] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618418.381] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618418.386] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) +[2618418.390] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) +[2618418.394] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618418.398] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618418.403] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) +[2618418.407] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) +[2618418.411] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618418.415] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618418.420] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) +[2618418.424] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) +[2618418.429] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618418.433] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618418.437] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) +[2618418.442] {Default Queue} -> wl_surface#583.commit() +[2618418.446] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) +[2618418.450] {Default Queue} -> wl_surface#583.commit() +[2618418.456] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) +[2618418.461] {Default Queue} -> wl_surface#583.commit() +[2618418.466] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) +[2618418.471] {Default Queue} -> wl_surface#615.commit() +[2618419.531] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) +[2618419.537] {Default Queue} -> wl_surface#615.commit() +[2618419.543] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) +[2618419.547] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) +[2618419.551] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618419.556] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618419.561] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) +[2618419.566] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) +[2618419.570] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618419.574] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618419.581] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) +[2618419.585] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) +[2618419.590] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618419.594] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618419.599] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) +[2618419.603] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) +[2618419.607] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618419.611] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618419.616] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) +[2618419.624] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) +[2618419.630] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618419.634] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618419.638] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) +[2618419.643] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) +[2618419.647] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618419.651] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618419.656] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) +[2618419.660] {Default Queue} -> wl_surface#615.commit() +[2618419.664] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) +[2618419.669] {Default Queue} -> wl_surface#615.commit() +[2618419.674] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) +[2618419.678] {Default Queue} -> wl_surface#615.commit() +[2618419.684] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) +[2618419.689] {Default Queue} -> wl_surface#647.commit() +[2618420.633] {Display Queue} wl_display#1.delete_id(61) +[2618420.639] {Display Queue} wl_display#1.delete_id(62) +[2618420.643] {Display Queue} wl_display#1.delete_id(59) +[2618420.648] {Display Queue} wl_display#1.delete_id(60) +[2618420.652] {Display Queue} wl_display#1.delete_id(189) +[2618420.656] {Display Queue} wl_display#1.delete_id(190) +[2618420.660] {Display Queue} wl_display#1.delete_id(187) +[2618420.664] {Display Queue} wl_display#1.delete_id(188) +[2618420.668] {Default Queue} wl_keyboard#3694.keymap(1, fd 580, 68213) +[2618420.673] {Default Queue} wl_keyboard#3694.enter(566, wl_surface#19, array[0]) +[2618420.678] {Default Queue} wl_keyboard#3694.modifiers(566, 0, 0, 16, 0) +[2618420.686] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) +[2618420.691] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) +[2618420.696] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618420.700] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618420.706] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) +[2618420.711] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) +[2618420.716] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618420.720] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618420.726] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) +[2618420.731] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) +[2618420.735] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618420.739] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618420.744] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) +[2618420.748] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) +[2618420.753] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618420.757] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618420.761] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) +[2618420.766] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) +[2618420.770] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618420.774] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618420.779] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) +[2618420.783] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) +[2618420.787] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618420.791] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618420.796] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) +[2618420.801] {Default Queue} -> wl_surface#647.commit() +[2618420.805] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) +[2618420.809] {Default Queue} -> wl_surface#647.commit() +[2618420.815] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) +[2618420.819] {Default Queue} -> wl_surface#647.commit() +[2618420.824] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618420.831] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618420.838] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618420.842] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618420.847] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618420.852] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) +[2618420.857] {Default Queue} -> wl_surface#487.commit() +[2618421.923] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) +[2618421.929] {Default Queue} -> wl_surface#487.commit() +[2618421.936] {Default Queue} -> wl_region#511.subtract(0, 0, 19, 48) +[2618421.940] {Default Queue} -> wl_region#511.add(-20, -49, 19, 48) +[2618421.944] {Default Queue} -> wl_surface#487.set_opaque_region(wl_region#512) +[2618421.949] {Default Queue} -> wl_surface#487.set_input_region(wl_region#511) +[2618421.954] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) +[2618421.958] {Default Queue} -> wl_surface#487.commit() +[2618421.962] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) +[2618421.966] {Default Queue} -> wl_surface#487.commit() +[2618421.972] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) +[2618421.976] {Default Queue} -> wl_surface#487.commit() +[2618421.982] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) +[2618421.986] {Default Queue} -> wl_surface#711.commit() +[2618423.048] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) +[2618423.054] {Default Queue} -> wl_surface#711.commit() +[2618423.062] {Default Queue} -> wl_region#735.subtract(0, 0, 19, 48) +[2618423.068] {Default Queue} -> wl_region#735.add(-20, -49, 19, 48) +[2618423.072] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2618423.076] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2618423.175] {Default Queue} -> wl_region#735.subtract(0, 0, 19, 48) +[2618423.181] {Default Queue} -> wl_region#735.add(-20, -49, 19, 48) +[2618423.185] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2618423.189] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2618423.196] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618423.200] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618423.272] {Default Queue} -> wl_region#735.subtract(0, 0, 19, 48) +[2618423.277] {Default Queue} -> wl_region#735.add(-20, -49, 19, 48) +[2618423.282] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2618423.286] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2618423.291] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618423.295] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618423.301] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) +[2618423.306] {Default Queue} -> wl_surface#711.commit() +[2618423.310] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) +[2618423.315] {Default Queue} -> wl_surface#711.commit() +[2618423.321] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) +[2618423.325] {Default Queue} -> wl_surface#711.commit() +[2618423.331] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) +[2618423.336] {Default Queue} -> wl_surface#743.commit() +[2618424.397] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) +[2618424.402] {Default Queue} -> wl_surface#743.commit() +[2618424.410] {Default Queue} -> wl_region#767.subtract(0, 0, 19, 48) +[2618424.415] {Default Queue} -> wl_region#767.add(-20, -49, 19, 48) +[2618424.419] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2618424.423] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2618424.511] {Default Queue} -> wl_region#767.subtract(0, 0, 19, 48) +[2618424.517] {Default Queue} -> wl_region#767.add(-20, -49, 19, 48) +[2618424.521] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2618424.525] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2618424.530] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618424.535] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618424.612] {Default Queue} -> wl_region#767.subtract(0, 0, 19, 48) +[2618424.620] {Default Queue} -> wl_region#767.add(-20, -49, 19, 48) +[2618424.624] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2618424.628] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2618424.634] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618424.638] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618424.643] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) +[2618424.648] {Default Queue} -> wl_surface#743.commit() +[2618424.652] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) +[2618424.656] {Default Queue} -> wl_surface#743.commit() +[2618424.662] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) +[2618424.667] {Default Queue} -> wl_surface#743.commit() +[2618424.673] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) +[2618424.677] {Default Queue} -> wl_surface#775.commit() +[2618425.739] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) +[2618425.744] {Default Queue} -> wl_surface#775.commit() +[2618425.753] {Default Queue} -> wl_region#799.subtract(0, 0, 19, 48) +[2618425.758] {Default Queue} -> wl_region#799.add(-20, -49, 19, 48) +[2618425.762] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2618425.766] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2618425.858] {Default Queue} -> wl_region#799.subtract(0, 0, 19, 48) +[2618425.864] {Default Queue} -> wl_region#799.add(-20, -49, 19, 48) +[2618425.869] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2618425.879] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2618425.885] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618425.889] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618425.964] {Default Queue} -> wl_region#799.subtract(0, 0, 19, 48) +[2618425.970] {Default Queue} -> wl_region#799.add(-20, -49, 19, 48) +[2618425.974] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2618425.978] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2618425.984] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618425.988] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618425.993] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) +[2618425.998] {Default Queue} -> wl_surface#775.commit() +[2618426.002] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) +[2618426.007] {Default Queue} -> wl_surface#775.commit() +[2618426.013] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) +[2618426.017] {Default Queue} -> wl_surface#775.commit() +[2618426.023] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) +[2618426.027] {Default Queue} -> wl_surface#807.commit() +[2618427.089] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) +[2618427.094] {Default Queue} -> wl_surface#807.commit() +[2618427.104] {Default Queue} -> wl_region#831.subtract(0, 0, 19, 48) +[2618427.111] {Default Queue} -> wl_region#831.add(-20, -49, 19, 48) +[2618427.115] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2618427.119] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2618427.208] {Default Queue} -> wl_region#831.subtract(0, 0, 19, 48) +[2618427.213] {Default Queue} -> wl_region#831.add(-20, -49, 19, 48) +[2618427.217] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2618427.222] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2618427.227] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618427.232] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618427.303] {Default Queue} -> wl_region#831.subtract(0, 0, 19, 48) +[2618427.309] {Default Queue} -> wl_region#831.add(-20, -49, 19, 48) +[2618427.314] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2618427.318] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2618427.322] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618427.332] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618427.340] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) +[2618427.344] {Default Queue} -> wl_surface#807.commit() +[2618427.348] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) +[2618427.352] {Default Queue} -> wl_surface#807.commit() +[2618427.358] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) +[2618427.362] {Default Queue} -> wl_surface#807.commit() +[2618427.368] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) +[2618427.373] {Default Queue} -> wl_surface#839.commit() +[2618428.434] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) +[2618428.440] {Default Queue} -> wl_surface#839.commit() +[2618428.447] {Default Queue} -> wl_region#863.subtract(0, 0, 19, 48) +[2618428.451] {Default Queue} -> wl_region#863.add(-20, -49, 19, 48) +[2618428.456] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2618428.460] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2618428.549] {Default Queue} -> wl_region#863.subtract(0, 0, 19, 48) +[2618428.554] {Default Queue} -> wl_region#863.add(-20, -49, 19, 48) +[2618428.558] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2618428.563] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2618428.569] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618428.573] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618428.647] {Default Queue} -> wl_region#863.subtract(0, 0, 19, 48) +[2618428.652] {Default Queue} -> wl_region#863.add(-20, -49, 19, 48) +[2618428.656] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2618428.660] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2618428.666] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618428.670] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618428.675] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) +[2618428.679] {Default Queue} -> wl_surface#839.commit() +[2618428.683] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) +[2618428.688] {Default Queue} -> wl_surface#839.commit() +[2618428.693] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) +[2618428.697] {Default Queue} -> wl_surface#839.commit() +[2618428.703] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) +[2618428.707] {Default Queue} -> wl_surface#679.commit() +[2618429.768] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) +[2618429.774] {Default Queue} -> wl_surface#679.commit() +[2618429.780] {Default Queue} -> wl_region#703.subtract(0, 0, 19, 48) +[2618429.785] {Default Queue} -> wl_region#703.add(-20, -49, 19, 48) +[2618429.789] {Default Queue} -> wl_surface#679.set_opaque_region(wl_region#704) +[2618429.793] {Default Queue} -> wl_surface#679.set_input_region(wl_region#703) +[2618429.798] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) +[2618429.802] {Default Queue} -> wl_surface#679.commit() +[2618429.806] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) +[2618429.811] {Default Queue} -> wl_surface#679.commit() +[2618429.816] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) +[2618429.820] {Default Queue} -> wl_surface#679.commit() +[2618429.825] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2618429.829] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618429.833] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618429.838] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618429.842] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618429.846] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618429.850] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2618429.856] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) +[2618429.866] {Default Queue} -> wl_surface#455.commit() +[2618430.928] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) +[2618430.934] {Default Queue} -> wl_surface#455.commit() +[2618430.940] {Default Queue} -> wl_region#479.subtract(0, 0, 19, 48) +[2618430.948] {Default Queue} -> wl_region#479.add(-20, -49, 19, 48) +[2618430.955] {Default Queue} -> wl_surface#455.set_opaque_region(wl_region#480) +[2618430.959] {Default Queue} -> wl_surface#455.set_input_region(wl_region#479) +[2618430.964] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) +[2618430.969] {Default Queue} -> wl_surface#455.commit() +[2618430.973] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) +[2618430.977] {Default Queue} -> wl_surface#455.commit() +[2618430.983] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) +[2618430.987] {Default Queue} -> wl_surface#455.commit() +[2618430.992] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2618430.997] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2618431.002] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618431.006] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618431.010] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618431.014] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618431.019] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618431.023] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2618431.029] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) +[2618431.033] {Default Queue} -> wl_surface#423.commit() +[2618432.095] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) +[2618432.100] {Default Queue} -> wl_surface#423.commit() +[2618432.107] {Default Queue} -> wl_region#447.subtract(0, 0, 19, 48) +[2618432.112] {Default Queue} -> wl_region#447.add(-20, -49, 19, 48) +[2618432.116] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) +[2618432.120] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) +[2618432.125] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) +[2618432.130] {Default Queue} -> wl_surface#423.commit() +[2618432.134] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) +[2618432.138] {Default Queue} -> wl_surface#423.commit() +[2618432.144] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) +[2618432.148] {Default Queue} -> wl_surface#423.commit() +[2618432.153] {Default Queue} -> wl_region#383.subtract(0, 0, 2, 2) +[2618432.159] {Default Queue} -> wl_region#415.subtract(0, 0, 19, 48) +[2618432.164] {Default Queue} -> wl_region#415.add(-20, -49, 19, 48) +[2618432.168] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618432.172] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618432.251] {Default Queue} -> wl_region#415.subtract(0, 0, 19, 48) +[2618432.257] {Default Queue} -> wl_region#415.add(-20, -49, 19, 48) +[2618432.261] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618432.265] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618432.271] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618432.275] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618432.338] {Default Queue} -> wl_region#415.subtract(0, 0, 19, 48) +[2618432.344] {Default Queue} -> wl_region#415.add(-20, -49, 19, 48) +[2618432.348] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618432.352] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618432.358] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618432.363] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618432.368] {Default Queue} -> wl_region#447.subtract(0, 0, 19, 48) +[2618432.373] {Default Queue} -> wl_region#447.add(-20, -49, 19, 48) +[2618432.377] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) +[2618432.381] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) +[2618432.386] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) +[2618432.390] {Default Queue} -> wl_region#383.subtract(0, 0, 5, 5) +[2618432.395] {Default Queue} -> wl_region#383.add(0, 0, 0, 0) +[2618432.399] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) +[2618432.403] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) +[2618432.411] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618432.417] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618432.421] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618432.426] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618432.430] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618432.434] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618432.439] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2618432.443] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618432.447] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618432.452] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618432.456] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618432.461] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618432.465] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2618432.469] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2618432.474] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) +[2618432.478] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) +[2618432.500] {Default Queue} -> wl_buffer#381.destroy() +[2618432.506] {Default Queue} -> wl_buffer#382.destroy() +[2618432.510] {Default Queue} -> wl_shm_pool#379.destroy() +[2618432.514] {Default Queue} -> wl_shm_pool#380.destroy() +[2618432.558] {Default Queue} -> wl_shm#367.create_pool(new id wl_shm_pool#188, fd 583, 16) +[2618432.565] {Default Queue} -> wl_shm#367.create_pool(new id wl_shm_pool#187, fd 584, 16) +[2618432.570] {Default Queue} -> wl_shm_pool#188.create_buffer(new id wl_buffer#190, 0, 2, 2, 8, 0) +[2618432.575] {Default Queue} -> wl_shm_pool#187.create_buffer(new id wl_buffer#189, 0, 2, 2, 8, 0) +[2618432.582] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) +[2618432.587] {Default Queue} -> wl_surface#359.commit() +[2618432.593] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) +[2618432.597] {Default Queue} -> wl_surface#359.commit() +[2618432.604] {Default Queue} -> wl_region#383.subtract(0, 0, 22, 51) +[2618432.609] {Default Queue} -> wl_region#383.add(-20, -49, 19, 48) +[2618432.613] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) +[2618432.618] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) +[2618432.622] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) +[2618432.627] {Default Queue} -> wl_surface#359.commit() +[2618432.631] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2618432.636] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2618432.640] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618432.644] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618432.649] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618432.653] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618432.658] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618432.662] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2618432.668] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) +[2618432.673] {Default Queue} -> wl_surface#359.commit() +[2618433.737] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) +[2618433.744] {Default Queue} -> wl_surface#359.commit() +[2618433.750] {Default Queue} -> wl_region#383.subtract(0, 0, 22, 51) +[2618433.755] {Default Queue} -> wl_region#383.add(-20, -49, 19, 48) +[2618433.759] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) +[2618433.764] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) +[2618433.769] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) +[2618433.773] {Default Queue} -> wl_surface#359.commit() +[2618433.777] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) +[2618433.781] {Default Queue} -> wl_surface#359.commit() +[2618433.787] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) +[2618433.791] {Default Queue} -> wl_surface#359.commit() +[2618433.796] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) +[2618433.800] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2618433.809] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2618433.816] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618433.820] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618433.824] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618433.829] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618433.833] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618433.837] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2618433.843] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) +[2618433.848] {Default Queue} -> wl_surface#327.commit() +[2618434.871] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) +[2618434.876] {Default Queue} -> wl_surface#327.commit() +[2618434.884] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) +[2618434.889] {Default Queue} -> wl_region#351.add(0, 0, 2, 2) +[2618434.893] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618434.897] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618434.905] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) +[2618434.909] {Default Queue} -> wl_region#351.add(0, 0, 2, 2) +[2618434.913] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618434.918] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618434.923] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) +[2618434.927] {Default Queue} -> wl_region#351.add(0, 0, 2, 2) +[2618434.932] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618434.936] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618434.941] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) +[2618434.945] {Default Queue} -> wl_region#351.add(0, 0, 2, 2) +[2618434.950] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618434.954] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618434.961] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) +[2618434.965] {Default Queue} -> wl_region#351.add(0, 0, 2, 2) +[2618434.970] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618434.974] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618434.978] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) +[2618434.983] {Default Queue} -> wl_surface#327.commit() +[2618434.987] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) +[2618434.991] {Default Queue} -> wl_surface#327.commit() +[2618434.997] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) +[2618435.001] {Default Queue} -> wl_surface#327.commit() +[2618435.005] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) +[2618435.010] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) +[2618435.015] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2618435.019] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2618435.023] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618435.028] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618435.032] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618435.036] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618435.041] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618435.045] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2618435.051] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) +[2618435.055] {Default Queue} -> wl_surface#103.commit() +[2618436.117] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) +[2618436.123] {Default Queue} -> wl_surface#103.commit() +[2618436.128] {Default Queue} -> wl_region#127.subtract(0, 0, 2, 2) +[2618436.133] {Default Queue} -> wl_region#127.add(0, 0, 2, 2) +[2618436.137] {Default Queue} -> wl_surface#103.set_opaque_region(wl_region#128) +[2618436.141] {Default Queue} -> wl_surface#103.set_input_region(wl_region#127) +[2618436.147] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) +[2618436.151] {Default Queue} -> wl_surface#103.commit() +[2618436.155] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) +[2618436.163] {Default Queue} -> wl_surface#103.commit() +[2618436.172] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) +[2618436.178] {Default Queue} -> wl_surface#103.commit() +[2618436.186] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) +[2618436.191] {Default Queue} -> wl_surface#967.commit() +[2618437.253] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) +[2618437.260] {Default Queue} -> wl_surface#967.commit() +[2618437.271] {Default Queue} -> wl_region#991.subtract(0, 0, 19, 48) +[2618437.276] {Default Queue} -> wl_region#991.add(-20, -49, 19, 48) +[2618437.280] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2618437.285] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2618437.382] {Default Queue} -> wl_region#991.subtract(0, 0, 19, 48) +[2618437.387] {Default Queue} -> wl_region#991.add(-20, -49, 19, 48) +[2618437.392] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2618437.396] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2618437.402] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618437.407] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618437.476] {Default Queue} -> wl_region#991.subtract(0, 0, 19, 48) +[2618437.482] {Default Queue} -> wl_region#991.add(-20, -49, 19, 48) +[2618437.486] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2618437.490] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2618437.495] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618437.500] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618437.505] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) +[2618437.510] {Default Queue} -> wl_surface#967.commit() +[2618437.514] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) +[2618437.518] {Default Queue} -> wl_surface#967.commit() +[2618437.524] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) +[2618437.528] {Default Queue} -> wl_surface#967.commit() +[2618437.535] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) +[2618437.539] {Default Queue} -> wl_surface#1095.commit() +[2618438.601] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) +[2618438.606] {Default Queue} -> wl_surface#1095.commit() +[2618438.613] {Default Queue} -> wl_region#1119.subtract(0, 0, 19, 48) +[2618438.618] {Default Queue} -> wl_region#1119.add(-20, -49, 19, 48) +[2618438.622] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618438.627] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618438.636] {Default Queue} -> wl_region#1119.subtract(0, 0, 19, 48) +[2618438.641] {Default Queue} -> wl_region#1119.add(-20, -49, 19, 48) +[2618438.645] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618438.649] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618438.654] {Default Queue} -> wl_region#1119.subtract(0, 0, 19, 48) +[2618438.659] {Default Queue} -> wl_region#1119.add(-20, -49, 19, 48) +[2618438.663] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618438.667] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618438.672] {Default Queue} -> wl_region#1119.subtract(0, 0, 19, 48) +[2618438.676] {Default Queue} -> wl_region#1119.add(-20, -49, 19, 48) +[2618438.681] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618438.685] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618438.689] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) +[2618438.694] {Default Queue} -> wl_surface#1095.commit() +[2618438.698] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) +[2618438.702] {Default Queue} -> wl_surface#1095.commit() +[2618438.708] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) +[2618438.712] {Default Queue} -> wl_surface#1095.commit() +[2618438.719] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) +[2618438.724] {Default Queue} -> wl_surface#1127.commit() +[2618439.789] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) +[2618439.797] {Default Queue} -> wl_surface#1127.commit() +[2618439.803] {Default Queue} -> wl_region#1151.subtract(0, 0, 19, 48) +[2618439.808] {Default Queue} -> wl_region#1151.add(-20, -49, 19, 48) +[2618439.812] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618439.816] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618439.823] {Default Queue} -> wl_region#1151.subtract(0, 0, 19, 48) +[2618439.828] {Default Queue} -> wl_region#1151.add(-20, -49, 19, 48) +[2618439.832] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618439.836] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618439.841] {Default Queue} -> wl_region#1151.subtract(0, 0, 19, 48) +[2618439.845] {Default Queue} -> wl_region#1151.add(-20, -49, 19, 48) +[2618439.849] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618439.853] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618439.858] {Default Queue} -> wl_region#1151.subtract(0, 0, 19, 48) +[2618439.867] {Default Queue} -> wl_region#1151.add(-20, -49, 19, 48) +[2618439.872] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618439.876] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618439.880] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) +[2618439.885] {Default Queue} -> wl_surface#1127.commit() +[2618439.889] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) +[2618439.893] {Default Queue} -> wl_surface#1127.commit() +[2618439.899] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) +[2618439.904] {Default Queue} -> wl_surface#1127.commit() +[2618439.910] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) +[2618439.914] {Default Queue} -> wl_surface#1159.commit() +[2618440.981] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) +[2618441.000] {Default Queue} -> wl_surface#1159.commit() +[2618441.014] {Default Queue} -> wl_region#1183.subtract(0, 0, 19, 48) +[2618441.020] {Default Queue} -> wl_region#1183.add(-20, -49, 19, 48) +[2618441.026] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618441.032] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618441.044] {Default Queue} -> wl_region#1183.subtract(0, 0, 19, 48) +[2618441.051] {Default Queue} -> wl_region#1183.add(-20, -49, 19, 48) +[2618441.056] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618441.062] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618441.069] {Default Queue} -> wl_region#1183.subtract(0, 0, 19, 48) +[2618441.075] {Default Queue} -> wl_region#1183.add(-20, -49, 19, 48) +[2618441.080] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618441.085] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618441.092] {Default Queue} -> wl_region#1183.subtract(0, 0, 19, 48) +[2618441.097] {Default Queue} -> wl_region#1183.add(-20, -49, 19, 48) +[2618441.102] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618441.107] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618441.113] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) +[2618441.119] {Default Queue} -> wl_surface#1159.commit() +[2618441.124] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) +[2618441.130] {Default Queue} -> wl_surface#1159.commit() +[2618441.138] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) +[2618441.144] {Default Queue} -> wl_surface#1159.commit() +[2618441.151] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) +[2618441.157] {Default Queue} -> wl_surface#1191.commit() +[2618442.183] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) +[2618442.196] {Default Queue} -> wl_surface#1191.commit() +[2618442.209] {Default Queue} -> wl_region#1215.subtract(0, 0, 19, 48) +[2618442.219] {Default Queue} -> wl_region#1215.add(-20, -49, 19, 48) +[2618442.227] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618442.231] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618442.241] {Default Queue} -> wl_region#1215.subtract(0, 0, 19, 48) +[2618442.247] {Default Queue} -> wl_region#1215.add(-20, -49, 19, 48) +[2618442.251] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618442.256] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618442.261] {Default Queue} -> wl_region#1215.subtract(0, 0, 19, 48) +[2618442.265] {Default Queue} -> wl_region#1215.add(-20, -49, 19, 48) +[2618442.270] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618442.274] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618442.279] {Default Queue} -> wl_region#1215.subtract(0, 0, 19, 48) +[2618442.283] {Default Queue} -> wl_region#1215.add(-20, -49, 19, 48) +[2618442.287] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618442.291] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618442.296] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) +[2618442.300] {Default Queue} -> wl_surface#1191.commit() +[2618442.305] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) +[2618442.309] {Default Queue} -> wl_surface#1191.commit() +[2618442.316] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) +[2618442.320] {Default Queue} -> wl_surface#1191.commit() +[2618442.326] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) +[2618442.331] {Default Queue} -> wl_surface#1223.commit() +[2618443.393] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) +[2618443.399] {Default Queue} -> wl_surface#1223.commit() +[2618443.405] {Default Queue} -> wl_region#1247.subtract(0, 0, 19, 48) +[2618443.410] {Default Queue} -> wl_region#1247.add(-20, -49, 19, 48) +[2618443.414] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618443.418] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618443.426] {Default Queue} -> wl_region#1247.subtract(0, 0, 19, 48) +[2618443.430] {Default Queue} -> wl_region#1247.add(-20, -49, 19, 48) +[2618443.434] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618443.438] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618443.443] {Default Queue} -> wl_region#1247.subtract(0, 0, 19, 48) +[2618443.448] {Default Queue} -> wl_region#1247.add(-20, -49, 19, 48) +[2618443.452] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618443.456] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618443.461] {Default Queue} -> wl_region#1247.subtract(0, 0, 19, 48) +[2618443.465] {Default Queue} -> wl_region#1247.add(-20, -49, 19, 48) +[2618443.469] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618443.473] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618443.478] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) +[2618443.482] {Default Queue} -> wl_surface#1223.commit() +[2618443.486] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) +[2618443.490] {Default Queue} -> wl_surface#1223.commit() +[2618443.496] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) +[2618443.500] {Default Queue} -> wl_surface#1223.commit() +[2618443.506] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) +[2618443.511] {Default Queue} -> wl_surface#1063.commit() +[2618444.572] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) +[2618444.578] {Default Queue} -> wl_surface#1063.commit() +[2618444.585] {Default Queue} -> wl_region#1087.subtract(0, 0, 19, 48) +[2618444.589] {Default Queue} -> wl_region#1087.add(-20, -49, 19, 48) +[2618444.594] {Default Queue} -> wl_surface#1063.set_opaque_region(wl_region#1088) +[2618444.598] {Default Queue} -> wl_surface#1063.set_input_region(wl_region#1087) +[2618444.606] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) +[2618444.612] {Default Queue} -> wl_surface#1063.commit() +[2618444.617] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) +[2618444.621] {Default Queue} -> wl_surface#1063.commit() +[2618444.627] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) +[2618444.631] {Default Queue} -> wl_surface#1063.commit() +[2618444.638] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) +[2618444.642] {Default Queue} -> wl_surface#1287.commit() +[2618445.707] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) +[2618445.719] {Default Queue} -> wl_surface#1287.commit() +[2618445.733] {Default Queue} -> wl_region#1311.subtract(0, 0, 19, 48) +[2618445.741] {Default Queue} -> wl_region#1311.add(-20, -49, 19, 48) +[2618445.747] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2618445.752] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2618445.915] {Default Queue} -> wl_region#1311.subtract(0, 0, 19, 48) +[2618445.923] {Default Queue} -> wl_region#1311.add(-20, -49, 19, 48) +[2618445.929] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2618445.934] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2618445.943] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618445.948] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618446.072] {Default Queue} -> wl_region#1311.subtract(0, 0, 19, 48) +[2618446.087] {Default Queue} -> wl_region#1311.add(-20, -49, 19, 48) +[2618446.092] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2618446.098] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2618446.105] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618446.110] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618446.117] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) +[2618446.123] {Default Queue} -> wl_surface#1287.commit() +[2618446.128] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) +[2618446.134] {Default Queue} -> wl_surface#1287.commit() +[2618446.142] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) +[2618446.149] {Default Queue} -> wl_surface#1287.commit() +[2618446.157] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) +[2618446.162] {Default Queue} -> wl_surface#1319.commit() +[2618447.194] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) +[2618447.207] {Default Queue} -> wl_surface#1319.commit() +[2618447.220] {Default Queue} -> wl_region#1343.subtract(0, 0, 19, 48) +[2618447.226] {Default Queue} -> wl_region#1343.add(-20, -49, 19, 48) +[2618447.231] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2618447.236] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2618447.350] {Default Queue} -> wl_region#1343.subtract(0, 0, 19, 48) +[2618447.356] {Default Queue} -> wl_region#1343.add(-20, -49, 19, 48) +[2618447.361] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2618447.365] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2618447.372] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618447.376] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618447.461] {Default Queue} -> wl_region#1343.subtract(0, 0, 19, 48) +[2618447.467] {Default Queue} -> wl_region#1343.add(-20, -49, 19, 48) +[2618447.471] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2618447.475] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2618447.481] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618447.486] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618447.492] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) +[2618447.496] {Default Queue} -> wl_surface#1319.commit() +[2618447.500] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) +[2618447.505] {Default Queue} -> wl_surface#1319.commit() +[2618447.512] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) +[2618447.520] {Default Queue} -> wl_surface#1319.commit() +[2618447.529] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) +[2618447.534] {Default Queue} -> wl_surface#1351.commit() +[2618448.596] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) +[2618448.601] {Default Queue} -> wl_surface#1351.commit() +[2618448.609] {Default Queue} -> wl_region#1375.subtract(0, 0, 19, 48) +[2618448.614] {Default Queue} -> wl_region#1375.add(-20, -49, 19, 48) +[2618448.618] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2618448.622] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2618448.716] {Default Queue} -> wl_region#1375.subtract(0, 0, 19, 48) +[2618448.722] {Default Queue} -> wl_region#1375.add(-20, -49, 19, 48) +[2618448.726] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2618448.730] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2618448.736] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618448.740] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618448.823] {Default Queue} -> wl_region#1375.subtract(0, 0, 19, 48) +[2618448.828] {Default Queue} -> wl_region#1375.add(-20, -49, 19, 48) +[2618448.832] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2618448.837] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2618448.842] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618448.846] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618448.851] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) +[2618448.855] {Default Queue} -> wl_surface#1351.commit() +[2618448.860] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) +[2618448.869] {Default Queue} -> wl_surface#1351.commit() +[2618448.875] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) +[2618448.879] {Default Queue} -> wl_surface#1351.commit() +[2618448.885] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) +[2618448.890] {Default Queue} -> wl_surface#1383.commit() +[2618449.951] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) +[2618449.957] {Default Queue} -> wl_surface#1383.commit() +[2618449.964] {Default Queue} -> wl_region#1407.subtract(0, 0, 19, 48) +[2618449.969] {Default Queue} -> wl_region#1407.add(-20, -49, 19, 48) +[2618449.973] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2618449.978] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2618450.068] {Default Queue} -> wl_region#1407.subtract(0, 0, 19, 48) +[2618450.074] {Default Queue} -> wl_region#1407.add(-20, -49, 19, 48) +[2618450.078] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2618450.083] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2618450.088] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618450.092] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618450.169] {Default Queue} -> wl_region#1407.subtract(0, 0, 19, 48) +[2618450.175] {Default Queue} -> wl_region#1407.add(-20, -49, 19, 48) +[2618450.179] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2618450.183] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2618450.189] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618450.193] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618450.198] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) +[2618450.203] {Default Queue} -> wl_surface#1383.commit() +[2618450.207] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) +[2618450.211] {Default Queue} -> wl_surface#1383.commit() +[2618450.217] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) +[2618450.221] {Default Queue} -> wl_surface#1383.commit() +[2618450.227] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) +[2618450.232] {Default Queue} -> wl_surface#1415.commit() +[2618451.298] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) +[2618451.315] {Default Queue} -> wl_surface#1415.commit() +[2618451.333] {Default Queue} -> wl_region#1439.subtract(0, 0, 19, 48) +[2618451.339] {Default Queue} -> wl_region#1439.add(-20, -49, 19, 48) +[2618451.345] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2618451.350] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2618451.483] {Default Queue} -> wl_region#1439.subtract(0, 0, 19, 48) +[2618451.491] {Default Queue} -> wl_region#1439.add(-20, -49, 19, 48) +[2618451.496] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2618451.502] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2618451.510] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618451.516] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618451.615] {Default Queue} -> wl_region#1439.subtract(0, 0, 19, 48) +[2618451.621] {Default Queue} -> wl_region#1439.add(-20, -49, 19, 48) +[2618451.625] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2618451.630] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2618451.635] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618451.640] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618451.645] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) +[2618451.649] {Default Queue} -> wl_surface#1415.commit() +[2618451.654] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) +[2618451.658] {Default Queue} -> wl_surface#1415.commit() +[2618451.664] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) +[2618451.669] {Default Queue} -> wl_surface#1415.commit() +[2618451.675] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) +[2618451.680] {Default Queue} -> wl_surface#1255.commit() +[2618452.742] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) +[2618452.748] {Default Queue} -> wl_surface#1255.commit() +[2618452.756] {Default Queue} -> wl_region#1279.subtract(0, 0, 19, 48) +[2618452.761] {Default Queue} -> wl_region#1279.add(-20, -49, 19, 48) +[2618452.765] {Default Queue} -> wl_surface#1255.set_opaque_region(wl_region#1280) +[2618452.769] {Default Queue} -> wl_surface#1255.set_input_region(wl_region#1279) +[2618452.775] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) +[2618452.779] {Default Queue} -> wl_surface#1255.commit() +[2618452.783] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) +[2618452.788] {Default Queue} -> wl_surface#1255.commit() +[2618452.794] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) +[2618452.799] {Default Queue} -> wl_surface#1255.commit() +[2618452.803] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2618452.808] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618452.814] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) +[2618452.819] {Default Queue} -> wl_surface#1031.commit() +[2618453.866] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) +[2618453.872] {Default Queue} -> wl_surface#1031.commit() +[2618453.878] {Default Queue} -> wl_region#1055.subtract(0, 0, 19, 48) +[2618453.883] {Default Queue} -> wl_region#1055.add(-20, -49, 19, 48) +[2618453.887] {Default Queue} -> wl_surface#1031.set_opaque_region(wl_region#1056) +[2618453.891] {Default Queue} -> wl_surface#1031.set_input_region(wl_region#1055) +[2618453.896] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) +[2618453.900] {Default Queue} -> wl_surface#1031.commit() +[2618453.904] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) +[2618453.909] {Default Queue} -> wl_surface#1031.commit() +[2618453.914] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) +[2618453.919] {Default Queue} -> wl_surface#1031.commit() +[2618453.923] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2618453.928] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2618453.932] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618453.938] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) +[2618453.946] {Default Queue} -> wl_surface#999.commit() +[2618455.009] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) +[2618455.015] {Default Queue} -> wl_surface#999.commit() +[2618455.021] {Default Queue} -> wl_region#1023.subtract(0, 0, 19, 48) +[2618455.026] {Default Queue} -> wl_region#1023.add(-20, -49, 19, 48) +[2618455.030] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) +[2618455.034] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) +[2618455.039] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) +[2618455.043] {Default Queue} -> wl_surface#999.commit() +[2618455.048] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) +[2618455.052] {Default Queue} -> wl_surface#999.commit() +[2618455.058] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) +[2618455.062] {Default Queue} -> wl_surface#999.commit() +[2618455.066] {Default Queue} -> wl_region#959.subtract(0, 0, 2, 2) +[2618455.072] {Default Queue} -> wl_region#991.subtract(0, 0, 19, 48) +[2618455.077] {Default Queue} -> wl_region#991.add(-20, -49, 19, 48) +[2618455.081] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2618455.085] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2618455.170] {Default Queue} -> wl_region#991.subtract(0, 0, 19, 48) +[2618455.175] {Default Queue} -> wl_region#991.add(-20, -49, 19, 48) +[2618455.179] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2618455.184] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2618455.190] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618455.194] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618455.259] {Default Queue} -> wl_region#991.subtract(0, 0, 19, 48) +[2618455.264] {Default Queue} -> wl_region#991.add(-20, -49, 19, 48) +[2618455.268] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2618455.272] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2618455.278] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618455.282] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618455.288] {Default Queue} -> wl_region#1023.subtract(0, 0, 19, 48) +[2618455.292] {Default Queue} -> wl_region#1023.add(-20, -49, 19, 48) +[2618455.296] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) +[2618455.301] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) +[2618455.305] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) +[2618455.310] {Default Queue} -> wl_region#959.subtract(0, 0, 5, 5) +[2618455.314] {Default Queue} -> wl_region#959.add(0, 0, 0, 0) +[2618455.318] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) +[2618455.322] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) +[2618455.327] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618455.331] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) +[2618455.335] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) +[2618455.339] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) +[2618455.344] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) +[2618455.348] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) +[2618455.352] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2618455.357] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618455.361] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618455.365] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618455.370] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618455.374] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618455.378] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618455.382] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2618455.387] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) +[2618455.391] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) +[2618455.406] {Default Queue} -> wl_buffer#957.destroy() +[2618455.411] {Default Queue} -> wl_buffer#958.destroy() +[2618455.419] {Default Queue} -> wl_shm_pool#955.destroy() +[2618455.426] {Default Queue} -> wl_shm_pool#956.destroy() +[2618455.481] {Default Queue} -> wl_shm#943.create_pool(new id wl_shm_pool#60, fd 583, 16) +[2618455.490] {Default Queue} -> wl_shm#943.create_pool(new id wl_shm_pool#59, fd 584, 16) +[2618455.496] {Default Queue} -> wl_shm_pool#60.create_buffer(new id wl_buffer#62, 0, 2, 2, 8, 0) +[2618455.501] {Default Queue} -> wl_shm_pool#59.create_buffer(new id wl_buffer#61, 0, 2, 2, 8, 0) +[2618455.511] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) +[2618455.518] {Default Queue} -> wl_surface#935.commit() +[2618455.526] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) +[2618455.532] {Default Queue} -> wl_surface#935.commit() +[2618455.541] {Default Queue} -> wl_region#959.subtract(0, 0, 22, 51) +[2618455.546] {Default Queue} -> wl_region#959.add(-20, -49, 19, 48) +[2618455.553] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) +[2618455.558] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) +[2618455.565] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) +[2618455.570] {Default Queue} -> wl_surface#935.commit() +[2618455.575] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2618455.580] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2618455.584] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618455.591] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) +[2618455.595] {Default Queue} -> wl_surface#935.commit() +[2618456.662] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) +[2618456.668] {Default Queue} -> wl_surface#935.commit() +[2618456.675] {Default Queue} -> wl_region#959.subtract(0, 0, 22, 51) +[2618456.679] {Default Queue} -> wl_region#959.add(-20, -49, 19, 48) +[2618456.683] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) +[2618456.687] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) +[2618456.692] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) +[2618456.697] {Default Queue} -> wl_surface#935.commit() +[2618456.701] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) +[2618456.705] {Default Queue} -> wl_surface#935.commit() +[2618456.711] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) +[2618456.715] {Default Queue} -> wl_surface#935.commit() +[2618456.720] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) +[2618456.724] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2618456.728] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2618456.732] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618456.738] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) +[2618456.743] {Default Queue} -> wl_surface#903.commit() +[2618457.805] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) +[2618457.812] {Default Queue} -> wl_surface#903.commit() +[2618457.820] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) +[2618457.825] {Default Queue} -> wl_region#927.add(0, 0, 2, 2) +[2618457.829] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618457.833] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618457.841] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) +[2618457.845] {Default Queue} -> wl_region#927.add(0, 0, 2, 2) +[2618457.850] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618457.854] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618457.859] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) +[2618457.869] {Default Queue} -> wl_region#927.add(0, 0, 2, 2) +[2618457.874] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618457.878] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618457.883] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) +[2618457.887] {Default Queue} -> wl_region#927.add(0, 0, 2, 2) +[2618457.891] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618457.895] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618457.906] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) +[2618457.913] {Default Queue} -> wl_region#927.add(0, 0, 2, 2) +[2618457.917] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618457.922] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618457.926] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) +[2618457.930] {Default Queue} -> wl_surface#903.commit() +[2618457.934] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) +[2618457.939] {Default Queue} -> wl_surface#903.commit() +[2618457.945] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) +[2618457.949] {Default Queue} -> wl_surface#903.commit() +[2618457.955] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) +[2618457.960] {Default Queue} -> wl_surface#1511.commit() +[2618459.021] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) +[2618459.027] {Default Queue} -> wl_surface#1511.commit() +[2618459.035] {Default Queue} -> wl_region#1535.subtract(0, 0, 19, 48) +[2618459.040] {Default Queue} -> wl_region#1535.add(-20, -49, 19, 48) +[2618459.044] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2618459.048] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2618459.148] {Default Queue} -> wl_region#1535.subtract(0, 0, 19, 48) +[2618459.154] {Default Queue} -> wl_region#1535.add(-20, -49, 19, 48) +[2618459.158] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2618459.162] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2618459.168] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618459.173] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618459.249] {Default Queue} -> wl_region#1535.subtract(0, 0, 19, 48) +[2618459.254] {Default Queue} -> wl_region#1535.add(-20, -49, 19, 48) +[2618459.259] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2618459.263] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2618459.268] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618459.272] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618459.277] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) +[2618459.282] {Default Queue} -> wl_surface#1511.commit() +[2618459.286] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) +[2618459.290] {Default Queue} -> wl_surface#1511.commit() +[2618459.296] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) +[2618459.300] {Default Queue} -> wl_surface#1511.commit() +[2618459.307] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) +[2618459.311] {Default Queue} -> wl_surface#1575.commit() +[2618460.373] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) +[2618460.382] {Default Queue} -> wl_surface#1575.commit() +[2618460.390] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618460.395] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618460.399] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618460.403] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618460.412] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618460.416] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618460.420] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618460.425] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618460.430] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618460.434] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618460.438] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618460.442] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618460.447] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618460.451] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618460.456] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618460.460] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618460.469] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618460.477] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618460.483] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618460.489] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618460.548] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618460.554] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618460.559] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618460.565] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618460.574] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618460.579] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618460.593] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618460.599] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618460.606] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618460.611] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618460.618] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618460.624] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618460.629] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618460.633] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618460.638] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618460.642] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618460.646] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618460.651] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618460.658] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618460.664] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618460.670] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618460.675] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618460.685] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618460.692] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618460.696] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618460.701] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618460.706] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618460.710] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618460.716] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618460.722] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618460.728] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618460.732] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618460.737] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618460.740] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618460.745] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618460.750] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618460.754] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618460.758] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618460.763] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) +[2618460.768] {Default Queue} -> wl_surface#1575.commit() +[2618460.772] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) +[2618460.776] {Default Queue} -> wl_surface#1575.commit() +[2618460.782] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) +[2618460.786] {Default Queue} -> wl_surface#1575.commit() +[2618460.792] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) +[2618460.797] {Default Queue} -> wl_surface#1543.commit() +[2618461.859] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) +[2618461.872] {Default Queue} -> wl_surface#1543.commit() +[2618461.881] {Default Queue} -> wl_region#1567.subtract(0, 0, 19, 48) +[2618461.886] {Default Queue} -> wl_region#1567.add(-20, -49, 19, 48) +[2618461.895] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) +[2618461.902] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) +[2618461.907] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) +[2618461.912] {Default Queue} -> wl_surface#1543.commit() +[2618461.916] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) +[2618461.920] {Default Queue} -> wl_surface#1543.commit() +[2618461.927] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) +[2618461.931] {Default Queue} -> wl_surface#1543.commit() +[2618461.936] {Default Queue} -> wl_region#1503.subtract(0, 0, 2, 2) +[2618461.942] {Default Queue} -> wl_region#1535.subtract(0, 0, 19, 48) +[2618461.947] {Default Queue} -> wl_region#1535.add(-20, -49, 19, 48) +[2618461.951] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2618461.955] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2618462.071] {Default Queue} -> wl_region#1535.subtract(0, 0, 19, 48) +[2618462.080] {Default Queue} -> wl_region#1535.add(-20, -49, 19, 48) +[2618462.086] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2618462.092] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2618462.101] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618462.108] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618462.183] {Default Queue} -> wl_region#1535.subtract(0, 0, 19, 48) +[2618462.188] {Default Queue} -> wl_region#1535.add(-20, -49, 19, 48) +[2618462.193] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2618462.197] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2618462.203] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618462.207] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618462.243] {Default Queue} -> wl_region#1567.subtract(0, 0, 19, 48) +[2618462.249] {Default Queue} -> wl_region#1567.add(-20, -49, 19, 48) +[2618462.255] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) +[2618462.259] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) +[2618462.265] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) +[2618462.269] {Default Queue} -> wl_region#1503.subtract(0, 0, 5, 5) +[2618462.273] {Default Queue} -> wl_region#1503.add(0, 0, 0, 0) +[2618462.277] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) +[2618462.281] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) +[2618462.285] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618462.290] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618462.294] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) +[2618462.298] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) +[2618462.317] {Default Queue} -> wl_buffer#1501.destroy() +[2618462.323] {Default Queue} -> wl_buffer#1502.destroy() +[2618462.327] {Default Queue} -> wl_shm_pool#1499.destroy() +[2618462.331] {Default Queue} -> wl_shm_pool#1500.destroy() +[2618462.375] {Default Queue} -> wl_shm#1487.create_pool(new id wl_shm_pool#3698, fd 583, 16) +[2618462.382] {Default Queue} -> wl_shm#1487.create_pool(new id wl_shm_pool#3699, fd 584, 16) +[2618462.387] {Default Queue} -> wl_shm_pool#3698.create_buffer(new id wl_buffer#3700, 0, 2, 2, 8, 0) +[2618462.392] {Default Queue} -> wl_shm_pool#3699.create_buffer(new id wl_buffer#3701, 0, 2, 2, 8, 0) +[2618462.399] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) +[2618462.404] {Default Queue} -> wl_surface#1479.commit() +[2618462.409] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) +[2618462.413] {Default Queue} -> wl_surface#1479.commit() +[2618462.421] {Default Queue} -> wl_region#1503.subtract(0, 0, 22, 51) +[2618462.426] {Default Queue} -> wl_region#1503.add(-20, -49, 19, 48) +[2618462.430] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) +[2618462.435] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) +[2618462.439] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) +[2618462.449] {Default Queue} -> wl_surface#1479.commit() +[2618462.459] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) +[2618462.463] {Default Queue} -> wl_surface#1479.commit() +[2618463.528] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) +[2618463.537] {Default Queue} -> wl_surface#1479.commit() +[2618463.545] {Default Queue} -> wl_region#1503.subtract(0, 0, 22, 51) +[2618463.550] {Default Queue} -> wl_region#1503.add(-20, -49, 19, 48) +[2618463.554] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) +[2618463.558] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) +[2618463.563] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) +[2618463.568] {Default Queue} -> wl_surface#1479.commit() +[2618463.572] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) +[2618463.576] {Default Queue} -> wl_surface#1479.commit() +[2618463.582] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) +[2618463.586] {Default Queue} -> wl_surface#1479.commit() +[2618463.591] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) +[2618463.597] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) +[2618463.601] {Default Queue} -> wl_surface#1447.commit() +[2618464.663] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) +[2618464.669] {Default Queue} -> wl_surface#1447.commit() +[2618464.677] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) +[2618464.681] {Default Queue} -> wl_region#1471.add(0, 0, 2, 2) +[2618464.686] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618464.690] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618464.697] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) +[2618464.702] {Default Queue} -> wl_region#1471.add(0, 0, 2, 2) +[2618464.706] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618464.710] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618464.715] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) +[2618464.720] {Default Queue} -> wl_region#1471.add(0, 0, 2, 2) +[2618464.724] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618464.728] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618464.733] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) +[2618464.738] {Default Queue} -> wl_region#1471.add(0, 0, 2, 2) +[2618464.742] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618464.746] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618464.753] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) +[2618464.757] {Default Queue} -> wl_region#1471.add(0, 0, 2, 2) +[2618464.761] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618464.765] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618464.770] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) +[2618464.774] {Default Queue} -> wl_surface#1447.commit() +[2618464.778] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) +[2618464.782] {Default Queue} -> wl_surface#1447.commit() +[2618464.788] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) +[2618464.792] {Default Queue} -> wl_surface#1447.commit() +[2618464.799] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) +[2618464.803] {Default Queue} -> wl_surface#1671.commit() +[2618465.869] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) +[2618465.880] {Default Queue} -> wl_surface#1671.commit() +[2618465.892] {Default Queue} -> wl_region#1695.subtract(0, 0, 19, 48) +[2618465.897] {Default Queue} -> wl_region#1695.add(-20, -49, 19, 48) +[2618465.901] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2618465.906] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2618465.972] {Default Queue} -> wl_region#1695.subtract(0, 0, 19, 48) +[2618465.978] {Default Queue} -> wl_region#1695.add(-20, -49, 19, 48) +[2618465.986] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2618465.994] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2618466.000] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618466.005] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618466.048] {Default Queue} -> wl_region#1695.subtract(0, 0, 19, 48) +[2618466.054] {Default Queue} -> wl_region#1695.add(-20, -49, 19, 48) +[2618466.058] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2618466.066] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2618466.071] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618466.075] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618466.081] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) +[2618466.085] {Default Queue} -> wl_surface#1671.commit() +[2618466.089] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) +[2618466.094] {Default Queue} -> wl_surface#1671.commit() +[2618466.100] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) +[2618466.104] {Default Queue} -> wl_surface#1671.commit() +[2618466.110] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) +[2618466.115] {Default Queue} -> wl_surface#1735.commit() +[2618467.176] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) +[2618467.182] {Default Queue} -> wl_surface#1735.commit() +[2618467.191] {Default Queue} -> wl_region#1759.subtract(0, 0, 19, 48) +[2618467.196] {Default Queue} -> wl_region#1759.add(-20, -49, 19, 48) +[2618467.200] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618467.204] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618467.213] {Default Queue} -> wl_region#1759.subtract(0, 0, 19, 48) +[2618467.217] {Default Queue} -> wl_region#1759.add(-20, -49, 19, 48) +[2618467.221] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618467.256] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618467.261] {Default Queue} -> wl_region#1759.subtract(0, 0, 19, 48) +[2618467.266] {Default Queue} -> wl_region#1759.add(-20, -49, 19, 48) +[2618467.270] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618467.274] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618467.279] {Default Queue} -> wl_region#1759.subtract(0, 0, 19, 48) +[2618467.284] {Default Queue} -> wl_region#1759.add(-20, -49, 19, 48) +[2618467.288] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618467.292] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618467.297] {Default Queue} -> wl_region#1759.subtract(0, 0, 19, 48) +[2618467.301] {Default Queue} -> wl_region#1759.add(-20, -49, 19, 48) +[2618467.305] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618467.309] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618467.324] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) +[2618467.330] {Default Queue} -> wl_surface#1735.commit() +[2618467.334] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) +[2618467.338] {Default Queue} -> wl_surface#1735.commit() +[2618467.345] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) +[2618467.349] {Default Queue} -> wl_surface#1735.commit() +[2618467.355] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) +[2618467.359] {Default Queue} -> wl_surface#1703.commit() +[2618468.421] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) +[2618468.427] {Default Queue} -> wl_surface#1703.commit() +[2618468.433] {Default Queue} -> wl_region#1727.subtract(0, 0, 19, 48) +[2618468.438] {Default Queue} -> wl_region#1727.add(-20, -49, 19, 48) +[2618468.442] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) +[2618468.446] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) +[2618468.451] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) +[2618468.455] {Default Queue} -> wl_surface#1703.commit() +[2618468.464] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) +[2618468.471] {Default Queue} -> wl_surface#1703.commit() +[2618468.478] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) +[2618468.482] {Default Queue} -> wl_surface#1703.commit() +[2618468.487] {Default Queue} -> wl_region#1663.subtract(0, 0, 2, 2) +[2618468.494] {Default Queue} -> wl_region#1695.subtract(0, 0, 19, 48) +[2618468.499] {Default Queue} -> wl_region#1695.add(-20, -49, 19, 48) +[2618468.503] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2618468.507] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2618468.560] {Default Queue} -> wl_region#1695.subtract(0, 0, 19, 48) +[2618468.566] {Default Queue} -> wl_region#1695.add(-20, -49, 19, 48) +[2618468.570] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2618468.574] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2618468.581] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618468.586] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618468.625] {Default Queue} -> wl_region#1695.subtract(0, 0, 19, 48) +[2618468.630] {Default Queue} -> wl_region#1695.add(-20, -49, 19, 48) +[2618468.635] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2618468.639] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2618468.644] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618468.648] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618468.654] {Default Queue} -> wl_region#1727.subtract(0, 0, 19, 48) +[2618468.659] {Default Queue} -> wl_region#1727.add(-20, -49, 19, 48) +[2618468.663] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) +[2618468.667] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) +[2618468.672] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) +[2618468.677] {Default Queue} -> wl_region#1663.subtract(0, 0, 5, 5) +[2618468.681] {Default Queue} -> wl_region#1663.add(0, 0, 0, 0) +[2618468.686] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) +[2618468.691] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) +[2618468.696] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618468.700] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) +[2618468.704] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) +[2618468.709] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) +[2618468.724] {Default Queue} -> wl_buffer#1661.destroy() +[2618468.729] {Default Queue} -> wl_buffer#1662.destroy() +[2618468.734] {Default Queue} -> wl_shm_pool#1659.destroy() +[2618468.739] {Default Queue} -> wl_shm_pool#1660.destroy() +[2618468.784] {Default Queue} -> wl_shm#1647.create_pool(new id wl_shm_pool#3702, fd 583, 16) +[2618468.792] {Default Queue} -> wl_shm#1647.create_pool(new id wl_shm_pool#3703, fd 584, 16) +[2618468.799] {Default Queue} -> wl_shm_pool#3702.create_buffer(new id wl_buffer#3704, 0, 2, 2, 8, 0) +[2618468.804] {Default Queue} -> wl_shm_pool#3703.create_buffer(new id wl_buffer#3705, 0, 2, 2, 8, 0) +[2618468.815] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) +[2618468.820] {Default Queue} -> wl_surface#1639.commit() +[2618468.825] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) +[2618468.829] {Default Queue} -> wl_surface#1639.commit() +[2618468.836] {Default Queue} -> wl_region#1663.subtract(0, 0, 22, 51) +[2618468.840] {Default Queue} -> wl_region#1663.add(-20, -49, 19, 48) +[2618468.845] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) +[2618468.849] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) +[2618468.854] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) +[2618468.858] {Default Queue} -> wl_surface#1639.commit() +[2618468.872] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) +[2618468.876] {Default Queue} -> wl_surface#1639.commit() +[2618469.941] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) +[2618469.953] {Default Queue} -> wl_surface#1639.commit() +[2618469.963] {Default Queue} -> wl_region#1663.subtract(0, 0, 22, 51) +[2618469.968] {Default Queue} -> wl_region#1663.add(-20, -49, 19, 48) +[2618469.972] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) +[2618469.976] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) +[2618469.982] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) +[2618469.987] {Default Queue} -> wl_surface#1639.commit() +[2618469.991] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) +[2618469.995] {Default Queue} -> wl_surface#1639.commit() +[2618470.001] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) +[2618470.005] {Default Queue} -> wl_surface#1639.commit() +[2618470.010] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) +[2618470.016] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) +[2618470.021] {Default Queue} -> wl_surface#1607.commit() +[2618471.083] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) +[2618471.091] {Default Queue} -> wl_surface#1607.commit() +[2618471.101] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) +[2618471.105] {Default Queue} -> wl_region#1631.add(0, 0, 2, 2) +[2618471.109] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618471.113] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618471.121] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) +[2618471.126] {Default Queue} -> wl_region#1631.add(0, 0, 2, 2) +[2618471.130] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618471.134] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618471.140] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) +[2618471.144] {Default Queue} -> wl_region#1631.add(0, 0, 2, 2) +[2618471.148] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618471.152] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618471.157] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) +[2618471.162] {Default Queue} -> wl_region#1631.add(0, 0, 2, 2) +[2618471.166] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618471.170] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618471.176] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) +[2618471.181] {Default Queue} -> wl_region#1631.add(0, 0, 2, 2) +[2618471.185] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618471.189] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618471.194] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) +[2618471.198] {Default Queue} -> wl_surface#1607.commit() +[2618471.202] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) +[2618471.207] {Default Queue} -> wl_surface#1607.commit() +[2618471.213] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) +[2618471.217] {Default Queue} -> wl_surface#1607.commit() +[2618471.224] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) +[2618471.228] {Default Queue} -> wl_surface#1831.commit() +[2618472.290] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) +[2618472.296] {Default Queue} -> wl_surface#1831.commit() +[2618472.305] {Default Queue} -> wl_region#1855.subtract(0, 0, 19, 48) +[2618472.310] {Default Queue} -> wl_region#1855.add(-20, -49, 19, 48) +[2618472.314] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2618472.318] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2618472.398] {Default Queue} -> wl_region#1855.subtract(0, 0, 19, 48) +[2618472.403] {Default Queue} -> wl_region#1855.add(-20, -49, 19, 48) +[2618472.408] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2618472.412] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2618472.419] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618472.423] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618472.482] {Default Queue} -> wl_region#1855.subtract(0, 0, 19, 48) +[2618472.490] {Default Queue} -> wl_region#1855.add(-20, -49, 19, 48) +[2618472.494] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2618472.498] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2618472.503] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618472.508] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618472.513] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) +[2618472.517] {Default Queue} -> wl_surface#1831.commit() +[2618472.521] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) +[2618472.526] {Default Queue} -> wl_surface#1831.commit() +[2618472.532] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) +[2618472.537] {Default Queue} -> wl_surface#1831.commit() +[2618472.543] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) +[2618472.547] {Default Queue} -> wl_surface#1895.commit() +[2618473.610] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) +[2618473.617] {Default Queue} -> wl_surface#1895.commit() +[2618473.626] {Default Queue} -> wl_region#1919.subtract(0, 0, 19, 48) +[2618473.631] {Default Queue} -> wl_region#1919.add(-20, -49, 19, 48) +[2618473.635] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) +[2618473.639] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) +[2618473.645] {Default Queue} -> wl_region#1919.subtract(0, 0, 19, 48) +[2618473.650] {Default Queue} -> wl_region#1919.add(-20, -49, 19, 48) +[2618473.654] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) +[2618473.658] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) +[2618473.669] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618473.673] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618473.678] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) +[2618473.682] {Default Queue} -> wl_surface#1895.commit() +[2618473.686] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) +[2618473.691] {Default Queue} -> wl_surface#1895.commit() +[2618473.697] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) +[2618473.701] {Default Queue} -> wl_surface#1895.commit() +[2618473.707] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) +[2618473.712] {Default Queue} -> wl_surface#1863.commit() +[2618474.773] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) +[2618474.778] {Default Queue} -> wl_surface#1863.commit() +[2618474.785] {Default Queue} -> wl_region#1887.subtract(0, 0, 19, 48) +[2618474.789] {Default Queue} -> wl_region#1887.add(-20, -49, 19, 48) +[2618474.794] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) +[2618474.798] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) +[2618474.802] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) +[2618474.807] {Default Queue} -> wl_surface#1863.commit() +[2618474.811] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) +[2618474.815] {Default Queue} -> wl_surface#1863.commit() +[2618474.820] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) +[2618474.824] {Default Queue} -> wl_surface#1863.commit() +[2618474.829] {Default Queue} -> wl_region#1823.subtract(0, 0, 2, 2) +[2618474.835] {Default Queue} -> wl_region#1855.subtract(0, 0, 19, 48) +[2618474.840] {Default Queue} -> wl_region#1855.add(-20, -49, 19, 48) +[2618474.844] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2618474.848] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2618474.919] {Default Queue} -> wl_region#1855.subtract(0, 0, 19, 48) +[2618474.924] {Default Queue} -> wl_region#1855.add(-20, -49, 19, 48) +[2618474.928] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2618474.933] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2618474.938] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618474.942] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618474.995] {Default Queue} -> wl_region#1855.subtract(0, 0, 19, 48) +[2618475.003] {Default Queue} -> wl_region#1855.add(-20, -49, 19, 48) +[2618475.007] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2618475.011] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2618475.016] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618475.020] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618475.026] {Default Queue} -> wl_region#1887.subtract(0, 0, 19, 48) +[2618475.030] {Default Queue} -> wl_region#1887.add(-20, -49, 19, 48) +[2618475.035] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) +[2618475.039] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) +[2618475.043] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) +[2618475.048] {Default Queue} -> wl_region#1823.subtract(0, 0, 5, 5) +[2618475.052] {Default Queue} -> wl_region#1823.add(0, 0, 0, 0) +[2618475.057] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) +[2618475.061] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) +[2618475.065] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618475.069] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618475.073] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) +[2618475.078] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) +[2618475.094] {Default Queue} -> wl_buffer#1821.destroy() +[2618475.100] {Default Queue} -> wl_buffer#1822.destroy() +[2618475.104] {Default Queue} -> wl_shm_pool#1819.destroy() +[2618475.108] {Default Queue} -> wl_shm_pool#1820.destroy() +[2618475.150] {Default Queue} -> wl_shm#1807.create_pool(new id wl_shm_pool#3706, fd 583, 16) +[2618475.157] {Default Queue} -> wl_shm#1807.create_pool(new id wl_shm_pool#3707, fd 584, 16) +[2618475.162] {Default Queue} -> wl_shm_pool#3706.create_buffer(new id wl_buffer#3708, 0, 2, 2, 8, 0) +[2618475.166] {Default Queue} -> wl_shm_pool#3707.create_buffer(new id wl_buffer#3709, 0, 2, 2, 8, 0) +[2618475.173] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) +[2618475.178] {Default Queue} -> wl_surface#1799.commit() +[2618475.183] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) +[2618475.187] {Default Queue} -> wl_surface#1799.commit() +[2618475.194] {Default Queue} -> wl_region#1823.subtract(0, 0, 22, 51) +[2618475.199] {Default Queue} -> wl_region#1823.add(-20, -49, 19, 48) +[2618475.203] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) +[2618475.207] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) +[2618475.212] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) +[2618475.216] {Default Queue} -> wl_surface#1799.commit() +[2618475.223] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) +[2618475.227] {Default Queue} -> wl_surface#1799.commit() +[2618476.291] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) +[2618476.300] {Default Queue} -> wl_surface#1799.commit() +[2618476.308] {Default Queue} -> wl_region#1823.subtract(0, 0, 22, 51) +[2618476.312] {Default Queue} -> wl_region#1823.add(-20, -49, 19, 48) +[2618476.317] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) +[2618476.321] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) +[2618476.326] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) +[2618476.330] {Default Queue} -> wl_surface#1799.commit() +[2618476.334] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) +[2618476.339] {Default Queue} -> wl_surface#1799.commit() +[2618476.345] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) +[2618476.349] {Default Queue} -> wl_surface#1799.commit() +[2618476.354] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) +[2618476.360] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) +[2618476.364] {Default Queue} -> wl_surface#1772.commit() +[2618477.427] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) +[2618477.438] {Default Queue} -> wl_surface#1772.commit() +[2618477.449] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) +[2618477.454] {Default Queue} -> wl_region#1791.add(0, 0, 2, 2) +[2618477.459] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618477.463] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618477.471] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) +[2618477.476] {Default Queue} -> wl_region#1791.add(0, 0, 2, 2) +[2618477.483] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618477.487] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618477.492] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) +[2618477.497] {Default Queue} -> wl_region#1791.add(0, 0, 2, 2) +[2618477.501] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618477.506] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618477.511] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) +[2618477.515] {Default Queue} -> wl_region#1791.add(0, 0, 2, 2) +[2618477.519] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618477.523] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618477.530] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) +[2618477.534] {Default Queue} -> wl_region#1791.add(0, 0, 2, 2) +[2618477.539] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618477.543] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618477.547] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) +[2618477.552] {Default Queue} -> wl_surface#1772.commit() +[2618477.556] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) +[2618477.560] {Default Queue} -> wl_surface#1772.commit() +[2618477.566] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) +[2618477.571] {Default Queue} -> wl_surface#1772.commit() +[2618477.577] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) +[2618477.582] {Default Queue} -> wl_surface#1991.commit() +[2618478.643] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) +[2618478.650] {Default Queue} -> wl_surface#1991.commit() +[2618478.660] {Default Queue} -> wl_region#2015.subtract(0, 0, 19, 48) +[2618478.664] {Default Queue} -> wl_region#2015.add(-20, -49, 19, 48) +[2618478.669] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2618478.673] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2618478.738] {Default Queue} -> wl_region#2015.subtract(0, 0, 19, 48) +[2618478.743] {Default Queue} -> wl_region#2015.add(-20, -49, 19, 48) +[2618478.747] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2618478.752] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2618478.758] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618478.762] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618478.805] {Default Queue} -> wl_region#2015.subtract(0, 0, 19, 48) +[2618478.810] {Default Queue} -> wl_region#2015.add(-20, -49, 19, 48) +[2618478.815] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2618478.819] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2618478.824] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618478.829] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618478.833] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) +[2618478.838] {Default Queue} -> wl_surface#1991.commit() +[2618478.842] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) +[2618478.846] {Default Queue} -> wl_surface#1991.commit() +[2618478.852] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) +[2618478.857] {Default Queue} -> wl_surface#1991.commit() +[2618478.868] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) +[2618478.873] {Default Queue} -> wl_surface#2055.commit() +[2618479.935] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) +[2618479.945] {Default Queue} -> wl_surface#2055.commit() +[2618479.957] {Default Queue} -> wl_region#2079.subtract(0, 0, 19, 48) +[2618479.961] {Default Queue} -> wl_region#2079.add(-20, -49, 19, 48) +[2618479.965] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618479.969] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618480.046] {Default Queue} -> wl_region#2079.subtract(0, 0, 19, 48) +[2618480.051] {Default Queue} -> wl_region#2079.add(-20, -49, 19, 48) +[2618480.055] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618480.059] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618480.065] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618480.069] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618480.258] {Default Queue} -> wl_region#2079.subtract(0, 0, 19, 48) +[2618480.263] {Default Queue} -> wl_region#2079.add(-20, -49, 19, 48) +[2618480.267] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618480.271] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618480.276] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618480.281] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618480.345] {Default Queue} -> wl_region#2079.subtract(0, 0, 19, 48) +[2618480.350] {Default Queue} -> wl_region#2079.add(-20, -49, 19, 48) +[2618480.355] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618480.359] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618480.364] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618480.368] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618480.519] {Default Queue} -> wl_region#2079.subtract(0, 0, 19, 48) +[2618480.524] {Default Queue} -> wl_region#2079.add(-20, -49, 19, 48) +[2618480.528] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618480.532] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618480.537] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618480.541] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618480.546] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) +[2618480.551] {Default Queue} -> wl_surface#2055.commit() +[2618480.555] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) +[2618480.559] {Default Queue} -> wl_surface#2055.commit() +[2618480.565] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) +[2618480.570] {Default Queue} -> wl_surface#2055.commit() +[2618480.576] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) +[2618480.580] {Default Queue} -> wl_surface#2023.commit() +[2618481.643] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) +[2618481.654] {Default Queue} -> wl_surface#2023.commit() +[2618481.663] {Default Queue} -> wl_region#2047.subtract(0, 0, 19, 48) +[2618481.669] {Default Queue} -> wl_region#2047.add(-20, -49, 19, 48) +[2618481.673] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) +[2618481.677] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) +[2618481.683] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) +[2618481.688] {Default Queue} -> wl_surface#2023.commit() +[2618481.692] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) +[2618481.696] {Default Queue} -> wl_surface#2023.commit() +[2618481.702] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) +[2618481.707] {Default Queue} -> wl_surface#2023.commit() +[2618481.711] {Default Queue} -> wl_region#1983.subtract(0, 0, 2, 2) +[2618481.718] {Default Queue} -> wl_region#2015.subtract(0, 0, 19, 48) +[2618481.722] {Default Queue} -> wl_region#2015.add(-20, -49, 19, 48) +[2618481.726] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2618481.731] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2618481.789] {Default Queue} -> wl_region#2015.subtract(0, 0, 19, 48) +[2618481.794] {Default Queue} -> wl_region#2015.add(-20, -49, 19, 48) +[2618481.803] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2618481.810] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2618481.816] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618481.821] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618481.869] {Default Queue} -> wl_region#2015.subtract(0, 0, 19, 48) +[2618481.874] {Default Queue} -> wl_region#2015.add(-20, -49, 19, 48) +[2618481.897] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2618481.912] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2618481.923] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618481.928] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618481.937] {Default Queue} -> wl_region#2047.subtract(0, 0, 19, 48) +[2618481.943] {Default Queue} -> wl_region#2047.add(-20, -49, 19, 48) +[2618481.949] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) +[2618481.955] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) +[2618481.962] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) +[2618481.969] {Default Queue} -> wl_region#1983.subtract(0, 0, 5, 5) +[2618481.975] {Default Queue} -> wl_region#1983.add(0, 0, 0, 0) +[2618481.981] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) +[2618481.986] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) +[2618481.993] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618481.999] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618482.005] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) +[2618482.011] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) +[2618482.030] {Default Queue} -> wl_buffer#1981.destroy() +[2618482.039] {Default Queue} -> wl_buffer#1982.destroy() +[2618482.044] {Default Queue} -> wl_shm_pool#1979.destroy() +[2618482.048] {Default Queue} -> wl_shm_pool#1980.destroy() +[2618482.104] {Default Queue} -> wl_shm#1967.create_pool(new id wl_shm_pool#3710, fd 583, 16) +[2618482.111] {Default Queue} -> wl_shm#1967.create_pool(new id wl_shm_pool#3711, fd 584, 16) +[2618482.116] {Default Queue} -> wl_shm_pool#3710.create_buffer(new id wl_buffer#3712, 0, 2, 2, 8, 0) +[2618482.121] {Default Queue} -> wl_shm_pool#3711.create_buffer(new id wl_buffer#3713, 0, 2, 2, 8, 0) +[2618482.129] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) +[2618482.134] {Default Queue} -> wl_surface#1959.commit() +[2618482.140] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) +[2618482.145] {Default Queue} -> wl_surface#1959.commit() +[2618482.154] {Default Queue} -> wl_region#1983.subtract(0, 0, 22, 51) +[2618482.159] {Default Queue} -> wl_region#1983.add(-20, -49, 19, 48) +[2618482.164] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) +[2618482.168] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) +[2618482.174] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) +[2618482.180] {Default Queue} -> wl_surface#1959.commit() +[2618482.189] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) +[2618482.195] {Default Queue} -> wl_surface#1959.commit() +[2618483.262] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) +[2618483.272] {Default Queue} -> wl_surface#1959.commit() +[2618483.280] {Default Queue} -> wl_region#1983.subtract(0, 0, 22, 51) +[2618483.285] {Default Queue} -> wl_region#1983.add(-20, -49, 19, 48) +[2618483.290] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) +[2618483.294] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) +[2618483.299] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) +[2618483.303] {Default Queue} -> wl_surface#1959.commit() +[2618483.307] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) +[2618483.311] {Default Queue} -> wl_surface#1959.commit() +[2618483.318] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) +[2618483.325] {Default Queue} -> wl_surface#1959.commit() +[2618483.352] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) +[2618483.369] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) +[2618483.378] {Default Queue} -> wl_surface#1927.commit() +[2618484.448] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) +[2618484.462] {Default Queue} -> wl_surface#1927.commit() +[2618484.474] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) +[2618484.479] {Default Queue} -> wl_region#1951.add(0, 0, 2, 2) +[2618484.484] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618484.489] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618484.498] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) +[2618484.503] {Default Queue} -> wl_region#1951.add(0, 0, 2, 2) +[2618484.507] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618484.511] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618484.517] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) +[2618484.521] {Default Queue} -> wl_region#1951.add(0, 0, 2, 2) +[2618484.526] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618484.531] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618484.536] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) +[2618484.540] {Default Queue} -> wl_region#1951.add(0, 0, 2, 2) +[2618484.544] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618484.548] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618484.555] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) +[2618484.559] {Default Queue} -> wl_region#1951.add(0, 0, 2, 2) +[2618484.564] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618484.568] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618484.573] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) +[2618484.577] {Default Queue} -> wl_surface#1927.commit() +[2618484.581] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) +[2618484.586] {Default Queue} -> wl_surface#1927.commit() +[2618484.592] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) +[2618484.597] {Default Queue} -> wl_surface#1927.commit() +[2618484.602] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) +[2618484.608] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2618484.612] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2618484.617] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618484.622] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) +[2618484.627] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) +[2618484.632] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) +[2618484.636] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) +[2618484.642] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) +[2618484.647] {Default Queue} -> wl_surface#871.commit() +[2618485.709] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) +[2618485.715] {Default Queue} -> wl_surface#871.commit() +[2618485.721] {Default Queue} -> wl_region#895.subtract(0, 0, 2, 2) +[2618485.726] {Default Queue} -> wl_region#895.add(0, 0, 2, 2) +[2618485.730] {Default Queue} -> wl_surface#871.set_opaque_region(wl_region#896) +[2618485.734] {Default Queue} -> wl_surface#871.set_input_region(wl_region#895) +[2618485.740] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) +[2618485.745] {Default Queue} -> wl_surface#871.commit() +[2618485.748] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) +[2618485.753] {Default Queue} -> wl_surface#871.commit() +[2618485.758] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) +[2618485.763] {Default Queue} -> wl_surface#871.commit() +[2618485.770] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) +[2618485.775] {Default Queue} -> wl_surface#2183.commit() +[2618486.843] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) +[2618486.858] {Default Queue} -> wl_surface#2183.commit() +[2618486.884] {Default Queue} -> wl_region#2207.subtract(0, 0, 19, 48) +[2618486.899] {Default Queue} -> wl_region#2207.add(-20, -49, 19, 48) +[2618486.909] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2618486.915] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2618487.037] {Default Queue} -> wl_region#2207.subtract(0, 0, 19, 48) +[2618487.047] {Default Queue} -> wl_region#2207.add(-20, -49, 19, 48) +[2618487.054] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2618487.060] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2618487.070] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618487.077] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618487.165] {Default Queue} -> wl_region#2207.subtract(0, 0, 19, 48) +[2618487.174] {Default Queue} -> wl_region#2207.add(-20, -49, 19, 48) +[2618487.180] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2618487.187] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2618487.195] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618487.202] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618487.211] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) +[2618487.217] {Default Queue} -> wl_surface#2183.commit() +[2618487.223] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) +[2618487.230] {Default Queue} -> wl_surface#2183.commit() +[2618487.239] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) +[2618487.246] {Default Queue} -> wl_surface#2183.commit() +[2618487.255] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618487.263] {Default Queue} -> wl_surface#2279.commit() +[2618488.329] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618488.339] {Default Queue} -> wl_surface#2279.commit() +[2618488.351] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618488.357] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618488.361] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618488.366] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618488.375] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618488.380] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618488.384] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618488.389] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618488.394] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618488.398] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618488.402] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618488.406] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618488.411] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618488.415] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618488.420] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618488.424] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618488.429] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618488.433] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618488.437] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618488.441] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618488.449] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618488.453] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618488.457] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618488.461] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618488.466] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618488.470] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618488.475] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618488.479] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618488.483] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618488.488] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618488.499] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618488.506] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618488.511] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618488.515] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618488.519] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618488.523] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618488.534] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618488.539] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618488.543] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618488.547] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618488.552] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618488.556] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618488.560] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618488.564] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618488.569] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618488.573] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618488.578] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618488.581] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618488.586] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618488.590] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618488.595] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618488.599] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618488.604] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618488.608] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618488.612] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618488.616] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618488.622] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618488.627] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618488.631] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618488.635] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618488.639] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618488.645] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618488.651] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618488.657] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618488.663] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618488.669] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618488.674] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618488.678] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618488.683] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618488.687] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618488.691] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618488.695] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618488.703] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618488.707] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618488.712] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618488.716] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618488.725] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618488.730] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618488.735] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618488.740] {Default Queue} -> wl_surface#2279.commit() +[2618488.744] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618488.748] {Default Queue} -> wl_surface#2279.commit() +[2618488.755] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618488.764] {Default Queue} -> wl_surface#2279.commit() +[2618488.770] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 2) +[2618488.776] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) +[2618488.780] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) +[2618488.784] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618488.788] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618488.793] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618488.808] {Default Queue} -> wl_buffer#2333.destroy() +[2618488.813] {Default Queue} -> wl_buffer#2334.destroy() +[2618488.818] {Default Queue} -> wl_shm_pool#2331.destroy() +[2618488.822] {Default Queue} -> wl_shm_pool#2332.destroy() +[2618488.875] {Default Queue} -> wl_shm#2319.create_pool(new id wl_shm_pool#3714, fd 583, 16) +[2618488.882] {Default Queue} -> wl_shm#2319.create_pool(new id wl_shm_pool#3715, fd 584, 16) +[2618488.887] {Default Queue} -> wl_shm_pool#3714.create_buffer(new id wl_buffer#3716, 0, 2, 2, 8, 0) +[2618488.892] {Default Queue} -> wl_shm_pool#3715.create_buffer(new id wl_buffer#3717, 0, 2, 2, 8, 0) +[2618488.899] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) +[2618488.904] {Default Queue} -> wl_surface#2311.commit() +[2618488.909] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) +[2618488.914] {Default Queue} -> wl_surface#2311.commit() +[2618488.922] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618488.928] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618488.933] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618488.937] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618488.948] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618488.952] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618488.957] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618488.961] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618488.966] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618488.970] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618488.974] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618488.978] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618488.983] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618488.988] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618488.992] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618488.996] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618489.001] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618489.005] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618489.010] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618489.014] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618489.018] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618489.023] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618489.027] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618489.031] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618489.075] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618489.080] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618489.085] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618489.090] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618489.095] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618489.100] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618489.109] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618489.113] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618489.118] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618489.122] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618489.127] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618489.135] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618489.142] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618489.146] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618489.151] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618489.155] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618489.159] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618489.163] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618489.169] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618489.173] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618489.177] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618489.181] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618489.186] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) +[2618489.190] {Default Queue} -> wl_surface#2311.commit() +[2618489.197] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) +[2618489.201] {Default Queue} -> wl_surface#2311.commit() +[2618490.268] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) +[2618490.277] {Default Queue} -> wl_surface#2311.commit() +[2618490.286] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618490.291] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618490.295] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618490.299] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618490.310] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618490.315] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618490.319] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618490.323] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618490.328] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618490.333] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618490.337] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618490.341] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618490.346] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618490.351] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618490.355] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618490.359] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618490.363] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618490.368] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618490.372] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618490.376] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618490.381] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618490.385] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618490.389] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618490.393] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618490.427] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618490.432] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618490.436] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618490.441] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618490.447] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618490.451] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618490.459] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618490.464] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618490.468] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618490.472] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618490.477] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618490.481] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618490.486] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618490.494] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618490.501] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618490.506] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618490.510] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618490.515] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618490.519] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618490.523] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618490.528] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618490.531] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618490.536] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) +[2618490.540] {Default Queue} -> wl_surface#2311.commit() +[2618490.544] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) +[2618490.548] {Default Queue} -> wl_surface#2311.commit() +[2618490.555] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) +[2618490.559] {Default Queue} -> wl_surface#2311.commit() +[2618490.565] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) +[2618490.569] {Default Queue} -> wl_surface#2247.commit() +[2618491.637] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) +[2618491.652] {Default Queue} -> wl_surface#2247.commit() +[2618491.665] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) +[2618491.671] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) +[2618491.678] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618491.684] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618491.698] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) +[2618491.705] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) +[2618491.711] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618491.717] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618491.724] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) +[2618491.730] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) +[2618491.736] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618491.742] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618491.748] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) +[2618491.755] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) +[2618491.761] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618491.766] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618491.772] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) +[2618491.778] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) +[2618491.784] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618491.790] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618491.927] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) +[2618491.939] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) +[2618491.945] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618491.952] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618491.962] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618491.968] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618491.977] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) +[2618491.984] {Default Queue} -> wl_surface#2247.commit() +[2618491.990] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) +[2618491.996] {Default Queue} -> wl_surface#2247.commit() +[2618492.005] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) +[2618492.012] {Default Queue} -> wl_surface#2247.commit() +[2618492.020] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) +[2618492.029] {Default Queue} -> wl_surface#2215.commit() +[2618493.100] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) +[2618493.115] {Default Queue} -> wl_surface#2215.commit() +[2618493.133] {Default Queue} -> wl_region#2239.subtract(0, 0, 19, 48) +[2618493.145] {Default Queue} -> wl_region#2239.add(-20, -49, 19, 48) +[2618493.151] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) +[2618493.157] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) +[2618493.165] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) +[2618493.171] {Default Queue} -> wl_surface#2215.commit() +[2618493.177] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) +[2618493.183] {Default Queue} -> wl_surface#2215.commit() +[2618493.192] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) +[2618493.198] {Default Queue} -> wl_surface#2215.commit() +[2618493.205] {Default Queue} -> wl_region#2175.subtract(0, 0, 2, 2) +[2618493.214] {Default Queue} -> wl_region#2207.subtract(0, 0, 19, 48) +[2618493.220] {Default Queue} -> wl_region#2207.add(-20, -49, 19, 48) +[2618493.226] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2618493.233] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2618493.351] {Default Queue} -> wl_region#2207.subtract(0, 0, 19, 48) +[2618493.361] {Default Queue} -> wl_region#2207.add(-20, -49, 19, 48) +[2618493.368] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2618493.374] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2618493.383] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618493.390] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618493.477] {Default Queue} -> wl_region#2207.subtract(0, 0, 19, 48) +[2618493.486] {Default Queue} -> wl_region#2207.add(-20, -49, 19, 48) +[2618493.491] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2618493.497] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2618493.505] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618493.511] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618493.519] {Default Queue} -> wl_region#2239.subtract(0, 0, 19, 48) +[2618493.525] {Default Queue} -> wl_region#2239.add(-20, -49, 19, 48) +[2618493.531] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) +[2618493.536] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) +[2618493.544] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) +[2618493.550] {Default Queue} -> wl_region#2175.subtract(0, 0, 5, 5) +[2618493.556] {Default Queue} -> wl_region#2175.add(0, 0, 0, 0) +[2618493.562] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) +[2618493.569] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) +[2618493.575] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618493.581] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618493.587] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618493.593] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618493.599] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) +[2618493.604] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) +[2618493.622] {Default Queue} -> wl_buffer#2173.destroy() +[2618493.629] {Default Queue} -> wl_buffer#2174.destroy() +[2618493.634] {Default Queue} -> wl_shm_pool#2171.destroy() +[2618493.639] {Default Queue} -> wl_shm_pool#2172.destroy() +[2618493.706] {Default Queue} -> wl_shm#2159.create_pool(new id wl_shm_pool#3718, fd 583, 16) +[2618493.716] {Default Queue} -> wl_shm#2159.create_pool(new id wl_shm_pool#3719, fd 584, 16) +[2618493.723] {Default Queue} -> wl_shm_pool#3718.create_buffer(new id wl_buffer#3720, 0, 2, 2, 8, 0) +[2618493.729] {Default Queue} -> wl_shm_pool#3719.create_buffer(new id wl_buffer#3721, 0, 2, 2, 8, 0) +[2618493.738] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) +[2618493.745] {Default Queue} -> wl_surface#2151.commit() +[2618493.752] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) +[2618493.758] {Default Queue} -> wl_surface#2151.commit() +[2618493.769] {Default Queue} -> wl_region#2175.subtract(0, 0, 22, 51) +[2618493.782] {Default Queue} -> wl_region#2175.add(-20, -49, 19, 48) +[2618493.791] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) +[2618493.797] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) +[2618493.804] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) +[2618493.810] {Default Queue} -> wl_surface#2151.commit() +[2618493.819] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) +[2618493.825] {Default Queue} -> wl_surface#2151.commit() +[2618494.871] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) +[2618494.883] {Default Queue} -> wl_surface#2151.commit() +[2618494.909] {Default Queue} -> wl_region#2175.subtract(0, 0, 22, 51) +[2618494.920] {Default Queue} -> wl_region#2175.add(-20, -49, 19, 48) +[2618494.926] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) +[2618494.931] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) +[2618494.937] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) +[2618494.942] {Default Queue} -> wl_surface#2151.commit() +[2618494.947] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) +[2618494.952] {Default Queue} -> wl_surface#2151.commit() +[2618494.959] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) +[2618494.964] {Default Queue} -> wl_surface#2151.commit() +[2618494.968] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) +[2618494.975] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) +[2618494.980] {Default Queue} -> wl_surface#2119.commit() +[2618496.043] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) +[2618496.052] {Default Queue} -> wl_surface#2119.commit() +[2618496.061] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) +[2618496.065] {Default Queue} -> wl_region#2143.add(0, 0, 2, 2) +[2618496.070] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618496.074] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618496.084] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) +[2618496.088] {Default Queue} -> wl_region#2143.add(0, 0, 2, 2) +[2618496.092] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618496.097] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618496.102] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) +[2618496.107] {Default Queue} -> wl_region#2143.add(0, 0, 2, 2) +[2618496.111] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618496.115] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618496.121] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) +[2618496.125] {Default Queue} -> wl_region#2143.add(0, 0, 2, 2) +[2618496.129] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618496.133] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618496.140] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) +[2618496.145] {Default Queue} -> wl_region#2143.add(0, 0, 2, 2) +[2618496.149] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618496.153] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618496.158] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) +[2618496.162] {Default Queue} -> wl_surface#2119.commit() +[2618496.167] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) +[2618496.171] {Default Queue} -> wl_surface#2119.commit() +[2618496.177] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) +[2618496.181] {Default Queue} -> wl_surface#2119.commit() +[2618496.189] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) +[2618496.193] {Default Queue} -> wl_surface#2407.commit() +[2618497.254] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) +[2618497.260] {Default Queue} -> wl_surface#2407.commit() +[2618497.269] {Default Queue} -> wl_region#2431.subtract(0, 0, 19, 48) +[2618497.274] {Default Queue} -> wl_region#2431.add(-20, -49, 19, 48) +[2618497.278] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2618497.286] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2618497.463] {Default Queue} -> wl_region#2431.subtract(0, 0, 19, 48) +[2618497.473] {Default Queue} -> wl_region#2431.add(-20, -49, 19, 48) +[2618497.478] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2618497.483] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2618497.490] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618497.495] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618497.590] {Default Queue} -> wl_region#2431.subtract(0, 0, 19, 48) +[2618497.596] {Default Queue} -> wl_region#2431.add(-20, -49, 19, 48) +[2618497.600] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2618497.604] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2618497.610] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618497.615] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618497.620] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) +[2618497.625] {Default Queue} -> wl_surface#2407.commit() +[2618497.629] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) +[2618497.633] {Default Queue} -> wl_surface#2407.commit() +[2618497.640] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) +[2618497.644] {Default Queue} -> wl_surface#2407.commit() +[2618497.652] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) +[2618497.656] {Default Queue} -> wl_surface#2471.commit() +[2618498.719] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) +[2618498.726] {Default Queue} -> wl_surface#2471.commit() +[2618498.743] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618498.748] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618498.752] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618498.756] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618498.764] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618498.768] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618498.772] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618498.776] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618498.781] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618498.786] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618498.790] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618498.794] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618498.799] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618498.803] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618498.808] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618498.812] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618498.817] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618498.821] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618498.826] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618498.829] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618498.836] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618498.840] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618498.845] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618498.849] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618498.854] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618498.858] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618498.868] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618498.872] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618498.876] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618498.881] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618498.885] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618498.893] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618498.901] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618498.905] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618498.909] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618498.913] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618498.919] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618498.923] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618498.928] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618498.931] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618498.938] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618498.942] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618498.946] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618498.950] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618498.955] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618498.960] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618498.964] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618498.968] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618498.973] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618498.977] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618498.981] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618498.985] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618498.990] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618498.994] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618498.998] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618499.002] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618499.008] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618499.012] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618499.016] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618499.021] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618499.025] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618499.030] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618499.034] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618499.039] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618499.043] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618499.048] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618499.052] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618499.056] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618499.060] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618499.065] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618499.069] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618499.074] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618499.078] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) +[2618499.083] {Default Queue} -> wl_surface#2471.commit() +[2618499.087] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) +[2618499.091] {Default Queue} -> wl_surface#2471.commit() +[2618499.098] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) +[2618499.102] {Default Queue} -> wl_surface#2471.commit() +[2618499.108] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) +[2618499.113] {Default Queue} -> wl_surface#2439.commit() +[2618500.171] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) +[2618500.185] {Default Queue} -> wl_surface#2439.commit() +[2618500.196] {Default Queue} -> wl_region#2463.subtract(0, 0, 19, 48) +[2618500.202] {Default Queue} -> wl_region#2463.add(-20, -49, 19, 48) +[2618500.206] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) +[2618500.226] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) +[2618500.236] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) +[2618500.241] {Default Queue} -> wl_surface#2439.commit() +[2618500.245] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) +[2618500.249] {Default Queue} -> wl_surface#2439.commit() +[2618500.256] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) +[2618500.260] {Default Queue} -> wl_surface#2439.commit() +[2618500.265] {Default Queue} -> wl_region#2399.subtract(0, 0, 2, 2) +[2618500.272] {Default Queue} -> wl_region#2431.subtract(0, 0, 19, 48) +[2618500.277] {Default Queue} -> wl_region#2431.add(-20, -49, 19, 48) +[2618500.281] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2618500.286] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2618500.415] {Default Queue} -> wl_region#2431.subtract(0, 0, 19, 48) +[2618500.421] {Default Queue} -> wl_region#2431.add(-20, -49, 19, 48) +[2618500.425] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2618500.430] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2618500.436] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618500.441] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618500.531] {Default Queue} -> wl_region#2431.subtract(0, 0, 19, 48) +[2618500.537] {Default Queue} -> wl_region#2431.add(-20, -49, 19, 48) +[2618500.541] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2618500.545] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2618500.551] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618500.555] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618500.561] {Default Queue} -> wl_region#2463.subtract(0, 0, 19, 48) +[2618500.566] {Default Queue} -> wl_region#2463.add(-20, -49, 19, 48) +[2618500.570] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) +[2618500.574] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) +[2618500.579] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) +[2618500.584] {Default Queue} -> wl_region#2399.subtract(0, 0, 5, 5) +[2618500.588] {Default Queue} -> wl_region#2399.add(0, 0, 0, 0) +[2618500.593] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) +[2618500.597] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) +[2618500.601] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618500.605] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) +[2618500.610] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) +[2618500.614] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) +[2618500.628] {Default Queue} -> wl_buffer#2397.destroy() +[2618500.634] {Default Queue} -> wl_buffer#2398.destroy() +[2618500.638] {Default Queue} -> wl_shm_pool#2395.destroy() +[2618500.643] {Default Queue} -> wl_shm_pool#2396.destroy() +[2618500.690] {Default Queue} -> wl_shm#2383.create_pool(new id wl_shm_pool#3722, fd 583, 16) +[2618500.697] {Default Queue} -> wl_shm#2383.create_pool(new id wl_shm_pool#3723, fd 584, 16) +[2618500.702] {Default Queue} -> wl_shm_pool#3722.create_buffer(new id wl_buffer#3724, 0, 2, 2, 8, 0) +[2618500.707] {Default Queue} -> wl_shm_pool#3723.create_buffer(new id wl_buffer#3725, 0, 2, 2, 8, 0) +[2618500.714] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) +[2618500.719] {Default Queue} -> wl_surface#2375.commit() +[2618500.724] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) +[2618500.729] {Default Queue} -> wl_surface#2375.commit() +[2618500.736] {Default Queue} -> wl_region#2399.subtract(0, 0, 22, 51) +[2618500.740] {Default Queue} -> wl_region#2399.add(-20, -49, 19, 48) +[2618500.745] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) +[2618500.749] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) +[2618500.754] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) +[2618500.758] {Default Queue} -> wl_surface#2375.commit() +[2618500.768] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) +[2618500.775] {Default Queue} -> wl_surface#2375.commit() +[2618501.840] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) +[2618501.846] {Default Queue} -> wl_surface#2375.commit() +[2618501.852] {Default Queue} -> wl_region#2399.subtract(0, 0, 22, 51) +[2618501.857] {Default Queue} -> wl_region#2399.add(-20, -49, 19, 48) +[2618501.862] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) +[2618501.866] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) +[2618501.878] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) +[2618501.882] {Default Queue} -> wl_surface#2375.commit() +[2618501.887] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) +[2618501.892] {Default Queue} -> wl_surface#2375.commit() +[2618501.898] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) +[2618501.902] {Default Queue} -> wl_surface#2375.commit() +[2618501.907] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) +[2618501.914] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) +[2618501.918] {Default Queue} -> wl_surface#2343.commit() +[2618502.980] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) +[2618502.987] {Default Queue} -> wl_surface#2343.commit() +[2618502.996] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) +[2618503.001] {Default Queue} -> wl_region#2367.add(0, 0, 2, 2) +[2618503.006] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618503.010] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618503.018] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) +[2618503.023] {Default Queue} -> wl_region#2367.add(0, 0, 2, 2) +[2618503.027] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618503.031] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618503.036] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) +[2618503.041] {Default Queue} -> wl_region#2367.add(0, 0, 2, 2) +[2618503.045] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618503.049] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618503.054] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) +[2618503.058] {Default Queue} -> wl_region#2367.add(0, 0, 2, 2) +[2618503.062] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618503.066] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618503.073] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) +[2618503.077] {Default Queue} -> wl_region#2367.add(0, 0, 2, 2) +[2618503.081] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618503.085] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618503.090] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) +[2618503.095] {Default Queue} -> wl_surface#2343.commit() +[2618503.099] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) +[2618503.103] {Default Queue} -> wl_surface#2343.commit() +[2618503.109] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) +[2618503.114] {Default Queue} -> wl_surface#2343.commit() +[2618503.121] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) +[2618503.126] {Default Queue} -> wl_surface#2567.commit() +[2618504.187] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) +[2618504.192] {Default Queue} -> wl_surface#2567.commit() +[2618504.202] {Default Queue} -> wl_region#2591.subtract(0, 0, 19, 48) +[2618504.207] {Default Queue} -> wl_region#2591.add(-20, -49, 19, 48) +[2618504.211] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2618504.215] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2618504.348] {Default Queue} -> wl_region#2591.subtract(0, 0, 19, 48) +[2618504.354] {Default Queue} -> wl_region#2591.add(-20, -49, 19, 48) +[2618504.359] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2618504.367] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2618504.376] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618504.380] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618504.474] {Default Queue} -> wl_region#2591.subtract(0, 0, 19, 48) +[2618504.480] {Default Queue} -> wl_region#2591.add(-20, -49, 19, 48) +[2618504.484] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2618504.488] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2618504.493] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618504.497] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618504.503] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) +[2618504.507] {Default Queue} -> wl_surface#2567.commit() +[2618504.511] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) +[2618504.515] {Default Queue} -> wl_surface#2567.commit() +[2618504.521] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) +[2618504.526] {Default Queue} -> wl_surface#2567.commit() +[2618504.532] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) +[2618504.536] {Default Queue} -> wl_surface#2631.commit() +[2618505.597] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) +[2618505.603] {Default Queue} -> wl_surface#2631.commit() +[2618505.613] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) +[2618505.618] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) +[2618505.623] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618505.628] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618505.635] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) +[2618505.639] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) +[2618505.644] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618505.648] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618505.653] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) +[2618505.657] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) +[2618505.661] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618505.665] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618505.670] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) +[2618505.675] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) +[2618505.679] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618505.683] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618505.688] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) +[2618505.692] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) +[2618505.696] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618505.700] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618505.707] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) +[2618505.711] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) +[2618505.716] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618505.720] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618505.725] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) +[2618505.729] {Default Queue} -> wl_surface#2631.commit() +[2618505.733] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) +[2618505.737] {Default Queue} -> wl_surface#2631.commit() +[2618505.742] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) +[2618505.746] {Default Queue} -> wl_surface#2631.commit() +[2618505.752] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) +[2618505.756] {Default Queue} -> wl_surface#2599.commit() +[2618506.818] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) +[2618506.824] {Default Queue} -> wl_surface#2599.commit() +[2618506.831] {Default Queue} -> wl_region#2623.subtract(0, 0, 19, 48) +[2618506.836] {Default Queue} -> wl_region#2623.add(-20, -49, 19, 48) +[2618506.840] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) +[2618506.847] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) +[2618506.855] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) +[2618506.859] {Default Queue} -> wl_surface#2599.commit() +[2618506.870] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) +[2618506.874] {Default Queue} -> wl_surface#2599.commit() +[2618506.880] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) +[2618506.884] {Default Queue} -> wl_surface#2599.commit() +[2618506.889] {Default Queue} -> wl_region#2559.subtract(0, 0, 2, 2) +[2618506.895] {Default Queue} -> wl_region#2591.subtract(0, 0, 19, 48) +[2618506.900] {Default Queue} -> wl_region#2591.add(-20, -49, 19, 48) +[2618506.904] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2618506.908] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2618507.017] {Default Queue} -> wl_region#2591.subtract(0, 0, 19, 48) +[2618507.023] {Default Queue} -> wl_region#2591.add(-20, -49, 19, 48) +[2618507.027] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2618507.032] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2618507.037] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618507.042] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618507.128] {Default Queue} -> wl_region#2591.subtract(0, 0, 19, 48) +[2618507.134] {Default Queue} -> wl_region#2591.add(-20, -49, 19, 48) +[2618507.138] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2618507.142] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2618507.147] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618507.151] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618507.157] {Default Queue} -> wl_region#2623.subtract(0, 0, 19, 48) +[2618507.162] {Default Queue} -> wl_region#2623.add(-20, -49, 19, 48) +[2618507.166] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) +[2618507.170] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) +[2618507.175] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) +[2618507.180] {Default Queue} -> wl_region#2559.subtract(0, 0, 5, 5) +[2618507.184] {Default Queue} -> wl_region#2559.add(0, 0, 0, 0) +[2618507.189] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) +[2618507.192] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) +[2618507.197] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618507.202] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) +[2618507.206] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) +[2618507.210] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) +[2618507.225] {Default Queue} -> wl_buffer#2557.destroy() +[2618507.232] {Default Queue} -> wl_buffer#2558.destroy() +[2618507.236] {Default Queue} -> wl_shm_pool#2555.destroy() +[2618507.240] {Default Queue} -> wl_shm_pool#2556.destroy() +[2618507.286] {Default Queue} -> wl_shm#2543.create_pool(new id wl_shm_pool#3726, fd 583, 16) +[2618507.293] {Default Queue} -> wl_shm#2543.create_pool(new id wl_shm_pool#3727, fd 584, 16) +[2618507.298] {Default Queue} -> wl_shm_pool#3726.create_buffer(new id wl_buffer#3728, 0, 2, 2, 8, 0) +[2618507.303] {Default Queue} -> wl_shm_pool#3727.create_buffer(new id wl_buffer#3729, 0, 2, 2, 8, 0) +[2618507.313] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) +[2618507.317] {Default Queue} -> wl_surface#2535.commit() +[2618507.323] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) +[2618507.327] {Default Queue} -> wl_surface#2535.commit() +[2618507.334] {Default Queue} -> wl_region#2559.subtract(0, 0, 22, 51) +[2618507.338] {Default Queue} -> wl_region#2559.add(-20, -49, 19, 48) +[2618507.343] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) +[2618507.347] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) +[2618507.352] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) +[2618507.360] {Default Queue} -> wl_surface#2535.commit() +[2618507.369] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) +[2618507.373] {Default Queue} -> wl_surface#2535.commit() +[2618508.439] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) +[2618508.446] {Default Queue} -> wl_surface#2535.commit() +[2618508.453] {Default Queue} -> wl_region#2559.subtract(0, 0, 22, 51) +[2618508.458] {Default Queue} -> wl_region#2559.add(-20, -49, 19, 48) +[2618508.462] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) +[2618508.466] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) +[2618508.471] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) +[2618508.476] {Default Queue} -> wl_surface#2535.commit() +[2618508.480] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) +[2618508.484] {Default Queue} -> wl_surface#2535.commit() +[2618508.490] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) +[2618508.494] {Default Queue} -> wl_surface#2535.commit() +[2618508.499] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) +[2618508.505] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) +[2618508.509] {Default Queue} -> wl_surface#2508.commit() +[2618509.571] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) +[2618509.576] {Default Queue} -> wl_surface#2508.commit() +[2618509.584] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) +[2618509.589] {Default Queue} -> wl_region#2527.add(0, 0, 2, 2) +[2618509.593] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618509.597] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618509.605] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) +[2618509.609] {Default Queue} -> wl_region#2527.add(0, 0, 2, 2) +[2618509.613] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618509.617] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618509.622] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) +[2618509.627] {Default Queue} -> wl_region#2527.add(0, 0, 2, 2) +[2618509.631] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618509.635] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618509.641] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) +[2618509.645] {Default Queue} -> wl_region#2527.add(0, 0, 2, 2) +[2618509.649] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618509.653] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618509.660] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) +[2618509.664] {Default Queue} -> wl_region#2527.add(0, 0, 2, 2) +[2618509.668] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618509.673] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618509.677] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) +[2618509.682] {Default Queue} -> wl_surface#2508.commit() +[2618509.686] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) +[2618509.690] {Default Queue} -> wl_surface#2508.commit() +[2618509.696] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) +[2618509.700] {Default Queue} -> wl_surface#2508.commit() +[2618509.707] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) +[2618509.711] {Default Queue} -> wl_surface#2727.commit() +[2618510.772] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) +[2618510.778] {Default Queue} -> wl_surface#2727.commit() +[2618510.786] {Default Queue} -> wl_region#2751.subtract(0, 0, 19, 48) +[2618510.791] {Default Queue} -> wl_region#2751.add(-20, -49, 19, 48) +[2618510.795] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2618510.799] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2618510.895] {Default Queue} -> wl_region#2751.subtract(0, 0, 19, 48) +[2618510.901] {Default Queue} -> wl_region#2751.add(-20, -49, 19, 48) +[2618510.905] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2618510.913] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2618510.922] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618510.926] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618510.994] {Default Queue} -> wl_region#2751.subtract(0, 0, 19, 48) +[2618510.999] {Default Queue} -> wl_region#2751.add(-20, -49, 19, 48) +[2618511.003] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2618511.007] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2618511.012] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618511.017] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618511.022] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) +[2618511.027] {Default Queue} -> wl_surface#2727.commit() +[2618511.031] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) +[2618511.035] {Default Queue} -> wl_surface#2727.commit() +[2618511.041] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) +[2618511.046] {Default Queue} -> wl_surface#2727.commit() +[2618511.052] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) +[2618511.057] {Default Queue} -> wl_surface#2791.commit() +[2618512.118] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) +[2618512.125] {Default Queue} -> wl_surface#2791.commit() +[2618512.135] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618512.139] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618512.144] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618512.149] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618512.157] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618512.161] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618512.167] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618512.171] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618512.176] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618512.180] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618512.184] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618512.188] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618512.194] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618512.199] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618512.203] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618512.207] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618512.211] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618512.216] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618512.220] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618512.224] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618512.230] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618512.235] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618512.239] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618512.243] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618512.248] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618512.252] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618512.256] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618512.260] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618512.265] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618512.270] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618512.274] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618512.278] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618512.282] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618512.287] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618512.291] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618512.299] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618512.312] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618512.317] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618512.322] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618512.326] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618512.331] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618512.335] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618512.339] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618512.343] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618512.348] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618512.352] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618512.357] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618512.361] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618512.365] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618512.370] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618512.374] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618512.379] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618512.383] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) +[2618512.387] {Default Queue} -> wl_surface#2791.commit() +[2618512.392] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) +[2618512.396] {Default Queue} -> wl_surface#2791.commit() +[2618512.402] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) +[2618512.406] {Default Queue} -> wl_surface#2791.commit() +[2618512.412] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) +[2618512.416] {Default Queue} -> wl_surface#2759.commit() +[2618513.477] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) +[2618513.483] {Default Queue} -> wl_surface#2759.commit() +[2618513.491] {Default Queue} -> wl_region#2783.subtract(0, 0, 19, 48) +[2618513.495] {Default Queue} -> wl_region#2783.add(-20, -49, 19, 48) +[2618513.499] {Default Queue} -> wl_surface#2759.set_opaque_region(wl_region#2784) +[2618513.503] {Default Queue} -> wl_surface#2759.set_input_region(wl_region#2783) +[2618513.508] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) +[2618513.513] {Default Queue} -> wl_surface#2759.commit() +[2618513.517] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) +[2618513.521] {Default Queue} -> wl_surface#2759.commit() +[2618513.527] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) +[2618513.531] {Default Queue} -> wl_surface#2759.commit() +[2618513.536] {Default Queue} -> wl_region#2719.subtract(0, 0, 2, 2) +[2618513.542] {Default Queue} -> wl_region#2751.subtract(0, 0, 19, 48) +[2618513.546] {Default Queue} -> wl_region#2751.add(-20, -49, 19, 48) +[2618513.550] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2618513.554] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2618513.635] {Default Queue} -> wl_region#2751.subtract(0, 0, 19, 48) +[2618513.640] {Default Queue} -> wl_region#2751.add(-20, -49, 19, 48) +[2618513.644] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2618513.648] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2618513.655] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618513.659] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618513.721] {Default Queue} -> wl_region#2751.subtract(0, 0, 19, 48) +[2618513.726] {Default Queue} -> wl_region#2751.add(-20, -49, 19, 48) +[2618513.730] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2618513.734] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2618513.739] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618513.744] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618513.749] {Default Queue} -> wl_region#2783.subtract(0, 0, 19, 48) +[2618513.759] {Default Queue} -> wl_region#2783.add(-20, -49, 19, 48) +[2618513.765] {Default Queue} -> wl_surface#2759.set_opaque_region(wl_region#2784) +[2618513.769] {Default Queue} -> wl_surface#2759.set_input_region(wl_region#2783) +[2618513.774] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) +[2618513.779] {Default Queue} -> wl_region#2719.subtract(0, 0, 5, 5) +[2618513.783] {Default Queue} -> wl_region#2719.add(0, 0, 0, 0) +[2618513.787] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) +[2618513.791] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) +[2618513.795] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618513.800] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) +[2618513.804] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) +[2618513.808] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) +[2618513.822] {Default Queue} -> wl_buffer#2717.destroy() +[2618513.827] {Default Queue} -> wl_buffer#2718.destroy() +[2618513.831] {Default Queue} -> wl_shm_pool#2715.destroy() +[2618513.835] {Default Queue} -> wl_shm_pool#2716.destroy() +[2618513.882] {Default Queue} -> wl_shm#2703.create_pool(new id wl_shm_pool#3730, fd 583, 16) +[2618513.888] {Default Queue} -> wl_shm#2703.create_pool(new id wl_shm_pool#3731, fd 584, 16) +[2618513.893] {Default Queue} -> wl_shm_pool#3730.create_buffer(new id wl_buffer#3732, 0, 2, 2, 8, 0) +[2618513.898] {Default Queue} -> wl_shm_pool#3731.create_buffer(new id wl_buffer#3733, 0, 2, 2, 8, 0) +[2618513.905] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) +[2618513.909] {Default Queue} -> wl_surface#2695.commit() +[2618513.915] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) +[2618513.919] {Default Queue} -> wl_surface#2695.commit() +[2618513.927] {Default Queue} -> wl_region#2719.subtract(0, 0, 22, 51) +[2618513.931] {Default Queue} -> wl_region#2719.add(-20, -49, 19, 48) +[2618513.935] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) +[2618513.940] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) +[2618513.944] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) +[2618513.949] {Default Queue} -> wl_surface#2695.commit() +[2618513.956] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) +[2618513.960] {Default Queue} -> wl_surface#2695.commit() +[2618515.024] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) +[2618515.029] {Default Queue} -> wl_surface#2695.commit() +[2618515.035] {Default Queue} -> wl_region#2719.subtract(0, 0, 22, 51) +[2618515.039] {Default Queue} -> wl_region#2719.add(-20, -49, 19, 48) +[2618515.044] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) +[2618515.047] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) +[2618515.052] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) +[2618515.056] {Default Queue} -> wl_surface#2695.commit() +[2618515.060] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) +[2618515.065] {Default Queue} -> wl_surface#2695.commit() +[2618515.071] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) +[2618515.075] {Default Queue} -> wl_surface#2695.commit() +[2618515.080] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) +[2618515.086] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) +[2618515.090] {Default Queue} -> wl_surface#2663.commit() +[2618516.150] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) +[2618516.156] {Default Queue} -> wl_surface#2663.commit() +[2618516.164] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) +[2618516.169] {Default Queue} -> wl_region#2687.add(0, 0, 2, 2) +[2618516.173] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618516.177] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618516.184] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) +[2618516.189] {Default Queue} -> wl_region#2687.add(0, 0, 2, 2) +[2618516.193] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618516.211] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618516.219] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) +[2618516.224] {Default Queue} -> wl_region#2687.add(0, 0, 2, 2) +[2618516.228] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618516.233] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618516.238] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) +[2618516.242] {Default Queue} -> wl_region#2687.add(0, 0, 2, 2) +[2618516.247] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618516.250] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618516.257] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) +[2618516.261] {Default Queue} -> wl_region#2687.add(0, 0, 2, 2) +[2618516.266] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618516.270] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618516.274] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) +[2618516.279] {Default Queue} -> wl_surface#2663.commit() +[2618516.283] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) +[2618516.287] {Default Queue} -> wl_surface#2663.commit() +[2618516.293] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) +[2618516.297] {Default Queue} -> wl_surface#2663.commit() +[2618516.306] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) +[2618516.311] {Default Queue} -> wl_surface#2887.commit() +[2618517.372] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) +[2618517.379] {Default Queue} -> wl_surface#2887.commit() +[2618517.390] {Default Queue} -> wl_region#2911.subtract(0, 0, 19, 48) +[2618517.395] {Default Queue} -> wl_region#2911.add(-20, -49, 19, 48) +[2618517.399] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2618517.403] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2618517.510] {Default Queue} -> wl_region#2911.subtract(0, 0, 19, 48) +[2618517.516] {Default Queue} -> wl_region#2911.add(-20, -49, 19, 48) +[2618517.520] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2618517.524] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2618517.530] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618517.535] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618517.612] {Default Queue} -> wl_region#2911.subtract(0, 0, 19, 48) +[2618517.617] {Default Queue} -> wl_region#2911.add(-20, -49, 19, 48) +[2618517.621] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2618517.626] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2618517.631] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618517.636] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618517.641] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) +[2618517.645] {Default Queue} -> wl_surface#2887.commit() +[2618517.650] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) +[2618517.655] {Default Queue} -> wl_surface#2887.commit() +[2618517.661] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) +[2618517.665] {Default Queue} -> wl_surface#2887.commit() +[2618517.672] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) +[2618517.677] {Default Queue} -> wl_surface#2951.commit() +[2618518.737] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) +[2618518.743] {Default Queue} -> wl_surface#2951.commit() +[2618518.750] {Default Queue} -> wl_region#2975.subtract(0, 0, 19, 48) +[2618518.755] {Default Queue} -> wl_region#2975.add(-20, -49, 19, 48) +[2618518.759] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618518.763] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618518.770] {Default Queue} -> wl_region#2975.subtract(0, 0, 19, 48) +[2618518.774] {Default Queue} -> wl_region#2975.add(-20, -49, 19, 48) +[2618518.778] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618518.786] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618518.793] {Default Queue} -> wl_region#2975.subtract(0, 0, 19, 48) +[2618518.798] {Default Queue} -> wl_region#2975.add(-20, -49, 19, 48) +[2618518.802] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618518.806] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618518.811] {Default Queue} -> wl_region#2975.subtract(0, 0, 19, 48) +[2618518.816] {Default Queue} -> wl_region#2975.add(-20, -49, 19, 48) +[2618518.820] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618518.824] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618518.829] {Default Queue} -> wl_region#2975.subtract(0, 0, 19, 48) +[2618518.833] {Default Queue} -> wl_region#2975.add(-20, -49, 19, 48) +[2618518.837] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618518.841] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618518.846] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) +[2618518.850] {Default Queue} -> wl_surface#2951.commit() +[2618518.854] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) +[2618518.858] {Default Queue} -> wl_surface#2951.commit() +[2618518.868] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) +[2618518.873] {Default Queue} -> wl_surface#2951.commit() +[2618518.879] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) +[2618518.883] {Default Queue} -> wl_surface#2919.commit() +[2618519.944] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) +[2618519.950] {Default Queue} -> wl_surface#2919.commit() +[2618519.956] {Default Queue} -> wl_region#2943.subtract(0, 0, 19, 48) +[2618519.960] {Default Queue} -> wl_region#2943.add(-20, -49, 19, 48) +[2618519.965] {Default Queue} -> wl_surface#2919.set_opaque_region(wl_region#2944) +[2618519.969] {Default Queue} -> wl_surface#2919.set_input_region(wl_region#2943) +[2618519.974] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) +[2618519.978] {Default Queue} -> wl_surface#2919.commit() +[2618519.982] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) +[2618519.986] {Default Queue} -> wl_surface#2919.commit() +[2618519.992] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) +[2618519.996] {Default Queue} -> wl_surface#2919.commit() +[2618520.001] {Default Queue} -> wl_region#2879.subtract(0, 0, 2, 2) +[2618520.007] {Default Queue} -> wl_region#2911.subtract(0, 0, 19, 48) +[2618520.012] {Default Queue} -> wl_region#2911.add(-20, -49, 19, 48) +[2618520.016] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2618520.020] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2618520.109] {Default Queue} -> wl_region#2911.subtract(0, 0, 19, 48) +[2618520.114] {Default Queue} -> wl_region#2911.add(-20, -49, 19, 48) +[2618520.118] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2618520.123] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2618520.129] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618520.134] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618520.205] {Default Queue} -> wl_region#2911.subtract(0, 0, 19, 48) +[2618520.210] {Default Queue} -> wl_region#2911.add(-20, -49, 19, 48) +[2618520.215] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2618520.219] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2618520.224] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618520.229] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618520.235] {Default Queue} -> wl_region#2943.subtract(0, 0, 19, 48) +[2618520.239] {Default Queue} -> wl_region#2943.add(-20, -49, 19, 48) +[2618520.243] {Default Queue} -> wl_surface#2919.set_opaque_region(wl_region#2944) +[2618520.247] {Default Queue} -> wl_surface#2919.set_input_region(wl_region#2943) +[2618520.252] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) +[2618520.260] {Default Queue} -> wl_region#2879.subtract(0, 0, 5, 5) +[2618520.266] {Default Queue} -> wl_region#2879.add(0, 0, 0, 0) +[2618520.271] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) +[2618520.275] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) +[2618520.279] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618520.283] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) +[2618520.288] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) +[2618520.292] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) +[2618520.305] {Default Queue} -> wl_buffer#2877.destroy() +[2618520.310] {Default Queue} -> wl_buffer#2878.destroy() +[2618520.315] {Default Queue} -> wl_shm_pool#2875.destroy() +[2618520.319] {Default Queue} -> wl_shm_pool#2876.destroy() +[2618520.359] {Default Queue} -> wl_shm#2863.create_pool(new id wl_shm_pool#3734, fd 583, 16) +[2618520.366] {Default Queue} -> wl_shm#2863.create_pool(new id wl_shm_pool#3735, fd 584, 16) +[2618520.371] {Default Queue} -> wl_shm_pool#3734.create_buffer(new id wl_buffer#3736, 0, 2, 2, 8, 0) +[2618520.378] {Default Queue} -> wl_shm_pool#3735.create_buffer(new id wl_buffer#3737, 0, 2, 2, 8, 0) +[2618520.385] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) +[2618520.390] {Default Queue} -> wl_surface#2855.commit() +[2618520.395] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) +[2618520.399] {Default Queue} -> wl_surface#2855.commit() +[2618520.406] {Default Queue} -> wl_region#2879.subtract(0, 0, 22, 51) +[2618520.410] {Default Queue} -> wl_region#2879.add(-20, -49, 19, 48) +[2618520.415] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) +[2618520.419] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) +[2618520.424] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) +[2618520.428] {Default Queue} -> wl_surface#2855.commit() +[2618520.435] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) +[2618520.439] {Default Queue} -> wl_surface#2855.commit() +[2618521.502] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) +[2618521.509] {Default Queue} -> wl_surface#2855.commit() +[2618521.515] {Default Queue} -> wl_region#2879.subtract(0, 0, 22, 51) +[2618521.519] {Default Queue} -> wl_region#2879.add(-20, -49, 19, 48) +[2618521.523] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) +[2618521.528] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) +[2618521.533] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) +[2618521.537] {Default Queue} -> wl_surface#2855.commit() +[2618521.541] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) +[2618521.545] {Default Queue} -> wl_surface#2855.commit() +[2618521.551] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) +[2618521.556] {Default Queue} -> wl_surface#2855.commit() +[2618521.560] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) +[2618521.566] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) +[2618521.570] {Default Queue} -> wl_surface#2823.commit() +[2618522.631] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) +[2618522.638] {Default Queue} -> wl_surface#2823.commit() +[2618522.646] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) +[2618522.651] {Default Queue} -> wl_region#2847.add(0, 0, 2, 2) +[2618522.655] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618522.659] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618522.667] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) +[2618522.674] {Default Queue} -> wl_region#2847.add(0, 0, 2, 2) +[2618522.678] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618522.682] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618522.688] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) +[2618522.693] {Default Queue} -> wl_region#2847.add(0, 0, 2, 2) +[2618522.697] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618522.705] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618522.713] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) +[2618522.717] {Default Queue} -> wl_region#2847.add(0, 0, 2, 2) +[2618522.721] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618522.725] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618522.732] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) +[2618522.736] {Default Queue} -> wl_region#2847.add(0, 0, 2, 2) +[2618522.740] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618522.744] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618522.749] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) +[2618522.753] {Default Queue} -> wl_surface#2823.commit() +[2618522.757] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) +[2618522.762] {Default Queue} -> wl_surface#2823.commit() +[2618522.768] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) +[2618522.772] {Default Queue} -> wl_surface#2823.commit() +[2618522.776] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) +[2618522.781] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) +[2618522.786] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) +[2618522.790] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) +[2618522.794] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) +[2618522.800] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) +[2618522.805] {Default Queue} -> wl_surface#2087.commit() +[2618523.870] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) +[2618523.876] {Default Queue} -> wl_surface#2087.commit() +[2618523.882] {Default Queue} -> wl_region#2111.subtract(0, 0, 2, 2) +[2618523.887] {Default Queue} -> wl_region#2111.add(0, 0, 2, 2) +[2618523.891] {Default Queue} -> wl_surface#2087.set_opaque_region(wl_region#2112) +[2618523.895] {Default Queue} -> wl_surface#2087.set_input_region(wl_region#2111) +[2618523.901] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) +[2618523.905] {Default Queue} -> wl_surface#2087.commit() +[2618523.910] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) +[2618523.914] {Default Queue} -> wl_surface#2087.commit() +[2618523.919] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) +[2618523.924] {Default Queue} -> wl_surface#2087.commit() +[2618523.930] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) +[2618523.935] {Default Queue} -> wl_surface#3079.commit() +[2618524.996] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) +[2618525.002] {Default Queue} -> wl_surface#3079.commit() +[2618525.011] {Default Queue} -> wl_region#3103.subtract(0, 0, 19, 48) +[2618525.016] {Default Queue} -> wl_region#3103.add(-20, -49, 19, 48) +[2618525.020] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2618525.024] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2618525.112] {Default Queue} -> wl_region#3103.subtract(0, 0, 19, 48) +[2618525.118] {Default Queue} -> wl_region#3103.add(-20, -49, 19, 48) +[2618525.122] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2618525.126] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2618525.132] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618525.137] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618525.203] {Default Queue} -> wl_region#3103.subtract(0, 0, 19, 48) +[2618525.209] {Default Queue} -> wl_region#3103.add(-20, -49, 19, 48) +[2618525.213] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2618525.217] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2618525.222] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618525.226] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618525.231] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) +[2618525.236] {Default Queue} -> wl_surface#3079.commit() +[2618525.243] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) +[2618525.250] {Default Queue} -> wl_surface#3079.commit() +[2618525.256] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) +[2618525.260] {Default Queue} -> wl_surface#3079.commit() +[2618525.267] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618525.271] {Default Queue} -> wl_surface#3175.commit() +[2618526.332] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618526.337] {Default Queue} -> wl_surface#3175.commit() +[2618526.345] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618526.350] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618526.354] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618526.358] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618526.366] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618526.372] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618526.377] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618526.381] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618526.386] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618526.390] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618526.394] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618526.398] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618526.403] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618526.407] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618526.411] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618526.415] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618526.420] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618526.424] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618526.428] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618526.432] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618526.438] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618526.443] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618526.447] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618526.451] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618526.456] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618526.460] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618526.464] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618526.468] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618526.473] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618526.477] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618526.481] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618526.485] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618526.490] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618526.495] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618526.499] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618526.503] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618526.513] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618526.518] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618526.522] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618526.526] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618526.531] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618526.535] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618526.539] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618526.543] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618526.548] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618526.552] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618526.560] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618526.566] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618526.571] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618526.575] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618526.579] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618526.584] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618526.588] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618526.592] {Default Queue} -> wl_surface#3175.commit() +[2618526.597] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618526.601] {Default Queue} -> wl_surface#3175.commit() +[2618526.606] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618526.611] {Default Queue} -> wl_surface#3175.commit() +[2618526.615] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618526.620] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618526.625] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) +[2618526.629] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618526.633] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618526.637] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618526.651] {Default Queue} -> wl_buffer#3229.destroy() +[2618526.656] {Default Queue} -> wl_buffer#3230.destroy() +[2618526.661] {Default Queue} -> wl_shm_pool#3227.destroy() +[2618526.665] {Default Queue} -> wl_shm_pool#3228.destroy() +[2618526.705] {Default Queue} -> wl_shm#3215.create_pool(new id wl_shm_pool#3738, fd 583, 16) +[2618526.712] {Default Queue} -> wl_shm#3215.create_pool(new id wl_shm_pool#3739, fd 584, 16) +[2618526.717] {Default Queue} -> wl_shm_pool#3738.create_buffer(new id wl_buffer#3740, 0, 2, 2, 8, 0) +[2618526.721] {Default Queue} -> wl_shm_pool#3739.create_buffer(new id wl_buffer#3741, 0, 2, 2, 8, 0) +[2618526.728] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) +[2618526.733] {Default Queue} -> wl_surface#3207.commit() +[2618526.739] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) +[2618526.743] {Default Queue} -> wl_surface#3207.commit() +[2618526.752] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618526.758] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618526.763] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618526.767] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618526.772] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618526.777] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618526.781] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618526.785] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618526.790] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618526.794] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618526.799] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618526.803] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618526.808] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618526.812] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618526.816] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618526.821] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618526.827] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618526.832] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618526.836] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618526.840] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618526.850] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618526.854] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618526.858] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618526.863] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618526.876] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618526.884] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618526.888] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618526.894] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618526.898] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618526.903] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618526.907] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618526.911] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618526.915] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618526.920] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618526.924] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618526.929] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618526.933] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618526.938] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618526.942] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618526.946] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618526.960] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618526.965] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618526.969] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618526.973] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618526.982] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618526.990] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618526.994] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618526.998] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618527.005] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618527.009] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618527.014] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618527.018] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618527.024] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618527.029] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618527.033] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618527.037] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618527.041] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618527.046] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618527.050] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618527.054] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618527.059] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618527.063] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618527.067] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618527.071] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618527.076] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618527.080] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618527.085] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618527.089] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618527.094] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618527.098] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618527.102] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618527.106] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618527.112] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618527.117] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618527.121] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618527.126] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618527.130] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618527.138] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618527.144] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618527.148] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618527.153] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618527.157] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618527.161] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618527.165] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618527.170] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618527.174] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618527.178] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618527.182] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618527.223] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618527.229] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618527.233] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618527.238] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618527.243] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618527.248] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618527.260] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618527.264] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618527.269] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618527.273] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618527.279] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618527.283] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618527.288] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618527.291] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618527.326] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618527.332] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618527.336] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618527.340] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618527.345] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618527.349] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618527.358] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618527.362] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618527.367] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618527.370] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618527.375] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618527.380] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618527.384] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618527.388] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618527.392] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618527.397] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618527.401] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618527.405] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618527.410] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618527.414] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618527.418] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618527.422] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618527.428] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) +[2618527.432] {Default Queue} -> wl_surface#3207.commit() +[2618527.438] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) +[2618527.443] {Default Queue} -> wl_surface#3207.commit() +[2618528.507] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) +[2618528.513] {Default Queue} -> wl_surface#3207.commit() +[2618528.521] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618528.529] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618528.535] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618528.539] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618528.544] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618528.548] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618528.553] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618528.556] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618528.561] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618528.565] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618528.569] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618528.574] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618528.578] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618528.583] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618528.587] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618528.591] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618528.598] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618528.602] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618528.606] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618528.610] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618528.620] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618528.625] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618528.630] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618528.634] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618528.638] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618528.643] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618528.647] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618528.651] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618528.656] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618528.661] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618528.665] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618528.669] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618528.673] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618528.678] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618528.682] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618528.686] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618528.690] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618528.695] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618528.699] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618528.703] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618528.715] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618528.720] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618528.724] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618528.728] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618528.734] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618528.738] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618528.743] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618528.747] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618528.754] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618528.758] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618528.762] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618528.766] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618528.773] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618528.777] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618528.784] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618528.790] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618528.794] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618528.799] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618528.803] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618528.807] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618528.811] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618528.816] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618528.820] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618528.825] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618528.829] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618528.833] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618528.838] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618528.842] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618528.847] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618528.851] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618528.855] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618528.859] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618528.866] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618528.875] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618528.879] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618528.883] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618528.911] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618528.934] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618528.941] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618528.946] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618528.951] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618528.956] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618528.961] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618528.965] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618528.970] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618528.975] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618528.979] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618528.983] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618529.026] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618529.032] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618529.036] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618529.040] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618529.047] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618529.051] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618529.063] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618529.067] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618529.072] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618529.076] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618529.083] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618529.088] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618529.092] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618529.096] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618529.131] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618529.136] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618529.140] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618529.145] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618529.150] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618529.159] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618529.172] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618529.177] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618529.182] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618529.186] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618529.190] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618529.195] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618529.199] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618529.204] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618529.208] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618529.213] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618529.217] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618529.221] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618529.226] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618529.230] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618529.234] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618529.238] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618529.243] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) +[2618529.248] {Default Queue} -> wl_surface#3207.commit() +[2618529.252] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) +[2618529.257] {Default Queue} -> wl_surface#3207.commit() +[2618529.264] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) +[2618529.269] {Default Queue} -> wl_surface#3207.commit() +[2618529.276] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) +[2618529.280] {Default Queue} -> wl_surface#3143.commit() +[2618530.344] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) +[2618530.351] {Default Queue} -> wl_surface#3143.commit() +[2618530.359] {Default Queue} -> wl_region#3167.subtract(0, 0, 19, 48) +[2618530.363] {Default Queue} -> wl_region#3167.add(-20, -49, 19, 48) +[2618530.368] {Default Queue} -> wl_surface#3143.set_opaque_region(wl_region#3168) +[2618530.372] {Default Queue} -> wl_surface#3143.set_input_region(wl_region#3167) +[2618530.377] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) +[2618530.382] {Default Queue} -> wl_surface#3143.commit() +[2618530.386] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) +[2618530.391] {Default Queue} -> wl_surface#3143.commit() +[2618530.396] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) +[2618530.402] {Default Queue} -> wl_surface#3143.commit() +[2618530.408] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) +[2618530.413] {Default Queue} -> wl_surface#3111.commit() +[2618531.475] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) +[2618531.483] {Default Queue} -> wl_surface#3111.commit() +[2618531.491] {Default Queue} -> wl_region#3135.subtract(0, 0, 19, 48) +[2618531.496] {Default Queue} -> wl_region#3135.add(-20, -49, 19, 48) +[2618531.500] {Default Queue} -> wl_surface#3111.set_opaque_region(wl_region#3136) +[2618531.504] {Default Queue} -> wl_surface#3111.set_input_region(wl_region#3135) +[2618531.510] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) +[2618531.514] {Default Queue} -> wl_surface#3111.commit() +[2618531.518] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) +[2618531.523] {Default Queue} -> wl_surface#3111.commit() +[2618531.529] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) +[2618531.533] {Default Queue} -> wl_surface#3111.commit() +[2618531.537] {Default Queue} -> wl_region#3071.subtract(0, 0, 2, 2) +[2618531.544] {Default Queue} -> wl_region#3103.subtract(0, 0, 19, 48) +[2618531.548] {Default Queue} -> wl_region#3103.add(-20, -49, 19, 48) +[2618531.553] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2618531.557] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2618531.651] {Default Queue} -> wl_region#3103.subtract(0, 0, 19, 48) +[2618531.659] {Default Queue} -> wl_region#3103.add(-20, -49, 19, 48) +[2618531.663] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2618531.667] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2618531.674] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618531.679] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618531.741] {Default Queue} -> wl_region#3103.subtract(0, 0, 19, 48) +[2618531.749] {Default Queue} -> wl_region#3103.add(-20, -49, 19, 48) +[2618531.754] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2618531.758] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2618531.763] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618531.768] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618531.774] {Default Queue} -> wl_region#3135.subtract(0, 0, 19, 48) +[2618531.778] {Default Queue} -> wl_region#3135.add(-20, -49, 19, 48) +[2618531.782] {Default Queue} -> wl_surface#3111.set_opaque_region(wl_region#3136) +[2618531.786] {Default Queue} -> wl_surface#3111.set_input_region(wl_region#3135) +[2618531.791] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) +[2618531.796] {Default Queue} -> wl_region#3071.subtract(0, 0, 5, 5) +[2618531.800] {Default Queue} -> wl_region#3071.add(0, 0, 0, 0) +[2618531.804] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) +[2618531.808] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) +[2618531.812] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618531.817] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618531.822] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618531.826] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) +[2618531.830] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) +[2618531.834] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) +[2618531.848] {Default Queue} -> wl_buffer#3069.destroy() +[2618531.853] {Default Queue} -> wl_buffer#3070.destroy() +[2618531.858] {Default Queue} -> wl_shm_pool#3067.destroy() +[2618531.866] {Default Queue} -> wl_shm_pool#3068.destroy() +[2618531.911] {Default Queue} -> wl_shm#3055.create_pool(new id wl_shm_pool#3742, fd 583, 16) +[2618531.918] {Default Queue} -> wl_shm#3055.create_pool(new id wl_shm_pool#3743, fd 584, 16) +[2618531.923] {Default Queue} -> wl_shm_pool#3742.create_buffer(new id wl_buffer#3744, 0, 2, 2, 8, 0) +[2618531.928] {Default Queue} -> wl_shm_pool#3743.create_buffer(new id wl_buffer#3745, 0, 2, 2, 8, 0) +[2618531.935] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) +[2618531.940] {Default Queue} -> wl_surface#3047.commit() +[2618531.945] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) +[2618531.949] {Default Queue} -> wl_surface#3047.commit() +[2618531.956] {Default Queue} -> wl_region#3071.subtract(0, 0, 22, 51) +[2618531.961] {Default Queue} -> wl_region#3071.add(-20, -49, 19, 48) +[2618531.965] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) +[2618531.969] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) +[2618531.974] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) +[2618531.978] {Default Queue} -> wl_surface#3047.commit() +[2618531.985] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) +[2618531.989] {Default Queue} -> wl_surface#3047.commit() +[2618533.055] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) +[2618533.063] {Default Queue} -> wl_surface#3047.commit() +[2618533.071] {Default Queue} -> wl_region#3071.subtract(0, 0, 22, 51) +[2618533.076] {Default Queue} -> wl_region#3071.add(-20, -49, 19, 48) +[2618533.081] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) +[2618533.085] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) +[2618533.090] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) +[2618533.094] {Default Queue} -> wl_surface#3047.commit() +[2618533.103] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) +[2618533.110] {Default Queue} -> wl_surface#3047.commit() +[2618533.116] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) +[2618533.120] {Default Queue} -> wl_surface#3047.commit() +[2618533.125] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) +[2618533.131] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) +[2618533.136] {Default Queue} -> wl_surface#3015.commit() +[2618534.197] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) +[2618534.203] {Default Queue} -> wl_surface#3015.commit() +[2618534.210] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) +[2618534.215] {Default Queue} -> wl_region#3039.add(0, 0, 2, 2) +[2618534.219] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618534.223] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618534.230] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) +[2618534.235] {Default Queue} -> wl_region#3039.add(0, 0, 2, 2) +[2618534.239] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618534.243] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618534.248] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) +[2618534.253] {Default Queue} -> wl_region#3039.add(0, 0, 2, 2) +[2618534.257] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618534.261] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618534.267] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) +[2618534.271] {Default Queue} -> wl_region#3039.add(0, 0, 2, 2) +[2618534.276] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618534.280] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618534.286] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) +[2618534.291] {Default Queue} -> wl_region#3039.add(0, 0, 2, 2) +[2618534.295] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618534.299] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618534.304] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) +[2618534.308] {Default Queue} -> wl_surface#3015.commit() +[2618534.312] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) +[2618534.316] {Default Queue} -> wl_surface#3015.commit() +[2618534.322] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) +[2618534.326] {Default Queue} -> wl_surface#3015.commit() +[2618534.333] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) +[2618534.337] {Default Queue} -> wl_surface#3303.commit() +[2618535.398] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) +[2618535.404] {Default Queue} -> wl_surface#3303.commit() +[2618535.412] {Default Queue} -> wl_region#3327.subtract(0, 0, 19, 48) +[2618535.417] {Default Queue} -> wl_region#3327.add(-20, -49, 19, 48) +[2618535.421] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2618535.426] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2618535.517] {Default Queue} -> wl_region#3327.subtract(0, 0, 19, 48) +[2618535.522] {Default Queue} -> wl_region#3327.add(-20, -49, 19, 48) +[2618535.527] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2618535.531] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2618535.537] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618535.542] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618535.603] {Default Queue} -> wl_region#3327.subtract(0, 0, 19, 48) +[2618535.609] {Default Queue} -> wl_region#3327.add(-20, -49, 19, 48) +[2618535.613] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2618535.617] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2618535.622] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618535.626] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618535.631] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) +[2618535.640] {Default Queue} -> wl_surface#3303.commit() +[2618535.646] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) +[2618535.650] {Default Queue} -> wl_surface#3303.commit() +[2618535.657] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) +[2618535.661] {Default Queue} -> wl_surface#3303.commit() +[2618535.666] {Default Queue} -> wl_region#3423.subtract(0, 0, 2, 2) +[2618535.671] {Default Queue} -> wl_region#3423.subtract(0, 0, 16, 2) +[2618535.675] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) +[2618535.680] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618535.684] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618535.688] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2618535.702] {Default Queue} -> wl_buffer#3421.destroy() +[2618535.707] {Default Queue} -> wl_buffer#3422.destroy() +[2618535.711] {Default Queue} -> wl_shm_pool#3419.destroy() +[2618535.716] {Default Queue} -> wl_shm_pool#3420.destroy() +[2618535.759] {Default Queue} -> wl_shm#3407.create_pool(new id wl_shm_pool#3746, fd 583, 16) +[2618535.766] {Default Queue} -> wl_shm#3407.create_pool(new id wl_shm_pool#3747, fd 584, 16) +[2618535.770] {Default Queue} -> wl_shm_pool#3746.create_buffer(new id wl_buffer#3748, 0, 2, 2, 8, 0) +[2618535.775] {Default Queue} -> wl_shm_pool#3747.create_buffer(new id wl_buffer#3749, 0, 2, 2, 8, 0) +[2618535.782] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) +[2618535.786] {Default Queue} -> wl_surface#3399.commit() +[2618535.792] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) +[2618535.796] {Default Queue} -> wl_surface#3399.commit() +[2618535.805] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618535.809] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618535.814] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618535.818] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618535.826] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618535.830] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618535.835] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618535.839] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618535.844] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618535.848] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618535.853] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618535.857] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618535.867] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618535.871] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618535.875] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618535.880] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618535.884] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618535.889] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618535.893] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618535.897] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618535.903] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618535.907] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618535.911] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618535.916] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618535.920] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618535.925] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618535.929] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618535.933] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618535.937] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618535.941] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618535.945] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618535.949] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618535.957] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618535.964] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618535.968] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618535.972] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618535.983] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618535.987] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618535.991] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618535.995] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618536.000] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618536.005] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618536.009] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618536.013] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618536.017] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618536.022] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618536.026] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618536.030] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618536.035] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618536.039] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618536.044] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618536.048] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618536.052] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) +[2618536.057] {Default Queue} -> wl_surface#3399.commit() +[2618536.063] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) +[2618536.067] {Default Queue} -> wl_surface#3399.commit() +[2618537.131] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) +[2618537.140] {Default Queue} -> wl_surface#3399.commit() +[2618537.148] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618537.152] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618537.157] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618537.161] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618537.169] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618537.173] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618537.178] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618537.182] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618537.187] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618537.191] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618537.196] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618537.200] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618537.204] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618537.209] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618537.213] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618537.217] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618537.221] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618537.226] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618537.231] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618537.235] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618537.241] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618537.245] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618537.249] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618537.254] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618537.258] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618537.262] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618537.267] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618537.275] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618537.282] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618537.287] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618537.291] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618537.295] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618537.300] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618537.304] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618537.308] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618537.312] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618537.322] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618537.328] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618537.332] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618537.336] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618537.341] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618537.346] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618537.350] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618537.354] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618537.359] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618537.363] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618537.367] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618537.371] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618537.376] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618537.381] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618537.385] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618537.389] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618537.394] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) +[2618537.398] {Default Queue} -> wl_surface#3399.commit() +[2618537.402] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) +[2618537.406] {Default Queue} -> wl_surface#3399.commit() +[2618537.412] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) +[2618537.417] {Default Queue} -> wl_surface#3399.commit() +[2618537.422] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 2) +[2618537.426] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 16) +[2618537.431] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) +[2618537.435] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618537.439] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618537.444] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2618537.457] {Default Queue} -> wl_buffer#3453.destroy() +[2618537.463] {Default Queue} -> wl_buffer#3454.destroy() +[2618537.467] {Default Queue} -> wl_shm_pool#3451.destroy() +[2618537.471] {Default Queue} -> wl_shm_pool#3452.destroy() +[2618537.541] {Default Queue} -> wl_shm#3439.create_pool(new id wl_shm_pool#3750, fd 583, 16) +[2618537.556] {Default Queue} -> wl_shm#3439.create_pool(new id wl_shm_pool#3751, fd 584, 16) +[2618537.562] {Default Queue} -> wl_shm_pool#3750.create_buffer(new id wl_buffer#3752, 0, 2, 2, 8, 0) +[2618537.568] {Default Queue} -> wl_shm_pool#3751.create_buffer(new id wl_buffer#3753, 0, 2, 2, 8, 0) +[2618537.576] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) +[2618537.582] {Default Queue} -> wl_surface#3431.commit() +[2618537.587] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) +[2618537.592] {Default Queue} -> wl_surface#3431.commit() +[2618537.603] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618537.610] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618537.614] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618537.619] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618537.628] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618537.633] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618537.643] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618537.651] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618537.657] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618537.662] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618537.666] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618537.670] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618537.675] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618537.679] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618537.684] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618537.688] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618537.693] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618537.697] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618537.702] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618537.706] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618537.712] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618537.716] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618537.720] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618537.724] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618537.729] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618537.733] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618537.738] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618537.742] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618537.746] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618537.750] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618537.758] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618537.762] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618537.767] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618537.771] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618537.775] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618537.779] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618537.789] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618537.794] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618537.798] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618537.802] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618537.807] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618537.811] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618537.816] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618537.820] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618537.825] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618537.829] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618537.833] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618537.837] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618537.842] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618537.846] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618537.851] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618537.854] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618537.859] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) +[2618537.870] {Default Queue} -> wl_surface#3431.commit() +[2618537.877] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) +[2618537.882] {Default Queue} -> wl_surface#3431.commit() +[2618538.946] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) +[2618538.953] {Default Queue} -> wl_surface#3431.commit() +[2618538.960] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618538.968] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618538.975] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618538.979] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618538.986] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618538.990] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618538.994] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618538.998] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618539.003] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618539.007] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618539.012] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618539.016] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618539.020] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618539.025] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618539.029] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618539.033] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618539.038] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618539.042] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618539.046] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618539.050] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618539.056] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618539.061] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618539.065] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618539.069] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618539.073] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618539.078] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618539.082] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618539.086] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618539.091] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618539.095] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618539.099] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618539.103] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618539.108] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618539.112] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618539.117] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618539.121] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618539.130] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618539.136] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618539.140] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618539.144] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618539.149] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618539.153] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618539.157] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618539.161] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618539.165] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618539.170] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618539.174] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618539.178] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618539.182] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618539.186] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618539.191] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618539.194] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618539.199] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) +[2618539.203] {Default Queue} -> wl_surface#3431.commit() +[2618539.210] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) +[2618539.216] {Default Queue} -> wl_surface#3431.commit() +[2618539.222] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) +[2618539.227] {Default Queue} -> wl_surface#3431.commit() +[2618539.237] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2618539.242] {Default Queue} -> wl_surface#3527.commit() +[2618540.305] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2618540.312] {Default Queue} -> wl_surface#3527.commit() +[2618540.323] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) +[2618540.328] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) +[2618540.333] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618540.337] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618540.345] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) +[2618540.349] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) +[2618540.354] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618540.358] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618540.363] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) +[2618540.367] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) +[2618540.371] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618540.375] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618540.380] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) +[2618540.385] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) +[2618540.389] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618540.393] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618540.398] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) +[2618540.402] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) +[2618540.406] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618540.410] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618540.456] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) +[2618540.461] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) +[2618540.465] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618540.470] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618540.484] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618540.489] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618540.554] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) +[2618540.560] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) +[2618540.564] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618540.568] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618540.574] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618540.578] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618540.585] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2618540.590] {Default Queue} -> wl_surface#3527.commit() +[2618540.595] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2618540.599] {Default Queue} -> wl_surface#3527.commit() +[2618540.606] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2618540.611] {Default Queue} -> wl_surface#3527.commit() +[2618540.615] {Default Queue} -> wl_region#3519.subtract(0, 0, 256, 256) +[2618540.622] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) +[2618540.627] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) +[2618540.632] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618540.636] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618540.644] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) +[2618540.648] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) +[2618540.653] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618540.657] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618540.666] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) +[2618540.672] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) +[2618540.677] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618540.681] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618540.686] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) +[2618540.690] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) +[2618540.694] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618540.698] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618540.703] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) +[2618540.708] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) +[2618540.712] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618540.716] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618540.727] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) +[2618540.736] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) +[2618540.745] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618540.752] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618540.762] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618540.767] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618540.822] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) +[2618540.829] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) +[2618540.834] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618540.838] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618540.843] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618540.849] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618540.857] {Default Queue} -> wl_region#3519.subtract(0, 0, 256, 256) +[2618540.866] {Default Queue} -> wl_region#3519.add(0, 0, 0, 0) +[2618540.871] {Default Queue} -> wl_surface#3495.set_opaque_region(wl_region#3520) +[2618540.875] {Default Queue} -> wl_surface#3495.set_input_region(wl_region#3519) +[2618540.880] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618540.885] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) +[2618540.899] {Default Queue} -> wl_buffer#3517.destroy() +[2618540.907] {Default Queue} -> wl_buffer#3518.destroy() +[2618540.912] {Default Queue} -> wl_shm_pool#3515.destroy() +[2618540.918] {Default Queue} -> wl_shm_pool#3516.destroy() +[2618541.101] {Default Queue} -> wl_shm#3503.create_pool(new id wl_shm_pool#3754, fd 583, 262144) +[2618541.109] {Default Queue} -> wl_shm#3503.create_pool(new id wl_shm_pool#3755, fd 584, 262144) +[2618541.114] {Default Queue} -> wl_shm_pool#3754.create_buffer(new id wl_buffer#3756, 0, 256, 256, 1024, 0) +[2618541.119] {Default Queue} -> wl_shm_pool#3755.create_buffer(new id wl_buffer#3757, 0, 256, 256, 1024, 0) +[2618541.188] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2618541.194] {Default Queue} -> wl_surface#3495.commit() +[2618541.261] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2618541.267] {Default Queue} -> wl_surface#3495.commit() +[2618541.280] {Default Queue} -> wl_region#3519.subtract(0, 0, 19, 48) +[2618541.286] {Default Queue} -> wl_region#3519.add(-20, -49, 19, 48) +[2618541.291] {Default Queue} -> wl_surface#3495.set_opaque_region(wl_region#3520) +[2618541.295] {Default Queue} -> wl_surface#3495.set_input_region(wl_region#3519) +[2618541.304] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2618541.309] {Default Queue} -> wl_surface#3495.commit() +[2618541.320] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2618541.325] {Default Queue} -> wl_surface#3495.commit() +[2618542.395] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2618542.402] {Default Queue} -> wl_surface#3495.commit() +[2618542.409] {Default Queue} -> wl_region#3519.subtract(0, 0, 19, 48) +[2618542.414] {Default Queue} -> wl_region#3519.add(-20, -49, 19, 48) +[2618542.424] {Default Queue} -> wl_surface#3495.set_opaque_region(wl_region#3520) +[2618542.434] {Default Queue} -> wl_surface#3495.set_input_region(wl_region#3519) +[2618542.444] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2618542.450] {Default Queue} -> wl_surface#3495.commit() +[2618542.458] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2618542.462] {Default Queue} -> wl_surface#3495.commit() +[2618542.473] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2618542.477] {Default Queue} -> wl_surface#3495.commit() +[2618542.482] {Default Queue} -> wl_region#3487.subtract(0, 0, 2, 2) +[2618542.488] {Default Queue} -> wl_region#3519.subtract(0, 0, 19, 48) +[2618542.492] {Default Queue} -> wl_region#3519.add(-20, -49, 19, 48) +[2618542.497] {Default Queue} -> wl_surface#3495.set_opaque_region(wl_region#3520) +[2618542.500] {Default Queue} -> wl_surface#3495.set_input_region(wl_region#3519) +[2618542.505] {Default Queue} -> wl_region#3487.subtract(0, 0, 2, 2) +[2618542.509] {Default Queue} -> wl_region#3487.add(0, 0, 0, 0) +[2618542.514] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) +[2618542.518] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) +[2618542.523] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618542.527] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) +[2618542.531] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) +[2618542.546] {Default Queue} -> wl_buffer#3485.destroy() +[2618542.552] {Default Queue} -> wl_buffer#3486.destroy() +[2618542.556] {Default Queue} -> wl_shm_pool#3483.destroy() +[2618542.560] {Default Queue} -> wl_shm_pool#3484.destroy() +[2618542.599] {Default Queue} -> wl_shm#3471.create_pool(new id wl_shm_pool#3758, fd 583, 16) +[2618542.606] {Default Queue} -> wl_shm#3471.create_pool(new id wl_shm_pool#3759, fd 584, 16) +[2618542.610] {Default Queue} -> wl_shm_pool#3758.create_buffer(new id wl_buffer#3760, 0, 2, 2, 8, 0) +[2618542.615] {Default Queue} -> wl_shm_pool#3759.create_buffer(new id wl_buffer#3761, 0, 2, 2, 8, 0) +[2618542.623] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) +[2618542.627] {Default Queue} -> wl_surface#3463.commit() +[2618542.633] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) +[2618542.637] {Default Queue} -> wl_surface#3463.commit() +[2618542.644] {Default Queue} -> wl_region#3487.subtract(0, 0, 19, 48) +[2618542.649] {Default Queue} -> wl_region#3487.add(-20, -49, 19, 48) +[2618542.653] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) +[2618542.657] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) +[2618542.662] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) +[2618542.666] {Default Queue} -> wl_surface#3463.commit() +[2618542.672] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) +[2618542.677] {Default Queue} -> wl_surface#3463.commit() +[2618543.740] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) +[2618543.750] {Default Queue} -> wl_surface#3463.commit() +[2618543.757] {Default Queue} -> wl_region#3487.subtract(0, 0, 19, 48) +[2618543.762] {Default Queue} -> wl_region#3487.add(-20, -49, 19, 48) +[2618543.766] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) +[2618543.771] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) +[2618543.776] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) +[2618543.780] {Default Queue} -> wl_surface#3463.commit() +[2618543.784] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) +[2618543.788] {Default Queue} -> wl_surface#3463.commit() +[2618543.795] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) +[2618543.799] {Default Queue} -> wl_surface#3463.commit() +[2618543.805] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) +[2618543.809] {Default Queue} -> wl_surface#3367.commit() +[2618544.866] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) +[2618544.876] {Default Queue} -> wl_surface#3367.commit() +[2618544.903] {Default Queue} -> wl_region#3391.subtract(0, 0, 19, 48) +[2618544.919] {Default Queue} -> wl_region#3391.add(-20, -49, 19, 48) +[2618544.927] {Default Queue} -> wl_surface#3367.set_opaque_region(wl_region#3392) +[2618544.933] {Default Queue} -> wl_surface#3367.set_input_region(wl_region#3391) +[2618544.942] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) +[2618544.948] {Default Queue} -> wl_surface#3367.commit() +[2618544.953] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) +[2618544.959] {Default Queue} -> wl_surface#3367.commit() +[2618544.968] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) +[2618544.974] {Default Queue} -> wl_surface#3367.commit() +[2618544.982] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) +[2618544.987] {Default Queue} -> wl_surface#3335.commit() +[2618546.052] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) +[2618546.058] {Default Queue} -> wl_surface#3335.commit() +[2618546.065] {Default Queue} -> wl_region#3359.subtract(0, 0, 19, 48) +[2618546.070] {Default Queue} -> wl_region#3359.add(-20, -49, 19, 48) +[2618546.074] {Default Queue} -> wl_surface#3335.set_opaque_region(wl_region#3360) +[2618546.079] {Default Queue} -> wl_surface#3335.set_input_region(wl_region#3359) +[2618546.083] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) +[2618546.088] {Default Queue} -> wl_surface#3335.commit() +[2618546.092] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) +[2618546.096] {Default Queue} -> wl_surface#3335.commit() +[2618546.102] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) +[2618546.106] {Default Queue} -> wl_surface#3335.commit() +[2618546.111] {Default Queue} -> wl_region#3295.subtract(0, 0, 2, 2) +[2618546.117] {Default Queue} -> wl_region#3327.subtract(0, 0, 19, 48) +[2618546.122] {Default Queue} -> wl_region#3327.add(-20, -49, 19, 48) +[2618546.129] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2618546.134] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2618546.250] {Default Queue} -> wl_region#3327.subtract(0, 0, 19, 48) +[2618546.259] {Default Queue} -> wl_region#3327.add(-20, -49, 19, 48) +[2618546.264] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2618546.268] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2618546.276] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618546.280] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618546.348] {Default Queue} -> wl_region#3327.subtract(0, 0, 19, 48) +[2618546.353] {Default Queue} -> wl_region#3327.add(-20, -49, 19, 48) +[2618546.357] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2618546.362] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2618546.367] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618546.371] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618546.378] {Default Queue} -> wl_region#3359.subtract(0, 0, 19, 48) +[2618546.382] {Default Queue} -> wl_region#3359.add(-20, -49, 19, 48) +[2618546.386] {Default Queue} -> wl_surface#3335.set_opaque_region(wl_region#3360) +[2618546.390] {Default Queue} -> wl_surface#3335.set_input_region(wl_region#3359) +[2618546.395] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) +[2618546.400] {Default Queue} -> wl_region#3295.subtract(0, 0, 5, 5) +[2618546.404] {Default Queue} -> wl_region#3295.add(0, 0, 0, 0) +[2618546.408] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) +[2618546.413] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) +[2618546.417] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618546.422] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2618546.426] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2618546.431] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618546.435] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) +[2618546.445] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) +[2618546.454] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) +[2618546.458] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) +[2618546.463] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) +[2618546.483] {Default Queue} -> wl_buffer#3293.destroy() +[2618546.489] {Default Queue} -> wl_buffer#3294.destroy() +[2618546.493] {Default Queue} -> wl_shm_pool#3291.destroy() +[2618546.497] {Default Queue} -> wl_shm_pool#3292.destroy() +[2618546.543] {Default Queue} -> wl_shm#3279.create_pool(new id wl_shm_pool#3762, fd 583, 16) +[2618546.551] {Default Queue} -> wl_shm#3279.create_pool(new id wl_shm_pool#3763, fd 584, 16) +[2618546.555] {Default Queue} -> wl_shm_pool#3762.create_buffer(new id wl_buffer#3764, 0, 2, 2, 8, 0) +[2618546.560] {Default Queue} -> wl_shm_pool#3763.create_buffer(new id wl_buffer#3765, 0, 2, 2, 8, 0) +[2618546.568] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) +[2618546.574] {Default Queue} -> wl_surface#3271.commit() +[2618546.580] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) +[2618546.584] {Default Queue} -> wl_surface#3271.commit() +[2618546.592] {Default Queue} -> wl_region#3295.subtract(0, 0, 22, 51) +[2618546.597] {Default Queue} -> wl_region#3295.add(-20, -49, 19, 48) +[2618546.602] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) +[2618546.606] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) +[2618546.611] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) +[2618546.616] {Default Queue} -> wl_surface#3271.commit() +[2618546.622] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) +[2618546.627] {Default Queue} -> wl_surface#3271.commit() +[2618547.692] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) +[2618547.700] {Default Queue} -> wl_surface#3271.commit() +[2618547.707] {Default Queue} -> wl_region#3295.subtract(0, 0, 22, 51) +[2618547.711] {Default Queue} -> wl_region#3295.add(-20, -49, 19, 48) +[2618547.716] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) +[2618547.720] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) +[2618547.725] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) +[2618547.729] {Default Queue} -> wl_surface#3271.commit() +[2618547.733] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) +[2618547.738] {Default Queue} -> wl_surface#3271.commit() +[2618547.744] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) +[2618547.748] {Default Queue} -> wl_surface#3271.commit() +[2618547.753] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) +[2618547.760] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) +[2618547.764] {Default Queue} -> wl_surface#3239.commit() +[2618548.829] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) +[2618548.834] {Default Queue} -> wl_surface#3239.commit() +[2618548.842] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) +[2618548.847] {Default Queue} -> wl_region#3263.add(0, 0, 2, 2) +[2618548.851] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618548.855] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618548.868] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) +[2618548.872] {Default Queue} -> wl_region#3263.add(0, 0, 2, 2) +[2618548.877] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618548.881] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618548.887] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) +[2618548.891] {Default Queue} -> wl_region#3263.add(0, 0, 2, 2) +[2618548.895] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618548.899] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618548.905] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) +[2618548.909] {Default Queue} -> wl_region#3263.add(0, 0, 2, 2) +[2618548.913] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618548.922] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618548.932] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) +[2618548.936] {Default Queue} -> wl_region#3263.add(0, 0, 2, 2) +[2618548.940] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618548.944] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618548.950] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) +[2618548.954] {Default Queue} -> wl_surface#3239.commit() +[2618548.958] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) +[2618548.963] {Default Queue} -> wl_surface#3239.commit() +[2618548.968] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) +[2618548.973] {Default Queue} -> wl_surface#3239.commit() +[2618548.979] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) +[2618548.984] {Default Queue} -> wl_surface#3559.commit() +[2618550.045] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) +[2618550.051] {Default Queue} -> wl_surface#3559.commit() +[2618550.057] {Default Queue} -> wl_region#3583.subtract(0, 0, 2, 2) +[2618550.062] {Default Queue} -> wl_region#3583.add(0, 0, 2, 2) +[2618550.066] {Default Queue} -> wl_surface#3559.set_opaque_region(wl_region#3584) +[2618550.070] {Default Queue} -> wl_surface#3559.set_input_region(wl_region#3583) +[2618550.076] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) +[2618550.080] {Default Queue} -> wl_surface#3559.commit() +[2618550.084] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) +[2618550.088] {Default Queue} -> wl_surface#3559.commit() +[2618550.093] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) +[2618550.098] {Default Queue} -> wl_surface#3559.commit() +[2618550.104] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) +[2618550.108] {Default Queue} -> wl_surface#3591.commit() +[2618551.130] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) +[2618551.141] {Default Queue} -> wl_surface#3591.commit() +[2618551.151] {Default Queue} -> wl_region#3615.subtract(0, 0, 2, 2) +[2618551.157] {Default Queue} -> wl_region#3615.add(0, 0, 2, 2) +[2618551.162] {Default Queue} -> wl_surface#3591.set_opaque_region(wl_region#3616) +[2618551.167] {Default Queue} -> wl_surface#3591.set_input_region(wl_region#3615) +[2618551.175] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) +[2618551.181] {Default Queue} -> wl_surface#3591.commit() +[2618551.186] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) +[2618551.191] {Default Queue} -> wl_surface#3591.commit() +[2618551.199] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) +[2618551.204] {Default Queue} -> wl_surface#3591.commit() +[2618551.212] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) +[2618551.217] {Default Queue} -> wl_surface#3623.commit() +[2618552.283] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) +[2618552.290] {Default Queue} -> wl_surface#3623.commit() +[2618552.299] {Default Queue} -> wl_region#3647.subtract(0, 0, 2, 2) +[2618552.305] {Default Queue} -> wl_region#3647.add(0, 0, 2, 2) +[2618552.310] {Default Queue} -> wl_surface#3623.set_opaque_region(wl_region#3648) +[2618552.315] {Default Queue} -> wl_surface#3623.set_input_region(wl_region#3647) +[2618552.321] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) +[2618552.325] {Default Queue} -> wl_surface#3623.commit() +[2618552.330] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) +[2618552.335] {Default Queue} -> wl_surface#3623.commit() +[2618552.340] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) +[2618552.344] {Default Queue} -> wl_surface#3623.commit() +[2618552.349] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) +[2618552.355] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) +[2618552.363] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) +[2618552.368] {Default Queue} -> wl_surface#2983.commit() +[2618553.429] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) +[2618553.458] {Default Queue} -> wl_surface#2983.commit() +[2618553.468] {Default Queue} -> wl_region#3007.subtract(0, 0, 2, 2) +[2618553.473] {Default Queue} -> wl_region#3007.add(0, 0, 2, 2) +[2618553.477] {Default Queue} -> wl_surface#2983.set_opaque_region(wl_region#3008) +[2618553.481] {Default Queue} -> wl_surface#2983.set_input_region(wl_region#3007) +[2618553.487] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) +[2618553.491] {Default Queue} -> wl_surface#2983.commit() +[2618553.495] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) +[2618553.520] {Default Queue} -> wl_surface#2983.commit() +[2618553.539] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) +[2618553.544] {Default Queue} -> wl_surface#2983.commit() +[2618553.550] {Default Queue} -> wl_surface#3655.attach(wl_buffer#3677, 0, 0) +[2618553.555] {Default Queue} -> wl_surface#3655.commit() +[2618554.617] {Default Queue} -> wl_surface#3655.attach(wl_buffer#3677, 0, 0) +[2618554.622] {Default Queue} -> wl_surface#3655.commit() +[2618554.628] {Default Queue} -> wl_surface#3655.attach(wl_buffer#3677, 0, 0) +[2618554.632] {Default Queue} -> wl_surface#3655.commit() +[2618554.637] {Default Queue} -> wl_surface#3655.attach(wl_buffer#3677, 0, 0) +[2618554.641] {Default Queue} -> wl_surface#3655.commit() +[2618554.646] {Default Queue} -> wl_surface#3655.attach(wl_buffer#3677, 0, 0) +[2618554.651] {Default Queue} -> wl_surface#3655.commit() +[2618554.655] {Default Queue} -> wl_region#95.subtract(0, 0, 576, 669) +[2618554.662] {Default Queue} -> wl_region#127.subtract(0, 0, 2, 2) +[2618554.666] {Default Queue} -> wl_region#127.add(0, 0, 2, 2) +[2618554.670] {Default Queue} -> wl_surface#103.set_opaque_region(wl_region#128) +[2618554.675] {Default Queue} -> wl_surface#103.set_input_region(wl_region#127) +[2618554.682] {Default Queue} -> wl_region#895.subtract(0, 0, 2, 2) +[2618554.687] {Default Queue} -> wl_region#895.add(0, 0, 2, 2) +[2618554.692] {Default Queue} -> wl_surface#871.set_opaque_region(wl_region#896) +[2618554.696] {Default Queue} -> wl_surface#871.set_input_region(wl_region#895) +[2618554.702] {Default Queue} -> wl_region#2111.subtract(0, 0, 2, 2) +[2618554.706] {Default Queue} -> wl_region#2111.add(0, 0, 2, 2) +[2618554.711] {Default Queue} -> wl_surface#2087.set_opaque_region(wl_region#2112) +[2618554.715] {Default Queue} -> wl_surface#2087.set_input_region(wl_region#2111) +[2618554.720] {Default Queue} -> wl_region#3007.subtract(0, 0, 2, 2) +[2618554.725] {Default Queue} -> wl_region#3007.add(0, 0, 2, 2) +[2618554.729] {Default Queue} -> wl_surface#2983.set_opaque_region(wl_region#3008) +[2618554.733] {Default Queue} -> wl_surface#2983.set_input_region(wl_region#3007) +[2618554.737] {Default Queue} -> wl_surface#71.damage(0, 0, 576, 669) +[2618554.742] {Default Queue} -> wl_region#95.subtract(0, 0, 22, 51) +[2618554.746] {Default Queue} -> wl_region#95.add(0, 0, 2, 2) +[2618554.750] {Default Queue} -> wl_surface#71.set_opaque_region(wl_region#96) +[2618554.755] {Default Queue} -> wl_surface#71.set_input_region(wl_region#95) +[2618554.760] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618554.765] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618554.769] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) +[2618554.774] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) +[2618554.778] {Default Queue} -> wl_surface#135.damage(0, 0, 2, 2) +[2618554.784] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) +[2618554.789] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618554.795] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618554.799] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618554.804] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618554.808] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618554.813] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618554.818] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2618554.823] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618554.831] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618554.838] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618554.843] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618554.848] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618554.852] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2618554.856] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2618554.865] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) +[2618554.870] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) +[2618554.874] {Default Queue} -> wl_surface#327.damage(0, 0, 2, 2) +[2618554.905] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) +[2618554.924] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618554.933] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) +[2618554.939] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) +[2618554.945] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) +[2618554.950] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) +[2618554.956] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) +[2618554.962] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2618554.968] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618554.974] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618554.979] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618554.985] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618554.991] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618554.996] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618555.001] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2618555.007] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) +[2618555.012] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) +[2618555.018] {Default Queue} -> wl_surface#903.damage(0, 0, 2, 2) +[2618555.024] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618555.031] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618555.036] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) +[2618555.042] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) +[2618555.047] {Default Queue} -> wl_surface#1447.damage(0, 0, 2, 2) +[2618555.053] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618555.059] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) +[2618555.064] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) +[2618555.070] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) +[2618555.075] {Default Queue} -> wl_surface#1607.damage(0, 0, 2, 2) +[2618555.081] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618555.087] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618555.092] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) +[2618555.097] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) +[2618555.103] {Default Queue} -> wl_surface#1772.damage(0, 0, 2, 2) +[2618555.109] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618555.114] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618555.120] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) +[2618555.125] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) +[2618555.131] {Default Queue} -> wl_surface#1927.damage(0, 0, 2, 2) +[2618555.136] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) +[2618555.142] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618555.147] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618555.153] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618555.159] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618555.164] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) +[2618555.169] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) +[2618555.174] {Default Queue} -> wl_surface#2119.damage(0, 0, 2, 2) +[2618555.180] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618555.185] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) +[2618555.191] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) +[2618555.196] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) +[2618555.201] {Default Queue} -> wl_surface#2343.damage(0, 0, 2, 2) +[2618555.213] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618555.223] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) +[2618555.228] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) +[2618555.233] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) +[2618555.238] {Default Queue} -> wl_surface#2508.damage(0, 0, 2, 2) +[2618555.244] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618555.250] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) +[2618555.256] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) +[2618555.261] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) +[2618555.266] {Default Queue} -> wl_surface#2663.damage(0, 0, 2, 2) +[2618555.272] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618555.277] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) +[2618555.283] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) +[2618555.289] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) +[2618555.294] {Default Queue} -> wl_surface#2823.damage(0, 0, 2, 2) +[2618555.299] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) +[2618555.305] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618555.310] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618555.316] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618555.321] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) +[2618555.327] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) +[2618555.332] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) +[2618555.337] {Default Queue} -> wl_surface#3015.damage(0, 0, 2, 2) +[2618555.343] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618555.348] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2618555.354] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2618555.359] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618555.364] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) +[2618555.369] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) +[2618555.375] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) +[2618555.381] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) +[2618555.386] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) +[2618555.391] {Default Queue} -> wl_surface#3239.damage(0, 0, 2, 2) +[2618555.396] {Default Queue} -> wl_surface#3559.damage(0, 0, 2, 2) +[2618555.401] {Default Queue} -> wl_surface#3591.damage(0, 0, 2, 2) +[2618555.407] {Default Queue} -> wl_surface#3623.damage(0, 0, 2, 2) +[2618555.412] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) +[2618555.418] {Default Queue} -> wl_surface#3655.damage(0, 0, 2, 2) +[2618555.423] {Default Queue} -> wl_surface#71.damage(0, 0, 576, 669) +[2618555.441] {Default Queue} -> wl_buffer#93.destroy() +[2618555.448] {Default Queue} -> wl_buffer#94.destroy() +[2618555.453] {Default Queue} -> wl_shm_pool#91.destroy() +[2618555.459] {Default Queue} -> wl_shm_pool#92.destroy() +[2618556.495] {Default Queue} -> wl_shm#29.create_pool(new id wl_shm_pool#3766, fd 583, 1541376) +[2618556.504] {Default Queue} -> wl_shm#29.create_pool(new id wl_shm_pool#3767, fd 584, 1541376) +[2618556.508] {Default Queue} -> wl_shm_pool#3766.create_buffer(new id wl_buffer#3768, 0, 576, 669, 2304, 0) +[2618556.514] {Default Queue} -> wl_shm_pool#3767.create_buffer(new id wl_buffer#3769, 0, 576, 669, 2304, 0) +[2618556.917] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) +[2618556.924] {Default Queue} -> wl_surface#71.commit() +[2618557.396] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) +[2618557.403] {Default Queue} -> wl_surface#71.commit() +[2618557.435] {Default Queue} -> wl_region#95.subtract(0, 0, 596, 718) +[2618557.442] {Default Queue} -> wl_region#95.add(0, 0, 576, 669) +[2618557.447] {Default Queue} -> wl_surface#71.set_opaque_region(wl_region#96) +[2618557.451] {Default Queue} -> wl_surface#71.set_input_region(wl_region#95) +[2618557.511] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) +[2618557.518] {Default Queue} -> wl_surface#71.commit() +[2618557.523] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) +[2618557.534] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) +[2618557.542] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) +[2618557.548] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2618557.552] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2618557.557] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618557.561] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618557.566] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618557.570] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618557.575] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618557.579] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2618557.584] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) +[2618557.589] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) +[2618557.594] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2618557.599] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2618557.603] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618557.608] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) +[2618557.614] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) +[2618557.619] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) +[2618557.624] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) +[2618557.630] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) +[2618557.635] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) +[2618557.639] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) +[2618557.644] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) +[2618557.648] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) +[2618557.661] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) +[2618557.667] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) +[2618557.672] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) +[2618557.676] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) +[2618557.713] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) +[2618557.720] {Default Queue} -> wl_surface#71.commit() +[2618558.824] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) +[2618558.838] {Default Queue} -> wl_surface#71.commit() +[2618558.891] {Default Queue} -> wl_region#95.subtract(0, 0, 596, 718) +[2618558.901] {Default Queue} -> wl_region#95.add(0, 0, 576, 669) +[2618558.906] {Default Queue} -> wl_surface#71.set_opaque_region(wl_region#96) +[2618558.911] {Default Queue} -> wl_surface#71.set_input_region(wl_region#95) +[2618558.971] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) +[2618558.978] {Default Queue} -> wl_surface#71.commit() +[2618559.010] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) +[2618559.017] {Default Queue} -> wl_surface#71.commit() +[2618559.052] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) +[2618559.059] {Default Queue} -> wl_surface#71.commit() +[2618560.126] {Default Queue} -> wl_surface#3655.attach(wl_buffer#3677, 0, 0) +[2618560.132] {Default Queue} -> wl_surface#3655.commit() +[2618561.211] {Default Queue} -> wl_buffer#3683.destroy() +[2618561.220] {Default Queue} -> wl_buffer#3684.destroy() +[2618561.224] {Default Queue} -> wl_shm_pool#3681.destroy() +[2618561.228] {Default Queue} -> wl_shm_pool#3682.destroy() +[2618561.234] {Default Queue} -> wl_region#3679.destroy() +[2618561.238] {Default Queue} -> zwp_primary_selection_source_v1#3671.destroy() +[2618561.249] {Default Queue} -> wl_buffer#3677.destroy() +[2618561.255] {Default Queue} -> wl_buffer#3678.destroy() +[2618561.259] {Default Queue} -> wl_shm_pool#3675.destroy() +[2618561.263] {Default Queue} -> wl_shm_pool#3676.destroy() +[2618561.269] {Default Queue} -> wl_subsurface#3674.destroy() +[2618562.537] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618562.554] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618562.562] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618562.568] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) +[2618562.573] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) +[2618562.583] {Default Queue} -> wl_surface#135.damage(0, 0, 2, 2) +[2618562.594] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) +[2618562.599] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618562.604] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618562.609] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618562.613] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618562.617] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618562.622] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618562.628] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2618562.633] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618562.637] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618562.642] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618562.646] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618562.651] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618562.655] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2618562.660] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2618562.664] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) +[2618562.669] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) +[2618562.673] {Default Queue} -> wl_surface#327.damage(0, 0, 2, 2) +[2618562.677] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) +[2618562.682] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618562.687] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) +[2618562.692] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) +[2618562.696] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) +[2618562.701] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) +[2618562.705] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) +[2618562.710] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2618562.714] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618562.718] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618562.723] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618562.728] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618562.732] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618562.737] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618562.741] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2618562.746] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) +[2618562.750] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) +[2618562.755] {Default Queue} -> wl_surface#903.damage(0, 0, 2, 2) +[2618562.760] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618562.767] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618562.773] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) +[2618562.779] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) +[2618562.784] {Default Queue} -> wl_surface#1447.damage(0, 0, 2, 2) +[2618562.789] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618562.795] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) +[2618562.801] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) +[2618562.806] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) +[2618562.812] {Default Queue} -> wl_surface#1607.damage(0, 0, 2, 2) +[2618562.817] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618562.823] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618562.828] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) +[2618562.835] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) +[2618562.843] {Default Queue} -> wl_surface#1772.damage(0, 0, 2, 2) +[2618562.849] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618562.855] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618562.868] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) +[2618562.872] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) +[2618562.877] {Default Queue} -> wl_surface#1927.damage(0, 0, 2, 2) +[2618562.881] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) +[2618562.886] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618562.891] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618562.899] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618562.906] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618562.911] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) +[2618562.918] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) +[2618562.924] {Default Queue} -> wl_surface#2119.damage(0, 0, 2, 2) +[2618562.929] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618562.934] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) +[2618562.938] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) +[2618562.943] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) +[2618562.947] {Default Queue} -> wl_surface#2343.damage(0, 0, 2, 2) +[2618562.952] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618562.957] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) +[2618562.961] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) +[2618562.965] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) +[2618562.970] {Default Queue} -> wl_surface#2508.damage(0, 0, 2, 2) +[2618562.975] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618562.979] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) +[2618562.984] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) +[2618562.988] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) +[2618562.993] {Default Queue} -> wl_surface#2663.damage(0, 0, 2, 2) +[2618562.997] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618563.002] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) +[2618563.006] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) +[2618563.010] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) +[2618563.015] {Default Queue} -> wl_surface#2823.damage(0, 0, 2, 2) +[2618563.019] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) +[2618563.024] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618563.030] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618563.034] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618563.039] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) +[2618563.043] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) +[2618563.048] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) +[2618563.052] {Default Queue} -> wl_surface#3015.damage(0, 0, 2, 2) +[2618563.056] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618563.061] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2618563.066] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2618563.070] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618563.074] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) +[2618563.080] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) +[2618563.084] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) +[2618563.088] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) +[2618563.093] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) +[2618563.097] {Default Queue} -> wl_surface#3239.damage(0, 0, 2, 2) +[2618563.101] {Default Queue} -> wl_surface#3559.damage(0, 0, 2, 2) +[2618563.106] {Default Queue} -> wl_surface#3591.damage(0, 0, 2, 2) +[2618563.110] {Default Queue} -> wl_surface#3623.damage(0, 0, 2, 2) +[2618563.115] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) +[2618563.119] {Default Queue} -> wl_surface#71.damage(0, 0, 576, 669) +[2618563.123] {Default Queue} -> wl_surface#3.damage(0, 0, 616, 738) +[2618566.001] {Default Queue} -> wl_surface#3.damage(0, 0, 616, 738) +[2618566.015] {Default Queue} -> wl_surface#3.damage(0, 0, 616, 738) +[2618566.164] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) +[2618566.172] {Default Queue} -> wl_surface#19.commit() +[2618566.291] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) +[2618566.298] {Default Queue} -> wl_surface#19.commit() +[2618566.382] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) +[2618566.389] {Default Queue} -> wl_surface#3.commit() +[2618566.394] {Default Queue} -> wl_surface#71.damage(0, 0, 576, 669) +[2618566.399] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) +[2618566.411] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) +[2618566.424] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) +[2618566.429] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2618566.433] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2618566.439] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618566.443] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618566.448] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618566.454] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618566.458] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618566.463] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2618566.468] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) +[2618566.475] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) +[2618566.479] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2618566.484] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2618566.489] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618566.494] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) +[2618566.500] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) +[2618566.505] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) +[2618566.510] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) +[2618566.514] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) +[2618566.519] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) +[2618566.524] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) +[2618566.529] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) +[2618566.533] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) +[2618566.540] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) +[2618566.545] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) +[2618566.550] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) +[2618566.555] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) +[2618566.624] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) +[2618566.632] {Default Queue} -> wl_surface#3.commit() +[2618566.679] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) +[2618566.686] {Default Queue} -> wl_surface#19.commit() +[2618567.797] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) +[2618567.811] {Default Queue} -> wl_surface#3.commit() +[2618567.857] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) +[2618567.869] {Default Queue} -> wl_surface#19.commit() +[2618569.481] {Default Queue} -> wl_surface#3.damage(0, 0, 616, 738) +[2618569.492] {Default Queue} -> wl_surface#3.damage(0, 0, 616, 738) +[2618569.537] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) +[2618569.547] {Default Queue} -> wl_surface#19.commit() +[2618569.616] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) +[2618569.623] {Default Queue} -> wl_surface#19.commit() +[2618569.663] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) +[2618569.670] {Default Queue} -> wl_surface#3.commit() +[2618569.706] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) +[2618569.716] {Default Queue} -> wl_surface#3.commit() +[2618569.764] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) +[2618569.772] {Default Queue} -> wl_surface#3.commit() +[2618569.811] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) +[2618569.818] {Default Queue} -> wl_surface#19.commit() +[2618569.833] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2618569.839] {Default Queue} -> wl_surface#43.commit() +[2618569.846] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2618569.851] {Default Queue} -> wl_surface#43.commit() +[2618570.871] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2618570.877] {Default Queue} -> wl_surface#43.commit() +[2618570.891] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618570.896] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618570.901] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618570.906] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618570.914] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618570.923] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618570.934] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618570.939] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618570.952] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618570.959] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618570.965] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618570.970] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618570.979] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618570.985] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618570.990] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618570.994] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618571.001] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618571.005] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618571.010] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618571.016] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618571.051] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618571.059] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618571.066] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618571.072] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618571.090] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618571.096] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618571.209] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618571.222] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618571.227] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618571.232] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618571.243] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618571.248] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618571.298] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618571.304] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618571.308] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618571.312] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618571.318] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618571.323] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618571.373] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618571.379] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618571.383] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618571.394] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618571.400] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618571.404] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618571.486] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618571.492] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618571.497] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618571.501] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618571.507] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618571.512] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618571.555] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) +[2618571.561] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) +[2618571.565] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) +[2618571.569] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) +[2618571.575] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618571.580] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2618571.588] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2618571.592] {Default Queue} -> wl_surface#43.commit() +[2618571.598] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2618571.602] {Default Queue} -> wl_surface#43.commit() +[2618571.610] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2618571.621] {Default Queue} -> wl_surface#43.commit() +[2618571.634] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) +[2618571.638] {Default Queue} -> wl_surface#199.commit() +[2618572.706] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) +[2618572.721] {Default Queue} -> wl_surface#199.commit() +[2618572.737] {Default Queue} -> wl_region#223.subtract(0, 0, 19, 48) +[2618572.745] {Default Queue} -> wl_region#223.add(-20, -49, 19, 48) +[2618572.752] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618572.757] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618572.872] {Default Queue} -> wl_region#223.subtract(0, 0, 19, 48) +[2618572.884] {Default Queue} -> wl_region#223.add(-20, -49, 19, 48) +[2618572.890] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618572.896] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618572.908] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618572.915] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618573.008] {Default Queue} -> wl_region#223.subtract(0, 0, 19, 48) +[2618573.017] {Default Queue} -> wl_region#223.add(-20, -49, 19, 48) +[2618573.023] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618573.029] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618573.038] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618573.044] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618573.052] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) +[2618573.058] {Default Queue} -> wl_surface#199.commit() +[2618573.064] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) +[2618573.070] {Default Queue} -> wl_surface#199.commit() +[2618573.079] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) +[2618573.086] {Default Queue} -> wl_surface#199.commit() +[2618573.094] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) +[2618573.102] {Default Queue} -> wl_surface#263.commit() +[2618574.169] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) +[2618574.181] {Default Queue} -> wl_surface#263.commit() +[2618574.195] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) +[2618574.200] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) +[2618574.204] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618574.209] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618574.219] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) +[2618574.224] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) +[2618574.228] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618574.232] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618574.238] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) +[2618574.242] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) +[2618574.246] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618574.250] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618574.256] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) +[2618574.260] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) +[2618574.265] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618574.269] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618574.274] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) +[2618574.278] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) +[2618574.282] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618574.286] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618574.371] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) +[2618574.377] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) +[2618574.381] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618574.385] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618574.392] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618574.402] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618574.410] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) +[2618574.415] {Default Queue} -> wl_surface#263.commit() +[2618574.419] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) +[2618574.424] {Default Queue} -> wl_surface#263.commit() +[2618574.430] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) +[2618574.435] {Default Queue} -> wl_surface#263.commit() +[2618574.440] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) +[2618574.445] {Default Queue} -> wl_surface#231.commit() +[2618575.508] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) +[2618575.514] {Default Queue} -> wl_surface#231.commit() +[2618575.522] {Default Queue} -> wl_region#255.subtract(0, 0, 19, 48) +[2618575.526] {Default Queue} -> wl_region#255.add(-20, -49, 19, 48) +[2618575.531] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) +[2618575.535] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) +[2618575.540] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) +[2618575.544] {Default Queue} -> wl_surface#231.commit() +[2618575.549] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) +[2618575.553] {Default Queue} -> wl_surface#231.commit() +[2618575.559] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) +[2618575.563] {Default Queue} -> wl_surface#231.commit() +[2618575.569] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) +[2618575.573] {Default Queue} -> wl_surface#167.commit() +[2618576.639] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) +[2618576.652] {Default Queue} -> wl_surface#167.commit() +[2618576.664] {Default Queue} -> wl_region#191.subtract(0, 0, 22, 51) +[2618576.673] {Default Queue} -> wl_region#191.add(-20, -49, 19, 48) +[2618576.679] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) +[2618576.685] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) +[2618576.693] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) +[2618576.699] {Default Queue} -> wl_surface#167.commit() +[2618576.705] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) +[2618576.711] {Default Queue} -> wl_surface#167.commit() +[2618576.719] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) +[2618576.725] {Default Queue} -> wl_surface#167.commit() +[2618576.734] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) +[2618576.739] {Default Queue} -> wl_surface#135.commit() +[2618577.805] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) +[2618577.819] {Default Queue} -> wl_surface#135.commit() +[2618577.832] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) +[2618577.843] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) +[2618577.848] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618577.853] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618577.866] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) +[2618577.870] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) +[2618577.874] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618577.879] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618577.885] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) +[2618577.889] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) +[2618577.893] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618577.897] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618577.902] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) +[2618577.907] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) +[2618577.911] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618577.915] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618577.922] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) +[2618577.926] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) +[2618577.931] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618577.940] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618577.948] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) +[2618577.952] {Default Queue} -> wl_surface#135.commit() +[2618577.957] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) +[2618577.962] {Default Queue} -> wl_surface#135.commit() +[2618577.968] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) +[2618577.973] {Default Queue} -> wl_surface#135.commit() +[2618577.979] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) +[2618577.984] {Default Queue} -> wl_surface#295.commit() +[2618579.046] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) +[2618579.054] {Default Queue} -> wl_surface#295.commit() +[2618579.064] {Default Queue} -> wl_region#319.subtract(0, 0, 2, 2) +[2618579.068] {Default Queue} -> wl_region#319.add(0, 0, 2, 2) +[2618579.073] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618579.077] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618579.369] {Default Queue} -> wl_region#319.subtract(0, 0, 2, 2) +[2618579.375] {Default Queue} -> wl_region#319.add(0, 0, 2, 2) +[2618579.380] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618579.384] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618579.392] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) +[2618579.397] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) +[2618579.640] {Default Queue} -> wl_region#319.subtract(0, 0, 2, 2) +[2618579.645] {Default Queue} -> wl_region#319.add(0, 0, 2, 2) +[2618579.650] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618579.654] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618579.660] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) +[2618579.664] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) +[2618579.669] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) +[2618579.673] {Default Queue} -> wl_surface#295.commit() +[2618579.678] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) +[2618579.682] {Default Queue} -> wl_surface#295.commit() +[2618579.688] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) +[2618579.692] {Default Queue} -> wl_surface#295.commit() +[2618579.699] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) +[2618579.703] {Default Queue} -> wl_surface#391.commit() +[2618580.766] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) +[2618580.773] {Default Queue} -> wl_surface#391.commit() +[2618580.783] {Default Queue} -> wl_region#415.subtract(0, 0, 19, 48) +[2618580.787] {Default Queue} -> wl_region#415.add(-20, -49, 19, 48) +[2618580.792] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618580.796] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618580.900] {Default Queue} -> wl_region#415.subtract(0, 0, 19, 48) +[2618580.906] {Default Queue} -> wl_region#415.add(-20, -49, 19, 48) +[2618580.910] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618580.915] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618580.920] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618580.925] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618580.991] {Default Queue} -> wl_region#415.subtract(0, 0, 19, 48) +[2618580.996] {Default Queue} -> wl_region#415.add(-20, -49, 19, 48) +[2618581.000] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618581.004] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618581.010] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618581.015] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618581.020] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) +[2618581.024] {Default Queue} -> wl_surface#391.commit() +[2618581.028] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) +[2618581.033] {Default Queue} -> wl_surface#391.commit() +[2618581.039] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) +[2618581.049] {Default Queue} -> wl_surface#391.commit() +[2618581.058] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) +[2618581.062] {Default Queue} -> wl_surface#519.commit() +[2618582.130] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) +[2618582.146] {Default Queue} -> wl_surface#519.commit() +[2618582.162] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) +[2618582.168] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) +[2618582.175] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618582.181] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618582.198] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) +[2618582.206] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) +[2618582.213] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618582.219] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618582.233] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) +[2618582.240] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) +[2618582.247] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618582.253] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618582.262] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) +[2618582.269] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) +[2618582.275] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618582.281] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618582.290] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) +[2618582.296] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) +[2618582.302] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618582.308] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618582.314] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) +[2618582.321] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) +[2618582.327] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618582.333] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618582.341] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) +[2618582.347] {Default Queue} -> wl_surface#519.commit() +[2618582.354] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) +[2618582.360] {Default Queue} -> wl_surface#519.commit() +[2618582.368] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) +[2618582.372] {Default Queue} -> wl_surface#519.commit() +[2618582.380] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) +[2618582.386] {Default Queue} -> wl_surface#551.commit() +[2618583.452] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) +[2618583.461] {Default Queue} -> wl_surface#551.commit() +[2618583.471] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) +[2618583.475] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) +[2618583.479] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618583.483] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618583.491] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) +[2618583.516] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) +[2618583.521] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618583.525] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618583.532] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) +[2618583.536] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) +[2618583.540] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618583.544] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618583.549] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) +[2618583.554] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) +[2618583.558] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618583.562] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618583.566] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) +[2618583.575] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) +[2618583.582] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618583.586] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618583.591] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) +[2618583.595] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) +[2618583.600] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618583.604] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618583.608] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) +[2618583.612] {Default Queue} -> wl_surface#551.commit() +[2618583.616] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) +[2618583.621] {Default Queue} -> wl_surface#551.commit() +[2618583.627] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) +[2618583.631] {Default Queue} -> wl_surface#551.commit() +[2618583.637] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) +[2618583.642] {Default Queue} -> wl_surface#583.commit() +[2618584.703] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) +[2618584.710] {Default Queue} -> wl_surface#583.commit() +[2618584.717] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) +[2618584.722] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) +[2618584.726] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618584.730] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618584.736] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) +[2618584.740] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) +[2618584.744] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618584.748] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618584.755] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) +[2618584.760] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) +[2618584.764] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618584.768] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618584.772] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) +[2618584.777] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) +[2618584.781] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618584.785] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618584.789] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) +[2618584.793] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) +[2618584.798] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618584.801] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618584.806] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) +[2618584.810] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) +[2618584.814] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618584.818] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618584.823] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) +[2618584.827] {Default Queue} -> wl_surface#583.commit() +[2618584.831] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) +[2618584.836] {Default Queue} -> wl_surface#583.commit() +[2618584.841] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) +[2618584.845] {Default Queue} -> wl_surface#583.commit() +[2618584.851] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) +[2618584.856] {Default Queue} -> wl_surface#615.commit() +[2618585.918] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) +[2618585.925] {Default Queue} -> wl_surface#615.commit() +[2618585.935] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) +[2618585.939] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) +[2618585.944] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618585.948] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618585.954] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) +[2618585.962] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) +[2618585.969] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618585.973] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618585.980] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) +[2618585.984] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) +[2618585.988] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618585.992] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618585.997] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) +[2618586.001] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) +[2618586.005] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618586.009] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618586.014] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) +[2618586.018] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) +[2618586.022] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618586.026] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618586.031] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) +[2618586.035] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) +[2618586.039] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618586.043] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618586.048] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) +[2618586.052] {Default Queue} -> wl_surface#615.commit() +[2618586.056] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) +[2618586.060] {Default Queue} -> wl_surface#615.commit() +[2618586.066] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) +[2618586.070] {Default Queue} -> wl_surface#615.commit() +[2618586.076] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) +[2618586.080] {Default Queue} -> wl_surface#647.commit() +[2618587.146] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) +[2618587.161] {Default Queue} -> wl_surface#647.commit() +[2618587.175] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) +[2618587.182] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) +[2618587.187] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618587.193] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618587.203] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) +[2618587.207] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) +[2618587.211] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618587.215] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618587.228] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) +[2618587.232] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) +[2618587.237] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618587.241] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618587.246] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) +[2618587.250] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) +[2618587.254] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618587.258] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618587.263] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) +[2618587.267] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) +[2618587.271] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618587.275] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618587.280] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) +[2618587.284] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) +[2618587.290] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618587.296] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618587.302] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) +[2618587.307] {Default Queue} -> wl_surface#647.commit() +[2618587.318] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) +[2618587.328] {Default Queue} -> wl_surface#647.commit() +[2618587.337] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) +[2618587.342] {Default Queue} -> wl_surface#647.commit() +[2618587.350] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) +[2618587.356] {Default Queue} -> wl_surface#487.commit() +[2618588.422] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) +[2618588.437] {Default Queue} -> wl_surface#487.commit() +[2618588.448] {Default Queue} -> wl_region#511.subtract(0, 0, 19, 48) +[2618588.453] {Default Queue} -> wl_region#511.add(-20, -49, 19, 48) +[2618588.458] {Default Queue} -> wl_surface#487.set_opaque_region(wl_region#512) +[2618588.463] {Default Queue} -> wl_surface#487.set_input_region(wl_region#511) +[2618588.469] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) +[2618588.473] {Default Queue} -> wl_surface#487.commit() +[2618588.477] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) +[2618588.481] {Default Queue} -> wl_surface#487.commit() +[2618588.488] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) +[2618588.492] {Default Queue} -> wl_surface#487.commit() +[2618588.499] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) +[2618588.505] {Default Queue} -> wl_surface#711.commit() +[2618589.570] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) +[2618589.577] {Default Queue} -> wl_surface#711.commit() +[2618589.588] {Default Queue} -> wl_region#735.subtract(0, 0, 19, 48) +[2618589.593] {Default Queue} -> wl_region#735.add(-20, -49, 19, 48) +[2618589.597] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2618589.601] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2618589.723] {Default Queue} -> wl_region#735.subtract(0, 0, 19, 48) +[2618589.728] {Default Queue} -> wl_region#735.add(-20, -49, 19, 48) +[2618589.733] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2618589.737] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2618589.744] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618589.749] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618589.828] {Default Queue} -> wl_region#735.subtract(0, 0, 19, 48) +[2618589.833] {Default Queue} -> wl_region#735.add(-20, -49, 19, 48) +[2618589.837] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2618589.841] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2618589.846] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618589.850] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618589.856] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) +[2618589.860] {Default Queue} -> wl_surface#711.commit() +[2618589.869] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) +[2618589.873] {Default Queue} -> wl_surface#711.commit() +[2618589.880] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) +[2618589.884] {Default Queue} -> wl_surface#711.commit() +[2618589.890] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) +[2618589.894] {Default Queue} -> wl_surface#743.commit() +[2618590.958] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) +[2618590.969] {Default Queue} -> wl_surface#743.commit() +[2618590.981] {Default Queue} -> wl_region#767.subtract(0, 0, 19, 48) +[2618590.986] {Default Queue} -> wl_region#767.add(-20, -49, 19, 48) +[2618590.990] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2618590.994] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2618591.102] {Default Queue} -> wl_region#767.subtract(0, 0, 19, 48) +[2618591.107] {Default Queue} -> wl_region#767.add(-20, -49, 19, 48) +[2618591.111] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2618591.115] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2618591.122] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618591.126] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618591.208] {Default Queue} -> wl_region#767.subtract(0, 0, 19, 48) +[2618591.217] {Default Queue} -> wl_region#767.add(-20, -49, 19, 48) +[2618591.221] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2618591.225] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2618591.230] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618591.235] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618591.240] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) +[2618591.244] {Default Queue} -> wl_surface#743.commit() +[2618591.249] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) +[2618591.253] {Default Queue} -> wl_surface#743.commit() +[2618591.259] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) +[2618591.263] {Default Queue} -> wl_surface#743.commit() +[2618591.270] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) +[2618591.274] {Default Queue} -> wl_surface#775.commit() +[2618591.695] {Display Queue} wl_display#1.delete_id(381) +[2618591.703] {Display Queue} wl_display#1.delete_id(382) +[2618591.707] {Display Queue} wl_display#1.delete_id(379) +[2618591.711] {Display Queue} wl_display#1.delete_id(380) +[2618591.715] {Display Queue} wl_display#1.delete_id(957) +[2618591.720] {Display Queue} wl_display#1.delete_id(958) +[2618591.724] {Display Queue} wl_display#1.delete_id(955) +[2618591.728] {Display Queue} wl_display#1.delete_id(956) +[2618591.732] {Display Queue} wl_display#1.delete_id(1501) +[2618591.736] {Display Queue} wl_display#1.delete_id(1502) +[2618591.740] {Display Queue} wl_display#1.delete_id(1499) +[2618591.744] {Display Queue} wl_display#1.delete_id(1500) +[2618591.747] {Display Queue} wl_display#1.delete_id(1661) +[2618591.752] {Display Queue} wl_display#1.delete_id(1662) +[2618591.756] {Display Queue} wl_display#1.delete_id(1659) +[2618591.760] {Display Queue} wl_display#1.delete_id(1660) +[2618591.764] {Display Queue} wl_display#1.delete_id(1821) +[2618591.768] {Display Queue} wl_display#1.delete_id(1822) +[2618591.772] {Display Queue} wl_display#1.delete_id(1819) +[2618591.775] {Display Queue} wl_display#1.delete_id(1820) +[2618591.780] {Display Queue} wl_display#1.delete_id(1981) +[2618591.784] {Display Queue} wl_display#1.delete_id(1982) +[2618591.788] {Display Queue} wl_display#1.delete_id(1979) +[2618591.792] {Display Queue} wl_display#1.delete_id(1980) +[2618591.795] {Display Queue} wl_display#1.delete_id(2333) +[2618591.799] {Display Queue} wl_display#1.delete_id(2334) +[2618591.803] {Display Queue} wl_display#1.delete_id(2331) +[2618591.807] {Display Queue} wl_display#1.delete_id(2332) +[2618591.811] {Display Queue} wl_display#1.delete_id(2173) +[2618591.815] {Display Queue} wl_display#1.delete_id(2174) +[2618591.819] {Display Queue} wl_display#1.delete_id(2171) +[2618591.823] {Display Queue} wl_display#1.delete_id(2172) +[2618591.827] {Display Queue} wl_display#1.delete_id(2397) +[2618591.831] {Display Queue} wl_display#1.delete_id(2398) +[2618591.835] {Display Queue} wl_display#1.delete_id(2395) +[2618591.838] {Display Queue} wl_display#1.delete_id(2396) +[2618591.842] {Display Queue} wl_display#1.delete_id(2557) +[2618591.846] {Display Queue} wl_display#1.delete_id(2558) +[2618591.850] {Display Queue} wl_display#1.delete_id(2555) +[2618591.854] {Display Queue} wl_display#1.delete_id(2556) +[2618591.858] {Display Queue} wl_display#1.delete_id(2717) +[2618591.869] {Display Queue} wl_display#1.delete_id(2718) +[2618591.873] {Display Queue} wl_display#1.delete_id(2715) +[2618591.877] {Display Queue} wl_display#1.delete_id(2716) +[2618591.881] {Display Queue} wl_display#1.delete_id(2877) +[2618591.885] {Display Queue} wl_display#1.delete_id(2878) +[2618591.889] {Display Queue} wl_display#1.delete_id(2875) +[2618591.893] {Display Queue} wl_display#1.delete_id(2876) +[2618591.897] {Display Queue} wl_display#1.delete_id(3229) +[2618591.901] {Display Queue} wl_display#1.delete_id(3230) +[2618591.905] {Display Queue} wl_display#1.delete_id(3227) +[2618591.909] {Display Queue} wl_display#1.delete_id(3228) +[2618591.928] {Display Queue} wl_display#1.delete_id(3069) +[2618591.934] {Display Queue} wl_display#1.delete_id(3070) +[2618591.938] {Display Queue} wl_display#1.delete_id(3067) +[2618591.942] {Display Queue} wl_display#1.delete_id(3068) +[2618591.946] {Display Queue} wl_display#1.delete_id(3421) +[2618591.950] {Display Queue} wl_display#1.delete_id(3422) +[2618591.954] {Display Queue} wl_display#1.delete_id(3419) +[2618591.958] {Display Queue} wl_display#1.delete_id(3420) +[2618591.962] {Display Queue} wl_display#1.delete_id(3453) +[2618591.966] {Display Queue} wl_display#1.delete_id(3454) +[2618591.970] {Display Queue} wl_display#1.delete_id(3451) +[2618591.974] {Display Queue} wl_display#1.delete_id(3452) +[2618591.978] {Display Queue} wl_display#1.delete_id(3517) +[2618591.982] {Display Queue} wl_display#1.delete_id(3518) +[2618591.986] {Display Queue} wl_display#1.delete_id(3515) +[2618591.990] {Display Queue} wl_display#1.delete_id(3516) +[2618591.994] {Display Queue} wl_display#1.delete_id(3485) +[2618591.998] {Display Queue} wl_display#1.delete_id(3486) +[2618592.002] {Display Queue} wl_display#1.delete_id(3483) +[2618592.006] {Display Queue} wl_display#1.delete_id(3484) +[2618592.010] {Display Queue} wl_display#1.delete_id(3293) +[2618592.014] {Display Queue} wl_display#1.delete_id(3294) +[2618592.018] {Display Queue} wl_display#1.delete_id(3291) +[2618592.022] {Display Queue} wl_display#1.delete_id(3292) +[2618592.025] {Display Queue} wl_display#1.delete_id(93) +[2618592.029] {Display Queue} wl_display#1.delete_id(94) +[2618592.033] {Display Queue} wl_display#1.delete_id(91) +[2618592.037] {Display Queue} wl_display#1.delete_id(92) +[2618592.041] {Display Queue} wl_display#1.delete_id(3683) +[2618592.045] {Display Queue} wl_display#1.delete_id(3684) +[2618592.049] {Display Queue} wl_display#1.delete_id(3681) +[2618592.053] {Display Queue} wl_display#1.delete_id(3682) +[2618592.057] {Display Queue} wl_display#1.delete_id(3679) +[2618592.061] {Display Queue} wl_display#1.delete_id(3671) +[2618592.065] {Display Queue} wl_display#1.delete_id(3677) +[2618592.069] {Display Queue} wl_display#1.delete_id(3678) +[2618592.073] {Display Queue} wl_display#1.delete_id(3675) +[2618592.077] {Display Queue} wl_display#1.delete_id(3676) +[2618592.081] {Display Queue} wl_display#1.delete_id(3674) +[2618592.085] {Default Queue} wl_pointer#24.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.091] {Default Queue} -> wl_pointer#24.set_cursor(626, wl_surface#41, 0, 0) +[2618592.096] {Default Queue} wl_pointer#81.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.101] {Default Queue} -> wl_pointer#81.set_cursor(626, wl_surface#41, 0, 0) +[2618592.105] {Default Queue} wl_pointer#105.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.110] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#41, 0, 0) +[2618592.114] {Default Queue} wl_pointer#137.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.119] {Default Queue} -> wl_pointer#137.set_cursor(626, wl_surface#41, 0, 0) +[2618592.123] {Default Queue} wl_pointer#169.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.128] {Default Queue} -> wl_pointer#169.set_cursor(626, wl_surface#41, 0, 0) +[2618592.132] {Default Queue} wl_pointer#201.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.136] {Default Queue} -> wl_pointer#201.set_cursor(626, wl_surface#41, 0, 0) +[2618592.140] {Default Queue} wl_pointer#233.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.145] {Default Queue} -> wl_pointer#233.set_cursor(626, wl_surface#41, 0, 0) +[2618592.149] {Default Queue} wl_pointer#265.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.153] {Default Queue} -> wl_pointer#265.set_cursor(626, wl_surface#41, 0, 0) +[2618592.158] {Default Queue} wl_pointer#297.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.162] {Default Queue} -> wl_pointer#297.set_cursor(626, wl_surface#41, 0, 0) +[2618592.167] {Default Queue} wl_pointer#329.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.171] {Default Queue} -> wl_pointer#329.set_cursor(626, wl_surface#41, 0, 0) +[2618592.178] {Default Queue} wl_pointer#361.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.184] {Default Queue} -> wl_pointer#361.set_cursor(626, wl_surface#41, 0, 0) +[2618592.188] {Default Queue} wl_pointer#393.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.193] {Default Queue} -> wl_pointer#393.set_cursor(626, wl_surface#41, 0, 0) +[2618592.197] {Default Queue} wl_pointer#425.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.201] {Default Queue} -> wl_pointer#425.set_cursor(626, wl_surface#41, 0, 0) +[2618592.206] {Default Queue} wl_pointer#457.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.210] {Default Queue} -> wl_pointer#457.set_cursor(626, wl_surface#41, 0, 0) +[2618592.214] {Default Queue} wl_pointer#489.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.218] {Default Queue} -> wl_pointer#489.set_cursor(626, wl_surface#41, 0, 0) +[2618592.223] {Default Queue} wl_pointer#521.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.227] {Default Queue} -> wl_pointer#521.set_cursor(626, wl_surface#41, 0, 0) +[2618592.231] {Default Queue} wl_pointer#553.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.236] {Default Queue} -> wl_pointer#553.set_cursor(626, wl_surface#41, 0, 0) +[2618592.240] {Default Queue} wl_pointer#585.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.244] {Default Queue} -> wl_pointer#585.set_cursor(626, wl_surface#41, 0, 0) +[2618592.249] {Default Queue} wl_pointer#617.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.253] {Default Queue} -> wl_pointer#617.set_cursor(626, wl_surface#41, 0, 0) +[2618592.257] {Default Queue} wl_pointer#649.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.261] {Default Queue} -> wl_pointer#649.set_cursor(626, wl_surface#41, 0, 0) +[2618592.266] {Default Queue} wl_pointer#681.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.270] {Default Queue} -> wl_pointer#681.set_cursor(626, wl_surface#41, 0, 0) +[2618592.274] {Default Queue} wl_pointer#713.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.279] {Default Queue} -> wl_pointer#713.set_cursor(626, wl_surface#41, 0, 0) +[2618592.283] {Default Queue} wl_pointer#745.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.287] {Default Queue} -> wl_pointer#745.set_cursor(626, wl_surface#41, 0, 0) +[2618592.291] {Default Queue} wl_pointer#777.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.296] {Default Queue} -> wl_pointer#777.set_cursor(626, wl_surface#41, 0, 0) +[2618592.300] {Default Queue} wl_pointer#809.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.304] {Default Queue} -> wl_pointer#809.set_cursor(626, wl_surface#41, 0, 0) +[2618592.308] {Default Queue} wl_pointer#841.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.313] {Default Queue} -> wl_pointer#841.set_cursor(626, wl_surface#41, 0, 0) +[2618592.317] {Default Queue} wl_pointer#873.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.322] {Default Queue} -> wl_pointer#873.set_cursor(626, wl_surface#41, 0, 0) +[2618592.326] {Default Queue} wl_pointer#905.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.330] {Default Queue} -> wl_pointer#905.set_cursor(626, wl_surface#41, 0, 0) +[2618592.335] {Default Queue} wl_pointer#937.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.339] {Default Queue} -> wl_pointer#937.set_cursor(626, wl_surface#41, 0, 0) +[2618592.343] {Default Queue} wl_pointer#969.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.348] {Default Queue} -> wl_pointer#969.set_cursor(626, wl_surface#41, 0, 0) +[2618592.352] {Default Queue} wl_pointer#1001.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.356] {Default Queue} -> wl_pointer#1001.set_cursor(626, wl_surface#41, 0, 0) +[2618592.361] {Default Queue} wl_pointer#1033.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.365] {Default Queue} -> wl_pointer#1033.set_cursor(626, wl_surface#41, 0, 0) +[2618592.369] {Default Queue} wl_pointer#1065.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.376] {Default Queue} -> wl_pointer#1065.set_cursor(626, wl_surface#41, 0, 0) +[2618592.382] {Default Queue} wl_pointer#1097.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.387] {Default Queue} -> wl_pointer#1097.set_cursor(626, wl_surface#41, 0, 0) +[2618592.391] {Default Queue} wl_pointer#1129.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.395] {Default Queue} -> wl_pointer#1129.set_cursor(626, wl_surface#41, 0, 0) +[2618592.400] {Default Queue} wl_pointer#1161.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.404] {Default Queue} -> wl_pointer#1161.set_cursor(626, wl_surface#41, 0, 0) +[2618592.408] {Default Queue} wl_pointer#1193.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.412] {Default Queue} -> wl_pointer#1193.set_cursor(626, wl_surface#41, 0, 0) +[2618592.417] {Default Queue} wl_pointer#1225.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.421] {Default Queue} -> wl_pointer#1225.set_cursor(626, wl_surface#41, 0, 0) +[2618592.425] {Default Queue} wl_pointer#1257.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.430] {Default Queue} -> wl_pointer#1257.set_cursor(626, wl_surface#41, 0, 0) +[2618592.434] {Default Queue} wl_pointer#1289.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.438] {Default Queue} -> wl_pointer#1289.set_cursor(626, wl_surface#41, 0, 0) +[2618592.443] {Default Queue} wl_pointer#1321.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.447] {Default Queue} -> wl_pointer#1321.set_cursor(626, wl_surface#41, 0, 0) +[2618592.451] {Default Queue} wl_pointer#1353.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.455] {Default Queue} -> wl_pointer#1353.set_cursor(626, wl_surface#41, 0, 0) +[2618592.460] {Default Queue} wl_pointer#1385.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.464] {Default Queue} -> wl_pointer#1385.set_cursor(626, wl_surface#41, 0, 0) +[2618592.468] {Default Queue} wl_pointer#1417.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.472] {Default Queue} -> wl_pointer#1417.set_cursor(626, wl_surface#41, 0, 0) +[2618592.477] {Default Queue} wl_pointer#1449.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.481] {Default Queue} -> wl_pointer#1449.set_cursor(626, wl_surface#41, 0, 0) +[2618592.485] {Default Queue} wl_pointer#1481.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.490] {Default Queue} -> wl_pointer#1481.set_cursor(626, wl_surface#41, 0, 0) +[2618592.494] {Default Queue} wl_pointer#1513.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.498] {Default Queue} -> wl_pointer#1513.set_cursor(626, wl_surface#41, 0, 0) +[2618592.502] {Default Queue} wl_pointer#1545.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.507] {Default Queue} -> wl_pointer#1545.set_cursor(626, wl_surface#41, 0, 0) +[2618592.511] {Default Queue} wl_pointer#1577.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.515] {Default Queue} -> wl_pointer#1577.set_cursor(626, wl_surface#41, 0, 0) +[2618592.520] {Default Queue} wl_pointer#1609.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.524] {Default Queue} -> wl_pointer#1609.set_cursor(626, wl_surface#41, 0, 0) +[2618592.528] {Default Queue} wl_pointer#1641.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.533] {Default Queue} -> wl_pointer#1641.set_cursor(626, wl_surface#41, 0, 0) +[2618592.537] {Default Queue} wl_pointer#1673.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.541] {Default Queue} -> wl_pointer#1673.set_cursor(626, wl_surface#41, 0, 0) +[2618592.546] {Default Queue} wl_pointer#1705.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.550] {Default Queue} -> wl_pointer#1705.set_cursor(626, wl_surface#41, 0, 0) +[2618592.554] {Default Queue} wl_pointer#1737.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.559] {Default Queue} -> wl_pointer#1737.set_cursor(626, wl_surface#41, 0, 0) +[2618592.563] {Default Queue} wl_pointer#1762.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.568] {Default Queue} -> wl_pointer#1762.set_cursor(626, wl_surface#41, 0, 0) +[2618592.582] {Default Queue} wl_pointer#1801.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.588] {Default Queue} -> wl_pointer#1801.set_cursor(626, wl_surface#41, 0, 0) +[2618592.592] {Default Queue} wl_pointer#1833.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.597] {Default Queue} -> wl_pointer#1833.set_cursor(626, wl_surface#41, 0, 0) +[2618592.601] {Default Queue} wl_pointer#1865.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.605] {Default Queue} -> wl_pointer#1865.set_cursor(626, wl_surface#41, 0, 0) +[2618592.609] {Default Queue} wl_pointer#1897.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.614] {Default Queue} -> wl_pointer#1897.set_cursor(626, wl_surface#41, 0, 0) +[2618592.618] {Default Queue} wl_pointer#1929.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.623] {Default Queue} -> wl_pointer#1929.set_cursor(626, wl_surface#41, 0, 0) +[2618592.627] {Default Queue} wl_pointer#1961.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.631] {Default Queue} -> wl_pointer#1961.set_cursor(626, wl_surface#41, 0, 0) +[2618592.635] {Default Queue} wl_pointer#1993.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.640] {Default Queue} -> wl_pointer#1993.set_cursor(626, wl_surface#41, 0, 0) +[2618592.644] {Default Queue} wl_pointer#2025.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.648] {Default Queue} -> wl_pointer#2025.set_cursor(626, wl_surface#41, 0, 0) +[2618592.653] {Default Queue} wl_pointer#2057.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.657] {Default Queue} -> wl_pointer#2057.set_cursor(626, wl_surface#41, 0, 0) +[2618592.661] {Default Queue} wl_pointer#2089.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.666] {Default Queue} -> wl_pointer#2089.set_cursor(626, wl_surface#41, 0, 0) +[2618592.670] {Default Queue} wl_pointer#2121.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.674] {Default Queue} -> wl_pointer#2121.set_cursor(626, wl_surface#41, 0, 0) +[2618592.679] {Default Queue} wl_pointer#2153.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.683] {Default Queue} -> wl_pointer#2153.set_cursor(626, wl_surface#41, 0, 0) +[2618592.687] {Default Queue} wl_pointer#2185.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.692] {Default Queue} -> wl_pointer#2185.set_cursor(626, wl_surface#41, 0, 0) +[2618592.696] {Default Queue} wl_pointer#2217.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.700] {Default Queue} -> wl_pointer#2217.set_cursor(626, wl_surface#41, 0, 0) +[2618592.704] {Default Queue} wl_pointer#2249.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.709] {Default Queue} -> wl_pointer#2249.set_cursor(626, wl_surface#41, 0, 0) +[2618592.713] {Default Queue} wl_pointer#2281.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.717] {Default Queue} -> wl_pointer#2281.set_cursor(626, wl_surface#41, 0, 0) +[2618592.722] {Default Queue} wl_pointer#2313.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.726] {Default Queue} -> wl_pointer#2313.set_cursor(626, wl_surface#41, 0, 0) +[2618592.730] {Default Queue} wl_pointer#2345.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.735] {Default Queue} -> wl_pointer#2345.set_cursor(626, wl_surface#41, 0, 0) +[2618592.739] {Default Queue} wl_pointer#2377.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.743] {Default Queue} -> wl_pointer#2377.set_cursor(626, wl_surface#41, 0, 0) +[2618592.748] {Default Queue} wl_pointer#2409.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.752] {Default Queue} -> wl_pointer#2409.set_cursor(626, wl_surface#41, 0, 0) +[2618592.756] {Default Queue} wl_pointer#2441.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.761] {Default Queue} -> wl_pointer#2441.set_cursor(626, wl_surface#41, 0, 0) +[2618592.765] {Default Queue} wl_pointer#2473.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.769] {Default Queue} -> wl_pointer#2473.set_cursor(626, wl_surface#41, 0, 0) +[2618592.777] {Default Queue} wl_pointer#2498.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.783] {Default Queue} -> wl_pointer#2498.set_cursor(626, wl_surface#41, 0, 0) +[2618592.787] {Default Queue} wl_pointer#2537.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.791] {Default Queue} -> wl_pointer#2537.set_cursor(626, wl_surface#41, 0, 0) +[2618592.795] {Default Queue} wl_pointer#2569.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.800] {Default Queue} -> wl_pointer#2569.set_cursor(626, wl_surface#41, 0, 0) +[2618592.804] {Default Queue} wl_pointer#2601.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.808] {Default Queue} -> wl_pointer#2601.set_cursor(626, wl_surface#41, 0, 0) +[2618592.812] {Default Queue} wl_pointer#2633.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.817] {Default Queue} -> wl_pointer#2633.set_cursor(626, wl_surface#41, 0, 0) +[2618592.821] {Default Queue} wl_pointer#2665.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.826] {Default Queue} -> wl_pointer#2665.set_cursor(626, wl_surface#41, 0, 0) +[2618592.830] {Default Queue} wl_pointer#2697.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.834] {Default Queue} -> wl_pointer#2697.set_cursor(626, wl_surface#41, 0, 0) +[2618592.838] {Default Queue} wl_pointer#2729.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.843] {Default Queue} -> wl_pointer#2729.set_cursor(626, wl_surface#41, 0, 0) +[2618592.847] {Default Queue} wl_pointer#2761.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.852] {Default Queue} -> wl_pointer#2761.set_cursor(626, wl_surface#41, 0, 0) +[2618592.856] {Default Queue} wl_pointer#2793.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.865] {Default Queue} -> wl_pointer#2793.set_cursor(626, wl_surface#41, 0, 0) +[2618592.869] {Default Queue} wl_pointer#2825.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.874] {Default Queue} -> wl_pointer#2825.set_cursor(626, wl_surface#41, 0, 0) +[2618592.878] {Default Queue} wl_pointer#2857.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.882] {Default Queue} -> wl_pointer#2857.set_cursor(626, wl_surface#41, 0, 0) +[2618592.887] {Default Queue} wl_pointer#2889.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.891] {Default Queue} -> wl_pointer#2889.set_cursor(626, wl_surface#41, 0, 0) +[2618592.895] {Default Queue} wl_pointer#2921.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.900] {Default Queue} -> wl_pointer#2921.set_cursor(626, wl_surface#41, 0, 0) +[2618592.904] {Default Queue} wl_pointer#2953.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.908] {Default Queue} -> wl_pointer#2953.set_cursor(626, wl_surface#41, 0, 0) +[2618592.912] {Default Queue} wl_pointer#2985.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.917] {Default Queue} -> wl_pointer#2985.set_cursor(626, wl_surface#41, 0, 0) +[2618592.921] {Default Queue} wl_pointer#3017.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.926] {Default Queue} -> wl_pointer#3017.set_cursor(626, wl_surface#41, 0, 0) +[2618592.930] {Default Queue} wl_pointer#3049.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.934] {Default Queue} -> wl_pointer#3049.set_cursor(626, wl_surface#41, 0, 0) +[2618592.939] {Default Queue} wl_pointer#3081.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.943] {Default Queue} -> wl_pointer#3081.set_cursor(626, wl_surface#41, 0, 0) +[2618592.947] {Default Queue} wl_pointer#3113.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.952] {Default Queue} -> wl_pointer#3113.set_cursor(626, wl_surface#41, 0, 0) +[2618592.956] {Default Queue} wl_pointer#3145.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.960] {Default Queue} -> wl_pointer#3145.set_cursor(626, wl_surface#41, 0, 0) +[2618592.964] {Default Queue} wl_pointer#3177.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.969] {Default Queue} -> wl_pointer#3177.set_cursor(626, wl_surface#41, 0, 0) +[2618592.973] {Default Queue} wl_pointer#3209.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.981] {Default Queue} -> wl_pointer#3209.set_cursor(626, wl_surface#41, 0, 0) +[2618592.987] {Default Queue} wl_pointer#3241.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618592.992] {Default Queue} -> wl_pointer#3241.set_cursor(626, wl_surface#41, 0, 0) +[2618592.996] {Default Queue} wl_pointer#3273.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618593.000] {Default Queue} -> wl_pointer#3273.set_cursor(626, wl_surface#41, 0, 0) +[2618593.005] {Default Queue} wl_pointer#3305.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618593.009] {Default Queue} -> wl_pointer#3305.set_cursor(626, wl_surface#41, 0, 0) +[2618593.013] {Default Queue} wl_pointer#3337.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618593.018] {Default Queue} -> wl_pointer#3337.set_cursor(626, wl_surface#41, 0, 0) +[2618593.022] {Default Queue} wl_pointer#3369.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618593.026] {Default Queue} -> wl_pointer#3369.set_cursor(626, wl_surface#41, 0, 0) +[2618593.031] {Default Queue} wl_pointer#3401.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618593.035] {Default Queue} -> wl_pointer#3401.set_cursor(626, wl_surface#41, 0, 0) +[2618593.039] {Default Queue} wl_pointer#3433.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618593.044] {Default Queue} -> wl_pointer#3433.set_cursor(626, wl_surface#41, 0, 0) +[2618593.048] {Default Queue} wl_pointer#3465.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618593.052] {Default Queue} -> wl_pointer#3465.set_cursor(626, wl_surface#41, 0, 0) +[2618593.057] {Default Queue} wl_pointer#3497.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618593.061] {Default Queue} -> wl_pointer#3497.set_cursor(626, wl_surface#41, 0, 0) +[2618593.065] {Default Queue} wl_pointer#3529.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618593.070] {Default Queue} -> wl_pointer#3529.set_cursor(626, wl_surface#41, 0, 0) +[2618593.074] {Default Queue} wl_pointer#3561.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618593.078] {Default Queue} -> wl_pointer#3561.set_cursor(626, wl_surface#41, 0, 0) +[2618593.083] {Default Queue} wl_pointer#3593.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618593.087] {Default Queue} -> wl_pointer#3593.set_cursor(626, wl_surface#41, 0, 0) +[2618593.091] {Default Queue} wl_pointer#3625.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618593.096] {Default Queue} -> wl_pointer#3625.set_cursor(626, wl_surface#41, 0, 0) +[2618593.100] {Default Queue} wl_pointer#3657.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618593.104] {Default Queue} -> wl_pointer#3657.set_cursor(626, wl_surface#41, 0, 0) +[2618593.109] {Default Queue} wl_pointer#3695.enter(626, wl_surface#71, 0.19921875, 86.80078125) +[2618593.113] {Default Queue} wl_pointer#24.motion(187310226, 1.00000000, 85.19921875) +[2618593.118] {Default Queue} wl_pointer#81.motion(187310226, 1.00000000, 85.19921875) +[2618593.125] {Default Queue} wl_pointer#105.motion(187310226, 1.00000000, 85.19921875) +[2618593.130] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618593.134] {Default Queue} wl_pointer#137.motion(187310226, 1.00000000, 85.19921875) +[2618593.138] {Default Queue} wl_pointer#169.motion(187310226, 1.00000000, 85.19921875) +[2618593.143] {Default Queue} wl_pointer#201.motion(187310226, 1.00000000, 85.19921875) +[2618593.147] {Default Queue} wl_pointer#233.motion(187310226, 1.00000000, 85.19921875) +[2618593.152] {Default Queue} wl_pointer#265.motion(187310226, 1.00000000, 85.19921875) +[2618593.157] {Default Queue} wl_pointer#297.motion(187310226, 1.00000000, 85.19921875) +[2618593.161] {Default Queue} wl_pointer#329.motion(187310226, 1.00000000, 85.19921875) +[2618593.166] {Default Queue} wl_pointer#361.motion(187310226, 1.00000000, 85.19921875) +[2618593.170] {Default Queue} wl_pointer#393.motion(187310226, 1.00000000, 85.19921875) +[2618593.182] {Default Queue} -> wl_region#799.subtract(0, 0, 19, 48) +[2618593.187] {Default Queue} -> wl_region#799.add(-20, -49, 19, 48) +[2618593.195] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2618593.200] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2618593.304] {Default Queue} -> wl_region#799.subtract(0, 0, 19, 48) +[2618593.309] {Default Queue} -> wl_region#799.add(-20, -49, 19, 48) +[2618593.313] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2618593.317] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2618593.323] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618593.328] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618593.479] {Default Queue} -> wl_region#799.subtract(0, 0, 19, 48) +[2618593.492] {Default Queue} -> wl_region#799.add(-20, -49, 19, 48) +[2618593.497] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2618593.502] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2618593.543] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618593.548] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618593.554] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) +[2618593.559] {Default Queue} -> wl_surface#775.commit() +[2618593.563] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) +[2618593.567] {Default Queue} -> wl_surface#775.commit() +[2618593.574] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) +[2618593.579] {Default Queue} -> wl_surface#775.commit() +[2618593.585] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) +[2618593.589] {Default Queue} -> wl_surface#807.commit() +[2618594.652] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) +[2618594.658] {Default Queue} -> wl_surface#807.commit() +[2618594.667] {Default Queue} -> wl_region#831.subtract(0, 0, 19, 48) +[2618594.672] {Default Queue} -> wl_region#831.add(-20, -49, 19, 48) +[2618594.676] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2618594.681] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2618594.788] {Default Queue} -> wl_region#831.subtract(0, 0, 19, 48) +[2618594.793] {Default Queue} -> wl_region#831.add(-20, -49, 19, 48) +[2618594.797] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2618594.801] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2618594.807] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618594.811] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618594.910] {Default Queue} -> wl_region#831.subtract(0, 0, 19, 48) +[2618594.921] {Default Queue} -> wl_region#831.add(-20, -49, 19, 48) +[2618594.927] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2618594.932] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2618594.940] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618594.945] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618594.951] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) +[2618594.956] {Default Queue} -> wl_surface#807.commit() +[2618594.960] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) +[2618594.965] {Default Queue} -> wl_surface#807.commit() +[2618594.972] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) +[2618594.978] {Default Queue} -> wl_surface#807.commit() +[2618594.984] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) +[2618594.989] {Default Queue} -> wl_surface#839.commit() +[2618596.052] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) +[2618596.059] {Default Queue} -> wl_surface#839.commit() +[2618596.070] {Default Queue} -> wl_region#863.subtract(0, 0, 19, 48) +[2618596.075] {Default Queue} -> wl_region#863.add(-20, -49, 19, 48) +[2618596.080] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2618596.084] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2618596.187] {Default Queue} -> wl_region#863.subtract(0, 0, 19, 48) +[2618596.217] {Default Queue} -> wl_region#863.add(-20, -49, 19, 48) +[2618596.223] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2618596.232] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2618596.241] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618596.246] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618596.333] {Default Queue} -> wl_region#863.subtract(0, 0, 19, 48) +[2618596.338] {Default Queue} -> wl_region#863.add(-20, -49, 19, 48) +[2618596.343] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2618596.347] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2618596.352] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618596.356] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618596.361] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) +[2618596.366] {Default Queue} -> wl_surface#839.commit() +[2618596.370] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) +[2618596.374] {Default Queue} -> wl_surface#839.commit() +[2618596.381] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) +[2618596.385] {Default Queue} -> wl_surface#839.commit() +[2618596.391] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) +[2618596.395] {Default Queue} -> wl_surface#679.commit() +[2618596.496] {Default Queue} wl_pointer#425.motion(187310226, 1.00000000, 85.19921875) +[2618596.514] {Default Queue} wl_pointer#457.motion(187310226, 1.00000000, 85.19921875) +[2618596.520] {Default Queue} wl_pointer#489.motion(187310226, 1.00000000, 85.19921875) +[2618596.525] {Default Queue} wl_pointer#521.motion(187310226, 1.00000000, 85.19921875) +[2618596.529] {Default Queue} wl_pointer#553.motion(187310226, 1.00000000, 85.19921875) +[2618596.533] {Default Queue} wl_pointer#585.motion(187310226, 1.00000000, 85.19921875) +[2618596.538] {Default Queue} wl_pointer#617.motion(187310226, 1.00000000, 85.19921875) +[2618596.543] {Default Queue} wl_pointer#649.motion(187310226, 1.00000000, 85.19921875) +[2618596.548] {Default Queue} wl_pointer#681.motion(187310226, 1.00000000, 85.19921875) +[2618596.552] {Default Queue} wl_pointer#713.motion(187310226, 1.00000000, 85.19921875) +[2618596.557] {Default Queue} wl_pointer#745.motion(187310226, 1.00000000, 85.19921875) +[2618596.561] {Default Queue} wl_pointer#777.motion(187310226, 1.00000000, 85.19921875) +[2618596.565] {Default Queue} wl_pointer#809.motion(187310226, 1.00000000, 85.19921875) +[2618596.570] {Default Queue} wl_pointer#841.motion(187310226, 1.00000000, 85.19921875) +[2618596.574] {Default Queue} wl_pointer#873.motion(187310226, 1.00000000, 85.19921875) +[2618596.578] {Default Queue} wl_pointer#905.motion(187310226, 1.00000000, 85.19921875) +[2618596.583] {Default Queue} wl_pointer#937.motion(187310226, 1.00000000, 85.19921875) +[2618596.588] {Default Queue} wl_pointer#969.motion(187310226, 1.00000000, 85.19921875) +[2618596.592] {Default Queue} wl_pointer#1001.motion(187310226, 1.00000000, 85.19921875) +[2618596.597] {Default Queue} wl_pointer#1033.motion(187310226, 1.00000000, 85.19921875) +[2618596.602] {Default Queue} wl_pointer#1065.motion(187310226, 1.00000000, 85.19921875) +[2618596.607] {Default Queue} wl_pointer#1097.motion(187310226, 1.00000000, 85.19921875) +[2618596.612] {Default Queue} wl_pointer#1129.motion(187310226, 1.00000000, 85.19921875) +[2618596.616] {Default Queue} wl_pointer#1161.motion(187310226, 1.00000000, 85.19921875) +[2618596.621] {Default Queue} wl_pointer#1193.motion(187310226, 1.00000000, 85.19921875) +[2618596.626] {Default Queue} wl_pointer#1225.motion(187310226, 1.00000000, 85.19921875) +[2618596.631] {Default Queue} wl_pointer#1257.motion(187310226, 1.00000000, 85.19921875) +[2618596.636] {Default Queue} wl_pointer#1289.motion(187310226, 1.00000000, 85.19921875) +[2618596.640] {Default Queue} wl_pointer#1321.motion(187310226, 1.00000000, 85.19921875) +[2618596.645] {Default Queue} wl_pointer#1353.motion(187310226, 1.00000000, 85.19921875) +[2618596.650] {Default Queue} wl_pointer#1385.motion(187310226, 1.00000000, 85.19921875) +[2618596.655] {Default Queue} wl_pointer#1417.motion(187310226, 1.00000000, 85.19921875) +[2618596.659] {Default Queue} wl_pointer#1449.motion(187310226, 1.00000000, 85.19921875) +[2618596.672] {Default Queue} wl_pointer#1481.motion(187310226, 1.00000000, 85.19921875) +[2618596.680] {Default Queue} wl_pointer#1513.motion(187310226, 1.00000000, 85.19921875) +[2618596.685] {Default Queue} wl_pointer#1545.motion(187310226, 1.00000000, 85.19921875) +[2618596.689] {Default Queue} wl_pointer#1577.motion(187310226, 1.00000000, 85.19921875) +[2618596.694] {Default Queue} wl_pointer#1609.motion(187310226, 1.00000000, 85.19921875) +[2618596.699] {Default Queue} wl_pointer#1641.motion(187310226, 1.00000000, 85.19921875) +[2618596.703] {Default Queue} wl_pointer#1673.motion(187310226, 1.00000000, 85.19921875) +[2618596.708] {Default Queue} wl_pointer#1705.motion(187310226, 1.00000000, 85.19921875) +[2618596.713] {Default Queue} wl_pointer#1737.motion(187310226, 1.00000000, 85.19921875) +[2618596.718] {Default Queue} wl_pointer#1762.motion(187310226, 1.00000000, 85.19921875) +[2618596.723] {Default Queue} wl_pointer#1801.motion(187310226, 1.00000000, 85.19921875) +[2618596.728] {Default Queue} wl_pointer#1833.motion(187310226, 1.00000000, 85.19921875) +[2618596.733] {Default Queue} wl_pointer#1865.motion(187310226, 1.00000000, 85.19921875) +[2618596.737] {Default Queue} wl_pointer#1897.motion(187310226, 1.00000000, 85.19921875) +[2618596.742] {Default Queue} wl_pointer#1929.motion(187310226, 1.00000000, 85.19921875) +[2618596.747] {Default Queue} wl_pointer#1961.motion(187310226, 1.00000000, 85.19921875) +[2618596.752] {Default Queue} wl_pointer#1993.motion(187310226, 1.00000000, 85.19921875) +[2618596.757] {Default Queue} wl_pointer#2025.motion(187310226, 1.00000000, 85.19921875) +[2618596.762] {Default Queue} wl_pointer#2057.motion(187310226, 1.00000000, 85.19921875) +[2618596.767] {Default Queue} wl_pointer#2089.motion(187310226, 1.00000000, 85.19921875) +[2618596.772] {Default Queue} wl_pointer#2121.motion(187310226, 1.00000000, 85.19921875) +[2618596.776] {Default Queue} wl_pointer#2153.motion(187310226, 1.00000000, 85.19921875) +[2618596.781] {Default Queue} wl_pointer#2185.motion(187310226, 1.00000000, 85.19921875) +[2618596.786] {Default Queue} wl_pointer#2217.motion(187310226, 1.00000000, 85.19921875) +[2618596.791] {Default Queue} wl_pointer#2249.motion(187310226, 1.00000000, 85.19921875) +[2618596.795] {Default Queue} wl_pointer#2281.motion(187310226, 1.00000000, 85.19921875) +[2618596.800] {Default Queue} wl_pointer#2313.motion(187310226, 1.00000000, 85.19921875) +[2618596.806] {Default Queue} wl_pointer#2345.motion(187310226, 1.00000000, 85.19921875) +[2618596.811] {Default Queue} wl_pointer#2377.motion(187310226, 1.00000000, 85.19921875) +[2618596.816] {Default Queue} wl_pointer#2409.motion(187310226, 1.00000000, 85.19921875) +[2618596.820] {Default Queue} wl_pointer#2441.motion(187310226, 1.00000000, 85.19921875) +[2618596.825] {Default Queue} wl_pointer#2473.motion(187310226, 1.00000000, 85.19921875) +[2618596.830] {Default Queue} wl_pointer#2498.motion(187310226, 1.00000000, 85.19921875) +[2618596.846] {Default Queue} -> wl_buffer#2504.destroy() +[2618596.852] {Default Queue} -> wl_buffer#2505.destroy() +[2618596.856] {Default Queue} -> wl_shm_pool#2502.destroy() +[2618596.868] {Default Queue} -> wl_shm_pool#2503.destroy() +[2618596.874] {Default Queue} -> wl_surface#2506.destroy() +[2618596.936] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3674, fd 575, 640) +[2618596.943] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3676, fd 578, 640) +[2618596.948] {Default Queue} -> wl_shm_pool#3674.create_buffer(new id wl_buffer#3675, 0, 10, 16, 40, 0) +[2618596.953] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 10, 16, 40, 0) +[2618596.962] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3677) +[2618596.966] {Default Queue} -> wl_surface#3677.attach(wl_buffer#3675, 0, 0) +[2618596.971] {Default Queue} -> wl_surface#3677.commit() +[2618596.976] {Default Queue} -> wl_surface#3677.attach(wl_buffer#3675, 0, 0) +[2618596.980] {Default Queue} -> wl_surface#3677.commit() +[2618596.985] {Default Queue} wl_pointer#2537.motion(187310226, 1.00000000, 85.19921875) +[2618596.994] {Default Queue} wl_pointer#2569.motion(187310226, 1.00000000, 85.19921875) +[2618597.001] {Default Queue} wl_pointer#2601.motion(187310226, 1.00000000, 85.19921875) +[2618597.006] {Default Queue} wl_pointer#2633.motion(187310226, 1.00000000, 85.19921875) +[2618597.011] {Default Queue} wl_pointer#2665.motion(187310226, 1.00000000, 85.19921875) +[2618597.016] {Default Queue} wl_pointer#2697.motion(187310226, 1.00000000, 85.19921875) +[2618597.021] {Default Queue} wl_pointer#2729.motion(187310226, 1.00000000, 85.19921875) +[2618597.025] {Default Queue} wl_pointer#2761.motion(187310226, 1.00000000, 85.19921875) +[2618597.030] {Default Queue} wl_pointer#2793.motion(187310226, 1.00000000, 85.19921875) +[2618597.035] {Default Queue} wl_pointer#2825.motion(187310226, 1.00000000, 85.19921875) +[2618597.041] {Default Queue} wl_pointer#2857.motion(187310226, 1.00000000, 85.19921875) +[2618597.046] {Default Queue} wl_pointer#2889.motion(187310226, 1.00000000, 85.19921875) +[2618597.051] {Default Queue} wl_pointer#2921.motion(187310226, 1.00000000, 85.19921875) +[2618597.056] {Default Queue} wl_pointer#2953.motion(187310226, 1.00000000, 85.19921875) +[2618597.061] {Default Queue} wl_pointer#2985.motion(187310226, 1.00000000, 85.19921875) +[2618597.066] {Default Queue} wl_pointer#3017.motion(187310226, 1.00000000, 85.19921875) +[2618597.070] {Default Queue} wl_pointer#3049.motion(187310226, 1.00000000, 85.19921875) +[2618597.075] {Default Queue} wl_pointer#3081.motion(187310226, 1.00000000, 85.19921875) +[2618597.080] {Default Queue} wl_pointer#3113.motion(187310226, 1.00000000, 85.19921875) +[2618597.085] {Default Queue} wl_pointer#3145.motion(187310226, 1.00000000, 85.19921875) +[2618597.090] {Default Queue} wl_pointer#3177.motion(187310226, 1.00000000, 85.19921875) +[2618597.095] {Default Queue} wl_pointer#3209.motion(187310226, 1.00000000, 85.19921875) +[2618597.100] {Default Queue} wl_pointer#3241.motion(187310226, 1.00000000, 85.19921875) +[2618597.105] {Default Queue} wl_pointer#3273.motion(187310226, 1.00000000, 85.19921875) +[2618597.110] {Default Queue} wl_pointer#3305.motion(187310226, 1.00000000, 85.19921875) +[2618597.115] {Default Queue} wl_pointer#3337.motion(187310226, 1.00000000, 85.19921875) +[2618597.120] {Default Queue} wl_pointer#3369.motion(187310226, 1.00000000, 85.19921875) +[2618597.125] {Default Queue} wl_pointer#3401.motion(187310226, 1.00000000, 85.19921875) +[2618597.130] {Default Queue} wl_pointer#3433.motion(187310226, 1.00000000, 85.19921875) +[2618597.136] {Default Queue} wl_pointer#3465.motion(187310226, 1.00000000, 85.19921875) +[2618597.142] {Default Queue} wl_pointer#3497.motion(187310226, 1.00000000, 85.19921875) +[2618597.147] {Default Queue} wl_pointer#3529.motion(187310226, 1.00000000, 85.19921875) +[2618597.151] {Default Queue} wl_pointer#3561.motion(187310226, 1.00000000, 85.19921875) +[2618597.156] {Default Queue} wl_pointer#3593.motion(187310226, 1.00000000, 85.19921875) +[2618597.162] {Default Queue} wl_pointer#3625.motion(187310226, 1.00000000, 85.19921875) +[2618597.167] {Default Queue} wl_pointer#3657.motion(187310226, 1.00000000, 85.19921875) +[2618597.172] {Default Queue} wl_pointer#3695.motion(187310226, 1.00000000, 85.19921875) +[2618597.182] {Default Queue} -> wl_region#703.subtract(0, 0, 19, 48) +[2618597.187] {Default Queue} -> wl_region#703.add(-20, -49, 19, 48) +[2618597.191] {Default Queue} -> wl_surface#679.set_opaque_region(wl_region#704) +[2618597.195] {Default Queue} -> wl_surface#679.set_input_region(wl_region#703) +[2618597.201] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) +[2618597.206] {Default Queue} -> wl_surface#679.commit() +[2618597.210] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) +[2618597.214] {Default Queue} -> wl_surface#679.commit() +[2618597.272] {Default Queue} wl_pointer#24.motion(187310231, 1.80078125, 83.60156250) +[2618597.277] {Default Queue} wl_pointer#81.motion(187310231, 1.80078125, 83.60156250) +[2618597.283] {Default Queue} wl_pointer#105.motion(187310231, 1.80078125, 83.60156250) +[2618597.288] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618597.295] {Default Queue} wl_pointer#137.motion(187310231, 1.80078125, 83.60156250) +[2618597.301] {Default Queue} wl_pointer#169.motion(187310231, 1.80078125, 83.60156250) +[2618597.306] {Default Queue} wl_pointer#201.motion(187310231, 1.80078125, 83.60156250) +[2618597.310] {Default Queue} wl_pointer#233.motion(187310231, 1.80078125, 83.60156250) +[2618597.314] {Default Queue} wl_pointer#265.motion(187310231, 1.80078125, 83.60156250) +[2618597.318] {Default Queue} wl_pointer#297.motion(187310231, 1.80078125, 83.60156250) +[2618597.323] {Default Queue} wl_pointer#329.motion(187310231, 1.80078125, 83.60156250) +[2618597.327] {Default Queue} wl_pointer#361.motion(187310231, 1.80078125, 83.60156250) +[2618597.332] {Default Queue} wl_pointer#393.motion(187310231, 1.80078125, 83.60156250) +[2618597.336] {Default Queue} wl_pointer#425.motion(187310231, 1.80078125, 83.60156250) +[2618597.340] {Default Queue} wl_pointer#457.motion(187310231, 1.80078125, 83.60156250) +[2618597.345] {Default Queue} wl_pointer#489.motion(187310231, 1.80078125, 83.60156250) +[2618597.349] {Default Queue} wl_pointer#521.motion(187310231, 1.80078125, 83.60156250) +[2618597.353] {Default Queue} wl_pointer#553.motion(187310231, 1.80078125, 83.60156250) +[2618597.358] {Default Queue} wl_pointer#585.motion(187310231, 1.80078125, 83.60156250) +[2618597.362] {Default Queue} wl_pointer#617.motion(187310231, 1.80078125, 83.60156250) +[2618597.366] {Default Queue} wl_pointer#649.motion(187310231, 1.80078125, 83.60156250) +[2618597.370] {Default Queue} wl_pointer#681.motion(187310231, 1.80078125, 83.60156250) +[2618597.374] {Default Queue} wl_pointer#713.motion(187310231, 1.80078125, 83.60156250) +[2618597.379] {Default Queue} wl_pointer#745.motion(187310231, 1.80078125, 83.60156250) +[2618597.383] {Default Queue} wl_pointer#777.motion(187310231, 1.80078125, 83.60156250) +[2618597.387] {Default Queue} wl_pointer#809.motion(187310231, 1.80078125, 83.60156250) +[2618597.391] {Default Queue} wl_pointer#841.motion(187310231, 1.80078125, 83.60156250) +[2618597.396] {Default Queue} wl_pointer#873.motion(187310231, 1.80078125, 83.60156250) +[2618597.400] {Default Queue} wl_pointer#905.motion(187310231, 1.80078125, 83.60156250) +[2618597.404] {Default Queue} wl_pointer#937.motion(187310231, 1.80078125, 83.60156250) +[2618597.408] {Default Queue} wl_pointer#969.motion(187310231, 1.80078125, 83.60156250) +[2618597.412] {Default Queue} wl_pointer#1001.motion(187310231, 1.80078125, 83.60156250) +[2618597.417] {Default Queue} wl_pointer#1033.motion(187310231, 1.80078125, 83.60156250) +[2618597.421] {Default Queue} wl_pointer#1065.motion(187310231, 1.80078125, 83.60156250) +[2618597.426] {Default Queue} wl_pointer#1097.motion(187310231, 1.80078125, 83.60156250) +[2618597.430] {Default Queue} wl_pointer#1129.motion(187310231, 1.80078125, 83.60156250) +[2618597.434] {Default Queue} wl_pointer#1161.motion(187310231, 1.80078125, 83.60156250) +[2618597.438] {Default Queue} wl_pointer#1193.motion(187310231, 1.80078125, 83.60156250) +[2618597.443] {Default Queue} wl_pointer#1225.motion(187310231, 1.80078125, 83.60156250) +[2618597.448] {Default Queue} wl_pointer#1257.motion(187310231, 1.80078125, 83.60156250) +[2618597.454] {Default Queue} wl_pointer#1289.motion(187310231, 1.80078125, 83.60156250) +[2618597.460] {Default Queue} wl_pointer#1321.motion(187310231, 1.80078125, 83.60156250) +[2618597.466] {Default Queue} wl_pointer#1353.motion(187310231, 1.80078125, 83.60156250) +[2618597.471] {Default Queue} wl_pointer#1385.motion(187310231, 1.80078125, 83.60156250) +[2618597.477] {Default Queue} wl_pointer#1417.motion(187310231, 1.80078125, 83.60156250) +[2618597.483] {Default Queue} wl_pointer#1449.motion(187310231, 1.80078125, 83.60156250) +[2618597.489] {Default Queue} wl_pointer#1481.motion(187310231, 1.80078125, 83.60156250) +[2618597.495] {Default Queue} wl_pointer#1513.motion(187310231, 1.80078125, 83.60156250) +[2618597.501] {Default Queue} wl_pointer#1545.motion(187310231, 1.80078125, 83.60156250) +[2618597.507] {Default Queue} wl_pointer#1577.motion(187310231, 1.80078125, 83.60156250) +[2618597.517] {Default Queue} wl_pointer#1609.motion(187310231, 1.80078125, 83.60156250) +[2618597.523] {Default Queue} wl_pointer#1641.motion(187310231, 1.80078125, 83.60156250) +[2618597.527] {Default Queue} wl_pointer#1673.motion(187310231, 1.80078125, 83.60156250) +[2618597.532] {Default Queue} wl_pointer#1705.motion(187310231, 1.80078125, 83.60156250) +[2618597.536] {Default Queue} wl_pointer#1737.motion(187310231, 1.80078125, 83.60156250) +[2618597.540] {Default Queue} wl_pointer#1762.motion(187310231, 1.80078125, 83.60156250) +[2618597.544] {Default Queue} wl_pointer#1801.motion(187310231, 1.80078125, 83.60156250) +[2618597.549] {Default Queue} wl_pointer#1833.motion(187310231, 1.80078125, 83.60156250) +[2618597.553] {Default Queue} wl_pointer#1865.motion(187310231, 1.80078125, 83.60156250) +[2618597.557] {Default Queue} wl_pointer#1897.motion(187310231, 1.80078125, 83.60156250) +[2618597.561] {Default Queue} wl_pointer#1929.motion(187310231, 1.80078125, 83.60156250) +[2618597.566] {Default Queue} wl_pointer#1961.motion(187310231, 1.80078125, 83.60156250) +[2618597.570] {Default Queue} wl_pointer#1993.motion(187310231, 1.80078125, 83.60156250) +[2618597.575] {Default Queue} wl_pointer#2025.motion(187310231, 1.80078125, 83.60156250) +[2618597.579] {Default Queue} wl_pointer#2057.motion(187310231, 1.80078125, 83.60156250) +[2618597.583] {Default Queue} wl_pointer#2089.motion(187310231, 1.80078125, 83.60156250) +[2618597.587] {Default Queue} wl_pointer#2121.motion(187310231, 1.80078125, 83.60156250) +[2618597.592] {Default Queue} wl_pointer#2153.motion(187310231, 1.80078125, 83.60156250) +[2618597.596] {Default Queue} wl_pointer#2185.motion(187310231, 1.80078125, 83.60156250) +[2618597.600] {Default Queue} wl_pointer#2217.motion(187310231, 1.80078125, 83.60156250) +[2618597.604] {Default Queue} wl_pointer#2249.motion(187310231, 1.80078125, 83.60156250) +[2618597.609] {Default Queue} wl_pointer#2281.motion(187310231, 1.80078125, 83.60156250) +[2618597.613] {Default Queue} wl_pointer#2313.motion(187310231, 1.80078125, 83.60156250) +[2618597.618] {Default Queue} wl_pointer#2345.motion(187310231, 1.80078125, 83.60156250) +[2618597.622] {Default Queue} wl_pointer#2377.motion(187310231, 1.80078125, 83.60156250) +[2618597.627] {Default Queue} wl_pointer#2409.motion(187310231, 1.80078125, 83.60156250) +[2618597.631] {Default Queue} wl_pointer#2441.motion(187310231, 1.80078125, 83.60156250) +[2618597.635] {Default Queue} wl_pointer#2473.motion(187310231, 1.80078125, 83.60156250) +[2618597.640] {Default Queue} wl_pointer#2498.motion(187310231, 1.80078125, 83.60156250) +[2618597.651] {Default Queue} -> wl_buffer#3675.destroy() +[2618597.656] {Default Queue} -> wl_buffer#3678.destroy() +[2618597.660] {Default Queue} -> wl_shm_pool#3674.destroy() +[2618597.664] {Default Queue} -> wl_shm_pool#3676.destroy() +[2618597.669] {Default Queue} -> wl_surface#3677.destroy() +[2618597.712] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3671, fd 581, 640) +[2618597.718] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 582, 640) +[2618597.723] {Default Queue} -> wl_shm_pool#3671.create_buffer(new id wl_buffer#3682, 0, 10, 16, 40, 0) +[2618597.728] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) +[2618597.735] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3684) +[2618597.740] {Default Queue} -> wl_surface#3684.attach(wl_buffer#3682, 0, 0) +[2618597.744] {Default Queue} -> wl_surface#3684.commit() +[2618597.749] {Default Queue} -> wl_surface#3684.attach(wl_buffer#3682, 0, 0) +[2618597.753] {Default Queue} -> wl_surface#3684.commit() +[2618597.758] {Default Queue} wl_pointer#2537.motion(187310231, 1.80078125, 83.60156250) +[2618597.762] {Default Queue} wl_pointer#2569.motion(187310231, 1.80078125, 83.60156250) +[2618597.767] {Default Queue} wl_pointer#2601.motion(187310231, 1.80078125, 83.60156250) +[2618597.771] {Default Queue} wl_pointer#2633.motion(187310231, 1.80078125, 83.60156250) +[2618597.776] {Default Queue} wl_pointer#2665.motion(187310231, 1.80078125, 83.60156250) +[2618597.783] {Default Queue} wl_pointer#2697.motion(187310231, 1.80078125, 83.60156250) +[2618597.789] {Default Queue} wl_pointer#2729.motion(187310231, 1.80078125, 83.60156250) +[2618597.794] {Default Queue} wl_pointer#2761.motion(187310231, 1.80078125, 83.60156250) +[2618597.798] {Default Queue} wl_pointer#2793.motion(187310231, 1.80078125, 83.60156250) +[2618597.803] {Default Queue} wl_pointer#2825.motion(187310231, 1.80078125, 83.60156250) +[2618597.807] {Default Queue} wl_pointer#2857.motion(187310231, 1.80078125, 83.60156250) +[2618597.811] {Default Queue} wl_pointer#2889.motion(187310231, 1.80078125, 83.60156250) +[2618597.816] {Default Queue} wl_pointer#2921.motion(187310231, 1.80078125, 83.60156250) +[2618597.820] {Default Queue} wl_pointer#2953.motion(187310231, 1.80078125, 83.60156250) +[2618597.825] {Default Queue} wl_pointer#2985.motion(187310231, 1.80078125, 83.60156250) +[2618597.829] {Default Queue} wl_pointer#3017.motion(187310231, 1.80078125, 83.60156250) +[2618597.833] {Default Queue} wl_pointer#3049.motion(187310231, 1.80078125, 83.60156250) +[2618597.838] {Default Queue} wl_pointer#3081.motion(187310231, 1.80078125, 83.60156250) +[2618597.842] {Default Queue} wl_pointer#3113.motion(187310231, 1.80078125, 83.60156250) +[2618597.846] {Default Queue} wl_pointer#3145.motion(187310231, 1.80078125, 83.60156250) +[2618597.851] {Default Queue} wl_pointer#3177.motion(187310231, 1.80078125, 83.60156250) +[2618597.855] {Default Queue} wl_pointer#3209.motion(187310231, 1.80078125, 83.60156250) +[2618597.859] {Default Queue} wl_pointer#3241.motion(187310231, 1.80078125, 83.60156250) +[2618597.870] {Default Queue} wl_pointer#3273.motion(187310231, 1.80078125, 83.60156250) +[2618597.875] {Default Queue} wl_pointer#3305.motion(187310231, 1.80078125, 83.60156250) +[2618597.879] {Default Queue} wl_pointer#3337.motion(187310231, 1.80078125, 83.60156250) +[2618597.883] {Default Queue} wl_pointer#3369.motion(187310231, 1.80078125, 83.60156250) +[2618597.888] {Default Queue} wl_pointer#3401.motion(187310231, 1.80078125, 83.60156250) +[2618597.892] {Default Queue} wl_pointer#3433.motion(187310231, 1.80078125, 83.60156250) +[2618597.897] {Default Queue} wl_pointer#3465.motion(187310231, 1.80078125, 83.60156250) +[2618597.901] {Default Queue} wl_pointer#3497.motion(187310231, 1.80078125, 83.60156250) +[2618597.906] {Default Queue} wl_pointer#3529.motion(187310231, 1.80078125, 83.60156250) +[2618597.910] {Default Queue} wl_pointer#3561.motion(187310231, 1.80078125, 83.60156250) +[2618597.915] {Default Queue} wl_pointer#3593.motion(187310231, 1.80078125, 83.60156250) +[2618597.919] {Default Queue} wl_pointer#3625.motion(187310231, 1.80078125, 83.60156250) +[2618597.923] {Default Queue} wl_pointer#3657.motion(187310231, 1.80078125, 83.60156250) +[2618597.928] {Default Queue} wl_pointer#3695.motion(187310231, 1.80078125, 83.60156250) +[2618597.932] {Default Queue} wl_pointer#24.motion(187310231, 3.00000000, 81.60156250) +[2618597.936] {Default Queue} wl_pointer#81.motion(187310231, 3.00000000, 81.60156250) +[2618597.941] {Default Queue} wl_pointer#105.motion(187310231, 3.00000000, 81.60156250) +[2618597.946] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618597.950] {Default Queue} wl_pointer#137.motion(187310231, 3.00000000, 81.60156250) +[2618597.954] {Default Queue} wl_pointer#169.motion(187310231, 3.00000000, 81.60156250) +[2618597.959] {Default Queue} wl_pointer#201.motion(187310231, 3.00000000, 81.60156250) +[2618597.963] {Default Queue} wl_pointer#233.motion(187310231, 3.00000000, 81.60156250) +[2618597.967] {Default Queue} wl_pointer#265.motion(187310231, 3.00000000, 81.60156250) +[2618597.971] {Default Queue} wl_pointer#297.motion(187310231, 3.00000000, 81.60156250) +[2618597.976] {Default Queue} wl_pointer#329.motion(187310231, 3.00000000, 81.60156250) +[2618597.980] {Default Queue} wl_pointer#361.motion(187310231, 3.00000000, 81.60156250) +[2618597.985] {Default Queue} wl_pointer#393.motion(187310231, 3.00000000, 81.60156250) +[2618597.991] {Default Queue} wl_pointer#425.motion(187310231, 3.00000000, 81.60156250) +[2618598.001] {Default Queue} wl_pointer#457.motion(187310231, 3.00000000, 81.60156250) +[2618598.009] {Default Queue} wl_pointer#489.motion(187310231, 3.00000000, 81.60156250) +[2618598.013] {Default Queue} wl_pointer#521.motion(187310231, 3.00000000, 81.60156250) +[2618598.019] {Default Queue} wl_pointer#553.motion(187310231, 3.00000000, 81.60156250) +[2618598.025] {Default Queue} wl_pointer#585.motion(187310231, 3.00000000, 81.60156250) +[2618598.031] {Default Queue} wl_pointer#617.motion(187310231, 3.00000000, 81.60156250) +[2618598.037] {Default Queue} wl_pointer#649.motion(187310231, 3.00000000, 81.60156250) +[2618598.042] {Default Queue} wl_pointer#681.motion(187310231, 3.00000000, 81.60156250) +[2618598.046] {Default Queue} wl_pointer#713.motion(187310231, 3.00000000, 81.60156250) +[2618598.050] {Default Queue} wl_pointer#745.motion(187310231, 3.00000000, 81.60156250) +[2618598.055] {Default Queue} wl_pointer#777.motion(187310231, 3.00000000, 81.60156250) +[2618598.059] {Default Queue} wl_pointer#809.motion(187310231, 3.00000000, 81.60156250) +[2618598.063] {Default Queue} wl_pointer#841.motion(187310231, 3.00000000, 81.60156250) +[2618598.067] {Default Queue} wl_pointer#873.motion(187310231, 3.00000000, 81.60156250) +[2618598.072] {Default Queue} wl_pointer#905.motion(187310231, 3.00000000, 81.60156250) +[2618598.076] {Default Queue} wl_pointer#937.motion(187310231, 3.00000000, 81.60156250) +[2618598.080] {Default Queue} wl_pointer#969.motion(187310231, 3.00000000, 81.60156250) +[2618598.085] {Default Queue} wl_pointer#1001.motion(187310231, 3.00000000, 81.60156250) +[2618598.089] {Default Queue} wl_pointer#1033.motion(187310231, 3.00000000, 81.60156250) +[2618598.093] {Default Queue} wl_pointer#1065.motion(187310231, 3.00000000, 81.60156250) +[2618598.097] {Default Queue} wl_pointer#1097.motion(187310231, 3.00000000, 81.60156250) +[2618598.102] {Default Queue} wl_pointer#1129.motion(187310231, 3.00000000, 81.60156250) +[2618598.106] {Default Queue} wl_pointer#1161.motion(187310231, 3.00000000, 81.60156250) +[2618598.110] {Default Queue} wl_pointer#1193.motion(187310231, 3.00000000, 81.60156250) +[2618598.114] {Default Queue} wl_pointer#1225.motion(187310231, 3.00000000, 81.60156250) +[2618598.119] {Default Queue} wl_pointer#1257.motion(187310231, 3.00000000, 81.60156250) +[2618598.123] {Default Queue} wl_pointer#1289.motion(187310231, 3.00000000, 81.60156250) +[2618598.127] {Default Queue} wl_pointer#1321.motion(187310231, 3.00000000, 81.60156250) +[2618598.132] {Default Queue} wl_pointer#1353.motion(187310231, 3.00000000, 81.60156250) +[2618598.136] {Default Queue} wl_pointer#1385.motion(187310231, 3.00000000, 81.60156250) +[2618598.140] {Default Queue} wl_pointer#1417.motion(187310231, 3.00000000, 81.60156250) +[2618598.144] {Default Queue} wl_pointer#1449.motion(187310231, 3.00000000, 81.60156250) +[2618598.149] {Default Queue} wl_pointer#1481.motion(187310231, 3.00000000, 81.60156250) +[2618598.153] {Default Queue} wl_pointer#1513.motion(187310231, 3.00000000, 81.60156250) +[2618598.157] {Default Queue} wl_pointer#1545.motion(187310231, 3.00000000, 81.60156250) +[2618598.162] {Default Queue} wl_pointer#1577.motion(187310231, 3.00000000, 81.60156250) +[2618598.166] {Default Queue} wl_pointer#1609.motion(187310231, 3.00000000, 81.60156250) +[2618598.170] {Default Queue} wl_pointer#1641.motion(187310231, 3.00000000, 81.60156250) +[2618598.174] {Default Queue} wl_pointer#1673.motion(187310231, 3.00000000, 81.60156250) +[2618598.179] {Default Queue} wl_pointer#1705.motion(187310231, 3.00000000, 81.60156250) +[2618598.183] {Default Queue} wl_pointer#1737.motion(187310231, 3.00000000, 81.60156250) +[2618598.187] {Default Queue} wl_pointer#1762.motion(187310231, 3.00000000, 81.60156250) +[2618598.192] {Default Queue} wl_pointer#1801.motion(187310231, 3.00000000, 81.60156250) +[2618598.196] {Default Queue} wl_pointer#1833.motion(187310231, 3.00000000, 81.60156250) +[2618598.200] {Default Queue} wl_pointer#1865.motion(187310231, 3.00000000, 81.60156250) +[2618598.204] {Default Queue} wl_pointer#1897.motion(187310231, 3.00000000, 81.60156250) +[2618598.212] {Default Queue} wl_pointer#1929.motion(187310231, 3.00000000, 81.60156250) +[2618598.218] {Default Queue} wl_pointer#1961.motion(187310231, 3.00000000, 81.60156250) +[2618598.222] {Default Queue} wl_pointer#1993.motion(187310231, 3.00000000, 81.60156250) +[2618598.226] {Default Queue} wl_pointer#2025.motion(187310231, 3.00000000, 81.60156250) +[2618598.230] {Default Queue} wl_pointer#2057.motion(187310231, 3.00000000, 81.60156250) +[2618598.235] {Default Queue} wl_pointer#2089.motion(187310231, 3.00000000, 81.60156250) +[2618598.239] {Default Queue} wl_pointer#2121.motion(187310231, 3.00000000, 81.60156250) +[2618598.243] {Default Queue} wl_pointer#2153.motion(187310231, 3.00000000, 81.60156250) +[2618598.248] {Default Queue} wl_pointer#2185.motion(187310231, 3.00000000, 81.60156250) +[2618598.252] {Default Queue} wl_pointer#2217.motion(187310231, 3.00000000, 81.60156250) +[2618598.256] {Default Queue} wl_pointer#2249.motion(187310231, 3.00000000, 81.60156250) +[2618598.260] {Default Queue} wl_pointer#2281.motion(187310231, 3.00000000, 81.60156250) +[2618598.265] {Default Queue} wl_pointer#2313.motion(187310231, 3.00000000, 81.60156250) +[2618598.269] {Default Queue} wl_pointer#2345.motion(187310231, 3.00000000, 81.60156250) +[2618598.274] {Default Queue} wl_pointer#2377.motion(187310231, 3.00000000, 81.60156250) +[2618598.278] {Default Queue} wl_pointer#2409.motion(187310231, 3.00000000, 81.60156250) +[2618598.282] {Default Queue} wl_pointer#2441.motion(187310231, 3.00000000, 81.60156250) +[2618598.287] {Default Queue} wl_pointer#2473.motion(187310231, 3.00000000, 81.60156250) +[2618598.291] {Default Queue} wl_pointer#2498.motion(187310231, 3.00000000, 81.60156250) +[2618598.302] {Default Queue} -> wl_buffer#3682.destroy() +[2618598.308] {Default Queue} -> wl_buffer#3681.destroy() +[2618598.312] {Default Queue} -> wl_shm_pool#3671.destroy() +[2618598.316] {Default Queue} -> wl_shm_pool#3679.destroy() +[2618598.321] {Default Queue} -> wl_surface#3684.destroy() +[2618598.358] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3683, fd 583, 640) +[2618598.364] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 584, 640) +[2618598.368] {Default Queue} -> wl_shm_pool#3683.create_buffer(new id wl_buffer#91, 0, 10, 16, 40, 0) +[2618598.373] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) +[2618598.380] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#93) +[2618598.384] {Default Queue} -> wl_surface#93.attach(wl_buffer#91, 0, 0) +[2618598.389] {Default Queue} -> wl_surface#93.commit() +[2618598.394] {Default Queue} -> wl_surface#93.attach(wl_buffer#91, 0, 0) +[2618598.398] {Default Queue} -> wl_surface#93.commit() +[2618598.402] {Default Queue} wl_pointer#2537.motion(187310231, 3.00000000, 81.60156250) +[2618598.407] {Default Queue} wl_pointer#2569.motion(187310231, 3.00000000, 81.60156250) +[2618598.411] {Default Queue} wl_pointer#2601.motion(187310231, 3.00000000, 81.60156250) +[2618598.415] {Default Queue} wl_pointer#2633.motion(187310231, 3.00000000, 81.60156250) +[2618598.420] {Default Queue} wl_pointer#2665.motion(187310231, 3.00000000, 81.60156250) +[2618598.424] {Default Queue} wl_pointer#2697.motion(187310231, 3.00000000, 81.60156250) +[2618598.428] {Default Queue} wl_pointer#2729.motion(187310231, 3.00000000, 81.60156250) +[2618598.433] {Default Queue} wl_pointer#2761.motion(187310231, 3.00000000, 81.60156250) +[2618598.437] {Default Queue} wl_pointer#2793.motion(187310231, 3.00000000, 81.60156250) +[2618598.441] {Default Queue} wl_pointer#2825.motion(187310231, 3.00000000, 81.60156250) +[2618598.446] {Default Queue} wl_pointer#2857.motion(187310231, 3.00000000, 81.60156250) +[2618598.450] {Default Queue} wl_pointer#2889.motion(187310231, 3.00000000, 81.60156250) +[2618598.454] {Default Queue} wl_pointer#2921.motion(187310231, 3.00000000, 81.60156250) +[2618598.459] {Default Queue} wl_pointer#2953.motion(187310231, 3.00000000, 81.60156250) +[2618598.463] {Default Queue} wl_pointer#2985.motion(187310231, 3.00000000, 81.60156250) +[2618598.467] {Default Queue} wl_pointer#3017.motion(187310231, 3.00000000, 81.60156250) +[2618598.475] {Default Queue} wl_pointer#3049.motion(187310231, 3.00000000, 81.60156250) +[2618598.481] {Default Queue} wl_pointer#3081.motion(187310231, 3.00000000, 81.60156250) +[2618598.485] {Default Queue} wl_pointer#3113.motion(187310231, 3.00000000, 81.60156250) +[2618598.490] {Default Queue} wl_pointer#3145.motion(187310231, 3.00000000, 81.60156250) +[2618598.494] {Default Queue} wl_pointer#3177.motion(187310231, 3.00000000, 81.60156250) +[2618598.498] {Default Queue} wl_pointer#3209.motion(187310231, 3.00000000, 81.60156250) +[2618598.503] {Default Queue} wl_pointer#3241.motion(187310231, 3.00000000, 81.60156250) +[2618598.507] {Default Queue} wl_pointer#3273.motion(187310231, 3.00000000, 81.60156250) +[2618598.511] {Default Queue} wl_pointer#3305.motion(187310231, 3.00000000, 81.60156250) +[2618598.516] {Default Queue} wl_pointer#3337.motion(187310231, 3.00000000, 81.60156250) +[2618598.520] {Default Queue} wl_pointer#3369.motion(187310231, 3.00000000, 81.60156250) +[2618598.524] {Default Queue} wl_pointer#3401.motion(187310231, 3.00000000, 81.60156250) +[2618598.528] {Default Queue} wl_pointer#3433.motion(187310231, 3.00000000, 81.60156250) +[2618598.533] {Default Queue} wl_pointer#3465.motion(187310231, 3.00000000, 81.60156250) +[2618598.537] {Default Queue} wl_pointer#3497.motion(187310231, 3.00000000, 81.60156250) +[2618598.542] {Default Queue} wl_pointer#3529.motion(187310231, 3.00000000, 81.60156250) +[2618598.546] {Default Queue} wl_pointer#3561.motion(187310231, 3.00000000, 81.60156250) +[2618598.550] {Default Queue} wl_pointer#3593.motion(187310231, 3.00000000, 81.60156250) +[2618598.555] {Default Queue} wl_pointer#3625.motion(187310231, 3.00000000, 81.60156250) +[2618598.559] {Default Queue} wl_pointer#3657.motion(187310231, 3.00000000, 81.60156250) +[2618598.563] {Default Queue} wl_pointer#3695.motion(187310231, 3.00000000, 81.60156250) +[2618598.567] {Default Queue} wl_pointer#24.motion(187310231, 3.80078125, 80.39843750) +[2618598.572] {Default Queue} wl_pointer#81.motion(187310231, 3.80078125, 80.39843750) +[2618598.579] {Default Queue} wl_pointer#105.motion(187310231, 3.80078125, 80.39843750) +[2618598.584] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618598.589] {Default Queue} wl_pointer#137.motion(187310231, 3.80078125, 80.39843750) +[2618598.593] {Default Queue} wl_pointer#169.motion(187310231, 3.80078125, 80.39843750) +[2618598.598] {Default Queue} wl_pointer#201.motion(187310231, 3.80078125, 80.39843750) +[2618598.602] {Default Queue} wl_pointer#233.motion(187310231, 3.80078125, 80.39843750) +[2618598.606] {Default Queue} wl_pointer#265.motion(187310231, 3.80078125, 80.39843750) +[2618598.611] {Default Queue} wl_pointer#297.motion(187310231, 3.80078125, 80.39843750) +[2618598.615] {Default Queue} wl_pointer#329.motion(187310231, 3.80078125, 80.39843750) +[2618598.619] {Default Queue} wl_pointer#361.motion(187310231, 3.80078125, 80.39843750) +[2618598.623] {Default Queue} wl_pointer#393.motion(187310231, 3.80078125, 80.39843750) +[2618598.628] {Default Queue} wl_pointer#425.motion(187310231, 3.80078125, 80.39843750) +[2618598.632] {Default Queue} wl_pointer#457.motion(187310231, 3.80078125, 80.39843750) +[2618598.636] {Default Queue} wl_pointer#489.motion(187310231, 3.80078125, 80.39843750) +[2618598.640] {Default Queue} wl_pointer#521.motion(187310231, 3.80078125, 80.39843750) +[2618598.645] {Default Queue} wl_pointer#553.motion(187310231, 3.80078125, 80.39843750) +[2618598.649] {Default Queue} wl_pointer#585.motion(187310231, 3.80078125, 80.39843750) +[2618598.653] {Default Queue} wl_pointer#617.motion(187310231, 3.80078125, 80.39843750) +[2618598.657] {Default Queue} wl_pointer#649.motion(187310231, 3.80078125, 80.39843750) +[2618598.661] {Default Queue} wl_pointer#681.motion(187310231, 3.80078125, 80.39843750) +[2618598.666] {Default Queue} wl_pointer#713.motion(187310231, 3.80078125, 80.39843750) +[2618598.670] {Default Queue} wl_pointer#745.motion(187310231, 3.80078125, 80.39843750) +[2618598.674] {Default Queue} wl_pointer#777.motion(187310231, 3.80078125, 80.39843750) +[2618598.681] {Default Queue} wl_pointer#809.motion(187310231, 3.80078125, 80.39843750) +[2618598.687] {Default Queue} wl_pointer#841.motion(187310231, 3.80078125, 80.39843750) +[2618598.691] {Default Queue} wl_pointer#873.motion(187310231, 3.80078125, 80.39843750) +[2618598.695] {Default Queue} wl_pointer#905.motion(187310231, 3.80078125, 80.39843750) +[2618598.700] {Default Queue} wl_pointer#937.motion(187310231, 3.80078125, 80.39843750) +[2618598.704] {Default Queue} wl_pointer#969.motion(187310231, 3.80078125, 80.39843750) +[2618598.708] {Default Queue} wl_pointer#1001.motion(187310231, 3.80078125, 80.39843750) +[2618598.712] {Default Queue} wl_pointer#1033.motion(187310231, 3.80078125, 80.39843750) +[2618598.717] {Default Queue} wl_pointer#1065.motion(187310231, 3.80078125, 80.39843750) +[2618598.721] {Default Queue} wl_pointer#1097.motion(187310231, 3.80078125, 80.39843750) +[2618598.726] {Default Queue} wl_pointer#1129.motion(187310231, 3.80078125, 80.39843750) +[2618598.730] {Default Queue} wl_pointer#1161.motion(187310231, 3.80078125, 80.39843750) +[2618598.734] {Default Queue} wl_pointer#1193.motion(187310231, 3.80078125, 80.39843750) +[2618598.738] {Default Queue} wl_pointer#1225.motion(187310231, 3.80078125, 80.39843750) +[2618598.743] {Default Queue} wl_pointer#1257.motion(187310231, 3.80078125, 80.39843750) +[2618598.747] {Default Queue} wl_pointer#1289.motion(187310231, 3.80078125, 80.39843750) +[2618598.751] {Default Queue} wl_pointer#1321.motion(187310231, 3.80078125, 80.39843750) +[2618598.755] {Default Queue} wl_pointer#1353.motion(187310231, 3.80078125, 80.39843750) +[2618598.760] {Default Queue} wl_pointer#1385.motion(187310231, 3.80078125, 80.39843750) +[2618598.764] {Default Queue} wl_pointer#1417.motion(187310231, 3.80078125, 80.39843750) +[2618598.768] {Default Queue} wl_pointer#1449.motion(187310231, 3.80078125, 80.39843750) +[2618598.772] {Default Queue} wl_pointer#1481.motion(187310231, 3.80078125, 80.39843750) +[2618598.777] {Default Queue} wl_pointer#1513.motion(187310231, 3.80078125, 80.39843750) +[2618598.781] {Default Queue} wl_pointer#1545.motion(187310231, 3.80078125, 80.39843750) +[2618598.785] {Default Queue} wl_pointer#1577.motion(187310231, 3.80078125, 80.39843750) +[2618598.790] {Default Queue} wl_pointer#1609.motion(187310231, 3.80078125, 80.39843750) +[2618598.794] {Default Queue} wl_pointer#1641.motion(187310231, 3.80078125, 80.39843750) +[2618598.798] {Default Queue} wl_pointer#1673.motion(187310231, 3.80078125, 80.39843750) +[2618598.803] {Default Queue} wl_pointer#1705.motion(187310231, 3.80078125, 80.39843750) +[2618598.807] {Default Queue} wl_pointer#1737.motion(187310231, 3.80078125, 80.39843750) +[2618598.811] {Default Queue} wl_pointer#1762.motion(187310231, 3.80078125, 80.39843750) +[2618598.815] {Default Queue} wl_pointer#1801.motion(187310231, 3.80078125, 80.39843750) +[2618598.820] {Default Queue} wl_pointer#1833.motion(187310231, 3.80078125, 80.39843750) +[2618598.824] {Default Queue} wl_pointer#1865.motion(187310231, 3.80078125, 80.39843750) +[2618598.828] {Default Queue} wl_pointer#1897.motion(187310231, 3.80078125, 80.39843750) +[2618598.833] {Default Queue} wl_pointer#1929.motion(187310231, 3.80078125, 80.39843750) +[2618598.837] {Default Queue} wl_pointer#1961.motion(187310231, 3.80078125, 80.39843750) +[2618598.841] {Default Queue} wl_pointer#1993.motion(187310231, 3.80078125, 80.39843750) +[2618598.845] {Default Queue} wl_pointer#2025.motion(187310231, 3.80078125, 80.39843750) +[2618598.850] {Default Queue} wl_pointer#2057.motion(187310231, 3.80078125, 80.39843750) +[2618598.854] {Default Queue} wl_pointer#2089.motion(187310231, 3.80078125, 80.39843750) +[2618598.858] {Default Queue} wl_pointer#2121.motion(187310231, 3.80078125, 80.39843750) +[2618598.868] {Default Queue} wl_pointer#2153.motion(187310231, 3.80078125, 80.39843750) +[2618598.873] {Default Queue} wl_pointer#2185.motion(187310231, 3.80078125, 80.39843750) +[2618598.877] {Default Queue} wl_pointer#2217.motion(187310231, 3.80078125, 80.39843750) +[2618598.882] {Default Queue} wl_pointer#2249.motion(187310231, 3.80078125, 80.39843750) +[2618598.889] {Default Queue} wl_pointer#2281.motion(187310231, 3.80078125, 80.39843750) +[2618598.895] {Default Queue} wl_pointer#2313.motion(187310231, 3.80078125, 80.39843750) +[2618598.899] {Default Queue} wl_pointer#2345.motion(187310231, 3.80078125, 80.39843750) +[2618598.904] {Default Queue} wl_pointer#2377.motion(187310231, 3.80078125, 80.39843750) +[2618598.908] {Default Queue} wl_pointer#2409.motion(187310231, 3.80078125, 80.39843750) +[2618598.912] {Default Queue} wl_pointer#2441.motion(187310231, 3.80078125, 80.39843750) +[2618598.917] {Default Queue} wl_pointer#2473.motion(187310231, 3.80078125, 80.39843750) +[2618598.921] {Default Queue} wl_pointer#2498.motion(187310231, 3.80078125, 80.39843750) +[2618598.931] {Default Queue} -> wl_buffer#91.destroy() +[2618598.935] {Default Queue} -> wl_buffer#94.destroy() +[2618598.939] {Default Queue} -> wl_shm_pool#3683.destroy() +[2618598.943] {Default Queue} -> wl_shm_pool#92.destroy() +[2618598.948] {Default Queue} -> wl_surface#93.destroy() +[2618598.984] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3292, fd 585, 640) +[2618598.990] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 586, 640) +[2618598.995] {Default Queue} -> wl_shm_pool#3292.create_buffer(new id wl_buffer#3294, 0, 10, 16, 40, 0) +[2618598.999] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) +[2618599.006] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3484) +[2618599.010] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) +[2618599.014] {Default Queue} -> wl_surface#3484.commit() +[2618599.020] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) +[2618599.024] {Default Queue} -> wl_surface#3484.commit() +[2618599.028] {Default Queue} wl_pointer#2537.motion(187310231, 3.80078125, 80.39843750) +[2618599.032] {Default Queue} wl_pointer#2569.motion(187310231, 3.80078125, 80.39843750) +[2618599.037] {Default Queue} wl_pointer#2601.motion(187310231, 3.80078125, 80.39843750) +[2618599.041] {Default Queue} wl_pointer#2633.motion(187310231, 3.80078125, 80.39843750) +[2618599.045] {Default Queue} wl_pointer#2665.motion(187310231, 3.80078125, 80.39843750) +[2618599.050] {Default Queue} wl_pointer#2697.motion(187310231, 3.80078125, 80.39843750) +[2618599.054] {Default Queue} wl_pointer#2729.motion(187310231, 3.80078125, 80.39843750) +[2618599.058] {Default Queue} wl_pointer#2761.motion(187310231, 3.80078125, 80.39843750) +[2618599.063] {Default Queue} wl_pointer#2793.motion(187310231, 3.80078125, 80.39843750) +[2618599.067] {Default Queue} wl_pointer#2825.motion(187310231, 3.80078125, 80.39843750) +[2618599.072] {Default Queue} wl_pointer#2857.motion(187310231, 3.80078125, 80.39843750) +[2618599.076] {Default Queue} wl_pointer#2889.motion(187310231, 3.80078125, 80.39843750) +[2618599.080] {Default Queue} wl_pointer#2921.motion(187310231, 3.80078125, 80.39843750) +[2618599.084] {Default Queue} wl_pointer#2953.motion(187310231, 3.80078125, 80.39843750) +[2618599.089] {Default Queue} wl_pointer#2985.motion(187310231, 3.80078125, 80.39843750) +[2618599.093] {Default Queue} wl_pointer#3017.motion(187310231, 3.80078125, 80.39843750) +[2618599.097] {Default Queue} wl_pointer#3049.motion(187310231, 3.80078125, 80.39843750) +[2618599.102] {Default Queue} wl_pointer#3081.motion(187310231, 3.80078125, 80.39843750) +[2618599.106] {Default Queue} wl_pointer#3113.motion(187310231, 3.80078125, 80.39843750) +[2618599.110] {Default Queue} wl_pointer#3145.motion(187310231, 3.80078125, 80.39843750) +[2618599.115] {Default Queue} wl_pointer#3177.motion(187310231, 3.80078125, 80.39843750) +[2618599.119] {Default Queue} wl_pointer#3209.motion(187310231, 3.80078125, 80.39843750) +[2618599.123] {Default Queue} wl_pointer#3241.motion(187310231, 3.80078125, 80.39843750) +[2618599.128] {Default Queue} wl_pointer#3273.motion(187310231, 3.80078125, 80.39843750) +[2618599.132] {Default Queue} wl_pointer#3305.motion(187310231, 3.80078125, 80.39843750) +[2618599.136] {Default Queue} wl_pointer#3337.motion(187310231, 3.80078125, 80.39843750) +[2618599.143] {Default Queue} wl_pointer#3369.motion(187310231, 3.80078125, 80.39843750) +[2618599.149] {Default Queue} wl_pointer#3401.motion(187310231, 3.80078125, 80.39843750) +[2618599.154] {Default Queue} wl_pointer#3433.motion(187310231, 3.80078125, 80.39843750) +[2618599.158] {Default Queue} wl_pointer#3465.motion(187310231, 3.80078125, 80.39843750) +[2618599.162] {Default Queue} wl_pointer#3497.motion(187310231, 3.80078125, 80.39843750) +[2618599.167] {Default Queue} wl_pointer#3529.motion(187310231, 3.80078125, 80.39843750) +[2618599.171] {Default Queue} wl_pointer#3561.motion(187310231, 3.80078125, 80.39843750) +[2618599.175] {Default Queue} wl_pointer#3593.motion(187310231, 3.80078125, 80.39843750) +[2618599.180] {Default Queue} wl_pointer#3625.motion(187310231, 3.80078125, 80.39843750) +[2618599.184] {Default Queue} wl_pointer#3657.motion(187310231, 3.80078125, 80.39843750) +[2618599.188] {Default Queue} wl_pointer#3695.motion(187310231, 3.80078125, 80.39843750) +[2618599.193] {Default Queue} discarded wl_surface#101.enter(wl_output#18) +[2618599.197] {Default Queue} discarded wl_surface#101.enter(wl_output#57) +[2618599.201] {Default Queue} discarded wl_surface#101.enter(wl_output#89) +[2618599.205] {Default Queue} discarded wl_surface#101.enter(wl_output#121) +[2618599.209] {Default Queue} discarded wl_surface#101.enter(wl_output#153) +[2618599.213] {Default Queue} discarded wl_surface#101.enter(wl_output#185) +[2618599.216] {Default Queue} discarded wl_surface#101.enter(wl_output#217) +[2618599.220] {Default Queue} discarded wl_surface#101.enter(wl_output#249) +[2618599.224] {Default Queue} discarded wl_surface#101.enter(wl_output#281) +[2618599.228] {Default Queue} discarded wl_surface#101.enter(wl_output#313) +[2618599.232] {Default Queue} discarded wl_surface#101.enter(wl_output#345) +[2618599.236] {Default Queue} discarded wl_surface#101.enter(wl_output#377) +[2618599.240] {Default Queue} discarded wl_surface#101.enter(wl_output#409) +[2618599.244] {Default Queue} discarded wl_surface#101.enter(wl_output#441) +[2618599.248] {Default Queue} discarded wl_surface#101.enter(wl_output#473) +[2618599.252] {Default Queue} discarded wl_surface#101.enter(wl_output#505) +[2618599.255] {Default Queue} discarded wl_surface#101.enter(wl_output#537) +[2618599.259] {Default Queue} discarded wl_surface#101.enter(wl_output#569) +[2618599.263] {Default Queue} discarded wl_surface#101.enter(wl_output#601) +[2618599.267] {Default Queue} discarded wl_surface#101.enter(wl_output#633) +[2618599.271] {Default Queue} discarded wl_surface#101.enter(wl_output#665) +[2618599.275] {Default Queue} discarded wl_surface#101.enter(wl_output#697) +[2618599.279] {Default Queue} discarded wl_surface#101.enter(wl_output#729) +[2618599.283] {Default Queue} discarded wl_surface#101.enter(wl_output#761) +[2618599.286] {Default Queue} discarded wl_surface#101.enter(wl_output#793) +[2618599.290] {Default Queue} discarded wl_surface#101.enter(wl_output#825) +[2618599.294] {Default Queue} discarded wl_surface#101.enter(wl_output#857) +[2618599.298] {Default Queue} discarded wl_surface#101.enter(wl_output#889) +[2618599.302] {Default Queue} discarded wl_surface#101.enter(wl_output#921) +[2618599.306] {Default Queue} discarded wl_surface#101.enter(wl_output#953) +[2618599.309] {Default Queue} discarded wl_surface#101.enter(wl_output#985) +[2618599.313] {Default Queue} discarded wl_surface#101.enter(wl_output#1017) +[2618599.317] {Default Queue} discarded wl_surface#101.enter(wl_output#1049) +[2618599.321] {Default Queue} discarded wl_surface#101.enter(wl_output#1081) +[2618599.325] {Default Queue} discarded wl_surface#101.enter(wl_output#1113) +[2618599.329] {Default Queue} discarded wl_surface#101.enter(wl_output#1145) +[2618599.333] {Default Queue} discarded wl_surface#101.enter(wl_output#1177) +[2618599.337] {Default Queue} discarded wl_surface#101.enter(wl_output#1209) +[2618599.341] {Default Queue} discarded wl_surface#101.enter(wl_output#1241) +[2618599.344] {Default Queue} discarded wl_surface#101.enter(wl_output#1273) +[2618599.348] {Default Queue} discarded wl_surface#101.enter(wl_output#1305) +[2618599.355] {Default Queue} discarded wl_surface#101.enter(wl_output#1337) +[2618599.360] {Default Queue} discarded wl_surface#101.enter(wl_output#1369) +[2618599.364] {Default Queue} discarded wl_surface#101.enter(wl_output#1401) +[2618599.368] {Default Queue} discarded wl_surface#101.enter(wl_output#1433) +[2618599.371] {Default Queue} discarded wl_surface#101.enter(wl_output#1465) +[2618599.375] {Default Queue} discarded wl_surface#101.enter(wl_output#1497) +[2618599.379] {Default Queue} discarded wl_surface#101.enter(wl_output#1529) +[2618599.383] {Default Queue} discarded wl_surface#101.enter(wl_output#1561) +[2618599.387] {Default Queue} discarded wl_surface#101.enter(wl_output#1593) +[2618599.391] {Default Queue} discarded wl_surface#101.enter(wl_output#1625) +[2618599.394] {Default Queue} discarded wl_surface#101.enter(wl_output#1657) +[2618599.398] {Default Queue} discarded wl_surface#101.enter(wl_output#1689) +[2618599.402] {Default Queue} discarded wl_surface#101.enter(wl_output#1721) +[2618599.406] {Default Queue} discarded wl_surface#101.enter(wl_output#1753) +[2618599.410] {Default Queue} discarded wl_surface#101.enter(wl_output#1785) +[2618599.414] {Default Queue} discarded wl_surface#101.enter(wl_output#1817) +[2618599.417] {Default Queue} discarded wl_surface#101.enter(wl_output#1849) +[2618599.421] {Default Queue} discarded wl_surface#101.enter(wl_output#1881) +[2618599.425] {Default Queue} discarded wl_surface#101.enter(wl_output#1913) +[2618599.429] {Default Queue} discarded wl_surface#101.enter(wl_output#1945) +[2618599.433] {Default Queue} discarded wl_surface#101.enter(wl_output#1977) +[2618599.436] {Default Queue} discarded wl_surface#101.enter(wl_output#2009) +[2618599.440] {Default Queue} discarded wl_surface#101.enter(wl_output#2041) +[2618599.444] {Default Queue} discarded wl_surface#101.enter(wl_output#2073) +[2618599.448] {Default Queue} discarded wl_surface#101.enter(wl_output#2105) +[2618599.452] {Default Queue} discarded wl_surface#101.enter(wl_output#2137) +[2618599.456] {Default Queue} discarded wl_surface#101.enter(wl_output#2169) +[2618599.460] {Default Queue} discarded wl_surface#101.enter(wl_output#2201) +[2618599.463] {Default Queue} discarded wl_surface#101.enter(wl_output#2233) +[2618599.467] {Default Queue} discarded wl_surface#101.enter(wl_output#2265) +[2618599.471] {Default Queue} discarded wl_surface#101.enter(wl_output#2297) +[2618599.475] {Default Queue} discarded wl_surface#101.enter(wl_output#2329) +[2618599.479] {Default Queue} discarded wl_surface#101.enter(wl_output#2361) +[2618599.482] {Default Queue} discarded wl_surface#101.enter(wl_output#2393) +[2618599.486] {Default Queue} discarded wl_surface#101.enter(wl_output#2425) +[2618599.490] {Default Queue} discarded wl_surface#101.enter(wl_output#2457) +[2618599.494] {Default Queue} discarded wl_surface#101.enter(wl_output#2489) +[2618599.498] {Default Queue} discarded wl_surface#101.enter(wl_output#2521) +[2618599.501] {Default Queue} discarded wl_surface#101.enter(wl_output#2553) +[2618599.505] {Default Queue} discarded wl_surface#101.enter(wl_output#2585) +[2618599.509] {Default Queue} discarded wl_surface#101.enter(wl_output#2617) +[2618599.513] {Default Queue} discarded wl_surface#101.enter(wl_output#2649) +[2618599.517] {Default Queue} discarded wl_surface#101.enter(wl_output#2681) +[2618599.521] {Default Queue} discarded wl_surface#101.enter(wl_output#2713) +[2618599.525] {Default Queue} discarded wl_surface#101.enter(wl_output#2745) +[2618599.529] {Default Queue} discarded wl_surface#101.enter(wl_output#2777) +[2618599.532] {Default Queue} discarded wl_surface#101.enter(wl_output#2809) +[2618599.536] {Default Queue} discarded wl_surface#101.enter(wl_output#2841) +[2618599.540] {Default Queue} discarded wl_surface#101.enter(wl_output#2873) +[2618599.544] {Default Queue} discarded wl_surface#101.enter(wl_output#2905) +[2618599.548] {Default Queue} discarded wl_surface#101.enter(wl_output#2937) +[2618599.551] {Default Queue} discarded wl_surface#101.enter(wl_output#2969) +[2618599.555] {Default Queue} discarded wl_surface#101.enter(wl_output#3001) +[2618599.562] {Default Queue} discarded wl_surface#101.enter(wl_output#3033) +[2618599.567] {Default Queue} discarded wl_surface#101.enter(wl_output#3065) +[2618599.571] {Default Queue} discarded wl_surface#101.enter(wl_output#3097) +[2618599.575] {Default Queue} discarded wl_surface#101.enter(wl_output#3129) +[2618599.578] {Default Queue} discarded wl_surface#101.enter(wl_output#3161) +[2618599.582] {Default Queue} discarded wl_surface#101.enter(wl_output#3193) +[2618599.586] {Default Queue} discarded wl_surface#101.enter(wl_output#3225) +[2618599.590] {Default Queue} discarded wl_surface#101.enter(wl_output#3257) +[2618599.594] {Default Queue} discarded wl_surface#101.enter(wl_output#3289) +[2618599.598] {Default Queue} discarded wl_surface#101.enter(wl_output#3321) +[2618599.601] {Default Queue} discarded wl_surface#101.enter(wl_output#3353) +[2618599.605] {Default Queue} discarded wl_surface#101.enter(wl_output#3385) +[2618599.610] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) +[2618599.614] {Default Queue} -> wl_surface#679.commit() +[2618600.683] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) +[2618600.688] {Default Queue} -> wl_surface#679.commit() +[2618600.695] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) +[2618600.699] {Default Queue} -> wl_surface#679.commit() +[2618600.705] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) +[2618600.709] {Default Queue} -> wl_surface#455.commit() +[2618601.398] {Default Queue} discarded wl_surface#101.enter(wl_output#3417) +[2618601.403] {Default Queue} discarded wl_surface#101.enter(wl_output#3449) +[2618601.408] {Default Queue} discarded wl_surface#101.enter(wl_output#3481) +[2618601.413] {Default Queue} discarded wl_surface#101.enter(wl_output#3513) +[2618601.419] {Default Queue} discarded wl_surface#101.enter(wl_output#3545) +[2618601.423] {Default Queue} discarded wl_surface#101.enter(wl_output#3577) +[2618601.428] {Default Queue} discarded wl_surface#101.enter(wl_output#3609) +[2618601.432] {Default Queue} discarded wl_surface#101.enter(wl_output#3641) +[2618601.436] {Default Queue} discarded wl_surface#101.enter(wl_output#3673) +[2618601.445] {Default Queue} -> wl_region#479.subtract(0, 0, 19, 48) +[2618601.450] {Default Queue} -> wl_region#479.add(-20, -49, 19, 48) +[2618601.454] {Default Queue} -> wl_surface#455.set_opaque_region(wl_region#480) +[2618601.459] {Default Queue} -> wl_surface#455.set_input_region(wl_region#479) +[2618601.465] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) +[2618601.469] {Default Queue} -> wl_surface#455.commit() +[2618601.473] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) +[2618601.477] {Default Queue} -> wl_surface#455.commit() +[2618601.483] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) +[2618601.487] {Default Queue} -> wl_surface#455.commit() +[2618601.493] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) +[2618601.497] {Default Queue} -> wl_surface#423.commit() +[2618601.617] {Default Queue} wl_pointer#24.motion(187310236, 4.60156250, 78.80078125) +[2618601.623] {Default Queue} wl_pointer#81.motion(187310236, 4.60156250, 78.80078125) +[2618601.628] {Default Queue} wl_pointer#105.motion(187310236, 4.60156250, 78.80078125) +[2618601.633] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618601.637] {Default Queue} wl_pointer#137.motion(187310236, 4.60156250, 78.80078125) +[2618601.641] {Default Queue} wl_pointer#169.motion(187310236, 4.60156250, 78.80078125) +[2618601.646] {Default Queue} wl_pointer#201.motion(187310236, 4.60156250, 78.80078125) +[2618601.650] {Default Queue} wl_pointer#233.motion(187310236, 4.60156250, 78.80078125) +[2618601.654] {Default Queue} wl_pointer#265.motion(187310236, 4.60156250, 78.80078125) +[2618601.658] {Default Queue} wl_pointer#297.motion(187310236, 4.60156250, 78.80078125) +[2618601.663] {Default Queue} wl_pointer#329.motion(187310236, 4.60156250, 78.80078125) +[2618601.667] {Default Queue} wl_pointer#361.motion(187310236, 4.60156250, 78.80078125) +[2618601.671] {Default Queue} wl_pointer#393.motion(187310236, 4.60156250, 78.80078125) +[2618601.679] {Default Queue} wl_pointer#425.motion(187310236, 4.60156250, 78.80078125) +[2618601.686] {Default Queue} wl_pointer#457.motion(187310236, 4.60156250, 78.80078125) +[2618601.690] {Default Queue} wl_pointer#489.motion(187310236, 4.60156250, 78.80078125) +[2618601.694] {Default Queue} wl_pointer#521.motion(187310236, 4.60156250, 78.80078125) +[2618601.698] {Default Queue} wl_pointer#553.motion(187310236, 4.60156250, 78.80078125) +[2618601.703] {Default Queue} wl_pointer#585.motion(187310236, 4.60156250, 78.80078125) +[2618601.707] {Default Queue} wl_pointer#617.motion(187310236, 4.60156250, 78.80078125) +[2618601.711] {Default Queue} wl_pointer#649.motion(187310236, 4.60156250, 78.80078125) +[2618601.715] {Default Queue} wl_pointer#681.motion(187310236, 4.60156250, 78.80078125) +[2618601.720] {Default Queue} wl_pointer#713.motion(187310236, 4.60156250, 78.80078125) +[2618601.724] {Default Queue} wl_pointer#745.motion(187310236, 4.60156250, 78.80078125) +[2618601.728] {Default Queue} wl_pointer#777.motion(187310236, 4.60156250, 78.80078125) +[2618601.732] {Default Queue} wl_pointer#809.motion(187310236, 4.60156250, 78.80078125) +[2618601.737] {Default Queue} wl_pointer#841.motion(187310236, 4.60156250, 78.80078125) +[2618601.741] {Default Queue} wl_pointer#873.motion(187310236, 4.60156250, 78.80078125) +[2618601.745] {Default Queue} wl_pointer#905.motion(187310236, 4.60156250, 78.80078125) +[2618601.749] {Default Queue} wl_pointer#937.motion(187310236, 4.60156250, 78.80078125) +[2618601.753] {Default Queue} wl_pointer#969.motion(187310236, 4.60156250, 78.80078125) +[2618601.758] {Default Queue} wl_pointer#1001.motion(187310236, 4.60156250, 78.80078125) +[2618601.762] {Default Queue} wl_pointer#1033.motion(187310236, 4.60156250, 78.80078125) +[2618601.766] {Default Queue} wl_pointer#1065.motion(187310236, 4.60156250, 78.80078125) +[2618601.771] {Default Queue} wl_pointer#1097.motion(187310236, 4.60156250, 78.80078125) +[2618601.775] {Default Queue} wl_pointer#1129.motion(187310236, 4.60156250, 78.80078125) +[2618601.779] {Default Queue} wl_pointer#1161.motion(187310236, 4.60156250, 78.80078125) +[2618601.783] {Default Queue} wl_pointer#1193.motion(187310236, 4.60156250, 78.80078125) +[2618601.788] {Default Queue} wl_pointer#1225.motion(187310236, 4.60156250, 78.80078125) +[2618601.792] {Default Queue} wl_pointer#1257.motion(187310236, 4.60156250, 78.80078125) +[2618601.796] {Default Queue} wl_pointer#1289.motion(187310236, 4.60156250, 78.80078125) +[2618601.800] {Default Queue} wl_pointer#1321.motion(187310236, 4.60156250, 78.80078125) +[2618601.805] {Default Queue} wl_pointer#1353.motion(187310236, 4.60156250, 78.80078125) +[2618601.809] {Default Queue} wl_pointer#1385.motion(187310236, 4.60156250, 78.80078125) +[2618601.813] {Default Queue} wl_pointer#1417.motion(187310236, 4.60156250, 78.80078125) +[2618601.817] {Default Queue} wl_pointer#1449.motion(187310236, 4.60156250, 78.80078125) +[2618601.822] {Default Queue} wl_pointer#1481.motion(187310236, 4.60156250, 78.80078125) +[2618601.826] {Default Queue} wl_pointer#1513.motion(187310236, 4.60156250, 78.80078125) +[2618601.830] {Default Queue} wl_pointer#1545.motion(187310236, 4.60156250, 78.80078125) +[2618601.834] {Default Queue} wl_pointer#1577.motion(187310236, 4.60156250, 78.80078125) +[2618601.839] {Default Queue} wl_pointer#1609.motion(187310236, 4.60156250, 78.80078125) +[2618601.843] {Default Queue} wl_pointer#1641.motion(187310236, 4.60156250, 78.80078125) +[2618601.847] {Default Queue} wl_pointer#1673.motion(187310236, 4.60156250, 78.80078125) +[2618601.851] {Default Queue} wl_pointer#1705.motion(187310236, 4.60156250, 78.80078125) +[2618601.856] {Default Queue} wl_pointer#1737.motion(187310236, 4.60156250, 78.80078125) +[2618601.866] {Default Queue} wl_pointer#1762.motion(187310236, 4.60156250, 78.80078125) +[2618601.871] {Default Queue} wl_pointer#1801.motion(187310236, 4.60156250, 78.80078125) +[2618601.875] {Default Queue} wl_pointer#1833.motion(187310236, 4.60156250, 78.80078125) +[2618601.879] {Default Queue} wl_pointer#1865.motion(187310236, 4.60156250, 78.80078125) +[2618601.886] {Default Queue} wl_pointer#1897.motion(187310236, 4.60156250, 78.80078125) +[2618601.892] {Default Queue} wl_pointer#1929.motion(187310236, 4.60156250, 78.80078125) +[2618601.896] {Default Queue} wl_pointer#1961.motion(187310236, 4.60156250, 78.80078125) +[2618601.901] {Default Queue} wl_pointer#1993.motion(187310236, 4.60156250, 78.80078125) +[2618601.905] {Default Queue} wl_pointer#2025.motion(187310236, 4.60156250, 78.80078125) +[2618601.909] {Default Queue} wl_pointer#2057.motion(187310236, 4.60156250, 78.80078125) +[2618601.913] {Default Queue} wl_pointer#2089.motion(187310236, 4.60156250, 78.80078125) +[2618601.918] {Default Queue} wl_pointer#2121.motion(187310236, 4.60156250, 78.80078125) +[2618601.922] {Default Queue} wl_pointer#2153.motion(187310236, 4.60156250, 78.80078125) +[2618601.926] {Default Queue} wl_pointer#2185.motion(187310236, 4.60156250, 78.80078125) +[2618601.931] {Default Queue} wl_pointer#2217.motion(187310236, 4.60156250, 78.80078125) +[2618601.935] {Default Queue} wl_pointer#2249.motion(187310236, 4.60156250, 78.80078125) +[2618601.939] {Default Queue} wl_pointer#2281.motion(187310236, 4.60156250, 78.80078125) +[2618601.943] {Default Queue} wl_pointer#2313.motion(187310236, 4.60156250, 78.80078125) +[2618601.948] {Default Queue} wl_pointer#2345.motion(187310236, 4.60156250, 78.80078125) +[2618601.952] {Default Queue} wl_pointer#2377.motion(187310236, 4.60156250, 78.80078125) +[2618601.957] {Default Queue} wl_pointer#2409.motion(187310236, 4.60156250, 78.80078125) +[2618601.961] {Default Queue} wl_pointer#2441.motion(187310236, 4.60156250, 78.80078125) +[2618601.965] {Default Queue} wl_pointer#2473.motion(187310236, 4.60156250, 78.80078125) +[2618601.969] {Default Queue} wl_pointer#2498.motion(187310236, 4.60156250, 78.80078125) +[2618601.980] {Default Queue} -> wl_buffer#3294.destroy() +[2618601.986] {Default Queue} -> wl_buffer#3293.destroy() +[2618601.990] {Default Queue} -> wl_shm_pool#3292.destroy() +[2618601.994] {Default Queue} -> wl_shm_pool#3291.destroy() +[2618601.999] {Default Queue} -> wl_surface#3484.destroy() +[2618602.042] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3483, fd 575, 640) +[2618602.049] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3486, fd 578, 640) +[2618602.054] {Default Queue} -> wl_shm_pool#3483.create_buffer(new id wl_buffer#3485, 0, 10, 16, 40, 0) +[2618602.058] {Default Queue} -> wl_shm_pool#3486.create_buffer(new id wl_buffer#3516, 0, 10, 16, 40, 0) +[2618602.066] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3515) +[2618602.070] {Default Queue} -> wl_surface#3515.attach(wl_buffer#3485, 0, 0) +[2618602.074] {Default Queue} -> wl_surface#3515.commit() +[2618602.079] {Default Queue} -> wl_surface#3515.attach(wl_buffer#3485, 0, 0) +[2618602.084] {Default Queue} -> wl_surface#3515.commit() +[2618602.088] {Default Queue} wl_pointer#2537.motion(187310236, 4.60156250, 78.80078125) +[2618602.093] {Default Queue} wl_pointer#2569.motion(187310236, 4.60156250, 78.80078125) +[2618602.097] {Default Queue} wl_pointer#2601.motion(187310236, 4.60156250, 78.80078125) +[2618602.102] {Default Queue} wl_pointer#2633.motion(187310236, 4.60156250, 78.80078125) +[2618602.106] {Default Queue} wl_pointer#2665.motion(187310236, 4.60156250, 78.80078125) +[2618602.111] {Default Queue} wl_pointer#2697.motion(187310236, 4.60156250, 78.80078125) +[2618602.115] {Default Queue} wl_pointer#2729.motion(187310236, 4.60156250, 78.80078125) +[2618602.119] {Default Queue} wl_pointer#2761.motion(187310236, 4.60156250, 78.80078125) +[2618602.123] {Default Queue} wl_pointer#2793.motion(187310236, 4.60156250, 78.80078125) +[2618602.128] {Default Queue} wl_pointer#2825.motion(187310236, 4.60156250, 78.80078125) +[2618602.132] {Default Queue} wl_pointer#2857.motion(187310236, 4.60156250, 78.80078125) +[2618602.137] {Default Queue} wl_pointer#2889.motion(187310236, 4.60156250, 78.80078125) +[2618602.141] {Default Queue} wl_pointer#2921.motion(187310236, 4.60156250, 78.80078125) +[2618602.146] {Default Queue} wl_pointer#2953.motion(187310236, 4.60156250, 78.80078125) +[2618602.153] {Default Queue} wl_pointer#2985.motion(187310236, 4.60156250, 78.80078125) +[2618602.159] {Default Queue} wl_pointer#3017.motion(187310236, 4.60156250, 78.80078125) +[2618602.164] {Default Queue} wl_pointer#3049.motion(187310236, 4.60156250, 78.80078125) +[2618602.168] {Default Queue} wl_pointer#3081.motion(187310236, 4.60156250, 78.80078125) +[2618602.172] {Default Queue} wl_pointer#3113.motion(187310236, 4.60156250, 78.80078125) +[2618602.177] {Default Queue} wl_pointer#3145.motion(187310236, 4.60156250, 78.80078125) +[2618602.181] {Default Queue} wl_pointer#3177.motion(187310236, 4.60156250, 78.80078125) +[2618602.185] {Default Queue} wl_pointer#3209.motion(187310236, 4.60156250, 78.80078125) +[2618602.190] {Default Queue} wl_pointer#3241.motion(187310236, 4.60156250, 78.80078125) +[2618602.194] {Default Queue} wl_pointer#3273.motion(187310236, 4.60156250, 78.80078125) +[2618602.198] {Default Queue} wl_pointer#3305.motion(187310236, 4.60156250, 78.80078125) +[2618602.203] {Default Queue} wl_pointer#3337.motion(187310236, 4.60156250, 78.80078125) +[2618602.207] {Default Queue} wl_pointer#3369.motion(187310236, 4.60156250, 78.80078125) +[2618602.211] {Default Queue} wl_pointer#3401.motion(187310236, 4.60156250, 78.80078125) +[2618602.216] {Default Queue} wl_pointer#3433.motion(187310236, 4.60156250, 78.80078125) +[2618602.220] {Default Queue} wl_pointer#3465.motion(187310236, 4.60156250, 78.80078125) +[2618602.224] {Default Queue} wl_pointer#3497.motion(187310236, 4.60156250, 78.80078125) +[2618602.229] {Default Queue} wl_pointer#3529.motion(187310236, 4.60156250, 78.80078125) +[2618602.233] {Default Queue} wl_pointer#3561.motion(187310236, 4.60156250, 78.80078125) +[2618602.237] {Default Queue} wl_pointer#3593.motion(187310236, 4.60156250, 78.80078125) +[2618602.242] {Default Queue} wl_pointer#3625.motion(187310236, 4.60156250, 78.80078125) +[2618602.246] {Default Queue} wl_pointer#3657.motion(187310236, 4.60156250, 78.80078125) +[2618602.250] {Default Queue} wl_pointer#3695.motion(187310236, 4.60156250, 78.80078125) +[2618602.255] {Default Queue} wl_pointer#24.motion(187310236, 5.39843750, 77.19921875) +[2618602.259] {Default Queue} wl_pointer#81.motion(187310236, 5.39843750, 77.19921875) +[2618602.264] {Default Queue} wl_pointer#105.motion(187310236, 5.39843750, 77.19921875) +[2618602.269] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618602.273] {Default Queue} wl_pointer#137.motion(187310236, 5.39843750, 77.19921875) +[2618602.277] {Default Queue} wl_pointer#169.motion(187310236, 5.39843750, 77.19921875) +[2618602.282] {Default Queue} wl_pointer#201.motion(187310236, 5.39843750, 77.19921875) +[2618602.286] {Default Queue} wl_pointer#233.motion(187310236, 5.39843750, 77.19921875) +[2618602.290] {Default Queue} wl_pointer#265.motion(187310236, 5.39843750, 77.19921875) +[2618602.294] {Default Queue} wl_pointer#297.motion(187310236, 5.39843750, 77.19921875) +[2618602.299] {Default Queue} wl_pointer#329.motion(187310236, 5.39843750, 77.19921875) +[2618602.303] {Default Queue} wl_pointer#361.motion(187310236, 5.39843750, 77.19921875) +[2618602.307] {Default Queue} wl_pointer#393.motion(187310236, 5.39843750, 77.19921875) +[2618602.312] {Default Queue} wl_pointer#425.motion(187310236, 5.39843750, 77.19921875) +[2618602.316] {Default Queue} wl_pointer#457.motion(187310236, 5.39843750, 77.19921875) +[2618602.320] {Default Queue} wl_pointer#489.motion(187310236, 5.39843750, 77.19921875) +[2618602.324] {Default Queue} wl_pointer#521.motion(187310236, 5.39843750, 77.19921875) +[2618602.329] {Default Queue} wl_pointer#553.motion(187310236, 5.39843750, 77.19921875) +[2618602.333] {Default Queue} wl_pointer#585.motion(187310236, 5.39843750, 77.19921875) +[2618602.337] {Default Queue} wl_pointer#617.motion(187310236, 5.39843750, 77.19921875) +[2618602.342] {Default Queue} wl_pointer#649.motion(187310236, 5.39843750, 77.19921875) +[2618602.346] {Default Queue} wl_pointer#681.motion(187310236, 5.39843750, 77.19921875) +[2618602.350] {Default Queue} wl_pointer#713.motion(187310236, 5.39843750, 77.19921875) +[2618602.357] {Default Queue} wl_pointer#745.motion(187310236, 5.39843750, 77.19921875) +[2618602.363] {Default Queue} wl_pointer#777.motion(187310236, 5.39843750, 77.19921875) +[2618602.367] {Default Queue} wl_pointer#809.motion(187310236, 5.39843750, 77.19921875) +[2618602.372] {Default Queue} wl_pointer#841.motion(187310236, 5.39843750, 77.19921875) +[2618602.376] {Default Queue} wl_pointer#873.motion(187310236, 5.39843750, 77.19921875) +[2618602.380] {Default Queue} wl_pointer#905.motion(187310236, 5.39843750, 77.19921875) +[2618602.384] {Default Queue} wl_pointer#937.motion(187310236, 5.39843750, 77.19921875) +[2618602.389] {Default Queue} wl_pointer#969.motion(187310236, 5.39843750, 77.19921875) +[2618602.393] {Default Queue} wl_pointer#1001.motion(187310236, 5.39843750, 77.19921875) +[2618602.397] {Default Queue} wl_pointer#1033.motion(187310236, 5.39843750, 77.19921875) +[2618602.402] {Default Queue} wl_pointer#1065.motion(187310236, 5.39843750, 77.19921875) +[2618602.406] {Default Queue} wl_pointer#1097.motion(187310236, 5.39843750, 77.19921875) +[2618602.410] {Default Queue} wl_pointer#1129.motion(187310236, 5.39843750, 77.19921875) +[2618602.414] {Default Queue} wl_pointer#1161.motion(187310236, 5.39843750, 77.19921875) +[2618602.419] {Default Queue} wl_pointer#1193.motion(187310236, 5.39843750, 77.19921875) +[2618602.423] {Default Queue} wl_pointer#1225.motion(187310236, 5.39843750, 77.19921875) +[2618602.427] {Default Queue} wl_pointer#1257.motion(187310236, 5.39843750, 77.19921875) +[2618602.432] {Default Queue} wl_pointer#1289.motion(187310236, 5.39843750, 77.19921875) +[2618602.436] {Default Queue} wl_pointer#1321.motion(187310236, 5.39843750, 77.19921875) +[2618602.440] {Default Queue} wl_pointer#1353.motion(187310236, 5.39843750, 77.19921875) +[2618602.444] {Default Queue} wl_pointer#1385.motion(187310236, 5.39843750, 77.19921875) +[2618602.450] {Default Queue} wl_pointer#1417.motion(187310236, 5.39843750, 77.19921875) +[2618602.456] {Default Queue} wl_pointer#1449.motion(187310236, 5.39843750, 77.19921875) +[2618602.461] {Default Queue} wl_pointer#1481.motion(187310236, 5.39843750, 77.19921875) +[2618602.467] {Default Queue} wl_pointer#1513.motion(187310236, 5.39843750, 77.19921875) +[2618602.473] {Default Queue} wl_pointer#1545.motion(187310236, 5.39843750, 77.19921875) +[2618602.479] {Default Queue} wl_pointer#1577.motion(187310236, 5.39843750, 77.19921875) +[2618602.485] {Default Queue} wl_pointer#1609.motion(187310236, 5.39843750, 77.19921875) +[2618602.491] {Default Queue} wl_pointer#1641.motion(187310236, 5.39843750, 77.19921875) +[2618602.496] {Default Queue} wl_pointer#1673.motion(187310236, 5.39843750, 77.19921875) +[2618602.502] {Default Queue} wl_pointer#1705.motion(187310236, 5.39843750, 77.19921875) +[2618602.508] {Default Queue} wl_pointer#1737.motion(187310236, 5.39843750, 77.19921875) +[2618602.513] {Default Queue} wl_pointer#1762.motion(187310236, 5.39843750, 77.19921875) +[2618602.517] {Default Queue} wl_pointer#1801.motion(187310236, 5.39843750, 77.19921875) +[2618602.522] {Default Queue} wl_pointer#1833.motion(187310236, 5.39843750, 77.19921875) +[2618602.526] {Default Queue} wl_pointer#1865.motion(187310236, 5.39843750, 77.19921875) +[2618602.530] {Default Queue} wl_pointer#1897.motion(187310236, 5.39843750, 77.19921875) +[2618602.535] {Default Queue} wl_pointer#1929.motion(187310236, 5.39843750, 77.19921875) +[2618602.539] {Default Queue} wl_pointer#1961.motion(187310236, 5.39843750, 77.19921875) +[2618602.543] {Default Queue} wl_pointer#1993.motion(187310236, 5.39843750, 77.19921875) +[2618602.548] {Default Queue} wl_pointer#2025.motion(187310236, 5.39843750, 77.19921875) +[2618602.552] {Default Queue} wl_pointer#2057.motion(187310236, 5.39843750, 77.19921875) +[2618602.556] {Default Queue} wl_pointer#2089.motion(187310236, 5.39843750, 77.19921875) +[2618602.561] {Default Queue} wl_pointer#2121.motion(187310236, 5.39843750, 77.19921875) +[2618602.565] {Default Queue} wl_pointer#2153.motion(187310236, 5.39843750, 77.19921875) +[2618602.569] {Default Queue} wl_pointer#2185.motion(187310236, 5.39843750, 77.19921875) +[2618602.579] {Default Queue} wl_pointer#2217.motion(187310236, 5.39843750, 77.19921875) +[2618602.585] {Default Queue} wl_pointer#2249.motion(187310236, 5.39843750, 77.19921875) +[2618602.589] {Default Queue} wl_pointer#2281.motion(187310236, 5.39843750, 77.19921875) +[2618602.594] {Default Queue} wl_pointer#2313.motion(187310236, 5.39843750, 77.19921875) +[2618602.598] {Default Queue} wl_pointer#2345.motion(187310236, 5.39843750, 77.19921875) +[2618602.602] {Default Queue} wl_pointer#2377.motion(187310236, 5.39843750, 77.19921875) +[2618602.607] {Default Queue} wl_pointer#2409.motion(187310236, 5.39843750, 77.19921875) +[2618602.611] {Default Queue} wl_pointer#2441.motion(187310236, 5.39843750, 77.19921875) +[2618602.615] {Default Queue} wl_pointer#2473.motion(187310236, 5.39843750, 77.19921875) +[2618602.619] {Default Queue} wl_pointer#2498.motion(187310236, 5.39843750, 77.19921875) +[2618602.631] {Default Queue} -> wl_buffer#3485.destroy() +[2618602.637] {Default Queue} -> wl_buffer#3516.destroy() +[2618602.642] {Default Queue} -> wl_shm_pool#3483.destroy() +[2618602.645] {Default Queue} -> wl_shm_pool#3486.destroy() +[2618602.650] {Default Queue} -> wl_surface#3515.destroy() +[2618602.695] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3518, fd 581, 640) +[2618602.701] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3517, fd 582, 640) +[2618602.705] {Default Queue} -> wl_shm_pool#3518.create_buffer(new id wl_buffer#3452, 0, 10, 16, 40, 0) +[2618602.710] {Default Queue} -> wl_shm_pool#3517.create_buffer(new id wl_buffer#3451, 0, 10, 16, 40, 0) +[2618602.717] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3454) +[2618602.721] {Default Queue} -> wl_surface#3454.attach(wl_buffer#3452, 0, 0) +[2618602.725] {Default Queue} -> wl_surface#3454.commit() +[2618602.730] {Default Queue} -> wl_surface#3454.attach(wl_buffer#3452, 0, 0) +[2618602.735] {Default Queue} -> wl_surface#3454.commit() +[2618602.739] {Default Queue} wl_pointer#2537.motion(187310236, 5.39843750, 77.19921875) +[2618602.743] {Default Queue} wl_pointer#2569.motion(187310236, 5.39843750, 77.19921875) +[2618602.748] {Default Queue} wl_pointer#2601.motion(187310236, 5.39843750, 77.19921875) +[2618602.752] {Default Queue} wl_pointer#2633.motion(187310236, 5.39843750, 77.19921875) +[2618602.756] {Default Queue} wl_pointer#2665.motion(187310236, 5.39843750, 77.19921875) +[2618602.760] {Default Queue} wl_pointer#2697.motion(187310236, 5.39843750, 77.19921875) +[2618602.765] {Default Queue} wl_pointer#2729.motion(187310236, 5.39843750, 77.19921875) +[2618602.769] {Default Queue} wl_pointer#2761.motion(187310236, 5.39843750, 77.19921875) +[2618602.773] {Default Queue} wl_pointer#2793.motion(187310236, 5.39843750, 77.19921875) +[2618602.778] {Default Queue} wl_pointer#2825.motion(187310236, 5.39843750, 77.19921875) +[2618602.782] {Default Queue} wl_pointer#2857.motion(187310236, 5.39843750, 77.19921875) +[2618602.792] {Default Queue} -> wl_region#447.subtract(0, 0, 19, 48) +[2618602.796] {Default Queue} -> wl_region#447.add(-20, -49, 19, 48) +[2618602.800] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) +[2618602.805] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) +[2618602.810] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) +[2618602.814] {Default Queue} -> wl_surface#423.commit() +[2618602.818] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) +[2618602.823] {Default Queue} -> wl_surface#423.commit() +[2618602.829] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) +[2618602.833] {Default Queue} -> wl_surface#423.commit() +[2618602.839] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) +[2618602.844] {Default Queue} -> wl_surface#359.commit() +[2618603.867] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) +[2618603.873] {Default Queue} -> wl_surface#359.commit() +[2618603.879] {Default Queue} -> wl_region#383.subtract(0, 0, 22, 51) +[2618603.884] {Default Queue} -> wl_region#383.add(-20, -49, 19, 48) +[2618603.888] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) +[2618603.896] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) +[2618603.903] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) +[2618603.908] {Default Queue} -> wl_surface#359.commit() +[2618603.912] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) +[2618603.916] {Default Queue} -> wl_surface#359.commit() +[2618603.922] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) +[2618603.926] {Default Queue} -> wl_surface#359.commit() +[2618603.932] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) +[2618603.936] {Default Queue} -> wl_surface#327.commit() +[2618604.997] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) +[2618605.002] {Default Queue} -> wl_surface#327.commit() +[2618605.012] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) +[2618605.017] {Default Queue} -> wl_region#351.add(0, 0, 2, 2) +[2618605.021] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618605.025] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618605.035] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) +[2618605.039] {Default Queue} -> wl_region#351.add(0, 0, 2, 2) +[2618605.043] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618605.047] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618605.053] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) +[2618605.057] {Default Queue} -> wl_region#351.add(0, 0, 2, 2) +[2618605.061] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618605.065] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618605.071] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) +[2618605.075] {Default Queue} -> wl_region#351.add(0, 0, 2, 2) +[2618605.079] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618605.083] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618605.089] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) +[2618605.094] {Default Queue} -> wl_region#351.add(0, 0, 2, 2) +[2618605.098] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618605.102] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618605.106] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) +[2618605.111] {Default Queue} -> wl_surface#327.commit() +[2618605.114] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) +[2618605.118] {Default Queue} -> wl_surface#327.commit() +[2618605.124] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) +[2618605.128] {Default Queue} -> wl_surface#327.commit() +[2618605.134] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) +[2618605.138] {Default Queue} -> wl_surface#103.commit() +[2618606.199] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) +[2618606.204] {Default Queue} -> wl_surface#103.commit() +[2618606.211] {Default Queue} -> wl_region#127.subtract(0, 0, 2, 2) +[2618606.215] {Default Queue} -> wl_region#127.add(0, 0, 2, 2) +[2618606.219] {Default Queue} -> wl_surface#103.set_opaque_region(wl_region#128) +[2618606.223] {Default Queue} -> wl_surface#103.set_input_region(wl_region#127) +[2618606.228] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) +[2618606.232] {Default Queue} -> wl_surface#103.commit() +[2618606.236] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) +[2618606.240] {Default Queue} -> wl_surface#103.commit() +[2618606.246] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) +[2618606.250] {Default Queue} -> wl_surface#103.commit() +[2618606.256] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) +[2618606.260] {Default Queue} -> wl_surface#967.commit() +[2618606.386] {Display Queue} wl_display#1.delete_id(2504) +[2618606.391] {Display Queue} wl_display#1.delete_id(2505) +[2618606.396] {Display Queue} wl_display#1.delete_id(2502) +[2618606.401] {Display Queue} wl_display#1.delete_id(2503) +[2618606.407] {Display Queue} wl_display#1.delete_id(2506) +[2618606.417] {Display Queue} wl_display#1.delete_id(3675) +[2618606.422] {Display Queue} wl_display#1.delete_id(3678) +[2618606.426] {Display Queue} wl_display#1.delete_id(3674) +[2618606.430] {Display Queue} wl_display#1.delete_id(3676) +[2618606.434] {Display Queue} wl_display#1.delete_id(3677) +[2618606.438] {Display Queue} wl_display#1.delete_id(3682) +[2618606.442] {Display Queue} wl_display#1.delete_id(3681) +[2618606.446] {Display Queue} wl_display#1.delete_id(3671) +[2618606.450] {Display Queue} wl_display#1.delete_id(3679) +[2618606.454] {Display Queue} wl_display#1.delete_id(3684) +[2618606.458] {Display Queue} wl_display#1.delete_id(91) +[2618606.462] {Display Queue} wl_display#1.delete_id(94) +[2618606.466] {Display Queue} wl_display#1.delete_id(3683) +[2618606.470] {Display Queue} wl_display#1.delete_id(92) +[2618606.474] {Display Queue} wl_display#1.delete_id(93) +[2618606.478] {Default Queue} wl_pointer#2889.motion(187310236, 5.39843750, 77.19921875) +[2618606.482] {Default Queue} wl_pointer#2921.motion(187310236, 5.39843750, 77.19921875) +[2618606.487] {Default Queue} wl_pointer#2953.motion(187310236, 5.39843750, 77.19921875) +[2618606.491] {Default Queue} wl_pointer#2985.motion(187310236, 5.39843750, 77.19921875) +[2618606.495] {Default Queue} wl_pointer#3017.motion(187310236, 5.39843750, 77.19921875) +[2618606.499] {Default Queue} wl_pointer#3049.motion(187310236, 5.39843750, 77.19921875) +[2618606.504] {Default Queue} wl_pointer#3081.motion(187310236, 5.39843750, 77.19921875) +[2618606.508] {Default Queue} wl_pointer#3113.motion(187310236, 5.39843750, 77.19921875) +[2618606.512] {Default Queue} wl_pointer#3145.motion(187310236, 5.39843750, 77.19921875) +[2618606.517] {Default Queue} wl_pointer#3177.motion(187310236, 5.39843750, 77.19921875) +[2618606.521] {Default Queue} wl_pointer#3209.motion(187310236, 5.39843750, 77.19921875) +[2618606.526] {Default Queue} wl_pointer#3241.motion(187310236, 5.39843750, 77.19921875) +[2618606.530] {Default Queue} wl_pointer#3273.motion(187310236, 5.39843750, 77.19921875) +[2618606.534] {Default Queue} wl_pointer#3305.motion(187310236, 5.39843750, 77.19921875) +[2618606.538] {Default Queue} wl_pointer#3337.motion(187310236, 5.39843750, 77.19921875) +[2618606.543] {Default Queue} wl_pointer#3369.motion(187310236, 5.39843750, 77.19921875) +[2618606.547] {Default Queue} wl_pointer#3401.motion(187310236, 5.39843750, 77.19921875) +[2618606.551] {Default Queue} wl_pointer#3433.motion(187310236, 5.39843750, 77.19921875) +[2618606.556] {Default Queue} wl_pointer#3465.motion(187310236, 5.39843750, 77.19921875) +[2618606.560] {Default Queue} wl_pointer#3497.motion(187310236, 5.39843750, 77.19921875) +[2618606.565] {Default Queue} wl_pointer#3529.motion(187310236, 5.39843750, 77.19921875) +[2618606.569] {Default Queue} wl_pointer#3561.motion(187310236, 5.39843750, 77.19921875) +[2618606.573] {Default Queue} wl_pointer#3593.motion(187310236, 5.39843750, 77.19921875) +[2618606.577] {Default Queue} wl_pointer#3625.motion(187310236, 5.39843750, 77.19921875) +[2618606.582] {Default Queue} wl_pointer#3657.motion(187310236, 5.39843750, 77.19921875) +[2618606.586] {Default Queue} wl_pointer#3695.motion(187310236, 5.39843750, 77.19921875) +[2618606.595] {Default Queue} -> wl_region#991.subtract(0, 0, 19, 48) +[2618606.600] {Default Queue} -> wl_region#991.add(-20, -49, 19, 48) +[2618606.605] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2618606.609] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2618606.718] {Default Queue} -> wl_region#991.subtract(0, 0, 19, 48) +[2618606.723] {Default Queue} -> wl_region#991.add(-20, -49, 19, 48) +[2618606.728] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2618606.732] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2618606.738] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618606.742] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618606.815] {Default Queue} -> wl_region#991.subtract(0, 0, 19, 48) +[2618606.819] {Default Queue} -> wl_region#991.add(-20, -49, 19, 48) +[2618606.824] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2618606.831] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2618606.837] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618606.842] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618606.847] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) +[2618606.851] {Default Queue} -> wl_surface#967.commit() +[2618606.855] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) +[2618606.859] {Default Queue} -> wl_surface#967.commit() +[2618606.889] {Default Queue} wl_pointer#24.motion(187310241, 6.60156250, 75.60156250) +[2618606.894] {Default Queue} wl_pointer#81.motion(187310241, 6.60156250, 75.60156250) +[2618606.899] {Default Queue} wl_pointer#105.motion(187310241, 6.60156250, 75.60156250) +[2618606.904] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618606.908] {Default Queue} wl_pointer#137.motion(187310241, 6.60156250, 75.60156250) +[2618606.913] {Default Queue} wl_pointer#169.motion(187310241, 6.60156250, 75.60156250) +[2618606.917] {Default Queue} wl_pointer#201.motion(187310241, 6.60156250, 75.60156250) +[2618606.921] {Default Queue} wl_pointer#233.motion(187310241, 6.60156250, 75.60156250) +[2618606.926] {Default Queue} wl_pointer#265.motion(187310241, 6.60156250, 75.60156250) +[2618606.930] {Default Queue} wl_pointer#297.motion(187310241, 6.60156250, 75.60156250) +[2618606.934] {Default Queue} wl_pointer#329.motion(187310241, 6.60156250, 75.60156250) +[2618606.938] {Default Queue} wl_pointer#361.motion(187310241, 6.60156250, 75.60156250) +[2618606.943] {Default Queue} wl_pointer#393.motion(187310241, 6.60156250, 75.60156250) +[2618606.947] {Default Queue} wl_pointer#425.motion(187310241, 6.60156250, 75.60156250) +[2618606.951] {Default Queue} wl_pointer#457.motion(187310241, 6.60156250, 75.60156250) +[2618606.955] {Default Queue} wl_pointer#489.motion(187310241, 6.60156250, 75.60156250) +[2618606.960] {Default Queue} wl_pointer#521.motion(187310241, 6.60156250, 75.60156250) +[2618606.964] {Default Queue} wl_pointer#553.motion(187310241, 6.60156250, 75.60156250) +[2618606.968] {Default Queue} wl_pointer#585.motion(187310241, 6.60156250, 75.60156250) +[2618606.973] {Default Queue} wl_pointer#617.motion(187310241, 6.60156250, 75.60156250) +[2618606.977] {Default Queue} wl_pointer#649.motion(187310241, 6.60156250, 75.60156250) +[2618606.981] {Default Queue} wl_pointer#681.motion(187310241, 6.60156250, 75.60156250) +[2618606.985] {Default Queue} wl_pointer#713.motion(187310241, 6.60156250, 75.60156250) +[2618606.990] {Default Queue} wl_pointer#745.motion(187310241, 6.60156250, 75.60156250) +[2618606.994] {Default Queue} wl_pointer#777.motion(187310241, 6.60156250, 75.60156250) +[2618606.998] {Default Queue} wl_pointer#809.motion(187310241, 6.60156250, 75.60156250) +[2618607.003] {Default Queue} wl_pointer#841.motion(187310241, 6.60156250, 75.60156250) +[2618607.007] {Default Queue} wl_pointer#873.motion(187310241, 6.60156250, 75.60156250) +[2618607.011] {Default Queue} wl_pointer#905.motion(187310241, 6.60156250, 75.60156250) +[2618607.015] {Default Queue} wl_pointer#937.motion(187310241, 6.60156250, 75.60156250) +[2618607.020] {Default Queue} wl_pointer#969.motion(187310241, 6.60156250, 75.60156250) +[2618607.024] {Default Queue} wl_pointer#1001.motion(187310241, 6.60156250, 75.60156250) +[2618607.028] {Default Queue} wl_pointer#1033.motion(187310241, 6.60156250, 75.60156250) +[2618607.033] {Default Queue} wl_pointer#1065.motion(187310241, 6.60156250, 75.60156250) +[2618607.037] {Default Queue} wl_pointer#1097.motion(187310241, 6.60156250, 75.60156250) +[2618607.041] {Default Queue} wl_pointer#1129.motion(187310241, 6.60156250, 75.60156250) +[2618607.045] {Default Queue} wl_pointer#1161.motion(187310241, 6.60156250, 75.60156250) +[2618607.050] {Default Queue} wl_pointer#1193.motion(187310241, 6.60156250, 75.60156250) +[2618607.054] {Default Queue} wl_pointer#1225.motion(187310241, 6.60156250, 75.60156250) +[2618607.058] {Default Queue} wl_pointer#1257.motion(187310241, 6.60156250, 75.60156250) +[2618607.062] {Default Queue} wl_pointer#1289.motion(187310241, 6.60156250, 75.60156250) +[2618607.069] {Default Queue} wl_pointer#1321.motion(187310241, 6.60156250, 75.60156250) +[2618607.075] {Default Queue} wl_pointer#1353.motion(187310241, 6.60156250, 75.60156250) +[2618607.080] {Default Queue} wl_pointer#1385.motion(187310241, 6.60156250, 75.60156250) +[2618607.084] {Default Queue} wl_pointer#1417.motion(187310241, 6.60156250, 75.60156250) +[2618607.088] {Default Queue} wl_pointer#1449.motion(187310241, 6.60156250, 75.60156250) +[2618607.092] {Default Queue} wl_pointer#1481.motion(187310241, 6.60156250, 75.60156250) +[2618607.096] {Default Queue} wl_pointer#1513.motion(187310241, 6.60156250, 75.60156250) +[2618607.101] {Default Queue} wl_pointer#1545.motion(187310241, 6.60156250, 75.60156250) +[2618607.105] {Default Queue} wl_pointer#1577.motion(187310241, 6.60156250, 75.60156250) +[2618607.109] {Default Queue} wl_pointer#1609.motion(187310241, 6.60156250, 75.60156250) +[2618607.114] {Default Queue} wl_pointer#1641.motion(187310241, 6.60156250, 75.60156250) +[2618607.118] {Default Queue} wl_pointer#1673.motion(187310241, 6.60156250, 75.60156250) +[2618607.122] {Default Queue} wl_pointer#1705.motion(187310241, 6.60156250, 75.60156250) +[2618607.126] {Default Queue} wl_pointer#1737.motion(187310241, 6.60156250, 75.60156250) +[2618607.131] {Default Queue} wl_pointer#1762.motion(187310241, 6.60156250, 75.60156250) +[2618607.135] {Default Queue} wl_pointer#1801.motion(187310241, 6.60156250, 75.60156250) +[2618607.139] {Default Queue} wl_pointer#1833.motion(187310241, 6.60156250, 75.60156250) +[2618607.143] {Default Queue} wl_pointer#1865.motion(187310241, 6.60156250, 75.60156250) +[2618607.148] {Default Queue} wl_pointer#1897.motion(187310241, 6.60156250, 75.60156250) +[2618607.152] {Default Queue} wl_pointer#1929.motion(187310241, 6.60156250, 75.60156250) +[2618607.156] {Default Queue} wl_pointer#1961.motion(187310241, 6.60156250, 75.60156250) +[2618607.160] {Default Queue} wl_pointer#1993.motion(187310241, 6.60156250, 75.60156250) +[2618607.165] {Default Queue} wl_pointer#2025.motion(187310241, 6.60156250, 75.60156250) +[2618607.169] {Default Queue} wl_pointer#2057.motion(187310241, 6.60156250, 75.60156250) +[2618607.173] {Default Queue} wl_pointer#2089.motion(187310241, 6.60156250, 75.60156250) +[2618607.178] {Default Queue} wl_pointer#2121.motion(187310241, 6.60156250, 75.60156250) +[2618607.182] {Default Queue} wl_pointer#2153.motion(187310241, 6.60156250, 75.60156250) +[2618607.186] {Default Queue} wl_pointer#2185.motion(187310241, 6.60156250, 75.60156250) +[2618607.190] {Default Queue} wl_pointer#2217.motion(187310241, 6.60156250, 75.60156250) +[2618607.195] {Default Queue} wl_pointer#2249.motion(187310241, 6.60156250, 75.60156250) +[2618607.199] {Default Queue} wl_pointer#2281.motion(187310241, 6.60156250, 75.60156250) +[2618607.203] {Default Queue} wl_pointer#2313.motion(187310241, 6.60156250, 75.60156250) +[2618607.208] {Default Queue} wl_pointer#2345.motion(187310241, 6.60156250, 75.60156250) +[2618607.212] {Default Queue} wl_pointer#2377.motion(187310241, 6.60156250, 75.60156250) +[2618607.216] {Default Queue} wl_pointer#2409.motion(187310241, 6.60156250, 75.60156250) +[2618607.221] {Default Queue} wl_pointer#2441.motion(187310241, 6.60156250, 75.60156250) +[2618607.225] {Default Queue} wl_pointer#2473.motion(187310241, 6.60156250, 75.60156250) +[2618607.229] {Default Queue} wl_pointer#2498.motion(187310241, 6.60156250, 75.60156250) +[2618607.241] {Default Queue} -> wl_buffer#3452.destroy() +[2618607.245] {Default Queue} -> wl_buffer#3451.destroy() +[2618607.249] {Default Queue} -> wl_shm_pool#3518.destroy() +[2618607.253] {Default Queue} -> wl_shm_pool#3517.destroy() +[2618607.258] {Default Queue} -> wl_surface#3454.destroy() +[2618607.300] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#93, fd 575, 640) +[2618607.306] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 578, 640) +[2618607.311] {Default Queue} -> wl_shm_pool#93.create_buffer(new id wl_buffer#3683, 0, 10, 16, 40, 0) +[2618607.315] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) +[2618607.326] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#91) +[2618607.332] {Default Queue} -> wl_surface#91.attach(wl_buffer#3683, 0, 0) +[2618607.337] {Default Queue} -> wl_surface#91.commit() +[2618607.342] {Default Queue} -> wl_surface#91.attach(wl_buffer#3683, 0, 0) +[2618607.346] {Default Queue} -> wl_surface#91.commit() +[2618607.350] {Default Queue} wl_pointer#2537.motion(187310241, 6.60156250, 75.60156250) +[2618607.355] {Default Queue} wl_pointer#2569.motion(187310241, 6.60156250, 75.60156250) +[2618607.359] {Default Queue} wl_pointer#2601.motion(187310241, 6.60156250, 75.60156250) +[2618607.364] {Default Queue} wl_pointer#2633.motion(187310241, 6.60156250, 75.60156250) +[2618607.368] {Default Queue} wl_pointer#2665.motion(187310241, 6.60156250, 75.60156250) +[2618607.372] {Default Queue} wl_pointer#2697.motion(187310241, 6.60156250, 75.60156250) +[2618607.377] {Default Queue} wl_pointer#2729.motion(187310241, 6.60156250, 75.60156250) +[2618607.381] {Default Queue} wl_pointer#2761.motion(187310241, 6.60156250, 75.60156250) +[2618607.385] {Default Queue} wl_pointer#2793.motion(187310241, 6.60156250, 75.60156250) +[2618607.390] {Default Queue} wl_pointer#2825.motion(187310241, 6.60156250, 75.60156250) +[2618607.394] {Default Queue} wl_pointer#2857.motion(187310241, 6.60156250, 75.60156250) +[2618607.398] {Default Queue} wl_pointer#2889.motion(187310241, 6.60156250, 75.60156250) +[2618607.403] {Default Queue} wl_pointer#2921.motion(187310241, 6.60156250, 75.60156250) +[2618607.407] {Default Queue} wl_pointer#2953.motion(187310241, 6.60156250, 75.60156250) +[2618607.411] {Default Queue} wl_pointer#2985.motion(187310241, 6.60156250, 75.60156250) +[2618607.415] {Default Queue} wl_pointer#3017.motion(187310241, 6.60156250, 75.60156250) +[2618607.420] {Default Queue} wl_pointer#3049.motion(187310241, 6.60156250, 75.60156250) +[2618607.424] {Default Queue} wl_pointer#3081.motion(187310241, 6.60156250, 75.60156250) +[2618607.429] {Default Queue} wl_pointer#3113.motion(187310241, 6.60156250, 75.60156250) +[2618607.433] {Default Queue} wl_pointer#3145.motion(187310241, 6.60156250, 75.60156250) +[2618607.437] {Default Queue} wl_pointer#3177.motion(187310241, 6.60156250, 75.60156250) +[2618607.441] {Default Queue} wl_pointer#3209.motion(187310241, 6.60156250, 75.60156250) +[2618607.446] {Default Queue} wl_pointer#3241.motion(187310241, 6.60156250, 75.60156250) +[2618607.450] {Default Queue} wl_pointer#3273.motion(187310241, 6.60156250, 75.60156250) +[2618607.455] {Default Queue} wl_pointer#3305.motion(187310241, 6.60156250, 75.60156250) +[2618607.461] {Default Queue} wl_pointer#3337.motion(187310241, 6.60156250, 75.60156250) +[2618607.467] {Default Queue} wl_pointer#3369.motion(187310241, 6.60156250, 75.60156250) +[2618607.473] {Default Queue} wl_pointer#3401.motion(187310241, 6.60156250, 75.60156250) +[2618607.478] {Default Queue} wl_pointer#3433.motion(187310241, 6.60156250, 75.60156250) +[2618607.484] {Default Queue} wl_pointer#3465.motion(187310241, 6.60156250, 75.60156250) +[2618607.490] {Default Queue} wl_pointer#3497.motion(187310241, 6.60156250, 75.60156250) +[2618607.496] {Default Queue} wl_pointer#3529.motion(187310241, 6.60156250, 75.60156250) +[2618607.502] {Default Queue} wl_pointer#3561.motion(187310241, 6.60156250, 75.60156250) +[2618607.508] {Default Queue} wl_pointer#3593.motion(187310241, 6.60156250, 75.60156250) +[2618607.514] {Default Queue} wl_pointer#3625.motion(187310241, 6.60156250, 75.60156250) +[2618607.520] {Default Queue} wl_pointer#3657.motion(187310241, 6.60156250, 75.60156250) +[2618607.526] {Default Queue} wl_pointer#3695.motion(187310241, 6.60156250, 75.60156250) +[2618607.531] {Default Queue} wl_pointer#24.motion(187310241, 7.39843750, 74.00000000) +[2618607.535] {Default Queue} wl_pointer#81.motion(187310241, 7.39843750, 74.00000000) +[2618607.541] {Default Queue} wl_pointer#105.motion(187310241, 7.39843750, 74.00000000) +[2618607.545] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618607.550] {Default Queue} wl_pointer#137.motion(187310241, 7.39843750, 74.00000000) +[2618607.559] {Default Queue} wl_pointer#169.motion(187310241, 7.39843750, 74.00000000) +[2618607.565] {Default Queue} wl_pointer#201.motion(187310241, 7.39843750, 74.00000000) +[2618607.569] {Default Queue} wl_pointer#233.motion(187310241, 7.39843750, 74.00000000) +[2618607.574] {Default Queue} wl_pointer#265.motion(187310241, 7.39843750, 74.00000000) +[2618607.578] {Default Queue} wl_pointer#297.motion(187310241, 7.39843750, 74.00000000) +[2618607.582] {Default Queue} wl_pointer#329.motion(187310241, 7.39843750, 74.00000000) +[2618607.587] {Default Queue} wl_pointer#361.motion(187310241, 7.39843750, 74.00000000) +[2618607.591] {Default Queue} wl_pointer#393.motion(187310241, 7.39843750, 74.00000000) +[2618607.595] {Default Queue} wl_pointer#425.motion(187310241, 7.39843750, 74.00000000) +[2618607.599] {Default Queue} wl_pointer#457.motion(187310241, 7.39843750, 74.00000000) +[2618607.604] {Default Queue} wl_pointer#489.motion(187310241, 7.39843750, 74.00000000) +[2618607.608] {Default Queue} wl_pointer#521.motion(187310241, 7.39843750, 74.00000000) +[2618607.612] {Default Queue} wl_pointer#553.motion(187310241, 7.39843750, 74.00000000) +[2618607.617] {Default Queue} wl_pointer#585.motion(187310241, 7.39843750, 74.00000000) +[2618607.621] {Default Queue} wl_pointer#617.motion(187310241, 7.39843750, 74.00000000) +[2618607.625] {Default Queue} wl_pointer#649.motion(187310241, 7.39843750, 74.00000000) +[2618607.630] {Default Queue} wl_pointer#681.motion(187310241, 7.39843750, 74.00000000) +[2618607.634] {Default Queue} wl_pointer#713.motion(187310241, 7.39843750, 74.00000000) +[2618607.638] {Default Queue} wl_pointer#745.motion(187310241, 7.39843750, 74.00000000) +[2618607.642] {Default Queue} wl_pointer#777.motion(187310241, 7.39843750, 74.00000000) +[2618607.647] {Default Queue} wl_pointer#809.motion(187310241, 7.39843750, 74.00000000) +[2618607.651] {Default Queue} wl_pointer#841.motion(187310241, 7.39843750, 74.00000000) +[2618607.655] {Default Queue} wl_pointer#873.motion(187310241, 7.39843750, 74.00000000) +[2618607.660] {Default Queue} wl_pointer#905.motion(187310241, 7.39843750, 74.00000000) +[2618607.664] {Default Queue} wl_pointer#937.motion(187310241, 7.39843750, 74.00000000) +[2618607.668] {Default Queue} wl_pointer#969.motion(187310241, 7.39843750, 74.00000000) +[2618607.673] {Default Queue} wl_pointer#1001.motion(187310241, 7.39843750, 74.00000000) +[2618607.677] {Default Queue} wl_pointer#1033.motion(187310241, 7.39843750, 74.00000000) +[2618607.681] {Default Queue} wl_pointer#1065.motion(187310241, 7.39843750, 74.00000000) +[2618607.686] {Default Queue} wl_pointer#1097.motion(187310241, 7.39843750, 74.00000000) +[2618607.690] {Default Queue} wl_pointer#1129.motion(187310241, 7.39843750, 74.00000000) +[2618607.694] {Default Queue} wl_pointer#1161.motion(187310241, 7.39843750, 74.00000000) +[2618607.699] {Default Queue} wl_pointer#1193.motion(187310241, 7.39843750, 74.00000000) +[2618607.703] {Default Queue} wl_pointer#1225.motion(187310241, 7.39843750, 74.00000000) +[2618607.707] {Default Queue} wl_pointer#1257.motion(187310241, 7.39843750, 74.00000000) +[2618607.712] {Default Queue} wl_pointer#1289.motion(187310241, 7.39843750, 74.00000000) +[2618607.716] {Default Queue} wl_pointer#1321.motion(187310241, 7.39843750, 74.00000000) +[2618607.720] {Default Queue} wl_pointer#1353.motion(187310241, 7.39843750, 74.00000000) +[2618607.724] {Default Queue} wl_pointer#1385.motion(187310241, 7.39843750, 74.00000000) +[2618607.729] {Default Queue} wl_pointer#1417.motion(187310241, 7.39843750, 74.00000000) +[2618607.733] {Default Queue} wl_pointer#1449.motion(187310241, 7.39843750, 74.00000000) +[2618607.737] {Default Queue} wl_pointer#1481.motion(187310241, 7.39843750, 74.00000000) +[2618607.742] {Default Queue} wl_pointer#1513.motion(187310241, 7.39843750, 74.00000000) +[2618607.746] {Default Queue} wl_pointer#1545.motion(187310241, 7.39843750, 74.00000000) +[2618607.750] {Default Queue} wl_pointer#1577.motion(187310241, 7.39843750, 74.00000000) +[2618607.754] {Default Queue} wl_pointer#1609.motion(187310241, 7.39843750, 74.00000000) +[2618607.762] {Default Queue} wl_pointer#1641.motion(187310241, 7.39843750, 74.00000000) +[2618607.767] {Default Queue} wl_pointer#1673.motion(187310241, 7.39843750, 74.00000000) +[2618607.772] {Default Queue} wl_pointer#1705.motion(187310241, 7.39843750, 74.00000000) +[2618607.776] {Default Queue} wl_pointer#1737.motion(187310241, 7.39843750, 74.00000000) +[2618607.781] {Default Queue} wl_pointer#1762.motion(187310241, 7.39843750, 74.00000000) +[2618607.785] {Default Queue} wl_pointer#1801.motion(187310241, 7.39843750, 74.00000000) +[2618607.789] {Default Queue} wl_pointer#1833.motion(187310241, 7.39843750, 74.00000000) +[2618607.794] {Default Queue} wl_pointer#1865.motion(187310241, 7.39843750, 74.00000000) +[2618607.798] {Default Queue} wl_pointer#1897.motion(187310241, 7.39843750, 74.00000000) +[2618607.802] {Default Queue} wl_pointer#1929.motion(187310241, 7.39843750, 74.00000000) +[2618607.806] {Default Queue} wl_pointer#1961.motion(187310241, 7.39843750, 74.00000000) +[2618607.811] {Default Queue} wl_pointer#1993.motion(187310241, 7.39843750, 74.00000000) +[2618607.815] {Default Queue} wl_pointer#2025.motion(187310241, 7.39843750, 74.00000000) +[2618607.819] {Default Queue} wl_pointer#2057.motion(187310241, 7.39843750, 74.00000000) +[2618607.823] {Default Queue} wl_pointer#2089.motion(187310241, 7.39843750, 74.00000000) +[2618607.828] {Default Queue} wl_pointer#2121.motion(187310241, 7.39843750, 74.00000000) +[2618607.832] {Default Queue} wl_pointer#2153.motion(187310241, 7.39843750, 74.00000000) +[2618607.836] {Default Queue} wl_pointer#2185.motion(187310241, 7.39843750, 74.00000000) +[2618607.840] {Default Queue} wl_pointer#2217.motion(187310241, 7.39843750, 74.00000000) +[2618607.845] {Default Queue} wl_pointer#2249.motion(187310241, 7.39843750, 74.00000000) +[2618607.849] {Default Queue} wl_pointer#2281.motion(187310241, 7.39843750, 74.00000000) +[2618607.853] {Default Queue} wl_pointer#2313.motion(187310241, 7.39843750, 74.00000000) +[2618607.858] {Default Queue} wl_pointer#2345.motion(187310241, 7.39843750, 74.00000000) +[2618607.863] {Default Queue} wl_pointer#2377.motion(187310241, 7.39843750, 74.00000000) +[2618607.868] {Default Queue} wl_pointer#2409.motion(187310241, 7.39843750, 74.00000000) +[2618607.876] {Default Queue} wl_pointer#2441.motion(187310241, 7.39843750, 74.00000000) +[2618607.881] {Default Queue} wl_pointer#2473.motion(187310241, 7.39843750, 74.00000000) +[2618607.885] {Default Queue} wl_pointer#2498.motion(187310241, 7.39843750, 74.00000000) +[2618607.896] {Default Queue} -> wl_buffer#3683.destroy() +[2618607.901] {Default Queue} -> wl_buffer#94.destroy() +[2618607.905] {Default Queue} -> wl_shm_pool#93.destroy() +[2618607.909] {Default Queue} -> wl_shm_pool#92.destroy() +[2618607.914] {Default Queue} -> wl_surface#91.destroy() +[2618607.952] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3684, fd 581, 640) +[2618607.958] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 582, 640) +[2618607.962] {Default Queue} -> wl_shm_pool#3684.create_buffer(new id wl_buffer#3671, 0, 10, 16, 40, 0) +[2618607.967] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) +[2618607.974] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3682) +[2618607.978] {Default Queue} -> wl_surface#3682.attach(wl_buffer#3671, 0, 0) +[2618607.984] {Default Queue} -> wl_surface#3682.commit() +[2618607.991] {Default Queue} -> wl_surface#3682.attach(wl_buffer#3671, 0, 0) +[2618607.996] {Default Queue} -> wl_surface#3682.commit() +[2618608.002] {Default Queue} wl_pointer#2537.motion(187310241, 7.39843750, 74.00000000) +[2618608.007] {Default Queue} wl_pointer#2569.motion(187310241, 7.39843750, 74.00000000) +[2618608.012] {Default Queue} wl_pointer#2601.motion(187310241, 7.39843750, 74.00000000) +[2618608.018] {Default Queue} wl_pointer#2633.motion(187310241, 7.39843750, 74.00000000) +[2618608.024] {Default Queue} wl_pointer#2665.motion(187310241, 7.39843750, 74.00000000) +[2618608.030] {Default Queue} wl_pointer#2697.motion(187310241, 7.39843750, 74.00000000) +[2618608.038] {Default Queue} wl_pointer#2729.motion(187310241, 7.39843750, 74.00000000) +[2618608.045] {Default Queue} wl_pointer#2761.motion(187310241, 7.39843750, 74.00000000) +[2618608.049] {Default Queue} wl_pointer#2793.motion(187310241, 7.39843750, 74.00000000) +[2618608.054] {Default Queue} wl_pointer#2825.motion(187310241, 7.39843750, 74.00000000) +[2618608.058] {Default Queue} wl_pointer#2857.motion(187310241, 7.39843750, 74.00000000) +[2618608.063] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) +[2618608.067] {Default Queue} -> wl_surface#967.commit() +[2618609.132] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) +[2618609.137] {Default Queue} -> wl_surface#967.commit() +[2618609.143] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) +[2618609.148] {Default Queue} -> wl_surface#967.commit() +[2618609.154] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) +[2618609.159] {Default Queue} -> wl_surface#1095.commit() +[2618610.219] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) +[2618610.225] {Default Queue} -> wl_surface#1095.commit() +[2618610.235] {Default Queue} -> wl_region#1119.subtract(0, 0, 19, 48) +[2618610.239] {Default Queue} -> wl_region#1119.add(-20, -49, 19, 48) +[2618610.244] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618610.248] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618610.257] {Default Queue} -> wl_region#1119.subtract(0, 0, 19, 48) +[2618610.261] {Default Queue} -> wl_region#1119.add(-20, -49, 19, 48) +[2618610.266] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618610.270] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618610.275] {Default Queue} -> wl_region#1119.subtract(0, 0, 19, 48) +[2618610.279] {Default Queue} -> wl_region#1119.add(-20, -49, 19, 48) +[2618610.283] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618610.287] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618610.292] {Default Queue} -> wl_region#1119.subtract(0, 0, 19, 48) +[2618610.296] {Default Queue} -> wl_region#1119.add(-20, -49, 19, 48) +[2618610.300] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618610.304] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618610.308] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) +[2618610.313] {Default Queue} -> wl_surface#1095.commit() +[2618610.317] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) +[2618610.321] {Default Queue} -> wl_surface#1095.commit() +[2618610.326] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) +[2618610.331] {Default Queue} -> wl_surface#1095.commit() +[2618610.337] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) +[2618610.341] {Default Queue} -> wl_surface#1127.commit() +[2618611.370] {Display Queue} wl_display#1.delete_id(3294) +[2618611.377] {Display Queue} wl_display#1.delete_id(3293) +[2618611.382] {Display Queue} wl_display#1.delete_id(3292) +[2618611.386] {Display Queue} wl_display#1.delete_id(3291) +[2618611.390] {Display Queue} wl_display#1.delete_id(3484) +[2618611.394] {Display Queue} wl_display#1.delete_id(3485) +[2618611.398] {Display Queue} wl_display#1.delete_id(3516) +[2618611.402] {Display Queue} wl_display#1.delete_id(3483) +[2618611.406] {Display Queue} wl_display#1.delete_id(3486) +[2618611.410] {Display Queue} wl_display#1.delete_id(3515) +[2618611.414] {Default Queue} wl_pointer#2889.motion(187310241, 7.39843750, 74.00000000) +[2618611.418] {Default Queue} wl_pointer#2921.motion(187310241, 7.39843750, 74.00000000) +[2618611.423] {Default Queue} wl_pointer#2953.motion(187310241, 7.39843750, 74.00000000) +[2618611.427] {Default Queue} wl_pointer#2985.motion(187310241, 7.39843750, 74.00000000) +[2618611.431] {Default Queue} wl_pointer#3017.motion(187310241, 7.39843750, 74.00000000) +[2618611.435] {Default Queue} wl_pointer#3049.motion(187310241, 7.39843750, 74.00000000) +[2618611.440] {Default Queue} wl_pointer#3081.motion(187310241, 7.39843750, 74.00000000) +[2618611.448] {Default Queue} wl_pointer#3113.motion(187310241, 7.39843750, 74.00000000) +[2618611.454] {Default Queue} wl_pointer#3145.motion(187310241, 7.39843750, 74.00000000) +[2618611.458] {Default Queue} wl_pointer#3177.motion(187310241, 7.39843750, 74.00000000) +[2618611.462] {Default Queue} wl_pointer#3209.motion(187310241, 7.39843750, 74.00000000) +[2618611.467] {Default Queue} wl_pointer#3241.motion(187310241, 7.39843750, 74.00000000) +[2618611.471] {Default Queue} wl_pointer#3273.motion(187310241, 7.39843750, 74.00000000) +[2618611.475] {Default Queue} wl_pointer#3305.motion(187310241, 7.39843750, 74.00000000) +[2618611.480] {Default Queue} wl_pointer#3337.motion(187310241, 7.39843750, 74.00000000) +[2618611.484] {Default Queue} wl_pointer#3369.motion(187310241, 7.39843750, 74.00000000) +[2618611.488] {Default Queue} wl_pointer#3401.motion(187310241, 7.39843750, 74.00000000) +[2618611.492] {Default Queue} wl_pointer#3433.motion(187310241, 7.39843750, 74.00000000) +[2618611.497] {Default Queue} wl_pointer#3465.motion(187310241, 7.39843750, 74.00000000) +[2618611.501] {Default Queue} wl_pointer#3497.motion(187310241, 7.39843750, 74.00000000) +[2618611.506] {Default Queue} wl_pointer#3529.motion(187310241, 7.39843750, 74.00000000) +[2618611.510] {Default Queue} wl_pointer#3561.motion(187310241, 7.39843750, 74.00000000) +[2618611.514] {Default Queue} wl_pointer#3593.motion(187310241, 7.39843750, 74.00000000) +[2618611.519] {Default Queue} wl_pointer#3625.motion(187310241, 7.39843750, 74.00000000) +[2618611.523] {Default Queue} wl_pointer#3657.motion(187310241, 7.39843750, 74.00000000) +[2618611.527] {Default Queue} wl_pointer#3695.motion(187310241, 7.39843750, 74.00000000) +[2618611.531] {Default Queue} wl_pointer#24.motion(187310241, 8.60156250, 72.80078125) +[2618611.536] {Default Queue} wl_pointer#81.motion(187310241, 8.60156250, 72.80078125) +[2618611.541] {Default Queue} wl_pointer#105.motion(187310241, 8.60156250, 72.80078125) +[2618611.545] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618611.549] {Default Queue} wl_pointer#137.motion(187310241, 8.60156250, 72.80078125) +[2618611.554] {Default Queue} wl_pointer#169.motion(187310241, 8.60156250, 72.80078125) +[2618611.558] {Default Queue} wl_pointer#201.motion(187310241, 8.60156250, 72.80078125) +[2618611.562] {Default Queue} wl_pointer#233.motion(187310241, 8.60156250, 72.80078125) +[2618611.566] {Default Queue} wl_pointer#265.motion(187310241, 8.60156250, 72.80078125) +[2618611.571] {Default Queue} wl_pointer#297.motion(187310241, 8.60156250, 72.80078125) +[2618611.575] {Default Queue} wl_pointer#329.motion(187310241, 8.60156250, 72.80078125) +[2618611.579] {Default Queue} wl_pointer#361.motion(187310241, 8.60156250, 72.80078125) +[2618611.584] {Default Queue} wl_pointer#393.motion(187310241, 8.60156250, 72.80078125) +[2618611.588] {Default Queue} wl_pointer#425.motion(187310241, 8.60156250, 72.80078125) +[2618611.592] {Default Queue} wl_pointer#457.motion(187310241, 8.60156250, 72.80078125) +[2618611.596] {Default Queue} wl_pointer#489.motion(187310241, 8.60156250, 72.80078125) +[2618611.601] {Default Queue} wl_pointer#521.motion(187310241, 8.60156250, 72.80078125) +[2618611.605] {Default Queue} wl_pointer#553.motion(187310241, 8.60156250, 72.80078125) +[2618611.609] {Default Queue} wl_pointer#585.motion(187310241, 8.60156250, 72.80078125) +[2618611.613] {Default Queue} wl_pointer#617.motion(187310241, 8.60156250, 72.80078125) +[2618611.618] {Default Queue} wl_pointer#649.motion(187310241, 8.60156250, 72.80078125) +[2618611.622] {Default Queue} wl_pointer#681.motion(187310241, 8.60156250, 72.80078125) +[2618611.626] {Default Queue} wl_pointer#713.motion(187310241, 8.60156250, 72.80078125) +[2618611.630] {Default Queue} wl_pointer#745.motion(187310241, 8.60156250, 72.80078125) +[2618611.635] {Default Queue} wl_pointer#777.motion(187310241, 8.60156250, 72.80078125) +[2618611.639] {Default Queue} wl_pointer#809.motion(187310241, 8.60156250, 72.80078125) +[2618611.643] {Default Queue} wl_pointer#841.motion(187310241, 8.60156250, 72.80078125) +[2618611.650] {Default Queue} wl_pointer#873.motion(187310241, 8.60156250, 72.80078125) +[2618611.656] {Default Queue} wl_pointer#905.motion(187310241, 8.60156250, 72.80078125) +[2618611.660] {Default Queue} wl_pointer#937.motion(187310241, 8.60156250, 72.80078125) +[2618611.664] {Default Queue} wl_pointer#969.motion(187310241, 8.60156250, 72.80078125) +[2618611.669] {Default Queue} wl_pointer#1001.motion(187310241, 8.60156250, 72.80078125) +[2618611.673] {Default Queue} wl_pointer#1033.motion(187310241, 8.60156250, 72.80078125) +[2618611.677] {Default Queue} wl_pointer#1065.motion(187310241, 8.60156250, 72.80078125) +[2618611.681] {Default Queue} wl_pointer#1097.motion(187310241, 8.60156250, 72.80078125) +[2618611.686] {Default Queue} wl_pointer#1129.motion(187310241, 8.60156250, 72.80078125) +[2618611.690] {Default Queue} wl_pointer#1161.motion(187310241, 8.60156250, 72.80078125) +[2618611.694] {Default Queue} wl_pointer#1193.motion(187310241, 8.60156250, 72.80078125) +[2618611.699] {Default Queue} wl_pointer#1225.motion(187310241, 8.60156250, 72.80078125) +[2618611.703] {Default Queue} wl_pointer#1257.motion(187310241, 8.60156250, 72.80078125) +[2618611.707] {Default Queue} wl_pointer#1289.motion(187310241, 8.60156250, 72.80078125) +[2618611.711] {Default Queue} wl_pointer#1321.motion(187310241, 8.60156250, 72.80078125) +[2618611.716] {Default Queue} wl_pointer#1353.motion(187310241, 8.60156250, 72.80078125) +[2618611.720] {Default Queue} wl_pointer#1385.motion(187310241, 8.60156250, 72.80078125) +[2618611.724] {Default Queue} wl_pointer#1417.motion(187310241, 8.60156250, 72.80078125) +[2618611.729] {Default Queue} wl_pointer#1449.motion(187310241, 8.60156250, 72.80078125) +[2618611.733] {Default Queue} wl_pointer#1481.motion(187310241, 8.60156250, 72.80078125) +[2618611.737] {Default Queue} wl_pointer#1513.motion(187310241, 8.60156250, 72.80078125) +[2618611.741] {Default Queue} wl_pointer#1545.motion(187310241, 8.60156250, 72.80078125) +[2618611.746] {Default Queue} wl_pointer#1577.motion(187310241, 8.60156250, 72.80078125) +[2618611.750] {Default Queue} wl_pointer#1609.motion(187310241, 8.60156250, 72.80078125) +[2618611.754] {Default Queue} wl_pointer#1641.motion(187310241, 8.60156250, 72.80078125) +[2618611.758] {Default Queue} wl_pointer#1673.motion(187310241, 8.60156250, 72.80078125) +[2618611.763] {Default Queue} wl_pointer#1705.motion(187310241, 8.60156250, 72.80078125) +[2618611.767] {Default Queue} wl_pointer#1737.motion(187310241, 8.60156250, 72.80078125) +[2618611.771] {Default Queue} wl_pointer#1762.motion(187310241, 8.60156250, 72.80078125) +[2618611.775] {Default Queue} wl_pointer#1801.motion(187310241, 8.60156250, 72.80078125) +[2618611.780] {Default Queue} wl_pointer#1833.motion(187310241, 8.60156250, 72.80078125) +[2618611.784] {Default Queue} wl_pointer#1865.motion(187310241, 8.60156250, 72.80078125) +[2618611.788] {Default Queue} wl_pointer#1897.motion(187310241, 8.60156250, 72.80078125) +[2618611.793] {Default Queue} wl_pointer#1929.motion(187310241, 8.60156250, 72.80078125) +[2618611.797] {Default Queue} wl_pointer#1961.motion(187310241, 8.60156250, 72.80078125) +[2618611.801] {Default Queue} wl_pointer#1993.motion(187310241, 8.60156250, 72.80078125) +[2618611.806] {Default Queue} wl_pointer#2025.motion(187310241, 8.60156250, 72.80078125) +[2618611.810] {Default Queue} wl_pointer#2057.motion(187310241, 8.60156250, 72.80078125) +[2618611.814] {Default Queue} wl_pointer#2089.motion(187310241, 8.60156250, 72.80078125) +[2618611.818] {Default Queue} wl_pointer#2121.motion(187310241, 8.60156250, 72.80078125) +[2618611.823] {Default Queue} wl_pointer#2153.motion(187310241, 8.60156250, 72.80078125) +[2618611.827] {Default Queue} wl_pointer#2185.motion(187310241, 8.60156250, 72.80078125) +[2618611.831] {Default Queue} wl_pointer#2217.motion(187310241, 8.60156250, 72.80078125) +[2618611.836] {Default Queue} wl_pointer#2249.motion(187310241, 8.60156250, 72.80078125) +[2618611.840] {Default Queue} wl_pointer#2281.motion(187310241, 8.60156250, 72.80078125) +[2618611.844] {Default Queue} wl_pointer#2313.motion(187310241, 8.60156250, 72.80078125) +[2618611.851] {Default Queue} wl_pointer#2345.motion(187310241, 8.60156250, 72.80078125) +[2618611.857] {Default Queue} wl_pointer#2377.motion(187310241, 8.60156250, 72.80078125) +[2618611.866] {Default Queue} wl_pointer#2409.motion(187310241, 8.60156250, 72.80078125) +[2618611.871] {Default Queue} wl_pointer#2441.motion(187310241, 8.60156250, 72.80078125) +[2618611.875] {Default Queue} wl_pointer#2473.motion(187310241, 8.60156250, 72.80078125) +[2618611.879] {Default Queue} wl_pointer#2498.motion(187310241, 8.60156250, 72.80078125) +[2618611.891] {Default Queue} -> wl_buffer#3671.destroy() +[2618611.895] {Default Queue} -> wl_buffer#3681.destroy() +[2618611.899] {Default Queue} -> wl_shm_pool#3684.destroy() +[2618611.903] {Default Queue} -> wl_shm_pool#3679.destroy() +[2618611.908] {Default Queue} -> wl_surface#3682.destroy() +[2618611.945] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3515, fd 575, 640) +[2618611.951] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3486, fd 578, 640) +[2618611.955] {Default Queue} -> wl_shm_pool#3515.create_buffer(new id wl_buffer#3483, 0, 10, 16, 40, 0) +[2618611.960] {Default Queue} -> wl_shm_pool#3486.create_buffer(new id wl_buffer#3516, 0, 10, 16, 40, 0) +[2618611.967] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3485) +[2618611.971] {Default Queue} -> wl_surface#3485.attach(wl_buffer#3483, 0, 0) +[2618611.976] {Default Queue} -> wl_surface#3485.commit() +[2618611.981] {Default Queue} -> wl_surface#3485.attach(wl_buffer#3483, 0, 0) +[2618611.985] {Default Queue} -> wl_surface#3485.commit() +[2618611.989] {Default Queue} wl_pointer#2537.motion(187310241, 8.60156250, 72.80078125) +[2618611.994] {Default Queue} wl_pointer#2569.motion(187310241, 8.60156250, 72.80078125) +[2618611.998] {Default Queue} wl_pointer#2601.motion(187310241, 8.60156250, 72.80078125) +[2618612.003] {Default Queue} wl_pointer#2633.motion(187310241, 8.60156250, 72.80078125) +[2618612.007] {Default Queue} wl_pointer#2665.motion(187310241, 8.60156250, 72.80078125) +[2618612.012] {Default Queue} wl_pointer#2697.motion(187310241, 8.60156250, 72.80078125) +[2618612.018] {Default Queue} wl_pointer#2729.motion(187310241, 8.60156250, 72.80078125) +[2618612.024] {Default Queue} wl_pointer#2761.motion(187310241, 8.60156250, 72.80078125) +[2618612.030] {Default Queue} wl_pointer#2793.motion(187310241, 8.60156250, 72.80078125) +[2618612.035] {Default Queue} wl_pointer#2825.motion(187310241, 8.60156250, 72.80078125) +[2618612.040] {Default Queue} wl_pointer#2857.motion(187310241, 8.60156250, 72.80078125) +[2618612.044] {Default Queue} wl_pointer#2889.motion(187310241, 8.60156250, 72.80078125) +[2618612.048] {Default Queue} wl_pointer#2921.motion(187310241, 8.60156250, 72.80078125) +[2618612.052] {Default Queue} wl_pointer#2953.motion(187310241, 8.60156250, 72.80078125) +[2618612.057] {Default Queue} wl_pointer#2985.motion(187310241, 8.60156250, 72.80078125) +[2618612.061] {Default Queue} wl_pointer#3017.motion(187310241, 8.60156250, 72.80078125) +[2618612.065] {Default Queue} wl_pointer#3049.motion(187310241, 8.60156250, 72.80078125) +[2618612.070] {Default Queue} wl_pointer#3081.motion(187310241, 8.60156250, 72.80078125) +[2618612.074] {Default Queue} wl_pointer#3113.motion(187310241, 8.60156250, 72.80078125) +[2618612.078] {Default Queue} wl_pointer#3145.motion(187310241, 8.60156250, 72.80078125) +[2618612.082] {Default Queue} wl_pointer#3177.motion(187310241, 8.60156250, 72.80078125) +[2618612.087] {Default Queue} wl_pointer#3209.motion(187310241, 8.60156250, 72.80078125) +[2618612.091] {Default Queue} wl_pointer#3241.motion(187310241, 8.60156250, 72.80078125) +[2618612.096] {Default Queue} wl_pointer#3273.motion(187310241, 8.60156250, 72.80078125) +[2618612.100] {Default Queue} wl_pointer#3305.motion(187310241, 8.60156250, 72.80078125) +[2618612.104] {Default Queue} wl_pointer#3337.motion(187310241, 8.60156250, 72.80078125) +[2618612.109] {Default Queue} wl_pointer#3369.motion(187310241, 8.60156250, 72.80078125) +[2618612.113] {Default Queue} wl_pointer#3401.motion(187310241, 8.60156250, 72.80078125) +[2618612.120] {Default Queue} wl_pointer#3433.motion(187310241, 8.60156250, 72.80078125) +[2618612.127] {Default Queue} wl_pointer#3465.motion(187310241, 8.60156250, 72.80078125) +[2618612.131] {Default Queue} wl_pointer#3497.motion(187310241, 8.60156250, 72.80078125) +[2618612.136] {Default Queue} wl_pointer#3529.motion(187310241, 8.60156250, 72.80078125) +[2618612.140] {Default Queue} wl_pointer#3561.motion(187310241, 8.60156250, 72.80078125) +[2618612.144] {Default Queue} wl_pointer#3593.motion(187310241, 8.60156250, 72.80078125) +[2618612.149] {Default Queue} wl_pointer#3625.motion(187310241, 8.60156250, 72.80078125) +[2618612.153] {Default Queue} wl_pointer#3657.motion(187310241, 8.60156250, 72.80078125) +[2618612.157] {Default Queue} wl_pointer#3695.motion(187310241, 8.60156250, 72.80078125) +[2618612.167] {Default Queue} -> wl_region#1151.subtract(0, 0, 19, 48) +[2618612.171] {Default Queue} -> wl_region#1151.add(-20, -49, 19, 48) +[2618612.175] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618612.180] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618612.187] {Default Queue} -> wl_region#1151.subtract(0, 0, 19, 48) +[2618612.192] {Default Queue} -> wl_region#1151.add(-20, -49, 19, 48) +[2618612.196] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618612.200] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618612.205] {Default Queue} -> wl_region#1151.subtract(0, 0, 19, 48) +[2618612.209] {Default Queue} -> wl_region#1151.add(-20, -49, 19, 48) +[2618612.213] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618612.217] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618612.222] {Default Queue} -> wl_region#1151.subtract(0, 0, 19, 48) +[2618612.226] {Default Queue} -> wl_region#1151.add(-20, -49, 19, 48) +[2618612.230] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618612.234] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618612.239] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) +[2618612.243] {Default Queue} -> wl_surface#1127.commit() +[2618612.247] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) +[2618612.251] {Default Queue} -> wl_surface#1127.commit() +[2618612.274] {Default Queue} wl_pointer#24.motion(187310246, 9.39843750, 71.19921875) +[2618612.279] {Default Queue} wl_pointer#81.motion(187310246, 9.39843750, 71.19921875) +[2618612.284] {Default Queue} wl_pointer#105.motion(187310246, 9.39843750, 71.19921875) +[2618612.289] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618612.293] {Default Queue} wl_pointer#137.motion(187310246, 9.39843750, 71.19921875) +[2618612.297] {Default Queue} wl_pointer#169.motion(187310246, 9.39843750, 71.19921875) +[2618612.301] {Default Queue} wl_pointer#201.motion(187310246, 9.39843750, 71.19921875) +[2618612.306] {Default Queue} wl_pointer#233.motion(187310246, 9.39843750, 71.19921875) +[2618612.310] {Default Queue} wl_pointer#265.motion(187310246, 9.39843750, 71.19921875) +[2618612.314] {Default Queue} wl_pointer#297.motion(187310246, 9.39843750, 71.19921875) +[2618612.319] {Default Queue} wl_pointer#329.motion(187310246, 9.39843750, 71.19921875) +[2618612.323] {Default Queue} wl_pointer#361.motion(187310246, 9.39843750, 71.19921875) +[2618612.327] {Default Queue} wl_pointer#393.motion(187310246, 9.39843750, 71.19921875) +[2618612.331] {Default Queue} wl_pointer#425.motion(187310246, 9.39843750, 71.19921875) +[2618612.336] {Default Queue} wl_pointer#457.motion(187310246, 9.39843750, 71.19921875) +[2618612.340] {Default Queue} wl_pointer#489.motion(187310246, 9.39843750, 71.19921875) +[2618612.344] {Default Queue} wl_pointer#521.motion(187310246, 9.39843750, 71.19921875) +[2618612.349] {Default Queue} wl_pointer#553.motion(187310246, 9.39843750, 71.19921875) +[2618612.353] {Default Queue} wl_pointer#585.motion(187310246, 9.39843750, 71.19921875) +[2618612.357] {Default Queue} wl_pointer#617.motion(187310246, 9.39843750, 71.19921875) +[2618612.361] {Default Queue} wl_pointer#649.motion(187310246, 9.39843750, 71.19921875) +[2618612.369] {Default Queue} wl_pointer#681.motion(187310246, 9.39843750, 71.19921875) +[2618612.375] {Default Queue} wl_pointer#713.motion(187310246, 9.39843750, 71.19921875) +[2618612.379] {Default Queue} wl_pointer#745.motion(187310246, 9.39843750, 71.19921875) +[2618612.383] {Default Queue} wl_pointer#777.motion(187310246, 9.39843750, 71.19921875) +[2618612.387] {Default Queue} wl_pointer#809.motion(187310246, 9.39843750, 71.19921875) +[2618612.392] {Default Queue} wl_pointer#841.motion(187310246, 9.39843750, 71.19921875) +[2618612.396] {Default Queue} wl_pointer#873.motion(187310246, 9.39843750, 71.19921875) +[2618612.400] {Default Queue} wl_pointer#905.motion(187310246, 9.39843750, 71.19921875) +[2618612.404] {Default Queue} wl_pointer#937.motion(187310246, 9.39843750, 71.19921875) +[2618612.409] {Default Queue} wl_pointer#969.motion(187310246, 9.39843750, 71.19921875) +[2618612.413] {Default Queue} wl_pointer#1001.motion(187310246, 9.39843750, 71.19921875) +[2618612.417] {Default Queue} wl_pointer#1033.motion(187310246, 9.39843750, 71.19921875) +[2618612.421] {Default Queue} wl_pointer#1065.motion(187310246, 9.39843750, 71.19921875) +[2618612.426] {Default Queue} wl_pointer#1097.motion(187310246, 9.39843750, 71.19921875) +[2618612.430] {Default Queue} wl_pointer#1129.motion(187310246, 9.39843750, 71.19921875) +[2618612.434] {Default Queue} wl_pointer#1161.motion(187310246, 9.39843750, 71.19921875) +[2618612.438] {Default Queue} wl_pointer#1193.motion(187310246, 9.39843750, 71.19921875) +[2618612.443] {Default Queue} wl_pointer#1225.motion(187310246, 9.39843750, 71.19921875) +[2618612.447] {Default Queue} wl_pointer#1257.motion(187310246, 9.39843750, 71.19921875) +[2618612.451] {Default Queue} wl_pointer#1289.motion(187310246, 9.39843750, 71.19921875) +[2618612.455] {Default Queue} wl_pointer#1321.motion(187310246, 9.39843750, 71.19921875) +[2618612.460] {Default Queue} wl_pointer#1353.motion(187310246, 9.39843750, 71.19921875) +[2618612.464] {Default Queue} wl_pointer#1385.motion(187310246, 9.39843750, 71.19921875) +[2618612.470] {Default Queue} wl_pointer#1417.motion(187310246, 9.39843750, 71.19921875) +[2618612.476] {Default Queue} wl_pointer#1449.motion(187310246, 9.39843750, 71.19921875) +[2618612.482] {Default Queue} wl_pointer#1481.motion(187310246, 9.39843750, 71.19921875) +[2618612.487] {Default Queue} wl_pointer#1513.motion(187310246, 9.39843750, 71.19921875) +[2618612.493] {Default Queue} wl_pointer#1545.motion(187310246, 9.39843750, 71.19921875) +[2618612.499] {Default Queue} wl_pointer#1577.motion(187310246, 9.39843750, 71.19921875) +[2618612.505] {Default Queue} wl_pointer#1609.motion(187310246, 9.39843750, 71.19921875) +[2618612.511] {Default Queue} wl_pointer#1641.motion(187310246, 9.39843750, 71.19921875) +[2618612.517] {Default Queue} wl_pointer#1673.motion(187310246, 9.39843750, 71.19921875) +[2618612.523] {Default Queue} wl_pointer#1705.motion(187310246, 9.39843750, 71.19921875) +[2618612.528] {Default Queue} wl_pointer#1737.motion(187310246, 9.39843750, 71.19921875) +[2618612.534] {Default Queue} wl_pointer#1762.motion(187310246, 9.39843750, 71.19921875) +[2618612.540] {Default Queue} wl_pointer#1801.motion(187310246, 9.39843750, 71.19921875) +[2618612.544] {Default Queue} wl_pointer#1833.motion(187310246, 9.39843750, 71.19921875) +[2618612.548] {Default Queue} wl_pointer#1865.motion(187310246, 9.39843750, 71.19921875) +[2618612.553] {Default Queue} wl_pointer#1897.motion(187310246, 9.39843750, 71.19921875) +[2618612.557] {Default Queue} wl_pointer#1929.motion(187310246, 9.39843750, 71.19921875) +[2618612.561] {Default Queue} wl_pointer#1961.motion(187310246, 9.39843750, 71.19921875) +[2618612.565] {Default Queue} wl_pointer#1993.motion(187310246, 9.39843750, 71.19921875) +[2618612.570] {Default Queue} wl_pointer#2025.motion(187310246, 9.39843750, 71.19921875) +[2618612.574] {Default Queue} wl_pointer#2057.motion(187310246, 9.39843750, 71.19921875) +[2618612.578] {Default Queue} wl_pointer#2089.motion(187310246, 9.39843750, 71.19921875) +[2618612.583] {Default Queue} wl_pointer#2121.motion(187310246, 9.39843750, 71.19921875) +[2618612.590] {Default Queue} wl_pointer#2153.motion(187310246, 9.39843750, 71.19921875) +[2618612.596] {Default Queue} wl_pointer#2185.motion(187310246, 9.39843750, 71.19921875) +[2618612.600] {Default Queue} wl_pointer#2217.motion(187310246, 9.39843750, 71.19921875) +[2618612.605] {Default Queue} wl_pointer#2249.motion(187310246, 9.39843750, 71.19921875) +[2618612.609] {Default Queue} wl_pointer#2281.motion(187310246, 9.39843750, 71.19921875) +[2618612.613] {Default Queue} wl_pointer#2313.motion(187310246, 9.39843750, 71.19921875) +[2618612.618] {Default Queue} wl_pointer#2345.motion(187310246, 9.39843750, 71.19921875) +[2618612.622] {Default Queue} wl_pointer#2377.motion(187310246, 9.39843750, 71.19921875) +[2618612.627] {Default Queue} wl_pointer#2409.motion(187310246, 9.39843750, 71.19921875) +[2618612.631] {Default Queue} wl_pointer#2441.motion(187310246, 9.39843750, 71.19921875) +[2618612.635] {Default Queue} wl_pointer#2473.motion(187310246, 9.39843750, 71.19921875) +[2618612.639] {Default Queue} wl_pointer#2498.motion(187310246, 9.39843750, 71.19921875) +[2618612.651] {Default Queue} -> wl_buffer#3483.destroy() +[2618612.656] {Default Queue} -> wl_buffer#3516.destroy() +[2618612.660] {Default Queue} -> wl_shm_pool#3515.destroy() +[2618612.664] {Default Queue} -> wl_shm_pool#3486.destroy() +[2618612.669] {Default Queue} -> wl_surface#3485.destroy() +[2618612.707] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3484, fd 581, 640) +[2618612.713] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 582, 640) +[2618612.717] {Default Queue} -> wl_shm_pool#3484.create_buffer(new id wl_buffer#3292, 0, 10, 16, 40, 0) +[2618612.722] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) +[2618612.729] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3294) +[2618612.733] {Default Queue} -> wl_surface#3294.attach(wl_buffer#3292, 0, 0) +[2618612.738] {Default Queue} -> wl_surface#3294.commit() +[2618612.743] {Default Queue} -> wl_surface#3294.attach(wl_buffer#3292, 0, 0) +[2618612.747] {Default Queue} -> wl_surface#3294.commit() +[2618612.751] {Default Queue} wl_pointer#2537.motion(187310246, 9.39843750, 71.19921875) +[2618612.756] {Default Queue} wl_pointer#2569.motion(187310246, 9.39843750, 71.19921875) +[2618612.760] {Default Queue} wl_pointer#2601.motion(187310246, 9.39843750, 71.19921875) +[2618612.765] {Default Queue} wl_pointer#2633.motion(187310246, 9.39843750, 71.19921875) +[2618612.769] {Default Queue} wl_pointer#2665.motion(187310246, 9.39843750, 71.19921875) +[2618612.773] {Default Queue} wl_pointer#2697.motion(187310246, 9.39843750, 71.19921875) +[2618612.778] {Default Queue} wl_pointer#2729.motion(187310246, 9.39843750, 71.19921875) +[2618612.782] {Default Queue} wl_pointer#2761.motion(187310246, 9.39843750, 71.19921875) +[2618612.786] {Default Queue} wl_pointer#2793.motion(187310246, 9.39843750, 71.19921875) +[2618612.790] {Default Queue} wl_pointer#2825.motion(187310246, 9.39843750, 71.19921875) +[2618612.795] {Default Queue} wl_pointer#2857.motion(187310246, 9.39843750, 71.19921875) +[2618612.799] {Default Queue} wl_pointer#2889.motion(187310246, 9.39843750, 71.19921875) +[2618612.804] {Default Queue} wl_pointer#2921.motion(187310246, 9.39843750, 71.19921875) +[2618612.808] {Default Queue} wl_pointer#2953.motion(187310246, 9.39843750, 71.19921875) +[2618612.812] {Default Queue} wl_pointer#2985.motion(187310246, 9.39843750, 71.19921875) +[2618612.817] {Default Queue} wl_pointer#3017.motion(187310246, 9.39843750, 71.19921875) +[2618612.821] {Default Queue} wl_pointer#3049.motion(187310246, 9.39843750, 71.19921875) +[2618612.825] {Default Queue} wl_pointer#3081.motion(187310246, 9.39843750, 71.19921875) +[2618612.829] {Default Queue} wl_pointer#3113.motion(187310246, 9.39843750, 71.19921875) +[2618612.834] {Default Queue} wl_pointer#3145.motion(187310246, 9.39843750, 71.19921875) +[2618612.838] {Default Queue} wl_pointer#3177.motion(187310246, 9.39843750, 71.19921875) +[2618612.842] {Default Queue} wl_pointer#3209.motion(187310246, 9.39843750, 71.19921875) +[2618612.851] {Default Queue} wl_pointer#3241.motion(187310246, 9.39843750, 71.19921875) +[2618612.857] {Default Queue} wl_pointer#3273.motion(187310246, 9.39843750, 71.19921875) +[2618612.866] {Default Queue} wl_pointer#3305.motion(187310246, 9.39843750, 71.19921875) +[2618612.871] {Default Queue} wl_pointer#3337.motion(187310246, 9.39843750, 71.19921875) +[2618612.875] {Default Queue} wl_pointer#3369.motion(187310246, 9.39843750, 71.19921875) +[2618612.879] {Default Queue} wl_pointer#3401.motion(187310246, 9.39843750, 71.19921875) +[2618612.884] {Default Queue} wl_pointer#3433.motion(187310246, 9.39843750, 71.19921875) +[2618612.888] {Default Queue} wl_pointer#3465.motion(187310246, 9.39843750, 71.19921875) +[2618612.892] {Default Queue} wl_pointer#3497.motion(187310246, 9.39843750, 71.19921875) +[2618612.897] {Default Queue} wl_pointer#3529.motion(187310246, 9.39843750, 71.19921875) +[2618612.901] {Default Queue} wl_pointer#3561.motion(187310246, 9.39843750, 71.19921875) +[2618612.905] {Default Queue} wl_pointer#3593.motion(187310246, 9.39843750, 71.19921875) +[2618612.910] {Default Queue} wl_pointer#3625.motion(187310246, 9.39843750, 71.19921875) +[2618612.914] {Default Queue} wl_pointer#3657.motion(187310246, 9.39843750, 71.19921875) +[2618612.918] {Default Queue} wl_pointer#3695.motion(187310246, 9.39843750, 71.19921875) +[2618612.922] {Default Queue} wl_pointer#24.motion(187310246, 10.60156250, 70.00000000) +[2618612.927] {Default Queue} wl_pointer#81.motion(187310246, 10.60156250, 70.00000000) +[2618612.932] {Default Queue} wl_pointer#105.motion(187310246, 10.60156250, 70.00000000) +[2618612.936] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618612.941] {Default Queue} wl_pointer#137.motion(187310246, 10.60156250, 70.00000000) +[2618612.945] {Default Queue} wl_pointer#169.motion(187310246, 10.60156250, 70.00000000) +[2618612.949] {Default Queue} wl_pointer#201.motion(187310246, 10.60156250, 70.00000000) +[2618612.954] {Default Queue} wl_pointer#233.motion(187310246, 10.60156250, 70.00000000) +[2618612.958] {Default Queue} wl_pointer#265.motion(187310246, 10.60156250, 70.00000000) +[2618612.962] {Default Queue} wl_pointer#297.motion(187310246, 10.60156250, 70.00000000) +[2618612.967] {Default Queue} wl_pointer#329.motion(187310246, 10.60156250, 70.00000000) +[2618612.971] {Default Queue} wl_pointer#361.motion(187310246, 10.60156250, 70.00000000) +[2618612.975] {Default Queue} wl_pointer#393.motion(187310246, 10.60156250, 70.00000000) +[2618612.979] {Default Queue} wl_pointer#425.motion(187310246, 10.60156250, 70.00000000) +[2618612.984] {Default Queue} wl_pointer#457.motion(187310246, 10.60156250, 70.00000000) +[2618612.988] {Default Queue} wl_pointer#489.motion(187310246, 10.60156250, 70.00000000) +[2618612.992] {Default Queue} wl_pointer#521.motion(187310246, 10.60156250, 70.00000000) +[2618612.997] {Default Queue} wl_pointer#553.motion(187310246, 10.60156250, 70.00000000) +[2618613.001] {Default Queue} wl_pointer#585.motion(187310246, 10.60156250, 70.00000000) +[2618613.005] {Default Queue} wl_pointer#617.motion(187310246, 10.60156250, 70.00000000) +[2618613.010] {Default Queue} wl_pointer#649.motion(187310246, 10.60156250, 70.00000000) +[2618613.014] {Default Queue} wl_pointer#681.motion(187310246, 10.60156250, 70.00000000) +[2618613.018] {Default Queue} wl_pointer#713.motion(187310246, 10.60156250, 70.00000000) +[2618613.023] {Default Queue} wl_pointer#745.motion(187310246, 10.60156250, 70.00000000) +[2618613.027] {Default Queue} wl_pointer#777.motion(187310246, 10.60156250, 70.00000000) +[2618613.031] {Default Queue} wl_pointer#809.motion(187310246, 10.60156250, 70.00000000) +[2618613.036] {Default Queue} wl_pointer#841.motion(187310246, 10.60156250, 70.00000000) +[2618613.040] {Default Queue} wl_pointer#873.motion(187310246, 10.60156250, 70.00000000) +[2618613.044] {Default Queue} wl_pointer#905.motion(187310246, 10.60156250, 70.00000000) +[2618613.048] {Default Queue} wl_pointer#937.motion(187310246, 10.60156250, 70.00000000) +[2618613.053] {Default Queue} wl_pointer#969.motion(187310246, 10.60156250, 70.00000000) +[2618613.062] {Default Queue} wl_pointer#1001.motion(187310246, 10.60156250, 70.00000000) +[2618613.068] {Default Queue} wl_pointer#1033.motion(187310246, 10.60156250, 70.00000000) +[2618613.072] {Default Queue} wl_pointer#1065.motion(187310246, 10.60156250, 70.00000000) +[2618613.076] {Default Queue} wl_pointer#1097.motion(187310246, 10.60156250, 70.00000000) +[2618613.081] {Default Queue} wl_pointer#1129.motion(187310246, 10.60156250, 70.00000000) +[2618613.085] {Default Queue} wl_pointer#1161.motion(187310246, 10.60156250, 70.00000000) +[2618613.089] {Default Queue} wl_pointer#1193.motion(187310246, 10.60156250, 70.00000000) +[2618613.094] {Default Queue} wl_pointer#1225.motion(187310246, 10.60156250, 70.00000000) +[2618613.098] {Default Queue} wl_pointer#1257.motion(187310246, 10.60156250, 70.00000000) +[2618613.102] {Default Queue} wl_pointer#1289.motion(187310246, 10.60156250, 70.00000000) +[2618613.107] {Default Queue} wl_pointer#1321.motion(187310246, 10.60156250, 70.00000000) +[2618613.111] {Default Queue} wl_pointer#1353.motion(187310246, 10.60156250, 70.00000000) +[2618613.115] {Default Queue} wl_pointer#1385.motion(187310246, 10.60156250, 70.00000000) +[2618613.119] {Default Queue} wl_pointer#1417.motion(187310246, 10.60156250, 70.00000000) +[2618613.124] {Default Queue} wl_pointer#1449.motion(187310246, 10.60156250, 70.00000000) +[2618613.128] {Default Queue} wl_pointer#1481.motion(187310246, 10.60156250, 70.00000000) +[2618613.132] {Default Queue} wl_pointer#1513.motion(187310246, 10.60156250, 70.00000000) +[2618613.137] {Default Queue} wl_pointer#1545.motion(187310246, 10.60156250, 70.00000000) +[2618613.141] {Default Queue} wl_pointer#1577.motion(187310246, 10.60156250, 70.00000000) +[2618613.145] {Default Queue} wl_pointer#1609.motion(187310246, 10.60156250, 70.00000000) +[2618613.150] {Default Queue} wl_pointer#1641.motion(187310246, 10.60156250, 70.00000000) +[2618613.154] {Default Queue} wl_pointer#1673.motion(187310246, 10.60156250, 70.00000000) +[2618613.158] {Default Queue} wl_pointer#1705.motion(187310246, 10.60156250, 70.00000000) +[2618613.162] {Default Queue} wl_pointer#1737.motion(187310246, 10.60156250, 70.00000000) +[2618613.167] {Default Queue} wl_pointer#1762.motion(187310246, 10.60156250, 70.00000000) +[2618613.171] {Default Queue} wl_pointer#1801.motion(187310246, 10.60156250, 70.00000000) +[2618613.175] {Default Queue} wl_pointer#1833.motion(187310246, 10.60156250, 70.00000000) +[2618613.180] {Default Queue} wl_pointer#1865.motion(187310246, 10.60156250, 70.00000000) +[2618613.184] {Default Queue} wl_pointer#1897.motion(187310246, 10.60156250, 70.00000000) +[2618613.188] {Default Queue} wl_pointer#1929.motion(187310246, 10.60156250, 70.00000000) +[2618613.192] {Default Queue} wl_pointer#1961.motion(187310246, 10.60156250, 70.00000000) +[2618613.197] {Default Queue} wl_pointer#1993.motion(187310246, 10.60156250, 70.00000000) +[2618613.201] {Default Queue} wl_pointer#2025.motion(187310246, 10.60156250, 70.00000000) +[2618613.205] {Default Queue} wl_pointer#2057.motion(187310246, 10.60156250, 70.00000000) +[2618613.210] {Default Queue} wl_pointer#2089.motion(187310246, 10.60156250, 70.00000000) +[2618613.214] {Default Queue} wl_pointer#2121.motion(187310246, 10.60156250, 70.00000000) +[2618613.218] {Default Queue} wl_pointer#2153.motion(187310246, 10.60156250, 70.00000000) +[2618613.222] {Default Queue} wl_pointer#2185.motion(187310246, 10.60156250, 70.00000000) +[2618613.227] {Default Queue} wl_pointer#2217.motion(187310246, 10.60156250, 70.00000000) +[2618613.231] {Default Queue} wl_pointer#2249.motion(187310246, 10.60156250, 70.00000000) +[2618613.235] {Default Queue} wl_pointer#2281.motion(187310246, 10.60156250, 70.00000000) +[2618613.240] {Default Queue} wl_pointer#2313.motion(187310246, 10.60156250, 70.00000000) +[2618613.244] {Default Queue} wl_pointer#2345.motion(187310246, 10.60156250, 70.00000000) +[2618613.249] {Default Queue} wl_pointer#2377.motion(187310246, 10.60156250, 70.00000000) +[2618613.253] {Default Queue} wl_pointer#2409.motion(187310246, 10.60156250, 70.00000000) +[2618613.260] {Default Queue} wl_pointer#2441.motion(187310246, 10.60156250, 70.00000000) +[2618613.266] {Default Queue} wl_pointer#2473.motion(187310246, 10.60156250, 70.00000000) +[2618613.270] {Default Queue} wl_pointer#2498.motion(187310246, 10.60156250, 70.00000000) +[2618613.280] {Default Queue} -> wl_buffer#3292.destroy() +[2618613.284] {Default Queue} -> wl_buffer#3293.destroy() +[2618613.288] {Default Queue} -> wl_shm_pool#3484.destroy() +[2618613.292] {Default Queue} -> wl_shm_pool#3291.destroy() +[2618613.297] {Default Queue} -> wl_surface#3294.destroy() +[2618613.329] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3677, fd 583, 640) +[2618613.334] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3676, fd 584, 640) +[2618613.339] {Default Queue} -> wl_shm_pool#3677.create_buffer(new id wl_buffer#3674, 0, 10, 16, 40, 0) +[2618613.343] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 10, 16, 40, 0) +[2618613.350] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3675) +[2618613.354] {Default Queue} -> wl_surface#3675.attach(wl_buffer#3674, 0, 0) +[2618613.358] {Default Queue} -> wl_surface#3675.commit() +[2618613.364] {Default Queue} -> wl_surface#3675.attach(wl_buffer#3674, 0, 0) +[2618613.368] {Default Queue} -> wl_surface#3675.commit() +[2618613.372] {Default Queue} wl_pointer#2537.motion(187310246, 10.60156250, 70.00000000) +[2618613.376] {Default Queue} wl_pointer#2569.motion(187310246, 10.60156250, 70.00000000) +[2618613.381] {Default Queue} wl_pointer#2601.motion(187310246, 10.60156250, 70.00000000) +[2618613.385] {Default Queue} wl_pointer#2633.motion(187310246, 10.60156250, 70.00000000) +[2618613.389] {Default Queue} wl_pointer#2665.motion(187310246, 10.60156250, 70.00000000) +[2618613.393] {Default Queue} wl_pointer#2697.motion(187310246, 10.60156250, 70.00000000) +[2618613.398] {Default Queue} wl_pointer#2729.motion(187310246, 10.60156250, 70.00000000) +[2618613.402] {Default Queue} wl_pointer#2761.motion(187310246, 10.60156250, 70.00000000) +[2618613.406] {Default Queue} wl_pointer#2793.motion(187310246, 10.60156250, 70.00000000) +[2618613.410] {Default Queue} wl_pointer#2825.motion(187310246, 10.60156250, 70.00000000) +[2618613.415] {Default Queue} wl_pointer#2857.motion(187310246, 10.60156250, 70.00000000) +[2618613.420] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) +[2618613.424] {Default Queue} -> wl_surface#1127.commit() +[2618614.490] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) +[2618614.496] {Default Queue} -> wl_surface#1127.commit() +[2618614.502] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) +[2618614.506] {Default Queue} -> wl_surface#1127.commit() +[2618614.512] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) +[2618614.517] {Default Queue} -> wl_surface#1159.commit() +[2618615.578] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) +[2618615.583] {Default Queue} -> wl_surface#1159.commit() +[2618615.592] {Default Queue} -> wl_region#1183.subtract(0, 0, 19, 48) +[2618615.596] {Default Queue} -> wl_region#1183.add(-20, -49, 19, 48) +[2618615.600] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618615.604] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618615.613] {Default Queue} -> wl_region#1183.subtract(0, 0, 19, 48) +[2618615.617] {Default Queue} -> wl_region#1183.add(-20, -49, 19, 48) +[2618615.622] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618615.625] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618615.630] {Default Queue} -> wl_region#1183.subtract(0, 0, 19, 48) +[2618615.635] {Default Queue} -> wl_region#1183.add(-20, -49, 19, 48) +[2618615.639] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618615.643] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618615.648] {Default Queue} -> wl_region#1183.subtract(0, 0, 19, 48) +[2618615.652] {Default Queue} -> wl_region#1183.add(-20, -49, 19, 48) +[2618615.660] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618615.666] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618615.670] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) +[2618615.675] {Default Queue} -> wl_surface#1159.commit() +[2618615.679] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) +[2618615.683] {Default Queue} -> wl_surface#1159.commit() +[2618615.688] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) +[2618615.692] {Default Queue} -> wl_surface#1159.commit() +[2618615.698] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) +[2618615.702] {Default Queue} -> wl_surface#1191.commit() +[2618616.352] {Display Queue} wl_display#1.delete_id(3452) +[2618616.359] {Display Queue} wl_display#1.delete_id(3451) +[2618616.365] {Display Queue} wl_display#1.delete_id(3518) +[2618616.370] {Display Queue} wl_display#1.delete_id(3517) +[2618616.375] {Display Queue} wl_display#1.delete_id(3454) +[2618616.379] {Display Queue} wl_display#1.delete_id(3683) +[2618616.383] {Display Queue} wl_display#1.delete_id(94) +[2618616.387] {Display Queue} wl_display#1.delete_id(93) +[2618616.391] {Display Queue} wl_display#1.delete_id(92) +[2618616.395] {Display Queue} wl_display#1.delete_id(91) +[2618616.399] {Default Queue} wl_pointer#2889.motion(187310246, 10.60156250, 70.00000000) +[2618616.403] {Default Queue} wl_pointer#2921.motion(187310246, 10.60156250, 70.00000000) +[2618616.408] {Default Queue} wl_pointer#2953.motion(187310246, 10.60156250, 70.00000000) +[2618616.412] {Default Queue} wl_pointer#2985.motion(187310246, 10.60156250, 70.00000000) +[2618616.416] {Default Queue} wl_pointer#3017.motion(187310246, 10.60156250, 70.00000000) +[2618616.420] {Default Queue} wl_pointer#3049.motion(187310246, 10.60156250, 70.00000000) +[2618616.425] {Default Queue} wl_pointer#3081.motion(187310246, 10.60156250, 70.00000000) +[2618616.429] {Default Queue} wl_pointer#3113.motion(187310246, 10.60156250, 70.00000000) +[2618616.433] {Default Queue} wl_pointer#3145.motion(187310246, 10.60156250, 70.00000000) +[2618616.438] {Default Queue} wl_pointer#3177.motion(187310246, 10.60156250, 70.00000000) +[2618616.442] {Default Queue} wl_pointer#3209.motion(187310246, 10.60156250, 70.00000000) +[2618616.446] {Default Queue} wl_pointer#3241.motion(187310246, 10.60156250, 70.00000000) +[2618616.451] {Default Queue} wl_pointer#3273.motion(187310246, 10.60156250, 70.00000000) +[2618616.455] {Default Queue} wl_pointer#3305.motion(187310246, 10.60156250, 70.00000000) +[2618616.459] {Default Queue} wl_pointer#3337.motion(187310246, 10.60156250, 70.00000000) +[2618616.464] {Default Queue} wl_pointer#3369.motion(187310246, 10.60156250, 70.00000000) +[2618616.468] {Default Queue} wl_pointer#3401.motion(187310246, 10.60156250, 70.00000000) +[2618616.472] {Default Queue} wl_pointer#3433.motion(187310246, 10.60156250, 70.00000000) +[2618616.477] {Default Queue} wl_pointer#3465.motion(187310246, 10.60156250, 70.00000000) +[2618616.481] {Default Queue} wl_pointer#3497.motion(187310246, 10.60156250, 70.00000000) +[2618616.486] {Default Queue} wl_pointer#3529.motion(187310246, 10.60156250, 70.00000000) +[2618616.490] {Default Queue} wl_pointer#3561.motion(187310246, 10.60156250, 70.00000000) +[2618616.494] {Default Queue} wl_pointer#3593.motion(187310246, 10.60156250, 70.00000000) +[2618616.498] {Default Queue} wl_pointer#3625.motion(187310246, 10.60156250, 70.00000000) +[2618616.503] {Default Queue} wl_pointer#3657.motion(187310246, 10.60156250, 70.00000000) +[2618616.507] {Default Queue} wl_pointer#3695.motion(187310246, 10.60156250, 70.00000000) +[2618616.514] {Default Queue} -> wl_region#1215.subtract(0, 0, 19, 48) +[2618616.519] {Default Queue} -> wl_region#1215.add(-20, -49, 19, 48) +[2618616.523] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618616.527] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618616.534] {Default Queue} -> wl_region#1215.subtract(0, 0, 19, 48) +[2618616.539] {Default Queue} -> wl_region#1215.add(-20, -49, 19, 48) +[2618616.546] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618616.552] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618616.557] {Default Queue} -> wl_region#1215.subtract(0, 0, 19, 48) +[2618616.561] {Default Queue} -> wl_region#1215.add(-20, -49, 19, 48) +[2618616.565] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618616.569] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618616.573] {Default Queue} -> wl_region#1215.subtract(0, 0, 19, 48) +[2618616.578] {Default Queue} -> wl_region#1215.add(-20, -49, 19, 48) +[2618616.582] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618616.586] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618616.590] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) +[2618616.594] {Default Queue} -> wl_surface#1191.commit() +[2618616.598] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) +[2618616.602] {Default Queue} -> wl_surface#1191.commit() +[2618616.626] {Default Queue} wl_pointer#24.motion(187310251, 11.80078125, 68.39843750) +[2618616.631] {Default Queue} wl_pointer#81.motion(187310251, 11.80078125, 68.39843750) +[2618616.636] {Default Queue} wl_pointer#105.motion(187310251, 11.80078125, 68.39843750) +[2618616.640] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618616.645] {Default Queue} wl_pointer#137.motion(187310251, 11.80078125, 68.39843750) +[2618616.649] {Default Queue} wl_pointer#169.motion(187310251, 11.80078125, 68.39843750) +[2618616.653] {Default Queue} wl_pointer#201.motion(187310251, 11.80078125, 68.39843750) +[2618616.658] {Default Queue} wl_pointer#233.motion(187310251, 11.80078125, 68.39843750) +[2618616.662] {Default Queue} wl_pointer#265.motion(187310251, 11.80078125, 68.39843750) +[2618616.666] {Default Queue} wl_pointer#297.motion(187310251, 11.80078125, 68.39843750) +[2618616.671] {Default Queue} wl_pointer#329.motion(187310251, 11.80078125, 68.39843750) +[2618616.675] {Default Queue} wl_pointer#361.motion(187310251, 11.80078125, 68.39843750) +[2618616.679] {Default Queue} wl_pointer#393.motion(187310251, 11.80078125, 68.39843750) +[2618616.683] {Default Queue} wl_pointer#425.motion(187310251, 11.80078125, 68.39843750) +[2618616.688] {Default Queue} wl_pointer#457.motion(187310251, 11.80078125, 68.39843750) +[2618616.692] {Default Queue} wl_pointer#489.motion(187310251, 11.80078125, 68.39843750) +[2618616.696] {Default Queue} wl_pointer#521.motion(187310251, 11.80078125, 68.39843750) +[2618616.701] {Default Queue} wl_pointer#553.motion(187310251, 11.80078125, 68.39843750) +[2618616.705] {Default Queue} wl_pointer#585.motion(187310251, 11.80078125, 68.39843750) +[2618616.709] {Default Queue} wl_pointer#617.motion(187310251, 11.80078125, 68.39843750) +[2618616.713] {Default Queue} wl_pointer#649.motion(187310251, 11.80078125, 68.39843750) +[2618616.718] {Default Queue} wl_pointer#681.motion(187310251, 11.80078125, 68.39843750) +[2618616.722] {Default Queue} wl_pointer#713.motion(187310251, 11.80078125, 68.39843750) +[2618616.727] {Default Queue} wl_pointer#745.motion(187310251, 11.80078125, 68.39843750) +[2618616.731] {Default Queue} wl_pointer#777.motion(187310251, 11.80078125, 68.39843750) +[2618616.735] {Default Queue} wl_pointer#809.motion(187310251, 11.80078125, 68.39843750) +[2618616.739] {Default Queue} wl_pointer#841.motion(187310251, 11.80078125, 68.39843750) +[2618616.744] {Default Queue} wl_pointer#873.motion(187310251, 11.80078125, 68.39843750) +[2618616.748] {Default Queue} wl_pointer#905.motion(187310251, 11.80078125, 68.39843750) +[2618616.752] {Default Queue} wl_pointer#937.motion(187310251, 11.80078125, 68.39843750) +[2618616.756] {Default Queue} wl_pointer#969.motion(187310251, 11.80078125, 68.39843750) +[2618616.761] {Default Queue} wl_pointer#1001.motion(187310251, 11.80078125, 68.39843750) +[2618616.765] {Default Queue} wl_pointer#1033.motion(187310251, 11.80078125, 68.39843750) +[2618616.769] {Default Queue} wl_pointer#1065.motion(187310251, 11.80078125, 68.39843750) +[2618616.777] {Default Queue} wl_pointer#1097.motion(187310251, 11.80078125, 68.39843750) +[2618616.782] {Default Queue} wl_pointer#1129.motion(187310251, 11.80078125, 68.39843750) +[2618616.787] {Default Queue} wl_pointer#1161.motion(187310251, 11.80078125, 68.39843750) +[2618616.791] {Default Queue} wl_pointer#1193.motion(187310251, 11.80078125, 68.39843750) +[2618616.795] {Default Queue} wl_pointer#1225.motion(187310251, 11.80078125, 68.39843750) +[2618616.799] {Default Queue} wl_pointer#1257.motion(187310251, 11.80078125, 68.39843750) +[2618616.804] {Default Queue} wl_pointer#1289.motion(187310251, 11.80078125, 68.39843750) +[2618616.808] {Default Queue} wl_pointer#1321.motion(187310251, 11.80078125, 68.39843750) +[2618616.812] {Default Queue} wl_pointer#1353.motion(187310251, 11.80078125, 68.39843750) +[2618616.816] {Default Queue} wl_pointer#1385.motion(187310251, 11.80078125, 68.39843750) +[2618616.821] {Default Queue} wl_pointer#1417.motion(187310251, 11.80078125, 68.39843750) +[2618616.825] {Default Queue} wl_pointer#1449.motion(187310251, 11.80078125, 68.39843750) +[2618616.829] {Default Queue} wl_pointer#1481.motion(187310251, 11.80078125, 68.39843750) +[2618616.833] {Default Queue} wl_pointer#1513.motion(187310251, 11.80078125, 68.39843750) +[2618616.838] {Default Queue} wl_pointer#1545.motion(187310251, 11.80078125, 68.39843750) +[2618616.842] {Default Queue} wl_pointer#1577.motion(187310251, 11.80078125, 68.39843750) +[2618616.846] {Default Queue} wl_pointer#1609.motion(187310251, 11.80078125, 68.39843750) +[2618616.851] {Default Queue} wl_pointer#1641.motion(187310251, 11.80078125, 68.39843750) +[2618616.855] {Default Queue} wl_pointer#1673.motion(187310251, 11.80078125, 68.39843750) +[2618616.859] {Default Queue} wl_pointer#1705.motion(187310251, 11.80078125, 68.39843750) +[2618616.868] {Default Queue} wl_pointer#1737.motion(187310251, 11.80078125, 68.39843750) +[2618616.872] {Default Queue} wl_pointer#1762.motion(187310251, 11.80078125, 68.39843750) +[2618616.876] {Default Queue} wl_pointer#1801.motion(187310251, 11.80078125, 68.39843750) +[2618616.881] {Default Queue} wl_pointer#1833.motion(187310251, 11.80078125, 68.39843750) +[2618616.885] {Default Queue} wl_pointer#1865.motion(187310251, 11.80078125, 68.39843750) +[2618616.889] {Default Queue} wl_pointer#1897.motion(187310251, 11.80078125, 68.39843750) +[2618616.893] {Default Queue} wl_pointer#1929.motion(187310251, 11.80078125, 68.39843750) +[2618616.898] {Default Queue} wl_pointer#1961.motion(187310251, 11.80078125, 68.39843750) +[2618616.902] {Default Queue} wl_pointer#1993.motion(187310251, 11.80078125, 68.39843750) +[2618616.906] {Default Queue} wl_pointer#2025.motion(187310251, 11.80078125, 68.39843750) +[2618616.911] {Default Queue} wl_pointer#2057.motion(187310251, 11.80078125, 68.39843750) +[2618616.915] {Default Queue} wl_pointer#2089.motion(187310251, 11.80078125, 68.39843750) +[2618616.919] {Default Queue} wl_pointer#2121.motion(187310251, 11.80078125, 68.39843750) +[2618616.923] {Default Queue} wl_pointer#2153.motion(187310251, 11.80078125, 68.39843750) +[2618616.928] {Default Queue} wl_pointer#2185.motion(187310251, 11.80078125, 68.39843750) +[2618616.932] {Default Queue} wl_pointer#2217.motion(187310251, 11.80078125, 68.39843750) +[2618616.936] {Default Queue} wl_pointer#2249.motion(187310251, 11.80078125, 68.39843750) +[2618616.941] {Default Queue} wl_pointer#2281.motion(187310251, 11.80078125, 68.39843750) +[2618616.945] {Default Queue} wl_pointer#2313.motion(187310251, 11.80078125, 68.39843750) +[2618616.949] {Default Queue} wl_pointer#2345.motion(187310251, 11.80078125, 68.39843750) +[2618616.954] {Default Queue} wl_pointer#2377.motion(187310251, 11.80078125, 68.39843750) +[2618616.958] {Default Queue} wl_pointer#2409.motion(187310251, 11.80078125, 68.39843750) +[2618616.962] {Default Queue} wl_pointer#2441.motion(187310251, 11.80078125, 68.39843750) +[2618616.967] {Default Queue} wl_pointer#2473.motion(187310251, 11.80078125, 68.39843750) +[2618616.971] {Default Queue} wl_pointer#2498.motion(187310251, 11.80078125, 68.39843750) +[2618616.983] {Default Queue} -> wl_buffer#3674.destroy() +[2618616.995] {Default Queue} -> wl_buffer#3678.destroy() +[2618617.001] {Default Queue} -> wl_shm_pool#3677.destroy() +[2618617.005] {Default Queue} -> wl_shm_pool#3676.destroy() +[2618617.011] {Default Queue} -> wl_surface#3675.destroy() +[2618617.051] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#91, fd 575, 640) +[2618617.058] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 578, 640) +[2618617.063] {Default Queue} -> wl_shm_pool#91.create_buffer(new id wl_buffer#93, 0, 10, 16, 40, 0) +[2618617.068] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) +[2618617.075] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3683) +[2618617.079] {Default Queue} -> wl_surface#3683.attach(wl_buffer#93, 0, 0) +[2618617.083] {Default Queue} -> wl_surface#3683.commit() +[2618617.089] {Default Queue} -> wl_surface#3683.attach(wl_buffer#93, 0, 0) +[2618617.093] {Default Queue} -> wl_surface#3683.commit() +[2618617.097] {Default Queue} wl_pointer#2537.motion(187310251, 11.80078125, 68.39843750) +[2618617.102] {Default Queue} wl_pointer#2569.motion(187310251, 11.80078125, 68.39843750) +[2618617.106] {Default Queue} wl_pointer#2601.motion(187310251, 11.80078125, 68.39843750) +[2618617.111] {Default Queue} wl_pointer#2633.motion(187310251, 11.80078125, 68.39843750) +[2618617.115] {Default Queue} wl_pointer#2665.motion(187310251, 11.80078125, 68.39843750) +[2618617.119] {Default Queue} wl_pointer#2697.motion(187310251, 11.80078125, 68.39843750) +[2618617.124] {Default Queue} wl_pointer#2729.motion(187310251, 11.80078125, 68.39843750) +[2618617.128] {Default Queue} wl_pointer#2761.motion(187310251, 11.80078125, 68.39843750) +[2618617.132] {Default Queue} wl_pointer#2793.motion(187310251, 11.80078125, 68.39843750) +[2618617.137] {Default Queue} wl_pointer#2825.motion(187310251, 11.80078125, 68.39843750) +[2618617.141] {Default Queue} wl_pointer#2857.motion(187310251, 11.80078125, 68.39843750) +[2618617.145] {Default Queue} wl_pointer#2889.motion(187310251, 11.80078125, 68.39843750) +[2618617.150] {Default Queue} wl_pointer#2921.motion(187310251, 11.80078125, 68.39843750) +[2618617.154] {Default Queue} wl_pointer#2953.motion(187310251, 11.80078125, 68.39843750) +[2618617.158] {Default Queue} wl_pointer#2985.motion(187310251, 11.80078125, 68.39843750) +[2618617.163] {Default Queue} wl_pointer#3017.motion(187310251, 11.80078125, 68.39843750) +[2618617.167] {Default Queue} wl_pointer#3049.motion(187310251, 11.80078125, 68.39843750) +[2618617.171] {Default Queue} wl_pointer#3081.motion(187310251, 11.80078125, 68.39843750) +[2618617.175] {Default Queue} wl_pointer#3113.motion(187310251, 11.80078125, 68.39843750) +[2618617.180] {Default Queue} wl_pointer#3145.motion(187310251, 11.80078125, 68.39843750) +[2618617.184] {Default Queue} wl_pointer#3177.motion(187310251, 11.80078125, 68.39843750) +[2618617.188] {Default Queue} wl_pointer#3209.motion(187310251, 11.80078125, 68.39843750) +[2618617.193] {Default Queue} wl_pointer#3241.motion(187310251, 11.80078125, 68.39843750) +[2618617.197] {Default Queue} wl_pointer#3273.motion(187310251, 11.80078125, 68.39843750) +[2618617.201] {Default Queue} wl_pointer#3305.motion(187310251, 11.80078125, 68.39843750) +[2618617.205] {Default Queue} wl_pointer#3337.motion(187310251, 11.80078125, 68.39843750) +[2618617.210] {Default Queue} wl_pointer#3369.motion(187310251, 11.80078125, 68.39843750) +[2618617.214] {Default Queue} wl_pointer#3401.motion(187310251, 11.80078125, 68.39843750) +[2618617.218] {Default Queue} wl_pointer#3433.motion(187310251, 11.80078125, 68.39843750) +[2618617.223] {Default Queue} wl_pointer#3465.motion(187310251, 11.80078125, 68.39843750) +[2618617.227] {Default Queue} wl_pointer#3497.motion(187310251, 11.80078125, 68.39843750) +[2618617.231] {Default Queue} wl_pointer#3529.motion(187310251, 11.80078125, 68.39843750) +[2618617.236] {Default Queue} wl_pointer#3561.motion(187310251, 11.80078125, 68.39843750) +[2618617.240] {Default Queue} wl_pointer#3593.motion(187310251, 11.80078125, 68.39843750) +[2618617.244] {Default Queue} wl_pointer#3625.motion(187310251, 11.80078125, 68.39843750) +[2618617.252] {Default Queue} wl_pointer#3657.motion(187310251, 11.80078125, 68.39843750) +[2618617.258] {Default Queue} wl_pointer#3695.motion(187310251, 11.80078125, 68.39843750) +[2618617.262] {Default Queue} wl_pointer#24.motion(187310251, 12.60156250, 67.19921875) +[2618617.266] {Default Queue} wl_pointer#81.motion(187310251, 12.60156250, 67.19921875) +[2618617.271] {Default Queue} wl_pointer#105.motion(187310251, 12.60156250, 67.19921875) +[2618617.276] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618617.280] {Default Queue} wl_pointer#137.motion(187310251, 12.60156250, 67.19921875) +[2618617.285] {Default Queue} wl_pointer#169.motion(187310251, 12.60156250, 67.19921875) +[2618617.289] {Default Queue} wl_pointer#201.motion(187310251, 12.60156250, 67.19921875) +[2618617.293] {Default Queue} wl_pointer#233.motion(187310251, 12.60156250, 67.19921875) +[2618617.297] {Default Queue} wl_pointer#265.motion(187310251, 12.60156250, 67.19921875) +[2618617.302] {Default Queue} wl_pointer#297.motion(187310251, 12.60156250, 67.19921875) +[2618617.306] {Default Queue} wl_pointer#329.motion(187310251, 12.60156250, 67.19921875) +[2618617.310] {Default Queue} wl_pointer#361.motion(187310251, 12.60156250, 67.19921875) +[2618617.314] {Default Queue} wl_pointer#393.motion(187310251, 12.60156250, 67.19921875) +[2618617.319] {Default Queue} wl_pointer#425.motion(187310251, 12.60156250, 67.19921875) +[2618617.323] {Default Queue} wl_pointer#457.motion(187310251, 12.60156250, 67.19921875) +[2618617.327] {Default Queue} wl_pointer#489.motion(187310251, 12.60156250, 67.19921875) +[2618617.332] {Default Queue} wl_pointer#521.motion(187310251, 12.60156250, 67.19921875) +[2618617.336] {Default Queue} wl_pointer#553.motion(187310251, 12.60156250, 67.19921875) +[2618617.340] {Default Queue} wl_pointer#585.motion(187310251, 12.60156250, 67.19921875) +[2618617.344] {Default Queue} wl_pointer#617.motion(187310251, 12.60156250, 67.19921875) +[2618617.349] {Default Queue} wl_pointer#649.motion(187310251, 12.60156250, 67.19921875) +[2618617.353] {Default Queue} wl_pointer#681.motion(187310251, 12.60156250, 67.19921875) +[2618617.357] {Default Queue} wl_pointer#713.motion(187310251, 12.60156250, 67.19921875) +[2618617.361] {Default Queue} wl_pointer#745.motion(187310251, 12.60156250, 67.19921875) +[2618617.366] {Default Queue} wl_pointer#777.motion(187310251, 12.60156250, 67.19921875) +[2618617.370] {Default Queue} wl_pointer#809.motion(187310251, 12.60156250, 67.19921875) +[2618617.374] {Default Queue} wl_pointer#841.motion(187310251, 12.60156250, 67.19921875) +[2618617.379] {Default Queue} wl_pointer#873.motion(187310251, 12.60156250, 67.19921875) +[2618617.383] {Default Queue} wl_pointer#905.motion(187310251, 12.60156250, 67.19921875) +[2618617.387] {Default Queue} wl_pointer#937.motion(187310251, 12.60156250, 67.19921875) +[2618617.391] {Default Queue} wl_pointer#969.motion(187310251, 12.60156250, 67.19921875) +[2618617.396] {Default Queue} wl_pointer#1001.motion(187310251, 12.60156250, 67.19921875) +[2618617.400] {Default Queue} wl_pointer#1033.motion(187310251, 12.60156250, 67.19921875) +[2618617.404] {Default Queue} wl_pointer#1065.motion(187310251, 12.60156250, 67.19921875) +[2618617.408] {Default Queue} wl_pointer#1097.motion(187310251, 12.60156250, 67.19921875) +[2618617.413] {Default Queue} wl_pointer#1129.motion(187310251, 12.60156250, 67.19921875) +[2618617.417] {Default Queue} wl_pointer#1161.motion(187310251, 12.60156250, 67.19921875) +[2618617.421] {Default Queue} wl_pointer#1193.motion(187310251, 12.60156250, 67.19921875) +[2618617.426] {Default Queue} wl_pointer#1225.motion(187310251, 12.60156250, 67.19921875) +[2618617.430] {Default Queue} wl_pointer#1257.motion(187310251, 12.60156250, 67.19921875) +[2618617.434] {Default Queue} wl_pointer#1289.motion(187310251, 12.60156250, 67.19921875) +[2618617.438] {Default Queue} wl_pointer#1321.motion(187310251, 12.60156250, 67.19921875) +[2618617.443] {Default Queue} wl_pointer#1353.motion(187310251, 12.60156250, 67.19921875) +[2618617.447] {Default Queue} wl_pointer#1385.motion(187310251, 12.60156250, 67.19921875) +[2618617.454] {Default Queue} wl_pointer#1417.motion(187310251, 12.60156250, 67.19921875) +[2618617.459] {Default Queue} wl_pointer#1449.motion(187310251, 12.60156250, 67.19921875) +[2618617.464] {Default Queue} wl_pointer#1481.motion(187310251, 12.60156250, 67.19921875) +[2618617.468] {Default Queue} wl_pointer#1513.motion(187310251, 12.60156250, 67.19921875) +[2618617.472] {Default Queue} wl_pointer#1545.motion(187310251, 12.60156250, 67.19921875) +[2618617.478] {Default Queue} wl_pointer#1577.motion(187310251, 12.60156250, 67.19921875) +[2618617.484] {Default Queue} wl_pointer#1609.motion(187310251, 12.60156250, 67.19921875) +[2618617.490] {Default Queue} wl_pointer#1641.motion(187310251, 12.60156250, 67.19921875) +[2618617.496] {Default Queue} wl_pointer#1673.motion(187310251, 12.60156250, 67.19921875) +[2618617.502] {Default Queue} wl_pointer#1705.motion(187310251, 12.60156250, 67.19921875) +[2618617.507] {Default Queue} wl_pointer#1737.motion(187310251, 12.60156250, 67.19921875) +[2618617.513] {Default Queue} wl_pointer#1762.motion(187310251, 12.60156250, 67.19921875) +[2618617.519] {Default Queue} wl_pointer#1801.motion(187310251, 12.60156250, 67.19921875) +[2618617.524] {Default Queue} wl_pointer#1833.motion(187310251, 12.60156250, 67.19921875) +[2618617.530] {Default Queue} wl_pointer#1865.motion(187310251, 12.60156250, 67.19921875) +[2618617.559] {Default Queue} wl_pointer#1897.motion(187310251, 12.60156250, 67.19921875) +[2618617.567] {Default Queue} wl_pointer#1929.motion(187310251, 12.60156250, 67.19921875) +[2618617.572] {Default Queue} wl_pointer#1961.motion(187310251, 12.60156250, 67.19921875) +[2618617.577] {Default Queue} wl_pointer#1993.motion(187310251, 12.60156250, 67.19921875) +[2618617.581] {Default Queue} wl_pointer#2025.motion(187310251, 12.60156250, 67.19921875) +[2618617.586] {Default Queue} wl_pointer#2057.motion(187310251, 12.60156250, 67.19921875) +[2618617.593] {Default Queue} wl_pointer#2089.motion(187310251, 12.60156250, 67.19921875) +[2618617.599] {Default Queue} wl_pointer#2121.motion(187310251, 12.60156250, 67.19921875) +[2618617.611] {Default Queue} wl_pointer#2153.motion(187310251, 12.60156250, 67.19921875) +[2618617.618] {Default Queue} wl_pointer#2185.motion(187310251, 12.60156250, 67.19921875) +[2618617.624] {Default Queue} wl_pointer#2217.motion(187310251, 12.60156250, 67.19921875) +[2618617.631] {Default Queue} wl_pointer#2249.motion(187310251, 12.60156250, 67.19921875) +[2618617.638] {Default Queue} wl_pointer#2281.motion(187310251, 12.60156250, 67.19921875) +[2618617.644] {Default Queue} wl_pointer#2313.motion(187310251, 12.60156250, 67.19921875) +[2618617.651] {Default Queue} wl_pointer#2345.motion(187310251, 12.60156250, 67.19921875) +[2618617.657] {Default Queue} wl_pointer#2377.motion(187310251, 12.60156250, 67.19921875) +[2618617.661] {Default Queue} wl_pointer#2409.motion(187310251, 12.60156250, 67.19921875) +[2618617.666] {Default Queue} wl_pointer#2441.motion(187310251, 12.60156250, 67.19921875) +[2618617.670] {Default Queue} wl_pointer#2473.motion(187310251, 12.60156250, 67.19921875) +[2618617.674] {Default Queue} wl_pointer#2498.motion(187310251, 12.60156250, 67.19921875) +[2618617.688] {Default Queue} -> wl_buffer#93.destroy() +[2618617.693] {Default Queue} -> wl_buffer#94.destroy() +[2618617.698] {Default Queue} -> wl_shm_pool#91.destroy() +[2618617.702] {Default Queue} -> wl_shm_pool#92.destroy() +[2618617.707] {Default Queue} -> wl_surface#3683.destroy() +[2618617.752] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3454, fd 581, 640) +[2618617.759] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3517, fd 582, 640) +[2618617.764] {Default Queue} -> wl_shm_pool#3454.create_buffer(new id wl_buffer#3518, 0, 10, 16, 40, 0) +[2618617.768] {Default Queue} -> wl_shm_pool#3517.create_buffer(new id wl_buffer#3451, 0, 10, 16, 40, 0) +[2618617.776] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3452) +[2618617.781] {Default Queue} -> wl_surface#3452.attach(wl_buffer#3518, 0, 0) +[2618617.789] {Default Queue} -> wl_surface#3452.commit() +[2618617.798] {Default Queue} -> wl_surface#3452.attach(wl_buffer#3518, 0, 0) +[2618617.802] {Default Queue} -> wl_surface#3452.commit() +[2618617.807] {Default Queue} wl_pointer#2537.motion(187310251, 12.60156250, 67.19921875) +[2618617.811] {Default Queue} wl_pointer#2569.motion(187310251, 12.60156250, 67.19921875) +[2618617.816] {Default Queue} wl_pointer#2601.motion(187310251, 12.60156250, 67.19921875) +[2618617.820] {Default Queue} wl_pointer#2633.motion(187310251, 12.60156250, 67.19921875) +[2618617.825] {Default Queue} wl_pointer#2665.motion(187310251, 12.60156250, 67.19921875) +[2618617.829] {Default Queue} wl_pointer#2697.motion(187310251, 12.60156250, 67.19921875) +[2618617.834] {Default Queue} wl_pointer#2729.motion(187310251, 12.60156250, 67.19921875) +[2618617.838] {Default Queue} wl_pointer#2761.motion(187310251, 12.60156250, 67.19921875) +[2618617.842] {Default Queue} wl_pointer#2793.motion(187310251, 12.60156250, 67.19921875) +[2618617.846] {Default Queue} wl_pointer#2825.motion(187310251, 12.60156250, 67.19921875) +[2618617.851] {Default Queue} wl_pointer#2857.motion(187310251, 12.60156250, 67.19921875) +[2618617.856] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) +[2618617.861] {Default Queue} -> wl_surface#1191.commit() +[2618618.935] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) +[2618618.940] {Default Queue} -> wl_surface#1191.commit() +[2618618.947] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) +[2618618.951] {Default Queue} -> wl_surface#1191.commit() +[2618618.957] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) +[2618618.961] {Default Queue} -> wl_surface#1223.commit() +[2618620.023] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) +[2618620.030] {Default Queue} -> wl_surface#1223.commit() +[2618620.040] {Default Queue} -> wl_region#1247.subtract(0, 0, 19, 48) +[2618620.045] {Default Queue} -> wl_region#1247.add(-20, -49, 19, 48) +[2618620.050] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618620.054] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618620.063] {Default Queue} -> wl_region#1247.subtract(0, 0, 19, 48) +[2618620.068] {Default Queue} -> wl_region#1247.add(-20, -49, 19, 48) +[2618620.072] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618620.076] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618620.081] {Default Queue} -> wl_region#1247.subtract(0, 0, 19, 48) +[2618620.085] {Default Queue} -> wl_region#1247.add(-20, -49, 19, 48) +[2618620.089] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618620.093] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618620.098] {Default Queue} -> wl_region#1247.subtract(0, 0, 19, 48) +[2618620.102] {Default Queue} -> wl_region#1247.add(-20, -49, 19, 48) +[2618620.107] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618620.111] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618620.115] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) +[2618620.119] {Default Queue} -> wl_surface#1223.commit() +[2618620.123] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) +[2618620.128] {Default Queue} -> wl_surface#1223.commit() +[2618620.133] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) +[2618620.138] {Default Queue} -> wl_surface#1223.commit() +[2618620.143] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) +[2618620.148] {Default Queue} -> wl_surface#1063.commit() +[2618621.154] {Display Queue} wl_display#1.delete_id(3671) +[2618621.160] {Display Queue} wl_display#1.delete_id(3681) +[2618621.164] {Display Queue} wl_display#1.delete_id(3684) +[2618621.168] {Display Queue} wl_display#1.delete_id(3679) +[2618621.172] {Display Queue} wl_display#1.delete_id(3682) +[2618621.176] {Display Queue} wl_display#1.delete_id(3483) +[2618621.180] {Display Queue} wl_display#1.delete_id(3516) +[2618621.184] {Display Queue} wl_display#1.delete_id(3515) +[2618621.195] {Display Queue} wl_display#1.delete_id(3486) +[2618621.202] {Display Queue} wl_display#1.delete_id(3485) +[2618621.206] {Display Queue} wl_display#1.delete_id(3292) +[2618621.210] {Display Queue} wl_display#1.delete_id(3293) +[2618621.214] {Display Queue} wl_display#1.delete_id(3484) +[2618621.218] {Display Queue} wl_display#1.delete_id(3291) +[2618621.222] {Display Queue} wl_display#1.delete_id(3294) +[2618621.226] {Default Queue} wl_pointer#2889.motion(187310251, 12.60156250, 67.19921875) +[2618621.230] {Default Queue} wl_pointer#2921.motion(187310251, 12.60156250, 67.19921875) +[2618621.235] {Default Queue} wl_pointer#2953.motion(187310251, 12.60156250, 67.19921875) +[2618621.239] {Default Queue} wl_pointer#2985.motion(187310251, 12.60156250, 67.19921875) +[2618621.243] {Default Queue} wl_pointer#3017.motion(187310251, 12.60156250, 67.19921875) +[2618621.248] {Default Queue} wl_pointer#3049.motion(187310251, 12.60156250, 67.19921875) +[2618621.252] {Default Queue} wl_pointer#3081.motion(187310251, 12.60156250, 67.19921875) +[2618621.256] {Default Queue} wl_pointer#3113.motion(187310251, 12.60156250, 67.19921875) +[2618621.261] {Default Queue} wl_pointer#3145.motion(187310251, 12.60156250, 67.19921875) +[2618621.265] {Default Queue} wl_pointer#3177.motion(187310251, 12.60156250, 67.19921875) +[2618621.269] {Default Queue} wl_pointer#3209.motion(187310251, 12.60156250, 67.19921875) +[2618621.274] {Default Queue} wl_pointer#3241.motion(187310251, 12.60156250, 67.19921875) +[2618621.278] {Default Queue} wl_pointer#3273.motion(187310251, 12.60156250, 67.19921875) +[2618621.283] {Default Queue} wl_pointer#3305.motion(187310251, 12.60156250, 67.19921875) +[2618621.287] {Default Queue} wl_pointer#3337.motion(187310251, 12.60156250, 67.19921875) +[2618621.291] {Default Queue} wl_pointer#3369.motion(187310251, 12.60156250, 67.19921875) +[2618621.295] {Default Queue} wl_pointer#3401.motion(187310251, 12.60156250, 67.19921875) +[2618621.300] {Default Queue} wl_pointer#3433.motion(187310251, 12.60156250, 67.19921875) +[2618621.304] {Default Queue} wl_pointer#3465.motion(187310251, 12.60156250, 67.19921875) +[2618621.309] {Default Queue} wl_pointer#3497.motion(187310251, 12.60156250, 67.19921875) +[2618621.313] {Default Queue} wl_pointer#3529.motion(187310251, 12.60156250, 67.19921875) +[2618621.317] {Default Queue} wl_pointer#3561.motion(187310251, 12.60156250, 67.19921875) +[2618621.321] {Default Queue} wl_pointer#3593.motion(187310251, 12.60156250, 67.19921875) +[2618621.326] {Default Queue} wl_pointer#3625.motion(187310251, 12.60156250, 67.19921875) +[2618621.330] {Default Queue} wl_pointer#3657.motion(187310251, 12.60156250, 67.19921875) +[2618621.334] {Default Queue} wl_pointer#3695.motion(187310251, 12.60156250, 67.19921875) +[2618621.342] {Default Queue} -> wl_region#1087.subtract(0, 0, 19, 48) +[2618621.346] {Default Queue} -> wl_region#1087.add(-20, -49, 19, 48) +[2618621.351] {Default Queue} -> wl_surface#1063.set_opaque_region(wl_region#1088) +[2618621.355] {Default Queue} -> wl_surface#1063.set_input_region(wl_region#1087) +[2618621.360] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) +[2618621.364] {Default Queue} -> wl_surface#1063.commit() +[2618621.368] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) +[2618621.372] {Default Queue} -> wl_surface#1063.commit() +[2618621.396] {Default Queue} wl_pointer#24.motion(187310256, 13.80078125, 66.00000000) +[2618621.401] {Default Queue} wl_pointer#81.motion(187310256, 13.80078125, 66.00000000) +[2618621.407] {Default Queue} wl_pointer#105.motion(187310256, 13.80078125, 66.00000000) +[2618621.411] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618621.416] {Default Queue} wl_pointer#137.motion(187310256, 13.80078125, 66.00000000) +[2618621.420] {Default Queue} wl_pointer#169.motion(187310256, 13.80078125, 66.00000000) +[2618621.425] {Default Queue} wl_pointer#201.motion(187310256, 13.80078125, 66.00000000) +[2618621.429] {Default Queue} wl_pointer#233.motion(187310256, 13.80078125, 66.00000000) +[2618621.436] {Default Queue} wl_pointer#265.motion(187310256, 13.80078125, 66.00000000) +[2618621.442] {Default Queue} wl_pointer#297.motion(187310256, 13.80078125, 66.00000000) +[2618621.446] {Default Queue} wl_pointer#329.motion(187310256, 13.80078125, 66.00000000) +[2618621.451] {Default Queue} wl_pointer#361.motion(187310256, 13.80078125, 66.00000000) +[2618621.455] {Default Queue} wl_pointer#393.motion(187310256, 13.80078125, 66.00000000) +[2618621.459] {Default Queue} wl_pointer#425.motion(187310256, 13.80078125, 66.00000000) +[2618621.464] {Default Queue} wl_pointer#457.motion(187310256, 13.80078125, 66.00000000) +[2618621.468] {Default Queue} wl_pointer#489.motion(187310256, 13.80078125, 66.00000000) +[2618621.472] {Default Queue} wl_pointer#521.motion(187310256, 13.80078125, 66.00000000) +[2618621.476] {Default Queue} wl_pointer#553.motion(187310256, 13.80078125, 66.00000000) +[2618621.481] {Default Queue} wl_pointer#585.motion(187310256, 13.80078125, 66.00000000) +[2618621.485] {Default Queue} wl_pointer#617.motion(187310256, 13.80078125, 66.00000000) +[2618621.489] {Default Queue} wl_pointer#649.motion(187310256, 13.80078125, 66.00000000) +[2618621.493] {Default Queue} wl_pointer#681.motion(187310256, 13.80078125, 66.00000000) +[2618621.498] {Default Queue} wl_pointer#713.motion(187310256, 13.80078125, 66.00000000) +[2618621.502] {Default Queue} wl_pointer#745.motion(187310256, 13.80078125, 66.00000000) +[2618621.506] {Default Queue} wl_pointer#777.motion(187310256, 13.80078125, 66.00000000) +[2618621.510] {Default Queue} wl_pointer#809.motion(187310256, 13.80078125, 66.00000000) +[2618621.515] {Default Queue} wl_pointer#841.motion(187310256, 13.80078125, 66.00000000) +[2618621.519] {Default Queue} wl_pointer#873.motion(187310256, 13.80078125, 66.00000000) +[2618621.523] {Default Queue} wl_pointer#905.motion(187310256, 13.80078125, 66.00000000) +[2618621.527] {Default Queue} wl_pointer#937.motion(187310256, 13.80078125, 66.00000000) +[2618621.532] {Default Queue} wl_pointer#969.motion(187310256, 13.80078125, 66.00000000) +[2618621.536] {Default Queue} wl_pointer#1001.motion(187310256, 13.80078125, 66.00000000) +[2618621.540] {Default Queue} wl_pointer#1033.motion(187310256, 13.80078125, 66.00000000) +[2618621.544] {Default Queue} wl_pointer#1065.motion(187310256, 13.80078125, 66.00000000) +[2618621.549] {Default Queue} wl_pointer#1097.motion(187310256, 13.80078125, 66.00000000) +[2618621.553] {Default Queue} wl_pointer#1129.motion(187310256, 13.80078125, 66.00000000) +[2618621.557] {Default Queue} wl_pointer#1161.motion(187310256, 13.80078125, 66.00000000) +[2618621.561] {Default Queue} wl_pointer#1193.motion(187310256, 13.80078125, 66.00000000) +[2618621.566] {Default Queue} wl_pointer#1225.motion(187310256, 13.80078125, 66.00000000) +[2618621.570] {Default Queue} wl_pointer#1257.motion(187310256, 13.80078125, 66.00000000) +[2618621.574] {Default Queue} wl_pointer#1289.motion(187310256, 13.80078125, 66.00000000) +[2618621.578] {Default Queue} wl_pointer#1321.motion(187310256, 13.80078125, 66.00000000) +[2618621.583] {Default Queue} wl_pointer#1353.motion(187310256, 13.80078125, 66.00000000) +[2618621.587] {Default Queue} wl_pointer#1385.motion(187310256, 13.80078125, 66.00000000) +[2618621.591] {Default Queue} wl_pointer#1417.motion(187310256, 13.80078125, 66.00000000) +[2618621.596] {Default Queue} wl_pointer#1449.motion(187310256, 13.80078125, 66.00000000) +[2618621.600] {Default Queue} wl_pointer#1481.motion(187310256, 13.80078125, 66.00000000) +[2618621.604] {Default Queue} wl_pointer#1513.motion(187310256, 13.80078125, 66.00000000) +[2618621.608] {Default Queue} wl_pointer#1545.motion(187310256, 13.80078125, 66.00000000) +[2618621.613] {Default Queue} wl_pointer#1577.motion(187310256, 13.80078125, 66.00000000) +[2618621.617] {Default Queue} wl_pointer#1609.motion(187310256, 13.80078125, 66.00000000) +[2618621.621] {Default Queue} wl_pointer#1641.motion(187310256, 13.80078125, 66.00000000) +[2618621.626] {Default Queue} wl_pointer#1673.motion(187310256, 13.80078125, 66.00000000) +[2618621.630] {Default Queue} wl_pointer#1705.motion(187310256, 13.80078125, 66.00000000) +[2618621.638] {Default Queue} wl_pointer#1737.motion(187310256, 13.80078125, 66.00000000) +[2618621.643] {Default Queue} wl_pointer#1762.motion(187310256, 13.80078125, 66.00000000) +[2618621.648] {Default Queue} wl_pointer#1801.motion(187310256, 13.80078125, 66.00000000) +[2618621.654] {Default Queue} wl_pointer#1833.motion(187310256, 13.80078125, 66.00000000) +[2618621.661] {Default Queue} wl_pointer#1865.motion(187310256, 13.80078125, 66.00000000) +[2618621.667] {Default Queue} wl_pointer#1897.motion(187310256, 13.80078125, 66.00000000) +[2618621.674] {Default Queue} wl_pointer#1929.motion(187310256, 13.80078125, 66.00000000) +[2618621.681] {Default Queue} wl_pointer#1961.motion(187310256, 13.80078125, 66.00000000) +[2618621.688] {Default Queue} wl_pointer#1993.motion(187310256, 13.80078125, 66.00000000) +[2618621.694] {Default Queue} wl_pointer#2025.motion(187310256, 13.80078125, 66.00000000) +[2618621.701] {Default Queue} wl_pointer#2057.motion(187310256, 13.80078125, 66.00000000) +[2618621.706] {Default Queue} wl_pointer#2089.motion(187310256, 13.80078125, 66.00000000) +[2618621.711] {Default Queue} wl_pointer#2121.motion(187310256, 13.80078125, 66.00000000) +[2618621.716] {Default Queue} wl_pointer#2153.motion(187310256, 13.80078125, 66.00000000) +[2618621.720] {Default Queue} wl_pointer#2185.motion(187310256, 13.80078125, 66.00000000) +[2618621.724] {Default Queue} wl_pointer#2217.motion(187310256, 13.80078125, 66.00000000) +[2618621.728] {Default Queue} wl_pointer#2249.motion(187310256, 13.80078125, 66.00000000) +[2618621.733] {Default Queue} wl_pointer#2281.motion(187310256, 13.80078125, 66.00000000) +[2618621.737] {Default Queue} wl_pointer#2313.motion(187310256, 13.80078125, 66.00000000) +[2618621.742] {Default Queue} wl_pointer#2345.motion(187310256, 13.80078125, 66.00000000) +[2618621.746] {Default Queue} wl_pointer#2377.motion(187310256, 13.80078125, 66.00000000) +[2618621.750] {Default Queue} wl_pointer#2409.motion(187310256, 13.80078125, 66.00000000) +[2618621.755] {Default Queue} wl_pointer#2441.motion(187310256, 13.80078125, 66.00000000) +[2618621.759] {Default Queue} wl_pointer#2473.motion(187310256, 13.80078125, 66.00000000) +[2618621.763] {Default Queue} wl_pointer#2498.motion(187310256, 13.80078125, 66.00000000) +[2618621.775] {Default Queue} -> wl_buffer#3518.destroy() +[2618621.780] {Default Queue} -> wl_buffer#3451.destroy() +[2618621.784] {Default Queue} -> wl_shm_pool#3454.destroy() +[2618621.788] {Default Queue} -> wl_shm_pool#3517.destroy() +[2618621.793] {Default Queue} -> wl_surface#3452.destroy() +[2618621.838] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3294, fd 575, 640) +[2618621.845] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 578, 640) +[2618621.850] {Default Queue} -> wl_shm_pool#3294.create_buffer(new id wl_buffer#3484, 0, 10, 16, 40, 0) +[2618621.855] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) +[2618621.863] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3292) +[2618621.867] {Default Queue} -> wl_surface#3292.attach(wl_buffer#3484, 0, 0) +[2618621.880] {Default Queue} -> wl_surface#3292.commit() +[2618621.886] {Default Queue} -> wl_surface#3292.attach(wl_buffer#3484, 0, 0) +[2618621.890] {Default Queue} -> wl_surface#3292.commit() +[2618621.894] {Default Queue} wl_pointer#2537.motion(187310256, 13.80078125, 66.00000000) +[2618621.899] {Default Queue} wl_pointer#2569.motion(187310256, 13.80078125, 66.00000000) +[2618621.904] {Default Queue} wl_pointer#2601.motion(187310256, 13.80078125, 66.00000000) +[2618621.908] {Default Queue} wl_pointer#2633.motion(187310256, 13.80078125, 66.00000000) +[2618621.912] {Default Queue} wl_pointer#2665.motion(187310256, 13.80078125, 66.00000000) +[2618621.917] {Default Queue} wl_pointer#2697.motion(187310256, 13.80078125, 66.00000000) +[2618621.921] {Default Queue} wl_pointer#2729.motion(187310256, 13.80078125, 66.00000000) +[2618621.925] {Default Queue} wl_pointer#2761.motion(187310256, 13.80078125, 66.00000000) +[2618621.930] {Default Queue} wl_pointer#2793.motion(187310256, 13.80078125, 66.00000000) +[2618621.937] {Default Queue} wl_pointer#2825.motion(187310256, 13.80078125, 66.00000000) +[2618621.944] {Default Queue} wl_pointer#2857.motion(187310256, 13.80078125, 66.00000000) +[2618621.949] {Default Queue} wl_pointer#2889.motion(187310256, 13.80078125, 66.00000000) +[2618621.953] {Default Queue} wl_pointer#2921.motion(187310256, 13.80078125, 66.00000000) +[2618621.957] {Default Queue} wl_pointer#2953.motion(187310256, 13.80078125, 66.00000000) +[2618621.962] {Default Queue} wl_pointer#2985.motion(187310256, 13.80078125, 66.00000000) +[2618621.966] {Default Queue} wl_pointer#3017.motion(187310256, 13.80078125, 66.00000000) +[2618621.970] {Default Queue} wl_pointer#3049.motion(187310256, 13.80078125, 66.00000000) +[2618621.974] {Default Queue} wl_pointer#3081.motion(187310256, 13.80078125, 66.00000000) +[2618621.979] {Default Queue} wl_pointer#3113.motion(187310256, 13.80078125, 66.00000000) +[2618621.983] {Default Queue} wl_pointer#3145.motion(187310256, 13.80078125, 66.00000000) +[2618621.987] {Default Queue} wl_pointer#3177.motion(187310256, 13.80078125, 66.00000000) +[2618621.991] {Default Queue} wl_pointer#3209.motion(187310256, 13.80078125, 66.00000000) +[2618621.996] {Default Queue} wl_pointer#3241.motion(187310256, 13.80078125, 66.00000000) +[2618622.000] {Default Queue} wl_pointer#3273.motion(187310256, 13.80078125, 66.00000000) +[2618622.005] {Default Queue} wl_pointer#3305.motion(187310256, 13.80078125, 66.00000000) +[2618622.009] {Default Queue} wl_pointer#3337.motion(187310256, 13.80078125, 66.00000000) +[2618622.013] {Default Queue} wl_pointer#3369.motion(187310256, 13.80078125, 66.00000000) +[2618622.017] {Default Queue} wl_pointer#3401.motion(187310256, 13.80078125, 66.00000000) +[2618622.022] {Default Queue} wl_pointer#3433.motion(187310256, 13.80078125, 66.00000000) +[2618622.026] {Default Queue} wl_pointer#3465.motion(187310256, 13.80078125, 66.00000000) +[2618622.031] {Default Queue} wl_pointer#3497.motion(187310256, 13.80078125, 66.00000000) +[2618622.035] {Default Queue} wl_pointer#3529.motion(187310256, 13.80078125, 66.00000000) +[2618622.039] {Default Queue} wl_pointer#3561.motion(187310256, 13.80078125, 66.00000000) +[2618622.044] {Default Queue} wl_pointer#3593.motion(187310256, 13.80078125, 66.00000000) +[2618622.048] {Default Queue} wl_pointer#3625.motion(187310256, 13.80078125, 66.00000000) +[2618622.052] {Default Queue} wl_pointer#3657.motion(187310256, 13.80078125, 66.00000000) +[2618622.057] {Default Queue} wl_pointer#3695.motion(187310256, 13.80078125, 66.00000000) +[2618622.061] {Default Queue} wl_pointer#24.motion(187310256, 14.60156250, 64.80078125) +[2618622.065] {Default Queue} wl_pointer#81.motion(187310256, 14.60156250, 64.80078125) +[2618622.070] {Default Queue} wl_pointer#105.motion(187310256, 14.60156250, 64.80078125) +[2618622.075] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618622.079] {Default Queue} wl_pointer#137.motion(187310256, 14.60156250, 64.80078125) +[2618622.084] {Default Queue} wl_pointer#169.motion(187310256, 14.60156250, 64.80078125) +[2618622.088] {Default Queue} wl_pointer#201.motion(187310256, 14.60156250, 64.80078125) +[2618622.092] {Default Queue} wl_pointer#233.motion(187310256, 14.60156250, 64.80078125) +[2618622.096] {Default Queue} wl_pointer#265.motion(187310256, 14.60156250, 64.80078125) +[2618622.101] {Default Queue} wl_pointer#297.motion(187310256, 14.60156250, 64.80078125) +[2618622.105] {Default Queue} wl_pointer#329.motion(187310256, 14.60156250, 64.80078125) +[2618622.109] {Default Queue} wl_pointer#361.motion(187310256, 14.60156250, 64.80078125) +[2618622.113] {Default Queue} wl_pointer#393.motion(187310256, 14.60156250, 64.80078125) +[2618622.118] {Default Queue} wl_pointer#425.motion(187310256, 14.60156250, 64.80078125) +[2618622.122] {Default Queue} wl_pointer#457.motion(187310256, 14.60156250, 64.80078125) +[2618622.126] {Default Queue} wl_pointer#489.motion(187310256, 14.60156250, 64.80078125) +[2618622.130] {Default Queue} wl_pointer#521.motion(187310256, 14.60156250, 64.80078125) +[2618622.134] {Default Queue} wl_pointer#553.motion(187310256, 14.60156250, 64.80078125) +[2618622.144] {Default Queue} wl_pointer#585.motion(187310256, 14.60156250, 64.80078125) +[2618622.150] {Default Queue} wl_pointer#617.motion(187310256, 14.60156250, 64.80078125) +[2618622.154] {Default Queue} wl_pointer#649.motion(187310256, 14.60156250, 64.80078125) +[2618622.158] {Default Queue} wl_pointer#681.motion(187310256, 14.60156250, 64.80078125) +[2618622.162] {Default Queue} wl_pointer#713.motion(187310256, 14.60156250, 64.80078125) +[2618622.167] {Default Queue} wl_pointer#745.motion(187310256, 14.60156250, 64.80078125) +[2618622.171] {Default Queue} wl_pointer#777.motion(187310256, 14.60156250, 64.80078125) +[2618622.175] {Default Queue} wl_pointer#809.motion(187310256, 14.60156250, 64.80078125) +[2618622.179] {Default Queue} wl_pointer#841.motion(187310256, 14.60156250, 64.80078125) +[2618622.184] {Default Queue} wl_pointer#873.motion(187310256, 14.60156250, 64.80078125) +[2618622.188] {Default Queue} wl_pointer#905.motion(187310256, 14.60156250, 64.80078125) +[2618622.192] {Default Queue} wl_pointer#937.motion(187310256, 14.60156250, 64.80078125) +[2618622.196] {Default Queue} wl_pointer#969.motion(187310256, 14.60156250, 64.80078125) +[2618622.201] {Default Queue} wl_pointer#1001.motion(187310256, 14.60156250, 64.80078125) +[2618622.205] {Default Queue} wl_pointer#1033.motion(187310256, 14.60156250, 64.80078125) +[2618622.209] {Default Queue} wl_pointer#1065.motion(187310256, 14.60156250, 64.80078125) +[2618622.214] {Default Queue} wl_pointer#1097.motion(187310256, 14.60156250, 64.80078125) +[2618622.218] {Default Queue} wl_pointer#1129.motion(187310256, 14.60156250, 64.80078125) +[2618622.222] {Default Queue} wl_pointer#1161.motion(187310256, 14.60156250, 64.80078125) +[2618622.230] {Default Queue} wl_pointer#1193.motion(187310256, 14.60156250, 64.80078125) +[2618622.234] {Default Queue} wl_pointer#1225.motion(187310256, 14.60156250, 64.80078125) +[2618622.239] {Default Queue} wl_pointer#1257.motion(187310256, 14.60156250, 64.80078125) +[2618622.243] {Default Queue} wl_pointer#1289.motion(187310256, 14.60156250, 64.80078125) +[2618622.247] {Default Queue} wl_pointer#1321.motion(187310256, 14.60156250, 64.80078125) +[2618622.251] {Default Queue} wl_pointer#1353.motion(187310256, 14.60156250, 64.80078125) +[2618622.256] {Default Queue} wl_pointer#1385.motion(187310256, 14.60156250, 64.80078125) +[2618622.260] {Default Queue} wl_pointer#1417.motion(187310256, 14.60156250, 64.80078125) +[2618622.264] {Default Queue} wl_pointer#1449.motion(187310256, 14.60156250, 64.80078125) +[2618622.268] {Default Queue} wl_pointer#1481.motion(187310256, 14.60156250, 64.80078125) +[2618622.273] {Default Queue} wl_pointer#1513.motion(187310256, 14.60156250, 64.80078125) +[2618622.277] {Default Queue} wl_pointer#1545.motion(187310256, 14.60156250, 64.80078125) +[2618622.281] {Default Queue} wl_pointer#1577.motion(187310256, 14.60156250, 64.80078125) +[2618622.285] {Default Queue} wl_pointer#1609.motion(187310256, 14.60156250, 64.80078125) +[2618622.290] {Default Queue} wl_pointer#1641.motion(187310256, 14.60156250, 64.80078125) +[2618622.294] {Default Queue} wl_pointer#1673.motion(187310256, 14.60156250, 64.80078125) +[2618622.298] {Default Queue} wl_pointer#1705.motion(187310256, 14.60156250, 64.80078125) +[2618622.302] {Default Queue} wl_pointer#1737.motion(187310256, 14.60156250, 64.80078125) +[2618622.307] {Default Queue} wl_pointer#1762.motion(187310256, 14.60156250, 64.80078125) +[2618622.311] {Default Queue} wl_pointer#1801.motion(187310256, 14.60156250, 64.80078125) +[2618622.315] {Default Queue} wl_pointer#1833.motion(187310256, 14.60156250, 64.80078125) +[2618622.319] {Default Queue} wl_pointer#1865.motion(187310256, 14.60156250, 64.80078125) +[2618622.323] {Default Queue} wl_pointer#1897.motion(187310256, 14.60156250, 64.80078125) +[2618622.328] {Default Queue} wl_pointer#1929.motion(187310256, 14.60156250, 64.80078125) +[2618622.332] {Default Queue} wl_pointer#1961.motion(187310256, 14.60156250, 64.80078125) +[2618622.336] {Default Queue} wl_pointer#1993.motion(187310256, 14.60156250, 64.80078125) +[2618622.343] {Default Queue} wl_pointer#2025.motion(187310256, 14.60156250, 64.80078125) +[2618622.349] {Default Queue} wl_pointer#2057.motion(187310256, 14.60156250, 64.80078125) +[2618622.353] {Default Queue} wl_pointer#2089.motion(187310256, 14.60156250, 64.80078125) +[2618622.358] {Default Queue} wl_pointer#2121.motion(187310256, 14.60156250, 64.80078125) +[2618622.362] {Default Queue} wl_pointer#2153.motion(187310256, 14.60156250, 64.80078125) +[2618622.366] {Default Queue} wl_pointer#2185.motion(187310256, 14.60156250, 64.80078125) +[2618622.370] {Default Queue} wl_pointer#2217.motion(187310256, 14.60156250, 64.80078125) +[2618622.375] {Default Queue} wl_pointer#2249.motion(187310256, 14.60156250, 64.80078125) +[2618622.379] {Default Queue} wl_pointer#2281.motion(187310256, 14.60156250, 64.80078125) +[2618622.383] {Default Queue} wl_pointer#2313.motion(187310256, 14.60156250, 64.80078125) +[2618622.388] {Default Queue} wl_pointer#2345.motion(187310256, 14.60156250, 64.80078125) +[2618622.392] {Default Queue} wl_pointer#2377.motion(187310256, 14.60156250, 64.80078125) +[2618622.396] {Default Queue} wl_pointer#2409.motion(187310256, 14.60156250, 64.80078125) +[2618622.400] {Default Queue} wl_pointer#2441.motion(187310256, 14.60156250, 64.80078125) +[2618622.405] {Default Queue} wl_pointer#2473.motion(187310256, 14.60156250, 64.80078125) +[2618622.409] {Default Queue} wl_pointer#2498.motion(187310256, 14.60156250, 64.80078125) +[2618622.419] {Default Queue} -> wl_buffer#3484.destroy() +[2618622.423] {Default Queue} -> wl_buffer#3293.destroy() +[2618622.427] {Default Queue} -> wl_shm_pool#3294.destroy() +[2618622.431] {Default Queue} -> wl_shm_pool#3291.destroy() +[2618622.436] {Default Queue} -> wl_surface#3292.destroy() +[2618622.470] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3485, fd 581, 640) +[2618622.476] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3486, fd 582, 640) +[2618622.480] {Default Queue} -> wl_shm_pool#3485.create_buffer(new id wl_buffer#3515, 0, 10, 16, 40, 0) +[2618622.485] {Default Queue} -> wl_shm_pool#3486.create_buffer(new id wl_buffer#3516, 0, 10, 16, 40, 0) +[2618622.492] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3483) +[2618622.496] {Default Queue} -> wl_surface#3483.attach(wl_buffer#3515, 0, 0) +[2618622.500] {Default Queue} -> wl_surface#3483.commit() +[2618622.505] {Default Queue} -> wl_surface#3483.attach(wl_buffer#3515, 0, 0) +[2618622.510] {Default Queue} -> wl_surface#3483.commit() +[2618622.514] {Default Queue} wl_pointer#2537.motion(187310256, 14.60156250, 64.80078125) +[2618622.518] {Default Queue} wl_pointer#2569.motion(187310256, 14.60156250, 64.80078125) +[2618622.522] {Default Queue} wl_pointer#2601.motion(187310256, 14.60156250, 64.80078125) +[2618622.527] {Default Queue} wl_pointer#2633.motion(187310256, 14.60156250, 64.80078125) +[2618622.531] {Default Queue} wl_pointer#2665.motion(187310256, 14.60156250, 64.80078125) +[2618622.535] {Default Queue} wl_pointer#2697.motion(187310256, 14.60156250, 64.80078125) +[2618622.540] {Default Queue} wl_pointer#2729.motion(187310256, 14.60156250, 64.80078125) +[2618622.544] {Default Queue} wl_pointer#2761.motion(187310256, 14.60156250, 64.80078125) +[2618622.552] {Default Queue} wl_pointer#2793.motion(187310256, 14.60156250, 64.80078125) +[2618622.556] {Default Queue} wl_pointer#2825.motion(187310256, 14.60156250, 64.80078125) +[2618622.560] {Default Queue} wl_pointer#2857.motion(187310256, 14.60156250, 64.80078125) +[2618622.565] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) +[2618622.569] {Default Queue} -> wl_surface#1063.commit() +[2618623.634] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) +[2618623.641] {Default Queue} -> wl_surface#1063.commit() +[2618623.647] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) +[2618623.651] {Default Queue} -> wl_surface#1063.commit() +[2618623.658] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) +[2618623.662] {Default Queue} -> wl_surface#1287.commit() +[2618624.725] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) +[2618624.736] {Default Queue} -> wl_surface#1287.commit() +[2618624.749] {Default Queue} -> wl_region#1311.subtract(0, 0, 19, 48) +[2618624.754] {Default Queue} -> wl_region#1311.add(-20, -49, 19, 48) +[2618624.758] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2618624.762] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2618624.887] {Default Queue} -> wl_region#1311.subtract(0, 0, 19, 48) +[2618624.893] {Default Queue} -> wl_region#1311.add(-20, -49, 19, 48) +[2618624.898] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2618624.902] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2618624.909] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618624.915] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618624.997] {Default Queue} -> wl_region#1311.subtract(0, 0, 19, 48) +[2618625.002] {Default Queue} -> wl_region#1311.add(-20, -49, 19, 48) +[2618625.006] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2618625.010] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2618625.015] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618625.020] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618625.025] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) +[2618625.029] {Default Queue} -> wl_surface#1287.commit() +[2618625.033] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) +[2618625.037] {Default Queue} -> wl_surface#1287.commit() +[2618625.044] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) +[2618625.048] {Default Queue} -> wl_surface#1287.commit() +[2618625.054] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) +[2618625.058] {Default Queue} -> wl_surface#1319.commit() +[2618626.121] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) +[2618626.133] {Default Queue} -> wl_surface#1319.commit() +[2618626.146] {Default Queue} -> wl_region#1343.subtract(0, 0, 19, 48) +[2618626.151] {Default Queue} -> wl_region#1343.add(-20, -49, 19, 48) +[2618626.155] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2618626.159] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2618626.263] {Default Queue} -> wl_region#1343.subtract(0, 0, 19, 48) +[2618626.269] {Default Queue} -> wl_region#1343.add(-20, -49, 19, 48) +[2618626.273] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2618626.277] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2618626.283] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618626.288] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618626.366] {Default Queue} -> wl_region#1343.subtract(0, 0, 19, 48) +[2618626.371] {Default Queue} -> wl_region#1343.add(-20, -49, 19, 48) +[2618626.375] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2618626.379] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2618626.384] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618626.389] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618626.394] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) +[2618626.398] {Default Queue} -> wl_surface#1319.commit() +[2618626.402] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) +[2618626.406] {Default Queue} -> wl_surface#1319.commit() +[2618626.428] {Display Queue} wl_display#1.delete_id(3674) +[2618626.434] {Display Queue} wl_display#1.delete_id(3678) +[2618626.438] {Display Queue} wl_display#1.delete_id(3677) +[2618626.442] {Display Queue} wl_display#1.delete_id(3676) +[2618626.446] {Display Queue} wl_display#1.delete_id(3675) +[2618626.450] {Display Queue} wl_display#1.delete_id(93) +[2618626.454] {Display Queue} wl_display#1.delete_id(94) +[2618626.458] {Display Queue} wl_display#1.delete_id(91) +[2618626.462] {Display Queue} wl_display#1.delete_id(92) +[2618626.466] {Display Queue} wl_display#1.delete_id(3683) +[2618626.470] {Default Queue} wl_pointer#2889.motion(187310256, 14.60156250, 64.80078125) +[2618626.479] {Default Queue} wl_pointer#2921.motion(187310256, 14.60156250, 64.80078125) +[2618626.487] {Default Queue} wl_pointer#2953.motion(187310256, 14.60156250, 64.80078125) +[2618626.491] {Default Queue} wl_pointer#2985.motion(187310256, 14.60156250, 64.80078125) +[2618626.495] {Default Queue} wl_pointer#3017.motion(187310256, 14.60156250, 64.80078125) +[2618626.500] {Default Queue} wl_pointer#3049.motion(187310256, 14.60156250, 64.80078125) +[2618626.504] {Default Queue} wl_pointer#3081.motion(187310256, 14.60156250, 64.80078125) +[2618626.508] {Default Queue} wl_pointer#3113.motion(187310256, 14.60156250, 64.80078125) +[2618626.512] {Default Queue} wl_pointer#3145.motion(187310256, 14.60156250, 64.80078125) +[2618626.517] {Default Queue} wl_pointer#3177.motion(187310256, 14.60156250, 64.80078125) +[2618626.521] {Default Queue} wl_pointer#3209.motion(187310256, 14.60156250, 64.80078125) +[2618626.525] {Default Queue} wl_pointer#3241.motion(187310256, 14.60156250, 64.80078125) +[2618626.530] {Default Queue} wl_pointer#3273.motion(187310256, 14.60156250, 64.80078125) +[2618626.534] {Default Queue} wl_pointer#3305.motion(187310256, 14.60156250, 64.80078125) +[2618626.538] {Default Queue} wl_pointer#3337.motion(187310256, 14.60156250, 64.80078125) +[2618626.543] {Default Queue} wl_pointer#3369.motion(187310256, 14.60156250, 64.80078125) +[2618626.547] {Default Queue} wl_pointer#3401.motion(187310256, 14.60156250, 64.80078125) +[2618626.551] {Default Queue} wl_pointer#3433.motion(187310256, 14.60156250, 64.80078125) +[2618626.556] {Default Queue} wl_pointer#3465.motion(187310256, 14.60156250, 64.80078125) +[2618626.560] {Default Queue} wl_pointer#3497.motion(187310256, 14.60156250, 64.80078125) +[2618626.564] {Default Queue} wl_pointer#3529.motion(187310256, 14.60156250, 64.80078125) +[2618626.569] {Default Queue} wl_pointer#3561.motion(187310256, 14.60156250, 64.80078125) +[2618626.573] {Default Queue} wl_pointer#3593.motion(187310256, 14.60156250, 64.80078125) +[2618626.577] {Default Queue} wl_pointer#3625.motion(187310256, 14.60156250, 64.80078125) +[2618626.581] {Default Queue} wl_pointer#3657.motion(187310256, 14.60156250, 64.80078125) +[2618626.585] {Default Queue} wl_pointer#3695.motion(187310256, 14.60156250, 64.80078125) +[2618626.590] {Default Queue} wl_pointer#24.motion(187310256, 15.80078125, 63.19921875) +[2618626.594] {Default Queue} wl_pointer#81.motion(187310256, 15.80078125, 63.19921875) +[2618626.599] {Default Queue} wl_pointer#105.motion(187310256, 15.80078125, 63.19921875) +[2618626.604] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618626.608] {Default Queue} wl_pointer#137.motion(187310256, 15.80078125, 63.19921875) +[2618626.612] {Default Queue} wl_pointer#169.motion(187310256, 15.80078125, 63.19921875) +[2618626.617] {Default Queue} wl_pointer#201.motion(187310256, 15.80078125, 63.19921875) +[2618626.621] {Default Queue} wl_pointer#233.motion(187310256, 15.80078125, 63.19921875) +[2618626.625] {Default Queue} wl_pointer#265.motion(187310256, 15.80078125, 63.19921875) +[2618626.629] {Default Queue} wl_pointer#297.motion(187310256, 15.80078125, 63.19921875) +[2618626.634] {Default Queue} wl_pointer#329.motion(187310256, 15.80078125, 63.19921875) +[2618626.638] {Default Queue} wl_pointer#361.motion(187310256, 15.80078125, 63.19921875) +[2618626.642] {Default Queue} wl_pointer#393.motion(187310256, 15.80078125, 63.19921875) +[2618626.646] {Default Queue} wl_pointer#425.motion(187310256, 15.80078125, 63.19921875) +[2618626.651] {Default Queue} wl_pointer#457.motion(187310256, 15.80078125, 63.19921875) +[2618626.655] {Default Queue} wl_pointer#489.motion(187310256, 15.80078125, 63.19921875) +[2618626.659] {Default Queue} wl_pointer#521.motion(187310256, 15.80078125, 63.19921875) +[2618626.663] {Default Queue} wl_pointer#553.motion(187310256, 15.80078125, 63.19921875) +[2618626.668] {Default Queue} wl_pointer#585.motion(187310256, 15.80078125, 63.19921875) +[2618626.672] {Default Queue} wl_pointer#617.motion(187310256, 15.80078125, 63.19921875) +[2618626.679] {Default Queue} wl_pointer#649.motion(187310256, 15.80078125, 63.19921875) +[2618626.685] {Default Queue} wl_pointer#681.motion(187310256, 15.80078125, 63.19921875) +[2618626.690] {Default Queue} wl_pointer#713.motion(187310256, 15.80078125, 63.19921875) +[2618626.694] {Default Queue} wl_pointer#745.motion(187310256, 15.80078125, 63.19921875) +[2618626.698] {Default Queue} wl_pointer#777.motion(187310256, 15.80078125, 63.19921875) +[2618626.702] {Default Queue} wl_pointer#809.motion(187310256, 15.80078125, 63.19921875) +[2618626.707] {Default Queue} wl_pointer#841.motion(187310256, 15.80078125, 63.19921875) +[2618626.711] {Default Queue} wl_pointer#873.motion(187310256, 15.80078125, 63.19921875) +[2618626.715] {Default Queue} wl_pointer#905.motion(187310256, 15.80078125, 63.19921875) +[2618626.720] {Default Queue} wl_pointer#937.motion(187310256, 15.80078125, 63.19921875) +[2618626.724] {Default Queue} wl_pointer#969.motion(187310256, 15.80078125, 63.19921875) +[2618626.728] {Default Queue} wl_pointer#1001.motion(187310256, 15.80078125, 63.19921875) +[2618626.732] {Default Queue} wl_pointer#1033.motion(187310256, 15.80078125, 63.19921875) +[2618626.737] {Default Queue} wl_pointer#1065.motion(187310256, 15.80078125, 63.19921875) +[2618626.741] {Default Queue} wl_pointer#1097.motion(187310256, 15.80078125, 63.19921875) +[2618626.745] {Default Queue} wl_pointer#1129.motion(187310256, 15.80078125, 63.19921875) +[2618626.749] {Default Queue} wl_pointer#1161.motion(187310256, 15.80078125, 63.19921875) +[2618626.754] {Default Queue} wl_pointer#1193.motion(187310256, 15.80078125, 63.19921875) +[2618626.758] {Default Queue} wl_pointer#1225.motion(187310256, 15.80078125, 63.19921875) +[2618626.762] {Default Queue} wl_pointer#1257.motion(187310256, 15.80078125, 63.19921875) +[2618626.767] {Default Queue} wl_pointer#1289.motion(187310256, 15.80078125, 63.19921875) +[2618626.771] {Default Queue} wl_pointer#1321.motion(187310256, 15.80078125, 63.19921875) +[2618626.775] {Default Queue} wl_pointer#1353.motion(187310256, 15.80078125, 63.19921875) +[2618626.779] {Default Queue} wl_pointer#1385.motion(187310256, 15.80078125, 63.19921875) +[2618626.784] {Default Queue} wl_pointer#1417.motion(187310256, 15.80078125, 63.19921875) +[2618626.788] {Default Queue} wl_pointer#1449.motion(187310256, 15.80078125, 63.19921875) +[2618626.792] {Default Queue} wl_pointer#1481.motion(187310256, 15.80078125, 63.19921875) +[2618626.796] {Default Queue} wl_pointer#1513.motion(187310256, 15.80078125, 63.19921875) +[2618626.801] {Default Queue} wl_pointer#1545.motion(187310256, 15.80078125, 63.19921875) +[2618626.805] {Default Queue} wl_pointer#1577.motion(187310256, 15.80078125, 63.19921875) +[2618626.809] {Default Queue} wl_pointer#1609.motion(187310256, 15.80078125, 63.19921875) +[2618626.814] {Default Queue} wl_pointer#1641.motion(187310256, 15.80078125, 63.19921875) +[2618626.818] {Default Queue} wl_pointer#1673.motion(187310256, 15.80078125, 63.19921875) +[2618626.822] {Default Queue} wl_pointer#1705.motion(187310256, 15.80078125, 63.19921875) +[2618626.826] {Default Queue} wl_pointer#1737.motion(187310256, 15.80078125, 63.19921875) +[2618626.831] {Default Queue} wl_pointer#1762.motion(187310256, 15.80078125, 63.19921875) +[2618626.835] {Default Queue} wl_pointer#1801.motion(187310256, 15.80078125, 63.19921875) +[2618626.839] {Default Queue} wl_pointer#1833.motion(187310256, 15.80078125, 63.19921875) +[2618626.843] {Default Queue} wl_pointer#1865.motion(187310256, 15.80078125, 63.19921875) +[2618626.848] {Default Queue} wl_pointer#1897.motion(187310256, 15.80078125, 63.19921875) +[2618626.852] {Default Queue} wl_pointer#1929.motion(187310256, 15.80078125, 63.19921875) +[2618626.856] {Default Queue} wl_pointer#1961.motion(187310256, 15.80078125, 63.19921875) +[2618626.865] {Default Queue} wl_pointer#1993.motion(187310256, 15.80078125, 63.19921875) +[2618626.869] {Default Queue} wl_pointer#2025.motion(187310256, 15.80078125, 63.19921875) +[2618626.873] {Default Queue} wl_pointer#2057.motion(187310256, 15.80078125, 63.19921875) +[2618626.878] {Default Queue} wl_pointer#2089.motion(187310256, 15.80078125, 63.19921875) +[2618626.885] {Default Queue} wl_pointer#2121.motion(187310256, 15.80078125, 63.19921875) +[2618626.891] {Default Queue} wl_pointer#2153.motion(187310256, 15.80078125, 63.19921875) +[2618626.895] {Default Queue} wl_pointer#2185.motion(187310256, 15.80078125, 63.19921875) +[2618626.899] {Default Queue} wl_pointer#2217.motion(187310256, 15.80078125, 63.19921875) +[2618626.904] {Default Queue} wl_pointer#2249.motion(187310256, 15.80078125, 63.19921875) +[2618626.908] {Default Queue} wl_pointer#2281.motion(187310256, 15.80078125, 63.19921875) +[2618626.912] {Default Queue} wl_pointer#2313.motion(187310256, 15.80078125, 63.19921875) +[2618626.917] {Default Queue} wl_pointer#2345.motion(187310256, 15.80078125, 63.19921875) +[2618626.921] {Default Queue} wl_pointer#2377.motion(187310256, 15.80078125, 63.19921875) +[2618626.925] {Default Queue} wl_pointer#2409.motion(187310256, 15.80078125, 63.19921875) +[2618626.930] {Default Queue} wl_pointer#2441.motion(187310256, 15.80078125, 63.19921875) +[2618626.934] {Default Queue} wl_pointer#2473.motion(187310256, 15.80078125, 63.19921875) +[2618626.938] {Default Queue} wl_pointer#2498.motion(187310256, 15.80078125, 63.19921875) +[2618626.950] {Default Queue} -> wl_buffer#3515.destroy() +[2618626.956] {Default Queue} -> wl_buffer#3516.destroy() +[2618626.960] {Default Queue} -> wl_shm_pool#3485.destroy() +[2618626.964] {Default Queue} -> wl_shm_pool#3486.destroy() +[2618626.969] {Default Queue} -> wl_surface#3483.destroy() +[2618627.010] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3683, fd 575, 640) +[2618627.017] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 578, 640) +[2618627.022] {Default Queue} -> wl_shm_pool#3683.create_buffer(new id wl_buffer#91, 0, 10, 16, 40, 0) +[2618627.026] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) +[2618627.034] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#93) +[2618627.038] {Default Queue} -> wl_surface#93.attach(wl_buffer#91, 0, 0) +[2618627.043] {Default Queue} -> wl_surface#93.commit() +[2618627.048] {Default Queue} -> wl_surface#93.attach(wl_buffer#91, 0, 0) +[2618627.052] {Default Queue} -> wl_surface#93.commit() +[2618627.056] {Default Queue} wl_pointer#2537.motion(187310256, 15.80078125, 63.19921875) +[2618627.061] {Default Queue} wl_pointer#2569.motion(187310256, 15.80078125, 63.19921875) +[2618627.065] {Default Queue} wl_pointer#2601.motion(187310256, 15.80078125, 63.19921875) +[2618627.070] {Default Queue} wl_pointer#2633.motion(187310256, 15.80078125, 63.19921875) +[2618627.074] {Default Queue} wl_pointer#2665.motion(187310256, 15.80078125, 63.19921875) +[2618627.078] {Default Queue} wl_pointer#2697.motion(187310256, 15.80078125, 63.19921875) +[2618627.083] {Default Queue} wl_pointer#2729.motion(187310256, 15.80078125, 63.19921875) +[2618627.087] {Default Queue} wl_pointer#2761.motion(187310256, 15.80078125, 63.19921875) +[2618627.091] {Default Queue} wl_pointer#2793.motion(187310256, 15.80078125, 63.19921875) +[2618627.095] {Default Queue} wl_pointer#2825.motion(187310256, 15.80078125, 63.19921875) +[2618627.100] {Default Queue} wl_pointer#2857.motion(187310256, 15.80078125, 63.19921875) +[2618627.104] {Default Queue} wl_pointer#2889.motion(187310256, 15.80078125, 63.19921875) +[2618627.108] {Default Queue} wl_pointer#2921.motion(187310256, 15.80078125, 63.19921875) +[2618627.113] {Default Queue} wl_pointer#2953.motion(187310256, 15.80078125, 63.19921875) +[2618627.117] {Default Queue} wl_pointer#2985.motion(187310256, 15.80078125, 63.19921875) +[2618627.121] {Default Queue} wl_pointer#3017.motion(187310256, 15.80078125, 63.19921875) +[2618627.126] {Default Queue} wl_pointer#3049.motion(187310256, 15.80078125, 63.19921875) +[2618627.130] {Default Queue} wl_pointer#3081.motion(187310256, 15.80078125, 63.19921875) +[2618627.134] {Default Queue} wl_pointer#3113.motion(187310256, 15.80078125, 63.19921875) +[2618627.138] {Default Queue} wl_pointer#3145.motion(187310256, 15.80078125, 63.19921875) +[2618627.143] {Default Queue} wl_pointer#3177.motion(187310256, 15.80078125, 63.19921875) +[2618627.152] {Default Queue} wl_pointer#3209.motion(187310256, 15.80078125, 63.19921875) +[2618627.158] {Default Queue} wl_pointer#3241.motion(187310256, 15.80078125, 63.19921875) +[2618627.162] {Default Queue} wl_pointer#3273.motion(187310256, 15.80078125, 63.19921875) +[2618627.167] {Default Queue} wl_pointer#3305.motion(187310256, 15.80078125, 63.19921875) +[2618627.171] {Default Queue} wl_pointer#3337.motion(187310256, 15.80078125, 63.19921875) +[2618627.175] {Default Queue} wl_pointer#3369.motion(187310256, 15.80078125, 63.19921875) +[2618627.179] {Default Queue} wl_pointer#3401.motion(187310256, 15.80078125, 63.19921875) +[2618627.184] {Default Queue} wl_pointer#3433.motion(187310256, 15.80078125, 63.19921875) +[2618627.188] {Default Queue} wl_pointer#3465.motion(187310256, 15.80078125, 63.19921875) +[2618627.193] {Default Queue} wl_pointer#3497.motion(187310256, 15.80078125, 63.19921875) +[2618627.197] {Default Queue} wl_pointer#3529.motion(187310256, 15.80078125, 63.19921875) +[2618627.201] {Default Queue} wl_pointer#3561.motion(187310256, 15.80078125, 63.19921875) +[2618627.205] {Default Queue} wl_pointer#3593.motion(187310256, 15.80078125, 63.19921875) +[2618627.210] {Default Queue} wl_pointer#3625.motion(187310256, 15.80078125, 63.19921875) +[2618627.214] {Default Queue} wl_pointer#3657.motion(187310256, 15.80078125, 63.19921875) +[2618627.218] {Default Queue} wl_pointer#3695.motion(187310256, 15.80078125, 63.19921875) +[2618627.223] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) +[2618627.227] {Default Queue} -> wl_surface#1319.commit() +[2618627.255] {Default Queue} wl_pointer#24.motion(187310261, 16.60156250, 62.00000000) +[2618627.260] {Default Queue} wl_pointer#81.motion(187310261, 16.60156250, 62.00000000) +[2618627.266] {Default Queue} wl_pointer#105.motion(187310261, 16.60156250, 62.00000000) +[2618627.270] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618627.274] {Default Queue} wl_pointer#137.motion(187310261, 16.60156250, 62.00000000) +[2618627.279] {Default Queue} wl_pointer#169.motion(187310261, 16.60156250, 62.00000000) +[2618627.283] {Default Queue} wl_pointer#201.motion(187310261, 16.60156250, 62.00000000) +[2618627.287] {Default Queue} wl_pointer#233.motion(187310261, 16.60156250, 62.00000000) +[2618627.292] {Default Queue} wl_pointer#265.motion(187310261, 16.60156250, 62.00000000) +[2618627.296] {Default Queue} wl_pointer#297.motion(187310261, 16.60156250, 62.00000000) +[2618627.304] {Default Queue} wl_pointer#329.motion(187310261, 16.60156250, 62.00000000) +[2618627.308] {Default Queue} wl_pointer#361.motion(187310261, 16.60156250, 62.00000000) +[2618627.313] {Default Queue} wl_pointer#393.motion(187310261, 16.60156250, 62.00000000) +[2618627.317] {Default Queue} wl_pointer#425.motion(187310261, 16.60156250, 62.00000000) +[2618627.321] {Default Queue} wl_pointer#457.motion(187310261, 16.60156250, 62.00000000) +[2618627.325] {Default Queue} wl_pointer#489.motion(187310261, 16.60156250, 62.00000000) +[2618627.330] {Default Queue} wl_pointer#521.motion(187310261, 16.60156250, 62.00000000) +[2618627.334] {Default Queue} wl_pointer#553.motion(187310261, 16.60156250, 62.00000000) +[2618627.338] {Default Queue} wl_pointer#585.motion(187310261, 16.60156250, 62.00000000) +[2618627.343] {Default Queue} wl_pointer#617.motion(187310261, 16.60156250, 62.00000000) +[2618627.347] {Default Queue} wl_pointer#649.motion(187310261, 16.60156250, 62.00000000) +[2618627.351] {Default Queue} wl_pointer#681.motion(187310261, 16.60156250, 62.00000000) +[2618627.355] {Default Queue} wl_pointer#713.motion(187310261, 16.60156250, 62.00000000) +[2618627.360] {Default Queue} wl_pointer#745.motion(187310261, 16.60156250, 62.00000000) +[2618627.364] {Default Queue} wl_pointer#777.motion(187310261, 16.60156250, 62.00000000) +[2618627.368] {Default Queue} wl_pointer#809.motion(187310261, 16.60156250, 62.00000000) +[2618627.372] {Default Queue} wl_pointer#841.motion(187310261, 16.60156250, 62.00000000) +[2618627.376] {Default Queue} wl_pointer#873.motion(187310261, 16.60156250, 62.00000000) +[2618627.384] {Default Queue} wl_pointer#905.motion(187310261, 16.60156250, 62.00000000) +[2618627.390] {Default Queue} wl_pointer#937.motion(187310261, 16.60156250, 62.00000000) +[2618627.395] {Default Queue} wl_pointer#969.motion(187310261, 16.60156250, 62.00000000) +[2618627.399] {Default Queue} wl_pointer#1001.motion(187310261, 16.60156250, 62.00000000) +[2618627.403] {Default Queue} wl_pointer#1033.motion(187310261, 16.60156250, 62.00000000) +[2618627.407] {Default Queue} wl_pointer#1065.motion(187310261, 16.60156250, 62.00000000) +[2618627.412] {Default Queue} wl_pointer#1097.motion(187310261, 16.60156250, 62.00000000) +[2618627.416] {Default Queue} wl_pointer#1129.motion(187310261, 16.60156250, 62.00000000) +[2618627.420] {Default Queue} wl_pointer#1161.motion(187310261, 16.60156250, 62.00000000) +[2618627.424] {Default Queue} wl_pointer#1193.motion(187310261, 16.60156250, 62.00000000) +[2618627.429] {Default Queue} wl_pointer#1225.motion(187310261, 16.60156250, 62.00000000) +[2618627.433] {Default Queue} wl_pointer#1257.motion(187310261, 16.60156250, 62.00000000) +[2618627.437] {Default Queue} wl_pointer#1289.motion(187310261, 16.60156250, 62.00000000) +[2618627.441] {Default Queue} wl_pointer#1321.motion(187310261, 16.60156250, 62.00000000) +[2618627.446] {Default Queue} wl_pointer#1353.motion(187310261, 16.60156250, 62.00000000) +[2618627.450] {Default Queue} wl_pointer#1385.motion(187310261, 16.60156250, 62.00000000) +[2618627.454] {Default Queue} wl_pointer#1417.motion(187310261, 16.60156250, 62.00000000) +[2618627.458] {Default Queue} wl_pointer#1449.motion(187310261, 16.60156250, 62.00000000) +[2618627.462] {Default Queue} wl_pointer#1481.motion(187310261, 16.60156250, 62.00000000) +[2618627.467] {Default Queue} wl_pointer#1513.motion(187310261, 16.60156250, 62.00000000) +[2618627.471] {Default Queue} wl_pointer#1545.motion(187310261, 16.60156250, 62.00000000) +[2618627.475] {Default Queue} wl_pointer#1577.motion(187310261, 16.60156250, 62.00000000) +[2618627.479] {Default Queue} wl_pointer#1609.motion(187310261, 16.60156250, 62.00000000) +[2618627.484] {Default Queue} wl_pointer#1641.motion(187310261, 16.60156250, 62.00000000) +[2618627.488] {Default Queue} wl_pointer#1673.motion(187310261, 16.60156250, 62.00000000) +[2618627.492] {Default Queue} wl_pointer#1705.motion(187310261, 16.60156250, 62.00000000) +[2618627.496] {Default Queue} wl_pointer#1737.motion(187310261, 16.60156250, 62.00000000) +[2618627.501] {Default Queue} wl_pointer#1762.motion(187310261, 16.60156250, 62.00000000) +[2618627.505] {Default Queue} wl_pointer#1801.motion(187310261, 16.60156250, 62.00000000) +[2618627.509] {Default Queue} wl_pointer#1833.motion(187310261, 16.60156250, 62.00000000) +[2618627.513] {Default Queue} wl_pointer#1865.motion(187310261, 16.60156250, 62.00000000) +[2618627.518] {Default Queue} wl_pointer#1897.motion(187310261, 16.60156250, 62.00000000) +[2618627.522] {Default Queue} wl_pointer#1929.motion(187310261, 16.60156250, 62.00000000) +[2618627.526] {Default Queue} wl_pointer#1961.motion(187310261, 16.60156250, 62.00000000) +[2618627.530] {Default Queue} wl_pointer#1993.motion(187310261, 16.60156250, 62.00000000) +[2618627.535] {Default Queue} wl_pointer#2025.motion(187310261, 16.60156250, 62.00000000) +[2618627.539] {Default Queue} wl_pointer#2057.motion(187310261, 16.60156250, 62.00000000) +[2618627.543] {Default Queue} wl_pointer#2089.motion(187310261, 16.60156250, 62.00000000) +[2618627.548] {Default Queue} wl_pointer#2121.motion(187310261, 16.60156250, 62.00000000) +[2618627.552] {Default Queue} wl_pointer#2153.motion(187310261, 16.60156250, 62.00000000) +[2618627.556] {Default Queue} wl_pointer#2185.motion(187310261, 16.60156250, 62.00000000) +[2618627.560] {Default Queue} wl_pointer#2217.motion(187310261, 16.60156250, 62.00000000) +[2618627.565] {Default Queue} wl_pointer#2249.motion(187310261, 16.60156250, 62.00000000) +[2618627.569] {Default Queue} wl_pointer#2281.motion(187310261, 16.60156250, 62.00000000) +[2618627.573] {Default Queue} wl_pointer#2313.motion(187310261, 16.60156250, 62.00000000) +[2618627.578] {Default Queue} wl_pointer#2345.motion(187310261, 16.60156250, 62.00000000) +[2618627.586] {Default Queue} wl_pointer#2377.motion(187310261, 16.60156250, 62.00000000) +[2618627.592] {Default Queue} wl_pointer#2409.motion(187310261, 16.60156250, 62.00000000) +[2618627.596] {Default Queue} wl_pointer#2441.motion(187310261, 16.60156250, 62.00000000) +[2618627.600] {Default Queue} wl_pointer#2473.motion(187310261, 16.60156250, 62.00000000) +[2618627.605] {Default Queue} wl_pointer#2498.motion(187310261, 16.60156250, 62.00000000) +[2618627.614] {Default Queue} -> wl_buffer#91.destroy() +[2618627.619] {Default Queue} -> wl_buffer#94.destroy() +[2618627.626] {Default Queue} -> wl_shm_pool#3683.destroy() +[2618627.630] {Default Queue} -> wl_shm_pool#92.destroy() +[2618627.635] {Default Queue} -> wl_surface#93.destroy() +[2618627.668] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3675, fd 575, 640) +[2618627.674] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3676, fd 578, 640) +[2618627.679] {Default Queue} -> wl_shm_pool#3675.create_buffer(new id wl_buffer#3677, 0, 10, 16, 40, 0) +[2618627.683] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 10, 16, 40, 0) +[2618627.690] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3674) +[2618627.694] {Default Queue} -> wl_surface#3674.attach(wl_buffer#3677, 0, 0) +[2618627.698] {Default Queue} -> wl_surface#3674.commit() +[2618627.704] {Default Queue} -> wl_surface#3674.attach(wl_buffer#3677, 0, 0) +[2618627.708] {Default Queue} -> wl_surface#3674.commit() +[2618627.712] {Default Queue} wl_pointer#2537.motion(187310261, 16.60156250, 62.00000000) +[2618627.717] {Default Queue} wl_pointer#2569.motion(187310261, 16.60156250, 62.00000000) +[2618627.721] {Default Queue} wl_pointer#2601.motion(187310261, 16.60156250, 62.00000000) +[2618627.725] {Default Queue} wl_pointer#2633.motion(187310261, 16.60156250, 62.00000000) +[2618627.731] {Default Queue} wl_pointer#2665.motion(187310261, 16.60156250, 62.00000000) +[2618627.737] {Default Queue} wl_pointer#2697.motion(187310261, 16.60156250, 62.00000000) +[2618627.743] {Default Queue} wl_pointer#2729.motion(187310261, 16.60156250, 62.00000000) +[2618627.750] {Default Queue} wl_pointer#2761.motion(187310261, 16.60156250, 62.00000000) +[2618627.756] {Default Queue} wl_pointer#2793.motion(187310261, 16.60156250, 62.00000000) +[2618627.763] {Default Queue} wl_pointer#2825.motion(187310261, 16.60156250, 62.00000000) +[2618627.770] {Default Queue} wl_pointer#2857.motion(187310261, 16.60156250, 62.00000000) +[2618627.777] {Default Queue} wl_pointer#2889.motion(187310261, 16.60156250, 62.00000000) +[2618627.783] {Default Queue} wl_pointer#2921.motion(187310261, 16.60156250, 62.00000000) +[2618627.789] {Default Queue} wl_pointer#2953.motion(187310261, 16.60156250, 62.00000000) +[2618627.795] {Default Queue} wl_pointer#2985.motion(187310261, 16.60156250, 62.00000000) +[2618627.800] {Default Queue} wl_pointer#3017.motion(187310261, 16.60156250, 62.00000000) +[2618627.805] {Default Queue} wl_pointer#3049.motion(187310261, 16.60156250, 62.00000000) +[2618627.809] {Default Queue} wl_pointer#3081.motion(187310261, 16.60156250, 62.00000000) +[2618627.814] {Default Queue} wl_pointer#3113.motion(187310261, 16.60156250, 62.00000000) +[2618627.818] {Default Queue} wl_pointer#3145.motion(187310261, 16.60156250, 62.00000000) +[2618627.822] {Default Queue} wl_pointer#3177.motion(187310261, 16.60156250, 62.00000000) +[2618627.827] {Default Queue} wl_pointer#3209.motion(187310261, 16.60156250, 62.00000000) +[2618627.831] {Default Queue} wl_pointer#3241.motion(187310261, 16.60156250, 62.00000000) +[2618627.836] {Default Queue} wl_pointer#3273.motion(187310261, 16.60156250, 62.00000000) +[2618627.840] {Default Queue} wl_pointer#3305.motion(187310261, 16.60156250, 62.00000000) +[2618627.844] {Default Queue} wl_pointer#3337.motion(187310261, 16.60156250, 62.00000000) +[2618627.848] {Default Queue} wl_pointer#3369.motion(187310261, 16.60156250, 62.00000000) +[2618627.853] {Default Queue} wl_pointer#3401.motion(187310261, 16.60156250, 62.00000000) +[2618627.857] {Default Queue} wl_pointer#3433.motion(187310261, 16.60156250, 62.00000000) +[2618627.874] {Default Queue} wl_pointer#3465.motion(187310261, 16.60156250, 62.00000000) +[2618627.880] {Default Queue} wl_pointer#3497.motion(187310261, 16.60156250, 62.00000000) +[2618627.885] {Default Queue} wl_pointer#3529.motion(187310261, 16.60156250, 62.00000000) +[2618627.889] {Default Queue} wl_pointer#3561.motion(187310261, 16.60156250, 62.00000000) +[2618627.893] {Default Queue} wl_pointer#3593.motion(187310261, 16.60156250, 62.00000000) +[2618627.898] {Default Queue} wl_pointer#3625.motion(187310261, 16.60156250, 62.00000000) +[2618627.902] {Default Queue} wl_pointer#3657.motion(187310261, 16.60156250, 62.00000000) +[2618627.906] {Default Queue} wl_pointer#3695.motion(187310261, 16.60156250, 62.00000000) +[2618627.910] {Default Queue} wl_pointer#24.motion(187310261, 17.39843750, 60.80078125) +[2618627.915] {Default Queue} wl_pointer#81.motion(187310261, 17.39843750, 60.80078125) +[2618627.920] {Default Queue} wl_pointer#105.motion(187310261, 17.39843750, 60.80078125) +[2618627.925] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618627.929] {Default Queue} wl_pointer#137.motion(187310261, 17.39843750, 60.80078125) +[2618627.934] {Default Queue} wl_pointer#169.motion(187310261, 17.39843750, 60.80078125) +[2618627.938] {Default Queue} wl_pointer#201.motion(187310261, 17.39843750, 60.80078125) +[2618627.942] {Default Queue} wl_pointer#233.motion(187310261, 17.39843750, 60.80078125) +[2618627.946] {Default Queue} wl_pointer#265.motion(187310261, 17.39843750, 60.80078125) +[2618627.951] {Default Queue} wl_pointer#297.motion(187310261, 17.39843750, 60.80078125) +[2618627.955] {Default Queue} wl_pointer#329.motion(187310261, 17.39843750, 60.80078125) +[2618627.959] {Default Queue} wl_pointer#361.motion(187310261, 17.39843750, 60.80078125) +[2618627.964] {Default Queue} wl_pointer#393.motion(187310261, 17.39843750, 60.80078125) +[2618627.968] {Default Queue} wl_pointer#425.motion(187310261, 17.39843750, 60.80078125) +[2618627.972] {Default Queue} wl_pointer#457.motion(187310261, 17.39843750, 60.80078125) +[2618627.977] {Default Queue} wl_pointer#489.motion(187310261, 17.39843750, 60.80078125) +[2618627.984] {Default Queue} wl_pointer#521.motion(187310261, 17.39843750, 60.80078125) +[2618627.989] {Default Queue} wl_pointer#553.motion(187310261, 17.39843750, 60.80078125) +[2618627.993] {Default Queue} wl_pointer#585.motion(187310261, 17.39843750, 60.80078125) +[2618627.997] {Default Queue} wl_pointer#617.motion(187310261, 17.39843750, 60.80078125) +[2618628.002] {Default Queue} wl_pointer#649.motion(187310261, 17.39843750, 60.80078125) +[2618628.006] {Default Queue} wl_pointer#681.motion(187310261, 17.39843750, 60.80078125) +[2618628.010] {Default Queue} wl_pointer#713.motion(187310261, 17.39843750, 60.80078125) +[2618628.014] {Default Queue} wl_pointer#745.motion(187310261, 17.39843750, 60.80078125) +[2618628.019] {Default Queue} wl_pointer#777.motion(187310261, 17.39843750, 60.80078125) +[2618628.023] {Default Queue} wl_pointer#809.motion(187310261, 17.39843750, 60.80078125) +[2618628.027] {Default Queue} wl_pointer#841.motion(187310261, 17.39843750, 60.80078125) +[2618628.031] {Default Queue} wl_pointer#873.motion(187310261, 17.39843750, 60.80078125) +[2618628.036] {Default Queue} wl_pointer#905.motion(187310261, 17.39843750, 60.80078125) +[2618628.040] {Default Queue} wl_pointer#937.motion(187310261, 17.39843750, 60.80078125) +[2618628.044] {Default Queue} wl_pointer#969.motion(187310261, 17.39843750, 60.80078125) +[2618628.049] {Default Queue} wl_pointer#1001.motion(187310261, 17.39843750, 60.80078125) +[2618628.053] {Default Queue} wl_pointer#1033.motion(187310261, 17.39843750, 60.80078125) +[2618628.057] {Default Queue} wl_pointer#1065.motion(187310261, 17.39843750, 60.80078125) +[2618628.061] {Default Queue} wl_pointer#1097.motion(187310261, 17.39843750, 60.80078125) +[2618628.066] {Default Queue} wl_pointer#1129.motion(187310261, 17.39843750, 60.80078125) +[2618628.070] {Default Queue} wl_pointer#1161.motion(187310261, 17.39843750, 60.80078125) +[2618628.077] {Default Queue} wl_pointer#1193.motion(187310261, 17.39843750, 60.80078125) +[2618628.083] {Default Queue} wl_pointer#1225.motion(187310261, 17.39843750, 60.80078125) +[2618628.088] {Default Queue} wl_pointer#1257.motion(187310261, 17.39843750, 60.80078125) +[2618628.092] {Default Queue} wl_pointer#1289.motion(187310261, 17.39843750, 60.80078125) +[2618628.096] {Default Queue} wl_pointer#1321.motion(187310261, 17.39843750, 60.80078125) +[2618628.100] {Default Queue} wl_pointer#1353.motion(187310261, 17.39843750, 60.80078125) +[2618628.105] {Default Queue} wl_pointer#1385.motion(187310261, 17.39843750, 60.80078125) +[2618628.109] {Default Queue} wl_pointer#1417.motion(187310261, 17.39843750, 60.80078125) +[2618628.113] {Default Queue} wl_pointer#1449.motion(187310261, 17.39843750, 60.80078125) +[2618628.117] {Default Queue} wl_pointer#1481.motion(187310261, 17.39843750, 60.80078125) +[2618628.122] {Default Queue} wl_pointer#1513.motion(187310261, 17.39843750, 60.80078125) +[2618628.126] {Default Queue} wl_pointer#1545.motion(187310261, 17.39843750, 60.80078125) +[2618628.130] {Default Queue} wl_pointer#1577.motion(187310261, 17.39843750, 60.80078125) +[2618628.134] {Default Queue} wl_pointer#1609.motion(187310261, 17.39843750, 60.80078125) +[2618628.139] {Default Queue} wl_pointer#1641.motion(187310261, 17.39843750, 60.80078125) +[2618628.143] {Default Queue} wl_pointer#1673.motion(187310261, 17.39843750, 60.80078125) +[2618628.147] {Default Queue} wl_pointer#1705.motion(187310261, 17.39843750, 60.80078125) +[2618628.152] {Default Queue} wl_pointer#1737.motion(187310261, 17.39843750, 60.80078125) +[2618628.156] {Default Queue} wl_pointer#1762.motion(187310261, 17.39843750, 60.80078125) +[2618628.160] {Default Queue} wl_pointer#1801.motion(187310261, 17.39843750, 60.80078125) +[2618628.164] {Default Queue} wl_pointer#1833.motion(187310261, 17.39843750, 60.80078125) +[2618628.169] {Default Queue} wl_pointer#1865.motion(187310261, 17.39843750, 60.80078125) +[2618628.173] {Default Queue} wl_pointer#1897.motion(187310261, 17.39843750, 60.80078125) +[2618628.195] {Default Queue} wl_pointer#1929.motion(187310261, 17.39843750, 60.80078125) +[2618628.200] {Default Queue} wl_pointer#1961.motion(187310261, 17.39843750, 60.80078125) +[2618628.215] {Default Queue} wl_pointer#1993.motion(187310261, 17.39843750, 60.80078125) +[2618628.220] {Default Queue} wl_pointer#2025.motion(187310261, 17.39843750, 60.80078125) +[2618628.224] {Default Queue} wl_pointer#2057.motion(187310261, 17.39843750, 60.80078125) +[2618628.229] {Default Queue} wl_pointer#2089.motion(187310261, 17.39843750, 60.80078125) +[2618628.233] {Default Queue} wl_pointer#2121.motion(187310261, 17.39843750, 60.80078125) +[2618628.237] {Default Queue} wl_pointer#2153.motion(187310261, 17.39843750, 60.80078125) +[2618628.241] {Default Queue} wl_pointer#2185.motion(187310261, 17.39843750, 60.80078125) +[2618628.246] {Default Queue} wl_pointer#2217.motion(187310261, 17.39843750, 60.80078125) +[2618628.250] {Default Queue} wl_pointer#2249.motion(187310261, 17.39843750, 60.80078125) +[2618628.254] {Default Queue} wl_pointer#2281.motion(187310261, 17.39843750, 60.80078125) +[2618628.259] {Default Queue} wl_pointer#2313.motion(187310261, 17.39843750, 60.80078125) +[2618628.263] {Default Queue} wl_pointer#2345.motion(187310261, 17.39843750, 60.80078125) +[2618628.268] {Default Queue} wl_pointer#2377.motion(187310261, 17.39843750, 60.80078125) +[2618628.272] {Default Queue} wl_pointer#2409.motion(187310261, 17.39843750, 60.80078125) +[2618628.276] {Default Queue} wl_pointer#2441.motion(187310261, 17.39843750, 60.80078125) +[2618628.281] {Default Queue} wl_pointer#2473.motion(187310261, 17.39843750, 60.80078125) +[2618628.285] {Default Queue} wl_pointer#2498.motion(187310261, 17.39843750, 60.80078125) +[2618628.296] {Default Queue} -> wl_buffer#3677.destroy() +[2618628.301] {Default Queue} -> wl_buffer#3678.destroy() +[2618628.305] {Default Queue} -> wl_shm_pool#3675.destroy() +[2618628.309] {Default Queue} -> wl_shm_pool#3676.destroy() +[2618628.314] {Default Queue} -> wl_surface#3674.destroy() +[2618628.351] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3682, fd 581, 640) +[2618628.360] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 582, 640) +[2618628.367] {Default Queue} -> wl_shm_pool#3682.create_buffer(new id wl_buffer#3684, 0, 10, 16, 40, 0) +[2618628.371] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) +[2618628.379] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3671) +[2618628.384] {Default Queue} -> wl_surface#3671.attach(wl_buffer#3684, 0, 0) +[2618628.388] {Default Queue} -> wl_surface#3671.commit() +[2618628.394] {Default Queue} -> wl_surface#3671.attach(wl_buffer#3684, 0, 0) +[2618628.398] {Default Queue} -> wl_surface#3671.commit() +[2618628.402] {Default Queue} wl_pointer#2537.motion(187310261, 17.39843750, 60.80078125) +[2618628.406] {Default Queue} wl_pointer#2569.motion(187310261, 17.39843750, 60.80078125) +[2618628.411] {Default Queue} wl_pointer#2601.motion(187310261, 17.39843750, 60.80078125) +[2618628.415] {Default Queue} wl_pointer#2633.motion(187310261, 17.39843750, 60.80078125) +[2618628.419] {Default Queue} wl_pointer#2665.motion(187310261, 17.39843750, 60.80078125) +[2618628.424] {Default Queue} wl_pointer#2697.motion(187310261, 17.39843750, 60.80078125) +[2618628.428] {Default Queue} wl_pointer#2729.motion(187310261, 17.39843750, 60.80078125) +[2618628.432] {Default Queue} wl_pointer#2761.motion(187310261, 17.39843750, 60.80078125) +[2618628.437] {Default Queue} wl_pointer#2793.motion(187310261, 17.39843750, 60.80078125) +[2618628.441] {Default Queue} wl_pointer#2825.motion(187310261, 17.39843750, 60.80078125) +[2618628.445] {Default Queue} wl_pointer#2857.motion(187310261, 17.39843750, 60.80078125) +[2618628.453] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) +[2618628.457] {Default Queue} -> wl_surface#1319.commit() +[2618628.463] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) +[2618628.467] {Default Queue} -> wl_surface#1351.commit() +[2618629.531] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) +[2618629.537] {Default Queue} -> wl_surface#1351.commit() +[2618629.548] {Default Queue} -> wl_region#1375.subtract(0, 0, 19, 48) +[2618629.552] {Default Queue} -> wl_region#1375.add(-20, -49, 19, 48) +[2618629.557] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2618629.562] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2618629.669] {Default Queue} -> wl_region#1375.subtract(0, 0, 19, 48) +[2618629.674] {Default Queue} -> wl_region#1375.add(-20, -49, 19, 48) +[2618629.678] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2618629.682] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2618629.689] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618629.693] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618629.776] {Default Queue} -> wl_region#1375.subtract(0, 0, 19, 48) +[2618629.784] {Default Queue} -> wl_region#1375.add(-20, -49, 19, 48) +[2618629.791] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2618629.797] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2618629.806] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618629.812] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618629.820] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) +[2618629.825] {Default Queue} -> wl_surface#1351.commit() +[2618629.831] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) +[2618629.835] {Default Queue} -> wl_surface#1351.commit() +[2618629.841] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) +[2618629.846] {Default Queue} -> wl_surface#1351.commit() +[2618629.852] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) +[2618629.856] {Default Queue} -> wl_surface#1383.commit() +[2618630.920] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) +[2618630.925] {Default Queue} -> wl_surface#1383.commit() +[2618630.934] {Default Queue} -> wl_region#1407.subtract(0, 0, 19, 48) +[2618630.944] {Default Queue} -> wl_region#1407.add(-20, -49, 19, 48) +[2618630.950] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2618630.954] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2618631.050] {Default Queue} -> wl_region#1407.subtract(0, 0, 19, 48) +[2618631.055] {Default Queue} -> wl_region#1407.add(-20, -49, 19, 48) +[2618631.059] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2618631.063] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2618631.069] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618631.073] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618631.147] {Default Queue} -> wl_region#1407.subtract(0, 0, 19, 48) +[2618631.152] {Default Queue} -> wl_region#1407.add(-20, -49, 19, 48) +[2618631.156] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2618631.160] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2618631.165] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618631.169] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618631.174] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) +[2618631.179] {Default Queue} -> wl_surface#1383.commit() +[2618631.183] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) +[2618631.187] {Default Queue} -> wl_surface#1383.commit() +[2618631.192] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) +[2618631.197] {Default Queue} -> wl_surface#1383.commit() +[2618631.202] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) +[2618631.207] {Default Queue} -> wl_surface#1415.commit() +[2618631.396] {Display Queue} wl_display#1.delete_id(3518) +[2618631.402] {Display Queue} wl_display#1.delete_id(3451) +[2618631.406] {Display Queue} wl_display#1.delete_id(3454) +[2618631.410] {Display Queue} wl_display#1.delete_id(3517) +[2618631.414] {Display Queue} wl_display#1.delete_id(3452) +[2618631.418] {Display Queue} wl_display#1.delete_id(3484) +[2618631.422] {Display Queue} wl_display#1.delete_id(3293) +[2618631.426] {Display Queue} wl_display#1.delete_id(3294) +[2618631.430] {Display Queue} wl_display#1.delete_id(3291) +[2618631.434] {Display Queue} wl_display#1.delete_id(3292) +[2618631.438] {Default Queue} wl_pointer#2889.motion(187310261, 17.39843750, 60.80078125) +[2618631.442] {Default Queue} wl_pointer#2921.motion(187310261, 17.39843750, 60.80078125) +[2618631.447] {Default Queue} wl_pointer#2953.motion(187310261, 17.39843750, 60.80078125) +[2618631.451] {Default Queue} wl_pointer#2985.motion(187310261, 17.39843750, 60.80078125) +[2618631.455] {Default Queue} wl_pointer#3017.motion(187310261, 17.39843750, 60.80078125) +[2618631.460] {Default Queue} wl_pointer#3049.motion(187310261, 17.39843750, 60.80078125) +[2618631.464] {Default Queue} wl_pointer#3081.motion(187310261, 17.39843750, 60.80078125) +[2618631.469] {Default Queue} wl_pointer#3113.motion(187310261, 17.39843750, 60.80078125) +[2618631.473] {Default Queue} wl_pointer#3145.motion(187310261, 17.39843750, 60.80078125) +[2618631.477] {Default Queue} wl_pointer#3177.motion(187310261, 17.39843750, 60.80078125) +[2618631.482] {Default Queue} wl_pointer#3209.motion(187310261, 17.39843750, 60.80078125) +[2618631.486] {Default Queue} wl_pointer#3241.motion(187310261, 17.39843750, 60.80078125) +[2618631.491] {Default Queue} wl_pointer#3273.motion(187310261, 17.39843750, 60.80078125) +[2618631.495] {Default Queue} wl_pointer#3305.motion(187310261, 17.39843750, 60.80078125) +[2618631.499] {Default Queue} wl_pointer#3337.motion(187310261, 17.39843750, 60.80078125) +[2618631.503] {Default Queue} wl_pointer#3369.motion(187310261, 17.39843750, 60.80078125) +[2618631.508] {Default Queue} wl_pointer#3401.motion(187310261, 17.39843750, 60.80078125) +[2618631.512] {Default Queue} wl_pointer#3433.motion(187310261, 17.39843750, 60.80078125) +[2618631.516] {Default Queue} wl_pointer#3465.motion(187310261, 17.39843750, 60.80078125) +[2618631.521] {Default Queue} wl_pointer#3497.motion(187310261, 17.39843750, 60.80078125) +[2618631.529] {Default Queue} wl_pointer#3529.motion(187310261, 17.39843750, 60.80078125) +[2618631.535] {Default Queue} wl_pointer#3561.motion(187310261, 17.39843750, 60.80078125) +[2618631.539] {Default Queue} wl_pointer#3593.motion(187310261, 17.39843750, 60.80078125) +[2618631.543] {Default Queue} wl_pointer#3625.motion(187310261, 17.39843750, 60.80078125) +[2618631.548] {Default Queue} wl_pointer#3657.motion(187310261, 17.39843750, 60.80078125) +[2618631.552] {Default Queue} wl_pointer#3695.motion(187310261, 17.39843750, 60.80078125) +[2618631.561] {Default Queue} -> wl_region#1439.subtract(0, 0, 19, 48) +[2618631.566] {Default Queue} -> wl_region#1439.add(-20, -49, 19, 48) +[2618631.570] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2618631.574] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2618631.668] {Default Queue} -> wl_region#1439.subtract(0, 0, 19, 48) +[2618631.673] {Default Queue} -> wl_region#1439.add(-20, -49, 19, 48) +[2618631.677] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2618631.682] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2618631.687] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618631.691] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618631.769] {Default Queue} -> wl_region#1439.subtract(0, 0, 19, 48) +[2618631.774] {Default Queue} -> wl_region#1439.add(-20, -49, 19, 48) +[2618631.778] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2618631.782] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2618631.787] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618631.791] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618631.798] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) +[2618631.805] {Default Queue} -> wl_surface#1415.commit() +[2618631.810] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) +[2618631.817] {Default Queue} -> wl_surface#1415.commit() +[2618631.857] {Default Queue} wl_pointer#24.motion(187310266, 18.19921875, 59.60156250) +[2618631.864] {Default Queue} wl_pointer#81.motion(187310266, 18.19921875, 59.60156250) +[2618631.870] {Default Queue} wl_pointer#105.motion(187310266, 18.19921875, 59.60156250) +[2618631.880] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618631.885] {Default Queue} wl_pointer#137.motion(187310266, 18.19921875, 59.60156250) +[2618631.889] {Default Queue} wl_pointer#169.motion(187310266, 18.19921875, 59.60156250) +[2618631.894] {Default Queue} wl_pointer#201.motion(187310266, 18.19921875, 59.60156250) +[2618631.898] {Default Queue} wl_pointer#233.motion(187310266, 18.19921875, 59.60156250) +[2618631.902] {Default Queue} wl_pointer#265.motion(187310266, 18.19921875, 59.60156250) +[2618631.906] {Default Queue} wl_pointer#297.motion(187310266, 18.19921875, 59.60156250) +[2618631.911] {Default Queue} wl_pointer#329.motion(187310266, 18.19921875, 59.60156250) +[2618631.915] {Default Queue} wl_pointer#361.motion(187310266, 18.19921875, 59.60156250) +[2618631.919] {Default Queue} wl_pointer#393.motion(187310266, 18.19921875, 59.60156250) +[2618631.924] {Default Queue} wl_pointer#425.motion(187310266, 18.19921875, 59.60156250) +[2618631.928] {Default Queue} wl_pointer#457.motion(187310266, 18.19921875, 59.60156250) +[2618631.932] {Default Queue} wl_pointer#489.motion(187310266, 18.19921875, 59.60156250) +[2618631.936] {Default Queue} wl_pointer#521.motion(187310266, 18.19921875, 59.60156250) +[2618631.941] {Default Queue} wl_pointer#553.motion(187310266, 18.19921875, 59.60156250) +[2618631.945] {Default Queue} wl_pointer#585.motion(187310266, 18.19921875, 59.60156250) +[2618631.949] {Default Queue} wl_pointer#617.motion(187310266, 18.19921875, 59.60156250) +[2618631.954] {Default Queue} wl_pointer#649.motion(187310266, 18.19921875, 59.60156250) +[2618631.958] {Default Queue} wl_pointer#681.motion(187310266, 18.19921875, 59.60156250) +[2618631.962] {Default Queue} wl_pointer#713.motion(187310266, 18.19921875, 59.60156250) +[2618631.966] {Default Queue} wl_pointer#745.motion(187310266, 18.19921875, 59.60156250) +[2618631.975] {Default Queue} wl_pointer#777.motion(187310266, 18.19921875, 59.60156250) +[2618631.982] {Default Queue} wl_pointer#809.motion(187310266, 18.19921875, 59.60156250) +[2618631.986] {Default Queue} wl_pointer#841.motion(187310266, 18.19921875, 59.60156250) +[2618631.990] {Default Queue} wl_pointer#873.motion(187310266, 18.19921875, 59.60156250) +[2618631.995] {Default Queue} wl_pointer#905.motion(187310266, 18.19921875, 59.60156250) +[2618631.999] {Default Queue} wl_pointer#937.motion(187310266, 18.19921875, 59.60156250) +[2618632.003] {Default Queue} wl_pointer#969.motion(187310266, 18.19921875, 59.60156250) +[2618632.007] {Default Queue} wl_pointer#1001.motion(187310266, 18.19921875, 59.60156250) +[2618632.012] {Default Queue} wl_pointer#1033.motion(187310266, 18.19921875, 59.60156250) +[2618632.016] {Default Queue} wl_pointer#1065.motion(187310266, 18.19921875, 59.60156250) +[2618632.020] {Default Queue} wl_pointer#1097.motion(187310266, 18.19921875, 59.60156250) +[2618632.025] {Default Queue} wl_pointer#1129.motion(187310266, 18.19921875, 59.60156250) +[2618632.029] {Default Queue} wl_pointer#1161.motion(187310266, 18.19921875, 59.60156250) +[2618632.033] {Default Queue} wl_pointer#1193.motion(187310266, 18.19921875, 59.60156250) +[2618632.037] {Default Queue} wl_pointer#1225.motion(187310266, 18.19921875, 59.60156250) +[2618632.042] {Default Queue} wl_pointer#1257.motion(187310266, 18.19921875, 59.60156250) +[2618632.046] {Default Queue} wl_pointer#1289.motion(187310266, 18.19921875, 59.60156250) +[2618632.050] {Default Queue} wl_pointer#1321.motion(187310266, 18.19921875, 59.60156250) +[2618632.054] {Default Queue} wl_pointer#1353.motion(187310266, 18.19921875, 59.60156250) +[2618632.059] {Default Queue} wl_pointer#1385.motion(187310266, 18.19921875, 59.60156250) +[2618632.063] {Default Queue} wl_pointer#1417.motion(187310266, 18.19921875, 59.60156250) +[2618632.067] {Default Queue} wl_pointer#1449.motion(187310266, 18.19921875, 59.60156250) +[2618632.071] {Default Queue} wl_pointer#1481.motion(187310266, 18.19921875, 59.60156250) +[2618632.076] {Default Queue} wl_pointer#1513.motion(187310266, 18.19921875, 59.60156250) +[2618632.080] {Default Queue} wl_pointer#1545.motion(187310266, 18.19921875, 59.60156250) +[2618632.084] {Default Queue} wl_pointer#1577.motion(187310266, 18.19921875, 59.60156250) +[2618632.089] {Default Queue} wl_pointer#1609.motion(187310266, 18.19921875, 59.60156250) +[2618632.093] {Default Queue} wl_pointer#1641.motion(187310266, 18.19921875, 59.60156250) +[2618632.097] {Default Queue} wl_pointer#1673.motion(187310266, 18.19921875, 59.60156250) +[2618632.102] {Default Queue} wl_pointer#1705.motion(187310266, 18.19921875, 59.60156250) +[2618632.106] {Default Queue} wl_pointer#1737.motion(187310266, 18.19921875, 59.60156250) +[2618632.110] {Default Queue} wl_pointer#1762.motion(187310266, 18.19921875, 59.60156250) +[2618632.114] {Default Queue} wl_pointer#1801.motion(187310266, 18.19921875, 59.60156250) +[2618632.119] {Default Queue} wl_pointer#1833.motion(187310266, 18.19921875, 59.60156250) +[2618632.123] {Default Queue} wl_pointer#1865.motion(187310266, 18.19921875, 59.60156250) +[2618632.127] {Default Queue} wl_pointer#1897.motion(187310266, 18.19921875, 59.60156250) +[2618632.132] {Default Queue} wl_pointer#1929.motion(187310266, 18.19921875, 59.60156250) +[2618632.136] {Default Queue} wl_pointer#1961.motion(187310266, 18.19921875, 59.60156250) +[2618632.140] {Default Queue} wl_pointer#1993.motion(187310266, 18.19921875, 59.60156250) +[2618632.144] {Default Queue} wl_pointer#2025.motion(187310266, 18.19921875, 59.60156250) +[2618632.149] {Default Queue} wl_pointer#2057.motion(187310266, 18.19921875, 59.60156250) +[2618632.153] {Default Queue} wl_pointer#2089.motion(187310266, 18.19921875, 59.60156250) +[2618632.157] {Default Queue} wl_pointer#2121.motion(187310266, 18.19921875, 59.60156250) +[2618632.161] {Default Queue} wl_pointer#2153.motion(187310266, 18.19921875, 59.60156250) +[2618632.166] {Default Queue} wl_pointer#2185.motion(187310266, 18.19921875, 59.60156250) +[2618632.173] {Default Queue} wl_pointer#2217.motion(187310266, 18.19921875, 59.60156250) +[2618632.179] {Default Queue} wl_pointer#2249.motion(187310266, 18.19921875, 59.60156250) +[2618632.183] {Default Queue} wl_pointer#2281.motion(187310266, 18.19921875, 59.60156250) +[2618632.187] {Default Queue} wl_pointer#2313.motion(187310266, 18.19921875, 59.60156250) +[2618632.192] {Default Queue} wl_pointer#2345.motion(187310266, 18.19921875, 59.60156250) +[2618632.196] {Default Queue} wl_pointer#2377.motion(187310266, 18.19921875, 59.60156250) +[2618632.200] {Default Queue} wl_pointer#2409.motion(187310266, 18.19921875, 59.60156250) +[2618632.205] {Default Queue} wl_pointer#2441.motion(187310266, 18.19921875, 59.60156250) +[2618632.209] {Default Queue} wl_pointer#2473.motion(187310266, 18.19921875, 59.60156250) +[2618632.213] {Default Queue} wl_pointer#2498.motion(187310266, 18.19921875, 59.60156250) +[2618632.226] {Default Queue} -> wl_buffer#3684.destroy() +[2618632.231] {Default Queue} -> wl_buffer#3681.destroy() +[2618632.235] {Default Queue} -> wl_shm_pool#3682.destroy() +[2618632.239] {Default Queue} -> wl_shm_pool#3679.destroy() +[2618632.244] {Default Queue} -> wl_surface#3671.destroy() +[2618632.283] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3292, fd 575, 640) +[2618632.294] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 578, 640) +[2618632.299] {Default Queue} -> wl_shm_pool#3292.create_buffer(new id wl_buffer#3294, 0, 10, 16, 40, 0) +[2618632.303] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) +[2618632.311] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3484) +[2618632.315] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) +[2618632.319] {Default Queue} -> wl_surface#3484.commit() +[2618632.325] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) +[2618632.329] {Default Queue} -> wl_surface#3484.commit() +[2618632.333] {Default Queue} wl_pointer#2537.motion(187310266, 18.19921875, 59.60156250) +[2618632.338] {Default Queue} wl_pointer#2569.motion(187310266, 18.19921875, 59.60156250) +[2618632.342] {Default Queue} wl_pointer#2601.motion(187310266, 18.19921875, 59.60156250) +[2618632.346] {Default Queue} wl_pointer#2633.motion(187310266, 18.19921875, 59.60156250) +[2618632.350] {Default Queue} wl_pointer#2665.motion(187310266, 18.19921875, 59.60156250) +[2618632.355] {Default Queue} wl_pointer#2697.motion(187310266, 18.19921875, 59.60156250) +[2618632.359] {Default Queue} wl_pointer#2729.motion(187310266, 18.19921875, 59.60156250) +[2618632.363] {Default Queue} wl_pointer#2761.motion(187310266, 18.19921875, 59.60156250) +[2618632.368] {Default Queue} wl_pointer#2793.motion(187310266, 18.19921875, 59.60156250) +[2618632.372] {Default Queue} wl_pointer#2825.motion(187310266, 18.19921875, 59.60156250) +[2618632.377] {Default Queue} wl_pointer#2857.motion(187310266, 18.19921875, 59.60156250) +[2618632.381] {Default Queue} wl_pointer#2889.motion(187310266, 18.19921875, 59.60156250) +[2618632.385] {Default Queue} wl_pointer#2921.motion(187310266, 18.19921875, 59.60156250) +[2618632.389] {Default Queue} wl_pointer#2953.motion(187310266, 18.19921875, 59.60156250) +[2618632.394] {Default Queue} wl_pointer#2985.motion(187310266, 18.19921875, 59.60156250) +[2618632.398] {Default Queue} wl_pointer#3017.motion(187310266, 18.19921875, 59.60156250) +[2618632.402] {Default Queue} wl_pointer#3049.motion(187310266, 18.19921875, 59.60156250) +[2618632.406] {Default Queue} wl_pointer#3081.motion(187310266, 18.19921875, 59.60156250) +[2618632.411] {Default Queue} wl_pointer#3113.motion(187310266, 18.19921875, 59.60156250) +[2618632.415] {Default Queue} wl_pointer#3145.motion(187310266, 18.19921875, 59.60156250) +[2618632.419] {Default Queue} wl_pointer#3177.motion(187310266, 18.19921875, 59.60156250) +[2618632.424] {Default Queue} wl_pointer#3209.motion(187310266, 18.19921875, 59.60156250) +[2618632.428] {Default Queue} wl_pointer#3241.motion(187310266, 18.19921875, 59.60156250) +[2618632.432] {Default Queue} wl_pointer#3273.motion(187310266, 18.19921875, 59.60156250) +[2618632.440] {Default Queue} wl_pointer#3305.motion(187310266, 18.19921875, 59.60156250) +[2618632.446] {Default Queue} wl_pointer#3337.motion(187310266, 18.19921875, 59.60156250) +[2618632.451] {Default Queue} wl_pointer#3369.motion(187310266, 18.19921875, 59.60156250) +[2618632.455] {Default Queue} wl_pointer#3401.motion(187310266, 18.19921875, 59.60156250) +[2618632.459] {Default Queue} wl_pointer#3433.motion(187310266, 18.19921875, 59.60156250) +[2618632.464] {Default Queue} wl_pointer#3465.motion(187310266, 18.19921875, 59.60156250) +[2618632.468] {Default Queue} wl_pointer#3497.motion(187310266, 18.19921875, 59.60156250) +[2618632.472] {Default Queue} wl_pointer#3529.motion(187310266, 18.19921875, 59.60156250) +[2618632.477] {Default Queue} wl_pointer#3561.motion(187310266, 18.19921875, 59.60156250) +[2618632.481] {Default Queue} wl_pointer#3593.motion(187310266, 18.19921875, 59.60156250) +[2618632.485] {Default Queue} wl_pointer#3625.motion(187310266, 18.19921875, 59.60156250) +[2618632.490] {Default Queue} wl_pointer#3657.motion(187310266, 18.19921875, 59.60156250) +[2618632.494] {Default Queue} wl_pointer#3695.motion(187310266, 18.19921875, 59.60156250) +[2618632.498] {Default Queue} wl_pointer#24.motion(187310266, 19.00000000, 58.39843750) +[2618632.502] {Default Queue} wl_pointer#81.motion(187310266, 19.00000000, 58.39843750) +[2618632.508] {Default Queue} wl_pointer#105.motion(187310266, 19.00000000, 58.39843750) +[2618632.512] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618632.516] {Default Queue} wl_pointer#137.motion(187310266, 19.00000000, 58.39843750) +[2618632.521] {Default Queue} wl_pointer#169.motion(187310266, 19.00000000, 58.39843750) +[2618632.525] {Default Queue} wl_pointer#201.motion(187310266, 19.00000000, 58.39843750) +[2618632.529] {Default Queue} wl_pointer#233.motion(187310266, 19.00000000, 58.39843750) +[2618632.534] {Default Queue} wl_pointer#265.motion(187310266, 19.00000000, 58.39843750) +[2618632.538] {Default Queue} wl_pointer#297.motion(187310266, 19.00000000, 58.39843750) +[2618632.542] {Default Queue} wl_pointer#329.motion(187310266, 19.00000000, 58.39843750) +[2618632.546] {Default Queue} wl_pointer#361.motion(187310266, 19.00000000, 58.39843750) +[2618632.551] {Default Queue} wl_pointer#393.motion(187310266, 19.00000000, 58.39843750) +[2618632.555] {Default Queue} wl_pointer#425.motion(187310266, 19.00000000, 58.39843750) +[2618632.559] {Default Queue} wl_pointer#457.motion(187310266, 19.00000000, 58.39843750) +[2618632.563] {Default Queue} wl_pointer#489.motion(187310266, 19.00000000, 58.39843750) +[2618632.568] {Default Queue} wl_pointer#521.motion(187310266, 19.00000000, 58.39843750) +[2618632.572] {Default Queue} wl_pointer#553.motion(187310266, 19.00000000, 58.39843750) +[2618632.576] {Default Queue} wl_pointer#585.motion(187310266, 19.00000000, 58.39843750) +[2618632.580] {Default Queue} wl_pointer#617.motion(187310266, 19.00000000, 58.39843750) +[2618632.585] {Default Queue} wl_pointer#649.motion(187310266, 19.00000000, 58.39843750) +[2618632.589] {Default Queue} wl_pointer#681.motion(187310266, 19.00000000, 58.39843750) +[2618632.593] {Default Queue} wl_pointer#713.motion(187310266, 19.00000000, 58.39843750) +[2618632.597] {Default Queue} wl_pointer#745.motion(187310266, 19.00000000, 58.39843750) +[2618632.602] {Default Queue} wl_pointer#777.motion(187310266, 19.00000000, 58.39843750) +[2618632.606] {Default Queue} wl_pointer#809.motion(187310266, 19.00000000, 58.39843750) +[2618632.613] {Default Queue} wl_pointer#841.motion(187310266, 19.00000000, 58.39843750) +[2618632.617] {Default Queue} wl_pointer#873.motion(187310266, 19.00000000, 58.39843750) +[2618632.622] {Default Queue} wl_pointer#905.motion(187310266, 19.00000000, 58.39843750) +[2618632.626] {Default Queue} wl_pointer#937.motion(187310266, 19.00000000, 58.39843750) +[2618632.630] {Default Queue} wl_pointer#969.motion(187310266, 19.00000000, 58.39843750) +[2618632.635] {Default Queue} wl_pointer#1001.motion(187310266, 19.00000000, 58.39843750) +[2618632.639] {Default Queue} wl_pointer#1033.motion(187310266, 19.00000000, 58.39843750) +[2618632.647] {Default Queue} wl_pointer#1065.motion(187310266, 19.00000000, 58.39843750) +[2618632.652] {Default Queue} wl_pointer#1097.motion(187310266, 19.00000000, 58.39843750) +[2618632.657] {Default Queue} wl_pointer#1129.motion(187310266, 19.00000000, 58.39843750) +[2618632.661] {Default Queue} wl_pointer#1161.motion(187310266, 19.00000000, 58.39843750) +[2618632.665] {Default Queue} wl_pointer#1193.motion(187310266, 19.00000000, 58.39843750) +[2618632.669] {Default Queue} wl_pointer#1225.motion(187310266, 19.00000000, 58.39843750) +[2618632.674] {Default Queue} wl_pointer#1257.motion(187310266, 19.00000000, 58.39843750) +[2618632.678] {Default Queue} wl_pointer#1289.motion(187310266, 19.00000000, 58.39843750) +[2618632.682] {Default Queue} wl_pointer#1321.motion(187310266, 19.00000000, 58.39843750) +[2618632.686] {Default Queue} wl_pointer#1353.motion(187310266, 19.00000000, 58.39843750) +[2618632.691] {Default Queue} wl_pointer#1385.motion(187310266, 19.00000000, 58.39843750) +[2618632.695] {Default Queue} wl_pointer#1417.motion(187310266, 19.00000000, 58.39843750) +[2618632.699] {Default Queue} wl_pointer#1449.motion(187310266, 19.00000000, 58.39843750) +[2618632.703] {Default Queue} wl_pointer#1481.motion(187310266, 19.00000000, 58.39843750) +[2618632.708] {Default Queue} wl_pointer#1513.motion(187310266, 19.00000000, 58.39843750) +[2618632.712] {Default Queue} wl_pointer#1545.motion(187310266, 19.00000000, 58.39843750) +[2618632.716] {Default Queue} wl_pointer#1577.motion(187310266, 19.00000000, 58.39843750) +[2618632.720] {Default Queue} wl_pointer#1609.motion(187310266, 19.00000000, 58.39843750) +[2618632.725] {Default Queue} wl_pointer#1641.motion(187310266, 19.00000000, 58.39843750) +[2618632.729] {Default Queue} wl_pointer#1673.motion(187310266, 19.00000000, 58.39843750) +[2618632.733] {Default Queue} wl_pointer#1705.motion(187310266, 19.00000000, 58.39843750) +[2618632.737] {Default Queue} wl_pointer#1737.motion(187310266, 19.00000000, 58.39843750) +[2618632.742] {Default Queue} wl_pointer#1762.motion(187310266, 19.00000000, 58.39843750) +[2618632.746] {Default Queue} wl_pointer#1801.motion(187310266, 19.00000000, 58.39843750) +[2618632.750] {Default Queue} wl_pointer#1833.motion(187310266, 19.00000000, 58.39843750) +[2618632.755] {Default Queue} wl_pointer#1865.motion(187310266, 19.00000000, 58.39843750) +[2618632.759] {Default Queue} wl_pointer#1897.motion(187310266, 19.00000000, 58.39843750) +[2618632.763] {Default Queue} wl_pointer#1929.motion(187310266, 19.00000000, 58.39843750) +[2618632.767] {Default Queue} wl_pointer#1961.motion(187310266, 19.00000000, 58.39843750) +[2618632.772] {Default Queue} wl_pointer#1993.motion(187310266, 19.00000000, 58.39843750) +[2618632.776] {Default Queue} wl_pointer#2025.motion(187310266, 19.00000000, 58.39843750) +[2618632.780] {Default Queue} wl_pointer#2057.motion(187310266, 19.00000000, 58.39843750) +[2618632.784] {Default Queue} wl_pointer#2089.motion(187310266, 19.00000000, 58.39843750) +[2618632.789] {Default Queue} wl_pointer#2121.motion(187310266, 19.00000000, 58.39843750) +[2618632.793] {Default Queue} wl_pointer#2153.motion(187310266, 19.00000000, 58.39843750) +[2618632.797] {Default Queue} wl_pointer#2185.motion(187310266, 19.00000000, 58.39843750) +[2618632.801] {Default Queue} wl_pointer#2217.motion(187310266, 19.00000000, 58.39843750) +[2618632.806] {Default Queue} wl_pointer#2249.motion(187310266, 19.00000000, 58.39843750) +[2618632.810] {Default Queue} wl_pointer#2281.motion(187310266, 19.00000000, 58.39843750) +[2618632.814] {Default Queue} wl_pointer#2313.motion(187310266, 19.00000000, 58.39843750) +[2618632.819] {Default Queue} wl_pointer#2345.motion(187310266, 19.00000000, 58.39843750) +[2618632.823] {Default Queue} wl_pointer#2377.motion(187310266, 19.00000000, 58.39843750) +[2618632.827] {Default Queue} wl_pointer#2409.motion(187310266, 19.00000000, 58.39843750) +[2618632.832] {Default Queue} wl_pointer#2441.motion(187310266, 19.00000000, 58.39843750) +[2618632.836] {Default Queue} wl_pointer#2473.motion(187310266, 19.00000000, 58.39843750) +[2618632.846] {Default Queue} wl_pointer#2498.motion(187310266, 19.00000000, 58.39843750) +[2618632.857] {Default Queue} -> wl_buffer#3294.destroy() +[2618632.867] {Default Queue} -> wl_buffer#3293.destroy() +[2618632.871] {Default Queue} -> wl_shm_pool#3292.destroy() +[2618632.875] {Default Queue} -> wl_shm_pool#3291.destroy() +[2618632.880] {Default Queue} -> wl_surface#3484.destroy() +[2618632.918] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3452, fd 581, 640) +[2618632.923] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3517, fd 582, 640) +[2618632.928] {Default Queue} -> wl_shm_pool#3452.create_buffer(new id wl_buffer#3454, 0, 10, 16, 40, 0) +[2618632.932] {Default Queue} -> wl_shm_pool#3517.create_buffer(new id wl_buffer#3451, 0, 10, 16, 40, 0) +[2618632.939] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3518) +[2618632.943] {Default Queue} -> wl_surface#3518.attach(wl_buffer#3454, 0, 0) +[2618632.947] {Default Queue} -> wl_surface#3518.commit() +[2618632.953] {Default Queue} -> wl_surface#3518.attach(wl_buffer#3454, 0, 0) +[2618632.957] {Default Queue} -> wl_surface#3518.commit() +[2618632.961] {Default Queue} wl_pointer#2537.motion(187310266, 19.00000000, 58.39843750) +[2618632.969] {Default Queue} wl_pointer#2569.motion(187310266, 19.00000000, 58.39843750) +[2618632.973] {Default Queue} wl_pointer#2601.motion(187310266, 19.00000000, 58.39843750) +[2618632.977] {Default Queue} wl_pointer#2633.motion(187310266, 19.00000000, 58.39843750) +[2618632.982] {Default Queue} wl_pointer#2665.motion(187310266, 19.00000000, 58.39843750) +[2618632.986] {Default Queue} wl_pointer#2697.motion(187310266, 19.00000000, 58.39843750) +[2618632.990] {Default Queue} wl_pointer#2729.motion(187310266, 19.00000000, 58.39843750) +[2618632.994] {Default Queue} wl_pointer#2761.motion(187310266, 19.00000000, 58.39843750) +[2618632.999] {Default Queue} wl_pointer#2793.motion(187310266, 19.00000000, 58.39843750) +[2618633.003] {Default Queue} wl_pointer#2825.motion(187310266, 19.00000000, 58.39843750) +[2618633.007] {Default Queue} wl_pointer#2857.motion(187310266, 19.00000000, 58.39843750) +[2618633.012] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) +[2618633.016] {Default Queue} -> wl_surface#1415.commit() +[2618634.083] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) +[2618634.093] {Default Queue} -> wl_surface#1415.commit() +[2618634.101] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) +[2618634.105] {Default Queue} -> wl_surface#1415.commit() +[2618634.112] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) +[2618634.116] {Default Queue} -> wl_surface#1255.commit() +[2618635.177] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) +[2618635.182] {Default Queue} -> wl_surface#1255.commit() +[2618635.192] {Default Queue} -> wl_region#1279.subtract(0, 0, 19, 48) +[2618635.196] {Default Queue} -> wl_region#1279.add(-20, -49, 19, 48) +[2618635.201] {Default Queue} -> wl_surface#1255.set_opaque_region(wl_region#1280) +[2618635.205] {Default Queue} -> wl_surface#1255.set_input_region(wl_region#1279) +[2618635.211] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) +[2618635.215] {Default Queue} -> wl_surface#1255.commit() +[2618635.219] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) +[2618635.223] {Default Queue} -> wl_surface#1255.commit() +[2618635.229] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) +[2618635.233] {Default Queue} -> wl_surface#1255.commit() +[2618635.238] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) +[2618635.243] {Default Queue} -> wl_surface#1031.commit() +[2618636.304] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) +[2618636.309] {Default Queue} -> wl_surface#1031.commit() +[2618636.316] {Default Queue} -> wl_region#1055.subtract(0, 0, 19, 48) +[2618636.321] {Default Queue} -> wl_region#1055.add(-20, -49, 19, 48) +[2618636.325] {Default Queue} -> wl_surface#1031.set_opaque_region(wl_region#1056) +[2618636.329] {Default Queue} -> wl_surface#1031.set_input_region(wl_region#1055) +[2618636.338] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) +[2618636.345] {Default Queue} -> wl_surface#1031.commit() +[2618636.349] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) +[2618636.353] {Default Queue} -> wl_surface#1031.commit() +[2618636.374] {Display Queue} wl_display#1.delete_id(3515) +[2618636.380] {Display Queue} wl_display#1.delete_id(3516) +[2618636.384] {Display Queue} wl_display#1.delete_id(3485) +[2618636.388] {Display Queue} wl_display#1.delete_id(3486) +[2618636.392] {Display Queue} wl_display#1.delete_id(3483) +[2618636.396] {Display Queue} wl_display#1.delete_id(91) +[2618636.400] {Display Queue} wl_display#1.delete_id(94) +[2618636.404] {Display Queue} wl_display#1.delete_id(3683) +[2618636.408] {Display Queue} wl_display#1.delete_id(92) +[2618636.412] {Display Queue} wl_display#1.delete_id(93) +[2618636.416] {Display Queue} wl_display#1.delete_id(3677) +[2618636.420] {Display Queue} wl_display#1.delete_id(3678) +[2618636.424] {Display Queue} wl_display#1.delete_id(3675) +[2618636.428] {Display Queue} wl_display#1.delete_id(3676) +[2618636.432] {Display Queue} wl_display#1.delete_id(3674) +[2618636.436] {Default Queue} wl_pointer#2889.motion(187310266, 19.00000000, 58.39843750) +[2618636.440] {Default Queue} wl_pointer#2921.motion(187310266, 19.00000000, 58.39843750) +[2618636.445] {Default Queue} wl_pointer#2953.motion(187310266, 19.00000000, 58.39843750) +[2618636.449] {Default Queue} wl_pointer#2985.motion(187310266, 19.00000000, 58.39843750) +[2618636.453] {Default Queue} wl_pointer#3017.motion(187310266, 19.00000000, 58.39843750) +[2618636.458] {Default Queue} wl_pointer#3049.motion(187310266, 19.00000000, 58.39843750) +[2618636.462] {Default Queue} wl_pointer#3081.motion(187310266, 19.00000000, 58.39843750) +[2618636.466] {Default Queue} wl_pointer#3113.motion(187310266, 19.00000000, 58.39843750) +[2618636.471] {Default Queue} wl_pointer#3145.motion(187310266, 19.00000000, 58.39843750) +[2618636.475] {Default Queue} wl_pointer#3177.motion(187310266, 19.00000000, 58.39843750) +[2618636.479] {Default Queue} wl_pointer#3209.motion(187310266, 19.00000000, 58.39843750) +[2618636.484] {Default Queue} wl_pointer#3241.motion(187310266, 19.00000000, 58.39843750) +[2618636.488] {Default Queue} wl_pointer#3273.motion(187310266, 19.00000000, 58.39843750) +[2618636.492] {Default Queue} wl_pointer#3305.motion(187310266, 19.00000000, 58.39843750) +[2618636.497] {Default Queue} wl_pointer#3337.motion(187310266, 19.00000000, 58.39843750) +[2618636.501] {Default Queue} wl_pointer#3369.motion(187310266, 19.00000000, 58.39843750) +[2618636.505] {Default Queue} wl_pointer#3401.motion(187310266, 19.00000000, 58.39843750) +[2618636.510] {Default Queue} wl_pointer#3433.motion(187310266, 19.00000000, 58.39843750) +[2618636.514] {Default Queue} wl_pointer#3465.motion(187310266, 19.00000000, 58.39843750) +[2618636.519] {Default Queue} wl_pointer#3497.motion(187310266, 19.00000000, 58.39843750) +[2618636.523] {Default Queue} wl_pointer#3529.motion(187310266, 19.00000000, 58.39843750) +[2618636.527] {Default Queue} wl_pointer#3561.motion(187310266, 19.00000000, 58.39843750) +[2618636.532] {Default Queue} wl_pointer#3593.motion(187310266, 19.00000000, 58.39843750) +[2618636.536] {Default Queue} wl_pointer#3625.motion(187310266, 19.00000000, 58.39843750) +[2618636.540] {Default Queue} wl_pointer#3657.motion(187310266, 19.00000000, 58.39843750) +[2618636.545] {Default Queue} wl_pointer#3695.motion(187310266, 19.00000000, 58.39843750) +[2618636.549] {Default Queue} wl_pointer#24.motion(187310266, 19.80078125, 56.80078125) +[2618636.553] {Default Queue} wl_pointer#81.motion(187310266, 19.80078125, 56.80078125) +[2618636.558] {Default Queue} wl_pointer#105.motion(187310266, 19.80078125, 56.80078125) +[2618636.563] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618636.567] {Default Queue} wl_pointer#137.motion(187310266, 19.80078125, 56.80078125) +[2618636.571] {Default Queue} wl_pointer#169.motion(187310266, 19.80078125, 56.80078125) +[2618636.578] {Default Queue} wl_pointer#201.motion(187310266, 19.80078125, 56.80078125) +[2618636.584] {Default Queue} wl_pointer#233.motion(187310266, 19.80078125, 56.80078125) +[2618636.588] {Default Queue} wl_pointer#265.motion(187310266, 19.80078125, 56.80078125) +[2618636.593] {Default Queue} wl_pointer#297.motion(187310266, 19.80078125, 56.80078125) +[2618636.597] {Default Queue} wl_pointer#329.motion(187310266, 19.80078125, 56.80078125) +[2618636.601] {Default Queue} wl_pointer#361.motion(187310266, 19.80078125, 56.80078125) +[2618636.606] {Default Queue} wl_pointer#393.motion(187310266, 19.80078125, 56.80078125) +[2618636.610] {Default Queue} wl_pointer#425.motion(187310266, 19.80078125, 56.80078125) +[2618636.614] {Default Queue} wl_pointer#457.motion(187310266, 19.80078125, 56.80078125) +[2618636.618] {Default Queue} wl_pointer#489.motion(187310266, 19.80078125, 56.80078125) +[2618636.623] {Default Queue} wl_pointer#521.motion(187310266, 19.80078125, 56.80078125) +[2618636.627] {Default Queue} wl_pointer#553.motion(187310266, 19.80078125, 56.80078125) +[2618636.631] {Default Queue} wl_pointer#585.motion(187310266, 19.80078125, 56.80078125) +[2618636.636] {Default Queue} wl_pointer#617.motion(187310266, 19.80078125, 56.80078125) +[2618636.640] {Default Queue} wl_pointer#649.motion(187310266, 19.80078125, 56.80078125) +[2618636.644] {Default Queue} wl_pointer#681.motion(187310266, 19.80078125, 56.80078125) +[2618636.648] {Default Queue} wl_pointer#713.motion(187310266, 19.80078125, 56.80078125) +[2618636.653] {Default Queue} wl_pointer#745.motion(187310266, 19.80078125, 56.80078125) +[2618636.657] {Default Queue} wl_pointer#777.motion(187310266, 19.80078125, 56.80078125) +[2618636.661] {Default Queue} wl_pointer#809.motion(187310266, 19.80078125, 56.80078125) +[2618636.666] {Default Queue} wl_pointer#841.motion(187310266, 19.80078125, 56.80078125) +[2618636.670] {Default Queue} wl_pointer#873.motion(187310266, 19.80078125, 56.80078125) +[2618636.674] {Default Queue} wl_pointer#905.motion(187310266, 19.80078125, 56.80078125) +[2618636.678] {Default Queue} wl_pointer#937.motion(187310266, 19.80078125, 56.80078125) +[2618636.683] {Default Queue} wl_pointer#969.motion(187310266, 19.80078125, 56.80078125) +[2618636.687] {Default Queue} wl_pointer#1001.motion(187310266, 19.80078125, 56.80078125) +[2618636.691] {Default Queue} wl_pointer#1033.motion(187310266, 19.80078125, 56.80078125) +[2618636.695] {Default Queue} wl_pointer#1065.motion(187310266, 19.80078125, 56.80078125) +[2618636.700] {Default Queue} wl_pointer#1097.motion(187310266, 19.80078125, 56.80078125) +[2618636.704] {Default Queue} wl_pointer#1129.motion(187310266, 19.80078125, 56.80078125) +[2618636.708] {Default Queue} wl_pointer#1161.motion(187310266, 19.80078125, 56.80078125) +[2618636.713] {Default Queue} wl_pointer#1193.motion(187310266, 19.80078125, 56.80078125) +[2618636.717] {Default Queue} wl_pointer#1225.motion(187310266, 19.80078125, 56.80078125) +[2618636.721] {Default Queue} wl_pointer#1257.motion(187310266, 19.80078125, 56.80078125) +[2618636.726] {Default Queue} wl_pointer#1289.motion(187310266, 19.80078125, 56.80078125) +[2618636.730] {Default Queue} wl_pointer#1321.motion(187310266, 19.80078125, 56.80078125) +[2618636.734] {Default Queue} wl_pointer#1353.motion(187310266, 19.80078125, 56.80078125) +[2618636.738] {Default Queue} wl_pointer#1385.motion(187310266, 19.80078125, 56.80078125) +[2618636.743] {Default Queue} wl_pointer#1417.motion(187310266, 19.80078125, 56.80078125) +[2618636.747] {Default Queue} wl_pointer#1449.motion(187310266, 19.80078125, 56.80078125) +[2618636.751] {Default Queue} wl_pointer#1481.motion(187310266, 19.80078125, 56.80078125) +[2618636.756] {Default Queue} wl_pointer#1513.motion(187310266, 19.80078125, 56.80078125) +[2618636.760] {Default Queue} wl_pointer#1545.motion(187310266, 19.80078125, 56.80078125) +[2618636.764] {Default Queue} wl_pointer#1577.motion(187310266, 19.80078125, 56.80078125) +[2618636.769] {Default Queue} wl_pointer#1609.motion(187310266, 19.80078125, 56.80078125) +[2618636.773] {Default Queue} wl_pointer#1641.motion(187310266, 19.80078125, 56.80078125) +[2618636.780] {Default Queue} wl_pointer#1673.motion(187310266, 19.80078125, 56.80078125) +[2618636.785] {Default Queue} wl_pointer#1705.motion(187310266, 19.80078125, 56.80078125) +[2618636.790] {Default Queue} wl_pointer#1737.motion(187310266, 19.80078125, 56.80078125) +[2618636.794] {Default Queue} wl_pointer#1762.motion(187310266, 19.80078125, 56.80078125) +[2618636.798] {Default Queue} wl_pointer#1801.motion(187310266, 19.80078125, 56.80078125) +[2618636.803] {Default Queue} wl_pointer#1833.motion(187310266, 19.80078125, 56.80078125) +[2618636.807] {Default Queue} wl_pointer#1865.motion(187310266, 19.80078125, 56.80078125) +[2618636.811] {Default Queue} wl_pointer#1897.motion(187310266, 19.80078125, 56.80078125) +[2618636.815] {Default Queue} wl_pointer#1929.motion(187310266, 19.80078125, 56.80078125) +[2618636.820] {Default Queue} wl_pointer#1961.motion(187310266, 19.80078125, 56.80078125) +[2618636.824] {Default Queue} wl_pointer#1993.motion(187310266, 19.80078125, 56.80078125) +[2618636.828] {Default Queue} wl_pointer#2025.motion(187310266, 19.80078125, 56.80078125) +[2618636.833] {Default Queue} wl_pointer#2057.motion(187310266, 19.80078125, 56.80078125) +[2618636.837] {Default Queue} wl_pointer#2089.motion(187310266, 19.80078125, 56.80078125) +[2618636.841] {Default Queue} wl_pointer#2121.motion(187310266, 19.80078125, 56.80078125) +[2618636.845] {Default Queue} wl_pointer#2153.motion(187310266, 19.80078125, 56.80078125) +[2618636.850] {Default Queue} wl_pointer#2185.motion(187310266, 19.80078125, 56.80078125) +[2618636.854] {Default Queue} wl_pointer#2217.motion(187310266, 19.80078125, 56.80078125) +[2618636.858] {Default Queue} wl_pointer#2249.motion(187310266, 19.80078125, 56.80078125) +[2618636.867] {Default Queue} wl_pointer#2281.motion(187310266, 19.80078125, 56.80078125) +[2618636.871] {Default Queue} wl_pointer#2313.motion(187310266, 19.80078125, 56.80078125) +[2618636.876] {Default Queue} wl_pointer#2345.motion(187310266, 19.80078125, 56.80078125) +[2618636.880] {Default Queue} wl_pointer#2377.motion(187310266, 19.80078125, 56.80078125) +[2618636.884] {Default Queue} wl_pointer#2409.motion(187310266, 19.80078125, 56.80078125) +[2618636.889] {Default Queue} wl_pointer#2441.motion(187310266, 19.80078125, 56.80078125) +[2618636.893] {Default Queue} wl_pointer#2473.motion(187310266, 19.80078125, 56.80078125) +[2618636.897] {Default Queue} wl_pointer#2498.motion(187310266, 19.80078125, 56.80078125) +[2618636.909] {Default Queue} -> wl_buffer#3454.destroy() +[2618636.914] {Default Queue} -> wl_buffer#3451.destroy() +[2618636.918] {Default Queue} -> wl_shm_pool#3452.destroy() +[2618636.922] {Default Queue} -> wl_shm_pool#3517.destroy() +[2618636.927] {Default Queue} -> wl_surface#3518.destroy() +[2618636.966] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3674, fd 575, 640) +[2618636.972] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3676, fd 578, 640) +[2618636.976] {Default Queue} -> wl_shm_pool#3674.create_buffer(new id wl_buffer#3675, 0, 10, 16, 40, 0) +[2618636.981] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 10, 16, 40, 0) +[2618636.988] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3677) +[2618636.992] {Default Queue} -> wl_surface#3677.attach(wl_buffer#3675, 0, 0) +[2618636.997] {Default Queue} -> wl_surface#3677.commit() +[2618637.002] {Default Queue} -> wl_surface#3677.attach(wl_buffer#3675, 0, 0) +[2618637.006] {Default Queue} -> wl_surface#3677.commit() +[2618637.011] {Default Queue} wl_pointer#2537.motion(187310266, 19.80078125, 56.80078125) +[2618637.015] {Default Queue} wl_pointer#2569.motion(187310266, 19.80078125, 56.80078125) +[2618637.019] {Default Queue} wl_pointer#2601.motion(187310266, 19.80078125, 56.80078125) +[2618637.024] {Default Queue} wl_pointer#2633.motion(187310266, 19.80078125, 56.80078125) +[2618637.028] {Default Queue} wl_pointer#2665.motion(187310266, 19.80078125, 56.80078125) +[2618637.032] {Default Queue} wl_pointer#2697.motion(187310266, 19.80078125, 56.80078125) +[2618637.037] {Default Queue} wl_pointer#2729.motion(187310266, 19.80078125, 56.80078125) +[2618637.044] {Default Queue} wl_pointer#2761.motion(187310266, 19.80078125, 56.80078125) +[2618637.050] {Default Queue} wl_pointer#2793.motion(187310266, 19.80078125, 56.80078125) +[2618637.055] {Default Queue} wl_pointer#2825.motion(187310266, 19.80078125, 56.80078125) +[2618637.059] {Default Queue} wl_pointer#2857.motion(187310266, 19.80078125, 56.80078125) +[2618637.064] {Default Queue} wl_pointer#2889.motion(187310266, 19.80078125, 56.80078125) +[2618637.068] {Default Queue} wl_pointer#2921.motion(187310266, 19.80078125, 56.80078125) +[2618637.072] {Default Queue} wl_pointer#2953.motion(187310266, 19.80078125, 56.80078125) +[2618637.077] {Default Queue} wl_pointer#2985.motion(187310266, 19.80078125, 56.80078125) +[2618637.081] {Default Queue} wl_pointer#3017.motion(187310266, 19.80078125, 56.80078125) +[2618637.085] {Default Queue} wl_pointer#3049.motion(187310266, 19.80078125, 56.80078125) +[2618637.089] {Default Queue} wl_pointer#3081.motion(187310266, 19.80078125, 56.80078125) +[2618637.094] {Default Queue} wl_pointer#3113.motion(187310266, 19.80078125, 56.80078125) +[2618637.098] {Default Queue} wl_pointer#3145.motion(187310266, 19.80078125, 56.80078125) +[2618637.102] {Default Queue} wl_pointer#3177.motion(187310266, 19.80078125, 56.80078125) +[2618637.106] {Default Queue} wl_pointer#3209.motion(187310266, 19.80078125, 56.80078125) +[2618637.111] {Default Queue} wl_pointer#3241.motion(187310266, 19.80078125, 56.80078125) +[2618637.115] {Default Queue} wl_pointer#3273.motion(187310266, 19.80078125, 56.80078125) +[2618637.120] {Default Queue} wl_pointer#3305.motion(187310266, 19.80078125, 56.80078125) +[2618637.124] {Default Queue} wl_pointer#3337.motion(187310266, 19.80078125, 56.80078125) +[2618637.128] {Default Queue} wl_pointer#3369.motion(187310266, 19.80078125, 56.80078125) +[2618637.132] {Default Queue} wl_pointer#3401.motion(187310266, 19.80078125, 56.80078125) +[2618637.137] {Default Queue} wl_pointer#3433.motion(187310266, 19.80078125, 56.80078125) +[2618637.141] {Default Queue} wl_pointer#3465.motion(187310266, 19.80078125, 56.80078125) +[2618637.146] {Default Queue} wl_pointer#3497.motion(187310266, 19.80078125, 56.80078125) +[2618637.150] {Default Queue} wl_pointer#3529.motion(187310266, 19.80078125, 56.80078125) +[2618637.154] {Default Queue} wl_pointer#3561.motion(187310266, 19.80078125, 56.80078125) +[2618637.158] {Default Queue} wl_pointer#3593.motion(187310266, 19.80078125, 56.80078125) +[2618637.163] {Default Queue} wl_pointer#3625.motion(187310266, 19.80078125, 56.80078125) +[2618637.167] {Default Queue} wl_pointer#3657.motion(187310266, 19.80078125, 56.80078125) +[2618637.171] {Default Queue} wl_pointer#3695.motion(187310266, 19.80078125, 56.80078125) +[2618637.176] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) +[2618637.180] {Default Queue} -> wl_surface#1031.commit() +[2618637.208] {Default Queue} wl_pointer#24.motion(187310271, 20.60156250, 55.60156250) +[2618637.214] {Default Queue} wl_pointer#81.motion(187310271, 20.60156250, 55.60156250) +[2618637.219] {Default Queue} wl_pointer#105.motion(187310271, 20.60156250, 55.60156250) +[2618637.223] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618637.227] {Default Queue} wl_pointer#137.motion(187310271, 20.60156250, 55.60156250) +[2618637.232] {Default Queue} wl_pointer#169.motion(187310271, 20.60156250, 55.60156250) +[2618637.236] {Default Queue} wl_pointer#201.motion(187310271, 20.60156250, 55.60156250) +[2618637.240] {Default Queue} wl_pointer#233.motion(187310271, 20.60156250, 55.60156250) +[2618637.244] {Default Queue} wl_pointer#265.motion(187310271, 20.60156250, 55.60156250) +[2618637.249] {Default Queue} wl_pointer#297.motion(187310271, 20.60156250, 55.60156250) +[2618637.253] {Default Queue} wl_pointer#329.motion(187310271, 20.60156250, 55.60156250) +[2618637.257] {Default Queue} wl_pointer#361.motion(187310271, 20.60156250, 55.60156250) +[2618637.261] {Default Queue} wl_pointer#393.motion(187310271, 20.60156250, 55.60156250) +[2618637.266] {Default Queue} wl_pointer#425.motion(187310271, 20.60156250, 55.60156250) +[2618637.273] {Default Queue} wl_pointer#457.motion(187310271, 20.60156250, 55.60156250) +[2618637.278] {Default Queue} wl_pointer#489.motion(187310271, 20.60156250, 55.60156250) +[2618637.283] {Default Queue} wl_pointer#521.motion(187310271, 20.60156250, 55.60156250) +[2618637.291] {Default Queue} wl_pointer#553.motion(187310271, 20.60156250, 55.60156250) +[2618637.295] {Default Queue} wl_pointer#585.motion(187310271, 20.60156250, 55.60156250) +[2618637.300] {Default Queue} wl_pointer#617.motion(187310271, 20.60156250, 55.60156250) +[2618637.304] {Default Queue} wl_pointer#649.motion(187310271, 20.60156250, 55.60156250) +[2618637.308] {Default Queue} wl_pointer#681.motion(187310271, 20.60156250, 55.60156250) +[2618637.312] {Default Queue} wl_pointer#713.motion(187310271, 20.60156250, 55.60156250) +[2618637.317] {Default Queue} wl_pointer#745.motion(187310271, 20.60156250, 55.60156250) +[2618637.321] {Default Queue} wl_pointer#777.motion(187310271, 20.60156250, 55.60156250) +[2618637.325] {Default Queue} wl_pointer#809.motion(187310271, 20.60156250, 55.60156250) +[2618637.329] {Default Queue} wl_pointer#841.motion(187310271, 20.60156250, 55.60156250) +[2618637.334] {Default Queue} wl_pointer#873.motion(187310271, 20.60156250, 55.60156250) +[2618637.338] {Default Queue} wl_pointer#905.motion(187310271, 20.60156250, 55.60156250) +[2618637.342] {Default Queue} wl_pointer#937.motion(187310271, 20.60156250, 55.60156250) +[2618637.346] {Default Queue} wl_pointer#969.motion(187310271, 20.60156250, 55.60156250) +[2618637.350] {Default Queue} wl_pointer#1001.motion(187310271, 20.60156250, 55.60156250) +[2618637.355] {Default Queue} wl_pointer#1033.motion(187310271, 20.60156250, 55.60156250) +[2618637.359] {Default Queue} wl_pointer#1065.motion(187310271, 20.60156250, 55.60156250) +[2618637.363] {Default Queue} wl_pointer#1097.motion(187310271, 20.60156250, 55.60156250) +[2618637.367] {Default Queue} wl_pointer#1129.motion(187310271, 20.60156250, 55.60156250) +[2618637.372] {Default Queue} wl_pointer#1161.motion(187310271, 20.60156250, 55.60156250) +[2618637.376] {Default Queue} wl_pointer#1193.motion(187310271, 20.60156250, 55.60156250) +[2618637.380] {Default Queue} wl_pointer#1225.motion(187310271, 20.60156250, 55.60156250) +[2618637.384] {Default Queue} wl_pointer#1257.motion(187310271, 20.60156250, 55.60156250) +[2618637.389] {Default Queue} wl_pointer#1289.motion(187310271, 20.60156250, 55.60156250) +[2618637.393] {Default Queue} wl_pointer#1321.motion(187310271, 20.60156250, 55.60156250) +[2618637.397] {Default Queue} wl_pointer#1353.motion(187310271, 20.60156250, 55.60156250) +[2618637.401] {Default Queue} wl_pointer#1385.motion(187310271, 20.60156250, 55.60156250) +[2618637.406] {Default Queue} wl_pointer#1417.motion(187310271, 20.60156250, 55.60156250) +[2618637.410] {Default Queue} wl_pointer#1449.motion(187310271, 20.60156250, 55.60156250) +[2618637.414] {Default Queue} wl_pointer#1481.motion(187310271, 20.60156250, 55.60156250) +[2618637.418] {Default Queue} wl_pointer#1513.motion(187310271, 20.60156250, 55.60156250) +[2618637.423] {Default Queue} wl_pointer#1545.motion(187310271, 20.60156250, 55.60156250) +[2618637.427] {Default Queue} wl_pointer#1577.motion(187310271, 20.60156250, 55.60156250) +[2618637.441] {Default Queue} wl_pointer#1609.motion(187310271, 20.60156250, 55.60156250) +[2618637.445] {Default Queue} wl_pointer#1641.motion(187310271, 20.60156250, 55.60156250) +[2618637.449] {Default Queue} wl_pointer#1673.motion(187310271, 20.60156250, 55.60156250) +[2618637.453] {Default Queue} wl_pointer#1705.motion(187310271, 20.60156250, 55.60156250) +[2618637.458] {Default Queue} wl_pointer#1737.motion(187310271, 20.60156250, 55.60156250) +[2618637.462] {Default Queue} wl_pointer#1762.motion(187310271, 20.60156250, 55.60156250) +[2618637.466] {Default Queue} wl_pointer#1801.motion(187310271, 20.60156250, 55.60156250) +[2618637.470] {Default Queue} wl_pointer#1833.motion(187310271, 20.60156250, 55.60156250) +[2618637.474] {Default Queue} wl_pointer#1865.motion(187310271, 20.60156250, 55.60156250) +[2618637.479] {Default Queue} wl_pointer#1897.motion(187310271, 20.60156250, 55.60156250) +[2618637.486] {Default Queue} wl_pointer#1929.motion(187310271, 20.60156250, 55.60156250) +[2618637.492] {Default Queue} wl_pointer#1961.motion(187310271, 20.60156250, 55.60156250) +[2618637.496] {Default Queue} wl_pointer#1993.motion(187310271, 20.60156250, 55.60156250) +[2618637.500] {Default Queue} wl_pointer#2025.motion(187310271, 20.60156250, 55.60156250) +[2618637.504] {Default Queue} wl_pointer#2057.motion(187310271, 20.60156250, 55.60156250) +[2618637.509] {Default Queue} wl_pointer#2089.motion(187310271, 20.60156250, 55.60156250) +[2618637.513] {Default Queue} wl_pointer#2121.motion(187310271, 20.60156250, 55.60156250) +[2618637.517] {Default Queue} wl_pointer#2153.motion(187310271, 20.60156250, 55.60156250) +[2618637.522] {Default Queue} wl_pointer#2185.motion(187310271, 20.60156250, 55.60156250) +[2618637.526] {Default Queue} wl_pointer#2217.motion(187310271, 20.60156250, 55.60156250) +[2618637.530] {Default Queue} wl_pointer#2249.motion(187310271, 20.60156250, 55.60156250) +[2618637.534] {Default Queue} wl_pointer#2281.motion(187310271, 20.60156250, 55.60156250) +[2618637.539] {Default Queue} wl_pointer#2313.motion(187310271, 20.60156250, 55.60156250) +[2618637.543] {Default Queue} wl_pointer#2345.motion(187310271, 20.60156250, 55.60156250) +[2618637.548] {Default Queue} wl_pointer#2377.motion(187310271, 20.60156250, 55.60156250) +[2618637.552] {Default Queue} wl_pointer#2409.motion(187310271, 20.60156250, 55.60156250) +[2618637.556] {Default Queue} wl_pointer#2441.motion(187310271, 20.60156250, 55.60156250) +[2618637.560] {Default Queue} wl_pointer#2473.motion(187310271, 20.60156250, 55.60156250) +[2618637.565] {Default Queue} wl_pointer#2498.motion(187310271, 20.60156250, 55.60156250) +[2618637.574] {Default Queue} -> wl_buffer#3675.destroy() +[2618637.579] {Default Queue} -> wl_buffer#3678.destroy() +[2618637.583] {Default Queue} -> wl_shm_pool#3674.destroy() +[2618637.587] {Default Queue} -> wl_shm_pool#3676.destroy() +[2618637.591] {Default Queue} -> wl_surface#3677.destroy() +[2618637.628] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#93, fd 575, 640) +[2618637.633] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 578, 640) +[2618637.638] {Default Queue} -> wl_shm_pool#93.create_buffer(new id wl_buffer#3683, 0, 10, 16, 40, 0) +[2618637.642] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) +[2618637.649] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#91) +[2618637.653] {Default Queue} -> wl_surface#91.attach(wl_buffer#3683, 0, 0) +[2618637.657] {Default Queue} -> wl_surface#91.commit() +[2618637.663] {Default Queue} -> wl_surface#91.attach(wl_buffer#3683, 0, 0) +[2618637.667] {Default Queue} -> wl_surface#91.commit() +[2618637.671] {Default Queue} wl_pointer#2537.motion(187310271, 20.60156250, 55.60156250) +[2618637.675] {Default Queue} wl_pointer#2569.motion(187310271, 20.60156250, 55.60156250) +[2618637.680] {Default Queue} wl_pointer#2601.motion(187310271, 20.60156250, 55.60156250) +[2618637.684] {Default Queue} wl_pointer#2633.motion(187310271, 20.60156250, 55.60156250) +[2618637.688] {Default Queue} wl_pointer#2665.motion(187310271, 20.60156250, 55.60156250) +[2618637.692] {Default Queue} wl_pointer#2697.motion(187310271, 20.60156250, 55.60156250) +[2618637.697] {Default Queue} wl_pointer#2729.motion(187310271, 20.60156250, 55.60156250) +[2618637.701] {Default Queue} wl_pointer#2761.motion(187310271, 20.60156250, 55.60156250) +[2618637.705] {Default Queue} wl_pointer#2793.motion(187310271, 20.60156250, 55.60156250) +[2618637.709] {Default Queue} wl_pointer#2825.motion(187310271, 20.60156250, 55.60156250) +[2618637.714] {Default Queue} wl_pointer#2857.motion(187310271, 20.60156250, 55.60156250) +[2618637.718] {Default Queue} wl_pointer#2889.motion(187310271, 20.60156250, 55.60156250) +[2618637.722] {Default Queue} wl_pointer#2921.motion(187310271, 20.60156250, 55.60156250) +[2618637.727] {Default Queue} wl_pointer#2953.motion(187310271, 20.60156250, 55.60156250) +[2618637.731] {Default Queue} wl_pointer#2985.motion(187310271, 20.60156250, 55.60156250) +[2618637.738] {Default Queue} wl_pointer#3017.motion(187310271, 20.60156250, 55.60156250) +[2618637.744] {Default Queue} wl_pointer#3049.motion(187310271, 20.60156250, 55.60156250) +[2618637.749] {Default Queue} wl_pointer#3081.motion(187310271, 20.60156250, 55.60156250) +[2618637.753] {Default Queue} wl_pointer#3113.motion(187310271, 20.60156250, 55.60156250) +[2618637.757] {Default Queue} wl_pointer#3145.motion(187310271, 20.60156250, 55.60156250) +[2618637.761] {Default Queue} wl_pointer#3177.motion(187310271, 20.60156250, 55.60156250) +[2618637.766] {Default Queue} wl_pointer#3209.motion(187310271, 20.60156250, 55.60156250) +[2618637.770] {Default Queue} wl_pointer#3241.motion(187310271, 20.60156250, 55.60156250) +[2618637.774] {Default Queue} wl_pointer#3273.motion(187310271, 20.60156250, 55.60156250) +[2618637.779] {Default Queue} wl_pointer#3305.motion(187310271, 20.60156250, 55.60156250) +[2618637.783] {Default Queue} wl_pointer#3337.motion(187310271, 20.60156250, 55.60156250) +[2618637.787] {Default Queue} wl_pointer#3369.motion(187310271, 20.60156250, 55.60156250) +[2618637.791] {Default Queue} wl_pointer#3401.motion(187310271, 20.60156250, 55.60156250) +[2618637.795] {Default Queue} wl_pointer#3433.motion(187310271, 20.60156250, 55.60156250) +[2618637.800] {Default Queue} wl_pointer#3465.motion(187310271, 20.60156250, 55.60156250) +[2618637.804] {Default Queue} wl_pointer#3497.motion(187310271, 20.60156250, 55.60156250) +[2618637.809] {Default Queue} wl_pointer#3529.motion(187310271, 20.60156250, 55.60156250) +[2618637.813] {Default Queue} wl_pointer#3561.motion(187310271, 20.60156250, 55.60156250) +[2618637.817] {Default Queue} wl_pointer#3593.motion(187310271, 20.60156250, 55.60156250) +[2618637.821] {Default Queue} wl_pointer#3625.motion(187310271, 20.60156250, 55.60156250) +[2618637.826] {Default Queue} wl_pointer#3657.motion(187310271, 20.60156250, 55.60156250) +[2618637.830] {Default Queue} wl_pointer#3695.motion(187310271, 20.60156250, 55.60156250) +[2618637.834] {Default Queue} wl_pointer#24.motion(187310271, 21.39843750, 54.39843750) +[2618637.838] {Default Queue} wl_pointer#81.motion(187310271, 21.39843750, 54.39843750) +[2618637.843] {Default Queue} wl_pointer#105.motion(187310271, 21.39843750, 54.39843750) +[2618637.848] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618637.852] {Default Queue} wl_pointer#137.motion(187310271, 21.39843750, 54.39843750) +[2618637.856] {Default Queue} wl_pointer#169.motion(187310271, 21.39843750, 54.39843750) +[2618637.869] {Default Queue} wl_pointer#201.motion(187310271, 21.39843750, 54.39843750) +[2618637.894] {Default Queue} wl_pointer#233.motion(187310271, 21.39843750, 54.39843750) +[2618637.898] {Default Queue} wl_pointer#265.motion(187310271, 21.39843750, 54.39843750) +[2618637.903] {Default Queue} wl_pointer#297.motion(187310271, 21.39843750, 54.39843750) +[2618637.907] {Default Queue} wl_pointer#329.motion(187310271, 21.39843750, 54.39843750) +[2618637.911] {Default Queue} wl_pointer#361.motion(187310271, 21.39843750, 54.39843750) +[2618637.915] {Default Queue} wl_pointer#393.motion(187310271, 21.39843750, 54.39843750) +[2618637.920] {Default Queue} wl_pointer#425.motion(187310271, 21.39843750, 54.39843750) +[2618637.924] {Default Queue} wl_pointer#457.motion(187310271, 21.39843750, 54.39843750) +[2618637.928] {Default Queue} wl_pointer#489.motion(187310271, 21.39843750, 54.39843750) +[2618637.933] {Default Queue} wl_pointer#521.motion(187310271, 21.39843750, 54.39843750) +[2618637.937] {Default Queue} wl_pointer#553.motion(187310271, 21.39843750, 54.39843750) +[2618637.941] {Default Queue} wl_pointer#585.motion(187310271, 21.39843750, 54.39843750) +[2618637.945] {Default Queue} wl_pointer#617.motion(187310271, 21.39843750, 54.39843750) +[2618637.950] {Default Queue} wl_pointer#649.motion(187310271, 21.39843750, 54.39843750) +[2618637.954] {Default Queue} wl_pointer#681.motion(187310271, 21.39843750, 54.39843750) +[2618637.958] {Default Queue} wl_pointer#713.motion(187310271, 21.39843750, 54.39843750) +[2618637.967] {Default Queue} wl_pointer#745.motion(187310271, 21.39843750, 54.39843750) +[2618637.975] {Default Queue} wl_pointer#777.motion(187310271, 21.39843750, 54.39843750) +[2618637.980] {Default Queue} wl_pointer#809.motion(187310271, 21.39843750, 54.39843750) +[2618637.984] {Default Queue} wl_pointer#841.motion(187310271, 21.39843750, 54.39843750) +[2618637.988] {Default Queue} wl_pointer#873.motion(187310271, 21.39843750, 54.39843750) +[2618637.992] {Default Queue} wl_pointer#905.motion(187310271, 21.39843750, 54.39843750) +[2618637.997] {Default Queue} wl_pointer#937.motion(187310271, 21.39843750, 54.39843750) +[2618638.001] {Default Queue} wl_pointer#969.motion(187310271, 21.39843750, 54.39843750) +[2618638.005] {Default Queue} wl_pointer#1001.motion(187310271, 21.39843750, 54.39843750) +[2618638.009] {Default Queue} wl_pointer#1033.motion(187310271, 21.39843750, 54.39843750) +[2618638.014] {Default Queue} wl_pointer#1065.motion(187310271, 21.39843750, 54.39843750) +[2618638.018] {Default Queue} wl_pointer#1097.motion(187310271, 21.39843750, 54.39843750) +[2618638.022] {Default Queue} wl_pointer#1129.motion(187310271, 21.39843750, 54.39843750) +[2618638.027] {Default Queue} wl_pointer#1161.motion(187310271, 21.39843750, 54.39843750) +[2618638.031] {Default Queue} wl_pointer#1193.motion(187310271, 21.39843750, 54.39843750) +[2618638.035] {Default Queue} wl_pointer#1225.motion(187310271, 21.39843750, 54.39843750) +[2618638.039] {Default Queue} wl_pointer#1257.motion(187310271, 21.39843750, 54.39843750) +[2618638.044] {Default Queue} wl_pointer#1289.motion(187310271, 21.39843750, 54.39843750) +[2618638.048] {Default Queue} wl_pointer#1321.motion(187310271, 21.39843750, 54.39843750) +[2618638.052] {Default Queue} wl_pointer#1353.motion(187310271, 21.39843750, 54.39843750) +[2618638.056] {Default Queue} wl_pointer#1385.motion(187310271, 21.39843750, 54.39843750) +[2618638.061] {Default Queue} wl_pointer#1417.motion(187310271, 21.39843750, 54.39843750) +[2618638.065] {Default Queue} wl_pointer#1449.motion(187310271, 21.39843750, 54.39843750) +[2618638.069] {Default Queue} wl_pointer#1481.motion(187310271, 21.39843750, 54.39843750) +[2618638.073] {Default Queue} wl_pointer#1513.motion(187310271, 21.39843750, 54.39843750) +[2618638.078] {Default Queue} wl_pointer#1545.motion(187310271, 21.39843750, 54.39843750) +[2618638.082] {Default Queue} wl_pointer#1577.motion(187310271, 21.39843750, 54.39843750) +[2618638.086] {Default Queue} wl_pointer#1609.motion(187310271, 21.39843750, 54.39843750) +[2618638.091] {Default Queue} wl_pointer#1641.motion(187310271, 21.39843750, 54.39843750) +[2618638.095] {Default Queue} wl_pointer#1673.motion(187310271, 21.39843750, 54.39843750) +[2618638.099] {Default Queue} wl_pointer#1705.motion(187310271, 21.39843750, 54.39843750) +[2618638.103] {Default Queue} wl_pointer#1737.motion(187310271, 21.39843750, 54.39843750) +[2618638.108] {Default Queue} wl_pointer#1762.motion(187310271, 21.39843750, 54.39843750) +[2618638.112] {Default Queue} wl_pointer#1801.motion(187310271, 21.39843750, 54.39843750) +[2618638.116] {Default Queue} wl_pointer#1833.motion(187310271, 21.39843750, 54.39843750) +[2618638.121] {Default Queue} wl_pointer#1865.motion(187310271, 21.39843750, 54.39843750) +[2618638.125] {Default Queue} wl_pointer#1897.motion(187310271, 21.39843750, 54.39843750) +[2618638.129] {Default Queue} wl_pointer#1929.motion(187310271, 21.39843750, 54.39843750) +[2618638.133] {Default Queue} wl_pointer#1961.motion(187310271, 21.39843750, 54.39843750) +[2618638.138] {Default Queue} wl_pointer#1993.motion(187310271, 21.39843750, 54.39843750) +[2618638.142] {Default Queue} wl_pointer#2025.motion(187310271, 21.39843750, 54.39843750) +[2618638.146] {Default Queue} wl_pointer#2057.motion(187310271, 21.39843750, 54.39843750) +[2618638.150] {Default Queue} wl_pointer#2089.motion(187310271, 21.39843750, 54.39843750) +[2618638.155] {Default Queue} wl_pointer#2121.motion(187310271, 21.39843750, 54.39843750) +[2618638.159] {Default Queue} wl_pointer#2153.motion(187310271, 21.39843750, 54.39843750) +[2618638.163] {Default Queue} wl_pointer#2185.motion(187310271, 21.39843750, 54.39843750) +[2618638.170] {Default Queue} wl_pointer#2217.motion(187310271, 21.39843750, 54.39843750) +[2618638.176] {Default Queue} wl_pointer#2249.motion(187310271, 21.39843750, 54.39843750) +[2618638.180] {Default Queue} wl_pointer#2281.motion(187310271, 21.39843750, 54.39843750) +[2618638.184] {Default Queue} wl_pointer#2313.motion(187310271, 21.39843750, 54.39843750) +[2618638.189] {Default Queue} wl_pointer#2345.motion(187310271, 21.39843750, 54.39843750) +[2618638.193] {Default Queue} wl_pointer#2377.motion(187310271, 21.39843750, 54.39843750) +[2618638.197] {Default Queue} wl_pointer#2409.motion(187310271, 21.39843750, 54.39843750) +[2618638.202] {Default Queue} wl_pointer#2441.motion(187310271, 21.39843750, 54.39843750) +[2618638.206] {Default Queue} wl_pointer#2473.motion(187310271, 21.39843750, 54.39843750) +[2618638.210] {Default Queue} wl_pointer#2498.motion(187310271, 21.39843750, 54.39843750) +[2618638.220] {Default Queue} -> wl_buffer#3683.destroy() +[2618638.225] {Default Queue} -> wl_buffer#94.destroy() +[2618638.229] {Default Queue} -> wl_shm_pool#93.destroy() +[2618638.233] {Default Queue} -> wl_shm_pool#92.destroy() +[2618638.238] {Default Queue} -> wl_surface#91.destroy() +[2618638.270] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3483, fd 581, 640) +[2618638.276] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3486, fd 582, 640) +[2618638.280] {Default Queue} -> wl_shm_pool#3483.create_buffer(new id wl_buffer#3485, 0, 10, 16, 40, 0) +[2618638.285] {Default Queue} -> wl_shm_pool#3486.create_buffer(new id wl_buffer#3516, 0, 10, 16, 40, 0) +[2618638.292] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3515) +[2618638.296] {Default Queue} -> wl_surface#3515.attach(wl_buffer#3485, 0, 0) +[2618638.300] {Default Queue} -> wl_surface#3515.commit() +[2618638.305] {Default Queue} -> wl_surface#3515.attach(wl_buffer#3485, 0, 0) +[2618638.309] {Default Queue} -> wl_surface#3515.commit() +[2618638.313] {Default Queue} wl_pointer#2537.motion(187310271, 21.39843750, 54.39843750) +[2618638.318] {Default Queue} wl_pointer#2569.motion(187310271, 21.39843750, 54.39843750) +[2618638.322] {Default Queue} wl_pointer#2601.motion(187310271, 21.39843750, 54.39843750) +[2618638.326] {Default Queue} wl_pointer#2633.motion(187310271, 21.39843750, 54.39843750) +[2618638.331] {Default Queue} wl_pointer#2665.motion(187310271, 21.39843750, 54.39843750) +[2618638.335] {Default Queue} wl_pointer#2697.motion(187310271, 21.39843750, 54.39843750) +[2618638.339] {Default Queue} wl_pointer#2729.motion(187310271, 21.39843750, 54.39843750) +[2618638.344] {Default Queue} wl_pointer#2761.motion(187310271, 21.39843750, 54.39843750) +[2618638.348] {Default Queue} wl_pointer#2793.motion(187310271, 21.39843750, 54.39843750) +[2618638.352] {Default Queue} wl_pointer#2825.motion(187310271, 21.39843750, 54.39843750) +[2618638.357] {Default Queue} wl_pointer#2857.motion(187310271, 21.39843750, 54.39843750) +[2618638.364] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) +[2618638.368] {Default Queue} -> wl_surface#1031.commit() +[2618638.373] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) +[2618638.378] {Default Queue} -> wl_surface#999.commit() +[2618639.442] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) +[2618639.449] {Default Queue} -> wl_surface#999.commit() +[2618639.459] {Default Queue} -> wl_region#1023.subtract(0, 0, 19, 48) +[2618639.463] {Default Queue} -> wl_region#1023.add(-20, -49, 19, 48) +[2618639.467] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) +[2618639.472] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) +[2618639.477] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) +[2618639.482] {Default Queue} -> wl_surface#999.commit() +[2618639.486] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) +[2618639.490] {Default Queue} -> wl_surface#999.commit() +[2618639.496] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) +[2618639.500] {Default Queue} -> wl_surface#999.commit() +[2618639.510] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) +[2618639.517] {Default Queue} -> wl_surface#935.commit() +[2618640.578] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) +[2618640.583] {Default Queue} -> wl_surface#935.commit() +[2618640.589] {Default Queue} -> wl_region#959.subtract(0, 0, 22, 51) +[2618640.594] {Default Queue} -> wl_region#959.add(-20, -49, 19, 48) +[2618640.598] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) +[2618640.602] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) +[2618640.607] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) +[2618640.611] {Default Queue} -> wl_surface#935.commit() +[2618640.615] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) +[2618640.619] {Default Queue} -> wl_surface#935.commit() +[2618640.624] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) +[2618640.629] {Default Queue} -> wl_surface#935.commit() +[2618640.634] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) +[2618640.638] {Default Queue} -> wl_surface#903.commit() +[2618641.396] {Display Queue} wl_display#1.delete_id(3684) +[2618641.402] {Display Queue} wl_display#1.delete_id(3681) +[2618641.406] {Display Queue} wl_display#1.delete_id(3682) +[2618641.410] {Display Queue} wl_display#1.delete_id(3679) +[2618641.414] {Display Queue} wl_display#1.delete_id(3671) +[2618641.418] {Display Queue} wl_display#1.delete_id(3294) +[2618641.422] {Display Queue} wl_display#1.delete_id(3293) +[2618641.426] {Display Queue} wl_display#1.delete_id(3292) +[2618641.429] {Display Queue} wl_display#1.delete_id(3291) +[2618641.433] {Display Queue} wl_display#1.delete_id(3484) +[2618641.437] {Default Queue} wl_pointer#2889.motion(187310271, 21.39843750, 54.39843750) +[2618641.442] {Default Queue} wl_pointer#2921.motion(187310271, 21.39843750, 54.39843750) +[2618641.446] {Default Queue} wl_pointer#2953.motion(187310271, 21.39843750, 54.39843750) +[2618641.451] {Default Queue} wl_pointer#2985.motion(187310271, 21.39843750, 54.39843750) +[2618641.455] {Default Queue} wl_pointer#3017.motion(187310271, 21.39843750, 54.39843750) +[2618641.459] {Default Queue} wl_pointer#3049.motion(187310271, 21.39843750, 54.39843750) +[2618641.464] {Default Queue} wl_pointer#3081.motion(187310271, 21.39843750, 54.39843750) +[2618641.468] {Default Queue} wl_pointer#3113.motion(187310271, 21.39843750, 54.39843750) +[2618641.473] {Default Queue} wl_pointer#3145.motion(187310271, 21.39843750, 54.39843750) +[2618641.477] {Default Queue} wl_pointer#3177.motion(187310271, 21.39843750, 54.39843750) +[2618641.481] {Default Queue} wl_pointer#3209.motion(187310271, 21.39843750, 54.39843750) +[2618641.486] {Default Queue} wl_pointer#3241.motion(187310271, 21.39843750, 54.39843750) +[2618641.490] {Default Queue} wl_pointer#3273.motion(187310271, 21.39843750, 54.39843750) +[2618641.494] {Default Queue} wl_pointer#3305.motion(187310271, 21.39843750, 54.39843750) +[2618641.498] {Default Queue} wl_pointer#3337.motion(187310271, 21.39843750, 54.39843750) +[2618641.503] {Default Queue} wl_pointer#3369.motion(187310271, 21.39843750, 54.39843750) +[2618641.507] {Default Queue} wl_pointer#3401.motion(187310271, 21.39843750, 54.39843750) +[2618641.511] {Default Queue} wl_pointer#3433.motion(187310271, 21.39843750, 54.39843750) +[2618641.516] {Default Queue} wl_pointer#3465.motion(187310271, 21.39843750, 54.39843750) +[2618641.520] {Default Queue} wl_pointer#3497.motion(187310271, 21.39843750, 54.39843750) +[2618641.525] {Default Queue} wl_pointer#3529.motion(187310271, 21.39843750, 54.39843750) +[2618641.529] {Default Queue} wl_pointer#3561.motion(187310271, 21.39843750, 54.39843750) +[2618641.533] {Default Queue} wl_pointer#3593.motion(187310271, 21.39843750, 54.39843750) +[2618641.537] {Default Queue} wl_pointer#3625.motion(187310271, 21.39843750, 54.39843750) +[2618641.542] {Default Queue} wl_pointer#3657.motion(187310271, 21.39843750, 54.39843750) +[2618641.546] {Default Queue} wl_pointer#3695.motion(187310271, 21.39843750, 54.39843750) +[2618641.555] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) +[2618641.563] {Default Queue} -> wl_region#927.add(0, 0, 2, 2) +[2618641.569] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618641.573] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618641.581] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) +[2618641.585] {Default Queue} -> wl_region#927.add(0, 0, 2, 2) +[2618641.589] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618641.593] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618641.598] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) +[2618641.603] {Default Queue} -> wl_region#927.add(0, 0, 2, 2) +[2618641.607] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618641.611] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618641.616] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) +[2618641.620] {Default Queue} -> wl_region#927.add(0, 0, 2, 2) +[2618641.624] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618641.628] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618641.635] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) +[2618641.639] {Default Queue} -> wl_region#927.add(0, 0, 2, 2) +[2618641.643] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618641.647] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618641.652] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) +[2618641.656] {Default Queue} -> wl_surface#903.commit() +[2618641.660] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) +[2618641.664] {Default Queue} -> wl_surface#903.commit() +[2618641.688] {Default Queue} wl_pointer#24.motion(187310276, 21.80078125, 53.60156250) +[2618641.693] {Default Queue} wl_pointer#81.motion(187310276, 21.80078125, 53.60156250) +[2618641.698] {Default Queue} wl_pointer#105.motion(187310276, 21.80078125, 53.60156250) +[2618641.703] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618641.707] {Default Queue} wl_pointer#137.motion(187310276, 21.80078125, 53.60156250) +[2618641.711] {Default Queue} wl_pointer#169.motion(187310276, 21.80078125, 53.60156250) +[2618641.716] {Default Queue} wl_pointer#201.motion(187310276, 21.80078125, 53.60156250) +[2618641.720] {Default Queue} wl_pointer#233.motion(187310276, 21.80078125, 53.60156250) +[2618641.724] {Default Queue} wl_pointer#265.motion(187310276, 21.80078125, 53.60156250) +[2618641.728] {Default Queue} wl_pointer#297.motion(187310276, 21.80078125, 53.60156250) +[2618641.733] {Default Queue} wl_pointer#329.motion(187310276, 21.80078125, 53.60156250) +[2618641.737] {Default Queue} wl_pointer#361.motion(187310276, 21.80078125, 53.60156250) +[2618641.741] {Default Queue} wl_pointer#393.motion(187310276, 21.80078125, 53.60156250) +[2618641.746] {Default Queue} wl_pointer#425.motion(187310276, 21.80078125, 53.60156250) +[2618641.750] {Default Queue} wl_pointer#457.motion(187310276, 21.80078125, 53.60156250) +[2618641.754] {Default Queue} wl_pointer#489.motion(187310276, 21.80078125, 53.60156250) +[2618641.759] {Default Queue} wl_pointer#521.motion(187310276, 21.80078125, 53.60156250) +[2618641.763] {Default Queue} wl_pointer#553.motion(187310276, 21.80078125, 53.60156250) +[2618641.767] {Default Queue} wl_pointer#585.motion(187310276, 21.80078125, 53.60156250) +[2618641.771] {Default Queue} wl_pointer#617.motion(187310276, 21.80078125, 53.60156250) +[2618641.776] {Default Queue} wl_pointer#649.motion(187310276, 21.80078125, 53.60156250) +[2618641.780] {Default Queue} wl_pointer#681.motion(187310276, 21.80078125, 53.60156250) +[2618641.784] {Default Queue} wl_pointer#713.motion(187310276, 21.80078125, 53.60156250) +[2618641.788] {Default Queue} wl_pointer#745.motion(187310276, 21.80078125, 53.60156250) +[2618641.793] {Default Queue} wl_pointer#777.motion(187310276, 21.80078125, 53.60156250) +[2618641.797] {Default Queue} wl_pointer#809.motion(187310276, 21.80078125, 53.60156250) +[2618641.801] {Default Queue} wl_pointer#841.motion(187310276, 21.80078125, 53.60156250) +[2618641.808] {Default Queue} wl_pointer#873.motion(187310276, 21.80078125, 53.60156250) +[2618641.814] {Default Queue} wl_pointer#905.motion(187310276, 21.80078125, 53.60156250) +[2618641.818] {Default Queue} wl_pointer#937.motion(187310276, 21.80078125, 53.60156250) +[2618641.822] {Default Queue} wl_pointer#969.motion(187310276, 21.80078125, 53.60156250) +[2618641.827] {Default Queue} wl_pointer#1001.motion(187310276, 21.80078125, 53.60156250) +[2618641.831] {Default Queue} wl_pointer#1033.motion(187310276, 21.80078125, 53.60156250) +[2618641.835] {Default Queue} wl_pointer#1065.motion(187310276, 21.80078125, 53.60156250) +[2618641.839] {Default Queue} wl_pointer#1097.motion(187310276, 21.80078125, 53.60156250) +[2618641.844] {Default Queue} wl_pointer#1129.motion(187310276, 21.80078125, 53.60156250) +[2618641.848] {Default Queue} wl_pointer#1161.motion(187310276, 21.80078125, 53.60156250) +[2618641.853] {Default Queue} wl_pointer#1193.motion(187310276, 21.80078125, 53.60156250) +[2618641.857] {Default Queue} wl_pointer#1225.motion(187310276, 21.80078125, 53.60156250) +[2618641.865] {Default Queue} wl_pointer#1257.motion(187310276, 21.80078125, 53.60156250) +[2618641.869] {Default Queue} wl_pointer#1289.motion(187310276, 21.80078125, 53.60156250) +[2618641.874] {Default Queue} wl_pointer#1321.motion(187310276, 21.80078125, 53.60156250) +[2618641.878] {Default Queue} wl_pointer#1353.motion(187310276, 21.80078125, 53.60156250) +[2618641.907] {Default Queue} wl_pointer#1385.motion(187310276, 21.80078125, 53.60156250) +[2618641.917] {Default Queue} wl_pointer#1417.motion(187310276, 21.80078125, 53.60156250) +[2618641.924] {Default Queue} wl_pointer#1449.motion(187310276, 21.80078125, 53.60156250) +[2618641.930] {Default Queue} wl_pointer#1481.motion(187310276, 21.80078125, 53.60156250) +[2618641.935] {Default Queue} wl_pointer#1513.motion(187310276, 21.80078125, 53.60156250) +[2618641.939] {Default Queue} wl_pointer#1545.motion(187310276, 21.80078125, 53.60156250) +[2618641.944] {Default Queue} wl_pointer#1577.motion(187310276, 21.80078125, 53.60156250) +[2618641.948] {Default Queue} wl_pointer#1609.motion(187310276, 21.80078125, 53.60156250) +[2618641.952] {Default Queue} wl_pointer#1641.motion(187310276, 21.80078125, 53.60156250) +[2618641.957] {Default Queue} wl_pointer#1673.motion(187310276, 21.80078125, 53.60156250) +[2618641.961] {Default Queue} wl_pointer#1705.motion(187310276, 21.80078125, 53.60156250) +[2618641.965] {Default Queue} wl_pointer#1737.motion(187310276, 21.80078125, 53.60156250) +[2618641.969] {Default Queue} wl_pointer#1762.motion(187310276, 21.80078125, 53.60156250) +[2618641.974] {Default Queue} wl_pointer#1801.motion(187310276, 21.80078125, 53.60156250) +[2618641.978] {Default Queue} wl_pointer#1833.motion(187310276, 21.80078125, 53.60156250) +[2618641.982] {Default Queue} wl_pointer#1865.motion(187310276, 21.80078125, 53.60156250) +[2618641.987] {Default Queue} wl_pointer#1897.motion(187310276, 21.80078125, 53.60156250) +[2618641.992] {Default Queue} wl_pointer#1929.motion(187310276, 21.80078125, 53.60156250) +[2618641.996] {Default Queue} wl_pointer#1961.motion(187310276, 21.80078125, 53.60156250) +[2618642.000] {Default Queue} wl_pointer#1993.motion(187310276, 21.80078125, 53.60156250) +[2618642.005] {Default Queue} wl_pointer#2025.motion(187310276, 21.80078125, 53.60156250) +[2618642.009] {Default Queue} wl_pointer#2057.motion(187310276, 21.80078125, 53.60156250) +[2618642.013] {Default Queue} wl_pointer#2089.motion(187310276, 21.80078125, 53.60156250) +[2618642.018] {Default Queue} wl_pointer#2121.motion(187310276, 21.80078125, 53.60156250) +[2618642.022] {Default Queue} wl_pointer#2153.motion(187310276, 21.80078125, 53.60156250) +[2618642.026] {Default Queue} wl_pointer#2185.motion(187310276, 21.80078125, 53.60156250) +[2618642.030] {Default Queue} wl_pointer#2217.motion(187310276, 21.80078125, 53.60156250) +[2618642.035] {Default Queue} wl_pointer#2249.motion(187310276, 21.80078125, 53.60156250) +[2618642.039] {Default Queue} wl_pointer#2281.motion(187310276, 21.80078125, 53.60156250) +[2618642.043] {Default Queue} wl_pointer#2313.motion(187310276, 21.80078125, 53.60156250) +[2618642.053] {Default Queue} wl_pointer#2345.motion(187310276, 21.80078125, 53.60156250) +[2618642.061] {Default Queue} wl_pointer#2377.motion(187310276, 21.80078125, 53.60156250) +[2618642.065] {Default Queue} wl_pointer#2409.motion(187310276, 21.80078125, 53.60156250) +[2618642.070] {Default Queue} wl_pointer#2441.motion(187310276, 21.80078125, 53.60156250) +[2618642.074] {Default Queue} wl_pointer#2473.motion(187310276, 21.80078125, 53.60156250) +[2618642.078] {Default Queue} wl_pointer#2498.motion(187310276, 21.80078125, 53.60156250) +[2618642.092] {Default Queue} -> wl_buffer#3485.destroy() +[2618642.097] {Default Queue} -> wl_buffer#3516.destroy() +[2618642.101] {Default Queue} -> wl_shm_pool#3483.destroy() +[2618642.105] {Default Queue} -> wl_shm_pool#3486.destroy() +[2618642.110] {Default Queue} -> wl_surface#3515.destroy() +[2618642.155] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3484, fd 575, 640) +[2618642.162] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 578, 640) +[2618642.167] {Default Queue} -> wl_shm_pool#3484.create_buffer(new id wl_buffer#3292, 0, 10, 16, 40, 0) +[2618642.171] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) +[2618642.179] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3294) +[2618642.185] {Default Queue} -> wl_surface#3294.attach(wl_buffer#3292, 0, 0) +[2618642.190] {Default Queue} -> wl_surface#3294.commit() +[2618642.195] {Default Queue} -> wl_surface#3294.attach(wl_buffer#3292, 0, 0) +[2618642.199] {Default Queue} -> wl_surface#3294.commit() +[2618642.204] {Default Queue} wl_pointer#2537.motion(187310276, 21.80078125, 53.60156250) +[2618642.208] {Default Queue} wl_pointer#2569.motion(187310276, 21.80078125, 53.60156250) +[2618642.213] {Default Queue} wl_pointer#2601.motion(187310276, 21.80078125, 53.60156250) +[2618642.217] {Default Queue} wl_pointer#2633.motion(187310276, 21.80078125, 53.60156250) +[2618642.222] {Default Queue} wl_pointer#2665.motion(187310276, 21.80078125, 53.60156250) +[2618642.226] {Default Queue} wl_pointer#2697.motion(187310276, 21.80078125, 53.60156250) +[2618642.230] {Default Queue} wl_pointer#2729.motion(187310276, 21.80078125, 53.60156250) +[2618642.235] {Default Queue} wl_pointer#2761.motion(187310276, 21.80078125, 53.60156250) +[2618642.239] {Default Queue} wl_pointer#2793.motion(187310276, 21.80078125, 53.60156250) +[2618642.243] {Default Queue} wl_pointer#2825.motion(187310276, 21.80078125, 53.60156250) +[2618642.248] {Default Queue} wl_pointer#2857.motion(187310276, 21.80078125, 53.60156250) +[2618642.252] {Default Queue} wl_pointer#2889.motion(187310276, 21.80078125, 53.60156250) +[2618642.257] {Default Queue} wl_pointer#2921.motion(187310276, 21.80078125, 53.60156250) +[2618642.261] {Default Queue} wl_pointer#2953.motion(187310276, 21.80078125, 53.60156250) +[2618642.265] {Default Queue} wl_pointer#2985.motion(187310276, 21.80078125, 53.60156250) +[2618642.270] {Default Queue} wl_pointer#3017.motion(187310276, 21.80078125, 53.60156250) +[2618642.274] {Default Queue} wl_pointer#3049.motion(187310276, 21.80078125, 53.60156250) +[2618642.278] {Default Queue} wl_pointer#3081.motion(187310276, 21.80078125, 53.60156250) +[2618642.282] {Default Queue} wl_pointer#3113.motion(187310276, 21.80078125, 53.60156250) +[2618642.287] {Default Queue} wl_pointer#3145.motion(187310276, 21.80078125, 53.60156250) +[2618642.291] {Default Queue} wl_pointer#3177.motion(187310276, 21.80078125, 53.60156250) +[2618642.295] {Default Queue} wl_pointer#3209.motion(187310276, 21.80078125, 53.60156250) +[2618642.300] {Default Queue} wl_pointer#3241.motion(187310276, 21.80078125, 53.60156250) +[2618642.304] {Default Queue} wl_pointer#3273.motion(187310276, 21.80078125, 53.60156250) +[2618642.308] {Default Queue} wl_pointer#3305.motion(187310276, 21.80078125, 53.60156250) +[2618642.313] {Default Queue} wl_pointer#3337.motion(187310276, 21.80078125, 53.60156250) +[2618642.317] {Default Queue} wl_pointer#3369.motion(187310276, 21.80078125, 53.60156250) +[2618642.328] {Default Queue} wl_pointer#3401.motion(187310276, 21.80078125, 53.60156250) +[2618642.337] {Default Queue} wl_pointer#3433.motion(187310276, 21.80078125, 53.60156250) +[2618642.344] {Default Queue} wl_pointer#3465.motion(187310276, 21.80078125, 53.60156250) +[2618642.350] {Default Queue} wl_pointer#3497.motion(187310276, 21.80078125, 53.60156250) +[2618642.356] {Default Queue} wl_pointer#3529.motion(187310276, 21.80078125, 53.60156250) +[2618642.361] {Default Queue} wl_pointer#3561.motion(187310276, 21.80078125, 53.60156250) +[2618642.367] {Default Queue} wl_pointer#3593.motion(187310276, 21.80078125, 53.60156250) +[2618642.373] {Default Queue} wl_pointer#3625.motion(187310276, 21.80078125, 53.60156250) +[2618642.379] {Default Queue} wl_pointer#3657.motion(187310276, 21.80078125, 53.60156250) +[2618642.384] {Default Queue} wl_pointer#3695.motion(187310276, 21.80078125, 53.60156250) +[2618642.389] {Default Queue} wl_pointer#24.motion(187310276, 22.60156250, 52.39843750) +[2618642.394] {Default Queue} wl_pointer#81.motion(187310276, 22.60156250, 52.39843750) +[2618642.399] {Default Queue} wl_pointer#105.motion(187310276, 22.60156250, 52.39843750) +[2618642.404] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618642.409] {Default Queue} wl_pointer#137.motion(187310276, 22.60156250, 52.39843750) +[2618642.413] {Default Queue} wl_pointer#169.motion(187310276, 22.60156250, 52.39843750) +[2618642.417] {Default Queue} wl_pointer#201.motion(187310276, 22.60156250, 52.39843750) +[2618642.422] {Default Queue} wl_pointer#233.motion(187310276, 22.60156250, 52.39843750) +[2618642.426] {Default Queue} wl_pointer#265.motion(187310276, 22.60156250, 52.39843750) +[2618642.430] {Default Queue} wl_pointer#297.motion(187310276, 22.60156250, 52.39843750) +[2618642.435] {Default Queue} wl_pointer#329.motion(187310276, 22.60156250, 52.39843750) +[2618642.439] {Default Queue} wl_pointer#361.motion(187310276, 22.60156250, 52.39843750) +[2618642.443] {Default Queue} wl_pointer#393.motion(187310276, 22.60156250, 52.39843750) +[2618642.448] {Default Queue} wl_pointer#425.motion(187310276, 22.60156250, 52.39843750) +[2618642.452] {Default Queue} wl_pointer#457.motion(187310276, 22.60156250, 52.39843750) +[2618642.456] {Default Queue} wl_pointer#489.motion(187310276, 22.60156250, 52.39843750) +[2618642.461] {Default Queue} wl_pointer#521.motion(187310276, 22.60156250, 52.39843750) +[2618642.465] {Default Queue} wl_pointer#553.motion(187310276, 22.60156250, 52.39843750) +[2618642.469] {Default Queue} wl_pointer#585.motion(187310276, 22.60156250, 52.39843750) +[2618642.474] {Default Queue} wl_pointer#617.motion(187310276, 22.60156250, 52.39843750) +[2618642.478] {Default Queue} wl_pointer#649.motion(187310276, 22.60156250, 52.39843750) +[2618642.483] {Default Queue} wl_pointer#681.motion(187310276, 22.60156250, 52.39843750) +[2618642.489] {Default Queue} wl_pointer#713.motion(187310276, 22.60156250, 52.39843750) +[2618642.495] {Default Queue} wl_pointer#745.motion(187310276, 22.60156250, 52.39843750) +[2618642.500] {Default Queue} wl_pointer#777.motion(187310276, 22.60156250, 52.39843750) +[2618642.505] {Default Queue} wl_pointer#809.motion(187310276, 22.60156250, 52.39843750) +[2618642.509] {Default Queue} wl_pointer#841.motion(187310276, 22.60156250, 52.39843750) +[2618642.513] {Default Queue} wl_pointer#873.motion(187310276, 22.60156250, 52.39843750) +[2618642.518] {Default Queue} wl_pointer#905.motion(187310276, 22.60156250, 52.39843750) +[2618642.522] {Default Queue} wl_pointer#937.motion(187310276, 22.60156250, 52.39843750) +[2618642.526] {Default Queue} wl_pointer#969.motion(187310276, 22.60156250, 52.39843750) +[2618642.531] {Default Queue} wl_pointer#1001.motion(187310276, 22.60156250, 52.39843750) +[2618642.535] {Default Queue} wl_pointer#1033.motion(187310276, 22.60156250, 52.39843750) +[2618642.539] {Default Queue} wl_pointer#1065.motion(187310276, 22.60156250, 52.39843750) +[2618642.544] {Default Queue} wl_pointer#1097.motion(187310276, 22.60156250, 52.39843750) +[2618642.548] {Default Queue} wl_pointer#1129.motion(187310276, 22.60156250, 52.39843750) +[2618642.556] {Default Queue} wl_pointer#1161.motion(187310276, 22.60156250, 52.39843750) +[2618642.562] {Default Queue} wl_pointer#1193.motion(187310276, 22.60156250, 52.39843750) +[2618642.568] {Default Queue} wl_pointer#1225.motion(187310276, 22.60156250, 52.39843750) +[2618642.574] {Default Queue} wl_pointer#1257.motion(187310276, 22.60156250, 52.39843750) +[2618642.580] {Default Queue} wl_pointer#1289.motion(187310276, 22.60156250, 52.39843750) +[2618642.586] {Default Queue} wl_pointer#1321.motion(187310276, 22.60156250, 52.39843750) +[2618642.591] {Default Queue} wl_pointer#1353.motion(187310276, 22.60156250, 52.39843750) +[2618642.597] {Default Queue} wl_pointer#1385.motion(187310276, 22.60156250, 52.39843750) +[2618642.602] {Default Queue} wl_pointer#1417.motion(187310276, 22.60156250, 52.39843750) +[2618642.608] {Default Queue} wl_pointer#1449.motion(187310276, 22.60156250, 52.39843750) +[2618642.614] {Default Queue} wl_pointer#1481.motion(187310276, 22.60156250, 52.39843750) +[2618642.619] {Default Queue} wl_pointer#1513.motion(187310276, 22.60156250, 52.39843750) +[2618642.625] {Default Queue} wl_pointer#1545.motion(187310276, 22.60156250, 52.39843750) +[2618642.643] {Default Queue} wl_pointer#1577.motion(187310276, 22.60156250, 52.39843750) +[2618642.648] {Default Queue} wl_pointer#1609.motion(187310276, 22.60156250, 52.39843750) +[2618642.653] {Default Queue} wl_pointer#1641.motion(187310276, 22.60156250, 52.39843750) +[2618642.657] {Default Queue} wl_pointer#1673.motion(187310276, 22.60156250, 52.39843750) +[2618642.661] {Default Queue} wl_pointer#1705.motion(187310276, 22.60156250, 52.39843750) +[2618642.666] {Default Queue} wl_pointer#1737.motion(187310276, 22.60156250, 52.39843750) +[2618642.670] {Default Queue} wl_pointer#1762.motion(187310276, 22.60156250, 52.39843750) +[2618642.674] {Default Queue} wl_pointer#1801.motion(187310276, 22.60156250, 52.39843750) +[2618642.679] {Default Queue} wl_pointer#1833.motion(187310276, 22.60156250, 52.39843750) +[2618642.683] {Default Queue} wl_pointer#1865.motion(187310276, 22.60156250, 52.39843750) +[2618642.687] {Default Queue} wl_pointer#1897.motion(187310276, 22.60156250, 52.39843750) +[2618642.692] {Default Queue} wl_pointer#1929.motion(187310276, 22.60156250, 52.39843750) +[2618642.696] {Default Queue} wl_pointer#1961.motion(187310276, 22.60156250, 52.39843750) +[2618642.700] {Default Queue} wl_pointer#1993.motion(187310276, 22.60156250, 52.39843750) +[2618642.704] {Default Queue} wl_pointer#2025.motion(187310276, 22.60156250, 52.39843750) +[2618642.709] {Default Queue} wl_pointer#2057.motion(187310276, 22.60156250, 52.39843750) +[2618642.713] {Default Queue} wl_pointer#2089.motion(187310276, 22.60156250, 52.39843750) +[2618642.717] {Default Queue} wl_pointer#2121.motion(187310276, 22.60156250, 52.39843750) +[2618642.722] {Default Queue} wl_pointer#2153.motion(187310276, 22.60156250, 52.39843750) +[2618642.726] {Default Queue} wl_pointer#2185.motion(187310276, 22.60156250, 52.39843750) +[2618642.730] {Default Queue} wl_pointer#2217.motion(187310276, 22.60156250, 52.39843750) +[2618642.734] {Default Queue} wl_pointer#2249.motion(187310276, 22.60156250, 52.39843750) +[2618642.739] {Default Queue} wl_pointer#2281.motion(187310276, 22.60156250, 52.39843750) +[2618642.743] {Default Queue} wl_pointer#2313.motion(187310276, 22.60156250, 52.39843750) +[2618642.748] {Default Queue} wl_pointer#2345.motion(187310276, 22.60156250, 52.39843750) +[2618642.752] {Default Queue} wl_pointer#2377.motion(187310276, 22.60156250, 52.39843750) +[2618642.756] {Default Queue} wl_pointer#2409.motion(187310276, 22.60156250, 52.39843750) +[2618642.761] {Default Queue} wl_pointer#2441.motion(187310276, 22.60156250, 52.39843750) +[2618642.765] {Default Queue} wl_pointer#2473.motion(187310276, 22.60156250, 52.39843750) +[2618642.769] {Default Queue} wl_pointer#2498.motion(187310276, 22.60156250, 52.39843750) +[2618642.781] {Default Queue} -> wl_buffer#3292.destroy() +[2618642.786] {Default Queue} -> wl_buffer#3293.destroy() +[2618642.790] {Default Queue} -> wl_shm_pool#3484.destroy() +[2618642.794] {Default Queue} -> wl_shm_pool#3291.destroy() +[2618642.803] {Default Queue} -> wl_surface#3294.destroy() +[2618642.844] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3671, fd 581, 640) +[2618642.849] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 582, 640) +[2618642.854] {Default Queue} -> wl_shm_pool#3671.create_buffer(new id wl_buffer#3682, 0, 10, 16, 40, 0) +[2618642.858] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) +[2618642.872] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3684) +[2618642.876] {Default Queue} -> wl_surface#3684.attach(wl_buffer#3682, 0, 0) +[2618642.880] {Default Queue} -> wl_surface#3684.commit() +[2618642.886] {Default Queue} -> wl_surface#3684.attach(wl_buffer#3682, 0, 0) +[2618642.890] {Default Queue} -> wl_surface#3684.commit() +[2618642.894] {Default Queue} wl_pointer#2537.motion(187310276, 22.60156250, 52.39843750) +[2618642.899] {Default Queue} wl_pointer#2569.motion(187310276, 22.60156250, 52.39843750) +[2618642.903] {Default Queue} wl_pointer#2601.motion(187310276, 22.60156250, 52.39843750) +[2618642.907] {Default Queue} wl_pointer#2633.motion(187310276, 22.60156250, 52.39843750) +[2618642.912] {Default Queue} wl_pointer#2665.motion(187310276, 22.60156250, 52.39843750) +[2618642.916] {Default Queue} wl_pointer#2697.motion(187310276, 22.60156250, 52.39843750) +[2618642.920] {Default Queue} wl_pointer#2729.motion(187310276, 22.60156250, 52.39843750) +[2618642.925] {Default Queue} wl_pointer#2761.motion(187310276, 22.60156250, 52.39843750) +[2618642.929] {Default Queue} wl_pointer#2793.motion(187310276, 22.60156250, 52.39843750) +[2618642.933] {Default Queue} wl_pointer#2825.motion(187310276, 22.60156250, 52.39843750) +[2618642.938] {Default Queue} wl_pointer#2857.motion(187310276, 22.60156250, 52.39843750) +[2618642.942] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) +[2618642.946] {Default Queue} -> wl_surface#903.commit() +[2618644.011] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) +[2618644.016] {Default Queue} -> wl_surface#903.commit() +[2618644.023] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) +[2618644.027] {Default Queue} -> wl_surface#903.commit() +[2618644.033] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) +[2618644.037] {Default Queue} -> wl_surface#1511.commit() +[2618645.099] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) +[2618645.105] {Default Queue} -> wl_surface#1511.commit() +[2618645.115] {Default Queue} -> wl_region#1535.subtract(0, 0, 19, 48) +[2618645.120] {Default Queue} -> wl_region#1535.add(-20, -49, 19, 48) +[2618645.125] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2618645.129] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2618645.234] {Default Queue} -> wl_region#1535.subtract(0, 0, 19, 48) +[2618645.239] {Default Queue} -> wl_region#1535.add(-20, -49, 19, 48) +[2618645.243] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2618645.248] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2618645.254] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618645.258] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618645.331] {Default Queue} -> wl_region#1535.subtract(0, 0, 19, 48) +[2618645.336] {Default Queue} -> wl_region#1535.add(-20, -49, 19, 48) +[2618645.340] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2618645.344] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2618645.349] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618645.353] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618645.358] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) +[2618645.362] {Default Queue} -> wl_surface#1511.commit() +[2618645.367] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) +[2618645.371] {Default Queue} -> wl_surface#1511.commit() +[2618645.377] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) +[2618645.386] {Default Queue} -> wl_surface#1511.commit() +[2618645.395] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) +[2618645.399] {Default Queue} -> wl_surface#1575.commit() +[2618646.384] {Display Queue} wl_display#1.delete_id(3454) +[2618646.390] {Display Queue} wl_display#1.delete_id(3451) +[2618646.394] {Display Queue} wl_display#1.delete_id(3452) +[2618646.398] {Display Queue} wl_display#1.delete_id(3517) +[2618646.402] {Display Queue} wl_display#1.delete_id(3518) +[2618646.406] {Display Queue} wl_display#1.delete_id(3675) +[2618646.410] {Display Queue} wl_display#1.delete_id(3678) +[2618646.414] {Display Queue} wl_display#1.delete_id(3674) +[2618646.418] {Display Queue} wl_display#1.delete_id(3676) +[2618646.422] {Display Queue} wl_display#1.delete_id(3677) +[2618646.426] {Display Queue} wl_display#1.delete_id(3683) +[2618646.430] {Display Queue} wl_display#1.delete_id(94) +[2618646.433] {Display Queue} wl_display#1.delete_id(93) +[2618646.437] {Display Queue} wl_display#1.delete_id(92) +[2618646.441] {Display Queue} wl_display#1.delete_id(91) +[2618646.445] {Default Queue} wl_pointer#2889.motion(187310276, 22.60156250, 52.39843750) +[2618646.450] {Default Queue} wl_pointer#2921.motion(187310276, 22.60156250, 52.39843750) +[2618646.455] {Default Queue} wl_pointer#2953.motion(187310276, 22.60156250, 52.39843750) +[2618646.459] {Default Queue} wl_pointer#2985.motion(187310276, 22.60156250, 52.39843750) +[2618646.463] {Default Queue} wl_pointer#3017.motion(187310276, 22.60156250, 52.39843750) +[2618646.468] {Default Queue} wl_pointer#3049.motion(187310276, 22.60156250, 52.39843750) +[2618646.472] {Default Queue} wl_pointer#3081.motion(187310276, 22.60156250, 52.39843750) +[2618646.476] {Default Queue} wl_pointer#3113.motion(187310276, 22.60156250, 52.39843750) +[2618646.480] {Default Queue} wl_pointer#3145.motion(187310276, 22.60156250, 52.39843750) +[2618646.485] {Default Queue} wl_pointer#3177.motion(187310276, 22.60156250, 52.39843750) +[2618646.489] {Default Queue} wl_pointer#3209.motion(187310276, 22.60156250, 52.39843750) +[2618646.493] {Default Queue} wl_pointer#3241.motion(187310276, 22.60156250, 52.39843750) +[2618646.498] {Default Queue} wl_pointer#3273.motion(187310276, 22.60156250, 52.39843750) +[2618646.502] {Default Queue} wl_pointer#3305.motion(187310276, 22.60156250, 52.39843750) +[2618646.506] {Default Queue} wl_pointer#3337.motion(187310276, 22.60156250, 52.39843750) +[2618646.511] {Default Queue} wl_pointer#3369.motion(187310276, 22.60156250, 52.39843750) +[2618646.515] {Default Queue} wl_pointer#3401.motion(187310276, 22.60156250, 52.39843750) +[2618646.519] {Default Queue} wl_pointer#3433.motion(187310276, 22.60156250, 52.39843750) +[2618646.524] {Default Queue} wl_pointer#3465.motion(187310276, 22.60156250, 52.39843750) +[2618646.528] {Default Queue} wl_pointer#3497.motion(187310276, 22.60156250, 52.39843750) +[2618646.532] {Default Queue} wl_pointer#3529.motion(187310276, 22.60156250, 52.39843750) +[2618646.537] {Default Queue} wl_pointer#3561.motion(187310276, 22.60156250, 52.39843750) +[2618646.541] {Default Queue} wl_pointer#3593.motion(187310276, 22.60156250, 52.39843750) +[2618646.545] {Default Queue} wl_pointer#3625.motion(187310276, 22.60156250, 52.39843750) +[2618646.550] {Default Queue} wl_pointer#3657.motion(187310276, 22.60156250, 52.39843750) +[2618646.554] {Default Queue} wl_pointer#3695.motion(187310276, 22.60156250, 52.39843750) +[2618646.558] {Default Queue} wl_pointer#24.motion(187310276, 23.00000000, 51.19921875) +[2618646.562] {Default Queue} wl_pointer#81.motion(187310276, 23.00000000, 51.19921875) +[2618646.568] {Default Queue} wl_pointer#105.motion(187310276, 23.00000000, 51.19921875) +[2618646.572] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618646.577] {Default Queue} wl_pointer#137.motion(187310276, 23.00000000, 51.19921875) +[2618646.581] {Default Queue} wl_pointer#169.motion(187310276, 23.00000000, 51.19921875) +[2618646.585] {Default Queue} wl_pointer#201.motion(187310276, 23.00000000, 51.19921875) +[2618646.590] {Default Queue} wl_pointer#233.motion(187310276, 23.00000000, 51.19921875) +[2618646.597] {Default Queue} wl_pointer#265.motion(187310276, 23.00000000, 51.19921875) +[2618646.603] {Default Queue} wl_pointer#297.motion(187310276, 23.00000000, 51.19921875) +[2618646.607] {Default Queue} wl_pointer#329.motion(187310276, 23.00000000, 51.19921875) +[2618646.612] {Default Queue} wl_pointer#361.motion(187310276, 23.00000000, 51.19921875) +[2618646.616] {Default Queue} wl_pointer#393.motion(187310276, 23.00000000, 51.19921875) +[2618646.620] {Default Queue} wl_pointer#425.motion(187310276, 23.00000000, 51.19921875) +[2618646.625] {Default Queue} wl_pointer#457.motion(187310276, 23.00000000, 51.19921875) +[2618646.629] {Default Queue} wl_pointer#489.motion(187310276, 23.00000000, 51.19921875) +[2618646.633] {Default Queue} wl_pointer#521.motion(187310276, 23.00000000, 51.19921875) +[2618646.638] {Default Queue} wl_pointer#553.motion(187310276, 23.00000000, 51.19921875) +[2618646.642] {Default Queue} wl_pointer#585.motion(187310276, 23.00000000, 51.19921875) +[2618646.646] {Default Queue} wl_pointer#617.motion(187310276, 23.00000000, 51.19921875) +[2618646.650] {Default Queue} wl_pointer#649.motion(187310276, 23.00000000, 51.19921875) +[2618646.655] {Default Queue} wl_pointer#681.motion(187310276, 23.00000000, 51.19921875) +[2618646.659] {Default Queue} wl_pointer#713.motion(187310276, 23.00000000, 51.19921875) +[2618646.663] {Default Queue} wl_pointer#745.motion(187310276, 23.00000000, 51.19921875) +[2618646.667] {Default Queue} wl_pointer#777.motion(187310276, 23.00000000, 51.19921875) +[2618646.672] {Default Queue} wl_pointer#809.motion(187310276, 23.00000000, 51.19921875) +[2618646.676] {Default Queue} wl_pointer#841.motion(187310276, 23.00000000, 51.19921875) +[2618646.680] {Default Queue} wl_pointer#873.motion(187310276, 23.00000000, 51.19921875) +[2618646.684] {Default Queue} wl_pointer#905.motion(187310276, 23.00000000, 51.19921875) +[2618646.689] {Default Queue} wl_pointer#937.motion(187310276, 23.00000000, 51.19921875) +[2618646.711] {Default Queue} wl_pointer#969.motion(187310276, 23.00000000, 51.19921875) +[2618646.715] {Default Queue} wl_pointer#1001.motion(187310276, 23.00000000, 51.19921875) +[2618646.726] {Default Queue} wl_pointer#1033.motion(187310276, 23.00000000, 51.19921875) +[2618646.731] {Default Queue} wl_pointer#1065.motion(187310276, 23.00000000, 51.19921875) +[2618646.736] {Default Queue} wl_pointer#1097.motion(187310276, 23.00000000, 51.19921875) +[2618646.741] {Default Queue} wl_pointer#1129.motion(187310276, 23.00000000, 51.19921875) +[2618646.752] {Default Queue} wl_pointer#1161.motion(187310276, 23.00000000, 51.19921875) +[2618646.761] {Default Queue} wl_pointer#1193.motion(187310276, 23.00000000, 51.19921875) +[2618646.768] {Default Queue} wl_pointer#1225.motion(187310276, 23.00000000, 51.19921875) +[2618646.774] {Default Queue} wl_pointer#1257.motion(187310276, 23.00000000, 51.19921875) +[2618646.779] {Default Queue} wl_pointer#1289.motion(187310276, 23.00000000, 51.19921875) +[2618646.783] {Default Queue} wl_pointer#1321.motion(187310276, 23.00000000, 51.19921875) +[2618646.788] {Default Queue} wl_pointer#1353.motion(187310276, 23.00000000, 51.19921875) +[2618646.792] {Default Queue} wl_pointer#1385.motion(187310276, 23.00000000, 51.19921875) +[2618646.796] {Default Queue} wl_pointer#1417.motion(187310276, 23.00000000, 51.19921875) +[2618646.801] {Default Queue} wl_pointer#1449.motion(187310276, 23.00000000, 51.19921875) +[2618646.805] {Default Queue} wl_pointer#1481.motion(187310276, 23.00000000, 51.19921875) +[2618646.809] {Default Queue} wl_pointer#1513.motion(187310276, 23.00000000, 51.19921875) +[2618646.814] {Default Queue} wl_pointer#1545.motion(187310276, 23.00000000, 51.19921875) +[2618646.818] {Default Queue} wl_pointer#1577.motion(187310276, 23.00000000, 51.19921875) +[2618646.823] {Default Queue} wl_pointer#1609.motion(187310276, 23.00000000, 51.19921875) +[2618646.827] {Default Queue} wl_pointer#1641.motion(187310276, 23.00000000, 51.19921875) +[2618646.831] {Default Queue} wl_pointer#1673.motion(187310276, 23.00000000, 51.19921875) +[2618646.836] {Default Queue} wl_pointer#1705.motion(187310276, 23.00000000, 51.19921875) +[2618646.846] {Default Queue} wl_pointer#1737.motion(187310276, 23.00000000, 51.19921875) +[2618646.853] {Default Queue} wl_pointer#1762.motion(187310276, 23.00000000, 51.19921875) +[2618646.857] {Default Queue} wl_pointer#1801.motion(187310276, 23.00000000, 51.19921875) +[2618646.868] {Default Queue} wl_pointer#1833.motion(187310276, 23.00000000, 51.19921875) +[2618646.872] {Default Queue} wl_pointer#1865.motion(187310276, 23.00000000, 51.19921875) +[2618646.877] {Default Queue} wl_pointer#1897.motion(187310276, 23.00000000, 51.19921875) +[2618646.881] {Default Queue} wl_pointer#1929.motion(187310276, 23.00000000, 51.19921875) +[2618646.885] {Default Queue} wl_pointer#1961.motion(187310276, 23.00000000, 51.19921875) +[2618646.890] {Default Queue} wl_pointer#1993.motion(187310276, 23.00000000, 51.19921875) +[2618646.894] {Default Queue} wl_pointer#2025.motion(187310276, 23.00000000, 51.19921875) +[2618646.898] {Default Queue} wl_pointer#2057.motion(187310276, 23.00000000, 51.19921875) +[2618646.902] {Default Queue} wl_pointer#2089.motion(187310276, 23.00000000, 51.19921875) +[2618646.907] {Default Queue} wl_pointer#2121.motion(187310276, 23.00000000, 51.19921875) +[2618646.911] {Default Queue} wl_pointer#2153.motion(187310276, 23.00000000, 51.19921875) +[2618646.915] {Default Queue} wl_pointer#2185.motion(187310276, 23.00000000, 51.19921875) +[2618646.920] {Default Queue} wl_pointer#2217.motion(187310276, 23.00000000, 51.19921875) +[2618646.924] {Default Queue} wl_pointer#2249.motion(187310276, 23.00000000, 51.19921875) +[2618646.928] {Default Queue} wl_pointer#2281.motion(187310276, 23.00000000, 51.19921875) +[2618646.932] {Default Queue} wl_pointer#2313.motion(187310276, 23.00000000, 51.19921875) +[2618646.937] {Default Queue} wl_pointer#2345.motion(187310276, 23.00000000, 51.19921875) +[2618646.942] {Default Queue} wl_pointer#2377.motion(187310276, 23.00000000, 51.19921875) +[2618646.946] {Default Queue} wl_pointer#2409.motion(187310276, 23.00000000, 51.19921875) +[2618646.950] {Default Queue} wl_pointer#2441.motion(187310276, 23.00000000, 51.19921875) +[2618646.954] {Default Queue} wl_pointer#2473.motion(187310276, 23.00000000, 51.19921875) +[2618646.959] {Default Queue} wl_pointer#2498.motion(187310276, 23.00000000, 51.19921875) +[2618646.972] {Default Queue} -> wl_buffer#3682.destroy() +[2618646.977] {Default Queue} -> wl_buffer#3681.destroy() +[2618646.981] {Default Queue} -> wl_shm_pool#3671.destroy() +[2618646.985] {Default Queue} -> wl_shm_pool#3679.destroy() +[2618646.990] {Default Queue} -> wl_surface#3684.destroy() +[2618647.030] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#91, fd 575, 640) +[2618647.037] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 578, 640) +[2618647.042] {Default Queue} -> wl_shm_pool#91.create_buffer(new id wl_buffer#93, 0, 10, 16, 40, 0) +[2618647.047] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) +[2618647.054] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3683) +[2618647.058] {Default Queue} -> wl_surface#3683.attach(wl_buffer#93, 0, 0) +[2618647.063] {Default Queue} -> wl_surface#3683.commit() +[2618647.068] {Default Queue} -> wl_surface#3683.attach(wl_buffer#93, 0, 0) +[2618647.072] {Default Queue} -> wl_surface#3683.commit() +[2618647.077] {Default Queue} wl_pointer#2537.motion(187310276, 23.00000000, 51.19921875) +[2618647.081] {Default Queue} wl_pointer#2569.motion(187310276, 23.00000000, 51.19921875) +[2618647.086] {Default Queue} wl_pointer#2601.motion(187310276, 23.00000000, 51.19921875) +[2618647.090] {Default Queue} wl_pointer#2633.motion(187310276, 23.00000000, 51.19921875) +[2618647.094] {Default Queue} wl_pointer#2665.motion(187310276, 23.00000000, 51.19921875) +[2618647.099] {Default Queue} wl_pointer#2697.motion(187310276, 23.00000000, 51.19921875) +[2618647.103] {Default Queue} wl_pointer#2729.motion(187310276, 23.00000000, 51.19921875) +[2618647.107] {Default Queue} wl_pointer#2761.motion(187310276, 23.00000000, 51.19921875) +[2618647.111] {Default Queue} wl_pointer#2793.motion(187310276, 23.00000000, 51.19921875) +[2618647.119] {Default Queue} wl_pointer#2825.motion(187310276, 23.00000000, 51.19921875) +[2618647.125] {Default Queue} wl_pointer#2857.motion(187310276, 23.00000000, 51.19921875) +[2618647.130] {Default Queue} wl_pointer#2889.motion(187310276, 23.00000000, 51.19921875) +[2618647.134] {Default Queue} wl_pointer#2921.motion(187310276, 23.00000000, 51.19921875) +[2618647.138] {Default Queue} wl_pointer#2953.motion(187310276, 23.00000000, 51.19921875) +[2618647.143] {Default Queue} wl_pointer#2985.motion(187310276, 23.00000000, 51.19921875) +[2618647.147] {Default Queue} wl_pointer#3017.motion(187310276, 23.00000000, 51.19921875) +[2618647.151] {Default Queue} wl_pointer#3049.motion(187310276, 23.00000000, 51.19921875) +[2618647.156] {Default Queue} wl_pointer#3081.motion(187310276, 23.00000000, 51.19921875) +[2618647.160] {Default Queue} wl_pointer#3113.motion(187310276, 23.00000000, 51.19921875) +[2618647.164] {Default Queue} wl_pointer#3145.motion(187310276, 23.00000000, 51.19921875) +[2618647.169] {Default Queue} wl_pointer#3177.motion(187310276, 23.00000000, 51.19921875) +[2618647.173] {Default Queue} wl_pointer#3209.motion(187310276, 23.00000000, 51.19921875) +[2618647.177] {Default Queue} wl_pointer#3241.motion(187310276, 23.00000000, 51.19921875) +[2618647.182] {Default Queue} wl_pointer#3273.motion(187310276, 23.00000000, 51.19921875) +[2618647.186] {Default Queue} wl_pointer#3305.motion(187310276, 23.00000000, 51.19921875) +[2618647.190] {Default Queue} wl_pointer#3337.motion(187310276, 23.00000000, 51.19921875) +[2618647.195] {Default Queue} wl_pointer#3369.motion(187310276, 23.00000000, 51.19921875) +[2618647.199] {Default Queue} wl_pointer#3401.motion(187310276, 23.00000000, 51.19921875) +[2618647.203] {Default Queue} wl_pointer#3433.motion(187310276, 23.00000000, 51.19921875) +[2618647.208] {Default Queue} wl_pointer#3465.motion(187310276, 23.00000000, 51.19921875) +[2618647.212] {Default Queue} wl_pointer#3497.motion(187310276, 23.00000000, 51.19921875) +[2618647.216] {Default Queue} wl_pointer#3529.motion(187310276, 23.00000000, 51.19921875) +[2618647.221] {Default Queue} wl_pointer#3561.motion(187310276, 23.00000000, 51.19921875) +[2618647.225] {Default Queue} wl_pointer#3593.motion(187310276, 23.00000000, 51.19921875) +[2618647.229] {Default Queue} wl_pointer#3625.motion(187310276, 23.00000000, 51.19921875) +[2618647.234] {Default Queue} wl_pointer#3657.motion(187310276, 23.00000000, 51.19921875) +[2618647.238] {Default Queue} wl_pointer#3695.motion(187310276, 23.00000000, 51.19921875) +[2618647.248] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618647.252] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618647.257] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618647.261] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618647.270] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618647.275] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618647.279] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618647.283] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618647.288] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618647.292] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618647.296] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618647.300] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618647.305] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618647.313] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618647.318] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618647.322] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618647.326] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618647.330] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618647.335] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618647.338] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618647.394] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618647.401] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618647.405] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618647.409] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618647.416] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618647.420] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618647.431] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618647.435] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618647.439] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618647.443] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618647.448] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618647.453] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618647.457] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618647.461] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618647.465] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618647.470] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618647.474] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618647.478] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618647.482] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618647.487] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618647.491] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618647.495] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618647.501] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618647.505] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618647.510] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618647.513] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618647.518] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618647.522] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618647.526] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618647.530] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618647.535] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618647.539] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618647.543] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618647.547] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618647.552] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) +[2618647.556] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) +[2618647.560] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618647.564] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618647.569] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) +[2618647.573] {Default Queue} -> wl_surface#1575.commit() +[2618647.577] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) +[2618647.581] {Default Queue} -> wl_surface#1575.commit() +[2618647.607] {Default Queue} wl_pointer#24.motion(187310281, 23.39843750, 50.39843750) +[2618647.612] {Default Queue} wl_pointer#81.motion(187310281, 23.39843750, 50.39843750) +[2618647.617] {Default Queue} wl_pointer#105.motion(187310281, 23.39843750, 50.39843750) +[2618647.622] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618647.626] {Default Queue} wl_pointer#137.motion(187310281, 23.39843750, 50.39843750) +[2618647.634] {Default Queue} wl_pointer#169.motion(187310281, 23.39843750, 50.39843750) +[2618647.639] {Default Queue} wl_pointer#201.motion(187310281, 23.39843750, 50.39843750) +[2618647.643] {Default Queue} wl_pointer#233.motion(187310281, 23.39843750, 50.39843750) +[2618647.647] {Default Queue} wl_pointer#265.motion(187310281, 23.39843750, 50.39843750) +[2618647.651] {Default Queue} wl_pointer#297.motion(187310281, 23.39843750, 50.39843750) +[2618647.659] {Default Queue} wl_pointer#329.motion(187310281, 23.39843750, 50.39843750) +[2618647.665] {Default Queue} wl_pointer#361.motion(187310281, 23.39843750, 50.39843750) +[2618647.669] {Default Queue} wl_pointer#393.motion(187310281, 23.39843750, 50.39843750) +[2618647.673] {Default Queue} wl_pointer#425.motion(187310281, 23.39843750, 50.39843750) +[2618647.678] {Default Queue} wl_pointer#457.motion(187310281, 23.39843750, 50.39843750) +[2618647.682] {Default Queue} wl_pointer#489.motion(187310281, 23.39843750, 50.39843750) +[2618647.686] {Default Queue} wl_pointer#521.motion(187310281, 23.39843750, 50.39843750) +[2618647.690] {Default Queue} wl_pointer#553.motion(187310281, 23.39843750, 50.39843750) +[2618647.695] {Default Queue} wl_pointer#585.motion(187310281, 23.39843750, 50.39843750) +[2618647.699] {Default Queue} wl_pointer#617.motion(187310281, 23.39843750, 50.39843750) +[2618647.703] {Default Queue} wl_pointer#649.motion(187310281, 23.39843750, 50.39843750) +[2618647.707] {Default Queue} wl_pointer#681.motion(187310281, 23.39843750, 50.39843750) +[2618647.712] {Default Queue} wl_pointer#713.motion(187310281, 23.39843750, 50.39843750) +[2618647.716] {Default Queue} wl_pointer#745.motion(187310281, 23.39843750, 50.39843750) +[2618647.720] {Default Queue} wl_pointer#777.motion(187310281, 23.39843750, 50.39843750) +[2618647.725] {Default Queue} wl_pointer#809.motion(187310281, 23.39843750, 50.39843750) +[2618647.729] {Default Queue} wl_pointer#841.motion(187310281, 23.39843750, 50.39843750) +[2618647.733] {Default Queue} wl_pointer#873.motion(187310281, 23.39843750, 50.39843750) +[2618647.737] {Default Queue} wl_pointer#905.motion(187310281, 23.39843750, 50.39843750) +[2618647.742] {Default Queue} wl_pointer#937.motion(187310281, 23.39843750, 50.39843750) +[2618647.746] {Default Queue} wl_pointer#969.motion(187310281, 23.39843750, 50.39843750) +[2618647.750] {Default Queue} wl_pointer#1001.motion(187310281, 23.39843750, 50.39843750) +[2618647.754] {Default Queue} wl_pointer#1033.motion(187310281, 23.39843750, 50.39843750) +[2618647.759] {Default Queue} wl_pointer#1065.motion(187310281, 23.39843750, 50.39843750) +[2618647.763] {Default Queue} wl_pointer#1097.motion(187310281, 23.39843750, 50.39843750) +[2618647.767] {Default Queue} wl_pointer#1129.motion(187310281, 23.39843750, 50.39843750) +[2618647.772] {Default Queue} wl_pointer#1161.motion(187310281, 23.39843750, 50.39843750) +[2618647.776] {Default Queue} wl_pointer#1193.motion(187310281, 23.39843750, 50.39843750) +[2618647.780] {Default Queue} wl_pointer#1225.motion(187310281, 23.39843750, 50.39843750) +[2618647.784] {Default Queue} wl_pointer#1257.motion(187310281, 23.39843750, 50.39843750) +[2618647.789] {Default Queue} wl_pointer#1289.motion(187310281, 23.39843750, 50.39843750) +[2618647.793] {Default Queue} wl_pointer#1321.motion(187310281, 23.39843750, 50.39843750) +[2618647.797] {Default Queue} wl_pointer#1353.motion(187310281, 23.39843750, 50.39843750) +[2618647.801] {Default Queue} wl_pointer#1385.motion(187310281, 23.39843750, 50.39843750) +[2618647.806] {Default Queue} wl_pointer#1417.motion(187310281, 23.39843750, 50.39843750) +[2618647.810] {Default Queue} wl_pointer#1449.motion(187310281, 23.39843750, 50.39843750) +[2618647.814] {Default Queue} wl_pointer#1481.motion(187310281, 23.39843750, 50.39843750) +[2618647.819] {Default Queue} wl_pointer#1513.motion(187310281, 23.39843750, 50.39843750) +[2618647.823] {Default Queue} wl_pointer#1545.motion(187310281, 23.39843750, 50.39843750) +[2618647.827] {Default Queue} wl_pointer#1577.motion(187310281, 23.39843750, 50.39843750) +[2618647.831] {Default Queue} wl_pointer#1609.motion(187310281, 23.39843750, 50.39843750) +[2618647.836] {Default Queue} wl_pointer#1641.motion(187310281, 23.39843750, 50.39843750) +[2618647.840] {Default Queue} wl_pointer#1673.motion(187310281, 23.39843750, 50.39843750) +[2618647.844] {Default Queue} wl_pointer#1705.motion(187310281, 23.39843750, 50.39843750) +[2618647.849] {Default Queue} wl_pointer#1737.motion(187310281, 23.39843750, 50.39843750) +[2618647.853] {Default Queue} wl_pointer#1762.motion(187310281, 23.39843750, 50.39843750) +[2618647.872] {Default Queue} wl_pointer#1801.motion(187310281, 23.39843750, 50.39843750) +[2618647.878] {Default Queue} wl_pointer#1833.motion(187310281, 23.39843750, 50.39843750) +[2618647.882] {Default Queue} wl_pointer#1865.motion(187310281, 23.39843750, 50.39843750) +[2618647.886] {Default Queue} wl_pointer#1897.motion(187310281, 23.39843750, 50.39843750) +[2618647.891] {Default Queue} wl_pointer#1929.motion(187310281, 23.39843750, 50.39843750) +[2618647.895] {Default Queue} wl_pointer#1961.motion(187310281, 23.39843750, 50.39843750) +[2618647.899] {Default Queue} wl_pointer#1993.motion(187310281, 23.39843750, 50.39843750) +[2618647.903] {Default Queue} wl_pointer#2025.motion(187310281, 23.39843750, 50.39843750) +[2618647.908] {Default Queue} wl_pointer#2057.motion(187310281, 23.39843750, 50.39843750) +[2618647.912] {Default Queue} wl_pointer#2089.motion(187310281, 23.39843750, 50.39843750) +[2618647.916] {Default Queue} wl_pointer#2121.motion(187310281, 23.39843750, 50.39843750) +[2618647.921] {Default Queue} wl_pointer#2153.motion(187310281, 23.39843750, 50.39843750) +[2618647.925] {Default Queue} wl_pointer#2185.motion(187310281, 23.39843750, 50.39843750) +[2618647.929] {Default Queue} wl_pointer#2217.motion(187310281, 23.39843750, 50.39843750) +[2618647.933] {Default Queue} wl_pointer#2249.motion(187310281, 23.39843750, 50.39843750) +[2618647.938] {Default Queue} wl_pointer#2281.motion(187310281, 23.39843750, 50.39843750) +[2618647.942] {Default Queue} wl_pointer#2313.motion(187310281, 23.39843750, 50.39843750) +[2618647.946] {Default Queue} wl_pointer#2345.motion(187310281, 23.39843750, 50.39843750) +[2618647.951] {Default Queue} wl_pointer#2377.motion(187310281, 23.39843750, 50.39843750) +[2618647.955] {Default Queue} wl_pointer#2409.motion(187310281, 23.39843750, 50.39843750) +[2618647.959] {Default Queue} wl_pointer#2441.motion(187310281, 23.39843750, 50.39843750) +[2618647.964] {Default Queue} wl_pointer#2473.motion(187310281, 23.39843750, 50.39843750) +[2618647.968] {Default Queue} wl_pointer#2498.motion(187310281, 23.39843750, 50.39843750) +[2618647.982] {Default Queue} -> wl_buffer#93.destroy() +[2618647.987] {Default Queue} -> wl_buffer#94.destroy() +[2618647.991] {Default Queue} -> wl_shm_pool#91.destroy() +[2618647.995] {Default Queue} -> wl_shm_pool#92.destroy() +[2618648.000] {Default Queue} -> wl_surface#3683.destroy() +[2618648.036] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3677, fd 581, 640) +[2618648.042] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3676, fd 582, 640) +[2618648.046] {Default Queue} -> wl_shm_pool#3677.create_buffer(new id wl_buffer#3674, 0, 10, 16, 40, 0) +[2618648.051] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 10, 16, 40, 0) +[2618648.058] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3675) +[2618648.062] {Default Queue} -> wl_surface#3675.attach(wl_buffer#3674, 0, 0) +[2618648.067] {Default Queue} -> wl_surface#3675.commit() +[2618648.072] {Default Queue} -> wl_surface#3675.attach(wl_buffer#3674, 0, 0) +[2618648.076] {Default Queue} -> wl_surface#3675.commit() +[2618648.080] {Default Queue} wl_pointer#2537.motion(187310281, 23.39843750, 50.39843750) +[2618648.085] {Default Queue} wl_pointer#2569.motion(187310281, 23.39843750, 50.39843750) +[2618648.089] {Default Queue} wl_pointer#2601.motion(187310281, 23.39843750, 50.39843750) +[2618648.093] {Default Queue} wl_pointer#2633.motion(187310281, 23.39843750, 50.39843750) +[2618648.098] {Default Queue} wl_pointer#2665.motion(187310281, 23.39843750, 50.39843750) +[2618648.102] {Default Queue} wl_pointer#2697.motion(187310281, 23.39843750, 50.39843750) +[2618648.106] {Default Queue} wl_pointer#2729.motion(187310281, 23.39843750, 50.39843750) +[2618648.110] {Default Queue} wl_pointer#2761.motion(187310281, 23.39843750, 50.39843750) +[2618648.115] {Default Queue} wl_pointer#2793.motion(187310281, 23.39843750, 50.39843750) +[2618648.119] {Default Queue} wl_pointer#2825.motion(187310281, 23.39843750, 50.39843750) +[2618648.127] {Default Queue} wl_pointer#2857.motion(187310281, 23.39843750, 50.39843750) +[2618648.133] {Default Queue} wl_pointer#2889.motion(187310281, 23.39843750, 50.39843750) +[2618648.137] {Default Queue} wl_pointer#2921.motion(187310281, 23.39843750, 50.39843750) +[2618648.141] {Default Queue} wl_pointer#2953.motion(187310281, 23.39843750, 50.39843750) +[2618648.146] {Default Queue} wl_pointer#2985.motion(187310281, 23.39843750, 50.39843750) +[2618648.150] {Default Queue} wl_pointer#3017.motion(187310281, 23.39843750, 50.39843750) +[2618648.154] {Default Queue} wl_pointer#3049.motion(187310281, 23.39843750, 50.39843750) +[2618648.158] {Default Queue} wl_pointer#3081.motion(187310281, 23.39843750, 50.39843750) +[2618648.163] {Default Queue} wl_pointer#3113.motion(187310281, 23.39843750, 50.39843750) +[2618648.167] {Default Queue} wl_pointer#3145.motion(187310281, 23.39843750, 50.39843750) +[2618648.171] {Default Queue} wl_pointer#3177.motion(187310281, 23.39843750, 50.39843750) +[2618648.176] {Default Queue} wl_pointer#3209.motion(187310281, 23.39843750, 50.39843750) +[2618648.180] {Default Queue} wl_pointer#3241.motion(187310281, 23.39843750, 50.39843750) +[2618648.184] {Default Queue} wl_pointer#3273.motion(187310281, 23.39843750, 50.39843750) +[2618648.188] {Default Queue} wl_pointer#3305.motion(187310281, 23.39843750, 50.39843750) +[2618648.193] {Default Queue} wl_pointer#3337.motion(187310281, 23.39843750, 50.39843750) +[2618648.197] {Default Queue} wl_pointer#3369.motion(187310281, 23.39843750, 50.39843750) +[2618648.201] {Default Queue} wl_pointer#3401.motion(187310281, 23.39843750, 50.39843750) +[2618648.205] {Default Queue} wl_pointer#3433.motion(187310281, 23.39843750, 50.39843750) +[2618648.210] {Default Queue} wl_pointer#3465.motion(187310281, 23.39843750, 50.39843750) +[2618648.214] {Default Queue} wl_pointer#3497.motion(187310281, 23.39843750, 50.39843750) +[2618648.219] {Default Queue} wl_pointer#3529.motion(187310281, 23.39843750, 50.39843750) +[2618648.223] {Default Queue} wl_pointer#3561.motion(187310281, 23.39843750, 50.39843750) +[2618648.227] {Default Queue} wl_pointer#3593.motion(187310281, 23.39843750, 50.39843750) +[2618648.231] {Default Queue} wl_pointer#3625.motion(187310281, 23.39843750, 50.39843750) +[2618648.236] {Default Queue} wl_pointer#3657.motion(187310281, 23.39843750, 50.39843750) +[2618648.240] {Default Queue} wl_pointer#3695.motion(187310281, 23.39843750, 50.39843750) +[2618648.244] {Default Queue} wl_pointer#24.motion(187310281, 23.39843750, 49.19921875) +[2618648.248] {Default Queue} wl_pointer#81.motion(187310281, 23.39843750, 49.19921875) +[2618648.253] {Default Queue} wl_pointer#105.motion(187310281, 23.39843750, 49.19921875) +[2618648.258] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618648.262] {Default Queue} wl_pointer#137.motion(187310281, 23.39843750, 49.19921875) +[2618648.266] {Default Queue} wl_pointer#169.motion(187310281, 23.39843750, 49.19921875) +[2618648.271] {Default Queue} wl_pointer#201.motion(187310281, 23.39843750, 49.19921875) +[2618648.275] {Default Queue} wl_pointer#233.motion(187310281, 23.39843750, 49.19921875) +[2618648.279] {Default Queue} wl_pointer#265.motion(187310281, 23.39843750, 49.19921875) +[2618648.283] {Default Queue} wl_pointer#297.motion(187310281, 23.39843750, 49.19921875) +[2618648.288] {Default Queue} wl_pointer#329.motion(187310281, 23.39843750, 49.19921875) +[2618648.292] {Default Queue} wl_pointer#361.motion(187310281, 23.39843750, 49.19921875) +[2618648.296] {Default Queue} wl_pointer#393.motion(187310281, 23.39843750, 49.19921875) +[2618648.300] {Default Queue} wl_pointer#425.motion(187310281, 23.39843750, 49.19921875) +[2618648.305] {Default Queue} wl_pointer#457.motion(187310281, 23.39843750, 49.19921875) +[2618648.309] {Default Queue} wl_pointer#489.motion(187310281, 23.39843750, 49.19921875) +[2618648.313] {Default Queue} wl_pointer#521.motion(187310281, 23.39843750, 49.19921875) +[2618648.317] {Default Queue} wl_pointer#553.motion(187310281, 23.39843750, 49.19921875) +[2618648.322] {Default Queue} wl_pointer#585.motion(187310281, 23.39843750, 49.19921875) +[2618648.329] {Default Queue} wl_pointer#617.motion(187310281, 23.39843750, 49.19921875) +[2618648.334] {Default Queue} wl_pointer#649.motion(187310281, 23.39843750, 49.19921875) +[2618648.339] {Default Queue} wl_pointer#681.motion(187310281, 23.39843750, 49.19921875) +[2618648.343] {Default Queue} wl_pointer#713.motion(187310281, 23.39843750, 49.19921875) +[2618648.347] {Default Queue} wl_pointer#745.motion(187310281, 23.39843750, 49.19921875) +[2618648.352] {Default Queue} wl_pointer#777.motion(187310281, 23.39843750, 49.19921875) +[2618648.356] {Default Queue} wl_pointer#809.motion(187310281, 23.39843750, 49.19921875) +[2618648.360] {Default Queue} wl_pointer#841.motion(187310281, 23.39843750, 49.19921875) +[2618648.364] {Default Queue} wl_pointer#873.motion(187310281, 23.39843750, 49.19921875) +[2618648.369] {Default Queue} wl_pointer#905.motion(187310281, 23.39843750, 49.19921875) +[2618648.373] {Default Queue} wl_pointer#937.motion(187310281, 23.39843750, 49.19921875) +[2618648.377] {Default Queue} wl_pointer#969.motion(187310281, 23.39843750, 49.19921875) +[2618648.381] {Default Queue} wl_pointer#1001.motion(187310281, 23.39843750, 49.19921875) +[2618648.386] {Default Queue} wl_pointer#1033.motion(187310281, 23.39843750, 49.19921875) +[2618648.390] {Default Queue} wl_pointer#1065.motion(187310281, 23.39843750, 49.19921875) +[2618648.394] {Default Queue} wl_pointer#1097.motion(187310281, 23.39843750, 49.19921875) +[2618648.399] {Default Queue} wl_pointer#1129.motion(187310281, 23.39843750, 49.19921875) +[2618648.403] {Default Queue} wl_pointer#1161.motion(187310281, 23.39843750, 49.19921875) +[2618648.407] {Default Queue} wl_pointer#1193.motion(187310281, 23.39843750, 49.19921875) +[2618648.412] {Default Queue} wl_pointer#1225.motion(187310281, 23.39843750, 49.19921875) +[2618648.416] {Default Queue} wl_pointer#1257.motion(187310281, 23.39843750, 49.19921875) +[2618648.420] {Default Queue} wl_pointer#1289.motion(187310281, 23.39843750, 49.19921875) +[2618648.424] {Default Queue} wl_pointer#1321.motion(187310281, 23.39843750, 49.19921875) +[2618648.429] {Default Queue} wl_pointer#1353.motion(187310281, 23.39843750, 49.19921875) +[2618648.433] {Default Queue} wl_pointer#1385.motion(187310281, 23.39843750, 49.19921875) +[2618648.437] {Default Queue} wl_pointer#1417.motion(187310281, 23.39843750, 49.19921875) +[2618648.441] {Default Queue} wl_pointer#1449.motion(187310281, 23.39843750, 49.19921875) +[2618648.446] {Default Queue} wl_pointer#1481.motion(187310281, 23.39843750, 49.19921875) +[2618648.450] {Default Queue} wl_pointer#1513.motion(187310281, 23.39843750, 49.19921875) +[2618648.454] {Default Queue} wl_pointer#1545.motion(187310281, 23.39843750, 49.19921875) +[2618648.459] {Default Queue} wl_pointer#1577.motion(187310281, 23.39843750, 49.19921875) +[2618648.463] {Default Queue} wl_pointer#1609.motion(187310281, 23.39843750, 49.19921875) +[2618648.467] {Default Queue} wl_pointer#1641.motion(187310281, 23.39843750, 49.19921875) +[2618648.472] {Default Queue} wl_pointer#1673.motion(187310281, 23.39843750, 49.19921875) +[2618648.476] {Default Queue} wl_pointer#1705.motion(187310281, 23.39843750, 49.19921875) +[2618648.480] {Default Queue} wl_pointer#1737.motion(187310281, 23.39843750, 49.19921875) +[2618648.484] {Default Queue} wl_pointer#1762.motion(187310281, 23.39843750, 49.19921875) +[2618648.488] {Default Queue} wl_pointer#1801.motion(187310281, 23.39843750, 49.19921875) +[2618648.493] {Default Queue} wl_pointer#1833.motion(187310281, 23.39843750, 49.19921875) +[2618648.497] {Default Queue} wl_pointer#1865.motion(187310281, 23.39843750, 49.19921875) +[2618648.501] {Default Queue} wl_pointer#1897.motion(187310281, 23.39843750, 49.19921875) +[2618648.505] {Default Queue} wl_pointer#1929.motion(187310281, 23.39843750, 49.19921875) +[2618648.510] {Default Queue} wl_pointer#1961.motion(187310281, 23.39843750, 49.19921875) +[2618648.514] {Default Queue} wl_pointer#1993.motion(187310281, 23.39843750, 49.19921875) +[2618648.518] {Default Queue} wl_pointer#2025.motion(187310281, 23.39843750, 49.19921875) +[2618648.522] {Default Queue} wl_pointer#2057.motion(187310281, 23.39843750, 49.19921875) +[2618648.529] {Default Queue} wl_pointer#2089.motion(187310281, 23.39843750, 49.19921875) +[2618648.535] {Default Queue} wl_pointer#2121.motion(187310281, 23.39843750, 49.19921875) +[2618648.539] {Default Queue} wl_pointer#2153.motion(187310281, 23.39843750, 49.19921875) +[2618648.543] {Default Queue} wl_pointer#2185.motion(187310281, 23.39843750, 49.19921875) +[2618648.548] {Default Queue} wl_pointer#2217.motion(187310281, 23.39843750, 49.19921875) +[2618648.552] {Default Queue} wl_pointer#2249.motion(187310281, 23.39843750, 49.19921875) +[2618648.556] {Default Queue} wl_pointer#2281.motion(187310281, 23.39843750, 49.19921875) +[2618648.560] {Default Queue} wl_pointer#2313.motion(187310281, 23.39843750, 49.19921875) +[2618648.565] {Default Queue} wl_pointer#2345.motion(187310281, 23.39843750, 49.19921875) +[2618648.569] {Default Queue} wl_pointer#2377.motion(187310281, 23.39843750, 49.19921875) +[2618648.573] {Default Queue} wl_pointer#2409.motion(187310281, 23.39843750, 49.19921875) +[2618648.578] {Default Queue} wl_pointer#2441.motion(187310281, 23.39843750, 49.19921875) +[2618648.582] {Default Queue} wl_pointer#2473.motion(187310281, 23.39843750, 49.19921875) +[2618648.586] {Default Queue} wl_pointer#2498.motion(187310281, 23.39843750, 49.19921875) +[2618648.596] {Default Queue} -> wl_buffer#3674.destroy() +[2618648.600] {Default Queue} -> wl_buffer#3678.destroy() +[2618648.604] {Default Queue} -> wl_shm_pool#3677.destroy() +[2618648.608] {Default Queue} -> wl_shm_pool#3676.destroy() +[2618648.613] {Default Queue} -> wl_surface#3675.destroy() +[2618648.666] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3518, fd 583, 640) +[2618648.672] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3517, fd 584, 640) +[2618648.676] {Default Queue} -> wl_shm_pool#3518.create_buffer(new id wl_buffer#3452, 0, 10, 16, 40, 0) +[2618648.681] {Default Queue} -> wl_shm_pool#3517.create_buffer(new id wl_buffer#3451, 0, 10, 16, 40, 0) +[2618648.688] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3454) +[2618648.692] {Default Queue} -> wl_surface#3454.attach(wl_buffer#3452, 0, 0) +[2618648.696] {Default Queue} -> wl_surface#3454.commit() +[2618648.701] {Default Queue} -> wl_surface#3454.attach(wl_buffer#3452, 0, 0) +[2618648.705] {Default Queue} -> wl_surface#3454.commit() +[2618648.710] {Default Queue} wl_pointer#2537.motion(187310281, 23.39843750, 49.19921875) +[2618648.714] {Default Queue} wl_pointer#2569.motion(187310281, 23.39843750, 49.19921875) +[2618648.719] {Default Queue} wl_pointer#2601.motion(187310281, 23.39843750, 49.19921875) +[2618648.723] {Default Queue} wl_pointer#2633.motion(187310281, 23.39843750, 49.19921875) +[2618648.727] {Default Queue} wl_pointer#2665.motion(187310281, 23.39843750, 49.19921875) +[2618648.732] {Default Queue} wl_pointer#2697.motion(187310281, 23.39843750, 49.19921875) +[2618648.736] {Default Queue} wl_pointer#2729.motion(187310281, 23.39843750, 49.19921875) +[2618648.740] {Default Queue} wl_pointer#2761.motion(187310281, 23.39843750, 49.19921875) +[2618648.744] {Default Queue} wl_pointer#2793.motion(187310281, 23.39843750, 49.19921875) +[2618648.749] {Default Queue} wl_pointer#2825.motion(187310281, 23.39843750, 49.19921875) +[2618648.753] {Default Queue} wl_pointer#2857.motion(187310281, 23.39843750, 49.19921875) +[2618648.758] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) +[2618648.762] {Default Queue} -> wl_surface#1575.commit() +[2618649.828] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) +[2618649.834] {Default Queue} -> wl_surface#1575.commit() +[2618649.841] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) +[2618649.845] {Default Queue} -> wl_surface#1575.commit() +[2618649.851] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) +[2618649.855] {Default Queue} -> wl_surface#1543.commit() +[2618650.919] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) +[2618650.924] {Default Queue} -> wl_surface#1543.commit() +[2618650.933] {Default Queue} -> wl_region#1567.subtract(0, 0, 19, 48) +[2618650.942] {Default Queue} -> wl_region#1567.add(-20, -49, 19, 48) +[2618650.948] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) +[2618650.953] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) +[2618650.958] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) +[2618650.963] {Default Queue} -> wl_surface#1543.commit() +[2618650.967] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) +[2618650.971] {Default Queue} -> wl_surface#1543.commit() +[2618650.976] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) +[2618650.980] {Default Queue} -> wl_surface#1543.commit() +[2618650.986] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) +[2618650.991] {Default Queue} -> wl_surface#1479.commit() +[2618651.368] {Display Queue} wl_display#1.delete_id(3485) +[2618651.374] {Display Queue} wl_display#1.delete_id(3516) +[2618651.378] {Display Queue} wl_display#1.delete_id(3483) +[2618651.382] {Display Queue} wl_display#1.delete_id(3486) +[2618651.386] {Display Queue} wl_display#1.delete_id(3515) +[2618651.390] {Display Queue} wl_display#1.delete_id(3292) +[2618651.394] {Display Queue} wl_display#1.delete_id(3293) +[2618651.398] {Display Queue} wl_display#1.delete_id(3484) +[2618651.401] {Display Queue} wl_display#1.delete_id(3291) +[2618651.405] {Display Queue} wl_display#1.delete_id(3294) +[2618651.409] {Default Queue} wl_pointer#2889.motion(187310281, 23.39843750, 49.19921875) +[2618651.414] {Default Queue} wl_pointer#2921.motion(187310281, 23.39843750, 49.19921875) +[2618651.418] {Default Queue} wl_pointer#2953.motion(187310281, 23.39843750, 49.19921875) +[2618651.423] {Default Queue} wl_pointer#2985.motion(187310281, 23.39843750, 49.19921875) +[2618651.427] {Default Queue} wl_pointer#3017.motion(187310281, 23.39843750, 49.19921875) +[2618651.431] {Default Queue} wl_pointer#3049.motion(187310281, 23.39843750, 49.19921875) +[2618651.436] {Default Queue} wl_pointer#3081.motion(187310281, 23.39843750, 49.19921875) +[2618651.440] {Default Queue} wl_pointer#3113.motion(187310281, 23.39843750, 49.19921875) +[2618651.444] {Default Queue} wl_pointer#3145.motion(187310281, 23.39843750, 49.19921875) +[2618651.449] {Default Queue} wl_pointer#3177.motion(187310281, 23.39843750, 49.19921875) +[2618651.453] {Default Queue} wl_pointer#3209.motion(187310281, 23.39843750, 49.19921875) +[2618651.458] {Default Queue} wl_pointer#3241.motion(187310281, 23.39843750, 49.19921875) +[2618651.462] {Default Queue} wl_pointer#3273.motion(187310281, 23.39843750, 49.19921875) +[2618651.466] {Default Queue} wl_pointer#3305.motion(187310281, 23.39843750, 49.19921875) +[2618651.470] {Default Queue} wl_pointer#3337.motion(187310281, 23.39843750, 49.19921875) +[2618651.475] {Default Queue} wl_pointer#3369.motion(187310281, 23.39843750, 49.19921875) +[2618651.479] {Default Queue} wl_pointer#3401.motion(187310281, 23.39843750, 49.19921875) +[2618651.483] {Default Queue} wl_pointer#3433.motion(187310281, 23.39843750, 49.19921875) +[2618651.488] {Default Queue} wl_pointer#3465.motion(187310281, 23.39843750, 49.19921875) +[2618651.492] {Default Queue} wl_pointer#3497.motion(187310281, 23.39843750, 49.19921875) +[2618651.497] {Default Queue} wl_pointer#3529.motion(187310281, 23.39843750, 49.19921875) +[2618651.501] {Default Queue} wl_pointer#3561.motion(187310281, 23.39843750, 49.19921875) +[2618651.505] {Default Queue} wl_pointer#3593.motion(187310281, 23.39843750, 49.19921875) +[2618651.510] {Default Queue} wl_pointer#3625.motion(187310281, 23.39843750, 49.19921875) +[2618651.514] {Default Queue} wl_pointer#3657.motion(187310281, 23.39843750, 49.19921875) +[2618651.518] {Default Queue} wl_pointer#3695.motion(187310281, 23.39843750, 49.19921875) +[2618651.525] {Default Queue} -> wl_region#1503.subtract(0, 0, 22, 51) +[2618651.529] {Default Queue} -> wl_region#1503.add(-20, -49, 19, 48) +[2618651.534] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) +[2618651.538] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) +[2618651.542] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) +[2618651.550] {Default Queue} -> wl_surface#1479.commit() +[2618651.555] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) +[2618651.560] {Default Queue} -> wl_surface#1479.commit() +[2618651.583] {Default Queue} wl_pointer#24.motion(187310286, 23.80078125, 48.39843750) +[2618651.588] {Default Queue} wl_pointer#81.motion(187310286, 23.80078125, 48.39843750) +[2618651.593] {Default Queue} wl_pointer#105.motion(187310286, 23.80078125, 48.39843750) +[2618651.598] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618651.602] {Default Queue} wl_pointer#137.motion(187310286, 23.80078125, 48.39843750) +[2618651.607] {Default Queue} wl_pointer#169.motion(187310286, 23.80078125, 48.39843750) +[2618651.611] {Default Queue} wl_pointer#201.motion(187310286, 23.80078125, 48.39843750) +[2618651.615] {Default Queue} wl_pointer#233.motion(187310286, 23.80078125, 48.39843750) +[2618651.620] {Default Queue} wl_pointer#265.motion(187310286, 23.80078125, 48.39843750) +[2618651.624] {Default Queue} wl_pointer#297.motion(187310286, 23.80078125, 48.39843750) +[2618651.628] {Default Queue} wl_pointer#329.motion(187310286, 23.80078125, 48.39843750) +[2618651.632] {Default Queue} wl_pointer#361.motion(187310286, 23.80078125, 48.39843750) +[2618651.637] {Default Queue} wl_pointer#393.motion(187310286, 23.80078125, 48.39843750) +[2618651.641] {Default Queue} wl_pointer#425.motion(187310286, 23.80078125, 48.39843750) +[2618651.645] {Default Queue} wl_pointer#457.motion(187310286, 23.80078125, 48.39843750) +[2618651.649] {Default Queue} wl_pointer#489.motion(187310286, 23.80078125, 48.39843750) +[2618651.653] {Default Queue} wl_pointer#521.motion(187310286, 23.80078125, 48.39843750) +[2618651.658] {Default Queue} wl_pointer#553.motion(187310286, 23.80078125, 48.39843750) +[2618651.662] {Default Queue} wl_pointer#585.motion(187310286, 23.80078125, 48.39843750) +[2618651.666] {Default Queue} wl_pointer#617.motion(187310286, 23.80078125, 48.39843750) +[2618651.671] {Default Queue} wl_pointer#649.motion(187310286, 23.80078125, 48.39843750) +[2618651.675] {Default Queue} wl_pointer#681.motion(187310286, 23.80078125, 48.39843750) +[2618651.679] {Default Queue} wl_pointer#713.motion(187310286, 23.80078125, 48.39843750) +[2618651.683] {Default Queue} wl_pointer#745.motion(187310286, 23.80078125, 48.39843750) +[2618651.687] {Default Queue} wl_pointer#777.motion(187310286, 23.80078125, 48.39843750) +[2618651.692] {Default Queue} wl_pointer#809.motion(187310286, 23.80078125, 48.39843750) +[2618651.696] {Default Queue} wl_pointer#841.motion(187310286, 23.80078125, 48.39843750) +[2618651.700] {Default Queue} wl_pointer#873.motion(187310286, 23.80078125, 48.39843750) +[2618651.704] {Default Queue} wl_pointer#905.motion(187310286, 23.80078125, 48.39843750) +[2618651.709] {Default Queue} wl_pointer#937.motion(187310286, 23.80078125, 48.39843750) +[2618651.713] {Default Queue} wl_pointer#969.motion(187310286, 23.80078125, 48.39843750) +[2618651.717] {Default Queue} wl_pointer#1001.motion(187310286, 23.80078125, 48.39843750) +[2618651.721] {Default Queue} wl_pointer#1033.motion(187310286, 23.80078125, 48.39843750) +[2618651.726] {Default Queue} wl_pointer#1065.motion(187310286, 23.80078125, 48.39843750) +[2618651.730] {Default Queue} wl_pointer#1097.motion(187310286, 23.80078125, 48.39843750) +[2618651.734] {Default Queue} wl_pointer#1129.motion(187310286, 23.80078125, 48.39843750) +[2618651.738] {Default Queue} wl_pointer#1161.motion(187310286, 23.80078125, 48.39843750) +[2618651.743] {Default Queue} wl_pointer#1193.motion(187310286, 23.80078125, 48.39843750) +[2618651.747] {Default Queue} wl_pointer#1225.motion(187310286, 23.80078125, 48.39843750) +[2618651.751] {Default Queue} wl_pointer#1257.motion(187310286, 23.80078125, 48.39843750) +[2618651.756] {Default Queue} wl_pointer#1289.motion(187310286, 23.80078125, 48.39843750) +[2618651.760] {Default Queue} wl_pointer#1321.motion(187310286, 23.80078125, 48.39843750) +[2618651.764] {Default Queue} wl_pointer#1353.motion(187310286, 23.80078125, 48.39843750) +[2618651.768] {Default Queue} wl_pointer#1385.motion(187310286, 23.80078125, 48.39843750) +[2618651.776] {Default Queue} wl_pointer#1417.motion(187310286, 23.80078125, 48.39843750) +[2618651.781] {Default Queue} wl_pointer#1449.motion(187310286, 23.80078125, 48.39843750) +[2618651.786] {Default Queue} wl_pointer#1481.motion(187310286, 23.80078125, 48.39843750) +[2618651.790] {Default Queue} wl_pointer#1513.motion(187310286, 23.80078125, 48.39843750) +[2618651.794] {Default Queue} wl_pointer#1545.motion(187310286, 23.80078125, 48.39843750) +[2618651.798] {Default Queue} wl_pointer#1577.motion(187310286, 23.80078125, 48.39843750) +[2618651.803] {Default Queue} wl_pointer#1609.motion(187310286, 23.80078125, 48.39843750) +[2618651.807] {Default Queue} wl_pointer#1641.motion(187310286, 23.80078125, 48.39843750) +[2618651.811] {Default Queue} wl_pointer#1673.motion(187310286, 23.80078125, 48.39843750) +[2618651.815] {Default Queue} wl_pointer#1705.motion(187310286, 23.80078125, 48.39843750) +[2618651.820] {Default Queue} wl_pointer#1737.motion(187310286, 23.80078125, 48.39843750) +[2618651.824] {Default Queue} wl_pointer#1762.motion(187310286, 23.80078125, 48.39843750) +[2618651.828] {Default Queue} wl_pointer#1801.motion(187310286, 23.80078125, 48.39843750) +[2618651.832] {Default Queue} wl_pointer#1833.motion(187310286, 23.80078125, 48.39843750) +[2618651.837] {Default Queue} wl_pointer#1865.motion(187310286, 23.80078125, 48.39843750) +[2618651.841] {Default Queue} wl_pointer#1897.motion(187310286, 23.80078125, 48.39843750) +[2618651.845] {Default Queue} wl_pointer#1929.motion(187310286, 23.80078125, 48.39843750) +[2618651.850] {Default Queue} wl_pointer#1961.motion(187310286, 23.80078125, 48.39843750) +[2618651.854] {Default Queue} wl_pointer#1993.motion(187310286, 23.80078125, 48.39843750) +[2618651.858] {Default Queue} wl_pointer#2025.motion(187310286, 23.80078125, 48.39843750) +[2618651.866] {Default Queue} wl_pointer#2057.motion(187310286, 23.80078125, 48.39843750) +[2618651.870] {Default Queue} wl_pointer#2089.motion(187310286, 23.80078125, 48.39843750) +[2618651.874] {Default Queue} wl_pointer#2121.motion(187310286, 23.80078125, 48.39843750) +[2618651.879] {Default Queue} wl_pointer#2153.motion(187310286, 23.80078125, 48.39843750) +[2618651.883] {Default Queue} wl_pointer#2185.motion(187310286, 23.80078125, 48.39843750) +[2618651.887] {Default Queue} wl_pointer#2217.motion(187310286, 23.80078125, 48.39843750) +[2618651.891] {Default Queue} wl_pointer#2249.motion(187310286, 23.80078125, 48.39843750) +[2618651.896] {Default Queue} wl_pointer#2281.motion(187310286, 23.80078125, 48.39843750) +[2618651.900] {Default Queue} wl_pointer#2313.motion(187310286, 23.80078125, 48.39843750) +[2618651.904] {Default Queue} wl_pointer#2345.motion(187310286, 23.80078125, 48.39843750) +[2618651.909] {Default Queue} wl_pointer#2377.motion(187310286, 23.80078125, 48.39843750) +[2618651.913] {Default Queue} wl_pointer#2409.motion(187310286, 23.80078125, 48.39843750) +[2618651.917] {Default Queue} wl_pointer#2441.motion(187310286, 23.80078125, 48.39843750) +[2618651.922] {Default Queue} wl_pointer#2473.motion(187310286, 23.80078125, 48.39843750) +[2618651.926] {Default Queue} wl_pointer#2498.motion(187310286, 23.80078125, 48.39843750) +[2618651.937] {Default Queue} -> wl_buffer#3452.destroy() +[2618651.942] {Default Queue} -> wl_buffer#3451.destroy() +[2618651.946] {Default Queue} -> wl_shm_pool#3518.destroy() +[2618651.950] {Default Queue} -> wl_shm_pool#3517.destroy() +[2618651.955] {Default Queue} -> wl_surface#3454.destroy() +[2618651.992] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3294, fd 575, 640) +[2618651.998] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 578, 640) +[2618652.003] {Default Queue} -> wl_shm_pool#3294.create_buffer(new id wl_buffer#3484, 0, 10, 16, 40, 0) +[2618652.007] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) +[2618652.015] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3292) +[2618652.019] {Default Queue} -> wl_surface#3292.attach(wl_buffer#3484, 0, 0) +[2618652.027] {Default Queue} -> wl_surface#3292.commit() +[2618652.034] {Default Queue} -> wl_surface#3292.attach(wl_buffer#3484, 0, 0) +[2618652.038] {Default Queue} -> wl_surface#3292.commit() +[2618652.042] {Default Queue} wl_pointer#2537.motion(187310286, 23.80078125, 48.39843750) +[2618652.047] {Default Queue} wl_pointer#2569.motion(187310286, 23.80078125, 48.39843750) +[2618652.051] {Default Queue} wl_pointer#2601.motion(187310286, 23.80078125, 48.39843750) +[2618652.056] {Default Queue} wl_pointer#2633.motion(187310286, 23.80078125, 48.39843750) +[2618652.060] {Default Queue} wl_pointer#2665.motion(187310286, 23.80078125, 48.39843750) +[2618652.064] {Default Queue} wl_pointer#2697.motion(187310286, 23.80078125, 48.39843750) +[2618652.069] {Default Queue} wl_pointer#2729.motion(187310286, 23.80078125, 48.39843750) +[2618652.073] {Default Queue} wl_pointer#2761.motion(187310286, 23.80078125, 48.39843750) +[2618652.077] {Default Queue} wl_pointer#2793.motion(187310286, 23.80078125, 48.39843750) +[2618652.082] {Default Queue} wl_pointer#2825.motion(187310286, 23.80078125, 48.39843750) +[2618652.086] {Default Queue} wl_pointer#2857.motion(187310286, 23.80078125, 48.39843750) +[2618652.090] {Default Queue} wl_pointer#2889.motion(187310286, 23.80078125, 48.39843750) +[2618652.095] {Default Queue} wl_pointer#2921.motion(187310286, 23.80078125, 48.39843750) +[2618652.099] {Default Queue} wl_pointer#2953.motion(187310286, 23.80078125, 48.39843750) +[2618652.103] {Default Queue} wl_pointer#2985.motion(187310286, 23.80078125, 48.39843750) +[2618652.108] {Default Queue} wl_pointer#3017.motion(187310286, 23.80078125, 48.39843750) +[2618652.112] {Default Queue} wl_pointer#3049.motion(187310286, 23.80078125, 48.39843750) +[2618652.116] {Default Queue} wl_pointer#3081.motion(187310286, 23.80078125, 48.39843750) +[2618652.120] {Default Queue} wl_pointer#3113.motion(187310286, 23.80078125, 48.39843750) +[2618652.125] {Default Queue} wl_pointer#3145.motion(187310286, 23.80078125, 48.39843750) +[2618652.129] {Default Queue} wl_pointer#3177.motion(187310286, 23.80078125, 48.39843750) +[2618652.133] {Default Queue} wl_pointer#3209.motion(187310286, 23.80078125, 48.39843750) +[2618652.138] {Default Queue} wl_pointer#3241.motion(187310286, 23.80078125, 48.39843750) +[2618652.142] {Default Queue} wl_pointer#3273.motion(187310286, 23.80078125, 48.39843750) +[2618652.146] {Default Queue} wl_pointer#3305.motion(187310286, 23.80078125, 48.39843750) +[2618652.151] {Default Queue} wl_pointer#3337.motion(187310286, 23.80078125, 48.39843750) +[2618652.155] {Default Queue} wl_pointer#3369.motion(187310286, 23.80078125, 48.39843750) +[2618652.159] {Default Queue} wl_pointer#3401.motion(187310286, 23.80078125, 48.39843750) +[2618652.164] {Default Queue} wl_pointer#3433.motion(187310286, 23.80078125, 48.39843750) +[2618652.168] {Default Queue} wl_pointer#3465.motion(187310286, 23.80078125, 48.39843750) +[2618652.172] {Default Queue} wl_pointer#3497.motion(187310286, 23.80078125, 48.39843750) +[2618652.177] {Default Queue} wl_pointer#3529.motion(187310286, 23.80078125, 48.39843750) +[2618652.181] {Default Queue} wl_pointer#3561.motion(187310286, 23.80078125, 48.39843750) +[2618652.185] {Default Queue} wl_pointer#3593.motion(187310286, 23.80078125, 48.39843750) +[2618652.190] {Default Queue} wl_pointer#3625.motion(187310286, 23.80078125, 48.39843750) +[2618652.194] {Default Queue} wl_pointer#3657.motion(187310286, 23.80078125, 48.39843750) +[2618652.198] {Default Queue} wl_pointer#3695.motion(187310286, 23.80078125, 48.39843750) +[2618652.202] {Default Queue} wl_pointer#24.motion(187310286, 24.19921875, 46.80078125) +[2618652.207] {Default Queue} wl_pointer#81.motion(187310286, 24.19921875, 46.80078125) +[2618652.212] {Default Queue} wl_pointer#105.motion(187310286, 24.19921875, 46.80078125) +[2618652.216] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618652.220] {Default Queue} wl_pointer#137.motion(187310286, 24.19921875, 46.80078125) +[2618652.225] {Default Queue} wl_pointer#169.motion(187310286, 24.19921875, 46.80078125) +[2618652.229] {Default Queue} wl_pointer#201.motion(187310286, 24.19921875, 46.80078125) +[2618652.236] {Default Queue} wl_pointer#233.motion(187310286, 24.19921875, 46.80078125) +[2618652.242] {Default Queue} wl_pointer#265.motion(187310286, 24.19921875, 46.80078125) +[2618652.246] {Default Queue} wl_pointer#297.motion(187310286, 24.19921875, 46.80078125) +[2618652.250] {Default Queue} wl_pointer#329.motion(187310286, 24.19921875, 46.80078125) +[2618652.255] {Default Queue} wl_pointer#361.motion(187310286, 24.19921875, 46.80078125) +[2618652.259] {Default Queue} wl_pointer#393.motion(187310286, 24.19921875, 46.80078125) +[2618652.263] {Default Queue} wl_pointer#425.motion(187310286, 24.19921875, 46.80078125) +[2618652.268] {Default Queue} wl_pointer#457.motion(187310286, 24.19921875, 46.80078125) +[2618652.272] {Default Queue} wl_pointer#489.motion(187310286, 24.19921875, 46.80078125) +[2618652.276] {Default Queue} wl_pointer#521.motion(187310286, 24.19921875, 46.80078125) +[2618652.280] {Default Queue} wl_pointer#553.motion(187310286, 24.19921875, 46.80078125) +[2618652.285] {Default Queue} wl_pointer#585.motion(187310286, 24.19921875, 46.80078125) +[2618652.289] {Default Queue} wl_pointer#617.motion(187310286, 24.19921875, 46.80078125) +[2618652.293] {Default Queue} wl_pointer#649.motion(187310286, 24.19921875, 46.80078125) +[2618652.298] {Default Queue} wl_pointer#681.motion(187310286, 24.19921875, 46.80078125) +[2618652.302] {Default Queue} wl_pointer#713.motion(187310286, 24.19921875, 46.80078125) +[2618652.312] {Default Queue} wl_pointer#745.motion(187310286, 24.19921875, 46.80078125) +[2618652.316] {Default Queue} wl_pointer#777.motion(187310286, 24.19921875, 46.80078125) +[2618652.320] {Default Queue} wl_pointer#809.motion(187310286, 24.19921875, 46.80078125) +[2618652.325] {Default Queue} wl_pointer#841.motion(187310286, 24.19921875, 46.80078125) +[2618652.329] {Default Queue} wl_pointer#873.motion(187310286, 24.19921875, 46.80078125) +[2618652.333] {Default Queue} wl_pointer#905.motion(187310286, 24.19921875, 46.80078125) +[2618652.337] {Default Queue} wl_pointer#937.motion(187310286, 24.19921875, 46.80078125) +[2618652.342] {Default Queue} wl_pointer#969.motion(187310286, 24.19921875, 46.80078125) +[2618652.346] {Default Queue} wl_pointer#1001.motion(187310286, 24.19921875, 46.80078125) +[2618652.350] {Default Queue} wl_pointer#1033.motion(187310286, 24.19921875, 46.80078125) +[2618652.354] {Default Queue} wl_pointer#1065.motion(187310286, 24.19921875, 46.80078125) +[2618652.359] {Default Queue} wl_pointer#1097.motion(187310286, 24.19921875, 46.80078125) +[2618652.363] {Default Queue} wl_pointer#1129.motion(187310286, 24.19921875, 46.80078125) +[2618652.367] {Default Queue} wl_pointer#1161.motion(187310286, 24.19921875, 46.80078125) +[2618652.372] {Default Queue} wl_pointer#1193.motion(187310286, 24.19921875, 46.80078125) +[2618652.376] {Default Queue} wl_pointer#1225.motion(187310286, 24.19921875, 46.80078125) +[2618652.380] {Default Queue} wl_pointer#1257.motion(187310286, 24.19921875, 46.80078125) +[2618652.384] {Default Queue} wl_pointer#1289.motion(187310286, 24.19921875, 46.80078125) +[2618652.389] {Default Queue} wl_pointer#1321.motion(187310286, 24.19921875, 46.80078125) +[2618652.393] {Default Queue} wl_pointer#1353.motion(187310286, 24.19921875, 46.80078125) +[2618652.397] {Default Queue} wl_pointer#1385.motion(187310286, 24.19921875, 46.80078125) +[2618652.401] {Default Queue} wl_pointer#1417.motion(187310286, 24.19921875, 46.80078125) +[2618652.406] {Default Queue} wl_pointer#1449.motion(187310286, 24.19921875, 46.80078125) +[2618652.410] {Default Queue} wl_pointer#1481.motion(187310286, 24.19921875, 46.80078125) +[2618652.414] {Default Queue} wl_pointer#1513.motion(187310286, 24.19921875, 46.80078125) +[2618652.419] {Default Queue} wl_pointer#1545.motion(187310286, 24.19921875, 46.80078125) +[2618652.423] {Default Queue} wl_pointer#1577.motion(187310286, 24.19921875, 46.80078125) +[2618652.427] {Default Queue} wl_pointer#1609.motion(187310286, 24.19921875, 46.80078125) +[2618652.432] {Default Queue} wl_pointer#1641.motion(187310286, 24.19921875, 46.80078125) +[2618652.436] {Default Queue} wl_pointer#1673.motion(187310286, 24.19921875, 46.80078125) +[2618652.443] {Default Queue} wl_pointer#1705.motion(187310286, 24.19921875, 46.80078125) +[2618652.449] {Default Queue} wl_pointer#1737.motion(187310286, 24.19921875, 46.80078125) +[2618652.453] {Default Queue} wl_pointer#1762.motion(187310286, 24.19921875, 46.80078125) +[2618652.457] {Default Queue} wl_pointer#1801.motion(187310286, 24.19921875, 46.80078125) +[2618652.461] {Default Queue} wl_pointer#1833.motion(187310286, 24.19921875, 46.80078125) +[2618652.466] {Default Queue} wl_pointer#1865.motion(187310286, 24.19921875, 46.80078125) +[2618652.470] {Default Queue} wl_pointer#1897.motion(187310286, 24.19921875, 46.80078125) +[2618652.474] {Default Queue} wl_pointer#1929.motion(187310286, 24.19921875, 46.80078125) +[2618652.478] {Default Queue} wl_pointer#1961.motion(187310286, 24.19921875, 46.80078125) +[2618652.483] {Default Queue} wl_pointer#1993.motion(187310286, 24.19921875, 46.80078125) +[2618652.487] {Default Queue} wl_pointer#2025.motion(187310286, 24.19921875, 46.80078125) +[2618652.491] {Default Queue} wl_pointer#2057.motion(187310286, 24.19921875, 46.80078125) +[2618652.496] {Default Queue} wl_pointer#2089.motion(187310286, 24.19921875, 46.80078125) +[2618652.500] {Default Queue} wl_pointer#2121.motion(187310286, 24.19921875, 46.80078125) +[2618652.504] {Default Queue} wl_pointer#2153.motion(187310286, 24.19921875, 46.80078125) +[2618652.508] {Default Queue} wl_pointer#2185.motion(187310286, 24.19921875, 46.80078125) +[2618652.513] {Default Queue} wl_pointer#2217.motion(187310286, 24.19921875, 46.80078125) +[2618652.517] {Default Queue} wl_pointer#2249.motion(187310286, 24.19921875, 46.80078125) +[2618652.521] {Default Queue} wl_pointer#2281.motion(187310286, 24.19921875, 46.80078125) +[2618652.525] {Default Queue} wl_pointer#2313.motion(187310286, 24.19921875, 46.80078125) +[2618652.530] {Default Queue} wl_pointer#2345.motion(187310286, 24.19921875, 46.80078125) +[2618652.534] {Default Queue} wl_pointer#2377.motion(187310286, 24.19921875, 46.80078125) +[2618652.538] {Default Queue} wl_pointer#2409.motion(187310286, 24.19921875, 46.80078125) +[2618652.543] {Default Queue} wl_pointer#2441.motion(187310286, 24.19921875, 46.80078125) +[2618652.547] {Default Queue} wl_pointer#2473.motion(187310286, 24.19921875, 46.80078125) +[2618652.551] {Default Queue} wl_pointer#2498.motion(187310286, 24.19921875, 46.80078125) +[2618652.561] {Default Queue} -> wl_buffer#3484.destroy() +[2618652.566] {Default Queue} -> wl_buffer#3293.destroy() +[2618652.570] {Default Queue} -> wl_shm_pool#3294.destroy() +[2618652.574] {Default Queue} -> wl_shm_pool#3291.destroy() +[2618652.579] {Default Queue} -> wl_surface#3292.destroy() +[2618652.611] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3515, fd 581, 640) +[2618652.616] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3486, fd 582, 640) +[2618652.621] {Default Queue} -> wl_shm_pool#3515.create_buffer(new id wl_buffer#3483, 0, 10, 16, 40, 0) +[2618652.625] {Default Queue} -> wl_shm_pool#3486.create_buffer(new id wl_buffer#3516, 0, 10, 16, 40, 0) +[2618652.635] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3485) +[2618652.639] {Default Queue} -> wl_surface#3485.attach(wl_buffer#3483, 0, 0) +[2618652.643] {Default Queue} -> wl_surface#3485.commit() +[2618652.649] {Default Queue} -> wl_surface#3485.attach(wl_buffer#3483, 0, 0) +[2618652.653] {Default Queue} -> wl_surface#3485.commit() +[2618652.657] {Default Queue} wl_pointer#2537.motion(187310286, 24.19921875, 46.80078125) +[2618652.661] {Default Queue} wl_pointer#2569.motion(187310286, 24.19921875, 46.80078125) +[2618652.666] {Default Queue} wl_pointer#2601.motion(187310286, 24.19921875, 46.80078125) +[2618652.670] {Default Queue} wl_pointer#2633.motion(187310286, 24.19921875, 46.80078125) +[2618652.675] {Default Queue} wl_pointer#2665.motion(187310286, 24.19921875, 46.80078125) +[2618652.679] {Default Queue} wl_pointer#2697.motion(187310286, 24.19921875, 46.80078125) +[2618652.683] {Default Queue} wl_pointer#2729.motion(187310286, 24.19921875, 46.80078125) +[2618652.691] {Default Queue} wl_pointer#2761.motion(187310286, 24.19921875, 46.80078125) +[2618652.697] {Default Queue} wl_pointer#2793.motion(187310286, 24.19921875, 46.80078125) +[2618652.701] {Default Queue} wl_pointer#2825.motion(187310286, 24.19921875, 46.80078125) +[2618652.706] {Default Queue} wl_pointer#2857.motion(187310286, 24.19921875, 46.80078125) +[2618652.710] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) +[2618652.714] {Default Queue} -> wl_surface#1479.commit() +[2618653.778] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) +[2618653.784] {Default Queue} -> wl_surface#1479.commit() +[2618653.790] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) +[2618653.794] {Default Queue} -> wl_surface#1479.commit() +[2618653.800] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) +[2618653.804] {Default Queue} -> wl_surface#1447.commit() +[2618654.859] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) +[2618654.875] {Default Queue} -> wl_surface#1447.commit() +[2618654.888] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) +[2618654.894] {Default Queue} -> wl_region#1471.add(0, 0, 2, 2) +[2618654.898] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618654.903] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618654.910] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) +[2618654.915] {Default Queue} -> wl_region#1471.add(0, 0, 2, 2) +[2618654.919] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618654.923] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618654.928] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) +[2618654.933] {Default Queue} -> wl_region#1471.add(0, 0, 2, 2) +[2618654.937] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618654.941] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618654.946] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) +[2618654.950] {Default Queue} -> wl_region#1471.add(0, 0, 2, 2) +[2618654.954] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618654.958] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618654.965] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) +[2618654.969] {Default Queue} -> wl_region#1471.add(0, 0, 2, 2) +[2618654.974] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618654.978] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618654.982] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) +[2618654.987] {Default Queue} -> wl_surface#1447.commit() +[2618654.991] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) +[2618654.995] {Default Queue} -> wl_surface#1447.commit() +[2618655.001] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) +[2618655.006] {Default Queue} -> wl_surface#1447.commit() +[2618655.012] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) +[2618655.016] {Default Queue} -> wl_surface#1671.commit() +[2618656.079] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) +[2618656.085] {Default Queue} -> wl_surface#1671.commit() +[2618656.092] {Default Queue} -> wl_region#1695.subtract(0, 0, 19, 48) +[2618656.097] {Default Queue} -> wl_region#1695.add(-20, -49, 19, 48) +[2618656.101] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2618656.106] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2618656.172] {Default Queue} -> wl_region#1695.subtract(0, 0, 19, 48) +[2618656.177] {Default Queue} -> wl_region#1695.add(-20, -49, 19, 48) +[2618656.182] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2618656.186] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2618656.192] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618656.197] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618656.240] {Default Queue} -> wl_region#1695.subtract(0, 0, 19, 48) +[2618656.250] {Default Queue} -> wl_region#1695.add(-20, -49, 19, 48) +[2618656.257] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2618656.261] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2618656.266] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618656.270] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618656.275] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) +[2618656.280] {Default Queue} -> wl_surface#1671.commit() +[2618656.284] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) +[2618656.288] {Default Queue} -> wl_surface#1671.commit() +[2618656.294] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) +[2618656.298] {Default Queue} -> wl_surface#1671.commit() +[2618656.304] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) +[2618656.308] {Default Queue} -> wl_surface#1735.commit() +[2618656.375] {Display Queue} wl_display#1.delete_id(3682) +[2618656.381] {Display Queue} wl_display#1.delete_id(3681) +[2618656.385] {Display Queue} wl_display#1.delete_id(3671) +[2618656.389] {Display Queue} wl_display#1.delete_id(3679) +[2618656.393] {Display Queue} wl_display#1.delete_id(3684) +[2618656.397] {Display Queue} wl_display#1.delete_id(93) +[2618656.401] {Display Queue} wl_display#1.delete_id(94) +[2618656.405] {Display Queue} wl_display#1.delete_id(91) +[2618656.409] {Display Queue} wl_display#1.delete_id(92) +[2618656.413] {Display Queue} wl_display#1.delete_id(3683) +[2618656.417] {Display Queue} wl_display#1.delete_id(3674) +[2618656.421] {Display Queue} wl_display#1.delete_id(3678) +[2618656.425] {Display Queue} wl_display#1.delete_id(3677) +[2618656.429] {Display Queue} wl_display#1.delete_id(3676) +[2618656.433] {Display Queue} wl_display#1.delete_id(3675) +[2618656.437] {Default Queue} wl_pointer#2889.motion(187310286, 24.19921875, 46.80078125) +[2618656.442] {Default Queue} wl_pointer#2921.motion(187310286, 24.19921875, 46.80078125) +[2618656.446] {Default Queue} wl_pointer#2953.motion(187310286, 24.19921875, 46.80078125) +[2618656.451] {Default Queue} wl_pointer#2985.motion(187310286, 24.19921875, 46.80078125) +[2618656.455] {Default Queue} wl_pointer#3017.motion(187310286, 24.19921875, 46.80078125) +[2618656.459] {Default Queue} wl_pointer#3049.motion(187310286, 24.19921875, 46.80078125) +[2618656.463] {Default Queue} wl_pointer#3081.motion(187310286, 24.19921875, 46.80078125) +[2618656.468] {Default Queue} wl_pointer#3113.motion(187310286, 24.19921875, 46.80078125) +[2618656.472] {Default Queue} wl_pointer#3145.motion(187310286, 24.19921875, 46.80078125) +[2618656.476] {Default Queue} wl_pointer#3177.motion(187310286, 24.19921875, 46.80078125) +[2618656.481] {Default Queue} wl_pointer#3209.motion(187310286, 24.19921875, 46.80078125) +[2618656.485] {Default Queue} wl_pointer#3241.motion(187310286, 24.19921875, 46.80078125) +[2618656.489] {Default Queue} wl_pointer#3273.motion(187310286, 24.19921875, 46.80078125) +[2618656.494] {Default Queue} wl_pointer#3305.motion(187310286, 24.19921875, 46.80078125) +[2618656.498] {Default Queue} wl_pointer#3337.motion(187310286, 24.19921875, 46.80078125) +[2618656.502] {Default Queue} wl_pointer#3369.motion(187310286, 24.19921875, 46.80078125) +[2618656.506] {Default Queue} wl_pointer#3401.motion(187310286, 24.19921875, 46.80078125) +[2618656.511] {Default Queue} wl_pointer#3433.motion(187310286, 24.19921875, 46.80078125) +[2618656.515] {Default Queue} wl_pointer#3465.motion(187310286, 24.19921875, 46.80078125) +[2618656.520] {Default Queue} wl_pointer#3497.motion(187310286, 24.19921875, 46.80078125) +[2618656.524] {Default Queue} wl_pointer#3529.motion(187310286, 24.19921875, 46.80078125) +[2618656.528] {Default Queue} wl_pointer#3561.motion(187310286, 24.19921875, 46.80078125) +[2618656.532] {Default Queue} wl_pointer#3593.motion(187310286, 24.19921875, 46.80078125) +[2618656.537] {Default Queue} wl_pointer#3625.motion(187310286, 24.19921875, 46.80078125) +[2618656.541] {Default Queue} wl_pointer#3657.motion(187310286, 24.19921875, 46.80078125) +[2618656.545] {Default Queue} wl_pointer#3695.motion(187310286, 24.19921875, 46.80078125) +[2618656.554] {Default Queue} wl_pointer#24.motion(187310286, 24.60156250, 46.00000000) +[2618656.560] {Default Queue} wl_pointer#81.motion(187310286, 24.60156250, 46.00000000) +[2618656.565] {Default Queue} wl_pointer#105.motion(187310286, 24.60156250, 46.00000000) +[2618656.570] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618656.575] {Default Queue} wl_pointer#137.motion(187310286, 24.60156250, 46.00000000) +[2618656.579] {Default Queue} wl_pointer#169.motion(187310286, 24.60156250, 46.00000000) +[2618656.583] {Default Queue} wl_pointer#201.motion(187310286, 24.60156250, 46.00000000) +[2618656.587] {Default Queue} wl_pointer#233.motion(187310286, 24.60156250, 46.00000000) +[2618656.592] {Default Queue} wl_pointer#265.motion(187310286, 24.60156250, 46.00000000) +[2618656.596] {Default Queue} wl_pointer#297.motion(187310286, 24.60156250, 46.00000000) +[2618656.600] {Default Queue} wl_pointer#329.motion(187310286, 24.60156250, 46.00000000) +[2618656.605] {Default Queue} wl_pointer#361.motion(187310286, 24.60156250, 46.00000000) +[2618656.609] {Default Queue} wl_pointer#393.motion(187310286, 24.60156250, 46.00000000) +[2618656.613] {Default Queue} wl_pointer#425.motion(187310286, 24.60156250, 46.00000000) +[2618656.617] {Default Queue} wl_pointer#457.motion(187310286, 24.60156250, 46.00000000) +[2618656.622] {Default Queue} wl_pointer#489.motion(187310286, 24.60156250, 46.00000000) +[2618656.626] {Default Queue} wl_pointer#521.motion(187310286, 24.60156250, 46.00000000) +[2618656.630] {Default Queue} wl_pointer#553.motion(187310286, 24.60156250, 46.00000000) +[2618656.635] {Default Queue} wl_pointer#585.motion(187310286, 24.60156250, 46.00000000) +[2618656.639] {Default Queue} wl_pointer#617.motion(187310286, 24.60156250, 46.00000000) +[2618656.643] {Default Queue} wl_pointer#649.motion(187310286, 24.60156250, 46.00000000) +[2618656.647] {Default Queue} wl_pointer#681.motion(187310286, 24.60156250, 46.00000000) +[2618656.651] {Default Queue} wl_pointer#713.motion(187310286, 24.60156250, 46.00000000) +[2618656.656] {Default Queue} wl_pointer#745.motion(187310286, 24.60156250, 46.00000000) +[2618656.660] {Default Queue} wl_pointer#777.motion(187310286, 24.60156250, 46.00000000) +[2618656.664] {Default Queue} wl_pointer#809.motion(187310286, 24.60156250, 46.00000000) +[2618656.669] {Default Queue} wl_pointer#841.motion(187310286, 24.60156250, 46.00000000) +[2618656.673] {Default Queue} wl_pointer#873.motion(187310286, 24.60156250, 46.00000000) +[2618656.677] {Default Queue} wl_pointer#905.motion(187310286, 24.60156250, 46.00000000) +[2618656.681] {Default Queue} wl_pointer#937.motion(187310286, 24.60156250, 46.00000000) +[2618656.685] {Default Queue} wl_pointer#969.motion(187310286, 24.60156250, 46.00000000) +[2618656.690] {Default Queue} wl_pointer#1001.motion(187310286, 24.60156250, 46.00000000) +[2618656.694] {Default Queue} wl_pointer#1033.motion(187310286, 24.60156250, 46.00000000) +[2618656.698] {Default Queue} wl_pointer#1065.motion(187310286, 24.60156250, 46.00000000) +[2618656.703] {Default Queue} wl_pointer#1097.motion(187310286, 24.60156250, 46.00000000) +[2618656.707] {Default Queue} wl_pointer#1129.motion(187310286, 24.60156250, 46.00000000) +[2618656.711] {Default Queue} wl_pointer#1161.motion(187310286, 24.60156250, 46.00000000) +[2618656.715] {Default Queue} wl_pointer#1193.motion(187310286, 24.60156250, 46.00000000) +[2618656.720] {Default Queue} wl_pointer#1225.motion(187310286, 24.60156250, 46.00000000) +[2618656.724] {Default Queue} wl_pointer#1257.motion(187310286, 24.60156250, 46.00000000) +[2618656.728] {Default Queue} wl_pointer#1289.motion(187310286, 24.60156250, 46.00000000) +[2618656.732] {Default Queue} wl_pointer#1321.motion(187310286, 24.60156250, 46.00000000) +[2618656.737] {Default Queue} wl_pointer#1353.motion(187310286, 24.60156250, 46.00000000) +[2618656.741] {Default Queue} wl_pointer#1385.motion(187310286, 24.60156250, 46.00000000) +[2618656.745] {Default Queue} wl_pointer#1417.motion(187310286, 24.60156250, 46.00000000) +[2618656.750] {Default Queue} wl_pointer#1449.motion(187310286, 24.60156250, 46.00000000) +[2618656.757] {Default Queue} wl_pointer#1481.motion(187310286, 24.60156250, 46.00000000) +[2618656.763] {Default Queue} wl_pointer#1513.motion(187310286, 24.60156250, 46.00000000) +[2618656.767] {Default Queue} wl_pointer#1545.motion(187310286, 24.60156250, 46.00000000) +[2618656.771] {Default Queue} wl_pointer#1577.motion(187310286, 24.60156250, 46.00000000) +[2618656.776] {Default Queue} wl_pointer#1609.motion(187310286, 24.60156250, 46.00000000) +[2618656.780] {Default Queue} wl_pointer#1641.motion(187310286, 24.60156250, 46.00000000) +[2618656.784] {Default Queue} wl_pointer#1673.motion(187310286, 24.60156250, 46.00000000) +[2618656.788] {Default Queue} wl_pointer#1705.motion(187310286, 24.60156250, 46.00000000) +[2618656.793] {Default Queue} wl_pointer#1737.motion(187310286, 24.60156250, 46.00000000) +[2618656.797] {Default Queue} wl_pointer#1762.motion(187310286, 24.60156250, 46.00000000) +[2618656.801] {Default Queue} wl_pointer#1801.motion(187310286, 24.60156250, 46.00000000) +[2618656.805] {Default Queue} wl_pointer#1833.motion(187310286, 24.60156250, 46.00000000) +[2618656.810] {Default Queue} wl_pointer#1865.motion(187310286, 24.60156250, 46.00000000) +[2618656.814] {Default Queue} wl_pointer#1897.motion(187310286, 24.60156250, 46.00000000) +[2618656.818] {Default Queue} wl_pointer#1929.motion(187310286, 24.60156250, 46.00000000) +[2618656.823] {Default Queue} wl_pointer#1961.motion(187310286, 24.60156250, 46.00000000) +[2618656.827] {Default Queue} wl_pointer#1993.motion(187310286, 24.60156250, 46.00000000) +[2618656.831] {Default Queue} wl_pointer#2025.motion(187310286, 24.60156250, 46.00000000) +[2618656.836] {Default Queue} wl_pointer#2057.motion(187310286, 24.60156250, 46.00000000) +[2618656.840] {Default Queue} wl_pointer#2089.motion(187310286, 24.60156250, 46.00000000) +[2618656.844] {Default Queue} wl_pointer#2121.motion(187310286, 24.60156250, 46.00000000) +[2618656.848] {Default Queue} wl_pointer#2153.motion(187310286, 24.60156250, 46.00000000) +[2618656.852] {Default Queue} wl_pointer#2185.motion(187310286, 24.60156250, 46.00000000) +[2618656.857] {Default Queue} wl_pointer#2217.motion(187310286, 24.60156250, 46.00000000) +[2618656.865] {Default Queue} wl_pointer#2249.motion(187310286, 24.60156250, 46.00000000) +[2618656.869] {Default Queue} wl_pointer#2281.motion(187310286, 24.60156250, 46.00000000) +[2618656.874] {Default Queue} wl_pointer#2313.motion(187310286, 24.60156250, 46.00000000) +[2618656.878] {Default Queue} wl_pointer#2345.motion(187310286, 24.60156250, 46.00000000) +[2618656.883] {Default Queue} wl_pointer#2377.motion(187310286, 24.60156250, 46.00000000) +[2618656.887] {Default Queue} wl_pointer#2409.motion(187310286, 24.60156250, 46.00000000) +[2618656.891] {Default Queue} wl_pointer#2441.motion(187310286, 24.60156250, 46.00000000) +[2618656.896] {Default Queue} wl_pointer#2473.motion(187310286, 24.60156250, 46.00000000) +[2618656.900] {Default Queue} wl_pointer#2498.motion(187310286, 24.60156250, 46.00000000) +[2618656.912] {Default Queue} -> wl_buffer#3483.destroy() +[2618656.918] {Default Queue} -> wl_buffer#3516.destroy() +[2618656.922] {Default Queue} -> wl_shm_pool#3515.destroy() +[2618656.926] {Default Queue} -> wl_shm_pool#3486.destroy() +[2618656.931] {Default Queue} -> wl_surface#3485.destroy() +[2618656.973] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3675, fd 575, 640) +[2618656.980] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3676, fd 578, 640) +[2618656.985] {Default Queue} -> wl_shm_pool#3675.create_buffer(new id wl_buffer#3677, 0, 10, 16, 40, 0) +[2618656.990] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 10, 16, 40, 0) +[2618656.997] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3674) +[2618657.002] {Default Queue} -> wl_surface#3674.attach(wl_buffer#3677, 0, 0) +[2618657.006] {Default Queue} -> wl_surface#3674.commit() +[2618657.011] {Default Queue} -> wl_surface#3674.attach(wl_buffer#3677, 0, 0) +[2618657.016] {Default Queue} -> wl_surface#3674.commit() +[2618657.023] {Default Queue} wl_pointer#2537.motion(187310286, 24.60156250, 46.00000000) +[2618657.030] {Default Queue} wl_pointer#2569.motion(187310286, 24.60156250, 46.00000000) +[2618657.034] {Default Queue} wl_pointer#2601.motion(187310286, 24.60156250, 46.00000000) +[2618657.038] {Default Queue} wl_pointer#2633.motion(187310286, 24.60156250, 46.00000000) +[2618657.043] {Default Queue} wl_pointer#2665.motion(187310286, 24.60156250, 46.00000000) +[2618657.047] {Default Queue} wl_pointer#2697.motion(187310286, 24.60156250, 46.00000000) +[2618657.051] {Default Queue} wl_pointer#2729.motion(187310286, 24.60156250, 46.00000000) +[2618657.056] {Default Queue} wl_pointer#2761.motion(187310286, 24.60156250, 46.00000000) +[2618657.060] {Default Queue} wl_pointer#2793.motion(187310286, 24.60156250, 46.00000000) +[2618657.064] {Default Queue} wl_pointer#2825.motion(187310286, 24.60156250, 46.00000000) +[2618657.069] {Default Queue} wl_pointer#2857.motion(187310286, 24.60156250, 46.00000000) +[2618657.073] {Default Queue} wl_pointer#2889.motion(187310286, 24.60156250, 46.00000000) +[2618657.077] {Default Queue} wl_pointer#2921.motion(187310286, 24.60156250, 46.00000000) +[2618657.082] {Default Queue} wl_pointer#2953.motion(187310286, 24.60156250, 46.00000000) +[2618657.086] {Default Queue} wl_pointer#2985.motion(187310286, 24.60156250, 46.00000000) +[2618657.090] {Default Queue} wl_pointer#3017.motion(187310286, 24.60156250, 46.00000000) +[2618657.095] {Default Queue} wl_pointer#3049.motion(187310286, 24.60156250, 46.00000000) +[2618657.099] {Default Queue} wl_pointer#3081.motion(187310286, 24.60156250, 46.00000000) +[2618657.103] {Default Queue} wl_pointer#3113.motion(187310286, 24.60156250, 46.00000000) +[2618657.107] {Default Queue} wl_pointer#3145.motion(187310286, 24.60156250, 46.00000000) +[2618657.112] {Default Queue} wl_pointer#3177.motion(187310286, 24.60156250, 46.00000000) +[2618657.116] {Default Queue} wl_pointer#3209.motion(187310286, 24.60156250, 46.00000000) +[2618657.120] {Default Queue} wl_pointer#3241.motion(187310286, 24.60156250, 46.00000000) +[2618657.125] {Default Queue} wl_pointer#3273.motion(187310286, 24.60156250, 46.00000000) +[2618657.129] {Default Queue} wl_pointer#3305.motion(187310286, 24.60156250, 46.00000000) +[2618657.133] {Default Queue} wl_pointer#3337.motion(187310286, 24.60156250, 46.00000000) +[2618657.137] {Default Queue} wl_pointer#3369.motion(187310286, 24.60156250, 46.00000000) +[2618657.142] {Default Queue} wl_pointer#3401.motion(187310286, 24.60156250, 46.00000000) +[2618657.146] {Default Queue} wl_pointer#3433.motion(187310286, 24.60156250, 46.00000000) +[2618657.152] {Default Queue} wl_pointer#3465.motion(187310286, 24.60156250, 46.00000000) +[2618657.158] {Default Queue} wl_pointer#3497.motion(187310286, 24.60156250, 46.00000000) +[2618657.164] {Default Queue} wl_pointer#3529.motion(187310286, 24.60156250, 46.00000000) +[2618657.170] {Default Queue} wl_pointer#3561.motion(187310286, 24.60156250, 46.00000000) +[2618657.176] {Default Queue} wl_pointer#3593.motion(187310286, 24.60156250, 46.00000000) +[2618657.181] {Default Queue} wl_pointer#3625.motion(187310286, 24.60156250, 46.00000000) +[2618657.187] {Default Queue} wl_pointer#3657.motion(187310286, 24.60156250, 46.00000000) +[2618657.193] {Default Queue} wl_pointer#3695.motion(187310286, 24.60156250, 46.00000000) +[2618657.205] {Default Queue} -> wl_region#1759.subtract(0, 0, 19, 48) +[2618657.210] {Default Queue} -> wl_region#1759.add(-20, -49, 19, 48) +[2618657.214] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618657.218] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618657.229] {Default Queue} -> wl_region#1759.subtract(0, 0, 19, 48) +[2618657.234] {Default Queue} -> wl_region#1759.add(-20, -49, 19, 48) +[2618657.240] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618657.245] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618657.252] {Default Queue} -> wl_region#1759.subtract(0, 0, 19, 48) +[2618657.257] {Default Queue} -> wl_region#1759.add(-20, -49, 19, 48) +[2618657.265] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618657.271] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618657.276] {Default Queue} -> wl_region#1759.subtract(0, 0, 19, 48) +[2618657.280] {Default Queue} -> wl_region#1759.add(-20, -49, 19, 48) +[2618657.284] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618657.288] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618657.293] {Default Queue} -> wl_region#1759.subtract(0, 0, 19, 48) +[2618657.297] {Default Queue} -> wl_region#1759.add(-20, -49, 19, 48) +[2618657.301] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618657.305] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618657.319] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) +[2618657.324] {Default Queue} -> wl_surface#1735.commit() +[2618657.328] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) +[2618657.333] {Default Queue} -> wl_surface#1735.commit() +[2618657.358] {Default Queue} wl_pointer#24.motion(187310291, 25.00000000, 44.80078125) +[2618657.363] {Default Queue} wl_pointer#81.motion(187310291, 25.00000000, 44.80078125) +[2618657.369] {Default Queue} wl_pointer#105.motion(187310291, 25.00000000, 44.80078125) +[2618657.373] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618657.378] {Default Queue} wl_pointer#137.motion(187310291, 25.00000000, 44.80078125) +[2618657.382] {Default Queue} wl_pointer#169.motion(187310291, 25.00000000, 44.80078125) +[2618657.386] {Default Queue} wl_pointer#201.motion(187310291, 25.00000000, 44.80078125) +[2618657.390] {Default Queue} wl_pointer#233.motion(187310291, 25.00000000, 44.80078125) +[2618657.395] {Default Queue} wl_pointer#265.motion(187310291, 25.00000000, 44.80078125) +[2618657.399] {Default Queue} wl_pointer#297.motion(187310291, 25.00000000, 44.80078125) +[2618657.403] {Default Queue} wl_pointer#329.motion(187310291, 25.00000000, 44.80078125) +[2618657.407] {Default Queue} wl_pointer#361.motion(187310291, 25.00000000, 44.80078125) +[2618657.412] {Default Queue} wl_pointer#393.motion(187310291, 25.00000000, 44.80078125) +[2618657.416] {Default Queue} wl_pointer#425.motion(187310291, 25.00000000, 44.80078125) +[2618657.420] {Default Queue} wl_pointer#457.motion(187310291, 25.00000000, 44.80078125) +[2618657.424] {Default Queue} wl_pointer#489.motion(187310291, 25.00000000, 44.80078125) +[2618657.429] {Default Queue} wl_pointer#521.motion(187310291, 25.00000000, 44.80078125) +[2618657.433] {Default Queue} wl_pointer#553.motion(187310291, 25.00000000, 44.80078125) +[2618657.437] {Default Queue} wl_pointer#585.motion(187310291, 25.00000000, 44.80078125) +[2618657.441] {Default Queue} wl_pointer#617.motion(187310291, 25.00000000, 44.80078125) +[2618657.446] {Default Queue} wl_pointer#649.motion(187310291, 25.00000000, 44.80078125) +[2618657.450] {Default Queue} wl_pointer#681.motion(187310291, 25.00000000, 44.80078125) +[2618657.454] {Default Queue} wl_pointer#713.motion(187310291, 25.00000000, 44.80078125) +[2618657.459] {Default Queue} wl_pointer#745.motion(187310291, 25.00000000, 44.80078125) +[2618657.463] {Default Queue} wl_pointer#777.motion(187310291, 25.00000000, 44.80078125) +[2618657.467] {Default Queue} wl_pointer#809.motion(187310291, 25.00000000, 44.80078125) +[2618657.471] {Default Queue} wl_pointer#841.motion(187310291, 25.00000000, 44.80078125) +[2618657.475] {Default Queue} wl_pointer#873.motion(187310291, 25.00000000, 44.80078125) +[2618657.480] {Default Queue} wl_pointer#905.motion(187310291, 25.00000000, 44.80078125) +[2618657.484] {Default Queue} wl_pointer#937.motion(187310291, 25.00000000, 44.80078125) +[2618657.488] {Default Queue} wl_pointer#969.motion(187310291, 25.00000000, 44.80078125) +[2618657.492] {Default Queue} wl_pointer#1001.motion(187310291, 25.00000000, 44.80078125) +[2618657.497] {Default Queue} wl_pointer#1033.motion(187310291, 25.00000000, 44.80078125) +[2618657.501] {Default Queue} wl_pointer#1065.motion(187310291, 25.00000000, 44.80078125) +[2618657.508] {Default Queue} wl_pointer#1097.motion(187310291, 25.00000000, 44.80078125) +[2618657.514] {Default Queue} wl_pointer#1129.motion(187310291, 25.00000000, 44.80078125) +[2618657.518] {Default Queue} wl_pointer#1161.motion(187310291, 25.00000000, 44.80078125) +[2618657.523] {Default Queue} wl_pointer#1193.motion(187310291, 25.00000000, 44.80078125) +[2618657.527] {Default Queue} wl_pointer#1225.motion(187310291, 25.00000000, 44.80078125) +[2618657.531] {Default Queue} wl_pointer#1257.motion(187310291, 25.00000000, 44.80078125) +[2618657.535] {Default Queue} wl_pointer#1289.motion(187310291, 25.00000000, 44.80078125) +[2618657.540] {Default Queue} wl_pointer#1321.motion(187310291, 25.00000000, 44.80078125) +[2618657.544] {Default Queue} wl_pointer#1353.motion(187310291, 25.00000000, 44.80078125) +[2618657.548] {Default Queue} wl_pointer#1385.motion(187310291, 25.00000000, 44.80078125) +[2618657.552] {Default Queue} wl_pointer#1417.motion(187310291, 25.00000000, 44.80078125) +[2618657.557] {Default Queue} wl_pointer#1449.motion(187310291, 25.00000000, 44.80078125) +[2618657.561] {Default Queue} wl_pointer#1481.motion(187310291, 25.00000000, 44.80078125) +[2618657.565] {Default Queue} wl_pointer#1513.motion(187310291, 25.00000000, 44.80078125) +[2618657.570] {Default Queue} wl_pointer#1545.motion(187310291, 25.00000000, 44.80078125) +[2618657.574] {Default Queue} wl_pointer#1577.motion(187310291, 25.00000000, 44.80078125) +[2618657.578] {Default Queue} wl_pointer#1609.motion(187310291, 25.00000000, 44.80078125) +[2618657.582] {Default Queue} wl_pointer#1641.motion(187310291, 25.00000000, 44.80078125) +[2618657.587] {Default Queue} wl_pointer#1673.motion(187310291, 25.00000000, 44.80078125) +[2618657.591] {Default Queue} wl_pointer#1705.motion(187310291, 25.00000000, 44.80078125) +[2618657.595] {Default Queue} wl_pointer#1737.motion(187310291, 25.00000000, 44.80078125) +[2618657.599] {Default Queue} wl_pointer#1762.motion(187310291, 25.00000000, 44.80078125) +[2618657.604] {Default Queue} wl_pointer#1801.motion(187310291, 25.00000000, 44.80078125) +[2618657.608] {Default Queue} wl_pointer#1833.motion(187310291, 25.00000000, 44.80078125) +[2618657.614] {Default Queue} wl_pointer#1865.motion(187310291, 25.00000000, 44.80078125) +[2618657.619] {Default Queue} wl_pointer#1897.motion(187310291, 25.00000000, 44.80078125) +[2618657.625] {Default Queue} wl_pointer#1929.motion(187310291, 25.00000000, 44.80078125) +[2618657.631] {Default Queue} wl_pointer#1961.motion(187310291, 25.00000000, 44.80078125) +[2618657.637] {Default Queue} wl_pointer#1993.motion(187310291, 25.00000000, 44.80078125) +[2618657.642] {Default Queue} wl_pointer#2025.motion(187310291, 25.00000000, 44.80078125) +[2618657.648] {Default Queue} wl_pointer#2057.motion(187310291, 25.00000000, 44.80078125) +[2618657.652] {Default Queue} wl_pointer#2089.motion(187310291, 25.00000000, 44.80078125) +[2618657.656] {Default Queue} wl_pointer#2121.motion(187310291, 25.00000000, 44.80078125) +[2618657.661] {Default Queue} wl_pointer#2153.motion(187310291, 25.00000000, 44.80078125) +[2618657.665] {Default Queue} wl_pointer#2185.motion(187310291, 25.00000000, 44.80078125) +[2618657.669] {Default Queue} wl_pointer#2217.motion(187310291, 25.00000000, 44.80078125) +[2618657.673] {Default Queue} wl_pointer#2249.motion(187310291, 25.00000000, 44.80078125) +[2618657.678] {Default Queue} wl_pointer#2281.motion(187310291, 25.00000000, 44.80078125) +[2618657.682] {Default Queue} wl_pointer#2313.motion(187310291, 25.00000000, 44.80078125) +[2618657.686] {Default Queue} wl_pointer#2345.motion(187310291, 25.00000000, 44.80078125) +[2618657.691] {Default Queue} wl_pointer#2377.motion(187310291, 25.00000000, 44.80078125) +[2618657.695] {Default Queue} wl_pointer#2409.motion(187310291, 25.00000000, 44.80078125) +[2618657.700] {Default Queue} wl_pointer#2441.motion(187310291, 25.00000000, 44.80078125) +[2618657.704] {Default Queue} wl_pointer#2473.motion(187310291, 25.00000000, 44.80078125) +[2618657.708] {Default Queue} wl_pointer#2498.motion(187310291, 25.00000000, 44.80078125) +[2618657.720] {Default Queue} -> wl_buffer#3677.destroy() +[2618657.729] {Default Queue} -> wl_buffer#3678.destroy() +[2618657.735] {Default Queue} -> wl_shm_pool#3675.destroy() +[2618657.739] {Default Queue} -> wl_shm_pool#3676.destroy() +[2618657.744] {Default Queue} -> wl_surface#3674.destroy() +[2618657.783] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3683, fd 581, 640) +[2618657.789] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 582, 640) +[2618657.793] {Default Queue} -> wl_shm_pool#3683.create_buffer(new id wl_buffer#91, 0, 10, 16, 40, 0) +[2618657.798] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) +[2618657.805] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#93) +[2618657.810] {Default Queue} -> wl_surface#93.attach(wl_buffer#91, 0, 0) +[2618657.814] {Default Queue} -> wl_surface#93.commit() +[2618657.819] {Default Queue} -> wl_surface#93.attach(wl_buffer#91, 0, 0) +[2618657.824] {Default Queue} -> wl_surface#93.commit() +[2618657.828] {Default Queue} wl_pointer#2537.motion(187310291, 25.00000000, 44.80078125) +[2618657.832] {Default Queue} wl_pointer#2569.motion(187310291, 25.00000000, 44.80078125) +[2618657.837] {Default Queue} wl_pointer#2601.motion(187310291, 25.00000000, 44.80078125) +[2618657.841] {Default Queue} wl_pointer#2633.motion(187310291, 25.00000000, 44.80078125) +[2618657.845] {Default Queue} wl_pointer#2665.motion(187310291, 25.00000000, 44.80078125) +[2618657.850] {Default Queue} wl_pointer#2697.motion(187310291, 25.00000000, 44.80078125) +[2618657.854] {Default Queue} wl_pointer#2729.motion(187310291, 25.00000000, 44.80078125) +[2618657.858] {Default Queue} wl_pointer#2761.motion(187310291, 25.00000000, 44.80078125) +[2618657.870] {Default Queue} wl_pointer#2793.motion(187310291, 25.00000000, 44.80078125) +[2618657.874] {Default Queue} wl_pointer#2825.motion(187310291, 25.00000000, 44.80078125) +[2618657.879] {Default Queue} wl_pointer#2857.motion(187310291, 25.00000000, 44.80078125) +[2618657.883] {Default Queue} wl_pointer#2889.motion(187310291, 25.00000000, 44.80078125) +[2618657.887] {Default Queue} wl_pointer#2921.motion(187310291, 25.00000000, 44.80078125) +[2618657.892] {Default Queue} wl_pointer#2953.motion(187310291, 25.00000000, 44.80078125) +[2618657.896] {Default Queue} wl_pointer#2985.motion(187310291, 25.00000000, 44.80078125) +[2618657.900] {Default Queue} wl_pointer#3017.motion(187310291, 25.00000000, 44.80078125) +[2618657.904] {Default Queue} wl_pointer#3049.motion(187310291, 25.00000000, 44.80078125) +[2618657.909] {Default Queue} wl_pointer#3081.motion(187310291, 25.00000000, 44.80078125) +[2618657.913] {Default Queue} wl_pointer#3113.motion(187310291, 25.00000000, 44.80078125) +[2618657.917] {Default Queue} wl_pointer#3145.motion(187310291, 25.00000000, 44.80078125) +[2618657.921] {Default Queue} wl_pointer#3177.motion(187310291, 25.00000000, 44.80078125) +[2618657.926] {Default Queue} wl_pointer#3209.motion(187310291, 25.00000000, 44.80078125) +[2618657.930] {Default Queue} wl_pointer#3241.motion(187310291, 25.00000000, 44.80078125) +[2618657.935] {Default Queue} wl_pointer#3273.motion(187310291, 25.00000000, 44.80078125) +[2618657.939] {Default Queue} wl_pointer#3305.motion(187310291, 25.00000000, 44.80078125) +[2618657.943] {Default Queue} wl_pointer#3337.motion(187310291, 25.00000000, 44.80078125) +[2618657.947] {Default Queue} wl_pointer#3369.motion(187310291, 25.00000000, 44.80078125) +[2618657.952] {Default Queue} wl_pointer#3401.motion(187310291, 25.00000000, 44.80078125) +[2618657.956] {Default Queue} wl_pointer#3433.motion(187310291, 25.00000000, 44.80078125) +[2618657.960] {Default Queue} wl_pointer#3465.motion(187310291, 25.00000000, 44.80078125) +[2618657.965] {Default Queue} wl_pointer#3497.motion(187310291, 25.00000000, 44.80078125) +[2618657.969] {Default Queue} wl_pointer#3529.motion(187310291, 25.00000000, 44.80078125) +[2618657.973] {Default Queue} wl_pointer#3561.motion(187310291, 25.00000000, 44.80078125) +[2618657.978] {Default Queue} wl_pointer#3593.motion(187310291, 25.00000000, 44.80078125) +[2618657.982] {Default Queue} wl_pointer#3625.motion(187310291, 25.00000000, 44.80078125) +[2618657.989] {Default Queue} wl_pointer#3657.motion(187310291, 25.00000000, 44.80078125) +[2618657.995] {Default Queue} wl_pointer#3695.motion(187310291, 25.00000000, 44.80078125) +[2618658.000] {Default Queue} wl_pointer#24.motion(187310291, 25.00000000, 43.60156250) +[2618658.004] {Default Queue} wl_pointer#81.motion(187310291, 25.00000000, 43.60156250) +[2618658.009] {Default Queue} wl_pointer#105.motion(187310291, 25.00000000, 43.60156250) +[2618658.014] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618658.018] {Default Queue} wl_pointer#137.motion(187310291, 25.00000000, 43.60156250) +[2618658.023] {Default Queue} wl_pointer#169.motion(187310291, 25.00000000, 43.60156250) +[2618658.027] {Default Queue} wl_pointer#201.motion(187310291, 25.00000000, 43.60156250) +[2618658.031] {Default Queue} wl_pointer#233.motion(187310291, 25.00000000, 43.60156250) +[2618658.035] {Default Queue} wl_pointer#265.motion(187310291, 25.00000000, 43.60156250) +[2618658.040] {Default Queue} wl_pointer#297.motion(187310291, 25.00000000, 43.60156250) +[2618658.044] {Default Queue} wl_pointer#329.motion(187310291, 25.00000000, 43.60156250) +[2618658.048] {Default Queue} wl_pointer#361.motion(187310291, 25.00000000, 43.60156250) +[2618658.052] {Default Queue} wl_pointer#393.motion(187310291, 25.00000000, 43.60156250) +[2618658.057] {Default Queue} wl_pointer#425.motion(187310291, 25.00000000, 43.60156250) +[2618658.061] {Default Queue} wl_pointer#457.motion(187310291, 25.00000000, 43.60156250) +[2618658.065] {Default Queue} wl_pointer#489.motion(187310291, 25.00000000, 43.60156250) +[2618658.070] {Default Queue} wl_pointer#521.motion(187310291, 25.00000000, 43.60156250) +[2618658.074] {Default Queue} wl_pointer#553.motion(187310291, 25.00000000, 43.60156250) +[2618658.078] {Default Queue} wl_pointer#585.motion(187310291, 25.00000000, 43.60156250) +[2618658.083] {Default Queue} wl_pointer#617.motion(187310291, 25.00000000, 43.60156250) +[2618658.087] {Default Queue} wl_pointer#649.motion(187310291, 25.00000000, 43.60156250) +[2618658.091] {Default Queue} wl_pointer#681.motion(187310291, 25.00000000, 43.60156250) +[2618658.095] {Default Queue} wl_pointer#713.motion(187310291, 25.00000000, 43.60156250) +[2618658.100] {Default Queue} wl_pointer#745.motion(187310291, 25.00000000, 43.60156250) +[2618658.104] {Default Queue} wl_pointer#777.motion(187310291, 25.00000000, 43.60156250) +[2618658.108] {Default Queue} wl_pointer#809.motion(187310291, 25.00000000, 43.60156250) +[2618658.112] {Default Queue} wl_pointer#841.motion(187310291, 25.00000000, 43.60156250) +[2618658.117] {Default Queue} wl_pointer#873.motion(187310291, 25.00000000, 43.60156250) +[2618658.121] {Default Queue} wl_pointer#905.motion(187310291, 25.00000000, 43.60156250) +[2618658.125] {Default Queue} wl_pointer#937.motion(187310291, 25.00000000, 43.60156250) +[2618658.129] {Default Queue} wl_pointer#969.motion(187310291, 25.00000000, 43.60156250) +[2618658.134] {Default Queue} wl_pointer#1001.motion(187310291, 25.00000000, 43.60156250) +[2618658.138] {Default Queue} wl_pointer#1033.motion(187310291, 25.00000000, 43.60156250) +[2618658.142] {Default Queue} wl_pointer#1065.motion(187310291, 25.00000000, 43.60156250) +[2618658.147] {Default Queue} wl_pointer#1097.motion(187310291, 25.00000000, 43.60156250) +[2618658.151] {Default Queue} wl_pointer#1129.motion(187310291, 25.00000000, 43.60156250) +[2618658.155] {Default Queue} wl_pointer#1161.motion(187310291, 25.00000000, 43.60156250) +[2618658.159] {Default Queue} wl_pointer#1193.motion(187310291, 25.00000000, 43.60156250) +[2618658.164] {Default Queue} wl_pointer#1225.motion(187310291, 25.00000000, 43.60156250) +[2618658.168] {Default Queue} wl_pointer#1257.motion(187310291, 25.00000000, 43.60156250) +[2618658.172] {Default Queue} wl_pointer#1289.motion(187310291, 25.00000000, 43.60156250) +[2618658.177] {Default Queue} wl_pointer#1321.motion(187310291, 25.00000000, 43.60156250) +[2618658.181] {Default Queue} wl_pointer#1353.motion(187310291, 25.00000000, 43.60156250) +[2618658.185] {Default Queue} wl_pointer#1385.motion(187310291, 25.00000000, 43.60156250) +[2618658.192] {Default Queue} wl_pointer#1417.motion(187310291, 25.00000000, 43.60156250) +[2618658.198] {Default Queue} wl_pointer#1449.motion(187310291, 25.00000000, 43.60156250) +[2618658.202] {Default Queue} wl_pointer#1481.motion(187310291, 25.00000000, 43.60156250) +[2618658.206] {Default Queue} wl_pointer#1513.motion(187310291, 25.00000000, 43.60156250) +[2618658.211] {Default Queue} wl_pointer#1545.motion(187310291, 25.00000000, 43.60156250) +[2618658.215] {Default Queue} wl_pointer#1577.motion(187310291, 25.00000000, 43.60156250) +[2618658.219] {Default Queue} wl_pointer#1609.motion(187310291, 25.00000000, 43.60156250) +[2618658.224] {Default Queue} wl_pointer#1641.motion(187310291, 25.00000000, 43.60156250) +[2618658.228] {Default Queue} wl_pointer#1673.motion(187310291, 25.00000000, 43.60156250) +[2618658.232] {Default Queue} wl_pointer#1705.motion(187310291, 25.00000000, 43.60156250) +[2618658.236] {Default Queue} wl_pointer#1737.motion(187310291, 25.00000000, 43.60156250) +[2618658.241] {Default Queue} wl_pointer#1762.motion(187310291, 25.00000000, 43.60156250) +[2618658.245] {Default Queue} wl_pointer#1801.motion(187310291, 25.00000000, 43.60156250) +[2618658.249] {Default Queue} wl_pointer#1833.motion(187310291, 25.00000000, 43.60156250) +[2618658.254] {Default Queue} wl_pointer#1865.motion(187310291, 25.00000000, 43.60156250) +[2618658.258] {Default Queue} wl_pointer#1897.motion(187310291, 25.00000000, 43.60156250) +[2618658.262] {Default Queue} wl_pointer#1929.motion(187310291, 25.00000000, 43.60156250) +[2618658.266] {Default Queue} wl_pointer#1961.motion(187310291, 25.00000000, 43.60156250) +[2618658.271] {Default Queue} wl_pointer#1993.motion(187310291, 25.00000000, 43.60156250) +[2618658.275] {Default Queue} wl_pointer#2025.motion(187310291, 25.00000000, 43.60156250) +[2618658.279] {Default Queue} wl_pointer#2057.motion(187310291, 25.00000000, 43.60156250) +[2618658.283] {Default Queue} wl_pointer#2089.motion(187310291, 25.00000000, 43.60156250) +[2618658.288] {Default Queue} wl_pointer#2121.motion(187310291, 25.00000000, 43.60156250) +[2618658.292] {Default Queue} wl_pointer#2153.motion(187310291, 25.00000000, 43.60156250) +[2618658.296] {Default Queue} wl_pointer#2185.motion(187310291, 25.00000000, 43.60156250) +[2618658.300] {Default Queue} wl_pointer#2217.motion(187310291, 25.00000000, 43.60156250) +[2618658.305] {Default Queue} wl_pointer#2249.motion(187310291, 25.00000000, 43.60156250) +[2618658.309] {Default Queue} wl_pointer#2281.motion(187310291, 25.00000000, 43.60156250) +[2618658.313] {Default Queue} wl_pointer#2313.motion(187310291, 25.00000000, 43.60156250) +[2618658.318] {Default Queue} wl_pointer#2345.motion(187310291, 25.00000000, 43.60156250) +[2618658.322] {Default Queue} wl_pointer#2377.motion(187310291, 25.00000000, 43.60156250) +[2618658.326] {Default Queue} wl_pointer#2409.motion(187310291, 25.00000000, 43.60156250) +[2618658.331] {Default Queue} wl_pointer#2441.motion(187310291, 25.00000000, 43.60156250) +[2618658.335] {Default Queue} wl_pointer#2473.motion(187310291, 25.00000000, 43.60156250) +[2618658.339] {Default Queue} wl_pointer#2498.motion(187310291, 25.00000000, 43.60156250) +[2618658.349] {Default Queue} -> wl_buffer#91.destroy() +[2618658.353] {Default Queue} -> wl_buffer#94.destroy() +[2618658.357] {Default Queue} -> wl_shm_pool#3683.destroy() +[2618658.361] {Default Queue} -> wl_shm_pool#92.destroy() +[2618658.366] {Default Queue} -> wl_surface#93.destroy() +[2618658.398] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3684, fd 583, 640) +[2618658.403] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 584, 640) +[2618658.408] {Default Queue} -> wl_shm_pool#3684.create_buffer(new id wl_buffer#3671, 0, 10, 16, 40, 0) +[2618658.413] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) +[2618658.420] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3682) +[2618658.424] {Default Queue} -> wl_surface#3682.attach(wl_buffer#3671, 0, 0) +[2618658.428] {Default Queue} -> wl_surface#3682.commit() +[2618658.436] {Default Queue} -> wl_surface#3682.attach(wl_buffer#3671, 0, 0) +[2618658.442] {Default Queue} -> wl_surface#3682.commit() +[2618658.446] {Default Queue} wl_pointer#2537.motion(187310291, 25.00000000, 43.60156250) +[2618658.451] {Default Queue} wl_pointer#2569.motion(187310291, 25.00000000, 43.60156250) +[2618658.455] {Default Queue} wl_pointer#2601.motion(187310291, 25.00000000, 43.60156250) +[2618658.460] {Default Queue} wl_pointer#2633.motion(187310291, 25.00000000, 43.60156250) +[2618658.464] {Default Queue} wl_pointer#2665.motion(187310291, 25.00000000, 43.60156250) +[2618658.468] {Default Queue} wl_pointer#2697.motion(187310291, 25.00000000, 43.60156250) +[2618658.473] {Default Queue} wl_pointer#2729.motion(187310291, 25.00000000, 43.60156250) +[2618658.477] {Default Queue} wl_pointer#2761.motion(187310291, 25.00000000, 43.60156250) +[2618658.481] {Default Queue} wl_pointer#2793.motion(187310291, 25.00000000, 43.60156250) +[2618658.486] {Default Queue} wl_pointer#2825.motion(187310291, 25.00000000, 43.60156250) +[2618658.490] {Default Queue} wl_pointer#2857.motion(187310291, 25.00000000, 43.60156250) +[2618658.495] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) +[2618658.499] {Default Queue} -> wl_surface#1735.commit() +[2618659.566] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) +[2618659.572] {Default Queue} -> wl_surface#1735.commit() +[2618659.578] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) +[2618659.582] {Default Queue} -> wl_surface#1735.commit() +[2618659.588] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) +[2618659.592] {Default Queue} -> wl_surface#1703.commit() +[2618660.653] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) +[2618660.658] {Default Queue} -> wl_surface#1703.commit() +[2618660.667] {Default Queue} -> wl_region#1727.subtract(0, 0, 19, 48) +[2618660.671] {Default Queue} -> wl_region#1727.add(-20, -49, 19, 48) +[2618660.676] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) +[2618660.680] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) +[2618660.685] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) +[2618660.690] {Default Queue} -> wl_surface#1703.commit() +[2618660.694] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) +[2618660.698] {Default Queue} -> wl_surface#1703.commit() +[2618660.703] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) +[2618660.707] {Default Queue} -> wl_surface#1703.commit() +[2618660.713] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) +[2618660.717] {Default Queue} -> wl_surface#1639.commit() +[2618661.407] {Display Queue} wl_display#1.delete_id(3452) +[2618661.413] {Display Queue} wl_display#1.delete_id(3451) +[2618661.417] {Display Queue} wl_display#1.delete_id(3518) +[2618661.421] {Display Queue} wl_display#1.delete_id(3517) +[2618661.425] {Display Queue} wl_display#1.delete_id(3454) +[2618661.429] {Display Queue} wl_display#1.delete_id(3484) +[2618661.433] {Display Queue} wl_display#1.delete_id(3293) +[2618661.436] {Display Queue} wl_display#1.delete_id(3294) +[2618661.440] {Display Queue} wl_display#1.delete_id(3291) +[2618661.444] {Display Queue} wl_display#1.delete_id(3292) +[2618661.448] {Default Queue} wl_pointer#2889.motion(187310291, 25.00000000, 43.60156250) +[2618661.453] {Default Queue} wl_pointer#2921.motion(187310291, 25.00000000, 43.60156250) +[2618661.457] {Default Queue} wl_pointer#2953.motion(187310291, 25.00000000, 43.60156250) +[2618661.462] {Default Queue} wl_pointer#2985.motion(187310291, 25.00000000, 43.60156250) +[2618661.466] {Default Queue} wl_pointer#3017.motion(187310291, 25.00000000, 43.60156250) +[2618661.470] {Default Queue} wl_pointer#3049.motion(187310291, 25.00000000, 43.60156250) +[2618661.474] {Default Queue} wl_pointer#3081.motion(187310291, 25.00000000, 43.60156250) +[2618661.479] {Default Queue} wl_pointer#3113.motion(187310291, 25.00000000, 43.60156250) +[2618661.483] {Default Queue} wl_pointer#3145.motion(187310291, 25.00000000, 43.60156250) +[2618661.492] {Default Queue} wl_pointer#3177.motion(187310291, 25.00000000, 43.60156250) +[2618661.499] {Default Queue} wl_pointer#3209.motion(187310291, 25.00000000, 43.60156250) +[2618661.504] {Default Queue} wl_pointer#3241.motion(187310291, 25.00000000, 43.60156250) +[2618661.508] {Default Queue} wl_pointer#3273.motion(187310291, 25.00000000, 43.60156250) +[2618661.512] {Default Queue} wl_pointer#3305.motion(187310291, 25.00000000, 43.60156250) +[2618661.516] {Default Queue} wl_pointer#3337.motion(187310291, 25.00000000, 43.60156250) +[2618661.521] {Default Queue} wl_pointer#3369.motion(187310291, 25.00000000, 43.60156250) +[2618661.525] {Default Queue} wl_pointer#3401.motion(187310291, 25.00000000, 43.60156250) +[2618661.529] {Default Queue} wl_pointer#3433.motion(187310291, 25.00000000, 43.60156250) +[2618661.534] {Default Queue} wl_pointer#3465.motion(187310291, 25.00000000, 43.60156250) +[2618661.538] {Default Queue} wl_pointer#3497.motion(187310291, 25.00000000, 43.60156250) +[2618661.542] {Default Queue} wl_pointer#3529.motion(187310291, 25.00000000, 43.60156250) +[2618661.547] {Default Queue} wl_pointer#3561.motion(187310291, 25.00000000, 43.60156250) +[2618661.551] {Default Queue} wl_pointer#3593.motion(187310291, 25.00000000, 43.60156250) +[2618661.555] {Default Queue} wl_pointer#3625.motion(187310291, 25.00000000, 43.60156250) +[2618661.560] {Default Queue} wl_pointer#3657.motion(187310291, 25.00000000, 43.60156250) +[2618661.564] {Default Queue} wl_pointer#3695.motion(187310291, 25.00000000, 43.60156250) +[2618661.571] {Default Queue} -> wl_region#1663.subtract(0, 0, 22, 51) +[2618661.575] {Default Queue} -> wl_region#1663.add(-20, -49, 19, 48) +[2618661.579] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) +[2618661.583] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) +[2618661.589] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) +[2618661.594] {Default Queue} -> wl_surface#1639.commit() +[2618661.598] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) +[2618661.602] {Default Queue} -> wl_surface#1639.commit() +[2618661.625] {Default Queue} wl_pointer#24.motion(187310296, 25.39843750, 42.00000000) +[2618661.630] {Default Queue} wl_pointer#81.motion(187310296, 25.39843750, 42.00000000) +[2618661.635] {Default Queue} wl_pointer#105.motion(187310296, 25.39843750, 42.00000000) +[2618661.640] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618661.644] {Default Queue} wl_pointer#137.motion(187310296, 25.39843750, 42.00000000) +[2618661.648] {Default Queue} wl_pointer#169.motion(187310296, 25.39843750, 42.00000000) +[2618661.653] {Default Queue} wl_pointer#201.motion(187310296, 25.39843750, 42.00000000) +[2618661.657] {Default Queue} wl_pointer#233.motion(187310296, 25.39843750, 42.00000000) +[2618661.661] {Default Queue} wl_pointer#265.motion(187310296, 25.39843750, 42.00000000) +[2618661.665] {Default Queue} wl_pointer#297.motion(187310296, 25.39843750, 42.00000000) +[2618661.670] {Default Queue} wl_pointer#329.motion(187310296, 25.39843750, 42.00000000) +[2618661.674] {Default Queue} wl_pointer#361.motion(187310296, 25.39843750, 42.00000000) +[2618661.678] {Default Queue} wl_pointer#393.motion(187310296, 25.39843750, 42.00000000) +[2618661.682] {Default Queue} wl_pointer#425.motion(187310296, 25.39843750, 42.00000000) +[2618661.686] {Default Queue} wl_pointer#457.motion(187310296, 25.39843750, 42.00000000) +[2618661.691] {Default Queue} wl_pointer#489.motion(187310296, 25.39843750, 42.00000000) +[2618661.695] {Default Queue} wl_pointer#521.motion(187310296, 25.39843750, 42.00000000) +[2618661.699] {Default Queue} wl_pointer#553.motion(187310296, 25.39843750, 42.00000000) +[2618661.704] {Default Queue} wl_pointer#585.motion(187310296, 25.39843750, 42.00000000) +[2618661.708] {Default Queue} wl_pointer#617.motion(187310296, 25.39843750, 42.00000000) +[2618661.712] {Default Queue} wl_pointer#649.motion(187310296, 25.39843750, 42.00000000) +[2618661.716] {Default Queue} wl_pointer#681.motion(187310296, 25.39843750, 42.00000000) +[2618661.724] {Default Queue} wl_pointer#713.motion(187310296, 25.39843750, 42.00000000) +[2618661.730] {Default Queue} wl_pointer#745.motion(187310296, 25.39843750, 42.00000000) +[2618661.734] {Default Queue} wl_pointer#777.motion(187310296, 25.39843750, 42.00000000) +[2618661.738] {Default Queue} wl_pointer#809.motion(187310296, 25.39843750, 42.00000000) +[2618661.743] {Default Queue} wl_pointer#841.motion(187310296, 25.39843750, 42.00000000) +[2618661.747] {Default Queue} wl_pointer#873.motion(187310296, 25.39843750, 42.00000000) +[2618661.751] {Default Queue} wl_pointer#905.motion(187310296, 25.39843750, 42.00000000) +[2618661.755] {Default Queue} wl_pointer#937.motion(187310296, 25.39843750, 42.00000000) +[2618661.760] {Default Queue} wl_pointer#969.motion(187310296, 25.39843750, 42.00000000) +[2618661.764] {Default Queue} wl_pointer#1001.motion(187310296, 25.39843750, 42.00000000) +[2618661.768] {Default Queue} wl_pointer#1033.motion(187310296, 25.39843750, 42.00000000) +[2618661.773] {Default Queue} wl_pointer#1065.motion(187310296, 25.39843750, 42.00000000) +[2618661.777] {Default Queue} wl_pointer#1097.motion(187310296, 25.39843750, 42.00000000) +[2618661.781] {Default Queue} wl_pointer#1129.motion(187310296, 25.39843750, 42.00000000) +[2618661.785] {Default Queue} wl_pointer#1161.motion(187310296, 25.39843750, 42.00000000) +[2618661.790] {Default Queue} wl_pointer#1193.motion(187310296, 25.39843750, 42.00000000) +[2618661.794] {Default Queue} wl_pointer#1225.motion(187310296, 25.39843750, 42.00000000) +[2618661.798] {Default Queue} wl_pointer#1257.motion(187310296, 25.39843750, 42.00000000) +[2618661.803] {Default Queue} wl_pointer#1289.motion(187310296, 25.39843750, 42.00000000) +[2618661.807] {Default Queue} wl_pointer#1321.motion(187310296, 25.39843750, 42.00000000) +[2618661.812] {Default Queue} wl_pointer#1353.motion(187310296, 25.39843750, 42.00000000) +[2618661.816] {Default Queue} wl_pointer#1385.motion(187310296, 25.39843750, 42.00000000) +[2618661.820] {Default Queue} wl_pointer#1417.motion(187310296, 25.39843750, 42.00000000) +[2618661.824] {Default Queue} wl_pointer#1449.motion(187310296, 25.39843750, 42.00000000) +[2618661.829] {Default Queue} wl_pointer#1481.motion(187310296, 25.39843750, 42.00000000) +[2618661.833] {Default Queue} wl_pointer#1513.motion(187310296, 25.39843750, 42.00000000) +[2618661.837] {Default Queue} wl_pointer#1545.motion(187310296, 25.39843750, 42.00000000) +[2618661.842] {Default Queue} wl_pointer#1577.motion(187310296, 25.39843750, 42.00000000) +[2618661.846] {Default Queue} wl_pointer#1609.motion(187310296, 25.39843750, 42.00000000) +[2618661.850] {Default Queue} wl_pointer#1641.motion(187310296, 25.39843750, 42.00000000) +[2618661.854] {Default Queue} wl_pointer#1673.motion(187310296, 25.39843750, 42.00000000) +[2618661.859] {Default Queue} wl_pointer#1705.motion(187310296, 25.39843750, 42.00000000) +[2618661.864] {Default Queue} wl_pointer#1737.motion(187310296, 25.39843750, 42.00000000) +[2618661.868] {Default Queue} wl_pointer#1762.motion(187310296, 25.39843750, 42.00000000) +[2618661.877] {Default Queue} wl_pointer#1801.motion(187310296, 25.39843750, 42.00000000) +[2618661.881] {Default Queue} wl_pointer#1833.motion(187310296, 25.39843750, 42.00000000) +[2618661.886] {Default Queue} wl_pointer#1865.motion(187310296, 25.39843750, 42.00000000) +[2618661.890] {Default Queue} wl_pointer#1897.motion(187310296, 25.39843750, 42.00000000) +[2618661.894] {Default Queue} wl_pointer#1929.motion(187310296, 25.39843750, 42.00000000) +[2618661.899] {Default Queue} wl_pointer#1961.motion(187310296, 25.39843750, 42.00000000) +[2618661.903] {Default Queue} wl_pointer#1993.motion(187310296, 25.39843750, 42.00000000) +[2618661.907] {Default Queue} wl_pointer#2025.motion(187310296, 25.39843750, 42.00000000) +[2618661.912] {Default Queue} wl_pointer#2057.motion(187310296, 25.39843750, 42.00000000) +[2618661.916] {Default Queue} wl_pointer#2089.motion(187310296, 25.39843750, 42.00000000) +[2618661.920] {Default Queue} wl_pointer#2121.motion(187310296, 25.39843750, 42.00000000) +[2618661.924] {Default Queue} wl_pointer#2153.motion(187310296, 25.39843750, 42.00000000) +[2618661.932] {Default Queue} wl_pointer#2185.motion(187310296, 25.39843750, 42.00000000) +[2618661.937] {Default Queue} wl_pointer#2217.motion(187310296, 25.39843750, 42.00000000) +[2618661.942] {Default Queue} wl_pointer#2249.motion(187310296, 25.39843750, 42.00000000) +[2618661.946] {Default Queue} wl_pointer#2281.motion(187310296, 25.39843750, 42.00000000) +[2618661.950] {Default Queue} wl_pointer#2313.motion(187310296, 25.39843750, 42.00000000) +[2618661.955] {Default Queue} wl_pointer#2345.motion(187310296, 25.39843750, 42.00000000) +[2618661.959] {Default Queue} wl_pointer#2377.motion(187310296, 25.39843750, 42.00000000) +[2618661.963] {Default Queue} wl_pointer#2409.motion(187310296, 25.39843750, 42.00000000) +[2618661.968] {Default Queue} wl_pointer#2441.motion(187310296, 25.39843750, 42.00000000) +[2618661.972] {Default Queue} wl_pointer#2473.motion(187310296, 25.39843750, 42.00000000) +[2618661.976] {Default Queue} wl_pointer#2498.motion(187310296, 25.39843750, 42.00000000) +[2618661.988] {Default Queue} -> wl_buffer#3671.destroy() +[2618661.993] {Default Queue} -> wl_buffer#3681.destroy() +[2618661.997] {Default Queue} -> wl_shm_pool#3684.destroy() +[2618662.001] {Default Queue} -> wl_shm_pool#3679.destroy() +[2618662.006] {Default Queue} -> wl_surface#3682.destroy() +[2618662.045] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3292, fd 575, 640) +[2618662.051] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 578, 640) +[2618662.055] {Default Queue} -> wl_shm_pool#3292.create_buffer(new id wl_buffer#3294, 0, 10, 16, 40, 0) +[2618662.060] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) +[2618662.067] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3484) +[2618662.071] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) +[2618662.075] {Default Queue} -> wl_surface#3484.commit() +[2618662.081] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) +[2618662.085] {Default Queue} -> wl_surface#3484.commit() +[2618662.089] {Default Queue} wl_pointer#2537.motion(187310296, 25.39843750, 42.00000000) +[2618662.094] {Default Queue} wl_pointer#2569.motion(187310296, 25.39843750, 42.00000000) +[2618662.098] {Default Queue} wl_pointer#2601.motion(187310296, 25.39843750, 42.00000000) +[2618662.102] {Default Queue} wl_pointer#2633.motion(187310296, 25.39843750, 42.00000000) +[2618662.107] {Default Queue} wl_pointer#2665.motion(187310296, 25.39843750, 42.00000000) +[2618662.111] {Default Queue} wl_pointer#2697.motion(187310296, 25.39843750, 42.00000000) +[2618662.115] {Default Queue} wl_pointer#2729.motion(187310296, 25.39843750, 42.00000000) +[2618662.119] {Default Queue} wl_pointer#2761.motion(187310296, 25.39843750, 42.00000000) +[2618662.124] {Default Queue} wl_pointer#2793.motion(187310296, 25.39843750, 42.00000000) +[2618662.128] {Default Queue} wl_pointer#2825.motion(187310296, 25.39843750, 42.00000000) +[2618662.133] {Default Queue} wl_pointer#2857.motion(187310296, 25.39843750, 42.00000000) +[2618662.137] {Default Queue} wl_pointer#2889.motion(187310296, 25.39843750, 42.00000000) +[2618662.141] {Default Queue} wl_pointer#2921.motion(187310296, 25.39843750, 42.00000000) +[2618662.145] {Default Queue} wl_pointer#2953.motion(187310296, 25.39843750, 42.00000000) +[2618662.150] {Default Queue} wl_pointer#2985.motion(187310296, 25.39843750, 42.00000000) +[2618662.154] {Default Queue} wl_pointer#3017.motion(187310296, 25.39843750, 42.00000000) +[2618662.158] {Default Queue} wl_pointer#3049.motion(187310296, 25.39843750, 42.00000000) +[2618662.162] {Default Queue} wl_pointer#3081.motion(187310296, 25.39843750, 42.00000000) +[2618662.167] {Default Queue} wl_pointer#3113.motion(187310296, 25.39843750, 42.00000000) +[2618662.171] {Default Queue} wl_pointer#3145.motion(187310296, 25.39843750, 42.00000000) +[2618662.175] {Default Queue} wl_pointer#3177.motion(187310296, 25.39843750, 42.00000000) +[2618662.180] {Default Queue} wl_pointer#3209.motion(187310296, 25.39843750, 42.00000000) +[2618662.184] {Default Queue} wl_pointer#3241.motion(187310296, 25.39843750, 42.00000000) +[2618662.191] {Default Queue} wl_pointer#3273.motion(187310296, 25.39843750, 42.00000000) +[2618662.197] {Default Queue} wl_pointer#3305.motion(187310296, 25.39843750, 42.00000000) +[2618662.202] {Default Queue} wl_pointer#3337.motion(187310296, 25.39843750, 42.00000000) +[2618662.206] {Default Queue} wl_pointer#3369.motion(187310296, 25.39843750, 42.00000000) +[2618662.211] {Default Queue} wl_pointer#3401.motion(187310296, 25.39843750, 42.00000000) +[2618662.215] {Default Queue} wl_pointer#3433.motion(187310296, 25.39843750, 42.00000000) +[2618662.219] {Default Queue} wl_pointer#3465.motion(187310296, 25.39843750, 42.00000000) +[2618662.224] {Default Queue} wl_pointer#3497.motion(187310296, 25.39843750, 42.00000000) +[2618662.228] {Default Queue} wl_pointer#3529.motion(187310296, 25.39843750, 42.00000000) +[2618662.232] {Default Queue} wl_pointer#3561.motion(187310296, 25.39843750, 42.00000000) +[2618662.237] {Default Queue} wl_pointer#3593.motion(187310296, 25.39843750, 42.00000000) +[2618662.241] {Default Queue} wl_pointer#3625.motion(187310296, 25.39843750, 42.00000000) +[2618662.245] {Default Queue} wl_pointer#3657.motion(187310296, 25.39843750, 42.00000000) +[2618662.250] {Default Queue} wl_pointer#3695.motion(187310296, 25.39843750, 42.00000000) +[2618662.254] {Default Queue} wl_pointer#24.motion(187310296, 25.39843750, 40.80078125) +[2618662.258] {Default Queue} wl_pointer#81.motion(187310296, 25.39843750, 40.80078125) +[2618662.264] {Default Queue} wl_pointer#105.motion(187310296, 25.39843750, 40.80078125) +[2618662.271] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618662.276] {Default Queue} wl_pointer#137.motion(187310296, 25.39843750, 40.80078125) +[2618662.282] {Default Queue} wl_pointer#169.motion(187310296, 25.39843750, 40.80078125) +[2618662.288] {Default Queue} wl_pointer#201.motion(187310296, 25.39843750, 40.80078125) +[2618662.294] {Default Queue} wl_pointer#233.motion(187310296, 25.39843750, 40.80078125) +[2618662.300] {Default Queue} wl_pointer#265.motion(187310296, 25.39843750, 40.80078125) +[2618662.305] {Default Queue} wl_pointer#297.motion(187310296, 25.39843750, 40.80078125) +[2618662.311] {Default Queue} wl_pointer#329.motion(187310296, 25.39843750, 40.80078125) +[2618662.316] {Default Queue} wl_pointer#361.motion(187310296, 25.39843750, 40.80078125) +[2618662.320] {Default Queue} wl_pointer#393.motion(187310296, 25.39843750, 40.80078125) +[2618662.325] {Default Queue} wl_pointer#425.motion(187310296, 25.39843750, 40.80078125) +[2618662.329] {Default Queue} wl_pointer#457.motion(187310296, 25.39843750, 40.80078125) +[2618662.333] {Default Queue} wl_pointer#489.motion(187310296, 25.39843750, 40.80078125) +[2618662.338] {Default Queue} wl_pointer#521.motion(187310296, 25.39843750, 40.80078125) +[2618662.342] {Default Queue} wl_pointer#553.motion(187310296, 25.39843750, 40.80078125) +[2618662.346] {Default Queue} wl_pointer#585.motion(187310296, 25.39843750, 40.80078125) +[2618662.351] {Default Queue} wl_pointer#617.motion(187310296, 25.39843750, 40.80078125) +[2618662.355] {Default Queue} wl_pointer#649.motion(187310296, 25.39843750, 40.80078125) +[2618662.359] {Default Queue} wl_pointer#681.motion(187310296, 25.39843750, 40.80078125) +[2618662.363] {Default Queue} wl_pointer#713.motion(187310296, 25.39843750, 40.80078125) +[2618662.368] {Default Queue} wl_pointer#745.motion(187310296, 25.39843750, 40.80078125) +[2618662.372] {Default Queue} wl_pointer#777.motion(187310296, 25.39843750, 40.80078125) +[2618662.376] {Default Queue} wl_pointer#809.motion(187310296, 25.39843750, 40.80078125) +[2618662.380] {Default Queue} wl_pointer#841.motion(187310296, 25.39843750, 40.80078125) +[2618662.385] {Default Queue} wl_pointer#873.motion(187310296, 25.39843750, 40.80078125) +[2618662.389] {Default Queue} wl_pointer#905.motion(187310296, 25.39843750, 40.80078125) +[2618662.393] {Default Queue} wl_pointer#937.motion(187310296, 25.39843750, 40.80078125) +[2618662.398] {Default Queue} wl_pointer#969.motion(187310296, 25.39843750, 40.80078125) +[2618662.402] {Default Queue} wl_pointer#1001.motion(187310296, 25.39843750, 40.80078125) +[2618662.407] {Default Queue} wl_pointer#1033.motion(187310296, 25.39843750, 40.80078125) +[2618662.413] {Default Queue} wl_pointer#1065.motion(187310296, 25.39843750, 40.80078125) +[2618662.418] {Default Queue} wl_pointer#1097.motion(187310296, 25.39843750, 40.80078125) +[2618662.422] {Default Queue} wl_pointer#1129.motion(187310296, 25.39843750, 40.80078125) +[2618662.426] {Default Queue} wl_pointer#1161.motion(187310296, 25.39843750, 40.80078125) +[2618662.431] {Default Queue} wl_pointer#1193.motion(187310296, 25.39843750, 40.80078125) +[2618662.435] {Default Queue} wl_pointer#1225.motion(187310296, 25.39843750, 40.80078125) +[2618662.439] {Default Queue} wl_pointer#1257.motion(187310296, 25.39843750, 40.80078125) +[2618662.443] {Default Queue} wl_pointer#1289.motion(187310296, 25.39843750, 40.80078125) +[2618662.448] {Default Queue} wl_pointer#1321.motion(187310296, 25.39843750, 40.80078125) +[2618662.452] {Default Queue} wl_pointer#1353.motion(187310296, 25.39843750, 40.80078125) +[2618662.456] {Default Queue} wl_pointer#1385.motion(187310296, 25.39843750, 40.80078125) +[2618662.461] {Default Queue} wl_pointer#1417.motion(187310296, 25.39843750, 40.80078125) +[2618662.465] {Default Queue} wl_pointer#1449.motion(187310296, 25.39843750, 40.80078125) +[2618662.469] {Default Queue} wl_pointer#1481.motion(187310296, 25.39843750, 40.80078125) +[2618662.473] {Default Queue} wl_pointer#1513.motion(187310296, 25.39843750, 40.80078125) +[2618662.478] {Default Queue} wl_pointer#1545.motion(187310296, 25.39843750, 40.80078125) +[2618662.482] {Default Queue} wl_pointer#1577.motion(187310296, 25.39843750, 40.80078125) +[2618662.486] {Default Queue} wl_pointer#1609.motion(187310296, 25.39843750, 40.80078125) +[2618662.491] {Default Queue} wl_pointer#1641.motion(187310296, 25.39843750, 40.80078125) +[2618662.495] {Default Queue} wl_pointer#1673.motion(187310296, 25.39843750, 40.80078125) +[2618662.499] {Default Queue} wl_pointer#1705.motion(187310296, 25.39843750, 40.80078125) +[2618662.503] {Default Queue} wl_pointer#1737.motion(187310296, 25.39843750, 40.80078125) +[2618662.508] {Default Queue} wl_pointer#1762.motion(187310296, 25.39843750, 40.80078125) +[2618662.512] {Default Queue} wl_pointer#1801.motion(187310296, 25.39843750, 40.80078125) +[2618662.516] {Default Queue} wl_pointer#1833.motion(187310296, 25.39843750, 40.80078125) +[2618662.521] {Default Queue} wl_pointer#1865.motion(187310296, 25.39843750, 40.80078125) +[2618662.525] {Default Queue} wl_pointer#1897.motion(187310296, 25.39843750, 40.80078125) +[2618662.529] {Default Queue} wl_pointer#1929.motion(187310296, 25.39843750, 40.80078125) +[2618662.533] {Default Queue} wl_pointer#1961.motion(187310296, 25.39843750, 40.80078125) +[2618662.538] {Default Queue} wl_pointer#1993.motion(187310296, 25.39843750, 40.80078125) +[2618662.542] {Default Queue} wl_pointer#2025.motion(187310296, 25.39843750, 40.80078125) +[2618662.546] {Default Queue} wl_pointer#2057.motion(187310296, 25.39843750, 40.80078125) +[2618662.550] {Default Queue} wl_pointer#2089.motion(187310296, 25.39843750, 40.80078125) +[2618662.555] {Default Queue} wl_pointer#2121.motion(187310296, 25.39843750, 40.80078125) +[2618662.559] {Default Queue} wl_pointer#2153.motion(187310296, 25.39843750, 40.80078125) +[2618662.563] {Default Queue} wl_pointer#2185.motion(187310296, 25.39843750, 40.80078125) +[2618662.567] {Default Queue} wl_pointer#2217.motion(187310296, 25.39843750, 40.80078125) +[2618662.572] {Default Queue} wl_pointer#2249.motion(187310296, 25.39843750, 40.80078125) +[2618662.576] {Default Queue} wl_pointer#2281.motion(187310296, 25.39843750, 40.80078125) +[2618662.580] {Default Queue} wl_pointer#2313.motion(187310296, 25.39843750, 40.80078125) +[2618662.585] {Default Queue} wl_pointer#2345.motion(187310296, 25.39843750, 40.80078125) +[2618662.589] {Default Queue} wl_pointer#2377.motion(187310296, 25.39843750, 40.80078125) +[2618662.593] {Default Queue} wl_pointer#2409.motion(187310296, 25.39843750, 40.80078125) +[2618662.597] {Default Queue} wl_pointer#2441.motion(187310296, 25.39843750, 40.80078125) +[2618662.604] {Default Queue} wl_pointer#2473.motion(187310296, 25.39843750, 40.80078125) +[2618662.610] {Default Queue} wl_pointer#2498.motion(187310296, 25.39843750, 40.80078125) +[2618662.622] {Default Queue} -> wl_buffer#3294.destroy() +[2618662.628] {Default Queue} -> wl_buffer#3293.destroy() +[2618662.633] {Default Queue} -> wl_shm_pool#3292.destroy() +[2618662.638] {Default Queue} -> wl_shm_pool#3291.destroy() +[2618662.644] {Default Queue} -> wl_surface#3484.destroy() +[2618662.684] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3454, fd 581, 640) +[2618662.690] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3517, fd 582, 640) +[2618662.695] {Default Queue} -> wl_shm_pool#3454.create_buffer(new id wl_buffer#3518, 0, 10, 16, 40, 0) +[2618662.699] {Default Queue} -> wl_shm_pool#3517.create_buffer(new id wl_buffer#3451, 0, 10, 16, 40, 0) +[2618662.707] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3452) +[2618662.711] {Default Queue} -> wl_surface#3452.attach(wl_buffer#3518, 0, 0) +[2618662.715] {Default Queue} -> wl_surface#3452.commit() +[2618662.721] {Default Queue} -> wl_surface#3452.attach(wl_buffer#3518, 0, 0) +[2618662.725] {Default Queue} -> wl_surface#3452.commit() +[2618662.730] {Default Queue} wl_pointer#2537.motion(187310296, 25.39843750, 40.80078125) +[2618662.734] {Default Queue} wl_pointer#2569.motion(187310296, 25.39843750, 40.80078125) +[2618662.739] {Default Queue} wl_pointer#2601.motion(187310296, 25.39843750, 40.80078125) +[2618662.743] {Default Queue} wl_pointer#2633.motion(187310296, 25.39843750, 40.80078125) +[2618662.747] {Default Queue} wl_pointer#2665.motion(187310296, 25.39843750, 40.80078125) +[2618662.752] {Default Queue} wl_pointer#2697.motion(187310296, 25.39843750, 40.80078125) +[2618662.756] {Default Queue} wl_pointer#2729.motion(187310296, 25.39843750, 40.80078125) +[2618662.760] {Default Queue} wl_pointer#2761.motion(187310296, 25.39843750, 40.80078125) +[2618662.764] {Default Queue} wl_pointer#2793.motion(187310296, 25.39843750, 40.80078125) +[2618662.769] {Default Queue} wl_pointer#2825.motion(187310296, 25.39843750, 40.80078125) +[2618662.773] {Default Queue} wl_pointer#2857.motion(187310296, 25.39843750, 40.80078125) +[2618662.778] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) +[2618662.782] {Default Queue} -> wl_surface#1639.commit() +[2618663.848] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) +[2618663.853] {Default Queue} -> wl_surface#1639.commit() +[2618663.859] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) +[2618663.868] {Default Queue} -> wl_surface#1639.commit() +[2618663.874] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) +[2618663.878] {Default Queue} -> wl_surface#1607.commit() +[2618664.940] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) +[2618664.945] {Default Queue} -> wl_surface#1607.commit() +[2618664.956] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) +[2618664.961] {Default Queue} -> wl_region#1631.add(0, 0, 2, 2) +[2618664.966] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618664.970] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618664.978] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) +[2618664.982] {Default Queue} -> wl_region#1631.add(0, 0, 2, 2) +[2618664.986] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618664.990] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618664.996] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) +[2618665.000] {Default Queue} -> wl_region#1631.add(0, 0, 2, 2) +[2618665.004] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618665.008] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618665.013] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) +[2618665.018] {Default Queue} -> wl_region#1631.add(0, 0, 2, 2) +[2618665.022] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618665.030] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618665.039] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) +[2618665.044] {Default Queue} -> wl_region#1631.add(0, 0, 2, 2) +[2618665.048] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618665.052] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618665.056] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) +[2618665.060] {Default Queue} -> wl_surface#1607.commit() +[2618665.064] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) +[2618665.068] {Default Queue} -> wl_surface#1607.commit() +[2618665.074] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) +[2618665.078] {Default Queue} -> wl_surface#1607.commit() +[2618665.085] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) +[2618665.089] {Default Queue} -> wl_surface#1831.commit() +[2618666.151] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) +[2618666.156] {Default Queue} -> wl_surface#1831.commit() +[2618666.165] {Default Queue} -> wl_region#1855.subtract(0, 0, 19, 48) +[2618666.170] {Default Queue} -> wl_region#1855.add(-20, -49, 19, 48) +[2618666.174] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2618666.178] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2618666.262] {Default Queue} -> wl_region#1855.subtract(0, 0, 19, 48) +[2618666.266] {Default Queue} -> wl_region#1855.add(-20, -49, 19, 48) +[2618666.271] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2618666.275] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2618666.281] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618666.286] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618666.338] {Default Queue} -> wl_region#1855.subtract(0, 0, 19, 48) +[2618666.343] {Default Queue} -> wl_region#1855.add(-20, -49, 19, 48) +[2618666.347] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2618666.351] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2618666.356] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618666.360] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618666.365] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) +[2618666.369] {Default Queue} -> wl_surface#1831.commit() +[2618666.373] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) +[2618666.377] {Default Queue} -> wl_surface#1831.commit() +[2618666.389] {Display Queue} wl_display#1.delete_id(3483) +[2618666.394] {Display Queue} wl_display#1.delete_id(3516) +[2618666.398] {Display Queue} wl_display#1.delete_id(3515) +[2618666.402] {Display Queue} wl_display#1.delete_id(3486) +[2618666.406] {Display Queue} wl_display#1.delete_id(3485) +[2618666.410] {Display Queue} wl_display#1.delete_id(3677) +[2618666.414] {Display Queue} wl_display#1.delete_id(3678) +[2618666.418] {Display Queue} wl_display#1.delete_id(3675) +[2618666.422] {Display Queue} wl_display#1.delete_id(3676) +[2618666.426] {Display Queue} wl_display#1.delete_id(3674) +[2618666.430] {Display Queue} wl_display#1.delete_id(91) +[2618666.434] {Display Queue} wl_display#1.delete_id(94) +[2618666.438] {Display Queue} wl_display#1.delete_id(3683) +[2618666.442] {Display Queue} wl_display#1.delete_id(92) +[2618666.446] {Display Queue} wl_display#1.delete_id(93) +[2618666.449] {Default Queue} wl_pointer#2889.motion(187310296, 25.39843750, 40.80078125) +[2618666.454] {Default Queue} wl_pointer#2921.motion(187310296, 25.39843750, 40.80078125) +[2618666.459] {Default Queue} wl_pointer#2953.motion(187310296, 25.39843750, 40.80078125) +[2618666.463] {Default Queue} wl_pointer#2985.motion(187310296, 25.39843750, 40.80078125) +[2618666.467] {Default Queue} wl_pointer#3017.motion(187310296, 25.39843750, 40.80078125) +[2618666.471] {Default Queue} wl_pointer#3049.motion(187310296, 25.39843750, 40.80078125) +[2618666.476] {Default Queue} wl_pointer#3081.motion(187310296, 25.39843750, 40.80078125) +[2618666.480] {Default Queue} wl_pointer#3113.motion(187310296, 25.39843750, 40.80078125) +[2618666.488] {Default Queue} wl_pointer#3145.motion(187310296, 25.39843750, 40.80078125) +[2618666.495] {Default Queue} wl_pointer#3177.motion(187310296, 25.39843750, 40.80078125) +[2618666.499] {Default Queue} wl_pointer#3209.motion(187310296, 25.39843750, 40.80078125) +[2618666.504] {Default Queue} wl_pointer#3241.motion(187310296, 25.39843750, 40.80078125) +[2618666.508] {Default Queue} wl_pointer#3273.motion(187310296, 25.39843750, 40.80078125) +[2618666.512] {Default Queue} wl_pointer#3305.motion(187310296, 25.39843750, 40.80078125) +[2618666.517] {Default Queue} wl_pointer#3337.motion(187310296, 25.39843750, 40.80078125) +[2618666.521] {Default Queue} wl_pointer#3369.motion(187310296, 25.39843750, 40.80078125) +[2618666.525] {Default Queue} wl_pointer#3401.motion(187310296, 25.39843750, 40.80078125) +[2618666.529] {Default Queue} wl_pointer#3433.motion(187310296, 25.39843750, 40.80078125) +[2618666.534] {Default Queue} wl_pointer#3465.motion(187310296, 25.39843750, 40.80078125) +[2618666.538] {Default Queue} wl_pointer#3497.motion(187310296, 25.39843750, 40.80078125) +[2618666.542] {Default Queue} wl_pointer#3529.motion(187310296, 25.39843750, 40.80078125) +[2618666.547] {Default Queue} wl_pointer#3561.motion(187310296, 25.39843750, 40.80078125) +[2618666.551] {Default Queue} wl_pointer#3593.motion(187310296, 25.39843750, 40.80078125) +[2618666.555] {Default Queue} wl_pointer#3625.motion(187310296, 25.39843750, 40.80078125) +[2618666.560] {Default Queue} wl_pointer#3657.motion(187310296, 25.39843750, 40.80078125) +[2618666.564] {Default Queue} wl_pointer#3695.motion(187310296, 25.39843750, 40.80078125) +[2618666.568] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) +[2618666.572] {Default Queue} -> wl_surface#1831.commit() +[2618666.598] {Default Queue} wl_pointer#24.motion(187310301, 25.39843750, 39.60156250) +[2618666.603] {Default Queue} wl_pointer#81.motion(187310301, 25.39843750, 39.60156250) +[2618666.609] {Default Queue} wl_pointer#105.motion(187310301, 25.39843750, 39.60156250) +[2618666.613] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618666.618] {Default Queue} wl_pointer#137.motion(187310301, 25.39843750, 39.60156250) +[2618666.622] {Default Queue} wl_pointer#169.motion(187310301, 25.39843750, 39.60156250) +[2618666.626] {Default Queue} wl_pointer#201.motion(187310301, 25.39843750, 39.60156250) +[2618666.631] {Default Queue} wl_pointer#233.motion(187310301, 25.39843750, 39.60156250) +[2618666.635] {Default Queue} wl_pointer#265.motion(187310301, 25.39843750, 39.60156250) +[2618666.639] {Default Queue} wl_pointer#297.motion(187310301, 25.39843750, 39.60156250) +[2618666.643] {Default Queue} wl_pointer#329.motion(187310301, 25.39843750, 39.60156250) +[2618666.648] {Default Queue} wl_pointer#361.motion(187310301, 25.39843750, 39.60156250) +[2618666.652] {Default Queue} wl_pointer#393.motion(187310301, 25.39843750, 39.60156250) +[2618666.656] {Default Queue} wl_pointer#425.motion(187310301, 25.39843750, 39.60156250) +[2618666.660] {Default Queue} wl_pointer#457.motion(187310301, 25.39843750, 39.60156250) +[2618666.665] {Default Queue} wl_pointer#489.motion(187310301, 25.39843750, 39.60156250) +[2618666.669] {Default Queue} wl_pointer#521.motion(187310301, 25.39843750, 39.60156250) +[2618666.673] {Default Queue} wl_pointer#553.motion(187310301, 25.39843750, 39.60156250) +[2618666.677] {Default Queue} wl_pointer#585.motion(187310301, 25.39843750, 39.60156250) +[2618666.682] {Default Queue} wl_pointer#617.motion(187310301, 25.39843750, 39.60156250) +[2618666.686] {Default Queue} wl_pointer#649.motion(187310301, 25.39843750, 39.60156250) +[2618666.690] {Default Queue} wl_pointer#681.motion(187310301, 25.39843750, 39.60156250) +[2618666.695] {Default Queue} wl_pointer#713.motion(187310301, 25.39843750, 39.60156250) +[2618666.699] {Default Queue} wl_pointer#745.motion(187310301, 25.39843750, 39.60156250) +[2618666.703] {Default Queue} wl_pointer#777.motion(187310301, 25.39843750, 39.60156250) +[2618666.707] {Default Queue} wl_pointer#809.motion(187310301, 25.39843750, 39.60156250) +[2618666.715] {Default Queue} wl_pointer#841.motion(187310301, 25.39843750, 39.60156250) +[2618666.721] {Default Queue} wl_pointer#873.motion(187310301, 25.39843750, 39.60156250) +[2618666.725] {Default Queue} wl_pointer#905.motion(187310301, 25.39843750, 39.60156250) +[2618666.729] {Default Queue} wl_pointer#937.motion(187310301, 25.39843750, 39.60156250) +[2618666.733] {Default Queue} wl_pointer#969.motion(187310301, 25.39843750, 39.60156250) +[2618666.738] {Default Queue} wl_pointer#1001.motion(187310301, 25.39843750, 39.60156250) +[2618666.742] {Default Queue} wl_pointer#1033.motion(187310301, 25.39843750, 39.60156250) +[2618666.746] {Default Queue} wl_pointer#1065.motion(187310301, 25.39843750, 39.60156250) +[2618666.750] {Default Queue} wl_pointer#1097.motion(187310301, 25.39843750, 39.60156250) +[2618666.755] {Default Queue} wl_pointer#1129.motion(187310301, 25.39843750, 39.60156250) +[2618666.759] {Default Queue} wl_pointer#1161.motion(187310301, 25.39843750, 39.60156250) +[2618666.763] {Default Queue} wl_pointer#1193.motion(187310301, 25.39843750, 39.60156250) +[2618666.768] {Default Queue} wl_pointer#1225.motion(187310301, 25.39843750, 39.60156250) +[2618666.772] {Default Queue} wl_pointer#1257.motion(187310301, 25.39843750, 39.60156250) +[2618666.776] {Default Queue} wl_pointer#1289.motion(187310301, 25.39843750, 39.60156250) +[2618666.781] {Default Queue} wl_pointer#1321.motion(187310301, 25.39843750, 39.60156250) +[2618666.785] {Default Queue} wl_pointer#1353.motion(187310301, 25.39843750, 39.60156250) +[2618666.789] {Default Queue} wl_pointer#1385.motion(187310301, 25.39843750, 39.60156250) +[2618666.793] {Default Queue} wl_pointer#1417.motion(187310301, 25.39843750, 39.60156250) +[2618666.798] {Default Queue} wl_pointer#1449.motion(187310301, 25.39843750, 39.60156250) +[2618666.802] {Default Queue} wl_pointer#1481.motion(187310301, 25.39843750, 39.60156250) +[2618666.806] {Default Queue} wl_pointer#1513.motion(187310301, 25.39843750, 39.60156250) +[2618666.810] {Default Queue} wl_pointer#1545.motion(187310301, 25.39843750, 39.60156250) +[2618666.815] {Default Queue} wl_pointer#1577.motion(187310301, 25.39843750, 39.60156250) +[2618666.819] {Default Queue} wl_pointer#1609.motion(187310301, 25.39843750, 39.60156250) +[2618666.823] {Default Queue} wl_pointer#1641.motion(187310301, 25.39843750, 39.60156250) +[2618666.827] {Default Queue} wl_pointer#1673.motion(187310301, 25.39843750, 39.60156250) +[2618666.832] {Default Queue} wl_pointer#1705.motion(187310301, 25.39843750, 39.60156250) +[2618666.836] {Default Queue} wl_pointer#1737.motion(187310301, 25.39843750, 39.60156250) +[2618666.840] {Default Queue} wl_pointer#1762.motion(187310301, 25.39843750, 39.60156250) +[2618666.845] {Default Queue} wl_pointer#1801.motion(187310301, 25.39843750, 39.60156250) +[2618666.849] {Default Queue} wl_pointer#1833.motion(187310301, 25.39843750, 39.60156250) +[2618666.853] {Default Queue} wl_pointer#1865.motion(187310301, 25.39843750, 39.60156250) +[2618666.857] {Default Queue} wl_pointer#1897.motion(187310301, 25.39843750, 39.60156250) +[2618666.862] {Default Queue} wl_pointer#1929.motion(187310301, 25.39843750, 39.60156250) +[2618666.867] {Default Queue} wl_pointer#1961.motion(187310301, 25.39843750, 39.60156250) +[2618666.877] {Default Queue} wl_pointer#1993.motion(187310301, 25.39843750, 39.60156250) +[2618666.882] {Default Queue} wl_pointer#2025.motion(187310301, 25.39843750, 39.60156250) +[2618666.886] {Default Queue} wl_pointer#2057.motion(187310301, 25.39843750, 39.60156250) +[2618666.890] {Default Queue} wl_pointer#2089.motion(187310301, 25.39843750, 39.60156250) +[2618666.895] {Default Queue} wl_pointer#2121.motion(187310301, 25.39843750, 39.60156250) +[2618666.899] {Default Queue} wl_pointer#2153.motion(187310301, 25.39843750, 39.60156250) +[2618666.903] {Default Queue} wl_pointer#2185.motion(187310301, 25.39843750, 39.60156250) +[2618666.908] {Default Queue} wl_pointer#2217.motion(187310301, 25.39843750, 39.60156250) +[2618666.912] {Default Queue} wl_pointer#2249.motion(187310301, 25.39843750, 39.60156250) +[2618666.916] {Default Queue} wl_pointer#2281.motion(187310301, 25.39843750, 39.60156250) +[2618666.923] {Default Queue} wl_pointer#2313.motion(187310301, 25.39843750, 39.60156250) +[2618666.929] {Default Queue} wl_pointer#2345.motion(187310301, 25.39843750, 39.60156250) +[2618666.934] {Default Queue} wl_pointer#2377.motion(187310301, 25.39843750, 39.60156250) +[2618666.938] {Default Queue} wl_pointer#2409.motion(187310301, 25.39843750, 39.60156250) +[2618666.943] {Default Queue} wl_pointer#2441.motion(187310301, 25.39843750, 39.60156250) +[2618666.947] {Default Queue} wl_pointer#2473.motion(187310301, 25.39843750, 39.60156250) +[2618666.951] {Default Queue} wl_pointer#2498.motion(187310301, 25.39843750, 39.60156250) +[2618666.963] {Default Queue} -> wl_buffer#3518.destroy() +[2618666.968] {Default Queue} -> wl_buffer#3451.destroy() +[2618666.972] {Default Queue} -> wl_shm_pool#3454.destroy() +[2618666.976] {Default Queue} -> wl_shm_pool#3517.destroy() +[2618666.981] {Default Queue} -> wl_surface#3452.destroy() +[2618667.031] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#93, fd 575, 640) +[2618667.037] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 578, 640) +[2618667.041] {Default Queue} -> wl_shm_pool#93.create_buffer(new id wl_buffer#3683, 0, 10, 16, 40, 0) +[2618667.046] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) +[2618667.053] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#91) +[2618667.057] {Default Queue} -> wl_surface#91.attach(wl_buffer#3683, 0, 0) +[2618667.062] {Default Queue} -> wl_surface#91.commit() +[2618667.067] {Default Queue} -> wl_surface#91.attach(wl_buffer#3683, 0, 0) +[2618667.071] {Default Queue} -> wl_surface#91.commit() +[2618667.075] {Default Queue} wl_pointer#2537.motion(187310301, 25.39843750, 39.60156250) +[2618667.080] {Default Queue} wl_pointer#2569.motion(187310301, 25.39843750, 39.60156250) +[2618667.084] {Default Queue} wl_pointer#2601.motion(187310301, 25.39843750, 39.60156250) +[2618667.089] {Default Queue} wl_pointer#2633.motion(187310301, 25.39843750, 39.60156250) +[2618667.093] {Default Queue} wl_pointer#2665.motion(187310301, 25.39843750, 39.60156250) +[2618667.097] {Default Queue} wl_pointer#2697.motion(187310301, 25.39843750, 39.60156250) +[2618667.102] {Default Queue} wl_pointer#2729.motion(187310301, 25.39843750, 39.60156250) +[2618667.106] {Default Queue} wl_pointer#2761.motion(187310301, 25.39843750, 39.60156250) +[2618667.110] {Default Queue} wl_pointer#2793.motion(187310301, 25.39843750, 39.60156250) +[2618667.115] {Default Queue} wl_pointer#2825.motion(187310301, 25.39843750, 39.60156250) +[2618667.119] {Default Queue} wl_pointer#2857.motion(187310301, 25.39843750, 39.60156250) +[2618667.123] {Default Queue} wl_pointer#2889.motion(187310301, 25.39843750, 39.60156250) +[2618667.128] {Default Queue} wl_pointer#2921.motion(187310301, 25.39843750, 39.60156250) +[2618667.132] {Default Queue} wl_pointer#2953.motion(187310301, 25.39843750, 39.60156250) +[2618667.136] {Default Queue} wl_pointer#2985.motion(187310301, 25.39843750, 39.60156250) +[2618667.140] {Default Queue} wl_pointer#3017.motion(187310301, 25.39843750, 39.60156250) +[2618667.145] {Default Queue} wl_pointer#3049.motion(187310301, 25.39843750, 39.60156250) +[2618667.149] {Default Queue} wl_pointer#3081.motion(187310301, 25.39843750, 39.60156250) +[2618667.153] {Default Queue} wl_pointer#3113.motion(187310301, 25.39843750, 39.60156250) +[2618667.157] {Default Queue} wl_pointer#3145.motion(187310301, 25.39843750, 39.60156250) +[2618667.162] {Default Queue} wl_pointer#3177.motion(187310301, 25.39843750, 39.60156250) +[2618667.166] {Default Queue} wl_pointer#3209.motion(187310301, 25.39843750, 39.60156250) +[2618667.170] {Default Queue} wl_pointer#3241.motion(187310301, 25.39843750, 39.60156250) +[2618667.175] {Default Queue} wl_pointer#3273.motion(187310301, 25.39843750, 39.60156250) +[2618667.179] {Default Queue} wl_pointer#3305.motion(187310301, 25.39843750, 39.60156250) +[2618667.184] {Default Queue} wl_pointer#3337.motion(187310301, 25.39843750, 39.60156250) +[2618667.188] {Default Queue} wl_pointer#3369.motion(187310301, 25.39843750, 39.60156250) +[2618667.193] {Default Queue} wl_pointer#3401.motion(187310301, 25.39843750, 39.60156250) +[2618667.200] {Default Queue} wl_pointer#3433.motion(187310301, 25.39843750, 39.60156250) +[2618667.204] {Default Queue} wl_pointer#3465.motion(187310301, 25.39843750, 39.60156250) +[2618667.210] {Default Queue} wl_pointer#3497.motion(187310301, 25.39843750, 39.60156250) +[2618667.216] {Default Queue} wl_pointer#3529.motion(187310301, 25.39843750, 39.60156250) +[2618667.222] {Default Queue} wl_pointer#3561.motion(187310301, 25.39843750, 39.60156250) +[2618667.228] {Default Queue} wl_pointer#3593.motion(187310301, 25.39843750, 39.60156250) +[2618667.233] {Default Queue} wl_pointer#3625.motion(187310301, 25.39843750, 39.60156250) +[2618667.239] {Default Queue} wl_pointer#3657.motion(187310301, 25.39843750, 39.60156250) +[2618667.245] {Default Queue} wl_pointer#3695.motion(187310301, 25.39843750, 39.60156250) +[2618667.251] {Default Queue} wl_pointer#24.motion(187310301, 25.39843750, 38.00000000) +[2618667.257] {Default Queue} wl_pointer#81.motion(187310301, 25.39843750, 38.00000000) +[2618667.262] {Default Queue} wl_pointer#105.motion(187310301, 25.39843750, 38.00000000) +[2618667.267] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618667.271] {Default Queue} wl_pointer#137.motion(187310301, 25.39843750, 38.00000000) +[2618667.275] {Default Queue} wl_pointer#169.motion(187310301, 25.39843750, 38.00000000) +[2618667.280] {Default Queue} wl_pointer#201.motion(187310301, 25.39843750, 38.00000000) +[2618667.284] {Default Queue} wl_pointer#233.motion(187310301, 25.39843750, 38.00000000) +[2618667.289] {Default Queue} wl_pointer#265.motion(187310301, 25.39843750, 38.00000000) +[2618667.295] {Default Queue} wl_pointer#297.motion(187310301, 25.39843750, 38.00000000) +[2618667.301] {Default Queue} wl_pointer#329.motion(187310301, 25.39843750, 38.00000000) +[2618667.307] {Default Queue} wl_pointer#361.motion(187310301, 25.39843750, 38.00000000) +[2618667.313] {Default Queue} wl_pointer#393.motion(187310301, 25.39843750, 38.00000000) +[2618667.319] {Default Queue} wl_pointer#425.motion(187310301, 25.39843750, 38.00000000) +[2618667.324] {Default Queue} wl_pointer#457.motion(187310301, 25.39843750, 38.00000000) +[2618667.328] {Default Queue} wl_pointer#489.motion(187310301, 25.39843750, 38.00000000) +[2618667.332] {Default Queue} wl_pointer#521.motion(187310301, 25.39843750, 38.00000000) +[2618667.337] {Default Queue} wl_pointer#553.motion(187310301, 25.39843750, 38.00000000) +[2618667.341] {Default Queue} wl_pointer#585.motion(187310301, 25.39843750, 38.00000000) +[2618667.345] {Default Queue} wl_pointer#617.motion(187310301, 25.39843750, 38.00000000) +[2618667.350] {Default Queue} wl_pointer#649.motion(187310301, 25.39843750, 38.00000000) +[2618667.354] {Default Queue} wl_pointer#681.motion(187310301, 25.39843750, 38.00000000) +[2618667.358] {Default Queue} wl_pointer#713.motion(187310301, 25.39843750, 38.00000000) +[2618667.362] {Default Queue} wl_pointer#745.motion(187310301, 25.39843750, 38.00000000) +[2618667.367] {Default Queue} wl_pointer#777.motion(187310301, 25.39843750, 38.00000000) +[2618667.371] {Default Queue} wl_pointer#809.motion(187310301, 25.39843750, 38.00000000) +[2618667.375] {Default Queue} wl_pointer#841.motion(187310301, 25.39843750, 38.00000000) +[2618667.380] {Default Queue} wl_pointer#873.motion(187310301, 25.39843750, 38.00000000) +[2618667.384] {Default Queue} wl_pointer#905.motion(187310301, 25.39843750, 38.00000000) +[2618667.388] {Default Queue} wl_pointer#937.motion(187310301, 25.39843750, 38.00000000) +[2618667.393] {Default Queue} wl_pointer#969.motion(187310301, 25.39843750, 38.00000000) +[2618667.397] {Default Queue} wl_pointer#1001.motion(187310301, 25.39843750, 38.00000000) +[2618667.401] {Default Queue} wl_pointer#1033.motion(187310301, 25.39843750, 38.00000000) +[2618667.405] {Default Queue} wl_pointer#1065.motion(187310301, 25.39843750, 38.00000000) +[2618667.410] {Default Queue} wl_pointer#1097.motion(187310301, 25.39843750, 38.00000000) +[2618667.417] {Default Queue} wl_pointer#1129.motion(187310301, 25.39843750, 38.00000000) +[2618667.423] {Default Queue} wl_pointer#1161.motion(187310301, 25.39843750, 38.00000000) +[2618667.428] {Default Queue} wl_pointer#1193.motion(187310301, 25.39843750, 38.00000000) +[2618667.432] {Default Queue} wl_pointer#1225.motion(187310301, 25.39843750, 38.00000000) +[2618667.436] {Default Queue} wl_pointer#1257.motion(187310301, 25.39843750, 38.00000000) +[2618667.440] {Default Queue} wl_pointer#1289.motion(187310301, 25.39843750, 38.00000000) +[2618667.445] {Default Queue} wl_pointer#1321.motion(187310301, 25.39843750, 38.00000000) +[2618667.449] {Default Queue} wl_pointer#1353.motion(187310301, 25.39843750, 38.00000000) +[2618667.453] {Default Queue} wl_pointer#1385.motion(187310301, 25.39843750, 38.00000000) +[2618667.458] {Default Queue} wl_pointer#1417.motion(187310301, 25.39843750, 38.00000000) +[2618667.462] {Default Queue} wl_pointer#1449.motion(187310301, 25.39843750, 38.00000000) +[2618667.466] {Default Queue} wl_pointer#1481.motion(187310301, 25.39843750, 38.00000000) +[2618667.470] {Default Queue} wl_pointer#1513.motion(187310301, 25.39843750, 38.00000000) +[2618667.475] {Default Queue} wl_pointer#1545.motion(187310301, 25.39843750, 38.00000000) +[2618667.479] {Default Queue} wl_pointer#1577.motion(187310301, 25.39843750, 38.00000000) +[2618667.483] {Default Queue} wl_pointer#1609.motion(187310301, 25.39843750, 38.00000000) +[2618667.488] {Default Queue} wl_pointer#1641.motion(187310301, 25.39843750, 38.00000000) +[2618667.492] {Default Queue} wl_pointer#1673.motion(187310301, 25.39843750, 38.00000000) +[2618667.496] {Default Queue} wl_pointer#1705.motion(187310301, 25.39843750, 38.00000000) +[2618667.500] {Default Queue} wl_pointer#1737.motion(187310301, 25.39843750, 38.00000000) +[2618667.505] {Default Queue} wl_pointer#1762.motion(187310301, 25.39843750, 38.00000000) +[2618667.509] {Default Queue} wl_pointer#1801.motion(187310301, 25.39843750, 38.00000000) +[2618667.513] {Default Queue} wl_pointer#1833.motion(187310301, 25.39843750, 38.00000000) +[2618667.518] {Default Queue} wl_pointer#1865.motion(187310301, 25.39843750, 38.00000000) +[2618667.522] {Default Queue} wl_pointer#1897.motion(187310301, 25.39843750, 38.00000000) +[2618667.526] {Default Queue} wl_pointer#1929.motion(187310301, 25.39843750, 38.00000000) +[2618667.531] {Default Queue} wl_pointer#1961.motion(187310301, 25.39843750, 38.00000000) +[2618667.535] {Default Queue} wl_pointer#1993.motion(187310301, 25.39843750, 38.00000000) +[2618667.539] {Default Queue} wl_pointer#2025.motion(187310301, 25.39843750, 38.00000000) +[2618667.544] {Default Queue} wl_pointer#2057.motion(187310301, 25.39843750, 38.00000000) +[2618667.548] {Default Queue} wl_pointer#2089.motion(187310301, 25.39843750, 38.00000000) +[2618667.552] {Default Queue} wl_pointer#2121.motion(187310301, 25.39843750, 38.00000000) +[2618667.556] {Default Queue} wl_pointer#2153.motion(187310301, 25.39843750, 38.00000000) +[2618667.561] {Default Queue} wl_pointer#2185.motion(187310301, 25.39843750, 38.00000000) +[2618667.565] {Default Queue} wl_pointer#2217.motion(187310301, 25.39843750, 38.00000000) +[2618667.569] {Default Queue} wl_pointer#2249.motion(187310301, 25.39843750, 38.00000000) +[2618667.574] {Default Queue} wl_pointer#2281.motion(187310301, 25.39843750, 38.00000000) +[2618667.578] {Default Queue} wl_pointer#2313.motion(187310301, 25.39843750, 38.00000000) +[2618667.582] {Default Queue} wl_pointer#2345.motion(187310301, 25.39843750, 38.00000000) +[2618667.587] {Default Queue} wl_pointer#2377.motion(187310301, 25.39843750, 38.00000000) +[2618667.591] {Default Queue} wl_pointer#2409.motion(187310301, 25.39843750, 38.00000000) +[2618667.595] {Default Queue} wl_pointer#2441.motion(187310301, 25.39843750, 38.00000000) +[2618667.600] {Default Queue} wl_pointer#2473.motion(187310301, 25.39843750, 38.00000000) +[2618667.604] {Default Queue} wl_pointer#2498.motion(187310301, 25.39843750, 38.00000000) +[2618667.615] {Default Queue} -> wl_buffer#3683.destroy() +[2618667.620] {Default Queue} -> wl_buffer#94.destroy() +[2618667.624] {Default Queue} -> wl_shm_pool#93.destroy() +[2618667.630] {Default Queue} -> wl_shm_pool#92.destroy() +[2618667.638] {Default Queue} -> wl_surface#91.destroy() +[2618667.683] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3674, fd 581, 640) +[2618667.690] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3676, fd 582, 640) +[2618667.695] {Default Queue} -> wl_shm_pool#3674.create_buffer(new id wl_buffer#3675, 0, 10, 16, 40, 0) +[2618667.699] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 10, 16, 40, 0) +[2618667.706] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3677) +[2618667.711] {Default Queue} -> wl_surface#3677.attach(wl_buffer#3675, 0, 0) +[2618667.715] {Default Queue} -> wl_surface#3677.commit() +[2618667.720] {Default Queue} -> wl_surface#3677.attach(wl_buffer#3675, 0, 0) +[2618667.725] {Default Queue} -> wl_surface#3677.commit() +[2618667.729] {Default Queue} wl_pointer#2537.motion(187310301, 25.39843750, 38.00000000) +[2618667.734] {Default Queue} wl_pointer#2569.motion(187310301, 25.39843750, 38.00000000) +[2618667.738] {Default Queue} wl_pointer#2601.motion(187310301, 25.39843750, 38.00000000) +[2618667.742] {Default Queue} wl_pointer#2633.motion(187310301, 25.39843750, 38.00000000) +[2618667.747] {Default Queue} wl_pointer#2665.motion(187310301, 25.39843750, 38.00000000) +[2618667.751] {Default Queue} wl_pointer#2697.motion(187310301, 25.39843750, 38.00000000) +[2618667.755] {Default Queue} wl_pointer#2729.motion(187310301, 25.39843750, 38.00000000) +[2618667.760] {Default Queue} wl_pointer#2761.motion(187310301, 25.39843750, 38.00000000) +[2618667.764] {Default Queue} wl_pointer#2793.motion(187310301, 25.39843750, 38.00000000) +[2618667.768] {Default Queue} wl_pointer#2825.motion(187310301, 25.39843750, 38.00000000) +[2618667.773] {Default Queue} wl_pointer#2857.motion(187310301, 25.39843750, 38.00000000) +[2618667.780] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) +[2618667.784] {Default Queue} -> wl_surface#1831.commit() +[2618667.790] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) +[2618667.795] {Default Queue} -> wl_surface#1895.commit() +[2618668.860] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) +[2618668.873] {Default Queue} -> wl_surface#1895.commit() +[2618668.885] {Default Queue} -> wl_region#1919.subtract(0, 0, 19, 48) +[2618668.889] {Default Queue} -> wl_region#1919.add(-20, -49, 19, 48) +[2618668.893] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) +[2618668.898] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) +[2618668.905] {Default Queue} -> wl_region#1919.subtract(0, 0, 19, 48) +[2618668.911] {Default Queue} -> wl_region#1919.add(-20, -49, 19, 48) +[2618668.915] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) +[2618668.919] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) +[2618668.930] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618668.936] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618668.941] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) +[2618668.945] {Default Queue} -> wl_surface#1895.commit() +[2618668.949] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) +[2618668.953] {Default Queue} -> wl_surface#1895.commit() +[2618668.959] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) +[2618668.963] {Default Queue} -> wl_surface#1895.commit() +[2618668.969] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) +[2618668.973] {Default Queue} -> wl_surface#1863.commit() +[2618670.035] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) +[2618670.040] {Default Queue} -> wl_surface#1863.commit() +[2618670.047] {Default Queue} -> wl_region#1887.subtract(0, 0, 19, 48) +[2618670.052] {Default Queue} -> wl_region#1887.add(-20, -49, 19, 48) +[2618670.057] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) +[2618670.061] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) +[2618670.070] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) +[2618670.077] {Default Queue} -> wl_surface#1863.commit() +[2618670.081] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) +[2618670.085] {Default Queue} -> wl_surface#1863.commit() +[2618670.091] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) +[2618670.095] {Default Queue} -> wl_surface#1863.commit() +[2618670.101] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) +[2618670.105] {Default Queue} -> wl_surface#1799.commit() +[2618671.166] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) +[2618671.172] {Default Queue} -> wl_surface#1799.commit() +[2618671.178] {Default Queue} -> wl_region#1823.subtract(0, 0, 22, 51) +[2618671.182] {Default Queue} -> wl_region#1823.add(-20, -49, 19, 48) +[2618671.186] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) +[2618671.190] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) +[2618671.195] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) +[2618671.199] {Default Queue} -> wl_surface#1799.commit() +[2618671.203] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) +[2618671.207] {Default Queue} -> wl_surface#1799.commit() +[2618671.228] {Display Queue} wl_display#1.delete_id(3671) +[2618671.233] {Display Queue} wl_display#1.delete_id(3681) +[2618671.237] {Display Queue} wl_display#1.delete_id(3684) +[2618671.241] {Display Queue} wl_display#1.delete_id(3679) +[2618671.245] {Display Queue} wl_display#1.delete_id(3682) +[2618671.249] {Display Queue} wl_display#1.delete_id(3294) +[2618671.253] {Display Queue} wl_display#1.delete_id(3293) +[2618671.257] {Display Queue} wl_display#1.delete_id(3292) +[2618671.261] {Display Queue} wl_display#1.delete_id(3291) +[2618671.265] {Display Queue} wl_display#1.delete_id(3484) +[2618671.269] {Default Queue} wl_pointer#2889.motion(187310301, 25.39843750, 38.00000000) +[2618671.273] {Default Queue} wl_pointer#2921.motion(187310301, 25.39843750, 38.00000000) +[2618671.278] {Default Queue} wl_pointer#2953.motion(187310301, 25.39843750, 38.00000000) +[2618671.282] {Default Queue} wl_pointer#2985.motion(187310301, 25.39843750, 38.00000000) +[2618671.286] {Default Queue} wl_pointer#3017.motion(187310301, 25.39843750, 38.00000000) +[2618671.291] {Default Queue} wl_pointer#3049.motion(187310301, 25.39843750, 38.00000000) +[2618671.295] {Default Queue} wl_pointer#3081.motion(187310301, 25.39843750, 38.00000000) +[2618671.299] {Default Queue} wl_pointer#3113.motion(187310301, 25.39843750, 38.00000000) +[2618671.304] {Default Queue} wl_pointer#3145.motion(187310301, 25.39843750, 38.00000000) +[2618671.308] {Default Queue} wl_pointer#3177.motion(187310301, 25.39843750, 38.00000000) +[2618671.312] {Default Queue} wl_pointer#3209.motion(187310301, 25.39843750, 38.00000000) +[2618671.317] {Default Queue} wl_pointer#3241.motion(187310301, 25.39843750, 38.00000000) +[2618671.321] {Default Queue} wl_pointer#3273.motion(187310301, 25.39843750, 38.00000000) +[2618671.325] {Default Queue} wl_pointer#3305.motion(187310301, 25.39843750, 38.00000000) +[2618671.330] {Default Queue} wl_pointer#3337.motion(187310301, 25.39843750, 38.00000000) +[2618671.334] {Default Queue} wl_pointer#3369.motion(187310301, 25.39843750, 38.00000000) +[2618671.338] {Default Queue} wl_pointer#3401.motion(187310301, 25.39843750, 38.00000000) +[2618671.342] {Default Queue} wl_pointer#3433.motion(187310301, 25.39843750, 38.00000000) +[2618671.347] {Default Queue} wl_pointer#3465.motion(187310301, 25.39843750, 38.00000000) +[2618671.351] {Default Queue} wl_pointer#3497.motion(187310301, 25.39843750, 38.00000000) +[2618671.355] {Default Queue} wl_pointer#3529.motion(187310301, 25.39843750, 38.00000000) +[2618671.360] {Default Queue} wl_pointer#3561.motion(187310301, 25.39843750, 38.00000000) +[2618671.364] {Default Queue} wl_pointer#3593.motion(187310301, 25.39843750, 38.00000000) +[2618671.368] {Default Queue} wl_pointer#3625.motion(187310301, 25.39843750, 38.00000000) +[2618671.373] {Default Queue} wl_pointer#3657.motion(187310301, 25.39843750, 38.00000000) +[2618671.380] {Default Queue} wl_pointer#3695.motion(187310301, 25.39843750, 38.00000000) +[2618671.386] {Default Queue} wl_pointer#24.motion(187310301, 25.39843750, 36.00000000) +[2618671.390] {Default Queue} wl_pointer#81.motion(187310301, 25.39843750, 36.00000000) +[2618671.395] {Default Queue} wl_pointer#105.motion(187310301, 25.39843750, 36.00000000) +[2618671.400] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618671.404] {Default Queue} wl_pointer#137.motion(187310301, 25.39843750, 36.00000000) +[2618671.409] {Default Queue} wl_pointer#169.motion(187310301, 25.39843750, 36.00000000) +[2618671.413] {Default Queue} wl_pointer#201.motion(187310301, 25.39843750, 36.00000000) +[2618671.417] {Default Queue} wl_pointer#233.motion(187310301, 25.39843750, 36.00000000) +[2618671.422] {Default Queue} wl_pointer#265.motion(187310301, 25.39843750, 36.00000000) +[2618671.426] {Default Queue} wl_pointer#297.motion(187310301, 25.39843750, 36.00000000) +[2618671.430] {Default Queue} wl_pointer#329.motion(187310301, 25.39843750, 36.00000000) +[2618671.434] {Default Queue} wl_pointer#361.motion(187310301, 25.39843750, 36.00000000) +[2618671.439] {Default Queue} wl_pointer#393.motion(187310301, 25.39843750, 36.00000000) +[2618671.443] {Default Queue} wl_pointer#425.motion(187310301, 25.39843750, 36.00000000) +[2618671.447] {Default Queue} wl_pointer#457.motion(187310301, 25.39843750, 36.00000000) +[2618671.451] {Default Queue} wl_pointer#489.motion(187310301, 25.39843750, 36.00000000) +[2618671.456] {Default Queue} wl_pointer#521.motion(187310301, 25.39843750, 36.00000000) +[2618671.460] {Default Queue} wl_pointer#553.motion(187310301, 25.39843750, 36.00000000) +[2618671.464] {Default Queue} wl_pointer#585.motion(187310301, 25.39843750, 36.00000000) +[2618671.468] {Default Queue} wl_pointer#617.motion(187310301, 25.39843750, 36.00000000) +[2618671.473] {Default Queue} wl_pointer#649.motion(187310301, 25.39843750, 36.00000000) +[2618671.477] {Default Queue} wl_pointer#681.motion(187310301, 25.39843750, 36.00000000) +[2618671.481] {Default Queue} wl_pointer#713.motion(187310301, 25.39843750, 36.00000000) +[2618671.485] {Default Queue} wl_pointer#745.motion(187310301, 25.39843750, 36.00000000) +[2618671.490] {Default Queue} wl_pointer#777.motion(187310301, 25.39843750, 36.00000000) +[2618671.494] {Default Queue} wl_pointer#809.motion(187310301, 25.39843750, 36.00000000) +[2618671.498] {Default Queue} wl_pointer#841.motion(187310301, 25.39843750, 36.00000000) +[2618671.503] {Default Queue} wl_pointer#873.motion(187310301, 25.39843750, 36.00000000) +[2618671.507] {Default Queue} wl_pointer#905.motion(187310301, 25.39843750, 36.00000000) +[2618671.511] {Default Queue} wl_pointer#937.motion(187310301, 25.39843750, 36.00000000) +[2618671.515] {Default Queue} wl_pointer#969.motion(187310301, 25.39843750, 36.00000000) +[2618671.520] {Default Queue} wl_pointer#1001.motion(187310301, 25.39843750, 36.00000000) +[2618671.524] {Default Queue} wl_pointer#1033.motion(187310301, 25.39843750, 36.00000000) +[2618671.528] {Default Queue} wl_pointer#1065.motion(187310301, 25.39843750, 36.00000000) +[2618671.533] {Default Queue} wl_pointer#1097.motion(187310301, 25.39843750, 36.00000000) +[2618671.537] {Default Queue} wl_pointer#1129.motion(187310301, 25.39843750, 36.00000000) +[2618671.541] {Default Queue} wl_pointer#1161.motion(187310301, 25.39843750, 36.00000000) +[2618671.546] {Default Queue} wl_pointer#1193.motion(187310301, 25.39843750, 36.00000000) +[2618671.550] {Default Queue} wl_pointer#1225.motion(187310301, 25.39843750, 36.00000000) +[2618671.554] {Default Queue} wl_pointer#1257.motion(187310301, 25.39843750, 36.00000000) +[2618671.558] {Default Queue} wl_pointer#1289.motion(187310301, 25.39843750, 36.00000000) +[2618671.563] {Default Queue} wl_pointer#1321.motion(187310301, 25.39843750, 36.00000000) +[2618671.567] {Default Queue} wl_pointer#1353.motion(187310301, 25.39843750, 36.00000000) +[2618671.571] {Default Queue} wl_pointer#1385.motion(187310301, 25.39843750, 36.00000000) +[2618671.576] {Default Queue} wl_pointer#1417.motion(187310301, 25.39843750, 36.00000000) +[2618671.583] {Default Queue} wl_pointer#1449.motion(187310301, 25.39843750, 36.00000000) +[2618671.589] {Default Queue} wl_pointer#1481.motion(187310301, 25.39843750, 36.00000000) +[2618671.593] {Default Queue} wl_pointer#1513.motion(187310301, 25.39843750, 36.00000000) +[2618671.597] {Default Queue} wl_pointer#1545.motion(187310301, 25.39843750, 36.00000000) +[2618671.601] {Default Queue} wl_pointer#1577.motion(187310301, 25.39843750, 36.00000000) +[2618671.606] {Default Queue} wl_pointer#1609.motion(187310301, 25.39843750, 36.00000000) +[2618671.610] {Default Queue} wl_pointer#1641.motion(187310301, 25.39843750, 36.00000000) +[2618671.614] {Default Queue} wl_pointer#1673.motion(187310301, 25.39843750, 36.00000000) +[2618671.619] {Default Queue} wl_pointer#1705.motion(187310301, 25.39843750, 36.00000000) +[2618671.623] {Default Queue} wl_pointer#1737.motion(187310301, 25.39843750, 36.00000000) +[2618671.627] {Default Queue} wl_pointer#1762.motion(187310301, 25.39843750, 36.00000000) +[2618671.632] {Default Queue} wl_pointer#1801.motion(187310301, 25.39843750, 36.00000000) +[2618671.636] {Default Queue} wl_pointer#1833.motion(187310301, 25.39843750, 36.00000000) +[2618671.640] {Default Queue} wl_pointer#1865.motion(187310301, 25.39843750, 36.00000000) +[2618671.644] {Default Queue} wl_pointer#1897.motion(187310301, 25.39843750, 36.00000000) +[2618671.649] {Default Queue} wl_pointer#1929.motion(187310301, 25.39843750, 36.00000000) +[2618671.653] {Default Queue} wl_pointer#1961.motion(187310301, 25.39843750, 36.00000000) +[2618671.657] {Default Queue} wl_pointer#1993.motion(187310301, 25.39843750, 36.00000000) +[2618671.661] {Default Queue} wl_pointer#2025.motion(187310301, 25.39843750, 36.00000000) +[2618671.666] {Default Queue} wl_pointer#2057.motion(187310301, 25.39843750, 36.00000000) +[2618671.670] {Default Queue} wl_pointer#2089.motion(187310301, 25.39843750, 36.00000000) +[2618671.674] {Default Queue} wl_pointer#2121.motion(187310301, 25.39843750, 36.00000000) +[2618671.678] {Default Queue} wl_pointer#2153.motion(187310301, 25.39843750, 36.00000000) +[2618671.683] {Default Queue} wl_pointer#2185.motion(187310301, 25.39843750, 36.00000000) +[2618671.687] {Default Queue} wl_pointer#2217.motion(187310301, 25.39843750, 36.00000000) +[2618671.691] {Default Queue} wl_pointer#2249.motion(187310301, 25.39843750, 36.00000000) +[2618671.696] {Default Queue} wl_pointer#2281.motion(187310301, 25.39843750, 36.00000000) +[2618671.700] {Default Queue} wl_pointer#2313.motion(187310301, 25.39843750, 36.00000000) +[2618671.704] {Default Queue} wl_pointer#2345.motion(187310301, 25.39843750, 36.00000000) +[2618671.709] {Default Queue} wl_pointer#2377.motion(187310301, 25.39843750, 36.00000000) +[2618671.713] {Default Queue} wl_pointer#2409.motion(187310301, 25.39843750, 36.00000000) +[2618671.718] {Default Queue} wl_pointer#2441.motion(187310301, 25.39843750, 36.00000000) +[2618671.722] {Default Queue} wl_pointer#2473.motion(187310301, 25.39843750, 36.00000000) +[2618671.726] {Default Queue} wl_pointer#2498.motion(187310301, 25.39843750, 36.00000000) +[2618671.738] {Default Queue} -> wl_buffer#3675.destroy() +[2618671.744] {Default Queue} -> wl_buffer#3678.destroy() +[2618671.748] {Default Queue} -> wl_shm_pool#3674.destroy() +[2618671.752] {Default Queue} -> wl_shm_pool#3676.destroy() +[2618671.757] {Default Queue} -> wl_surface#3677.destroy() +[2618671.796] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3484, fd 575, 640) +[2618671.802] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 578, 640) +[2618671.807] {Default Queue} -> wl_shm_pool#3484.create_buffer(new id wl_buffer#3292, 0, 10, 16, 40, 0) +[2618671.811] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) +[2618671.819] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3294) +[2618671.823] {Default Queue} -> wl_surface#3294.attach(wl_buffer#3292, 0, 0) +[2618671.827] {Default Queue} -> wl_surface#3294.commit() +[2618671.832] {Default Queue} -> wl_surface#3294.attach(wl_buffer#3292, 0, 0) +[2618671.840] {Default Queue} -> wl_surface#3294.commit() +[2618671.846] {Default Queue} wl_pointer#2537.motion(187310301, 25.39843750, 36.00000000) +[2618671.850] {Default Queue} wl_pointer#2569.motion(187310301, 25.39843750, 36.00000000) +[2618671.855] {Default Queue} wl_pointer#2601.motion(187310301, 25.39843750, 36.00000000) +[2618671.859] {Default Queue} wl_pointer#2633.motion(187310301, 25.39843750, 36.00000000) +[2618671.864] {Default Queue} wl_pointer#2665.motion(187310301, 25.39843750, 36.00000000) +[2618671.869] {Default Queue} wl_pointer#2697.motion(187310301, 25.39843750, 36.00000000) +[2618671.879] {Default Queue} wl_pointer#2729.motion(187310301, 25.39843750, 36.00000000) +[2618671.883] {Default Queue} wl_pointer#2761.motion(187310301, 25.39843750, 36.00000000) +[2618671.888] {Default Queue} wl_pointer#2793.motion(187310301, 25.39843750, 36.00000000) +[2618671.892] {Default Queue} wl_pointer#2825.motion(187310301, 25.39843750, 36.00000000) +[2618671.897] {Default Queue} wl_pointer#2857.motion(187310301, 25.39843750, 36.00000000) +[2618671.901] {Default Queue} wl_pointer#2889.motion(187310301, 25.39843750, 36.00000000) +[2618671.905] {Default Queue} wl_pointer#2921.motion(187310301, 25.39843750, 36.00000000) +[2618671.910] {Default Queue} wl_pointer#2953.motion(187310301, 25.39843750, 36.00000000) +[2618671.914] {Default Queue} wl_pointer#2985.motion(187310301, 25.39843750, 36.00000000) +[2618671.918] {Default Queue} wl_pointer#3017.motion(187310301, 25.39843750, 36.00000000) +[2618671.923] {Default Queue} wl_pointer#3049.motion(187310301, 25.39843750, 36.00000000) +[2618671.927] {Default Queue} wl_pointer#3081.motion(187310301, 25.39843750, 36.00000000) +[2618671.931] {Default Queue} wl_pointer#3113.motion(187310301, 25.39843750, 36.00000000) +[2618671.935] {Default Queue} wl_pointer#3145.motion(187310301, 25.39843750, 36.00000000) +[2618671.940] {Default Queue} wl_pointer#3177.motion(187310301, 25.39843750, 36.00000000) +[2618671.944] {Default Queue} wl_pointer#3209.motion(187310301, 25.39843750, 36.00000000) +[2618671.948] {Default Queue} wl_pointer#3241.motion(187310301, 25.39843750, 36.00000000) +[2618671.953] {Default Queue} wl_pointer#3273.motion(187310301, 25.39843750, 36.00000000) +[2618671.957] {Default Queue} wl_pointer#3305.motion(187310301, 25.39843750, 36.00000000) +[2618671.961] {Default Queue} wl_pointer#3337.motion(187310301, 25.39843750, 36.00000000) +[2618671.966] {Default Queue} wl_pointer#3369.motion(187310301, 25.39843750, 36.00000000) +[2618671.970] {Default Queue} wl_pointer#3401.motion(187310301, 25.39843750, 36.00000000) +[2618671.974] {Default Queue} wl_pointer#3433.motion(187310301, 25.39843750, 36.00000000) +[2618671.979] {Default Queue} wl_pointer#3465.motion(187310301, 25.39843750, 36.00000000) +[2618671.983] {Default Queue} wl_pointer#3497.motion(187310301, 25.39843750, 36.00000000) +[2618671.987] {Default Queue} wl_pointer#3529.motion(187310301, 25.39843750, 36.00000000) +[2618671.992] {Default Queue} wl_pointer#3561.motion(187310301, 25.39843750, 36.00000000) +[2618671.996] {Default Queue} wl_pointer#3593.motion(187310301, 25.39843750, 36.00000000) +[2618672.000] {Default Queue} wl_pointer#3625.motion(187310301, 25.39843750, 36.00000000) +[2618672.005] {Default Queue} wl_pointer#3657.motion(187310301, 25.39843750, 36.00000000) +[2618672.009] {Default Queue} wl_pointer#3695.motion(187310301, 25.39843750, 36.00000000) +[2618672.013] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) +[2618672.017] {Default Queue} -> wl_surface#1799.commit() +[2618672.050] {Default Queue} wl_pointer#24.motion(187310306, 25.39843750, 34.39843750) +[2618672.057] {Default Queue} wl_pointer#81.motion(187310306, 25.39843750, 34.39843750) +[2618672.064] {Default Queue} wl_pointer#105.motion(187310306, 25.39843750, 34.39843750) +[2618672.070] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618672.076] {Default Queue} wl_pointer#137.motion(187310306, 25.39843750, 34.39843750) +[2618672.082] {Default Queue} wl_pointer#169.motion(187310306, 25.39843750, 34.39843750) +[2618672.088] {Default Queue} wl_pointer#201.motion(187310306, 25.39843750, 34.39843750) +[2618672.096] {Default Queue} wl_pointer#233.motion(187310306, 25.39843750, 34.39843750) +[2618672.103] {Default Queue} wl_pointer#265.motion(187310306, 25.39843750, 34.39843750) +[2618672.107] {Default Queue} wl_pointer#297.motion(187310306, 25.39843750, 34.39843750) +[2618672.111] {Default Queue} wl_pointer#329.motion(187310306, 25.39843750, 34.39843750) +[2618672.116] {Default Queue} wl_pointer#361.motion(187310306, 25.39843750, 34.39843750) +[2618672.120] {Default Queue} wl_pointer#393.motion(187310306, 25.39843750, 34.39843750) +[2618672.124] {Default Queue} wl_pointer#425.motion(187310306, 25.39843750, 34.39843750) +[2618672.129] {Default Queue} wl_pointer#457.motion(187310306, 25.39843750, 34.39843750) +[2618672.133] {Default Queue} wl_pointer#489.motion(187310306, 25.39843750, 34.39843750) +[2618672.137] {Default Queue} wl_pointer#521.motion(187310306, 25.39843750, 34.39843750) +[2618672.141] {Default Queue} wl_pointer#553.motion(187310306, 25.39843750, 34.39843750) +[2618672.146] {Default Queue} wl_pointer#585.motion(187310306, 25.39843750, 34.39843750) +[2618672.150] {Default Queue} wl_pointer#617.motion(187310306, 25.39843750, 34.39843750) +[2618672.154] {Default Queue} wl_pointer#649.motion(187310306, 25.39843750, 34.39843750) +[2618672.158] {Default Queue} wl_pointer#681.motion(187310306, 25.39843750, 34.39843750) +[2618672.163] {Default Queue} wl_pointer#713.motion(187310306, 25.39843750, 34.39843750) +[2618672.167] {Default Queue} wl_pointer#745.motion(187310306, 25.39843750, 34.39843750) +[2618672.171] {Default Queue} wl_pointer#777.motion(187310306, 25.39843750, 34.39843750) +[2618672.175] {Default Queue} wl_pointer#809.motion(187310306, 25.39843750, 34.39843750) +[2618672.180] {Default Queue} wl_pointer#841.motion(187310306, 25.39843750, 34.39843750) +[2618672.184] {Default Queue} wl_pointer#873.motion(187310306, 25.39843750, 34.39843750) +[2618672.188] {Default Queue} wl_pointer#905.motion(187310306, 25.39843750, 34.39843750) +[2618672.192] {Default Queue} wl_pointer#937.motion(187310306, 25.39843750, 34.39843750) +[2618672.196] {Default Queue} wl_pointer#969.motion(187310306, 25.39843750, 34.39843750) +[2618672.201] {Default Queue} wl_pointer#1001.motion(187310306, 25.39843750, 34.39843750) +[2618672.205] {Default Queue} wl_pointer#1033.motion(187310306, 25.39843750, 34.39843750) +[2618672.209] {Default Queue} wl_pointer#1065.motion(187310306, 25.39843750, 34.39843750) +[2618672.214] {Default Queue} wl_pointer#1097.motion(187310306, 25.39843750, 34.39843750) +[2618672.218] {Default Queue} wl_pointer#1129.motion(187310306, 25.39843750, 34.39843750) +[2618672.222] {Default Queue} wl_pointer#1161.motion(187310306, 25.39843750, 34.39843750) +[2618672.226] {Default Queue} wl_pointer#1193.motion(187310306, 25.39843750, 34.39843750) +[2618672.231] {Default Queue} wl_pointer#1225.motion(187310306, 25.39843750, 34.39843750) +[2618672.235] {Default Queue} wl_pointer#1257.motion(187310306, 25.39843750, 34.39843750) +[2618672.239] {Default Queue} wl_pointer#1289.motion(187310306, 25.39843750, 34.39843750) +[2618672.243] {Default Queue} wl_pointer#1321.motion(187310306, 25.39843750, 34.39843750) +[2618672.248] {Default Queue} wl_pointer#1353.motion(187310306, 25.39843750, 34.39843750) +[2618672.252] {Default Queue} wl_pointer#1385.motion(187310306, 25.39843750, 34.39843750) +[2618672.256] {Default Queue} wl_pointer#1417.motion(187310306, 25.39843750, 34.39843750) +[2618672.261] {Default Queue} wl_pointer#1449.motion(187310306, 25.39843750, 34.39843750) +[2618672.265] {Default Queue} wl_pointer#1481.motion(187310306, 25.39843750, 34.39843750) +[2618672.269] {Default Queue} wl_pointer#1513.motion(187310306, 25.39843750, 34.39843750) +[2618672.273] {Default Queue} wl_pointer#1545.motion(187310306, 25.39843750, 34.39843750) +[2618672.278] {Default Queue} wl_pointer#1577.motion(187310306, 25.39843750, 34.39843750) +[2618672.282] {Default Queue} wl_pointer#1609.motion(187310306, 25.39843750, 34.39843750) +[2618672.286] {Default Queue} wl_pointer#1641.motion(187310306, 25.39843750, 34.39843750) +[2618672.290] {Default Queue} wl_pointer#1673.motion(187310306, 25.39843750, 34.39843750) +[2618672.298] {Default Queue} wl_pointer#1705.motion(187310306, 25.39843750, 34.39843750) +[2618672.304] {Default Queue} wl_pointer#1737.motion(187310306, 25.39843750, 34.39843750) +[2618672.308] {Default Queue} wl_pointer#1762.motion(187310306, 25.39843750, 34.39843750) +[2618672.313] {Default Queue} wl_pointer#1801.motion(187310306, 25.39843750, 34.39843750) +[2618672.317] {Default Queue} wl_pointer#1833.motion(187310306, 25.39843750, 34.39843750) +[2618672.321] {Default Queue} wl_pointer#1865.motion(187310306, 25.39843750, 34.39843750) +[2618672.326] {Default Queue} wl_pointer#1897.motion(187310306, 25.39843750, 34.39843750) +[2618672.330] {Default Queue} wl_pointer#1929.motion(187310306, 25.39843750, 34.39843750) +[2618672.334] {Default Queue} wl_pointer#1961.motion(187310306, 25.39843750, 34.39843750) +[2618672.338] {Default Queue} wl_pointer#1993.motion(187310306, 25.39843750, 34.39843750) +[2618672.343] {Default Queue} wl_pointer#2025.motion(187310306, 25.39843750, 34.39843750) +[2618672.347] {Default Queue} wl_pointer#2057.motion(187310306, 25.39843750, 34.39843750) +[2618672.351] {Default Queue} wl_pointer#2089.motion(187310306, 25.39843750, 34.39843750) +[2618672.355] {Default Queue} wl_pointer#2121.motion(187310306, 25.39843750, 34.39843750) +[2618672.360] {Default Queue} wl_pointer#2153.motion(187310306, 25.39843750, 34.39843750) +[2618672.364] {Default Queue} wl_pointer#2185.motion(187310306, 25.39843750, 34.39843750) +[2618672.368] {Default Queue} wl_pointer#2217.motion(187310306, 25.39843750, 34.39843750) +[2618672.372] {Default Queue} wl_pointer#2249.motion(187310306, 25.39843750, 34.39843750) +[2618672.377] {Default Queue} wl_pointer#2281.motion(187310306, 25.39843750, 34.39843750) +[2618672.381] {Default Queue} wl_pointer#2313.motion(187310306, 25.39843750, 34.39843750) +[2618672.385] {Default Queue} wl_pointer#2345.motion(187310306, 25.39843750, 34.39843750) +[2618672.390] {Default Queue} wl_pointer#2377.motion(187310306, 25.39843750, 34.39843750) +[2618672.394] {Default Queue} wl_pointer#2409.motion(187310306, 25.39843750, 34.39843750) +[2618672.398] {Default Queue} wl_pointer#2441.motion(187310306, 25.39843750, 34.39843750) +[2618672.403] {Default Queue} wl_pointer#2473.motion(187310306, 25.39843750, 34.39843750) +[2618672.407] {Default Queue} wl_pointer#2498.motion(187310306, 25.39843750, 34.39843750) +[2618672.418] {Default Queue} -> wl_buffer#3292.destroy() +[2618672.425] {Default Queue} -> wl_buffer#3293.destroy() +[2618672.429] {Default Queue} -> wl_shm_pool#3484.destroy() +[2618672.433] {Default Queue} -> wl_shm_pool#3291.destroy() +[2618672.438] {Default Queue} -> wl_surface#3294.destroy() +[2618672.474] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3682, fd 575, 640) +[2618672.480] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 578, 640) +[2618672.485] {Default Queue} -> wl_shm_pool#3682.create_buffer(new id wl_buffer#3684, 0, 10, 16, 40, 0) +[2618672.489] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) +[2618672.496] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3671) +[2618672.500] {Default Queue} -> wl_surface#3671.attach(wl_buffer#3684, 0, 0) +[2618672.505] {Default Queue} -> wl_surface#3671.commit() +[2618672.510] {Default Queue} -> wl_surface#3671.attach(wl_buffer#3684, 0, 0) +[2618672.514] {Default Queue} -> wl_surface#3671.commit() +[2618672.518] {Default Queue} wl_pointer#2537.motion(187310306, 25.39843750, 34.39843750) +[2618672.523] {Default Queue} wl_pointer#2569.motion(187310306, 25.39843750, 34.39843750) +[2618672.527] {Default Queue} wl_pointer#2601.motion(187310306, 25.39843750, 34.39843750) +[2618672.531] {Default Queue} wl_pointer#2633.motion(187310306, 25.39843750, 34.39843750) +[2618672.535] {Default Queue} wl_pointer#2665.motion(187310306, 25.39843750, 34.39843750) +[2618672.540] {Default Queue} wl_pointer#2697.motion(187310306, 25.39843750, 34.39843750) +[2618672.544] {Default Queue} wl_pointer#2729.motion(187310306, 25.39843750, 34.39843750) +[2618672.551] {Default Queue} wl_pointer#2761.motion(187310306, 25.39843750, 34.39843750) +[2618672.557] {Default Queue} wl_pointer#2793.motion(187310306, 25.39843750, 34.39843750) +[2618672.561] {Default Queue} wl_pointer#2825.motion(187310306, 25.39843750, 34.39843750) +[2618672.566] {Default Queue} wl_pointer#2857.motion(187310306, 25.39843750, 34.39843750) +[2618672.570] {Default Queue} wl_pointer#2889.motion(187310306, 25.39843750, 34.39843750) +[2618672.574] {Default Queue} wl_pointer#2921.motion(187310306, 25.39843750, 34.39843750) +[2618672.579] {Default Queue} wl_pointer#2953.motion(187310306, 25.39843750, 34.39843750) +[2618672.583] {Default Queue} wl_pointer#2985.motion(187310306, 25.39843750, 34.39843750) +[2618672.587] {Default Queue} wl_pointer#3017.motion(187310306, 25.39843750, 34.39843750) +[2618672.592] {Default Queue} wl_pointer#3049.motion(187310306, 25.39843750, 34.39843750) +[2618672.596] {Default Queue} wl_pointer#3081.motion(187310306, 25.39843750, 34.39843750) +[2618672.600] {Default Queue} wl_pointer#3113.motion(187310306, 25.39843750, 34.39843750) +[2618672.604] {Default Queue} wl_pointer#3145.motion(187310306, 25.39843750, 34.39843750) +[2618672.608] {Default Queue} wl_pointer#3177.motion(187310306, 25.39843750, 34.39843750) +[2618672.613] {Default Queue} wl_pointer#3209.motion(187310306, 25.39843750, 34.39843750) +[2618672.617] {Default Queue} wl_pointer#3241.motion(187310306, 25.39843750, 34.39843750) +[2618672.621] {Default Queue} wl_pointer#3273.motion(187310306, 25.39843750, 34.39843750) +[2618672.626] {Default Queue} wl_pointer#3305.motion(187310306, 25.39843750, 34.39843750) +[2618672.630] {Default Queue} wl_pointer#3337.motion(187310306, 25.39843750, 34.39843750) +[2618672.635] {Default Queue} wl_pointer#3369.motion(187310306, 25.39843750, 34.39843750) +[2618672.641] {Default Queue} wl_pointer#3401.motion(187310306, 25.39843750, 34.39843750) +[2618672.647] {Default Queue} wl_pointer#3433.motion(187310306, 25.39843750, 34.39843750) +[2618672.653] {Default Queue} wl_pointer#3465.motion(187310306, 25.39843750, 34.39843750) +[2618672.658] {Default Queue} wl_pointer#3497.motion(187310306, 25.39843750, 34.39843750) +[2618672.664] {Default Queue} wl_pointer#3529.motion(187310306, 25.39843750, 34.39843750) +[2618672.670] {Default Queue} wl_pointer#3561.motion(187310306, 25.39843750, 34.39843750) +[2618672.675] {Default Queue} wl_pointer#3593.motion(187310306, 25.39843750, 34.39843750) +[2618672.680] {Default Queue} wl_pointer#3625.motion(187310306, 25.39843750, 34.39843750) +[2618672.684] {Default Queue} wl_pointer#3657.motion(187310306, 25.39843750, 34.39843750) +[2618672.689] {Default Queue} wl_pointer#3695.motion(187310306, 25.39843750, 34.39843750) +[2618672.693] {Default Queue} wl_pointer#24.motion(187310306, 25.39843750, 32.80078125) +[2618672.697] {Default Queue} wl_pointer#81.motion(187310306, 25.39843750, 32.80078125) +[2618672.702] {Default Queue} wl_pointer#105.motion(187310306, 25.39843750, 32.80078125) +[2618672.707] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618672.711] {Default Queue} wl_pointer#137.motion(187310306, 25.39843750, 32.80078125) +[2618672.715] {Default Queue} wl_pointer#169.motion(187310306, 25.39843750, 32.80078125) +[2618672.720] {Default Queue} wl_pointer#201.motion(187310306, 25.39843750, 32.80078125) +[2618672.724] {Default Queue} wl_pointer#233.motion(187310306, 25.39843750, 32.80078125) +[2618672.728] {Default Queue} wl_pointer#265.motion(187310306, 25.39843750, 32.80078125) +[2618672.733] {Default Queue} wl_pointer#297.motion(187310306, 25.39843750, 32.80078125) +[2618672.737] {Default Queue} wl_pointer#329.motion(187310306, 25.39843750, 32.80078125) +[2618672.741] {Default Queue} wl_pointer#361.motion(187310306, 25.39843750, 32.80078125) +[2618672.746] {Default Queue} wl_pointer#393.motion(187310306, 25.39843750, 32.80078125) +[2618672.750] {Default Queue} wl_pointer#425.motion(187310306, 25.39843750, 32.80078125) +[2618672.754] {Default Queue} wl_pointer#457.motion(187310306, 25.39843750, 32.80078125) +[2618672.758] {Default Queue} wl_pointer#489.motion(187310306, 25.39843750, 32.80078125) +[2618672.768] {Default Queue} wl_pointer#521.motion(187310306, 25.39843750, 32.80078125) +[2618672.774] {Default Queue} wl_pointer#553.motion(187310306, 25.39843750, 32.80078125) +[2618672.778] {Default Queue} wl_pointer#585.motion(187310306, 25.39843750, 32.80078125) +[2618672.782] {Default Queue} wl_pointer#617.motion(187310306, 25.39843750, 32.80078125) +[2618672.787] {Default Queue} wl_pointer#649.motion(187310306, 25.39843750, 32.80078125) +[2618672.791] {Default Queue} wl_pointer#681.motion(187310306, 25.39843750, 32.80078125) +[2618672.795] {Default Queue} wl_pointer#713.motion(187310306, 25.39843750, 32.80078125) +[2618672.799] {Default Queue} wl_pointer#745.motion(187310306, 25.39843750, 32.80078125) +[2618672.804] {Default Queue} wl_pointer#777.motion(187310306, 25.39843750, 32.80078125) +[2618672.808] {Default Queue} wl_pointer#809.motion(187310306, 25.39843750, 32.80078125) +[2618672.812] {Default Queue} wl_pointer#841.motion(187310306, 25.39843750, 32.80078125) +[2618672.817] {Default Queue} wl_pointer#873.motion(187310306, 25.39843750, 32.80078125) +[2618672.821] {Default Queue} wl_pointer#905.motion(187310306, 25.39843750, 32.80078125) +[2618672.825] {Default Queue} wl_pointer#937.motion(187310306, 25.39843750, 32.80078125) +[2618672.829] {Default Queue} wl_pointer#969.motion(187310306, 25.39843750, 32.80078125) +[2618672.833] {Default Queue} wl_pointer#1001.motion(187310306, 25.39843750, 32.80078125) +[2618672.838] {Default Queue} wl_pointer#1033.motion(187310306, 25.39843750, 32.80078125) +[2618672.842] {Default Queue} wl_pointer#1065.motion(187310306, 25.39843750, 32.80078125) +[2618672.846] {Default Queue} wl_pointer#1097.motion(187310306, 25.39843750, 32.80078125) +[2618672.851] {Default Queue} wl_pointer#1129.motion(187310306, 25.39843750, 32.80078125) +[2618672.855] {Default Queue} wl_pointer#1161.motion(187310306, 25.39843750, 32.80078125) +[2618672.859] {Default Queue} wl_pointer#1193.motion(187310306, 25.39843750, 32.80078125) +[2618672.864] {Default Queue} wl_pointer#1225.motion(187310306, 25.39843750, 32.80078125) +[2618672.868] {Default Queue} wl_pointer#1257.motion(187310306, 25.39843750, 32.80078125) +[2618672.876] {Default Queue} wl_pointer#1289.motion(187310306, 25.39843750, 32.80078125) +[2618672.881] {Default Queue} wl_pointer#1321.motion(187310306, 25.39843750, 32.80078125) +[2618672.885] {Default Queue} wl_pointer#1353.motion(187310306, 25.39843750, 32.80078125) +[2618672.889] {Default Queue} wl_pointer#1385.motion(187310306, 25.39843750, 32.80078125) +[2618672.894] {Default Queue} wl_pointer#1417.motion(187310306, 25.39843750, 32.80078125) +[2618672.898] {Default Queue} wl_pointer#1449.motion(187310306, 25.39843750, 32.80078125) +[2618672.902] {Default Queue} wl_pointer#1481.motion(187310306, 25.39843750, 32.80078125) +[2618672.906] {Default Queue} wl_pointer#1513.motion(187310306, 25.39843750, 32.80078125) +[2618672.911] {Default Queue} wl_pointer#1545.motion(187310306, 25.39843750, 32.80078125) +[2618672.915] {Default Queue} wl_pointer#1577.motion(187310306, 25.39843750, 32.80078125) +[2618672.919] {Default Queue} wl_pointer#1609.motion(187310306, 25.39843750, 32.80078125) +[2618672.923] {Default Queue} wl_pointer#1641.motion(187310306, 25.39843750, 32.80078125) +[2618672.928] {Default Queue} wl_pointer#1673.motion(187310306, 25.39843750, 32.80078125) +[2618672.932] {Default Queue} wl_pointer#1705.motion(187310306, 25.39843750, 32.80078125) +[2618672.936] {Default Queue} wl_pointer#1737.motion(187310306, 25.39843750, 32.80078125) +[2618672.940] {Default Queue} wl_pointer#1762.motion(187310306, 25.39843750, 32.80078125) +[2618672.945] {Default Queue} wl_pointer#1801.motion(187310306, 25.39843750, 32.80078125) +[2618672.949] {Default Queue} wl_pointer#1833.motion(187310306, 25.39843750, 32.80078125) +[2618672.953] {Default Queue} wl_pointer#1865.motion(187310306, 25.39843750, 32.80078125) +[2618672.958] {Default Queue} wl_pointer#1897.motion(187310306, 25.39843750, 32.80078125) +[2618672.962] {Default Queue} wl_pointer#1929.motion(187310306, 25.39843750, 32.80078125) +[2618672.966] {Default Queue} wl_pointer#1961.motion(187310306, 25.39843750, 32.80078125) +[2618672.973] {Default Queue} wl_pointer#1993.motion(187310306, 25.39843750, 32.80078125) +[2618672.979] {Default Queue} wl_pointer#2025.motion(187310306, 25.39843750, 32.80078125) +[2618672.983] {Default Queue} wl_pointer#2057.motion(187310306, 25.39843750, 32.80078125) +[2618672.987] {Default Queue} wl_pointer#2089.motion(187310306, 25.39843750, 32.80078125) +[2618672.992] {Default Queue} wl_pointer#2121.motion(187310306, 25.39843750, 32.80078125) +[2618672.996] {Default Queue} wl_pointer#2153.motion(187310306, 25.39843750, 32.80078125) +[2618673.000] {Default Queue} wl_pointer#2185.motion(187310306, 25.39843750, 32.80078125) +[2618673.004] {Default Queue} wl_pointer#2217.motion(187310306, 25.39843750, 32.80078125) +[2618673.009] {Default Queue} wl_pointer#2249.motion(187310306, 25.39843750, 32.80078125) +[2618673.013] {Default Queue} wl_pointer#2281.motion(187310306, 25.39843750, 32.80078125) +[2618673.018] {Default Queue} wl_pointer#2313.motion(187310306, 25.39843750, 32.80078125) +[2618673.022] {Default Queue} wl_pointer#2345.motion(187310306, 25.39843750, 32.80078125) +[2618673.026] {Default Queue} wl_pointer#2377.motion(187310306, 25.39843750, 32.80078125) +[2618673.031] {Default Queue} wl_pointer#2409.motion(187310306, 25.39843750, 32.80078125) +[2618673.035] {Default Queue} wl_pointer#2441.motion(187310306, 25.39843750, 32.80078125) +[2618673.039] {Default Queue} wl_pointer#2473.motion(187310306, 25.39843750, 32.80078125) +[2618673.044] {Default Queue} wl_pointer#2498.motion(187310306, 25.39843750, 32.80078125) +[2618673.054] {Default Queue} -> wl_buffer#3684.destroy() +[2618673.059] {Default Queue} -> wl_buffer#3681.destroy() +[2618673.063] {Default Queue} -> wl_shm_pool#3682.destroy() +[2618673.067] {Default Queue} -> wl_shm_pool#3679.destroy() +[2618673.072] {Default Queue} -> wl_surface#3671.destroy() +[2618673.110] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3485, fd 581, 640) +[2618673.116] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3486, fd 582, 640) +[2618673.121] {Default Queue} -> wl_shm_pool#3485.create_buffer(new id wl_buffer#3515, 0, 10, 16, 40, 0) +[2618673.125] {Default Queue} -> wl_shm_pool#3486.create_buffer(new id wl_buffer#3516, 0, 10, 16, 40, 0) +[2618673.132] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3483) +[2618673.136] {Default Queue} -> wl_surface#3483.attach(wl_buffer#3515, 0, 0) +[2618673.141] {Default Queue} -> wl_surface#3483.commit() +[2618673.146] {Default Queue} -> wl_surface#3483.attach(wl_buffer#3515, 0, 0) +[2618673.150] {Default Queue} -> wl_surface#3483.commit() +[2618673.154] {Default Queue} wl_pointer#2537.motion(187310306, 25.39843750, 32.80078125) +[2618673.159] {Default Queue} wl_pointer#2569.motion(187310306, 25.39843750, 32.80078125) +[2618673.163] {Default Queue} wl_pointer#2601.motion(187310306, 25.39843750, 32.80078125) +[2618673.167] {Default Queue} wl_pointer#2633.motion(187310306, 25.39843750, 32.80078125) +[2618673.172] {Default Queue} wl_pointer#2665.motion(187310306, 25.39843750, 32.80078125) +[2618673.176] {Default Queue} wl_pointer#2697.motion(187310306, 25.39843750, 32.80078125) +[2618673.180] {Default Queue} wl_pointer#2729.motion(187310306, 25.39843750, 32.80078125) +[2618673.185] {Default Queue} wl_pointer#2761.motion(187310306, 25.39843750, 32.80078125) +[2618673.189] {Default Queue} wl_pointer#2793.motion(187310306, 25.39843750, 32.80078125) +[2618673.193] {Default Queue} wl_pointer#2825.motion(187310306, 25.39843750, 32.80078125) +[2618673.198] {Default Queue} wl_pointer#2857.motion(187310306, 25.39843750, 32.80078125) +[2618673.205] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) +[2618673.209] {Default Queue} -> wl_surface#1799.commit() +[2618673.215] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) +[2618673.219] {Default Queue} -> wl_surface#1772.commit() +[2618674.283] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) +[2618674.289] {Default Queue} -> wl_surface#1772.commit() +[2618674.299] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) +[2618674.308] {Default Queue} -> wl_region#1791.add(0, 0, 2, 2) +[2618674.314] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618674.319] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618674.326] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) +[2618674.330] {Default Queue} -> wl_region#1791.add(0, 0, 2, 2) +[2618674.334] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618674.338] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618674.344] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) +[2618674.348] {Default Queue} -> wl_region#1791.add(0, 0, 2, 2) +[2618674.352] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618674.356] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618674.361] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) +[2618674.365] {Default Queue} -> wl_region#1791.add(0, 0, 2, 2) +[2618674.370] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618674.373] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618674.380] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) +[2618674.384] {Default Queue} -> wl_region#1791.add(0, 0, 2, 2) +[2618674.388] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618674.392] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618674.397] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) +[2618674.401] {Default Queue} -> wl_surface#1772.commit() +[2618674.405] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) +[2618674.409] {Default Queue} -> wl_surface#1772.commit() +[2618674.415] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) +[2618674.419] {Default Queue} -> wl_surface#1772.commit() +[2618674.425] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) +[2618674.429] {Default Queue} -> wl_surface#1991.commit() +[2618675.491] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) +[2618675.496] {Default Queue} -> wl_surface#1991.commit() +[2618675.504] {Default Queue} -> wl_region#2015.subtract(0, 0, 19, 48) +[2618675.508] {Default Queue} -> wl_region#2015.add(-20, -49, 19, 48) +[2618675.513] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2618675.517] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2618675.583] {Default Queue} -> wl_region#2015.subtract(0, 0, 19, 48) +[2618675.588] {Default Queue} -> wl_region#2015.add(-20, -49, 19, 48) +[2618675.592] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2618675.597] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2618675.602] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618675.607] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618675.650] {Default Queue} -> wl_region#2015.subtract(0, 0, 19, 48) +[2618675.655] {Default Queue} -> wl_region#2015.add(-20, -49, 19, 48) +[2618675.659] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2618675.663] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2618675.668] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618675.672] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618675.677] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) +[2618675.682] {Default Queue} -> wl_surface#1991.commit() +[2618675.686] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) +[2618675.690] {Default Queue} -> wl_surface#1991.commit() +[2618675.696] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) +[2618675.700] {Default Queue} -> wl_surface#1991.commit() +[2618675.706] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) +[2618675.710] {Default Queue} -> wl_surface#2055.commit() +[2618676.393] {Display Queue} wl_display#1.delete_id(3518) +[2618676.399] {Display Queue} wl_display#1.delete_id(3451) +[2618676.403] {Display Queue} wl_display#1.delete_id(3454) +[2618676.410] {Display Queue} wl_display#1.delete_id(3517) +[2618676.416] {Display Queue} wl_display#1.delete_id(3452) +[2618676.420] {Display Queue} wl_display#1.delete_id(3683) +[2618676.424] {Display Queue} wl_display#1.delete_id(94) +[2618676.428] {Display Queue} wl_display#1.delete_id(93) +[2618676.432] {Display Queue} wl_display#1.delete_id(92) +[2618676.436] {Display Queue} wl_display#1.delete_id(91) +[2618676.440] {Default Queue} wl_pointer#2889.motion(187310306, 25.39843750, 32.80078125) +[2618676.445] {Default Queue} wl_pointer#2921.motion(187310306, 25.39843750, 32.80078125) +[2618676.449] {Default Queue} wl_pointer#2953.motion(187310306, 25.39843750, 32.80078125) +[2618676.453] {Default Queue} wl_pointer#2985.motion(187310306, 25.39843750, 32.80078125) +[2618676.458] {Default Queue} wl_pointer#3017.motion(187310306, 25.39843750, 32.80078125) +[2618676.462] {Default Queue} wl_pointer#3049.motion(187310306, 25.39843750, 32.80078125) +[2618676.467] {Default Queue} wl_pointer#3081.motion(187310306, 25.39843750, 32.80078125) +[2618676.471] {Default Queue} wl_pointer#3113.motion(187310306, 25.39843750, 32.80078125) +[2618676.475] {Default Queue} wl_pointer#3145.motion(187310306, 25.39843750, 32.80078125) +[2618676.480] {Default Queue} wl_pointer#3177.motion(187310306, 25.39843750, 32.80078125) +[2618676.484] {Default Queue} wl_pointer#3209.motion(187310306, 25.39843750, 32.80078125) +[2618676.488] {Default Queue} wl_pointer#3241.motion(187310306, 25.39843750, 32.80078125) +[2618676.493] {Default Queue} wl_pointer#3273.motion(187310306, 25.39843750, 32.80078125) +[2618676.497] {Default Queue} wl_pointer#3305.motion(187310306, 25.39843750, 32.80078125) +[2618676.501] {Default Queue} wl_pointer#3337.motion(187310306, 25.39843750, 32.80078125) +[2618676.506] {Default Queue} wl_pointer#3369.motion(187310306, 25.39843750, 32.80078125) +[2618676.510] {Default Queue} wl_pointer#3401.motion(187310306, 25.39843750, 32.80078125) +[2618676.514] {Default Queue} wl_pointer#3433.motion(187310306, 25.39843750, 32.80078125) +[2618676.519] {Default Queue} wl_pointer#3465.motion(187310306, 25.39843750, 32.80078125) +[2618676.523] {Default Queue} wl_pointer#3497.motion(187310306, 25.39843750, 32.80078125) +[2618676.527] {Default Queue} wl_pointer#3529.motion(187310306, 25.39843750, 32.80078125) +[2618676.532] {Default Queue} wl_pointer#3561.motion(187310306, 25.39843750, 32.80078125) +[2618676.536] {Default Queue} wl_pointer#3593.motion(187310306, 25.39843750, 32.80078125) +[2618676.540] {Default Queue} wl_pointer#3625.motion(187310306, 25.39843750, 32.80078125) +[2618676.544] {Default Queue} wl_pointer#3657.motion(187310306, 25.39843750, 32.80078125) +[2618676.549] {Default Queue} wl_pointer#3695.motion(187310306, 25.39843750, 32.80078125) +[2618676.557] {Default Queue} -> wl_region#2079.subtract(0, 0, 19, 48) +[2618676.562] {Default Queue} -> wl_region#2079.add(-20, -49, 19, 48) +[2618676.566] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618676.570] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618676.648] {Default Queue} -> wl_region#2079.subtract(0, 0, 19, 48) +[2618676.653] {Default Queue} -> wl_region#2079.add(-20, -49, 19, 48) +[2618676.657] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618676.661] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618676.666] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618676.671] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618676.850] {Default Queue} -> wl_region#2079.subtract(0, 0, 19, 48) +[2618676.855] {Default Queue} -> wl_region#2079.add(-20, -49, 19, 48) +[2618676.859] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618676.869] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618676.874] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618676.879] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618676.945] {Default Queue} -> wl_region#2079.subtract(0, 0, 19, 48) +[2618676.950] {Default Queue} -> wl_region#2079.add(-20, -49, 19, 48) +[2618676.957] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618676.963] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618676.968] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618676.973] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618677.130] {Default Queue} -> wl_region#2079.subtract(0, 0, 19, 48) +[2618677.135] {Default Queue} -> wl_region#2079.add(-20, -49, 19, 48) +[2618677.139] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618677.143] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618677.148] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618677.152] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618677.157] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) +[2618677.162] {Default Queue} -> wl_surface#2055.commit() +[2618677.166] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) +[2618677.170] {Default Queue} -> wl_surface#2055.commit() +[2618677.194] {Default Queue} wl_pointer#24.motion(187310311, 25.00000000, 31.19921875) +[2618677.199] {Default Queue} wl_pointer#81.motion(187310311, 25.00000000, 31.19921875) +[2618677.205] {Default Queue} wl_pointer#105.motion(187310311, 25.00000000, 31.19921875) +[2618677.209] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618677.214] {Default Queue} wl_pointer#137.motion(187310311, 25.00000000, 31.19921875) +[2618677.218] {Default Queue} wl_pointer#169.motion(187310311, 25.00000000, 31.19921875) +[2618677.222] {Default Queue} wl_pointer#201.motion(187310311, 25.00000000, 31.19921875) +[2618677.227] {Default Queue} wl_pointer#233.motion(187310311, 25.00000000, 31.19921875) +[2618677.233] {Default Queue} wl_pointer#265.motion(187310311, 25.00000000, 31.19921875) +[2618677.239] {Default Queue} wl_pointer#297.motion(187310311, 25.00000000, 31.19921875) +[2618677.245] {Default Queue} wl_pointer#329.motion(187310311, 25.00000000, 31.19921875) +[2618677.251] {Default Queue} wl_pointer#361.motion(187310311, 25.00000000, 31.19921875) +[2618677.256] {Default Queue} wl_pointer#393.motion(187310311, 25.00000000, 31.19921875) +[2618677.262] {Default Queue} wl_pointer#425.motion(187310311, 25.00000000, 31.19921875) +[2618677.268] {Default Queue} wl_pointer#457.motion(187310311, 25.00000000, 31.19921875) +[2618677.274] {Default Queue} wl_pointer#489.motion(187310311, 25.00000000, 31.19921875) +[2618677.279] {Default Queue} wl_pointer#521.motion(187310311, 25.00000000, 31.19921875) +[2618677.283] {Default Queue} wl_pointer#553.motion(187310311, 25.00000000, 31.19921875) +[2618677.287] {Default Queue} wl_pointer#585.motion(187310311, 25.00000000, 31.19921875) +[2618677.292] {Default Queue} wl_pointer#617.motion(187310311, 25.00000000, 31.19921875) +[2618677.296] {Default Queue} wl_pointer#649.motion(187310311, 25.00000000, 31.19921875) +[2618677.300] {Default Queue} wl_pointer#681.motion(187310311, 25.00000000, 31.19921875) +[2618677.304] {Default Queue} wl_pointer#713.motion(187310311, 25.00000000, 31.19921875) +[2618677.309] {Default Queue} wl_pointer#745.motion(187310311, 25.00000000, 31.19921875) +[2618677.314] {Default Queue} wl_pointer#777.motion(187310311, 25.00000000, 31.19921875) +[2618677.320] {Default Queue} wl_pointer#809.motion(187310311, 25.00000000, 31.19921875) +[2618677.325] {Default Queue} wl_pointer#841.motion(187310311, 25.00000000, 31.19921875) +[2618677.330] {Default Queue} wl_pointer#873.motion(187310311, 25.00000000, 31.19921875) +[2618677.335] {Default Queue} wl_pointer#905.motion(187310311, 25.00000000, 31.19921875) +[2618677.340] {Default Queue} wl_pointer#937.motion(187310311, 25.00000000, 31.19921875) +[2618677.346] {Default Queue} wl_pointer#969.motion(187310311, 25.00000000, 31.19921875) +[2618677.351] {Default Queue} wl_pointer#1001.motion(187310311, 25.00000000, 31.19921875) +[2618677.356] {Default Queue} wl_pointer#1033.motion(187310311, 25.00000000, 31.19921875) +[2618677.361] {Default Queue} wl_pointer#1065.motion(187310311, 25.00000000, 31.19921875) +[2618677.366] {Default Queue} wl_pointer#1097.motion(187310311, 25.00000000, 31.19921875) +[2618677.376] {Default Queue} wl_pointer#1129.motion(187310311, 25.00000000, 31.19921875) +[2618677.383] {Default Queue} wl_pointer#1161.motion(187310311, 25.00000000, 31.19921875) +[2618677.389] {Default Queue} wl_pointer#1193.motion(187310311, 25.00000000, 31.19921875) +[2618677.394] {Default Queue} wl_pointer#1225.motion(187310311, 25.00000000, 31.19921875) +[2618677.399] {Default Queue} wl_pointer#1257.motion(187310311, 25.00000000, 31.19921875) +[2618677.404] {Default Queue} wl_pointer#1289.motion(187310311, 25.00000000, 31.19921875) +[2618677.410] {Default Queue} wl_pointer#1321.motion(187310311, 25.00000000, 31.19921875) +[2618677.416] {Default Queue} wl_pointer#1353.motion(187310311, 25.00000000, 31.19921875) +[2618677.421] {Default Queue} wl_pointer#1385.motion(187310311, 25.00000000, 31.19921875) +[2618677.427] {Default Queue} wl_pointer#1417.motion(187310311, 25.00000000, 31.19921875) +[2618677.433] {Default Queue} wl_pointer#1449.motion(187310311, 25.00000000, 31.19921875) +[2618677.439] {Default Queue} wl_pointer#1481.motion(187310311, 25.00000000, 31.19921875) +[2618677.443] {Default Queue} wl_pointer#1513.motion(187310311, 25.00000000, 31.19921875) +[2618677.448] {Default Queue} wl_pointer#1545.motion(187310311, 25.00000000, 31.19921875) +[2618677.452] {Default Queue} wl_pointer#1577.motion(187310311, 25.00000000, 31.19921875) +[2618677.456] {Default Queue} wl_pointer#1609.motion(187310311, 25.00000000, 31.19921875) +[2618677.461] {Default Queue} wl_pointer#1641.motion(187310311, 25.00000000, 31.19921875) +[2618677.465] {Default Queue} wl_pointer#1673.motion(187310311, 25.00000000, 31.19921875) +[2618677.469] {Default Queue} wl_pointer#1705.motion(187310311, 25.00000000, 31.19921875) +[2618677.473] {Default Queue} wl_pointer#1737.motion(187310311, 25.00000000, 31.19921875) +[2618677.478] {Default Queue} wl_pointer#1762.motion(187310311, 25.00000000, 31.19921875) +[2618677.482] {Default Queue} wl_pointer#1801.motion(187310311, 25.00000000, 31.19921875) +[2618677.486] {Default Queue} wl_pointer#1833.motion(187310311, 25.00000000, 31.19921875) +[2618677.490] {Default Queue} wl_pointer#1865.motion(187310311, 25.00000000, 31.19921875) +[2618677.495] {Default Queue} wl_pointer#1897.motion(187310311, 25.00000000, 31.19921875) +[2618677.499] {Default Queue} wl_pointer#1929.motion(187310311, 25.00000000, 31.19921875) +[2618677.503] {Default Queue} wl_pointer#1961.motion(187310311, 25.00000000, 31.19921875) +[2618677.507] {Default Queue} wl_pointer#1993.motion(187310311, 25.00000000, 31.19921875) +[2618677.512] {Default Queue} wl_pointer#2025.motion(187310311, 25.00000000, 31.19921875) +[2618677.516] {Default Queue} wl_pointer#2057.motion(187310311, 25.00000000, 31.19921875) +[2618677.520] {Default Queue} wl_pointer#2089.motion(187310311, 25.00000000, 31.19921875) +[2618677.524] {Default Queue} wl_pointer#2121.motion(187310311, 25.00000000, 31.19921875) +[2618677.529] {Default Queue} wl_pointer#2153.motion(187310311, 25.00000000, 31.19921875) +[2618677.533] {Default Queue} wl_pointer#2185.motion(187310311, 25.00000000, 31.19921875) +[2618677.537] {Default Queue} wl_pointer#2217.motion(187310311, 25.00000000, 31.19921875) +[2618677.541] {Default Queue} wl_pointer#2249.motion(187310311, 25.00000000, 31.19921875) +[2618677.546] {Default Queue} wl_pointer#2281.motion(187310311, 25.00000000, 31.19921875) +[2618677.550] {Default Queue} wl_pointer#2313.motion(187310311, 25.00000000, 31.19921875) +[2618677.555] {Default Queue} wl_pointer#2345.motion(187310311, 25.00000000, 31.19921875) +[2618677.559] {Default Queue} wl_pointer#2377.motion(187310311, 25.00000000, 31.19921875) +[2618677.564] {Default Queue} wl_pointer#2409.motion(187310311, 25.00000000, 31.19921875) +[2618677.568] {Default Queue} wl_pointer#2441.motion(187310311, 25.00000000, 31.19921875) +[2618677.572] {Default Queue} wl_pointer#2473.motion(187310311, 25.00000000, 31.19921875) +[2618677.576] {Default Queue} wl_pointer#2498.motion(187310311, 25.00000000, 31.19921875) +[2618677.589] {Default Queue} -> wl_buffer#3515.destroy() +[2618677.594] {Default Queue} -> wl_buffer#3516.destroy() +[2618677.602] {Default Queue} -> wl_shm_pool#3485.destroy() +[2618677.608] {Default Queue} -> wl_shm_pool#3486.destroy() +[2618677.613] {Default Queue} -> wl_surface#3483.destroy() +[2618677.653] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#91, fd 575, 640) +[2618677.660] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 578, 640) +[2618677.665] {Default Queue} -> wl_shm_pool#91.create_buffer(new id wl_buffer#93, 0, 10, 16, 40, 0) +[2618677.669] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) +[2618677.677] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3683) +[2618677.681] {Default Queue} -> wl_surface#3683.attach(wl_buffer#93, 0, 0) +[2618677.686] {Default Queue} -> wl_surface#3683.commit() +[2618677.691] {Default Queue} -> wl_surface#3683.attach(wl_buffer#93, 0, 0) +[2618677.695] {Default Queue} -> wl_surface#3683.commit() +[2618677.699] {Default Queue} wl_pointer#2537.motion(187310311, 25.00000000, 31.19921875) +[2618677.704] {Default Queue} wl_pointer#2569.motion(187310311, 25.00000000, 31.19921875) +[2618677.708] {Default Queue} wl_pointer#2601.motion(187310311, 25.00000000, 31.19921875) +[2618677.712] {Default Queue} wl_pointer#2633.motion(187310311, 25.00000000, 31.19921875) +[2618677.717] {Default Queue} wl_pointer#2665.motion(187310311, 25.00000000, 31.19921875) +[2618677.721] {Default Queue} wl_pointer#2697.motion(187310311, 25.00000000, 31.19921875) +[2618677.725] {Default Queue} wl_pointer#2729.motion(187310311, 25.00000000, 31.19921875) +[2618677.729] {Default Queue} wl_pointer#2761.motion(187310311, 25.00000000, 31.19921875) +[2618677.734] {Default Queue} wl_pointer#2793.motion(187310311, 25.00000000, 31.19921875) +[2618677.738] {Default Queue} wl_pointer#2825.motion(187310311, 25.00000000, 31.19921875) +[2618677.742] {Default Queue} wl_pointer#2857.motion(187310311, 25.00000000, 31.19921875) +[2618677.747] {Default Queue} wl_pointer#2889.motion(187310311, 25.00000000, 31.19921875) +[2618677.751] {Default Queue} wl_pointer#2921.motion(187310311, 25.00000000, 31.19921875) +[2618677.755] {Default Queue} wl_pointer#2953.motion(187310311, 25.00000000, 31.19921875) +[2618677.760] {Default Queue} wl_pointer#2985.motion(187310311, 25.00000000, 31.19921875) +[2618677.764] {Default Queue} wl_pointer#3017.motion(187310311, 25.00000000, 31.19921875) +[2618677.768] {Default Queue} wl_pointer#3049.motion(187310311, 25.00000000, 31.19921875) +[2618677.772] {Default Queue} wl_pointer#3081.motion(187310311, 25.00000000, 31.19921875) +[2618677.777] {Default Queue} wl_pointer#3113.motion(187310311, 25.00000000, 31.19921875) +[2618677.781] {Default Queue} wl_pointer#3145.motion(187310311, 25.00000000, 31.19921875) +[2618677.785] {Default Queue} wl_pointer#3177.motion(187310311, 25.00000000, 31.19921875) +[2618677.790] {Default Queue} wl_pointer#3209.motion(187310311, 25.00000000, 31.19921875) +[2618677.794] {Default Queue} wl_pointer#3241.motion(187310311, 25.00000000, 31.19921875) +[2618677.798] {Default Queue} wl_pointer#3273.motion(187310311, 25.00000000, 31.19921875) +[2618677.803] {Default Queue} wl_pointer#3305.motion(187310311, 25.00000000, 31.19921875) +[2618677.807] {Default Queue} wl_pointer#3337.motion(187310311, 25.00000000, 31.19921875) +[2618677.811] {Default Queue} wl_pointer#3369.motion(187310311, 25.00000000, 31.19921875) +[2618677.815] {Default Queue} wl_pointer#3401.motion(187310311, 25.00000000, 31.19921875) +[2618677.820] {Default Queue} wl_pointer#3433.motion(187310311, 25.00000000, 31.19921875) +[2618677.824] {Default Queue} wl_pointer#3465.motion(187310311, 25.00000000, 31.19921875) +[2618677.828] {Default Queue} wl_pointer#3497.motion(187310311, 25.00000000, 31.19921875) +[2618677.833] {Default Queue} wl_pointer#3529.motion(187310311, 25.00000000, 31.19921875) +[2618677.837] {Default Queue} wl_pointer#3561.motion(187310311, 25.00000000, 31.19921875) +[2618677.841] {Default Queue} wl_pointer#3593.motion(187310311, 25.00000000, 31.19921875) +[2618677.846] {Default Queue} wl_pointer#3625.motion(187310311, 25.00000000, 31.19921875) +[2618677.853] {Default Queue} wl_pointer#3657.motion(187310311, 25.00000000, 31.19921875) +[2618677.859] {Default Queue} wl_pointer#3695.motion(187310311, 25.00000000, 31.19921875) +[2618677.870] {Default Queue} wl_pointer#24.motion(187310311, 24.60156250, 29.19921875) +[2618677.874] {Default Queue} wl_pointer#81.motion(187310311, 24.60156250, 29.19921875) +[2618677.902] {Default Queue} wl_pointer#105.motion(187310311, 24.60156250, 29.19921875) +[2618677.911] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618677.917] {Default Queue} wl_pointer#137.motion(187310311, 24.60156250, 29.19921875) +[2618677.922] {Default Queue} wl_pointer#169.motion(187310311, 24.60156250, 29.19921875) +[2618677.926] {Default Queue} wl_pointer#201.motion(187310311, 24.60156250, 29.19921875) +[2618677.931] {Default Queue} wl_pointer#233.motion(187310311, 24.60156250, 29.19921875) +[2618677.935] {Default Queue} wl_pointer#265.motion(187310311, 24.60156250, 29.19921875) +[2618677.940] {Default Queue} wl_pointer#297.motion(187310311, 24.60156250, 29.19921875) +[2618677.944] {Default Queue} wl_pointer#329.motion(187310311, 24.60156250, 29.19921875) +[2618677.948] {Default Queue} wl_pointer#361.motion(187310311, 24.60156250, 29.19921875) +[2618677.954] {Default Queue} wl_pointer#393.motion(187310311, 24.60156250, 29.19921875) +[2618677.959] {Default Queue} wl_pointer#425.motion(187310311, 24.60156250, 29.19921875) +[2618677.965] {Default Queue} wl_pointer#457.motion(187310311, 24.60156250, 29.19921875) +[2618677.971] {Default Queue} wl_pointer#489.motion(187310311, 24.60156250, 29.19921875) +[2618677.977] {Default Queue} wl_pointer#521.motion(187310311, 24.60156250, 29.19921875) +[2618677.983] {Default Queue} wl_pointer#553.motion(187310311, 24.60156250, 29.19921875) +[2618677.989] {Default Queue} wl_pointer#585.motion(187310311, 24.60156250, 29.19921875) +[2618677.995] {Default Queue} wl_pointer#617.motion(187310311, 24.60156250, 29.19921875) +[2618678.001] {Default Queue} wl_pointer#649.motion(187310311, 24.60156250, 29.19921875) +[2618678.007] {Default Queue} wl_pointer#681.motion(187310311, 24.60156250, 29.19921875) +[2618678.013] {Default Queue} wl_pointer#713.motion(187310311, 24.60156250, 29.19921875) +[2618678.019] {Default Queue} wl_pointer#745.motion(187310311, 24.60156250, 29.19921875) +[2618678.025] {Default Queue} wl_pointer#777.motion(187310311, 24.60156250, 29.19921875) +[2618678.031] {Default Queue} wl_pointer#809.motion(187310311, 24.60156250, 29.19921875) +[2618678.037] {Default Queue} wl_pointer#841.motion(187310311, 24.60156250, 29.19921875) +[2618678.043] {Default Queue} wl_pointer#873.motion(187310311, 24.60156250, 29.19921875) +[2618678.048] {Default Queue} wl_pointer#905.motion(187310311, 24.60156250, 29.19921875) +[2618678.052] {Default Queue} wl_pointer#937.motion(187310311, 24.60156250, 29.19921875) +[2618678.057] {Default Queue} wl_pointer#969.motion(187310311, 24.60156250, 29.19921875) +[2618678.061] {Default Queue} wl_pointer#1001.motion(187310311, 24.60156250, 29.19921875) +[2618678.065] {Default Queue} wl_pointer#1033.motion(187310311, 24.60156250, 29.19921875) +[2618678.070] {Default Queue} wl_pointer#1065.motion(187310311, 24.60156250, 29.19921875) +[2618678.074] {Default Queue} wl_pointer#1097.motion(187310311, 24.60156250, 29.19921875) +[2618678.078] {Default Queue} wl_pointer#1129.motion(187310311, 24.60156250, 29.19921875) +[2618678.082] {Default Queue} wl_pointer#1161.motion(187310311, 24.60156250, 29.19921875) +[2618678.087] {Default Queue} wl_pointer#1193.motion(187310311, 24.60156250, 29.19921875) +[2618678.091] {Default Queue} wl_pointer#1225.motion(187310311, 24.60156250, 29.19921875) +[2618678.095] {Default Queue} wl_pointer#1257.motion(187310311, 24.60156250, 29.19921875) +[2618678.099] {Default Queue} wl_pointer#1289.motion(187310311, 24.60156250, 29.19921875) +[2618678.104] {Default Queue} wl_pointer#1321.motion(187310311, 24.60156250, 29.19921875) +[2618678.108] {Default Queue} wl_pointer#1353.motion(187310311, 24.60156250, 29.19921875) +[2618678.112] {Default Queue} wl_pointer#1385.motion(187310311, 24.60156250, 29.19921875) +[2618678.122] {Default Queue} wl_pointer#1417.motion(187310311, 24.60156250, 29.19921875) +[2618678.131] {Default Queue} wl_pointer#1449.motion(187310311, 24.60156250, 29.19921875) +[2618678.135] {Default Queue} wl_pointer#1481.motion(187310311, 24.60156250, 29.19921875) +[2618678.140] {Default Queue} wl_pointer#1513.motion(187310311, 24.60156250, 29.19921875) +[2618678.144] {Default Queue} wl_pointer#1545.motion(187310311, 24.60156250, 29.19921875) +[2618678.148] {Default Queue} wl_pointer#1577.motion(187310311, 24.60156250, 29.19921875) +[2618678.152] {Default Queue} wl_pointer#1609.motion(187310311, 24.60156250, 29.19921875) +[2618678.157] {Default Queue} wl_pointer#1641.motion(187310311, 24.60156250, 29.19921875) +[2618678.161] {Default Queue} wl_pointer#1673.motion(187310311, 24.60156250, 29.19921875) +[2618678.165] {Default Queue} wl_pointer#1705.motion(187310311, 24.60156250, 29.19921875) +[2618678.169] {Default Queue} wl_pointer#1737.motion(187310311, 24.60156250, 29.19921875) +[2618678.174] {Default Queue} wl_pointer#1762.motion(187310311, 24.60156250, 29.19921875) +[2618678.178] {Default Queue} wl_pointer#1801.motion(187310311, 24.60156250, 29.19921875) +[2618678.182] {Default Queue} wl_pointer#1833.motion(187310311, 24.60156250, 29.19921875) +[2618678.187] {Default Queue} wl_pointer#1865.motion(187310311, 24.60156250, 29.19921875) +[2618678.191] {Default Queue} wl_pointer#1897.motion(187310311, 24.60156250, 29.19921875) +[2618678.195] {Default Queue} wl_pointer#1929.motion(187310311, 24.60156250, 29.19921875) +[2618678.199] {Default Queue} wl_pointer#1961.motion(187310311, 24.60156250, 29.19921875) +[2618678.204] {Default Queue} wl_pointer#1993.motion(187310311, 24.60156250, 29.19921875) +[2618678.208] {Default Queue} wl_pointer#2025.motion(187310311, 24.60156250, 29.19921875) +[2618678.212] {Default Queue} wl_pointer#2057.motion(187310311, 24.60156250, 29.19921875) +[2618678.216] {Default Queue} wl_pointer#2089.motion(187310311, 24.60156250, 29.19921875) +[2618678.221] {Default Queue} wl_pointer#2121.motion(187310311, 24.60156250, 29.19921875) +[2618678.225] {Default Queue} wl_pointer#2153.motion(187310311, 24.60156250, 29.19921875) +[2618678.229] {Default Queue} wl_pointer#2185.motion(187310311, 24.60156250, 29.19921875) +[2618678.234] {Default Queue} wl_pointer#2217.motion(187310311, 24.60156250, 29.19921875) +[2618678.238] {Default Queue} wl_pointer#2249.motion(187310311, 24.60156250, 29.19921875) +[2618678.242] {Default Queue} wl_pointer#2281.motion(187310311, 24.60156250, 29.19921875) +[2618678.246] {Default Queue} wl_pointer#2313.motion(187310311, 24.60156250, 29.19921875) +[2618678.251] {Default Queue} wl_pointer#2345.motion(187310311, 24.60156250, 29.19921875) +[2618678.255] {Default Queue} wl_pointer#2377.motion(187310311, 24.60156250, 29.19921875) +[2618678.260] {Default Queue} wl_pointer#2409.motion(187310311, 24.60156250, 29.19921875) +[2618678.264] {Default Queue} wl_pointer#2441.motion(187310311, 24.60156250, 29.19921875) +[2618678.268] {Default Queue} wl_pointer#2473.motion(187310311, 24.60156250, 29.19921875) +[2618678.273] {Default Queue} wl_pointer#2498.motion(187310311, 24.60156250, 29.19921875) +[2618678.286] {Default Queue} -> wl_buffer#93.destroy() +[2618678.292] {Default Queue} -> wl_buffer#94.destroy() +[2618678.296] {Default Queue} -> wl_shm_pool#91.destroy() +[2618678.300] {Default Queue} -> wl_shm_pool#92.destroy() +[2618678.305] {Default Queue} -> wl_surface#3683.destroy() +[2618678.349] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3452, fd 581, 640) +[2618678.356] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3517, fd 582, 640) +[2618678.361] {Default Queue} -> wl_shm_pool#3452.create_buffer(new id wl_buffer#3454, 0, 10, 16, 40, 0) +[2618678.366] {Default Queue} -> wl_shm_pool#3517.create_buffer(new id wl_buffer#3451, 0, 10, 16, 40, 0) +[2618678.374] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3518) +[2618678.378] {Default Queue} -> wl_surface#3518.attach(wl_buffer#3454, 0, 0) +[2618678.383] {Default Queue} -> wl_surface#3518.commit() +[2618678.392] {Default Queue} -> wl_surface#3518.attach(wl_buffer#3454, 0, 0) +[2618678.399] {Default Queue} -> wl_surface#3518.commit() +[2618678.403] {Default Queue} wl_pointer#2537.motion(187310311, 24.60156250, 29.19921875) +[2618678.408] {Default Queue} wl_pointer#2569.motion(187310311, 24.60156250, 29.19921875) +[2618678.413] {Default Queue} wl_pointer#2601.motion(187310311, 24.60156250, 29.19921875) +[2618678.417] {Default Queue} wl_pointer#2633.motion(187310311, 24.60156250, 29.19921875) +[2618678.422] {Default Queue} wl_pointer#2665.motion(187310311, 24.60156250, 29.19921875) +[2618678.426] {Default Queue} wl_pointer#2697.motion(187310311, 24.60156250, 29.19921875) +[2618678.430] {Default Queue} wl_pointer#2729.motion(187310311, 24.60156250, 29.19921875) +[2618678.435] {Default Queue} wl_pointer#2761.motion(187310311, 24.60156250, 29.19921875) +[2618678.439] {Default Queue} wl_pointer#2793.motion(187310311, 24.60156250, 29.19921875) +[2618678.443] {Default Queue} wl_pointer#2825.motion(187310311, 24.60156250, 29.19921875) +[2618678.448] {Default Queue} wl_pointer#2857.motion(187310311, 24.60156250, 29.19921875) +[2618678.452] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) +[2618678.457] {Default Queue} -> wl_surface#2055.commit() +[2618679.524] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) +[2618679.532] {Default Queue} -> wl_surface#2055.commit() +[2618679.539] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) +[2618679.543] {Default Queue} -> wl_surface#2055.commit() +[2618679.549] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) +[2618679.553] {Default Queue} -> wl_surface#2023.commit() +[2618680.616] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) +[2618680.625] {Default Queue} -> wl_surface#2023.commit() +[2618680.636] {Default Queue} -> wl_region#2047.subtract(0, 0, 19, 48) +[2618680.640] {Default Queue} -> wl_region#2047.add(-20, -49, 19, 48) +[2618680.645] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) +[2618680.649] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) +[2618680.655] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) +[2618680.659] {Default Queue} -> wl_surface#2023.commit() +[2618680.663] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) +[2618680.668] {Default Queue} -> wl_surface#2023.commit() +[2618680.674] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) +[2618680.678] {Default Queue} -> wl_surface#2023.commit() +[2618680.684] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) +[2618680.688] {Default Queue} -> wl_surface#1959.commit() +[2618681.596] {Display Queue} wl_display#1.delete_id(3675) +[2618681.607] {Display Queue} wl_display#1.delete_id(3678) +[2618681.613] {Display Queue} wl_display#1.delete_id(3674) +[2618681.617] {Display Queue} wl_display#1.delete_id(3676) +[2618681.621] {Display Queue} wl_display#1.delete_id(3677) +[2618681.625] {Display Queue} wl_display#1.delete_id(3292) +[2618681.629] {Display Queue} wl_display#1.delete_id(3293) +[2618681.632] {Display Queue} wl_display#1.delete_id(3484) +[2618681.636] {Display Queue} wl_display#1.delete_id(3291) +[2618681.640] {Display Queue} wl_display#1.delete_id(3294) +[2618681.644] {Display Queue} wl_display#1.delete_id(3684) +[2618681.648] {Display Queue} wl_display#1.delete_id(3681) +[2618681.652] {Display Queue} wl_display#1.delete_id(3682) +[2618681.656] {Display Queue} wl_display#1.delete_id(3679) +[2618681.660] {Display Queue} wl_display#1.delete_id(3671) +[2618681.664] {Default Queue} wl_pointer#2889.motion(187310311, 24.60156250, 29.19921875) +[2618681.669] {Default Queue} wl_pointer#2921.motion(187310311, 24.60156250, 29.19921875) +[2618681.674] {Default Queue} wl_pointer#2953.motion(187310311, 24.60156250, 29.19921875) +[2618681.679] {Default Queue} wl_pointer#2985.motion(187310311, 24.60156250, 29.19921875) +[2618681.683] {Default Queue} wl_pointer#3017.motion(187310311, 24.60156250, 29.19921875) +[2618681.687] {Default Queue} wl_pointer#3049.motion(187310311, 24.60156250, 29.19921875) +[2618681.696] {Default Queue} wl_pointer#3081.motion(187310311, 24.60156250, 29.19921875) +[2618681.703] {Default Queue} wl_pointer#3113.motion(187310311, 24.60156250, 29.19921875) +[2618681.708] {Default Queue} wl_pointer#3145.motion(187310311, 24.60156250, 29.19921875) +[2618681.712] {Default Queue} wl_pointer#3177.motion(187310311, 24.60156250, 29.19921875) +[2618681.716] {Default Queue} wl_pointer#3209.motion(187310311, 24.60156250, 29.19921875) +[2618681.721] {Default Queue} wl_pointer#3241.motion(187310311, 24.60156250, 29.19921875) +[2618681.725] {Default Queue} wl_pointer#3273.motion(187310311, 24.60156250, 29.19921875) +[2618681.730] {Default Queue} wl_pointer#3305.motion(187310311, 24.60156250, 29.19921875) +[2618681.734] {Default Queue} wl_pointer#3337.motion(187310311, 24.60156250, 29.19921875) +[2618681.738] {Default Queue} wl_pointer#3369.motion(187310311, 24.60156250, 29.19921875) +[2618681.743] {Default Queue} wl_pointer#3401.motion(187310311, 24.60156250, 29.19921875) +[2618681.747] {Default Queue} wl_pointer#3433.motion(187310311, 24.60156250, 29.19921875) +[2618681.752] {Default Queue} wl_pointer#3465.motion(187310311, 24.60156250, 29.19921875) +[2618681.756] {Default Queue} wl_pointer#3497.motion(187310311, 24.60156250, 29.19921875) +[2618681.761] {Default Queue} wl_pointer#3529.motion(187310311, 24.60156250, 29.19921875) +[2618681.765] {Default Queue} wl_pointer#3561.motion(187310311, 24.60156250, 29.19921875) +[2618681.770] {Default Queue} wl_pointer#3593.motion(187310311, 24.60156250, 29.19921875) +[2618681.774] {Default Queue} wl_pointer#3625.motion(187310311, 24.60156250, 29.19921875) +[2618681.778] {Default Queue} wl_pointer#3657.motion(187310311, 24.60156250, 29.19921875) +[2618681.783] {Default Queue} wl_pointer#3695.motion(187310311, 24.60156250, 29.19921875) +[2618681.787] {Default Queue} wl_pointer#24.motion(187310311, 24.19921875, 26.39843750) +[2618681.791] {Default Queue} wl_pointer#81.motion(187310311, 24.19921875, 26.39843750) +[2618681.797] {Default Queue} wl_pointer#105.motion(187310311, 24.19921875, 26.39843750) +[2618681.801] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618681.806] {Default Queue} wl_pointer#137.motion(187310311, 24.19921875, 26.39843750) +[2618681.811] {Default Queue} wl_pointer#169.motion(187310311, 24.19921875, 26.39843750) +[2618681.815] {Default Queue} wl_pointer#201.motion(187310311, 24.19921875, 26.39843750) +[2618681.819] {Default Queue} wl_pointer#233.motion(187310311, 24.19921875, 26.39843750) +[2618681.824] {Default Queue} wl_pointer#265.motion(187310311, 24.19921875, 26.39843750) +[2618681.828] {Default Queue} wl_pointer#297.motion(187310311, 24.19921875, 26.39843750) +[2618681.832] {Default Queue} wl_pointer#329.motion(187310311, 24.19921875, 26.39843750) +[2618681.837] {Default Queue} wl_pointer#361.motion(187310311, 24.19921875, 26.39843750) +[2618681.841] {Default Queue} wl_pointer#393.motion(187310311, 24.19921875, 26.39843750) +[2618681.845] {Default Queue} wl_pointer#425.motion(187310311, 24.19921875, 26.39843750) +[2618681.849] {Default Queue} wl_pointer#457.motion(187310311, 24.19921875, 26.39843750) +[2618681.854] {Default Queue} wl_pointer#489.motion(187310311, 24.19921875, 26.39843750) +[2618681.858] {Default Queue} wl_pointer#521.motion(187310311, 24.19921875, 26.39843750) +[2618681.868] {Default Queue} wl_pointer#553.motion(187310311, 24.19921875, 26.39843750) +[2618681.872] {Default Queue} wl_pointer#585.motion(187310311, 24.19921875, 26.39843750) +[2618681.876] {Default Queue} wl_pointer#617.motion(187310311, 24.19921875, 26.39843750) +[2618681.881] {Default Queue} wl_pointer#649.motion(187310311, 24.19921875, 26.39843750) +[2618681.885] {Default Queue} wl_pointer#681.motion(187310311, 24.19921875, 26.39843750) +[2618681.889] {Default Queue} wl_pointer#713.motion(187310311, 24.19921875, 26.39843750) +[2618681.894] {Default Queue} wl_pointer#745.motion(187310311, 24.19921875, 26.39843750) +[2618681.898] {Default Queue} wl_pointer#777.motion(187310311, 24.19921875, 26.39843750) +[2618681.902] {Default Queue} wl_pointer#809.motion(187310311, 24.19921875, 26.39843750) +[2618681.910] {Default Queue} wl_pointer#841.motion(187310311, 24.19921875, 26.39843750) +[2618681.916] {Default Queue} wl_pointer#873.motion(187310311, 24.19921875, 26.39843750) +[2618681.920] {Default Queue} wl_pointer#905.motion(187310311, 24.19921875, 26.39843750) +[2618681.924] {Default Queue} wl_pointer#937.motion(187310311, 24.19921875, 26.39843750) +[2618681.929] {Default Queue} wl_pointer#969.motion(187310311, 24.19921875, 26.39843750) +[2618681.933] {Default Queue} wl_pointer#1001.motion(187310311, 24.19921875, 26.39843750) +[2618681.937] {Default Queue} wl_pointer#1033.motion(187310311, 24.19921875, 26.39843750) +[2618681.941] {Default Queue} wl_pointer#1065.motion(187310311, 24.19921875, 26.39843750) +[2618681.946] {Default Queue} wl_pointer#1097.motion(187310311, 24.19921875, 26.39843750) +[2618681.952] {Default Queue} wl_pointer#1129.motion(187310311, 24.19921875, 26.39843750) +[2618681.958] {Default Queue} wl_pointer#1161.motion(187310311, 24.19921875, 26.39843750) +[2618681.964] {Default Queue} wl_pointer#1193.motion(187310311, 24.19921875, 26.39843750) +[2618681.970] {Default Queue} wl_pointer#1225.motion(187310311, 24.19921875, 26.39843750) +[2618681.976] {Default Queue} wl_pointer#1257.motion(187310311, 24.19921875, 26.39843750) +[2618681.982] {Default Queue} wl_pointer#1289.motion(187310311, 24.19921875, 26.39843750) +[2618681.988] {Default Queue} wl_pointer#1321.motion(187310311, 24.19921875, 26.39843750) +[2618681.994] {Default Queue} wl_pointer#1353.motion(187310311, 24.19921875, 26.39843750) +[2618682.000] {Default Queue} wl_pointer#1385.motion(187310311, 24.19921875, 26.39843750) +[2618682.006] {Default Queue} wl_pointer#1417.motion(187310311, 24.19921875, 26.39843750) +[2618682.012] {Default Queue} wl_pointer#1449.motion(187310311, 24.19921875, 26.39843750) +[2618682.019] {Default Queue} wl_pointer#1481.motion(187310311, 24.19921875, 26.39843750) +[2618682.025] {Default Queue} wl_pointer#1513.motion(187310311, 24.19921875, 26.39843750) +[2618682.031] {Default Queue} wl_pointer#1545.motion(187310311, 24.19921875, 26.39843750) +[2618682.036] {Default Queue} wl_pointer#1577.motion(187310311, 24.19921875, 26.39843750) +[2618682.041] {Default Queue} wl_pointer#1609.motion(187310311, 24.19921875, 26.39843750) +[2618682.045] {Default Queue} wl_pointer#1641.motion(187310311, 24.19921875, 26.39843750) +[2618682.050] {Default Queue} wl_pointer#1673.motion(187310311, 24.19921875, 26.39843750) +[2618682.054] {Default Queue} wl_pointer#1705.motion(187310311, 24.19921875, 26.39843750) +[2618682.058] {Default Queue} wl_pointer#1737.motion(187310311, 24.19921875, 26.39843750) +[2618682.062] {Default Queue} wl_pointer#1762.motion(187310311, 24.19921875, 26.39843750) +[2618682.067] {Default Queue} wl_pointer#1801.motion(187310311, 24.19921875, 26.39843750) +[2618682.071] {Default Queue} wl_pointer#1833.motion(187310311, 24.19921875, 26.39843750) +[2618682.075] {Default Queue} wl_pointer#1865.motion(187310311, 24.19921875, 26.39843750) +[2618682.080] {Default Queue} wl_pointer#1897.motion(187310311, 24.19921875, 26.39843750) +[2618682.084] {Default Queue} wl_pointer#1929.motion(187310311, 24.19921875, 26.39843750) +[2618682.088] {Default Queue} wl_pointer#1961.motion(187310311, 24.19921875, 26.39843750) +[2618682.092] {Default Queue} wl_pointer#1993.motion(187310311, 24.19921875, 26.39843750) +[2618682.097] {Default Queue} wl_pointer#2025.motion(187310311, 24.19921875, 26.39843750) +[2618682.101] {Default Queue} wl_pointer#2057.motion(187310311, 24.19921875, 26.39843750) +[2618682.105] {Default Queue} wl_pointer#2089.motion(187310311, 24.19921875, 26.39843750) +[2618682.110] {Default Queue} wl_pointer#2121.motion(187310311, 24.19921875, 26.39843750) +[2618682.114] {Default Queue} wl_pointer#2153.motion(187310311, 24.19921875, 26.39843750) +[2618682.118] {Default Queue} wl_pointer#2185.motion(187310311, 24.19921875, 26.39843750) +[2618682.122] {Default Queue} wl_pointer#2217.motion(187310311, 24.19921875, 26.39843750) +[2618682.127] {Default Queue} wl_pointer#2249.motion(187310311, 24.19921875, 26.39843750) +[2618682.134] {Default Queue} wl_pointer#2281.motion(187310311, 24.19921875, 26.39843750) +[2618682.141] {Default Queue} wl_pointer#2313.motion(187310311, 24.19921875, 26.39843750) +[2618682.145] {Default Queue} wl_pointer#2345.motion(187310311, 24.19921875, 26.39843750) +[2618682.150] {Default Queue} wl_pointer#2377.motion(187310311, 24.19921875, 26.39843750) +[2618682.154] {Default Queue} wl_pointer#2409.motion(187310311, 24.19921875, 26.39843750) +[2618682.158] {Default Queue} wl_pointer#2441.motion(187310311, 24.19921875, 26.39843750) +[2618682.163] {Default Queue} wl_pointer#2473.motion(187310311, 24.19921875, 26.39843750) +[2618682.167] {Default Queue} wl_pointer#2498.motion(187310311, 24.19921875, 26.39843750) +[2618682.179] {Default Queue} -> wl_buffer#3454.destroy() +[2618682.185] {Default Queue} -> wl_buffer#3451.destroy() +[2618682.189] {Default Queue} -> wl_shm_pool#3452.destroy() +[2618682.193] {Default Queue} -> wl_shm_pool#3517.destroy() +[2618682.198] {Default Queue} -> wl_surface#3518.destroy() +[2618682.248] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3671, fd 575, 640) +[2618682.255] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 578, 640) +[2618682.260] {Default Queue} -> wl_shm_pool#3671.create_buffer(new id wl_buffer#3682, 0, 10, 16, 40, 0) +[2618682.265] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) +[2618682.273] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3684) +[2618682.277] {Default Queue} -> wl_surface#3684.attach(wl_buffer#3682, 0, 0) +[2618682.281] {Default Queue} -> wl_surface#3684.commit() +[2618682.287] {Default Queue} -> wl_surface#3684.attach(wl_buffer#3682, 0, 0) +[2618682.291] {Default Queue} -> wl_surface#3684.commit() +[2618682.295] {Default Queue} wl_pointer#2537.motion(187310311, 24.19921875, 26.39843750) +[2618682.300] {Default Queue} wl_pointer#2569.motion(187310311, 24.19921875, 26.39843750) +[2618682.304] {Default Queue} wl_pointer#2601.motion(187310311, 24.19921875, 26.39843750) +[2618682.309] {Default Queue} wl_pointer#2633.motion(187310311, 24.19921875, 26.39843750) +[2618682.313] {Default Queue} wl_pointer#2665.motion(187310311, 24.19921875, 26.39843750) +[2618682.317] {Default Queue} wl_pointer#2697.motion(187310311, 24.19921875, 26.39843750) +[2618682.322] {Default Queue} wl_pointer#2729.motion(187310311, 24.19921875, 26.39843750) +[2618682.326] {Default Queue} wl_pointer#2761.motion(187310311, 24.19921875, 26.39843750) +[2618682.330] {Default Queue} wl_pointer#2793.motion(187310311, 24.19921875, 26.39843750) +[2618682.335] {Default Queue} wl_pointer#2825.motion(187310311, 24.19921875, 26.39843750) +[2618682.339] {Default Queue} wl_pointer#2857.motion(187310311, 24.19921875, 26.39843750) +[2618682.343] {Default Queue} wl_pointer#2889.motion(187310311, 24.19921875, 26.39843750) +[2618682.348] {Default Queue} wl_pointer#2921.motion(187310311, 24.19921875, 26.39843750) +[2618682.354] {Default Queue} wl_pointer#2953.motion(187310311, 24.19921875, 26.39843750) +[2618682.360] {Default Queue} wl_pointer#2985.motion(187310311, 24.19921875, 26.39843750) +[2618682.366] {Default Queue} wl_pointer#3017.motion(187310311, 24.19921875, 26.39843750) +[2618682.372] {Default Queue} wl_pointer#3049.motion(187310311, 24.19921875, 26.39843750) +[2618682.377] {Default Queue} wl_pointer#3081.motion(187310311, 24.19921875, 26.39843750) +[2618682.383] {Default Queue} wl_pointer#3113.motion(187310311, 24.19921875, 26.39843750) +[2618682.388] {Default Queue} wl_pointer#3145.motion(187310311, 24.19921875, 26.39843750) +[2618682.394] {Default Queue} wl_pointer#3177.motion(187310311, 24.19921875, 26.39843750) +[2618682.398] {Default Queue} wl_pointer#3209.motion(187310311, 24.19921875, 26.39843750) +[2618682.402] {Default Queue} wl_pointer#3241.motion(187310311, 24.19921875, 26.39843750) +[2618682.407] {Default Queue} wl_pointer#3273.motion(187310311, 24.19921875, 26.39843750) +[2618682.413] {Default Queue} wl_pointer#3305.motion(187310311, 24.19921875, 26.39843750) +[2618682.419] {Default Queue} wl_pointer#3337.motion(187310311, 24.19921875, 26.39843750) +[2618682.428] {Default Queue} wl_pointer#3369.motion(187310311, 24.19921875, 26.39843750) +[2618682.435] {Default Queue} wl_pointer#3401.motion(187310311, 24.19921875, 26.39843750) +[2618682.439] {Default Queue} wl_pointer#3433.motion(187310311, 24.19921875, 26.39843750) +[2618682.444] {Default Queue} wl_pointer#3465.motion(187310311, 24.19921875, 26.39843750) +[2618682.448] {Default Queue} wl_pointer#3497.motion(187310311, 24.19921875, 26.39843750) +[2618682.452] {Default Queue} wl_pointer#3529.motion(187310311, 24.19921875, 26.39843750) +[2618682.457] {Default Queue} wl_pointer#3561.motion(187310311, 24.19921875, 26.39843750) +[2618682.461] {Default Queue} wl_pointer#3593.motion(187310311, 24.19921875, 26.39843750) +[2618682.465] {Default Queue} wl_pointer#3625.motion(187310311, 24.19921875, 26.39843750) +[2618682.470] {Default Queue} wl_pointer#3657.motion(187310311, 24.19921875, 26.39843750) +[2618682.474] {Default Queue} wl_pointer#3695.motion(187310311, 24.19921875, 26.39843750) +[2618682.483] {Default Queue} -> wl_region#1983.subtract(0, 0, 22, 51) +[2618682.488] {Default Queue} -> wl_region#1983.add(-20, -49, 19, 48) +[2618682.493] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) +[2618682.497] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) +[2618682.503] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) +[2618682.507] {Default Queue} -> wl_surface#1959.commit() +[2618682.511] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) +[2618682.515] {Default Queue} -> wl_surface#1959.commit() +[2618682.541] {Default Queue} wl_pointer#24.motion(187310316, 23.80078125, 24.39843750) +[2618682.546] {Default Queue} wl_pointer#81.motion(187310316, 23.80078125, 24.39843750) +[2618682.552] {Default Queue} wl_pointer#105.motion(187310316, 23.80078125, 24.39843750) +[2618682.556] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618682.561] {Default Queue} wl_pointer#137.motion(187310316, 23.80078125, 24.39843750) +[2618682.565] {Default Queue} wl_pointer#169.motion(187310316, 23.80078125, 24.39843750) +[2618682.570] {Default Queue} wl_pointer#201.motion(187310316, 23.80078125, 24.39843750) +[2618682.574] {Default Queue} wl_pointer#233.motion(187310316, 23.80078125, 24.39843750) +[2618682.578] {Default Queue} wl_pointer#265.motion(187310316, 23.80078125, 24.39843750) +[2618682.583] {Default Queue} wl_pointer#297.motion(187310316, 23.80078125, 24.39843750) +[2618682.587] {Default Queue} wl_pointer#329.motion(187310316, 23.80078125, 24.39843750) +[2618682.591] {Default Queue} wl_pointer#361.motion(187310316, 23.80078125, 24.39843750) +[2618682.595] {Default Queue} wl_pointer#393.motion(187310316, 23.80078125, 24.39843750) +[2618682.600] {Default Queue} wl_pointer#425.motion(187310316, 23.80078125, 24.39843750) +[2618682.604] {Default Queue} wl_pointer#457.motion(187310316, 23.80078125, 24.39843750) +[2618682.608] {Default Queue} wl_pointer#489.motion(187310316, 23.80078125, 24.39843750) +[2618682.613] {Default Queue} wl_pointer#521.motion(187310316, 23.80078125, 24.39843750) +[2618682.617] {Default Queue} wl_pointer#553.motion(187310316, 23.80078125, 24.39843750) +[2618682.621] {Default Queue} wl_pointer#585.motion(187310316, 23.80078125, 24.39843750) +[2618682.625] {Default Queue} wl_pointer#617.motion(187310316, 23.80078125, 24.39843750) +[2618682.630] {Default Queue} wl_pointer#649.motion(187310316, 23.80078125, 24.39843750) +[2618682.634] {Default Queue} wl_pointer#681.motion(187310316, 23.80078125, 24.39843750) +[2618682.638] {Default Queue} wl_pointer#713.motion(187310316, 23.80078125, 24.39843750) +[2618682.642] {Default Queue} wl_pointer#745.motion(187310316, 23.80078125, 24.39843750) +[2618682.648] {Default Queue} wl_pointer#777.motion(187310316, 23.80078125, 24.39843750) +[2618682.654] {Default Queue} wl_pointer#809.motion(187310316, 23.80078125, 24.39843750) +[2618682.660] {Default Queue} wl_pointer#841.motion(187310316, 23.80078125, 24.39843750) +[2618682.665] {Default Queue} wl_pointer#873.motion(187310316, 23.80078125, 24.39843750) +[2618682.676] {Default Queue} wl_pointer#905.motion(187310316, 23.80078125, 24.39843750) +[2618682.684] {Default Queue} wl_pointer#937.motion(187310316, 23.80078125, 24.39843750) +[2618682.690] {Default Queue} wl_pointer#969.motion(187310316, 23.80078125, 24.39843750) +[2618682.695] {Default Queue} wl_pointer#1001.motion(187310316, 23.80078125, 24.39843750) +[2618682.701] {Default Queue} wl_pointer#1033.motion(187310316, 23.80078125, 24.39843750) +[2618682.707] {Default Queue} wl_pointer#1065.motion(187310316, 23.80078125, 24.39843750) +[2618682.713] {Default Queue} wl_pointer#1097.motion(187310316, 23.80078125, 24.39843750) +[2618682.718] {Default Queue} wl_pointer#1129.motion(187310316, 23.80078125, 24.39843750) +[2618682.722] {Default Queue} wl_pointer#1161.motion(187310316, 23.80078125, 24.39843750) +[2618682.727] {Default Queue} wl_pointer#1193.motion(187310316, 23.80078125, 24.39843750) +[2618682.733] {Default Queue} wl_pointer#1225.motion(187310316, 23.80078125, 24.39843750) +[2618682.738] {Default Queue} wl_pointer#1257.motion(187310316, 23.80078125, 24.39843750) +[2618682.745] {Default Queue} wl_pointer#1289.motion(187310316, 23.80078125, 24.39843750) +[2618682.752] {Default Queue} wl_pointer#1321.motion(187310316, 23.80078125, 24.39843750) +[2618682.759] {Default Queue} wl_pointer#1353.motion(187310316, 23.80078125, 24.39843750) +[2618682.765] {Default Queue} wl_pointer#1385.motion(187310316, 23.80078125, 24.39843750) +[2618682.772] {Default Queue} wl_pointer#1417.motion(187310316, 23.80078125, 24.39843750) +[2618682.779] {Default Queue} wl_pointer#1449.motion(187310316, 23.80078125, 24.39843750) +[2618682.785] {Default Queue} wl_pointer#1481.motion(187310316, 23.80078125, 24.39843750) +[2618682.791] {Default Queue} wl_pointer#1513.motion(187310316, 23.80078125, 24.39843750) +[2618682.796] {Default Queue} wl_pointer#1545.motion(187310316, 23.80078125, 24.39843750) +[2618682.801] {Default Queue} wl_pointer#1577.motion(187310316, 23.80078125, 24.39843750) +[2618682.805] {Default Queue} wl_pointer#1609.motion(187310316, 23.80078125, 24.39843750) +[2618682.811] {Default Queue} wl_pointer#1641.motion(187310316, 23.80078125, 24.39843750) +[2618682.822] {Default Queue} wl_pointer#1673.motion(187310316, 23.80078125, 24.39843750) +[2618682.828] {Default Queue} wl_pointer#1705.motion(187310316, 23.80078125, 24.39843750) +[2618682.833] {Default Queue} wl_pointer#1737.motion(187310316, 23.80078125, 24.39843750) +[2618682.838] {Default Queue} wl_pointer#1762.motion(187310316, 23.80078125, 24.39843750) +[2618682.842] {Default Queue} wl_pointer#1801.motion(187310316, 23.80078125, 24.39843750) +[2618682.846] {Default Queue} wl_pointer#1833.motion(187310316, 23.80078125, 24.39843750) +[2618682.850] {Default Queue} wl_pointer#1865.motion(187310316, 23.80078125, 24.39843750) +[2618682.855] {Default Queue} wl_pointer#1897.motion(187310316, 23.80078125, 24.39843750) +[2618682.859] {Default Queue} wl_pointer#1929.motion(187310316, 23.80078125, 24.39843750) +[2618682.871] {Default Queue} wl_pointer#1961.motion(187310316, 23.80078125, 24.39843750) +[2618682.876] {Default Queue} wl_pointer#1993.motion(187310316, 23.80078125, 24.39843750) +[2618682.880] {Default Queue} wl_pointer#2025.motion(187310316, 23.80078125, 24.39843750) +[2618682.884] {Default Queue} wl_pointer#2057.motion(187310316, 23.80078125, 24.39843750) +[2618682.888] {Default Queue} wl_pointer#2089.motion(187310316, 23.80078125, 24.39843750) +[2618682.893] {Default Queue} wl_pointer#2121.motion(187310316, 23.80078125, 24.39843750) +[2618682.897] {Default Queue} wl_pointer#2153.motion(187310316, 23.80078125, 24.39843750) +[2618682.901] {Default Queue} wl_pointer#2185.motion(187310316, 23.80078125, 24.39843750) +[2618682.905] {Default Queue} wl_pointer#2217.motion(187310316, 23.80078125, 24.39843750) +[2618682.909] {Default Queue} wl_pointer#2249.motion(187310316, 23.80078125, 24.39843750) +[2618682.914] {Default Queue} wl_pointer#2281.motion(187310316, 23.80078125, 24.39843750) +[2618682.918] {Default Queue} wl_pointer#2313.motion(187310316, 23.80078125, 24.39843750) +[2618682.922] {Default Queue} wl_pointer#2345.motion(187310316, 23.80078125, 24.39843750) +[2618682.932] {Default Queue} wl_pointer#2377.motion(187310316, 23.80078125, 24.39843750) +[2618682.939] {Default Queue} wl_pointer#2409.motion(187310316, 23.80078125, 24.39843750) +[2618682.943] {Default Queue} wl_pointer#2441.motion(187310316, 23.80078125, 24.39843750) +[2618682.947] {Default Queue} wl_pointer#2473.motion(187310316, 23.80078125, 24.39843750) +[2618682.952] {Default Queue} wl_pointer#2498.motion(187310316, 23.80078125, 24.39843750) +[2618682.967] {Default Queue} -> wl_buffer#3682.destroy() +[2618682.972] {Default Queue} -> wl_buffer#3681.destroy() +[2618682.976] {Default Queue} -> wl_shm_pool#3671.destroy() +[2618682.980] {Default Queue} -> wl_shm_pool#3679.destroy() +[2618682.985] {Default Queue} -> wl_surface#3684.destroy() +[2618683.029] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3294, fd 581, 640) +[2618683.036] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 582, 640) +[2618683.041] {Default Queue} -> wl_shm_pool#3294.create_buffer(new id wl_buffer#3484, 0, 10, 16, 40, 0) +[2618683.045] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) +[2618683.053] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3292) +[2618683.057] {Default Queue} -> wl_surface#3292.attach(wl_buffer#3484, 0, 0) +[2618683.062] {Default Queue} -> wl_surface#3292.commit() +[2618683.067] {Default Queue} -> wl_surface#3292.attach(wl_buffer#3484, 0, 0) +[2618683.071] {Default Queue} -> wl_surface#3292.commit() +[2618683.075] {Default Queue} wl_pointer#2537.motion(187310316, 23.80078125, 24.39843750) +[2618683.080] {Default Queue} wl_pointer#2569.motion(187310316, 23.80078125, 24.39843750) +[2618683.085] {Default Queue} wl_pointer#2601.motion(187310316, 23.80078125, 24.39843750) +[2618683.089] {Default Queue} wl_pointer#2633.motion(187310316, 23.80078125, 24.39843750) +[2618683.093] {Default Queue} wl_pointer#2665.motion(187310316, 23.80078125, 24.39843750) +[2618683.098] {Default Queue} wl_pointer#2697.motion(187310316, 23.80078125, 24.39843750) +[2618683.102] {Default Queue} wl_pointer#2729.motion(187310316, 23.80078125, 24.39843750) +[2618683.106] {Default Queue} wl_pointer#2761.motion(187310316, 23.80078125, 24.39843750) +[2618683.110] {Default Queue} wl_pointer#2793.motion(187310316, 23.80078125, 24.39843750) +[2618683.115] {Default Queue} wl_pointer#2825.motion(187310316, 23.80078125, 24.39843750) +[2618683.119] {Default Queue} wl_pointer#2857.motion(187310316, 23.80078125, 24.39843750) +[2618683.124] {Default Queue} wl_pointer#2889.motion(187310316, 23.80078125, 24.39843750) +[2618683.128] {Default Queue} wl_pointer#2921.motion(187310316, 23.80078125, 24.39843750) +[2618683.132] {Default Queue} wl_pointer#2953.motion(187310316, 23.80078125, 24.39843750) +[2618683.136] {Default Queue} wl_pointer#2985.motion(187310316, 23.80078125, 24.39843750) +[2618683.141] {Default Queue} wl_pointer#3017.motion(187310316, 23.80078125, 24.39843750) +[2618683.145] {Default Queue} wl_pointer#3049.motion(187310316, 23.80078125, 24.39843750) +[2618683.149] {Default Queue} wl_pointer#3081.motion(187310316, 23.80078125, 24.39843750) +[2618683.153] {Default Queue} wl_pointer#3113.motion(187310316, 23.80078125, 24.39843750) +[2618683.158] {Default Queue} wl_pointer#3145.motion(187310316, 23.80078125, 24.39843750) +[2618683.162] {Default Queue} wl_pointer#3177.motion(187310316, 23.80078125, 24.39843750) +[2618683.166] {Default Queue} wl_pointer#3209.motion(187310316, 23.80078125, 24.39843750) +[2618683.171] {Default Queue} wl_pointer#3241.motion(187310316, 23.80078125, 24.39843750) +[2618683.175] {Default Queue} wl_pointer#3273.motion(187310316, 23.80078125, 24.39843750) +[2618683.179] {Default Queue} wl_pointer#3305.motion(187310316, 23.80078125, 24.39843750) +[2618683.184] {Default Queue} wl_pointer#3337.motion(187310316, 23.80078125, 24.39843750) +[2618683.188] {Default Queue} wl_pointer#3369.motion(187310316, 23.80078125, 24.39843750) +[2618683.192] {Default Queue} wl_pointer#3401.motion(187310316, 23.80078125, 24.39843750) +[2618683.196] {Default Queue} wl_pointer#3433.motion(187310316, 23.80078125, 24.39843750) +[2618683.205] {Default Queue} wl_pointer#3465.motion(187310316, 23.80078125, 24.39843750) +[2618683.211] {Default Queue} wl_pointer#3497.motion(187310316, 23.80078125, 24.39843750) +[2618683.216] {Default Queue} wl_pointer#3529.motion(187310316, 23.80078125, 24.39843750) +[2618683.220] {Default Queue} wl_pointer#3561.motion(187310316, 23.80078125, 24.39843750) +[2618683.225] {Default Queue} wl_pointer#3593.motion(187310316, 23.80078125, 24.39843750) +[2618683.229] {Default Queue} wl_pointer#3625.motion(187310316, 23.80078125, 24.39843750) +[2618683.233] {Default Queue} wl_pointer#3657.motion(187310316, 23.80078125, 24.39843750) +[2618683.238] {Default Queue} wl_pointer#3695.motion(187310316, 23.80078125, 24.39843750) +[2618683.242] {Default Queue} wl_pointer#24.motion(187310316, 23.39843750, 22.00000000) +[2618683.246] {Default Queue} wl_pointer#81.motion(187310316, 23.39843750, 22.00000000) +[2618683.251] {Default Queue} wl_pointer#105.motion(187310316, 23.39843750, 22.00000000) +[2618683.256] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618683.260] {Default Queue} wl_pointer#137.motion(187310316, 23.39843750, 22.00000000) +[2618683.265] {Default Queue} wl_pointer#169.motion(187310316, 23.39843750, 22.00000000) +[2618683.269] {Default Queue} wl_pointer#201.motion(187310316, 23.39843750, 22.00000000) +[2618683.273] {Default Queue} wl_pointer#233.motion(187310316, 23.39843750, 22.00000000) +[2618683.278] {Default Queue} wl_pointer#265.motion(187310316, 23.39843750, 22.00000000) +[2618683.282] {Default Queue} wl_pointer#297.motion(187310316, 23.39843750, 22.00000000) +[2618683.286] {Default Queue} wl_pointer#329.motion(187310316, 23.39843750, 22.00000000) +[2618683.290] {Default Queue} wl_pointer#361.motion(187310316, 23.39843750, 22.00000000) +[2618683.295] {Default Queue} wl_pointer#393.motion(187310316, 23.39843750, 22.00000000) +[2618683.299] {Default Queue} wl_pointer#425.motion(187310316, 23.39843750, 22.00000000) +[2618683.303] {Default Queue} wl_pointer#457.motion(187310316, 23.39843750, 22.00000000) +[2618683.308] {Default Queue} wl_pointer#489.motion(187310316, 23.39843750, 22.00000000) +[2618683.312] {Default Queue} wl_pointer#521.motion(187310316, 23.39843750, 22.00000000) +[2618683.316] {Default Queue} wl_pointer#553.motion(187310316, 23.39843750, 22.00000000) +[2618683.320] {Default Queue} wl_pointer#585.motion(187310316, 23.39843750, 22.00000000) +[2618683.325] {Default Queue} wl_pointer#617.motion(187310316, 23.39843750, 22.00000000) +[2618683.329] {Default Queue} wl_pointer#649.motion(187310316, 23.39843750, 22.00000000) +[2618683.333] {Default Queue} wl_pointer#681.motion(187310316, 23.39843750, 22.00000000) +[2618683.338] {Default Queue} wl_pointer#713.motion(187310316, 23.39843750, 22.00000000) +[2618683.342] {Default Queue} wl_pointer#745.motion(187310316, 23.39843750, 22.00000000) +[2618683.346] {Default Queue} wl_pointer#777.motion(187310316, 23.39843750, 22.00000000) +[2618683.351] {Default Queue} wl_pointer#809.motion(187310316, 23.39843750, 22.00000000) +[2618683.355] {Default Queue} wl_pointer#841.motion(187310316, 23.39843750, 22.00000000) +[2618683.359] {Default Queue} wl_pointer#873.motion(187310316, 23.39843750, 22.00000000) +[2618683.363] {Default Queue} wl_pointer#905.motion(187310316, 23.39843750, 22.00000000) +[2618683.368] {Default Queue} wl_pointer#937.motion(187310316, 23.39843750, 22.00000000) +[2618683.372] {Default Queue} wl_pointer#969.motion(187310316, 23.39843750, 22.00000000) +[2618683.376] {Default Queue} wl_pointer#1001.motion(187310316, 23.39843750, 22.00000000) +[2618683.380] {Default Queue} wl_pointer#1033.motion(187310316, 23.39843750, 22.00000000) +[2618683.385] {Default Queue} wl_pointer#1065.motion(187310316, 23.39843750, 22.00000000) +[2618683.389] {Default Queue} wl_pointer#1097.motion(187310316, 23.39843750, 22.00000000) +[2618683.393] {Default Queue} wl_pointer#1129.motion(187310316, 23.39843750, 22.00000000) +[2618683.398] {Default Queue} wl_pointer#1161.motion(187310316, 23.39843750, 22.00000000) +[2618683.405] {Default Queue} wl_pointer#1193.motion(187310316, 23.39843750, 22.00000000) +[2618683.410] {Default Queue} wl_pointer#1225.motion(187310316, 23.39843750, 22.00000000) +[2618683.415] {Default Queue} wl_pointer#1257.motion(187310316, 23.39843750, 22.00000000) +[2618683.419] {Default Queue} wl_pointer#1289.motion(187310316, 23.39843750, 22.00000000) +[2618683.423] {Default Queue} wl_pointer#1321.motion(187310316, 23.39843750, 22.00000000) +[2618683.428] {Default Queue} wl_pointer#1353.motion(187310316, 23.39843750, 22.00000000) +[2618683.432] {Default Queue} wl_pointer#1385.motion(187310316, 23.39843750, 22.00000000) +[2618683.436] {Default Queue} wl_pointer#1417.motion(187310316, 23.39843750, 22.00000000) +[2618683.440] {Default Queue} wl_pointer#1449.motion(187310316, 23.39843750, 22.00000000) +[2618683.445] {Default Queue} wl_pointer#1481.motion(187310316, 23.39843750, 22.00000000) +[2618683.449] {Default Queue} wl_pointer#1513.motion(187310316, 23.39843750, 22.00000000) +[2618683.453] {Default Queue} wl_pointer#1545.motion(187310316, 23.39843750, 22.00000000) +[2618683.458] {Default Queue} wl_pointer#1577.motion(187310316, 23.39843750, 22.00000000) +[2618683.462] {Default Queue} wl_pointer#1609.motion(187310316, 23.39843750, 22.00000000) +[2618683.466] {Default Queue} wl_pointer#1641.motion(187310316, 23.39843750, 22.00000000) +[2618683.470] {Default Queue} wl_pointer#1673.motion(187310316, 23.39843750, 22.00000000) +[2618683.475] {Default Queue} wl_pointer#1705.motion(187310316, 23.39843750, 22.00000000) +[2618683.479] {Default Queue} wl_pointer#1737.motion(187310316, 23.39843750, 22.00000000) +[2618683.483] {Default Queue} wl_pointer#1762.motion(187310316, 23.39843750, 22.00000000) +[2618683.488] {Default Queue} wl_pointer#1801.motion(187310316, 23.39843750, 22.00000000) +[2618683.492] {Default Queue} wl_pointer#1833.motion(187310316, 23.39843750, 22.00000000) +[2618683.496] {Default Queue} wl_pointer#1865.motion(187310316, 23.39843750, 22.00000000) +[2618683.500] {Default Queue} wl_pointer#1897.motion(187310316, 23.39843750, 22.00000000) +[2618683.505] {Default Queue} wl_pointer#1929.motion(187310316, 23.39843750, 22.00000000) +[2618683.509] {Default Queue} wl_pointer#1961.motion(187310316, 23.39843750, 22.00000000) +[2618683.513] {Default Queue} wl_pointer#1993.motion(187310316, 23.39843750, 22.00000000) +[2618683.517] {Default Queue} wl_pointer#2025.motion(187310316, 23.39843750, 22.00000000) +[2618683.522] {Default Queue} wl_pointer#2057.motion(187310316, 23.39843750, 22.00000000) +[2618683.526] {Default Queue} wl_pointer#2089.motion(187310316, 23.39843750, 22.00000000) +[2618683.530] {Default Queue} wl_pointer#2121.motion(187310316, 23.39843750, 22.00000000) +[2618683.535] {Default Queue} wl_pointer#2153.motion(187310316, 23.39843750, 22.00000000) +[2618683.539] {Default Queue} wl_pointer#2185.motion(187310316, 23.39843750, 22.00000000) +[2618683.543] {Default Queue} wl_pointer#2217.motion(187310316, 23.39843750, 22.00000000) +[2618683.547] {Default Queue} wl_pointer#2249.motion(187310316, 23.39843750, 22.00000000) +[2618683.552] {Default Queue} wl_pointer#2281.motion(187310316, 23.39843750, 22.00000000) +[2618683.556] {Default Queue} wl_pointer#2313.motion(187310316, 23.39843750, 22.00000000) +[2618683.560] {Default Queue} wl_pointer#2345.motion(187310316, 23.39843750, 22.00000000) +[2618683.565] {Default Queue} wl_pointer#2377.motion(187310316, 23.39843750, 22.00000000) +[2618683.569] {Default Queue} wl_pointer#2409.motion(187310316, 23.39843750, 22.00000000) +[2618683.573] {Default Queue} wl_pointer#2441.motion(187310316, 23.39843750, 22.00000000) +[2618683.578] {Default Queue} wl_pointer#2473.motion(187310316, 23.39843750, 22.00000000) +[2618683.582] {Default Queue} wl_pointer#2498.motion(187310316, 23.39843750, 22.00000000) +[2618683.592] {Default Queue} -> wl_buffer#3484.destroy() +[2618683.598] {Default Queue} -> wl_buffer#3293.destroy() +[2618683.602] {Default Queue} -> wl_shm_pool#3294.destroy() +[2618683.606] {Default Queue} -> wl_shm_pool#3291.destroy() +[2618683.611] {Default Queue} -> wl_surface#3292.destroy() +[2618683.643] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3677, fd 583, 640) +[2618683.651] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3676, fd 584, 640) +[2618683.657] {Default Queue} -> wl_shm_pool#3677.create_buffer(new id wl_buffer#3674, 0, 10, 16, 40, 0) +[2618683.662] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 10, 16, 40, 0) +[2618683.669] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3675) +[2618683.673] {Default Queue} -> wl_surface#3675.attach(wl_buffer#3674, 0, 0) +[2618683.677] {Default Queue} -> wl_surface#3675.commit() +[2618683.683] {Default Queue} -> wl_surface#3675.attach(wl_buffer#3674, 0, 0) +[2618683.687] {Default Queue} -> wl_surface#3675.commit() +[2618683.691] {Default Queue} wl_pointer#2537.motion(187310316, 23.39843750, 22.00000000) +[2618683.696] {Default Queue} wl_pointer#2569.motion(187310316, 23.39843750, 22.00000000) +[2618683.702] {Default Queue} wl_pointer#2601.motion(187310316, 23.39843750, 22.00000000) +[2618683.726] {Default Queue} wl_pointer#2633.motion(187310316, 23.39843750, 22.00000000) +[2618683.737] {Default Queue} wl_pointer#2665.motion(187310316, 23.39843750, 22.00000000) +[2618683.743] {Default Queue} wl_pointer#2697.motion(187310316, 23.39843750, 22.00000000) +[2618683.747] {Default Queue} wl_pointer#2729.motion(187310316, 23.39843750, 22.00000000) +[2618683.752] {Default Queue} wl_pointer#2761.motion(187310316, 23.39843750, 22.00000000) +[2618683.756] {Default Queue} wl_pointer#2793.motion(187310316, 23.39843750, 22.00000000) +[2618683.760] {Default Queue} wl_pointer#2825.motion(187310316, 23.39843750, 22.00000000) +[2618683.765] {Default Queue} wl_pointer#2857.motion(187310316, 23.39843750, 22.00000000) +[2618683.770] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) +[2618683.775] {Default Queue} -> wl_surface#1959.commit() +[2618684.843] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) +[2618684.849] {Default Queue} -> wl_surface#1959.commit() +[2618684.856] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) +[2618684.864] {Default Queue} -> wl_surface#1959.commit() +[2618684.870] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) +[2618684.874] {Default Queue} -> wl_surface#1927.commit() +[2618685.941] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) +[2618685.953] {Default Queue} -> wl_surface#1927.commit() +[2618685.969] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) +[2618685.975] {Default Queue} -> wl_region#1951.add(0, 0, 2, 2) +[2618685.980] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618685.986] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618685.995] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) +[2618686.001] {Default Queue} -> wl_region#1951.add(0, 0, 2, 2) +[2618686.006] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618686.011] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618686.018] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) +[2618686.023] {Default Queue} -> wl_region#1951.add(0, 0, 2, 2) +[2618686.029] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618686.034] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618686.041] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) +[2618686.046] {Default Queue} -> wl_region#1951.add(0, 0, 2, 2) +[2618686.051] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618686.056] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618686.064] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) +[2618686.070] {Default Queue} -> wl_region#1951.add(0, 0, 2, 2) +[2618686.075] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618686.080] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618686.086] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) +[2618686.091] {Default Queue} -> wl_surface#1927.commit() +[2618686.096] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) +[2618686.112] {Default Queue} -> wl_surface#1927.commit() +[2618686.123] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) +[2618686.129] {Default Queue} -> wl_surface#1927.commit() +[2618686.136] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) +[2618686.140] {Default Queue} -> wl_surface#871.commit() +[2618686.397] {Display Queue} wl_display#1.delete_id(3515) +[2618686.404] {Display Queue} wl_display#1.delete_id(3516) +[2618686.409] {Display Queue} wl_display#1.delete_id(3485) +[2618686.413] {Display Queue} wl_display#1.delete_id(3486) +[2618686.416] {Display Queue} wl_display#1.delete_id(3483) +[2618686.420] {Display Queue} wl_display#1.delete_id(93) +[2618686.424] {Display Queue} wl_display#1.delete_id(94) +[2618686.428] {Display Queue} wl_display#1.delete_id(91) +[2618686.432] {Display Queue} wl_display#1.delete_id(92) +[2618686.436] {Display Queue} wl_display#1.delete_id(3683) +[2618686.440] {Default Queue} wl_pointer#2889.motion(187310316, 23.39843750, 22.00000000) +[2618686.445] {Default Queue} wl_pointer#2921.motion(187310316, 23.39843750, 22.00000000) +[2618686.450] {Default Queue} wl_pointer#2953.motion(187310316, 23.39843750, 22.00000000) +[2618686.454] {Default Queue} wl_pointer#2985.motion(187310316, 23.39843750, 22.00000000) +[2618686.458] {Default Queue} wl_pointer#3017.motion(187310316, 23.39843750, 22.00000000) +[2618686.463] {Default Queue} wl_pointer#3049.motion(187310316, 23.39843750, 22.00000000) +[2618686.467] {Default Queue} wl_pointer#3081.motion(187310316, 23.39843750, 22.00000000) +[2618686.471] {Default Queue} wl_pointer#3113.motion(187310316, 23.39843750, 22.00000000) +[2618686.476] {Default Queue} wl_pointer#3145.motion(187310316, 23.39843750, 22.00000000) +[2618686.480] {Default Queue} wl_pointer#3177.motion(187310316, 23.39843750, 22.00000000) +[2618686.484] {Default Queue} wl_pointer#3209.motion(187310316, 23.39843750, 22.00000000) +[2618686.489] {Default Queue} wl_pointer#3241.motion(187310316, 23.39843750, 22.00000000) +[2618686.493] {Default Queue} wl_pointer#3273.motion(187310316, 23.39843750, 22.00000000) +[2618686.497] {Default Queue} wl_pointer#3305.motion(187310316, 23.39843750, 22.00000000) +[2618686.502] {Default Queue} wl_pointer#3337.motion(187310316, 23.39843750, 22.00000000) +[2618686.506] {Default Queue} wl_pointer#3369.motion(187310316, 23.39843750, 22.00000000) +[2618686.510] {Default Queue} wl_pointer#3401.motion(187310316, 23.39843750, 22.00000000) +[2618686.515] {Default Queue} wl_pointer#3433.motion(187310316, 23.39843750, 22.00000000) +[2618686.519] {Default Queue} wl_pointer#3465.motion(187310316, 23.39843750, 22.00000000) +[2618686.524] {Default Queue} wl_pointer#3497.motion(187310316, 23.39843750, 22.00000000) +[2618686.528] {Default Queue} wl_pointer#3529.motion(187310316, 23.39843750, 22.00000000) +[2618686.532] {Default Queue} wl_pointer#3561.motion(187310316, 23.39843750, 22.00000000) +[2618686.536] {Default Queue} wl_pointer#3593.motion(187310316, 23.39843750, 22.00000000) +[2618686.541] {Default Queue} wl_pointer#3625.motion(187310316, 23.39843750, 22.00000000) +[2618686.545] {Default Queue} wl_pointer#3657.motion(187310316, 23.39843750, 22.00000000) +[2618686.549] {Default Queue} wl_pointer#3695.motion(187310316, 23.39843750, 22.00000000) +[2618686.557] {Default Queue} -> wl_region#895.subtract(0, 0, 2, 2) +[2618686.563] {Default Queue} -> wl_region#895.add(0, 0, 2, 2) +[2618686.567] {Default Queue} -> wl_surface#871.set_opaque_region(wl_region#896) +[2618686.572] {Default Queue} -> wl_surface#871.set_input_region(wl_region#895) +[2618686.577] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) +[2618686.581] {Default Queue} -> wl_surface#871.commit() +[2618686.585] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) +[2618686.589] {Default Queue} -> wl_surface#871.commit() +[2618686.613] {Default Queue} wl_pointer#24.motion(187310321, 23.00000000, 19.60156250) +[2618686.619] {Default Queue} wl_pointer#81.motion(187310321, 23.00000000, 19.60156250) +[2618686.624] {Default Queue} wl_pointer#105.motion(187310321, 23.00000000, 19.60156250) +[2618686.632] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618686.639] {Default Queue} wl_pointer#137.motion(187310321, 23.00000000, 19.60156250) +[2618686.643] {Default Queue} wl_pointer#169.motion(187310321, 23.00000000, 19.60156250) +[2618686.648] {Default Queue} wl_pointer#201.motion(187310321, 23.00000000, 19.60156250) +[2618686.652] {Default Queue} wl_pointer#233.motion(187310321, 23.00000000, 19.60156250) +[2618686.656] {Default Queue} wl_pointer#265.motion(187310321, 23.00000000, 19.60156250) +[2618686.661] {Default Queue} wl_pointer#297.motion(187310321, 23.00000000, 19.60156250) +[2618686.665] {Default Queue} wl_pointer#329.motion(187310321, 23.00000000, 19.60156250) +[2618686.669] {Default Queue} wl_pointer#361.motion(187310321, 23.00000000, 19.60156250) +[2618686.673] {Default Queue} wl_pointer#393.motion(187310321, 23.00000000, 19.60156250) +[2618686.678] {Default Queue} wl_pointer#425.motion(187310321, 23.00000000, 19.60156250) +[2618686.682] {Default Queue} wl_pointer#457.motion(187310321, 23.00000000, 19.60156250) +[2618686.686] {Default Queue} wl_pointer#489.motion(187310321, 23.00000000, 19.60156250) +[2618686.691] {Default Queue} wl_pointer#521.motion(187310321, 23.00000000, 19.60156250) +[2618686.695] {Default Queue} wl_pointer#553.motion(187310321, 23.00000000, 19.60156250) +[2618686.700] {Default Queue} wl_pointer#585.motion(187310321, 23.00000000, 19.60156250) +[2618686.704] {Default Queue} wl_pointer#617.motion(187310321, 23.00000000, 19.60156250) +[2618686.708] {Default Queue} wl_pointer#649.motion(187310321, 23.00000000, 19.60156250) +[2618686.712] {Default Queue} wl_pointer#681.motion(187310321, 23.00000000, 19.60156250) +[2618686.717] {Default Queue} wl_pointer#713.motion(187310321, 23.00000000, 19.60156250) +[2618686.721] {Default Queue} wl_pointer#745.motion(187310321, 23.00000000, 19.60156250) +[2618686.725] {Default Queue} wl_pointer#777.motion(187310321, 23.00000000, 19.60156250) +[2618686.730] {Default Queue} wl_pointer#809.motion(187310321, 23.00000000, 19.60156250) +[2618686.734] {Default Queue} wl_pointer#841.motion(187310321, 23.00000000, 19.60156250) +[2618686.738] {Default Queue} wl_pointer#873.motion(187310321, 23.00000000, 19.60156250) +[2618686.742] {Default Queue} wl_pointer#905.motion(187310321, 23.00000000, 19.60156250) +[2618686.747] {Default Queue} wl_pointer#937.motion(187310321, 23.00000000, 19.60156250) +[2618686.751] {Default Queue} wl_pointer#969.motion(187310321, 23.00000000, 19.60156250) +[2618686.755] {Default Queue} wl_pointer#1001.motion(187310321, 23.00000000, 19.60156250) +[2618686.760] {Default Queue} wl_pointer#1033.motion(187310321, 23.00000000, 19.60156250) +[2618686.764] {Default Queue} wl_pointer#1065.motion(187310321, 23.00000000, 19.60156250) +[2618686.768] {Default Queue} wl_pointer#1097.motion(187310321, 23.00000000, 19.60156250) +[2618686.772] {Default Queue} wl_pointer#1129.motion(187310321, 23.00000000, 19.60156250) +[2618686.777] {Default Queue} wl_pointer#1161.motion(187310321, 23.00000000, 19.60156250) +[2618686.781] {Default Queue} wl_pointer#1193.motion(187310321, 23.00000000, 19.60156250) +[2618686.786] {Default Queue} wl_pointer#1225.motion(187310321, 23.00000000, 19.60156250) +[2618686.790] {Default Queue} wl_pointer#1257.motion(187310321, 23.00000000, 19.60156250) +[2618686.794] {Default Queue} wl_pointer#1289.motion(187310321, 23.00000000, 19.60156250) +[2618686.798] {Default Queue} wl_pointer#1321.motion(187310321, 23.00000000, 19.60156250) +[2618686.803] {Default Queue} wl_pointer#1353.motion(187310321, 23.00000000, 19.60156250) +[2618686.807] {Default Queue} wl_pointer#1385.motion(187310321, 23.00000000, 19.60156250) +[2618686.811] {Default Queue} wl_pointer#1417.motion(187310321, 23.00000000, 19.60156250) +[2618686.816] {Default Queue} wl_pointer#1449.motion(187310321, 23.00000000, 19.60156250) +[2618686.820] {Default Queue} wl_pointer#1481.motion(187310321, 23.00000000, 19.60156250) +[2618686.824] {Default Queue} wl_pointer#1513.motion(187310321, 23.00000000, 19.60156250) +[2618686.828] {Default Queue} wl_pointer#1545.motion(187310321, 23.00000000, 19.60156250) +[2618686.835] {Default Queue} wl_pointer#1577.motion(187310321, 23.00000000, 19.60156250) +[2618686.841] {Default Queue} wl_pointer#1609.motion(187310321, 23.00000000, 19.60156250) +[2618686.846] {Default Queue} wl_pointer#1641.motion(187310321, 23.00000000, 19.60156250) +[2618686.850] {Default Queue} wl_pointer#1673.motion(187310321, 23.00000000, 19.60156250) +[2618686.855] {Default Queue} wl_pointer#1705.motion(187310321, 23.00000000, 19.60156250) +[2618686.859] {Default Queue} wl_pointer#1737.motion(187310321, 23.00000000, 19.60156250) +[2618686.869] {Default Queue} wl_pointer#1762.motion(187310321, 23.00000000, 19.60156250) +[2618686.874] {Default Queue} wl_pointer#1801.motion(187310321, 23.00000000, 19.60156250) +[2618686.878] {Default Queue} wl_pointer#1833.motion(187310321, 23.00000000, 19.60156250) +[2618686.882] {Default Queue} wl_pointer#1865.motion(187310321, 23.00000000, 19.60156250) +[2618686.887] {Default Queue} wl_pointer#1897.motion(187310321, 23.00000000, 19.60156250) +[2618686.891] {Default Queue} wl_pointer#1929.motion(187310321, 23.00000000, 19.60156250) +[2618686.895] {Default Queue} wl_pointer#1961.motion(187310321, 23.00000000, 19.60156250) +[2618686.900] {Default Queue} wl_pointer#1993.motion(187310321, 23.00000000, 19.60156250) +[2618686.904] {Default Queue} wl_pointer#2025.motion(187310321, 23.00000000, 19.60156250) +[2618686.908] {Default Queue} wl_pointer#2057.motion(187310321, 23.00000000, 19.60156250) +[2618686.913] {Default Queue} wl_pointer#2089.motion(187310321, 23.00000000, 19.60156250) +[2618686.917] {Default Queue} wl_pointer#2121.motion(187310321, 23.00000000, 19.60156250) +[2618686.921] {Default Queue} wl_pointer#2153.motion(187310321, 23.00000000, 19.60156250) +[2618686.926] {Default Queue} wl_pointer#2185.motion(187310321, 23.00000000, 19.60156250) +[2618686.930] {Default Queue} wl_pointer#2217.motion(187310321, 23.00000000, 19.60156250) +[2618686.934] {Default Queue} wl_pointer#2249.motion(187310321, 23.00000000, 19.60156250) +[2618686.939] {Default Queue} wl_pointer#2281.motion(187310321, 23.00000000, 19.60156250) +[2618686.943] {Default Queue} wl_pointer#2313.motion(187310321, 23.00000000, 19.60156250) +[2618686.947] {Default Queue} wl_pointer#2345.motion(187310321, 23.00000000, 19.60156250) +[2618686.952] {Default Queue} wl_pointer#2377.motion(187310321, 23.00000000, 19.60156250) +[2618686.956] {Default Queue} wl_pointer#2409.motion(187310321, 23.00000000, 19.60156250) +[2618686.960] {Default Queue} wl_pointer#2441.motion(187310321, 23.00000000, 19.60156250) +[2618686.965] {Default Queue} wl_pointer#2473.motion(187310321, 23.00000000, 19.60156250) +[2618686.969] {Default Queue} wl_pointer#2498.motion(187310321, 23.00000000, 19.60156250) +[2618686.982] {Default Queue} -> wl_buffer#3674.destroy() +[2618686.986] {Default Queue} -> wl_buffer#3678.destroy() +[2618686.990] {Default Queue} -> wl_shm_pool#3677.destroy() +[2618686.994] {Default Queue} -> wl_shm_pool#3676.destroy() +[2618686.999] {Default Queue} -> wl_surface#3675.destroy() +[2618687.040] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3683, fd 575, 640) +[2618687.046] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 578, 640) +[2618687.051] {Default Queue} -> wl_shm_pool#3683.create_buffer(new id wl_buffer#91, 0, 10, 16, 40, 0) +[2618687.056] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) +[2618687.063] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#93) +[2618687.068] {Default Queue} -> wl_surface#93.attach(wl_buffer#91, 0, 0) +[2618687.072] {Default Queue} -> wl_surface#93.commit() +[2618687.077] {Default Queue} -> wl_surface#93.attach(wl_buffer#91, 0, 0) +[2618687.081] {Default Queue} -> wl_surface#93.commit() +[2618687.086] {Default Queue} wl_pointer#2537.motion(187310321, 23.00000000, 19.60156250) +[2618687.090] {Default Queue} wl_pointer#2569.motion(187310321, 23.00000000, 19.60156250) +[2618687.095] {Default Queue} wl_pointer#2601.motion(187310321, 23.00000000, 19.60156250) +[2618687.102] {Default Queue} wl_pointer#2633.motion(187310321, 23.00000000, 19.60156250) +[2618687.108] {Default Queue} wl_pointer#2665.motion(187310321, 23.00000000, 19.60156250) +[2618687.113] {Default Queue} wl_pointer#2697.motion(187310321, 23.00000000, 19.60156250) +[2618687.117] {Default Queue} wl_pointer#2729.motion(187310321, 23.00000000, 19.60156250) +[2618687.122] {Default Queue} wl_pointer#2761.motion(187310321, 23.00000000, 19.60156250) +[2618687.126] {Default Queue} wl_pointer#2793.motion(187310321, 23.00000000, 19.60156250) +[2618687.130] {Default Queue} wl_pointer#2825.motion(187310321, 23.00000000, 19.60156250) +[2618687.135] {Default Queue} wl_pointer#2857.motion(187310321, 23.00000000, 19.60156250) +[2618687.139] {Default Queue} wl_pointer#2889.motion(187310321, 23.00000000, 19.60156250) +[2618687.143] {Default Queue} wl_pointer#2921.motion(187310321, 23.00000000, 19.60156250) +[2618687.148] {Default Queue} wl_pointer#2953.motion(187310321, 23.00000000, 19.60156250) +[2618687.152] {Default Queue} wl_pointer#2985.motion(187310321, 23.00000000, 19.60156250) +[2618687.156] {Default Queue} wl_pointer#3017.motion(187310321, 23.00000000, 19.60156250) +[2618687.160] {Default Queue} wl_pointer#3049.motion(187310321, 23.00000000, 19.60156250) +[2618687.165] {Default Queue} wl_pointer#3081.motion(187310321, 23.00000000, 19.60156250) +[2618687.169] {Default Queue} wl_pointer#3113.motion(187310321, 23.00000000, 19.60156250) +[2618687.173] {Default Queue} wl_pointer#3145.motion(187310321, 23.00000000, 19.60156250) +[2618687.177] {Default Queue} wl_pointer#3177.motion(187310321, 23.00000000, 19.60156250) +[2618687.182] {Default Queue} wl_pointer#3209.motion(187310321, 23.00000000, 19.60156250) +[2618687.186] {Default Queue} wl_pointer#3241.motion(187310321, 23.00000000, 19.60156250) +[2618687.190] {Default Queue} wl_pointer#3273.motion(187310321, 23.00000000, 19.60156250) +[2618687.195] {Default Queue} wl_pointer#3305.motion(187310321, 23.00000000, 19.60156250) +[2618687.199] {Default Queue} wl_pointer#3337.motion(187310321, 23.00000000, 19.60156250) +[2618687.203] {Default Queue} wl_pointer#3369.motion(187310321, 23.00000000, 19.60156250) +[2618687.207] {Default Queue} wl_pointer#3401.motion(187310321, 23.00000000, 19.60156250) +[2618687.212] {Default Queue} wl_pointer#3433.motion(187310321, 23.00000000, 19.60156250) +[2618687.216] {Default Queue} wl_pointer#3465.motion(187310321, 23.00000000, 19.60156250) +[2618687.221] {Default Queue} wl_pointer#3497.motion(187310321, 23.00000000, 19.60156250) +[2618687.225] {Default Queue} wl_pointer#3529.motion(187310321, 23.00000000, 19.60156250) +[2618687.229] {Default Queue} wl_pointer#3561.motion(187310321, 23.00000000, 19.60156250) +[2618687.234] {Default Queue} wl_pointer#3593.motion(187310321, 23.00000000, 19.60156250) +[2618687.238] {Default Queue} wl_pointer#3625.motion(187310321, 23.00000000, 19.60156250) +[2618687.242] {Default Queue} wl_pointer#3657.motion(187310321, 23.00000000, 19.60156250) +[2618687.247] {Default Queue} wl_pointer#3695.motion(187310321, 23.00000000, 19.60156250) +[2618687.253] {Default Queue} wl_pointer#24.motion(187310321, 22.19921875, 16.39843750) +[2618687.259] {Default Queue} wl_pointer#81.motion(187310321, 22.19921875, 16.39843750) +[2618687.265] {Default Queue} wl_pointer#105.motion(187310321, 22.19921875, 16.39843750) +[2618687.272] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618687.277] {Default Queue} wl_pointer#137.motion(187310321, 22.19921875, 16.39843750) +[2618687.283] {Default Queue} wl_pointer#169.motion(187310321, 22.19921875, 16.39843750) +[2618687.289] {Default Queue} wl_pointer#201.motion(187310321, 22.19921875, 16.39843750) +[2618687.295] {Default Queue} wl_pointer#233.motion(187310321, 22.19921875, 16.39843750) +[2618687.300] {Default Queue} wl_pointer#265.motion(187310321, 22.19921875, 16.39843750) +[2618687.304] {Default Queue} wl_pointer#297.motion(187310321, 22.19921875, 16.39843750) +[2618687.308] {Default Queue} wl_pointer#329.motion(187310321, 22.19921875, 16.39843750) +[2618687.313] {Default Queue} wl_pointer#361.motion(187310321, 22.19921875, 16.39843750) +[2618687.320] {Default Queue} wl_pointer#393.motion(187310321, 22.19921875, 16.39843750) +[2618687.326] {Default Queue} wl_pointer#425.motion(187310321, 22.19921875, 16.39843750) +[2618687.330] {Default Queue} wl_pointer#457.motion(187310321, 22.19921875, 16.39843750) +[2618687.335] {Default Queue} wl_pointer#489.motion(187310321, 22.19921875, 16.39843750) +[2618687.340] {Default Queue} wl_pointer#521.motion(187310321, 22.19921875, 16.39843750) +[2618687.346] {Default Queue} wl_pointer#553.motion(187310321, 22.19921875, 16.39843750) +[2618687.352] {Default Queue} wl_pointer#585.motion(187310321, 22.19921875, 16.39843750) +[2618687.357] {Default Queue} wl_pointer#617.motion(187310321, 22.19921875, 16.39843750) +[2618687.363] {Default Queue} wl_pointer#649.motion(187310321, 22.19921875, 16.39843750) +[2618687.369] {Default Queue} wl_pointer#681.motion(187310321, 22.19921875, 16.39843750) +[2618687.373] {Default Queue} wl_pointer#713.motion(187310321, 22.19921875, 16.39843750) +[2618687.377] {Default Queue} wl_pointer#745.motion(187310321, 22.19921875, 16.39843750) +[2618687.382] {Default Queue} wl_pointer#777.motion(187310321, 22.19921875, 16.39843750) +[2618687.386] {Default Queue} wl_pointer#809.motion(187310321, 22.19921875, 16.39843750) +[2618687.390] {Default Queue} wl_pointer#841.motion(187310321, 22.19921875, 16.39843750) +[2618687.394] {Default Queue} wl_pointer#873.motion(187310321, 22.19921875, 16.39843750) +[2618687.399] {Default Queue} wl_pointer#905.motion(187310321, 22.19921875, 16.39843750) +[2618687.403] {Default Queue} wl_pointer#937.motion(187310321, 22.19921875, 16.39843750) +[2618687.407] {Default Queue} wl_pointer#969.motion(187310321, 22.19921875, 16.39843750) +[2618687.412] {Default Queue} wl_pointer#1001.motion(187310321, 22.19921875, 16.39843750) +[2618687.416] {Default Queue} wl_pointer#1033.motion(187310321, 22.19921875, 16.39843750) +[2618687.420] {Default Queue} wl_pointer#1065.motion(187310321, 22.19921875, 16.39843750) +[2618687.424] {Default Queue} wl_pointer#1097.motion(187310321, 22.19921875, 16.39843750) +[2618687.429] {Default Queue} wl_pointer#1129.motion(187310321, 22.19921875, 16.39843750) +[2618687.433] {Default Queue} wl_pointer#1161.motion(187310321, 22.19921875, 16.39843750) +[2618687.438] {Default Queue} wl_pointer#1193.motion(187310321, 22.19921875, 16.39843750) +[2618687.442] {Default Queue} wl_pointer#1225.motion(187310321, 22.19921875, 16.39843750) +[2618687.446] {Default Queue} wl_pointer#1257.motion(187310321, 22.19921875, 16.39843750) +[2618687.450] {Default Queue} wl_pointer#1289.motion(187310321, 22.19921875, 16.39843750) +[2618687.455] {Default Queue} wl_pointer#1321.motion(187310321, 22.19921875, 16.39843750) +[2618687.459] {Default Queue} wl_pointer#1353.motion(187310321, 22.19921875, 16.39843750) +[2618687.463] {Default Queue} wl_pointer#1385.motion(187310321, 22.19921875, 16.39843750) +[2618687.468] {Default Queue} wl_pointer#1417.motion(187310321, 22.19921875, 16.39843750) +[2618687.472] {Default Queue} wl_pointer#1449.motion(187310321, 22.19921875, 16.39843750) +[2618687.476] {Default Queue} wl_pointer#1481.motion(187310321, 22.19921875, 16.39843750) +[2618687.481] {Default Queue} wl_pointer#1513.motion(187310321, 22.19921875, 16.39843750) +[2618687.485] {Default Queue} wl_pointer#1545.motion(187310321, 22.19921875, 16.39843750) +[2618687.489] {Default Queue} wl_pointer#1577.motion(187310321, 22.19921875, 16.39843750) +[2618687.493] {Default Queue} wl_pointer#1609.motion(187310321, 22.19921875, 16.39843750) +[2618687.498] {Default Queue} wl_pointer#1641.motion(187310321, 22.19921875, 16.39843750) +[2618687.502] {Default Queue} wl_pointer#1673.motion(187310321, 22.19921875, 16.39843750) +[2618687.506] {Default Queue} wl_pointer#1705.motion(187310321, 22.19921875, 16.39843750) +[2618687.511] {Default Queue} wl_pointer#1737.motion(187310321, 22.19921875, 16.39843750) +[2618687.515] {Default Queue} wl_pointer#1762.motion(187310321, 22.19921875, 16.39843750) +[2618687.519] {Default Queue} wl_pointer#1801.motion(187310321, 22.19921875, 16.39843750) +[2618687.524] {Default Queue} wl_pointer#1833.motion(187310321, 22.19921875, 16.39843750) +[2618687.531] {Default Queue} wl_pointer#1865.motion(187310321, 22.19921875, 16.39843750) +[2618687.537] {Default Queue} wl_pointer#1897.motion(187310321, 22.19921875, 16.39843750) +[2618687.541] {Default Queue} wl_pointer#1929.motion(187310321, 22.19921875, 16.39843750) +[2618687.545] {Default Queue} wl_pointer#1961.motion(187310321, 22.19921875, 16.39843750) +[2618687.550] {Default Queue} wl_pointer#1993.motion(187310321, 22.19921875, 16.39843750) +[2618687.554] {Default Queue} wl_pointer#2025.motion(187310321, 22.19921875, 16.39843750) +[2618687.558] {Default Queue} wl_pointer#2057.motion(187310321, 22.19921875, 16.39843750) +[2618687.563] {Default Queue} wl_pointer#2089.motion(187310321, 22.19921875, 16.39843750) +[2618687.567] {Default Queue} wl_pointer#2121.motion(187310321, 22.19921875, 16.39843750) +[2618687.571] {Default Queue} wl_pointer#2153.motion(187310321, 22.19921875, 16.39843750) +[2618687.576] {Default Queue} wl_pointer#2185.motion(187310321, 22.19921875, 16.39843750) +[2618687.580] {Default Queue} wl_pointer#2217.motion(187310321, 22.19921875, 16.39843750) +[2618687.584] {Default Queue} wl_pointer#2249.motion(187310321, 22.19921875, 16.39843750) +[2618687.588] {Default Queue} wl_pointer#2281.motion(187310321, 22.19921875, 16.39843750) +[2618687.593] {Default Queue} wl_pointer#2313.motion(187310321, 22.19921875, 16.39843750) +[2618687.597] {Default Queue} wl_pointer#2345.motion(187310321, 22.19921875, 16.39843750) +[2618687.602] {Default Queue} wl_pointer#2377.motion(187310321, 22.19921875, 16.39843750) +[2618687.606] {Default Queue} wl_pointer#2409.motion(187310321, 22.19921875, 16.39843750) +[2618687.610] {Default Queue} wl_pointer#2441.motion(187310321, 22.19921875, 16.39843750) +[2618687.614] {Default Queue} wl_pointer#2473.motion(187310321, 22.19921875, 16.39843750) +[2618687.619] {Default Queue} wl_pointer#2498.motion(187310321, 22.19921875, 16.39843750) +[2618687.630] {Default Queue} -> wl_buffer#91.destroy() +[2618687.635] {Default Queue} -> wl_buffer#94.destroy() +[2618687.639] {Default Queue} -> wl_shm_pool#3683.destroy() +[2618687.643] {Default Queue} -> wl_shm_pool#92.destroy() +[2618687.648] {Default Queue} -> wl_surface#93.destroy() +[2618687.683] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3483, fd 581, 640) +[2618687.690] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3486, fd 582, 640) +[2618687.694] {Default Queue} -> wl_shm_pool#3483.create_buffer(new id wl_buffer#3485, 0, 10, 16, 40, 0) +[2618687.699] {Default Queue} -> wl_shm_pool#3486.create_buffer(new id wl_buffer#3516, 0, 10, 16, 40, 0) +[2618687.706] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3515) +[2618687.710] {Default Queue} -> wl_surface#3515.attach(wl_buffer#3485, 0, 0) +[2618687.715] {Default Queue} -> wl_surface#3515.commit() +[2618687.720] {Default Queue} -> wl_surface#3515.attach(wl_buffer#3485, 0, 0) +[2618687.724] {Default Queue} -> wl_surface#3515.commit() +[2618687.728] {Default Queue} wl_pointer#2537.motion(187310321, 22.19921875, 16.39843750) +[2618687.733] {Default Queue} wl_pointer#2569.motion(187310321, 22.19921875, 16.39843750) +[2618687.737] {Default Queue} wl_pointer#2601.motion(187310321, 22.19921875, 16.39843750) +[2618687.742] {Default Queue} wl_pointer#2633.motion(187310321, 22.19921875, 16.39843750) +[2618687.746] {Default Queue} wl_pointer#2665.motion(187310321, 22.19921875, 16.39843750) +[2618687.750] {Default Queue} wl_pointer#2697.motion(187310321, 22.19921875, 16.39843750) +[2618687.754] {Default Queue} wl_pointer#2729.motion(187310321, 22.19921875, 16.39843750) +[2618687.759] {Default Queue} wl_pointer#2761.motion(187310321, 22.19921875, 16.39843750) +[2618687.763] {Default Queue} wl_pointer#2793.motion(187310321, 22.19921875, 16.39843750) +[2618687.767] {Default Queue} wl_pointer#2825.motion(187310321, 22.19921875, 16.39843750) +[2618687.772] {Default Queue} wl_pointer#2857.motion(187310321, 22.19921875, 16.39843750) +[2618687.776] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) +[2618687.781] {Default Queue} -> wl_surface#871.commit() +[2618688.850] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) +[2618688.857] {Default Queue} -> wl_surface#871.commit() +[2618688.867] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) +[2618688.872] {Default Queue} -> wl_surface#871.commit() +[2618688.880] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) +[2618688.887] {Default Queue} -> wl_surface#2183.commit() +[2618689.948] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) +[2618689.953] {Default Queue} -> wl_surface#2183.commit() +[2618689.964] {Default Queue} -> wl_region#2207.subtract(0, 0, 19, 48) +[2618689.969] {Default Queue} -> wl_region#2207.add(-20, -49, 19, 48) +[2618689.973] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2618689.977] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2618690.072] {Default Queue} -> wl_region#2207.subtract(0, 0, 19, 48) +[2618690.077] {Default Queue} -> wl_region#2207.add(-20, -49, 19, 48) +[2618690.081] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2618690.086] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2618690.093] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618690.097] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618690.154] {Default Queue} -> wl_region#2207.subtract(0, 0, 19, 48) +[2618690.159] {Default Queue} -> wl_region#2207.add(-20, -49, 19, 48) +[2618690.163] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2618690.167] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2618690.172] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618690.176] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618690.181] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) +[2618690.185] {Default Queue} -> wl_surface#2183.commit() +[2618690.189] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) +[2618690.194] {Default Queue} -> wl_surface#2183.commit() +[2618690.199] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) +[2618690.204] {Default Queue} -> wl_surface#2183.commit() +[2618690.210] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618690.214] {Default Queue} -> wl_surface#2279.commit() +[2618691.276] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618691.282] {Default Queue} -> wl_surface#2279.commit() +[2618691.289] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618691.294] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618691.298] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618691.302] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618691.311] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618691.315] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618691.319] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618691.323] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618691.328] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618691.332] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618691.337] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618691.340] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618691.345] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618691.349] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618691.353] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618691.357] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618691.362] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618691.366] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618691.370] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618691.374] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618691.381] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618691.390] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618691.396] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618691.400] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618691.405] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618691.409] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618691.413] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618691.417] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618691.422] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618691.426] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618691.430] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618691.434] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618691.438] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618691.443] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618691.447] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618691.451] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618691.462] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618691.466] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618691.471] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618691.474] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618691.479] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618691.483] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618691.487] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618691.491] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618691.496] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618691.500] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618691.504] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618691.508] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618691.513] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618691.517] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618691.521] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618691.525] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618691.531] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618691.535] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618691.539] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618691.543] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618691.549] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618691.554] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618691.558] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618691.562] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618691.567] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618691.571] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618691.575] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618691.579] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618691.584] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618691.589] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618691.593] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618691.597] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618691.601] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618691.606] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618691.610] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618691.614] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618691.620] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) +[2618691.625] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) +[2618691.629] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618691.636] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618691.649] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618691.654] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618691.659] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618691.663] {Default Queue} -> wl_surface#2279.commit() +[2618691.667] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618691.671] {Default Queue} -> wl_surface#2279.commit() +[2618691.677] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618691.681] {Default Queue} -> wl_surface#2279.commit() +[2618691.687] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) +[2618691.691] {Default Queue} -> wl_surface#2311.commit() +[2618691.978] {Display Queue} wl_display#1.delete_id(3454) +[2618691.984] {Display Queue} wl_display#1.delete_id(3451) +[2618691.988] {Display Queue} wl_display#1.delete_id(3452) +[2618691.992] {Display Queue} wl_display#1.delete_id(3517) +[2618691.996] {Display Queue} wl_display#1.delete_id(3518) +[2618692.000] {Display Queue} wl_display#1.delete_id(3682) +[2618692.004] {Display Queue} wl_display#1.delete_id(3681) +[2618692.008] {Display Queue} wl_display#1.delete_id(3671) +[2618692.012] {Display Queue} wl_display#1.delete_id(3679) +[2618692.016] {Display Queue} wl_display#1.delete_id(3684) +[2618692.020] {Display Queue} wl_display#1.delete_id(3484) +[2618692.024] {Display Queue} wl_display#1.delete_id(3293) +[2618692.028] {Display Queue} wl_display#1.delete_id(3294) +[2618692.032] {Display Queue} wl_display#1.delete_id(3291) +[2618692.036] {Display Queue} wl_display#1.delete_id(3292) +[2618692.040] {Default Queue} wl_pointer#2889.motion(187310321, 22.19921875, 16.39843750) +[2618692.045] {Default Queue} wl_pointer#2921.motion(187310321, 22.19921875, 16.39843750) +[2618692.049] {Default Queue} wl_pointer#2953.motion(187310321, 22.19921875, 16.39843750) +[2618692.053] {Default Queue} wl_pointer#2985.motion(187310321, 22.19921875, 16.39843750) +[2618692.058] {Default Queue} wl_pointer#3017.motion(187310321, 22.19921875, 16.39843750) +[2618692.062] {Default Queue} wl_pointer#3049.motion(187310321, 22.19921875, 16.39843750) +[2618692.066] {Default Queue} wl_pointer#3081.motion(187310321, 22.19921875, 16.39843750) +[2618692.071] {Default Queue} wl_pointer#3113.motion(187310321, 22.19921875, 16.39843750) +[2618692.075] {Default Queue} wl_pointer#3145.motion(187310321, 22.19921875, 16.39843750) +[2618692.079] {Default Queue} wl_pointer#3177.motion(187310321, 22.19921875, 16.39843750) +[2618692.084] {Default Queue} wl_pointer#3209.motion(187310321, 22.19921875, 16.39843750) +[2618692.088] {Default Queue} wl_pointer#3241.motion(187310321, 22.19921875, 16.39843750) +[2618692.093] {Default Queue} wl_pointer#3273.motion(187310321, 22.19921875, 16.39843750) +[2618692.097] {Default Queue} wl_pointer#3305.motion(187310321, 22.19921875, 16.39843750) +[2618692.101] {Default Queue} wl_pointer#3337.motion(187310321, 22.19921875, 16.39843750) +[2618692.105] {Default Queue} wl_pointer#3369.motion(187310321, 22.19921875, 16.39843750) +[2618692.110] {Default Queue} wl_pointer#3401.motion(187310321, 22.19921875, 16.39843750) +[2618692.114] {Default Queue} wl_pointer#3433.motion(187310321, 22.19921875, 16.39843750) +[2618692.119] {Default Queue} wl_pointer#3465.motion(187310321, 22.19921875, 16.39843750) +[2618692.123] {Default Queue} wl_pointer#3497.motion(187310321, 22.19921875, 16.39843750) +[2618692.128] {Default Queue} wl_pointer#3529.motion(187310321, 22.19921875, 16.39843750) +[2618692.132] {Default Queue} wl_pointer#3561.motion(187310321, 22.19921875, 16.39843750) +[2618692.136] {Default Queue} wl_pointer#3593.motion(187310321, 22.19921875, 16.39843750) +[2618692.141] {Default Queue} wl_pointer#3625.motion(187310321, 22.19921875, 16.39843750) +[2618692.145] {Default Queue} wl_pointer#3657.motion(187310321, 22.19921875, 16.39843750) +[2618692.149] {Default Queue} wl_pointer#3695.motion(187310321, 22.19921875, 16.39843750) +[2618692.154] {Default Queue} wl_pointer#24.motion(187310321, 21.80078125, 13.60156250) +[2618692.161] {Default Queue} wl_pointer#81.motion(187310321, 21.80078125, 13.60156250) +[2618692.168] {Default Queue} wl_pointer#105.motion(187310321, 21.80078125, 13.60156250) +[2618692.173] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618692.177] {Default Queue} wl_pointer#137.motion(187310321, 21.80078125, 13.60156250) +[2618692.181] {Default Queue} wl_pointer#169.motion(187310321, 21.80078125, 13.60156250) +[2618692.186] {Default Queue} wl_pointer#201.motion(187310321, 21.80078125, 13.60156250) +[2618692.190] {Default Queue} wl_pointer#233.motion(187310321, 21.80078125, 13.60156250) +[2618692.194] {Default Queue} wl_pointer#265.motion(187310321, 21.80078125, 13.60156250) +[2618692.199] {Default Queue} wl_pointer#297.motion(187310321, 21.80078125, 13.60156250) +[2618692.203] {Default Queue} wl_pointer#329.motion(187310321, 21.80078125, 13.60156250) +[2618692.207] {Default Queue} wl_pointer#361.motion(187310321, 21.80078125, 13.60156250) +[2618692.211] {Default Queue} wl_pointer#393.motion(187310321, 21.80078125, 13.60156250) +[2618692.216] {Default Queue} wl_pointer#425.motion(187310321, 21.80078125, 13.60156250) +[2618692.220] {Default Queue} wl_pointer#457.motion(187310321, 21.80078125, 13.60156250) +[2618692.224] {Default Queue} wl_pointer#489.motion(187310321, 21.80078125, 13.60156250) +[2618692.229] {Default Queue} wl_pointer#521.motion(187310321, 21.80078125, 13.60156250) +[2618692.233] {Default Queue} wl_pointer#553.motion(187310321, 21.80078125, 13.60156250) +[2618692.237] {Default Queue} wl_pointer#585.motion(187310321, 21.80078125, 13.60156250) +[2618692.242] {Default Queue} wl_pointer#617.motion(187310321, 21.80078125, 13.60156250) +[2618692.246] {Default Queue} wl_pointer#649.motion(187310321, 21.80078125, 13.60156250) +[2618692.250] {Default Queue} wl_pointer#681.motion(187310321, 21.80078125, 13.60156250) +[2618692.254] {Default Queue} wl_pointer#713.motion(187310321, 21.80078125, 13.60156250) +[2618692.259] {Default Queue} wl_pointer#745.motion(187310321, 21.80078125, 13.60156250) +[2618692.263] {Default Queue} wl_pointer#777.motion(187310321, 21.80078125, 13.60156250) +[2618692.268] {Default Queue} wl_pointer#809.motion(187310321, 21.80078125, 13.60156250) +[2618692.272] {Default Queue} wl_pointer#841.motion(187310321, 21.80078125, 13.60156250) +[2618692.276] {Default Queue} wl_pointer#873.motion(187310321, 21.80078125, 13.60156250) +[2618692.281] {Default Queue} wl_pointer#905.motion(187310321, 21.80078125, 13.60156250) +[2618692.285] {Default Queue} wl_pointer#937.motion(187310321, 21.80078125, 13.60156250) +[2618692.289] {Default Queue} wl_pointer#969.motion(187310321, 21.80078125, 13.60156250) +[2618692.293] {Default Queue} wl_pointer#1001.motion(187310321, 21.80078125, 13.60156250) +[2618692.298] {Default Queue} wl_pointer#1033.motion(187310321, 21.80078125, 13.60156250) +[2618692.303] {Default Queue} wl_pointer#1065.motion(187310321, 21.80078125, 13.60156250) +[2618692.308] {Default Queue} wl_pointer#1097.motion(187310321, 21.80078125, 13.60156250) +[2618692.314] {Default Queue} wl_pointer#1129.motion(187310321, 21.80078125, 13.60156250) +[2618692.320] {Default Queue} wl_pointer#1161.motion(187310321, 21.80078125, 13.60156250) +[2618692.326] {Default Queue} wl_pointer#1193.motion(187310321, 21.80078125, 13.60156250) +[2618692.331] {Default Queue} wl_pointer#1225.motion(187310321, 21.80078125, 13.60156250) +[2618692.338] {Default Queue} wl_pointer#1257.motion(187310321, 21.80078125, 13.60156250) +[2618692.344] {Default Queue} wl_pointer#1289.motion(187310321, 21.80078125, 13.60156250) +[2618692.350] {Default Queue} wl_pointer#1321.motion(187310321, 21.80078125, 13.60156250) +[2618692.356] {Default Queue} wl_pointer#1353.motion(187310321, 21.80078125, 13.60156250) +[2618692.362] {Default Queue} wl_pointer#1385.motion(187310321, 21.80078125, 13.60156250) +[2618692.368] {Default Queue} wl_pointer#1417.motion(187310321, 21.80078125, 13.60156250) +[2618692.373] {Default Queue} wl_pointer#1449.motion(187310321, 21.80078125, 13.60156250) +[2618692.378] {Default Queue} wl_pointer#1481.motion(187310321, 21.80078125, 13.60156250) +[2618692.385] {Default Queue} wl_pointer#1513.motion(187310321, 21.80078125, 13.60156250) +[2618692.391] {Default Queue} wl_pointer#1545.motion(187310321, 21.80078125, 13.60156250) +[2618692.396] {Default Queue} wl_pointer#1577.motion(187310321, 21.80078125, 13.60156250) +[2618692.400] {Default Queue} wl_pointer#1609.motion(187310321, 21.80078125, 13.60156250) +[2618692.404] {Default Queue} wl_pointer#1641.motion(187310321, 21.80078125, 13.60156250) +[2618692.409] {Default Queue} wl_pointer#1673.motion(187310321, 21.80078125, 13.60156250) +[2618692.413] {Default Queue} wl_pointer#1705.motion(187310321, 21.80078125, 13.60156250) +[2618692.417] {Default Queue} wl_pointer#1737.motion(187310321, 21.80078125, 13.60156250) +[2618692.422] {Default Queue} wl_pointer#1762.motion(187310321, 21.80078125, 13.60156250) +[2618692.426] {Default Queue} wl_pointer#1801.motion(187310321, 21.80078125, 13.60156250) +[2618692.430] {Default Queue} wl_pointer#1833.motion(187310321, 21.80078125, 13.60156250) +[2618692.435] {Default Queue} wl_pointer#1865.motion(187310321, 21.80078125, 13.60156250) +[2618692.439] {Default Queue} wl_pointer#1897.motion(187310321, 21.80078125, 13.60156250) +[2618692.443] {Default Queue} wl_pointer#1929.motion(187310321, 21.80078125, 13.60156250) +[2618692.448] {Default Queue} wl_pointer#1961.motion(187310321, 21.80078125, 13.60156250) +[2618692.452] {Default Queue} wl_pointer#1993.motion(187310321, 21.80078125, 13.60156250) +[2618692.456] {Default Queue} wl_pointer#2025.motion(187310321, 21.80078125, 13.60156250) +[2618692.460] {Default Queue} wl_pointer#2057.motion(187310321, 21.80078125, 13.60156250) +[2618692.465] {Default Queue} wl_pointer#2089.motion(187310321, 21.80078125, 13.60156250) +[2618692.469] {Default Queue} wl_pointer#2121.motion(187310321, 21.80078125, 13.60156250) +[2618692.473] {Default Queue} wl_pointer#2153.motion(187310321, 21.80078125, 13.60156250) +[2618692.478] {Default Queue} wl_pointer#2185.motion(187310321, 21.80078125, 13.60156250) +[2618692.482] {Default Queue} wl_pointer#2217.motion(187310321, 21.80078125, 13.60156250) +[2618692.486] {Default Queue} wl_pointer#2249.motion(187310321, 21.80078125, 13.60156250) +[2618692.490] {Default Queue} wl_pointer#2281.motion(187310321, 21.80078125, 13.60156250) +[2618692.495] {Default Queue} wl_pointer#2313.motion(187310321, 21.80078125, 13.60156250) +[2618692.499] {Default Queue} wl_pointer#2345.motion(187310321, 21.80078125, 13.60156250) +[2618692.504] {Default Queue} wl_pointer#2377.motion(187310321, 21.80078125, 13.60156250) +[2618692.508] {Default Queue} wl_pointer#2409.motion(187310321, 21.80078125, 13.60156250) +[2618692.512] {Default Queue} wl_pointer#2441.motion(187310321, 21.80078125, 13.60156250) +[2618692.517] {Default Queue} wl_pointer#2473.motion(187310321, 21.80078125, 13.60156250) +[2618692.521] {Default Queue} wl_pointer#2498.motion(187310321, 21.80078125, 13.60156250) +[2618692.532] {Default Queue} -> wl_buffer#3485.destroy() +[2618692.539] {Default Queue} -> wl_buffer#3516.destroy() +[2618692.543] {Default Queue} -> wl_shm_pool#3483.destroy() +[2618692.547] {Default Queue} -> wl_shm_pool#3486.destroy() +[2618692.552] {Default Queue} -> wl_surface#3515.destroy() +[2618692.591] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3292, fd 575, 640) +[2618692.597] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 578, 640) +[2618692.602] {Default Queue} -> wl_shm_pool#3292.create_buffer(new id wl_buffer#3294, 0, 10, 16, 40, 0) +[2618692.606] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) +[2618692.614] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3484) +[2618692.618] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) +[2618692.622] {Default Queue} -> wl_surface#3484.commit() +[2618692.628] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) +[2618692.632] {Default Queue} -> wl_surface#3484.commit() +[2618692.636] {Default Queue} wl_pointer#2537.motion(187310321, 21.80078125, 13.60156250) +[2618692.644] {Default Queue} wl_pointer#2569.motion(187310321, 21.80078125, 13.60156250) +[2618692.650] {Default Queue} wl_pointer#2601.motion(187310321, 21.80078125, 13.60156250) +[2618692.654] {Default Queue} wl_pointer#2633.motion(187310321, 21.80078125, 13.60156250) +[2618692.659] {Default Queue} wl_pointer#2665.motion(187310321, 21.80078125, 13.60156250) +[2618692.663] {Default Queue} wl_pointer#2697.motion(187310321, 21.80078125, 13.60156250) +[2618692.667] {Default Queue} wl_pointer#2729.motion(187310321, 21.80078125, 13.60156250) +[2618692.672] {Default Queue} wl_pointer#2761.motion(187310321, 21.80078125, 13.60156250) +[2618692.676] {Default Queue} wl_pointer#2793.motion(187310321, 21.80078125, 13.60156250) +[2618692.680] {Default Queue} wl_pointer#2825.motion(187310321, 21.80078125, 13.60156250) +[2618692.685] {Default Queue} wl_pointer#2857.motion(187310321, 21.80078125, 13.60156250) +[2618692.690] {Default Queue} wl_pointer#2889.motion(187310321, 21.80078125, 13.60156250) +[2618692.696] {Default Queue} wl_pointer#2921.motion(187310321, 21.80078125, 13.60156250) +[2618692.702] {Default Queue} wl_pointer#2953.motion(187310321, 21.80078125, 13.60156250) +[2618692.707] {Default Queue} wl_pointer#2985.motion(187310321, 21.80078125, 13.60156250) +[2618692.713] {Default Queue} wl_pointer#3017.motion(187310321, 21.80078125, 13.60156250) +[2618692.719] {Default Queue} wl_pointer#3049.motion(187310321, 21.80078125, 13.60156250) +[2618692.725] {Default Queue} wl_pointer#3081.motion(187310321, 21.80078125, 13.60156250) +[2618692.730] {Default Queue} wl_pointer#3113.motion(187310321, 21.80078125, 13.60156250) +[2618692.736] {Default Queue} wl_pointer#3145.motion(187310321, 21.80078125, 13.60156250) +[2618692.741] {Default Queue} wl_pointer#3177.motion(187310321, 21.80078125, 13.60156250) +[2618692.746] {Default Queue} wl_pointer#3209.motion(187310321, 21.80078125, 13.60156250) +[2618692.752] {Default Queue} wl_pointer#3241.motion(187310321, 21.80078125, 13.60156250) +[2618692.757] {Default Queue} wl_pointer#3273.motion(187310321, 21.80078125, 13.60156250) +[2618692.761] {Default Queue} wl_pointer#3305.motion(187310321, 21.80078125, 13.60156250) +[2618692.766] {Default Queue} wl_pointer#3337.motion(187310321, 21.80078125, 13.60156250) +[2618692.770] {Default Queue} wl_pointer#3369.motion(187310321, 21.80078125, 13.60156250) +[2618692.774] {Default Queue} wl_pointer#3401.motion(187310321, 21.80078125, 13.60156250) +[2618692.779] {Default Queue} wl_pointer#3433.motion(187310321, 21.80078125, 13.60156250) +[2618692.783] {Default Queue} wl_pointer#3465.motion(187310321, 21.80078125, 13.60156250) +[2618692.788] {Default Queue} wl_pointer#3497.motion(187310321, 21.80078125, 13.60156250) +[2618692.792] {Default Queue} wl_pointer#3529.motion(187310321, 21.80078125, 13.60156250) +[2618692.796] {Default Queue} wl_pointer#3561.motion(187310321, 21.80078125, 13.60156250) +[2618692.801] {Default Queue} wl_pointer#3593.motion(187310321, 21.80078125, 13.60156250) +[2618692.805] {Default Queue} wl_pointer#3625.motion(187310321, 21.80078125, 13.60156250) +[2618692.809] {Default Queue} wl_pointer#3657.motion(187310321, 21.80078125, 13.60156250) +[2618692.813] {Default Queue} wl_pointer#3695.motion(187310321, 21.80078125, 13.60156250) +[2618692.823] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618692.828] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618692.832] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618692.836] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618692.847] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618692.852] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618692.856] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618692.860] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618692.870] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618692.875] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618692.879] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618692.886] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618692.893] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618692.897] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618692.901] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618692.905] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618692.910] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618692.914] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618692.918] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618692.922] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618692.926] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618692.931] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618692.935] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618692.939] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618692.979] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618692.984] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618692.988] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618692.992] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618692.999] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618693.003] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618693.012] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618693.016] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618693.021] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618693.025] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618693.029] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618693.034] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618693.038] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618693.042] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618693.046] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618693.051] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618693.055] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618693.059] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618693.064] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) +[2618693.068] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) +[2618693.072] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618693.076] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618693.081] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) +[2618693.085] {Default Queue} -> wl_surface#2311.commit() +[2618693.089] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) +[2618693.093] {Default Queue} -> wl_surface#2311.commit() +[2618693.120] {Default Queue} wl_pointer#24.motion(187310327, 21.00000000, 10.80078125) +[2618693.125] {Default Queue} wl_pointer#81.motion(187310327, 21.00000000, 10.80078125) +[2618693.132] {Default Queue} wl_pointer#105.motion(187310327, 21.00000000, 10.80078125) +[2618693.138] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618693.144] {Default Queue} wl_pointer#137.motion(187310327, 21.00000000, 10.80078125) +[2618693.149] {Default Queue} wl_pointer#169.motion(187310327, 21.00000000, 10.80078125) +[2618693.155] {Default Queue} wl_pointer#201.motion(187310327, 21.00000000, 10.80078125) +[2618693.161] {Default Queue} wl_pointer#233.motion(187310327, 21.00000000, 10.80078125) +[2618693.166] {Default Queue} wl_pointer#265.motion(187310327, 21.00000000, 10.80078125) +[2618693.172] {Default Queue} wl_pointer#297.motion(187310327, 21.00000000, 10.80078125) +[2618693.178] {Default Queue} wl_pointer#329.motion(187310327, 21.00000000, 10.80078125) +[2618693.184] {Default Queue} wl_pointer#361.motion(187310327, 21.00000000, 10.80078125) +[2618693.189] {Default Queue} wl_pointer#393.motion(187310327, 21.00000000, 10.80078125) +[2618693.197] {Default Queue} wl_pointer#425.motion(187310327, 21.00000000, 10.80078125) +[2618693.203] {Default Queue} wl_pointer#457.motion(187310327, 21.00000000, 10.80078125) +[2618693.208] {Default Queue} wl_pointer#489.motion(187310327, 21.00000000, 10.80078125) +[2618693.212] {Default Queue} wl_pointer#521.motion(187310327, 21.00000000, 10.80078125) +[2618693.216] {Default Queue} wl_pointer#553.motion(187310327, 21.00000000, 10.80078125) +[2618693.221] {Default Queue} wl_pointer#585.motion(187310327, 21.00000000, 10.80078125) +[2618693.225] {Default Queue} wl_pointer#617.motion(187310327, 21.00000000, 10.80078125) +[2618693.230] {Default Queue} wl_pointer#649.motion(187310327, 21.00000000, 10.80078125) +[2618693.234] {Default Queue} wl_pointer#681.motion(187310327, 21.00000000, 10.80078125) +[2618693.238] {Default Queue} wl_pointer#713.motion(187310327, 21.00000000, 10.80078125) +[2618693.242] {Default Queue} wl_pointer#745.motion(187310327, 21.00000000, 10.80078125) +[2618693.247] {Default Queue} wl_pointer#777.motion(187310327, 21.00000000, 10.80078125) +[2618693.251] {Default Queue} wl_pointer#809.motion(187310327, 21.00000000, 10.80078125) +[2618693.255] {Default Queue} wl_pointer#841.motion(187310327, 21.00000000, 10.80078125) +[2618693.259] {Default Queue} wl_pointer#873.motion(187310327, 21.00000000, 10.80078125) +[2618693.264] {Default Queue} wl_pointer#905.motion(187310327, 21.00000000, 10.80078125) +[2618693.268] {Default Queue} wl_pointer#937.motion(187310327, 21.00000000, 10.80078125) +[2618693.272] {Default Queue} wl_pointer#969.motion(187310327, 21.00000000, 10.80078125) +[2618693.277] {Default Queue} wl_pointer#1001.motion(187310327, 21.00000000, 10.80078125) +[2618693.281] {Default Queue} wl_pointer#1033.motion(187310327, 21.00000000, 10.80078125) +[2618693.285] {Default Queue} wl_pointer#1065.motion(187310327, 21.00000000, 10.80078125) +[2618693.290] {Default Queue} wl_pointer#1097.motion(187310327, 21.00000000, 10.80078125) +[2618693.294] {Default Queue} wl_pointer#1129.motion(187310327, 21.00000000, 10.80078125) +[2618693.298] {Default Queue} wl_pointer#1161.motion(187310327, 21.00000000, 10.80078125) +[2618693.302] {Default Queue} wl_pointer#1193.motion(187310327, 21.00000000, 10.80078125) +[2618693.307] {Default Queue} wl_pointer#1225.motion(187310327, 21.00000000, 10.80078125) +[2618693.311] {Default Queue} wl_pointer#1257.motion(187310327, 21.00000000, 10.80078125) +[2618693.315] {Default Queue} wl_pointer#1289.motion(187310327, 21.00000000, 10.80078125) +[2618693.320] {Default Queue} wl_pointer#1321.motion(187310327, 21.00000000, 10.80078125) +[2618693.324] {Default Queue} wl_pointer#1353.motion(187310327, 21.00000000, 10.80078125) +[2618693.328] {Default Queue} wl_pointer#1385.motion(187310327, 21.00000000, 10.80078125) +[2618693.332] {Default Queue} wl_pointer#1417.motion(187310327, 21.00000000, 10.80078125) +[2618693.337] {Default Queue} wl_pointer#1449.motion(187310327, 21.00000000, 10.80078125) +[2618693.341] {Default Queue} wl_pointer#1481.motion(187310327, 21.00000000, 10.80078125) +[2618693.345] {Default Queue} wl_pointer#1513.motion(187310327, 21.00000000, 10.80078125) +[2618693.349] {Default Queue} wl_pointer#1545.motion(187310327, 21.00000000, 10.80078125) +[2618693.354] {Default Queue} wl_pointer#1577.motion(187310327, 21.00000000, 10.80078125) +[2618693.358] {Default Queue} wl_pointer#1609.motion(187310327, 21.00000000, 10.80078125) +[2618693.362] {Default Queue} wl_pointer#1641.motion(187310327, 21.00000000, 10.80078125) +[2618693.367] {Default Queue} wl_pointer#1673.motion(187310327, 21.00000000, 10.80078125) +[2618693.371] {Default Queue} wl_pointer#1705.motion(187310327, 21.00000000, 10.80078125) +[2618693.376] {Default Queue} wl_pointer#1737.motion(187310327, 21.00000000, 10.80078125) +[2618693.380] {Default Queue} wl_pointer#1762.motion(187310327, 21.00000000, 10.80078125) +[2618693.384] {Default Queue} wl_pointer#1801.motion(187310327, 21.00000000, 10.80078125) +[2618693.389] {Default Queue} wl_pointer#1833.motion(187310327, 21.00000000, 10.80078125) +[2618693.393] {Default Queue} wl_pointer#1865.motion(187310327, 21.00000000, 10.80078125) +[2618693.401] {Default Queue} wl_pointer#1897.motion(187310327, 21.00000000, 10.80078125) +[2618693.406] {Default Queue} wl_pointer#1929.motion(187310327, 21.00000000, 10.80078125) +[2618693.411] {Default Queue} wl_pointer#1961.motion(187310327, 21.00000000, 10.80078125) +[2618693.415] {Default Queue} wl_pointer#1993.motion(187310327, 21.00000000, 10.80078125) +[2618693.419] {Default Queue} wl_pointer#2025.motion(187310327, 21.00000000, 10.80078125) +[2618693.423] {Default Queue} wl_pointer#2057.motion(187310327, 21.00000000, 10.80078125) +[2618693.428] {Default Queue} wl_pointer#2089.motion(187310327, 21.00000000, 10.80078125) +[2618693.432] {Default Queue} wl_pointer#2121.motion(187310327, 21.00000000, 10.80078125) +[2618693.436] {Default Queue} wl_pointer#2153.motion(187310327, 21.00000000, 10.80078125) +[2618693.441] {Default Queue} wl_pointer#2185.motion(187310327, 21.00000000, 10.80078125) +[2618693.445] {Default Queue} wl_pointer#2217.motion(187310327, 21.00000000, 10.80078125) +[2618693.449] {Default Queue} wl_pointer#2249.motion(187310327, 21.00000000, 10.80078125) +[2618693.453] {Default Queue} wl_pointer#2281.motion(187310327, 21.00000000, 10.80078125) +[2618693.458] {Default Queue} wl_pointer#2313.motion(187310327, 21.00000000, 10.80078125) +[2618693.462] {Default Queue} wl_pointer#2345.motion(187310327, 21.00000000, 10.80078125) +[2618693.467] {Default Queue} wl_pointer#2377.motion(187310327, 21.00000000, 10.80078125) +[2618693.471] {Default Queue} wl_pointer#2409.motion(187310327, 21.00000000, 10.80078125) +[2618693.475] {Default Queue} wl_pointer#2441.motion(187310327, 21.00000000, 10.80078125) +[2618693.480] {Default Queue} wl_pointer#2473.motion(187310327, 21.00000000, 10.80078125) +[2618693.484] {Default Queue} wl_pointer#2498.motion(187310327, 21.00000000, 10.80078125) +[2618693.496] {Default Queue} -> wl_buffer#3294.destroy() +[2618693.501] {Default Queue} -> wl_buffer#3293.destroy() +[2618693.505] {Default Queue} -> wl_shm_pool#3292.destroy() +[2618693.509] {Default Queue} -> wl_shm_pool#3291.destroy() +[2618693.514] {Default Queue} -> wl_surface#3484.destroy() +[2618693.554] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3684, fd 581, 640) +[2618693.561] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 582, 640) +[2618693.565] {Default Queue} -> wl_shm_pool#3684.create_buffer(new id wl_buffer#3671, 0, 10, 16, 40, 0) +[2618693.570] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) +[2618693.577] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3682) +[2618693.581] {Default Queue} -> wl_surface#3682.attach(wl_buffer#3671, 0, 0) +[2618693.586] {Default Queue} -> wl_surface#3682.commit() +[2618693.591] {Default Queue} -> wl_surface#3682.attach(wl_buffer#3671, 0, 0) +[2618693.595] {Default Queue} -> wl_surface#3682.commit() +[2618693.599] {Default Queue} wl_pointer#2537.motion(187310327, 21.00000000, 10.80078125) +[2618693.604] {Default Queue} wl_pointer#2569.motion(187310327, 21.00000000, 10.80078125) +[2618693.608] {Default Queue} wl_pointer#2601.motion(187310327, 21.00000000, 10.80078125) +[2618693.612] {Default Queue} wl_pointer#2633.motion(187310327, 21.00000000, 10.80078125) +[2618693.617] {Default Queue} wl_pointer#2665.motion(187310327, 21.00000000, 10.80078125) +[2618693.621] {Default Queue} wl_pointer#2697.motion(187310327, 21.00000000, 10.80078125) +[2618693.625] {Default Queue} wl_pointer#2729.motion(187310327, 21.00000000, 10.80078125) +[2618693.630] {Default Queue} wl_pointer#2761.motion(187310327, 21.00000000, 10.80078125) +[2618693.634] {Default Queue} wl_pointer#2793.motion(187310327, 21.00000000, 10.80078125) +[2618693.638] {Default Queue} wl_pointer#2825.motion(187310327, 21.00000000, 10.80078125) +[2618693.643] {Default Queue} wl_pointer#2857.motion(187310327, 21.00000000, 10.80078125) +[2618693.647] {Default Queue} wl_pointer#2889.motion(187310327, 21.00000000, 10.80078125) +[2618693.652] {Default Queue} wl_pointer#2921.motion(187310327, 21.00000000, 10.80078125) +[2618693.660] {Default Queue} wl_pointer#2953.motion(187310327, 21.00000000, 10.80078125) +[2618693.666] {Default Queue} wl_pointer#2985.motion(187310327, 21.00000000, 10.80078125) +[2618693.670] {Default Queue} wl_pointer#3017.motion(187310327, 21.00000000, 10.80078125) +[2618693.674] {Default Queue} wl_pointer#3049.motion(187310327, 21.00000000, 10.80078125) +[2618693.679] {Default Queue} wl_pointer#3081.motion(187310327, 21.00000000, 10.80078125) +[2618693.683] {Default Queue} wl_pointer#3113.motion(187310327, 21.00000000, 10.80078125) +[2618693.687] {Default Queue} wl_pointer#3145.motion(187310327, 21.00000000, 10.80078125) +[2618693.691] {Default Queue} wl_pointer#3177.motion(187310327, 21.00000000, 10.80078125) +[2618693.696] {Default Queue} wl_pointer#3209.motion(187310327, 21.00000000, 10.80078125) +[2618693.700] {Default Queue} wl_pointer#3241.motion(187310327, 21.00000000, 10.80078125) +[2618693.705] {Default Queue} wl_pointer#3273.motion(187310327, 21.00000000, 10.80078125) +[2618693.709] {Default Queue} wl_pointer#3305.motion(187310327, 21.00000000, 10.80078125) +[2618693.713] {Default Queue} wl_pointer#3337.motion(187310327, 21.00000000, 10.80078125) +[2618693.717] {Default Queue} wl_pointer#3369.motion(187310327, 21.00000000, 10.80078125) +[2618693.722] {Default Queue} wl_pointer#3401.motion(187310327, 21.00000000, 10.80078125) +[2618693.726] {Default Queue} wl_pointer#3433.motion(187310327, 21.00000000, 10.80078125) +[2618693.730] {Default Queue} wl_pointer#3465.motion(187310327, 21.00000000, 10.80078125) +[2618693.735] {Default Queue} wl_pointer#3497.motion(187310327, 21.00000000, 10.80078125) +[2618693.739] {Default Queue} wl_pointer#3529.motion(187310327, 21.00000000, 10.80078125) +[2618693.743] {Default Queue} wl_pointer#3561.motion(187310327, 21.00000000, 10.80078125) +[2618693.748] {Default Queue} wl_pointer#3593.motion(187310327, 21.00000000, 10.80078125) +[2618693.752] {Default Queue} wl_pointer#3625.motion(187310327, 21.00000000, 10.80078125) +[2618693.756] {Default Queue} wl_pointer#3657.motion(187310327, 21.00000000, 10.80078125) +[2618693.760] {Default Queue} wl_pointer#3695.motion(187310327, 21.00000000, 10.80078125) +[2618693.765] {Default Queue} wl_pointer#24.motion(187310327, 20.19921875, 8.00000000) +[2618693.769] {Default Queue} wl_pointer#81.motion(187310327, 20.19921875, 8.00000000) +[2618693.774] {Default Queue} wl_pointer#105.motion(187310327, 20.19921875, 8.00000000) +[2618693.778] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618693.783] {Default Queue} wl_pointer#137.motion(187310327, 20.19921875, 8.00000000) +[2618693.787] {Default Queue} wl_pointer#169.motion(187310327, 20.19921875, 8.00000000) +[2618693.791] {Default Queue} wl_pointer#201.motion(187310327, 20.19921875, 8.00000000) +[2618693.796] {Default Queue} wl_pointer#233.motion(187310327, 20.19921875, 8.00000000) +[2618693.800] {Default Queue} wl_pointer#265.motion(187310327, 20.19921875, 8.00000000) +[2618693.804] {Default Queue} wl_pointer#297.motion(187310327, 20.19921875, 8.00000000) +[2618693.809] {Default Queue} wl_pointer#329.motion(187310327, 20.19921875, 8.00000000) +[2618693.813] {Default Queue} wl_pointer#361.motion(187310327, 20.19921875, 8.00000000) +[2618693.817] {Default Queue} wl_pointer#393.motion(187310327, 20.19921875, 8.00000000) +[2618693.822] {Default Queue} wl_pointer#425.motion(187310327, 20.19921875, 8.00000000) +[2618693.826] {Default Queue} wl_pointer#457.motion(187310327, 20.19921875, 8.00000000) +[2618693.830] {Default Queue} wl_pointer#489.motion(187310327, 20.19921875, 8.00000000) +[2618693.834] {Default Queue} wl_pointer#521.motion(187310327, 20.19921875, 8.00000000) +[2618693.839] {Default Queue} wl_pointer#553.motion(187310327, 20.19921875, 8.00000000) +[2618693.843] {Default Queue} wl_pointer#585.motion(187310327, 20.19921875, 8.00000000) +[2618693.847] {Default Queue} wl_pointer#617.motion(187310327, 20.19921875, 8.00000000) +[2618693.852] {Default Queue} wl_pointer#649.motion(187310327, 20.19921875, 8.00000000) +[2618693.856] {Default Queue} wl_pointer#681.motion(187310327, 20.19921875, 8.00000000) +[2618693.870] {Default Queue} wl_pointer#713.motion(187310327, 20.19921875, 8.00000000) +[2618693.876] {Default Queue} wl_pointer#745.motion(187310327, 20.19921875, 8.00000000) +[2618693.880] {Default Queue} wl_pointer#777.motion(187310327, 20.19921875, 8.00000000) +[2618693.885] {Default Queue} wl_pointer#809.motion(187310327, 20.19921875, 8.00000000) +[2618693.889] {Default Queue} wl_pointer#841.motion(187310327, 20.19921875, 8.00000000) +[2618693.893] {Default Queue} wl_pointer#873.motion(187310327, 20.19921875, 8.00000000) +[2618693.897] {Default Queue} wl_pointer#905.motion(187310327, 20.19921875, 8.00000000) +[2618693.902] {Default Queue} wl_pointer#937.motion(187310327, 20.19921875, 8.00000000) +[2618693.906] {Default Queue} wl_pointer#969.motion(187310327, 20.19921875, 8.00000000) +[2618693.910] {Default Queue} wl_pointer#1001.motion(187310327, 20.19921875, 8.00000000) +[2618693.915] {Default Queue} wl_pointer#1033.motion(187310327, 20.19921875, 8.00000000) +[2618693.919] {Default Queue} wl_pointer#1065.motion(187310327, 20.19921875, 8.00000000) +[2618693.923] {Default Queue} wl_pointer#1097.motion(187310327, 20.19921875, 8.00000000) +[2618693.927] {Default Queue} wl_pointer#1129.motion(187310327, 20.19921875, 8.00000000) +[2618693.932] {Default Queue} wl_pointer#1161.motion(187310327, 20.19921875, 8.00000000) +[2618693.936] {Default Queue} wl_pointer#1193.motion(187310327, 20.19921875, 8.00000000) +[2618693.940] {Default Queue} wl_pointer#1225.motion(187310327, 20.19921875, 8.00000000) +[2618693.944] {Default Queue} wl_pointer#1257.motion(187310327, 20.19921875, 8.00000000) +[2618693.949] {Default Queue} wl_pointer#1289.motion(187310327, 20.19921875, 8.00000000) +[2618693.953] {Default Queue} wl_pointer#1321.motion(187310327, 20.19921875, 8.00000000) +[2618693.957] {Default Queue} wl_pointer#1353.motion(187310327, 20.19921875, 8.00000000) +[2618693.961] {Default Queue} wl_pointer#1385.motion(187310327, 20.19921875, 8.00000000) +[2618693.966] {Default Queue} wl_pointer#1417.motion(187310327, 20.19921875, 8.00000000) +[2618693.970] {Default Queue} wl_pointer#1449.motion(187310327, 20.19921875, 8.00000000) +[2618693.974] {Default Queue} wl_pointer#1481.motion(187310327, 20.19921875, 8.00000000) +[2618693.979] {Default Queue} wl_pointer#1513.motion(187310327, 20.19921875, 8.00000000) +[2618693.983] {Default Queue} wl_pointer#1545.motion(187310327, 20.19921875, 8.00000000) +[2618693.987] {Default Queue} wl_pointer#1577.motion(187310327, 20.19921875, 8.00000000) +[2618693.991] {Default Queue} wl_pointer#1609.motion(187310327, 20.19921875, 8.00000000) +[2618693.996] {Default Queue} wl_pointer#1641.motion(187310327, 20.19921875, 8.00000000) +[2618694.000] {Default Queue} wl_pointer#1673.motion(187310327, 20.19921875, 8.00000000) +[2618694.004] {Default Queue} wl_pointer#1705.motion(187310327, 20.19921875, 8.00000000) +[2618694.009] {Default Queue} wl_pointer#1737.motion(187310327, 20.19921875, 8.00000000) +[2618694.013] {Default Queue} wl_pointer#1762.motion(187310327, 20.19921875, 8.00000000) +[2618694.017] {Default Queue} wl_pointer#1801.motion(187310327, 20.19921875, 8.00000000) +[2618694.021] {Default Queue} wl_pointer#1833.motion(187310327, 20.19921875, 8.00000000) +[2618694.026] {Default Queue} wl_pointer#1865.motion(187310327, 20.19921875, 8.00000000) +[2618694.030] {Default Queue} wl_pointer#1897.motion(187310327, 20.19921875, 8.00000000) +[2618694.034] {Default Queue} wl_pointer#1929.motion(187310327, 20.19921875, 8.00000000) +[2618694.038] {Default Queue} wl_pointer#1961.motion(187310327, 20.19921875, 8.00000000) +[2618694.043] {Default Queue} wl_pointer#1993.motion(187310327, 20.19921875, 8.00000000) +[2618694.047] {Default Queue} wl_pointer#2025.motion(187310327, 20.19921875, 8.00000000) +[2618694.051] {Default Queue} wl_pointer#2057.motion(187310327, 20.19921875, 8.00000000) +[2618694.055] {Default Queue} wl_pointer#2089.motion(187310327, 20.19921875, 8.00000000) +[2618694.060] {Default Queue} wl_pointer#2121.motion(187310327, 20.19921875, 8.00000000) +[2618694.064] {Default Queue} wl_pointer#2153.motion(187310327, 20.19921875, 8.00000000) +[2618694.071] {Default Queue} wl_pointer#2185.motion(187310327, 20.19921875, 8.00000000) +[2618694.077] {Default Queue} wl_pointer#2217.motion(187310327, 20.19921875, 8.00000000) +[2618694.081] {Default Queue} wl_pointer#2249.motion(187310327, 20.19921875, 8.00000000) +[2618694.085] {Default Queue} wl_pointer#2281.motion(187310327, 20.19921875, 8.00000000) +[2618694.090] {Default Queue} wl_pointer#2313.motion(187310327, 20.19921875, 8.00000000) +[2618694.094] {Default Queue} wl_pointer#2345.motion(187310327, 20.19921875, 8.00000000) +[2618694.099] {Default Queue} wl_pointer#2377.motion(187310327, 20.19921875, 8.00000000) +[2618694.103] {Default Queue} wl_pointer#2409.motion(187310327, 20.19921875, 8.00000000) +[2618694.107] {Default Queue} wl_pointer#2441.motion(187310327, 20.19921875, 8.00000000) +[2618694.111] {Default Queue} wl_pointer#2473.motion(187310327, 20.19921875, 8.00000000) +[2618694.116] {Default Queue} wl_pointer#2498.motion(187310327, 20.19921875, 8.00000000) +[2618694.125] {Default Queue} -> wl_buffer#3671.destroy() +[2618694.130] {Default Queue} -> wl_buffer#3681.destroy() +[2618694.134] {Default Queue} -> wl_shm_pool#3684.destroy() +[2618694.138] {Default Queue} -> wl_shm_pool#3679.destroy() +[2618694.143] {Default Queue} -> wl_surface#3682.destroy() +[2618694.176] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3518, fd 583, 640) +[2618694.182] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3517, fd 584, 640) +[2618694.186] {Default Queue} -> wl_shm_pool#3518.create_buffer(new id wl_buffer#3452, 0, 10, 16, 40, 0) +[2618694.190] {Default Queue} -> wl_shm_pool#3517.create_buffer(new id wl_buffer#3451, 0, 10, 16, 40, 0) +[2618694.197] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3454) +[2618694.201] {Default Queue} -> wl_surface#3454.attach(wl_buffer#3452, 0, 0) +[2618694.206] {Default Queue} -> wl_surface#3454.commit() +[2618694.211] {Default Queue} -> wl_surface#3454.attach(wl_buffer#3452, 0, 0) +[2618694.215] {Default Queue} -> wl_surface#3454.commit() +[2618694.219] {Default Queue} wl_pointer#2537.motion(187310327, 20.19921875, 8.00000000) +[2618694.224] {Default Queue} wl_pointer#2569.motion(187310327, 20.19921875, 8.00000000) +[2618694.228] {Default Queue} wl_pointer#2601.motion(187310327, 20.19921875, 8.00000000) +[2618694.232] {Default Queue} wl_pointer#2633.motion(187310327, 20.19921875, 8.00000000) +[2618694.236] {Default Queue} wl_pointer#2665.motion(187310327, 20.19921875, 8.00000000) +[2618694.241] {Default Queue} wl_pointer#2697.motion(187310327, 20.19921875, 8.00000000) +[2618694.245] {Default Queue} wl_pointer#2729.motion(187310327, 20.19921875, 8.00000000) +[2618694.249] {Default Queue} wl_pointer#2761.motion(187310327, 20.19921875, 8.00000000) +[2618694.254] {Default Queue} wl_pointer#2793.motion(187310327, 20.19921875, 8.00000000) +[2618694.258] {Default Queue} wl_pointer#2825.motion(187310327, 20.19921875, 8.00000000) +[2618694.262] {Default Queue} wl_pointer#2857.motion(187310327, 20.19921875, 8.00000000) +[2618694.267] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) +[2618694.271] {Default Queue} -> wl_surface#2311.commit() +[2618695.338] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) +[2618695.343] {Default Queue} -> wl_surface#2311.commit() +[2618695.349] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) +[2618695.353] {Default Queue} -> wl_surface#2311.commit() +[2618695.360] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) +[2618695.364] {Default Queue} -> wl_surface#2247.commit() +[2618696.424] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) +[2618696.429] {Default Queue} -> wl_surface#2247.commit() +[2618696.438] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) +[2618696.443] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) +[2618696.447] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618696.451] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618696.462] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) +[2618696.470] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) +[2618696.477] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618696.481] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618696.486] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) +[2618696.490] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) +[2618696.494] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618696.498] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618696.503] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) +[2618696.507] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) +[2618696.511] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618696.515] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618696.520] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) +[2618696.524] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) +[2618696.528] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618696.532] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618696.616] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) +[2618696.621] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) +[2618696.625] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618696.631] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618696.639] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618696.646] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618696.654] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) +[2618696.660] {Default Queue} -> wl_surface#2247.commit() +[2618696.664] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) +[2618696.668] {Default Queue} -> wl_surface#2247.commit() +[2618696.708] {Display Queue} wl_display#1.delete_id(3674) +[2618696.715] {Display Queue} wl_display#1.delete_id(3678) +[2618696.721] {Display Queue} wl_display#1.delete_id(3677) +[2618696.726] {Display Queue} wl_display#1.delete_id(3676) +[2618696.732] {Display Queue} wl_display#1.delete_id(3675) +[2618696.737] {Display Queue} wl_display#1.delete_id(91) +[2618696.742] {Display Queue} wl_display#1.delete_id(94) +[2618696.747] {Display Queue} wl_display#1.delete_id(3683) +[2618696.752] {Display Queue} wl_display#1.delete_id(92) +[2618696.756] {Display Queue} wl_display#1.delete_id(93) +[2618696.761] {Default Queue} wl_pointer#2889.motion(187310327, 20.19921875, 8.00000000) +[2618696.765] {Default Queue} wl_pointer#2921.motion(187310327, 20.19921875, 8.00000000) +[2618696.770] {Default Queue} wl_pointer#2953.motion(187310327, 20.19921875, 8.00000000) +[2618696.774] {Default Queue} wl_pointer#2985.motion(187310327, 20.19921875, 8.00000000) +[2618696.778] {Default Queue} wl_pointer#3017.motion(187310327, 20.19921875, 8.00000000) +[2618696.783] {Default Queue} wl_pointer#3049.motion(187310327, 20.19921875, 8.00000000) +[2618696.787] {Default Queue} wl_pointer#3081.motion(187310327, 20.19921875, 8.00000000) +[2618696.791] {Default Queue} wl_pointer#3113.motion(187310327, 20.19921875, 8.00000000) +[2618696.796] {Default Queue} wl_pointer#3145.motion(187310327, 20.19921875, 8.00000000) +[2618696.800] {Default Queue} wl_pointer#3177.motion(187310327, 20.19921875, 8.00000000) +[2618696.804] {Default Queue} wl_pointer#3209.motion(187310327, 20.19921875, 8.00000000) +[2618696.809] {Default Queue} wl_pointer#3241.motion(187310327, 20.19921875, 8.00000000) +[2618696.813] {Default Queue} wl_pointer#3273.motion(187310327, 20.19921875, 8.00000000) +[2618696.817] {Default Queue} wl_pointer#3305.motion(187310327, 20.19921875, 8.00000000) +[2618696.822] {Default Queue} wl_pointer#3337.motion(187310327, 20.19921875, 8.00000000) +[2618696.826] {Default Queue} wl_pointer#3369.motion(187310327, 20.19921875, 8.00000000) +[2618696.830] {Default Queue} wl_pointer#3401.motion(187310327, 20.19921875, 8.00000000) +[2618696.834] {Default Queue} wl_pointer#3433.motion(187310327, 20.19921875, 8.00000000) +[2618696.839] {Default Queue} wl_pointer#3465.motion(187310327, 20.19921875, 8.00000000) +[2618696.848] {Default Queue} wl_pointer#3497.motion(187310327, 20.19921875, 8.00000000) +[2618696.854] {Default Queue} wl_pointer#3529.motion(187310327, 20.19921875, 8.00000000) +[2618696.858] {Default Queue} wl_pointer#3561.motion(187310327, 20.19921875, 8.00000000) +[2618696.867] {Default Queue} wl_pointer#3593.motion(187310327, 20.19921875, 8.00000000) +[2618696.890] {Default Queue} wl_pointer#3625.motion(187310327, 20.19921875, 8.00000000) +[2618696.900] {Default Queue} wl_pointer#3657.motion(187310327, 20.19921875, 8.00000000) +[2618696.905] {Default Queue} wl_pointer#3695.motion(187310327, 20.19921875, 8.00000000) +[2618696.910] {Default Queue} wl_pointer#24.motion(187310327, 19.39843750, 5.19921875) +[2618696.915] {Default Queue} wl_pointer#81.motion(187310327, 19.39843750, 5.19921875) +[2618696.921] {Default Queue} wl_pointer#105.motion(187310327, 19.39843750, 5.19921875) +[2618696.926] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618696.931] {Default Queue} wl_pointer#137.motion(187310327, 19.39843750, 5.19921875) +[2618696.935] {Default Queue} wl_pointer#169.motion(187310327, 19.39843750, 5.19921875) +[2618696.940] {Default Queue} wl_pointer#201.motion(187310327, 19.39843750, 5.19921875) +[2618696.944] {Default Queue} wl_pointer#233.motion(187310327, 19.39843750, 5.19921875) +[2618696.948] {Default Queue} wl_pointer#265.motion(187310327, 19.39843750, 5.19921875) +[2618696.952] {Default Queue} wl_pointer#297.motion(187310327, 19.39843750, 5.19921875) +[2618696.957] {Default Queue} wl_pointer#329.motion(187310327, 19.39843750, 5.19921875) +[2618696.961] {Default Queue} wl_pointer#361.motion(187310327, 19.39843750, 5.19921875) +[2618696.965] {Default Queue} wl_pointer#393.motion(187310327, 19.39843750, 5.19921875) +[2618696.970] {Default Queue} wl_pointer#425.motion(187310327, 19.39843750, 5.19921875) +[2618696.974] {Default Queue} wl_pointer#457.motion(187310327, 19.39843750, 5.19921875) +[2618696.978] {Default Queue} wl_pointer#489.motion(187310327, 19.39843750, 5.19921875) +[2618696.983] {Default Queue} wl_pointer#521.motion(187310327, 19.39843750, 5.19921875) +[2618696.987] {Default Queue} wl_pointer#553.motion(187310327, 19.39843750, 5.19921875) +[2618696.991] {Default Queue} wl_pointer#585.motion(187310327, 19.39843750, 5.19921875) +[2618696.996] {Default Queue} wl_pointer#617.motion(187310327, 19.39843750, 5.19921875) +[2618697.000] {Default Queue} wl_pointer#649.motion(187310327, 19.39843750, 5.19921875) +[2618697.004] {Default Queue} wl_pointer#681.motion(187310327, 19.39843750, 5.19921875) +[2618697.009] {Default Queue} wl_pointer#713.motion(187310327, 19.39843750, 5.19921875) +[2618697.013] {Default Queue} wl_pointer#745.motion(187310327, 19.39843750, 5.19921875) +[2618697.017] {Default Queue} wl_pointer#777.motion(187310327, 19.39843750, 5.19921875) +[2618697.022] {Default Queue} wl_pointer#809.motion(187310327, 19.39843750, 5.19921875) +[2618697.026] {Default Queue} wl_pointer#841.motion(187310327, 19.39843750, 5.19921875) +[2618697.030] {Default Queue} wl_pointer#873.motion(187310327, 19.39843750, 5.19921875) +[2618697.035] {Default Queue} wl_pointer#905.motion(187310327, 19.39843750, 5.19921875) +[2618697.039] {Default Queue} wl_pointer#937.motion(187310327, 19.39843750, 5.19921875) +[2618697.043] {Default Queue} wl_pointer#969.motion(187310327, 19.39843750, 5.19921875) +[2618697.048] {Default Queue} wl_pointer#1001.motion(187310327, 19.39843750, 5.19921875) +[2618697.052] {Default Queue} wl_pointer#1033.motion(187310327, 19.39843750, 5.19921875) +[2618697.056] {Default Queue} wl_pointer#1065.motion(187310327, 19.39843750, 5.19921875) +[2618697.060] {Default Queue} wl_pointer#1097.motion(187310327, 19.39843750, 5.19921875) +[2618697.065] {Default Queue} wl_pointer#1129.motion(187310327, 19.39843750, 5.19921875) +[2618697.069] {Default Queue} wl_pointer#1161.motion(187310327, 19.39843750, 5.19921875) +[2618697.073] {Default Queue} wl_pointer#1193.motion(187310327, 19.39843750, 5.19921875) +[2618697.078] {Default Queue} wl_pointer#1225.motion(187310327, 19.39843750, 5.19921875) +[2618697.087] {Default Queue} wl_pointer#1257.motion(187310327, 19.39843750, 5.19921875) +[2618697.095] {Default Queue} wl_pointer#1289.motion(187310327, 19.39843750, 5.19921875) +[2618697.099] {Default Queue} wl_pointer#1321.motion(187310327, 19.39843750, 5.19921875) +[2618697.104] {Default Queue} wl_pointer#1353.motion(187310327, 19.39843750, 5.19921875) +[2618697.108] {Default Queue} wl_pointer#1385.motion(187310327, 19.39843750, 5.19921875) +[2618697.112] {Default Queue} wl_pointer#1417.motion(187310327, 19.39843750, 5.19921875) +[2618697.117] {Default Queue} wl_pointer#1449.motion(187310327, 19.39843750, 5.19921875) +[2618697.121] {Default Queue} wl_pointer#1481.motion(187310327, 19.39843750, 5.19921875) +[2618697.125] {Default Queue} wl_pointer#1513.motion(187310327, 19.39843750, 5.19921875) +[2618697.129] {Default Queue} wl_pointer#1545.motion(187310327, 19.39843750, 5.19921875) +[2618697.134] {Default Queue} wl_pointer#1577.motion(187310327, 19.39843750, 5.19921875) +[2618697.138] {Default Queue} wl_pointer#1609.motion(187310327, 19.39843750, 5.19921875) +[2618697.142] {Default Queue} wl_pointer#1641.motion(187310327, 19.39843750, 5.19921875) +[2618697.147] {Default Queue} wl_pointer#1673.motion(187310327, 19.39843750, 5.19921875) +[2618697.151] {Default Queue} wl_pointer#1705.motion(187310327, 19.39843750, 5.19921875) +[2618697.155] {Default Queue} wl_pointer#1737.motion(187310327, 19.39843750, 5.19921875) +[2618697.160] {Default Queue} wl_pointer#1762.motion(187310327, 19.39843750, 5.19921875) +[2618697.164] {Default Queue} wl_pointer#1801.motion(187310327, 19.39843750, 5.19921875) +[2618697.168] {Default Queue} wl_pointer#1833.motion(187310327, 19.39843750, 5.19921875) +[2618697.173] {Default Queue} wl_pointer#1865.motion(187310327, 19.39843750, 5.19921875) +[2618697.177] {Default Queue} wl_pointer#1897.motion(187310327, 19.39843750, 5.19921875) +[2618697.181] {Default Queue} wl_pointer#1929.motion(187310327, 19.39843750, 5.19921875) +[2618697.185] {Default Queue} wl_pointer#1961.motion(187310327, 19.39843750, 5.19921875) +[2618697.190] {Default Queue} wl_pointer#1993.motion(187310327, 19.39843750, 5.19921875) +[2618697.194] {Default Queue} wl_pointer#2025.motion(187310327, 19.39843750, 5.19921875) +[2618697.198] {Default Queue} wl_pointer#2057.motion(187310327, 19.39843750, 5.19921875) +[2618697.203] {Default Queue} wl_pointer#2089.motion(187310327, 19.39843750, 5.19921875) +[2618697.207] {Default Queue} wl_pointer#2121.motion(187310327, 19.39843750, 5.19921875) +[2618697.211] {Default Queue} wl_pointer#2153.motion(187310327, 19.39843750, 5.19921875) +[2618697.215] {Default Queue} wl_pointer#2185.motion(187310327, 19.39843750, 5.19921875) +[2618697.220] {Default Queue} wl_pointer#2217.motion(187310327, 19.39843750, 5.19921875) +[2618697.224] {Default Queue} wl_pointer#2249.motion(187310327, 19.39843750, 5.19921875) +[2618697.228] {Default Queue} wl_pointer#2281.motion(187310327, 19.39843750, 5.19921875) +[2618697.232] {Default Queue} wl_pointer#2313.motion(187310327, 19.39843750, 5.19921875) +[2618697.237] {Default Queue} wl_pointer#2345.motion(187310327, 19.39843750, 5.19921875) +[2618697.242] {Default Queue} wl_pointer#2377.motion(187310327, 19.39843750, 5.19921875) +[2618697.246] {Default Queue} wl_pointer#2409.motion(187310327, 19.39843750, 5.19921875) +[2618697.250] {Default Queue} wl_pointer#2441.motion(187310327, 19.39843750, 5.19921875) +[2618697.254] {Default Queue} wl_pointer#2473.motion(187310327, 19.39843750, 5.19921875) +[2618697.259] {Default Queue} wl_pointer#2498.motion(187310327, 19.39843750, 5.19921875) +[2618697.272] {Default Queue} -> wl_buffer#3452.destroy() +[2618697.277] {Default Queue} -> wl_buffer#3451.destroy() +[2618697.281] {Default Queue} -> wl_shm_pool#3518.destroy() +[2618697.285] {Default Queue} -> wl_shm_pool#3517.destroy() +[2618697.291] {Default Queue} -> wl_surface#3454.destroy() +[2618697.338] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#93, fd 575, 640) +[2618697.344] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 578, 640) +[2618697.349] {Default Queue} -> wl_shm_pool#93.create_buffer(new id wl_buffer#3683, 0, 10, 16, 40, 0) +[2618697.357] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) +[2618697.367] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#91) +[2618697.372] {Default Queue} -> wl_surface#91.attach(wl_buffer#3683, 0, 0) +[2618697.376] {Default Queue} -> wl_surface#91.commit() +[2618697.382] {Default Queue} -> wl_surface#91.attach(wl_buffer#3683, 0, 0) +[2618697.386] {Default Queue} -> wl_surface#91.commit() +[2618697.391] {Default Queue} wl_pointer#2537.motion(187310327, 19.39843750, 5.19921875) +[2618697.396] {Default Queue} wl_pointer#2569.motion(187310327, 19.39843750, 5.19921875) +[2618697.400] {Default Queue} wl_pointer#2601.motion(187310327, 19.39843750, 5.19921875) +[2618697.405] {Default Queue} wl_pointer#2633.motion(187310327, 19.39843750, 5.19921875) +[2618697.409] {Default Queue} wl_pointer#2665.motion(187310327, 19.39843750, 5.19921875) +[2618697.413] {Default Queue} wl_pointer#2697.motion(187310327, 19.39843750, 5.19921875) +[2618697.417] {Default Queue} wl_pointer#2729.motion(187310327, 19.39843750, 5.19921875) +[2618697.422] {Default Queue} wl_pointer#2761.motion(187310327, 19.39843750, 5.19921875) +[2618697.426] {Default Queue} wl_pointer#2793.motion(187310327, 19.39843750, 5.19921875) +[2618697.431] {Default Queue} wl_pointer#2825.motion(187310327, 19.39843750, 5.19921875) +[2618697.435] {Default Queue} wl_pointer#2857.motion(187310327, 19.39843750, 5.19921875) +[2618697.439] {Default Queue} wl_pointer#2889.motion(187310327, 19.39843750, 5.19921875) +[2618697.444] {Default Queue} wl_pointer#2921.motion(187310327, 19.39843750, 5.19921875) +[2618697.448] {Default Queue} wl_pointer#2953.motion(187310327, 19.39843750, 5.19921875) +[2618697.452] {Default Queue} wl_pointer#2985.motion(187310327, 19.39843750, 5.19921875) +[2618697.457] {Default Queue} wl_pointer#3017.motion(187310327, 19.39843750, 5.19921875) +[2618697.461] {Default Queue} wl_pointer#3049.motion(187310327, 19.39843750, 5.19921875) +[2618697.465] {Default Queue} wl_pointer#3081.motion(187310327, 19.39843750, 5.19921875) +[2618697.470] {Default Queue} wl_pointer#3113.motion(187310327, 19.39843750, 5.19921875) +[2618697.474] {Default Queue} wl_pointer#3145.motion(187310327, 19.39843750, 5.19921875) +[2618697.478] {Default Queue} wl_pointer#3177.motion(187310327, 19.39843750, 5.19921875) +[2618697.482] {Default Queue} wl_pointer#3209.motion(187310327, 19.39843750, 5.19921875) +[2618697.487] {Default Queue} wl_pointer#3241.motion(187310327, 19.39843750, 5.19921875) +[2618697.491] {Default Queue} wl_pointer#3273.motion(187310327, 19.39843750, 5.19921875) +[2618697.496] {Default Queue} wl_pointer#3305.motion(187310327, 19.39843750, 5.19921875) +[2618697.500] {Default Queue} wl_pointer#3337.motion(187310327, 19.39843750, 5.19921875) +[2618697.504] {Default Queue} wl_pointer#3369.motion(187310327, 19.39843750, 5.19921875) +[2618697.508] {Default Queue} wl_pointer#3401.motion(187310327, 19.39843750, 5.19921875) +[2618697.513] {Default Queue} wl_pointer#3433.motion(187310327, 19.39843750, 5.19921875) +[2618697.517] {Default Queue} wl_pointer#3465.motion(187310327, 19.39843750, 5.19921875) +[2618697.522] {Default Queue} wl_pointer#3497.motion(187310327, 19.39843750, 5.19921875) +[2618697.526] {Default Queue} wl_pointer#3529.motion(187310327, 19.39843750, 5.19921875) +[2618697.530] {Default Queue} wl_pointer#3561.motion(187310327, 19.39843750, 5.19921875) +[2618697.535] {Default Queue} wl_pointer#3593.motion(187310327, 19.39843750, 5.19921875) +[2618697.539] {Default Queue} wl_pointer#3625.motion(187310327, 19.39843750, 5.19921875) +[2618697.545] {Default Queue} wl_pointer#3657.motion(187310327, 19.39843750, 5.19921875) +[2618697.551] {Default Queue} wl_pointer#3695.motion(187310327, 19.39843750, 5.19921875) +[2618697.557] {Default Queue} wl_pointer#24.motion(187310331, 18.60156250, 2.00000000) +[2618697.563] {Default Queue} wl_pointer#81.motion(187310331, 18.60156250, 2.00000000) +[2618697.569] {Default Queue} wl_pointer#105.motion(187310331, 18.60156250, 2.00000000) +[2618697.576] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) +[2618697.583] {Default Queue} wl_pointer#137.motion(187310331, 18.60156250, 2.00000000) +[2618697.587] {Default Queue} wl_pointer#169.motion(187310331, 18.60156250, 2.00000000) +[2618697.591] {Default Queue} wl_pointer#201.motion(187310331, 18.60156250, 2.00000000) +[2618697.596] {Default Queue} wl_pointer#233.motion(187310331, 18.60156250, 2.00000000) +[2618697.600] {Default Queue} wl_pointer#265.motion(187310331, 18.60156250, 2.00000000) +[2618697.604] {Default Queue} wl_pointer#297.motion(187310331, 18.60156250, 2.00000000) +[2618697.608] {Default Queue} wl_pointer#329.motion(187310331, 18.60156250, 2.00000000) +[2618697.613] {Default Queue} wl_pointer#361.motion(187310331, 18.60156250, 2.00000000) +[2618697.617] {Default Queue} wl_pointer#393.motion(187310331, 18.60156250, 2.00000000) +[2618697.621] {Default Queue} wl_pointer#425.motion(187310331, 18.60156250, 2.00000000) +[2618697.626] {Default Queue} wl_pointer#457.motion(187310331, 18.60156250, 2.00000000) +[2618697.630] {Default Queue} wl_pointer#489.motion(187310331, 18.60156250, 2.00000000) +[2618697.634] {Default Queue} wl_pointer#521.motion(187310331, 18.60156250, 2.00000000) +[2618697.638] {Default Queue} wl_pointer#553.motion(187310331, 18.60156250, 2.00000000) +[2618697.642] {Default Queue} wl_pointer#585.motion(187310331, 18.60156250, 2.00000000) +[2618697.647] {Default Queue} wl_pointer#617.motion(187310331, 18.60156250, 2.00000000) +[2618697.651] {Default Queue} wl_pointer#649.motion(187310331, 18.60156250, 2.00000000) +[2618697.655] {Default Queue} wl_pointer#681.motion(187310331, 18.60156250, 2.00000000) +[2618697.659] {Default Queue} wl_pointer#713.motion(187310331, 18.60156250, 2.00000000) +[2618697.663] {Default Queue} wl_pointer#745.motion(187310331, 18.60156250, 2.00000000) +[2618697.667] {Default Queue} wl_pointer#777.motion(187310331, 18.60156250, 2.00000000) +[2618697.672] {Default Queue} wl_pointer#809.motion(187310331, 18.60156250, 2.00000000) +[2618697.676] {Default Queue} wl_pointer#841.motion(187310331, 18.60156250, 2.00000000) +[2618697.680] {Default Queue} wl_pointer#873.motion(187310331, 18.60156250, 2.00000000) +[2618697.684] {Default Queue} wl_pointer#905.motion(187310331, 18.60156250, 2.00000000) +[2618697.689] {Default Queue} wl_pointer#937.motion(187310331, 18.60156250, 2.00000000) +[2618697.693] {Default Queue} wl_pointer#969.motion(187310331, 18.60156250, 2.00000000) +[2618697.697] {Default Queue} wl_pointer#1001.motion(187310331, 18.60156250, 2.00000000) +[2618697.701] {Default Queue} wl_pointer#1033.motion(187310331, 18.60156250, 2.00000000) +[2618697.706] {Default Queue} wl_pointer#1065.motion(187310331, 18.60156250, 2.00000000) +[2618697.710] {Default Queue} wl_pointer#1097.motion(187310331, 18.60156250, 2.00000000) +[2618697.714] {Default Queue} wl_pointer#1129.motion(187310331, 18.60156250, 2.00000000) +[2618697.718] {Default Queue} wl_pointer#1161.motion(187310331, 18.60156250, 2.00000000) +[2618697.723] {Default Queue} wl_pointer#1193.motion(187310331, 18.60156250, 2.00000000) +[2618697.727] {Default Queue} wl_pointer#1225.motion(187310331, 18.60156250, 2.00000000) +[2618697.731] {Default Queue} wl_pointer#1257.motion(187310331, 18.60156250, 2.00000000) +[2618697.736] {Default Queue} wl_pointer#1289.motion(187310331, 18.60156250, 2.00000000) +[2618697.740] {Default Queue} wl_pointer#1321.motion(187310331, 18.60156250, 2.00000000) +[2618697.744] {Default Queue} wl_pointer#1353.motion(187310331, 18.60156250, 2.00000000) +[2618697.748] {Default Queue} wl_pointer#1385.motion(187310331, 18.60156250, 2.00000000) +[2618697.753] {Default Queue} wl_pointer#1417.motion(187310331, 18.60156250, 2.00000000) +[2618697.757] {Default Queue} wl_pointer#1449.motion(187310331, 18.60156250, 2.00000000) +[2618697.761] {Default Queue} wl_pointer#1481.motion(187310331, 18.60156250, 2.00000000) +[2618697.765] {Default Queue} wl_pointer#1513.motion(187310331, 18.60156250, 2.00000000) +[2618697.769] {Default Queue} wl_pointer#1545.motion(187310331, 18.60156250, 2.00000000) +[2618697.774] {Default Queue} wl_pointer#1577.motion(187310331, 18.60156250, 2.00000000) +[2618697.793] {Default Queue} wl_pointer#1609.motion(187310331, 18.60156250, 2.00000000) +[2618697.798] {Default Queue} wl_pointer#1641.motion(187310331, 18.60156250, 2.00000000) +[2618697.803] {Default Queue} wl_pointer#1673.motion(187310331, 18.60156250, 2.00000000) +[2618697.807] {Default Queue} wl_pointer#1705.motion(187310331, 18.60156250, 2.00000000) +[2618697.811] {Default Queue} wl_pointer#1737.motion(187310331, 18.60156250, 2.00000000) +[2618697.816] {Default Queue} wl_pointer#1762.motion(187310331, 18.60156250, 2.00000000) +[2618697.820] {Default Queue} wl_pointer#1801.motion(187310331, 18.60156250, 2.00000000) +[2618697.824] {Default Queue} wl_pointer#1833.motion(187310331, 18.60156250, 2.00000000) +[2618697.828] {Default Queue} wl_pointer#1865.motion(187310331, 18.60156250, 2.00000000) +[2618697.833] {Default Queue} wl_pointer#1897.motion(187310331, 18.60156250, 2.00000000) +[2618697.837] {Default Queue} wl_pointer#1929.motion(187310331, 18.60156250, 2.00000000) +[2618697.841] {Default Queue} wl_pointer#1961.motion(187310331, 18.60156250, 2.00000000) +[2618697.845] {Default Queue} wl_pointer#1993.motion(187310331, 18.60156250, 2.00000000) +[2618697.850] {Default Queue} wl_pointer#2025.motion(187310331, 18.60156250, 2.00000000) +[2618697.854] {Default Queue} wl_pointer#2057.motion(187310331, 18.60156250, 2.00000000) +[2618697.858] {Default Queue} wl_pointer#2089.motion(187310331, 18.60156250, 2.00000000) +[2618697.863] {Default Queue} wl_pointer#2121.motion(187310331, 18.60156250, 2.00000000) +[2618697.868] {Default Queue} wl_pointer#2153.motion(187310331, 18.60156250, 2.00000000) +[2618697.878] {Default Queue} wl_pointer#2185.motion(187310331, 18.60156250, 2.00000000) +[2618697.883] {Default Queue} wl_pointer#2217.motion(187310331, 18.60156250, 2.00000000) +[2618697.887] {Default Queue} wl_pointer#2249.motion(187310331, 18.60156250, 2.00000000) +[2618697.891] {Default Queue} wl_pointer#2281.motion(187310331, 18.60156250, 2.00000000) +[2618697.895] {Default Queue} wl_pointer#2313.motion(187310331, 18.60156250, 2.00000000) +[2618697.900] {Default Queue} wl_pointer#2345.motion(187310331, 18.60156250, 2.00000000) +[2618697.904] {Default Queue} wl_pointer#2377.motion(187310331, 18.60156250, 2.00000000) +[2618697.909] {Default Queue} wl_pointer#2409.motion(187310331, 18.60156250, 2.00000000) +[2618697.913] {Default Queue} wl_pointer#2441.motion(187310331, 18.60156250, 2.00000000) +[2618697.917] {Default Queue} wl_pointer#2473.motion(187310331, 18.60156250, 2.00000000) +[2618697.921] {Default Queue} wl_pointer#2498.motion(187310331, 18.60156250, 2.00000000) +[2618697.932] {Default Queue} -> wl_buffer#3683.destroy() +[2618697.938] {Default Queue} -> wl_buffer#94.destroy() +[2618697.942] {Default Queue} -> wl_shm_pool#93.destroy() +[2618697.946] {Default Queue} -> wl_shm_pool#92.destroy() +[2618697.951] {Default Queue} -> wl_surface#91.destroy() +[2618697.993] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3675, fd 581, 640) +[2618698.001] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3676, fd 582, 640) +[2618698.006] {Default Queue} -> wl_shm_pool#3675.create_buffer(new id wl_buffer#3677, 0, 10, 16, 40, 0) +[2618698.010] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 10, 16, 40, 0) +[2618698.018] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3674) +[2618698.022] {Default Queue} -> wl_surface#3674.attach(wl_buffer#3677, 0, 0) +[2618698.026] {Default Queue} -> wl_surface#3674.commit() +[2618698.032] {Default Queue} -> wl_surface#3674.attach(wl_buffer#3677, 0, 0) +[2618698.036] {Default Queue} -> wl_surface#3674.commit() +[2618698.040] {Default Queue} wl_pointer#2537.motion(187310331, 18.60156250, 2.00000000) +[2618698.045] {Default Queue} wl_pointer#2569.motion(187310331, 18.60156250, 2.00000000) +[2618698.049] {Default Queue} wl_pointer#2601.motion(187310331, 18.60156250, 2.00000000) +[2618698.054] {Default Queue} wl_pointer#2633.motion(187310331, 18.60156250, 2.00000000) +[2618698.058] {Default Queue} wl_pointer#2665.motion(187310331, 18.60156250, 2.00000000) +[2618698.066] {Default Queue} wl_pointer#2697.motion(187310331, 18.60156250, 2.00000000) +[2618698.072] {Default Queue} wl_pointer#2729.motion(187310331, 18.60156250, 2.00000000) +[2618698.076] {Default Queue} wl_pointer#2761.motion(187310331, 18.60156250, 2.00000000) +[2618698.081] {Default Queue} wl_pointer#2793.motion(187310331, 18.60156250, 2.00000000) +[2618698.085] {Default Queue} wl_pointer#2825.motion(187310331, 18.60156250, 2.00000000) +[2618698.090] {Default Queue} wl_pointer#2857.motion(187310331, 18.60156250, 2.00000000) +[2618698.094] {Default Queue} wl_pointer#2889.motion(187310331, 18.60156250, 2.00000000) +[2618698.098] {Default Queue} wl_pointer#2921.motion(187310331, 18.60156250, 2.00000000) +[2618698.103] {Default Queue} wl_pointer#2953.motion(187310331, 18.60156250, 2.00000000) +[2618698.107] {Default Queue} wl_pointer#2985.motion(187310331, 18.60156250, 2.00000000) +[2618698.111] {Default Queue} wl_pointer#3017.motion(187310331, 18.60156250, 2.00000000) +[2618698.116] {Default Queue} wl_pointer#3049.motion(187310331, 18.60156250, 2.00000000) +[2618698.120] {Default Queue} wl_pointer#3081.motion(187310331, 18.60156250, 2.00000000) +[2618698.124] {Default Queue} wl_pointer#3113.motion(187310331, 18.60156250, 2.00000000) +[2618698.128] {Default Queue} wl_pointer#3145.motion(187310331, 18.60156250, 2.00000000) +[2618698.133] {Default Queue} wl_pointer#3177.motion(187310331, 18.60156250, 2.00000000) +[2618698.137] {Default Queue} wl_pointer#3209.motion(187310331, 18.60156250, 2.00000000) +[2618698.141] {Default Queue} wl_pointer#3241.motion(187310331, 18.60156250, 2.00000000) +[2618698.146] {Default Queue} wl_pointer#3273.motion(187310331, 18.60156250, 2.00000000) +[2618698.150] {Default Queue} wl_pointer#3305.motion(187310331, 18.60156250, 2.00000000) +[2618698.154] {Default Queue} wl_pointer#3337.motion(187310331, 18.60156250, 2.00000000) +[2618698.158] {Default Queue} wl_pointer#3369.motion(187310331, 18.60156250, 2.00000000) +[2618698.163] {Default Queue} wl_pointer#3401.motion(187310331, 18.60156250, 2.00000000) +[2618698.167] {Default Queue} wl_pointer#3433.motion(187310331, 18.60156250, 2.00000000) +[2618698.172] {Default Queue} wl_pointer#3465.motion(187310331, 18.60156250, 2.00000000) +[2618698.176] {Default Queue} wl_pointer#3497.motion(187310331, 18.60156250, 2.00000000) +[2618698.180] {Default Queue} wl_pointer#3529.motion(187310331, 18.60156250, 2.00000000) +[2618698.185] {Default Queue} wl_pointer#3561.motion(187310331, 18.60156250, 2.00000000) +[2618698.189] {Default Queue} wl_pointer#3593.motion(187310331, 18.60156250, 2.00000000) +[2618698.193] {Default Queue} wl_pointer#3625.motion(187310331, 18.60156250, 2.00000000) +[2618698.198] {Default Queue} wl_pointer#3657.motion(187310331, 18.60156250, 2.00000000) +[2618698.202] {Default Queue} wl_pointer#3695.motion(187310331, 18.60156250, 2.00000000) +[2618698.206] {Default Queue} wl_pointer#24.leave(679, wl_surface#71) +[2618698.211] {Default Queue} wl_pointer#81.leave(679, wl_surface#71) +[2618698.215] {Default Queue} wl_pointer#105.leave(679, wl_surface#71) +[2618698.219] {Default Queue} wl_pointer#137.leave(679, wl_surface#71) +[2618698.223] {Default Queue} wl_pointer#169.leave(679, wl_surface#71) +[2618698.227] {Default Queue} wl_pointer#201.leave(679, wl_surface#71) +[2618698.231] {Default Queue} wl_pointer#233.leave(679, wl_surface#71) +[2618698.235] {Default Queue} wl_pointer#265.leave(679, wl_surface#71) +[2618698.239] {Default Queue} wl_pointer#297.leave(679, wl_surface#71) +[2618698.243] {Default Queue} wl_pointer#329.leave(679, wl_surface#71) +[2618698.247] {Default Queue} wl_pointer#361.leave(679, wl_surface#71) +[2618698.251] {Default Queue} wl_pointer#393.leave(679, wl_surface#71) +[2618698.255] {Default Queue} wl_pointer#425.leave(679, wl_surface#71) +[2618698.259] {Default Queue} wl_pointer#457.leave(679, wl_surface#71) +[2618698.263] {Default Queue} wl_pointer#489.leave(679, wl_surface#71) +[2618698.267] {Default Queue} wl_pointer#521.leave(679, wl_surface#71) +[2618698.271] {Default Queue} wl_pointer#553.leave(679, wl_surface#71) +[2618698.278] {Default Queue} wl_pointer#585.leave(679, wl_surface#71) +[2618698.284] {Default Queue} wl_pointer#617.leave(679, wl_surface#71) +[2618698.288] {Default Queue} wl_pointer#649.leave(679, wl_surface#71) +[2618698.292] {Default Queue} wl_pointer#681.leave(679, wl_surface#71) +[2618698.296] {Default Queue} wl_pointer#713.leave(679, wl_surface#71) +[2618698.300] {Default Queue} wl_pointer#745.leave(679, wl_surface#71) +[2618698.304] {Default Queue} wl_pointer#777.leave(679, wl_surface#71) +[2618698.308] {Default Queue} wl_pointer#809.leave(679, wl_surface#71) +[2618698.312] {Default Queue} wl_pointer#841.leave(679, wl_surface#71) +[2618698.316] {Default Queue} wl_pointer#873.leave(679, wl_surface#71) +[2618698.320] {Default Queue} wl_pointer#905.leave(679, wl_surface#71) +[2618698.324] {Default Queue} wl_pointer#937.leave(679, wl_surface#71) +[2618698.328] {Default Queue} wl_pointer#969.leave(679, wl_surface#71) +[2618698.332] {Default Queue} wl_pointer#1001.leave(679, wl_surface#71) +[2618698.336] {Default Queue} wl_pointer#1033.leave(679, wl_surface#71) +[2618698.340] {Default Queue} wl_pointer#1065.leave(679, wl_surface#71) +[2618698.344] {Default Queue} wl_pointer#1097.leave(679, wl_surface#71) +[2618698.348] {Default Queue} wl_pointer#1129.leave(679, wl_surface#71) +[2618698.352] {Default Queue} wl_pointer#1161.leave(679, wl_surface#71) +[2618698.356] {Default Queue} wl_pointer#1193.leave(679, wl_surface#71) +[2618698.360] {Default Queue} wl_pointer#1225.leave(679, wl_surface#71) +[2618698.364] {Default Queue} wl_pointer#1257.leave(679, wl_surface#71) +[2618698.368] {Default Queue} wl_pointer#1289.leave(679, wl_surface#71) +[2618698.372] {Default Queue} wl_pointer#1321.leave(679, wl_surface#71) +[2618698.376] {Default Queue} wl_pointer#1353.leave(679, wl_surface#71) +[2618698.380] {Default Queue} wl_pointer#1385.leave(679, wl_surface#71) +[2618698.384] {Default Queue} wl_pointer#1417.leave(679, wl_surface#71) +[2618698.388] {Default Queue} wl_pointer#1449.leave(679, wl_surface#71) +[2618698.392] {Default Queue} wl_pointer#1481.leave(679, wl_surface#71) +[2618698.396] {Default Queue} wl_pointer#1513.leave(679, wl_surface#71) +[2618698.400] {Default Queue} wl_pointer#1545.leave(679, wl_surface#71) +[2618698.404] {Default Queue} wl_pointer#1577.leave(679, wl_surface#71) +[2618698.408] {Default Queue} wl_pointer#1609.leave(679, wl_surface#71) +[2618698.412] {Default Queue} wl_pointer#1641.leave(679, wl_surface#71) +[2618698.416] {Default Queue} wl_pointer#1673.leave(679, wl_surface#71) +[2618698.420] {Default Queue} wl_pointer#1705.leave(679, wl_surface#71) +[2618698.424] {Default Queue} wl_pointer#1737.leave(679, wl_surface#71) +[2618698.429] {Default Queue} wl_pointer#1762.leave(679, wl_surface#71) +[2618698.433] {Default Queue} wl_pointer#1801.leave(679, wl_surface#71) +[2618698.437] {Default Queue} wl_pointer#1833.leave(679, wl_surface#71) +[2618698.441] {Default Queue} wl_pointer#1865.leave(679, wl_surface#71) +[2618698.445] {Default Queue} wl_pointer#1897.leave(679, wl_surface#71) +[2618698.449] {Default Queue} wl_pointer#1929.leave(679, wl_surface#71) +[2618698.453] {Default Queue} wl_pointer#1961.leave(679, wl_surface#71) +[2618698.457] {Default Queue} wl_pointer#1993.leave(679, wl_surface#71) +[2618698.461] {Default Queue} wl_pointer#2025.leave(679, wl_surface#71) +[2618698.465] {Default Queue} wl_pointer#2057.leave(679, wl_surface#71) +[2618698.469] {Default Queue} wl_pointer#2089.leave(679, wl_surface#71) +[2618698.473] {Default Queue} wl_pointer#2121.leave(679, wl_surface#71) +[2618698.477] {Default Queue} wl_pointer#2153.leave(679, wl_surface#71) +[2618698.481] {Default Queue} wl_pointer#2185.leave(679, wl_surface#71) +[2618698.485] {Default Queue} wl_pointer#2217.leave(679, wl_surface#71) +[2618698.489] {Default Queue} wl_pointer#2249.leave(679, wl_surface#71) +[2618698.493] {Default Queue} wl_pointer#2281.leave(679, wl_surface#71) +[2618698.497] {Default Queue} wl_pointer#2313.leave(679, wl_surface#71) +[2618698.501] {Default Queue} wl_pointer#2345.leave(679, wl_surface#71) +[2618698.505] {Default Queue} wl_pointer#2377.leave(679, wl_surface#71) +[2618698.512] {Default Queue} wl_pointer#2409.leave(679, wl_surface#71) +[2618698.517] {Default Queue} wl_pointer#2441.leave(679, wl_surface#71) +[2618698.522] {Default Queue} wl_pointer#2473.leave(679, wl_surface#71) +[2618698.526] {Default Queue} wl_pointer#2498.leave(679, wl_surface#71) +[2618698.530] {Default Queue} wl_pointer#2537.leave(679, wl_surface#71) +[2618698.534] {Default Queue} wl_pointer#2569.leave(679, wl_surface#71) +[2618698.538] {Default Queue} wl_pointer#2601.leave(679, wl_surface#71) +[2618698.542] {Default Queue} wl_pointer#2633.leave(679, wl_surface#71) +[2618698.546] {Default Queue} wl_pointer#2665.leave(679, wl_surface#71) +[2618698.550] {Default Queue} wl_pointer#2697.leave(679, wl_surface#71) +[2618698.554] {Default Queue} wl_pointer#2729.leave(679, wl_surface#71) +[2618698.558] {Default Queue} wl_pointer#2761.leave(679, wl_surface#71) +[2618698.562] {Default Queue} wl_pointer#2793.leave(679, wl_surface#71) +[2618698.566] {Default Queue} wl_pointer#2825.leave(679, wl_surface#71) +[2618698.571] {Default Queue} wl_pointer#2857.leave(679, wl_surface#71) +[2618698.576] {Default Queue} wl_pointer#2889.leave(679, wl_surface#71) +[2618698.582] {Default Queue} wl_pointer#2921.leave(679, wl_surface#71) +[2618698.587] {Default Queue} wl_pointer#2953.leave(679, wl_surface#71) +[2618698.592] {Default Queue} wl_pointer#2985.leave(679, wl_surface#71) +[2618698.597] {Default Queue} wl_pointer#3017.leave(679, wl_surface#71) +[2618698.603] {Default Queue} wl_pointer#3049.leave(679, wl_surface#71) +[2618698.622] {Default Queue} wl_pointer#3081.leave(679, wl_surface#71) +[2618698.634] {Default Queue} wl_pointer#3113.leave(679, wl_surface#71) +[2618698.640] {Default Queue} wl_pointer#3145.leave(679, wl_surface#71) +[2618698.644] {Default Queue} wl_pointer#3177.leave(679, wl_surface#71) +[2618698.648] {Default Queue} wl_pointer#3209.leave(679, wl_surface#71) +[2618698.653] {Default Queue} wl_pointer#3241.leave(679, wl_surface#71) +[2618698.657] {Default Queue} wl_pointer#3273.leave(679, wl_surface#71) +[2618698.661] {Default Queue} wl_pointer#3305.leave(679, wl_surface#71) +[2618698.665] {Default Queue} wl_pointer#3337.leave(679, wl_surface#71) +[2618698.669] {Default Queue} wl_pointer#3369.leave(679, wl_surface#71) +[2618698.673] {Default Queue} wl_pointer#3401.leave(679, wl_surface#71) +[2618698.677] {Default Queue} wl_pointer#3433.leave(679, wl_surface#71) +[2618698.681] {Default Queue} wl_pointer#3465.leave(679, wl_surface#71) +[2618698.685] {Default Queue} wl_pointer#3497.leave(679, wl_surface#71) +[2618698.689] {Default Queue} wl_pointer#3529.leave(679, wl_surface#71) +[2618698.693] {Default Queue} wl_pointer#3561.leave(679, wl_surface#71) +[2618698.697] {Default Queue} wl_pointer#3593.leave(679, wl_surface#71) +[2618698.702] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) +[2618698.707] {Default Queue} -> wl_surface#2247.commit() +[2618699.799] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) +[2618699.805] {Default Queue} -> wl_surface#2247.commit() +[2618699.812] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) +[2618699.816] {Default Queue} -> wl_surface#2247.commit() +[2618699.822] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) +[2618699.827] {Default Queue} -> wl_surface#2215.commit() +[2618700.866] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) +[2618700.873] {Default Queue} -> wl_surface#2215.commit() +[2618700.883] {Default Queue} -> wl_region#2239.subtract(0, 0, 19, 48) +[2618700.888] {Default Queue} -> wl_region#2239.add(-20, -49, 19, 48) +[2618700.893] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) +[2618700.897] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) +[2618700.903] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) +[2618700.907] {Default Queue} -> wl_surface#2215.commit() +[2618700.911] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) +[2618700.916] {Default Queue} -> wl_surface#2215.commit() +[2618700.922] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) +[2618700.932] {Default Queue} -> wl_surface#2215.commit() +[2618700.942] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) +[2618700.947] {Default Queue} -> wl_surface#2151.commit() +[2618701.207] {Display Queue} wl_display#1.delete_id(3485) +[2618701.214] {Display Queue} wl_display#1.delete_id(3516) +[2618701.218] {Display Queue} wl_display#1.delete_id(3483) +[2618701.222] {Display Queue} wl_display#1.delete_id(3486) +[2618701.226] {Display Queue} wl_display#1.delete_id(3515) +[2618701.230] {Display Queue} wl_display#1.delete_id(3294) +[2618701.234] {Display Queue} wl_display#1.delete_id(3293) +[2618701.238] {Display Queue} wl_display#1.delete_id(3292) +[2618701.242] {Display Queue} wl_display#1.delete_id(3291) +[2618701.246] {Display Queue} wl_display#1.delete_id(3484) +[2618701.250] {Display Queue} wl_display#1.delete_id(3671) +[2618701.253] {Display Queue} wl_display#1.delete_id(3681) +[2618701.257] {Display Queue} wl_display#1.delete_id(3684) +[2618701.261] {Display Queue} wl_display#1.delete_id(3679) +[2618701.265] {Display Queue} wl_display#1.delete_id(3682) +[2618701.269] {Default Queue} wl_pointer#3625.leave(679, wl_surface#71) +[2618701.274] {Default Queue} wl_pointer#3657.leave(679, wl_surface#71) +[2618701.278] {Default Queue} wl_pointer#3695.leave(679, wl_surface#71) +[2618701.287] {Default Queue} -> wl_region#2175.subtract(0, 0, 22, 51) +[2618701.292] {Default Queue} -> wl_region#2175.add(-20, -49, 19, 48) +[2618701.298] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) +[2618701.302] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) +[2618701.308] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) +[2618701.313] {Default Queue} -> wl_surface#2151.commit() +[2618701.317] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) +[2618701.321] {Default Queue} -> wl_surface#2151.commit() +[2618701.326] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) +[2618701.331] {Default Queue} -> wl_surface#2151.commit() +[2618701.336] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) +[2618701.341] {Default Queue} -> wl_surface#2119.commit() +[2618702.401] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) +[2618702.407] {Default Queue} -> wl_surface#2119.commit() +[2618702.416] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) +[2618702.421] {Default Queue} -> wl_region#2143.add(0, 0, 2, 2) +[2618702.425] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618702.429] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618702.439] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) +[2618702.448] {Default Queue} -> wl_region#2143.add(0, 0, 2, 2) +[2618702.452] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618702.456] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618702.461] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) +[2618702.466] {Default Queue} -> wl_region#2143.add(0, 0, 2, 2) +[2618702.470] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618702.474] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618702.479] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) +[2618702.483] {Default Queue} -> wl_region#2143.add(0, 0, 2, 2) +[2618702.487] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618702.491] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618702.498] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) +[2618702.502] {Default Queue} -> wl_region#2143.add(0, 0, 2, 2) +[2618702.506] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618702.510] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618702.515] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) +[2618702.519] {Default Queue} -> wl_surface#2119.commit() +[2618702.523] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) +[2618702.527] {Default Queue} -> wl_surface#2119.commit() +[2618702.537] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) +[2618702.543] {Default Queue} -> wl_surface#2119.commit() +[2618702.550] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) +[2618702.554] {Default Queue} -> wl_surface#2407.commit() +[2618703.616] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) +[2618703.621] {Default Queue} -> wl_surface#2407.commit() +[2618703.631] {Default Queue} -> wl_region#2431.subtract(0, 0, 19, 48) +[2618703.636] {Default Queue} -> wl_region#2431.add(-20, -49, 19, 48) +[2618703.640] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2618703.644] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2618703.804] {Default Queue} -> wl_region#2431.subtract(0, 0, 19, 48) +[2618703.809] {Default Queue} -> wl_region#2431.add(-20, -49, 19, 48) +[2618703.814] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2618703.818] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2618703.824] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618703.829] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618703.968] {Default Queue} -> wl_region#2431.subtract(0, 0, 19, 48) +[2618703.981] {Default Queue} -> wl_region#2431.add(-20, -49, 19, 48) +[2618703.987] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2618703.992] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2618704.002] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618704.009] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618704.017] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) +[2618704.023] {Default Queue} -> wl_surface#2407.commit() +[2618704.028] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) +[2618704.032] {Default Queue} -> wl_surface#2407.commit() +[2618704.039] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) +[2618704.043] {Default Queue} -> wl_surface#2407.commit() +[2618704.050] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) +[2618704.054] {Default Queue} -> wl_surface#2471.commit() +[2618705.119] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) +[2618705.124] {Default Queue} -> wl_surface#2471.commit() +[2618705.142] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618705.147] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618705.152] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618705.156] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618705.164] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618705.168] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618705.172] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618705.176] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618705.181] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618705.185] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618705.189] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618705.193] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618705.198] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618705.202] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618705.206] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618705.210] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618705.215] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618705.219] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618705.223] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618705.227] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618705.233] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618705.238] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618705.242] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618705.246] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618705.253] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618705.261] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618705.266] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618705.270] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618705.274] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618705.279] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618705.283] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618705.287] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618705.291] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618705.296] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618705.300] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618705.304] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618705.309] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618705.313] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618705.317] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618705.321] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618705.327] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618705.331] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618705.335] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618705.339] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618705.344] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618705.348] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618705.352] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618705.356] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618705.361] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618705.365] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618705.369] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618705.373] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618705.377] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618705.382] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618705.386] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618705.390] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618705.395] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618705.399] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618705.403] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618705.407] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618705.412] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618705.416] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618705.420] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618705.424] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618705.429] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618705.433] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618705.437] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618705.441] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618705.445] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) +[2618705.450] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) +[2618705.454] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618705.458] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618705.462] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) +[2618705.466] {Default Queue} -> wl_surface#2471.commit() +[2618705.471] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) +[2618705.475] {Default Queue} -> wl_surface#2471.commit() +[2618705.480] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) +[2618705.488] {Default Queue} -> wl_surface#2471.commit() +[2618705.495] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) +[2618705.500] {Default Queue} -> wl_surface#2439.commit() +[2618706.566] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) +[2618706.578] {Default Queue} -> wl_surface#2439.commit() +[2618706.589] {Default Queue} -> wl_region#2463.subtract(0, 0, 19, 48) +[2618706.596] {Default Queue} -> wl_region#2463.add(-20, -49, 19, 48) +[2618706.602] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) +[2618706.608] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) +[2618706.615] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) +[2618706.621] {Default Queue} -> wl_surface#2439.commit() +[2618706.626] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) +[2618706.632] {Default Queue} -> wl_surface#2439.commit() +[2618706.640] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) +[2618706.646] {Default Queue} -> wl_surface#2439.commit() +[2618706.654] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) +[2618706.659] {Default Queue} -> wl_surface#2375.commit() +[2618707.726] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) +[2618707.738] {Default Queue} -> wl_surface#2375.commit() +[2618707.748] {Default Queue} -> wl_region#2399.subtract(0, 0, 22, 51) +[2618707.754] {Default Queue} -> wl_region#2399.add(-20, -49, 19, 48) +[2618707.758] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) +[2618707.763] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) +[2618707.769] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) +[2618707.774] {Default Queue} -> wl_surface#2375.commit() +[2618707.778] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) +[2618707.782] {Default Queue} -> wl_surface#2375.commit() +[2618707.789] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) +[2618707.793] {Default Queue} -> wl_surface#2375.commit() +[2618707.799] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) +[2618707.803] {Default Queue} -> wl_surface#2343.commit() +[2618708.867] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) +[2618708.873] {Default Queue} -> wl_surface#2343.commit() +[2618708.883] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) +[2618708.888] {Default Queue} -> wl_region#2367.add(0, 0, 2, 2) +[2618708.893] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618708.897] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618708.904] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) +[2618708.908] {Default Queue} -> wl_region#2367.add(0, 0, 2, 2) +[2618708.912] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618708.916] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618708.922] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) +[2618708.937] {Default Queue} -> wl_region#2367.add(0, 0, 2, 2) +[2618708.941] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618708.946] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618708.951] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) +[2618708.955] {Default Queue} -> wl_region#2367.add(0, 0, 2, 2) +[2618708.959] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618708.963] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618708.970] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) +[2618708.976] {Default Queue} -> wl_region#2367.add(0, 0, 2, 2) +[2618708.980] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618708.984] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618708.989] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) +[2618708.993] {Default Queue} -> wl_surface#2343.commit() +[2618708.997] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) +[2618709.007] {Default Queue} -> wl_surface#2343.commit() +[2618709.019] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) +[2618709.024] {Default Queue} -> wl_surface#2343.commit() +[2618709.031] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) +[2618709.035] {Default Queue} -> wl_surface#2567.commit() +[2618710.097] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) +[2618710.102] {Default Queue} -> wl_surface#2567.commit() +[2618710.112] {Default Queue} -> wl_region#2591.subtract(0, 0, 19, 48) +[2618710.118] {Default Queue} -> wl_region#2591.add(-20, -49, 19, 48) +[2618710.122] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2618710.126] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2618710.262] {Default Queue} -> wl_region#2591.subtract(0, 0, 19, 48) +[2618710.267] {Default Queue} -> wl_region#2591.add(-20, -49, 19, 48) +[2618710.271] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2618710.275] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2618710.281] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618710.286] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618710.380] {Default Queue} -> wl_region#2591.subtract(0, 0, 19, 48) +[2618710.385] {Default Queue} -> wl_region#2591.add(-20, -49, 19, 48) +[2618710.389] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2618710.393] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2618710.398] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618710.402] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618710.407] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) +[2618710.411] {Default Queue} -> wl_surface#2567.commit() +[2618710.416] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) +[2618710.420] {Default Queue} -> wl_surface#2567.commit() +[2618710.425] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) +[2618710.430] {Default Queue} -> wl_surface#2567.commit() +[2618710.436] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) +[2618710.440] {Default Queue} -> wl_surface#2631.commit() +[2618711.506] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) +[2618711.518] {Default Queue} -> wl_surface#2631.commit() +[2618711.533] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) +[2618711.540] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) +[2618711.546] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618711.552] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618711.563] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) +[2618711.569] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) +[2618711.575] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618711.580] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618711.587] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) +[2618711.593] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) +[2618711.598] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618711.604] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618711.610] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) +[2618711.616] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) +[2618711.622] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618711.627] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618711.634] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) +[2618711.639] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) +[2618711.645] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618711.650] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618711.660] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) +[2618711.665] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) +[2618711.671] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618711.683] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618711.693] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) +[2618711.698] {Default Queue} -> wl_surface#2631.commit() +[2618711.704] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) +[2618711.709] {Default Queue} -> wl_surface#2631.commit() +[2618711.717] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) +[2618711.723] {Default Queue} -> wl_surface#2631.commit() +[2618711.731] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) +[2618711.738] {Default Queue} -> wl_surface#2599.commit() +[2618712.804] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) +[2618712.816] {Default Queue} -> wl_surface#2599.commit() +[2618712.827] {Default Queue} -> wl_region#2623.subtract(0, 0, 19, 48) +[2618712.832] {Default Queue} -> wl_region#2623.add(-20, -49, 19, 48) +[2618712.837] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) +[2618712.841] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) +[2618712.847] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) +[2618712.851] {Default Queue} -> wl_surface#2599.commit() +[2618712.855] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) +[2618712.859] {Default Queue} -> wl_surface#2599.commit() +[2618712.867] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) +[2618712.876] {Default Queue} -> wl_surface#2599.commit() +[2618712.882] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) +[2618712.886] {Default Queue} -> wl_surface#2535.commit() +[2618713.950] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) +[2618713.956] {Default Queue} -> wl_surface#2535.commit() +[2618713.964] {Default Queue} -> wl_region#2559.subtract(0, 0, 22, 51) +[2618713.970] {Default Queue} -> wl_region#2559.add(-20, -49, 19, 48) +[2618713.974] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) +[2618713.978] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) +[2618713.983] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) +[2618713.988] {Default Queue} -> wl_surface#2535.commit() +[2618713.992] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) +[2618713.996] {Default Queue} -> wl_surface#2535.commit() +[2618714.001] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) +[2618714.006] {Default Queue} -> wl_surface#2535.commit() +[2618714.011] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) +[2618714.016] {Default Queue} -> wl_surface#2508.commit() +[2618715.077] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) +[2618715.083] {Default Queue} -> wl_surface#2508.commit() +[2618715.092] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) +[2618715.098] {Default Queue} -> wl_region#2527.add(0, 0, 2, 2) +[2618715.102] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618715.106] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618715.113] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) +[2618715.117] {Default Queue} -> wl_region#2527.add(0, 0, 2, 2) +[2618715.122] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618715.126] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618715.131] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) +[2618715.135] {Default Queue} -> wl_region#2527.add(0, 0, 2, 2) +[2618715.139] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618715.143] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618715.148] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) +[2618715.153] {Default Queue} -> wl_region#2527.add(0, 0, 2, 2) +[2618715.157] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618715.161] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618715.167] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) +[2618715.177] {Default Queue} -> wl_region#2527.add(0, 0, 2, 2) +[2618715.184] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618715.188] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618715.192] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) +[2618715.196] {Default Queue} -> wl_surface#2508.commit() +[2618715.200] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) +[2618715.204] {Default Queue} -> wl_surface#2508.commit() +[2618715.210] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) +[2618715.214] {Default Queue} -> wl_surface#2508.commit() +[2618715.221] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) +[2618715.225] {Default Queue} -> wl_surface#2727.commit() +[2618716.286] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) +[2618716.291] {Default Queue} -> wl_surface#2727.commit() +[2618716.299] {Default Queue} -> wl_region#2751.subtract(0, 0, 19, 48) +[2618716.304] {Default Queue} -> wl_region#2751.add(-20, -49, 19, 48) +[2618716.309] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2618716.313] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2618716.445] {Default Queue} -> wl_region#2751.subtract(0, 0, 19, 48) +[2618716.455] {Default Queue} -> wl_region#2751.add(-20, -49, 19, 48) +[2618716.460] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2618716.466] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2618716.475] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618716.481] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618716.587] {Default Queue} -> wl_region#2751.subtract(0, 0, 19, 48) +[2618716.595] {Default Queue} -> wl_region#2751.add(-20, -49, 19, 48) +[2618716.601] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2618716.607] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2618716.615] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618716.620] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618716.627] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) +[2618716.633] {Default Queue} -> wl_surface#2727.commit() +[2618716.639] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) +[2618716.644] {Default Queue} -> wl_surface#2727.commit() +[2618716.653] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) +[2618716.658] {Default Queue} -> wl_surface#2727.commit() +[2618716.666] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) +[2618716.672] {Default Queue} -> wl_surface#2791.commit() +[2618717.738] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) +[2618717.750] {Default Queue} -> wl_surface#2791.commit() +[2618717.761] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618717.766] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618717.771] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618717.775] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618717.783] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618717.790] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618717.794] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618717.798] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618717.803] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618717.807] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618717.812] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618717.816] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618717.820] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618717.824] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618717.829] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618717.832] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618717.837] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618717.846] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618717.853] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618717.857] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618717.867] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618717.871] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618717.875] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618717.879] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618717.883] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618717.888] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618717.892] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618717.896] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618717.900] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618717.904] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618717.908] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618717.912] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618717.917] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618717.921] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618717.925] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618717.929] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618717.939] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618717.946] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618717.950] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618717.954] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618717.958] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618717.962] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618717.967] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618717.970] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618717.975] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618717.979] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618717.983] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618717.987] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618717.992] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) +[2618717.996] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) +[2618718.000] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618718.004] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618718.009] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) +[2618718.013] {Default Queue} -> wl_surface#2791.commit() +[2618718.017] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) +[2618718.022] {Default Queue} -> wl_surface#2791.commit() +[2618718.028] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) +[2618718.032] {Default Queue} -> wl_surface#2791.commit() +[2618718.039] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) +[2618718.043] {Default Queue} -> wl_surface#2759.commit() +[2618719.105] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) +[2618719.112] {Default Queue} -> wl_surface#2759.commit() +[2618719.119] {Default Queue} -> wl_region#2783.subtract(0, 0, 19, 48) +[2618719.125] {Default Queue} -> wl_region#2783.add(-20, -49, 19, 48) +[2618719.130] {Default Queue} -> wl_surface#2759.set_opaque_region(wl_region#2784) +[2618719.134] {Default Queue} -> wl_surface#2759.set_input_region(wl_region#2783) +[2618719.139] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) +[2618719.143] {Default Queue} -> wl_surface#2759.commit() +[2618719.147] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) +[2618719.152] {Default Queue} -> wl_surface#2759.commit() +[2618719.157] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) +[2618719.165] {Default Queue} -> wl_surface#2759.commit() +[2618719.173] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) +[2618719.177] {Default Queue} -> wl_surface#2695.commit() +[2618720.239] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) +[2618720.244] {Default Queue} -> wl_surface#2695.commit() +[2618720.250] {Default Queue} -> wl_region#2719.subtract(0, 0, 22, 51) +[2618720.254] {Default Queue} -> wl_region#2719.add(-20, -49, 19, 48) +[2618720.259] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) +[2618720.263] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) +[2618720.267] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) +[2618720.272] {Default Queue} -> wl_surface#2695.commit() +[2618720.276] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) +[2618720.280] {Default Queue} -> wl_surface#2695.commit() +[2618720.285] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) +[2618720.289] {Default Queue} -> wl_surface#2695.commit() +[2618720.295] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) +[2618720.299] {Default Queue} -> wl_surface#2663.commit() +[2618721.335] {Display Queue} wl_display#1.delete_id(3452) +[2618721.347] {Display Queue} wl_display#1.delete_id(3451) +[2618721.353] {Display Queue} wl_display#1.delete_id(3518) +[2618721.358] {Display Queue} wl_display#1.delete_id(3517) +[2618721.363] {Display Queue} wl_display#1.delete_id(3454) +[2618721.369] {Display Queue} wl_display#1.delete_id(3683) +[2618721.395] {Display Queue} wl_display#1.delete_id(94) +[2618721.406] {Display Queue} wl_display#1.delete_id(93) +[2618721.412] {Display Queue} wl_display#1.delete_id(92) +[2618721.418] {Display Queue} wl_display#1.delete_id(91) +[2618721.423] {Default Queue} wl_pointer#24.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.431] {Default Queue} -> wl_pointer#24.set_cursor(690, wl_surface#41, 0, 0) +[2618721.436] {Default Queue} wl_pointer#81.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.441] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#41, 0, 0) +[2618721.446] {Default Queue} wl_pointer#105.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.450] {Default Queue} -> wl_pointer#105.set_cursor(690, wl_surface#41, 0, 0) +[2618721.454] {Default Queue} wl_pointer#137.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.459] {Default Queue} -> wl_pointer#137.set_cursor(690, wl_surface#41, 0, 0) +[2618721.463] {Default Queue} wl_pointer#169.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.467] {Default Queue} -> wl_pointer#169.set_cursor(690, wl_surface#41, 0, 0) +[2618721.471] {Default Queue} wl_pointer#201.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.476] {Default Queue} -> wl_pointer#201.set_cursor(690, wl_surface#41, 0, 0) +[2618721.480] {Default Queue} wl_pointer#233.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.484] {Default Queue} -> wl_pointer#233.set_cursor(690, wl_surface#41, 0, 0) +[2618721.489] {Default Queue} wl_pointer#265.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.493] {Default Queue} -> wl_pointer#265.set_cursor(690, wl_surface#41, 0, 0) +[2618721.497] {Default Queue} wl_pointer#297.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.502] {Default Queue} -> wl_pointer#297.set_cursor(690, wl_surface#41, 0, 0) +[2618721.506] {Default Queue} wl_pointer#329.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.510] {Default Queue} -> wl_pointer#329.set_cursor(690, wl_surface#41, 0, 0) +[2618721.514] {Default Queue} wl_pointer#361.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.519] {Default Queue} -> wl_pointer#361.set_cursor(690, wl_surface#41, 0, 0) +[2618721.523] {Default Queue} wl_pointer#393.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.527] {Default Queue} -> wl_pointer#393.set_cursor(690, wl_surface#41, 0, 0) +[2618721.531] {Default Queue} wl_pointer#425.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.541] {Default Queue} -> wl_pointer#425.set_cursor(690, wl_surface#41, 0, 0) +[2618721.548] {Default Queue} wl_pointer#457.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.552] {Default Queue} -> wl_pointer#457.set_cursor(690, wl_surface#41, 0, 0) +[2618721.557] {Default Queue} wl_pointer#489.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.561] {Default Queue} -> wl_pointer#489.set_cursor(690, wl_surface#41, 0, 0) +[2618721.565] {Default Queue} wl_pointer#521.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.570] {Default Queue} -> wl_pointer#521.set_cursor(690, wl_surface#41, 0, 0) +[2618721.574] {Default Queue} wl_pointer#553.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.578] {Default Queue} -> wl_pointer#553.set_cursor(690, wl_surface#41, 0, 0) +[2618721.582] {Default Queue} wl_pointer#585.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.587] {Default Queue} -> wl_pointer#585.set_cursor(690, wl_surface#41, 0, 0) +[2618721.591] {Default Queue} wl_pointer#617.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.595] {Default Queue} -> wl_pointer#617.set_cursor(690, wl_surface#41, 0, 0) +[2618721.599] {Default Queue} wl_pointer#649.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.604] {Default Queue} -> wl_pointer#649.set_cursor(690, wl_surface#41, 0, 0) +[2618721.608] {Default Queue} wl_pointer#681.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.612] {Default Queue} -> wl_pointer#681.set_cursor(690, wl_surface#41, 0, 0) +[2618721.616] {Default Queue} wl_pointer#713.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.621] {Default Queue} -> wl_pointer#713.set_cursor(690, wl_surface#41, 0, 0) +[2618721.625] {Default Queue} wl_pointer#745.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.630] {Default Queue} -> wl_pointer#745.set_cursor(690, wl_surface#41, 0, 0) +[2618721.634] {Default Queue} wl_pointer#777.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.638] {Default Queue} -> wl_pointer#777.set_cursor(690, wl_surface#41, 0, 0) +[2618721.643] {Default Queue} wl_pointer#809.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.647] {Default Queue} -> wl_pointer#809.set_cursor(690, wl_surface#41, 0, 0) +[2618721.651] {Default Queue} wl_pointer#841.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.655] {Default Queue} -> wl_pointer#841.set_cursor(690, wl_surface#41, 0, 0) +[2618721.660] {Default Queue} wl_pointer#873.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.664] {Default Queue} -> wl_pointer#873.set_cursor(690, wl_surface#41, 0, 0) +[2618721.668] {Default Queue} wl_pointer#905.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.672] {Default Queue} -> wl_pointer#905.set_cursor(690, wl_surface#41, 0, 0) +[2618721.676] {Default Queue} wl_pointer#937.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.681] {Default Queue} -> wl_pointer#937.set_cursor(690, wl_surface#41, 0, 0) +[2618721.685] {Default Queue} wl_pointer#969.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.689] {Default Queue} -> wl_pointer#969.set_cursor(690, wl_surface#41, 0, 0) +[2618721.694] {Default Queue} wl_pointer#1001.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.698] {Default Queue} -> wl_pointer#1001.set_cursor(690, wl_surface#41, 0, 0) +[2618721.702] {Default Queue} wl_pointer#1033.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.707] {Default Queue} -> wl_pointer#1033.set_cursor(690, wl_surface#41, 0, 0) +[2618721.711] {Default Queue} wl_pointer#1065.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.715] {Default Queue} -> wl_pointer#1065.set_cursor(690, wl_surface#41, 0, 0) +[2618721.719] {Default Queue} wl_pointer#1097.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.724] {Default Queue} -> wl_pointer#1097.set_cursor(690, wl_surface#41, 0, 0) +[2618721.728] {Default Queue} wl_pointer#1129.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.732] {Default Queue} -> wl_pointer#1129.set_cursor(690, wl_surface#41, 0, 0) +[2618721.739] {Default Queue} wl_pointer#1161.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.746] {Default Queue} -> wl_pointer#1161.set_cursor(690, wl_surface#41, 0, 0) +[2618721.750] {Default Queue} wl_pointer#1193.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.754] {Default Queue} -> wl_pointer#1193.set_cursor(690, wl_surface#41, 0, 0) +[2618721.759] {Default Queue} wl_pointer#1225.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.763] {Default Queue} -> wl_pointer#1225.set_cursor(690, wl_surface#41, 0, 0) +[2618721.767] {Default Queue} wl_pointer#1257.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.772] {Default Queue} -> wl_pointer#1257.set_cursor(690, wl_surface#41, 0, 0) +[2618721.776] {Default Queue} wl_pointer#1289.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.780] {Default Queue} -> wl_pointer#1289.set_cursor(690, wl_surface#41, 0, 0) +[2618721.784] {Default Queue} wl_pointer#1321.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.789] {Default Queue} -> wl_pointer#1321.set_cursor(690, wl_surface#41, 0, 0) +[2618721.793] {Default Queue} wl_pointer#1353.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.797] {Default Queue} -> wl_pointer#1353.set_cursor(690, wl_surface#41, 0, 0) +[2618721.802] {Default Queue} wl_pointer#1385.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.806] {Default Queue} -> wl_pointer#1385.set_cursor(690, wl_surface#41, 0, 0) +[2618721.810] {Default Queue} wl_pointer#1417.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.815] {Default Queue} -> wl_pointer#1417.set_cursor(690, wl_surface#41, 0, 0) +[2618721.819] {Default Queue} wl_pointer#1449.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.823] {Default Queue} -> wl_pointer#1449.set_cursor(690, wl_surface#41, 0, 0) +[2618721.827] {Default Queue} wl_pointer#1481.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.832] {Default Queue} -> wl_pointer#1481.set_cursor(690, wl_surface#41, 0, 0) +[2618721.836] {Default Queue} wl_pointer#1513.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.840] {Default Queue} -> wl_pointer#1513.set_cursor(690, wl_surface#41, 0, 0) +[2618721.844] {Default Queue} wl_pointer#1545.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.849] {Default Queue} -> wl_pointer#1545.set_cursor(690, wl_surface#41, 0, 0) +[2618721.853] {Default Queue} wl_pointer#1577.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.857] {Default Queue} -> wl_pointer#1577.set_cursor(690, wl_surface#41, 0, 0) +[2618721.865] {Default Queue} wl_pointer#1609.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.870] {Default Queue} -> wl_pointer#1609.set_cursor(690, wl_surface#41, 0, 0) +[2618721.874] {Default Queue} wl_pointer#1641.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.878] {Default Queue} -> wl_pointer#1641.set_cursor(690, wl_surface#41, 0, 0) +[2618721.883] {Default Queue} wl_pointer#1673.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.887] {Default Queue} -> wl_pointer#1673.set_cursor(690, wl_surface#41, 0, 0) +[2618721.891] {Default Queue} wl_pointer#1705.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.895] {Default Queue} -> wl_pointer#1705.set_cursor(690, wl_surface#41, 0, 0) +[2618721.900] {Default Queue} wl_pointer#1737.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.904] {Default Queue} -> wl_pointer#1737.set_cursor(690, wl_surface#41, 0, 0) +[2618721.908] {Default Queue} wl_pointer#1762.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.913] {Default Queue} -> wl_pointer#1762.set_cursor(690, wl_surface#41, 0, 0) +[2618721.917] {Default Queue} wl_pointer#1801.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.921] {Default Queue} -> wl_pointer#1801.set_cursor(690, wl_surface#41, 0, 0) +[2618721.925] {Default Queue} wl_pointer#1833.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.930] {Default Queue} -> wl_pointer#1833.set_cursor(690, wl_surface#41, 0, 0) +[2618721.937] {Default Queue} wl_pointer#1865.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.943] {Default Queue} -> wl_pointer#1865.set_cursor(690, wl_surface#41, 0, 0) +[2618721.947] {Default Queue} wl_pointer#1897.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.952] {Default Queue} -> wl_pointer#1897.set_cursor(690, wl_surface#41, 0, 0) +[2618721.956] {Default Queue} wl_pointer#1929.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.960] {Default Queue} -> wl_pointer#1929.set_cursor(690, wl_surface#41, 0, 0) +[2618721.964] {Default Queue} wl_pointer#1961.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.969] {Default Queue} -> wl_pointer#1961.set_cursor(690, wl_surface#41, 0, 0) +[2618721.973] {Default Queue} wl_pointer#1993.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.977] {Default Queue} -> wl_pointer#1993.set_cursor(690, wl_surface#41, 0, 0) +[2618721.982] {Default Queue} wl_pointer#2025.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.986] {Default Queue} -> wl_pointer#2025.set_cursor(690, wl_surface#41, 0, 0) +[2618721.990] {Default Queue} wl_pointer#2057.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618721.994] {Default Queue} -> wl_pointer#2057.set_cursor(690, wl_surface#41, 0, 0) +[2618721.999] {Default Queue} wl_pointer#2089.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.003] {Default Queue} -> wl_pointer#2089.set_cursor(690, wl_surface#41, 0, 0) +[2618722.008] {Default Queue} wl_pointer#2121.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.012] {Default Queue} -> wl_pointer#2121.set_cursor(690, wl_surface#41, 0, 0) +[2618722.016] {Default Queue} wl_pointer#2153.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.021] {Default Queue} -> wl_pointer#2153.set_cursor(690, wl_surface#41, 0, 0) +[2618722.025] {Default Queue} wl_pointer#2185.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.029] {Default Queue} -> wl_pointer#2185.set_cursor(690, wl_surface#41, 0, 0) +[2618722.034] {Default Queue} wl_pointer#2217.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.038] {Default Queue} -> wl_pointer#2217.set_cursor(690, wl_surface#41, 0, 0) +[2618722.043] {Default Queue} wl_pointer#2249.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.047] {Default Queue} -> wl_pointer#2249.set_cursor(690, wl_surface#41, 0, 0) +[2618722.051] {Default Queue} wl_pointer#2281.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.055] {Default Queue} -> wl_pointer#2281.set_cursor(690, wl_surface#41, 0, 0) +[2618722.060] {Default Queue} wl_pointer#2313.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.064] {Default Queue} -> wl_pointer#2313.set_cursor(690, wl_surface#41, 0, 0) +[2618722.068] {Default Queue} wl_pointer#2345.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.073] {Default Queue} -> wl_pointer#2345.set_cursor(690, wl_surface#41, 0, 0) +[2618722.077] {Default Queue} wl_pointer#2377.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.081] {Default Queue} -> wl_pointer#2377.set_cursor(690, wl_surface#41, 0, 0) +[2618722.085] {Default Queue} wl_pointer#2409.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.090] {Default Queue} -> wl_pointer#2409.set_cursor(690, wl_surface#41, 0, 0) +[2618722.094] {Default Queue} wl_pointer#2441.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.098] {Default Queue} -> wl_pointer#2441.set_cursor(690, wl_surface#41, 0, 0) +[2618722.103] {Default Queue} wl_pointer#2473.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.107] {Default Queue} -> wl_pointer#2473.set_cursor(690, wl_surface#41, 0, 0) +[2618722.111] {Default Queue} wl_pointer#2498.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.115] {Default Queue} -> wl_pointer#2498.set_cursor(690, wl_surface#41, 0, 0) +[2618722.120] {Default Queue} wl_pointer#2537.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.124] {Default Queue} -> wl_pointer#2537.set_cursor(690, wl_surface#41, 0, 0) +[2618722.128] {Default Queue} wl_pointer#2569.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.135] {Default Queue} -> wl_pointer#2569.set_cursor(690, wl_surface#41, 0, 0) +[2618722.141] {Default Queue} wl_pointer#2601.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.146] {Default Queue} -> wl_pointer#2601.set_cursor(690, wl_surface#41, 0, 0) +[2618722.150] {Default Queue} wl_pointer#2633.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.154] {Default Queue} -> wl_pointer#2633.set_cursor(690, wl_surface#41, 0, 0) +[2618722.158] {Default Queue} wl_pointer#2665.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.163] {Default Queue} -> wl_pointer#2665.set_cursor(690, wl_surface#41, 0, 0) +[2618722.167] {Default Queue} wl_pointer#2697.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.171] {Default Queue} -> wl_pointer#2697.set_cursor(690, wl_surface#41, 0, 0) +[2618722.175] {Default Queue} wl_pointer#2729.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.180] {Default Queue} -> wl_pointer#2729.set_cursor(690, wl_surface#41, 0, 0) +[2618722.184] {Default Queue} wl_pointer#2761.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.188] {Default Queue} -> wl_pointer#2761.set_cursor(690, wl_surface#41, 0, 0) +[2618722.193] {Default Queue} wl_pointer#2793.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.197] {Default Queue} -> wl_pointer#2793.set_cursor(690, wl_surface#41, 0, 0) +[2618722.201] {Default Queue} wl_pointer#2825.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.205] {Default Queue} -> wl_pointer#2825.set_cursor(690, wl_surface#41, 0, 0) +[2618722.210] {Default Queue} wl_pointer#2857.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.214] {Default Queue} -> wl_pointer#2857.set_cursor(690, wl_surface#41, 0, 0) +[2618722.218] {Default Queue} wl_pointer#2889.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.222] {Default Queue} -> wl_pointer#2889.set_cursor(690, wl_surface#41, 0, 0) +[2618722.227] {Default Queue} wl_pointer#2921.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.231] {Default Queue} -> wl_pointer#2921.set_cursor(690, wl_surface#41, 0, 0) +[2618722.235] {Default Queue} wl_pointer#2953.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.239] {Default Queue} -> wl_pointer#2953.set_cursor(690, wl_surface#41, 0, 0) +[2618722.244] {Default Queue} wl_pointer#2985.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.248] {Default Queue} -> wl_pointer#2985.set_cursor(690, wl_surface#41, 0, 0) +[2618722.252] {Default Queue} wl_pointer#3017.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.257] {Default Queue} -> wl_pointer#3017.set_cursor(690, wl_surface#41, 0, 0) +[2618722.261] {Default Queue} wl_pointer#3049.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.265] {Default Queue} -> wl_pointer#3049.set_cursor(690, wl_surface#41, 0, 0) +[2618722.270] {Default Queue} wl_pointer#3081.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.274] {Default Queue} -> wl_pointer#3081.set_cursor(690, wl_surface#41, 0, 0) +[2618722.278] {Default Queue} wl_pointer#3113.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.282] {Default Queue} -> wl_pointer#3113.set_cursor(690, wl_surface#41, 0, 0) +[2618722.287] {Default Queue} wl_pointer#3145.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.291] {Default Queue} -> wl_pointer#3145.set_cursor(690, wl_surface#41, 0, 0) +[2618722.295] {Default Queue} wl_pointer#3177.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.300] {Default Queue} -> wl_pointer#3177.set_cursor(690, wl_surface#41, 0, 0) +[2618722.304] {Default Queue} wl_pointer#3209.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.308] {Default Queue} -> wl_pointer#3209.set_cursor(690, wl_surface#41, 0, 0) +[2618722.312] {Default Queue} wl_pointer#3241.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.317] {Default Queue} -> wl_pointer#3241.set_cursor(690, wl_surface#41, 0, 0) +[2618722.321] {Default Queue} wl_pointer#3273.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.328] {Default Queue} -> wl_pointer#3273.set_cursor(690, wl_surface#41, 0, 0) +[2618722.334] {Default Queue} wl_pointer#3305.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.338] {Default Queue} -> wl_pointer#3305.set_cursor(690, wl_surface#41, 0, 0) +[2618722.342] {Default Queue} wl_pointer#3337.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.347] {Default Queue} -> wl_pointer#3337.set_cursor(690, wl_surface#41, 0, 0) +[2618722.351] {Default Queue} wl_pointer#3369.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.355] {Default Queue} -> wl_pointer#3369.set_cursor(690, wl_surface#41, 0, 0) +[2618722.360] {Default Queue} wl_pointer#3401.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.364] {Default Queue} -> wl_pointer#3401.set_cursor(690, wl_surface#41, 0, 0) +[2618722.368] {Default Queue} wl_pointer#3433.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.372] {Default Queue} -> wl_pointer#3433.set_cursor(690, wl_surface#41, 0, 0) +[2618722.377] {Default Queue} wl_pointer#3465.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.381] {Default Queue} -> wl_pointer#3465.set_cursor(690, wl_surface#41, 0, 0) +[2618722.386] {Default Queue} wl_pointer#3497.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.393] {Default Queue} -> wl_pointer#3497.set_cursor(690, wl_surface#41, 0, 0) +[2618722.398] {Default Queue} wl_pointer#3529.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.402] {Default Queue} -> wl_pointer#3529.set_cursor(690, wl_surface#41, 0, 0) +[2618722.407] {Default Queue} wl_pointer#3561.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.411] {Default Queue} -> wl_pointer#3561.set_cursor(690, wl_surface#41, 0, 0) +[2618722.415] {Default Queue} wl_pointer#3593.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.420] {Default Queue} -> wl_pointer#3593.set_cursor(690, wl_surface#41, 0, 0) +[2618722.424] {Default Queue} wl_pointer#3625.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.428] {Default Queue} -> wl_pointer#3625.set_cursor(690, wl_surface#41, 0, 0) +[2618722.432] {Default Queue} wl_pointer#3657.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.437] {Default Queue} -> wl_pointer#3657.set_cursor(690, wl_surface#41, 0, 0) +[2618722.441] {Default Queue} wl_pointer#3695.enter(690, wl_surface#43, 31.00000000, 27.80078125) +[2618722.445] {Default Queue} wl_pointer#24.motion(187310356, 30.60156250, 27.00000000) +[2618722.450] {Default Queue} wl_pointer#81.motion(187310356, 30.60156250, 27.00000000) +[2618722.456] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618722.460] {Default Queue} wl_pointer#105.motion(187310356, 30.60156250, 27.00000000) +[2618722.465] {Default Queue} wl_pointer#137.motion(187310356, 30.60156250, 27.00000000) +[2618722.469] {Default Queue} wl_pointer#169.motion(187310356, 30.60156250, 27.00000000) +[2618722.473] {Default Queue} wl_pointer#201.motion(187310356, 30.60156250, 27.00000000) +[2618722.477] {Default Queue} wl_pointer#233.motion(187310356, 30.60156250, 27.00000000) +[2618722.482] {Default Queue} wl_pointer#265.motion(187310356, 30.60156250, 27.00000000) +[2618722.486] {Default Queue} wl_pointer#297.motion(187310356, 30.60156250, 27.00000000) +[2618722.490] {Default Queue} wl_pointer#329.motion(187310356, 30.60156250, 27.00000000) +[2618722.495] {Default Queue} wl_pointer#361.motion(187310356, 30.60156250, 27.00000000) +[2618722.499] {Default Queue} wl_pointer#393.motion(187310356, 30.60156250, 27.00000000) +[2618722.504] {Default Queue} wl_pointer#425.motion(187310356, 30.60156250, 27.00000000) +[2618722.508] {Default Queue} wl_pointer#457.motion(187310356, 30.60156250, 27.00000000) +[2618722.512] {Default Queue} wl_pointer#489.motion(187310356, 30.60156250, 27.00000000) +[2618722.516] {Default Queue} wl_pointer#521.motion(187310356, 30.60156250, 27.00000000) +[2618722.521] {Default Queue} wl_pointer#553.motion(187310356, 30.60156250, 27.00000000) +[2618722.525] {Default Queue} wl_pointer#585.motion(187310356, 30.60156250, 27.00000000) +[2618722.532] {Default Queue} wl_pointer#617.motion(187310356, 30.60156250, 27.00000000) +[2618722.538] {Default Queue} wl_pointer#649.motion(187310356, 30.60156250, 27.00000000) +[2618722.543] {Default Queue} wl_pointer#681.motion(187310356, 30.60156250, 27.00000000) +[2618722.547] {Default Queue} wl_pointer#713.motion(187310356, 30.60156250, 27.00000000) +[2618722.551] {Default Queue} wl_pointer#745.motion(187310356, 30.60156250, 27.00000000) +[2618722.555] {Default Queue} wl_pointer#777.motion(187310356, 30.60156250, 27.00000000) +[2618722.560] {Default Queue} wl_pointer#809.motion(187310356, 30.60156250, 27.00000000) +[2618722.564] {Default Queue} wl_pointer#841.motion(187310356, 30.60156250, 27.00000000) +[2618722.568] {Default Queue} wl_pointer#873.motion(187310356, 30.60156250, 27.00000000) +[2618722.573] {Default Queue} wl_pointer#905.motion(187310356, 30.60156250, 27.00000000) +[2618722.577] {Default Queue} wl_pointer#937.motion(187310356, 30.60156250, 27.00000000) +[2618722.582] {Default Queue} wl_pointer#969.motion(187310356, 30.60156250, 27.00000000) +[2618722.586] {Default Queue} wl_pointer#1001.motion(187310356, 30.60156250, 27.00000000) +[2618722.590] {Default Queue} wl_pointer#1033.motion(187310356, 30.60156250, 27.00000000) +[2618722.595] {Default Queue} wl_pointer#1065.motion(187310356, 30.60156250, 27.00000000) +[2618722.599] {Default Queue} wl_pointer#1097.motion(187310356, 30.60156250, 27.00000000) +[2618722.603] {Default Queue} wl_pointer#1129.motion(187310356, 30.60156250, 27.00000000) +[2618722.607] {Default Queue} wl_pointer#1161.motion(187310356, 30.60156250, 27.00000000) +[2618722.612] {Default Queue} wl_pointer#1193.motion(187310356, 30.60156250, 27.00000000) +[2618722.616] {Default Queue} wl_pointer#1225.motion(187310356, 30.60156250, 27.00000000) +[2618722.620] {Default Queue} wl_pointer#1257.motion(187310356, 30.60156250, 27.00000000) +[2618722.625] {Default Queue} wl_pointer#1289.motion(187310356, 30.60156250, 27.00000000) +[2618722.629] {Default Queue} wl_pointer#1321.motion(187310356, 30.60156250, 27.00000000) +[2618722.633] {Default Queue} wl_pointer#1353.motion(187310356, 30.60156250, 27.00000000) +[2618722.637] {Default Queue} wl_pointer#1385.motion(187310356, 30.60156250, 27.00000000) +[2618722.642] {Default Queue} wl_pointer#1417.motion(187310356, 30.60156250, 27.00000000) +[2618722.646] {Default Queue} wl_pointer#1449.motion(187310356, 30.60156250, 27.00000000) +[2618722.650] {Default Queue} wl_pointer#1481.motion(187310356, 30.60156250, 27.00000000) +[2618722.655] {Default Queue} wl_pointer#1513.motion(187310356, 30.60156250, 27.00000000) +[2618722.659] {Default Queue} wl_pointer#1545.motion(187310356, 30.60156250, 27.00000000) +[2618722.663] {Default Queue} wl_pointer#1577.motion(187310356, 30.60156250, 27.00000000) +[2618722.668] {Default Queue} wl_pointer#1609.motion(187310356, 30.60156250, 27.00000000) +[2618722.672] {Default Queue} wl_pointer#1641.motion(187310356, 30.60156250, 27.00000000) +[2618722.676] {Default Queue} wl_pointer#1673.motion(187310356, 30.60156250, 27.00000000) +[2618722.681] {Default Queue} wl_pointer#1705.motion(187310356, 30.60156250, 27.00000000) +[2618722.685] {Default Queue} wl_pointer#1737.motion(187310356, 30.60156250, 27.00000000) +[2618722.689] {Default Queue} wl_pointer#1762.motion(187310356, 30.60156250, 27.00000000) +[2618722.693] {Default Queue} wl_pointer#1801.motion(187310356, 30.60156250, 27.00000000) +[2618722.698] {Default Queue} wl_pointer#1833.motion(187310356, 30.60156250, 27.00000000) +[2618722.702] {Default Queue} wl_pointer#1865.motion(187310356, 30.60156250, 27.00000000) +[2618722.706] {Default Queue} wl_pointer#1897.motion(187310356, 30.60156250, 27.00000000) +[2618722.713] {Default Queue} wl_pointer#1929.motion(187310356, 30.60156250, 27.00000000) +[2618722.725] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) +[2618722.730] {Default Queue} -> wl_region#2687.add(0, 0, 2, 2) +[2618722.734] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618722.738] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618722.750] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) +[2618722.756] {Default Queue} -> wl_region#2687.add(0, 0, 2, 2) +[2618722.760] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618722.764] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618722.770] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) +[2618722.774] {Default Queue} -> wl_region#2687.add(0, 0, 2, 2) +[2618722.778] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618722.782] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618722.787] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) +[2618722.791] {Default Queue} -> wl_region#2687.add(0, 0, 2, 2) +[2618722.795] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618722.799] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618722.806] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) +[2618722.810] {Default Queue} -> wl_region#2687.add(0, 0, 2, 2) +[2618722.814] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618722.818] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618722.823] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) +[2618722.827] {Default Queue} -> wl_surface#2663.commit() +[2618722.831] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) +[2618722.836] {Default Queue} -> wl_surface#2663.commit() +[2618722.842] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) +[2618722.846] {Default Queue} -> wl_surface#2663.commit() +[2618722.853] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) +[2618722.857] {Default Queue} -> wl_surface#2887.commit() +[2618723.924] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) +[2618723.930] {Default Queue} -> wl_surface#2887.commit() +[2618723.939] {Default Queue} -> wl_region#2911.subtract(0, 0, 19, 48) +[2618723.945] {Default Queue} -> wl_region#2911.add(-20, -49, 19, 48) +[2618723.949] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2618723.953] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2618724.063] {Default Queue} -> wl_region#2911.subtract(0, 0, 19, 48) +[2618724.068] {Default Queue} -> wl_region#2911.add(-20, -49, 19, 48) +[2618724.072] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2618724.076] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2618724.083] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618724.087] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618724.163] {Default Queue} -> wl_region#2911.subtract(0, 0, 19, 48) +[2618724.168] {Default Queue} -> wl_region#2911.add(-20, -49, 19, 48) +[2618724.172] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2618724.176] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2618724.181] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618724.186] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618724.207] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) +[2618724.212] {Default Queue} -> wl_surface#2887.commit() +[2618724.226] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) +[2618724.231] {Default Queue} -> wl_surface#2887.commit() +[2618724.238] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) +[2618724.242] {Default Queue} -> wl_surface#2887.commit() +[2618724.248] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) +[2618724.252] {Default Queue} -> wl_surface#2951.commit() +[2618725.314] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) +[2618725.319] {Default Queue} -> wl_surface#2951.commit() +[2618725.326] {Default Queue} -> wl_region#2975.subtract(0, 0, 19, 48) +[2618725.330] {Default Queue} -> wl_region#2975.add(-20, -49, 19, 48) +[2618725.335] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618725.339] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618725.350] {Default Queue} -> wl_region#2975.subtract(0, 0, 19, 48) +[2618725.357] {Default Queue} -> wl_region#2975.add(-20, -49, 19, 48) +[2618725.361] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618725.365] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618725.370] {Default Queue} -> wl_region#2975.subtract(0, 0, 19, 48) +[2618725.375] {Default Queue} -> wl_region#2975.add(-20, -49, 19, 48) +[2618725.379] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618725.382] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618725.387] {Default Queue} -> wl_region#2975.subtract(0, 0, 19, 48) +[2618725.391] {Default Queue} -> wl_region#2975.add(-20, -49, 19, 48) +[2618725.395] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618725.399] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618725.404] {Default Queue} -> wl_region#2975.subtract(0, 0, 19, 48) +[2618725.408] {Default Queue} -> wl_region#2975.add(-20, -49, 19, 48) +[2618725.412] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618725.416] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618725.421] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) +[2618725.425] {Default Queue} -> wl_surface#2951.commit() +[2618725.429] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) +[2618725.433] {Default Queue} -> wl_surface#2951.commit() +[2618725.439] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) +[2618725.443] {Default Queue} -> wl_surface#2951.commit() +[2618725.448] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) +[2618725.452] {Default Queue} -> wl_surface#2919.commit() +[2618726.331] {Default Queue} wl_pointer#1961.motion(187310356, 30.60156250, 27.00000000) +[2618726.338] {Default Queue} wl_pointer#1993.motion(187310356, 30.60156250, 27.00000000) +[2618726.342] {Default Queue} wl_pointer#2025.motion(187310356, 30.60156250, 27.00000000) +[2618726.347] {Default Queue} wl_pointer#2057.motion(187310356, 30.60156250, 27.00000000) +[2618726.351] {Default Queue} wl_pointer#2089.motion(187310356, 30.60156250, 27.00000000) +[2618726.355] {Default Queue} wl_pointer#2121.motion(187310356, 30.60156250, 27.00000000) +[2618726.360] {Default Queue} wl_pointer#2153.motion(187310356, 30.60156250, 27.00000000) +[2618726.364] {Default Queue} wl_pointer#2185.motion(187310356, 30.60156250, 27.00000000) +[2618726.368] {Default Queue} wl_pointer#2217.motion(187310356, 30.60156250, 27.00000000) +[2618726.373] {Default Queue} wl_pointer#2249.motion(187310356, 30.60156250, 27.00000000) +[2618726.377] {Default Queue} wl_pointer#2281.motion(187310356, 30.60156250, 27.00000000) +[2618726.381] {Default Queue} wl_pointer#2313.motion(187310356, 30.60156250, 27.00000000) +[2618726.386] {Default Queue} wl_pointer#2345.motion(187310356, 30.60156250, 27.00000000) +[2618726.390] {Default Queue} wl_pointer#2377.motion(187310356, 30.60156250, 27.00000000) +[2618726.395] {Default Queue} wl_pointer#2409.motion(187310356, 30.60156250, 27.00000000) +[2618726.399] {Default Queue} wl_pointer#2441.motion(187310356, 30.60156250, 27.00000000) +[2618726.403] {Default Queue} wl_pointer#2473.motion(187310356, 30.60156250, 27.00000000) +[2618726.407] {Default Queue} wl_pointer#2498.motion(187310356, 30.60156250, 27.00000000) +[2618726.420] {Default Queue} -> wl_buffer#3677.destroy() +[2618726.425] {Default Queue} -> wl_buffer#3678.destroy() +[2618726.430] {Default Queue} -> wl_shm_pool#3675.destroy() +[2618726.434] {Default Queue} -> wl_shm_pool#3676.destroy() +[2618726.439] {Default Queue} -> wl_surface#3674.destroy() +[2618726.482] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#91, fd 575, 640) +[2618726.488] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 578, 640) +[2618726.493] {Default Queue} -> wl_shm_pool#91.create_buffer(new id wl_buffer#93, 0, 10, 16, 40, 0) +[2618726.498] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) +[2618726.516] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3683) +[2618726.523] {Default Queue} -> wl_surface#3683.attach(wl_buffer#93, 0, 0) +[2618726.528] {Default Queue} -> wl_surface#3683.commit() +[2618726.533] {Default Queue} -> wl_surface#3683.attach(wl_buffer#93, 0, 0) +[2618726.537] {Default Queue} -> wl_surface#3683.commit() +[2618726.541] {Default Queue} wl_pointer#2537.motion(187310356, 30.60156250, 27.00000000) +[2618726.546] {Default Queue} wl_pointer#2569.motion(187310356, 30.60156250, 27.00000000) +[2618726.550] {Default Queue} wl_pointer#2601.motion(187310356, 30.60156250, 27.00000000) +[2618726.555] {Default Queue} wl_pointer#2633.motion(187310356, 30.60156250, 27.00000000) +[2618726.559] {Default Queue} wl_pointer#2665.motion(187310356, 30.60156250, 27.00000000) +[2618726.563] {Default Queue} wl_pointer#2697.motion(187310356, 30.60156250, 27.00000000) +[2618726.568] {Default Queue} wl_pointer#2729.motion(187310356, 30.60156250, 27.00000000) +[2618726.572] {Default Queue} wl_pointer#2761.motion(187310356, 30.60156250, 27.00000000) +[2618726.576] {Default Queue} wl_pointer#2793.motion(187310356, 30.60156250, 27.00000000) +[2618726.581] {Default Queue} wl_pointer#2825.motion(187310356, 30.60156250, 27.00000000) +[2618726.585] {Default Queue} wl_pointer#2857.motion(187310356, 30.60156250, 27.00000000) +[2618726.589] {Default Queue} wl_pointer#2889.motion(187310356, 30.60156250, 27.00000000) +[2618726.594] {Default Queue} wl_pointer#2921.motion(187310356, 30.60156250, 27.00000000) +[2618726.598] {Default Queue} wl_pointer#2953.motion(187310356, 30.60156250, 27.00000000) +[2618726.602] {Default Queue} wl_pointer#2985.motion(187310356, 30.60156250, 27.00000000) +[2618726.607] {Default Queue} wl_pointer#3017.motion(187310356, 30.60156250, 27.00000000) +[2618726.611] {Default Queue} wl_pointer#3049.motion(187310356, 30.60156250, 27.00000000) +[2618726.615] {Default Queue} wl_pointer#3081.motion(187310356, 30.60156250, 27.00000000) +[2618726.620] {Default Queue} wl_pointer#3113.motion(187310356, 30.60156250, 27.00000000) +[2618726.624] {Default Queue} wl_pointer#3145.motion(187310356, 30.60156250, 27.00000000) +[2618726.628] {Default Queue} wl_pointer#3177.motion(187310356, 30.60156250, 27.00000000) +[2618726.632] {Default Queue} wl_pointer#3209.motion(187310356, 30.60156250, 27.00000000) +[2618726.637] {Default Queue} wl_pointer#3241.motion(187310356, 30.60156250, 27.00000000) +[2618726.641] {Default Queue} wl_pointer#3273.motion(187310356, 30.60156250, 27.00000000) +[2618726.645] {Default Queue} wl_pointer#3305.motion(187310356, 30.60156250, 27.00000000) +[2618726.650] {Default Queue} wl_pointer#3337.motion(187310356, 30.60156250, 27.00000000) +[2618726.654] {Default Queue} wl_pointer#3369.motion(187310356, 30.60156250, 27.00000000) +[2618726.658] {Default Queue} wl_pointer#3401.motion(187310356, 30.60156250, 27.00000000) +[2618726.663] {Default Queue} wl_pointer#3433.motion(187310356, 30.60156250, 27.00000000) +[2618726.667] {Default Queue} wl_pointer#3465.motion(187310356, 30.60156250, 27.00000000) +[2618726.672] {Default Queue} wl_pointer#3497.motion(187310356, 30.60156250, 27.00000000) +[2618726.676] {Default Queue} wl_pointer#3529.motion(187310356, 30.60156250, 27.00000000) +[2618726.680] {Default Queue} wl_pointer#3561.motion(187310356, 30.60156250, 27.00000000) +[2618726.685] {Default Queue} wl_pointer#3593.motion(187310356, 30.60156250, 27.00000000) +[2618726.689] {Default Queue} wl_pointer#3625.motion(187310356, 30.60156250, 27.00000000) +[2618726.693] {Default Queue} wl_pointer#3657.motion(187310356, 30.60156250, 27.00000000) +[2618726.697] {Default Queue} wl_pointer#3695.motion(187310356, 30.60156250, 27.00000000) +[2618726.706] {Default Queue} -> wl_region#2943.subtract(0, 0, 19, 48) +[2618726.710] {Default Queue} -> wl_region#2943.add(-20, -49, 19, 48) +[2618726.715] {Default Queue} -> wl_surface#2919.set_opaque_region(wl_region#2944) +[2618726.719] {Default Queue} -> wl_surface#2919.set_input_region(wl_region#2943) +[2618726.724] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) +[2618726.733] {Default Queue} -> wl_surface#2919.commit() +[2618726.739] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) +[2618726.743] {Default Queue} -> wl_surface#2919.commit() +[2618726.768] {Default Queue} wl_pointer#24.motion(187310361, 30.60156250, 26.19921875) +[2618726.773] {Default Queue} wl_pointer#81.motion(187310361, 30.60156250, 26.19921875) +[2618726.779] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618726.783] {Default Queue} wl_pointer#105.motion(187310361, 30.60156250, 26.19921875) +[2618726.788] {Default Queue} wl_pointer#137.motion(187310361, 30.60156250, 26.19921875) +[2618726.792] {Default Queue} wl_pointer#169.motion(187310361, 30.60156250, 26.19921875) +[2618726.796] {Default Queue} wl_pointer#201.motion(187310361, 30.60156250, 26.19921875) +[2618726.800] {Default Queue} wl_pointer#233.motion(187310361, 30.60156250, 26.19921875) +[2618726.805] {Default Queue} wl_pointer#265.motion(187310361, 30.60156250, 26.19921875) +[2618726.809] {Default Queue} wl_pointer#297.motion(187310361, 30.60156250, 26.19921875) +[2618726.813] {Default Queue} wl_pointer#329.motion(187310361, 30.60156250, 26.19921875) +[2618726.818] {Default Queue} wl_pointer#361.motion(187310361, 30.60156250, 26.19921875) +[2618726.822] {Default Queue} wl_pointer#393.motion(187310361, 30.60156250, 26.19921875) +[2618726.826] {Default Queue} wl_pointer#425.motion(187310361, 30.60156250, 26.19921875) +[2618726.830] {Default Queue} wl_pointer#457.motion(187310361, 30.60156250, 26.19921875) +[2618726.835] {Default Queue} wl_pointer#489.motion(187310361, 30.60156250, 26.19921875) +[2618726.839] {Default Queue} wl_pointer#521.motion(187310361, 30.60156250, 26.19921875) +[2618726.843] {Default Queue} wl_pointer#553.motion(187310361, 30.60156250, 26.19921875) +[2618726.847] {Default Queue} wl_pointer#585.motion(187310361, 30.60156250, 26.19921875) +[2618726.852] {Default Queue} wl_pointer#617.motion(187310361, 30.60156250, 26.19921875) +[2618726.856] {Default Queue} wl_pointer#649.motion(187310361, 30.60156250, 26.19921875) +[2618726.866] {Default Queue} wl_pointer#681.motion(187310361, 30.60156250, 26.19921875) +[2618726.870] {Default Queue} wl_pointer#713.motion(187310361, 30.60156250, 26.19921875) +[2618726.874] {Default Queue} wl_pointer#745.motion(187310361, 30.60156250, 26.19921875) +[2618726.879] {Default Queue} wl_pointer#777.motion(187310361, 30.60156250, 26.19921875) +[2618726.903] {Default Queue} wl_pointer#809.motion(187310361, 30.60156250, 26.19921875) +[2618726.943] {Default Queue} wl_pointer#841.motion(187310361, 30.60156250, 26.19921875) +[2618726.964] {Default Queue} wl_pointer#873.motion(187310361, 30.60156250, 26.19921875) +[2618726.972] {Default Queue} wl_pointer#905.motion(187310361, 30.60156250, 26.19921875) +[2618726.977] {Default Queue} wl_pointer#937.motion(187310361, 30.60156250, 26.19921875) +[2618726.984] {Default Queue} wl_pointer#969.motion(187310361, 30.60156250, 26.19921875) +[2618726.989] {Default Queue} wl_pointer#1001.motion(187310361, 30.60156250, 26.19921875) +[2618726.994] {Default Queue} wl_pointer#1033.motion(187310361, 30.60156250, 26.19921875) +[2618726.999] {Default Queue} wl_pointer#1065.motion(187310361, 30.60156250, 26.19921875) +[2618727.004] {Default Queue} wl_pointer#1097.motion(187310361, 30.60156250, 26.19921875) +[2618727.009] {Default Queue} wl_pointer#1129.motion(187310361, 30.60156250, 26.19921875) +[2618727.015] {Default Queue} wl_pointer#1161.motion(187310361, 30.60156250, 26.19921875) +[2618727.020] {Default Queue} wl_pointer#1193.motion(187310361, 30.60156250, 26.19921875) +[2618727.025] {Default Queue} wl_pointer#1225.motion(187310361, 30.60156250, 26.19921875) +[2618727.030] {Default Queue} wl_pointer#1257.motion(187310361, 30.60156250, 26.19921875) +[2618727.036] {Default Queue} wl_pointer#1289.motion(187310361, 30.60156250, 26.19921875) +[2618727.041] {Default Queue} wl_pointer#1321.motion(187310361, 30.60156250, 26.19921875) +[2618727.046] {Default Queue} wl_pointer#1353.motion(187310361, 30.60156250, 26.19921875) +[2618727.051] {Default Queue} wl_pointer#1385.motion(187310361, 30.60156250, 26.19921875) +[2618727.064] {Default Queue} wl_pointer#1417.motion(187310361, 30.60156250, 26.19921875) +[2618727.073] {Default Queue} wl_pointer#1449.motion(187310361, 30.60156250, 26.19921875) +[2618727.078] {Default Queue} wl_pointer#1481.motion(187310361, 30.60156250, 26.19921875) +[2618727.083] {Default Queue} wl_pointer#1513.motion(187310361, 30.60156250, 26.19921875) +[2618727.088] {Default Queue} wl_pointer#1545.motion(187310361, 30.60156250, 26.19921875) +[2618727.093] {Default Queue} wl_pointer#1577.motion(187310361, 30.60156250, 26.19921875) +[2618727.099] {Default Queue} wl_pointer#1609.motion(187310361, 30.60156250, 26.19921875) +[2618727.105] {Default Queue} wl_pointer#1641.motion(187310361, 30.60156250, 26.19921875) +[2618727.111] {Default Queue} wl_pointer#1673.motion(187310361, 30.60156250, 26.19921875) +[2618727.117] {Default Queue} wl_pointer#1705.motion(187310361, 30.60156250, 26.19921875) +[2618727.123] {Default Queue} wl_pointer#1737.motion(187310361, 30.60156250, 26.19921875) +[2618727.129] {Default Queue} wl_pointer#1762.motion(187310361, 30.60156250, 26.19921875) +[2618727.135] {Default Queue} wl_pointer#1801.motion(187310361, 30.60156250, 26.19921875) +[2618727.141] {Default Queue} wl_pointer#1833.motion(187310361, 30.60156250, 26.19921875) +[2618727.148] {Default Queue} wl_pointer#1865.motion(187310361, 30.60156250, 26.19921875) +[2618727.154] {Default Queue} wl_pointer#1897.motion(187310361, 30.60156250, 26.19921875) +[2618727.160] {Default Queue} wl_pointer#1929.motion(187310361, 30.60156250, 26.19921875) +[2618727.166] {Default Queue} wl_pointer#1961.motion(187310361, 30.60156250, 26.19921875) +[2618727.172] {Default Queue} wl_pointer#1993.motion(187310361, 30.60156250, 26.19921875) +[2618727.178] {Default Queue} wl_pointer#2025.motion(187310361, 30.60156250, 26.19921875) +[2618727.185] {Default Queue} wl_pointer#2057.motion(187310361, 30.60156250, 26.19921875) +[2618727.191] {Default Queue} wl_pointer#2089.motion(187310361, 30.60156250, 26.19921875) +[2618727.197] {Default Queue} wl_pointer#2121.motion(187310361, 30.60156250, 26.19921875) +[2618727.203] {Default Queue} wl_pointer#2153.motion(187310361, 30.60156250, 26.19921875) +[2618727.209] {Default Queue} wl_pointer#2185.motion(187310361, 30.60156250, 26.19921875) +[2618727.215] {Default Queue} wl_pointer#2217.motion(187310361, 30.60156250, 26.19921875) +[2618727.221] {Default Queue} wl_pointer#2249.motion(187310361, 30.60156250, 26.19921875) +[2618727.227] {Default Queue} wl_pointer#2281.motion(187310361, 30.60156250, 26.19921875) +[2618727.233] {Default Queue} wl_pointer#2313.motion(187310361, 30.60156250, 26.19921875) +[2618727.240] {Default Queue} wl_pointer#2345.motion(187310361, 30.60156250, 26.19921875) +[2618727.247] {Default Queue} wl_pointer#2377.motion(187310361, 30.60156250, 26.19921875) +[2618727.253] {Default Queue} wl_pointer#2409.motion(187310361, 30.60156250, 26.19921875) +[2618727.259] {Default Queue} wl_pointer#2441.motion(187310361, 30.60156250, 26.19921875) +[2618727.265] {Default Queue} wl_pointer#2473.motion(187310361, 30.60156250, 26.19921875) +[2618727.271] {Default Queue} wl_pointer#2498.motion(187310361, 30.60156250, 26.19921875) +[2618727.292] {Default Queue} -> wl_buffer#93.destroy() +[2618727.300] {Default Queue} -> wl_buffer#94.destroy() +[2618727.306] {Default Queue} -> wl_shm_pool#91.destroy() +[2618727.311] {Default Queue} -> wl_shm_pool#92.destroy() +[2618727.318] {Default Queue} -> wl_surface#3683.destroy() +[2618727.379] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3454, fd 581, 640) +[2618727.389] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3517, fd 582, 640) +[2618727.395] {Default Queue} -> wl_shm_pool#3454.create_buffer(new id wl_buffer#3518, 0, 10, 16, 40, 0) +[2618727.402] {Default Queue} -> wl_shm_pool#3517.create_buffer(new id wl_buffer#3451, 0, 10, 16, 40, 0) +[2618727.413] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3452) +[2618727.418] {Default Queue} -> wl_surface#3452.attach(wl_buffer#3518, 0, 0) +[2618727.424] {Default Queue} -> wl_surface#3452.commit() +[2618727.446] {Default Queue} -> wl_surface#3452.attach(wl_buffer#3518, 0, 0) +[2618727.454] {Default Queue} -> wl_surface#3452.commit() +[2618727.461] {Default Queue} wl_pointer#2537.motion(187310361, 30.60156250, 26.19921875) +[2618727.467] {Default Queue} wl_pointer#2569.motion(187310361, 30.60156250, 26.19921875) +[2618727.473] {Default Queue} wl_pointer#2601.motion(187310361, 30.60156250, 26.19921875) +[2618727.479] {Default Queue} wl_pointer#2633.motion(187310361, 30.60156250, 26.19921875) +[2618727.486] {Default Queue} wl_pointer#2665.motion(187310361, 30.60156250, 26.19921875) +[2618727.491] {Default Queue} wl_pointer#2697.motion(187310361, 30.60156250, 26.19921875) +[2618727.498] {Default Queue} wl_pointer#2729.motion(187310361, 30.60156250, 26.19921875) +[2618727.504] {Default Queue} wl_pointer#2761.motion(187310361, 30.60156250, 26.19921875) +[2618727.510] {Default Queue} wl_pointer#2793.motion(187310361, 30.60156250, 26.19921875) +[2618727.516] {Default Queue} wl_pointer#2825.motion(187310361, 30.60156250, 26.19921875) +[2618727.523] {Default Queue} wl_pointer#2857.motion(187310361, 30.60156250, 26.19921875) +[2618727.529] {Default Queue} wl_pointer#2889.motion(187310361, 30.60156250, 26.19921875) +[2618727.535] {Default Queue} wl_pointer#2921.motion(187310361, 30.60156250, 26.19921875) +[2618727.541] {Default Queue} wl_pointer#2953.motion(187310361, 30.60156250, 26.19921875) +[2618727.547] {Default Queue} wl_pointer#2985.motion(187310361, 30.60156250, 26.19921875) +[2618727.553] {Default Queue} wl_pointer#3017.motion(187310361, 30.60156250, 26.19921875) +[2618727.559] {Default Queue} wl_pointer#3049.motion(187310361, 30.60156250, 26.19921875) +[2618727.564] {Default Queue} wl_pointer#3081.motion(187310361, 30.60156250, 26.19921875) +[2618727.570] {Default Queue} wl_pointer#3113.motion(187310361, 30.60156250, 26.19921875) +[2618727.576] {Default Queue} wl_pointer#3145.motion(187310361, 30.60156250, 26.19921875) +[2618727.582] {Default Queue} wl_pointer#3177.motion(187310361, 30.60156250, 26.19921875) +[2618727.588] {Default Queue} wl_pointer#3209.motion(187310361, 30.60156250, 26.19921875) +[2618727.595] {Default Queue} wl_pointer#3241.motion(187310361, 30.60156250, 26.19921875) +[2618727.601] {Default Queue} wl_pointer#3273.motion(187310361, 30.60156250, 26.19921875) +[2618727.607] {Default Queue} wl_pointer#3305.motion(187310361, 30.60156250, 26.19921875) +[2618727.615] {Default Queue} wl_pointer#3337.motion(187310361, 30.60156250, 26.19921875) +[2618727.621] {Default Queue} wl_pointer#3369.motion(187310361, 30.60156250, 26.19921875) +[2618727.627] {Default Queue} wl_pointer#3401.motion(187310361, 30.60156250, 26.19921875) +[2618727.633] {Default Queue} wl_pointer#3433.motion(187310361, 30.60156250, 26.19921875) +[2618727.640] {Default Queue} wl_pointer#3465.motion(187310361, 30.60156250, 26.19921875) +[2618727.646] {Default Queue} wl_pointer#3497.motion(187310361, 30.60156250, 26.19921875) +[2618727.652] {Default Queue} wl_pointer#3529.motion(187310361, 30.60156250, 26.19921875) +[2618727.658] {Default Queue} wl_pointer#3561.motion(187310361, 30.60156250, 26.19921875) +[2618727.664] {Default Queue} wl_pointer#3593.motion(187310361, 30.60156250, 26.19921875) +[2618727.671] {Default Queue} wl_pointer#3625.motion(187310361, 30.60156250, 26.19921875) +[2618727.677] {Default Queue} wl_pointer#3657.motion(187310361, 30.60156250, 26.19921875) +[2618727.683] {Default Queue} wl_pointer#3695.motion(187310361, 30.60156250, 26.19921875) +[2618727.688] {Default Queue} wl_pointer#24.motion(187310361, 30.19921875, 25.80078125) +[2618727.694] {Default Queue} wl_pointer#81.motion(187310361, 30.19921875, 25.80078125) +[2618727.702] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618727.708] {Default Queue} wl_pointer#105.motion(187310361, 30.19921875, 25.80078125) +[2618727.714] {Default Queue} wl_pointer#137.motion(187310361, 30.19921875, 25.80078125) +[2618727.720] {Default Queue} wl_pointer#169.motion(187310361, 30.19921875, 25.80078125) +[2618727.726] {Default Queue} wl_pointer#201.motion(187310361, 30.19921875, 25.80078125) +[2618727.736] {Default Queue} wl_pointer#233.motion(187310361, 30.19921875, 25.80078125) +[2618727.745] {Default Queue} wl_pointer#265.motion(187310361, 30.19921875, 25.80078125) +[2618727.752] {Default Queue} wl_pointer#297.motion(187310361, 30.19921875, 25.80078125) +[2618727.758] {Default Queue} wl_pointer#329.motion(187310361, 30.19921875, 25.80078125) +[2618727.764] {Default Queue} wl_pointer#361.motion(187310361, 30.19921875, 25.80078125) +[2618727.770] {Default Queue} wl_pointer#393.motion(187310361, 30.19921875, 25.80078125) +[2618727.776] {Default Queue} wl_pointer#425.motion(187310361, 30.19921875, 25.80078125) +[2618727.782] {Default Queue} wl_pointer#457.motion(187310361, 30.19921875, 25.80078125) +[2618727.788] {Default Queue} wl_pointer#489.motion(187310361, 30.19921875, 25.80078125) +[2618727.794] {Default Queue} wl_pointer#521.motion(187310361, 30.19921875, 25.80078125) +[2618727.800] {Default Queue} wl_pointer#553.motion(187310361, 30.19921875, 25.80078125) +[2618727.806] {Default Queue} wl_pointer#585.motion(187310361, 30.19921875, 25.80078125) +[2618727.812] {Default Queue} wl_pointer#617.motion(187310361, 30.19921875, 25.80078125) +[2618727.818] {Default Queue} wl_pointer#649.motion(187310361, 30.19921875, 25.80078125) +[2618727.825] {Default Queue} wl_pointer#681.motion(187310361, 30.19921875, 25.80078125) +[2618727.831] {Default Queue} wl_pointer#713.motion(187310361, 30.19921875, 25.80078125) +[2618727.836] {Default Queue} wl_pointer#745.motion(187310361, 30.19921875, 25.80078125) +[2618727.842] {Default Queue} wl_pointer#777.motion(187310361, 30.19921875, 25.80078125) +[2618727.848] {Default Queue} wl_pointer#809.motion(187310361, 30.19921875, 25.80078125) +[2618727.854] {Default Queue} wl_pointer#841.motion(187310361, 30.19921875, 25.80078125) +[2618727.860] {Default Queue} wl_pointer#873.motion(187310361, 30.19921875, 25.80078125) +[2618727.877] {Default Queue} wl_pointer#905.motion(187310361, 30.19921875, 25.80078125) +[2618727.883] {Default Queue} wl_pointer#937.motion(187310361, 30.19921875, 25.80078125) +[2618727.889] {Default Queue} wl_pointer#969.motion(187310361, 30.19921875, 25.80078125) +[2618727.894] {Default Queue} wl_pointer#1001.motion(187310361, 30.19921875, 25.80078125) +[2618727.900] {Default Queue} wl_pointer#1033.motion(187310361, 30.19921875, 25.80078125) +[2618727.906] {Default Queue} wl_pointer#1065.motion(187310361, 30.19921875, 25.80078125) +[2618727.911] {Default Queue} wl_pointer#1097.motion(187310361, 30.19921875, 25.80078125) +[2618727.917] {Default Queue} wl_pointer#1129.motion(187310361, 30.19921875, 25.80078125) +[2618727.923] {Default Queue} wl_pointer#1161.motion(187310361, 30.19921875, 25.80078125) +[2618727.929] {Default Queue} wl_pointer#1193.motion(187310361, 30.19921875, 25.80078125) +[2618727.936] {Default Queue} wl_pointer#1225.motion(187310361, 30.19921875, 25.80078125) +[2618727.941] {Default Queue} wl_pointer#1257.motion(187310361, 30.19921875, 25.80078125) +[2618727.948] {Default Queue} wl_pointer#1289.motion(187310361, 30.19921875, 25.80078125) +[2618727.953] {Default Queue} wl_pointer#1321.motion(187310361, 30.19921875, 25.80078125) +[2618727.959] {Default Queue} wl_pointer#1353.motion(187310361, 30.19921875, 25.80078125) +[2618727.965] {Default Queue} wl_pointer#1385.motion(187310361, 30.19921875, 25.80078125) +[2618727.970] {Default Queue} wl_pointer#1417.motion(187310361, 30.19921875, 25.80078125) +[2618727.976] {Default Queue} wl_pointer#1449.motion(187310361, 30.19921875, 25.80078125) +[2618727.982] {Default Queue} wl_pointer#1481.motion(187310361, 30.19921875, 25.80078125) +[2618727.988] {Default Queue} wl_pointer#1513.motion(187310361, 30.19921875, 25.80078125) +[2618727.994] {Default Queue} wl_pointer#1545.motion(187310361, 30.19921875, 25.80078125) +[2618728.000] {Default Queue} wl_pointer#1577.motion(187310361, 30.19921875, 25.80078125) +[2618728.005] {Default Queue} wl_pointer#1609.motion(187310361, 30.19921875, 25.80078125) +[2618728.011] {Default Queue} wl_pointer#1641.motion(187310361, 30.19921875, 25.80078125) +[2618728.017] {Default Queue} wl_pointer#1673.motion(187310361, 30.19921875, 25.80078125) +[2618728.026] {Default Queue} wl_pointer#1705.motion(187310361, 30.19921875, 25.80078125) +[2618728.034] {Default Queue} wl_pointer#1737.motion(187310361, 30.19921875, 25.80078125) +[2618728.040] {Default Queue} wl_pointer#1762.motion(187310361, 30.19921875, 25.80078125) +[2618728.045] {Default Queue} wl_pointer#1801.motion(187310361, 30.19921875, 25.80078125) +[2618728.051] {Default Queue} wl_pointer#1833.motion(187310361, 30.19921875, 25.80078125) +[2618728.057] {Default Queue} wl_pointer#1865.motion(187310361, 30.19921875, 25.80078125) +[2618728.062] {Default Queue} wl_pointer#1897.motion(187310361, 30.19921875, 25.80078125) +[2618728.068] {Default Queue} wl_pointer#1929.motion(187310361, 30.19921875, 25.80078125) +[2618728.074] {Default Queue} wl_pointer#1961.motion(187310361, 30.19921875, 25.80078125) +[2618728.080] {Default Queue} wl_pointer#1993.motion(187310361, 30.19921875, 25.80078125) +[2618728.085] {Default Queue} wl_pointer#2025.motion(187310361, 30.19921875, 25.80078125) +[2618728.091] {Default Queue} wl_pointer#2057.motion(187310361, 30.19921875, 25.80078125) +[2618728.096] {Default Queue} wl_pointer#2089.motion(187310361, 30.19921875, 25.80078125) +[2618728.101] {Default Queue} wl_pointer#2121.motion(187310361, 30.19921875, 25.80078125) +[2618728.105] {Default Queue} wl_pointer#2153.motion(187310361, 30.19921875, 25.80078125) +[2618728.110] {Default Queue} wl_pointer#2185.motion(187310361, 30.19921875, 25.80078125) +[2618728.114] {Default Queue} wl_pointer#2217.motion(187310361, 30.19921875, 25.80078125) +[2618728.119] {Default Queue} wl_pointer#2249.motion(187310361, 30.19921875, 25.80078125) +[2618728.124] {Default Queue} wl_pointer#2281.motion(187310361, 30.19921875, 25.80078125) +[2618728.129] {Default Queue} wl_pointer#2313.motion(187310361, 30.19921875, 25.80078125) +[2618728.133] {Default Queue} wl_pointer#2345.motion(187310361, 30.19921875, 25.80078125) +[2618728.138] {Default Queue} wl_pointer#2377.motion(187310361, 30.19921875, 25.80078125) +[2618728.143] {Default Queue} wl_pointer#2409.motion(187310361, 30.19921875, 25.80078125) +[2618728.147] {Default Queue} wl_pointer#2441.motion(187310361, 30.19921875, 25.80078125) +[2618728.152] {Default Queue} wl_pointer#2473.motion(187310361, 30.19921875, 25.80078125) +[2618728.156] {Default Queue} wl_pointer#2498.motion(187310361, 30.19921875, 25.80078125) +[2618728.166] {Default Queue} -> wl_buffer#3518.destroy() +[2618728.172] {Default Queue} -> wl_buffer#3451.destroy() +[2618728.176] {Default Queue} -> wl_shm_pool#3454.destroy() +[2618728.181] {Default Queue} -> wl_shm_pool#3517.destroy() +[2618728.186] {Default Queue} -> wl_surface#3452.destroy() +[2618728.218] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3682, fd 583, 640) +[2618728.225] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 584, 640) +[2618728.230] {Default Queue} -> wl_shm_pool#3682.create_buffer(new id wl_buffer#3684, 0, 10, 16, 40, 0) +[2618728.234] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) +[2618728.242] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3671) +[2618728.247] {Default Queue} -> wl_surface#3671.attach(wl_buffer#3684, 0, 0) +[2618728.251] {Default Queue} -> wl_surface#3671.commit() +[2618728.256] {Default Queue} -> wl_surface#3671.attach(wl_buffer#3684, 0, 0) +[2618728.261] {Default Queue} -> wl_surface#3671.commit() +[2618728.265] {Default Queue} wl_pointer#2537.motion(187310361, 30.19921875, 25.80078125) +[2618728.270] {Default Queue} wl_pointer#2569.motion(187310361, 30.19921875, 25.80078125) +[2618728.275] {Default Queue} wl_pointer#2601.motion(187310361, 30.19921875, 25.80078125) +[2618728.279] {Default Queue} wl_pointer#2633.motion(187310361, 30.19921875, 25.80078125) +[2618728.284] {Default Queue} wl_pointer#2665.motion(187310361, 30.19921875, 25.80078125) +[2618728.288] {Default Queue} wl_pointer#2697.motion(187310361, 30.19921875, 25.80078125) +[2618728.293] {Default Queue} wl_pointer#2729.motion(187310361, 30.19921875, 25.80078125) +[2618728.297] {Default Queue} wl_pointer#2761.motion(187310361, 30.19921875, 25.80078125) +[2618728.304] {Default Queue} wl_pointer#2793.motion(187310361, 30.19921875, 25.80078125) +[2618728.310] {Default Queue} wl_pointer#2825.motion(187310361, 30.19921875, 25.80078125) +[2618728.315] {Default Queue} wl_pointer#2857.motion(187310361, 30.19921875, 25.80078125) +[2618728.320] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) +[2618728.325] {Default Queue} -> wl_surface#2919.commit() +[2618729.394] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) +[2618729.400] {Default Queue} -> wl_surface#2919.commit() +[2618729.407] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) +[2618729.411] {Default Queue} -> wl_surface#2919.commit() +[2618729.418] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) +[2618729.422] {Default Queue} -> wl_surface#2855.commit() +[2618730.483] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) +[2618730.488] {Default Queue} -> wl_surface#2855.commit() +[2618730.500] {Default Queue} -> wl_region#2879.subtract(0, 0, 22, 51) +[2618730.506] {Default Queue} -> wl_region#2879.add(-20, -49, 19, 48) +[2618730.511] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) +[2618730.516] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) +[2618730.522] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) +[2618730.526] {Default Queue} -> wl_surface#2855.commit() +[2618730.531] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) +[2618730.535] {Default Queue} -> wl_surface#2855.commit() +[2618730.541] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) +[2618730.545] {Default Queue} -> wl_surface#2855.commit() +[2618730.552] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) +[2618730.556] {Default Queue} -> wl_surface#2823.commit() +[2618731.402] {Default Queue} wl_pointer#2889.motion(187310361, 30.19921875, 25.80078125) +[2618731.414] {Default Queue} wl_pointer#2921.motion(187310361, 30.19921875, 25.80078125) +[2618731.420] {Default Queue} wl_pointer#2953.motion(187310361, 30.19921875, 25.80078125) +[2618731.425] {Default Queue} wl_pointer#2985.motion(187310361, 30.19921875, 25.80078125) +[2618731.429] {Default Queue} wl_pointer#3017.motion(187310361, 30.19921875, 25.80078125) +[2618731.434] {Default Queue} wl_pointer#3049.motion(187310361, 30.19921875, 25.80078125) +[2618731.439] {Default Queue} wl_pointer#3081.motion(187310361, 30.19921875, 25.80078125) +[2618731.444] {Default Queue} wl_pointer#3113.motion(187310361, 30.19921875, 25.80078125) +[2618731.449] {Default Queue} wl_pointer#3145.motion(187310361, 30.19921875, 25.80078125) +[2618731.453] {Default Queue} wl_pointer#3177.motion(187310361, 30.19921875, 25.80078125) +[2618731.458] {Default Queue} wl_pointer#3209.motion(187310361, 30.19921875, 25.80078125) +[2618731.462] {Default Queue} wl_pointer#3241.motion(187310361, 30.19921875, 25.80078125) +[2618731.467] {Default Queue} wl_pointer#3273.motion(187310361, 30.19921875, 25.80078125) +[2618731.471] {Default Queue} wl_pointer#3305.motion(187310361, 30.19921875, 25.80078125) +[2618731.476] {Default Queue} wl_pointer#3337.motion(187310361, 30.19921875, 25.80078125) +[2618731.480] {Default Queue} wl_pointer#3369.motion(187310361, 30.19921875, 25.80078125) +[2618731.485] {Default Queue} wl_pointer#3401.motion(187310361, 30.19921875, 25.80078125) +[2618731.489] {Default Queue} wl_pointer#3433.motion(187310361, 30.19921875, 25.80078125) +[2618731.494] {Default Queue} wl_pointer#3465.motion(187310361, 30.19921875, 25.80078125) +[2618731.499] {Default Queue} wl_pointer#3497.motion(187310361, 30.19921875, 25.80078125) +[2618731.504] {Default Queue} wl_pointer#3529.motion(187310361, 30.19921875, 25.80078125) +[2618731.508] {Default Queue} wl_pointer#3561.motion(187310361, 30.19921875, 25.80078125) +[2618731.513] {Default Queue} wl_pointer#3593.motion(187310361, 30.19921875, 25.80078125) +[2618731.517] {Default Queue} wl_pointer#3625.motion(187310361, 30.19921875, 25.80078125) +[2618731.522] {Default Queue} wl_pointer#3657.motion(187310361, 30.19921875, 25.80078125) +[2618731.531] {Default Queue} wl_pointer#3695.motion(187310361, 30.19921875, 25.80078125) +[2618731.538] {Default Queue} discarded wl_surface#69.enter(wl_output#18) +[2618731.542] {Default Queue} discarded wl_surface#69.enter(wl_output#57) +[2618731.546] {Default Queue} discarded wl_surface#69.enter(wl_output#89) +[2618731.550] {Default Queue} discarded wl_surface#69.enter(wl_output#121) +[2618731.554] {Default Queue} discarded wl_surface#69.enter(wl_output#153) +[2618731.558] {Default Queue} discarded wl_surface#69.enter(wl_output#185) +[2618731.561] {Default Queue} discarded wl_surface#69.enter(wl_output#217) +[2618731.565] {Default Queue} discarded wl_surface#69.enter(wl_output#249) +[2618731.569] {Default Queue} discarded wl_surface#69.enter(wl_output#281) +[2618731.573] {Default Queue} discarded wl_surface#69.enter(wl_output#313) +[2618731.577] {Default Queue} discarded wl_surface#69.enter(wl_output#345) +[2618731.580] {Default Queue} discarded wl_surface#69.enter(wl_output#377) +[2618731.584] {Default Queue} discarded wl_surface#69.enter(wl_output#409) +[2618731.588] {Default Queue} discarded wl_surface#69.enter(wl_output#441) +[2618731.592] {Default Queue} discarded wl_surface#69.enter(wl_output#473) +[2618731.595] {Default Queue} discarded wl_surface#69.enter(wl_output#505) +[2618731.599] {Default Queue} discarded wl_surface#69.enter(wl_output#537) +[2618731.603] {Default Queue} discarded wl_surface#69.enter(wl_output#569) +[2618731.607] {Default Queue} discarded wl_surface#69.enter(wl_output#601) +[2618731.611] {Default Queue} discarded wl_surface#69.enter(wl_output#633) +[2618731.615] {Default Queue} discarded wl_surface#69.enter(wl_output#665) +[2618731.618] {Default Queue} discarded wl_surface#69.enter(wl_output#697) +[2618731.622] {Default Queue} discarded wl_surface#69.enter(wl_output#729) +[2618731.626] {Default Queue} discarded wl_surface#69.enter(wl_output#761) +[2618731.630] {Default Queue} discarded wl_surface#69.enter(wl_output#793) +[2618731.634] {Default Queue} discarded wl_surface#69.enter(wl_output#825) +[2618731.637] {Default Queue} discarded wl_surface#69.enter(wl_output#857) +[2618731.641] {Default Queue} discarded wl_surface#69.enter(wl_output#889) +[2618731.645] {Default Queue} discarded wl_surface#69.enter(wl_output#921) +[2618731.649] {Default Queue} discarded wl_surface#69.enter(wl_output#953) +[2618731.653] {Default Queue} discarded wl_surface#69.enter(wl_output#985) +[2618731.656] {Default Queue} discarded wl_surface#69.enter(wl_output#1017) +[2618731.660] {Default Queue} discarded wl_surface#69.enter(wl_output#1049) +[2618731.664] {Default Queue} discarded wl_surface#69.enter(wl_output#1081) +[2618731.668] {Default Queue} discarded wl_surface#69.enter(wl_output#1113) +[2618731.672] {Default Queue} discarded wl_surface#69.enter(wl_output#1145) +[2618731.675] {Default Queue} discarded wl_surface#69.enter(wl_output#1177) +[2618731.679] {Default Queue} discarded wl_surface#69.enter(wl_output#1209) +[2618731.683] {Default Queue} discarded wl_surface#69.enter(wl_output#1241) +[2618731.687] {Default Queue} discarded wl_surface#69.enter(wl_output#1273) +[2618731.690] {Default Queue} discarded wl_surface#69.enter(wl_output#1305) +[2618731.694] {Default Queue} discarded wl_surface#69.enter(wl_output#1337) +[2618731.698] {Default Queue} discarded wl_surface#69.enter(wl_output#1369) +[2618731.702] {Default Queue} discarded wl_surface#69.enter(wl_output#1401) +[2618731.706] {Default Queue} discarded wl_surface#69.enter(wl_output#1433) +[2618731.709] {Default Queue} discarded wl_surface#69.enter(wl_output#1465) +[2618731.713] {Default Queue} discarded wl_surface#69.enter(wl_output#1497) +[2618731.717] {Default Queue} discarded wl_surface#69.enter(wl_output#1529) +[2618731.721] {Default Queue} discarded wl_surface#69.enter(wl_output#1561) +[2618731.725] {Default Queue} discarded wl_surface#69.enter(wl_output#1593) +[2618731.728] {Default Queue} discarded wl_surface#69.enter(wl_output#1625) +[2618731.732] {Default Queue} discarded wl_surface#69.enter(wl_output#1657) +[2618731.736] {Default Queue} discarded wl_surface#69.enter(wl_output#1689) +[2618731.743] {Default Queue} discarded wl_surface#69.enter(wl_output#1721) +[2618731.748] {Default Queue} discarded wl_surface#69.enter(wl_output#1753) +[2618731.752] {Default Queue} discarded wl_surface#69.enter(wl_output#1785) +[2618731.756] {Default Queue} discarded wl_surface#69.enter(wl_output#1817) +[2618731.760] {Default Queue} discarded wl_surface#69.enter(wl_output#1849) +[2618731.764] {Default Queue} discarded wl_surface#69.enter(wl_output#1881) +[2618731.767] {Default Queue} discarded wl_surface#69.enter(wl_output#1913) +[2618731.771] {Default Queue} discarded wl_surface#69.enter(wl_output#1945) +[2618731.775] {Default Queue} discarded wl_surface#69.enter(wl_output#1977) +[2618731.779] {Default Queue} discarded wl_surface#69.enter(wl_output#2009) +[2618731.783] {Default Queue} discarded wl_surface#69.enter(wl_output#2041) +[2618731.786] {Default Queue} discarded wl_surface#69.enter(wl_output#2073) +[2618731.790] {Default Queue} discarded wl_surface#69.enter(wl_output#2105) +[2618731.794] {Default Queue} discarded wl_surface#69.enter(wl_output#2137) +[2618731.798] {Default Queue} discarded wl_surface#69.enter(wl_output#2169) +[2618731.802] {Default Queue} discarded wl_surface#69.enter(wl_output#2201) +[2618731.806] {Default Queue} discarded wl_surface#69.enter(wl_output#2233) +[2618731.809] {Default Queue} discarded wl_surface#69.enter(wl_output#2265) +[2618731.813] {Default Queue} discarded wl_surface#69.enter(wl_output#2297) +[2618731.817] {Default Queue} discarded wl_surface#69.enter(wl_output#2329) +[2618731.821] {Default Queue} discarded wl_surface#69.enter(wl_output#2361) +[2618731.825] {Default Queue} discarded wl_surface#69.enter(wl_output#2393) +[2618731.829] {Default Queue} discarded wl_surface#69.enter(wl_output#2425) +[2618731.832] {Default Queue} discarded wl_surface#69.enter(wl_output#2457) +[2618731.836] {Default Queue} discarded wl_surface#69.enter(wl_output#2489) +[2618731.840] {Default Queue} discarded wl_surface#69.enter(wl_output#2521) +[2618731.844] {Default Queue} discarded wl_surface#69.enter(wl_output#2553) +[2618731.848] {Default Queue} discarded wl_surface#69.enter(wl_output#2585) +[2618731.851] {Default Queue} discarded wl_surface#69.enter(wl_output#2617) +[2618731.855] {Default Queue} discarded wl_surface#69.enter(wl_output#2649) +[2618731.859] {Default Queue} discarded wl_surface#69.enter(wl_output#2681) +[2618731.864] {Default Queue} discarded wl_surface#69.enter(wl_output#2713) +[2618731.868] {Default Queue} discarded wl_surface#69.enter(wl_output#2745) +[2618731.876] {Default Queue} discarded wl_surface#69.enter(wl_output#2777) +[2618731.880] {Default Queue} discarded wl_surface#69.enter(wl_output#2809) +[2618731.883] {Default Queue} discarded wl_surface#69.enter(wl_output#2841) +[2618731.904] {Default Queue} discarded wl_surface#69.enter(wl_output#2873) +[2618731.920] {Default Queue} discarded wl_surface#69.enter(wl_output#2905) +[2618731.927] {Default Queue} discarded wl_surface#69.enter(wl_output#2937) +[2618731.932] {Default Queue} discarded wl_surface#69.enter(wl_output#2969) +[2618731.937] {Default Queue} discarded wl_surface#69.enter(wl_output#3001) +[2618731.942] {Default Queue} discarded wl_surface#69.enter(wl_output#3033) +[2618731.947] {Default Queue} discarded wl_surface#69.enter(wl_output#3065) +[2618731.952] {Default Queue} discarded wl_surface#69.enter(wl_output#3097) +[2618731.956] {Default Queue} discarded wl_surface#69.enter(wl_output#3129) +[2618731.961] {Default Queue} discarded wl_surface#69.enter(wl_output#3161) +[2618731.966] {Default Queue} discarded wl_surface#69.enter(wl_output#3193) +[2618731.971] {Default Queue} discarded wl_surface#69.enter(wl_output#3225) +[2618731.976] {Default Queue} discarded wl_surface#69.enter(wl_output#3257) +[2618731.980] {Default Queue} discarded wl_surface#69.enter(wl_output#3289) +[2618731.985] {Default Queue} discarded wl_surface#69.enter(wl_output#3321) +[2618731.990] {Default Queue} discarded wl_surface#69.enter(wl_output#3353) +[2618731.995] {Default Queue} discarded wl_surface#69.enter(wl_output#3385) +[2618731.999] {Default Queue} discarded wl_surface#69.enter(wl_output#3417) +[2618732.011] {Default Queue} discarded wl_surface#69.enter(wl_output#3449) +[2618732.020] {Default Queue} discarded wl_surface#69.enter(wl_output#3481) +[2618732.025] {Default Queue} discarded wl_surface#69.enter(wl_output#3513) +[2618732.030] {Default Queue} discarded wl_surface#69.enter(wl_output#3545) +[2618732.034] {Default Queue} discarded wl_surface#69.enter(wl_output#3577) +[2618732.039] {Default Queue} discarded wl_surface#69.enter(wl_output#3609) +[2618732.044] {Default Queue} discarded wl_surface#69.enter(wl_output#3641) +[2618732.049] {Default Queue} discarded wl_surface#69.enter(wl_output#3673) +[2618732.065] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) +[2618732.072] {Default Queue} -> wl_region#2847.add(0, 0, 2, 2) +[2618732.078] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618732.083] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618732.092] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) +[2618732.098] {Default Queue} -> wl_region#2847.add(0, 0, 2, 2) +[2618732.104] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618732.109] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618732.116] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) +[2618732.121] {Default Queue} -> wl_region#2847.add(0, 0, 2, 2) +[2618732.125] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618732.129] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618732.134] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) +[2618732.138] {Default Queue} -> wl_region#2847.add(0, 0, 2, 2) +[2618732.142] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618732.146] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618732.153] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) +[2618732.157] {Default Queue} -> wl_region#2847.add(0, 0, 2, 2) +[2618732.161] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618732.165] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618732.170] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) +[2618732.175] {Default Queue} -> wl_surface#2823.commit() +[2618732.179] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) +[2618732.183] {Default Queue} -> wl_surface#2823.commit() +[2618732.231] {Default Queue} wl_pointer#24.motion(187310366, 30.19921875, 25.39843750) +[2618732.240] {Default Queue} wl_pointer#81.motion(187310366, 30.19921875, 25.39843750) +[2618732.247] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618732.253] {Default Queue} wl_pointer#105.motion(187310366, 30.19921875, 25.39843750) +[2618732.258] {Default Queue} wl_pointer#137.motion(187310366, 30.19921875, 25.39843750) +[2618732.263] {Default Queue} wl_pointer#169.motion(187310366, 30.19921875, 25.39843750) +[2618732.267] {Default Queue} wl_pointer#201.motion(187310366, 30.19921875, 25.39843750) +[2618732.272] {Default Queue} wl_pointer#233.motion(187310366, 30.19921875, 25.39843750) +[2618732.276] {Default Queue} wl_pointer#265.motion(187310366, 30.19921875, 25.39843750) +[2618732.281] {Default Queue} wl_pointer#297.motion(187310366, 30.19921875, 25.39843750) +[2618732.285] {Default Queue} wl_pointer#329.motion(187310366, 30.19921875, 25.39843750) +[2618732.290] {Default Queue} wl_pointer#361.motion(187310366, 30.19921875, 25.39843750) +[2618732.294] {Default Queue} wl_pointer#393.motion(187310366, 30.19921875, 25.39843750) +[2618732.299] {Default Queue} wl_pointer#425.motion(187310366, 30.19921875, 25.39843750) +[2618732.303] {Default Queue} wl_pointer#457.motion(187310366, 30.19921875, 25.39843750) +[2618732.308] {Default Queue} wl_pointer#489.motion(187310366, 30.19921875, 25.39843750) +[2618732.315] {Default Queue} wl_pointer#521.motion(187310366, 30.19921875, 25.39843750) +[2618732.321] {Default Queue} wl_pointer#553.motion(187310366, 30.19921875, 25.39843750) +[2618732.325] {Default Queue} wl_pointer#585.motion(187310366, 30.19921875, 25.39843750) +[2618732.334] {Default Queue} wl_pointer#617.motion(187310366, 30.19921875, 25.39843750) +[2618732.341] {Default Queue} wl_pointer#649.motion(187310366, 30.19921875, 25.39843750) +[2618732.345] {Default Queue} wl_pointer#681.motion(187310366, 30.19921875, 25.39843750) +[2618732.350] {Default Queue} wl_pointer#713.motion(187310366, 30.19921875, 25.39843750) +[2618732.354] {Default Queue} wl_pointer#745.motion(187310366, 30.19921875, 25.39843750) +[2618732.359] {Default Queue} wl_pointer#777.motion(187310366, 30.19921875, 25.39843750) +[2618732.364] {Default Queue} wl_pointer#809.motion(187310366, 30.19921875, 25.39843750) +[2618732.369] {Default Queue} wl_pointer#841.motion(187310366, 30.19921875, 25.39843750) +[2618732.373] {Default Queue} wl_pointer#873.motion(187310366, 30.19921875, 25.39843750) +[2618732.378] {Default Queue} wl_pointer#905.motion(187310366, 30.19921875, 25.39843750) +[2618732.382] {Default Queue} wl_pointer#937.motion(187310366, 30.19921875, 25.39843750) +[2618732.387] {Default Queue} wl_pointer#969.motion(187310366, 30.19921875, 25.39843750) +[2618732.391] {Default Queue} wl_pointer#1001.motion(187310366, 30.19921875, 25.39843750) +[2618732.396] {Default Queue} wl_pointer#1033.motion(187310366, 30.19921875, 25.39843750) +[2618732.400] {Default Queue} wl_pointer#1065.motion(187310366, 30.19921875, 25.39843750) +[2618732.405] {Default Queue} wl_pointer#1097.motion(187310366, 30.19921875, 25.39843750) +[2618732.409] {Default Queue} wl_pointer#1129.motion(187310366, 30.19921875, 25.39843750) +[2618732.414] {Default Queue} wl_pointer#1161.motion(187310366, 30.19921875, 25.39843750) +[2618732.418] {Default Queue} wl_pointer#1193.motion(187310366, 30.19921875, 25.39843750) +[2618732.423] {Default Queue} wl_pointer#1225.motion(187310366, 30.19921875, 25.39843750) +[2618732.427] {Default Queue} wl_pointer#1257.motion(187310366, 30.19921875, 25.39843750) +[2618732.432] {Default Queue} wl_pointer#1289.motion(187310366, 30.19921875, 25.39843750) +[2618732.436] {Default Queue} wl_pointer#1321.motion(187310366, 30.19921875, 25.39843750) +[2618732.440] {Default Queue} wl_pointer#1353.motion(187310366, 30.19921875, 25.39843750) +[2618732.445] {Default Queue} wl_pointer#1385.motion(187310366, 30.19921875, 25.39843750) +[2618732.449] {Default Queue} wl_pointer#1417.motion(187310366, 30.19921875, 25.39843750) +[2618732.454] {Default Queue} wl_pointer#1449.motion(187310366, 30.19921875, 25.39843750) +[2618732.459] {Default Queue} wl_pointer#1481.motion(187310366, 30.19921875, 25.39843750) +[2618732.463] {Default Queue} wl_pointer#1513.motion(187310366, 30.19921875, 25.39843750) +[2618732.468] {Default Queue} wl_pointer#1545.motion(187310366, 30.19921875, 25.39843750) +[2618732.472] {Default Queue} wl_pointer#1577.motion(187310366, 30.19921875, 25.39843750) +[2618732.477] {Default Queue} wl_pointer#1609.motion(187310366, 30.19921875, 25.39843750) +[2618732.482] {Default Queue} wl_pointer#1641.motion(187310366, 30.19921875, 25.39843750) +[2618732.486] {Default Queue} wl_pointer#1673.motion(187310366, 30.19921875, 25.39843750) +[2618732.490] {Default Queue} wl_pointer#1705.motion(187310366, 30.19921875, 25.39843750) +[2618732.495] {Default Queue} wl_pointer#1737.motion(187310366, 30.19921875, 25.39843750) +[2618732.500] {Default Queue} wl_pointer#1762.motion(187310366, 30.19921875, 25.39843750) +[2618732.504] {Default Queue} wl_pointer#1801.motion(187310366, 30.19921875, 25.39843750) +[2618732.508] {Default Queue} wl_pointer#1833.motion(187310366, 30.19921875, 25.39843750) +[2618732.513] {Default Queue} wl_pointer#1865.motion(187310366, 30.19921875, 25.39843750) +[2618732.518] {Default Queue} wl_pointer#1897.motion(187310366, 30.19921875, 25.39843750) +[2618732.522] {Default Queue} wl_pointer#1929.motion(187310366, 30.19921875, 25.39843750) +[2618732.527] {Default Queue} wl_pointer#1961.motion(187310366, 30.19921875, 25.39843750) +[2618732.531] {Default Queue} wl_pointer#1993.motion(187310366, 30.19921875, 25.39843750) +[2618732.536] {Default Queue} wl_pointer#2025.motion(187310366, 30.19921875, 25.39843750) +[2618732.540] {Default Queue} wl_pointer#2057.motion(187310366, 30.19921875, 25.39843750) +[2618732.548] {Default Queue} wl_pointer#2089.motion(187310366, 30.19921875, 25.39843750) +[2618732.553] {Default Queue} wl_pointer#2121.motion(187310366, 30.19921875, 25.39843750) +[2618732.558] {Default Queue} wl_pointer#2153.motion(187310366, 30.19921875, 25.39843750) +[2618732.562] {Default Queue} wl_pointer#2185.motion(187310366, 30.19921875, 25.39843750) +[2618732.567] {Default Queue} wl_pointer#2217.motion(187310366, 30.19921875, 25.39843750) +[2618732.571] {Default Queue} wl_pointer#2249.motion(187310366, 30.19921875, 25.39843750) +[2618732.576] {Default Queue} wl_pointer#2281.motion(187310366, 30.19921875, 25.39843750) +[2618732.580] {Default Queue} wl_pointer#2313.motion(187310366, 30.19921875, 25.39843750) +[2618732.586] {Default Queue} wl_pointer#2345.motion(187310366, 30.19921875, 25.39843750) +[2618732.590] {Default Queue} wl_pointer#2377.motion(187310366, 30.19921875, 25.39843750) +[2618732.595] {Default Queue} wl_pointer#2409.motion(187310366, 30.19921875, 25.39843750) +[2618732.599] {Default Queue} wl_pointer#2441.motion(187310366, 30.19921875, 25.39843750) +[2618732.604] {Default Queue} wl_pointer#2473.motion(187310366, 30.19921875, 25.39843750) +[2618732.608] {Default Queue} wl_pointer#2498.motion(187310366, 30.19921875, 25.39843750) +[2618732.623] {Default Queue} -> wl_buffer#3684.destroy() +[2618732.629] {Default Queue} -> wl_buffer#3681.destroy() +[2618732.633] {Default Queue} -> wl_shm_pool#3682.destroy() +[2618732.637] {Default Queue} -> wl_shm_pool#3679.destroy() +[2618732.642] {Default Queue} -> wl_surface#3671.destroy() +[2618732.688] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3484, fd 575, 640) +[2618732.695] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 578, 640) +[2618732.700] {Default Queue} -> wl_shm_pool#3484.create_buffer(new id wl_buffer#3292, 0, 10, 16, 40, 0) +[2618732.705] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) +[2618732.713] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3294) +[2618732.717] {Default Queue} -> wl_surface#3294.attach(wl_buffer#3292, 0, 0) +[2618732.721] {Default Queue} -> wl_surface#3294.commit() +[2618732.727] {Default Queue} -> wl_surface#3294.attach(wl_buffer#3292, 0, 0) +[2618732.731] {Default Queue} -> wl_surface#3294.commit() +[2618732.735] {Default Queue} wl_pointer#2537.motion(187310366, 30.19921875, 25.39843750) +[2618732.740] {Default Queue} wl_pointer#2569.motion(187310366, 30.19921875, 25.39843750) +[2618732.745] {Default Queue} wl_pointer#2601.motion(187310366, 30.19921875, 25.39843750) +[2618732.749] {Default Queue} wl_pointer#2633.motion(187310366, 30.19921875, 25.39843750) +[2618732.754] {Default Queue} wl_pointer#2665.motion(187310366, 30.19921875, 25.39843750) +[2618732.758] {Default Queue} wl_pointer#2697.motion(187310366, 30.19921875, 25.39843750) +[2618732.763] {Default Queue} wl_pointer#2729.motion(187310366, 30.19921875, 25.39843750) +[2618732.767] {Default Queue} wl_pointer#2761.motion(187310366, 30.19921875, 25.39843750) +[2618732.772] {Default Queue} wl_pointer#2793.motion(187310366, 30.19921875, 25.39843750) +[2618732.776] {Default Queue} wl_pointer#2825.motion(187310366, 30.19921875, 25.39843750) +[2618732.781] {Default Queue} wl_pointer#2857.motion(187310366, 30.19921875, 25.39843750) +[2618732.785] {Default Queue} wl_pointer#2889.motion(187310366, 30.19921875, 25.39843750) +[2618732.789] {Default Queue} wl_pointer#2921.motion(187310366, 30.19921875, 25.39843750) +[2618732.794] {Default Queue} wl_pointer#2953.motion(187310366, 30.19921875, 25.39843750) +[2618732.798] {Default Queue} wl_pointer#2985.motion(187310366, 30.19921875, 25.39843750) +[2618732.803] {Default Queue} wl_pointer#3017.motion(187310366, 30.19921875, 25.39843750) +[2618732.807] {Default Queue} wl_pointer#3049.motion(187310366, 30.19921875, 25.39843750) +[2618732.811] {Default Queue} wl_pointer#3081.motion(187310366, 30.19921875, 25.39843750) +[2618732.816] {Default Queue} wl_pointer#3113.motion(187310366, 30.19921875, 25.39843750) +[2618732.824] {Default Queue} wl_pointer#3145.motion(187310366, 30.19921875, 25.39843750) +[2618732.830] {Default Queue} wl_pointer#3177.motion(187310366, 30.19921875, 25.39843750) +[2618732.834] {Default Queue} wl_pointer#3209.motion(187310366, 30.19921875, 25.39843750) +[2618732.838] {Default Queue} wl_pointer#3241.motion(187310366, 30.19921875, 25.39843750) +[2618732.843] {Default Queue} wl_pointer#3273.motion(187310366, 30.19921875, 25.39843750) +[2618732.847] {Default Queue} wl_pointer#3305.motion(187310366, 30.19921875, 25.39843750) +[2618732.851] {Default Queue} wl_pointer#3337.motion(187310366, 30.19921875, 25.39843750) +[2618732.856] {Default Queue} wl_pointer#3369.motion(187310366, 30.19921875, 25.39843750) +[2618732.860] {Default Queue} wl_pointer#3401.motion(187310366, 30.19921875, 25.39843750) +[2618732.866] {Default Queue} wl_pointer#3433.motion(187310366, 30.19921875, 25.39843750) +[2618732.894] {Default Queue} wl_pointer#3465.motion(187310366, 30.19921875, 25.39843750) +[2618732.904] {Default Queue} wl_pointer#3497.motion(187310366, 30.19921875, 25.39843750) +[2618732.909] {Default Queue} wl_pointer#3529.motion(187310366, 30.19921875, 25.39843750) +[2618732.913] {Default Queue} wl_pointer#3561.motion(187310366, 30.19921875, 25.39843750) +[2618732.918] {Default Queue} wl_pointer#3593.motion(187310366, 30.19921875, 25.39843750) +[2618732.922] {Default Queue} wl_pointer#3625.motion(187310366, 30.19921875, 25.39843750) +[2618732.927] {Default Queue} wl_pointer#3657.motion(187310366, 30.19921875, 25.39843750) +[2618732.931] {Default Queue} wl_pointer#3695.motion(187310366, 30.19921875, 25.39843750) +[2618732.935] {Default Queue} wl_pointer#24.motion(187310366, 29.80078125, 25.00000000) +[2618732.940] {Default Queue} wl_pointer#81.motion(187310366, 29.80078125, 25.00000000) +[2618732.946] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618732.951] {Default Queue} wl_pointer#105.motion(187310366, 29.80078125, 25.00000000) +[2618732.955] {Default Queue} wl_pointer#137.motion(187310366, 29.80078125, 25.00000000) +[2618732.959] {Default Queue} wl_pointer#169.motion(187310366, 29.80078125, 25.00000000) +[2618732.964] {Default Queue} wl_pointer#201.motion(187310366, 29.80078125, 25.00000000) +[2618732.968] {Default Queue} wl_pointer#233.motion(187310366, 29.80078125, 25.00000000) +[2618732.972] {Default Queue} wl_pointer#265.motion(187310366, 29.80078125, 25.00000000) +[2618732.977] {Default Queue} wl_pointer#297.motion(187310366, 29.80078125, 25.00000000) +[2618732.981] {Default Queue} wl_pointer#329.motion(187310366, 29.80078125, 25.00000000) +[2618732.985] {Default Queue} wl_pointer#361.motion(187310366, 29.80078125, 25.00000000) +[2618732.990] {Default Queue} wl_pointer#393.motion(187310366, 29.80078125, 25.00000000) +[2618732.994] {Default Queue} wl_pointer#425.motion(187310366, 29.80078125, 25.00000000) +[2618732.999] {Default Queue} wl_pointer#457.motion(187310366, 29.80078125, 25.00000000) +[2618733.003] {Default Queue} wl_pointer#489.motion(187310366, 29.80078125, 25.00000000) +[2618733.007] {Default Queue} wl_pointer#521.motion(187310366, 29.80078125, 25.00000000) +[2618733.011] {Default Queue} wl_pointer#553.motion(187310366, 29.80078125, 25.00000000) +[2618733.016] {Default Queue} wl_pointer#585.motion(187310366, 29.80078125, 25.00000000) +[2618733.020] {Default Queue} wl_pointer#617.motion(187310366, 29.80078125, 25.00000000) +[2618733.024] {Default Queue} wl_pointer#649.motion(187310366, 29.80078125, 25.00000000) +[2618733.029] {Default Queue} wl_pointer#681.motion(187310366, 29.80078125, 25.00000000) +[2618733.033] {Default Queue} wl_pointer#713.motion(187310366, 29.80078125, 25.00000000) +[2618733.037] {Default Queue} wl_pointer#745.motion(187310366, 29.80078125, 25.00000000) +[2618733.041] {Default Queue} wl_pointer#777.motion(187310366, 29.80078125, 25.00000000) +[2618733.046] {Default Queue} wl_pointer#809.motion(187310366, 29.80078125, 25.00000000) +[2618733.050] {Default Queue} wl_pointer#841.motion(187310366, 29.80078125, 25.00000000) +[2618733.054] {Default Queue} wl_pointer#873.motion(187310366, 29.80078125, 25.00000000) +[2618733.063] {Default Queue} wl_pointer#905.motion(187310366, 29.80078125, 25.00000000) +[2618733.071] {Default Queue} wl_pointer#937.motion(187310366, 29.80078125, 25.00000000) +[2618733.075] {Default Queue} wl_pointer#969.motion(187310366, 29.80078125, 25.00000000) +[2618733.080] {Default Queue} wl_pointer#1001.motion(187310366, 29.80078125, 25.00000000) +[2618733.084] {Default Queue} wl_pointer#1033.motion(187310366, 29.80078125, 25.00000000) +[2618733.088] {Default Queue} wl_pointer#1065.motion(187310366, 29.80078125, 25.00000000) +[2618733.093] {Default Queue} wl_pointer#1097.motion(187310366, 29.80078125, 25.00000000) +[2618733.097] {Default Queue} wl_pointer#1129.motion(187310366, 29.80078125, 25.00000000) +[2618733.101] {Default Queue} wl_pointer#1161.motion(187310366, 29.80078125, 25.00000000) +[2618733.106] {Default Queue} wl_pointer#1193.motion(187310366, 29.80078125, 25.00000000) +[2618733.110] {Default Queue} wl_pointer#1225.motion(187310366, 29.80078125, 25.00000000) +[2618733.114] {Default Queue} wl_pointer#1257.motion(187310366, 29.80078125, 25.00000000) +[2618733.119] {Default Queue} wl_pointer#1289.motion(187310366, 29.80078125, 25.00000000) +[2618733.123] {Default Queue} wl_pointer#1321.motion(187310366, 29.80078125, 25.00000000) +[2618733.127] {Default Queue} wl_pointer#1353.motion(187310366, 29.80078125, 25.00000000) +[2618733.132] {Default Queue} wl_pointer#1385.motion(187310366, 29.80078125, 25.00000000) +[2618733.136] {Default Queue} wl_pointer#1417.motion(187310366, 29.80078125, 25.00000000) +[2618733.140] {Default Queue} wl_pointer#1449.motion(187310366, 29.80078125, 25.00000000) +[2618733.145] {Default Queue} wl_pointer#1481.motion(187310366, 29.80078125, 25.00000000) +[2618733.151] {Default Queue} wl_pointer#1513.motion(187310366, 29.80078125, 25.00000000) +[2618733.157] {Default Queue} wl_pointer#1545.motion(187310366, 29.80078125, 25.00000000) +[2618733.162] {Default Queue} wl_pointer#1577.motion(187310366, 29.80078125, 25.00000000) +[2618733.166] {Default Queue} wl_pointer#1609.motion(187310366, 29.80078125, 25.00000000) +[2618733.170] {Default Queue} wl_pointer#1641.motion(187310366, 29.80078125, 25.00000000) +[2618733.175] {Default Queue} wl_pointer#1673.motion(187310366, 29.80078125, 25.00000000) +[2618733.179] {Default Queue} wl_pointer#1705.motion(187310366, 29.80078125, 25.00000000) +[2618733.183] {Default Queue} wl_pointer#1737.motion(187310366, 29.80078125, 25.00000000) +[2618733.188] {Default Queue} wl_pointer#1762.motion(187310366, 29.80078125, 25.00000000) +[2618733.192] {Default Queue} wl_pointer#1801.motion(187310366, 29.80078125, 25.00000000) +[2618733.196] {Default Queue} wl_pointer#1833.motion(187310366, 29.80078125, 25.00000000) +[2618733.200] {Default Queue} wl_pointer#1865.motion(187310366, 29.80078125, 25.00000000) +[2618733.205] {Default Queue} wl_pointer#1897.motion(187310366, 29.80078125, 25.00000000) +[2618733.209] {Default Queue} wl_pointer#1929.motion(187310366, 29.80078125, 25.00000000) +[2618733.213] {Default Queue} wl_pointer#1961.motion(187310366, 29.80078125, 25.00000000) +[2618733.218] {Default Queue} wl_pointer#1993.motion(187310366, 29.80078125, 25.00000000) +[2618733.222] {Default Queue} wl_pointer#2025.motion(187310366, 29.80078125, 25.00000000) +[2618733.226] {Default Queue} wl_pointer#2057.motion(187310366, 29.80078125, 25.00000000) +[2618733.230] {Default Queue} wl_pointer#2089.motion(187310366, 29.80078125, 25.00000000) +[2618733.235] {Default Queue} wl_pointer#2121.motion(187310366, 29.80078125, 25.00000000) +[2618733.239] {Default Queue} wl_pointer#2153.motion(187310366, 29.80078125, 25.00000000) +[2618733.243] {Default Queue} wl_pointer#2185.motion(187310366, 29.80078125, 25.00000000) +[2618733.247] {Default Queue} wl_pointer#2217.motion(187310366, 29.80078125, 25.00000000) +[2618733.252] {Default Queue} wl_pointer#2249.motion(187310366, 29.80078125, 25.00000000) +[2618733.256] {Default Queue} wl_pointer#2281.motion(187310366, 29.80078125, 25.00000000) +[2618733.260] {Default Queue} wl_pointer#2313.motion(187310366, 29.80078125, 25.00000000) +[2618733.265] {Default Queue} wl_pointer#2345.motion(187310366, 29.80078125, 25.00000000) +[2618733.273] {Default Queue} wl_pointer#2377.motion(187310366, 29.80078125, 25.00000000) +[2618733.279] {Default Queue} wl_pointer#2409.motion(187310366, 29.80078125, 25.00000000) +[2618733.284] {Default Queue} wl_pointer#2441.motion(187310366, 29.80078125, 25.00000000) +[2618733.288] {Default Queue} wl_pointer#2473.motion(187310366, 29.80078125, 25.00000000) +[2618733.294] {Default Queue} wl_pointer#2498.motion(187310366, 29.80078125, 25.00000000) +[2618733.307] {Default Queue} -> wl_buffer#3292.destroy() +[2618733.312] {Default Queue} -> wl_buffer#3293.destroy() +[2618733.317] {Default Queue} -> wl_shm_pool#3484.destroy() +[2618733.321] {Default Queue} -> wl_shm_pool#3291.destroy() +[2618733.326] {Default Queue} -> wl_surface#3294.destroy() +[2618733.368] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3515, fd 581, 640) +[2618733.374] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3486, fd 582, 640) +[2618733.379] {Default Queue} -> wl_shm_pool#3515.create_buffer(new id wl_buffer#3483, 0, 10, 16, 40, 0) +[2618733.384] {Default Queue} -> wl_shm_pool#3486.create_buffer(new id wl_buffer#3516, 0, 10, 16, 40, 0) +[2618733.391] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3485) +[2618733.396] {Default Queue} -> wl_surface#3485.attach(wl_buffer#3483, 0, 0) +[2618733.400] {Default Queue} -> wl_surface#3485.commit() +[2618733.406] {Default Queue} -> wl_surface#3485.attach(wl_buffer#3483, 0, 0) +[2618733.410] {Default Queue} -> wl_surface#3485.commit() +[2618733.414] {Default Queue} wl_pointer#2537.motion(187310366, 29.80078125, 25.00000000) +[2618733.419] {Default Queue} wl_pointer#2569.motion(187310366, 29.80078125, 25.00000000) +[2618733.424] {Default Queue} wl_pointer#2601.motion(187310366, 29.80078125, 25.00000000) +[2618733.428] {Default Queue} wl_pointer#2633.motion(187310366, 29.80078125, 25.00000000) +[2618733.432] {Default Queue} wl_pointer#2665.motion(187310366, 29.80078125, 25.00000000) +[2618733.437] {Default Queue} wl_pointer#2697.motion(187310366, 29.80078125, 25.00000000) +[2618733.441] {Default Queue} wl_pointer#2729.motion(187310366, 29.80078125, 25.00000000) +[2618733.445] {Default Queue} wl_pointer#2761.motion(187310366, 29.80078125, 25.00000000) +[2618733.449] {Default Queue} wl_pointer#2793.motion(187310366, 29.80078125, 25.00000000) +[2618733.454] {Default Queue} wl_pointer#2825.motion(187310366, 29.80078125, 25.00000000) +[2618733.458] {Default Queue} wl_pointer#2857.motion(187310366, 29.80078125, 25.00000000) +[2618733.463] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) +[2618733.467] {Default Queue} -> wl_surface#2823.commit() +[2618734.534] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) +[2618734.539] {Default Queue} -> wl_surface#2823.commit() +[2618734.546] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) +[2618734.550] {Default Queue} -> wl_surface#2823.commit() +[2618734.556] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) +[2618734.560] {Default Queue} -> wl_surface#2087.commit() +[2618735.623] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) +[2618735.628] {Default Queue} -> wl_surface#2087.commit() +[2618735.638] {Default Queue} -> wl_region#2111.subtract(0, 0, 2, 2) +[2618735.644] {Default Queue} -> wl_region#2111.add(0, 0, 2, 2) +[2618735.648] {Default Queue} -> wl_surface#2087.set_opaque_region(wl_region#2112) +[2618735.652] {Default Queue} -> wl_surface#2087.set_input_region(wl_region#2111) +[2618735.658] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) +[2618735.662] {Default Queue} -> wl_surface#2087.commit() +[2618735.666] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) +[2618735.670] {Default Queue} -> wl_surface#2087.commit() +[2618735.676] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) +[2618735.680] {Default Queue} -> wl_surface#2087.commit() +[2618735.687] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) +[2618735.692] {Default Queue} -> wl_surface#3079.commit() +[2618736.404] {Display Queue} wl_display#1.delete_id(3677) +[2618736.413] {Display Queue} wl_display#1.delete_id(3678) +[2618736.418] {Display Queue} wl_display#1.delete_id(3675) +[2618736.422] {Display Queue} wl_display#1.delete_id(3676) +[2618736.426] {Display Queue} wl_display#1.delete_id(3674) +[2618736.430] {Display Queue} wl_display#1.delete_id(93) +[2618736.434] {Display Queue} wl_display#1.delete_id(94) +[2618736.438] {Display Queue} wl_display#1.delete_id(91) +[2618736.442] {Display Queue} wl_display#1.delete_id(92) +[2618736.446] {Display Queue} wl_display#1.delete_id(3683) +[2618736.450] {Display Queue} wl_display#1.delete_id(3518) +[2618736.454] {Display Queue} wl_display#1.delete_id(3451) +[2618736.458] {Display Queue} wl_display#1.delete_id(3454) +[2618736.462] {Display Queue} wl_display#1.delete_id(3517) +[2618736.466] {Display Queue} wl_display#1.delete_id(3452) +[2618736.470] {Default Queue} wl_pointer#2889.motion(187310366, 29.80078125, 25.00000000) +[2618736.475] {Default Queue} wl_pointer#2921.motion(187310366, 29.80078125, 25.00000000) +[2618736.480] {Default Queue} wl_pointer#2953.motion(187310366, 29.80078125, 25.00000000) +[2618736.484] {Default Queue} wl_pointer#2985.motion(187310366, 29.80078125, 25.00000000) +[2618736.488] {Default Queue} wl_pointer#3017.motion(187310366, 29.80078125, 25.00000000) +[2618736.493] {Default Queue} wl_pointer#3049.motion(187310366, 29.80078125, 25.00000000) +[2618736.497] {Default Queue} wl_pointer#3081.motion(187310366, 29.80078125, 25.00000000) +[2618736.501] {Default Queue} wl_pointer#3113.motion(187310366, 29.80078125, 25.00000000) +[2618736.505] {Default Queue} wl_pointer#3145.motion(187310366, 29.80078125, 25.00000000) +[2618736.510] {Default Queue} wl_pointer#3177.motion(187310366, 29.80078125, 25.00000000) +[2618736.514] {Default Queue} wl_pointer#3209.motion(187310366, 29.80078125, 25.00000000) +[2618736.518] {Default Queue} wl_pointer#3241.motion(187310366, 29.80078125, 25.00000000) +[2618736.523] {Default Queue} wl_pointer#3273.motion(187310366, 29.80078125, 25.00000000) +[2618736.527] {Default Queue} wl_pointer#3305.motion(187310366, 29.80078125, 25.00000000) +[2618736.531] {Default Queue} wl_pointer#3337.motion(187310366, 29.80078125, 25.00000000) +[2618736.536] {Default Queue} wl_pointer#3369.motion(187310366, 29.80078125, 25.00000000) +[2618736.540] {Default Queue} wl_pointer#3401.motion(187310366, 29.80078125, 25.00000000) +[2618736.544] {Default Queue} wl_pointer#3433.motion(187310366, 29.80078125, 25.00000000) +[2618736.549] {Default Queue} wl_pointer#3465.motion(187310366, 29.80078125, 25.00000000) +[2618736.553] {Default Queue} wl_pointer#3497.motion(187310366, 29.80078125, 25.00000000) +[2618736.557] {Default Queue} wl_pointer#3529.motion(187310366, 29.80078125, 25.00000000) +[2618736.562] {Default Queue} wl_pointer#3561.motion(187310366, 29.80078125, 25.00000000) +[2618736.566] {Default Queue} wl_pointer#3593.motion(187310366, 29.80078125, 25.00000000) +[2618736.570] {Default Queue} wl_pointer#3625.motion(187310366, 29.80078125, 25.00000000) +[2618736.575] {Default Queue} wl_pointer#3657.motion(187310366, 29.80078125, 25.00000000) +[2618736.579] {Default Queue} wl_pointer#3695.motion(187310366, 29.80078125, 25.00000000) +[2618736.583] {Default Queue} wl_pointer#24.motion(187310366, 29.80078125, 24.60156250) +[2618736.587] {Default Queue} wl_pointer#81.motion(187310366, 29.80078125, 24.60156250) +[2618736.593] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618736.598] {Default Queue} wl_pointer#105.motion(187310366, 29.80078125, 24.60156250) +[2618736.602] {Default Queue} wl_pointer#137.motion(187310366, 29.80078125, 24.60156250) +[2618736.606] {Default Queue} wl_pointer#169.motion(187310366, 29.80078125, 24.60156250) +[2618736.611] {Default Queue} wl_pointer#201.motion(187310366, 29.80078125, 24.60156250) +[2618736.615] {Default Queue} wl_pointer#233.motion(187310366, 29.80078125, 24.60156250) +[2618736.619] {Default Queue} wl_pointer#265.motion(187310366, 29.80078125, 24.60156250) +[2618736.623] {Default Queue} wl_pointer#297.motion(187310366, 29.80078125, 24.60156250) +[2618736.631] {Default Queue} wl_pointer#329.motion(187310366, 29.80078125, 24.60156250) +[2618736.637] {Default Queue} wl_pointer#361.motion(187310366, 29.80078125, 24.60156250) +[2618736.641] {Default Queue} wl_pointer#393.motion(187310366, 29.80078125, 24.60156250) +[2618736.646] {Default Queue} wl_pointer#425.motion(187310366, 29.80078125, 24.60156250) +[2618736.650] {Default Queue} wl_pointer#457.motion(187310366, 29.80078125, 24.60156250) +[2618736.654] {Default Queue} wl_pointer#489.motion(187310366, 29.80078125, 24.60156250) +[2618736.658] {Default Queue} wl_pointer#521.motion(187310366, 29.80078125, 24.60156250) +[2618736.663] {Default Queue} wl_pointer#553.motion(187310366, 29.80078125, 24.60156250) +[2618736.667] {Default Queue} wl_pointer#585.motion(187310366, 29.80078125, 24.60156250) +[2618736.671] {Default Queue} wl_pointer#617.motion(187310366, 29.80078125, 24.60156250) +[2618736.675] {Default Queue} wl_pointer#649.motion(187310366, 29.80078125, 24.60156250) +[2618736.680] {Default Queue} wl_pointer#681.motion(187310366, 29.80078125, 24.60156250) +[2618736.684] {Default Queue} wl_pointer#713.motion(187310366, 29.80078125, 24.60156250) +[2618736.688] {Default Queue} wl_pointer#745.motion(187310366, 29.80078125, 24.60156250) +[2618736.693] {Default Queue} wl_pointer#777.motion(187310366, 29.80078125, 24.60156250) +[2618736.697] {Default Queue} wl_pointer#809.motion(187310366, 29.80078125, 24.60156250) +[2618736.701] {Default Queue} wl_pointer#841.motion(187310366, 29.80078125, 24.60156250) +[2618736.705] {Default Queue} wl_pointer#873.motion(187310366, 29.80078125, 24.60156250) +[2618736.710] {Default Queue} wl_pointer#905.motion(187310366, 29.80078125, 24.60156250) +[2618736.714] {Default Queue} wl_pointer#937.motion(187310366, 29.80078125, 24.60156250) +[2618736.718] {Default Queue} wl_pointer#969.motion(187310366, 29.80078125, 24.60156250) +[2618736.722] {Default Queue} wl_pointer#1001.motion(187310366, 29.80078125, 24.60156250) +[2618736.727] {Default Queue} wl_pointer#1033.motion(187310366, 29.80078125, 24.60156250) +[2618736.731] {Default Queue} wl_pointer#1065.motion(187310366, 29.80078125, 24.60156250) +[2618736.735] {Default Queue} wl_pointer#1097.motion(187310366, 29.80078125, 24.60156250) +[2618736.740] {Default Queue} wl_pointer#1129.motion(187310366, 29.80078125, 24.60156250) +[2618736.744] {Default Queue} wl_pointer#1161.motion(187310366, 29.80078125, 24.60156250) +[2618736.748] {Default Queue} wl_pointer#1193.motion(187310366, 29.80078125, 24.60156250) +[2618736.753] {Default Queue} wl_pointer#1225.motion(187310366, 29.80078125, 24.60156250) +[2618736.757] {Default Queue} wl_pointer#1257.motion(187310366, 29.80078125, 24.60156250) +[2618736.761] {Default Queue} wl_pointer#1289.motion(187310366, 29.80078125, 24.60156250) +[2618736.766] {Default Queue} wl_pointer#1321.motion(187310366, 29.80078125, 24.60156250) +[2618736.770] {Default Queue} wl_pointer#1353.motion(187310366, 29.80078125, 24.60156250) +[2618736.774] {Default Queue} wl_pointer#1385.motion(187310366, 29.80078125, 24.60156250) +[2618736.779] {Default Queue} wl_pointer#1417.motion(187310366, 29.80078125, 24.60156250) +[2618736.783] {Default Queue} wl_pointer#1449.motion(187310366, 29.80078125, 24.60156250) +[2618736.787] {Default Queue} wl_pointer#1481.motion(187310366, 29.80078125, 24.60156250) +[2618736.791] {Default Queue} wl_pointer#1513.motion(187310366, 29.80078125, 24.60156250) +[2618736.796] {Default Queue} wl_pointer#1545.motion(187310366, 29.80078125, 24.60156250) +[2618736.800] {Default Queue} wl_pointer#1577.motion(187310366, 29.80078125, 24.60156250) +[2618736.804] {Default Queue} wl_pointer#1609.motion(187310366, 29.80078125, 24.60156250) +[2618736.808] {Default Queue} wl_pointer#1641.motion(187310366, 29.80078125, 24.60156250) +[2618736.813] {Default Queue} wl_pointer#1673.motion(187310366, 29.80078125, 24.60156250) +[2618736.817] {Default Queue} wl_pointer#1705.motion(187310366, 29.80078125, 24.60156250) +[2618736.822] {Default Queue} wl_pointer#1737.motion(187310366, 29.80078125, 24.60156250) +[2618736.826] {Default Queue} wl_pointer#1762.motion(187310366, 29.80078125, 24.60156250) +[2618736.833] {Default Queue} wl_pointer#1801.motion(187310366, 29.80078125, 24.60156250) +[2618736.839] {Default Queue} wl_pointer#1833.motion(187310366, 29.80078125, 24.60156250) +[2618736.843] {Default Queue} wl_pointer#1865.motion(187310366, 29.80078125, 24.60156250) +[2618736.847] {Default Queue} wl_pointer#1897.motion(187310366, 29.80078125, 24.60156250) +[2618736.852] {Default Queue} wl_pointer#1929.motion(187310366, 29.80078125, 24.60156250) +[2618736.856] {Default Queue} wl_pointer#1961.motion(187310366, 29.80078125, 24.60156250) +[2618736.865] {Default Queue} wl_pointer#1993.motion(187310366, 29.80078125, 24.60156250) +[2618736.869] {Default Queue} wl_pointer#2025.motion(187310366, 29.80078125, 24.60156250) +[2618736.874] {Default Queue} wl_pointer#2057.motion(187310366, 29.80078125, 24.60156250) +[2618736.878] {Default Queue} wl_pointer#2089.motion(187310366, 29.80078125, 24.60156250) +[2618736.882] {Default Queue} wl_pointer#2121.motion(187310366, 29.80078125, 24.60156250) +[2618736.887] {Default Queue} wl_pointer#2153.motion(187310366, 29.80078125, 24.60156250) +[2618736.891] {Default Queue} wl_pointer#2185.motion(187310366, 29.80078125, 24.60156250) +[2618736.895] {Default Queue} wl_pointer#2217.motion(187310366, 29.80078125, 24.60156250) +[2618736.899] {Default Queue} wl_pointer#2249.motion(187310366, 29.80078125, 24.60156250) +[2618736.904] {Default Queue} wl_pointer#2281.motion(187310366, 29.80078125, 24.60156250) +[2618736.908] {Default Queue} wl_pointer#2313.motion(187310366, 29.80078125, 24.60156250) +[2618736.912] {Default Queue} wl_pointer#2345.motion(187310366, 29.80078125, 24.60156250) +[2618736.917] {Default Queue} wl_pointer#2377.motion(187310366, 29.80078125, 24.60156250) +[2618736.921] {Default Queue} wl_pointer#2409.motion(187310366, 29.80078125, 24.60156250) +[2618736.925] {Default Queue} wl_pointer#2441.motion(187310366, 29.80078125, 24.60156250) +[2618736.930] {Default Queue} wl_pointer#2473.motion(187310366, 29.80078125, 24.60156250) +[2618736.934] {Default Queue} wl_pointer#2498.motion(187310366, 29.80078125, 24.60156250) +[2618736.946] {Default Queue} -> wl_buffer#3483.destroy() +[2618736.950] {Default Queue} -> wl_buffer#3516.destroy() +[2618736.955] {Default Queue} -> wl_shm_pool#3515.destroy() +[2618736.959] {Default Queue} -> wl_shm_pool#3486.destroy() +[2618736.963] {Default Queue} -> wl_surface#3485.destroy() +[2618737.002] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3452, fd 575, 640) +[2618737.008] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3517, fd 578, 640) +[2618737.013] {Default Queue} -> wl_shm_pool#3452.create_buffer(new id wl_buffer#3454, 0, 10, 16, 40, 0) +[2618737.018] {Default Queue} -> wl_shm_pool#3517.create_buffer(new id wl_buffer#3451, 0, 10, 16, 40, 0) +[2618737.025] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3518) +[2618737.030] {Default Queue} -> wl_surface#3518.attach(wl_buffer#3454, 0, 0) +[2618737.034] {Default Queue} -> wl_surface#3518.commit() +[2618737.039] {Default Queue} -> wl_surface#3518.attach(wl_buffer#3454, 0, 0) +[2618737.043] {Default Queue} -> wl_surface#3518.commit() +[2618737.048] {Default Queue} wl_pointer#2537.motion(187310366, 29.80078125, 24.60156250) +[2618737.052] {Default Queue} wl_pointer#2569.motion(187310366, 29.80078125, 24.60156250) +[2618737.057] {Default Queue} wl_pointer#2601.motion(187310366, 29.80078125, 24.60156250) +[2618737.061] {Default Queue} wl_pointer#2633.motion(187310366, 29.80078125, 24.60156250) +[2618737.065] {Default Queue} wl_pointer#2665.motion(187310366, 29.80078125, 24.60156250) +[2618737.070] {Default Queue} wl_pointer#2697.motion(187310366, 29.80078125, 24.60156250) +[2618737.074] {Default Queue} wl_pointer#2729.motion(187310366, 29.80078125, 24.60156250) +[2618737.078] {Default Queue} wl_pointer#2761.motion(187310366, 29.80078125, 24.60156250) +[2618737.083] {Default Queue} wl_pointer#2793.motion(187310366, 29.80078125, 24.60156250) +[2618737.087] {Default Queue} wl_pointer#2825.motion(187310366, 29.80078125, 24.60156250) +[2618737.091] {Default Queue} wl_pointer#2857.motion(187310366, 29.80078125, 24.60156250) +[2618737.097] {Default Queue} wl_pointer#2889.motion(187310366, 29.80078125, 24.60156250) +[2618737.103] {Default Queue} wl_pointer#2921.motion(187310366, 29.80078125, 24.60156250) +[2618737.108] {Default Queue} wl_pointer#2953.motion(187310366, 29.80078125, 24.60156250) +[2618737.112] {Default Queue} wl_pointer#2985.motion(187310366, 29.80078125, 24.60156250) +[2618737.116] {Default Queue} wl_pointer#3017.motion(187310366, 29.80078125, 24.60156250) +[2618737.120] {Default Queue} wl_pointer#3049.motion(187310366, 29.80078125, 24.60156250) +[2618737.125] {Default Queue} wl_pointer#3081.motion(187310366, 29.80078125, 24.60156250) +[2618737.129] {Default Queue} wl_pointer#3113.motion(187310366, 29.80078125, 24.60156250) +[2618737.133] {Default Queue} wl_pointer#3145.motion(187310366, 29.80078125, 24.60156250) +[2618737.138] {Default Queue} wl_pointer#3177.motion(187310366, 29.80078125, 24.60156250) +[2618737.142] {Default Queue} wl_pointer#3209.motion(187310366, 29.80078125, 24.60156250) +[2618737.146] {Default Queue} wl_pointer#3241.motion(187310366, 29.80078125, 24.60156250) +[2618737.151] {Default Queue} wl_pointer#3273.motion(187310366, 29.80078125, 24.60156250) +[2618737.155] {Default Queue} wl_pointer#3305.motion(187310366, 29.80078125, 24.60156250) +[2618737.159] {Default Queue} wl_pointer#3337.motion(187310366, 29.80078125, 24.60156250) +[2618737.164] {Default Queue} wl_pointer#3369.motion(187310366, 29.80078125, 24.60156250) +[2618737.168] {Default Queue} wl_pointer#3401.motion(187310366, 29.80078125, 24.60156250) +[2618737.172] {Default Queue} wl_pointer#3433.motion(187310366, 29.80078125, 24.60156250) +[2618737.177] {Default Queue} wl_pointer#3465.motion(187310366, 29.80078125, 24.60156250) +[2618737.181] {Default Queue} wl_pointer#3497.motion(187310366, 29.80078125, 24.60156250) +[2618737.185] {Default Queue} wl_pointer#3529.motion(187310366, 29.80078125, 24.60156250) +[2618737.190] {Default Queue} wl_pointer#3561.motion(187310366, 29.80078125, 24.60156250) +[2618737.194] {Default Queue} wl_pointer#3593.motion(187310366, 29.80078125, 24.60156250) +[2618737.198] {Default Queue} wl_pointer#3625.motion(187310366, 29.80078125, 24.60156250) +[2618737.203] {Default Queue} wl_pointer#3657.motion(187310366, 29.80078125, 24.60156250) +[2618737.207] {Default Queue} wl_pointer#3695.motion(187310366, 29.80078125, 24.60156250) +[2618737.217] {Default Queue} -> wl_region#3103.subtract(0, 0, 19, 48) +[2618737.222] {Default Queue} -> wl_region#3103.add(-20, -49, 19, 48) +[2618737.226] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2618737.231] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2618737.325] {Default Queue} -> wl_region#3103.subtract(0, 0, 19, 48) +[2618737.330] {Default Queue} -> wl_region#3103.add(-20, -49, 19, 48) +[2618737.334] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2618737.338] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2618737.345] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618737.349] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618737.413] {Default Queue} -> wl_region#3103.subtract(0, 0, 19, 48) +[2618737.418] {Default Queue} -> wl_region#3103.add(-20, -49, 19, 48) +[2618737.422] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2618737.426] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2618737.431] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618737.435] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618737.441] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) +[2618737.445] {Default Queue} -> wl_surface#3079.commit() +[2618737.449] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) +[2618737.453] {Default Queue} -> wl_surface#3079.commit() +[2618737.459] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) +[2618737.464] {Default Queue} -> wl_surface#3079.commit() +[2618737.470] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618737.477] {Default Queue} -> wl_surface#3175.commit() +[2618738.544] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618738.549] {Default Queue} -> wl_surface#3175.commit() +[2618738.556] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618738.561] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618738.565] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618738.569] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618738.577] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618738.582] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618738.586] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618738.590] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618738.595] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618738.599] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618738.603] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618738.607] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618738.612] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618738.616] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618738.620] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618738.624] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618738.629] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618738.633] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618738.637] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618738.641] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618738.647] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618738.651] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618738.655] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618738.659] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618738.664] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618738.668] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618738.672] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618738.676] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618738.681] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618738.685] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618738.689] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618738.693] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618738.698] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618738.702] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618738.706] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618738.710] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618738.720] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618738.725] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618738.729] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618738.733] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618738.738] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618738.742] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618738.746] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618738.750] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618738.755] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618738.759] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618738.763] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618738.767] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618738.771] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) +[2618738.776] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) +[2618738.780] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618738.787] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618738.793] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618738.797] {Default Queue} -> wl_surface#3175.commit() +[2618738.801] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618738.805] {Default Queue} -> wl_surface#3175.commit() +[2618738.811] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618738.815] {Default Queue} -> wl_surface#3175.commit() +[2618738.821] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) +[2618738.825] {Default Queue} -> wl_surface#3207.commit() +[2618739.866] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) +[2618739.873] {Default Queue} -> wl_surface#3207.commit() +[2618739.882] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618739.886] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618739.890] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618739.894] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618739.899] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618739.904] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618739.908] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618739.912] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618739.916] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618739.920] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618739.925] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618739.929] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618739.933] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618739.937] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618739.942] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618739.945] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618739.952] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618739.956] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618739.960] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618739.964] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618739.974] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618739.978] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618739.983] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618739.987] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618739.991] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618739.996] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.000] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.004] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.008] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.013] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.017] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.021] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.025] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.030] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.034] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.038] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.042] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.046] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.051] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.054] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.067] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.072] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.076] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.083] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.093] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.097] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.101] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.105] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.112] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.117] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.121] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.125] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.131] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.135] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.140] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.144] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.148] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.152] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.157] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.160] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.165] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.169] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.173] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.177] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.182] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.186] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.190] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.194] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.199] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.203] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.207] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.212] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.220] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.225] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.231] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.235] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.239] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.244] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.248] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.252] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.256] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.260] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.264] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.268] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.273] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.277] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.281] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.285] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.323] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.328] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.332] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.336] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.342] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618740.346] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618740.358] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.362] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.370] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.376] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.382] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.386] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.390] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.394] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.429] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.433] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.438] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.442] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.446] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618740.451] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618740.459] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.464] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.468] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.472] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.477] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.481] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.485] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.489] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.494] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.498] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.502] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.506] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.510] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) +[2618740.515] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) +[2618740.519] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618740.523] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618740.527] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) +[2618740.532] {Default Queue} -> wl_surface#3207.commit() +[2618740.536] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) +[2618740.540] {Default Queue} -> wl_surface#3207.commit() +[2618740.546] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) +[2618740.550] {Default Queue} -> wl_surface#3207.commit() +[2618740.556] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) +[2618740.560] {Default Queue} -> wl_surface#3143.commit() +[2618741.392] {Display Queue} wl_display#1.delete_id(3684) +[2618741.400] {Display Queue} wl_display#1.delete_id(3681) +[2618741.404] {Display Queue} wl_display#1.delete_id(3682) +[2618741.408] {Display Queue} wl_display#1.delete_id(3679) +[2618741.412] {Display Queue} wl_display#1.delete_id(3671) +[2618741.416] {Display Queue} wl_display#1.delete_id(3292) +[2618741.420] {Display Queue} wl_display#1.delete_id(3293) +[2618741.423] {Display Queue} wl_display#1.delete_id(3484) +[2618741.427] {Display Queue} wl_display#1.delete_id(3291) +[2618741.431] {Display Queue} wl_display#1.delete_id(3294) +[2618741.435] {Default Queue} wl_pointer#24.motion(187310371, 29.80078125, 24.19921875) +[2618741.440] {Default Queue} wl_pointer#81.motion(187310371, 29.80078125, 24.19921875) +[2618741.446] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618741.451] {Default Queue} wl_pointer#105.motion(187310371, 29.80078125, 24.19921875) +[2618741.455] {Default Queue} wl_pointer#137.motion(187310371, 29.80078125, 24.19921875) +[2618741.459] {Default Queue} wl_pointer#169.motion(187310371, 29.80078125, 24.19921875) +[2618741.464] {Default Queue} wl_pointer#201.motion(187310371, 29.80078125, 24.19921875) +[2618741.468] {Default Queue} wl_pointer#233.motion(187310371, 29.80078125, 24.19921875) +[2618741.472] {Default Queue} wl_pointer#265.motion(187310371, 29.80078125, 24.19921875) +[2618741.481] {Default Queue} wl_pointer#297.motion(187310371, 29.80078125, 24.19921875) +[2618741.487] {Default Queue} wl_pointer#329.motion(187310371, 29.80078125, 24.19921875) +[2618741.491] {Default Queue} wl_pointer#361.motion(187310371, 29.80078125, 24.19921875) +[2618741.496] {Default Queue} wl_pointer#393.motion(187310371, 29.80078125, 24.19921875) +[2618741.500] {Default Queue} wl_pointer#425.motion(187310371, 29.80078125, 24.19921875) +[2618741.504] {Default Queue} wl_pointer#457.motion(187310371, 29.80078125, 24.19921875) +[2618741.508] {Default Queue} wl_pointer#489.motion(187310371, 29.80078125, 24.19921875) +[2618741.513] {Default Queue} wl_pointer#521.motion(187310371, 29.80078125, 24.19921875) +[2618741.517] {Default Queue} wl_pointer#553.motion(187310371, 29.80078125, 24.19921875) +[2618741.521] {Default Queue} wl_pointer#585.motion(187310371, 29.80078125, 24.19921875) +[2618741.525] {Default Queue} wl_pointer#617.motion(187310371, 29.80078125, 24.19921875) +[2618741.530] {Default Queue} wl_pointer#649.motion(187310371, 29.80078125, 24.19921875) +[2618741.534] {Default Queue} wl_pointer#681.motion(187310371, 29.80078125, 24.19921875) +[2618741.538] {Default Queue} wl_pointer#713.motion(187310371, 29.80078125, 24.19921875) +[2618741.542] {Default Queue} wl_pointer#745.motion(187310371, 29.80078125, 24.19921875) +[2618741.546] {Default Queue} wl_pointer#777.motion(187310371, 29.80078125, 24.19921875) +[2618741.551] {Default Queue} wl_pointer#809.motion(187310371, 29.80078125, 24.19921875) +[2618741.555] {Default Queue} wl_pointer#841.motion(187310371, 29.80078125, 24.19921875) +[2618741.559] {Default Queue} wl_pointer#873.motion(187310371, 29.80078125, 24.19921875) +[2618741.563] {Default Queue} wl_pointer#905.motion(187310371, 29.80078125, 24.19921875) +[2618741.568] {Default Queue} wl_pointer#937.motion(187310371, 29.80078125, 24.19921875) +[2618741.572] {Default Queue} wl_pointer#969.motion(187310371, 29.80078125, 24.19921875) +[2618741.576] {Default Queue} wl_pointer#1001.motion(187310371, 29.80078125, 24.19921875) +[2618741.580] {Default Queue} wl_pointer#1033.motion(187310371, 29.80078125, 24.19921875) +[2618741.585] {Default Queue} wl_pointer#1065.motion(187310371, 29.80078125, 24.19921875) +[2618741.589] {Default Queue} wl_pointer#1097.motion(187310371, 29.80078125, 24.19921875) +[2618741.593] {Default Queue} wl_pointer#1129.motion(187310371, 29.80078125, 24.19921875) +[2618741.597] {Default Queue} wl_pointer#1161.motion(187310371, 29.80078125, 24.19921875) +[2618741.602] {Default Queue} wl_pointer#1193.motion(187310371, 29.80078125, 24.19921875) +[2618741.606] {Default Queue} wl_pointer#1225.motion(187310371, 29.80078125, 24.19921875) +[2618741.610] {Default Queue} wl_pointer#1257.motion(187310371, 29.80078125, 24.19921875) +[2618741.614] {Default Queue} wl_pointer#1289.motion(187310371, 29.80078125, 24.19921875) +[2618741.619] {Default Queue} wl_pointer#1321.motion(187310371, 29.80078125, 24.19921875) +[2618741.623] {Default Queue} wl_pointer#1353.motion(187310371, 29.80078125, 24.19921875) +[2618741.627] {Default Queue} wl_pointer#1385.motion(187310371, 29.80078125, 24.19921875) +[2618741.631] {Default Queue} wl_pointer#1417.motion(187310371, 29.80078125, 24.19921875) +[2618741.635] {Default Queue} wl_pointer#1449.motion(187310371, 29.80078125, 24.19921875) +[2618741.640] {Default Queue} wl_pointer#1481.motion(187310371, 29.80078125, 24.19921875) +[2618741.644] {Default Queue} wl_pointer#1513.motion(187310371, 29.80078125, 24.19921875) +[2618741.648] {Default Queue} wl_pointer#1545.motion(187310371, 29.80078125, 24.19921875) +[2618741.653] {Default Queue} wl_pointer#1577.motion(187310371, 29.80078125, 24.19921875) +[2618741.657] {Default Queue} wl_pointer#1609.motion(187310371, 29.80078125, 24.19921875) +[2618741.661] {Default Queue} wl_pointer#1641.motion(187310371, 29.80078125, 24.19921875) +[2618741.665] {Default Queue} wl_pointer#1673.motion(187310371, 29.80078125, 24.19921875) +[2618741.670] {Default Queue} wl_pointer#1705.motion(187310371, 29.80078125, 24.19921875) +[2618741.674] {Default Queue} wl_pointer#1737.motion(187310371, 29.80078125, 24.19921875) +[2618741.681] {Default Queue} wl_pointer#1762.motion(187310371, 29.80078125, 24.19921875) +[2618741.687] {Default Queue} wl_pointer#1801.motion(187310371, 29.80078125, 24.19921875) +[2618741.691] {Default Queue} wl_pointer#1833.motion(187310371, 29.80078125, 24.19921875) +[2618741.695] {Default Queue} wl_pointer#1865.motion(187310371, 29.80078125, 24.19921875) +[2618741.700] {Default Queue} wl_pointer#1897.motion(187310371, 29.80078125, 24.19921875) +[2618741.704] {Default Queue} wl_pointer#1929.motion(187310371, 29.80078125, 24.19921875) +[2618741.708] {Default Queue} wl_pointer#1961.motion(187310371, 29.80078125, 24.19921875) +[2618741.712] {Default Queue} wl_pointer#1993.motion(187310371, 29.80078125, 24.19921875) +[2618741.716] {Default Queue} wl_pointer#2025.motion(187310371, 29.80078125, 24.19921875) +[2618741.721] {Default Queue} wl_pointer#2057.motion(187310371, 29.80078125, 24.19921875) +[2618741.725] {Default Queue} wl_pointer#2089.motion(187310371, 29.80078125, 24.19921875) +[2618741.729] {Default Queue} wl_pointer#2121.motion(187310371, 29.80078125, 24.19921875) +[2618741.733] {Default Queue} wl_pointer#2153.motion(187310371, 29.80078125, 24.19921875) +[2618741.738] {Default Queue} wl_pointer#2185.motion(187310371, 29.80078125, 24.19921875) +[2618741.742] {Default Queue} wl_pointer#2217.motion(187310371, 29.80078125, 24.19921875) +[2618741.746] {Default Queue} wl_pointer#2249.motion(187310371, 29.80078125, 24.19921875) +[2618741.750] {Default Queue} wl_pointer#2281.motion(187310371, 29.80078125, 24.19921875) +[2618741.755] {Default Queue} wl_pointer#2313.motion(187310371, 29.80078125, 24.19921875) +[2618741.759] {Default Queue} wl_pointer#2345.motion(187310371, 29.80078125, 24.19921875) +[2618741.764] {Default Queue} wl_pointer#2377.motion(187310371, 29.80078125, 24.19921875) +[2618741.768] {Default Queue} wl_pointer#2409.motion(187310371, 29.80078125, 24.19921875) +[2618741.772] {Default Queue} wl_pointer#2441.motion(187310371, 29.80078125, 24.19921875) +[2618741.776] {Default Queue} wl_pointer#2473.motion(187310371, 29.80078125, 24.19921875) +[2618741.780] {Default Queue} wl_pointer#2498.motion(187310371, 29.80078125, 24.19921875) +[2618741.793] {Default Queue} -> wl_buffer#3454.destroy() +[2618741.798] {Default Queue} -> wl_buffer#3451.destroy() +[2618741.802] {Default Queue} -> wl_shm_pool#3452.destroy() +[2618741.806] {Default Queue} -> wl_shm_pool#3517.destroy() +[2618741.811] {Default Queue} -> wl_surface#3518.destroy() +[2618741.849] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3294, fd 575, 640) +[2618741.855] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 578, 640) +[2618741.868] {Default Queue} -> wl_shm_pool#3294.create_buffer(new id wl_buffer#3484, 0, 10, 16, 40, 0) +[2618741.889] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) +[2618741.897] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3292) +[2618741.901] {Default Queue} -> wl_surface#3292.attach(wl_buffer#3484, 0, 0) +[2618741.905] {Default Queue} -> wl_surface#3292.commit() +[2618741.911] {Default Queue} -> wl_surface#3292.attach(wl_buffer#3484, 0, 0) +[2618741.915] {Default Queue} -> wl_surface#3292.commit() +[2618741.919] {Default Queue} wl_pointer#2537.motion(187310371, 29.80078125, 24.19921875) +[2618741.924] {Default Queue} wl_pointer#2569.motion(187310371, 29.80078125, 24.19921875) +[2618741.928] {Default Queue} wl_pointer#2601.motion(187310371, 29.80078125, 24.19921875) +[2618741.933] {Default Queue} wl_pointer#2633.motion(187310371, 29.80078125, 24.19921875) +[2618741.937] {Default Queue} wl_pointer#2665.motion(187310371, 29.80078125, 24.19921875) +[2618741.941] {Default Queue} wl_pointer#2697.motion(187310371, 29.80078125, 24.19921875) +[2618741.945] {Default Queue} wl_pointer#2729.motion(187310371, 29.80078125, 24.19921875) +[2618741.950] {Default Queue} wl_pointer#2761.motion(187310371, 29.80078125, 24.19921875) +[2618741.954] {Default Queue} wl_pointer#2793.motion(187310371, 29.80078125, 24.19921875) +[2618741.962] {Default Queue} wl_pointer#2825.motion(187310371, 29.80078125, 24.19921875) +[2618741.968] {Default Queue} wl_pointer#2857.motion(187310371, 29.80078125, 24.19921875) +[2618741.973] {Default Queue} wl_pointer#2889.motion(187310371, 29.80078125, 24.19921875) +[2618741.977] {Default Queue} wl_pointer#2921.motion(187310371, 29.80078125, 24.19921875) +[2618741.982] {Default Queue} wl_pointer#2953.motion(187310371, 29.80078125, 24.19921875) +[2618741.986] {Default Queue} wl_pointer#2985.motion(187310371, 29.80078125, 24.19921875) +[2618741.990] {Default Queue} wl_pointer#3017.motion(187310371, 29.80078125, 24.19921875) +[2618741.994] {Default Queue} wl_pointer#3049.motion(187310371, 29.80078125, 24.19921875) +[2618741.999] {Default Queue} wl_pointer#3081.motion(187310371, 29.80078125, 24.19921875) +[2618742.003] {Default Queue} wl_pointer#3113.motion(187310371, 29.80078125, 24.19921875) +[2618742.007] {Default Queue} wl_pointer#3145.motion(187310371, 29.80078125, 24.19921875) +[2618742.011] {Default Queue} wl_pointer#3177.motion(187310371, 29.80078125, 24.19921875) +[2618742.016] {Default Queue} wl_pointer#3209.motion(187310371, 29.80078125, 24.19921875) +[2618742.020] {Default Queue} wl_pointer#3241.motion(187310371, 29.80078125, 24.19921875) +[2618742.025] {Default Queue} wl_pointer#3273.motion(187310371, 29.80078125, 24.19921875) +[2618742.029] {Default Queue} wl_pointer#3305.motion(187310371, 29.80078125, 24.19921875) +[2618742.033] {Default Queue} wl_pointer#3337.motion(187310371, 29.80078125, 24.19921875) +[2618742.037] {Default Queue} wl_pointer#3369.motion(187310371, 29.80078125, 24.19921875) +[2618742.042] {Default Queue} wl_pointer#3401.motion(187310371, 29.80078125, 24.19921875) +[2618742.046] {Default Queue} wl_pointer#3433.motion(187310371, 29.80078125, 24.19921875) +[2618742.050] {Default Queue} wl_pointer#3465.motion(187310371, 29.80078125, 24.19921875) +[2618742.055] {Default Queue} wl_pointer#3497.motion(187310371, 29.80078125, 24.19921875) +[2618742.059] {Default Queue} wl_pointer#3529.motion(187310371, 29.80078125, 24.19921875) +[2618742.063] {Default Queue} wl_pointer#3561.motion(187310371, 29.80078125, 24.19921875) +[2618742.068] {Default Queue} wl_pointer#3593.motion(187310371, 29.80078125, 24.19921875) +[2618742.072] {Default Queue} wl_pointer#3625.motion(187310371, 29.80078125, 24.19921875) +[2618742.076] {Default Queue} wl_pointer#3657.motion(187310371, 29.80078125, 24.19921875) +[2618742.080] {Default Queue} wl_pointer#3695.motion(187310371, 29.80078125, 24.19921875) +[2618742.089] {Default Queue} -> wl_region#3167.subtract(0, 0, 19, 48) +[2618742.095] {Default Queue} -> wl_region#3167.add(-20, -49, 19, 48) +[2618742.100] {Default Queue} -> wl_surface#3143.set_opaque_region(wl_region#3168) +[2618742.104] {Default Queue} -> wl_surface#3143.set_input_region(wl_region#3167) +[2618742.109] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) +[2618742.113] {Default Queue} -> wl_surface#3143.commit() +[2618742.117] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) +[2618742.121] {Default Queue} -> wl_surface#3143.commit() +[2618742.146] {Default Queue} wl_pointer#24.motion(187310376, 29.39843750, 24.19921875) +[2618742.151] {Default Queue} wl_pointer#81.motion(187310376, 29.39843750, 24.19921875) +[2618742.156] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618742.161] {Default Queue} wl_pointer#105.motion(187310376, 29.39843750, 24.19921875) +[2618742.165] {Default Queue} wl_pointer#137.motion(187310376, 29.39843750, 24.19921875) +[2618742.169] {Default Queue} wl_pointer#169.motion(187310376, 29.39843750, 24.19921875) +[2618742.174] {Default Queue} wl_pointer#201.motion(187310376, 29.39843750, 24.19921875) +[2618742.178] {Default Queue} wl_pointer#233.motion(187310376, 29.39843750, 24.19921875) +[2618742.182] {Default Queue} wl_pointer#265.motion(187310376, 29.39843750, 24.19921875) +[2618742.187] {Default Queue} wl_pointer#297.motion(187310376, 29.39843750, 24.19921875) +[2618742.191] {Default Queue} wl_pointer#329.motion(187310376, 29.39843750, 24.19921875) +[2618742.199] {Default Queue} wl_pointer#361.motion(187310376, 29.39843750, 24.19921875) +[2618742.205] {Default Queue} wl_pointer#393.motion(187310376, 29.39843750, 24.19921875) +[2618742.210] {Default Queue} wl_pointer#425.motion(187310376, 29.39843750, 24.19921875) +[2618742.214] {Default Queue} wl_pointer#457.motion(187310376, 29.39843750, 24.19921875) +[2618742.218] {Default Queue} wl_pointer#489.motion(187310376, 29.39843750, 24.19921875) +[2618742.222] {Default Queue} wl_pointer#521.motion(187310376, 29.39843750, 24.19921875) +[2618742.227] {Default Queue} wl_pointer#553.motion(187310376, 29.39843750, 24.19921875) +[2618742.231] {Default Queue} wl_pointer#585.motion(187310376, 29.39843750, 24.19921875) +[2618742.235] {Default Queue} wl_pointer#617.motion(187310376, 29.39843750, 24.19921875) +[2618742.239] {Default Queue} wl_pointer#649.motion(187310376, 29.39843750, 24.19921875) +[2618742.244] {Default Queue} wl_pointer#681.motion(187310376, 29.39843750, 24.19921875) +[2618742.248] {Default Queue} wl_pointer#713.motion(187310376, 29.39843750, 24.19921875) +[2618742.252] {Default Queue} wl_pointer#745.motion(187310376, 29.39843750, 24.19921875) +[2618742.256] {Default Queue} wl_pointer#777.motion(187310376, 29.39843750, 24.19921875) +[2618742.261] {Default Queue} wl_pointer#809.motion(187310376, 29.39843750, 24.19921875) +[2618742.265] {Default Queue} wl_pointer#841.motion(187310376, 29.39843750, 24.19921875) +[2618742.269] {Default Queue} wl_pointer#873.motion(187310376, 29.39843750, 24.19921875) +[2618742.273] {Default Queue} wl_pointer#905.motion(187310376, 29.39843750, 24.19921875) +[2618742.278] {Default Queue} wl_pointer#937.motion(187310376, 29.39843750, 24.19921875) +[2618742.282] {Default Queue} wl_pointer#969.motion(187310376, 29.39843750, 24.19921875) +[2618742.286] {Default Queue} wl_pointer#1001.motion(187310376, 29.39843750, 24.19921875) +[2618742.291] {Default Queue} wl_pointer#1033.motion(187310376, 29.39843750, 24.19921875) +[2618742.295] {Default Queue} wl_pointer#1065.motion(187310376, 29.39843750, 24.19921875) +[2618742.299] {Default Queue} wl_pointer#1097.motion(187310376, 29.39843750, 24.19921875) +[2618742.303] {Default Queue} wl_pointer#1129.motion(187310376, 29.39843750, 24.19921875) +[2618742.308] {Default Queue} wl_pointer#1161.motion(187310376, 29.39843750, 24.19921875) +[2618742.312] {Default Queue} wl_pointer#1193.motion(187310376, 29.39843750, 24.19921875) +[2618742.316] {Default Queue} wl_pointer#1225.motion(187310376, 29.39843750, 24.19921875) +[2618742.320] {Default Queue} wl_pointer#1257.motion(187310376, 29.39843750, 24.19921875) +[2618742.325] {Default Queue} wl_pointer#1289.motion(187310376, 29.39843750, 24.19921875) +[2618742.329] {Default Queue} wl_pointer#1321.motion(187310376, 29.39843750, 24.19921875) +[2618742.333] {Default Queue} wl_pointer#1353.motion(187310376, 29.39843750, 24.19921875) +[2618742.337] {Default Queue} wl_pointer#1385.motion(187310376, 29.39843750, 24.19921875) +[2618742.342] {Default Queue} wl_pointer#1417.motion(187310376, 29.39843750, 24.19921875) +[2618742.346] {Default Queue} wl_pointer#1449.motion(187310376, 29.39843750, 24.19921875) +[2618742.350] {Default Queue} wl_pointer#1481.motion(187310376, 29.39843750, 24.19921875) +[2618742.354] {Default Queue} wl_pointer#1513.motion(187310376, 29.39843750, 24.19921875) +[2618742.359] {Default Queue} wl_pointer#1545.motion(187310376, 29.39843750, 24.19921875) +[2618742.363] {Default Queue} wl_pointer#1577.motion(187310376, 29.39843750, 24.19921875) +[2618742.367] {Default Queue} wl_pointer#1609.motion(187310376, 29.39843750, 24.19921875) +[2618742.372] {Default Queue} wl_pointer#1641.motion(187310376, 29.39843750, 24.19921875) +[2618742.376] {Default Queue} wl_pointer#1673.motion(187310376, 29.39843750, 24.19921875) +[2618742.380] {Default Queue} wl_pointer#1705.motion(187310376, 29.39843750, 24.19921875) +[2618742.385] {Default Queue} wl_pointer#1737.motion(187310376, 29.39843750, 24.19921875) +[2618742.389] {Default Queue} wl_pointer#1762.motion(187310376, 29.39843750, 24.19921875) +[2618742.393] {Default Queue} wl_pointer#1801.motion(187310376, 29.39843750, 24.19921875) +[2618742.401] {Default Queue} wl_pointer#1833.motion(187310376, 29.39843750, 24.19921875) +[2618742.407] {Default Queue} wl_pointer#1865.motion(187310376, 29.39843750, 24.19921875) +[2618742.411] {Default Queue} wl_pointer#1897.motion(187310376, 29.39843750, 24.19921875) +[2618742.416] {Default Queue} wl_pointer#1929.motion(187310376, 29.39843750, 24.19921875) +[2618742.420] {Default Queue} wl_pointer#1961.motion(187310376, 29.39843750, 24.19921875) +[2618742.424] {Default Queue} wl_pointer#1993.motion(187310376, 29.39843750, 24.19921875) +[2618742.429] {Default Queue} wl_pointer#2025.motion(187310376, 29.39843750, 24.19921875) +[2618742.433] {Default Queue} wl_pointer#2057.motion(187310376, 29.39843750, 24.19921875) +[2618742.437] {Default Queue} wl_pointer#2089.motion(187310376, 29.39843750, 24.19921875) +[2618742.441] {Default Queue} wl_pointer#2121.motion(187310376, 29.39843750, 24.19921875) +[2618742.446] {Default Queue} wl_pointer#2153.motion(187310376, 29.39843750, 24.19921875) +[2618742.450] {Default Queue} wl_pointer#2185.motion(187310376, 29.39843750, 24.19921875) +[2618742.454] {Default Queue} wl_pointer#2217.motion(187310376, 29.39843750, 24.19921875) +[2618742.459] {Default Queue} wl_pointer#2249.motion(187310376, 29.39843750, 24.19921875) +[2618742.463] {Default Queue} wl_pointer#2281.motion(187310376, 29.39843750, 24.19921875) +[2618742.467] {Default Queue} wl_pointer#2313.motion(187310376, 29.39843750, 24.19921875) +[2618742.471] {Default Queue} wl_pointer#2345.motion(187310376, 29.39843750, 24.19921875) +[2618742.476] {Default Queue} wl_pointer#2377.motion(187310376, 29.39843750, 24.19921875) +[2618742.480] {Default Queue} wl_pointer#2409.motion(187310376, 29.39843750, 24.19921875) +[2618742.484] {Default Queue} wl_pointer#2441.motion(187310376, 29.39843750, 24.19921875) +[2618742.489] {Default Queue} wl_pointer#2473.motion(187310376, 29.39843750, 24.19921875) +[2618742.493] {Default Queue} wl_pointer#2498.motion(187310376, 29.39843750, 24.19921875) +[2618742.503] {Default Queue} -> wl_buffer#3484.destroy() +[2618742.508] {Default Queue} -> wl_buffer#3293.destroy() +[2618742.513] {Default Queue} -> wl_shm_pool#3294.destroy() +[2618742.517] {Default Queue} -> wl_shm_pool#3291.destroy() +[2618742.522] {Default Queue} -> wl_surface#3292.destroy() +[2618742.556] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3671, fd 581, 640) +[2618742.562] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 582, 640) +[2618742.566] {Default Queue} -> wl_shm_pool#3671.create_buffer(new id wl_buffer#3682, 0, 10, 16, 40, 0) +[2618742.571] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) +[2618742.578] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3684) +[2618742.582] {Default Queue} -> wl_surface#3684.attach(wl_buffer#3682, 0, 0) +[2618742.586] {Default Queue} -> wl_surface#3684.commit() +[2618742.592] {Default Queue} -> wl_surface#3684.attach(wl_buffer#3682, 0, 0) +[2618742.596] {Default Queue} -> wl_surface#3684.commit() +[2618742.600] {Default Queue} wl_pointer#2537.motion(187310376, 29.39843750, 24.19921875) +[2618742.604] {Default Queue} wl_pointer#2569.motion(187310376, 29.39843750, 24.19921875) +[2618742.609] {Default Queue} wl_pointer#2601.motion(187310376, 29.39843750, 24.19921875) +[2618742.613] {Default Queue} wl_pointer#2633.motion(187310376, 29.39843750, 24.19921875) +[2618742.617] {Default Queue} wl_pointer#2665.motion(187310376, 29.39843750, 24.19921875) +[2618742.622] {Default Queue} wl_pointer#2697.motion(187310376, 29.39843750, 24.19921875) +[2618742.626] {Default Queue} wl_pointer#2729.motion(187310376, 29.39843750, 24.19921875) +[2618742.630] {Default Queue} wl_pointer#2761.motion(187310376, 29.39843750, 24.19921875) +[2618742.634] {Default Queue} wl_pointer#2793.motion(187310376, 29.39843750, 24.19921875) +[2618742.639] {Default Queue} wl_pointer#2825.motion(187310376, 29.39843750, 24.19921875) +[2618742.643] {Default Queue} wl_pointer#2857.motion(187310376, 29.39843750, 24.19921875) +[2618742.647] {Default Queue} wl_pointer#2889.motion(187310376, 29.39843750, 24.19921875) +[2618742.655] {Default Queue} wl_pointer#2921.motion(187310376, 29.39843750, 24.19921875) +[2618742.661] {Default Queue} wl_pointer#2953.motion(187310376, 29.39843750, 24.19921875) +[2618742.665] {Default Queue} wl_pointer#2985.motion(187310376, 29.39843750, 24.19921875) +[2618742.670] {Default Queue} wl_pointer#3017.motion(187310376, 29.39843750, 24.19921875) +[2618742.674] {Default Queue} wl_pointer#3049.motion(187310376, 29.39843750, 24.19921875) +[2618742.678] {Default Queue} wl_pointer#3081.motion(187310376, 29.39843750, 24.19921875) +[2618742.682] {Default Queue} wl_pointer#3113.motion(187310376, 29.39843750, 24.19921875) +[2618742.687] {Default Queue} wl_pointer#3145.motion(187310376, 29.39843750, 24.19921875) +[2618742.691] {Default Queue} wl_pointer#3177.motion(187310376, 29.39843750, 24.19921875) +[2618742.695] {Default Queue} wl_pointer#3209.motion(187310376, 29.39843750, 24.19921875) +[2618742.700] {Default Queue} wl_pointer#3241.motion(187310376, 29.39843750, 24.19921875) +[2618742.704] {Default Queue} wl_pointer#3273.motion(187310376, 29.39843750, 24.19921875) +[2618742.708] {Default Queue} wl_pointer#3305.motion(187310376, 29.39843750, 24.19921875) +[2618742.713] {Default Queue} wl_pointer#3337.motion(187310376, 29.39843750, 24.19921875) +[2618742.717] {Default Queue} wl_pointer#3369.motion(187310376, 29.39843750, 24.19921875) +[2618742.722] {Default Queue} wl_pointer#3401.motion(187310376, 29.39843750, 24.19921875) +[2618742.743] {Default Queue} wl_pointer#3433.motion(187310376, 29.39843750, 24.19921875) +[2618742.753] {Default Queue} wl_pointer#3465.motion(187310376, 29.39843750, 24.19921875) +[2618742.758] {Default Queue} wl_pointer#3497.motion(187310376, 29.39843750, 24.19921875) +[2618742.762] {Default Queue} wl_pointer#3529.motion(187310376, 29.39843750, 24.19921875) +[2618742.767] {Default Queue} wl_pointer#3561.motion(187310376, 29.39843750, 24.19921875) +[2618742.771] {Default Queue} wl_pointer#3593.motion(187310376, 29.39843750, 24.19921875) +[2618742.776] {Default Queue} wl_pointer#3625.motion(187310376, 29.39843750, 24.19921875) +[2618742.780] {Default Queue} wl_pointer#3657.motion(187310376, 29.39843750, 24.19921875) +[2618742.787] {Default Queue} wl_pointer#3695.motion(187310376, 29.39843750, 24.19921875) +[2618742.791] {Default Queue} wl_pointer#24.motion(187310376, 29.39843750, 23.80078125) +[2618742.795] {Default Queue} wl_pointer#81.motion(187310376, 29.39843750, 23.80078125) +[2618742.801] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618742.806] {Default Queue} wl_pointer#105.motion(187310376, 29.39843750, 23.80078125) +[2618742.811] {Default Queue} wl_pointer#137.motion(187310376, 29.39843750, 23.80078125) +[2618742.815] {Default Queue} wl_pointer#169.motion(187310376, 29.39843750, 23.80078125) +[2618742.819] {Default Queue} wl_pointer#201.motion(187310376, 29.39843750, 23.80078125) +[2618742.823] {Default Queue} wl_pointer#233.motion(187310376, 29.39843750, 23.80078125) +[2618742.828] {Default Queue} wl_pointer#265.motion(187310376, 29.39843750, 23.80078125) +[2618742.832] {Default Queue} wl_pointer#297.motion(187310376, 29.39843750, 23.80078125) +[2618742.836] {Default Queue} wl_pointer#329.motion(187310376, 29.39843750, 23.80078125) +[2618742.841] {Default Queue} wl_pointer#361.motion(187310376, 29.39843750, 23.80078125) +[2618742.845] {Default Queue} wl_pointer#393.motion(187310376, 29.39843750, 23.80078125) +[2618742.849] {Default Queue} wl_pointer#425.motion(187310376, 29.39843750, 23.80078125) +[2618742.854] {Default Queue} wl_pointer#457.motion(187310376, 29.39843750, 23.80078125) +[2618742.858] {Default Queue} wl_pointer#489.motion(187310376, 29.39843750, 23.80078125) +[2618742.866] {Default Queue} wl_pointer#521.motion(187310376, 29.39843750, 23.80078125) +[2618742.871] {Default Queue} wl_pointer#553.motion(187310376, 29.39843750, 23.80078125) +[2618742.875] {Default Queue} wl_pointer#585.motion(187310376, 29.39843750, 23.80078125) +[2618742.879] {Default Queue} wl_pointer#617.motion(187310376, 29.39843750, 23.80078125) +[2618742.888] {Default Queue} wl_pointer#649.motion(187310376, 29.39843750, 23.80078125) +[2618742.895] {Default Queue} wl_pointer#681.motion(187310376, 29.39843750, 23.80078125) +[2618742.899] {Default Queue} wl_pointer#713.motion(187310376, 29.39843750, 23.80078125) +[2618742.903] {Default Queue} wl_pointer#745.motion(187310376, 29.39843750, 23.80078125) +[2618742.908] {Default Queue} wl_pointer#777.motion(187310376, 29.39843750, 23.80078125) +[2618742.912] {Default Queue} wl_pointer#809.motion(187310376, 29.39843750, 23.80078125) +[2618742.916] {Default Queue} wl_pointer#841.motion(187310376, 29.39843750, 23.80078125) +[2618742.921] {Default Queue} wl_pointer#873.motion(187310376, 29.39843750, 23.80078125) +[2618742.925] {Default Queue} wl_pointer#905.motion(187310376, 29.39843750, 23.80078125) +[2618742.929] {Default Queue} wl_pointer#937.motion(187310376, 29.39843750, 23.80078125) +[2618742.933] {Default Queue} wl_pointer#969.motion(187310376, 29.39843750, 23.80078125) +[2618742.938] {Default Queue} wl_pointer#1001.motion(187310376, 29.39843750, 23.80078125) +[2618742.942] {Default Queue} wl_pointer#1033.motion(187310376, 29.39843750, 23.80078125) +[2618742.946] {Default Queue} wl_pointer#1065.motion(187310376, 29.39843750, 23.80078125) +[2618742.951] {Default Queue} wl_pointer#1097.motion(187310376, 29.39843750, 23.80078125) +[2618742.955] {Default Queue} wl_pointer#1129.motion(187310376, 29.39843750, 23.80078125) +[2618742.959] {Default Queue} wl_pointer#1161.motion(187310376, 29.39843750, 23.80078125) +[2618742.963] {Default Queue} wl_pointer#1193.motion(187310376, 29.39843750, 23.80078125) +[2618742.968] {Default Queue} wl_pointer#1225.motion(187310376, 29.39843750, 23.80078125) +[2618742.972] {Default Queue} wl_pointer#1257.motion(187310376, 29.39843750, 23.80078125) +[2618742.976] {Default Queue} wl_pointer#1289.motion(187310376, 29.39843750, 23.80078125) +[2618742.981] {Default Queue} wl_pointer#1321.motion(187310376, 29.39843750, 23.80078125) +[2618742.985] {Default Queue} wl_pointer#1353.motion(187310376, 29.39843750, 23.80078125) +[2618742.989] {Default Queue} wl_pointer#1385.motion(187310376, 29.39843750, 23.80078125) +[2618742.994] {Default Queue} wl_pointer#1417.motion(187310376, 29.39843750, 23.80078125) +[2618742.998] {Default Queue} wl_pointer#1449.motion(187310376, 29.39843750, 23.80078125) +[2618743.002] {Default Queue} wl_pointer#1481.motion(187310376, 29.39843750, 23.80078125) +[2618743.006] {Default Queue} wl_pointer#1513.motion(187310376, 29.39843750, 23.80078125) +[2618743.011] {Default Queue} wl_pointer#1545.motion(187310376, 29.39843750, 23.80078125) +[2618743.015] {Default Queue} wl_pointer#1577.motion(187310376, 29.39843750, 23.80078125) +[2618743.019] {Default Queue} wl_pointer#1609.motion(187310376, 29.39843750, 23.80078125) +[2618743.024] {Default Queue} wl_pointer#1641.motion(187310376, 29.39843750, 23.80078125) +[2618743.028] {Default Queue} wl_pointer#1673.motion(187310376, 29.39843750, 23.80078125) +[2618743.032] {Default Queue} wl_pointer#1705.motion(187310376, 29.39843750, 23.80078125) +[2618743.037] {Default Queue} wl_pointer#1737.motion(187310376, 29.39843750, 23.80078125) +[2618743.041] {Default Queue} wl_pointer#1762.motion(187310376, 29.39843750, 23.80078125) +[2618743.045] {Default Queue} wl_pointer#1801.motion(187310376, 29.39843750, 23.80078125) +[2618743.050] {Default Queue} wl_pointer#1833.motion(187310376, 29.39843750, 23.80078125) +[2618743.054] {Default Queue} wl_pointer#1865.motion(187310376, 29.39843750, 23.80078125) +[2618743.058] {Default Queue} wl_pointer#1897.motion(187310376, 29.39843750, 23.80078125) +[2618743.063] {Default Queue} wl_pointer#1929.motion(187310376, 29.39843750, 23.80078125) +[2618743.067] {Default Queue} wl_pointer#1961.motion(187310376, 29.39843750, 23.80078125) +[2618743.071] {Default Queue} wl_pointer#1993.motion(187310376, 29.39843750, 23.80078125) +[2618743.076] {Default Queue} wl_pointer#2025.motion(187310376, 29.39843750, 23.80078125) +[2618743.080] {Default Queue} wl_pointer#2057.motion(187310376, 29.39843750, 23.80078125) +[2618743.084] {Default Queue} wl_pointer#2089.motion(187310376, 29.39843750, 23.80078125) +[2618743.091] {Default Queue} wl_pointer#2121.motion(187310376, 29.39843750, 23.80078125) +[2618743.097] {Default Queue} wl_pointer#2153.motion(187310376, 29.39843750, 23.80078125) +[2618743.102] {Default Queue} wl_pointer#2185.motion(187310376, 29.39843750, 23.80078125) +[2618743.106] {Default Queue} wl_pointer#2217.motion(187310376, 29.39843750, 23.80078125) +[2618743.110] {Default Queue} wl_pointer#2249.motion(187310376, 29.39843750, 23.80078125) +[2618743.114] {Default Queue} wl_pointer#2281.motion(187310376, 29.39843750, 23.80078125) +[2618743.119] {Default Queue} wl_pointer#2313.motion(187310376, 29.39843750, 23.80078125) +[2618743.123] {Default Queue} wl_pointer#2345.motion(187310376, 29.39843750, 23.80078125) +[2618743.128] {Default Queue} wl_pointer#2377.motion(187310376, 29.39843750, 23.80078125) +[2618743.132] {Default Queue} wl_pointer#2409.motion(187310376, 29.39843750, 23.80078125) +[2618743.136] {Default Queue} wl_pointer#2441.motion(187310376, 29.39843750, 23.80078125) +[2618743.140] {Default Queue} wl_pointer#2473.motion(187310376, 29.39843750, 23.80078125) +[2618743.147] {Default Queue} wl_pointer#2498.motion(187310376, 29.39843750, 23.80078125) +[2618743.159] {Default Queue} -> wl_buffer#3682.destroy() +[2618743.165] {Default Queue} -> wl_buffer#3681.destroy() +[2618743.169] {Default Queue} -> wl_shm_pool#3671.destroy() +[2618743.173] {Default Queue} -> wl_shm_pool#3679.destroy() +[2618743.178] {Default Queue} -> wl_surface#3684.destroy() +[2618743.218] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3683, fd 583, 640) +[2618743.224] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 584, 640) +[2618743.230] {Default Queue} -> wl_shm_pool#3683.create_buffer(new id wl_buffer#91, 0, 10, 16, 40, 0) +[2618743.235] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) +[2618743.243] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#93) +[2618743.247] {Default Queue} -> wl_surface#93.attach(wl_buffer#91, 0, 0) +[2618743.252] {Default Queue} -> wl_surface#93.commit() +[2618743.257] {Default Queue} -> wl_surface#93.attach(wl_buffer#91, 0, 0) +[2618743.261] {Default Queue} -> wl_surface#93.commit() +[2618743.266] {Default Queue} wl_pointer#2537.motion(187310376, 29.39843750, 23.80078125) +[2618743.271] {Default Queue} wl_pointer#2569.motion(187310376, 29.39843750, 23.80078125) +[2618743.275] {Default Queue} wl_pointer#2601.motion(187310376, 29.39843750, 23.80078125) +[2618743.279] {Default Queue} wl_pointer#2633.motion(187310376, 29.39843750, 23.80078125) +[2618743.284] {Default Queue} wl_pointer#2665.motion(187310376, 29.39843750, 23.80078125) +[2618743.288] {Default Queue} wl_pointer#2697.motion(187310376, 29.39843750, 23.80078125) +[2618743.292] {Default Queue} wl_pointer#2729.motion(187310376, 29.39843750, 23.80078125) +[2618743.297] {Default Queue} wl_pointer#2761.motion(187310376, 29.39843750, 23.80078125) +[2618743.301] {Default Queue} wl_pointer#2793.motion(187310376, 29.39843750, 23.80078125) +[2618743.305] {Default Queue} wl_pointer#2825.motion(187310376, 29.39843750, 23.80078125) +[2618743.310] {Default Queue} wl_pointer#2857.motion(187310376, 29.39843750, 23.80078125) +[2618743.315] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) +[2618743.319] {Default Queue} -> wl_surface#3143.commit() +[2618744.385] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) +[2618744.391] {Default Queue} -> wl_surface#3143.commit() +[2618744.397] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) +[2618744.401] {Default Queue} -> wl_surface#3143.commit() +[2618744.407] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) +[2618744.411] {Default Queue} -> wl_surface#3111.commit() +[2618745.473] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) +[2618745.478] {Default Queue} -> wl_surface#3111.commit() +[2618745.486] {Default Queue} -> wl_region#3135.subtract(0, 0, 19, 48) +[2618745.491] {Default Queue} -> wl_region#3135.add(-20, -49, 19, 48) +[2618745.496] {Default Queue} -> wl_surface#3111.set_opaque_region(wl_region#3136) +[2618745.504] {Default Queue} -> wl_surface#3111.set_input_region(wl_region#3135) +[2618745.512] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) +[2618745.516] {Default Queue} -> wl_surface#3111.commit() +[2618745.520] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) +[2618745.524] {Default Queue} -> wl_surface#3111.commit() +[2618745.546] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) +[2618745.551] {Default Queue} -> wl_surface#3111.commit() +[2618745.567] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) +[2618745.571] {Default Queue} -> wl_surface#3047.commit() +[2618746.280] {Display Queue} wl_display#1.delete_id(3483) +[2618746.286] {Display Queue} wl_display#1.delete_id(3516) +[2618746.290] {Display Queue} wl_display#1.delete_id(3515) +[2618746.294] {Display Queue} wl_display#1.delete_id(3486) +[2618746.298] {Display Queue} wl_display#1.delete_id(3485) +[2618746.302] {Default Queue} wl_pointer#2889.motion(187310376, 29.39843750, 23.80078125) +[2618746.307] {Default Queue} wl_pointer#2921.motion(187310376, 29.39843750, 23.80078125) +[2618746.312] {Default Queue} wl_pointer#2953.motion(187310376, 29.39843750, 23.80078125) +[2618746.316] {Default Queue} wl_pointer#2985.motion(187310376, 29.39843750, 23.80078125) +[2618746.320] {Default Queue} wl_pointer#3017.motion(187310376, 29.39843750, 23.80078125) +[2618746.325] {Default Queue} wl_pointer#3049.motion(187310376, 29.39843750, 23.80078125) +[2618746.329] {Default Queue} wl_pointer#3081.motion(187310376, 29.39843750, 23.80078125) +[2618746.333] {Default Queue} wl_pointer#3113.motion(187310376, 29.39843750, 23.80078125) +[2618746.338] {Default Queue} wl_pointer#3145.motion(187310376, 29.39843750, 23.80078125) +[2618746.342] {Default Queue} wl_pointer#3177.motion(187310376, 29.39843750, 23.80078125) +[2618746.347] {Default Queue} wl_pointer#3209.motion(187310376, 29.39843750, 23.80078125) +[2618746.351] {Default Queue} wl_pointer#3241.motion(187310376, 29.39843750, 23.80078125) +[2618746.355] {Default Queue} wl_pointer#3273.motion(187310376, 29.39843750, 23.80078125) +[2618746.360] {Default Queue} wl_pointer#3305.motion(187310376, 29.39843750, 23.80078125) +[2618746.364] {Default Queue} wl_pointer#3337.motion(187310376, 29.39843750, 23.80078125) +[2618746.368] {Default Queue} wl_pointer#3369.motion(187310376, 29.39843750, 23.80078125) +[2618746.373] {Default Queue} wl_pointer#3401.motion(187310376, 29.39843750, 23.80078125) +[2618746.377] {Default Queue} wl_pointer#3433.motion(187310376, 29.39843750, 23.80078125) +[2618746.381] {Default Queue} wl_pointer#3465.motion(187310376, 29.39843750, 23.80078125) +[2618746.386] {Default Queue} wl_pointer#3497.motion(187310376, 29.39843750, 23.80078125) +[2618746.390] {Default Queue} wl_pointer#3529.motion(187310376, 29.39843750, 23.80078125) +[2618746.394] {Default Queue} wl_pointer#3561.motion(187310376, 29.39843750, 23.80078125) +[2618746.399] {Default Queue} wl_pointer#3593.motion(187310376, 29.39843750, 23.80078125) +[2618746.403] {Default Queue} wl_pointer#3625.motion(187310376, 29.39843750, 23.80078125) +[2618746.407] {Default Queue} wl_pointer#3657.motion(187310376, 29.39843750, 23.80078125) +[2618746.412] {Default Queue} wl_pointer#3695.motion(187310376, 29.39843750, 23.80078125) +[2618746.420] {Default Queue} -> wl_region#3071.subtract(0, 0, 22, 51) +[2618746.424] {Default Queue} -> wl_region#3071.add(-20, -49, 19, 48) +[2618746.429] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) +[2618746.433] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) +[2618746.438] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) +[2618746.442] {Default Queue} -> wl_surface#3047.commit() +[2618746.446] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) +[2618746.450] {Default Queue} -> wl_surface#3047.commit() +[2618746.456] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) +[2618746.460] {Default Queue} -> wl_surface#3047.commit() +[2618746.465] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) +[2618746.474] {Default Queue} -> wl_surface#3015.commit() +[2618747.536] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) +[2618747.542] {Default Queue} -> wl_surface#3015.commit() +[2618747.551] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) +[2618747.556] {Default Queue} -> wl_region#3039.add(0, 0, 2, 2) +[2618747.560] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618747.564] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618747.571] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) +[2618747.576] {Default Queue} -> wl_region#3039.add(0, 0, 2, 2) +[2618747.580] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618747.584] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618747.589] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) +[2618747.593] {Default Queue} -> wl_region#3039.add(0, 0, 2, 2) +[2618747.597] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618747.601] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618747.607] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) +[2618747.611] {Default Queue} -> wl_region#3039.add(0, 0, 2, 2) +[2618747.615] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618747.619] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618747.625] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) +[2618747.630] {Default Queue} -> wl_region#3039.add(0, 0, 2, 2) +[2618747.634] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618747.638] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618747.642] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) +[2618747.647] {Default Queue} -> wl_surface#3015.commit() +[2618747.651] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) +[2618747.655] {Default Queue} -> wl_surface#3015.commit() +[2618747.660] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) +[2618747.665] {Default Queue} -> wl_surface#3015.commit() +[2618747.671] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) +[2618747.675] {Default Queue} -> wl_surface#3303.commit() +[2618748.736] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) +[2618748.741] {Default Queue} -> wl_surface#3303.commit() +[2618748.749] {Default Queue} -> wl_region#3327.subtract(0, 0, 19, 48) +[2618748.754] {Default Queue} -> wl_region#3327.add(-20, -49, 19, 48) +[2618748.758] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2618748.762] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2618748.883] {Default Queue} -> wl_region#3327.subtract(0, 0, 19, 48) +[2618748.889] {Default Queue} -> wl_region#3327.add(-20, -49, 19, 48) +[2618748.893] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2618748.897] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2618748.904] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618748.908] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618748.974] {Default Queue} -> wl_region#3327.subtract(0, 0, 19, 48) +[2618748.979] {Default Queue} -> wl_region#3327.add(-20, -49, 19, 48) +[2618748.983] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2618748.987] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2618748.992] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618748.997] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618749.002] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) +[2618749.006] {Default Queue} -> wl_surface#3303.commit() +[2618749.010] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) +[2618749.014] {Default Queue} -> wl_surface#3303.commit() +[2618749.021] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) +[2618749.025] {Default Queue} -> wl_surface#3303.commit() +[2618749.031] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) +[2618749.040] {Default Queue} -> wl_surface#3399.commit() +[2618750.103] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) +[2618750.109] {Default Queue} -> wl_surface#3399.commit() +[2618750.116] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618750.120] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618750.125] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618750.129] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618750.137] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618750.142] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618750.147] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618750.151] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618750.155] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618750.160] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618750.164] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618750.168] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618750.172] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618750.177] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618750.181] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618750.185] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618750.189] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618750.194] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618750.198] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618750.202] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618750.208] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618750.212] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618750.216] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618750.220] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618750.224] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618750.229] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618750.233] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618750.237] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618750.241] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618750.246] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618750.250] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618750.254] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618750.258] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618750.262] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618750.266] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618750.271] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618750.281] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618750.285] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618750.289] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618750.293] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618750.298] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618750.302] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618750.306] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618750.310] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618750.314] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618750.319] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618750.323] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618750.327] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618750.331] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) +[2618750.336] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) +[2618750.340] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618750.347] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618750.353] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) +[2618750.357] {Default Queue} -> wl_surface#3399.commit() +[2618750.361] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) +[2618750.366] {Default Queue} -> wl_surface#3399.commit() +[2618750.371] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) +[2618750.375] {Default Queue} -> wl_surface#3399.commit() +[2618750.381] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) +[2618750.385] {Default Queue} -> wl_surface#3431.commit() +[2618751.447] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) +[2618751.453] {Default Queue} -> wl_surface#3431.commit() +[2618751.461] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618751.466] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618751.471] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618751.475] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618751.483] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618751.487] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618751.491] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618751.495] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618751.500] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618751.504] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618751.508] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618751.512] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618751.517] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618751.521] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618751.525] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618751.529] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618751.534] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618751.538] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618751.542] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618751.546] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618751.552] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618751.557] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618751.561] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618751.565] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618751.569] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618751.574] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618751.578] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618751.582] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618751.586] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618751.590] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618751.595] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618751.599] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618751.603] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618751.607] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618751.611] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618751.615] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618751.625] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618751.630] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618751.634] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618751.638] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618751.642] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618751.647] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618751.651] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618751.658] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618751.665] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618751.669] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618751.673] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618751.677] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618751.682] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) +[2618751.686] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) +[2618751.690] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618751.694] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618751.699] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) +[2618751.703] {Default Queue} -> wl_surface#3431.commit() +[2618751.707] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) +[2618751.711] {Default Queue} -> wl_surface#3431.commit() +[2618751.717] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) +[2618751.721] {Default Queue} -> wl_surface#3431.commit() +[2618751.732] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2618751.737] {Default Queue} -> wl_surface#3527.commit() +[2618752.799] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2618752.807] {Default Queue} -> wl_surface#3527.commit() +[2618752.817] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) +[2618752.822] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) +[2618752.826] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618752.830] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618752.839] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) +[2618752.843] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) +[2618752.847] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618752.851] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618752.856] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) +[2618752.864] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) +[2618752.868] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618752.872] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618752.877] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) +[2618752.881] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) +[2618752.885] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618752.889] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618752.894] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) +[2618752.898] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) +[2618752.902] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618752.906] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618752.940] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) +[2618752.945] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) +[2618752.949] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618752.953] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618752.967] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618752.972] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618753.034] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) +[2618753.039] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) +[2618753.044] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618753.048] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618753.053] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618753.058] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618753.064] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2618753.069] {Default Queue} -> wl_surface#3527.commit() +[2618753.074] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2618753.082] {Default Queue} -> wl_surface#3527.commit() +[2618753.091] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2618753.096] {Default Queue} -> wl_surface#3527.commit() +[2618753.131] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2618753.136] {Default Queue} -> wl_surface#3495.commit() +[2618754.204] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2618754.212] {Default Queue} -> wl_surface#3495.commit() +[2618754.222] {Default Queue} -> wl_region#3519.subtract(0, 0, 19, 48) +[2618754.227] {Default Queue} -> wl_region#3519.add(-20, -49, 19, 48) +[2618754.231] {Default Queue} -> wl_surface#3495.set_opaque_region(wl_region#3520) +[2618754.235] {Default Queue} -> wl_surface#3495.set_input_region(wl_region#3519) +[2618754.245] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2618754.251] {Default Queue} -> wl_surface#3495.commit() +[2618754.259] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2618754.263] {Default Queue} -> wl_surface#3495.commit() +[2618754.274] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2618754.278] {Default Queue} -> wl_surface#3495.commit() +[2618754.284] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) +[2618754.288] {Default Queue} -> wl_surface#3463.commit() +[2618755.350] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) +[2618755.355] {Default Queue} -> wl_surface#3463.commit() +[2618755.361] {Default Queue} -> wl_region#3487.subtract(0, 0, 19, 48) +[2618755.365] {Default Queue} -> wl_region#3487.add(-20, -49, 19, 48) +[2618755.369] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) +[2618755.373] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) +[2618755.378] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) +[2618755.382] {Default Queue} -> wl_surface#3463.commit() +[2618755.386] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) +[2618755.390] {Default Queue} -> wl_surface#3463.commit() +[2618755.396] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) +[2618755.400] {Default Queue} -> wl_surface#3463.commit() +[2618755.406] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) +[2618755.410] {Default Queue} -> wl_surface#3367.commit() +[2618756.356] {Display Queue} wl_display#1.delete_id(3454) +[2618756.363] {Display Queue} wl_display#1.delete_id(3451) +[2618756.368] {Display Queue} wl_display#1.delete_id(3452) +[2618756.372] {Display Queue} wl_display#1.delete_id(3517) +[2618756.376] {Display Queue} wl_display#1.delete_id(3518) +[2618756.380] {Display Queue} wl_display#1.delete_id(3484) +[2618756.384] {Display Queue} wl_display#1.delete_id(3293) +[2618756.388] {Display Queue} wl_display#1.delete_id(3294) +[2618756.392] {Display Queue} wl_display#1.delete_id(3291) +[2618756.396] {Display Queue} wl_display#1.delete_id(3292) +[2618756.400] {Display Queue} wl_display#1.delete_id(3682) +[2618756.403] {Display Queue} wl_display#1.delete_id(3681) +[2618756.407] {Display Queue} wl_display#1.delete_id(3671) +[2618756.411] {Display Queue} wl_display#1.delete_id(3679) +[2618756.415] {Display Queue} wl_display#1.delete_id(3684) +[2618756.419] {Default Queue} wl_pointer#24.motion(187310386, 29.39843750, 23.39843750) +[2618756.424] {Default Queue} wl_pointer#81.motion(187310386, 29.39843750, 23.39843750) +[2618756.430] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618756.435] {Default Queue} wl_pointer#105.motion(187310386, 29.39843750, 23.39843750) +[2618756.439] {Default Queue} wl_pointer#137.motion(187310386, 29.39843750, 23.39843750) +[2618756.444] {Default Queue} wl_pointer#169.motion(187310386, 29.39843750, 23.39843750) +[2618756.448] {Default Queue} wl_pointer#201.motion(187310386, 29.39843750, 23.39843750) +[2618756.452] {Default Queue} wl_pointer#233.motion(187310386, 29.39843750, 23.39843750) +[2618756.456] {Default Queue} wl_pointer#265.motion(187310386, 29.39843750, 23.39843750) +[2618756.461] {Default Queue} wl_pointer#297.motion(187310386, 29.39843750, 23.39843750) +[2618756.469] {Default Queue} wl_pointer#329.motion(187310386, 29.39843750, 23.39843750) +[2618756.476] {Default Queue} wl_pointer#361.motion(187310386, 29.39843750, 23.39843750) +[2618756.480] {Default Queue} wl_pointer#393.motion(187310386, 29.39843750, 23.39843750) +[2618756.484] {Default Queue} wl_pointer#425.motion(187310386, 29.39843750, 23.39843750) +[2618756.489] {Default Queue} wl_pointer#457.motion(187310386, 29.39843750, 23.39843750) +[2618756.493] {Default Queue} wl_pointer#489.motion(187310386, 29.39843750, 23.39843750) +[2618756.497] {Default Queue} wl_pointer#521.motion(187310386, 29.39843750, 23.39843750) +[2618756.501] {Default Queue} wl_pointer#553.motion(187310386, 29.39843750, 23.39843750) +[2618756.506] {Default Queue} wl_pointer#585.motion(187310386, 29.39843750, 23.39843750) +[2618756.510] {Default Queue} wl_pointer#617.motion(187310386, 29.39843750, 23.39843750) +[2618756.514] {Default Queue} wl_pointer#649.motion(187310386, 29.39843750, 23.39843750) +[2618756.519] {Default Queue} wl_pointer#681.motion(187310386, 29.39843750, 23.39843750) +[2618756.523] {Default Queue} wl_pointer#713.motion(187310386, 29.39843750, 23.39843750) +[2618756.527] {Default Queue} wl_pointer#745.motion(187310386, 29.39843750, 23.39843750) +[2618756.532] {Default Queue} wl_pointer#777.motion(187310386, 29.39843750, 23.39843750) +[2618756.536] {Default Queue} wl_pointer#809.motion(187310386, 29.39843750, 23.39843750) +[2618756.540] {Default Queue} wl_pointer#841.motion(187310386, 29.39843750, 23.39843750) +[2618756.544] {Default Queue} wl_pointer#873.motion(187310386, 29.39843750, 23.39843750) +[2618756.549] {Default Queue} wl_pointer#905.motion(187310386, 29.39843750, 23.39843750) +[2618756.553] {Default Queue} wl_pointer#937.motion(187310386, 29.39843750, 23.39843750) +[2618756.557] {Default Queue} wl_pointer#969.motion(187310386, 29.39843750, 23.39843750) +[2618756.561] {Default Queue} wl_pointer#1001.motion(187310386, 29.39843750, 23.39843750) +[2618756.566] {Default Queue} wl_pointer#1033.motion(187310386, 29.39843750, 23.39843750) +[2618756.570] {Default Queue} wl_pointer#1065.motion(187310386, 29.39843750, 23.39843750) +[2618756.574] {Default Queue} wl_pointer#1097.motion(187310386, 29.39843750, 23.39843750) +[2618756.578] {Default Queue} wl_pointer#1129.motion(187310386, 29.39843750, 23.39843750) +[2618756.583] {Default Queue} wl_pointer#1161.motion(187310386, 29.39843750, 23.39843750) +[2618756.587] {Default Queue} wl_pointer#1193.motion(187310386, 29.39843750, 23.39843750) +[2618756.591] {Default Queue} wl_pointer#1225.motion(187310386, 29.39843750, 23.39843750) +[2618756.595] {Default Queue} wl_pointer#1257.motion(187310386, 29.39843750, 23.39843750) +[2618756.600] {Default Queue} wl_pointer#1289.motion(187310386, 29.39843750, 23.39843750) +[2618756.604] {Default Queue} wl_pointer#1321.motion(187310386, 29.39843750, 23.39843750) +[2618756.608] {Default Queue} wl_pointer#1353.motion(187310386, 29.39843750, 23.39843750) +[2618756.612] {Default Queue} wl_pointer#1385.motion(187310386, 29.39843750, 23.39843750) +[2618756.617] {Default Queue} wl_pointer#1417.motion(187310386, 29.39843750, 23.39843750) +[2618756.621] {Default Queue} wl_pointer#1449.motion(187310386, 29.39843750, 23.39843750) +[2618756.625] {Default Queue} wl_pointer#1481.motion(187310386, 29.39843750, 23.39843750) +[2618756.629] {Default Queue} wl_pointer#1513.motion(187310386, 29.39843750, 23.39843750) +[2618756.634] {Default Queue} wl_pointer#1545.motion(187310386, 29.39843750, 23.39843750) +[2618756.638] {Default Queue} wl_pointer#1577.motion(187310386, 29.39843750, 23.39843750) +[2618756.642] {Default Queue} wl_pointer#1609.motion(187310386, 29.39843750, 23.39843750) +[2618756.647] {Default Queue} wl_pointer#1641.motion(187310386, 29.39843750, 23.39843750) +[2618756.651] {Default Queue} wl_pointer#1673.motion(187310386, 29.39843750, 23.39843750) +[2618756.655] {Default Queue} wl_pointer#1705.motion(187310386, 29.39843750, 23.39843750) +[2618756.659] {Default Queue} wl_pointer#1737.motion(187310386, 29.39843750, 23.39843750) +[2618756.664] {Default Queue} wl_pointer#1762.motion(187310386, 29.39843750, 23.39843750) +[2618756.673] {Default Queue} wl_pointer#1801.motion(187310386, 29.39843750, 23.39843750) +[2618756.678] {Default Queue} wl_pointer#1833.motion(187310386, 29.39843750, 23.39843750) +[2618756.683] {Default Queue} wl_pointer#1865.motion(187310386, 29.39843750, 23.39843750) +[2618756.687] {Default Queue} wl_pointer#1897.motion(187310386, 29.39843750, 23.39843750) +[2618756.691] {Default Queue} wl_pointer#1929.motion(187310386, 29.39843750, 23.39843750) +[2618756.696] {Default Queue} wl_pointer#1961.motion(187310386, 29.39843750, 23.39843750) +[2618756.700] {Default Queue} wl_pointer#1993.motion(187310386, 29.39843750, 23.39843750) +[2618756.704] {Default Queue} wl_pointer#2025.motion(187310386, 29.39843750, 23.39843750) +[2618756.708] {Default Queue} wl_pointer#2057.motion(187310386, 29.39843750, 23.39843750) +[2618756.712] {Default Queue} wl_pointer#2089.motion(187310386, 29.39843750, 23.39843750) +[2618756.717] {Default Queue} wl_pointer#2121.motion(187310386, 29.39843750, 23.39843750) +[2618756.721] {Default Queue} wl_pointer#2153.motion(187310386, 29.39843750, 23.39843750) +[2618756.725] {Default Queue} wl_pointer#2185.motion(187310386, 29.39843750, 23.39843750) +[2618756.730] {Default Queue} wl_pointer#2217.motion(187310386, 29.39843750, 23.39843750) +[2618756.734] {Default Queue} wl_pointer#2249.motion(187310386, 29.39843750, 23.39843750) +[2618756.738] {Default Queue} wl_pointer#2281.motion(187310386, 29.39843750, 23.39843750) +[2618756.742] {Default Queue} wl_pointer#2313.motion(187310386, 29.39843750, 23.39843750) +[2618756.747] {Default Queue} wl_pointer#2345.motion(187310386, 29.39843750, 23.39843750) +[2618756.751] {Default Queue} wl_pointer#2377.motion(187310386, 29.39843750, 23.39843750) +[2618756.756] {Default Queue} wl_pointer#2409.motion(187310386, 29.39843750, 23.39843750) +[2618756.760] {Default Queue} wl_pointer#2441.motion(187310386, 29.39843750, 23.39843750) +[2618756.764] {Default Queue} wl_pointer#2473.motion(187310386, 29.39843750, 23.39843750) +[2618756.769] {Default Queue} wl_pointer#2498.motion(187310386, 29.39843750, 23.39843750) +[2618756.781] {Default Queue} -> wl_buffer#91.destroy() +[2618756.786] {Default Queue} -> wl_buffer#94.destroy() +[2618756.790] {Default Queue} -> wl_shm_pool#3683.destroy() +[2618756.794] {Default Queue} -> wl_shm_pool#92.destroy() +[2618756.799] {Default Queue} -> wl_surface#93.destroy() +[2618756.843] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3684, fd 575, 640) +[2618756.849] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 578, 640) +[2618756.853] {Default Queue} -> wl_shm_pool#3684.create_buffer(new id wl_buffer#3671, 0, 10, 16, 40, 0) +[2618756.858] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) +[2618756.867] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3682) +[2618756.878] {Default Queue} -> wl_surface#3682.attach(wl_buffer#3671, 0, 0) +[2618756.882] {Default Queue} -> wl_surface#3682.commit() +[2618756.888] {Default Queue} -> wl_surface#3682.attach(wl_buffer#3671, 0, 0) +[2618756.892] {Default Queue} -> wl_surface#3682.commit() +[2618756.896] {Default Queue} wl_pointer#2537.motion(187310386, 29.39843750, 23.39843750) +[2618756.901] {Default Queue} wl_pointer#2569.motion(187310386, 29.39843750, 23.39843750) +[2618756.905] {Default Queue} wl_pointer#2601.motion(187310386, 29.39843750, 23.39843750) +[2618756.910] {Default Queue} wl_pointer#2633.motion(187310386, 29.39843750, 23.39843750) +[2618756.914] {Default Queue} wl_pointer#2665.motion(187310386, 29.39843750, 23.39843750) +[2618756.918] {Default Queue} wl_pointer#2697.motion(187310386, 29.39843750, 23.39843750) +[2618756.922] {Default Queue} wl_pointer#2729.motion(187310386, 29.39843750, 23.39843750) +[2618756.927] {Default Queue} wl_pointer#2761.motion(187310386, 29.39843750, 23.39843750) +[2618756.931] {Default Queue} wl_pointer#2793.motion(187310386, 29.39843750, 23.39843750) +[2618756.935] {Default Queue} wl_pointer#2825.motion(187310386, 29.39843750, 23.39843750) +[2618756.944] {Default Queue} wl_pointer#2857.motion(187310386, 29.39843750, 23.39843750) +[2618756.951] {Default Queue} wl_pointer#2889.motion(187310386, 29.39843750, 23.39843750) +[2618756.955] {Default Queue} wl_pointer#2921.motion(187310386, 29.39843750, 23.39843750) +[2618756.959] {Default Queue} wl_pointer#2953.motion(187310386, 29.39843750, 23.39843750) +[2618756.963] {Default Queue} wl_pointer#2985.motion(187310386, 29.39843750, 23.39843750) +[2618756.968] {Default Queue} wl_pointer#3017.motion(187310386, 29.39843750, 23.39843750) +[2618756.972] {Default Queue} wl_pointer#3049.motion(187310386, 29.39843750, 23.39843750) +[2618756.976] {Default Queue} wl_pointer#3081.motion(187310386, 29.39843750, 23.39843750) +[2618756.981] {Default Queue} wl_pointer#3113.motion(187310386, 29.39843750, 23.39843750) +[2618756.985] {Default Queue} wl_pointer#3145.motion(187310386, 29.39843750, 23.39843750) +[2618756.989] {Default Queue} wl_pointer#3177.motion(187310386, 29.39843750, 23.39843750) +[2618756.994] {Default Queue} wl_pointer#3209.motion(187310386, 29.39843750, 23.39843750) +[2618756.998] {Default Queue} wl_pointer#3241.motion(187310386, 29.39843750, 23.39843750) +[2618757.002] {Default Queue} wl_pointer#3273.motion(187310386, 29.39843750, 23.39843750) +[2618757.007] {Default Queue} wl_pointer#3305.motion(187310386, 29.39843750, 23.39843750) +[2618757.011] {Default Queue} wl_pointer#3337.motion(187310386, 29.39843750, 23.39843750) +[2618757.015] {Default Queue} wl_pointer#3369.motion(187310386, 29.39843750, 23.39843750) +[2618757.020] {Default Queue} wl_pointer#3401.motion(187310386, 29.39843750, 23.39843750) +[2618757.024] {Default Queue} wl_pointer#3433.motion(187310386, 29.39843750, 23.39843750) +[2618757.028] {Default Queue} wl_pointer#3465.motion(187310386, 29.39843750, 23.39843750) +[2618757.033] {Default Queue} wl_pointer#3497.motion(187310386, 29.39843750, 23.39843750) +[2618757.037] {Default Queue} wl_pointer#3529.motion(187310386, 29.39843750, 23.39843750) +[2618757.042] {Default Queue} wl_pointer#3561.motion(187310386, 29.39843750, 23.39843750) +[2618757.046] {Default Queue} wl_pointer#3593.motion(187310386, 29.39843750, 23.39843750) +[2618757.050] {Default Queue} wl_pointer#3625.motion(187310386, 29.39843750, 23.39843750) +[2618757.054] {Default Queue} wl_pointer#3657.motion(187310386, 29.39843750, 23.39843750) +[2618757.059] {Default Queue} wl_pointer#3695.motion(187310386, 29.39843750, 23.39843750) +[2618757.067] {Default Queue} -> wl_region#3391.subtract(0, 0, 19, 48) +[2618757.073] {Default Queue} -> wl_region#3391.add(-20, -49, 19, 48) +[2618757.077] {Default Queue} -> wl_surface#3367.set_opaque_region(wl_region#3392) +[2618757.081] {Default Queue} -> wl_surface#3367.set_input_region(wl_region#3391) +[2618757.087] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) +[2618757.091] {Default Queue} -> wl_surface#3367.commit() +[2618757.095] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) +[2618757.099] {Default Queue} -> wl_surface#3367.commit() +[2618757.124] {Default Queue} wl_pointer#24.motion(187310391, 29.00000000, 23.39843750) +[2618757.129] {Default Queue} wl_pointer#81.motion(187310391, 29.00000000, 23.39843750) +[2618757.134] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618757.139] {Default Queue} wl_pointer#105.motion(187310391, 29.00000000, 23.39843750) +[2618757.143] {Default Queue} wl_pointer#137.motion(187310391, 29.00000000, 23.39843750) +[2618757.148] {Default Queue} wl_pointer#169.motion(187310391, 29.00000000, 23.39843750) +[2618757.152] {Default Queue} wl_pointer#201.motion(187310391, 29.00000000, 23.39843750) +[2618757.156] {Default Queue} wl_pointer#233.motion(187310391, 29.00000000, 23.39843750) +[2618757.160] {Default Queue} wl_pointer#265.motion(187310391, 29.00000000, 23.39843750) +[2618757.165] {Default Queue} wl_pointer#297.motion(187310391, 29.00000000, 23.39843750) +[2618757.169] {Default Queue} wl_pointer#329.motion(187310391, 29.00000000, 23.39843750) +[2618757.173] {Default Queue} wl_pointer#361.motion(187310391, 29.00000000, 23.39843750) +[2618757.177] {Default Queue} wl_pointer#393.motion(187310391, 29.00000000, 23.39843750) +[2618757.184] {Default Queue} wl_pointer#425.motion(187310391, 29.00000000, 23.39843750) +[2618757.190] {Default Queue} wl_pointer#457.motion(187310391, 29.00000000, 23.39843750) +[2618757.194] {Default Queue} wl_pointer#489.motion(187310391, 29.00000000, 23.39843750) +[2618757.199] {Default Queue} wl_pointer#521.motion(187310391, 29.00000000, 23.39843750) +[2618757.203] {Default Queue} wl_pointer#553.motion(187310391, 29.00000000, 23.39843750) +[2618757.207] {Default Queue} wl_pointer#585.motion(187310391, 29.00000000, 23.39843750) +[2618757.211] {Default Queue} wl_pointer#617.motion(187310391, 29.00000000, 23.39843750) +[2618757.216] {Default Queue} wl_pointer#649.motion(187310391, 29.00000000, 23.39843750) +[2618757.220] {Default Queue} wl_pointer#681.motion(187310391, 29.00000000, 23.39843750) +[2618757.224] {Default Queue} wl_pointer#713.motion(187310391, 29.00000000, 23.39843750) +[2618757.228] {Default Queue} wl_pointer#745.motion(187310391, 29.00000000, 23.39843750) +[2618757.233] {Default Queue} wl_pointer#777.motion(187310391, 29.00000000, 23.39843750) +[2618757.237] {Default Queue} wl_pointer#809.motion(187310391, 29.00000000, 23.39843750) +[2618757.241] {Default Queue} wl_pointer#841.motion(187310391, 29.00000000, 23.39843750) +[2618757.245] {Default Queue} wl_pointer#873.motion(187310391, 29.00000000, 23.39843750) +[2618757.250] {Default Queue} wl_pointer#905.motion(187310391, 29.00000000, 23.39843750) +[2618757.254] {Default Queue} wl_pointer#937.motion(187310391, 29.00000000, 23.39843750) +[2618757.258] {Default Queue} wl_pointer#969.motion(187310391, 29.00000000, 23.39843750) +[2618757.262] {Default Queue} wl_pointer#1001.motion(187310391, 29.00000000, 23.39843750) +[2618757.267] {Default Queue} wl_pointer#1033.motion(187310391, 29.00000000, 23.39843750) +[2618757.271] {Default Queue} wl_pointer#1065.motion(187310391, 29.00000000, 23.39843750) +[2618757.275] {Default Queue} wl_pointer#1097.motion(187310391, 29.00000000, 23.39843750) +[2618757.280] {Default Queue} wl_pointer#1129.motion(187310391, 29.00000000, 23.39843750) +[2618757.284] {Default Queue} wl_pointer#1161.motion(187310391, 29.00000000, 23.39843750) +[2618757.288] {Default Queue} wl_pointer#1193.motion(187310391, 29.00000000, 23.39843750) +[2618757.292] {Default Queue} wl_pointer#1225.motion(187310391, 29.00000000, 23.39843750) +[2618757.297] {Default Queue} wl_pointer#1257.motion(187310391, 29.00000000, 23.39843750) +[2618757.301] {Default Queue} wl_pointer#1289.motion(187310391, 29.00000000, 23.39843750) +[2618757.305] {Default Queue} wl_pointer#1321.motion(187310391, 29.00000000, 23.39843750) +[2618757.310] {Default Queue} wl_pointer#1353.motion(187310391, 29.00000000, 23.39843750) +[2618757.314] {Default Queue} wl_pointer#1385.motion(187310391, 29.00000000, 23.39843750) +[2618757.318] {Default Queue} wl_pointer#1417.motion(187310391, 29.00000000, 23.39843750) +[2618757.323] {Default Queue} wl_pointer#1449.motion(187310391, 29.00000000, 23.39843750) +[2618757.327] {Default Queue} wl_pointer#1481.motion(187310391, 29.00000000, 23.39843750) +[2618757.331] {Default Queue} wl_pointer#1513.motion(187310391, 29.00000000, 23.39843750) +[2618757.335] {Default Queue} wl_pointer#1545.motion(187310391, 29.00000000, 23.39843750) +[2618757.340] {Default Queue} wl_pointer#1577.motion(187310391, 29.00000000, 23.39843750) +[2618757.344] {Default Queue} wl_pointer#1609.motion(187310391, 29.00000000, 23.39843750) +[2618757.348] {Default Queue} wl_pointer#1641.motion(187310391, 29.00000000, 23.39843750) +[2618757.352] {Default Queue} wl_pointer#1673.motion(187310391, 29.00000000, 23.39843750) +[2618757.357] {Default Queue} wl_pointer#1705.motion(187310391, 29.00000000, 23.39843750) +[2618757.361] {Default Queue} wl_pointer#1737.motion(187310391, 29.00000000, 23.39843750) +[2618757.365] {Default Queue} wl_pointer#1762.motion(187310391, 29.00000000, 23.39843750) +[2618757.369] {Default Queue} wl_pointer#1801.motion(187310391, 29.00000000, 23.39843750) +[2618757.374] {Default Queue} wl_pointer#1833.motion(187310391, 29.00000000, 23.39843750) +[2618757.381] {Default Queue} wl_pointer#1865.motion(187310391, 29.00000000, 23.39843750) +[2618757.386] {Default Queue} wl_pointer#1897.motion(187310391, 29.00000000, 23.39843750) +[2618757.391] {Default Queue} wl_pointer#1929.motion(187310391, 29.00000000, 23.39843750) +[2618757.395] {Default Queue} wl_pointer#1961.motion(187310391, 29.00000000, 23.39843750) +[2618757.399] {Default Queue} wl_pointer#1993.motion(187310391, 29.00000000, 23.39843750) +[2618757.404] {Default Queue} wl_pointer#2025.motion(187310391, 29.00000000, 23.39843750) +[2618757.408] {Default Queue} wl_pointer#2057.motion(187310391, 29.00000000, 23.39843750) +[2618757.412] {Default Queue} wl_pointer#2089.motion(187310391, 29.00000000, 23.39843750) +[2618757.416] {Default Queue} wl_pointer#2121.motion(187310391, 29.00000000, 23.39843750) +[2618757.421] {Default Queue} wl_pointer#2153.motion(187310391, 29.00000000, 23.39843750) +[2618757.425] {Default Queue} wl_pointer#2185.motion(187310391, 29.00000000, 23.39843750) +[2618757.429] {Default Queue} wl_pointer#2217.motion(187310391, 29.00000000, 23.39843750) +[2618757.433] {Default Queue} wl_pointer#2249.motion(187310391, 29.00000000, 23.39843750) +[2618757.438] {Default Queue} wl_pointer#2281.motion(187310391, 29.00000000, 23.39843750) +[2618757.442] {Default Queue} wl_pointer#2313.motion(187310391, 29.00000000, 23.39843750) +[2618757.446] {Default Queue} wl_pointer#2345.motion(187310391, 29.00000000, 23.39843750) +[2618757.455] {Default Queue} wl_pointer#2377.motion(187310391, 29.00000000, 23.39843750) +[2618757.459] {Default Queue} wl_pointer#2409.motion(187310391, 29.00000000, 23.39843750) +[2618757.464] {Default Queue} wl_pointer#2441.motion(187310391, 29.00000000, 23.39843750) +[2618757.468] {Default Queue} wl_pointer#2473.motion(187310391, 29.00000000, 23.39843750) +[2618757.472] {Default Queue} wl_pointer#2498.motion(187310391, 29.00000000, 23.39843750) +[2618757.483] {Default Queue} -> wl_buffer#3671.destroy() +[2618757.487] {Default Queue} -> wl_buffer#3681.destroy() +[2618757.491] {Default Queue} -> wl_shm_pool#3684.destroy() +[2618757.495] {Default Queue} -> wl_shm_pool#3679.destroy() +[2618757.500] {Default Queue} -> wl_surface#3682.destroy() +[2618757.535] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3292, fd 581, 640) +[2618757.541] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 582, 640) +[2618757.545] {Default Queue} -> wl_shm_pool#3292.create_buffer(new id wl_buffer#3294, 0, 10, 16, 40, 0) +[2618757.550] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) +[2618757.557] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3484) +[2618757.561] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) +[2618757.566] {Default Queue} -> wl_surface#3484.commit() +[2618757.571] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) +[2618757.575] {Default Queue} -> wl_surface#3484.commit() +[2618757.579] {Default Queue} wl_pointer#2537.motion(187310391, 29.00000000, 23.39843750) +[2618757.584] {Default Queue} wl_pointer#2569.motion(187310391, 29.00000000, 23.39843750) +[2618757.588] {Default Queue} wl_pointer#2601.motion(187310391, 29.00000000, 23.39843750) +[2618757.593] {Default Queue} wl_pointer#2633.motion(187310391, 29.00000000, 23.39843750) +[2618757.597] {Default Queue} wl_pointer#2665.motion(187310391, 29.00000000, 23.39843750) +[2618757.601] {Default Queue} wl_pointer#2697.motion(187310391, 29.00000000, 23.39843750) +[2618757.605] {Default Queue} wl_pointer#2729.motion(187310391, 29.00000000, 23.39843750) +[2618757.610] {Default Queue} wl_pointer#2761.motion(187310391, 29.00000000, 23.39843750) +[2618757.614] {Default Queue} wl_pointer#2793.motion(187310391, 29.00000000, 23.39843750) +[2618757.618] {Default Queue} wl_pointer#2825.motion(187310391, 29.00000000, 23.39843750) +[2618757.623] {Default Queue} wl_pointer#2857.motion(187310391, 29.00000000, 23.39843750) +[2618757.627] {Default Queue} wl_pointer#2889.motion(187310391, 29.00000000, 23.39843750) +[2618757.631] {Default Queue} wl_pointer#2921.motion(187310391, 29.00000000, 23.39843750) +[2618757.639] {Default Queue} wl_pointer#2953.motion(187310391, 29.00000000, 23.39843750) +[2618757.645] {Default Queue} wl_pointer#2985.motion(187310391, 29.00000000, 23.39843750) +[2618757.649] {Default Queue} wl_pointer#3017.motion(187310391, 29.00000000, 23.39843750) +[2618757.654] {Default Queue} wl_pointer#3049.motion(187310391, 29.00000000, 23.39843750) +[2618757.658] {Default Queue} wl_pointer#3081.motion(187310391, 29.00000000, 23.39843750) +[2618757.662] {Default Queue} wl_pointer#3113.motion(187310391, 29.00000000, 23.39843750) +[2618757.666] {Default Queue} wl_pointer#3145.motion(187310391, 29.00000000, 23.39843750) +[2618757.671] {Default Queue} wl_pointer#3177.motion(187310391, 29.00000000, 23.39843750) +[2618757.675] {Default Queue} wl_pointer#3209.motion(187310391, 29.00000000, 23.39843750) +[2618757.679] {Default Queue} wl_pointer#3241.motion(187310391, 29.00000000, 23.39843750) +[2618757.684] {Default Queue} wl_pointer#3273.motion(187310391, 29.00000000, 23.39843750) +[2618757.688] {Default Queue} wl_pointer#3305.motion(187310391, 29.00000000, 23.39843750) +[2618757.692] {Default Queue} wl_pointer#3337.motion(187310391, 29.00000000, 23.39843750) +[2618757.697] {Default Queue} wl_pointer#3369.motion(187310391, 29.00000000, 23.39843750) +[2618757.701] {Default Queue} wl_pointer#3401.motion(187310391, 29.00000000, 23.39843750) +[2618757.705] {Default Queue} wl_pointer#3433.motion(187310391, 29.00000000, 23.39843750) +[2618757.710] {Default Queue} wl_pointer#3465.motion(187310391, 29.00000000, 23.39843750) +[2618757.714] {Default Queue} wl_pointer#3497.motion(187310391, 29.00000000, 23.39843750) +[2618757.718] {Default Queue} wl_pointer#3529.motion(187310391, 29.00000000, 23.39843750) +[2618757.723] {Default Queue} wl_pointer#3561.motion(187310391, 29.00000000, 23.39843750) +[2618757.727] {Default Queue} wl_pointer#3593.motion(187310391, 29.00000000, 23.39843750) +[2618757.731] {Default Queue} wl_pointer#3625.motion(187310391, 29.00000000, 23.39843750) +[2618757.735] {Default Queue} wl_pointer#3657.motion(187310391, 29.00000000, 23.39843750) +[2618757.740] {Default Queue} wl_pointer#3695.motion(187310391, 29.00000000, 23.39843750) +[2618757.744] {Default Queue} wl_pointer#24.motion(187310391, 29.00000000, 23.00000000) +[2618757.748] {Default Queue} wl_pointer#81.motion(187310391, 29.00000000, 23.00000000) +[2618757.753] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618757.758] {Default Queue} wl_pointer#105.motion(187310391, 29.00000000, 23.00000000) +[2618757.762] {Default Queue} wl_pointer#137.motion(187310391, 29.00000000, 23.00000000) +[2618757.766] {Default Queue} wl_pointer#169.motion(187310391, 29.00000000, 23.00000000) +[2618757.770] {Default Queue} wl_pointer#201.motion(187310391, 29.00000000, 23.00000000) +[2618757.775] {Default Queue} wl_pointer#233.motion(187310391, 29.00000000, 23.00000000) +[2618757.779] {Default Queue} wl_pointer#265.motion(187310391, 29.00000000, 23.00000000) +[2618757.783] {Default Queue} wl_pointer#297.motion(187310391, 29.00000000, 23.00000000) +[2618757.787] {Default Queue} wl_pointer#329.motion(187310391, 29.00000000, 23.00000000) +[2618757.795] {Default Queue} wl_pointer#361.motion(187310391, 29.00000000, 23.00000000) +[2618757.799] {Default Queue} wl_pointer#393.motion(187310391, 29.00000000, 23.00000000) +[2618757.804] {Default Queue} wl_pointer#425.motion(187310391, 29.00000000, 23.00000000) +[2618757.808] {Default Queue} wl_pointer#457.motion(187310391, 29.00000000, 23.00000000) +[2618757.812] {Default Queue} wl_pointer#489.motion(187310391, 29.00000000, 23.00000000) +[2618757.819] {Default Queue} wl_pointer#521.motion(187310391, 29.00000000, 23.00000000) +[2618757.824] {Default Queue} wl_pointer#553.motion(187310391, 29.00000000, 23.00000000) +[2618757.828] {Default Queue} wl_pointer#585.motion(187310391, 29.00000000, 23.00000000) +[2618757.832] {Default Queue} wl_pointer#617.motion(187310391, 29.00000000, 23.00000000) +[2618757.836] {Default Queue} wl_pointer#649.motion(187310391, 29.00000000, 23.00000000) +[2618757.841] {Default Queue} wl_pointer#681.motion(187310391, 29.00000000, 23.00000000) +[2618757.848] {Default Queue} wl_pointer#713.motion(187310391, 29.00000000, 23.00000000) +[2618757.854] {Default Queue} wl_pointer#745.motion(187310391, 29.00000000, 23.00000000) +[2618757.858] {Default Queue} wl_pointer#777.motion(187310391, 29.00000000, 23.00000000) +[2618757.870] {Default Queue} wl_pointer#809.motion(187310391, 29.00000000, 23.00000000) +[2618757.875] {Default Queue} wl_pointer#841.motion(187310391, 29.00000000, 23.00000000) +[2618757.879] {Default Queue} wl_pointer#873.motion(187310391, 29.00000000, 23.00000000) +[2618757.883] {Default Queue} wl_pointer#905.motion(187310391, 29.00000000, 23.00000000) +[2618757.888] {Default Queue} wl_pointer#937.motion(187310391, 29.00000000, 23.00000000) +[2618757.892] {Default Queue} wl_pointer#969.motion(187310391, 29.00000000, 23.00000000) +[2618757.896] {Default Queue} wl_pointer#1001.motion(187310391, 29.00000000, 23.00000000) +[2618757.900] {Default Queue} wl_pointer#1033.motion(187310391, 29.00000000, 23.00000000) +[2618757.905] {Default Queue} wl_pointer#1065.motion(187310391, 29.00000000, 23.00000000) +[2618757.909] {Default Queue} wl_pointer#1097.motion(187310391, 29.00000000, 23.00000000) +[2618757.913] {Default Queue} wl_pointer#1129.motion(187310391, 29.00000000, 23.00000000) +[2618757.918] {Default Queue} wl_pointer#1161.motion(187310391, 29.00000000, 23.00000000) +[2618757.922] {Default Queue} wl_pointer#1193.motion(187310391, 29.00000000, 23.00000000) +[2618757.926] {Default Queue} wl_pointer#1225.motion(187310391, 29.00000000, 23.00000000) +[2618757.930] {Default Queue} wl_pointer#1257.motion(187310391, 29.00000000, 23.00000000) +[2618757.935] {Default Queue} wl_pointer#1289.motion(187310391, 29.00000000, 23.00000000) +[2618757.939] {Default Queue} wl_pointer#1321.motion(187310391, 29.00000000, 23.00000000) +[2618757.943] {Default Queue} wl_pointer#1353.motion(187310391, 29.00000000, 23.00000000) +[2618757.948] {Default Queue} wl_pointer#1385.motion(187310391, 29.00000000, 23.00000000) +[2618757.952] {Default Queue} wl_pointer#1417.motion(187310391, 29.00000000, 23.00000000) +[2618757.956] {Default Queue} wl_pointer#1449.motion(187310391, 29.00000000, 23.00000000) +[2618757.960] {Default Queue} wl_pointer#1481.motion(187310391, 29.00000000, 23.00000000) +[2618757.965] {Default Queue} wl_pointer#1513.motion(187310391, 29.00000000, 23.00000000) +[2618757.969] {Default Queue} wl_pointer#1545.motion(187310391, 29.00000000, 23.00000000) +[2618757.973] {Default Queue} wl_pointer#1577.motion(187310391, 29.00000000, 23.00000000) +[2618757.978] {Default Queue} wl_pointer#1609.motion(187310391, 29.00000000, 23.00000000) +[2618757.982] {Default Queue} wl_pointer#1641.motion(187310391, 29.00000000, 23.00000000) +[2618757.986] {Default Queue} wl_pointer#1673.motion(187310391, 29.00000000, 23.00000000) +[2618757.990] {Default Queue} wl_pointer#1705.motion(187310391, 29.00000000, 23.00000000) +[2618757.995] {Default Queue} wl_pointer#1737.motion(187310391, 29.00000000, 23.00000000) +[2618757.999] {Default Queue} wl_pointer#1762.motion(187310391, 29.00000000, 23.00000000) +[2618758.003] {Default Queue} wl_pointer#1801.motion(187310391, 29.00000000, 23.00000000) +[2618758.007] {Default Queue} wl_pointer#1833.motion(187310391, 29.00000000, 23.00000000) +[2618758.012] {Default Queue} wl_pointer#1865.motion(187310391, 29.00000000, 23.00000000) +[2618758.016] {Default Queue} wl_pointer#1897.motion(187310391, 29.00000000, 23.00000000) +[2618758.020] {Default Queue} wl_pointer#1929.motion(187310391, 29.00000000, 23.00000000) +[2618758.024] {Default Queue} wl_pointer#1961.motion(187310391, 29.00000000, 23.00000000) +[2618758.029] {Default Queue} wl_pointer#1993.motion(187310391, 29.00000000, 23.00000000) +[2618758.033] {Default Queue} wl_pointer#2025.motion(187310391, 29.00000000, 23.00000000) +[2618758.037] {Default Queue} wl_pointer#2057.motion(187310391, 29.00000000, 23.00000000) +[2618758.042] {Default Queue} wl_pointer#2089.motion(187310391, 29.00000000, 23.00000000) +[2618758.046] {Default Queue} wl_pointer#2121.motion(187310391, 29.00000000, 23.00000000) +[2618758.053] {Default Queue} wl_pointer#2153.motion(187310391, 29.00000000, 23.00000000) +[2618758.059] {Default Queue} wl_pointer#2185.motion(187310391, 29.00000000, 23.00000000) +[2618758.063] {Default Queue} wl_pointer#2217.motion(187310391, 29.00000000, 23.00000000) +[2618758.067] {Default Queue} wl_pointer#2249.motion(187310391, 29.00000000, 23.00000000) +[2618758.071] {Default Queue} wl_pointer#2281.motion(187310391, 29.00000000, 23.00000000) +[2618758.076] {Default Queue} wl_pointer#2313.motion(187310391, 29.00000000, 23.00000000) +[2618758.080] {Default Queue} wl_pointer#2345.motion(187310391, 29.00000000, 23.00000000) +[2618758.085] {Default Queue} wl_pointer#2377.motion(187310391, 29.00000000, 23.00000000) +[2618758.089] {Default Queue} wl_pointer#2409.motion(187310391, 29.00000000, 23.00000000) +[2618758.093] {Default Queue} wl_pointer#2441.motion(187310391, 29.00000000, 23.00000000) +[2618758.097] {Default Queue} wl_pointer#2473.motion(187310391, 29.00000000, 23.00000000) +[2618758.102] {Default Queue} wl_pointer#2498.motion(187310391, 29.00000000, 23.00000000) +[2618758.112] {Default Queue} -> wl_buffer#3294.destroy() +[2618758.116] {Default Queue} -> wl_buffer#3293.destroy() +[2618758.120] {Default Queue} -> wl_shm_pool#3292.destroy() +[2618758.124] {Default Queue} -> wl_shm_pool#3291.destroy() +[2618758.129] {Default Queue} -> wl_surface#3484.destroy() +[2618758.161] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3518, fd 583, 640) +[2618758.169] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3517, fd 584, 640) +[2618758.174] {Default Queue} -> wl_shm_pool#3518.create_buffer(new id wl_buffer#3452, 0, 10, 16, 40, 0) +[2618758.178] {Default Queue} -> wl_shm_pool#3517.create_buffer(new id wl_buffer#3451, 0, 10, 16, 40, 0) +[2618758.185] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3454) +[2618758.189] {Default Queue} -> wl_surface#3454.attach(wl_buffer#3452, 0, 0) +[2618758.193] {Default Queue} -> wl_surface#3454.commit() +[2618758.199] {Default Queue} -> wl_surface#3454.attach(wl_buffer#3452, 0, 0) +[2618758.203] {Default Queue} -> wl_surface#3454.commit() +[2618758.207] {Default Queue} wl_pointer#2537.motion(187310391, 29.00000000, 23.00000000) +[2618758.211] {Default Queue} wl_pointer#2569.motion(187310391, 29.00000000, 23.00000000) +[2618758.216] {Default Queue} wl_pointer#2601.motion(187310391, 29.00000000, 23.00000000) +[2618758.220] {Default Queue} wl_pointer#2633.motion(187310391, 29.00000000, 23.00000000) +[2618758.224] {Default Queue} wl_pointer#2665.motion(187310391, 29.00000000, 23.00000000) +[2618758.229] {Default Queue} wl_pointer#2697.motion(187310391, 29.00000000, 23.00000000) +[2618758.233] {Default Queue} wl_pointer#2729.motion(187310391, 29.00000000, 23.00000000) +[2618758.237] {Default Queue} wl_pointer#2761.motion(187310391, 29.00000000, 23.00000000) +[2618758.241] {Default Queue} wl_pointer#2793.motion(187310391, 29.00000000, 23.00000000) +[2618758.246] {Default Queue} wl_pointer#2825.motion(187310391, 29.00000000, 23.00000000) +[2618758.250] {Default Queue} wl_pointer#2857.motion(187310391, 29.00000000, 23.00000000) +[2618758.255] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) +[2618758.259] {Default Queue} -> wl_surface#3367.commit() +[2618759.328] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) +[2618759.341] {Default Queue} -> wl_surface#3367.commit() +[2618759.350] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) +[2618759.355] {Default Queue} -> wl_surface#3367.commit() +[2618759.362] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) +[2618759.366] {Default Queue} -> wl_surface#3335.commit() +[2618760.431] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) +[2618760.444] {Default Queue} -> wl_surface#3335.commit() +[2618760.455] {Default Queue} -> wl_region#3359.subtract(0, 0, 19, 48) +[2618760.460] {Default Queue} -> wl_region#3359.add(-20, -49, 19, 48) +[2618760.465] {Default Queue} -> wl_surface#3335.set_opaque_region(wl_region#3360) +[2618760.469] {Default Queue} -> wl_surface#3335.set_input_region(wl_region#3359) +[2618760.480] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) +[2618760.487] {Default Queue} -> wl_surface#3335.commit() +[2618760.492] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) +[2618760.496] {Default Queue} -> wl_surface#3335.commit() +[2618760.503] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) +[2618760.507] {Default Queue} -> wl_surface#3335.commit() +[2618760.513] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) +[2618760.517] {Default Queue} -> wl_surface#3271.commit() +[2618761.289] {Default Queue} wl_pointer#2889.motion(187310391, 29.00000000, 23.00000000) +[2618761.306] {Default Queue} wl_pointer#2921.motion(187310391, 29.00000000, 23.00000000) +[2618761.312] {Default Queue} wl_pointer#2953.motion(187310391, 29.00000000, 23.00000000) +[2618761.317] {Default Queue} wl_pointer#2985.motion(187310391, 29.00000000, 23.00000000) +[2618761.321] {Default Queue} wl_pointer#3017.motion(187310391, 29.00000000, 23.00000000) +[2618761.326] {Default Queue} wl_pointer#3049.motion(187310391, 29.00000000, 23.00000000) +[2618761.330] {Default Queue} wl_pointer#3081.motion(187310391, 29.00000000, 23.00000000) +[2618761.334] {Default Queue} wl_pointer#3113.motion(187310391, 29.00000000, 23.00000000) +[2618761.339] {Default Queue} wl_pointer#3145.motion(187310391, 29.00000000, 23.00000000) +[2618761.343] {Default Queue} wl_pointer#3177.motion(187310391, 29.00000000, 23.00000000) +[2618761.347] {Default Queue} wl_pointer#3209.motion(187310391, 29.00000000, 23.00000000) +[2618761.352] {Default Queue} wl_pointer#3241.motion(187310391, 29.00000000, 23.00000000) +[2618761.356] {Default Queue} wl_pointer#3273.motion(187310391, 29.00000000, 23.00000000) +[2618761.360] {Default Queue} wl_pointer#3305.motion(187310391, 29.00000000, 23.00000000) +[2618761.365] {Default Queue} wl_pointer#3337.motion(187310391, 29.00000000, 23.00000000) +[2618761.369] {Default Queue} wl_pointer#3369.motion(187310391, 29.00000000, 23.00000000) +[2618761.373] {Default Queue} wl_pointer#3401.motion(187310391, 29.00000000, 23.00000000) +[2618761.378] {Default Queue} wl_pointer#3433.motion(187310391, 29.00000000, 23.00000000) +[2618761.382] {Default Queue} wl_pointer#3465.motion(187310391, 29.00000000, 23.00000000) +[2618761.386] {Default Queue} wl_pointer#3497.motion(187310391, 29.00000000, 23.00000000) +[2618761.391] {Default Queue} wl_pointer#3529.motion(187310391, 29.00000000, 23.00000000) +[2618761.395] {Default Queue} wl_pointer#3561.motion(187310391, 29.00000000, 23.00000000) +[2618761.399] {Default Queue} wl_pointer#3593.motion(187310391, 29.00000000, 23.00000000) +[2618761.403] {Default Queue} wl_pointer#3625.motion(187310391, 29.00000000, 23.00000000) +[2618761.408] {Default Queue} wl_pointer#3657.motion(187310391, 29.00000000, 23.00000000) +[2618761.412] {Default Queue} wl_pointer#3695.motion(187310391, 29.00000000, 23.00000000) +[2618761.421] {Default Queue} -> wl_region#3295.subtract(0, 0, 22, 51) +[2618761.428] {Default Queue} -> wl_region#3295.add(-20, -49, 19, 48) +[2618761.432] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) +[2618761.437] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) +[2618761.443] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) +[2618761.447] {Default Queue} -> wl_surface#3271.commit() +[2618761.452] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) +[2618761.456] {Default Queue} -> wl_surface#3271.commit() +[2618761.462] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) +[2618761.467] {Default Queue} -> wl_surface#3271.commit() +[2618761.473] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) +[2618761.477] {Default Queue} -> wl_surface#3239.commit() +[2618762.539] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) +[2618762.545] {Default Queue} -> wl_surface#3239.commit() +[2618762.555] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) +[2618762.559] {Default Queue} -> wl_region#3263.add(0, 0, 2, 2) +[2618762.563] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618762.572] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618762.588] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) +[2618762.594] {Default Queue} -> wl_region#3263.add(0, 0, 2, 2) +[2618762.598] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618762.602] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618762.607] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) +[2618762.612] {Default Queue} -> wl_region#3263.add(0, 0, 2, 2) +[2618762.616] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618762.620] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618762.625] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) +[2618762.629] {Default Queue} -> wl_region#3263.add(0, 0, 2, 2) +[2618762.633] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618762.637] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618762.644] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) +[2618762.648] {Default Queue} -> wl_region#3263.add(0, 0, 2, 2) +[2618762.652] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618762.656] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618762.661] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) +[2618762.665] {Default Queue} -> wl_surface#3239.commit() +[2618762.669] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) +[2618762.673] {Default Queue} -> wl_surface#3239.commit() +[2618762.679] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) +[2618762.683] {Default Queue} -> wl_surface#3239.commit() +[2618762.689] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) +[2618762.693] {Default Queue} -> wl_surface#3559.commit() +[2618763.756] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) +[2618763.763] {Default Queue} -> wl_surface#3559.commit() +[2618763.771] {Default Queue} -> wl_region#3583.subtract(0, 0, 2, 2) +[2618763.775] {Default Queue} -> wl_region#3583.add(0, 0, 2, 2) +[2618763.780] {Default Queue} -> wl_surface#3559.set_opaque_region(wl_region#3584) +[2618763.784] {Default Queue} -> wl_surface#3559.set_input_region(wl_region#3583) +[2618763.789] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) +[2618763.793] {Default Queue} -> wl_surface#3559.commit() +[2618763.797] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) +[2618763.801] {Default Queue} -> wl_surface#3559.commit() +[2618763.807] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) +[2618763.811] {Default Queue} -> wl_surface#3559.commit() +[2618763.817] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) +[2618763.821] {Default Queue} -> wl_surface#3591.commit() +[2618764.867] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) +[2618764.873] {Default Queue} -> wl_surface#3591.commit() +[2618764.879] {Default Queue} -> wl_region#3615.subtract(0, 0, 2, 2) +[2618764.884] {Default Queue} -> wl_region#3615.add(0, 0, 2, 2) +[2618764.888] {Default Queue} -> wl_surface#3591.set_opaque_region(wl_region#3616) +[2618764.892] {Default Queue} -> wl_surface#3591.set_input_region(wl_region#3615) +[2618764.897] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) +[2618764.901] {Default Queue} -> wl_surface#3591.commit() +[2618764.905] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) +[2618764.909] {Default Queue} -> wl_surface#3591.commit() +[2618764.915] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) +[2618764.919] {Default Queue} -> wl_surface#3591.commit() +[2618764.925] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) +[2618764.929] {Default Queue} -> wl_surface#3623.commit() +[2618765.992] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) +[2618765.997] {Default Queue} -> wl_surface#3623.commit() +[2618766.004] {Default Queue} -> wl_region#3647.subtract(0, 0, 2, 2) +[2618766.013] {Default Queue} -> wl_region#3647.add(0, 0, 2, 2) +[2618766.020] {Default Queue} -> wl_surface#3623.set_opaque_region(wl_region#3648) +[2618766.024] {Default Queue} -> wl_surface#3623.set_input_region(wl_region#3647) +[2618766.029] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) +[2618766.033] {Default Queue} -> wl_surface#3623.commit() +[2618766.037] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) +[2618766.041] {Default Queue} -> wl_surface#3623.commit() +[2618766.047] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) +[2618766.051] {Default Queue} -> wl_surface#3623.commit() +[2618766.057] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) +[2618766.062] {Default Queue} -> wl_surface#2983.commit() +[2618766.595] {Display Queue} wl_display#1.delete_id(91) +[2618766.603] {Display Queue} wl_display#1.delete_id(94) +[2618766.608] {Display Queue} wl_display#1.delete_id(3683) +[2618766.612] {Display Queue} wl_display#1.delete_id(92) +[2618766.616] {Display Queue} wl_display#1.delete_id(93) +[2618766.620] {Display Queue} wl_display#1.delete_id(3671) +[2618766.624] {Display Queue} wl_display#1.delete_id(3681) +[2618766.627] {Display Queue} wl_display#1.delete_id(3684) +[2618766.631] {Display Queue} wl_display#1.delete_id(3679) +[2618766.635] {Display Queue} wl_display#1.delete_id(3682) +[2618766.639] {Display Queue} wl_display#1.delete_id(3294) +[2618766.643] {Display Queue} wl_display#1.delete_id(3293) +[2618766.647] {Display Queue} wl_display#1.delete_id(3292) +[2618766.651] {Display Queue} wl_display#1.delete_id(3291) +[2618766.655] {Display Queue} wl_display#1.delete_id(3484) +[2618766.659] {Default Queue} wl_pointer#24.motion(187310396, 29.00000000, 22.60156250) +[2618766.664] {Default Queue} wl_pointer#81.motion(187310396, 29.00000000, 22.60156250) +[2618766.670] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618766.675] {Default Queue} wl_pointer#105.motion(187310396, 29.00000000, 22.60156250) +[2618766.679] {Default Queue} wl_pointer#137.motion(187310396, 29.00000000, 22.60156250) +[2618766.684] {Default Queue} wl_pointer#169.motion(187310396, 29.00000000, 22.60156250) +[2618766.688] {Default Queue} wl_pointer#201.motion(187310396, 29.00000000, 22.60156250) +[2618766.692] {Default Queue} wl_pointer#233.motion(187310396, 29.00000000, 22.60156250) +[2618766.697] {Default Queue} wl_pointer#265.motion(187310396, 29.00000000, 22.60156250) +[2618766.701] {Default Queue} wl_pointer#297.motion(187310396, 29.00000000, 22.60156250) +[2618766.705] {Default Queue} wl_pointer#329.motion(187310396, 29.00000000, 22.60156250) +[2618766.710] {Default Queue} wl_pointer#361.motion(187310396, 29.00000000, 22.60156250) +[2618766.714] {Default Queue} wl_pointer#393.motion(187310396, 29.00000000, 22.60156250) +[2618766.718] {Default Queue} wl_pointer#425.motion(187310396, 29.00000000, 22.60156250) +[2618766.723] {Default Queue} wl_pointer#457.motion(187310396, 29.00000000, 22.60156250) +[2618766.727] {Default Queue} wl_pointer#489.motion(187310396, 29.00000000, 22.60156250) +[2618766.731] {Default Queue} wl_pointer#521.motion(187310396, 29.00000000, 22.60156250) +[2618766.736] {Default Queue} wl_pointer#553.motion(187310396, 29.00000000, 22.60156250) +[2618766.740] {Default Queue} wl_pointer#585.motion(187310396, 29.00000000, 22.60156250) +[2618766.745] {Default Queue} wl_pointer#617.motion(187310396, 29.00000000, 22.60156250) +[2618766.749] {Default Queue} wl_pointer#649.motion(187310396, 29.00000000, 22.60156250) +[2618766.753] {Default Queue} wl_pointer#681.motion(187310396, 29.00000000, 22.60156250) +[2618766.757] {Default Queue} wl_pointer#713.motion(187310396, 29.00000000, 22.60156250) +[2618766.762] {Default Queue} wl_pointer#745.motion(187310396, 29.00000000, 22.60156250) +[2618766.766] {Default Queue} wl_pointer#777.motion(187310396, 29.00000000, 22.60156250) +[2618766.770] {Default Queue} wl_pointer#809.motion(187310396, 29.00000000, 22.60156250) +[2618766.774] {Default Queue} wl_pointer#841.motion(187310396, 29.00000000, 22.60156250) +[2618766.779] {Default Queue} wl_pointer#873.motion(187310396, 29.00000000, 22.60156250) +[2618766.787] {Default Queue} wl_pointer#905.motion(187310396, 29.00000000, 22.60156250) +[2618766.793] {Default Queue} wl_pointer#937.motion(187310396, 29.00000000, 22.60156250) +[2618766.797] {Default Queue} wl_pointer#969.motion(187310396, 29.00000000, 22.60156250) +[2618766.801] {Default Queue} wl_pointer#1001.motion(187310396, 29.00000000, 22.60156250) +[2618766.806] {Default Queue} wl_pointer#1033.motion(187310396, 29.00000000, 22.60156250) +[2618766.810] {Default Queue} wl_pointer#1065.motion(187310396, 29.00000000, 22.60156250) +[2618766.814] {Default Queue} wl_pointer#1097.motion(187310396, 29.00000000, 22.60156250) +[2618766.819] {Default Queue} wl_pointer#1129.motion(187310396, 29.00000000, 22.60156250) +[2618766.823] {Default Queue} wl_pointer#1161.motion(187310396, 29.00000000, 22.60156250) +[2618766.827] {Default Queue} wl_pointer#1193.motion(187310396, 29.00000000, 22.60156250) +[2618766.832] {Default Queue} wl_pointer#1225.motion(187310396, 29.00000000, 22.60156250) +[2618766.836] {Default Queue} wl_pointer#1257.motion(187310396, 29.00000000, 22.60156250) +[2618766.840] {Default Queue} wl_pointer#1289.motion(187310396, 29.00000000, 22.60156250) +[2618766.844] {Default Queue} wl_pointer#1321.motion(187310396, 29.00000000, 22.60156250) +[2618766.849] {Default Queue} wl_pointer#1353.motion(187310396, 29.00000000, 22.60156250) +[2618766.854] {Default Queue} wl_pointer#1385.motion(187310396, 29.00000000, 22.60156250) +[2618766.858] {Default Queue} wl_pointer#1417.motion(187310396, 29.00000000, 22.60156250) +[2618766.866] {Default Queue} wl_pointer#1449.motion(187310396, 29.00000000, 22.60156250) +[2618766.871] {Default Queue} wl_pointer#1481.motion(187310396, 29.00000000, 22.60156250) +[2618766.875] {Default Queue} wl_pointer#1513.motion(187310396, 29.00000000, 22.60156250) +[2618766.879] {Default Queue} wl_pointer#1545.motion(187310396, 29.00000000, 22.60156250) +[2618766.883] {Default Queue} wl_pointer#1577.motion(187310396, 29.00000000, 22.60156250) +[2618766.888] {Default Queue} wl_pointer#1609.motion(187310396, 29.00000000, 22.60156250) +[2618766.892] {Default Queue} wl_pointer#1641.motion(187310396, 29.00000000, 22.60156250) +[2618766.896] {Default Queue} wl_pointer#1673.motion(187310396, 29.00000000, 22.60156250) +[2618766.901] {Default Queue} wl_pointer#1705.motion(187310396, 29.00000000, 22.60156250) +[2618766.905] {Default Queue} wl_pointer#1737.motion(187310396, 29.00000000, 22.60156250) +[2618766.909] {Default Queue} wl_pointer#1762.motion(187310396, 29.00000000, 22.60156250) +[2618766.914] {Default Queue} wl_pointer#1801.motion(187310396, 29.00000000, 22.60156250) +[2618766.918] {Default Queue} wl_pointer#1833.motion(187310396, 29.00000000, 22.60156250) +[2618766.922] {Default Queue} wl_pointer#1865.motion(187310396, 29.00000000, 22.60156250) +[2618766.926] {Default Queue} wl_pointer#1897.motion(187310396, 29.00000000, 22.60156250) +[2618766.931] {Default Queue} wl_pointer#1929.motion(187310396, 29.00000000, 22.60156250) +[2618766.935] {Default Queue} wl_pointer#1961.motion(187310396, 29.00000000, 22.60156250) +[2618766.940] {Default Queue} wl_pointer#1993.motion(187310396, 29.00000000, 22.60156250) +[2618766.944] {Default Queue} wl_pointer#2025.motion(187310396, 29.00000000, 22.60156250) +[2618766.948] {Default Queue} wl_pointer#2057.motion(187310396, 29.00000000, 22.60156250) +[2618766.952] {Default Queue} wl_pointer#2089.motion(187310396, 29.00000000, 22.60156250) +[2618766.957] {Default Queue} wl_pointer#2121.motion(187310396, 29.00000000, 22.60156250) +[2618766.961] {Default Queue} wl_pointer#2153.motion(187310396, 29.00000000, 22.60156250) +[2618766.965] {Default Queue} wl_pointer#2185.motion(187310396, 29.00000000, 22.60156250) +[2618766.970] {Default Queue} wl_pointer#2217.motion(187310396, 29.00000000, 22.60156250) +[2618766.974] {Default Queue} wl_pointer#2249.motion(187310396, 29.00000000, 22.60156250) +[2618766.979] {Default Queue} wl_pointer#2281.motion(187310396, 29.00000000, 22.60156250) +[2618766.983] {Default Queue} wl_pointer#2313.motion(187310396, 29.00000000, 22.60156250) +[2618766.990] {Default Queue} wl_pointer#2345.motion(187310396, 29.00000000, 22.60156250) +[2618766.996] {Default Queue} wl_pointer#2377.motion(187310396, 29.00000000, 22.60156250) +[2618767.001] {Default Queue} wl_pointer#2409.motion(187310396, 29.00000000, 22.60156250) +[2618767.005] {Default Queue} wl_pointer#2441.motion(187310396, 29.00000000, 22.60156250) +[2618767.009] {Default Queue} wl_pointer#2473.motion(187310396, 29.00000000, 22.60156250) +[2618767.013] {Default Queue} wl_pointer#2498.motion(187310396, 29.00000000, 22.60156250) +[2618767.028] {Default Queue} -> wl_buffer#3452.destroy() +[2618767.035] {Default Queue} -> wl_buffer#3451.destroy() +[2618767.039] {Default Queue} -> wl_shm_pool#3518.destroy() +[2618767.043] {Default Queue} -> wl_shm_pool#3517.destroy() +[2618767.048] {Default Queue} -> wl_surface#3454.destroy() +[2618767.097] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3484, fd 575, 640) +[2618767.103] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 578, 640) +[2618767.108] {Default Queue} -> wl_shm_pool#3484.create_buffer(new id wl_buffer#3292, 0, 10, 16, 40, 0) +[2618767.113] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) +[2618767.122] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3294) +[2618767.126] {Default Queue} -> wl_surface#3294.attach(wl_buffer#3292, 0, 0) +[2618767.130] {Default Queue} -> wl_surface#3294.commit() +[2618767.136] {Default Queue} -> wl_surface#3294.attach(wl_buffer#3292, 0, 0) +[2618767.140] {Default Queue} -> wl_surface#3294.commit() +[2618767.144] {Default Queue} wl_pointer#2537.motion(187310396, 29.00000000, 22.60156250) +[2618767.149] {Default Queue} wl_pointer#2569.motion(187310396, 29.00000000, 22.60156250) +[2618767.153] {Default Queue} wl_pointer#2601.motion(187310396, 29.00000000, 22.60156250) +[2618767.158] {Default Queue} wl_pointer#2633.motion(187310396, 29.00000000, 22.60156250) +[2618767.162] {Default Queue} wl_pointer#2665.motion(187310396, 29.00000000, 22.60156250) +[2618767.166] {Default Queue} wl_pointer#2697.motion(187310396, 29.00000000, 22.60156250) +[2618767.171] {Default Queue} wl_pointer#2729.motion(187310396, 29.00000000, 22.60156250) +[2618767.175] {Default Queue} wl_pointer#2761.motion(187310396, 29.00000000, 22.60156250) +[2618767.179] {Default Queue} wl_pointer#2793.motion(187310396, 29.00000000, 22.60156250) +[2618767.184] {Default Queue} wl_pointer#2825.motion(187310396, 29.00000000, 22.60156250) +[2618767.188] {Default Queue} wl_pointer#2857.motion(187310396, 29.00000000, 22.60156250) +[2618767.192] {Default Queue} wl_pointer#2889.motion(187310396, 29.00000000, 22.60156250) +[2618767.197] {Default Queue} wl_pointer#2921.motion(187310396, 29.00000000, 22.60156250) +[2618767.201] {Default Queue} wl_pointer#2953.motion(187310396, 29.00000000, 22.60156250) +[2618767.205] {Default Queue} wl_pointer#2985.motion(187310396, 29.00000000, 22.60156250) +[2618767.210] {Default Queue} wl_pointer#3017.motion(187310396, 29.00000000, 22.60156250) +[2618767.214] {Default Queue} wl_pointer#3049.motion(187310396, 29.00000000, 22.60156250) +[2618767.218] {Default Queue} wl_pointer#3081.motion(187310396, 29.00000000, 22.60156250) +[2618767.222] {Default Queue} wl_pointer#3113.motion(187310396, 29.00000000, 22.60156250) +[2618767.227] {Default Queue} wl_pointer#3145.motion(187310396, 29.00000000, 22.60156250) +[2618767.231] {Default Queue} wl_pointer#3177.motion(187310396, 29.00000000, 22.60156250) +[2618767.235] {Default Queue} wl_pointer#3209.motion(187310396, 29.00000000, 22.60156250) +[2618767.240] {Default Queue} wl_pointer#3241.motion(187310396, 29.00000000, 22.60156250) +[2618767.244] {Default Queue} wl_pointer#3273.motion(187310396, 29.00000000, 22.60156250) +[2618767.248] {Default Queue} wl_pointer#3305.motion(187310396, 29.00000000, 22.60156250) +[2618767.253] {Default Queue} wl_pointer#3337.motion(187310396, 29.00000000, 22.60156250) +[2618767.257] {Default Queue} wl_pointer#3369.motion(187310396, 29.00000000, 22.60156250) +[2618767.261] {Default Queue} wl_pointer#3401.motion(187310396, 29.00000000, 22.60156250) +[2618767.270] {Default Queue} wl_pointer#3433.motion(187310396, 29.00000000, 22.60156250) +[2618767.277] {Default Queue} wl_pointer#3465.motion(187310396, 29.00000000, 22.60156250) +[2618767.281] {Default Queue} wl_pointer#3497.motion(187310396, 29.00000000, 22.60156250) +[2618767.285] {Default Queue} wl_pointer#3529.motion(187310396, 29.00000000, 22.60156250) +[2618767.290] {Default Queue} wl_pointer#3561.motion(187310396, 29.00000000, 22.60156250) +[2618767.294] {Default Queue} wl_pointer#3593.motion(187310396, 29.00000000, 22.60156250) +[2618767.298] {Default Queue} wl_pointer#3625.motion(187310396, 29.00000000, 22.60156250) +[2618767.303] {Default Queue} wl_pointer#3657.motion(187310396, 29.00000000, 22.60156250) +[2618767.307] {Default Queue} wl_pointer#3695.motion(187310396, 29.00000000, 22.60156250) +[2618767.315] {Default Queue} -> wl_region#3007.subtract(0, 0, 2, 2) +[2618767.320] {Default Queue} -> wl_region#3007.add(0, 0, 2, 2) +[2618767.325] {Default Queue} -> wl_surface#2983.set_opaque_region(wl_region#3008) +[2618767.329] {Default Queue} -> wl_surface#2983.set_input_region(wl_region#3007) +[2618767.334] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) +[2618767.338] {Default Queue} -> wl_surface#2983.commit() +[2618767.342] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) +[2618767.346] {Default Queue} -> wl_surface#2983.commit() +[2618767.372] {Default Queue} wl_pointer#24.motion(187310401, 29.00000000, 22.19921875) +[2618767.377] {Default Queue} wl_pointer#81.motion(187310401, 29.00000000, 22.19921875) +[2618767.382] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618767.387] {Default Queue} wl_pointer#105.motion(187310401, 29.00000000, 22.19921875) +[2618767.391] {Default Queue} wl_pointer#137.motion(187310401, 29.00000000, 22.19921875) +[2618767.395] {Default Queue} wl_pointer#169.motion(187310401, 29.00000000, 22.19921875) +[2618767.400] {Default Queue} wl_pointer#201.motion(187310401, 29.00000000, 22.19921875) +[2618767.404] {Default Queue} wl_pointer#233.motion(187310401, 29.00000000, 22.19921875) +[2618767.408] {Default Queue} wl_pointer#265.motion(187310401, 29.00000000, 22.19921875) +[2618767.412] {Default Queue} wl_pointer#297.motion(187310401, 29.00000000, 22.19921875) +[2618767.417] {Default Queue} wl_pointer#329.motion(187310401, 29.00000000, 22.19921875) +[2618767.421] {Default Queue} wl_pointer#361.motion(187310401, 29.00000000, 22.19921875) +[2618767.425] {Default Queue} wl_pointer#393.motion(187310401, 29.00000000, 22.19921875) +[2618767.429] {Default Queue} wl_pointer#425.motion(187310401, 29.00000000, 22.19921875) +[2618767.433] {Default Queue} wl_pointer#457.motion(187310401, 29.00000000, 22.19921875) +[2618767.438] {Default Queue} wl_pointer#489.motion(187310401, 29.00000000, 22.19921875) +[2618767.442] {Default Queue} wl_pointer#521.motion(187310401, 29.00000000, 22.19921875) +[2618767.446] {Default Queue} wl_pointer#553.motion(187310401, 29.00000000, 22.19921875) +[2618767.450] {Default Queue} wl_pointer#585.motion(187310401, 29.00000000, 22.19921875) +[2618767.455] {Default Queue} wl_pointer#617.motion(187310401, 29.00000000, 22.19921875) +[2618767.459] {Default Queue} wl_pointer#649.motion(187310401, 29.00000000, 22.19921875) +[2618767.464] {Default Queue} wl_pointer#681.motion(187310401, 29.00000000, 22.19921875) +[2618767.468] {Default Queue} wl_pointer#713.motion(187310401, 29.00000000, 22.19921875) +[2618767.472] {Default Queue} wl_pointer#745.motion(187310401, 29.00000000, 22.19921875) +[2618767.476] {Default Queue} wl_pointer#777.motion(187310401, 29.00000000, 22.19921875) +[2618767.481] {Default Queue} wl_pointer#809.motion(187310401, 29.00000000, 22.19921875) +[2618767.485] {Default Queue} wl_pointer#841.motion(187310401, 29.00000000, 22.19921875) +[2618767.489] {Default Queue} wl_pointer#873.motion(187310401, 29.00000000, 22.19921875) +[2618767.493] {Default Queue} wl_pointer#905.motion(187310401, 29.00000000, 22.19921875) +[2618767.498] {Default Queue} wl_pointer#937.motion(187310401, 29.00000000, 22.19921875) +[2618767.505] {Default Queue} wl_pointer#969.motion(187310401, 29.00000000, 22.19921875) +[2618767.511] {Default Queue} wl_pointer#1001.motion(187310401, 29.00000000, 22.19921875) +[2618767.515] {Default Queue} wl_pointer#1033.motion(187310401, 29.00000000, 22.19921875) +[2618767.520] {Default Queue} wl_pointer#1065.motion(187310401, 29.00000000, 22.19921875) +[2618767.524] {Default Queue} wl_pointer#1097.motion(187310401, 29.00000000, 22.19921875) +[2618767.528] {Default Queue} wl_pointer#1129.motion(187310401, 29.00000000, 22.19921875) +[2618767.533] {Default Queue} wl_pointer#1161.motion(187310401, 29.00000000, 22.19921875) +[2618767.537] {Default Queue} wl_pointer#1193.motion(187310401, 29.00000000, 22.19921875) +[2618767.541] {Default Queue} wl_pointer#1225.motion(187310401, 29.00000000, 22.19921875) +[2618767.545] {Default Queue} wl_pointer#1257.motion(187310401, 29.00000000, 22.19921875) +[2618767.549] {Default Queue} wl_pointer#1289.motion(187310401, 29.00000000, 22.19921875) +[2618767.554] {Default Queue} wl_pointer#1321.motion(187310401, 29.00000000, 22.19921875) +[2618767.558] {Default Queue} wl_pointer#1353.motion(187310401, 29.00000000, 22.19921875) +[2618767.562] {Default Queue} wl_pointer#1385.motion(187310401, 29.00000000, 22.19921875) +[2618767.566] {Default Queue} wl_pointer#1417.motion(187310401, 29.00000000, 22.19921875) +[2618767.571] {Default Queue} wl_pointer#1449.motion(187310401, 29.00000000, 22.19921875) +[2618767.575] {Default Queue} wl_pointer#1481.motion(187310401, 29.00000000, 22.19921875) +[2618767.579] {Default Queue} wl_pointer#1513.motion(187310401, 29.00000000, 22.19921875) +[2618767.583] {Default Queue} wl_pointer#1545.motion(187310401, 29.00000000, 22.19921875) +[2618767.588] {Default Queue} wl_pointer#1577.motion(187310401, 29.00000000, 22.19921875) +[2618767.592] {Default Queue} wl_pointer#1609.motion(187310401, 29.00000000, 22.19921875) +[2618767.596] {Default Queue} wl_pointer#1641.motion(187310401, 29.00000000, 22.19921875) +[2618767.600] {Default Queue} wl_pointer#1673.motion(187310401, 29.00000000, 22.19921875) +[2618767.605] {Default Queue} wl_pointer#1705.motion(187310401, 29.00000000, 22.19921875) +[2618767.609] {Default Queue} wl_pointer#1737.motion(187310401, 29.00000000, 22.19921875) +[2618767.613] {Default Queue} wl_pointer#1762.motion(187310401, 29.00000000, 22.19921875) +[2618767.617] {Default Queue} wl_pointer#1801.motion(187310401, 29.00000000, 22.19921875) +[2618767.622] {Default Queue} wl_pointer#1833.motion(187310401, 29.00000000, 22.19921875) +[2618767.626] {Default Queue} wl_pointer#1865.motion(187310401, 29.00000000, 22.19921875) +[2618767.630] {Default Queue} wl_pointer#1897.motion(187310401, 29.00000000, 22.19921875) +[2618767.634] {Default Queue} wl_pointer#1929.motion(187310401, 29.00000000, 22.19921875) +[2618767.639] {Default Queue} wl_pointer#1961.motion(187310401, 29.00000000, 22.19921875) +[2618767.643] {Default Queue} wl_pointer#1993.motion(187310401, 29.00000000, 22.19921875) +[2618767.647] {Default Queue} wl_pointer#2025.motion(187310401, 29.00000000, 22.19921875) +[2618767.651] {Default Queue} wl_pointer#2057.motion(187310401, 29.00000000, 22.19921875) +[2618767.656] {Default Queue} wl_pointer#2089.motion(187310401, 29.00000000, 22.19921875) +[2618767.660] {Default Queue} wl_pointer#2121.motion(187310401, 29.00000000, 22.19921875) +[2618767.664] {Default Queue} wl_pointer#2153.motion(187310401, 29.00000000, 22.19921875) +[2618767.669] {Default Queue} wl_pointer#2185.motion(187310401, 29.00000000, 22.19921875) +[2618767.673] {Default Queue} wl_pointer#2217.motion(187310401, 29.00000000, 22.19921875) +[2618767.677] {Default Queue} wl_pointer#2249.motion(187310401, 29.00000000, 22.19921875) +[2618767.682] {Default Queue} wl_pointer#2281.motion(187310401, 29.00000000, 22.19921875) +[2618767.686] {Default Queue} wl_pointer#2313.motion(187310401, 29.00000000, 22.19921875) +[2618767.690] {Default Queue} wl_pointer#2345.motion(187310401, 29.00000000, 22.19921875) +[2618767.695] {Default Queue} wl_pointer#2377.motion(187310401, 29.00000000, 22.19921875) +[2618767.699] {Default Queue} wl_pointer#2409.motion(187310401, 29.00000000, 22.19921875) +[2618767.706] {Default Queue} wl_pointer#2441.motion(187310401, 29.00000000, 22.19921875) +[2618767.711] {Default Queue} wl_pointer#2473.motion(187310401, 29.00000000, 22.19921875) +[2618767.716] {Default Queue} wl_pointer#2498.motion(187310401, 29.00000000, 22.19921875) +[2618767.726] {Default Queue} -> wl_buffer#3292.destroy() +[2618767.731] {Default Queue} -> wl_buffer#3293.destroy() +[2618767.735] {Default Queue} -> wl_shm_pool#3484.destroy() +[2618767.739] {Default Queue} -> wl_shm_pool#3291.destroy() +[2618767.744] {Default Queue} -> wl_surface#3294.destroy() +[2618767.783] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3682, fd 581, 640) +[2618767.791] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 582, 640) +[2618767.797] {Default Queue} -> wl_shm_pool#3682.create_buffer(new id wl_buffer#3684, 0, 10, 16, 40, 0) +[2618767.803] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) +[2618767.813] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3671) +[2618767.818] {Default Queue} -> wl_surface#3671.attach(wl_buffer#3684, 0, 0) +[2618767.824] {Default Queue} -> wl_surface#3671.commit() +[2618767.831] {Default Queue} -> wl_surface#3671.attach(wl_buffer#3684, 0, 0) +[2618767.837] {Default Queue} -> wl_surface#3671.commit() +[2618767.842] {Default Queue} wl_pointer#2537.motion(187310401, 29.00000000, 22.19921875) +[2618767.848] {Default Queue} wl_pointer#2569.motion(187310401, 29.00000000, 22.19921875) +[2618767.852] {Default Queue} wl_pointer#2601.motion(187310401, 29.00000000, 22.19921875) +[2618767.857] {Default Queue} wl_pointer#2633.motion(187310401, 29.00000000, 22.19921875) +[2618767.867] {Default Queue} wl_pointer#2665.motion(187310401, 29.00000000, 22.19921875) +[2618767.872] {Default Queue} wl_pointer#2697.motion(187310401, 29.00000000, 22.19921875) +[2618767.876] {Default Queue} wl_pointer#2729.motion(187310401, 29.00000000, 22.19921875) +[2618767.880] {Default Queue} wl_pointer#2761.motion(187310401, 29.00000000, 22.19921875) +[2618767.885] {Default Queue} wl_pointer#2793.motion(187310401, 29.00000000, 22.19921875) +[2618767.889] {Default Queue} wl_pointer#2825.motion(187310401, 29.00000000, 22.19921875) +[2618767.893] {Default Queue} wl_pointer#2857.motion(187310401, 29.00000000, 22.19921875) +[2618767.898] {Default Queue} wl_pointer#2889.motion(187310401, 29.00000000, 22.19921875) +[2618767.902] {Default Queue} wl_pointer#2921.motion(187310401, 29.00000000, 22.19921875) +[2618767.906] {Default Queue} wl_pointer#2953.motion(187310401, 29.00000000, 22.19921875) +[2618767.910] {Default Queue} wl_pointer#2985.motion(187310401, 29.00000000, 22.19921875) +[2618767.915] {Default Queue} wl_pointer#3017.motion(187310401, 29.00000000, 22.19921875) +[2618767.919] {Default Queue} wl_pointer#3049.motion(187310401, 29.00000000, 22.19921875) +[2618767.923] {Default Queue} wl_pointer#3081.motion(187310401, 29.00000000, 22.19921875) +[2618767.927] {Default Queue} wl_pointer#3113.motion(187310401, 29.00000000, 22.19921875) +[2618767.932] {Default Queue} wl_pointer#3145.motion(187310401, 29.00000000, 22.19921875) +[2618767.936] {Default Queue} wl_pointer#3177.motion(187310401, 29.00000000, 22.19921875) +[2618767.940] {Default Queue} wl_pointer#3209.motion(187310401, 29.00000000, 22.19921875) +[2618767.945] {Default Queue} wl_pointer#3241.motion(187310401, 29.00000000, 22.19921875) +[2618767.949] {Default Queue} wl_pointer#3273.motion(187310401, 29.00000000, 22.19921875) +[2618767.953] {Default Queue} wl_pointer#3305.motion(187310401, 29.00000000, 22.19921875) +[2618767.957] {Default Queue} wl_pointer#3337.motion(187310401, 29.00000000, 22.19921875) +[2618767.961] {Default Queue} wl_pointer#3369.motion(187310401, 29.00000000, 22.19921875) +[2618767.966] {Default Queue} wl_pointer#3401.motion(187310401, 29.00000000, 22.19921875) +[2618767.970] {Default Queue} wl_pointer#3433.motion(187310401, 29.00000000, 22.19921875) +[2618767.974] {Default Queue} wl_pointer#3465.motion(187310401, 29.00000000, 22.19921875) +[2618767.983] {Default Queue} wl_pointer#3497.motion(187310401, 29.00000000, 22.19921875) +[2618767.990] {Default Queue} wl_pointer#3529.motion(187310401, 29.00000000, 22.19921875) +[2618767.996] {Default Queue} wl_pointer#3561.motion(187310401, 29.00000000, 22.19921875) +[2618768.002] {Default Queue} wl_pointer#3593.motion(187310401, 29.00000000, 22.19921875) +[2618768.008] {Default Queue} wl_pointer#3625.motion(187310401, 29.00000000, 22.19921875) +[2618768.013] {Default Queue} wl_pointer#3657.motion(187310401, 29.00000000, 22.19921875) +[2618768.017] {Default Queue} wl_pointer#3695.motion(187310401, 29.00000000, 22.19921875) +[2618768.022] {Default Queue} wl_pointer#24.motion(187310401, 29.00000000, 21.80078125) +[2618768.028] {Default Queue} wl_pointer#81.motion(187310401, 29.00000000, 21.80078125) +[2618768.035] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618768.041] {Default Queue} wl_pointer#105.motion(187310401, 29.00000000, 21.80078125) +[2618768.047] {Default Queue} wl_pointer#137.motion(187310401, 29.00000000, 21.80078125) +[2618768.052] {Default Queue} wl_pointer#169.motion(187310401, 29.00000000, 21.80078125) +[2618768.057] {Default Queue} wl_pointer#201.motion(187310401, 29.00000000, 21.80078125) +[2618768.061] {Default Queue} wl_pointer#233.motion(187310401, 29.00000000, 21.80078125) +[2618768.065] {Default Queue} wl_pointer#265.motion(187310401, 29.00000000, 21.80078125) +[2618768.070] {Default Queue} wl_pointer#297.motion(187310401, 29.00000000, 21.80078125) +[2618768.074] {Default Queue} wl_pointer#329.motion(187310401, 29.00000000, 21.80078125) +[2618768.078] {Default Queue} wl_pointer#361.motion(187310401, 29.00000000, 21.80078125) +[2618768.082] {Default Queue} wl_pointer#393.motion(187310401, 29.00000000, 21.80078125) +[2618768.087] {Default Queue} wl_pointer#425.motion(187310401, 29.00000000, 21.80078125) +[2618768.091] {Default Queue} wl_pointer#457.motion(187310401, 29.00000000, 21.80078125) +[2618768.095] {Default Queue} wl_pointer#489.motion(187310401, 29.00000000, 21.80078125) +[2618768.099] {Default Queue} wl_pointer#521.motion(187310401, 29.00000000, 21.80078125) +[2618768.104] {Default Queue} wl_pointer#553.motion(187310401, 29.00000000, 21.80078125) +[2618768.108] {Default Queue} wl_pointer#585.motion(187310401, 29.00000000, 21.80078125) +[2618768.112] {Default Queue} wl_pointer#617.motion(187310401, 29.00000000, 21.80078125) +[2618768.116] {Default Queue} wl_pointer#649.motion(187310401, 29.00000000, 21.80078125) +[2618768.121] {Default Queue} wl_pointer#681.motion(187310401, 29.00000000, 21.80078125) +[2618768.125] {Default Queue} wl_pointer#713.motion(187310401, 29.00000000, 21.80078125) +[2618768.129] {Default Queue} wl_pointer#745.motion(187310401, 29.00000000, 21.80078125) +[2618768.133] {Default Queue} wl_pointer#777.motion(187310401, 29.00000000, 21.80078125) +[2618768.138] {Default Queue} wl_pointer#809.motion(187310401, 29.00000000, 21.80078125) +[2618768.142] {Default Queue} wl_pointer#841.motion(187310401, 29.00000000, 21.80078125) +[2618768.146] {Default Queue} wl_pointer#873.motion(187310401, 29.00000000, 21.80078125) +[2618768.151] {Default Queue} wl_pointer#905.motion(187310401, 29.00000000, 21.80078125) +[2618768.155] {Default Queue} wl_pointer#937.motion(187310401, 29.00000000, 21.80078125) +[2618768.159] {Default Queue} wl_pointer#969.motion(187310401, 29.00000000, 21.80078125) +[2618768.163] {Default Queue} wl_pointer#1001.motion(187310401, 29.00000000, 21.80078125) +[2618768.168] {Default Queue} wl_pointer#1033.motion(187310401, 29.00000000, 21.80078125) +[2618768.172] {Default Queue} wl_pointer#1065.motion(187310401, 29.00000000, 21.80078125) +[2618768.176] {Default Queue} wl_pointer#1097.motion(187310401, 29.00000000, 21.80078125) +[2618768.181] {Default Queue} wl_pointer#1129.motion(187310401, 29.00000000, 21.80078125) +[2618768.185] {Default Queue} wl_pointer#1161.motion(187310401, 29.00000000, 21.80078125) +[2618768.189] {Default Queue} wl_pointer#1193.motion(187310401, 29.00000000, 21.80078125) +[2618768.193] {Default Queue} wl_pointer#1225.motion(187310401, 29.00000000, 21.80078125) +[2618768.200] {Default Queue} wl_pointer#1257.motion(187310401, 29.00000000, 21.80078125) +[2618768.206] {Default Queue} wl_pointer#1289.motion(187310401, 29.00000000, 21.80078125) +[2618768.211] {Default Queue} wl_pointer#1321.motion(187310401, 29.00000000, 21.80078125) +[2618768.215] {Default Queue} wl_pointer#1353.motion(187310401, 29.00000000, 21.80078125) +[2618768.219] {Default Queue} wl_pointer#1385.motion(187310401, 29.00000000, 21.80078125) +[2618768.224] {Default Queue} wl_pointer#1417.motion(187310401, 29.00000000, 21.80078125) +[2618768.228] {Default Queue} wl_pointer#1449.motion(187310401, 29.00000000, 21.80078125) +[2618768.232] {Default Queue} wl_pointer#1481.motion(187310401, 29.00000000, 21.80078125) +[2618768.236] {Default Queue} wl_pointer#1513.motion(187310401, 29.00000000, 21.80078125) +[2618768.241] {Default Queue} wl_pointer#1545.motion(187310401, 29.00000000, 21.80078125) +[2618768.245] {Default Queue} wl_pointer#1577.motion(187310401, 29.00000000, 21.80078125) +[2618768.249] {Default Queue} wl_pointer#1609.motion(187310401, 29.00000000, 21.80078125) +[2618768.254] {Default Queue} wl_pointer#1641.motion(187310401, 29.00000000, 21.80078125) +[2618768.258] {Default Queue} wl_pointer#1673.motion(187310401, 29.00000000, 21.80078125) +[2618768.262] {Default Queue} wl_pointer#1705.motion(187310401, 29.00000000, 21.80078125) +[2618768.267] {Default Queue} wl_pointer#1737.motion(187310401, 29.00000000, 21.80078125) +[2618768.271] {Default Queue} wl_pointer#1762.motion(187310401, 29.00000000, 21.80078125) +[2618768.275] {Default Queue} wl_pointer#1801.motion(187310401, 29.00000000, 21.80078125) +[2618768.279] {Default Queue} wl_pointer#1833.motion(187310401, 29.00000000, 21.80078125) +[2618768.284] {Default Queue} wl_pointer#1865.motion(187310401, 29.00000000, 21.80078125) +[2618768.288] {Default Queue} wl_pointer#1897.motion(187310401, 29.00000000, 21.80078125) +[2618768.292] {Default Queue} wl_pointer#1929.motion(187310401, 29.00000000, 21.80078125) +[2618768.297] {Default Queue} wl_pointer#1961.motion(187310401, 29.00000000, 21.80078125) +[2618768.301] {Default Queue} wl_pointer#1993.motion(187310401, 29.00000000, 21.80078125) +[2618768.305] {Default Queue} wl_pointer#2025.motion(187310401, 29.00000000, 21.80078125) +[2618768.309] {Default Queue} wl_pointer#2057.motion(187310401, 29.00000000, 21.80078125) +[2618768.314] {Default Queue} wl_pointer#2089.motion(187310401, 29.00000000, 21.80078125) +[2618768.318] {Default Queue} wl_pointer#2121.motion(187310401, 29.00000000, 21.80078125) +[2618768.322] {Default Queue} wl_pointer#2153.motion(187310401, 29.00000000, 21.80078125) +[2618768.326] {Default Queue} wl_pointer#2185.motion(187310401, 29.00000000, 21.80078125) +[2618768.331] {Default Queue} wl_pointer#2217.motion(187310401, 29.00000000, 21.80078125) +[2618768.335] {Default Queue} wl_pointer#2249.motion(187310401, 29.00000000, 21.80078125) +[2618768.339] {Default Queue} wl_pointer#2281.motion(187310401, 29.00000000, 21.80078125) +[2618768.343] {Default Queue} wl_pointer#2313.motion(187310401, 29.00000000, 21.80078125) +[2618768.348] {Default Queue} wl_pointer#2345.motion(187310401, 29.00000000, 21.80078125) +[2618768.352] {Default Queue} wl_pointer#2377.motion(187310401, 29.00000000, 21.80078125) +[2618768.356] {Default Queue} wl_pointer#2409.motion(187310401, 29.00000000, 21.80078125) +[2618768.361] {Default Queue} wl_pointer#2441.motion(187310401, 29.00000000, 21.80078125) +[2618768.365] {Default Queue} wl_pointer#2473.motion(187310401, 29.00000000, 21.80078125) +[2618768.369] {Default Queue} wl_pointer#2498.motion(187310401, 29.00000000, 21.80078125) +[2618768.381] {Default Queue} -> wl_buffer#3684.destroy() +[2618768.387] {Default Queue} -> wl_buffer#3681.destroy() +[2618768.391] {Default Queue} -> wl_shm_pool#3682.destroy() +[2618768.395] {Default Queue} -> wl_shm_pool#3679.destroy() +[2618768.401] {Default Queue} -> wl_surface#3671.destroy() +[2618768.449] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#93, fd 583, 640) +[2618768.455] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 584, 640) +[2618768.463] {Default Queue} -> wl_shm_pool#93.create_buffer(new id wl_buffer#3683, 0, 10, 16, 40, 0) +[2618768.469] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) +[2618768.476] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#91) +[2618768.481] {Default Queue} -> wl_surface#91.attach(wl_buffer#3683, 0, 0) +[2618768.485] {Default Queue} -> wl_surface#91.commit() +[2618768.490] {Default Queue} -> wl_surface#91.attach(wl_buffer#3683, 0, 0) +[2618768.494] {Default Queue} -> wl_surface#91.commit() +[2618768.498] {Default Queue} wl_pointer#2537.motion(187310401, 29.00000000, 21.80078125) +[2618768.503] {Default Queue} wl_pointer#2569.motion(187310401, 29.00000000, 21.80078125) +[2618768.507] {Default Queue} wl_pointer#2601.motion(187310401, 29.00000000, 21.80078125) +[2618768.512] {Default Queue} wl_pointer#2633.motion(187310401, 29.00000000, 21.80078125) +[2618768.516] {Default Queue} wl_pointer#2665.motion(187310401, 29.00000000, 21.80078125) +[2618768.520] {Default Queue} wl_pointer#2697.motion(187310401, 29.00000000, 21.80078125) +[2618768.524] {Default Queue} wl_pointer#2729.motion(187310401, 29.00000000, 21.80078125) +[2618768.529] {Default Queue} wl_pointer#2761.motion(187310401, 29.00000000, 21.80078125) +[2618768.533] {Default Queue} wl_pointer#2793.motion(187310401, 29.00000000, 21.80078125) +[2618768.537] {Default Queue} wl_pointer#2825.motion(187310401, 29.00000000, 21.80078125) +[2618768.542] {Default Queue} wl_pointer#2857.motion(187310401, 29.00000000, 21.80078125) +[2618768.546] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) +[2618768.550] {Default Queue} -> wl_surface#2983.commit() +[2618769.617] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) +[2618769.623] {Default Queue} -> wl_surface#2983.commit() +[2618769.629] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) +[2618769.633] {Default Queue} -> wl_surface#2983.commit() +[2618769.830] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) +[2618769.836] {Default Queue} -> wl_surface#71.commit() +[2618770.911] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) +[2618770.917] {Default Queue} -> wl_surface#71.commit() +[2618770.950] {Default Queue} -> wl_region#95.subtract(0, 0, 596, 718) +[2618770.956] {Default Queue} -> wl_region#95.add(0, 0, 576, 669) +[2618770.960] {Default Queue} -> wl_surface#71.set_opaque_region(wl_region#96) +[2618770.965] {Default Queue} -> wl_surface#71.set_input_region(wl_region#95) +[2618771.021] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) +[2618771.027] {Default Queue} -> wl_surface#71.commit() +[2618771.059] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) +[2618771.065] {Default Queue} -> wl_surface#71.commit() +[2618771.099] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) +[2618771.105] {Default Queue} -> wl_surface#71.commit() +[2618771.245] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) +[2618771.252] {Default Queue} -> wl_surface#3.commit() +[2618771.409] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) +[2618771.415] {Default Queue} -> wl_surface#19.commit() +[2618772.323] {Default Queue} wl_pointer#2889.motion(187310401, 29.00000000, 21.80078125) +[2618772.333] {Default Queue} wl_pointer#2921.motion(187310401, 29.00000000, 21.80078125) +[2618772.338] {Default Queue} wl_pointer#2953.motion(187310401, 29.00000000, 21.80078125) +[2618772.342] {Default Queue} wl_pointer#2985.motion(187310401, 29.00000000, 21.80078125) +[2618772.347] {Default Queue} wl_pointer#3017.motion(187310401, 29.00000000, 21.80078125) +[2618772.351] {Default Queue} wl_pointer#3049.motion(187310401, 29.00000000, 21.80078125) +[2618772.355] {Default Queue} wl_pointer#3081.motion(187310401, 29.00000000, 21.80078125) +[2618772.360] {Default Queue} wl_pointer#3113.motion(187310401, 29.00000000, 21.80078125) +[2618772.364] {Default Queue} wl_pointer#3145.motion(187310401, 29.00000000, 21.80078125) +[2618772.368] {Default Queue} wl_pointer#3177.motion(187310401, 29.00000000, 21.80078125) +[2618772.379] {Default Queue} wl_pointer#3209.motion(187310401, 29.00000000, 21.80078125) +[2618772.386] {Default Queue} wl_pointer#3241.motion(187310401, 29.00000000, 21.80078125) +[2618772.390] {Default Queue} wl_pointer#3273.motion(187310401, 29.00000000, 21.80078125) +[2618772.395] {Default Queue} wl_pointer#3305.motion(187310401, 29.00000000, 21.80078125) +[2618772.399] {Default Queue} wl_pointer#3337.motion(187310401, 29.00000000, 21.80078125) +[2618772.403] {Default Queue} wl_pointer#3369.motion(187310401, 29.00000000, 21.80078125) +[2618772.407] {Default Queue} wl_pointer#3401.motion(187310401, 29.00000000, 21.80078125) +[2618772.412] {Default Queue} wl_pointer#3433.motion(187310401, 29.00000000, 21.80078125) +[2618772.417] {Default Queue} wl_pointer#3465.motion(187310401, 29.00000000, 21.80078125) +[2618772.421] {Default Queue} wl_pointer#3497.motion(187310401, 29.00000000, 21.80078125) +[2618772.426] {Default Queue} wl_pointer#3529.motion(187310401, 29.00000000, 21.80078125) +[2618772.430] {Default Queue} wl_pointer#3561.motion(187310401, 29.00000000, 21.80078125) +[2618772.434] {Default Queue} wl_pointer#3593.motion(187310401, 29.00000000, 21.80078125) +[2618772.439] {Default Queue} wl_pointer#3625.motion(187310401, 29.00000000, 21.80078125) +[2618772.443] {Default Queue} wl_pointer#3657.motion(187310401, 29.00000000, 21.80078125) +[2618772.447] {Default Queue} wl_pointer#3695.motion(187310401, 29.00000000, 21.80078125) +[2618772.451] {Default Queue} wl_pointer#24.motion(187310401, 29.00000000, 21.39843750) +[2618772.456] {Default Queue} wl_pointer#81.motion(187310401, 29.00000000, 21.39843750) +[2618772.461] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618772.466] {Default Queue} wl_pointer#105.motion(187310401, 29.00000000, 21.39843750) +[2618772.470] {Default Queue} wl_pointer#137.motion(187310401, 29.00000000, 21.39843750) +[2618772.474] {Default Queue} wl_pointer#169.motion(187310401, 29.00000000, 21.39843750) +[2618772.479] {Default Queue} wl_pointer#201.motion(187310401, 29.00000000, 21.39843750) +[2618772.483] {Default Queue} wl_pointer#233.motion(187310401, 29.00000000, 21.39843750) +[2618772.487] {Default Queue} wl_pointer#265.motion(187310401, 29.00000000, 21.39843750) +[2618772.491] {Default Queue} wl_pointer#297.motion(187310401, 29.00000000, 21.39843750) +[2618772.496] {Default Queue} wl_pointer#329.motion(187310401, 29.00000000, 21.39843750) +[2618772.500] {Default Queue} wl_pointer#361.motion(187310401, 29.00000000, 21.39843750) +[2618772.504] {Default Queue} wl_pointer#393.motion(187310401, 29.00000000, 21.39843750) +[2618772.509] {Default Queue} wl_pointer#425.motion(187310401, 29.00000000, 21.39843750) +[2618772.513] {Default Queue} wl_pointer#457.motion(187310401, 29.00000000, 21.39843750) +[2618772.517] {Default Queue} wl_pointer#489.motion(187310401, 29.00000000, 21.39843750) +[2618772.522] {Default Queue} wl_pointer#521.motion(187310401, 29.00000000, 21.39843750) +[2618772.526] {Default Queue} wl_pointer#553.motion(187310401, 29.00000000, 21.39843750) +[2618772.530] {Default Queue} wl_pointer#585.motion(187310401, 29.00000000, 21.39843750) +[2618772.535] {Default Queue} wl_pointer#617.motion(187310401, 29.00000000, 21.39843750) +[2618772.539] {Default Queue} wl_pointer#649.motion(187310401, 29.00000000, 21.39843750) +[2618772.543] {Default Queue} wl_pointer#681.motion(187310401, 29.00000000, 21.39843750) +[2618772.547] {Default Queue} wl_pointer#713.motion(187310401, 29.00000000, 21.39843750) +[2618772.552] {Default Queue} wl_pointer#745.motion(187310401, 29.00000000, 21.39843750) +[2618772.556] {Default Queue} wl_pointer#777.motion(187310401, 29.00000000, 21.39843750) +[2618772.560] {Default Queue} wl_pointer#809.motion(187310401, 29.00000000, 21.39843750) +[2618772.565] {Default Queue} wl_pointer#841.motion(187310401, 29.00000000, 21.39843750) +[2618772.569] {Default Queue} wl_pointer#873.motion(187310401, 29.00000000, 21.39843750) +[2618772.573] {Default Queue} wl_pointer#905.motion(187310401, 29.00000000, 21.39843750) +[2618772.577] {Default Queue} wl_pointer#937.motion(187310401, 29.00000000, 21.39843750) +[2618772.585] {Default Queue} wl_pointer#969.motion(187310401, 29.00000000, 21.39843750) +[2618772.590] {Default Queue} wl_pointer#1001.motion(187310401, 29.00000000, 21.39843750) +[2618772.595] {Default Queue} wl_pointer#1033.motion(187310401, 29.00000000, 21.39843750) +[2618772.599] {Default Queue} wl_pointer#1065.motion(187310401, 29.00000000, 21.39843750) +[2618772.603] {Default Queue} wl_pointer#1097.motion(187310401, 29.00000000, 21.39843750) +[2618772.608] {Default Queue} wl_pointer#1129.motion(187310401, 29.00000000, 21.39843750) +[2618772.612] {Default Queue} wl_pointer#1161.motion(187310401, 29.00000000, 21.39843750) +[2618772.616] {Default Queue} wl_pointer#1193.motion(187310401, 29.00000000, 21.39843750) +[2618772.621] {Default Queue} wl_pointer#1225.motion(187310401, 29.00000000, 21.39843750) +[2618772.625] {Default Queue} wl_pointer#1257.motion(187310401, 29.00000000, 21.39843750) +[2618772.629] {Default Queue} wl_pointer#1289.motion(187310401, 29.00000000, 21.39843750) +[2618772.633] {Default Queue} wl_pointer#1321.motion(187310401, 29.00000000, 21.39843750) +[2618772.638] {Default Queue} wl_pointer#1353.motion(187310401, 29.00000000, 21.39843750) +[2618772.642] {Default Queue} wl_pointer#1385.motion(187310401, 29.00000000, 21.39843750) +[2618772.646] {Default Queue} wl_pointer#1417.motion(187310401, 29.00000000, 21.39843750) +[2618772.651] {Default Queue} wl_pointer#1449.motion(187310401, 29.00000000, 21.39843750) +[2618772.655] {Default Queue} wl_pointer#1481.motion(187310401, 29.00000000, 21.39843750) +[2618772.659] {Default Queue} wl_pointer#1513.motion(187310401, 29.00000000, 21.39843750) +[2618772.664] {Default Queue} wl_pointer#1545.motion(187310401, 29.00000000, 21.39843750) +[2618772.668] {Default Queue} wl_pointer#1577.motion(187310401, 29.00000000, 21.39843750) +[2618772.672] {Default Queue} wl_pointer#1609.motion(187310401, 29.00000000, 21.39843750) +[2618772.677] {Default Queue} wl_pointer#1641.motion(187310401, 29.00000000, 21.39843750) +[2618772.681] {Default Queue} wl_pointer#1673.motion(187310401, 29.00000000, 21.39843750) +[2618772.685] {Default Queue} wl_pointer#1705.motion(187310401, 29.00000000, 21.39843750) +[2618772.690] {Default Queue} wl_pointer#1737.motion(187310401, 29.00000000, 21.39843750) +[2618772.694] {Default Queue} wl_pointer#1762.motion(187310401, 29.00000000, 21.39843750) +[2618772.698] {Default Queue} wl_pointer#1801.motion(187310401, 29.00000000, 21.39843750) +[2618772.703] {Default Queue} wl_pointer#1833.motion(187310401, 29.00000000, 21.39843750) +[2618772.707] {Default Queue} wl_pointer#1865.motion(187310401, 29.00000000, 21.39843750) +[2618772.711] {Default Queue} wl_pointer#1897.motion(187310401, 29.00000000, 21.39843750) +[2618772.715] {Default Queue} wl_pointer#1929.motion(187310401, 29.00000000, 21.39843750) +[2618772.720] {Default Queue} wl_pointer#1961.motion(187310401, 29.00000000, 21.39843750) +[2618772.724] {Default Queue} wl_pointer#1993.motion(187310401, 29.00000000, 21.39843750) +[2618772.729] {Default Queue} wl_pointer#2025.motion(187310401, 29.00000000, 21.39843750) +[2618772.733] {Default Queue} wl_pointer#2057.motion(187310401, 29.00000000, 21.39843750) +[2618772.738] {Default Queue} wl_pointer#2089.motion(187310401, 29.00000000, 21.39843750) +[2618772.742] {Default Queue} wl_pointer#2121.motion(187310401, 29.00000000, 21.39843750) +[2618772.746] {Default Queue} wl_pointer#2153.motion(187310401, 29.00000000, 21.39843750) +[2618772.750] {Default Queue} wl_pointer#2185.motion(187310401, 29.00000000, 21.39843750) +[2618772.755] {Default Queue} wl_pointer#2217.motion(187310401, 29.00000000, 21.39843750) +[2618772.759] {Default Queue} wl_pointer#2249.motion(187310401, 29.00000000, 21.39843750) +[2618772.763] {Default Queue} wl_pointer#2281.motion(187310401, 29.00000000, 21.39843750) +[2618772.768] {Default Queue} wl_pointer#2313.motion(187310401, 29.00000000, 21.39843750) +[2618772.773] {Default Queue} wl_pointer#2345.motion(187310401, 29.00000000, 21.39843750) +[2618772.778] {Default Queue} wl_pointer#2377.motion(187310401, 29.00000000, 21.39843750) +[2618772.783] {Default Queue} wl_pointer#2409.motion(187310401, 29.00000000, 21.39843750) +[2618772.793] {Default Queue} wl_pointer#2441.motion(187310401, 29.00000000, 21.39843750) +[2618772.800] {Default Queue} wl_pointer#2473.motion(187310401, 29.00000000, 21.39843750) +[2618772.806] {Default Queue} wl_pointer#2498.motion(187310401, 29.00000000, 21.39843750) +[2618772.822] {Default Queue} -> wl_buffer#3683.destroy() +[2618772.828] {Default Queue} -> wl_buffer#94.destroy() +[2618772.834] {Default Queue} -> wl_shm_pool#93.destroy() +[2618772.839] {Default Queue} -> wl_shm_pool#92.destroy() +[2618772.846] {Default Queue} -> wl_surface#91.destroy() +[2618772.897] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3485, fd 575, 640) +[2618772.904] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3486, fd 578, 640) +[2618772.908] {Default Queue} -> wl_shm_pool#3485.create_buffer(new id wl_buffer#3515, 0, 10, 16, 40, 0) +[2618772.913] {Default Queue} -> wl_shm_pool#3486.create_buffer(new id wl_buffer#3516, 0, 10, 16, 40, 0) +[2618772.921] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3483) +[2618772.925] {Default Queue} -> wl_surface#3483.attach(wl_buffer#3515, 0, 0) +[2618772.929] {Default Queue} -> wl_surface#3483.commit() +[2618772.935] {Default Queue} -> wl_surface#3483.attach(wl_buffer#3515, 0, 0) +[2618772.939] {Default Queue} -> wl_surface#3483.commit() +[2618772.943] {Default Queue} wl_pointer#2537.motion(187310401, 29.00000000, 21.39843750) +[2618772.948] {Default Queue} wl_pointer#2569.motion(187310401, 29.00000000, 21.39843750) +[2618772.953] {Default Queue} wl_pointer#2601.motion(187310401, 29.00000000, 21.39843750) +[2618772.957] {Default Queue} wl_pointer#2633.motion(187310401, 29.00000000, 21.39843750) +[2618772.961] {Default Queue} wl_pointer#2665.motion(187310401, 29.00000000, 21.39843750) +[2618772.966] {Default Queue} wl_pointer#2697.motion(187310401, 29.00000000, 21.39843750) +[2618772.970] {Default Queue} wl_pointer#2729.motion(187310401, 29.00000000, 21.39843750) +[2618772.974] {Default Queue} wl_pointer#2761.motion(187310401, 29.00000000, 21.39843750) +[2618772.979] {Default Queue} wl_pointer#2793.motion(187310401, 29.00000000, 21.39843750) +[2618772.983] {Default Queue} wl_pointer#2825.motion(187310401, 29.00000000, 21.39843750) +[2618772.988] {Default Queue} wl_pointer#2857.motion(187310401, 29.00000000, 21.39843750) +[2618772.992] {Default Queue} wl_pointer#2889.motion(187310401, 29.00000000, 21.39843750) +[2618772.996] {Default Queue} wl_pointer#2921.motion(187310401, 29.00000000, 21.39843750) +[2618773.001] {Default Queue} wl_pointer#2953.motion(187310401, 29.00000000, 21.39843750) +[2618773.005] {Default Queue} wl_pointer#2985.motion(187310401, 29.00000000, 21.39843750) +[2618773.009] {Default Queue} wl_pointer#3017.motion(187310401, 29.00000000, 21.39843750) +[2618773.013] {Default Queue} wl_pointer#3049.motion(187310401, 29.00000000, 21.39843750) +[2618773.018] {Default Queue} wl_pointer#3081.motion(187310401, 29.00000000, 21.39843750) +[2618773.022] {Default Queue} wl_pointer#3113.motion(187310401, 29.00000000, 21.39843750) +[2618773.026] {Default Queue} wl_pointer#3145.motion(187310401, 29.00000000, 21.39843750) +[2618773.031] {Default Queue} wl_pointer#3177.motion(187310401, 29.00000000, 21.39843750) +[2618773.035] {Default Queue} wl_pointer#3209.motion(187310401, 29.00000000, 21.39843750) +[2618773.040] {Default Queue} wl_pointer#3241.motion(187310401, 29.00000000, 21.39843750) +[2618773.044] {Default Queue} wl_pointer#3273.motion(187310401, 29.00000000, 21.39843750) +[2618773.048] {Default Queue} wl_pointer#3305.motion(187310401, 29.00000000, 21.39843750) +[2618773.053] {Default Queue} wl_pointer#3337.motion(187310401, 29.00000000, 21.39843750) +[2618773.057] {Default Queue} wl_pointer#3369.motion(187310401, 29.00000000, 21.39843750) +[2618773.062] {Default Queue} wl_pointer#3401.motion(187310401, 29.00000000, 21.39843750) +[2618773.066] {Default Queue} wl_pointer#3433.motion(187310401, 29.00000000, 21.39843750) +[2618773.071] {Default Queue} wl_pointer#3465.motion(187310401, 29.00000000, 21.39843750) +[2618773.076] {Default Queue} wl_pointer#3497.motion(187310401, 29.00000000, 21.39843750) +[2618773.085] {Default Queue} wl_pointer#3529.motion(187310401, 29.00000000, 21.39843750) +[2618773.092] {Default Queue} wl_pointer#3561.motion(187310401, 29.00000000, 21.39843750) +[2618773.096] {Default Queue} wl_pointer#3593.motion(187310401, 29.00000000, 21.39843750) +[2618773.101] {Default Queue} wl_pointer#3625.motion(187310401, 29.00000000, 21.39843750) +[2618773.105] {Default Queue} wl_pointer#3657.motion(187310401, 29.00000000, 21.39843750) +[2618773.109] {Default Queue} wl_pointer#3695.motion(187310401, 29.00000000, 21.39843750) +[2618775.092] {Default Queue} -> wl_surface#3.damage(0, 0, 616, 738) +[2618775.100] {Default Queue} -> wl_surface#3.damage(0, 0, 616, 738) +[2618775.149] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) +[2618775.155] {Default Queue} -> wl_surface#19.commit() +[2618775.233] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) +[2618775.240] {Default Queue} -> wl_surface#19.commit() +[2618775.286] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) +[2618775.292] {Default Queue} -> wl_surface#3.commit() +[2618775.329] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) +[2618775.335] {Default Queue} -> wl_surface#3.commit() +[2618775.367] {Default Queue} wl_pointer#24.motion(187310407, 29.00000000, 21.00000000) +[2618775.372] {Default Queue} wl_pointer#81.motion(187310407, 29.00000000, 21.00000000) +[2618775.378] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618775.382] {Default Queue} wl_pointer#105.motion(187310407, 29.00000000, 21.00000000) +[2618775.387] {Default Queue} wl_pointer#137.motion(187310407, 29.00000000, 21.00000000) +[2618775.391] {Default Queue} wl_pointer#169.motion(187310407, 29.00000000, 21.00000000) +[2618775.395] {Default Queue} wl_pointer#201.motion(187310407, 29.00000000, 21.00000000) +[2618775.399] {Default Queue} wl_pointer#233.motion(187310407, 29.00000000, 21.00000000) +[2618775.404] {Default Queue} wl_pointer#265.motion(187310407, 29.00000000, 21.00000000) +[2618775.408] {Default Queue} wl_pointer#297.motion(187310407, 29.00000000, 21.00000000) +[2618775.412] {Default Queue} wl_pointer#329.motion(187310407, 29.00000000, 21.00000000) +[2618775.417] {Default Queue} wl_pointer#361.motion(187310407, 29.00000000, 21.00000000) +[2618775.421] {Default Queue} wl_pointer#393.motion(187310407, 29.00000000, 21.00000000) +[2618775.425] {Default Queue} wl_pointer#425.motion(187310407, 29.00000000, 21.00000000) +[2618775.430] {Default Queue} wl_pointer#457.motion(187310407, 29.00000000, 21.00000000) +[2618775.434] {Default Queue} wl_pointer#489.motion(187310407, 29.00000000, 21.00000000) +[2618775.438] {Default Queue} wl_pointer#521.motion(187310407, 29.00000000, 21.00000000) +[2618775.442] {Default Queue} wl_pointer#553.motion(187310407, 29.00000000, 21.00000000) +[2618775.447] {Default Queue} wl_pointer#585.motion(187310407, 29.00000000, 21.00000000) +[2618775.451] {Default Queue} wl_pointer#617.motion(187310407, 29.00000000, 21.00000000) +[2618775.455] {Default Queue} wl_pointer#649.motion(187310407, 29.00000000, 21.00000000) +[2618775.460] {Default Queue} wl_pointer#681.motion(187310407, 29.00000000, 21.00000000) +[2618775.464] {Default Queue} wl_pointer#713.motion(187310407, 29.00000000, 21.00000000) +[2618775.468] {Default Queue} wl_pointer#745.motion(187310407, 29.00000000, 21.00000000) +[2618775.473] {Default Queue} wl_pointer#777.motion(187310407, 29.00000000, 21.00000000) +[2618775.477] {Default Queue} wl_pointer#809.motion(187310407, 29.00000000, 21.00000000) +[2618775.481] {Default Queue} wl_pointer#841.motion(187310407, 29.00000000, 21.00000000) +[2618775.485] {Default Queue} wl_pointer#873.motion(187310407, 29.00000000, 21.00000000) +[2618775.490] {Default Queue} wl_pointer#905.motion(187310407, 29.00000000, 21.00000000) +[2618775.494] {Default Queue} wl_pointer#937.motion(187310407, 29.00000000, 21.00000000) +[2618775.498] {Default Queue} wl_pointer#969.motion(187310407, 29.00000000, 21.00000000) +[2618775.502] {Default Queue} wl_pointer#1001.motion(187310407, 29.00000000, 21.00000000) +[2618775.512] {Default Queue} wl_pointer#1033.motion(187310407, 29.00000000, 21.00000000) +[2618775.518] {Default Queue} wl_pointer#1065.motion(187310407, 29.00000000, 21.00000000) +[2618775.522] {Default Queue} wl_pointer#1097.motion(187310407, 29.00000000, 21.00000000) +[2618775.527] {Default Queue} wl_pointer#1129.motion(187310407, 29.00000000, 21.00000000) +[2618775.531] {Default Queue} wl_pointer#1161.motion(187310407, 29.00000000, 21.00000000) +[2618775.535] {Default Queue} wl_pointer#1193.motion(187310407, 29.00000000, 21.00000000) +[2618775.540] {Default Queue} wl_pointer#1225.motion(187310407, 29.00000000, 21.00000000) +[2618775.544] {Default Queue} wl_pointer#1257.motion(187310407, 29.00000000, 21.00000000) +[2618775.548] {Default Queue} wl_pointer#1289.motion(187310407, 29.00000000, 21.00000000) +[2618775.552] {Default Queue} wl_pointer#1321.motion(187310407, 29.00000000, 21.00000000) +[2618775.557] {Default Queue} wl_pointer#1353.motion(187310407, 29.00000000, 21.00000000) +[2618775.561] {Default Queue} wl_pointer#1385.motion(187310407, 29.00000000, 21.00000000) +[2618775.565] {Default Queue} wl_pointer#1417.motion(187310407, 29.00000000, 21.00000000) +[2618775.570] {Default Queue} wl_pointer#1449.motion(187310407, 29.00000000, 21.00000000) +[2618775.574] {Default Queue} wl_pointer#1481.motion(187310407, 29.00000000, 21.00000000) +[2618775.578] {Default Queue} wl_pointer#1513.motion(187310407, 29.00000000, 21.00000000) +[2618775.583] {Default Queue} wl_pointer#1545.motion(187310407, 29.00000000, 21.00000000) +[2618775.587] {Default Queue} wl_pointer#1577.motion(187310407, 29.00000000, 21.00000000) +[2618775.591] {Default Queue} wl_pointer#1609.motion(187310407, 29.00000000, 21.00000000) +[2618775.595] {Default Queue} wl_pointer#1641.motion(187310407, 29.00000000, 21.00000000) +[2618775.600] {Default Queue} wl_pointer#1673.motion(187310407, 29.00000000, 21.00000000) +[2618775.604] {Default Queue} wl_pointer#1705.motion(187310407, 29.00000000, 21.00000000) +[2618775.608] {Default Queue} wl_pointer#1737.motion(187310407, 29.00000000, 21.00000000) +[2618775.613] {Default Queue} wl_pointer#1762.motion(187310407, 29.00000000, 21.00000000) +[2618775.617] {Default Queue} wl_pointer#1801.motion(187310407, 29.00000000, 21.00000000) +[2618775.621] {Default Queue} wl_pointer#1833.motion(187310407, 29.00000000, 21.00000000) +[2618775.625] {Default Queue} wl_pointer#1865.motion(187310407, 29.00000000, 21.00000000) +[2618775.630] {Default Queue} wl_pointer#1897.motion(187310407, 29.00000000, 21.00000000) +[2618775.634] {Default Queue} wl_pointer#1929.motion(187310407, 29.00000000, 21.00000000) +[2618775.638] {Default Queue} wl_pointer#1961.motion(187310407, 29.00000000, 21.00000000) +[2618775.642] {Default Queue} wl_pointer#1993.motion(187310407, 29.00000000, 21.00000000) +[2618775.647] {Default Queue} wl_pointer#2025.motion(187310407, 29.00000000, 21.00000000) +[2618775.651] {Default Queue} wl_pointer#2057.motion(187310407, 29.00000000, 21.00000000) +[2618775.655] {Default Queue} wl_pointer#2089.motion(187310407, 29.00000000, 21.00000000) +[2618775.659] {Default Queue} wl_pointer#2121.motion(187310407, 29.00000000, 21.00000000) +[2618775.664] {Default Queue} wl_pointer#2153.motion(187310407, 29.00000000, 21.00000000) +[2618775.668] {Default Queue} wl_pointer#2185.motion(187310407, 29.00000000, 21.00000000) +[2618775.672] {Default Queue} wl_pointer#2217.motion(187310407, 29.00000000, 21.00000000) +[2618775.677] {Default Queue} wl_pointer#2249.motion(187310407, 29.00000000, 21.00000000) +[2618775.681] {Default Queue} wl_pointer#2281.motion(187310407, 29.00000000, 21.00000000) +[2618775.685] {Default Queue} wl_pointer#2313.motion(187310407, 29.00000000, 21.00000000) +[2618775.690] {Default Queue} wl_pointer#2345.motion(187310407, 29.00000000, 21.00000000) +[2618775.694] {Default Queue} wl_pointer#2377.motion(187310407, 29.00000000, 21.00000000) +[2618775.698] {Default Queue} wl_pointer#2409.motion(187310407, 29.00000000, 21.00000000) +[2618775.703] {Default Queue} wl_pointer#2441.motion(187310407, 29.00000000, 21.00000000) +[2618775.707] {Default Queue} wl_pointer#2473.motion(187310407, 29.00000000, 21.00000000) +[2618775.714] {Default Queue} wl_pointer#2498.motion(187310407, 29.00000000, 21.00000000) +[2618775.728] {Default Queue} -> wl_buffer#3515.destroy() +[2618775.733] {Default Queue} -> wl_buffer#3516.destroy() +[2618775.737] {Default Queue} -> wl_shm_pool#3485.destroy() +[2618775.741] {Default Queue} -> wl_shm_pool#3486.destroy() +[2618775.746] {Default Queue} -> wl_surface#3483.destroy() +[2618775.784] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3674, fd 581, 640) +[2618775.790] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3676, fd 582, 640) +[2618775.794] {Default Queue} -> wl_shm_pool#3674.create_buffer(new id wl_buffer#3675, 0, 10, 16, 40, 0) +[2618775.799] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 10, 16, 40, 0) +[2618775.806] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3677) +[2618775.810] {Default Queue} -> wl_surface#3677.attach(wl_buffer#3675, 0, 0) +[2618775.815] {Default Queue} -> wl_surface#3677.commit() +[2618775.820] {Default Queue} -> wl_surface#3677.attach(wl_buffer#3675, 0, 0) +[2618775.824] {Default Queue} -> wl_surface#3677.commit() +[2618775.828] {Default Queue} wl_pointer#2537.motion(187310407, 29.00000000, 21.00000000) +[2618775.833] {Default Queue} wl_pointer#2569.motion(187310407, 29.00000000, 21.00000000) +[2618775.837] {Default Queue} wl_pointer#2601.motion(187310407, 29.00000000, 21.00000000) +[2618775.841] {Default Queue} wl_pointer#2633.motion(187310407, 29.00000000, 21.00000000) +[2618775.846] {Default Queue} wl_pointer#2665.motion(187310407, 29.00000000, 21.00000000) +[2618775.850] {Default Queue} wl_pointer#2697.motion(187310407, 29.00000000, 21.00000000) +[2618775.854] {Default Queue} wl_pointer#2729.motion(187310407, 29.00000000, 21.00000000) +[2618775.859] {Default Queue} wl_pointer#2761.motion(187310407, 29.00000000, 21.00000000) +[2618775.868] {Default Queue} wl_pointer#2793.motion(187310407, 29.00000000, 21.00000000) +[2618775.872] {Default Queue} wl_pointer#2825.motion(187310407, 29.00000000, 21.00000000) +[2618775.877] {Default Queue} wl_pointer#2857.motion(187310407, 29.00000000, 21.00000000) +[2618775.881] {Default Queue} wl_pointer#2889.motion(187310407, 29.00000000, 21.00000000) +[2618775.885] {Default Queue} wl_pointer#2921.motion(187310407, 29.00000000, 21.00000000) +[2618775.890] {Default Queue} wl_pointer#2953.motion(187310407, 29.00000000, 21.00000000) +[2618775.894] {Default Queue} wl_pointer#2985.motion(187310407, 29.00000000, 21.00000000) +[2618775.898] {Default Queue} wl_pointer#3017.motion(187310407, 29.00000000, 21.00000000) +[2618775.903] {Default Queue} wl_pointer#3049.motion(187310407, 29.00000000, 21.00000000) +[2618775.907] {Default Queue} wl_pointer#3081.motion(187310407, 29.00000000, 21.00000000) +[2618775.911] {Default Queue} wl_pointer#3113.motion(187310407, 29.00000000, 21.00000000) +[2618775.915] {Default Queue} wl_pointer#3145.motion(187310407, 29.00000000, 21.00000000) +[2618775.920] {Default Queue} wl_pointer#3177.motion(187310407, 29.00000000, 21.00000000) +[2618775.924] {Default Queue} wl_pointer#3209.motion(187310407, 29.00000000, 21.00000000) +[2618775.929] {Default Queue} wl_pointer#3241.motion(187310407, 29.00000000, 21.00000000) +[2618775.933] {Default Queue} wl_pointer#3273.motion(187310407, 29.00000000, 21.00000000) +[2618775.937] {Default Queue} wl_pointer#3305.motion(187310407, 29.00000000, 21.00000000) +[2618775.941] {Default Queue} wl_pointer#3337.motion(187310407, 29.00000000, 21.00000000) +[2618775.946] {Default Queue} wl_pointer#3369.motion(187310407, 29.00000000, 21.00000000) +[2618775.950] {Default Queue} wl_pointer#3401.motion(187310407, 29.00000000, 21.00000000) +[2618775.954] {Default Queue} wl_pointer#3433.motion(187310407, 29.00000000, 21.00000000) +[2618775.959] {Default Queue} wl_pointer#3465.motion(187310407, 29.00000000, 21.00000000) +[2618775.963] {Default Queue} wl_pointer#3497.motion(187310407, 29.00000000, 21.00000000) +[2618775.968] {Default Queue} wl_pointer#3529.motion(187310407, 29.00000000, 21.00000000) +[2618775.975] {Default Queue} wl_pointer#3561.motion(187310407, 29.00000000, 21.00000000) +[2618775.981] {Default Queue} wl_pointer#3593.motion(187310407, 29.00000000, 21.00000000) +[2618775.986] {Default Queue} wl_pointer#3625.motion(187310407, 29.00000000, 21.00000000) +[2618775.990] {Default Queue} wl_pointer#3657.motion(187310407, 29.00000000, 21.00000000) +[2618775.994] {Default Queue} wl_pointer#3695.motion(187310407, 29.00000000, 21.00000000) +[2618775.998] {Default Queue} wl_pointer#24.motion(187310407, 29.00000000, 20.60156250) +[2618776.003] {Default Queue} wl_pointer#81.motion(187310407, 29.00000000, 20.60156250) +[2618776.008] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618776.012] {Default Queue} wl_pointer#105.motion(187310407, 29.00000000, 20.60156250) +[2618776.017] {Default Queue} wl_pointer#137.motion(187310407, 29.00000000, 20.60156250) +[2618776.021] {Default Queue} wl_pointer#169.motion(187310407, 29.00000000, 20.60156250) +[2618776.025] {Default Queue} wl_pointer#201.motion(187310407, 29.00000000, 20.60156250) +[2618776.029] {Default Queue} wl_pointer#233.motion(187310407, 29.00000000, 20.60156250) +[2618776.034] {Default Queue} wl_pointer#265.motion(187310407, 29.00000000, 20.60156250) +[2618776.038] {Default Queue} wl_pointer#297.motion(187310407, 29.00000000, 20.60156250) +[2618776.042] {Default Queue} wl_pointer#329.motion(187310407, 29.00000000, 20.60156250) +[2618776.047] {Default Queue} wl_pointer#361.motion(187310407, 29.00000000, 20.60156250) +[2618776.051] {Default Queue} wl_pointer#393.motion(187310407, 29.00000000, 20.60156250) +[2618776.055] {Default Queue} wl_pointer#425.motion(187310407, 29.00000000, 20.60156250) +[2618776.060] {Default Queue} wl_pointer#457.motion(187310407, 29.00000000, 20.60156250) +[2618776.064] {Default Queue} wl_pointer#489.motion(187310407, 29.00000000, 20.60156250) +[2618776.068] {Default Queue} wl_pointer#521.motion(187310407, 29.00000000, 20.60156250) +[2618776.072] {Default Queue} wl_pointer#553.motion(187310407, 29.00000000, 20.60156250) +[2618776.077] {Default Queue} wl_pointer#585.motion(187310407, 29.00000000, 20.60156250) +[2618776.081] {Default Queue} wl_pointer#617.motion(187310407, 29.00000000, 20.60156250) +[2618776.085] {Default Queue} wl_pointer#649.motion(187310407, 29.00000000, 20.60156250) +[2618776.090] {Default Queue} wl_pointer#681.motion(187310407, 29.00000000, 20.60156250) +[2618776.094] {Default Queue} wl_pointer#713.motion(187310407, 29.00000000, 20.60156250) +[2618776.098] {Default Queue} wl_pointer#745.motion(187310407, 29.00000000, 20.60156250) +[2618776.102] {Default Queue} wl_pointer#777.motion(187310407, 29.00000000, 20.60156250) +[2618776.107] {Default Queue} wl_pointer#809.motion(187310407, 29.00000000, 20.60156250) +[2618776.111] {Default Queue} wl_pointer#841.motion(187310407, 29.00000000, 20.60156250) +[2618776.115] {Default Queue} wl_pointer#873.motion(187310407, 29.00000000, 20.60156250) +[2618776.120] {Default Queue} wl_pointer#905.motion(187310407, 29.00000000, 20.60156250) +[2618776.124] {Default Queue} wl_pointer#937.motion(187310407, 29.00000000, 20.60156250) +[2618776.128] {Default Queue} wl_pointer#969.motion(187310407, 29.00000000, 20.60156250) +[2618776.132] {Default Queue} wl_pointer#1001.motion(187310407, 29.00000000, 20.60156250) +[2618776.137] {Default Queue} wl_pointer#1033.motion(187310407, 29.00000000, 20.60156250) +[2618776.141] {Default Queue} wl_pointer#1065.motion(187310407, 29.00000000, 20.60156250) +[2618776.145] {Default Queue} wl_pointer#1097.motion(187310407, 29.00000000, 20.60156250) +[2618776.150] {Default Queue} wl_pointer#1129.motion(187310407, 29.00000000, 20.60156250) +[2618776.154] {Default Queue} wl_pointer#1161.motion(187310407, 29.00000000, 20.60156250) +[2618776.158] {Default Queue} wl_pointer#1193.motion(187310407, 29.00000000, 20.60156250) +[2618776.162] {Default Queue} wl_pointer#1225.motion(187310407, 29.00000000, 20.60156250) +[2618776.167] {Default Queue} wl_pointer#1257.motion(187310407, 29.00000000, 20.60156250) +[2618776.171] {Default Queue} wl_pointer#1289.motion(187310407, 29.00000000, 20.60156250) +[2618776.178] {Default Queue} wl_pointer#1321.motion(187310407, 29.00000000, 20.60156250) +[2618776.184] {Default Queue} wl_pointer#1353.motion(187310407, 29.00000000, 20.60156250) +[2618776.188] {Default Queue} wl_pointer#1385.motion(187310407, 29.00000000, 20.60156250) +[2618776.193] {Default Queue} wl_pointer#1417.motion(187310407, 29.00000000, 20.60156250) +[2618776.197] {Default Queue} wl_pointer#1449.motion(187310407, 29.00000000, 20.60156250) +[2618776.201] {Default Queue} wl_pointer#1481.motion(187310407, 29.00000000, 20.60156250) +[2618776.205] {Default Queue} wl_pointer#1513.motion(187310407, 29.00000000, 20.60156250) +[2618776.210] {Default Queue} wl_pointer#1545.motion(187310407, 29.00000000, 20.60156250) +[2618776.214] {Default Queue} wl_pointer#1577.motion(187310407, 29.00000000, 20.60156250) +[2618776.218] {Default Queue} wl_pointer#1609.motion(187310407, 29.00000000, 20.60156250) +[2618776.222] {Default Queue} wl_pointer#1641.motion(187310407, 29.00000000, 20.60156250) +[2618776.227] {Default Queue} wl_pointer#1673.motion(187310407, 29.00000000, 20.60156250) +[2618776.231] {Default Queue} wl_pointer#1705.motion(187310407, 29.00000000, 20.60156250) +[2618776.235] {Default Queue} wl_pointer#1737.motion(187310407, 29.00000000, 20.60156250) +[2618776.240] {Default Queue} wl_pointer#1762.motion(187310407, 29.00000000, 20.60156250) +[2618776.244] {Default Queue} wl_pointer#1801.motion(187310407, 29.00000000, 20.60156250) +[2618776.248] {Default Queue} wl_pointer#1833.motion(187310407, 29.00000000, 20.60156250) +[2618776.252] {Default Queue} wl_pointer#1865.motion(187310407, 29.00000000, 20.60156250) +[2618776.257] {Default Queue} wl_pointer#1897.motion(187310407, 29.00000000, 20.60156250) +[2618776.261] {Default Queue} wl_pointer#1929.motion(187310407, 29.00000000, 20.60156250) +[2618776.265] {Default Queue} wl_pointer#1961.motion(187310407, 29.00000000, 20.60156250) +[2618776.270] {Default Queue} wl_pointer#1993.motion(187310407, 29.00000000, 20.60156250) +[2618776.274] {Default Queue} wl_pointer#2025.motion(187310407, 29.00000000, 20.60156250) +[2618776.278] {Default Queue} wl_pointer#2057.motion(187310407, 29.00000000, 20.60156250) +[2618776.283] {Default Queue} wl_pointer#2089.motion(187310407, 29.00000000, 20.60156250) +[2618776.287] {Default Queue} wl_pointer#2121.motion(187310407, 29.00000000, 20.60156250) +[2618776.291] {Default Queue} wl_pointer#2153.motion(187310407, 29.00000000, 20.60156250) +[2618776.295] {Default Queue} wl_pointer#2185.motion(187310407, 29.00000000, 20.60156250) +[2618776.300] {Default Queue} wl_pointer#2217.motion(187310407, 29.00000000, 20.60156250) +[2618776.304] {Default Queue} wl_pointer#2249.motion(187310407, 29.00000000, 20.60156250) +[2618776.308] {Default Queue} wl_pointer#2281.motion(187310407, 29.00000000, 20.60156250) +[2618776.313] {Default Queue} wl_pointer#2313.motion(187310407, 29.00000000, 20.60156250) +[2618776.317] {Default Queue} wl_pointer#2345.motion(187310407, 29.00000000, 20.60156250) +[2618776.322] {Default Queue} wl_pointer#2377.motion(187310407, 29.00000000, 20.60156250) +[2618776.326] {Default Queue} wl_pointer#2409.motion(187310407, 29.00000000, 20.60156250) +[2618776.330] {Default Queue} wl_pointer#2441.motion(187310407, 29.00000000, 20.60156250) +[2618776.334] {Default Queue} wl_pointer#2473.motion(187310407, 29.00000000, 20.60156250) +[2618776.339] {Default Queue} wl_pointer#2498.motion(187310407, 29.00000000, 20.60156250) +[2618776.349] {Default Queue} -> wl_buffer#3675.destroy() +[2618776.356] {Default Queue} -> wl_buffer#3678.destroy() +[2618776.360] {Default Queue} -> wl_shm_pool#3674.destroy() +[2618776.364] {Default Queue} -> wl_shm_pool#3676.destroy() +[2618776.368] {Default Queue} -> wl_surface#3677.destroy() +[2618776.399] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2506, fd 583, 640) +[2618776.405] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2503, fd 584, 640) +[2618776.410] {Default Queue} -> wl_shm_pool#2506.create_buffer(new id wl_buffer#2502, 0, 10, 16, 40, 0) +[2618776.414] {Default Queue} -> wl_shm_pool#2503.create_buffer(new id wl_buffer#2505, 0, 10, 16, 40, 0) +[2618776.427] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#2504) +[2618776.435] {Default Queue} -> wl_surface#2504.attach(wl_buffer#2502, 0, 0) +[2618776.441] {Default Queue} -> wl_surface#2504.commit() +[2618776.446] {Default Queue} -> wl_surface#2504.attach(wl_buffer#2502, 0, 0) +[2618776.451] {Default Queue} -> wl_surface#2504.commit() +[2618776.455] {Default Queue} wl_pointer#2537.motion(187310407, 29.00000000, 20.60156250) +[2618776.460] {Default Queue} wl_pointer#2569.motion(187310407, 29.00000000, 20.60156250) +[2618776.465] {Default Queue} wl_pointer#2601.motion(187310407, 29.00000000, 20.60156250) +[2618776.469] {Default Queue} wl_pointer#2633.motion(187310407, 29.00000000, 20.60156250) +[2618776.473] {Default Queue} wl_pointer#2665.motion(187310407, 29.00000000, 20.60156250) +[2618776.478] {Default Queue} wl_pointer#2697.motion(187310407, 29.00000000, 20.60156250) +[2618776.482] {Default Queue} wl_pointer#2729.motion(187310407, 29.00000000, 20.60156250) +[2618776.486] {Default Queue} wl_pointer#2761.motion(187310407, 29.00000000, 20.60156250) +[2618776.490] {Default Queue} wl_pointer#2793.motion(187310407, 29.00000000, 20.60156250) +[2618776.495] {Default Queue} wl_pointer#2825.motion(187310407, 29.00000000, 20.60156250) +[2618776.499] {Default Queue} wl_pointer#2857.motion(187310407, 29.00000000, 20.60156250) +[2618776.539] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) +[2618776.546] {Default Queue} -> wl_surface#3.commit() +[2618776.587] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) +[2618776.594] {Default Queue} -> wl_surface#19.commit() +[2618776.640] {Display Queue} wl_display#1.delete_id(3452) +[2618776.646] {Display Queue} wl_display#1.delete_id(3451) +[2618776.650] {Display Queue} wl_display#1.delete_id(3518) +[2618776.654] {Display Queue} wl_display#1.delete_id(3517) +[2618776.658] {Display Queue} wl_display#1.delete_id(3454) +[2618776.662] {Display Queue} wl_display#1.delete_id(3292) +[2618776.665] {Display Queue} wl_display#1.delete_id(3293) +[2618776.669] {Display Queue} wl_display#1.delete_id(3484) +[2618776.673] {Display Queue} wl_display#1.delete_id(3291) +[2618776.677] {Display Queue} wl_display#1.delete_id(3294) +[2618776.681] {Display Queue} wl_display#1.delete_id(3684) +[2618776.685] {Display Queue} wl_display#1.delete_id(3681) +[2618776.689] {Display Queue} wl_display#1.delete_id(3682) +[2618776.693] {Display Queue} wl_display#1.delete_id(3679) +[2618776.697] {Display Queue} wl_display#1.delete_id(3671) +[2618776.701] {Default Queue} wl_pointer#2889.motion(187310407, 29.00000000, 20.60156250) +[2618776.705] {Default Queue} wl_pointer#2921.motion(187310407, 29.00000000, 20.60156250) +[2618776.709] {Default Queue} wl_pointer#2953.motion(187310407, 29.00000000, 20.60156250) +[2618776.714] {Default Queue} wl_pointer#2985.motion(187310407, 29.00000000, 20.60156250) +[2618776.718] {Default Queue} wl_pointer#3017.motion(187310407, 29.00000000, 20.60156250) +[2618776.722] {Default Queue} wl_pointer#3049.motion(187310407, 29.00000000, 20.60156250) +[2618776.727] {Default Queue} wl_pointer#3081.motion(187310407, 29.00000000, 20.60156250) +[2618776.731] {Default Queue} wl_pointer#3113.motion(187310407, 29.00000000, 20.60156250) +[2618776.735] {Default Queue} wl_pointer#3145.motion(187310407, 29.00000000, 20.60156250) +[2618776.740] {Default Queue} wl_pointer#3177.motion(187310407, 29.00000000, 20.60156250) +[2618776.744] {Default Queue} wl_pointer#3209.motion(187310407, 29.00000000, 20.60156250) +[2618776.748] {Default Queue} wl_pointer#3241.motion(187310407, 29.00000000, 20.60156250) +[2618776.753] {Default Queue} wl_pointer#3273.motion(187310407, 29.00000000, 20.60156250) +[2618776.757] {Default Queue} wl_pointer#3305.motion(187310407, 29.00000000, 20.60156250) +[2618776.761] {Default Queue} wl_pointer#3337.motion(187310407, 29.00000000, 20.60156250) +[2618776.765] {Default Queue} wl_pointer#3369.motion(187310407, 29.00000000, 20.60156250) +[2618776.770] {Default Queue} wl_pointer#3401.motion(187310407, 29.00000000, 20.60156250) +[2618776.774] {Default Queue} wl_pointer#3433.motion(187310407, 29.00000000, 20.60156250) +[2618776.785] {Default Queue} wl_pointer#3465.motion(187310407, 29.00000000, 20.60156250) +[2618776.791] {Default Queue} wl_pointer#3497.motion(187310407, 29.00000000, 20.60156250) +[2618776.796] {Default Queue} wl_pointer#3529.motion(187310407, 29.00000000, 20.60156250) +[2618776.800] {Default Queue} wl_pointer#3561.motion(187310407, 29.00000000, 20.60156250) +[2618776.804] {Default Queue} wl_pointer#3593.motion(187310407, 29.00000000, 20.60156250) +[2618776.809] {Default Queue} wl_pointer#3625.motion(187310407, 29.00000000, 20.60156250) +[2618776.813] {Default Queue} wl_pointer#3657.motion(187310407, 29.00000000, 20.60156250) +[2618776.817] {Default Queue} wl_pointer#3695.motion(187310407, 29.00000000, 20.60156250) +[2618776.821] {Default Queue} wl_pointer#24.motion(187310407, 29.00000000, 20.19921875) +[2618776.825] {Default Queue} wl_pointer#81.motion(187310407, 29.00000000, 20.19921875) +[2618776.831] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618776.835] {Default Queue} wl_pointer#105.motion(187310407, 29.00000000, 20.19921875) +[2618776.839] {Default Queue} wl_pointer#137.motion(187310407, 29.00000000, 20.19921875) +[2618776.843] {Default Queue} wl_pointer#169.motion(187310407, 29.00000000, 20.19921875) +[2618776.848] {Default Queue} wl_pointer#201.motion(187310407, 29.00000000, 20.19921875) +[2618776.852] {Default Queue} wl_pointer#233.motion(187310407, 29.00000000, 20.19921875) +[2618776.856] {Default Queue} wl_pointer#265.motion(187310407, 29.00000000, 20.19921875) +[2618776.868] {Default Queue} wl_pointer#297.motion(187310407, 29.00000000, 20.19921875) +[2618776.874] {Default Queue} wl_pointer#329.motion(187310407, 29.00000000, 20.19921875) +[2618776.878] {Default Queue} wl_pointer#361.motion(187310407, 29.00000000, 20.19921875) +[2618776.883] {Default Queue} wl_pointer#393.motion(187310407, 29.00000000, 20.19921875) +[2618776.887] {Default Queue} wl_pointer#425.motion(187310407, 29.00000000, 20.19921875) +[2618776.891] {Default Queue} wl_pointer#457.motion(187310407, 29.00000000, 20.19921875) +[2618776.895] {Default Queue} wl_pointer#489.motion(187310407, 29.00000000, 20.19921875) +[2618776.900] {Default Queue} wl_pointer#521.motion(187310407, 29.00000000, 20.19921875) +[2618776.904] {Default Queue} wl_pointer#553.motion(187310407, 29.00000000, 20.19921875) +[2618776.908] {Default Queue} wl_pointer#585.motion(187310407, 29.00000000, 20.19921875) +[2618776.913] {Default Queue} wl_pointer#617.motion(187310407, 29.00000000, 20.19921875) +[2618776.917] {Default Queue} wl_pointer#649.motion(187310407, 29.00000000, 20.19921875) +[2618776.921] {Default Queue} wl_pointer#681.motion(187310407, 29.00000000, 20.19921875) +[2618776.925] {Default Queue} wl_pointer#713.motion(187310407, 29.00000000, 20.19921875) +[2618776.930] {Default Queue} wl_pointer#745.motion(187310407, 29.00000000, 20.19921875) +[2618776.934] {Default Queue} wl_pointer#777.motion(187310407, 29.00000000, 20.19921875) +[2618776.939] {Default Queue} wl_pointer#809.motion(187310407, 29.00000000, 20.19921875) +[2618776.943] {Default Queue} wl_pointer#841.motion(187310407, 29.00000000, 20.19921875) +[2618776.947] {Default Queue} wl_pointer#873.motion(187310407, 29.00000000, 20.19921875) +[2618776.951] {Default Queue} wl_pointer#905.motion(187310407, 29.00000000, 20.19921875) +[2618776.956] {Default Queue} wl_pointer#937.motion(187310407, 29.00000000, 20.19921875) +[2618776.960] {Default Queue} wl_pointer#969.motion(187310407, 29.00000000, 20.19921875) +[2618776.964] {Default Queue} wl_pointer#1001.motion(187310407, 29.00000000, 20.19921875) +[2618776.968] {Default Queue} wl_pointer#1033.motion(187310407, 29.00000000, 20.19921875) +[2618776.973] {Default Queue} wl_pointer#1065.motion(187310407, 29.00000000, 20.19921875) +[2618776.977] {Default Queue} wl_pointer#1097.motion(187310407, 29.00000000, 20.19921875) +[2618776.981] {Default Queue} wl_pointer#1129.motion(187310407, 29.00000000, 20.19921875) +[2618776.985] {Default Queue} wl_pointer#1161.motion(187310407, 29.00000000, 20.19921875) +[2618776.993] {Default Queue} wl_pointer#1193.motion(187310407, 29.00000000, 20.19921875) +[2618776.999] {Default Queue} wl_pointer#1225.motion(187310407, 29.00000000, 20.19921875) +[2618777.003] {Default Queue} wl_pointer#1257.motion(187310407, 29.00000000, 20.19921875) +[2618777.007] {Default Queue} wl_pointer#1289.motion(187310407, 29.00000000, 20.19921875) +[2618777.012] {Default Queue} wl_pointer#1321.motion(187310407, 29.00000000, 20.19921875) +[2618777.016] {Default Queue} wl_pointer#1353.motion(187310407, 29.00000000, 20.19921875) +[2618777.020] {Default Queue} wl_pointer#1385.motion(187310407, 29.00000000, 20.19921875) +[2618777.024] {Default Queue} wl_pointer#1417.motion(187310407, 29.00000000, 20.19921875) +[2618777.029] {Default Queue} wl_pointer#1449.motion(187310407, 29.00000000, 20.19921875) +[2618777.033] {Default Queue} wl_pointer#1481.motion(187310407, 29.00000000, 20.19921875) +[2618777.037] {Default Queue} wl_pointer#1513.motion(187310407, 29.00000000, 20.19921875) +[2618777.041] {Default Queue} wl_pointer#1545.motion(187310407, 29.00000000, 20.19921875) +[2618777.046] {Default Queue} wl_pointer#1577.motion(187310407, 29.00000000, 20.19921875) +[2618777.050] {Default Queue} wl_pointer#1609.motion(187310407, 29.00000000, 20.19921875) +[2618777.054] {Default Queue} wl_pointer#1641.motion(187310407, 29.00000000, 20.19921875) +[2618777.058] {Default Queue} wl_pointer#1673.motion(187310407, 29.00000000, 20.19921875) +[2618777.063] {Default Queue} wl_pointer#1705.motion(187310407, 29.00000000, 20.19921875) +[2618777.067] {Default Queue} wl_pointer#1737.motion(187310407, 29.00000000, 20.19921875) +[2618777.071] {Default Queue} wl_pointer#1762.motion(187310407, 29.00000000, 20.19921875) +[2618777.076] {Default Queue} wl_pointer#1801.motion(187310407, 29.00000000, 20.19921875) +[2618777.080] {Default Queue} wl_pointer#1833.motion(187310407, 29.00000000, 20.19921875) +[2618777.084] {Default Queue} wl_pointer#1865.motion(187310407, 29.00000000, 20.19921875) +[2618777.088] {Default Queue} wl_pointer#1897.motion(187310407, 29.00000000, 20.19921875) +[2618777.093] {Default Queue} wl_pointer#1929.motion(187310407, 29.00000000, 20.19921875) +[2618777.097] {Default Queue} wl_pointer#1961.motion(187310407, 29.00000000, 20.19921875) +[2618777.101] {Default Queue} wl_pointer#1993.motion(187310407, 29.00000000, 20.19921875) +[2618777.106] {Default Queue} wl_pointer#2025.motion(187310407, 29.00000000, 20.19921875) +[2618777.110] {Default Queue} wl_pointer#2057.motion(187310407, 29.00000000, 20.19921875) +[2618777.114] {Default Queue} wl_pointer#2089.motion(187310407, 29.00000000, 20.19921875) +[2618777.118] {Default Queue} wl_pointer#2121.motion(187310407, 29.00000000, 20.19921875) +[2618777.123] {Default Queue} wl_pointer#2153.motion(187310407, 29.00000000, 20.19921875) +[2618777.127] {Default Queue} wl_pointer#2185.motion(187310407, 29.00000000, 20.19921875) +[2618777.131] {Default Queue} wl_pointer#2217.motion(187310407, 29.00000000, 20.19921875) +[2618777.136] {Default Queue} wl_pointer#2249.motion(187310407, 29.00000000, 20.19921875) +[2618777.140] {Default Queue} wl_pointer#2281.motion(187310407, 29.00000000, 20.19921875) +[2618777.144] {Default Queue} wl_pointer#2313.motion(187310407, 29.00000000, 20.19921875) +[2618777.149] {Default Queue} wl_pointer#2345.motion(187310407, 29.00000000, 20.19921875) +[2618777.153] {Default Queue} wl_pointer#2377.motion(187310407, 29.00000000, 20.19921875) +[2618777.157] {Default Queue} wl_pointer#2409.motion(187310407, 29.00000000, 20.19921875) +[2618777.162] {Default Queue} wl_pointer#2441.motion(187310407, 29.00000000, 20.19921875) +[2618777.166] {Default Queue} wl_pointer#2473.motion(187310407, 29.00000000, 20.19921875) +[2618777.170] {Default Queue} wl_pointer#2498.motion(187310407, 29.00000000, 20.19921875) +[2618777.181] {Default Queue} -> wl_buffer#2502.destroy() +[2618777.186] {Default Queue} -> wl_buffer#2505.destroy() +[2618777.190] {Default Queue} -> wl_shm_pool#2506.destroy() +[2618777.194] {Default Queue} -> wl_shm_pool#2503.destroy() +[2618777.199] {Default Queue} -> wl_surface#2504.destroy() +[2618777.234] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3671, fd 575, 640) +[2618777.243] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 578, 640) +[2618777.249] {Default Queue} -> wl_shm_pool#3671.create_buffer(new id wl_buffer#3682, 0, 10, 16, 40, 0) +[2618777.254] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) +[2618777.260] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3684) +[2618777.265] {Default Queue} -> wl_surface#3684.attach(wl_buffer#3682, 0, 0) +[2618777.269] {Default Queue} -> wl_surface#3684.commit() +[2618777.274] {Default Queue} -> wl_surface#3684.attach(wl_buffer#3682, 0, 0) +[2618777.278] {Default Queue} -> wl_surface#3684.commit() +[2618777.283] {Default Queue} wl_pointer#2537.motion(187310407, 29.00000000, 20.19921875) +[2618777.287] {Default Queue} wl_pointer#2569.motion(187310407, 29.00000000, 20.19921875) +[2618777.291] {Default Queue} wl_pointer#2601.motion(187310407, 29.00000000, 20.19921875) +[2618777.296] {Default Queue} wl_pointer#2633.motion(187310407, 29.00000000, 20.19921875) +[2618777.300] {Default Queue} wl_pointer#2665.motion(187310407, 29.00000000, 20.19921875) +[2618777.304] {Default Queue} wl_pointer#2697.motion(187310407, 29.00000000, 20.19921875) +[2618777.309] {Default Queue} wl_pointer#2729.motion(187310407, 29.00000000, 20.19921875) +[2618777.313] {Default Queue} wl_pointer#2761.motion(187310407, 29.00000000, 20.19921875) +[2618777.317] {Default Queue} wl_pointer#2793.motion(187310407, 29.00000000, 20.19921875) +[2618777.322] {Default Queue} wl_pointer#2825.motion(187310407, 29.00000000, 20.19921875) +[2618777.326] {Default Queue} wl_pointer#2857.motion(187310407, 29.00000000, 20.19921875) +[2618777.331] {Default Queue} wl_pointer#2889.motion(187310407, 29.00000000, 20.19921875) +[2618777.335] {Default Queue} wl_pointer#2921.motion(187310407, 29.00000000, 20.19921875) +[2618777.339] {Default Queue} wl_pointer#2953.motion(187310407, 29.00000000, 20.19921875) +[2618777.343] {Default Queue} wl_pointer#2985.motion(187310407, 29.00000000, 20.19921875) +[2618777.348] {Default Queue} wl_pointer#3017.motion(187310407, 29.00000000, 20.19921875) +[2618777.352] {Default Queue} wl_pointer#3049.motion(187310407, 29.00000000, 20.19921875) +[2618777.356] {Default Queue} wl_pointer#3081.motion(187310407, 29.00000000, 20.19921875) +[2618777.361] {Default Queue} wl_pointer#3113.motion(187310407, 29.00000000, 20.19921875) +[2618777.365] {Default Queue} wl_pointer#3145.motion(187310407, 29.00000000, 20.19921875) +[2618777.369] {Default Queue} wl_pointer#3177.motion(187310407, 29.00000000, 20.19921875) +[2618777.373] {Default Queue} wl_pointer#3209.motion(187310407, 29.00000000, 20.19921875) +[2618777.378] {Default Queue} wl_pointer#3241.motion(187310407, 29.00000000, 20.19921875) +[2618777.382] {Default Queue} wl_pointer#3273.motion(187310407, 29.00000000, 20.19921875) +[2618777.387] {Default Queue} wl_pointer#3305.motion(187310407, 29.00000000, 20.19921875) +[2618777.391] {Default Queue} wl_pointer#3337.motion(187310407, 29.00000000, 20.19921875) +[2618777.395] {Default Queue} wl_pointer#3369.motion(187310407, 29.00000000, 20.19921875) +[2618777.399] {Default Queue} wl_pointer#3401.motion(187310407, 29.00000000, 20.19921875) +[2618777.403] {Default Queue} wl_pointer#3433.motion(187310407, 29.00000000, 20.19921875) +[2618777.408] {Default Queue} wl_pointer#3465.motion(187310407, 29.00000000, 20.19921875) +[2618777.412] {Default Queue} wl_pointer#3497.motion(187310407, 29.00000000, 20.19921875) +[2618777.417] {Default Queue} wl_pointer#3529.motion(187310407, 29.00000000, 20.19921875) +[2618777.421] {Default Queue} wl_pointer#3561.motion(187310407, 29.00000000, 20.19921875) +[2618777.425] {Default Queue} wl_pointer#3593.motion(187310407, 29.00000000, 20.19921875) +[2618777.430] {Default Queue} wl_pointer#3625.motion(187310407, 29.00000000, 20.19921875) +[2618777.434] {Default Queue} wl_pointer#3657.motion(187310407, 29.00000000, 20.19921875) +[2618777.438] {Default Queue} wl_pointer#3695.motion(187310407, 29.00000000, 20.19921875) +[2618777.442] {Default Queue} wl_pointer#24.motion(187310411, 29.00000000, 19.80078125) +[2618777.451] {Default Queue} wl_pointer#81.motion(187310411, 29.00000000, 19.80078125) +[2618777.457] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618777.462] {Default Queue} wl_pointer#105.motion(187310411, 29.00000000, 19.80078125) +[2618777.466] {Default Queue} wl_pointer#137.motion(187310411, 29.00000000, 19.80078125) +[2618777.470] {Default Queue} wl_pointer#169.motion(187310411, 29.00000000, 19.80078125) +[2618777.475] {Default Queue} wl_pointer#201.motion(187310411, 29.00000000, 19.80078125) +[2618777.479] {Default Queue} wl_pointer#233.motion(187310411, 29.00000000, 19.80078125) +[2618777.483] {Default Queue} wl_pointer#265.motion(187310411, 29.00000000, 19.80078125) +[2618777.488] {Default Queue} wl_pointer#297.motion(187310411, 29.00000000, 19.80078125) +[2618777.492] {Default Queue} wl_pointer#329.motion(187310411, 29.00000000, 19.80078125) +[2618777.496] {Default Queue} wl_pointer#361.motion(187310411, 29.00000000, 19.80078125) +[2618777.500] {Default Queue} wl_pointer#393.motion(187310411, 29.00000000, 19.80078125) +[2618777.505] {Default Queue} wl_pointer#425.motion(187310411, 29.00000000, 19.80078125) +[2618777.509] {Default Queue} wl_pointer#457.motion(187310411, 29.00000000, 19.80078125) +[2618777.513] {Default Queue} wl_pointer#489.motion(187310411, 29.00000000, 19.80078125) +[2618777.518] {Default Queue} wl_pointer#521.motion(187310411, 29.00000000, 19.80078125) +[2618777.522] {Default Queue} wl_pointer#553.motion(187310411, 29.00000000, 19.80078125) +[2618777.526] {Default Queue} wl_pointer#585.motion(187310411, 29.00000000, 19.80078125) +[2618777.530] {Default Queue} wl_pointer#617.motion(187310411, 29.00000000, 19.80078125) +[2618777.535] {Default Queue} wl_pointer#649.motion(187310411, 29.00000000, 19.80078125) +[2618777.539] {Default Queue} wl_pointer#681.motion(187310411, 29.00000000, 19.80078125) +[2618777.543] {Default Queue} wl_pointer#713.motion(187310411, 29.00000000, 19.80078125) +[2618777.548] {Default Queue} wl_pointer#745.motion(187310411, 29.00000000, 19.80078125) +[2618777.552] {Default Queue} wl_pointer#777.motion(187310411, 29.00000000, 19.80078125) +[2618777.556] {Default Queue} wl_pointer#809.motion(187310411, 29.00000000, 19.80078125) +[2618777.560] {Default Queue} wl_pointer#841.motion(187310411, 29.00000000, 19.80078125) +[2618777.565] {Default Queue} wl_pointer#873.motion(187310411, 29.00000000, 19.80078125) +[2618777.569] {Default Queue} wl_pointer#905.motion(187310411, 29.00000000, 19.80078125) +[2618777.573] {Default Queue} wl_pointer#937.motion(187310411, 29.00000000, 19.80078125) +[2618777.577] {Default Queue} wl_pointer#969.motion(187310411, 29.00000000, 19.80078125) +[2618777.582] {Default Queue} wl_pointer#1001.motion(187310411, 29.00000000, 19.80078125) +[2618777.586] {Default Queue} wl_pointer#1033.motion(187310411, 29.00000000, 19.80078125) +[2618777.590] {Default Queue} wl_pointer#1065.motion(187310411, 29.00000000, 19.80078125) +[2618777.595] {Default Queue} wl_pointer#1097.motion(187310411, 29.00000000, 19.80078125) +[2618777.599] {Default Queue} wl_pointer#1129.motion(187310411, 29.00000000, 19.80078125) +[2618777.603] {Default Queue} wl_pointer#1161.motion(187310411, 29.00000000, 19.80078125) +[2618777.608] {Default Queue} wl_pointer#1193.motion(187310411, 29.00000000, 19.80078125) +[2618777.612] {Default Queue} wl_pointer#1225.motion(187310411, 29.00000000, 19.80078125) +[2618777.616] {Default Queue} wl_pointer#1257.motion(187310411, 29.00000000, 19.80078125) +[2618777.620] {Default Queue} wl_pointer#1289.motion(187310411, 29.00000000, 19.80078125) +[2618777.625] {Default Queue} wl_pointer#1321.motion(187310411, 29.00000000, 19.80078125) +[2618777.629] {Default Queue} wl_pointer#1353.motion(187310411, 29.00000000, 19.80078125) +[2618777.633] {Default Queue} wl_pointer#1385.motion(187310411, 29.00000000, 19.80078125) +[2618777.637] {Default Queue} wl_pointer#1417.motion(187310411, 29.00000000, 19.80078125) +[2618777.642] {Default Queue} wl_pointer#1449.motion(187310411, 29.00000000, 19.80078125) +[2618777.649] {Default Queue} wl_pointer#1481.motion(187310411, 29.00000000, 19.80078125) +[2618777.654] {Default Queue} wl_pointer#1513.motion(187310411, 29.00000000, 19.80078125) +[2618777.659] {Default Queue} wl_pointer#1545.motion(187310411, 29.00000000, 19.80078125) +[2618777.663] {Default Queue} wl_pointer#1577.motion(187310411, 29.00000000, 19.80078125) +[2618777.668] {Default Queue} wl_pointer#1609.motion(187310411, 29.00000000, 19.80078125) +[2618777.672] {Default Queue} wl_pointer#1641.motion(187310411, 29.00000000, 19.80078125) +[2618777.676] {Default Queue} wl_pointer#1673.motion(187310411, 29.00000000, 19.80078125) +[2618777.680] {Default Queue} wl_pointer#1705.motion(187310411, 29.00000000, 19.80078125) +[2618777.685] {Default Queue} wl_pointer#1737.motion(187310411, 29.00000000, 19.80078125) +[2618777.689] {Default Queue} wl_pointer#1762.motion(187310411, 29.00000000, 19.80078125) +[2618777.693] {Default Queue} wl_pointer#1801.motion(187310411, 29.00000000, 19.80078125) +[2618777.698] {Default Queue} wl_pointer#1833.motion(187310411, 29.00000000, 19.80078125) +[2618777.702] {Default Queue} wl_pointer#1865.motion(187310411, 29.00000000, 19.80078125) +[2618777.706] {Default Queue} wl_pointer#1897.motion(187310411, 29.00000000, 19.80078125) +[2618777.710] {Default Queue} wl_pointer#1929.motion(187310411, 29.00000000, 19.80078125) +[2618777.715] {Default Queue} wl_pointer#1961.motion(187310411, 29.00000000, 19.80078125) +[2618777.719] {Default Queue} wl_pointer#1993.motion(187310411, 29.00000000, 19.80078125) +[2618777.723] {Default Queue} wl_pointer#2025.motion(187310411, 29.00000000, 19.80078125) +[2618777.727] {Default Queue} wl_pointer#2057.motion(187310411, 29.00000000, 19.80078125) +[2618777.732] {Default Queue} wl_pointer#2089.motion(187310411, 29.00000000, 19.80078125) +[2618777.736] {Default Queue} wl_pointer#2121.motion(187310411, 29.00000000, 19.80078125) +[2618777.740] {Default Queue} wl_pointer#2153.motion(187310411, 29.00000000, 19.80078125) +[2618777.745] {Default Queue} wl_pointer#2185.motion(187310411, 29.00000000, 19.80078125) +[2618777.749] {Default Queue} wl_pointer#2217.motion(187310411, 29.00000000, 19.80078125) +[2618777.753] {Default Queue} wl_pointer#2249.motion(187310411, 29.00000000, 19.80078125) +[2618777.757] {Default Queue} wl_pointer#2281.motion(187310411, 29.00000000, 19.80078125) +[2618777.762] {Default Queue} wl_pointer#2313.motion(187310411, 29.00000000, 19.80078125) +[2618777.766] {Default Queue} wl_pointer#2345.motion(187310411, 29.00000000, 19.80078125) +[2618777.772] {Default Queue} wl_pointer#2377.motion(187310411, 29.00000000, 19.80078125) +[2618777.777] {Default Queue} wl_pointer#2409.motion(187310411, 29.00000000, 19.80078125) +[2618777.783] {Default Queue} wl_pointer#2441.motion(187310411, 29.00000000, 19.80078125) +[2618777.789] {Default Queue} wl_pointer#2473.motion(187310411, 29.00000000, 19.80078125) +[2618777.794] {Default Queue} wl_pointer#2498.motion(187310411, 29.00000000, 19.80078125) +[2618777.808] {Default Queue} -> wl_buffer#3682.destroy() +[2618777.814] {Default Queue} -> wl_buffer#3681.destroy() +[2618777.819] {Default Queue} -> wl_shm_pool#3671.destroy() +[2618777.825] {Default Queue} -> wl_shm_pool#3679.destroy() +[2618777.831] {Default Queue} -> wl_surface#3684.destroy() +[2618777.875] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3294, fd 581, 640) +[2618777.882] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 582, 640) +[2618777.887] {Default Queue} -> wl_shm_pool#3294.create_buffer(new id wl_buffer#3484, 0, 10, 16, 40, 0) +[2618777.891] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) +[2618777.899] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3292) +[2618777.903] {Default Queue} -> wl_surface#3292.attach(wl_buffer#3484, 0, 0) +[2618777.907] {Default Queue} -> wl_surface#3292.commit() +[2618777.913] {Default Queue} -> wl_surface#3292.attach(wl_buffer#3484, 0, 0) +[2618777.917] {Default Queue} -> wl_surface#3292.commit() +[2618777.921] {Default Queue} wl_pointer#2537.motion(187310411, 29.00000000, 19.80078125) +[2618777.930] {Default Queue} wl_pointer#2569.motion(187310411, 29.00000000, 19.80078125) +[2618777.937] {Default Queue} wl_pointer#2601.motion(187310411, 29.00000000, 19.80078125) +[2618777.941] {Default Queue} wl_pointer#2633.motion(187310411, 29.00000000, 19.80078125) +[2618777.945] {Default Queue} wl_pointer#2665.motion(187310411, 29.00000000, 19.80078125) +[2618777.949] {Default Queue} wl_pointer#2697.motion(187310411, 29.00000000, 19.80078125) +[2618777.954] {Default Queue} wl_pointer#2729.motion(187310411, 29.00000000, 19.80078125) +[2618777.958] {Default Queue} wl_pointer#2761.motion(187310411, 29.00000000, 19.80078125) +[2618777.962] {Default Queue} wl_pointer#2793.motion(187310411, 29.00000000, 19.80078125) +[2618777.966] {Default Queue} wl_pointer#2825.motion(187310411, 29.00000000, 19.80078125) +[2618777.971] {Default Queue} wl_pointer#2857.motion(187310411, 29.00000000, 19.80078125) +[2618777.975] {Default Queue} wl_pointer#2889.motion(187310411, 29.00000000, 19.80078125) +[2618777.980] {Default Queue} wl_pointer#2921.motion(187310411, 29.00000000, 19.80078125) +[2618777.984] {Default Queue} wl_pointer#2953.motion(187310411, 29.00000000, 19.80078125) +[2618777.989] {Default Queue} wl_pointer#2985.motion(187310411, 29.00000000, 19.80078125) +[2618777.993] {Default Queue} wl_pointer#3017.motion(187310411, 29.00000000, 19.80078125) +[2618777.997] {Default Queue} wl_pointer#3049.motion(187310411, 29.00000000, 19.80078125) +[2618778.002] {Default Queue} wl_pointer#3081.motion(187310411, 29.00000000, 19.80078125) +[2618778.008] {Default Queue} wl_pointer#3113.motion(187310411, 29.00000000, 19.80078125) +[2618778.014] {Default Queue} wl_pointer#3145.motion(187310411, 29.00000000, 19.80078125) +[2618778.020] {Default Queue} wl_pointer#3177.motion(187310411, 29.00000000, 19.80078125) +[2618778.026] {Default Queue} wl_pointer#3209.motion(187310411, 29.00000000, 19.80078125) +[2618778.031] {Default Queue} wl_pointer#3241.motion(187310411, 29.00000000, 19.80078125) +[2618778.036] {Default Queue} wl_pointer#3273.motion(187310411, 29.00000000, 19.80078125) +[2618778.042] {Default Queue} wl_pointer#3305.motion(187310411, 29.00000000, 19.80078125) +[2618778.048] {Default Queue} wl_pointer#3337.motion(187310411, 29.00000000, 19.80078125) +[2618778.054] {Default Queue} wl_pointer#3369.motion(187310411, 29.00000000, 19.80078125) +[2618778.059] {Default Queue} wl_pointer#3401.motion(187310411, 29.00000000, 19.80078125) +[2618778.063] {Default Queue} wl_pointer#3433.motion(187310411, 29.00000000, 19.80078125) +[2618778.068] {Default Queue} wl_pointer#3465.motion(187310411, 29.00000000, 19.80078125) +[2618778.073] {Default Queue} wl_pointer#3497.motion(187310411, 29.00000000, 19.80078125) +[2618778.077] {Default Queue} wl_pointer#3529.motion(187310411, 29.00000000, 19.80078125) +[2618778.081] {Default Queue} wl_pointer#3561.motion(187310411, 29.00000000, 19.80078125) +[2618778.085] {Default Queue} wl_pointer#3593.motion(187310411, 29.00000000, 19.80078125) +[2618778.090] {Default Queue} wl_pointer#3625.motion(187310411, 29.00000000, 19.80078125) +[2618778.094] {Default Queue} wl_pointer#3657.motion(187310411, 29.00000000, 19.80078125) +[2618778.098] {Default Queue} wl_pointer#3695.motion(187310411, 29.00000000, 19.80078125) +[2618778.103] {Default Queue} wl_pointer#24.motion(187310411, 29.00000000, 19.39843750) +[2618778.107] {Default Queue} wl_pointer#81.motion(187310411, 29.00000000, 19.39843750) +[2618778.112] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618778.117] {Default Queue} wl_pointer#105.motion(187310411, 29.00000000, 19.39843750) +[2618778.121] {Default Queue} wl_pointer#137.motion(187310411, 29.00000000, 19.39843750) +[2618778.125] {Default Queue} wl_pointer#169.motion(187310411, 29.00000000, 19.39843750) +[2618778.130] {Default Queue} wl_pointer#201.motion(187310411, 29.00000000, 19.39843750) +[2618778.134] {Default Queue} wl_pointer#233.motion(187310411, 29.00000000, 19.39843750) +[2618778.138] {Default Queue} wl_pointer#265.motion(187310411, 29.00000000, 19.39843750) +[2618778.142] {Default Queue} wl_pointer#297.motion(187310411, 29.00000000, 19.39843750) +[2618778.150] {Default Queue} wl_pointer#329.motion(187310411, 29.00000000, 19.39843750) +[2618778.156] {Default Queue} wl_pointer#361.motion(187310411, 29.00000000, 19.39843750) +[2618778.160] {Default Queue} wl_pointer#393.motion(187310411, 29.00000000, 19.39843750) +[2618778.165] {Default Queue} wl_pointer#425.motion(187310411, 29.00000000, 19.39843750) +[2618778.169] {Default Queue} wl_pointer#457.motion(187310411, 29.00000000, 19.39843750) +[2618778.173] {Default Queue} wl_pointer#489.motion(187310411, 29.00000000, 19.39843750) +[2618778.178] {Default Queue} wl_pointer#521.motion(187310411, 29.00000000, 19.39843750) +[2618778.182] {Default Queue} wl_pointer#553.motion(187310411, 29.00000000, 19.39843750) +[2618778.186] {Default Queue} wl_pointer#585.motion(187310411, 29.00000000, 19.39843750) +[2618778.190] {Default Queue} wl_pointer#617.motion(187310411, 29.00000000, 19.39843750) +[2618778.195] {Default Queue} wl_pointer#649.motion(187310411, 29.00000000, 19.39843750) +[2618778.199] {Default Queue} wl_pointer#681.motion(187310411, 29.00000000, 19.39843750) +[2618778.203] {Default Queue} wl_pointer#713.motion(187310411, 29.00000000, 19.39843750) +[2618778.208] {Default Queue} wl_pointer#745.motion(187310411, 29.00000000, 19.39843750) +[2618778.212] {Default Queue} wl_pointer#777.motion(187310411, 29.00000000, 19.39843750) +[2618778.216] {Default Queue} wl_pointer#809.motion(187310411, 29.00000000, 19.39843750) +[2618778.220] {Default Queue} wl_pointer#841.motion(187310411, 29.00000000, 19.39843750) +[2618778.225] {Default Queue} wl_pointer#873.motion(187310411, 29.00000000, 19.39843750) +[2618778.229] {Default Queue} wl_pointer#905.motion(187310411, 29.00000000, 19.39843750) +[2618778.233] {Default Queue} wl_pointer#937.motion(187310411, 29.00000000, 19.39843750) +[2618778.238] {Default Queue} wl_pointer#969.motion(187310411, 29.00000000, 19.39843750) +[2618778.242] {Default Queue} wl_pointer#1001.motion(187310411, 29.00000000, 19.39843750) +[2618778.246] {Default Queue} wl_pointer#1033.motion(187310411, 29.00000000, 19.39843750) +[2618778.250] {Default Queue} wl_pointer#1065.motion(187310411, 29.00000000, 19.39843750) +[2618778.255] {Default Queue} wl_pointer#1097.motion(187310411, 29.00000000, 19.39843750) +[2618778.259] {Default Queue} wl_pointer#1129.motion(187310411, 29.00000000, 19.39843750) +[2618778.263] {Default Queue} wl_pointer#1161.motion(187310411, 29.00000000, 19.39843750) +[2618778.267] {Default Queue} wl_pointer#1193.motion(187310411, 29.00000000, 19.39843750) +[2618778.272] {Default Queue} wl_pointer#1225.motion(187310411, 29.00000000, 19.39843750) +[2618778.276] {Default Queue} wl_pointer#1257.motion(187310411, 29.00000000, 19.39843750) +[2618778.280] {Default Queue} wl_pointer#1289.motion(187310411, 29.00000000, 19.39843750) +[2618778.285] {Default Queue} wl_pointer#1321.motion(187310411, 29.00000000, 19.39843750) +[2618778.289] {Default Queue} wl_pointer#1353.motion(187310411, 29.00000000, 19.39843750) +[2618778.293] {Default Queue} wl_pointer#1385.motion(187310411, 29.00000000, 19.39843750) +[2618778.297] {Default Queue} wl_pointer#1417.motion(187310411, 29.00000000, 19.39843750) +[2618778.301] {Default Queue} wl_pointer#1449.motion(187310411, 29.00000000, 19.39843750) +[2618778.306] {Default Queue} wl_pointer#1481.motion(187310411, 29.00000000, 19.39843750) +[2618778.310] {Default Queue} wl_pointer#1513.motion(187310411, 29.00000000, 19.39843750) +[2618778.314] {Default Queue} wl_pointer#1545.motion(187310411, 29.00000000, 19.39843750) +[2618778.319] {Default Queue} wl_pointer#1577.motion(187310411, 29.00000000, 19.39843750) +[2618778.323] {Default Queue} wl_pointer#1609.motion(187310411, 29.00000000, 19.39843750) +[2618778.327] {Default Queue} wl_pointer#1641.motion(187310411, 29.00000000, 19.39843750) +[2618778.331] {Default Queue} wl_pointer#1673.motion(187310411, 29.00000000, 19.39843750) +[2618778.336] {Default Queue} wl_pointer#1705.motion(187310411, 29.00000000, 19.39843750) +[2618778.340] {Default Queue} wl_pointer#1737.motion(187310411, 29.00000000, 19.39843750) +[2618778.344] {Default Queue} wl_pointer#1762.motion(187310411, 29.00000000, 19.39843750) +[2618778.349] {Default Queue} wl_pointer#1801.motion(187310411, 29.00000000, 19.39843750) +[2618778.355] {Default Queue} wl_pointer#1833.motion(187310411, 29.00000000, 19.39843750) +[2618778.359] {Default Queue} wl_pointer#1865.motion(187310411, 29.00000000, 19.39843750) +[2618778.364] {Default Queue} wl_pointer#1897.motion(187310411, 29.00000000, 19.39843750) +[2618778.368] {Default Queue} wl_pointer#1929.motion(187310411, 29.00000000, 19.39843750) +[2618778.372] {Default Queue} wl_pointer#1961.motion(187310411, 29.00000000, 19.39843750) +[2618778.376] {Default Queue} wl_pointer#1993.motion(187310411, 29.00000000, 19.39843750) +[2618778.381] {Default Queue} wl_pointer#2025.motion(187310411, 29.00000000, 19.39843750) +[2618778.385] {Default Queue} wl_pointer#2057.motion(187310411, 29.00000000, 19.39843750) +[2618778.389] {Default Queue} wl_pointer#2089.motion(187310411, 29.00000000, 19.39843750) +[2618778.394] {Default Queue} wl_pointer#2121.motion(187310411, 29.00000000, 19.39843750) +[2618778.398] {Default Queue} wl_pointer#2153.motion(187310411, 29.00000000, 19.39843750) +[2618778.402] {Default Queue} wl_pointer#2185.motion(187310411, 29.00000000, 19.39843750) +[2618778.406] {Default Queue} wl_pointer#2217.motion(187310411, 29.00000000, 19.39843750) +[2618778.411] {Default Queue} wl_pointer#2249.motion(187310411, 29.00000000, 19.39843750) +[2618778.415] {Default Queue} wl_pointer#2281.motion(187310411, 29.00000000, 19.39843750) +[2618778.419] {Default Queue} wl_pointer#2313.motion(187310411, 29.00000000, 19.39843750) +[2618778.424] {Default Queue} wl_pointer#2345.motion(187310411, 29.00000000, 19.39843750) +[2618778.428] {Default Queue} wl_pointer#2377.motion(187310411, 29.00000000, 19.39843750) +[2618778.432] {Default Queue} wl_pointer#2409.motion(187310411, 29.00000000, 19.39843750) +[2618778.437] {Default Queue} wl_pointer#2441.motion(187310411, 29.00000000, 19.39843750) +[2618778.441] {Default Queue} wl_pointer#2473.motion(187310411, 29.00000000, 19.39843750) +[2618778.445] {Default Queue} wl_pointer#2498.motion(187310411, 29.00000000, 19.39843750) +[2618778.456] {Default Queue} -> wl_buffer#3484.destroy() +[2618778.460] {Default Queue} -> wl_buffer#3293.destroy() +[2618778.464] {Default Queue} -> wl_shm_pool#3294.destroy() +[2618778.468] {Default Queue} -> wl_shm_pool#3291.destroy() +[2618778.473] {Default Queue} -> wl_surface#3292.destroy() +[2618778.510] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3454, fd 583, 640) +[2618778.516] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3517, fd 584, 640) +[2618778.520] {Default Queue} -> wl_shm_pool#3454.create_buffer(new id wl_buffer#3518, 0, 10, 16, 40, 0) +[2618778.525] {Default Queue} -> wl_shm_pool#3517.create_buffer(new id wl_buffer#3451, 0, 10, 16, 40, 0) +[2618778.532] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3452) +[2618778.536] {Default Queue} -> wl_surface#3452.attach(wl_buffer#3518, 0, 0) +[2618778.540] {Default Queue} -> wl_surface#3452.commit() +[2618778.545] {Default Queue} -> wl_surface#3452.attach(wl_buffer#3518, 0, 0) +[2618778.549] {Default Queue} -> wl_surface#3452.commit() +[2618778.553] {Default Queue} wl_pointer#2537.motion(187310411, 29.00000000, 19.39843750) +[2618778.558] {Default Queue} wl_pointer#2569.motion(187310411, 29.00000000, 19.39843750) +[2618778.562] {Default Queue} wl_pointer#2601.motion(187310411, 29.00000000, 19.39843750) +[2618778.567] {Default Queue} wl_pointer#2633.motion(187310411, 29.00000000, 19.39843750) +[2618778.571] {Default Queue} wl_pointer#2665.motion(187310411, 29.00000000, 19.39843750) +[2618778.575] {Default Queue} wl_pointer#2697.motion(187310411, 29.00000000, 19.39843750) +[2618778.579] {Default Queue} wl_pointer#2729.motion(187310411, 29.00000000, 19.39843750) +[2618778.584] {Default Queue} wl_pointer#2761.motion(187310411, 29.00000000, 19.39843750) +[2618778.588] {Default Queue} wl_pointer#2793.motion(187310411, 29.00000000, 19.39843750) +[2618778.592] {Default Queue} wl_pointer#2825.motion(187310411, 29.00000000, 19.39843750) +[2618778.603] {Default Queue} wl_pointer#2857.motion(187310411, 29.00000000, 19.39843750) +[2618778.653] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) +[2618778.659] {Default Queue} -> wl_surface#3.commit() +[2618778.702] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) +[2618778.708] {Default Queue} -> wl_surface#19.commit() +[2618778.720] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2618778.724] {Default Queue} -> wl_surface#43.commit() +[2618778.731] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) +[2618778.735] {Default Queue} -> wl_surface#199.commit() +[2618778.741] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) +[2618778.745] {Default Queue} -> wl_surface#263.commit() +[2618778.751] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) +[2618778.756] {Default Queue} -> wl_surface#231.commit() +[2618778.761] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) +[2618778.765] {Default Queue} -> wl_surface#167.commit() +[2618778.771] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) +[2618778.775] {Default Queue} -> wl_surface#135.commit() +[2618778.780] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) +[2618778.785] {Default Queue} -> wl_surface#295.commit() +[2618778.791] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) +[2618778.795] {Default Queue} -> wl_surface#391.commit() +[2618778.802] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) +[2618778.806] {Default Queue} -> wl_surface#519.commit() +[2618778.811] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) +[2618778.816] {Default Queue} -> wl_surface#551.commit() +[2618778.821] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) +[2618778.825] {Default Queue} -> wl_surface#583.commit() +[2618778.831] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) +[2618778.835] {Default Queue} -> wl_surface#615.commit() +[2618778.841] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) +[2618778.845] {Default Queue} -> wl_surface#647.commit() +[2618778.850] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) +[2618778.854] {Default Queue} -> wl_surface#487.commit() +[2618778.866] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) +[2618778.870] {Default Queue} -> wl_surface#711.commit() +[2618778.875] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) +[2618778.879] {Default Queue} -> wl_surface#743.commit() +[2618778.885] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) +[2618778.889] {Default Queue} -> wl_surface#775.commit() +[2618778.895] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) +[2618778.899] {Default Queue} -> wl_surface#807.commit() +[2618778.905] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) +[2618778.912] {Default Queue} -> wl_surface#839.commit() +[2618778.920] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) +[2618778.924] {Default Queue} -> wl_surface#679.commit() +[2618778.930] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) +[2618778.934] {Default Queue} -> wl_surface#455.commit() +[2618778.940] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) +[2618778.944] {Default Queue} -> wl_surface#423.commit() +[2618778.949] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) +[2618778.954] {Default Queue} -> wl_surface#359.commit() +[2618778.959] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) +[2618778.963] {Default Queue} -> wl_surface#327.commit() +[2618778.969] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) +[2618778.973] {Default Queue} -> wl_surface#103.commit() +[2618778.979] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) +[2618778.983] {Default Queue} -> wl_surface#967.commit() +[2618778.989] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) +[2618778.994] {Default Queue} -> wl_surface#1095.commit() +[2618779.000] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) +[2618779.007] {Default Queue} -> wl_surface#1127.commit() +[2618779.015] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) +[2618779.019] {Default Queue} -> wl_surface#1159.commit() +[2618779.025] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) +[2618779.029] {Default Queue} -> wl_surface#1191.commit() +[2618779.034] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) +[2618779.039] {Default Queue} -> wl_surface#1223.commit() +[2618779.044] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) +[2618779.048] {Default Queue} -> wl_surface#1063.commit() +[2618779.054] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) +[2618779.058] {Default Queue} -> wl_surface#1287.commit() +[2618779.064] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) +[2618779.068] {Default Queue} -> wl_surface#1319.commit() +[2618779.074] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) +[2618779.078] {Default Queue} -> wl_surface#1351.commit() +[2618779.083] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) +[2618779.088] {Default Queue} -> wl_surface#1383.commit() +[2618779.093] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) +[2618779.098] {Default Queue} -> wl_surface#1415.commit() +[2618779.104] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) +[2618779.108] {Default Queue} -> wl_surface#1255.commit() +[2618779.113] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) +[2618779.118] {Default Queue} -> wl_surface#1031.commit() +[2618779.123] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) +[2618779.127] {Default Queue} -> wl_surface#999.commit() +[2618779.133] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) +[2618779.137] {Default Queue} -> wl_surface#935.commit() +[2618779.143] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) +[2618779.147] {Default Queue} -> wl_surface#903.commit() +[2618779.153] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) +[2618779.157] {Default Queue} -> wl_surface#1511.commit() +[2618779.163] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) +[2618779.168] {Default Queue} -> wl_surface#1575.commit() +[2618779.173] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) +[2618779.178] {Default Queue} -> wl_surface#1543.commit() +[2618779.183] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) +[2618779.188] {Default Queue} -> wl_surface#1479.commit() +[2618779.193] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) +[2618779.198] {Default Queue} -> wl_surface#1447.commit() +[2618779.204] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) +[2618779.208] {Default Queue} -> wl_surface#1671.commit() +[2618779.214] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) +[2618779.218] {Default Queue} -> wl_surface#1735.commit() +[2618779.224] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) +[2618779.228] {Default Queue} -> wl_surface#1703.commit() +[2618779.233] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) +[2618779.238] {Default Queue} -> wl_surface#1639.commit() +[2618779.243] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) +[2618779.247] {Default Queue} -> wl_surface#1607.commit() +[2618779.253] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) +[2618779.258] {Default Queue} -> wl_surface#1831.commit() +[2618779.264] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) +[2618779.268] {Default Queue} -> wl_surface#1895.commit() +[2618779.274] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) +[2618779.278] {Default Queue} -> wl_surface#1863.commit() +[2618779.284] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) +[2618779.288] {Default Queue} -> wl_surface#1799.commit() +[2618779.293] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) +[2618779.298] {Default Queue} -> wl_surface#1772.commit() +[2618779.304] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) +[2618779.311] {Default Queue} -> wl_surface#1991.commit() +[2618779.318] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) +[2618779.323] {Default Queue} -> wl_surface#2055.commit() +[2618779.332] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) +[2618779.337] {Default Queue} -> wl_surface#2023.commit() +[2618779.342] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) +[2618779.346] {Default Queue} -> wl_surface#1959.commit() +[2618779.352] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) +[2618779.356] {Default Queue} -> wl_surface#1927.commit() +[2618779.362] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) +[2618779.366] {Default Queue} -> wl_surface#871.commit() +[2618779.372] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) +[2618779.377] {Default Queue} -> wl_surface#2183.commit() +[2618779.382] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618779.387] {Default Queue} -> wl_surface#2279.commit() +[2618779.392] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) +[2618779.397] {Default Queue} -> wl_surface#2311.commit() +[2618779.402] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) +[2618779.406] {Default Queue} -> wl_surface#2247.commit() +[2618779.412] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) +[2618779.416] {Default Queue} -> wl_surface#2215.commit() +[2618779.422] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) +[2618779.426] {Default Queue} -> wl_surface#2151.commit() +[2618779.431] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) +[2618779.435] {Default Queue} -> wl_surface#2119.commit() +[2618779.441] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) +[2618779.445] {Default Queue} -> wl_surface#2407.commit() +[2618779.451] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) +[2618779.455] {Default Queue} -> wl_surface#2471.commit() +[2618779.461] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) +[2618779.465] {Default Queue} -> wl_surface#2439.commit() +[2618779.470] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) +[2618779.475] {Default Queue} -> wl_surface#2375.commit() +[2618779.480] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) +[2618779.485] {Default Queue} -> wl_surface#2343.commit() +[2618779.490] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) +[2618779.495] {Default Queue} -> wl_surface#2567.commit() +[2618779.500] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) +[2618779.504] {Default Queue} -> wl_surface#2631.commit() +[2618779.510] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) +[2618779.514] {Default Queue} -> wl_surface#2599.commit() +[2618779.520] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) +[2618779.524] {Default Queue} -> wl_surface#2535.commit() +[2618779.529] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) +[2618779.534] {Default Queue} -> wl_surface#2508.commit() +[2618779.539] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) +[2618779.544] {Default Queue} -> wl_surface#2727.commit() +[2618779.549] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) +[2618779.553] {Default Queue} -> wl_surface#2791.commit() +[2618779.559] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) +[2618779.563] {Default Queue} -> wl_surface#2759.commit() +[2618779.569] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) +[2618779.573] {Default Queue} -> wl_surface#2695.commit() +[2618779.578] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) +[2618779.582] {Default Queue} -> wl_surface#2663.commit() +[2618779.588] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) +[2618779.593] {Default Queue} -> wl_surface#2887.commit() +[2618779.598] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) +[2618779.603] {Default Queue} -> wl_surface#2951.commit() +[2618779.611] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) +[2618779.616] {Default Queue} -> wl_surface#2919.commit() +[2618779.622] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) +[2618779.626] {Default Queue} -> wl_surface#2855.commit() +[2618779.632] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) +[2618779.636] {Default Queue} -> wl_surface#2823.commit() +[2618779.642] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) +[2618779.646] {Default Queue} -> wl_surface#2087.commit() +[2618779.652] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) +[2618779.656] {Default Queue} -> wl_surface#3079.commit() +[2618779.662] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618779.666] {Default Queue} -> wl_surface#3175.commit() +[2618779.671] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) +[2618779.676] {Default Queue} -> wl_surface#3207.commit() +[2618779.681] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) +[2618779.685] {Default Queue} -> wl_surface#3143.commit() +[2618779.691] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) +[2618779.695] {Default Queue} -> wl_surface#3111.commit() +[2618779.701] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) +[2618779.705] {Default Queue} -> wl_surface#3047.commit() +[2618779.710] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) +[2618779.715] {Default Queue} -> wl_surface#3015.commit() +[2618779.720] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) +[2618779.725] {Default Queue} -> wl_surface#3303.commit() +[2618779.730] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) +[2618779.734] {Default Queue} -> wl_surface#3399.commit() +[2618779.740] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) +[2618779.744] {Default Queue} -> wl_surface#3431.commit() +[2618779.754] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2618779.758] {Default Queue} -> wl_surface#3527.commit() +[2618779.778] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2618779.783] {Default Queue} -> wl_surface#3495.commit() +[2618779.789] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) +[2618779.793] {Default Queue} -> wl_surface#3463.commit() +[2618779.799] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) +[2618779.803] {Default Queue} -> wl_surface#3367.commit() +[2618779.808] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) +[2618779.813] {Default Queue} -> wl_surface#3335.commit() +[2618779.818] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) +[2618779.822] {Default Queue} -> wl_surface#3271.commit() +[2618779.828] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) +[2618779.832] {Default Queue} -> wl_surface#3239.commit() +[2618779.837] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) +[2618779.841] {Default Queue} -> wl_surface#3559.commit() +[2618779.847] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) +[2618779.851] {Default Queue} -> wl_surface#3591.commit() +[2618779.857] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) +[2618779.862] {Default Queue} -> wl_surface#3623.commit() +[2618779.868] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) +[2618779.876] {Default Queue} -> wl_surface#2983.commit() +[2618779.934] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) +[2618779.941] {Default Queue} -> wl_surface#71.commit() +[2618779.989] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) +[2618779.995] {Default Queue} -> wl_surface#3.commit() +[2618780.058] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) +[2618780.072] {Default Queue} -> wl_surface#19.commit() +[2618780.083] {Default Queue} -> wl_region#127.subtract(0, 0, 2, 2) +[2618780.088] {Default Queue} -> wl_subsurface#122.set_position(0, 0) +[2618780.092] {Default Queue} -> wl_region#127.subtract(0, 0, 2, 2) +[2618780.097] {Default Queue} -> wl_region#127.add(0, 0, 2, 2) +[2618780.108] {Default Queue} -> wl_surface#103.set_opaque_region(wl_region#128) +[2618780.115] {Default Queue} -> wl_surface#103.set_input_region(wl_region#127) +[2618780.120] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618780.125] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618780.138] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) +[2618780.143] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) +[2618780.147] {Default Queue} -> wl_surface#135.damage(0, 0, 2, 2) +[2618780.152] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) +[2618780.156] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618780.160] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618780.165] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618780.169] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618780.173] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618780.177] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618780.181] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2618780.185] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618780.190] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618780.194] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618780.198] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618780.202] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618780.207] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2618780.211] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2618780.215] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) +[2618780.219] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) +[2618780.223] {Default Queue} -> wl_surface#327.damage(0, 0, 2, 2) +[2618780.227] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) +[2618780.238] {Default Queue} -> wl_region#127.subtract(0, 0, 2, 2) +[2618780.242] {Default Queue} -> wl_region#127.add(0, 0, 2, 2) +[2618780.246] {Default Queue} -> wl_surface#103.set_opaque_region(wl_region#128) +[2618780.250] {Default Queue} -> wl_surface#103.set_input_region(wl_region#127) +[2618780.256] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) +[2618780.261] {Default Queue} -> wl_surface#103.commit() +[2618780.266] {Default Queue} -> wl_region#895.subtract(0, 0, 2, 2) +[2618780.271] {Default Queue} -> wl_subsurface#890.set_position(0, 167) +[2618780.275] {Default Queue} -> wl_region#895.subtract(0, 0, 2, 169) +[2618780.279] {Default Queue} -> wl_region#895.add(0, 0, 2, 2) +[2618780.283] {Default Queue} -> wl_surface#871.set_opaque_region(wl_region#896) +[2618780.287] {Default Queue} -> wl_surface#871.set_input_region(wl_region#895) +[2618780.292] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618780.296] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) +[2618780.300] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) +[2618780.304] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) +[2618780.309] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) +[2618780.313] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) +[2618780.317] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2618780.321] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618780.325] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618780.330] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618780.334] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618780.338] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618780.342] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618780.346] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2618780.350] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) +[2618780.354] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) +[2618780.358] {Default Queue} -> wl_surface#903.damage(0, 0, 2, 2) +[2618780.362] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618780.367] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618780.371] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) +[2618780.375] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) +[2618780.392] {Default Queue} -> wl_surface#1447.damage(0, 0, 2, 2) +[2618780.398] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618780.402] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) +[2618780.406] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) +[2618780.411] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) +[2618780.415] {Default Queue} -> wl_surface#1607.damage(0, 0, 2, 2) +[2618780.419] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618780.423] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618780.427] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) +[2618780.432] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) +[2618780.436] {Default Queue} -> wl_surface#1772.damage(0, 0, 2, 2) +[2618780.440] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618780.444] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618780.448] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) +[2618780.452] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) +[2618780.457] {Default Queue} -> wl_surface#1927.damage(0, 0, 2, 2) +[2618780.461] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) +[2618780.466] {Default Queue} -> wl_region#895.subtract(0, 0, 22, 218) +[2618780.471] {Default Queue} -> wl_region#895.add(-20, -49, 22, 51) +[2618780.475] {Default Queue} -> wl_surface#871.set_opaque_region(wl_region#896) +[2618780.479] {Default Queue} -> wl_surface#871.set_input_region(wl_region#895) +[2618780.484] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) +[2618780.488] {Default Queue} -> wl_surface#871.commit() +[2618780.493] {Default Queue} -> wl_region#2111.subtract(0, 0, 2, 2) +[2618780.497] {Default Queue} -> wl_subsurface#2106.set_position(0, 334) +[2618780.501] {Default Queue} -> wl_region#2111.subtract(0, 0, 2, 336) +[2618780.506] {Default Queue} -> wl_region#2111.add(0, 0, 2, 2) +[2618780.510] {Default Queue} -> wl_surface#2087.set_opaque_region(wl_region#2112) +[2618780.514] {Default Queue} -> wl_surface#2087.set_input_region(wl_region#2111) +[2618780.518] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618780.522] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618780.527] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618780.531] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618780.535] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) +[2618780.539] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) +[2618780.543] {Default Queue} -> wl_surface#2119.damage(0, 0, 2, 2) +[2618780.548] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618780.552] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) +[2618780.556] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) +[2618780.560] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) +[2618780.565] {Default Queue} -> wl_surface#2343.damage(0, 0, 2, 2) +[2618780.569] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618780.573] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) +[2618780.577] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) +[2618780.581] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) +[2618780.585] {Default Queue} -> wl_surface#2508.damage(0, 0, 2, 2) +[2618780.590] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618780.594] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) +[2618780.598] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) +[2618780.602] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) +[2618780.606] {Default Queue} -> wl_surface#2663.damage(0, 0, 2, 2) +[2618780.611] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618780.615] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) +[2618780.619] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) +[2618780.623] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) +[2618780.627] {Default Queue} -> wl_surface#2823.damage(0, 0, 2, 2) +[2618780.632] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) +[2618780.638] {Default Queue} -> wl_region#2111.subtract(0, 0, 22, 385) +[2618780.645] {Default Queue} -> wl_region#2111.add(-20, -49, 22, 51) +[2618780.651] {Default Queue} -> wl_surface#2087.set_opaque_region(wl_region#2112) +[2618780.655] {Default Queue} -> wl_surface#2087.set_input_region(wl_region#2111) +[2618780.659] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) +[2618780.664] {Default Queue} -> wl_surface#2087.commit() +[2618780.669] {Default Queue} -> wl_region#3007.subtract(0, 0, 2, 2) +[2618780.673] {Default Queue} -> wl_subsurface#3002.set_position(0, 501) +[2618780.677] {Default Queue} -> wl_region#3007.subtract(0, 0, 2, 503) +[2618780.682] {Default Queue} -> wl_region#3007.add(0, 0, 2, 2) +[2618780.686] {Default Queue} -> wl_surface#2983.set_opaque_region(wl_region#3008) +[2618780.690] {Default Queue} -> wl_surface#2983.set_input_region(wl_region#3007) +[2618780.694] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618780.698] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618780.703] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618780.707] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) +[2618780.711] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) +[2618780.715] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) +[2618780.719] {Default Queue} -> wl_surface#3015.damage(0, 0, 2, 2) +[2618780.723] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618780.728] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2618780.732] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2618780.736] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618780.740] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) +[2618780.745] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) +[2618780.749] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) +[2618780.753] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) +[2618780.757] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) +[2618780.761] {Default Queue} -> wl_surface#3239.damage(0, 0, 2, 2) +[2618780.765] {Default Queue} -> wl_surface#3559.damage(0, 0, 2, 2) +[2618780.769] {Default Queue} -> wl_surface#3591.damage(0, 0, 2, 2) +[2618780.774] {Default Queue} -> wl_surface#3623.damage(0, 0, 2, 2) +[2618780.778] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) +[2618780.783] {Default Queue} -> wl_region#3007.subtract(0, 0, 22, 552) +[2618780.787] {Default Queue} -> wl_region#3007.add(-20, -49, 22, 51) +[2618780.791] {Default Queue} -> wl_surface#2983.set_opaque_region(wl_region#3008) +[2618780.795] {Default Queue} -> wl_surface#2983.set_input_region(wl_region#3007) +[2618780.800] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) +[2618780.804] {Default Queue} -> wl_surface#2983.commit() +[2618780.812] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) +[2618780.817] {Default Queue} -> wl_subsurface#154.set_position(0, 0) +[2618780.821] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) +[2618780.825] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) +[2618780.829] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618780.833] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618780.837] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618780.841] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618780.845] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) +[2618780.849] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) +[2618780.853] {Default Queue} -> wl_surface#135.damage(0, 0, 2, 2) +[2618780.863] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) +[2618780.867] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) +[2618780.876] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618780.880] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618780.889] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) +[2618780.893] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) +[2618780.898] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618780.902] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618780.910] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) +[2618780.915] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) +[2618780.920] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618780.924] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618780.929] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) +[2618780.933] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) +[2618780.937] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618780.941] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618780.948] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) +[2618780.952] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) +[2618780.956] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618780.960] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618780.965] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) +[2618780.969] {Default Queue} -> wl_surface#135.commit() +[2618780.974] {Default Queue} -> wl_region#319.subtract(0, 0, 2, 2) +[2618780.978] {Default Queue} -> wl_subsurface#314.set_position(115, 0) +[2618780.983] {Default Queue} -> wl_region#319.subtract(0, 0, 117, 2) +[2618780.987] {Default Queue} -> wl_region#319.add(0, 0, 2, 2) +[2618780.991] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618780.995] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618781.002] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) +[2618781.009] {Default Queue} -> wl_region#319.subtract(0, 0, 137, 51) +[2618781.013] {Default Queue} -> wl_region#319.add(-20, -49, 22, 51) +[2618781.017] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618781.021] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618781.359] {Default Queue} -> wl_region#319.subtract(0, 0, 137, 51) +[2618781.366] {Default Queue} -> wl_region#319.add(-20, -49, 22, 51) +[2618781.371] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618781.375] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618781.384] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) +[2618781.389] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) +[2618781.684] {Default Queue} -> wl_region#319.subtract(0, 0, 137, 51) +[2618781.692] {Default Queue} -> wl_region#319.add(-20, -49, 22, 51) +[2618781.697] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618781.701] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618781.711] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) +[2618781.715] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) +[2618781.720] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) +[2618781.725] {Default Queue} -> wl_surface#295.commit() +[2618781.731] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) +[2618781.735] {Default Queue} -> wl_subsurface#346.set_position(460, 0) +[2618781.739] {Default Queue} -> wl_region#351.subtract(0, 0, 462, 2) +[2618781.743] {Default Queue} -> wl_region#351.add(0, 0, 2, 2) +[2618781.748] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618781.752] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618781.756] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618781.760] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618781.764] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618781.769] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618781.773] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618781.777] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618781.781] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2618781.785] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618781.789] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618781.794] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618781.798] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618781.802] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618781.810] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2618781.817] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2618781.821] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) +[2618781.825] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) +[2618781.829] {Default Queue} -> wl_surface#327.damage(0, 0, 2, 2) +[2618781.838] {Default Queue} -> wl_region#351.subtract(0, 0, 482, 51) +[2618781.842] {Default Queue} -> wl_region#351.add(-20, -49, 22, 51) +[2618781.847] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618781.851] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618781.857] {Default Queue} -> wl_region#351.subtract(0, 0, 482, 51) +[2618781.867] {Default Queue} -> wl_region#351.add(-20, -49, 22, 51) +[2618781.872] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618781.876] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618781.881] {Default Queue} -> wl_region#351.subtract(0, 0, 482, 51) +[2618781.886] {Default Queue} -> wl_region#351.add(-20, -49, 22, 51) +[2618781.890] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618781.894] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618781.899] {Default Queue} -> wl_region#351.subtract(0, 0, 482, 51) +[2618781.903] {Default Queue} -> wl_region#351.add(-20, -49, 22, 51) +[2618781.907] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618781.911] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618781.918] {Default Queue} -> wl_region#351.subtract(0, 0, 482, 51) +[2618781.922] {Default Queue} -> wl_region#351.add(-20, -49, 22, 51) +[2618781.926] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618781.930] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618781.934] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) +[2618781.939] {Default Queue} -> wl_surface#327.commit() +[2618781.948] {Default Queue} -> wl_region#223.subtract(0, 0, 2, 2) +[2618781.952] {Default Queue} -> wl_subsurface#218.set_position(0, 0) +[2618781.956] {Default Queue} -> wl_region#223.subtract(0, 0, 19, 48) +[2618781.960] {Default Queue} -> wl_region#223.add(-20, -49, 19, 48) +[2618781.964] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618781.968] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618781.972] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618781.979] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 51) +[2618781.984] {Default Queue} -> wl_region#223.add(-20, -49, 22, 51) +[2618781.988] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618781.992] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618782.067] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 51) +[2618782.072] {Default Queue} -> wl_region#223.add(-20, -49, 22, 51) +[2618782.076] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618782.081] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618782.087] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618782.091] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618782.141] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 51) +[2618782.146] {Default Queue} -> wl_region#223.add(-20, -49, 22, 51) +[2618782.150] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618782.154] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618782.159] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618782.163] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) +[2618782.168] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) +[2618782.173] {Default Queue} -> wl_surface#199.commit() +[2618782.178] {Default Queue} -> wl_region#255.subtract(0, 0, 2, 2) +[2618782.183] {Default Queue} -> wl_subsurface#250.set_position(0, 20) +[2618782.187] {Default Queue} -> wl_region#255.subtract(0, 0, 19, 68) +[2618782.191] {Default Queue} -> wl_region#255.add(-20, -49, 19, 48) +[2618782.198] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) +[2618782.204] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) +[2618782.208] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618782.213] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) +[2618782.219] {Default Queue} -> wl_region#255.subtract(0, 0, 25, 54) +[2618782.223] {Default Queue} -> wl_region#255.add(-23, -52, 25, 34) +[2618782.227] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) +[2618782.231] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) +[2618782.236] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) +[2618782.240] {Default Queue} -> wl_surface#231.commit() +[2618782.248] {Default Queue} -> wl_region#415.subtract(0, 0, 2, 2) +[2618782.253] {Default Queue} -> wl_subsurface#410.set_position(0, 0) +[2618782.257] {Default Queue} -> wl_region#415.subtract(0, 0, 19, 48) +[2618782.261] {Default Queue} -> wl_region#415.add(-20, -49, 19, 48) +[2618782.265] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618782.269] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618782.273] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618782.281] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 51) +[2618782.285] {Default Queue} -> wl_region#415.add(-480, -49, 482, 51) +[2618782.289] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618782.293] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618782.392] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 51) +[2618782.399] {Default Queue} -> wl_region#415.add(-480, -49, 482, 51) +[2618782.404] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618782.408] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618782.415] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618782.421] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618782.500] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 51) +[2618782.506] {Default Queue} -> wl_region#415.add(-480, -49, 482, 51) +[2618782.510] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618782.515] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618782.521] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618782.525] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) +[2618782.530] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) +[2618782.534] {Default Queue} -> wl_surface#391.commit() +[2618782.540] {Default Queue} -> wl_region#447.subtract(0, 0, 2, 2) +[2618782.544] {Default Queue} -> wl_subsurface#442.set_position(0, 20) +[2618782.548] {Default Queue} -> wl_region#447.subtract(0, 0, 19, 68) +[2618782.552] {Default Queue} -> wl_region#447.add(-20, -49, 19, 48) +[2618782.556] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) +[2618782.560] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) +[2618782.565] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618782.569] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618782.573] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618782.577] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618782.581] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618782.585] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2618782.591] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618782.596] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618782.601] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618782.606] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618782.610] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618782.614] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2618782.618] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2618782.622] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) +[2618782.629] {Default Queue} -> wl_region#447.subtract(0, 0, 485, 54) +[2618782.637] {Default Queue} -> wl_region#447.add(-483, -52, 485, 34) +[2618782.644] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) +[2618782.648] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) +[2618782.652] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) +[2618782.657] {Default Queue} -> wl_surface#423.commit() +[2618782.664] {Default Queue} -> wl_region#511.subtract(0, 0, 2, 2) +[2618782.669] {Default Queue} -> wl_subsurface#506.set_position(0, 0) +[2618782.673] {Default Queue} -> wl_region#511.subtract(0, 0, 19, 48) +[2618782.678] {Default Queue} -> wl_region#511.add(-20, -49, 19, 48) +[2618782.682] {Default Queue} -> wl_surface#487.set_opaque_region(wl_region#512) +[2618782.686] {Default Queue} -> wl_surface#487.set_input_region(wl_region#511) +[2618782.692] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618782.698] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618782.702] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618782.706] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618782.710] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618782.715] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) +[2618782.722] {Default Queue} -> wl_region#511.subtract(0, 0, 485, 34) +[2618782.728] {Default Queue} -> wl_region#511.add(-483, -52, 485, 34) +[2618782.734] {Default Queue} -> wl_surface#487.set_opaque_region(wl_region#512) +[2618782.738] {Default Queue} -> wl_surface#487.set_input_region(wl_region#511) +[2618782.743] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) +[2618782.748] {Default Queue} -> wl_surface#487.commit() +[2618782.753] {Default Queue} -> wl_region#703.subtract(0, 0, 2, 2) +[2618782.757] {Default Queue} -> wl_subsurface#698.set_position(18, 0) +[2618782.761] {Default Queue} -> wl_region#703.subtract(0, 0, 37, 48) +[2618782.766] {Default Queue} -> wl_region#703.add(-20, -49, 19, 48) +[2618782.771] {Default Queue} -> wl_surface#679.set_opaque_region(wl_region#704) +[2618782.777] {Default Queue} -> wl_surface#679.set_input_region(wl_region#703) +[2618782.781] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618782.785] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618782.790] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618782.796] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618782.801] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618782.805] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2618782.811] {Default Queue} -> wl_region#703.subtract(0, 0, 485, 54) +[2618782.817] {Default Queue} -> wl_region#703.add(-483, -72, 467, 54) +[2618782.822] {Default Queue} -> wl_surface#679.set_opaque_region(wl_region#704) +[2618782.827] {Default Queue} -> wl_surface#679.set_input_region(wl_region#703) +[2618782.831] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) +[2618782.835] {Default Queue} -> wl_surface#679.commit() +[2618782.844] {Default Queue} -> wl_region#543.subtract(0, 0, 2, 2) +[2618782.848] {Default Queue} -> wl_subsurface#538.set_position(0, 0) +[2618782.852] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) +[2618782.856] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) +[2618782.866] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618782.870] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618782.874] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618782.881] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618782.885] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618782.889] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618782.893] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618782.900] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618782.907] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618782.912] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618782.916] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618782.923] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618782.932] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618782.938] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618782.942] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618782.950] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618782.955] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618782.959] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618782.963] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618782.968] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618782.972] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618782.976] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618782.980] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618782.985] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618782.990] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618782.994] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618782.998] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618783.002] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) +[2618783.007] {Default Queue} -> wl_surface#519.commit() +[2618783.012] {Default Queue} -> wl_region#575.subtract(0, 0, 2, 2) +[2618783.016] {Default Queue} -> wl_subsurface#570.set_position(0, 0) +[2618783.020] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) +[2618783.025] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) +[2618783.029] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618783.033] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618783.037] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618783.043] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618783.048] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618783.052] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618783.056] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618783.061] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618783.066] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618783.070] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618783.074] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618783.080] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618783.085] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618783.089] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618783.093] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618783.097] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618783.102] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618783.106] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618783.111] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618783.117] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618783.122] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618783.127] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618783.133] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618783.139] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618783.144] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618783.149] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618783.154] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618783.161] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) +[2618783.166] {Default Queue} -> wl_surface#551.commit() +[2618783.172] {Default Queue} -> wl_region#607.subtract(0, 0, 2, 2) +[2618783.177] {Default Queue} -> wl_subsurface#602.set_position(0, 0) +[2618783.182] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) +[2618783.187] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) +[2618783.196] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618783.205] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618783.209] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618783.217] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618783.222] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618783.227] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618783.232] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618783.239] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618783.244] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618783.249] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618783.254] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618783.262] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618783.268] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618783.272] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618783.276] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618783.281] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618783.285] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618783.290] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618783.294] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618783.298] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618783.303] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618783.307] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618783.311] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618783.316] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618783.321] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618783.325] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618783.329] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618783.334] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) +[2618783.338] {Default Queue} -> wl_surface#583.commit() +[2618783.345] {Default Queue} -> wl_region#639.subtract(0, 0, 2, 2) +[2618783.351] {Default Queue} -> wl_subsurface#634.set_position(0, 0) +[2618783.356] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) +[2618783.361] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) +[2618783.367] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618783.372] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618783.377] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618783.386] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618783.393] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618783.397] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618783.401] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618783.407] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618783.411] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618783.415] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618783.419] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618783.426] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618783.430] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618783.434] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618783.438] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618783.443] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618783.447] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618783.451] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618783.455] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618783.460] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618783.464] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618783.472] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618783.478] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618783.483] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618783.487] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618783.491] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618783.495] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618783.500] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) +[2618783.505] {Default Queue} -> wl_surface#615.commit() +[2618783.510] {Default Queue} -> wl_region#671.subtract(0, 0, 2, 2) +[2618783.514] {Default Queue} -> wl_subsurface#666.set_position(0, 0) +[2618783.518] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) +[2618783.522] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) +[2618783.526] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618783.530] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618783.535] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618783.541] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618783.546] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618783.550] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618783.554] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618783.559] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618783.564] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618783.568] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618783.572] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618783.579] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618783.583] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618783.587] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618783.591] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618783.596] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618783.600] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618783.604] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618783.608] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618783.613] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618783.617] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618783.621] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618783.625] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618783.630] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618783.635] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618783.639] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618783.643] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618783.648] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) +[2618783.652] {Default Queue} -> wl_surface#647.commit() +[2618783.665] {Default Queue} -> wl_region#735.subtract(0, 0, 2, 2) +[2618783.671] {Default Queue} -> wl_subsurface#730.set_position(0, 0) +[2618783.675] {Default Queue} -> wl_region#735.subtract(0, 0, 19, 48) +[2618783.679] {Default Queue} -> wl_region#735.add(-20, -49, 19, 48) +[2618783.683] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2618783.687] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2618783.691] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618783.700] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) +[2618783.705] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) +[2618783.709] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2618783.713] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2618783.827] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) +[2618783.832] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) +[2618783.836] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2618783.846] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2618783.853] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618783.858] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618783.938] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) +[2618783.943] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) +[2618783.947] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2618783.951] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2618783.957] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618783.961] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618783.966] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) +[2618783.970] {Default Queue} -> wl_surface#711.commit() +[2618783.976] {Default Queue} -> wl_region#767.subtract(0, 0, 2, 2) +[2618783.980] {Default Queue} -> wl_subsurface#762.set_position(0, 0) +[2618783.984] {Default Queue} -> wl_region#767.subtract(0, 0, 19, 48) +[2618783.989] {Default Queue} -> wl_region#767.add(-20, -49, 19, 48) +[2618783.993] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2618783.997] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2618784.001] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618784.008] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) +[2618784.012] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) +[2618784.017] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2618784.021] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2618784.115] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) +[2618784.119] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) +[2618784.124] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2618784.128] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2618784.133] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618784.137] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618784.211] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) +[2618784.216] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) +[2618784.220] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2618784.224] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2618784.229] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618784.233] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618784.238] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) +[2618784.242] {Default Queue} -> wl_surface#743.commit() +[2618784.248] {Default Queue} -> wl_region#799.subtract(0, 0, 2, 2) +[2618784.252] {Default Queue} -> wl_subsurface#794.set_position(0, 0) +[2618784.257] {Default Queue} -> wl_region#799.subtract(0, 0, 19, 48) +[2618784.261] {Default Queue} -> wl_region#799.add(-20, -49, 19, 48) +[2618784.265] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2618784.269] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2618784.273] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618784.282] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) +[2618784.286] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) +[2618784.290] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2618784.294] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2618784.385] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) +[2618784.391] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) +[2618784.395] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2618784.399] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2618784.404] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618784.408] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618784.482] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) +[2618784.487] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) +[2618784.495] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2618784.501] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2618784.505] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618784.510] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618784.515] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) +[2618784.519] {Default Queue} -> wl_surface#775.commit() +[2618784.525] {Default Queue} -> wl_region#831.subtract(0, 0, 2, 2) +[2618784.530] {Default Queue} -> wl_subsurface#826.set_position(0, 0) +[2618784.538] {Default Queue} -> wl_region#831.subtract(0, 0, 19, 48) +[2618784.543] {Default Queue} -> wl_region#831.add(-20, -49, 19, 48) +[2618784.547] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2618784.551] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2618784.555] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618784.564] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) +[2618784.568] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) +[2618784.572] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2618784.576] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2618784.665] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) +[2618784.670] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) +[2618784.675] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2618784.678] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2618784.683] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618784.688] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618784.760] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) +[2618784.764] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) +[2618784.768] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2618784.772] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2618784.777] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618784.781] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618784.786] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) +[2618784.791] {Default Queue} -> wl_surface#807.commit() +[2618784.796] {Default Queue} -> wl_region#863.subtract(0, 0, 2, 2) +[2618784.800] {Default Queue} -> wl_subsurface#858.set_position(0, 0) +[2618784.804] {Default Queue} -> wl_region#863.subtract(0, 0, 19, 48) +[2618784.808] {Default Queue} -> wl_region#863.add(-20, -49, 19, 48) +[2618784.812] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2618784.816] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2618784.820] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618784.828] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) +[2618784.832] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) +[2618784.836] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2618784.840] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2618784.935] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) +[2618784.940] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) +[2618784.944] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2618784.948] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2618784.953] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618784.957] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618785.030] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) +[2618785.035] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) +[2618785.039] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2618785.043] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2618785.048] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618785.052] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618785.057] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) +[2618785.062] {Default Queue} -> wl_surface#839.commit() +[2618785.075] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) +[2618785.081] {Default Queue} -> wl_subsurface#922.set_position(0, 0) +[2618785.086] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) +[2618785.090] {Default Queue} -> wl_region#927.add(0, 0, 2, 2) +[2618785.094] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618785.098] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618785.103] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618785.107] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) +[2618785.112] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) +[2618785.116] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) +[2618785.120] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) +[2618785.124] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) +[2618785.129] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2618785.133] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618785.137] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618785.141] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618785.145] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618785.150] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618785.154] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618785.158] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2618785.162] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) +[2618785.166] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) +[2618785.170] {Default Queue} -> wl_surface#903.damage(0, 0, 2, 2) +[2618785.179] {Default Queue} -> wl_region#927.subtract(0, 0, 22, 51) +[2618785.183] {Default Queue} -> wl_region#927.add(-20, -49, 22, 51) +[2618785.187] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618785.191] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618785.198] {Default Queue} -> wl_region#927.subtract(0, 0, 22, 51) +[2618785.202] {Default Queue} -> wl_region#927.add(-20, -49, 22, 51) +[2618785.207] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618785.211] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618785.216] {Default Queue} -> wl_region#927.subtract(0, 0, 22, 51) +[2618785.221] {Default Queue} -> wl_region#927.add(-20, -49, 22, 51) +[2618785.225] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618785.229] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618785.234] {Default Queue} -> wl_region#927.subtract(0, 0, 22, 51) +[2618785.238] {Default Queue} -> wl_region#927.add(-20, -49, 22, 51) +[2618785.243] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618785.246] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618785.253] {Default Queue} -> wl_region#927.subtract(0, 0, 22, 51) +[2618785.257] {Default Queue} -> wl_region#927.add(-20, -49, 22, 51) +[2618785.261] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618785.265] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618785.270] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) +[2618785.274] {Default Queue} -> wl_surface#903.commit() +[2618785.280] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) +[2618785.284] {Default Queue} -> wl_subsurface#1466.set_position(115, 0) +[2618785.288] {Default Queue} -> wl_region#1471.subtract(0, 0, 117, 2) +[2618785.292] {Default Queue} -> wl_region#1471.add(0, 0, 2, 2) +[2618785.296] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618785.300] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618785.304] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618785.309] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618785.314] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) +[2618785.318] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) +[2618785.322] {Default Queue} -> wl_surface#1447.damage(0, 0, 2, 2) +[2618785.330] {Default Queue} -> wl_region#1471.subtract(0, 0, 137, 218) +[2618785.338] {Default Queue} -> wl_region#1471.add(-20, -216, 22, 218) +[2618785.343] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618785.347] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618785.353] {Default Queue} -> wl_region#1471.subtract(0, 0, 137, 218) +[2618785.357] {Default Queue} -> wl_region#1471.add(-20, -216, 22, 218) +[2618785.361] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618785.365] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618785.370] {Default Queue} -> wl_region#1471.subtract(0, 0, 137, 218) +[2618785.374] {Default Queue} -> wl_region#1471.add(-20, -216, 22, 218) +[2618785.378] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618785.382] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618785.387] {Default Queue} -> wl_region#1471.subtract(0, 0, 137, 218) +[2618785.391] {Default Queue} -> wl_region#1471.add(-20, -216, 22, 218) +[2618785.395] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618785.400] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618785.409] {Default Queue} -> wl_region#1471.subtract(0, 0, 137, 218) +[2618785.439] {Default Queue} -> wl_region#1471.add(-20, -216, 22, 218) +[2618785.447] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618785.453] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618785.461] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) +[2618785.469] {Default Queue} -> wl_surface#1447.commit() +[2618785.477] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) +[2618785.482] {Default Queue} -> wl_subsurface#1626.set_position(230, 0) +[2618785.486] {Default Queue} -> wl_region#1631.subtract(0, 0, 232, 2) +[2618785.491] {Default Queue} -> wl_region#1631.add(0, 0, 2, 2) +[2618785.495] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618785.499] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618785.504] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618785.508] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) +[2618785.512] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) +[2618785.516] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) +[2618785.520] {Default Queue} -> wl_surface#1607.damage(0, 0, 2, 2) +[2618785.531] {Default Queue} -> wl_region#1631.subtract(0, 0, 252, 218) +[2618785.536] {Default Queue} -> wl_region#1631.add(-20, -216, 22, 218) +[2618785.540] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618785.545] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618785.552] {Default Queue} -> wl_region#1631.subtract(0, 0, 252, 218) +[2618785.556] {Default Queue} -> wl_region#1631.add(-20, -216, 22, 218) +[2618785.560] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618785.564] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618785.570] {Default Queue} -> wl_region#1631.subtract(0, 0, 252, 218) +[2618785.574] {Default Queue} -> wl_region#1631.add(-20, -216, 22, 218) +[2618785.578] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618785.582] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618785.587] {Default Queue} -> wl_region#1631.subtract(0, 0, 252, 218) +[2618785.592] {Default Queue} -> wl_region#1631.add(-20, -216, 22, 218) +[2618785.596] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618785.600] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618785.607] {Default Queue} -> wl_region#1631.subtract(0, 0, 252, 218) +[2618785.611] {Default Queue} -> wl_region#1631.add(-20, -216, 22, 218) +[2618785.615] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618785.619] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618785.624] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) +[2618785.633] {Default Queue} -> wl_surface#1607.commit() +[2618785.644] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) +[2618785.649] {Default Queue} -> wl_subsurface#1786.set_position(345, 0) +[2618785.653] {Default Queue} -> wl_region#1791.subtract(0, 0, 347, 2) +[2618785.657] {Default Queue} -> wl_region#1791.add(0, 0, 2, 2) +[2618785.661] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618785.665] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618785.670] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618785.674] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618785.679] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) +[2618785.683] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) +[2618785.687] {Default Queue} -> wl_surface#1772.damage(0, 0, 2, 2) +[2618785.694] {Default Queue} -> wl_region#1791.subtract(0, 0, 367, 218) +[2618785.699] {Default Queue} -> wl_region#1791.add(-20, -216, 22, 218) +[2618785.703] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618785.707] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618785.712] {Default Queue} -> wl_region#1791.subtract(0, 0, 367, 218) +[2618785.716] {Default Queue} -> wl_region#1791.add(-20, -216, 22, 218) +[2618785.722] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618785.727] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618785.734] {Default Queue} -> wl_region#1791.subtract(0, 0, 367, 218) +[2618785.741] {Default Queue} -> wl_region#1791.add(-20, -216, 22, 218) +[2618785.746] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618785.750] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618785.755] {Default Queue} -> wl_region#1791.subtract(0, 0, 367, 218) +[2618785.759] {Default Queue} -> wl_region#1791.add(-20, -216, 22, 218) +[2618785.764] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618785.768] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618785.774] {Default Queue} -> wl_region#1791.subtract(0, 0, 367, 218) +[2618785.778] {Default Queue} -> wl_region#1791.add(-20, -216, 22, 218) +[2618785.782] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618785.786] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618785.791] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) +[2618785.795] {Default Queue} -> wl_surface#1772.commit() +[2618785.800] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) +[2618785.804] {Default Queue} -> wl_subsurface#1946.set_position(460, 0) +[2618785.808] {Default Queue} -> wl_region#1951.subtract(0, 0, 462, 2) +[2618785.812] {Default Queue} -> wl_region#1951.add(0, 0, 2, 2) +[2618785.816] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618785.821] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618785.825] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618785.829] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618785.833] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) +[2618785.838] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) +[2618785.842] {Default Queue} -> wl_surface#1927.damage(0, 0, 2, 2) +[2618785.851] {Default Queue} -> wl_region#1951.subtract(0, 0, 482, 218) +[2618785.855] {Default Queue} -> wl_region#1951.add(-20, -216, 22, 218) +[2618785.859] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618785.864] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618785.883] {Default Queue} -> wl_region#1951.subtract(0, 0, 482, 218) +[2618785.889] {Default Queue} -> wl_region#1951.add(-20, -216, 22, 218) +[2618785.893] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618785.897] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618785.903] {Default Queue} -> wl_region#1951.subtract(0, 0, 482, 218) +[2618785.910] {Default Queue} -> wl_region#1951.add(-20, -216, 22, 218) +[2618785.921] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618785.926] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618785.931] {Default Queue} -> wl_region#1951.subtract(0, 0, 482, 218) +[2618785.935] {Default Queue} -> wl_region#1951.add(-20, -216, 22, 218) +[2618785.939] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618785.943] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618785.950] {Default Queue} -> wl_region#1951.subtract(0, 0, 482, 218) +[2618785.954] {Default Queue} -> wl_region#1951.add(-20, -216, 22, 218) +[2618785.958] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618785.962] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618785.967] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) +[2618785.971] {Default Queue} -> wl_surface#1927.commit() +[2618785.979] {Default Queue} -> wl_region#991.subtract(0, 0, 2, 2) +[2618785.984] {Default Queue} -> wl_subsurface#986.set_position(0, 0) +[2618785.988] {Default Queue} -> wl_region#991.subtract(0, 0, 19, 48) +[2618785.992] {Default Queue} -> wl_region#991.add(-20, -49, 19, 48) +[2618785.996] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2618786.000] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2618786.004] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618786.012] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 218) +[2618786.016] {Default Queue} -> wl_region#991.add(-20, -216, 22, 218) +[2618786.020] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2618786.024] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2618786.117] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 218) +[2618786.124] {Default Queue} -> wl_region#991.add(-20, -216, 22, 218) +[2618786.129] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2618786.135] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2618786.144] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618786.150] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618786.234] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 218) +[2618786.241] {Default Queue} -> wl_region#991.add(-20, -216, 22, 218) +[2618786.247] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2618786.252] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2618786.261] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618786.267] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) +[2618786.273] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) +[2618786.277] {Default Queue} -> wl_surface#967.commit() +[2618786.284] {Default Queue} -> wl_region#1023.subtract(0, 0, 2, 2) +[2618786.289] {Default Queue} -> wl_subsurface#1018.set_position(0, 20) +[2618786.294] {Default Queue} -> wl_region#1023.subtract(0, 0, 19, 68) +[2618786.299] {Default Queue} -> wl_region#1023.add(-20, -49, 19, 48) +[2618786.305] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) +[2618786.328] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) +[2618786.337] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) +[2618786.342] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) +[2618786.347] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) +[2618786.351] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) +[2618786.356] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) +[2618786.360] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2618786.364] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618786.368] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618786.372] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618786.377] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618786.381] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618786.385] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618786.394] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2618786.401] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) +[2618786.411] {Default Queue} -> wl_region#1023.subtract(0, 0, 25, 221) +[2618786.415] {Default Queue} -> wl_region#1023.add(-23, -219, 25, 201) +[2618786.420] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) +[2618786.424] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) +[2618786.430] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) +[2618786.434] {Default Queue} -> wl_surface#999.commit() +[2618786.443] {Default Queue} -> wl_region#1087.subtract(0, 0, 2, 2) +[2618786.448] {Default Queue} -> wl_subsurface#1082.set_position(0, 0) +[2618786.452] {Default Queue} -> wl_region#1087.subtract(0, 0, 19, 48) +[2618786.456] {Default Queue} -> wl_region#1087.add(-20, -49, 19, 48) +[2618786.461] {Default Queue} -> wl_surface#1063.set_opaque_region(wl_region#1088) +[2618786.466] {Default Queue} -> wl_surface#1063.set_input_region(wl_region#1087) +[2618786.470] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) +[2618786.474] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) +[2618786.478] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) +[2618786.482] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) +[2618786.486] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) +[2618786.491] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) +[2618786.497] {Default Queue} -> wl_region#1087.subtract(0, 0, 25, 201) +[2618786.501] {Default Queue} -> wl_region#1087.add(-23, -219, 25, 201) +[2618786.506] {Default Queue} -> wl_surface#1063.set_opaque_region(wl_region#1088) +[2618786.510] {Default Queue} -> wl_surface#1063.set_input_region(wl_region#1087) +[2618786.514] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) +[2618786.519] {Default Queue} -> wl_surface#1063.commit() +[2618786.524] {Default Queue} -> wl_region#1279.subtract(0, 0, 2, 2) +[2618786.528] {Default Queue} -> wl_subsurface#1274.set_position(18, 0) +[2618786.533] {Default Queue} -> wl_region#1279.subtract(0, 0, 37, 48) +[2618786.537] {Default Queue} -> wl_region#1279.add(-20, -49, 19, 48) +[2618786.541] {Default Queue} -> wl_surface#1255.set_opaque_region(wl_region#1280) +[2618786.545] {Default Queue} -> wl_surface#1255.set_input_region(wl_region#1279) +[2618786.549] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618786.553] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618786.557] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618786.561] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618786.566] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618786.570] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618786.576] {Default Queue} -> wl_region#1279.subtract(0, 0, 25, 221) +[2618786.581] {Default Queue} -> wl_region#1279.add(-23, -239, 7, 221) +[2618786.585] {Default Queue} -> wl_surface#1255.set_opaque_region(wl_region#1280) +[2618786.589] {Default Queue} -> wl_surface#1255.set_input_region(wl_region#1279) +[2618786.593] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) +[2618786.598] {Default Queue} -> wl_surface#1255.commit() +[2618786.607] {Default Queue} -> wl_region#1119.subtract(0, 0, 2, 2) +[2618786.611] {Default Queue} -> wl_subsurface#1114.set_position(0, 0) +[2618786.616] {Default Queue} -> wl_region#1119.subtract(0, 0, 19, 48) +[2618786.620] {Default Queue} -> wl_region#1119.add(-20, -49, 19, 48) +[2618786.624] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618786.628] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618786.632] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) +[2618786.638] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) +[2618786.643] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) +[2618786.647] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618786.651] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618786.658] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) +[2618786.665] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) +[2618786.671] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618786.675] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618786.680] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) +[2618786.685] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) +[2618786.689] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618786.693] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618786.698] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) +[2618786.702] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) +[2618786.706] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618786.710] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618786.715] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) +[2618786.719] {Default Queue} -> wl_surface#1095.commit() +[2618786.724] {Default Queue} -> wl_region#1151.subtract(0, 0, 2, 2) +[2618786.728] {Default Queue} -> wl_subsurface#1146.set_position(0, 0) +[2618786.732] {Default Queue} -> wl_region#1151.subtract(0, 0, 19, 48) +[2618786.736] {Default Queue} -> wl_region#1151.add(-20, -49, 19, 48) +[2618786.740] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618786.744] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618786.748] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) +[2618786.754] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) +[2618786.759] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) +[2618786.763] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618786.767] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618786.773] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) +[2618786.778] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) +[2618786.782] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618786.786] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618786.790] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) +[2618786.795] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) +[2618786.799] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618786.803] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618786.807] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) +[2618786.811] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) +[2618786.816] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618786.820] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618786.824] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) +[2618786.828] {Default Queue} -> wl_surface#1127.commit() +[2618786.834] {Default Queue} -> wl_region#1183.subtract(0, 0, 2, 2) +[2618786.838] {Default Queue} -> wl_subsurface#1178.set_position(0, 0) +[2618786.842] {Default Queue} -> wl_region#1183.subtract(0, 0, 19, 48) +[2618786.846] {Default Queue} -> wl_region#1183.add(-20, -49, 19, 48) +[2618786.851] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618786.854] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618786.858] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) +[2618786.870] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) +[2618786.874] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) +[2618786.878] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618786.882] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618786.889] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) +[2618786.893] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) +[2618786.897] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618786.901] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618786.908] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) +[2618786.914] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) +[2618786.918] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618786.922] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618786.927] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) +[2618786.931] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) +[2618786.935] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618786.939] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618786.944] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) +[2618786.948] {Default Queue} -> wl_surface#1159.commit() +[2618786.953] {Default Queue} -> wl_region#1215.subtract(0, 0, 2, 2) +[2618786.957] {Default Queue} -> wl_subsurface#1210.set_position(0, 0) +[2618786.961] {Default Queue} -> wl_region#1215.subtract(0, 0, 19, 48) +[2618786.965] {Default Queue} -> wl_region#1215.add(-20, -49, 19, 48) +[2618786.969] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618786.973] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618786.978] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) +[2618786.984] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) +[2618786.988] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) +[2618786.992] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618786.996] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618787.003] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) +[2618787.007] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) +[2618787.011] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618787.015] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618787.020] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) +[2618787.024] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) +[2618787.028] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618787.032] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618787.037] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) +[2618787.041] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) +[2618787.045] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618787.049] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618787.053] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) +[2618787.057] {Default Queue} -> wl_surface#1191.commit() +[2618787.062] {Default Queue} -> wl_region#1247.subtract(0, 0, 2, 2) +[2618787.067] {Default Queue} -> wl_subsurface#1242.set_position(0, 0) +[2618787.071] {Default Queue} -> wl_region#1247.subtract(0, 0, 19, 48) +[2618787.075] {Default Queue} -> wl_region#1247.add(-20, -49, 19, 48) +[2618787.079] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618787.083] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618787.087] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) +[2618787.093] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) +[2618787.097] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) +[2618787.101] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618787.105] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618787.112] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) +[2618787.116] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) +[2618787.120] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618787.124] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618787.129] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) +[2618787.133] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) +[2618787.137] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618787.145] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618787.155] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) +[2618787.160] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) +[2618787.164] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618787.168] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618787.173] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) +[2618787.177] {Default Queue} -> wl_surface#1223.commit() +[2618787.186] {Default Queue} -> wl_region#1311.subtract(0, 0, 2, 2) +[2618787.191] {Default Queue} -> wl_subsurface#1306.set_position(0, 0) +[2618787.195] {Default Queue} -> wl_region#1311.subtract(0, 0, 19, 48) +[2618787.199] {Default Queue} -> wl_region#1311.add(-20, -49, 19, 48) +[2618787.203] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2618787.207] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2618787.211] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618787.219] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) +[2618787.223] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) +[2618787.228] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2618787.232] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2618787.351] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) +[2618787.357] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) +[2618787.362] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2618787.366] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2618787.373] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618787.378] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618787.492] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) +[2618787.497] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) +[2618787.502] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2618787.506] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2618787.511] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618787.515] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618787.520] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) +[2618787.525] {Default Queue} -> wl_surface#1287.commit() +[2618787.531] {Default Queue} -> wl_region#1343.subtract(0, 0, 2, 2) +[2618787.535] {Default Queue} -> wl_subsurface#1338.set_position(0, 0) +[2618787.539] {Default Queue} -> wl_region#1343.subtract(0, 0, 19, 48) +[2618787.544] {Default Queue} -> wl_region#1343.add(-20, -49, 19, 48) +[2618787.548] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2618787.552] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2618787.556] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618787.565] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) +[2618787.569] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) +[2618787.574] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2618787.578] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2618787.672] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) +[2618787.676] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) +[2618787.681] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2618787.685] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2618787.690] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618787.694] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618787.768] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) +[2618787.773] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) +[2618787.777] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2618787.781] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2618787.786] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618787.790] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618787.800] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) +[2618787.806] {Default Queue} -> wl_surface#1319.commit() +[2618787.812] {Default Queue} -> wl_region#1375.subtract(0, 0, 2, 2) +[2618787.816] {Default Queue} -> wl_subsurface#1370.set_position(0, 0) +[2618787.823] {Default Queue} -> wl_region#1375.subtract(0, 0, 19, 48) +[2618787.827] {Default Queue} -> wl_region#1375.add(-20, -49, 19, 48) +[2618787.831] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2618787.836] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2618787.840] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618787.847] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) +[2618787.851] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) +[2618787.855] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2618787.859] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2618787.956] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) +[2618787.961] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) +[2618787.965] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2618787.969] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2618787.974] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618787.979] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618788.061] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) +[2618788.066] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) +[2618788.070] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2618788.074] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2618788.080] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618788.084] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618788.089] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) +[2618788.094] {Default Queue} -> wl_surface#1351.commit() +[2618788.099] {Default Queue} -> wl_region#1407.subtract(0, 0, 2, 2) +[2618788.103] {Default Queue} -> wl_subsurface#1402.set_position(0, 0) +[2618788.107] {Default Queue} -> wl_region#1407.subtract(0, 0, 19, 48) +[2618788.112] {Default Queue} -> wl_region#1407.add(-20, -49, 19, 48) +[2618788.116] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2618788.120] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2618788.124] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618788.132] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) +[2618788.136] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) +[2618788.141] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2618788.145] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2618788.280] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) +[2618788.288] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) +[2618788.294] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2618788.299] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2618788.304] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618788.309] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618788.386] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) +[2618788.391] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) +[2618788.396] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2618788.400] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2618788.405] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618788.409] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618788.415] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) +[2618788.419] {Default Queue} -> wl_surface#1383.commit() +[2618788.425] {Default Queue} -> wl_region#1439.subtract(0, 0, 2, 2) +[2618788.429] {Default Queue} -> wl_subsurface#1434.set_position(0, 0) +[2618788.433] {Default Queue} -> wl_region#1439.subtract(0, 0, 19, 48) +[2618788.448] {Default Queue} -> wl_region#1439.add(-20, -49, 19, 48) +[2618788.457] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2618788.461] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2618788.465] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618788.474] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) +[2618788.479] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) +[2618788.483] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2618788.487] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2618788.580] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) +[2618788.585] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) +[2618788.589] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2618788.593] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2618788.598] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618788.603] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618788.688] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) +[2618788.693] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) +[2618788.697] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2618788.701] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2618788.706] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618788.710] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618788.715] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) +[2618788.719] {Default Queue} -> wl_surface#1415.commit() +[2618788.728] {Default Queue} -> wl_region#1535.subtract(0, 0, 2, 2) +[2618788.733] {Default Queue} -> wl_subsurface#1530.set_position(0, 0) +[2618788.737] {Default Queue} -> wl_region#1535.subtract(0, 0, 19, 48) +[2618788.741] {Default Queue} -> wl_region#1535.add(-20, -49, 19, 48) +[2618788.745] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2618788.749] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2618788.753] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618788.761] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 218) +[2618788.766] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 218) +[2618788.770] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2618788.774] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2618788.871] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 218) +[2618788.876] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 218) +[2618788.900] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2618788.905] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2618788.911] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618788.916] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618789.030] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 218) +[2618789.044] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 218) +[2618789.050] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2618789.055] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2618789.065] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618789.070] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) +[2618789.076] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) +[2618789.081] {Default Queue} -> wl_surface#1511.commit() +[2618789.087] {Default Queue} -> wl_region#1567.subtract(0, 0, 2, 2) +[2618789.092] {Default Queue} -> wl_subsurface#1562.set_position(0, 20) +[2618789.096] {Default Queue} -> wl_region#1567.subtract(0, 0, 19, 68) +[2618789.100] {Default Queue} -> wl_region#1567.add(-20, -49, 19, 48) +[2618789.105] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) +[2618789.109] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) +[2618789.113] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618789.117] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) +[2618789.130] {Default Queue} -> wl_region#1567.subtract(0, 0, 140, 221) +[2618789.138] {Default Queue} -> wl_region#1567.add(-138, -219, 140, 201) +[2618789.143] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) +[2618789.147] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) +[2618789.152] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) +[2618789.157] {Default Queue} -> wl_surface#1543.commit() +[2618789.166] {Default Queue} -> wl_region#1695.subtract(0, 0, 2, 2) +[2618789.170] {Default Queue} -> wl_subsurface#1690.set_position(0, 0) +[2618789.174] {Default Queue} -> wl_region#1695.subtract(0, 0, 19, 48) +[2618789.179] {Default Queue} -> wl_region#1695.add(-20, -49, 19, 48) +[2618789.183] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2618789.187] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2618789.191] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618789.199] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 218) +[2618789.203] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 218) +[2618789.207] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2618789.211] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2618789.269] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 218) +[2618789.274] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 218) +[2618789.279] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2618789.283] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2618789.288] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618789.293] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618789.333] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 218) +[2618789.338] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 218) +[2618789.342] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2618789.346] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2618789.351] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618789.356] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) +[2618789.361] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) +[2618789.365] {Default Queue} -> wl_surface#1671.commit() +[2618789.370] {Default Queue} -> wl_region#1727.subtract(0, 0, 2, 2) +[2618789.375] {Default Queue} -> wl_subsurface#1722.set_position(0, 20) +[2618789.379] {Default Queue} -> wl_region#1727.subtract(0, 0, 19, 68) +[2618789.383] {Default Queue} -> wl_region#1727.add(-20, -49, 19, 48) +[2618789.388] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) +[2618789.392] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) +[2618789.396] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) +[2618789.400] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) +[2618789.406] {Default Queue} -> wl_region#1727.subtract(0, 0, 255, 221) +[2618789.410] {Default Queue} -> wl_region#1727.add(-253, -219, 255, 201) +[2618789.414] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) +[2618789.418] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) +[2618789.423] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) +[2618789.428] {Default Queue} -> wl_surface#1703.commit() +[2618789.436] {Default Queue} -> wl_region#1855.subtract(0, 0, 2, 2) +[2618789.440] {Default Queue} -> wl_subsurface#1850.set_position(0, 0) +[2618789.444] {Default Queue} -> wl_region#1855.subtract(0, 0, 19, 48) +[2618789.448] {Default Queue} -> wl_region#1855.add(-20, -49, 19, 48) +[2618789.452] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2618789.456] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2618789.460] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618789.472] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 218) +[2618789.477] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 218) +[2618789.484] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2618789.490] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2618789.562] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 218) +[2618789.567] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 218) +[2618789.571] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2618789.575] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2618789.581] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618789.585] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618789.634] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 218) +[2618789.639] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 218) +[2618789.643] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2618789.647] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2618789.652] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618789.657] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) +[2618789.662] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) +[2618789.666] {Default Queue} -> wl_surface#1831.commit() +[2618789.671] {Default Queue} -> wl_region#1887.subtract(0, 0, 2, 2) +[2618789.676] {Default Queue} -> wl_subsurface#1882.set_position(0, 20) +[2618789.680] {Default Queue} -> wl_region#1887.subtract(0, 0, 19, 68) +[2618789.684] {Default Queue} -> wl_region#1887.add(-20, -49, 19, 48) +[2618789.688] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) +[2618789.692] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) +[2618789.696] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618789.700] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) +[2618789.707] {Default Queue} -> wl_region#1887.subtract(0, 0, 370, 221) +[2618789.711] {Default Queue} -> wl_region#1887.add(-368, -219, 370, 201) +[2618789.715] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) +[2618789.719] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) +[2618789.724] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) +[2618789.728] {Default Queue} -> wl_surface#1863.commit() +[2618789.737] {Default Queue} -> wl_region#2015.subtract(0, 0, 2, 2) +[2618789.741] {Default Queue} -> wl_subsurface#2010.set_position(0, 0) +[2618789.745] {Default Queue} -> wl_region#2015.subtract(0, 0, 19, 48) +[2618789.749] {Default Queue} -> wl_region#2015.add(-20, -49, 19, 48) +[2618789.753] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2618789.757] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2618789.761] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618789.768] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 218) +[2618789.773] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 218) +[2618789.777] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2618789.781] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2618789.834] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 218) +[2618789.839] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 218) +[2618789.843] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2618789.847] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2618789.852] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618789.856] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618789.905] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 218) +[2618789.910] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 218) +[2618789.914] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2618789.918] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2618789.923] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618789.927] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) +[2618789.932] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) +[2618789.936] {Default Queue} -> wl_surface#1991.commit() +[2618789.945] {Default Queue} -> wl_region#2047.subtract(0, 0, 2, 2) +[2618789.951] {Default Queue} -> wl_subsurface#2042.set_position(0, 20) +[2618789.955] {Default Queue} -> wl_region#2047.subtract(0, 0, 19, 68) +[2618789.959] {Default Queue} -> wl_region#2047.add(-20, -49, 19, 48) +[2618789.963] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) +[2618789.967] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) +[2618789.971] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618789.975] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) +[2618789.981] {Default Queue} -> wl_region#2047.subtract(0, 0, 485, 221) +[2618789.985] {Default Queue} -> wl_region#2047.add(-483, -219, 485, 201) +[2618789.990] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) +[2618789.993] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) +[2618789.998] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) +[2618790.002] {Default Queue} -> wl_surface#2023.commit() +[2618790.013] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) +[2618790.017] {Default Queue} -> wl_subsurface#2138.set_position(0, 0) +[2618790.022] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) +[2618790.026] {Default Queue} -> wl_region#2143.add(0, 0, 2, 2) +[2618790.030] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618790.034] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618790.038] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618790.043] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618790.047] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618790.051] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618790.055] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) +[2618790.059] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) +[2618790.064] {Default Queue} -> wl_surface#2119.damage(0, 0, 2, 2) +[2618790.071] {Default Queue} -> wl_region#2143.subtract(0, 0, 22, 51) +[2618790.076] {Default Queue} -> wl_region#2143.add(-20, -49, 22, 51) +[2618790.080] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618790.084] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618790.091] {Default Queue} -> wl_region#2143.subtract(0, 0, 22, 51) +[2618790.096] {Default Queue} -> wl_region#2143.add(-20, -49, 22, 51) +[2618790.100] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618790.104] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618790.110] {Default Queue} -> wl_region#2143.subtract(0, 0, 22, 51) +[2618790.114] {Default Queue} -> wl_region#2143.add(-20, -49, 22, 51) +[2618790.118] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618790.122] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618790.127] {Default Queue} -> wl_region#2143.subtract(0, 0, 22, 51) +[2618790.131] {Default Queue} -> wl_region#2143.add(-20, -49, 22, 51) +[2618790.135] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618790.139] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618790.146] {Default Queue} -> wl_region#2143.subtract(0, 0, 22, 51) +[2618790.150] {Default Queue} -> wl_region#2143.add(-20, -49, 22, 51) +[2618790.154] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618790.158] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618790.164] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) +[2618790.169] {Default Queue} -> wl_surface#2119.commit() +[2618790.174] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) +[2618790.178] {Default Queue} -> wl_subsurface#2362.set_position(115, 0) +[2618790.182] {Default Queue} -> wl_region#2367.subtract(0, 0, 117, 2) +[2618790.186] {Default Queue} -> wl_region#2367.add(0, 0, 2, 2) +[2618790.190] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618790.194] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618790.202] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618790.208] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) +[2618790.212] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) +[2618790.217] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) +[2618790.221] {Default Queue} -> wl_surface#2343.damage(0, 0, 2, 2) +[2618790.228] {Default Queue} -> wl_region#2367.subtract(0, 0, 137, 385) +[2618790.232] {Default Queue} -> wl_region#2367.add(-20, -383, 22, 385) +[2618790.236] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618790.240] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618790.246] {Default Queue} -> wl_region#2367.subtract(0, 0, 137, 385) +[2618790.250] {Default Queue} -> wl_region#2367.add(-20, -383, 22, 385) +[2618790.254] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618790.258] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618790.263] {Default Queue} -> wl_region#2367.subtract(0, 0, 137, 385) +[2618790.267] {Default Queue} -> wl_region#2367.add(-20, -383, 22, 385) +[2618790.271] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618790.275] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618790.280] {Default Queue} -> wl_region#2367.subtract(0, 0, 137, 385) +[2618790.284] {Default Queue} -> wl_region#2367.add(-20, -383, 22, 385) +[2618790.288] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618790.292] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618790.299] {Default Queue} -> wl_region#2367.subtract(0, 0, 137, 385) +[2618790.303] {Default Queue} -> wl_region#2367.add(-20, -383, 22, 385) +[2618790.307] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618790.311] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618790.315] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) +[2618790.319] {Default Queue} -> wl_surface#2343.commit() +[2618790.324] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) +[2618790.329] {Default Queue} -> wl_subsurface#2522.set_position(230, 0) +[2618790.333] {Default Queue} -> wl_region#2527.subtract(0, 0, 232, 2) +[2618790.337] {Default Queue} -> wl_region#2527.add(0, 0, 2, 2) +[2618790.341] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618790.345] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618790.349] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618790.354] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) +[2618790.358] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) +[2618790.362] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) +[2618790.367] {Default Queue} -> wl_surface#2508.damage(0, 0, 2, 2) +[2618790.374] {Default Queue} -> wl_region#2527.subtract(0, 0, 252, 385) +[2618790.379] {Default Queue} -> wl_region#2527.add(-20, -383, 22, 385) +[2618790.383] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618790.387] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618790.392] {Default Queue} -> wl_region#2527.subtract(0, 0, 252, 385) +[2618790.397] {Default Queue} -> wl_region#2527.add(-20, -383, 22, 385) +[2618790.401] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618790.405] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618790.410] {Default Queue} -> wl_region#2527.subtract(0, 0, 252, 385) +[2618790.414] {Default Queue} -> wl_region#2527.add(-20, -383, 22, 385) +[2618790.418] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618790.422] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618790.427] {Default Queue} -> wl_region#2527.subtract(0, 0, 252, 385) +[2618790.431] {Default Queue} -> wl_region#2527.add(-20, -383, 22, 385) +[2618790.435] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618790.439] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618790.448] {Default Queue} -> wl_region#2527.subtract(0, 0, 252, 385) +[2618790.453] {Default Queue} -> wl_region#2527.add(-20, -383, 22, 385) +[2618790.458] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618790.462] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618790.466] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) +[2618790.470] {Default Queue} -> wl_surface#2508.commit() +[2618790.475] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) +[2618790.479] {Default Queue} -> wl_subsurface#2682.set_position(345, 0) +[2618790.483] {Default Queue} -> wl_region#2687.subtract(0, 0, 347, 2) +[2618790.487] {Default Queue} -> wl_region#2687.add(0, 0, 2, 2) +[2618790.492] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618790.496] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618790.500] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618790.505] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) +[2618790.509] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) +[2618790.513] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) +[2618790.517] {Default Queue} -> wl_surface#2663.damage(0, 0, 2, 2) +[2618790.524] {Default Queue} -> wl_region#2687.subtract(0, 0, 367, 385) +[2618790.529] {Default Queue} -> wl_region#2687.add(-20, -383, 22, 385) +[2618790.534] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618790.538] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618790.543] {Default Queue} -> wl_region#2687.subtract(0, 0, 367, 385) +[2618790.547] {Default Queue} -> wl_region#2687.add(-20, -383, 22, 385) +[2618790.551] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618790.555] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618790.560] {Default Queue} -> wl_region#2687.subtract(0, 0, 367, 385) +[2618790.564] {Default Queue} -> wl_region#2687.add(-20, -383, 22, 385) +[2618790.568] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618790.572] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618790.577] {Default Queue} -> wl_region#2687.subtract(0, 0, 367, 385) +[2618790.581] {Default Queue} -> wl_region#2687.add(-20, -383, 22, 385) +[2618790.585] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618790.589] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618790.595] {Default Queue} -> wl_region#2687.subtract(0, 0, 367, 385) +[2618790.599] {Default Queue} -> wl_region#2687.add(-20, -383, 22, 385) +[2618790.604] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618790.608] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618790.612] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) +[2618790.616] {Default Queue} -> wl_surface#2663.commit() +[2618790.621] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) +[2618790.626] {Default Queue} -> wl_subsurface#2842.set_position(460, 0) +[2618790.630] {Default Queue} -> wl_region#2847.subtract(0, 0, 462, 2) +[2618790.634] {Default Queue} -> wl_region#2847.add(0, 0, 2, 2) +[2618790.638] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618790.642] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618790.646] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618790.651] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) +[2618790.655] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) +[2618790.659] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) +[2618790.663] {Default Queue} -> wl_surface#2823.damage(0, 0, 2, 2) +[2618790.674] {Default Queue} -> wl_region#2847.subtract(0, 0, 482, 385) +[2618790.679] {Default Queue} -> wl_region#2847.add(-20, -383, 22, 385) +[2618790.683] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618790.687] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618790.695] {Default Queue} -> wl_region#2847.subtract(0, 0, 482, 385) +[2618790.701] {Default Queue} -> wl_region#2847.add(-20, -383, 22, 385) +[2618790.705] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618790.709] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618790.714] {Default Queue} -> wl_region#2847.subtract(0, 0, 482, 385) +[2618790.718] {Default Queue} -> wl_region#2847.add(-20, -383, 22, 385) +[2618790.722] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618790.726] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618790.731] {Default Queue} -> wl_region#2847.subtract(0, 0, 482, 385) +[2618790.735] {Default Queue} -> wl_region#2847.add(-20, -383, 22, 385) +[2618790.739] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618790.743] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618790.749] {Default Queue} -> wl_region#2847.subtract(0, 0, 482, 385) +[2618790.754] {Default Queue} -> wl_region#2847.add(-20, -383, 22, 385) +[2618790.758] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618790.762] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618790.766] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) +[2618790.770] {Default Queue} -> wl_surface#2823.commit() +[2618790.779] {Default Queue} -> wl_region#2207.subtract(0, 0, 2, 2) +[2618790.783] {Default Queue} -> wl_subsurface#2202.set_position(0, 0) +[2618790.787] {Default Queue} -> wl_region#2207.subtract(0, 0, 19, 48) +[2618790.792] {Default Queue} -> wl_region#2207.add(-20, -49, 19, 48) +[2618790.796] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2618790.800] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2618790.804] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618790.811] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 385) +[2618790.815] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 385) +[2618790.820] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2618790.823] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2618790.969] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 385) +[2618791.174] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 385) +[2618791.183] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2618791.188] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2618791.199] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618791.256] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618791.435] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 385) +[2618791.445] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 385) +[2618791.450] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2618791.454] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2618791.463] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618791.469] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) +[2618791.474] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) +[2618791.479] {Default Queue} -> wl_surface#2183.commit() +[2618791.485] {Default Queue} -> wl_region#2239.subtract(0, 0, 2, 2) +[2618791.489] {Default Queue} -> wl_subsurface#2234.set_position(0, 20) +[2618791.493] {Default Queue} -> wl_region#2239.subtract(0, 0, 19, 68) +[2618791.497] {Default Queue} -> wl_region#2239.add(-20, -49, 19, 48) +[2618791.502] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) +[2618791.506] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) +[2618791.510] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618791.514] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618791.518] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618791.522] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) +[2618791.529] {Default Queue} -> wl_region#2239.subtract(0, 0, 25, 388) +[2618791.539] {Default Queue} -> wl_region#2239.add(-23, -386, 25, 368) +[2618791.546] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) +[2618791.550] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) +[2618791.555] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) +[2618791.560] {Default Queue} -> wl_surface#2215.commit() +[2618791.569] {Default Queue} -> wl_region#2431.subtract(0, 0, 2, 2) +[2618791.574] {Default Queue} -> wl_subsurface#2426.set_position(0, 0) +[2618791.578] {Default Queue} -> wl_region#2431.subtract(0, 0, 19, 48) +[2618791.582] {Default Queue} -> wl_region#2431.add(-20, -49, 19, 48) +[2618791.587] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2618791.591] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2618791.595] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618791.602] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 385) +[2618791.607] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 385) +[2618791.611] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2618791.615] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2618791.729] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 385) +[2618791.735] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 385) +[2618791.739] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2618791.743] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2618791.749] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618791.753] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618791.838] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 385) +[2618791.843] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 385) +[2618791.847] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2618791.851] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2618791.857] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618791.869] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) +[2618791.874] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) +[2618791.878] {Default Queue} -> wl_surface#2407.commit() +[2618791.883] {Default Queue} -> wl_region#2463.subtract(0, 0, 2, 2) +[2618791.888] {Default Queue} -> wl_subsurface#2458.set_position(0, 20) +[2618791.892] {Default Queue} -> wl_region#2463.subtract(0, 0, 19, 68) +[2618791.896] {Default Queue} -> wl_region#2463.add(-20, -49, 19, 48) +[2618791.900] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) +[2618791.904] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) +[2618791.908] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) +[2618791.913] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) +[2618791.919] {Default Queue} -> wl_region#2463.subtract(0, 0, 140, 388) +[2618791.923] {Default Queue} -> wl_region#2463.add(-138, -386, 140, 368) +[2618791.928] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) +[2618791.931] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) +[2618791.936] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) +[2618791.940] {Default Queue} -> wl_surface#2439.commit() +[2618791.949] {Default Queue} -> wl_region#2591.subtract(0, 0, 2, 2) +[2618791.954] {Default Queue} -> wl_subsurface#2586.set_position(0, 0) +[2618792.045] {Default Queue} -> wl_region#2591.subtract(0, 0, 19, 48) +[2618792.051] {Default Queue} -> wl_region#2591.add(-20, -49, 19, 48) +[2618792.056] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2618792.060] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2618792.064] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618792.074] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 385) +[2618792.079] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 385) +[2618792.083] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2618792.087] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2618792.221] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 385) +[2618792.230] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 385) +[2618792.236] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2618792.242] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2618792.252] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618792.258] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618792.397] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 385) +[2618792.405] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 385) +[2618792.409] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2618792.414] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2618792.421] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618792.425] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) +[2618792.431] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) +[2618792.436] {Default Queue} -> wl_surface#2567.commit() +[2618792.442] {Default Queue} -> wl_region#2623.subtract(0, 0, 2, 2) +[2618792.446] {Default Queue} -> wl_subsurface#2618.set_position(0, 20) +[2618792.450] {Default Queue} -> wl_region#2623.subtract(0, 0, 19, 68) +[2618792.455] {Default Queue} -> wl_region#2623.add(-20, -49, 19, 48) +[2618792.459] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) +[2618792.463] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) +[2618792.467] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) +[2618792.471] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) +[2618792.479] {Default Queue} -> wl_region#2623.subtract(0, 0, 255, 388) +[2618792.483] {Default Queue} -> wl_region#2623.add(-253, -386, 255, 368) +[2618792.487] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) +[2618792.491] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) +[2618792.496] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) +[2618792.501] {Default Queue} -> wl_surface#2599.commit() +[2618792.509] {Default Queue} -> wl_region#2751.subtract(0, 0, 2, 2) +[2618792.514] {Default Queue} -> wl_subsurface#2746.set_position(0, 0) +[2618792.518] {Default Queue} -> wl_region#2751.subtract(0, 0, 19, 48) +[2618792.522] {Default Queue} -> wl_region#2751.add(-20, -49, 19, 48) +[2618792.526] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2618792.530] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2618792.534] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618792.542] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 385) +[2618792.546] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 385) +[2618792.551] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2618792.555] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2618792.636] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 385) +[2618792.641] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 385) +[2618792.645] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2618792.649] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2618792.654] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618792.659] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618792.722] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 385) +[2618792.726] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 385) +[2618792.731] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2618792.735] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2618792.740] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618792.744] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) +[2618792.749] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) +[2618792.753] {Default Queue} -> wl_surface#2727.commit() +[2618792.758] {Default Queue} -> wl_region#2783.subtract(0, 0, 2, 2) +[2618792.763] {Default Queue} -> wl_subsurface#2778.set_position(0, 20) +[2618792.769] {Default Queue} -> wl_region#2783.subtract(0, 0, 19, 68) +[2618792.776] {Default Queue} -> wl_region#2783.add(-20, -49, 19, 48) +[2618792.780] {Default Queue} -> wl_surface#2759.set_opaque_region(wl_region#2784) +[2618792.784] {Default Queue} -> wl_surface#2759.set_input_region(wl_region#2783) +[2618792.789] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) +[2618792.793] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) +[2618792.799] {Default Queue} -> wl_region#2783.subtract(0, 0, 370, 388) +[2618792.804] {Default Queue} -> wl_region#2783.add(-368, -386, 370, 368) +[2618792.808] {Default Queue} -> wl_surface#2759.set_opaque_region(wl_region#2784) +[2618792.812] {Default Queue} -> wl_surface#2759.set_input_region(wl_region#2783) +[2618792.817] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) +[2618792.821] {Default Queue} -> wl_surface#2759.commit() +[2618792.830] {Default Queue} -> wl_region#2911.subtract(0, 0, 2, 2) +[2618792.834] {Default Queue} -> wl_subsurface#2906.set_position(0, 0) +[2618792.838] {Default Queue} -> wl_region#2911.subtract(0, 0, 19, 48) +[2618792.842] {Default Queue} -> wl_region#2911.add(-20, -49, 19, 48) +[2618792.846] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2618792.887] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2618792.892] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618792.900] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 385) +[2618792.904] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 385) +[2618792.908] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2618792.912] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2618793.007] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 385) +[2618793.012] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 385) +[2618793.017] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2618793.021] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2618793.027] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618793.031] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618793.102] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 385) +[2618793.106] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 385) +[2618793.110] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2618793.115] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2618793.120] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618793.124] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) +[2618793.129] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) +[2618793.133] {Default Queue} -> wl_surface#2887.commit() +[2618793.138] {Default Queue} -> wl_region#2943.subtract(0, 0, 2, 2) +[2618793.143] {Default Queue} -> wl_subsurface#2938.set_position(0, 20) +[2618793.147] {Default Queue} -> wl_region#2943.subtract(0, 0, 19, 68) +[2618793.151] {Default Queue} -> wl_region#2943.add(-20, -49, 19, 48) +[2618793.155] {Default Queue} -> wl_surface#2919.set_opaque_region(wl_region#2944) +[2618793.159] {Default Queue} -> wl_surface#2919.set_input_region(wl_region#2943) +[2618793.163] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) +[2618793.167] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) +[2618793.173] {Default Queue} -> wl_region#2943.subtract(0, 0, 485, 388) +[2618793.178] {Default Queue} -> wl_region#2943.add(-483, -386, 485, 368) +[2618793.182] {Default Queue} -> wl_surface#2919.set_opaque_region(wl_region#2944) +[2618793.190] {Default Queue} -> wl_surface#2919.set_input_region(wl_region#2943) +[2618793.196] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) +[2618793.200] {Default Queue} -> wl_surface#2919.commit() +[2618793.210] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) +[2618793.215] {Default Queue} -> wl_subsurface#3034.set_position(0, 0) +[2618793.219] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) +[2618793.226] {Default Queue} -> wl_region#3039.add(0, 0, 2, 2) +[2618793.233] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618793.237] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618793.242] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618793.247] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618793.251] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618793.256] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) +[2618793.260] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) +[2618793.264] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) +[2618793.268] {Default Queue} -> wl_surface#3015.damage(0, 0, 2, 2) +[2618793.277] {Default Queue} -> wl_region#3039.subtract(0, 0, 22, 51) +[2618793.281] {Default Queue} -> wl_region#3039.add(-20, -49, 22, 51) +[2618793.286] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618793.290] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618793.296] {Default Queue} -> wl_region#3039.subtract(0, 0, 22, 51) +[2618793.300] {Default Queue} -> wl_region#3039.add(-20, -49, 22, 51) +[2618793.304] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618793.308] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618793.314] {Default Queue} -> wl_region#3039.subtract(0, 0, 22, 51) +[2618793.318] {Default Queue} -> wl_region#3039.add(-20, -49, 22, 51) +[2618793.322] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618793.326] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618793.331] {Default Queue} -> wl_region#3039.subtract(0, 0, 22, 51) +[2618793.335] {Default Queue} -> wl_region#3039.add(-20, -49, 22, 51) +[2618793.339] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618793.343] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618793.350] {Default Queue} -> wl_region#3039.subtract(0, 0, 22, 51) +[2618793.354] {Default Queue} -> wl_region#3039.add(-20, -49, 22, 51) +[2618793.358] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618793.362] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618793.366] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) +[2618793.371] {Default Queue} -> wl_surface#3015.commit() +[2618793.376] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) +[2618793.381] {Default Queue} -> wl_subsurface#3258.set_position(115, 0) +[2618793.385] {Default Queue} -> wl_region#3263.subtract(0, 0, 117, 2) +[2618793.389] {Default Queue} -> wl_region#3263.add(0, 0, 2, 2) +[2618793.393] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618793.397] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618793.402] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618793.407] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2618793.412] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2618793.417] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618793.422] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) +[2618793.426] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) +[2618793.430] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) +[2618793.434] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) +[2618793.438] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) +[2618793.442] {Default Queue} -> wl_surface#3239.damage(0, 0, 2, 2) +[2618793.451] {Default Queue} -> wl_region#3263.subtract(0, 0, 137, 552) +[2618793.455] {Default Queue} -> wl_region#3263.add(-20, -550, 22, 552) +[2618793.460] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618793.464] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618793.469] {Default Queue} -> wl_region#3263.subtract(0, 0, 137, 552) +[2618793.473] {Default Queue} -> wl_region#3263.add(-20, -550, 22, 552) +[2618793.477] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618793.484] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618793.491] {Default Queue} -> wl_region#3263.subtract(0, 0, 137, 552) +[2618793.495] {Default Queue} -> wl_region#3263.add(-20, -550, 22, 552) +[2618793.499] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618793.503] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618793.508] {Default Queue} -> wl_region#3263.subtract(0, 0, 137, 552) +[2618793.512] {Default Queue} -> wl_region#3263.add(-20, -550, 22, 552) +[2618793.516] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618793.520] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618793.527] {Default Queue} -> wl_region#3263.subtract(0, 0, 137, 552) +[2618793.531] {Default Queue} -> wl_region#3263.add(-20, -550, 22, 552) +[2618793.535] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618793.539] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618793.544] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) +[2618793.548] {Default Queue} -> wl_surface#3239.commit() +[2618793.553] {Default Queue} -> wl_region#3583.subtract(0, 0, 2, 2) +[2618793.558] {Default Queue} -> wl_subsurface#3578.set_position(230, 0) +[2618793.562] {Default Queue} -> wl_region#3583.subtract(0, 0, 232, 2) +[2618793.566] {Default Queue} -> wl_region#3583.add(0, 0, 2, 2) +[2618793.571] {Default Queue} -> wl_surface#3559.set_opaque_region(wl_region#3584) +[2618793.575] {Default Queue} -> wl_surface#3559.set_input_region(wl_region#3583) +[2618793.579] {Default Queue} -> wl_surface#3559.damage(0, 0, 2, 2) +[2618793.586] {Default Queue} -> wl_region#3583.subtract(0, 0, 252, 552) +[2618793.590] {Default Queue} -> wl_region#3583.add(-20, -550, 22, 552) +[2618793.594] {Default Queue} -> wl_surface#3559.set_opaque_region(wl_region#3584) +[2618793.598] {Default Queue} -> wl_surface#3559.set_input_region(wl_region#3583) +[2618793.660] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) +[2618793.665] {Default Queue} -> wl_surface#3559.commit() +[2618793.671] {Default Queue} -> wl_region#3615.subtract(0, 0, 2, 2) +[2618793.676] {Default Queue} -> wl_subsurface#3610.set_position(345, 0) +[2618793.680] {Default Queue} -> wl_region#3615.subtract(0, 0, 347, 2) +[2618793.684] {Default Queue} -> wl_region#3615.add(0, 0, 2, 2) +[2618793.689] {Default Queue} -> wl_surface#3591.set_opaque_region(wl_region#3616) +[2618793.693] {Default Queue} -> wl_surface#3591.set_input_region(wl_region#3615) +[2618793.697] {Default Queue} -> wl_surface#3591.damage(0, 0, 2, 2) +[2618793.704] {Default Queue} -> wl_region#3615.subtract(0, 0, 367, 552) +[2618793.709] {Default Queue} -> wl_region#3615.add(-20, -550, 22, 552) +[2618793.713] {Default Queue} -> wl_surface#3591.set_opaque_region(wl_region#3616) +[2618793.717] {Default Queue} -> wl_surface#3591.set_input_region(wl_region#3615) +[2618793.721] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) +[2618793.726] {Default Queue} -> wl_surface#3591.commit() +[2618793.731] {Default Queue} -> wl_region#3647.subtract(0, 0, 2, 2) +[2618793.735] {Default Queue} -> wl_subsurface#3642.set_position(460, 0) +[2618793.739] {Default Queue} -> wl_region#3647.subtract(0, 0, 462, 2) +[2618793.743] {Default Queue} -> wl_region#3647.add(0, 0, 2, 2) +[2618793.747] {Default Queue} -> wl_surface#3623.set_opaque_region(wl_region#3648) +[2618793.751] {Default Queue} -> wl_surface#3623.set_input_region(wl_region#3647) +[2618793.755] {Default Queue} -> wl_surface#3623.damage(0, 0, 2, 2) +[2618793.762] {Default Queue} -> wl_region#3647.subtract(0, 0, 482, 552) +[2618793.766] {Default Queue} -> wl_region#3647.add(-20, -550, 22, 552) +[2618793.770] {Default Queue} -> wl_surface#3623.set_opaque_region(wl_region#3648) +[2618793.774] {Default Queue} -> wl_surface#3623.set_input_region(wl_region#3647) +[2618793.779] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) +[2618793.783] {Default Queue} -> wl_surface#3623.commit() +[2618793.792] {Default Queue} -> wl_region#3103.subtract(0, 0, 2, 2) +[2618793.800] {Default Queue} -> wl_subsurface#3098.set_position(0, 0) +[2618793.806] {Default Queue} -> wl_region#3103.subtract(0, 0, 19, 48) +[2618793.811] {Default Queue} -> wl_region#3103.add(-20, -49, 19, 48) +[2618793.815] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2618793.819] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2618793.823] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618793.832] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 552) +[2618793.836] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 552) +[2618793.840] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2618793.844] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2618794.045] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 552) +[2618794.055] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 552) +[2618794.060] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2618794.064] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2618794.073] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618794.078] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618794.146] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 552) +[2618794.151] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 552) +[2618794.155] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2618794.159] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2618794.165] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618794.169] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) +[2618794.175] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) +[2618794.179] {Default Queue} -> wl_surface#3079.commit() +[2618794.185] {Default Queue} -> wl_region#3135.subtract(0, 0, 2, 2) +[2618794.189] {Default Queue} -> wl_subsurface#3130.set_position(0, 20) +[2618794.194] {Default Queue} -> wl_region#3135.subtract(0, 0, 19, 68) +[2618794.198] {Default Queue} -> wl_region#3135.add(-20, -49, 19, 48) +[2618794.202] {Default Queue} -> wl_surface#3111.set_opaque_region(wl_region#3136) +[2618794.206] {Default Queue} -> wl_surface#3111.set_input_region(wl_region#3135) +[2618794.210] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618794.214] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618794.219] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) +[2618794.223] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) +[2618794.229] {Default Queue} -> wl_region#3135.subtract(0, 0, 25, 555) +[2618794.234] {Default Queue} -> wl_region#3135.add(-23, -553, 25, 535) +[2618794.238] {Default Queue} -> wl_surface#3111.set_opaque_region(wl_region#3136) +[2618794.242] {Default Queue} -> wl_surface#3111.set_input_region(wl_region#3135) +[2618794.247] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) +[2618794.251] {Default Queue} -> wl_surface#3111.commit() +[2618794.260] {Default Queue} -> wl_region#3327.subtract(0, 0, 2, 2) +[2618794.264] {Default Queue} -> wl_subsurface#3322.set_position(0, 0) +[2618794.268] {Default Queue} -> wl_region#3327.subtract(0, 0, 19, 48) +[2618794.273] {Default Queue} -> wl_region#3327.add(-20, -49, 19, 48) +[2618794.277] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2618794.281] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2618794.285] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618794.293] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 552) +[2618794.297] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 552) +[2618794.302] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2618794.306] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2618794.381] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 552) +[2618794.385] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 552) +[2618794.390] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2618794.398] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2618794.406] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618794.410] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618794.470] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 552) +[2618794.475] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 552) +[2618794.479] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2618794.483] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2618794.488] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618794.492] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) +[2618794.497] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) +[2618794.501] {Default Queue} -> wl_surface#3303.commit() +[2618794.507] {Default Queue} -> wl_region#3359.subtract(0, 0, 2, 2) +[2618794.511] {Default Queue} -> wl_subsurface#3354.set_position(0, 20) +[2618794.515] {Default Queue} -> wl_region#3359.subtract(0, 0, 19, 68) +[2618794.519] {Default Queue} -> wl_region#3359.add(-20, -49, 19, 48) +[2618794.523] {Default Queue} -> wl_surface#3335.set_opaque_region(wl_region#3360) +[2618794.527] {Default Queue} -> wl_surface#3335.set_input_region(wl_region#3359) +[2618794.532] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2618794.536] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2618794.540] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618794.544] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) +[2618794.548] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) +[2618794.552] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) +[2618794.556] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) +[2618794.562] {Default Queue} -> wl_region#3359.subtract(0, 0, 140, 555) +[2618794.567] {Default Queue} -> wl_region#3359.add(-138, -553, 140, 535) +[2618794.571] {Default Queue} -> wl_surface#3335.set_opaque_region(wl_region#3360) +[2618794.575] {Default Queue} -> wl_surface#3335.set_input_region(wl_region#3359) +[2618794.580] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) +[2618794.584] {Default Queue} -> wl_surface#3335.commit() +[2618794.662] {Display Queue} wl_display#1.delete_id(3683) +[2618794.668] {Display Queue} wl_display#1.delete_id(94) +[2618794.673] {Display Queue} wl_display#1.delete_id(93) +[2618794.677] {Display Queue} wl_display#1.delete_id(92) +[2618794.681] {Display Queue} wl_display#1.delete_id(91) +[2618794.685] {Display Queue} wl_display#1.delete_id(3515) +[2618794.689] {Display Queue} wl_display#1.delete_id(3516) +[2618794.692] {Display Queue} wl_display#1.delete_id(3485) +[2618794.696] {Display Queue} wl_display#1.delete_id(3486) +[2618794.700] {Display Queue} wl_display#1.delete_id(3483) +[2618794.704] {Display Queue} wl_display#1.delete_id(3675) +[2618794.708] {Display Queue} wl_display#1.delete_id(3678) +[2618794.712] {Display Queue} wl_display#1.delete_id(3674) +[2618794.716] {Display Queue} wl_display#1.delete_id(3676) +[2618794.720] {Display Queue} wl_display#1.delete_id(3677) +[2618794.724] {Display Queue} wl_display#1.delete_id(2502) +[2618794.728] {Display Queue} wl_display#1.delete_id(2505) +[2618794.732] {Display Queue} wl_display#1.delete_id(2506) +[2618794.736] {Display Queue} wl_display#1.delete_id(2503) +[2618794.740] {Display Queue} wl_display#1.delete_id(2504) +[2618794.743] {Display Queue} wl_display#1.delete_id(3682) +[2618794.747] {Display Queue} wl_display#1.delete_id(3681) +[2618794.751] {Display Queue} wl_display#1.delete_id(3671) +[2618794.755] {Display Queue} wl_display#1.delete_id(3679) +[2618794.759] {Display Queue} wl_display#1.delete_id(3684) +[2618794.763] {Display Queue} wl_display#1.delete_id(3484) +[2618794.767] {Display Queue} wl_display#1.delete_id(3293) +[2618794.771] {Display Queue} wl_display#1.delete_id(3294) +[2618794.775] {Display Queue} wl_display#1.delete_id(3291) +[2618794.779] {Display Queue} wl_display#1.delete_id(3292) +[2618794.782] {Default Queue} wl_pointer#2889.motion(187310411, 29.00000000, 19.39843750) +[2618794.788] {Default Queue} wl_pointer#2921.motion(187310411, 29.00000000, 19.39843750) +[2618794.797] {Default Queue} wl_pointer#2953.motion(187310411, 29.00000000, 19.39843750) +[2618794.803] {Default Queue} wl_pointer#2985.motion(187310411, 29.00000000, 19.39843750) +[2618794.808] {Default Queue} wl_pointer#3017.motion(187310411, 29.00000000, 19.39843750) +[2618794.812] {Default Queue} wl_pointer#3049.motion(187310411, 29.00000000, 19.39843750) +[2618794.817] {Default Queue} wl_pointer#3081.motion(187310411, 29.00000000, 19.39843750) +[2618794.821] {Default Queue} wl_pointer#3113.motion(187310411, 29.00000000, 19.39843750) +[2618794.826] {Default Queue} wl_pointer#3145.motion(187310411, 29.00000000, 19.39843750) +[2618794.830] {Default Queue} wl_pointer#3177.motion(187310411, 29.00000000, 19.39843750) +[2618794.834] {Default Queue} wl_pointer#3209.motion(187310411, 29.00000000, 19.39843750) +[2618794.839] {Default Queue} wl_pointer#3241.motion(187310411, 29.00000000, 19.39843750) +[2618794.843] {Default Queue} wl_pointer#3273.motion(187310411, 29.00000000, 19.39843750) +[2618794.848] {Default Queue} wl_pointer#3305.motion(187310411, 29.00000000, 19.39843750) +[2618794.852] {Default Queue} wl_pointer#3337.motion(187310411, 29.00000000, 19.39843750) +[2618794.856] {Default Queue} wl_pointer#3369.motion(187310411, 29.00000000, 19.39843750) +[2618794.866] {Default Queue} wl_pointer#3401.motion(187310411, 29.00000000, 19.39843750) +[2618794.871] {Default Queue} wl_pointer#3433.motion(187310411, 29.00000000, 19.39843750) +[2618794.876] {Default Queue} wl_pointer#3465.motion(187310411, 29.00000000, 19.39843750) +[2618794.881] {Default Queue} wl_pointer#3497.motion(187310411, 29.00000000, 19.39843750) +[2618794.885] {Default Queue} wl_pointer#3529.motion(187310411, 29.00000000, 19.39843750) +[2618794.890] {Default Queue} wl_pointer#3561.motion(187310411, 29.00000000, 19.39843750) +[2618794.894] {Default Queue} wl_pointer#3593.motion(187310411, 29.00000000, 19.39843750) +[2618794.898] {Default Queue} wl_pointer#3625.motion(187310411, 29.00000000, 19.39843750) +[2618794.903] {Default Queue} wl_pointer#3657.motion(187310411, 29.00000000, 19.39843750) +[2618794.907] {Default Queue} wl_pointer#3695.motion(187310411, 29.00000000, 19.39843750) +[2618794.911] {Default Queue} wl_pointer#24.motion(187310416, 29.00000000, 19.00000000) +[2618794.916] {Default Queue} wl_pointer#81.motion(187310416, 29.00000000, 19.00000000) +[2618794.921] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618794.926] {Default Queue} wl_pointer#105.motion(187310416, 29.00000000, 19.00000000) +[2618794.930] {Default Queue} wl_pointer#137.motion(187310416, 29.00000000, 19.00000000) +[2618794.935] {Default Queue} wl_pointer#169.motion(187310416, 29.00000000, 19.00000000) +[2618794.939] {Default Queue} wl_pointer#201.motion(187310416, 29.00000000, 19.00000000) +[2618794.944] {Default Queue} wl_pointer#233.motion(187310416, 29.00000000, 19.00000000) +[2618794.949] {Default Queue} wl_pointer#265.motion(187310416, 29.00000000, 19.00000000) +[2618794.954] {Default Queue} wl_pointer#297.motion(187310416, 29.00000000, 19.00000000) +[2618794.958] {Default Queue} wl_pointer#329.motion(187310416, 29.00000000, 19.00000000) +[2618794.962] {Default Queue} wl_pointer#361.motion(187310416, 29.00000000, 19.00000000) +[2618794.967] {Default Queue} wl_pointer#393.motion(187310416, 29.00000000, 19.00000000) +[2618794.971] {Default Queue} wl_pointer#425.motion(187310416, 29.00000000, 19.00000000) +[2618794.976] {Default Queue} wl_pointer#457.motion(187310416, 29.00000000, 19.00000000) +[2618794.980] {Default Queue} wl_pointer#489.motion(187310416, 29.00000000, 19.00000000) +[2618794.985] {Default Queue} wl_pointer#521.motion(187310416, 29.00000000, 19.00000000) +[2618794.989] {Default Queue} wl_pointer#553.motion(187310416, 29.00000000, 19.00000000) +[2618794.994] {Default Queue} wl_pointer#585.motion(187310416, 29.00000000, 19.00000000) +[2618794.998] {Default Queue} wl_pointer#617.motion(187310416, 29.00000000, 19.00000000) +[2618795.003] {Default Queue} wl_pointer#649.motion(187310416, 29.00000000, 19.00000000) +[2618795.012] {Default Queue} wl_pointer#681.motion(187310416, 29.00000000, 19.00000000) +[2618795.018] {Default Queue} wl_pointer#713.motion(187310416, 29.00000000, 19.00000000) +[2618795.022] {Default Queue} wl_pointer#745.motion(187310416, 29.00000000, 19.00000000) +[2618795.027] {Default Queue} wl_pointer#777.motion(187310416, 29.00000000, 19.00000000) +[2618795.032] {Default Queue} wl_pointer#809.motion(187310416, 29.00000000, 19.00000000) +[2618795.036] {Default Queue} wl_pointer#841.motion(187310416, 29.00000000, 19.00000000) +[2618795.041] {Default Queue} wl_pointer#873.motion(187310416, 29.00000000, 19.00000000) +[2618795.045] {Default Queue} wl_pointer#905.motion(187310416, 29.00000000, 19.00000000) +[2618795.049] {Default Queue} wl_pointer#937.motion(187310416, 29.00000000, 19.00000000) +[2618795.054] {Default Queue} wl_pointer#969.motion(187310416, 29.00000000, 19.00000000) +[2618795.058] {Default Queue} wl_pointer#1001.motion(187310416, 29.00000000, 19.00000000) +[2618795.062] {Default Queue} wl_pointer#1033.motion(187310416, 29.00000000, 19.00000000) +[2618795.067] {Default Queue} wl_pointer#1065.motion(187310416, 29.00000000, 19.00000000) +[2618795.071] {Default Queue} wl_pointer#1097.motion(187310416, 29.00000000, 19.00000000) +[2618795.075] {Default Queue} wl_pointer#1129.motion(187310416, 29.00000000, 19.00000000) +[2618795.080] {Default Queue} wl_pointer#1161.motion(187310416, 29.00000000, 19.00000000) +[2618795.084] {Default Queue} wl_pointer#1193.motion(187310416, 29.00000000, 19.00000000) +[2618795.089] {Default Queue} wl_pointer#1225.motion(187310416, 29.00000000, 19.00000000) +[2618795.093] {Default Queue} wl_pointer#1257.motion(187310416, 29.00000000, 19.00000000) +[2618795.098] {Default Queue} wl_pointer#1289.motion(187310416, 29.00000000, 19.00000000) +[2618795.102] {Default Queue} wl_pointer#1321.motion(187310416, 29.00000000, 19.00000000) +[2618795.106] {Default Queue} wl_pointer#1353.motion(187310416, 29.00000000, 19.00000000) +[2618795.110] {Default Queue} wl_pointer#1385.motion(187310416, 29.00000000, 19.00000000) +[2618795.115] {Default Queue} wl_pointer#1417.motion(187310416, 29.00000000, 19.00000000) +[2618795.119] {Default Queue} wl_pointer#1449.motion(187310416, 29.00000000, 19.00000000) +[2618795.123] {Default Queue} wl_pointer#1481.motion(187310416, 29.00000000, 19.00000000) +[2618795.128] {Default Queue} wl_pointer#1513.motion(187310416, 29.00000000, 19.00000000) +[2618795.132] {Default Queue} wl_pointer#1545.motion(187310416, 29.00000000, 19.00000000) +[2618795.137] {Default Queue} wl_pointer#1577.motion(187310416, 29.00000000, 19.00000000) +[2618795.141] {Default Queue} wl_pointer#1609.motion(187310416, 29.00000000, 19.00000000) +[2618795.146] {Default Queue} wl_pointer#1641.motion(187310416, 29.00000000, 19.00000000) +[2618795.150] {Default Queue} wl_pointer#1673.motion(187310416, 29.00000000, 19.00000000) +[2618795.155] {Default Queue} wl_pointer#1705.motion(187310416, 29.00000000, 19.00000000) +[2618795.160] {Default Queue} wl_pointer#1737.motion(187310416, 29.00000000, 19.00000000) +[2618795.164] {Default Queue} wl_pointer#1762.motion(187310416, 29.00000000, 19.00000000) +[2618795.168] {Default Queue} wl_pointer#1801.motion(187310416, 29.00000000, 19.00000000) +[2618795.173] {Default Queue} wl_pointer#1833.motion(187310416, 29.00000000, 19.00000000) +[2618795.178] {Default Queue} wl_pointer#1865.motion(187310416, 29.00000000, 19.00000000) +[2618795.182] {Default Queue} wl_pointer#1897.motion(187310416, 29.00000000, 19.00000000) +[2618795.186] {Default Queue} wl_pointer#1929.motion(187310416, 29.00000000, 19.00000000) +[2618795.191] {Default Queue} wl_pointer#1961.motion(187310416, 29.00000000, 19.00000000) +[2618795.196] {Default Queue} wl_pointer#1993.motion(187310416, 29.00000000, 19.00000000) +[2618795.200] {Default Queue} wl_pointer#2025.motion(187310416, 29.00000000, 19.00000000) +[2618795.204] {Default Queue} wl_pointer#2057.motion(187310416, 29.00000000, 19.00000000) +[2618795.209] {Default Queue} wl_pointer#2089.motion(187310416, 29.00000000, 19.00000000) +[2618795.213] {Default Queue} wl_pointer#2121.motion(187310416, 29.00000000, 19.00000000) +[2618795.220] {Default Queue} wl_pointer#2153.motion(187310416, 29.00000000, 19.00000000) +[2618795.226] {Default Queue} wl_pointer#2185.motion(187310416, 29.00000000, 19.00000000) +[2618795.230] {Default Queue} wl_pointer#2217.motion(187310416, 29.00000000, 19.00000000) +[2618795.235] {Default Queue} wl_pointer#2249.motion(187310416, 29.00000000, 19.00000000) +[2618795.239] {Default Queue} wl_pointer#2281.motion(187310416, 29.00000000, 19.00000000) +[2618795.243] {Default Queue} wl_pointer#2313.motion(187310416, 29.00000000, 19.00000000) +[2618795.248] {Default Queue} wl_pointer#2345.motion(187310416, 29.00000000, 19.00000000) +[2618795.253] {Default Queue} wl_pointer#2377.motion(187310416, 29.00000000, 19.00000000) +[2618795.258] {Default Queue} wl_pointer#2409.motion(187310416, 29.00000000, 19.00000000) +[2618795.262] {Default Queue} wl_pointer#2441.motion(187310416, 29.00000000, 19.00000000) +[2618795.267] {Default Queue} wl_pointer#2473.motion(187310416, 29.00000000, 19.00000000) +[2618795.271] {Default Queue} wl_pointer#2498.motion(187310416, 29.00000000, 19.00000000) +[2618795.287] {Default Queue} -> wl_buffer#3518.destroy() +[2618795.293] {Default Queue} -> wl_buffer#3451.destroy() +[2618795.297] {Default Queue} -> wl_shm_pool#3454.destroy() +[2618795.301] {Default Queue} -> wl_shm_pool#3517.destroy() +[2618795.306] {Default Queue} -> wl_surface#3452.destroy() +[2618795.363] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3292, fd 575, 640) +[2618795.369] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 578, 640) +[2618795.374] {Default Queue} -> wl_shm_pool#3292.create_buffer(new id wl_buffer#3294, 0, 10, 16, 40, 0) +[2618795.379] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) +[2618795.388] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3484) +[2618795.393] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) +[2618795.397] {Default Queue} -> wl_surface#3484.commit() +[2618795.403] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) +[2618795.407] {Default Queue} -> wl_surface#3484.commit() +[2618795.411] {Default Queue} wl_pointer#2537.motion(187310416, 29.00000000, 19.00000000) +[2618795.416] {Default Queue} wl_pointer#2569.motion(187310416, 29.00000000, 19.00000000) +[2618795.421] {Default Queue} wl_pointer#2601.motion(187310416, 29.00000000, 19.00000000) +[2618795.425] {Default Queue} wl_pointer#2633.motion(187310416, 29.00000000, 19.00000000) +[2618795.429] {Default Queue} wl_pointer#2665.motion(187310416, 29.00000000, 19.00000000) +[2618795.434] {Default Queue} wl_pointer#2697.motion(187310416, 29.00000000, 19.00000000) +[2618795.438] {Default Queue} wl_pointer#2729.motion(187310416, 29.00000000, 19.00000000) +[2618795.442] {Default Queue} wl_pointer#2761.motion(187310416, 29.00000000, 19.00000000) +[2618795.447] {Default Queue} wl_pointer#2793.motion(187310416, 29.00000000, 19.00000000) +[2618795.451] {Default Queue} wl_pointer#2825.motion(187310416, 29.00000000, 19.00000000) +[2618795.456] {Default Queue} wl_pointer#2857.motion(187310416, 29.00000000, 19.00000000) +[2618795.461] {Default Queue} wl_pointer#2889.motion(187310416, 29.00000000, 19.00000000) +[2618795.465] {Default Queue} wl_pointer#2921.motion(187310416, 29.00000000, 19.00000000) +[2618795.469] {Default Queue} wl_pointer#2953.motion(187310416, 29.00000000, 19.00000000) +[2618795.473] {Default Queue} wl_pointer#2985.motion(187310416, 29.00000000, 19.00000000) +[2618795.478] {Default Queue} wl_pointer#3017.motion(187310416, 29.00000000, 19.00000000) +[2618795.482] {Default Queue} wl_pointer#3049.motion(187310416, 29.00000000, 19.00000000) +[2618795.486] {Default Queue} wl_pointer#3081.motion(187310416, 29.00000000, 19.00000000) +[2618795.490] {Default Queue} wl_pointer#3113.motion(187310416, 29.00000000, 19.00000000) +[2618795.495] {Default Queue} wl_pointer#3145.motion(187310416, 29.00000000, 19.00000000) +[2618795.499] {Default Queue} wl_pointer#3177.motion(187310416, 29.00000000, 19.00000000) +[2618795.503] {Default Queue} wl_pointer#3209.motion(187310416, 29.00000000, 19.00000000) +[2618795.511] {Default Queue} wl_pointer#3241.motion(187310416, 29.00000000, 19.00000000) +[2618795.517] {Default Queue} wl_pointer#3273.motion(187310416, 29.00000000, 19.00000000) +[2618795.522] {Default Queue} wl_pointer#3305.motion(187310416, 29.00000000, 19.00000000) +[2618795.526] {Default Queue} wl_pointer#3337.motion(187310416, 29.00000000, 19.00000000) +[2618795.530] {Default Queue} wl_pointer#3369.motion(187310416, 29.00000000, 19.00000000) +[2618795.534] {Default Queue} wl_pointer#3401.motion(187310416, 29.00000000, 19.00000000) +[2618795.539] {Default Queue} wl_pointer#3433.motion(187310416, 29.00000000, 19.00000000) +[2618795.543] {Default Queue} wl_pointer#3465.motion(187310416, 29.00000000, 19.00000000) +[2618795.548] {Default Queue} wl_pointer#3497.motion(187310416, 29.00000000, 19.00000000) +[2618795.552] {Default Queue} wl_pointer#3529.motion(187310416, 29.00000000, 19.00000000) +[2618795.557] {Default Queue} wl_pointer#3561.motion(187310416, 29.00000000, 19.00000000) +[2618795.561] {Default Queue} wl_pointer#3593.motion(187310416, 29.00000000, 19.00000000) +[2618795.565] {Default Queue} wl_pointer#3625.motion(187310416, 29.00000000, 19.00000000) +[2618795.569] {Default Queue} wl_pointer#3657.motion(187310416, 29.00000000, 19.00000000) +[2618795.574] {Default Queue} wl_pointer#3695.motion(187310416, 29.00000000, 19.00000000) +[2618795.578] {Default Queue} wl_pointer#24.motion(187310416, 29.00000000, 18.19921875) +[2618795.582] {Default Queue} wl_pointer#81.motion(187310416, 29.00000000, 18.19921875) +[2618795.587] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618795.592] {Default Queue} wl_pointer#105.motion(187310416, 29.00000000, 18.19921875) +[2618795.596] {Default Queue} wl_pointer#137.motion(187310416, 29.00000000, 18.19921875) +[2618795.600] {Default Queue} wl_pointer#169.motion(187310416, 29.00000000, 18.19921875) +[2618795.605] {Default Queue} wl_pointer#201.motion(187310416, 29.00000000, 18.19921875) +[2618795.609] {Default Queue} wl_pointer#233.motion(187310416, 29.00000000, 18.19921875) +[2618795.614] {Default Queue} wl_pointer#265.motion(187310416, 29.00000000, 18.19921875) +[2618795.618] {Default Queue} wl_pointer#297.motion(187310416, 29.00000000, 18.19921875) +[2618795.622] {Default Queue} wl_pointer#329.motion(187310416, 29.00000000, 18.19921875) +[2618795.626] {Default Queue} wl_pointer#361.motion(187310416, 29.00000000, 18.19921875) +[2618795.631] {Default Queue} wl_pointer#393.motion(187310416, 29.00000000, 18.19921875) +[2618795.635] {Default Queue} wl_pointer#425.motion(187310416, 29.00000000, 18.19921875) +[2618795.639] {Default Queue} wl_pointer#457.motion(187310416, 29.00000000, 18.19921875) +[2618795.643] {Default Queue} wl_pointer#489.motion(187310416, 29.00000000, 18.19921875) +[2618795.648] {Default Queue} wl_pointer#521.motion(187310416, 29.00000000, 18.19921875) +[2618795.652] {Default Queue} wl_pointer#553.motion(187310416, 29.00000000, 18.19921875) +[2618795.656] {Default Queue} wl_pointer#585.motion(187310416, 29.00000000, 18.19921875) +[2618795.661] {Default Queue} wl_pointer#617.motion(187310416, 29.00000000, 18.19921875) +[2618795.665] {Default Queue} wl_pointer#649.motion(187310416, 29.00000000, 18.19921875) +[2618795.669] {Default Queue} wl_pointer#681.motion(187310416, 29.00000000, 18.19921875) +[2618795.673] {Default Queue} wl_pointer#713.motion(187310416, 29.00000000, 18.19921875) +[2618795.677] {Default Queue} wl_pointer#745.motion(187310416, 29.00000000, 18.19921875) +[2618795.682] {Default Queue} wl_pointer#777.motion(187310416, 29.00000000, 18.19921875) +[2618795.686] {Default Queue} wl_pointer#809.motion(187310416, 29.00000000, 18.19921875) +[2618795.690] {Default Queue} wl_pointer#841.motion(187310416, 29.00000000, 18.19921875) +[2618795.695] {Default Queue} wl_pointer#873.motion(187310416, 29.00000000, 18.19921875) +[2618795.699] {Default Queue} wl_pointer#905.motion(187310416, 29.00000000, 18.19921875) +[2618795.703] {Default Queue} wl_pointer#937.motion(187310416, 29.00000000, 18.19921875) +[2618795.707] {Default Queue} wl_pointer#969.motion(187310416, 29.00000000, 18.19921875) +[2618795.715] {Default Queue} wl_pointer#1001.motion(187310416, 29.00000000, 18.19921875) +[2618795.720] {Default Queue} wl_pointer#1033.motion(187310416, 29.00000000, 18.19921875) +[2618795.725] {Default Queue} wl_pointer#1065.motion(187310416, 29.00000000, 18.19921875) +[2618795.729] {Default Queue} wl_pointer#1097.motion(187310416, 29.00000000, 18.19921875) +[2618795.733] {Default Queue} wl_pointer#1129.motion(187310416, 29.00000000, 18.19921875) +[2618795.738] {Default Queue} wl_pointer#1161.motion(187310416, 29.00000000, 18.19921875) +[2618795.742] {Default Queue} wl_pointer#1193.motion(187310416, 29.00000000, 18.19921875) +[2618795.746] {Default Queue} wl_pointer#1225.motion(187310416, 29.00000000, 18.19921875) +[2618795.750] {Default Queue} wl_pointer#1257.motion(187310416, 29.00000000, 18.19921875) +[2618795.755] {Default Queue} wl_pointer#1289.motion(187310416, 29.00000000, 18.19921875) +[2618795.759] {Default Queue} wl_pointer#1321.motion(187310416, 29.00000000, 18.19921875) +[2618795.763] {Default Queue} wl_pointer#1353.motion(187310416, 29.00000000, 18.19921875) +[2618795.767] {Default Queue} wl_pointer#1385.motion(187310416, 29.00000000, 18.19921875) +[2618795.772] {Default Queue} wl_pointer#1417.motion(187310416, 29.00000000, 18.19921875) +[2618795.776] {Default Queue} wl_pointer#1449.motion(187310416, 29.00000000, 18.19921875) +[2618795.780] {Default Queue} wl_pointer#1481.motion(187310416, 29.00000000, 18.19921875) +[2618795.784] {Default Queue} wl_pointer#1513.motion(187310416, 29.00000000, 18.19921875) +[2618795.789] {Default Queue} wl_pointer#1545.motion(187310416, 29.00000000, 18.19921875) +[2618795.793] {Default Queue} wl_pointer#1577.motion(187310416, 29.00000000, 18.19921875) +[2618795.797] {Default Queue} wl_pointer#1609.motion(187310416, 29.00000000, 18.19921875) +[2618795.802] {Default Queue} wl_pointer#1641.motion(187310416, 29.00000000, 18.19921875) +[2618795.806] {Default Queue} wl_pointer#1673.motion(187310416, 29.00000000, 18.19921875) +[2618795.810] {Default Queue} wl_pointer#1705.motion(187310416, 29.00000000, 18.19921875) +[2618795.814] {Default Queue} wl_pointer#1737.motion(187310416, 29.00000000, 18.19921875) +[2618795.819] {Default Queue} wl_pointer#1762.motion(187310416, 29.00000000, 18.19921875) +[2618795.823] {Default Queue} wl_pointer#1801.motion(187310416, 29.00000000, 18.19921875) +[2618795.827] {Default Queue} wl_pointer#1833.motion(187310416, 29.00000000, 18.19921875) +[2618795.831] {Default Queue} wl_pointer#1865.motion(187310416, 29.00000000, 18.19921875) +[2618795.836] {Default Queue} wl_pointer#1897.motion(187310416, 29.00000000, 18.19921875) +[2618795.840] {Default Queue} wl_pointer#1929.motion(187310416, 29.00000000, 18.19921875) +[2618795.844] {Default Queue} wl_pointer#1961.motion(187310416, 29.00000000, 18.19921875) +[2618795.848] {Default Queue} wl_pointer#1993.motion(187310416, 29.00000000, 18.19921875) +[2618795.853] {Default Queue} wl_pointer#2025.motion(187310416, 29.00000000, 18.19921875) +[2618795.857] {Default Queue} wl_pointer#2057.motion(187310416, 29.00000000, 18.19921875) +[2618795.862] {Default Queue} wl_pointer#2089.motion(187310416, 29.00000000, 18.19921875) +[2618795.866] {Default Queue} wl_pointer#2121.motion(187310416, 29.00000000, 18.19921875) +[2618795.875] {Default Queue} wl_pointer#2153.motion(187310416, 29.00000000, 18.19921875) +[2618795.879] {Default Queue} wl_pointer#2185.motion(187310416, 29.00000000, 18.19921875) +[2618795.884] {Default Queue} wl_pointer#2217.motion(187310416, 29.00000000, 18.19921875) +[2618795.888] {Default Queue} wl_pointer#2249.motion(187310416, 29.00000000, 18.19921875) +[2618795.892] {Default Queue} wl_pointer#2281.motion(187310416, 29.00000000, 18.19921875) +[2618795.896] {Default Queue} wl_pointer#2313.motion(187310416, 29.00000000, 18.19921875) +[2618795.901] {Default Queue} wl_pointer#2345.motion(187310416, 29.00000000, 18.19921875) +[2618795.905] {Default Queue} wl_pointer#2377.motion(187310416, 29.00000000, 18.19921875) +[2618795.909] {Default Queue} wl_pointer#2409.motion(187310416, 29.00000000, 18.19921875) +[2618795.925] {Default Queue} wl_pointer#2441.motion(187310416, 29.00000000, 18.19921875) +[2618795.931] {Default Queue} wl_pointer#2473.motion(187310416, 29.00000000, 18.19921875) +[2618795.935] {Default Queue} wl_pointer#2498.motion(187310416, 29.00000000, 18.19921875) +[2618795.945] {Default Queue} -> wl_buffer#3294.destroy() +[2618795.950] {Default Queue} -> wl_buffer#3293.destroy() +[2618795.954] {Default Queue} -> wl_shm_pool#3292.destroy() +[2618795.958] {Default Queue} -> wl_shm_pool#3291.destroy() +[2618795.963] {Default Queue} -> wl_surface#3484.destroy() +[2618796.002] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3684, fd 575, 640) +[2618796.008] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 578, 640) +[2618796.012] {Default Queue} -> wl_shm_pool#3684.create_buffer(new id wl_buffer#3671, 0, 10, 16, 40, 0) +[2618796.017] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) +[2618796.238] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3682) +[2618796.245] {Default Queue} -> wl_surface#3682.attach(wl_buffer#3671, 0, 0) +[2618796.293] {Default Queue} -> wl_surface#3682.commit() +[2618796.301] {Default Queue} -> wl_surface#3682.attach(wl_buffer#3671, 0, 0) +[2618796.306] {Default Queue} -> wl_surface#3682.commit() +[2618796.333] {Default Queue} wl_pointer#2537.motion(187310416, 29.00000000, 18.19921875) +[2618796.338] {Default Queue} wl_pointer#2569.motion(187310416, 29.00000000, 18.19921875) +[2618796.387] {Default Queue} wl_pointer#2601.motion(187310416, 29.00000000, 18.19921875) +[2618796.393] {Default Queue} wl_pointer#2633.motion(187310416, 29.00000000, 18.19921875) +[2618796.397] {Default Queue} wl_pointer#2665.motion(187310416, 29.00000000, 18.19921875) +[2618796.442] {Default Queue} wl_pointer#2697.motion(187310416, 29.00000000, 18.19921875) +[2618796.447] {Default Queue} wl_pointer#2729.motion(187310416, 29.00000000, 18.19921875) +[2618796.451] {Default Queue} wl_pointer#2761.motion(187310416, 29.00000000, 18.19921875) +[2618796.456] {Default Queue} wl_pointer#2793.motion(187310416, 29.00000000, 18.19921875) +[2618796.460] {Default Queue} wl_pointer#2825.motion(187310416, 29.00000000, 18.19921875) +[2618796.465] {Default Queue} wl_pointer#2857.motion(187310416, 29.00000000, 18.19921875) +[2618796.469] {Default Queue} wl_pointer#2889.motion(187310416, 29.00000000, 18.19921875) +[2618796.474] {Default Queue} wl_pointer#2921.motion(187310416, 29.00000000, 18.19921875) +[2618796.478] {Default Queue} wl_pointer#2953.motion(187310416, 29.00000000, 18.19921875) +[2618796.482] {Default Queue} wl_pointer#2985.motion(187310416, 29.00000000, 18.19921875) +[2618796.487] {Default Queue} wl_pointer#3017.motion(187310416, 29.00000000, 18.19921875) +[2618796.491] {Default Queue} wl_pointer#3049.motion(187310416, 29.00000000, 18.19921875) +[2618796.495] {Default Queue} wl_pointer#3081.motion(187310416, 29.00000000, 18.19921875) +[2618796.500] {Default Queue} wl_pointer#3113.motion(187310416, 29.00000000, 18.19921875) +[2618796.504] {Default Queue} wl_pointer#3145.motion(187310416, 29.00000000, 18.19921875) +[2618796.509] {Default Queue} wl_pointer#3177.motion(187310416, 29.00000000, 18.19921875) +[2618796.513] {Default Queue} wl_pointer#3209.motion(187310416, 29.00000000, 18.19921875) +[2618796.517] {Default Queue} wl_pointer#3241.motion(187310416, 29.00000000, 18.19921875) +[2618796.522] {Default Queue} wl_pointer#3273.motion(187310416, 29.00000000, 18.19921875) +[2618796.526] {Default Queue} wl_pointer#3305.motion(187310416, 29.00000000, 18.19921875) +[2618796.530] {Default Queue} wl_pointer#3337.motion(187310416, 29.00000000, 18.19921875) +[2618796.535] {Default Queue} wl_pointer#3369.motion(187310416, 29.00000000, 18.19921875) +[2618796.539] {Default Queue} wl_pointer#3401.motion(187310416, 29.00000000, 18.19921875) +[2618796.543] {Default Queue} wl_pointer#3433.motion(187310416, 29.00000000, 18.19921875) +[2618796.548] {Default Queue} wl_pointer#3465.motion(187310416, 29.00000000, 18.19921875) +[2618796.552] {Default Queue} wl_pointer#3497.motion(187310416, 29.00000000, 18.19921875) +[2618796.561] {Default Queue} wl_pointer#3529.motion(187310416, 29.00000000, 18.19921875) +[2618796.568] {Default Queue} wl_pointer#3561.motion(187310416, 29.00000000, 18.19921875) +[2618796.572] {Default Queue} wl_pointer#3593.motion(187310416, 29.00000000, 18.19921875) +[2618796.577] {Default Queue} wl_pointer#3625.motion(187310416, 29.00000000, 18.19921875) +[2618796.581] {Default Queue} wl_pointer#3657.motion(187310416, 29.00000000, 18.19921875) +[2618796.585] {Default Queue} wl_pointer#3695.motion(187310416, 29.00000000, 18.19921875) +[2618796.590] {Default Queue} wl_pointer#24.motion(187310421, 29.00000000, 17.80078125) +[2618796.594] {Default Queue} wl_pointer#81.motion(187310421, 29.00000000, 17.80078125) +[2618796.600] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618796.604] {Default Queue} wl_pointer#105.motion(187310421, 29.00000000, 17.80078125) +[2618796.609] {Default Queue} wl_pointer#137.motion(187310421, 29.00000000, 17.80078125) +[2618796.613] {Default Queue} wl_pointer#169.motion(187310421, 29.00000000, 17.80078125) +[2618796.617] {Default Queue} wl_pointer#201.motion(187310421, 29.00000000, 17.80078125) +[2618796.622] {Default Queue} wl_pointer#233.motion(187310421, 29.00000000, 17.80078125) +[2618796.626] {Default Queue} wl_pointer#265.motion(187310421, 29.00000000, 17.80078125) +[2618796.630] {Default Queue} wl_pointer#297.motion(187310421, 29.00000000, 17.80078125) +[2618796.635] {Default Queue} wl_pointer#329.motion(187310421, 29.00000000, 17.80078125) +[2618796.639] {Default Queue} wl_pointer#361.motion(187310421, 29.00000000, 17.80078125) +[2618796.643] {Default Queue} wl_pointer#393.motion(187310421, 29.00000000, 17.80078125) +[2618796.647] {Default Queue} wl_pointer#425.motion(187310421, 29.00000000, 17.80078125) +[2618796.652] {Default Queue} wl_pointer#457.motion(187310421, 29.00000000, 17.80078125) +[2618796.656] {Default Queue} wl_pointer#489.motion(187310421, 29.00000000, 17.80078125) +[2618796.660] {Default Queue} wl_pointer#521.motion(187310421, 29.00000000, 17.80078125) +[2618796.664] {Default Queue} wl_pointer#553.motion(187310421, 29.00000000, 17.80078125) +[2618796.669] {Default Queue} wl_pointer#585.motion(187310421, 29.00000000, 17.80078125) +[2618796.673] {Default Queue} wl_pointer#617.motion(187310421, 29.00000000, 17.80078125) +[2618796.677] {Default Queue} wl_pointer#649.motion(187310421, 29.00000000, 17.80078125) +[2618796.682] {Default Queue} wl_pointer#681.motion(187310421, 29.00000000, 17.80078125) +[2618796.686] {Default Queue} wl_pointer#713.motion(187310421, 29.00000000, 17.80078125) +[2618796.691] {Default Queue} wl_pointer#745.motion(187310421, 29.00000000, 17.80078125) +[2618796.695] {Default Queue} wl_pointer#777.motion(187310421, 29.00000000, 17.80078125) +[2618796.699] {Default Queue} wl_pointer#809.motion(187310421, 29.00000000, 17.80078125) +[2618796.704] {Default Queue} wl_pointer#841.motion(187310421, 29.00000000, 17.80078125) +[2618796.708] {Default Queue} wl_pointer#873.motion(187310421, 29.00000000, 17.80078125) +[2618796.712] {Default Queue} wl_pointer#905.motion(187310421, 29.00000000, 17.80078125) +[2618796.717] {Default Queue} wl_pointer#937.motion(187310421, 29.00000000, 17.80078125) +[2618796.721] {Default Queue} wl_pointer#969.motion(187310421, 29.00000000, 17.80078125) +[2618796.725] {Default Queue} wl_pointer#1001.motion(187310421, 29.00000000, 17.80078125) +[2618796.730] {Default Queue} wl_pointer#1033.motion(187310421, 29.00000000, 17.80078125) +[2618796.734] {Default Queue} wl_pointer#1065.motion(187310421, 29.00000000, 17.80078125) +[2618796.738] {Default Queue} wl_pointer#1097.motion(187310421, 29.00000000, 17.80078125) +[2618796.742] {Default Queue} wl_pointer#1129.motion(187310421, 29.00000000, 17.80078125) +[2618796.747] {Default Queue} wl_pointer#1161.motion(187310421, 29.00000000, 17.80078125) +[2618796.751] {Default Queue} wl_pointer#1193.motion(187310421, 29.00000000, 17.80078125) +[2618796.755] {Default Queue} wl_pointer#1225.motion(187310421, 29.00000000, 17.80078125) +[2618796.760] {Default Queue} wl_pointer#1257.motion(187310421, 29.00000000, 17.80078125) +[2618796.767] {Default Queue} wl_pointer#1289.motion(187310421, 29.00000000, 17.80078125) +[2618796.773] {Default Queue} wl_pointer#1321.motion(187310421, 29.00000000, 17.80078125) +[2618796.777] {Default Queue} wl_pointer#1353.motion(187310421, 29.00000000, 17.80078125) +[2618796.781] {Default Queue} wl_pointer#1385.motion(187310421, 29.00000000, 17.80078125) +[2618796.786] {Default Queue} wl_pointer#1417.motion(187310421, 29.00000000, 17.80078125) +[2618796.790] {Default Queue} wl_pointer#1449.motion(187310421, 29.00000000, 17.80078125) +[2618796.794] {Default Queue} wl_pointer#1481.motion(187310421, 29.00000000, 17.80078125) +[2618796.799] {Default Queue} wl_pointer#1513.motion(187310421, 29.00000000, 17.80078125) +[2618796.803] {Default Queue} wl_pointer#1545.motion(187310421, 29.00000000, 17.80078125) +[2618796.808] {Default Queue} wl_pointer#1577.motion(187310421, 29.00000000, 17.80078125) +[2618796.812] {Default Queue} wl_pointer#1609.motion(187310421, 29.00000000, 17.80078125) +[2618796.816] {Default Queue} wl_pointer#1641.motion(187310421, 29.00000000, 17.80078125) +[2618796.820] {Default Queue} wl_pointer#1673.motion(187310421, 29.00000000, 17.80078125) +[2618796.825] {Default Queue} wl_pointer#1705.motion(187310421, 29.00000000, 17.80078125) +[2618796.829] {Default Queue} wl_pointer#1737.motion(187310421, 29.00000000, 17.80078125) +[2618796.833] {Default Queue} wl_pointer#1762.motion(187310421, 29.00000000, 17.80078125) +[2618796.838] {Default Queue} wl_pointer#1801.motion(187310421, 29.00000000, 17.80078125) +[2618796.842] {Default Queue} wl_pointer#1833.motion(187310421, 29.00000000, 17.80078125) +[2618796.846] {Default Queue} wl_pointer#1865.motion(187310421, 29.00000000, 17.80078125) +[2618796.851] {Default Queue} wl_pointer#1897.motion(187310421, 29.00000000, 17.80078125) +[2618796.855] {Default Queue} wl_pointer#1929.motion(187310421, 29.00000000, 17.80078125) +[2618796.859] {Default Queue} wl_pointer#1961.motion(187310421, 29.00000000, 17.80078125) +[2618796.870] {Default Queue} wl_pointer#1993.motion(187310421, 29.00000000, 17.80078125) +[2618796.876] {Default Queue} wl_pointer#2025.motion(187310421, 29.00000000, 17.80078125) +[2618796.881] {Default Queue} wl_pointer#2057.motion(187310421, 29.00000000, 17.80078125) +[2618796.887] {Default Queue} wl_pointer#2089.motion(187310421, 29.00000000, 17.80078125) +[2618796.891] {Default Queue} wl_pointer#2121.motion(187310421, 29.00000000, 17.80078125) +[2618796.896] {Default Queue} wl_pointer#2153.motion(187310421, 29.00000000, 17.80078125) +[2618796.900] {Default Queue} wl_pointer#2185.motion(187310421, 29.00000000, 17.80078125) +[2618796.904] {Default Queue} wl_pointer#2217.motion(187310421, 29.00000000, 17.80078125) +[2618796.909] {Default Queue} wl_pointer#2249.motion(187310421, 29.00000000, 17.80078125) +[2618796.913] {Default Queue} wl_pointer#2281.motion(187310421, 29.00000000, 17.80078125) +[2618796.917] {Default Queue} wl_pointer#2313.motion(187310421, 29.00000000, 17.80078125) +[2618796.922] {Default Queue} wl_pointer#2345.motion(187310421, 29.00000000, 17.80078125) +[2618796.926] {Default Queue} wl_pointer#2377.motion(187310421, 29.00000000, 17.80078125) +[2618796.931] {Default Queue} wl_pointer#2409.motion(187310421, 29.00000000, 17.80078125) +[2618796.935] {Default Queue} wl_pointer#2441.motion(187310421, 29.00000000, 17.80078125) +[2618796.939] {Default Queue} wl_pointer#2473.motion(187310421, 29.00000000, 17.80078125) +[2618796.944] {Default Queue} wl_pointer#2498.motion(187310421, 29.00000000, 17.80078125) +[2618796.956] {Default Queue} -> wl_buffer#3671.destroy() +[2618796.961] {Default Queue} -> wl_buffer#3681.destroy() +[2618796.965] {Default Queue} -> wl_shm_pool#3684.destroy() +[2618796.969] {Default Queue} -> wl_shm_pool#3679.destroy() +[2618796.974] {Default Queue} -> wl_surface#3682.destroy() +[2618797.016] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2504, fd 581, 640) +[2618797.022] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2503, fd 582, 640) +[2618797.027] {Default Queue} -> wl_shm_pool#2504.create_buffer(new id wl_buffer#2506, 0, 10, 16, 40, 0) +[2618797.035] {Default Queue} -> wl_shm_pool#2503.create_buffer(new id wl_buffer#2505, 0, 10, 16, 40, 0) +[2618797.045] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#2502) +[2618797.049] {Default Queue} -> wl_surface#2502.attach(wl_buffer#2506, 0, 0) +[2618797.054] {Default Queue} -> wl_surface#2502.commit() +[2618797.059] {Default Queue} -> wl_surface#2502.attach(wl_buffer#2506, 0, 0) +[2618797.063] {Default Queue} -> wl_surface#2502.commit() +[2618797.068] {Default Queue} wl_pointer#2537.motion(187310421, 29.00000000, 17.80078125) +[2618797.073] {Default Queue} wl_pointer#2569.motion(187310421, 29.00000000, 17.80078125) +[2618797.077] {Default Queue} wl_pointer#2601.motion(187310421, 29.00000000, 17.80078125) +[2618797.081] {Default Queue} wl_pointer#2633.motion(187310421, 29.00000000, 17.80078125) +[2618797.086] {Default Queue} wl_pointer#2665.motion(187310421, 29.00000000, 17.80078125) +[2618797.090] {Default Queue} wl_pointer#2697.motion(187310421, 29.00000000, 17.80078125) +[2618797.094] {Default Queue} wl_pointer#2729.motion(187310421, 29.00000000, 17.80078125) +[2618797.099] {Default Queue} wl_pointer#2761.motion(187310421, 29.00000000, 17.80078125) +[2618797.103] {Default Queue} wl_pointer#2793.motion(187310421, 29.00000000, 17.80078125) +[2618797.107] {Default Queue} wl_pointer#2825.motion(187310421, 29.00000000, 17.80078125) +[2618797.112] {Default Queue} wl_pointer#2857.motion(187310421, 29.00000000, 17.80078125) +[2618797.116] {Default Queue} wl_pointer#2889.motion(187310421, 29.00000000, 17.80078125) +[2618797.120] {Default Queue} wl_pointer#2921.motion(187310421, 29.00000000, 17.80078125) +[2618797.125] {Default Queue} wl_pointer#2953.motion(187310421, 29.00000000, 17.80078125) +[2618797.129] {Default Queue} wl_pointer#2985.motion(187310421, 29.00000000, 17.80078125) +[2618797.133] {Default Queue} wl_pointer#3017.motion(187310421, 29.00000000, 17.80078125) +[2618797.138] {Default Queue} wl_pointer#3049.motion(187310421, 29.00000000, 17.80078125) +[2618797.142] {Default Queue} wl_pointer#3081.motion(187310421, 29.00000000, 17.80078125) +[2618797.146] {Default Queue} wl_pointer#3113.motion(187310421, 29.00000000, 17.80078125) +[2618797.150] {Default Queue} wl_pointer#3145.motion(187310421, 29.00000000, 17.80078125) +[2618797.155] {Default Queue} wl_pointer#3177.motion(187310421, 29.00000000, 17.80078125) +[2618797.159] {Default Queue} wl_pointer#3209.motion(187310421, 29.00000000, 17.80078125) +[2618797.163] {Default Queue} wl_pointer#3241.motion(187310421, 29.00000000, 17.80078125) +[2618797.168] {Default Queue} wl_pointer#3273.motion(187310421, 29.00000000, 17.80078125) +[2618797.172] {Default Queue} wl_pointer#3305.motion(187310421, 29.00000000, 17.80078125) +[2618797.176] {Default Queue} wl_pointer#3337.motion(187310421, 29.00000000, 17.80078125) +[2618797.181] {Default Queue} wl_pointer#3369.motion(187310421, 29.00000000, 17.80078125) +[2618797.185] {Default Queue} wl_pointer#3401.motion(187310421, 29.00000000, 17.80078125) +[2618797.189] {Default Queue} wl_pointer#3433.motion(187310421, 29.00000000, 17.80078125) +[2618797.194] {Default Queue} wl_pointer#3465.motion(187310421, 29.00000000, 17.80078125) +[2618797.198] {Default Queue} wl_pointer#3497.motion(187310421, 29.00000000, 17.80078125) +[2618797.202] {Default Queue} wl_pointer#3529.motion(187310421, 29.00000000, 17.80078125) +[2618797.207] {Default Queue} wl_pointer#3561.motion(187310421, 29.00000000, 17.80078125) +[2618797.211] {Default Queue} wl_pointer#3593.motion(187310421, 29.00000000, 17.80078125) +[2618797.215] {Default Queue} wl_pointer#3625.motion(187310421, 29.00000000, 17.80078125) +[2618797.219] {Default Queue} wl_pointer#3657.motion(187310421, 29.00000000, 17.80078125) +[2618797.224] {Default Queue} wl_pointer#3695.motion(187310421, 29.00000000, 17.80078125) +[2618797.228] {Default Queue} wl_pointer#24.motion(187310421, 29.00000000, 17.39843750) +[2618797.232] {Default Queue} wl_pointer#81.motion(187310421, 29.00000000, 17.39843750) +[2618797.237] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618797.245] {Default Queue} wl_pointer#105.motion(187310421, 29.00000000, 17.39843750) +[2618797.250] {Default Queue} wl_pointer#137.motion(187310421, 29.00000000, 17.39843750) +[2618797.257] {Default Queue} wl_pointer#169.motion(187310421, 29.00000000, 17.39843750) +[2618797.263] {Default Queue} wl_pointer#201.motion(187310421, 29.00000000, 17.39843750) +[2618797.268] {Default Queue} wl_pointer#233.motion(187310421, 29.00000000, 17.39843750) +[2618797.272] {Default Queue} wl_pointer#265.motion(187310421, 29.00000000, 17.39843750) +[2618797.276] {Default Queue} wl_pointer#297.motion(187310421, 29.00000000, 17.39843750) +[2618797.280] {Default Queue} wl_pointer#329.motion(187310421, 29.00000000, 17.39843750) +[2618797.285] {Default Queue} wl_pointer#361.motion(187310421, 29.00000000, 17.39843750) +[2618797.289] {Default Queue} wl_pointer#393.motion(187310421, 29.00000000, 17.39843750) +[2618797.293] {Default Queue} wl_pointer#425.motion(187310421, 29.00000000, 17.39843750) +[2618797.298] {Default Queue} wl_pointer#457.motion(187310421, 29.00000000, 17.39843750) +[2618797.302] {Default Queue} wl_pointer#489.motion(187310421, 29.00000000, 17.39843750) +[2618797.306] {Default Queue} wl_pointer#521.motion(187310421, 29.00000000, 17.39843750) +[2618797.310] {Default Queue} wl_pointer#553.motion(187310421, 29.00000000, 17.39843750) +[2618797.315] {Default Queue} wl_pointer#585.motion(187310421, 29.00000000, 17.39843750) +[2618797.319] {Default Queue} wl_pointer#617.motion(187310421, 29.00000000, 17.39843750) +[2618797.323] {Default Queue} wl_pointer#649.motion(187310421, 29.00000000, 17.39843750) +[2618797.327] {Default Queue} wl_pointer#681.motion(187310421, 29.00000000, 17.39843750) +[2618797.332] {Default Queue} wl_pointer#713.motion(187310421, 29.00000000, 17.39843750) +[2618797.336] {Default Queue} wl_pointer#745.motion(187310421, 29.00000000, 17.39843750) +[2618797.340] {Default Queue} wl_pointer#777.motion(187310421, 29.00000000, 17.39843750) +[2618797.345] {Default Queue} wl_pointer#809.motion(187310421, 29.00000000, 17.39843750) +[2618797.349] {Default Queue} wl_pointer#841.motion(187310421, 29.00000000, 17.39843750) +[2618797.353] {Default Queue} wl_pointer#873.motion(187310421, 29.00000000, 17.39843750) +[2618797.358] {Default Queue} wl_pointer#905.motion(187310421, 29.00000000, 17.39843750) +[2618797.362] {Default Queue} wl_pointer#937.motion(187310421, 29.00000000, 17.39843750) +[2618797.366] {Default Queue} wl_pointer#969.motion(187310421, 29.00000000, 17.39843750) +[2618797.370] {Default Queue} wl_pointer#1001.motion(187310421, 29.00000000, 17.39843750) +[2618797.375] {Default Queue} wl_pointer#1033.motion(187310421, 29.00000000, 17.39843750) +[2618797.379] {Default Queue} wl_pointer#1065.motion(187310421, 29.00000000, 17.39843750) +[2618797.383] {Default Queue} wl_pointer#1097.motion(187310421, 29.00000000, 17.39843750) +[2618797.387] {Default Queue} wl_pointer#1129.motion(187310421, 29.00000000, 17.39843750) +[2618797.392] {Default Queue} wl_pointer#1161.motion(187310421, 29.00000000, 17.39843750) +[2618797.396] {Default Queue} wl_pointer#1193.motion(187310421, 29.00000000, 17.39843750) +[2618797.400] {Default Queue} wl_pointer#1225.motion(187310421, 29.00000000, 17.39843750) +[2618797.405] {Default Queue} wl_pointer#1257.motion(187310421, 29.00000000, 17.39843750) +[2618797.409] {Default Queue} wl_pointer#1289.motion(187310421, 29.00000000, 17.39843750) +[2618797.414] {Default Queue} wl_pointer#1321.motion(187310421, 29.00000000, 17.39843750) +[2618797.418] {Default Queue} wl_pointer#1353.motion(187310421, 29.00000000, 17.39843750) +[2618797.422] {Default Queue} wl_pointer#1385.motion(187310421, 29.00000000, 17.39843750) +[2618797.426] {Default Queue} wl_pointer#1417.motion(187310421, 29.00000000, 17.39843750) +[2618797.431] {Default Queue} wl_pointer#1449.motion(187310421, 29.00000000, 17.39843750) +[2618797.435] {Default Queue} wl_pointer#1481.motion(187310421, 29.00000000, 17.39843750) +[2618797.439] {Default Queue} wl_pointer#1513.motion(187310421, 29.00000000, 17.39843750) +[2618797.443] {Default Queue} wl_pointer#1545.motion(187310421, 29.00000000, 17.39843750) +[2618797.450] {Default Queue} wl_pointer#1577.motion(187310421, 29.00000000, 17.39843750) +[2618797.482] {Default Queue} wl_pointer#1609.motion(187310421, 29.00000000, 17.39843750) +[2618797.488] {Default Queue} wl_pointer#1641.motion(187310421, 29.00000000, 17.39843750) +[2618797.492] {Default Queue} wl_pointer#1673.motion(187310421, 29.00000000, 17.39843750) +[2618797.497] {Default Queue} wl_pointer#1705.motion(187310421, 29.00000000, 17.39843750) +[2618797.501] {Default Queue} wl_pointer#1737.motion(187310421, 29.00000000, 17.39843750) +[2618797.505] {Default Queue} wl_pointer#1762.motion(187310421, 29.00000000, 17.39843750) +[2618797.509] {Default Queue} wl_pointer#1801.motion(187310421, 29.00000000, 17.39843750) +[2618797.514] {Default Queue} wl_pointer#1833.motion(187310421, 29.00000000, 17.39843750) +[2618797.518] {Default Queue} wl_pointer#1865.motion(187310421, 29.00000000, 17.39843750) +[2618797.522] {Default Queue} wl_pointer#1897.motion(187310421, 29.00000000, 17.39843750) +[2618797.527] {Default Queue} wl_pointer#1929.motion(187310421, 29.00000000, 17.39843750) +[2618797.531] {Default Queue} wl_pointer#1961.motion(187310421, 29.00000000, 17.39843750) +[2618797.535] {Default Queue} wl_pointer#1993.motion(187310421, 29.00000000, 17.39843750) +[2618797.539] {Default Queue} wl_pointer#2025.motion(187310421, 29.00000000, 17.39843750) +[2618797.544] {Default Queue} wl_pointer#2057.motion(187310421, 29.00000000, 17.39843750) +[2618797.548] {Default Queue} wl_pointer#2089.motion(187310421, 29.00000000, 17.39843750) +[2618797.552] {Default Queue} wl_pointer#2121.motion(187310421, 29.00000000, 17.39843750) +[2618797.556] {Default Queue} wl_pointer#2153.motion(187310421, 29.00000000, 17.39843750) +[2618797.560] {Default Queue} wl_pointer#2185.motion(187310421, 29.00000000, 17.39843750) +[2618797.565] {Default Queue} wl_pointer#2217.motion(187310421, 29.00000000, 17.39843750) +[2618797.569] {Default Queue} wl_pointer#2249.motion(187310421, 29.00000000, 17.39843750) +[2618797.573] {Default Queue} wl_pointer#2281.motion(187310421, 29.00000000, 17.39843750) +[2618797.578] {Default Queue} wl_pointer#2313.motion(187310421, 29.00000000, 17.39843750) +[2618797.582] {Default Queue} wl_pointer#2345.motion(187310421, 29.00000000, 17.39843750) +[2618797.587] {Default Queue} wl_pointer#2377.motion(187310421, 29.00000000, 17.39843750) +[2618797.591] {Default Queue} wl_pointer#2409.motion(187310421, 29.00000000, 17.39843750) +[2618797.595] {Default Queue} wl_pointer#2441.motion(187310421, 29.00000000, 17.39843750) +[2618797.600] {Default Queue} wl_pointer#2473.motion(187310421, 29.00000000, 17.39843750) +[2618797.604] {Default Queue} wl_pointer#2498.motion(187310421, 29.00000000, 17.39843750) +[2618797.615] {Default Queue} -> wl_buffer#2506.destroy() +[2618797.621] {Default Queue} -> wl_buffer#2505.destroy() +[2618797.625] {Default Queue} -> wl_shm_pool#2504.destroy() +[2618797.629] {Default Queue} -> wl_shm_pool#2503.destroy() +[2618797.634] {Default Queue} -> wl_surface#2502.destroy() +[2618797.670] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3677, fd 583, 640) +[2618797.676] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3676, fd 584, 640) +[2618797.680] {Default Queue} -> wl_shm_pool#3677.create_buffer(new id wl_buffer#3674, 0, 10, 16, 40, 0) +[2618797.685] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 10, 16, 40, 0) +[2618797.692] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3675) +[2618797.696] {Default Queue} -> wl_surface#3675.attach(wl_buffer#3674, 0, 0) +[2618797.701] {Default Queue} -> wl_surface#3675.commit() +[2618797.706] {Default Queue} -> wl_surface#3675.attach(wl_buffer#3674, 0, 0) +[2618797.710] {Default Queue} -> wl_surface#3675.commit() +[2618797.714] {Default Queue} wl_pointer#2537.motion(187310421, 29.00000000, 17.39843750) +[2618797.719] {Default Queue} wl_pointer#2569.motion(187310421, 29.00000000, 17.39843750) +[2618797.723] {Default Queue} wl_pointer#2601.motion(187310421, 29.00000000, 17.39843750) +[2618797.731] {Default Queue} wl_pointer#2633.motion(187310421, 29.00000000, 17.39843750) +[2618797.738] {Default Queue} wl_pointer#2665.motion(187310421, 29.00000000, 17.39843750) +[2618797.742] {Default Queue} wl_pointer#2697.motion(187310421, 29.00000000, 17.39843750) +[2618797.746] {Default Queue} wl_pointer#2729.motion(187310421, 29.00000000, 17.39843750) +[2618797.751] {Default Queue} wl_pointer#2761.motion(187310421, 29.00000000, 17.39843750) +[2618797.755] {Default Queue} wl_pointer#2793.motion(187310421, 29.00000000, 17.39843750) +[2618797.759] {Default Queue} wl_pointer#2825.motion(187310421, 29.00000000, 17.39843750) +[2618797.764] {Default Queue} wl_pointer#2857.motion(187310421, 29.00000000, 17.39843750) +[2618797.768] {Default Queue} wl_pointer#2889.motion(187310421, 29.00000000, 17.39843750) +[2618797.772] {Default Queue} wl_pointer#2921.motion(187310421, 29.00000000, 17.39843750) +[2618797.777] {Default Queue} wl_pointer#2953.motion(187310421, 29.00000000, 17.39843750) +[2618797.781] {Default Queue} wl_pointer#2985.motion(187310421, 29.00000000, 17.39843750) +[2618797.785] {Default Queue} wl_pointer#3017.motion(187310421, 29.00000000, 17.39843750) +[2618797.789] {Default Queue} wl_pointer#3049.motion(187310421, 29.00000000, 17.39843750) +[2618797.794] {Default Queue} wl_pointer#3081.motion(187310421, 29.00000000, 17.39843750) +[2618797.798] {Default Queue} wl_pointer#3113.motion(187310421, 29.00000000, 17.39843750) +[2618797.802] {Default Queue} wl_pointer#3145.motion(187310421, 29.00000000, 17.39843750) +[2618797.807] {Default Queue} wl_pointer#3177.motion(187310421, 29.00000000, 17.39843750) +[2618797.811] {Default Queue} wl_pointer#3209.motion(187310421, 29.00000000, 17.39843750) +[2618797.815] {Default Queue} wl_pointer#3241.motion(187310421, 29.00000000, 17.39843750) +[2618797.820] {Default Queue} wl_pointer#3273.motion(187310421, 29.00000000, 17.39843750) +[2618797.824] {Default Queue} wl_pointer#3305.motion(187310421, 29.00000000, 17.39843750) +[2618797.829] {Default Queue} wl_pointer#3337.motion(187310421, 29.00000000, 17.39843750) +[2618797.833] {Default Queue} wl_pointer#3369.motion(187310421, 29.00000000, 17.39843750) +[2618797.837] {Default Queue} wl_pointer#3401.motion(187310421, 29.00000000, 17.39843750) +[2618797.899] {Default Queue} wl_pointer#3433.motion(187310421, 29.00000000, 17.39843750) +[2618797.911] {Default Queue} wl_pointer#3465.motion(187310421, 29.00000000, 17.39843750) +[2618797.916] {Default Queue} wl_pointer#3497.motion(187310421, 29.00000000, 17.39843750) +[2618797.921] {Default Queue} wl_pointer#3529.motion(187310421, 29.00000000, 17.39843750) +[2618797.926] {Default Queue} wl_pointer#3561.motion(187310421, 29.00000000, 17.39843750) +[2618797.930] {Default Queue} wl_pointer#3593.motion(187310421, 29.00000000, 17.39843750) +[2618797.935] {Default Queue} wl_pointer#3625.motion(187310421, 29.00000000, 17.39843750) +[2618797.939] {Default Queue} wl_pointer#3657.motion(187310421, 29.00000000, 17.39843750) +[2618797.943] {Default Queue} wl_pointer#3695.motion(187310421, 29.00000000, 17.39843750) +[2618797.947] {Default Queue} wl_pointer#24.motion(187310421, 29.00000000, 17.00000000) +[2618797.952] {Default Queue} wl_pointer#81.motion(187310421, 29.00000000, 17.00000000) +[2618797.958] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618797.962] {Default Queue} wl_pointer#105.motion(187310421, 29.00000000, 17.00000000) +[2618797.968] {Default Queue} wl_pointer#137.motion(187310421, 29.00000000, 17.00000000) +[2618797.972] {Default Queue} wl_pointer#169.motion(187310421, 29.00000000, 17.00000000) +[2618797.977] {Default Queue} wl_pointer#201.motion(187310421, 29.00000000, 17.00000000) +[2618797.981] {Default Queue} wl_pointer#233.motion(187310421, 29.00000000, 17.00000000) +[2618797.985] {Default Queue} wl_pointer#265.motion(187310421, 29.00000000, 17.00000000) +[2618797.989] {Default Queue} wl_pointer#297.motion(187310421, 29.00000000, 17.00000000) +[2618797.994] {Default Queue} wl_pointer#329.motion(187310421, 29.00000000, 17.00000000) +[2618797.998] {Default Queue} wl_pointer#361.motion(187310421, 29.00000000, 17.00000000) +[2618798.010] {Default Queue} wl_pointer#393.motion(187310421, 29.00000000, 17.00000000) +[2618798.019] {Default Queue} wl_pointer#425.motion(187310421, 29.00000000, 17.00000000) +[2618798.025] {Default Queue} wl_pointer#457.motion(187310421, 29.00000000, 17.00000000) +[2618798.031] {Default Queue} wl_pointer#489.motion(187310421, 29.00000000, 17.00000000) +[2618798.037] {Default Queue} wl_pointer#521.motion(187310421, 29.00000000, 17.00000000) +[2618798.042] {Default Queue} wl_pointer#553.motion(187310421, 29.00000000, 17.00000000) +[2618798.046] {Default Queue} wl_pointer#585.motion(187310421, 29.00000000, 17.00000000) +[2618798.051] {Default Queue} wl_pointer#617.motion(187310421, 29.00000000, 17.00000000) +[2618798.055] {Default Queue} wl_pointer#649.motion(187310421, 29.00000000, 17.00000000) +[2618798.060] {Default Queue} wl_pointer#681.motion(187310421, 29.00000000, 17.00000000) +[2618798.066] {Default Queue} wl_pointer#713.motion(187310421, 29.00000000, 17.00000000) +[2618798.071] {Default Queue} wl_pointer#745.motion(187310421, 29.00000000, 17.00000000) +[2618798.077] {Default Queue} wl_pointer#777.motion(187310421, 29.00000000, 17.00000000) +[2618798.083] {Default Queue} wl_pointer#809.motion(187310421, 29.00000000, 17.00000000) +[2618798.088] {Default Queue} wl_pointer#841.motion(187310421, 29.00000000, 17.00000000) +[2618798.093] {Default Queue} wl_pointer#873.motion(187310421, 29.00000000, 17.00000000) +[2618798.098] {Default Queue} wl_pointer#905.motion(187310421, 29.00000000, 17.00000000) +[2618798.104] {Default Queue} wl_pointer#937.motion(187310421, 29.00000000, 17.00000000) +[2618798.110] {Default Queue} wl_pointer#969.motion(187310421, 29.00000000, 17.00000000) +[2618798.116] {Default Queue} wl_pointer#1001.motion(187310421, 29.00000000, 17.00000000) +[2618798.121] {Default Queue} wl_pointer#1033.motion(187310421, 29.00000000, 17.00000000) +[2618798.125] {Default Queue} wl_pointer#1065.motion(187310421, 29.00000000, 17.00000000) +[2618798.130] {Default Queue} wl_pointer#1097.motion(187310421, 29.00000000, 17.00000000) +[2618798.134] {Default Queue} wl_pointer#1129.motion(187310421, 29.00000000, 17.00000000) +[2618798.138] {Default Queue} wl_pointer#1161.motion(187310421, 29.00000000, 17.00000000) +[2618798.143] {Default Queue} wl_pointer#1193.motion(187310421, 29.00000000, 17.00000000) +[2618798.147] {Default Queue} wl_pointer#1225.motion(187310421, 29.00000000, 17.00000000) +[2618798.151] {Default Queue} wl_pointer#1257.motion(187310421, 29.00000000, 17.00000000) +[2618798.155] {Default Queue} wl_pointer#1289.motion(187310421, 29.00000000, 17.00000000) +[2618798.160] {Default Queue} wl_pointer#1321.motion(187310421, 29.00000000, 17.00000000) +[2618798.164] {Default Queue} wl_pointer#1353.motion(187310421, 29.00000000, 17.00000000) +[2618798.168] {Default Queue} wl_pointer#1385.motion(187310421, 29.00000000, 17.00000000) +[2618798.172] {Default Queue} wl_pointer#1417.motion(187310421, 29.00000000, 17.00000000) +[2618798.177] {Default Queue} wl_pointer#1449.motion(187310421, 29.00000000, 17.00000000) +[2618798.181] {Default Queue} wl_pointer#1481.motion(187310421, 29.00000000, 17.00000000) +[2618798.185] {Default Queue} wl_pointer#1513.motion(187310421, 29.00000000, 17.00000000) +[2618798.189] {Default Queue} wl_pointer#1545.motion(187310421, 29.00000000, 17.00000000) +[2618798.193] {Default Queue} wl_pointer#1577.motion(187310421, 29.00000000, 17.00000000) +[2618798.198] {Default Queue} wl_pointer#1609.motion(187310421, 29.00000000, 17.00000000) +[2618798.202] {Default Queue} wl_pointer#1641.motion(187310421, 29.00000000, 17.00000000) +[2618798.206] {Default Queue} wl_pointer#1673.motion(187310421, 29.00000000, 17.00000000) +[2618798.210] {Default Queue} wl_pointer#1705.motion(187310421, 29.00000000, 17.00000000) +[2618798.215] {Default Queue} wl_pointer#1737.motion(187310421, 29.00000000, 17.00000000) +[2618798.219] {Default Queue} wl_pointer#1762.motion(187310421, 29.00000000, 17.00000000) +[2618798.223] {Default Queue} wl_pointer#1801.motion(187310421, 29.00000000, 17.00000000) +[2618798.227] {Default Queue} wl_pointer#1833.motion(187310421, 29.00000000, 17.00000000) +[2618798.235] {Default Queue} wl_pointer#1865.motion(187310421, 29.00000000, 17.00000000) +[2618798.241] {Default Queue} wl_pointer#1897.motion(187310421, 29.00000000, 17.00000000) +[2618798.246] {Default Queue} wl_pointer#1929.motion(187310421, 29.00000000, 17.00000000) +[2618798.250] {Default Queue} wl_pointer#1961.motion(187310421, 29.00000000, 17.00000000) +[2618798.254] {Default Queue} wl_pointer#1993.motion(187310421, 29.00000000, 17.00000000) +[2618798.259] {Default Queue} wl_pointer#2025.motion(187310421, 29.00000000, 17.00000000) +[2618798.263] {Default Queue} wl_pointer#2057.motion(187310421, 29.00000000, 17.00000000) +[2618798.267] {Default Queue} wl_pointer#2089.motion(187310421, 29.00000000, 17.00000000) +[2618798.271] {Default Queue} wl_pointer#2121.motion(187310421, 29.00000000, 17.00000000) +[2618798.275] {Default Queue} wl_pointer#2153.motion(187310421, 29.00000000, 17.00000000) +[2618798.280] {Default Queue} wl_pointer#2185.motion(187310421, 29.00000000, 17.00000000) +[2618798.284] {Default Queue} wl_pointer#2217.motion(187310421, 29.00000000, 17.00000000) +[2618798.288] {Default Queue} wl_pointer#2249.motion(187310421, 29.00000000, 17.00000000) +[2618798.292] {Default Queue} wl_pointer#2281.motion(187310421, 29.00000000, 17.00000000) +[2618798.297] {Default Queue} wl_pointer#2313.motion(187310421, 29.00000000, 17.00000000) +[2618798.301] {Default Queue} wl_pointer#2345.motion(187310421, 29.00000000, 17.00000000) +[2618798.306] {Default Queue} wl_pointer#2377.motion(187310421, 29.00000000, 17.00000000) +[2618798.310] {Default Queue} wl_pointer#2409.motion(187310421, 29.00000000, 17.00000000) +[2618798.314] {Default Queue} wl_pointer#2441.motion(187310421, 29.00000000, 17.00000000) +[2618798.318] {Default Queue} wl_pointer#2473.motion(187310421, 29.00000000, 17.00000000) +[2618798.323] {Default Queue} wl_pointer#2498.motion(187310421, 29.00000000, 17.00000000) +[2618798.336] {Default Queue} -> wl_buffer#3674.destroy() +[2618798.342] {Default Queue} -> wl_buffer#3678.destroy() +[2618798.346] {Default Queue} -> wl_shm_pool#3677.destroy() +[2618798.350] {Default Queue} -> wl_shm_pool#3676.destroy() +[2618798.355] {Default Queue} -> wl_surface#3675.destroy() +[2618798.401] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3483, fd 585, 640) +[2618798.407] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3486, fd 586, 640) +[2618798.412] {Default Queue} -> wl_shm_pool#3483.create_buffer(new id wl_buffer#3485, 0, 10, 16, 40, 0) +[2618798.416] {Default Queue} -> wl_shm_pool#3486.create_buffer(new id wl_buffer#3516, 0, 10, 16, 40, 0) +[2618798.424] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3515) +[2618798.429] {Default Queue} -> wl_surface#3515.attach(wl_buffer#3485, 0, 0) +[2618798.433] {Default Queue} -> wl_surface#3515.commit() +[2618798.438] {Default Queue} -> wl_surface#3515.attach(wl_buffer#3485, 0, 0) +[2618798.442] {Default Queue} -> wl_surface#3515.commit() +[2618798.447] {Default Queue} wl_pointer#2537.motion(187310421, 29.00000000, 17.00000000) +[2618798.451] {Default Queue} wl_pointer#2569.motion(187310421, 29.00000000, 17.00000000) +[2618798.456] {Default Queue} wl_pointer#2601.motion(187310421, 29.00000000, 17.00000000) +[2618798.460] {Default Queue} wl_pointer#2633.motion(187310421, 29.00000000, 17.00000000) +[2618798.464] {Default Queue} wl_pointer#2665.motion(187310421, 29.00000000, 17.00000000) +[2618798.469] {Default Queue} wl_pointer#2697.motion(187310421, 29.00000000, 17.00000000) +[2618798.473] {Default Queue} wl_pointer#2729.motion(187310421, 29.00000000, 17.00000000) +[2618798.477] {Default Queue} wl_pointer#2761.motion(187310421, 29.00000000, 17.00000000) +[2618798.481] {Default Queue} wl_pointer#2793.motion(187310421, 29.00000000, 17.00000000) +[2618798.486] {Default Queue} wl_pointer#2825.motion(187310421, 29.00000000, 17.00000000) +[2618798.490] {Default Queue} wl_pointer#2857.motion(187310421, 29.00000000, 17.00000000) +[2618798.495] {Default Queue} wl_pointer#2889.motion(187310421, 29.00000000, 17.00000000) +[2618798.503] {Default Queue} wl_pointer#2921.motion(187310421, 29.00000000, 17.00000000) +[2618798.509] {Default Queue} wl_pointer#2953.motion(187310421, 29.00000000, 17.00000000) +[2618798.513] {Default Queue} wl_pointer#2985.motion(187310421, 29.00000000, 17.00000000) +[2618798.518] {Default Queue} wl_pointer#3017.motion(187310421, 29.00000000, 17.00000000) +[2618798.522] {Default Queue} wl_pointer#3049.motion(187310421, 29.00000000, 17.00000000) +[2618798.526] {Default Queue} wl_pointer#3081.motion(187310421, 29.00000000, 17.00000000) +[2618798.531] {Default Queue} wl_pointer#3113.motion(187310421, 29.00000000, 17.00000000) +[2618798.535] {Default Queue} wl_pointer#3145.motion(187310421, 29.00000000, 17.00000000) +[2618798.539] {Default Queue} wl_pointer#3177.motion(187310421, 29.00000000, 17.00000000) +[2618798.543] {Default Queue} wl_pointer#3209.motion(187310421, 29.00000000, 17.00000000) +[2618798.548] {Default Queue} wl_pointer#3241.motion(187310421, 29.00000000, 17.00000000) +[2618798.552] {Default Queue} wl_pointer#3273.motion(187310421, 29.00000000, 17.00000000) +[2618798.556] {Default Queue} wl_pointer#3305.motion(187310421, 29.00000000, 17.00000000) +[2618798.560] {Default Queue} wl_pointer#3337.motion(187310421, 29.00000000, 17.00000000) +[2618798.564] {Default Queue} wl_pointer#3369.motion(187310421, 29.00000000, 17.00000000) +[2618798.569] {Default Queue} wl_pointer#3401.motion(187310421, 29.00000000, 17.00000000) +[2618798.573] {Default Queue} wl_pointer#3433.motion(187310421, 29.00000000, 17.00000000) +[2618798.577] {Default Queue} wl_pointer#3465.motion(187310421, 29.00000000, 17.00000000) +[2618798.582] {Default Queue} wl_pointer#3497.motion(187310421, 29.00000000, 17.00000000) +[2618798.586] {Default Queue} wl_pointer#3529.motion(187310421, 29.00000000, 17.00000000) +[2618798.590] {Default Queue} wl_pointer#3561.motion(187310421, 29.00000000, 17.00000000) +[2618798.594] {Default Queue} wl_pointer#3593.motion(187310421, 29.00000000, 17.00000000) +[2618798.599] {Default Queue} wl_pointer#3625.motion(187310421, 29.00000000, 17.00000000) +[2618798.603] {Default Queue} wl_pointer#3657.motion(187310421, 29.00000000, 17.00000000) +[2618798.608] {Default Queue} wl_pointer#3695.motion(187310421, 29.00000000, 17.00000000) +[2618798.619] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2618798.623] {Default Queue} -> wl_surface#43.commit() +[2618798.670] {Default Queue} wl_pointer#24.motion(187310426, 29.00000000, 16.60156250) +[2618798.675] {Default Queue} wl_pointer#81.motion(187310426, 29.00000000, 16.60156250) +[2618798.680] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618798.685] {Default Queue} wl_pointer#105.motion(187310426, 29.00000000, 16.60156250) +[2618798.689] {Default Queue} wl_pointer#137.motion(187310426, 29.00000000, 16.60156250) +[2618798.693] {Default Queue} wl_pointer#169.motion(187310426, 29.00000000, 16.60156250) +[2618798.698] {Default Queue} wl_pointer#201.motion(187310426, 29.00000000, 16.60156250) +[2618798.702] {Default Queue} wl_pointer#233.motion(187310426, 29.00000000, 16.60156250) +[2618798.706] {Default Queue} wl_pointer#265.motion(187310426, 29.00000000, 16.60156250) +[2618798.710] {Default Queue} wl_pointer#297.motion(187310426, 29.00000000, 16.60156250) +[2618798.714] {Default Queue} wl_pointer#329.motion(187310426, 29.00000000, 16.60156250) +[2618798.719] {Default Queue} wl_pointer#361.motion(187310426, 29.00000000, 16.60156250) +[2618798.723] {Default Queue} wl_pointer#393.motion(187310426, 29.00000000, 16.60156250) +[2618798.727] {Default Queue} wl_pointer#425.motion(187310426, 29.00000000, 16.60156250) +[2618798.731] {Default Queue} wl_pointer#457.motion(187310426, 29.00000000, 16.60156250) +[2618798.736] {Default Queue} wl_pointer#489.motion(187310426, 29.00000000, 16.60156250) +[2618798.740] {Default Queue} wl_pointer#521.motion(187310426, 29.00000000, 16.60156250) +[2618798.744] {Default Queue} wl_pointer#553.motion(187310426, 29.00000000, 16.60156250) +[2618798.748] {Default Queue} wl_pointer#585.motion(187310426, 29.00000000, 16.60156250) +[2618798.753] {Default Queue} wl_pointer#617.motion(187310426, 29.00000000, 16.60156250) +[2618798.760] {Default Queue} wl_pointer#649.motion(187310426, 29.00000000, 16.60156250) +[2618798.766] {Default Queue} wl_pointer#681.motion(187310426, 29.00000000, 16.60156250) +[2618798.770] {Default Queue} wl_pointer#713.motion(187310426, 29.00000000, 16.60156250) +[2618798.774] {Default Queue} wl_pointer#745.motion(187310426, 29.00000000, 16.60156250) +[2618798.779] {Default Queue} wl_pointer#777.motion(187310426, 29.00000000, 16.60156250) +[2618798.783] {Default Queue} wl_pointer#809.motion(187310426, 29.00000000, 16.60156250) +[2618798.787] {Default Queue} wl_pointer#841.motion(187310426, 29.00000000, 16.60156250) +[2618798.791] {Default Queue} wl_pointer#873.motion(187310426, 29.00000000, 16.60156250) +[2618798.795] {Default Queue} wl_pointer#905.motion(187310426, 29.00000000, 16.60156250) +[2618798.800] {Default Queue} wl_pointer#937.motion(187310426, 29.00000000, 16.60156250) +[2618798.804] {Default Queue} wl_pointer#969.motion(187310426, 29.00000000, 16.60156250) +[2618798.808] {Default Queue} wl_pointer#1001.motion(187310426, 29.00000000, 16.60156250) +[2618798.813] {Default Queue} wl_pointer#1033.motion(187310426, 29.00000000, 16.60156250) +[2618798.817] {Default Queue} wl_pointer#1065.motion(187310426, 29.00000000, 16.60156250) +[2618798.821] {Default Queue} wl_pointer#1097.motion(187310426, 29.00000000, 16.60156250) +[2618798.825] {Default Queue} wl_pointer#1129.motion(187310426, 29.00000000, 16.60156250) +[2618798.830] {Default Queue} wl_pointer#1161.motion(187310426, 29.00000000, 16.60156250) +[2618798.834] {Default Queue} wl_pointer#1193.motion(187310426, 29.00000000, 16.60156250) +[2618798.838] {Default Queue} wl_pointer#1225.motion(187310426, 29.00000000, 16.60156250) +[2618798.842] {Default Queue} wl_pointer#1257.motion(187310426, 29.00000000, 16.60156250) +[2618798.846] {Default Queue} wl_pointer#1289.motion(187310426, 29.00000000, 16.60156250) +[2618798.851] {Default Queue} wl_pointer#1321.motion(187310426, 29.00000000, 16.60156250) +[2618798.855] {Default Queue} wl_pointer#1353.motion(187310426, 29.00000000, 16.60156250) +[2618798.859] {Default Queue} wl_pointer#1385.motion(187310426, 29.00000000, 16.60156250) +[2618798.894] {Default Queue} wl_pointer#1417.motion(187310426, 29.00000000, 16.60156250) +[2618798.918] {Default Queue} wl_pointer#1449.motion(187310426, 29.00000000, 16.60156250) +[2618798.926] {Default Queue} wl_pointer#1481.motion(187310426, 29.00000000, 16.60156250) +[2618798.931] {Default Queue} wl_pointer#1513.motion(187310426, 29.00000000, 16.60156250) +[2618798.936] {Default Queue} wl_pointer#1545.motion(187310426, 29.00000000, 16.60156250) +[2618798.940] {Default Queue} wl_pointer#1577.motion(187310426, 29.00000000, 16.60156250) +[2618798.946] {Default Queue} wl_pointer#1609.motion(187310426, 29.00000000, 16.60156250) +[2618798.951] {Default Queue} wl_pointer#1641.motion(187310426, 29.00000000, 16.60156250) +[2618798.957] {Default Queue} wl_pointer#1673.motion(187310426, 29.00000000, 16.60156250) +[2618798.963] {Default Queue} wl_pointer#1705.motion(187310426, 29.00000000, 16.60156250) +[2618798.968] {Default Queue} wl_pointer#1737.motion(187310426, 29.00000000, 16.60156250) +[2618798.973] {Default Queue} wl_pointer#1762.motion(187310426, 29.00000000, 16.60156250) +[2618798.978] {Default Queue} wl_pointer#1801.motion(187310426, 29.00000000, 16.60156250) +[2618798.982] {Default Queue} wl_pointer#1833.motion(187310426, 29.00000000, 16.60156250) +[2618798.987] {Default Queue} wl_pointer#1865.motion(187310426, 29.00000000, 16.60156250) +[2618798.993] {Default Queue} wl_pointer#1897.motion(187310426, 29.00000000, 16.60156250) +[2618798.998] {Default Queue} wl_pointer#1929.motion(187310426, 29.00000000, 16.60156250) +[2618799.002] {Default Queue} wl_pointer#1961.motion(187310426, 29.00000000, 16.60156250) +[2618799.007] {Default Queue} wl_pointer#1993.motion(187310426, 29.00000000, 16.60156250) +[2618799.012] {Default Queue} wl_pointer#2025.motion(187310426, 29.00000000, 16.60156250) +[2618799.017] {Default Queue} wl_pointer#2057.motion(187310426, 29.00000000, 16.60156250) +[2618799.028] {Default Queue} wl_pointer#2089.motion(187310426, 29.00000000, 16.60156250) +[2618799.037] {Default Queue} wl_pointer#2121.motion(187310426, 29.00000000, 16.60156250) +[2618799.042] {Default Queue} wl_pointer#2153.motion(187310426, 29.00000000, 16.60156250) +[2618799.047] {Default Queue} wl_pointer#2185.motion(187310426, 29.00000000, 16.60156250) +[2618799.052] {Default Queue} wl_pointer#2217.motion(187310426, 29.00000000, 16.60156250) +[2618799.057] {Default Queue} wl_pointer#2249.motion(187310426, 29.00000000, 16.60156250) +[2618799.062] {Default Queue} wl_pointer#2281.motion(187310426, 29.00000000, 16.60156250) +[2618799.067] {Default Queue} wl_pointer#2313.motion(187310426, 29.00000000, 16.60156250) +[2618799.072] {Default Queue} wl_pointer#2345.motion(187310426, 29.00000000, 16.60156250) +[2618799.077] {Default Queue} wl_pointer#2377.motion(187310426, 29.00000000, 16.60156250) +[2618799.083] {Default Queue} wl_pointer#2409.motion(187310426, 29.00000000, 16.60156250) +[2618799.087] {Default Queue} wl_pointer#2441.motion(187310426, 29.00000000, 16.60156250) +[2618799.092] {Default Queue} wl_pointer#2473.motion(187310426, 29.00000000, 16.60156250) +[2618799.097] {Default Queue} wl_pointer#2498.motion(187310426, 29.00000000, 16.60156250) +[2618799.113] {Default Queue} -> wl_buffer#3485.destroy() +[2618799.121] {Default Queue} -> wl_buffer#3516.destroy() +[2618799.127] {Default Queue} -> wl_shm_pool#3483.destroy() +[2618799.131] {Default Queue} -> wl_shm_pool#3486.destroy() +[2618799.138] {Default Queue} -> wl_surface#3515.destroy() +[2618799.183] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#91, fd 587, 640) +[2618799.190] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 588, 640) +[2618799.195] {Default Queue} -> wl_shm_pool#91.create_buffer(new id wl_buffer#93, 0, 10, 16, 40, 0) +[2618799.200] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) +[2618799.208] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3683) +[2618799.213] {Default Queue} -> wl_surface#3683.attach(wl_buffer#93, 0, 0) +[2618799.218] {Default Queue} -> wl_surface#3683.commit() +[2618799.223] {Default Queue} -> wl_surface#3683.attach(wl_buffer#93, 0, 0) +[2618799.228] {Default Queue} -> wl_surface#3683.commit() +[2618799.232] {Default Queue} wl_pointer#2537.motion(187310426, 29.00000000, 16.60156250) +[2618799.238] {Default Queue} wl_pointer#2569.motion(187310426, 29.00000000, 16.60156250) +[2618799.242] {Default Queue} wl_pointer#2601.motion(187310426, 29.00000000, 16.60156250) +[2618799.247] {Default Queue} wl_pointer#2633.motion(187310426, 29.00000000, 16.60156250) +[2618799.252] {Default Queue} wl_pointer#2665.motion(187310426, 29.00000000, 16.60156250) +[2618799.257] {Default Queue} wl_pointer#2697.motion(187310426, 29.00000000, 16.60156250) +[2618799.261] {Default Queue} wl_pointer#2729.motion(187310426, 29.00000000, 16.60156250) +[2618799.266] {Default Queue} wl_pointer#2761.motion(187310426, 29.00000000, 16.60156250) +[2618799.271] {Default Queue} wl_pointer#2793.motion(187310426, 29.00000000, 16.60156250) +[2618799.276] {Default Queue} wl_pointer#2825.motion(187310426, 29.00000000, 16.60156250) +[2618799.281] {Default Queue} wl_pointer#2857.motion(187310426, 29.00000000, 16.60156250) +[2618799.286] {Default Queue} wl_pointer#2889.motion(187310426, 29.00000000, 16.60156250) +[2618799.291] {Default Queue} wl_pointer#2921.motion(187310426, 29.00000000, 16.60156250) +[2618799.296] {Default Queue} wl_pointer#2953.motion(187310426, 29.00000000, 16.60156250) +[2618799.301] {Default Queue} wl_pointer#2985.motion(187310426, 29.00000000, 16.60156250) +[2618799.306] {Default Queue} wl_pointer#3017.motion(187310426, 29.00000000, 16.60156250) +[2618799.311] {Default Queue} wl_pointer#3049.motion(187310426, 29.00000000, 16.60156250) +[2618799.316] {Default Queue} wl_pointer#3081.motion(187310426, 29.00000000, 16.60156250) +[2618799.322] {Default Queue} wl_pointer#3113.motion(187310426, 29.00000000, 16.60156250) +[2618799.327] {Default Queue} wl_pointer#3145.motion(187310426, 29.00000000, 16.60156250) +[2618799.337] {Default Queue} wl_pointer#3177.motion(187310426, 29.00000000, 16.60156250) +[2618799.344] {Default Queue} wl_pointer#3209.motion(187310426, 29.00000000, 16.60156250) +[2618799.350] {Default Queue} wl_pointer#3241.motion(187310426, 29.00000000, 16.60156250) +[2618799.355] {Default Queue} wl_pointer#3273.motion(187310426, 29.00000000, 16.60156250) +[2618799.360] {Default Queue} wl_pointer#3305.motion(187310426, 29.00000000, 16.60156250) +[2618799.365] {Default Queue} wl_pointer#3337.motion(187310426, 29.00000000, 16.60156250) +[2618799.370] {Default Queue} wl_pointer#3369.motion(187310426, 29.00000000, 16.60156250) +[2618799.374] {Default Queue} wl_pointer#3401.motion(187310426, 29.00000000, 16.60156250) +[2618799.379] {Default Queue} wl_pointer#3433.motion(187310426, 29.00000000, 16.60156250) +[2618799.384] {Default Queue} wl_pointer#3465.motion(187310426, 29.00000000, 16.60156250) +[2618799.390] {Default Queue} wl_pointer#3497.motion(187310426, 29.00000000, 16.60156250) +[2618799.395] {Default Queue} wl_pointer#3529.motion(187310426, 29.00000000, 16.60156250) +[2618799.400] {Default Queue} wl_pointer#3561.motion(187310426, 29.00000000, 16.60156250) +[2618799.404] {Default Queue} wl_pointer#3593.motion(187310426, 29.00000000, 16.60156250) +[2618799.409] {Default Queue} wl_pointer#3625.motion(187310426, 29.00000000, 16.60156250) +[2618799.414] {Default Queue} wl_pointer#3657.motion(187310426, 29.00000000, 16.60156250) +[2618799.419] {Default Queue} wl_pointer#3695.motion(187310426, 29.00000000, 16.60156250) +[2618799.423] {Default Queue} wl_pointer#24.motion(187310431, 29.00000000, 16.19921875) +[2618799.428] {Default Queue} wl_pointer#81.motion(187310431, 29.00000000, 16.19921875) +[2618799.434] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618799.439] {Default Queue} wl_pointer#105.motion(187310431, 29.00000000, 16.19921875) +[2618799.447] {Default Queue} wl_pointer#137.motion(187310431, 29.00000000, 16.19921875) +[2618799.454] {Default Queue} wl_pointer#169.motion(187310431, 29.00000000, 16.19921875) +[2618799.458] {Default Queue} wl_pointer#201.motion(187310431, 29.00000000, 16.19921875) +[2618799.464] {Default Queue} wl_pointer#233.motion(187310431, 29.00000000, 16.19921875) +[2618799.469] {Default Queue} wl_pointer#265.motion(187310431, 29.00000000, 16.19921875) +[2618799.474] {Default Queue} wl_pointer#297.motion(187310431, 29.00000000, 16.19921875) +[2618799.478] {Default Queue} wl_pointer#329.motion(187310431, 29.00000000, 16.19921875) +[2618799.483] {Default Queue} wl_pointer#361.motion(187310431, 29.00000000, 16.19921875) +[2618799.488] {Default Queue} wl_pointer#393.motion(187310431, 29.00000000, 16.19921875) +[2618799.493] {Default Queue} wl_pointer#425.motion(187310431, 29.00000000, 16.19921875) +[2618799.498] {Default Queue} wl_pointer#457.motion(187310431, 29.00000000, 16.19921875) +[2618799.503] {Default Queue} wl_pointer#489.motion(187310431, 29.00000000, 16.19921875) +[2618799.507] {Default Queue} wl_pointer#521.motion(187310431, 29.00000000, 16.19921875) +[2618799.512] {Default Queue} wl_pointer#553.motion(187310431, 29.00000000, 16.19921875) +[2618799.517] {Default Queue} wl_pointer#585.motion(187310431, 29.00000000, 16.19921875) +[2618799.521] {Default Queue} wl_pointer#617.motion(187310431, 29.00000000, 16.19921875) +[2618799.526] {Default Queue} wl_pointer#649.motion(187310431, 29.00000000, 16.19921875) +[2618799.532] {Default Queue} wl_pointer#681.motion(187310431, 29.00000000, 16.19921875) +[2618799.537] {Default Queue} wl_pointer#713.motion(187310431, 29.00000000, 16.19921875) +[2618799.541] {Default Queue} wl_pointer#745.motion(187310431, 29.00000000, 16.19921875) +[2618799.546] {Default Queue} wl_pointer#777.motion(187310431, 29.00000000, 16.19921875) +[2618799.551] {Default Queue} wl_pointer#809.motion(187310431, 29.00000000, 16.19921875) +[2618799.556] {Default Queue} wl_pointer#841.motion(187310431, 29.00000000, 16.19921875) +[2618799.561] {Default Queue} wl_pointer#873.motion(187310431, 29.00000000, 16.19921875) +[2618799.566] {Default Queue} wl_pointer#905.motion(187310431, 29.00000000, 16.19921875) +[2618799.573] {Default Queue} wl_pointer#937.motion(187310431, 29.00000000, 16.19921875) +[2618799.580] {Default Queue} wl_pointer#969.motion(187310431, 29.00000000, 16.19921875) +[2618799.584] {Default Queue} wl_pointer#1001.motion(187310431, 29.00000000, 16.19921875) +[2618799.589] {Default Queue} wl_pointer#1033.motion(187310431, 29.00000000, 16.19921875) +[2618799.594] {Default Queue} wl_pointer#1065.motion(187310431, 29.00000000, 16.19921875) +[2618799.599] {Default Queue} wl_pointer#1097.motion(187310431, 29.00000000, 16.19921875) +[2618799.604] {Default Queue} wl_pointer#1129.motion(187310431, 29.00000000, 16.19921875) +[2618799.608] {Default Queue} wl_pointer#1161.motion(187310431, 29.00000000, 16.19921875) +[2618799.613] {Default Queue} wl_pointer#1193.motion(187310431, 29.00000000, 16.19921875) +[2618799.618] {Default Queue} wl_pointer#1225.motion(187310431, 29.00000000, 16.19921875) +[2618799.623] {Default Queue} wl_pointer#1257.motion(187310431, 29.00000000, 16.19921875) +[2618799.627] {Default Queue} wl_pointer#1289.motion(187310431, 29.00000000, 16.19921875) +[2618799.632] {Default Queue} wl_pointer#1321.motion(187310431, 29.00000000, 16.19921875) +[2618799.637] {Default Queue} wl_pointer#1353.motion(187310431, 29.00000000, 16.19921875) +[2618799.641] {Default Queue} wl_pointer#1385.motion(187310431, 29.00000000, 16.19921875) +[2618799.646] {Default Queue} wl_pointer#1417.motion(187310431, 29.00000000, 16.19921875) +[2618799.651] {Default Queue} wl_pointer#1449.motion(187310431, 29.00000000, 16.19921875) +[2618799.655] {Default Queue} wl_pointer#1481.motion(187310431, 29.00000000, 16.19921875) +[2618799.660] {Default Queue} wl_pointer#1513.motion(187310431, 29.00000000, 16.19921875) +[2618799.664] {Default Queue} wl_pointer#1545.motion(187310431, 29.00000000, 16.19921875) +[2618799.669] {Default Queue} wl_pointer#1577.motion(187310431, 29.00000000, 16.19921875) +[2618799.673] {Default Queue} wl_pointer#1609.motion(187310431, 29.00000000, 16.19921875) +[2618799.677] {Default Queue} wl_pointer#1641.motion(187310431, 29.00000000, 16.19921875) +[2618799.682] {Default Queue} wl_pointer#1673.motion(187310431, 29.00000000, 16.19921875) +[2618799.686] {Default Queue} wl_pointer#1705.motion(187310431, 29.00000000, 16.19921875) +[2618799.691] {Default Queue} wl_pointer#1737.motion(187310431, 29.00000000, 16.19921875) +[2618799.696] {Default Queue} wl_pointer#1762.motion(187310431, 29.00000000, 16.19921875) +[2618799.701] {Default Queue} wl_pointer#1801.motion(187310431, 29.00000000, 16.19921875) +[2618799.705] {Default Queue} wl_pointer#1833.motion(187310431, 29.00000000, 16.19921875) +[2618799.710] {Default Queue} wl_pointer#1865.motion(187310431, 29.00000000, 16.19921875) +[2618799.714] {Default Queue} wl_pointer#1897.motion(187310431, 29.00000000, 16.19921875) +[2618799.718] {Default Queue} wl_pointer#1929.motion(187310431, 29.00000000, 16.19921875) +[2618799.723] {Default Queue} wl_pointer#1961.motion(187310431, 29.00000000, 16.19921875) +[2618799.728] {Default Queue} wl_pointer#1993.motion(187310431, 29.00000000, 16.19921875) +[2618799.732] {Default Queue} wl_pointer#2025.motion(187310431, 29.00000000, 16.19921875) +[2618799.736] {Default Queue} wl_pointer#2057.motion(187310431, 29.00000000, 16.19921875) +[2618799.741] {Default Queue} wl_pointer#2089.motion(187310431, 29.00000000, 16.19921875) +[2618799.745] {Default Queue} wl_pointer#2121.motion(187310431, 29.00000000, 16.19921875) +[2618799.750] {Default Queue} wl_pointer#2153.motion(187310431, 29.00000000, 16.19921875) +[2618799.754] {Default Queue} wl_pointer#2185.motion(187310431, 29.00000000, 16.19921875) +[2618799.759] {Default Queue} wl_pointer#2217.motion(187310431, 29.00000000, 16.19921875) +[2618799.763] {Default Queue} wl_pointer#2249.motion(187310431, 29.00000000, 16.19921875) +[2618799.768] {Default Queue} wl_pointer#2281.motion(187310431, 29.00000000, 16.19921875) +[2618799.773] {Default Queue} wl_pointer#2313.motion(187310431, 29.00000000, 16.19921875) +[2618799.778] {Default Queue} wl_pointer#2345.motion(187310431, 29.00000000, 16.19921875) +[2618799.786] {Default Queue} wl_pointer#2377.motion(187310431, 29.00000000, 16.19921875) +[2618799.792] {Default Queue} wl_pointer#2409.motion(187310431, 29.00000000, 16.19921875) +[2618799.796] {Default Queue} wl_pointer#2441.motion(187310431, 29.00000000, 16.19921875) +[2618799.801] {Default Queue} wl_pointer#2473.motion(187310431, 29.00000000, 16.19921875) +[2618799.805] {Default Queue} wl_pointer#2498.motion(187310431, 29.00000000, 16.19921875) +[2618799.815] {Default Queue} -> wl_buffer#93.destroy() +[2618799.822] {Default Queue} -> wl_buffer#94.destroy() +[2618799.826] {Default Queue} -> wl_shm_pool#91.destroy() +[2618799.830] {Default Queue} -> wl_shm_pool#92.destroy() +[2618799.836] {Default Queue} -> wl_surface#3683.destroy() +[2618799.875] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3453, fd 589, 640) +[2618799.883] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3420, fd 590, 640) +[2618799.887] {Default Queue} -> wl_shm_pool#3453.create_buffer(new id wl_buffer#3419, 0, 10, 16, 40, 0) +[2618799.892] {Default Queue} -> wl_shm_pool#3420.create_buffer(new id wl_buffer#3422, 0, 10, 16, 40, 0) +[2618799.899] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3421) +[2618799.904] {Default Queue} -> wl_surface#3421.attach(wl_buffer#3419, 0, 0) +[2618799.909] {Default Queue} -> wl_surface#3421.commit() +[2618799.914] {Default Queue} -> wl_surface#3421.attach(wl_buffer#3419, 0, 0) +[2618799.918] {Default Queue} -> wl_surface#3421.commit() +[2618799.923] {Default Queue} wl_pointer#2537.motion(187310431, 29.00000000, 16.19921875) +[2618799.927] {Default Queue} wl_pointer#2569.motion(187310431, 29.00000000, 16.19921875) +[2618799.932] {Default Queue} wl_pointer#2601.motion(187310431, 29.00000000, 16.19921875) +[2618799.937] {Default Queue} wl_pointer#2633.motion(187310431, 29.00000000, 16.19921875) +[2618799.941] {Default Queue} wl_pointer#2665.motion(187310431, 29.00000000, 16.19921875) +[2618799.946] {Default Queue} wl_pointer#2697.motion(187310431, 29.00000000, 16.19921875) +[2618799.950] {Default Queue} wl_pointer#2729.motion(187310431, 29.00000000, 16.19921875) +[2618799.954] {Default Queue} wl_pointer#2761.motion(187310431, 29.00000000, 16.19921875) +[2618799.959] {Default Queue} wl_pointer#2793.motion(187310431, 29.00000000, 16.19921875) +[2618799.963] {Default Queue} wl_pointer#2825.motion(187310431, 29.00000000, 16.19921875) +[2618799.968] {Default Queue} wl_pointer#2857.motion(187310431, 29.00000000, 16.19921875) +[2618799.973] {Default Queue} wl_pointer#2889.motion(187310431, 29.00000000, 16.19921875) +[2618799.977] {Default Queue} wl_pointer#2921.motion(187310431, 29.00000000, 16.19921875) +[2618799.982] {Default Queue} wl_pointer#2953.motion(187310431, 29.00000000, 16.19921875) +[2618799.986] {Default Queue} wl_pointer#2985.motion(187310431, 29.00000000, 16.19921875) +[2618799.990] {Default Queue} wl_pointer#3017.motion(187310431, 29.00000000, 16.19921875) +[2618799.995] {Default Queue} wl_pointer#3049.motion(187310431, 29.00000000, 16.19921875) +[2618799.999] {Default Queue} wl_pointer#3081.motion(187310431, 29.00000000, 16.19921875) +[2618800.004] {Default Queue} wl_pointer#3113.motion(187310431, 29.00000000, 16.19921875) +[2618800.008] {Default Queue} wl_pointer#3145.motion(187310431, 29.00000000, 16.19921875) +[2618800.013] {Default Queue} wl_pointer#3177.motion(187310431, 29.00000000, 16.19921875) +[2618800.017] {Default Queue} wl_pointer#3209.motion(187310431, 29.00000000, 16.19921875) +[2618800.022] {Default Queue} wl_pointer#3241.motion(187310431, 29.00000000, 16.19921875) +[2618800.026] {Default Queue} wl_pointer#3273.motion(187310431, 29.00000000, 16.19921875) +[2618800.031] {Default Queue} wl_pointer#3305.motion(187310431, 29.00000000, 16.19921875) +[2618800.036] {Default Queue} wl_pointer#3337.motion(187310431, 29.00000000, 16.19921875) +[2618800.040] {Default Queue} wl_pointer#3369.motion(187310431, 29.00000000, 16.19921875) +[2618800.044] {Default Queue} wl_pointer#3401.motion(187310431, 29.00000000, 16.19921875) +[2618800.048] {Default Queue} wl_pointer#3433.motion(187310431, 29.00000000, 16.19921875) +[2618800.056] {Default Queue} wl_pointer#3465.motion(187310431, 29.00000000, 16.19921875) +[2618800.063] {Default Queue} wl_pointer#3497.motion(187310431, 29.00000000, 16.19921875) +[2618800.068] {Default Queue} wl_pointer#3529.motion(187310431, 29.00000000, 16.19921875) +[2618800.072] {Default Queue} wl_pointer#3561.motion(187310431, 29.00000000, 16.19921875) +[2618800.077] {Default Queue} wl_pointer#3593.motion(187310431, 29.00000000, 16.19921875) +[2618800.082] {Default Queue} wl_pointer#3625.motion(187310431, 29.00000000, 16.19921875) +[2618800.086] {Default Queue} wl_pointer#3657.motion(187310431, 29.00000000, 16.19921875) +[2618800.092] {Default Queue} wl_pointer#3695.motion(187310431, 29.00000000, 16.19921875) +[2618800.096] {Default Queue} wl_pointer#24.motion(187310431, 29.00000000, 15.80078125) +[2618800.101] {Default Queue} wl_pointer#81.motion(187310431, 29.00000000, 15.80078125) +[2618800.106] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618800.111] {Default Queue} wl_pointer#105.motion(187310431, 29.00000000, 15.80078125) +[2618800.116] {Default Queue} wl_pointer#137.motion(187310431, 29.00000000, 15.80078125) +[2618800.120] {Default Queue} wl_pointer#169.motion(187310431, 29.00000000, 15.80078125) +[2618800.124] {Default Queue} wl_pointer#201.motion(187310431, 29.00000000, 15.80078125) +[2618800.129] {Default Queue} wl_pointer#233.motion(187310431, 29.00000000, 15.80078125) +[2618800.133] {Default Queue} wl_pointer#265.motion(187310431, 29.00000000, 15.80078125) +[2618800.138] {Default Queue} wl_pointer#297.motion(187310431, 29.00000000, 15.80078125) +[2618800.142] {Default Queue} wl_pointer#329.motion(187310431, 29.00000000, 15.80078125) +[2618800.146] {Default Queue} wl_pointer#361.motion(187310431, 29.00000000, 15.80078125) +[2618800.151] {Default Queue} wl_pointer#393.motion(187310431, 29.00000000, 15.80078125) +[2618800.155] {Default Queue} wl_pointer#425.motion(187310431, 29.00000000, 15.80078125) +[2618800.160] {Default Queue} wl_pointer#457.motion(187310431, 29.00000000, 15.80078125) +[2618800.165] {Default Queue} wl_pointer#489.motion(187310431, 29.00000000, 15.80078125) +[2618800.169] {Default Queue} wl_pointer#521.motion(187310431, 29.00000000, 15.80078125) +[2618800.174] {Default Queue} wl_pointer#553.motion(187310431, 29.00000000, 15.80078125) +[2618800.179] {Default Queue} wl_pointer#585.motion(187310431, 29.00000000, 15.80078125) +[2618800.183] {Default Queue} wl_pointer#617.motion(187310431, 29.00000000, 15.80078125) +[2618800.188] {Default Queue} wl_pointer#649.motion(187310431, 29.00000000, 15.80078125) +[2618800.192] {Default Queue} wl_pointer#681.motion(187310431, 29.00000000, 15.80078125) +[2618800.197] {Default Queue} wl_pointer#713.motion(187310431, 29.00000000, 15.80078125) +[2618800.201] {Default Queue} wl_pointer#745.motion(187310431, 29.00000000, 15.80078125) +[2618800.205] {Default Queue} wl_pointer#777.motion(187310431, 29.00000000, 15.80078125) +[2618800.210] {Default Queue} wl_pointer#809.motion(187310431, 29.00000000, 15.80078125) +[2618800.214] {Default Queue} wl_pointer#841.motion(187310431, 29.00000000, 15.80078125) +[2618800.219] {Default Queue} wl_pointer#873.motion(187310431, 29.00000000, 15.80078125) +[2618800.224] {Default Queue} wl_pointer#905.motion(187310431, 29.00000000, 15.80078125) +[2618800.230] {Default Queue} wl_pointer#937.motion(187310431, 29.00000000, 15.80078125) +[2618800.235] {Default Queue} wl_pointer#969.motion(187310431, 29.00000000, 15.80078125) +[2618800.240] {Default Queue} wl_pointer#1001.motion(187310431, 29.00000000, 15.80078125) +[2618800.244] {Default Queue} wl_pointer#1033.motion(187310431, 29.00000000, 15.80078125) +[2618800.248] {Default Queue} wl_pointer#1065.motion(187310431, 29.00000000, 15.80078125) +[2618800.253] {Default Queue} wl_pointer#1097.motion(187310431, 29.00000000, 15.80078125) +[2618800.257] {Default Queue} wl_pointer#1129.motion(187310431, 29.00000000, 15.80078125) +[2618800.262] {Default Queue} wl_pointer#1161.motion(187310431, 29.00000000, 15.80078125) +[2618800.266] {Default Queue} wl_pointer#1193.motion(187310431, 29.00000000, 15.80078125) +[2618800.273] {Default Queue} wl_pointer#1225.motion(187310431, 29.00000000, 15.80078125) +[2618800.280] {Default Queue} wl_pointer#1257.motion(187310431, 29.00000000, 15.80078125) +[2618800.284] {Default Queue} wl_pointer#1289.motion(187310431, 29.00000000, 15.80078125) +[2618800.289] {Default Queue} wl_pointer#1321.motion(187310431, 29.00000000, 15.80078125) +[2618800.293] {Default Queue} wl_pointer#1353.motion(187310431, 29.00000000, 15.80078125) +[2618800.297] {Default Queue} wl_pointer#1385.motion(187310431, 29.00000000, 15.80078125) +[2618800.302] {Default Queue} wl_pointer#1417.motion(187310431, 29.00000000, 15.80078125) +[2618800.306] {Default Queue} wl_pointer#1449.motion(187310431, 29.00000000, 15.80078125) +[2618800.310] {Default Queue} wl_pointer#1481.motion(187310431, 29.00000000, 15.80078125) +[2618800.315] {Default Queue} wl_pointer#1513.motion(187310431, 29.00000000, 15.80078125) +[2618800.319] {Default Queue} wl_pointer#1545.motion(187310431, 29.00000000, 15.80078125) +[2618800.323] {Default Queue} wl_pointer#1577.motion(187310431, 29.00000000, 15.80078125) +[2618800.328] {Default Queue} wl_pointer#1609.motion(187310431, 29.00000000, 15.80078125) +[2618800.332] {Default Queue} wl_pointer#1641.motion(187310431, 29.00000000, 15.80078125) +[2618800.337] {Default Queue} wl_pointer#1673.motion(187310431, 29.00000000, 15.80078125) +[2618800.341] {Default Queue} wl_pointer#1705.motion(187310431, 29.00000000, 15.80078125) +[2618800.345] {Default Queue} wl_pointer#1737.motion(187310431, 29.00000000, 15.80078125) +[2618800.350] {Default Queue} wl_pointer#1762.motion(187310431, 29.00000000, 15.80078125) +[2618800.355] {Default Queue} wl_pointer#1801.motion(187310431, 29.00000000, 15.80078125) +[2618800.359] {Default Queue} wl_pointer#1833.motion(187310431, 29.00000000, 15.80078125) +[2618800.363] {Default Queue} wl_pointer#1865.motion(187310431, 29.00000000, 15.80078125) +[2618800.368] {Default Queue} wl_pointer#1897.motion(187310431, 29.00000000, 15.80078125) +[2618800.372] {Default Queue} wl_pointer#1929.motion(187310431, 29.00000000, 15.80078125) +[2618800.377] {Default Queue} wl_pointer#1961.motion(187310431, 29.00000000, 15.80078125) +[2618800.381] {Default Queue} wl_pointer#1993.motion(187310431, 29.00000000, 15.80078125) +[2618800.386] {Default Queue} wl_pointer#2025.motion(187310431, 29.00000000, 15.80078125) +[2618800.390] {Default Queue} wl_pointer#2057.motion(187310431, 29.00000000, 15.80078125) +[2618800.395] {Default Queue} wl_pointer#2089.motion(187310431, 29.00000000, 15.80078125) +[2618800.399] {Default Queue} wl_pointer#2121.motion(187310431, 29.00000000, 15.80078125) +[2618800.404] {Default Queue} wl_pointer#2153.motion(187310431, 29.00000000, 15.80078125) +[2618800.408] {Default Queue} wl_pointer#2185.motion(187310431, 29.00000000, 15.80078125) +[2618800.412] {Default Queue} wl_pointer#2217.motion(187310431, 29.00000000, 15.80078125) +[2618800.417] {Default Queue} wl_pointer#2249.motion(187310431, 29.00000000, 15.80078125) +[2618800.421] {Default Queue} wl_pointer#2281.motion(187310431, 29.00000000, 15.80078125) +[2618800.426] {Default Queue} wl_pointer#2313.motion(187310431, 29.00000000, 15.80078125) +[2618800.430] {Default Queue} wl_pointer#2345.motion(187310431, 29.00000000, 15.80078125) +[2618800.435] {Default Queue} wl_pointer#2377.motion(187310431, 29.00000000, 15.80078125) +[2618800.439] {Default Queue} wl_pointer#2409.motion(187310431, 29.00000000, 15.80078125) +[2618800.444] {Default Queue} wl_pointer#2441.motion(187310431, 29.00000000, 15.80078125) +[2618800.449] {Default Queue} wl_pointer#2473.motion(187310431, 29.00000000, 15.80078125) +[2618800.453] {Default Queue} wl_pointer#2498.motion(187310431, 29.00000000, 15.80078125) +[2618800.463] {Default Queue} -> wl_buffer#3419.destroy() +[2618800.468] {Default Queue} -> wl_buffer#3422.destroy() +[2618800.474] {Default Queue} -> wl_shm_pool#3453.destroy() +[2618800.478] {Default Queue} -> wl_shm_pool#3420.destroy() +[2618800.484] {Default Queue} -> wl_surface#3421.destroy() +[2618800.515] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3068, fd 591, 640) +[2618800.524] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3067, fd 592, 640) +[2618800.530] {Default Queue} -> wl_shm_pool#3068.create_buffer(new id wl_buffer#3070, 0, 10, 16, 40, 0) +[2618800.535] {Default Queue} -> wl_shm_pool#3067.create_buffer(new id wl_buffer#3069, 0, 10, 16, 40, 0) +[2618800.542] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3228) +[2618800.546] {Default Queue} -> wl_surface#3228.attach(wl_buffer#3070, 0, 0) +[2618800.551] {Default Queue} -> wl_surface#3228.commit() +[2618800.556] {Default Queue} -> wl_surface#3228.attach(wl_buffer#3070, 0, 0) +[2618800.561] {Default Queue} -> wl_surface#3228.commit() +[2618800.565] {Default Queue} wl_pointer#2537.motion(187310431, 29.00000000, 15.80078125) +[2618800.570] {Default Queue} wl_pointer#2569.motion(187310431, 29.00000000, 15.80078125) +[2618800.574] {Default Queue} wl_pointer#2601.motion(187310431, 29.00000000, 15.80078125) +[2618800.578] {Default Queue} wl_pointer#2633.motion(187310431, 29.00000000, 15.80078125) +[2618800.583] {Default Queue} wl_pointer#2665.motion(187310431, 29.00000000, 15.80078125) +[2618800.587] {Default Queue} wl_pointer#2697.motion(187310431, 29.00000000, 15.80078125) +[2618800.592] {Default Queue} wl_pointer#2729.motion(187310431, 29.00000000, 15.80078125) +[2618800.596] {Default Queue} wl_pointer#2761.motion(187310431, 29.00000000, 15.80078125) +[2618800.601] {Default Queue} wl_pointer#2793.motion(187310431, 29.00000000, 15.80078125) +[2618800.606] {Default Queue} wl_pointer#2825.motion(187310431, 29.00000000, 15.80078125) +[2618800.610] {Default Queue} wl_pointer#2857.motion(187310431, 29.00000000, 15.80078125) +[2618800.624] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2618800.630] {Default Queue} -> wl_surface#43.commit() +[2618801.371] {Default Queue} wl_pointer#2889.motion(187310431, 29.00000000, 15.80078125) +[2618801.392] {Default Queue} wl_pointer#2921.motion(187310431, 29.00000000, 15.80078125) +[2618801.399] {Default Queue} wl_pointer#2953.motion(187310431, 29.00000000, 15.80078125) +[2618801.404] {Default Queue} wl_pointer#2985.motion(187310431, 29.00000000, 15.80078125) +[2618801.408] {Default Queue} wl_pointer#3017.motion(187310431, 29.00000000, 15.80078125) +[2618801.413] {Default Queue} wl_pointer#3049.motion(187310431, 29.00000000, 15.80078125) +[2618801.417] {Default Queue} wl_pointer#3081.motion(187310431, 29.00000000, 15.80078125) +[2618801.422] {Default Queue} wl_pointer#3113.motion(187310431, 29.00000000, 15.80078125) +[2618801.427] {Default Queue} wl_pointer#3145.motion(187310431, 29.00000000, 15.80078125) +[2618801.432] {Default Queue} wl_pointer#3177.motion(187310431, 29.00000000, 15.80078125) +[2618801.436] {Default Queue} wl_pointer#3209.motion(187310431, 29.00000000, 15.80078125) +[2618801.441] {Default Queue} wl_pointer#3241.motion(187310431, 29.00000000, 15.80078125) +[2618801.446] {Default Queue} wl_pointer#3273.motion(187310431, 29.00000000, 15.80078125) +[2618801.450] {Default Queue} wl_pointer#3305.motion(187310431, 29.00000000, 15.80078125) +[2618801.455] {Default Queue} wl_pointer#3337.motion(187310431, 29.00000000, 15.80078125) +[2618801.459] {Default Queue} wl_pointer#3369.motion(187310431, 29.00000000, 15.80078125) +[2618801.467] {Default Queue} wl_pointer#3401.motion(187310431, 29.00000000, 15.80078125) +[2618801.472] {Default Queue} wl_pointer#3433.motion(187310431, 29.00000000, 15.80078125) +[2618801.476] {Default Queue} wl_pointer#3465.motion(187310431, 29.00000000, 15.80078125) +[2618801.482] {Default Queue} wl_pointer#3497.motion(187310431, 29.00000000, 15.80078125) +[2618801.486] {Default Queue} wl_pointer#3529.motion(187310431, 29.00000000, 15.80078125) +[2618801.491] {Default Queue} wl_pointer#3561.motion(187310431, 29.00000000, 15.80078125) +[2618801.495] {Default Queue} wl_pointer#3593.motion(187310431, 29.00000000, 15.80078125) +[2618801.500] {Default Queue} wl_pointer#3625.motion(187310431, 29.00000000, 15.80078125) +[2618801.504] {Default Queue} wl_pointer#3657.motion(187310431, 29.00000000, 15.80078125) +[2618801.509] {Default Queue} wl_pointer#3695.motion(187310431, 29.00000000, 15.80078125) +[2618801.532] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2618801.541] {Default Queue} -> wl_surface#43.commit() +[2618801.548] {Default Queue} -> wl_region#223.subtract(0, 0, 2, 20) +[2618801.553] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 51) +[2618801.558] {Default Queue} -> wl_region#223.add(-20, -49, 22, 51) +[2618801.562] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618801.567] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618801.571] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2618801.588] {Default Queue} -> wl_buffer#221.destroy() +[2618801.594] {Default Queue} -> wl_buffer#222.destroy() +[2618801.598] {Default Queue} -> wl_shm_pool#219.destroy() +[2618801.602] {Default Queue} -> wl_shm_pool#220.destroy() +[2618801.668] {Default Queue} -> wl_shm#207.create_pool(new id wl_shm_pool#3227, fd 575, 160) +[2618801.677] {Default Queue} -> wl_shm#207.create_pool(new id wl_shm_pool#3230, fd 578, 160) +[2618801.683] {Default Queue} -> wl_shm_pool#3227.create_buffer(new id wl_buffer#3229, 0, 2, 20, 8, 0) +[2618801.688] {Default Queue} -> wl_shm_pool#3230.create_buffer(new id wl_buffer#2876, 0, 2, 20, 8, 0) +[2618801.695] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) +[2618801.700] {Default Queue} -> wl_surface#199.commit() +[2618801.705] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) +[2618801.710] {Default Queue} -> wl_surface#199.commit() +[2618801.723] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 51) +[2618801.728] {Default Queue} -> wl_region#223.add(-20, -49, 22, 51) +[2618801.732] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618801.736] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618801.818] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 51) +[2618801.823] {Default Queue} -> wl_region#223.add(-20, -49, 22, 51) +[2618801.827] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618801.831] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618801.838] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2618801.842] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2618801.902] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 51) +[2618801.907] {Default Queue} -> wl_region#223.add(-20, -49, 22, 51) +[2618801.911] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618801.915] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618801.922] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2618801.926] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2618801.931] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) +[2618801.936] {Default Queue} -> wl_surface#199.commit() +[2618801.942] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) +[2618801.946] {Default Queue} -> wl_surface#199.commit() +[2618803.016] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) +[2618803.029] {Default Queue} -> wl_surface#199.commit() +[2618803.041] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 51) +[2618803.047] {Default Queue} -> wl_region#223.add(-20, -49, 22, 51) +[2618803.052] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618803.056] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618803.127] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 51) +[2618803.132] {Default Queue} -> wl_region#223.add(-20, -49, 22, 51) +[2618803.136] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618803.140] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618803.146] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2618803.151] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2618803.201] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 51) +[2618803.205] {Default Queue} -> wl_region#223.add(-20, -49, 22, 51) +[2618803.210] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618803.218] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618803.227] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2618803.232] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2618803.237] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) +[2618803.241] {Default Queue} -> wl_surface#199.commit() +[2618803.245] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) +[2618803.249] {Default Queue} -> wl_surface#199.commit() +[2618803.256] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) +[2618803.261] {Default Queue} -> wl_surface#199.commit() +[2618803.271] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) +[2618803.275] {Default Queue} -> wl_surface#263.commit() +[2618804.338] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) +[2618804.344] {Default Queue} -> wl_surface#263.commit() +[2618804.352] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 34) +[2618804.358] {Default Queue} -> wl_region#287.add(-23, -52, 25, 34) +[2618804.362] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618804.366] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618804.374] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 34) +[2618804.378] {Default Queue} -> wl_region#287.add(-23, -52, 25, 34) +[2618804.382] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618804.386] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618804.391] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 34) +[2618804.396] {Default Queue} -> wl_region#287.add(-23, -52, 25, 34) +[2618804.400] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618804.404] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618804.408] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 34) +[2618804.412] {Default Queue} -> wl_region#287.add(-23, -52, 25, 34) +[2618804.417] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618804.420] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618804.425] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 34) +[2618804.429] {Default Queue} -> wl_region#287.add(-23, -52, 25, 34) +[2618804.433] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618804.437] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618804.516] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 34) +[2618804.520] {Default Queue} -> wl_region#287.add(-23, -52, 25, 34) +[2618804.525] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618804.529] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618804.534] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618804.538] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618804.543] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) +[2618804.547] {Default Queue} -> wl_surface#263.commit() +[2618804.551] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) +[2618804.555] {Default Queue} -> wl_surface#263.commit() +[2618804.561] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) +[2618804.565] {Default Queue} -> wl_surface#263.commit() +[2618804.569] {Default Queue} -> wl_region#255.subtract(0, 0, 2, 2) +[2618804.576] {Default Queue} -> wl_region#287.subtract(0, 0, 2, 2) +[2618804.580] {Default Queue} -> wl_subsurface#282.set_position(1, 1) +[2618804.584] {Default Queue} -> wl_region#287.subtract(0, 0, 26, 35) +[2618804.588] {Default Queue} -> wl_region#287.add(-23, -52, 25, 34) +[2618804.592] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618804.596] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618804.600] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618804.607] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) +[2618804.611] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) +[2618804.615] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618804.619] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618804.629] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) +[2618804.635] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) +[2618804.640] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618804.644] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618804.648] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) +[2618804.653] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) +[2618804.657] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618804.660] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618804.665] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) +[2618804.669] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) +[2618804.673] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618804.677] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618804.682] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) +[2618804.686] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) +[2618804.690] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618804.694] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618804.756] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) +[2618804.760] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) +[2618804.765] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618804.768] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618804.773] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618804.777] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618804.782] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) +[2618804.786] {Default Queue} -> wl_surface#263.commit() +[2618804.793] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) +[2618804.797] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) +[2618804.801] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618804.805] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618804.811] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) +[2618804.815] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) +[2618804.819] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618804.823] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618804.828] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) +[2618804.832] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) +[2618804.836] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618804.840] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618804.845] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) +[2618804.849] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) +[2618804.853] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618804.857] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618804.865] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) +[2618804.869] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) +[2618804.873] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618804.877] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618804.936] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) +[2618804.941] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) +[2618804.945] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618804.949] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618804.954] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618804.958] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618804.963] {Default Queue} -> wl_region#255.subtract(0, 0, 25, 54) +[2618804.968] {Default Queue} -> wl_region#255.add(-23, -52, 25, 34) +[2618804.972] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) +[2618804.976] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) +[2618804.983] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618804.989] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) +[2618805.008] {Default Queue} -> wl_buffer#253.destroy() +[2618805.013] {Default Queue} -> wl_buffer#254.destroy() +[2618805.017] {Default Queue} -> wl_shm_pool#251.destroy() +[2618805.021] {Default Queue} -> wl_shm_pool#252.destroy() +[2618805.063] {Default Queue} -> wl_shm#239.create_pool(new id wl_shm_pool#2875, fd 575, 16) +[2618805.070] {Default Queue} -> wl_shm#239.create_pool(new id wl_shm_pool#2878, fd 578, 16) +[2618805.074] {Default Queue} -> wl_shm_pool#2875.create_buffer(new id wl_buffer#2877, 0, 2, 2, 8, 0) +[2618805.079] {Default Queue} -> wl_shm_pool#2878.create_buffer(new id wl_buffer#2716, 0, 2, 2, 8, 0) +[2618805.086] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) +[2618805.090] {Default Queue} -> wl_surface#231.commit() +[2618805.096] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) +[2618805.100] {Default Queue} -> wl_surface#231.commit() +[2618805.107] {Default Queue} -> wl_region#255.subtract(0, 0, 25, 54) +[2618805.113] {Default Queue} -> wl_region#255.add(-23, -52, 25, 34) +[2618805.118] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) +[2618805.122] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) +[2618805.126] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) +[2618805.131] {Default Queue} -> wl_surface#231.commit() +[2618805.137] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) +[2618805.141] {Default Queue} -> wl_surface#231.commit() +[2618806.205] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) +[2618806.211] {Default Queue} -> wl_surface#231.commit() +[2618806.216] {Default Queue} -> wl_region#255.subtract(0, 0, 25, 54) +[2618806.220] {Default Queue} -> wl_region#255.add(-23, -52, 25, 34) +[2618806.224] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) +[2618806.228] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) +[2618806.233] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) +[2618806.237] {Default Queue} -> wl_surface#231.commit() +[2618806.241] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) +[2618806.245] {Default Queue} -> wl_surface#231.commit() +[2618806.250] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) +[2618806.254] {Default Queue} -> wl_surface#231.commit() +[2618806.260] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) +[2618806.264] {Default Queue} -> wl_surface#167.commit() +[2618806.542] {Default Queue} wl_pointer#24.motion(187310436, 29.00000000, 15.39843750) +[2618806.549] {Default Queue} wl_pointer#81.motion(187310436, 29.00000000, 15.39843750) +[2618806.555] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618806.559] {Default Queue} wl_pointer#105.motion(187310436, 29.00000000, 15.39843750) +[2618806.564] {Default Queue} wl_pointer#137.motion(187310436, 29.00000000, 15.39843750) +[2618806.568] {Default Queue} wl_pointer#169.motion(187310436, 29.00000000, 15.39843750) +[2618806.572] {Default Queue} wl_pointer#201.motion(187310436, 29.00000000, 15.39843750) +[2618806.576] {Default Queue} wl_pointer#233.motion(187310436, 29.00000000, 15.39843750) +[2618806.581] {Default Queue} wl_pointer#265.motion(187310436, 29.00000000, 15.39843750) +[2618806.585] {Default Queue} wl_pointer#297.motion(187310436, 29.00000000, 15.39843750) +[2618806.589] {Default Queue} wl_pointer#329.motion(187310436, 29.00000000, 15.39843750) +[2618806.594] {Default Queue} wl_pointer#361.motion(187310436, 29.00000000, 15.39843750) +[2618806.598] {Default Queue} wl_pointer#393.motion(187310436, 29.00000000, 15.39843750) +[2618806.602] {Default Queue} wl_pointer#425.motion(187310436, 29.00000000, 15.39843750) +[2618806.607] {Default Queue} wl_pointer#457.motion(187310436, 29.00000000, 15.39843750) +[2618806.611] {Default Queue} wl_pointer#489.motion(187310436, 29.00000000, 15.39843750) +[2618806.615] {Default Queue} wl_pointer#521.motion(187310436, 29.00000000, 15.39843750) +[2618806.624] {Default Queue} wl_pointer#553.motion(187310436, 29.00000000, 15.39843750) +[2618806.630] {Default Queue} wl_pointer#585.motion(187310436, 29.00000000, 15.39843750) +[2618806.635] {Default Queue} wl_pointer#617.motion(187310436, 29.00000000, 15.39843750) +[2618806.639] {Default Queue} wl_pointer#649.motion(187310436, 29.00000000, 15.39843750) +[2618806.644] {Default Queue} wl_pointer#681.motion(187310436, 29.00000000, 15.39843750) +[2618806.649] {Default Queue} wl_pointer#713.motion(187310436, 29.00000000, 15.39843750) +[2618806.653] {Default Queue} wl_pointer#745.motion(187310436, 29.00000000, 15.39843750) +[2618806.658] {Default Queue} wl_pointer#777.motion(187310436, 29.00000000, 15.39843750) +[2618806.662] {Default Queue} wl_pointer#809.motion(187310436, 29.00000000, 15.39843750) +[2618806.666] {Default Queue} wl_pointer#841.motion(187310436, 29.00000000, 15.39843750) +[2618806.671] {Default Queue} wl_pointer#873.motion(187310436, 29.00000000, 15.39843750) +[2618806.675] {Default Queue} wl_pointer#905.motion(187310436, 29.00000000, 15.39843750) +[2618806.679] {Default Queue} wl_pointer#937.motion(187310436, 29.00000000, 15.39843750) +[2618806.684] {Default Queue} wl_pointer#969.motion(187310436, 29.00000000, 15.39843750) +[2618806.688] {Default Queue} wl_pointer#1001.motion(187310436, 29.00000000, 15.39843750) +[2618806.692] {Default Queue} wl_pointer#1033.motion(187310436, 29.00000000, 15.39843750) +[2618806.697] {Default Queue} wl_pointer#1065.motion(187310436, 29.00000000, 15.39843750) +[2618806.701] {Default Queue} wl_pointer#1097.motion(187310436, 29.00000000, 15.39843750) +[2618806.705] {Default Queue} wl_pointer#1129.motion(187310436, 29.00000000, 15.39843750) +[2618806.710] {Default Queue} wl_pointer#1161.motion(187310436, 29.00000000, 15.39843750) +[2618806.714] {Default Queue} wl_pointer#1193.motion(187310436, 29.00000000, 15.39843750) +[2618806.719] {Default Queue} wl_pointer#1225.motion(187310436, 29.00000000, 15.39843750) +[2618806.723] {Default Queue} wl_pointer#1257.motion(187310436, 29.00000000, 15.39843750) +[2618806.727] {Default Queue} wl_pointer#1289.motion(187310436, 29.00000000, 15.39843750) +[2618806.732] {Default Queue} wl_pointer#1321.motion(187310436, 29.00000000, 15.39843750) +[2618806.736] {Default Queue} wl_pointer#1353.motion(187310436, 29.00000000, 15.39843750) +[2618806.741] {Default Queue} wl_pointer#1385.motion(187310436, 29.00000000, 15.39843750) +[2618806.745] {Default Queue} wl_pointer#1417.motion(187310436, 29.00000000, 15.39843750) +[2618806.750] {Default Queue} wl_pointer#1449.motion(187310436, 29.00000000, 15.39843750) +[2618806.754] {Default Queue} wl_pointer#1481.motion(187310436, 29.00000000, 15.39843750) +[2618806.758] {Default Queue} wl_pointer#1513.motion(187310436, 29.00000000, 15.39843750) +[2618806.763] {Default Queue} wl_pointer#1545.motion(187310436, 29.00000000, 15.39843750) +[2618806.767] {Default Queue} wl_pointer#1577.motion(187310436, 29.00000000, 15.39843750) +[2618806.772] {Default Queue} wl_pointer#1609.motion(187310436, 29.00000000, 15.39843750) +[2618806.776] {Default Queue} wl_pointer#1641.motion(187310436, 29.00000000, 15.39843750) +[2618806.781] {Default Queue} wl_pointer#1673.motion(187310436, 29.00000000, 15.39843750) +[2618806.785] {Default Queue} wl_pointer#1705.motion(187310436, 29.00000000, 15.39843750) +[2618806.790] {Default Queue} wl_pointer#1737.motion(187310436, 29.00000000, 15.39843750) +[2618806.794] {Default Queue} wl_pointer#1762.motion(187310436, 29.00000000, 15.39843750) +[2618806.798] {Default Queue} wl_pointer#1801.motion(187310436, 29.00000000, 15.39843750) +[2618806.803] {Default Queue} wl_pointer#1833.motion(187310436, 29.00000000, 15.39843750) +[2618806.807] {Default Queue} wl_pointer#1865.motion(187310436, 29.00000000, 15.39843750) +[2618806.812] {Default Queue} wl_pointer#1897.motion(187310436, 29.00000000, 15.39843750) +[2618806.816] {Default Queue} wl_pointer#1929.motion(187310436, 29.00000000, 15.39843750) +[2618806.821] {Default Queue} wl_pointer#1961.motion(187310436, 29.00000000, 15.39843750) +[2618806.825] {Default Queue} wl_pointer#1993.motion(187310436, 29.00000000, 15.39843750) +[2618806.833] {Default Queue} wl_pointer#2025.motion(187310436, 29.00000000, 15.39843750) +[2618806.839] {Default Queue} wl_pointer#2057.motion(187310436, 29.00000000, 15.39843750) +[2618806.843] {Default Queue} wl_pointer#2089.motion(187310436, 29.00000000, 15.39843750) +[2618806.848] {Default Queue} wl_pointer#2121.motion(187310436, 29.00000000, 15.39843750) +[2618806.852] {Default Queue} wl_pointer#2153.motion(187310436, 29.00000000, 15.39843750) +[2618806.856] {Default Queue} wl_pointer#2185.motion(187310436, 29.00000000, 15.39843750) +[2618806.862] {Default Queue} wl_pointer#2217.motion(187310436, 29.00000000, 15.39843750) +[2618806.867] {Default Queue} wl_pointer#2249.motion(187310436, 29.00000000, 15.39843750) +[2618806.877] {Default Queue} wl_pointer#2281.motion(187310436, 29.00000000, 15.39843750) +[2618806.882] {Default Queue} wl_pointer#2313.motion(187310436, 29.00000000, 15.39843750) +[2618806.889] {Default Queue} wl_pointer#2345.motion(187310436, 29.00000000, 15.39843750) +[2618806.895] {Default Queue} wl_pointer#2377.motion(187310436, 29.00000000, 15.39843750) +[2618806.899] {Default Queue} wl_pointer#2409.motion(187310436, 29.00000000, 15.39843750) +[2618806.904] {Default Queue} wl_pointer#2441.motion(187310436, 29.00000000, 15.39843750) +[2618806.908] {Default Queue} wl_pointer#2473.motion(187310436, 29.00000000, 15.39843750) +[2618806.912] {Default Queue} wl_pointer#2498.motion(187310436, 29.00000000, 15.39843750) +[2618806.926] {Default Queue} -> wl_buffer#3070.destroy() +[2618806.930] {Default Queue} -> wl_buffer#3069.destroy() +[2618806.934] {Default Queue} -> wl_shm_pool#3068.destroy() +[2618806.938] {Default Queue} -> wl_shm_pool#3067.destroy() +[2618806.945] {Default Queue} -> wl_surface#3228.destroy() +[2618806.981] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2715, fd 575, 640) +[2618806.988] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2718, fd 578, 640) +[2618806.992] {Default Queue} -> wl_shm_pool#2715.create_buffer(new id wl_buffer#2717, 0, 10, 16, 40, 0) +[2618806.997] {Default Queue} -> wl_shm_pool#2718.create_buffer(new id wl_buffer#2556, 0, 10, 16, 40, 0) +[2618807.004] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#2555) +[2618807.009] {Default Queue} -> wl_surface#2555.attach(wl_buffer#2717, 0, 0) +[2618807.013] {Default Queue} -> wl_surface#2555.commit() +[2618807.018] {Default Queue} -> wl_surface#2555.attach(wl_buffer#2717, 0, 0) +[2618807.022] {Default Queue} -> wl_surface#2555.commit() +[2618807.027] {Default Queue} wl_pointer#2537.motion(187310436, 29.00000000, 15.39843750) +[2618807.031] {Default Queue} wl_pointer#2569.motion(187310436, 29.00000000, 15.39843750) +[2618807.036] {Default Queue} wl_pointer#2601.motion(187310436, 29.00000000, 15.39843750) +[2618807.040] {Default Queue} wl_pointer#2633.motion(187310436, 29.00000000, 15.39843750) +[2618807.045] {Default Queue} wl_pointer#2665.motion(187310436, 29.00000000, 15.39843750) +[2618807.049] {Default Queue} wl_pointer#2697.motion(187310436, 29.00000000, 15.39843750) +[2618807.053] {Default Queue} wl_pointer#2729.motion(187310436, 29.00000000, 15.39843750) +[2618807.058] {Default Queue} wl_pointer#2761.motion(187310436, 29.00000000, 15.39843750) +[2618807.062] {Default Queue} wl_pointer#2793.motion(187310436, 29.00000000, 15.39843750) +[2618807.067] {Default Queue} wl_pointer#2825.motion(187310436, 29.00000000, 15.39843750) +[2618807.071] {Default Queue} wl_pointer#2857.motion(187310436, 29.00000000, 15.39843750) +[2618807.076] {Default Queue} wl_pointer#2889.motion(187310436, 29.00000000, 15.39843750) +[2618807.080] {Default Queue} wl_pointer#2921.motion(187310436, 29.00000000, 15.39843750) +[2618807.084] {Default Queue} wl_pointer#2953.motion(187310436, 29.00000000, 15.39843750) +[2618807.088] {Default Queue} wl_pointer#2985.motion(187310436, 29.00000000, 15.39843750) +[2618807.092] {Default Queue} wl_pointer#3017.motion(187310436, 29.00000000, 15.39843750) +[2618807.097] {Default Queue} wl_pointer#3049.motion(187310436, 29.00000000, 15.39843750) +[2618807.104] {Default Queue} wl_pointer#3081.motion(187310436, 29.00000000, 15.39843750) +[2618807.110] {Default Queue} wl_pointer#3113.motion(187310436, 29.00000000, 15.39843750) +[2618807.114] {Default Queue} wl_pointer#3145.motion(187310436, 29.00000000, 15.39843750) +[2618807.119] {Default Queue} wl_pointer#3177.motion(187310436, 29.00000000, 15.39843750) +[2618807.123] {Default Queue} wl_pointer#3209.motion(187310436, 29.00000000, 15.39843750) +[2618807.127] {Default Queue} wl_pointer#3241.motion(187310436, 29.00000000, 15.39843750) +[2618807.131] {Default Queue} wl_pointer#3273.motion(187310436, 29.00000000, 15.39843750) +[2618807.136] {Default Queue} wl_pointer#3305.motion(187310436, 29.00000000, 15.39843750) +[2618807.140] {Default Queue} wl_pointer#3337.motion(187310436, 29.00000000, 15.39843750) +[2618807.144] {Default Queue} wl_pointer#3369.motion(187310436, 29.00000000, 15.39843750) +[2618807.148] {Default Queue} wl_pointer#3401.motion(187310436, 29.00000000, 15.39843750) +[2618807.152] {Default Queue} wl_pointer#3433.motion(187310436, 29.00000000, 15.39843750) +[2618807.157] {Default Queue} wl_pointer#3465.motion(187310436, 29.00000000, 15.39843750) +[2618807.161] {Default Queue} wl_pointer#3497.motion(187310436, 29.00000000, 15.39843750) +[2618807.165] {Default Queue} wl_pointer#3529.motion(187310436, 29.00000000, 15.39843750) +[2618807.170] {Default Queue} wl_pointer#3561.motion(187310436, 29.00000000, 15.39843750) +[2618807.174] {Default Queue} wl_pointer#3593.motion(187310436, 29.00000000, 15.39843750) +[2618807.178] {Default Queue} wl_pointer#3625.motion(187310436, 29.00000000, 15.39843750) +[2618807.182] {Default Queue} wl_pointer#3657.motion(187310436, 29.00000000, 15.39843750) +[2618807.186] {Default Queue} wl_pointer#3695.motion(187310436, 29.00000000, 15.39843750) +[2618807.194] {Default Queue} -> wl_region#191.subtract(0, 0, 25, 54) +[2618807.199] {Default Queue} -> wl_region#191.add(-20, -49, 22, 51) +[2618807.203] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) +[2618807.207] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) +[2618807.213] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) +[2618807.217] {Default Queue} -> wl_surface#167.commit() +[2618807.221] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) +[2618807.225] {Default Queue} -> wl_surface#167.commit() +[2618807.231] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) +[2618807.236] {Default Queue} -> wl_surface#167.commit() +[2618807.240] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) +[2618807.247] {Default Queue} -> wl_region#191.subtract(0, 0, 2, 2) +[2618807.251] {Default Queue} -> wl_subsurface#186.set_position(3, 3) +[2618807.255] {Default Queue} -> wl_region#191.subtract(0, 0, 25, 54) +[2618807.259] {Default Queue} -> wl_region#191.add(-20, -49, 22, 51) +[2618807.264] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) +[2618807.267] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) +[2618807.271] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2618807.276] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618807.280] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) +[2618807.284] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) +[2618807.289] {Default Queue} -> wl_region#191.subtract(0, 0, 25, 54) +[2618807.293] {Default Queue} -> wl_region#191.add(-20, -49, 22, 51) +[2618807.297] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) +[2618807.301] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) +[2618807.306] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) +[2618807.310] {Default Queue} -> wl_surface#167.commit() +[2618807.315] {Default Queue} -> wl_region#191.subtract(0, 0, 132, 213) +[2618807.319] {Default Queue} -> wl_region#191.add(-20, -49, 129, 210) +[2618807.323] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) +[2618807.327] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) +[2618807.331] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) +[2618807.339] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) +[2618807.344] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618807.348] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618807.352] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2618807.356] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618807.360] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) +[2618807.364] {Default Queue} -> wl_surface#167.damage(0, 0, 109, 161) +[2618807.368] {Default Queue} -> wl_surface#135.damage(0, 0, 115, 167) +[2618807.380] {Default Queue} -> wl_buffer#157.destroy() +[2618807.384] {Default Queue} -> wl_buffer#158.destroy() +[2618807.388] {Default Queue} -> wl_shm_pool#155.destroy() +[2618807.392] {Default Queue} -> wl_shm_pool#156.destroy() +[2618807.468] {Default Queue} -> wl_shm#143.create_pool(new id wl_shm_pool#2558, fd 581, 76820) +[2618807.474] {Default Queue} -> wl_shm#143.create_pool(new id wl_shm_pool#2557, fd 582, 76820) +[2618807.479] {Default Queue} -> wl_shm_pool#2558.create_buffer(new id wl_buffer#2396, 0, 115, 167, 460, 0) +[2618807.484] {Default Queue} -> wl_shm_pool#2557.create_buffer(new id wl_buffer#2395, 0, 115, 167, 460, 0) +[2618807.512] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) +[2618807.517] {Default Queue} -> wl_surface#135.commit() +[2618807.540] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) +[2618807.544] {Default Queue} -> wl_surface#135.commit() +[2618807.554] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) +[2618807.559] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) +[2618807.563] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618807.567] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618807.575] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) +[2618807.580] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) +[2618807.584] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618807.588] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618807.594] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) +[2618807.598] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) +[2618807.602] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618807.606] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618807.612] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) +[2618807.616] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) +[2618807.620] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618807.624] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618807.631] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) +[2618807.635] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) +[2618807.639] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618807.643] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618807.650] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) +[2618807.654] {Default Queue} -> wl_surface#135.commit() +[2618807.661] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) +[2618807.665] {Default Queue} -> wl_surface#135.commit() +[2618808.732] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) +[2618808.738] {Default Queue} -> wl_surface#135.commit() +[2618808.746] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) +[2618808.752] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) +[2618808.756] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618808.760] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618808.767] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) +[2618808.773] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) +[2618808.778] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618808.783] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618808.788] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) +[2618808.797] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) +[2618808.804] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618808.808] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618808.813] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) +[2618808.818] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) +[2618808.822] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618808.826] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618808.832] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) +[2618808.836] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) +[2618808.840] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618808.844] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618808.851] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) +[2618808.856] {Default Queue} -> wl_surface#135.commit() +[2618808.862] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) +[2618808.866] {Default Queue} -> wl_surface#135.commit() +[2618808.876] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) +[2618808.880] {Default Queue} -> wl_surface#135.commit() +[2618808.884] {Default Queue} -> wl_region#319.subtract(0, 0, 345, 167) +[2618808.889] {Default Queue} -> wl_region#319.subtract(0, 0, 137, 51) +[2618808.893] {Default Queue} -> wl_region#319.add(-20, -49, 22, 51) +[2618808.897] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618808.901] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618808.905] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) +[2618808.918] {Default Queue} -> wl_buffer#317.destroy() +[2618808.923] {Default Queue} -> wl_buffer#318.destroy() +[2618808.927] {Default Queue} -> wl_shm_pool#315.destroy() +[2618808.931] {Default Queue} -> wl_shm_pool#316.destroy() +[2618809.173] {Default Queue} -> wl_shm#303.create_pool(new id wl_shm_pool#2398, fd 575, 230460) +[2618809.181] {Default Queue} -> wl_shm#303.create_pool(new id wl_shm_pool#2397, fd 578, 230460) +[2618809.185] {Default Queue} -> wl_shm_pool#2398.create_buffer(new id wl_buffer#2172, 0, 345, 167, 1380, 0) +[2618809.190] {Default Queue} -> wl_shm_pool#2397.create_buffer(new id wl_buffer#2171, 0, 345, 167, 1380, 0) +[2618809.250] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) +[2618809.255] {Default Queue} -> wl_surface#295.commit() +[2618809.315] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) +[2618809.319] {Default Queue} -> wl_surface#295.commit() +[2618809.332] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) +[2618809.337] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) +[2618809.341] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618809.345] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618809.641] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) +[2618809.646] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) +[2618809.650] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618809.654] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618809.666] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) +[2618809.670] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) +[2618809.929] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) +[2618809.938] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) +[2618809.944] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618809.950] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618809.967] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) +[2618809.973] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) +[2618809.987] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) +[2618809.993] {Default Queue} -> wl_surface#295.commit() +[2618810.005] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) +[2618810.016] {Default Queue} -> wl_surface#295.commit() +[2618811.091] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) +[2618811.097] {Default Queue} -> wl_surface#295.commit() +[2618811.111] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) +[2618811.117] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) +[2618811.123] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618811.128] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618811.435] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) +[2618811.442] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) +[2618811.446] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618811.450] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618811.462] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) +[2618811.466] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) +[2618811.703] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) +[2618811.708] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) +[2618811.712] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618811.716] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618811.725] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) +[2618811.729] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) +[2618811.739] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) +[2618811.743] {Default Queue} -> wl_surface#295.commit() +[2618811.751] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) +[2618811.755] {Default Queue} -> wl_surface#295.commit() +[2618811.777] {Default Queue} wl_pointer#24.motion(187310441, 29.00000000, 15.00000000) +[2618811.783] {Default Queue} wl_pointer#81.motion(187310441, 29.00000000, 15.00000000) +[2618811.789] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618811.793] {Default Queue} wl_pointer#105.motion(187310441, 29.00000000, 15.00000000) +[2618811.797] {Default Queue} wl_pointer#137.motion(187310441, 29.00000000, 15.00000000) +[2618811.802] {Default Queue} wl_pointer#169.motion(187310441, 29.00000000, 15.00000000) +[2618811.806] {Default Queue} wl_pointer#201.motion(187310441, 29.00000000, 15.00000000) +[2618811.810] {Default Queue} wl_pointer#233.motion(187310441, 29.00000000, 15.00000000) +[2618811.814] {Default Queue} wl_pointer#265.motion(187310441, 29.00000000, 15.00000000) +[2618811.818] {Default Queue} wl_pointer#297.motion(187310441, 29.00000000, 15.00000000) +[2618811.822] {Default Queue} wl_pointer#329.motion(187310441, 29.00000000, 15.00000000) +[2618811.827] {Default Queue} wl_pointer#361.motion(187310441, 29.00000000, 15.00000000) +[2618811.831] {Default Queue} wl_pointer#393.motion(187310441, 29.00000000, 15.00000000) +[2618811.835] {Default Queue} wl_pointer#425.motion(187310441, 29.00000000, 15.00000000) +[2618811.839] {Default Queue} wl_pointer#457.motion(187310441, 29.00000000, 15.00000000) +[2618811.843] {Default Queue} wl_pointer#489.motion(187310441, 29.00000000, 15.00000000) +[2618811.847] {Default Queue} wl_pointer#521.motion(187310441, 29.00000000, 15.00000000) +[2618811.852] {Default Queue} wl_pointer#553.motion(187310441, 29.00000000, 15.00000000) +[2618811.856] {Default Queue} wl_pointer#585.motion(187310441, 29.00000000, 15.00000000) +[2618811.865] {Default Queue} wl_pointer#617.motion(187310441, 29.00000000, 15.00000000) +[2618811.869] {Default Queue} wl_pointer#649.motion(187310441, 29.00000000, 15.00000000) +[2618811.874] {Default Queue} wl_pointer#681.motion(187310441, 29.00000000, 15.00000000) +[2618811.878] {Default Queue} wl_pointer#713.motion(187310441, 29.00000000, 15.00000000) +[2618811.882] {Default Queue} wl_pointer#745.motion(187310441, 29.00000000, 15.00000000) +[2618811.886] {Default Queue} wl_pointer#777.motion(187310441, 29.00000000, 15.00000000) +[2618811.890] {Default Queue} wl_pointer#809.motion(187310441, 29.00000000, 15.00000000) +[2618811.894] {Default Queue} wl_pointer#841.motion(187310441, 29.00000000, 15.00000000) +[2618811.898] {Default Queue} wl_pointer#873.motion(187310441, 29.00000000, 15.00000000) +[2618811.907] {Default Queue} wl_pointer#905.motion(187310441, 29.00000000, 15.00000000) +[2618811.913] {Default Queue} wl_pointer#937.motion(187310441, 29.00000000, 15.00000000) +[2618811.918] {Default Queue} wl_pointer#969.motion(187310441, 29.00000000, 15.00000000) +[2618811.922] {Default Queue} wl_pointer#1001.motion(187310441, 29.00000000, 15.00000000) +[2618811.926] {Default Queue} wl_pointer#1033.motion(187310441, 29.00000000, 15.00000000) +[2618811.930] {Default Queue} wl_pointer#1065.motion(187310441, 29.00000000, 15.00000000) +[2618811.934] {Default Queue} wl_pointer#1097.motion(187310441, 29.00000000, 15.00000000) +[2618811.939] {Default Queue} wl_pointer#1129.motion(187310441, 29.00000000, 15.00000000) +[2618811.943] {Default Queue} wl_pointer#1161.motion(187310441, 29.00000000, 15.00000000) +[2618811.947] {Default Queue} wl_pointer#1193.motion(187310441, 29.00000000, 15.00000000) +[2618811.951] {Default Queue} wl_pointer#1225.motion(187310441, 29.00000000, 15.00000000) +[2618811.955] {Default Queue} wl_pointer#1257.motion(187310441, 29.00000000, 15.00000000) +[2618811.959] {Default Queue} wl_pointer#1289.motion(187310441, 29.00000000, 15.00000000) +[2618811.964] {Default Queue} wl_pointer#1321.motion(187310441, 29.00000000, 15.00000000) +[2618811.968] {Default Queue} wl_pointer#1353.motion(187310441, 29.00000000, 15.00000000) +[2618811.972] {Default Queue} wl_pointer#1385.motion(187310441, 29.00000000, 15.00000000) +[2618811.976] {Default Queue} wl_pointer#1417.motion(187310441, 29.00000000, 15.00000000) +[2618811.980] {Default Queue} wl_pointer#1449.motion(187310441, 29.00000000, 15.00000000) +[2618811.984] {Default Queue} wl_pointer#1481.motion(187310441, 29.00000000, 15.00000000) +[2618811.989] {Default Queue} wl_pointer#1513.motion(187310441, 29.00000000, 15.00000000) +[2618811.993] {Default Queue} wl_pointer#1545.motion(187310441, 29.00000000, 15.00000000) +[2618811.997] {Default Queue} wl_pointer#1577.motion(187310441, 29.00000000, 15.00000000) +[2618812.001] {Default Queue} wl_pointer#1609.motion(187310441, 29.00000000, 15.00000000) +[2618812.005] {Default Queue} wl_pointer#1641.motion(187310441, 29.00000000, 15.00000000) +[2618812.010] {Default Queue} wl_pointer#1673.motion(187310441, 29.00000000, 15.00000000) +[2618812.014] {Default Queue} wl_pointer#1705.motion(187310441, 29.00000000, 15.00000000) +[2618812.018] {Default Queue} wl_pointer#1737.motion(187310441, 29.00000000, 15.00000000) +[2618812.023] {Default Queue} wl_pointer#1762.motion(187310441, 29.00000000, 15.00000000) +[2618812.027] {Default Queue} wl_pointer#1801.motion(187310441, 29.00000000, 15.00000000) +[2618812.031] {Default Queue} wl_pointer#1833.motion(187310441, 29.00000000, 15.00000000) +[2618812.035] {Default Queue} wl_pointer#1865.motion(187310441, 29.00000000, 15.00000000) +[2618812.039] {Default Queue} wl_pointer#1897.motion(187310441, 29.00000000, 15.00000000) +[2618812.043] {Default Queue} wl_pointer#1929.motion(187310441, 29.00000000, 15.00000000) +[2618812.048] {Default Queue} wl_pointer#1961.motion(187310441, 29.00000000, 15.00000000) +[2618812.052] {Default Queue} wl_pointer#1993.motion(187310441, 29.00000000, 15.00000000) +[2618812.056] {Default Queue} wl_pointer#2025.motion(187310441, 29.00000000, 15.00000000) +[2618812.060] {Default Queue} wl_pointer#2057.motion(187310441, 29.00000000, 15.00000000) +[2618812.064] {Default Queue} wl_pointer#2089.motion(187310441, 29.00000000, 15.00000000) +[2618812.069] {Default Queue} wl_pointer#2121.motion(187310441, 29.00000000, 15.00000000) +[2618812.073] {Default Queue} wl_pointer#2153.motion(187310441, 29.00000000, 15.00000000) +[2618812.077] {Default Queue} wl_pointer#2185.motion(187310441, 29.00000000, 15.00000000) +[2618812.082] {Default Queue} wl_pointer#2217.motion(187310441, 29.00000000, 15.00000000) +[2618812.086] {Default Queue} wl_pointer#2249.motion(187310441, 29.00000000, 15.00000000) +[2618812.090] {Default Queue} wl_pointer#2281.motion(187310441, 29.00000000, 15.00000000) +[2618812.094] {Default Queue} wl_pointer#2313.motion(187310441, 29.00000000, 15.00000000) +[2618812.102] {Default Queue} wl_pointer#2345.motion(187310441, 29.00000000, 15.00000000) +[2618812.107] {Default Queue} wl_pointer#2377.motion(187310441, 29.00000000, 15.00000000) +[2618812.112] {Default Queue} wl_pointer#2409.motion(187310441, 29.00000000, 15.00000000) +[2618812.116] {Default Queue} wl_pointer#2441.motion(187310441, 29.00000000, 15.00000000) +[2618812.120] {Default Queue} wl_pointer#2473.motion(187310441, 29.00000000, 15.00000000) +[2618812.124] {Default Queue} wl_pointer#2498.motion(187310441, 29.00000000, 15.00000000) +[2618812.137] {Default Queue} -> wl_buffer#2717.destroy() +[2618812.142] {Default Queue} -> wl_buffer#2556.destroy() +[2618812.146] {Default Queue} -> wl_shm_pool#2715.destroy() +[2618812.150] {Default Queue} -> wl_shm_pool#2718.destroy() +[2618812.155] {Default Queue} -> wl_surface#2555.destroy() +[2618812.195] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2174, fd 575, 640) +[2618812.202] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2173, fd 578, 640) +[2618812.208] {Default Queue} -> wl_shm_pool#2174.create_buffer(new id wl_buffer#2332, 0, 10, 16, 40, 0) +[2618812.213] {Default Queue} -> wl_shm_pool#2173.create_buffer(new id wl_buffer#2331, 0, 10, 16, 40, 0) +[2618812.220] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#2334) +[2618812.225] {Default Queue} -> wl_surface#2334.attach(wl_buffer#2332, 0, 0) +[2618812.229] {Default Queue} -> wl_surface#2334.commit() +[2618812.235] {Default Queue} -> wl_surface#2334.attach(wl_buffer#2332, 0, 0) +[2618812.239] {Default Queue} -> wl_surface#2334.commit() +[2618812.243] {Default Queue} wl_pointer#2537.motion(187310441, 29.00000000, 15.00000000) +[2618812.248] {Default Queue} wl_pointer#2569.motion(187310441, 29.00000000, 15.00000000) +[2618812.252] {Default Queue} wl_pointer#2601.motion(187310441, 29.00000000, 15.00000000) +[2618812.257] {Default Queue} wl_pointer#2633.motion(187310441, 29.00000000, 15.00000000) +[2618812.261] {Default Queue} wl_pointer#2665.motion(187310441, 29.00000000, 15.00000000) +[2618812.265] {Default Queue} wl_pointer#2697.motion(187310441, 29.00000000, 15.00000000) +[2618812.269] {Default Queue} wl_pointer#2729.motion(187310441, 29.00000000, 15.00000000) +[2618812.273] {Default Queue} wl_pointer#2761.motion(187310441, 29.00000000, 15.00000000) +[2618812.278] {Default Queue} wl_pointer#2793.motion(187310441, 29.00000000, 15.00000000) +[2618812.282] {Default Queue} wl_pointer#2825.motion(187310441, 29.00000000, 15.00000000) +[2618812.286] {Default Queue} wl_pointer#2857.motion(187310441, 29.00000000, 15.00000000) +[2618812.291] {Default Queue} wl_pointer#2889.motion(187310441, 29.00000000, 15.00000000) +[2618812.295] {Default Queue} wl_pointer#2921.motion(187310441, 29.00000000, 15.00000000) +[2618812.299] {Default Queue} wl_pointer#2953.motion(187310441, 29.00000000, 15.00000000) +[2618812.303] {Default Queue} wl_pointer#2985.motion(187310441, 29.00000000, 15.00000000) +[2618812.307] {Default Queue} wl_pointer#3017.motion(187310441, 29.00000000, 15.00000000) +[2618812.312] {Default Queue} wl_pointer#3049.motion(187310441, 29.00000000, 15.00000000) +[2618812.316] {Default Queue} wl_pointer#3081.motion(187310441, 29.00000000, 15.00000000) +[2618812.320] {Default Queue} wl_pointer#3113.motion(187310441, 29.00000000, 15.00000000) +[2618812.324] {Default Queue} wl_pointer#3145.motion(187310441, 29.00000000, 15.00000000) +[2618812.328] {Default Queue} wl_pointer#3177.motion(187310441, 29.00000000, 15.00000000) +[2618812.332] {Default Queue} wl_pointer#3209.motion(187310441, 29.00000000, 15.00000000) +[2618812.337] {Default Queue} wl_pointer#3241.motion(187310441, 29.00000000, 15.00000000) +[2618812.341] {Default Queue} wl_pointer#3273.motion(187310441, 29.00000000, 15.00000000) +[2618812.345] {Default Queue} wl_pointer#3305.motion(187310441, 29.00000000, 15.00000000) +[2618812.349] {Default Queue} wl_pointer#3337.motion(187310441, 29.00000000, 15.00000000) +[2618812.354] {Default Queue} wl_pointer#3369.motion(187310441, 29.00000000, 15.00000000) +[2618812.358] {Default Queue} wl_pointer#3401.motion(187310441, 29.00000000, 15.00000000) +[2618812.365] {Default Queue} wl_pointer#3433.motion(187310441, 29.00000000, 15.00000000) +[2618812.371] {Default Queue} wl_pointer#3465.motion(187310441, 29.00000000, 15.00000000) +[2618812.376] {Default Queue} wl_pointer#3497.motion(187310441, 29.00000000, 15.00000000) +[2618812.380] {Default Queue} wl_pointer#3529.motion(187310441, 29.00000000, 15.00000000) +[2618812.384] {Default Queue} wl_pointer#3561.motion(187310441, 29.00000000, 15.00000000) +[2618812.388] {Default Queue} wl_pointer#3593.motion(187310441, 29.00000000, 15.00000000) +[2618812.393] {Default Queue} wl_pointer#3625.motion(187310441, 29.00000000, 15.00000000) +[2618812.397] {Default Queue} wl_pointer#3657.motion(187310441, 29.00000000, 15.00000000) +[2618812.401] {Default Queue} wl_pointer#3695.motion(187310441, 29.00000000, 15.00000000) +[2618812.410] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) +[2618812.416] {Default Queue} -> wl_surface#295.commit() +[2618813.485] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) +[2618813.491] {Default Queue} -> wl_surface#295.commit() +[2618813.500] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) +[2618813.505] {Default Queue} -> wl_surface#295.commit() +[2618813.510] {Default Queue} -> wl_region#415.subtract(0, 0, 2, 20) +[2618813.514] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 51) +[2618813.519] {Default Queue} -> wl_region#415.add(-480, -49, 482, 51) +[2618813.523] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618813.527] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618813.531] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2618813.544] {Default Queue} -> wl_buffer#413.destroy() +[2618813.549] {Default Queue} -> wl_buffer#414.destroy() +[2618813.553] {Default Queue} -> wl_shm_pool#411.destroy() +[2618813.557] {Default Queue} -> wl_shm_pool#412.destroy() +[2618813.599] {Default Queue} -> wl_shm#399.create_pool(new id wl_shm_pool#2333, fd 575, 160) +[2618813.605] {Default Queue} -> wl_shm#399.create_pool(new id wl_shm_pool#1980, fd 578, 160) +[2618813.609] {Default Queue} -> wl_shm_pool#2333.create_buffer(new id wl_buffer#1979, 0, 2, 20, 8, 0) +[2618813.614] {Default Queue} -> wl_shm_pool#1980.create_buffer(new id wl_buffer#1982, 0, 2, 20, 8, 0) +[2618813.620] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) +[2618813.625] {Default Queue} -> wl_surface#391.commit() +[2618813.630] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) +[2618813.634] {Default Queue} -> wl_surface#391.commit() +[2618813.644] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 51) +[2618813.649] {Default Queue} -> wl_region#415.add(-480, -49, 482, 51) +[2618813.653] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618813.657] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618813.751] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 51) +[2618813.756] {Default Queue} -> wl_region#415.add(-480, -49, 482, 51) +[2618813.760] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618813.764] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618813.770] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2618813.774] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2618813.838] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 51) +[2618813.842] {Default Queue} -> wl_region#415.add(-480, -49, 482, 51) +[2618813.847] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618813.851] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618813.857] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2618813.865] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2618813.870] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) +[2618813.875] {Default Queue} -> wl_surface#391.commit() +[2618813.881] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) +[2618813.885] {Default Queue} -> wl_surface#391.commit() +[2618814.954] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) +[2618814.962] {Default Queue} -> wl_surface#391.commit() +[2618814.970] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 51) +[2618814.974] {Default Queue} -> wl_region#415.add(-480, -49, 482, 51) +[2618814.978] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618814.982] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618815.059] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 51) +[2618815.063] {Default Queue} -> wl_region#415.add(-480, -49, 482, 51) +[2618815.068] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618815.072] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618815.077] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2618815.082] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2618815.197] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 51) +[2618815.209] {Default Queue} -> wl_region#415.add(-480, -49, 482, 51) +[2618815.215] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618815.221] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618815.231] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2618815.236] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2618815.242] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) +[2618815.246] {Default Queue} -> wl_surface#391.commit() +[2618815.250] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) +[2618815.255] {Default Queue} -> wl_surface#391.commit() +[2618815.262] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) +[2618815.266] {Default Queue} -> wl_surface#391.commit() +[2618815.271] {Default Queue} -> wl_region#543.subtract(0, 0, 2, 2) +[2618815.276] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618815.280] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618815.284] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618815.289] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618815.293] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618815.297] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618815.311] {Default Queue} -> wl_buffer#541.destroy() +[2618815.317] {Default Queue} -> wl_buffer#542.destroy() +[2618815.321] {Default Queue} -> wl_shm_pool#539.destroy() +[2618815.325] {Default Queue} -> wl_shm_pool#540.destroy() +[2618815.372] {Default Queue} -> wl_shm#527.create_pool(new id wl_shm_pool#1981, fd 575, 16) +[2618815.378] {Default Queue} -> wl_shm#527.create_pool(new id wl_shm_pool#1820, fd 578, 16) +[2618815.383] {Default Queue} -> wl_shm_pool#1981.create_buffer(new id wl_buffer#1819, 0, 2, 2, 8, 0) +[2618815.388] {Default Queue} -> wl_shm_pool#1820.create_buffer(new id wl_buffer#1822, 0, 2, 2, 8, 0) +[2618815.394] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) +[2618815.399] {Default Queue} -> wl_surface#519.commit() +[2618815.404] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) +[2618815.408] {Default Queue} -> wl_surface#519.commit() +[2618815.417] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618815.421] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618815.425] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618815.430] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618815.436] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618815.440] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618815.444] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618815.448] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618815.457] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618815.461] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618815.465] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618815.469] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618815.474] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618815.482] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618815.489] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618815.493] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618815.498] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618815.502] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618815.506] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618815.510] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618815.515] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618815.519] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618815.523] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618815.527] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618815.531] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) +[2618815.535] {Default Queue} -> wl_surface#519.commit() +[2618815.541] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) +[2618815.545] {Default Queue} -> wl_surface#519.commit() +[2618816.610] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) +[2618816.615] {Default Queue} -> wl_surface#519.commit() +[2618816.621] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618816.625] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618816.629] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618816.633] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618816.638] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618816.642] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618816.647] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618816.650] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618816.657] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618816.661] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618816.665] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618816.669] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618816.674] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618816.678] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618816.682] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618816.686] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618816.691] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618816.695] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618816.699] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618816.703] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618816.707] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618816.712] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618816.716] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618816.719] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618816.724] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) +[2618816.728] {Default Queue} -> wl_surface#519.commit() +[2618816.732] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) +[2618816.736] {Default Queue} -> wl_surface#519.commit() +[2618816.742] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) +[2618816.746] {Default Queue} -> wl_surface#519.commit() +[2618816.750] {Default Queue} -> wl_region#575.subtract(0, 0, 2, 2) +[2618816.754] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618816.758] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618816.762] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618816.766] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618816.770] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618816.774] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618816.787] {Default Queue} -> wl_buffer#573.destroy() +[2618816.795] {Default Queue} -> wl_buffer#574.destroy() +[2618816.801] {Default Queue} -> wl_shm_pool#571.destroy() +[2618816.805] {Default Queue} -> wl_shm_pool#572.destroy() +[2618816.843] {Default Queue} -> wl_shm#559.create_pool(new id wl_shm_pool#1821, fd 575, 16) +[2618816.849] {Default Queue} -> wl_shm#559.create_pool(new id wl_shm_pool#1660, fd 578, 16) +[2618816.853] {Default Queue} -> wl_shm_pool#1821.create_buffer(new id wl_buffer#1659, 0, 2, 2, 8, 0) +[2618816.858] {Default Queue} -> wl_shm_pool#1660.create_buffer(new id wl_buffer#1662, 0, 2, 2, 8, 0) +[2618816.870] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) +[2618816.875] {Default Queue} -> wl_surface#551.commit() +[2618816.880] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) +[2618816.884] {Default Queue} -> wl_surface#551.commit() +[2618816.892] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618816.896] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618816.904] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618816.908] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618816.914] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618816.918] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618816.922] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618816.926] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618816.933] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618816.937] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618816.941] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618816.945] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618816.950] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618816.954] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618816.958] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618816.961] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618816.966] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618816.970] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618816.974] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618816.978] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618816.982] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618816.986] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618816.990] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618816.994] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618816.999] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) +[2618817.003] {Default Queue} -> wl_surface#551.commit() +[2618817.009] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) +[2618817.013] {Default Queue} -> wl_surface#551.commit() +[2618818.077] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) +[2618818.084] {Default Queue} -> wl_surface#551.commit() +[2618818.091] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618818.095] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618818.099] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618818.103] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618818.109] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618818.113] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618818.117] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618818.121] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618818.128] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618818.132] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618818.136] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618818.140] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618818.145] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618818.153] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618818.160] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618818.163] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618818.168] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618818.173] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618818.177] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618818.180] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618818.185] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618818.189] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618818.193] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618818.197] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618818.201] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) +[2618818.205] {Default Queue} -> wl_surface#551.commit() +[2618818.209] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) +[2618818.213] {Default Queue} -> wl_surface#551.commit() +[2618818.219] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) +[2618818.223] {Default Queue} -> wl_surface#551.commit() +[2618818.227] {Default Queue} -> wl_region#607.subtract(0, 0, 2, 2) +[2618818.232] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618818.236] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618818.240] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618818.244] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618818.248] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618818.252] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618818.265] {Default Queue} -> wl_buffer#605.destroy() +[2618818.270] {Default Queue} -> wl_buffer#606.destroy() +[2618818.274] {Default Queue} -> wl_shm_pool#603.destroy() +[2618818.278] {Default Queue} -> wl_shm_pool#604.destroy() +[2618818.316] {Default Queue} -> wl_shm#591.create_pool(new id wl_shm_pool#1661, fd 575, 16) +[2618818.322] {Default Queue} -> wl_shm#591.create_pool(new id wl_shm_pool#1500, fd 578, 16) +[2618818.326] {Default Queue} -> wl_shm_pool#1661.create_buffer(new id wl_buffer#1499, 0, 2, 2, 8, 0) +[2618818.331] {Default Queue} -> wl_shm_pool#1500.create_buffer(new id wl_buffer#1502, 0, 2, 2, 8, 0) +[2618818.337] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) +[2618818.341] {Default Queue} -> wl_surface#583.commit() +[2618818.346] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) +[2618818.351] {Default Queue} -> wl_surface#583.commit() +[2618818.358] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618818.363] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618818.367] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618818.371] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618818.377] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618818.381] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618818.385] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618818.389] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618818.395] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618818.400] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618818.404] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618818.407] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618818.412] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618818.416] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618818.420] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618818.424] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618818.428] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618818.432] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618818.436] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618818.443] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618818.450] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618818.454] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618818.458] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618818.461] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618818.466] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) +[2618818.470] {Default Queue} -> wl_surface#583.commit() +[2618818.476] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) +[2618818.480] {Default Queue} -> wl_surface#583.commit() +[2618819.543] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) +[2618819.549] {Default Queue} -> wl_surface#583.commit() +[2618819.555] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618819.559] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618819.563] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618819.567] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618819.572] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618819.576] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618819.580] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618819.584] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618819.591] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618819.595] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618819.599] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618819.603] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618819.607] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618819.611] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618819.615] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618819.619] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618819.624] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618819.628] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618819.632] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618819.636] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618819.640] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618819.644] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618819.648] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618819.652] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618819.657] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) +[2618819.661] {Default Queue} -> wl_surface#583.commit() +[2618819.664] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) +[2618819.668] {Default Queue} -> wl_surface#583.commit() +[2618819.674] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) +[2618819.678] {Default Queue} -> wl_surface#583.commit() +[2618819.682] {Default Queue} -> wl_region#639.subtract(0, 0, 2, 2) +[2618819.686] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618819.690] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618819.694] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618819.698] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618819.702] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618819.706] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618819.718] {Default Queue} -> wl_buffer#637.destroy() +[2618819.723] {Default Queue} -> wl_buffer#638.destroy() +[2618819.727] {Default Queue} -> wl_shm_pool#635.destroy() +[2618819.731] {Default Queue} -> wl_shm_pool#636.destroy() +[2618819.774] {Default Queue} -> wl_shm#623.create_pool(new id wl_shm_pool#1501, fd 575, 16) +[2618819.780] {Default Queue} -> wl_shm#623.create_pool(new id wl_shm_pool#956, fd 578, 16) +[2618819.784] {Default Queue} -> wl_shm_pool#1501.create_buffer(new id wl_buffer#955, 0, 2, 2, 8, 0) +[2618819.792] {Default Queue} -> wl_shm_pool#956.create_buffer(new id wl_buffer#958, 0, 2, 2, 8, 0) +[2618819.801] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) +[2618819.805] {Default Queue} -> wl_surface#615.commit() +[2618819.810] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) +[2618819.814] {Default Queue} -> wl_surface#615.commit() +[2618819.821] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618819.825] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618819.829] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618819.833] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618819.839] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618819.843] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618819.847] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618819.851] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618819.858] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618819.865] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618819.870] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618819.873] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618819.878] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618819.882] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618819.886] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618819.890] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618819.894] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618819.899] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618819.903] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618819.907] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618819.911] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618819.915] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618819.919] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618819.923] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618819.927] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) +[2618819.931] {Default Queue} -> wl_surface#615.commit() +[2618819.937] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) +[2618819.941] {Default Queue} -> wl_surface#615.commit() +[2618821.005] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) +[2618821.011] {Default Queue} -> wl_surface#615.commit() +[2618821.017] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618821.021] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618821.025] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618821.029] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618821.035] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618821.039] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618821.043] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618821.047] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618821.054] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618821.058] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618821.062] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618821.066] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618821.070] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618821.075] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618821.079] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618821.082] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618821.087] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618821.091] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618821.095] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618821.103] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618821.109] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618821.113] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618821.117] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618821.121] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618821.126] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) +[2618821.130] {Default Queue} -> wl_surface#615.commit() +[2618821.134] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) +[2618821.138] {Default Queue} -> wl_surface#615.commit() +[2618821.143] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) +[2618821.147] {Default Queue} -> wl_surface#615.commit() +[2618821.152] {Default Queue} -> wl_region#671.subtract(0, 0, 2, 2) +[2618821.156] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618821.160] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618821.164] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618821.168] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618821.172] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618821.176] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618821.188] {Default Queue} -> wl_buffer#669.destroy() +[2618821.193] {Default Queue} -> wl_buffer#670.destroy() +[2618821.197] {Default Queue} -> wl_shm_pool#667.destroy() +[2618821.201] {Default Queue} -> wl_shm_pool#668.destroy() +[2618821.238] {Default Queue} -> wl_shm#655.create_pool(new id wl_shm_pool#957, fd 575, 16) +[2618821.244] {Default Queue} -> wl_shm#655.create_pool(new id wl_shm_pool#380, fd 578, 16) +[2618821.249] {Default Queue} -> wl_shm_pool#957.create_buffer(new id wl_buffer#379, 0, 2, 2, 8, 0) +[2618821.253] {Default Queue} -> wl_shm_pool#380.create_buffer(new id wl_buffer#382, 0, 2, 2, 8, 0) +[2618821.260] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) +[2618821.264] {Default Queue} -> wl_surface#647.commit() +[2618821.269] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) +[2618821.273] {Default Queue} -> wl_surface#647.commit() +[2618821.280] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618821.284] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618821.288] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618821.292] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618821.297] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618821.302] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618821.306] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618821.310] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618821.316] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618821.320] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618821.324] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618821.328] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618821.333] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618821.337] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618821.341] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618821.345] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618821.349] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618821.353] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618821.357] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618821.361] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618821.366] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618821.370] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618821.374] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618821.378] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618821.382] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) +[2618821.389] {Default Queue} -> wl_surface#647.commit() +[2618821.397] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) +[2618821.401] {Default Queue} -> wl_surface#647.commit() +[2618822.464] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) +[2618822.469] {Default Queue} -> wl_surface#647.commit() +[2618822.474] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618822.478] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618822.483] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618822.486] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618822.492] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618822.496] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618822.500] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618822.504] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618822.510] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618822.514] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618822.518] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618822.522] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618822.527] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618822.531] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618822.535] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618822.539] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618822.543] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618822.547] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618822.551] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618822.555] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618822.560] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618822.564] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618822.568] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618822.572] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618822.576] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) +[2618822.580] {Default Queue} -> wl_surface#647.commit() +[2618822.584] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) +[2618822.588] {Default Queue} -> wl_surface#647.commit() +[2618822.593] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) +[2618822.598] {Default Queue} -> wl_surface#647.commit() +[2618822.602] {Default Queue} -> wl_region#511.subtract(0, 0, 16, 2) +[2618822.608] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618822.612] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618822.616] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618822.620] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618822.625] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618822.629] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618822.633] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618822.637] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618822.643] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618822.647] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618822.651] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618822.655] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618822.660] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618822.664] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618822.668] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618822.672] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618822.676] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618822.680] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618822.684] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618822.693] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618822.699] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) +[2618822.703] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) +[2618822.707] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618822.711] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618822.716] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618822.720] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618822.724] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618822.728] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618822.734] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618822.738] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618822.742] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618822.746] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618822.752] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618822.756] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618822.760] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618822.764] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618822.768] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618822.773] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618822.777] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618822.780] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618822.785] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618822.789] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618822.793] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618822.797] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618822.801] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) +[2618822.805] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) +[2618822.814] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2618822.818] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2618822.823] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618822.827] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618822.831] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618822.835] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618822.840] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618822.844] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618822.848] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618822.852] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618822.858] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618822.867] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618822.872] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618822.875] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618822.880] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618822.884] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618822.888] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618822.892] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618822.896] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618822.929] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618822.942] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618822.948] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618822.960] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) +[2618822.966] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) +[2618822.971] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2618822.976] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2618822.993] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618823.002] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618823.007] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618823.011] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618823.019] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618823.024] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618823.030] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618823.034] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618823.043] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618823.049] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618823.053] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618823.057] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618823.063] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618823.067] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618823.071] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618823.075] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618823.081] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618823.086] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618823.090] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618823.094] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618823.102] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) +[2618823.106] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) +[2618823.110] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2618823.114] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2618823.121] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618823.125] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618823.129] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618823.133] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618823.140] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618823.144] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618823.148] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618823.152] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618823.159] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618823.164] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618823.168] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618823.172] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618823.177] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618823.181] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618823.185] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618823.189] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618823.194] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618823.198] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618823.203] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618823.207] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618823.212] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) +[2618823.216] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) +[2618823.220] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2618823.224] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2618823.229] {Default Queue} -> wl_surface#487.damage(0, 0, 16, 2) +[2618823.234] {Default Queue} -> wl_region#511.subtract(0, 0, 485, 34) +[2618823.238] {Default Queue} -> wl_region#511.add(-483, -52, 485, 34) +[2618823.244] {Default Queue} -> wl_surface#487.set_opaque_region(wl_region#512) +[2618823.248] {Default Queue} -> wl_surface#487.set_input_region(wl_region#511) +[2618823.252] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618823.260] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618823.266] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618823.270] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618823.275] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618823.279] {Default Queue} -> wl_surface#487.damage(0, 0, 16, 2) +[2618823.299] {Default Queue} -> wl_buffer#509.destroy() +[2618823.305] {Default Queue} -> wl_buffer#510.destroy() +[2618823.310] {Default Queue} -> wl_shm_pool#507.destroy() +[2618823.314] {Default Queue} -> wl_shm_pool#508.destroy() +[2618823.362] {Default Queue} -> wl_shm#495.create_pool(new id wl_shm_pool#381, fd 575, 128) +[2618823.370] {Default Queue} -> wl_shm#495.create_pool(new id wl_shm_pool#3770, fd 578, 128) +[2618823.375] {Default Queue} -> wl_shm_pool#381.create_buffer(new id wl_buffer#3771, 0, 16, 2, 64, 0) +[2618823.380] {Default Queue} -> wl_shm_pool#3770.create_buffer(new id wl_buffer#3772, 0, 16, 2, 64, 0) +[2618823.390] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) +[2618823.396] {Default Queue} -> wl_surface#487.commit() +[2618823.402] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) +[2618823.406] {Default Queue} -> wl_surface#487.commit() +[2618823.418] {Default Queue} -> wl_region#511.subtract(0, 0, 485, 34) +[2618823.424] {Default Queue} -> wl_region#511.add(-483, -52, 485, 34) +[2618823.430] {Default Queue} -> wl_surface#487.set_opaque_region(wl_region#512) +[2618823.434] {Default Queue} -> wl_surface#487.set_input_region(wl_region#511) +[2618823.439] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) +[2618823.443] {Default Queue} -> wl_surface#487.commit() +[2618823.451] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) +[2618823.455] {Default Queue} -> wl_surface#487.commit() +[2618824.521] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) +[2618824.527] {Default Queue} -> wl_surface#487.commit() +[2618824.532] {Default Queue} -> wl_region#511.subtract(0, 0, 485, 34) +[2618824.537] {Default Queue} -> wl_region#511.add(-483, -52, 485, 34) +[2618824.541] {Default Queue} -> wl_surface#487.set_opaque_region(wl_region#512) +[2618824.545] {Default Queue} -> wl_surface#487.set_input_region(wl_region#511) +[2618824.550] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) +[2618824.554] {Default Queue} -> wl_surface#487.commit() +[2618824.558] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) +[2618824.562] {Default Queue} -> wl_surface#487.commit() +[2618824.568] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) +[2618824.572] {Default Queue} -> wl_surface#487.commit() +[2618824.577] {Default Queue} -> wl_region#735.subtract(0, 0, 2, 2) +[2618824.582] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) +[2618824.586] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) +[2618824.590] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2618824.594] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2618824.598] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618824.611] {Default Queue} -> wl_buffer#733.destroy() +[2618824.616] {Default Queue} -> wl_buffer#734.destroy() +[2618824.620] {Default Queue} -> wl_shm_pool#731.destroy() +[2618824.624] {Default Queue} -> wl_shm_pool#732.destroy() +[2618824.660] {Default Queue} -> wl_shm#719.create_pool(new id wl_shm_pool#3773, fd 575, 16) +[2618824.666] {Default Queue} -> wl_shm#719.create_pool(new id wl_shm_pool#3774, fd 578, 16) +[2618824.671] {Default Queue} -> wl_shm_pool#3773.create_buffer(new id wl_buffer#3775, 0, 2, 2, 8, 0) +[2618824.676] {Default Queue} -> wl_shm_pool#3774.create_buffer(new id wl_buffer#3776, 0, 2, 2, 8, 0) +[2618824.682] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) +[2618824.686] {Default Queue} -> wl_surface#711.commit() +[2618824.692] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) +[2618824.696] {Default Queue} -> wl_surface#711.commit() +[2618824.705] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) +[2618824.714] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) +[2618824.721] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2618824.725] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2618824.849] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) +[2618824.855] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) +[2618824.859] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2618824.871] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2618824.879] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618824.884] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618824.962] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) +[2618824.967] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) +[2618824.971] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2618824.975] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2618824.980] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618824.985] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618824.990] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) +[2618824.994] {Default Queue} -> wl_surface#711.commit() +[2618825.000] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) +[2618825.005] {Default Queue} -> wl_surface#711.commit() +[2618826.070] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) +[2618826.076] {Default Queue} -> wl_surface#711.commit() +[2618826.083] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) +[2618826.088] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) +[2618826.092] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2618826.096] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2618826.179] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) +[2618826.184] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) +[2618826.188] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2618826.192] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2618826.198] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618826.202] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618826.268] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) +[2618826.274] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) +[2618826.278] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2618826.282] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2618826.287] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618826.291] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618826.296] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) +[2618826.300] {Default Queue} -> wl_surface#711.commit() +[2618826.304] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) +[2618826.308] {Default Queue} -> wl_surface#711.commit() +[2618826.314] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) +[2618826.318] {Default Queue} -> wl_surface#711.commit() +[2618826.323] {Default Queue} -> wl_region#767.subtract(0, 0, 2, 2) +[2618826.328] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) +[2618826.332] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) +[2618826.336] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2618826.342] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2618826.347] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618826.362] {Default Queue} -> wl_buffer#765.destroy() +[2618826.369] {Default Queue} -> wl_buffer#766.destroy() +[2618826.374] {Default Queue} -> wl_shm_pool#763.destroy() +[2618826.379] {Default Queue} -> wl_shm_pool#764.destroy() +[2618826.427] {Default Queue} -> wl_shm#751.create_pool(new id wl_shm_pool#3777, fd 575, 16) +[2618826.435] {Default Queue} -> wl_shm#751.create_pool(new id wl_shm_pool#3778, fd 578, 16) +[2618826.441] {Default Queue} -> wl_shm_pool#3777.create_buffer(new id wl_buffer#3779, 0, 2, 2, 8, 0) +[2618826.451] {Default Queue} -> wl_shm_pool#3778.create_buffer(new id wl_buffer#3780, 0, 2, 2, 8, 0) +[2618826.463] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) +[2618826.468] {Default Queue} -> wl_surface#743.commit() +[2618826.475] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) +[2618826.480] {Default Queue} -> wl_surface#743.commit() +[2618826.490] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) +[2618826.496] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) +[2618826.501] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2618826.506] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2618826.623] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) +[2618826.630] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) +[2618826.636] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2618826.641] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2618826.648] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618826.653] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618826.744] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) +[2618826.750] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) +[2618826.755] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2618826.760] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2618826.767] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618826.772] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618826.778] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) +[2618826.784] {Default Queue} -> wl_surface#743.commit() +[2618826.833] {Default Queue} wl_pointer#24.motion(187310456, 29.00000000, 14.60156250) +[2618826.842] {Default Queue} wl_pointer#81.motion(187310456, 29.00000000, 14.60156250) +[2618826.850] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618826.856] {Default Queue} wl_pointer#105.motion(187310456, 29.00000000, 14.60156250) +[2618826.870] {Default Queue} wl_pointer#137.motion(187310456, 29.00000000, 14.60156250) +[2618826.875] {Default Queue} wl_pointer#169.motion(187310456, 29.00000000, 14.60156250) +[2618826.881] {Default Queue} wl_pointer#201.motion(187310456, 29.00000000, 14.60156250) +[2618826.886] {Default Queue} wl_pointer#233.motion(187310456, 29.00000000, 14.60156250) +[2618826.891] {Default Queue} wl_pointer#265.motion(187310456, 29.00000000, 14.60156250) +[2618826.897] {Default Queue} wl_pointer#297.motion(187310456, 29.00000000, 14.60156250) +[2618826.902] {Default Queue} wl_pointer#329.motion(187310456, 29.00000000, 14.60156250) +[2618826.908] {Default Queue} wl_pointer#361.motion(187310456, 29.00000000, 14.60156250) +[2618826.913] {Default Queue} wl_pointer#393.motion(187310456, 29.00000000, 14.60156250) +[2618826.919] {Default Queue} wl_pointer#425.motion(187310456, 29.00000000, 14.60156250) +[2618826.924] {Default Queue} wl_pointer#457.motion(187310456, 29.00000000, 14.60156250) +[2618826.930] {Default Queue} wl_pointer#489.motion(187310456, 29.00000000, 14.60156250) +[2618826.935] {Default Queue} wl_pointer#521.motion(187310456, 29.00000000, 14.60156250) +[2618826.940] {Default Queue} wl_pointer#553.motion(187310456, 29.00000000, 14.60156250) +[2618826.946] {Default Queue} wl_pointer#585.motion(187310456, 29.00000000, 14.60156250) +[2618826.951] {Default Queue} wl_pointer#617.motion(187310456, 29.00000000, 14.60156250) +[2618826.956] {Default Queue} wl_pointer#649.motion(187310456, 29.00000000, 14.60156250) +[2618826.962] {Default Queue} wl_pointer#681.motion(187310456, 29.00000000, 14.60156250) +[2618826.967] {Default Queue} wl_pointer#713.motion(187310456, 29.00000000, 14.60156250) +[2618826.973] {Default Queue} wl_pointer#745.motion(187310456, 29.00000000, 14.60156250) +[2618826.978] {Default Queue} wl_pointer#777.motion(187310456, 29.00000000, 14.60156250) +[2618826.983] {Default Queue} wl_pointer#809.motion(187310456, 29.00000000, 14.60156250) +[2618826.988] {Default Queue} wl_pointer#841.motion(187310456, 29.00000000, 14.60156250) +[2618826.998] {Default Queue} wl_pointer#873.motion(187310456, 29.00000000, 14.60156250) +[2618827.006] {Default Queue} wl_pointer#905.motion(187310456, 29.00000000, 14.60156250) +[2618827.012] {Default Queue} wl_pointer#937.motion(187310456, 29.00000000, 14.60156250) +[2618827.017] {Default Queue} wl_pointer#969.motion(187310456, 29.00000000, 14.60156250) +[2618827.022] {Default Queue} wl_pointer#1001.motion(187310456, 29.00000000, 14.60156250) +[2618827.028] {Default Queue} wl_pointer#1033.motion(187310456, 29.00000000, 14.60156250) +[2618827.033] {Default Queue} wl_pointer#1065.motion(187310456, 29.00000000, 14.60156250) +[2618827.039] {Default Queue} wl_pointer#1097.motion(187310456, 29.00000000, 14.60156250) +[2618827.044] {Default Queue} wl_pointer#1129.motion(187310456, 29.00000000, 14.60156250) +[2618827.050] {Default Queue} wl_pointer#1161.motion(187310456, 29.00000000, 14.60156250) +[2618827.055] {Default Queue} wl_pointer#1193.motion(187310456, 29.00000000, 14.60156250) +[2618827.061] {Default Queue} wl_pointer#1225.motion(187310456, 29.00000000, 14.60156250) +[2618827.066] {Default Queue} wl_pointer#1257.motion(187310456, 29.00000000, 14.60156250) +[2618827.072] {Default Queue} wl_pointer#1289.motion(187310456, 29.00000000, 14.60156250) +[2618827.077] {Default Queue} wl_pointer#1321.motion(187310456, 29.00000000, 14.60156250) +[2618827.083] {Default Queue} wl_pointer#1353.motion(187310456, 29.00000000, 14.60156250) +[2618827.088] {Default Queue} wl_pointer#1385.motion(187310456, 29.00000000, 14.60156250) +[2618827.094] {Default Queue} wl_pointer#1417.motion(187310456, 29.00000000, 14.60156250) +[2618827.099] {Default Queue} wl_pointer#1449.motion(187310456, 29.00000000, 14.60156250) +[2618827.104] {Default Queue} wl_pointer#1481.motion(187310456, 29.00000000, 14.60156250) +[2618827.110] {Default Queue} wl_pointer#1513.motion(187310456, 29.00000000, 14.60156250) +[2618827.116] {Default Queue} wl_pointer#1545.motion(187310456, 29.00000000, 14.60156250) +[2618827.121] {Default Queue} wl_pointer#1577.motion(187310456, 29.00000000, 14.60156250) +[2618827.127] {Default Queue} wl_pointer#1609.motion(187310456, 29.00000000, 14.60156250) +[2618827.132] {Default Queue} wl_pointer#1641.motion(187310456, 29.00000000, 14.60156250) +[2618827.137] {Default Queue} wl_pointer#1673.motion(187310456, 29.00000000, 14.60156250) +[2618827.143] {Default Queue} wl_pointer#1705.motion(187310456, 29.00000000, 14.60156250) +[2618827.148] {Default Queue} wl_pointer#1737.motion(187310456, 29.00000000, 14.60156250) +[2618827.154] {Default Queue} wl_pointer#1762.motion(187310456, 29.00000000, 14.60156250) +[2618827.159] {Default Queue} wl_pointer#1801.motion(187310456, 29.00000000, 14.60156250) +[2618827.164] {Default Queue} wl_pointer#1833.motion(187310456, 29.00000000, 14.60156250) +[2618827.170] {Default Queue} wl_pointer#1865.motion(187310456, 29.00000000, 14.60156250) +[2618827.175] {Default Queue} wl_pointer#1897.motion(187310456, 29.00000000, 14.60156250) +[2618827.181] {Default Queue} wl_pointer#1929.motion(187310456, 29.00000000, 14.60156250) +[2618827.186] {Default Queue} wl_pointer#1961.motion(187310456, 29.00000000, 14.60156250) +[2618827.192] {Default Queue} wl_pointer#1993.motion(187310456, 29.00000000, 14.60156250) +[2618827.197] {Default Queue} wl_pointer#2025.motion(187310456, 29.00000000, 14.60156250) +[2618827.203] {Default Queue} wl_pointer#2057.motion(187310456, 29.00000000, 14.60156250) +[2618827.208] {Default Queue} wl_pointer#2089.motion(187310456, 29.00000000, 14.60156250) +[2618827.214] {Default Queue} wl_pointer#2121.motion(187310456, 29.00000000, 14.60156250) +[2618827.219] {Default Queue} wl_pointer#2153.motion(187310456, 29.00000000, 14.60156250) +[2618827.225] {Default Queue} wl_pointer#2185.motion(187310456, 29.00000000, 14.60156250) +[2618827.231] {Default Queue} wl_pointer#2217.motion(187310456, 29.00000000, 14.60156250) +[2618827.236] {Default Queue} wl_pointer#2249.motion(187310456, 29.00000000, 14.60156250) +[2618827.242] {Default Queue} wl_pointer#2281.motion(187310456, 29.00000000, 14.60156250) +[2618827.251] {Default Queue} wl_pointer#2313.motion(187310456, 29.00000000, 14.60156250) +[2618827.258] {Default Queue} wl_pointer#2345.motion(187310456, 29.00000000, 14.60156250) +[2618827.264] {Default Queue} wl_pointer#2377.motion(187310456, 29.00000000, 14.60156250) +[2618827.270] {Default Queue} wl_pointer#2409.motion(187310456, 29.00000000, 14.60156250) +[2618827.275] {Default Queue} wl_pointer#2441.motion(187310456, 29.00000000, 14.60156250) +[2618827.281] {Default Queue} wl_pointer#2473.motion(187310456, 29.00000000, 14.60156250) +[2618827.286] {Default Queue} wl_pointer#2498.motion(187310456, 29.00000000, 14.60156250) +[2618827.299] {Default Queue} -> wl_buffer#2332.destroy() +[2618827.305] {Default Queue} -> wl_buffer#2331.destroy() +[2618827.309] {Default Queue} -> wl_shm_pool#2174.destroy() +[2618827.314] {Default Queue} -> wl_shm_pool#2173.destroy() +[2618827.319] {Default Queue} -> wl_surface#2334.destroy() +[2618827.358] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3781, fd 581, 640) +[2618827.365] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3782, fd 582, 640) +[2618827.370] {Default Queue} -> wl_shm_pool#3781.create_buffer(new id wl_buffer#3783, 0, 10, 16, 40, 0) +[2618827.374] {Default Queue} -> wl_shm_pool#3782.create_buffer(new id wl_buffer#3784, 0, 10, 16, 40, 0) +[2618827.382] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3785) +[2618827.386] {Default Queue} -> wl_surface#3785.attach(wl_buffer#3783, 0, 0) +[2618827.390] {Default Queue} -> wl_surface#3785.commit() +[2618827.395] {Default Queue} -> wl_surface#3785.attach(wl_buffer#3783, 0, 0) +[2618827.400] {Default Queue} -> wl_surface#3785.commit() +[2618827.404] {Default Queue} wl_pointer#2537.motion(187310456, 29.00000000, 14.60156250) +[2618827.409] {Default Queue} wl_pointer#2569.motion(187310456, 29.00000000, 14.60156250) +[2618827.413] {Default Queue} wl_pointer#2601.motion(187310456, 29.00000000, 14.60156250) +[2618827.418] {Default Queue} wl_pointer#2633.motion(187310456, 29.00000000, 14.60156250) +[2618827.422] {Default Queue} wl_pointer#2665.motion(187310456, 29.00000000, 14.60156250) +[2618827.427] {Default Queue} wl_pointer#2697.motion(187310456, 29.00000000, 14.60156250) +[2618827.432] {Default Queue} wl_pointer#2729.motion(187310456, 29.00000000, 14.60156250) +[2618827.436] {Default Queue} wl_pointer#2761.motion(187310456, 29.00000000, 14.60156250) +[2618827.441] {Default Queue} wl_pointer#2793.motion(187310456, 29.00000000, 14.60156250) +[2618827.446] {Default Queue} wl_pointer#2825.motion(187310456, 29.00000000, 14.60156250) +[2618827.451] {Default Queue} wl_pointer#2857.motion(187310456, 29.00000000, 14.60156250) +[2618827.455] {Default Queue} wl_pointer#2889.motion(187310456, 29.00000000, 14.60156250) +[2618827.459] {Default Queue} wl_pointer#2921.motion(187310456, 29.00000000, 14.60156250) +[2618827.464] {Default Queue} wl_pointer#2953.motion(187310456, 29.00000000, 14.60156250) +[2618827.469] {Default Queue} wl_pointer#2985.motion(187310456, 29.00000000, 14.60156250) +[2618827.474] {Default Queue} wl_pointer#3017.motion(187310456, 29.00000000, 14.60156250) +[2618827.478] {Default Queue} wl_pointer#3049.motion(187310456, 29.00000000, 14.60156250) +[2618827.482] {Default Queue} wl_pointer#3081.motion(187310456, 29.00000000, 14.60156250) +[2618827.487] {Default Queue} wl_pointer#3113.motion(187310456, 29.00000000, 14.60156250) +[2618827.492] {Default Queue} wl_pointer#3145.motion(187310456, 29.00000000, 14.60156250) +[2618827.496] {Default Queue} wl_pointer#3177.motion(187310456, 29.00000000, 14.60156250) +[2618827.501] {Default Queue} wl_pointer#3209.motion(187310456, 29.00000000, 14.60156250) +[2618827.505] {Default Queue} wl_pointer#3241.motion(187310456, 29.00000000, 14.60156250) +[2618827.510] {Default Queue} wl_pointer#3273.motion(187310456, 29.00000000, 14.60156250) +[2618827.515] {Default Queue} wl_pointer#3305.motion(187310456, 29.00000000, 14.60156250) +[2618827.519] {Default Queue} wl_pointer#3337.motion(187310456, 29.00000000, 14.60156250) +[2618827.524] {Default Queue} wl_pointer#3369.motion(187310456, 29.00000000, 14.60156250) +[2618827.531] {Default Queue} wl_pointer#3401.motion(187310456, 29.00000000, 14.60156250) +[2618827.537] {Default Queue} wl_pointer#3433.motion(187310456, 29.00000000, 14.60156250) +[2618827.543] {Default Queue} wl_pointer#3465.motion(187310456, 29.00000000, 14.60156250) +[2618827.549] {Default Queue} wl_pointer#3497.motion(187310456, 29.00000000, 14.60156250) +[2618827.554] {Default Queue} wl_pointer#3529.motion(187310456, 29.00000000, 14.60156250) +[2618827.558] {Default Queue} wl_pointer#3561.motion(187310456, 29.00000000, 14.60156250) +[2618827.563] {Default Queue} wl_pointer#3593.motion(187310456, 29.00000000, 14.60156250) +[2618827.567] {Default Queue} wl_pointer#3625.motion(187310456, 29.00000000, 14.60156250) +[2618827.572] {Default Queue} wl_pointer#3657.motion(187310456, 29.00000000, 14.60156250) +[2618827.577] {Default Queue} wl_pointer#3695.motion(187310456, 29.00000000, 14.60156250) +[2618827.581] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) +[2618827.586] {Default Queue} -> wl_surface#743.commit() +[2618828.651] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) +[2618828.657] {Default Queue} -> wl_surface#743.commit() +[2618828.665] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) +[2618828.670] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) +[2618828.674] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2618828.679] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2618828.773] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) +[2618828.779] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) +[2618828.783] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2618828.788] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2618828.794] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618828.798] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618828.870] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) +[2618828.878] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) +[2618828.882] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2618828.886] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2618828.891] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618828.895] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618828.901] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) +[2618828.905] {Default Queue} -> wl_surface#743.commit() +[2618828.909] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) +[2618828.913] {Default Queue} -> wl_surface#743.commit() +[2618828.919] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) +[2618828.923] {Default Queue} -> wl_surface#743.commit() +[2618828.928] {Default Queue} -> wl_region#799.subtract(0, 0, 2, 2) +[2618828.932] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) +[2618828.936] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) +[2618828.940] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2618828.944] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2618828.949] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618828.961] {Default Queue} -> wl_buffer#797.destroy() +[2618828.967] {Default Queue} -> wl_buffer#798.destroy() +[2618828.971] {Default Queue} -> wl_shm_pool#795.destroy() +[2618828.975] {Default Queue} -> wl_shm_pool#796.destroy() +[2618829.014] {Default Queue} -> wl_shm#783.create_pool(new id wl_shm_pool#3786, fd 575, 16) +[2618829.021] {Default Queue} -> wl_shm#783.create_pool(new id wl_shm_pool#3787, fd 578, 16) +[2618829.026] {Default Queue} -> wl_shm_pool#3786.create_buffer(new id wl_buffer#3788, 0, 2, 2, 8, 0) +[2618829.030] {Default Queue} -> wl_shm_pool#3787.create_buffer(new id wl_buffer#3789, 0, 2, 2, 8, 0) +[2618829.037] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) +[2618829.041] {Default Queue} -> wl_surface#775.commit() +[2618829.047] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) +[2618829.054] {Default Queue} -> wl_surface#775.commit() +[2618829.066] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) +[2618829.071] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) +[2618829.075] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2618829.079] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2618829.173] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) +[2618829.178] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) +[2618829.183] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2618829.187] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2618829.192] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618829.197] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618829.272] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) +[2618829.277] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) +[2618829.282] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2618829.286] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2618829.290] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618829.294] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618829.299] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) +[2618829.304] {Default Queue} -> wl_surface#775.commit() +[2618829.310] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) +[2618829.314] {Default Queue} -> wl_surface#775.commit() +[2618830.378] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) +[2618830.384] {Default Queue} -> wl_surface#775.commit() +[2618830.391] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) +[2618830.395] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) +[2618830.399] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2618830.404] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2618830.489] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) +[2618830.494] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) +[2618830.499] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2618830.503] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2618830.508] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618830.512] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618830.584] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) +[2618830.589] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) +[2618830.594] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2618830.598] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2618830.602] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618830.607] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618830.612] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) +[2618830.616] {Default Queue} -> wl_surface#775.commit() +[2618830.620] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) +[2618830.624] {Default Queue} -> wl_surface#775.commit() +[2618830.630] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) +[2618830.634] {Default Queue} -> wl_surface#775.commit() +[2618830.638] {Default Queue} -> wl_region#831.subtract(0, 0, 2, 2) +[2618830.643] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) +[2618830.647] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) +[2618830.651] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2618830.655] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2618830.659] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618830.671] {Default Queue} -> wl_buffer#829.destroy() +[2618830.676] {Default Queue} -> wl_buffer#830.destroy() +[2618830.680] {Default Queue} -> wl_shm_pool#827.destroy() +[2618830.684] {Default Queue} -> wl_shm_pool#828.destroy() +[2618830.722] {Default Queue} -> wl_shm#815.create_pool(new id wl_shm_pool#3790, fd 575, 16) +[2618830.728] {Default Queue} -> wl_shm#815.create_pool(new id wl_shm_pool#3791, fd 578, 16) +[2618830.736] {Default Queue} -> wl_shm_pool#3790.create_buffer(new id wl_buffer#3792, 0, 2, 2, 8, 0) +[2618830.742] {Default Queue} -> wl_shm_pool#3791.create_buffer(new id wl_buffer#3793, 0, 2, 2, 8, 0) +[2618830.749] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) +[2618830.754] {Default Queue} -> wl_surface#807.commit() +[2618830.759] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) +[2618830.764] {Default Queue} -> wl_surface#807.commit() +[2618830.772] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) +[2618830.776] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) +[2618830.781] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2618830.785] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2618830.880] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) +[2618830.886] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) +[2618830.891] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2618830.895] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2618830.901] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618830.905] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618830.975] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) +[2618830.980] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) +[2618830.984] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2618830.988] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2618830.993] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618830.998] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618831.003] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) +[2618831.007] {Default Queue} -> wl_surface#807.commit() +[2618831.013] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) +[2618831.017] {Default Queue} -> wl_surface#807.commit() +[2618832.082] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) +[2618832.087] {Default Queue} -> wl_surface#807.commit() +[2618832.094] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) +[2618832.099] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) +[2618832.103] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2618832.107] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2618832.190] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) +[2618832.195] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) +[2618832.199] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2618832.204] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2618832.208] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618832.213] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618832.283] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) +[2618832.288] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) +[2618832.292] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2618832.297] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2618832.301] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618832.306] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618832.311] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) +[2618832.315] {Default Queue} -> wl_surface#807.commit() +[2618832.319] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) +[2618832.323] {Default Queue} -> wl_surface#807.commit() +[2618832.329] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) +[2618832.333] {Default Queue} -> wl_surface#807.commit() +[2618832.337] {Default Queue} -> wl_region#863.subtract(0, 0, 2, 2) +[2618832.342] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) +[2618832.346] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) +[2618832.350] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2618832.355] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2618832.362] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618832.383] {Default Queue} -> wl_buffer#861.destroy() +[2618832.389] {Default Queue} -> wl_buffer#862.destroy() +[2618832.393] {Default Queue} -> wl_shm_pool#859.destroy() +[2618832.397] {Default Queue} -> wl_shm_pool#860.destroy() +[2618832.435] {Default Queue} -> wl_shm#847.create_pool(new id wl_shm_pool#3794, fd 575, 16) +[2618832.441] {Default Queue} -> wl_shm#847.create_pool(new id wl_shm_pool#3795, fd 578, 16) +[2618832.446] {Default Queue} -> wl_shm_pool#3794.create_buffer(new id wl_buffer#3796, 0, 2, 2, 8, 0) +[2618832.450] {Default Queue} -> wl_shm_pool#3795.create_buffer(new id wl_buffer#3797, 0, 2, 2, 8, 0) +[2618832.457] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) +[2618832.461] {Default Queue} -> wl_surface#839.commit() +[2618832.466] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) +[2618832.471] {Default Queue} -> wl_surface#839.commit() +[2618832.480] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) +[2618832.485] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) +[2618832.490] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2618832.494] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2618832.584] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) +[2618832.589] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) +[2618832.594] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2618832.598] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2618832.603] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618832.608] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618832.677] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) +[2618832.683] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) +[2618832.687] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2618832.691] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2618832.696] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618832.701] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618832.706] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) +[2618832.710] {Default Queue} -> wl_surface#839.commit() +[2618832.716] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) +[2618832.721] {Default Queue} -> wl_surface#839.commit() +[2618833.784] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) +[2618833.790] {Default Queue} -> wl_surface#839.commit() +[2618833.797] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) +[2618833.801] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) +[2618833.805] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2618833.809] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2618833.895] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) +[2618833.901] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) +[2618833.905] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2618833.909] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2618833.914] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618833.918] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618833.989] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) +[2618833.995] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) +[2618833.999] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2618834.003] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2618834.008] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618834.012] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618834.017] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) +[2618834.021] {Default Queue} -> wl_surface#839.commit() +[2618834.026] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) +[2618834.030] {Default Queue} -> wl_surface#839.commit() +[2618834.036] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) +[2618834.044] {Default Queue} -> wl_surface#839.commit() +[2618834.050] {Default Queue} -> wl_region#703.subtract(0, 0, 2, 2) +[2618834.057] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) +[2618834.061] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) +[2618834.066] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2618834.069] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2618834.149] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) +[2618834.155] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) +[2618834.159] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2618834.163] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2618834.168] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618834.172] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618834.238] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) +[2618834.244] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) +[2618834.248] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2618834.252] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2618834.257] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618834.261] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618834.267] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) +[2618834.271] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) +[2618834.275] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2618834.279] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2618834.360] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) +[2618834.365] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) +[2618834.370] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2618834.374] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2618834.378] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618834.383] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618834.452] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) +[2618834.457] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) +[2618834.461] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2618834.466] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2618834.470] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618834.474] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618834.481] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) +[2618834.485] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) +[2618834.489] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2618834.493] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2618834.575] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) +[2618834.580] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) +[2618834.584] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2618834.588] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2618834.593] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618834.597] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618834.668] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) +[2618834.673] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) +[2618834.677] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2618834.682] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2618834.686] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618834.690] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618834.697] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) +[2618834.701] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) +[2618834.705] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2618834.709] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2618834.789] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) +[2618834.797] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) +[2618834.802] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2618834.806] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2618834.811] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618834.815] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618834.889] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) +[2618834.894] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) +[2618834.899] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2618834.903] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2618834.908] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618834.912] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618834.919] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) +[2618834.923] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) +[2618834.927] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2618834.931] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2618835.011] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) +[2618835.016] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) +[2618835.021] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2618835.025] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2618835.029] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618835.034] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618835.103] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) +[2618835.108] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) +[2618835.113] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2618835.117] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2618835.121] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618835.125] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618835.130] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2618835.135] {Default Queue} -> wl_region#703.subtract(0, 0, 485, 54) +[2618835.139] {Default Queue} -> wl_region#703.add(-483, -72, 467, 54) +[2618835.143] {Default Queue} -> wl_surface#679.set_opaque_region(wl_region#704) +[2618835.147] {Default Queue} -> wl_surface#679.set_input_region(wl_region#703) +[2618835.151] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618835.155] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618835.159] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618835.163] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618835.167] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618835.172] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2618835.184] {Default Queue} -> wl_buffer#701.destroy() +[2618835.189] {Default Queue} -> wl_buffer#702.destroy() +[2618835.193] {Default Queue} -> wl_shm_pool#699.destroy() +[2618835.197] {Default Queue} -> wl_shm_pool#700.destroy() +[2618835.235] {Default Queue} -> wl_shm#687.create_pool(new id wl_shm_pool#3798, fd 575, 16) +[2618835.241] {Default Queue} -> wl_shm#687.create_pool(new id wl_shm_pool#3799, fd 578, 16) +[2618835.246] {Default Queue} -> wl_shm_pool#3798.create_buffer(new id wl_buffer#3800, 0, 2, 2, 8, 0) +[2618835.250] {Default Queue} -> wl_shm_pool#3799.create_buffer(new id wl_buffer#3801, 0, 2, 2, 8, 0) +[2618835.258] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) +[2618835.263] {Default Queue} -> wl_surface#679.commit() +[2618835.268] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) +[2618835.272] {Default Queue} -> wl_surface#679.commit() +[2618835.279] {Default Queue} -> wl_region#703.subtract(0, 0, 485, 54) +[2618835.285] {Default Queue} -> wl_region#703.add(-483, -72, 467, 54) +[2618835.289] {Default Queue} -> wl_surface#679.set_opaque_region(wl_region#704) +[2618835.293] {Default Queue} -> wl_surface#679.set_input_region(wl_region#703) +[2618835.298] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) +[2618835.302] {Default Queue} -> wl_surface#679.commit() +[2618835.312] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) +[2618835.319] {Default Queue} -> wl_surface#679.commit() +[2618836.383] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) +[2618836.389] {Default Queue} -> wl_surface#679.commit() +[2618836.395] {Default Queue} -> wl_region#703.subtract(0, 0, 485, 54) +[2618836.399] {Default Queue} -> wl_region#703.add(-483, -72, 467, 54) +[2618836.403] {Default Queue} -> wl_surface#679.set_opaque_region(wl_region#704) +[2618836.407] {Default Queue} -> wl_surface#679.set_input_region(wl_region#703) +[2618836.411] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) +[2618836.415] {Default Queue} -> wl_surface#679.commit() +[2618836.419] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) +[2618836.423] {Default Queue} -> wl_surface#679.commit() +[2618836.429] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) +[2618836.433] {Default Queue} -> wl_surface#679.commit() +[2618836.438] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) +[2618836.443] {Default Queue} -> wl_surface#455.commit() +[2618837.503] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) +[2618837.509] {Default Queue} -> wl_surface#455.commit() +[2618837.515] {Default Queue} -> wl_region#479.subtract(0, 0, 485, 34) +[2618837.519] {Default Queue} -> wl_region#479.add(-483, -52, 485, 34) +[2618837.523] {Default Queue} -> wl_surface#455.set_opaque_region(wl_region#480) +[2618837.527] {Default Queue} -> wl_surface#455.set_input_region(wl_region#479) +[2618837.532] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) +[2618837.536] {Default Queue} -> wl_surface#455.commit() +[2618837.540] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) +[2618837.544] {Default Queue} -> wl_surface#455.commit() +[2618837.549] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) +[2618837.554] {Default Queue} -> wl_surface#455.commit() +[2618837.558] {Default Queue} -> wl_region#447.subtract(0, 0, 2, 2) +[2618837.564] {Default Queue} -> wl_region#479.subtract(0, 0, 2, 2) +[2618837.568] {Default Queue} -> wl_subsurface#474.set_position(1, 1) +[2618837.572] {Default Queue} -> wl_region#479.subtract(0, 0, 486, 35) +[2618837.576] {Default Queue} -> wl_region#479.add(-483, -52, 485, 34) +[2618837.580] {Default Queue} -> wl_surface#455.set_opaque_region(wl_region#480) +[2618837.584] {Default Queue} -> wl_surface#455.set_input_region(wl_region#479) +[2618837.589] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618837.593] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618837.597] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618837.602] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618837.606] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618837.611] {Default Queue} -> wl_surface#487.damage(0, 0, 16, 2) +[2618837.615] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618837.619] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618837.623] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618837.627] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618837.632] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618837.636] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2618837.640] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2618837.645] {Default Queue} -> wl_region#479.subtract(0, 0, 485, 54) +[2618837.649] {Default Queue} -> wl_region#479.add(-483, -72, 484, 53) +[2618837.653] {Default Queue} -> wl_surface#455.set_opaque_region(wl_region#480) +[2618837.657] {Default Queue} -> wl_surface#455.set_input_region(wl_region#479) +[2618837.662] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) +[2618837.666] {Default Queue} -> wl_surface#455.commit() +[2618837.671] {Default Queue} -> wl_region#479.subtract(0, 0, 485, 54) +[2618837.676] {Default Queue} -> wl_region#479.add(-483, -72, 484, 53) +[2618837.679] {Default Queue} -> wl_surface#455.set_opaque_region(wl_region#480) +[2618837.683] {Default Queue} -> wl_surface#455.set_input_region(wl_region#479) +[2618837.691] {Default Queue} -> wl_region#447.subtract(0, 0, 485, 54) +[2618837.697] {Default Queue} -> wl_region#447.add(-483, -52, 485, 34) +[2618837.701] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) +[2618837.705] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) +[2618837.709] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618837.713] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618837.717] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618837.721] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618837.725] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618837.729] {Default Queue} -> wl_surface#487.damage(0, 0, 16, 2) +[2618837.733] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618837.737] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618837.741] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618837.745] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618837.749] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618837.753] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2618837.758] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2618837.761] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) +[2618837.778] {Default Queue} -> wl_buffer#445.destroy() +[2618837.784] {Default Queue} -> wl_buffer#446.destroy() +[2618837.788] {Default Queue} -> wl_shm_pool#443.destroy() +[2618837.792] {Default Queue} -> wl_shm_pool#444.destroy() +[2618837.830] {Default Queue} -> wl_shm#431.create_pool(new id wl_shm_pool#3802, fd 575, 16) +[2618837.836] {Default Queue} -> wl_shm#431.create_pool(new id wl_shm_pool#3803, fd 578, 16) +[2618837.840] {Default Queue} -> wl_shm_pool#3802.create_buffer(new id wl_buffer#3804, 0, 2, 2, 8, 0) +[2618837.845] {Default Queue} -> wl_shm_pool#3803.create_buffer(new id wl_buffer#3805, 0, 2, 2, 8, 0) +[2618837.852] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) +[2618837.856] {Default Queue} -> wl_surface#423.commit() +[2618837.867] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) +[2618837.871] {Default Queue} -> wl_surface#423.commit() +[2618837.878] {Default Queue} -> wl_region#447.subtract(0, 0, 485, 54) +[2618837.882] {Default Queue} -> wl_region#447.add(-483, -52, 485, 34) +[2618837.886] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) +[2618837.890] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) +[2618837.895] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) +[2618837.899] {Default Queue} -> wl_surface#423.commit() +[2618837.905] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) +[2618837.909] {Default Queue} -> wl_surface#423.commit() +[2618838.974] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) +[2618838.979] {Default Queue} -> wl_surface#423.commit() +[2618838.985] {Default Queue} -> wl_region#447.subtract(0, 0, 485, 54) +[2618838.989] {Default Queue} -> wl_region#447.add(-483, -52, 485, 34) +[2618838.993] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) +[2618838.997] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) +[2618839.001] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) +[2618839.006] {Default Queue} -> wl_surface#423.commit() +[2618839.010] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) +[2618839.013] {Default Queue} -> wl_surface#423.commit() +[2618839.019] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) +[2618839.023] {Default Queue} -> wl_surface#423.commit() +[2618839.029] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) +[2618839.033] {Default Queue} -> wl_surface#359.commit() +[2618840.093] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) +[2618840.098] {Default Queue} -> wl_surface#359.commit() +[2618840.104] {Default Queue} -> wl_region#383.subtract(0, 0, 485, 54) +[2618840.108] {Default Queue} -> wl_region#383.add(-480, -49, 482, 51) +[2618840.113] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) +[2618840.120] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) +[2618840.127] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) +[2618840.131] {Default Queue} -> wl_surface#359.commit() +[2618840.135] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) +[2618840.139] {Default Queue} -> wl_surface#359.commit() +[2618840.145] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) +[2618840.149] {Default Queue} -> wl_surface#359.commit() +[2618840.154] {Default Queue} -> wl_region#351.subtract(0, 0, 115, 167) +[2618840.160] {Default Queue} -> wl_region#383.subtract(0, 0, 2, 2) +[2618840.165] {Default Queue} -> wl_subsurface#378.set_position(3, 3) +[2618840.169] {Default Queue} -> wl_region#383.subtract(0, 0, 485, 54) +[2618840.173] {Default Queue} -> wl_region#383.add(-480, -49, 482, 51) +[2618840.177] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) +[2618840.181] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) +[2618840.185] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2618840.189] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618840.193] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618840.197] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618840.202] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618840.207] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618840.211] {Default Queue} -> wl_surface#487.damage(0, 0, 16, 2) +[2618840.215] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618840.219] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618840.223] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618840.227] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618840.231] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618840.235] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2618840.239] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2618840.243] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) +[2618840.247] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) +[2618840.252] {Default Queue} -> wl_region#383.subtract(0, 0, 485, 54) +[2618840.257] {Default Queue} -> wl_region#383.add(-480, -49, 482, 51) +[2618840.261] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) +[2618840.265] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) +[2618840.269] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) +[2618840.273] {Default Queue} -> wl_surface#359.commit() +[2618840.278] {Default Queue} -> wl_region#383.subtract(0, 0, 592, 213) +[2618840.283] {Default Queue} -> wl_region#383.add(-480, -49, 589, 210) +[2618840.287] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) +[2618840.290] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) +[2618840.295] {Default Queue} -> wl_region#351.subtract(0, 0, 482, 51) +[2618840.299] {Default Queue} -> wl_region#351.add(-20, -49, 22, 51) +[2618840.303] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618840.307] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618840.311] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2618840.315] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618840.319] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618840.323] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618840.327] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618840.332] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618840.336] {Default Queue} -> wl_surface#487.damage(0, 0, 16, 2) +[2618840.339] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618840.344] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618840.348] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618840.352] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618840.356] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618840.360] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2618840.367] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2618840.372] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) +[2618840.376] {Default Queue} -> wl_surface#359.damage(0, 0, 109, 161) +[2618840.381] {Default Queue} -> wl_surface#327.damage(0, 0, 115, 167) +[2618840.395] {Default Queue} -> wl_buffer#349.destroy() +[2618840.402] {Default Queue} -> wl_buffer#350.destroy() +[2618840.406] {Default Queue} -> wl_shm_pool#347.destroy() +[2618840.410] {Default Queue} -> wl_shm_pool#348.destroy() +[2618840.503] {Default Queue} -> wl_shm#335.create_pool(new id wl_shm_pool#3806, fd 575, 76820) +[2618840.511] {Default Queue} -> wl_shm#335.create_pool(new id wl_shm_pool#3807, fd 578, 76820) +[2618840.517] {Default Queue} -> wl_shm_pool#3806.create_buffer(new id wl_buffer#3808, 0, 115, 167, 460, 0) +[2618840.522] {Default Queue} -> wl_shm_pool#3807.create_buffer(new id wl_buffer#3809, 0, 115, 167, 460, 0) +[2618840.551] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) +[2618840.558] {Default Queue} -> wl_surface#327.commit() +[2618840.584] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) +[2618840.590] {Default Queue} -> wl_surface#327.commit() +[2618840.602] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) +[2618840.608] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) +[2618840.614] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618840.619] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618840.632] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) +[2618840.637] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) +[2618840.642] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618840.647] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618840.655] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) +[2618840.660] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) +[2618840.665] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618840.670] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618840.677] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) +[2618840.683] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) +[2618840.688] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618840.693] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618840.701] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) +[2618840.706] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) +[2618840.712] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618840.716] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618840.725] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) +[2618840.730] {Default Queue} -> wl_surface#327.commit() +[2618840.739] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) +[2618840.745] {Default Queue} -> wl_surface#327.commit() +[2618841.812] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) +[2618841.818] {Default Queue} -> wl_surface#327.commit() +[2618841.826] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) +[2618841.831] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) +[2618841.835] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618841.839] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618841.845] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) +[2618841.849] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) +[2618841.853] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618841.857] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618841.866] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) +[2618841.871] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) +[2618841.875] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618841.878] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618841.884] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) +[2618841.892] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) +[2618841.899] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618841.903] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618841.909] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) +[2618841.913] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) +[2618841.917] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618841.921] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618841.928] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) +[2618841.932] {Default Queue} -> wl_surface#327.commit() +[2618841.937] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) +[2618841.941] {Default Queue} -> wl_surface#327.commit() +[2618841.948] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) +[2618841.952] {Default Queue} -> wl_surface#327.commit() +[2618841.956] {Default Queue} -> wl_region#127.subtract(0, 0, 576, 167) +[2618841.963] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) +[2618841.968] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) +[2618841.972] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618841.976] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618841.984] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) +[2618841.988] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) +[2618841.992] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618841.997] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618842.002] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) +[2618842.006] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) +[2618842.011] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618842.015] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618842.020] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) +[2618842.024] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) +[2618842.029] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618842.032] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618842.039] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) +[2618842.043] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) +[2618842.047] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618842.051] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618842.068] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) +[2618842.073] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) +[2618842.077] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618842.081] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618842.395] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) +[2618842.400] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) +[2618842.405] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618842.409] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618842.422] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) +[2618842.427] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) +[2618842.653] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) +[2618842.659] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) +[2618842.663] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618842.667] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618842.676] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) +[2618842.681] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) +[2618842.687] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) +[2618842.692] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) +[2618842.696] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618842.700] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618842.710] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) +[2618842.717] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) +[2618842.721] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618842.725] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618842.731] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) +[2618842.735] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) +[2618842.739] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618842.743] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618842.749] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) +[2618842.753] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) +[2618842.757] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618842.761] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618842.767] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) +[2618842.772] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) +[2618842.776] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2618842.780] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2618842.787] {Default Queue} -> wl_surface#103.damage(0, 0, 576, 167) +[2618842.792] {Default Queue} -> wl_region#127.subtract(0, 0, 2, 2) +[2618842.796] {Default Queue} -> wl_region#127.add(0, 0, 2, 2) +[2618842.800] {Default Queue} -> wl_surface#103.set_opaque_region(wl_region#128) +[2618842.804] {Default Queue} -> wl_surface#103.set_input_region(wl_region#127) +[2618842.808] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2618842.813] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618842.817] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) +[2618842.821] {Default Queue} -> wl_surface#167.damage(0, 0, 109, 161) +[2618842.826] {Default Queue} -> wl_surface#135.damage(0, 0, 115, 167) +[2618842.830] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) +[2618842.834] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2618842.838] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2618842.842] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2618842.847] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2618842.851] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2618842.856] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2618842.860] {Default Queue} -> wl_surface#487.damage(0, 0, 16, 2) +[2618842.871] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2618842.875] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2618842.880] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2618842.884] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2618842.888] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2618842.892] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2618842.896] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2618842.900] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) +[2618842.905] {Default Queue} -> wl_surface#359.damage(0, 0, 109, 161) +[2618842.909] {Default Queue} -> wl_surface#327.damage(0, 0, 115, 167) +[2618842.913] {Default Queue} -> wl_surface#103.damage(0, 0, 576, 167) +[2618842.926] {Default Queue} -> wl_buffer#125.destroy() +[2618842.931] {Default Queue} -> wl_buffer#126.destroy() +[2618842.935] {Default Queue} -> wl_shm_pool#123.destroy() +[2618842.939] {Default Queue} -> wl_shm_pool#124.destroy() +[2618843.219] {Default Queue} -> wl_shm#111.create_pool(new id wl_shm_pool#3810, fd 575, 384768) +[2618843.228] {Default Queue} -> wl_shm#111.create_pool(new id wl_shm_pool#3811, fd 578, 384768) +[2618843.232] {Default Queue} -> wl_shm_pool#3810.create_buffer(new id wl_buffer#3812, 0, 576, 167, 2304, 0) +[2618843.237] {Default Queue} -> wl_shm_pool#3811.create_buffer(new id wl_buffer#3813, 0, 576, 167, 2304, 0) +[2618843.346] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) +[2618843.352] {Default Queue} -> wl_surface#103.commit() +[2618843.469] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) +[2618843.479] {Default Queue} -> wl_surface#103.commit() +[2618843.496] {Default Queue} -> wl_region#127.subtract(0, 0, 576, 167) +[2618843.501] {Default Queue} -> wl_region#127.add(0, 0, 576, 167) +[2618843.506] {Default Queue} -> wl_surface#103.set_opaque_region(wl_region#128) +[2618843.510] {Default Queue} -> wl_surface#103.set_input_region(wl_region#127) +[2618843.533] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) +[2618843.539] {Default Queue} -> wl_surface#103.commit() +[2618843.565] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) +[2618843.570] {Default Queue} -> wl_surface#103.commit() +[2618844.643] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) +[2618844.650] {Default Queue} -> wl_surface#103.commit() +[2618844.661] {Default Queue} -> wl_region#127.subtract(0, 0, 576, 167) +[2618844.666] {Default Queue} -> wl_region#127.add(0, 0, 576, 167) +[2618844.671] {Default Queue} -> wl_surface#103.set_opaque_region(wl_region#128) +[2618844.675] {Default Queue} -> wl_surface#103.set_input_region(wl_region#127) +[2618844.692] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) +[2618844.698] {Default Queue} -> wl_surface#103.commit() +[2618844.708] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) +[2618844.714] {Default Queue} -> wl_surface#103.commit() +[2618844.726] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) +[2618844.732] {Default Queue} -> wl_surface#103.commit() +[2618844.737] {Default Queue} -> wl_region#991.subtract(0, 0, 2, 20) +[2618844.742] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 218) +[2618844.746] {Default Queue} -> wl_region#991.add(-20, -216, 22, 218) +[2618844.751] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2618844.755] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2618844.759] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2618844.774] {Default Queue} -> wl_buffer#989.destroy() +[2618844.780] {Default Queue} -> wl_buffer#990.destroy() +[2618844.784] {Default Queue} -> wl_shm_pool#987.destroy() +[2618844.788] {Default Queue} -> wl_shm_pool#988.destroy() +[2618844.825] {Default Queue} -> wl_shm#975.create_pool(new id wl_shm_pool#3814, fd 575, 160) +[2618844.831] {Default Queue} -> wl_shm#975.create_pool(new id wl_shm_pool#3815, fd 578, 160) +[2618844.836] {Default Queue} -> wl_shm_pool#3814.create_buffer(new id wl_buffer#3816, 0, 2, 20, 8, 0) +[2618844.840] {Default Queue} -> wl_shm_pool#3815.create_buffer(new id wl_buffer#3817, 0, 2, 20, 8, 0) +[2618844.847] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) +[2618844.851] {Default Queue} -> wl_surface#967.commit() +[2618844.856] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) +[2618844.861] {Default Queue} -> wl_surface#967.commit() +[2618844.869] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 218) +[2618844.879] {Default Queue} -> wl_region#991.add(-20, -216, 22, 218) +[2618844.883] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2618844.887] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2618844.983] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 218) +[2618844.988] {Default Queue} -> wl_region#991.add(-20, -216, 22, 218) +[2618844.992] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2618844.996] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2618845.002] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2618845.006] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2618845.070] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 218) +[2618845.075] {Default Queue} -> wl_region#991.add(-20, -216, 22, 218) +[2618845.080] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2618845.084] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2618845.090] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2618845.094] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2618845.099] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) +[2618845.107] {Default Queue} -> wl_surface#967.commit() +[2618845.116] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) +[2618845.120] {Default Queue} -> wl_surface#967.commit() +[2618846.184] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) +[2618846.190] {Default Queue} -> wl_surface#967.commit() +[2618846.197] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 218) +[2618846.202] {Default Queue} -> wl_region#991.add(-20, -216, 22, 218) +[2618846.207] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2618846.211] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2618846.286] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 218) +[2618846.291] {Default Queue} -> wl_region#991.add(-20, -216, 22, 218) +[2618846.295] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2618846.299] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2618846.304] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2618846.309] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2618846.369] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 218) +[2618846.374] {Default Queue} -> wl_region#991.add(-20, -216, 22, 218) +[2618846.378] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2618846.382] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2618846.387] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2618846.392] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2618846.396] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) +[2618846.400] {Default Queue} -> wl_surface#967.commit() +[2618846.404] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) +[2618846.408] {Default Queue} -> wl_surface#967.commit() +[2618846.414] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) +[2618846.418] {Default Queue} -> wl_surface#967.commit() +[2618846.423] {Default Queue} -> wl_region#1119.subtract(0, 0, 2, 2) +[2618846.428] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) +[2618846.432] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) +[2618846.436] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618846.439] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618846.444] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) +[2618846.457] {Default Queue} -> wl_buffer#1117.destroy() +[2618846.462] {Default Queue} -> wl_buffer#1118.destroy() +[2618846.466] {Default Queue} -> wl_shm_pool#1115.destroy() +[2618846.470] {Default Queue} -> wl_shm_pool#1116.destroy() +[2618846.508] {Default Queue} -> wl_shm#1103.create_pool(new id wl_shm_pool#3818, fd 575, 16) +[2618846.514] {Default Queue} -> wl_shm#1103.create_pool(new id wl_shm_pool#3819, fd 578, 16) +[2618846.519] {Default Queue} -> wl_shm_pool#3818.create_buffer(new id wl_buffer#3820, 0, 2, 2, 8, 0) +[2618846.523] {Default Queue} -> wl_shm_pool#3819.create_buffer(new id wl_buffer#3821, 0, 2, 2, 8, 0) +[2618846.530] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) +[2618846.535] {Default Queue} -> wl_surface#1095.commit() +[2618846.540] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) +[2618846.544] {Default Queue} -> wl_surface#1095.commit() +[2618846.553] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) +[2618846.558] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) +[2618846.562] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618846.566] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618846.574] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) +[2618846.579] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) +[2618846.584] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618846.588] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618846.593] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) +[2618846.597] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) +[2618846.605] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618846.611] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618846.616] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) +[2618846.620] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) +[2618846.624] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618846.628] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618846.633] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) +[2618846.637] {Default Queue} -> wl_surface#1095.commit() +[2618846.643] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) +[2618846.647] {Default Queue} -> wl_surface#1095.commit() +[2618847.718] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) +[2618847.733] {Default Queue} -> wl_surface#1095.commit() +[2618847.745] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) +[2618847.751] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) +[2618847.756] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618847.760] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618847.771] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) +[2618847.775] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) +[2618847.780] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618847.784] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618847.789] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) +[2618847.793] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) +[2618847.797] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618847.802] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618847.806] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) +[2618847.811] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) +[2618847.815] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618847.819] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618847.824] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) +[2618847.828] {Default Queue} -> wl_surface#1095.commit() +[2618847.832] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) +[2618847.837] {Default Queue} -> wl_surface#1095.commit() +[2618847.844] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) +[2618847.848] {Default Queue} -> wl_surface#1095.commit() +[2618847.853] {Default Queue} -> wl_region#1151.subtract(0, 0, 2, 2) +[2618847.857] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) +[2618847.863] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) +[2618847.869] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618847.882] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618847.886] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) +[2618847.903] {Default Queue} -> wl_buffer#1149.destroy() +[2618847.909] {Default Queue} -> wl_buffer#1150.destroy() +[2618847.913] {Default Queue} -> wl_shm_pool#1147.destroy() +[2618847.918] {Default Queue} -> wl_shm_pool#1148.destroy() +[2618847.975] {Default Queue} -> wl_shm#1135.create_pool(new id wl_shm_pool#3822, fd 575, 16) +[2618847.986] {Default Queue} -> wl_shm#1135.create_pool(new id wl_shm_pool#3823, fd 578, 16) +[2618847.993] {Default Queue} -> wl_shm_pool#3822.create_buffer(new id wl_buffer#3824, 0, 2, 2, 8, 0) +[2618847.998] {Default Queue} -> wl_shm_pool#3823.create_buffer(new id wl_buffer#3825, 0, 2, 2, 8, 0) +[2618848.005] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) +[2618848.010] {Default Queue} -> wl_surface#1127.commit() +[2618848.016] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) +[2618848.020] {Default Queue} -> wl_surface#1127.commit() +[2618848.030] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) +[2618848.035] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) +[2618848.045] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618848.053] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618848.062] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) +[2618848.066] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) +[2618848.070] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618848.074] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618848.079] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) +[2618848.084] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) +[2618848.088] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618848.093] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618848.097] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) +[2618848.102] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) +[2618848.106] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618848.110] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618848.114] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) +[2618848.118] {Default Queue} -> wl_surface#1127.commit() +[2618848.125] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) +[2618848.129] {Default Queue} -> wl_surface#1127.commit() +[2618849.201] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) +[2618849.217] {Default Queue} -> wl_surface#1127.commit() +[2618849.227] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) +[2618849.232] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) +[2618849.237] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618849.241] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618849.249] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) +[2618849.253] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) +[2618849.257] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618849.261] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618849.266] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) +[2618849.270] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) +[2618849.274] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618849.278] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618849.283] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) +[2618849.287] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) +[2618849.291] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618849.295] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618849.299] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) +[2618849.304] {Default Queue} -> wl_surface#1127.commit() +[2618849.308] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) +[2618849.312] {Default Queue} -> wl_surface#1127.commit() +[2618849.318] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) +[2618849.322] {Default Queue} -> wl_surface#1127.commit() +[2618849.327] {Default Queue} -> wl_region#1183.subtract(0, 0, 2, 2) +[2618849.331] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) +[2618849.335] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) +[2618849.339] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618849.343] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618849.347] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) +[2618849.361] {Default Queue} -> wl_buffer#1181.destroy() +[2618849.369] {Default Queue} -> wl_buffer#1182.destroy() +[2618849.374] {Default Queue} -> wl_shm_pool#1179.destroy() +[2618849.378] {Default Queue} -> wl_shm_pool#1180.destroy() +[2618849.422] {Default Queue} -> wl_shm#1167.create_pool(new id wl_shm_pool#3826, fd 575, 16) +[2618849.429] {Default Queue} -> wl_shm#1167.create_pool(new id wl_shm_pool#3827, fd 578, 16) +[2618849.433] {Default Queue} -> wl_shm_pool#3826.create_buffer(new id wl_buffer#3828, 0, 2, 2, 8, 0) +[2618849.441] {Default Queue} -> wl_shm_pool#3827.create_buffer(new id wl_buffer#3829, 0, 2, 2, 8, 0) +[2618849.451] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) +[2618849.456] {Default Queue} -> wl_surface#1159.commit() +[2618849.461] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) +[2618849.465] {Default Queue} -> wl_surface#1159.commit() +[2618849.472] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) +[2618849.478] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) +[2618849.483] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618849.487] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618849.494] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) +[2618849.498] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) +[2618849.503] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618849.506] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618849.511] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) +[2618849.515] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) +[2618849.519] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618849.523] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618849.527] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) +[2618849.532] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) +[2618849.535] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618849.539] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618849.544] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) +[2618849.548] {Default Queue} -> wl_surface#1159.commit() +[2618849.554] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) +[2618849.558] {Default Queue} -> wl_surface#1159.commit() +[2618850.628] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) +[2618850.641] {Default Queue} -> wl_surface#1159.commit() +[2618850.651] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) +[2618850.656] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) +[2618850.660] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618850.665] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618850.675] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) +[2618850.679] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) +[2618850.683] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618850.687] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618850.692] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) +[2618850.696] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) +[2618850.700] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618850.704] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618850.708] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) +[2618850.712] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) +[2618850.716] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618850.720] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618850.724] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) +[2618850.729] {Default Queue} -> wl_surface#1159.commit() +[2618850.732] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) +[2618850.736] {Default Queue} -> wl_surface#1159.commit() +[2618850.743] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) +[2618850.747] {Default Queue} -> wl_surface#1159.commit() +[2618850.751] {Default Queue} -> wl_region#1215.subtract(0, 0, 2, 2) +[2618850.756] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) +[2618850.760] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) +[2618850.764] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618850.772] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618850.779] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) +[2618850.793] {Default Queue} -> wl_buffer#1213.destroy() +[2618850.798] {Default Queue} -> wl_buffer#1214.destroy() +[2618850.802] {Default Queue} -> wl_shm_pool#1211.destroy() +[2618850.806] {Default Queue} -> wl_shm_pool#1212.destroy() +[2618850.848] {Default Queue} -> wl_shm#1199.create_pool(new id wl_shm_pool#3830, fd 575, 16) +[2618850.855] {Default Queue} -> wl_shm#1199.create_pool(new id wl_shm_pool#3831, fd 578, 16) +[2618850.860] {Default Queue} -> wl_shm_pool#3830.create_buffer(new id wl_buffer#3832, 0, 2, 2, 8, 0) +[2618850.871] {Default Queue} -> wl_shm_pool#3831.create_buffer(new id wl_buffer#3833, 0, 2, 2, 8, 0) +[2618850.878] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) +[2618850.883] {Default Queue} -> wl_surface#1191.commit() +[2618850.888] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) +[2618850.892] {Default Queue} -> wl_surface#1191.commit() +[2618850.900] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) +[2618850.904] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) +[2618850.908] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618850.912] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618850.919] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) +[2618850.924] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) +[2618850.928] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618850.931] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618850.936] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) +[2618850.940] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) +[2618850.945] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618850.948] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618850.953] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) +[2618850.957] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) +[2618850.961] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618850.965] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618850.970] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) +[2618850.974] {Default Queue} -> wl_surface#1191.commit() +[2618850.980] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) +[2618850.984] {Default Queue} -> wl_surface#1191.commit() +[2618852.050] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) +[2618852.064] {Default Queue} -> wl_surface#1191.commit() +[2618852.074] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) +[2618852.079] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) +[2618852.083] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618852.088] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618852.096] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) +[2618852.100] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) +[2618852.104] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618852.108] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618852.112] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) +[2618852.117] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) +[2618852.121] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618852.125] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618852.129] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) +[2618852.133] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) +[2618852.137] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618852.141] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618852.146] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) +[2618852.150] {Default Queue} -> wl_surface#1191.commit() +[2618852.158] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) +[2618852.165] {Default Queue} -> wl_surface#1191.commit() +[2618852.172] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) +[2618852.176] {Default Queue} -> wl_surface#1191.commit() +[2618852.180] {Default Queue} -> wl_region#1247.subtract(0, 0, 2, 2) +[2618852.185] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) +[2618852.189] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) +[2618852.195] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618852.205] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618852.213] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) +[2618852.227] {Default Queue} -> wl_buffer#1245.destroy() +[2618852.233] {Default Queue} -> wl_buffer#1246.destroy() +[2618852.237] {Default Queue} -> wl_shm_pool#1243.destroy() +[2618852.241] {Default Queue} -> wl_shm_pool#1244.destroy() +[2618852.285] {Default Queue} -> wl_shm#1231.create_pool(new id wl_shm_pool#3834, fd 575, 16) +[2618852.292] {Default Queue} -> wl_shm#1231.create_pool(new id wl_shm_pool#3835, fd 578, 16) +[2618852.297] {Default Queue} -> wl_shm_pool#3834.create_buffer(new id wl_buffer#3836, 0, 2, 2, 8, 0) +[2618852.301] {Default Queue} -> wl_shm_pool#3835.create_buffer(new id wl_buffer#3837, 0, 2, 2, 8, 0) +[2618852.308] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) +[2618852.312] {Default Queue} -> wl_surface#1223.commit() +[2618852.317] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) +[2618852.322] {Default Queue} -> wl_surface#1223.commit() +[2618852.333] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) +[2618852.338] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) +[2618852.342] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618852.346] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618852.354] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) +[2618852.358] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) +[2618852.362] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618852.366] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618852.371] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) +[2618852.375] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) +[2618852.379] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618852.382] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618852.387] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) +[2618852.391] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) +[2618852.395] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618852.399] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618852.403] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) +[2618852.407] {Default Queue} -> wl_surface#1223.commit() +[2618852.414] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) +[2618852.418] {Default Queue} -> wl_surface#1223.commit() +[2618853.485] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) +[2618853.498] {Default Queue} -> wl_surface#1223.commit() +[2618853.507] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) +[2618853.512] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) +[2618853.517] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618853.521] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618853.529] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) +[2618853.534] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) +[2618853.539] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618853.544] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618853.548] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) +[2618853.553] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) +[2618853.561] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618853.567] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618853.572] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) +[2618853.576] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) +[2618853.580] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618853.584] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618853.589] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) +[2618853.593] {Default Queue} -> wl_surface#1223.commit() +[2618853.597] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) +[2618853.601] {Default Queue} -> wl_surface#1223.commit() +[2618853.608] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) +[2618853.612] {Default Queue} -> wl_surface#1223.commit() +[2618853.616] {Default Queue} -> wl_region#1087.subtract(0, 0, 16, 2) +[2618853.623] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) +[2618853.629] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) +[2618853.645] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618853.652] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618853.665] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) +[2618853.673] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) +[2618853.679] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618853.684] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618853.690] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) +[2618853.694] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) +[2618853.698] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618853.702] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618853.706] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) +[2618853.710] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) +[2618853.714] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2618853.718] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2618853.724] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) +[2618853.728] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) +[2618853.732] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618853.736] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618853.745] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) +[2618853.749] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) +[2618853.753] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618853.757] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618853.762] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) +[2618853.766] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) +[2618853.770] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618853.774] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618853.779] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) +[2618853.783] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) +[2618853.787] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2618853.791] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2618853.797] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) +[2618853.801] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) +[2618853.805] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618853.808] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618853.814] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) +[2618853.818] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) +[2618853.823] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618853.826] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618853.835] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) +[2618853.842] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) +[2618853.846] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618853.850] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618853.854] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) +[2618853.858] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) +[2618853.863] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2618853.867] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2618853.878] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) +[2618853.883] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) +[2618853.887] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618853.891] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618853.898] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) +[2618853.902] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) +[2618853.906] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618853.910] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618853.915] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) +[2618853.920] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) +[2618853.924] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618853.928] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618853.933] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) +[2618853.937] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) +[2618853.941] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2618853.944] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2618853.949] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) +[2618853.954] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) +[2618853.958] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618853.961] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618853.967] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) +[2618853.971] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) +[2618853.975] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618853.979] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618853.984] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) +[2618853.988] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) +[2618853.991] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618853.995] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618854.000] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) +[2618854.004] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) +[2618854.008] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2618854.012] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2618854.017] {Default Queue} -> wl_surface#1063.damage(0, 0, 16, 2) +[2618854.021] {Default Queue} -> wl_region#1087.subtract(0, 0, 25, 201) +[2618854.025] {Default Queue} -> wl_region#1087.add(-23, -219, 25, 201) +[2618854.029] {Default Queue} -> wl_surface#1063.set_opaque_region(wl_region#1088) +[2618854.033] {Default Queue} -> wl_surface#1063.set_input_region(wl_region#1087) +[2618854.037] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) +[2618854.041] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) +[2618854.045] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) +[2618854.049] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) +[2618854.053] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) +[2618854.057] {Default Queue} -> wl_surface#1063.damage(0, 0, 16, 2) +[2618854.071] {Default Queue} -> wl_buffer#1085.destroy() +[2618854.076] {Default Queue} -> wl_buffer#1086.destroy() +[2618854.080] {Default Queue} -> wl_shm_pool#1083.destroy() +[2618854.087] {Default Queue} -> wl_shm_pool#1084.destroy() +[2618854.131] {Default Queue} -> wl_shm#1071.create_pool(new id wl_shm_pool#3838, fd 575, 128) +[2618854.137] {Default Queue} -> wl_shm#1071.create_pool(new id wl_shm_pool#3839, fd 578, 128) +[2618854.142] {Default Queue} -> wl_shm_pool#3838.create_buffer(new id wl_buffer#3840, 0, 16, 2, 64, 0) +[2618854.147] {Default Queue} -> wl_shm_pool#3839.create_buffer(new id wl_buffer#3841, 0, 16, 2, 64, 0) +[2618854.154] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) +[2618854.158] {Default Queue} -> wl_surface#1063.commit() +[2618854.163] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) +[2618854.168] {Default Queue} -> wl_surface#1063.commit() +[2618854.176] {Default Queue} -> wl_region#1087.subtract(0, 0, 25, 201) +[2618854.180] {Default Queue} -> wl_region#1087.add(-23, -219, 25, 201) +[2618854.184] {Default Queue} -> wl_surface#1063.set_opaque_region(wl_region#1088) +[2618854.188] {Default Queue} -> wl_surface#1063.set_input_region(wl_region#1087) +[2618854.193] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) +[2618854.197] {Default Queue} -> wl_surface#1063.commit() +[2618854.204] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) +[2618854.208] {Default Queue} -> wl_surface#1063.commit() +[2618855.277] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) +[2618855.290] {Default Queue} -> wl_surface#1063.commit() +[2618855.300] {Default Queue} -> wl_region#1087.subtract(0, 0, 25, 201) +[2618855.304] {Default Queue} -> wl_region#1087.add(-23, -219, 25, 201) +[2618855.309] {Default Queue} -> wl_surface#1063.set_opaque_region(wl_region#1088) +[2618855.313] {Default Queue} -> wl_surface#1063.set_input_region(wl_region#1087) +[2618855.318] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) +[2618855.323] {Default Queue} -> wl_surface#1063.commit() +[2618855.327] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) +[2618855.331] {Default Queue} -> wl_surface#1063.commit() +[2618855.337] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) +[2618855.342] {Default Queue} -> wl_surface#1063.commit() +[2618855.347] {Default Queue} -> wl_region#1311.subtract(0, 0, 2, 2) +[2618855.351] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) +[2618855.355] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) +[2618855.360] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2618855.364] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2618855.368] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618855.386] {Default Queue} -> wl_buffer#1309.destroy() +[2618855.391] {Default Queue} -> wl_buffer#1310.destroy() +[2618855.395] {Default Queue} -> wl_shm_pool#1307.destroy() +[2618855.399] {Default Queue} -> wl_shm_pool#1308.destroy() +[2618855.441] {Default Queue} -> wl_shm#1295.create_pool(new id wl_shm_pool#3842, fd 575, 16) +[2618855.448] {Default Queue} -> wl_shm#1295.create_pool(new id wl_shm_pool#3843, fd 578, 16) +[2618855.453] {Default Queue} -> wl_shm_pool#3842.create_buffer(new id wl_buffer#3844, 0, 2, 2, 8, 0) +[2618855.457] {Default Queue} -> wl_shm_pool#3843.create_buffer(new id wl_buffer#3845, 0, 2, 2, 8, 0) +[2618855.464] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) +[2618855.468] {Default Queue} -> wl_surface#1287.commit() +[2618855.473] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) +[2618855.477] {Default Queue} -> wl_surface#1287.commit() +[2618855.486] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) +[2618855.491] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) +[2618855.495] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2618855.499] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2618855.610] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) +[2618855.615] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) +[2618855.619] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2618855.628] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2618855.637] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618855.641] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618855.749] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) +[2618855.760] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) +[2618855.765] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2618855.770] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2618855.779] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618855.783] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618855.788] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) +[2618855.793] {Default Queue} -> wl_surface#1287.commit() +[2618855.799] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) +[2618855.804] {Default Queue} -> wl_surface#1287.commit() +[2618856.873] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) +[2618856.886] {Default Queue} -> wl_surface#1287.commit() +[2618856.897] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) +[2618856.902] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) +[2618856.907] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2618856.911] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2618857.013] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) +[2618857.019] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) +[2618857.024] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2618857.028] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2618857.034] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618857.038] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618857.110] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) +[2618857.115] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) +[2618857.120] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2618857.124] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2618857.129] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618857.133] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618857.138] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) +[2618857.142] {Default Queue} -> wl_surface#1287.commit() +[2618857.146] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) +[2618857.150] {Default Queue} -> wl_surface#1287.commit() +[2618857.159] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) +[2618857.163] {Default Queue} -> wl_surface#1287.commit() +[2618857.167] {Default Queue} -> wl_region#1343.subtract(0, 0, 2, 2) +[2618857.172] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) +[2618857.176] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) +[2618857.180] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2618857.184] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2618857.188] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618857.204] {Default Queue} -> wl_buffer#1341.destroy() +[2618857.209] {Default Queue} -> wl_buffer#1342.destroy() +[2618857.213] {Default Queue} -> wl_shm_pool#1339.destroy() +[2618857.217] {Default Queue} -> wl_shm_pool#1340.destroy() +[2618857.264] {Default Queue} -> wl_shm#1327.create_pool(new id wl_shm_pool#3846, fd 575, 16) +[2618857.279] {Default Queue} -> wl_shm#1327.create_pool(new id wl_shm_pool#3847, fd 578, 16) +[2618857.287] {Default Queue} -> wl_shm_pool#3846.create_buffer(new id wl_buffer#3848, 0, 2, 2, 8, 0) +[2618857.297] {Default Queue} -> wl_shm_pool#3847.create_buffer(new id wl_buffer#3849, 0, 2, 2, 8, 0) +[2618857.308] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) +[2618857.315] {Default Queue} -> wl_surface#1319.commit() +[2618857.321] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) +[2618857.325] {Default Queue} -> wl_surface#1319.commit() +[2618857.335] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) +[2618857.345] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) +[2618857.352] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2618857.357] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2618857.452] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) +[2618857.457] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) +[2618857.462] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2618857.466] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2618857.472] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618857.476] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618857.549] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) +[2618857.555] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) +[2618857.559] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2618857.563] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2618857.568] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618857.573] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618857.578] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) +[2618857.583] {Default Queue} -> wl_surface#1319.commit() +[2618857.589] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) +[2618857.593] {Default Queue} -> wl_surface#1319.commit() +[2618858.628] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) +[2618858.642] {Default Queue} -> wl_surface#1319.commit() +[2618858.653] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) +[2618858.659] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) +[2618858.663] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2618858.668] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2618858.778] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) +[2618858.783] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) +[2618858.788] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2618858.792] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2618858.799] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618858.803] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618858.885] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) +[2618858.890] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) +[2618858.894] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2618858.898] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2618858.903] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618858.907] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618858.912] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) +[2618858.916] {Default Queue} -> wl_surface#1319.commit() +[2618858.920] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) +[2618858.924] {Default Queue} -> wl_surface#1319.commit() +[2618858.930] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) +[2618858.934] {Default Queue} -> wl_surface#1319.commit() +[2618858.939] {Default Queue} -> wl_region#1375.subtract(0, 0, 2, 2) +[2618858.943] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) +[2618858.947] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) +[2618858.951] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2618858.955] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2618858.959] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618858.973] {Default Queue} -> wl_buffer#1373.destroy() +[2618858.978] {Default Queue} -> wl_buffer#1374.destroy() +[2618858.982] {Default Queue} -> wl_shm_pool#1371.destroy() +[2618858.986] {Default Queue} -> wl_shm_pool#1372.destroy() +[2618859.029] {Default Queue} -> wl_shm#1359.create_pool(new id wl_shm_pool#3850, fd 575, 16) +[2618859.036] {Default Queue} -> wl_shm#1359.create_pool(new id wl_shm_pool#3851, fd 578, 16) +[2618859.045] {Default Queue} -> wl_shm_pool#3850.create_buffer(new id wl_buffer#3852, 0, 2, 2, 8, 0) +[2618859.053] {Default Queue} -> wl_shm_pool#3851.create_buffer(new id wl_buffer#3853, 0, 2, 2, 8, 0) +[2618859.059] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) +[2618859.064] {Default Queue} -> wl_surface#1351.commit() +[2618859.069] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) +[2618859.073] {Default Queue} -> wl_surface#1351.commit() +[2618859.082] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) +[2618859.087] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) +[2618859.091] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2618859.095] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2618859.193] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) +[2618859.199] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) +[2618859.203] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2618859.207] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2618859.212] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618859.217] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618859.332] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) +[2618859.347] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) +[2618859.353] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2618859.357] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2618859.365] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618859.370] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618859.376] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) +[2618859.380] {Default Queue} -> wl_surface#1351.commit() +[2618859.387] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) +[2618859.391] {Default Queue} -> wl_surface#1351.commit() +[2618860.458] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) +[2618860.470] {Default Queue} -> wl_surface#1351.commit() +[2618860.480] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) +[2618860.485] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) +[2618860.490] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2618860.494] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2618860.587] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) +[2618860.593] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) +[2618860.597] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2618860.601] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2618860.607] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618860.611] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618860.690] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) +[2618860.695] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) +[2618860.699] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2618860.703] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2618860.708] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618860.712] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618860.717] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) +[2618860.721] {Default Queue} -> wl_surface#1351.commit() +[2618860.725] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) +[2618860.730] {Default Queue} -> wl_surface#1351.commit() +[2618860.736] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) +[2618860.740] {Default Queue} -> wl_surface#1351.commit() +[2618860.745] {Default Queue} -> wl_region#1407.subtract(0, 0, 2, 2) +[2618860.749] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) +[2618860.753] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) +[2618860.758] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2618860.762] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2618860.770] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618860.788] {Default Queue} -> wl_buffer#1405.destroy() +[2618860.793] {Default Queue} -> wl_buffer#1406.destroy() +[2618860.797] {Default Queue} -> wl_shm_pool#1403.destroy() +[2618860.801] {Default Queue} -> wl_shm_pool#1404.destroy() +[2618860.842] {Default Queue} -> wl_shm#1391.create_pool(new id wl_shm_pool#3854, fd 575, 16) +[2618860.849] {Default Queue} -> wl_shm#1391.create_pool(new id wl_shm_pool#3855, fd 578, 16) +[2618860.854] {Default Queue} -> wl_shm_pool#3854.create_buffer(new id wl_buffer#3856, 0, 2, 2, 8, 0) +[2618860.858] {Default Queue} -> wl_shm_pool#3855.create_buffer(new id wl_buffer#3857, 0, 2, 2, 8, 0) +[2618860.874] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) +[2618860.878] {Default Queue} -> wl_surface#1383.commit() +[2618860.884] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) +[2618860.888] {Default Queue} -> wl_surface#1383.commit() +[2618860.897] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) +[2618860.901] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) +[2618860.906] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2618860.910] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2618861.002] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) +[2618861.009] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) +[2618861.013] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2618861.017] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2618861.023] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618861.027] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618861.097] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) +[2618861.102] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) +[2618861.106] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2618861.110] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2618861.115] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618861.119] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618861.124] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) +[2618861.128] {Default Queue} -> wl_surface#1383.commit() +[2618861.134] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) +[2618861.138] {Default Queue} -> wl_surface#1383.commit() +[2618862.205] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) +[2618862.219] {Default Queue} -> wl_surface#1383.commit() +[2618862.230] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) +[2618862.235] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) +[2618862.239] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2618862.243] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2618862.351] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) +[2618862.361] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) +[2618862.367] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2618862.371] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2618862.378] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618862.383] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618862.452] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) +[2618862.458] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) +[2618862.462] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2618862.466] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2618862.471] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618862.476] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618862.481] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) +[2618862.485] {Default Queue} -> wl_surface#1383.commit() +[2618862.489] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) +[2618862.493] {Default Queue} -> wl_surface#1383.commit() +[2618862.504] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) +[2618862.511] {Default Queue} -> wl_surface#1383.commit() +[2618862.515] {Default Queue} -> wl_region#1439.subtract(0, 0, 2, 2) +[2618862.520] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) +[2618862.524] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) +[2618862.528] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2618862.532] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2618862.536] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618862.549] {Default Queue} -> wl_buffer#1437.destroy() +[2618862.554] {Default Queue} -> wl_buffer#1438.destroy() +[2618862.558] {Default Queue} -> wl_shm_pool#1435.destroy() +[2618862.563] {Default Queue} -> wl_shm_pool#1436.destroy() +[2618862.605] {Default Queue} -> wl_shm#1423.create_pool(new id wl_shm_pool#3858, fd 575, 16) +[2618862.612] {Default Queue} -> wl_shm#1423.create_pool(new id wl_shm_pool#3859, fd 578, 16) +[2618862.617] {Default Queue} -> wl_shm_pool#3858.create_buffer(new id wl_buffer#3860, 0, 2, 2, 8, 0) +[2618862.621] {Default Queue} -> wl_shm_pool#3859.create_buffer(new id wl_buffer#3861, 0, 2, 2, 8, 0) +[2618862.628] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) +[2618862.632] {Default Queue} -> wl_surface#1415.commit() +[2618862.637] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) +[2618862.641] {Default Queue} -> wl_surface#1415.commit() +[2618862.651] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) +[2618862.656] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) +[2618862.660] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2618862.665] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2618862.755] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) +[2618862.760] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) +[2618862.764] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2618862.769] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2618862.774] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618862.778] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618862.853] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) +[2618862.857] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) +[2618862.868] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2618862.873] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2618862.877] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618862.882] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618862.887] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) +[2618862.891] {Default Queue} -> wl_surface#1415.commit() +[2618862.897] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) +[2618862.901] {Default Queue} -> wl_surface#1415.commit() +[2618863.970] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) +[2618863.983] {Default Queue} -> wl_surface#1415.commit() +[2618863.993] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) +[2618863.999] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) +[2618864.004] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2618864.008] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2618864.103] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) +[2618864.108] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) +[2618864.112] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2618864.116] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2618864.122] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618864.126] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618864.198] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) +[2618864.203] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) +[2618864.207] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2618864.215] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2618864.223] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618864.227] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618864.232] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) +[2618864.236] {Default Queue} -> wl_surface#1415.commit() +[2618864.240] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) +[2618864.244] {Default Queue} -> wl_surface#1415.commit() +[2618864.251] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) +[2618864.255] {Default Queue} -> wl_surface#1415.commit() +[2618864.259] {Default Queue} -> wl_region#1279.subtract(0, 0, 2, 2) +[2618864.266] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) +[2618864.270] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) +[2618864.274] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2618864.278] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2618864.357] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) +[2618864.362] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) +[2618864.366] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2618864.370] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2618864.375] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618864.379] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618864.462] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) +[2618864.473] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) +[2618864.478] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2618864.482] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2618864.489] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618864.494] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618864.501] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) +[2618864.505] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) +[2618864.509] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2618864.513] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2618864.597] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) +[2618864.602] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) +[2618864.606] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2618864.610] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2618864.615] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618864.619] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618864.689] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) +[2618864.694] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) +[2618864.699] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2618864.703] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2618864.707] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618864.711] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618864.718] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) +[2618864.722] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) +[2618864.726] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2618864.730] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2618864.814] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) +[2618864.820] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) +[2618864.824] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2618864.829] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2618864.833] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618864.837] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618864.915] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) +[2618864.920] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) +[2618864.925] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2618864.938] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2618864.945] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618864.949] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618864.956] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) +[2618864.960] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) +[2618864.964] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2618864.968] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2618865.048] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) +[2618865.053] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) +[2618865.057] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2618865.061] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2618865.066] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618865.071] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618865.139] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) +[2618865.144] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) +[2618865.149] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2618865.152] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2618865.157] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618865.161] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618865.168] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) +[2618865.172] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) +[2618865.176] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2618865.180] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2618865.260] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) +[2618865.267] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) +[2618865.271] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2618865.275] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2618865.281] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618865.285] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618865.353] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) +[2618865.360] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) +[2618865.371] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2618865.380] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2618865.390] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618865.399] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618865.408] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618865.414] {Default Queue} -> wl_region#1279.subtract(0, 0, 25, 221) +[2618865.420] {Default Queue} -> wl_region#1279.add(-23, -239, 7, 221) +[2618865.424] {Default Queue} -> wl_surface#1255.set_opaque_region(wl_region#1280) +[2618865.428] {Default Queue} -> wl_surface#1255.set_input_region(wl_region#1279) +[2618865.432] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618865.436] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618865.440] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618865.444] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618865.449] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618865.456] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618865.478] {Default Queue} -> wl_buffer#1277.destroy() +[2618865.484] {Default Queue} -> wl_buffer#1278.destroy() +[2618865.489] {Default Queue} -> wl_shm_pool#1275.destroy() +[2618865.493] {Default Queue} -> wl_shm_pool#1276.destroy() +[2618865.536] {Default Queue} -> wl_shm#1263.create_pool(new id wl_shm_pool#3862, fd 575, 16) +[2618865.543] {Default Queue} -> wl_shm#1263.create_pool(new id wl_shm_pool#3863, fd 578, 16) +[2618865.548] {Default Queue} -> wl_shm_pool#3862.create_buffer(new id wl_buffer#3864, 0, 2, 2, 8, 0) +[2618865.552] {Default Queue} -> wl_shm_pool#3863.create_buffer(new id wl_buffer#3865, 0, 2, 2, 8, 0) +[2618865.563] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) +[2618865.570] {Default Queue} -> wl_surface#1255.commit() +[2618865.575] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) +[2618865.579] {Default Queue} -> wl_surface#1255.commit() +[2618865.588] {Default Queue} -> wl_region#1279.subtract(0, 0, 25, 221) +[2618865.593] {Default Queue} -> wl_region#1279.add(-23, -239, 7, 221) +[2618865.599] {Default Queue} -> wl_surface#1255.set_opaque_region(wl_region#1280) +[2618865.603] {Default Queue} -> wl_surface#1255.set_input_region(wl_region#1279) +[2618865.608] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) +[2618865.612] {Default Queue} -> wl_surface#1255.commit() +[2618865.618] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) +[2618865.622] {Default Queue} -> wl_surface#1255.commit() +[2618866.690] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) +[2618866.703] {Default Queue} -> wl_surface#1255.commit() +[2618866.713] {Default Queue} -> wl_region#1279.subtract(0, 0, 25, 221) +[2618866.719] {Default Queue} -> wl_region#1279.add(-23, -239, 7, 221) +[2618866.724] {Default Queue} -> wl_surface#1255.set_opaque_region(wl_region#1280) +[2618866.728] {Default Queue} -> wl_surface#1255.set_input_region(wl_region#1279) +[2618866.733] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) +[2618866.737] {Default Queue} -> wl_surface#1255.commit() +[2618866.741] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) +[2618866.745] {Default Queue} -> wl_surface#1255.commit() +[2618866.752] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) +[2618866.756] {Default Queue} -> wl_surface#1255.commit() +[2618866.763] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) +[2618866.768] {Default Queue} -> wl_surface#1031.commit() +[2618867.836] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) +[2618867.851] {Default Queue} -> wl_surface#1031.commit() +[2618867.866] {Default Queue} -> wl_region#1055.subtract(0, 0, 25, 201) +[2618867.871] {Default Queue} -> wl_region#1055.add(-23, -219, 25, 201) +[2618867.875] {Default Queue} -> wl_surface#1031.set_opaque_region(wl_region#1056) +[2618867.880] {Default Queue} -> wl_surface#1031.set_input_region(wl_region#1055) +[2618867.885] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) +[2618867.889] {Default Queue} -> wl_surface#1031.commit() +[2618867.893] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) +[2618867.897] {Default Queue} -> wl_surface#1031.commit() +[2618867.903] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) +[2618867.907] {Default Queue} -> wl_surface#1031.commit() +[2618867.911] {Default Queue} -> wl_region#1023.subtract(0, 0, 2, 2) +[2618867.917] {Default Queue} -> wl_region#1055.subtract(0, 0, 2, 2) +[2618867.922] {Default Queue} -> wl_subsurface#1050.set_position(1, 1) +[2618867.926] {Default Queue} -> wl_region#1055.subtract(0, 0, 26, 202) +[2618867.930] {Default Queue} -> wl_region#1055.add(-23, -219, 25, 201) +[2618867.934] {Default Queue} -> wl_surface#1031.set_opaque_region(wl_region#1056) +[2618867.938] {Default Queue} -> wl_surface#1031.set_input_region(wl_region#1055) +[2618867.942] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) +[2618867.946] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) +[2618867.950] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) +[2618867.954] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) +[2618867.958] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) +[2618867.962] {Default Queue} -> wl_surface#1063.damage(0, 0, 16, 2) +[2618867.967] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618867.971] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618867.975] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618867.979] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618867.983] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618867.986] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618867.997] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2618868.004] {Default Queue} -> wl_region#1055.subtract(0, 0, 25, 221) +[2618868.008] {Default Queue} -> wl_region#1055.add(-23, -239, 24, 220) +[2618868.012] {Default Queue} -> wl_surface#1031.set_opaque_region(wl_region#1056) +[2618868.016] {Default Queue} -> wl_surface#1031.set_input_region(wl_region#1055) +[2618868.021] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) +[2618868.025] {Default Queue} -> wl_surface#1031.commit() +[2618868.031] {Default Queue} -> wl_region#1055.subtract(0, 0, 25, 221) +[2618868.035] {Default Queue} -> wl_region#1055.add(-23, -239, 24, 220) +[2618868.039] {Default Queue} -> wl_surface#1031.set_opaque_region(wl_region#1056) +[2618868.043] {Default Queue} -> wl_surface#1031.set_input_region(wl_region#1055) +[2618868.047] {Default Queue} -> wl_region#1023.subtract(0, 0, 25, 221) +[2618868.051] {Default Queue} -> wl_region#1023.add(-23, -219, 25, 201) +[2618868.055] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) +[2618868.061] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) +[2618868.071] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) +[2618868.079] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) +[2618868.084] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) +[2618868.088] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) +[2618868.092] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) +[2618868.096] {Default Queue} -> wl_surface#1063.damage(0, 0, 16, 2) +[2618868.100] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618868.104] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618868.108] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618868.112] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618868.116] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618868.121] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618868.125] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2618868.128] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) +[2618868.143] {Default Queue} -> wl_buffer#1021.destroy() +[2618868.148] {Default Queue} -> wl_buffer#1022.destroy() +[2618868.152] {Default Queue} -> wl_shm_pool#1019.destroy() +[2618868.156] {Default Queue} -> wl_shm_pool#1020.destroy() +[2618868.199] {Default Queue} -> wl_shm#1007.create_pool(new id wl_shm_pool#3866, fd 575, 16) +[2618868.206] {Default Queue} -> wl_shm#1007.create_pool(new id wl_shm_pool#3867, fd 578, 16) +[2618868.211] {Default Queue} -> wl_shm_pool#3866.create_buffer(new id wl_buffer#3868, 0, 2, 2, 8, 0) +[2618868.215] {Default Queue} -> wl_shm_pool#3867.create_buffer(new id wl_buffer#3869, 0, 2, 2, 8, 0) +[2618868.223] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) +[2618868.227] {Default Queue} -> wl_surface#999.commit() +[2618868.232] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) +[2618868.237] {Default Queue} -> wl_surface#999.commit() +[2618868.245] {Default Queue} -> wl_region#1023.subtract(0, 0, 25, 221) +[2618868.250] {Default Queue} -> wl_region#1023.add(-23, -219, 25, 201) +[2618868.254] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) +[2618868.258] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) +[2618868.264] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) +[2618868.268] {Default Queue} -> wl_surface#999.commit() +[2618868.274] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) +[2618868.278] {Default Queue} -> wl_surface#999.commit() +[2618869.344] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) +[2618869.356] {Default Queue} -> wl_surface#999.commit() +[2618869.365] {Default Queue} -> wl_region#1023.subtract(0, 0, 25, 221) +[2618869.370] {Default Queue} -> wl_region#1023.add(-23, -219, 25, 201) +[2618869.374] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) +[2618869.379] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) +[2618869.384] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) +[2618869.393] {Default Queue} -> wl_surface#999.commit() +[2618869.400] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) +[2618869.404] {Default Queue} -> wl_surface#999.commit() +[2618869.411] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) +[2618869.421] {Default Queue} -> wl_surface#999.commit() +[2618869.436] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) +[2618869.445] {Default Queue} -> wl_surface#935.commit() +[2618870.513] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) +[2618870.525] {Default Queue} -> wl_surface#935.commit() +[2618870.535] {Default Queue} -> wl_region#959.subtract(0, 0, 25, 221) +[2618870.540] {Default Queue} -> wl_region#959.add(-20, -216, 22, 218) +[2618870.544] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) +[2618870.548] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) +[2618870.554] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) +[2618870.559] {Default Queue} -> wl_surface#935.commit() +[2618870.563] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) +[2618870.566] {Default Queue} -> wl_surface#935.commit() +[2618870.573] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) +[2618870.577] {Default Queue} -> wl_surface#935.commit() +[2618870.581] {Default Queue} -> wl_region#927.subtract(0, 0, 115, 167) +[2618870.588] {Default Queue} -> wl_region#959.subtract(0, 0, 2, 2) +[2618870.593] {Default Queue} -> wl_subsurface#954.set_position(3, 3) +[2618870.597] {Default Queue} -> wl_region#959.subtract(0, 0, 25, 221) +[2618870.601] {Default Queue} -> wl_region#959.add(-20, -216, 22, 218) +[2618870.605] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) +[2618870.608] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) +[2618870.613] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2618870.617] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) +[2618870.621] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) +[2618870.625] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) +[2618870.629] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) +[2618870.633] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) +[2618870.637] {Default Queue} -> wl_surface#1063.damage(0, 0, 16, 2) +[2618870.641] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618870.645] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618870.649] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618870.653] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618870.657] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618870.661] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618870.665] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2618870.669] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) +[2618870.673] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) +[2618870.679] {Default Queue} -> wl_region#959.subtract(0, 0, 25, 221) +[2618870.683] {Default Queue} -> wl_region#959.add(-20, -216, 22, 218) +[2618870.687] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) +[2618870.691] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) +[2618870.695] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) +[2618870.699] {Default Queue} -> wl_surface#935.commit() +[2618870.704] {Default Queue} -> wl_region#959.subtract(0, 0, 132, 380) +[2618870.708] {Default Queue} -> wl_region#959.add(-20, -216, 129, 377) +[2618870.712] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) +[2618870.716] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) +[2618870.721] {Default Queue} -> wl_region#927.subtract(0, 0, 22, 51) +[2618870.724] {Default Queue} -> wl_region#927.add(-20, -49, 22, 51) +[2618870.729] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618870.732] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618870.736] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2618870.746] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) +[2618870.756] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) +[2618870.760] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) +[2618870.764] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) +[2618870.768] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) +[2618870.772] {Default Queue} -> wl_surface#1063.damage(0, 0, 16, 2) +[2618870.776] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618870.780] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618870.784] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618870.788] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618870.791] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618870.795] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618870.800] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2618870.804] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) +[2618870.808] {Default Queue} -> wl_surface#935.damage(0, 0, 109, 161) +[2618870.812] {Default Queue} -> wl_surface#903.damage(0, 0, 115, 167) +[2618870.824] {Default Queue} -> wl_buffer#925.destroy() +[2618870.830] {Default Queue} -> wl_buffer#926.destroy() +[2618870.834] {Default Queue} -> wl_shm_pool#923.destroy() +[2618870.838] {Default Queue} -> wl_shm_pool#924.destroy() +[2618870.932] {Default Queue} -> wl_shm#911.create_pool(new id wl_shm_pool#3870, fd 575, 76820) +[2618870.940] {Default Queue} -> wl_shm#911.create_pool(new id wl_shm_pool#3871, fd 578, 76820) +[2618870.944] {Default Queue} -> wl_shm_pool#3870.create_buffer(new id wl_buffer#3872, 0, 115, 167, 460, 0) +[2618870.949] {Default Queue} -> wl_shm_pool#3871.create_buffer(new id wl_buffer#3873, 0, 115, 167, 460, 0) +[2618870.973] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) +[2618870.978] {Default Queue} -> wl_surface#903.commit() +[2618871.000] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) +[2618871.005] {Default Queue} -> wl_surface#903.commit() +[2618871.015] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) +[2618871.020] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) +[2618871.025] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618871.029] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618871.037] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) +[2618871.041] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) +[2618871.046] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618871.050] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618871.056] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) +[2618871.060] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) +[2618871.064] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618871.068] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618871.073] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) +[2618871.078] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) +[2618871.082] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618871.086] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618871.093] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) +[2618871.097] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) +[2618871.101] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618871.104] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618871.111] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) +[2618871.115] {Default Queue} -> wl_surface#903.commit() +[2618871.123] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) +[2618871.127] {Default Queue} -> wl_surface#903.commit() +[2618872.197] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) +[2618872.209] {Default Queue} -> wl_surface#903.commit() +[2618872.222] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) +[2618872.227] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) +[2618872.236] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618872.243] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618872.251] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) +[2618872.255] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) +[2618872.260] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618872.263] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618872.269] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) +[2618872.273] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) +[2618872.278] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618872.282] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618872.287] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) +[2618872.291] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) +[2618872.297] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618872.300] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618872.307] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) +[2618872.313] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) +[2618872.324] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618872.332] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618872.341] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) +[2618872.347] {Default Queue} -> wl_surface#903.commit() +[2618872.352] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) +[2618872.356] {Default Queue} -> wl_surface#903.commit() +[2618872.364] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) +[2618872.368] {Default Queue} -> wl_surface#903.commit() +[2618872.373] {Default Queue} -> wl_region#1535.subtract(0, 0, 2, 20) +[2618872.378] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 218) +[2618872.382] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 218) +[2618872.387] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2618872.392] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2618872.401] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2618872.415] {Default Queue} -> wl_buffer#1533.destroy() +[2618872.421] {Default Queue} -> wl_buffer#1534.destroy() +[2618872.425] {Default Queue} -> wl_shm_pool#1531.destroy() +[2618872.430] {Default Queue} -> wl_shm_pool#1532.destroy() +[2618872.477] {Default Queue} -> wl_shm#1519.create_pool(new id wl_shm_pool#3874, fd 575, 160) +[2618872.483] {Default Queue} -> wl_shm#1519.create_pool(new id wl_shm_pool#3875, fd 578, 160) +[2618872.488] {Default Queue} -> wl_shm_pool#3874.create_buffer(new id wl_buffer#3876, 0, 2, 20, 8, 0) +[2618872.492] {Default Queue} -> wl_shm_pool#3875.create_buffer(new id wl_buffer#3877, 0, 2, 20, 8, 0) +[2618872.499] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) +[2618872.503] {Default Queue} -> wl_surface#1511.commit() +[2618872.508] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) +[2618872.512] {Default Queue} -> wl_surface#1511.commit() +[2618872.521] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 218) +[2618872.526] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 218) +[2618872.530] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2618872.534] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2618872.630] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 218) +[2618872.635] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 218) +[2618872.639] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2618872.643] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2618872.649] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2618872.653] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2618872.723] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 218) +[2618872.728] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 218) +[2618872.737] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2618872.743] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2618872.750] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2618872.754] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2618872.759] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) +[2618872.763] {Default Queue} -> wl_surface#1511.commit() +[2618872.769] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) +[2618872.773] {Default Queue} -> wl_surface#1511.commit() +[2618873.844] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) +[2618873.856] {Default Queue} -> wl_surface#1511.commit() +[2618873.875] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 218) +[2618873.881] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 218) +[2618873.891] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2618873.900] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2618873.998] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 218) +[2618874.004] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 218) +[2618874.009] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2618874.013] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2618874.019] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2618874.024] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2618874.088] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 218) +[2618874.093] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 218) +[2618874.098] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2618874.101] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2618874.108] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2618874.112] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2618874.117] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) +[2618874.121] {Default Queue} -> wl_surface#1511.commit() +[2618874.125] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) +[2618874.129] {Default Queue} -> wl_surface#1511.commit() +[2618874.135] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) +[2618874.139] {Default Queue} -> wl_surface#1511.commit() +[2618874.145] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) +[2618874.150] {Default Queue} -> wl_surface#1575.commit() +[2618875.213] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) +[2618875.223] {Default Queue} -> wl_surface#1575.commit() +[2618875.233] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) +[2618875.238] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) +[2618875.243] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.247] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.254] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) +[2618875.258] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) +[2618875.262] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.266] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.271] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) +[2618875.275] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) +[2618875.279] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.282] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.287] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) +[2618875.291] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) +[2618875.295] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.299] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.304] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) +[2618875.308] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) +[2618875.312] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.320] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.372] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) +[2618875.377] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) +[2618875.381] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.385] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.391] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618875.395] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618875.404] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) +[2618875.409] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) +[2618875.413] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.417] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.422] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) +[2618875.426] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) +[2618875.430] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.434] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.438] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) +[2618875.442] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) +[2618875.446] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.450] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.455] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) +[2618875.459] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) +[2618875.463] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.466] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.474] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) +[2618875.478] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) +[2618875.482] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.486] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.491] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) +[2618875.501] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) +[2618875.511] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.518] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.527] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) +[2618875.533] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) +[2618875.539] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.545] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.550] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) +[2618875.554] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) +[2618875.559] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.562] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.567] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) +[2618875.572] {Default Queue} -> wl_surface#1575.commit() +[2618875.575] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) +[2618875.579] {Default Queue} -> wl_surface#1575.commit() +[2618875.586] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) +[2618875.590] {Default Queue} -> wl_surface#1575.commit() +[2618875.594] {Default Queue} -> wl_region#1567.subtract(0, 0, 2, 2) +[2618875.600] {Default Queue} -> wl_region#1599.subtract(0, 0, 2, 2) +[2618875.604] {Default Queue} -> wl_subsurface#1594.set_position(1, -11) +[2618875.608] {Default Queue} -> wl_region#1599.subtract(0, 0, 141, 212) +[2618875.612] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) +[2618875.616] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.620] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.623] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618875.635] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618875.642] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618875.646] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.650] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.656] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618875.661] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618875.665] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.668] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.673] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618875.677] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618875.681] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.685] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.689] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618875.693] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618875.697] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.701] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.705] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618875.709] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618875.713] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.717] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.761] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618875.767] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618875.772] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.776] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.782] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618875.786] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618875.795] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618875.800] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618875.804] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.808] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.812] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618875.816] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618875.820] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.824] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.829] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618875.833] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618875.837] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.840] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.845] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618875.849] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618875.853] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.857] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.869] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618875.874] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618875.878] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.882] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.886] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618875.890] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618875.894] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.898] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.902] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618875.907] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618875.925] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.937] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.946] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618875.952] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618875.958] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.963] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.969] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) +[2618875.973] {Default Queue} -> wl_surface#1575.commit() +[2618875.980] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618875.984] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618875.988] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618875.992] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618875.999] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618876.003] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618876.007] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618876.011] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618876.015] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618876.019] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618876.023] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618876.027] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618876.031] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618876.035] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618876.039] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618876.043] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618876.047] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618876.052] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618876.055] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618876.059] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618876.100] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618876.105] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618876.109] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618876.113] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618876.119] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618876.123] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618876.132] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618876.137] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618876.141] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618876.145] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618876.150] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618876.154] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618876.158] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618876.161] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618876.166] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618876.170] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618876.174] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618876.178] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618876.183] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618876.187] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618876.191] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618876.195] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618876.201] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618876.205] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618876.212] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618876.218] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618876.223] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618876.227] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618876.231] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618876.235] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618876.239] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618876.243] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618876.247] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618876.251] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618876.256] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2618876.260] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2618876.264] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2618876.267] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2618876.271] {Default Queue} -> wl_region#1567.subtract(0, 0, 140, 221) +[2618876.276] {Default Queue} -> wl_region#1567.add(-138, -219, 140, 201) +[2618876.280] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) +[2618876.284] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) +[2618876.288] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618876.291] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) +[2618876.305] {Default Queue} -> wl_buffer#1565.destroy() +[2618876.310] {Default Queue} -> wl_buffer#1566.destroy() +[2618876.315] {Default Queue} -> wl_shm_pool#1563.destroy() +[2618876.319] {Default Queue} -> wl_shm_pool#1564.destroy() +[2618876.360] {Default Queue} -> wl_shm#1551.create_pool(new id wl_shm_pool#3878, fd 575, 16) +[2618876.366] {Default Queue} -> wl_shm#1551.create_pool(new id wl_shm_pool#3879, fd 578, 16) +[2618876.371] {Default Queue} -> wl_shm_pool#3878.create_buffer(new id wl_buffer#3880, 0, 2, 2, 8, 0) +[2618876.375] {Default Queue} -> wl_shm_pool#3879.create_buffer(new id wl_buffer#3881, 0, 2, 2, 8, 0) +[2618876.382] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) +[2618876.386] {Default Queue} -> wl_surface#1543.commit() +[2618876.391] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) +[2618876.395] {Default Queue} -> wl_surface#1543.commit() +[2618876.402] {Default Queue} -> wl_region#1567.subtract(0, 0, 140, 221) +[2618876.406] {Default Queue} -> wl_region#1567.add(-138, -219, 140, 201) +[2618876.410] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) +[2618876.415] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) +[2618876.419] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) +[2618876.423] {Default Queue} -> wl_surface#1543.commit() +[2618876.430] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) +[2618876.434] {Default Queue} -> wl_surface#1543.commit() +[2618877.498] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) +[2618877.504] {Default Queue} -> wl_surface#1543.commit() +[2618877.509] {Default Queue} -> wl_region#1567.subtract(0, 0, 140, 221) +[2618877.514] {Default Queue} -> wl_region#1567.add(-138, -219, 140, 201) +[2618877.519] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) +[2618877.527] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) +[2618877.539] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) +[2618877.546] {Default Queue} -> wl_surface#1543.commit() +[2618877.552] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) +[2618877.558] {Default Queue} -> wl_surface#1543.commit() +[2618877.567] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) +[2618877.573] {Default Queue} -> wl_surface#1543.commit() +[2618877.580] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) +[2618877.585] {Default Queue} -> wl_surface#1479.commit() +[2618878.650] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) +[2618878.666] {Default Queue} -> wl_surface#1479.commit() +[2618878.677] {Default Queue} -> wl_region#1503.subtract(0, 0, 140, 221) +[2618878.682] {Default Queue} -> wl_region#1503.add(-135, -216, 137, 218) +[2618878.686] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) +[2618878.690] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) +[2618878.696] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) +[2618878.700] {Default Queue} -> wl_surface#1479.commit() +[2618878.704] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) +[2618878.708] {Default Queue} -> wl_surface#1479.commit() +[2618878.714] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) +[2618878.718] {Default Queue} -> wl_surface#1479.commit() +[2618878.722] {Default Queue} -> wl_region#1471.subtract(0, 0, 115, 167) +[2618878.728] {Default Queue} -> wl_region#1503.subtract(0, 0, 2, 2) +[2618878.733] {Default Queue} -> wl_subsurface#1498.set_position(3, 3) +[2618878.737] {Default Queue} -> wl_region#1503.subtract(0, 0, 140, 221) +[2618878.741] {Default Queue} -> wl_region#1503.add(-135, -216, 137, 218) +[2618878.745] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) +[2618878.749] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) +[2618878.753] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2618878.757] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618878.761] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) +[2618878.765] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) +[2618878.770] {Default Queue} -> wl_region#1503.subtract(0, 0, 140, 221) +[2618878.774] {Default Queue} -> wl_region#1503.add(-135, -216, 137, 218) +[2618878.778] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) +[2618878.782] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) +[2618878.786] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) +[2618878.790] {Default Queue} -> wl_surface#1479.commit() +[2618878.795] {Default Queue} -> wl_region#1503.subtract(0, 0, 247, 380) +[2618878.799] {Default Queue} -> wl_region#1503.add(-135, -216, 244, 377) +[2618878.803] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) +[2618878.807] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) +[2618878.812] {Default Queue} -> wl_region#1471.subtract(0, 0, 137, 218) +[2618878.816] {Default Queue} -> wl_region#1471.add(-20, -216, 22, 218) +[2618878.820] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618878.823] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618878.827] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2618878.832] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618878.836] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) +[2618878.839] {Default Queue} -> wl_surface#1479.damage(0, 0, 109, 161) +[2618878.843] {Default Queue} -> wl_surface#1447.damage(0, 0, 115, 167) +[2618878.860] {Default Queue} -> wl_buffer#1469.destroy() +[2618878.873] {Default Queue} -> wl_buffer#1470.destroy() +[2618878.877] {Default Queue} -> wl_shm_pool#1467.destroy() +[2618878.880] {Default Queue} -> wl_shm_pool#1468.destroy() +[2618878.965] {Default Queue} -> wl_shm#1455.create_pool(new id wl_shm_pool#3882, fd 575, 76820) +[2618878.972] {Default Queue} -> wl_shm#1455.create_pool(new id wl_shm_pool#3883, fd 578, 76820) +[2618878.976] {Default Queue} -> wl_shm_pool#3882.create_buffer(new id wl_buffer#3884, 0, 115, 167, 460, 0) +[2618878.981] {Default Queue} -> wl_shm_pool#3883.create_buffer(new id wl_buffer#3885, 0, 115, 167, 460, 0) +[2618879.004] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) +[2618879.009] {Default Queue} -> wl_surface#1447.commit() +[2618879.031] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) +[2618879.036] {Default Queue} -> wl_surface#1447.commit() +[2618879.044] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) +[2618879.053] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) +[2618879.059] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618879.063] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618879.071] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) +[2618879.075] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) +[2618879.079] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618879.083] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618879.088] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) +[2618879.092] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) +[2618879.096] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618879.100] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618879.105] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) +[2618879.109] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) +[2618879.113] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618879.117] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618879.123] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) +[2618879.128] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) +[2618879.132] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618879.136] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618879.142] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) +[2618879.146] {Default Queue} -> wl_surface#1447.commit() +[2618879.153] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) +[2618879.160] {Default Queue} -> wl_surface#1447.commit() +[2618880.228] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) +[2618880.239] {Default Queue} -> wl_surface#1447.commit() +[2618880.251] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) +[2618880.256] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) +[2618880.260] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618880.265] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618880.272] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) +[2618880.277] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) +[2618880.281] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618880.285] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618880.290] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) +[2618880.294] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) +[2618880.298] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618880.302] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618880.307] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) +[2618880.311] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) +[2618880.316] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618880.320] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618880.326] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) +[2618880.330] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) +[2618880.334] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618880.337] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618880.344] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) +[2618880.348] {Default Queue} -> wl_surface#1447.commit() +[2618880.353] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) +[2618880.358] {Default Queue} -> wl_surface#1447.commit() +[2618880.365] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) +[2618880.370] {Default Queue} -> wl_surface#1447.commit() +[2618880.374] {Default Queue} -> wl_region#1695.subtract(0, 0, 2, 20) +[2618880.378] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 218) +[2618880.383] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 218) +[2618880.391] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2618880.397] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2618880.401] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2618880.415] {Default Queue} -> wl_buffer#1693.destroy() +[2618880.420] {Default Queue} -> wl_buffer#1694.destroy() +[2618880.424] {Default Queue} -> wl_shm_pool#1691.destroy() +[2618880.428] {Default Queue} -> wl_shm_pool#1692.destroy() +[2618880.468] {Default Queue} -> wl_shm#1679.create_pool(new id wl_shm_pool#3886, fd 575, 160) +[2618880.474] {Default Queue} -> wl_shm#1679.create_pool(new id wl_shm_pool#3887, fd 578, 160) +[2618880.479] {Default Queue} -> wl_shm_pool#3886.create_buffer(new id wl_buffer#3888, 0, 2, 20, 8, 0) +[2618880.483] {Default Queue} -> wl_shm_pool#3887.create_buffer(new id wl_buffer#3889, 0, 2, 20, 8, 0) +[2618880.490] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) +[2618880.494] {Default Queue} -> wl_surface#1671.commit() +[2618880.499] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) +[2618880.503] {Default Queue} -> wl_surface#1671.commit() +[2618880.512] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 218) +[2618880.517] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 218) +[2618880.521] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2618880.525] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2618880.585] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 218) +[2618880.590] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 218) +[2618880.594] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2618880.598] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2618880.604] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2618880.608] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2618880.648] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 218) +[2618880.653] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 218) +[2618880.657] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2618880.661] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2618880.667] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2618880.671] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2618880.675] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) +[2618880.679] {Default Queue} -> wl_surface#1671.commit() +[2618880.685] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) +[2618880.690] {Default Queue} -> wl_surface#1671.commit() +[2618881.755] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) +[2618881.772] {Default Queue} -> wl_surface#1671.commit() +[2618881.788] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 218) +[2618881.793] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 218) +[2618881.798] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2618881.802] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2618881.854] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 218) +[2618881.859] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 218) +[2618881.867] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2618881.871] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2618881.877] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2618881.881] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2618881.918] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 218) +[2618881.923] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 218) +[2618881.927] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2618881.931] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2618881.937] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2618881.941] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2618881.946] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) +[2618881.955] {Default Queue} -> wl_surface#1671.commit() +[2618881.962] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) +[2618881.966] {Default Queue} -> wl_surface#1671.commit() +[2618881.972] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) +[2618881.977] {Default Queue} -> wl_surface#1671.commit() +[2618881.987] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) +[2618882.000] {Default Queue} -> wl_surface#1735.commit() +[2618883.068] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) +[2618883.080] {Default Queue} -> wl_surface#1735.commit() +[2618883.091] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 201) +[2618883.097] {Default Queue} -> wl_region#1759.add(-253, -219, 255, 201) +[2618883.101] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618883.105] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618883.114] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 201) +[2618883.120] {Default Queue} -> wl_region#1759.add(-253, -219, 255, 201) +[2618883.124] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618883.128] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618883.133] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 201) +[2618883.137] {Default Queue} -> wl_region#1759.add(-253, -219, 255, 201) +[2618883.141] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618883.145] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618883.150] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 201) +[2618883.154] {Default Queue} -> wl_region#1759.add(-253, -219, 255, 201) +[2618883.158] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618883.162] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618883.166] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 201) +[2618883.170] {Default Queue} -> wl_region#1759.add(-253, -219, 255, 201) +[2618883.174] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618883.178] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618883.192] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) +[2618883.197] {Default Queue} -> wl_surface#1735.commit() +[2618883.201] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) +[2618883.206] {Default Queue} -> wl_surface#1735.commit() +[2618883.212] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) +[2618883.216] {Default Queue} -> wl_surface#1735.commit() +[2618883.220] {Default Queue} -> wl_region#1727.subtract(0, 0, 2, 2) +[2618883.226] {Default Queue} -> wl_region#1759.subtract(0, 0, 2, 2) +[2618883.231] {Default Queue} -> wl_subsurface#1754.set_position(1, -11) +[2618883.235] {Default Queue} -> wl_region#1759.subtract(0, 0, 256, 212) +[2618883.239] {Default Queue} -> wl_region#1759.add(-253, -219, 255, 201) +[2618883.243] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618883.247] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618883.251] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) +[2618883.257] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 232) +[2618883.261] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 221) +[2618883.265] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618883.269] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618883.275] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 232) +[2618883.279] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 221) +[2618883.284] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618883.287] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618883.292] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 232) +[2618883.297] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 221) +[2618883.301] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618883.309] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618883.316] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 232) +[2618883.320] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 221) +[2618883.325] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618883.329] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618883.335] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 232) +[2618883.340] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 221) +[2618883.345] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618883.350] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618883.360] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) +[2618883.365] {Default Queue} -> wl_surface#1735.commit() +[2618883.371] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 232) +[2618883.376] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 221) +[2618883.379] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618883.383] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618883.390] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 232) +[2618883.394] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 221) +[2618883.398] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618883.402] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618883.407] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 232) +[2618883.411] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 221) +[2618883.416] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618883.421] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618883.427] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 232) +[2618883.432] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 221) +[2618883.437] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618883.442] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618883.448] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 232) +[2618883.453] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 221) +[2618883.458] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2618883.462] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2618883.469] {Default Queue} -> wl_region#1727.subtract(0, 0, 255, 221) +[2618883.474] {Default Queue} -> wl_region#1727.add(-253, -219, 255, 201) +[2618883.478] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) +[2618883.482] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) +[2618883.486] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) +[2618883.490] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) +[2618883.502] {Default Queue} -> wl_buffer#1725.destroy() +[2618883.508] {Default Queue} -> wl_buffer#1726.destroy() +[2618883.512] {Default Queue} -> wl_shm_pool#1723.destroy() +[2618883.516] {Default Queue} -> wl_shm_pool#1724.destroy() +[2618883.557] {Default Queue} -> wl_shm#1711.create_pool(new id wl_shm_pool#3890, fd 575, 16) +[2618883.564] {Default Queue} -> wl_shm#1711.create_pool(new id wl_shm_pool#3891, fd 578, 16) +[2618883.568] {Default Queue} -> wl_shm_pool#3890.create_buffer(new id wl_buffer#3892, 0, 2, 2, 8, 0) +[2618883.572] {Default Queue} -> wl_shm_pool#3891.create_buffer(new id wl_buffer#3893, 0, 2, 2, 8, 0) +[2618883.579] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) +[2618883.583] {Default Queue} -> wl_surface#1703.commit() +[2618883.588] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) +[2618883.592] {Default Queue} -> wl_surface#1703.commit() +[2618883.601] {Default Queue} -> wl_region#1727.subtract(0, 0, 255, 221) +[2618883.614] {Default Queue} -> wl_region#1727.add(-253, -219, 255, 201) +[2618883.621] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) +[2618883.628] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) +[2618883.643] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) +[2618883.653] {Default Queue} -> wl_surface#1703.commit() +[2618883.660] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) +[2618883.666] {Default Queue} -> wl_surface#1703.commit() +[2618884.736] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) +[2618884.749] {Default Queue} -> wl_surface#1703.commit() +[2618884.759] {Default Queue} -> wl_region#1727.subtract(0, 0, 255, 221) +[2618884.764] {Default Queue} -> wl_region#1727.add(-253, -219, 255, 201) +[2618884.768] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) +[2618884.773] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) +[2618884.778] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) +[2618884.783] {Default Queue} -> wl_surface#1703.commit() +[2618884.787] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) +[2618884.792] {Default Queue} -> wl_surface#1703.commit() +[2618884.800] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) +[2618884.804] {Default Queue} -> wl_surface#1703.commit() +[2618884.810] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) +[2618884.814] {Default Queue} -> wl_surface#1639.commit() +[2618885.870] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) +[2618885.883] {Default Queue} -> wl_surface#1639.commit() +[2618885.892] {Default Queue} -> wl_region#1663.subtract(0, 0, 255, 221) +[2618885.897] {Default Queue} -> wl_region#1663.add(-250, -216, 252, 218) +[2618885.902] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) +[2618885.906] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) +[2618885.912] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) +[2618885.916] {Default Queue} -> wl_surface#1639.commit() +[2618885.920] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) +[2618885.925] {Default Queue} -> wl_surface#1639.commit() +[2618885.932] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) +[2618885.935] {Default Queue} -> wl_surface#1639.commit() +[2618885.940] {Default Queue} -> wl_region#1631.subtract(0, 0, 115, 167) +[2618885.946] {Default Queue} -> wl_region#1663.subtract(0, 0, 2, 2) +[2618885.951] {Default Queue} -> wl_subsurface#1658.set_position(3, 3) +[2618885.955] {Default Queue} -> wl_region#1663.subtract(0, 0, 255, 221) +[2618885.959] {Default Queue} -> wl_region#1663.add(-250, -216, 252, 218) +[2618885.963] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) +[2618885.967] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) +[2618885.971] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2618885.975] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) +[2618885.979] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) +[2618885.983] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) +[2618885.988] {Default Queue} -> wl_region#1663.subtract(0, 0, 255, 221) +[2618885.993] {Default Queue} -> wl_region#1663.add(-250, -216, 252, 218) +[2618885.996] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) +[2618886.000] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) +[2618886.007] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) +[2618886.011] {Default Queue} -> wl_surface#1639.commit() +[2618886.016] {Default Queue} -> wl_region#1663.subtract(0, 0, 362, 380) +[2618886.020] {Default Queue} -> wl_region#1663.add(-250, -216, 359, 377) +[2618886.024] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) +[2618886.028] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) +[2618886.032] {Default Queue} -> wl_region#1631.subtract(0, 0, 252, 218) +[2618886.036] {Default Queue} -> wl_region#1631.add(-20, -216, 22, 218) +[2618886.041] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618886.045] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618886.048] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2618886.057] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) +[2618886.064] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) +[2618886.068] {Default Queue} -> wl_surface#1639.damage(0, 0, 109, 161) +[2618886.072] {Default Queue} -> wl_surface#1607.damage(0, 0, 115, 167) +[2618886.086] {Default Queue} -> wl_buffer#1629.destroy() +[2618886.092] {Default Queue} -> wl_buffer#1630.destroy() +[2618886.096] {Default Queue} -> wl_shm_pool#1627.destroy() +[2618886.100] {Default Queue} -> wl_shm_pool#1628.destroy() +[2618886.187] {Default Queue} -> wl_shm#1615.create_pool(new id wl_shm_pool#3894, fd 575, 76820) +[2618886.194] {Default Queue} -> wl_shm#1615.create_pool(new id wl_shm_pool#3895, fd 578, 76820) +[2618886.199] {Default Queue} -> wl_shm_pool#3894.create_buffer(new id wl_buffer#3896, 0, 115, 167, 460, 0) +[2618886.203] {Default Queue} -> wl_shm_pool#3895.create_buffer(new id wl_buffer#3897, 0, 115, 167, 460, 0) +[2618886.226] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) +[2618886.231] {Default Queue} -> wl_surface#1607.commit() +[2618886.253] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) +[2618886.259] {Default Queue} -> wl_surface#1607.commit() +[2618886.268] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) +[2618886.272] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) +[2618886.276] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618886.280] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618886.288] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) +[2618886.292] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) +[2618886.296] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618886.300] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618886.306] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) +[2618886.310] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) +[2618886.314] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618886.318] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618886.324] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) +[2618886.328] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) +[2618886.332] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618886.336] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618886.342] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) +[2618886.346] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) +[2618886.350] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618886.354] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618886.360] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) +[2618886.365] {Default Queue} -> wl_surface#1607.commit() +[2618886.372] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) +[2618886.376] {Default Queue} -> wl_surface#1607.commit() +[2618887.447] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) +[2618887.461] {Default Queue} -> wl_surface#1607.commit() +[2618887.474] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) +[2618887.480] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) +[2618887.485] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618887.489] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618887.497] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) +[2618887.501] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) +[2618887.505] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618887.509] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618887.514] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) +[2618887.519] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) +[2618887.523] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618887.531] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618887.540] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) +[2618887.544] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) +[2618887.548] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618887.552] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618887.558] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) +[2618887.562] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) +[2618887.566] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618887.570] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618887.577] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) +[2618887.582] {Default Queue} -> wl_surface#1607.commit() +[2618887.587] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) +[2618887.591] {Default Queue} -> wl_surface#1607.commit() +[2618887.599] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) +[2618887.603] {Default Queue} -> wl_surface#1607.commit() +[2618887.608] {Default Queue} -> wl_region#1855.subtract(0, 0, 2, 20) +[2618887.613] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 218) +[2618887.617] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 218) +[2618887.622] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2618887.625] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2618887.629] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2618887.646] {Default Queue} -> wl_buffer#1853.destroy() +[2618887.651] {Default Queue} -> wl_buffer#1854.destroy() +[2618887.656] {Default Queue} -> wl_shm_pool#1851.destroy() +[2618887.660] {Default Queue} -> wl_shm_pool#1852.destroy() +[2618887.704] {Default Queue} -> wl_shm#1839.create_pool(new id wl_shm_pool#3898, fd 575, 160) +[2618887.710] {Default Queue} -> wl_shm#1839.create_pool(new id wl_shm_pool#3899, fd 578, 160) +[2618887.716] {Default Queue} -> wl_shm_pool#3898.create_buffer(new id wl_buffer#3900, 0, 2, 20, 8, 0) +[2618887.721] {Default Queue} -> wl_shm_pool#3899.create_buffer(new id wl_buffer#3901, 0, 2, 20, 8, 0) +[2618887.727] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) +[2618887.732] {Default Queue} -> wl_surface#1831.commit() +[2618887.737] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) +[2618887.741] {Default Queue} -> wl_surface#1831.commit() +[2618887.750] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 218) +[2618887.755] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 218) +[2618887.759] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2618887.763] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2618887.839] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 218) +[2618887.844] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 218) +[2618887.848] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2618887.852] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2618887.858] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2618887.863] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2618887.919] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 218) +[2618887.925] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 218) +[2618887.929] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2618887.932] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2618887.939] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2618887.943] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2618887.948] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) +[2618887.952] {Default Queue} -> wl_surface#1831.commit() +[2618887.958] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) +[2618887.962] {Default Queue} -> wl_surface#1831.commit() +[2618889.031] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) +[2618889.048] {Default Queue} -> wl_surface#1831.commit() +[2618889.062] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 218) +[2618889.067] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 218) +[2618889.072] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2618889.076] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2618889.151] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 218) +[2618889.156] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 218) +[2618889.161] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2618889.165] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2618889.170] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2618889.174] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2618889.224] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 218) +[2618889.229] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 218) +[2618889.233] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2618889.237] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2618889.243] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2618889.247] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2618889.252] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) +[2618889.256] {Default Queue} -> wl_surface#1831.commit() +[2618889.261] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) +[2618889.265] {Default Queue} -> wl_surface#1831.commit() +[2618889.271] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) +[2618889.275] {Default Queue} -> wl_surface#1831.commit() +[2618889.282] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) +[2618889.286] {Default Queue} -> wl_surface#1895.commit() +[2618890.350] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) +[2618890.363] {Default Queue} -> wl_surface#1895.commit() +[2618890.374] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 201) +[2618890.379] {Default Queue} -> wl_region#1919.add(-368, -219, 370, 201) +[2618890.383] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) +[2618890.388] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) +[2618890.395] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 201) +[2618890.399] {Default Queue} -> wl_region#1919.add(-368, -219, 370, 201) +[2618890.403] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) +[2618890.407] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) +[2618890.416] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618890.421] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618890.425] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) +[2618890.429] {Default Queue} -> wl_surface#1895.commit() +[2618890.433] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) +[2618890.437] {Default Queue} -> wl_surface#1895.commit() +[2618890.444] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) +[2618890.448] {Default Queue} -> wl_surface#1895.commit() +[2618890.452] {Default Queue} -> wl_region#1887.subtract(0, 0, 2, 2) +[2618890.458] {Default Queue} -> wl_region#1919.subtract(0, 0, 2, 2) +[2618890.462] {Default Queue} -> wl_subsurface#1914.set_position(1, 1) +[2618890.466] {Default Queue} -> wl_region#1919.subtract(0, 0, 371, 202) +[2618890.470] {Default Queue} -> wl_region#1919.add(-368, -219, 370, 201) +[2618890.474] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) +[2618890.478] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) +[2618890.482] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618890.487] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 221) +[2618890.491] {Default Queue} -> wl_region#1919.add(-368, -239, 369, 220) +[2618890.495] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) +[2618890.499] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) +[2618890.504] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 221) +[2618890.512] {Default Queue} -> wl_region#1919.add(-368, -239, 369, 220) +[2618890.519] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) +[2618890.523] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) +[2618890.529] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618890.533] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618890.537] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) +[2618890.541] {Default Queue} -> wl_surface#1895.commit() +[2618890.546] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 221) +[2618890.550] {Default Queue} -> wl_region#1919.add(-368, -239, 369, 220) +[2618890.554] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) +[2618890.558] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) +[2618890.562] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 221) +[2618890.566] {Default Queue} -> wl_region#1919.add(-368, -239, 369, 220) +[2618890.570] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) +[2618890.574] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) +[2618890.579] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618890.583] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618890.587] {Default Queue} -> wl_region#1887.subtract(0, 0, 370, 221) +[2618890.591] {Default Queue} -> wl_region#1887.add(-368, -219, 370, 201) +[2618890.595] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) +[2618890.599] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) +[2618890.603] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618890.607] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) +[2618890.622] {Default Queue} -> wl_buffer#1885.destroy() +[2618890.627] {Default Queue} -> wl_buffer#1886.destroy() +[2618890.631] {Default Queue} -> wl_shm_pool#1883.destroy() +[2618890.635] {Default Queue} -> wl_shm_pool#1884.destroy() +[2618890.677] {Default Queue} -> wl_shm#1871.create_pool(new id wl_shm_pool#3902, fd 575, 16) +[2618890.683] {Default Queue} -> wl_shm#1871.create_pool(new id wl_shm_pool#3903, fd 578, 16) +[2618890.688] {Default Queue} -> wl_shm_pool#3902.create_buffer(new id wl_buffer#3904, 0, 2, 2, 8, 0) +[2618890.692] {Default Queue} -> wl_shm_pool#3903.create_buffer(new id wl_buffer#3905, 0, 2, 2, 8, 0) +[2618890.699] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) +[2618890.703] {Default Queue} -> wl_surface#1863.commit() +[2618890.708] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) +[2618890.712] {Default Queue} -> wl_surface#1863.commit() +[2618890.719] {Default Queue} -> wl_region#1887.subtract(0, 0, 370, 221) +[2618890.726] {Default Queue} -> wl_region#1887.add(-368, -219, 370, 201) +[2618890.730] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) +[2618890.734] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) +[2618890.739] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) +[2618890.743] {Default Queue} -> wl_surface#1863.commit() +[2618890.749] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) +[2618890.753] {Default Queue} -> wl_surface#1863.commit() +[2618891.820] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) +[2618891.832] {Default Queue} -> wl_surface#1863.commit() +[2618891.842] {Default Queue} -> wl_region#1887.subtract(0, 0, 370, 221) +[2618891.849] {Default Queue} -> wl_region#1887.add(-368, -219, 370, 201) +[2618891.853] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) +[2618891.857] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) +[2618891.868] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) +[2618891.872] {Default Queue} -> wl_surface#1863.commit() +[2618891.876] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) +[2618891.880] {Default Queue} -> wl_surface#1863.commit() +[2618891.886] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) +[2618891.896] {Default Queue} -> wl_surface#1863.commit() +[2618891.905] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) +[2618891.910] {Default Queue} -> wl_surface#1799.commit() +[2618892.976] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) +[2618892.989] {Default Queue} -> wl_surface#1799.commit() +[2618892.999] {Default Queue} -> wl_region#1823.subtract(0, 0, 370, 221) +[2618893.006] {Default Queue} -> wl_region#1823.add(-365, -216, 367, 218) +[2618893.010] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) +[2618893.014] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) +[2618893.021] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) +[2618893.025] {Default Queue} -> wl_surface#1799.commit() +[2618893.029] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) +[2618893.033] {Default Queue} -> wl_surface#1799.commit() +[2618893.039] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) +[2618893.043] {Default Queue} -> wl_surface#1799.commit() +[2618893.047] {Default Queue} -> wl_region#1791.subtract(0, 0, 115, 167) +[2618893.054] {Default Queue} -> wl_region#1823.subtract(0, 0, 2, 2) +[2618893.058] {Default Queue} -> wl_subsurface#1818.set_position(3, 3) +[2618893.062] {Default Queue} -> wl_region#1823.subtract(0, 0, 370, 221) +[2618893.065] {Default Queue} -> wl_region#1823.add(-365, -216, 367, 218) +[2618893.069] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) +[2618893.073] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) +[2618893.077] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2618893.081] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618893.085] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) +[2618893.089] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) +[2618893.094] {Default Queue} -> wl_region#1823.subtract(0, 0, 370, 221) +[2618893.098] {Default Queue} -> wl_region#1823.add(-365, -216, 367, 218) +[2618893.102] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) +[2618893.106] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) +[2618893.110] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) +[2618893.114] {Default Queue} -> wl_surface#1799.commit() +[2618893.119] {Default Queue} -> wl_region#1823.subtract(0, 0, 477, 380) +[2618893.124] {Default Queue} -> wl_region#1823.add(-365, -216, 474, 377) +[2618893.128] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) +[2618893.131] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) +[2618893.136] {Default Queue} -> wl_region#1791.subtract(0, 0, 367, 218) +[2618893.140] {Default Queue} -> wl_region#1791.add(-20, -216, 22, 218) +[2618893.144] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618893.148] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618893.152] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2618893.156] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618893.160] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) +[2618893.164] {Default Queue} -> wl_surface#1799.damage(0, 0, 109, 161) +[2618893.168] {Default Queue} -> wl_surface#1772.damage(0, 0, 115, 167) +[2618893.182] {Default Queue} -> wl_buffer#1789.destroy() +[2618893.188] {Default Queue} -> wl_buffer#1790.destroy() +[2618893.192] {Default Queue} -> wl_shm_pool#1787.destroy() +[2618893.196] {Default Queue} -> wl_shm_pool#1788.destroy() +[2618893.286] {Default Queue} -> wl_shm#1775.create_pool(new id wl_shm_pool#3906, fd 575, 76820) +[2618893.293] {Default Queue} -> wl_shm#1775.create_pool(new id wl_shm_pool#3907, fd 578, 76820) +[2618893.298] {Default Queue} -> wl_shm_pool#3906.create_buffer(new id wl_buffer#3908, 0, 115, 167, 460, 0) +[2618893.303] {Default Queue} -> wl_shm_pool#3907.create_buffer(new id wl_buffer#3909, 0, 115, 167, 460, 0) +[2618893.325] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) +[2618893.331] {Default Queue} -> wl_surface#1772.commit() +[2618893.356] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) +[2618893.363] {Default Queue} -> wl_surface#1772.commit() +[2618893.373] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) +[2618893.377] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) +[2618893.382] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618893.386] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618893.394] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) +[2618893.398] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) +[2618893.402] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618893.407] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618893.413] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) +[2618893.416] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) +[2618893.421] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618893.425] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618893.430] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) +[2618893.434] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) +[2618893.439] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618893.442] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618893.449] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) +[2618893.453] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) +[2618893.457] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618893.461] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618893.468] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) +[2618893.472] {Default Queue} -> wl_surface#1772.commit() +[2618893.479] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) +[2618893.483] {Default Queue} -> wl_surface#1772.commit() +[2618894.552] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) +[2618894.565] {Default Queue} -> wl_surface#1772.commit() +[2618894.579] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) +[2618894.591] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) +[2618894.598] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618894.602] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618894.611] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) +[2618894.617] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) +[2618894.621] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618894.625] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618894.630] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) +[2618894.635] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) +[2618894.639] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618894.643] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618894.648] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) +[2618894.652] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) +[2618894.656] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618894.660] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618894.667] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) +[2618894.671] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) +[2618894.676] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618894.680] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618894.687] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) +[2618894.691] {Default Queue} -> wl_surface#1772.commit() +[2618894.696] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) +[2618894.701] {Default Queue} -> wl_surface#1772.commit() +[2618894.708] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) +[2618894.713] {Default Queue} -> wl_surface#1772.commit() +[2618894.723] {Default Queue} -> wl_region#2015.subtract(0, 0, 2, 20) +[2618894.729] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 218) +[2618894.734] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 218) +[2618894.738] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2618894.742] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2618894.746] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2618894.759] {Default Queue} -> wl_buffer#2013.destroy() +[2618894.764] {Default Queue} -> wl_buffer#2014.destroy() +[2618894.768] {Default Queue} -> wl_shm_pool#2011.destroy() +[2618894.772] {Default Queue} -> wl_shm_pool#2012.destroy() +[2618894.813] {Default Queue} -> wl_shm#1999.create_pool(new id wl_shm_pool#3910, fd 575, 160) +[2618894.822] {Default Queue} -> wl_shm#1999.create_pool(new id wl_shm_pool#3911, fd 578, 160) +[2618894.826] {Default Queue} -> wl_shm_pool#3910.create_buffer(new id wl_buffer#3912, 0, 2, 20, 8, 0) +[2618894.831] {Default Queue} -> wl_shm_pool#3911.create_buffer(new id wl_buffer#3913, 0, 2, 20, 8, 0) +[2618894.838] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) +[2618894.842] {Default Queue} -> wl_surface#1991.commit() +[2618894.847] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) +[2618894.851] {Default Queue} -> wl_surface#1991.commit() +[2618894.866] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 218) +[2618894.871] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 218) +[2618894.875] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2618894.879] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2618894.941] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 218) +[2618894.947] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 218) +[2618894.951] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2618894.955] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2618894.961] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2618894.965] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2618895.006] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 218) +[2618895.011] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 218) +[2618895.015] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2618895.019] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2618895.025] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2618895.029] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2618895.034] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) +[2618895.038] {Default Queue} -> wl_surface#1991.commit() +[2618895.044] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) +[2618895.048] {Default Queue} -> wl_surface#1991.commit() +[2618896.115] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) +[2618896.129] {Default Queue} -> wl_surface#1991.commit() +[2618896.141] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 218) +[2618896.145] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 218) +[2618896.150] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2618896.154] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2618896.210] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 218) +[2618896.215] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 218) +[2618896.219] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2618896.223] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2618896.229] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2618896.233] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2618896.271] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 218) +[2618896.276] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 218) +[2618896.280] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2618896.283] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2618896.294] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2618896.300] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2618896.305] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) +[2618896.309] {Default Queue} -> wl_surface#1991.commit() +[2618896.313] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) +[2618896.317] {Default Queue} -> wl_surface#1991.commit() +[2618896.324] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) +[2618896.328] {Default Queue} -> wl_surface#1991.commit() +[2618896.334] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) +[2618896.338] {Default Queue} -> wl_surface#2055.commit() +[2618896.692] {Display Queue} wl_display#1.delete_id(3518) +[2618896.716] {Display Queue} wl_display#1.delete_id(3451) +[2618896.723] {Display Queue} wl_display#1.delete_id(3454) +[2618896.730] {Display Queue} wl_display#1.delete_id(3517) +[2618896.735] {Display Queue} wl_display#1.delete_id(3452) +[2618896.741] {Display Queue} wl_display#1.delete_id(3294) +[2618896.746] {Display Queue} wl_display#1.delete_id(3293) +[2618896.752] {Display Queue} wl_display#1.delete_id(3292) +[2618896.757] {Display Queue} wl_display#1.delete_id(3291) +[2618896.763] {Display Queue} wl_display#1.delete_id(3484) +[2618896.768] {Display Queue} wl_display#1.delete_id(3671) +[2618896.774] {Display Queue} wl_display#1.delete_id(3681) +[2618896.780] {Display Queue} wl_display#1.delete_id(3684) +[2618896.785] {Display Queue} wl_display#1.delete_id(3679) +[2618896.791] {Display Queue} wl_display#1.delete_id(3682) +[2618896.796] {Display Queue} wl_display#1.delete_id(2506) +[2618896.802] {Display Queue} wl_display#1.delete_id(2505) +[2618896.807] {Display Queue} wl_display#1.delete_id(2504) +[2618896.812] {Display Queue} wl_display#1.delete_id(2503) +[2618896.818] {Display Queue} wl_display#1.delete_id(2502) +[2618896.823] {Display Queue} wl_display#1.delete_id(3674) +[2618896.829] {Display Queue} wl_display#1.delete_id(3678) +[2618896.834] {Display Queue} wl_display#1.delete_id(3677) +[2618896.840] {Display Queue} wl_display#1.delete_id(3676) +[2618896.845] {Display Queue} wl_display#1.delete_id(3675) +[2618896.851] {Display Queue} wl_display#1.delete_id(3485) +[2618896.856] {Display Queue} wl_display#1.delete_id(3516) +[2618896.869] {Display Queue} wl_display#1.delete_id(3483) +[2618896.875] {Display Queue} wl_display#1.delete_id(3486) +[2618896.880] {Display Queue} wl_display#1.delete_id(3515) +[2618896.886] {Display Queue} wl_display#1.delete_id(93) +[2618896.891] {Display Queue} wl_display#1.delete_id(94) +[2618896.897] {Display Queue} wl_display#1.delete_id(91) +[2618896.902] {Display Queue} wl_display#1.delete_id(92) +[2618896.907] {Display Queue} wl_display#1.delete_id(3683) +[2618896.913] {Display Queue} wl_display#1.delete_id(3419) +[2618896.918] {Display Queue} wl_display#1.delete_id(3422) +[2618896.924] {Display Queue} wl_display#1.delete_id(3453) +[2618896.929] {Display Queue} wl_display#1.delete_id(3420) +[2618896.935] {Display Queue} wl_display#1.delete_id(3421) +[2618896.940] {Display Queue} wl_display#1.delete_id(221) +[2618896.946] {Display Queue} wl_display#1.delete_id(222) +[2618896.951] {Display Queue} wl_display#1.delete_id(219) +[2618896.956] {Display Queue} wl_display#1.delete_id(220) +[2618896.962] {Display Queue} wl_display#1.delete_id(253) +[2618896.967] {Display Queue} wl_display#1.delete_id(254) +[2618896.973] {Display Queue} wl_display#1.delete_id(251) +[2618896.978] {Display Queue} wl_display#1.delete_id(252) +[2618896.984] {Display Queue} wl_display#1.delete_id(3070) +[2618896.989] {Display Queue} wl_display#1.delete_id(3069) +[2618896.994] {Display Queue} wl_display#1.delete_id(3068) +[2618897.000] {Display Queue} wl_display#1.delete_id(3067) +[2618897.005] {Display Queue} wl_display#1.delete_id(3228) +[2618897.011] {Display Queue} wl_display#1.delete_id(157) +[2618897.017] {Display Queue} wl_display#1.delete_id(158) +[2618897.022] {Display Queue} wl_display#1.delete_id(155) +[2618897.027] {Display Queue} wl_display#1.delete_id(156) +[2618897.041] {Display Queue} wl_display#1.delete_id(317) +[2618897.053] {Display Queue} wl_display#1.delete_id(318) +[2618897.058] {Display Queue} wl_display#1.delete_id(315) +[2618897.064] {Display Queue} wl_display#1.delete_id(316) +[2618897.069] {Display Queue} wl_display#1.delete_id(2717) +[2618897.075] {Display Queue} wl_display#1.delete_id(2556) +[2618897.080] {Display Queue} wl_display#1.delete_id(2715) +[2618897.086] {Display Queue} wl_display#1.delete_id(2718) +[2618897.091] {Display Queue} wl_display#1.delete_id(2555) +[2618897.097] {Display Queue} wl_display#1.delete_id(413) +[2618897.102] {Display Queue} wl_display#1.delete_id(414) +[2618897.107] {Display Queue} wl_display#1.delete_id(411) +[2618897.113] {Display Queue} wl_display#1.delete_id(412) +[2618897.118] {Display Queue} wl_display#1.delete_id(541) +[2618897.124] {Display Queue} wl_display#1.delete_id(542) +[2618897.129] {Display Queue} wl_display#1.delete_id(539) +[2618897.135] {Display Queue} wl_display#1.delete_id(540) +[2618897.140] {Display Queue} wl_display#1.delete_id(573) +[2618897.145] {Display Queue} wl_display#1.delete_id(574) +[2618897.151] {Display Queue} wl_display#1.delete_id(571) +[2618897.156] {Display Queue} wl_display#1.delete_id(572) +[2618897.162] {Display Queue} wl_display#1.delete_id(605) +[2618897.167] {Display Queue} wl_display#1.delete_id(606) +[2618897.172] {Display Queue} wl_display#1.delete_id(603) +[2618897.178] {Display Queue} wl_display#1.delete_id(604) +[2618897.183] {Display Queue} wl_display#1.delete_id(637) +[2618897.188] {Display Queue} wl_display#1.delete_id(638) +[2618897.194] {Display Queue} wl_display#1.delete_id(635) +[2618897.199] {Display Queue} wl_display#1.delete_id(636) +[2618897.205] {Display Queue} wl_display#1.delete_id(669) +[2618897.210] {Display Queue} wl_display#1.delete_id(670) +[2618897.216] {Display Queue} wl_display#1.delete_id(667) +[2618897.221] {Display Queue} wl_display#1.delete_id(668) +[2618897.227] {Display Queue} wl_display#1.delete_id(509) +[2618897.232] {Display Queue} wl_display#1.delete_id(510) +[2618897.237] {Display Queue} wl_display#1.delete_id(507) +[2618897.243] {Display Queue} wl_display#1.delete_id(508) +[2618897.248] {Display Queue} wl_display#1.delete_id(733) +[2618897.254] {Display Queue} wl_display#1.delete_id(734) +[2618897.259] {Display Queue} wl_display#1.delete_id(731) +[2618897.264] {Display Queue} wl_display#1.delete_id(732) +[2618897.270] {Display Queue} wl_display#1.delete_id(765) +[2618897.275] {Display Queue} wl_display#1.delete_id(766) +[2618897.281] {Display Queue} wl_display#1.delete_id(763) +[2618897.286] {Display Queue} wl_display#1.delete_id(764) +[2618897.291] {Display Queue} wl_display#1.delete_id(2332) +[2618897.297] {Display Queue} wl_display#1.delete_id(2331) +[2618897.302] {Display Queue} wl_display#1.delete_id(2174) +[2618897.308] {Display Queue} wl_display#1.delete_id(2173) +[2618897.313] {Display Queue} wl_display#1.delete_id(2334) +[2618897.319] {Display Queue} wl_display#1.delete_id(797) +[2618897.324] {Display Queue} wl_display#1.delete_id(798) +[2618897.329] {Display Queue} wl_display#1.delete_id(795) +[2618897.335] {Display Queue} wl_display#1.delete_id(796) +[2618897.340] {Display Queue} wl_display#1.delete_id(829) +[2618897.346] {Display Queue} wl_display#1.delete_id(830) +[2618897.351] {Display Queue} wl_display#1.delete_id(827) +[2618897.357] {Display Queue} wl_display#1.delete_id(828) +[2618897.362] {Display Queue} wl_display#1.delete_id(861) +[2618897.368] {Display Queue} wl_display#1.delete_id(862) +[2618897.373] {Display Queue} wl_display#1.delete_id(859) +[2618897.379] {Display Queue} wl_display#1.delete_id(860) +[2618897.384] {Display Queue} wl_display#1.delete_id(701) +[2618897.390] {Display Queue} wl_display#1.delete_id(702) +[2618897.395] {Display Queue} wl_display#1.delete_id(699) +[2618897.401] {Display Queue} wl_display#1.delete_id(700) +[2618897.406] {Display Queue} wl_display#1.delete_id(445) +[2618897.411] {Display Queue} wl_display#1.delete_id(446) +[2618897.417] {Display Queue} wl_display#1.delete_id(443) +[2618897.422] {Display Queue} wl_display#1.delete_id(444) +[2618897.426] {Display Queue} wl_display#1.delete_id(349) +[2618897.442] {Display Queue} wl_display#1.delete_id(350) +[2618897.447] {Display Queue} wl_display#1.delete_id(347) +[2618897.450] {Display Queue} wl_display#1.delete_id(348) +[2618897.454] {Display Queue} wl_display#1.delete_id(125) +[2618897.458] {Display Queue} wl_display#1.delete_id(126) +[2618897.461] {Display Queue} wl_display#1.delete_id(123) +[2618897.465] {Display Queue} wl_display#1.delete_id(124) +[2618897.469] {Display Queue} wl_display#1.delete_id(989) +[2618897.472] {Display Queue} wl_display#1.delete_id(990) +[2618897.476] {Display Queue} wl_display#1.delete_id(987) +[2618897.480] {Display Queue} wl_display#1.delete_id(988) +[2618897.483] {Display Queue} wl_display#1.delete_id(1117) +[2618897.487] {Display Queue} wl_display#1.delete_id(1118) +[2618897.490] {Display Queue} wl_display#1.delete_id(1115) +[2618897.494] {Display Queue} wl_display#1.delete_id(1116) +[2618897.498] {Display Queue} wl_display#1.delete_id(1149) +[2618897.501] {Display Queue} wl_display#1.delete_id(1150) +[2618897.505] {Display Queue} wl_display#1.delete_id(1147) +[2618897.509] {Display Queue} wl_display#1.delete_id(1148) +[2618897.512] {Display Queue} wl_display#1.delete_id(1181) +[2618897.516] {Display Queue} wl_display#1.delete_id(1182) +[2618897.520] {Display Queue} wl_display#1.delete_id(1179) +[2618897.523] {Display Queue} wl_display#1.delete_id(1180) +[2618897.527] {Display Queue} wl_display#1.delete_id(1213) +[2618897.531] {Display Queue} wl_display#1.delete_id(1214) +[2618897.535] {Display Queue} wl_display#1.delete_id(1211) +[2618897.538] {Display Queue} wl_display#1.delete_id(1212) +[2618897.542] {Display Queue} wl_display#1.delete_id(1245) +[2618897.546] {Display Queue} wl_display#1.delete_id(1246) +[2618897.549] {Display Queue} wl_display#1.delete_id(1243) +[2618897.553] {Display Queue} wl_display#1.delete_id(1244) +[2618897.556] {Display Queue} wl_display#1.delete_id(1085) +[2618897.560] {Display Queue} wl_display#1.delete_id(1086) +[2618897.564] {Display Queue} wl_display#1.delete_id(1083) +[2618897.567] {Display Queue} wl_display#1.delete_id(1084) +[2618897.571] {Display Queue} wl_display#1.delete_id(1309) +[2618897.574] {Display Queue} wl_display#1.delete_id(1310) +[2618897.578] {Display Queue} wl_display#1.delete_id(1307) +[2618897.582] {Display Queue} wl_display#1.delete_id(1308) +[2618897.585] {Display Queue} wl_display#1.delete_id(1341) +[2618897.589] {Display Queue} wl_display#1.delete_id(1342) +[2618897.593] {Display Queue} wl_display#1.delete_id(1339) +[2618897.596] {Display Queue} wl_display#1.delete_id(1340) +[2618897.600] {Display Queue} wl_display#1.delete_id(1373) +[2618897.604] {Display Queue} wl_display#1.delete_id(1374) +[2618897.607] {Display Queue} wl_display#1.delete_id(1371) +[2618897.611] {Display Queue} wl_display#1.delete_id(1372) +[2618897.614] {Display Queue} wl_display#1.delete_id(1405) +[2618897.618] {Display Queue} wl_display#1.delete_id(1406) +[2618897.622] {Display Queue} wl_display#1.delete_id(1403) +[2618897.626] {Display Queue} wl_display#1.delete_id(1404) +[2618897.629] {Display Queue} wl_display#1.delete_id(1437) +[2618897.633] {Display Queue} wl_display#1.delete_id(1438) +[2618897.636] {Display Queue} wl_display#1.delete_id(1435) +[2618897.640] {Display Queue} wl_display#1.delete_id(1436) +[2618897.644] {Display Queue} wl_display#1.delete_id(1277) +[2618897.647] {Display Queue} wl_display#1.delete_id(1278) +[2618897.651] {Display Queue} wl_display#1.delete_id(1275) +[2618897.655] {Display Queue} wl_display#1.delete_id(1276) +[2618897.658] {Display Queue} wl_display#1.delete_id(1021) +[2618897.662] {Display Queue} wl_display#1.delete_id(1022) +[2618897.666] {Display Queue} wl_display#1.delete_id(1019) +[2618897.670] {Display Queue} wl_display#1.delete_id(1020) +[2618897.673] {Default Queue} wl_pointer#24.motion(187310531, 29.00000000, 15.00000000) +[2618897.681] {Default Queue} wl_pointer#81.motion(187310531, 29.00000000, 15.00000000) +[2618897.688] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618897.694] {Default Queue} wl_pointer#105.motion(187310531, 29.00000000, 15.00000000) +[2618897.699] {Default Queue} wl_pointer#137.motion(187310531, 29.00000000, 15.00000000) +[2618897.705] {Default Queue} wl_pointer#169.motion(187310531, 29.00000000, 15.00000000) +[2618897.712] {Default Queue} wl_pointer#201.motion(187310531, 29.00000000, 15.00000000) +[2618897.717] {Default Queue} wl_pointer#233.motion(187310531, 29.00000000, 15.00000000) +[2618897.721] {Default Queue} wl_pointer#265.motion(187310531, 29.00000000, 15.00000000) +[2618897.725] {Default Queue} wl_pointer#297.motion(187310531, 29.00000000, 15.00000000) +[2618897.730] {Default Queue} wl_pointer#329.motion(187310531, 29.00000000, 15.00000000) +[2618897.734] {Default Queue} wl_pointer#361.motion(187310531, 29.00000000, 15.00000000) +[2618897.738] {Default Queue} wl_pointer#393.motion(187310531, 29.00000000, 15.00000000) +[2618897.743] {Default Queue} wl_pointer#425.motion(187310531, 29.00000000, 15.00000000) +[2618897.748] {Default Queue} wl_pointer#457.motion(187310531, 29.00000000, 15.00000000) +[2618897.752] {Default Queue} wl_pointer#489.motion(187310531, 29.00000000, 15.00000000) +[2618897.756] {Default Queue} wl_pointer#521.motion(187310531, 29.00000000, 15.00000000) +[2618897.761] {Default Queue} wl_pointer#553.motion(187310531, 29.00000000, 15.00000000) +[2618897.766] {Default Queue} wl_pointer#585.motion(187310531, 29.00000000, 15.00000000) +[2618897.770] {Default Queue} wl_pointer#617.motion(187310531, 29.00000000, 15.00000000) +[2618897.775] {Default Queue} wl_pointer#649.motion(187310531, 29.00000000, 15.00000000) +[2618897.779] {Default Queue} wl_pointer#681.motion(187310531, 29.00000000, 15.00000000) +[2618897.784] {Default Queue} wl_pointer#713.motion(187310531, 29.00000000, 15.00000000) +[2618897.788] {Default Queue} wl_pointer#745.motion(187310531, 29.00000000, 15.00000000) +[2618897.793] {Default Queue} wl_pointer#777.motion(187310531, 29.00000000, 15.00000000) +[2618897.797] {Default Queue} wl_pointer#809.motion(187310531, 29.00000000, 15.00000000) +[2618897.802] {Default Queue} wl_pointer#841.motion(187310531, 29.00000000, 15.00000000) +[2618897.807] {Default Queue} wl_pointer#873.motion(187310531, 29.00000000, 15.00000000) +[2618897.811] {Default Queue} wl_pointer#905.motion(187310531, 29.00000000, 15.00000000) +[2618897.816] {Default Queue} wl_pointer#937.motion(187310531, 29.00000000, 15.00000000) +[2618897.820] {Default Queue} wl_pointer#969.motion(187310531, 29.00000000, 15.00000000) +[2618897.824] {Default Queue} wl_pointer#1001.motion(187310531, 29.00000000, 15.00000000) +[2618897.829] {Default Queue} wl_pointer#1033.motion(187310531, 29.00000000, 15.00000000) +[2618897.834] {Default Queue} wl_pointer#1065.motion(187310531, 29.00000000, 15.00000000) +[2618897.838] {Default Queue} wl_pointer#1097.motion(187310531, 29.00000000, 15.00000000) +[2618897.843] {Default Queue} wl_pointer#1129.motion(187310531, 29.00000000, 15.00000000) +[2618897.847] {Default Queue} wl_pointer#1161.motion(187310531, 29.00000000, 15.00000000) +[2618897.851] {Default Queue} wl_pointer#1193.motion(187310531, 29.00000000, 15.00000000) +[2618897.856] {Default Queue} wl_pointer#1225.motion(187310531, 29.00000000, 15.00000000) +[2618897.866] {Default Queue} wl_pointer#1257.motion(187310531, 29.00000000, 15.00000000) +[2618897.871] {Default Queue} wl_pointer#1289.motion(187310531, 29.00000000, 15.00000000) +[2618897.875] {Default Queue} wl_pointer#1321.motion(187310531, 29.00000000, 15.00000000) +[2618897.880] {Default Queue} wl_pointer#1353.motion(187310531, 29.00000000, 15.00000000) +[2618897.884] {Default Queue} wl_pointer#1385.motion(187310531, 29.00000000, 15.00000000) +[2618897.888] {Default Queue} wl_pointer#1417.motion(187310531, 29.00000000, 15.00000000) +[2618897.893] {Default Queue} wl_pointer#1449.motion(187310531, 29.00000000, 15.00000000) +[2618897.897] {Default Queue} wl_pointer#1481.motion(187310531, 29.00000000, 15.00000000) +[2618897.902] {Default Queue} wl_pointer#1513.motion(187310531, 29.00000000, 15.00000000) +[2618897.906] {Default Queue} wl_pointer#1545.motion(187310531, 29.00000000, 15.00000000) +[2618897.911] {Default Queue} wl_pointer#1577.motion(187310531, 29.00000000, 15.00000000) +[2618897.918] {Default Queue} wl_pointer#1609.motion(187310531, 29.00000000, 15.00000000) +[2618897.924] {Default Queue} wl_pointer#1641.motion(187310531, 29.00000000, 15.00000000) +[2618897.928] {Default Queue} wl_pointer#1673.motion(187310531, 29.00000000, 15.00000000) +[2618897.932] {Default Queue} wl_pointer#1705.motion(187310531, 29.00000000, 15.00000000) +[2618897.937] {Default Queue} wl_pointer#1737.motion(187310531, 29.00000000, 15.00000000) +[2618897.941] {Default Queue} wl_pointer#1762.motion(187310531, 29.00000000, 15.00000000) +[2618897.946] {Default Queue} wl_pointer#1801.motion(187310531, 29.00000000, 15.00000000) +[2618897.950] {Default Queue} wl_pointer#1833.motion(187310531, 29.00000000, 15.00000000) +[2618897.954] {Default Queue} wl_pointer#1865.motion(187310531, 29.00000000, 15.00000000) +[2618897.959] {Default Queue} wl_pointer#1897.motion(187310531, 29.00000000, 15.00000000) +[2618897.963] {Default Queue} wl_pointer#1929.motion(187310531, 29.00000000, 15.00000000) +[2618897.968] {Default Queue} wl_pointer#1961.motion(187310531, 29.00000000, 15.00000000) +[2618897.972] {Default Queue} wl_pointer#1993.motion(187310531, 29.00000000, 15.00000000) +[2618897.976] {Default Queue} wl_pointer#2025.motion(187310531, 29.00000000, 15.00000000) +[2618897.980] {Default Queue} wl_pointer#2057.motion(187310531, 29.00000000, 15.00000000) +[2618897.985] {Default Queue} wl_pointer#2089.motion(187310531, 29.00000000, 15.00000000) +[2618897.989] {Default Queue} wl_pointer#2121.motion(187310531, 29.00000000, 15.00000000) +[2618897.994] {Default Queue} wl_pointer#2153.motion(187310531, 29.00000000, 15.00000000) +[2618897.999] {Default Queue} wl_pointer#2185.motion(187310531, 29.00000000, 15.00000000) +[2618898.003] {Default Queue} wl_pointer#2217.motion(187310531, 29.00000000, 15.00000000) +[2618898.008] {Default Queue} wl_pointer#2249.motion(187310531, 29.00000000, 15.00000000) +[2618898.013] {Default Queue} wl_pointer#2281.motion(187310531, 29.00000000, 15.00000000) +[2618898.018] {Default Queue} wl_pointer#2313.motion(187310531, 29.00000000, 15.00000000) +[2618898.023] {Default Queue} wl_pointer#2345.motion(187310531, 29.00000000, 15.00000000) +[2618898.028] {Default Queue} wl_pointer#2377.motion(187310531, 29.00000000, 15.00000000) +[2618898.032] {Default Queue} wl_pointer#2409.motion(187310531, 29.00000000, 15.00000000) +[2618898.036] {Default Queue} wl_pointer#2441.motion(187310531, 29.00000000, 15.00000000) +[2618898.041] {Default Queue} wl_pointer#2473.motion(187310531, 29.00000000, 15.00000000) +[2618898.046] {Default Queue} wl_pointer#2498.motion(187310531, 29.00000000, 15.00000000) +[2618898.063] {Default Queue} -> wl_buffer#3783.destroy() +[2618898.069] {Default Queue} -> wl_buffer#3784.destroy() +[2618898.073] {Default Queue} -> wl_shm_pool#3781.destroy() +[2618898.077] {Default Queue} -> wl_shm_pool#3782.destroy() +[2618898.082] {Default Queue} -> wl_surface#3785.destroy() +[2618898.137] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#1020, fd 575, 640) +[2618898.145] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#1019, fd 578, 640) +[2618898.150] {Default Queue} -> wl_shm_pool#1020.create_buffer(new id wl_buffer#1022, 0, 10, 16, 40, 0) +[2618898.156] {Default Queue} -> wl_shm_pool#1019.create_buffer(new id wl_buffer#1021, 0, 10, 16, 40, 0) +[2618898.165] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#1276) +[2618898.170] {Default Queue} -> wl_surface#1276.attach(wl_buffer#1022, 0, 0) +[2618898.174] {Default Queue} -> wl_surface#1276.commit() +[2618898.179] {Default Queue} -> wl_surface#1276.attach(wl_buffer#1022, 0, 0) +[2618898.183] {Default Queue} -> wl_surface#1276.commit() +[2618898.187] {Default Queue} wl_pointer#2537.motion(187310531, 29.00000000, 15.00000000) +[2618898.193] {Default Queue} wl_pointer#2569.motion(187310531, 29.00000000, 15.00000000) +[2618898.197] {Default Queue} wl_pointer#2601.motion(187310531, 29.00000000, 15.00000000) +[2618898.202] {Default Queue} wl_pointer#2633.motion(187310531, 29.00000000, 15.00000000) +[2618898.206] {Default Queue} wl_pointer#2665.motion(187310531, 29.00000000, 15.00000000) +[2618898.215] {Default Queue} wl_pointer#2697.motion(187310531, 29.00000000, 15.00000000) +[2618898.221] {Default Queue} wl_pointer#2729.motion(187310531, 29.00000000, 15.00000000) +[2618898.226] {Default Queue} wl_pointer#2761.motion(187310531, 29.00000000, 15.00000000) +[2618898.230] {Default Queue} wl_pointer#2793.motion(187310531, 29.00000000, 15.00000000) +[2618898.235] {Default Queue} wl_pointer#2825.motion(187310531, 29.00000000, 15.00000000) +[2618898.240] {Default Queue} wl_pointer#2857.motion(187310531, 29.00000000, 15.00000000) +[2618898.245] {Default Queue} wl_pointer#2889.motion(187310531, 29.00000000, 15.00000000) +[2618898.262] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 201) +[2618898.267] {Default Queue} -> wl_region#2079.add(-483, -219, 485, 201) +[2618898.272] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618898.276] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618898.385] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 201) +[2618898.390] {Default Queue} -> wl_region#2079.add(-483, -219, 485, 201) +[2618898.394] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618898.398] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618898.408] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618898.412] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618898.594] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 201) +[2618898.599] {Default Queue} -> wl_region#2079.add(-483, -219, 485, 201) +[2618898.603] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618898.607] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618898.612] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618898.616] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618898.677] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 201) +[2618898.682] {Default Queue} -> wl_region#2079.add(-483, -219, 485, 201) +[2618898.686] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618898.690] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618898.694] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618898.698] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618898.840] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 201) +[2618898.844] {Default Queue} -> wl_region#2079.add(-483, -219, 485, 201) +[2618898.848] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618898.852] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618898.856] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618898.860] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618898.870] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) +[2618898.874] {Default Queue} -> wl_surface#2055.commit() +[2618898.878] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) +[2618898.882] {Default Queue} -> wl_surface#2055.commit() +[2618898.889] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) +[2618898.892] {Default Queue} -> wl_surface#2055.commit() +[2618898.897] {Default Queue} -> wl_region#2047.subtract(0, 0, 2, 2) +[2618898.903] {Default Queue} -> wl_region#2079.subtract(0, 0, 2, 2) +[2618898.907] {Default Queue} -> wl_subsurface#2074.set_position(1, 1) +[2618898.911] {Default Queue} -> wl_region#2079.subtract(0, 0, 486, 202) +[2618898.915] {Default Queue} -> wl_region#2079.add(-483, -219, 485, 201) +[2618898.918] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618898.922] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618898.926] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618898.932] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 221) +[2618898.936] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 220) +[2618898.940] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618898.944] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618899.007] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 221) +[2618899.014] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 220) +[2618899.017] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618899.021] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618899.026] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618899.030] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618899.168] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 221) +[2618899.172] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 220) +[2618899.176] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618899.180] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618899.184] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618899.188] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618899.244] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 221) +[2618899.248] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 220) +[2618899.252] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618899.256] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618899.260] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618899.264] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618899.399] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 221) +[2618899.403] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 220) +[2618899.407] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618899.411] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618899.415] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618899.419] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618899.424] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) +[2618899.428] {Default Queue} -> wl_surface#2055.commit() +[2618899.433] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 221) +[2618899.437] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 220) +[2618899.441] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618899.445] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618899.501] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 221) +[2618899.506] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 220) +[2618899.510] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618899.514] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618899.518] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618899.522] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618899.657] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 221) +[2618899.662] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 220) +[2618899.666] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618899.669] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618899.674] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618899.678] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618899.733] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 221) +[2618899.737] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 220) +[2618899.741] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618899.745] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618899.749] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618899.753] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618899.893] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 221) +[2618899.897] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 220) +[2618899.901] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2618899.905] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2618899.910] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618899.914] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618899.921] {Default Queue} -> wl_region#2047.subtract(0, 0, 485, 221) +[2618899.927] {Default Queue} -> wl_region#2047.add(-483, -219, 485, 201) +[2618899.931] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) +[2618899.934] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) +[2618899.938] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618899.942] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) +[2618899.955] {Default Queue} -> wl_buffer#2045.destroy() +[2618899.960] {Default Queue} -> wl_buffer#2046.destroy() +[2618899.964] {Default Queue} -> wl_shm_pool#2043.destroy() +[2618899.968] {Default Queue} -> wl_shm_pool#2044.destroy() +[2618900.007] {Default Queue} -> wl_shm#2031.create_pool(new id wl_shm_pool#1275, fd 581, 16) +[2618900.013] {Default Queue} -> wl_shm#2031.create_pool(new id wl_shm_pool#1278, fd 582, 16) +[2618900.018] {Default Queue} -> wl_shm_pool#1275.create_buffer(new id wl_buffer#1277, 0, 2, 2, 8, 0) +[2618900.022] {Default Queue} -> wl_shm_pool#1278.create_buffer(new id wl_buffer#1436, 0, 2, 2, 8, 0) +[2618900.028] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) +[2618900.032] {Default Queue} -> wl_surface#2023.commit() +[2618900.037] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) +[2618900.041] {Default Queue} -> wl_surface#2023.commit() +[2618900.049] {Default Queue} -> wl_region#2047.subtract(0, 0, 485, 221) +[2618900.053] {Default Queue} -> wl_region#2047.add(-483, -219, 485, 201) +[2618900.057] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) +[2618900.061] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) +[2618900.065] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) +[2618900.069] {Default Queue} -> wl_surface#2023.commit() +[2618900.075] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) +[2618900.079] {Default Queue} -> wl_surface#2023.commit() +[2618901.144] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) +[2618901.150] {Default Queue} -> wl_surface#2023.commit() +[2618901.155] {Default Queue} -> wl_region#2047.subtract(0, 0, 485, 221) +[2618901.159] {Default Queue} -> wl_region#2047.add(-483, -219, 485, 201) +[2618901.163] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) +[2618901.167] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) +[2618901.171] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) +[2618901.175] {Default Queue} -> wl_surface#2023.commit() +[2618901.179] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) +[2618901.183] {Default Queue} -> wl_surface#2023.commit() +[2618901.188] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) +[2618901.192] {Default Queue} -> wl_surface#2023.commit() +[2618901.197] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) +[2618901.201] {Default Queue} -> wl_surface#1959.commit() +[2618901.468] {Display Queue} wl_display#1.delete_id(925) +[2618901.474] {Display Queue} wl_display#1.delete_id(926) +[2618901.478] {Display Queue} wl_display#1.delete_id(923) +[2618901.481] {Display Queue} wl_display#1.delete_id(924) +[2618901.485] {Display Queue} wl_display#1.delete_id(1533) +[2618901.489] {Display Queue} wl_display#1.delete_id(1534) +[2618901.492] {Display Queue} wl_display#1.delete_id(1531) +[2618901.496] {Display Queue} wl_display#1.delete_id(1532) +[2618901.500] {Default Queue} wl_pointer#2921.motion(187310531, 29.00000000, 15.00000000) +[2618901.505] {Default Queue} wl_pointer#2953.motion(187310531, 29.00000000, 15.00000000) +[2618901.510] {Default Queue} wl_pointer#2985.motion(187310531, 29.00000000, 15.00000000) +[2618901.514] {Default Queue} wl_pointer#3017.motion(187310531, 29.00000000, 15.00000000) +[2618901.519] {Default Queue} wl_pointer#3049.motion(187310531, 29.00000000, 15.00000000) +[2618901.523] {Default Queue} wl_pointer#3081.motion(187310531, 29.00000000, 15.00000000) +[2618901.529] {Default Queue} wl_pointer#3113.motion(187310531, 29.00000000, 15.00000000) +[2618901.533] {Default Queue} wl_pointer#3145.motion(187310531, 29.00000000, 15.00000000) +[2618901.542] {Default Queue} wl_pointer#3177.motion(187310531, 29.00000000, 15.00000000) +[2618901.549] {Default Queue} wl_pointer#3209.motion(187310531, 29.00000000, 15.00000000) +[2618901.554] {Default Queue} wl_pointer#3241.motion(187310531, 29.00000000, 15.00000000) +[2618901.558] {Default Queue} wl_pointer#3273.motion(187310531, 29.00000000, 15.00000000) +[2618901.563] {Default Queue} wl_pointer#3305.motion(187310531, 29.00000000, 15.00000000) +[2618901.568] {Default Queue} wl_pointer#3337.motion(187310531, 29.00000000, 15.00000000) +[2618901.572] {Default Queue} wl_pointer#3369.motion(187310531, 29.00000000, 15.00000000) +[2618901.576] {Default Queue} wl_pointer#3401.motion(187310531, 29.00000000, 15.00000000) +[2618901.581] {Default Queue} wl_pointer#3433.motion(187310531, 29.00000000, 15.00000000) +[2618901.586] {Default Queue} wl_pointer#3465.motion(187310531, 29.00000000, 15.00000000) +[2618901.591] {Default Queue} wl_pointer#3497.motion(187310531, 29.00000000, 15.00000000) +[2618901.596] {Default Queue} wl_pointer#3529.motion(187310531, 29.00000000, 15.00000000) +[2618901.600] {Default Queue} wl_pointer#3561.motion(187310531, 29.00000000, 15.00000000) +[2618901.605] {Default Queue} wl_pointer#3593.motion(187310531, 29.00000000, 15.00000000) +[2618901.609] {Default Queue} wl_pointer#3625.motion(187310531, 29.00000000, 15.00000000) +[2618901.614] {Default Queue} wl_pointer#3657.motion(187310531, 29.00000000, 15.00000000) +[2618901.619] {Default Queue} wl_pointer#3695.motion(187310531, 29.00000000, 15.00000000) +[2618901.625] {Default Queue} -> wl_region#1983.subtract(0, 0, 485, 221) +[2618901.629] {Default Queue} -> wl_region#1983.add(-480, -216, 482, 218) +[2618901.633] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) +[2618901.637] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) +[2618901.642] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) +[2618901.646] {Default Queue} -> wl_surface#1959.commit() +[2618901.650] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) +[2618901.654] {Default Queue} -> wl_surface#1959.commit() +[2618901.659] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) +[2618901.663] {Default Queue} -> wl_surface#1959.commit() +[2618901.667] {Default Queue} -> wl_region#1951.subtract(0, 0, 115, 167) +[2618901.673] {Default Queue} -> wl_region#1983.subtract(0, 0, 2, 2) +[2618901.678] {Default Queue} -> wl_subsurface#1978.set_position(3, 3) +[2618901.681] {Default Queue} -> wl_region#1983.subtract(0, 0, 485, 221) +[2618901.685] {Default Queue} -> wl_region#1983.add(-480, -216, 482, 218) +[2618901.689] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) +[2618901.693] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) +[2618901.697] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2618901.701] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618901.705] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) +[2618901.709] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) +[2618901.714] {Default Queue} -> wl_region#1983.subtract(0, 0, 485, 221) +[2618901.718] {Default Queue} -> wl_region#1983.add(-480, -216, 482, 218) +[2618901.722] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) +[2618901.725] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) +[2618901.730] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) +[2618901.734] {Default Queue} -> wl_surface#1959.commit() +[2618901.738] {Default Queue} -> wl_region#1983.subtract(0, 0, 592, 380) +[2618901.742] {Default Queue} -> wl_region#1983.add(-480, -216, 589, 377) +[2618901.746] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) +[2618901.750] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) +[2618901.754] {Default Queue} -> wl_region#1951.subtract(0, 0, 482, 218) +[2618901.758] {Default Queue} -> wl_region#1951.add(-20, -216, 22, 218) +[2618901.762] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618901.769] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618901.774] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2618901.778] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618901.782] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) +[2618901.785] {Default Queue} -> wl_surface#1959.damage(0, 0, 109, 161) +[2618901.789] {Default Queue} -> wl_surface#1927.damage(0, 0, 115, 167) +[2618901.808] {Default Queue} -> wl_buffer#1949.destroy() +[2618901.812] {Default Queue} -> wl_buffer#1950.destroy() +[2618901.817] {Default Queue} -> wl_shm_pool#1947.destroy() +[2618901.820] {Default Queue} -> wl_shm_pool#1948.destroy() +[2618901.915] {Default Queue} -> wl_shm#1935.create_pool(new id wl_shm_pool#1532, fd 575, 76820) +[2618901.922] {Default Queue} -> wl_shm#1935.create_pool(new id wl_shm_pool#1531, fd 578, 76820) +[2618901.926] {Default Queue} -> wl_shm_pool#1532.create_buffer(new id wl_buffer#1534, 0, 115, 167, 460, 0) +[2618901.930] {Default Queue} -> wl_shm_pool#1531.create_buffer(new id wl_buffer#1533, 0, 115, 167, 460, 0) +[2618901.953] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) +[2618901.958] {Default Queue} -> wl_surface#1927.commit() +[2618901.979] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) +[2618901.984] {Default Queue} -> wl_surface#1927.commit() +[2618901.994] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) +[2618901.998] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) +[2618902.002] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618902.005] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618902.016] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) +[2618902.020] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) +[2618902.024] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618902.028] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618902.033] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) +[2618902.037] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) +[2618902.041] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618902.045] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618902.050] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) +[2618902.054] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) +[2618902.058] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618902.062] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618902.068] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) +[2618902.072] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) +[2618902.076] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618902.080] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618902.086] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) +[2618902.090] {Default Queue} -> wl_surface#1927.commit() +[2618902.097] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) +[2618902.101] {Default Queue} -> wl_surface#1927.commit() +[2618903.167] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) +[2618903.172] {Default Queue} -> wl_surface#1927.commit() +[2618903.181] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) +[2618903.186] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) +[2618903.190] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618903.193] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618903.199] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) +[2618903.203] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) +[2618903.207] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618903.211] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618903.216] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) +[2618903.223] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) +[2618903.229] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618903.233] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618903.238] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) +[2618903.242] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) +[2618903.246] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618903.250] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618903.256] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) +[2618903.260] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) +[2618903.263] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618903.267] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618903.274] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) +[2618903.277] {Default Queue} -> wl_surface#1927.commit() +[2618903.282] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) +[2618903.286] {Default Queue} -> wl_surface#1927.commit() +[2618903.293] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) +[2618903.296] {Default Queue} -> wl_surface#1927.commit() +[2618903.301] {Default Queue} -> wl_region#895.subtract(0, 0, 576, 167) +[2618903.308] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) +[2618903.312] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) +[2618903.316] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618903.319] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618903.326] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) +[2618903.330] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) +[2618903.334] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618903.338] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618903.343] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) +[2618903.347] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) +[2618903.351] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618903.354] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618903.360] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) +[2618903.364] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) +[2618903.368] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618903.371] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618903.378] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) +[2618903.382] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) +[2618903.386] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2618903.389] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2618903.406] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) +[2618903.410] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) +[2618903.414] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618903.418] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618903.426] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) +[2618903.429] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) +[2618903.433] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618903.437] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618903.442] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) +[2618903.446] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) +[2618903.450] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618903.454] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618903.459] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) +[2618903.463] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) +[2618903.467] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618903.474] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618903.482] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) +[2618903.486] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) +[2618903.489] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2618903.493] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2618903.510] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) +[2618903.514] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) +[2618903.518] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618903.522] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618903.529] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) +[2618903.533] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) +[2618903.537] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618903.540] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618903.546] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) +[2618903.550] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) +[2618903.554] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618903.557] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618903.563] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) +[2618903.567] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) +[2618903.570] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618903.574] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618903.580] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) +[2618903.584] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) +[2618903.588] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2618903.591] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2618903.607] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) +[2618903.611] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) +[2618903.615] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618903.619] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618903.626] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) +[2618903.630] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) +[2618903.634] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618903.637] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618903.643] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) +[2618903.647] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) +[2618903.651] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618903.654] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618903.660] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) +[2618903.664] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) +[2618903.668] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618903.671] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618903.678] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) +[2618903.682] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) +[2618903.686] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2618903.689] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2618903.704] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) +[2618903.708] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) +[2618903.712] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618903.716] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618903.721] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) +[2618903.725] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) +[2618903.729] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618903.735] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618903.741] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) +[2618903.745] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) +[2618903.749] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618903.753] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618903.757] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) +[2618903.761] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) +[2618903.765] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618903.769] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618903.775] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) +[2618903.779] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) +[2618903.782] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2618903.786] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2618903.792] {Default Queue} -> wl_surface#871.damage(0, 0, 576, 167) +[2618903.796] {Default Queue} -> wl_region#895.subtract(0, 0, 22, 218) +[2618903.799] {Default Queue} -> wl_region#895.add(-20, -49, 22, 51) +[2618903.803] {Default Queue} -> wl_surface#871.set_opaque_region(wl_region#896) +[2618903.807] {Default Queue} -> wl_surface#871.set_input_region(wl_region#895) +[2618903.811] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2618903.816] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) +[2618903.820] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) +[2618903.824] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) +[2618903.828] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) +[2618903.832] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) +[2618903.836] {Default Queue} -> wl_surface#1063.damage(0, 0, 16, 2) +[2618903.840] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2618903.844] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2618903.848] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2618903.852] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2618903.856] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2618903.859] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2618903.868] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2618903.872] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) +[2618903.876] {Default Queue} -> wl_surface#935.damage(0, 0, 109, 161) +[2618903.880] {Default Queue} -> wl_surface#903.damage(0, 0, 115, 167) +[2618903.884] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2618903.888] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2618903.892] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) +[2618903.896] {Default Queue} -> wl_surface#1479.damage(0, 0, 109, 161) +[2618903.900] {Default Queue} -> wl_surface#1447.damage(0, 0, 115, 167) +[2618903.904] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2618903.908] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) +[2618903.913] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) +[2618903.916] {Default Queue} -> wl_surface#1639.damage(0, 0, 109, 161) +[2618903.920] {Default Queue} -> wl_surface#1607.damage(0, 0, 115, 167) +[2618903.924] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2618903.929] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2618903.933] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) +[2618903.936] {Default Queue} -> wl_surface#1799.damage(0, 0, 109, 161) +[2618903.940] {Default Queue} -> wl_surface#1772.damage(0, 0, 115, 167) +[2618903.944] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2618903.948] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2618903.952] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) +[2618903.956] {Default Queue} -> wl_surface#1959.damage(0, 0, 109, 161) +[2618903.960] {Default Queue} -> wl_surface#1927.damage(0, 0, 115, 167) +[2618903.964] {Default Queue} -> wl_surface#871.damage(0, 0, 576, 167) +[2618903.976] {Default Queue} -> wl_buffer#893.destroy() +[2618903.984] {Default Queue} -> wl_buffer#894.destroy() +[2618903.989] {Default Queue} -> wl_shm_pool#891.destroy() +[2618903.993] {Default Queue} -> wl_shm_pool#892.destroy() +[2618904.254] {Default Queue} -> wl_shm#879.create_pool(new id wl_shm_pool#924, fd 575, 384768) +[2618904.261] {Default Queue} -> wl_shm#879.create_pool(new id wl_shm_pool#923, fd 578, 384768) +[2618904.265] {Default Queue} -> wl_shm_pool#924.create_buffer(new id wl_buffer#926, 0, 576, 167, 2304, 0) +[2618904.270] {Default Queue} -> wl_shm_pool#923.create_buffer(new id wl_buffer#925, 0, 576, 167, 2304, 0) +[2618904.361] {Default Queue} -> wl_surface#871.attach(wl_buffer#926, 0, 0) +[2618904.366] {Default Queue} -> wl_surface#871.commit() +[2618904.461] {Default Queue} -> wl_surface#871.attach(wl_buffer#926, 0, 0) +[2618904.466] {Default Queue} -> wl_surface#871.commit() +[2618904.478] {Default Queue} -> wl_region#895.subtract(0, 0, 596, 383) +[2618904.483] {Default Queue} -> wl_region#895.add(-20, -49, 596, 216) +[2618904.487] {Default Queue} -> wl_surface#871.set_opaque_region(wl_region#896) +[2618904.491] {Default Queue} -> wl_surface#871.set_input_region(wl_region#895) +[2618904.507] {Default Queue} -> wl_surface#871.attach(wl_buffer#926, 0, 0) +[2618904.511] {Default Queue} -> wl_surface#871.commit() +[2618904.523] {Default Queue} -> wl_surface#871.attach(wl_buffer#926, 0, 0) +[2618904.528] {Default Queue} -> wl_surface#871.commit() +[2618905.599] {Default Queue} -> wl_surface#871.attach(wl_buffer#926, 0, 0) +[2618905.606] {Default Queue} -> wl_surface#871.commit() +[2618905.617] {Default Queue} -> wl_region#895.subtract(0, 0, 596, 383) +[2618905.621] {Default Queue} -> wl_region#895.add(-20, -49, 596, 216) +[2618905.625] {Default Queue} -> wl_surface#871.set_opaque_region(wl_region#896) +[2618905.629] {Default Queue} -> wl_surface#871.set_input_region(wl_region#895) +[2618905.645] {Default Queue} -> wl_surface#871.attach(wl_buffer#926, 0, 0) +[2618905.649] {Default Queue} -> wl_surface#871.commit() +[2618905.659] {Default Queue} -> wl_surface#871.attach(wl_buffer#926, 0, 0) +[2618905.664] {Default Queue} -> wl_surface#871.commit() +[2618905.675] {Default Queue} -> wl_surface#871.attach(wl_buffer#926, 0, 0) +[2618905.680] {Default Queue} -> wl_surface#871.commit() +[2618905.685] {Default Queue} -> wl_region#2207.subtract(0, 0, 2, 20) +[2618905.690] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 385) +[2618905.694] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 385) +[2618905.697] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2618905.701] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2618905.705] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2618905.717] {Default Queue} -> wl_buffer#2205.destroy() +[2618905.722] {Default Queue} -> wl_buffer#2206.destroy() +[2618905.725] {Default Queue} -> wl_shm_pool#2203.destroy() +[2618905.729] {Default Queue} -> wl_shm_pool#2204.destroy() +[2618905.765] {Default Queue} -> wl_shm#2191.create_pool(new id wl_shm_pool#1435, fd 575, 160) +[2618905.771] {Default Queue} -> wl_shm#2191.create_pool(new id wl_shm_pool#1438, fd 578, 160) +[2618905.775] {Default Queue} -> wl_shm_pool#1435.create_buffer(new id wl_buffer#1437, 0, 2, 20, 8, 0) +[2618905.780] {Default Queue} -> wl_shm_pool#1438.create_buffer(new id wl_buffer#1404, 0, 2, 20, 8, 0) +[2618905.786] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) +[2618905.790] {Default Queue} -> wl_surface#2183.commit() +[2618905.795] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) +[2618905.799] {Default Queue} -> wl_surface#2183.commit() +[2618905.807] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 385) +[2618905.811] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 385) +[2618905.815] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2618905.819] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2618905.900] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 385) +[2618905.905] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 385) +[2618905.912] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2618905.918] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2618905.924] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2618905.928] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2618905.978] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 385) +[2618905.983] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 385) +[2618905.987] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2618905.990] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2618905.998] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2618906.002] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2618906.006] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) +[2618906.010] {Default Queue} -> wl_surface#2183.commit() +[2618906.016] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) +[2618906.020] {Default Queue} -> wl_surface#2183.commit() +[2618907.084] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) +[2618907.089] {Default Queue} -> wl_surface#2183.commit() +[2618907.095] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 385) +[2618907.099] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 385) +[2618907.103] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2618907.107] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2618907.163] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 385) +[2618907.168] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 385) +[2618907.172] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2618907.176] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2618907.181] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2618907.185] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2618907.232] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 385) +[2618907.236] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 385) +[2618907.240] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2618907.244] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2618907.249] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2618907.253] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2618907.257] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) +[2618907.261] {Default Queue} -> wl_surface#2183.commit() +[2618907.265] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) +[2618907.269] {Default Queue} -> wl_surface#2183.commit() +[2618907.274] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) +[2618907.278] {Default Queue} -> wl_surface#2183.commit() +[2618907.284] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618907.288] {Default Queue} -> wl_surface#2279.commit() +[2618908.348] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618908.353] {Default Queue} -> wl_surface#2279.commit() +[2618908.361] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) +[2618908.365] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) +[2618908.369] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618908.373] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618908.381] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) +[2618908.385] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) +[2618908.389] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618908.392] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618908.397] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) +[2618908.401] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) +[2618908.405] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618908.408] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618908.413] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) +[2618908.420] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) +[2618908.426] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618908.430] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618908.435] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) +[2618908.439] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) +[2618908.443] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618908.446] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618908.453] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) +[2618908.458] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) +[2618908.462] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618908.465] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618908.470] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) +[2618908.474] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) +[2618908.478] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618908.482] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618908.487] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) +[2618908.491] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) +[2618908.495] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618908.499] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618908.503] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) +[2618908.507] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) +[2618908.511] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618908.514] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618908.524] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) +[2618908.529] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) +[2618908.533] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618908.536] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618908.541] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) +[2618908.545] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) +[2618908.549] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618908.552] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618908.557] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) +[2618908.561] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) +[2618908.565] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618908.568] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618908.573] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) +[2618908.577] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) +[2618908.581] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618908.584] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618908.589] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) +[2618908.593] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) +[2618908.597] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618908.600] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618908.606] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) +[2618908.610] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) +[2618908.614] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618908.618] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618908.624] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) +[2618908.628] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) +[2618908.632] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618908.635] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618908.640] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) +[2618908.647] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) +[2618908.652] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618908.656] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618908.660] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) +[2618908.664] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) +[2618908.668] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618908.671] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618908.678] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) +[2618908.682] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) +[2618908.685] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618908.689] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618908.697] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618908.701] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618908.705] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618908.709] {Default Queue} -> wl_surface#2279.commit() +[2618908.713] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618908.717] {Default Queue} -> wl_surface#2279.commit() +[2618908.723] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618908.727] {Default Queue} -> wl_surface#2279.commit() +[2618908.732] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) +[2618908.736] {Default Queue} -> wl_surface#2311.commit() +[2618909.797] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) +[2618909.802] {Default Queue} -> wl_surface#2311.commit() +[2618909.808] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618909.814] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) +[2618909.817] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618909.821] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618909.831] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618909.835] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) +[2618909.839] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618909.842] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618909.847] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618909.851] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) +[2618909.855] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618909.859] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618909.867] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618909.871] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) +[2618909.875] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618909.879] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618909.883] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618909.887] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) +[2618909.891] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618909.895] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618909.899] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618909.903] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) +[2618909.907] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618909.911] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618909.945] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618909.950] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) +[2618909.954] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618909.957] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618909.963] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618909.967] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618909.974] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618909.982] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) +[2618909.987] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618909.991] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618909.996] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618910.000] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) +[2618910.004] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618910.007] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618910.012] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618910.016] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) +[2618910.020] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618910.024] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618910.029] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618910.033] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) +[2618910.036] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618910.040] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618910.045] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) +[2618910.049] {Default Queue} -> wl_surface#2311.commit() +[2618910.052] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) +[2618910.056] {Default Queue} -> wl_surface#2311.commit() +[2618910.062] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) +[2618910.065] {Default Queue} -> wl_surface#2311.commit() +[2618910.071] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) +[2618910.075] {Default Queue} -> wl_surface#2247.commit() +[2618911.136] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) +[2618911.141] {Default Queue} -> wl_surface#2247.commit() +[2618911.149] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 368) +[2618911.153] {Default Queue} -> wl_region#2271.add(-23, -386, 25, 368) +[2618911.157] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618911.160] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618911.170] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 368) +[2618911.174] {Default Queue} -> wl_region#2271.add(-23, -386, 25, 368) +[2618911.177] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618911.181] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618911.186] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 368) +[2618911.190] {Default Queue} -> wl_region#2271.add(-23, -386, 25, 368) +[2618911.194] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618911.197] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618911.201] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 368) +[2618911.205] {Default Queue} -> wl_region#2271.add(-23, -386, 25, 368) +[2618911.209] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618911.213] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618911.217] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 368) +[2618911.221] {Default Queue} -> wl_region#2271.add(-23, -386, 25, 368) +[2618911.225] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618911.229] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618911.302] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 368) +[2618911.307] {Default Queue} -> wl_region#2271.add(-23, -386, 25, 368) +[2618911.311] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618911.314] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618911.320] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618911.324] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618911.329] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) +[2618911.333] {Default Queue} -> wl_surface#2247.commit() +[2618911.336] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) +[2618911.348] {Default Queue} -> wl_surface#2247.commit() +[2618911.356] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) +[2618911.359] {Default Queue} -> wl_surface#2247.commit() +[2618911.363] {Default Queue} -> wl_region#2239.subtract(0, 0, 2, 2) +[2618911.369] {Default Queue} -> wl_region#2271.subtract(0, 0, 2, 2) +[2618911.373] {Default Queue} -> wl_subsurface#2266.set_position(1, 1) +[2618911.377] {Default Queue} -> wl_region#2271.subtract(0, 0, 26, 369) +[2618911.381] {Default Queue} -> wl_region#2271.add(-23, -386, 25, 368) +[2618911.385] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618911.388] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618911.392] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618911.396] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618911.400] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618911.405] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) +[2618911.409] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) +[2618911.413] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618911.417] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618911.424] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) +[2618911.429] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) +[2618911.432] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618911.436] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618911.440] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) +[2618911.444] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) +[2618911.448] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618911.452] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618911.456] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) +[2618911.460] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) +[2618911.464] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618911.468] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618911.472] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) +[2618911.476] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) +[2618911.480] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618911.483] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618911.542] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) +[2618911.547] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) +[2618911.551] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618911.554] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618911.559] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618911.563] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618911.568] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) +[2618911.572] {Default Queue} -> wl_surface#2247.commit() +[2618911.578] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) +[2618911.582] {Default Queue} -> wl_subsurface#2298.set_position(-14, 0) +[2618911.586] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) +[2618911.590] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) +[2618911.594] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618911.598] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618911.601] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618911.607] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) +[2618911.611] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) +[2618911.615] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618911.618] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618911.624] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) +[2618911.629] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) +[2618911.632] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618911.639] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618911.645] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) +[2618911.649] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) +[2618911.652] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618911.656] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618911.660] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) +[2618911.664] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) +[2618911.668] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618911.672] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618911.676] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) +[2618911.680] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) +[2618911.684] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618911.687] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618911.693] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) +[2618911.697] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) +[2618911.701] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618911.705] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618911.709] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) +[2618911.713] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) +[2618911.717] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618911.720] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618911.725] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) +[2618911.729] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) +[2618911.732] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618911.736] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618911.740] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) +[2618911.744] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) +[2618911.748] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618911.752] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618911.761] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) +[2618911.766] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) +[2618911.770] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618911.773] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618911.777] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) +[2618911.781] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) +[2618911.785] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618911.789] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618911.793] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) +[2618911.797] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) +[2618911.801] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618911.804] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618911.809] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) +[2618911.813] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) +[2618911.816] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618911.820] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618911.825] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) +[2618911.829] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) +[2618911.833] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618911.837] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618911.843] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) +[2618911.847] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) +[2618911.850] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618911.857] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618911.866] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) +[2618911.870] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) +[2618911.874] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618911.877] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618911.881] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) +[2618911.885] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) +[2618911.889] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618911.893] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618911.897] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) +[2618911.901] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) +[2618911.905] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618911.908] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618911.914] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) +[2618911.918] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) +[2618911.922] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2618911.925] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2618911.931] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618911.935] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618911.940] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618911.944] {Default Queue} -> wl_surface#2279.commit() +[2618911.949] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2618911.953] {Default Queue} -> wl_surface#2279.commit() +[2618911.957] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 2) +[2618911.961] {Default Queue} -> wl_subsurface#2330.set_position(0, 20) +[2618911.964] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618911.968] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) +[2618911.972] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618911.976] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618911.980] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618911.985] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618911.989] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) +[2618911.993] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618911.996] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618912.005] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618912.009] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) +[2618912.013] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618912.017] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618912.021] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618912.025] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) +[2618912.029] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618912.032] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618912.037] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618912.040] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) +[2618912.044] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618912.048] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618912.052] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618912.056] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) +[2618912.060] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618912.064] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618912.068] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618912.072] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) +[2618912.076] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618912.082] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618912.112] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618912.116] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) +[2618912.120] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618912.124] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618912.129] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618912.133] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618912.140] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618912.145] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) +[2618912.149] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618912.153] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618912.157] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618912.161] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) +[2618912.165] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618912.168] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618912.173] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618912.177] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) +[2618912.181] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618912.184] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618912.188] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2618912.192] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) +[2618912.196] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2618912.200] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2618912.204] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) +[2618912.208] {Default Queue} -> wl_surface#2311.commit() +[2618912.214] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618912.218] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618912.223] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) +[2618912.227] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) +[2618912.231] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618912.235] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618912.242] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) +[2618912.247] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) +[2618912.251] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618912.258] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618912.262] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) +[2618912.266] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) +[2618912.270] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618912.274] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618912.278] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) +[2618912.282] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) +[2618912.286] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618912.289] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618912.294] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) +[2618912.298] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) +[2618912.301] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618912.305] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618912.364] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) +[2618912.368] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) +[2618912.372] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2618912.376] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2618912.380] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618912.384] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618912.389] {Default Queue} -> wl_region#2239.subtract(0, 0, 25, 388) +[2618912.396] {Default Queue} -> wl_region#2239.add(-23, -386, 25, 368) +[2618912.402] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) +[2618912.405] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) +[2618912.409] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618912.413] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618912.417] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618912.421] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) +[2618912.434] {Default Queue} -> wl_buffer#2237.destroy() +[2618912.439] {Default Queue} -> wl_buffer#2238.destroy() +[2618912.443] {Default Queue} -> wl_shm_pool#2235.destroy() +[2618912.446] {Default Queue} -> wl_shm_pool#2236.destroy() +[2618912.486] {Default Queue} -> wl_shm#2223.create_pool(new id wl_shm_pool#1403, fd 575, 16) +[2618912.492] {Default Queue} -> wl_shm#2223.create_pool(new id wl_shm_pool#1406, fd 578, 16) +[2618912.496] {Default Queue} -> wl_shm_pool#1403.create_buffer(new id wl_buffer#1405, 0, 2, 2, 8, 0) +[2618912.501] {Default Queue} -> wl_shm_pool#1406.create_buffer(new id wl_buffer#1372, 0, 2, 2, 8, 0) +[2618912.507] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) +[2618912.511] {Default Queue} -> wl_surface#2215.commit() +[2618912.516] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) +[2618912.520] {Default Queue} -> wl_surface#2215.commit() +[2618912.527] {Default Queue} -> wl_region#2239.subtract(0, 0, 25, 388) +[2618912.531] {Default Queue} -> wl_region#2239.add(-23, -386, 25, 368) +[2618912.535] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) +[2618912.539] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) +[2618912.543] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) +[2618912.547] {Default Queue} -> wl_surface#2215.commit() +[2618912.553] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) +[2618912.557] {Default Queue} -> wl_surface#2215.commit() +[2618913.620] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) +[2618913.626] {Default Queue} -> wl_surface#2215.commit() +[2618913.631] {Default Queue} -> wl_region#2239.subtract(0, 0, 25, 388) +[2618913.635] {Default Queue} -> wl_region#2239.add(-23, -386, 25, 368) +[2618913.639] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) +[2618913.643] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) +[2618913.647] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) +[2618913.651] {Default Queue} -> wl_surface#2215.commit() +[2618913.655] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) +[2618913.659] {Default Queue} -> wl_surface#2215.commit() +[2618913.664] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) +[2618913.668] {Default Queue} -> wl_surface#2215.commit() +[2618913.674] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) +[2618913.678] {Default Queue} -> wl_surface#2151.commit() +[2618914.738] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) +[2618914.743] {Default Queue} -> wl_surface#2151.commit() +[2618914.749] {Default Queue} -> wl_region#2175.subtract(0, 0, 25, 388) +[2618914.753] {Default Queue} -> wl_region#2175.add(-20, -383, 22, 385) +[2618914.757] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) +[2618914.760] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) +[2618914.766] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) +[2618914.770] {Default Queue} -> wl_surface#2151.commit() +[2618914.773] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) +[2618914.777] {Default Queue} -> wl_surface#2151.commit() +[2618914.782] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) +[2618914.786] {Default Queue} -> wl_surface#2151.commit() +[2618914.790] {Default Queue} -> wl_region#2143.subtract(0, 0, 115, 167) +[2618914.796] {Default Queue} -> wl_region#2175.subtract(0, 0, 2, 2) +[2618914.800] {Default Queue} -> wl_subsurface#2170.set_position(3, 3) +[2618914.808] {Default Queue} -> wl_region#2175.subtract(0, 0, 25, 388) +[2618914.814] {Default Queue} -> wl_region#2175.add(-20, -383, 22, 385) +[2618914.818] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) +[2618914.822] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) +[2618914.825] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2618914.829] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618914.833] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618914.837] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618914.841] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) +[2618914.845] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) +[2618914.850] {Default Queue} -> wl_region#2175.subtract(0, 0, 25, 388) +[2618914.854] {Default Queue} -> wl_region#2175.add(-20, -383, 22, 385) +[2618914.858] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) +[2618914.867] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) +[2618914.871] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) +[2618914.875] {Default Queue} -> wl_surface#2151.commit() +[2618914.879] {Default Queue} -> wl_region#2175.subtract(0, 0, 132, 547) +[2618914.883] {Default Queue} -> wl_region#2175.add(-20, -383, 129, 544) +[2618914.887] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) +[2618914.891] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) +[2618914.895] {Default Queue} -> wl_region#2143.subtract(0, 0, 22, 51) +[2618914.899] {Default Queue} -> wl_region#2143.add(-20, -49, 22, 51) +[2618914.903] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618914.906] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618914.910] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2618914.914] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618914.918] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618914.922] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618914.926] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) +[2618914.930] {Default Queue} -> wl_surface#2151.damage(0, 0, 109, 161) +[2618914.933] {Default Queue} -> wl_surface#2119.damage(0, 0, 115, 167) +[2618914.945] {Default Queue} -> wl_buffer#2141.destroy() +[2618914.950] {Default Queue} -> wl_buffer#2142.destroy() +[2618914.953] {Default Queue} -> wl_shm_pool#2139.destroy() +[2618914.957] {Default Queue} -> wl_shm_pool#2140.destroy() +[2618915.034] {Default Queue} -> wl_shm#2127.create_pool(new id wl_shm_pool#1371, fd 575, 76820) +[2618915.040] {Default Queue} -> wl_shm#2127.create_pool(new id wl_shm_pool#1374, fd 578, 76820) +[2618915.044] {Default Queue} -> wl_shm_pool#1371.create_buffer(new id wl_buffer#1373, 0, 115, 167, 460, 0) +[2618915.049] {Default Queue} -> wl_shm_pool#1374.create_buffer(new id wl_buffer#1340, 0, 115, 167, 460, 0) +[2618915.072] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) +[2618915.076] {Default Queue} -> wl_surface#2119.commit() +[2618915.097] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) +[2618915.101] {Default Queue} -> wl_surface#2119.commit() +[2618915.110] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) +[2618915.115] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) +[2618915.119] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618915.122] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618915.130] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) +[2618915.134] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) +[2618915.137] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618915.141] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618915.147] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) +[2618915.151] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) +[2618915.154] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618915.161] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618915.169] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) +[2618915.173] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) +[2618915.176] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618915.180] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618915.186] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) +[2618915.190] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) +[2618915.194] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618915.198] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618915.204] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) +[2618915.208] {Default Queue} -> wl_surface#2119.commit() +[2618915.215] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) +[2618915.219] {Default Queue} -> wl_surface#2119.commit() +[2618916.283] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) +[2618916.289] {Default Queue} -> wl_surface#2119.commit() +[2618916.296] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) +[2618916.301] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) +[2618916.304] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618916.308] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618916.314] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) +[2618916.318] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) +[2618916.322] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618916.325] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618916.330] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) +[2618916.334] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) +[2618916.338] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618916.342] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618916.347] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) +[2618916.351] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) +[2618916.355] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618916.358] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618916.364] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) +[2618916.368] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) +[2618916.372] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618916.376] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618916.382] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) +[2618916.386] {Default Queue} -> wl_surface#2119.commit() +[2618916.391] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) +[2618916.394] {Default Queue} -> wl_surface#2119.commit() +[2618916.401] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) +[2618916.405] {Default Queue} -> wl_surface#2119.commit() +[2618916.409] {Default Queue} -> wl_region#2431.subtract(0, 0, 2, 20) +[2618916.413] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 385) +[2618916.417] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 385) +[2618916.421] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2618916.424] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2618916.428] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2618916.443] {Default Queue} -> wl_buffer#2429.destroy() +[2618916.448] {Default Queue} -> wl_buffer#2430.destroy() +[2618916.452] {Default Queue} -> wl_shm_pool#2427.destroy() +[2618916.456] {Default Queue} -> wl_shm_pool#2428.destroy() +[2618916.494] {Default Queue} -> wl_shm#2415.create_pool(new id wl_shm_pool#1339, fd 575, 160) +[2618916.499] {Default Queue} -> wl_shm#2415.create_pool(new id wl_shm_pool#1342, fd 578, 160) +[2618916.503] {Default Queue} -> wl_shm_pool#1339.create_buffer(new id wl_buffer#1341, 0, 2, 20, 8, 0) +[2618916.511] {Default Queue} -> wl_shm_pool#1342.create_buffer(new id wl_buffer#1308, 0, 2, 20, 8, 0) +[2618916.519] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) +[2618916.523] {Default Queue} -> wl_surface#2407.commit() +[2618916.528] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) +[2618916.532] {Default Queue} -> wl_surface#2407.commit() +[2618916.541] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 385) +[2618916.546] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 385) +[2618916.550] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2618916.554] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2618916.672] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 385) +[2618916.676] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 385) +[2618916.680] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2618916.684] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2618916.690] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2618916.694] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2618916.775] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 385) +[2618916.780] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 385) +[2618916.784] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2618916.788] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2618916.793] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2618916.797] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2618916.802] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) +[2618916.806] {Default Queue} -> wl_surface#2407.commit() +[2618916.812] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) +[2618916.816] {Default Queue} -> wl_surface#2407.commit() +[2618917.867] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) +[2618917.872] {Default Queue} -> wl_surface#2407.commit() +[2618917.879] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 385) +[2618917.885] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 385) +[2618917.889] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2618917.893] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2618917.985] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 385) +[2618917.989] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 385) +[2618917.993] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2618917.997] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2618918.002] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2618918.006] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2618918.081] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 385) +[2618918.086] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 385) +[2618918.090] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2618918.093] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2618918.099] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2618918.103] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2618918.107] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) +[2618918.111] {Default Queue} -> wl_surface#2407.commit() +[2618918.115] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) +[2618918.119] {Default Queue} -> wl_surface#2407.commit() +[2618918.124] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) +[2618918.128] {Default Queue} -> wl_surface#2407.commit() +[2618918.135] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) +[2618918.138] {Default Queue} -> wl_surface#2471.commit() +[2618919.199] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) +[2618919.204] {Default Queue} -> wl_surface#2471.commit() +[2618919.217] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) +[2618919.221] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) +[2618919.229] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.235] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.241] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) +[2618919.245] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) +[2618919.249] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.253] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.257] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) +[2618919.261] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) +[2618919.265] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.268] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.273] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) +[2618919.277] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) +[2618919.281] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.284] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.289] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) +[2618919.293] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) +[2618919.296] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.300] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.305] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) +[2618919.309] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) +[2618919.313] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.317] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.321] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) +[2618919.325] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) +[2618919.329] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.332] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.337] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) +[2618919.341] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) +[2618919.345] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.348] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.353] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) +[2618919.357] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) +[2618919.360] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.364] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.369] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) +[2618919.373] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) +[2618919.377] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.380] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.386] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) +[2618919.390] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) +[2618919.394] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.397] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.401] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) +[2618919.405] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) +[2618919.409] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.413] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.417] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) +[2618919.421] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) +[2618919.425] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.428] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.433] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) +[2618919.437] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) +[2618919.443] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.448] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.453] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) +[2618919.457] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) +[2618919.461] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.465] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.469] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) +[2618919.473] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) +[2618919.477] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.481] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.485] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) +[2618919.489] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) +[2618919.493] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.496] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.501] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) +[2618919.505] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) +[2618919.508] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.512] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.516] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) +[2618919.520] {Default Queue} -> wl_surface#2471.commit() +[2618919.524] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) +[2618919.528] {Default Queue} -> wl_surface#2471.commit() +[2618919.533] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) +[2618919.537] {Default Queue} -> wl_surface#2471.commit() +[2618919.541] {Default Queue} -> wl_region#2463.subtract(0, 0, 2, 2) +[2618919.546] {Default Queue} -> wl_region#2495.subtract(0, 0, 2, 2) +[2618919.550] {Default Queue} -> wl_subsurface#2490.set_position(1, -11) +[2618919.554] {Default Queue} -> wl_region#2495.subtract(0, 0, 141, 379) +[2618919.558] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) +[2618919.562] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.565] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.569] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) +[2618919.579] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618919.583] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618919.587] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.590] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.596] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618919.600] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618919.604] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.607] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.612] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618919.616] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618919.619] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.623] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.627] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618919.631] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618919.635] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.638] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.643] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618919.646] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618919.650] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.654] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.659] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618919.666] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618919.671] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.675] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.679] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618919.683] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618919.687] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.691] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.695] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618919.699] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618919.703] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.706] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.711] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618919.715] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618919.718] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.722] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.727] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618919.731] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618919.734] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.738] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.743] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618919.747] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618919.751] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.755] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.759] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618919.763] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618919.767] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.770] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.775] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618919.779] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618919.782] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.786] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.790] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618919.794] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618919.798] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.801] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.806] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618919.810] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618919.814] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.818] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.822] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618919.826] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618919.830] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.833] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.837] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618919.841] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618919.845] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.849] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.853] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618919.857] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618919.866] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.895] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.917] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) +[2618919.926] {Default Queue} -> wl_surface#2471.commit() +[2618919.948] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618919.954] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618919.959] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.963] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.971] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618919.975] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618919.979] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.983] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618919.988] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618919.992] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618919.996] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618919.999] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618920.004] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618920.008] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618920.012] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618920.016] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618920.021] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618920.025] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618920.029] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618920.033] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618920.040] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618920.044] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618920.048] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618920.051] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618920.057] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618920.061] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618920.065] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618920.069] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618920.073] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618920.078] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618920.081] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618920.085] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618920.090] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618920.094] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618920.098] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618920.101] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618920.106] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618920.111] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618920.115] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618920.119] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618920.125] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618920.129] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618920.133] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618920.136] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618920.141] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618920.145] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618920.149] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618920.153] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618920.157] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618920.161] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618920.166] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618920.173] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618920.179] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618920.183] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618920.187] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618920.191] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618920.197] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618920.201] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618920.205] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618920.208] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618920.213] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618920.218] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618920.222] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618920.225] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618920.230] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618920.234] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618920.238] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618920.246] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618920.252] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2618920.256] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2618920.260] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2618920.264] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2618920.268] {Default Queue} -> wl_region#2463.subtract(0, 0, 140, 388) +[2618920.272] {Default Queue} -> wl_region#2463.add(-138, -386, 140, 368) +[2618920.276] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) +[2618920.280] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) +[2618920.284] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) +[2618920.288] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) +[2618920.301] {Default Queue} -> wl_buffer#2461.destroy() +[2618920.306] {Default Queue} -> wl_buffer#2462.destroy() +[2618920.311] {Default Queue} -> wl_shm_pool#2459.destroy() +[2618920.315] {Default Queue} -> wl_shm_pool#2460.destroy() +[2618920.359] {Default Queue} -> wl_shm#2447.create_pool(new id wl_shm_pool#1307, fd 575, 16) +[2618920.366] {Default Queue} -> wl_shm#2447.create_pool(new id wl_shm_pool#1310, fd 578, 16) +[2618920.371] {Default Queue} -> wl_shm_pool#1307.create_buffer(new id wl_buffer#1309, 0, 2, 2, 8, 0) +[2618920.376] {Default Queue} -> wl_shm_pool#1310.create_buffer(new id wl_buffer#1084, 0, 2, 2, 8, 0) +[2618920.384] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) +[2618920.388] {Default Queue} -> wl_surface#2439.commit() +[2618920.393] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) +[2618920.397] {Default Queue} -> wl_surface#2439.commit() +[2618920.405] {Default Queue} -> wl_region#2463.subtract(0, 0, 140, 388) +[2618920.409] {Default Queue} -> wl_region#2463.add(-138, -386, 140, 368) +[2618920.413] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) +[2618920.418] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) +[2618920.422] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) +[2618920.426] {Default Queue} -> wl_surface#2439.commit() +[2618920.433] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) +[2618920.437] {Default Queue} -> wl_surface#2439.commit() +[2618921.504] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) +[2618921.517] {Default Queue} -> wl_surface#2439.commit() +[2618921.528] {Default Queue} -> wl_region#2463.subtract(0, 0, 140, 388) +[2618921.532] {Default Queue} -> wl_region#2463.add(-138, -386, 140, 368) +[2618921.537] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) +[2618921.541] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) +[2618921.550] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) +[2618921.557] {Default Queue} -> wl_surface#2439.commit() +[2618921.561] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) +[2618921.565] {Default Queue} -> wl_surface#2439.commit() +[2618921.572] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) +[2618921.576] {Default Queue} -> wl_surface#2439.commit() +[2618921.582] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) +[2618921.586] {Default Queue} -> wl_surface#2375.commit() +[2618922.651] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) +[2618922.664] {Default Queue} -> wl_surface#2375.commit() +[2618922.674] {Default Queue} -> wl_region#2399.subtract(0, 0, 140, 388) +[2618922.679] {Default Queue} -> wl_region#2399.add(-135, -383, 137, 385) +[2618922.683] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) +[2618922.687] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) +[2618922.693] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) +[2618922.697] {Default Queue} -> wl_surface#2375.commit() +[2618922.701] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) +[2618922.705] {Default Queue} -> wl_surface#2375.commit() +[2618922.711] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) +[2618922.715] {Default Queue} -> wl_surface#2375.commit() +[2618922.720] {Default Queue} -> wl_region#2367.subtract(0, 0, 115, 167) +[2618922.727] {Default Queue} -> wl_region#2399.subtract(0, 0, 2, 2) +[2618922.731] {Default Queue} -> wl_subsurface#2394.set_position(3, 3) +[2618922.735] {Default Queue} -> wl_region#2399.subtract(0, 0, 140, 388) +[2618922.739] {Default Queue} -> wl_region#2399.add(-135, -383, 137, 385) +[2618922.743] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) +[2618922.747] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) +[2618922.751] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2618922.756] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) +[2618922.760] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) +[2618922.764] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) +[2618922.770] {Default Queue} -> wl_region#2399.subtract(0, 0, 140, 388) +[2618922.774] {Default Queue} -> wl_region#2399.add(-135, -383, 137, 385) +[2618922.778] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) +[2618922.782] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) +[2618922.786] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) +[2618922.790] {Default Queue} -> wl_surface#2375.commit() +[2618922.795] {Default Queue} -> wl_region#2399.subtract(0, 0, 247, 547) +[2618922.799] {Default Queue} -> wl_region#2399.add(-135, -383, 244, 544) +[2618922.803] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) +[2618922.808] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) +[2618922.812] {Default Queue} -> wl_region#2367.subtract(0, 0, 137, 385) +[2618922.816] {Default Queue} -> wl_region#2367.add(-20, -383, 22, 385) +[2618922.820] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618922.824] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618922.828] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2618922.832] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) +[2618922.836] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) +[2618922.840] {Default Queue} -> wl_surface#2375.damage(0, 0, 109, 161) +[2618922.844] {Default Queue} -> wl_surface#2343.damage(0, 0, 115, 167) +[2618922.857] {Default Queue} -> wl_buffer#2365.destroy() +[2618922.867] {Default Queue} -> wl_buffer#2366.destroy() +[2618922.871] {Default Queue} -> wl_shm_pool#2363.destroy() +[2618922.875] {Default Queue} -> wl_shm_pool#2364.destroy() +[2618922.982] {Default Queue} -> wl_shm#2351.create_pool(new id wl_shm_pool#1083, fd 575, 76820) +[2618922.989] {Default Queue} -> wl_shm#2351.create_pool(new id wl_shm_pool#1086, fd 578, 76820) +[2618922.998] {Default Queue} -> wl_shm_pool#1083.create_buffer(new id wl_buffer#1085, 0, 115, 167, 460, 0) +[2618923.005] {Default Queue} -> wl_shm_pool#1086.create_buffer(new id wl_buffer#1244, 0, 115, 167, 460, 0) +[2618923.029] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) +[2618923.034] {Default Queue} -> wl_surface#2343.commit() +[2618923.056] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) +[2618923.061] {Default Queue} -> wl_surface#2343.commit() +[2618923.071] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) +[2618923.075] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) +[2618923.079] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618923.083] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618923.093] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) +[2618923.097] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) +[2618923.102] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618923.106] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618923.112] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) +[2618923.116] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) +[2618923.120] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618923.124] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618923.130] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) +[2618923.134] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) +[2618923.137] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618923.141] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618923.148] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) +[2618923.152] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) +[2618923.156] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618923.159] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618923.166] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) +[2618923.170] {Default Queue} -> wl_surface#2343.commit() +[2618923.178] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) +[2618923.183] {Default Queue} -> wl_surface#2343.commit() +[2618924.252] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) +[2618924.265] {Default Queue} -> wl_surface#2343.commit() +[2618924.278] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) +[2618924.283] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) +[2618924.288] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618924.293] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618924.300] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) +[2618924.304] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) +[2618924.308] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618924.312] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618924.318] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) +[2618924.322] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) +[2618924.326] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618924.330] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618924.335] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) +[2618924.339] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) +[2618924.343] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618924.347] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618924.353] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) +[2618924.357] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) +[2618924.361] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618924.365] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618924.376] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) +[2618924.384] {Default Queue} -> wl_surface#2343.commit() +[2618924.389] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) +[2618924.393] {Default Queue} -> wl_surface#2343.commit() +[2618924.401] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) +[2618924.405] {Default Queue} -> wl_surface#2343.commit() +[2618924.410] {Default Queue} -> wl_region#2591.subtract(0, 0, 2, 20) +[2618924.415] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 385) +[2618924.419] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 385) +[2618924.423] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2618924.427] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2618924.431] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2618924.444] {Default Queue} -> wl_buffer#2589.destroy() +[2618924.450] {Default Queue} -> wl_buffer#2590.destroy() +[2618924.454] {Default Queue} -> wl_shm_pool#2587.destroy() +[2618924.458] {Default Queue} -> wl_shm_pool#2588.destroy() +[2618924.501] {Default Queue} -> wl_shm#2575.create_pool(new id wl_shm_pool#1243, fd 575, 160) +[2618924.508] {Default Queue} -> wl_shm#2575.create_pool(new id wl_shm_pool#1246, fd 578, 160) +[2618924.512] {Default Queue} -> wl_shm_pool#1243.create_buffer(new id wl_buffer#1245, 0, 2, 20, 8, 0) +[2618924.517] {Default Queue} -> wl_shm_pool#1246.create_buffer(new id wl_buffer#1212, 0, 2, 20, 8, 0) +[2618924.524] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) +[2618924.528] {Default Queue} -> wl_surface#2567.commit() +[2618924.534] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) +[2618924.538] {Default Queue} -> wl_surface#2567.commit() +[2618924.546] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 385) +[2618924.550] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 385) +[2618924.554] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2618924.558] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2618924.690] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 385) +[2618924.695] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 385) +[2618924.699] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2618924.703] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2618924.712] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2618924.716] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2618924.802] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 385) +[2618924.808] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 385) +[2618924.812] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2618924.816] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2618924.822] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2618924.826] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2618924.831] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) +[2618924.835] {Default Queue} -> wl_surface#2567.commit() +[2618924.841] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) +[2618924.845] {Default Queue} -> wl_surface#2567.commit() +[2618925.868] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) +[2618925.880] {Default Queue} -> wl_surface#2567.commit() +[2618925.891] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 385) +[2618925.897] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 385) +[2618925.901] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2618925.905] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2618926.016] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 385) +[2618926.022] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 385) +[2618926.026] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2618926.030] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2618926.035] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2618926.044] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2618926.128] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 385) +[2618926.133] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 385) +[2618926.138] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2618926.142] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2618926.148] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2618926.152] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2618926.157] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) +[2618926.161] {Default Queue} -> wl_surface#2567.commit() +[2618926.165] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) +[2618926.169] {Default Queue} -> wl_surface#2567.commit() +[2618926.176] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) +[2618926.180] {Default Queue} -> wl_surface#2567.commit() +[2618926.186] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) +[2618926.190] {Default Queue} -> wl_surface#2631.commit() +[2618927.252] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) +[2618927.258] {Default Queue} -> wl_surface#2631.commit() +[2618927.267] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 368) +[2618927.271] {Default Queue} -> wl_region#2655.add(-253, -386, 255, 368) +[2618927.277] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618927.281] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618927.288] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 368) +[2618927.292] {Default Queue} -> wl_region#2655.add(-253, -386, 255, 368) +[2618927.296] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618927.300] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618927.305] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 368) +[2618927.309] {Default Queue} -> wl_region#2655.add(-253, -386, 255, 368) +[2618927.313] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618927.316] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618927.321] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 368) +[2618927.325] {Default Queue} -> wl_region#2655.add(-253, -386, 255, 368) +[2618927.329] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618927.333] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618927.338] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 368) +[2618927.342] {Default Queue} -> wl_region#2655.add(-253, -386, 255, 368) +[2618927.346] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618927.350] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618927.356] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 368) +[2618927.360] {Default Queue} -> wl_region#2655.add(-253, -386, 255, 368) +[2618927.364] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618927.367] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618927.372] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) +[2618927.376] {Default Queue} -> wl_surface#2631.commit() +[2618927.380] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) +[2618927.384] {Default Queue} -> wl_surface#2631.commit() +[2618927.389] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) +[2618927.393] {Default Queue} -> wl_surface#2631.commit() +[2618927.398] {Default Queue} -> wl_region#2623.subtract(0, 0, 2, 2) +[2618927.403] {Default Queue} -> wl_region#2655.subtract(0, 0, 2, 2) +[2618927.408] {Default Queue} -> wl_subsurface#2650.set_position(1, -11) +[2618927.412] {Default Queue} -> wl_region#2655.subtract(0, 0, 256, 379) +[2618927.416] {Default Queue} -> wl_region#2655.add(-253, -386, 255, 368) +[2618927.420] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618927.424] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618927.432] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) +[2618927.440] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) +[2618927.444] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) +[2618927.448] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618927.452] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618927.458] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) +[2618927.462] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) +[2618927.466] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618927.470] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618927.475] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) +[2618927.478] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) +[2618927.483] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618927.486] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618927.491] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) +[2618927.495] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) +[2618927.500] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618927.505] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618927.512] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) +[2618927.518] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) +[2618927.524] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618927.529] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618927.538] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) +[2618927.546] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) +[2618927.552] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618927.557] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618927.564] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) +[2618927.572] {Default Queue} -> wl_surface#2631.commit() +[2618927.582] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) +[2618927.588] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) +[2618927.594] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618927.599] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618927.608] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) +[2618927.615] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) +[2618927.620] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618927.626] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618927.634] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) +[2618927.640] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) +[2618927.646] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618927.651] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618927.658] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) +[2618927.664] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) +[2618927.670] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618927.676] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618927.683] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) +[2618927.689] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) +[2618927.695] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618927.700] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618927.709] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) +[2618927.716] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) +[2618927.722] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2618927.728] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2618927.734] {Default Queue} -> wl_region#2623.subtract(0, 0, 255, 388) +[2618927.741] {Default Queue} -> wl_region#2623.add(-253, -386, 255, 368) +[2618927.751] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) +[2618927.760] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) +[2618927.766] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) +[2618927.772] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) +[2618927.791] {Default Queue} -> wl_buffer#2621.destroy() +[2618927.799] {Default Queue} -> wl_buffer#2622.destroy() +[2618927.805] {Default Queue} -> wl_shm_pool#2619.destroy() +[2618927.812] {Default Queue} -> wl_shm_pool#2620.destroy() +[2618927.887] {Default Queue} -> wl_shm#2607.create_pool(new id wl_shm_pool#1211, fd 575, 16) +[2618927.897] {Default Queue} -> wl_shm#2607.create_pool(new id wl_shm_pool#1214, fd 578, 16) +[2618927.903] {Default Queue} -> wl_shm_pool#1211.create_buffer(new id wl_buffer#1213, 0, 2, 2, 8, 0) +[2618927.910] {Default Queue} -> wl_shm_pool#1214.create_buffer(new id wl_buffer#1180, 0, 2, 2, 8, 0) +[2618927.920] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) +[2618927.926] {Default Queue} -> wl_surface#2599.commit() +[2618927.934] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) +[2618927.942] {Default Queue} -> wl_surface#2599.commit() +[2618927.953] {Default Queue} -> wl_region#2623.subtract(0, 0, 255, 388) +[2618927.959] {Default Queue} -> wl_region#2623.add(-253, -386, 255, 368) +[2618927.965] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) +[2618927.971] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) +[2618927.978] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) +[2618927.984] {Default Queue} -> wl_surface#2599.commit() +[2618927.992] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) +[2618927.999] {Default Queue} -> wl_surface#2599.commit() +[2618929.068] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) +[2618929.073] {Default Queue} -> wl_surface#2599.commit() +[2618929.079] {Default Queue} -> wl_region#2623.subtract(0, 0, 255, 388) +[2618929.083] {Default Queue} -> wl_region#2623.add(-253, -386, 255, 368) +[2618929.087] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) +[2618929.091] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) +[2618929.095] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) +[2618929.099] {Default Queue} -> wl_surface#2599.commit() +[2618929.103] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) +[2618929.107] {Default Queue} -> wl_surface#2599.commit() +[2618929.113] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) +[2618929.116] {Default Queue} -> wl_surface#2599.commit() +[2618929.122] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) +[2618929.126] {Default Queue} -> wl_surface#2535.commit() +[2618930.186] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) +[2618930.192] {Default Queue} -> wl_surface#2535.commit() +[2618930.198] {Default Queue} -> wl_region#2559.subtract(0, 0, 255, 388) +[2618930.202] {Default Queue} -> wl_region#2559.add(-250, -383, 252, 385) +[2618930.206] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) +[2618930.210] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) +[2618930.215] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) +[2618930.219] {Default Queue} -> wl_surface#2535.commit() +[2618930.223] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) +[2618930.227] {Default Queue} -> wl_surface#2535.commit() +[2618930.232] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) +[2618930.236] {Default Queue} -> wl_surface#2535.commit() +[2618930.240] {Default Queue} -> wl_region#2527.subtract(0, 0, 115, 167) +[2618930.246] {Default Queue} -> wl_region#2559.subtract(0, 0, 2, 2) +[2618930.250] {Default Queue} -> wl_subsurface#2554.set_position(3, 3) +[2618930.254] {Default Queue} -> wl_region#2559.subtract(0, 0, 255, 388) +[2618930.258] {Default Queue} -> wl_region#2559.add(-250, -383, 252, 385) +[2618930.266] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) +[2618930.273] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) +[2618930.277] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2618930.281] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) +[2618930.285] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) +[2618930.288] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) +[2618930.294] {Default Queue} -> wl_region#2559.subtract(0, 0, 255, 388) +[2618930.298] {Default Queue} -> wl_region#2559.add(-250, -383, 252, 385) +[2618930.302] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) +[2618930.305] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) +[2618930.310] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) +[2618930.314] {Default Queue} -> wl_surface#2535.commit() +[2618930.318] {Default Queue} -> wl_region#2559.subtract(0, 0, 362, 547) +[2618930.322] {Default Queue} -> wl_region#2559.add(-250, -383, 359, 544) +[2618930.326] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) +[2618930.330] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) +[2618930.334] {Default Queue} -> wl_region#2527.subtract(0, 0, 252, 385) +[2618930.338] {Default Queue} -> wl_region#2527.add(-20, -383, 22, 385) +[2618930.342] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618930.346] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618930.350] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2618930.354] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) +[2618930.358] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) +[2618930.362] {Default Queue} -> wl_surface#2535.damage(0, 0, 109, 161) +[2618930.366] {Default Queue} -> wl_surface#2508.damage(0, 0, 115, 167) +[2618930.378] {Default Queue} -> wl_buffer#2525.destroy() +[2618930.384] {Default Queue} -> wl_buffer#2526.destroy() +[2618930.387] {Default Queue} -> wl_shm_pool#2523.destroy() +[2618930.392] {Default Queue} -> wl_shm_pool#2524.destroy() +[2618930.466] {Default Queue} -> wl_shm#2511.create_pool(new id wl_shm_pool#1179, fd 575, 76820) +[2618930.473] {Default Queue} -> wl_shm#2511.create_pool(new id wl_shm_pool#1182, fd 578, 76820) +[2618930.478] {Default Queue} -> wl_shm_pool#1179.create_buffer(new id wl_buffer#1181, 0, 115, 167, 460, 0) +[2618930.482] {Default Queue} -> wl_shm_pool#1182.create_buffer(new id wl_buffer#1148, 0, 115, 167, 460, 0) +[2618930.504] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) +[2618930.509] {Default Queue} -> wl_surface#2508.commit() +[2618930.531] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) +[2618930.536] {Default Queue} -> wl_surface#2508.commit() +[2618930.544] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) +[2618930.550] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) +[2618930.554] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618930.558] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618930.565] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) +[2618930.569] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) +[2618930.573] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618930.577] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618930.582] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) +[2618930.586] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) +[2618930.590] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618930.594] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618930.599] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) +[2618930.603] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) +[2618930.607] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618930.611] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618930.617] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) +[2618930.625] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) +[2618930.631] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618930.635] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618930.642] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) +[2618930.646] {Default Queue} -> wl_surface#2508.commit() +[2618930.653] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) +[2618930.658] {Default Queue} -> wl_surface#2508.commit() +[2618931.724] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) +[2618931.729] {Default Queue} -> wl_surface#2508.commit() +[2618931.737] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) +[2618931.741] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) +[2618931.745] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618931.749] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618931.755] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) +[2618931.759] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) +[2618931.763] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618931.767] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618931.773] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) +[2618931.776] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) +[2618931.780] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618931.784] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618931.789] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) +[2618931.793] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) +[2618931.798] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618931.801] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618931.807] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) +[2618931.811] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) +[2618931.815] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618931.819] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618931.826] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) +[2618931.830] {Default Queue} -> wl_surface#2508.commit() +[2618931.835] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) +[2618931.840] {Default Queue} -> wl_surface#2508.commit() +[2618931.846] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) +[2618931.850] {Default Queue} -> wl_surface#2508.commit() +[2618931.855] {Default Queue} -> wl_region#2751.subtract(0, 0, 2, 20) +[2618931.859] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 385) +[2618931.864] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 385) +[2618931.868] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2618931.876] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2618931.880] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) +[2618931.893] {Default Queue} -> wl_buffer#2749.destroy() +[2618931.898] {Default Queue} -> wl_buffer#2750.destroy() +[2618931.902] {Default Queue} -> wl_shm_pool#2747.destroy() +[2618931.906] {Default Queue} -> wl_shm_pool#2748.destroy() +[2618931.942] {Default Queue} -> wl_shm#2735.create_pool(new id wl_shm_pool#1147, fd 575, 160) +[2618931.949] {Default Queue} -> wl_shm#2735.create_pool(new id wl_shm_pool#1150, fd 578, 160) +[2618931.953] {Default Queue} -> wl_shm_pool#1147.create_buffer(new id wl_buffer#1149, 0, 2, 20, 8, 0) +[2618931.958] {Default Queue} -> wl_shm_pool#1150.create_buffer(new id wl_buffer#1116, 0, 2, 20, 8, 0) +[2618931.964] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) +[2618931.968] {Default Queue} -> wl_surface#2727.commit() +[2618931.973] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) +[2618931.977] {Default Queue} -> wl_surface#2727.commit() +[2618931.986] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 385) +[2618931.995] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 385) +[2618932.001] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2618932.005] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2618932.094] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 385) +[2618932.099] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 385) +[2618932.103] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2618932.108] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2618932.114] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) +[2618932.118] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) +[2618932.179] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 385) +[2618932.184] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 385) +[2618932.188] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2618932.192] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2618932.198] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) +[2618932.202] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) +[2618932.206] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) +[2618932.210] {Default Queue} -> wl_surface#2727.commit() +[2618932.216] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) +[2618932.220] {Default Queue} -> wl_surface#2727.commit() +[2618933.285] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) +[2618933.291] {Default Queue} -> wl_surface#2727.commit() +[2618933.297] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 385) +[2618933.302] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 385) +[2618933.306] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2618933.310] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2618933.381] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 385) +[2618933.386] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 385) +[2618933.390] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2618933.394] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2618933.399] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) +[2618933.403] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) +[2618933.460] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 385) +[2618933.465] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 385) +[2618933.469] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2618933.473] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2618933.478] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) +[2618933.482] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) +[2618933.487] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) +[2618933.491] {Default Queue} -> wl_surface#2727.commit() +[2618933.495] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) +[2618933.499] {Default Queue} -> wl_surface#2727.commit() +[2618933.504] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) +[2618933.508] {Default Queue} -> wl_surface#2727.commit() +[2618933.514] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) +[2618933.518] {Default Queue} -> wl_surface#2791.commit() +[2618934.578] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) +[2618934.583] {Default Queue} -> wl_surface#2791.commit() +[2618934.590] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) +[2618934.594] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) +[2618934.599] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618934.603] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618934.609] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) +[2618934.613] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) +[2618934.617] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618934.624] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618934.631] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) +[2618934.635] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) +[2618934.639] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618934.643] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618934.647] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) +[2618934.651] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) +[2618934.655] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618934.659] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618934.664] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) +[2618934.668] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) +[2618934.672] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618934.676] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618934.682] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) +[2618934.686] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) +[2618934.690] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618934.694] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618934.699] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) +[2618934.703] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) +[2618934.707] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618934.711] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618934.716] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) +[2618934.720] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) +[2618934.724] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618934.728] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618934.732] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) +[2618934.736] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) +[2618934.740] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618934.744] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618934.754] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) +[2618934.759] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) +[2618934.763] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618934.767] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618934.771] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) +[2618934.775] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) +[2618934.779] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618934.783] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618934.787] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) +[2618934.791] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) +[2618934.795] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618934.799] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618934.803] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) +[2618934.807] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) +[2618934.811] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618934.815] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618934.820] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) +[2618934.824] {Default Queue} -> wl_surface#2791.commit() +[2618934.828] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) +[2618934.832] {Default Queue} -> wl_surface#2791.commit() +[2618934.837] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) +[2618934.841] {Default Queue} -> wl_surface#2791.commit() +[2618934.845] {Default Queue} -> wl_region#2783.subtract(0, 0, 2, 2) +[2618934.850] {Default Queue} -> wl_region#2815.subtract(0, 0, 2, 2) +[2618934.857] {Default Queue} -> wl_subsurface#2810.set_position(1, -7) +[2618934.863] {Default Queue} -> wl_region#2815.subtract(0, 0, 371, 375) +[2618934.867] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) +[2618934.874] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618934.878] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618934.882] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) +[2618934.888] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618934.892] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618934.896] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618934.899] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618934.905] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618934.909] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618934.913] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618934.917] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618934.921] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618934.925] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618934.929] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618934.933] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618934.937] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618934.942] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618934.945] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618934.950] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618934.954] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618934.958] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618934.962] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618934.966] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618934.971] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618934.975] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618934.979] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618934.983] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618934.988] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618934.992] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618934.996] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618935.000] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618935.005] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618935.008] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618935.012] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618935.016] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618935.020] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618935.025] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618935.029] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618935.033] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618935.041] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618935.045] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618935.049] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618935.053] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618935.057] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618935.062] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618935.065] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618935.069] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618935.073] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618935.077] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618935.085] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618935.090] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618935.095] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618935.099] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618935.103] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618935.107] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618935.111] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) +[2618935.115] {Default Queue} -> wl_surface#2791.commit() +[2618935.120] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618935.124] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618935.128] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618935.132] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618935.138] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618935.142] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618935.146] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618935.150] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618935.154] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618935.158] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618935.162] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618935.166] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618935.171] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618935.175] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618935.179] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618935.183] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618935.187] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618935.191] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618935.195] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618935.199] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618935.204] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618935.208] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618935.212] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618935.216] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618935.220] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618935.224] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618935.228] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618935.231] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618935.236] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618935.240] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618935.245] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618935.249] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618935.253] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618935.257] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618935.261] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618935.264] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618935.273] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618935.277] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618935.281] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618935.285] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618935.289] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618935.293] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618935.297] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618935.301] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618935.308] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618935.314] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618935.318] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618935.321] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618935.326] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2618935.330] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2618935.334] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2618935.338] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2618935.342] {Default Queue} -> wl_region#2783.subtract(0, 0, 370, 388) +[2618935.346] {Default Queue} -> wl_region#2783.add(-368, -386, 370, 368) +[2618935.350] {Default Queue} -> wl_surface#2759.set_opaque_region(wl_region#2784) +[2618935.354] {Default Queue} -> wl_surface#2759.set_input_region(wl_region#2783) +[2618935.359] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) +[2618935.363] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) +[2618935.382] {Default Queue} -> wl_buffer#2781.destroy() +[2618935.387] {Default Queue} -> wl_buffer#2782.destroy() +[2618935.391] {Default Queue} -> wl_shm_pool#2779.destroy() +[2618935.395] {Default Queue} -> wl_shm_pool#2780.destroy() +[2618935.433] {Default Queue} -> wl_shm#2767.create_pool(new id wl_shm_pool#1115, fd 575, 16) +[2618935.439] {Default Queue} -> wl_shm#2767.create_pool(new id wl_shm_pool#1118, fd 578, 16) +[2618935.443] {Default Queue} -> wl_shm_pool#1115.create_buffer(new id wl_buffer#1117, 0, 2, 2, 8, 0) +[2618935.448] {Default Queue} -> wl_shm_pool#1118.create_buffer(new id wl_buffer#988, 0, 2, 2, 8, 0) +[2618935.454] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) +[2618935.458] {Default Queue} -> wl_surface#2759.commit() +[2618935.463] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) +[2618935.467] {Default Queue} -> wl_surface#2759.commit() +[2618935.474] {Default Queue} -> wl_region#2783.subtract(0, 0, 370, 388) +[2618935.478] {Default Queue} -> wl_region#2783.add(-368, -386, 370, 368) +[2618935.482] {Default Queue} -> wl_surface#2759.set_opaque_region(wl_region#2784) +[2618935.486] {Default Queue} -> wl_surface#2759.set_input_region(wl_region#2783) +[2618935.490] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) +[2618935.494] {Default Queue} -> wl_surface#2759.commit() +[2618935.500] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) +[2618935.504] {Default Queue} -> wl_surface#2759.commit() +[2618936.567] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) +[2618936.574] {Default Queue} -> wl_surface#2759.commit() +[2618936.579] {Default Queue} -> wl_region#2783.subtract(0, 0, 370, 388) +[2618936.583] {Default Queue} -> wl_region#2783.add(-368, -386, 370, 368) +[2618936.587] {Default Queue} -> wl_surface#2759.set_opaque_region(wl_region#2784) +[2618936.591] {Default Queue} -> wl_surface#2759.set_input_region(wl_region#2783) +[2618936.595] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) +[2618936.599] {Default Queue} -> wl_surface#2759.commit() +[2618936.603] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) +[2618936.607] {Default Queue} -> wl_surface#2759.commit() +[2618936.612] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) +[2618936.616] {Default Queue} -> wl_surface#2759.commit() +[2618936.621] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) +[2618936.626] {Default Queue} -> wl_surface#2695.commit() +[2618937.687] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) +[2618937.692] {Default Queue} -> wl_surface#2695.commit() +[2618937.698] {Default Queue} -> wl_region#2719.subtract(0, 0, 370, 388) +[2618937.702] {Default Queue} -> wl_region#2719.add(-365, -383, 367, 385) +[2618937.706] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) +[2618937.711] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) +[2618937.715] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) +[2618937.723] {Default Queue} -> wl_surface#2695.commit() +[2618937.729] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) +[2618937.733] {Default Queue} -> wl_surface#2695.commit() +[2618937.738] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) +[2618937.742] {Default Queue} -> wl_surface#2695.commit() +[2618937.746] {Default Queue} -> wl_region#2687.subtract(0, 0, 115, 167) +[2618937.753] {Default Queue} -> wl_region#2719.subtract(0, 0, 2, 2) +[2618937.757] {Default Queue} -> wl_subsurface#2714.set_position(3, 3) +[2618937.761] {Default Queue} -> wl_region#2719.subtract(0, 0, 370, 388) +[2618937.766] {Default Queue} -> wl_region#2719.add(-365, -383, 367, 385) +[2618937.770] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) +[2618937.773] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) +[2618937.778] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) +[2618937.782] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) +[2618937.786] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) +[2618937.790] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) +[2618937.795] {Default Queue} -> wl_region#2719.subtract(0, 0, 370, 388) +[2618937.799] {Default Queue} -> wl_region#2719.add(-365, -383, 367, 385) +[2618937.803] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) +[2618937.806] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) +[2618937.811] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) +[2618937.815] {Default Queue} -> wl_surface#2695.commit() +[2618937.819] {Default Queue} -> wl_region#2719.subtract(0, 0, 477, 547) +[2618937.823] {Default Queue} -> wl_region#2719.add(-365, -383, 474, 544) +[2618937.827] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) +[2618937.831] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) +[2618937.835] {Default Queue} -> wl_region#2687.subtract(0, 0, 367, 385) +[2618937.840] {Default Queue} -> wl_region#2687.add(-20, -383, 22, 385) +[2618937.844] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618937.847] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618937.851] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) +[2618937.855] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) +[2618937.859] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) +[2618937.868] {Default Queue} -> wl_surface#2695.damage(0, 0, 109, 161) +[2618937.872] {Default Queue} -> wl_surface#2663.damage(0, 0, 115, 167) +[2618937.884] {Default Queue} -> wl_buffer#2685.destroy() +[2618937.889] {Default Queue} -> wl_buffer#2686.destroy() +[2618937.893] {Default Queue} -> wl_shm_pool#2683.destroy() +[2618937.897] {Default Queue} -> wl_shm_pool#2684.destroy() +[2618937.989] {Default Queue} -> wl_shm#2671.create_pool(new id wl_shm_pool#987, fd 575, 76820) +[2618937.996] {Default Queue} -> wl_shm#2671.create_pool(new id wl_shm_pool#990, fd 578, 76820) +[2618938.000] {Default Queue} -> wl_shm_pool#987.create_buffer(new id wl_buffer#989, 0, 115, 167, 460, 0) +[2618938.005] {Default Queue} -> wl_shm_pool#990.create_buffer(new id wl_buffer#124, 0, 115, 167, 460, 0) +[2618938.027] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) +[2618938.032] {Default Queue} -> wl_surface#2663.commit() +[2618938.054] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) +[2618938.059] {Default Queue} -> wl_surface#2663.commit() +[2618938.068] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) +[2618938.072] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) +[2618938.076] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618938.080] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618938.088] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) +[2618938.092] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) +[2618938.096] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618938.100] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618938.109] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) +[2618938.114] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) +[2618938.118] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618938.122] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618938.127] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) +[2618938.131] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) +[2618938.135] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618938.139] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618938.145] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) +[2618938.149] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) +[2618938.153] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618938.157] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618938.164] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) +[2618938.168] {Default Queue} -> wl_surface#2663.commit() +[2618938.175] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) +[2618938.181] {Default Queue} -> wl_surface#2663.commit() +[2618939.246] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) +[2618939.251] {Default Queue} -> wl_surface#2663.commit() +[2618939.259] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) +[2618939.263] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) +[2618939.267] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618939.271] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618939.276] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) +[2618939.280] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) +[2618939.284] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618939.288] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618939.293] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) +[2618939.297] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) +[2618939.301] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618939.305] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618939.310] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) +[2618939.314] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) +[2618939.319] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618939.323] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618939.328] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) +[2618939.333] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) +[2618939.336] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618939.340] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618939.347] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) +[2618939.351] {Default Queue} -> wl_surface#2663.commit() +[2618939.356] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) +[2618939.360] {Default Queue} -> wl_surface#2663.commit() +[2618939.366] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) +[2618939.370] {Default Queue} -> wl_surface#2663.commit() +[2618939.375] {Default Queue} -> wl_region#2911.subtract(0, 0, 2, 20) +[2618939.379] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 385) +[2618939.383] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 385) +[2618939.387] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2618939.391] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2618939.394] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) +[2618939.408] {Default Queue} -> wl_buffer#2909.destroy() +[2618939.414] {Default Queue} -> wl_buffer#2910.destroy() +[2618939.418] {Default Queue} -> wl_shm_pool#2907.destroy() +[2618939.422] {Default Queue} -> wl_shm_pool#2908.destroy() +[2618939.463] {Default Queue} -> wl_shm#2895.create_pool(new id wl_shm_pool#123, fd 575, 160) +[2618939.471] {Default Queue} -> wl_shm#2895.create_pool(new id wl_shm_pool#126, fd 578, 160) +[2618939.475] {Default Queue} -> wl_shm_pool#123.create_buffer(new id wl_buffer#125, 0, 2, 20, 8, 0) +[2618939.480] {Default Queue} -> wl_shm_pool#126.create_buffer(new id wl_buffer#348, 0, 2, 20, 8, 0) +[2618939.487] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) +[2618939.491] {Default Queue} -> wl_surface#2887.commit() +[2618939.496] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) +[2618939.500] {Default Queue} -> wl_surface#2887.commit() +[2618939.508] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 385) +[2618939.512] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 385) +[2618939.517] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2618939.520] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2618939.619] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 385) +[2618939.624] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 385) +[2618939.628] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2618939.632] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2618939.638] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) +[2618939.642] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) +[2618939.710] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 385) +[2618939.715] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 385) +[2618939.719] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2618939.723] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2618939.729] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) +[2618939.733] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) +[2618939.738] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) +[2618939.742] {Default Queue} -> wl_surface#2887.commit() +[2618939.747] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) +[2618939.752] {Default Queue} -> wl_surface#2887.commit() +[2618940.815] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) +[2618940.820] {Default Queue} -> wl_surface#2887.commit() +[2618940.827] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 385) +[2618940.831] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 385) +[2618940.835] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2618940.839] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2618940.922] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 385) +[2618940.928] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 385) +[2618940.931] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2618940.936] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2618940.941] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) +[2618940.945] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) +[2618941.009] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 385) +[2618941.014] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 385) +[2618941.018] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2618941.022] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2618941.027] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) +[2618941.032] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) +[2618941.036] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) +[2618941.040] {Default Queue} -> wl_surface#2887.commit() +[2618941.044] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) +[2618941.048] {Default Queue} -> wl_surface#2887.commit() +[2618941.056] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) +[2618941.060] {Default Queue} -> wl_surface#2887.commit() +[2618941.066] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) +[2618941.070] {Default Queue} -> wl_surface#2951.commit() +[2618942.135] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) +[2618942.142] {Default Queue} -> wl_surface#2951.commit() +[2618942.148] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 368) +[2618942.153] {Default Queue} -> wl_region#2975.add(-483, -386, 485, 368) +[2618942.157] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618942.160] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618942.167] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 368) +[2618942.171] {Default Queue} -> wl_region#2975.add(-483, -386, 485, 368) +[2618942.175] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618942.179] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618942.184] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 368) +[2618942.188] {Default Queue} -> wl_region#2975.add(-483, -386, 485, 368) +[2618942.192] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618942.195] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618942.200] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 368) +[2618942.204] {Default Queue} -> wl_region#2975.add(-483, -386, 485, 368) +[2618942.208] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618942.211] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618942.216] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 368) +[2618942.220] {Default Queue} -> wl_region#2975.add(-483, -386, 485, 368) +[2618942.224] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618942.227] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618942.232] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) +[2618942.236] {Default Queue} -> wl_surface#2951.commit() +[2618942.239] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) +[2618942.243] {Default Queue} -> wl_surface#2951.commit() +[2618942.248] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) +[2618942.252] {Default Queue} -> wl_surface#2951.commit() +[2618942.256] {Default Queue} -> wl_region#2943.subtract(0, 0, 2, 2) +[2618942.262] {Default Queue} -> wl_region#2975.subtract(0, 0, 2, 2) +[2618942.266] {Default Queue} -> wl_subsurface#2970.set_position(1, 1) +[2618942.270] {Default Queue} -> wl_region#2975.subtract(0, 0, 486, 369) +[2618942.274] {Default Queue} -> wl_region#2975.add(-483, -386, 485, 368) +[2618942.278] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618942.281] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618942.285] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) +[2618942.290] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 388) +[2618942.294] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 387) +[2618942.298] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618942.302] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618942.307] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 388) +[2618942.312] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 387) +[2618942.316] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618942.320] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618942.324] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 388) +[2618942.328] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 387) +[2618942.332] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618942.336] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618942.341] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 388) +[2618942.345] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 387) +[2618942.349] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618942.352] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618942.357] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 388) +[2618942.361] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 387) +[2618942.368] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618942.373] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618942.377] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) +[2618942.381] {Default Queue} -> wl_surface#2951.commit() +[2618942.386] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 388) +[2618942.390] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 387) +[2618942.394] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618942.398] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618942.403] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 388) +[2618942.407] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 387) +[2618942.410] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618942.414] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618942.418] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 388) +[2618942.422] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 387) +[2618942.426] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618942.430] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618942.434] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 388) +[2618942.438] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 387) +[2618942.442] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618942.446] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618942.451] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 388) +[2618942.455] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 387) +[2618942.459] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2618942.463] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2618942.467] {Default Queue} -> wl_region#2943.subtract(0, 0, 485, 388) +[2618942.471] {Default Queue} -> wl_region#2943.add(-483, -386, 485, 368) +[2618942.476] {Default Queue} -> wl_surface#2919.set_opaque_region(wl_region#2944) +[2618942.479] {Default Queue} -> wl_surface#2919.set_input_region(wl_region#2943) +[2618942.483] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) +[2618942.488] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) +[2618942.500] {Default Queue} -> wl_buffer#2941.destroy() +[2618942.504] {Default Queue} -> wl_buffer#2942.destroy() +[2618942.508] {Default Queue} -> wl_shm_pool#2939.destroy() +[2618942.512] {Default Queue} -> wl_shm_pool#2940.destroy() +[2618942.549] {Default Queue} -> wl_shm#2927.create_pool(new id wl_shm_pool#347, fd 575, 16) +[2618942.555] {Default Queue} -> wl_shm#2927.create_pool(new id wl_shm_pool#350, fd 578, 16) +[2618942.559] {Default Queue} -> wl_shm_pool#347.create_buffer(new id wl_buffer#349, 0, 2, 2, 8, 0) +[2618942.564] {Default Queue} -> wl_shm_pool#350.create_buffer(new id wl_buffer#444, 0, 2, 2, 8, 0) +[2618942.570] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) +[2618942.574] {Default Queue} -> wl_surface#2919.commit() +[2618942.580] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) +[2618942.584] {Default Queue} -> wl_surface#2919.commit() +[2618942.590] {Default Queue} -> wl_region#2943.subtract(0, 0, 485, 388) +[2618942.594] {Default Queue} -> wl_region#2943.add(-483, -386, 485, 368) +[2618942.598] {Default Queue} -> wl_surface#2919.set_opaque_region(wl_region#2944) +[2618942.602] {Default Queue} -> wl_surface#2919.set_input_region(wl_region#2943) +[2618942.606] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) +[2618942.610] {Default Queue} -> wl_surface#2919.commit() +[2618942.616] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) +[2618942.620] {Default Queue} -> wl_surface#2919.commit() +[2618943.682] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) +[2618943.689] {Default Queue} -> wl_surface#2919.commit() +[2618943.694] {Default Queue} -> wl_region#2943.subtract(0, 0, 485, 388) +[2618943.702] {Default Queue} -> wl_region#2943.add(-483, -386, 485, 368) +[2618943.709] {Default Queue} -> wl_surface#2919.set_opaque_region(wl_region#2944) +[2618943.713] {Default Queue} -> wl_surface#2919.set_input_region(wl_region#2943) +[2618943.717] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) +[2618943.721] {Default Queue} -> wl_surface#2919.commit() +[2618943.725] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) +[2618943.729] {Default Queue} -> wl_surface#2919.commit() +[2618943.735] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) +[2618943.739] {Default Queue} -> wl_surface#2919.commit() +[2618943.744] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) +[2618943.749] {Default Queue} -> wl_surface#2855.commit() +[2618944.809] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) +[2618944.814] {Default Queue} -> wl_surface#2855.commit() +[2618944.820] {Default Queue} -> wl_region#2879.subtract(0, 0, 485, 388) +[2618944.824] {Default Queue} -> wl_region#2879.add(-480, -383, 482, 385) +[2618944.828] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) +[2618944.832] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) +[2618944.837] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) +[2618944.841] {Default Queue} -> wl_surface#2855.commit() +[2618944.844] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) +[2618944.848] {Default Queue} -> wl_surface#2855.commit() +[2618944.853] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) +[2618944.857] {Default Queue} -> wl_surface#2855.commit() +[2618944.865] {Default Queue} -> wl_region#2847.subtract(0, 0, 115, 167) +[2618944.871] {Default Queue} -> wl_region#2879.subtract(0, 0, 2, 2) +[2618944.876] {Default Queue} -> wl_subsurface#2874.set_position(3, 3) +[2618944.879] {Default Queue} -> wl_region#2879.subtract(0, 0, 485, 388) +[2618944.883] {Default Queue} -> wl_region#2879.add(-480, -383, 482, 385) +[2618944.887] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) +[2618944.891] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) +[2618944.895] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) +[2618944.899] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) +[2618944.903] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) +[2618944.907] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) +[2618944.912] {Default Queue} -> wl_region#2879.subtract(0, 0, 485, 388) +[2618944.916] {Default Queue} -> wl_region#2879.add(-480, -383, 482, 385) +[2618944.920] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) +[2618944.924] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) +[2618944.928] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) +[2618944.932] {Default Queue} -> wl_surface#2855.commit() +[2618944.937] {Default Queue} -> wl_region#2879.subtract(0, 0, 592, 547) +[2618944.941] {Default Queue} -> wl_region#2879.add(-480, -383, 589, 544) +[2618944.944] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) +[2618944.948] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) +[2618944.952] {Default Queue} -> wl_region#2847.subtract(0, 0, 482, 385) +[2618944.956] {Default Queue} -> wl_region#2847.add(-20, -383, 22, 385) +[2618944.960] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618944.965] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618944.969] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) +[2618944.973] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) +[2618944.977] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) +[2618944.981] {Default Queue} -> wl_surface#2855.damage(0, 0, 109, 161) +[2618944.985] {Default Queue} -> wl_surface#2823.damage(0, 0, 115, 167) +[2618944.997] {Default Queue} -> wl_buffer#2845.destroy() +[2618945.003] {Default Queue} -> wl_buffer#2846.destroy() +[2618945.007] {Default Queue} -> wl_shm_pool#2843.destroy() +[2618945.011] {Default Queue} -> wl_shm_pool#2844.destroy() +[2618945.086] {Default Queue} -> wl_shm#2831.create_pool(new id wl_shm_pool#443, fd 575, 76820) +[2618945.094] {Default Queue} -> wl_shm#2831.create_pool(new id wl_shm_pool#446, fd 578, 76820) +[2618945.100] {Default Queue} -> wl_shm_pool#443.create_buffer(new id wl_buffer#445, 0, 115, 167, 460, 0) +[2618945.104] {Default Queue} -> wl_shm_pool#446.create_buffer(new id wl_buffer#700, 0, 115, 167, 460, 0) +[2618945.127] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) +[2618945.132] {Default Queue} -> wl_surface#2823.commit() +[2618945.155] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) +[2618945.160] {Default Queue} -> wl_surface#2823.commit() +[2618945.169] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) +[2618945.174] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) +[2618945.178] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618945.182] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618945.189] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) +[2618945.193] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) +[2618945.197] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618945.202] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618945.207] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) +[2618945.211] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) +[2618945.215] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618945.219] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618945.224] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) +[2618945.228] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) +[2618945.232] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618945.236] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618945.242] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) +[2618945.246] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) +[2618945.250] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618945.254] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618945.261] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) +[2618945.265] {Default Queue} -> wl_surface#2823.commit() +[2618945.272] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) +[2618945.276] {Default Queue} -> wl_surface#2823.commit() +[2618946.340] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) +[2618946.346] {Default Queue} -> wl_surface#2823.commit() +[2618946.353] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) +[2618946.357] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) +[2618946.361] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618946.365] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618946.371] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) +[2618946.375] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) +[2618946.378] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618946.382] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618946.387] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) +[2618946.391] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) +[2618946.395] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618946.399] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618946.404] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) +[2618946.408] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) +[2618946.412] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618946.415] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618946.421] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) +[2618946.425] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) +[2618946.433] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618946.439] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618946.445] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) +[2618946.450] {Default Queue} -> wl_surface#2823.commit() +[2618946.455] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) +[2618946.458] {Default Queue} -> wl_surface#2823.commit() +[2618946.465] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) +[2618946.469] {Default Queue} -> wl_surface#2823.commit() +[2618946.473] {Default Queue} -> wl_region#2111.subtract(0, 0, 576, 167) +[2618946.480] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) +[2618946.484] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) +[2618946.488] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618946.491] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618946.498] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) +[2618946.502] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) +[2618946.506] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618946.510] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618946.516] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) +[2618946.520] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) +[2618946.524] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618946.528] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618946.533] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) +[2618946.537] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) +[2618946.541] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618946.544] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618946.551] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) +[2618946.555] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) +[2618946.559] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2618946.563] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2618946.578] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) +[2618946.583] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) +[2618946.587] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618946.591] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618946.597] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) +[2618946.601] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) +[2618946.605] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618946.609] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618946.614] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) +[2618946.618] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) +[2618946.622] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618946.626] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618946.631] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) +[2618946.635] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) +[2618946.639] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618946.642] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618946.649] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) +[2618946.653] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) +[2618946.657] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2618946.661] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2618946.668] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) +[2618946.673] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) +[2618946.677] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618946.680] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618946.689] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) +[2618946.694] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) +[2618946.698] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618946.702] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618946.707] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) +[2618946.711] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) +[2618946.715] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618946.719] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618946.724] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) +[2618946.728] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) +[2618946.732] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618946.735] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618946.742] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) +[2618946.746] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) +[2618946.749] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2618946.753] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2618946.761] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) +[2618946.765] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) +[2618946.769] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618946.773] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618946.778] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) +[2618946.782] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) +[2618946.786] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618946.790] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618946.795] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) +[2618946.799] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) +[2618946.803] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618946.807] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618946.812] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) +[2618946.816] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) +[2618946.820] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618946.824] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618946.830] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) +[2618946.834] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) +[2618946.838] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2618946.842] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2618946.850] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) +[2618946.855] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) +[2618946.859] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618946.863] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618946.869] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) +[2618946.879] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) +[2618946.883] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618946.886] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618946.891] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) +[2618946.895] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) +[2618946.899] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618946.903] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618946.908] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) +[2618946.912] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) +[2618946.916] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618946.920] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618946.929] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) +[2618946.934] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) +[2618946.939] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2618946.943] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2618946.949] {Default Queue} -> wl_surface#2087.damage(0, 0, 576, 167) +[2618946.953] {Default Queue} -> wl_region#2111.subtract(0, 0, 22, 385) +[2618946.957] {Default Queue} -> wl_region#2111.add(-20, -49, 22, 51) +[2618946.961] {Default Queue} -> wl_surface#2087.set_opaque_region(wl_region#2112) +[2618946.964] {Default Queue} -> wl_surface#2087.set_input_region(wl_region#2111) +[2618946.969] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2618946.974] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2618946.978] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2618946.982] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2618946.986] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) +[2618946.990] {Default Queue} -> wl_surface#2151.damage(0, 0, 109, 161) +[2618946.994] {Default Queue} -> wl_surface#2119.damage(0, 0, 115, 167) +[2618946.998] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2618947.002] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) +[2618947.006] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) +[2618947.010] {Default Queue} -> wl_surface#2375.damage(0, 0, 109, 161) +[2618947.015] {Default Queue} -> wl_surface#2343.damage(0, 0, 115, 167) +[2618947.020] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2618947.024] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) +[2618947.028] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) +[2618947.032] {Default Queue} -> wl_surface#2535.damage(0, 0, 109, 161) +[2618947.036] {Default Queue} -> wl_surface#2508.damage(0, 0, 115, 167) +[2618947.040] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) +[2618947.044] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) +[2618947.048] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) +[2618947.052] {Default Queue} -> wl_surface#2695.damage(0, 0, 109, 161) +[2618947.056] {Default Queue} -> wl_surface#2663.damage(0, 0, 115, 167) +[2618947.060] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) +[2618947.064] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) +[2618947.068] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) +[2618947.072] {Default Queue} -> wl_surface#2855.damage(0, 0, 109, 161) +[2618947.076] {Default Queue} -> wl_surface#2823.damage(0, 0, 115, 167) +[2618947.079] {Default Queue} -> wl_surface#2087.damage(0, 0, 576, 167) +[2618947.091] {Default Queue} -> wl_buffer#2109.destroy() +[2618947.097] {Default Queue} -> wl_buffer#2110.destroy() +[2618947.101] {Default Queue} -> wl_shm_pool#2107.destroy() +[2618947.105] {Default Queue} -> wl_shm_pool#2108.destroy() +[2618947.342] {Default Queue} -> wl_shm#2095.create_pool(new id wl_shm_pool#699, fd 575, 384768) +[2618947.350] {Default Queue} -> wl_shm#2095.create_pool(new id wl_shm_pool#702, fd 578, 384768) +[2618947.354] {Default Queue} -> wl_shm_pool#699.create_buffer(new id wl_buffer#701, 0, 576, 167, 2304, 0) +[2618947.359] {Default Queue} -> wl_shm_pool#702.create_buffer(new id wl_buffer#860, 0, 576, 167, 2304, 0) +[2618947.454] {Default Queue} -> wl_surface#2087.attach(wl_buffer#701, 0, 0) +[2618947.459] {Default Queue} -> wl_surface#2087.commit() +[2618947.559] {Default Queue} -> wl_surface#2087.attach(wl_buffer#701, 0, 0) +[2618947.565] {Default Queue} -> wl_surface#2087.commit() +[2618947.578] {Default Queue} -> wl_region#2111.subtract(0, 0, 596, 550) +[2618947.583] {Default Queue} -> wl_region#2111.add(-20, -49, 596, 216) +[2618947.587] {Default Queue} -> wl_surface#2087.set_opaque_region(wl_region#2112) +[2618947.591] {Default Queue} -> wl_surface#2087.set_input_region(wl_region#2111) +[2618947.611] {Default Queue} -> wl_surface#2087.attach(wl_buffer#701, 0, 0) +[2618947.616] {Default Queue} -> wl_surface#2087.commit() +[2618947.676] {Display Queue} wl_display#1.delete_id(1565) +[2618947.684] {Display Queue} wl_display#1.delete_id(1566) +[2618947.688] {Display Queue} wl_display#1.delete_id(1563) +[2618947.692] {Display Queue} wl_display#1.delete_id(1564) +[2618947.696] {Display Queue} wl_display#1.delete_id(1469) +[2618947.699] {Display Queue} wl_display#1.delete_id(1470) +[2618947.703] {Display Queue} wl_display#1.delete_id(1467) +[2618947.707] {Display Queue} wl_display#1.delete_id(1468) +[2618947.710] {Display Queue} wl_display#1.delete_id(1693) +[2618947.715] {Display Queue} wl_display#1.delete_id(1694) +[2618947.718] {Display Queue} wl_display#1.delete_id(1691) +[2618947.722] {Display Queue} wl_display#1.delete_id(1692) +[2618947.726] {Display Queue} wl_display#1.delete_id(1725) +[2618947.730] {Display Queue} wl_display#1.delete_id(1726) +[2618947.734] {Display Queue} wl_display#1.delete_id(1723) +[2618947.738] {Display Queue} wl_display#1.delete_id(1724) +[2618947.742] {Display Queue} wl_display#1.delete_id(1629) +[2618947.745] {Display Queue} wl_display#1.delete_id(1630) +[2618947.750] {Display Queue} wl_display#1.delete_id(1627) +[2618947.754] {Display Queue} wl_display#1.delete_id(1628) +[2618947.757] {Display Queue} wl_display#1.delete_id(1853) +[2618947.761] {Display Queue} wl_display#1.delete_id(1854) +[2618947.765] {Display Queue} wl_display#1.delete_id(1851) +[2618947.768] {Display Queue} wl_display#1.delete_id(1852) +[2618947.772] {Display Queue} wl_display#1.delete_id(1885) +[2618947.776] {Display Queue} wl_display#1.delete_id(1886) +[2618947.780] {Display Queue} wl_display#1.delete_id(1883) +[2618947.784] {Display Queue} wl_display#1.delete_id(1884) +[2618947.788] {Display Queue} wl_display#1.delete_id(1789) +[2618947.791] {Display Queue} wl_display#1.delete_id(1790) +[2618947.795] {Display Queue} wl_display#1.delete_id(1787) +[2618947.799] {Display Queue} wl_display#1.delete_id(1788) +[2618947.802] {Display Queue} wl_display#1.delete_id(2013) +[2618947.807] {Display Queue} wl_display#1.delete_id(2014) +[2618947.810] {Display Queue} wl_display#1.delete_id(2011) +[2618947.814] {Display Queue} wl_display#1.delete_id(2012) +[2618947.818] {Display Queue} wl_display#1.delete_id(3783) +[2618947.821] {Display Queue} wl_display#1.delete_id(3784) +[2618947.825] {Display Queue} wl_display#1.delete_id(3781) +[2618947.830] {Display Queue} wl_display#1.delete_id(3782) +[2618947.833] {Display Queue} wl_display#1.delete_id(3785) +[2618947.837] {Display Queue} wl_display#1.delete_id(2045) +[2618947.841] {Display Queue} wl_display#1.delete_id(2046) +[2618947.844] {Display Queue} wl_display#1.delete_id(2043) +[2618947.848] {Display Queue} wl_display#1.delete_id(2044) +[2618947.852] {Display Queue} wl_display#1.delete_id(1949) +[2618947.856] {Display Queue} wl_display#1.delete_id(1950) +[2618947.859] {Display Queue} wl_display#1.delete_id(1947) +[2618947.868] {Display Queue} wl_display#1.delete_id(1948) +[2618947.892] {Display Queue} wl_display#1.delete_id(893) +[2618947.902] {Display Queue} wl_display#1.delete_id(894) +[2618947.908] {Display Queue} wl_display#1.delete_id(891) +[2618947.912] {Display Queue} wl_display#1.delete_id(892) +[2618947.916] {Display Queue} wl_display#1.delete_id(2205) +[2618947.920] {Display Queue} wl_display#1.delete_id(2206) +[2618947.924] {Display Queue} wl_display#1.delete_id(2203) +[2618947.930] {Display Queue} wl_display#1.delete_id(2204) +[2618947.933] {Display Queue} wl_display#1.delete_id(2237) +[2618947.937] {Display Queue} wl_display#1.delete_id(2238) +[2618947.941] {Display Queue} wl_display#1.delete_id(2235) +[2618947.945] {Display Queue} wl_display#1.delete_id(2236) +[2618947.949] {Display Queue} wl_display#1.delete_id(2141) +[2618947.953] {Display Queue} wl_display#1.delete_id(2142) +[2618947.957] {Display Queue} wl_display#1.delete_id(2139) +[2618947.961] {Display Queue} wl_display#1.delete_id(2140) +[2618947.965] {Display Queue} wl_display#1.delete_id(2429) +[2618947.968] {Display Queue} wl_display#1.delete_id(2430) +[2618947.972] {Display Queue} wl_display#1.delete_id(2427) +[2618947.976] {Display Queue} wl_display#1.delete_id(2428) +[2618947.980] {Default Queue} wl_pointer#24.motion(187310577, 28.60156250, 15.00000000) +[2618947.992] {Default Queue} wl_pointer#81.motion(187310577, 28.60156250, 15.00000000) +[2618948.006] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618948.011] {Default Queue} wl_pointer#105.motion(187310577, 28.60156250, 15.00000000) +[2618948.016] {Default Queue} wl_pointer#137.motion(187310577, 28.60156250, 15.00000000) +[2618948.021] {Default Queue} wl_pointer#169.motion(187310577, 28.60156250, 15.00000000) +[2618948.025] {Default Queue} wl_pointer#201.motion(187310577, 28.60156250, 15.00000000) +[2618948.029] {Default Queue} wl_pointer#233.motion(187310577, 28.60156250, 15.00000000) +[2618948.034] {Default Queue} wl_pointer#265.motion(187310577, 28.60156250, 15.00000000) +[2618948.038] {Default Queue} wl_pointer#297.motion(187310577, 28.60156250, 15.00000000) +[2618948.043] {Default Queue} wl_pointer#329.motion(187310577, 28.60156250, 15.00000000) +[2618948.047] {Default Queue} wl_pointer#361.motion(187310577, 28.60156250, 15.00000000) +[2618948.052] {Default Queue} wl_pointer#393.motion(187310577, 28.60156250, 15.00000000) +[2618948.056] {Default Queue} wl_pointer#425.motion(187310577, 28.60156250, 15.00000000) +[2618948.061] {Default Queue} wl_pointer#457.motion(187310577, 28.60156250, 15.00000000) +[2618948.065] {Default Queue} wl_pointer#489.motion(187310577, 28.60156250, 15.00000000) +[2618948.069] {Default Queue} wl_pointer#521.motion(187310577, 28.60156250, 15.00000000) +[2618948.074] {Default Queue} wl_pointer#553.motion(187310577, 28.60156250, 15.00000000) +[2618948.079] {Default Queue} wl_pointer#585.motion(187310577, 28.60156250, 15.00000000) +[2618948.084] {Default Queue} wl_pointer#617.motion(187310577, 28.60156250, 15.00000000) +[2618948.088] {Default Queue} wl_pointer#649.motion(187310577, 28.60156250, 15.00000000) +[2618948.093] {Default Queue} wl_pointer#681.motion(187310577, 28.60156250, 15.00000000) +[2618948.097] {Default Queue} wl_pointer#713.motion(187310577, 28.60156250, 15.00000000) +[2618948.102] {Default Queue} wl_pointer#745.motion(187310577, 28.60156250, 15.00000000) +[2618948.106] {Default Queue} wl_pointer#777.motion(187310577, 28.60156250, 15.00000000) +[2618948.111] {Default Queue} wl_pointer#809.motion(187310577, 28.60156250, 15.00000000) +[2618948.115] {Default Queue} wl_pointer#841.motion(187310577, 28.60156250, 15.00000000) +[2618948.120] {Default Queue} wl_pointer#873.motion(187310577, 28.60156250, 15.00000000) +[2618948.124] {Default Queue} wl_pointer#905.motion(187310577, 28.60156250, 15.00000000) +[2618948.128] {Default Queue} wl_pointer#937.motion(187310577, 28.60156250, 15.00000000) +[2618948.133] {Default Queue} wl_pointer#969.motion(187310577, 28.60156250, 15.00000000) +[2618948.138] {Default Queue} wl_pointer#1001.motion(187310577, 28.60156250, 15.00000000) +[2618948.142] {Default Queue} wl_pointer#1033.motion(187310577, 28.60156250, 15.00000000) +[2618948.147] {Default Queue} wl_pointer#1065.motion(187310577, 28.60156250, 15.00000000) +[2618948.151] {Default Queue} wl_pointer#1097.motion(187310577, 28.60156250, 15.00000000) +[2618948.156] {Default Queue} wl_pointer#1129.motion(187310577, 28.60156250, 15.00000000) +[2618948.160] {Default Queue} wl_pointer#1161.motion(187310577, 28.60156250, 15.00000000) +[2618948.164] {Default Queue} wl_pointer#1193.motion(187310577, 28.60156250, 15.00000000) +[2618948.169] {Default Queue} wl_pointer#1225.motion(187310577, 28.60156250, 15.00000000) +[2618948.173] {Default Queue} wl_pointer#1257.motion(187310577, 28.60156250, 15.00000000) +[2618948.178] {Default Queue} wl_pointer#1289.motion(187310577, 28.60156250, 15.00000000) +[2618948.182] {Default Queue} wl_pointer#1321.motion(187310577, 28.60156250, 15.00000000) +[2618948.187] {Default Queue} wl_pointer#1353.motion(187310577, 28.60156250, 15.00000000) +[2618948.191] {Default Queue} wl_pointer#1385.motion(187310577, 28.60156250, 15.00000000) +[2618948.195] {Default Queue} wl_pointer#1417.motion(187310577, 28.60156250, 15.00000000) +[2618948.200] {Default Queue} wl_pointer#1449.motion(187310577, 28.60156250, 15.00000000) +[2618948.204] {Default Queue} wl_pointer#1481.motion(187310577, 28.60156250, 15.00000000) +[2618948.211] {Default Queue} wl_pointer#1513.motion(187310577, 28.60156250, 15.00000000) +[2618948.218] {Default Queue} wl_pointer#1545.motion(187310577, 28.60156250, 15.00000000) +[2618948.222] {Default Queue} wl_pointer#1577.motion(187310577, 28.60156250, 15.00000000) +[2618948.226] {Default Queue} wl_pointer#1609.motion(187310577, 28.60156250, 15.00000000) +[2618948.231] {Default Queue} wl_pointer#1641.motion(187310577, 28.60156250, 15.00000000) +[2618948.236] {Default Queue} wl_pointer#1673.motion(187310577, 28.60156250, 15.00000000) +[2618948.241] {Default Queue} wl_pointer#1705.motion(187310577, 28.60156250, 15.00000000) +[2618948.245] {Default Queue} wl_pointer#1737.motion(187310577, 28.60156250, 15.00000000) +[2618948.249] {Default Queue} wl_pointer#1762.motion(187310577, 28.60156250, 15.00000000) +[2618948.254] {Default Queue} wl_pointer#1801.motion(187310577, 28.60156250, 15.00000000) +[2618948.259] {Default Queue} wl_pointer#1833.motion(187310577, 28.60156250, 15.00000000) +[2618948.263] {Default Queue} wl_pointer#1865.motion(187310577, 28.60156250, 15.00000000) +[2618948.268] {Default Queue} wl_pointer#1897.motion(187310577, 28.60156250, 15.00000000) +[2618948.272] {Default Queue} wl_pointer#1929.motion(187310577, 28.60156250, 15.00000000) +[2618948.276] {Default Queue} wl_pointer#1961.motion(187310577, 28.60156250, 15.00000000) +[2618948.281] {Default Queue} wl_pointer#1993.motion(187310577, 28.60156250, 15.00000000) +[2618948.285] {Default Queue} wl_pointer#2025.motion(187310577, 28.60156250, 15.00000000) +[2618948.290] {Default Queue} wl_pointer#2057.motion(187310577, 28.60156250, 15.00000000) +[2618948.294] {Default Queue} wl_pointer#2089.motion(187310577, 28.60156250, 15.00000000) +[2618948.299] {Default Queue} wl_pointer#2121.motion(187310577, 28.60156250, 15.00000000) +[2618948.303] {Default Queue} wl_pointer#2153.motion(187310577, 28.60156250, 15.00000000) +[2618948.307] {Default Queue} wl_pointer#2185.motion(187310577, 28.60156250, 15.00000000) +[2618948.312] {Default Queue} wl_pointer#2217.motion(187310577, 28.60156250, 15.00000000) +[2618948.317] {Default Queue} wl_pointer#2249.motion(187310577, 28.60156250, 15.00000000) +[2618948.322] {Default Queue} wl_pointer#2281.motion(187310577, 28.60156250, 15.00000000) +[2618948.326] {Default Queue} wl_pointer#2313.motion(187310577, 28.60156250, 15.00000000) +[2618948.331] {Default Queue} wl_pointer#2345.motion(187310577, 28.60156250, 15.00000000) +[2618948.337] {Default Queue} wl_pointer#2377.motion(187310577, 28.60156250, 15.00000000) +[2618948.341] {Default Queue} wl_pointer#2409.motion(187310577, 28.60156250, 15.00000000) +[2618948.347] {Default Queue} wl_pointer#2441.motion(187310577, 28.60156250, 15.00000000) +[2618948.351] {Default Queue} wl_pointer#2473.motion(187310577, 28.60156250, 15.00000000) +[2618948.355] {Default Queue} wl_pointer#2498.motion(187310577, 28.60156250, 15.00000000) +[2618948.371] {Default Queue} -> wl_buffer#1022.destroy() +[2618948.377] {Default Queue} -> wl_buffer#1021.destroy() +[2618948.381] {Default Queue} -> wl_shm_pool#1020.destroy() +[2618948.385] {Default Queue} -> wl_shm_pool#1019.destroy() +[2618948.389] {Default Queue} -> wl_surface#1276.destroy() +[2618948.432] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2428, fd 581, 640) +[2618948.439] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2427, fd 582, 640) +[2618948.444] {Default Queue} -> wl_shm_pool#2428.create_buffer(new id wl_buffer#2430, 0, 10, 16, 40, 0) +[2618948.449] {Default Queue} -> wl_shm_pool#2427.create_buffer(new id wl_buffer#2429, 0, 10, 16, 40, 0) +[2618948.456] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#2140) +[2618948.461] {Default Queue} -> wl_surface#2140.attach(wl_buffer#2430, 0, 0) +[2618948.465] {Default Queue} -> wl_surface#2140.commit() +[2618948.470] {Default Queue} -> wl_surface#2140.attach(wl_buffer#2430, 0, 0) +[2618948.475] {Default Queue} -> wl_surface#2140.commit() +[2618948.479] {Default Queue} wl_pointer#2537.motion(187310577, 28.60156250, 15.00000000) +[2618948.487] {Default Queue} wl_pointer#2569.motion(187310577, 28.60156250, 15.00000000) +[2618948.493] {Default Queue} wl_pointer#2601.motion(187310577, 28.60156250, 15.00000000) +[2618948.498] {Default Queue} wl_pointer#2633.motion(187310577, 28.60156250, 15.00000000) +[2618948.502] {Default Queue} wl_pointer#2665.motion(187310577, 28.60156250, 15.00000000) +[2618948.506] {Default Queue} wl_pointer#2697.motion(187310577, 28.60156250, 15.00000000) +[2618948.511] {Default Queue} wl_pointer#2729.motion(187310577, 28.60156250, 15.00000000) +[2618948.515] {Default Queue} wl_pointer#2761.motion(187310577, 28.60156250, 15.00000000) +[2618948.519] {Default Queue} wl_pointer#2793.motion(187310577, 28.60156250, 15.00000000) +[2618948.524] {Default Queue} wl_pointer#2825.motion(187310577, 28.60156250, 15.00000000) +[2618948.528] {Default Queue} wl_pointer#2857.motion(187310577, 28.60156250, 15.00000000) +[2618948.533] {Default Queue} wl_pointer#2889.motion(187310577, 28.60156250, 15.00000000) +[2618948.537] {Default Queue} wl_pointer#2921.motion(187310577, 28.60156250, 15.00000000) +[2618948.541] {Default Queue} wl_pointer#2953.motion(187310577, 28.60156250, 15.00000000) +[2618948.546] {Default Queue} wl_pointer#2985.motion(187310577, 28.60156250, 15.00000000) +[2618948.550] {Default Queue} wl_pointer#3017.motion(187310577, 28.60156250, 15.00000000) +[2618948.555] {Default Queue} wl_pointer#3049.motion(187310577, 28.60156250, 15.00000000) +[2618948.559] {Default Queue} wl_pointer#3081.motion(187310577, 28.60156250, 15.00000000) +[2618948.564] {Default Queue} wl_pointer#3113.motion(187310577, 28.60156250, 15.00000000) +[2618948.568] {Default Queue} wl_pointer#3145.motion(187310577, 28.60156250, 15.00000000) +[2618948.573] {Default Queue} wl_pointer#3177.motion(187310577, 28.60156250, 15.00000000) +[2618948.577] {Default Queue} wl_pointer#3209.motion(187310577, 28.60156250, 15.00000000) +[2618948.582] {Default Queue} wl_pointer#3241.motion(187310577, 28.60156250, 15.00000000) +[2618948.586] {Default Queue} wl_pointer#3273.motion(187310577, 28.60156250, 15.00000000) +[2618948.591] {Default Queue} wl_pointer#3305.motion(187310577, 28.60156250, 15.00000000) +[2618948.595] {Default Queue} wl_pointer#3337.motion(187310577, 28.60156250, 15.00000000) +[2618948.599] {Default Queue} wl_pointer#3369.motion(187310577, 28.60156250, 15.00000000) +[2618948.604] {Default Queue} wl_pointer#3401.motion(187310577, 28.60156250, 15.00000000) +[2618948.608] {Default Queue} wl_pointer#3433.motion(187310577, 28.60156250, 15.00000000) +[2618948.613] {Default Queue} wl_pointer#3465.motion(187310577, 28.60156250, 15.00000000) +[2618948.618] {Default Queue} wl_pointer#3497.motion(187310577, 28.60156250, 15.00000000) +[2618948.622] {Default Queue} wl_pointer#3529.motion(187310577, 28.60156250, 15.00000000) +[2618948.626] {Default Queue} wl_pointer#3561.motion(187310577, 28.60156250, 15.00000000) +[2618948.631] {Default Queue} wl_pointer#3593.motion(187310577, 28.60156250, 15.00000000) +[2618948.635] {Default Queue} wl_pointer#3625.motion(187310577, 28.60156250, 15.00000000) +[2618948.639] {Default Queue} wl_pointer#3657.motion(187310577, 28.60156250, 15.00000000) +[2618948.644] {Default Queue} wl_pointer#3695.motion(187310577, 28.60156250, 15.00000000) +[2618948.660] {Default Queue} -> wl_surface#2087.attach(wl_buffer#701, 0, 0) +[2618948.666] {Default Queue} -> wl_surface#2087.commit() +[2618949.721] {Default Queue} -> wl_surface#2087.attach(wl_buffer#701, 0, 0) +[2618949.734] {Default Queue} -> wl_surface#2087.commit() +[2618949.751] {Default Queue} -> wl_region#2111.subtract(0, 0, 596, 550) +[2618949.756] {Default Queue} -> wl_region#2111.add(-20, -49, 596, 216) +[2618949.762] {Default Queue} -> wl_surface#2087.set_opaque_region(wl_region#2112) +[2618949.766] {Default Queue} -> wl_surface#2087.set_input_region(wl_region#2111) +[2618949.783] {Default Queue} -> wl_surface#2087.attach(wl_buffer#701, 0, 0) +[2618949.788] {Default Queue} -> wl_surface#2087.commit() +[2618949.799] {Default Queue} -> wl_surface#2087.attach(wl_buffer#701, 0, 0) +[2618949.804] {Default Queue} -> wl_surface#2087.commit() +[2618949.822] {Default Queue} -> wl_surface#2087.attach(wl_buffer#701, 0, 0) +[2618949.831] {Default Queue} -> wl_surface#2087.commit() +[2618949.836] {Default Queue} -> wl_region#3103.subtract(0, 0, 2, 20) +[2618949.841] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 552) +[2618949.845] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 552) +[2618949.849] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2618949.853] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2618949.857] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) +[2618949.881] {Default Queue} -> wl_buffer#3101.destroy() +[2618949.901] {Default Queue} -> wl_buffer#3102.destroy() +[2618949.906] {Default Queue} -> wl_shm_pool#3099.destroy() +[2618949.910] {Default Queue} -> wl_shm_pool#3100.destroy() +[2618949.954] {Default Queue} -> wl_shm#3087.create_pool(new id wl_shm_pool#2139, fd 575, 160) +[2618949.963] {Default Queue} -> wl_shm#3087.create_pool(new id wl_shm_pool#2142, fd 578, 160) +[2618949.968] {Default Queue} -> wl_shm_pool#2139.create_buffer(new id wl_buffer#2141, 0, 2, 20, 8, 0) +[2618949.972] {Default Queue} -> wl_shm_pool#2142.create_buffer(new id wl_buffer#2236, 0, 2, 20, 8, 0) +[2618949.979] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) +[2618949.984] {Default Queue} -> wl_surface#3079.commit() +[2618949.989] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) +[2618949.993] {Default Queue} -> wl_surface#3079.commit() +[2618950.003] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 552) +[2618950.007] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 552) +[2618950.011] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2618950.016] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2618950.102] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 552) +[2618950.107] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 552) +[2618950.111] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2618950.115] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2618950.121] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) +[2618950.125] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) +[2618950.185] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 552) +[2618950.190] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 552) +[2618950.195] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2618950.199] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2618950.205] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) +[2618950.210] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) +[2618950.215] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) +[2618950.220] {Default Queue} -> wl_surface#3079.commit() +[2618950.227] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) +[2618950.231] {Default Queue} -> wl_surface#3079.commit() +[2618951.298] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) +[2618951.316] {Default Queue} -> wl_surface#3079.commit() +[2618951.331] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 552) +[2618951.340] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 552) +[2618951.347] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2618951.353] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2618951.432] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 552) +[2618951.438] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 552) +[2618951.442] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2618951.446] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2618951.452] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) +[2618951.456] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) +[2618951.513] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 552) +[2618951.518] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 552) +[2618951.522] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2618951.531] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2618951.540] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) +[2618951.544] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) +[2618951.549] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) +[2618951.553] {Default Queue} -> wl_surface#3079.commit() +[2618951.557] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) +[2618951.561] {Default Queue} -> wl_surface#3079.commit() +[2618951.567] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) +[2618951.571] {Default Queue} -> wl_surface#3079.commit() +[2618951.578] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618951.582] {Default Queue} -> wl_surface#3175.commit() +[2618952.646] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618952.658] {Default Queue} -> wl_surface#3175.commit() +[2618952.668] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) +[2618952.673] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) +[2618952.678] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618952.682] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618952.691] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) +[2618952.695] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) +[2618952.699] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618952.703] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618952.708] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) +[2618952.712] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) +[2618952.716] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618952.720] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618952.724] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) +[2618952.729] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) +[2618952.734] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618952.737] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618952.742] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) +[2618952.746] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) +[2618952.750] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618952.753] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618952.760] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) +[2618952.764] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) +[2618952.768] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618952.772] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618952.776] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) +[2618952.780] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) +[2618952.784] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618952.788] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618952.793] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) +[2618952.797] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) +[2618952.801] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618952.804] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618952.810] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) +[2618952.820] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) +[2618952.829] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618952.833] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618952.846] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) +[2618952.852] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) +[2618952.856] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618952.860] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618952.875] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) +[2618952.882] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) +[2618952.886] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618952.889] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618952.894] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) +[2618952.898] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) +[2618952.902] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618952.906] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618952.910] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) +[2618952.914] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) +[2618952.918] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618952.922] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618952.927] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618952.931] {Default Queue} -> wl_surface#3175.commit() +[2618952.935] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618952.939] {Default Queue} -> wl_surface#3175.commit() +[2618952.946] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618952.950] {Default Queue} -> wl_surface#3175.commit() +[2618952.956] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) +[2618952.960] {Default Queue} -> wl_surface#3207.commit() +[2618954.025] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) +[2618954.038] {Default Queue} -> wl_surface#3207.commit() +[2618954.050] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.055] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.060] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.064] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.070] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.074] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.078] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.082] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.087] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.091] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.095] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.099] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.103] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.107] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.111] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.115] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.121] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.126] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.130] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.134] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.143] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.147] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.151] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.155] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.159] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.164] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.168] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.171] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.176] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.180] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.184] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.188] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.197] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.203] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.207] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.211] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.215] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.219] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.223] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.227] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.240] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.247] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.251] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.255] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.262] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.266] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.269] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.273] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.280] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.284] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.288] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.292] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.298] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.302] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.306] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.310] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.315] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.318] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.322] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.326] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.331] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.335] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.339] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.342] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.347] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.351] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.356] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.359] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.364] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.368] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.372] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.375] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.382] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.386] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.390] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.394] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.398] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.402] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.406] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.410] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.414] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.418] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.422] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.426] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.434] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.439] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.444] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.447] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.502] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.515] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.520] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.525] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.533] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618954.537] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618954.551] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.564] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.572] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.578] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.590] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.598] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.603] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.607] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.645] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.650] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.654] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.658] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.664] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618954.668] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618954.677] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.681] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.685] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.689] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.694] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.698] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.702] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.706] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.711] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.714] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.718] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.722] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.727] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618954.731] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618954.735] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618954.738] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618954.743] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) +[2618954.747] {Default Queue} -> wl_surface#3207.commit() +[2618954.751] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) +[2618954.755] {Default Queue} -> wl_surface#3207.commit() +[2618954.762] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) +[2618954.766] {Default Queue} -> wl_surface#3207.commit() +[2618954.772] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) +[2618954.776] {Default Queue} -> wl_surface#3143.commit() +[2618955.842] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) +[2618955.854] {Default Queue} -> wl_surface#3143.commit() +[2618955.870] {Default Queue} -> wl_region#3167.subtract(0, 0, 25, 535) +[2618955.875] {Default Queue} -> wl_region#3167.add(-23, -553, 25, 535) +[2618955.879] {Default Queue} -> wl_surface#3143.set_opaque_region(wl_region#3168) +[2618955.883] {Default Queue} -> wl_surface#3143.set_input_region(wl_region#3167) +[2618955.893] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) +[2618955.899] {Default Queue} -> wl_surface#3143.commit() +[2618955.904] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) +[2618955.908] {Default Queue} -> wl_surface#3143.commit() +[2618955.914] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) +[2618955.918] {Default Queue} -> wl_surface#3143.commit() +[2618955.922] {Default Queue} -> wl_region#3135.subtract(0, 0, 2, 2) +[2618955.928] {Default Queue} -> wl_region#3167.subtract(0, 0, 2, 2) +[2618955.932] {Default Queue} -> wl_subsurface#3162.set_position(1, 1) +[2618955.936] {Default Queue} -> wl_region#3167.subtract(0, 0, 26, 536) +[2618955.940] {Default Queue} -> wl_region#3167.add(-23, -553, 25, 535) +[2618955.944] {Default Queue} -> wl_surface#3143.set_opaque_region(wl_region#3168) +[2618955.948] {Default Queue} -> wl_surface#3143.set_input_region(wl_region#3167) +[2618955.952] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618955.957] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618955.960] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) +[2618955.966] {Default Queue} -> wl_region#3167.subtract(0, 0, 25, 555) +[2618955.970] {Default Queue} -> wl_region#3167.add(-23, -573, 24, 554) +[2618955.974] {Default Queue} -> wl_surface#3143.set_opaque_region(wl_region#3168) +[2618955.977] {Default Queue} -> wl_surface#3143.set_input_region(wl_region#3167) +[2618955.982] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) +[2618955.987] {Default Queue} -> wl_surface#3143.commit() +[2618955.992] {Default Queue} -> wl_region#3199.subtract(0, 0, 16, 2) +[2618955.998] {Default Queue} -> wl_subsurface#3194.set_position(-14, 0) +[2618956.009] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) +[2618956.015] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) +[2618956.020] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618956.024] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618956.028] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618956.036] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) +[2618956.040] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) +[2618956.044] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618956.048] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618956.055] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) +[2618956.059] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) +[2618956.063] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618956.067] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618956.071] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) +[2618956.076] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) +[2618956.079] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618956.083] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618956.088] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) +[2618956.091] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) +[2618956.095] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618956.099] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618956.103] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) +[2618956.107] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) +[2618956.112] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618956.115] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618956.121] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) +[2618956.125] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) +[2618956.129] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618956.132] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618956.137] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) +[2618956.141] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) +[2618956.149] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618956.155] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618956.160] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) +[2618956.164] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) +[2618956.168] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618956.172] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618956.176] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) +[2618956.181] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) +[2618956.184] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618956.188] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618956.198] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) +[2618956.202] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) +[2618956.206] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618956.210] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618956.214] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) +[2618956.218] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) +[2618956.222] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618956.226] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618956.231] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) +[2618956.235] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) +[2618956.239] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618956.242] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618956.247] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) +[2618956.251] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) +[2618956.255] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2618956.259] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2618956.263] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618956.267] {Default Queue} -> wl_surface#3175.commit() +[2618956.274] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2618956.278] {Default Queue} -> wl_surface#3175.commit() +[2618956.282] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2618956.287] {Default Queue} -> wl_subsurface#3226.set_position(0, 0) +[2618956.291] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) +[2618956.295] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) +[2618956.299] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.303] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.307] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618956.314] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.318] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.322] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.326] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.331] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.335] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.339] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.342] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.347] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.351] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.355] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.359] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.363] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.367] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.371] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.375] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.384] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.390] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.394] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.398] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.407] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.412] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.416] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.420] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.425] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.429] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.433] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.437] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.441] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.445] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.449] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.452] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.457] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.461] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.465] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.469] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.474] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.478] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.482] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.487] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.508] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.520] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.527] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.533] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.542] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.547] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.551] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.555] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.562] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.566] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.570] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.574] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.586] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.599] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.606] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.612] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.619] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.625] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.630] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.634] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.638] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.642] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.646] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.650] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.655] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.659] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.662] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.666] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.675] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.681] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.686] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.690] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.696] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.700] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.704] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.708] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.712] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.716] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.720] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.724] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.728] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.732] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.736] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.740] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.744] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.748] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.753] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.756] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.791] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.796] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.800] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.804] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.810] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618956.814] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618956.825] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.830] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.835] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.838] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.844] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.848] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.853] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.856] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.893] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.898] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.902] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.906] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.910] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618956.915] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618956.923] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.927] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.931] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.935] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.939] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.944] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.947] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.951] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.955] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.959] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.963] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.967] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.972] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2618956.979] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2618956.984] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2618956.988] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2618956.993] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) +[2618956.997] {Default Queue} -> wl_surface#3207.commit() +[2618957.003] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618957.008] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618957.013] {Default Queue} -> wl_region#3167.subtract(0, 0, 25, 555) +[2618957.022] {Default Queue} -> wl_region#3167.add(-23, -573, 24, 554) +[2618957.027] {Default Queue} -> wl_surface#3143.set_opaque_region(wl_region#3168) +[2618957.031] {Default Queue} -> wl_surface#3143.set_input_region(wl_region#3167) +[2618957.036] {Default Queue} -> wl_region#3135.subtract(0, 0, 25, 555) +[2618957.040] {Default Queue} -> wl_region#3135.add(-23, -553, 25, 535) +[2618957.044] {Default Queue} -> wl_surface#3111.set_opaque_region(wl_region#3136) +[2618957.048] {Default Queue} -> wl_surface#3111.set_input_region(wl_region#3135) +[2618957.052] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618957.057] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618957.063] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) +[2618957.074] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) +[2618957.090] {Default Queue} -> wl_buffer#3133.destroy() +[2618957.095] {Default Queue} -> wl_buffer#3134.destroy() +[2618957.100] {Default Queue} -> wl_shm_pool#3131.destroy() +[2618957.104] {Default Queue} -> wl_shm_pool#3132.destroy() +[2618957.160] {Default Queue} -> wl_shm#3119.create_pool(new id wl_shm_pool#2235, fd 575, 16) +[2618957.176] {Default Queue} -> wl_shm#3119.create_pool(new id wl_shm_pool#2238, fd 578, 16) +[2618957.183] {Default Queue} -> wl_shm_pool#2235.create_buffer(new id wl_buffer#2237, 0, 2, 2, 8, 0) +[2618957.189] {Default Queue} -> wl_shm_pool#2238.create_buffer(new id wl_buffer#2204, 0, 2, 2, 8, 0) +[2618957.196] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) +[2618957.201] {Default Queue} -> wl_surface#3111.commit() +[2618957.206] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) +[2618957.210] {Default Queue} -> wl_surface#3111.commit() +[2618957.218] {Default Queue} -> wl_region#3135.subtract(0, 0, 25, 555) +[2618957.223] {Default Queue} -> wl_region#3135.add(-23, -553, 25, 535) +[2618957.227] {Default Queue} -> wl_surface#3111.set_opaque_region(wl_region#3136) +[2618957.232] {Default Queue} -> wl_surface#3111.set_input_region(wl_region#3135) +[2618957.237] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) +[2618957.241] {Default Queue} -> wl_surface#3111.commit() +[2618957.247] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) +[2618957.252] {Default Queue} -> wl_surface#3111.commit() +[2618958.317] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) +[2618958.328] {Default Queue} -> wl_surface#3111.commit() +[2618958.336] {Default Queue} -> wl_region#3135.subtract(0, 0, 25, 555) +[2618958.343] {Default Queue} -> wl_region#3135.add(-23, -553, 25, 535) +[2618958.347] {Default Queue} -> wl_surface#3111.set_opaque_region(wl_region#3136) +[2618958.351] {Default Queue} -> wl_surface#3111.set_input_region(wl_region#3135) +[2618958.356] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) +[2618958.361] {Default Queue} -> wl_surface#3111.commit() +[2618958.364] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) +[2618958.368] {Default Queue} -> wl_surface#3111.commit() +[2618958.374] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) +[2618958.378] {Default Queue} -> wl_surface#3111.commit() +[2618958.385] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) +[2618958.389] {Default Queue} -> wl_surface#3047.commit() +[2618959.453] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) +[2618959.465] {Default Queue} -> wl_surface#3047.commit() +[2618959.479] {Default Queue} -> wl_region#3071.subtract(0, 0, 25, 555) +[2618959.486] {Default Queue} -> wl_region#3071.add(-20, -550, 22, 552) +[2618959.490] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) +[2618959.494] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) +[2618959.500] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) +[2618959.504] {Default Queue} -> wl_surface#3047.commit() +[2618959.508] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) +[2618959.512] {Default Queue} -> wl_surface#3047.commit() +[2618959.518] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) +[2618959.522] {Default Queue} -> wl_surface#3047.commit() +[2618959.526] {Default Queue} -> wl_region#3039.subtract(0, 0, 115, 167) +[2618959.533] {Default Queue} -> wl_region#3071.subtract(0, 0, 2, 2) +[2618959.537] {Default Queue} -> wl_subsurface#3066.set_position(3, 3) +[2618959.541] {Default Queue} -> wl_region#3071.subtract(0, 0, 25, 555) +[2618959.545] {Default Queue} -> wl_region#3071.add(-20, -550, 22, 552) +[2618959.549] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) +[2618959.553] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) +[2618959.557] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) +[2618959.561] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618959.565] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618959.569] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) +[2618959.573] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) +[2618959.577] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) +[2618959.582] {Default Queue} -> wl_region#3071.subtract(0, 0, 25, 555) +[2618959.587] {Default Queue} -> wl_region#3071.add(-20, -550, 22, 552) +[2618959.591] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) +[2618959.595] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) +[2618959.599] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) +[2618959.603] {Default Queue} -> wl_surface#3047.commit() +[2618959.608] {Default Queue} -> wl_region#3071.subtract(0, 0, 132, 714) +[2618959.613] {Default Queue} -> wl_region#3071.add(-20, -550, 129, 711) +[2618959.617] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) +[2618959.620] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) +[2618959.625] {Default Queue} -> wl_region#3039.subtract(0, 0, 22, 51) +[2618959.629] {Default Queue} -> wl_region#3039.add(-20, -49, 22, 51) +[2618959.633] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618959.637] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618959.641] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) +[2618959.645] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618959.649] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618959.653] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) +[2618959.657] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) +[2618959.661] {Default Queue} -> wl_surface#3047.damage(0, 0, 109, 161) +[2618959.665] {Default Queue} -> wl_surface#3015.damage(0, 0, 115, 167) +[2618959.678] {Default Queue} -> wl_buffer#3037.destroy() +[2618959.683] {Default Queue} -> wl_buffer#3038.destroy() +[2618959.687] {Default Queue} -> wl_shm_pool#3035.destroy() +[2618959.691] {Default Queue} -> wl_shm_pool#3036.destroy() +[2618959.774] {Default Queue} -> wl_shm#3023.create_pool(new id wl_shm_pool#2203, fd 575, 76820) +[2618959.781] {Default Queue} -> wl_shm#3023.create_pool(new id wl_shm_pool#2206, fd 578, 76820) +[2618959.786] {Default Queue} -> wl_shm_pool#2203.create_buffer(new id wl_buffer#2205, 0, 115, 167, 460, 0) +[2618959.791] {Default Queue} -> wl_shm_pool#2206.create_buffer(new id wl_buffer#892, 0, 115, 167, 460, 0) +[2618959.814] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) +[2618959.819] {Default Queue} -> wl_surface#3015.commit() +[2618959.842] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) +[2618959.850] {Default Queue} -> wl_surface#3015.commit() +[2618959.861] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) +[2618959.866] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) +[2618959.874] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618959.879] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618959.887] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) +[2618959.891] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) +[2618959.895] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618959.899] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618959.905] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) +[2618959.909] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) +[2618959.913] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618959.917] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618959.922] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) +[2618959.926] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) +[2618959.930] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618959.934] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618959.940] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) +[2618959.945] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) +[2618959.948] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618959.952] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618959.960] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) +[2618959.964] {Default Queue} -> wl_surface#3015.commit() +[2618959.971] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) +[2618959.975] {Default Queue} -> wl_surface#3015.commit() +[2618961.045] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) +[2618961.057] {Default Queue} -> wl_surface#3015.commit() +[2618961.069] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) +[2618961.076] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) +[2618961.080] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618961.084] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618961.092] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) +[2618961.097] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) +[2618961.101] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618961.104] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618961.110] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) +[2618961.114] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) +[2618961.118] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618961.122] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618961.127] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) +[2618961.132] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) +[2618961.136] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618961.140] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618961.146] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) +[2618961.150] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) +[2618961.154] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618961.158] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618961.165] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) +[2618961.169] {Default Queue} -> wl_surface#3015.commit() +[2618961.174] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) +[2618961.178] {Default Queue} -> wl_surface#3015.commit() +[2618961.187] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) +[2618961.199] {Default Queue} -> wl_surface#3015.commit() +[2618961.208] {Default Queue} -> wl_region#3327.subtract(0, 0, 2, 20) +[2618961.223] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 552) +[2618961.233] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 552) +[2618961.240] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2618961.245] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2618961.250] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) +[2618961.264] {Default Queue} -> wl_buffer#3325.destroy() +[2618961.270] {Default Queue} -> wl_buffer#3326.destroy() +[2618961.274] {Default Queue} -> wl_shm_pool#3323.destroy() +[2618961.278] {Default Queue} -> wl_shm_pool#3324.destroy() +[2618961.319] {Default Queue} -> wl_shm#3311.create_pool(new id wl_shm_pool#891, fd 575, 160) +[2618961.326] {Default Queue} -> wl_shm#3311.create_pool(new id wl_shm_pool#894, fd 578, 160) +[2618961.330] {Default Queue} -> wl_shm_pool#891.create_buffer(new id wl_buffer#893, 0, 2, 20, 8, 0) +[2618961.334] {Default Queue} -> wl_shm_pool#894.create_buffer(new id wl_buffer#1948, 0, 2, 20, 8, 0) +[2618961.341] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) +[2618961.346] {Default Queue} -> wl_surface#3303.commit() +[2618961.351] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) +[2618961.355] {Default Queue} -> wl_surface#3303.commit() +[2618961.364] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 552) +[2618961.369] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 552) +[2618961.373] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2618961.377] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2618961.469] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 552) +[2618961.474] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 552) +[2618961.479] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2618961.482] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2618961.488] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) +[2618961.492] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) +[2618961.554] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 552) +[2618961.559] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 552) +[2618961.563] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2618961.567] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2618961.573] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) +[2618961.577] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) +[2618961.581] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) +[2618961.586] {Default Queue} -> wl_surface#3303.commit() +[2618961.592] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) +[2618961.596] {Default Queue} -> wl_surface#3303.commit() +[2618962.668] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) +[2618962.684] {Default Queue} -> wl_surface#3303.commit() +[2618962.699] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 552) +[2618962.704] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 552) +[2618962.709] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2618962.713] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2618962.792] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 552) +[2618962.797] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 552) +[2618962.801] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2618962.805] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2618962.811] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) +[2618962.815] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) +[2618962.882] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 552) +[2618962.888] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 552) +[2618962.892] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2618962.896] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2618962.903] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) +[2618962.912] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) +[2618962.920] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) +[2618962.925] {Default Queue} -> wl_surface#3303.commit() +[2618962.929] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) +[2618962.933] {Default Queue} -> wl_surface#3303.commit() +[2618962.939] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) +[2618962.943] {Default Queue} -> wl_surface#3303.commit() +[2618962.950] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) +[2618962.954] {Default Queue} -> wl_surface#3399.commit() +[2618964.019] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) +[2618964.030] {Default Queue} -> wl_surface#3399.commit() +[2618964.041] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) +[2618964.046] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) +[2618964.050] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618964.055] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618964.063] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) +[2618964.067] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) +[2618964.071] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618964.075] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618964.080] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) +[2618964.084] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) +[2618964.089] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618964.092] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618964.097] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) +[2618964.101] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) +[2618964.105] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618964.108] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618964.113] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) +[2618964.117] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) +[2618964.121] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618964.126] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618964.134] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) +[2618964.138] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) +[2618964.142] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618964.145] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618964.150] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) +[2618964.154] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) +[2618964.158] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618964.162] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618964.167] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) +[2618964.171] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) +[2618964.175] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618964.178] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618964.183] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) +[2618964.187] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) +[2618964.190] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618964.194] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618964.204] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) +[2618964.209] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) +[2618964.213] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618964.217] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618964.221] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) +[2618964.225] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) +[2618964.229] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618964.237] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618964.244] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) +[2618964.248] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) +[2618964.252] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618964.256] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618964.261] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) +[2618964.265] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) +[2618964.268] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618964.272] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618964.277] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) +[2618964.281] {Default Queue} -> wl_surface#3399.commit() +[2618964.285] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) +[2618964.289] {Default Queue} -> wl_surface#3399.commit() +[2618964.295] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) +[2618964.300] {Default Queue} -> wl_surface#3399.commit() +[2618964.306] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) +[2618964.310] {Default Queue} -> wl_surface#3431.commit() +[2618965.374] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) +[2618965.386] {Default Queue} -> wl_surface#3431.commit() +[2618965.396] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) +[2618965.401] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) +[2618965.405] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618965.409] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618965.418] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) +[2618965.422] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) +[2618965.426] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618965.430] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618965.435] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) +[2618965.439] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) +[2618965.443] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618965.447] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618965.451] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) +[2618965.455] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) +[2618965.459] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618965.463] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618965.467] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) +[2618965.471] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) +[2618965.475] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618965.479] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618965.485] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) +[2618965.490] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) +[2618965.494] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618965.498] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618965.502] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) +[2618965.506] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) +[2618965.510] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618965.514] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618965.518] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) +[2618965.522] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) +[2618965.526] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618965.530] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618965.534] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) +[2618965.538] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) +[2618965.547] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618965.553] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618965.563] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) +[2618965.567] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) +[2618965.571] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618965.574] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618965.579] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) +[2618965.583] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) +[2618965.587] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618965.590] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618965.595] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) +[2618965.599] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) +[2618965.603] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618965.606] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618965.611] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) +[2618965.615] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) +[2618965.619] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618965.623] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618965.627] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) +[2618965.631] {Default Queue} -> wl_surface#3431.commit() +[2618965.635] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) +[2618965.639] {Default Queue} -> wl_surface#3431.commit() +[2618965.645] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) +[2618965.649] {Default Queue} -> wl_surface#3431.commit() +[2618965.662] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2618965.667] {Default Queue} -> wl_surface#3527.commit() +[2618966.736] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2618966.749] {Default Queue} -> wl_surface#3527.commit() +[2618966.760] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 555) +[2618966.765] {Default Queue} -> wl_region#3551.add(-138, -573, 76, 491) +[2618966.770] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618966.774] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618966.784] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 555) +[2618966.789] {Default Queue} -> wl_region#3551.add(-138, -573, 76, 491) +[2618966.793] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618966.797] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618966.803] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 555) +[2618966.807] {Default Queue} -> wl_region#3551.add(-138, -573, 76, 491) +[2618966.811] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618966.815] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618966.819] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 555) +[2618966.823] {Default Queue} -> wl_region#3551.add(-138, -573, 76, 491) +[2618966.827] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618966.831] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618966.835] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 555) +[2618966.839] {Default Queue} -> wl_region#3551.add(-138, -573, 76, 491) +[2618966.843] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618966.847] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618966.881] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 555) +[2618966.887] {Default Queue} -> wl_region#3551.add(-138, -573, 76, 491) +[2618966.891] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618966.895] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618966.908] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618966.917] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618966.981] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 555) +[2618966.986] {Default Queue} -> wl_region#3551.add(-138, -573, 76, 491) +[2618966.990] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2618966.994] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2618966.999] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618967.003] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618967.011] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2618967.015] {Default Queue} -> wl_surface#3527.commit() +[2618967.020] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2618967.024] {Default Queue} -> wl_surface#3527.commit() +[2618967.031] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2618967.035] {Default Queue} -> wl_surface#3527.commit() +[2618967.062] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2618967.067] {Default Queue} -> wl_surface#3495.commit() +[2618967.595] {Display Queue} wl_display#1.delete_id(2461) +[2618967.612] {Display Queue} wl_display#1.delete_id(2462) +[2618967.617] {Display Queue} wl_display#1.delete_id(2459) +[2618967.622] {Display Queue} wl_display#1.delete_id(2460) +[2618967.627] {Display Queue} wl_display#1.delete_id(2365) +[2618967.630] {Display Queue} wl_display#1.delete_id(2366) +[2618967.634] {Display Queue} wl_display#1.delete_id(2363) +[2618967.638] {Display Queue} wl_display#1.delete_id(2364) +[2618967.642] {Display Queue} wl_display#1.delete_id(2589) +[2618967.646] {Display Queue} wl_display#1.delete_id(2590) +[2618967.649] {Display Queue} wl_display#1.delete_id(2587) +[2618967.653] {Display Queue} wl_display#1.delete_id(2588) +[2618967.657] {Display Queue} wl_display#1.delete_id(2621) +[2618967.661] {Display Queue} wl_display#1.delete_id(2622) +[2618967.665] {Display Queue} wl_display#1.delete_id(2619) +[2618967.669] {Display Queue} wl_display#1.delete_id(2620) +[2618967.673] {Display Queue} wl_display#1.delete_id(2525) +[2618967.677] {Display Queue} wl_display#1.delete_id(2526) +[2618967.680] {Display Queue} wl_display#1.delete_id(2523) +[2618967.684] {Display Queue} wl_display#1.delete_id(2524) +[2618967.688] {Display Queue} wl_display#1.delete_id(2749) +[2618967.691] {Display Queue} wl_display#1.delete_id(2750) +[2618967.695] {Display Queue} wl_display#1.delete_id(2747) +[2618967.699] {Display Queue} wl_display#1.delete_id(2748) +[2618967.702] {Display Queue} wl_display#1.delete_id(2781) +[2618967.706] {Display Queue} wl_display#1.delete_id(2782) +[2618967.710] {Display Queue} wl_display#1.delete_id(2779) +[2618967.714] {Display Queue} wl_display#1.delete_id(2780) +[2618967.717] {Display Queue} wl_display#1.delete_id(2685) +[2618967.721] {Display Queue} wl_display#1.delete_id(2686) +[2618967.725] {Display Queue} wl_display#1.delete_id(2683) +[2618967.728] {Display Queue} wl_display#1.delete_id(2684) +[2618967.732] {Default Queue} wl_pointer#24.motion(187310596, 28.60156250, 15.39843750) +[2618967.738] {Default Queue} wl_pointer#81.motion(187310596, 28.60156250, 15.39843750) +[2618967.746] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618967.751] {Default Queue} wl_pointer#105.motion(187310596, 28.60156250, 15.39843750) +[2618967.757] {Default Queue} wl_pointer#137.motion(187310596, 28.60156250, 15.39843750) +[2618967.762] {Default Queue} wl_pointer#169.motion(187310596, 28.60156250, 15.39843750) +[2618967.767] {Default Queue} wl_pointer#201.motion(187310596, 28.60156250, 15.39843750) +[2618967.771] {Default Queue} wl_pointer#233.motion(187310596, 28.60156250, 15.39843750) +[2618967.776] {Default Queue} wl_pointer#265.motion(187310596, 28.60156250, 15.39843750) +[2618967.780] {Default Queue} wl_pointer#297.motion(187310596, 28.60156250, 15.39843750) +[2618967.785] {Default Queue} wl_pointer#329.motion(187310596, 28.60156250, 15.39843750) +[2618967.790] {Default Queue} wl_pointer#361.motion(187310596, 28.60156250, 15.39843750) +[2618967.794] {Default Queue} wl_pointer#393.motion(187310596, 28.60156250, 15.39843750) +[2618967.805] {Default Queue} wl_pointer#425.motion(187310596, 28.60156250, 15.39843750) +[2618967.817] {Default Queue} wl_pointer#457.motion(187310596, 28.60156250, 15.39843750) +[2618967.822] {Default Queue} wl_pointer#489.motion(187310596, 28.60156250, 15.39843750) +[2618967.827] {Default Queue} wl_pointer#521.motion(187310596, 28.60156250, 15.39843750) +[2618967.831] {Default Queue} wl_pointer#553.motion(187310596, 28.60156250, 15.39843750) +[2618967.836] {Default Queue} wl_pointer#585.motion(187310596, 28.60156250, 15.39843750) +[2618967.840] {Default Queue} wl_pointer#617.motion(187310596, 28.60156250, 15.39843750) +[2618967.845] {Default Queue} wl_pointer#649.motion(187310596, 28.60156250, 15.39843750) +[2618967.849] {Default Queue} wl_pointer#681.motion(187310596, 28.60156250, 15.39843750) +[2618967.854] {Default Queue} wl_pointer#713.motion(187310596, 28.60156250, 15.39843750) +[2618967.858] {Default Queue} wl_pointer#745.motion(187310596, 28.60156250, 15.39843750) +[2618967.869] {Default Queue} wl_pointer#777.motion(187310596, 28.60156250, 15.39843750) +[2618967.873] {Default Queue} wl_pointer#809.motion(187310596, 28.60156250, 15.39843750) +[2618967.877] {Default Queue} wl_pointer#841.motion(187310596, 28.60156250, 15.39843750) +[2618967.882] {Default Queue} wl_pointer#873.motion(187310596, 28.60156250, 15.39843750) +[2618967.886] {Default Queue} wl_pointer#905.motion(187310596, 28.60156250, 15.39843750) +[2618967.891] {Default Queue} wl_pointer#937.motion(187310596, 28.60156250, 15.39843750) +[2618967.895] {Default Queue} wl_pointer#969.motion(187310596, 28.60156250, 15.39843750) +[2618967.900] {Default Queue} wl_pointer#1001.motion(187310596, 28.60156250, 15.39843750) +[2618967.904] {Default Queue} wl_pointer#1033.motion(187310596, 28.60156250, 15.39843750) +[2618967.909] {Default Queue} wl_pointer#1065.motion(187310596, 28.60156250, 15.39843750) +[2618967.913] {Default Queue} wl_pointer#1097.motion(187310596, 28.60156250, 15.39843750) +[2618967.917] {Default Queue} wl_pointer#1129.motion(187310596, 28.60156250, 15.39843750) +[2618967.922] {Default Queue} wl_pointer#1161.motion(187310596, 28.60156250, 15.39843750) +[2618967.927] {Default Queue} wl_pointer#1193.motion(187310596, 28.60156250, 15.39843750) +[2618967.932] {Default Queue} wl_pointer#1225.motion(187310596, 28.60156250, 15.39843750) +[2618967.936] {Default Queue} wl_pointer#1257.motion(187310596, 28.60156250, 15.39843750) +[2618967.941] {Default Queue} wl_pointer#1289.motion(187310596, 28.60156250, 15.39843750) +[2618967.945] {Default Queue} wl_pointer#1321.motion(187310596, 28.60156250, 15.39843750) +[2618967.950] {Default Queue} wl_pointer#1353.motion(187310596, 28.60156250, 15.39843750) +[2618967.954] {Default Queue} wl_pointer#1385.motion(187310596, 28.60156250, 15.39843750) +[2618967.959] {Default Queue} wl_pointer#1417.motion(187310596, 28.60156250, 15.39843750) +[2618967.964] {Default Queue} wl_pointer#1449.motion(187310596, 28.60156250, 15.39843750) +[2618967.968] {Default Queue} wl_pointer#1481.motion(187310596, 28.60156250, 15.39843750) +[2618967.972] {Default Queue} wl_pointer#1513.motion(187310596, 28.60156250, 15.39843750) +[2618967.977] {Default Queue} wl_pointer#1545.motion(187310596, 28.60156250, 15.39843750) +[2618967.981] {Default Queue} wl_pointer#1577.motion(187310596, 28.60156250, 15.39843750) +[2618967.986] {Default Queue} wl_pointer#1609.motion(187310596, 28.60156250, 15.39843750) +[2618967.990] {Default Queue} wl_pointer#1641.motion(187310596, 28.60156250, 15.39843750) +[2618967.995] {Default Queue} wl_pointer#1673.motion(187310596, 28.60156250, 15.39843750) +[2618968.000] {Default Queue} wl_pointer#1705.motion(187310596, 28.60156250, 15.39843750) +[2618968.004] {Default Queue} wl_pointer#1737.motion(187310596, 28.60156250, 15.39843750) +[2618968.008] {Default Queue} wl_pointer#1762.motion(187310596, 28.60156250, 15.39843750) +[2618968.013] {Default Queue} wl_pointer#1801.motion(187310596, 28.60156250, 15.39843750) +[2618968.018] {Default Queue} wl_pointer#1833.motion(187310596, 28.60156250, 15.39843750) +[2618968.026] {Default Queue} wl_pointer#1865.motion(187310596, 28.60156250, 15.39843750) +[2618968.032] {Default Queue} wl_pointer#1897.motion(187310596, 28.60156250, 15.39843750) +[2618968.036] {Default Queue} wl_pointer#1929.motion(187310596, 28.60156250, 15.39843750) +[2618968.041] {Default Queue} wl_pointer#1961.motion(187310596, 28.60156250, 15.39843750) +[2618968.045] {Default Queue} wl_pointer#1993.motion(187310596, 28.60156250, 15.39843750) +[2618968.050] {Default Queue} wl_pointer#2025.motion(187310596, 28.60156250, 15.39843750) +[2618968.055] {Default Queue} wl_pointer#2057.motion(187310596, 28.60156250, 15.39843750) +[2618968.059] {Default Queue} wl_pointer#2089.motion(187310596, 28.60156250, 15.39843750) +[2618968.064] {Default Queue} wl_pointer#2121.motion(187310596, 28.60156250, 15.39843750) +[2618968.068] {Default Queue} wl_pointer#2153.motion(187310596, 28.60156250, 15.39843750) +[2618968.075] {Default Queue} wl_pointer#2185.motion(187310596, 28.60156250, 15.39843750) +[2618968.079] {Default Queue} wl_pointer#2217.motion(187310596, 28.60156250, 15.39843750) +[2618968.083] {Default Queue} wl_pointer#2249.motion(187310596, 28.60156250, 15.39843750) +[2618968.088] {Default Queue} wl_pointer#2281.motion(187310596, 28.60156250, 15.39843750) +[2618968.092] {Default Queue} wl_pointer#2313.motion(187310596, 28.60156250, 15.39843750) +[2618968.097] {Default Queue} wl_pointer#2345.motion(187310596, 28.60156250, 15.39843750) +[2618968.102] {Default Queue} wl_pointer#2377.motion(187310596, 28.60156250, 15.39843750) +[2618968.106] {Default Queue} wl_pointer#2409.motion(187310596, 28.60156250, 15.39843750) +[2618968.111] {Default Queue} wl_pointer#2441.motion(187310596, 28.60156250, 15.39843750) +[2618968.115] {Default Queue} wl_pointer#2473.motion(187310596, 28.60156250, 15.39843750) +[2618968.119] {Default Queue} wl_pointer#2498.motion(187310596, 28.60156250, 15.39843750) +[2618968.137] {Default Queue} -> wl_buffer#2430.destroy() +[2618968.144] {Default Queue} -> wl_buffer#2429.destroy() +[2618968.148] {Default Queue} -> wl_shm_pool#2428.destroy() +[2618968.152] {Default Queue} -> wl_shm_pool#2427.destroy() +[2618968.157] {Default Queue} -> wl_surface#2140.destroy() +[2618968.204] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2684, fd 575, 640) +[2618968.210] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2683, fd 578, 640) +[2618968.214] {Default Queue} -> wl_shm_pool#2684.create_buffer(new id wl_buffer#2686, 0, 10, 16, 40, 0) +[2618968.219] {Default Queue} -> wl_shm_pool#2683.create_buffer(new id wl_buffer#2685, 0, 10, 16, 40, 0) +[2618968.227] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#2780) +[2618968.231] {Default Queue} -> wl_surface#2780.attach(wl_buffer#2686, 0, 0) +[2618968.235] {Default Queue} -> wl_surface#2780.commit() +[2618968.240] {Default Queue} -> wl_surface#2780.attach(wl_buffer#2686, 0, 0) +[2618968.244] {Default Queue} -> wl_surface#2780.commit() +[2618968.248] {Default Queue} wl_pointer#2537.motion(187310596, 28.60156250, 15.39843750) +[2618968.253] {Default Queue} wl_pointer#2569.motion(187310596, 28.60156250, 15.39843750) +[2618968.257] {Default Queue} wl_pointer#2601.motion(187310596, 28.60156250, 15.39843750) +[2618968.262] {Default Queue} wl_pointer#2633.motion(187310596, 28.60156250, 15.39843750) +[2618968.266] {Default Queue} wl_pointer#2665.motion(187310596, 28.60156250, 15.39843750) +[2618968.271] {Default Queue} wl_pointer#2697.motion(187310596, 28.60156250, 15.39843750) +[2618968.275] {Default Queue} wl_pointer#2729.motion(187310596, 28.60156250, 15.39843750) +[2618968.280] {Default Queue} wl_pointer#2761.motion(187310596, 28.60156250, 15.39843750) +[2618968.284] {Default Queue} wl_pointer#2793.motion(187310596, 28.60156250, 15.39843750) +[2618968.288] {Default Queue} wl_pointer#2825.motion(187310596, 28.60156250, 15.39843750) +[2618968.293] {Default Queue} wl_pointer#2857.motion(187310596, 28.60156250, 15.39843750) +[2618968.298] {Default Queue} wl_pointer#2889.motion(187310596, 28.60156250, 15.39843750) +[2618968.302] {Default Queue} wl_pointer#2921.motion(187310596, 28.60156250, 15.39843750) +[2618968.310] {Default Queue} wl_pointer#2953.motion(187310596, 28.60156250, 15.39843750) +[2618968.316] {Default Queue} wl_pointer#2985.motion(187310596, 28.60156250, 15.39843750) +[2618968.320] {Default Queue} wl_pointer#3017.motion(187310596, 28.60156250, 15.39843750) +[2618968.324] {Default Queue} wl_pointer#3049.motion(187310596, 28.60156250, 15.39843750) +[2618968.329] {Default Queue} wl_pointer#3081.motion(187310596, 28.60156250, 15.39843750) +[2618968.333] {Default Queue} wl_pointer#3113.motion(187310596, 28.60156250, 15.39843750) +[2618968.337] {Default Queue} wl_pointer#3145.motion(187310596, 28.60156250, 15.39843750) +[2618968.342] {Default Queue} wl_pointer#3177.motion(187310596, 28.60156250, 15.39843750) +[2618968.346] {Default Queue} wl_pointer#3209.motion(187310596, 28.60156250, 15.39843750) +[2618968.350] {Default Queue} wl_pointer#3241.motion(187310596, 28.60156250, 15.39843750) +[2618968.355] {Default Queue} wl_pointer#3273.motion(187310596, 28.60156250, 15.39843750) +[2618968.359] {Default Queue} wl_pointer#3305.motion(187310596, 28.60156250, 15.39843750) +[2618968.364] {Default Queue} wl_pointer#3337.motion(187310596, 28.60156250, 15.39843750) +[2618968.368] {Default Queue} wl_pointer#3369.motion(187310596, 28.60156250, 15.39843750) +[2618968.372] {Default Queue} wl_pointer#3401.motion(187310596, 28.60156250, 15.39843750) +[2618968.377] {Default Queue} wl_pointer#3433.motion(187310596, 28.60156250, 15.39843750) +[2618968.381] {Default Queue} wl_pointer#3465.motion(187310596, 28.60156250, 15.39843750) +[2618968.386] {Default Queue} wl_pointer#3497.motion(187310596, 28.60156250, 15.39843750) +[2618968.391] {Default Queue} wl_pointer#3529.motion(187310596, 28.60156250, 15.39843750) +[2618968.395] {Default Queue} wl_pointer#3561.motion(187310596, 28.60156250, 15.39843750) +[2618968.400] {Default Queue} wl_pointer#3593.motion(187310596, 28.60156250, 15.39843750) +[2618968.404] {Default Queue} wl_pointer#3625.motion(187310596, 28.60156250, 15.39843750) +[2618968.409] {Default Queue} wl_pointer#3657.motion(187310596, 28.60156250, 15.39843750) +[2618968.413] {Default Queue} wl_pointer#3695.motion(187310596, 28.60156250, 15.39843750) +[2618968.426] {Default Queue} -> wl_region#3519.subtract(0, 0, 140, 535) +[2618968.430] {Default Queue} -> wl_region#3519.add(-138, -553, 140, 535) +[2618968.435] {Default Queue} -> wl_surface#3495.set_opaque_region(wl_region#3520) +[2618968.439] {Default Queue} -> wl_surface#3495.set_input_region(wl_region#3519) +[2618968.493] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2618968.498] {Default Queue} -> wl_surface#3495.commit() +[2618968.506] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2618968.510] {Default Queue} -> wl_surface#3495.commit() +[2618968.520] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2618968.525] {Default Queue} -> wl_surface#3495.commit() +[2618968.531] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) +[2618968.535] {Default Queue} -> wl_surface#3463.commit() +[2618969.599] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) +[2618969.607] {Default Queue} -> wl_surface#3463.commit() +[2618969.616] {Default Queue} -> wl_region#3487.subtract(0, 0, 140, 535) +[2618969.620] {Default Queue} -> wl_region#3487.add(-138, -553, 140, 535) +[2618969.624] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) +[2618969.628] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) +[2618969.633] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) +[2618969.637] {Default Queue} -> wl_surface#3463.commit() +[2618969.641] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) +[2618969.644] {Default Queue} -> wl_surface#3463.commit() +[2618969.650] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) +[2618969.654] {Default Queue} -> wl_surface#3463.commit() +[2618969.660] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) +[2618969.664] {Default Queue} -> wl_surface#3367.commit() +[2618970.725] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) +[2618970.735] {Default Queue} -> wl_surface#3367.commit() +[2618970.746] {Default Queue} -> wl_region#3391.subtract(0, 0, 140, 535) +[2618970.750] {Default Queue} -> wl_region#3391.add(-138, -553, 140, 535) +[2618970.754] {Default Queue} -> wl_surface#3367.set_opaque_region(wl_region#3392) +[2618970.758] {Default Queue} -> wl_surface#3367.set_input_region(wl_region#3391) +[2618970.762] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) +[2618970.785] {Default Queue} -> wl_surface#3367.commit() +[2618970.789] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) +[2618970.793] {Default Queue} -> wl_surface#3367.commit() +[2618970.798] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) +[2618970.802] {Default Queue} -> wl_surface#3367.commit() +[2618970.806] {Default Queue} -> wl_region#3359.subtract(0, 0, 2, 2) +[2618970.812] {Default Queue} -> wl_region#3391.subtract(0, 0, 2, 2) +[2618970.817] {Default Queue} -> wl_subsurface#3386.set_position(1, 1) +[2618970.821] {Default Queue} -> wl_region#3391.subtract(0, 0, 141, 536) +[2618970.825] {Default Queue} -> wl_region#3391.add(-138, -553, 140, 535) +[2618970.829] {Default Queue} -> wl_surface#3367.set_opaque_region(wl_region#3392) +[2618970.832] {Default Queue} -> wl_surface#3367.set_input_region(wl_region#3391) +[2618970.836] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2618970.840] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2618970.845] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618970.849] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) +[2618970.853] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) +[2618970.857] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) +[2618970.866] {Default Queue} -> wl_region#3391.subtract(0, 0, 140, 555) +[2618970.870] {Default Queue} -> wl_region#3391.add(-138, -573, 139, 554) +[2618970.874] {Default Queue} -> wl_surface#3367.set_opaque_region(wl_region#3392) +[2618970.878] {Default Queue} -> wl_surface#3367.set_input_region(wl_region#3391) +[2618970.882] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) +[2618970.886] {Default Queue} -> wl_surface#3367.commit() +[2618970.891] {Default Queue} -> wl_region#3423.subtract(0, 0, 2, 2) +[2618970.895] {Default Queue} -> wl_subsurface#3418.set_position(-14, 0) +[2618970.899] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) +[2618970.902] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) +[2618970.906] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618970.910] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618970.914] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2618970.921] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618970.925] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618970.929] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618970.933] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618970.944] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618970.948] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618970.952] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618970.956] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618970.961] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618970.965] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618970.969] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618970.972] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618970.977] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618970.981] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618970.985] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618970.989] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618970.994] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.001] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.006] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.010] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.016] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.020] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.024] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.028] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.032] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.036] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.040] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.044] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.049] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.053] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.057] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.060] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.065] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.069] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.072] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.076] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.086] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.090] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.094] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.098] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.102] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.106] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.110] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.114] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.119] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.123] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.126] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.130] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.134] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.138] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.142] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.146] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.150] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) +[2618971.154] {Default Queue} -> wl_surface#3399.commit() +[2618971.159] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 2) +[2618971.163] {Default Queue} -> wl_subsurface#3450.set_position(0, -14) +[2618971.166] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) +[2618971.170] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) +[2618971.174] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.178] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.182] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2618971.188] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.192] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.196] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.199] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.206] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.210] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.213] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.217] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.224] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.230] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.233] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.237] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.241] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.245] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.249] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.253] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.258] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.262] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.266] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.269] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.275] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.279] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.283] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.286] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.291] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.295] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.298] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.302] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.306] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.310] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.314] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.318] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.322] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.326] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.330] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.334] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.343] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.347] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.351] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.355] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.359] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.363] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.367] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.371] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.375] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.379] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.383] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.387] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.392] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.396] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.400] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.403] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.407] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) +[2618971.411] {Default Queue} -> wl_surface#3431.commit() +[2618971.416] {Default Queue} -> wl_region#3487.subtract(0, 0, 2, 2) +[2618971.420] {Default Queue} -> wl_subsurface#3482.set_position(0, 0) +[2618971.423] {Default Queue} -> wl_region#3487.subtract(0, 0, 140, 535) +[2618971.427] {Default Queue} -> wl_region#3487.add(-138, -553, 140, 535) +[2618971.431] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) +[2618971.435] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) +[2618971.438] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618971.445] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) +[2618971.450] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) +[2618971.455] {Default Queue} -> wl_region#3487.subtract(0, 0, 139, 554) +[2618971.459] {Default Queue} -> wl_region#3487.add(-138, -573, 139, 554) +[2618971.463] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) +[2618971.467] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) +[2618971.471] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) +[2618971.475] {Default Queue} -> wl_surface#3463.commit() +[2618971.479] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2618971.484] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2618971.488] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2618971.492] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2618971.496] {Default Queue} -> wl_region#3423.subtract(0, 0, 2, 2) +[2618971.500] {Default Queue} -> wl_subsurface#3418.set_position(-14, 0) +[2618971.504] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.508] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.511] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.515] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.519] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2618971.524] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.528] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.532] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.536] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.542] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.546] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.549] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.553] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.557] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.561] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.565] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.569] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.573] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.577] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.581] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.585] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.589] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.593] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.597] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.600] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.606] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.610] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.614] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.617] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.622] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.625] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.629] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.633] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.638] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.642] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.646] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.650] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.654] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.658] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.664] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.669] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.678] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.683] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.687] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.690] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.695] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.699] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.702] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.706] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.710] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.714] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.721] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.725] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.730] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2618971.734] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2618971.738] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2618971.768] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2618971.783] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) +[2618971.789] {Default Queue} -> wl_surface#3399.commit() +[2618971.796] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 2) +[2618971.801] {Default Queue} -> wl_subsurface#3450.set_position(0, -14) +[2618971.805] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.810] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.814] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.818] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.822] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2618971.832] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.837] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.842] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.846] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.854] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.858] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.869] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.873] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.879] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.883] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.887] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.891] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.896] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.900] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.904] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.908] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.913] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.917] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.921] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.926] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.932] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.936] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.940] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.944] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.948] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.958] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.966] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.970] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.974] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.978] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.982] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618971.985] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618971.990] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618971.994] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618971.998] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618972.001] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618972.011] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618972.016] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618972.020] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618972.024] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618972.028] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618972.032] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618972.036] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618972.040] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618972.045] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618972.049] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618972.053] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618972.056] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618972.061] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2618972.066] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2618972.070] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2618972.074] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2618972.079] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) +[2618972.083] {Default Queue} -> wl_surface#3431.commit() +[2618972.088] {Default Queue} -> wl_region#3487.subtract(0, 0, 2, 2) +[2618972.092] {Default Queue} -> wl_subsurface#3482.set_position(0, 0) +[2618972.096] {Default Queue} -> wl_region#3487.subtract(0, 0, 139, 554) +[2618972.100] {Default Queue} -> wl_region#3487.add(-138, -573, 139, 554) +[2618972.104] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) +[2618972.108] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) +[2618972.112] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618972.116] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) +[2618972.121] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) +[2618972.127] {Default Queue} -> wl_region#3487.subtract(0, 0, 139, 554) +[2618972.131] {Default Queue} -> wl_region#3487.add(-138, -573, 139, 554) +[2618972.135] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) +[2618972.139] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) +[2618972.143] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) +[2618972.147] {Default Queue} -> wl_surface#3463.commit() +[2618972.152] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2618972.157] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2618972.161] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2618972.166] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2618972.172] {Default Queue} -> wl_region#3391.subtract(0, 0, 140, 555) +[2618972.176] {Default Queue} -> wl_region#3391.add(-138, -573, 139, 554) +[2618972.180] {Default Queue} -> wl_surface#3367.set_opaque_region(wl_region#3392) +[2618972.184] {Default Queue} -> wl_surface#3367.set_input_region(wl_region#3391) +[2618972.189] {Default Queue} -> wl_region#3359.subtract(0, 0, 140, 555) +[2618972.193] {Default Queue} -> wl_region#3359.add(-138, -553, 140, 535) +[2618972.202] {Default Queue} -> wl_surface#3335.set_opaque_region(wl_region#3360) +[2618972.207] {Default Queue} -> wl_surface#3335.set_input_region(wl_region#3359) +[2618972.211] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2618972.215] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2618972.220] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618972.224] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) +[2618972.228] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) +[2618972.234] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) +[2618972.238] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) +[2618972.252] {Default Queue} -> wl_buffer#3357.destroy() +[2618972.257] {Default Queue} -> wl_buffer#3358.destroy() +[2618972.262] {Default Queue} -> wl_shm_pool#3355.destroy() +[2618972.266] {Default Queue} -> wl_shm_pool#3356.destroy() +[2618972.309] {Default Queue} -> wl_shm#3343.create_pool(new id wl_shm_pool#2779, fd 575, 16) +[2618972.316] {Default Queue} -> wl_shm#3343.create_pool(new id wl_shm_pool#2782, fd 578, 16) +[2618972.321] {Default Queue} -> wl_shm_pool#2779.create_buffer(new id wl_buffer#2781, 0, 2, 2, 8, 0) +[2618972.325] {Default Queue} -> wl_shm_pool#2782.create_buffer(new id wl_buffer#2748, 0, 2, 2, 8, 0) +[2618972.332] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) +[2618972.336] {Default Queue} -> wl_surface#3335.commit() +[2618972.341] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) +[2618972.346] {Default Queue} -> wl_surface#3335.commit() +[2618972.353] {Default Queue} -> wl_region#3359.subtract(0, 0, 140, 555) +[2618972.357] {Default Queue} -> wl_region#3359.add(-138, -553, 140, 535) +[2618972.361] {Default Queue} -> wl_surface#3335.set_opaque_region(wl_region#3360) +[2618972.365] {Default Queue} -> wl_surface#3335.set_input_region(wl_region#3359) +[2618972.370] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) +[2618972.374] {Default Queue} -> wl_surface#3335.commit() +[2618972.380] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) +[2618972.385] {Default Queue} -> wl_surface#3335.commit() +[2618973.454] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) +[2618973.467] {Default Queue} -> wl_surface#3335.commit() +[2618973.477] {Default Queue} -> wl_region#3359.subtract(0, 0, 140, 555) +[2618973.482] {Default Queue} -> wl_region#3359.add(-138, -553, 140, 535) +[2618973.486] {Default Queue} -> wl_surface#3335.set_opaque_region(wl_region#3360) +[2618973.491] {Default Queue} -> wl_surface#3335.set_input_region(wl_region#3359) +[2618973.496] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) +[2618973.500] {Default Queue} -> wl_surface#3335.commit() +[2618973.504] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) +[2618973.508] {Default Queue} -> wl_surface#3335.commit() +[2618973.515] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) +[2618973.519] {Default Queue} -> wl_surface#3335.commit() +[2618973.525] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) +[2618973.529] {Default Queue} -> wl_surface#3271.commit() +[2618974.593] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) +[2618974.605] {Default Queue} -> wl_surface#3271.commit() +[2618974.615] {Default Queue} -> wl_region#3295.subtract(0, 0, 140, 555) +[2618974.620] {Default Queue} -> wl_region#3295.add(-135, -550, 137, 552) +[2618974.625] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) +[2618974.629] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) +[2618974.635] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) +[2618974.641] {Default Queue} -> wl_surface#3271.commit() +[2618974.645] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) +[2618974.649] {Default Queue} -> wl_surface#3271.commit() +[2618974.656] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) +[2618974.660] {Default Queue} -> wl_surface#3271.commit() +[2618974.664] {Default Queue} -> wl_region#3263.subtract(0, 0, 115, 167) +[2618974.681] {Default Queue} -> wl_region#3295.subtract(0, 0, 2, 2) +[2618974.688] {Default Queue} -> wl_subsurface#3290.set_position(3, 3) +[2618974.693] {Default Queue} -> wl_region#3295.subtract(0, 0, 140, 555) +[2618974.697] {Default Queue} -> wl_region#3295.add(-135, -550, 137, 552) +[2618974.701] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) +[2618974.705] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) +[2618974.709] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) +[2618974.713] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2618974.717] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2618974.722] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618974.726] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) +[2618974.729] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) +[2618974.733] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) +[2618974.737] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) +[2618974.741] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) +[2618974.746] {Default Queue} -> wl_region#3295.subtract(0, 0, 140, 555) +[2618974.751] {Default Queue} -> wl_region#3295.add(-135, -550, 137, 552) +[2618974.755] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) +[2618974.759] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) +[2618974.763] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) +[2618974.767] {Default Queue} -> wl_surface#3271.commit() +[2618974.772] {Default Queue} -> wl_region#3295.subtract(0, 0, 247, 714) +[2618974.776] {Default Queue} -> wl_region#3295.add(-135, -550, 244, 711) +[2618974.780] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) +[2618974.784] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) +[2618974.788] {Default Queue} -> wl_region#3263.subtract(0, 0, 137, 552) +[2618974.792] {Default Queue} -> wl_region#3263.add(-20, -550, 22, 552) +[2618974.796] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618974.800] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618974.804] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) +[2618974.808] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2618974.812] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2618974.816] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618974.820] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) +[2618974.824] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) +[2618974.829] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) +[2618974.833] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) +[2618974.837] {Default Queue} -> wl_surface#3271.damage(0, 0, 109, 161) +[2618974.841] {Default Queue} -> wl_surface#3239.damage(0, 0, 115, 167) +[2618974.857] {Default Queue} -> wl_buffer#3261.destroy() +[2618974.867] {Default Queue} -> wl_buffer#3262.destroy() +[2618974.888] {Default Queue} -> wl_shm_pool#3259.destroy() +[2618974.900] {Default Queue} -> wl_shm_pool#3260.destroy() +[2618974.988] {Default Queue} -> wl_shm#3247.create_pool(new id wl_shm_pool#2747, fd 575, 76820) +[2618974.996] {Default Queue} -> wl_shm#3247.create_pool(new id wl_shm_pool#2750, fd 578, 76820) +[2618975.001] {Default Queue} -> wl_shm_pool#2747.create_buffer(new id wl_buffer#2749, 0, 115, 167, 460, 0) +[2618975.006] {Default Queue} -> wl_shm_pool#2750.create_buffer(new id wl_buffer#2524, 0, 115, 167, 460, 0) +[2618975.029] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) +[2618975.034] {Default Queue} -> wl_surface#3239.commit() +[2618975.056] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) +[2618975.061] {Default Queue} -> wl_surface#3239.commit() +[2618975.072] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) +[2618975.077] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) +[2618975.082] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618975.090] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618975.101] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) +[2618975.105] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) +[2618975.110] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618975.116] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618975.134] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) +[2618975.143] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) +[2618975.149] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618975.155] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618975.165] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) +[2618975.171] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) +[2618975.176] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618975.180] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618975.187] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) +[2618975.192] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) +[2618975.196] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618975.199] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618975.208] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) +[2618975.212] {Default Queue} -> wl_surface#3239.commit() +[2618975.220] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) +[2618975.224] {Default Queue} -> wl_surface#3239.commit() +[2618976.281] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) +[2618976.293] {Default Queue} -> wl_surface#3239.commit() +[2618976.306] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) +[2618976.311] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) +[2618976.315] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618976.319] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618976.327] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) +[2618976.331] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) +[2618976.336] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618976.339] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618976.345] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) +[2618976.349] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) +[2618976.353] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618976.357] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618976.363] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) +[2618976.367] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) +[2618976.371] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618976.375] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618976.381] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) +[2618976.386] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) +[2618976.390] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618976.393] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618976.400] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) +[2618976.404] {Default Queue} -> wl_surface#3239.commit() +[2618976.409] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) +[2618976.413] {Default Queue} -> wl_surface#3239.commit() +[2618976.421] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) +[2618976.425] {Default Queue} -> wl_surface#3239.commit() +[2618976.430] {Default Queue} -> wl_region#3583.subtract(0, 0, 115, 167) +[2618976.434] {Default Queue} -> wl_region#3583.subtract(0, 0, 252, 552) +[2618976.438] {Default Queue} -> wl_region#3583.add(-20, -550, 22, 552) +[2618976.442] {Default Queue} -> wl_surface#3559.set_opaque_region(wl_region#3584) +[2618976.446] {Default Queue} -> wl_surface#3559.set_input_region(wl_region#3583) +[2618976.454] {Default Queue} -> wl_surface#3559.damage(0, 0, 115, 167) +[2618976.470] {Default Queue} -> wl_buffer#3581.destroy() +[2618976.475] {Default Queue} -> wl_buffer#3582.destroy() +[2618976.479] {Default Queue} -> wl_shm_pool#3579.destroy() +[2618976.483] {Default Queue} -> wl_shm_pool#3580.destroy() +[2618976.563] {Default Queue} -> wl_shm#3567.create_pool(new id wl_shm_pool#2523, fd 575, 76820) +[2618976.570] {Default Queue} -> wl_shm#3567.create_pool(new id wl_shm_pool#2526, fd 578, 76820) +[2618976.574] {Default Queue} -> wl_shm_pool#2523.create_buffer(new id wl_buffer#2525, 0, 115, 167, 460, 0) +[2618976.579] {Default Queue} -> wl_shm_pool#2526.create_buffer(new id wl_buffer#2620, 0, 115, 167, 460, 0) +[2618976.602] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) +[2618976.607] {Default Queue} -> wl_surface#3559.commit() +[2618976.628] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) +[2618976.633] {Default Queue} -> wl_surface#3559.commit() +[2618976.641] {Default Queue} -> wl_region#3583.subtract(0, 0, 365, 717) +[2618976.646] {Default Queue} -> wl_region#3583.add(-20, -550, 135, 717) +[2618976.650] {Default Queue} -> wl_surface#3559.set_opaque_region(wl_region#3584) +[2618976.654] {Default Queue} -> wl_surface#3559.set_input_region(wl_region#3583) +[2618976.661] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) +[2618976.665] {Default Queue} -> wl_surface#3559.commit() +[2618976.672] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) +[2618976.676] {Default Queue} -> wl_surface#3559.commit() +[2618977.373] {Display Queue} wl_display#1.delete_id(2909) +[2618977.387] {Display Queue} wl_display#1.delete_id(2910) +[2618977.392] {Display Queue} wl_display#1.delete_id(2907) +[2618977.396] {Display Queue} wl_display#1.delete_id(2908) +[2618977.400] {Display Queue} wl_display#1.delete_id(2941) +[2618977.404] {Display Queue} wl_display#1.delete_id(2942) +[2618977.408] {Display Queue} wl_display#1.delete_id(2939) +[2618977.412] {Display Queue} wl_display#1.delete_id(2940) +[2618977.416] {Display Queue} wl_display#1.delete_id(2845) +[2618977.419] {Display Queue} wl_display#1.delete_id(2846) +[2618977.423] {Display Queue} wl_display#1.delete_id(2843) +[2618977.427] {Display Queue} wl_display#1.delete_id(2844) +[2618977.430] {Default Queue} wl_pointer#24.motion(187310607, 28.19921875, 15.39843750) +[2618977.436] {Default Queue} wl_pointer#81.motion(187310607, 28.19921875, 15.39843750) +[2618977.442] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618977.447] {Default Queue} wl_pointer#105.motion(187310607, 28.19921875, 15.39843750) +[2618977.452] {Default Queue} wl_pointer#137.motion(187310607, 28.19921875, 15.39843750) +[2618977.456] {Default Queue} wl_pointer#169.motion(187310607, 28.19921875, 15.39843750) +[2618977.460] {Default Queue} wl_pointer#201.motion(187310607, 28.19921875, 15.39843750) +[2618977.464] {Default Queue} wl_pointer#233.motion(187310607, 28.19921875, 15.39843750) +[2618977.468] {Default Queue} wl_pointer#265.motion(187310607, 28.19921875, 15.39843750) +[2618977.473] {Default Queue} wl_pointer#297.motion(187310607, 28.19921875, 15.39843750) +[2618977.477] {Default Queue} wl_pointer#329.motion(187310607, 28.19921875, 15.39843750) +[2618977.481] {Default Queue} wl_pointer#361.motion(187310607, 28.19921875, 15.39843750) +[2618977.485] {Default Queue} wl_pointer#393.motion(187310607, 28.19921875, 15.39843750) +[2618977.489] {Default Queue} wl_pointer#425.motion(187310607, 28.19921875, 15.39843750) +[2618977.493] {Default Queue} wl_pointer#457.motion(187310607, 28.19921875, 15.39843750) +[2618977.497] {Default Queue} wl_pointer#489.motion(187310607, 28.19921875, 15.39843750) +[2618977.501] {Default Queue} wl_pointer#521.motion(187310607, 28.19921875, 15.39843750) +[2618977.505] {Default Queue} wl_pointer#553.motion(187310607, 28.19921875, 15.39843750) +[2618977.510] {Default Queue} wl_pointer#585.motion(187310607, 28.19921875, 15.39843750) +[2618977.514] {Default Queue} wl_pointer#617.motion(187310607, 28.19921875, 15.39843750) +[2618977.523] {Default Queue} wl_pointer#649.motion(187310607, 28.19921875, 15.39843750) +[2618977.531] {Default Queue} wl_pointer#681.motion(187310607, 28.19921875, 15.39843750) +[2618977.535] {Default Queue} wl_pointer#713.motion(187310607, 28.19921875, 15.39843750) +[2618977.539] {Default Queue} wl_pointer#745.motion(187310607, 28.19921875, 15.39843750) +[2618977.543] {Default Queue} wl_pointer#777.motion(187310607, 28.19921875, 15.39843750) +[2618977.547] {Default Queue} wl_pointer#809.motion(187310607, 28.19921875, 15.39843750) +[2618977.551] {Default Queue} wl_pointer#841.motion(187310607, 28.19921875, 15.39843750) +[2618977.555] {Default Queue} wl_pointer#873.motion(187310607, 28.19921875, 15.39843750) +[2618977.559] {Default Queue} wl_pointer#905.motion(187310607, 28.19921875, 15.39843750) +[2618977.563] {Default Queue} wl_pointer#937.motion(187310607, 28.19921875, 15.39843750) +[2618977.567] {Default Queue} wl_pointer#969.motion(187310607, 28.19921875, 15.39843750) +[2618977.572] {Default Queue} wl_pointer#1001.motion(187310607, 28.19921875, 15.39843750) +[2618977.576] {Default Queue} wl_pointer#1033.motion(187310607, 28.19921875, 15.39843750) +[2618977.580] {Default Queue} wl_pointer#1065.motion(187310607, 28.19921875, 15.39843750) +[2618977.584] {Default Queue} wl_pointer#1097.motion(187310607, 28.19921875, 15.39843750) +[2618977.588] {Default Queue} wl_pointer#1129.motion(187310607, 28.19921875, 15.39843750) +[2618977.592] {Default Queue} wl_pointer#1161.motion(187310607, 28.19921875, 15.39843750) +[2618977.596] {Default Queue} wl_pointer#1193.motion(187310607, 28.19921875, 15.39843750) +[2618977.600] {Default Queue} wl_pointer#1225.motion(187310607, 28.19921875, 15.39843750) +[2618977.604] {Default Queue} wl_pointer#1257.motion(187310607, 28.19921875, 15.39843750) +[2618977.608] {Default Queue} wl_pointer#1289.motion(187310607, 28.19921875, 15.39843750) +[2618977.612] {Default Queue} wl_pointer#1321.motion(187310607, 28.19921875, 15.39843750) +[2618977.616] {Default Queue} wl_pointer#1353.motion(187310607, 28.19921875, 15.39843750) +[2618977.620] {Default Queue} wl_pointer#1385.motion(187310607, 28.19921875, 15.39843750) +[2618977.624] {Default Queue} wl_pointer#1417.motion(187310607, 28.19921875, 15.39843750) +[2618977.628] {Default Queue} wl_pointer#1449.motion(187310607, 28.19921875, 15.39843750) +[2618977.632] {Default Queue} wl_pointer#1481.motion(187310607, 28.19921875, 15.39843750) +[2618977.636] {Default Queue} wl_pointer#1513.motion(187310607, 28.19921875, 15.39843750) +[2618977.640] {Default Queue} wl_pointer#1545.motion(187310607, 28.19921875, 15.39843750) +[2618977.644] {Default Queue} wl_pointer#1577.motion(187310607, 28.19921875, 15.39843750) +[2618977.648] {Default Queue} wl_pointer#1609.motion(187310607, 28.19921875, 15.39843750) +[2618977.651] {Default Queue} wl_pointer#1641.motion(187310607, 28.19921875, 15.39843750) +[2618977.655] {Default Queue} wl_pointer#1673.motion(187310607, 28.19921875, 15.39843750) +[2618977.659] {Default Queue} wl_pointer#1705.motion(187310607, 28.19921875, 15.39843750) +[2618977.663] {Default Queue} wl_pointer#1737.motion(187310607, 28.19921875, 15.39843750) +[2618977.667] {Default Queue} wl_pointer#1762.motion(187310607, 28.19921875, 15.39843750) +[2618977.671] {Default Queue} wl_pointer#1801.motion(187310607, 28.19921875, 15.39843750) +[2618977.675] {Default Queue} wl_pointer#1833.motion(187310607, 28.19921875, 15.39843750) +[2618977.679] {Default Queue} wl_pointer#1865.motion(187310607, 28.19921875, 15.39843750) +[2618977.683] {Default Queue} wl_pointer#1897.motion(187310607, 28.19921875, 15.39843750) +[2618977.687] {Default Queue} wl_pointer#1929.motion(187310607, 28.19921875, 15.39843750) +[2618977.691] {Default Queue} wl_pointer#1961.motion(187310607, 28.19921875, 15.39843750) +[2618977.695] {Default Queue} wl_pointer#1993.motion(187310607, 28.19921875, 15.39843750) +[2618977.699] {Default Queue} wl_pointer#2025.motion(187310607, 28.19921875, 15.39843750) +[2618977.703] {Default Queue} wl_pointer#2057.motion(187310607, 28.19921875, 15.39843750) +[2618977.707] {Default Queue} wl_pointer#2089.motion(187310607, 28.19921875, 15.39843750) +[2618977.715] {Default Queue} wl_pointer#2121.motion(187310607, 28.19921875, 15.39843750) +[2618977.721] {Default Queue} wl_pointer#2153.motion(187310607, 28.19921875, 15.39843750) +[2618977.725] {Default Queue} wl_pointer#2185.motion(187310607, 28.19921875, 15.39843750) +[2618977.729] {Default Queue} wl_pointer#2217.motion(187310607, 28.19921875, 15.39843750) +[2618977.733] {Default Queue} wl_pointer#2249.motion(187310607, 28.19921875, 15.39843750) +[2618977.737] {Default Queue} wl_pointer#2281.motion(187310607, 28.19921875, 15.39843750) +[2618977.741] {Default Queue} wl_pointer#2313.motion(187310607, 28.19921875, 15.39843750) +[2618977.746] {Default Queue} wl_pointer#2345.motion(187310607, 28.19921875, 15.39843750) +[2618977.750] {Default Queue} wl_pointer#2377.motion(187310607, 28.19921875, 15.39843750) +[2618977.754] {Default Queue} wl_pointer#2409.motion(187310607, 28.19921875, 15.39843750) +[2618977.758] {Default Queue} wl_pointer#2441.motion(187310607, 28.19921875, 15.39843750) +[2618977.762] {Default Queue} wl_pointer#2473.motion(187310607, 28.19921875, 15.39843750) +[2618977.766] {Default Queue} wl_pointer#2498.motion(187310607, 28.19921875, 15.39843750) +[2618977.780] {Default Queue} -> wl_buffer#2686.destroy() +[2618977.785] {Default Queue} -> wl_buffer#2685.destroy() +[2618977.789] {Default Queue} -> wl_shm_pool#2684.destroy() +[2618977.793] {Default Queue} -> wl_shm_pool#2683.destroy() +[2618977.798] {Default Queue} -> wl_surface#2780.destroy() +[2618977.852] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2844, fd 575, 640) +[2618977.858] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2843, fd 578, 640) +[2618977.870] {Default Queue} -> wl_shm_pool#2844.create_buffer(new id wl_buffer#2846, 0, 10, 16, 40, 0) +[2618977.875] {Default Queue} -> wl_shm_pool#2843.create_buffer(new id wl_buffer#2845, 0, 10, 16, 40, 0) +[2618977.883] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#2940) +[2618977.887] {Default Queue} -> wl_surface#2940.attach(wl_buffer#2846, 0, 0) +[2618977.891] {Default Queue} -> wl_surface#2940.commit() +[2618977.896] {Default Queue} -> wl_surface#2940.attach(wl_buffer#2846, 0, 0) +[2618977.900] {Default Queue} -> wl_surface#2940.commit() +[2618977.904] {Default Queue} wl_pointer#2537.motion(187310607, 28.19921875, 15.39843750) +[2618977.909] {Default Queue} wl_pointer#2569.motion(187310607, 28.19921875, 15.39843750) +[2618977.913] {Default Queue} wl_pointer#2601.motion(187310607, 28.19921875, 15.39843750) +[2618977.917] {Default Queue} wl_pointer#2633.motion(187310607, 28.19921875, 15.39843750) +[2618977.921] {Default Queue} wl_pointer#2665.motion(187310607, 28.19921875, 15.39843750) +[2618977.925] {Default Queue} wl_pointer#2697.motion(187310607, 28.19921875, 15.39843750) +[2618977.929] {Default Queue} wl_pointer#2729.motion(187310607, 28.19921875, 15.39843750) +[2618977.934] {Default Queue} wl_pointer#2761.motion(187310607, 28.19921875, 15.39843750) +[2618977.938] {Default Queue} wl_pointer#2793.motion(187310607, 28.19921875, 15.39843750) +[2618977.941] {Default Queue} wl_pointer#2825.motion(187310607, 28.19921875, 15.39843750) +[2618977.946] {Default Queue} wl_pointer#2857.motion(187310607, 28.19921875, 15.39843750) +[2618977.950] {Default Queue} wl_pointer#2889.motion(187310607, 28.19921875, 15.39843750) +[2618977.954] {Default Queue} wl_pointer#2921.motion(187310607, 28.19921875, 15.39843750) +[2618977.958] {Default Queue} wl_pointer#2953.motion(187310607, 28.19921875, 15.39843750) +[2618977.963] {Default Queue} wl_pointer#2985.motion(187310607, 28.19921875, 15.39843750) +[2618977.967] {Default Queue} wl_pointer#3017.motion(187310607, 28.19921875, 15.39843750) +[2618977.971] {Default Queue} wl_pointer#3049.motion(187310607, 28.19921875, 15.39843750) +[2618977.975] {Default Queue} wl_pointer#3081.motion(187310607, 28.19921875, 15.39843750) +[2618977.979] {Default Queue} wl_pointer#3113.motion(187310607, 28.19921875, 15.39843750) +[2618977.983] {Default Queue} wl_pointer#3145.motion(187310607, 28.19921875, 15.39843750) +[2618977.990] {Default Queue} wl_pointer#3177.motion(187310607, 28.19921875, 15.39843750) +[2618977.996] {Default Queue} wl_pointer#3209.motion(187310607, 28.19921875, 15.39843750) +[2618978.000] {Default Queue} wl_pointer#3241.motion(187310607, 28.19921875, 15.39843750) +[2618978.004] {Default Queue} wl_pointer#3273.motion(187310607, 28.19921875, 15.39843750) +[2618978.009] {Default Queue} wl_pointer#3305.motion(187310607, 28.19921875, 15.39843750) +[2618978.013] {Default Queue} wl_pointer#3337.motion(187310607, 28.19921875, 15.39843750) +[2618978.018] {Default Queue} wl_pointer#3369.motion(187310607, 28.19921875, 15.39843750) +[2618978.022] {Default Queue} wl_pointer#3401.motion(187310607, 28.19921875, 15.39843750) +[2618978.027] {Default Queue} wl_pointer#3433.motion(187310607, 28.19921875, 15.39843750) +[2618978.033] {Default Queue} wl_pointer#3465.motion(187310607, 28.19921875, 15.39843750) +[2618978.039] {Default Queue} wl_pointer#3497.motion(187310607, 28.19921875, 15.39843750) +[2618978.046] {Default Queue} wl_pointer#3529.motion(187310607, 28.19921875, 15.39843750) +[2618978.052] {Default Queue} wl_pointer#3561.motion(187310607, 28.19921875, 15.39843750) +[2618978.056] {Default Queue} wl_pointer#3593.motion(187310607, 28.19921875, 15.39843750) +[2618978.060] {Default Queue} wl_pointer#3625.motion(187310607, 28.19921875, 15.39843750) +[2618978.064] {Default Queue} wl_pointer#3657.motion(187310607, 28.19921875, 15.39843750) +[2618978.068] {Default Queue} wl_pointer#3695.motion(187310607, 28.19921875, 15.39843750) +[2618978.091] {Default Queue} -> wl_region#3583.subtract(0, 0, 365, 717) +[2618978.096] {Default Queue} -> wl_region#3583.add(-20, -550, 135, 717) +[2618978.101] {Default Queue} -> wl_surface#3559.set_opaque_region(wl_region#3584) +[2618978.105] {Default Queue} -> wl_surface#3559.set_input_region(wl_region#3583) +[2618978.126] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) +[2618978.131] {Default Queue} -> wl_surface#3559.commit() +[2618978.136] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) +[2618978.140] {Default Queue} -> wl_surface#3559.commit() +[2618978.229] {Display Queue} wl_display#1.delete_id(2109) +[2618978.237] {Display Queue} wl_display#1.delete_id(2110) +[2618978.240] {Display Queue} wl_display#1.delete_id(2107) +[2618978.244] {Display Queue} wl_display#1.delete_id(2108) +[2618978.248] {Display Queue} wl_display#1.delete_id(1022) +[2618978.252] {Display Queue} wl_display#1.delete_id(1021) +[2618978.255] {Display Queue} wl_display#1.delete_id(1020) +[2618978.259] {Display Queue} wl_display#1.delete_id(1019) +[2618978.262] {Display Queue} wl_display#1.delete_id(1276) +[2618978.266] {Display Queue} wl_display#1.delete_id(3101) +[2618978.270] {Display Queue} wl_display#1.delete_id(3102) +[2618978.274] {Display Queue} wl_display#1.delete_id(3099) +[2618978.278] {Display Queue} wl_display#1.delete_id(3100) +[2618978.281] {Default Queue} wl_pointer#24.motion(187310612, 28.19921875, 15.00000000) +[2618978.286] {Default Queue} wl_pointer#81.motion(187310612, 28.19921875, 15.00000000) +[2618978.291] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618978.296] {Default Queue} wl_pointer#105.motion(187310612, 28.19921875, 15.00000000) +[2618978.300] {Default Queue} wl_pointer#137.motion(187310612, 28.19921875, 15.00000000) +[2618978.304] {Default Queue} wl_pointer#169.motion(187310612, 28.19921875, 15.00000000) +[2618978.308] {Default Queue} wl_pointer#201.motion(187310612, 28.19921875, 15.00000000) +[2618978.312] {Default Queue} wl_pointer#233.motion(187310612, 28.19921875, 15.00000000) +[2618978.316] {Default Queue} wl_pointer#265.motion(187310612, 28.19921875, 15.00000000) +[2618978.320] {Default Queue} wl_pointer#297.motion(187310612, 28.19921875, 15.00000000) +[2618978.324] {Default Queue} wl_pointer#329.motion(187310612, 28.19921875, 15.00000000) +[2618978.328] {Default Queue} wl_pointer#361.motion(187310612, 28.19921875, 15.00000000) +[2618978.332] {Default Queue} wl_pointer#393.motion(187310612, 28.19921875, 15.00000000) +[2618978.336] {Default Queue} wl_pointer#425.motion(187310612, 28.19921875, 15.00000000) +[2618978.344] {Default Queue} wl_pointer#457.motion(187310612, 28.19921875, 15.00000000) +[2618978.350] {Default Queue} wl_pointer#489.motion(187310612, 28.19921875, 15.00000000) +[2618978.354] {Default Queue} wl_pointer#521.motion(187310612, 28.19921875, 15.00000000) +[2618978.358] {Default Queue} wl_pointer#553.motion(187310612, 28.19921875, 15.00000000) +[2618978.362] {Default Queue} wl_pointer#585.motion(187310612, 28.19921875, 15.00000000) +[2618978.366] {Default Queue} wl_pointer#617.motion(187310612, 28.19921875, 15.00000000) +[2618978.370] {Default Queue} wl_pointer#649.motion(187310612, 28.19921875, 15.00000000) +[2618978.374] {Default Queue} wl_pointer#681.motion(187310612, 28.19921875, 15.00000000) +[2618978.378] {Default Queue} wl_pointer#713.motion(187310612, 28.19921875, 15.00000000) +[2618978.382] {Default Queue} wl_pointer#745.motion(187310612, 28.19921875, 15.00000000) +[2618978.385] {Default Queue} wl_pointer#777.motion(187310612, 28.19921875, 15.00000000) +[2618978.389] {Default Queue} wl_pointer#809.motion(187310612, 28.19921875, 15.00000000) +[2618978.394] {Default Queue} wl_pointer#841.motion(187310612, 28.19921875, 15.00000000) +[2618978.398] {Default Queue} wl_pointer#873.motion(187310612, 28.19921875, 15.00000000) +[2618978.402] {Default Queue} wl_pointer#905.motion(187310612, 28.19921875, 15.00000000) +[2618978.406] {Default Queue} wl_pointer#937.motion(187310612, 28.19921875, 15.00000000) +[2618978.409] {Default Queue} wl_pointer#969.motion(187310612, 28.19921875, 15.00000000) +[2618978.413] {Default Queue} wl_pointer#1001.motion(187310612, 28.19921875, 15.00000000) +[2618978.417] {Default Queue} wl_pointer#1033.motion(187310612, 28.19921875, 15.00000000) +[2618978.422] {Default Queue} wl_pointer#1065.motion(187310612, 28.19921875, 15.00000000) +[2618978.425] {Default Queue} wl_pointer#1097.motion(187310612, 28.19921875, 15.00000000) +[2618978.429] {Default Queue} wl_pointer#1129.motion(187310612, 28.19921875, 15.00000000) +[2618978.433] {Default Queue} wl_pointer#1161.motion(187310612, 28.19921875, 15.00000000) +[2618978.437] {Default Queue} wl_pointer#1193.motion(187310612, 28.19921875, 15.00000000) +[2618978.441] {Default Queue} wl_pointer#1225.motion(187310612, 28.19921875, 15.00000000) +[2618978.445] {Default Queue} wl_pointer#1257.motion(187310612, 28.19921875, 15.00000000) +[2618978.449] {Default Queue} wl_pointer#1289.motion(187310612, 28.19921875, 15.00000000) +[2618978.453] {Default Queue} wl_pointer#1321.motion(187310612, 28.19921875, 15.00000000) +[2618978.457] {Default Queue} wl_pointer#1353.motion(187310612, 28.19921875, 15.00000000) +[2618978.461] {Default Queue} wl_pointer#1385.motion(187310612, 28.19921875, 15.00000000) +[2618978.465] {Default Queue} wl_pointer#1417.motion(187310612, 28.19921875, 15.00000000) +[2618978.469] {Default Queue} wl_pointer#1449.motion(187310612, 28.19921875, 15.00000000) +[2618978.473] {Default Queue} wl_pointer#1481.motion(187310612, 28.19921875, 15.00000000) +[2618978.477] {Default Queue} wl_pointer#1513.motion(187310612, 28.19921875, 15.00000000) +[2618978.481] {Default Queue} wl_pointer#1545.motion(187310612, 28.19921875, 15.00000000) +[2618978.485] {Default Queue} wl_pointer#1577.motion(187310612, 28.19921875, 15.00000000) +[2618978.489] {Default Queue} wl_pointer#1609.motion(187310612, 28.19921875, 15.00000000) +[2618978.493] {Default Queue} wl_pointer#1641.motion(187310612, 28.19921875, 15.00000000) +[2618978.497] {Default Queue} wl_pointer#1673.motion(187310612, 28.19921875, 15.00000000) +[2618978.501] {Default Queue} wl_pointer#1705.motion(187310612, 28.19921875, 15.00000000) +[2618978.505] {Default Queue} wl_pointer#1737.motion(187310612, 28.19921875, 15.00000000) +[2618978.509] {Default Queue} wl_pointer#1762.motion(187310612, 28.19921875, 15.00000000) +[2618978.513] {Default Queue} wl_pointer#1801.motion(187310612, 28.19921875, 15.00000000) +[2618978.517] {Default Queue} wl_pointer#1833.motion(187310612, 28.19921875, 15.00000000) +[2618978.520] {Default Queue} wl_pointer#1865.motion(187310612, 28.19921875, 15.00000000) +[2618978.524] {Default Queue} wl_pointer#1897.motion(187310612, 28.19921875, 15.00000000) +[2618978.532] {Default Queue} wl_pointer#1929.motion(187310612, 28.19921875, 15.00000000) +[2618978.537] {Default Queue} wl_pointer#1961.motion(187310612, 28.19921875, 15.00000000) +[2618978.541] {Default Queue} wl_pointer#1993.motion(187310612, 28.19921875, 15.00000000) +[2618978.545] {Default Queue} wl_pointer#2025.motion(187310612, 28.19921875, 15.00000000) +[2618978.549] {Default Queue} wl_pointer#2057.motion(187310612, 28.19921875, 15.00000000) +[2618978.553] {Default Queue} wl_pointer#2089.motion(187310612, 28.19921875, 15.00000000) +[2618978.557] {Default Queue} wl_pointer#2121.motion(187310612, 28.19921875, 15.00000000) +[2618978.561] {Default Queue} wl_pointer#2153.motion(187310612, 28.19921875, 15.00000000) +[2618978.565] {Default Queue} wl_pointer#2185.motion(187310612, 28.19921875, 15.00000000) +[2618978.568] {Default Queue} wl_pointer#2217.motion(187310612, 28.19921875, 15.00000000) +[2618978.572] {Default Queue} wl_pointer#2249.motion(187310612, 28.19921875, 15.00000000) +[2618978.576] {Default Queue} wl_pointer#2281.motion(187310612, 28.19921875, 15.00000000) +[2618978.580] {Default Queue} wl_pointer#2313.motion(187310612, 28.19921875, 15.00000000) +[2618978.584] {Default Queue} wl_pointer#2345.motion(187310612, 28.19921875, 15.00000000) +[2618978.588] {Default Queue} wl_pointer#2377.motion(187310612, 28.19921875, 15.00000000) +[2618978.592] {Default Queue} wl_pointer#2409.motion(187310612, 28.19921875, 15.00000000) +[2618978.596] {Default Queue} wl_pointer#2441.motion(187310612, 28.19921875, 15.00000000) +[2618978.600] {Default Queue} wl_pointer#2473.motion(187310612, 28.19921875, 15.00000000) +[2618978.604] {Default Queue} wl_pointer#2498.motion(187310612, 28.19921875, 15.00000000) +[2618978.616] {Default Queue} -> wl_buffer#2846.destroy() +[2618978.621] {Default Queue} -> wl_buffer#2845.destroy() +[2618978.625] {Default Queue} -> wl_shm_pool#2844.destroy() +[2618978.629] {Default Queue} -> wl_shm_pool#2843.destroy() +[2618978.633] {Default Queue} -> wl_surface#2940.destroy() +[2618978.671] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3100, fd 581, 640) +[2618978.676] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3099, fd 582, 640) +[2618978.681] {Default Queue} -> wl_shm_pool#3100.create_buffer(new id wl_buffer#3102, 0, 10, 16, 40, 0) +[2618978.685] {Default Queue} -> wl_shm_pool#3099.create_buffer(new id wl_buffer#3101, 0, 10, 16, 40, 0) +[2618978.692] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#1276) +[2618978.696] {Default Queue} -> wl_surface#1276.attach(wl_buffer#3102, 0, 0) +[2618978.700] {Default Queue} -> wl_surface#1276.commit() +[2618978.705] {Default Queue} -> wl_surface#1276.attach(wl_buffer#3102, 0, 0) +[2618978.709] {Default Queue} -> wl_surface#1276.commit() +[2618978.713] {Default Queue} wl_pointer#2537.motion(187310612, 28.19921875, 15.00000000) +[2618978.717] {Default Queue} wl_pointer#2569.motion(187310612, 28.19921875, 15.00000000) +[2618978.721] {Default Queue} wl_pointer#2601.motion(187310612, 28.19921875, 15.00000000) +[2618978.725] {Default Queue} wl_pointer#2633.motion(187310612, 28.19921875, 15.00000000) +[2618978.729] {Default Queue} wl_pointer#2665.motion(187310612, 28.19921875, 15.00000000) +[2618978.733] {Default Queue} wl_pointer#2697.motion(187310612, 28.19921875, 15.00000000) +[2618978.737] {Default Queue} wl_pointer#2729.motion(187310612, 28.19921875, 15.00000000) +[2618978.741] {Default Queue} wl_pointer#2761.motion(187310612, 28.19921875, 15.00000000) +[2618978.745] {Default Queue} wl_pointer#2793.motion(187310612, 28.19921875, 15.00000000) +[2618978.749] {Default Queue} wl_pointer#2825.motion(187310612, 28.19921875, 15.00000000) +[2618978.753] {Default Queue} wl_pointer#2857.motion(187310612, 28.19921875, 15.00000000) +[2618978.757] {Default Queue} wl_pointer#2889.motion(187310612, 28.19921875, 15.00000000) +[2618978.761] {Default Queue} wl_pointer#2921.motion(187310612, 28.19921875, 15.00000000) +[2618978.765] {Default Queue} wl_pointer#2953.motion(187310612, 28.19921875, 15.00000000) +[2618978.773] {Default Queue} wl_pointer#2985.motion(187310612, 28.19921875, 15.00000000) +[2618978.779] {Default Queue} wl_pointer#3017.motion(187310612, 28.19921875, 15.00000000) +[2618978.783] {Default Queue} wl_pointer#3049.motion(187310612, 28.19921875, 15.00000000) +[2618978.787] {Default Queue} wl_pointer#3081.motion(187310612, 28.19921875, 15.00000000) +[2618978.790] {Default Queue} wl_pointer#3113.motion(187310612, 28.19921875, 15.00000000) +[2618978.794] {Default Queue} wl_pointer#3145.motion(187310612, 28.19921875, 15.00000000) +[2618978.798] {Default Queue} wl_pointer#3177.motion(187310612, 28.19921875, 15.00000000) +[2618978.802] {Default Queue} wl_pointer#3209.motion(187310612, 28.19921875, 15.00000000) +[2618978.807] {Default Queue} wl_pointer#3241.motion(187310612, 28.19921875, 15.00000000) +[2618978.811] {Default Queue} wl_pointer#3273.motion(187310612, 28.19921875, 15.00000000) +[2618978.815] {Default Queue} wl_pointer#3305.motion(187310612, 28.19921875, 15.00000000) +[2618978.818] {Default Queue} wl_pointer#3337.motion(187310612, 28.19921875, 15.00000000) +[2618978.822] {Default Queue} wl_pointer#3369.motion(187310612, 28.19921875, 15.00000000) +[2618978.826] {Default Queue} wl_pointer#3401.motion(187310612, 28.19921875, 15.00000000) +[2618978.830] {Default Queue} wl_pointer#3433.motion(187310612, 28.19921875, 15.00000000) +[2618978.834] {Default Queue} wl_pointer#3465.motion(187310612, 28.19921875, 15.00000000) +[2618978.839] {Default Queue} wl_pointer#3497.motion(187310612, 28.19921875, 15.00000000) +[2618978.843] {Default Queue} wl_pointer#3529.motion(187310612, 28.19921875, 15.00000000) +[2618978.847] {Default Queue} wl_pointer#3561.motion(187310612, 28.19921875, 15.00000000) +[2618978.850] {Default Queue} wl_pointer#3593.motion(187310612, 28.19921875, 15.00000000) +[2618978.854] {Default Queue} wl_pointer#3625.motion(187310612, 28.19921875, 15.00000000) +[2618978.858] {Default Queue} wl_pointer#3657.motion(187310612, 28.19921875, 15.00000000) +[2618978.869] {Default Queue} wl_pointer#3695.motion(187310612, 28.19921875, 15.00000000) +[2618978.874] {Default Queue} wl_pointer#24.motion(187310613, 27.80078125, 15.00000000) +[2618978.878] {Default Queue} wl_pointer#81.motion(187310613, 27.80078125, 15.00000000) +[2618978.883] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618978.887] {Default Queue} wl_pointer#105.motion(187310613, 27.80078125, 15.00000000) +[2618978.891] {Default Queue} wl_pointer#137.motion(187310613, 27.80078125, 15.00000000) +[2618978.895] {Default Queue} wl_pointer#169.motion(187310613, 27.80078125, 15.00000000) +[2618978.899] {Default Queue} wl_pointer#201.motion(187310613, 27.80078125, 15.00000000) +[2618978.903] {Default Queue} wl_pointer#233.motion(187310613, 27.80078125, 15.00000000) +[2618978.907] {Default Queue} wl_pointer#265.motion(187310613, 27.80078125, 15.00000000) +[2618978.911] {Default Queue} wl_pointer#297.motion(187310613, 27.80078125, 15.00000000) +[2618978.915] {Default Queue} wl_pointer#329.motion(187310613, 27.80078125, 15.00000000) +[2618978.919] {Default Queue} wl_pointer#361.motion(187310613, 27.80078125, 15.00000000) +[2618978.922] {Default Queue} wl_pointer#393.motion(187310613, 27.80078125, 15.00000000) +[2618978.926] {Default Queue} wl_pointer#425.motion(187310613, 27.80078125, 15.00000000) +[2618978.930] {Default Queue} wl_pointer#457.motion(187310613, 27.80078125, 15.00000000) +[2618978.934] {Default Queue} wl_pointer#489.motion(187310613, 27.80078125, 15.00000000) +[2618978.938] {Default Queue} wl_pointer#521.motion(187310613, 27.80078125, 15.00000000) +[2618978.942] {Default Queue} wl_pointer#553.motion(187310613, 27.80078125, 15.00000000) +[2618978.946] {Default Queue} wl_pointer#585.motion(187310613, 27.80078125, 15.00000000) +[2618978.950] {Default Queue} wl_pointer#617.motion(187310613, 27.80078125, 15.00000000) +[2618978.954] {Default Queue} wl_pointer#649.motion(187310613, 27.80078125, 15.00000000) +[2618978.958] {Default Queue} wl_pointer#681.motion(187310613, 27.80078125, 15.00000000) +[2618978.962] {Default Queue} wl_pointer#713.motion(187310613, 27.80078125, 15.00000000) +[2618978.969] {Default Queue} wl_pointer#745.motion(187310613, 27.80078125, 15.00000000) +[2618978.974] {Default Queue} wl_pointer#777.motion(187310613, 27.80078125, 15.00000000) +[2618978.978] {Default Queue} wl_pointer#809.motion(187310613, 27.80078125, 15.00000000) +[2618978.982] {Default Queue} wl_pointer#841.motion(187310613, 27.80078125, 15.00000000) +[2618978.986] {Default Queue} wl_pointer#873.motion(187310613, 27.80078125, 15.00000000) +[2618978.990] {Default Queue} wl_pointer#905.motion(187310613, 27.80078125, 15.00000000) +[2618978.994] {Default Queue} wl_pointer#937.motion(187310613, 27.80078125, 15.00000000) +[2618978.997] {Default Queue} wl_pointer#969.motion(187310613, 27.80078125, 15.00000000) +[2618979.001] {Default Queue} wl_pointer#1001.motion(187310613, 27.80078125, 15.00000000) +[2618979.005] {Default Queue} wl_pointer#1033.motion(187310613, 27.80078125, 15.00000000) +[2618979.009] {Default Queue} wl_pointer#1065.motion(187310613, 27.80078125, 15.00000000) +[2618979.013] {Default Queue} wl_pointer#1097.motion(187310613, 27.80078125, 15.00000000) +[2618979.017] {Default Queue} wl_pointer#1129.motion(187310613, 27.80078125, 15.00000000) +[2618979.021] {Default Queue} wl_pointer#1161.motion(187310613, 27.80078125, 15.00000000) +[2618979.025] {Default Queue} wl_pointer#1193.motion(187310613, 27.80078125, 15.00000000) +[2618979.029] {Default Queue} wl_pointer#1225.motion(187310613, 27.80078125, 15.00000000) +[2618979.033] {Default Queue} wl_pointer#1257.motion(187310613, 27.80078125, 15.00000000) +[2618979.037] {Default Queue} wl_pointer#1289.motion(187310613, 27.80078125, 15.00000000) +[2618979.041] {Default Queue} wl_pointer#1321.motion(187310613, 27.80078125, 15.00000000) +[2618979.045] {Default Queue} wl_pointer#1353.motion(187310613, 27.80078125, 15.00000000) +[2618979.049] {Default Queue} wl_pointer#1385.motion(187310613, 27.80078125, 15.00000000) +[2618979.053] {Default Queue} wl_pointer#1417.motion(187310613, 27.80078125, 15.00000000) +[2618979.057] {Default Queue} wl_pointer#1449.motion(187310613, 27.80078125, 15.00000000) +[2618979.061] {Default Queue} wl_pointer#1481.motion(187310613, 27.80078125, 15.00000000) +[2618979.065] {Default Queue} wl_pointer#1513.motion(187310613, 27.80078125, 15.00000000) +[2618979.069] {Default Queue} wl_pointer#1545.motion(187310613, 27.80078125, 15.00000000) +[2618979.073] {Default Queue} wl_pointer#1577.motion(187310613, 27.80078125, 15.00000000) +[2618979.077] {Default Queue} wl_pointer#1609.motion(187310613, 27.80078125, 15.00000000) +[2618979.081] {Default Queue} wl_pointer#1641.motion(187310613, 27.80078125, 15.00000000) +[2618979.085] {Default Queue} wl_pointer#1673.motion(187310613, 27.80078125, 15.00000000) +[2618979.089] {Default Queue} wl_pointer#1705.motion(187310613, 27.80078125, 15.00000000) +[2618979.092] {Default Queue} wl_pointer#1737.motion(187310613, 27.80078125, 15.00000000) +[2618979.096] {Default Queue} wl_pointer#1762.motion(187310613, 27.80078125, 15.00000000) +[2618979.100] {Default Queue} wl_pointer#1801.motion(187310613, 27.80078125, 15.00000000) +[2618979.104] {Default Queue} wl_pointer#1833.motion(187310613, 27.80078125, 15.00000000) +[2618979.108] {Default Queue} wl_pointer#1865.motion(187310613, 27.80078125, 15.00000000) +[2618979.112] {Default Queue} wl_pointer#1897.motion(187310613, 27.80078125, 15.00000000) +[2618979.116] {Default Queue} wl_pointer#1929.motion(187310613, 27.80078125, 15.00000000) +[2618979.120] {Default Queue} wl_pointer#1961.motion(187310613, 27.80078125, 15.00000000) +[2618979.124] {Default Queue} wl_pointer#1993.motion(187310613, 27.80078125, 15.00000000) +[2618979.128] {Default Queue} wl_pointer#2025.motion(187310613, 27.80078125, 15.00000000) +[2618979.132] {Default Queue} wl_pointer#2057.motion(187310613, 27.80078125, 15.00000000) +[2618979.136] {Default Queue} wl_pointer#2089.motion(187310613, 27.80078125, 15.00000000) +[2618979.140] {Default Queue} wl_pointer#2121.motion(187310613, 27.80078125, 15.00000000) +[2618979.144] {Default Queue} wl_pointer#2153.motion(187310613, 27.80078125, 15.00000000) +[2618979.148] {Default Queue} wl_pointer#2185.motion(187310613, 27.80078125, 15.00000000) +[2618979.155] {Default Queue} wl_pointer#2217.motion(187310613, 27.80078125, 15.00000000) +[2618979.160] {Default Queue} wl_pointer#2249.motion(187310613, 27.80078125, 15.00000000) +[2618979.164] {Default Queue} wl_pointer#2281.motion(187310613, 27.80078125, 15.00000000) +[2618979.168] {Default Queue} wl_pointer#2313.motion(187310613, 27.80078125, 15.00000000) +[2618979.172] {Default Queue} wl_pointer#2345.motion(187310613, 27.80078125, 15.00000000) +[2618979.176] {Default Queue} wl_pointer#2377.motion(187310613, 27.80078125, 15.00000000) +[2618979.180] {Default Queue} wl_pointer#2409.motion(187310613, 27.80078125, 15.00000000) +[2618979.184] {Default Queue} wl_pointer#2441.motion(187310613, 27.80078125, 15.00000000) +[2618979.187] {Default Queue} wl_pointer#2473.motion(187310613, 27.80078125, 15.00000000) +[2618979.191] {Default Queue} wl_pointer#2498.motion(187310613, 27.80078125, 15.00000000) +[2618979.201] {Default Queue} -> wl_buffer#3102.destroy() +[2618979.205] {Default Queue} -> wl_buffer#3101.destroy() +[2618979.209] {Default Queue} -> wl_shm_pool#3100.destroy() +[2618979.213] {Default Queue} -> wl_shm_pool#3099.destroy() +[2618979.217] {Default Queue} -> wl_surface#1276.destroy() +[2618979.247] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#1019, fd 583, 640) +[2618979.253] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#1020, fd 584, 640) +[2618979.257] {Default Queue} -> wl_shm_pool#1019.create_buffer(new id wl_buffer#1021, 0, 10, 16, 40, 0) +[2618979.262] {Default Queue} -> wl_shm_pool#1020.create_buffer(new id wl_buffer#1022, 0, 10, 16, 40, 0) +[2618979.268] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#2108) +[2618979.272] {Default Queue} -> wl_surface#2108.attach(wl_buffer#1021, 0, 0) +[2618979.285] {Default Queue} -> wl_surface#2108.commit() +[2618979.290] {Default Queue} -> wl_surface#2108.attach(wl_buffer#1021, 0, 0) +[2618979.293] {Default Queue} -> wl_surface#2108.commit() +[2618979.298] {Default Queue} wl_pointer#2537.motion(187310613, 27.80078125, 15.00000000) +[2618979.302] {Default Queue} wl_pointer#2569.motion(187310613, 27.80078125, 15.00000000) +[2618979.306] {Default Queue} wl_pointer#2601.motion(187310613, 27.80078125, 15.00000000) +[2618979.310] {Default Queue} wl_pointer#2633.motion(187310613, 27.80078125, 15.00000000) +[2618979.316] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) +[2618979.320] {Default Queue} -> wl_surface#3559.commit() +[2618980.388] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) +[2618980.393] {Default Queue} -> wl_surface#3559.commit() +[2618980.400] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) +[2618980.404] {Default Queue} -> wl_surface#3559.commit() +[2618980.408] {Default Queue} -> wl_region#3615.subtract(0, 0, 115, 167) +[2618980.413] {Default Queue} -> wl_region#3615.subtract(0, 0, 367, 552) +[2618980.417] {Default Queue} -> wl_region#3615.add(-20, -550, 22, 552) +[2618980.421] {Default Queue} -> wl_surface#3591.set_opaque_region(wl_region#3616) +[2618980.425] {Default Queue} -> wl_surface#3591.set_input_region(wl_region#3615) +[2618980.429] {Default Queue} -> wl_surface#3591.damage(0, 0, 115, 167) +[2618980.446] {Default Queue} -> wl_buffer#3613.destroy() +[2618980.450] {Default Queue} -> wl_buffer#3614.destroy() +[2618980.454] {Default Queue} -> wl_shm_pool#3611.destroy() +[2618980.458] {Default Queue} -> wl_shm_pool#3612.destroy() +[2618980.543] {Default Queue} -> wl_shm#3599.create_pool(new id wl_shm_pool#2107, fd 575, 76820) +[2618980.549] {Default Queue} -> wl_shm#3599.create_pool(new id wl_shm_pool#2110, fd 578, 76820) +[2618980.553] {Default Queue} -> wl_shm_pool#2107.create_buffer(new id wl_buffer#2109, 0, 115, 167, 460, 0) +[2618980.557] {Default Queue} -> wl_shm_pool#2110.create_buffer(new id wl_buffer#2939, 0, 115, 167, 460, 0) +[2618980.580] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) +[2618980.585] {Default Queue} -> wl_surface#3591.commit() +[2618980.606] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) +[2618980.613] {Default Queue} -> wl_surface#3591.commit() +[2618980.625] {Default Queue} -> wl_region#3615.subtract(0, 0, 480, 717) +[2618980.631] {Default Queue} -> wl_region#3615.add(-20, -550, 135, 717) +[2618980.635] {Default Queue} -> wl_surface#3591.set_opaque_region(wl_region#3616) +[2618980.638] {Default Queue} -> wl_surface#3591.set_input_region(wl_region#3615) +[2618980.645] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) +[2618980.649] {Default Queue} -> wl_surface#3591.commit() +[2618980.656] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) +[2618980.660] {Default Queue} -> wl_surface#3591.commit() +[2618981.724] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) +[2618981.731] {Default Queue} -> wl_surface#3591.commit() +[2618981.739] {Default Queue} -> wl_region#3615.subtract(0, 0, 480, 717) +[2618981.744] {Default Queue} -> wl_region#3615.add(-20, -550, 135, 717) +[2618981.750] {Default Queue} -> wl_surface#3591.set_opaque_region(wl_region#3616) +[2618981.755] {Default Queue} -> wl_surface#3591.set_input_region(wl_region#3615) +[2618981.764] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) +[2618981.770] {Default Queue} -> wl_surface#3591.commit() +[2618981.776] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) +[2618981.780] {Default Queue} -> wl_surface#3591.commit() +[2618981.786] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) +[2618981.790] {Default Queue} -> wl_surface#3591.commit() +[2618981.795] {Default Queue} -> wl_region#3647.subtract(0, 0, 115, 167) +[2618981.800] {Default Queue} -> wl_region#3647.subtract(0, 0, 482, 552) +[2618981.805] {Default Queue} -> wl_region#3647.add(-20, -550, 22, 552) +[2618981.810] {Default Queue} -> wl_surface#3623.set_opaque_region(wl_region#3648) +[2618981.814] {Default Queue} -> wl_surface#3623.set_input_region(wl_region#3647) +[2618981.818] {Default Queue} -> wl_surface#3623.damage(0, 0, 115, 167) +[2618981.830] {Default Queue} -> wl_buffer#3645.destroy() +[2618981.835] {Default Queue} -> wl_buffer#3646.destroy() +[2618981.838] {Default Queue} -> wl_shm_pool#3643.destroy() +[2618981.842] {Default Queue} -> wl_shm_pool#3644.destroy() +[2618981.939] {Default Queue} -> wl_shm#3631.create_pool(new id wl_shm_pool#2942, fd 575, 76820) +[2618981.945] {Default Queue} -> wl_shm#3631.create_pool(new id wl_shm_pool#2941, fd 578, 76820) +[2618981.949] {Default Queue} -> wl_shm_pool#2942.create_buffer(new id wl_buffer#2908, 0, 115, 167, 460, 0) +[2618981.954] {Default Queue} -> wl_shm_pool#2941.create_buffer(new id wl_buffer#2907, 0, 115, 167, 460, 0) +[2618981.976] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) +[2618981.980] {Default Queue} -> wl_surface#3623.commit() +[2618982.002] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) +[2618982.006] {Default Queue} -> wl_surface#3623.commit() +[2618982.015] {Default Queue} -> wl_region#3647.subtract(0, 0, 595, 717) +[2618982.019] {Default Queue} -> wl_region#3647.add(-20, -550, 135, 717) +[2618982.024] {Default Queue} -> wl_surface#3623.set_opaque_region(wl_region#3648) +[2618982.027] {Default Queue} -> wl_surface#3623.set_input_region(wl_region#3647) +[2618982.034] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) +[2618982.038] {Default Queue} -> wl_surface#3623.commit() +[2618982.049] {Default Queue} wl_pointer#2665.motion(187310613, 27.80078125, 15.00000000) +[2618982.054] {Default Queue} wl_pointer#2697.motion(187310613, 27.80078125, 15.00000000) +[2618982.059] {Default Queue} wl_pointer#2729.motion(187310613, 27.80078125, 15.00000000) +[2618982.063] {Default Queue} wl_pointer#2761.motion(187310613, 27.80078125, 15.00000000) +[2618982.067] {Default Queue} wl_pointer#2793.motion(187310613, 27.80078125, 15.00000000) +[2618982.071] {Default Queue} wl_pointer#2825.motion(187310613, 27.80078125, 15.00000000) +[2618982.075] {Default Queue} wl_pointer#2857.motion(187310613, 27.80078125, 15.00000000) +[2618982.079] {Default Queue} wl_pointer#2889.motion(187310613, 27.80078125, 15.00000000) +[2618982.087] {Default Queue} wl_pointer#2921.motion(187310613, 27.80078125, 15.00000000) +[2618982.093] {Default Queue} wl_pointer#2953.motion(187310613, 27.80078125, 15.00000000) +[2618982.097] {Default Queue} wl_pointer#2985.motion(187310613, 27.80078125, 15.00000000) +[2618982.101] {Default Queue} wl_pointer#3017.motion(187310613, 27.80078125, 15.00000000) +[2618982.105] {Default Queue} wl_pointer#3049.motion(187310613, 27.80078125, 15.00000000) +[2618982.109] {Default Queue} wl_pointer#3081.motion(187310613, 27.80078125, 15.00000000) +[2618982.113] {Default Queue} wl_pointer#3113.motion(187310613, 27.80078125, 15.00000000) +[2618982.117] {Default Queue} wl_pointer#3145.motion(187310613, 27.80078125, 15.00000000) +[2618982.121] {Default Queue} wl_pointer#3177.motion(187310613, 27.80078125, 15.00000000) +[2618982.125] {Default Queue} wl_pointer#3209.motion(187310613, 27.80078125, 15.00000000) +[2618982.129] {Default Queue} wl_pointer#3241.motion(187310613, 27.80078125, 15.00000000) +[2618982.133] {Default Queue} wl_pointer#3273.motion(187310613, 27.80078125, 15.00000000) +[2618982.137] {Default Queue} wl_pointer#3305.motion(187310613, 27.80078125, 15.00000000) +[2618982.141] {Default Queue} wl_pointer#3337.motion(187310613, 27.80078125, 15.00000000) +[2618982.145] {Default Queue} wl_pointer#3369.motion(187310613, 27.80078125, 15.00000000) +[2618982.149] {Default Queue} wl_pointer#3401.motion(187310613, 27.80078125, 15.00000000) +[2618982.153] {Default Queue} wl_pointer#3433.motion(187310613, 27.80078125, 15.00000000) +[2618982.157] {Default Queue} wl_pointer#3465.motion(187310613, 27.80078125, 15.00000000) +[2618982.161] {Default Queue} wl_pointer#3497.motion(187310613, 27.80078125, 15.00000000) +[2618982.165] {Default Queue} wl_pointer#3529.motion(187310613, 27.80078125, 15.00000000) +[2618982.169] {Default Queue} wl_pointer#3561.motion(187310613, 27.80078125, 15.00000000) +[2618982.173] {Default Queue} wl_pointer#3593.motion(187310613, 27.80078125, 15.00000000) +[2618982.177] {Default Queue} wl_pointer#3625.motion(187310613, 27.80078125, 15.00000000) +[2618982.181] {Default Queue} wl_pointer#3657.motion(187310613, 27.80078125, 15.00000000) +[2618982.185] {Default Queue} wl_pointer#3695.motion(187310613, 27.80078125, 15.00000000) +[2618982.190] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) +[2618982.194] {Default Queue} -> wl_surface#3623.commit() +[2618983.258] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) +[2618983.265] {Default Queue} -> wl_surface#3623.commit() +[2618983.274] {Default Queue} -> wl_region#3647.subtract(0, 0, 595, 717) +[2618983.279] {Default Queue} -> wl_region#3647.add(-20, -550, 135, 717) +[2618983.283] {Default Queue} -> wl_surface#3623.set_opaque_region(wl_region#3648) +[2618983.287] {Default Queue} -> wl_surface#3623.set_input_region(wl_region#3647) +[2618983.293] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) +[2618983.298] {Default Queue} -> wl_surface#3623.commit() +[2618983.303] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) +[2618983.307] {Default Queue} -> wl_surface#3623.commit() +[2618983.314] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) +[2618983.317] {Default Queue} -> wl_surface#3623.commit() +[2618983.322] {Default Queue} -> wl_region#3007.subtract(0, 0, 576, 167) +[2618983.329] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) +[2618983.333] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) +[2618983.337] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618983.341] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618983.352] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) +[2618983.356] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) +[2618983.360] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618983.364] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618983.370] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) +[2618983.374] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) +[2618983.382] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618983.387] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618983.394] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) +[2618983.398] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) +[2618983.402] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618983.405] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618983.413] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) +[2618983.417] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) +[2618983.421] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2618983.424] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2618983.442] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) +[2618983.446] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) +[2618983.450] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618983.454] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618983.462] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) +[2618983.466] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) +[2618983.470] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618983.473] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618983.479] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) +[2618983.483] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) +[2618983.486] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618983.490] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618983.496] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) +[2618983.500] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) +[2618983.504] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618983.508] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618983.515] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) +[2618983.519] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) +[2618983.523] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2618983.526] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2618983.544] {Default Queue} -> wl_region#3583.subtract(0, 0, 365, 717) +[2618983.548] {Default Queue} -> wl_region#3583.add(-20, -550, 135, 717) +[2618983.552] {Default Queue} -> wl_surface#3559.set_opaque_region(wl_region#3584) +[2618983.556] {Default Queue} -> wl_surface#3559.set_input_region(wl_region#3583) +[2618983.562] {Default Queue} -> wl_region#3615.subtract(0, 0, 480, 717) +[2618983.566] {Default Queue} -> wl_region#3615.add(-20, -550, 135, 717) +[2618983.569] {Default Queue} -> wl_surface#3591.set_opaque_region(wl_region#3616) +[2618983.573] {Default Queue} -> wl_surface#3591.set_input_region(wl_region#3615) +[2618983.579] {Default Queue} -> wl_region#3647.subtract(0, 0, 595, 717) +[2618983.583] {Default Queue} -> wl_region#3647.add(-20, -550, 135, 717) +[2618983.587] {Default Queue} -> wl_surface#3623.set_opaque_region(wl_region#3648) +[2618983.590] {Default Queue} -> wl_surface#3623.set_input_region(wl_region#3647) +[2618983.596] {Default Queue} -> wl_surface#2983.damage(0, 0, 576, 167) +[2618983.600] {Default Queue} -> wl_region#3007.subtract(0, 0, 22, 552) +[2618983.604] {Default Queue} -> wl_region#3007.add(-20, -49, 22, 51) +[2618983.607] {Default Queue} -> wl_surface#2983.set_opaque_region(wl_region#3008) +[2618983.611] {Default Queue} -> wl_surface#2983.set_input_region(wl_region#3007) +[2618983.615] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) +[2618983.620] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2618983.626] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2618983.631] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) +[2618983.636] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) +[2618983.640] {Default Queue} -> wl_surface#3047.damage(0, 0, 109, 161) +[2618983.647] {Default Queue} -> wl_surface#3015.damage(0, 0, 115, 167) +[2618983.653] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) +[2618983.658] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2618983.662] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2618983.666] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2618983.670] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) +[2618983.674] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) +[2618983.678] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) +[2618983.682] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) +[2618983.686] {Default Queue} -> wl_surface#3271.damage(0, 0, 109, 161) +[2618983.690] {Default Queue} -> wl_surface#3239.damage(0, 0, 115, 167) +[2618983.693] {Default Queue} -> wl_surface#3559.damage(0, 0, 115, 167) +[2618983.697] {Default Queue} -> wl_surface#3591.damage(0, 0, 115, 167) +[2618983.701] {Default Queue} -> wl_surface#3623.damage(0, 0, 115, 167) +[2618983.705] {Default Queue} -> wl_surface#2983.damage(0, 0, 576, 167) +[2618983.717] {Default Queue} -> wl_buffer#3005.destroy() +[2618983.721] {Default Queue} -> wl_buffer#3006.destroy() +[2618983.725] {Default Queue} -> wl_shm_pool#3003.destroy() +[2618983.729] {Default Queue} -> wl_shm_pool#3004.destroy() +[2618984.050] {Default Queue} -> wl_shm#2991.create_pool(new id wl_shm_pool#2910, fd 575, 384768) +[2618984.060] {Default Queue} -> wl_shm#2991.create_pool(new id wl_shm_pool#2909, fd 578, 384768) +[2618984.065] {Default Queue} -> wl_shm_pool#2910.create_buffer(new id wl_buffer#2619, 0, 576, 167, 2304, 0) +[2618984.070] {Default Queue} -> wl_shm_pool#2909.create_buffer(new id wl_buffer#2622, 0, 576, 167, 2304, 0) +[2618984.161] {Default Queue} -> wl_surface#2983.attach(wl_buffer#2619, 0, 0) +[2618984.166] {Default Queue} -> wl_surface#2983.commit() +[2618984.261] {Default Queue} -> wl_surface#2983.attach(wl_buffer#2619, 0, 0) +[2618984.266] {Default Queue} -> wl_surface#2983.commit() +[2618984.279] {Default Queue} -> wl_region#3007.subtract(0, 0, 596, 717) +[2618984.284] {Default Queue} -> wl_region#3007.add(-20, -49, 596, 216) +[2618984.296] {Default Queue} -> wl_surface#2983.set_opaque_region(wl_region#3008) +[2618984.300] {Default Queue} -> wl_surface#2983.set_input_region(wl_region#3007) +[2618984.316] {Default Queue} -> wl_surface#2983.attach(wl_buffer#2619, 0, 0) +[2618984.322] {Default Queue} -> wl_surface#2983.commit() +[2618984.334] {Default Queue} -> wl_surface#2983.attach(wl_buffer#2619, 0, 0) +[2618984.339] {Default Queue} -> wl_surface#2983.commit() +[2618985.410] {Default Queue} -> wl_surface#2983.attach(wl_buffer#2619, 0, 0) +[2618985.416] {Default Queue} -> wl_surface#2983.commit() +[2618985.427] {Default Queue} -> wl_region#3007.subtract(0, 0, 596, 717) +[2618985.431] {Default Queue} -> wl_region#3007.add(-20, -49, 596, 216) +[2618985.435] {Default Queue} -> wl_surface#2983.set_opaque_region(wl_region#3008) +[2618985.439] {Default Queue} -> wl_surface#2983.set_input_region(wl_region#3007) +[2618985.454] {Default Queue} -> wl_surface#2983.attach(wl_buffer#2619, 0, 0) +[2618985.459] {Default Queue} -> wl_surface#2983.commit() +[2618985.469] {Default Queue} -> wl_surface#2983.attach(wl_buffer#2619, 0, 0) +[2618985.474] {Default Queue} -> wl_surface#2983.commit() +[2618985.486] {Default Queue} -> wl_surface#2983.attach(wl_buffer#2619, 0, 0) +[2618985.490] {Default Queue} -> wl_surface#2983.commit() +[2618985.621] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) +[2618985.627] {Default Queue} -> wl_surface#71.commit() +[2618986.738] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) +[2618986.746] {Default Queue} -> wl_surface#71.commit() +[2618986.775] {Default Queue} -> wl_region#95.subtract(0, 0, 596, 718) +[2618986.781] {Default Queue} -> wl_region#95.add(0, 0, 576, 669) +[2618986.785] {Default Queue} -> wl_surface#71.set_opaque_region(wl_region#96) +[2618986.789] {Default Queue} -> wl_surface#71.set_input_region(wl_region#95) +[2618986.841] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) +[2618986.851] {Default Queue} -> wl_surface#71.commit() +[2618986.892] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) +[2618986.898] {Default Queue} -> wl_surface#71.commit() +[2618986.929] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) +[2618986.935] {Default Queue} -> wl_surface#71.commit() +[2618987.097] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) +[2618987.103] {Default Queue} -> wl_surface#3.commit() +[2618987.299] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) +[2618987.305] {Default Queue} -> wl_surface#19.commit() +[2618987.317] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2618987.321] {Default Queue} -> wl_surface#43.commit() +[2618987.327] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) +[2618987.331] {Default Queue} -> wl_surface#199.commit() +[2618987.338] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2618987.341] {Default Queue} -> wl_surface#43.commit() +[2618987.347] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) +[2618987.351] {Default Queue} -> wl_surface#199.commit() +[2618988.413] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) +[2618988.419] {Default Queue} -> wl_surface#199.commit() +[2618988.433] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 69) +[2618988.438] {Default Queue} -> wl_region#223.add(-20, -49, 22, 69) +[2618988.442] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618988.446] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618988.552] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 69) +[2618988.557] {Default Queue} -> wl_region#223.add(-20, -49, 22, 69) +[2618988.561] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618988.565] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618988.578] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2618988.582] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2618988.632] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 69) +[2618988.637] {Default Queue} -> wl_region#223.add(-20, -49, 22, 69) +[2618988.641] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618988.645] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618988.650] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2618988.654] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2618988.659] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) +[2618988.663] {Default Queue} -> wl_surface#199.commit() +[2618988.667] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) +[2618988.671] {Default Queue} -> wl_surface#199.commit() +[2618988.676] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) +[2618988.680] {Default Queue} -> wl_surface#199.commit() +[2618988.684] {Default Queue} -> wl_region#287.subtract(0, 0, 2, 2) +[2618988.689] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) +[2618988.693] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) +[2618988.697] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618988.700] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618988.704] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618988.718] {Default Queue} -> wl_buffer#285.destroy() +[2618988.723] {Default Queue} -> wl_buffer#286.destroy() +[2618988.727] {Default Queue} -> wl_shm_pool#283.destroy() +[2618988.730] {Default Queue} -> wl_shm_pool#284.destroy() +[2618988.778] {Default Queue} -> wl_shm#271.create_pool(new id wl_shm_pool#2621, fd 575, 16) +[2618988.784] {Default Queue} -> wl_shm#271.create_pool(new id wl_shm_pool#2588, fd 578, 16) +[2618988.788] {Default Queue} -> wl_shm_pool#2621.create_buffer(new id wl_buffer#2587, 0, 2, 2, 8, 0) +[2618988.793] {Default Queue} -> wl_shm_pool#2588.create_buffer(new id wl_buffer#2590, 0, 2, 2, 8, 0) +[2618988.799] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) +[2618988.803] {Default Queue} -> wl_surface#263.commit() +[2618988.812] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) +[2618988.819] {Default Queue} -> wl_surface#263.commit() +[2618988.828] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) +[2618988.832] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) +[2618988.836] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618988.840] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618988.847] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) +[2618988.851] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) +[2618988.855] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618988.859] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618988.873] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) +[2618988.878] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) +[2618988.882] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618988.885] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618988.890] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) +[2618988.894] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) +[2618988.898] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618988.902] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618988.907] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) +[2618988.911] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) +[2618988.915] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618988.918] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618988.997] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) +[2618989.002] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) +[2618989.006] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618989.010] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618989.020] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618989.024] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618989.029] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) +[2618989.033] {Default Queue} -> wl_surface#263.commit() +[2618989.039] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) +[2618989.042] {Default Queue} -> wl_surface#263.commit() +[2618990.107] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) +[2618990.115] {Default Queue} -> wl_surface#263.commit() +[2618990.124] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) +[2618990.128] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) +[2618990.132] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618990.136] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618990.143] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) +[2618990.147] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) +[2618990.151] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618990.155] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618990.161] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) +[2618990.165] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) +[2618990.168] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618990.172] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618990.177] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) +[2618990.181] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) +[2618990.185] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618990.188] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618990.193] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) +[2618990.197] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) +[2618990.201] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618990.204] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618990.271] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) +[2618990.279] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) +[2618990.285] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2618990.289] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2618990.295] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618990.299] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618990.304] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) +[2618990.308] {Default Queue} -> wl_surface#263.commit() +[2618990.312] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) +[2618990.315] {Default Queue} -> wl_surface#263.commit() +[2618990.321] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) +[2618990.325] {Default Queue} -> wl_surface#263.commit() +[2618990.331] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) +[2618990.334] {Default Queue} -> wl_surface#231.commit() +[2618991.396] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) +[2618991.404] {Default Queue} -> wl_surface#231.commit() +[2618991.411] {Default Queue} -> wl_region#255.subtract(0, 0, 25, 74) +[2618991.415] {Default Queue} -> wl_region#255.add(-23, -52, 25, 54) +[2618991.419] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) +[2618991.423] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) +[2618991.428] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) +[2618991.432] {Default Queue} -> wl_surface#231.commit() +[2618991.436] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) +[2618991.440] {Default Queue} -> wl_surface#231.commit() +[2618991.445] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) +[2618991.449] {Default Queue} -> wl_surface#231.commit() +[2618991.453] {Default Queue} -> wl_region#191.subtract(0, 0, 109, 161) +[2618991.459] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 69) +[2618991.463] {Default Queue} -> wl_region#223.add(-20, -49, 22, 69) +[2618991.467] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618991.470] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618991.533] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 69) +[2618991.539] {Default Queue} -> wl_region#223.add(-20, -49, 22, 69) +[2618991.543] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618991.547] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618991.553] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2618991.557] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2618991.627] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 69) +[2618991.637] {Default Queue} -> wl_region#223.add(-20, -49, 22, 69) +[2618991.644] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2618991.649] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2618991.659] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2618991.665] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2618991.673] {Default Queue} -> wl_region#255.subtract(0, 0, 25, 74) +[2618991.677] {Default Queue} -> wl_region#255.add(-23, -52, 25, 54) +[2618991.682] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) +[2618991.687] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) +[2618991.693] {Default Queue} -> wl_surface#167.damage(0, 0, 109, 161) +[2618991.698] {Default Queue} -> wl_region#191.subtract(0, 0, 132, 213) +[2618991.704] {Default Queue} -> wl_region#191.add(-20, -49, 129, 210) +[2618991.708] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) +[2618991.712] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) +[2618991.716] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2618991.719] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2618991.723] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) +[2618991.728] {Default Queue} -> wl_surface#167.damage(0, 0, 109, 161) +[2618991.744] {Default Queue} -> wl_buffer#3692.destroy() +[2618991.751] {Default Queue} -> wl_buffer#3693.destroy() +[2618991.761] {Default Queue} -> wl_shm_pool#3690.destroy() +[2618991.768] {Default Queue} -> wl_shm_pool#3691.destroy() +[2618991.853] {Default Queue} -> wl_shm#175.create_pool(new id wl_shm_pool#2589, fd 575, 70196) +[2618991.867] {Default Queue} -> wl_shm#175.create_pool(new id wl_shm_pool#2364, fd 578, 70196) +[2618991.872] {Default Queue} -> wl_shm_pool#2589.create_buffer(new id wl_buffer#2363, 0, 109, 161, 436, 0) +[2618991.877] {Default Queue} -> wl_shm_pool#2364.create_buffer(new id wl_buffer#2366, 0, 109, 161, 436, 0) +[2618991.899] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) +[2618991.903] {Default Queue} -> wl_surface#167.commit() +[2618991.924] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) +[2618991.929] {Default Queue} -> wl_surface#167.commit() +[2618991.938] {Default Queue} -> wl_region#191.subtract(0, 0, 132, 213) +[2618991.943] {Default Queue} -> wl_region#191.add(-20, -49, 129, 210) +[2618991.947] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) +[2618991.951] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) +[2618991.958] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) +[2618991.962] {Default Queue} -> wl_surface#167.commit() +[2618991.998] {Display Queue} wl_display#1.delete_id(3133) +[2618992.003] {Display Queue} wl_display#1.delete_id(3134) +[2618992.007] {Display Queue} wl_display#1.delete_id(3131) +[2618992.012] {Display Queue} wl_display#1.delete_id(3132) +[2618992.016] {Display Queue} wl_display#1.delete_id(3037) +[2618992.019] {Display Queue} wl_display#1.delete_id(3038) +[2618992.023] {Display Queue} wl_display#1.delete_id(3035) +[2618992.027] {Display Queue} wl_display#1.delete_id(3036) +[2618992.031] {Default Queue} wl_pointer#24.motion(187310621, 27.39843750, 14.60156250) +[2618992.037] {Default Queue} wl_pointer#81.motion(187310621, 27.39843750, 14.60156250) +[2618992.043] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618992.048] {Default Queue} wl_pointer#105.motion(187310621, 27.39843750, 14.60156250) +[2618992.052] {Default Queue} wl_pointer#137.motion(187310621, 27.39843750, 14.60156250) +[2618992.056] {Default Queue} wl_pointer#169.motion(187310621, 27.39843750, 14.60156250) +[2618992.061] {Default Queue} wl_pointer#201.motion(187310621, 27.39843750, 14.60156250) +[2618992.065] {Default Queue} wl_pointer#233.motion(187310621, 27.39843750, 14.60156250) +[2618992.069] {Default Queue} wl_pointer#265.motion(187310621, 27.39843750, 14.60156250) +[2618992.073] {Default Queue} wl_pointer#297.motion(187310621, 27.39843750, 14.60156250) +[2618992.077] {Default Queue} wl_pointer#329.motion(187310621, 27.39843750, 14.60156250) +[2618992.081] {Default Queue} wl_pointer#361.motion(187310621, 27.39843750, 14.60156250) +[2618992.086] {Default Queue} wl_pointer#393.motion(187310621, 27.39843750, 14.60156250) +[2618992.091] {Default Queue} wl_pointer#425.motion(187310621, 27.39843750, 14.60156250) +[2618992.095] {Default Queue} wl_pointer#457.motion(187310621, 27.39843750, 14.60156250) +[2618992.099] {Default Queue} wl_pointer#489.motion(187310621, 27.39843750, 14.60156250) +[2618992.104] {Default Queue} wl_pointer#521.motion(187310621, 27.39843750, 14.60156250) +[2618992.108] {Default Queue} wl_pointer#553.motion(187310621, 27.39843750, 14.60156250) +[2618992.113] {Default Queue} wl_pointer#585.motion(187310621, 27.39843750, 14.60156250) +[2618992.118] {Default Queue} wl_pointer#617.motion(187310621, 27.39843750, 14.60156250) +[2618992.122] {Default Queue} wl_pointer#649.motion(187310621, 27.39843750, 14.60156250) +[2618992.126] {Default Queue} wl_pointer#681.motion(187310621, 27.39843750, 14.60156250) +[2618992.130] {Default Queue} wl_pointer#713.motion(187310621, 27.39843750, 14.60156250) +[2618992.135] {Default Queue} wl_pointer#745.motion(187310621, 27.39843750, 14.60156250) +[2618992.139] {Default Queue} wl_pointer#777.motion(187310621, 27.39843750, 14.60156250) +[2618992.144] {Default Queue} wl_pointer#809.motion(187310621, 27.39843750, 14.60156250) +[2618992.149] {Default Queue} wl_pointer#841.motion(187310621, 27.39843750, 14.60156250) +[2618992.157] {Default Queue} wl_pointer#873.motion(187310621, 27.39843750, 14.60156250) +[2618992.164] {Default Queue} wl_pointer#905.motion(187310621, 27.39843750, 14.60156250) +[2618992.168] {Default Queue} wl_pointer#937.motion(187310621, 27.39843750, 14.60156250) +[2618992.173] {Default Queue} wl_pointer#969.motion(187310621, 27.39843750, 14.60156250) +[2618992.178] {Default Queue} wl_pointer#1001.motion(187310621, 27.39843750, 14.60156250) +[2618992.182] {Default Queue} wl_pointer#1033.motion(187310621, 27.39843750, 14.60156250) +[2618992.187] {Default Queue} wl_pointer#1065.motion(187310621, 27.39843750, 14.60156250) +[2618992.192] {Default Queue} wl_pointer#1097.motion(187310621, 27.39843750, 14.60156250) +[2618992.196] {Default Queue} wl_pointer#1129.motion(187310621, 27.39843750, 14.60156250) +[2618992.201] {Default Queue} wl_pointer#1161.motion(187310621, 27.39843750, 14.60156250) +[2618992.205] {Default Queue} wl_pointer#1193.motion(187310621, 27.39843750, 14.60156250) +[2618992.209] {Default Queue} wl_pointer#1225.motion(187310621, 27.39843750, 14.60156250) +[2618992.214] {Default Queue} wl_pointer#1257.motion(187310621, 27.39843750, 14.60156250) +[2618992.218] {Default Queue} wl_pointer#1289.motion(187310621, 27.39843750, 14.60156250) +[2618992.224] {Default Queue} wl_pointer#1321.motion(187310621, 27.39843750, 14.60156250) +[2618992.229] {Default Queue} wl_pointer#1353.motion(187310621, 27.39843750, 14.60156250) +[2618992.233] {Default Queue} wl_pointer#1385.motion(187310621, 27.39843750, 14.60156250) +[2618992.238] {Default Queue} wl_pointer#1417.motion(187310621, 27.39843750, 14.60156250) +[2618992.242] {Default Queue} wl_pointer#1449.motion(187310621, 27.39843750, 14.60156250) +[2618992.246] {Default Queue} wl_pointer#1481.motion(187310621, 27.39843750, 14.60156250) +[2618992.251] {Default Queue} wl_pointer#1513.motion(187310621, 27.39843750, 14.60156250) +[2618992.256] {Default Queue} wl_pointer#1545.motion(187310621, 27.39843750, 14.60156250) +[2618992.260] {Default Queue} wl_pointer#1577.motion(187310621, 27.39843750, 14.60156250) +[2618992.265] {Default Queue} wl_pointer#1609.motion(187310621, 27.39843750, 14.60156250) +[2618992.270] {Default Queue} wl_pointer#1641.motion(187310621, 27.39843750, 14.60156250) +[2618992.275] {Default Queue} wl_pointer#1673.motion(187310621, 27.39843750, 14.60156250) +[2618992.279] {Default Queue} wl_pointer#1705.motion(187310621, 27.39843750, 14.60156250) +[2618992.283] {Default Queue} wl_pointer#1737.motion(187310621, 27.39843750, 14.60156250) +[2618992.288] {Default Queue} wl_pointer#1762.motion(187310621, 27.39843750, 14.60156250) +[2618992.294] {Default Queue} wl_pointer#1801.motion(187310621, 27.39843750, 14.60156250) +[2618992.298] {Default Queue} wl_pointer#1833.motion(187310621, 27.39843750, 14.60156250) +[2618992.303] {Default Queue} wl_pointer#1865.motion(187310621, 27.39843750, 14.60156250) +[2618992.307] {Default Queue} wl_pointer#1897.motion(187310621, 27.39843750, 14.60156250) +[2618992.312] {Default Queue} wl_pointer#1929.motion(187310621, 27.39843750, 14.60156250) +[2618992.317] {Default Queue} wl_pointer#1961.motion(187310621, 27.39843750, 14.60156250) +[2618992.321] {Default Queue} wl_pointer#1993.motion(187310621, 27.39843750, 14.60156250) +[2618992.326] {Default Queue} wl_pointer#2025.motion(187310621, 27.39843750, 14.60156250) +[2618992.330] {Default Queue} wl_pointer#2057.motion(187310621, 27.39843750, 14.60156250) +[2618992.336] {Default Queue} wl_pointer#2089.motion(187310621, 27.39843750, 14.60156250) +[2618992.340] {Default Queue} wl_pointer#2121.motion(187310621, 27.39843750, 14.60156250) +[2618992.345] {Default Queue} wl_pointer#2153.motion(187310621, 27.39843750, 14.60156250) +[2618992.349] {Default Queue} wl_pointer#2185.motion(187310621, 27.39843750, 14.60156250) +[2618992.355] {Default Queue} wl_pointer#2217.motion(187310621, 27.39843750, 14.60156250) +[2618992.360] {Default Queue} wl_pointer#2249.motion(187310621, 27.39843750, 14.60156250) +[2618992.364] {Default Queue} wl_pointer#2281.motion(187310621, 27.39843750, 14.60156250) +[2618992.375] {Default Queue} wl_pointer#2313.motion(187310621, 27.39843750, 14.60156250) +[2618992.383] {Default Queue} wl_pointer#2345.motion(187310621, 27.39843750, 14.60156250) +[2618992.388] {Default Queue} wl_pointer#2377.motion(187310621, 27.39843750, 14.60156250) +[2618992.392] {Default Queue} wl_pointer#2409.motion(187310621, 27.39843750, 14.60156250) +[2618992.397] {Default Queue} wl_pointer#2441.motion(187310621, 27.39843750, 14.60156250) +[2618992.402] {Default Queue} wl_pointer#2473.motion(187310621, 27.39843750, 14.60156250) +[2618992.406] {Default Queue} wl_pointer#2498.motion(187310621, 27.39843750, 14.60156250) +[2618992.418] {Default Queue} -> wl_buffer#1021.destroy() +[2618992.424] {Default Queue} -> wl_buffer#1022.destroy() +[2618992.428] {Default Queue} -> wl_shm_pool#1019.destroy() +[2618992.431] {Default Queue} -> wl_shm_pool#1020.destroy() +[2618992.436] {Default Queue} -> wl_surface#2108.destroy() +[2618992.473] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3036, fd 581, 640) +[2618992.479] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3035, fd 582, 640) +[2618992.483] {Default Queue} -> wl_shm_pool#3036.create_buffer(new id wl_buffer#3038, 0, 10, 16, 40, 0) +[2618992.488] {Default Queue} -> wl_shm_pool#3035.create_buffer(new id wl_buffer#3037, 0, 10, 16, 40, 0) +[2618992.497] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3132) +[2618992.503] {Default Queue} -> wl_surface#3132.attach(wl_buffer#3038, 0, 0) +[2618992.508] {Default Queue} -> wl_surface#3132.commit() +[2618992.515] {Default Queue} -> wl_surface#3132.attach(wl_buffer#3038, 0, 0) +[2618992.521] {Default Queue} -> wl_surface#3132.commit() +[2618992.525] {Default Queue} wl_pointer#2537.motion(187310621, 27.39843750, 14.60156250) +[2618992.531] {Default Queue} wl_pointer#2569.motion(187310621, 27.39843750, 14.60156250) +[2618992.536] {Default Queue} wl_pointer#2601.motion(187310621, 27.39843750, 14.60156250) +[2618992.540] {Default Queue} wl_pointer#2633.motion(187310621, 27.39843750, 14.60156250) +[2618992.545] {Default Queue} wl_pointer#2665.motion(187310621, 27.39843750, 14.60156250) +[2618992.550] {Default Queue} wl_pointer#2697.motion(187310621, 27.39843750, 14.60156250) +[2618992.554] {Default Queue} wl_pointer#2729.motion(187310621, 27.39843750, 14.60156250) +[2618992.559] {Default Queue} wl_pointer#2761.motion(187310621, 27.39843750, 14.60156250) +[2618992.564] {Default Queue} wl_pointer#2793.motion(187310621, 27.39843750, 14.60156250) +[2618992.568] {Default Queue} wl_pointer#2825.motion(187310621, 27.39843750, 14.60156250) +[2618992.574] {Default Queue} wl_pointer#2857.motion(187310621, 27.39843750, 14.60156250) +[2618992.579] {Default Queue} wl_pointer#2889.motion(187310621, 27.39843750, 14.60156250) +[2618992.583] {Default Queue} wl_pointer#2921.motion(187310621, 27.39843750, 14.60156250) +[2618992.587] {Default Queue} wl_pointer#2953.motion(187310621, 27.39843750, 14.60156250) +[2618992.591] {Default Queue} wl_pointer#2985.motion(187310621, 27.39843750, 14.60156250) +[2618992.596] {Default Queue} wl_pointer#3017.motion(187310621, 27.39843750, 14.60156250) +[2618992.600] {Default Queue} wl_pointer#3049.motion(187310621, 27.39843750, 14.60156250) +[2618992.605] {Default Queue} wl_pointer#3081.motion(187310621, 27.39843750, 14.60156250) +[2618992.610] {Default Queue} wl_pointer#3113.motion(187310621, 27.39843750, 14.60156250) +[2618992.614] {Default Queue} wl_pointer#3145.motion(187310621, 27.39843750, 14.60156250) +[2618992.620] {Default Queue} wl_pointer#3177.motion(187310621, 27.39843750, 14.60156250) +[2618992.624] {Default Queue} wl_pointer#3209.motion(187310621, 27.39843750, 14.60156250) +[2618992.629] {Default Queue} wl_pointer#3241.motion(187310621, 27.39843750, 14.60156250) +[2618992.633] {Default Queue} wl_pointer#3273.motion(187310621, 27.39843750, 14.60156250) +[2618992.638] {Default Queue} wl_pointer#3305.motion(187310621, 27.39843750, 14.60156250) +[2618992.642] {Default Queue} wl_pointer#3337.motion(187310621, 27.39843750, 14.60156250) +[2618992.646] {Default Queue} wl_pointer#3369.motion(187310621, 27.39843750, 14.60156250) +[2618992.655] {Default Queue} wl_pointer#3401.motion(187310621, 27.39843750, 14.60156250) +[2618992.662] {Default Queue} wl_pointer#3433.motion(187310621, 27.39843750, 14.60156250) +[2618992.667] {Default Queue} wl_pointer#3465.motion(187310621, 27.39843750, 14.60156250) +[2618992.672] {Default Queue} wl_pointer#3497.motion(187310621, 27.39843750, 14.60156250) +[2618992.676] {Default Queue} wl_pointer#3529.motion(187310621, 27.39843750, 14.60156250) +[2618992.681] {Default Queue} wl_pointer#3561.motion(187310621, 27.39843750, 14.60156250) +[2618992.685] {Default Queue} wl_pointer#3593.motion(187310621, 27.39843750, 14.60156250) +[2618992.689] {Default Queue} wl_pointer#3625.motion(187310621, 27.39843750, 14.60156250) +[2618992.694] {Default Queue} wl_pointer#3657.motion(187310621, 27.39843750, 14.60156250) +[2618992.698] {Default Queue} wl_pointer#3695.motion(187310621, 27.39843750, 14.60156250) +[2618992.704] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) +[2618992.708] {Default Queue} -> wl_surface#167.commit() +[2618993.775] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) +[2618993.785] {Default Queue} -> wl_surface#167.commit() +[2618993.796] {Default Queue} -> wl_region#191.subtract(0, 0, 132, 213) +[2618993.800] {Default Queue} -> wl_region#191.add(-20, -49, 129, 210) +[2618993.804] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) +[2618993.808] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) +[2618993.815] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) +[2618993.819] {Default Queue} -> wl_surface#167.commit() +[2618993.824] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) +[2618993.828] {Default Queue} -> wl_surface#167.commit() +[2618993.835] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) +[2618993.842] {Default Queue} -> wl_surface#167.commit() +[2618993.853] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) +[2618993.858] {Default Queue} -> wl_surface#135.commit() +[2618994.926] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) +[2618994.931] {Default Queue} -> wl_surface#135.commit() +[2618994.942] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) +[2618994.947] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) +[2618994.951] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618994.955] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618994.963] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) +[2618994.967] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) +[2618994.971] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618994.974] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618994.980] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) +[2618994.984] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) +[2618994.988] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618994.992] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618994.998] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) +[2618995.002] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) +[2618995.006] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618995.010] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618995.016] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) +[2618995.020] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) +[2618995.024] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) +[2618995.028] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) +[2618995.035] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) +[2618995.039] {Default Queue} -> wl_surface#135.commit() +[2618995.044] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) +[2618995.048] {Default Queue} -> wl_surface#135.commit() +[2618995.054] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) +[2618995.058] {Default Queue} -> wl_surface#135.commit() +[2618995.085] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) +[2618995.092] {Default Queue} -> wl_surface#295.commit() +[2618996.158] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) +[2618996.165] {Default Queue} -> wl_surface#295.commit() +[2618996.180] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) +[2618996.188] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) +[2618996.192] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618996.196] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618996.483] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) +[2618996.494] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) +[2618996.501] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618996.507] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618996.521] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) +[2618996.526] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) +[2618996.784] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) +[2618996.791] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) +[2618996.795] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) +[2618996.799] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) +[2618996.810] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) +[2618996.818] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) +[2618996.827] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) +[2618996.833] {Default Queue} -> wl_surface#295.commit() +[2618996.840] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) +[2618996.845] {Default Queue} -> wl_surface#295.commit() +[2618996.855] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) +[2618996.859] {Default Queue} -> wl_surface#295.commit() +[2618996.872] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) +[2618996.876] {Default Queue} -> wl_surface#391.commit() +[2618997.294] {Display Queue} wl_display#1.delete_id(3325) +[2618997.300] {Display Queue} wl_display#1.delete_id(3326) +[2618997.304] {Display Queue} wl_display#1.delete_id(3323) +[2618997.308] {Display Queue} wl_display#1.delete_id(3324) +[2618997.312] {Display Queue} wl_display#1.delete_id(2430) +[2618997.316] {Display Queue} wl_display#1.delete_id(2429) +[2618997.319] {Display Queue} wl_display#1.delete_id(2428) +[2618997.323] {Display Queue} wl_display#1.delete_id(2427) +[2618997.327] {Display Queue} wl_display#1.delete_id(2140) +[2618997.331] {Default Queue} wl_pointer#24.motion(187310631, 27.00000000, 14.19921875) +[2618997.336] {Default Queue} wl_pointer#81.motion(187310631, 27.00000000, 14.19921875) +[2618997.341] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618997.346] {Default Queue} wl_pointer#105.motion(187310631, 27.00000000, 14.19921875) +[2618997.350] {Default Queue} wl_pointer#137.motion(187310631, 27.00000000, 14.19921875) +[2618997.355] {Default Queue} wl_pointer#169.motion(187310631, 27.00000000, 14.19921875) +[2618997.361] {Default Queue} wl_pointer#201.motion(187310631, 27.00000000, 14.19921875) +[2618997.367] {Default Queue} wl_pointer#233.motion(187310631, 27.00000000, 14.19921875) +[2618997.374] {Default Queue} wl_pointer#265.motion(187310631, 27.00000000, 14.19921875) +[2618997.381] {Default Queue} wl_pointer#297.motion(187310631, 27.00000000, 14.19921875) +[2618997.388] {Default Queue} wl_pointer#329.motion(187310631, 27.00000000, 14.19921875) +[2618997.394] {Default Queue} wl_pointer#361.motion(187310631, 27.00000000, 14.19921875) +[2618997.400] {Default Queue} wl_pointer#393.motion(187310631, 27.00000000, 14.19921875) +[2618997.406] {Default Queue} wl_pointer#425.motion(187310631, 27.00000000, 14.19921875) +[2618997.412] {Default Queue} wl_pointer#457.motion(187310631, 27.00000000, 14.19921875) +[2618997.416] {Default Queue} wl_pointer#489.motion(187310631, 27.00000000, 14.19921875) +[2618997.420] {Default Queue} wl_pointer#521.motion(187310631, 27.00000000, 14.19921875) +[2618997.430] {Default Queue} wl_pointer#553.motion(187310631, 27.00000000, 14.19921875) +[2618997.437] {Default Queue} wl_pointer#585.motion(187310631, 27.00000000, 14.19921875) +[2618997.441] {Default Queue} wl_pointer#617.motion(187310631, 27.00000000, 14.19921875) +[2618997.445] {Default Queue} wl_pointer#649.motion(187310631, 27.00000000, 14.19921875) +[2618997.450] {Default Queue} wl_pointer#681.motion(187310631, 27.00000000, 14.19921875) +[2618997.453] {Default Queue} wl_pointer#713.motion(187310631, 27.00000000, 14.19921875) +[2618997.457] {Default Queue} wl_pointer#745.motion(187310631, 27.00000000, 14.19921875) +[2618997.462] {Default Queue} wl_pointer#777.motion(187310631, 27.00000000, 14.19921875) +[2618997.466] {Default Queue} wl_pointer#809.motion(187310631, 27.00000000, 14.19921875) +[2618997.470] {Default Queue} wl_pointer#841.motion(187310631, 27.00000000, 14.19921875) +[2618997.474] {Default Queue} wl_pointer#873.motion(187310631, 27.00000000, 14.19921875) +[2618997.478] {Default Queue} wl_pointer#905.motion(187310631, 27.00000000, 14.19921875) +[2618997.483] {Default Queue} wl_pointer#937.motion(187310631, 27.00000000, 14.19921875) +[2618997.487] {Default Queue} wl_pointer#969.motion(187310631, 27.00000000, 14.19921875) +[2618997.491] {Default Queue} wl_pointer#1001.motion(187310631, 27.00000000, 14.19921875) +[2618997.495] {Default Queue} wl_pointer#1033.motion(187310631, 27.00000000, 14.19921875) +[2618997.499] {Default Queue} wl_pointer#1065.motion(187310631, 27.00000000, 14.19921875) +[2618997.503] {Default Queue} wl_pointer#1097.motion(187310631, 27.00000000, 14.19921875) +[2618997.507] {Default Queue} wl_pointer#1129.motion(187310631, 27.00000000, 14.19921875) +[2618997.511] {Default Queue} wl_pointer#1161.motion(187310631, 27.00000000, 14.19921875) +[2618997.515] {Default Queue} wl_pointer#1193.motion(187310631, 27.00000000, 14.19921875) +[2618997.519] {Default Queue} wl_pointer#1225.motion(187310631, 27.00000000, 14.19921875) +[2618997.523] {Default Queue} wl_pointer#1257.motion(187310631, 27.00000000, 14.19921875) +[2618997.527] {Default Queue} wl_pointer#1289.motion(187310631, 27.00000000, 14.19921875) +[2618997.531] {Default Queue} wl_pointer#1321.motion(187310631, 27.00000000, 14.19921875) +[2618997.536] {Default Queue} wl_pointer#1353.motion(187310631, 27.00000000, 14.19921875) +[2618997.540] {Default Queue} wl_pointer#1385.motion(187310631, 27.00000000, 14.19921875) +[2618997.544] {Default Queue} wl_pointer#1417.motion(187310631, 27.00000000, 14.19921875) +[2618997.548] {Default Queue} wl_pointer#1449.motion(187310631, 27.00000000, 14.19921875) +[2618997.552] {Default Queue} wl_pointer#1481.motion(187310631, 27.00000000, 14.19921875) +[2618997.556] {Default Queue} wl_pointer#1513.motion(187310631, 27.00000000, 14.19921875) +[2618997.560] {Default Queue} wl_pointer#1545.motion(187310631, 27.00000000, 14.19921875) +[2618997.564] {Default Queue} wl_pointer#1577.motion(187310631, 27.00000000, 14.19921875) +[2618997.569] {Default Queue} wl_pointer#1609.motion(187310631, 27.00000000, 14.19921875) +[2618997.573] {Default Queue} wl_pointer#1641.motion(187310631, 27.00000000, 14.19921875) +[2618997.577] {Default Queue} wl_pointer#1673.motion(187310631, 27.00000000, 14.19921875) +[2618997.581] {Default Queue} wl_pointer#1705.motion(187310631, 27.00000000, 14.19921875) +[2618997.585] {Default Queue} wl_pointer#1737.motion(187310631, 27.00000000, 14.19921875) +[2618997.589] {Default Queue} wl_pointer#1762.motion(187310631, 27.00000000, 14.19921875) +[2618997.593] {Default Queue} wl_pointer#1801.motion(187310631, 27.00000000, 14.19921875) +[2618997.597] {Default Queue} wl_pointer#1833.motion(187310631, 27.00000000, 14.19921875) +[2618997.601] {Default Queue} wl_pointer#1865.motion(187310631, 27.00000000, 14.19921875) +[2618997.605] {Default Queue} wl_pointer#1897.motion(187310631, 27.00000000, 14.19921875) +[2618997.609] {Default Queue} wl_pointer#1929.motion(187310631, 27.00000000, 14.19921875) +[2618997.613] {Default Queue} wl_pointer#1961.motion(187310631, 27.00000000, 14.19921875) +[2618997.618] {Default Queue} wl_pointer#1993.motion(187310631, 27.00000000, 14.19921875) +[2618997.625] {Default Queue} wl_pointer#2025.motion(187310631, 27.00000000, 14.19921875) +[2618997.630] {Default Queue} wl_pointer#2057.motion(187310631, 27.00000000, 14.19921875) +[2618997.634] {Default Queue} wl_pointer#2089.motion(187310631, 27.00000000, 14.19921875) +[2618997.638] {Default Queue} wl_pointer#2121.motion(187310631, 27.00000000, 14.19921875) +[2618997.643] {Default Queue} wl_pointer#2153.motion(187310631, 27.00000000, 14.19921875) +[2618997.647] {Default Queue} wl_pointer#2185.motion(187310631, 27.00000000, 14.19921875) +[2618997.651] {Default Queue} wl_pointer#2217.motion(187310631, 27.00000000, 14.19921875) +[2618997.655] {Default Queue} wl_pointer#2249.motion(187310631, 27.00000000, 14.19921875) +[2618997.659] {Default Queue} wl_pointer#2281.motion(187310631, 27.00000000, 14.19921875) +[2618997.663] {Default Queue} wl_pointer#2313.motion(187310631, 27.00000000, 14.19921875) +[2618997.668] {Default Queue} wl_pointer#2345.motion(187310631, 27.00000000, 14.19921875) +[2618997.672] {Default Queue} wl_pointer#2377.motion(187310631, 27.00000000, 14.19921875) +[2618997.676] {Default Queue} wl_pointer#2409.motion(187310631, 27.00000000, 14.19921875) +[2618997.680] {Default Queue} wl_pointer#2441.motion(187310631, 27.00000000, 14.19921875) +[2618997.684] {Default Queue} wl_pointer#2473.motion(187310631, 27.00000000, 14.19921875) +[2618997.688] {Default Queue} wl_pointer#2498.motion(187310631, 27.00000000, 14.19921875) +[2618997.700] {Default Queue} -> wl_buffer#3038.destroy() +[2618997.706] {Default Queue} -> wl_buffer#3037.destroy() +[2618997.710] {Default Queue} -> wl_shm_pool#3036.destroy() +[2618997.714] {Default Queue} -> wl_shm_pool#3035.destroy() +[2618997.719] {Default Queue} -> wl_surface#3132.destroy() +[2618997.758] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2140, fd 575, 640) +[2618997.764] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2427, fd 578, 640) +[2618997.769] {Default Queue} -> wl_shm_pool#2140.create_buffer(new id wl_buffer#2428, 0, 10, 16, 40, 0) +[2618997.773] {Default Queue} -> wl_shm_pool#2427.create_buffer(new id wl_buffer#2429, 0, 10, 16, 40, 0) +[2618997.781] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#2430) +[2618997.785] {Default Queue} -> wl_surface#2430.attach(wl_buffer#2428, 0, 0) +[2618997.789] {Default Queue} -> wl_surface#2430.commit() +[2618997.795] {Default Queue} -> wl_surface#2430.attach(wl_buffer#2428, 0, 0) +[2618997.798] {Default Queue} -> wl_surface#2430.commit() +[2618997.802] {Default Queue} wl_pointer#2537.motion(187310631, 27.00000000, 14.19921875) +[2618997.807] {Default Queue} wl_pointer#2569.motion(187310631, 27.00000000, 14.19921875) +[2618997.811] {Default Queue} wl_pointer#2601.motion(187310631, 27.00000000, 14.19921875) +[2618997.815] {Default Queue} wl_pointer#2633.motion(187310631, 27.00000000, 14.19921875) +[2618997.819] {Default Queue} wl_pointer#2665.motion(187310631, 27.00000000, 14.19921875) +[2618997.823] {Default Queue} wl_pointer#2697.motion(187310631, 27.00000000, 14.19921875) +[2618997.827] {Default Queue} wl_pointer#2729.motion(187310631, 27.00000000, 14.19921875) +[2618997.831] {Default Queue} wl_pointer#2761.motion(187310631, 27.00000000, 14.19921875) +[2618997.836] {Default Queue} wl_pointer#2793.motion(187310631, 27.00000000, 14.19921875) +[2618997.840] {Default Queue} wl_pointer#2825.motion(187310631, 27.00000000, 14.19921875) +[2618997.844] {Default Queue} wl_pointer#2857.motion(187310631, 27.00000000, 14.19921875) +[2618997.848] {Default Queue} wl_pointer#2889.motion(187310631, 27.00000000, 14.19921875) +[2618997.853] {Default Queue} wl_pointer#2921.motion(187310631, 27.00000000, 14.19921875) +[2618997.857] {Default Queue} wl_pointer#2953.motion(187310631, 27.00000000, 14.19921875) +[2618997.862] {Default Queue} wl_pointer#2985.motion(187310631, 27.00000000, 14.19921875) +[2618997.866] {Default Queue} wl_pointer#3017.motion(187310631, 27.00000000, 14.19921875) +[2618997.875] {Default Queue} wl_pointer#3049.motion(187310631, 27.00000000, 14.19921875) +[2618997.880] {Default Queue} wl_pointer#3081.motion(187310631, 27.00000000, 14.19921875) +[2618997.888] {Default Queue} wl_pointer#3113.motion(187310631, 27.00000000, 14.19921875) +[2618997.894] {Default Queue} wl_pointer#3145.motion(187310631, 27.00000000, 14.19921875) +[2618997.898] {Default Queue} wl_pointer#3177.motion(187310631, 27.00000000, 14.19921875) +[2618997.902] {Default Queue} wl_pointer#3209.motion(187310631, 27.00000000, 14.19921875) +[2618997.907] {Default Queue} wl_pointer#3241.motion(187310631, 27.00000000, 14.19921875) +[2618997.911] {Default Queue} wl_pointer#3273.motion(187310631, 27.00000000, 14.19921875) +[2618997.916] {Default Queue} wl_pointer#3305.motion(187310631, 27.00000000, 14.19921875) +[2618997.920] {Default Queue} wl_pointer#3337.motion(187310631, 27.00000000, 14.19921875) +[2618997.924] {Default Queue} wl_pointer#3369.motion(187310631, 27.00000000, 14.19921875) +[2618997.928] {Default Queue} wl_pointer#3401.motion(187310631, 27.00000000, 14.19921875) +[2618997.932] {Default Queue} wl_pointer#3433.motion(187310631, 27.00000000, 14.19921875) +[2618997.937] {Default Queue} wl_pointer#3465.motion(187310631, 27.00000000, 14.19921875) +[2618997.941] {Default Queue} wl_pointer#3497.motion(187310631, 27.00000000, 14.19921875) +[2618997.945] {Default Queue} wl_pointer#3529.motion(187310631, 27.00000000, 14.19921875) +[2618997.949] {Default Queue} wl_pointer#3561.motion(187310631, 27.00000000, 14.19921875) +[2618997.953] {Default Queue} wl_pointer#3593.motion(187310631, 27.00000000, 14.19921875) +[2618997.957] {Default Queue} wl_pointer#3625.motion(187310631, 27.00000000, 14.19921875) +[2618997.961] {Default Queue} wl_pointer#3657.motion(187310631, 27.00000000, 14.19921875) +[2618997.967] {Default Queue} wl_pointer#3695.motion(187310631, 27.00000000, 14.19921875) +[2618997.971] {Default Queue} wl_pointer#24.motion(187310632, 26.60156250, 14.19921875) +[2618997.975] {Default Queue} wl_pointer#81.motion(187310632, 26.60156250, 14.19921875) +[2618997.980] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2618997.985] {Default Queue} wl_pointer#105.motion(187310632, 26.60156250, 14.19921875) +[2618997.989] {Default Queue} wl_pointer#137.motion(187310632, 26.60156250, 14.19921875) +[2618997.993] {Default Queue} wl_pointer#169.motion(187310632, 26.60156250, 14.19921875) +[2618997.997] {Default Queue} wl_pointer#201.motion(187310632, 26.60156250, 14.19921875) +[2618998.001] {Default Queue} wl_pointer#233.motion(187310632, 26.60156250, 14.19921875) +[2618998.006] {Default Queue} wl_pointer#265.motion(187310632, 26.60156250, 14.19921875) +[2618998.010] {Default Queue} wl_pointer#297.motion(187310632, 26.60156250, 14.19921875) +[2618998.014] {Default Queue} wl_pointer#329.motion(187310632, 26.60156250, 14.19921875) +[2618998.018] {Default Queue} wl_pointer#361.motion(187310632, 26.60156250, 14.19921875) +[2618998.022] {Default Queue} wl_pointer#393.motion(187310632, 26.60156250, 14.19921875) +[2618998.026] {Default Queue} wl_pointer#425.motion(187310632, 26.60156250, 14.19921875) +[2618998.031] {Default Queue} wl_pointer#457.motion(187310632, 26.60156250, 14.19921875) +[2618998.035] {Default Queue} wl_pointer#489.motion(187310632, 26.60156250, 14.19921875) +[2618998.039] {Default Queue} wl_pointer#521.motion(187310632, 26.60156250, 14.19921875) +[2618998.043] {Default Queue} wl_pointer#553.motion(187310632, 26.60156250, 14.19921875) +[2618998.047] {Default Queue} wl_pointer#585.motion(187310632, 26.60156250, 14.19921875) +[2618998.051] {Default Queue} wl_pointer#617.motion(187310632, 26.60156250, 14.19921875) +[2618998.055] {Default Queue} wl_pointer#649.motion(187310632, 26.60156250, 14.19921875) +[2618998.059] {Default Queue} wl_pointer#681.motion(187310632, 26.60156250, 14.19921875) +[2618998.064] {Default Queue} wl_pointer#713.motion(187310632, 26.60156250, 14.19921875) +[2618998.068] {Default Queue} wl_pointer#745.motion(187310632, 26.60156250, 14.19921875) +[2618998.072] {Default Queue} wl_pointer#777.motion(187310632, 26.60156250, 14.19921875) +[2618998.076] {Default Queue} wl_pointer#809.motion(187310632, 26.60156250, 14.19921875) +[2618998.084] {Default Queue} wl_pointer#841.motion(187310632, 26.60156250, 14.19921875) +[2618998.089] {Default Queue} wl_pointer#873.motion(187310632, 26.60156250, 14.19921875) +[2618998.093] {Default Queue} wl_pointer#905.motion(187310632, 26.60156250, 14.19921875) +[2618998.098] {Default Queue} wl_pointer#937.motion(187310632, 26.60156250, 14.19921875) +[2618998.102] {Default Queue} wl_pointer#969.motion(187310632, 26.60156250, 14.19921875) +[2618998.106] {Default Queue} wl_pointer#1001.motion(187310632, 26.60156250, 14.19921875) +[2618998.110] {Default Queue} wl_pointer#1033.motion(187310632, 26.60156250, 14.19921875) +[2618998.115] {Default Queue} wl_pointer#1065.motion(187310632, 26.60156250, 14.19921875) +[2618998.119] {Default Queue} wl_pointer#1097.motion(187310632, 26.60156250, 14.19921875) +[2618998.124] {Default Queue} wl_pointer#1129.motion(187310632, 26.60156250, 14.19921875) +[2618998.128] {Default Queue} wl_pointer#1161.motion(187310632, 26.60156250, 14.19921875) +[2618998.132] {Default Queue} wl_pointer#1193.motion(187310632, 26.60156250, 14.19921875) +[2618998.136] {Default Queue} wl_pointer#1225.motion(187310632, 26.60156250, 14.19921875) +[2618998.140] {Default Queue} wl_pointer#1257.motion(187310632, 26.60156250, 14.19921875) +[2618998.144] {Default Queue} wl_pointer#1289.motion(187310632, 26.60156250, 14.19921875) +[2618998.148] {Default Queue} wl_pointer#1321.motion(187310632, 26.60156250, 14.19921875) +[2618998.153] {Default Queue} wl_pointer#1353.motion(187310632, 26.60156250, 14.19921875) +[2618998.157] {Default Queue} wl_pointer#1385.motion(187310632, 26.60156250, 14.19921875) +[2618998.162] {Default Queue} wl_pointer#1417.motion(187310632, 26.60156250, 14.19921875) +[2618998.166] {Default Queue} wl_pointer#1449.motion(187310632, 26.60156250, 14.19921875) +[2618998.170] {Default Queue} wl_pointer#1481.motion(187310632, 26.60156250, 14.19921875) +[2618998.174] {Default Queue} wl_pointer#1513.motion(187310632, 26.60156250, 14.19921875) +[2618998.178] {Default Queue} wl_pointer#1545.motion(187310632, 26.60156250, 14.19921875) +[2618998.182] {Default Queue} wl_pointer#1577.motion(187310632, 26.60156250, 14.19921875) +[2618998.187] {Default Queue} wl_pointer#1609.motion(187310632, 26.60156250, 14.19921875) +[2618998.191] {Default Queue} wl_pointer#1641.motion(187310632, 26.60156250, 14.19921875) +[2618998.195] {Default Queue} wl_pointer#1673.motion(187310632, 26.60156250, 14.19921875) +[2618998.199] {Default Queue} wl_pointer#1705.motion(187310632, 26.60156250, 14.19921875) +[2618998.203] {Default Queue} wl_pointer#1737.motion(187310632, 26.60156250, 14.19921875) +[2618998.208] {Default Queue} wl_pointer#1762.motion(187310632, 26.60156250, 14.19921875) +[2618998.212] {Default Queue} wl_pointer#1801.motion(187310632, 26.60156250, 14.19921875) +[2618998.271] {Default Queue} wl_pointer#1833.motion(187310632, 26.60156250, 14.19921875) +[2618998.277] {Default Queue} wl_pointer#1865.motion(187310632, 26.60156250, 14.19921875) +[2618998.281] {Default Queue} wl_pointer#1897.motion(187310632, 26.60156250, 14.19921875) +[2618998.285] {Default Queue} wl_pointer#1929.motion(187310632, 26.60156250, 14.19921875) +[2618998.289] {Default Queue} wl_pointer#1961.motion(187310632, 26.60156250, 14.19921875) +[2618998.293] {Default Queue} wl_pointer#1993.motion(187310632, 26.60156250, 14.19921875) +[2618998.297] {Default Queue} wl_pointer#2025.motion(187310632, 26.60156250, 14.19921875) +[2618998.302] {Default Queue} wl_pointer#2057.motion(187310632, 26.60156250, 14.19921875) +[2618998.306] {Default Queue} wl_pointer#2089.motion(187310632, 26.60156250, 14.19921875) +[2618998.310] {Default Queue} wl_pointer#2121.motion(187310632, 26.60156250, 14.19921875) +[2618998.314] {Default Queue} wl_pointer#2153.motion(187310632, 26.60156250, 14.19921875) +[2618998.318] {Default Queue} wl_pointer#2185.motion(187310632, 26.60156250, 14.19921875) +[2618998.322] {Default Queue} wl_pointer#2217.motion(187310632, 26.60156250, 14.19921875) +[2618998.327] {Default Queue} wl_pointer#2249.motion(187310632, 26.60156250, 14.19921875) +[2618998.331] {Default Queue} wl_pointer#2281.motion(187310632, 26.60156250, 14.19921875) +[2618998.338] {Default Queue} wl_pointer#2313.motion(187310632, 26.60156250, 14.19921875) +[2618998.343] {Default Queue} wl_pointer#2345.motion(187310632, 26.60156250, 14.19921875) +[2618998.348] {Default Queue} wl_pointer#2377.motion(187310632, 26.60156250, 14.19921875) +[2618998.352] {Default Queue} wl_pointer#2409.motion(187310632, 26.60156250, 14.19921875) +[2618998.356] {Default Queue} wl_pointer#2441.motion(187310632, 26.60156250, 14.19921875) +[2618998.360] {Default Queue} wl_pointer#2473.motion(187310632, 26.60156250, 14.19921875) +[2618998.364] {Default Queue} wl_pointer#2498.motion(187310632, 26.60156250, 14.19921875) +[2618998.375] {Default Queue} -> wl_buffer#2428.destroy() +[2618998.382] {Default Queue} -> wl_buffer#2429.destroy() +[2618998.387] {Default Queue} -> wl_shm_pool#2140.destroy() +[2618998.398] {Default Queue} -> wl_shm_pool#2427.destroy() +[2618998.406] {Default Queue} -> wl_surface#2430.destroy() +[2618998.450] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3324, fd 581, 640) +[2618998.459] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3323, fd 582, 640) +[2618998.465] {Default Queue} -> wl_shm_pool#3324.create_buffer(new id wl_buffer#3326, 0, 10, 16, 40, 0) +[2618998.471] {Default Queue} -> wl_shm_pool#3323.create_buffer(new id wl_buffer#3325, 0, 10, 16, 40, 0) +[2618998.480] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3131) +[2618998.484] {Default Queue} -> wl_surface#3131.attach(wl_buffer#3326, 0, 0) +[2618998.490] {Default Queue} -> wl_surface#3131.commit() +[2618998.496] {Default Queue} -> wl_surface#3131.attach(wl_buffer#3326, 0, 0) +[2618998.502] {Default Queue} -> wl_surface#3131.commit() +[2618998.507] {Default Queue} wl_pointer#2537.motion(187310632, 26.60156250, 14.19921875) +[2618998.513] {Default Queue} wl_pointer#2569.motion(187310632, 26.60156250, 14.19921875) +[2618998.517] {Default Queue} wl_pointer#2601.motion(187310632, 26.60156250, 14.19921875) +[2618998.521] {Default Queue} wl_pointer#2633.motion(187310632, 26.60156250, 14.19921875) +[2618998.525] {Default Queue} wl_pointer#2665.motion(187310632, 26.60156250, 14.19921875) +[2618998.530] {Default Queue} wl_pointer#2697.motion(187310632, 26.60156250, 14.19921875) +[2618998.542] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 69) +[2618998.546] {Default Queue} -> wl_region#415.add(-480, -49, 482, 69) +[2618998.551] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618998.555] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618998.653] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 69) +[2618998.659] {Default Queue} -> wl_region#415.add(-480, -49, 482, 69) +[2618998.663] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618998.667] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618998.674] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2618998.679] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2618998.743] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 69) +[2618998.748] {Default Queue} -> wl_region#415.add(-480, -49, 482, 69) +[2618998.753] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2618998.757] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2618998.762] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2618998.766] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2618998.771] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) +[2618998.775] {Default Queue} -> wl_surface#391.commit() +[2618998.779] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) +[2618998.783] {Default Queue} -> wl_surface#391.commit() +[2618998.789] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) +[2618998.793] {Default Queue} -> wl_surface#391.commit() +[2618998.800] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) +[2618998.804] {Default Queue} -> wl_surface#519.commit() +[2618999.867] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) +[2618999.879] {Default Queue} -> wl_surface#519.commit() +[2618999.891] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) +[2618999.895] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) +[2618999.900] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618999.903] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618999.911] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) +[2618999.915] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) +[2618999.919] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618999.923] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618999.931] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) +[2618999.937] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) +[2618999.941] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618999.945] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618999.952] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) +[2618999.957] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) +[2618999.961] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618999.965] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618999.970] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) +[2618999.974] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) +[2618999.978] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618999.982] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2618999.988] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) +[2618999.992] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) +[2618999.996] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2618999.999] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2619000.004] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) +[2619000.009] {Default Queue} -> wl_surface#519.commit() +[2619000.012] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) +[2619000.016] {Default Queue} -> wl_surface#519.commit() +[2619000.022] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) +[2619000.026] {Default Queue} -> wl_surface#519.commit() +[2619000.032] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) +[2619000.036] {Default Queue} -> wl_surface#551.commit() +[2619001.097] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) +[2619001.102] {Default Queue} -> wl_surface#551.commit() +[2619001.108] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) +[2619001.113] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) +[2619001.117] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2619001.120] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2619001.126] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) +[2619001.130] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) +[2619001.134] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2619001.138] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2619001.145] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) +[2619001.149] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) +[2619001.153] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2619001.156] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2619001.161] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) +[2619001.166] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) +[2619001.169] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2619001.173] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2619001.178] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) +[2619001.182] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) +[2619001.186] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2619001.190] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2619001.199] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) +[2619001.205] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) +[2619001.209] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2619001.213] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2619001.218] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) +[2619001.222] {Default Queue} -> wl_surface#551.commit() +[2619001.226] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) +[2619001.230] {Default Queue} -> wl_surface#551.commit() +[2619001.235] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) +[2619001.239] {Default Queue} -> wl_surface#551.commit() +[2619001.244] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) +[2619001.248] {Default Queue} -> wl_surface#583.commit() +[2619002.309] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) +[2619002.315] {Default Queue} -> wl_surface#583.commit() +[2619002.322] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) +[2619002.327] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) +[2619002.331] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2619002.335] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2619002.341] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) +[2619002.345] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) +[2619002.349] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2619002.353] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2619002.359] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) +[2619002.364] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) +[2619002.368] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2619002.371] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2619002.377] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) +[2619002.381] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) +[2619002.385] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2619002.389] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2619002.393] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) +[2619002.397] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) +[2619002.401] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2619002.405] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2619002.409] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) +[2619002.413] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) +[2619002.417] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2619002.421] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2619002.426] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) +[2619002.429] {Default Queue} -> wl_surface#583.commit() +[2619002.433] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) +[2619002.437] {Default Queue} -> wl_surface#583.commit() +[2619002.444] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) +[2619002.455] {Default Queue} -> wl_surface#583.commit() +[2619002.465] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) +[2619002.471] {Default Queue} -> wl_surface#615.commit() +[2619002.692] {Default Queue} wl_pointer#2729.motion(187310632, 26.60156250, 14.19921875) +[2619002.700] {Default Queue} wl_pointer#2761.motion(187310632, 26.60156250, 14.19921875) +[2619002.706] {Default Queue} wl_pointer#2793.motion(187310632, 26.60156250, 14.19921875) +[2619002.710] {Default Queue} wl_pointer#2825.motion(187310632, 26.60156250, 14.19921875) +[2619002.714] {Default Queue} wl_pointer#2857.motion(187310632, 26.60156250, 14.19921875) +[2619002.718] {Default Queue} wl_pointer#2889.motion(187310632, 26.60156250, 14.19921875) +[2619002.722] {Default Queue} wl_pointer#2921.motion(187310632, 26.60156250, 14.19921875) +[2619002.726] {Default Queue} wl_pointer#2953.motion(187310632, 26.60156250, 14.19921875) +[2619002.735] {Default Queue} wl_pointer#2985.motion(187310632, 26.60156250, 14.19921875) +[2619002.743] {Default Queue} wl_pointer#3017.motion(187310632, 26.60156250, 14.19921875) +[2619002.747] {Default Queue} wl_pointer#3049.motion(187310632, 26.60156250, 14.19921875) +[2619002.751] {Default Queue} wl_pointer#3081.motion(187310632, 26.60156250, 14.19921875) +[2619002.755] {Default Queue} wl_pointer#3113.motion(187310632, 26.60156250, 14.19921875) +[2619002.759] {Default Queue} wl_pointer#3145.motion(187310632, 26.60156250, 14.19921875) +[2619002.764] {Default Queue} wl_pointer#3177.motion(187310632, 26.60156250, 14.19921875) +[2619002.768] {Default Queue} wl_pointer#3209.motion(187310632, 26.60156250, 14.19921875) +[2619002.772] {Default Queue} wl_pointer#3241.motion(187310632, 26.60156250, 14.19921875) +[2619002.776] {Default Queue} wl_pointer#3273.motion(187310632, 26.60156250, 14.19921875) +[2619002.780] {Default Queue} wl_pointer#3305.motion(187310632, 26.60156250, 14.19921875) +[2619002.784] {Default Queue} wl_pointer#3337.motion(187310632, 26.60156250, 14.19921875) +[2619002.788] {Default Queue} wl_pointer#3369.motion(187310632, 26.60156250, 14.19921875) +[2619002.793] {Default Queue} wl_pointer#3401.motion(187310632, 26.60156250, 14.19921875) +[2619002.797] {Default Queue} wl_pointer#3433.motion(187310632, 26.60156250, 14.19921875) +[2619002.801] {Default Queue} wl_pointer#3465.motion(187310632, 26.60156250, 14.19921875) +[2619002.806] {Default Queue} wl_pointer#3497.motion(187310632, 26.60156250, 14.19921875) +[2619002.810] {Default Queue} wl_pointer#3529.motion(187310632, 26.60156250, 14.19921875) +[2619002.814] {Default Queue} wl_pointer#3561.motion(187310632, 26.60156250, 14.19921875) +[2619002.818] {Default Queue} wl_pointer#3593.motion(187310632, 26.60156250, 14.19921875) +[2619002.822] {Default Queue} wl_pointer#3625.motion(187310632, 26.60156250, 14.19921875) +[2619002.826] {Default Queue} wl_pointer#3657.motion(187310632, 26.60156250, 14.19921875) +[2619002.830] {Default Queue} wl_pointer#3695.motion(187310632, 26.60156250, 14.19921875) +[2619002.839] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) +[2619002.845] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) +[2619002.849] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2619002.854] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2619002.866] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) +[2619002.871] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) +[2619002.875] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2619002.901] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2619002.915] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) +[2619002.921] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) +[2619002.927] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2619002.931] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2619002.938] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) +[2619002.942] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) +[2619002.947] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2619002.951] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2619002.956] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) +[2619002.961] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) +[2619002.965] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2619002.969] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2619002.974] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) +[2619002.979] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) +[2619002.983] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2619002.987] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2619002.992] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) +[2619002.997] {Default Queue} -> wl_surface#615.commit() +[2619003.001] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) +[2619003.010] {Default Queue} -> wl_surface#615.commit() +[2619003.020] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) +[2619003.026] {Default Queue} -> wl_surface#615.commit() +[2619003.032] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) +[2619003.036] {Default Queue} -> wl_surface#647.commit() +[2619004.101] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) +[2619004.107] {Default Queue} -> wl_surface#647.commit() +[2619004.115] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) +[2619004.119] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) +[2619004.123] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2619004.128] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2619004.134] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) +[2619004.138] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) +[2619004.142] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2619004.146] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2619004.153] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) +[2619004.157] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) +[2619004.162] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2619004.165] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2619004.171] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) +[2619004.175] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) +[2619004.179] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2619004.182] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2619004.187] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) +[2619004.192] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) +[2619004.196] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2619004.199] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2619004.204] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) +[2619004.208] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) +[2619004.212] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2619004.216] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2619004.221] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) +[2619004.225] {Default Queue} -> wl_surface#647.commit() +[2619004.229] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) +[2619004.233] {Default Queue} -> wl_surface#647.commit() +[2619004.238] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) +[2619004.242] {Default Queue} -> wl_surface#647.commit() +[2619004.248] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) +[2619004.252] {Default Queue} -> wl_surface#487.commit() +[2619005.315] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) +[2619005.320] {Default Queue} -> wl_surface#487.commit() +[2619005.326] {Default Queue} -> wl_region#511.subtract(0, 0, 484, 73) +[2619005.330] {Default Queue} -> wl_region#511.add(-483, -72, 484, 73) +[2619005.334] {Default Queue} -> wl_surface#487.set_opaque_region(wl_region#512) +[2619005.338] {Default Queue} -> wl_surface#487.set_input_region(wl_region#511) +[2619005.342] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) +[2619005.346] {Default Queue} -> wl_surface#487.commit() +[2619005.350] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) +[2619005.354] {Default Queue} -> wl_surface#487.commit() +[2619005.360] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) +[2619005.364] {Default Queue} -> wl_surface#487.commit() +[2619005.369] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) +[2619005.373] {Default Queue} -> wl_surface#711.commit() +[2619006.433] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) +[2619006.439] {Default Queue} -> wl_surface#711.commit() +[2619006.446] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 74) +[2619006.450] {Default Queue} -> wl_region#735.add(-484, -73, 467, 74) +[2619006.457] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2619006.463] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2619006.571] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 74) +[2619006.577] {Default Queue} -> wl_region#735.add(-484, -73, 467, 74) +[2619006.581] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2619006.585] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2619006.590] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2619006.595] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2619006.678] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 74) +[2619006.685] {Default Queue} -> wl_region#735.add(-484, -73, 467, 74) +[2619006.692] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2619006.698] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2619006.705] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2619006.711] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2619006.718] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) +[2619006.724] {Default Queue} -> wl_surface#711.commit() +[2619006.730] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) +[2619006.736] {Default Queue} -> wl_surface#711.commit() +[2619006.744] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) +[2619006.750] {Default Queue} -> wl_surface#711.commit() +[2619006.758] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) +[2619006.764] {Default Queue} -> wl_surface#743.commit() +[2619007.563] {Display Queue} wl_display#1.delete_id(3357) +[2619007.574] {Display Queue} wl_display#1.delete_id(3358) +[2619007.580] {Display Queue} wl_display#1.delete_id(3355) +[2619007.586] {Display Queue} wl_display#1.delete_id(3356) +[2619007.592] {Display Queue} wl_display#1.delete_id(3261) +[2619007.597] {Display Queue} wl_display#1.delete_id(3262) +[2619007.603] {Display Queue} wl_display#1.delete_id(3259) +[2619007.608] {Display Queue} wl_display#1.delete_id(3260) +[2619007.614] {Display Queue} wl_display#1.delete_id(3581) +[2619007.620] {Display Queue} wl_display#1.delete_id(3582) +[2619007.625] {Display Queue} wl_display#1.delete_id(3579) +[2619007.631] {Display Queue} wl_display#1.delete_id(3580) +[2619007.636] {Display Queue} wl_display#1.delete_id(2686) +[2619007.640] {Display Queue} wl_display#1.delete_id(2685) +[2619007.643] {Display Queue} wl_display#1.delete_id(2684) +[2619007.647] {Display Queue} wl_display#1.delete_id(2683) +[2619007.651] {Display Queue} wl_display#1.delete_id(2780) +[2619007.655] {Display Queue} wl_display#1.delete_id(2846) +[2619007.659] {Display Queue} wl_display#1.delete_id(2845) +[2619007.663] {Display Queue} wl_display#1.delete_id(2844) +[2619007.666] {Display Queue} wl_display#1.delete_id(2843) +[2619007.670] {Display Queue} wl_display#1.delete_id(2940) +[2619007.674] {Display Queue} wl_display#1.delete_id(3102) +[2619007.678] {Display Queue} wl_display#1.delete_id(3101) +[2619007.682] {Display Queue} wl_display#1.delete_id(3100) +[2619007.685] {Display Queue} wl_display#1.delete_id(3099) +[2619007.689] {Display Queue} wl_display#1.delete_id(1276) +[2619007.693] {Display Queue} wl_display#1.delete_id(3613) +[2619007.696] {Display Queue} wl_display#1.delete_id(3614) +[2619007.700] {Display Queue} wl_display#1.delete_id(3611) +[2619007.704] {Display Queue} wl_display#1.delete_id(3612) +[2619007.708] {Display Queue} wl_display#1.delete_id(3645) +[2619007.712] {Display Queue} wl_display#1.delete_id(3646) +[2619007.715] {Display Queue} wl_display#1.delete_id(3643) +[2619007.719] {Display Queue} wl_display#1.delete_id(3644) +[2619007.723] {Default Queue} wl_pointer#24.motion(187310641, 26.19921875, 13.80078125) +[2619007.727] {Default Queue} wl_pointer#81.motion(187310641, 26.19921875, 13.80078125) +[2619007.733] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619007.737] {Default Queue} wl_pointer#105.motion(187310641, 26.19921875, 13.80078125) +[2619007.742] {Default Queue} wl_pointer#137.motion(187310641, 26.19921875, 13.80078125) +[2619007.751] {Default Queue} wl_pointer#169.motion(187310641, 26.19921875, 13.80078125) +[2619007.757] {Default Queue} wl_pointer#201.motion(187310641, 26.19921875, 13.80078125) +[2619007.762] {Default Queue} wl_pointer#233.motion(187310641, 26.19921875, 13.80078125) +[2619007.766] {Default Queue} wl_pointer#265.motion(187310641, 26.19921875, 13.80078125) +[2619007.770] {Default Queue} wl_pointer#297.motion(187310641, 26.19921875, 13.80078125) +[2619007.774] {Default Queue} wl_pointer#329.motion(187310641, 26.19921875, 13.80078125) +[2619007.778] {Default Queue} wl_pointer#361.motion(187310641, 26.19921875, 13.80078125) +[2619007.782] {Default Queue} wl_pointer#393.motion(187310641, 26.19921875, 13.80078125) +[2619007.786] {Default Queue} wl_pointer#425.motion(187310641, 26.19921875, 13.80078125) +[2619007.790] {Default Queue} wl_pointer#457.motion(187310641, 26.19921875, 13.80078125) +[2619007.794] {Default Queue} wl_pointer#489.motion(187310641, 26.19921875, 13.80078125) +[2619007.798] {Default Queue} wl_pointer#521.motion(187310641, 26.19921875, 13.80078125) +[2619007.802] {Default Queue} wl_pointer#553.motion(187310641, 26.19921875, 13.80078125) +[2619007.806] {Default Queue} wl_pointer#585.motion(187310641, 26.19921875, 13.80078125) +[2619007.810] {Default Queue} wl_pointer#617.motion(187310641, 26.19921875, 13.80078125) +[2619007.815] {Default Queue} wl_pointer#649.motion(187310641, 26.19921875, 13.80078125) +[2619007.818] {Default Queue} wl_pointer#681.motion(187310641, 26.19921875, 13.80078125) +[2619007.822] {Default Queue} wl_pointer#713.motion(187310641, 26.19921875, 13.80078125) +[2619007.827] {Default Queue} wl_pointer#745.motion(187310641, 26.19921875, 13.80078125) +[2619007.831] {Default Queue} wl_pointer#777.motion(187310641, 26.19921875, 13.80078125) +[2619007.835] {Default Queue} wl_pointer#809.motion(187310641, 26.19921875, 13.80078125) +[2619007.839] {Default Queue} wl_pointer#841.motion(187310641, 26.19921875, 13.80078125) +[2619007.843] {Default Queue} wl_pointer#873.motion(187310641, 26.19921875, 13.80078125) +[2619007.847] {Default Queue} wl_pointer#905.motion(187310641, 26.19921875, 13.80078125) +[2619007.852] {Default Queue} wl_pointer#937.motion(187310641, 26.19921875, 13.80078125) +[2619007.856] {Default Queue} wl_pointer#969.motion(187310641, 26.19921875, 13.80078125) +[2619007.867] {Default Queue} wl_pointer#1001.motion(187310641, 26.19921875, 13.80078125) +[2619007.871] {Default Queue} wl_pointer#1033.motion(187310641, 26.19921875, 13.80078125) +[2619007.876] {Default Queue} wl_pointer#1065.motion(187310641, 26.19921875, 13.80078125) +[2619007.880] {Default Queue} wl_pointer#1097.motion(187310641, 26.19921875, 13.80078125) +[2619007.884] {Default Queue} wl_pointer#1129.motion(187310641, 26.19921875, 13.80078125) +[2619007.888] {Default Queue} wl_pointer#1161.motion(187310641, 26.19921875, 13.80078125) +[2619007.892] {Default Queue} wl_pointer#1193.motion(187310641, 26.19921875, 13.80078125) +[2619007.896] {Default Queue} wl_pointer#1225.motion(187310641, 26.19921875, 13.80078125) +[2619007.901] {Default Queue} wl_pointer#1257.motion(187310641, 26.19921875, 13.80078125) +[2619007.904] {Default Queue} wl_pointer#1289.motion(187310641, 26.19921875, 13.80078125) +[2619007.909] {Default Queue} wl_pointer#1321.motion(187310641, 26.19921875, 13.80078125) +[2619007.913] {Default Queue} wl_pointer#1353.motion(187310641, 26.19921875, 13.80078125) +[2619007.917] {Default Queue} wl_pointer#1385.motion(187310641, 26.19921875, 13.80078125) +[2619007.921] {Default Queue} wl_pointer#1417.motion(187310641, 26.19921875, 13.80078125) +[2619007.925] {Default Queue} wl_pointer#1449.motion(187310641, 26.19921875, 13.80078125) +[2619007.929] {Default Queue} wl_pointer#1481.motion(187310641, 26.19921875, 13.80078125) +[2619007.934] {Default Queue} wl_pointer#1513.motion(187310641, 26.19921875, 13.80078125) +[2619007.938] {Default Queue} wl_pointer#1545.motion(187310641, 26.19921875, 13.80078125) +[2619007.942] {Default Queue} wl_pointer#1577.motion(187310641, 26.19921875, 13.80078125) +[2619007.946] {Default Queue} wl_pointer#1609.motion(187310641, 26.19921875, 13.80078125) +[2619007.954] {Default Queue} wl_pointer#1641.motion(187310641, 26.19921875, 13.80078125) +[2619007.959] {Default Queue} wl_pointer#1673.motion(187310641, 26.19921875, 13.80078125) +[2619007.963] {Default Queue} wl_pointer#1705.motion(187310641, 26.19921875, 13.80078125) +[2619007.968] {Default Queue} wl_pointer#1737.motion(187310641, 26.19921875, 13.80078125) +[2619007.972] {Default Queue} wl_pointer#1762.motion(187310641, 26.19921875, 13.80078125) +[2619007.976] {Default Queue} wl_pointer#1801.motion(187310641, 26.19921875, 13.80078125) +[2619007.980] {Default Queue} wl_pointer#1833.motion(187310641, 26.19921875, 13.80078125) +[2619007.984] {Default Queue} wl_pointer#1865.motion(187310641, 26.19921875, 13.80078125) +[2619007.988] {Default Queue} wl_pointer#1897.motion(187310641, 26.19921875, 13.80078125) +[2619007.992] {Default Queue} wl_pointer#1929.motion(187310641, 26.19921875, 13.80078125) +[2619007.997] {Default Queue} wl_pointer#1961.motion(187310641, 26.19921875, 13.80078125) +[2619008.001] {Default Queue} wl_pointer#1993.motion(187310641, 26.19921875, 13.80078125) +[2619008.005] {Default Queue} wl_pointer#2025.motion(187310641, 26.19921875, 13.80078125) +[2619008.009] {Default Queue} wl_pointer#2057.motion(187310641, 26.19921875, 13.80078125) +[2619008.013] {Default Queue} wl_pointer#2089.motion(187310641, 26.19921875, 13.80078125) +[2619008.017] {Default Queue} wl_pointer#2121.motion(187310641, 26.19921875, 13.80078125) +[2619008.021] {Default Queue} wl_pointer#2153.motion(187310641, 26.19921875, 13.80078125) +[2619008.025] {Default Queue} wl_pointer#2185.motion(187310641, 26.19921875, 13.80078125) +[2619008.029] {Default Queue} wl_pointer#2217.motion(187310641, 26.19921875, 13.80078125) +[2619008.033] {Default Queue} wl_pointer#2249.motion(187310641, 26.19921875, 13.80078125) +[2619008.037] {Default Queue} wl_pointer#2281.motion(187310641, 26.19921875, 13.80078125) +[2619008.041] {Default Queue} wl_pointer#2313.motion(187310641, 26.19921875, 13.80078125) +[2619008.046] {Default Queue} wl_pointer#2345.motion(187310641, 26.19921875, 13.80078125) +[2619008.050] {Default Queue} wl_pointer#2377.motion(187310641, 26.19921875, 13.80078125) +[2619008.054] {Default Queue} wl_pointer#2409.motion(187310641, 26.19921875, 13.80078125) +[2619008.058] {Default Queue} wl_pointer#2441.motion(187310641, 26.19921875, 13.80078125) +[2619008.062] {Default Queue} wl_pointer#2473.motion(187310641, 26.19921875, 13.80078125) +[2619008.066] {Default Queue} wl_pointer#2498.motion(187310641, 26.19921875, 13.80078125) +[2619008.081] {Default Queue} -> wl_buffer#3326.destroy() +[2619008.087] {Default Queue} -> wl_buffer#3325.destroy() +[2619008.091] {Default Queue} -> wl_shm_pool#3324.destroy() +[2619008.095] {Default Queue} -> wl_shm_pool#3323.destroy() +[2619008.100] {Default Queue} -> wl_surface#3131.destroy() +[2619008.144] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3644, fd 575, 640) +[2619008.151] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3643, fd 578, 640) +[2619008.156] {Default Queue} -> wl_shm_pool#3644.create_buffer(new id wl_buffer#3646, 0, 10, 16, 40, 0) +[2619008.161] {Default Queue} -> wl_shm_pool#3643.create_buffer(new id wl_buffer#3645, 0, 10, 16, 40, 0) +[2619008.168] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3612) +[2619008.172] {Default Queue} -> wl_surface#3612.attach(wl_buffer#3646, 0, 0) +[2619008.177] {Default Queue} -> wl_surface#3612.commit() +[2619008.182] {Default Queue} -> wl_surface#3612.attach(wl_buffer#3646, 0, 0) +[2619008.186] {Default Queue} -> wl_surface#3612.commit() +[2619008.190] {Default Queue} wl_pointer#2537.motion(187310641, 26.19921875, 13.80078125) +[2619008.194] {Default Queue} wl_pointer#2569.motion(187310641, 26.19921875, 13.80078125) +[2619008.198] {Default Queue} wl_pointer#2601.motion(187310641, 26.19921875, 13.80078125) +[2619008.203] {Default Queue} wl_pointer#2633.motion(187310641, 26.19921875, 13.80078125) +[2619008.207] {Default Queue} wl_pointer#2665.motion(187310641, 26.19921875, 13.80078125) +[2619008.214] {Default Queue} wl_pointer#2697.motion(187310641, 26.19921875, 13.80078125) +[2619008.221] {Default Queue} wl_pointer#2729.motion(187310641, 26.19921875, 13.80078125) +[2619008.226] {Default Queue} wl_pointer#2761.motion(187310641, 26.19921875, 13.80078125) +[2619008.230] {Default Queue} wl_pointer#2793.motion(187310641, 26.19921875, 13.80078125) +[2619008.234] {Default Queue} wl_pointer#2825.motion(187310641, 26.19921875, 13.80078125) +[2619008.239] {Default Queue} wl_pointer#2857.motion(187310641, 26.19921875, 13.80078125) +[2619008.243] {Default Queue} wl_pointer#2889.motion(187310641, 26.19921875, 13.80078125) +[2619008.247] {Default Queue} wl_pointer#2921.motion(187310641, 26.19921875, 13.80078125) +[2619008.251] {Default Queue} wl_pointer#2953.motion(187310641, 26.19921875, 13.80078125) +[2619008.255] {Default Queue} wl_pointer#2985.motion(187310641, 26.19921875, 13.80078125) +[2619008.259] {Default Queue} wl_pointer#3017.motion(187310641, 26.19921875, 13.80078125) +[2619008.264] {Default Queue} wl_pointer#3049.motion(187310641, 26.19921875, 13.80078125) +[2619008.268] {Default Queue} wl_pointer#3081.motion(187310641, 26.19921875, 13.80078125) +[2619008.272] {Default Queue} wl_pointer#3113.motion(187310641, 26.19921875, 13.80078125) +[2619008.276] {Default Queue} wl_pointer#3145.motion(187310641, 26.19921875, 13.80078125) +[2619008.281] {Default Queue} wl_pointer#3177.motion(187310641, 26.19921875, 13.80078125) +[2619008.285] {Default Queue} wl_pointer#3209.motion(187310641, 26.19921875, 13.80078125) +[2619008.289] {Default Queue} wl_pointer#3241.motion(187310641, 26.19921875, 13.80078125) +[2619008.293] {Default Queue} wl_pointer#3273.motion(187310641, 26.19921875, 13.80078125) +[2619008.298] {Default Queue} wl_pointer#3305.motion(187310641, 26.19921875, 13.80078125) +[2619008.302] {Default Queue} wl_pointer#3337.motion(187310641, 26.19921875, 13.80078125) +[2619008.306] {Default Queue} wl_pointer#3369.motion(187310641, 26.19921875, 13.80078125) +[2619008.310] {Default Queue} wl_pointer#3401.motion(187310641, 26.19921875, 13.80078125) +[2619008.314] {Default Queue} wl_pointer#3433.motion(187310641, 26.19921875, 13.80078125) +[2619008.318] {Default Queue} wl_pointer#3465.motion(187310641, 26.19921875, 13.80078125) +[2619008.322] {Default Queue} wl_pointer#3497.motion(187310641, 26.19921875, 13.80078125) +[2619008.327] {Default Queue} wl_pointer#3529.motion(187310641, 26.19921875, 13.80078125) +[2619008.331] {Default Queue} wl_pointer#3561.motion(187310641, 26.19921875, 13.80078125) +[2619008.335] {Default Queue} wl_pointer#3593.motion(187310641, 26.19921875, 13.80078125) +[2619008.339] {Default Queue} wl_pointer#3625.motion(187310641, 26.19921875, 13.80078125) +[2619008.343] {Default Queue} wl_pointer#3657.motion(187310641, 26.19921875, 13.80078125) +[2619008.347] {Default Queue} wl_pointer#3695.motion(187310641, 26.19921875, 13.80078125) +[2619008.351] {Default Queue} wl_pointer#24.motion(187310642, 25.80078125, 13.80078125) +[2619008.355] {Default Queue} wl_pointer#81.motion(187310642, 25.80078125, 13.80078125) +[2619008.360] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619008.365] {Default Queue} wl_pointer#105.motion(187310642, 25.80078125, 13.80078125) +[2619008.369] {Default Queue} wl_pointer#137.motion(187310642, 25.80078125, 13.80078125) +[2619008.373] {Default Queue} wl_pointer#169.motion(187310642, 25.80078125, 13.80078125) +[2619008.377] {Default Queue} wl_pointer#201.motion(187310642, 25.80078125, 13.80078125) +[2619008.382] {Default Queue} wl_pointer#233.motion(187310642, 25.80078125, 13.80078125) +[2619008.386] {Default Queue} wl_pointer#265.motion(187310642, 25.80078125, 13.80078125) +[2619008.390] {Default Queue} wl_pointer#297.motion(187310642, 25.80078125, 13.80078125) +[2619008.394] {Default Queue} wl_pointer#329.motion(187310642, 25.80078125, 13.80078125) +[2619008.399] {Default Queue} wl_pointer#361.motion(187310642, 25.80078125, 13.80078125) +[2619008.403] {Default Queue} wl_pointer#393.motion(187310642, 25.80078125, 13.80078125) +[2619008.407] {Default Queue} wl_pointer#425.motion(187310642, 25.80078125, 13.80078125) +[2619008.414] {Default Queue} wl_pointer#457.motion(187310642, 25.80078125, 13.80078125) +[2619008.419] {Default Queue} wl_pointer#489.motion(187310642, 25.80078125, 13.80078125) +[2619008.424] {Default Queue} wl_pointer#521.motion(187310642, 25.80078125, 13.80078125) +[2619008.428] {Default Queue} wl_pointer#553.motion(187310642, 25.80078125, 13.80078125) +[2619008.432] {Default Queue} wl_pointer#585.motion(187310642, 25.80078125, 13.80078125) +[2619008.437] {Default Queue} wl_pointer#617.motion(187310642, 25.80078125, 13.80078125) +[2619008.441] {Default Queue} wl_pointer#649.motion(187310642, 25.80078125, 13.80078125) +[2619008.446] {Default Queue} wl_pointer#681.motion(187310642, 25.80078125, 13.80078125) +[2619008.450] {Default Queue} wl_pointer#713.motion(187310642, 25.80078125, 13.80078125) +[2619008.454] {Default Queue} wl_pointer#745.motion(187310642, 25.80078125, 13.80078125) +[2619008.458] {Default Queue} wl_pointer#777.motion(187310642, 25.80078125, 13.80078125) +[2619008.462] {Default Queue} wl_pointer#809.motion(187310642, 25.80078125, 13.80078125) +[2619008.466] {Default Queue} wl_pointer#841.motion(187310642, 25.80078125, 13.80078125) +[2619008.470] {Default Queue} wl_pointer#873.motion(187310642, 25.80078125, 13.80078125) +[2619008.474] {Default Queue} wl_pointer#905.motion(187310642, 25.80078125, 13.80078125) +[2619008.478] {Default Queue} wl_pointer#937.motion(187310642, 25.80078125, 13.80078125) +[2619008.482] {Default Queue} wl_pointer#969.motion(187310642, 25.80078125, 13.80078125) +[2619008.486] {Default Queue} wl_pointer#1001.motion(187310642, 25.80078125, 13.80078125) +[2619008.490] {Default Queue} wl_pointer#1033.motion(187310642, 25.80078125, 13.80078125) +[2619008.494] {Default Queue} wl_pointer#1065.motion(187310642, 25.80078125, 13.80078125) +[2619008.498] {Default Queue} wl_pointer#1097.motion(187310642, 25.80078125, 13.80078125) +[2619008.502] {Default Queue} wl_pointer#1129.motion(187310642, 25.80078125, 13.80078125) +[2619008.507] {Default Queue} wl_pointer#1161.motion(187310642, 25.80078125, 13.80078125) +[2619008.511] {Default Queue} wl_pointer#1193.motion(187310642, 25.80078125, 13.80078125) +[2619008.515] {Default Queue} wl_pointer#1225.motion(187310642, 25.80078125, 13.80078125) +[2619008.519] {Default Queue} wl_pointer#1257.motion(187310642, 25.80078125, 13.80078125) +[2619008.523] {Default Queue} wl_pointer#1289.motion(187310642, 25.80078125, 13.80078125) +[2619008.527] {Default Queue} wl_pointer#1321.motion(187310642, 25.80078125, 13.80078125) +[2619008.531] {Default Queue} wl_pointer#1353.motion(187310642, 25.80078125, 13.80078125) +[2619008.535] {Default Queue} wl_pointer#1385.motion(187310642, 25.80078125, 13.80078125) +[2619008.539] {Default Queue} wl_pointer#1417.motion(187310642, 25.80078125, 13.80078125) +[2619008.543] {Default Queue} wl_pointer#1449.motion(187310642, 25.80078125, 13.80078125) +[2619008.547] {Default Queue} wl_pointer#1481.motion(187310642, 25.80078125, 13.80078125) +[2619008.551] {Default Queue} wl_pointer#1513.motion(187310642, 25.80078125, 13.80078125) +[2619008.555] {Default Queue} wl_pointer#1545.motion(187310642, 25.80078125, 13.80078125) +[2619008.560] {Default Queue} wl_pointer#1577.motion(187310642, 25.80078125, 13.80078125) +[2619008.564] {Default Queue} wl_pointer#1609.motion(187310642, 25.80078125, 13.80078125) +[2619008.568] {Default Queue} wl_pointer#1641.motion(187310642, 25.80078125, 13.80078125) +[2619008.572] {Default Queue} wl_pointer#1673.motion(187310642, 25.80078125, 13.80078125) +[2619008.576] {Default Queue} wl_pointer#1705.motion(187310642, 25.80078125, 13.80078125) +[2619008.580] {Default Queue} wl_pointer#1737.motion(187310642, 25.80078125, 13.80078125) +[2619008.585] {Default Queue} wl_pointer#1762.motion(187310642, 25.80078125, 13.80078125) +[2619008.590] {Default Queue} wl_pointer#1801.motion(187310642, 25.80078125, 13.80078125) +[2619008.594] {Default Queue} wl_pointer#1833.motion(187310642, 25.80078125, 13.80078125) +[2619008.599] {Default Queue} wl_pointer#1865.motion(187310642, 25.80078125, 13.80078125) +[2619008.603] {Default Queue} wl_pointer#1897.motion(187310642, 25.80078125, 13.80078125) +[2619008.610] {Default Queue} wl_pointer#1929.motion(187310642, 25.80078125, 13.80078125) +[2619008.616] {Default Queue} wl_pointer#1961.motion(187310642, 25.80078125, 13.80078125) +[2619008.620] {Default Queue} wl_pointer#1993.motion(187310642, 25.80078125, 13.80078125) +[2619008.624] {Default Queue} wl_pointer#2025.motion(187310642, 25.80078125, 13.80078125) +[2619008.628] {Default Queue} wl_pointer#2057.motion(187310642, 25.80078125, 13.80078125) +[2619008.632] {Default Queue} wl_pointer#2089.motion(187310642, 25.80078125, 13.80078125) +[2619008.636] {Default Queue} wl_pointer#2121.motion(187310642, 25.80078125, 13.80078125) +[2619008.640] {Default Queue} wl_pointer#2153.motion(187310642, 25.80078125, 13.80078125) +[2619008.645] {Default Queue} wl_pointer#2185.motion(187310642, 25.80078125, 13.80078125) +[2619008.655] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 74) +[2619008.659] {Default Queue} -> wl_region#767.add(-484, -73, 467, 74) +[2619008.664] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2619008.668] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2619008.764] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 74) +[2619008.770] {Default Queue} -> wl_region#767.add(-484, -73, 467, 74) +[2619008.774] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2619008.778] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2619008.784] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2619008.789] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2619008.869] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 74) +[2619008.874] {Default Queue} -> wl_region#767.add(-484, -73, 467, 74) +[2619008.878] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2619008.882] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2619008.887] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2619008.891] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2619008.896] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) +[2619008.900] {Default Queue} -> wl_surface#743.commit() +[2619008.904] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) +[2619008.908] {Default Queue} -> wl_surface#743.commit() +[2619008.915] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) +[2619008.918] {Default Queue} -> wl_surface#743.commit() +[2619008.924] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) +[2619008.928] {Default Queue} -> wl_surface#775.commit() +[2619009.993] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) +[2619009.999] {Default Queue} -> wl_surface#775.commit() +[2619010.008] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 74) +[2619010.012] {Default Queue} -> wl_region#799.add(-484, -73, 467, 74) +[2619010.016] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2619010.020] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2619010.108] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 74) +[2619010.113] {Default Queue} -> wl_region#799.add(-484, -73, 467, 74) +[2619010.117] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2619010.121] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2619010.126] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2619010.130] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2619010.200] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 74) +[2619010.205] {Default Queue} -> wl_region#799.add(-484, -73, 467, 74) +[2619010.210] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2619010.214] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2619010.218] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2619010.222] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2619010.227] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) +[2619010.231] {Default Queue} -> wl_surface#775.commit() +[2619010.235] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) +[2619010.241] {Default Queue} -> wl_surface#775.commit() +[2619010.249] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) +[2619010.253] {Default Queue} -> wl_surface#775.commit() +[2619010.258] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) +[2619010.262] {Default Queue} -> wl_surface#807.commit() +[2619011.324] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) +[2619011.329] {Default Queue} -> wl_surface#807.commit() +[2619011.336] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 74) +[2619011.340] {Default Queue} -> wl_region#831.add(-484, -73, 467, 74) +[2619011.344] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2619011.348] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2619011.431] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 74) +[2619011.436] {Default Queue} -> wl_region#831.add(-484, -73, 467, 74) +[2619011.440] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2619011.444] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2619011.449] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2619011.453] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2619011.520] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 74) +[2619011.525] {Default Queue} -> wl_region#831.add(-484, -73, 467, 74) +[2619011.529] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2619011.533] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2619011.538] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2619011.542] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2619011.547] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) +[2619011.551] {Default Queue} -> wl_surface#807.commit() +[2619011.555] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) +[2619011.559] {Default Queue} -> wl_surface#807.commit() +[2619011.564] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) +[2619011.568] {Default Queue} -> wl_surface#807.commit() +[2619011.573] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) +[2619011.577] {Default Queue} -> wl_surface#839.commit() +[2619011.689] {Default Queue} wl_pointer#2217.motion(187310642, 25.80078125, 13.80078125) +[2619011.695] {Default Queue} wl_pointer#2249.motion(187310642, 25.80078125, 13.80078125) +[2619011.700] {Default Queue} wl_pointer#2281.motion(187310642, 25.80078125, 13.80078125) +[2619011.705] {Default Queue} wl_pointer#2313.motion(187310642, 25.80078125, 13.80078125) +[2619011.709] {Default Queue} wl_pointer#2345.motion(187310642, 25.80078125, 13.80078125) +[2619011.713] {Default Queue} wl_pointer#2377.motion(187310642, 25.80078125, 13.80078125) +[2619011.717] {Default Queue} wl_pointer#2409.motion(187310642, 25.80078125, 13.80078125) +[2619011.721] {Default Queue} wl_pointer#2441.motion(187310642, 25.80078125, 13.80078125) +[2619011.725] {Default Queue} wl_pointer#2473.motion(187310642, 25.80078125, 13.80078125) +[2619011.729] {Default Queue} wl_pointer#2498.motion(187310642, 25.80078125, 13.80078125) +[2619011.741] {Default Queue} -> wl_buffer#3646.destroy() +[2619011.746] {Default Queue} -> wl_buffer#3645.destroy() +[2619011.750] {Default Queue} -> wl_shm_pool#3644.destroy() +[2619011.754] {Default Queue} -> wl_shm_pool#3643.destroy() +[2619011.758] {Default Queue} -> wl_surface#3612.destroy() +[2619011.795] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3611, fd 575, 640) +[2619011.801] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3614, fd 578, 640) +[2619011.806] {Default Queue} -> wl_shm_pool#3611.create_buffer(new id wl_buffer#3613, 0, 10, 16, 40, 0) +[2619011.810] {Default Queue} -> wl_shm_pool#3614.create_buffer(new id wl_buffer#1276, 0, 10, 16, 40, 0) +[2619011.817] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3099) +[2619011.821] {Default Queue} -> wl_surface#3099.attach(wl_buffer#3613, 0, 0) +[2619011.825] {Default Queue} -> wl_surface#3099.commit() +[2619011.833] {Default Queue} -> wl_surface#3099.attach(wl_buffer#3613, 0, 0) +[2619011.839] {Default Queue} -> wl_surface#3099.commit() +[2619011.844] {Default Queue} wl_pointer#2537.motion(187310642, 25.80078125, 13.80078125) +[2619011.848] {Default Queue} wl_pointer#2569.motion(187310642, 25.80078125, 13.80078125) +[2619011.852] {Default Queue} wl_pointer#2601.motion(187310642, 25.80078125, 13.80078125) +[2619011.856] {Default Queue} wl_pointer#2633.motion(187310642, 25.80078125, 13.80078125) +[2619011.867] {Default Queue} wl_pointer#2665.motion(187310642, 25.80078125, 13.80078125) +[2619011.871] {Default Queue} wl_pointer#2697.motion(187310642, 25.80078125, 13.80078125) +[2619011.875] {Default Queue} wl_pointer#2729.motion(187310642, 25.80078125, 13.80078125) +[2619011.879] {Default Queue} wl_pointer#2761.motion(187310642, 25.80078125, 13.80078125) +[2619011.884] {Default Queue} wl_pointer#2793.motion(187310642, 25.80078125, 13.80078125) +[2619011.888] {Default Queue} wl_pointer#2825.motion(187310642, 25.80078125, 13.80078125) +[2619011.892] {Default Queue} wl_pointer#2857.motion(187310642, 25.80078125, 13.80078125) +[2619011.896] {Default Queue} wl_pointer#2889.motion(187310642, 25.80078125, 13.80078125) +[2619011.900] {Default Queue} wl_pointer#2921.motion(187310642, 25.80078125, 13.80078125) +[2619011.904] {Default Queue} wl_pointer#2953.motion(187310642, 25.80078125, 13.80078125) +[2619011.908] {Default Queue} wl_pointer#2985.motion(187310642, 25.80078125, 13.80078125) +[2619011.913] {Default Queue} wl_pointer#3017.motion(187310642, 25.80078125, 13.80078125) +[2619011.917] {Default Queue} wl_pointer#3049.motion(187310642, 25.80078125, 13.80078125) +[2619011.921] {Default Queue} wl_pointer#3081.motion(187310642, 25.80078125, 13.80078125) +[2619011.926] {Default Queue} wl_pointer#3113.motion(187310642, 25.80078125, 13.80078125) +[2619011.930] {Default Queue} wl_pointer#3145.motion(187310642, 25.80078125, 13.80078125) +[2619011.934] {Default Queue} wl_pointer#3177.motion(187310642, 25.80078125, 13.80078125) +[2619011.938] {Default Queue} wl_pointer#3209.motion(187310642, 25.80078125, 13.80078125) +[2619011.942] {Default Queue} wl_pointer#3241.motion(187310642, 25.80078125, 13.80078125) +[2619011.946] {Default Queue} wl_pointer#3273.motion(187310642, 25.80078125, 13.80078125) +[2619011.950] {Default Queue} wl_pointer#3305.motion(187310642, 25.80078125, 13.80078125) +[2619011.954] {Default Queue} wl_pointer#3337.motion(187310642, 25.80078125, 13.80078125) +[2619011.959] {Default Queue} wl_pointer#3369.motion(187310642, 25.80078125, 13.80078125) +[2619011.963] {Default Queue} wl_pointer#3401.motion(187310642, 25.80078125, 13.80078125) +[2619011.967] {Default Queue} wl_pointer#3433.motion(187310642, 25.80078125, 13.80078125) +[2619011.971] {Default Queue} wl_pointer#3465.motion(187310642, 25.80078125, 13.80078125) +[2619011.975] {Default Queue} wl_pointer#3497.motion(187310642, 25.80078125, 13.80078125) +[2619011.980] {Default Queue} wl_pointer#3529.motion(187310642, 25.80078125, 13.80078125) +[2619011.984] {Default Queue} wl_pointer#3561.motion(187310642, 25.80078125, 13.80078125) +[2619011.988] {Default Queue} wl_pointer#3593.motion(187310642, 25.80078125, 13.80078125) +[2619011.992] {Default Queue} wl_pointer#3625.motion(187310642, 25.80078125, 13.80078125) +[2619011.996] {Default Queue} wl_pointer#3657.motion(187310642, 25.80078125, 13.80078125) +[2619012.000] {Default Queue} wl_pointer#3695.motion(187310642, 25.80078125, 13.80078125) +[2619012.010] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 74) +[2619012.014] {Default Queue} -> wl_region#863.add(-484, -73, 467, 74) +[2619012.019] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2619012.022] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2619012.114] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 74) +[2619012.119] {Default Queue} -> wl_region#863.add(-484, -73, 467, 74) +[2619012.123] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2619012.127] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2619012.136] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2619012.142] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2619012.211] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 74) +[2619012.216] {Default Queue} -> wl_region#863.add(-484, -73, 467, 74) +[2619012.220] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2619012.224] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2619012.230] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2619012.236] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2619012.243] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) +[2619012.248] {Default Queue} -> wl_surface#839.commit() +[2619012.252] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) +[2619012.256] {Default Queue} -> wl_surface#839.commit() +[2619012.262] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) +[2619012.266] {Default Queue} -> wl_surface#839.commit() +[2619012.272] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) +[2619012.277] {Default Queue} -> wl_surface#679.commit() +[2619013.339] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) +[2619013.346] {Default Queue} -> wl_surface#679.commit() +[2619013.353] {Default Queue} -> wl_region#703.subtract(0, 0, 485, 74) +[2619013.357] {Default Queue} -> wl_region#703.add(-484, -73, 467, 74) +[2619013.361] {Default Queue} -> wl_surface#679.set_opaque_region(wl_region#704) +[2619013.365] {Default Queue} -> wl_surface#679.set_input_region(wl_region#703) +[2619013.370] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) +[2619013.374] {Default Queue} -> wl_surface#679.commit() +[2619013.378] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) +[2619013.382] {Default Queue} -> wl_surface#679.commit() +[2619013.387] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) +[2619013.392] {Default Queue} -> wl_surface#679.commit() +[2619013.397] {Default Queue} -> wl_region#479.subtract(0, 0, 2, 2) +[2619013.402] {Default Queue} -> wl_region#511.subtract(0, 0, 484, 73) +[2619013.406] {Default Queue} -> wl_region#511.add(-483, -72, 484, 73) +[2619013.410] {Default Queue} -> wl_surface#487.set_opaque_region(wl_region#512) +[2619013.414] {Default Queue} -> wl_surface#487.set_input_region(wl_region#511) +[2619013.421] {Default Queue} -> wl_region#703.subtract(0, 0, 485, 74) +[2619013.425] {Default Queue} -> wl_region#703.add(-484, -73, 467, 74) +[2619013.428] {Default Queue} -> wl_surface#679.set_opaque_region(wl_region#704) +[2619013.432] {Default Queue} -> wl_surface#679.set_input_region(wl_region#703) +[2619013.437] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2619013.441] {Default Queue} -> wl_region#479.subtract(0, 0, 485, 54) +[2619013.445] {Default Queue} -> wl_region#479.add(-483, -72, 484, 53) +[2619013.449] {Default Queue} -> wl_surface#455.set_opaque_region(wl_region#480) +[2619013.453] {Default Queue} -> wl_surface#455.set_input_region(wl_region#479) +[2619013.457] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2619013.461] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2619013.465] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2619013.469] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2619013.473] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2619013.476] {Default Queue} -> wl_surface#487.damage(0, 0, 16, 2) +[2619013.481] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2619013.485] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2619013.489] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2619013.493] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2619013.497] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2619013.501] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2619013.505] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2619013.520] {Default Queue} -> wl_buffer#477.destroy() +[2619013.526] {Default Queue} -> wl_buffer#478.destroy() +[2619013.530] {Default Queue} -> wl_shm_pool#475.destroy() +[2619013.537] {Default Queue} -> wl_shm_pool#476.destroy() +[2619013.580] {Default Queue} -> wl_shm#463.create_pool(new id wl_shm_pool#3100, fd 575, 16) +[2619013.586] {Default Queue} -> wl_shm#463.create_pool(new id wl_shm_pool#3101, fd 578, 16) +[2619013.591] {Default Queue} -> wl_shm_pool#3100.create_buffer(new id wl_buffer#3102, 0, 2, 2, 8, 0) +[2619013.595] {Default Queue} -> wl_shm_pool#3101.create_buffer(new id wl_buffer#2940, 0, 2, 2, 8, 0) +[2619013.602] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) +[2619013.606] {Default Queue} -> wl_surface#455.commit() +[2619013.611] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) +[2619013.615] {Default Queue} -> wl_surface#455.commit() +[2619013.622] {Default Queue} -> wl_region#479.subtract(0, 0, 485, 74) +[2619013.626] {Default Queue} -> wl_region#479.add(-483, -72, 484, 73) +[2619013.630] {Default Queue} -> wl_surface#455.set_opaque_region(wl_region#480) +[2619013.634] {Default Queue} -> wl_surface#455.set_input_region(wl_region#479) +[2619013.639] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) +[2619013.643] {Default Queue} -> wl_surface#455.commit() +[2619013.648] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) +[2619013.653] {Default Queue} -> wl_surface#455.commit() +[2619014.716] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) +[2619014.722] {Default Queue} -> wl_surface#455.commit() +[2619014.727] {Default Queue} -> wl_region#479.subtract(0, 0, 485, 74) +[2619014.731] {Default Queue} -> wl_region#479.add(-483, -72, 484, 73) +[2619014.735] {Default Queue} -> wl_surface#455.set_opaque_region(wl_region#480) +[2619014.739] {Default Queue} -> wl_surface#455.set_input_region(wl_region#479) +[2619014.743] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) +[2619014.747] {Default Queue} -> wl_surface#455.commit() +[2619014.751] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) +[2619014.755] {Default Queue} -> wl_surface#455.commit() +[2619014.760] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) +[2619014.764] {Default Queue} -> wl_surface#455.commit() +[2619014.770] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) +[2619014.774] {Default Queue} -> wl_surface#423.commit() +[2619015.835] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) +[2619015.840] {Default Queue} -> wl_surface#423.commit() +[2619015.846] {Default Queue} -> wl_region#447.subtract(0, 0, 485, 74) +[2619015.850] {Default Queue} -> wl_region#447.add(-483, -52, 485, 54) +[2619015.854] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) +[2619015.858] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) +[2619015.867] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) +[2619015.870] {Default Queue} -> wl_surface#423.commit() +[2619015.874] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) +[2619015.878] {Default Queue} -> wl_surface#423.commit() +[2619015.883] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) +[2619015.887] {Default Queue} -> wl_surface#423.commit() +[2619015.891] {Default Queue} -> wl_region#383.subtract(0, 0, 109, 161) +[2619015.898] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 69) +[2619015.902] {Default Queue} -> wl_region#415.add(-480, -49, 482, 69) +[2619015.906] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2619015.910] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2619015.986] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 69) +[2619015.991] {Default Queue} -> wl_region#415.add(-480, -49, 482, 69) +[2619015.995] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2619015.999] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2619016.006] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2619016.010] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2619016.069] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 69) +[2619016.074] {Default Queue} -> wl_region#415.add(-480, -49, 482, 69) +[2619016.082] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2619016.088] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2619016.094] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2619016.098] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2619016.103] {Default Queue} -> wl_region#447.subtract(0, 0, 485, 74) +[2619016.108] {Default Queue} -> wl_region#447.add(-483, -52, 485, 54) +[2619016.112] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) +[2619016.116] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) +[2619016.121] {Default Queue} -> wl_surface#359.damage(0, 0, 109, 161) +[2619016.125] {Default Queue} -> wl_region#383.subtract(0, 0, 592, 213) +[2619016.129] {Default Queue} -> wl_region#383.add(-480, -49, 589, 210) +[2619016.133] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) +[2619016.137] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) +[2619016.140] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2619016.145] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) +[2619016.149] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) +[2619016.153] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) +[2619016.157] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) +[2619016.161] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) +[2619016.165] {Default Queue} -> wl_surface#487.damage(0, 0, 16, 2) +[2619016.169] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2619016.173] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2619016.177] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2619016.181] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2619016.185] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2619016.189] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) +[2619016.193] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) +[2619016.197] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) +[2619016.201] {Default Queue} -> wl_surface#359.damage(0, 0, 109, 161) +[2619016.214] {Default Queue} -> wl_buffer#190.destroy() +[2619016.219] {Default Queue} -> wl_buffer#189.destroy() +[2619016.223] {Default Queue} -> wl_shm_pool#188.destroy() +[2619016.227] {Default Queue} -> wl_shm_pool#187.destroy() +[2619016.308] {Default Queue} -> wl_shm#367.create_pool(new id wl_shm_pool#2843, fd 575, 70196) +[2619016.315] {Default Queue} -> wl_shm#367.create_pool(new id wl_shm_pool#2844, fd 578, 70196) +[2619016.319] {Default Queue} -> wl_shm_pool#2843.create_buffer(new id wl_buffer#2845, 0, 109, 161, 436, 0) +[2619016.324] {Default Queue} -> wl_shm_pool#2844.create_buffer(new id wl_buffer#2846, 0, 109, 161, 436, 0) +[2619016.345] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) +[2619016.350] {Default Queue} -> wl_surface#359.commit() +[2619016.371] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) +[2619016.375] {Default Queue} -> wl_surface#359.commit() +[2619016.383] {Default Queue} -> wl_region#383.subtract(0, 0, 592, 213) +[2619016.388] {Default Queue} -> wl_region#383.add(-480, -49, 589, 210) +[2619016.392] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) +[2619016.396] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) +[2619016.403] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) +[2619016.407] {Default Queue} -> wl_surface#359.commit() +[2619016.414] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) +[2619016.420] {Default Queue} -> wl_surface#359.commit() +[2619017.484] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) +[2619017.489] {Default Queue} -> wl_surface#359.commit() +[2619017.496] {Default Queue} -> wl_region#383.subtract(0, 0, 592, 213) +[2619017.500] {Default Queue} -> wl_region#383.add(-480, -49, 589, 210) +[2619017.504] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) +[2619017.508] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) +[2619017.514] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) +[2619017.522] {Default Queue} -> wl_surface#359.commit() +[2619017.530] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) +[2619017.534] {Default Queue} -> wl_surface#359.commit() +[2619017.540] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) +[2619017.544] {Default Queue} -> wl_surface#359.commit() +[2619017.556] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) +[2619017.561] {Default Queue} -> wl_surface#327.commit() +[2619018.625] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) +[2619018.630] {Default Queue} -> wl_surface#327.commit() +[2619018.644] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) +[2619018.649] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) +[2619018.653] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2619018.657] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2619018.665] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) +[2619018.669] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) +[2619018.674] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2619018.678] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2619018.684] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) +[2619018.688] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) +[2619018.692] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2619018.695] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2619018.701] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) +[2619018.705] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) +[2619018.709] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2619018.713] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2619018.720] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) +[2619018.724] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) +[2619018.728] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) +[2619018.732] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) +[2619018.739] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) +[2619018.743] {Default Queue} -> wl_surface#327.commit() +[2619018.748] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) +[2619018.752] {Default Queue} -> wl_surface#327.commit() +[2619018.758] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) +[2619018.762] {Default Queue} -> wl_surface#327.commit() +[2619018.810] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) +[2619018.815] {Default Queue} -> wl_surface#103.commit() +[2619019.873] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) +[2619019.880] {Default Queue} -> wl_surface#103.commit() +[2619019.948] {Default Queue} -> wl_region#127.subtract(0, 0, 576, 167) +[2619019.965] {Default Queue} -> wl_region#127.add(0, 0, 576, 167) +[2619019.971] {Default Queue} -> wl_surface#103.set_opaque_region(wl_region#128) +[2619019.975] {Default Queue} -> wl_surface#103.set_input_region(wl_region#127) +[2619020.069] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) +[2619020.075] {Default Queue} -> wl_surface#103.commit() +[2619020.088] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) +[2619020.093] {Default Queue} -> wl_surface#103.commit() +[2619020.109] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) +[2619020.115] {Default Queue} -> wl_surface#103.commit() +[2619020.123] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) +[2619020.127] {Default Queue} -> wl_surface#967.commit() +[2619021.192] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) +[2619021.204] {Default Queue} -> wl_surface#967.commit() +[2619021.217] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 236) +[2619021.222] {Default Queue} -> wl_region#991.add(-20, -216, 22, 236) +[2619021.226] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2619021.231] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2619021.343] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 236) +[2619021.353] {Default Queue} -> wl_region#991.add(-20, -216, 22, 236) +[2619021.357] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2619021.361] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2619021.369] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2619021.375] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2619021.444] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 236) +[2619021.449] {Default Queue} -> wl_region#991.add(-20, -216, 22, 236) +[2619021.453] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2619021.456] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2619021.462] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2619021.466] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2619021.471] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) +[2619021.475] {Default Queue} -> wl_surface#967.commit() +[2619021.479] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) +[2619021.483] {Default Queue} -> wl_surface#967.commit() +[2619021.489] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) +[2619021.493] {Default Queue} -> wl_surface#967.commit() +[2619021.500] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) +[2619021.504] {Default Queue} -> wl_surface#1095.commit() +[2619022.567] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) +[2619022.573] {Default Queue} -> wl_surface#1095.commit() +[2619022.581] {Default Queue} -> wl_region#1119.subtract(0, 0, 24, 240) +[2619022.585] {Default Queue} -> wl_region#1119.add(-23, -239, 24, 240) +[2619022.589] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2619022.593] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2619022.601] {Default Queue} -> wl_region#1119.subtract(0, 0, 24, 240) +[2619022.606] {Default Queue} -> wl_region#1119.add(-23, -239, 24, 240) +[2619022.609] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2619022.613] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2619022.622] {Default Queue} -> wl_region#1119.subtract(0, 0, 24, 240) +[2619022.626] {Default Queue} -> wl_region#1119.add(-23, -239, 24, 240) +[2619022.629] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2619022.633] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2619022.638] {Default Queue} -> wl_region#1119.subtract(0, 0, 24, 240) +[2619022.642] {Default Queue} -> wl_region#1119.add(-23, -239, 24, 240) +[2619022.646] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2619022.649] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2619022.653] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) +[2619022.657] {Default Queue} -> wl_surface#1095.commit() +[2619022.661] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) +[2619022.665] {Default Queue} -> wl_surface#1095.commit() +[2619022.670] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) +[2619022.674] {Default Queue} -> wl_surface#1095.commit() +[2619022.680] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) +[2619022.683] {Default Queue} -> wl_surface#1127.commit() +[2619023.748] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) +[2619023.760] {Default Queue} -> wl_surface#1127.commit() +[2619023.770] {Default Queue} -> wl_region#1151.subtract(0, 0, 24, 240) +[2619023.774] {Default Queue} -> wl_region#1151.add(-23, -239, 24, 240) +[2619023.779] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2619023.782] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2619023.791] {Default Queue} -> wl_region#1151.subtract(0, 0, 24, 240) +[2619023.796] {Default Queue} -> wl_region#1151.add(-23, -239, 24, 240) +[2619023.800] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2619023.808] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2619023.817] {Default Queue} -> wl_region#1151.subtract(0, 0, 24, 240) +[2619023.822] {Default Queue} -> wl_region#1151.add(-23, -239, 24, 240) +[2619023.825] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2619023.829] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2619023.834] {Default Queue} -> wl_region#1151.subtract(0, 0, 24, 240) +[2619023.838] {Default Queue} -> wl_region#1151.add(-23, -239, 24, 240) +[2619023.842] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2619023.846] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2619023.850] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) +[2619023.854] {Default Queue} -> wl_surface#1127.commit() +[2619023.857] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) +[2619023.869] {Default Queue} -> wl_surface#1127.commit() +[2619023.875] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) +[2619023.879] {Default Queue} -> wl_surface#1127.commit() +[2619023.885] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) +[2619023.889] {Default Queue} -> wl_surface#1159.commit() +[2619024.953] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) +[2619024.964] {Default Queue} -> wl_surface#1159.commit() +[2619024.974] {Default Queue} -> wl_region#1183.subtract(0, 0, 24, 240) +[2619024.978] {Default Queue} -> wl_region#1183.add(-23, -239, 24, 240) +[2619024.983] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2619024.987] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2619024.995] {Default Queue} -> wl_region#1183.subtract(0, 0, 24, 240) +[2619025.000] {Default Queue} -> wl_region#1183.add(-23, -239, 24, 240) +[2619025.004] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2619025.007] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2619025.014] {Default Queue} -> wl_region#1183.subtract(0, 0, 24, 240) +[2619025.018] {Default Queue} -> wl_region#1183.add(-23, -239, 24, 240) +[2619025.022] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2619025.025] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2619025.030] {Default Queue} -> wl_region#1183.subtract(0, 0, 24, 240) +[2619025.034] {Default Queue} -> wl_region#1183.add(-23, -239, 24, 240) +[2619025.037] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2619025.041] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2619025.045] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) +[2619025.049] {Default Queue} -> wl_surface#1159.commit() +[2619025.053] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) +[2619025.057] {Default Queue} -> wl_surface#1159.commit() +[2619025.063] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) +[2619025.067] {Default Queue} -> wl_surface#1159.commit() +[2619025.072] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) +[2619025.076] {Default Queue} -> wl_surface#1191.commit() +[2619026.138] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) +[2619026.143] {Default Queue} -> wl_surface#1191.commit() +[2619026.149] {Default Queue} -> wl_region#1215.subtract(0, 0, 24, 240) +[2619026.153] {Default Queue} -> wl_region#1215.add(-23, -239, 24, 240) +[2619026.157] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2619026.161] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2619026.167] {Default Queue} -> wl_region#1215.subtract(0, 0, 24, 240) +[2619026.171] {Default Queue} -> wl_region#1215.add(-23, -239, 24, 240) +[2619026.175] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2619026.179] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2619026.184] {Default Queue} -> wl_region#1215.subtract(0, 0, 24, 240) +[2619026.188] {Default Queue} -> wl_region#1215.add(-23, -239, 24, 240) +[2619026.196] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2619026.202] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2619026.207] {Default Queue} -> wl_region#1215.subtract(0, 0, 24, 240) +[2619026.211] {Default Queue} -> wl_region#1215.add(-23, -239, 24, 240) +[2619026.215] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2619026.218] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2619026.222] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) +[2619026.226] {Default Queue} -> wl_surface#1191.commit() +[2619026.230] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) +[2619026.234] {Default Queue} -> wl_surface#1191.commit() +[2619026.239] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) +[2619026.243] {Default Queue} -> wl_surface#1191.commit() +[2619026.248] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) +[2619026.252] {Default Queue} -> wl_surface#1223.commit() +[2619027.315] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) +[2619027.327] {Default Queue} -> wl_surface#1223.commit() +[2619027.337] {Default Queue} -> wl_region#1247.subtract(0, 0, 24, 240) +[2619027.341] {Default Queue} -> wl_region#1247.add(-23, -239, 24, 240) +[2619027.345] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2619027.349] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2619027.358] {Default Queue} -> wl_region#1247.subtract(0, 0, 24, 240) +[2619027.362] {Default Queue} -> wl_region#1247.add(-23, -239, 24, 240) +[2619027.366] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2619027.370] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2619027.376] {Default Queue} -> wl_region#1247.subtract(0, 0, 24, 240) +[2619027.380] {Default Queue} -> wl_region#1247.add(-23, -239, 24, 240) +[2619027.384] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2619027.387] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2619027.392] {Default Queue} -> wl_region#1247.subtract(0, 0, 24, 240) +[2619027.396] {Default Queue} -> wl_region#1247.add(-23, -239, 24, 240) +[2619027.400] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2619027.403] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2619027.407] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) +[2619027.411] {Default Queue} -> wl_surface#1223.commit() +[2619027.415] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) +[2619027.419] {Default Queue} -> wl_surface#1223.commit() +[2619027.425] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) +[2619027.429] {Default Queue} -> wl_surface#1223.commit() +[2619027.435] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) +[2619027.439] {Default Queue} -> wl_surface#1063.commit() +[2619027.493] {Display Queue} wl_display#1.delete_id(3005) +[2619027.506] {Display Queue} wl_display#1.delete_id(3006) +[2619027.513] {Display Queue} wl_display#1.delete_id(3003) +[2619027.519] {Display Queue} wl_display#1.delete_id(3004) +[2619027.524] {Display Queue} wl_display#1.delete_id(285) +[2619027.530] {Display Queue} wl_display#1.delete_id(286) +[2619027.536] {Display Queue} wl_display#1.delete_id(283) +[2619027.542] {Display Queue} wl_display#1.delete_id(284) +[2619027.548] {Display Queue} wl_display#1.delete_id(3692) +[2619027.554] {Display Queue} wl_display#1.delete_id(3693) +[2619027.559] {Display Queue} wl_display#1.delete_id(3690) +[2619027.565] {Display Queue} wl_display#1.delete_id(3691) +[2619027.570] {Display Queue} wl_display#1.delete_id(1021) +[2619027.576] {Display Queue} wl_display#1.delete_id(1022) +[2619027.582] {Display Queue} wl_display#1.delete_id(1019) +[2619027.587] {Display Queue} wl_display#1.delete_id(1020) +[2619027.593] {Display Queue} wl_display#1.delete_id(2108) +[2619027.599] {Display Queue} wl_display#1.delete_id(3038) +[2619027.604] {Display Queue} wl_display#1.delete_id(3037) +[2619027.616] {Display Queue} wl_display#1.delete_id(3036) +[2619027.626] {Display Queue} wl_display#1.delete_id(3035) +[2619027.632] {Display Queue} wl_display#1.delete_id(3132) +[2619027.638] {Display Queue} wl_display#1.delete_id(2428) +[2619027.643] {Display Queue} wl_display#1.delete_id(2429) +[2619027.649] {Display Queue} wl_display#1.delete_id(2140) +[2619027.654] {Display Queue} wl_display#1.delete_id(2427) +[2619027.660] {Display Queue} wl_display#1.delete_id(2430) +[2619027.666] {Display Queue} wl_display#1.delete_id(3326) +[2619027.671] {Display Queue} wl_display#1.delete_id(3325) +[2619027.677] {Display Queue} wl_display#1.delete_id(3324) +[2619027.683] {Display Queue} wl_display#1.delete_id(3323) +[2619027.688] {Display Queue} wl_display#1.delete_id(3131) +[2619027.695] {Default Queue} wl_pointer#24.motion(187310657, 25.39843750, 13.80078125) +[2619027.702] {Default Queue} wl_pointer#81.motion(187310657, 25.39843750, 13.80078125) +[2619027.710] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619027.717] {Default Queue} wl_pointer#105.motion(187310657, 25.39843750, 13.80078125) +[2619027.724] {Default Queue} wl_pointer#137.motion(187310657, 25.39843750, 13.80078125) +[2619027.730] {Default Queue} wl_pointer#169.motion(187310657, 25.39843750, 13.80078125) +[2619027.737] {Default Queue} wl_pointer#201.motion(187310657, 25.39843750, 13.80078125) +[2619027.743] {Default Queue} wl_pointer#233.motion(187310657, 25.39843750, 13.80078125) +[2619027.749] {Default Queue} wl_pointer#265.motion(187310657, 25.39843750, 13.80078125) +[2619027.755] {Default Queue} wl_pointer#297.motion(187310657, 25.39843750, 13.80078125) +[2619027.762] {Default Queue} wl_pointer#329.motion(187310657, 25.39843750, 13.80078125) +[2619027.768] {Default Queue} wl_pointer#361.motion(187310657, 25.39843750, 13.80078125) +[2619027.774] {Default Queue} wl_pointer#393.motion(187310657, 25.39843750, 13.80078125) +[2619027.780] {Default Queue} wl_pointer#425.motion(187310657, 25.39843750, 13.80078125) +[2619027.786] {Default Queue} wl_pointer#457.motion(187310657, 25.39843750, 13.80078125) +[2619027.792] {Default Queue} wl_pointer#489.motion(187310657, 25.39843750, 13.80078125) +[2619027.798] {Default Queue} wl_pointer#521.motion(187310657, 25.39843750, 13.80078125) +[2619027.804] {Default Queue} wl_pointer#553.motion(187310657, 25.39843750, 13.80078125) +[2619027.810] {Default Queue} wl_pointer#585.motion(187310657, 25.39843750, 13.80078125) +[2619027.816] {Default Queue} wl_pointer#617.motion(187310657, 25.39843750, 13.80078125) +[2619027.822] {Default Queue} wl_pointer#649.motion(187310657, 25.39843750, 13.80078125) +[2619027.828] {Default Queue} wl_pointer#681.motion(187310657, 25.39843750, 13.80078125) +[2619027.834] {Default Queue} wl_pointer#713.motion(187310657, 25.39843750, 13.80078125) +[2619027.840] {Default Queue} wl_pointer#745.motion(187310657, 25.39843750, 13.80078125) +[2619027.846] {Default Queue} wl_pointer#777.motion(187310657, 25.39843750, 13.80078125) +[2619027.852] {Default Queue} wl_pointer#809.motion(187310657, 25.39843750, 13.80078125) +[2619027.858] {Default Queue} wl_pointer#841.motion(187310657, 25.39843750, 13.80078125) +[2619027.873] {Default Queue} wl_pointer#873.motion(187310657, 25.39843750, 13.80078125) +[2619027.879] {Default Queue} wl_pointer#905.motion(187310657, 25.39843750, 13.80078125) +[2619027.885] {Default Queue} wl_pointer#937.motion(187310657, 25.39843750, 13.80078125) +[2619027.892] {Default Queue} wl_pointer#969.motion(187310657, 25.39843750, 13.80078125) +[2619027.898] {Default Queue} wl_pointer#1001.motion(187310657, 25.39843750, 13.80078125) +[2619027.904] {Default Queue} wl_pointer#1033.motion(187310657, 25.39843750, 13.80078125) +[2619027.911] {Default Queue} wl_pointer#1065.motion(187310657, 25.39843750, 13.80078125) +[2619027.917] {Default Queue} wl_pointer#1097.motion(187310657, 25.39843750, 13.80078125) +[2619027.923] {Default Queue} wl_pointer#1129.motion(187310657, 25.39843750, 13.80078125) +[2619027.929] {Default Queue} wl_pointer#1161.motion(187310657, 25.39843750, 13.80078125) +[2619027.936] {Default Queue} wl_pointer#1193.motion(187310657, 25.39843750, 13.80078125) +[2619027.947] {Default Queue} wl_pointer#1225.motion(187310657, 25.39843750, 13.80078125) +[2619027.957] {Default Queue} wl_pointer#1257.motion(187310657, 25.39843750, 13.80078125) +[2619027.963] {Default Queue} wl_pointer#1289.motion(187310657, 25.39843750, 13.80078125) +[2619027.969] {Default Queue} wl_pointer#1321.motion(187310657, 25.39843750, 13.80078125) +[2619027.975] {Default Queue} wl_pointer#1353.motion(187310657, 25.39843750, 13.80078125) +[2619027.981] {Default Queue} wl_pointer#1385.motion(187310657, 25.39843750, 13.80078125) +[2619027.987] {Default Queue} wl_pointer#1417.motion(187310657, 25.39843750, 13.80078125) +[2619027.993] {Default Queue} wl_pointer#1449.motion(187310657, 25.39843750, 13.80078125) +[2619028.000] {Default Queue} wl_pointer#1481.motion(187310657, 25.39843750, 13.80078125) +[2619028.006] {Default Queue} wl_pointer#1513.motion(187310657, 25.39843750, 13.80078125) +[2619028.012] {Default Queue} wl_pointer#1545.motion(187310657, 25.39843750, 13.80078125) +[2619028.018] {Default Queue} wl_pointer#1577.motion(187310657, 25.39843750, 13.80078125) +[2619028.024] {Default Queue} wl_pointer#1609.motion(187310657, 25.39843750, 13.80078125) +[2619028.030] {Default Queue} wl_pointer#1641.motion(187310657, 25.39843750, 13.80078125) +[2619028.036] {Default Queue} wl_pointer#1673.motion(187310657, 25.39843750, 13.80078125) +[2619028.042] {Default Queue} wl_pointer#1705.motion(187310657, 25.39843750, 13.80078125) +[2619028.049] {Default Queue} wl_pointer#1737.motion(187310657, 25.39843750, 13.80078125) +[2619028.055] {Default Queue} wl_pointer#1762.motion(187310657, 25.39843750, 13.80078125) +[2619028.061] {Default Queue} wl_pointer#1801.motion(187310657, 25.39843750, 13.80078125) +[2619028.067] {Default Queue} wl_pointer#1833.motion(187310657, 25.39843750, 13.80078125) +[2619028.073] {Default Queue} wl_pointer#1865.motion(187310657, 25.39843750, 13.80078125) +[2619028.079] {Default Queue} wl_pointer#1897.motion(187310657, 25.39843750, 13.80078125) +[2619028.085] {Default Queue} wl_pointer#1929.motion(187310657, 25.39843750, 13.80078125) +[2619028.091] {Default Queue} wl_pointer#1961.motion(187310657, 25.39843750, 13.80078125) +[2619028.098] {Default Queue} wl_pointer#1993.motion(187310657, 25.39843750, 13.80078125) +[2619028.104] {Default Queue} wl_pointer#2025.motion(187310657, 25.39843750, 13.80078125) +[2619028.110] {Default Queue} wl_pointer#2057.motion(187310657, 25.39843750, 13.80078125) +[2619028.116] {Default Queue} wl_pointer#2089.motion(187310657, 25.39843750, 13.80078125) +[2619028.122] {Default Queue} wl_pointer#2121.motion(187310657, 25.39843750, 13.80078125) +[2619028.128] {Default Queue} wl_pointer#2153.motion(187310657, 25.39843750, 13.80078125) +[2619028.134] {Default Queue} wl_pointer#2185.motion(187310657, 25.39843750, 13.80078125) +[2619028.140] {Default Queue} wl_pointer#2217.motion(187310657, 25.39843750, 13.80078125) +[2619028.146] {Default Queue} wl_pointer#2249.motion(187310657, 25.39843750, 13.80078125) +[2619028.153] {Default Queue} wl_pointer#2281.motion(187310657, 25.39843750, 13.80078125) +[2619028.159] {Default Queue} wl_pointer#2313.motion(187310657, 25.39843750, 13.80078125) +[2619028.165] {Default Queue} wl_pointer#2345.motion(187310657, 25.39843750, 13.80078125) +[2619028.172] {Default Queue} wl_pointer#2377.motion(187310657, 25.39843750, 13.80078125) +[2619028.178] {Default Queue} wl_pointer#2409.motion(187310657, 25.39843750, 13.80078125) +[2619028.184] {Default Queue} wl_pointer#2441.motion(187310657, 25.39843750, 13.80078125) +[2619028.190] {Default Queue} wl_pointer#2473.motion(187310657, 25.39843750, 13.80078125) +[2619028.196] {Default Queue} wl_pointer#2498.motion(187310657, 25.39843750, 13.80078125) +[2619028.214] {Default Queue} -> wl_buffer#3613.destroy() +[2619028.222] {Default Queue} -> wl_buffer#1276.destroy() +[2619028.230] {Default Queue} -> wl_shm_pool#3611.destroy() +[2619028.237] {Default Queue} -> wl_shm_pool#3614.destroy() +[2619028.247] {Default Queue} -> wl_surface#3099.destroy() +[2619028.307] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3131, fd 575, 640) +[2619028.334] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3323, fd 578, 640) +[2619028.344] {Default Queue} -> wl_shm_pool#3131.create_buffer(new id wl_buffer#3324, 0, 10, 16, 40, 0) +[2619028.351] {Default Queue} -> wl_shm_pool#3323.create_buffer(new id wl_buffer#3325, 0, 10, 16, 40, 0) +[2619028.361] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3326) +[2619028.368] {Default Queue} -> wl_surface#3326.attach(wl_buffer#3324, 0, 0) +[2619028.374] {Default Queue} -> wl_surface#3326.commit() +[2619028.382] {Default Queue} -> wl_surface#3326.attach(wl_buffer#3324, 0, 0) +[2619028.387] {Default Queue} -> wl_surface#3326.commit() +[2619028.394] {Default Queue} wl_pointer#2537.motion(187310657, 25.39843750, 13.80078125) +[2619028.401] {Default Queue} wl_pointer#2569.motion(187310657, 25.39843750, 13.80078125) +[2619028.408] {Default Queue} wl_pointer#2601.motion(187310657, 25.39843750, 13.80078125) +[2619028.414] {Default Queue} wl_pointer#2633.motion(187310657, 25.39843750, 13.80078125) +[2619028.420] {Default Queue} wl_pointer#2665.motion(187310657, 25.39843750, 13.80078125) +[2619028.426] {Default Queue} wl_pointer#2697.motion(187310657, 25.39843750, 13.80078125) +[2619028.432] {Default Queue} wl_pointer#2729.motion(187310657, 25.39843750, 13.80078125) +[2619028.438] {Default Queue} wl_pointer#2761.motion(187310657, 25.39843750, 13.80078125) +[2619028.444] {Default Queue} wl_pointer#2793.motion(187310657, 25.39843750, 13.80078125) +[2619028.450] {Default Queue} wl_pointer#2825.motion(187310657, 25.39843750, 13.80078125) +[2619028.457] {Default Queue} wl_pointer#2857.motion(187310657, 25.39843750, 13.80078125) +[2619028.463] {Default Queue} wl_pointer#2889.motion(187310657, 25.39843750, 13.80078125) +[2619028.469] {Default Queue} wl_pointer#2921.motion(187310657, 25.39843750, 13.80078125) +[2619028.475] {Default Queue} wl_pointer#2953.motion(187310657, 25.39843750, 13.80078125) +[2619028.481] {Default Queue} wl_pointer#2985.motion(187310657, 25.39843750, 13.80078125) +[2619028.487] {Default Queue} wl_pointer#3017.motion(187310657, 25.39843750, 13.80078125) +[2619028.493] {Default Queue} wl_pointer#3049.motion(187310657, 25.39843750, 13.80078125) +[2619028.499] {Default Queue} wl_pointer#3081.motion(187310657, 25.39843750, 13.80078125) +[2619028.505] {Default Queue} wl_pointer#3113.motion(187310657, 25.39843750, 13.80078125) +[2619028.511] {Default Queue} wl_pointer#3145.motion(187310657, 25.39843750, 13.80078125) +[2619028.517] {Default Queue} wl_pointer#3177.motion(187310657, 25.39843750, 13.80078125) +[2619028.523] {Default Queue} wl_pointer#3209.motion(187310657, 25.39843750, 13.80078125) +[2619028.529] {Default Queue} wl_pointer#3241.motion(187310657, 25.39843750, 13.80078125) +[2619028.536] {Default Queue} wl_pointer#3273.motion(187310657, 25.39843750, 13.80078125) +[2619028.542] {Default Queue} wl_pointer#3305.motion(187310657, 25.39843750, 13.80078125) +[2619028.548] {Default Queue} wl_pointer#3337.motion(187310657, 25.39843750, 13.80078125) +[2619028.554] {Default Queue} wl_pointer#3369.motion(187310657, 25.39843750, 13.80078125) +[2619028.560] {Default Queue} wl_pointer#3401.motion(187310657, 25.39843750, 13.80078125) +[2619028.566] {Default Queue} wl_pointer#3433.motion(187310657, 25.39843750, 13.80078125) +[2619028.572] {Default Queue} wl_pointer#3465.motion(187310657, 25.39843750, 13.80078125) +[2619028.579] {Default Queue} wl_pointer#3497.motion(187310657, 25.39843750, 13.80078125) +[2619028.585] {Default Queue} wl_pointer#3529.motion(187310657, 25.39843750, 13.80078125) +[2619028.591] {Default Queue} wl_pointer#3561.motion(187310657, 25.39843750, 13.80078125) +[2619028.597] {Default Queue} wl_pointer#3593.motion(187310657, 25.39843750, 13.80078125) +[2619028.603] {Default Queue} wl_pointer#3625.motion(187310657, 25.39843750, 13.80078125) +[2619028.609] {Default Queue} wl_pointer#3657.motion(187310657, 25.39843750, 13.80078125) +[2619028.615] {Default Queue} wl_pointer#3695.motion(187310657, 25.39843750, 13.80078125) +[2619028.629] {Default Queue} -> wl_region#1087.subtract(0, 0, 24, 240) +[2619028.640] {Default Queue} -> wl_region#1087.add(-23, -239, 24, 240) +[2619028.649] {Default Queue} -> wl_surface#1063.set_opaque_region(wl_region#1088) +[2619028.654] {Default Queue} -> wl_surface#1063.set_input_region(wl_region#1087) +[2619028.663] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) +[2619028.669] {Default Queue} -> wl_surface#1063.commit() +[2619028.675] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) +[2619028.679] {Default Queue} -> wl_surface#1063.commit() +[2619028.685] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) +[2619028.689] {Default Queue} -> wl_surface#1063.commit() +[2619028.695] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) +[2619028.699] {Default Queue} -> wl_surface#1287.commit() +[2619029.763] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) +[2619029.768] {Default Queue} -> wl_surface#1287.commit() +[2619029.777] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 241) +[2619029.781] {Default Queue} -> wl_region#1311.add(-24, -240, 7, 241) +[2619029.785] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2619029.789] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2619029.901] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 241) +[2619029.906] {Default Queue} -> wl_region#1311.add(-24, -240, 7, 241) +[2619029.910] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2619029.915] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2619029.920] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2619029.924] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2619029.996] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 241) +[2619030.001] {Default Queue} -> wl_region#1311.add(-24, -240, 7, 241) +[2619030.005] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2619030.009] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2619030.014] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2619030.018] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2619030.023] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) +[2619030.027] {Default Queue} -> wl_surface#1287.commit() +[2619030.030] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) +[2619030.034] {Default Queue} -> wl_surface#1287.commit() +[2619030.040] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) +[2619030.044] {Default Queue} -> wl_surface#1287.commit() +[2619030.050] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) +[2619030.054] {Default Queue} -> wl_surface#1319.commit() +[2619031.115] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) +[2619031.120] {Default Queue} -> wl_surface#1319.commit() +[2619031.128] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 241) +[2619031.133] {Default Queue} -> wl_region#1343.add(-24, -240, 7, 241) +[2619031.137] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2619031.140] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2619031.229] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 241) +[2619031.234] {Default Queue} -> wl_region#1343.add(-24, -240, 7, 241) +[2619031.238] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2619031.242] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2619031.247] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2619031.251] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2619031.320] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 241) +[2619031.325] {Default Queue} -> wl_region#1343.add(-24, -240, 7, 241) +[2619031.329] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2619031.333] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2619031.338] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2619031.343] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2619031.347] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) +[2619031.355] {Default Queue} -> wl_surface#1319.commit() +[2619031.360] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) +[2619031.364] {Default Queue} -> wl_surface#1319.commit() +[2619031.370] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) +[2619031.374] {Default Queue} -> wl_surface#1319.commit() +[2619031.380] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) +[2619031.384] {Default Queue} -> wl_surface#1351.commit() +[2619031.834] {Display Queue} wl_display#1.delete_id(3646) +[2619031.839] {Display Queue} wl_display#1.delete_id(3645) +[2619031.843] {Display Queue} wl_display#1.delete_id(3644) +[2619031.847] {Display Queue} wl_display#1.delete_id(3643) +[2619031.851] {Display Queue} wl_display#1.delete_id(3612) +[2619031.855] {Display Queue} wl_display#1.delete_id(477) +[2619031.859] {Display Queue} wl_display#1.delete_id(478) +[2619031.863] {Display Queue} wl_display#1.delete_id(475) +[2619031.867] {Display Queue} wl_display#1.delete_id(476) +[2619031.873] {Display Queue} wl_display#1.delete_id(190) +[2619031.877] {Display Queue} wl_display#1.delete_id(189) +[2619031.880] {Display Queue} wl_display#1.delete_id(188) +[2619031.884] {Display Queue} wl_display#1.delete_id(187) +[2619031.888] {Default Queue} wl_pointer#24.motion(187310662, 25.00000000, 13.80078125) +[2619031.892] {Default Queue} wl_pointer#81.motion(187310662, 25.00000000, 13.80078125) +[2619031.898] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619031.902] {Default Queue} wl_pointer#105.motion(187310662, 25.00000000, 13.80078125) +[2619031.906] {Default Queue} wl_pointer#137.motion(187310662, 25.00000000, 13.80078125) +[2619031.910] {Default Queue} wl_pointer#169.motion(187310662, 25.00000000, 13.80078125) +[2619031.914] {Default Queue} wl_pointer#201.motion(187310662, 25.00000000, 13.80078125) +[2619031.918] {Default Queue} wl_pointer#233.motion(187310662, 25.00000000, 13.80078125) +[2619031.922] {Default Queue} wl_pointer#265.motion(187310662, 25.00000000, 13.80078125) +[2619031.927] {Default Queue} wl_pointer#297.motion(187310662, 25.00000000, 13.80078125) +[2619031.931] {Default Queue} wl_pointer#329.motion(187310662, 25.00000000, 13.80078125) +[2619031.935] {Default Queue} wl_pointer#361.motion(187310662, 25.00000000, 13.80078125) +[2619031.939] {Default Queue} wl_pointer#393.motion(187310662, 25.00000000, 13.80078125) +[2619031.943] {Default Queue} wl_pointer#425.motion(187310662, 25.00000000, 13.80078125) +[2619031.947] {Default Queue} wl_pointer#457.motion(187310662, 25.00000000, 13.80078125) +[2619031.951] {Default Queue} wl_pointer#489.motion(187310662, 25.00000000, 13.80078125) +[2619031.955] {Default Queue} wl_pointer#521.motion(187310662, 25.00000000, 13.80078125) +[2619031.959] {Default Queue} wl_pointer#553.motion(187310662, 25.00000000, 13.80078125) +[2619031.963] {Default Queue} wl_pointer#585.motion(187310662, 25.00000000, 13.80078125) +[2619031.967] {Default Queue} wl_pointer#617.motion(187310662, 25.00000000, 13.80078125) +[2619031.971] {Default Queue} wl_pointer#649.motion(187310662, 25.00000000, 13.80078125) +[2619031.975] {Default Queue} wl_pointer#681.motion(187310662, 25.00000000, 13.80078125) +[2619031.979] {Default Queue} wl_pointer#713.motion(187310662, 25.00000000, 13.80078125) +[2619031.983] {Default Queue} wl_pointer#745.motion(187310662, 25.00000000, 13.80078125) +[2619031.987] {Default Queue} wl_pointer#777.motion(187310662, 25.00000000, 13.80078125) +[2619031.991] {Default Queue} wl_pointer#809.motion(187310662, 25.00000000, 13.80078125) +[2619031.995] {Default Queue} wl_pointer#841.motion(187310662, 25.00000000, 13.80078125) +[2619031.999] {Default Queue} wl_pointer#873.motion(187310662, 25.00000000, 13.80078125) +[2619032.003] {Default Queue} wl_pointer#905.motion(187310662, 25.00000000, 13.80078125) +[2619032.007] {Default Queue} wl_pointer#937.motion(187310662, 25.00000000, 13.80078125) +[2619032.011] {Default Queue} wl_pointer#969.motion(187310662, 25.00000000, 13.80078125) +[2619032.015] {Default Queue} wl_pointer#1001.motion(187310662, 25.00000000, 13.80078125) +[2619032.022] {Default Queue} wl_pointer#1033.motion(187310662, 25.00000000, 13.80078125) +[2619032.028] {Default Queue} wl_pointer#1065.motion(187310662, 25.00000000, 13.80078125) +[2619032.032] {Default Queue} wl_pointer#1097.motion(187310662, 25.00000000, 13.80078125) +[2619032.036] {Default Queue} wl_pointer#1129.motion(187310662, 25.00000000, 13.80078125) +[2619032.040] {Default Queue} wl_pointer#1161.motion(187310662, 25.00000000, 13.80078125) +[2619032.044] {Default Queue} wl_pointer#1193.motion(187310662, 25.00000000, 13.80078125) +[2619032.048] {Default Queue} wl_pointer#1225.motion(187310662, 25.00000000, 13.80078125) +[2619032.052] {Default Queue} wl_pointer#1257.motion(187310662, 25.00000000, 13.80078125) +[2619032.056] {Default Queue} wl_pointer#1289.motion(187310662, 25.00000000, 13.80078125) +[2619032.060] {Default Queue} wl_pointer#1321.motion(187310662, 25.00000000, 13.80078125) +[2619032.064] {Default Queue} wl_pointer#1353.motion(187310662, 25.00000000, 13.80078125) +[2619032.068] {Default Queue} wl_pointer#1385.motion(187310662, 25.00000000, 13.80078125) +[2619032.073] {Default Queue} wl_pointer#1417.motion(187310662, 25.00000000, 13.80078125) +[2619032.076] {Default Queue} wl_pointer#1449.motion(187310662, 25.00000000, 13.80078125) +[2619032.080] {Default Queue} wl_pointer#1481.motion(187310662, 25.00000000, 13.80078125) +[2619032.085] {Default Queue} wl_pointer#1513.motion(187310662, 25.00000000, 13.80078125) +[2619032.088] {Default Queue} wl_pointer#1545.motion(187310662, 25.00000000, 13.80078125) +[2619032.093] {Default Queue} wl_pointer#1577.motion(187310662, 25.00000000, 13.80078125) +[2619032.097] {Default Queue} wl_pointer#1609.motion(187310662, 25.00000000, 13.80078125) +[2619032.101] {Default Queue} wl_pointer#1641.motion(187310662, 25.00000000, 13.80078125) +[2619032.105] {Default Queue} wl_pointer#1673.motion(187310662, 25.00000000, 13.80078125) +[2619032.109] {Default Queue} wl_pointer#1705.motion(187310662, 25.00000000, 13.80078125) +[2619032.113] {Default Queue} wl_pointer#1737.motion(187310662, 25.00000000, 13.80078125) +[2619032.117] {Default Queue} wl_pointer#1762.motion(187310662, 25.00000000, 13.80078125) +[2619032.122] {Default Queue} wl_pointer#1801.motion(187310662, 25.00000000, 13.80078125) +[2619032.125] {Default Queue} wl_pointer#1833.motion(187310662, 25.00000000, 13.80078125) +[2619032.130] {Default Queue} wl_pointer#1865.motion(187310662, 25.00000000, 13.80078125) +[2619032.134] {Default Queue} wl_pointer#1897.motion(187310662, 25.00000000, 13.80078125) +[2619032.138] {Default Queue} wl_pointer#1929.motion(187310662, 25.00000000, 13.80078125) +[2619032.142] {Default Queue} wl_pointer#1961.motion(187310662, 25.00000000, 13.80078125) +[2619032.146] {Default Queue} wl_pointer#1993.motion(187310662, 25.00000000, 13.80078125) +[2619032.150] {Default Queue} wl_pointer#2025.motion(187310662, 25.00000000, 13.80078125) +[2619032.154] {Default Queue} wl_pointer#2057.motion(187310662, 25.00000000, 13.80078125) +[2619032.158] {Default Queue} wl_pointer#2089.motion(187310662, 25.00000000, 13.80078125) +[2619032.162] {Default Queue} wl_pointer#2121.motion(187310662, 25.00000000, 13.80078125) +[2619032.166] {Default Queue} wl_pointer#2153.motion(187310662, 25.00000000, 13.80078125) +[2619032.170] {Default Queue} wl_pointer#2185.motion(187310662, 25.00000000, 13.80078125) +[2619032.174] {Default Queue} wl_pointer#2217.motion(187310662, 25.00000000, 13.80078125) +[2619032.178] {Default Queue} wl_pointer#2249.motion(187310662, 25.00000000, 13.80078125) +[2619032.182] {Default Queue} wl_pointer#2281.motion(187310662, 25.00000000, 13.80078125) +[2619032.186] {Default Queue} wl_pointer#2313.motion(187310662, 25.00000000, 13.80078125) +[2619032.191] {Default Queue} wl_pointer#2345.motion(187310662, 25.00000000, 13.80078125) +[2619032.195] {Default Queue} wl_pointer#2377.motion(187310662, 25.00000000, 13.80078125) +[2619032.199] {Default Queue} wl_pointer#2409.motion(187310662, 25.00000000, 13.80078125) +[2619032.203] {Default Queue} wl_pointer#2441.motion(187310662, 25.00000000, 13.80078125) +[2619032.210] {Default Queue} wl_pointer#2473.motion(187310662, 25.00000000, 13.80078125) +[2619032.216] {Default Queue} wl_pointer#2498.motion(187310662, 25.00000000, 13.80078125) +[2619032.227] {Default Queue} -> wl_buffer#3324.destroy() +[2619032.233] {Default Queue} -> wl_buffer#3325.destroy() +[2619032.237] {Default Queue} -> wl_shm_pool#3131.destroy() +[2619032.241] {Default Queue} -> wl_shm_pool#3323.destroy() +[2619032.246] {Default Queue} -> wl_surface#3326.destroy() +[2619032.283] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#187, fd 575, 640) +[2619032.289] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#188, fd 578, 640) +[2619032.293] {Default Queue} -> wl_shm_pool#187.create_buffer(new id wl_buffer#189, 0, 10, 16, 40, 0) +[2619032.297] {Default Queue} -> wl_shm_pool#188.create_buffer(new id wl_buffer#190, 0, 10, 16, 40, 0) +[2619032.304] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#476) +[2619032.309] {Default Queue} -> wl_surface#476.attach(wl_buffer#189, 0, 0) +[2619032.313] {Default Queue} -> wl_surface#476.commit() +[2619032.318] {Default Queue} -> wl_surface#476.attach(wl_buffer#189, 0, 0) +[2619032.322] {Default Queue} -> wl_surface#476.commit() +[2619032.326] {Default Queue} wl_pointer#2537.motion(187310662, 25.00000000, 13.80078125) +[2619032.331] {Default Queue} wl_pointer#2569.motion(187310662, 25.00000000, 13.80078125) +[2619032.335] {Default Queue} wl_pointer#2601.motion(187310662, 25.00000000, 13.80078125) +[2619032.339] {Default Queue} wl_pointer#2633.motion(187310662, 25.00000000, 13.80078125) +[2619032.343] {Default Queue} wl_pointer#2665.motion(187310662, 25.00000000, 13.80078125) +[2619032.347] {Default Queue} wl_pointer#2697.motion(187310662, 25.00000000, 13.80078125) +[2619032.351] {Default Queue} wl_pointer#2729.motion(187310662, 25.00000000, 13.80078125) +[2619032.355] {Default Queue} wl_pointer#2761.motion(187310662, 25.00000000, 13.80078125) +[2619032.360] {Default Queue} wl_pointer#2793.motion(187310662, 25.00000000, 13.80078125) +[2619032.364] {Default Queue} wl_pointer#2825.motion(187310662, 25.00000000, 13.80078125) +[2619032.368] {Default Queue} wl_pointer#2857.motion(187310662, 25.00000000, 13.80078125) +[2619032.372] {Default Queue} wl_pointer#2889.motion(187310662, 25.00000000, 13.80078125) +[2619032.376] {Default Queue} wl_pointer#2921.motion(187310662, 25.00000000, 13.80078125) +[2619032.380] {Default Queue} wl_pointer#2953.motion(187310662, 25.00000000, 13.80078125) +[2619032.384] {Default Queue} wl_pointer#2985.motion(187310662, 25.00000000, 13.80078125) +[2619032.388] {Default Queue} wl_pointer#3017.motion(187310662, 25.00000000, 13.80078125) +[2619032.392] {Default Queue} wl_pointer#3049.motion(187310662, 25.00000000, 13.80078125) +[2619032.397] {Default Queue} wl_pointer#3081.motion(187310662, 25.00000000, 13.80078125) +[2619032.401] {Default Queue} wl_pointer#3113.motion(187310662, 25.00000000, 13.80078125) +[2619032.405] {Default Queue} wl_pointer#3145.motion(187310662, 25.00000000, 13.80078125) +[2619032.409] {Default Queue} wl_pointer#3177.motion(187310662, 25.00000000, 13.80078125) +[2619032.414] {Default Queue} wl_pointer#3209.motion(187310662, 25.00000000, 13.80078125) +[2619032.418] {Default Queue} wl_pointer#3241.motion(187310662, 25.00000000, 13.80078125) +[2619032.422] {Default Queue} wl_pointer#3273.motion(187310662, 25.00000000, 13.80078125) +[2619032.426] {Default Queue} wl_pointer#3305.motion(187310662, 25.00000000, 13.80078125) +[2619032.430] {Default Queue} wl_pointer#3337.motion(187310662, 25.00000000, 13.80078125) +[2619032.434] {Default Queue} wl_pointer#3369.motion(187310662, 25.00000000, 13.80078125) +[2619032.438] {Default Queue} wl_pointer#3401.motion(187310662, 25.00000000, 13.80078125) +[2619032.442] {Default Queue} wl_pointer#3433.motion(187310662, 25.00000000, 13.80078125) +[2619032.446] {Default Queue} wl_pointer#3465.motion(187310662, 25.00000000, 13.80078125) +[2619032.450] {Default Queue} wl_pointer#3497.motion(187310662, 25.00000000, 13.80078125) +[2619032.455] {Default Queue} wl_pointer#3529.motion(187310662, 25.00000000, 13.80078125) +[2619032.463] {Default Queue} wl_pointer#3561.motion(187310662, 25.00000000, 13.80078125) +[2619032.469] {Default Queue} wl_pointer#3593.motion(187310662, 25.00000000, 13.80078125) +[2619032.473] {Default Queue} wl_pointer#3625.motion(187310662, 25.00000000, 13.80078125) +[2619032.477] {Default Queue} wl_pointer#3657.motion(187310662, 25.00000000, 13.80078125) +[2619032.481] {Default Queue} wl_pointer#3695.motion(187310662, 25.00000000, 13.80078125) +[2619032.490] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 241) +[2619032.495] {Default Queue} -> wl_region#1375.add(-24, -240, 7, 241) +[2619032.499] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2619032.503] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2619032.601] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 241) +[2619032.606] {Default Queue} -> wl_region#1375.add(-24, -240, 7, 241) +[2619032.610] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2619032.614] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2619032.619] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2619032.624] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2619032.700] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 241) +[2619032.705] {Default Queue} -> wl_region#1375.add(-24, -240, 7, 241) +[2619032.709] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2619032.713] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2619032.717] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2619032.722] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2619032.727] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) +[2619032.731] {Default Queue} -> wl_surface#1351.commit() +[2619032.735] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) +[2619032.738] {Default Queue} -> wl_surface#1351.commit() +[2619032.744] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) +[2619032.749] {Default Queue} -> wl_surface#1351.commit() +[2619032.755] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) +[2619032.760] {Default Queue} -> wl_surface#1383.commit() +[2619033.824] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) +[2619033.829] {Default Queue} -> wl_surface#1383.commit() +[2619033.837] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 241) +[2619033.841] {Default Queue} -> wl_region#1407.add(-24, -240, 7, 241) +[2619033.845] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2619033.849] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2619033.943] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 241) +[2619033.948] {Default Queue} -> wl_region#1407.add(-24, -240, 7, 241) +[2619033.952] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2619033.956] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2619033.961] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2619033.965] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2619034.035] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 241) +[2619034.041] {Default Queue} -> wl_region#1407.add(-24, -240, 7, 241) +[2619034.045] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2619034.049] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2619034.053] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2619034.058] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2619034.063] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) +[2619034.067] {Default Queue} -> wl_surface#1383.commit() +[2619034.071] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) +[2619034.074] {Default Queue} -> wl_surface#1383.commit() +[2619034.080] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) +[2619034.084] {Default Queue} -> wl_surface#1383.commit() +[2619034.089] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) +[2619034.094] {Default Queue} -> wl_surface#1415.commit() +[2619035.159] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) +[2619035.167] {Default Queue} -> wl_surface#1415.commit() +[2619035.176] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 241) +[2619035.180] {Default Queue} -> wl_region#1439.add(-24, -240, 7, 241) +[2619035.185] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2619035.188] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2619035.278] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 241) +[2619035.283] {Default Queue} -> wl_region#1439.add(-24, -240, 7, 241) +[2619035.287] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2619035.291] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2619035.297] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2619035.301] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2619035.371] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 241) +[2619035.377] {Default Queue} -> wl_region#1439.add(-24, -240, 7, 241) +[2619035.381] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2619035.385] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2619035.389] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2619035.394] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2619035.399] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) +[2619035.403] {Default Queue} -> wl_surface#1415.commit() +[2619035.406] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) +[2619035.410] {Default Queue} -> wl_surface#1415.commit() +[2619035.416] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) +[2619035.420] {Default Queue} -> wl_surface#1415.commit() +[2619035.426] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) +[2619035.430] {Default Queue} -> wl_surface#1255.commit() +[2619036.491] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) +[2619036.496] {Default Queue} -> wl_surface#1255.commit() +[2619036.502] {Default Queue} -> wl_region#1279.subtract(0, 0, 25, 241) +[2619036.506] {Default Queue} -> wl_region#1279.add(-24, -240, 7, 241) +[2619036.510] {Default Queue} -> wl_surface#1255.set_opaque_region(wl_region#1280) +[2619036.514] {Default Queue} -> wl_surface#1255.set_input_region(wl_region#1279) +[2619036.518] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) +[2619036.522] {Default Queue} -> wl_surface#1255.commit() +[2619036.526] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) +[2619036.530] {Default Queue} -> wl_surface#1255.commit() +[2619036.535] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) +[2619036.539] {Default Queue} -> wl_surface#1255.commit() +[2619036.543] {Default Queue} -> wl_region#1055.subtract(0, 0, 2, 2) +[2619036.548] {Default Queue} -> wl_region#1087.subtract(0, 0, 24, 240) +[2619036.553] {Default Queue} -> wl_region#1087.add(-23, -239, 24, 240) +[2619036.557] {Default Queue} -> wl_surface#1063.set_opaque_region(wl_region#1088) +[2619036.560] {Default Queue} -> wl_surface#1063.set_input_region(wl_region#1087) +[2619036.566] {Default Queue} -> wl_region#1279.subtract(0, 0, 25, 241) +[2619036.570] {Default Queue} -> wl_region#1279.add(-24, -240, 7, 241) +[2619036.574] {Default Queue} -> wl_surface#1255.set_opaque_region(wl_region#1280) +[2619036.578] {Default Queue} -> wl_surface#1255.set_input_region(wl_region#1279) +[2619036.582] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2619036.586] {Default Queue} -> wl_region#1055.subtract(0, 0, 25, 221) +[2619036.590] {Default Queue} -> wl_region#1055.add(-23, -239, 24, 220) +[2619036.594] {Default Queue} -> wl_surface#1031.set_opaque_region(wl_region#1056) +[2619036.598] {Default Queue} -> wl_surface#1031.set_input_region(wl_region#1055) +[2619036.602] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) +[2619036.606] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) +[2619036.610] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) +[2619036.614] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) +[2619036.622] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) +[2619036.628] {Default Queue} -> wl_surface#1063.damage(0, 0, 16, 2) +[2619036.632] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2619036.636] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2619036.640] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2619036.644] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2619036.648] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2619036.652] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2619036.656] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2619036.668] {Default Queue} -> wl_buffer#1053.destroy() +[2619036.674] {Default Queue} -> wl_buffer#1054.destroy() +[2619036.678] {Default Queue} -> wl_shm_pool#1051.destroy() +[2619036.682] {Default Queue} -> wl_shm_pool#1052.destroy() +[2619036.722] {Default Queue} -> wl_shm#1039.create_pool(new id wl_shm_pool#475, fd 575, 16) +[2619036.731] {Default Queue} -> wl_shm#1039.create_pool(new id wl_shm_pool#478, fd 578, 16) +[2619036.738] {Default Queue} -> wl_shm_pool#475.create_buffer(new id wl_buffer#477, 0, 2, 2, 8, 0) +[2619036.745] {Default Queue} -> wl_shm_pool#478.create_buffer(new id wl_buffer#3612, 0, 2, 2, 8, 0) +[2619036.755] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) +[2619036.762] {Default Queue} -> wl_surface#1031.commit() +[2619036.770] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) +[2619036.776] {Default Queue} -> wl_surface#1031.commit() +[2619036.786] {Default Queue} -> wl_region#1055.subtract(0, 0, 25, 241) +[2619036.792] {Default Queue} -> wl_region#1055.add(-23, -239, 24, 240) +[2619036.798] {Default Queue} -> wl_surface#1031.set_opaque_region(wl_region#1056) +[2619036.804] {Default Queue} -> wl_surface#1031.set_input_region(wl_region#1055) +[2619036.810] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) +[2619036.816] {Default Queue} -> wl_surface#1031.commit() +[2619036.825] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) +[2619036.832] {Default Queue} -> wl_surface#1031.commit() +[2619037.867] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) +[2619037.872] {Default Queue} -> wl_surface#1031.commit() +[2619037.877] {Default Queue} -> wl_region#1055.subtract(0, 0, 25, 241) +[2619037.881] {Default Queue} -> wl_region#1055.add(-23, -239, 24, 240) +[2619037.885] {Default Queue} -> wl_surface#1031.set_opaque_region(wl_region#1056) +[2619037.889] {Default Queue} -> wl_surface#1031.set_input_region(wl_region#1055) +[2619037.894] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) +[2619037.898] {Default Queue} -> wl_surface#1031.commit() +[2619037.902] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) +[2619037.906] {Default Queue} -> wl_surface#1031.commit() +[2619037.911] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) +[2619037.915] {Default Queue} -> wl_surface#1031.commit() +[2619037.920] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) +[2619037.924] {Default Queue} -> wl_surface#999.commit() +[2619038.985] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) +[2619038.990] {Default Queue} -> wl_surface#999.commit() +[2619038.996] {Default Queue} -> wl_region#1023.subtract(0, 0, 25, 241) +[2619039.000] {Default Queue} -> wl_region#1023.add(-23, -219, 25, 221) +[2619039.004] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) +[2619039.008] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) +[2619039.012] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) +[2619039.017] {Default Queue} -> wl_surface#999.commit() +[2619039.020] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) +[2619039.025] {Default Queue} -> wl_surface#999.commit() +[2619039.030] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) +[2619039.034] {Default Queue} -> wl_surface#999.commit() +[2619039.038] {Default Queue} -> wl_region#959.subtract(0, 0, 109, 161) +[2619039.048] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 236) +[2619039.055] {Default Queue} -> wl_region#991.add(-20, -216, 22, 236) +[2619039.059] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2619039.063] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2619039.146] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 236) +[2619039.151] {Default Queue} -> wl_region#991.add(-20, -216, 22, 236) +[2619039.155] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2619039.159] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2619039.166] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2619039.170] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2619039.230] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 236) +[2619039.235] {Default Queue} -> wl_region#991.add(-20, -216, 22, 236) +[2619039.239] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2619039.243] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2619039.249] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2619039.253] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2619039.258] {Default Queue} -> wl_region#1023.subtract(0, 0, 25, 241) +[2619039.262] {Default Queue} -> wl_region#1023.add(-23, -219, 25, 221) +[2619039.266] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) +[2619039.270] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) +[2619039.274] {Default Queue} -> wl_surface#935.damage(0, 0, 109, 161) +[2619039.278] {Default Queue} -> wl_region#959.subtract(0, 0, 132, 380) +[2619039.282] {Default Queue} -> wl_region#959.add(-20, -216, 129, 377) +[2619039.286] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) +[2619039.290] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) +[2619039.294] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2619039.298] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) +[2619039.302] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) +[2619039.306] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) +[2619039.310] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) +[2619039.314] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) +[2619039.318] {Default Queue} -> wl_surface#1063.damage(0, 0, 16, 2) +[2619039.322] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2619039.326] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2619039.330] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2619039.334] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2619039.338] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2619039.342] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) +[2619039.346] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) +[2619039.349] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) +[2619039.353] {Default Queue} -> wl_surface#935.damage(0, 0, 109, 161) +[2619039.366] {Default Queue} -> wl_buffer#62.destroy() +[2619039.371] {Default Queue} -> wl_buffer#61.destroy() +[2619039.376] {Default Queue} -> wl_shm_pool#60.destroy() +[2619039.380] {Default Queue} -> wl_shm_pool#59.destroy() +[2619039.455] {Default Queue} -> wl_shm#943.create_pool(new id wl_shm_pool#3643, fd 575, 70196) +[2619039.462] {Default Queue} -> wl_shm#943.create_pool(new id wl_shm_pool#3644, fd 578, 70196) +[2619039.466] {Default Queue} -> wl_shm_pool#3643.create_buffer(new id wl_buffer#3645, 0, 109, 161, 436, 0) +[2619039.470] {Default Queue} -> wl_shm_pool#3644.create_buffer(new id wl_buffer#3646, 0, 109, 161, 436, 0) +[2619039.492] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) +[2619039.497] {Default Queue} -> wl_surface#935.commit() +[2619039.517] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) +[2619039.525] {Default Queue} -> wl_surface#935.commit() +[2619039.535] {Default Queue} -> wl_region#959.subtract(0, 0, 132, 380) +[2619039.541] {Default Queue} -> wl_region#959.add(-20, -216, 129, 377) +[2619039.546] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) +[2619039.554] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) +[2619039.563] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) +[2619039.567] {Default Queue} -> wl_surface#935.commit() +[2619039.574] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) +[2619039.578] {Default Queue} -> wl_surface#935.commit() +[2619040.643] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) +[2619040.648] {Default Queue} -> wl_surface#935.commit() +[2619040.655] {Default Queue} -> wl_region#959.subtract(0, 0, 132, 380) +[2619040.659] {Default Queue} -> wl_region#959.add(-20, -216, 129, 377) +[2619040.663] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) +[2619040.667] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) +[2619040.673] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) +[2619040.677] {Default Queue} -> wl_surface#935.commit() +[2619040.682] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) +[2619040.686] {Default Queue} -> wl_surface#935.commit() +[2619040.693] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) +[2619040.697] {Default Queue} -> wl_surface#935.commit() +[2619040.708] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) +[2619040.712] {Default Queue} -> wl_surface#903.commit() +[2619041.732] {Display Queue} wl_display#1.delete_id(3613) +[2619041.738] {Display Queue} wl_display#1.delete_id(1276) +[2619041.742] {Display Queue} wl_display#1.delete_id(3611) +[2619041.745] {Display Queue} wl_display#1.delete_id(3614) +[2619041.749] {Display Queue} wl_display#1.delete_id(3099) +[2619041.753] {Display Queue} wl_display#1.delete_id(3324) +[2619041.757] {Display Queue} wl_display#1.delete_id(3325) +[2619041.760] {Display Queue} wl_display#1.delete_id(3131) +[2619041.764] {Display Queue} wl_display#1.delete_id(3323) +[2619041.768] {Display Queue} wl_display#1.delete_id(3326) +[2619041.772] {Default Queue} wl_pointer#24.motion(187310671, 24.60156250, 13.80078125) +[2619041.776] {Default Queue} wl_pointer#81.motion(187310671, 24.60156250, 13.80078125) +[2619041.782] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619041.786] {Default Queue} wl_pointer#105.motion(187310671, 24.60156250, 13.80078125) +[2619041.791] {Default Queue} wl_pointer#137.motion(187310671, 24.60156250, 13.80078125) +[2619041.795] {Default Queue} wl_pointer#169.motion(187310671, 24.60156250, 13.80078125) +[2619041.799] {Default Queue} wl_pointer#201.motion(187310671, 24.60156250, 13.80078125) +[2619041.803] {Default Queue} wl_pointer#233.motion(187310671, 24.60156250, 13.80078125) +[2619041.807] {Default Queue} wl_pointer#265.motion(187310671, 24.60156250, 13.80078125) +[2619041.811] {Default Queue} wl_pointer#297.motion(187310671, 24.60156250, 13.80078125) +[2619041.816] {Default Queue} wl_pointer#329.motion(187310671, 24.60156250, 13.80078125) +[2619041.820] {Default Queue} wl_pointer#361.motion(187310671, 24.60156250, 13.80078125) +[2619041.824] {Default Queue} wl_pointer#393.motion(187310671, 24.60156250, 13.80078125) +[2619041.828] {Default Queue} wl_pointer#425.motion(187310671, 24.60156250, 13.80078125) +[2619041.832] {Default Queue} wl_pointer#457.motion(187310671, 24.60156250, 13.80078125) +[2619041.836] {Default Queue} wl_pointer#489.motion(187310671, 24.60156250, 13.80078125) +[2619041.840] {Default Queue} wl_pointer#521.motion(187310671, 24.60156250, 13.80078125) +[2619041.844] {Default Queue} wl_pointer#553.motion(187310671, 24.60156250, 13.80078125) +[2619041.848] {Default Queue} wl_pointer#585.motion(187310671, 24.60156250, 13.80078125) +[2619041.853] {Default Queue} wl_pointer#617.motion(187310671, 24.60156250, 13.80078125) +[2619041.857] {Default Queue} wl_pointer#649.motion(187310671, 24.60156250, 13.80078125) +[2619041.865] {Default Queue} wl_pointer#681.motion(187310671, 24.60156250, 13.80078125) +[2619041.869] {Default Queue} wl_pointer#713.motion(187310671, 24.60156250, 13.80078125) +[2619041.873] {Default Queue} wl_pointer#745.motion(187310671, 24.60156250, 13.80078125) +[2619041.881] {Default Queue} wl_pointer#777.motion(187310671, 24.60156250, 13.80078125) +[2619041.887] {Default Queue} wl_pointer#809.motion(187310671, 24.60156250, 13.80078125) +[2619041.891] {Default Queue} wl_pointer#841.motion(187310671, 24.60156250, 13.80078125) +[2619041.895] {Default Queue} wl_pointer#873.motion(187310671, 24.60156250, 13.80078125) +[2619041.899] {Default Queue} wl_pointer#905.motion(187310671, 24.60156250, 13.80078125) +[2619041.903] {Default Queue} wl_pointer#937.motion(187310671, 24.60156250, 13.80078125) +[2619041.907] {Default Queue} wl_pointer#969.motion(187310671, 24.60156250, 13.80078125) +[2619041.911] {Default Queue} wl_pointer#1001.motion(187310671, 24.60156250, 13.80078125) +[2619041.915] {Default Queue} wl_pointer#1033.motion(187310671, 24.60156250, 13.80078125) +[2619041.919] {Default Queue} wl_pointer#1065.motion(187310671, 24.60156250, 13.80078125) +[2619041.923] {Default Queue} wl_pointer#1097.motion(187310671, 24.60156250, 13.80078125) +[2619041.927] {Default Queue} wl_pointer#1129.motion(187310671, 24.60156250, 13.80078125) +[2619041.931] {Default Queue} wl_pointer#1161.motion(187310671, 24.60156250, 13.80078125) +[2619041.935] {Default Queue} wl_pointer#1193.motion(187310671, 24.60156250, 13.80078125) +[2619041.940] {Default Queue} wl_pointer#1225.motion(187310671, 24.60156250, 13.80078125) +[2619041.944] {Default Queue} wl_pointer#1257.motion(187310671, 24.60156250, 13.80078125) +[2619041.948] {Default Queue} wl_pointer#1289.motion(187310671, 24.60156250, 13.80078125) +[2619041.952] {Default Queue} wl_pointer#1321.motion(187310671, 24.60156250, 13.80078125) +[2619041.956] {Default Queue} wl_pointer#1353.motion(187310671, 24.60156250, 13.80078125) +[2619041.960] {Default Queue} wl_pointer#1385.motion(187310671, 24.60156250, 13.80078125) +[2619041.964] {Default Queue} wl_pointer#1417.motion(187310671, 24.60156250, 13.80078125) +[2619041.968] {Default Queue} wl_pointer#1449.motion(187310671, 24.60156250, 13.80078125) +[2619041.972] {Default Queue} wl_pointer#1481.motion(187310671, 24.60156250, 13.80078125) +[2619041.976] {Default Queue} wl_pointer#1513.motion(187310671, 24.60156250, 13.80078125) +[2619041.980] {Default Queue} wl_pointer#1545.motion(187310671, 24.60156250, 13.80078125) +[2619041.984] {Default Queue} wl_pointer#1577.motion(187310671, 24.60156250, 13.80078125) +[2619041.988] {Default Queue} wl_pointer#1609.motion(187310671, 24.60156250, 13.80078125) +[2619041.992] {Default Queue} wl_pointer#1641.motion(187310671, 24.60156250, 13.80078125) +[2619041.996] {Default Queue} wl_pointer#1673.motion(187310671, 24.60156250, 13.80078125) +[2619042.000] {Default Queue} wl_pointer#1705.motion(187310671, 24.60156250, 13.80078125) +[2619042.004] {Default Queue} wl_pointer#1737.motion(187310671, 24.60156250, 13.80078125) +[2619042.009] {Default Queue} wl_pointer#1762.motion(187310671, 24.60156250, 13.80078125) +[2619042.013] {Default Queue} wl_pointer#1801.motion(187310671, 24.60156250, 13.80078125) +[2619042.017] {Default Queue} wl_pointer#1833.motion(187310671, 24.60156250, 13.80078125) +[2619042.021] {Default Queue} wl_pointer#1865.motion(187310671, 24.60156250, 13.80078125) +[2619042.025] {Default Queue} wl_pointer#1897.motion(187310671, 24.60156250, 13.80078125) +[2619042.029] {Default Queue} wl_pointer#1929.motion(187310671, 24.60156250, 13.80078125) +[2619042.033] {Default Queue} wl_pointer#1961.motion(187310671, 24.60156250, 13.80078125) +[2619042.037] {Default Queue} wl_pointer#1993.motion(187310671, 24.60156250, 13.80078125) +[2619042.041] {Default Queue} wl_pointer#2025.motion(187310671, 24.60156250, 13.80078125) +[2619042.045] {Default Queue} wl_pointer#2057.motion(187310671, 24.60156250, 13.80078125) +[2619042.049] {Default Queue} wl_pointer#2089.motion(187310671, 24.60156250, 13.80078125) +[2619042.053] {Default Queue} wl_pointer#2121.motion(187310671, 24.60156250, 13.80078125) +[2619042.057] {Default Queue} wl_pointer#2153.motion(187310671, 24.60156250, 13.80078125) +[2619042.061] {Default Queue} wl_pointer#2185.motion(187310671, 24.60156250, 13.80078125) +[2619042.065] {Default Queue} wl_pointer#2217.motion(187310671, 24.60156250, 13.80078125) +[2619042.073] {Default Queue} wl_pointer#2249.motion(187310671, 24.60156250, 13.80078125) +[2619042.078] {Default Queue} wl_pointer#2281.motion(187310671, 24.60156250, 13.80078125) +[2619042.082] {Default Queue} wl_pointer#2313.motion(187310671, 24.60156250, 13.80078125) +[2619042.086] {Default Queue} wl_pointer#2345.motion(187310671, 24.60156250, 13.80078125) +[2619042.091] {Default Queue} wl_pointer#2377.motion(187310671, 24.60156250, 13.80078125) +[2619042.095] {Default Queue} wl_pointer#2409.motion(187310671, 24.60156250, 13.80078125) +[2619042.099] {Default Queue} wl_pointer#2441.motion(187310671, 24.60156250, 13.80078125) +[2619042.103] {Default Queue} wl_pointer#2473.motion(187310671, 24.60156250, 13.80078125) +[2619042.107] {Default Queue} wl_pointer#2498.motion(187310671, 24.60156250, 13.80078125) +[2619042.119] {Default Queue} -> wl_buffer#189.destroy() +[2619042.123] {Default Queue} -> wl_buffer#190.destroy() +[2619042.127] {Default Queue} -> wl_shm_pool#187.destroy() +[2619042.131] {Default Queue} -> wl_shm_pool#188.destroy() +[2619042.136] {Default Queue} -> wl_surface#476.destroy() +[2619042.170] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3326, fd 575, 640) +[2619042.176] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3323, fd 578, 640) +[2619042.180] {Default Queue} -> wl_shm_pool#3326.create_buffer(new id wl_buffer#3131, 0, 10, 16, 40, 0) +[2619042.185] {Default Queue} -> wl_shm_pool#3323.create_buffer(new id wl_buffer#3325, 0, 10, 16, 40, 0) +[2619042.192] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3324) +[2619042.196] {Default Queue} -> wl_surface#3324.attach(wl_buffer#3131, 0, 0) +[2619042.200] {Default Queue} -> wl_surface#3324.commit() +[2619042.205] {Default Queue} -> wl_surface#3324.attach(wl_buffer#3131, 0, 0) +[2619042.209] {Default Queue} -> wl_surface#3324.commit() +[2619042.213] {Default Queue} wl_pointer#2537.motion(187310671, 24.60156250, 13.80078125) +[2619042.217] {Default Queue} wl_pointer#2569.motion(187310671, 24.60156250, 13.80078125) +[2619042.221] {Default Queue} wl_pointer#2601.motion(187310671, 24.60156250, 13.80078125) +[2619042.225] {Default Queue} wl_pointer#2633.motion(187310671, 24.60156250, 13.80078125) +[2619042.229] {Default Queue} wl_pointer#2665.motion(187310671, 24.60156250, 13.80078125) +[2619042.233] {Default Queue} wl_pointer#2697.motion(187310671, 24.60156250, 13.80078125) +[2619042.238] {Default Queue} wl_pointer#2729.motion(187310671, 24.60156250, 13.80078125) +[2619042.242] {Default Queue} wl_pointer#2761.motion(187310671, 24.60156250, 13.80078125) +[2619042.246] {Default Queue} wl_pointer#2793.motion(187310671, 24.60156250, 13.80078125) +[2619042.250] {Default Queue} wl_pointer#2825.motion(187310671, 24.60156250, 13.80078125) +[2619042.254] {Default Queue} wl_pointer#2857.motion(187310671, 24.60156250, 13.80078125) +[2619042.258] {Default Queue} wl_pointer#2889.motion(187310671, 24.60156250, 13.80078125) +[2619042.262] {Default Queue} wl_pointer#2921.motion(187310671, 24.60156250, 13.80078125) +[2619042.266] {Default Queue} wl_pointer#2953.motion(187310671, 24.60156250, 13.80078125) +[2619042.270] {Default Queue} wl_pointer#2985.motion(187310671, 24.60156250, 13.80078125) +[2619042.274] {Default Queue} wl_pointer#3017.motion(187310671, 24.60156250, 13.80078125) +[2619042.278] {Default Queue} wl_pointer#3049.motion(187310671, 24.60156250, 13.80078125) +[2619042.282] {Default Queue} wl_pointer#3081.motion(187310671, 24.60156250, 13.80078125) +[2619042.286] {Default Queue} wl_pointer#3113.motion(187310671, 24.60156250, 13.80078125) +[2619042.290] {Default Queue} wl_pointer#3145.motion(187310671, 24.60156250, 13.80078125) +[2619042.294] {Default Queue} wl_pointer#3177.motion(187310671, 24.60156250, 13.80078125) +[2619042.299] {Default Queue} wl_pointer#3209.motion(187310671, 24.60156250, 13.80078125) +[2619042.303] {Default Queue} wl_pointer#3241.motion(187310671, 24.60156250, 13.80078125) +[2619042.307] {Default Queue} wl_pointer#3273.motion(187310671, 24.60156250, 13.80078125) +[2619042.311] {Default Queue} wl_pointer#3305.motion(187310671, 24.60156250, 13.80078125) +[2619042.317] {Default Queue} wl_pointer#3337.motion(187310671, 24.60156250, 13.80078125) +[2619042.323] {Default Queue} wl_pointer#3369.motion(187310671, 24.60156250, 13.80078125) +[2619042.327] {Default Queue} wl_pointer#3401.motion(187310671, 24.60156250, 13.80078125) +[2619042.331] {Default Queue} wl_pointer#3433.motion(187310671, 24.60156250, 13.80078125) +[2619042.335] {Default Queue} wl_pointer#3465.motion(187310671, 24.60156250, 13.80078125) +[2619042.340] {Default Queue} wl_pointer#3497.motion(187310671, 24.60156250, 13.80078125) +[2619042.344] {Default Queue} wl_pointer#3529.motion(187310671, 24.60156250, 13.80078125) +[2619042.348] {Default Queue} wl_pointer#3561.motion(187310671, 24.60156250, 13.80078125) +[2619042.352] {Default Queue} wl_pointer#3593.motion(187310671, 24.60156250, 13.80078125) +[2619042.356] {Default Queue} wl_pointer#3625.motion(187310671, 24.60156250, 13.80078125) +[2619042.360] {Default Queue} wl_pointer#3657.motion(187310671, 24.60156250, 13.80078125) +[2619042.364] {Default Queue} wl_pointer#3695.motion(187310671, 24.60156250, 13.80078125) +[2619042.376] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) +[2619042.381] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) +[2619042.385] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2619042.389] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2619042.397] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) +[2619042.402] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) +[2619042.406] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2619042.410] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2619042.415] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) +[2619042.419] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) +[2619042.423] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2619042.427] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2619042.433] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) +[2619042.437] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) +[2619042.441] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2619042.445] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2619042.451] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) +[2619042.455] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) +[2619042.459] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) +[2619042.463] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) +[2619042.470] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) +[2619042.474] {Default Queue} -> wl_surface#903.commit() +[2619042.479] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) +[2619042.483] {Default Queue} -> wl_surface#903.commit() +[2619042.490] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) +[2619042.494] {Default Queue} -> wl_surface#903.commit() +[2619042.500] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) +[2619042.504] {Default Queue} -> wl_surface#1511.commit() +[2619043.567] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) +[2619043.572] {Default Queue} -> wl_surface#1511.commit() +[2619043.581] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 236) +[2619043.585] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 236) +[2619043.589] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2619043.593] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2619043.686] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 236) +[2619043.691] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 236) +[2619043.695] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2619043.699] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2619043.706] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2619043.713] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2619043.783] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 236) +[2619043.790] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 236) +[2619043.795] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2619043.798] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2619043.804] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2619043.808] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2619043.813] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) +[2619043.817] {Default Queue} -> wl_surface#1511.commit() +[2619043.821] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) +[2619043.825] {Default Queue} -> wl_surface#1511.commit() +[2619043.830] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) +[2619043.834] {Default Queue} -> wl_surface#1511.commit() +[2619043.839] {Default Queue} -> wl_region#1599.subtract(0, 0, 2, 2) +[2619043.843] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) +[2619043.847] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) +[2619043.851] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619043.854] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619043.858] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2619043.900] {Default Queue} -> wl_buffer#1597.destroy() +[2619043.914] {Default Queue} -> wl_buffer#1598.destroy() +[2619043.919] {Default Queue} -> wl_shm_pool#1595.destroy() +[2619043.923] {Default Queue} -> wl_shm_pool#1596.destroy() +[2619043.973] {Default Queue} -> wl_shm#1583.create_pool(new id wl_shm_pool#3099, fd 575, 16) +[2619043.980] {Default Queue} -> wl_shm#1583.create_pool(new id wl_shm_pool#3614, fd 578, 16) +[2619043.984] {Default Queue} -> wl_shm_pool#3099.create_buffer(new id wl_buffer#3611, 0, 2, 2, 8, 0) +[2619043.990] {Default Queue} -> wl_shm_pool#3614.create_buffer(new id wl_buffer#1276, 0, 2, 2, 8, 0) +[2619043.997] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) +[2619044.001] {Default Queue} -> wl_surface#1575.commit() +[2619044.007] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) +[2619044.011] {Default Queue} -> wl_surface#1575.commit() +[2619044.023] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619044.027] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619044.032] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619044.035] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619044.044] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619044.048] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619044.052] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619044.056] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619044.065] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619044.069] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619044.073] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619044.077] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619044.082] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619044.086] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619044.090] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619044.094] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619044.099] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619044.103] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619044.107] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619044.111] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619044.166] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619044.170] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619044.174] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619044.182] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619044.191] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2619044.196] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2619044.204] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619044.209] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619044.212] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619044.216] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619044.221] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619044.225] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619044.229] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619044.232] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619044.237] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619044.241] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619044.245] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619044.249] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619044.253] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619044.257] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619044.261] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619044.265] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619044.272] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619044.276] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619044.280] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619044.283] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619044.288] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619044.292] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619044.296] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619044.299] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619044.304] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619044.308] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619044.312] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619044.315] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619044.321] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619044.325] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619044.328] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619044.332] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619044.337] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) +[2619044.341] {Default Queue} -> wl_surface#1575.commit() +[2619044.348] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) +[2619044.352] {Default Queue} -> wl_surface#1575.commit() +[2619045.420] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) +[2619045.432] {Default Queue} -> wl_surface#1575.commit() +[2619045.443] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619045.448] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619045.452] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619045.456] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619045.463] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619045.469] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619045.473] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619045.476] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619045.483] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619045.487] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619045.491] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619045.494] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619045.504] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619045.510] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619045.514] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619045.518] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619045.523] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619045.527] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619045.531] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619045.534] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619045.581] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619045.586] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619045.589] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619045.593] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619045.599] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2619045.603] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2619045.612] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619045.616] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619045.619] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619045.623] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619045.628] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619045.632] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619045.635] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619045.639] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619045.644] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619045.648] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619045.652] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619045.655] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619045.661] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619045.664] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619045.668] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619045.672] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619045.678] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619045.682] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619045.686] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619045.689] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619045.694] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619045.698] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619045.702] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619045.705] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619045.710] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619045.713] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619045.717] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619045.721] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619045.726] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619045.730] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619045.734] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619045.738] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619045.742] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) +[2619045.746] {Default Queue} -> wl_surface#1575.commit() +[2619045.750] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) +[2619045.754] {Default Queue} -> wl_surface#1575.commit() +[2619045.760] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) +[2619045.764] {Default Queue} -> wl_surface#1575.commit() +[2619045.770] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) +[2619045.777] {Default Queue} -> wl_surface#1543.commit() +[2619046.844] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) +[2619046.856] {Default Queue} -> wl_surface#1543.commit() +[2619046.873] {Default Queue} -> wl_region#1567.subtract(0, 0, 140, 241) +[2619046.878] {Default Queue} -> wl_region#1567.add(-138, -219, 140, 221) +[2619046.882] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) +[2619046.885] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) +[2619046.891] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) +[2619046.895] {Default Queue} -> wl_surface#1543.commit() +[2619046.899] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) +[2619046.903] {Default Queue} -> wl_surface#1543.commit() +[2619046.909] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) +[2619046.913] {Default Queue} -> wl_surface#1543.commit() +[2619046.918] {Default Queue} -> wl_region#1503.subtract(0, 0, 109, 161) +[2619046.925] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 236) +[2619046.929] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 236) +[2619046.933] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2619046.937] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2619047.037] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 236) +[2619047.042] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 236) +[2619047.046] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2619047.050] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2619047.057] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2619047.061] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2619047.135] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 236) +[2619047.140] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 236) +[2619047.144] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2619047.147] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2619047.153] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2619047.157] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2619047.162] {Default Queue} -> wl_region#1567.subtract(0, 0, 140, 241) +[2619047.166] {Default Queue} -> wl_region#1567.add(-138, -219, 140, 221) +[2619047.170] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) +[2619047.173] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) +[2619047.178] {Default Queue} -> wl_surface#1479.damage(0, 0, 109, 161) +[2619047.182] {Default Queue} -> wl_region#1503.subtract(0, 0, 247, 380) +[2619047.186] {Default Queue} -> wl_region#1503.add(-135, -216, 244, 377) +[2619047.189] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) +[2619047.193] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) +[2619047.197] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2619047.201] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2619047.205] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) +[2619047.208] {Default Queue} -> wl_surface#1479.damage(0, 0, 109, 161) +[2619047.222] {Default Queue} -> wl_buffer#3700.destroy() +[2619047.227] {Default Queue} -> wl_buffer#3701.destroy() +[2619047.231] {Default Queue} -> wl_shm_pool#3698.destroy() +[2619047.234] {Default Queue} -> wl_shm_pool#3699.destroy() +[2619047.319] {Default Queue} -> wl_shm#1487.create_pool(new id wl_shm_pool#3613, fd 575, 70196) +[2619047.327] {Default Queue} -> wl_shm#1487.create_pool(new id wl_shm_pool#2430, fd 578, 70196) +[2619047.331] {Default Queue} -> wl_shm_pool#3613.create_buffer(new id wl_buffer#2427, 0, 109, 161, 436, 0) +[2619047.336] {Default Queue} -> wl_shm_pool#2430.create_buffer(new id wl_buffer#2140, 0, 109, 161, 436, 0) +[2619047.357] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) +[2619047.361] {Default Queue} -> wl_surface#1479.commit() +[2619047.382] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) +[2619047.390] {Default Queue} -> wl_surface#1479.commit() +[2619047.401] {Default Queue} -> wl_region#1503.subtract(0, 0, 247, 380) +[2619047.405] {Default Queue} -> wl_region#1503.add(-135, -216, 244, 377) +[2619047.409] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) +[2619047.413] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) +[2619047.419] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) +[2619047.423] {Default Queue} -> wl_surface#1479.commit() +[2619047.431] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) +[2619047.434] {Default Queue} -> wl_surface#1479.commit() +[2619048.505] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) +[2619048.517] {Default Queue} -> wl_surface#1479.commit() +[2619048.529] {Default Queue} -> wl_region#1503.subtract(0, 0, 247, 380) +[2619048.535] {Default Queue} -> wl_region#1503.add(-135, -216, 244, 377) +[2619048.539] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) +[2619048.543] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) +[2619048.550] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) +[2619048.554] {Default Queue} -> wl_surface#1479.commit() +[2619048.559] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) +[2619048.562] {Default Queue} -> wl_surface#1479.commit() +[2619048.570] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) +[2619048.574] {Default Queue} -> wl_surface#1479.commit() +[2619048.589] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) +[2619048.593] {Default Queue} -> wl_surface#1447.commit() +[2619049.658] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) +[2619049.663] {Default Queue} -> wl_surface#1447.commit() +[2619049.673] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) +[2619049.677] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) +[2619049.681] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2619049.685] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2619049.693] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) +[2619049.697] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) +[2619049.701] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2619049.704] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2619049.710] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) +[2619049.714] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) +[2619049.718] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2619049.721] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2619049.727] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) +[2619049.731] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) +[2619049.735] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2619049.738] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2619049.744] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) +[2619049.748] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) +[2619049.752] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) +[2619049.756] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) +[2619049.763] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) +[2619049.767] {Default Queue} -> wl_surface#1447.commit() +[2619049.772] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) +[2619049.775] {Default Queue} -> wl_surface#1447.commit() +[2619049.782] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) +[2619049.789] {Default Queue} -> wl_surface#1447.commit() +[2619049.795] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) +[2619049.800] {Default Queue} -> wl_surface#1671.commit() +[2619050.863] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) +[2619050.878] {Default Queue} -> wl_surface#1671.commit() +[2619050.890] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 236) +[2619050.900] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 236) +[2619050.907] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2619050.911] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2619050.974] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 236) +[2619050.978] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 236) +[2619050.982] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2619050.986] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2619050.993] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2619050.997] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2619051.037] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 236) +[2619051.041] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 236) +[2619051.045] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2619051.049] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2619051.054] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2619051.058] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2619051.063] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) +[2619051.067] {Default Queue} -> wl_surface#1671.commit() +[2619051.070] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) +[2619051.074] {Default Queue} -> wl_surface#1671.commit() +[2619051.080] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) +[2619051.086] {Default Queue} -> wl_surface#1671.commit() +[2619051.090] {Default Queue} -> wl_region#1759.subtract(0, 0, 2, 2) +[2619051.095] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 232) +[2619051.099] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 221) +[2619051.102] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2619051.106] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2619051.110] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) +[2619051.124] {Default Queue} -> wl_buffer#1757.destroy() +[2619051.129] {Default Queue} -> wl_buffer#1758.destroy() +[2619051.133] {Default Queue} -> wl_shm_pool#1755.destroy() +[2619051.136] {Default Queue} -> wl_shm_pool#1756.destroy() +[2619051.181] {Default Queue} -> wl_shm#1743.create_pool(new id wl_shm_pool#2429, fd 575, 16) +[2619051.186] {Default Queue} -> wl_shm#1743.create_pool(new id wl_shm_pool#2428, fd 578, 16) +[2619051.191] {Default Queue} -> wl_shm_pool#2429.create_buffer(new id wl_buffer#3132, 0, 2, 2, 8, 0) +[2619051.195] {Default Queue} -> wl_shm_pool#2428.create_buffer(new id wl_buffer#3035, 0, 2, 2, 8, 0) +[2619051.202] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) +[2619051.206] {Default Queue} -> wl_surface#1735.commit() +[2619051.211] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) +[2619051.215] {Default Queue} -> wl_surface#1735.commit() +[2619051.223] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) +[2619051.227] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) +[2619051.231] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2619051.235] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2619051.242] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) +[2619051.246] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) +[2619051.250] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2619051.253] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2619051.260] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) +[2619051.264] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) +[2619051.267] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2619051.271] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2619051.276] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) +[2619051.280] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) +[2619051.290] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2619051.295] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2619051.301] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) +[2619051.305] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) +[2619051.308] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2619051.312] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2619051.324] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) +[2619051.329] {Default Queue} -> wl_surface#1735.commit() +[2619051.334] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) +[2619051.338] {Default Queue} -> wl_surface#1735.commit() +[2619051.938] {Display Queue} wl_display#1.delete_id(1053) +[2619051.951] {Display Queue} wl_display#1.delete_id(1054) +[2619051.957] {Display Queue} wl_display#1.delete_id(1051) +[2619051.963] {Display Queue} wl_display#1.delete_id(1052) +[2619051.969] {Display Queue} wl_display#1.delete_id(62) +[2619051.975] {Display Queue} wl_display#1.delete_id(61) +[2619051.981] {Display Queue} wl_display#1.delete_id(60) +[2619051.987] {Display Queue} wl_display#1.delete_id(59) +[2619051.993] {Display Queue} wl_display#1.delete_id(189) +[2619051.999] {Display Queue} wl_display#1.delete_id(190) +[2619052.004] {Display Queue} wl_display#1.delete_id(187) +[2619052.010] {Display Queue} wl_display#1.delete_id(188) +[2619052.016] {Display Queue} wl_display#1.delete_id(476) +[2619052.021] {Display Queue} wl_display#1.delete_id(1597) +[2619052.027] {Display Queue} wl_display#1.delete_id(1598) +[2619052.033] {Display Queue} wl_display#1.delete_id(1595) +[2619052.038] {Display Queue} wl_display#1.delete_id(1596) +[2619052.044] {Default Queue} wl_pointer#24.motion(187310681, 24.19921875, 13.80078125) +[2619052.051] {Default Queue} wl_pointer#81.motion(187310681, 24.19921875, 13.80078125) +[2619052.060] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619052.070] {Default Queue} wl_pointer#105.motion(187310681, 24.19921875, 13.80078125) +[2619052.079] {Default Queue} wl_pointer#137.motion(187310681, 24.19921875, 13.80078125) +[2619052.090] {Default Queue} wl_pointer#169.motion(187310681, 24.19921875, 13.80078125) +[2619052.096] {Default Queue} wl_pointer#201.motion(187310681, 24.19921875, 13.80078125) +[2619052.102] {Default Queue} wl_pointer#233.motion(187310681, 24.19921875, 13.80078125) +[2619052.109] {Default Queue} wl_pointer#265.motion(187310681, 24.19921875, 13.80078125) +[2619052.115] {Default Queue} wl_pointer#297.motion(187310681, 24.19921875, 13.80078125) +[2619052.121] {Default Queue} wl_pointer#329.motion(187310681, 24.19921875, 13.80078125) +[2619052.127] {Default Queue} wl_pointer#361.motion(187310681, 24.19921875, 13.80078125) +[2619052.133] {Default Queue} wl_pointer#393.motion(187310681, 24.19921875, 13.80078125) +[2619052.139] {Default Queue} wl_pointer#425.motion(187310681, 24.19921875, 13.80078125) +[2619052.145] {Default Queue} wl_pointer#457.motion(187310681, 24.19921875, 13.80078125) +[2619052.151] {Default Queue} wl_pointer#489.motion(187310681, 24.19921875, 13.80078125) +[2619052.157] {Default Queue} wl_pointer#521.motion(187310681, 24.19921875, 13.80078125) +[2619052.164] {Default Queue} wl_pointer#553.motion(187310681, 24.19921875, 13.80078125) +[2619052.170] {Default Queue} wl_pointer#585.motion(187310681, 24.19921875, 13.80078125) +[2619052.176] {Default Queue} wl_pointer#617.motion(187310681, 24.19921875, 13.80078125) +[2619052.182] {Default Queue} wl_pointer#649.motion(187310681, 24.19921875, 13.80078125) +[2619052.188] {Default Queue} wl_pointer#681.motion(187310681, 24.19921875, 13.80078125) +[2619052.194] {Default Queue} wl_pointer#713.motion(187310681, 24.19921875, 13.80078125) +[2619052.200] {Default Queue} wl_pointer#745.motion(187310681, 24.19921875, 13.80078125) +[2619052.206] {Default Queue} wl_pointer#777.motion(187310681, 24.19921875, 13.80078125) +[2619052.213] {Default Queue} wl_pointer#809.motion(187310681, 24.19921875, 13.80078125) +[2619052.219] {Default Queue} wl_pointer#841.motion(187310681, 24.19921875, 13.80078125) +[2619052.231] {Default Queue} wl_pointer#873.motion(187310681, 24.19921875, 13.80078125) +[2619052.241] {Default Queue} wl_pointer#905.motion(187310681, 24.19921875, 13.80078125) +[2619052.247] {Default Queue} wl_pointer#937.motion(187310681, 24.19921875, 13.80078125) +[2619052.254] {Default Queue} wl_pointer#969.motion(187310681, 24.19921875, 13.80078125) +[2619052.260] {Default Queue} wl_pointer#1001.motion(187310681, 24.19921875, 13.80078125) +[2619052.266] {Default Queue} wl_pointer#1033.motion(187310681, 24.19921875, 13.80078125) +[2619052.272] {Default Queue} wl_pointer#1065.motion(187310681, 24.19921875, 13.80078125) +[2619052.278] {Default Queue} wl_pointer#1097.motion(187310681, 24.19921875, 13.80078125) +[2619052.284] {Default Queue} wl_pointer#1129.motion(187310681, 24.19921875, 13.80078125) +[2619052.290] {Default Queue} wl_pointer#1161.motion(187310681, 24.19921875, 13.80078125) +[2619052.296] {Default Queue} wl_pointer#1193.motion(187310681, 24.19921875, 13.80078125) +[2619052.302] {Default Queue} wl_pointer#1225.motion(187310681, 24.19921875, 13.80078125) +[2619052.308] {Default Queue} wl_pointer#1257.motion(187310681, 24.19921875, 13.80078125) +[2619052.314] {Default Queue} wl_pointer#1289.motion(187310681, 24.19921875, 13.80078125) +[2619052.320] {Default Queue} wl_pointer#1321.motion(187310681, 24.19921875, 13.80078125) +[2619052.326] {Default Queue} wl_pointer#1353.motion(187310681, 24.19921875, 13.80078125) +[2619052.332] {Default Queue} wl_pointer#1385.motion(187310681, 24.19921875, 13.80078125) +[2619052.338] {Default Queue} wl_pointer#1417.motion(187310681, 24.19921875, 13.80078125) +[2619052.344] {Default Queue} wl_pointer#1449.motion(187310681, 24.19921875, 13.80078125) +[2619052.350] {Default Queue} wl_pointer#1481.motion(187310681, 24.19921875, 13.80078125) +[2619052.356] {Default Queue} wl_pointer#1513.motion(187310681, 24.19921875, 13.80078125) +[2619052.363] {Default Queue} wl_pointer#1545.motion(187310681, 24.19921875, 13.80078125) +[2619052.369] {Default Queue} wl_pointer#1577.motion(187310681, 24.19921875, 13.80078125) +[2619052.375] {Default Queue} wl_pointer#1609.motion(187310681, 24.19921875, 13.80078125) +[2619052.382] {Default Queue} wl_pointer#1641.motion(187310681, 24.19921875, 13.80078125) +[2619052.388] {Default Queue} wl_pointer#1673.motion(187310681, 24.19921875, 13.80078125) +[2619052.394] {Default Queue} wl_pointer#1705.motion(187310681, 24.19921875, 13.80078125) +[2619052.400] {Default Queue} wl_pointer#1737.motion(187310681, 24.19921875, 13.80078125) +[2619052.406] {Default Queue} wl_pointer#1762.motion(187310681, 24.19921875, 13.80078125) +[2619052.413] {Default Queue} wl_pointer#1801.motion(187310681, 24.19921875, 13.80078125) +[2619052.419] {Default Queue} wl_pointer#1833.motion(187310681, 24.19921875, 13.80078125) +[2619052.425] {Default Queue} wl_pointer#1865.motion(187310681, 24.19921875, 13.80078125) +[2619052.431] {Default Queue} wl_pointer#1897.motion(187310681, 24.19921875, 13.80078125) +[2619052.437] {Default Queue} wl_pointer#1929.motion(187310681, 24.19921875, 13.80078125) +[2619052.443] {Default Queue} wl_pointer#1961.motion(187310681, 24.19921875, 13.80078125) +[2619052.449] {Default Queue} wl_pointer#1993.motion(187310681, 24.19921875, 13.80078125) +[2619052.455] {Default Queue} wl_pointer#2025.motion(187310681, 24.19921875, 13.80078125) +[2619052.462] {Default Queue} wl_pointer#2057.motion(187310681, 24.19921875, 13.80078125) +[2619052.468] {Default Queue} wl_pointer#2089.motion(187310681, 24.19921875, 13.80078125) +[2619052.474] {Default Queue} wl_pointer#2121.motion(187310681, 24.19921875, 13.80078125) +[2619052.480] {Default Queue} wl_pointer#2153.motion(187310681, 24.19921875, 13.80078125) +[2619052.486] {Default Queue} wl_pointer#2185.motion(187310681, 24.19921875, 13.80078125) +[2619052.492] {Default Queue} wl_pointer#2217.motion(187310681, 24.19921875, 13.80078125) +[2619052.498] {Default Queue} wl_pointer#2249.motion(187310681, 24.19921875, 13.80078125) +[2619052.504] {Default Queue} wl_pointer#2281.motion(187310681, 24.19921875, 13.80078125) +[2619052.515] {Default Queue} wl_pointer#2313.motion(187310681, 24.19921875, 13.80078125) +[2619052.524] {Default Queue} wl_pointer#2345.motion(187310681, 24.19921875, 13.80078125) +[2619052.530] {Default Queue} wl_pointer#2377.motion(187310681, 24.19921875, 13.80078125) +[2619052.536] {Default Queue} wl_pointer#2409.motion(187310681, 24.19921875, 13.80078125) +[2619052.542] {Default Queue} wl_pointer#2441.motion(187310681, 24.19921875, 13.80078125) +[2619052.549] {Default Queue} wl_pointer#2473.motion(187310681, 24.19921875, 13.80078125) +[2619052.555] {Default Queue} wl_pointer#2498.motion(187310681, 24.19921875, 13.80078125) +[2619052.572] {Default Queue} -> wl_buffer#3131.destroy() +[2619052.579] {Default Queue} -> wl_buffer#3325.destroy() +[2619052.585] {Default Queue} -> wl_shm_pool#3326.destroy() +[2619052.591] {Default Queue} -> wl_shm_pool#3323.destroy() +[2619052.598] {Default Queue} -> wl_surface#3324.destroy() +[2619052.652] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#1596, fd 575, 640) +[2619052.662] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#1595, fd 578, 640) +[2619052.668] {Default Queue} -> wl_shm_pool#1596.create_buffer(new id wl_buffer#1598, 0, 10, 16, 40, 0) +[2619052.675] {Default Queue} -> wl_shm_pool#1595.create_buffer(new id wl_buffer#1597, 0, 10, 16, 40, 0) +[2619052.685] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#476) +[2619052.692] {Default Queue} -> wl_surface#476.attach(wl_buffer#1598, 0, 0) +[2619052.698] {Default Queue} -> wl_surface#476.commit() +[2619052.706] {Default Queue} -> wl_surface#476.attach(wl_buffer#1598, 0, 0) +[2619052.712] {Default Queue} -> wl_surface#476.commit() +[2619052.718] {Default Queue} wl_pointer#2537.motion(187310681, 24.19921875, 13.80078125) +[2619052.724] {Default Queue} wl_pointer#2569.motion(187310681, 24.19921875, 13.80078125) +[2619052.729] {Default Queue} wl_pointer#2601.motion(187310681, 24.19921875, 13.80078125) +[2619052.733] {Default Queue} wl_pointer#2633.motion(187310681, 24.19921875, 13.80078125) +[2619052.737] {Default Queue} wl_pointer#2665.motion(187310681, 24.19921875, 13.80078125) +[2619052.741] {Default Queue} wl_pointer#2697.motion(187310681, 24.19921875, 13.80078125) +[2619052.745] {Default Queue} wl_pointer#2729.motion(187310681, 24.19921875, 13.80078125) +[2619052.749] {Default Queue} wl_pointer#2761.motion(187310681, 24.19921875, 13.80078125) +[2619052.753] {Default Queue} wl_pointer#2793.motion(187310681, 24.19921875, 13.80078125) +[2619052.757] {Default Queue} wl_pointer#2825.motion(187310681, 24.19921875, 13.80078125) +[2619052.761] {Default Queue} wl_pointer#2857.motion(187310681, 24.19921875, 13.80078125) +[2619052.766] {Default Queue} wl_pointer#2889.motion(187310681, 24.19921875, 13.80078125) +[2619052.770] {Default Queue} wl_pointer#2921.motion(187310681, 24.19921875, 13.80078125) +[2619052.774] {Default Queue} wl_pointer#2953.motion(187310681, 24.19921875, 13.80078125) +[2619052.778] {Default Queue} wl_pointer#2985.motion(187310681, 24.19921875, 13.80078125) +[2619052.782] {Default Queue} wl_pointer#3017.motion(187310681, 24.19921875, 13.80078125) +[2619052.786] {Default Queue} wl_pointer#3049.motion(187310681, 24.19921875, 13.80078125) +[2619052.790] {Default Queue} wl_pointer#3081.motion(187310681, 24.19921875, 13.80078125) +[2619052.794] {Default Queue} wl_pointer#3113.motion(187310681, 24.19921875, 13.80078125) +[2619052.798] {Default Queue} wl_pointer#3145.motion(187310681, 24.19921875, 13.80078125) +[2619052.802] {Default Queue} wl_pointer#3177.motion(187310681, 24.19921875, 13.80078125) +[2619052.806] {Default Queue} wl_pointer#3209.motion(187310681, 24.19921875, 13.80078125) +[2619052.810] {Default Queue} wl_pointer#3241.motion(187310681, 24.19921875, 13.80078125) +[2619052.815] {Default Queue} wl_pointer#3273.motion(187310681, 24.19921875, 13.80078125) +[2619052.819] {Default Queue} wl_pointer#3305.motion(187310681, 24.19921875, 13.80078125) +[2619052.824] {Default Queue} wl_pointer#3337.motion(187310681, 24.19921875, 13.80078125) +[2619052.828] {Default Queue} wl_pointer#3369.motion(187310681, 24.19921875, 13.80078125) +[2619052.834] {Default Queue} wl_pointer#3401.motion(187310681, 24.19921875, 13.80078125) +[2619052.840] {Default Queue} wl_pointer#3433.motion(187310681, 24.19921875, 13.80078125) +[2619052.845] {Default Queue} wl_pointer#3465.motion(187310681, 24.19921875, 13.80078125) +[2619052.849] {Default Queue} wl_pointer#3497.motion(187310681, 24.19921875, 13.80078125) +[2619052.853] {Default Queue} wl_pointer#3529.motion(187310681, 24.19921875, 13.80078125) +[2619052.857] {Default Queue} wl_pointer#3561.motion(187310681, 24.19921875, 13.80078125) +[2619052.869] {Default Queue} wl_pointer#3593.motion(187310681, 24.19921875, 13.80078125) +[2619052.891] {Default Queue} wl_pointer#3625.motion(187310681, 24.19921875, 13.80078125) +[2619052.895] {Default Queue} wl_pointer#3657.motion(187310681, 24.19921875, 13.80078125) +[2619052.900] {Default Queue} wl_pointer#3695.motion(187310681, 24.19921875, 13.80078125) +[2619052.912] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) +[2619052.917] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) +[2619052.921] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2619052.925] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2619052.933] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) +[2619052.937] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) +[2619052.941] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2619052.945] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2619052.953] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) +[2619052.957] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) +[2619052.961] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2619052.965] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2619052.970] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) +[2619052.974] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) +[2619052.978] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2619052.982] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2619052.988] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) +[2619052.992] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) +[2619052.997] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2619053.000] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2619053.015] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) +[2619053.020] {Default Queue} -> wl_surface#1735.commit() +[2619053.024] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) +[2619053.028] {Default Queue} -> wl_surface#1735.commit() +[2619053.034] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) +[2619053.038] {Default Queue} -> wl_surface#1735.commit() +[2619053.044] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) +[2619053.048] {Default Queue} -> wl_surface#1703.commit() +[2619054.112] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) +[2619054.118] {Default Queue} -> wl_surface#1703.commit() +[2619054.124] {Default Queue} -> wl_region#1727.subtract(0, 0, 255, 241) +[2619054.129] {Default Queue} -> wl_region#1727.add(-253, -219, 255, 221) +[2619054.133] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) +[2619054.137] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) +[2619054.142] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) +[2619054.146] {Default Queue} -> wl_surface#1703.commit() +[2619054.150] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) +[2619054.154] {Default Queue} -> wl_surface#1703.commit() +[2619054.159] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) +[2619054.164] {Default Queue} -> wl_surface#1703.commit() +[2619054.168] {Default Queue} -> wl_region#1663.subtract(0, 0, 109, 161) +[2619054.175] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 236) +[2619054.179] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 236) +[2619054.188] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2619054.194] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2619054.256] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 236) +[2619054.261] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 236) +[2619054.265] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2619054.269] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2619054.276] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2619054.281] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2619054.320] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 236) +[2619054.326] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 236) +[2619054.330] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2619054.334] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2619054.339] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2619054.343] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2619054.349] {Default Queue} -> wl_region#1727.subtract(0, 0, 255, 241) +[2619054.353] {Default Queue} -> wl_region#1727.add(-253, -219, 255, 221) +[2619054.357] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) +[2619054.361] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) +[2619054.366] {Default Queue} -> wl_surface#1639.damage(0, 0, 109, 161) +[2619054.370] {Default Queue} -> wl_region#1663.subtract(0, 0, 362, 380) +[2619054.374] {Default Queue} -> wl_region#1663.add(-250, -216, 359, 377) +[2619054.378] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) +[2619054.382] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) +[2619054.386] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2619054.391] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) +[2619054.395] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) +[2619054.399] {Default Queue} -> wl_surface#1639.damage(0, 0, 109, 161) +[2619054.412] {Default Queue} -> wl_buffer#3704.destroy() +[2619054.418] {Default Queue} -> wl_buffer#3705.destroy() +[2619054.421] {Default Queue} -> wl_shm_pool#3702.destroy() +[2619054.425] {Default Queue} -> wl_shm_pool#3703.destroy() +[2619054.508] {Default Queue} -> wl_shm#1647.create_pool(new id wl_shm_pool#188, fd 575, 70196) +[2619054.515] {Default Queue} -> wl_shm#1647.create_pool(new id wl_shm_pool#187, fd 578, 70196) +[2619054.520] {Default Queue} -> wl_shm_pool#188.create_buffer(new id wl_buffer#190, 0, 109, 161, 436, 0) +[2619054.524] {Default Queue} -> wl_shm_pool#187.create_buffer(new id wl_buffer#189, 0, 109, 161, 436, 0) +[2619054.546] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) +[2619054.551] {Default Queue} -> wl_surface#1639.commit() +[2619054.571] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) +[2619054.576] {Default Queue} -> wl_surface#1639.commit() +[2619054.584] {Default Queue} -> wl_region#1663.subtract(0, 0, 362, 380) +[2619054.589] {Default Queue} -> wl_region#1663.add(-250, -216, 359, 377) +[2619054.593] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) +[2619054.597] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) +[2619054.604] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) +[2619054.608] {Default Queue} -> wl_surface#1639.commit() +[2619054.615] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) +[2619054.619] {Default Queue} -> wl_surface#1639.commit() +[2619055.684] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) +[2619055.690] {Default Queue} -> wl_surface#1639.commit() +[2619055.697] {Default Queue} -> wl_region#1663.subtract(0, 0, 362, 380) +[2619055.701] {Default Queue} -> wl_region#1663.add(-250, -216, 359, 377) +[2619055.705] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) +[2619055.709] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) +[2619055.716] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) +[2619055.724] {Default Queue} -> wl_surface#1639.commit() +[2619055.731] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) +[2619055.735] {Default Queue} -> wl_surface#1639.commit() +[2619055.742] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) +[2619055.746] {Default Queue} -> wl_surface#1639.commit() +[2619055.757] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) +[2619055.762] {Default Queue} -> wl_surface#1607.commit() +[2619056.824] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) +[2619056.829] {Default Queue} -> wl_surface#1607.commit() +[2619056.838] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) +[2619056.843] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) +[2619056.847] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2619056.851] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2619056.859] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) +[2619056.869] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) +[2619056.873] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2619056.877] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2619056.882] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) +[2619056.886] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) +[2619056.891] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2619056.894] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2619056.900] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) +[2619056.904] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) +[2619056.908] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2619056.912] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2619056.918] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) +[2619056.923] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) +[2619056.927] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) +[2619056.930] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) +[2619056.937] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) +[2619056.941] {Default Queue} -> wl_surface#1607.commit() +[2619056.946] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) +[2619056.950] {Default Queue} -> wl_surface#1607.commit() +[2619056.957] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) +[2619056.961] {Default Queue} -> wl_surface#1607.commit() +[2619056.967] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) +[2619056.971] {Default Queue} -> wl_surface#1831.commit() +[2619058.032] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) +[2619058.037] {Default Queue} -> wl_surface#1831.commit() +[2619058.045] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 236) +[2619058.050] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 236) +[2619058.054] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2619058.057] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2619058.133] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 236) +[2619058.138] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 236) +[2619058.142] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2619058.146] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2619058.152] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2619058.157] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2619058.204] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 236) +[2619058.211] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 236) +[2619058.214] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2619058.218] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2619058.223] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2619058.231] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2619058.238] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) +[2619058.242] {Default Queue} -> wl_surface#1831.commit() +[2619058.246] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) +[2619058.250] {Default Queue} -> wl_surface#1831.commit() +[2619058.255] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) +[2619058.259] {Default Queue} -> wl_surface#1831.commit() +[2619058.264] {Default Queue} -> wl_region#1919.subtract(0, 0, 2, 2) +[2619058.268] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 221) +[2619058.272] {Default Queue} -> wl_region#1919.add(-368, -239, 369, 220) +[2619058.276] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) +[2619058.280] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) +[2619058.284] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2619058.298] {Default Queue} -> wl_buffer#1917.destroy() +[2619058.304] {Default Queue} -> wl_buffer#1918.destroy() +[2619058.308] {Default Queue} -> wl_shm_pool#1915.destroy() +[2619058.312] {Default Queue} -> wl_shm_pool#1916.destroy() +[2619058.351] {Default Queue} -> wl_shm#1903.create_pool(new id wl_shm_pool#59, fd 575, 16) +[2619058.358] {Default Queue} -> wl_shm#1903.create_pool(new id wl_shm_pool#60, fd 578, 16) +[2619058.362] {Default Queue} -> wl_shm_pool#59.create_buffer(new id wl_buffer#61, 0, 2, 2, 8, 0) +[2619058.367] {Default Queue} -> wl_shm_pool#60.create_buffer(new id wl_buffer#62, 0, 2, 2, 8, 0) +[2619058.374] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) +[2619058.378] {Default Queue} -> wl_surface#1895.commit() +[2619058.383] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) +[2619058.387] {Default Queue} -> wl_surface#1895.commit() +[2619058.395] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 241) +[2619058.400] {Default Queue} -> wl_region#1919.add(-368, -239, 369, 240) +[2619058.404] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) +[2619058.408] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) +[2619058.414] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 241) +[2619058.418] {Default Queue} -> wl_region#1919.add(-368, -239, 369, 240) +[2619058.422] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) +[2619058.426] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) +[2619058.436] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2619058.441] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2619058.445] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) +[2619058.449] {Default Queue} -> wl_surface#1895.commit() +[2619058.455] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) +[2619058.459] {Default Queue} -> wl_surface#1895.commit() +[2619059.521] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) +[2619059.527] {Default Queue} -> wl_surface#1895.commit() +[2619059.532] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 241) +[2619059.536] {Default Queue} -> wl_region#1919.add(-368, -239, 369, 240) +[2619059.540] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) +[2619059.544] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) +[2619059.549] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 241) +[2619059.553] {Default Queue} -> wl_region#1919.add(-368, -239, 369, 240) +[2619059.557] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) +[2619059.561] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) +[2619059.567] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2619059.571] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2619059.575] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) +[2619059.579] {Default Queue} -> wl_surface#1895.commit() +[2619059.583] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) +[2619059.587] {Default Queue} -> wl_surface#1895.commit() +[2619059.592] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) +[2619059.600] {Default Queue} -> wl_surface#1895.commit() +[2619059.607] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) +[2619059.611] {Default Queue} -> wl_surface#1863.commit() +[2619060.675] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) +[2619060.684] {Default Queue} -> wl_surface#1863.commit() +[2619060.694] {Default Queue} -> wl_region#1887.subtract(0, 0, 370, 241) +[2619060.701] {Default Queue} -> wl_region#1887.add(-368, -219, 370, 221) +[2619060.707] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) +[2619060.713] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) +[2619060.721] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) +[2619060.727] {Default Queue} -> wl_surface#1863.commit() +[2619060.733] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) +[2619060.738] {Default Queue} -> wl_surface#1863.commit() +[2619060.747] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) +[2619060.752] {Default Queue} -> wl_surface#1863.commit() +[2619060.756] {Default Queue} -> wl_region#1823.subtract(0, 0, 109, 161) +[2619060.762] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 236) +[2619060.767] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 236) +[2619060.771] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2619060.775] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2619060.840] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 236) +[2619060.845] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 236) +[2619060.849] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2619060.853] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2619060.859] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2619060.869] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2619060.914] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 236) +[2619060.919] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 236) +[2619060.923] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2619060.927] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2619060.933] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2619060.937] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2619060.942] {Default Queue} -> wl_region#1887.subtract(0, 0, 370, 241) +[2619060.946] {Default Queue} -> wl_region#1887.add(-368, -219, 370, 221) +[2619060.950] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) +[2619060.954] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) +[2619060.959] {Default Queue} -> wl_surface#1799.damage(0, 0, 109, 161) +[2619060.963] {Default Queue} -> wl_region#1823.subtract(0, 0, 477, 380) +[2619060.967] {Default Queue} -> wl_region#1823.add(-365, -216, 474, 377) +[2619060.971] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) +[2619060.975] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) +[2619060.979] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2619060.983] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2619060.987] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) +[2619060.991] {Default Queue} -> wl_surface#1799.damage(0, 0, 109, 161) +[2619061.003] {Default Queue} -> wl_buffer#3708.destroy() +[2619061.008] {Default Queue} -> wl_buffer#3709.destroy() +[2619061.012] {Default Queue} -> wl_shm_pool#3706.destroy() +[2619061.016] {Default Queue} -> wl_shm_pool#3707.destroy() +[2619061.102] {Default Queue} -> wl_shm#1807.create_pool(new id wl_shm_pool#1052, fd 575, 70196) +[2619061.109] {Default Queue} -> wl_shm#1807.create_pool(new id wl_shm_pool#1051, fd 578, 70196) +[2619061.113] {Default Queue} -> wl_shm_pool#1052.create_buffer(new id wl_buffer#1054, 0, 109, 161, 436, 0) +[2619061.118] {Default Queue} -> wl_shm_pool#1051.create_buffer(new id wl_buffer#1053, 0, 109, 161, 436, 0) +[2619061.139] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) +[2619061.147] {Default Queue} -> wl_surface#1799.commit() +[2619061.170] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) +[2619061.175] {Default Queue} -> wl_surface#1799.commit() +[2619061.183] {Default Queue} -> wl_region#1823.subtract(0, 0, 477, 380) +[2619061.187] {Default Queue} -> wl_region#1823.add(-365, -216, 474, 377) +[2619061.191] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) +[2619061.195] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) +[2619061.201] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) +[2619061.205] {Default Queue} -> wl_surface#1799.commit() +[2619061.213] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) +[2619061.217] {Default Queue} -> wl_surface#1799.commit() +[2619062.284] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) +[2619062.294] {Default Queue} -> wl_surface#1799.commit() +[2619062.304] {Default Queue} -> wl_region#1823.subtract(0, 0, 477, 380) +[2619062.309] {Default Queue} -> wl_region#1823.add(-365, -216, 474, 377) +[2619062.313] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) +[2619062.318] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) +[2619062.325] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) +[2619062.329] {Default Queue} -> wl_surface#1799.commit() +[2619062.334] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) +[2619062.338] {Default Queue} -> wl_surface#1799.commit() +[2619062.345] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) +[2619062.352] {Default Queue} -> wl_surface#1799.commit() +[2619062.366] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) +[2619062.370] {Default Queue} -> wl_surface#1772.commit() +[2619062.555] {Display Queue} wl_display#1.delete_id(3700) +[2619062.562] {Display Queue} wl_display#1.delete_id(3701) +[2619062.566] {Display Queue} wl_display#1.delete_id(3698) +[2619062.570] {Display Queue} wl_display#1.delete_id(3699) +[2619062.574] {Display Queue} wl_display#1.delete_id(1757) +[2619062.578] {Display Queue} wl_display#1.delete_id(1758) +[2619062.582] {Display Queue} wl_display#1.delete_id(1755) +[2619062.585] {Display Queue} wl_display#1.delete_id(1756) +[2619062.589] {Display Queue} wl_display#1.delete_id(3131) +[2619062.593] {Display Queue} wl_display#1.delete_id(3325) +[2619062.597] {Display Queue} wl_display#1.delete_id(3326) +[2619062.601] {Display Queue} wl_display#1.delete_id(3323) +[2619062.606] {Display Queue} wl_display#1.delete_id(3324) +[2619062.609] {Display Queue} wl_display#1.delete_id(3704) +[2619062.613] {Display Queue} wl_display#1.delete_id(3705) +[2619062.617] {Display Queue} wl_display#1.delete_id(3702) +[2619062.621] {Display Queue} wl_display#1.delete_id(3703) +[2619062.625] {Default Queue} wl_pointer#24.motion(187310697, 23.80078125, 13.80078125) +[2619062.630] {Default Queue} wl_pointer#81.motion(187310697, 23.80078125, 13.80078125) +[2619062.636] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619062.640] {Default Queue} wl_pointer#105.motion(187310697, 23.80078125, 13.80078125) +[2619062.645] {Default Queue} wl_pointer#137.motion(187310697, 23.80078125, 13.80078125) +[2619062.649] {Default Queue} wl_pointer#169.motion(187310697, 23.80078125, 13.80078125) +[2619062.653] {Default Queue} wl_pointer#201.motion(187310697, 23.80078125, 13.80078125) +[2619062.657] {Default Queue} wl_pointer#233.motion(187310697, 23.80078125, 13.80078125) +[2619062.661] {Default Queue} wl_pointer#265.motion(187310697, 23.80078125, 13.80078125) +[2619062.665] {Default Queue} wl_pointer#297.motion(187310697, 23.80078125, 13.80078125) +[2619062.670] {Default Queue} wl_pointer#329.motion(187310697, 23.80078125, 13.80078125) +[2619062.674] {Default Queue} wl_pointer#361.motion(187310697, 23.80078125, 13.80078125) +[2619062.678] {Default Queue} wl_pointer#393.motion(187310697, 23.80078125, 13.80078125) +[2619062.682] {Default Queue} wl_pointer#425.motion(187310697, 23.80078125, 13.80078125) +[2619062.686] {Default Queue} wl_pointer#457.motion(187310697, 23.80078125, 13.80078125) +[2619062.695] {Default Queue} wl_pointer#489.motion(187310697, 23.80078125, 13.80078125) +[2619062.701] {Default Queue} wl_pointer#521.motion(187310697, 23.80078125, 13.80078125) +[2619062.705] {Default Queue} wl_pointer#553.motion(187310697, 23.80078125, 13.80078125) +[2619062.710] {Default Queue} wl_pointer#585.motion(187310697, 23.80078125, 13.80078125) +[2619062.714] {Default Queue} wl_pointer#617.motion(187310697, 23.80078125, 13.80078125) +[2619062.719] {Default Queue} wl_pointer#649.motion(187310697, 23.80078125, 13.80078125) +[2619062.723] {Default Queue} wl_pointer#681.motion(187310697, 23.80078125, 13.80078125) +[2619062.728] {Default Queue} wl_pointer#713.motion(187310697, 23.80078125, 13.80078125) +[2619062.734] {Default Queue} wl_pointer#745.motion(187310697, 23.80078125, 13.80078125) +[2619062.739] {Default Queue} wl_pointer#777.motion(187310697, 23.80078125, 13.80078125) +[2619062.746] {Default Queue} wl_pointer#809.motion(187310697, 23.80078125, 13.80078125) +[2619062.752] {Default Queue} wl_pointer#841.motion(187310697, 23.80078125, 13.80078125) +[2619062.757] {Default Queue} wl_pointer#873.motion(187310697, 23.80078125, 13.80078125) +[2619062.762] {Default Queue} wl_pointer#905.motion(187310697, 23.80078125, 13.80078125) +[2619062.766] {Default Queue} wl_pointer#937.motion(187310697, 23.80078125, 13.80078125) +[2619062.770] {Default Queue} wl_pointer#969.motion(187310697, 23.80078125, 13.80078125) +[2619062.774] {Default Queue} wl_pointer#1001.motion(187310697, 23.80078125, 13.80078125) +[2619062.778] {Default Queue} wl_pointer#1033.motion(187310697, 23.80078125, 13.80078125) +[2619062.783] {Default Queue} wl_pointer#1065.motion(187310697, 23.80078125, 13.80078125) +[2619062.787] {Default Queue} wl_pointer#1097.motion(187310697, 23.80078125, 13.80078125) +[2619062.791] {Default Queue} wl_pointer#1129.motion(187310697, 23.80078125, 13.80078125) +[2619062.796] {Default Queue} wl_pointer#1161.motion(187310697, 23.80078125, 13.80078125) +[2619062.800] {Default Queue} wl_pointer#1193.motion(187310697, 23.80078125, 13.80078125) +[2619062.804] {Default Queue} wl_pointer#1225.motion(187310697, 23.80078125, 13.80078125) +[2619062.808] {Default Queue} wl_pointer#1257.motion(187310697, 23.80078125, 13.80078125) +[2619062.812] {Default Queue} wl_pointer#1289.motion(187310697, 23.80078125, 13.80078125) +[2619062.816] {Default Queue} wl_pointer#1321.motion(187310697, 23.80078125, 13.80078125) +[2619062.820] {Default Queue} wl_pointer#1353.motion(187310697, 23.80078125, 13.80078125) +[2619062.824] {Default Queue} wl_pointer#1385.motion(187310697, 23.80078125, 13.80078125) +[2619062.828] {Default Queue} wl_pointer#1417.motion(187310697, 23.80078125, 13.80078125) +[2619062.833] {Default Queue} wl_pointer#1449.motion(187310697, 23.80078125, 13.80078125) +[2619062.837] {Default Queue} wl_pointer#1481.motion(187310697, 23.80078125, 13.80078125) +[2619062.841] {Default Queue} wl_pointer#1513.motion(187310697, 23.80078125, 13.80078125) +[2619062.845] {Default Queue} wl_pointer#1545.motion(187310697, 23.80078125, 13.80078125) +[2619062.850] {Default Queue} wl_pointer#1577.motion(187310697, 23.80078125, 13.80078125) +[2619062.854] {Default Queue} wl_pointer#1609.motion(187310697, 23.80078125, 13.80078125) +[2619062.858] {Default Queue} wl_pointer#1641.motion(187310697, 23.80078125, 13.80078125) +[2619062.869] {Default Queue} wl_pointer#1673.motion(187310697, 23.80078125, 13.80078125) +[2619062.873] {Default Queue} wl_pointer#1705.motion(187310697, 23.80078125, 13.80078125) +[2619062.877] {Default Queue} wl_pointer#1737.motion(187310697, 23.80078125, 13.80078125) +[2619062.882] {Default Queue} wl_pointer#1762.motion(187310697, 23.80078125, 13.80078125) +[2619062.886] {Default Queue} wl_pointer#1801.motion(187310697, 23.80078125, 13.80078125) +[2619062.890] {Default Queue} wl_pointer#1833.motion(187310697, 23.80078125, 13.80078125) +[2619062.894] {Default Queue} wl_pointer#1865.motion(187310697, 23.80078125, 13.80078125) +[2619062.898] {Default Queue} wl_pointer#1897.motion(187310697, 23.80078125, 13.80078125) +[2619062.908] {Default Queue} wl_pointer#1929.motion(187310697, 23.80078125, 13.80078125) +[2619062.914] {Default Queue} wl_pointer#1961.motion(187310697, 23.80078125, 13.80078125) +[2619062.919] {Default Queue} wl_pointer#1993.motion(187310697, 23.80078125, 13.80078125) +[2619062.924] {Default Queue} wl_pointer#2025.motion(187310697, 23.80078125, 13.80078125) +[2619062.928] {Default Queue} wl_pointer#2057.motion(187310697, 23.80078125, 13.80078125) +[2619062.932] {Default Queue} wl_pointer#2089.motion(187310697, 23.80078125, 13.80078125) +[2619062.936] {Default Queue} wl_pointer#2121.motion(187310697, 23.80078125, 13.80078125) +[2619062.940] {Default Queue} wl_pointer#2153.motion(187310697, 23.80078125, 13.80078125) +[2619062.944] {Default Queue} wl_pointer#2185.motion(187310697, 23.80078125, 13.80078125) +[2619062.949] {Default Queue} wl_pointer#2217.motion(187310697, 23.80078125, 13.80078125) +[2619062.953] {Default Queue} wl_pointer#2249.motion(187310697, 23.80078125, 13.80078125) +[2619062.957] {Default Queue} wl_pointer#2281.motion(187310697, 23.80078125, 13.80078125) +[2619062.961] {Default Queue} wl_pointer#2313.motion(187310697, 23.80078125, 13.80078125) +[2619062.965] {Default Queue} wl_pointer#2345.motion(187310697, 23.80078125, 13.80078125) +[2619062.970] {Default Queue} wl_pointer#2377.motion(187310697, 23.80078125, 13.80078125) +[2619062.974] {Default Queue} wl_pointer#2409.motion(187310697, 23.80078125, 13.80078125) +[2619062.978] {Default Queue} wl_pointer#2441.motion(187310697, 23.80078125, 13.80078125) +[2619062.982] {Default Queue} wl_pointer#2473.motion(187310697, 23.80078125, 13.80078125) +[2619062.986] {Default Queue} wl_pointer#2498.motion(187310697, 23.80078125, 13.80078125) +[2619062.999] {Default Queue} -> wl_buffer#1598.destroy() +[2619063.004] {Default Queue} -> wl_buffer#1597.destroy() +[2619063.008] {Default Queue} -> wl_shm_pool#1596.destroy() +[2619063.012] {Default Queue} -> wl_shm_pool#1595.destroy() +[2619063.017] {Default Queue} -> wl_surface#476.destroy() +[2619063.054] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3703, fd 575, 640) +[2619063.060] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3702, fd 578, 640) +[2619063.065] {Default Queue} -> wl_shm_pool#3703.create_buffer(new id wl_buffer#3705, 0, 10, 16, 40, 0) +[2619063.069] {Default Queue} -> wl_shm_pool#3702.create_buffer(new id wl_buffer#3704, 0, 10, 16, 40, 0) +[2619063.077] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3324) +[2619063.081] {Default Queue} -> wl_surface#3324.attach(wl_buffer#3705, 0, 0) +[2619063.085] {Default Queue} -> wl_surface#3324.commit() +[2619063.090] {Default Queue} -> wl_surface#3324.attach(wl_buffer#3705, 0, 0) +[2619063.094] {Default Queue} -> wl_surface#3324.commit() +[2619063.098] {Default Queue} wl_pointer#2537.motion(187310697, 23.80078125, 13.80078125) +[2619063.102] {Default Queue} wl_pointer#2569.motion(187310697, 23.80078125, 13.80078125) +[2619063.107] {Default Queue} wl_pointer#2601.motion(187310697, 23.80078125, 13.80078125) +[2619063.111] {Default Queue} wl_pointer#2633.motion(187310697, 23.80078125, 13.80078125) +[2619063.115] {Default Queue} wl_pointer#2665.motion(187310697, 23.80078125, 13.80078125) +[2619063.119] {Default Queue} wl_pointer#2697.motion(187310697, 23.80078125, 13.80078125) +[2619063.123] {Default Queue} wl_pointer#2729.motion(187310697, 23.80078125, 13.80078125) +[2619063.128] {Default Queue} wl_pointer#2761.motion(187310697, 23.80078125, 13.80078125) +[2619063.132] {Default Queue} wl_pointer#2793.motion(187310697, 23.80078125, 13.80078125) +[2619063.136] {Default Queue} wl_pointer#2825.motion(187310697, 23.80078125, 13.80078125) +[2619063.141] {Default Queue} wl_pointer#2857.motion(187310697, 23.80078125, 13.80078125) +[2619063.145] {Default Queue} wl_pointer#2889.motion(187310697, 23.80078125, 13.80078125) +[2619063.149] {Default Queue} wl_pointer#2921.motion(187310697, 23.80078125, 13.80078125) +[2619063.153] {Default Queue} wl_pointer#2953.motion(187310697, 23.80078125, 13.80078125) +[2619063.157] {Default Queue} wl_pointer#2985.motion(187310697, 23.80078125, 13.80078125) +[2619063.165] {Default Queue} wl_pointer#3017.motion(187310697, 23.80078125, 13.80078125) +[2619063.171] {Default Queue} wl_pointer#3049.motion(187310697, 23.80078125, 13.80078125) +[2619063.175] {Default Queue} wl_pointer#3081.motion(187310697, 23.80078125, 13.80078125) +[2619063.179] {Default Queue} wl_pointer#3113.motion(187310697, 23.80078125, 13.80078125) +[2619063.183] {Default Queue} wl_pointer#3145.motion(187310697, 23.80078125, 13.80078125) +[2619063.187] {Default Queue} wl_pointer#3177.motion(187310697, 23.80078125, 13.80078125) +[2619063.191] {Default Queue} wl_pointer#3209.motion(187310697, 23.80078125, 13.80078125) +[2619063.195] {Default Queue} wl_pointer#3241.motion(187310697, 23.80078125, 13.80078125) +[2619063.200] {Default Queue} wl_pointer#3273.motion(187310697, 23.80078125, 13.80078125) +[2619063.204] {Default Queue} wl_pointer#3305.motion(187310697, 23.80078125, 13.80078125) +[2619063.208] {Default Queue} wl_pointer#3337.motion(187310697, 23.80078125, 13.80078125) +[2619063.212] {Default Queue} wl_pointer#3369.motion(187310697, 23.80078125, 13.80078125) +[2619063.216] {Default Queue} wl_pointer#3401.motion(187310697, 23.80078125, 13.80078125) +[2619063.220] {Default Queue} wl_pointer#3433.motion(187310697, 23.80078125, 13.80078125) +[2619063.224] {Default Queue} wl_pointer#3465.motion(187310697, 23.80078125, 13.80078125) +[2619063.229] {Default Queue} wl_pointer#3497.motion(187310697, 23.80078125, 13.80078125) +[2619063.233] {Default Queue} wl_pointer#3529.motion(187310697, 23.80078125, 13.80078125) +[2619063.237] {Default Queue} wl_pointer#3561.motion(187310697, 23.80078125, 13.80078125) +[2619063.242] {Default Queue} wl_pointer#3593.motion(187310697, 23.80078125, 13.80078125) +[2619063.246] {Default Queue} wl_pointer#3625.motion(187310697, 23.80078125, 13.80078125) +[2619063.250] {Default Queue} wl_pointer#3657.motion(187310697, 23.80078125, 13.80078125) +[2619063.254] {Default Queue} wl_pointer#3695.motion(187310697, 23.80078125, 13.80078125) +[2619063.258] {Default Queue} wl_pointer#24.motion(187310697, 23.80078125, 14.19921875) +[2619063.262] {Default Queue} wl_pointer#81.motion(187310697, 23.80078125, 14.19921875) +[2619063.267] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619063.271] {Default Queue} wl_pointer#105.motion(187310697, 23.80078125, 14.19921875) +[2619063.275] {Default Queue} wl_pointer#137.motion(187310697, 23.80078125, 14.19921875) +[2619063.280] {Default Queue} wl_pointer#169.motion(187310697, 23.80078125, 14.19921875) +[2619063.284] {Default Queue} wl_pointer#201.motion(187310697, 23.80078125, 14.19921875) +[2619063.288] {Default Queue} wl_pointer#233.motion(187310697, 23.80078125, 14.19921875) +[2619063.292] {Default Queue} wl_pointer#265.motion(187310697, 23.80078125, 14.19921875) +[2619063.296] {Default Queue} wl_pointer#297.motion(187310697, 23.80078125, 14.19921875) +[2619063.300] {Default Queue} wl_pointer#329.motion(187310697, 23.80078125, 14.19921875) +[2619063.304] {Default Queue} wl_pointer#361.motion(187310697, 23.80078125, 14.19921875) +[2619063.308] {Default Queue} wl_pointer#393.motion(187310697, 23.80078125, 14.19921875) +[2619063.312] {Default Queue} wl_pointer#425.motion(187310697, 23.80078125, 14.19921875) +[2619063.316] {Default Queue} wl_pointer#457.motion(187310697, 23.80078125, 14.19921875) +[2619063.320] {Default Queue} wl_pointer#489.motion(187310697, 23.80078125, 14.19921875) +[2619063.324] {Default Queue} wl_pointer#521.motion(187310697, 23.80078125, 14.19921875) +[2619063.329] {Default Queue} wl_pointer#553.motion(187310697, 23.80078125, 14.19921875) +[2619063.333] {Default Queue} wl_pointer#585.motion(187310697, 23.80078125, 14.19921875) +[2619063.337] {Default Queue} wl_pointer#617.motion(187310697, 23.80078125, 14.19921875) +[2619063.341] {Default Queue} wl_pointer#649.motion(187310697, 23.80078125, 14.19921875) +[2619063.345] {Default Queue} wl_pointer#681.motion(187310697, 23.80078125, 14.19921875) +[2619063.349] {Default Queue} wl_pointer#713.motion(187310697, 23.80078125, 14.19921875) +[2619063.353] {Default Queue} wl_pointer#745.motion(187310697, 23.80078125, 14.19921875) +[2619063.360] {Default Queue} wl_pointer#777.motion(187310697, 23.80078125, 14.19921875) +[2619063.365] {Default Queue} wl_pointer#809.motion(187310697, 23.80078125, 14.19921875) +[2619063.369] {Default Queue} wl_pointer#841.motion(187310697, 23.80078125, 14.19921875) +[2619063.373] {Default Queue} wl_pointer#873.motion(187310697, 23.80078125, 14.19921875) +[2619063.377] {Default Queue} wl_pointer#905.motion(187310697, 23.80078125, 14.19921875) +[2619063.382] {Default Queue} wl_pointer#937.motion(187310697, 23.80078125, 14.19921875) +[2619063.386] {Default Queue} wl_pointer#969.motion(187310697, 23.80078125, 14.19921875) +[2619063.391] {Default Queue} wl_pointer#1001.motion(187310697, 23.80078125, 14.19921875) +[2619063.395] {Default Queue} wl_pointer#1033.motion(187310697, 23.80078125, 14.19921875) +[2619063.399] {Default Queue} wl_pointer#1065.motion(187310697, 23.80078125, 14.19921875) +[2619063.403] {Default Queue} wl_pointer#1097.motion(187310697, 23.80078125, 14.19921875) +[2619063.407] {Default Queue} wl_pointer#1129.motion(187310697, 23.80078125, 14.19921875) +[2619063.411] {Default Queue} wl_pointer#1161.motion(187310697, 23.80078125, 14.19921875) +[2619063.415] {Default Queue} wl_pointer#1193.motion(187310697, 23.80078125, 14.19921875) +[2619063.419] {Default Queue} wl_pointer#1225.motion(187310697, 23.80078125, 14.19921875) +[2619063.423] {Default Queue} wl_pointer#1257.motion(187310697, 23.80078125, 14.19921875) +[2619063.427] {Default Queue} wl_pointer#1289.motion(187310697, 23.80078125, 14.19921875) +[2619063.431] {Default Queue} wl_pointer#1321.motion(187310697, 23.80078125, 14.19921875) +[2619063.436] {Default Queue} wl_pointer#1353.motion(187310697, 23.80078125, 14.19921875) +[2619063.440] {Default Queue} wl_pointer#1385.motion(187310697, 23.80078125, 14.19921875) +[2619063.445] {Default Queue} wl_pointer#1417.motion(187310697, 23.80078125, 14.19921875) +[2619063.448] {Default Queue} wl_pointer#1449.motion(187310697, 23.80078125, 14.19921875) +[2619063.452] {Default Queue} wl_pointer#1481.motion(187310697, 23.80078125, 14.19921875) +[2619063.457] {Default Queue} wl_pointer#1513.motion(187310697, 23.80078125, 14.19921875) +[2619063.461] {Default Queue} wl_pointer#1545.motion(187310697, 23.80078125, 14.19921875) +[2619063.465] {Default Queue} wl_pointer#1577.motion(187310697, 23.80078125, 14.19921875) +[2619063.469] {Default Queue} wl_pointer#1609.motion(187310697, 23.80078125, 14.19921875) +[2619063.473] {Default Queue} wl_pointer#1641.motion(187310697, 23.80078125, 14.19921875) +[2619063.477] {Default Queue} wl_pointer#1673.motion(187310697, 23.80078125, 14.19921875) +[2619063.481] {Default Queue} wl_pointer#1705.motion(187310697, 23.80078125, 14.19921875) +[2619063.485] {Default Queue} wl_pointer#1737.motion(187310697, 23.80078125, 14.19921875) +[2619063.489] {Default Queue} wl_pointer#1762.motion(187310697, 23.80078125, 14.19921875) +[2619063.493] {Default Queue} wl_pointer#1801.motion(187310697, 23.80078125, 14.19921875) +[2619063.497] {Default Queue} wl_pointer#1833.motion(187310697, 23.80078125, 14.19921875) +[2619063.501] {Default Queue} wl_pointer#1865.motion(187310697, 23.80078125, 14.19921875) +[2619063.505] {Default Queue} wl_pointer#1897.motion(187310697, 23.80078125, 14.19921875) +[2619063.509] {Default Queue} wl_pointer#1929.motion(187310697, 23.80078125, 14.19921875) +[2619063.513] {Default Queue} wl_pointer#1961.motion(187310697, 23.80078125, 14.19921875) +[2619063.517] {Default Queue} wl_pointer#1993.motion(187310697, 23.80078125, 14.19921875) +[2619063.521] {Default Queue} wl_pointer#2025.motion(187310697, 23.80078125, 14.19921875) +[2619063.525] {Default Queue} wl_pointer#2057.motion(187310697, 23.80078125, 14.19921875) +[2619063.530] {Default Queue} wl_pointer#2089.motion(187310697, 23.80078125, 14.19921875) +[2619063.533] {Default Queue} wl_pointer#2121.motion(187310697, 23.80078125, 14.19921875) +[2619063.537] {Default Queue} wl_pointer#2153.motion(187310697, 23.80078125, 14.19921875) +[2619063.542] {Default Queue} wl_pointer#2185.motion(187310697, 23.80078125, 14.19921875) +[2619063.548] {Default Queue} wl_pointer#2217.motion(187310697, 23.80078125, 14.19921875) +[2619063.554] {Default Queue} wl_pointer#2249.motion(187310697, 23.80078125, 14.19921875) +[2619063.558] {Default Queue} wl_pointer#2281.motion(187310697, 23.80078125, 14.19921875) +[2619063.562] {Default Queue} wl_pointer#2313.motion(187310697, 23.80078125, 14.19921875) +[2619063.566] {Default Queue} wl_pointer#2345.motion(187310697, 23.80078125, 14.19921875) +[2619063.570] {Default Queue} wl_pointer#2377.motion(187310697, 23.80078125, 14.19921875) +[2619063.574] {Default Queue} wl_pointer#2409.motion(187310697, 23.80078125, 14.19921875) +[2619063.578] {Default Queue} wl_pointer#2441.motion(187310697, 23.80078125, 14.19921875) +[2619063.583] {Default Queue} wl_pointer#2473.motion(187310697, 23.80078125, 14.19921875) +[2619063.587] {Default Queue} wl_pointer#2498.motion(187310697, 23.80078125, 14.19921875) +[2619063.596] {Default Queue} -> wl_buffer#3705.destroy() +[2619063.602] {Default Queue} -> wl_buffer#3704.destroy() +[2619063.606] {Default Queue} -> wl_shm_pool#3703.destroy() +[2619063.609] {Default Queue} -> wl_shm_pool#3702.destroy() +[2619063.614] {Default Queue} -> wl_surface#3324.destroy() +[2619063.647] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3323, fd 581, 640) +[2619063.653] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3326, fd 582, 640) +[2619063.657] {Default Queue} -> wl_shm_pool#3323.create_buffer(new id wl_buffer#3325, 0, 10, 16, 40, 0) +[2619063.661] {Default Queue} -> wl_shm_pool#3326.create_buffer(new id wl_buffer#3131, 0, 10, 16, 40, 0) +[2619063.668] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#1756) +[2619063.672] {Default Queue} -> wl_surface#1756.attach(wl_buffer#3325, 0, 0) +[2619063.676] {Default Queue} -> wl_surface#1756.commit() +[2619063.681] {Default Queue} -> wl_surface#1756.attach(wl_buffer#3325, 0, 0) +[2619063.685] {Default Queue} -> wl_surface#1756.commit() +[2619063.689] {Default Queue} wl_pointer#2537.motion(187310697, 23.80078125, 14.19921875) +[2619063.701] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) +[2619063.707] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) +[2619063.711] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2619063.715] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2619063.723] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) +[2619063.728] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) +[2619063.732] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2619063.735] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2619063.741] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) +[2619063.745] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) +[2619063.749] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2619063.753] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2619063.758] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) +[2619063.762] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) +[2619063.766] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2619063.770] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2619063.777] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) +[2619063.781] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) +[2619063.785] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) +[2619063.788] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) +[2619063.795] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) +[2619063.799] {Default Queue} -> wl_surface#1772.commit() +[2619063.804] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) +[2619063.808] {Default Queue} -> wl_surface#1772.commit() +[2619063.815] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) +[2619063.819] {Default Queue} -> wl_surface#1772.commit() +[2619063.826] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) +[2619063.833] {Default Queue} -> wl_surface#1991.commit() +[2619064.868] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) +[2619064.875] {Default Queue} -> wl_surface#1991.commit() +[2619064.884] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 236) +[2619064.888] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 236) +[2619064.892] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2619064.896] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2619064.960] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 236) +[2619064.965] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 236) +[2619064.969] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2619064.974] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2619064.981] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2619064.985] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2619065.025] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 236) +[2619065.030] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 236) +[2619065.035] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2619065.039] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2619065.044] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2619065.048] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2619065.053] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) +[2619065.057] {Default Queue} -> wl_surface#1991.commit() +[2619065.061] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) +[2619065.065] {Default Queue} -> wl_surface#1991.commit() +[2619065.071] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) +[2619065.075] {Default Queue} -> wl_surface#1991.commit() +[2619065.079] {Default Queue} -> wl_region#2079.subtract(0, 0, 2, 2) +[2619065.084] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 221) +[2619065.088] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 220) +[2619065.092] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2619065.096] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2619065.100] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619065.113] {Default Queue} -> wl_buffer#2077.destroy() +[2619065.119] {Default Queue} -> wl_buffer#2078.destroy() +[2619065.123] {Default Queue} -> wl_shm_pool#2075.destroy() +[2619065.127] {Default Queue} -> wl_shm_pool#2076.destroy() +[2619065.170] {Default Queue} -> wl_shm#2063.create_pool(new id wl_shm_pool#1755, fd 575, 16) +[2619065.177] {Default Queue} -> wl_shm#2063.create_pool(new id wl_shm_pool#1758, fd 578, 16) +[2619065.182] {Default Queue} -> wl_shm_pool#1755.create_buffer(new id wl_buffer#1757, 0, 2, 2, 8, 0) +[2619065.187] {Default Queue} -> wl_shm_pool#1758.create_buffer(new id wl_buffer#3699, 0, 2, 2, 8, 0) +[2619065.193] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) +[2619065.197] {Default Queue} -> wl_surface#2055.commit() +[2619065.202] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) +[2619065.206] {Default Queue} -> wl_surface#2055.commit() +[2619065.214] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) +[2619065.218] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) +[2619065.222] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2619065.226] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2619065.302] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) +[2619065.309] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) +[2619065.315] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2619065.322] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2619065.331] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619065.335] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619065.499] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) +[2619065.505] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) +[2619065.514] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2619065.520] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2619065.525] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619065.530] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619065.597] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) +[2619065.602] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) +[2619065.606] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2619065.611] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2619065.616] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619065.621] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619065.758] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) +[2619065.764] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) +[2619065.768] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2619065.772] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2619065.777] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619065.781] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619065.786] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) +[2619065.790] {Default Queue} -> wl_surface#2055.commit() +[2619065.796] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) +[2619065.800] {Default Queue} -> wl_surface#2055.commit() +[2619066.865] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) +[2619066.873] {Default Queue} -> wl_surface#2055.commit() +[2619066.879] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) +[2619066.884] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) +[2619066.888] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2619066.891] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2619066.950] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) +[2619066.956] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) +[2619066.960] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2619066.964] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2619066.969] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619066.973] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619067.118] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) +[2619067.124] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) +[2619067.128] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2619067.132] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2619067.137] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619067.142] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619067.201] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) +[2619067.205] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) +[2619067.210] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2619067.214] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2619067.219] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619067.223] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619067.363] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) +[2619067.368] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) +[2619067.372] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2619067.376] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2619067.381] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619067.385] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619067.390] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) +[2619067.394] {Default Queue} -> wl_surface#2055.commit() +[2619067.397] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) +[2619067.401] {Default Queue} -> wl_surface#2055.commit() +[2619067.427] {Display Queue} wl_display#1.delete_id(1917) +[2619067.434] {Display Queue} wl_display#1.delete_id(1918) +[2619067.438] {Display Queue} wl_display#1.delete_id(1915) +[2619067.442] {Display Queue} wl_display#1.delete_id(1916) +[2619067.446] {Display Queue} wl_display#1.delete_id(3708) +[2619067.450] {Display Queue} wl_display#1.delete_id(3709) +[2619067.454] {Display Queue} wl_display#1.delete_id(3706) +[2619067.458] {Display Queue} wl_display#1.delete_id(3707) +[2619067.462] {Default Queue} wl_pointer#2569.motion(187310697, 23.80078125, 14.19921875) +[2619067.466] {Default Queue} wl_pointer#2601.motion(187310697, 23.80078125, 14.19921875) +[2619067.471] {Default Queue} wl_pointer#2633.motion(187310697, 23.80078125, 14.19921875) +[2619067.475] {Default Queue} wl_pointer#2665.motion(187310697, 23.80078125, 14.19921875) +[2619067.480] {Default Queue} wl_pointer#2697.motion(187310697, 23.80078125, 14.19921875) +[2619067.484] {Default Queue} wl_pointer#2729.motion(187310697, 23.80078125, 14.19921875) +[2619067.488] {Default Queue} wl_pointer#2761.motion(187310697, 23.80078125, 14.19921875) +[2619067.492] {Default Queue} wl_pointer#2793.motion(187310697, 23.80078125, 14.19921875) +[2619067.496] {Default Queue} wl_pointer#2825.motion(187310697, 23.80078125, 14.19921875) +[2619067.500] {Default Queue} wl_pointer#2857.motion(187310697, 23.80078125, 14.19921875) +[2619067.505] {Default Queue} wl_pointer#2889.motion(187310697, 23.80078125, 14.19921875) +[2619067.509] {Default Queue} wl_pointer#2921.motion(187310697, 23.80078125, 14.19921875) +[2619067.513] {Default Queue} wl_pointer#2953.motion(187310697, 23.80078125, 14.19921875) +[2619067.517] {Default Queue} wl_pointer#2985.motion(187310697, 23.80078125, 14.19921875) +[2619067.521] {Default Queue} wl_pointer#3017.motion(187310697, 23.80078125, 14.19921875) +[2619067.525] {Default Queue} wl_pointer#3049.motion(187310697, 23.80078125, 14.19921875) +[2619067.529] {Default Queue} wl_pointer#3081.motion(187310697, 23.80078125, 14.19921875) +[2619067.533] {Default Queue} wl_pointer#3113.motion(187310697, 23.80078125, 14.19921875) +[2619067.537] {Default Queue} wl_pointer#3145.motion(187310697, 23.80078125, 14.19921875) +[2619067.541] {Default Queue} wl_pointer#3177.motion(187310697, 23.80078125, 14.19921875) +[2619067.545] {Default Queue} wl_pointer#3209.motion(187310697, 23.80078125, 14.19921875) +[2619067.549] {Default Queue} wl_pointer#3241.motion(187310697, 23.80078125, 14.19921875) +[2619067.553] {Default Queue} wl_pointer#3273.motion(187310697, 23.80078125, 14.19921875) +[2619067.558] {Default Queue} wl_pointer#3305.motion(187310697, 23.80078125, 14.19921875) +[2619067.562] {Default Queue} wl_pointer#3337.motion(187310697, 23.80078125, 14.19921875) +[2619067.566] {Default Queue} wl_pointer#3369.motion(187310697, 23.80078125, 14.19921875) +[2619067.570] {Default Queue} wl_pointer#3401.motion(187310697, 23.80078125, 14.19921875) +[2619067.574] {Default Queue} wl_pointer#3433.motion(187310697, 23.80078125, 14.19921875) +[2619067.578] {Default Queue} wl_pointer#3465.motion(187310697, 23.80078125, 14.19921875) +[2619067.583] {Default Queue} wl_pointer#3497.motion(187310697, 23.80078125, 14.19921875) +[2619067.587] {Default Queue} wl_pointer#3529.motion(187310697, 23.80078125, 14.19921875) +[2619067.591] {Default Queue} wl_pointer#3561.motion(187310697, 23.80078125, 14.19921875) +[2619067.595] {Default Queue} wl_pointer#3593.motion(187310697, 23.80078125, 14.19921875) +[2619067.599] {Default Queue} wl_pointer#3625.motion(187310697, 23.80078125, 14.19921875) +[2619067.603] {Default Queue} wl_pointer#3657.motion(187310697, 23.80078125, 14.19921875) +[2619067.607] {Default Queue} wl_pointer#3695.motion(187310697, 23.80078125, 14.19921875) +[2619067.611] {Default Queue} wl_pointer#24.motion(187310697, 23.39843750, 14.19921875) +[2619067.615] {Default Queue} wl_pointer#81.motion(187310697, 23.39843750, 14.19921875) +[2619067.620] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619067.625] {Default Queue} wl_pointer#105.motion(187310697, 23.39843750, 14.19921875) +[2619067.629] {Default Queue} wl_pointer#137.motion(187310697, 23.39843750, 14.19921875) +[2619067.639] {Default Queue} wl_pointer#169.motion(187310697, 23.39843750, 14.19921875) +[2619067.645] {Default Queue} wl_pointer#201.motion(187310697, 23.39843750, 14.19921875) +[2619067.649] {Default Queue} wl_pointer#233.motion(187310697, 23.39843750, 14.19921875) +[2619067.653] {Default Queue} wl_pointer#265.motion(187310697, 23.39843750, 14.19921875) +[2619067.657] {Default Queue} wl_pointer#297.motion(187310697, 23.39843750, 14.19921875) +[2619067.661] {Default Queue} wl_pointer#329.motion(187310697, 23.39843750, 14.19921875) +[2619067.665] {Default Queue} wl_pointer#361.motion(187310697, 23.39843750, 14.19921875) +[2619067.669] {Default Queue} wl_pointer#393.motion(187310697, 23.39843750, 14.19921875) +[2619067.674] {Default Queue} wl_pointer#425.motion(187310697, 23.39843750, 14.19921875) +[2619067.678] {Default Queue} wl_pointer#457.motion(187310697, 23.39843750, 14.19921875) +[2619067.682] {Default Queue} wl_pointer#489.motion(187310697, 23.39843750, 14.19921875) +[2619067.686] {Default Queue} wl_pointer#521.motion(187310697, 23.39843750, 14.19921875) +[2619067.690] {Default Queue} wl_pointer#553.motion(187310697, 23.39843750, 14.19921875) +[2619067.694] {Default Queue} wl_pointer#585.motion(187310697, 23.39843750, 14.19921875) +[2619067.698] {Default Queue} wl_pointer#617.motion(187310697, 23.39843750, 14.19921875) +[2619067.702] {Default Queue} wl_pointer#649.motion(187310697, 23.39843750, 14.19921875) +[2619067.706] {Default Queue} wl_pointer#681.motion(187310697, 23.39843750, 14.19921875) +[2619067.710] {Default Queue} wl_pointer#713.motion(187310697, 23.39843750, 14.19921875) +[2619067.715] {Default Queue} wl_pointer#745.motion(187310697, 23.39843750, 14.19921875) +[2619067.719] {Default Queue} wl_pointer#777.motion(187310697, 23.39843750, 14.19921875) +[2619067.723] {Default Queue} wl_pointer#809.motion(187310697, 23.39843750, 14.19921875) +[2619067.727] {Default Queue} wl_pointer#841.motion(187310697, 23.39843750, 14.19921875) +[2619067.731] {Default Queue} wl_pointer#873.motion(187310697, 23.39843750, 14.19921875) +[2619067.735] {Default Queue} wl_pointer#905.motion(187310697, 23.39843750, 14.19921875) +[2619067.739] {Default Queue} wl_pointer#937.motion(187310697, 23.39843750, 14.19921875) +[2619067.743] {Default Queue} wl_pointer#969.motion(187310697, 23.39843750, 14.19921875) +[2619067.748] {Default Queue} wl_pointer#1001.motion(187310697, 23.39843750, 14.19921875) +[2619067.752] {Default Queue} wl_pointer#1033.motion(187310697, 23.39843750, 14.19921875) +[2619067.756] {Default Queue} wl_pointer#1065.motion(187310697, 23.39843750, 14.19921875) +[2619067.760] {Default Queue} wl_pointer#1097.motion(187310697, 23.39843750, 14.19921875) +[2619067.764] {Default Queue} wl_pointer#1129.motion(187310697, 23.39843750, 14.19921875) +[2619067.768] {Default Queue} wl_pointer#1161.motion(187310697, 23.39843750, 14.19921875) +[2619067.772] {Default Queue} wl_pointer#1193.motion(187310697, 23.39843750, 14.19921875) +[2619067.776] {Default Queue} wl_pointer#1225.motion(187310697, 23.39843750, 14.19921875) +[2619067.780] {Default Queue} wl_pointer#1257.motion(187310697, 23.39843750, 14.19921875) +[2619067.784] {Default Queue} wl_pointer#1289.motion(187310697, 23.39843750, 14.19921875) +[2619067.789] {Default Queue} wl_pointer#1321.motion(187310697, 23.39843750, 14.19921875) +[2619067.792] {Default Queue} wl_pointer#1353.motion(187310697, 23.39843750, 14.19921875) +[2619067.797] {Default Queue} wl_pointer#1385.motion(187310697, 23.39843750, 14.19921875) +[2619067.801] {Default Queue} wl_pointer#1417.motion(187310697, 23.39843750, 14.19921875) +[2619067.805] {Default Queue} wl_pointer#1449.motion(187310697, 23.39843750, 14.19921875) +[2619067.809] {Default Queue} wl_pointer#1481.motion(187310697, 23.39843750, 14.19921875) +[2619067.813] {Default Queue} wl_pointer#1513.motion(187310697, 23.39843750, 14.19921875) +[2619067.817] {Default Queue} wl_pointer#1545.motion(187310697, 23.39843750, 14.19921875) +[2619067.821] {Default Queue} wl_pointer#1577.motion(187310697, 23.39843750, 14.19921875) +[2619067.825] {Default Queue} wl_pointer#1609.motion(187310697, 23.39843750, 14.19921875) +[2619067.840] {Default Queue} wl_pointer#1641.motion(187310697, 23.39843750, 14.19921875) +[2619067.845] {Default Queue} wl_pointer#1673.motion(187310697, 23.39843750, 14.19921875) +[2619067.850] {Default Queue} wl_pointer#1705.motion(187310697, 23.39843750, 14.19921875) +[2619067.854] {Default Queue} wl_pointer#1737.motion(187310697, 23.39843750, 14.19921875) +[2619067.858] {Default Queue} wl_pointer#1762.motion(187310697, 23.39843750, 14.19921875) +[2619067.899] {Default Queue} wl_pointer#1801.motion(187310697, 23.39843750, 14.19921875) +[2619067.910] {Default Queue} wl_pointer#1833.motion(187310697, 23.39843750, 14.19921875) +[2619067.916] {Default Queue} wl_pointer#1865.motion(187310697, 23.39843750, 14.19921875) +[2619067.920] {Default Queue} wl_pointer#1897.motion(187310697, 23.39843750, 14.19921875) +[2619067.925] {Default Queue} wl_pointer#1929.motion(187310697, 23.39843750, 14.19921875) +[2619067.930] {Default Queue} wl_pointer#1961.motion(187310697, 23.39843750, 14.19921875) +[2619067.935] {Default Queue} wl_pointer#1993.motion(187310697, 23.39843750, 14.19921875) +[2619067.939] {Default Queue} wl_pointer#2025.motion(187310697, 23.39843750, 14.19921875) +[2619067.943] {Default Queue} wl_pointer#2057.motion(187310697, 23.39843750, 14.19921875) +[2619067.948] {Default Queue} wl_pointer#2089.motion(187310697, 23.39843750, 14.19921875) +[2619067.952] {Default Queue} wl_pointer#2121.motion(187310697, 23.39843750, 14.19921875) +[2619067.957] {Default Queue} wl_pointer#2153.motion(187310697, 23.39843750, 14.19921875) +[2619067.961] {Default Queue} wl_pointer#2185.motion(187310697, 23.39843750, 14.19921875) +[2619067.966] {Default Queue} wl_pointer#2217.motion(187310697, 23.39843750, 14.19921875) +[2619067.970] {Default Queue} wl_pointer#2249.motion(187310697, 23.39843750, 14.19921875) +[2619067.975] {Default Queue} wl_pointer#2281.motion(187310697, 23.39843750, 14.19921875) +[2619067.980] {Default Queue} wl_pointer#2313.motion(187310697, 23.39843750, 14.19921875) +[2619067.985] {Default Queue} wl_pointer#2345.motion(187310697, 23.39843750, 14.19921875) +[2619067.990] {Default Queue} wl_pointer#2377.motion(187310697, 23.39843750, 14.19921875) +[2619067.994] {Default Queue} wl_pointer#2409.motion(187310697, 23.39843750, 14.19921875) +[2619067.999] {Default Queue} wl_pointer#2441.motion(187310697, 23.39843750, 14.19921875) +[2619068.004] {Default Queue} wl_pointer#2473.motion(187310697, 23.39843750, 14.19921875) +[2619068.008] {Default Queue} wl_pointer#2498.motion(187310697, 23.39843750, 14.19921875) +[2619068.023] {Default Queue} -> wl_buffer#3325.destroy() +[2619068.028] {Default Queue} -> wl_buffer#3131.destroy() +[2619068.033] {Default Queue} -> wl_shm_pool#3323.destroy() +[2619068.037] {Default Queue} -> wl_shm_pool#3326.destroy() +[2619068.042] {Default Queue} -> wl_surface#1756.destroy() +[2619068.083] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3707, fd 575, 640) +[2619068.090] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3706, fd 578, 640) +[2619068.094] {Default Queue} -> wl_shm_pool#3707.create_buffer(new id wl_buffer#3709, 0, 10, 16, 40, 0) +[2619068.099] {Default Queue} -> wl_shm_pool#3706.create_buffer(new id wl_buffer#3708, 0, 10, 16, 40, 0) +[2619068.107] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#1916) +[2619068.111] {Default Queue} -> wl_surface#1916.attach(wl_buffer#3709, 0, 0) +[2619068.116] {Default Queue} -> wl_surface#1916.commit() +[2619068.121] {Default Queue} -> wl_surface#1916.attach(wl_buffer#3709, 0, 0) +[2619068.125] {Default Queue} -> wl_surface#1916.commit() +[2619068.129] {Default Queue} wl_pointer#2537.motion(187310697, 23.39843750, 14.19921875) +[2619068.135] {Default Queue} wl_pointer#2569.motion(187310697, 23.39843750, 14.19921875) +[2619068.140] {Default Queue} wl_pointer#2601.motion(187310697, 23.39843750, 14.19921875) +[2619068.144] {Default Queue} wl_pointer#2633.motion(187310697, 23.39843750, 14.19921875) +[2619068.149] {Default Queue} wl_pointer#2665.motion(187310697, 23.39843750, 14.19921875) +[2619068.157] {Default Queue} wl_pointer#2697.motion(187310697, 23.39843750, 14.19921875) +[2619068.165] {Default Queue} wl_pointer#2729.motion(187310697, 23.39843750, 14.19921875) +[2619068.170] {Default Queue} wl_pointer#2761.motion(187310697, 23.39843750, 14.19921875) +[2619068.174] {Default Queue} wl_pointer#2793.motion(187310697, 23.39843750, 14.19921875) +[2619068.179] {Default Queue} wl_pointer#2825.motion(187310697, 23.39843750, 14.19921875) +[2619068.183] {Default Queue} wl_pointer#2857.motion(187310697, 23.39843750, 14.19921875) +[2619068.188] {Default Queue} wl_pointer#2889.motion(187310697, 23.39843750, 14.19921875) +[2619068.192] {Default Queue} wl_pointer#2921.motion(187310697, 23.39843750, 14.19921875) +[2619068.197] {Default Queue} wl_pointer#2953.motion(187310697, 23.39843750, 14.19921875) +[2619068.202] {Default Queue} wl_pointer#2985.motion(187310697, 23.39843750, 14.19921875) +[2619068.206] {Default Queue} wl_pointer#3017.motion(187310697, 23.39843750, 14.19921875) +[2619068.210] {Default Queue} wl_pointer#3049.motion(187310697, 23.39843750, 14.19921875) +[2619068.215] {Default Queue} wl_pointer#3081.motion(187310697, 23.39843750, 14.19921875) +[2619068.219] {Default Queue} wl_pointer#3113.motion(187310697, 23.39843750, 14.19921875) +[2619068.223] {Default Queue} wl_pointer#3145.motion(187310697, 23.39843750, 14.19921875) +[2619068.228] {Default Queue} wl_pointer#3177.motion(187310697, 23.39843750, 14.19921875) +[2619068.233] {Default Queue} wl_pointer#3209.motion(187310697, 23.39843750, 14.19921875) +[2619068.237] {Default Queue} wl_pointer#3241.motion(187310697, 23.39843750, 14.19921875) +[2619068.242] {Default Queue} wl_pointer#3273.motion(187310697, 23.39843750, 14.19921875) +[2619068.246] {Default Queue} wl_pointer#3305.motion(187310697, 23.39843750, 14.19921875) +[2619068.251] {Default Queue} wl_pointer#3337.motion(187310697, 23.39843750, 14.19921875) +[2619068.255] {Default Queue} wl_pointer#3369.motion(187310697, 23.39843750, 14.19921875) +[2619068.260] {Default Queue} wl_pointer#3401.motion(187310697, 23.39843750, 14.19921875) +[2619068.264] {Default Queue} wl_pointer#3433.motion(187310697, 23.39843750, 14.19921875) +[2619068.269] {Default Queue} wl_pointer#3465.motion(187310697, 23.39843750, 14.19921875) +[2619068.273] {Default Queue} wl_pointer#3497.motion(187310697, 23.39843750, 14.19921875) +[2619068.278] {Default Queue} wl_pointer#3529.motion(187310697, 23.39843750, 14.19921875) +[2619068.282] {Default Queue} wl_pointer#3561.motion(187310697, 23.39843750, 14.19921875) +[2619068.287] {Default Queue} wl_pointer#3593.motion(187310697, 23.39843750, 14.19921875) +[2619068.291] {Default Queue} wl_pointer#3625.motion(187310697, 23.39843750, 14.19921875) +[2619068.296] {Default Queue} wl_pointer#3657.motion(187310697, 23.39843750, 14.19921875) +[2619068.300] {Default Queue} wl_pointer#3695.motion(187310697, 23.39843750, 14.19921875) +[2619068.304] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) +[2619068.308] {Default Queue} -> wl_surface#2055.commit() +[2619069.373] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) +[2619069.379] {Default Queue} -> wl_surface#2055.commit() +[2619069.385] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) +[2619069.389] {Default Queue} -> wl_surface#2055.commit() +[2619069.394] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) +[2619069.398] {Default Queue} -> wl_surface#2023.commit() +[2619070.459] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) +[2619070.463] {Default Queue} -> wl_surface#2023.commit() +[2619070.473] {Default Queue} -> wl_region#2047.subtract(0, 0, 485, 241) +[2619070.478] {Default Queue} -> wl_region#2047.add(-483, -219, 485, 221) +[2619070.482] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) +[2619070.486] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) +[2619070.492] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) +[2619070.496] {Default Queue} -> wl_surface#2023.commit() +[2619070.500] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) +[2619070.507] {Default Queue} -> wl_surface#2023.commit() +[2619070.515] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) +[2619070.519] {Default Queue} -> wl_surface#2023.commit() +[2619070.523] {Default Queue} -> wl_region#1983.subtract(0, 0, 109, 161) +[2619070.530] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 236) +[2619070.534] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 236) +[2619070.538] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2619070.542] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2619070.609] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 236) +[2619070.614] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 236) +[2619070.618] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2619070.622] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2619070.629] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2619070.634] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2619070.676] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 236) +[2619070.681] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 236) +[2619070.685] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2619070.689] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2619070.694] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2619070.698] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2619070.704] {Default Queue} -> wl_region#2047.subtract(0, 0, 485, 241) +[2619070.708] {Default Queue} -> wl_region#2047.add(-483, -219, 485, 221) +[2619070.711] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) +[2619070.715] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) +[2619070.720] {Default Queue} -> wl_surface#1959.damage(0, 0, 109, 161) +[2619070.724] {Default Queue} -> wl_region#1983.subtract(0, 0, 592, 380) +[2619070.727] {Default Queue} -> wl_region#1983.add(-480, -216, 589, 377) +[2619070.731] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) +[2619070.735] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) +[2619070.739] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2619070.743] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619070.747] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) +[2619070.750] {Default Queue} -> wl_surface#1959.damage(0, 0, 109, 161) +[2619070.767] {Default Queue} -> wl_buffer#3712.destroy() +[2619070.772] {Default Queue} -> wl_buffer#3713.destroy() +[2619070.776] {Default Queue} -> wl_shm_pool#3710.destroy() +[2619070.780] {Default Queue} -> wl_shm_pool#3711.destroy() +[2619070.860] {Default Queue} -> wl_shm#1967.create_pool(new id wl_shm_pool#1915, fd 575, 70196) +[2619070.874] {Default Queue} -> wl_shm#1967.create_pool(new id wl_shm_pool#1918, fd 578, 70196) +[2619070.878] {Default Queue} -> wl_shm_pool#1915.create_buffer(new id wl_buffer#1917, 0, 109, 161, 436, 0) +[2619070.882] {Default Queue} -> wl_shm_pool#1918.create_buffer(new id wl_buffer#3698, 0, 109, 161, 436, 0) +[2619070.905] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) +[2619070.909] {Default Queue} -> wl_surface#1959.commit() +[2619070.930] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) +[2619070.935] {Default Queue} -> wl_surface#1959.commit() +[2619070.943] {Default Queue} -> wl_region#1983.subtract(0, 0, 592, 380) +[2619070.947] {Default Queue} -> wl_region#1983.add(-480, -216, 589, 377) +[2619070.951] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) +[2619070.955] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) +[2619070.961] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) +[2619070.965] {Default Queue} -> wl_surface#1959.commit() +[2619070.972] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) +[2619070.976] {Default Queue} -> wl_surface#1959.commit() +[2619072.041] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) +[2619072.050] {Default Queue} -> wl_surface#1959.commit() +[2619072.058] {Default Queue} -> wl_region#1983.subtract(0, 0, 592, 380) +[2619072.063] {Default Queue} -> wl_region#1983.add(-480, -216, 589, 377) +[2619072.067] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) +[2619072.070] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) +[2619072.076] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) +[2619072.080] {Default Queue} -> wl_surface#1959.commit() +[2619072.085] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) +[2619072.089] {Default Queue} -> wl_surface#1959.commit() +[2619072.095] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) +[2619072.099] {Default Queue} -> wl_surface#1959.commit() +[2619072.110] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) +[2619072.114] {Default Queue} -> wl_surface#1927.commit() +[2619072.322] {Display Queue} wl_display#1.delete_id(1598) +[2619072.338] {Display Queue} wl_display#1.delete_id(1597) +[2619072.343] {Display Queue} wl_display#1.delete_id(1596) +[2619072.348] {Display Queue} wl_display#1.delete_id(1595) +[2619072.352] {Display Queue} wl_display#1.delete_id(476) +[2619072.356] {Display Queue} wl_display#1.delete_id(3705) +[2619072.359] {Display Queue} wl_display#1.delete_id(3704) +[2619072.363] {Display Queue} wl_display#1.delete_id(3703) +[2619072.368] {Display Queue} wl_display#1.delete_id(3702) +[2619072.371] {Display Queue} wl_display#1.delete_id(3324) +[2619072.375] {Display Queue} wl_display#1.delete_id(2077) +[2619072.380] {Display Queue} wl_display#1.delete_id(2078) +[2619072.384] {Display Queue} wl_display#1.delete_id(2075) +[2619072.387] {Display Queue} wl_display#1.delete_id(2076) +[2619072.391] {Default Queue} wl_pointer#24.motion(187310702, 23.00000000, 14.19921875) +[2619072.397] {Default Queue} wl_pointer#81.motion(187310702, 23.00000000, 14.19921875) +[2619072.404] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619072.409] {Default Queue} wl_pointer#105.motion(187310702, 23.00000000, 14.19921875) +[2619072.414] {Default Queue} wl_pointer#137.motion(187310702, 23.00000000, 14.19921875) +[2619072.419] {Default Queue} wl_pointer#169.motion(187310702, 23.00000000, 14.19921875) +[2619072.423] {Default Queue} wl_pointer#201.motion(187310702, 23.00000000, 14.19921875) +[2619072.428] {Default Queue} wl_pointer#233.motion(187310702, 23.00000000, 14.19921875) +[2619072.433] {Default Queue} wl_pointer#265.motion(187310702, 23.00000000, 14.19921875) +[2619072.437] {Default Queue} wl_pointer#297.motion(187310702, 23.00000000, 14.19921875) +[2619072.441] {Default Queue} wl_pointer#329.motion(187310702, 23.00000000, 14.19921875) +[2619072.445] {Default Queue} wl_pointer#361.motion(187310702, 23.00000000, 14.19921875) +[2619072.449] {Default Queue} wl_pointer#393.motion(187310702, 23.00000000, 14.19921875) +[2619072.453] {Default Queue} wl_pointer#425.motion(187310702, 23.00000000, 14.19921875) +[2619072.458] {Default Queue} wl_pointer#457.motion(187310702, 23.00000000, 14.19921875) +[2619072.462] {Default Queue} wl_pointer#489.motion(187310702, 23.00000000, 14.19921875) +[2619072.466] {Default Queue} wl_pointer#521.motion(187310702, 23.00000000, 14.19921875) +[2619072.470] {Default Queue} wl_pointer#553.motion(187310702, 23.00000000, 14.19921875) +[2619072.474] {Default Queue} wl_pointer#585.motion(187310702, 23.00000000, 14.19921875) +[2619072.478] {Default Queue} wl_pointer#617.motion(187310702, 23.00000000, 14.19921875) +[2619072.482] {Default Queue} wl_pointer#649.motion(187310702, 23.00000000, 14.19921875) +[2619072.487] {Default Queue} wl_pointer#681.motion(187310702, 23.00000000, 14.19921875) +[2619072.491] {Default Queue} wl_pointer#713.motion(187310702, 23.00000000, 14.19921875) +[2619072.495] {Default Queue} wl_pointer#745.motion(187310702, 23.00000000, 14.19921875) +[2619072.499] {Default Queue} wl_pointer#777.motion(187310702, 23.00000000, 14.19921875) +[2619072.504] {Default Queue} wl_pointer#809.motion(187310702, 23.00000000, 14.19921875) +[2619072.508] {Default Queue} wl_pointer#841.motion(187310702, 23.00000000, 14.19921875) +[2619072.520] {Default Queue} wl_pointer#873.motion(187310702, 23.00000000, 14.19921875) +[2619072.528] {Default Queue} wl_pointer#905.motion(187310702, 23.00000000, 14.19921875) +[2619072.533] {Default Queue} wl_pointer#937.motion(187310702, 23.00000000, 14.19921875) +[2619072.537] {Default Queue} wl_pointer#969.motion(187310702, 23.00000000, 14.19921875) +[2619072.541] {Default Queue} wl_pointer#1001.motion(187310702, 23.00000000, 14.19921875) +[2619072.545] {Default Queue} wl_pointer#1033.motion(187310702, 23.00000000, 14.19921875) +[2619072.549] {Default Queue} wl_pointer#1065.motion(187310702, 23.00000000, 14.19921875) +[2619072.553] {Default Queue} wl_pointer#1097.motion(187310702, 23.00000000, 14.19921875) +[2619072.557] {Default Queue} wl_pointer#1129.motion(187310702, 23.00000000, 14.19921875) +[2619072.561] {Default Queue} wl_pointer#1161.motion(187310702, 23.00000000, 14.19921875) +[2619072.565] {Default Queue} wl_pointer#1193.motion(187310702, 23.00000000, 14.19921875) +[2619072.570] {Default Queue} wl_pointer#1225.motion(187310702, 23.00000000, 14.19921875) +[2619072.573] {Default Queue} wl_pointer#1257.motion(187310702, 23.00000000, 14.19921875) +[2619072.577] {Default Queue} wl_pointer#1289.motion(187310702, 23.00000000, 14.19921875) +[2619072.582] {Default Queue} wl_pointer#1321.motion(187310702, 23.00000000, 14.19921875) +[2619072.586] {Default Queue} wl_pointer#1353.motion(187310702, 23.00000000, 14.19921875) +[2619072.590] {Default Queue} wl_pointer#1385.motion(187310702, 23.00000000, 14.19921875) +[2619072.594] {Default Queue} wl_pointer#1417.motion(187310702, 23.00000000, 14.19921875) +[2619072.599] {Default Queue} wl_pointer#1449.motion(187310702, 23.00000000, 14.19921875) +[2619072.603] {Default Queue} wl_pointer#1481.motion(187310702, 23.00000000, 14.19921875) +[2619072.607] {Default Queue} wl_pointer#1513.motion(187310702, 23.00000000, 14.19921875) +[2619072.611] {Default Queue} wl_pointer#1545.motion(187310702, 23.00000000, 14.19921875) +[2619072.615] {Default Queue} wl_pointer#1577.motion(187310702, 23.00000000, 14.19921875) +[2619072.620] {Default Queue} wl_pointer#1609.motion(187310702, 23.00000000, 14.19921875) +[2619072.624] {Default Queue} wl_pointer#1641.motion(187310702, 23.00000000, 14.19921875) +[2619072.628] {Default Queue} wl_pointer#1673.motion(187310702, 23.00000000, 14.19921875) +[2619072.632] {Default Queue} wl_pointer#1705.motion(187310702, 23.00000000, 14.19921875) +[2619072.636] {Default Queue} wl_pointer#1737.motion(187310702, 23.00000000, 14.19921875) +[2619072.641] {Default Queue} wl_pointer#1762.motion(187310702, 23.00000000, 14.19921875) +[2619072.645] {Default Queue} wl_pointer#1801.motion(187310702, 23.00000000, 14.19921875) +[2619072.649] {Default Queue} wl_pointer#1833.motion(187310702, 23.00000000, 14.19921875) +[2619072.654] {Default Queue} wl_pointer#1865.motion(187310702, 23.00000000, 14.19921875) +[2619072.658] {Default Queue} wl_pointer#1897.motion(187310702, 23.00000000, 14.19921875) +[2619072.662] {Default Queue} wl_pointer#1929.motion(187310702, 23.00000000, 14.19921875) +[2619072.666] {Default Queue} wl_pointer#1961.motion(187310702, 23.00000000, 14.19921875) +[2619072.671] {Default Queue} wl_pointer#1993.motion(187310702, 23.00000000, 14.19921875) +[2619072.675] {Default Queue} wl_pointer#2025.motion(187310702, 23.00000000, 14.19921875) +[2619072.679] {Default Queue} wl_pointer#2057.motion(187310702, 23.00000000, 14.19921875) +[2619072.683] {Default Queue} wl_pointer#2089.motion(187310702, 23.00000000, 14.19921875) +[2619072.688] {Default Queue} wl_pointer#2121.motion(187310702, 23.00000000, 14.19921875) +[2619072.692] {Default Queue} wl_pointer#2153.motion(187310702, 23.00000000, 14.19921875) +[2619072.697] {Default Queue} wl_pointer#2185.motion(187310702, 23.00000000, 14.19921875) +[2619072.701] {Default Queue} wl_pointer#2217.motion(187310702, 23.00000000, 14.19921875) +[2619072.705] {Default Queue} wl_pointer#2249.motion(187310702, 23.00000000, 14.19921875) +[2619072.709] {Default Queue} wl_pointer#2281.motion(187310702, 23.00000000, 14.19921875) +[2619072.716] {Default Queue} wl_pointer#2313.motion(187310702, 23.00000000, 14.19921875) +[2619072.723] {Default Queue} wl_pointer#2345.motion(187310702, 23.00000000, 14.19921875) +[2619072.727] {Default Queue} wl_pointer#2377.motion(187310702, 23.00000000, 14.19921875) +[2619072.732] {Default Queue} wl_pointer#2409.motion(187310702, 23.00000000, 14.19921875) +[2619072.736] {Default Queue} wl_pointer#2441.motion(187310702, 23.00000000, 14.19921875) +[2619072.740] {Default Queue} wl_pointer#2473.motion(187310702, 23.00000000, 14.19921875) +[2619072.744] {Default Queue} wl_pointer#2498.motion(187310702, 23.00000000, 14.19921875) +[2619072.759] {Default Queue} -> wl_buffer#3709.destroy() +[2619072.765] {Default Queue} -> wl_buffer#3708.destroy() +[2619072.769] {Default Queue} -> wl_shm_pool#3707.destroy() +[2619072.773] {Default Queue} -> wl_shm_pool#3706.destroy() +[2619072.778] {Default Queue} -> wl_surface#1916.destroy() +[2619072.821] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2076, fd 575, 640) +[2619072.828] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2075, fd 578, 640) +[2619072.833] {Default Queue} -> wl_shm_pool#2076.create_buffer(new id wl_buffer#2078, 0, 10, 16, 40, 0) +[2619072.837] {Default Queue} -> wl_shm_pool#2075.create_buffer(new id wl_buffer#2077, 0, 10, 16, 40, 0) +[2619072.845] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3324) +[2619072.849] {Default Queue} -> wl_surface#3324.attach(wl_buffer#2078, 0, 0) +[2619072.854] {Default Queue} -> wl_surface#3324.commit() +[2619072.859] {Default Queue} -> wl_surface#3324.attach(wl_buffer#2078, 0, 0) +[2619072.869] {Default Queue} -> wl_surface#3324.commit() +[2619072.873] {Default Queue} wl_pointer#2537.motion(187310702, 23.00000000, 14.19921875) +[2619072.878] {Default Queue} wl_pointer#2569.motion(187310702, 23.00000000, 14.19921875) +[2619072.883] {Default Queue} wl_pointer#2601.motion(187310702, 23.00000000, 14.19921875) +[2619072.887] {Default Queue} wl_pointer#2633.motion(187310702, 23.00000000, 14.19921875) +[2619072.891] {Default Queue} wl_pointer#2665.motion(187310702, 23.00000000, 14.19921875) +[2619072.895] {Default Queue} wl_pointer#2697.motion(187310702, 23.00000000, 14.19921875) +[2619072.900] {Default Queue} wl_pointer#2729.motion(187310702, 23.00000000, 14.19921875) +[2619072.904] {Default Queue} wl_pointer#2761.motion(187310702, 23.00000000, 14.19921875) +[2619072.908] {Default Queue} wl_pointer#2793.motion(187310702, 23.00000000, 14.19921875) +[2619072.913] {Default Queue} wl_pointer#2825.motion(187310702, 23.00000000, 14.19921875) +[2619072.917] {Default Queue} wl_pointer#2857.motion(187310702, 23.00000000, 14.19921875) +[2619072.921] {Default Queue} wl_pointer#2889.motion(187310702, 23.00000000, 14.19921875) +[2619072.926] {Default Queue} wl_pointer#2921.motion(187310702, 23.00000000, 14.19921875) +[2619072.930] {Default Queue} wl_pointer#2953.motion(187310702, 23.00000000, 14.19921875) +[2619072.934] {Default Queue} wl_pointer#2985.motion(187310702, 23.00000000, 14.19921875) +[2619072.939] {Default Queue} wl_pointer#3017.motion(187310702, 23.00000000, 14.19921875) +[2619072.943] {Default Queue} wl_pointer#3049.motion(187310702, 23.00000000, 14.19921875) +[2619072.947] {Default Queue} wl_pointer#3081.motion(187310702, 23.00000000, 14.19921875) +[2619072.952] {Default Queue} wl_pointer#3113.motion(187310702, 23.00000000, 14.19921875) +[2619072.956] {Default Queue} wl_pointer#3145.motion(187310702, 23.00000000, 14.19921875) +[2619072.961] {Default Queue} wl_pointer#3177.motion(187310702, 23.00000000, 14.19921875) +[2619072.966] {Default Queue} wl_pointer#3209.motion(187310702, 23.00000000, 14.19921875) +[2619072.971] {Default Queue} wl_pointer#3241.motion(187310702, 23.00000000, 14.19921875) +[2619072.975] {Default Queue} wl_pointer#3273.motion(187310702, 23.00000000, 14.19921875) +[2619072.980] {Default Queue} wl_pointer#3305.motion(187310702, 23.00000000, 14.19921875) +[2619072.984] {Default Queue} wl_pointer#3337.motion(187310702, 23.00000000, 14.19921875) +[2619072.988] {Default Queue} wl_pointer#3369.motion(187310702, 23.00000000, 14.19921875) +[2619072.996] {Default Queue} wl_pointer#3401.motion(187310702, 23.00000000, 14.19921875) +[2619073.002] {Default Queue} wl_pointer#3433.motion(187310702, 23.00000000, 14.19921875) +[2619073.007] {Default Queue} wl_pointer#3465.motion(187310702, 23.00000000, 14.19921875) +[2619073.012] {Default Queue} wl_pointer#3497.motion(187310702, 23.00000000, 14.19921875) +[2619073.017] {Default Queue} wl_pointer#3529.motion(187310702, 23.00000000, 14.19921875) +[2619073.022] {Default Queue} wl_pointer#3561.motion(187310702, 23.00000000, 14.19921875) +[2619073.026] {Default Queue} wl_pointer#3593.motion(187310702, 23.00000000, 14.19921875) +[2619073.030] {Default Queue} wl_pointer#3625.motion(187310702, 23.00000000, 14.19921875) +[2619073.035] {Default Queue} wl_pointer#3657.motion(187310702, 23.00000000, 14.19921875) +[2619073.039] {Default Queue} wl_pointer#3695.motion(187310702, 23.00000000, 14.19921875) +[2619073.062] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) +[2619073.067] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) +[2619073.072] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2619073.077] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2619073.085] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) +[2619073.090] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) +[2619073.094] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2619073.098] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2619073.104] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) +[2619073.108] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) +[2619073.112] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2619073.116] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2619073.121] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) +[2619073.125] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) +[2619073.129] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2619073.134] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2619073.141] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) +[2619073.144] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) +[2619073.149] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) +[2619073.153] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) +[2619073.165] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) +[2619073.170] {Default Queue} -> wl_surface#1927.commit() +[2619073.175] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) +[2619073.179] {Default Queue} -> wl_surface#1927.commit() +[2619073.187] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) +[2619073.191] {Default Queue} -> wl_surface#1927.commit() +[2619073.240] {Default Queue} -> wl_surface#871.attach(wl_buffer#926, 0, 0) +[2619073.246] {Default Queue} -> wl_surface#871.commit() +[2619073.254] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) +[2619073.259] {Default Queue} -> wl_surface#2183.commit() +[2619074.326] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) +[2619074.339] {Default Queue} -> wl_surface#2183.commit() +[2619074.352] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 403) +[2619074.358] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 403) +[2619074.362] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2619074.366] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2619074.454] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 403) +[2619074.460] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 403) +[2619074.464] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2619074.468] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2619074.476] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2619074.480] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2619074.538] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 403) +[2619074.546] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 403) +[2619074.550] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2619074.555] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2619074.560] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2619074.565] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2619074.569] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) +[2619074.574] {Default Queue} -> wl_surface#2183.commit() +[2619074.578] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) +[2619074.582] {Default Queue} -> wl_surface#2183.commit() +[2619074.589] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) +[2619074.592] {Default Queue} -> wl_surface#2183.commit() +[2619074.599] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2619074.603] {Default Queue} -> wl_surface#2279.commit() +[2619075.666] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2619075.671] {Default Queue} -> wl_surface#2279.commit() +[2619075.679] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619075.685] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619075.689] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619075.693] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619075.702] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619075.706] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619075.710] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619075.713] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619075.720] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619075.725] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619075.729] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619075.733] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619075.738] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619075.742] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619075.746] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619075.750] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619075.756] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619075.760] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619075.764] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619075.767] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619075.775] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619075.779] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619075.783] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619075.787] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619075.792] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619075.796] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619075.800] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619075.804] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619075.808] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619075.812] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619075.816] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619075.820] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619075.825] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619075.829] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619075.833] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619075.837] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619075.847] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619075.852] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619075.859] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619075.866] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619075.874] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619075.878] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619075.882] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619075.886] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619075.892] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619075.896] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619075.900] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619075.904] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619075.909] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619075.913] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619075.917] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619075.920] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619075.925] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619075.930] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619075.934] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619075.937] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619075.944] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619075.948] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619075.952] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619075.956] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619075.960] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619075.964] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619075.968] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619075.972] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619075.976] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619075.980] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619075.984] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619075.988] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619075.992] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619075.996] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619076.000] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619076.004] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619076.010] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619076.015] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619076.019] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619076.022] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619076.029] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2619076.033] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2619076.038] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2619076.042] {Default Queue} -> wl_surface#2279.commit() +[2619076.046] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2619076.050] {Default Queue} -> wl_surface#2279.commit() +[2619076.056] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2619076.060] {Default Queue} -> wl_surface#2279.commit() +[2619076.064] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 2) +[2619076.069] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) +[2619076.073] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) +[2619076.077] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619076.081] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619076.085] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2619076.099] {Default Queue} -> wl_buffer#3716.destroy() +[2619076.104] {Default Queue} -> wl_buffer#3717.destroy() +[2619076.112] {Default Queue} -> wl_shm_pool#3714.destroy() +[2619076.117] {Default Queue} -> wl_shm_pool#3715.destroy() +[2619076.166] {Default Queue} -> wl_shm#2319.create_pool(new id wl_shm_pool#3702, fd 575, 16) +[2619076.172] {Default Queue} -> wl_shm#2319.create_pool(new id wl_shm_pool#3703, fd 578, 16) +[2619076.177] {Default Queue} -> wl_shm_pool#3702.create_buffer(new id wl_buffer#3704, 0, 2, 2, 8, 0) +[2619076.181] {Default Queue} -> wl_shm_pool#3703.create_buffer(new id wl_buffer#3705, 0, 2, 2, 8, 0) +[2619076.188] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) +[2619076.192] {Default Queue} -> wl_surface#2311.commit() +[2619076.197] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) +[2619076.201] {Default Queue} -> wl_surface#2311.commit() +[2619076.208] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619076.213] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619076.218] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619076.223] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619076.237] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619076.243] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619076.249] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619076.252] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619076.257] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619076.261] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619076.265] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619076.269] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619076.274] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619076.279] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619076.284] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619076.288] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619076.292] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619076.297] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619076.302] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619076.305] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619076.310] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619076.314] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619076.318] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619076.322] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619076.358] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619076.363] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619076.367] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619076.371] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619076.376] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2619076.381] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2619076.389] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619076.393] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619076.397] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619076.401] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619076.406] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619076.410] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619076.414] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619076.417] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619076.422] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619076.426] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619076.430] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619076.434] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619076.438] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619076.446] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619076.452] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619076.456] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619076.461] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) +[2619076.466] {Default Queue} -> wl_surface#2311.commit() +[2619076.472] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) +[2619076.476] {Default Queue} -> wl_surface#2311.commit() +[2619076.829] {Display Queue} wl_display#1.delete_id(3325) +[2619076.836] {Display Queue} wl_display#1.delete_id(3131) +[2619076.841] {Display Queue} wl_display#1.delete_id(3323) +[2619076.845] {Display Queue} wl_display#1.delete_id(3326) +[2619076.849] {Display Queue} wl_display#1.delete_id(1756) +[2619076.853] {Display Queue} wl_display#1.delete_id(3712) +[2619076.856] {Display Queue} wl_display#1.delete_id(3713) +[2619076.860] {Display Queue} wl_display#1.delete_id(3710) +[2619076.865] {Display Queue} wl_display#1.delete_id(3711) +[2619076.869] {Default Queue} wl_pointer#24.motion(187310707, 22.60156250, 14.19921875) +[2619076.877] {Default Queue} wl_pointer#81.motion(187310707, 22.60156250, 14.19921875) +[2619076.883] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619076.888] {Default Queue} wl_pointer#105.motion(187310707, 22.60156250, 14.19921875) +[2619076.892] {Default Queue} wl_pointer#137.motion(187310707, 22.60156250, 14.19921875) +[2619076.896] {Default Queue} wl_pointer#169.motion(187310707, 22.60156250, 14.19921875) +[2619076.901] {Default Queue} wl_pointer#201.motion(187310707, 22.60156250, 14.19921875) +[2619076.905] {Default Queue} wl_pointer#233.motion(187310707, 22.60156250, 14.19921875) +[2619076.909] {Default Queue} wl_pointer#265.motion(187310707, 22.60156250, 14.19921875) +[2619076.913] {Default Queue} wl_pointer#297.motion(187310707, 22.60156250, 14.19921875) +[2619076.917] {Default Queue} wl_pointer#329.motion(187310707, 22.60156250, 14.19921875) +[2619076.921] {Default Queue} wl_pointer#361.motion(187310707, 22.60156250, 14.19921875) +[2619076.926] {Default Queue} wl_pointer#393.motion(187310707, 22.60156250, 14.19921875) +[2619076.930] {Default Queue} wl_pointer#425.motion(187310707, 22.60156250, 14.19921875) +[2619076.934] {Default Queue} wl_pointer#457.motion(187310707, 22.60156250, 14.19921875) +[2619076.939] {Default Queue} wl_pointer#489.motion(187310707, 22.60156250, 14.19921875) +[2619076.943] {Default Queue} wl_pointer#521.motion(187310707, 22.60156250, 14.19921875) +[2619076.947] {Default Queue} wl_pointer#553.motion(187310707, 22.60156250, 14.19921875) +[2619076.951] {Default Queue} wl_pointer#585.motion(187310707, 22.60156250, 14.19921875) +[2619076.955] {Default Queue} wl_pointer#617.motion(187310707, 22.60156250, 14.19921875) +[2619076.959] {Default Queue} wl_pointer#649.motion(187310707, 22.60156250, 14.19921875) +[2619076.963] {Default Queue} wl_pointer#681.motion(187310707, 22.60156250, 14.19921875) +[2619076.967] {Default Queue} wl_pointer#713.motion(187310707, 22.60156250, 14.19921875) +[2619076.971] {Default Queue} wl_pointer#745.motion(187310707, 22.60156250, 14.19921875) +[2619076.975] {Default Queue} wl_pointer#777.motion(187310707, 22.60156250, 14.19921875) +[2619076.979] {Default Queue} wl_pointer#809.motion(187310707, 22.60156250, 14.19921875) +[2619076.983] {Default Queue} wl_pointer#841.motion(187310707, 22.60156250, 14.19921875) +[2619076.987] {Default Queue} wl_pointer#873.motion(187310707, 22.60156250, 14.19921875) +[2619076.991] {Default Queue} wl_pointer#905.motion(187310707, 22.60156250, 14.19921875) +[2619076.995] {Default Queue} wl_pointer#937.motion(187310707, 22.60156250, 14.19921875) +[2619076.999] {Default Queue} wl_pointer#969.motion(187310707, 22.60156250, 14.19921875) +[2619077.003] {Default Queue} wl_pointer#1001.motion(187310707, 22.60156250, 14.19921875) +[2619077.008] {Default Queue} wl_pointer#1033.motion(187310707, 22.60156250, 14.19921875) +[2619077.012] {Default Queue} wl_pointer#1065.motion(187310707, 22.60156250, 14.19921875) +[2619077.028] {Default Queue} wl_pointer#1097.motion(187310707, 22.60156250, 14.19921875) +[2619077.034] {Default Queue} wl_pointer#1129.motion(187310707, 22.60156250, 14.19921875) +[2619077.039] {Default Queue} wl_pointer#1161.motion(187310707, 22.60156250, 14.19921875) +[2619077.043] {Default Queue} wl_pointer#1193.motion(187310707, 22.60156250, 14.19921875) +[2619077.047] {Default Queue} wl_pointer#1225.motion(187310707, 22.60156250, 14.19921875) +[2619077.051] {Default Queue} wl_pointer#1257.motion(187310707, 22.60156250, 14.19921875) +[2619077.055] {Default Queue} wl_pointer#1289.motion(187310707, 22.60156250, 14.19921875) +[2619077.059] {Default Queue} wl_pointer#1321.motion(187310707, 22.60156250, 14.19921875) +[2619077.063] {Default Queue} wl_pointer#1353.motion(187310707, 22.60156250, 14.19921875) +[2619077.067] {Default Queue} wl_pointer#1385.motion(187310707, 22.60156250, 14.19921875) +[2619077.071] {Default Queue} wl_pointer#1417.motion(187310707, 22.60156250, 14.19921875) +[2619077.075] {Default Queue} wl_pointer#1449.motion(187310707, 22.60156250, 14.19921875) +[2619077.079] {Default Queue} wl_pointer#1481.motion(187310707, 22.60156250, 14.19921875) +[2619077.083] {Default Queue} wl_pointer#1513.motion(187310707, 22.60156250, 14.19921875) +[2619077.087] {Default Queue} wl_pointer#1545.motion(187310707, 22.60156250, 14.19921875) +[2619077.091] {Default Queue} wl_pointer#1577.motion(187310707, 22.60156250, 14.19921875) +[2619077.095] {Default Queue} wl_pointer#1609.motion(187310707, 22.60156250, 14.19921875) +[2619077.099] {Default Queue} wl_pointer#1641.motion(187310707, 22.60156250, 14.19921875) +[2619077.103] {Default Queue} wl_pointer#1673.motion(187310707, 22.60156250, 14.19921875) +[2619077.108] {Default Queue} wl_pointer#1705.motion(187310707, 22.60156250, 14.19921875) +[2619077.112] {Default Queue} wl_pointer#1737.motion(187310707, 22.60156250, 14.19921875) +[2619077.116] {Default Queue} wl_pointer#1762.motion(187310707, 22.60156250, 14.19921875) +[2619077.120] {Default Queue} wl_pointer#1801.motion(187310707, 22.60156250, 14.19921875) +[2619077.124] {Default Queue} wl_pointer#1833.motion(187310707, 22.60156250, 14.19921875) +[2619077.128] {Default Queue} wl_pointer#1865.motion(187310707, 22.60156250, 14.19921875) +[2619077.132] {Default Queue} wl_pointer#1897.motion(187310707, 22.60156250, 14.19921875) +[2619077.136] {Default Queue} wl_pointer#1929.motion(187310707, 22.60156250, 14.19921875) +[2619077.140] {Default Queue} wl_pointer#1961.motion(187310707, 22.60156250, 14.19921875) +[2619077.144] {Default Queue} wl_pointer#1993.motion(187310707, 22.60156250, 14.19921875) +[2619077.148] {Default Queue} wl_pointer#2025.motion(187310707, 22.60156250, 14.19921875) +[2619077.153] {Default Queue} wl_pointer#2057.motion(187310707, 22.60156250, 14.19921875) +[2619077.157] {Default Queue} wl_pointer#2089.motion(187310707, 22.60156250, 14.19921875) +[2619077.161] {Default Queue} wl_pointer#2121.motion(187310707, 22.60156250, 14.19921875) +[2619077.165] {Default Queue} wl_pointer#2153.motion(187310707, 22.60156250, 14.19921875) +[2619077.169] {Default Queue} wl_pointer#2185.motion(187310707, 22.60156250, 14.19921875) +[2619077.173] {Default Queue} wl_pointer#2217.motion(187310707, 22.60156250, 14.19921875) +[2619077.177] {Default Queue} wl_pointer#2249.motion(187310707, 22.60156250, 14.19921875) +[2619077.181] {Default Queue} wl_pointer#2281.motion(187310707, 22.60156250, 14.19921875) +[2619077.185] {Default Queue} wl_pointer#2313.motion(187310707, 22.60156250, 14.19921875) +[2619077.189] {Default Queue} wl_pointer#2345.motion(187310707, 22.60156250, 14.19921875) +[2619077.194] {Default Queue} wl_pointer#2377.motion(187310707, 22.60156250, 14.19921875) +[2619077.198] {Default Queue} wl_pointer#2409.motion(187310707, 22.60156250, 14.19921875) +[2619077.202] {Default Queue} wl_pointer#2441.motion(187310707, 22.60156250, 14.19921875) +[2619077.206] {Default Queue} wl_pointer#2473.motion(187310707, 22.60156250, 14.19921875) +[2619077.210] {Default Queue} wl_pointer#2498.motion(187310707, 22.60156250, 14.19921875) +[2619077.222] {Default Queue} -> wl_buffer#2078.destroy() +[2619077.231] {Default Queue} -> wl_buffer#2077.destroy() +[2619077.236] {Default Queue} -> wl_shm_pool#2076.destroy() +[2619077.240] {Default Queue} -> wl_shm_pool#2075.destroy() +[2619077.245] {Default Queue} -> wl_surface#3324.destroy() +[2619077.283] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3711, fd 575, 640) +[2619077.289] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3710, fd 578, 640) +[2619077.294] {Default Queue} -> wl_shm_pool#3711.create_buffer(new id wl_buffer#3713, 0, 10, 16, 40, 0) +[2619077.298] {Default Queue} -> wl_shm_pool#3710.create_buffer(new id wl_buffer#3712, 0, 10, 16, 40, 0) +[2619077.306] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#1756) +[2619077.310] {Default Queue} -> wl_surface#1756.attach(wl_buffer#3713, 0, 0) +[2619077.314] {Default Queue} -> wl_surface#1756.commit() +[2619077.319] {Default Queue} -> wl_surface#1756.attach(wl_buffer#3713, 0, 0) +[2619077.323] {Default Queue} -> wl_surface#1756.commit() +[2619077.327] {Default Queue} wl_pointer#2537.motion(187310707, 22.60156250, 14.19921875) +[2619077.332] {Default Queue} wl_pointer#2569.motion(187310707, 22.60156250, 14.19921875) +[2619077.336] {Default Queue} wl_pointer#2601.motion(187310707, 22.60156250, 14.19921875) +[2619077.340] {Default Queue} wl_pointer#2633.motion(187310707, 22.60156250, 14.19921875) +[2619077.344] {Default Queue} wl_pointer#2665.motion(187310707, 22.60156250, 14.19921875) +[2619077.348] {Default Queue} wl_pointer#2697.motion(187310707, 22.60156250, 14.19921875) +[2619077.352] {Default Queue} wl_pointer#2729.motion(187310707, 22.60156250, 14.19921875) +[2619077.356] {Default Queue} wl_pointer#2761.motion(187310707, 22.60156250, 14.19921875) +[2619077.360] {Default Queue} wl_pointer#2793.motion(187310707, 22.60156250, 14.19921875) +[2619077.364] {Default Queue} wl_pointer#2825.motion(187310707, 22.60156250, 14.19921875) +[2619077.369] {Default Queue} wl_pointer#2857.motion(187310707, 22.60156250, 14.19921875) +[2619077.373] {Default Queue} wl_pointer#2889.motion(187310707, 22.60156250, 14.19921875) +[2619077.377] {Default Queue} wl_pointer#2921.motion(187310707, 22.60156250, 14.19921875) +[2619077.381] {Default Queue} wl_pointer#2953.motion(187310707, 22.60156250, 14.19921875) +[2619077.385] {Default Queue} wl_pointer#2985.motion(187310707, 22.60156250, 14.19921875) +[2619077.389] {Default Queue} wl_pointer#3017.motion(187310707, 22.60156250, 14.19921875) +[2619077.394] {Default Queue} wl_pointer#3049.motion(187310707, 22.60156250, 14.19921875) +[2619077.398] {Default Queue} wl_pointer#3081.motion(187310707, 22.60156250, 14.19921875) +[2619077.402] {Default Queue} wl_pointer#3113.motion(187310707, 22.60156250, 14.19921875) +[2619077.406] {Default Queue} wl_pointer#3145.motion(187310707, 22.60156250, 14.19921875) +[2619077.410] {Default Queue} wl_pointer#3177.motion(187310707, 22.60156250, 14.19921875) +[2619077.414] {Default Queue} wl_pointer#3209.motion(187310707, 22.60156250, 14.19921875) +[2619077.418] {Default Queue} wl_pointer#3241.motion(187310707, 22.60156250, 14.19921875) +[2619077.423] {Default Queue} wl_pointer#3273.motion(187310707, 22.60156250, 14.19921875) +[2619077.427] {Default Queue} wl_pointer#3305.motion(187310707, 22.60156250, 14.19921875) +[2619077.431] {Default Queue} wl_pointer#3337.motion(187310707, 22.60156250, 14.19921875) +[2619077.435] {Default Queue} wl_pointer#3369.motion(187310707, 22.60156250, 14.19921875) +[2619077.440] {Default Queue} wl_pointer#3401.motion(187310707, 22.60156250, 14.19921875) +[2619077.444] {Default Queue} wl_pointer#3433.motion(187310707, 22.60156250, 14.19921875) +[2619077.448] {Default Queue} wl_pointer#3465.motion(187310707, 22.60156250, 14.19921875) +[2619077.452] {Default Queue} wl_pointer#3497.motion(187310707, 22.60156250, 14.19921875) +[2619077.456] {Default Queue} wl_pointer#3529.motion(187310707, 22.60156250, 14.19921875) +[2619077.460] {Default Queue} wl_pointer#3561.motion(187310707, 22.60156250, 14.19921875) +[2619077.464] {Default Queue} wl_pointer#3593.motion(187310707, 22.60156250, 14.19921875) +[2619077.471] {Default Queue} wl_pointer#3625.motion(187310707, 22.60156250, 14.19921875) +[2619077.477] {Default Queue} wl_pointer#3657.motion(187310707, 22.60156250, 14.19921875) +[2619077.481] {Default Queue} wl_pointer#3695.motion(187310707, 22.60156250, 14.19921875) +[2619077.489] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619077.494] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619077.498] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619077.502] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619077.512] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619077.517] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619077.521] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619077.525] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619077.530] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619077.534] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619077.538] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619077.542] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619077.546] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619077.551] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619077.556] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619077.560] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619077.564] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619077.568] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619077.572] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619077.576] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619077.580] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619077.584] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619077.588] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619077.592] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619077.626] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619077.633] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619077.639] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619077.644] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619077.650] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2619077.654] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2619077.662] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619077.666] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619077.670] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619077.674] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619077.679] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619077.683] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619077.687] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619077.691] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619077.696] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619077.700] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619077.704] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619077.707] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619077.712] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619077.716] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619077.720] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619077.723] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619077.728] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) +[2619077.732] {Default Queue} -> wl_surface#2311.commit() +[2619077.736] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) +[2619077.743] {Default Queue} -> wl_surface#2311.commit() +[2619077.751] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) +[2619077.755] {Default Queue} -> wl_surface#2311.commit() +[2619077.759] {Default Queue} -> wl_region#2271.subtract(0, 0, 2, 2) +[2619077.765] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619077.769] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619077.773] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619077.777] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619077.784] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619077.789] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619077.792] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619077.796] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619077.802] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619077.806] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619077.810] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619077.814] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619077.819] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619077.824] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619077.828] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619077.831] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619077.837] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619077.841] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619077.845] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619077.848] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619077.855] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619077.860] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619077.870] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619077.873] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619077.878] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619077.883] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619077.887] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619077.890] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619077.895] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619077.899] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619077.903] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619077.907] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619077.911] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619077.915] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619077.919] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619077.923] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619077.933] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619077.937] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619077.941] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619077.945] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619077.949] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619077.954] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619077.958] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619077.961] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619077.967] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619077.971] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619077.975] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619077.979] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619077.985] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619077.989] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619077.996] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619078.001] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619078.007] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619078.011] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619078.015] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619078.019] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619078.028] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619078.033] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619078.037] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619078.041] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619078.047] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619078.051] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619078.055] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619078.059] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619078.064] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619078.068] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619078.072] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619078.075] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619078.080] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619078.084] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619078.088] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619078.093] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619078.101] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619078.105] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619078.110] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619078.114] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619078.120] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2619078.125] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2619078.130] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619078.134] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619078.138] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619078.142] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619078.146] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) +[2619078.150] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) +[2619078.154] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2619078.158] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2619078.163] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2619078.167] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2619078.170] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2619078.185] {Default Queue} -> wl_buffer#2269.destroy() +[2619078.190] {Default Queue} -> wl_buffer#2270.destroy() +[2619078.195] {Default Queue} -> wl_shm_pool#2267.destroy() +[2619078.199] {Default Queue} -> wl_shm_pool#2268.destroy() +[2619078.239] {Default Queue} -> wl_shm#2255.create_pool(new id wl_shm_pool#3326, fd 581, 16) +[2619078.246] {Default Queue} -> wl_shm#2255.create_pool(new id wl_shm_pool#3323, fd 582, 16) +[2619078.251] {Default Queue} -> wl_shm_pool#3326.create_buffer(new id wl_buffer#3131, 0, 2, 2, 8, 0) +[2619078.255] {Default Queue} -> wl_shm_pool#3323.create_buffer(new id wl_buffer#3325, 0, 2, 2, 8, 0) +[2619078.262] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) +[2619078.266] {Default Queue} -> wl_surface#2247.commit() +[2619078.271] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) +[2619078.275] {Default Queue} -> wl_surface#2247.commit() +[2619078.282] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) +[2619078.286] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) +[2619078.294] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2619078.300] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2619078.309] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) +[2619078.314] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) +[2619078.318] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2619078.322] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2619078.327] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) +[2619078.331] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) +[2619078.336] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2619078.340] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2619078.345] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) +[2619078.349] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) +[2619078.353] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2619078.357] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2619078.362] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) +[2619078.366] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) +[2619078.370] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2619078.374] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2619078.453] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) +[2619078.458] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) +[2619078.462] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2619078.466] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2619078.471] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2619078.476] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2619078.481] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) +[2619078.485] {Default Queue} -> wl_surface#2247.commit() +[2619078.491] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) +[2619078.496] {Default Queue} -> wl_surface#2247.commit() +[2619079.560] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) +[2619079.566] {Default Queue} -> wl_surface#2247.commit() +[2619079.573] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) +[2619079.579] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) +[2619079.583] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2619079.587] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2619079.595] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) +[2619079.599] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) +[2619079.603] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2619079.607] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2619079.612] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) +[2619079.616] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) +[2619079.620] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2619079.624] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2619079.629] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) +[2619079.633] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) +[2619079.637] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2619079.640] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2619079.645] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) +[2619079.649] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) +[2619079.653] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2619079.657] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2619079.719] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) +[2619079.725] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) +[2619079.729] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2619079.737] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2619079.744] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2619079.748] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2619079.753] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) +[2619079.757] {Default Queue} -> wl_surface#2247.commit() +[2619079.761] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) +[2619079.765] {Default Queue} -> wl_surface#2247.commit() +[2619079.771] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) +[2619079.775] {Default Queue} -> wl_surface#2247.commit() +[2619079.780] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) +[2619079.784] {Default Queue} -> wl_surface#2215.commit() +[2619080.845] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) +[2619080.851] {Default Queue} -> wl_surface#2215.commit() +[2619080.857] {Default Queue} -> wl_region#2239.subtract(0, 0, 25, 408) +[2619080.866] {Default Queue} -> wl_region#2239.add(-23, -386, 25, 388) +[2619080.870] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) +[2619080.874] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) +[2619080.879] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) +[2619080.883] {Default Queue} -> wl_surface#2215.commit() +[2619080.887] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) +[2619080.890] {Default Queue} -> wl_surface#2215.commit() +[2619080.896] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) +[2619080.900] {Default Queue} -> wl_surface#2215.commit() +[2619080.904] {Default Queue} -> wl_region#2175.subtract(0, 0, 109, 161) +[2619080.910] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 403) +[2619080.914] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 403) +[2619080.918] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2619080.922] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2619080.991] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 403) +[2619080.996] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 403) +[2619081.000] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2619081.004] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2619081.010] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2619081.015] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2619081.063] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 403) +[2619081.068] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 403) +[2619081.072] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2619081.076] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2619081.082] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2619081.086] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2619081.092] {Default Queue} -> wl_region#2239.subtract(0, 0, 25, 408) +[2619081.096] {Default Queue} -> wl_region#2239.add(-23, -386, 25, 388) +[2619081.100] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) +[2619081.104] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) +[2619081.108] {Default Queue} -> wl_surface#2151.damage(0, 0, 109, 161) +[2619081.112] {Default Queue} -> wl_region#2175.subtract(0, 0, 132, 547) +[2619081.117] {Default Queue} -> wl_region#2175.add(-20, -383, 129, 544) +[2619081.120] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) +[2619081.124] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) +[2619081.128] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2619081.132] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2619081.136] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2619081.141] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2619081.145] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) +[2619081.149] {Default Queue} -> wl_surface#2151.damage(0, 0, 109, 161) +[2619081.164] {Default Queue} -> wl_buffer#3720.destroy() +[2619081.174] {Default Queue} -> wl_buffer#3721.destroy() +[2619081.181] {Default Queue} -> wl_shm_pool#3718.destroy() +[2619081.185] {Default Queue} -> wl_shm_pool#3719.destroy() +[2619081.266] {Default Queue} -> wl_shm#2159.create_pool(new id wl_shm_pool#476, fd 575, 70196) +[2619081.275] {Default Queue} -> wl_shm#2159.create_pool(new id wl_shm_pool#1595, fd 578, 70196) +[2619081.281] {Default Queue} -> wl_shm_pool#476.create_buffer(new id wl_buffer#1596, 0, 109, 161, 436, 0) +[2619081.286] {Default Queue} -> wl_shm_pool#1595.create_buffer(new id wl_buffer#1597, 0, 109, 161, 436, 0) +[2619081.310] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) +[2619081.315] {Default Queue} -> wl_surface#2151.commit() +[2619081.338] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) +[2619081.343] {Default Queue} -> wl_surface#2151.commit() +[2619081.352] {Default Queue} -> wl_region#2175.subtract(0, 0, 132, 547) +[2619081.357] {Default Queue} -> wl_region#2175.add(-20, -383, 129, 544) +[2619081.361] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) +[2619081.365] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) +[2619081.372] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) +[2619081.376] {Default Queue} -> wl_surface#2151.commit() +[2619081.383] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) +[2619081.387] {Default Queue} -> wl_surface#2151.commit() +[2619082.383] {Display Queue} wl_display#1.delete_id(3709) +[2619082.391] {Display Queue} wl_display#1.delete_id(3708) +[2619082.395] {Display Queue} wl_display#1.delete_id(3707) +[2619082.399] {Display Queue} wl_display#1.delete_id(3706) +[2619082.403] {Display Queue} wl_display#1.delete_id(1916) +[2619082.407] {Display Queue} wl_display#1.delete_id(3716) +[2619082.411] {Display Queue} wl_display#1.delete_id(3717) +[2619082.415] {Display Queue} wl_display#1.delete_id(3714) +[2619082.419] {Display Queue} wl_display#1.delete_id(3715) +[2619082.423] {Default Queue} wl_pointer#24.motion(187310711, 22.19921875, 14.19921875) +[2619082.428] {Default Queue} wl_pointer#81.motion(187310711, 22.19921875, 14.19921875) +[2619082.433] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619082.438] {Default Queue} wl_pointer#105.motion(187310711, 22.19921875, 14.19921875) +[2619082.442] {Default Queue} wl_pointer#137.motion(187310711, 22.19921875, 14.19921875) +[2619082.446] {Default Queue} wl_pointer#169.motion(187310711, 22.19921875, 14.19921875) +[2619082.451] {Default Queue} wl_pointer#201.motion(187310711, 22.19921875, 14.19921875) +[2619082.455] {Default Queue} wl_pointer#233.motion(187310711, 22.19921875, 14.19921875) +[2619082.459] {Default Queue} wl_pointer#265.motion(187310711, 22.19921875, 14.19921875) +[2619082.464] {Default Queue} wl_pointer#297.motion(187310711, 22.19921875, 14.19921875) +[2619082.468] {Default Queue} wl_pointer#329.motion(187310711, 22.19921875, 14.19921875) +[2619082.472] {Default Queue} wl_pointer#361.motion(187310711, 22.19921875, 14.19921875) +[2619082.476] {Default Queue} wl_pointer#393.motion(187310711, 22.19921875, 14.19921875) +[2619082.480] {Default Queue} wl_pointer#425.motion(187310711, 22.19921875, 14.19921875) +[2619082.484] {Default Queue} wl_pointer#457.motion(187310711, 22.19921875, 14.19921875) +[2619082.488] {Default Queue} wl_pointer#489.motion(187310711, 22.19921875, 14.19921875) +[2619082.492] {Default Queue} wl_pointer#521.motion(187310711, 22.19921875, 14.19921875) +[2619082.496] {Default Queue} wl_pointer#553.motion(187310711, 22.19921875, 14.19921875) +[2619082.500] {Default Queue} wl_pointer#585.motion(187310711, 22.19921875, 14.19921875) +[2619082.504] {Default Queue} wl_pointer#617.motion(187310711, 22.19921875, 14.19921875) +[2619082.508] {Default Queue} wl_pointer#649.motion(187310711, 22.19921875, 14.19921875) +[2619082.512] {Default Queue} wl_pointer#681.motion(187310711, 22.19921875, 14.19921875) +[2619082.516] {Default Queue} wl_pointer#713.motion(187310711, 22.19921875, 14.19921875) +[2619082.520] {Default Queue} wl_pointer#745.motion(187310711, 22.19921875, 14.19921875) +[2619082.528] {Default Queue} wl_pointer#777.motion(187310711, 22.19921875, 14.19921875) +[2619082.535] {Default Queue} wl_pointer#809.motion(187310711, 22.19921875, 14.19921875) +[2619082.539] {Default Queue} wl_pointer#841.motion(187310711, 22.19921875, 14.19921875) +[2619082.543] {Default Queue} wl_pointer#873.motion(187310711, 22.19921875, 14.19921875) +[2619082.547] {Default Queue} wl_pointer#905.motion(187310711, 22.19921875, 14.19921875) +[2619082.551] {Default Queue} wl_pointer#937.motion(187310711, 22.19921875, 14.19921875) +[2619082.556] {Default Queue} wl_pointer#969.motion(187310711, 22.19921875, 14.19921875) +[2619082.562] {Default Queue} wl_pointer#1001.motion(187310711, 22.19921875, 14.19921875) +[2619082.567] {Default Queue} wl_pointer#1033.motion(187310711, 22.19921875, 14.19921875) +[2619082.572] {Default Queue} wl_pointer#1065.motion(187310711, 22.19921875, 14.19921875) +[2619082.576] {Default Queue} wl_pointer#1097.motion(187310711, 22.19921875, 14.19921875) +[2619082.580] {Default Queue} wl_pointer#1129.motion(187310711, 22.19921875, 14.19921875) +[2619082.584] {Default Queue} wl_pointer#1161.motion(187310711, 22.19921875, 14.19921875) +[2619082.589] {Default Queue} wl_pointer#1193.motion(187310711, 22.19921875, 14.19921875) +[2619082.593] {Default Queue} wl_pointer#1225.motion(187310711, 22.19921875, 14.19921875) +[2619082.597] {Default Queue} wl_pointer#1257.motion(187310711, 22.19921875, 14.19921875) +[2619082.601] {Default Queue} wl_pointer#1289.motion(187310711, 22.19921875, 14.19921875) +[2619082.605] {Default Queue} wl_pointer#1321.motion(187310711, 22.19921875, 14.19921875) +[2619082.609] {Default Queue} wl_pointer#1353.motion(187310711, 22.19921875, 14.19921875) +[2619082.613] {Default Queue} wl_pointer#1385.motion(187310711, 22.19921875, 14.19921875) +[2619082.617] {Default Queue} wl_pointer#1417.motion(187310711, 22.19921875, 14.19921875) +[2619082.621] {Default Queue} wl_pointer#1449.motion(187310711, 22.19921875, 14.19921875) +[2619082.625] {Default Queue} wl_pointer#1481.motion(187310711, 22.19921875, 14.19921875) +[2619082.630] {Default Queue} wl_pointer#1513.motion(187310711, 22.19921875, 14.19921875) +[2619082.634] {Default Queue} wl_pointer#1545.motion(187310711, 22.19921875, 14.19921875) +[2619082.638] {Default Queue} wl_pointer#1577.motion(187310711, 22.19921875, 14.19921875) +[2619082.642] {Default Queue} wl_pointer#1609.motion(187310711, 22.19921875, 14.19921875) +[2619082.646] {Default Queue} wl_pointer#1641.motion(187310711, 22.19921875, 14.19921875) +[2619082.650] {Default Queue} wl_pointer#1673.motion(187310711, 22.19921875, 14.19921875) +[2619082.655] {Default Queue} wl_pointer#1705.motion(187310711, 22.19921875, 14.19921875) +[2619082.658] {Default Queue} wl_pointer#1737.motion(187310711, 22.19921875, 14.19921875) +[2619082.663] {Default Queue} wl_pointer#1762.motion(187310711, 22.19921875, 14.19921875) +[2619082.667] {Default Queue} wl_pointer#1801.motion(187310711, 22.19921875, 14.19921875) +[2619082.671] {Default Queue} wl_pointer#1833.motion(187310711, 22.19921875, 14.19921875) +[2619082.675] {Default Queue} wl_pointer#1865.motion(187310711, 22.19921875, 14.19921875) +[2619082.679] {Default Queue} wl_pointer#1897.motion(187310711, 22.19921875, 14.19921875) +[2619082.683] {Default Queue} wl_pointer#1929.motion(187310711, 22.19921875, 14.19921875) +[2619082.687] {Default Queue} wl_pointer#1961.motion(187310711, 22.19921875, 14.19921875) +[2619082.692] {Default Queue} wl_pointer#1993.motion(187310711, 22.19921875, 14.19921875) +[2619082.696] {Default Queue} wl_pointer#2025.motion(187310711, 22.19921875, 14.19921875) +[2619082.700] {Default Queue} wl_pointer#2057.motion(187310711, 22.19921875, 14.19921875) +[2619082.704] {Default Queue} wl_pointer#2089.motion(187310711, 22.19921875, 14.19921875) +[2619082.708] {Default Queue} wl_pointer#2121.motion(187310711, 22.19921875, 14.19921875) +[2619082.712] {Default Queue} wl_pointer#2153.motion(187310711, 22.19921875, 14.19921875) +[2619082.716] {Default Queue} wl_pointer#2185.motion(187310711, 22.19921875, 14.19921875) +[2619082.724] {Default Queue} wl_pointer#2217.motion(187310711, 22.19921875, 14.19921875) +[2619082.729] {Default Queue} wl_pointer#2249.motion(187310711, 22.19921875, 14.19921875) +[2619082.734] {Default Queue} wl_pointer#2281.motion(187310711, 22.19921875, 14.19921875) +[2619082.738] {Default Queue} wl_pointer#2313.motion(187310711, 22.19921875, 14.19921875) +[2619082.742] {Default Queue} wl_pointer#2345.motion(187310711, 22.19921875, 14.19921875) +[2619082.747] {Default Queue} wl_pointer#2377.motion(187310711, 22.19921875, 14.19921875) +[2619082.751] {Default Queue} wl_pointer#2409.motion(187310711, 22.19921875, 14.19921875) +[2619082.755] {Default Queue} wl_pointer#2441.motion(187310711, 22.19921875, 14.19921875) +[2619082.759] {Default Queue} wl_pointer#2473.motion(187310711, 22.19921875, 14.19921875) +[2619082.764] {Default Queue} wl_pointer#2498.motion(187310711, 22.19921875, 14.19921875) +[2619082.776] {Default Queue} -> wl_buffer#3713.destroy() +[2619082.781] {Default Queue} -> wl_buffer#3712.destroy() +[2619082.785] {Default Queue} -> wl_shm_pool#3711.destroy() +[2619082.789] {Default Queue} -> wl_shm_pool#3710.destroy() +[2619082.793] {Default Queue} -> wl_surface#1756.destroy() +[2619082.831] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3715, fd 575, 640) +[2619082.838] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3714, fd 578, 640) +[2619082.843] {Default Queue} -> wl_shm_pool#3715.create_buffer(new id wl_buffer#3717, 0, 10, 16, 40, 0) +[2619082.848] {Default Queue} -> wl_shm_pool#3714.create_buffer(new id wl_buffer#3716, 0, 10, 16, 40, 0) +[2619082.854] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#1916) +[2619082.858] {Default Queue} -> wl_surface#1916.attach(wl_buffer#3717, 0, 0) +[2619082.872] {Default Queue} -> wl_surface#1916.commit() +[2619082.877] {Default Queue} -> wl_surface#1916.attach(wl_buffer#3717, 0, 0) +[2619082.883] {Default Queue} -> wl_surface#1916.commit() +[2619082.888] {Default Queue} wl_pointer#2537.motion(187310711, 22.19921875, 14.19921875) +[2619082.893] {Default Queue} wl_pointer#2569.motion(187310711, 22.19921875, 14.19921875) +[2619082.898] {Default Queue} wl_pointer#2601.motion(187310711, 22.19921875, 14.19921875) +[2619082.902] {Default Queue} wl_pointer#2633.motion(187310711, 22.19921875, 14.19921875) +[2619082.906] {Default Queue} wl_pointer#2665.motion(187310711, 22.19921875, 14.19921875) +[2619082.910] {Default Queue} wl_pointer#2697.motion(187310711, 22.19921875, 14.19921875) +[2619082.914] {Default Queue} wl_pointer#2729.motion(187310711, 22.19921875, 14.19921875) +[2619082.918] {Default Queue} wl_pointer#2761.motion(187310711, 22.19921875, 14.19921875) +[2619082.923] {Default Queue} wl_pointer#2793.motion(187310711, 22.19921875, 14.19921875) +[2619082.927] {Default Queue} wl_pointer#2825.motion(187310711, 22.19921875, 14.19921875) +[2619082.931] {Default Queue} wl_pointer#2857.motion(187310711, 22.19921875, 14.19921875) +[2619082.935] {Default Queue} wl_pointer#2889.motion(187310711, 22.19921875, 14.19921875) +[2619082.939] {Default Queue} wl_pointer#2921.motion(187310711, 22.19921875, 14.19921875) +[2619082.943] {Default Queue} wl_pointer#2953.motion(187310711, 22.19921875, 14.19921875) +[2619082.947] {Default Queue} wl_pointer#2985.motion(187310711, 22.19921875, 14.19921875) +[2619082.951] {Default Queue} wl_pointer#3017.motion(187310711, 22.19921875, 14.19921875) +[2619082.955] {Default Queue} wl_pointer#3049.motion(187310711, 22.19921875, 14.19921875) +[2619082.959] {Default Queue} wl_pointer#3081.motion(187310711, 22.19921875, 14.19921875) +[2619082.963] {Default Queue} wl_pointer#3113.motion(187310711, 22.19921875, 14.19921875) +[2619082.967] {Default Queue} wl_pointer#3145.motion(187310711, 22.19921875, 14.19921875) +[2619082.971] {Default Queue} wl_pointer#3177.motion(187310711, 22.19921875, 14.19921875) +[2619082.976] {Default Queue} wl_pointer#3209.motion(187310711, 22.19921875, 14.19921875) +[2619082.980] {Default Queue} wl_pointer#3241.motion(187310711, 22.19921875, 14.19921875) +[2619082.984] {Default Queue} wl_pointer#3273.motion(187310711, 22.19921875, 14.19921875) +[2619082.991] {Default Queue} wl_pointer#3305.motion(187310711, 22.19921875, 14.19921875) +[2619082.997] {Default Queue} wl_pointer#3337.motion(187310711, 22.19921875, 14.19921875) +[2619083.001] {Default Queue} wl_pointer#3369.motion(187310711, 22.19921875, 14.19921875) +[2619083.005] {Default Queue} wl_pointer#3401.motion(187310711, 22.19921875, 14.19921875) +[2619083.009] {Default Queue} wl_pointer#3433.motion(187310711, 22.19921875, 14.19921875) +[2619083.014] {Default Queue} wl_pointer#3465.motion(187310711, 22.19921875, 14.19921875) +[2619083.018] {Default Queue} wl_pointer#3497.motion(187310711, 22.19921875, 14.19921875) +[2619083.023] {Default Queue} wl_pointer#3529.motion(187310711, 22.19921875, 14.19921875) +[2619083.027] {Default Queue} wl_pointer#3561.motion(187310711, 22.19921875, 14.19921875) +[2619083.031] {Default Queue} wl_pointer#3593.motion(187310711, 22.19921875, 14.19921875) +[2619083.035] {Default Queue} wl_pointer#3625.motion(187310711, 22.19921875, 14.19921875) +[2619083.039] {Default Queue} wl_pointer#3657.motion(187310711, 22.19921875, 14.19921875) +[2619083.043] {Default Queue} wl_pointer#3695.motion(187310711, 22.19921875, 14.19921875) +[2619083.053] {Default Queue} -> wl_region#2175.subtract(0, 0, 132, 547) +[2619083.057] {Default Queue} -> wl_region#2175.add(-20, -383, 129, 544) +[2619083.061] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) +[2619083.065] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) +[2619083.072] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) +[2619083.077] {Default Queue} -> wl_surface#2151.commit() +[2619083.082] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) +[2619083.086] {Default Queue} -> wl_surface#2151.commit() +[2619083.113] {Default Queue} wl_pointer#24.motion(187310717, 21.80078125, 14.19921875) +[2619083.119] {Default Queue} wl_pointer#81.motion(187310717, 21.80078125, 14.19921875) +[2619083.124] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619083.128] {Default Queue} wl_pointer#105.motion(187310717, 21.80078125, 14.19921875) +[2619083.133] {Default Queue} wl_pointer#137.motion(187310717, 21.80078125, 14.19921875) +[2619083.137] {Default Queue} wl_pointer#169.motion(187310717, 21.80078125, 14.19921875) +[2619083.141] {Default Queue} wl_pointer#201.motion(187310717, 21.80078125, 14.19921875) +[2619083.145] {Default Queue} wl_pointer#233.motion(187310717, 21.80078125, 14.19921875) +[2619083.149] {Default Queue} wl_pointer#265.motion(187310717, 21.80078125, 14.19921875) +[2619083.153] {Default Queue} wl_pointer#297.motion(187310717, 21.80078125, 14.19921875) +[2619083.157] {Default Queue} wl_pointer#329.motion(187310717, 21.80078125, 14.19921875) +[2619083.161] {Default Queue} wl_pointer#361.motion(187310717, 21.80078125, 14.19921875) +[2619083.165] {Default Queue} wl_pointer#393.motion(187310717, 21.80078125, 14.19921875) +[2619083.169] {Default Queue} wl_pointer#425.motion(187310717, 21.80078125, 14.19921875) +[2619083.173] {Default Queue} wl_pointer#457.motion(187310717, 21.80078125, 14.19921875) +[2619083.177] {Default Queue} wl_pointer#489.motion(187310717, 21.80078125, 14.19921875) +[2619083.181] {Default Queue} wl_pointer#521.motion(187310717, 21.80078125, 14.19921875) +[2619083.185] {Default Queue} wl_pointer#553.motion(187310717, 21.80078125, 14.19921875) +[2619083.189] {Default Queue} wl_pointer#585.motion(187310717, 21.80078125, 14.19921875) +[2619083.193] {Default Queue} wl_pointer#617.motion(187310717, 21.80078125, 14.19921875) +[2619083.198] {Default Queue} wl_pointer#649.motion(187310717, 21.80078125, 14.19921875) +[2619083.202] {Default Queue} wl_pointer#681.motion(187310717, 21.80078125, 14.19921875) +[2619083.206] {Default Queue} wl_pointer#713.motion(187310717, 21.80078125, 14.19921875) +[2619083.210] {Default Queue} wl_pointer#745.motion(187310717, 21.80078125, 14.19921875) +[2619083.214] {Default Queue} wl_pointer#777.motion(187310717, 21.80078125, 14.19921875) +[2619083.218] {Default Queue} wl_pointer#809.motion(187310717, 21.80078125, 14.19921875) +[2619083.225] {Default Queue} wl_pointer#841.motion(187310717, 21.80078125, 14.19921875) +[2619083.231] {Default Queue} wl_pointer#873.motion(187310717, 21.80078125, 14.19921875) +[2619083.235] {Default Queue} wl_pointer#905.motion(187310717, 21.80078125, 14.19921875) +[2619083.239] {Default Queue} wl_pointer#937.motion(187310717, 21.80078125, 14.19921875) +[2619083.243] {Default Queue} wl_pointer#969.motion(187310717, 21.80078125, 14.19921875) +[2619083.247] {Default Queue} wl_pointer#1001.motion(187310717, 21.80078125, 14.19921875) +[2619083.251] {Default Queue} wl_pointer#1033.motion(187310717, 21.80078125, 14.19921875) +[2619083.255] {Default Queue} wl_pointer#1065.motion(187310717, 21.80078125, 14.19921875) +[2619083.260] {Default Queue} wl_pointer#1097.motion(187310717, 21.80078125, 14.19921875) +[2619083.264] {Default Queue} wl_pointer#1129.motion(187310717, 21.80078125, 14.19921875) +[2619083.268] {Default Queue} wl_pointer#1161.motion(187310717, 21.80078125, 14.19921875) +[2619083.272] {Default Queue} wl_pointer#1193.motion(187310717, 21.80078125, 14.19921875) +[2619083.276] {Default Queue} wl_pointer#1225.motion(187310717, 21.80078125, 14.19921875) +[2619083.281] {Default Queue} wl_pointer#1257.motion(187310717, 21.80078125, 14.19921875) +[2619083.285] {Default Queue} wl_pointer#1289.motion(187310717, 21.80078125, 14.19921875) +[2619083.290] {Default Queue} wl_pointer#1321.motion(187310717, 21.80078125, 14.19921875) +[2619083.296] {Default Queue} wl_pointer#1353.motion(187310717, 21.80078125, 14.19921875) +[2619083.301] {Default Queue} wl_pointer#1385.motion(187310717, 21.80078125, 14.19921875) +[2619083.306] {Default Queue} wl_pointer#1417.motion(187310717, 21.80078125, 14.19921875) +[2619083.310] {Default Queue} wl_pointer#1449.motion(187310717, 21.80078125, 14.19921875) +[2619083.314] {Default Queue} wl_pointer#1481.motion(187310717, 21.80078125, 14.19921875) +[2619083.319] {Default Queue} wl_pointer#1513.motion(187310717, 21.80078125, 14.19921875) +[2619083.323] {Default Queue} wl_pointer#1545.motion(187310717, 21.80078125, 14.19921875) +[2619083.327] {Default Queue} wl_pointer#1577.motion(187310717, 21.80078125, 14.19921875) +[2619083.331] {Default Queue} wl_pointer#1609.motion(187310717, 21.80078125, 14.19921875) +[2619083.336] {Default Queue} wl_pointer#1641.motion(187310717, 21.80078125, 14.19921875) +[2619083.340] {Default Queue} wl_pointer#1673.motion(187310717, 21.80078125, 14.19921875) +[2619083.344] {Default Queue} wl_pointer#1705.motion(187310717, 21.80078125, 14.19921875) +[2619083.348] {Default Queue} wl_pointer#1737.motion(187310717, 21.80078125, 14.19921875) +[2619083.352] {Default Queue} wl_pointer#1762.motion(187310717, 21.80078125, 14.19921875) +[2619083.356] {Default Queue} wl_pointer#1801.motion(187310717, 21.80078125, 14.19921875) +[2619083.360] {Default Queue} wl_pointer#1833.motion(187310717, 21.80078125, 14.19921875) +[2619083.364] {Default Queue} wl_pointer#1865.motion(187310717, 21.80078125, 14.19921875) +[2619083.368] {Default Queue} wl_pointer#1897.motion(187310717, 21.80078125, 14.19921875) +[2619083.373] {Default Queue} wl_pointer#1929.motion(187310717, 21.80078125, 14.19921875) +[2619083.376] {Default Queue} wl_pointer#1961.motion(187310717, 21.80078125, 14.19921875) +[2619083.381] {Default Queue} wl_pointer#1993.motion(187310717, 21.80078125, 14.19921875) +[2619083.385] {Default Queue} wl_pointer#2025.motion(187310717, 21.80078125, 14.19921875) +[2619083.389] {Default Queue} wl_pointer#2057.motion(187310717, 21.80078125, 14.19921875) +[2619083.393] {Default Queue} wl_pointer#2089.motion(187310717, 21.80078125, 14.19921875) +[2619083.397] {Default Queue} wl_pointer#2121.motion(187310717, 21.80078125, 14.19921875) +[2619083.401] {Default Queue} wl_pointer#2153.motion(187310717, 21.80078125, 14.19921875) +[2619083.405] {Default Queue} wl_pointer#2185.motion(187310717, 21.80078125, 14.19921875) +[2619083.409] {Default Queue} wl_pointer#2217.motion(187310717, 21.80078125, 14.19921875) +[2619083.413] {Default Queue} wl_pointer#2249.motion(187310717, 21.80078125, 14.19921875) +[2619083.418] {Default Queue} wl_pointer#2281.motion(187310717, 21.80078125, 14.19921875) +[2619083.425] {Default Queue} wl_pointer#2313.motion(187310717, 21.80078125, 14.19921875) +[2619083.430] {Default Queue} wl_pointer#2345.motion(187310717, 21.80078125, 14.19921875) +[2619083.434] {Default Queue} wl_pointer#2377.motion(187310717, 21.80078125, 14.19921875) +[2619083.438] {Default Queue} wl_pointer#2409.motion(187310717, 21.80078125, 14.19921875) +[2619083.443] {Default Queue} wl_pointer#2441.motion(187310717, 21.80078125, 14.19921875) +[2619083.447] {Default Queue} wl_pointer#2473.motion(187310717, 21.80078125, 14.19921875) +[2619083.451] {Default Queue} wl_pointer#2498.motion(187310717, 21.80078125, 14.19921875) +[2619083.462] {Default Queue} -> wl_buffer#3717.destroy() +[2619083.467] {Default Queue} -> wl_buffer#3716.destroy() +[2619083.471] {Default Queue} -> wl_shm_pool#3715.destroy() +[2619083.475] {Default Queue} -> wl_shm_pool#3714.destroy() +[2619083.481] {Default Queue} -> wl_surface#1916.destroy() +[2619083.518] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3706, fd 581, 640) +[2619083.525] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3707, fd 582, 640) +[2619083.530] {Default Queue} -> wl_shm_pool#3706.create_buffer(new id wl_buffer#3708, 0, 10, 16, 40, 0) +[2619083.535] {Default Queue} -> wl_shm_pool#3707.create_buffer(new id wl_buffer#3709, 0, 10, 16, 40, 0) +[2619083.542] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#1598) +[2619083.546] {Default Queue} -> wl_surface#1598.attach(wl_buffer#3708, 0, 0) +[2619083.550] {Default Queue} -> wl_surface#1598.commit() +[2619083.555] {Default Queue} -> wl_surface#1598.attach(wl_buffer#3708, 0, 0) +[2619083.559] {Default Queue} -> wl_surface#1598.commit() +[2619083.563] {Default Queue} wl_pointer#2537.motion(187310717, 21.80078125, 14.19921875) +[2619083.568] {Default Queue} wl_pointer#2569.motion(187310717, 21.80078125, 14.19921875) +[2619083.572] {Default Queue} wl_pointer#2601.motion(187310717, 21.80078125, 14.19921875) +[2619083.576] {Default Queue} wl_pointer#2633.motion(187310717, 21.80078125, 14.19921875) +[2619083.580] {Default Queue} wl_pointer#2665.motion(187310717, 21.80078125, 14.19921875) +[2619083.584] {Default Queue} wl_pointer#2697.motion(187310717, 21.80078125, 14.19921875) +[2619083.588] {Default Queue} wl_pointer#2729.motion(187310717, 21.80078125, 14.19921875) +[2619083.593] {Default Queue} wl_pointer#2761.motion(187310717, 21.80078125, 14.19921875) +[2619083.597] {Default Queue} wl_pointer#2793.motion(187310717, 21.80078125, 14.19921875) +[2619083.601] {Default Queue} wl_pointer#2825.motion(187310717, 21.80078125, 14.19921875) +[2619083.606] {Default Queue} wl_pointer#2857.motion(187310717, 21.80078125, 14.19921875) +[2619083.610] {Default Queue} wl_pointer#2889.motion(187310717, 21.80078125, 14.19921875) +[2619083.614] {Default Queue} wl_pointer#2921.motion(187310717, 21.80078125, 14.19921875) +[2619083.618] {Default Queue} wl_pointer#2953.motion(187310717, 21.80078125, 14.19921875) +[2619083.622] {Default Queue} wl_pointer#2985.motion(187310717, 21.80078125, 14.19921875) +[2619083.626] {Default Queue} wl_pointer#3017.motion(187310717, 21.80078125, 14.19921875) +[2619083.630] {Default Queue} wl_pointer#3049.motion(187310717, 21.80078125, 14.19921875) +[2619083.635] {Default Queue} wl_pointer#3081.motion(187310717, 21.80078125, 14.19921875) +[2619083.639] {Default Queue} wl_pointer#3113.motion(187310717, 21.80078125, 14.19921875) +[2619083.643] {Default Queue} wl_pointer#3145.motion(187310717, 21.80078125, 14.19921875) +[2619083.647] {Default Queue} wl_pointer#3177.motion(187310717, 21.80078125, 14.19921875) +[2619083.651] {Default Queue} wl_pointer#3209.motion(187310717, 21.80078125, 14.19921875) +[2619083.655] {Default Queue} wl_pointer#3241.motion(187310717, 21.80078125, 14.19921875) +[2619083.659] {Default Queue} wl_pointer#3273.motion(187310717, 21.80078125, 14.19921875) +[2619083.663] {Default Queue} wl_pointer#3305.motion(187310717, 21.80078125, 14.19921875) +[2619083.668] {Default Queue} wl_pointer#3337.motion(187310717, 21.80078125, 14.19921875) +[2619083.679] {Default Queue} wl_pointer#3369.motion(187310717, 21.80078125, 14.19921875) +[2619083.687] {Default Queue} wl_pointer#3401.motion(187310717, 21.80078125, 14.19921875) +[2619083.691] {Default Queue} wl_pointer#3433.motion(187310717, 21.80078125, 14.19921875) +[2619083.695] {Default Queue} wl_pointer#3465.motion(187310717, 21.80078125, 14.19921875) +[2619083.701] {Default Queue} wl_pointer#3497.motion(187310717, 21.80078125, 14.19921875) +[2619083.706] {Default Queue} wl_pointer#3529.motion(187310717, 21.80078125, 14.19921875) +[2619083.712] {Default Queue} wl_pointer#3561.motion(187310717, 21.80078125, 14.19921875) +[2619083.718] {Default Queue} wl_pointer#3593.motion(187310717, 21.80078125, 14.19921875) +[2619083.723] {Default Queue} wl_pointer#3625.motion(187310717, 21.80078125, 14.19921875) +[2619083.729] {Default Queue} wl_pointer#3657.motion(187310717, 21.80078125, 14.19921875) +[2619083.734] {Default Queue} wl_pointer#3695.motion(187310717, 21.80078125, 14.19921875) +[2619083.738] {Default Queue} wl_pointer#24.motion(187310717, 21.39843750, 14.19921875) +[2619083.742] {Default Queue} wl_pointer#81.motion(187310717, 21.39843750, 14.19921875) +[2619083.747] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619083.752] {Default Queue} wl_pointer#105.motion(187310717, 21.39843750, 14.19921875) +[2619083.756] {Default Queue} wl_pointer#137.motion(187310717, 21.39843750, 14.19921875) +[2619083.760] {Default Queue} wl_pointer#169.motion(187310717, 21.39843750, 14.19921875) +[2619083.764] {Default Queue} wl_pointer#201.motion(187310717, 21.39843750, 14.19921875) +[2619083.768] {Default Queue} wl_pointer#233.motion(187310717, 21.39843750, 14.19921875) +[2619083.772] {Default Queue} wl_pointer#265.motion(187310717, 21.39843750, 14.19921875) +[2619083.776] {Default Queue} wl_pointer#297.motion(187310717, 21.39843750, 14.19921875) +[2619083.780] {Default Queue} wl_pointer#329.motion(187310717, 21.39843750, 14.19921875) +[2619083.784] {Default Queue} wl_pointer#361.motion(187310717, 21.39843750, 14.19921875) +[2619083.788] {Default Queue} wl_pointer#393.motion(187310717, 21.39843750, 14.19921875) +[2619083.792] {Default Queue} wl_pointer#425.motion(187310717, 21.39843750, 14.19921875) +[2619083.796] {Default Queue} wl_pointer#457.motion(187310717, 21.39843750, 14.19921875) +[2619083.801] {Default Queue} wl_pointer#489.motion(187310717, 21.39843750, 14.19921875) +[2619083.805] {Default Queue} wl_pointer#521.motion(187310717, 21.39843750, 14.19921875) +[2619083.809] {Default Queue} wl_pointer#553.motion(187310717, 21.39843750, 14.19921875) +[2619083.813] {Default Queue} wl_pointer#585.motion(187310717, 21.39843750, 14.19921875) +[2619083.817] {Default Queue} wl_pointer#617.motion(187310717, 21.39843750, 14.19921875) +[2619083.821] {Default Queue} wl_pointer#649.motion(187310717, 21.39843750, 14.19921875) +[2619083.825] {Default Queue} wl_pointer#681.motion(187310717, 21.39843750, 14.19921875) +[2619083.829] {Default Queue} wl_pointer#713.motion(187310717, 21.39843750, 14.19921875) +[2619083.833] {Default Queue} wl_pointer#745.motion(187310717, 21.39843750, 14.19921875) +[2619083.837] {Default Queue} wl_pointer#777.motion(187310717, 21.39843750, 14.19921875) +[2619083.841] {Default Queue} wl_pointer#809.motion(187310717, 21.39843750, 14.19921875) +[2619083.845] {Default Queue} wl_pointer#841.motion(187310717, 21.39843750, 14.19921875) +[2619083.849] {Default Queue} wl_pointer#873.motion(187310717, 21.39843750, 14.19921875) +[2619083.853] {Default Queue} wl_pointer#905.motion(187310717, 21.39843750, 14.19921875) +[2619083.857] {Default Queue} wl_pointer#937.motion(187310717, 21.39843750, 14.19921875) +[2619083.862] {Default Queue} wl_pointer#969.motion(187310717, 21.39843750, 14.19921875) +[2619083.866] {Default Queue} wl_pointer#1001.motion(187310717, 21.39843750, 14.19921875) +[2619083.874] {Default Queue} wl_pointer#1033.motion(187310717, 21.39843750, 14.19921875) +[2619083.878] {Default Queue} wl_pointer#1065.motion(187310717, 21.39843750, 14.19921875) +[2619083.882] {Default Queue} wl_pointer#1097.motion(187310717, 21.39843750, 14.19921875) +[2619083.891] {Default Queue} wl_pointer#1129.motion(187310717, 21.39843750, 14.19921875) +[2619083.897] {Default Queue} wl_pointer#1161.motion(187310717, 21.39843750, 14.19921875) +[2619083.902] {Default Queue} wl_pointer#1193.motion(187310717, 21.39843750, 14.19921875) +[2619083.906] {Default Queue} wl_pointer#1225.motion(187310717, 21.39843750, 14.19921875) +[2619083.911] {Default Queue} wl_pointer#1257.motion(187310717, 21.39843750, 14.19921875) +[2619083.916] {Default Queue} wl_pointer#1289.motion(187310717, 21.39843750, 14.19921875) +[2619083.921] {Default Queue} wl_pointer#1321.motion(187310717, 21.39843750, 14.19921875) +[2619083.926] {Default Queue} wl_pointer#1353.motion(187310717, 21.39843750, 14.19921875) +[2619083.930] {Default Queue} wl_pointer#1385.motion(187310717, 21.39843750, 14.19921875) +[2619083.933] {Default Queue} wl_pointer#1417.motion(187310717, 21.39843750, 14.19921875) +[2619083.939] {Default Queue} wl_pointer#1449.motion(187310717, 21.39843750, 14.19921875) +[2619083.945] {Default Queue} wl_pointer#1481.motion(187310717, 21.39843750, 14.19921875) +[2619083.950] {Default Queue} wl_pointer#1513.motion(187310717, 21.39843750, 14.19921875) +[2619083.956] {Default Queue} wl_pointer#1545.motion(187310717, 21.39843750, 14.19921875) +[2619083.961] {Default Queue} wl_pointer#1577.motion(187310717, 21.39843750, 14.19921875) +[2619083.965] {Default Queue} wl_pointer#1609.motion(187310717, 21.39843750, 14.19921875) +[2619083.969] {Default Queue} wl_pointer#1641.motion(187310717, 21.39843750, 14.19921875) +[2619083.973] {Default Queue} wl_pointer#1673.motion(187310717, 21.39843750, 14.19921875) +[2619083.977] {Default Queue} wl_pointer#1705.motion(187310717, 21.39843750, 14.19921875) +[2619083.982] {Default Queue} wl_pointer#1737.motion(187310717, 21.39843750, 14.19921875) +[2619083.987] {Default Queue} wl_pointer#1762.motion(187310717, 21.39843750, 14.19921875) +[2619083.993] {Default Queue} wl_pointer#1801.motion(187310717, 21.39843750, 14.19921875) +[2619083.998] {Default Queue} wl_pointer#1833.motion(187310717, 21.39843750, 14.19921875) +[2619084.004] {Default Queue} wl_pointer#1865.motion(187310717, 21.39843750, 14.19921875) +[2619084.009] {Default Queue} wl_pointer#1897.motion(187310717, 21.39843750, 14.19921875) +[2619084.014] {Default Queue} wl_pointer#1929.motion(187310717, 21.39843750, 14.19921875) +[2619084.018] {Default Queue} wl_pointer#1961.motion(187310717, 21.39843750, 14.19921875) +[2619084.022] {Default Queue} wl_pointer#1993.motion(187310717, 21.39843750, 14.19921875) +[2619084.028] {Default Queue} wl_pointer#2025.motion(187310717, 21.39843750, 14.19921875) +[2619084.033] {Default Queue} wl_pointer#2057.motion(187310717, 21.39843750, 14.19921875) +[2619084.038] {Default Queue} wl_pointer#2089.motion(187310717, 21.39843750, 14.19921875) +[2619084.043] {Default Queue} wl_pointer#2121.motion(187310717, 21.39843750, 14.19921875) +[2619084.049] {Default Queue} wl_pointer#2153.motion(187310717, 21.39843750, 14.19921875) +[2619084.055] {Default Queue} wl_pointer#2185.motion(187310717, 21.39843750, 14.19921875) +[2619084.061] {Default Queue} wl_pointer#2217.motion(187310717, 21.39843750, 14.19921875) +[2619084.065] {Default Queue} wl_pointer#2249.motion(187310717, 21.39843750, 14.19921875) +[2619084.069] {Default Queue} wl_pointer#2281.motion(187310717, 21.39843750, 14.19921875) +[2619084.073] {Default Queue} wl_pointer#2313.motion(187310717, 21.39843750, 14.19921875) +[2619084.078] {Default Queue} wl_pointer#2345.motion(187310717, 21.39843750, 14.19921875) +[2619084.082] {Default Queue} wl_pointer#2377.motion(187310717, 21.39843750, 14.19921875) +[2619084.086] {Default Queue} wl_pointer#2409.motion(187310717, 21.39843750, 14.19921875) +[2619084.090] {Default Queue} wl_pointer#2441.motion(187310717, 21.39843750, 14.19921875) +[2619084.094] {Default Queue} wl_pointer#2473.motion(187310717, 21.39843750, 14.19921875) +[2619084.099] {Default Queue} wl_pointer#2498.motion(187310717, 21.39843750, 14.19921875) +[2619084.125] {Default Queue} -> wl_buffer#3708.destroy() +[2619084.138] {Default Queue} -> wl_buffer#3709.destroy() +[2619084.143] {Default Queue} -> wl_shm_pool#3706.destroy() +[2619084.152] {Default Queue} -> wl_shm_pool#3707.destroy() +[2619084.160] {Default Queue} -> wl_surface#1598.destroy() +[2619084.201] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3701, fd 583, 640) +[2619084.208] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3700, fd 584, 640) +[2619084.213] {Default Queue} -> wl_shm_pool#3701.create_buffer(new id wl_buffer#3036, 0, 10, 16, 40, 0) +[2619084.217] {Default Queue} -> wl_shm_pool#3700.create_buffer(new id wl_buffer#3037, 0, 10, 16, 40, 0) +[2619084.225] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3038) +[2619084.230] {Default Queue} -> wl_surface#3038.attach(wl_buffer#3036, 0, 0) +[2619084.234] {Default Queue} -> wl_surface#3038.commit() +[2619084.240] {Default Queue} -> wl_surface#3038.attach(wl_buffer#3036, 0, 0) +[2619084.244] {Default Queue} -> wl_surface#3038.commit() +[2619084.248] {Default Queue} wl_pointer#2537.motion(187310717, 21.39843750, 14.19921875) +[2619084.254] {Default Queue} wl_pointer#2569.motion(187310717, 21.39843750, 14.19921875) +[2619084.258] {Default Queue} wl_pointer#2601.motion(187310717, 21.39843750, 14.19921875) +[2619084.263] {Default Queue} wl_pointer#2633.motion(187310717, 21.39843750, 14.19921875) +[2619084.267] {Default Queue} wl_pointer#2665.motion(187310717, 21.39843750, 14.19921875) +[2619084.271] {Default Queue} wl_pointer#2697.motion(187310717, 21.39843750, 14.19921875) +[2619084.275] {Default Queue} wl_pointer#2729.motion(187310717, 21.39843750, 14.19921875) +[2619084.280] {Default Queue} wl_pointer#2761.motion(187310717, 21.39843750, 14.19921875) +[2619084.283] {Default Queue} wl_pointer#2793.motion(187310717, 21.39843750, 14.19921875) +[2619084.288] {Default Queue} wl_pointer#2825.motion(187310717, 21.39843750, 14.19921875) +[2619084.292] {Default Queue} wl_pointer#2857.motion(187310717, 21.39843750, 14.19921875) +[2619084.298] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) +[2619084.302] {Default Queue} -> wl_surface#2151.commit() +[2619085.370] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) +[2619085.378] {Default Queue} -> wl_surface#2151.commit() +[2619085.385] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) +[2619085.389] {Default Queue} -> wl_surface#2151.commit() +[2619085.400] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) +[2619085.404] {Default Queue} -> wl_surface#2119.commit() +[2619086.467] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) +[2619086.473] {Default Queue} -> wl_surface#2119.commit() +[2619086.487] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) +[2619086.491] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) +[2619086.496] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2619086.500] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2619086.507] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) +[2619086.512] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) +[2619086.516] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2619086.519] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2619086.525] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) +[2619086.529] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) +[2619086.533] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2619086.537] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2619086.542] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) +[2619086.546] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) +[2619086.550] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2619086.554] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2619086.560] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) +[2619086.564] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) +[2619086.568] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) +[2619086.575] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) +[2619086.584] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) +[2619086.589] {Default Queue} -> wl_surface#2119.commit() +[2619086.593] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) +[2619086.597] {Default Queue} -> wl_surface#2119.commit() +[2619086.604] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) +[2619086.607] {Default Queue} -> wl_surface#2119.commit() +[2619086.613] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) +[2619086.617] {Default Queue} -> wl_surface#2407.commit() +[2619087.678] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) +[2619087.687] {Default Queue} -> wl_surface#2407.commit() +[2619087.698] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 403) +[2619087.702] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 403) +[2619087.706] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2619087.710] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2619087.831] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 403) +[2619087.836] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 403) +[2619087.840] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2619087.844] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2619087.852] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2619087.856] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2619087.948] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 403) +[2619087.953] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 403) +[2619087.957] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2619087.961] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2619087.966] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2619087.970] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2619087.975] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) +[2619087.979] {Default Queue} -> wl_surface#2407.commit() +[2619087.983] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) +[2619087.987] {Default Queue} -> wl_surface#2407.commit() +[2619087.999] {Display Queue} wl_display#1.delete_id(2078) +[2619088.004] {Display Queue} wl_display#1.delete_id(2077) +[2619088.008] {Display Queue} wl_display#1.delete_id(2076) +[2619088.012] {Display Queue} wl_display#1.delete_id(2075) +[2619088.015] {Display Queue} wl_display#1.delete_id(3324) +[2619088.019] {Display Queue} wl_display#1.delete_id(2269) +[2619088.023] {Display Queue} wl_display#1.delete_id(2270) +[2619088.026] {Display Queue} wl_display#1.delete_id(2267) +[2619088.030] {Display Queue} wl_display#1.delete_id(2268) +[2619088.034] {Default Queue} wl_pointer#2889.motion(187310717, 21.39843750, 14.19921875) +[2619088.038] {Default Queue} wl_pointer#2921.motion(187310717, 21.39843750, 14.19921875) +[2619088.042] {Default Queue} wl_pointer#2953.motion(187310717, 21.39843750, 14.19921875) +[2619088.046] {Default Queue} wl_pointer#2985.motion(187310717, 21.39843750, 14.19921875) +[2619088.050] {Default Queue} wl_pointer#3017.motion(187310717, 21.39843750, 14.19921875) +[2619088.054] {Default Queue} wl_pointer#3049.motion(187310717, 21.39843750, 14.19921875) +[2619088.058] {Default Queue} wl_pointer#3081.motion(187310717, 21.39843750, 14.19921875) +[2619088.062] {Default Queue} wl_pointer#3113.motion(187310717, 21.39843750, 14.19921875) +[2619088.066] {Default Queue} wl_pointer#3145.motion(187310717, 21.39843750, 14.19921875) +[2619088.070] {Default Queue} wl_pointer#3177.motion(187310717, 21.39843750, 14.19921875) +[2619088.074] {Default Queue} wl_pointer#3209.motion(187310717, 21.39843750, 14.19921875) +[2619088.078] {Default Queue} wl_pointer#3241.motion(187310717, 21.39843750, 14.19921875) +[2619088.082] {Default Queue} wl_pointer#3273.motion(187310717, 21.39843750, 14.19921875) +[2619088.086] {Default Queue} wl_pointer#3305.motion(187310717, 21.39843750, 14.19921875) +[2619088.090] {Default Queue} wl_pointer#3337.motion(187310717, 21.39843750, 14.19921875) +[2619088.098] {Default Queue} wl_pointer#3369.motion(187310717, 21.39843750, 14.19921875) +[2619088.105] {Default Queue} wl_pointer#3401.motion(187310717, 21.39843750, 14.19921875) +[2619088.109] {Default Queue} wl_pointer#3433.motion(187310717, 21.39843750, 14.19921875) +[2619088.113] {Default Queue} wl_pointer#3465.motion(187310717, 21.39843750, 14.19921875) +[2619088.117] {Default Queue} wl_pointer#3497.motion(187310717, 21.39843750, 14.19921875) +[2619088.121] {Default Queue} wl_pointer#3529.motion(187310717, 21.39843750, 14.19921875) +[2619088.125] {Default Queue} wl_pointer#3561.motion(187310717, 21.39843750, 14.19921875) +[2619088.129] {Default Queue} wl_pointer#3593.motion(187310717, 21.39843750, 14.19921875) +[2619088.133] {Default Queue} wl_pointer#3625.motion(187310717, 21.39843750, 14.19921875) +[2619088.137] {Default Queue} wl_pointer#3657.motion(187310717, 21.39843750, 14.19921875) +[2619088.141] {Default Queue} wl_pointer#3695.motion(187310717, 21.39843750, 14.19921875) +[2619088.145] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) +[2619088.149] {Default Queue} -> wl_surface#2407.commit() +[2619089.210] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) +[2619089.216] {Default Queue} -> wl_surface#2407.commit() +[2619089.221] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) +[2619089.225] {Default Queue} -> wl_surface#2407.commit() +[2619089.229] {Default Queue} -> wl_region#2495.subtract(0, 0, 2, 2) +[2619089.234] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) +[2619089.238] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) +[2619089.242] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619089.245] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619089.249] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) +[2619089.265] {Default Queue} -> wl_buffer#2493.destroy() +[2619089.270] {Default Queue} -> wl_buffer#2494.destroy() +[2619089.274] {Default Queue} -> wl_shm_pool#2491.destroy() +[2619089.278] {Default Queue} -> wl_shm_pool#2492.destroy() +[2619089.321] {Default Queue} -> wl_shm#2479.create_pool(new id wl_shm_pool#2268, fd 575, 16) +[2619089.327] {Default Queue} -> wl_shm#2479.create_pool(new id wl_shm_pool#2267, fd 578, 16) +[2619089.331] {Default Queue} -> wl_shm_pool#2268.create_buffer(new id wl_buffer#2270, 0, 2, 2, 8, 0) +[2619089.336] {Default Queue} -> wl_shm_pool#2267.create_buffer(new id wl_buffer#2269, 0, 2, 2, 8, 0) +[2619089.342] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) +[2619089.346] {Default Queue} -> wl_surface#2471.commit() +[2619089.351] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) +[2619089.355] {Default Queue} -> wl_surface#2471.commit() +[2619089.373] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619089.378] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619089.382] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619089.386] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619089.393] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619089.397] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619089.401] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619089.405] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619089.411] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619089.415] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619089.418] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619089.422] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619089.431] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619089.435] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619089.439] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619089.443] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619089.471] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619089.478] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619089.481] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619089.485] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619089.491] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619089.495] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619089.499] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619089.503] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619089.507] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619089.511] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619089.515] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619089.519] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619089.524] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619089.528] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619089.531] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619089.535] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619089.539] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619089.543] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619089.547] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619089.551] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619089.556] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619089.560] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619089.563] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619089.567] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619089.573] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619089.577] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619089.581] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619089.584] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619089.589] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619089.593] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619089.597] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619089.601] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619089.606] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619089.610] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619089.613] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619089.617] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619089.622] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619089.626] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619089.630] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619089.633] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619089.639] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619089.643] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619089.647] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619089.650] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619089.656] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619089.660] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619089.663] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619089.667] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619089.671] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619089.675] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619089.679] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619089.683] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619089.690] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619089.695] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619089.699] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619089.703] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619089.707] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) +[2619089.711] {Default Queue} -> wl_surface#2471.commit() +[2619089.717] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) +[2619089.721] {Default Queue} -> wl_surface#2471.commit() +[2619090.784] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) +[2619090.790] {Default Queue} -> wl_surface#2471.commit() +[2619090.802] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619090.806] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619090.810] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619090.814] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619090.820] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619090.824] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619090.828] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619090.831] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619090.837] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619090.841] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619090.844] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619090.848] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619090.853] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619090.857] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619090.864] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619090.868] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619090.873] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619090.877] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619090.882] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619090.886] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619090.894] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619090.898] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619090.903] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619090.908] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619090.913] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619090.917] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619090.921] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619090.925] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619090.930] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619090.933] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619090.937] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619090.941] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619090.945] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619090.949] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619090.953] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619090.957] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619090.962] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619090.966] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619090.970] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619090.973] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619090.979] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619090.983] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619090.987] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619090.994] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619091.001] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619091.005] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619091.009] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619091.012] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619091.017] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619091.021] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619091.025] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619091.028] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619091.033] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619091.037] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619091.041] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619091.044] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619091.050] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619091.054] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619091.058] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619091.061] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619091.066] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619091.070] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619091.073] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619091.077] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619091.081] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619091.085] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619091.089] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619091.093] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619091.097] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619091.101] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619091.105] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619091.108] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619091.112] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) +[2619091.116] {Default Queue} -> wl_surface#2471.commit() +[2619091.120] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) +[2619091.124] {Default Queue} -> wl_surface#2471.commit() +[2619091.129] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) +[2619091.133] {Default Queue} -> wl_surface#2471.commit() +[2619091.139] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) +[2619091.143] {Default Queue} -> wl_surface#2439.commit() +[2619091.869] {Display Queue} wl_display#1.delete_id(3720) +[2619091.875] {Display Queue} wl_display#1.delete_id(3721) +[2619091.879] {Display Queue} wl_display#1.delete_id(3718) +[2619091.883] {Display Queue} wl_display#1.delete_id(3719) +[2619091.887] {Display Queue} wl_display#1.delete_id(3713) +[2619091.890] {Display Queue} wl_display#1.delete_id(3712) +[2619091.894] {Display Queue} wl_display#1.delete_id(3711) +[2619091.898] {Display Queue} wl_display#1.delete_id(3710) +[2619091.901] {Display Queue} wl_display#1.delete_id(1756) +[2619091.905] {Display Queue} wl_display#1.delete_id(3717) +[2619091.909] {Display Queue} wl_display#1.delete_id(3716) +[2619091.913] {Display Queue} wl_display#1.delete_id(3715) +[2619091.916] {Display Queue} wl_display#1.delete_id(3714) +[2619091.920] {Display Queue} wl_display#1.delete_id(1916) +[2619091.924] {Display Queue} wl_display#1.delete_id(3708) +[2619091.927] {Display Queue} wl_display#1.delete_id(3709) +[2619091.931] {Display Queue} wl_display#1.delete_id(3706) +[2619091.935] {Display Queue} wl_display#1.delete_id(3707) +[2619091.939] {Display Queue} wl_display#1.delete_id(1598) +[2619091.942] {Default Queue} wl_pointer#24.motion(187310722, 21.00000000, 14.19921875) +[2619091.951] {Default Queue} wl_pointer#81.motion(187310722, 21.00000000, 14.19921875) +[2619091.958] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619091.963] {Default Queue} wl_pointer#105.motion(187310722, 21.00000000, 14.19921875) +[2619091.967] {Default Queue} wl_pointer#137.motion(187310722, 21.00000000, 14.19921875) +[2619091.971] {Default Queue} wl_pointer#169.motion(187310722, 21.00000000, 14.19921875) +[2619091.975] {Default Queue} wl_pointer#201.motion(187310722, 21.00000000, 14.19921875) +[2619091.979] {Default Queue} wl_pointer#233.motion(187310722, 21.00000000, 14.19921875) +[2619091.983] {Default Queue} wl_pointer#265.motion(187310722, 21.00000000, 14.19921875) +[2619091.988] {Default Queue} wl_pointer#297.motion(187310722, 21.00000000, 14.19921875) +[2619091.992] {Default Queue} wl_pointer#329.motion(187310722, 21.00000000, 14.19921875) +[2619091.996] {Default Queue} wl_pointer#361.motion(187310722, 21.00000000, 14.19921875) +[2619092.000] {Default Queue} wl_pointer#393.motion(187310722, 21.00000000, 14.19921875) +[2619092.004] {Default Queue} wl_pointer#425.motion(187310722, 21.00000000, 14.19921875) +[2619092.008] {Default Queue} wl_pointer#457.motion(187310722, 21.00000000, 14.19921875) +[2619092.013] {Default Queue} wl_pointer#489.motion(187310722, 21.00000000, 14.19921875) +[2619092.017] {Default Queue} wl_pointer#521.motion(187310722, 21.00000000, 14.19921875) +[2619092.021] {Default Queue} wl_pointer#553.motion(187310722, 21.00000000, 14.19921875) +[2619092.026] {Default Queue} wl_pointer#585.motion(187310722, 21.00000000, 14.19921875) +[2619092.030] {Default Queue} wl_pointer#617.motion(187310722, 21.00000000, 14.19921875) +[2619092.034] {Default Queue} wl_pointer#649.motion(187310722, 21.00000000, 14.19921875) +[2619092.038] {Default Queue} wl_pointer#681.motion(187310722, 21.00000000, 14.19921875) +[2619092.043] {Default Queue} wl_pointer#713.motion(187310722, 21.00000000, 14.19921875) +[2619092.048] {Default Queue} wl_pointer#745.motion(187310722, 21.00000000, 14.19921875) +[2619092.053] {Default Queue} wl_pointer#777.motion(187310722, 21.00000000, 14.19921875) +[2619092.058] {Default Queue} wl_pointer#809.motion(187310722, 21.00000000, 14.19921875) +[2619092.064] {Default Queue} wl_pointer#841.motion(187310722, 21.00000000, 14.19921875) +[2619092.069] {Default Queue} wl_pointer#873.motion(187310722, 21.00000000, 14.19921875) +[2619092.074] {Default Queue} wl_pointer#905.motion(187310722, 21.00000000, 14.19921875) +[2619092.079] {Default Queue} wl_pointer#937.motion(187310722, 21.00000000, 14.19921875) +[2619092.084] {Default Queue} wl_pointer#969.motion(187310722, 21.00000000, 14.19921875) +[2619092.091] {Default Queue} wl_pointer#1001.motion(187310722, 21.00000000, 14.19921875) +[2619092.096] {Default Queue} wl_pointer#1033.motion(187310722, 21.00000000, 14.19921875) +[2619092.102] {Default Queue} wl_pointer#1065.motion(187310722, 21.00000000, 14.19921875) +[2619092.107] {Default Queue} wl_pointer#1097.motion(187310722, 21.00000000, 14.19921875) +[2619092.113] {Default Queue} wl_pointer#1129.motion(187310722, 21.00000000, 14.19921875) +[2619092.118] {Default Queue} wl_pointer#1161.motion(187310722, 21.00000000, 14.19921875) +[2619092.123] {Default Queue} wl_pointer#1193.motion(187310722, 21.00000000, 14.19921875) +[2619092.128] {Default Queue} wl_pointer#1225.motion(187310722, 21.00000000, 14.19921875) +[2619092.132] {Default Queue} wl_pointer#1257.motion(187310722, 21.00000000, 14.19921875) +[2619092.137] {Default Queue} wl_pointer#1289.motion(187310722, 21.00000000, 14.19921875) +[2619092.142] {Default Queue} wl_pointer#1321.motion(187310722, 21.00000000, 14.19921875) +[2619092.147] {Default Queue} wl_pointer#1353.motion(187310722, 21.00000000, 14.19921875) +[2619092.152] {Default Queue} wl_pointer#1385.motion(187310722, 21.00000000, 14.19921875) +[2619092.158] {Default Queue} wl_pointer#1417.motion(187310722, 21.00000000, 14.19921875) +[2619092.163] {Default Queue} wl_pointer#1449.motion(187310722, 21.00000000, 14.19921875) +[2619092.168] {Default Queue} wl_pointer#1481.motion(187310722, 21.00000000, 14.19921875) +[2619092.178] {Default Queue} wl_pointer#1513.motion(187310722, 21.00000000, 14.19921875) +[2619092.186] {Default Queue} wl_pointer#1545.motion(187310722, 21.00000000, 14.19921875) +[2619092.191] {Default Queue} wl_pointer#1577.motion(187310722, 21.00000000, 14.19921875) +[2619092.196] {Default Queue} wl_pointer#1609.motion(187310722, 21.00000000, 14.19921875) +[2619092.200] {Default Queue} wl_pointer#1641.motion(187310722, 21.00000000, 14.19921875) +[2619092.205] {Default Queue} wl_pointer#1673.motion(187310722, 21.00000000, 14.19921875) +[2619092.228] {Default Queue} wl_pointer#1705.motion(187310722, 21.00000000, 14.19921875) +[2619092.232] {Default Queue} wl_pointer#1737.motion(187310722, 21.00000000, 14.19921875) +[2619092.236] {Default Queue} wl_pointer#1762.motion(187310722, 21.00000000, 14.19921875) +[2619092.251] {Default Queue} wl_pointer#1801.motion(187310722, 21.00000000, 14.19921875) +[2619092.257] {Default Queue} wl_pointer#1833.motion(187310722, 21.00000000, 14.19921875) +[2619092.263] {Default Queue} wl_pointer#1865.motion(187310722, 21.00000000, 14.19921875) +[2619092.268] {Default Queue} wl_pointer#1897.motion(187310722, 21.00000000, 14.19921875) +[2619092.274] {Default Queue} wl_pointer#1929.motion(187310722, 21.00000000, 14.19921875) +[2619092.279] {Default Queue} wl_pointer#1961.motion(187310722, 21.00000000, 14.19921875) +[2619092.285] {Default Queue} wl_pointer#1993.motion(187310722, 21.00000000, 14.19921875) +[2619092.291] {Default Queue} wl_pointer#2025.motion(187310722, 21.00000000, 14.19921875) +[2619092.296] {Default Queue} wl_pointer#2057.motion(187310722, 21.00000000, 14.19921875) +[2619092.301] {Default Queue} wl_pointer#2089.motion(187310722, 21.00000000, 14.19921875) +[2619092.306] {Default Queue} wl_pointer#2121.motion(187310722, 21.00000000, 14.19921875) +[2619092.310] {Default Queue} wl_pointer#2153.motion(187310722, 21.00000000, 14.19921875) +[2619092.314] {Default Queue} wl_pointer#2185.motion(187310722, 21.00000000, 14.19921875) +[2619092.318] {Default Queue} wl_pointer#2217.motion(187310722, 21.00000000, 14.19921875) +[2619092.322] {Default Queue} wl_pointer#2249.motion(187310722, 21.00000000, 14.19921875) +[2619092.326] {Default Queue} wl_pointer#2281.motion(187310722, 21.00000000, 14.19921875) +[2619092.330] {Default Queue} wl_pointer#2313.motion(187310722, 21.00000000, 14.19921875) +[2619092.335] {Default Queue} wl_pointer#2345.motion(187310722, 21.00000000, 14.19921875) +[2619092.339] {Default Queue} wl_pointer#2377.motion(187310722, 21.00000000, 14.19921875) +[2619092.343] {Default Queue} wl_pointer#2409.motion(187310722, 21.00000000, 14.19921875) +[2619092.347] {Default Queue} wl_pointer#2441.motion(187310722, 21.00000000, 14.19921875) +[2619092.351] {Default Queue} wl_pointer#2473.motion(187310722, 21.00000000, 14.19921875) +[2619092.355] {Default Queue} wl_pointer#2498.motion(187310722, 21.00000000, 14.19921875) +[2619092.367] {Default Queue} -> wl_buffer#3036.destroy() +[2619092.372] {Default Queue} -> wl_buffer#3037.destroy() +[2619092.376] {Default Queue} -> wl_shm_pool#3701.destroy() +[2619092.380] {Default Queue} -> wl_shm_pool#3700.destroy() +[2619092.384] {Default Queue} -> wl_surface#3038.destroy() +[2619092.423] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#1598, fd 575, 640) +[2619092.429] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3707, fd 578, 640) +[2619092.433] {Default Queue} -> wl_shm_pool#1598.create_buffer(new id wl_buffer#3706, 0, 10, 16, 40, 0) +[2619092.438] {Default Queue} -> wl_shm_pool#3707.create_buffer(new id wl_buffer#3709, 0, 10, 16, 40, 0) +[2619092.445] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3708) +[2619092.449] {Default Queue} -> wl_surface#3708.attach(wl_buffer#3706, 0, 0) +[2619092.453] {Default Queue} -> wl_surface#3708.commit() +[2619092.458] {Default Queue} -> wl_surface#3708.attach(wl_buffer#3706, 0, 0) +[2619092.462] {Default Queue} -> wl_surface#3708.commit() +[2619092.466] {Default Queue} wl_pointer#2537.motion(187310722, 21.00000000, 14.19921875) +[2619092.470] {Default Queue} wl_pointer#2569.motion(187310722, 21.00000000, 14.19921875) +[2619092.478] {Default Queue} wl_pointer#2601.motion(187310722, 21.00000000, 14.19921875) +[2619092.485] {Default Queue} wl_pointer#2633.motion(187310722, 21.00000000, 14.19921875) +[2619092.489] {Default Queue} wl_pointer#2665.motion(187310722, 21.00000000, 14.19921875) +[2619092.493] {Default Queue} wl_pointer#2697.motion(187310722, 21.00000000, 14.19921875) +[2619092.497] {Default Queue} wl_pointer#2729.motion(187310722, 21.00000000, 14.19921875) +[2619092.501] {Default Queue} wl_pointer#2761.motion(187310722, 21.00000000, 14.19921875) +[2619092.505] {Default Queue} wl_pointer#2793.motion(187310722, 21.00000000, 14.19921875) +[2619092.510] {Default Queue} wl_pointer#2825.motion(187310722, 21.00000000, 14.19921875) +[2619092.514] {Default Queue} wl_pointer#2857.motion(187310722, 21.00000000, 14.19921875) +[2619092.518] {Default Queue} wl_pointer#2889.motion(187310722, 21.00000000, 14.19921875) +[2619092.522] {Default Queue} wl_pointer#2921.motion(187310722, 21.00000000, 14.19921875) +[2619092.526] {Default Queue} wl_pointer#2953.motion(187310722, 21.00000000, 14.19921875) +[2619092.530] {Default Queue} wl_pointer#2985.motion(187310722, 21.00000000, 14.19921875) +[2619092.534] {Default Queue} wl_pointer#3017.motion(187310722, 21.00000000, 14.19921875) +[2619092.538] {Default Queue} wl_pointer#3049.motion(187310722, 21.00000000, 14.19921875) +[2619092.542] {Default Queue} wl_pointer#3081.motion(187310722, 21.00000000, 14.19921875) +[2619092.547] {Default Queue} wl_pointer#3113.motion(187310722, 21.00000000, 14.19921875) +[2619092.551] {Default Queue} wl_pointer#3145.motion(187310722, 21.00000000, 14.19921875) +[2619092.555] {Default Queue} wl_pointer#3177.motion(187310722, 21.00000000, 14.19921875) +[2619092.559] {Default Queue} wl_pointer#3209.motion(187310722, 21.00000000, 14.19921875) +[2619092.563] {Default Queue} wl_pointer#3241.motion(187310722, 21.00000000, 14.19921875) +[2619092.567] {Default Queue} wl_pointer#3273.motion(187310722, 21.00000000, 14.19921875) +[2619092.571] {Default Queue} wl_pointer#3305.motion(187310722, 21.00000000, 14.19921875) +[2619092.575] {Default Queue} wl_pointer#3337.motion(187310722, 21.00000000, 14.19921875) +[2619092.579] {Default Queue} wl_pointer#3369.motion(187310722, 21.00000000, 14.19921875) +[2619092.583] {Default Queue} wl_pointer#3401.motion(187310722, 21.00000000, 14.19921875) +[2619092.587] {Default Queue} wl_pointer#3433.motion(187310722, 21.00000000, 14.19921875) +[2619092.591] {Default Queue} wl_pointer#3465.motion(187310722, 21.00000000, 14.19921875) +[2619092.595] {Default Queue} wl_pointer#3497.motion(187310722, 21.00000000, 14.19921875) +[2619092.599] {Default Queue} wl_pointer#3529.motion(187310722, 21.00000000, 14.19921875) +[2619092.603] {Default Queue} wl_pointer#3561.motion(187310722, 21.00000000, 14.19921875) +[2619092.607] {Default Queue} wl_pointer#3593.motion(187310722, 21.00000000, 14.19921875) +[2619092.611] {Default Queue} wl_pointer#3625.motion(187310722, 21.00000000, 14.19921875) +[2619092.615] {Default Queue} wl_pointer#3657.motion(187310722, 21.00000000, 14.19921875) +[2619092.619] {Default Queue} wl_pointer#3695.motion(187310722, 21.00000000, 14.19921875) +[2619092.628] {Default Queue} -> wl_region#2463.subtract(0, 0, 140, 408) +[2619092.632] {Default Queue} -> wl_region#2463.add(-138, -386, 140, 388) +[2619092.636] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) +[2619092.640] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) +[2619092.646] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) +[2619092.650] {Default Queue} -> wl_surface#2439.commit() +[2619092.653] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) +[2619092.657] {Default Queue} -> wl_surface#2439.commit() +[2619092.663] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) +[2619092.667] {Default Queue} -> wl_surface#2439.commit() +[2619092.671] {Default Queue} -> wl_region#2399.subtract(0, 0, 109, 161) +[2619092.678] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 403) +[2619092.682] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 403) +[2619092.689] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2619092.694] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2619092.806] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 403) +[2619092.810] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 403) +[2619092.814] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2619092.818] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2619092.825] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2619092.829] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2619092.916] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 403) +[2619092.921] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 403) +[2619092.925] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2619092.929] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2619092.934] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2619092.938] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2619092.944] {Default Queue} -> wl_region#2463.subtract(0, 0, 140, 408) +[2619092.948] {Default Queue} -> wl_region#2463.add(-138, -386, 140, 388) +[2619092.952] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) +[2619092.956] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) +[2619092.961] {Default Queue} -> wl_surface#2375.damage(0, 0, 109, 161) +[2619092.965] {Default Queue} -> wl_region#2399.subtract(0, 0, 247, 547) +[2619092.968] {Default Queue} -> wl_region#2399.add(-135, -383, 244, 544) +[2619092.972] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) +[2619092.976] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) +[2619092.980] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2619092.984] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) +[2619092.988] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) +[2619092.991] {Default Queue} -> wl_surface#2375.damage(0, 0, 109, 161) +[2619093.004] {Default Queue} -> wl_buffer#3724.destroy() +[2619093.009] {Default Queue} -> wl_buffer#3725.destroy() +[2619093.013] {Default Queue} -> wl_shm_pool#3722.destroy() +[2619093.017] {Default Queue} -> wl_shm_pool#3723.destroy() +[2619093.111] {Default Queue} -> wl_shm#2383.create_pool(new id wl_shm_pool#1916, fd 581, 70196) +[2619093.117] {Default Queue} -> wl_shm#2383.create_pool(new id wl_shm_pool#3714, fd 582, 70196) +[2619093.122] {Default Queue} -> wl_shm_pool#1916.create_buffer(new id wl_buffer#3715, 0, 109, 161, 436, 0) +[2619093.126] {Default Queue} -> wl_shm_pool#3714.create_buffer(new id wl_buffer#3716, 0, 109, 161, 436, 0) +[2619093.148] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) +[2619093.153] {Default Queue} -> wl_surface#2375.commit() +[2619093.174] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) +[2619093.179] {Default Queue} -> wl_surface#2375.commit() +[2619093.187] {Default Queue} -> wl_region#2399.subtract(0, 0, 247, 547) +[2619093.191] {Default Queue} -> wl_region#2399.add(-135, -383, 244, 544) +[2619093.195] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) +[2619093.199] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) +[2619093.206] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) +[2619093.210] {Default Queue} -> wl_surface#2375.commit() +[2619093.217] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) +[2619093.221] {Default Queue} -> wl_surface#2375.commit() +[2619094.288] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) +[2619094.295] {Default Queue} -> wl_surface#2375.commit() +[2619094.304] {Default Queue} -> wl_region#2399.subtract(0, 0, 247, 547) +[2619094.308] {Default Queue} -> wl_region#2399.add(-135, -383, 244, 544) +[2619094.312] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) +[2619094.316] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) +[2619094.327] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) +[2619094.333] {Default Queue} -> wl_surface#2375.commit() +[2619094.338] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) +[2619094.342] {Default Queue} -> wl_surface#2375.commit() +[2619094.349] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) +[2619094.353] {Default Queue} -> wl_surface#2375.commit() +[2619094.366] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) +[2619094.371] {Default Queue} -> wl_surface#2343.commit() +[2619095.434] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) +[2619095.440] {Default Queue} -> wl_surface#2343.commit() +[2619095.456] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) +[2619095.461] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) +[2619095.465] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2619095.469] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2619095.477] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) +[2619095.481] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) +[2619095.484] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2619095.488] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2619095.494] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) +[2619095.498] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) +[2619095.501] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2619095.505] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2619095.510] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) +[2619095.514] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) +[2619095.518] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2619095.522] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2619095.528] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) +[2619095.532] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) +[2619095.536] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) +[2619095.540] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) +[2619095.546] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) +[2619095.550] {Default Queue} -> wl_surface#2343.commit() +[2619095.555] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) +[2619095.561] {Default Queue} -> wl_surface#2343.commit() +[2619095.568] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) +[2619095.572] {Default Queue} -> wl_surface#2343.commit() +[2619095.579] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) +[2619095.582] {Default Queue} -> wl_surface#2567.commit() +[2619096.644] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) +[2619096.649] {Default Queue} -> wl_surface#2567.commit() +[2619096.657] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 403) +[2619096.661] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 403) +[2619096.665] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2619096.669] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2619096.792] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 403) +[2619096.797] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 403) +[2619096.800] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2619096.804] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2619096.811] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2619096.815] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2619096.923] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 403) +[2619096.936] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 403) +[2619096.943] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2619096.948] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2619096.960] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2619096.970] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2619096.981] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) +[2619096.987] {Default Queue} -> wl_surface#2567.commit() +[2619096.992] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) +[2619096.997] {Default Queue} -> wl_surface#2567.commit() +[2619097.006] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) +[2619097.011] {Default Queue} -> wl_surface#2567.commit() +[2619097.016] {Default Queue} -> wl_region#2655.subtract(0, 0, 2, 2) +[2619097.022] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) +[2619097.027] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) +[2619097.032] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2619097.038] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2619097.042] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) +[2619097.059] {Default Queue} -> wl_buffer#2653.destroy() +[2619097.064] {Default Queue} -> wl_buffer#2654.destroy() +[2619097.069] {Default Queue} -> wl_shm_pool#2651.destroy() +[2619097.074] {Default Queue} -> wl_shm_pool#2652.destroy() +[2619097.121] {Default Queue} -> wl_shm#2639.create_pool(new id wl_shm_pool#3717, fd 575, 16) +[2619097.128] {Default Queue} -> wl_shm#2639.create_pool(new id wl_shm_pool#1756, fd 578, 16) +[2619097.134] {Default Queue} -> wl_shm_pool#3717.create_buffer(new id wl_buffer#3710, 0, 2, 2, 8, 0) +[2619097.140] {Default Queue} -> wl_shm_pool#1756.create_buffer(new id wl_buffer#3711, 0, 2, 2, 8, 0) +[2619097.148] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) +[2619097.153] {Default Queue} -> wl_surface#2631.commit() +[2619097.160] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) +[2619097.165] {Default Queue} -> wl_surface#2631.commit() +[2619097.177] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) +[2619097.183] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) +[2619097.189] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2619097.194] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2619097.203] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) +[2619097.208] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) +[2619097.213] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2619097.218] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2619097.227] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) +[2619097.232] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) +[2619097.237] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2619097.242] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2619097.249] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) +[2619097.254] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) +[2619097.259] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2619097.264] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2619097.271] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) +[2619097.276] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) +[2619097.281] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2619097.286] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2619097.295] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) +[2619097.300] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) +[2619097.305] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2619097.310] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2619097.316] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) +[2619097.321] {Default Queue} -> wl_surface#2631.commit() +[2619097.328] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) +[2619097.333] {Default Queue} -> wl_surface#2631.commit() +[2619097.592] {Display Queue} wl_display#1.delete_id(2493) +[2619097.601] {Display Queue} wl_display#1.delete_id(2494) +[2619097.610] {Display Queue} wl_display#1.delete_id(2491) +[2619097.614] {Display Queue} wl_display#1.delete_id(2492) +[2619097.619] {Default Queue} wl_pointer#24.motion(187310726, 20.60156250, 14.60156250) +[2619097.625] {Default Queue} wl_pointer#81.motion(187310726, 20.60156250, 14.60156250) +[2619097.633] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619097.638] {Default Queue} wl_pointer#105.motion(187310726, 20.60156250, 14.60156250) +[2619097.644] {Default Queue} wl_pointer#137.motion(187310726, 20.60156250, 14.60156250) +[2619097.649] {Default Queue} wl_pointer#169.motion(187310726, 20.60156250, 14.60156250) +[2619097.654] {Default Queue} wl_pointer#201.motion(187310726, 20.60156250, 14.60156250) +[2619097.659] {Default Queue} wl_pointer#233.motion(187310726, 20.60156250, 14.60156250) +[2619097.665] {Default Queue} wl_pointer#265.motion(187310726, 20.60156250, 14.60156250) +[2619097.670] {Default Queue} wl_pointer#297.motion(187310726, 20.60156250, 14.60156250) +[2619097.675] {Default Queue} wl_pointer#329.motion(187310726, 20.60156250, 14.60156250) +[2619097.680] {Default Queue} wl_pointer#361.motion(187310726, 20.60156250, 14.60156250) +[2619097.686] {Default Queue} wl_pointer#393.motion(187310726, 20.60156250, 14.60156250) +[2619097.691] {Default Queue} wl_pointer#425.motion(187310726, 20.60156250, 14.60156250) +[2619097.696] {Default Queue} wl_pointer#457.motion(187310726, 20.60156250, 14.60156250) +[2619097.702] {Default Queue} wl_pointer#489.motion(187310726, 20.60156250, 14.60156250) +[2619097.707] {Default Queue} wl_pointer#521.motion(187310726, 20.60156250, 14.60156250) +[2619097.712] {Default Queue} wl_pointer#553.motion(187310726, 20.60156250, 14.60156250) +[2619097.717] {Default Queue} wl_pointer#585.motion(187310726, 20.60156250, 14.60156250) +[2619097.723] {Default Queue} wl_pointer#617.motion(187310726, 20.60156250, 14.60156250) +[2619097.728] {Default Queue} wl_pointer#649.motion(187310726, 20.60156250, 14.60156250) +[2619097.734] {Default Queue} wl_pointer#681.motion(187310726, 20.60156250, 14.60156250) +[2619097.739] {Default Queue} wl_pointer#713.motion(187310726, 20.60156250, 14.60156250) +[2619097.744] {Default Queue} wl_pointer#745.motion(187310726, 20.60156250, 14.60156250) +[2619097.750] {Default Queue} wl_pointer#777.motion(187310726, 20.60156250, 14.60156250) +[2619097.755] {Default Queue} wl_pointer#809.motion(187310726, 20.60156250, 14.60156250) +[2619097.761] {Default Queue} wl_pointer#841.motion(187310726, 20.60156250, 14.60156250) +[2619097.766] {Default Queue} wl_pointer#873.motion(187310726, 20.60156250, 14.60156250) +[2619097.771] {Default Queue} wl_pointer#905.motion(187310726, 20.60156250, 14.60156250) +[2619097.777] {Default Queue} wl_pointer#937.motion(187310726, 20.60156250, 14.60156250) +[2619097.782] {Default Queue} wl_pointer#969.motion(187310726, 20.60156250, 14.60156250) +[2619097.788] {Default Queue} wl_pointer#1001.motion(187310726, 20.60156250, 14.60156250) +[2619097.793] {Default Queue} wl_pointer#1033.motion(187310726, 20.60156250, 14.60156250) +[2619097.799] {Default Queue} wl_pointer#1065.motion(187310726, 20.60156250, 14.60156250) +[2619097.804] {Default Queue} wl_pointer#1097.motion(187310726, 20.60156250, 14.60156250) +[2619097.809] {Default Queue} wl_pointer#1129.motion(187310726, 20.60156250, 14.60156250) +[2619097.815] {Default Queue} wl_pointer#1161.motion(187310726, 20.60156250, 14.60156250) +[2619097.820] {Default Queue} wl_pointer#1193.motion(187310726, 20.60156250, 14.60156250) +[2619097.825] {Default Queue} wl_pointer#1225.motion(187310726, 20.60156250, 14.60156250) +[2619097.831] {Default Queue} wl_pointer#1257.motion(187310726, 20.60156250, 14.60156250) +[2619097.836] {Default Queue} wl_pointer#1289.motion(187310726, 20.60156250, 14.60156250) +[2619097.842] {Default Queue} wl_pointer#1321.motion(187310726, 20.60156250, 14.60156250) +[2619097.847] {Default Queue} wl_pointer#1353.motion(187310726, 20.60156250, 14.60156250) +[2619097.852] {Default Queue} wl_pointer#1385.motion(187310726, 20.60156250, 14.60156250) +[2619097.862] {Default Queue} wl_pointer#1417.motion(187310726, 20.60156250, 14.60156250) +[2619097.869] {Default Queue} wl_pointer#1449.motion(187310726, 20.60156250, 14.60156250) +[2619097.879] {Default Queue} wl_pointer#1481.motion(187310726, 20.60156250, 14.60156250) +[2619097.884] {Default Queue} wl_pointer#1513.motion(187310726, 20.60156250, 14.60156250) +[2619097.890] {Default Queue} wl_pointer#1545.motion(187310726, 20.60156250, 14.60156250) +[2619097.895] {Default Queue} wl_pointer#1577.motion(187310726, 20.60156250, 14.60156250) +[2619097.901] {Default Queue} wl_pointer#1609.motion(187310726, 20.60156250, 14.60156250) +[2619097.906] {Default Queue} wl_pointer#1641.motion(187310726, 20.60156250, 14.60156250) +[2619097.911] {Default Queue} wl_pointer#1673.motion(187310726, 20.60156250, 14.60156250) +[2619097.916] {Default Queue} wl_pointer#1705.motion(187310726, 20.60156250, 14.60156250) +[2619097.922] {Default Queue} wl_pointer#1737.motion(187310726, 20.60156250, 14.60156250) +[2619097.927] {Default Queue} wl_pointer#1762.motion(187310726, 20.60156250, 14.60156250) +[2619097.932] {Default Queue} wl_pointer#1801.motion(187310726, 20.60156250, 14.60156250) +[2619097.938] {Default Queue} wl_pointer#1833.motion(187310726, 20.60156250, 14.60156250) +[2619097.943] {Default Queue} wl_pointer#1865.motion(187310726, 20.60156250, 14.60156250) +[2619097.949] {Default Queue} wl_pointer#1897.motion(187310726, 20.60156250, 14.60156250) +[2619097.954] {Default Queue} wl_pointer#1929.motion(187310726, 20.60156250, 14.60156250) +[2619097.959] {Default Queue} wl_pointer#1961.motion(187310726, 20.60156250, 14.60156250) +[2619097.965] {Default Queue} wl_pointer#1993.motion(187310726, 20.60156250, 14.60156250) +[2619097.970] {Default Queue} wl_pointer#2025.motion(187310726, 20.60156250, 14.60156250) +[2619097.976] {Default Queue} wl_pointer#2057.motion(187310726, 20.60156250, 14.60156250) +[2619097.981] {Default Queue} wl_pointer#2089.motion(187310726, 20.60156250, 14.60156250) +[2619097.986] {Default Queue} wl_pointer#2121.motion(187310726, 20.60156250, 14.60156250) +[2619097.992] {Default Queue} wl_pointer#2153.motion(187310726, 20.60156250, 14.60156250) +[2619097.997] {Default Queue} wl_pointer#2185.motion(187310726, 20.60156250, 14.60156250) +[2619098.003] {Default Queue} wl_pointer#2217.motion(187310726, 20.60156250, 14.60156250) +[2619098.008] {Default Queue} wl_pointer#2249.motion(187310726, 20.60156250, 14.60156250) +[2619098.013] {Default Queue} wl_pointer#2281.motion(187310726, 20.60156250, 14.60156250) +[2619098.019] {Default Queue} wl_pointer#2313.motion(187310726, 20.60156250, 14.60156250) +[2619098.024] {Default Queue} wl_pointer#2345.motion(187310726, 20.60156250, 14.60156250) +[2619098.030] {Default Queue} wl_pointer#2377.motion(187310726, 20.60156250, 14.60156250) +[2619098.035] {Default Queue} wl_pointer#2409.motion(187310726, 20.60156250, 14.60156250) +[2619098.040] {Default Queue} wl_pointer#2441.motion(187310726, 20.60156250, 14.60156250) +[2619098.046] {Default Queue} wl_pointer#2473.motion(187310726, 20.60156250, 14.60156250) +[2619098.051] {Default Queue} wl_pointer#2498.motion(187310726, 20.60156250, 14.60156250) +[2619098.066] {Default Queue} -> wl_buffer#3706.destroy() +[2619098.071] {Default Queue} -> wl_buffer#3709.destroy() +[2619098.076] {Default Queue} -> wl_shm_pool#1598.destroy() +[2619098.081] {Default Queue} -> wl_shm_pool#3707.destroy() +[2619098.087] {Default Queue} -> wl_surface#3708.destroy() +[2619098.129] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2492, fd 575, 640) +[2619098.135] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2491, fd 578, 640) +[2619098.141] {Default Queue} -> wl_shm_pool#2492.create_buffer(new id wl_buffer#2494, 0, 10, 16, 40, 0) +[2619098.147] {Default Queue} -> wl_shm_pool#2491.create_buffer(new id wl_buffer#2493, 0, 10, 16, 40, 0) +[2619098.156] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3712) +[2619098.161] {Default Queue} -> wl_surface#3712.attach(wl_buffer#2494, 0, 0) +[2619098.166] {Default Queue} -> wl_surface#3712.commit() +[2619098.176] {Default Queue} -> wl_surface#3712.attach(wl_buffer#2494, 0, 0) +[2619098.184] {Default Queue} -> wl_surface#3712.commit() +[2619098.189] {Default Queue} wl_pointer#2537.motion(187310726, 20.60156250, 14.60156250) +[2619098.195] {Default Queue} wl_pointer#2569.motion(187310726, 20.60156250, 14.60156250) +[2619098.201] {Default Queue} wl_pointer#2601.motion(187310726, 20.60156250, 14.60156250) +[2619098.206] {Default Queue} wl_pointer#2633.motion(187310726, 20.60156250, 14.60156250) +[2619098.211] {Default Queue} wl_pointer#2665.motion(187310726, 20.60156250, 14.60156250) +[2619098.217] {Default Queue} wl_pointer#2697.motion(187310726, 20.60156250, 14.60156250) +[2619098.222] {Default Queue} wl_pointer#2729.motion(187310726, 20.60156250, 14.60156250) +[2619098.227] {Default Queue} wl_pointer#2761.motion(187310726, 20.60156250, 14.60156250) +[2619098.233] {Default Queue} wl_pointer#2793.motion(187310726, 20.60156250, 14.60156250) +[2619098.238] {Default Queue} wl_pointer#2825.motion(187310726, 20.60156250, 14.60156250) +[2619098.244] {Default Queue} wl_pointer#2857.motion(187310726, 20.60156250, 14.60156250) +[2619098.249] {Default Queue} wl_pointer#2889.motion(187310726, 20.60156250, 14.60156250) +[2619098.254] {Default Queue} wl_pointer#2921.motion(187310726, 20.60156250, 14.60156250) +[2619098.260] {Default Queue} wl_pointer#2953.motion(187310726, 20.60156250, 14.60156250) +[2619098.265] {Default Queue} wl_pointer#2985.motion(187310726, 20.60156250, 14.60156250) +[2619098.270] {Default Queue} wl_pointer#3017.motion(187310726, 20.60156250, 14.60156250) +[2619098.275] {Default Queue} wl_pointer#3049.motion(187310726, 20.60156250, 14.60156250) +[2619098.281] {Default Queue} wl_pointer#3081.motion(187310726, 20.60156250, 14.60156250) +[2619098.286] {Default Queue} wl_pointer#3113.motion(187310726, 20.60156250, 14.60156250) +[2619098.291] {Default Queue} wl_pointer#3145.motion(187310726, 20.60156250, 14.60156250) +[2619098.297] {Default Queue} wl_pointer#3177.motion(187310726, 20.60156250, 14.60156250) +[2619098.302] {Default Queue} wl_pointer#3209.motion(187310726, 20.60156250, 14.60156250) +[2619098.307] {Default Queue} wl_pointer#3241.motion(187310726, 20.60156250, 14.60156250) +[2619098.313] {Default Queue} wl_pointer#3273.motion(187310726, 20.60156250, 14.60156250) +[2619098.318] {Default Queue} wl_pointer#3305.motion(187310726, 20.60156250, 14.60156250) +[2619098.323] {Default Queue} wl_pointer#3337.motion(187310726, 20.60156250, 14.60156250) +[2619098.329] {Default Queue} wl_pointer#3369.motion(187310726, 20.60156250, 14.60156250) +[2619098.334] {Default Queue} wl_pointer#3401.motion(187310726, 20.60156250, 14.60156250) +[2619098.339] {Default Queue} wl_pointer#3433.motion(187310726, 20.60156250, 14.60156250) +[2619098.345] {Default Queue} wl_pointer#3465.motion(187310726, 20.60156250, 14.60156250) +[2619098.350] {Default Queue} wl_pointer#3497.motion(187310726, 20.60156250, 14.60156250) +[2619098.355] {Default Queue} wl_pointer#3529.motion(187310726, 20.60156250, 14.60156250) +[2619098.361] {Default Queue} wl_pointer#3561.motion(187310726, 20.60156250, 14.60156250) +[2619098.366] {Default Queue} wl_pointer#3593.motion(187310726, 20.60156250, 14.60156250) +[2619098.371] {Default Queue} wl_pointer#3625.motion(187310726, 20.60156250, 14.60156250) +[2619098.377] {Default Queue} wl_pointer#3657.motion(187310726, 20.60156250, 14.60156250) +[2619098.382] {Default Queue} wl_pointer#3695.motion(187310726, 20.60156250, 14.60156250) +[2619098.393] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) +[2619098.399] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) +[2619098.404] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2619098.409] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2619098.418] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) +[2619098.423] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) +[2619098.428] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2619098.433] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2619098.444] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) +[2619098.451] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) +[2619098.456] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2619098.461] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2619098.468] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) +[2619098.473] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) +[2619098.478] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2619098.483] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2619098.489] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) +[2619098.494] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) +[2619098.499] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2619098.504] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2619098.513] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) +[2619098.518] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) +[2619098.523] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2619098.528] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2619098.534] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) +[2619098.539] {Default Queue} -> wl_surface#2631.commit() +[2619098.544] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) +[2619098.549] {Default Queue} -> wl_surface#2631.commit() +[2619098.557] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) +[2619098.562] {Default Queue} -> wl_surface#2631.commit() +[2619098.569] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) +[2619098.574] {Default Queue} -> wl_surface#2599.commit() +[2619099.639] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) +[2619099.644] {Default Queue} -> wl_surface#2599.commit() +[2619099.654] {Default Queue} -> wl_region#2623.subtract(0, 0, 255, 408) +[2619099.659] {Default Queue} -> wl_region#2623.add(-253, -386, 255, 388) +[2619099.664] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) +[2619099.669] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) +[2619099.675] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) +[2619099.680] {Default Queue} -> wl_surface#2599.commit() +[2619099.685] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) +[2619099.690] {Default Queue} -> wl_surface#2599.commit() +[2619099.697] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) +[2619099.702] {Default Queue} -> wl_surface#2599.commit() +[2619099.708] {Default Queue} -> wl_region#2559.subtract(0, 0, 109, 161) +[2619099.715] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 403) +[2619099.721] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 403) +[2619099.726] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2619099.730] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2619099.867] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 403) +[2619099.872] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 403) +[2619099.898] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2619099.909] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2619099.920] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2619099.925] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2619100.046] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 403) +[2619100.052] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 403) +[2619100.056] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2619100.060] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2619100.066] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2619100.070] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2619100.076] {Default Queue} -> wl_region#2623.subtract(0, 0, 255, 408) +[2619100.080] {Default Queue} -> wl_region#2623.add(-253, -386, 255, 388) +[2619100.089] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) +[2619100.098] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) +[2619100.103] {Default Queue} -> wl_surface#2535.damage(0, 0, 109, 161) +[2619100.107] {Default Queue} -> wl_region#2559.subtract(0, 0, 362, 547) +[2619100.111] {Default Queue} -> wl_region#2559.add(-250, -383, 359, 544) +[2619100.115] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) +[2619100.119] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) +[2619100.122] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2619100.126] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) +[2619100.130] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) +[2619100.134] {Default Queue} -> wl_surface#2535.damage(0, 0, 109, 161) +[2619100.148] {Default Queue} -> wl_buffer#3728.destroy() +[2619100.153] {Default Queue} -> wl_buffer#3729.destroy() +[2619100.157] {Default Queue} -> wl_shm_pool#3726.destroy() +[2619100.160] {Default Queue} -> wl_shm_pool#3727.destroy() +[2619100.247] {Default Queue} -> wl_shm#2543.create_pool(new id wl_shm_pool#3713, fd 575, 70196) +[2619100.253] {Default Queue} -> wl_shm#2543.create_pool(new id wl_shm_pool#3719, fd 578, 70196) +[2619100.258] {Default Queue} -> wl_shm_pool#3713.create_buffer(new id wl_buffer#3718, 0, 109, 161, 436, 0) +[2619100.262] {Default Queue} -> wl_shm_pool#3719.create_buffer(new id wl_buffer#3721, 0, 109, 161, 436, 0) +[2619100.284] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3718, 0, 0) +[2619100.289] {Default Queue} -> wl_surface#2535.commit() +[2619100.309] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3718, 0, 0) +[2619100.313] {Default Queue} -> wl_surface#2535.commit() +[2619100.321] {Default Queue} -> wl_region#2559.subtract(0, 0, 362, 547) +[2619100.326] {Default Queue} -> wl_region#2559.add(-250, -383, 359, 544) +[2619100.330] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) +[2619100.333] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) +[2619100.340] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3718, 0, 0) +[2619100.344] {Default Queue} -> wl_surface#2535.commit() +[2619100.351] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3718, 0, 0) +[2619100.355] {Default Queue} -> wl_surface#2535.commit() +[2619101.421] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3718, 0, 0) +[2619101.428] {Default Queue} -> wl_surface#2535.commit() +[2619101.436] {Default Queue} -> wl_region#2559.subtract(0, 0, 362, 547) +[2619101.441] {Default Queue} -> wl_region#2559.add(-250, -383, 359, 544) +[2619101.445] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) +[2619101.449] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) +[2619101.455] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3718, 0, 0) +[2619101.459] {Default Queue} -> wl_surface#2535.commit() +[2619101.464] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3718, 0, 0) +[2619101.467] {Default Queue} -> wl_surface#2535.commit() +[2619101.474] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3718, 0, 0) +[2619101.478] {Default Queue} -> wl_surface#2535.commit() +[2619101.489] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) +[2619101.493] {Default Queue} -> wl_surface#2508.commit() +[2619101.974] {Display Queue} wl_display#1.delete_id(3036) +[2619101.987] {Display Queue} wl_display#1.delete_id(3037) +[2619101.992] {Display Queue} wl_display#1.delete_id(3701) +[2619101.997] {Display Queue} wl_display#1.delete_id(3700) +[2619102.002] {Display Queue} wl_display#1.delete_id(3038) +[2619102.007] {Display Queue} wl_display#1.delete_id(3724) +[2619102.012] {Display Queue} wl_display#1.delete_id(3725) +[2619102.016] {Display Queue} wl_display#1.delete_id(3722) +[2619102.021] {Display Queue} wl_display#1.delete_id(3723) +[2619102.026] {Display Queue} wl_display#1.delete_id(2653) +[2619102.031] {Display Queue} wl_display#1.delete_id(2654) +[2619102.035] {Display Queue} wl_display#1.delete_id(2651) +[2619102.047] {Display Queue} wl_display#1.delete_id(2652) +[2619102.055] {Default Queue} wl_pointer#24.motion(187310732, 20.19921875, 14.60156250) +[2619102.061] {Default Queue} wl_pointer#81.motion(187310732, 20.19921875, 14.60156250) +[2619102.069] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619102.075] {Default Queue} wl_pointer#105.motion(187310732, 20.19921875, 14.60156250) +[2619102.081] {Default Queue} wl_pointer#137.motion(187310732, 20.19921875, 14.60156250) +[2619102.086] {Default Queue} wl_pointer#169.motion(187310732, 20.19921875, 14.60156250) +[2619102.092] {Default Queue} wl_pointer#201.motion(187310732, 20.19921875, 14.60156250) +[2619102.098] {Default Queue} wl_pointer#233.motion(187310732, 20.19921875, 14.60156250) +[2619102.103] {Default Queue} wl_pointer#265.motion(187310732, 20.19921875, 14.60156250) +[2619102.109] {Default Queue} wl_pointer#297.motion(187310732, 20.19921875, 14.60156250) +[2619102.115] {Default Queue} wl_pointer#329.motion(187310732, 20.19921875, 14.60156250) +[2619102.120] {Default Queue} wl_pointer#361.motion(187310732, 20.19921875, 14.60156250) +[2619102.126] {Default Queue} wl_pointer#393.motion(187310732, 20.19921875, 14.60156250) +[2619102.131] {Default Queue} wl_pointer#425.motion(187310732, 20.19921875, 14.60156250) +[2619102.136] {Default Queue} wl_pointer#457.motion(187310732, 20.19921875, 14.60156250) +[2619102.141] {Default Queue} wl_pointer#489.motion(187310732, 20.19921875, 14.60156250) +[2619102.147] {Default Queue} wl_pointer#521.motion(187310732, 20.19921875, 14.60156250) +[2619102.177] {Default Queue} wl_pointer#553.motion(187310732, 20.19921875, 14.60156250) +[2619102.186] {Default Queue} wl_pointer#585.motion(187310732, 20.19921875, 14.60156250) +[2619102.193] {Default Queue} wl_pointer#617.motion(187310732, 20.19921875, 14.60156250) +[2619102.199] {Default Queue} wl_pointer#649.motion(187310732, 20.19921875, 14.60156250) +[2619102.205] {Default Queue} wl_pointer#681.motion(187310732, 20.19921875, 14.60156250) +[2619102.211] {Default Queue} wl_pointer#713.motion(187310732, 20.19921875, 14.60156250) +[2619102.217] {Default Queue} wl_pointer#745.motion(187310732, 20.19921875, 14.60156250) +[2619102.223] {Default Queue} wl_pointer#777.motion(187310732, 20.19921875, 14.60156250) +[2619102.229] {Default Queue} wl_pointer#809.motion(187310732, 20.19921875, 14.60156250) +[2619102.235] {Default Queue} wl_pointer#841.motion(187310732, 20.19921875, 14.60156250) +[2619102.241] {Default Queue} wl_pointer#873.motion(187310732, 20.19921875, 14.60156250) +[2619102.247] {Default Queue} wl_pointer#905.motion(187310732, 20.19921875, 14.60156250) +[2619102.253] {Default Queue} wl_pointer#937.motion(187310732, 20.19921875, 14.60156250) +[2619102.259] {Default Queue} wl_pointer#969.motion(187310732, 20.19921875, 14.60156250) +[2619102.266] {Default Queue} wl_pointer#1001.motion(187310732, 20.19921875, 14.60156250) +[2619102.273] {Default Queue} wl_pointer#1033.motion(187310732, 20.19921875, 14.60156250) +[2619102.279] {Default Queue} wl_pointer#1065.motion(187310732, 20.19921875, 14.60156250) +[2619102.284] {Default Queue} wl_pointer#1097.motion(187310732, 20.19921875, 14.60156250) +[2619102.290] {Default Queue} wl_pointer#1129.motion(187310732, 20.19921875, 14.60156250) +[2619102.297] {Default Queue} wl_pointer#1161.motion(187310732, 20.19921875, 14.60156250) +[2619102.303] {Default Queue} wl_pointer#1193.motion(187310732, 20.19921875, 14.60156250) +[2619102.309] {Default Queue} wl_pointer#1225.motion(187310732, 20.19921875, 14.60156250) +[2619102.314] {Default Queue} wl_pointer#1257.motion(187310732, 20.19921875, 14.60156250) +[2619102.321] {Default Queue} wl_pointer#1289.motion(187310732, 20.19921875, 14.60156250) +[2619102.327] {Default Queue} wl_pointer#1321.motion(187310732, 20.19921875, 14.60156250) +[2619102.333] {Default Queue} wl_pointer#1353.motion(187310732, 20.19921875, 14.60156250) +[2619102.339] {Default Queue} wl_pointer#1385.motion(187310732, 20.19921875, 14.60156250) +[2619102.345] {Default Queue} wl_pointer#1417.motion(187310732, 20.19921875, 14.60156250) +[2619102.358] {Default Queue} wl_pointer#1449.motion(187310732, 20.19921875, 14.60156250) +[2619102.367] {Default Queue} wl_pointer#1481.motion(187310732, 20.19921875, 14.60156250) +[2619102.373] {Default Queue} wl_pointer#1513.motion(187310732, 20.19921875, 14.60156250) +[2619102.379] {Default Queue} wl_pointer#1545.motion(187310732, 20.19921875, 14.60156250) +[2619102.385] {Default Queue} wl_pointer#1577.motion(187310732, 20.19921875, 14.60156250) +[2619102.391] {Default Queue} wl_pointer#1609.motion(187310732, 20.19921875, 14.60156250) +[2619102.397] {Default Queue} wl_pointer#1641.motion(187310732, 20.19921875, 14.60156250) +[2619102.403] {Default Queue} wl_pointer#1673.motion(187310732, 20.19921875, 14.60156250) +[2619102.409] {Default Queue} wl_pointer#1705.motion(187310732, 20.19921875, 14.60156250) +[2619102.415] {Default Queue} wl_pointer#1737.motion(187310732, 20.19921875, 14.60156250) +[2619102.421] {Default Queue} wl_pointer#1762.motion(187310732, 20.19921875, 14.60156250) +[2619102.427] {Default Queue} wl_pointer#1801.motion(187310732, 20.19921875, 14.60156250) +[2619102.433] {Default Queue} wl_pointer#1833.motion(187310732, 20.19921875, 14.60156250) +[2619102.439] {Default Queue} wl_pointer#1865.motion(187310732, 20.19921875, 14.60156250) +[2619102.444] {Default Queue} wl_pointer#1897.motion(187310732, 20.19921875, 14.60156250) +[2619102.450] {Default Queue} wl_pointer#1929.motion(187310732, 20.19921875, 14.60156250) +[2619102.456] {Default Queue} wl_pointer#1961.motion(187310732, 20.19921875, 14.60156250) +[2619102.462] {Default Queue} wl_pointer#1993.motion(187310732, 20.19921875, 14.60156250) +[2619102.468] {Default Queue} wl_pointer#2025.motion(187310732, 20.19921875, 14.60156250) +[2619102.474] {Default Queue} wl_pointer#2057.motion(187310732, 20.19921875, 14.60156250) +[2619102.481] {Default Queue} wl_pointer#2089.motion(187310732, 20.19921875, 14.60156250) +[2619102.487] {Default Queue} wl_pointer#2121.motion(187310732, 20.19921875, 14.60156250) +[2619102.492] {Default Queue} wl_pointer#2153.motion(187310732, 20.19921875, 14.60156250) +[2619102.498] {Default Queue} wl_pointer#2185.motion(187310732, 20.19921875, 14.60156250) +[2619102.505] {Default Queue} wl_pointer#2217.motion(187310732, 20.19921875, 14.60156250) +[2619102.511] {Default Queue} wl_pointer#2249.motion(187310732, 20.19921875, 14.60156250) +[2619102.516] {Default Queue} wl_pointer#2281.motion(187310732, 20.19921875, 14.60156250) +[2619102.522] {Default Queue} wl_pointer#2313.motion(187310732, 20.19921875, 14.60156250) +[2619102.532] {Default Queue} wl_pointer#2345.motion(187310732, 20.19921875, 14.60156250) +[2619102.539] {Default Queue} wl_pointer#2377.motion(187310732, 20.19921875, 14.60156250) +[2619102.545] {Default Queue} wl_pointer#2409.motion(187310732, 20.19921875, 14.60156250) +[2619102.551] {Default Queue} wl_pointer#2441.motion(187310732, 20.19921875, 14.60156250) +[2619102.556] {Default Queue} wl_pointer#2473.motion(187310732, 20.19921875, 14.60156250) +[2619102.562] {Default Queue} wl_pointer#2498.motion(187310732, 20.19921875, 14.60156250) +[2619102.580] {Default Queue} -> wl_buffer#2494.destroy() +[2619102.588] {Default Queue} -> wl_buffer#2493.destroy() +[2619102.594] {Default Queue} -> wl_shm_pool#2492.destroy() +[2619102.599] {Default Queue} -> wl_shm_pool#2491.destroy() +[2619102.606] {Default Queue} -> wl_surface#3712.destroy() +[2619102.667] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2652, fd 575, 640) +[2619102.676] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2651, fd 578, 640) +[2619102.683] {Default Queue} -> wl_shm_pool#2652.create_buffer(new id wl_buffer#2654, 0, 10, 16, 40, 0) +[2619102.689] {Default Queue} -> wl_shm_pool#2651.create_buffer(new id wl_buffer#2653, 0, 10, 16, 40, 0) +[2619102.700] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3723) +[2619102.707] {Default Queue} -> wl_surface#3723.attach(wl_buffer#2654, 0, 0) +[2619102.713] {Default Queue} -> wl_surface#3723.commit() +[2619102.720] {Default Queue} -> wl_surface#3723.attach(wl_buffer#2654, 0, 0) +[2619102.726] {Default Queue} -> wl_surface#3723.commit() +[2619102.737] {Default Queue} wl_pointer#2537.motion(187310732, 20.19921875, 14.60156250) +[2619102.746] {Default Queue} wl_pointer#2569.motion(187310732, 20.19921875, 14.60156250) +[2619102.752] {Default Queue} wl_pointer#2601.motion(187310732, 20.19921875, 14.60156250) +[2619102.758] {Default Queue} wl_pointer#2633.motion(187310732, 20.19921875, 14.60156250) +[2619102.764] {Default Queue} wl_pointer#2665.motion(187310732, 20.19921875, 14.60156250) +[2619102.774] {Default Queue} wl_pointer#2697.motion(187310732, 20.19921875, 14.60156250) +[2619102.780] {Default Queue} wl_pointer#2729.motion(187310732, 20.19921875, 14.60156250) +[2619102.786] {Default Queue} wl_pointer#2761.motion(187310732, 20.19921875, 14.60156250) +[2619102.795] {Default Queue} wl_pointer#2793.motion(187310732, 20.19921875, 14.60156250) +[2619102.801] {Default Queue} wl_pointer#2825.motion(187310732, 20.19921875, 14.60156250) +[2619102.807] {Default Queue} wl_pointer#2857.motion(187310732, 20.19921875, 14.60156250) +[2619102.813] {Default Queue} wl_pointer#2889.motion(187310732, 20.19921875, 14.60156250) +[2619102.819] {Default Queue} wl_pointer#2921.motion(187310732, 20.19921875, 14.60156250) +[2619102.824] {Default Queue} wl_pointer#2953.motion(187310732, 20.19921875, 14.60156250) +[2619102.828] {Default Queue} wl_pointer#2985.motion(187310732, 20.19921875, 14.60156250) +[2619102.832] {Default Queue} wl_pointer#3017.motion(187310732, 20.19921875, 14.60156250) +[2619102.836] {Default Queue} wl_pointer#3049.motion(187310732, 20.19921875, 14.60156250) +[2619102.840] {Default Queue} wl_pointer#3081.motion(187310732, 20.19921875, 14.60156250) +[2619102.844] {Default Queue} wl_pointer#3113.motion(187310732, 20.19921875, 14.60156250) +[2619102.848] {Default Queue} wl_pointer#3145.motion(187310732, 20.19921875, 14.60156250) +[2619102.851] {Default Queue} wl_pointer#3177.motion(187310732, 20.19921875, 14.60156250) +[2619102.855] {Default Queue} wl_pointer#3209.motion(187310732, 20.19921875, 14.60156250) +[2619102.860] {Default Queue} wl_pointer#3241.motion(187310732, 20.19921875, 14.60156250) +[2619102.865] {Default Queue} wl_pointer#3273.motion(187310732, 20.19921875, 14.60156250) +[2619102.869] {Default Queue} wl_pointer#3305.motion(187310732, 20.19921875, 14.60156250) +[2619102.896] {Default Queue} wl_pointer#3337.motion(187310732, 20.19921875, 14.60156250) +[2619102.901] {Default Queue} wl_pointer#3369.motion(187310732, 20.19921875, 14.60156250) +[2619102.905] {Default Queue} wl_pointer#3401.motion(187310732, 20.19921875, 14.60156250) +[2619102.919] {Default Queue} wl_pointer#3433.motion(187310732, 20.19921875, 14.60156250) +[2619102.923] {Default Queue} wl_pointer#3465.motion(187310732, 20.19921875, 14.60156250) +[2619102.927] {Default Queue} wl_pointer#3497.motion(187310732, 20.19921875, 14.60156250) +[2619102.931] {Default Queue} wl_pointer#3529.motion(187310732, 20.19921875, 14.60156250) +[2619102.935] {Default Queue} wl_pointer#3561.motion(187310732, 20.19921875, 14.60156250) +[2619102.939] {Default Queue} wl_pointer#3593.motion(187310732, 20.19921875, 14.60156250) +[2619102.943] {Default Queue} wl_pointer#3625.motion(187310732, 20.19921875, 14.60156250) +[2619102.947] {Default Queue} wl_pointer#3657.motion(187310732, 20.19921875, 14.60156250) +[2619102.951] {Default Queue} wl_pointer#3695.motion(187310732, 20.19921875, 14.60156250) +[2619102.970] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) +[2619102.975] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) +[2619102.979] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2619102.983] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2619102.991] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) +[2619102.995] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) +[2619102.999] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2619103.002] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2619103.008] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) +[2619103.012] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) +[2619103.020] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2619103.026] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2619103.031] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) +[2619103.035] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) +[2619103.039] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2619103.043] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2619103.049] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) +[2619103.053] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) +[2619103.057] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) +[2619103.060] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) +[2619103.067] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) +[2619103.072] {Default Queue} -> wl_surface#2508.commit() +[2619103.077] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) +[2619103.081] {Default Queue} -> wl_surface#2508.commit() +[2619103.089] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) +[2619103.093] {Default Queue} -> wl_surface#2508.commit() +[2619103.099] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) +[2619103.103] {Default Queue} -> wl_surface#2727.commit() +[2619104.167] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) +[2619104.173] {Default Queue} -> wl_surface#2727.commit() +[2619104.182] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 403) +[2619104.186] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 403) +[2619104.190] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2619104.194] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2619104.282] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 403) +[2619104.287] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 403) +[2619104.291] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2619104.294] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2619104.301] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) +[2619104.306] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) +[2619104.368] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 403) +[2619104.373] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 403) +[2619104.377] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2619104.381] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2619104.386] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) +[2619104.390] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) +[2619104.394] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) +[2619104.398] {Default Queue} -> wl_surface#2727.commit() +[2619104.402] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) +[2619104.406] {Default Queue} -> wl_surface#2727.commit() +[2619104.411] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) +[2619104.415] {Default Queue} -> wl_surface#2727.commit() +[2619104.419] {Default Queue} -> wl_region#2815.subtract(0, 0, 2, 2) +[2619104.424] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) +[2619104.427] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) +[2619104.431] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619104.435] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619104.439] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) +[2619104.452] {Default Queue} -> wl_buffer#2813.destroy() +[2619104.457] {Default Queue} -> wl_buffer#2814.destroy() +[2619104.461] {Default Queue} -> wl_shm_pool#2811.destroy() +[2619104.465] {Default Queue} -> wl_shm_pool#2812.destroy() +[2619104.524] {Default Queue} -> wl_shm#2799.create_pool(new id wl_shm_pool#3722, fd 575, 16) +[2619104.530] {Default Queue} -> wl_shm#2799.create_pool(new id wl_shm_pool#3725, fd 578, 16) +[2619104.534] {Default Queue} -> wl_shm_pool#3722.create_buffer(new id wl_buffer#3724, 0, 2, 2, 8, 0) +[2619104.542] {Default Queue} -> wl_shm_pool#3725.create_buffer(new id wl_buffer#3038, 0, 2, 2, 8, 0) +[2619104.551] {Default Queue} -> wl_surface#2791.attach(wl_buffer#3724, 0, 0) +[2619104.555] {Default Queue} -> wl_surface#2791.commit() +[2619104.560] {Default Queue} -> wl_surface#2791.attach(wl_buffer#3724, 0, 0) +[2619104.563] {Default Queue} -> wl_surface#2791.commit() +[2619104.571] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619104.576] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619104.580] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619104.583] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619104.591] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619104.595] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619104.599] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619104.602] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619104.609] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619104.613] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619104.617] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619104.620] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619104.625] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619104.629] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619104.633] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619104.637] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619104.642] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619104.646] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619104.650] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619104.653] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619104.660] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619104.664] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619104.668] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619104.672] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619104.677] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619104.681] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619104.685] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619104.688] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619104.694] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619104.698] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619104.702] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619104.706] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619104.711] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619104.715] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619104.719] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619104.723] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619104.733] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619104.737] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619104.741] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619104.745] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619104.750] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619104.753] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619104.757] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619104.761] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619104.766] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619104.770] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619104.774] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619104.780] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619104.787] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619104.791] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619104.795] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619104.798] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619104.803] {Default Queue} -> wl_surface#2791.attach(wl_buffer#3724, 0, 0) +[2619104.807] {Default Queue} -> wl_surface#2791.commit() +[2619104.813] {Default Queue} -> wl_surface#2791.attach(wl_buffer#3724, 0, 0) +[2619104.817] {Default Queue} -> wl_surface#2791.commit() +[2619105.867] {Default Queue} -> wl_surface#2791.attach(wl_buffer#3724, 0, 0) +[2619105.872] {Default Queue} -> wl_surface#2791.commit() +[2619105.880] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619105.885] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619105.889] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619105.893] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619105.899] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619105.903] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619105.907] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619105.911] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619105.916] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619105.920] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619105.924] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619105.928] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619105.933] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619105.937] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619105.941] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619105.944] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619105.949] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619105.953] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619105.957] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619105.960] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619105.967] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619105.971] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619105.975] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619105.979] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619105.984] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619105.988] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619105.992] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619105.995] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619106.000] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619106.004] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619106.008] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619106.012] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619106.017] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619106.021] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619106.025] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619106.028] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619106.038] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619106.043] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619106.047] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619106.051] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619106.055] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619106.062] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619106.068] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619106.071] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619106.077] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619106.081] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619106.084] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619106.088] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619106.093] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) +[2619106.097] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) +[2619106.101] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) +[2619106.105] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) +[2619106.110] {Default Queue} -> wl_surface#2791.attach(wl_buffer#3724, 0, 0) +[2619106.114] {Default Queue} -> wl_surface#2791.commit() +[2619106.117] {Default Queue} -> wl_surface#2791.attach(wl_buffer#3724, 0, 0) +[2619106.121] {Default Queue} -> wl_surface#2791.commit() +[2619106.127] {Default Queue} -> wl_surface#2791.attach(wl_buffer#3724, 0, 0) +[2619106.131] {Default Queue} -> wl_surface#2791.commit() +[2619106.136] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) +[2619106.140] {Default Queue} -> wl_surface#2759.commit() +[2619106.885] {Display Queue} wl_display#1.delete_id(3706) +[2619106.891] {Display Queue} wl_display#1.delete_id(3709) +[2619106.895] {Display Queue} wl_display#1.delete_id(1598) +[2619106.899] {Display Queue} wl_display#1.delete_id(3707) +[2619106.903] {Display Queue} wl_display#1.delete_id(3708) +[2619106.906] {Display Queue} wl_display#1.delete_id(3728) +[2619106.910] {Display Queue} wl_display#1.delete_id(3729) +[2619106.914] {Display Queue} wl_display#1.delete_id(3726) +[2619106.917] {Display Queue} wl_display#1.delete_id(3727) +[2619106.921] {Default Queue} wl_pointer#24.motion(187310737, 20.19921875, 15.00000000) +[2619106.926] {Default Queue} wl_pointer#81.motion(187310737, 20.19921875, 15.00000000) +[2619106.931] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619106.936] {Default Queue} wl_pointer#105.motion(187310737, 20.19921875, 15.00000000) +[2619106.940] {Default Queue} wl_pointer#137.motion(187310737, 20.19921875, 15.00000000) +[2619106.944] {Default Queue} wl_pointer#169.motion(187310737, 20.19921875, 15.00000000) +[2619106.948] {Default Queue} wl_pointer#201.motion(187310737, 20.19921875, 15.00000000) +[2619106.952] {Default Queue} wl_pointer#233.motion(187310737, 20.19921875, 15.00000000) +[2619106.956] {Default Queue} wl_pointer#265.motion(187310737, 20.19921875, 15.00000000) +[2619106.960] {Default Queue} wl_pointer#297.motion(187310737, 20.19921875, 15.00000000) +[2619106.964] {Default Queue} wl_pointer#329.motion(187310737, 20.19921875, 15.00000000) +[2619106.968] {Default Queue} wl_pointer#361.motion(187310737, 20.19921875, 15.00000000) +[2619106.972] {Default Queue} wl_pointer#393.motion(187310737, 20.19921875, 15.00000000) +[2619106.975] {Default Queue} wl_pointer#425.motion(187310737, 20.19921875, 15.00000000) +[2619106.979] {Default Queue} wl_pointer#457.motion(187310737, 20.19921875, 15.00000000) +[2619106.983] {Default Queue} wl_pointer#489.motion(187310737, 20.19921875, 15.00000000) +[2619106.987] {Default Queue} wl_pointer#521.motion(187310737, 20.19921875, 15.00000000) +[2619106.991] {Default Queue} wl_pointer#553.motion(187310737, 20.19921875, 15.00000000) +[2619106.996] {Default Queue} wl_pointer#585.motion(187310737, 20.19921875, 15.00000000) +[2619107.000] {Default Queue} wl_pointer#617.motion(187310737, 20.19921875, 15.00000000) +[2619107.004] {Default Queue} wl_pointer#649.motion(187310737, 20.19921875, 15.00000000) +[2619107.008] {Default Queue} wl_pointer#681.motion(187310737, 20.19921875, 15.00000000) +[2619107.012] {Default Queue} wl_pointer#713.motion(187310737, 20.19921875, 15.00000000) +[2619107.016] {Default Queue} wl_pointer#745.motion(187310737, 20.19921875, 15.00000000) +[2619107.023] {Default Queue} wl_pointer#777.motion(187310737, 20.19921875, 15.00000000) +[2619107.029] {Default Queue} wl_pointer#809.motion(187310737, 20.19921875, 15.00000000) +[2619107.033] {Default Queue} wl_pointer#841.motion(187310737, 20.19921875, 15.00000000) +[2619107.037] {Default Queue} wl_pointer#873.motion(187310737, 20.19921875, 15.00000000) +[2619107.041] {Default Queue} wl_pointer#905.motion(187310737, 20.19921875, 15.00000000) +[2619107.045] {Default Queue} wl_pointer#937.motion(187310737, 20.19921875, 15.00000000) +[2619107.048] {Default Queue} wl_pointer#969.motion(187310737, 20.19921875, 15.00000000) +[2619107.052] {Default Queue} wl_pointer#1001.motion(187310737, 20.19921875, 15.00000000) +[2619107.056] {Default Queue} wl_pointer#1033.motion(187310737, 20.19921875, 15.00000000) +[2619107.060] {Default Queue} wl_pointer#1065.motion(187310737, 20.19921875, 15.00000000) +[2619107.064] {Default Queue} wl_pointer#1097.motion(187310737, 20.19921875, 15.00000000) +[2619107.068] {Default Queue} wl_pointer#1129.motion(187310737, 20.19921875, 15.00000000) +[2619107.072] {Default Queue} wl_pointer#1161.motion(187310737, 20.19921875, 15.00000000) +[2619107.076] {Default Queue} wl_pointer#1193.motion(187310737, 20.19921875, 15.00000000) +[2619107.080] {Default Queue} wl_pointer#1225.motion(187310737, 20.19921875, 15.00000000) +[2619107.084] {Default Queue} wl_pointer#1257.motion(187310737, 20.19921875, 15.00000000) +[2619107.088] {Default Queue} wl_pointer#1289.motion(187310737, 20.19921875, 15.00000000) +[2619107.092] {Default Queue} wl_pointer#1321.motion(187310737, 20.19921875, 15.00000000) +[2619107.096] {Default Queue} wl_pointer#1353.motion(187310737, 20.19921875, 15.00000000) +[2619107.100] {Default Queue} wl_pointer#1385.motion(187310737, 20.19921875, 15.00000000) +[2619107.104] {Default Queue} wl_pointer#1417.motion(187310737, 20.19921875, 15.00000000) +[2619107.108] {Default Queue} wl_pointer#1449.motion(187310737, 20.19921875, 15.00000000) +[2619107.112] {Default Queue} wl_pointer#1481.motion(187310737, 20.19921875, 15.00000000) +[2619107.116] {Default Queue} wl_pointer#1513.motion(187310737, 20.19921875, 15.00000000) +[2619107.120] {Default Queue} wl_pointer#1545.motion(187310737, 20.19921875, 15.00000000) +[2619107.124] {Default Queue} wl_pointer#1577.motion(187310737, 20.19921875, 15.00000000) +[2619107.128] {Default Queue} wl_pointer#1609.motion(187310737, 20.19921875, 15.00000000) +[2619107.132] {Default Queue} wl_pointer#1641.motion(187310737, 20.19921875, 15.00000000) +[2619107.136] {Default Queue} wl_pointer#1673.motion(187310737, 20.19921875, 15.00000000) +[2619107.139] {Default Queue} wl_pointer#1705.motion(187310737, 20.19921875, 15.00000000) +[2619107.143] {Default Queue} wl_pointer#1737.motion(187310737, 20.19921875, 15.00000000) +[2619107.147] {Default Queue} wl_pointer#1762.motion(187310737, 20.19921875, 15.00000000) +[2619107.151] {Default Queue} wl_pointer#1801.motion(187310737, 20.19921875, 15.00000000) +[2619107.155] {Default Queue} wl_pointer#1833.motion(187310737, 20.19921875, 15.00000000) +[2619107.159] {Default Queue} wl_pointer#1865.motion(187310737, 20.19921875, 15.00000000) +[2619107.163] {Default Queue} wl_pointer#1897.motion(187310737, 20.19921875, 15.00000000) +[2619107.167] {Default Queue} wl_pointer#1929.motion(187310737, 20.19921875, 15.00000000) +[2619107.171] {Default Queue} wl_pointer#1961.motion(187310737, 20.19921875, 15.00000000) +[2619107.175] {Default Queue} wl_pointer#1993.motion(187310737, 20.19921875, 15.00000000) +[2619107.179] {Default Queue} wl_pointer#2025.motion(187310737, 20.19921875, 15.00000000) +[2619107.183] {Default Queue} wl_pointer#2057.motion(187310737, 20.19921875, 15.00000000) +[2619107.187] {Default Queue} wl_pointer#2089.motion(187310737, 20.19921875, 15.00000000) +[2619107.191] {Default Queue} wl_pointer#2121.motion(187310737, 20.19921875, 15.00000000) +[2619107.194] {Default Queue} wl_pointer#2153.motion(187310737, 20.19921875, 15.00000000) +[2619107.198] {Default Queue} wl_pointer#2185.motion(187310737, 20.19921875, 15.00000000) +[2619107.202] {Default Queue} wl_pointer#2217.motion(187310737, 20.19921875, 15.00000000) +[2619107.209] {Default Queue} wl_pointer#2249.motion(187310737, 20.19921875, 15.00000000) +[2619107.214] {Default Queue} wl_pointer#2281.motion(187310737, 20.19921875, 15.00000000) +[2619107.218] {Default Queue} wl_pointer#2313.motion(187310737, 20.19921875, 15.00000000) +[2619107.223] {Default Queue} wl_pointer#2345.motion(187310737, 20.19921875, 15.00000000) +[2619107.227] {Default Queue} wl_pointer#2377.motion(187310737, 20.19921875, 15.00000000) +[2619107.231] {Default Queue} wl_pointer#2409.motion(187310737, 20.19921875, 15.00000000) +[2619107.235] {Default Queue} wl_pointer#2441.motion(187310737, 20.19921875, 15.00000000) +[2619107.239] {Default Queue} wl_pointer#2473.motion(187310737, 20.19921875, 15.00000000) +[2619107.242] {Default Queue} wl_pointer#2498.motion(187310737, 20.19921875, 15.00000000) +[2619107.254] {Default Queue} -> wl_buffer#2654.destroy() +[2619107.258] {Default Queue} -> wl_buffer#2653.destroy() +[2619107.262] {Default Queue} -> wl_shm_pool#2652.destroy() +[2619107.266] {Default Queue} -> wl_shm_pool#2651.destroy() +[2619107.270] {Default Queue} -> wl_surface#3723.destroy() +[2619107.326] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3727, fd 575, 640) +[2619107.336] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3726, fd 578, 640) +[2619107.340] {Default Queue} -> wl_shm_pool#3727.create_buffer(new id wl_buffer#3729, 0, 10, 16, 40, 0) +[2619107.345] {Default Queue} -> wl_shm_pool#3726.create_buffer(new id wl_buffer#3728, 0, 10, 16, 40, 0) +[2619107.352] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3708) +[2619107.356] {Default Queue} -> wl_surface#3708.attach(wl_buffer#3729, 0, 0) +[2619107.360] {Default Queue} -> wl_surface#3708.commit() +[2619107.366] {Default Queue} -> wl_surface#3708.attach(wl_buffer#3729, 0, 0) +[2619107.370] {Default Queue} -> wl_surface#3708.commit() +[2619107.374] {Default Queue} wl_pointer#2537.motion(187310737, 20.19921875, 15.00000000) +[2619107.379] {Default Queue} wl_pointer#2569.motion(187310737, 20.19921875, 15.00000000) +[2619107.384] {Default Queue} wl_pointer#2601.motion(187310737, 20.19921875, 15.00000000) +[2619107.388] {Default Queue} wl_pointer#2633.motion(187310737, 20.19921875, 15.00000000) +[2619107.392] {Default Queue} wl_pointer#2665.motion(187310737, 20.19921875, 15.00000000) +[2619107.396] {Default Queue} wl_pointer#2697.motion(187310737, 20.19921875, 15.00000000) +[2619107.400] {Default Queue} wl_pointer#2729.motion(187310737, 20.19921875, 15.00000000) +[2619107.404] {Default Queue} wl_pointer#2761.motion(187310737, 20.19921875, 15.00000000) +[2619107.408] {Default Queue} wl_pointer#2793.motion(187310737, 20.19921875, 15.00000000) +[2619107.412] {Default Queue} wl_pointer#2825.motion(187310737, 20.19921875, 15.00000000) +[2619107.416] {Default Queue} wl_pointer#2857.motion(187310737, 20.19921875, 15.00000000) +[2619107.420] {Default Queue} wl_pointer#2889.motion(187310737, 20.19921875, 15.00000000) +[2619107.424] {Default Queue} wl_pointer#2921.motion(187310737, 20.19921875, 15.00000000) +[2619107.428] {Default Queue} wl_pointer#2953.motion(187310737, 20.19921875, 15.00000000) +[2619107.432] {Default Queue} wl_pointer#2985.motion(187310737, 20.19921875, 15.00000000) +[2619107.436] {Default Queue} wl_pointer#3017.motion(187310737, 20.19921875, 15.00000000) +[2619107.440] {Default Queue} wl_pointer#3049.motion(187310737, 20.19921875, 15.00000000) +[2619107.444] {Default Queue} wl_pointer#3081.motion(187310737, 20.19921875, 15.00000000) +[2619107.448] {Default Queue} wl_pointer#3113.motion(187310737, 20.19921875, 15.00000000) +[2619107.452] {Default Queue} wl_pointer#3145.motion(187310737, 20.19921875, 15.00000000) +[2619107.456] {Default Queue} wl_pointer#3177.motion(187310737, 20.19921875, 15.00000000) +[2619107.460] {Default Queue} wl_pointer#3209.motion(187310737, 20.19921875, 15.00000000) +[2619107.464] {Default Queue} wl_pointer#3241.motion(187310737, 20.19921875, 15.00000000) +[2619107.468] {Default Queue} wl_pointer#3273.motion(187310737, 20.19921875, 15.00000000) +[2619107.472] {Default Queue} wl_pointer#3305.motion(187310737, 20.19921875, 15.00000000) +[2619107.480] {Default Queue} wl_pointer#3337.motion(187310737, 20.19921875, 15.00000000) +[2619107.488] {Default Queue} wl_pointer#3369.motion(187310737, 20.19921875, 15.00000000) +[2619107.492] {Default Queue} wl_pointer#3401.motion(187310737, 20.19921875, 15.00000000) +[2619107.496] {Default Queue} wl_pointer#3433.motion(187310737, 20.19921875, 15.00000000) +[2619107.501] {Default Queue} wl_pointer#3465.motion(187310737, 20.19921875, 15.00000000) +[2619107.505] {Default Queue} wl_pointer#3497.motion(187310737, 20.19921875, 15.00000000) +[2619107.509] {Default Queue} wl_pointer#3529.motion(187310737, 20.19921875, 15.00000000) +[2619107.513] {Default Queue} wl_pointer#3561.motion(187310737, 20.19921875, 15.00000000) +[2619107.517] {Default Queue} wl_pointer#3593.motion(187310737, 20.19921875, 15.00000000) +[2619107.521] {Default Queue} wl_pointer#3625.motion(187310737, 20.19921875, 15.00000000) +[2619107.525] {Default Queue} wl_pointer#3657.motion(187310737, 20.19921875, 15.00000000) +[2619107.529] {Default Queue} wl_pointer#3695.motion(187310737, 20.19921875, 15.00000000) +[2619107.537] {Default Queue} -> wl_region#2783.subtract(0, 0, 370, 408) +[2619107.541] {Default Queue} -> wl_region#2783.add(-368, -386, 370, 388) +[2619107.545] {Default Queue} -> wl_surface#2759.set_opaque_region(wl_region#2784) +[2619107.549] {Default Queue} -> wl_surface#2759.set_input_region(wl_region#2783) +[2619107.555] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) +[2619107.559] {Default Queue} -> wl_surface#2759.commit() +[2619107.563] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) +[2619107.567] {Default Queue} -> wl_surface#2759.commit() +[2619107.573] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) +[2619107.577] {Default Queue} -> wl_surface#2759.commit() +[2619107.581] {Default Queue} -> wl_region#2719.subtract(0, 0, 109, 161) +[2619107.587] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 403) +[2619107.591] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 403) +[2619107.595] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2619107.598] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2619107.687] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 403) +[2619107.691] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 403) +[2619107.695] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2619107.699] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2619107.706] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) +[2619107.710] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) +[2619107.771] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 403) +[2619107.775] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 403) +[2619107.779] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) +[2619107.783] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) +[2619107.788] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) +[2619107.792] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) +[2619107.797] {Default Queue} -> wl_region#2783.subtract(0, 0, 370, 408) +[2619107.801] {Default Queue} -> wl_region#2783.add(-368, -386, 370, 388) +[2619107.805] {Default Queue} -> wl_surface#2759.set_opaque_region(wl_region#2784) +[2619107.809] {Default Queue} -> wl_surface#2759.set_input_region(wl_region#2783) +[2619107.813] {Default Queue} -> wl_surface#2695.damage(0, 0, 109, 161) +[2619107.817] {Default Queue} -> wl_region#2719.subtract(0, 0, 477, 547) +[2619107.821] {Default Queue} -> wl_region#2719.add(-365, -383, 474, 544) +[2619107.825] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) +[2619107.829] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) +[2619107.833] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) +[2619107.836] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) +[2619107.840] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) +[2619107.847] {Default Queue} -> wl_surface#2695.damage(0, 0, 109, 161) +[2619107.868] {Default Queue} -> wl_buffer#3732.destroy() +[2619107.873] {Default Queue} -> wl_buffer#3733.destroy() +[2619107.877] {Default Queue} -> wl_shm_pool#3730.destroy() +[2619107.881] {Default Queue} -> wl_shm_pool#3731.destroy() +[2619107.959] {Default Queue} -> wl_shm#2703.create_pool(new id wl_shm_pool#3707, fd 581, 70196) +[2619107.965] {Default Queue} -> wl_shm#2703.create_pool(new id wl_shm_pool#1598, fd 582, 70196) +[2619107.969] {Default Queue} -> wl_shm_pool#3707.create_buffer(new id wl_buffer#3709, 0, 109, 161, 436, 0) +[2619107.974] {Default Queue} -> wl_shm_pool#1598.create_buffer(new id wl_buffer#3706, 0, 109, 161, 436, 0) +[2619107.995] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3709, 0, 0) +[2619107.999] {Default Queue} -> wl_surface#2695.commit() +[2619108.019] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3709, 0, 0) +[2619108.024] {Default Queue} -> wl_surface#2695.commit() +[2619108.032] {Default Queue} -> wl_region#2719.subtract(0, 0, 477, 547) +[2619108.036] {Default Queue} -> wl_region#2719.add(-365, -383, 474, 544) +[2619108.040] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) +[2619108.043] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) +[2619108.050] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3709, 0, 0) +[2619108.054] {Default Queue} -> wl_surface#2695.commit() +[2619108.061] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3709, 0, 0) +[2619108.065] {Default Queue} -> wl_surface#2695.commit() +[2619109.132] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3709, 0, 0) +[2619109.137] {Default Queue} -> wl_surface#2695.commit() +[2619109.144] {Default Queue} -> wl_region#2719.subtract(0, 0, 477, 547) +[2619109.148] {Default Queue} -> wl_region#2719.add(-365, -383, 474, 544) +[2619109.152] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) +[2619109.155] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) +[2619109.162] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3709, 0, 0) +[2619109.165] {Default Queue} -> wl_surface#2695.commit() +[2619109.170] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3709, 0, 0) +[2619109.174] {Default Queue} -> wl_surface#2695.commit() +[2619109.180] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3709, 0, 0) +[2619109.184] {Default Queue} -> wl_surface#2695.commit() +[2619109.199] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) +[2619109.203] {Default Queue} -> wl_surface#2663.commit() +[2619110.266] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) +[2619110.270] {Default Queue} -> wl_surface#2663.commit() +[2619110.284] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) +[2619110.288] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) +[2619110.292] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2619110.296] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2619110.304] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) +[2619110.308] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) +[2619110.311] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2619110.315] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2619110.321] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) +[2619110.325] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) +[2619110.329] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2619110.332] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2619110.338] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) +[2619110.342] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) +[2619110.345] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2619110.349] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2619110.355] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) +[2619110.359] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) +[2619110.367] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) +[2619110.373] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) +[2619110.380] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) +[2619110.385] {Default Queue} -> wl_surface#2663.commit() +[2619110.390] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) +[2619110.394] {Default Queue} -> wl_surface#2663.commit() +[2619110.400] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) +[2619110.404] {Default Queue} -> wl_surface#2663.commit() +[2619110.410] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) +[2619110.414] {Default Queue} -> wl_surface#2887.commit() +[2619111.474] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) +[2619111.479] {Default Queue} -> wl_surface#2887.commit() +[2619111.487] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 403) +[2619111.491] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 403) +[2619111.495] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2619111.499] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2619111.594] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 403) +[2619111.599] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 403) +[2619111.603] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2619111.606] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2619111.613] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) +[2619111.617] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) +[2619111.684] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 403) +[2619111.688] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 403) +[2619111.692] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2619111.696] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2619111.701] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) +[2619111.705] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) +[2619111.709] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) +[2619111.713] {Default Queue} -> wl_surface#2887.commit() +[2619111.717] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) +[2619111.721] {Default Queue} -> wl_surface#2887.commit() +[2619111.726] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) +[2619111.730] {Default Queue} -> wl_surface#2887.commit() +[2619111.734] {Default Queue} -> wl_region#2975.subtract(0, 0, 2, 2) +[2619111.739] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 388) +[2619111.742] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 387) +[2619111.746] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2619111.750] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2619111.754] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) +[2619111.766] {Default Queue} -> wl_buffer#2973.destroy() +[2619111.771] {Default Queue} -> wl_buffer#2974.destroy() +[2619111.774] {Default Queue} -> wl_shm_pool#2971.destroy() +[2619111.778] {Default Queue} -> wl_shm_pool#2972.destroy() +[2619111.818] {Default Queue} -> wl_shm#2959.create_pool(new id wl_shm_pool#3700, fd 575, 16) +[2619111.823] {Default Queue} -> wl_shm#2959.create_pool(new id wl_shm_pool#3701, fd 578, 16) +[2619111.827] {Default Queue} -> wl_shm_pool#3700.create_buffer(new id wl_buffer#3037, 0, 2, 2, 8, 0) +[2619111.832] {Default Queue} -> wl_shm_pool#3701.create_buffer(new id wl_buffer#3036, 0, 2, 2, 8, 0) +[2619111.838] {Default Queue} -> wl_surface#2951.attach(wl_buffer#3037, 0, 0) +[2619111.842] {Default Queue} -> wl_surface#2951.commit() +[2619111.847] {Default Queue} -> wl_surface#2951.attach(wl_buffer#3037, 0, 0) +[2619111.850] {Default Queue} -> wl_surface#2951.commit() +[2619111.858] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 408) +[2619111.863] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 407) +[2619111.867] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2619111.881] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2619111.890] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 408) +[2619111.895] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 407) +[2619111.898] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2619111.902] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2619111.908] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 408) +[2619111.912] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 407) +[2619111.916] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2619111.920] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2619111.924] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 408) +[2619111.928] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 407) +[2619111.932] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2619111.935] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2619111.940] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 408) +[2619111.944] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 407) +[2619111.948] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2619111.952] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2619111.956] {Default Queue} -> wl_surface#2951.attach(wl_buffer#3037, 0, 0) +[2619111.960] {Default Queue} -> wl_surface#2951.commit() +[2619111.978] {Display Queue} wl_display#1.delete_id(2494) +[2619111.984] {Display Queue} wl_display#1.delete_id(2493) +[2619111.987] {Display Queue} wl_display#1.delete_id(2492) +[2619111.991] {Display Queue} wl_display#1.delete_id(2491) +[2619111.995] {Display Queue} wl_display#1.delete_id(3712) +[2619111.998] {Display Queue} wl_display#1.delete_id(2813) +[2619112.002] {Display Queue} wl_display#1.delete_id(2814) +[2619112.006] {Display Queue} wl_display#1.delete_id(2811) +[2619112.009] {Display Queue} wl_display#1.delete_id(2812) +[2619112.013] {Default Queue} wl_pointer#24.motion(187310742, 19.80078125, 15.00000000) +[2619112.018] {Default Queue} wl_pointer#81.motion(187310742, 19.80078125, 15.00000000) +[2619112.023] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619112.027] {Default Queue} wl_pointer#105.motion(187310742, 19.80078125, 15.00000000) +[2619112.031] {Default Queue} wl_pointer#137.motion(187310742, 19.80078125, 15.00000000) +[2619112.035] {Default Queue} wl_pointer#169.motion(187310742, 19.80078125, 15.00000000) +[2619112.039] {Default Queue} wl_pointer#201.motion(187310742, 19.80078125, 15.00000000) +[2619112.043] {Default Queue} wl_pointer#233.motion(187310742, 19.80078125, 15.00000000) +[2619112.047] {Default Queue} wl_pointer#265.motion(187310742, 19.80078125, 15.00000000) +[2619112.051] {Default Queue} wl_pointer#297.motion(187310742, 19.80078125, 15.00000000) +[2619112.055] {Default Queue} wl_pointer#329.motion(187310742, 19.80078125, 15.00000000) +[2619112.059] {Default Queue} wl_pointer#361.motion(187310742, 19.80078125, 15.00000000) +[2619112.063] {Default Queue} wl_pointer#393.motion(187310742, 19.80078125, 15.00000000) +[2619112.067] {Default Queue} wl_pointer#425.motion(187310742, 19.80078125, 15.00000000) +[2619112.071] {Default Queue} wl_pointer#457.motion(187310742, 19.80078125, 15.00000000) +[2619112.074] {Default Queue} wl_pointer#489.motion(187310742, 19.80078125, 15.00000000) +[2619112.078] {Default Queue} wl_pointer#521.motion(187310742, 19.80078125, 15.00000000) +[2619112.082] {Default Queue} wl_pointer#553.motion(187310742, 19.80078125, 15.00000000) +[2619112.086] {Default Queue} wl_pointer#585.motion(187310742, 19.80078125, 15.00000000) +[2619112.090] {Default Queue} wl_pointer#617.motion(187310742, 19.80078125, 15.00000000) +[2619112.094] {Default Queue} wl_pointer#649.motion(187310742, 19.80078125, 15.00000000) +[2619112.098] {Default Queue} wl_pointer#681.motion(187310742, 19.80078125, 15.00000000) +[2619112.102] {Default Queue} wl_pointer#713.motion(187310742, 19.80078125, 15.00000000) +[2619112.109] {Default Queue} wl_pointer#745.motion(187310742, 19.80078125, 15.00000000) +[2619112.114] {Default Queue} wl_pointer#777.motion(187310742, 19.80078125, 15.00000000) +[2619112.118] {Default Queue} wl_pointer#809.motion(187310742, 19.80078125, 15.00000000) +[2619112.122] {Default Queue} wl_pointer#841.motion(187310742, 19.80078125, 15.00000000) +[2619112.126] {Default Queue} wl_pointer#873.motion(187310742, 19.80078125, 15.00000000) +[2619112.130] {Default Queue} wl_pointer#905.motion(187310742, 19.80078125, 15.00000000) +[2619112.134] {Default Queue} wl_pointer#937.motion(187310742, 19.80078125, 15.00000000) +[2619112.138] {Default Queue} wl_pointer#969.motion(187310742, 19.80078125, 15.00000000) +[2619112.142] {Default Queue} wl_pointer#1001.motion(187310742, 19.80078125, 15.00000000) +[2619112.146] {Default Queue} wl_pointer#1033.motion(187310742, 19.80078125, 15.00000000) +[2619112.150] {Default Queue} wl_pointer#1065.motion(187310742, 19.80078125, 15.00000000) +[2619112.154] {Default Queue} wl_pointer#1097.motion(187310742, 19.80078125, 15.00000000) +[2619112.158] {Default Queue} wl_pointer#1129.motion(187310742, 19.80078125, 15.00000000) +[2619112.162] {Default Queue} wl_pointer#1161.motion(187310742, 19.80078125, 15.00000000) +[2619112.165] {Default Queue} wl_pointer#1193.motion(187310742, 19.80078125, 15.00000000) +[2619112.169] {Default Queue} wl_pointer#1225.motion(187310742, 19.80078125, 15.00000000) +[2619112.173] {Default Queue} wl_pointer#1257.motion(187310742, 19.80078125, 15.00000000) +[2619112.177] {Default Queue} wl_pointer#1289.motion(187310742, 19.80078125, 15.00000000) +[2619112.181] {Default Queue} wl_pointer#1321.motion(187310742, 19.80078125, 15.00000000) +[2619112.185] {Default Queue} wl_pointer#1353.motion(187310742, 19.80078125, 15.00000000) +[2619112.189] {Default Queue} wl_pointer#1385.motion(187310742, 19.80078125, 15.00000000) +[2619112.193] {Default Queue} wl_pointer#1417.motion(187310742, 19.80078125, 15.00000000) +[2619112.197] {Default Queue} wl_pointer#1449.motion(187310742, 19.80078125, 15.00000000) +[2619112.201] {Default Queue} wl_pointer#1481.motion(187310742, 19.80078125, 15.00000000) +[2619112.205] {Default Queue} wl_pointer#1513.motion(187310742, 19.80078125, 15.00000000) +[2619112.209] {Default Queue} wl_pointer#1545.motion(187310742, 19.80078125, 15.00000000) +[2619112.213] {Default Queue} wl_pointer#1577.motion(187310742, 19.80078125, 15.00000000) +[2619112.217] {Default Queue} wl_pointer#1609.motion(187310742, 19.80078125, 15.00000000) +[2619112.221] {Default Queue} wl_pointer#1641.motion(187310742, 19.80078125, 15.00000000) +[2619112.225] {Default Queue} wl_pointer#1673.motion(187310742, 19.80078125, 15.00000000) +[2619112.229] {Default Queue} wl_pointer#1705.motion(187310742, 19.80078125, 15.00000000) +[2619112.233] {Default Queue} wl_pointer#1737.motion(187310742, 19.80078125, 15.00000000) +[2619112.236] {Default Queue} wl_pointer#1762.motion(187310742, 19.80078125, 15.00000000) +[2619112.240] {Default Queue} wl_pointer#1801.motion(187310742, 19.80078125, 15.00000000) +[2619112.244] {Default Queue} wl_pointer#1833.motion(187310742, 19.80078125, 15.00000000) +[2619112.248] {Default Queue} wl_pointer#1865.motion(187310742, 19.80078125, 15.00000000) +[2619112.252] {Default Queue} wl_pointer#1897.motion(187310742, 19.80078125, 15.00000000) +[2619112.256] {Default Queue} wl_pointer#1929.motion(187310742, 19.80078125, 15.00000000) +[2619112.260] {Default Queue} wl_pointer#1961.motion(187310742, 19.80078125, 15.00000000) +[2619112.264] {Default Queue} wl_pointer#1993.motion(187310742, 19.80078125, 15.00000000) +[2619112.268] {Default Queue} wl_pointer#2025.motion(187310742, 19.80078125, 15.00000000) +[2619112.272] {Default Queue} wl_pointer#2057.motion(187310742, 19.80078125, 15.00000000) +[2619112.276] {Default Queue} wl_pointer#2089.motion(187310742, 19.80078125, 15.00000000) +[2619112.280] {Default Queue} wl_pointer#2121.motion(187310742, 19.80078125, 15.00000000) +[2619112.284] {Default Queue} wl_pointer#2153.motion(187310742, 19.80078125, 15.00000000) +[2619112.288] {Default Queue} wl_pointer#2185.motion(187310742, 19.80078125, 15.00000000) +[2619112.295] {Default Queue} wl_pointer#2217.motion(187310742, 19.80078125, 15.00000000) +[2619112.300] {Default Queue} wl_pointer#2249.motion(187310742, 19.80078125, 15.00000000) +[2619112.304] {Default Queue} wl_pointer#2281.motion(187310742, 19.80078125, 15.00000000) +[2619112.308] {Default Queue} wl_pointer#2313.motion(187310742, 19.80078125, 15.00000000) +[2619112.312] {Default Queue} wl_pointer#2345.motion(187310742, 19.80078125, 15.00000000) +[2619112.316] {Default Queue} wl_pointer#2377.motion(187310742, 19.80078125, 15.00000000) +[2619112.320] {Default Queue} wl_pointer#2409.motion(187310742, 19.80078125, 15.00000000) +[2619112.324] {Default Queue} wl_pointer#2441.motion(187310742, 19.80078125, 15.00000000) +[2619112.328] {Default Queue} wl_pointer#2473.motion(187310742, 19.80078125, 15.00000000) +[2619112.332] {Default Queue} wl_pointer#2498.motion(187310742, 19.80078125, 15.00000000) +[2619112.343] {Default Queue} -> wl_buffer#3729.destroy() +[2619112.348] {Default Queue} -> wl_buffer#3728.destroy() +[2619112.352] {Default Queue} -> wl_shm_pool#3727.destroy() +[2619112.356] {Default Queue} -> wl_shm_pool#3726.destroy() +[2619112.361] {Default Queue} -> wl_surface#3708.destroy() +[2619112.392] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2812, fd 581, 640) +[2619112.398] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2811, fd 582, 640) +[2619112.402] {Default Queue} -> wl_shm_pool#2812.create_buffer(new id wl_buffer#2814, 0, 10, 16, 40, 0) +[2619112.406] {Default Queue} -> wl_shm_pool#2811.create_buffer(new id wl_buffer#2813, 0, 10, 16, 40, 0) +[2619112.413] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3712) +[2619112.417] {Default Queue} -> wl_surface#3712.attach(wl_buffer#2814, 0, 0) +[2619112.421] {Default Queue} -> wl_surface#3712.commit() +[2619112.425] {Default Queue} -> wl_surface#3712.attach(wl_buffer#2814, 0, 0) +[2619112.429] {Default Queue} -> wl_surface#3712.commit() +[2619112.433] {Default Queue} wl_pointer#2537.motion(187310742, 19.80078125, 15.00000000) +[2619112.437] {Default Queue} wl_pointer#2569.motion(187310742, 19.80078125, 15.00000000) +[2619112.441] {Default Queue} wl_pointer#2601.motion(187310742, 19.80078125, 15.00000000) +[2619112.445] {Default Queue} wl_pointer#2633.motion(187310742, 19.80078125, 15.00000000) +[2619112.449] {Default Queue} wl_pointer#2665.motion(187310742, 19.80078125, 15.00000000) +[2619112.453] {Default Queue} wl_pointer#2697.motion(187310742, 19.80078125, 15.00000000) +[2619112.457] {Default Queue} wl_pointer#2729.motion(187310742, 19.80078125, 15.00000000) +[2619112.461] {Default Queue} wl_pointer#2761.motion(187310742, 19.80078125, 15.00000000) +[2619112.465] {Default Queue} wl_pointer#2793.motion(187310742, 19.80078125, 15.00000000) +[2619112.469] {Default Queue} wl_pointer#2825.motion(187310742, 19.80078125, 15.00000000) +[2619112.473] {Default Queue} wl_pointer#2857.motion(187310742, 19.80078125, 15.00000000) +[2619112.477] {Default Queue} wl_pointer#2889.motion(187310742, 19.80078125, 15.00000000) +[2619112.481] {Default Queue} wl_pointer#2921.motion(187310742, 19.80078125, 15.00000000) +[2619112.485] {Default Queue} wl_pointer#2953.motion(187310742, 19.80078125, 15.00000000) +[2619112.489] {Default Queue} wl_pointer#2985.motion(187310742, 19.80078125, 15.00000000) +[2619112.493] {Default Queue} wl_pointer#3017.motion(187310742, 19.80078125, 15.00000000) +[2619112.497] {Default Queue} wl_pointer#3049.motion(187310742, 19.80078125, 15.00000000) +[2619112.501] {Default Queue} wl_pointer#3081.motion(187310742, 19.80078125, 15.00000000) +[2619112.505] {Default Queue} wl_pointer#3113.motion(187310742, 19.80078125, 15.00000000) +[2619112.509] {Default Queue} wl_pointer#3145.motion(187310742, 19.80078125, 15.00000000) +[2619112.513] {Default Queue} wl_pointer#3177.motion(187310742, 19.80078125, 15.00000000) +[2619112.517] {Default Queue} wl_pointer#3209.motion(187310742, 19.80078125, 15.00000000) +[2619112.521] {Default Queue} wl_pointer#3241.motion(187310742, 19.80078125, 15.00000000) +[2619112.525] {Default Queue} wl_pointer#3273.motion(187310742, 19.80078125, 15.00000000) +[2619112.533] {Default Queue} wl_pointer#3305.motion(187310742, 19.80078125, 15.00000000) +[2619112.539] {Default Queue} wl_pointer#3337.motion(187310742, 19.80078125, 15.00000000) +[2619112.543] {Default Queue} wl_pointer#3369.motion(187310742, 19.80078125, 15.00000000) +[2619112.547] {Default Queue} wl_pointer#3401.motion(187310742, 19.80078125, 15.00000000) +[2619112.551] {Default Queue} wl_pointer#3433.motion(187310742, 19.80078125, 15.00000000) +[2619112.555] {Default Queue} wl_pointer#3465.motion(187310742, 19.80078125, 15.00000000) +[2619112.559] {Default Queue} wl_pointer#3497.motion(187310742, 19.80078125, 15.00000000) +[2619112.563] {Default Queue} wl_pointer#3529.motion(187310742, 19.80078125, 15.00000000) +[2619112.567] {Default Queue} wl_pointer#3561.motion(187310742, 19.80078125, 15.00000000) +[2619112.571] {Default Queue} wl_pointer#3593.motion(187310742, 19.80078125, 15.00000000) +[2619112.575] {Default Queue} wl_pointer#3625.motion(187310742, 19.80078125, 15.00000000) +[2619112.579] {Default Queue} wl_pointer#3657.motion(187310742, 19.80078125, 15.00000000) +[2619112.583] {Default Queue} wl_pointer#3695.motion(187310742, 19.80078125, 15.00000000) +[2619112.587] {Default Queue} -> wl_surface#2951.attach(wl_buffer#3037, 0, 0) +[2619112.591] {Default Queue} -> wl_surface#2951.commit() +[2619113.654] {Default Queue} -> wl_surface#2951.attach(wl_buffer#3037, 0, 0) +[2619113.659] {Default Queue} -> wl_surface#2951.commit() +[2619113.666] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 408) +[2619113.670] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 407) +[2619113.674] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2619113.678] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2619113.684] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 408) +[2619113.688] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 407) +[2619113.692] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2619113.696] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2619113.701] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 408) +[2619113.705] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 407) +[2619113.709] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2619113.713] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2619113.717] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 408) +[2619113.721] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 407) +[2619113.725] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2619113.728] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2619113.733] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 408) +[2619113.737] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 407) +[2619113.740] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) +[2619113.744] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) +[2619113.749] {Default Queue} -> wl_surface#2951.attach(wl_buffer#3037, 0, 0) +[2619113.753] {Default Queue} -> wl_surface#2951.commit() +[2619113.756] {Default Queue} -> wl_surface#2951.attach(wl_buffer#3037, 0, 0) +[2619113.760] {Default Queue} -> wl_surface#2951.commit() +[2619113.766] {Default Queue} -> wl_surface#2951.attach(wl_buffer#3037, 0, 0) +[2619113.770] {Default Queue} -> wl_surface#2951.commit() +[2619113.775] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) +[2619113.779] {Default Queue} -> wl_surface#2919.commit() +[2619114.840] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) +[2619114.844] {Default Queue} -> wl_surface#2919.commit() +[2619114.850] {Default Queue} -> wl_region#2943.subtract(0, 0, 485, 408) +[2619114.854] {Default Queue} -> wl_region#2943.add(-483, -386, 485, 388) +[2619114.858] {Default Queue} -> wl_surface#2919.set_opaque_region(wl_region#2944) +[2619114.862] {Default Queue} -> wl_surface#2919.set_input_region(wl_region#2943) +[2619114.870] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) +[2619114.878] {Default Queue} -> wl_surface#2919.commit() +[2619114.882] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) +[2619114.886] {Default Queue} -> wl_surface#2919.commit() +[2619114.891] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) +[2619114.895] {Default Queue} -> wl_surface#2919.commit() +[2619114.899] {Default Queue} -> wl_region#2879.subtract(0, 0, 109, 161) +[2619114.905] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 403) +[2619114.909] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 403) +[2619114.913] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2619114.916] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2619115.000] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 403) +[2619115.004] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 403) +[2619115.008] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2619115.012] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2619115.019] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) +[2619115.023] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) +[2619115.088] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 403) +[2619115.093] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 403) +[2619115.096] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) +[2619115.100] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) +[2619115.105] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) +[2619115.109] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) +[2619115.115] {Default Queue} -> wl_region#2943.subtract(0, 0, 485, 408) +[2619115.119] {Default Queue} -> wl_region#2943.add(-483, -386, 485, 388) +[2619115.122] {Default Queue} -> wl_surface#2919.set_opaque_region(wl_region#2944) +[2619115.126] {Default Queue} -> wl_surface#2919.set_input_region(wl_region#2943) +[2619115.130] {Default Queue} -> wl_surface#2855.damage(0, 0, 109, 161) +[2619115.134] {Default Queue} -> wl_region#2879.subtract(0, 0, 592, 547) +[2619115.138] {Default Queue} -> wl_region#2879.add(-480, -383, 589, 544) +[2619115.142] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) +[2619115.146] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) +[2619115.149] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) +[2619115.153] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) +[2619115.157] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) +[2619115.161] {Default Queue} -> wl_surface#2855.damage(0, 0, 109, 161) +[2619115.174] {Default Queue} -> wl_buffer#3736.destroy() +[2619115.179] {Default Queue} -> wl_buffer#3737.destroy() +[2619115.183] {Default Queue} -> wl_shm_pool#3734.destroy() +[2619115.186] {Default Queue} -> wl_shm_pool#3735.destroy() +[2619115.260] {Default Queue} -> wl_shm#2863.create_pool(new id wl_shm_pool#2491, fd 575, 70196) +[2619115.265] {Default Queue} -> wl_shm#2863.create_pool(new id wl_shm_pool#2492, fd 578, 70196) +[2619115.270] {Default Queue} -> wl_shm_pool#2491.create_buffer(new id wl_buffer#2493, 0, 109, 161, 436, 0) +[2619115.274] {Default Queue} -> wl_shm_pool#2492.create_buffer(new id wl_buffer#2494, 0, 109, 161, 436, 0) +[2619115.295] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2493, 0, 0) +[2619115.299] {Default Queue} -> wl_surface#2855.commit() +[2619115.319] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2493, 0, 0) +[2619115.324] {Default Queue} -> wl_surface#2855.commit() +[2619115.331] {Default Queue} -> wl_region#2879.subtract(0, 0, 592, 547) +[2619115.335] {Default Queue} -> wl_region#2879.add(-480, -383, 589, 544) +[2619115.339] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) +[2619115.343] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) +[2619115.349] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2493, 0, 0) +[2619115.353] {Default Queue} -> wl_surface#2855.commit() +[2619115.364] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2493, 0, 0) +[2619115.370] {Default Queue} -> wl_surface#2855.commit() +[2619116.435] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2493, 0, 0) +[2619116.439] {Default Queue} -> wl_surface#2855.commit() +[2619116.446] {Default Queue} -> wl_region#2879.subtract(0, 0, 592, 547) +[2619116.452] {Default Queue} -> wl_region#2879.add(-480, -383, 589, 544) +[2619116.456] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) +[2619116.459] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) +[2619116.466] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2493, 0, 0) +[2619116.470] {Default Queue} -> wl_surface#2855.commit() +[2619116.474] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2493, 0, 0) +[2619116.478] {Default Queue} -> wl_surface#2855.commit() +[2619116.484] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2493, 0, 0) +[2619116.488] {Default Queue} -> wl_surface#2855.commit() +[2619116.499] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) +[2619116.503] {Default Queue} -> wl_surface#2823.commit() +[2619117.047] {Display Queue} wl_display#1.delete_id(2654) +[2619117.052] {Display Queue} wl_display#1.delete_id(2653) +[2619117.056] {Display Queue} wl_display#1.delete_id(2652) +[2619117.059] {Display Queue} wl_display#1.delete_id(2651) +[2619117.063] {Display Queue} wl_display#1.delete_id(3723) +[2619117.067] {Display Queue} wl_display#1.delete_id(3732) +[2619117.070] {Display Queue} wl_display#1.delete_id(3733) +[2619117.074] {Display Queue} wl_display#1.delete_id(3730) +[2619117.078] {Display Queue} wl_display#1.delete_id(3731) +[2619117.081] {Default Queue} wl_pointer#24.motion(187310747, 19.80078125, 15.39843750) +[2619117.086] {Default Queue} wl_pointer#81.motion(187310747, 19.80078125, 15.39843750) +[2619117.091] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619117.095] {Default Queue} wl_pointer#105.motion(187310747, 19.80078125, 15.39843750) +[2619117.099] {Default Queue} wl_pointer#137.motion(187310747, 19.80078125, 15.39843750) +[2619117.103] {Default Queue} wl_pointer#169.motion(187310747, 19.80078125, 15.39843750) +[2619117.107] {Default Queue} wl_pointer#201.motion(187310747, 19.80078125, 15.39843750) +[2619117.111] {Default Queue} wl_pointer#233.motion(187310747, 19.80078125, 15.39843750) +[2619117.115] {Default Queue} wl_pointer#265.motion(187310747, 19.80078125, 15.39843750) +[2619117.119] {Default Queue} wl_pointer#297.motion(187310747, 19.80078125, 15.39843750) +[2619117.123] {Default Queue} wl_pointer#329.motion(187310747, 19.80078125, 15.39843750) +[2619117.127] {Default Queue} wl_pointer#361.motion(187310747, 19.80078125, 15.39843750) +[2619117.130] {Default Queue} wl_pointer#393.motion(187310747, 19.80078125, 15.39843750) +[2619117.134] {Default Queue} wl_pointer#425.motion(187310747, 19.80078125, 15.39843750) +[2619117.138] {Default Queue} wl_pointer#457.motion(187310747, 19.80078125, 15.39843750) +[2619117.142] {Default Queue} wl_pointer#489.motion(187310747, 19.80078125, 15.39843750) +[2619117.146] {Default Queue} wl_pointer#521.motion(187310747, 19.80078125, 15.39843750) +[2619117.150] {Default Queue} wl_pointer#553.motion(187310747, 19.80078125, 15.39843750) +[2619117.154] {Default Queue} wl_pointer#585.motion(187310747, 19.80078125, 15.39843750) +[2619117.158] {Default Queue} wl_pointer#617.motion(187310747, 19.80078125, 15.39843750) +[2619117.162] {Default Queue} wl_pointer#649.motion(187310747, 19.80078125, 15.39843750) +[2619117.166] {Default Queue} wl_pointer#681.motion(187310747, 19.80078125, 15.39843750) +[2619117.170] {Default Queue} wl_pointer#713.motion(187310747, 19.80078125, 15.39843750) +[2619117.174] {Default Queue} wl_pointer#745.motion(187310747, 19.80078125, 15.39843750) +[2619117.178] {Default Queue} wl_pointer#777.motion(187310747, 19.80078125, 15.39843750) +[2619117.182] {Default Queue} wl_pointer#809.motion(187310747, 19.80078125, 15.39843750) +[2619117.186] {Default Queue} wl_pointer#841.motion(187310747, 19.80078125, 15.39843750) +[2619117.190] {Default Queue} wl_pointer#873.motion(187310747, 19.80078125, 15.39843750) +[2619117.197] {Default Queue} wl_pointer#905.motion(187310747, 19.80078125, 15.39843750) +[2619117.202] {Default Queue} wl_pointer#937.motion(187310747, 19.80078125, 15.39843750) +[2619117.206] {Default Queue} wl_pointer#969.motion(187310747, 19.80078125, 15.39843750) +[2619117.210] {Default Queue} wl_pointer#1001.motion(187310747, 19.80078125, 15.39843750) +[2619117.214] {Default Queue} wl_pointer#1033.motion(187310747, 19.80078125, 15.39843750) +[2619117.218] {Default Queue} wl_pointer#1065.motion(187310747, 19.80078125, 15.39843750) +[2619117.222] {Default Queue} wl_pointer#1097.motion(187310747, 19.80078125, 15.39843750) +[2619117.226] {Default Queue} wl_pointer#1129.motion(187310747, 19.80078125, 15.39843750) +[2619117.230] {Default Queue} wl_pointer#1161.motion(187310747, 19.80078125, 15.39843750) +[2619117.234] {Default Queue} wl_pointer#1193.motion(187310747, 19.80078125, 15.39843750) +[2619117.238] {Default Queue} wl_pointer#1225.motion(187310747, 19.80078125, 15.39843750) +[2619117.242] {Default Queue} wl_pointer#1257.motion(187310747, 19.80078125, 15.39843750) +[2619117.246] {Default Queue} wl_pointer#1289.motion(187310747, 19.80078125, 15.39843750) +[2619117.250] {Default Queue} wl_pointer#1321.motion(187310747, 19.80078125, 15.39843750) +[2619117.253] {Default Queue} wl_pointer#1353.motion(187310747, 19.80078125, 15.39843750) +[2619117.257] {Default Queue} wl_pointer#1385.motion(187310747, 19.80078125, 15.39843750) +[2619117.261] {Default Queue} wl_pointer#1417.motion(187310747, 19.80078125, 15.39843750) +[2619117.265] {Default Queue} wl_pointer#1449.motion(187310747, 19.80078125, 15.39843750) +[2619117.269] {Default Queue} wl_pointer#1481.motion(187310747, 19.80078125, 15.39843750) +[2619117.273] {Default Queue} wl_pointer#1513.motion(187310747, 19.80078125, 15.39843750) +[2619117.277] {Default Queue} wl_pointer#1545.motion(187310747, 19.80078125, 15.39843750) +[2619117.281] {Default Queue} wl_pointer#1577.motion(187310747, 19.80078125, 15.39843750) +[2619117.285] {Default Queue} wl_pointer#1609.motion(187310747, 19.80078125, 15.39843750) +[2619117.289] {Default Queue} wl_pointer#1641.motion(187310747, 19.80078125, 15.39843750) +[2619117.293] {Default Queue} wl_pointer#1673.motion(187310747, 19.80078125, 15.39843750) +[2619117.296] {Default Queue} wl_pointer#1705.motion(187310747, 19.80078125, 15.39843750) +[2619117.300] {Default Queue} wl_pointer#1737.motion(187310747, 19.80078125, 15.39843750) +[2619117.304] {Default Queue} wl_pointer#1762.motion(187310747, 19.80078125, 15.39843750) +[2619117.308] {Default Queue} wl_pointer#1801.motion(187310747, 19.80078125, 15.39843750) +[2619117.312] {Default Queue} wl_pointer#1833.motion(187310747, 19.80078125, 15.39843750) +[2619117.316] {Default Queue} wl_pointer#1865.motion(187310747, 19.80078125, 15.39843750) +[2619117.320] {Default Queue} wl_pointer#1897.motion(187310747, 19.80078125, 15.39843750) +[2619117.324] {Default Queue} wl_pointer#1929.motion(187310747, 19.80078125, 15.39843750) +[2619117.328] {Default Queue} wl_pointer#1961.motion(187310747, 19.80078125, 15.39843750) +[2619117.332] {Default Queue} wl_pointer#1993.motion(187310747, 19.80078125, 15.39843750) +[2619117.336] {Default Queue} wl_pointer#2025.motion(187310747, 19.80078125, 15.39843750) +[2619117.339] {Default Queue} wl_pointer#2057.motion(187310747, 19.80078125, 15.39843750) +[2619117.343] {Default Queue} wl_pointer#2089.motion(187310747, 19.80078125, 15.39843750) +[2619117.347] {Default Queue} wl_pointer#2121.motion(187310747, 19.80078125, 15.39843750) +[2619117.351] {Default Queue} wl_pointer#2153.motion(187310747, 19.80078125, 15.39843750) +[2619117.355] {Default Queue} wl_pointer#2185.motion(187310747, 19.80078125, 15.39843750) +[2619117.359] {Default Queue} wl_pointer#2217.motion(187310747, 19.80078125, 15.39843750) +[2619117.363] {Default Queue} wl_pointer#2249.motion(187310747, 19.80078125, 15.39843750) +[2619117.367] {Default Queue} wl_pointer#2281.motion(187310747, 19.80078125, 15.39843750) +[2619117.371] {Default Queue} wl_pointer#2313.motion(187310747, 19.80078125, 15.39843750) +[2619117.377] {Default Queue} wl_pointer#2345.motion(187310747, 19.80078125, 15.39843750) +[2619117.383] {Default Queue} wl_pointer#2377.motion(187310747, 19.80078125, 15.39843750) +[2619117.387] {Default Queue} wl_pointer#2409.motion(187310747, 19.80078125, 15.39843750) +[2619117.391] {Default Queue} wl_pointer#2441.motion(187310747, 19.80078125, 15.39843750) +[2619117.395] {Default Queue} wl_pointer#2473.motion(187310747, 19.80078125, 15.39843750) +[2619117.398] {Default Queue} wl_pointer#2498.motion(187310747, 19.80078125, 15.39843750) +[2619117.409] {Default Queue} -> wl_buffer#2814.destroy() +[2619117.413] {Default Queue} -> wl_buffer#2813.destroy() +[2619117.417] {Default Queue} -> wl_shm_pool#2812.destroy() +[2619117.420] {Default Queue} -> wl_shm_pool#2811.destroy() +[2619117.425] {Default Queue} -> wl_surface#3712.destroy() +[2619117.457] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3731, fd 575, 640) +[2619117.463] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3730, fd 578, 640) +[2619117.467] {Default Queue} -> wl_shm_pool#3731.create_buffer(new id wl_buffer#3733, 0, 10, 16, 40, 0) +[2619117.472] {Default Queue} -> wl_shm_pool#3730.create_buffer(new id wl_buffer#3732, 0, 10, 16, 40, 0) +[2619117.478] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3723) +[2619117.482] {Default Queue} -> wl_surface#3723.attach(wl_buffer#3733, 0, 0) +[2619117.486] {Default Queue} -> wl_surface#3723.commit() +[2619117.491] {Default Queue} -> wl_surface#3723.attach(wl_buffer#3733, 0, 0) +[2619117.495] {Default Queue} -> wl_surface#3723.commit() +[2619117.499] {Default Queue} wl_pointer#2537.motion(187310747, 19.80078125, 15.39843750) +[2619117.503] {Default Queue} wl_pointer#2569.motion(187310747, 19.80078125, 15.39843750) +[2619117.507] {Default Queue} wl_pointer#2601.motion(187310747, 19.80078125, 15.39843750) +[2619117.511] {Default Queue} wl_pointer#2633.motion(187310747, 19.80078125, 15.39843750) +[2619117.515] {Default Queue} wl_pointer#2665.motion(187310747, 19.80078125, 15.39843750) +[2619117.519] {Default Queue} wl_pointer#2697.motion(187310747, 19.80078125, 15.39843750) +[2619117.523] {Default Queue} wl_pointer#2729.motion(187310747, 19.80078125, 15.39843750) +[2619117.526] {Default Queue} wl_pointer#2761.motion(187310747, 19.80078125, 15.39843750) +[2619117.530] {Default Queue} wl_pointer#2793.motion(187310747, 19.80078125, 15.39843750) +[2619117.534] {Default Queue} wl_pointer#2825.motion(187310747, 19.80078125, 15.39843750) +[2619117.538] {Default Queue} wl_pointer#2857.motion(187310747, 19.80078125, 15.39843750) +[2619117.542] {Default Queue} wl_pointer#2889.motion(187310747, 19.80078125, 15.39843750) +[2619117.546] {Default Queue} wl_pointer#2921.motion(187310747, 19.80078125, 15.39843750) +[2619117.550] {Default Queue} wl_pointer#2953.motion(187310747, 19.80078125, 15.39843750) +[2619117.554] {Default Queue} wl_pointer#2985.motion(187310747, 19.80078125, 15.39843750) +[2619117.558] {Default Queue} wl_pointer#3017.motion(187310747, 19.80078125, 15.39843750) +[2619117.562] {Default Queue} wl_pointer#3049.motion(187310747, 19.80078125, 15.39843750) +[2619117.566] {Default Queue} wl_pointer#3081.motion(187310747, 19.80078125, 15.39843750) +[2619117.570] {Default Queue} wl_pointer#3113.motion(187310747, 19.80078125, 15.39843750) +[2619117.574] {Default Queue} wl_pointer#3145.motion(187310747, 19.80078125, 15.39843750) +[2619117.578] {Default Queue} wl_pointer#3177.motion(187310747, 19.80078125, 15.39843750) +[2619117.582] {Default Queue} wl_pointer#3209.motion(187310747, 19.80078125, 15.39843750) +[2619117.586] {Default Queue} wl_pointer#3241.motion(187310747, 19.80078125, 15.39843750) +[2619117.590] {Default Queue} wl_pointer#3273.motion(187310747, 19.80078125, 15.39843750) +[2619117.594] {Default Queue} wl_pointer#3305.motion(187310747, 19.80078125, 15.39843750) +[2619117.598] {Default Queue} wl_pointer#3337.motion(187310747, 19.80078125, 15.39843750) +[2619117.602] {Default Queue} wl_pointer#3369.motion(187310747, 19.80078125, 15.39843750) +[2619117.606] {Default Queue} wl_pointer#3401.motion(187310747, 19.80078125, 15.39843750) +[2619117.613] {Default Queue} wl_pointer#3433.motion(187310747, 19.80078125, 15.39843750) +[2619117.619] {Default Queue} wl_pointer#3465.motion(187310747, 19.80078125, 15.39843750) +[2619117.623] {Default Queue} wl_pointer#3497.motion(187310747, 19.80078125, 15.39843750) +[2619117.627] {Default Queue} wl_pointer#3529.motion(187310747, 19.80078125, 15.39843750) +[2619117.631] {Default Queue} wl_pointer#3561.motion(187310747, 19.80078125, 15.39843750) +[2619117.635] {Default Queue} wl_pointer#3593.motion(187310747, 19.80078125, 15.39843750) +[2619117.639] {Default Queue} wl_pointer#3625.motion(187310747, 19.80078125, 15.39843750) +[2619117.643] {Default Queue} wl_pointer#3657.motion(187310747, 19.80078125, 15.39843750) +[2619117.647] {Default Queue} wl_pointer#3695.motion(187310747, 19.80078125, 15.39843750) +[2619117.662] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) +[2619117.667] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) +[2619117.671] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2619117.674] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2619117.682] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) +[2619117.686] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) +[2619117.689] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2619117.693] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2619117.699] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) +[2619117.703] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) +[2619117.706] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2619117.710] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2619117.715] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) +[2619117.719] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) +[2619117.723] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2619117.727] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2619117.733] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) +[2619117.737] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) +[2619117.741] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) +[2619117.744] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) +[2619117.751] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) +[2619117.755] {Default Queue} -> wl_surface#2823.commit() +[2619117.760] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) +[2619117.764] {Default Queue} -> wl_surface#2823.commit() +[2619117.770] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) +[2619117.774] {Default Queue} -> wl_surface#2823.commit() +[2619117.812] {Default Queue} -> wl_surface#2087.attach(wl_buffer#701, 0, 0) +[2619117.817] {Default Queue} -> wl_surface#2087.commit() +[2619117.824] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) +[2619117.828] {Default Queue} -> wl_surface#3079.commit() +[2619118.867] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) +[2619118.873] {Default Queue} -> wl_surface#3079.commit() +[2619118.886] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 570) +[2619118.891] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 570) +[2619118.896] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2619118.899] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2619118.984] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 570) +[2619118.989] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 570) +[2619118.993] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2619118.997] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2619119.004] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) +[2619119.008] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) +[2619119.066] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 570) +[2619119.074] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 570) +[2619119.080] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2619119.084] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2619119.089] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) +[2619119.093] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) +[2619119.098] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) +[2619119.102] {Default Queue} -> wl_surface#3079.commit() +[2619119.106] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) +[2619119.110] {Default Queue} -> wl_surface#3079.commit() +[2619119.115] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) +[2619119.119] {Default Queue} -> wl_surface#3079.commit() +[2619119.125] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2619119.129] {Default Queue} -> wl_surface#3175.commit() +[2619120.190] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2619120.195] {Default Queue} -> wl_surface#3175.commit() +[2619120.202] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619120.206] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619120.210] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619120.214] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619120.222] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619120.226] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619120.230] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619120.233] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619120.239] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619120.243] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619120.247] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619120.251] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619120.255] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619120.259] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619120.263] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619120.267] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619120.272] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619120.276] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619120.280] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619120.283] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619120.290] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619120.294] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619120.297] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619120.301] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619120.305] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619120.309] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619120.313] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619120.317] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619120.321] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619120.325] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619120.329] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619120.333] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619120.337] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619120.341] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619120.345] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619120.349] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619120.358] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619120.363] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619120.367] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619120.374] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619120.380] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619120.384] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619120.387] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619120.391] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619120.396] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619120.400] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619120.404] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619120.408] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619120.413] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619120.417] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619120.420] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619120.424] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619120.428] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2619120.432] {Default Queue} -> wl_surface#3175.commit() +[2619120.436] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2619120.439] {Default Queue} -> wl_surface#3175.commit() +[2619120.445] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) +[2619120.449] {Default Queue} -> wl_surface#3175.commit() +[2619120.453] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) +[2619120.457] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) +[2619120.461] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) +[2619120.465] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.469] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619120.473] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2619120.485] {Default Queue} -> wl_buffer#3740.destroy() +[2619120.490] {Default Queue} -> wl_buffer#3741.destroy() +[2619120.493] {Default Queue} -> wl_shm_pool#3738.destroy() +[2619120.497] {Default Queue} -> wl_shm_pool#3739.destroy() +[2619120.537] {Default Queue} -> wl_shm#3215.create_pool(new id wl_shm_pool#2651, fd 575, 16) +[2619120.543] {Default Queue} -> wl_shm#3215.create_pool(new id wl_shm_pool#2652, fd 578, 16) +[2619120.547] {Default Queue} -> wl_shm_pool#2651.create_buffer(new id wl_buffer#2653, 0, 2, 2, 8, 0) +[2619120.551] {Default Queue} -> wl_shm_pool#2652.create_buffer(new id wl_buffer#2654, 0, 2, 2, 8, 0) +[2619120.558] {Default Queue} -> wl_surface#3207.attach(wl_buffer#2653, 0, 0) +[2619120.562] {Default Queue} -> wl_surface#3207.commit() +[2619120.566] {Default Queue} -> wl_surface#3207.attach(wl_buffer#2653, 0, 0) +[2619120.570] {Default Queue} -> wl_surface#3207.commit() +[2619120.579] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619120.583] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619120.587] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.591] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619120.597] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619120.601] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619120.605] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.608] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619120.613] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619120.617] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619120.621] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.624] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619120.629] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619120.633] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619120.637] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.640] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619120.647] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619120.654] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619120.660] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.663] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619120.673] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619120.677] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619120.681] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.684] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619120.689] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619120.693] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619120.697] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.700] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619120.705] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619120.709] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619120.713] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.716] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619120.721] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619120.725] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619120.728] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.732] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619120.737] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619120.741] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619120.744] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.748] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619120.761] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619120.765] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619120.769] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.773] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619120.780] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619120.784] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619120.788] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.791] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619120.798] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619120.802] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619120.806] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.809] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619120.815] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619120.820] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619120.823] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.827] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619120.831] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619120.835] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619120.839] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.843] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619120.848] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619120.852] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619120.856] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.859] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619120.868] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619120.872] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619120.876] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.880] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619120.884] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619120.890] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619120.896] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.899] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619120.905] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619120.909] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619120.913] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.917] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619120.921] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619120.925] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619120.929] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.932] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619120.937] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619120.940] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619120.944] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.948] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619120.952] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619120.956] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619120.960] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619120.964] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619121.001] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619121.005] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619121.009] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619121.013] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619121.019] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2619121.023] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2619121.033] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619121.037] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619121.041] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619121.045] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619121.051] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619121.054] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619121.058] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619121.062] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619121.093] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619121.098] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619121.102] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619121.105] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619121.110] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2619121.114] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2619121.121] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619121.126] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619121.129] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619121.133] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619121.139] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619121.143] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619121.147] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619121.151] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619121.155] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619121.159] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619121.163] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619121.166] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619121.171] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619121.175] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619121.181] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619121.187] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619121.191] {Default Queue} -> wl_surface#3207.attach(wl_buffer#2653, 0, 0) +[2619121.195] {Default Queue} -> wl_surface#3207.commit() +[2619121.201] {Default Queue} -> wl_surface#3207.attach(wl_buffer#2653, 0, 0) +[2619121.205] {Default Queue} -> wl_surface#3207.commit() +[2619122.269] {Default Queue} -> wl_surface#3207.attach(wl_buffer#2653, 0, 0) +[2619122.274] {Default Queue} -> wl_surface#3207.commit() +[2619122.281] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.285] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.289] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.293] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.298] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.302] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.306] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.310] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.314] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.318] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.322] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.326] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.330] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.334] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.338] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.342] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.348] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.352] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.356] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.359] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.368] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.372] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.376] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.380] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.384] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.388] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.392] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.396] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.400] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.404] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.408] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.411] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.416] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.420] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.423] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.427] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.431] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.435] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.439] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.443] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.454] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.458] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.462] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.466] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.471] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.478] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.484] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.487] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.494] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.498] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.502] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.505] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.511] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.515] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.519] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.523] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.527] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.531] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.535] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.538] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.543] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.547] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.550] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.554] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.558] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.562] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.566] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.570] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.574] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.578] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.582] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.585] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.591] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.595] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.599] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.602] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.607] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.610] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.614] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.618] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.622] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.626] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.630] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.634] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.638] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.642] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.646] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.650] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.679] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.684] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.687] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.691] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.696] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2619122.700] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2619122.710] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.715] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.718] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.722] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.730] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.736] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.740] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.743] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.769] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.774] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.778] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.781] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.786] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2619122.790] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2619122.797] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.803] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.806] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.810] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.815] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.819] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.823] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.826] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.831] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.835] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.838] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.842] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.846] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619122.850] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619122.854] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619122.858] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619122.863] {Default Queue} -> wl_surface#3207.attach(wl_buffer#2653, 0, 0) +[2619122.867] {Default Queue} -> wl_surface#3207.commit() +[2619122.874] {Default Queue} -> wl_surface#3207.attach(wl_buffer#2653, 0, 0) +[2619122.879] {Default Queue} -> wl_surface#3207.commit() +[2619122.885] {Default Queue} -> wl_surface#3207.attach(wl_buffer#2653, 0, 0) +[2619122.888] {Default Queue} -> wl_surface#3207.commit() +[2619122.892] {Default Queue} -> wl_region#3167.subtract(0, 0, 2, 2) +[2619122.898] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619122.902] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619122.906] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619122.909] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619122.915] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619122.919] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619122.923] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619122.927] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619122.932] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619122.936] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619122.940] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619122.943] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619122.948] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619122.952] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619122.955] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619122.959] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619122.964] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619122.968] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619122.972] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619122.975] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619122.984] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619122.989] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619122.993] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619122.997] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619123.001] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619123.005] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619123.009] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619123.013] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619123.017] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619123.021] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619123.025] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619123.029] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619123.033] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619123.037] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619123.041] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619123.044] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619123.053] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619123.057] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619123.061] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619123.065] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619123.069] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619123.073] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619123.077] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619123.080] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619123.085] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619123.089] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619123.093] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619123.097] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619123.102] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) +[2619123.106] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) +[2619123.109] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) +[2619123.113] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) +[2619123.120] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619123.124] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619123.128] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619123.131] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619123.136] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619123.140] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619123.144] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619123.147] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619123.152] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619123.156] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619123.159] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619123.163] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619123.167] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619123.171] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619123.175] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619123.179] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619123.185] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) +[2619123.189] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) +[2619123.193] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) +[2619123.196] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) +[2619123.200] {Default Queue} -> wl_region#3167.subtract(0, 0, 25, 555) +[2619123.205] {Default Queue} -> wl_region#3167.add(-23, -573, 24, 554) +[2619123.211] {Default Queue} -> wl_surface#3143.set_opaque_region(wl_region#3168) +[2619123.214] {Default Queue} -> wl_surface#3143.set_input_region(wl_region#3167) +[2619123.218] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2619123.222] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2619123.226] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) +[2619123.240] {Default Queue} -> wl_buffer#3165.destroy() +[2619123.245] {Default Queue} -> wl_buffer#3166.destroy() +[2619123.249] {Default Queue} -> wl_shm_pool#3163.destroy() +[2619123.253] {Default Queue} -> wl_shm_pool#3164.destroy() +[2619123.292] {Default Queue} -> wl_shm#3151.create_pool(new id wl_shm_pool#3720, fd 575, 16) +[2619123.297] {Default Queue} -> wl_shm#3151.create_pool(new id wl_shm_pool#3324, fd 578, 16) +[2619123.301] {Default Queue} -> wl_shm_pool#3720.create_buffer(new id wl_buffer#2075, 0, 2, 2, 8, 0) +[2619123.306] {Default Queue} -> wl_shm_pool#3324.create_buffer(new id wl_buffer#2076, 0, 2, 2, 8, 0) +[2619123.312] {Default Queue} -> wl_surface#3143.attach(wl_buffer#2075, 0, 0) +[2619123.316] {Default Queue} -> wl_surface#3143.commit() +[2619123.321] {Default Queue} -> wl_surface#3143.attach(wl_buffer#2075, 0, 0) +[2619123.325] {Default Queue} -> wl_surface#3143.commit() +[2619123.331] {Default Queue} -> wl_region#3167.subtract(0, 0, 25, 575) +[2619123.335] {Default Queue} -> wl_region#3167.add(-23, -573, 24, 574) +[2619123.339] {Default Queue} -> wl_surface#3143.set_opaque_region(wl_region#3168) +[2619123.343] {Default Queue} -> wl_surface#3143.set_input_region(wl_region#3167) +[2619123.347] {Default Queue} -> wl_surface#3143.attach(wl_buffer#2075, 0, 0) +[2619123.357] {Default Queue} -> wl_surface#3143.commit() +[2619123.363] {Default Queue} -> wl_surface#3143.attach(wl_buffer#2075, 0, 0) +[2619123.367] {Default Queue} -> wl_surface#3143.commit() +[2619124.428] {Default Queue} -> wl_surface#3143.attach(wl_buffer#2075, 0, 0) +[2619124.433] {Default Queue} -> wl_surface#3143.commit() +[2619124.438] {Default Queue} -> wl_region#3167.subtract(0, 0, 25, 575) +[2619124.442] {Default Queue} -> wl_region#3167.add(-23, -573, 24, 574) +[2619124.445] {Default Queue} -> wl_surface#3143.set_opaque_region(wl_region#3168) +[2619124.449] {Default Queue} -> wl_surface#3143.set_input_region(wl_region#3167) +[2619124.453] {Default Queue} -> wl_surface#3143.attach(wl_buffer#2075, 0, 0) +[2619124.457] {Default Queue} -> wl_surface#3143.commit() +[2619124.461] {Default Queue} -> wl_surface#3143.attach(wl_buffer#2075, 0, 0) +[2619124.465] {Default Queue} -> wl_surface#3143.commit() +[2619124.470] {Default Queue} -> wl_surface#3143.attach(wl_buffer#2075, 0, 0) +[2619124.474] {Default Queue} -> wl_surface#3143.commit() +[2619124.479] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) +[2619124.483] {Default Queue} -> wl_surface#3111.commit() +[2619125.542] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) +[2619125.547] {Default Queue} -> wl_surface#3111.commit() +[2619125.552] {Default Queue} -> wl_region#3135.subtract(0, 0, 25, 575) +[2619125.556] {Default Queue} -> wl_region#3135.add(-23, -553, 25, 555) +[2619125.560] {Default Queue} -> wl_surface#3111.set_opaque_region(wl_region#3136) +[2619125.564] {Default Queue} -> wl_surface#3111.set_input_region(wl_region#3135) +[2619125.568] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) +[2619125.572] {Default Queue} -> wl_surface#3111.commit() +[2619125.576] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) +[2619125.580] {Default Queue} -> wl_surface#3111.commit() +[2619125.585] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) +[2619125.589] {Default Queue} -> wl_surface#3111.commit() +[2619125.593] {Default Queue} -> wl_region#3071.subtract(0, 0, 109, 161) +[2619125.599] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 570) +[2619125.603] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 570) +[2619125.613] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2619125.619] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2619125.696] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 570) +[2619125.701] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 570) +[2619125.705] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2619125.708] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2619125.715] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) +[2619125.719] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) +[2619125.776] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 570) +[2619125.780] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 570) +[2619125.784] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) +[2619125.788] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) +[2619125.793] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) +[2619125.797] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) +[2619125.802] {Default Queue} -> wl_region#3135.subtract(0, 0, 25, 575) +[2619125.806] {Default Queue} -> wl_region#3135.add(-23, -553, 25, 555) +[2619125.810] {Default Queue} -> wl_surface#3111.set_opaque_region(wl_region#3136) +[2619125.814] {Default Queue} -> wl_surface#3111.set_input_region(wl_region#3135) +[2619125.819] {Default Queue} -> wl_surface#3047.damage(0, 0, 109, 161) +[2619125.823] {Default Queue} -> wl_region#3071.subtract(0, 0, 132, 714) +[2619125.826] {Default Queue} -> wl_region#3071.add(-20, -550, 129, 711) +[2619125.830] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) +[2619125.834] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) +[2619125.838] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) +[2619125.842] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) +[2619125.845] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) +[2619125.849] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) +[2619125.853] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) +[2619125.857] {Default Queue} -> wl_surface#3047.damage(0, 0, 109, 161) +[2619125.874] {Default Queue} -> wl_buffer#3744.destroy() +[2619125.879] {Default Queue} -> wl_buffer#3745.destroy() +[2619125.882] {Default Queue} -> wl_shm_pool#3742.destroy() +[2619125.886] {Default Queue} -> wl_shm_pool#3743.destroy() +[2619125.963] {Default Queue} -> wl_shm#3055.create_pool(new id wl_shm_pool#2077, fd 575, 70196) +[2619125.969] {Default Queue} -> wl_shm#3055.create_pool(new id wl_shm_pool#2078, fd 578, 70196) +[2619125.973] {Default Queue} -> wl_shm_pool#2077.create_buffer(new id wl_buffer#2108, 0, 109, 161, 436, 0) +[2619125.977] {Default Queue} -> wl_shm_pool#2078.create_buffer(new id wl_buffer#1020, 0, 109, 161, 436, 0) +[2619125.999] {Default Queue} -> wl_surface#3047.attach(wl_buffer#2108, 0, 0) +[2619126.003] {Default Queue} -> wl_surface#3047.commit() +[2619126.023] {Default Queue} -> wl_surface#3047.attach(wl_buffer#2108, 0, 0) +[2619126.028] {Default Queue} -> wl_surface#3047.commit() +[2619126.035] {Default Queue} -> wl_region#3071.subtract(0, 0, 132, 714) +[2619126.039] {Default Queue} -> wl_region#3071.add(-20, -550, 129, 711) +[2619126.043] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) +[2619126.047] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) +[2619126.053] {Default Queue} -> wl_surface#3047.attach(wl_buffer#2108, 0, 0) +[2619126.057] {Default Queue} -> wl_surface#3047.commit() +[2619126.064] {Default Queue} -> wl_surface#3047.attach(wl_buffer#2108, 0, 0) +[2619126.068] {Default Queue} -> wl_surface#3047.commit() +[2619126.984] {Display Queue} wl_display#1.delete_id(2973) +[2619126.989] {Display Queue} wl_display#1.delete_id(2974) +[2619126.993] {Display Queue} wl_display#1.delete_id(2971) +[2619126.997] {Display Queue} wl_display#1.delete_id(2972) +[2619127.000] {Display Queue} wl_display#1.delete_id(3729) +[2619127.004] {Display Queue} wl_display#1.delete_id(3728) +[2619127.008] {Display Queue} wl_display#1.delete_id(3727) +[2619127.015] {Display Queue} wl_display#1.delete_id(3726) +[2619127.021] {Display Queue} wl_display#1.delete_id(3708) +[2619127.024] {Display Queue} wl_display#1.delete_id(3736) +[2619127.028] {Display Queue} wl_display#1.delete_id(3737) +[2619127.032] {Display Queue} wl_display#1.delete_id(3734) +[2619127.035] {Display Queue} wl_display#1.delete_id(3735) +[2619127.039] {Display Queue} wl_display#1.delete_id(2814) +[2619127.043] {Display Queue} wl_display#1.delete_id(2813) +[2619127.046] {Display Queue} wl_display#1.delete_id(2812) +[2619127.050] {Display Queue} wl_display#1.delete_id(2811) +[2619127.054] {Display Queue} wl_display#1.delete_id(3712) +[2619127.057] {Display Queue} wl_display#1.delete_id(3740) +[2619127.061] {Display Queue} wl_display#1.delete_id(3741) +[2619127.065] {Display Queue} wl_display#1.delete_id(3738) +[2619127.068] {Display Queue} wl_display#1.delete_id(3739) +[2619127.072] {Default Queue} wl_pointer#24.motion(187310757, 19.80078125, 15.80078125) +[2619127.077] {Default Queue} wl_pointer#81.motion(187310757, 19.80078125, 15.80078125) +[2619127.082] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619127.086] {Default Queue} wl_pointer#105.motion(187310757, 19.80078125, 15.80078125) +[2619127.090] {Default Queue} wl_pointer#137.motion(187310757, 19.80078125, 15.80078125) +[2619127.094] {Default Queue} wl_pointer#169.motion(187310757, 19.80078125, 15.80078125) +[2619127.098] {Default Queue} wl_pointer#201.motion(187310757, 19.80078125, 15.80078125) +[2619127.102] {Default Queue} wl_pointer#233.motion(187310757, 19.80078125, 15.80078125) +[2619127.106] {Default Queue} wl_pointer#265.motion(187310757, 19.80078125, 15.80078125) +[2619127.110] {Default Queue} wl_pointer#297.motion(187310757, 19.80078125, 15.80078125) +[2619127.114] {Default Queue} wl_pointer#329.motion(187310757, 19.80078125, 15.80078125) +[2619127.118] {Default Queue} wl_pointer#361.motion(187310757, 19.80078125, 15.80078125) +[2619127.122] {Default Queue} wl_pointer#393.motion(187310757, 19.80078125, 15.80078125) +[2619127.126] {Default Queue} wl_pointer#425.motion(187310757, 19.80078125, 15.80078125) +[2619127.130] {Default Queue} wl_pointer#457.motion(187310757, 19.80078125, 15.80078125) +[2619127.133] {Default Queue} wl_pointer#489.motion(187310757, 19.80078125, 15.80078125) +[2619127.137] {Default Queue} wl_pointer#521.motion(187310757, 19.80078125, 15.80078125) +[2619127.141] {Default Queue} wl_pointer#553.motion(187310757, 19.80078125, 15.80078125) +[2619127.145] {Default Queue} wl_pointer#585.motion(187310757, 19.80078125, 15.80078125) +[2619127.149] {Default Queue} wl_pointer#617.motion(187310757, 19.80078125, 15.80078125) +[2619127.153] {Default Queue} wl_pointer#649.motion(187310757, 19.80078125, 15.80078125) +[2619127.157] {Default Queue} wl_pointer#681.motion(187310757, 19.80078125, 15.80078125) +[2619127.161] {Default Queue} wl_pointer#713.motion(187310757, 19.80078125, 15.80078125) +[2619127.165] {Default Queue} wl_pointer#745.motion(187310757, 19.80078125, 15.80078125) +[2619127.169] {Default Queue} wl_pointer#777.motion(187310757, 19.80078125, 15.80078125) +[2619127.173] {Default Queue} wl_pointer#809.motion(187310757, 19.80078125, 15.80078125) +[2619127.177] {Default Queue} wl_pointer#841.motion(187310757, 19.80078125, 15.80078125) +[2619127.181] {Default Queue} wl_pointer#873.motion(187310757, 19.80078125, 15.80078125) +[2619127.185] {Default Queue} wl_pointer#905.motion(187310757, 19.80078125, 15.80078125) +[2619127.189] {Default Queue} wl_pointer#937.motion(187310757, 19.80078125, 15.80078125) +[2619127.193] {Default Queue} wl_pointer#969.motion(187310757, 19.80078125, 15.80078125) +[2619127.197] {Default Queue} wl_pointer#1001.motion(187310757, 19.80078125, 15.80078125) +[2619127.201] {Default Queue} wl_pointer#1033.motion(187310757, 19.80078125, 15.80078125) +[2619127.205] {Default Queue} wl_pointer#1065.motion(187310757, 19.80078125, 15.80078125) +[2619127.209] {Default Queue} wl_pointer#1097.motion(187310757, 19.80078125, 15.80078125) +[2619127.212] {Default Queue} wl_pointer#1129.motion(187310757, 19.80078125, 15.80078125) +[2619127.219] {Default Queue} wl_pointer#1161.motion(187310757, 19.80078125, 15.80078125) +[2619127.225] {Default Queue} wl_pointer#1193.motion(187310757, 19.80078125, 15.80078125) +[2619127.228] {Default Queue} wl_pointer#1225.motion(187310757, 19.80078125, 15.80078125) +[2619127.232] {Default Queue} wl_pointer#1257.motion(187310757, 19.80078125, 15.80078125) +[2619127.236] {Default Queue} wl_pointer#1289.motion(187310757, 19.80078125, 15.80078125) +[2619127.240] {Default Queue} wl_pointer#1321.motion(187310757, 19.80078125, 15.80078125) +[2619127.244] {Default Queue} wl_pointer#1353.motion(187310757, 19.80078125, 15.80078125) +[2619127.248] {Default Queue} wl_pointer#1385.motion(187310757, 19.80078125, 15.80078125) +[2619127.252] {Default Queue} wl_pointer#1417.motion(187310757, 19.80078125, 15.80078125) +[2619127.256] {Default Queue} wl_pointer#1449.motion(187310757, 19.80078125, 15.80078125) +[2619127.260] {Default Queue} wl_pointer#1481.motion(187310757, 19.80078125, 15.80078125) +[2619127.264] {Default Queue} wl_pointer#1513.motion(187310757, 19.80078125, 15.80078125) +[2619127.268] {Default Queue} wl_pointer#1545.motion(187310757, 19.80078125, 15.80078125) +[2619127.272] {Default Queue} wl_pointer#1577.motion(187310757, 19.80078125, 15.80078125) +[2619127.276] {Default Queue} wl_pointer#1609.motion(187310757, 19.80078125, 15.80078125) +[2619127.280] {Default Queue} wl_pointer#1641.motion(187310757, 19.80078125, 15.80078125) +[2619127.283] {Default Queue} wl_pointer#1673.motion(187310757, 19.80078125, 15.80078125) +[2619127.287] {Default Queue} wl_pointer#1705.motion(187310757, 19.80078125, 15.80078125) +[2619127.291] {Default Queue} wl_pointer#1737.motion(187310757, 19.80078125, 15.80078125) +[2619127.295] {Default Queue} wl_pointer#1762.motion(187310757, 19.80078125, 15.80078125) +[2619127.299] {Default Queue} wl_pointer#1801.motion(187310757, 19.80078125, 15.80078125) +[2619127.303] {Default Queue} wl_pointer#1833.motion(187310757, 19.80078125, 15.80078125) +[2619127.307] {Default Queue} wl_pointer#1865.motion(187310757, 19.80078125, 15.80078125) +[2619127.311] {Default Queue} wl_pointer#1897.motion(187310757, 19.80078125, 15.80078125) +[2619127.315] {Default Queue} wl_pointer#1929.motion(187310757, 19.80078125, 15.80078125) +[2619127.319] {Default Queue} wl_pointer#1961.motion(187310757, 19.80078125, 15.80078125) +[2619127.323] {Default Queue} wl_pointer#1993.motion(187310757, 19.80078125, 15.80078125) +[2619127.327] {Default Queue} wl_pointer#2025.motion(187310757, 19.80078125, 15.80078125) +[2619127.331] {Default Queue} wl_pointer#2057.motion(187310757, 19.80078125, 15.80078125) +[2619127.335] {Default Queue} wl_pointer#2089.motion(187310757, 19.80078125, 15.80078125) +[2619127.339] {Default Queue} wl_pointer#2121.motion(187310757, 19.80078125, 15.80078125) +[2619127.343] {Default Queue} wl_pointer#2153.motion(187310757, 19.80078125, 15.80078125) +[2619127.346] {Default Queue} wl_pointer#2185.motion(187310757, 19.80078125, 15.80078125) +[2619127.350] {Default Queue} wl_pointer#2217.motion(187310757, 19.80078125, 15.80078125) +[2619127.354] {Default Queue} wl_pointer#2249.motion(187310757, 19.80078125, 15.80078125) +[2619127.358] {Default Queue} wl_pointer#2281.motion(187310757, 19.80078125, 15.80078125) +[2619127.362] {Default Queue} wl_pointer#2313.motion(187310757, 19.80078125, 15.80078125) +[2619127.366] {Default Queue} wl_pointer#2345.motion(187310757, 19.80078125, 15.80078125) +[2619127.371] {Default Queue} wl_pointer#2377.motion(187310757, 19.80078125, 15.80078125) +[2619127.374] {Default Queue} wl_pointer#2409.motion(187310757, 19.80078125, 15.80078125) +[2619127.378] {Default Queue} wl_pointer#2441.motion(187310757, 19.80078125, 15.80078125) +[2619127.382] {Default Queue} wl_pointer#2473.motion(187310757, 19.80078125, 15.80078125) +[2619127.386] {Default Queue} wl_pointer#2498.motion(187310757, 19.80078125, 15.80078125) +[2619127.397] {Default Queue} -> wl_buffer#3733.destroy() +[2619127.402] {Default Queue} -> wl_buffer#3732.destroy() +[2619127.405] {Default Queue} -> wl_shm_pool#3731.destroy() +[2619127.409] {Default Queue} -> wl_shm_pool#3730.destroy() +[2619127.416] {Default Queue} -> wl_surface#3723.destroy() +[2619127.458] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3739, fd 575, 640) +[2619127.464] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3738, fd 578, 640) +[2619127.468] {Default Queue} -> wl_shm_pool#3739.create_buffer(new id wl_buffer#3741, 0, 10, 16, 40, 0) +[2619127.472] {Default Queue} -> wl_shm_pool#3738.create_buffer(new id wl_buffer#3740, 0, 10, 16, 40, 0) +[2619127.479] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3712) +[2619127.483] {Default Queue} -> wl_surface#3712.attach(wl_buffer#3741, 0, 0) +[2619127.487] {Default Queue} -> wl_surface#3712.commit() +[2619127.492] {Default Queue} -> wl_surface#3712.attach(wl_buffer#3741, 0, 0) +[2619127.496] {Default Queue} -> wl_surface#3712.commit() +[2619127.500] {Default Queue} wl_pointer#2537.motion(187310757, 19.80078125, 15.80078125) +[2619127.504] {Default Queue} wl_pointer#2569.motion(187310757, 19.80078125, 15.80078125) +[2619127.508] {Default Queue} wl_pointer#2601.motion(187310757, 19.80078125, 15.80078125) +[2619127.512] {Default Queue} wl_pointer#2633.motion(187310757, 19.80078125, 15.80078125) +[2619127.516] {Default Queue} wl_pointer#2665.motion(187310757, 19.80078125, 15.80078125) +[2619127.520] {Default Queue} wl_pointer#2697.motion(187310757, 19.80078125, 15.80078125) +[2619127.524] {Default Queue} wl_pointer#2729.motion(187310757, 19.80078125, 15.80078125) +[2619127.528] {Default Queue} wl_pointer#2761.motion(187310757, 19.80078125, 15.80078125) +[2619127.532] {Default Queue} wl_pointer#2793.motion(187310757, 19.80078125, 15.80078125) +[2619127.536] {Default Queue} wl_pointer#2825.motion(187310757, 19.80078125, 15.80078125) +[2619127.540] {Default Queue} wl_pointer#2857.motion(187310757, 19.80078125, 15.80078125) +[2619127.544] {Default Queue} wl_pointer#2889.motion(187310757, 19.80078125, 15.80078125) +[2619127.548] {Default Queue} wl_pointer#2921.motion(187310757, 19.80078125, 15.80078125) +[2619127.552] {Default Queue} wl_pointer#2953.motion(187310757, 19.80078125, 15.80078125) +[2619127.556] {Default Queue} wl_pointer#2985.motion(187310757, 19.80078125, 15.80078125) +[2619127.559] {Default Queue} wl_pointer#3017.motion(187310757, 19.80078125, 15.80078125) +[2619127.563] {Default Queue} wl_pointer#3049.motion(187310757, 19.80078125, 15.80078125) +[2619127.567] {Default Queue} wl_pointer#3081.motion(187310757, 19.80078125, 15.80078125) +[2619127.571] {Default Queue} wl_pointer#3113.motion(187310757, 19.80078125, 15.80078125) +[2619127.575] {Default Queue} wl_pointer#3145.motion(187310757, 19.80078125, 15.80078125) +[2619127.579] {Default Queue} wl_pointer#3177.motion(187310757, 19.80078125, 15.80078125) +[2619127.583] {Default Queue} wl_pointer#3209.motion(187310757, 19.80078125, 15.80078125) +[2619127.587] {Default Queue} wl_pointer#3241.motion(187310757, 19.80078125, 15.80078125) +[2619127.591] {Default Queue} wl_pointer#3273.motion(187310757, 19.80078125, 15.80078125) +[2619127.595] {Default Queue} wl_pointer#3305.motion(187310757, 19.80078125, 15.80078125) +[2619127.599] {Default Queue} wl_pointer#3337.motion(187310757, 19.80078125, 15.80078125) +[2619127.603] {Default Queue} wl_pointer#3369.motion(187310757, 19.80078125, 15.80078125) +[2619127.607] {Default Queue} wl_pointer#3401.motion(187310757, 19.80078125, 15.80078125) +[2619127.611] {Default Queue} wl_pointer#3433.motion(187310757, 19.80078125, 15.80078125) +[2619127.615] {Default Queue} wl_pointer#3465.motion(187310757, 19.80078125, 15.80078125) +[2619127.619] {Default Queue} wl_pointer#3497.motion(187310757, 19.80078125, 15.80078125) +[2619127.623] {Default Queue} wl_pointer#3529.motion(187310757, 19.80078125, 15.80078125) +[2619127.627] {Default Queue} wl_pointer#3561.motion(187310757, 19.80078125, 15.80078125) +[2619127.631] {Default Queue} wl_pointer#3593.motion(187310757, 19.80078125, 15.80078125) +[2619127.635] {Default Queue} wl_pointer#3625.motion(187310757, 19.80078125, 15.80078125) +[2619127.639] {Default Queue} wl_pointer#3657.motion(187310757, 19.80078125, 15.80078125) +[2619127.645] {Default Queue} wl_pointer#3695.motion(187310757, 19.80078125, 15.80078125) +[2619127.656] {Default Queue} -> wl_region#3071.subtract(0, 0, 132, 714) +[2619127.660] {Default Queue} -> wl_region#3071.add(-20, -550, 129, 711) +[2619127.664] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) +[2619127.667] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) +[2619127.674] {Default Queue} -> wl_surface#3047.attach(wl_buffer#2108, 0, 0) +[2619127.679] {Default Queue} -> wl_surface#3047.commit() +[2619127.684] {Default Queue} -> wl_surface#3047.attach(wl_buffer#2108, 0, 0) +[2619127.688] {Default Queue} -> wl_surface#3047.commit() +[2619127.694] {Default Queue} -> wl_surface#3047.attach(wl_buffer#2108, 0, 0) +[2619127.698] {Default Queue} -> wl_surface#3047.commit() +[2619127.711] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) +[2619127.715] {Default Queue} -> wl_surface#3015.commit() +[2619128.779] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) +[2619128.784] {Default Queue} -> wl_surface#3015.commit() +[2619128.792] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) +[2619128.797] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) +[2619128.801] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2619128.804] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2619128.812] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) +[2619128.816] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) +[2619128.820] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2619128.823] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2619128.829] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) +[2619128.833] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) +[2619128.837] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2619128.840] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2619128.846] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) +[2619128.849] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) +[2619128.853] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2619128.857] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2619128.864] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) +[2619128.868] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) +[2619128.874] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) +[2619128.878] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) +[2619128.884] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) +[2619128.888] {Default Queue} -> wl_surface#3015.commit() +[2619128.893] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) +[2619128.897] {Default Queue} -> wl_surface#3015.commit() +[2619128.903] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) +[2619128.907] {Default Queue} -> wl_surface#3015.commit() +[2619128.913] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) +[2619128.916] {Default Queue} -> wl_surface#3303.commit() +[2619129.977] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) +[2619129.982] {Default Queue} -> wl_surface#3303.commit() +[2619129.989] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 570) +[2619129.994] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 570) +[2619129.998] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2619130.002] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2619130.087] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 570) +[2619130.091] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 570) +[2619130.095] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2619130.099] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2619130.106] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) +[2619130.110] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) +[2619130.171] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 570) +[2619130.177] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 570) +[2619130.181] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2619130.185] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2619130.190] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) +[2619130.194] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) +[2619130.199] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) +[2619130.203] {Default Queue} -> wl_surface#3303.commit() +[2619130.206] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) +[2619130.210] {Default Queue} -> wl_surface#3303.commit() +[2619130.216] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) +[2619130.219] {Default Queue} -> wl_surface#3303.commit() +[2619130.224] {Default Queue} -> wl_region#3423.subtract(0, 0, 2, 2) +[2619130.228] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) +[2619130.232] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) +[2619130.236] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619130.240] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619130.243] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2619130.256] {Default Queue} -> wl_buffer#3748.destroy() +[2619130.261] {Default Queue} -> wl_buffer#3749.destroy() +[2619130.265] {Default Queue} -> wl_shm_pool#3746.destroy() +[2619130.268] {Default Queue} -> wl_shm_pool#3747.destroy() +[2619130.305] {Default Queue} -> wl_shm#3407.create_pool(new id wl_shm_pool#2811, fd 575, 16) +[2619130.310] {Default Queue} -> wl_shm#3407.create_pool(new id wl_shm_pool#2812, fd 578, 16) +[2619130.315] {Default Queue} -> wl_shm_pool#2811.create_buffer(new id wl_buffer#2813, 0, 2, 2, 8, 0) +[2619130.319] {Default Queue} -> wl_shm_pool#2812.create_buffer(new id wl_buffer#2814, 0, 2, 2, 8, 0) +[2619130.326] {Default Queue} -> wl_surface#3399.attach(wl_buffer#2813, 0, 0) +[2619130.330] {Default Queue} -> wl_surface#3399.commit() +[2619130.335] {Default Queue} -> wl_surface#3399.attach(wl_buffer#2813, 0, 0) +[2619130.339] {Default Queue} -> wl_surface#3399.commit() +[2619130.347] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619130.351] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619130.355] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619130.359] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619130.366] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619130.370] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619130.374] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619130.377] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619130.384] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619130.387] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619130.391] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619130.395] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619130.400] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619130.404] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619130.408] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619130.411] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619130.416] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619130.420] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619130.424] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619130.428] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619130.434] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619130.438] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619130.441] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619130.448] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619130.455] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619130.459] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619130.463] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619130.466] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619130.472] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619130.475] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619130.479] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619130.483] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619130.488] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619130.492] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619130.496] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619130.499] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619130.510] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619130.513] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619130.517] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619130.521] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619130.525] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619130.529] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619130.533] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619130.537] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619130.542] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619130.546] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619130.549] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619130.553] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619130.558] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619130.562] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619130.565] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619130.569] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619130.574] {Default Queue} -> wl_surface#3399.attach(wl_buffer#2813, 0, 0) +[2619130.578] {Default Queue} -> wl_surface#3399.commit() +[2619130.583] {Default Queue} -> wl_surface#3399.attach(wl_buffer#2813, 0, 0) +[2619130.587] {Default Queue} -> wl_surface#3399.commit() +[2619131.649] {Default Queue} -> wl_surface#3399.attach(wl_buffer#2813, 0, 0) +[2619131.654] {Default Queue} -> wl_surface#3399.commit() +[2619131.660] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619131.664] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619131.668] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619131.672] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619131.678] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619131.682] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619131.686] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619131.690] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619131.695] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619131.699] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619131.702] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619131.706] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619131.711] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619131.715] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619131.719] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619131.722] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619131.727] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619131.731] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619131.738] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619131.743] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619131.749] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619131.753] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619131.757] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619131.760] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619131.765] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619131.769] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619131.773] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619131.776] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619131.781] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619131.785] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619131.789] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619131.792] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619131.797] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619131.801] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619131.805] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619131.809] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619131.818] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619131.822] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619131.826] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619131.830] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619131.834] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619131.838] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619131.842] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619131.846] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619131.850] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619131.854] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619131.858] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619131.862] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619131.867] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619131.875] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619131.878] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619131.882] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619131.887] {Default Queue} -> wl_surface#3399.attach(wl_buffer#2813, 0, 0) +[2619131.891] {Default Queue} -> wl_surface#3399.commit() +[2619131.894] {Default Queue} -> wl_surface#3399.attach(wl_buffer#2813, 0, 0) +[2619131.898] {Default Queue} -> wl_surface#3399.commit() +[2619131.903] {Default Queue} -> wl_surface#3399.attach(wl_buffer#2813, 0, 0) +[2619131.907] {Default Queue} -> wl_surface#3399.commit() +[2619131.911] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 2) +[2619131.915] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) +[2619131.919] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) +[2619131.923] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619131.927] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619131.930] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2619131.942] {Default Queue} -> wl_buffer#3752.destroy() +[2619131.946] {Default Queue} -> wl_buffer#3753.destroy() +[2619131.950] {Default Queue} -> wl_shm_pool#3750.destroy() +[2619131.954] {Default Queue} -> wl_shm_pool#3751.destroy() +[2619131.989] {Default Queue} -> wl_shm#3439.create_pool(new id wl_shm_pool#3735, fd 575, 16) +[2619131.995] {Default Queue} -> wl_shm#3439.create_pool(new id wl_shm_pool#3734, fd 578, 16) +[2619131.999] {Default Queue} -> wl_shm_pool#3735.create_buffer(new id wl_buffer#3737, 0, 2, 2, 8, 0) +[2619132.006] {Default Queue} -> wl_shm_pool#3734.create_buffer(new id wl_buffer#3736, 0, 2, 2, 8, 0) +[2619132.014] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3737, 0, 0) +[2619132.018] {Default Queue} -> wl_surface#3431.commit() +[2619132.023] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3737, 0, 0) +[2619132.027] {Default Queue} -> wl_surface#3431.commit() +[2619132.034] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619132.038] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619132.041] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619132.045] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619132.052] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619132.056] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619132.059] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619132.063] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619132.069] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619132.073] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619132.076] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619132.080] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619132.085] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619132.089] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619132.093] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619132.097] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619132.101] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619132.105] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619132.109] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619132.113] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619132.119] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619132.123] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619132.127] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619132.130] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619132.136] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619132.140] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619132.143] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619132.147] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619132.152] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619132.156] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619132.160] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619132.163] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619132.168] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619132.172] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619132.176] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619132.180] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619132.190] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619132.194] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619132.198] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619132.201] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619132.206] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619132.210] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619132.213] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619132.217] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619132.222] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619132.226] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619132.230] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619132.237] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619132.243] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619132.247] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619132.251] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619132.254] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619132.260] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3737, 0, 0) +[2619132.264] {Default Queue} -> wl_surface#3431.commit() +[2619132.281] {Default Queue} wl_pointer#24.motion(187310762, 19.39843750, 15.80078125) +[2619132.286] {Default Queue} wl_pointer#81.motion(187310762, 19.39843750, 15.80078125) +[2619132.291] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619132.295] {Default Queue} wl_pointer#105.motion(187310762, 19.39843750, 15.80078125) +[2619132.299] {Default Queue} wl_pointer#137.motion(187310762, 19.39843750, 15.80078125) +[2619132.303] {Default Queue} wl_pointer#169.motion(187310762, 19.39843750, 15.80078125) +[2619132.307] {Default Queue} wl_pointer#201.motion(187310762, 19.39843750, 15.80078125) +[2619132.311] {Default Queue} wl_pointer#233.motion(187310762, 19.39843750, 15.80078125) +[2619132.315] {Default Queue} wl_pointer#265.motion(187310762, 19.39843750, 15.80078125) +[2619132.319] {Default Queue} wl_pointer#297.motion(187310762, 19.39843750, 15.80078125) +[2619132.323] {Default Queue} wl_pointer#329.motion(187310762, 19.39843750, 15.80078125) +[2619132.327] {Default Queue} wl_pointer#361.motion(187310762, 19.39843750, 15.80078125) +[2619132.331] {Default Queue} wl_pointer#393.motion(187310762, 19.39843750, 15.80078125) +[2619132.335] {Default Queue} wl_pointer#425.motion(187310762, 19.39843750, 15.80078125) +[2619132.339] {Default Queue} wl_pointer#457.motion(187310762, 19.39843750, 15.80078125) +[2619132.343] {Default Queue} wl_pointer#489.motion(187310762, 19.39843750, 15.80078125) +[2619132.347] {Default Queue} wl_pointer#521.motion(187310762, 19.39843750, 15.80078125) +[2619132.351] {Default Queue} wl_pointer#553.motion(187310762, 19.39843750, 15.80078125) +[2619132.355] {Default Queue} wl_pointer#585.motion(187310762, 19.39843750, 15.80078125) +[2619132.359] {Default Queue} wl_pointer#617.motion(187310762, 19.39843750, 15.80078125) +[2619132.363] {Default Queue} wl_pointer#649.motion(187310762, 19.39843750, 15.80078125) +[2619132.367] {Default Queue} wl_pointer#681.motion(187310762, 19.39843750, 15.80078125) +[2619132.371] {Default Queue} wl_pointer#713.motion(187310762, 19.39843750, 15.80078125) +[2619132.375] {Default Queue} wl_pointer#745.motion(187310762, 19.39843750, 15.80078125) +[2619132.379] {Default Queue} wl_pointer#777.motion(187310762, 19.39843750, 15.80078125) +[2619132.382] {Default Queue} wl_pointer#809.motion(187310762, 19.39843750, 15.80078125) +[2619132.386] {Default Queue} wl_pointer#841.motion(187310762, 19.39843750, 15.80078125) +[2619132.390] {Default Queue} wl_pointer#873.motion(187310762, 19.39843750, 15.80078125) +[2619132.394] {Default Queue} wl_pointer#905.motion(187310762, 19.39843750, 15.80078125) +[2619132.398] {Default Queue} wl_pointer#937.motion(187310762, 19.39843750, 15.80078125) +[2619132.402] {Default Queue} wl_pointer#969.motion(187310762, 19.39843750, 15.80078125) +[2619132.406] {Default Queue} wl_pointer#1001.motion(187310762, 19.39843750, 15.80078125) +[2619132.410] {Default Queue} wl_pointer#1033.motion(187310762, 19.39843750, 15.80078125) +[2619132.414] {Default Queue} wl_pointer#1065.motion(187310762, 19.39843750, 15.80078125) +[2619132.418] {Default Queue} wl_pointer#1097.motion(187310762, 19.39843750, 15.80078125) +[2619132.422] {Default Queue} wl_pointer#1129.motion(187310762, 19.39843750, 15.80078125) +[2619132.426] {Default Queue} wl_pointer#1161.motion(187310762, 19.39843750, 15.80078125) +[2619132.430] {Default Queue} wl_pointer#1193.motion(187310762, 19.39843750, 15.80078125) +[2619132.434] {Default Queue} wl_pointer#1225.motion(187310762, 19.39843750, 15.80078125) +[2619132.438] {Default Queue} wl_pointer#1257.motion(187310762, 19.39843750, 15.80078125) +[2619132.444] {Default Queue} wl_pointer#1289.motion(187310762, 19.39843750, 15.80078125) +[2619132.450] {Default Queue} wl_pointer#1321.motion(187310762, 19.39843750, 15.80078125) +[2619132.454] {Default Queue} wl_pointer#1353.motion(187310762, 19.39843750, 15.80078125) +[2619132.458] {Default Queue} wl_pointer#1385.motion(187310762, 19.39843750, 15.80078125) +[2619132.462] {Default Queue} wl_pointer#1417.motion(187310762, 19.39843750, 15.80078125) +[2619132.465] {Default Queue} wl_pointer#1449.motion(187310762, 19.39843750, 15.80078125) +[2619132.469] {Default Queue} wl_pointer#1481.motion(187310762, 19.39843750, 15.80078125) +[2619132.473] {Default Queue} wl_pointer#1513.motion(187310762, 19.39843750, 15.80078125) +[2619132.477] {Default Queue} wl_pointer#1545.motion(187310762, 19.39843750, 15.80078125) +[2619132.481] {Default Queue} wl_pointer#1577.motion(187310762, 19.39843750, 15.80078125) +[2619132.485] {Default Queue} wl_pointer#1609.motion(187310762, 19.39843750, 15.80078125) +[2619132.489] {Default Queue} wl_pointer#1641.motion(187310762, 19.39843750, 15.80078125) +[2619132.493] {Default Queue} wl_pointer#1673.motion(187310762, 19.39843750, 15.80078125) +[2619132.497] {Default Queue} wl_pointer#1705.motion(187310762, 19.39843750, 15.80078125) +[2619132.501] {Default Queue} wl_pointer#1737.motion(187310762, 19.39843750, 15.80078125) +[2619132.505] {Default Queue} wl_pointer#1762.motion(187310762, 19.39843750, 15.80078125) +[2619132.509] {Default Queue} wl_pointer#1801.motion(187310762, 19.39843750, 15.80078125) +[2619132.513] {Default Queue} wl_pointer#1833.motion(187310762, 19.39843750, 15.80078125) +[2619132.517] {Default Queue} wl_pointer#1865.motion(187310762, 19.39843750, 15.80078125) +[2619132.521] {Default Queue} wl_pointer#1897.motion(187310762, 19.39843750, 15.80078125) +[2619132.524] {Default Queue} wl_pointer#1929.motion(187310762, 19.39843750, 15.80078125) +[2619132.528] {Default Queue} wl_pointer#1961.motion(187310762, 19.39843750, 15.80078125) +[2619132.532] {Default Queue} wl_pointer#1993.motion(187310762, 19.39843750, 15.80078125) +[2619132.536] {Default Queue} wl_pointer#2025.motion(187310762, 19.39843750, 15.80078125) +[2619132.540] {Default Queue} wl_pointer#2057.motion(187310762, 19.39843750, 15.80078125) +[2619132.544] {Default Queue} wl_pointer#2089.motion(187310762, 19.39843750, 15.80078125) +[2619132.548] {Default Queue} wl_pointer#2121.motion(187310762, 19.39843750, 15.80078125) +[2619132.552] {Default Queue} wl_pointer#2153.motion(187310762, 19.39843750, 15.80078125) +[2619132.556] {Default Queue} wl_pointer#2185.motion(187310762, 19.39843750, 15.80078125) +[2619132.560] {Default Queue} wl_pointer#2217.motion(187310762, 19.39843750, 15.80078125) +[2619132.564] {Default Queue} wl_pointer#2249.motion(187310762, 19.39843750, 15.80078125) +[2619132.568] {Default Queue} wl_pointer#2281.motion(187310762, 19.39843750, 15.80078125) +[2619132.572] {Default Queue} wl_pointer#2313.motion(187310762, 19.39843750, 15.80078125) +[2619132.576] {Default Queue} wl_pointer#2345.motion(187310762, 19.39843750, 15.80078125) +[2619132.580] {Default Queue} wl_pointer#2377.motion(187310762, 19.39843750, 15.80078125) +[2619132.584] {Default Queue} wl_pointer#2409.motion(187310762, 19.39843750, 15.80078125) +[2619132.588] {Default Queue} wl_pointer#2441.motion(187310762, 19.39843750, 15.80078125) +[2619132.592] {Default Queue} wl_pointer#2473.motion(187310762, 19.39843750, 15.80078125) +[2619132.596] {Default Queue} wl_pointer#2498.motion(187310762, 19.39843750, 15.80078125) +[2619132.606] {Default Queue} -> wl_buffer#3741.destroy() +[2619132.610] {Default Queue} -> wl_buffer#3740.destroy() +[2619132.613] {Default Queue} -> wl_shm_pool#3739.destroy() +[2619132.617] {Default Queue} -> wl_shm_pool#3738.destroy() +[2619132.622] {Default Queue} -> wl_surface#3712.destroy() +[2619132.652] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3708, fd 581, 640) +[2619132.658] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3726, fd 582, 640) +[2619132.662] {Default Queue} -> wl_shm_pool#3708.create_buffer(new id wl_buffer#3727, 0, 10, 16, 40, 0) +[2619132.669] {Default Queue} -> wl_shm_pool#3726.create_buffer(new id wl_buffer#3728, 0, 10, 16, 40, 0) +[2619132.677] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3729) +[2619132.681] {Default Queue} -> wl_surface#3729.attach(wl_buffer#3727, 0, 0) +[2619132.685] {Default Queue} -> wl_surface#3729.commit() +[2619132.689] {Default Queue} -> wl_surface#3729.attach(wl_buffer#3727, 0, 0) +[2619132.693] {Default Queue} -> wl_surface#3729.commit() +[2619132.697] {Default Queue} wl_pointer#2537.motion(187310762, 19.39843750, 15.80078125) +[2619132.701] {Default Queue} wl_pointer#2569.motion(187310762, 19.39843750, 15.80078125) +[2619132.705] {Default Queue} wl_pointer#2601.motion(187310762, 19.39843750, 15.80078125) +[2619132.709] {Default Queue} wl_pointer#2633.motion(187310762, 19.39843750, 15.80078125) +[2619132.713] {Default Queue} wl_pointer#2665.motion(187310762, 19.39843750, 15.80078125) +[2619132.717] {Default Queue} wl_pointer#2697.motion(187310762, 19.39843750, 15.80078125) +[2619132.721] {Default Queue} wl_pointer#2729.motion(187310762, 19.39843750, 15.80078125) +[2619132.725] {Default Queue} wl_pointer#2761.motion(187310762, 19.39843750, 15.80078125) +[2619132.729] {Default Queue} wl_pointer#2793.motion(187310762, 19.39843750, 15.80078125) +[2619132.733] {Default Queue} wl_pointer#2825.motion(187310762, 19.39843750, 15.80078125) +[2619132.737] {Default Queue} wl_pointer#2857.motion(187310762, 19.39843750, 15.80078125) +[2619132.741] {Default Queue} wl_pointer#2889.motion(187310762, 19.39843750, 15.80078125) +[2619132.745] {Default Queue} wl_pointer#2921.motion(187310762, 19.39843750, 15.80078125) +[2619132.749] {Default Queue} wl_pointer#2953.motion(187310762, 19.39843750, 15.80078125) +[2619132.753] {Default Queue} wl_pointer#2985.motion(187310762, 19.39843750, 15.80078125) +[2619132.756] {Default Queue} wl_pointer#3017.motion(187310762, 19.39843750, 15.80078125) +[2619132.760] {Default Queue} wl_pointer#3049.motion(187310762, 19.39843750, 15.80078125) +[2619132.764] {Default Queue} wl_pointer#3081.motion(187310762, 19.39843750, 15.80078125) +[2619132.768] {Default Queue} wl_pointer#3113.motion(187310762, 19.39843750, 15.80078125) +[2619132.772] {Default Queue} wl_pointer#3145.motion(187310762, 19.39843750, 15.80078125) +[2619132.776] {Default Queue} wl_pointer#3177.motion(187310762, 19.39843750, 15.80078125) +[2619132.780] {Default Queue} wl_pointer#3209.motion(187310762, 19.39843750, 15.80078125) +[2619132.784] {Default Queue} wl_pointer#3241.motion(187310762, 19.39843750, 15.80078125) +[2619132.788] {Default Queue} wl_pointer#3273.motion(187310762, 19.39843750, 15.80078125) +[2619132.792] {Default Queue} wl_pointer#3305.motion(187310762, 19.39843750, 15.80078125) +[2619132.796] {Default Queue} wl_pointer#3337.motion(187310762, 19.39843750, 15.80078125) +[2619132.800] {Default Queue} wl_pointer#3369.motion(187310762, 19.39843750, 15.80078125) +[2619132.804] {Default Queue} wl_pointer#3401.motion(187310762, 19.39843750, 15.80078125) +[2619132.808] {Default Queue} wl_pointer#3433.motion(187310762, 19.39843750, 15.80078125) +[2619132.812] {Default Queue} wl_pointer#3465.motion(187310762, 19.39843750, 15.80078125) +[2619132.816] {Default Queue} wl_pointer#3497.motion(187310762, 19.39843750, 15.80078125) +[2619132.820] {Default Queue} wl_pointer#3529.motion(187310762, 19.39843750, 15.80078125) +[2619132.824] {Default Queue} wl_pointer#3561.motion(187310762, 19.39843750, 15.80078125) +[2619132.828] {Default Queue} wl_pointer#3593.motion(187310762, 19.39843750, 15.80078125) +[2619132.832] {Default Queue} wl_pointer#3625.motion(187310762, 19.39843750, 15.80078125) +[2619132.836] {Default Queue} wl_pointer#3657.motion(187310762, 19.39843750, 15.80078125) +[2619132.839] {Default Queue} wl_pointer#3695.motion(187310762, 19.39843750, 15.80078125) +[2619132.843] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3737, 0, 0) +[2619132.847] {Default Queue} -> wl_surface#3431.commit() +[2619133.869] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3737, 0, 0) +[2619133.875] {Default Queue} -> wl_surface#3431.commit() +[2619133.886] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619133.892] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619133.896] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619133.899] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619133.906] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619133.912] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619133.916] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619133.919] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619133.926] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619133.930] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619133.933] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619133.937] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619133.942] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619133.946] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619133.950] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619133.953] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619133.958] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619133.962] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619133.966] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619133.969] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619133.976] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619133.980] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619133.983] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619133.987] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619133.992] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619133.996] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619134.000] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619134.004] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619134.009] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619134.013] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619134.016] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619134.020] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619134.025] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619134.029] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619134.033] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619134.037] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619134.046] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619134.051] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619134.055] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619134.058] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619134.063] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619134.067] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619134.070] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619134.074] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619134.079] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619134.083] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619134.087] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619134.091] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619134.096] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619134.100] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619134.104] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619134.107] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619134.117] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3737, 0, 0) +[2619134.122] {Default Queue} -> wl_surface#3431.commit() +[2619134.126] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3737, 0, 0) +[2619134.130] {Default Queue} -> wl_surface#3431.commit() +[2619134.135] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3737, 0, 0) +[2619134.139] {Default Queue} -> wl_surface#3431.commit() +[2619134.152] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2619134.156] {Default Queue} -> wl_surface#3527.commit() +[2619135.217] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2619135.222] {Default Queue} -> wl_surface#3527.commit() +[2619135.230] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 575) +[2619135.236] {Default Queue} -> wl_region#3551.add(-139, -574, 76, 511) +[2619135.240] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2619135.243] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2619135.251] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 575) +[2619135.255] {Default Queue} -> wl_region#3551.add(-139, -574, 76, 511) +[2619135.259] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2619135.263] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2619135.267] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 575) +[2619135.271] {Default Queue} -> wl_region#3551.add(-139, -574, 76, 511) +[2619135.275] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2619135.279] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2619135.283] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 575) +[2619135.287] {Default Queue} -> wl_region#3551.add(-139, -574, 76, 511) +[2619135.291] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2619135.294] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2619135.299] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 575) +[2619135.303] {Default Queue} -> wl_region#3551.add(-139, -574, 76, 511) +[2619135.307] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2619135.310] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2619135.330] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 575) +[2619135.334] {Default Queue} -> wl_region#3551.add(-139, -574, 76, 511) +[2619135.338] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2619135.342] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2619135.367] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2619135.371] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2619135.430] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 575) +[2619135.434] {Default Queue} -> wl_region#3551.add(-139, -574, 76, 511) +[2619135.438] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) +[2619135.442] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) +[2619135.452] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2619135.456] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2619135.462] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2619135.466] {Default Queue} -> wl_surface#3527.commit() +[2619135.471] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2619135.475] {Default Queue} -> wl_surface#3527.commit() +[2619135.481] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) +[2619135.485] {Default Queue} -> wl_surface#3527.commit() +[2619135.506] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2619135.511] {Default Queue} -> wl_surface#3495.commit() +[2619136.577] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2619136.582] {Default Queue} -> wl_surface#3495.commit() +[2619136.588] {Default Queue} -> wl_region#3519.subtract(0, 0, 139, 574) +[2619136.593] {Default Queue} -> wl_region#3519.add(-138, -573, 139, 574) +[2619136.597] {Default Queue} -> wl_surface#3495.set_opaque_region(wl_region#3520) +[2619136.604] {Default Queue} -> wl_surface#3495.set_input_region(wl_region#3519) +[2619136.615] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2619136.619] {Default Queue} -> wl_surface#3495.commit() +[2619136.627] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2619136.631] {Default Queue} -> wl_surface#3495.commit() +[2619136.640] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) +[2619136.644] {Default Queue} -> wl_surface#3495.commit() +[2619136.648] {Default Queue} -> wl_region#3487.subtract(0, 0, 2, 2) +[2619136.653] {Default Queue} -> wl_region#3519.subtract(0, 0, 139, 574) +[2619136.657] {Default Queue} -> wl_region#3519.add(-138, -573, 139, 574) +[2619136.661] {Default Queue} -> wl_surface#3495.set_opaque_region(wl_region#3520) +[2619136.665] {Default Queue} -> wl_surface#3495.set_input_region(wl_region#3519) +[2619136.669] {Default Queue} -> wl_region#3487.subtract(0, 0, 139, 554) +[2619136.673] {Default Queue} -> wl_region#3487.add(-138, -573, 139, 554) +[2619136.677] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) +[2619136.681] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) +[2619136.685] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2619136.689] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) +[2619136.692] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) +[2619136.704] {Default Queue} -> wl_buffer#3760.destroy() +[2619136.709] {Default Queue} -> wl_buffer#3761.destroy() +[2619136.713] {Default Queue} -> wl_shm_pool#3758.destroy() +[2619136.717] {Default Queue} -> wl_shm_pool#3759.destroy() +[2619136.754] {Default Queue} -> wl_shm#3471.create_pool(new id wl_shm_pool#2972, fd 575, 16) +[2619136.759] {Default Queue} -> wl_shm#3471.create_pool(new id wl_shm_pool#2971, fd 578, 16) +[2619136.764] {Default Queue} -> wl_shm_pool#2972.create_buffer(new id wl_buffer#2974, 0, 2, 2, 8, 0) +[2619136.768] {Default Queue} -> wl_shm_pool#2971.create_buffer(new id wl_buffer#2973, 0, 2, 2, 8, 0) +[2619136.774] {Default Queue} -> wl_surface#3463.attach(wl_buffer#2974, 0, 0) +[2619136.778] {Default Queue} -> wl_surface#3463.commit() +[2619136.783] {Default Queue} -> wl_surface#3463.attach(wl_buffer#2974, 0, 0) +[2619136.787] {Default Queue} -> wl_surface#3463.commit() +[2619136.793] {Default Queue} -> wl_region#3487.subtract(0, 0, 139, 574) +[2619136.797] {Default Queue} -> wl_region#3487.add(-138, -573, 139, 574) +[2619136.801] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) +[2619136.805] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) +[2619136.809] {Default Queue} -> wl_surface#3463.attach(wl_buffer#2974, 0, 0) +[2619136.813] {Default Queue} -> wl_surface#3463.commit() +[2619136.818] {Default Queue} -> wl_surface#3463.attach(wl_buffer#2974, 0, 0) +[2619136.822] {Default Queue} -> wl_surface#3463.commit() +[2619137.866] {Default Queue} -> wl_surface#3463.attach(wl_buffer#2974, 0, 0) +[2619137.871] {Default Queue} -> wl_surface#3463.commit() +[2619137.876] {Default Queue} -> wl_region#3487.subtract(0, 0, 139, 574) +[2619137.903] {Default Queue} -> wl_region#3487.add(-138, -573, 139, 574) +[2619137.909] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) +[2619137.914] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) +[2619137.921] {Default Queue} -> wl_surface#3463.attach(wl_buffer#2974, 0, 0) +[2619137.925] {Default Queue} -> wl_surface#3463.commit() +[2619137.929] {Default Queue} -> wl_surface#3463.attach(wl_buffer#2974, 0, 0) +[2619137.934] {Default Queue} -> wl_surface#3463.commit() +[2619137.940] {Default Queue} -> wl_surface#3463.attach(wl_buffer#2974, 0, 0) +[2619137.944] {Default Queue} -> wl_surface#3463.commit() +[2619137.948] {Default Queue} -> wl_region#3391.subtract(0, 0, 2, 2) +[2619137.956] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619137.960] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619137.964] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619137.973] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619137.983] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619137.988] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619137.992] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619137.995] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619138.002] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619138.006] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619138.010] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619138.014] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619138.019] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619138.023] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619138.027] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619138.030] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619138.035] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619138.039] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619138.043] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619138.046] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619138.053] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619138.056] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619138.060] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619138.064] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619138.069] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619138.073] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619138.077] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619138.080] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619138.085] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619138.089] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619138.093] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619138.097] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619138.102] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619138.106] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619138.110] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619138.113] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619138.123] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619138.127] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619138.131] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619138.135] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619138.139] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619138.143] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619138.147] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619138.150] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619138.155] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619138.159] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619138.163] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619138.167] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619138.171] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) +[2619138.175] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) +[2619138.179] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) +[2619138.183] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) +[2619138.189] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619138.193] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619138.196] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619138.204] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619138.212] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619138.216] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619138.220] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619138.224] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619138.229] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619138.233] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619138.237] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619138.240] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619138.245] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619138.249] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619138.253] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619138.257] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619138.262] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619138.265] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619138.269] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619138.273] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619138.279] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619138.283] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619138.287] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619138.290] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619138.296] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619138.300] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619138.303] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619138.307] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619138.312] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619138.316] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619138.320] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619138.323] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619138.328] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619138.332] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619138.336] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619138.340] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619138.350] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619138.354] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619138.358] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619138.361] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619138.366] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619138.370] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619138.373] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619138.377] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619138.382] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619138.386] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619138.390] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619138.393] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619138.398] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) +[2619138.402] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) +[2619138.406] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) +[2619138.410] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) +[2619138.416] {Default Queue} -> wl_region#3487.subtract(0, 0, 139, 574) +[2619138.420] {Default Queue} -> wl_region#3487.add(-138, -573, 139, 574) +[2619138.424] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) +[2619138.430] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) +[2619138.436] {Default Queue} -> wl_region#3391.subtract(0, 0, 140, 555) +[2619138.440] {Default Queue} -> wl_region#3391.add(-138, -573, 139, 554) +[2619138.444] {Default Queue} -> wl_surface#3367.set_opaque_region(wl_region#3392) +[2619138.448] {Default Queue} -> wl_surface#3367.set_input_region(wl_region#3391) +[2619138.451] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2619138.455] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2619138.459] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2619138.463] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) +[2619138.467] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) +[2619138.471] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) +[2619138.487] {Default Queue} -> wl_buffer#3389.destroy() +[2619138.492] {Default Queue} -> wl_buffer#3390.destroy() +[2619138.496] {Default Queue} -> wl_shm_pool#3387.destroy() +[2619138.500] {Default Queue} -> wl_shm_pool#3388.destroy() +[2619138.543] {Default Queue} -> wl_shm#3375.create_pool(new id wl_shm_pool#1019, fd 575, 16) +[2619138.549] {Default Queue} -> wl_shm#3375.create_pool(new id wl_shm_pool#1022, fd 578, 16) +[2619138.553] {Default Queue} -> wl_shm_pool#1019.create_buffer(new id wl_buffer#1021, 0, 2, 2, 8, 0) +[2619138.558] {Default Queue} -> wl_shm_pool#1022.create_buffer(new id wl_buffer#3691, 0, 2, 2, 8, 0) +[2619138.565] {Default Queue} -> wl_surface#3367.attach(wl_buffer#1021, 0, 0) +[2619138.569] {Default Queue} -> wl_surface#3367.commit() +[2619138.574] {Default Queue} -> wl_surface#3367.attach(wl_buffer#1021, 0, 0) +[2619138.578] {Default Queue} -> wl_surface#3367.commit() +[2619138.584] {Default Queue} -> wl_region#3391.subtract(0, 0, 140, 575) +[2619138.589] {Default Queue} -> wl_region#3391.add(-138, -573, 139, 574) +[2619138.593] {Default Queue} -> wl_surface#3367.set_opaque_region(wl_region#3392) +[2619138.597] {Default Queue} -> wl_surface#3367.set_input_region(wl_region#3391) +[2619138.601] {Default Queue} -> wl_surface#3367.attach(wl_buffer#1021, 0, 0) +[2619138.605] {Default Queue} -> wl_surface#3367.commit() +[2619138.611] {Default Queue} -> wl_surface#3367.attach(wl_buffer#1021, 0, 0) +[2619138.615] {Default Queue} -> wl_surface#3367.commit() +[2619139.680] {Default Queue} -> wl_surface#3367.attach(wl_buffer#1021, 0, 0) +[2619139.689] {Default Queue} -> wl_surface#3367.commit() +[2619139.697] {Default Queue} -> wl_region#3391.subtract(0, 0, 140, 575) +[2619139.703] {Default Queue} -> wl_region#3391.add(-138, -573, 139, 574) +[2619139.709] {Default Queue} -> wl_surface#3367.set_opaque_region(wl_region#3392) +[2619139.714] {Default Queue} -> wl_surface#3367.set_input_region(wl_region#3391) +[2619139.720] {Default Queue} -> wl_surface#3367.attach(wl_buffer#1021, 0, 0) +[2619139.725] {Default Queue} -> wl_surface#3367.commit() +[2619139.729] {Default Queue} -> wl_surface#3367.attach(wl_buffer#1021, 0, 0) +[2619139.732] {Default Queue} -> wl_surface#3367.commit() +[2619139.738] {Default Queue} -> wl_surface#3367.attach(wl_buffer#1021, 0, 0) +[2619139.742] {Default Queue} -> wl_surface#3367.commit() +[2619139.747] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) +[2619139.751] {Default Queue} -> wl_surface#3335.commit() +[2619140.816] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) +[2619140.831] {Default Queue} -> wl_surface#3335.commit() +[2619140.844] {Default Queue} -> wl_region#3359.subtract(0, 0, 140, 575) +[2619140.851] {Default Queue} -> wl_region#3359.add(-138, -553, 140, 555) +[2619140.857] {Default Queue} -> wl_surface#3335.set_opaque_region(wl_region#3360) +[2619140.871] {Default Queue} -> wl_surface#3335.set_input_region(wl_region#3359) +[2619140.879] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) +[2619140.885] {Default Queue} -> wl_surface#3335.commit() +[2619140.891] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) +[2619140.897] {Default Queue} -> wl_surface#3335.commit() +[2619140.916] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) +[2619140.923] {Default Queue} -> wl_surface#3335.commit() +[2619140.927] {Default Queue} -> wl_region#3295.subtract(0, 0, 109, 161) +[2619140.933] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 570) +[2619140.937] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 570) +[2619140.941] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2619140.944] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2619141.033] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 570) +[2619141.038] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 570) +[2619141.042] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2619141.046] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2619141.052] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) +[2619141.056] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) +[2619141.116] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 570) +[2619141.121] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 570) +[2619141.125] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) +[2619141.128] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) +[2619141.134] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) +[2619141.138] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) +[2619141.143] {Default Queue} -> wl_region#3359.subtract(0, 0, 140, 575) +[2619141.147] {Default Queue} -> wl_region#3359.add(-138, -553, 140, 555) +[2619141.151] {Default Queue} -> wl_surface#3335.set_opaque_region(wl_region#3360) +[2619141.155] {Default Queue} -> wl_surface#3335.set_input_region(wl_region#3359) +[2619141.159] {Default Queue} -> wl_surface#3271.damage(0, 0, 109, 161) +[2619141.163] {Default Queue} -> wl_region#3295.subtract(0, 0, 247, 714) +[2619141.167] {Default Queue} -> wl_region#3295.add(-135, -550, 244, 711) +[2619141.171] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) +[2619141.174] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) +[2619141.178] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) +[2619141.182] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) +[2619141.186] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) +[2619141.190] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) +[2619141.194] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) +[2619141.198] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) +[2619141.201] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) +[2619141.205] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) +[2619141.209] {Default Queue} -> wl_surface#3271.damage(0, 0, 109, 161) +[2619141.222] {Default Queue} -> wl_buffer#3764.destroy() +[2619141.227] {Default Queue} -> wl_buffer#3765.destroy() +[2619141.231] {Default Queue} -> wl_shm_pool#3762.destroy() +[2619141.234] {Default Queue} -> wl_shm_pool#3763.destroy() +[2619141.310] {Default Queue} -> wl_shm#3279.create_pool(new id wl_shm_pool#3690, fd 575, 70196) +[2619141.317] {Default Queue} -> wl_shm#3279.create_pool(new id wl_shm_pool#3693, fd 578, 70196) +[2619141.321] {Default Queue} -> wl_shm_pool#3690.create_buffer(new id wl_buffer#3692, 0, 109, 161, 436, 0) +[2619141.325] {Default Queue} -> wl_shm_pool#3693.create_buffer(new id wl_buffer#284, 0, 109, 161, 436, 0) +[2619141.347] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3692, 0, 0) +[2619141.351] {Default Queue} -> wl_surface#3271.commit() +[2619141.371] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3692, 0, 0) +[2619141.375] {Default Queue} -> wl_surface#3271.commit() +[2619141.383] {Default Queue} -> wl_region#3295.subtract(0, 0, 247, 714) +[2619141.387] {Default Queue} -> wl_region#3295.add(-135, -550, 244, 711) +[2619141.391] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) +[2619141.395] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) +[2619141.401] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3692, 0, 0) +[2619141.409] {Default Queue} -> wl_surface#3271.commit() +[2619141.418] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3692, 0, 0) +[2619141.422] {Default Queue} -> wl_surface#3271.commit() +[2619142.490] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3692, 0, 0) +[2619142.501] {Default Queue} -> wl_surface#3271.commit() +[2619142.512] {Default Queue} -> wl_region#3295.subtract(0, 0, 247, 714) +[2619142.516] {Default Queue} -> wl_region#3295.add(-135, -550, 244, 711) +[2619142.520] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) +[2619142.524] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) +[2619142.531] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3692, 0, 0) +[2619142.536] {Default Queue} -> wl_surface#3271.commit() +[2619142.541] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3692, 0, 0) +[2619142.545] {Default Queue} -> wl_surface#3271.commit() +[2619142.552] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3692, 0, 0) +[2619142.556] {Default Queue} -> wl_surface#3271.commit() +[2619142.568] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) +[2619142.573] {Default Queue} -> wl_surface#3239.commit() +[2619143.635] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) +[2619143.640] {Default Queue} -> wl_surface#3239.commit() +[2619143.649] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) +[2619143.654] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) +[2619143.658] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2619143.662] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2619143.669] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) +[2619143.673] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) +[2619143.677] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2619143.681] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2619143.686] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) +[2619143.690] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) +[2619143.694] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2619143.698] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2619143.703] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) +[2619143.707] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) +[2619143.712] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2619143.717] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2619143.726] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) +[2619143.732] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) +[2619143.737] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) +[2619143.743] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) +[2619143.753] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) +[2619143.760] {Default Queue} -> wl_surface#3239.commit() +[2619143.767] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) +[2619143.772] {Default Queue} -> wl_surface#3239.commit() +[2619143.780] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) +[2619143.783] {Default Queue} -> wl_surface#3239.commit() +[2619143.796] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) +[2619143.801] {Default Queue} -> wl_surface#3559.commit() +[2619144.863] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) +[2619144.868] {Default Queue} -> wl_surface#3559.commit() +[2619144.880] {Default Queue} -> wl_region#3583.subtract(0, 0, 365, 717) +[2619144.884] {Default Queue} -> wl_region#3583.add(-20, -550, 135, 717) +[2619144.888] {Default Queue} -> wl_surface#3559.set_opaque_region(wl_region#3584) +[2619144.892] {Default Queue} -> wl_surface#3559.set_input_region(wl_region#3583) +[2619144.898] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) +[2619144.904] {Default Queue} -> wl_surface#3559.commit() +[2619144.913] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) +[2619144.919] {Default Queue} -> wl_surface#3559.commit() +[2619144.926] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) +[2619144.929] {Default Queue} -> wl_surface#3559.commit() +[2619144.940] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) +[2619144.945] {Default Queue} -> wl_surface#3591.commit() +[2619146.007] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) +[2619146.014] {Default Queue} -> wl_surface#3591.commit() +[2619146.023] {Default Queue} -> wl_region#3615.subtract(0, 0, 480, 717) +[2619146.027] {Default Queue} -> wl_region#3615.add(-20, -550, 135, 717) +[2619146.032] {Default Queue} -> wl_surface#3591.set_opaque_region(wl_region#3616) +[2619146.040] {Default Queue} -> wl_surface#3591.set_input_region(wl_region#3615) +[2619146.053] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) +[2619146.059] {Default Queue} -> wl_surface#3591.commit() +[2619146.064] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) +[2619146.068] {Default Queue} -> wl_surface#3591.commit() +[2619146.075] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) +[2619146.079] {Default Queue} -> wl_surface#3591.commit() +[2619146.090] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) +[2619146.094] {Default Queue} -> wl_surface#3623.commit() +[2619147.158] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) +[2619147.162] {Default Queue} -> wl_surface#3623.commit() +[2619147.171] {Default Queue} -> wl_region#3647.subtract(0, 0, 595, 717) +[2619147.176] {Default Queue} -> wl_region#3647.add(-20, -550, 135, 717) +[2619147.180] {Default Queue} -> wl_surface#3623.set_opaque_region(wl_region#3648) +[2619147.184] {Default Queue} -> wl_surface#3623.set_input_region(wl_region#3647) +[2619147.190] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) +[2619147.194] {Default Queue} -> wl_surface#3623.commit() +[2619147.199] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) +[2619147.203] {Default Queue} -> wl_surface#3623.commit() +[2619147.209] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) +[2619147.215] {Default Queue} -> wl_surface#3623.commit() +[2619147.246] {Default Queue} -> wl_surface#2983.attach(wl_buffer#2619, 0, 0) +[2619147.251] {Default Queue} -> wl_surface#2983.commit() +[2619147.383] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) +[2619147.389] {Default Queue} -> wl_surface#71.commit() +[2619147.419] {Display Queue} wl_display#1.delete_id(3165) +[2619147.425] {Display Queue} wl_display#1.delete_id(3166) +[2619147.429] {Display Queue} wl_display#1.delete_id(3163) +[2619147.432] {Display Queue} wl_display#1.delete_id(3164) +[2619147.436] {Display Queue} wl_display#1.delete_id(3744) +[2619147.440] {Display Queue} wl_display#1.delete_id(3745) +[2619147.443] {Display Queue} wl_display#1.delete_id(3742) +[2619147.447] {Display Queue} wl_display#1.delete_id(3743) +[2619147.451] {Display Queue} wl_display#1.delete_id(3733) +[2619147.454] {Display Queue} wl_display#1.delete_id(3732) +[2619147.458] {Display Queue} wl_display#1.delete_id(3731) +[2619147.462] {Display Queue} wl_display#1.delete_id(3730) +[2619147.465] {Display Queue} wl_display#1.delete_id(3723) +[2619147.469] {Display Queue} wl_display#1.delete_id(3748) +[2619147.473] {Display Queue} wl_display#1.delete_id(3749) +[2619147.476] {Display Queue} wl_display#1.delete_id(3746) +[2619147.480] {Display Queue} wl_display#1.delete_id(3747) +[2619147.483] {Display Queue} wl_display#1.delete_id(3752) +[2619147.487] {Display Queue} wl_display#1.delete_id(3753) +[2619147.490] {Display Queue} wl_display#1.delete_id(3750) +[2619147.494] {Display Queue} wl_display#1.delete_id(3751) +[2619147.498] {Display Queue} wl_display#1.delete_id(3741) +[2619147.501] {Display Queue} wl_display#1.delete_id(3740) +[2619147.505] {Display Queue} wl_display#1.delete_id(3739) +[2619147.509] {Display Queue} wl_display#1.delete_id(3738) +[2619147.512] {Display Queue} wl_display#1.delete_id(3712) +[2619147.521] {Display Queue} wl_display#1.delete_id(3760) +[2619147.528] {Display Queue} wl_display#1.delete_id(3761) +[2619147.531] {Display Queue} wl_display#1.delete_id(3758) +[2619147.535] {Display Queue} wl_display#1.delete_id(3759) +[2619147.539] {Default Queue} wl_pointer#24.motion(187310777, 19.00000000, 15.80078125) +[2619147.543] {Default Queue} wl_pointer#81.motion(187310777, 19.00000000, 15.80078125) +[2619147.549] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619147.553] {Default Queue} wl_pointer#105.motion(187310777, 19.00000000, 15.80078125) +[2619147.557] {Default Queue} wl_pointer#137.motion(187310777, 19.00000000, 15.80078125) +[2619147.561] {Default Queue} wl_pointer#169.motion(187310777, 19.00000000, 15.80078125) +[2619147.565] {Default Queue} wl_pointer#201.motion(187310777, 19.00000000, 15.80078125) +[2619147.569] {Default Queue} wl_pointer#233.motion(187310777, 19.00000000, 15.80078125) +[2619147.573] {Default Queue} wl_pointer#265.motion(187310777, 19.00000000, 15.80078125) +[2619147.577] {Default Queue} wl_pointer#297.motion(187310777, 19.00000000, 15.80078125) +[2619147.581] {Default Queue} wl_pointer#329.motion(187310777, 19.00000000, 15.80078125) +[2619147.585] {Default Queue} wl_pointer#361.motion(187310777, 19.00000000, 15.80078125) +[2619147.589] {Default Queue} wl_pointer#393.motion(187310777, 19.00000000, 15.80078125) +[2619147.593] {Default Queue} wl_pointer#425.motion(187310777, 19.00000000, 15.80078125) +[2619147.597] {Default Queue} wl_pointer#457.motion(187310777, 19.00000000, 15.80078125) +[2619147.601] {Default Queue} wl_pointer#489.motion(187310777, 19.00000000, 15.80078125) +[2619147.605] {Default Queue} wl_pointer#521.motion(187310777, 19.00000000, 15.80078125) +[2619147.609] {Default Queue} wl_pointer#553.motion(187310777, 19.00000000, 15.80078125) +[2619147.613] {Default Queue} wl_pointer#585.motion(187310777, 19.00000000, 15.80078125) +[2619147.617] {Default Queue} wl_pointer#617.motion(187310777, 19.00000000, 15.80078125) +[2619147.621] {Default Queue} wl_pointer#649.motion(187310777, 19.00000000, 15.80078125) +[2619147.625] {Default Queue} wl_pointer#681.motion(187310777, 19.00000000, 15.80078125) +[2619147.629] {Default Queue} wl_pointer#713.motion(187310777, 19.00000000, 15.80078125) +[2619147.632] {Default Queue} wl_pointer#745.motion(187310777, 19.00000000, 15.80078125) +[2619147.636] {Default Queue} wl_pointer#777.motion(187310777, 19.00000000, 15.80078125) +[2619147.641] {Default Queue} wl_pointer#809.motion(187310777, 19.00000000, 15.80078125) +[2619147.645] {Default Queue} wl_pointer#841.motion(187310777, 19.00000000, 15.80078125) +[2619147.649] {Default Queue} wl_pointer#873.motion(187310777, 19.00000000, 15.80078125) +[2619147.653] {Default Queue} wl_pointer#905.motion(187310777, 19.00000000, 15.80078125) +[2619147.656] {Default Queue} wl_pointer#937.motion(187310777, 19.00000000, 15.80078125) +[2619147.660] {Default Queue} wl_pointer#969.motion(187310777, 19.00000000, 15.80078125) +[2619147.664] {Default Queue} wl_pointer#1001.motion(187310777, 19.00000000, 15.80078125) +[2619147.668] {Default Queue} wl_pointer#1033.motion(187310777, 19.00000000, 15.80078125) +[2619147.672] {Default Queue} wl_pointer#1065.motion(187310777, 19.00000000, 15.80078125) +[2619147.676] {Default Queue} wl_pointer#1097.motion(187310777, 19.00000000, 15.80078125) +[2619147.680] {Default Queue} wl_pointer#1129.motion(187310777, 19.00000000, 15.80078125) +[2619147.684] {Default Queue} wl_pointer#1161.motion(187310777, 19.00000000, 15.80078125) +[2619147.688] {Default Queue} wl_pointer#1193.motion(187310777, 19.00000000, 15.80078125) +[2619147.692] {Default Queue} wl_pointer#1225.motion(187310777, 19.00000000, 15.80078125) +[2619147.696] {Default Queue} wl_pointer#1257.motion(187310777, 19.00000000, 15.80078125) +[2619147.700] {Default Queue} wl_pointer#1289.motion(187310777, 19.00000000, 15.80078125) +[2619147.704] {Default Queue} wl_pointer#1321.motion(187310777, 19.00000000, 15.80078125) +[2619147.707] {Default Queue} wl_pointer#1353.motion(187310777, 19.00000000, 15.80078125) +[2619147.711] {Default Queue} wl_pointer#1385.motion(187310777, 19.00000000, 15.80078125) +[2619147.718] {Default Queue} wl_pointer#1417.motion(187310777, 19.00000000, 15.80078125) +[2619147.724] {Default Queue} wl_pointer#1449.motion(187310777, 19.00000000, 15.80078125) +[2619147.728] {Default Queue} wl_pointer#1481.motion(187310777, 19.00000000, 15.80078125) +[2619147.731] {Default Queue} wl_pointer#1513.motion(187310777, 19.00000000, 15.80078125) +[2619147.735] {Default Queue} wl_pointer#1545.motion(187310777, 19.00000000, 15.80078125) +[2619147.739] {Default Queue} wl_pointer#1577.motion(187310777, 19.00000000, 15.80078125) +[2619147.743] {Default Queue} wl_pointer#1609.motion(187310777, 19.00000000, 15.80078125) +[2619147.747] {Default Queue} wl_pointer#1641.motion(187310777, 19.00000000, 15.80078125) +[2619147.751] {Default Queue} wl_pointer#1673.motion(187310777, 19.00000000, 15.80078125) +[2619147.755] {Default Queue} wl_pointer#1705.motion(187310777, 19.00000000, 15.80078125) +[2619147.759] {Default Queue} wl_pointer#1737.motion(187310777, 19.00000000, 15.80078125) +[2619147.764] {Default Queue} wl_pointer#1762.motion(187310777, 19.00000000, 15.80078125) +[2619147.769] {Default Queue} wl_pointer#1801.motion(187310777, 19.00000000, 15.80078125) +[2619147.775] {Default Queue} wl_pointer#1833.motion(187310777, 19.00000000, 15.80078125) +[2619147.782] {Default Queue} wl_pointer#1865.motion(187310777, 19.00000000, 15.80078125) +[2619147.788] {Default Queue} wl_pointer#1897.motion(187310777, 19.00000000, 15.80078125) +[2619147.794] {Default Queue} wl_pointer#1929.motion(187310777, 19.00000000, 15.80078125) +[2619147.800] {Default Queue} wl_pointer#1961.motion(187310777, 19.00000000, 15.80078125) +[2619147.806] {Default Queue} wl_pointer#1993.motion(187310777, 19.00000000, 15.80078125) +[2619147.812] {Default Queue} wl_pointer#2025.motion(187310777, 19.00000000, 15.80078125) +[2619147.818] {Default Queue} wl_pointer#2057.motion(187310777, 19.00000000, 15.80078125) +[2619147.823] {Default Queue} wl_pointer#2089.motion(187310777, 19.00000000, 15.80078125) +[2619147.827] {Default Queue} wl_pointer#2121.motion(187310777, 19.00000000, 15.80078125) +[2619147.831] {Default Queue} wl_pointer#2153.motion(187310777, 19.00000000, 15.80078125) +[2619147.834] {Default Queue} wl_pointer#2185.motion(187310777, 19.00000000, 15.80078125) +[2619147.838] {Default Queue} wl_pointer#2217.motion(187310777, 19.00000000, 15.80078125) +[2619147.842] {Default Queue} wl_pointer#2249.motion(187310777, 19.00000000, 15.80078125) +[2619147.846] {Default Queue} wl_pointer#2281.motion(187310777, 19.00000000, 15.80078125) +[2619147.850] {Default Queue} wl_pointer#2313.motion(187310777, 19.00000000, 15.80078125) +[2619147.855] {Default Queue} wl_pointer#2345.motion(187310777, 19.00000000, 15.80078125) +[2619147.859] {Default Queue} wl_pointer#2377.motion(187310777, 19.00000000, 15.80078125) +[2619147.864] {Default Queue} wl_pointer#2409.motion(187310777, 19.00000000, 15.80078125) +[2619147.868] {Default Queue} wl_pointer#2441.motion(187310777, 19.00000000, 15.80078125) +[2619147.875] {Default Queue} wl_pointer#2473.motion(187310777, 19.00000000, 15.80078125) +[2619147.879] {Default Queue} wl_pointer#2498.motion(187310777, 19.00000000, 15.80078125) +[2619147.891] {Default Queue} -> wl_buffer#3727.destroy() +[2619147.896] {Default Queue} -> wl_buffer#3728.destroy() +[2619147.900] {Default Queue} -> wl_shm_pool#3708.destroy() +[2619147.904] {Default Queue} -> wl_shm_pool#3726.destroy() +[2619147.909] {Default Queue} -> wl_surface#3729.destroy() +[2619147.949] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3759, fd 575, 640) +[2619147.955] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3758, fd 578, 640) +[2619147.959] {Default Queue} -> wl_shm_pool#3759.create_buffer(new id wl_buffer#3761, 0, 10, 16, 40, 0) +[2619147.963] {Default Queue} -> wl_shm_pool#3758.create_buffer(new id wl_buffer#3760, 0, 10, 16, 40, 0) +[2619147.971] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3712) +[2619147.975] {Default Queue} -> wl_surface#3712.attach(wl_buffer#3761, 0, 0) +[2619147.979] {Default Queue} -> wl_surface#3712.commit() +[2619147.987] {Default Queue} -> wl_surface#3712.attach(wl_buffer#3761, 0, 0) +[2619147.993] {Default Queue} -> wl_surface#3712.commit() +[2619147.997] {Default Queue} wl_pointer#2537.motion(187310777, 19.00000000, 15.80078125) +[2619148.001] {Default Queue} wl_pointer#2569.motion(187310777, 19.00000000, 15.80078125) +[2619148.006] {Default Queue} wl_pointer#2601.motion(187310777, 19.00000000, 15.80078125) +[2619148.010] {Default Queue} wl_pointer#2633.motion(187310777, 19.00000000, 15.80078125) +[2619148.014] {Default Queue} wl_pointer#2665.motion(187310777, 19.00000000, 15.80078125) +[2619148.018] {Default Queue} wl_pointer#2697.motion(187310777, 19.00000000, 15.80078125) +[2619148.022] {Default Queue} wl_pointer#2729.motion(187310777, 19.00000000, 15.80078125) +[2619148.026] {Default Queue} wl_pointer#2761.motion(187310777, 19.00000000, 15.80078125) +[2619148.030] {Default Queue} wl_pointer#2793.motion(187310777, 19.00000000, 15.80078125) +[2619148.034] {Default Queue} wl_pointer#2825.motion(187310777, 19.00000000, 15.80078125) +[2619148.038] {Default Queue} wl_pointer#2857.motion(187310777, 19.00000000, 15.80078125) +[2619148.042] {Default Queue} wl_pointer#2889.motion(187310777, 19.00000000, 15.80078125) +[2619148.046] {Default Queue} wl_pointer#2921.motion(187310777, 19.00000000, 15.80078125) +[2619148.050] {Default Queue} wl_pointer#2953.motion(187310777, 19.00000000, 15.80078125) +[2619148.055] {Default Queue} wl_pointer#2985.motion(187310777, 19.00000000, 15.80078125) +[2619148.060] {Default Queue} wl_pointer#3017.motion(187310777, 19.00000000, 15.80078125) +[2619148.069] {Default Queue} wl_pointer#3049.motion(187310777, 19.00000000, 15.80078125) +[2619148.078] {Default Queue} wl_pointer#3081.motion(187310777, 19.00000000, 15.80078125) +[2619148.083] {Default Queue} wl_pointer#3113.motion(187310777, 19.00000000, 15.80078125) +[2619148.087] {Default Queue} wl_pointer#3145.motion(187310777, 19.00000000, 15.80078125) +[2619148.091] {Default Queue} wl_pointer#3177.motion(187310777, 19.00000000, 15.80078125) +[2619148.095] {Default Queue} wl_pointer#3209.motion(187310777, 19.00000000, 15.80078125) +[2619148.099] {Default Queue} wl_pointer#3241.motion(187310777, 19.00000000, 15.80078125) +[2619148.103] {Default Queue} wl_pointer#3273.motion(187310777, 19.00000000, 15.80078125) +[2619148.107] {Default Queue} wl_pointer#3305.motion(187310777, 19.00000000, 15.80078125) +[2619148.111] {Default Queue} wl_pointer#3337.motion(187310777, 19.00000000, 15.80078125) +[2619148.115] {Default Queue} wl_pointer#3369.motion(187310777, 19.00000000, 15.80078125) +[2619148.119] {Default Queue} wl_pointer#3401.motion(187310777, 19.00000000, 15.80078125) +[2619148.123] {Default Queue} wl_pointer#3433.motion(187310777, 19.00000000, 15.80078125) +[2619148.127] {Default Queue} wl_pointer#3465.motion(187310777, 19.00000000, 15.80078125) +[2619148.131] {Default Queue} wl_pointer#3497.motion(187310777, 19.00000000, 15.80078125) +[2619148.135] {Default Queue} wl_pointer#3529.motion(187310777, 19.00000000, 15.80078125) +[2619148.139] {Default Queue} wl_pointer#3561.motion(187310777, 19.00000000, 15.80078125) +[2619148.143] {Default Queue} wl_pointer#3593.motion(187310777, 19.00000000, 15.80078125) +[2619148.147] {Default Queue} wl_pointer#3625.motion(187310777, 19.00000000, 15.80078125) +[2619148.151] {Default Queue} wl_pointer#3657.motion(187310777, 19.00000000, 15.80078125) +[2619148.155] {Default Queue} wl_pointer#3695.motion(187310777, 19.00000000, 15.80078125) +[2619148.361] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) +[2619148.368] {Default Queue} -> wl_surface#3.commit() +[2619148.647] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) +[2619148.654] {Default Queue} -> wl_surface#19.commit() +[2619149.789] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) +[2619149.796] {Default Queue} -> wl_surface#3.commit() +[2619149.879] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) +[2619149.886] {Default Queue} -> wl_surface#19.commit() +[2619149.933] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) +[2619149.943] {Default Queue} -> wl_surface#3.commit() +[2619149.984] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) +[2619149.990] {Default Queue} -> wl_surface#19.commit() +[2619150.001] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2619150.006] {Default Queue} -> wl_surface#43.commit() +[2619150.012] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) +[2619150.016] {Default Queue} -> wl_surface#199.commit() +[2619150.023] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) +[2619150.028] {Default Queue} -> wl_surface#43.commit() +[2619150.040] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) +[2619150.047] {Default Queue} -> wl_surface#199.commit() +[2619151.110] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) +[2619151.116] {Default Queue} -> wl_surface#199.commit() +[2619151.127] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 69) +[2619151.131] {Default Queue} -> wl_region#223.add(-20, -49, 22, 69) +[2619151.136] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2619151.139] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2619151.215] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 69) +[2619151.219] {Default Queue} -> wl_region#223.add(-20, -49, 22, 69) +[2619151.223] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2619151.227] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2619151.234] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2619151.238] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2619151.288] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 69) +[2619151.292] {Default Queue} -> wl_region#223.add(-20, -49, 22, 69) +[2619151.296] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) +[2619151.300] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) +[2619151.305] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2619151.309] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) +[2619151.314] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) +[2619151.318] {Default Queue} -> wl_surface#199.commit() +[2619151.322] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) +[2619151.326] {Default Queue} -> wl_surface#199.commit() +[2619151.331] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) +[2619151.335] {Default Queue} -> wl_surface#199.commit() +[2619151.341] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) +[2619151.345] {Default Queue} -> wl_surface#263.commit() +[2619152.410] {Display Queue} wl_display#1.delete_id(3389) +[2619152.424] {Display Queue} wl_display#1.delete_id(3390) +[2619152.429] {Display Queue} wl_display#1.delete_id(3387) +[2619152.433] {Display Queue} wl_display#1.delete_id(3388) +[2619152.437] {Display Queue} wl_display#1.delete_id(3764) +[2619152.440] {Display Queue} wl_display#1.delete_id(3765) +[2619152.444] {Display Queue} wl_display#1.delete_id(3762) +[2619152.447] {Display Queue} wl_display#1.delete_id(3763) +[2619152.451] {Default Queue} wl_pointer#24.motion(187310782, 18.60156250, 15.80078125) +[2619152.456] {Default Queue} wl_pointer#81.motion(187310782, 18.60156250, 15.80078125) +[2619152.462] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619152.466] {Default Queue} wl_pointer#105.motion(187310782, 18.60156250, 15.80078125) +[2619152.470] {Default Queue} wl_pointer#137.motion(187310782, 18.60156250, 15.80078125) +[2619152.474] {Default Queue} wl_pointer#169.motion(187310782, 18.60156250, 15.80078125) +[2619152.479] {Default Queue} wl_pointer#201.motion(187310782, 18.60156250, 15.80078125) +[2619152.483] {Default Queue} wl_pointer#233.motion(187310782, 18.60156250, 15.80078125) +[2619152.487] {Default Queue} wl_pointer#265.motion(187310782, 18.60156250, 15.80078125) +[2619152.491] {Default Queue} wl_pointer#297.motion(187310782, 18.60156250, 15.80078125) +[2619152.495] {Default Queue} wl_pointer#329.motion(187310782, 18.60156250, 15.80078125) +[2619152.498] {Default Queue} wl_pointer#361.motion(187310782, 18.60156250, 15.80078125) +[2619152.507] {Default Queue} wl_pointer#393.motion(187310782, 18.60156250, 15.80078125) +[2619152.516] {Default Queue} wl_pointer#425.motion(187310782, 18.60156250, 15.80078125) +[2619152.520] {Default Queue} wl_pointer#457.motion(187310782, 18.60156250, 15.80078125) +[2619152.524] {Default Queue} wl_pointer#489.motion(187310782, 18.60156250, 15.80078125) +[2619152.528] {Default Queue} wl_pointer#521.motion(187310782, 18.60156250, 15.80078125) +[2619152.532] {Default Queue} wl_pointer#553.motion(187310782, 18.60156250, 15.80078125) +[2619152.536] {Default Queue} wl_pointer#585.motion(187310782, 18.60156250, 15.80078125) +[2619152.540] {Default Queue} wl_pointer#617.motion(187310782, 18.60156250, 15.80078125) +[2619152.544] {Default Queue} wl_pointer#649.motion(187310782, 18.60156250, 15.80078125) +[2619152.548] {Default Queue} wl_pointer#681.motion(187310782, 18.60156250, 15.80078125) +[2619152.552] {Default Queue} wl_pointer#713.motion(187310782, 18.60156250, 15.80078125) +[2619152.556] {Default Queue} wl_pointer#745.motion(187310782, 18.60156250, 15.80078125) +[2619152.560] {Default Queue} wl_pointer#777.motion(187310782, 18.60156250, 15.80078125) +[2619152.564] {Default Queue} wl_pointer#809.motion(187310782, 18.60156250, 15.80078125) +[2619152.568] {Default Queue} wl_pointer#841.motion(187310782, 18.60156250, 15.80078125) +[2619152.571] {Default Queue} wl_pointer#873.motion(187310782, 18.60156250, 15.80078125) +[2619152.575] {Default Queue} wl_pointer#905.motion(187310782, 18.60156250, 15.80078125) +[2619152.579] {Default Queue} wl_pointer#937.motion(187310782, 18.60156250, 15.80078125) +[2619152.583] {Default Queue} wl_pointer#969.motion(187310782, 18.60156250, 15.80078125) +[2619152.587] {Default Queue} wl_pointer#1001.motion(187310782, 18.60156250, 15.80078125) +[2619152.591] {Default Queue} wl_pointer#1033.motion(187310782, 18.60156250, 15.80078125) +[2619152.595] {Default Queue} wl_pointer#1065.motion(187310782, 18.60156250, 15.80078125) +[2619152.599] {Default Queue} wl_pointer#1097.motion(187310782, 18.60156250, 15.80078125) +[2619152.603] {Default Queue} wl_pointer#1129.motion(187310782, 18.60156250, 15.80078125) +[2619152.607] {Default Queue} wl_pointer#1161.motion(187310782, 18.60156250, 15.80078125) +[2619152.610] {Default Queue} wl_pointer#1193.motion(187310782, 18.60156250, 15.80078125) +[2619152.614] {Default Queue} wl_pointer#1225.motion(187310782, 18.60156250, 15.80078125) +[2619152.618] {Default Queue} wl_pointer#1257.motion(187310782, 18.60156250, 15.80078125) +[2619152.622] {Default Queue} wl_pointer#1289.motion(187310782, 18.60156250, 15.80078125) +[2619152.626] {Default Queue} wl_pointer#1321.motion(187310782, 18.60156250, 15.80078125) +[2619152.630] {Default Queue} wl_pointer#1353.motion(187310782, 18.60156250, 15.80078125) +[2619152.634] {Default Queue} wl_pointer#1385.motion(187310782, 18.60156250, 15.80078125) +[2619152.638] {Default Queue} wl_pointer#1417.motion(187310782, 18.60156250, 15.80078125) +[2619152.642] {Default Queue} wl_pointer#1449.motion(187310782, 18.60156250, 15.80078125) +[2619152.645] {Default Queue} wl_pointer#1481.motion(187310782, 18.60156250, 15.80078125) +[2619152.649] {Default Queue} wl_pointer#1513.motion(187310782, 18.60156250, 15.80078125) +[2619152.653] {Default Queue} wl_pointer#1545.motion(187310782, 18.60156250, 15.80078125) +[2619152.657] {Default Queue} wl_pointer#1577.motion(187310782, 18.60156250, 15.80078125) +[2619152.661] {Default Queue} wl_pointer#1609.motion(187310782, 18.60156250, 15.80078125) +[2619152.665] {Default Queue} wl_pointer#1641.motion(187310782, 18.60156250, 15.80078125) +[2619152.669] {Default Queue} wl_pointer#1673.motion(187310782, 18.60156250, 15.80078125) +[2619152.673] {Default Queue} wl_pointer#1705.motion(187310782, 18.60156250, 15.80078125) +[2619152.677] {Default Queue} wl_pointer#1737.motion(187310782, 18.60156250, 15.80078125) +[2619152.681] {Default Queue} wl_pointer#1762.motion(187310782, 18.60156250, 15.80078125) +[2619152.685] {Default Queue} wl_pointer#1801.motion(187310782, 18.60156250, 15.80078125) +[2619152.689] {Default Queue} wl_pointer#1833.motion(187310782, 18.60156250, 15.80078125) +[2619152.696] {Default Queue} wl_pointer#1865.motion(187310782, 18.60156250, 15.80078125) +[2619152.701] {Default Queue} wl_pointer#1897.motion(187310782, 18.60156250, 15.80078125) +[2619152.705] {Default Queue} wl_pointer#1929.motion(187310782, 18.60156250, 15.80078125) +[2619152.709] {Default Queue} wl_pointer#1961.motion(187310782, 18.60156250, 15.80078125) +[2619152.713] {Default Queue} wl_pointer#1993.motion(187310782, 18.60156250, 15.80078125) +[2619152.717] {Default Queue} wl_pointer#2025.motion(187310782, 18.60156250, 15.80078125) +[2619152.721] {Default Queue} wl_pointer#2057.motion(187310782, 18.60156250, 15.80078125) +[2619152.725] {Default Queue} wl_pointer#2089.motion(187310782, 18.60156250, 15.80078125) +[2619152.729] {Default Queue} wl_pointer#2121.motion(187310782, 18.60156250, 15.80078125) +[2619152.732] {Default Queue} wl_pointer#2153.motion(187310782, 18.60156250, 15.80078125) +[2619152.736] {Default Queue} wl_pointer#2185.motion(187310782, 18.60156250, 15.80078125) +[2619152.740] {Default Queue} wl_pointer#2217.motion(187310782, 18.60156250, 15.80078125) +[2619152.744] {Default Queue} wl_pointer#2249.motion(187310782, 18.60156250, 15.80078125) +[2619152.748] {Default Queue} wl_pointer#2281.motion(187310782, 18.60156250, 15.80078125) +[2619152.752] {Default Queue} wl_pointer#2313.motion(187310782, 18.60156250, 15.80078125) +[2619152.756] {Default Queue} wl_pointer#2345.motion(187310782, 18.60156250, 15.80078125) +[2619152.760] {Default Queue} wl_pointer#2377.motion(187310782, 18.60156250, 15.80078125) +[2619152.764] {Default Queue} wl_pointer#2409.motion(187310782, 18.60156250, 15.80078125) +[2619152.769] {Default Queue} wl_pointer#2441.motion(187310782, 18.60156250, 15.80078125) +[2619152.772] {Default Queue} wl_pointer#2473.motion(187310782, 18.60156250, 15.80078125) +[2619152.776] {Default Queue} wl_pointer#2498.motion(187310782, 18.60156250, 15.80078125) +[2619152.789] {Default Queue} -> wl_buffer#3761.destroy() +[2619152.794] {Default Queue} -> wl_buffer#3760.destroy() +[2619152.798] {Default Queue} -> wl_shm_pool#3759.destroy() +[2619152.801] {Default Queue} -> wl_shm_pool#3758.destroy() +[2619152.806] {Default Queue} -> wl_surface#3712.destroy() +[2619152.845] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3763, fd 575, 640) +[2619152.851] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3762, fd 578, 640) +[2619152.855] {Default Queue} -> wl_shm_pool#3763.create_buffer(new id wl_buffer#3765, 0, 10, 16, 40, 0) +[2619152.860] {Default Queue} -> wl_shm_pool#3762.create_buffer(new id wl_buffer#3764, 0, 10, 16, 40, 0) +[2619152.874] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3388) +[2619152.878] {Default Queue} -> wl_surface#3388.attach(wl_buffer#3765, 0, 0) +[2619152.882] {Default Queue} -> wl_surface#3388.commit() +[2619152.887] {Default Queue} -> wl_surface#3388.attach(wl_buffer#3765, 0, 0) +[2619152.891] {Default Queue} -> wl_surface#3388.commit() +[2619152.895] {Default Queue} wl_pointer#2537.motion(187310782, 18.60156250, 15.80078125) +[2619152.899] {Default Queue} wl_pointer#2569.motion(187310782, 18.60156250, 15.80078125) +[2619152.903] {Default Queue} wl_pointer#2601.motion(187310782, 18.60156250, 15.80078125) +[2619152.907] {Default Queue} wl_pointer#2633.motion(187310782, 18.60156250, 15.80078125) +[2619152.911] {Default Queue} wl_pointer#2665.motion(187310782, 18.60156250, 15.80078125) +[2619152.915] {Default Queue} wl_pointer#2697.motion(187310782, 18.60156250, 15.80078125) +[2619152.919] {Default Queue} wl_pointer#2729.motion(187310782, 18.60156250, 15.80078125) +[2619152.923] {Default Queue} wl_pointer#2761.motion(187310782, 18.60156250, 15.80078125) +[2619152.927] {Default Queue} wl_pointer#2793.motion(187310782, 18.60156250, 15.80078125) +[2619152.931] {Default Queue} wl_pointer#2825.motion(187310782, 18.60156250, 15.80078125) +[2619152.936] {Default Queue} wl_pointer#2857.motion(187310782, 18.60156250, 15.80078125) +[2619152.940] {Default Queue} wl_pointer#2889.motion(187310782, 18.60156250, 15.80078125) +[2619152.947] {Default Queue} wl_pointer#2921.motion(187310782, 18.60156250, 15.80078125) +[2619152.952] {Default Queue} wl_pointer#2953.motion(187310782, 18.60156250, 15.80078125) +[2619152.956] {Default Queue} wl_pointer#2985.motion(187310782, 18.60156250, 15.80078125) +[2619152.960] {Default Queue} wl_pointer#3017.motion(187310782, 18.60156250, 15.80078125) +[2619152.964] {Default Queue} wl_pointer#3049.motion(187310782, 18.60156250, 15.80078125) +[2619152.968] {Default Queue} wl_pointer#3081.motion(187310782, 18.60156250, 15.80078125) +[2619152.972] {Default Queue} wl_pointer#3113.motion(187310782, 18.60156250, 15.80078125) +[2619152.976] {Default Queue} wl_pointer#3145.motion(187310782, 18.60156250, 15.80078125) +[2619152.980] {Default Queue} wl_pointer#3177.motion(187310782, 18.60156250, 15.80078125) +[2619152.984] {Default Queue} wl_pointer#3209.motion(187310782, 18.60156250, 15.80078125) +[2619152.988] {Default Queue} wl_pointer#3241.motion(187310782, 18.60156250, 15.80078125) +[2619152.992] {Default Queue} wl_pointer#3273.motion(187310782, 18.60156250, 15.80078125) +[2619152.996] {Default Queue} wl_pointer#3305.motion(187310782, 18.60156250, 15.80078125) +[2619153.000] {Default Queue} wl_pointer#3337.motion(187310782, 18.60156250, 15.80078125) +[2619153.004] {Default Queue} wl_pointer#3369.motion(187310782, 18.60156250, 15.80078125) +[2619153.008] {Default Queue} wl_pointer#3401.motion(187310782, 18.60156250, 15.80078125) +[2619153.012] {Default Queue} wl_pointer#3433.motion(187310782, 18.60156250, 15.80078125) +[2619153.016] {Default Queue} wl_pointer#3465.motion(187310782, 18.60156250, 15.80078125) +[2619153.020] {Default Queue} wl_pointer#3497.motion(187310782, 18.60156250, 15.80078125) +[2619153.024] {Default Queue} wl_pointer#3529.motion(187310782, 18.60156250, 15.80078125) +[2619153.028] {Default Queue} wl_pointer#3561.motion(187310782, 18.60156250, 15.80078125) +[2619153.032] {Default Queue} wl_pointer#3593.motion(187310782, 18.60156250, 15.80078125) +[2619153.036] {Default Queue} wl_pointer#3625.motion(187310782, 18.60156250, 15.80078125) +[2619153.041] {Default Queue} wl_pointer#3657.motion(187310782, 18.60156250, 15.80078125) +[2619153.044] {Default Queue} wl_pointer#3695.motion(187310782, 18.60156250, 15.80078125) +[2619153.056] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) +[2619153.062] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) +[2619153.066] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2619153.070] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2619153.078] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) +[2619153.082] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) +[2619153.086] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2619153.090] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2619153.097] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) +[2619153.101] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) +[2619153.105] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2619153.109] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2619153.113] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) +[2619153.117] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) +[2619153.121] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2619153.125] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2619153.129] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) +[2619153.133] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) +[2619153.137] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2619153.141] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2619153.220] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) +[2619153.225] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) +[2619153.229] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) +[2619153.233] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) +[2619153.244] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2619153.250] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) +[2619153.255] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) +[2619153.259] {Default Queue} -> wl_surface#263.commit() +[2619153.263] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) +[2619153.266] {Default Queue} -> wl_surface#263.commit() +[2619153.273] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) +[2619153.276] {Default Queue} -> wl_surface#263.commit() +[2619153.283] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) +[2619153.287] {Default Queue} -> wl_surface#231.commit() +[2619154.351] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) +[2619154.358] {Default Queue} -> wl_surface#231.commit() +[2619154.366] {Default Queue} -> wl_region#255.subtract(0, 0, 25, 74) +[2619154.371] {Default Queue} -> wl_region#255.add(-23, -52, 25, 54) +[2619154.375] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) +[2619154.378] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) +[2619154.383] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) +[2619154.387] {Default Queue} -> wl_surface#231.commit() +[2619154.391] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) +[2619154.395] {Default Queue} -> wl_surface#231.commit() +[2619154.400] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) +[2619154.404] {Default Queue} -> wl_surface#231.commit() +[2619154.417] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) +[2619154.421] {Default Queue} -> wl_surface#167.commit() +[2619155.483] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) +[2619155.488] {Default Queue} -> wl_surface#167.commit() +[2619155.495] {Default Queue} -> wl_region#191.subtract(0, 0, 132, 213) +[2619155.499] {Default Queue} -> wl_region#191.add(-20, -49, 129, 210) +[2619155.502] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) +[2619155.506] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) +[2619155.513] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) +[2619155.520] {Default Queue} -> wl_surface#167.commit() +[2619155.525] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) +[2619155.529] {Default Queue} -> wl_surface#167.commit() +[2619155.535] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) +[2619155.539] {Default Queue} -> wl_surface#167.commit() +[2619155.550] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) +[2619155.554] {Default Queue} -> wl_surface#135.commit() +[2619155.574] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) +[2619155.579] {Default Queue} -> wl_surface#295.commit() +[2619155.585] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) +[2619155.589] {Default Queue} -> wl_surface#391.commit() +[2619156.651] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) +[2619156.662] {Default Queue} -> wl_surface#391.commit() +[2619156.673] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 69) +[2619156.680] {Default Queue} -> wl_region#415.add(-480, -49, 482, 69) +[2619156.684] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2619156.688] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2619156.780] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 69) +[2619156.785] {Default Queue} -> wl_region#415.add(-480, -49, 482, 69) +[2619156.789] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2619156.793] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2619156.799] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2619156.803] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2619156.872] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 69) +[2619156.877] {Default Queue} -> wl_region#415.add(-480, -49, 482, 69) +[2619156.893] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) +[2619156.898] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) +[2619156.911] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2619156.920] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) +[2619156.926] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) +[2619156.931] {Default Queue} -> wl_surface#391.commit() +[2619156.935] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) +[2619156.938] {Default Queue} -> wl_surface#391.commit() +[2619156.945] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) +[2619156.949] {Default Queue} -> wl_surface#391.commit() +[2619156.955] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) +[2619156.959] {Default Queue} -> wl_surface#519.commit() +[2619157.014] {Display Queue} wl_display#1.delete_id(3727) +[2619157.022] {Display Queue} wl_display#1.delete_id(3728) +[2619157.025] {Display Queue} wl_display#1.delete_id(3708) +[2619157.029] {Display Queue} wl_display#1.delete_id(3726) +[2619157.033] {Display Queue} wl_display#1.delete_id(3729) +[2619157.037] {Default Queue} wl_pointer#24.motion(187310787, 18.19921875, 15.80078125) +[2619157.041] {Default Queue} wl_pointer#81.motion(187310787, 18.19921875, 15.80078125) +[2619157.046] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619157.051] {Default Queue} wl_pointer#105.motion(187310787, 18.19921875, 15.80078125) +[2619157.055] {Default Queue} wl_pointer#137.motion(187310787, 18.19921875, 15.80078125) +[2619157.059] {Default Queue} wl_pointer#169.motion(187310787, 18.19921875, 15.80078125) +[2619157.063] {Default Queue} wl_pointer#201.motion(187310787, 18.19921875, 15.80078125) +[2619157.067] {Default Queue} wl_pointer#233.motion(187310787, 18.19921875, 15.80078125) +[2619157.071] {Default Queue} wl_pointer#265.motion(187310787, 18.19921875, 15.80078125) +[2619157.075] {Default Queue} wl_pointer#297.motion(187310787, 18.19921875, 15.80078125) +[2619157.079] {Default Queue} wl_pointer#329.motion(187310787, 18.19921875, 15.80078125) +[2619157.083] {Default Queue} wl_pointer#361.motion(187310787, 18.19921875, 15.80078125) +[2619157.087] {Default Queue} wl_pointer#393.motion(187310787, 18.19921875, 15.80078125) +[2619157.091] {Default Queue} wl_pointer#425.motion(187310787, 18.19921875, 15.80078125) +[2619157.095] {Default Queue} wl_pointer#457.motion(187310787, 18.19921875, 15.80078125) +[2619157.099] {Default Queue} wl_pointer#489.motion(187310787, 18.19921875, 15.80078125) +[2619157.103] {Default Queue} wl_pointer#521.motion(187310787, 18.19921875, 15.80078125) +[2619157.107] {Default Queue} wl_pointer#553.motion(187310787, 18.19921875, 15.80078125) +[2619157.111] {Default Queue} wl_pointer#585.motion(187310787, 18.19921875, 15.80078125) +[2619157.115] {Default Queue} wl_pointer#617.motion(187310787, 18.19921875, 15.80078125) +[2619157.119] {Default Queue} wl_pointer#649.motion(187310787, 18.19921875, 15.80078125) +[2619157.123] {Default Queue} wl_pointer#681.motion(187310787, 18.19921875, 15.80078125) +[2619157.126] {Default Queue} wl_pointer#713.motion(187310787, 18.19921875, 15.80078125) +[2619157.130] {Default Queue} wl_pointer#745.motion(187310787, 18.19921875, 15.80078125) +[2619157.134] {Default Queue} wl_pointer#777.motion(187310787, 18.19921875, 15.80078125) +[2619157.138] {Default Queue} wl_pointer#809.motion(187310787, 18.19921875, 15.80078125) +[2619157.142] {Default Queue} wl_pointer#841.motion(187310787, 18.19921875, 15.80078125) +[2619157.146] {Default Queue} wl_pointer#873.motion(187310787, 18.19921875, 15.80078125) +[2619157.150] {Default Queue} wl_pointer#905.motion(187310787, 18.19921875, 15.80078125) +[2619157.154] {Default Queue} wl_pointer#937.motion(187310787, 18.19921875, 15.80078125) +[2619157.158] {Default Queue} wl_pointer#969.motion(187310787, 18.19921875, 15.80078125) +[2619157.162] {Default Queue} wl_pointer#1001.motion(187310787, 18.19921875, 15.80078125) +[2619157.166] {Default Queue} wl_pointer#1033.motion(187310787, 18.19921875, 15.80078125) +[2619157.170] {Default Queue} wl_pointer#1065.motion(187310787, 18.19921875, 15.80078125) +[2619157.174] {Default Queue} wl_pointer#1097.motion(187310787, 18.19921875, 15.80078125) +[2619157.183] {Default Queue} wl_pointer#1129.motion(187310787, 18.19921875, 15.80078125) +[2619157.188] {Default Queue} wl_pointer#1161.motion(187310787, 18.19921875, 15.80078125) +[2619157.192] {Default Queue} wl_pointer#1193.motion(187310787, 18.19921875, 15.80078125) +[2619157.196] {Default Queue} wl_pointer#1225.motion(187310787, 18.19921875, 15.80078125) +[2619157.200] {Default Queue} wl_pointer#1257.motion(187310787, 18.19921875, 15.80078125) +[2619157.204] {Default Queue} wl_pointer#1289.motion(187310787, 18.19921875, 15.80078125) +[2619157.208] {Default Queue} wl_pointer#1321.motion(187310787, 18.19921875, 15.80078125) +[2619157.212] {Default Queue} wl_pointer#1353.motion(187310787, 18.19921875, 15.80078125) +[2619157.216] {Default Queue} wl_pointer#1385.motion(187310787, 18.19921875, 15.80078125) +[2619157.220] {Default Queue} wl_pointer#1417.motion(187310787, 18.19921875, 15.80078125) +[2619157.224] {Default Queue} wl_pointer#1449.motion(187310787, 18.19921875, 15.80078125) +[2619157.228] {Default Queue} wl_pointer#1481.motion(187310787, 18.19921875, 15.80078125) +[2619157.232] {Default Queue} wl_pointer#1513.motion(187310787, 18.19921875, 15.80078125) +[2619157.236] {Default Queue} wl_pointer#1545.motion(187310787, 18.19921875, 15.80078125) +[2619157.240] {Default Queue} wl_pointer#1577.motion(187310787, 18.19921875, 15.80078125) +[2619157.244] {Default Queue} wl_pointer#1609.motion(187310787, 18.19921875, 15.80078125) +[2619157.248] {Default Queue} wl_pointer#1641.motion(187310787, 18.19921875, 15.80078125) +[2619157.252] {Default Queue} wl_pointer#1673.motion(187310787, 18.19921875, 15.80078125) +[2619157.256] {Default Queue} wl_pointer#1705.motion(187310787, 18.19921875, 15.80078125) +[2619157.260] {Default Queue} wl_pointer#1737.motion(187310787, 18.19921875, 15.80078125) +[2619157.263] {Default Queue} wl_pointer#1762.motion(187310787, 18.19921875, 15.80078125) +[2619157.267] {Default Queue} wl_pointer#1801.motion(187310787, 18.19921875, 15.80078125) +[2619157.271] {Default Queue} wl_pointer#1833.motion(187310787, 18.19921875, 15.80078125) +[2619157.275] {Default Queue} wl_pointer#1865.motion(187310787, 18.19921875, 15.80078125) +[2619157.279] {Default Queue} wl_pointer#1897.motion(187310787, 18.19921875, 15.80078125) +[2619157.283] {Default Queue} wl_pointer#1929.motion(187310787, 18.19921875, 15.80078125) +[2619157.287] {Default Queue} wl_pointer#1961.motion(187310787, 18.19921875, 15.80078125) +[2619157.291] {Default Queue} wl_pointer#1993.motion(187310787, 18.19921875, 15.80078125) +[2619157.295] {Default Queue} wl_pointer#2025.motion(187310787, 18.19921875, 15.80078125) +[2619157.299] {Default Queue} wl_pointer#2057.motion(187310787, 18.19921875, 15.80078125) +[2619157.303] {Default Queue} wl_pointer#2089.motion(187310787, 18.19921875, 15.80078125) +[2619157.307] {Default Queue} wl_pointer#2121.motion(187310787, 18.19921875, 15.80078125) +[2619157.311] {Default Queue} wl_pointer#2153.motion(187310787, 18.19921875, 15.80078125) +[2619157.315] {Default Queue} wl_pointer#2185.motion(187310787, 18.19921875, 15.80078125) +[2619157.319] {Default Queue} wl_pointer#2217.motion(187310787, 18.19921875, 15.80078125) +[2619157.322] {Default Queue} wl_pointer#2249.motion(187310787, 18.19921875, 15.80078125) +[2619157.326] {Default Queue} wl_pointer#2281.motion(187310787, 18.19921875, 15.80078125) +[2619157.330] {Default Queue} wl_pointer#2313.motion(187310787, 18.19921875, 15.80078125) +[2619157.335] {Default Queue} wl_pointer#2345.motion(187310787, 18.19921875, 15.80078125) +[2619157.339] {Default Queue} wl_pointer#2377.motion(187310787, 18.19921875, 15.80078125) +[2619157.343] {Default Queue} wl_pointer#2409.motion(187310787, 18.19921875, 15.80078125) +[2619157.347] {Default Queue} wl_pointer#2441.motion(187310787, 18.19921875, 15.80078125) +[2619157.351] {Default Queue} wl_pointer#2473.motion(187310787, 18.19921875, 15.80078125) +[2619157.355] {Default Queue} wl_pointer#2498.motion(187310787, 18.19921875, 15.80078125) +[2619157.367] {Default Queue} -> wl_buffer#3765.destroy() +[2619157.371] {Default Queue} -> wl_buffer#3764.destroy() +[2619157.379] {Default Queue} -> wl_shm_pool#3763.destroy() +[2619157.384] {Default Queue} -> wl_shm_pool#3762.destroy() +[2619157.389] {Default Queue} -> wl_surface#3388.destroy() +[2619157.436] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3729, fd 575, 640) +[2619157.442] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3726, fd 578, 640) +[2619157.446] {Default Queue} -> wl_shm_pool#3729.create_buffer(new id wl_buffer#3708, 0, 10, 16, 40, 0) +[2619157.451] {Default Queue} -> wl_shm_pool#3726.create_buffer(new id wl_buffer#3728, 0, 10, 16, 40, 0) +[2619157.458] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3727) +[2619157.462] {Default Queue} -> wl_surface#3727.attach(wl_buffer#3708, 0, 0) +[2619157.466] {Default Queue} -> wl_surface#3727.commit() +[2619157.471] {Default Queue} -> wl_surface#3727.attach(wl_buffer#3708, 0, 0) +[2619157.475] {Default Queue} -> wl_surface#3727.commit() +[2619157.479] {Default Queue} wl_pointer#2537.motion(187310787, 18.19921875, 15.80078125) +[2619157.483] {Default Queue} wl_pointer#2569.motion(187310787, 18.19921875, 15.80078125) +[2619157.487] {Default Queue} wl_pointer#2601.motion(187310787, 18.19921875, 15.80078125) +[2619157.491] {Default Queue} wl_pointer#2633.motion(187310787, 18.19921875, 15.80078125) +[2619157.495] {Default Queue} wl_pointer#2665.motion(187310787, 18.19921875, 15.80078125) +[2619157.499] {Default Queue} wl_pointer#2697.motion(187310787, 18.19921875, 15.80078125) +[2619157.503] {Default Queue} wl_pointer#2729.motion(187310787, 18.19921875, 15.80078125) +[2619157.507] {Default Queue} wl_pointer#2761.motion(187310787, 18.19921875, 15.80078125) +[2619157.511] {Default Queue} wl_pointer#2793.motion(187310787, 18.19921875, 15.80078125) +[2619157.514] {Default Queue} wl_pointer#2825.motion(187310787, 18.19921875, 15.80078125) +[2619157.519] {Default Queue} wl_pointer#2857.motion(187310787, 18.19921875, 15.80078125) +[2619157.523] {Default Queue} wl_pointer#2889.motion(187310787, 18.19921875, 15.80078125) +[2619157.527] {Default Queue} wl_pointer#2921.motion(187310787, 18.19921875, 15.80078125) +[2619157.531] {Default Queue} wl_pointer#2953.motion(187310787, 18.19921875, 15.80078125) +[2619157.534] {Default Queue} wl_pointer#2985.motion(187310787, 18.19921875, 15.80078125) +[2619157.538] {Default Queue} wl_pointer#3017.motion(187310787, 18.19921875, 15.80078125) +[2619157.542] {Default Queue} wl_pointer#3049.motion(187310787, 18.19921875, 15.80078125) +[2619157.546] {Default Queue} wl_pointer#3081.motion(187310787, 18.19921875, 15.80078125) +[2619157.550] {Default Queue} wl_pointer#3113.motion(187310787, 18.19921875, 15.80078125) +[2619157.554] {Default Queue} wl_pointer#3145.motion(187310787, 18.19921875, 15.80078125) +[2619157.558] {Default Queue} wl_pointer#3177.motion(187310787, 18.19921875, 15.80078125) +[2619157.562] {Default Queue} wl_pointer#3209.motion(187310787, 18.19921875, 15.80078125) +[2619157.567] {Default Queue} wl_pointer#3241.motion(187310787, 18.19921875, 15.80078125) +[2619157.571] {Default Queue} wl_pointer#3273.motion(187310787, 18.19921875, 15.80078125) +[2619157.575] {Default Queue} wl_pointer#3305.motion(187310787, 18.19921875, 15.80078125) +[2619157.579] {Default Queue} wl_pointer#3337.motion(187310787, 18.19921875, 15.80078125) +[2619157.583] {Default Queue} wl_pointer#3369.motion(187310787, 18.19921875, 15.80078125) +[2619157.587] {Default Queue} wl_pointer#3401.motion(187310787, 18.19921875, 15.80078125) +[2619157.591] {Default Queue} wl_pointer#3433.motion(187310787, 18.19921875, 15.80078125) +[2619157.595] {Default Queue} wl_pointer#3465.motion(187310787, 18.19921875, 15.80078125) +[2619157.599] {Default Queue} wl_pointer#3497.motion(187310787, 18.19921875, 15.80078125) +[2619157.603] {Default Queue} wl_pointer#3529.motion(187310787, 18.19921875, 15.80078125) +[2619157.607] {Default Queue} wl_pointer#3561.motion(187310787, 18.19921875, 15.80078125) +[2619157.611] {Default Queue} wl_pointer#3593.motion(187310787, 18.19921875, 15.80078125) +[2619157.615] {Default Queue} wl_pointer#3625.motion(187310787, 18.19921875, 15.80078125) +[2619157.622] {Default Queue} wl_pointer#3657.motion(187310787, 18.19921875, 15.80078125) +[2619157.627] {Default Queue} wl_pointer#3695.motion(187310787, 18.19921875, 15.80078125) +[2619157.637] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) +[2619157.642] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) +[2619157.646] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2619157.650] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2619157.656] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) +[2619157.660] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) +[2619157.664] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2619157.668] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2619157.675] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) +[2619157.679] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) +[2619157.683] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2619157.687] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2619157.693] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) +[2619157.697] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) +[2619157.701] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2619157.705] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2619157.710] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) +[2619157.714] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) +[2619157.718] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2619157.721] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2619157.726] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) +[2619157.730] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) +[2619157.734] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) +[2619157.737] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) +[2619157.742] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) +[2619157.746] {Default Queue} -> wl_surface#519.commit() +[2619157.750] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) +[2619157.754] {Default Queue} -> wl_surface#519.commit() +[2619157.759] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) +[2619157.763] {Default Queue} -> wl_surface#519.commit() +[2619157.769] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) +[2619157.773] {Default Queue} -> wl_surface#551.commit() +[2619158.838] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) +[2619158.848] {Default Queue} -> wl_surface#551.commit() +[2619158.859] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) +[2619158.870] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) +[2619158.874] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2619158.878] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2619158.884] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) +[2619158.888] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) +[2619158.892] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2619158.896] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2619158.903] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) +[2619158.907] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) +[2619158.911] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2619158.915] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2619158.921] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) +[2619158.925] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) +[2619158.929] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2619158.932] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2619158.937] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) +[2619158.941] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) +[2619158.945] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2619158.953] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2619158.960] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) +[2619158.964] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) +[2619158.968] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) +[2619158.971] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) +[2619158.976] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) +[2619158.980] {Default Queue} -> wl_surface#551.commit() +[2619158.984] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) +[2619158.988] {Default Queue} -> wl_surface#551.commit() +[2619158.994] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) +[2619158.998] {Default Queue} -> wl_surface#551.commit() +[2619159.003] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) +[2619159.007] {Default Queue} -> wl_surface#583.commit() +[2619160.069] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) +[2619160.077] {Default Queue} -> wl_surface#583.commit() +[2619160.086] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) +[2619160.091] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) +[2619160.095] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2619160.099] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2619160.105] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) +[2619160.109] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) +[2619160.113] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2619160.117] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2619160.123] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) +[2619160.127] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) +[2619160.131] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2619160.135] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2619160.141] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) +[2619160.145] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) +[2619160.148] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2619160.152] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2619160.157] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) +[2619160.161] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) +[2619160.164] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2619160.168] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2619160.173] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) +[2619160.177] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) +[2619160.181] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) +[2619160.185] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) +[2619160.189] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) +[2619160.193] {Default Queue} -> wl_surface#583.commit() +[2619160.197] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) +[2619160.201] {Default Queue} -> wl_surface#583.commit() +[2619160.206] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) +[2619160.210] {Default Queue} -> wl_surface#583.commit() +[2619160.216] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) +[2619160.220] {Default Queue} -> wl_surface#615.commit() +[2619161.281] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) +[2619161.286] {Default Queue} -> wl_surface#615.commit() +[2619161.293] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) +[2619161.297] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) +[2619161.301] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2619161.305] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2619161.311] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) +[2619161.315] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) +[2619161.323] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2619161.329] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2619161.336] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) +[2619161.340] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) +[2619161.344] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2619161.347] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2619161.352] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) +[2619161.356] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) +[2619161.360] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2619161.364] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2619161.368] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) +[2619161.372] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) +[2619161.376] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2619161.379] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2619161.384] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) +[2619161.388] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) +[2619161.392] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) +[2619161.395] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) +[2619161.400] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) +[2619161.404] {Default Queue} -> wl_surface#615.commit() +[2619161.408] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) +[2619161.411] {Default Queue} -> wl_surface#615.commit() +[2619161.417] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) +[2619161.421] {Default Queue} -> wl_surface#615.commit() +[2619161.426] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) +[2619161.430] {Default Queue} -> wl_surface#647.commit() +[2619162.494] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) +[2619162.505] {Default Queue} -> wl_surface#647.commit() +[2619162.516] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) +[2619162.520] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) +[2619162.524] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2619162.528] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2619162.535] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) +[2619162.541] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) +[2619162.545] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2619162.548] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2619162.555] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) +[2619162.559] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) +[2619162.563] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2619162.567] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2619162.573] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) +[2619162.577] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) +[2619162.581] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2619162.585] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2619162.589] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) +[2619162.593] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) +[2619162.597] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2619162.601] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2619162.606] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) +[2619162.610] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) +[2619162.613] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) +[2619162.617] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) +[2619162.622] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) +[2619162.626] {Default Queue} -> wl_surface#647.commit() +[2619162.629] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) +[2619162.638] {Default Queue} -> wl_surface#647.commit() +[2619162.673] {Display Queue} wl_display#1.delete_id(3761) +[2619162.680] {Display Queue} wl_display#1.delete_id(3760) +[2619162.686] {Display Queue} wl_display#1.delete_id(3759) +[2619162.691] {Display Queue} wl_display#1.delete_id(3758) +[2619162.696] {Display Queue} wl_display#1.delete_id(3712) +[2619162.701] {Default Queue} wl_pointer#24.motion(187310797, 17.80078125, 15.80078125) +[2619162.707] {Default Queue} wl_pointer#81.motion(187310797, 17.80078125, 15.80078125) +[2619162.714] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619162.720] {Default Queue} wl_pointer#105.motion(187310797, 17.80078125, 15.80078125) +[2619162.726] {Default Queue} wl_pointer#137.motion(187310797, 17.80078125, 15.80078125) +[2619162.732] {Default Queue} wl_pointer#169.motion(187310797, 17.80078125, 15.80078125) +[2619162.738] {Default Queue} wl_pointer#201.motion(187310797, 17.80078125, 15.80078125) +[2619162.744] {Default Queue} wl_pointer#233.motion(187310797, 17.80078125, 15.80078125) +[2619162.750] {Default Queue} wl_pointer#265.motion(187310797, 17.80078125, 15.80078125) +[2619162.756] {Default Queue} wl_pointer#297.motion(187310797, 17.80078125, 15.80078125) +[2619162.762] {Default Queue} wl_pointer#329.motion(187310797, 17.80078125, 15.80078125) +[2619162.767] {Default Queue} wl_pointer#361.motion(187310797, 17.80078125, 15.80078125) +[2619162.773] {Default Queue} wl_pointer#393.motion(187310797, 17.80078125, 15.80078125) +[2619162.779] {Default Queue} wl_pointer#425.motion(187310797, 17.80078125, 15.80078125) +[2619162.785] {Default Queue} wl_pointer#457.motion(187310797, 17.80078125, 15.80078125) +[2619162.791] {Default Queue} wl_pointer#489.motion(187310797, 17.80078125, 15.80078125) +[2619162.796] {Default Queue} wl_pointer#521.motion(187310797, 17.80078125, 15.80078125) +[2619162.802] {Default Queue} wl_pointer#553.motion(187310797, 17.80078125, 15.80078125) +[2619162.806] {Default Queue} wl_pointer#585.motion(187310797, 17.80078125, 15.80078125) +[2619162.810] {Default Queue} wl_pointer#617.motion(187310797, 17.80078125, 15.80078125) +[2619162.814] {Default Queue} wl_pointer#649.motion(187310797, 17.80078125, 15.80078125) +[2619162.818] {Default Queue} wl_pointer#681.motion(187310797, 17.80078125, 15.80078125) +[2619162.822] {Default Queue} wl_pointer#713.motion(187310797, 17.80078125, 15.80078125) +[2619162.826] {Default Queue} wl_pointer#745.motion(187310797, 17.80078125, 15.80078125) +[2619162.830] {Default Queue} wl_pointer#777.motion(187310797, 17.80078125, 15.80078125) +[2619162.834] {Default Queue} wl_pointer#809.motion(187310797, 17.80078125, 15.80078125) +[2619162.838] {Default Queue} wl_pointer#841.motion(187310797, 17.80078125, 15.80078125) +[2619162.842] {Default Queue} wl_pointer#873.motion(187310797, 17.80078125, 15.80078125) +[2619162.846] {Default Queue} wl_pointer#905.motion(187310797, 17.80078125, 15.80078125) +[2619162.850] {Default Queue} wl_pointer#937.motion(187310797, 17.80078125, 15.80078125) +[2619162.854] {Default Queue} wl_pointer#969.motion(187310797, 17.80078125, 15.80078125) +[2619162.858] {Default Queue} wl_pointer#1001.motion(187310797, 17.80078125, 15.80078125) +[2619162.867] {Default Queue} wl_pointer#1033.motion(187310797, 17.80078125, 15.80078125) +[2619162.871] {Default Queue} wl_pointer#1065.motion(187310797, 17.80078125, 15.80078125) +[2619162.875] {Default Queue} wl_pointer#1097.motion(187310797, 17.80078125, 15.80078125) +[2619162.879] {Default Queue} wl_pointer#1129.motion(187310797, 17.80078125, 15.80078125) +[2619162.883] {Default Queue} wl_pointer#1161.motion(187310797, 17.80078125, 15.80078125) +[2619162.887] {Default Queue} wl_pointer#1193.motion(187310797, 17.80078125, 15.80078125) +[2619162.891] {Default Queue} wl_pointer#1225.motion(187310797, 17.80078125, 15.80078125) +[2619162.895] {Default Queue} wl_pointer#1257.motion(187310797, 17.80078125, 15.80078125) +[2619162.899] {Default Queue} wl_pointer#1289.motion(187310797, 17.80078125, 15.80078125) +[2619162.903] {Default Queue} wl_pointer#1321.motion(187310797, 17.80078125, 15.80078125) +[2619162.910] {Default Queue} wl_pointer#1353.motion(187310797, 17.80078125, 15.80078125) +[2619162.916] {Default Queue} wl_pointer#1385.motion(187310797, 17.80078125, 15.80078125) +[2619162.920] {Default Queue} wl_pointer#1417.motion(187310797, 17.80078125, 15.80078125) +[2619162.924] {Default Queue} wl_pointer#1449.motion(187310797, 17.80078125, 15.80078125) +[2619162.928] {Default Queue} wl_pointer#1481.motion(187310797, 17.80078125, 15.80078125) +[2619162.932] {Default Queue} wl_pointer#1513.motion(187310797, 17.80078125, 15.80078125) +[2619162.936] {Default Queue} wl_pointer#1545.motion(187310797, 17.80078125, 15.80078125) +[2619162.940] {Default Queue} wl_pointer#1577.motion(187310797, 17.80078125, 15.80078125) +[2619162.944] {Default Queue} wl_pointer#1609.motion(187310797, 17.80078125, 15.80078125) +[2619162.948] {Default Queue} wl_pointer#1641.motion(187310797, 17.80078125, 15.80078125) +[2619162.952] {Default Queue} wl_pointer#1673.motion(187310797, 17.80078125, 15.80078125) +[2619162.956] {Default Queue} wl_pointer#1705.motion(187310797, 17.80078125, 15.80078125) +[2619162.960] {Default Queue} wl_pointer#1737.motion(187310797, 17.80078125, 15.80078125) +[2619162.964] {Default Queue} wl_pointer#1762.motion(187310797, 17.80078125, 15.80078125) +[2619162.968] {Default Queue} wl_pointer#1801.motion(187310797, 17.80078125, 15.80078125) +[2619162.972] {Default Queue} wl_pointer#1833.motion(187310797, 17.80078125, 15.80078125) +[2619162.976] {Default Queue} wl_pointer#1865.motion(187310797, 17.80078125, 15.80078125) +[2619162.980] {Default Queue} wl_pointer#1897.motion(187310797, 17.80078125, 15.80078125) +[2619162.984] {Default Queue} wl_pointer#1929.motion(187310797, 17.80078125, 15.80078125) +[2619162.988] {Default Queue} wl_pointer#1961.motion(187310797, 17.80078125, 15.80078125) +[2619162.992] {Default Queue} wl_pointer#1993.motion(187310797, 17.80078125, 15.80078125) +[2619162.996] {Default Queue} wl_pointer#2025.motion(187310797, 17.80078125, 15.80078125) +[2619163.000] {Default Queue} wl_pointer#2057.motion(187310797, 17.80078125, 15.80078125) +[2619163.004] {Default Queue} wl_pointer#2089.motion(187310797, 17.80078125, 15.80078125) +[2619163.008] {Default Queue} wl_pointer#2121.motion(187310797, 17.80078125, 15.80078125) +[2619163.012] {Default Queue} wl_pointer#2153.motion(187310797, 17.80078125, 15.80078125) +[2619163.016] {Default Queue} wl_pointer#2185.motion(187310797, 17.80078125, 15.80078125) +[2619163.020] {Default Queue} wl_pointer#2217.motion(187310797, 17.80078125, 15.80078125) +[2619163.024] {Default Queue} wl_pointer#2249.motion(187310797, 17.80078125, 15.80078125) +[2619163.028] {Default Queue} wl_pointer#2281.motion(187310797, 17.80078125, 15.80078125) +[2619163.032] {Default Queue} wl_pointer#2313.motion(187310797, 17.80078125, 15.80078125) +[2619163.036] {Default Queue} wl_pointer#2345.motion(187310797, 17.80078125, 15.80078125) +[2619163.041] {Default Queue} wl_pointer#2377.motion(187310797, 17.80078125, 15.80078125) +[2619163.045] {Default Queue} wl_pointer#2409.motion(187310797, 17.80078125, 15.80078125) +[2619163.049] {Default Queue} wl_pointer#2441.motion(187310797, 17.80078125, 15.80078125) +[2619163.053] {Default Queue} wl_pointer#2473.motion(187310797, 17.80078125, 15.80078125) +[2619163.057] {Default Queue} wl_pointer#2498.motion(187310797, 17.80078125, 15.80078125) +[2619163.069] {Default Queue} -> wl_buffer#3708.destroy() +[2619163.074] {Default Queue} -> wl_buffer#3728.destroy() +[2619163.078] {Default Queue} -> wl_shm_pool#3729.destroy() +[2619163.082] {Default Queue} -> wl_shm_pool#3726.destroy() +[2619163.087] {Default Queue} -> wl_surface#3727.destroy() +[2619163.134] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3712, fd 575, 640) +[2619163.141] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3758, fd 578, 640) +[2619163.145] {Default Queue} -> wl_shm_pool#3712.create_buffer(new id wl_buffer#3759, 0, 10, 16, 40, 0) +[2619163.149] {Default Queue} -> wl_shm_pool#3758.create_buffer(new id wl_buffer#3760, 0, 10, 16, 40, 0) +[2619163.157] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3761) +[2619163.164] {Default Queue} -> wl_surface#3761.attach(wl_buffer#3759, 0, 0) +[2619163.170] {Default Queue} -> wl_surface#3761.commit() +[2619163.175] {Default Queue} -> wl_surface#3761.attach(wl_buffer#3759, 0, 0) +[2619163.179] {Default Queue} -> wl_surface#3761.commit() +[2619163.183] {Default Queue} wl_pointer#2537.motion(187310797, 17.80078125, 15.80078125) +[2619163.187] {Default Queue} wl_pointer#2569.motion(187310797, 17.80078125, 15.80078125) +[2619163.191] {Default Queue} wl_pointer#2601.motion(187310797, 17.80078125, 15.80078125) +[2619163.195] {Default Queue} wl_pointer#2633.motion(187310797, 17.80078125, 15.80078125) +[2619163.199] {Default Queue} wl_pointer#2665.motion(187310797, 17.80078125, 15.80078125) +[2619163.203] {Default Queue} wl_pointer#2697.motion(187310797, 17.80078125, 15.80078125) +[2619163.207] {Default Queue} wl_pointer#2729.motion(187310797, 17.80078125, 15.80078125) +[2619163.211] {Default Queue} wl_pointer#2761.motion(187310797, 17.80078125, 15.80078125) +[2619163.215] {Default Queue} wl_pointer#2793.motion(187310797, 17.80078125, 15.80078125) +[2619163.219] {Default Queue} wl_pointer#2825.motion(187310797, 17.80078125, 15.80078125) +[2619163.223] {Default Queue} wl_pointer#2857.motion(187310797, 17.80078125, 15.80078125) +[2619163.228] {Default Queue} wl_pointer#2889.motion(187310797, 17.80078125, 15.80078125) +[2619163.232] {Default Queue} wl_pointer#2921.motion(187310797, 17.80078125, 15.80078125) +[2619163.236] {Default Queue} wl_pointer#2953.motion(187310797, 17.80078125, 15.80078125) +[2619163.240] {Default Queue} wl_pointer#2985.motion(187310797, 17.80078125, 15.80078125) +[2619163.244] {Default Queue} wl_pointer#3017.motion(187310797, 17.80078125, 15.80078125) +[2619163.248] {Default Queue} wl_pointer#3049.motion(187310797, 17.80078125, 15.80078125) +[2619163.252] {Default Queue} wl_pointer#3081.motion(187310797, 17.80078125, 15.80078125) +[2619163.256] {Default Queue} wl_pointer#3113.motion(187310797, 17.80078125, 15.80078125) +[2619163.260] {Default Queue} wl_pointer#3145.motion(187310797, 17.80078125, 15.80078125) +[2619163.264] {Default Queue} wl_pointer#3177.motion(187310797, 17.80078125, 15.80078125) +[2619163.268] {Default Queue} wl_pointer#3209.motion(187310797, 17.80078125, 15.80078125) +[2619163.272] {Default Queue} wl_pointer#3241.motion(187310797, 17.80078125, 15.80078125) +[2619163.276] {Default Queue} wl_pointer#3273.motion(187310797, 17.80078125, 15.80078125) +[2619163.280] {Default Queue} wl_pointer#3305.motion(187310797, 17.80078125, 15.80078125) +[2619163.284] {Default Queue} wl_pointer#3337.motion(187310797, 17.80078125, 15.80078125) +[2619163.288] {Default Queue} wl_pointer#3369.motion(187310797, 17.80078125, 15.80078125) +[2619163.292] {Default Queue} wl_pointer#3401.motion(187310797, 17.80078125, 15.80078125) +[2619163.296] {Default Queue} wl_pointer#3433.motion(187310797, 17.80078125, 15.80078125) +[2619163.300] {Default Queue} wl_pointer#3465.motion(187310797, 17.80078125, 15.80078125) +[2619163.304] {Default Queue} wl_pointer#3497.motion(187310797, 17.80078125, 15.80078125) +[2619163.308] {Default Queue} wl_pointer#3529.motion(187310797, 17.80078125, 15.80078125) +[2619163.312] {Default Queue} wl_pointer#3561.motion(187310797, 17.80078125, 15.80078125) +[2619163.316] {Default Queue} wl_pointer#3593.motion(187310797, 17.80078125, 15.80078125) +[2619163.320] {Default Queue} wl_pointer#3625.motion(187310797, 17.80078125, 15.80078125) +[2619163.325] {Default Queue} wl_pointer#3657.motion(187310797, 17.80078125, 15.80078125) +[2619163.329] {Default Queue} wl_pointer#3695.motion(187310797, 17.80078125, 15.80078125) +[2619163.332] {Default Queue} wl_pointer#24.motion(187310797, 17.80078125, 16.19921875) +[2619163.336] {Default Queue} wl_pointer#81.motion(187310797, 17.80078125, 16.19921875) +[2619163.341] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619163.346] {Default Queue} wl_pointer#105.motion(187310797, 17.80078125, 16.19921875) +[2619163.350] {Default Queue} wl_pointer#137.motion(187310797, 17.80078125, 16.19921875) +[2619163.356] {Default Queue} wl_pointer#169.motion(187310797, 17.80078125, 16.19921875) +[2619163.362] {Default Queue} wl_pointer#201.motion(187310797, 17.80078125, 16.19921875) +[2619163.366] {Default Queue} wl_pointer#233.motion(187310797, 17.80078125, 16.19921875) +[2619163.370] {Default Queue} wl_pointer#265.motion(187310797, 17.80078125, 16.19921875) +[2619163.373] {Default Queue} wl_pointer#297.motion(187310797, 17.80078125, 16.19921875) +[2619163.377] {Default Queue} wl_pointer#329.motion(187310797, 17.80078125, 16.19921875) +[2619163.381] {Default Queue} wl_pointer#361.motion(187310797, 17.80078125, 16.19921875) +[2619163.385] {Default Queue} wl_pointer#393.motion(187310797, 17.80078125, 16.19921875) +[2619163.389] {Default Queue} wl_pointer#425.motion(187310797, 17.80078125, 16.19921875) +[2619163.393] {Default Queue} wl_pointer#457.motion(187310797, 17.80078125, 16.19921875) +[2619163.397] {Default Queue} wl_pointer#489.motion(187310797, 17.80078125, 16.19921875) +[2619163.401] {Default Queue} wl_pointer#521.motion(187310797, 17.80078125, 16.19921875) +[2619163.405] {Default Queue} wl_pointer#553.motion(187310797, 17.80078125, 16.19921875) +[2619163.409] {Default Queue} wl_pointer#585.motion(187310797, 17.80078125, 16.19921875) +[2619163.413] {Default Queue} wl_pointer#617.motion(187310797, 17.80078125, 16.19921875) +[2619163.417] {Default Queue} wl_pointer#649.motion(187310797, 17.80078125, 16.19921875) +[2619163.421] {Default Queue} wl_pointer#681.motion(187310797, 17.80078125, 16.19921875) +[2619163.425] {Default Queue} wl_pointer#713.motion(187310797, 17.80078125, 16.19921875) +[2619163.429] {Default Queue} wl_pointer#745.motion(187310797, 17.80078125, 16.19921875) +[2619163.433] {Default Queue} wl_pointer#777.motion(187310797, 17.80078125, 16.19921875) +[2619163.437] {Default Queue} wl_pointer#809.motion(187310797, 17.80078125, 16.19921875) +[2619163.441] {Default Queue} wl_pointer#841.motion(187310797, 17.80078125, 16.19921875) +[2619163.445] {Default Queue} wl_pointer#873.motion(187310797, 17.80078125, 16.19921875) +[2619163.448] {Default Queue} wl_pointer#905.motion(187310797, 17.80078125, 16.19921875) +[2619163.452] {Default Queue} wl_pointer#937.motion(187310797, 17.80078125, 16.19921875) +[2619163.456] {Default Queue} wl_pointer#969.motion(187310797, 17.80078125, 16.19921875) +[2619163.461] {Default Queue} wl_pointer#1001.motion(187310797, 17.80078125, 16.19921875) +[2619163.467] {Default Queue} wl_pointer#1033.motion(187310797, 17.80078125, 16.19921875) +[2619163.473] {Default Queue} wl_pointer#1065.motion(187310797, 17.80078125, 16.19921875) +[2619163.478] {Default Queue} wl_pointer#1097.motion(187310797, 17.80078125, 16.19921875) +[2619163.483] {Default Queue} wl_pointer#1129.motion(187310797, 17.80078125, 16.19921875) +[2619163.489] {Default Queue} wl_pointer#1161.motion(187310797, 17.80078125, 16.19921875) +[2619163.494] {Default Queue} wl_pointer#1193.motion(187310797, 17.80078125, 16.19921875) +[2619163.499] {Default Queue} wl_pointer#1225.motion(187310797, 17.80078125, 16.19921875) +[2619163.504] {Default Queue} wl_pointer#1257.motion(187310797, 17.80078125, 16.19921875) +[2619163.510] {Default Queue} wl_pointer#1289.motion(187310797, 17.80078125, 16.19921875) +[2619163.515] {Default Queue} wl_pointer#1321.motion(187310797, 17.80078125, 16.19921875) +[2619163.520] {Default Queue} wl_pointer#1353.motion(187310797, 17.80078125, 16.19921875) +[2619163.525] {Default Queue} wl_pointer#1385.motion(187310797, 17.80078125, 16.19921875) +[2619163.530] {Default Queue} wl_pointer#1417.motion(187310797, 17.80078125, 16.19921875) +[2619163.536] {Default Queue} wl_pointer#1449.motion(187310797, 17.80078125, 16.19921875) +[2619163.541] {Default Queue} wl_pointer#1481.motion(187310797, 17.80078125, 16.19921875) +[2619163.546] {Default Queue} wl_pointer#1513.motion(187310797, 17.80078125, 16.19921875) +[2619163.551] {Default Queue} wl_pointer#1545.motion(187310797, 17.80078125, 16.19921875) +[2619163.556] {Default Queue} wl_pointer#1577.motion(187310797, 17.80078125, 16.19921875) +[2619163.561] {Default Queue} wl_pointer#1609.motion(187310797, 17.80078125, 16.19921875) +[2619163.571] {Default Queue} wl_pointer#1641.motion(187310797, 17.80078125, 16.19921875) +[2619163.580] {Default Queue} wl_pointer#1673.motion(187310797, 17.80078125, 16.19921875) +[2619163.586] {Default Queue} wl_pointer#1705.motion(187310797, 17.80078125, 16.19921875) +[2619163.592] {Default Queue} wl_pointer#1737.motion(187310797, 17.80078125, 16.19921875) +[2619163.598] {Default Queue} wl_pointer#1762.motion(187310797, 17.80078125, 16.19921875) +[2619163.604] {Default Queue} wl_pointer#1801.motion(187310797, 17.80078125, 16.19921875) +[2619163.610] {Default Queue} wl_pointer#1833.motion(187310797, 17.80078125, 16.19921875) +[2619163.615] {Default Queue} wl_pointer#1865.motion(187310797, 17.80078125, 16.19921875) +[2619163.621] {Default Queue} wl_pointer#1897.motion(187310797, 17.80078125, 16.19921875) +[2619163.627] {Default Queue} wl_pointer#1929.motion(187310797, 17.80078125, 16.19921875) +[2619163.633] {Default Queue} wl_pointer#1961.motion(187310797, 17.80078125, 16.19921875) +[2619163.638] {Default Queue} wl_pointer#1993.motion(187310797, 17.80078125, 16.19921875) +[2619163.644] {Default Queue} wl_pointer#2025.motion(187310797, 17.80078125, 16.19921875) +[2619163.649] {Default Queue} wl_pointer#2057.motion(187310797, 17.80078125, 16.19921875) +[2619163.654] {Default Queue} wl_pointer#2089.motion(187310797, 17.80078125, 16.19921875) +[2619163.658] {Default Queue} wl_pointer#2121.motion(187310797, 17.80078125, 16.19921875) +[2619163.662] {Default Queue} wl_pointer#2153.motion(187310797, 17.80078125, 16.19921875) +[2619163.666] {Default Queue} wl_pointer#2185.motion(187310797, 17.80078125, 16.19921875) +[2619163.670] {Default Queue} wl_pointer#2217.motion(187310797, 17.80078125, 16.19921875) +[2619163.674] {Default Queue} wl_pointer#2249.motion(187310797, 17.80078125, 16.19921875) +[2619163.678] {Default Queue} wl_pointer#2281.motion(187310797, 17.80078125, 16.19921875) +[2619163.682] {Default Queue} wl_pointer#2313.motion(187310797, 17.80078125, 16.19921875) +[2619163.686] {Default Queue} wl_pointer#2345.motion(187310797, 17.80078125, 16.19921875) +[2619163.690] {Default Queue} wl_pointer#2377.motion(187310797, 17.80078125, 16.19921875) +[2619163.694] {Default Queue} wl_pointer#2409.motion(187310797, 17.80078125, 16.19921875) +[2619163.698] {Default Queue} wl_pointer#2441.motion(187310797, 17.80078125, 16.19921875) +[2619163.702] {Default Queue} wl_pointer#2473.motion(187310797, 17.80078125, 16.19921875) +[2619163.706] {Default Queue} wl_pointer#2498.motion(187310797, 17.80078125, 16.19921875) +[2619163.717] {Default Queue} -> wl_buffer#3759.destroy() +[2619163.722] {Default Queue} -> wl_buffer#3760.destroy() +[2619163.726] {Default Queue} -> wl_shm_pool#3712.destroy() +[2619163.729] {Default Queue} -> wl_shm_pool#3758.destroy() +[2619163.734] {Default Queue} -> wl_surface#3761.destroy() +[2619163.770] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3387, fd 581, 640) +[2619163.775] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3390, fd 582, 640) +[2619163.779] {Default Queue} -> wl_shm_pool#3387.create_buffer(new id wl_buffer#3389, 0, 10, 16, 40, 0) +[2619163.784] {Default Queue} -> wl_shm_pool#3390.create_buffer(new id wl_buffer#3738, 0, 10, 16, 40, 0) +[2619163.791] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3739) +[2619163.795] {Default Queue} -> wl_surface#3739.attach(wl_buffer#3389, 0, 0) +[2619163.799] {Default Queue} -> wl_surface#3739.commit() +[2619163.804] {Default Queue} -> wl_surface#3739.attach(wl_buffer#3389, 0, 0) +[2619163.807] {Default Queue} -> wl_surface#3739.commit() +[2619163.811] {Default Queue} wl_pointer#2537.motion(187310797, 17.80078125, 16.19921875) +[2619163.815] {Default Queue} wl_pointer#2569.motion(187310797, 17.80078125, 16.19921875) +[2619163.819] {Default Queue} wl_pointer#2601.motion(187310797, 17.80078125, 16.19921875) +[2619163.823] {Default Queue} wl_pointer#2633.motion(187310797, 17.80078125, 16.19921875) +[2619163.827] {Default Queue} wl_pointer#2665.motion(187310797, 17.80078125, 16.19921875) +[2619163.831] {Default Queue} wl_pointer#2697.motion(187310797, 17.80078125, 16.19921875) +[2619163.839] {Default Queue} wl_pointer#2729.motion(187310797, 17.80078125, 16.19921875) +[2619163.845] {Default Queue} wl_pointer#2761.motion(187310797, 17.80078125, 16.19921875) +[2619163.849] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) +[2619163.853] {Default Queue} -> wl_surface#647.commit() +[2619164.923] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) +[2619164.930] {Default Queue} -> wl_surface#647.commit() +[2619164.936] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) +[2619164.940] {Default Queue} -> wl_surface#647.commit() +[2619164.946] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) +[2619164.950] {Default Queue} -> wl_surface#487.commit() +[2619166.013] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) +[2619166.021] {Default Queue} -> wl_surface#487.commit() +[2619166.035] {Default Queue} -> wl_region#511.subtract(0, 0, 484, 73) +[2619166.041] {Default Queue} -> wl_region#511.add(-483, -72, 484, 73) +[2619166.046] {Default Queue} -> wl_surface#487.set_opaque_region(wl_region#512) +[2619166.050] {Default Queue} -> wl_surface#487.set_input_region(wl_region#511) +[2619166.055] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) +[2619166.059] {Default Queue} -> wl_surface#487.commit() +[2619166.063] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) +[2619166.067] {Default Queue} -> wl_surface#487.commit() +[2619166.072] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) +[2619166.076] {Default Queue} -> wl_surface#487.commit() +[2619166.082] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) +[2619166.086] {Default Queue} -> wl_surface#711.commit() +[2619167.143] {Display Queue} wl_display#1.delete_id(3765) +[2619167.155] {Display Queue} wl_display#1.delete_id(3764) +[2619167.160] {Display Queue} wl_display#1.delete_id(3763) +[2619167.164] {Display Queue} wl_display#1.delete_id(3762) +[2619167.167] {Display Queue} wl_display#1.delete_id(3388) +[2619167.171] {Default Queue} wl_pointer#2793.motion(187310797, 17.80078125, 16.19921875) +[2619167.176] {Default Queue} wl_pointer#2825.motion(187310797, 17.80078125, 16.19921875) +[2619167.181] {Default Queue} wl_pointer#2857.motion(187310797, 17.80078125, 16.19921875) +[2619167.185] {Default Queue} wl_pointer#2889.motion(187310797, 17.80078125, 16.19921875) +[2619167.189] {Default Queue} wl_pointer#2921.motion(187310797, 17.80078125, 16.19921875) +[2619167.193] {Default Queue} wl_pointer#2953.motion(187310797, 17.80078125, 16.19921875) +[2619167.197] {Default Queue} wl_pointer#2985.motion(187310797, 17.80078125, 16.19921875) +[2619167.201] {Default Queue} wl_pointer#3017.motion(187310797, 17.80078125, 16.19921875) +[2619167.205] {Default Queue} wl_pointer#3049.motion(187310797, 17.80078125, 16.19921875) +[2619167.209] {Default Queue} wl_pointer#3081.motion(187310797, 17.80078125, 16.19921875) +[2619167.213] {Default Queue} wl_pointer#3113.motion(187310797, 17.80078125, 16.19921875) +[2619167.217] {Default Queue} wl_pointer#3145.motion(187310797, 17.80078125, 16.19921875) +[2619167.221] {Default Queue} wl_pointer#3177.motion(187310797, 17.80078125, 16.19921875) +[2619167.225] {Default Queue} wl_pointer#3209.motion(187310797, 17.80078125, 16.19921875) +[2619167.229] {Default Queue} wl_pointer#3241.motion(187310797, 17.80078125, 16.19921875) +[2619167.233] {Default Queue} wl_pointer#3273.motion(187310797, 17.80078125, 16.19921875) +[2619167.237] {Default Queue} wl_pointer#3305.motion(187310797, 17.80078125, 16.19921875) +[2619167.241] {Default Queue} wl_pointer#3337.motion(187310797, 17.80078125, 16.19921875) +[2619167.245] {Default Queue} wl_pointer#3369.motion(187310797, 17.80078125, 16.19921875) +[2619167.249] {Default Queue} wl_pointer#3401.motion(187310797, 17.80078125, 16.19921875) +[2619167.253] {Default Queue} wl_pointer#3433.motion(187310797, 17.80078125, 16.19921875) +[2619167.257] {Default Queue} wl_pointer#3465.motion(187310797, 17.80078125, 16.19921875) +[2619167.261] {Default Queue} wl_pointer#3497.motion(187310797, 17.80078125, 16.19921875) +[2619167.271] {Default Queue} wl_pointer#3529.motion(187310797, 17.80078125, 16.19921875) +[2619167.278] {Default Queue} wl_pointer#3561.motion(187310797, 17.80078125, 16.19921875) +[2619167.282] {Default Queue} wl_pointer#3593.motion(187310797, 17.80078125, 16.19921875) +[2619167.286] {Default Queue} wl_pointer#3625.motion(187310797, 17.80078125, 16.19921875) +[2619167.290] {Default Queue} wl_pointer#3657.motion(187310797, 17.80078125, 16.19921875) +[2619167.294] {Default Queue} wl_pointer#3695.motion(187310797, 17.80078125, 16.19921875) +[2619167.305] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 74) +[2619167.310] {Default Queue} -> wl_region#735.add(-484, -73, 467, 74) +[2619167.314] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2619167.318] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2619167.431] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 74) +[2619167.436] {Default Queue} -> wl_region#735.add(-484, -73, 467, 74) +[2619167.440] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2619167.444] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2619167.451] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2619167.455] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2619167.527] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 74) +[2619167.531] {Default Queue} -> wl_region#735.add(-484, -73, 467, 74) +[2619167.535] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) +[2619167.539] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) +[2619167.544] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2619167.548] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) +[2619167.553] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) +[2619167.557] {Default Queue} -> wl_surface#711.commit() +[2619167.561] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) +[2619167.565] {Default Queue} -> wl_surface#711.commit() +[2619167.570] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) +[2619167.575] {Default Queue} -> wl_surface#711.commit() +[2619167.581] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) +[2619167.584] {Default Queue} -> wl_surface#743.commit() +[2619168.646] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) +[2619168.653] {Default Queue} -> wl_surface#743.commit() +[2619168.662] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 74) +[2619168.667] {Default Queue} -> wl_region#767.add(-484, -73, 467, 74) +[2619168.671] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2619168.675] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2619168.768] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 74) +[2619168.773] {Default Queue} -> wl_region#767.add(-484, -73, 467, 74) +[2619168.777] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2619168.781] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2619168.786] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2619168.790] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2619168.858] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 74) +[2619168.869] {Default Queue} -> wl_region#767.add(-484, -73, 467, 74) +[2619168.873] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) +[2619168.877] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) +[2619168.882] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2619168.886] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) +[2619168.891] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) +[2619168.895] {Default Queue} -> wl_surface#743.commit() +[2619168.898] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) +[2619168.902] {Default Queue} -> wl_surface#743.commit() +[2619168.908] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) +[2619168.912] {Default Queue} -> wl_surface#743.commit() +[2619168.917] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) +[2619168.927] {Default Queue} -> wl_surface#775.commit() +[2619169.991] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) +[2619170.001] {Default Queue} -> wl_surface#775.commit() +[2619170.012] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 74) +[2619170.017] {Default Queue} -> wl_region#799.add(-484, -73, 467, 74) +[2619170.021] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2619170.025] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2619170.131] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 74) +[2619170.137] {Default Queue} -> wl_region#799.add(-484, -73, 467, 74) +[2619170.141] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2619170.145] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2619170.151] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2619170.155] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2619170.228] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 74) +[2619170.232] {Default Queue} -> wl_region#799.add(-484, -73, 467, 74) +[2619170.236] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) +[2619170.240] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) +[2619170.245] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2619170.249] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) +[2619170.253] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) +[2619170.257] {Default Queue} -> wl_surface#775.commit() +[2619170.261] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) +[2619170.265] {Default Queue} -> wl_surface#775.commit() +[2619170.271] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) +[2619170.275] {Default Queue} -> wl_surface#775.commit() +[2619170.281] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) +[2619170.284] {Default Queue} -> wl_surface#807.commit() +[2619171.346] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) +[2619171.351] {Default Queue} -> wl_surface#807.commit() +[2619171.361] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 74) +[2619171.366] {Default Queue} -> wl_region#831.add(-484, -73, 467, 74) +[2619171.370] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2619171.374] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2619171.459] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 74) +[2619171.463] {Default Queue} -> wl_region#831.add(-484, -73, 467, 74) +[2619171.467] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2619171.471] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2619171.476] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2619171.480] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2619171.548] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 74) +[2619171.552] {Default Queue} -> wl_region#831.add(-484, -73, 467, 74) +[2619171.556] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) +[2619171.560] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) +[2619171.565] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2619171.569] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) +[2619171.573] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) +[2619171.577] {Default Queue} -> wl_surface#807.commit() +[2619171.581] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) +[2619171.585] {Default Queue} -> wl_surface#807.commit() +[2619171.590] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) +[2619171.594] {Default Queue} -> wl_surface#807.commit() +[2619171.599] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) +[2619171.603] {Default Queue} -> wl_surface#839.commit() +[2619172.663] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) +[2619172.669] {Default Queue} -> wl_surface#839.commit() +[2619172.678] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 74) +[2619172.683] {Default Queue} -> wl_region#863.add(-484, -73, 467, 74) +[2619172.692] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2619172.698] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2619172.788] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 74) +[2619172.792] {Default Queue} -> wl_region#863.add(-484, -73, 467, 74) +[2619172.796] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2619172.800] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2619172.805] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2619172.809] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2619172.882] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 74) +[2619172.887] {Default Queue} -> wl_region#863.add(-484, -73, 467, 74) +[2619172.891] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) +[2619172.895] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) +[2619172.900] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2619172.904] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) +[2619172.908] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) +[2619172.912] {Default Queue} -> wl_surface#839.commit() +[2619172.916] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) +[2619172.920] {Default Queue} -> wl_surface#839.commit() +[2619172.925] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) +[2619172.929] {Default Queue} -> wl_surface#839.commit() +[2619172.935] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) +[2619172.939] {Default Queue} -> wl_surface#679.commit() +[2619174.000] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) +[2619174.005] {Default Queue} -> wl_surface#679.commit() +[2619174.011] {Default Queue} -> wl_region#703.subtract(0, 0, 485, 74) +[2619174.015] {Default Queue} -> wl_region#703.add(-484, -73, 467, 74) +[2619174.019] {Default Queue} -> wl_surface#679.set_opaque_region(wl_region#704) +[2619174.023] {Default Queue} -> wl_surface#679.set_input_region(wl_region#703) +[2619174.027] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) +[2619174.031] {Default Queue} -> wl_surface#679.commit() +[2619174.035] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) +[2619174.038] {Default Queue} -> wl_surface#679.commit() +[2619174.044] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) +[2619174.047] {Default Queue} -> wl_surface#679.commit() +[2619174.053] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) +[2619174.057] {Default Queue} -> wl_surface#455.commit() +[2619175.116] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) +[2619175.121] {Default Queue} -> wl_surface#455.commit() +[2619175.129] {Default Queue} -> wl_region#479.subtract(0, 0, 485, 74) +[2619175.134] {Default Queue} -> wl_region#479.add(-483, -72, 484, 73) +[2619175.138] {Default Queue} -> wl_surface#455.set_opaque_region(wl_region#480) +[2619175.141] {Default Queue} -> wl_surface#455.set_input_region(wl_region#479) +[2619175.146] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) +[2619175.150] {Default Queue} -> wl_surface#455.commit() +[2619175.153] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) +[2619175.157] {Default Queue} -> wl_surface#455.commit() +[2619175.162] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) +[2619175.166] {Default Queue} -> wl_surface#455.commit() +[2619175.172] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) +[2619175.176] {Default Queue} -> wl_surface#423.commit() +[2619176.236] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) +[2619176.240] {Default Queue} -> wl_surface#423.commit() +[2619176.246] {Default Queue} -> wl_region#447.subtract(0, 0, 485, 74) +[2619176.250] {Default Queue} -> wl_region#447.add(-483, -52, 485, 54) +[2619176.254] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) +[2619176.258] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) +[2619176.262] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) +[2619176.270] {Default Queue} -> wl_surface#423.commit() +[2619176.276] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) +[2619176.279] {Default Queue} -> wl_surface#423.commit() +[2619176.285] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) +[2619176.288] {Default Queue} -> wl_surface#423.commit() +[2619176.307] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) +[2619176.312] {Default Queue} -> wl_surface#359.commit() +[2619177.063] {Display Queue} wl_display#1.delete_id(3708) +[2619177.070] {Display Queue} wl_display#1.delete_id(3728) +[2619177.074] {Display Queue} wl_display#1.delete_id(3729) +[2619177.077] {Display Queue} wl_display#1.delete_id(3726) +[2619177.081] {Display Queue} wl_display#1.delete_id(3727) +[2619177.085] {Display Queue} wl_display#1.delete_id(3759) +[2619177.088] {Display Queue} wl_display#1.delete_id(3760) +[2619177.092] {Display Queue} wl_display#1.delete_id(3712) +[2619177.095] {Display Queue} wl_display#1.delete_id(3758) +[2619177.099] {Display Queue} wl_display#1.delete_id(3761) +[2619177.103] {Default Queue} wl_pointer#24.motion(187310807, 17.39843750, 16.19921875) +[2619177.107] {Default Queue} wl_pointer#81.motion(187310807, 17.39843750, 16.19921875) +[2619177.113] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619177.117] {Default Queue} wl_pointer#105.motion(187310807, 17.39843750, 16.19921875) +[2619177.121] {Default Queue} wl_pointer#137.motion(187310807, 17.39843750, 16.19921875) +[2619177.125] {Default Queue} wl_pointer#169.motion(187310807, 17.39843750, 16.19921875) +[2619177.129] {Default Queue} wl_pointer#201.motion(187310807, 17.39843750, 16.19921875) +[2619177.133] {Default Queue} wl_pointer#233.motion(187310807, 17.39843750, 16.19921875) +[2619177.137] {Default Queue} wl_pointer#265.motion(187310807, 17.39843750, 16.19921875) +[2619177.141] {Default Queue} wl_pointer#297.motion(187310807, 17.39843750, 16.19921875) +[2619177.145] {Default Queue} wl_pointer#329.motion(187310807, 17.39843750, 16.19921875) +[2619177.149] {Default Queue} wl_pointer#361.motion(187310807, 17.39843750, 16.19921875) +[2619177.153] {Default Queue} wl_pointer#393.motion(187310807, 17.39843750, 16.19921875) +[2619177.157] {Default Queue} wl_pointer#425.motion(187310807, 17.39843750, 16.19921875) +[2619177.161] {Default Queue} wl_pointer#457.motion(187310807, 17.39843750, 16.19921875) +[2619177.165] {Default Queue} wl_pointer#489.motion(187310807, 17.39843750, 16.19921875) +[2619177.169] {Default Queue} wl_pointer#521.motion(187310807, 17.39843750, 16.19921875) +[2619177.172] {Default Queue} wl_pointer#553.motion(187310807, 17.39843750, 16.19921875) +[2619177.176] {Default Queue} wl_pointer#585.motion(187310807, 17.39843750, 16.19921875) +[2619177.180] {Default Queue} wl_pointer#617.motion(187310807, 17.39843750, 16.19921875) +[2619177.184] {Default Queue} wl_pointer#649.motion(187310807, 17.39843750, 16.19921875) +[2619177.188] {Default Queue} wl_pointer#681.motion(187310807, 17.39843750, 16.19921875) +[2619177.192] {Default Queue} wl_pointer#713.motion(187310807, 17.39843750, 16.19921875) +[2619177.196] {Default Queue} wl_pointer#745.motion(187310807, 17.39843750, 16.19921875) +[2619177.200] {Default Queue} wl_pointer#777.motion(187310807, 17.39843750, 16.19921875) +[2619177.204] {Default Queue} wl_pointer#809.motion(187310807, 17.39843750, 16.19921875) +[2619177.208] {Default Queue} wl_pointer#841.motion(187310807, 17.39843750, 16.19921875) +[2619177.212] {Default Queue} wl_pointer#873.motion(187310807, 17.39843750, 16.19921875) +[2619177.216] {Default Queue} wl_pointer#905.motion(187310807, 17.39843750, 16.19921875) +[2619177.219] {Default Queue} wl_pointer#937.motion(187310807, 17.39843750, 16.19921875) +[2619177.223] {Default Queue} wl_pointer#969.motion(187310807, 17.39843750, 16.19921875) +[2619177.227] {Default Queue} wl_pointer#1001.motion(187310807, 17.39843750, 16.19921875) +[2619177.231] {Default Queue} wl_pointer#1033.motion(187310807, 17.39843750, 16.19921875) +[2619177.235] {Default Queue} wl_pointer#1065.motion(187310807, 17.39843750, 16.19921875) +[2619177.242] {Default Queue} wl_pointer#1097.motion(187310807, 17.39843750, 16.19921875) +[2619177.248] {Default Queue} wl_pointer#1129.motion(187310807, 17.39843750, 16.19921875) +[2619177.252] {Default Queue} wl_pointer#1161.motion(187310807, 17.39843750, 16.19921875) +[2619177.256] {Default Queue} wl_pointer#1193.motion(187310807, 17.39843750, 16.19921875) +[2619177.260] {Default Queue} wl_pointer#1225.motion(187310807, 17.39843750, 16.19921875) +[2619177.264] {Default Queue} wl_pointer#1257.motion(187310807, 17.39843750, 16.19921875) +[2619177.268] {Default Queue} wl_pointer#1289.motion(187310807, 17.39843750, 16.19921875) +[2619177.272] {Default Queue} wl_pointer#1321.motion(187310807, 17.39843750, 16.19921875) +[2619177.276] {Default Queue} wl_pointer#1353.motion(187310807, 17.39843750, 16.19921875) +[2619177.279] {Default Queue} wl_pointer#1385.motion(187310807, 17.39843750, 16.19921875) +[2619177.283] {Default Queue} wl_pointer#1417.motion(187310807, 17.39843750, 16.19921875) +[2619177.287] {Default Queue} wl_pointer#1449.motion(187310807, 17.39843750, 16.19921875) +[2619177.291] {Default Queue} wl_pointer#1481.motion(187310807, 17.39843750, 16.19921875) +[2619177.295] {Default Queue} wl_pointer#1513.motion(187310807, 17.39843750, 16.19921875) +[2619177.299] {Default Queue} wl_pointer#1545.motion(187310807, 17.39843750, 16.19921875) +[2619177.303] {Default Queue} wl_pointer#1577.motion(187310807, 17.39843750, 16.19921875) +[2619177.307] {Default Queue} wl_pointer#1609.motion(187310807, 17.39843750, 16.19921875) +[2619177.311] {Default Queue} wl_pointer#1641.motion(187310807, 17.39843750, 16.19921875) +[2619177.315] {Default Queue} wl_pointer#1673.motion(187310807, 17.39843750, 16.19921875) +[2619177.319] {Default Queue} wl_pointer#1705.motion(187310807, 17.39843750, 16.19921875) +[2619177.323] {Default Queue} wl_pointer#1737.motion(187310807, 17.39843750, 16.19921875) +[2619177.327] {Default Queue} wl_pointer#1762.motion(187310807, 17.39843750, 16.19921875) +[2619177.331] {Default Queue} wl_pointer#1801.motion(187310807, 17.39843750, 16.19921875) +[2619177.335] {Default Queue} wl_pointer#1833.motion(187310807, 17.39843750, 16.19921875) +[2619177.339] {Default Queue} wl_pointer#1865.motion(187310807, 17.39843750, 16.19921875) +[2619177.343] {Default Queue} wl_pointer#1897.motion(187310807, 17.39843750, 16.19921875) +[2619177.347] {Default Queue} wl_pointer#1929.motion(187310807, 17.39843750, 16.19921875) +[2619177.351] {Default Queue} wl_pointer#1961.motion(187310807, 17.39843750, 16.19921875) +[2619177.354] {Default Queue} wl_pointer#1993.motion(187310807, 17.39843750, 16.19921875) +[2619177.358] {Default Queue} wl_pointer#2025.motion(187310807, 17.39843750, 16.19921875) +[2619177.362] {Default Queue} wl_pointer#2057.motion(187310807, 17.39843750, 16.19921875) +[2619177.366] {Default Queue} wl_pointer#2089.motion(187310807, 17.39843750, 16.19921875) +[2619177.370] {Default Queue} wl_pointer#2121.motion(187310807, 17.39843750, 16.19921875) +[2619177.374] {Default Queue} wl_pointer#2153.motion(187310807, 17.39843750, 16.19921875) +[2619177.378] {Default Queue} wl_pointer#2185.motion(187310807, 17.39843750, 16.19921875) +[2619177.382] {Default Queue} wl_pointer#2217.motion(187310807, 17.39843750, 16.19921875) +[2619177.386] {Default Queue} wl_pointer#2249.motion(187310807, 17.39843750, 16.19921875) +[2619177.390] {Default Queue} wl_pointer#2281.motion(187310807, 17.39843750, 16.19921875) +[2619177.394] {Default Queue} wl_pointer#2313.motion(187310807, 17.39843750, 16.19921875) +[2619177.398] {Default Queue} wl_pointer#2345.motion(187310807, 17.39843750, 16.19921875) +[2619177.402] {Default Queue} wl_pointer#2377.motion(187310807, 17.39843750, 16.19921875) +[2619177.406] {Default Queue} wl_pointer#2409.motion(187310807, 17.39843750, 16.19921875) +[2619177.410] {Default Queue} wl_pointer#2441.motion(187310807, 17.39843750, 16.19921875) +[2619177.414] {Default Queue} wl_pointer#2473.motion(187310807, 17.39843750, 16.19921875) +[2619177.418] {Default Queue} wl_pointer#2498.motion(187310807, 17.39843750, 16.19921875) +[2619177.430] {Default Queue} -> wl_buffer#3389.destroy() +[2619177.438] {Default Queue} -> wl_buffer#3738.destroy() +[2619177.443] {Default Queue} -> wl_shm_pool#3387.destroy() +[2619177.447] {Default Queue} -> wl_shm_pool#3390.destroy() +[2619177.452] {Default Queue} -> wl_surface#3739.destroy() +[2619177.490] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3761, fd 575, 640) +[2619177.497] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3758, fd 578, 640) +[2619177.503] {Default Queue} -> wl_shm_pool#3761.create_buffer(new id wl_buffer#3712, 0, 10, 16, 40, 0) +[2619177.509] {Default Queue} -> wl_shm_pool#3758.create_buffer(new id wl_buffer#3760, 0, 10, 16, 40, 0) +[2619177.516] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3759) +[2619177.520] {Default Queue} -> wl_surface#3759.attach(wl_buffer#3712, 0, 0) +[2619177.524] {Default Queue} -> wl_surface#3759.commit() +[2619177.529] {Default Queue} -> wl_surface#3759.attach(wl_buffer#3712, 0, 0) +[2619177.533] {Default Queue} -> wl_surface#3759.commit() +[2619177.537] {Default Queue} wl_pointer#2537.motion(187310807, 17.39843750, 16.19921875) +[2619177.542] {Default Queue} wl_pointer#2569.motion(187310807, 17.39843750, 16.19921875) +[2619177.546] {Default Queue} wl_pointer#2601.motion(187310807, 17.39843750, 16.19921875) +[2619177.550] {Default Queue} wl_pointer#2633.motion(187310807, 17.39843750, 16.19921875) +[2619177.554] {Default Queue} wl_pointer#2665.motion(187310807, 17.39843750, 16.19921875) +[2619177.558] {Default Queue} wl_pointer#2697.motion(187310807, 17.39843750, 16.19921875) +[2619177.562] {Default Queue} wl_pointer#2729.motion(187310807, 17.39843750, 16.19921875) +[2619177.567] {Default Queue} wl_pointer#2761.motion(187310807, 17.39843750, 16.19921875) +[2619177.572] {Default Queue} wl_pointer#2793.motion(187310807, 17.39843750, 16.19921875) +[2619177.577] {Default Queue} wl_pointer#2825.motion(187310807, 17.39843750, 16.19921875) +[2619177.582] {Default Queue} wl_pointer#2857.motion(187310807, 17.39843750, 16.19921875) +[2619177.586] {Default Queue} wl_pointer#2889.motion(187310807, 17.39843750, 16.19921875) +[2619177.590] {Default Queue} wl_pointer#2921.motion(187310807, 17.39843750, 16.19921875) +[2619177.594] {Default Queue} wl_pointer#2953.motion(187310807, 17.39843750, 16.19921875) +[2619177.598] {Default Queue} wl_pointer#2985.motion(187310807, 17.39843750, 16.19921875) +[2619177.602] {Default Queue} wl_pointer#3017.motion(187310807, 17.39843750, 16.19921875) +[2619177.606] {Default Queue} wl_pointer#3049.motion(187310807, 17.39843750, 16.19921875) +[2619177.609] {Default Queue} wl_pointer#3081.motion(187310807, 17.39843750, 16.19921875) +[2619177.613] {Default Queue} wl_pointer#3113.motion(187310807, 17.39843750, 16.19921875) +[2619177.617] {Default Queue} wl_pointer#3145.motion(187310807, 17.39843750, 16.19921875) +[2619177.621] {Default Queue} wl_pointer#3177.motion(187310807, 17.39843750, 16.19921875) +[2619177.625] {Default Queue} wl_pointer#3209.motion(187310807, 17.39843750, 16.19921875) +[2619177.629] {Default Queue} wl_pointer#3241.motion(187310807, 17.39843750, 16.19921875) +[2619177.633] {Default Queue} wl_pointer#3273.motion(187310807, 17.39843750, 16.19921875) +[2619177.637] {Default Queue} wl_pointer#3305.motion(187310807, 17.39843750, 16.19921875) +[2619177.641] {Default Queue} wl_pointer#3337.motion(187310807, 17.39843750, 16.19921875) +[2619177.645] {Default Queue} wl_pointer#3369.motion(187310807, 17.39843750, 16.19921875) +[2619177.649] {Default Queue} wl_pointer#3401.motion(187310807, 17.39843750, 16.19921875) +[2619177.653] {Default Queue} wl_pointer#3433.motion(187310807, 17.39843750, 16.19921875) +[2619177.657] {Default Queue} wl_pointer#3465.motion(187310807, 17.39843750, 16.19921875) +[2619177.661] {Default Queue} wl_pointer#3497.motion(187310807, 17.39843750, 16.19921875) +[2619177.665] {Default Queue} wl_pointer#3529.motion(187310807, 17.39843750, 16.19921875) +[2619177.669] {Default Queue} wl_pointer#3561.motion(187310807, 17.39843750, 16.19921875) +[2619177.673] {Default Queue} wl_pointer#3593.motion(187310807, 17.39843750, 16.19921875) +[2619177.677] {Default Queue} wl_pointer#3625.motion(187310807, 17.39843750, 16.19921875) +[2619177.684] {Default Queue} wl_pointer#3657.motion(187310807, 17.39843750, 16.19921875) +[2619177.690] {Default Queue} wl_pointer#3695.motion(187310807, 17.39843750, 16.19921875) +[2619177.700] {Default Queue} -> wl_region#383.subtract(0, 0, 592, 213) +[2619177.705] {Default Queue} -> wl_region#383.add(-480, -49, 589, 210) +[2619177.709] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) +[2619177.713] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) +[2619177.720] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) +[2619177.724] {Default Queue} -> wl_surface#359.commit() +[2619177.729] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) +[2619177.733] {Default Queue} -> wl_surface#359.commit() +[2619177.740] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) +[2619177.744] {Default Queue} -> wl_surface#359.commit() +[2619177.755] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) +[2619177.760] {Default Queue} -> wl_surface#327.commit() +[2619177.803] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) +[2619177.808] {Default Queue} -> wl_surface#103.commit() +[2619177.815] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) +[2619177.819] {Default Queue} -> wl_surface#967.commit() +[2619178.867] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) +[2619178.872] {Default Queue} -> wl_surface#967.commit() +[2619178.881] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 236) +[2619178.886] {Default Queue} -> wl_region#991.add(-20, -216, 22, 236) +[2619178.890] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2619178.893] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2619178.987] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 236) +[2619178.992] {Default Queue} -> wl_region#991.add(-20, -216, 22, 236) +[2619178.996] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2619179.000] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2619179.007] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2619179.011] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2619179.078] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 236) +[2619179.082] {Default Queue} -> wl_region#991.add(-20, -216, 22, 236) +[2619179.086] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) +[2619179.090] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) +[2619179.095] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2619179.099] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) +[2619179.104] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) +[2619179.107] {Default Queue} -> wl_surface#967.commit() +[2619179.111] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) +[2619179.115] {Default Queue} -> wl_surface#967.commit() +[2619179.121] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) +[2619179.124] {Default Queue} -> wl_surface#967.commit() +[2619179.131] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) +[2619179.135] {Default Queue} -> wl_surface#1095.commit() +[2619180.195] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) +[2619180.200] {Default Queue} -> wl_surface#1095.commit() +[2619180.208] {Default Queue} -> wl_region#1119.subtract(0, 0, 24, 240) +[2619180.212] {Default Queue} -> wl_region#1119.add(-23, -239, 24, 240) +[2619180.216] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2619180.220] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2619180.228] {Default Queue} -> wl_region#1119.subtract(0, 0, 24, 240) +[2619180.233] {Default Queue} -> wl_region#1119.add(-23, -239, 24, 240) +[2619180.236] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2619180.240] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2619180.247] {Default Queue} -> wl_region#1119.subtract(0, 0, 24, 240) +[2619180.256] {Default Queue} -> wl_region#1119.add(-23, -239, 24, 240) +[2619180.262] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2619180.265] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2619180.270] {Default Queue} -> wl_region#1119.subtract(0, 0, 24, 240) +[2619180.274] {Default Queue} -> wl_region#1119.add(-23, -239, 24, 240) +[2619180.278] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) +[2619180.281] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) +[2619180.285] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) +[2619180.289] {Default Queue} -> wl_surface#1095.commit() +[2619180.293] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) +[2619180.297] {Default Queue} -> wl_surface#1095.commit() +[2619180.302] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) +[2619180.306] {Default Queue} -> wl_surface#1095.commit() +[2619180.311] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) +[2619180.315] {Default Queue} -> wl_surface#1127.commit() +[2619181.375] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) +[2619181.380] {Default Queue} -> wl_surface#1127.commit() +[2619181.386] {Default Queue} -> wl_region#1151.subtract(0, 0, 24, 240) +[2619181.390] {Default Queue} -> wl_region#1151.add(-23, -239, 24, 240) +[2619181.394] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2619181.398] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2619181.404] {Default Queue} -> wl_region#1151.subtract(0, 0, 24, 240) +[2619181.408] {Default Queue} -> wl_region#1151.add(-23, -239, 24, 240) +[2619181.412] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2619181.416] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2619181.421] {Default Queue} -> wl_region#1151.subtract(0, 0, 24, 240) +[2619181.425] {Default Queue} -> wl_region#1151.add(-23, -239, 24, 240) +[2619181.428] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2619181.432] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2619181.436] {Default Queue} -> wl_region#1151.subtract(0, 0, 24, 240) +[2619181.440] {Default Queue} -> wl_region#1151.add(-23, -239, 24, 240) +[2619181.444] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) +[2619181.448] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) +[2619181.452] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) +[2619181.456] {Default Queue} -> wl_surface#1127.commit() +[2619181.459] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) +[2619181.463] {Default Queue} -> wl_surface#1127.commit() +[2619181.468] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) +[2619181.472] {Default Queue} -> wl_surface#1127.commit() +[2619181.477] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) +[2619181.481] {Default Queue} -> wl_surface#1159.commit() +[2619182.233] {Default Queue} wl_pointer#24.motion(187310812, 17.39843750, 16.60156250) +[2619182.240] {Default Queue} wl_pointer#81.motion(187310812, 17.39843750, 16.60156250) +[2619182.245] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619182.249] {Default Queue} wl_pointer#105.motion(187310812, 17.39843750, 16.60156250) +[2619182.253] {Default Queue} wl_pointer#137.motion(187310812, 17.39843750, 16.60156250) +[2619182.257] {Default Queue} wl_pointer#169.motion(187310812, 17.39843750, 16.60156250) +[2619182.261] {Default Queue} wl_pointer#201.motion(187310812, 17.39843750, 16.60156250) +[2619182.265] {Default Queue} wl_pointer#233.motion(187310812, 17.39843750, 16.60156250) +[2619182.269] {Default Queue} wl_pointer#265.motion(187310812, 17.39843750, 16.60156250) +[2619182.273] {Default Queue} wl_pointer#297.motion(187310812, 17.39843750, 16.60156250) +[2619182.277] {Default Queue} wl_pointer#329.motion(187310812, 17.39843750, 16.60156250) +[2619182.280] {Default Queue} wl_pointer#361.motion(187310812, 17.39843750, 16.60156250) +[2619182.288] {Default Queue} wl_pointer#393.motion(187310812, 17.39843750, 16.60156250) +[2619182.294] {Default Queue} wl_pointer#425.motion(187310812, 17.39843750, 16.60156250) +[2619182.298] {Default Queue} wl_pointer#457.motion(187310812, 17.39843750, 16.60156250) +[2619182.302] {Default Queue} wl_pointer#489.motion(187310812, 17.39843750, 16.60156250) +[2619182.306] {Default Queue} wl_pointer#521.motion(187310812, 17.39843750, 16.60156250) +[2619182.310] {Default Queue} wl_pointer#553.motion(187310812, 17.39843750, 16.60156250) +[2619182.314] {Default Queue} wl_pointer#585.motion(187310812, 17.39843750, 16.60156250) +[2619182.318] {Default Queue} wl_pointer#617.motion(187310812, 17.39843750, 16.60156250) +[2619182.321] {Default Queue} wl_pointer#649.motion(187310812, 17.39843750, 16.60156250) +[2619182.325] {Default Queue} wl_pointer#681.motion(187310812, 17.39843750, 16.60156250) +[2619182.329] {Default Queue} wl_pointer#713.motion(187310812, 17.39843750, 16.60156250) +[2619182.333] {Default Queue} wl_pointer#745.motion(187310812, 17.39843750, 16.60156250) +[2619182.337] {Default Queue} wl_pointer#777.motion(187310812, 17.39843750, 16.60156250) +[2619182.341] {Default Queue} wl_pointer#809.motion(187310812, 17.39843750, 16.60156250) +[2619182.345] {Default Queue} wl_pointer#841.motion(187310812, 17.39843750, 16.60156250) +[2619182.349] {Default Queue} wl_pointer#873.motion(187310812, 17.39843750, 16.60156250) +[2619182.353] {Default Queue} wl_pointer#905.motion(187310812, 17.39843750, 16.60156250) +[2619182.357] {Default Queue} wl_pointer#937.motion(187310812, 17.39843750, 16.60156250) +[2619182.361] {Default Queue} wl_pointer#969.motion(187310812, 17.39843750, 16.60156250) +[2619182.364] {Default Queue} wl_pointer#1001.motion(187310812, 17.39843750, 16.60156250) +[2619182.368] {Default Queue} wl_pointer#1033.motion(187310812, 17.39843750, 16.60156250) +[2619182.372] {Default Queue} wl_pointer#1065.motion(187310812, 17.39843750, 16.60156250) +[2619182.376] {Default Queue} wl_pointer#1097.motion(187310812, 17.39843750, 16.60156250) +[2619182.380] {Default Queue} wl_pointer#1129.motion(187310812, 17.39843750, 16.60156250) +[2619182.384] {Default Queue} wl_pointer#1161.motion(187310812, 17.39843750, 16.60156250) +[2619182.388] {Default Queue} wl_pointer#1193.motion(187310812, 17.39843750, 16.60156250) +[2619182.392] {Default Queue} wl_pointer#1225.motion(187310812, 17.39843750, 16.60156250) +[2619182.396] {Default Queue} wl_pointer#1257.motion(187310812, 17.39843750, 16.60156250) +[2619182.400] {Default Queue} wl_pointer#1289.motion(187310812, 17.39843750, 16.60156250) +[2619182.404] {Default Queue} wl_pointer#1321.motion(187310812, 17.39843750, 16.60156250) +[2619182.407] {Default Queue} wl_pointer#1353.motion(187310812, 17.39843750, 16.60156250) +[2619182.411] {Default Queue} wl_pointer#1385.motion(187310812, 17.39843750, 16.60156250) +[2619182.415] {Default Queue} wl_pointer#1417.motion(187310812, 17.39843750, 16.60156250) +[2619182.419] {Default Queue} wl_pointer#1449.motion(187310812, 17.39843750, 16.60156250) +[2619182.423] {Default Queue} wl_pointer#1481.motion(187310812, 17.39843750, 16.60156250) +[2619182.427] {Default Queue} wl_pointer#1513.motion(187310812, 17.39843750, 16.60156250) +[2619182.431] {Default Queue} wl_pointer#1545.motion(187310812, 17.39843750, 16.60156250) +[2619182.435] {Default Queue} wl_pointer#1577.motion(187310812, 17.39843750, 16.60156250) +[2619182.439] {Default Queue} wl_pointer#1609.motion(187310812, 17.39843750, 16.60156250) +[2619182.443] {Default Queue} wl_pointer#1641.motion(187310812, 17.39843750, 16.60156250) +[2619182.447] {Default Queue} wl_pointer#1673.motion(187310812, 17.39843750, 16.60156250) +[2619182.450] {Default Queue} wl_pointer#1705.motion(187310812, 17.39843750, 16.60156250) +[2619182.454] {Default Queue} wl_pointer#1737.motion(187310812, 17.39843750, 16.60156250) +[2619182.458] {Default Queue} wl_pointer#1762.motion(187310812, 17.39843750, 16.60156250) +[2619182.462] {Default Queue} wl_pointer#1801.motion(187310812, 17.39843750, 16.60156250) +[2619182.466] {Default Queue} wl_pointer#1833.motion(187310812, 17.39843750, 16.60156250) +[2619182.473] {Default Queue} wl_pointer#1865.motion(187310812, 17.39843750, 16.60156250) +[2619182.478] {Default Queue} wl_pointer#1897.motion(187310812, 17.39843750, 16.60156250) +[2619182.482] {Default Queue} wl_pointer#1929.motion(187310812, 17.39843750, 16.60156250) +[2619182.486] {Default Queue} wl_pointer#1961.motion(187310812, 17.39843750, 16.60156250) +[2619182.490] {Default Queue} wl_pointer#1993.motion(187310812, 17.39843750, 16.60156250) +[2619182.494] {Default Queue} wl_pointer#2025.motion(187310812, 17.39843750, 16.60156250) +[2619182.498] {Default Queue} wl_pointer#2057.motion(187310812, 17.39843750, 16.60156250) +[2619182.502] {Default Queue} wl_pointer#2089.motion(187310812, 17.39843750, 16.60156250) +[2619182.506] {Default Queue} wl_pointer#2121.motion(187310812, 17.39843750, 16.60156250) +[2619182.510] {Default Queue} wl_pointer#2153.motion(187310812, 17.39843750, 16.60156250) +[2619182.514] {Default Queue} wl_pointer#2185.motion(187310812, 17.39843750, 16.60156250) +[2619182.518] {Default Queue} wl_pointer#2217.motion(187310812, 17.39843750, 16.60156250) +[2619182.521] {Default Queue} wl_pointer#2249.motion(187310812, 17.39843750, 16.60156250) +[2619182.525] {Default Queue} wl_pointer#2281.motion(187310812, 17.39843750, 16.60156250) +[2619182.529] {Default Queue} wl_pointer#2313.motion(187310812, 17.39843750, 16.60156250) +[2619182.533] {Default Queue} wl_pointer#2345.motion(187310812, 17.39843750, 16.60156250) +[2619182.538] {Default Queue} wl_pointer#2377.motion(187310812, 17.39843750, 16.60156250) +[2619182.541] {Default Queue} wl_pointer#2409.motion(187310812, 17.39843750, 16.60156250) +[2619182.545] {Default Queue} wl_pointer#2441.motion(187310812, 17.39843750, 16.60156250) +[2619182.549] {Default Queue} wl_pointer#2473.motion(187310812, 17.39843750, 16.60156250) +[2619182.553] {Default Queue} wl_pointer#2498.motion(187310812, 17.39843750, 16.60156250) +[2619182.565] {Default Queue} -> wl_buffer#3712.destroy() +[2619182.570] {Default Queue} -> wl_buffer#3760.destroy() +[2619182.573] {Default Queue} -> wl_shm_pool#3761.destroy() +[2619182.577] {Default Queue} -> wl_shm_pool#3758.destroy() +[2619182.582] {Default Queue} -> wl_surface#3759.destroy() +[2619182.618] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3727, fd 575, 640) +[2619182.623] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3726, fd 578, 640) +[2619182.628] {Default Queue} -> wl_shm_pool#3727.create_buffer(new id wl_buffer#3729, 0, 10, 16, 40, 0) +[2619182.632] {Default Queue} -> wl_shm_pool#3726.create_buffer(new id wl_buffer#3728, 0, 10, 16, 40, 0) +[2619182.639] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3708) +[2619182.643] {Default Queue} -> wl_surface#3708.attach(wl_buffer#3729, 0, 0) +[2619182.647] {Default Queue} -> wl_surface#3708.commit() +[2619182.652] {Default Queue} -> wl_surface#3708.attach(wl_buffer#3729, 0, 0) +[2619182.656] {Default Queue} -> wl_surface#3708.commit() +[2619182.660] {Default Queue} wl_pointer#2537.motion(187310812, 17.39843750, 16.60156250) +[2619182.664] {Default Queue} wl_pointer#2569.motion(187310812, 17.39843750, 16.60156250) +[2619182.668] {Default Queue} wl_pointer#2601.motion(187310812, 17.39843750, 16.60156250) +[2619182.672] {Default Queue} wl_pointer#2633.motion(187310812, 17.39843750, 16.60156250) +[2619182.676] {Default Queue} wl_pointer#2665.motion(187310812, 17.39843750, 16.60156250) +[2619182.680] {Default Queue} wl_pointer#2697.motion(187310812, 17.39843750, 16.60156250) +[2619182.684] {Default Queue} wl_pointer#2729.motion(187310812, 17.39843750, 16.60156250) +[2619182.688] {Default Queue} wl_pointer#2761.motion(187310812, 17.39843750, 16.60156250) +[2619182.692] {Default Queue} wl_pointer#2793.motion(187310812, 17.39843750, 16.60156250) +[2619182.696] {Default Queue} wl_pointer#2825.motion(187310812, 17.39843750, 16.60156250) +[2619182.700] {Default Queue} wl_pointer#2857.motion(187310812, 17.39843750, 16.60156250) +[2619182.704] {Default Queue} wl_pointer#2889.motion(187310812, 17.39843750, 16.60156250) +[2619182.708] {Default Queue} wl_pointer#2921.motion(187310812, 17.39843750, 16.60156250) +[2619182.715] {Default Queue} wl_pointer#2953.motion(187310812, 17.39843750, 16.60156250) +[2619182.720] {Default Queue} wl_pointer#2985.motion(187310812, 17.39843750, 16.60156250) +[2619182.724] {Default Queue} wl_pointer#3017.motion(187310812, 17.39843750, 16.60156250) +[2619182.728] {Default Queue} wl_pointer#3049.motion(187310812, 17.39843750, 16.60156250) +[2619182.732] {Default Queue} wl_pointer#3081.motion(187310812, 17.39843750, 16.60156250) +[2619182.736] {Default Queue} wl_pointer#3113.motion(187310812, 17.39843750, 16.60156250) +[2619182.740] {Default Queue} wl_pointer#3145.motion(187310812, 17.39843750, 16.60156250) +[2619182.744] {Default Queue} wl_pointer#3177.motion(187310812, 17.39843750, 16.60156250) +[2619182.748] {Default Queue} wl_pointer#3209.motion(187310812, 17.39843750, 16.60156250) +[2619182.752] {Default Queue} wl_pointer#3241.motion(187310812, 17.39843750, 16.60156250) +[2619182.756] {Default Queue} wl_pointer#3273.motion(187310812, 17.39843750, 16.60156250) +[2619182.760] {Default Queue} wl_pointer#3305.motion(187310812, 17.39843750, 16.60156250) +[2619182.764] {Default Queue} wl_pointer#3337.motion(187310812, 17.39843750, 16.60156250) +[2619182.768] {Default Queue} wl_pointer#3369.motion(187310812, 17.39843750, 16.60156250) +[2619182.772] {Default Queue} wl_pointer#3401.motion(187310812, 17.39843750, 16.60156250) +[2619182.776] {Default Queue} wl_pointer#3433.motion(187310812, 17.39843750, 16.60156250) +[2619182.780] {Default Queue} wl_pointer#3465.motion(187310812, 17.39843750, 16.60156250) +[2619182.785] {Default Queue} wl_pointer#3497.motion(187310812, 17.39843750, 16.60156250) +[2619182.788] {Default Queue} wl_pointer#3529.motion(187310812, 17.39843750, 16.60156250) +[2619182.792] {Default Queue} wl_pointer#3561.motion(187310812, 17.39843750, 16.60156250) +[2619182.796] {Default Queue} wl_pointer#3593.motion(187310812, 17.39843750, 16.60156250) +[2619182.800] {Default Queue} wl_pointer#3625.motion(187310812, 17.39843750, 16.60156250) +[2619182.804] {Default Queue} wl_pointer#3657.motion(187310812, 17.39843750, 16.60156250) +[2619182.808] {Default Queue} wl_pointer#3695.motion(187310812, 17.39843750, 16.60156250) +[2619182.817] {Default Queue} -> wl_region#1183.subtract(0, 0, 24, 240) +[2619182.822] {Default Queue} -> wl_region#1183.add(-23, -239, 24, 240) +[2619182.826] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2619182.830] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2619182.837] {Default Queue} -> wl_region#1183.subtract(0, 0, 24, 240) +[2619182.841] {Default Queue} -> wl_region#1183.add(-23, -239, 24, 240) +[2619182.845] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2619182.849] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2619182.855] {Default Queue} -> wl_region#1183.subtract(0, 0, 24, 240) +[2619182.859] {Default Queue} -> wl_region#1183.add(-23, -239, 24, 240) +[2619182.867] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2619182.871] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2619182.875] {Default Queue} -> wl_region#1183.subtract(0, 0, 24, 240) +[2619182.879] {Default Queue} -> wl_region#1183.add(-23, -239, 24, 240) +[2619182.883] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) +[2619182.887] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) +[2619182.891] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) +[2619182.894] {Default Queue} -> wl_surface#1159.commit() +[2619182.898] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) +[2619182.902] {Default Queue} -> wl_surface#1159.commit() +[2619182.909] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) +[2619182.914] {Default Queue} -> wl_surface#1159.commit() +[2619182.921] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) +[2619182.925] {Default Queue} -> wl_surface#1191.commit() +[2619183.989] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) +[2619183.997] {Default Queue} -> wl_surface#1191.commit() +[2619184.006] {Default Queue} -> wl_region#1215.subtract(0, 0, 24, 240) +[2619184.010] {Default Queue} -> wl_region#1215.add(-23, -239, 24, 240) +[2619184.014] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2619184.017] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2619184.024] {Default Queue} -> wl_region#1215.subtract(0, 0, 24, 240) +[2619184.028] {Default Queue} -> wl_region#1215.add(-23, -239, 24, 240) +[2619184.032] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2619184.036] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2619184.041] {Default Queue} -> wl_region#1215.subtract(0, 0, 24, 240) +[2619184.045] {Default Queue} -> wl_region#1215.add(-23, -239, 24, 240) +[2619184.049] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2619184.053] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2619184.057] {Default Queue} -> wl_region#1215.subtract(0, 0, 24, 240) +[2619184.061] {Default Queue} -> wl_region#1215.add(-23, -239, 24, 240) +[2619184.065] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) +[2619184.069] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) +[2619184.073] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) +[2619184.076] {Default Queue} -> wl_surface#1191.commit() +[2619184.080] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) +[2619184.084] {Default Queue} -> wl_surface#1191.commit() +[2619184.089] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) +[2619184.093] {Default Queue} -> wl_surface#1191.commit() +[2619184.098] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) +[2619184.102] {Default Queue} -> wl_surface#1223.commit() +[2619185.163] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) +[2619185.172] {Default Queue} -> wl_surface#1223.commit() +[2619185.181] {Default Queue} -> wl_region#1247.subtract(0, 0, 24, 240) +[2619185.186] {Default Queue} -> wl_region#1247.add(-23, -239, 24, 240) +[2619185.192] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2619185.197] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2619185.206] {Default Queue} -> wl_region#1247.subtract(0, 0, 24, 240) +[2619185.210] {Default Queue} -> wl_region#1247.add(-23, -239, 24, 240) +[2619185.214] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2619185.218] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2619185.224] {Default Queue} -> wl_region#1247.subtract(0, 0, 24, 240) +[2619185.228] {Default Queue} -> wl_region#1247.add(-23, -239, 24, 240) +[2619185.232] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2619185.235] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2619185.240] {Default Queue} -> wl_region#1247.subtract(0, 0, 24, 240) +[2619185.244] {Default Queue} -> wl_region#1247.add(-23, -239, 24, 240) +[2619185.248] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) +[2619185.251] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) +[2619185.255] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) +[2619185.259] {Default Queue} -> wl_surface#1223.commit() +[2619185.263] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) +[2619185.267] {Default Queue} -> wl_surface#1223.commit() +[2619185.273] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) +[2619185.277] {Default Queue} -> wl_surface#1223.commit() +[2619185.282] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) +[2619185.286] {Default Queue} -> wl_surface#1063.commit() +[2619186.348] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) +[2619186.352] {Default Queue} -> wl_surface#1063.commit() +[2619186.358] {Default Queue} -> wl_region#1087.subtract(0, 0, 24, 240) +[2619186.362] {Default Queue} -> wl_region#1087.add(-23, -239, 24, 240) +[2619186.370] {Default Queue} -> wl_surface#1063.set_opaque_region(wl_region#1088) +[2619186.377] {Default Queue} -> wl_surface#1063.set_input_region(wl_region#1087) +[2619186.381] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) +[2619186.385] {Default Queue} -> wl_surface#1063.commit() +[2619186.389] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) +[2619186.393] {Default Queue} -> wl_surface#1063.commit() +[2619186.398] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) +[2619186.402] {Default Queue} -> wl_surface#1063.commit() +[2619186.407] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) +[2619186.411] {Default Queue} -> wl_surface#1287.commit() +[2619187.471] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) +[2619187.476] {Default Queue} -> wl_surface#1287.commit() +[2619187.485] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 241) +[2619187.489] {Default Queue} -> wl_region#1311.add(-24, -240, 7, 241) +[2619187.493] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2619187.497] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2619187.599] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 241) +[2619187.604] {Default Queue} -> wl_region#1311.add(-24, -240, 7, 241) +[2619187.608] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2619187.611] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2619187.617] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2619187.621] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2619187.692] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 241) +[2619187.697] {Default Queue} -> wl_region#1311.add(-24, -240, 7, 241) +[2619187.701] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) +[2619187.704] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) +[2619187.710] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2619187.715] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) +[2619187.721] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) +[2619187.726] {Default Queue} -> wl_surface#1287.commit() +[2619187.731] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) +[2619187.736] {Default Queue} -> wl_surface#1287.commit() +[2619187.742] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) +[2619187.746] {Default Queue} -> wl_surface#1287.commit() +[2619187.751] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) +[2619187.754] {Default Queue} -> wl_surface#1319.commit() +[2619188.816] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) +[2619188.821] {Default Queue} -> wl_surface#1319.commit() +[2619188.832] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 241) +[2619188.836] {Default Queue} -> wl_region#1343.add(-24, -240, 7, 241) +[2619188.840] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2619188.844] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2619188.942] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 241) +[2619188.947] {Default Queue} -> wl_region#1343.add(-24, -240, 7, 241) +[2619188.951] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2619188.955] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2619188.960] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2619188.964] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2619189.035] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 241) +[2619189.039] {Default Queue} -> wl_region#1343.add(-24, -240, 7, 241) +[2619189.043] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) +[2619189.047] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) +[2619189.052] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2619189.056] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) +[2619189.060] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) +[2619189.064] {Default Queue} -> wl_surface#1319.commit() +[2619189.075] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) +[2619189.081] {Default Queue} -> wl_surface#1319.commit() +[2619189.087] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) +[2619189.091] {Default Queue} -> wl_surface#1319.commit() +[2619189.097] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) +[2619189.101] {Default Queue} -> wl_surface#1351.commit() +[2619190.162] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) +[2619190.166] {Default Queue} -> wl_surface#1351.commit() +[2619190.174] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 241) +[2619190.178] {Default Queue} -> wl_region#1375.add(-24, -240, 7, 241) +[2619190.182] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2619190.186] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2619190.276] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 241) +[2619190.281] {Default Queue} -> wl_region#1375.add(-24, -240, 7, 241) +[2619190.285] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2619190.288] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2619190.293] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2619190.297] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2619190.368] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 241) +[2619190.372] {Default Queue} -> wl_region#1375.add(-24, -240, 7, 241) +[2619190.376] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) +[2619190.380] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) +[2619190.385] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2619190.388] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) +[2619190.393] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) +[2619190.397] {Default Queue} -> wl_surface#1351.commit() +[2619190.401] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) +[2619190.405] {Default Queue} -> wl_surface#1351.commit() +[2619190.410] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) +[2619190.414] {Default Queue} -> wl_surface#1351.commit() +[2619190.419] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) +[2619190.423] {Default Queue} -> wl_surface#1383.commit() +[2619191.483] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) +[2619191.488] {Default Queue} -> wl_surface#1383.commit() +[2619191.495] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 241) +[2619191.499] {Default Queue} -> wl_region#1407.add(-24, -240, 7, 241) +[2619191.503] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2619191.507] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2619191.590] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 241) +[2619191.595] {Default Queue} -> wl_region#1407.add(-24, -240, 7, 241) +[2619191.598] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2619191.602] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2619191.607] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2619191.611] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2619191.679] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 241) +[2619191.684] {Default Queue} -> wl_region#1407.add(-24, -240, 7, 241) +[2619191.688] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) +[2619191.692] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) +[2619191.696] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2619191.700] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) +[2619191.705] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) +[2619191.709] {Default Queue} -> wl_surface#1383.commit() +[2619191.713] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) +[2619191.716] {Default Queue} -> wl_surface#1383.commit() +[2619191.722] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) +[2619191.725] {Default Queue} -> wl_surface#1383.commit() +[2619191.735] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) +[2619191.742] {Default Queue} -> wl_surface#1415.commit() +[2619192.805] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) +[2619192.814] {Default Queue} -> wl_surface#1415.commit() +[2619192.826] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 241) +[2619192.830] {Default Queue} -> wl_region#1439.add(-24, -240, 7, 241) +[2619192.834] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2619192.838] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2619192.938] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 241) +[2619192.943] {Default Queue} -> wl_region#1439.add(-24, -240, 7, 241) +[2619192.947] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2619192.950] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2619192.956] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2619192.960] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2619193.031] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 241) +[2619193.036] {Default Queue} -> wl_region#1439.add(-24, -240, 7, 241) +[2619193.040] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) +[2619193.044] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) +[2619193.048] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2619193.052] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) +[2619193.057] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) +[2619193.061] {Default Queue} -> wl_surface#1415.commit() +[2619193.065] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) +[2619193.068] {Default Queue} -> wl_surface#1415.commit() +[2619193.074] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) +[2619193.078] {Default Queue} -> wl_surface#1415.commit() +[2619193.084] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) +[2619193.088] {Default Queue} -> wl_surface#1255.commit() +[2619194.149] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) +[2619194.155] {Default Queue} -> wl_surface#1255.commit() +[2619194.162] {Default Queue} -> wl_region#1279.subtract(0, 0, 25, 241) +[2619194.167] {Default Queue} -> wl_region#1279.add(-24, -240, 7, 241) +[2619194.171] {Default Queue} -> wl_surface#1255.set_opaque_region(wl_region#1280) +[2619194.175] {Default Queue} -> wl_surface#1255.set_input_region(wl_region#1279) +[2619194.179] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) +[2619194.183] {Default Queue} -> wl_surface#1255.commit() +[2619194.187] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) +[2619194.191] {Default Queue} -> wl_surface#1255.commit() +[2619194.196] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) +[2619194.200] {Default Queue} -> wl_surface#1255.commit() +[2619194.206] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) +[2619194.210] {Default Queue} -> wl_surface#1031.commit() +[2619195.270] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) +[2619195.274] {Default Queue} -> wl_surface#1031.commit() +[2619195.281] {Default Queue} -> wl_region#1055.subtract(0, 0, 25, 241) +[2619195.285] {Default Queue} -> wl_region#1055.add(-23, -239, 24, 240) +[2619195.289] {Default Queue} -> wl_surface#1031.set_opaque_region(wl_region#1056) +[2619195.293] {Default Queue} -> wl_surface#1031.set_input_region(wl_region#1055) +[2619195.297] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) +[2619195.301] {Default Queue} -> wl_surface#1031.commit() +[2619195.305] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) +[2619195.309] {Default Queue} -> wl_surface#1031.commit() +[2619195.314] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) +[2619195.318] {Default Queue} -> wl_surface#1031.commit() +[2619195.323] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) +[2619195.327] {Default Queue} -> wl_surface#999.commit() +[2619196.387] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) +[2619196.396] {Default Queue} -> wl_surface#999.commit() +[2619196.404] {Default Queue} -> wl_region#1023.subtract(0, 0, 25, 241) +[2619196.408] {Default Queue} -> wl_region#1023.add(-23, -219, 25, 221) +[2619196.412] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) +[2619196.416] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) +[2619196.420] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) +[2619196.424] {Default Queue} -> wl_surface#999.commit() +[2619196.428] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) +[2619196.432] {Default Queue} -> wl_surface#999.commit() +[2619196.437] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) +[2619196.441] {Default Queue} -> wl_surface#999.commit() +[2619196.452] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) +[2619196.456] {Default Queue} -> wl_surface#935.commit() +[2619197.517] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) +[2619197.521] {Default Queue} -> wl_surface#935.commit() +[2619197.528] {Default Queue} -> wl_region#959.subtract(0, 0, 132, 380) +[2619197.532] {Default Queue} -> wl_region#959.add(-20, -216, 129, 377) +[2619197.536] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) +[2619197.540] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) +[2619197.546] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) +[2619197.550] {Default Queue} -> wl_surface#935.commit() +[2619197.555] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) +[2619197.558] {Default Queue} -> wl_surface#935.commit() +[2619197.565] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) +[2619197.568] {Default Queue} -> wl_surface#935.commit() +[2619197.580] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) +[2619197.585] {Default Queue} -> wl_surface#903.commit() +[2619197.591] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) +[2619197.595] {Default Queue} -> wl_surface#1511.commit() +[2619198.655] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) +[2619198.660] {Default Queue} -> wl_surface#1511.commit() +[2619198.671] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 236) +[2619198.675] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 236) +[2619198.679] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2619198.682] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2619198.772] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 236) +[2619198.777] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 236) +[2619198.781] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2619198.785] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2619198.795] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2619198.799] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2619198.870] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 236) +[2619198.874] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 236) +[2619198.878] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) +[2619198.882] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) +[2619198.887] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2619198.891] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) +[2619198.896] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) +[2619198.902] {Default Queue} -> wl_surface#1511.commit() +[2619198.907] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) +[2619198.912] {Default Queue} -> wl_surface#1511.commit() +[2619198.918] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) +[2619198.922] {Default Queue} -> wl_surface#1511.commit() +[2619198.928] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) +[2619198.932] {Default Queue} -> wl_surface#1575.commit() +[2619200.001] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) +[2619200.016] {Default Queue} -> wl_surface#1575.commit() +[2619200.039] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619200.049] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619200.055] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619200.060] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619200.071] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619200.077] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619200.082] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619200.087] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619200.099] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619200.105] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619200.110] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619200.114] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619200.122] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619200.127] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619200.133] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619200.137] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619200.144] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619200.149] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619200.154] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619200.159] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619200.220] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619200.225] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619200.231] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619200.236] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619200.243] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2619200.249] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) +[2619200.262] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619200.267] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619200.272] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619200.277] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619200.283] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619200.289] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619200.294] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619200.299] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619200.304] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619200.309] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619200.315] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619200.319] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619200.325] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619200.330] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619200.335] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619200.340] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619200.350] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619200.356] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619200.361] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619200.366] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619200.372] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619200.377] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619200.382] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619200.387] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619200.392] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619200.397] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619200.407] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619200.415] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619200.422] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) +[2619200.427] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) +[2619200.432] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) +[2619200.437] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) +[2619200.443] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) +[2619200.449] {Default Queue} -> wl_surface#1575.commit() +[2619200.454] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) +[2619200.459] {Default Queue} -> wl_surface#1575.commit() +[2619200.467] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) +[2619200.472] {Default Queue} -> wl_surface#1575.commit() +[2619200.480] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) +[2619200.485] {Default Queue} -> wl_surface#1543.commit() +[2619201.550] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) +[2619201.557] {Default Queue} -> wl_surface#1543.commit() +[2619201.568] {Default Queue} -> wl_region#1567.subtract(0, 0, 140, 241) +[2619201.573] {Default Queue} -> wl_region#1567.add(-138, -219, 140, 221) +[2619201.578] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) +[2619201.583] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) +[2619201.589] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) +[2619201.594] {Default Queue} -> wl_surface#1543.commit() +[2619201.599] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) +[2619201.604] {Default Queue} -> wl_surface#1543.commit() +[2619201.611] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) +[2619201.616] {Default Queue} -> wl_surface#1543.commit() +[2619201.635] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) +[2619201.641] {Default Queue} -> wl_surface#1479.commit() +[2619202.705] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) +[2619202.710] {Default Queue} -> wl_surface#1479.commit() +[2619202.728] {Default Queue} -> wl_region#1503.subtract(0, 0, 247, 380) +[2619202.734] {Default Queue} -> wl_region#1503.add(-135, -216, 244, 377) +[2619202.739] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) +[2619202.744] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) +[2619202.756] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) +[2619202.761] {Default Queue} -> wl_surface#1479.commit() +[2619202.767] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) +[2619202.772] {Default Queue} -> wl_surface#1479.commit() +[2619202.780] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) +[2619202.785] {Default Queue} -> wl_surface#1479.commit() +[2619202.806] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) +[2619202.811] {Default Queue} -> wl_surface#1447.commit() +[2619202.820] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) +[2619202.825] {Default Queue} -> wl_surface#1671.commit() +[2619203.869] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) +[2619203.875] {Default Queue} -> wl_surface#1671.commit() +[2619203.889] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 236) +[2619203.895] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 236) +[2619203.900] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2619203.905] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2619203.972] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 236) +[2619203.977] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 236) +[2619203.983] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2619203.988] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2619203.996] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2619204.002] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2619204.057] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 236) +[2619204.064] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 236) +[2619204.070] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) +[2619204.074] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) +[2619204.082] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2619204.087] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) +[2619204.093] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) +[2619204.098] {Default Queue} -> wl_surface#1671.commit() +[2619204.103] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) +[2619204.108] {Default Queue} -> wl_surface#1671.commit() +[2619204.115] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) +[2619204.120] {Default Queue} -> wl_surface#1671.commit() +[2619204.128] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) +[2619204.133] {Default Queue} -> wl_surface#1735.commit() +[2619205.196] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) +[2619205.203] {Default Queue} -> wl_surface#1735.commit() +[2619205.216] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) +[2619205.223] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) +[2619205.229] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2619205.234] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2619205.244] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) +[2619205.249] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) +[2619205.254] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2619205.259] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2619205.267] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) +[2619205.272] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) +[2619205.277] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2619205.282] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2619205.289] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) +[2619205.294] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) +[2619205.299] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2619205.304] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2619205.311] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) +[2619205.316] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) +[2619205.321] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) +[2619205.326] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) +[2619205.342] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) +[2619205.348] {Default Queue} -> wl_surface#1735.commit() +[2619205.353] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) +[2619205.358] {Default Queue} -> wl_surface#1735.commit() +[2619205.365] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) +[2619205.370] {Default Queue} -> wl_surface#1735.commit() +[2619205.377] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) +[2619205.382] {Default Queue} -> wl_surface#1703.commit() +[2619206.444] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) +[2619206.450] {Default Queue} -> wl_surface#1703.commit() +[2619206.458] {Default Queue} -> wl_region#1727.subtract(0, 0, 255, 241) +[2619206.463] {Default Queue} -> wl_region#1727.add(-253, -219, 255, 221) +[2619206.468] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) +[2619206.473] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) +[2619206.479] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) +[2619206.484] {Default Queue} -> wl_surface#1703.commit() +[2619206.489] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) +[2619206.494] {Default Queue} -> wl_surface#1703.commit() +[2619206.501] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) +[2619206.510] {Default Queue} -> wl_surface#1703.commit() +[2619206.525] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) +[2619206.532] {Default Queue} -> wl_surface#1639.commit() +[2619207.599] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) +[2619207.604] {Default Queue} -> wl_surface#1639.commit() +[2619207.614] {Default Queue} -> wl_region#1663.subtract(0, 0, 362, 380) +[2619207.619] {Default Queue} -> wl_region#1663.add(-250, -216, 359, 377) +[2619207.624] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) +[2619207.629] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) +[2619207.637] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) +[2619207.642] {Default Queue} -> wl_surface#1639.commit() +[2619207.648] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) +[2619207.653] {Default Queue} -> wl_surface#1639.commit() +[2619207.661] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) +[2619207.666] {Default Queue} -> wl_surface#1639.commit() +[2619207.679] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) +[2619207.684] {Default Queue} -> wl_surface#1607.commit() +[2619207.692] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) +[2619207.697] {Default Queue} -> wl_surface#1831.commit() +[2619208.760] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) +[2619208.765] {Default Queue} -> wl_surface#1831.commit() +[2619208.779] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 236) +[2619208.784] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 236) +[2619208.789] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2619208.794] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2619208.878] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 236) +[2619208.883] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 236) +[2619208.889] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2619208.893] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2619208.902] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2619208.907] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2619208.967] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 236) +[2619208.972] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 236) +[2619208.978] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) +[2619208.982] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) +[2619208.990] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2619208.995] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) +[2619209.001] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) +[2619209.006] {Default Queue} -> wl_surface#1831.commit() +[2619209.011] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) +[2619209.016] {Default Queue} -> wl_surface#1831.commit() +[2619209.024] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) +[2619209.029] {Default Queue} -> wl_surface#1831.commit() +[2619209.037] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) +[2619209.042] {Default Queue} -> wl_surface#1895.commit() +[2619210.105] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) +[2619210.111] {Default Queue} -> wl_surface#1895.commit() +[2619210.123] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 241) +[2619210.130] {Default Queue} -> wl_region#1919.add(-368, -239, 369, 240) +[2619210.135] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) +[2619210.140] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) +[2619210.148] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 241) +[2619210.153] {Default Queue} -> wl_region#1919.add(-368, -239, 369, 240) +[2619210.158] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) +[2619210.163] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) +[2619210.174] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2619210.180] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) +[2619210.190] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) +[2619210.197] {Default Queue} -> wl_surface#1895.commit() +[2619210.202] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) +[2619210.207] {Default Queue} -> wl_surface#1895.commit() +[2619210.215] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) +[2619210.220] {Default Queue} -> wl_surface#1895.commit() +[2619210.227] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) +[2619210.232] {Default Queue} -> wl_surface#1863.commit() +[2619211.294] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) +[2619211.299] {Default Queue} -> wl_surface#1863.commit() +[2619211.308] {Default Queue} -> wl_region#1887.subtract(0, 0, 370, 241) +[2619211.313] {Default Queue} -> wl_region#1887.add(-368, -219, 370, 221) +[2619211.318] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) +[2619211.323] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) +[2619211.329] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) +[2619211.335] {Default Queue} -> wl_surface#1863.commit() +[2619211.339] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) +[2619211.344] {Default Queue} -> wl_surface#1863.commit() +[2619211.351] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) +[2619211.356] {Default Queue} -> wl_surface#1863.commit() +[2619211.367] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) +[2619211.372] {Default Queue} -> wl_surface#1799.commit() +[2619212.438] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) +[2619212.444] {Default Queue} -> wl_surface#1799.commit() +[2619212.456] {Default Queue} -> wl_region#1823.subtract(0, 0, 477, 380) +[2619212.463] {Default Queue} -> wl_region#1823.add(-365, -216, 474, 377) +[2619212.468] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) +[2619212.473] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) +[2619212.482] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) +[2619212.487] {Default Queue} -> wl_surface#1799.commit() +[2619212.493] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) +[2619212.498] {Default Queue} -> wl_surface#1799.commit() +[2619212.506] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) +[2619212.511] {Default Queue} -> wl_surface#1799.commit() +[2619212.525] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) +[2619212.530] {Default Queue} -> wl_surface#1772.commit() +[2619212.537] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) +[2619212.543] {Default Queue} -> wl_surface#1991.commit() +[2619213.605] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) +[2619213.610] {Default Queue} -> wl_surface#1991.commit() +[2619213.622] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 236) +[2619213.628] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 236) +[2619213.633] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2619213.638] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2619213.704] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 236) +[2619213.709] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 236) +[2619213.715] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2619213.719] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2619213.728] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2619213.733] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2619213.780] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 236) +[2619213.785] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 236) +[2619213.790] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) +[2619213.795] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) +[2619213.802] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2619213.807] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) +[2619213.820] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) +[2619213.827] {Default Queue} -> wl_surface#1991.commit() +[2619213.832] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) +[2619213.837] {Default Queue} -> wl_surface#1991.commit() +[2619213.845] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) +[2619213.850] {Default Queue} -> wl_surface#1991.commit() +[2619213.857] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) +[2619213.875] {Default Queue} -> wl_surface#2055.commit() +[2619214.938] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) +[2619214.944] {Default Queue} -> wl_surface#2055.commit() +[2619214.957] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) +[2619214.963] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) +[2619214.968] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2619214.973] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2619215.057] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) +[2619215.062] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) +[2619215.067] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2619215.072] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2619215.080] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619215.085] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619215.253] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) +[2619215.258] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) +[2619215.264] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2619215.268] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2619215.275] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619215.280] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619215.349] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) +[2619215.354] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) +[2619215.359] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2619215.364] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2619215.371] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619215.376] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619215.530] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) +[2619215.535] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) +[2619215.540] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) +[2619215.545] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) +[2619215.551] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619215.557] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) +[2619215.563] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) +[2619215.568] {Default Queue} -> wl_surface#2055.commit() +[2619215.573] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) +[2619215.578] {Default Queue} -> wl_surface#2055.commit() +[2619215.586] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) +[2619215.591] {Default Queue} -> wl_surface#2055.commit() +[2619215.598] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) +[2619215.603] {Default Queue} -> wl_surface#2023.commit() +[2619216.665] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) +[2619216.670] {Default Queue} -> wl_surface#2023.commit() +[2619216.679] {Default Queue} -> wl_region#2047.subtract(0, 0, 485, 241) +[2619216.684] {Default Queue} -> wl_region#2047.add(-483, -219, 485, 221) +[2619216.689] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) +[2619216.694] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) +[2619216.700] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) +[2619216.705] {Default Queue} -> wl_surface#2023.commit() +[2619216.710] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) +[2619216.715] {Default Queue} -> wl_surface#2023.commit() +[2619216.726] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) +[2619216.734] {Default Queue} -> wl_surface#2023.commit() +[2619216.751] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) +[2619216.756] {Default Queue} -> wl_surface#1959.commit() +[2619217.820] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) +[2619217.825] {Default Queue} -> wl_surface#1959.commit() +[2619217.842] {Default Queue} -> wl_region#1983.subtract(0, 0, 592, 380) +[2619217.848] {Default Queue} -> wl_region#1983.add(-480, -216, 589, 377) +[2619217.853] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) +[2619217.858] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) +[2619217.870] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) +[2619217.875] {Default Queue} -> wl_surface#1959.commit() +[2619217.880] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) +[2619217.885] {Default Queue} -> wl_surface#1959.commit() +[2619217.893] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) +[2619217.898] {Default Queue} -> wl_surface#1959.commit() +[2619217.912] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) +[2619217.917] {Default Queue} -> wl_surface#1927.commit() +[2619217.955] {Default Queue} -> wl_surface#871.attach(wl_buffer#926, 0, 0) +[2619217.961] {Default Queue} -> wl_surface#871.commit() +[2619217.969] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) +[2619217.974] {Default Queue} -> wl_surface#2183.commit() +[2619219.036] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) +[2619219.042] {Default Queue} -> wl_surface#2183.commit() +[2619219.056] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 403) +[2619219.061] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 403) +[2619219.066] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2619219.071] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2619219.153] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 403) +[2619219.158] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 403) +[2619219.163] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2619219.168] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2619219.176] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2619219.182] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2619219.239] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 403) +[2619219.244] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 403) +[2619219.249] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) +[2619219.254] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) +[2619219.261] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2619219.266] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) +[2619219.272] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) +[2619219.278] {Default Queue} -> wl_surface#2183.commit() +[2619219.282] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) +[2619219.287] {Default Queue} -> wl_surface#2183.commit() +[2619219.294] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) +[2619219.299] {Default Queue} -> wl_surface#2183.commit() +[2619219.307] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2619219.313] {Default Queue} -> wl_surface#2279.commit() +[2619220.375] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2619220.381] {Default Queue} -> wl_surface#2279.commit() +[2619220.393] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619220.398] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619220.404] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619220.409] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619220.420] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619220.425] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619220.435] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619220.442] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619220.450] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619220.455] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619220.460] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619220.465] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619220.471] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619220.477] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619220.482] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619220.486] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619220.494] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619220.499] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619220.504] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619220.509] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619220.518] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619220.523] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619220.528] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619220.533] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619220.538] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619220.543] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619220.549] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619220.554] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619220.560] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619220.566] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619220.571] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619220.575] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619220.581] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619220.586] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619220.591] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619220.596] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619220.610] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619220.617] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619220.622] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619220.627] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619220.633] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619220.638] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619220.643] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619220.648] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619220.655] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619220.660] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619220.665] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619220.670] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619220.677] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619220.682] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619220.687] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619220.692] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619220.699] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619220.704] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619220.709] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619220.714] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619220.723] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619220.728] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619220.733] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619220.741] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619220.749] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619220.754] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619220.759] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619220.764] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619220.770] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619220.775] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619220.780] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619220.784] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619220.790] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619220.795] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619220.800] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619220.805] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619220.813] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) +[2619220.818] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) +[2619220.823] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) +[2619220.828] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) +[2619220.837] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2619220.842] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) +[2619220.848] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2619220.853] {Default Queue} -> wl_surface#2279.commit() +[2619220.858] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2619220.864] {Default Queue} -> wl_surface#2279.commit() +[2619220.877] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) +[2619220.883] {Default Queue} -> wl_surface#2279.commit() +[2619220.914] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) +[2619220.925] {Default Queue} -> wl_surface#2311.commit() +[2619221.995] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) +[2619222.010] {Default Queue} -> wl_surface#2311.commit() +[2619222.023] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619222.029] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619222.036] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619222.040] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619222.054] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619222.060] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619222.066] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619222.071] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619222.078] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619222.083] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619222.088] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619222.093] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619222.099] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619222.103] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619222.109] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619222.113] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619222.120] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619222.125] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619222.131] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619222.136] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619222.142] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619222.147] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619222.153] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619222.157] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619222.198] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619222.207] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619222.214] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619222.218] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619222.225] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2619222.229] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) +[2619222.237] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619222.241] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619222.245] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619222.248] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619222.253] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619222.257] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619222.261] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619222.265] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619222.269] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619222.273] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619222.277] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619222.281] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619222.285] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) +[2619222.289] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) +[2619222.293] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) +[2619222.297] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) +[2619222.301] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) +[2619222.305] {Default Queue} -> wl_surface#2311.commit() +[2619222.309] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) +[2619222.313] {Default Queue} -> wl_surface#2311.commit() +[2619222.356] {Display Queue} wl_display#1.delete_id(3389) +[2619222.362] {Display Queue} wl_display#1.delete_id(3738) +[2619222.366] {Display Queue} wl_display#1.delete_id(3387) +[2619222.370] {Display Queue} wl_display#1.delete_id(3390) +[2619222.373] {Display Queue} wl_display#1.delete_id(3739) +[2619222.377] {Display Queue} wl_display#1.delete_id(3712) +[2619222.381] {Display Queue} wl_display#1.delete_id(3760) +[2619222.384] {Display Queue} wl_display#1.delete_id(3761) +[2619222.388] {Display Queue} wl_display#1.delete_id(3758) +[2619222.391] {Display Queue} wl_display#1.delete_id(3759) +[2619222.395] {Default Queue} wl_pointer#24.motion(187310852, 17.00000000, 16.60156250) +[2619222.400] {Default Queue} wl_pointer#81.motion(187310852, 17.00000000, 16.60156250) +[2619222.406] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) +[2619222.411] {Default Queue} wl_pointer#105.motion(187310852, 17.00000000, 16.60156250) +[2619222.415] {Default Queue} wl_pointer#137.motion(187310852, 17.00000000, 16.60156250) +[2619222.419] {Default Queue} wl_pointer#169.motion(187310852, 17.00000000, 16.60156250) +[2619222.423] {Default Queue} wl_pointer#201.motion(187310852, 17.00000000, 16.60156250) +[2619222.427] {Default Queue} wl_pointer#233.motion(187310852, 17.00000000, 16.60156250) +[2619222.432] {Default Queue} wl_pointer#265.motion(187310852, 17.00000000, 16.60156250) +[2619222.436] {Default Queue} wl_pointer#297.motion(187310852, 17.00000000, 16.60156250) +[2619222.441] {Default Queue} wl_pointer#329.motion(187310852, 17.00000000, 16.60156250) +[2619222.445] {Default Queue} wl_pointer#361.motion(187310852, 17.00000000, 16.60156250) +[2619222.449] {Default Queue} wl_pointer#393.motion(187310852, 17.00000000, 16.60156250) +[2619222.454] {Default Queue} wl_pointer#425.motion(187310852, 17.00000000, 16.60156250) +[2619222.458] {Default Queue} wl_pointer#457.motion(187310852, 17.00000000, 16.60156250) +[2619222.463] {Default Queue} wl_pointer#489.motion(187310852, 17.00000000, 16.60156250) +[2619222.467] {Default Queue} wl_pointer#521.motion(187310852, 17.00000000, 16.60156250) +[2619222.472] {Default Queue} wl_pointer#553.motion(187310852, 17.00000000, 16.60156250) +[2619222.480] {Default Queue} wl_pointer#585.motion(187310852, 17.00000000, 16.60156250) +[2619222.486] {Default Queue} wl_pointer#617.motion(187310852, 17.00000000, 16.60156250) +[2619222.491] {Default Queue} wl_pointer#649.motion(187310852, 17.00000000, 16.60156250) +[2619222.495] {Default Queue} wl_pointer#681.motion(187310852, 17.00000000, 16.60156250) +[2619222.500] {Default Queue} wl_pointer#713.motion(187310852, 17.00000000, 16.60156250) +[2619222.504] {Default Queue} wl_pointer#745.motion(187310852, 17.00000000, 16.60156250) +[2619222.508] {Default Queue} wl_pointer#777.motion(187310852, 17.00000000, 16.60156250) +[2619222.512] {Default Queue} wl_pointer#809.motion(187310852, 17.00000000, 16.60156250) +[2619222.517] {Default Queue} wl_pointer#841.motion(187310852, 17.00000000, 16.60156250) +[2619222.521] {Default Queue} wl_pointer#873.motion(187310852, 17.00000000, 16.60156250) +[2619222.525] {Default Queue} wl_pointer#905.motion(187310852, 17.00000000, 16.60156250) +[2619222.530] {Default Queue} wl_pointer#937.motion(187310852, 17.00000000, 16.60156250) +[2619222.534] {Default Queue} wl_pointer#969.motion(187310852, 17.00000000, 16.60156250) +[2619222.538] {Default Queue} wl_pointer#1001.motion(187310852, 17.00000000, 16.60156250) +[2619222.542] {Default Queue} wl_pointer#1033.motion(187310852, 17.00000000, 16.60156250) +[2619222.546] {Default Queue} wl_pointer#1065.motion(187310852, 17.00000000, 16.60156250) +[2619222.550] {Default Queue} wl_pointer#1097.motion(187310852, 17.00000000, 16.60156250) +[2619222.554] {Default Queue} wl_pointer#1129.motion(187310852, 17.00000000, 16.60156250) +[2619222.559] {Default Queue} wl_pointer#1161.motion(187310852, 17.00000000, 16.60156250) +[2619222.563] {Default Queue} wl_pointer#1193.motion(187310852, 17.00000000, 16.60156250) +[2619222.568] {Default Queue} wl_pointer#1225.motion(187310852, 17.00000000, 16.60156250) +[2619222.572] {Default Queue} wl_pointer#1257.motion(187310852, 17.00000000, 16.60156250) +[2619222.576] {Default Queue} wl_pointer#1289.motion(187310852, 17.00000000, 16.60156250) +[2619222.581] {Default Queue} wl_pointer#1321.motion(187310852, 17.00000000, 16.60156250) +[2619222.585] {Default Queue} wl_pointer#1353.motion(187310852, 17.00000000, 16.60156250) +[2619222.589] {Default Queue} wl_pointer#1385.motion(187310852, 17.00000000, 16.60156250) +[2619222.593] {Default Queue} wl_pointer#1417.motion(187310852, 17.00000000, 16.60156250) +[2619222.597] {Default Queue} wl_pointer#1449.motion(187310852, 17.00000000, 16.60156250) +[2619222.602] {Default Queue} wl_pointer#1481.motion(187310852, 17.00000000, 16.60156250) +[2619222.606] {Default Queue} wl_pointer#1513.motion(187310852, 17.00000000, 16.60156250) +[2619222.610] {Default Queue} wl_pointer#1545.motion(187310852, 17.00000000, 16.60156250) +[2619222.614] {Default Queue} wl_pointer#1577.motion(187310852, 17.00000000, 16.60156250) +[2619222.617] {Default Queue} wl_pointer#1609.motion(187310852, 17.00000000, 16.60156250) +[2619222.621] {Default Queue} wl_pointer#1641.motion(187310852, 17.00000000, 16.60156250) +[2619222.625] {Default Queue} wl_pointer#1673.motion(187310852, 17.00000000, 16.60156250) +[2619222.629] {Default Queue} wl_pointer#1705.motion(187310852, 17.00000000, 16.60156250) +[2619222.633] {Default Queue} wl_pointer#1737.motion(187310852, 17.00000000, 16.60156250) +[2619222.637] {Default Queue} wl_pointer#1762.motion(187310852, 17.00000000, 16.60156250) +[2619222.641] {Default Queue} wl_pointer#1801.motion(187310852, 17.00000000, 16.60156250) +[2619222.645] {Default Queue} wl_pointer#1833.motion(187310852, 17.00000000, 16.60156250) +[2619222.649] {Default Queue} wl_pointer#1865.motion(187310852, 17.00000000, 16.60156250) +[2619222.653] {Default Queue} wl_pointer#1897.motion(187310852, 17.00000000, 16.60156250) +[2619222.657] {Default Queue} wl_pointer#1929.motion(187310852, 17.00000000, 16.60156250) +[2619222.661] {Default Queue} wl_pointer#1961.motion(187310852, 17.00000000, 16.60156250) +[2619222.665] {Default Queue} wl_pointer#1993.motion(187310852, 17.00000000, 16.60156250) +[2619222.669] {Default Queue} wl_pointer#2025.motion(187310852, 17.00000000, 16.60156250) +[2619222.676] {Default Queue} wl_pointer#2057.motion(187310852, 17.00000000, 16.60156250) +[2619222.681] {Default Queue} wl_pointer#2089.motion(187310852, 17.00000000, 16.60156250) +[2619222.685] {Default Queue} wl_pointer#2121.motion(187310852, 17.00000000, 16.60156250) +[2619222.689] {Default Queue} wl_pointer#2153.motion(187310852, 17.00000000, 16.60156250) +[2619222.693] {Default Queue} wl_pointer#2185.motion(187310852, 17.00000000, 16.60156250) +[2619222.697] {Default Queue} wl_pointer#2217.motion(187310852, 17.00000000, 16.60156250) +[2619222.701] {Default Queue} wl_pointer#2249.motion(187310852, 17.00000000, 16.60156250) +[2619222.706] {Default Queue} wl_pointer#2281.motion(187310852, 17.00000000, 16.60156250) +[2619222.710] {Default Queue} wl_pointer#2313.motion(187310852, 17.00000000, 16.60156250) +[2619222.714] {Default Queue} wl_pointer#2345.motion(187310852, 17.00000000, 16.60156250) +[2619222.718] {Default Queue} wl_pointer#2377.motion(187310852, 17.00000000, 16.60156250) +[2619222.723] {Default Queue} wl_pointer#2409.motion(187310852, 17.00000000, 16.60156250) +[2619222.727] {Default Queue} wl_pointer#2441.motion(187310852, 17.00000000, 16.60156250) +[2619222.732] {Default Queue} wl_pointer#2473.motion(187310852, 17.00000000, 16.60156250) +[2619222.736] {Default Queue} wl_pointer#2498.motion(187310852, 17.00000000, 16.60156250) +[2619222.753] {Default Queue} -> wl_buffer#3729.destroy() +[2619222.757] {Default Queue} -> wl_buffer#3728.destroy() +[2619222.761] {Default Queue} -> wl_shm_pool#3727.destroy() +[2619222.765] {Default Queue} -> wl_shm_pool#3726.destroy() +[2619222.770] {Default Queue} -> wl_surface#3708.destroy() +[2619222.825] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3759, fd 575, 640) +[2619222.832] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3758, fd 578, 640) +[2619222.836] {Default Queue} -> wl_shm_pool#3759.create_buffer(new id wl_buffer#3761, 0, 10, 16, 40, 0) +[2619222.841] {Default Queue} -> wl_shm_pool#3758.create_buffer(new id wl_buffer#3760, 0, 10, 16, 40, 0) +[2619222.849] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3712) +[2619222.854] {Default Queue} -> wl_surface#3712.attach(wl_buffer#3761, 0, 0) +[2619222.859] {Default Queue} -> wl_surface#3712.commit() +[2619222.870] {Default Queue} -> wl_surface#3712.attach(wl_buffer#3761, 0, 0) +[2619222.874] {Default Queue} -> wl_surface#3712.commit() +[2619222.878] {Default Queue} wl_pointer#2537.motion(187310852, 17.00000000, 16.60156250) +[2619222.883] {Default Queue} wl_pointer#2569.motion(187310852, 17.00000000, 16.60156250) +[2619222.887] {Default Queue} wl_pointer#2601.motion(187310852, 17.00000000, 16.60156250) +[2619222.891] {Default Queue} wl_pointer#2633.motion(187310852, 17.00000000, 16.60156250) +[2619222.896] {Default Queue} wl_pointer#2665.motion(187310852, 17.00000000, 16.60156250) +[2619222.900] {Default Queue} wl_pointer#2697.motion(187310852, 17.00000000, 16.60156250) +[2619222.904] {Default Queue} wl_pointer#2729.motion(187310852, 17.00000000, 16.60156250) +[2619222.909] {Default Queue} wl_pointer#2761.motion(187310852, 17.00000000, 16.60156250) +[2619222.913] {Default Queue} wl_pointer#2793.motion(187310852, 17.00000000, 16.60156250) +[2619222.918] {Default Queue} wl_pointer#2825.motion(187310852, 17.00000000, 16.60156250) +[2619222.923] {Default Queue} wl_pointer#2857.motion(187310852, 17.00000000, 16.60156250) +[2619222.927] {Default Queue} wl_pointer#2889.motion(187310852, 17.00000000, 16.60156250) +[2619222.931] {Default Queue} wl_pointer#2921.motion(187310852, 17.00000000, 16.60156250) +[2619222.936] {Default Queue} wl_pointer#2953.motion(187310852, 17.00000000, 16.60156250) +[2619222.940] {Default Queue} wl_pointer#2985.motion(187310852, 17.00000000, 16.60156250) +[2619222.945] {Default Queue} wl_pointer#3017.motion(187310852, 17.00000000, 16.60156250) +[2619222.949] {Default Queue} wl_pointer#3049.motion(187310852, 17.00000000, 16.60156250) +[2619222.953] {Default Queue} wl_pointer#3081.motion(187310852, 17.00000000, 16.60156250) +[2619222.961] {Default Queue} wl_pointer#3113.motion(187310852, 17.00000000, 16.60156250) +[2619222.967] {Default Queue} wl_pointer#3145.motion(187310852, 17.00000000, 16.60156250) +[2619222.972] {Default Queue} wl_pointer#3177.motion(187310852, 17.00000000, 16.60156250) +[2619222.976] {Default Queue} wl_pointer#3209.motion(187310852, 17.00000000, 16.60156250) +[2619222.981] {Default Queue} wl_pointer#3241.motion(187310852, 17.00000000, 16.60156250) +[2619222.985] {Default Queue} wl_pointer#3273.motion(187310852, 17.00000000, 16.60156250) +[2619222.989] {Default Queue} wl_pointer#3305.motion(187310852, 17.00000000, 16.60156250) +[2619222.994] {Default Queue} wl_pointer#3337.motion(187310852, 17.00000000, 16.60156250) +[2619222.998] {Default Queue} wl_pointer#3369.motion(187310852, 17.00000000, 16.60156250) +[2619223.003] {Default Queue} wl_pointer#3401.motion(187310852, 17.00000000, 16.60156250) +[2619223.007] {Default Queue} wl_pointer#3433.motion(187310852, 17.00000000, 16.60156250) +[2619223.012] {Default Queue} wl_pointer#3465.motion(187310852, 17.00000000, 16.60156250) +[2619223.017] {Default Queue} wl_pointer#3497.motion(187310852, 17.00000000, 16.60156250) +[2619223.021] {Default Queue} wl_pointer#3529.motion(187310852, 17.00000000, 16.60156250) +[2619223.025] {Default Queue} wl_pointer#3561.motion(187310852, 17.00000000, 16.60156250) +[2619223.029] {Default Queue} wl_pointer#3593.motion(187310852, 17.00000000, 16.60156250) +[2619223.034] {Default Queue} wl_pointer#3625.motion(187310852, 17.00000000, 16.60156250) +[2619223.038] {Default Queue} wl_pointer#3657.motion(187310852, 17.00000000, 16.60156250) +[2619223.043] {Default Queue} wl_pointer#3695.motion(187310852, 17.00000000, 16.60156250) +[2619223.047] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) +[2619223.050] {Default Queue} -> wl_surface#2311.commit() +[2619224.117] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) +[2619224.129] {Default Queue} -> wl_surface#2311.commit() +[2619224.137] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) +[2619224.141] {Default Queue} -> wl_surface#2311.commit() +[2619224.147] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) +[2619224.151] {Default Queue} -> wl_surface#2247.commit() +[2619225.214] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) +[2619225.220] {Default Queue} -> wl_surface#2247.commit() +[2619225.230] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) +[2619225.235] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) +[2619225.239] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2619225.243] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2619225.254] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) +[2619225.258] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) +[2619225.262] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2619225.266] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2619225.272] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) +[2619225.276] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) +[2619225.280] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2619225.283] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2619225.288] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) +[2619225.292] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) +[2619225.296] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2619225.300] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2619225.304] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) +[2619225.308] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) +[2619225.312] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2619225.315] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2619225.395] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) +[2619225.399] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) +[2619225.408] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) +[2619225.414] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) +[2619225.420] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2619225.424] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) +[2619225.429] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) +[2619225.433] {Default Queue} -> wl_surface#2247.commit() +[2619225.437] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) +[2619225.441] {Default Queue} -> wl_surface#2247.commit() +[2619225.447] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) +[2619225.451] {Default Queue} -> wl_surface#2247.commit() +[2619225.456] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) +[2619225.460] {Default Queue} -> wl_surface#2215.commit() +[2619226.523] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) +[2619226.535] {Default Queue} -> wl_surface#2215.commit() +[2619226.546] {Default Queue} -> wl_region#2239.subtract(0, 0, 25, 408) +[2619226.550] {Default Queue} -> wl_region#2239.add(-23, -386, 25, 388) +[2619226.555] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) +[2619226.559] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) +[2619226.564] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) +[2619226.568] {Default Queue} -> wl_surface#2215.commit() +[2619226.571] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) +[2619226.575] {Default Queue} -> wl_surface#2215.commit() +[2619226.582] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) +[2619226.587] {Default Queue} -> wl_surface#2215.commit() +[2619226.598] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) +[2619226.602] {Default Queue} -> wl_surface#2151.commit() +[2619227.674] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) +[2619227.685] {Default Queue} -> wl_surface#2151.commit() +[2619227.697] {Default Queue} -> wl_region#2175.subtract(0, 0, 132, 547) +[2619227.702] {Default Queue} -> wl_region#2175.add(-20, -383, 129, 544) +[2619227.707] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) +[2619227.711] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) +[2619227.717] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) +[2619227.722] {Default Queue} -> wl_surface#2151.commit() +[2619227.726] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) +[2619227.730] {Default Queue} -> wl_surface#2151.commit() +[2619227.737] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) +[2619227.741] {Default Queue} -> wl_surface#2151.commit() +[2619227.753] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) +[2619227.757] {Default Queue} -> wl_surface#2119.commit() +[2619227.763] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) +[2619227.767] {Default Queue} -> wl_surface#2407.commit() +[2619228.829] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) +[2619228.835] {Default Queue} -> wl_surface#2407.commit() +[2619228.846] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 403) +[2619228.851] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 403) +[2619228.855] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2619228.858] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2619228.980] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 403) +[2619228.985] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 403) +[2619228.989] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2619228.993] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2619229.000] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2619229.004] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2619229.088] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 403) +[2619229.092] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 403) +[2619229.101] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) +[2619229.108] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) +[2619229.113] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2619229.117] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) +[2619229.122] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) +[2619229.126] {Default Queue} -> wl_surface#2407.commit() +[2619229.130] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) +[2619229.133] {Default Queue} -> wl_surface#2407.commit() +[2619229.139] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) +[2619229.143] {Default Queue} -> wl_surface#2407.commit() +[2619229.149] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) +[2619229.153] {Default Queue} -> wl_surface#2471.commit() +[2619230.215] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) +[2619230.225] {Default Queue} -> wl_surface#2471.commit() +[2619230.243] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619230.248] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619230.252] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619230.256] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619230.264] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619230.268] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619230.271] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619230.275] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619230.281] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619230.285] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619230.289] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619230.293] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619230.298] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619230.302] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619230.306] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619230.309] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619230.315] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619230.319] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619230.322] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619230.326] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619230.332] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619230.336] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619230.340] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619230.343] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619230.348] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619230.352] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619230.355] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619230.360] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619230.365] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619230.369] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619230.374] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619230.377] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619230.382] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619230.386] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619230.390] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619230.394] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619230.398] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619230.402] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619230.406] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619230.410] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619230.420] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619230.427] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619230.431] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619230.434] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619230.439] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619230.443] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619230.447] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619230.451] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619230.455] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619230.459] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619230.463] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619230.467] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619230.471] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619230.475] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619230.479] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619230.482] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619230.488] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619230.492] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619230.496] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619230.499] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619230.504] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619230.508] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619230.512] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619230.516] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619230.520] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619230.524] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619230.528] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619230.531] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619230.536] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) +[2619230.540] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) +[2619230.543] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) +[2619230.547] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) +[2619230.551] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) +[2619230.555] {Default Queue} -> wl_surface#2471.commit() +[2619230.559] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) +[2619230.563] {Default Queue} -> wl_surface#2471.commit() +[2619230.569] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) +[2619230.573] {Default Queue} -> wl_surface#2471.commit() +[2619230.579] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) +[2619230.583] {Default Queue} -> wl_surface#2439.commit() +[2619231.645] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) +[2619231.651] {Default Queue} -> wl_surface#2439.commit() +[2619231.659] {Default Queue} -> wl_region#2463.subtract(0, 0, 140, 408) +[2619231.663] {Default Queue} -> wl_region#2463.add(-138, -386, 140, 388) +[2619231.668] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) +[2619231.671] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) +[2619231.676] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) +[2619231.680] {Default Queue} -> wl_surface#2439.commit() +[2619231.683] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) +[2619231.687] {Default Queue} -> wl_surface#2439.commit() +[2619231.693] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) +[2619231.697] {Default Queue} -> wl_surface#2439.commit() +[2619231.706] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) +[2619231.714] {Default Queue} -> wl_surface#2375.commit() +[2619232.781] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) +[2619232.791] {Default Queue} -> wl_surface#2375.commit() +[2619232.802] {Default Queue} -> wl_region#2399.subtract(0, 0, 247, 547) +[2619232.806] {Default Queue} -> wl_region#2399.add(-135, -383, 244, 544) +[2619232.811] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) +[2619232.817] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) +[2619232.827] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) +[2619232.833] {Default Queue} -> wl_surface#2375.commit() +[2619232.841] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) +[2619232.847] {Default Queue} -> wl_surface#2375.commit() +[2619232.856] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) +[2619232.867] {Default Queue} -> wl_surface#2375.commit() +[2619232.880] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) +[2619232.884] {Default Queue} -> wl_surface#2343.commit() +[2619232.890] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) +[2619232.895] {Default Queue} -> wl_surface#2567.commit() +[2619233.957] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) +[2619233.961] {Default Queue} -> wl_surface#2567.commit() +[2619233.971] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 403) +[2619233.976] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 403) +[2619233.980] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2619233.983] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2619234.108] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 403) +[2619234.112] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 403) +[2619234.116] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2619234.120] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2619234.127] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2619234.131] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2619234.219] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 403) +[2619234.223] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 403) +[2619234.227] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) +[2619234.231] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) +[2619234.236] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2619234.240] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) +[2619234.245] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) +[2619234.249] {Default Queue} -> wl_surface#2567.commit() +[2619234.252] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) +[2619234.256] {Default Queue} -> wl_surface#2567.commit() +[2619234.261] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) +[2619234.265] {Default Queue} -> wl_surface#2567.commit() +[2619234.271] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) +[2619234.275] {Default Queue} -> wl_surface#2631.commit() +[2619235.336] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) +[2619235.344] {Default Queue} -> wl_surface#2631.commit() +[2619235.354] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) +[2619235.358] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) +[2619235.362] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2619235.366] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2619235.373] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) +[2619235.377] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) +[2619235.381] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2619235.385] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2619235.392] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) +[2619235.396] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) +[2619235.399] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2619235.408] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2619235.416] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) +[2619235.420] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) +[2619235.423] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2619235.427] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2619235.432] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) +[2619235.436] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) +[2619235.440] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2619235.444] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2619235.450] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) +[2619235.454] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) +[2619235.458] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) +[2619235.461] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) +[2619235.466] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) +[2619235.470] {Default Queue} -> wl_surface#2631.commit() +[2619235.473] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) +[2619235.477] {Default Queue} -> wl_surface#2631.commit() +[2619235.483] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) +[2619235.487] {Default Queue} -> wl_surface#2631.commit() +[2619235.492] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) +[2619235.496] {Default Queue} -> wl_surface#2599.commit() +[2619236.559] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) +[2619236.569] {Default Queue} -> wl_surface#2599.commit() +[2619236.578] {Default Queue} -> wl_region#2623.subtract(0, 0, 255, 408) +[2619236.582] {Default Queue} -> wl_region#2623.add(-253, -386, 255, 388) +[2619236.586] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) +[2619236.590] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) +[2619236.595] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) +[2619236.599] {Default Queue} -> wl_surface#2599.commit() +[2619236.603] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) +[2619236.607] {Default Queue} -> wl_surface#2599.commit() +[2619236.612] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) +[2619236.616] {Default Queue} -> wl_surface#2599.commit() +[2619236.627] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3718, 0, 0) +[2619236.631] {Default Queue} -> wl_surface#2535.commit() +[2619237.145] {Display Queue} wl_display#1.delete_id(3729) +[2619237.156] {Display Queue} wl_display#1.delete_id(3728) +[2619237.160] {Display Queue} wl_display#1.delete_id(3727) +[2619237.164] {Display Queue} wl_display#1.delete_id(3726) +[2619237.168] {Display Queue} wl_display#1.delete_id(3708) +[2619237.172] {Default Queue} wl_pointer#24.button(762, 187310867, 272, 1) +[2619237.177] {Default Queue} wl_pointer#81.button(762, 187310867, 272, 1) +[2619237.202] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3708) +[2619237.207] {Default Queue} -> wl_display#1.sync(new id wl_callback#3726) +[2619237.211] {Default Queue} wl_pointer#105.button(762, 187310867, 272, 1) +[2619237.216] {Default Queue} wl_pointer#137.button(762, 187310867, 272, 1) +[2619237.220] {Default Queue} wl_pointer#169.button(762, 187310867, 272, 1) +[2619237.224] {Default Queue} wl_pointer#201.button(762, 187310867, 272, 1) +[2619237.228] {Default Queue} wl_pointer#233.button(762, 187310867, 272, 1) +[2619237.232] {Default Queue} wl_pointer#265.button(762, 187310867, 272, 1) +[2619237.236] {Default Queue} wl_pointer#297.button(762, 187310867, 272, 1) +[2619237.240] {Default Queue} wl_pointer#329.button(762, 187310867, 272, 1) +[2619237.244] {Default Queue} wl_pointer#361.button(762, 187310867, 272, 1) +[2619237.248] {Default Queue} wl_pointer#393.button(762, 187310867, 272, 1) +[2619237.252] {Default Queue} wl_pointer#425.button(762, 187310867, 272, 1) +[2619237.255] {Default Queue} wl_pointer#457.button(762, 187310867, 272, 1) +[2619237.271] {Default Queue} wl_pointer#489.button(762, 187310867, 272, 1) +[2619237.278] {Default Queue} wl_pointer#521.button(762, 187310867, 272, 1) +[2619237.282] {Default Queue} wl_pointer#553.button(762, 187310867, 272, 1) +[2619237.285] {Default Queue} wl_pointer#585.button(762, 187310867, 272, 1) +[2619237.289] {Default Queue} wl_pointer#617.button(762, 187310867, 272, 1) +[2619237.293] {Default Queue} wl_pointer#649.button(762, 187310867, 272, 1) +[2619237.297] {Default Queue} wl_pointer#681.button(762, 187310867, 272, 1) +[2619237.301] {Default Queue} wl_pointer#713.button(762, 187310867, 272, 1) +[2619237.305] {Default Queue} wl_pointer#745.button(762, 187310867, 272, 1) +[2619237.309] {Default Queue} wl_pointer#777.button(762, 187310867, 272, 1) +[2619237.313] {Default Queue} wl_pointer#809.button(762, 187310867, 272, 1) +[2619237.317] {Default Queue} wl_pointer#841.button(762, 187310867, 272, 1) +[2619237.321] {Default Queue} wl_pointer#873.button(762, 187310867, 272, 1) +[2619237.325] {Default Queue} wl_pointer#905.button(762, 187310867, 272, 1) +[2619237.329] {Default Queue} wl_pointer#937.button(762, 187310867, 272, 1) +[2619237.333] {Default Queue} wl_pointer#969.button(762, 187310867, 272, 1) +[2619237.336] {Default Queue} wl_pointer#1001.button(762, 187310867, 272, 1) +[2619237.340] {Default Queue} wl_pointer#1033.button(762, 187310867, 272, 1) +[2619237.344] {Default Queue} wl_pointer#1065.button(762, 187310867, 272, 1) +[2619237.348] {Default Queue} wl_pointer#1097.button(762, 187310867, 272, 1) +[2619237.352] {Default Queue} wl_pointer#1129.button(762, 187310867, 272, 1) +[2619237.356] {Default Queue} wl_pointer#1161.button(762, 187310867, 272, 1) +[2619237.360] {Default Queue} wl_pointer#1193.button(762, 187310867, 272, 1) +[2619237.363] {Default Queue} wl_pointer#1225.button(762, 187310867, 272, 1) +[2619237.367] {Default Queue} wl_pointer#1257.button(762, 187310867, 272, 1) +[2619237.371] {Default Queue} wl_pointer#1289.button(762, 187310867, 272, 1) +[2619237.375] {Default Queue} wl_pointer#1321.button(762, 187310867, 272, 1) +[2619237.379] {Default Queue} wl_pointer#1353.button(762, 187310867, 272, 1) +[2619237.383] {Default Queue} wl_pointer#1385.button(762, 187310867, 272, 1) +[2619237.387] {Default Queue} wl_pointer#1417.button(762, 187310867, 272, 1) +[2619237.390] {Default Queue} wl_pointer#1449.button(762, 187310867, 272, 1) +[2619237.394] {Default Queue} wl_pointer#1481.button(762, 187310867, 272, 1) +[2619237.398] {Default Queue} wl_pointer#1513.button(762, 187310867, 272, 1) +[2619237.402] {Default Queue} wl_pointer#1545.button(762, 187310867, 272, 1) +[2619237.406] {Default Queue} wl_pointer#1577.button(762, 187310867, 272, 1) +[2619237.410] {Default Queue} wl_pointer#1609.button(762, 187310867, 272, 1) +[2619237.413] {Default Queue} wl_pointer#1641.button(762, 187310867, 272, 1) +[2619237.417] {Default Queue} wl_pointer#1673.button(762, 187310867, 272, 1) +[2619237.421] {Default Queue} wl_pointer#1705.button(762, 187310867, 272, 1) +[2619237.425] {Default Queue} wl_pointer#1737.button(762, 187310867, 272, 1) +[2619237.429] {Default Queue} wl_pointer#1762.button(762, 187310867, 272, 1) +[2619237.433] {Default Queue} wl_pointer#1801.button(762, 187310867, 272, 1) +[2619237.437] {Default Queue} wl_pointer#1833.button(762, 187310867, 272, 1) +[2619237.440] {Default Queue} wl_pointer#1865.button(762, 187310867, 272, 1) +[2619237.444] {Default Queue} wl_pointer#1897.button(762, 187310867, 272, 1) +[2619237.448] {Default Queue} wl_pointer#1929.button(762, 187310867, 272, 1) +[2619237.452] {Default Queue} wl_pointer#1961.button(762, 187310867, 272, 1) +[2619237.456] {Default Queue} wl_pointer#1993.button(762, 187310867, 272, 1) +[2619237.459] {Default Queue} wl_pointer#2025.button(762, 187310867, 272, 1) +[2619237.463] {Default Queue} wl_pointer#2057.button(762, 187310867, 272, 1) +[2619237.467] {Default Queue} wl_pointer#2089.button(762, 187310867, 272, 1) +[2619237.471] {Default Queue} wl_pointer#2121.button(762, 187310867, 272, 1) +[2619237.475] {Default Queue} wl_pointer#2153.button(762, 187310867, 272, 1) +[2619237.482] {Default Queue} wl_pointer#2185.button(762, 187310867, 272, 1) +[2619237.487] {Default Queue} wl_pointer#2217.button(762, 187310867, 272, 1) +[2619237.491] {Default Queue} wl_pointer#2249.button(762, 187310867, 272, 1) +[2619237.495] {Default Queue} wl_pointer#2281.button(762, 187310867, 272, 1) +[2619237.499] {Default Queue} wl_pointer#2313.button(762, 187310867, 272, 1) +[2619237.502] {Default Queue} wl_pointer#2345.button(762, 187310867, 272, 1) +[2619237.506] {Default Queue} wl_pointer#2377.button(762, 187310867, 272, 1) +[2619237.510] {Default Queue} wl_pointer#2409.button(762, 187310867, 272, 1) +[2619237.514] {Default Queue} wl_pointer#2441.button(762, 187310867, 272, 1) +[2619237.518] {Default Queue} wl_pointer#2473.button(762, 187310867, 272, 1) +[2619237.522] {Default Queue} wl_pointer#2498.button(762, 187310867, 272, 1) +[2619237.526] {Default Queue} wl_pointer#2537.button(762, 187310867, 272, 1) +[2619237.529] {Default Queue} wl_pointer#2569.button(762, 187310867, 272, 1) +[2619237.533] {Default Queue} wl_pointer#2601.button(762, 187310867, 272, 1) +[2619237.537] {Default Queue} wl_pointer#2633.button(762, 187310867, 272, 1) +[2619237.541] {Default Queue} wl_pointer#2665.button(762, 187310867, 272, 1) +[2619237.545] {Default Queue} wl_pointer#2697.button(762, 187310867, 272, 1) +[2619237.549] {Default Queue} wl_pointer#2729.button(762, 187310867, 272, 1) +[2619237.553] {Default Queue} wl_pointer#2761.button(762, 187310867, 272, 1) +[2619237.556] {Default Queue} wl_pointer#2793.button(762, 187310867, 272, 1) +[2619237.560] {Default Queue} wl_pointer#2825.button(762, 187310867, 272, 1) +[2619237.564] {Default Queue} wl_pointer#2857.button(762, 187310867, 272, 1) +[2619237.568] {Default Queue} wl_pointer#2889.button(762, 187310867, 272, 1) +[2619237.572] {Default Queue} wl_pointer#2921.button(762, 187310867, 272, 1) +[2619237.576] {Default Queue} wl_pointer#2953.button(762, 187310867, 272, 1) +[2619237.580] {Default Queue} wl_pointer#2985.button(762, 187310867, 272, 1) +[2619237.584] {Default Queue} wl_pointer#3017.button(762, 187310867, 272, 1) +[2619237.588] {Default Queue} wl_pointer#3049.button(762, 187310867, 272, 1) +[2619237.592] {Default Queue} wl_pointer#3081.button(762, 187310867, 272, 1) +[2619237.596] {Default Queue} wl_pointer#3113.button(762, 187310867, 272, 1) +[2619237.600] {Default Queue} wl_pointer#3145.button(762, 187310867, 272, 1) +[2619237.604] {Default Queue} wl_pointer#3177.button(762, 187310867, 272, 1) +[2619237.607] {Default Queue} wl_pointer#3209.button(762, 187310867, 272, 1) +[2619237.611] {Default Queue} wl_pointer#3241.button(762, 187310867, 272, 1) +[2619237.615] {Default Queue} wl_pointer#3273.button(762, 187310867, 272, 1) +[2619237.619] {Default Queue} wl_pointer#3305.button(762, 187310867, 272, 1) +[2619237.623] {Default Queue} wl_pointer#3337.button(762, 187310867, 272, 1) +[2619237.627] {Default Queue} wl_pointer#3369.button(762, 187310867, 272, 1) +[2619237.631] {Default Queue} wl_pointer#3401.button(762, 187310867, 272, 1) +[2619237.635] {Default Queue} wl_pointer#3433.button(762, 187310867, 272, 1) +[2619237.638] {Default Queue} wl_pointer#3465.button(762, 187310867, 272, 1) +[2619237.642] {Default Queue} wl_pointer#3497.button(762, 187310867, 272, 1) +[2619237.646] {Default Queue} wl_pointer#3529.button(762, 187310867, 272, 1) +[2619237.650] {Default Queue} wl_pointer#3561.button(762, 187310867, 272, 1) +[2619237.654] {Default Queue} wl_pointer#3593.button(762, 187310867, 272, 1) +[2619237.658] {Default Queue} wl_pointer#3625.button(762, 187310867, 272, 1) +[2619237.662] {Default Queue} wl_pointer#3657.button(762, 187310867, 272, 1) +[2619237.666] {Default Queue} wl_pointer#3695.button(762, 187310867, 272, 1) +[2619242.199] {Display Queue} wl_display#1.delete_id(3726) +[2619242.210] {Default Queue} wl_registry#3708.global(1, "wl_compositor", 6) +[2619242.216] {Default Queue} -> wl_registry#3708.bind(1, "wl_compositor", 1, new id [unknown]#3727) +[2619242.221] {Default Queue} wl_registry#3708.global(2, "wl_subcompositor", 1) +[2619242.225] {Default Queue} -> wl_registry#3708.bind(2, "wl_subcompositor", 1, new id [unknown]#3728) +[2619242.234] {Default Queue} wl_registry#3708.global(3, "xdg_wm_base", 6) +[2619242.241] {Default Queue} -> wl_registry#3708.bind(3, "xdg_wm_base", 1, new id [unknown]#3729) +[2619242.246] {Default Queue} wl_registry#3708.global(6, "zwlr_layer_shell_v1", 5) +[2619242.250] {Default Queue} wl_registry#3708.global(7, "ext_session_lock_manager_v1", 1) +[2619242.254] {Default Queue} wl_registry#3708.global(8, "wl_shm", 2) +[2619242.258] {Default Queue} -> wl_registry#3708.bind(8, "wl_shm", 1, new id [unknown]#3739) +[2619242.262] {Default Queue} -> wl_registry#3708.bind(8, "wl_shm", 1, new id [unknown]#3390) +[2619242.266] {Default Queue} -> wl_registry#3708.bind(8, "wl_shm", 1, new id [unknown]#3387) +[2619242.270] {Default Queue} wl_registry#3708.global(9, "zxdg_output_manager_v1", 3) +[2619242.274] {Default Queue} wl_registry#3708.global(10, "wp_fractional_scale_manager_v1", 1) +[2619242.278] {Default Queue} wl_registry#3708.global(11, "zwp_tablet_manager_v2", 1) +[2619242.282] {Default Queue} wl_registry#3708.global(12, "zwp_pointer_gestures_v1", 3) +[2619242.286] {Default Queue} wl_registry#3708.global(13, "zwp_relative_pointer_manager_v1", 1) +[2619242.290] {Default Queue} -> wl_registry#3708.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3738) +[2619242.294] {Default Queue} wl_registry#3708.global(14, "zwp_pointer_constraints_v1", 1) +[2619242.299] {Default Queue} -> wl_registry#3708.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3389) +[2619242.303] {Default Queue} wl_registry#3708.global(15, "ext_idle_notifier_v1", 2) +[2619242.307] {Default Queue} wl_registry#3708.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2619242.311] {Default Queue} wl_registry#3708.global(17, "wl_data_device_manager", 3) +[2619242.315] {Default Queue} -> wl_registry#3708.bind(17, "wl_data_device_manager", 2, new id [unknown]#3388) +[2619242.320] {Default Queue} -> wl_data_device_manager#3388.create_data_source(new id wl_data_source#3762) +[2619242.324] {Default Queue} -> wl_data_source#3762.offer("text/plain") +[2619242.328] {Default Queue} -> wl_data_source#3762.offer("text/plain;charset=utf-8") +[2619242.332] {Default Queue} -> wl_data_source#3762.offer("TEXT") +[2619242.336] {Default Queue} -> wl_data_source#3762.offer("STRING") +[2619242.339] {Default Queue} -> wl_data_source#3762.offer("UTF8_STRING") +[2619242.343] {Default Queue} wl_registry#3708.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2619242.348] {Default Queue} -> wl_registry#3708.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3763) +[2619242.355] {Default Queue} -> zwp_primary_selection_device_manager_v1#3763.create_source(new id zwp_primary_selection_source_v1#3764) +[2619242.362] {Default Queue} -> zwp_primary_selection_source_v1#3764.offer("text/plain") +[2619242.366] {Default Queue} -> zwp_primary_selection_source_v1#3764.offer("text/plain;charset=utf-8") +[2619242.370] {Default Queue} -> zwp_primary_selection_source_v1#3764.offer("TEXT") +[2619242.374] {Default Queue} -> zwp_primary_selection_source_v1#3764.offer("STRING") +[2619242.377] {Default Queue} -> zwp_primary_selection_source_v1#3764.offer("UTF8_STRING") +[2619242.381] {Default Queue} wl_registry#3708.global(19, "zwlr_data_control_manager_v1", 2) +[2619242.385] {Default Queue} wl_registry#3708.global(20, "ext_data_control_manager_v1", 1) +[2619242.389] {Default Queue} wl_registry#3708.global(21, "wp_presentation", 2) +[2619242.393] {Default Queue} wl_registry#3708.global(22, "wp_security_context_manager_v1", 1) +[2619242.397] {Default Queue} wl_registry#3708.global(23, "zwp_text_input_manager_v3", 1) +[2619242.401] {Default Queue} wl_registry#3708.global(24, "zwp_input_method_manager_v2", 1) +[2619242.405] {Default Queue} wl_registry#3708.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2619242.409] {Default Queue} wl_registry#3708.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2619242.413] {Default Queue} wl_registry#3708.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2619242.417] {Default Queue} wl_registry#3708.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2619242.424] {Default Queue} wl_registry#3708.global(29, "ext_workspace_manager_v1", 1) +[2619242.429] {Default Queue} wl_registry#3708.global(30, "zwlr_output_manager_v1", 4) +[2619242.433] {Default Queue} wl_registry#3708.global(31, "zwlr_screencopy_manager_v1", 3) +[2619242.437] {Default Queue} wl_registry#3708.global(32, "wp_viewporter", 1) +[2619242.441] {Default Queue} wl_registry#3708.global(33, "zxdg_exporter_v2", 1) +[2619242.445] {Default Queue} wl_registry#3708.global(34, "zxdg_importer_v2", 1) +[2619242.449] {Default Queue} wl_registry#3708.global(36, "xdg_activation_v1", 1) +[2619242.452] {Default Queue} wl_registry#3708.global(37, "mutter_x11_interop", 1) +[2619242.456] {Default Queue} wl_registry#3708.global(38, "wl_seat", 9) +[2619242.460] {Default Queue} -> wl_registry#3708.bind(38, "wl_seat", 1, new id [unknown]#3765) +[2619242.465] {Default Queue} wl_registry#3708.global(39, "wp_cursor_shape_manager_v1", 2) +[2619242.468] {Default Queue} wl_registry#3708.global(40, "wl_output", 4) +[2619242.472] {Default Queue} -> wl_registry#3708.bind(40, "wl_output", 1, new id [unknown]#3740) +[2619242.477] {Default Queue} wl_callback#3726.done(0) +[2619242.481] {Default Queue} -> wl_compositor#44.create_surface(new id wl_surface#3726) +[2619242.485] {Default Queue} -> wl_subcompositor#3728.get_subsurface(new id wl_subsurface#3741, wl_surface#3726, wl_surface#43) +[2619242.492] {Default Queue} -> wl_subsurface#3741.set_desync() +[2619242.497] {Default Queue} -> wl_subsurface#3741.set_position(0, 29) +[2619242.501] {Default Queue} -> wl_subsurface#3741.place_above(wl_surface#43) +[2619242.544] {Default Queue} -> wl_shm#3739.create_pool(new id wl_shm_pool#3751, fd 581, 16) +[2619242.550] {Default Queue} -> wl_shm#3739.create_pool(new id wl_shm_pool#3750, fd 582, 16) +[2619242.555] {Default Queue} -> wl_shm_pool#3751.create_buffer(new id wl_buffer#3753, 0, 2, 2, 8, 0) +[2619242.559] {Default Queue} -> wl_shm_pool#3750.create_buffer(new id wl_buffer#3752, 0, 2, 2, 8, 0) +[2619242.567] {Default Queue} -> wl_surface#3726.attach(wl_buffer#3753, 0, 0) +[2619242.571] {Default Queue} -> wl_surface#3726.commit() +[2619242.576] {Default Queue} -> wl_surface#3726.attach(wl_buffer#3753, 0, 0) +[2619242.580] {Default Queue} -> wl_surface#3726.commit() +[2619242.584] {Default Queue} -> wl_compositor#3727.create_region(new id wl_region#3747) +[2619242.588] {Default Queue} -> wl_compositor#3727.create_region(new id wl_region#3746) +[2619242.592] {Default Queue} -> wl_region#3747.subtract(0, 0, 2, 31) +[2619242.596] {Default Queue} -> wl_region#3747.add(0, 0, 0, 0) +[2619242.600] {Default Queue} -> wl_surface#3726.set_opaque_region(wl_region#3746) +[2619242.604] {Default Queue} -> wl_surface#3726.set_input_region(wl_region#3747) +[2619242.608] {Default Queue} -> wl_surface#3726.damage(0, 0, 2, 2) +[2619242.612] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) +[2619242.619] {Default Queue} -> wl_surface#3726.attach(wl_buffer#3753, 0, 0) +[2619242.623] {Default Queue} -> wl_surface#3726.commit() +[2619242.653] {Default Queue} -> wl_shm#3387.create_pool(new id wl_shm_pool#3749, fd 585, 640) +[2619242.659] {Default Queue} -> wl_shm#3387.create_pool(new id wl_shm_pool#3748, fd 586, 640) +[2619242.663] {Default Queue} -> wl_shm_pool#3749.create_buffer(new id wl_buffer#3723, 0, 10, 16, 40, 0) +[2619242.667] {Default Queue} -> wl_shm_pool#3748.create_buffer(new id wl_buffer#3730, 0, 10, 16, 40, 0) +[2619242.675] {Default Queue} -> wl_compositor#3727.create_surface(new id wl_surface#3731) +[2619242.679] {Default Queue} -> wl_surface#3731.attach(wl_buffer#3723, 0, 0) +[2619242.683] {Default Queue} -> wl_surface#3731.commit() +[2619242.689] {Default Queue} -> wl_surface#3731.attach(wl_buffer#3723, 0, 0) +[2619242.694] {Default Queue} -> wl_surface#3731.commit() +[2619242.779] {Default Queue} -> wl_buffer#3753.destroy() +[2619242.785] {Default Queue} -> wl_buffer#3752.destroy() +[2619242.789] {Default Queue} -> wl_shm_pool#3751.destroy() +[2619242.793] {Default Queue} -> wl_shm_pool#3750.destroy() +[2619242.804] {Default Queue} -> wl_subsurface#3741.destroy() +[2619242.819] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3732) +[2619242.824] {Default Queue} -> wl_display#1.sync(new id wl_callback#3733) +[2619247.192] {Display Queue} wl_display#1.delete_id(3753) +[2619247.203] {Display Queue} wl_display#1.delete_id(3752) +[2619247.207] {Display Queue} wl_display#1.delete_id(3751) +[2619247.211] {Display Queue} wl_display#1.delete_id(3750) +[2619247.215] {Display Queue} wl_display#1.delete_id(3741) +[2619247.219] {Default Queue} discarded wl_shm#3739.format(875709016) +[2619247.223] {Default Queue} discarded wl_shm#3739.format(1) +[2619247.226] {Default Queue} discarded wl_shm#3739.format(0) +[2619247.230] {Default Queue} discarded wl_shm#3739.format(875708993) +[2619247.234] {Default Queue} discarded wl_shm#3390.format(875709016) +[2619247.238] {Default Queue} discarded wl_shm#3390.format(1) +[2619247.241] {Default Queue} discarded wl_shm#3390.format(0) +[2619247.245] {Default Queue} discarded wl_shm#3390.format(875708993) +[2619247.249] {Default Queue} discarded wl_shm#3387.format(875709016) +[2619247.252] {Default Queue} discarded wl_shm#3387.format(1) +[2619247.256] {Default Queue} discarded wl_shm#3387.format(0) +[2619247.259] {Default Queue} discarded wl_shm#3387.format(875708993) +[2619247.263] {Default Queue} wl_seat#3765.capabilities(7) +[2619247.267] {Default Queue} -> wl_seat#3765.get_keyboard(new id wl_keyboard#3741) +[2619247.271] {Default Queue} -> wl_seat#3765.get_pointer(new id wl_pointer#3750) +[2619247.275] {Default Queue} -> wl_data_device_manager#3388.get_data_device(new id wl_data_device#3751, wl_seat#3765) +[2619247.280] {Default Queue} -> zwp_primary_selection_device_manager_v1#3763.get_device(new id zwp_primary_selection_device_v1#3752, wl_seat#3765) +[2619247.288] {Default Queue} wl_output#3740.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) +[2619247.293] {Default Queue} wl_output#3740.mode(3, 1280, 800, 60000) +[2619247.297] {Default Queue} discarded wl_surface#2727.enter(wl_output#3740) +[2619247.301] {Default Queue} discarded wl_surface#3.enter(wl_output#3740) +[2619247.304] {Default Queue} discarded wl_surface#999.enter(wl_output#3740) +[2619247.308] {Default Queue} discarded wl_surface#3079.enter(wl_output#3740) +[2619247.312] {Default Queue} discarded wl_surface#1191.enter(wl_output#3740) +[2619247.315] {Default Queue} discarded wl_surface#1159.enter(wl_output#3740) +[2619247.319] {Default Queue} discarded wl_surface#1703.enter(wl_output#3740) +[2619247.322] {Default Queue} discarded wl_surface#2215.enter(wl_output#3740) +[2619247.326] {Default Queue} discarded wl_surface#423.enter(wl_output#3740) +[2619247.329] {Default Queue} discarded wl_surface#1447.enter(wl_output#3740) +[2619247.333] {Default Queue} discarded wl_surface#3527.enter(wl_output#3740) +[2619247.336] {Default Queue} discarded wl_surface#3047.enter(wl_output#3740) +[2619247.340] {Default Queue} discarded wl_surface#2023.enter(wl_output#3740) +[2619247.343] {Default Queue} discarded wl_surface#1639.enter(wl_output#3740) +[2619247.347] {Default Queue} discarded wl_surface#1319.enter(wl_output#3740) +[2619247.350] {Default Queue} discarded wl_surface#1127.enter(wl_output#3740) +[2619247.354] {Default Queue} discarded wl_surface#2151.enter(wl_output#3740) +[2619247.357] {Default Queue} discarded wl_surface#2375.enter(wl_output#3740) +[2619247.361] {Default Queue} discarded wl_surface#2695.enter(wl_output#3740) +[2619247.364] {Default Queue} discarded wl_surface#2919.enter(wl_output#3740) +[2619247.368] {Default Queue} discarded wl_surface#1063.enter(wl_output#3740) +[2619247.372] {Default Queue} discarded wl_surface#455.enter(wl_output#3740) +[2619247.375] {Default Queue} discarded wl_surface#1575.enter(wl_output#3740) +[2619247.379] {Default Queue} discarded wl_surface#1799.enter(wl_output#3740) +[2619247.382] {Default Queue} discarded wl_surface#1415.enter(wl_output#3740) +[2619247.386] {Default Queue} discarded wl_surface#2439.enter(wl_output#3740) +[2619247.389] {Default Queue} discarded wl_surface#2279.enter(wl_output#3740) +[2619247.393] {Default Queue} discarded wl_surface#3591.enter(wl_output#3740) +[2619247.404] {Default Queue} discarded wl_surface#1831.enter(wl_output#3740) +[2619247.410] {Default Queue} discarded wl_surface#903.enter(wl_output#3740) +[2619247.413] {Default Queue} discarded wl_surface#2663.enter(wl_output#3740) +[2619247.417] {Default Queue} discarded wl_surface#775.enter(wl_output#3740) +[2619247.421] {Default Queue} discarded wl_surface#1991.enter(wl_output#3740) +[2619247.424] {Default Queue} discarded wl_surface#1543.enter(wl_output#3740) +[2619247.428] {Default Queue} discarded wl_surface#135.enter(wl_output#3740) +[2619247.431] {Default Queue} discarded wl_surface#3623.enter(wl_output#3740) +[2619247.435] {Default Queue} discarded wl_surface#1287.enter(wl_output#3740) +[2619247.438] {Default Queue} discarded wl_surface#3399.enter(wl_output#3740) +[2619247.442] {Default Queue} discarded wl_surface#1031.enter(wl_output#3740) +[2619247.445] {Default Queue} discarded wl_surface#615.enter(wl_output#3740) +[2619247.449] {Default Queue} discarded wl_surface#3111.enter(wl_output#3740) +[2619247.452] {Default Queue} discarded wl_surface#231.enter(wl_output#3740) +[2619247.456] {Default Queue} discarded wl_surface#2343.enter(wl_output#3740) +[2619247.459] {Default Queue} discarded wl_surface#3655.enter(wl_output#3740) +[2619247.463] {Default Queue} discarded wl_surface#1863.enter(wl_output#3740) +[2619247.466] {Default Queue} discarded wl_surface#359.enter(wl_output#3740) +[2619247.470] {Default Queue} discarded wl_surface#2983.enter(wl_output#3740) +[2619247.473] {Default Queue} discarded wl_surface#583.enter(wl_output#3740) +[2619247.477] {Default Queue} discarded wl_surface#743.enter(wl_output#3740) +[2619247.480] {Default Queue} discarded wl_surface#3143.enter(wl_output#3740) +[2619247.484] {Default Queue} discarded wl_surface#2535.enter(wl_output#3740) +[2619247.487] {Default Queue} discarded wl_surface#3367.enter(wl_output#3740) +[2619247.491] {Default Queue} discarded wl_surface#967.enter(wl_output#3740) +[2619247.494] {Default Queue} discarded wl_surface#103.enter(wl_output#3740) +[2619247.498] {Default Queue} discarded wl_surface#3271.enter(wl_output#3740) +[2619247.501] {Default Queue} discarded wl_surface#327.enter(wl_output#3740) +[2619247.505] {Default Queue} discarded wl_surface#43.enter(wl_output#3740) +[2619247.508] {Default Queue} discarded wl_surface#2247.enter(wl_output#3740) +[2619247.512] {Default Queue} discarded wl_surface#807.enter(wl_output#3740) +[2619247.515] {Default Queue} discarded wl_surface#19.enter(wl_output#3740) +[2619247.519] {Default Queue} discarded wl_surface#2951.enter(wl_output#3740) +[2619247.522] {Default Queue} discarded wl_surface#101.enter(wl_output#3740) +[2619247.526] {Default Queue} discarded wl_surface#1511.enter(wl_output#3740) +[2619247.529] {Default Queue} discarded wl_surface#199.enter(wl_output#3740) +[2619247.533] {Default Queue} discarded wl_surface#3463.enter(wl_output#3740) +[2619247.536] {Default Queue} discarded wl_surface#3559.enter(wl_output#3740) +[2619247.540] {Default Queue} discarded wl_surface#3495.enter(wl_output#3740) +[2619247.543] {Default Queue} discarded wl_surface#391.enter(wl_output#3740) +[2619247.547] {Default Queue} discarded wl_surface#935.enter(wl_output#3740) +[2619247.550] {Default Queue} discarded wl_surface#2823.enter(wl_output#3740) +[2619247.554] {Default Queue} discarded wl_surface#3015.enter(wl_output#3740) +[2619247.557] {Default Queue} discarded wl_surface#1671.enter(wl_output#3740) +[2619247.561] {Default Queue} discarded wl_surface#1351.enter(wl_output#3740) +[2619247.564] {Default Queue} discarded wl_surface#711.enter(wl_output#3740) +[2619247.568] {Default Queue} discarded wl_surface#3175.enter(wl_output#3740) +[2619247.571] {Default Queue} discarded wl_surface#3431.enter(wl_output#3740) +[2619247.575] {Default Queue} discarded wl_surface#1223.enter(wl_output#3740) +[2619247.578] {Default Queue} discarded wl_surface#1927.enter(wl_output#3740) +[2619247.582] {Default Queue} discarded wl_surface#871.enter(wl_output#3740) +[2619247.585] {Default Queue} discarded wl_surface#1895.enter(wl_output#3740) +[2619247.589] {Default Queue} discarded wl_surface#263.enter(wl_output#3740) +[2619247.595] {Default Queue} discarded wl_surface#551.enter(wl_output#3740) +[2619247.600] {Default Queue} discarded wl_surface#1735.enter(wl_output#3740) +[2619247.604] {Default Queue} discarded wl_surface#1479.enter(wl_output#3740) +[2619247.607] {Default Queue} discarded wl_surface#1772.enter(wl_output#3740) +[2619247.611] {Default Queue} discarded wl_surface#2599.enter(wl_output#3740) +[2619247.614] {Default Queue} discarded wl_surface#2631.enter(wl_output#3740) +[2619247.618] {Default Queue} discarded wl_surface#1959.enter(wl_output#3740) +[2619247.621] {Default Queue} discarded wl_surface#647.enter(wl_output#3740) +[2619247.625] {Default Queue} discarded wl_surface#2055.enter(wl_output#3740) +[2619247.628] {Default Queue} discarded wl_surface#2508.enter(wl_output#3740) +[2619247.632] {Default Queue} discarded wl_surface#71.enter(wl_output#3740) +[2619247.635] {Default Queue} discarded wl_surface#2759.enter(wl_output#3740) +[2619247.639] {Default Queue} discarded wl_surface#2791.enter(wl_output#3740) +[2619247.642] {Default Queue} discarded wl_surface#2887.enter(wl_output#3740) +[2619247.646] {Default Queue} discarded wl_surface#2183.enter(wl_output#3740) +[2619247.649] {Default Queue} discarded wl_surface#2567.enter(wl_output#3740) +[2619247.653] {Default Queue} discarded wl_surface#69.enter(wl_output#3740) +[2619247.656] {Default Queue} discarded wl_surface#839.enter(wl_output#3740) +[2619247.660] {Default Queue} discarded wl_surface#1607.enter(wl_output#3740) +[2619247.663] {Default Queue} discarded wl_surface#1095.enter(wl_output#3740) +[2619247.667] {Default Queue} discarded wl_surface#1383.enter(wl_output#3740) +[2619247.670] {Default Queue} discarded wl_surface#487.enter(wl_output#3740) +[2619247.674] {Default Queue} discarded wl_surface#2311.enter(wl_output#3740) +[2619247.677] {Default Queue} discarded wl_surface#519.enter(wl_output#3740) +[2619247.681] {Default Queue} discarded wl_surface#3335.enter(wl_output#3740) +[2619247.684] {Default Queue} discarded wl_surface#3239.enter(wl_output#3740) +[2619247.688] {Default Queue} discarded wl_surface#2087.enter(wl_output#3740) +[2619247.691] {Default Queue} discarded wl_surface#2471.enter(wl_output#3740) +[2619247.695] {Default Queue} discarded wl_surface#295.enter(wl_output#3740) +[2619247.698] {Default Queue} discarded wl_surface#167.enter(wl_output#3740) +[2619247.702] {Default Queue} discarded wl_surface#1255.enter(wl_output#3740) +[2619247.705] {Default Queue} discarded wl_surface#2855.enter(wl_output#3740) +[2619247.709] {Default Queue} discarded wl_surface#3303.enter(wl_output#3740) +[2619247.712] {Default Queue} discarded wl_surface#679.enter(wl_output#3740) +[2619247.716] {Default Queue} discarded wl_surface#2407.enter(wl_output#3740) +[2619247.720] {Default Queue} discarded wl_surface#3207.enter(wl_output#3740) +[2619247.723] {Default Queue} discarded wl_surface#2119.enter(wl_output#3740) +[2619247.736] {Display Queue} wl_display#1.delete_id(3733) +[2619247.740] {Default Queue} wl_registry#3732.global(1, "wl_compositor", 6) +[2619247.745] {Default Queue} -> wl_registry#3732.bind(1, "wl_compositor", 1, new id [unknown]#3753) +[2619247.749] {Default Queue} wl_registry#3732.global(2, "wl_subcompositor", 1) +[2619247.753] {Default Queue} wl_registry#3732.global(3, "xdg_wm_base", 6) +[2619247.758] {Default Queue} -> wl_registry#3732.bind(3, "xdg_wm_base", 1, new id [unknown]#3743) +[2619247.762] {Default Queue} wl_registry#3732.global(6, "zwlr_layer_shell_v1", 5) +[2619247.766] {Default Queue} wl_registry#3732.global(7, "ext_session_lock_manager_v1", 1) +[2619247.770] {Default Queue} wl_registry#3732.global(8, "wl_shm", 2) +[2619247.774] {Default Queue} -> wl_registry#3732.bind(8, "wl_shm", 1, new id [unknown]#3742) +[2619247.778] {Default Queue} -> wl_registry#3732.bind(8, "wl_shm", 1, new id [unknown]#3745) +[2619247.782] {Default Queue} -> wl_registry#3732.bind(8, "wl_shm", 1, new id [unknown]#3744) +[2619247.786] {Default Queue} wl_registry#3732.global(9, "zxdg_output_manager_v1", 3) +[2619247.790] {Default Queue} wl_registry#3732.global(10, "wp_fractional_scale_manager_v1", 1) +[2619247.796] {Default Queue} wl_registry#3732.global(11, "zwp_tablet_manager_v2", 1) +[2619247.801] {Default Queue} wl_registry#3732.global(12, "zwp_pointer_gestures_v1", 3) +[2619247.805] {Default Queue} wl_registry#3732.global(13, "zwp_relative_pointer_manager_v1", 1) +[2619247.810] {Default Queue} -> wl_registry#3732.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3164) +[2619247.814] {Default Queue} wl_registry#3732.global(14, "zwp_pointer_constraints_v1", 1) +[2619247.818] {Default Queue} -> wl_registry#3732.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3163) +[2619247.822] {Default Queue} wl_registry#3732.global(15, "ext_idle_notifier_v1", 2) +[2619247.826] {Default Queue} wl_registry#3732.global(16, "zwp_idle_inhibit_manager_v1", 1) +[2619247.830] {Default Queue} wl_registry#3732.global(17, "wl_data_device_manager", 3) +[2619247.834] {Default Queue} -> wl_registry#3732.bind(17, "wl_data_device_manager", 2, new id [unknown]#3166) +[2619247.838] {Default Queue} -> wl_data_device_manager#3166.create_data_source(new id wl_data_source#3165) +[2619247.842] {Default Queue} -> wl_data_source#3165.offer("text/plain") +[2619247.846] {Default Queue} -> wl_data_source#3165.offer("text/plain;charset=utf-8") +[2619247.849] {Default Queue} -> wl_data_source#3165.offer("TEXT") +[2619247.853] {Default Queue} -> wl_data_source#3165.offer("STRING") +[2619247.857] {Default Queue} -> wl_data_source#3165.offer("UTF8_STRING") +[2619247.867] {Default Queue} -> wl_data_device_manager#3166.get_data_device(new id wl_data_device#283, wl_seat#3765) +[2619247.872] {Default Queue} wl_registry#3732.global(18, "zwp_primary_selection_device_manager_v1", 1) +[2619247.877] {Default Queue} -> wl_registry#3732.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#286) +[2619247.881] {Default Queue} -> zwp_primary_selection_device_manager_v1#286.create_source(new id zwp_primary_selection_source_v1#285) +[2619247.888] {Default Queue} -> zwp_primary_selection_source_v1#285.offer("text/plain") +[2619247.892] {Default Queue} -> zwp_primary_selection_source_v1#285.offer("text/plain;charset=utf-8") +[2619247.895] {Default Queue} -> zwp_primary_selection_source_v1#285.offer("TEXT") +[2619247.899] {Default Queue} -> zwp_primary_selection_source_v1#285.offer("STRING") +[2619247.903] {Default Queue} -> zwp_primary_selection_source_v1#285.offer("UTF8_STRING") +[2619247.907] {Default Queue} -> zwp_primary_selection_device_manager_v1#286.get_device(new id zwp_primary_selection_device_v1#3004, wl_seat#3765) +[2619247.913] {Default Queue} wl_registry#3732.global(19, "zwlr_data_control_manager_v1", 2) +[2619247.917] {Default Queue} wl_registry#3732.global(20, "ext_data_control_manager_v1", 1) +[2619247.922] {Default Queue} wl_registry#3732.global(21, "wp_presentation", 2) +[2619247.926] {Default Queue} wl_registry#3732.global(22, "wp_security_context_manager_v1", 1) +[2619247.929] {Default Queue} wl_registry#3732.global(23, "zwp_text_input_manager_v3", 1) +[2619247.933] {Default Queue} wl_registry#3732.global(24, "zwp_input_method_manager_v2", 1) +[2619247.937] {Default Queue} wl_registry#3732.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) +[2619247.941] {Default Queue} wl_registry#3732.global(26, "zwp_virtual_keyboard_manager_v1", 1) +[2619247.945] {Default Queue} wl_registry#3732.global(27, "zwlr_virtual_pointer_manager_v1", 2) +[2619247.949] {Default Queue} wl_registry#3732.global(28, "zwlr_foreign_toplevel_manager_v1", 3) +[2619247.953] {Default Queue} wl_registry#3732.global(29, "ext_workspace_manager_v1", 1) +[2619247.957] {Default Queue} wl_registry#3732.global(30, "zwlr_output_manager_v1", 4) +[2619247.961] {Default Queue} wl_registry#3732.global(31, "zwlr_screencopy_manager_v1", 3) +[2619247.965] {Default Queue} wl_registry#3732.global(32, "wp_viewporter", 1) +[2619247.969] {Default Queue} wl_registry#3732.global(33, "zxdg_exporter_v2", 1) +[2619247.972] {Default Queue} wl_registry#3732.global(34, "zxdg_importer_v2", 1) +[2619247.976] {Default Queue} wl_registry#3732.global(36, "xdg_activation_v1", 1) +[2619247.983] {Default Queue} wl_registry#3732.global(37, "mutter_x11_interop", 1) +[2619247.988] {Default Queue} wl_registry#3732.global(38, "wl_seat", 9) +[2619247.992] {Default Queue} -> wl_registry#3732.bind(38, "wl_seat", 1, new id [unknown]#3003) +[2619247.996] {Default Queue} wl_registry#3732.global(39, "wp_cursor_shape_manager_v1", 2) +[2619248.000] {Default Queue} wl_registry#3732.global(40, "wl_output", 4) +[2619248.005] {Default Queue} -> wl_registry#3732.bind(40, "wl_output", 1, new id [unknown]#3006) +[2619248.009] {Default Queue} wl_callback#3733.done(0) +[2619248.013] {Default Queue} -> xdg_wm_base#3743.create_positioner(new id xdg_positioner#3733) +[2619248.017] {Default Queue} -> xdg_positioner#3733.set_size(2, 2) +[2619248.021] {Default Queue} -> xdg_positioner#3733.set_anchor_rect(3, 41, 2, 2) +[2619248.025] {Default Queue} -> wl_compositor#3753.create_surface(new id wl_surface#3005) +[2619248.029] {Default Queue} -> xdg_wm_base#3743.get_xdg_surface(new id xdg_surface#2780, wl_surface#3005) +[2619248.033] {Default Queue} -> xdg_surface#2780.get_popup(new id xdg_popup#2683, xdg_surface#21, xdg_positioner#3733) +[2619248.038] {Default Queue} -> wl_surface#3005.commit() +[2619248.049] {Default Queue} wl_keyboard#3741.keymap(1, fd 575, 68213) +[2619248.054] {Default Queue} wl_keyboard#3741.enter(566, wl_surface#19, array[0]) +[2619248.058] {Default Queue} wl_keyboard#3741.modifiers(566, 0, 0, 16, 0) +⚠️ warning: Error detected on fd 0 +error detected on stdin From b025f46507ec388ea7554226a564e2ff638441aa Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Mon, 4 May 2026 15:16:38 -0500 Subject: [PATCH 656/836] Accidentally committed test file --- test | 73827 --------------------------------------------------------- 1 file changed, 73827 deletions(-) delete mode 100644 test diff --git a/test b/test deleted file mode 100644 index a98c5be7a..000000000 --- a/test +++ /dev/null @@ -1,73827 +0,0 @@ - -⚠️ warning: /home/gavin/Sources/pwndbg/gdbinit.py: No such file or directory -❌️ /home/gavin/.gdbinit:4: Error in sourced command file: -No symbol table is loaded. Use the "file" command. -[2617572.987] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2) -[2617573.006] {Default Queue} -> wl_display#1.sync(new id wl_callback#3) -[2617573.166] {Display Queue} wl_display#1.delete_id(3) -[2617573.173] {Default Queue} wl_registry#2.global(1, "wl_compositor", 6) -[2617573.180] {Default Queue} -> wl_registry#2.bind(1, "wl_compositor", 1, new id [unknown]#4) -[2617573.185] {Default Queue} wl_registry#2.global(2, "wl_subcompositor", 1) -[2617573.190] {Default Queue} -> wl_registry#2.bind(2, "wl_subcompositor", 1, new id [unknown]#5) -[2617573.194] {Default Queue} wl_registry#2.global(3, "xdg_wm_base", 6) -[2617573.199] {Default Queue} -> wl_registry#2.bind(3, "xdg_wm_base", 1, new id [unknown]#6) -[2617573.203] {Default Queue} wl_registry#2.global(6, "zwlr_layer_shell_v1", 5) -[2617573.208] {Default Queue} wl_registry#2.global(7, "ext_session_lock_manager_v1", 1) -[2617573.212] {Default Queue} wl_registry#2.global(8, "wl_shm", 2) -[2617573.217] {Default Queue} -> wl_registry#2.bind(8, "wl_shm", 1, new id [unknown]#7) -[2617573.221] {Default Queue} -> wl_registry#2.bind(8, "wl_shm", 1, new id [unknown]#8) -[2617573.225] {Default Queue} -> wl_registry#2.bind(8, "wl_shm", 1, new id [unknown]#9) -[2617573.229] {Default Queue} wl_registry#2.global(9, "zxdg_output_manager_v1", 3) -[2617573.233] {Default Queue} wl_registry#2.global(10, "wp_fractional_scale_manager_v1", 1) -[2617573.238] {Default Queue} wl_registry#2.global(11, "zwp_tablet_manager_v2", 1) -[2617573.242] {Default Queue} wl_registry#2.global(12, "zwp_pointer_gestures_v1", 3) -[2617573.246] {Default Queue} wl_registry#2.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617573.251] {Default Queue} -> wl_registry#2.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#10) -[2617573.255] {Default Queue} wl_registry#2.global(14, "zwp_pointer_constraints_v1", 1) -[2617573.260] {Default Queue} -> wl_registry#2.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#11) -[2617573.264] {Default Queue} wl_registry#2.global(15, "ext_idle_notifier_v1", 2) -[2617573.268] {Default Queue} wl_registry#2.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617573.273] {Default Queue} wl_registry#2.global(17, "wl_data_device_manager", 3) -[2617573.277] {Default Queue} -> wl_registry#2.bind(17, "wl_data_device_manager", 2, new id [unknown]#12) -[2617573.282] {Default Queue} -> wl_data_device_manager#12.create_data_source(new id wl_data_source#13) -[2617573.292] {Default Queue} -> wl_data_source#13.offer("text/plain") -[2617573.305] {Default Queue} -> wl_data_source#13.offer("text/plain;charset=utf-8") -[2617573.309] {Default Queue} -> wl_data_source#13.offer("TEXT") -[2617573.313] {Default Queue} -> wl_data_source#13.offer("STRING") -[2617573.317] {Default Queue} -> wl_data_source#13.offer("UTF8_STRING") -[2617573.321] {Default Queue} wl_registry#2.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617573.326] {Default Queue} -> wl_registry#2.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#14) -[2617573.330] {Default Queue} -> zwp_primary_selection_device_manager_v1#14.create_source(new id zwp_primary_selection_source_v1#15) -[2617573.338] {Default Queue} -> zwp_primary_selection_source_v1#15.offer("text/plain") -[2617573.342] {Default Queue} -> zwp_primary_selection_source_v1#15.offer("text/plain;charset=utf-8") -[2617573.346] {Default Queue} -> zwp_primary_selection_source_v1#15.offer("TEXT") -[2617573.350] {Default Queue} -> zwp_primary_selection_source_v1#15.offer("STRING") -[2617573.354] {Default Queue} -> zwp_primary_selection_source_v1#15.offer("UTF8_STRING") -[2617573.358] {Default Queue} wl_registry#2.global(19, "zwlr_data_control_manager_v1", 2) -[2617573.362] {Default Queue} wl_registry#2.global(20, "ext_data_control_manager_v1", 1) -[2617573.366] {Default Queue} wl_registry#2.global(21, "wp_presentation", 2) -[2617573.370] {Default Queue} wl_registry#2.global(22, "wp_security_context_manager_v1", 1) -[2617573.381] {Default Queue} wl_registry#2.global(23, "zwp_text_input_manager_v3", 1) -[2617573.390] {Default Queue} wl_registry#2.global(24, "zwp_input_method_manager_v2", 1) -[2617573.394] {Default Queue} wl_registry#2.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617573.398] {Default Queue} wl_registry#2.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617573.403] {Default Queue} wl_registry#2.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617573.407] {Default Queue} wl_registry#2.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617573.411] {Default Queue} wl_registry#2.global(29, "ext_workspace_manager_v1", 1) -[2617573.415] {Default Queue} wl_registry#2.global(30, "zwlr_output_manager_v1", 4) -[2617573.420] {Default Queue} wl_registry#2.global(31, "zwlr_screencopy_manager_v1", 3) -[2617573.424] {Default Queue} wl_registry#2.global(32, "wp_viewporter", 1) -[2617573.428] {Default Queue} -> wl_registry#2.bind(32, "wp_viewporter", 1, new id [unknown]#16) -[2617573.433] {Default Queue} wl_registry#2.global(33, "zxdg_exporter_v2", 1) -[2617573.437] {Default Queue} wl_registry#2.global(34, "zxdg_importer_v2", 1) -[2617573.442] {Default Queue} wl_registry#2.global(36, "xdg_activation_v1", 1) -[2617573.446] {Default Queue} wl_registry#2.global(37, "mutter_x11_interop", 1) -[2617573.452] {Default Queue} wl_registry#2.global(38, "wl_seat", 9) -[2617573.457] {Default Queue} -> wl_registry#2.bind(38, "wl_seat", 1, new id [unknown]#17) -[2617573.461] {Default Queue} wl_registry#2.global(39, "wp_cursor_shape_manager_v1", 2) -[2617573.466] {Default Queue} wl_registry#2.global(40, "wl_output", 4) -[2617573.470] {Default Queue} -> wl_registry#2.bind(40, "wl_output", 1, new id [unknown]#18) -[2617573.475] {Default Queue} wl_callback#3.done(0) -[2617573.505] {Default Queue} -> wl_compositor#4.create_surface(new id wl_surface#3) -[2617573.510] {Default Queue} -> wl_compositor#4.create_surface(new id wl_surface#19) -[2617573.514] {Default Queue} -> wl_subcompositor#5.get_subsurface(new id wl_subsurface#20, wl_surface#3, wl_surface#19) -[2617573.521] {Default Queue} -> wl_subsurface#20.set_desync() -[2617573.525] {Default Queue} -> xdg_wm_base#6.get_xdg_surface(new id xdg_surface#21, wl_surface#19) -[2617573.530] {Default Queue} -> xdg_surface#21.get_toplevel(new id xdg_toplevel#22) -[2617573.534] {Default Queue} -> xdg_toplevel#22.set_title("Milsko App") -[2617573.538] {Default Queue} -> xdg_toplevel#22.set_app_id("MilskoWaylandApp") -[2617573.543] {Default Queue} -> wl_surface#19.commit() -[2617573.547] {Default Queue} -> wl_surface#3.commit() -[2617573.728] {Default Queue} discarded wl_shm#7.format(875709016) -[2617573.738] {Default Queue} discarded wl_shm#7.format(1) -[2617573.743] {Default Queue} discarded wl_shm#7.format(0) -[2617573.748] {Default Queue} discarded wl_shm#7.format(875708993) -[2617573.752] {Default Queue} discarded wl_shm#8.format(875709016) -[2617573.755] {Default Queue} discarded wl_shm#8.format(1) -[2617573.759] {Default Queue} discarded wl_shm#8.format(0) -[2617573.763] {Default Queue} discarded wl_shm#8.format(875708993) -[2617573.767] {Default Queue} discarded wl_shm#9.format(875709016) -[2617573.771] {Default Queue} discarded wl_shm#9.format(1) -[2617573.775] {Default Queue} discarded wl_shm#9.format(0) -[2617573.779] {Default Queue} discarded wl_shm#9.format(875708993) -[2617573.783] {Default Queue} wl_seat#17.capabilities(7) -[2617573.787] {Default Queue} -> wl_seat#17.get_keyboard(new id wl_keyboard#23) -[2617573.792] {Default Queue} -> wl_seat#17.get_pointer(new id wl_pointer#24) -[2617573.796] {Default Queue} -> wl_data_device_manager#12.get_data_device(new id wl_data_device#25, wl_seat#17) -[2617573.801] {Default Queue} -> zwp_primary_selection_device_manager_v1#14.get_device(new id zwp_primary_selection_device_v1#26, wl_seat#17) -[2617573.809] {Default Queue} wl_output#18.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617573.814] {Default Queue} wl_output#18.mode(3, 1280, 800, 60000) -[2617573.819] {Default Queue} xdg_toplevel#22.configure(616, 738, array[0]) -[2617573.828] {Default Queue} xdg_surface#21.configure(565) -[2617573.836] {Default Queue} -> xdg_surface#21.ack_configure(565) -[2617573.841] {Default Queue} -> wl_subsurface#20.set_position(5, 24) -[2617575.678] {Default Queue} -> wl_shm#7.create_pool(new id wl_shm_pool#27, fd 6, 2560000) -[2617575.692] {Default Queue} -> wl_shm#7.create_pool(new id wl_shm_pool#28, fd 7, 2560000) -[2617575.699] {Default Queue} -> wl_shm_pool#27.create_buffer(new id wl_buffer#29, 0, 800, 800, 3200, 0) -[2617575.707] {Default Queue} -> wl_shm_pool#28.create_buffer(new id wl_buffer#30, 0, 800, 800, 3200, 0) -[2617576.469] {Default Queue} -> wl_surface#3.attach(wl_buffer#29, 0, 0) -[2617576.478] {Default Queue} -> wl_surface#3.commit() -[2617577.358] {Default Queue} -> wl_surface#3.attach(wl_buffer#29, 0, 0) -[2617577.371] {Default Queue} -> wl_surface#3.commit() -[2617579.257] {Default Queue} -> wl_shm#8.create_pool(new id wl_shm_pool#31, fd 10, 2685960) -[2617579.273] {Default Queue} -> wl_shm#8.create_pool(new id wl_shm_pool#32, fd 11, 2685960) -[2617579.279] {Default Queue} -> wl_shm_pool#31.create_buffer(new id wl_buffer#33, 0, 810, 829, 3240, 0) -[2617579.285] {Default Queue} -> wl_shm_pool#32.create_buffer(new id wl_buffer#34, 0, 810, 829, 3240, 0) -[2617579.981] {Default Queue} -> wl_surface#19.attach(wl_buffer#33, 0, 0) -[2617579.988] {Default Queue} -> wl_surface#19.commit() -[2617580.753] {Default Queue} -> wl_surface#19.attach(wl_buffer#33, 0, 0) -[2617580.760] {Default Queue} -> wl_surface#19.commit() -[2617580.764] {Default Queue} -> wl_compositor#4.create_region(new id wl_region#35) -[2617580.769] {Default Queue} -> wl_compositor#4.create_region(new id wl_region#36) -[2617580.773] {Default Queue} -> wl_region#35.subtract(0, 0, 800, 800) -[2617580.778] {Default Queue} -> wl_region#35.add(0, 0, 0, 0) -[2617580.782] {Default Queue} -> wl_surface#19.set_opaque_region(wl_region#36) -[2617580.786] {Default Queue} -> wl_surface#19.set_input_region(wl_region#35) -[2617580.791] {Default Queue} -> wl_surface#3.set_opaque_region(wl_region#36) -[2617580.795] {Default Queue} -> wl_surface#3.set_input_region(wl_region#35) -[2617580.799] {Default Queue} -> wl_surface#3.damage(0, 0, 800, 800) -[2617583.170] {Default Queue} -> wl_surface#19.attach(wl_buffer#33, 0, 0) -[2617583.185] {Default Queue} -> wl_surface#19.commit() -[2617583.246] {Default Queue} -> wl_surface#19.attach(wl_buffer#33, 0, 0) -[2617583.254] {Default Queue} -> wl_surface#19.commit() -[2617583.357] {Default Queue} -> wl_surface#3.attach(wl_buffer#29, 0, 0) -[2617583.364] {Default Queue} -> wl_surface#3.commit() -[2617583.621] {Default Queue} -> wl_shm#9.create_pool(new id wl_shm_pool#37, fd 17, 640) -[2617583.639] {Default Queue} -> wl_shm#9.create_pool(new id wl_shm_pool#38, fd 18, 640) -[2617583.646] {Default Queue} -> wl_shm_pool#37.create_buffer(new id wl_buffer#39, 0, 10, 16, 40, 0) -[2617583.654] {Default Queue} -> wl_shm_pool#38.create_buffer(new id wl_buffer#40, 0, 10, 16, 40, 0) -[2617583.664] {Default Queue} -> wl_compositor#4.create_surface(new id wl_surface#41) -[2617583.668] {Default Queue} -> wl_surface#41.attach(wl_buffer#39, 0, 0) -[2617583.673] {Default Queue} -> wl_surface#41.commit() -[2617583.678] {Default Queue} -> wl_surface#41.attach(wl_buffer#39, 0, 0) -[2617583.682] {Default Queue} -> wl_surface#41.commit() -[2617583.843] {Default Queue} -> xdg_toplevel#22.set_title("Milsko Periodic Table") -[2617586.057] {Default Queue} -> wl_surface#3.damage(0, 0, 800, 800) -[2617586.066] {Default Queue} -> wl_surface#3.damage(0, 0, 800, 800) -[2617586.124] {Default Queue} -> wl_surface#19.attach(wl_buffer#33, 0, 0) -[2617586.132] {Default Queue} -> wl_surface#19.commit() -[2617586.190] {Default Queue} -> wl_surface#19.attach(wl_buffer#33, 0, 0) -[2617586.203] {Default Queue} -> wl_surface#19.commit() -[2617586.280] {Default Queue} -> wl_surface#3.attach(wl_buffer#29, 0, 0) -[2617586.289] {Default Queue} -> wl_surface#3.commit() -[2617586.365] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#42) -[2617586.371] {Default Queue} -> wl_display#1.sync(new id wl_callback#43) -[2617590.524] {Display Queue} wl_display#1.delete_id(43) -[2617590.547] {Default Queue} wl_keyboard#23.keymap(1, fd 6, 68213) -[2617591.750] {Default Queue} discarded wl_surface#3.enter(wl_output#18) -[2617591.762] {Default Queue} discarded wl_surface#19.enter(wl_output#18) -[2617591.768] {Default Queue} wl_registry#42.global(1, "wl_compositor", 6) -[2617591.775] {Default Queue} -> wl_registry#42.bind(1, "wl_compositor", 1, new id [unknown]#44) -[2617591.780] {Default Queue} wl_registry#42.global(2, "wl_subcompositor", 1) -[2617591.785] {Default Queue} -> wl_registry#42.bind(2, "wl_subcompositor", 1, new id [unknown]#45) -[2617591.790] {Default Queue} wl_registry#42.global(3, "xdg_wm_base", 6) -[2617591.794] {Default Queue} -> wl_registry#42.bind(3, "xdg_wm_base", 1, new id [unknown]#46) -[2617591.799] {Default Queue} wl_registry#42.global(6, "zwlr_layer_shell_v1", 5) -[2617591.803] {Default Queue} wl_registry#42.global(7, "ext_session_lock_manager_v1", 1) -[2617591.807] {Default Queue} wl_registry#42.global(8, "wl_shm", 2) -[2617591.812] {Default Queue} -> wl_registry#42.bind(8, "wl_shm", 1, new id [unknown]#47) -[2617591.816] {Default Queue} -> wl_registry#42.bind(8, "wl_shm", 1, new id [unknown]#48) -[2617591.821] {Default Queue} -> wl_registry#42.bind(8, "wl_shm", 1, new id [unknown]#49) -[2617591.825] {Default Queue} wl_registry#42.global(9, "zxdg_output_manager_v1", 3) -[2617591.829] {Default Queue} wl_registry#42.global(10, "wp_fractional_scale_manager_v1", 1) -[2617591.834] {Default Queue} wl_registry#42.global(11, "zwp_tablet_manager_v2", 1) -[2617591.838] {Default Queue} wl_registry#42.global(12, "zwp_pointer_gestures_v1", 3) -[2617591.842] {Default Queue} wl_registry#42.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617591.847] {Default Queue} -> wl_registry#42.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#50) -[2617591.851] {Default Queue} wl_registry#42.global(14, "zwp_pointer_constraints_v1", 1) -[2617591.855] {Default Queue} -> wl_registry#42.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#51) -[2617591.860] {Default Queue} wl_registry#42.global(15, "ext_idle_notifier_v1", 2) -[2617591.870] {Default Queue} wl_registry#42.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617591.875] {Default Queue} wl_registry#42.global(17, "wl_data_device_manager", 3) -[2617591.879] {Default Queue} -> wl_registry#42.bind(17, "wl_data_device_manager", 2, new id [unknown]#52) -[2617591.884] {Default Queue} -> wl_data_device_manager#52.create_data_source(new id wl_data_source#53) -[2617591.888] {Default Queue} -> wl_data_source#53.offer("text/plain") -[2617591.893] {Default Queue} -> wl_data_source#53.offer("text/plain;charset=utf-8") -[2617591.897] {Default Queue} -> wl_data_source#53.offer("TEXT") -[2617591.901] {Default Queue} -> wl_data_source#53.offer("STRING") -[2617591.905] {Default Queue} -> wl_data_source#53.offer("UTF8_STRING") -[2617591.909] {Default Queue} wl_registry#42.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617591.914] {Default Queue} -> wl_registry#42.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#54) -[2617591.918] {Default Queue} -> zwp_primary_selection_device_manager_v1#54.create_source(new id zwp_primary_selection_source_v1#55) -[2617591.926] {Default Queue} -> zwp_primary_selection_source_v1#55.offer("text/plain") -[2617591.930] {Default Queue} -> zwp_primary_selection_source_v1#55.offer("text/plain;charset=utf-8") -[2617591.934] {Default Queue} -> zwp_primary_selection_source_v1#55.offer("TEXT") -[2617591.938] {Default Queue} -> zwp_primary_selection_source_v1#55.offer("STRING") -[2617591.942] {Default Queue} -> zwp_primary_selection_source_v1#55.offer("UTF8_STRING") -[2617591.946] {Default Queue} wl_registry#42.global(19, "zwlr_data_control_manager_v1", 2) -[2617591.950] {Default Queue} wl_registry#42.global(20, "ext_data_control_manager_v1", 1) -[2617591.955] {Default Queue} wl_registry#42.global(21, "wp_presentation", 2) -[2617591.959] {Default Queue} wl_registry#42.global(22, "wp_security_context_manager_v1", 1) -[2617591.968] {Default Queue} wl_registry#42.global(23, "zwp_text_input_manager_v3", 1) -[2617591.975] {Default Queue} wl_registry#42.global(24, "zwp_input_method_manager_v2", 1) -[2617591.979] {Default Queue} wl_registry#42.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617591.984] {Default Queue} wl_registry#42.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617591.988] {Default Queue} wl_registry#42.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617591.992] {Default Queue} wl_registry#42.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617591.996] {Default Queue} wl_registry#42.global(29, "ext_workspace_manager_v1", 1) -[2617592.001] {Default Queue} wl_registry#42.global(30, "zwlr_output_manager_v1", 4) -[2617592.005] {Default Queue} wl_registry#42.global(31, "zwlr_screencopy_manager_v1", 3) -[2617592.009] {Default Queue} wl_registry#42.global(32, "wp_viewporter", 1) -[2617592.013] {Default Queue} wl_registry#42.global(33, "zxdg_exporter_v2", 1) -[2617592.018] {Default Queue} wl_registry#42.global(34, "zxdg_importer_v2", 1) -[2617592.022] {Default Queue} wl_registry#42.global(36, "xdg_activation_v1", 1) -[2617592.026] {Default Queue} wl_registry#42.global(37, "mutter_x11_interop", 1) -[2617592.030] {Default Queue} wl_registry#42.global(38, "wl_seat", 9) -[2617592.035] {Default Queue} -> wl_registry#42.bind(38, "wl_seat", 1, new id [unknown]#56) -[2617592.039] {Default Queue} wl_registry#42.global(39, "wp_cursor_shape_manager_v1", 2) -[2617592.043] {Default Queue} wl_registry#42.global(40, "wl_output", 4) -[2617592.048] {Default Queue} -> wl_registry#42.bind(40, "wl_output", 1, new id [unknown]#57) -[2617592.052] {Default Queue} wl_callback#43.done(0) -[2617592.056] {Default Queue} wl_keyboard#23.enter(566, wl_surface#19, array[0]) -[2617592.062] {Default Queue} wl_keyboard#23.modifiers(566, 0, 0, 16, 0) -[2617592.067] {Default Queue} wl_data_device#25.selection(nil) -[2617592.071] {Default Queue} zwp_primary_selection_device_v1#26.selection(nil) -[2617592.076] {Default Queue} -> wl_compositor#4.create_surface(new id wl_surface#43) -[2617592.080] {Default Queue} -> wl_subcompositor#45.get_subsurface(new id wl_subsurface#58, wl_surface#43, wl_surface#3) -[2617592.085] {Default Queue} -> wl_subsurface#58.set_desync() -[2617592.089] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617592.094] {Default Queue} -> wl_subsurface#58.place_above(wl_surface#3) -[2617592.138] {Default Queue} -> wl_shm#47.create_pool(new id wl_shm_pool#59, fd 10, 16) -[2617592.145] {Default Queue} -> wl_shm#47.create_pool(new id wl_shm_pool#60, fd 11, 16) -[2617592.149] {Default Queue} -> wl_shm_pool#59.create_buffer(new id wl_buffer#61, 0, 2, 2, 8, 0) -[2617592.154] {Default Queue} -> wl_shm_pool#60.create_buffer(new id wl_buffer#62, 0, 2, 2, 8, 0) -[2617592.162] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617592.167] {Default Queue} -> wl_surface#43.commit() -[2617592.172] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617592.176] {Default Queue} -> wl_surface#43.commit() -[2617592.180] {Default Queue} -> wl_compositor#44.create_region(new id wl_region#63) -[2617592.185] {Default Queue} -> wl_compositor#44.create_region(new id wl_region#64) -[2617592.189] {Default Queue} -> wl_region#63.subtract(0, 0, 2, 2) -[2617592.193] {Default Queue} -> wl_region#63.add(0, 0, 0, 0) -[2617592.198] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617592.202] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617592.206] {Default Queue} -> wl_surface#43.damage(0, 0, 2, 2) -[2617592.210] {Default Queue} -> wl_surface#3.damage(0, 0, 800, 800) -[2617592.218] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617592.222] {Default Queue} -> wl_surface#43.commit() -[2617592.259] {Default Queue} -> wl_shm#49.create_pool(new id wl_shm_pool#65, fd 19, 640) -[2617592.265] {Default Queue} -> wl_shm#49.create_pool(new id wl_shm_pool#66, fd 20, 640) -[2617592.270] {Default Queue} -> wl_shm_pool#65.create_buffer(new id wl_buffer#67, 0, 10, 16, 40, 0) -[2617592.274] {Default Queue} -> wl_shm_pool#66.create_buffer(new id wl_buffer#68, 0, 10, 16, 40, 0) -[2617592.285] {Default Queue} -> wl_compositor#44.create_surface(new id wl_surface#69) -[2617592.291] {Default Queue} -> wl_surface#69.attach(wl_buffer#67, 0, 0) -[2617592.296] {Default Queue} -> wl_surface#69.commit() -[2617592.301] {Default Queue} -> wl_surface#69.attach(wl_buffer#67, 0, 0) -[2617592.305] {Default Queue} -> wl_surface#69.commit() -[2617592.315] {Default Queue} -> wl_region#63.subtract(0, 0, 2, 2) -[2617592.319] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617592.324] {Default Queue} -> wl_region#63.subtract(0, 0, 2, 2) -[2617592.328] {Default Queue} -> wl_region#63.add(0, 0, 0, 0) -[2617592.332] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617592.336] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617592.340] {Default Queue} -> wl_surface#43.damage(0, 0, 2, 2) -[2617592.348] {Default Queue} -> wl_region#63.subtract(0, 0, 2, 2) -[2617592.354] {Default Queue} -> wl_region#63.add(0, 0, 2, 2) -[2617592.358] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617592.362] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617592.371] {Default Queue} -> wl_region#63.subtract(0, 0, 2, 2) -[2617592.375] {Default Queue} -> wl_region#63.add(0, 0, 2, 2) -[2617592.379] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617592.383] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617592.393] {Default Queue} -> wl_region#63.subtract(0, 0, 2, 2) -[2617592.398] {Default Queue} -> wl_region#63.add(0, 0, 2, 2) -[2617592.403] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617592.407] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617592.412] {Default Queue} -> wl_region#63.subtract(0, 0, 2, 2) -[2617592.416] {Default Queue} -> wl_region#63.add(0, 0, 2, 2) -[2617592.420] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617592.424] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617592.430] {Default Queue} -> wl_region#63.subtract(0, 0, 2, 2) -[2617592.434] {Default Queue} -> wl_region#63.add(0, 0, 2, 2) -[2617592.438] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617592.442] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617592.448] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617592.452] {Default Queue} -> wl_surface#43.commit() -[2617592.459] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617592.463] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617592.467] {Default Queue} -> wl_region#63.subtract(0, 0, 2, 2) -[2617592.471] {Default Queue} -> wl_region#63.add(0, 0, 2, 2) -[2617592.476] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617592.480] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617592.484] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617592.490] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617592.494] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617592.498] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617592.502] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617592.508] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617592.512] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617592.516] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617592.520] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617592.526] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617592.530] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617592.534] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617592.538] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617592.543] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617592.547] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617592.551] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617592.558] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617592.565] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617592.570] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617592.574] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617592.578] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617592.586] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617592.590] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617592.594] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617592.598] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617592.619] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617592.624] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617592.727] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617592.734] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617592.740] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617592.748] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617592.760] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617592.767] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617592.775] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617592.780] {Default Queue} -> wl_surface#43.commit() -[2617592.789] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617592.795] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617592.800] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617592.806] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617592.811] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617592.817] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617592.822] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617592.831] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617592.837] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617592.842] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617592.848] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617592.855] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617592.868] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617592.874] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617592.879] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617592.887] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617592.893] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617592.898] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617592.904] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617592.910] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617592.916] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617592.921] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617592.927] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617592.933] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617592.939] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617592.944] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617592.950] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617592.959] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617592.965] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617592.970] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617592.976] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617592.994] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617593.001] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617593.047] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.053] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.059] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.064] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.077] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617593.085] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617593.092] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617593.098] {Default Queue} -> wl_surface#43.commit() -[2617593.105] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.111] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617593.116] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.122] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.127] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.132] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.138] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617593.146] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.151] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.157] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.162] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.170] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.176] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.181] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.186] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.193] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.199] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.204] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.210] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.216] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.222] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.227] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.232] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.239] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.244] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.250] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.255] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.264] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.270] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.275] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.281] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.299] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617593.304] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617593.351] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.356] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.362] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.367] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.374] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617593.389] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617593.396] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617593.402] {Default Queue} -> wl_surface#43.commit() -[2617593.409] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.415] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617593.420] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.425] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.431] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.436] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.441] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617593.450] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.455] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.461] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.466] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.473] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.483] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.491] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.497] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.504] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.510] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.515] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.520] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.526] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.532] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.538] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.543] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.549] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.555] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.560] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.565] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.575] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.581] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.587] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.592] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.610] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617593.618] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617593.663] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.669] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.675] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.680] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.687] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617593.692] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617593.699] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617593.704] {Default Queue} -> wl_surface#43.commit() -[2617593.711] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.717] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617593.722] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.728] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.733] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.738] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.744] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617593.752] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.757] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.763] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.768] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.775] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.781] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.786] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.791] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.798] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.804] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.809] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.815] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.821] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.826] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.832] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.837] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.843] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.849] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.854] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.861] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.881] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.890] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.896] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.901] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.919] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617593.926] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617593.970] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617593.975] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617593.981] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617593.986] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617593.993] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617593.999] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617594.005] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617594.011] {Default Queue} -> wl_surface#43.commit() -[2617594.018] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.023] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617594.029] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.035] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.040] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.046] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.051] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617594.059] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.065] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.070] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.076] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.083] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.088] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.094] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.099] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.106] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.112] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.117] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.123] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.129] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.134] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.140] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.145] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.151] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.157] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.162] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.168] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.177] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.183] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.188] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.194] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.211] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617594.217] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617594.258] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.263] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.269] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.274] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.281] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617594.287] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617594.293] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617594.298] {Default Queue} -> wl_surface#43.commit() -[2617594.305] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.317] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617594.325] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.331] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.336] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.342] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.347] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617594.355] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.361] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.366] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.371] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.378] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.384] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.390] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.395] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.402] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.407] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.413] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.418] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.424] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.430] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.435] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.440] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.447] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.452] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.458] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.463] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.473] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.478] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.484] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.489] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.507] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617594.515] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617594.557] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.562] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.568] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.573] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.580] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617594.586] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617594.592] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617594.598] {Default Queue} -> wl_surface#43.commit() -[2617594.605] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.610] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617594.616] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.621] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.627] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.632] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.638] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617594.646] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.651] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.657] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.662] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.670] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.675] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.681] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.686] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.693] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.702] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.710] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.715] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.721] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.727] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.733] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.738] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.744] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.750] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.755] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.760] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.770] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.776] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.781] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.787] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.805] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617594.810] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617594.853] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.859] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.865] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.877] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.885] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617594.890] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617594.942] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.947] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617594.953] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617594.958] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617594.965] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617594.970] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617594.977] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617594.982] {Default Queue} -> wl_surface#43.commit() -[2617594.989] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617594.995] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617595.001] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.006] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.016] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.022] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.027] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617595.035] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.041] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.046] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.052] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.059] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.064] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.070] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.075] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.082] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.088] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.093] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.099] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.105] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.110] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.116] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.121] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.128] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.133] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.143] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.150] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.160] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.166] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.171] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.176] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.195] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617595.201] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617595.243] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.248] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.254] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.259] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.266] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617595.272] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617595.318] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.323] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.329] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.334] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.341] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617595.346] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617595.353] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617595.358] {Default Queue} -> wl_surface#43.commit() -[2617595.365] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.371] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617595.377] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.382] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.388] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.393] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.398] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617595.406] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.412] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.417] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.423] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.430] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.435] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.441] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.446] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.453] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.459] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.464] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.469] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.475] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.481] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.486] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.492] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.498] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.504] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.509] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.514] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.524] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.529] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.535] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.541] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.559] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617595.564] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617595.605] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.613] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.621] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.627] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.633] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617595.639] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617595.682] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.688] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.693] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.699] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.705] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617595.711] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617595.717] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617595.723] {Default Queue} -> wl_surface#43.commit() -[2617595.730] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.736] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617595.741] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.747] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.752] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.757] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.763] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617595.771] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.776] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.782] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.787] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.794] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.800] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.805] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.810] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.817] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.823] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.828] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.833] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.840] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.845] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.851] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.856] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.863] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.869] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.881] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.886] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.896] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.902] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.907] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.913] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617595.930] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617595.936] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617595.979] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617595.984] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617595.990] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617595.995] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.002] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617596.008] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617596.055] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.060] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.066] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.071] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.082] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617596.090] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617596.096] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617596.102] {Default Queue} -> wl_surface#43.commit() -[2617596.109] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.115] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617596.120] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.125] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.131] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.136] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.142] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617596.150] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.155] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.161] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.166] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.173] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.179] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.184] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.189] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.196] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.202] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.207] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.213] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.219] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.225] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.230] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.236] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.242] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.247] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.253] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.258] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.268] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.273] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.279] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.284] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.302] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617596.308] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617596.350] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.355] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.361] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.366] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.373] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617596.378] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617596.423] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.428] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.434] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.439] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.446] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617596.451] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617596.457] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617596.463] {Default Queue} -> wl_surface#43.commit() -[2617596.470] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.476] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617596.481] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.487] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.492] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.497] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.507] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617596.517] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.523] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.528] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.533] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.540] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.546] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.552] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.557] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.564] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.569] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.575] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.580] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.586] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.592] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.597] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.603] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.609] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.615] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.620] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.625] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.635] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.641] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.646] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.651] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.669] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617596.675] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617596.717] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.726] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.732] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.737] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.744] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617596.749] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617596.795] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.800] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.806] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.811] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.818] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617596.823] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617596.830] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617596.835] {Default Queue} -> wl_surface#43.commit() -[2617596.842] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.848] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617596.853] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.859] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.871] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.894] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.899] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617596.908] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.913] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.919] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.924] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.931] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.937] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.943] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.948] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.959] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.967] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.973] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617596.978] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617596.984] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617596.990] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617596.995] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.000] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.007] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.012] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617597.018] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.023] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.033] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.038] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617597.044] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.049] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.067] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617597.073] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617597.117] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.122] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617597.128] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.133] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.140] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617597.146] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617597.193] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.198] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617597.203] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.209] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.216] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617597.221] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617597.227] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617597.233] {Default Queue} -> wl_surface#43.commit() -[2617597.240] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.246] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617597.251] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.257] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617597.262] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.267] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.273] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617597.281] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.286] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617597.292] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.297] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.304] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.310] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617597.315] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.321] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.328] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.333] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617597.339] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.344] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.350] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.356] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617597.361] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.366] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.373] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.383] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617597.391] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.396] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.405] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.411] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617597.416] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.422] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.440] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617597.446] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617597.488] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.493] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617597.499] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.504] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.511] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617597.517] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617597.560] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.565] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617597.571] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.576] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.583] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617597.589] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617597.595] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617597.601] {Default Queue} -> wl_surface#43.commit() -[2617597.608] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.613] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617597.619] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.624] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617597.630] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.635] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.640] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617597.648] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.654] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617597.659] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.664] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.672] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.677] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617597.683] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.688] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.695] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.700] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617597.706] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.711] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.717] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.723] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617597.728] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.733] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.740] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.745] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617597.751] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.756] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.765] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.771] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617597.776] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.782] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.799] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617597.805] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617597.849] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.856] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617597.866] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.872] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.879] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617597.885] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617597.930] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.935] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617597.941] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617597.946] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617597.953] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617597.959] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617597.965] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617597.971] {Default Queue} -> wl_surface#43.commit() -[2617597.978] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.983] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617597.989] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617597.994] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.000] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.005] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.010] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617598.018] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.024] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.030] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.035] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.042] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.048] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.054] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.059] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.066] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.072] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.077] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.082] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.089] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.094] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.100] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.105] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.111] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.117] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.122] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.128] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.137] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.143] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.148] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.154] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.172] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617598.178] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617598.218] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.223] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.229] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.234] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.241] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617598.247] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617598.294] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.299] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.305] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.314] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.323] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617598.329] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617598.381] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.386] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.392] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.397] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.404] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617598.410] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617598.416] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617598.421] {Default Queue} -> wl_surface#43.commit() -[2617598.428] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.434] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617598.439] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.445] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.451] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.456] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.461] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617598.469] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.475] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.484] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.490] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.497] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.503] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.508] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.514] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.521] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.526] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.532] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.537] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.543] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.549] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.554] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.559] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.566] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.571] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.577] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.582] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.592] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.597] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.603] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.608] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.626] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617598.632] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617598.675] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.681] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.686] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.692] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.698] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617598.704] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617598.749] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.754] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.760] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.765] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.772] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617598.777] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617598.826] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.833] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.839] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.844] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.851] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617598.856] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617598.868] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617598.874] {Default Queue} -> wl_surface#43.commit() -[2617598.881] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.886] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617598.892] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.897] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.903] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.908] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.914] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617598.922] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.927] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.933] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.938] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.946] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.951] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.957] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.962] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.969] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.975] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617598.980] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617598.986] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617598.992] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617598.997] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.003] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.008] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.015] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.020] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.026] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.031] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.041] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.046] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.052] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.057] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.075] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617599.083] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617599.127] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.132] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.138] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.143] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.150] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617599.156] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617599.203] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.208] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.214] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.219] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.226] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617599.232] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617599.279] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.284] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.290] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.295] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.307] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617599.315] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617599.321] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617599.327] {Default Queue} -> wl_surface#43.commit() -[2617599.334] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.339] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617599.345] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.350] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.356] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.361] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.367] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617599.375] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.380] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.386] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.391] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.398] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.404] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.409] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.415] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.422] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.427] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.433] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.438] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.444] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.450] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.455] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.460] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.467] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.472] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.478] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.483] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.493] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.498] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.504] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.509] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.527] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617599.533] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617599.576] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.581] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.586] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.592] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.598] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617599.604] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617599.651] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.656] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.662] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.667] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.674] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617599.680] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617599.727] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.732] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.737] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.743] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.749] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617599.755] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617599.761] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617599.773] {Default Queue} -> wl_surface#43.commit() -[2617599.782] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.788] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617599.793] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.799] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.804] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.810] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.815] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617599.824] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.829] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.835] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.840] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.847] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.853] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.858] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.865] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.879] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.884] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.890] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.896] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.902] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.907] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.913] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.918] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.925] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.930] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.936] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.941] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.951] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617599.956] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617599.962] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617599.967] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617599.985] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617599.993] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617600.036] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.041] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617600.047] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617600.052] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617600.059] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617600.065] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617600.113] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.118] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617600.123] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617600.129] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617600.135] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617600.141] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617600.188] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.193] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617600.199] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617600.204] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617600.211] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617600.217] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617600.223] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617600.228] {Default Queue} -> wl_surface#43.commit() -[2617600.235] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.241] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617600.251] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.258] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617600.264] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617600.269] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617600.274] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617600.282] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.288] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617600.293] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617600.299] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617600.306] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.311] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617600.321] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617600.327] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617600.334] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.339] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617600.345] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617600.350] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617600.356] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.362] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617600.367] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617600.373] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617600.379] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.385] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617600.390] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617600.396] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617600.405] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.411] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617600.416] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617600.421] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617600.439] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617600.445] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617600.487] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.492] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617600.498] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617600.503] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617600.510] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617600.516] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617600.561] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.566] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617600.572] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617600.577] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617600.584] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617600.589] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617600.635] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.640] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617600.645] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617600.650] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617600.657] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617600.663] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617600.669] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617600.674] {Default Queue} -> wl_surface#43.commit() -[2617600.681] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.687] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617600.692] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.698] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617600.703] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617600.709] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617600.718] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617600.728] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.734] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617600.739] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617600.745] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617600.752] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.757] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617600.763] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617600.768] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617600.775] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.781] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617600.786] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617600.791] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617600.798] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.803] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617600.809] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617600.814] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617600.820] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.826] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617600.831] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617600.837] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617600.846] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.852] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617600.857] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617600.869] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617600.888] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617600.894] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617600.938] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617600.943] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617600.948] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617600.954] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617600.961] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617600.966] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617601.014] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.019] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617601.025] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617601.030] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617601.037] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617601.043] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617601.090] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.095] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617601.100] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617601.106] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617601.112] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617601.118] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617601.124] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617601.130] {Default Queue} -> wl_surface#43.commit() -[2617601.137] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.142] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617601.148] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.153] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617601.159] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617601.164] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617601.169] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617601.177] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.183] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617601.193] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617601.201] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617601.208] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.214] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617601.219] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617601.225] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617601.232] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.237] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617601.243] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617601.248] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617601.254] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.260] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617601.266] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617601.271] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617601.277] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.283] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617601.288] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617601.294] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617601.303] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.309] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617601.314] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617601.319] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617601.337] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617601.343] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617601.386] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.391] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617601.397] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617601.402] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617601.409] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617601.414] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617601.461] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.466] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617601.472] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617601.477] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617601.483] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617601.489] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617601.536] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.541] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617601.547] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617601.552] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617601.559] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617601.564] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617601.570] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617601.576] {Default Queue} -> wl_surface#43.commit() -[2617601.583] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.588] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617601.594] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.599] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617601.605] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617601.610] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617601.615] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617601.623] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.629] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617601.634] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617601.640] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617601.647] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.656] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617601.664] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617601.669] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617601.676] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.682] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617601.687] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617601.693] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617601.699] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.704] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617601.710] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617601.715] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617601.721] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.727] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617601.733] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617601.738] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617601.747] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.753] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617601.758] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617601.764] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617601.781] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617601.788] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617601.830] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.835] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617601.841] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617601.846] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617601.853] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617601.858] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617601.910] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.916] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617601.922] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617601.927] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617601.934] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617601.940] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617601.984] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617601.989] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617601.995] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.000] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.007] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.013] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.099] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.106] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617602.111] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.117] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.122] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.127] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.132] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617602.136] {Default Queue} -> wl_surface#43.commit() -[2617602.142] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.146] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617602.150] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.154] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617602.158] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.162] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.167] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.173] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.177] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617602.188] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.197] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.203] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.208] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617602.212] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.216] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.222] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.226] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617602.230] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.234] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.239] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.243] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617602.247] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.251] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.256] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.260] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617602.264] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.268] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.275] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.280] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617602.284] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.288] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.299] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.304] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.340] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.345] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617602.350] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.354] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.359] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.363] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.401] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.406] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617602.410] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.414] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.419] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.423] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.461] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.466] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617602.470] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.474] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.479] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.483] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.549] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.554] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617602.558] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.562] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.567] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.571] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.576] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617602.580] {Default Queue} -> wl_surface#43.commit() -[2617602.586] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.590] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617602.594] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.599] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617602.603] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.607] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.615] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.623] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.627] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617602.632] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.636] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.641] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.645] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617602.649] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.653] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.658] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.663] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617602.667] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.671] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.675] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.680] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617602.684] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.688] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.693] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.697] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617602.701] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.705] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.712] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.718] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617602.722] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.726] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.737] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.742] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.775] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.780] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617602.784] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.788] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.793] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.797] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.869] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.882] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617602.888] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.893] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.900] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.905] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.949] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617602.954] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617602.958] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617602.962] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617602.968] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617602.972] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.043] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.048] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.052] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.056] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.061] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.065] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.070] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617603.075] {Default Queue} -> wl_surface#43.commit() -[2617603.081] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.085] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617603.090] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.094] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.103] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.110] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.114] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.121] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.125] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.129] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.133] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.139] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.143] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.148] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.152] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.158] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.162] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.166] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.170] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.175] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.179] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.184] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.188] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.193] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.197] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.201] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.205] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.212] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.217] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.221] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.225] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.237] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.242] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.277] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.282] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.286] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.290] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.295] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.300] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.339] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.343] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.348] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.352] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.357] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.361] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.400] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.405] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.410] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.414] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.418] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.423] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.489] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.494] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.498] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.502] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.507] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.511] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.516] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617603.521] {Default Queue} -> wl_surface#43.commit() -[2617603.526] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.534] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617603.540] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.544] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.548] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.552] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.556] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.562] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.566] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.571] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.575] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.580] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.584] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.588] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.592] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.597] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.602] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.606] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.610] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.614] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.618] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.623] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.626] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.631] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.635] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.640] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.644] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.650] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.655] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.659] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.663] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.674] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.678] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.711] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.716] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.720] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.724] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.729] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.734] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.771] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.776] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.780] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.784] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.789] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.793] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.830] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.835] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.839] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.848] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.853] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.858] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.928] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.933] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.937] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.941] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.947] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.951] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617603.959] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617603.965] {Default Queue} -> wl_surface#43.commit() -[2617603.971] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.976] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617603.980] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617603.984] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617603.988] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617603.992] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617603.996] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.002] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.007] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.011] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.015] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.020] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.025] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.029] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.033] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.038] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.042] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.046] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.050] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.055] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.059] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.063] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.067] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.072] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.076] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.080] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.084] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.091] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.095] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.099] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.103] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.115] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.119] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.152] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.156] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.161] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.165] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.170] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.174] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.210] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.215] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.219] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.223] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.228] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.233] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.269] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.274] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.278] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.282] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.287] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.291] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.352] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.357] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.361] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.369] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.376] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.380] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.385] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617604.389] {Default Queue} -> wl_surface#43.commit() -[2617604.395] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.399] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617604.403] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.407] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.411] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.415] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.419] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.425] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.429] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.434] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.438] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.443] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.447] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.451] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.455] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.460] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.465] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.469] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.473] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.477] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.482] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.486] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.490] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.494] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.499] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.503] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.507] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.514] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.518] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.522] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.526] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.537] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.542] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.574] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.578] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.583] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.587] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.591] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.596] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.632] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.637] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.641] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.645] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.650] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.654] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.690] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.695] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.699] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.703] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.708] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.712] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.776] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.783] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.787] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.791] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.796] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.801] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.805] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617604.809] {Default Queue} -> wl_surface#43.commit() -[2617604.815] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.819] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617604.823] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.827] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.831] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.835] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.839] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.847] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.854] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.860] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.872] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.881] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.887] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.894] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.899] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.906] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.911] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.915] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.919] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.923] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.928] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.932] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.936] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.941] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.945] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.949] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.953] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.960] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617604.964] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617604.969] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617604.973] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617604.985] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617604.989] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.026] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.031] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.035] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.039] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.045] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.049] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.086] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.090] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.095] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.099] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.103] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.108] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.145] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.149] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.154] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.162] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.169] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.173] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.236] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.241] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.245] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.249] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.254] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.259] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.263] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617605.268] {Default Queue} -> wl_surface#43.commit() -[2617605.273] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.278] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617605.282] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.286] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.290] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.294] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.298] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.305] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.309] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.313] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.317] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.322] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.326] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.331] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.335] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.340] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.344] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.348] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.352] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.357] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.361] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.365] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.369] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.374] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.378] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.382] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.386] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.393] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.401] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.406] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.410] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.421] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.426] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.458] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.463] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.467] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.471] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.476] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.480] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.516] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.521] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.526] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.530] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.534] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.539] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.575] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.583] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.589] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.593] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.598] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.602] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.664] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.668] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.673] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.677] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.682] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.686] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.691] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617605.695] {Default Queue} -> wl_surface#43.commit() -[2617605.700] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.705] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617605.709] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.713] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.717] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.721] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.725] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.731] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.735] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.740] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.744] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.749] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.753] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.757] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.761] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.766] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.770] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.775] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.779] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.783] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.787] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.792] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.795] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.800] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.804] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.809] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.813] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.819] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.824] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.828] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.832] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.843] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.847] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.887] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.892] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.896] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.900] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.905] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.909] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.946] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617605.951] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617605.955] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617605.959] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617605.967] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617605.973] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.010] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.014] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.019] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.023] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.027] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.032] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.093] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.098] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.102] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.106] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.111] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.115] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.120] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617606.124] {Default Queue} -> wl_surface#43.commit() -[2617606.130] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.134] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617606.138] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.142] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.146] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.150] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.155] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.160] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.165] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.169] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.173] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.178] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.182] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.187] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.191] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.196] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.200] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.204] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.208] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.213] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.217] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.221] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.225] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.230] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.234] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.238] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.242] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.249] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.254] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.258] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.262] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.273] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.278] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.309] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.314] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.318] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.322] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.327] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.332] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.368] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.376] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.381] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.385] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.390] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.395] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.430] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.435] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.439] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.443] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.448] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.452] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.512] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.517] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.521] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.525] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.530] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.534] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.539] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617606.543] {Default Queue} -> wl_surface#43.commit() -[2617606.549] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.553] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617606.557] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.561] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.565] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.570] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.574] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.579] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.584] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.588] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.592] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.597] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.601] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.605] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.609] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.614] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.619] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.623] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.627] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.631] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.635] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.640] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.644] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.648] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.653] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.657] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.661] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.667] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.672] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.676] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.680] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.691] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.695] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.726] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.731] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.735] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.739] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.747] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.753] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.789] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.794] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.798] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.802] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.807] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.811] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.847] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.852] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.856] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.867] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.873] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.879] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.965] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617606.971] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617606.975] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617606.979] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617606.985] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.990] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617606.994] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617606.999] {Default Queue} -> wl_surface#43.commit() -[2617607.004] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.009] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617607.013] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.017] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.021] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.029] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.033] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.040] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.044] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.048] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.052] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.058] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.062] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.066] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.070] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.076] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.080] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.085] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.089] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.093] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.097] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.102] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.105] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.110] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.115] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.119] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.123] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.130] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.134] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.138] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.142] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.154] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.158] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.191] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.200] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.207] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.211] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.216] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.220] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.256] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.261] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.266] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.270] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.275] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.279] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.315] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.320] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.324] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.328] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.333] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.337] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.398] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.403] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.407] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.411] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.416] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.420] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.458] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.463] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.467] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.471] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.476] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.481] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.485] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617607.489] {Default Queue} -> wl_surface#43.commit() -[2617607.495] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.499] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617607.504] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.508] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.512] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.516] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.520] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.526] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.530] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.534] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.538] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.543] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.548] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.552] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.556] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.561] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.565] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.569] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.573] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.578] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.582] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.586] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.590] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.595] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.599] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.603] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.610] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.619] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.623] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.627] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.631] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.642] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.647] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.679] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.684] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.688] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.692] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.697] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.701] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.737] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.742] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.747] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.751] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.756] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.760] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.796] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.801] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.805] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.809] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.814] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.818] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.888] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.893] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.897] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.901] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.906] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.911] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.947] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.952] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617607.956] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617607.960] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617607.965] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.970] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617607.974] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617607.978] {Default Queue} -> wl_surface#43.commit() -[2617607.984] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.988] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617607.992] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617607.996] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.001] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.005] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.009] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.015] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.019] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.023] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.027] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.032] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.037] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.041] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.045] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.050] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.054] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.062] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.067] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.072] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.076] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.080] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.084] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.089] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.094] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.098] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.102] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.109] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.113] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.117] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.121] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.133] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.137] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.169] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.174] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.179] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.182] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.187] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.192] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.228] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.232] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.237] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.241] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.246] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.250] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.286] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.291] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.295] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.299] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.304] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.308] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.369] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.374] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.378] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.382] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.387] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.391] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.428] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.433] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.437] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.441] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.446] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.450] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.455] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617608.459] {Default Queue} -> wl_surface#43.commit() -[2617608.464] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.468] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617608.472] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.476] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.481] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.485] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.489] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.494] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.502] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.508] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.512] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.517] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.521] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.525] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.530] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.535] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.539] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.543] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.547] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.552] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.556] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.560] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.564] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.569] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.573] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.581] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.585] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.592] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.596] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.600] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.604] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.615] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.621] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.654] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.659] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.663] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.667] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.672] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.676] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.712] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.717] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.721] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.725] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.730] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.734] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.770] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.775] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.779] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.783] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.788] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.792] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.854] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.859] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.869] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.875] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.881] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.886] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.944] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.952] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617608.957] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617608.962] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617608.968] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.972] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617608.977] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617608.986] {Default Queue} -> wl_surface#43.commit() -[2617608.994] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617608.998] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617609.003] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617609.007] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617609.011] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617609.015] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617609.019] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617609.026] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617609.030] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617609.034] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617609.038] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617609.044] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617609.048] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617609.052] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617609.056] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617609.062] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617609.066] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617609.071] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617609.075] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617609.079] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617609.084] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617609.088] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617609.092] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617609.097] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617609.102] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617609.110] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617609.121] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617609.136] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617609.144] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617609.151] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617609.157] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617609.172] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617609.177] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617609.221] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617609.226] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617609.231] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617609.235] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617609.240] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617609.245] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617609.285] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617609.290] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617609.294] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617609.298] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617609.303] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617609.308] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617609.348] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617609.353] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617609.357] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617609.361] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617609.366] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617609.370] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617609.437] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617609.442] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617609.446] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617609.450] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617609.460] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617609.467] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617609.506] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617609.511] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617609.515] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617609.519] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617609.524] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617609.528] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617609.533] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617609.538] {Default Queue} -> wl_surface#43.commit() -[2617609.547] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#70) -[2617609.551] {Default Queue} -> wl_display#1.sync(new id wl_callback#71) -[2617609.570] {Default Queue} xdg_toplevel#22.configure(616, 738, array[4]) -[2617609.576] {Default Queue} -> wl_region#35.subtract(0, 0, 800, 800) -[2617609.580] {Default Queue} -> xdg_surface#21.set_window_geometry(0, 0, 616, 738) -[2617609.775] {Default Queue} -> wl_buffer#33.destroy() -[2617609.780] {Default Queue} -> wl_buffer#34.destroy() -[2617609.784] {Default Queue} -> wl_shm_pool#31.destroy() -[2617609.788] {Default Queue} -> wl_shm_pool#32.destroy() -[2617610.850] {Default Queue} -> wl_shm#8.create_pool(new id wl_shm_pool#72, fd 10, 1920568) -[2617610.858] {Default Queue} -> wl_shm#8.create_pool(new id wl_shm_pool#73, fd 11, 1920568) -[2617610.865] {Default Queue} -> wl_shm_pool#72.create_buffer(new id wl_buffer#74, 0, 626, 767, 2504, 0) -[2617610.870] {Default Queue} -> wl_shm_pool#73.create_buffer(new id wl_buffer#75, 0, 626, 767, 2504, 0) -[2617611.386] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) -[2617611.398] {Default Queue} -> wl_surface#19.commit() -[2617611.926] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) -[2617611.933] {Default Queue} -> wl_surface#19.commit() -[2617612.141] {Default Queue} -> wl_buffer#29.destroy() -[2617612.146] {Default Queue} -> wl_buffer#30.destroy() -[2617612.150] {Default Queue} -> wl_shm_pool#27.destroy() -[2617612.154] {Default Queue} -> wl_shm_pool#28.destroy() -[2617613.200] {Default Queue} -> wl_shm#7.create_pool(new id wl_shm_pool#76, fd 19, 1818432) -[2617613.216] {Default Queue} -> wl_shm#7.create_pool(new id wl_shm_pool#77, fd 20, 1818432) -[2617613.223] {Default Queue} -> wl_shm_pool#76.create_buffer(new id wl_buffer#78, 0, 616, 738, 2464, 0) -[2617613.229] {Default Queue} -> wl_shm_pool#77.create_buffer(new id wl_buffer#79, 0, 616, 738, 2464, 0) -[2617613.675] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) -[2617613.681] {Default Queue} -> wl_surface#3.commit() -[2617614.179] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) -[2617614.186] {Default Queue} -> wl_surface#3.commit() -[2617614.190] {Default Queue} -> wl_region#35.subtract(0, 0, 616, 738) -[2617614.195] {Default Queue} -> wl_region#35.add(0, 0, 0, 0) -[2617614.199] {Default Queue} -> wl_surface#19.set_opaque_region(wl_region#36) -[2617614.203] {Default Queue} -> wl_surface#19.set_input_region(wl_region#35) -[2617614.207] {Default Queue} -> wl_surface#3.set_opaque_region(wl_region#36) -[2617614.211] {Default Queue} -> wl_surface#3.set_input_region(wl_region#35) -[2617614.219] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617614.223] {Default Queue} -> wl_subsurface#58.set_position(0, 0) -[2617614.228] {Default Queue} -> wl_region#63.subtract(0, 0, 800, 29) -[2617614.232] {Default Queue} -> wl_region#63.add(0, 0, 800, 29) -[2617614.236] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617614.240] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617614.244] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617614.254] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2617614.259] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2617614.264] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617614.268] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617614.280] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2617614.289] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2617614.294] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617614.298] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617614.305] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2617614.309] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2617614.313] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617614.317] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617614.322] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2617614.326] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2617614.331] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617614.335] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617614.340] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2617614.344] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2617614.348] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617614.352] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617614.361] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2617614.366] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2617614.370] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617614.374] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617614.388] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617614.393] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617614.439] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2617614.444] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2617614.448] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617614.452] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617614.458] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617614.462] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617614.503] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2617614.508] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2617614.512] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617614.516] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617614.521] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617614.526] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617614.567] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2617614.572] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2617614.576] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617614.580] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617614.585] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617614.590] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617614.661] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2617614.666] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2617614.670] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617614.674] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617614.679] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617614.683] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617614.723] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2617614.728] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2617614.732] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617614.736] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617614.741] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617614.745] {Default Queue} -> wl_surface#43.damage(0, 0, 800, 29) -[2617614.750] {Default Queue} -> wl_surface#43.attach(wl_buffer#61, 0, 0) -[2617614.755] {Default Queue} -> wl_surface#43.commit() -[2617614.761] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2617614.765] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2617614.773] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617614.779] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617614.785] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2617614.789] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2617614.793] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617614.797] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617614.803] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2617614.807] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2617614.811] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617614.815] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617614.820] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2617614.824] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2617614.828] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617614.833] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617614.837] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2617614.842] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2617614.846] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617614.850] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617614.857] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2617614.868] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2617614.873] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617614.877] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617614.887] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2617614.891] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2617614.927] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2617614.933] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2617614.938] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617614.948] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617614.959] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2617614.965] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2617615.024] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2617615.031] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2617615.036] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617615.042] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617615.049] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2617615.055] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2617615.104] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2617615.109] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2617615.115] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617615.120] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617615.127] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2617615.132] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2617615.209] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2617615.218] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2617615.225] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617615.231] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617615.240] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2617615.246] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2617615.293] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2617615.298] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2617615.303] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2617615.307] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2617615.312] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2617615.316] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2617615.322] {Default Queue} xdg_surface#21.configure(568) -[2617615.326] {Default Queue} -> xdg_surface#21.ack_configure(568) -[2617616.908] {Default Queue} -> wl_surface#3.damage(0, 0, 616, 738) -[2617616.918] {Default Queue} -> wl_surface#3.damage(0, 0, 616, 738) -[2617616.966] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) -[2617616.974] {Default Queue} -> wl_surface#19.commit() -[2617617.047] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) -[2617617.060] {Default Queue} -> wl_surface#19.commit() -[2617617.104] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) -[2617617.112] {Default Queue} -> wl_surface#3.commit() -[2617617.152] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) -[2617617.158] {Default Queue} -> wl_surface#3.commit() -[2617617.200] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) -[2617617.208] {Default Queue} -> wl_surface#19.commit() -[2617617.213] {Default Queue} discarded wl_shm#47.format(875709016) -[2617617.218] {Default Queue} discarded wl_shm#47.format(1) -[2617617.223] {Default Queue} discarded wl_shm#47.format(0) -[2617617.228] {Default Queue} discarded wl_shm#47.format(875708993) -[2617617.233] {Default Queue} discarded wl_shm#48.format(875709016) -[2617617.238] {Default Queue} discarded wl_shm#48.format(1) -[2617617.243] {Default Queue} discarded wl_shm#48.format(0) -[2617617.248] {Default Queue} discarded wl_shm#48.format(875708993) -[2617617.253] {Default Queue} discarded wl_shm#49.format(875709016) -[2617617.258] {Default Queue} discarded wl_shm#49.format(1) -[2617617.263] {Default Queue} discarded wl_shm#49.format(0) -[2617617.268] {Default Queue} discarded wl_shm#49.format(875708993) -[2617617.273] {Default Queue} wl_seat#56.capabilities(7) -[2617617.279] {Default Queue} -> wl_seat#56.get_keyboard(new id wl_keyboard#80) -[2617617.285] {Default Queue} -> wl_seat#56.get_pointer(new id wl_pointer#81) -[2617617.290] {Default Queue} -> wl_data_device_manager#52.get_data_device(new id wl_data_device#82, wl_seat#56) -[2617617.296] {Default Queue} -> zwp_primary_selection_device_manager_v1#54.get_device(new id zwp_primary_selection_device_v1#83, wl_seat#56) -[2617617.306] {Default Queue} wl_output#57.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617617.313] {Default Queue} wl_output#57.mode(3, 1280, 800, 60000) -[2617617.319] {Default Queue} discarded wl_surface#3.enter(wl_output#57) -[2617617.325] {Default Queue} discarded wl_surface#19.enter(wl_output#57) -[2617617.330] {Default Queue} discarded wl_surface#43.enter(wl_output#18) -[2617617.335] {Default Queue} discarded wl_surface#43.enter(wl_output#57) -[2617653.117] {Display Queue} wl_display#1.delete_id(71) -[2617653.139] {Display Queue} wl_display#1.delete_id(33) -[2617653.144] {Display Queue} wl_display#1.delete_id(34) -[2617653.149] {Display Queue} wl_display#1.delete_id(31) -[2617653.153] {Display Queue} wl_display#1.delete_id(32) -[2617653.158] {Display Queue} wl_display#1.delete_id(29) -[2617653.162] {Display Queue} wl_display#1.delete_id(30) -[2617653.166] {Display Queue} wl_display#1.delete_id(27) -[2617653.171] {Display Queue} wl_display#1.delete_id(28) -[2617653.175] {Default Queue} wl_registry#70.global(1, "wl_compositor", 6) -[2617653.183] {Default Queue} -> wl_registry#70.bind(1, "wl_compositor", 1, new id [unknown]#28) -[2617653.189] {Default Queue} wl_registry#70.global(2, "wl_subcompositor", 1) -[2617653.194] {Default Queue} -> wl_registry#70.bind(2, "wl_subcompositor", 1, new id [unknown]#27) -[2617653.199] {Default Queue} wl_registry#70.global(3, "xdg_wm_base", 6) -[2617653.205] {Default Queue} -> wl_registry#70.bind(3, "xdg_wm_base", 1, new id [unknown]#30) -[2617653.211] {Default Queue} wl_registry#70.global(6, "zwlr_layer_shell_v1", 5) -[2617653.216] {Default Queue} wl_registry#70.global(7, "ext_session_lock_manager_v1", 1) -[2617653.220] {Default Queue} wl_registry#70.global(8, "wl_shm", 2) -[2617653.226] {Default Queue} -> wl_registry#70.bind(8, "wl_shm", 1, new id [unknown]#29) -[2617653.231] {Default Queue} -> wl_registry#70.bind(8, "wl_shm", 1, new id [unknown]#32) -[2617653.236] {Default Queue} -> wl_registry#70.bind(8, "wl_shm", 1, new id [unknown]#31) -[2617653.240] {Default Queue} wl_registry#70.global(9, "zxdg_output_manager_v1", 3) -[2617653.252] {Default Queue} wl_registry#70.global(10, "wp_fractional_scale_manager_v1", 1) -[2617653.264] {Default Queue} wl_registry#70.global(11, "zwp_tablet_manager_v2", 1) -[2617653.268] {Default Queue} wl_registry#70.global(12, "zwp_pointer_gestures_v1", 3) -[2617653.273] {Default Queue} wl_registry#70.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617653.278] {Default Queue} -> wl_registry#70.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#34) -[2617653.283] {Default Queue} wl_registry#70.global(14, "zwp_pointer_constraints_v1", 1) -[2617653.288] {Default Queue} -> wl_registry#70.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#33) -[2617653.293] {Default Queue} wl_registry#70.global(15, "ext_idle_notifier_v1", 2) -[2617653.297] {Default Queue} wl_registry#70.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617653.301] {Default Queue} wl_registry#70.global(17, "wl_data_device_manager", 3) -[2617653.307] {Default Queue} -> wl_registry#70.bind(17, "wl_data_device_manager", 2, new id [unknown]#84) -[2617653.312] {Default Queue} -> wl_data_device_manager#84.create_data_source(new id wl_data_source#85) -[2617653.317] {Default Queue} -> wl_data_source#85.offer("text/plain") -[2617653.322] {Default Queue} -> wl_data_source#85.offer("text/plain;charset=utf-8") -[2617653.326] {Default Queue} -> wl_data_source#85.offer("TEXT") -[2617653.330] {Default Queue} -> wl_data_source#85.offer("STRING") -[2617653.334] {Default Queue} -> wl_data_source#85.offer("UTF8_STRING") -[2617653.339] {Default Queue} wl_registry#70.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617653.344] {Default Queue} -> wl_registry#70.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#86) -[2617653.349] {Default Queue} -> zwp_primary_selection_device_manager_v1#86.create_source(new id zwp_primary_selection_source_v1#87) -[2617653.357] {Default Queue} -> zwp_primary_selection_source_v1#87.offer("text/plain") -[2617653.362] {Default Queue} -> zwp_primary_selection_source_v1#87.offer("text/plain;charset=utf-8") -[2617653.366] {Default Queue} -> zwp_primary_selection_source_v1#87.offer("TEXT") -[2617653.370] {Default Queue} -> zwp_primary_selection_source_v1#87.offer("STRING") -[2617653.375] {Default Queue} -> zwp_primary_selection_source_v1#87.offer("UTF8_STRING") -[2617653.379] {Default Queue} wl_registry#70.global(19, "zwlr_data_control_manager_v1", 2) -[2617653.384] {Default Queue} wl_registry#70.global(20, "ext_data_control_manager_v1", 1) -[2617653.389] {Default Queue} wl_registry#70.global(21, "wp_presentation", 2) -[2617653.393] {Default Queue} wl_registry#70.global(22, "wp_security_context_manager_v1", 1) -[2617653.397] {Default Queue} wl_registry#70.global(23, "zwp_text_input_manager_v3", 1) -[2617653.402] {Default Queue} wl_registry#70.global(24, "zwp_input_method_manager_v2", 1) -[2617653.406] {Default Queue} wl_registry#70.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617653.410] {Default Queue} wl_registry#70.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617653.415] {Default Queue} wl_registry#70.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617653.419] {Default Queue} wl_registry#70.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617653.423] {Default Queue} wl_registry#70.global(29, "ext_workspace_manager_v1", 1) -[2617653.428] {Default Queue} wl_registry#70.global(30, "zwlr_output_manager_v1", 4) -[2617653.432] {Default Queue} wl_registry#70.global(31, "zwlr_screencopy_manager_v1", 3) -[2617653.436] {Default Queue} wl_registry#70.global(32, "wp_viewporter", 1) -[2617653.441] {Default Queue} wl_registry#70.global(33, "zxdg_exporter_v2", 1) -[2617653.445] {Default Queue} wl_registry#70.global(34, "zxdg_importer_v2", 1) -[2617653.450] {Default Queue} wl_registry#70.global(36, "xdg_activation_v1", 1) -[2617653.454] {Default Queue} wl_registry#70.global(37, "mutter_x11_interop", 1) -[2617653.458] {Default Queue} wl_registry#70.global(38, "wl_seat", 9) -[2617653.463] {Default Queue} -> wl_registry#70.bind(38, "wl_seat", 1, new id [unknown]#88) -[2617653.468] {Default Queue} wl_registry#70.global(39, "wp_cursor_shape_manager_v1", 2) -[2617653.475] {Default Queue} wl_registry#70.global(40, "wl_output", 4) -[2617653.482] {Default Queue} -> wl_registry#70.bind(40, "wl_output", 1, new id [unknown]#89) -[2617653.487] {Default Queue} wl_callback#71.done(0) -[2617653.492] {Default Queue} -> wl_compositor#4.create_surface(new id wl_surface#71) -[2617653.496] {Default Queue} -> wl_subcompositor#27.get_subsurface(new id wl_subsurface#90, wl_surface#71, wl_surface#3) -[2617653.501] {Default Queue} -> wl_subsurface#90.set_desync() -[2617653.506] {Default Queue} -> wl_subsurface#90.set_position(0, 0) -[2617653.511] {Default Queue} -> wl_subsurface#90.place_above(wl_surface#3) -[2617653.564] {Default Queue} -> wl_shm#29.create_pool(new id wl_shm_pool#91, fd 19, 16) -[2617653.571] {Default Queue} -> wl_shm#29.create_pool(new id wl_shm_pool#92, fd 20, 16) -[2617653.576] {Default Queue} -> wl_shm_pool#91.create_buffer(new id wl_buffer#93, 0, 2, 2, 8, 0) -[2617653.581] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 2, 2, 8, 0) -[2617653.593] {Default Queue} -> wl_surface#71.attach(wl_buffer#93, 0, 0) -[2617653.598] {Default Queue} -> wl_surface#71.commit() -[2617653.603] {Default Queue} -> wl_surface#71.attach(wl_buffer#93, 0, 0) -[2617653.608] {Default Queue} -> wl_surface#71.commit() -[2617653.612] {Default Queue} -> wl_compositor#28.create_region(new id wl_region#95) -[2617653.617] {Default Queue} -> wl_compositor#28.create_region(new id wl_region#96) -[2617653.622] {Default Queue} -> wl_region#95.subtract(0, 0, 2, 2) -[2617653.627] {Default Queue} -> wl_region#95.add(0, 0, 0, 0) -[2617653.632] {Default Queue} -> wl_surface#71.set_opaque_region(wl_region#96) -[2617653.636] {Default Queue} -> wl_surface#71.set_input_region(wl_region#95) -[2617653.641] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) -[2617653.646] {Default Queue} -> wl_surface#3.damage(0, 0, 616, 738) -[2617653.659] {Default Queue} -> wl_surface#71.attach(wl_buffer#93, 0, 0) -[2617653.665] {Default Queue} -> wl_surface#71.commit() -[2617653.704] {Default Queue} -> wl_shm#31.create_pool(new id wl_shm_pool#97, fd 23, 640) -[2617653.711] {Default Queue} -> wl_shm#31.create_pool(new id wl_shm_pool#98, fd 24, 640) -[2617653.716] {Default Queue} -> wl_shm_pool#97.create_buffer(new id wl_buffer#99, 0, 10, 16, 40, 0) -[2617653.721] {Default Queue} -> wl_shm_pool#98.create_buffer(new id wl_buffer#100, 0, 10, 16, 40, 0) -[2617653.728] {Default Queue} -> wl_compositor#28.create_surface(new id wl_surface#101) -[2617653.733] {Default Queue} -> wl_surface#101.attach(wl_buffer#99, 0, 0) -[2617653.737] {Default Queue} -> wl_surface#101.commit() -[2617653.743] {Default Queue} -> wl_surface#101.attach(wl_buffer#99, 0, 0) -[2617653.747] {Default Queue} -> wl_surface#101.commit() -[2617653.757] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) -[2617653.766] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#102) -[2617653.773] {Default Queue} -> wl_display#1.sync(new id wl_callback#103) -[2617658.118] {Default Queue} wl_keyboard#80.keymap(1, fd 19, 68213) -[2617658.135] {Default Queue} wl_keyboard#80.enter(566, wl_surface#19, array[0]) -[2617658.144] {Default Queue} wl_keyboard#80.modifiers(566, 0, 0, 16, 0) -[2617663.114] {Display Queue} wl_display#1.delete_id(103) -[2617663.128] {Default Queue} discarded wl_shm#29.format(875709016) -[2617663.134] {Default Queue} discarded wl_shm#29.format(1) -[2617663.140] {Default Queue} discarded wl_shm#29.format(0) -[2617663.145] {Default Queue} discarded wl_shm#29.format(875708993) -[2617663.150] {Default Queue} discarded wl_shm#32.format(875709016) -[2617663.155] {Default Queue} discarded wl_shm#32.format(1) -[2617663.160] {Default Queue} discarded wl_shm#32.format(0) -[2617663.165] {Default Queue} discarded wl_shm#32.format(875708993) -[2617663.169] {Default Queue} discarded wl_shm#31.format(875709016) -[2617663.174] {Default Queue} discarded wl_shm#31.format(1) -[2617663.179] {Default Queue} discarded wl_shm#31.format(0) -[2617663.184] {Default Queue} discarded wl_shm#31.format(875708993) -[2617663.196] {Default Queue} wl_seat#88.capabilities(7) -[2617663.207] {Default Queue} -> wl_seat#88.get_keyboard(new id wl_keyboard#104) -[2617663.213] {Default Queue} -> wl_seat#88.get_pointer(new id wl_pointer#105) -[2617663.219] {Default Queue} -> wl_data_device_manager#84.get_data_device(new id wl_data_device#106, wl_seat#88) -[2617663.225] {Default Queue} -> zwp_primary_selection_device_manager_v1#86.get_device(new id zwp_primary_selection_device_v1#107, wl_seat#88) -[2617663.236] {Default Queue} wl_output#89.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617663.242] {Default Queue} wl_output#89.mode(3, 1280, 800, 60000) -[2617663.248] {Default Queue} discarded wl_surface#3.enter(wl_output#89) -[2617663.254] {Default Queue} discarded wl_surface#43.enter(wl_output#89) -[2617663.259] {Default Queue} discarded wl_surface#19.enter(wl_output#89) -[2617663.264] {Default Queue} wl_registry#102.global(1, "wl_compositor", 6) -[2617663.271] {Default Queue} -> wl_registry#102.bind(1, "wl_compositor", 1, new id [unknown]#108) -[2617663.277] {Default Queue} wl_registry#102.global(2, "wl_subcompositor", 1) -[2617663.283] {Default Queue} -> wl_registry#102.bind(2, "wl_subcompositor", 1, new id [unknown]#109) -[2617663.291] {Default Queue} wl_registry#102.global(3, "xdg_wm_base", 6) -[2617663.300] {Default Queue} -> wl_registry#102.bind(3, "xdg_wm_base", 1, new id [unknown]#110) -[2617663.310] {Default Queue} wl_registry#102.global(6, "zwlr_layer_shell_v1", 5) -[2617663.319] {Default Queue} wl_registry#102.global(7, "ext_session_lock_manager_v1", 1) -[2617663.328] {Default Queue} wl_registry#102.global(8, "wl_shm", 2) -[2617663.338] {Default Queue} -> wl_registry#102.bind(8, "wl_shm", 1, new id [unknown]#111) -[2617663.346] {Default Queue} -> wl_registry#102.bind(8, "wl_shm", 1, new id [unknown]#112) -[2617663.354] {Default Queue} -> wl_registry#102.bind(8, "wl_shm", 1, new id [unknown]#113) -[2617663.360] {Default Queue} wl_registry#102.global(9, "zxdg_output_manager_v1", 3) -[2617663.365] {Default Queue} wl_registry#102.global(10, "wp_fractional_scale_manager_v1", 1) -[2617663.371] {Default Queue} wl_registry#102.global(11, "zwp_tablet_manager_v2", 1) -[2617663.376] {Default Queue} wl_registry#102.global(12, "zwp_pointer_gestures_v1", 3) -[2617663.382] {Default Queue} wl_registry#102.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617663.387] {Default Queue} -> wl_registry#102.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#114) -[2617663.393] {Default Queue} wl_registry#102.global(14, "zwp_pointer_constraints_v1", 1) -[2617663.399] {Default Queue} -> wl_registry#102.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#115) -[2617663.404] {Default Queue} wl_registry#102.global(15, "ext_idle_notifier_v1", 2) -[2617663.410] {Default Queue} wl_registry#102.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617663.415] {Default Queue} wl_registry#102.global(17, "wl_data_device_manager", 3) -[2617663.421] {Default Queue} -> wl_registry#102.bind(17, "wl_data_device_manager", 2, new id [unknown]#116) -[2617663.426] {Default Queue} -> wl_data_device_manager#116.create_data_source(new id wl_data_source#117) -[2617663.432] {Default Queue} -> wl_data_source#117.offer("text/plain") -[2617663.437] {Default Queue} -> wl_data_source#117.offer("text/plain;charset=utf-8") -[2617663.442] {Default Queue} -> wl_data_source#117.offer("TEXT") -[2617663.447] {Default Queue} -> wl_data_source#117.offer("STRING") -[2617663.453] {Default Queue} -> wl_data_source#117.offer("UTF8_STRING") -[2617663.458] {Default Queue} wl_registry#102.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617663.464] {Default Queue} -> wl_registry#102.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#118) -[2617663.470] {Default Queue} -> zwp_primary_selection_device_manager_v1#118.create_source(new id zwp_primary_selection_source_v1#119) -[2617663.480] {Default Queue} -> zwp_primary_selection_source_v1#119.offer("text/plain") -[2617663.485] {Default Queue} -> zwp_primary_selection_source_v1#119.offer("text/plain;charset=utf-8") -[2617663.495] {Default Queue} -> zwp_primary_selection_source_v1#119.offer("TEXT") -[2617663.503] {Default Queue} -> zwp_primary_selection_source_v1#119.offer("STRING") -[2617663.508] {Default Queue} -> zwp_primary_selection_source_v1#119.offer("UTF8_STRING") -[2617663.513] {Default Queue} wl_registry#102.global(19, "zwlr_data_control_manager_v1", 2) -[2617663.519] {Default Queue} wl_registry#102.global(20, "ext_data_control_manager_v1", 1) -[2617663.524] {Default Queue} wl_registry#102.global(21, "wp_presentation", 2) -[2617663.530] {Default Queue} wl_registry#102.global(22, "wp_security_context_manager_v1", 1) -[2617663.535] {Default Queue} wl_registry#102.global(23, "zwp_text_input_manager_v3", 1) -[2617663.540] {Default Queue} wl_registry#102.global(24, "zwp_input_method_manager_v2", 1) -[2617663.546] {Default Queue} wl_registry#102.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617663.552] {Default Queue} wl_registry#102.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617663.557] {Default Queue} wl_registry#102.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617663.563] {Default Queue} wl_registry#102.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617663.568] {Default Queue} wl_registry#102.global(29, "ext_workspace_manager_v1", 1) -[2617663.574] {Default Queue} wl_registry#102.global(30, "zwlr_output_manager_v1", 4) -[2617663.579] {Default Queue} wl_registry#102.global(31, "zwlr_screencopy_manager_v1", 3) -[2617663.585] {Default Queue} wl_registry#102.global(32, "wp_viewporter", 1) -[2617663.590] {Default Queue} wl_registry#102.global(33, "zxdg_exporter_v2", 1) -[2617663.596] {Default Queue} wl_registry#102.global(34, "zxdg_importer_v2", 1) -[2617663.601] {Default Queue} wl_registry#102.global(36, "xdg_activation_v1", 1) -[2617663.607] {Default Queue} wl_registry#102.global(37, "mutter_x11_interop", 1) -[2617663.612] {Default Queue} wl_registry#102.global(38, "wl_seat", 9) -[2617663.618] {Default Queue} -> wl_registry#102.bind(38, "wl_seat", 1, new id [unknown]#120) -[2617663.624] {Default Queue} wl_registry#102.global(39, "wp_cursor_shape_manager_v1", 2) -[2617663.629] {Default Queue} wl_registry#102.global(40, "wl_output", 4) -[2617663.635] {Default Queue} -> wl_registry#102.bind(40, "wl_output", 1, new id [unknown]#121) -[2617663.641] {Default Queue} wl_callback#103.done(0) -[2617663.646] {Default Queue} discarded wl_surface#71.enter(wl_output#18) -[2617663.652] {Default Queue} discarded wl_surface#71.enter(wl_output#57) -[2617663.657] {Default Queue} discarded wl_surface#71.enter(wl_output#89) -[2617663.662] {Default Queue} -> wl_compositor#28.create_surface(new id wl_surface#103) -[2617663.667] {Default Queue} -> wl_subcompositor#109.get_subsurface(new id wl_subsurface#122, wl_surface#103, wl_surface#71) -[2617663.673] {Default Queue} -> wl_subsurface#122.set_desync() -[2617663.679] {Default Queue} -> wl_subsurface#122.set_position(0, 0) -[2617663.685] {Default Queue} -> wl_subsurface#122.place_above(wl_surface#71) -[2617663.740] {Default Queue} -> wl_shm#111.create_pool(new id wl_shm_pool#123, fd 24, 16) -[2617663.749] {Default Queue} -> wl_shm#111.create_pool(new id wl_shm_pool#124, fd 25, 16) -[2617663.756] {Default Queue} -> wl_shm_pool#123.create_buffer(new id wl_buffer#125, 0, 2, 2, 8, 0) -[2617663.762] {Default Queue} -> wl_shm_pool#124.create_buffer(new id wl_buffer#126, 0, 2, 2, 8, 0) -[2617663.773] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) -[2617663.780] {Default Queue} -> wl_surface#103.commit() -[2617663.787] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) -[2617663.792] {Default Queue} -> wl_surface#103.commit() -[2617663.798] {Default Queue} -> wl_compositor#108.create_region(new id wl_region#127) -[2617663.804] {Default Queue} -> wl_compositor#108.create_region(new id wl_region#128) -[2617663.810] {Default Queue} -> wl_region#127.subtract(0, 0, 2, 2) -[2617663.815] {Default Queue} -> wl_region#127.add(0, 0, 0, 0) -[2617663.821] {Default Queue} -> wl_surface#103.set_opaque_region(wl_region#128) -[2617663.827] {Default Queue} -> wl_surface#103.set_input_region(wl_region#127) -[2617663.836] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) -[2617663.844] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) -[2617663.853] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) -[2617663.869] {Default Queue} -> wl_surface#103.commit() -[2617663.913] {Default Queue} -> wl_shm#113.create_pool(new id wl_shm_pool#129, fd 28, 640) -[2617663.922] {Default Queue} -> wl_shm#113.create_pool(new id wl_shm_pool#130, fd 29, 640) -[2617663.928] {Default Queue} -> wl_shm_pool#129.create_buffer(new id wl_buffer#131, 0, 10, 16, 40, 0) -[2617663.934] {Default Queue} -> wl_shm_pool#130.create_buffer(new id wl_buffer#132, 0, 10, 16, 40, 0) -[2617663.943] {Default Queue} -> wl_compositor#108.create_surface(new id wl_surface#133) -[2617663.948] {Default Queue} -> wl_surface#133.attach(wl_buffer#131, 0, 0) -[2617663.954] {Default Queue} -> wl_surface#133.commit() -[2617663.961] {Default Queue} -> wl_surface#133.attach(wl_buffer#131, 0, 0) -[2617663.966] {Default Queue} -> wl_surface#133.commit() -[2617663.973] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) -[2617663.984] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#134) -[2617663.990] {Default Queue} -> wl_display#1.sync(new id wl_callback#135) -[2617673.211] {Display Queue} wl_display#1.delete_id(135) -[2617673.226] {Default Queue} wl_keyboard#104.keymap(1, fd 24, 68213) -[2617673.232] {Default Queue} wl_keyboard#104.enter(566, wl_surface#19, array[0]) -[2617673.237] {Default Queue} wl_keyboard#104.modifiers(566, 0, 0, 16, 0) -[2617673.243] {Default Queue} discarded wl_shm#111.format(875709016) -[2617673.247] {Default Queue} discarded wl_shm#111.format(1) -[2617673.251] {Default Queue} discarded wl_shm#111.format(0) -[2617673.255] {Default Queue} discarded wl_shm#111.format(875708993) -[2617673.259] {Default Queue} discarded wl_shm#112.format(875709016) -[2617673.264] {Default Queue} discarded wl_shm#112.format(1) -[2617673.269] {Default Queue} discarded wl_shm#112.format(0) -[2617673.274] {Default Queue} discarded wl_shm#112.format(875708993) -[2617673.278] {Default Queue} discarded wl_shm#113.format(875709016) -[2617673.282] {Default Queue} discarded wl_shm#113.format(1) -[2617673.286] {Default Queue} discarded wl_shm#113.format(0) -[2617673.290] {Default Queue} discarded wl_shm#113.format(875708993) -[2617673.294] {Default Queue} wl_seat#120.capabilities(7) -[2617673.299] {Default Queue} -> wl_seat#120.get_keyboard(new id wl_keyboard#136) -[2617673.304] {Default Queue} -> wl_seat#120.get_pointer(new id wl_pointer#137) -[2617673.309] {Default Queue} -> wl_data_device_manager#116.get_data_device(new id wl_data_device#138, wl_seat#120) -[2617673.314] {Default Queue} -> zwp_primary_selection_device_manager_v1#118.get_device(new id zwp_primary_selection_device_v1#139, wl_seat#120) -[2617673.322] {Default Queue} wl_output#121.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617673.327] {Default Queue} wl_output#121.mode(3, 1280, 800, 60000) -[2617673.332] {Default Queue} discarded wl_surface#3.enter(wl_output#121) -[2617673.336] {Default Queue} discarded wl_surface#43.enter(wl_output#121) -[2617673.340] {Default Queue} discarded wl_surface#19.enter(wl_output#121) -[2617673.344] {Default Queue} discarded wl_surface#71.enter(wl_output#121) -[2617673.348] {Default Queue} wl_registry#134.global(1, "wl_compositor", 6) -[2617673.354] {Default Queue} -> wl_registry#134.bind(1, "wl_compositor", 1, new id [unknown]#140) -[2617673.359] {Default Queue} wl_registry#134.global(2, "wl_subcompositor", 1) -[2617673.363] {Default Queue} -> wl_registry#134.bind(2, "wl_subcompositor", 1, new id [unknown]#141) -[2617673.368] {Default Queue} wl_registry#134.global(3, "xdg_wm_base", 6) -[2617673.373] {Default Queue} -> wl_registry#134.bind(3, "xdg_wm_base", 1, new id [unknown]#142) -[2617673.378] {Default Queue} wl_registry#134.global(6, "zwlr_layer_shell_v1", 5) -[2617673.384] {Default Queue} wl_registry#134.global(7, "ext_session_lock_manager_v1", 1) -[2617673.388] {Default Queue} wl_registry#134.global(8, "wl_shm", 2) -[2617673.393] {Default Queue} -> wl_registry#134.bind(8, "wl_shm", 1, new id [unknown]#143) -[2617673.403] {Default Queue} -> wl_registry#134.bind(8, "wl_shm", 1, new id [unknown]#144) -[2617673.411] {Default Queue} -> wl_registry#134.bind(8, "wl_shm", 1, new id [unknown]#145) -[2617673.416] {Default Queue} wl_registry#134.global(9, "zxdg_output_manager_v1", 3) -[2617673.420] {Default Queue} wl_registry#134.global(10, "wp_fractional_scale_manager_v1", 1) -[2617673.426] {Default Queue} wl_registry#134.global(11, "zwp_tablet_manager_v2", 1) -[2617673.433] {Default Queue} wl_registry#134.global(12, "zwp_pointer_gestures_v1", 3) -[2617673.440] {Default Queue} wl_registry#134.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617673.448] {Default Queue} -> wl_registry#134.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#146) -[2617673.455] {Default Queue} wl_registry#134.global(14, "zwp_pointer_constraints_v1", 1) -[2617673.465] {Default Queue} -> wl_registry#134.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#147) -[2617673.473] {Default Queue} wl_registry#134.global(15, "ext_idle_notifier_v1", 2) -[2617673.480] {Default Queue} wl_registry#134.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617673.485] {Default Queue} wl_registry#134.global(17, "wl_data_device_manager", 3) -[2617673.490] {Default Queue} -> wl_registry#134.bind(17, "wl_data_device_manager", 2, new id [unknown]#148) -[2617673.497] {Default Queue} -> wl_data_device_manager#148.create_data_source(new id wl_data_source#149) -[2617673.510] {Default Queue} -> wl_data_source#149.offer("text/plain") -[2617673.515] {Default Queue} -> wl_data_source#149.offer("text/plain;charset=utf-8") -[2617673.521] {Default Queue} -> wl_data_source#149.offer("TEXT") -[2617673.527] {Default Queue} -> wl_data_source#149.offer("STRING") -[2617673.531] {Default Queue} -> wl_data_source#149.offer("UTF8_STRING") -[2617673.536] {Default Queue} wl_registry#134.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617673.542] {Default Queue} -> wl_registry#134.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#150) -[2617673.547] {Default Queue} -> zwp_primary_selection_device_manager_v1#150.create_source(new id zwp_primary_selection_source_v1#151) -[2617673.555] {Default Queue} -> zwp_primary_selection_source_v1#151.offer("text/plain") -[2617673.559] {Default Queue} -> zwp_primary_selection_source_v1#151.offer("text/plain;charset=utf-8") -[2617673.563] {Default Queue} -> zwp_primary_selection_source_v1#151.offer("TEXT") -[2617673.568] {Default Queue} -> zwp_primary_selection_source_v1#151.offer("STRING") -[2617673.572] {Default Queue} -> zwp_primary_selection_source_v1#151.offer("UTF8_STRING") -[2617673.576] {Default Queue} wl_registry#134.global(19, "zwlr_data_control_manager_v1", 2) -[2617673.581] {Default Queue} wl_registry#134.global(20, "ext_data_control_manager_v1", 1) -[2617673.586] {Default Queue} wl_registry#134.global(21, "wp_presentation", 2) -[2617673.591] {Default Queue} wl_registry#134.global(22, "wp_security_context_manager_v1", 1) -[2617673.596] {Default Queue} wl_registry#134.global(23, "zwp_text_input_manager_v3", 1) -[2617673.602] {Default Queue} wl_registry#134.global(24, "zwp_input_method_manager_v2", 1) -[2617673.607] {Default Queue} wl_registry#134.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617673.611] {Default Queue} wl_registry#134.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617673.616] {Default Queue} wl_registry#134.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617673.620] {Default Queue} wl_registry#134.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617673.625] {Default Queue} wl_registry#134.global(29, "ext_workspace_manager_v1", 1) -[2617673.629] {Default Queue} wl_registry#134.global(30, "zwlr_output_manager_v1", 4) -[2617673.634] {Default Queue} wl_registry#134.global(31, "zwlr_screencopy_manager_v1", 3) -[2617673.638] {Default Queue} wl_registry#134.global(32, "wp_viewporter", 1) -[2617673.643] {Default Queue} wl_registry#134.global(33, "zxdg_exporter_v2", 1) -[2617673.649] {Default Queue} wl_registry#134.global(34, "zxdg_importer_v2", 1) -[2617673.658] {Default Queue} wl_registry#134.global(36, "xdg_activation_v1", 1) -[2617673.665] {Default Queue} wl_registry#134.global(37, "mutter_x11_interop", 1) -[2617673.670] {Default Queue} wl_registry#134.global(38, "wl_seat", 9) -[2617673.675] {Default Queue} -> wl_registry#134.bind(38, "wl_seat", 1, new id [unknown]#152) -[2617673.679] {Default Queue} wl_registry#134.global(39, "wp_cursor_shape_manager_v1", 2) -[2617673.684] {Default Queue} wl_registry#134.global(40, "wl_output", 4) -[2617673.689] {Default Queue} -> wl_registry#134.bind(40, "wl_output", 1, new id [unknown]#153) -[2617673.694] {Default Queue} wl_callback#135.done(0) -[2617673.698] {Default Queue} discarded wl_surface#103.enter(wl_output#18) -[2617673.703] {Default Queue} discarded wl_surface#103.enter(wl_output#57) -[2617673.707] {Default Queue} discarded wl_surface#103.enter(wl_output#89) -[2617673.711] {Default Queue} discarded wl_surface#103.enter(wl_output#121) -[2617673.716] {Default Queue} -> wl_compositor#108.create_surface(new id wl_surface#135) -[2617673.721] {Default Queue} -> wl_subcompositor#141.get_subsurface(new id wl_subsurface#154, wl_surface#135, wl_surface#103) -[2617673.725] {Default Queue} -> wl_subsurface#154.set_desync() -[2617673.730] {Default Queue} -> wl_subsurface#154.set_position(0, 0) -[2617673.735] {Default Queue} -> wl_subsurface#154.place_above(wl_surface#103) -[2617673.782] {Default Queue} -> wl_shm#143.create_pool(new id wl_shm_pool#155, fd 29, 16) -[2617673.790] {Default Queue} -> wl_shm#143.create_pool(new id wl_shm_pool#156, fd 30, 16) -[2617673.796] {Default Queue} -> wl_shm_pool#155.create_buffer(new id wl_buffer#157, 0, 2, 2, 8, 0) -[2617673.800] {Default Queue} -> wl_shm_pool#156.create_buffer(new id wl_buffer#158, 0, 2, 2, 8, 0) -[2617673.809] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) -[2617673.814] {Default Queue} -> wl_surface#135.commit() -[2617673.820] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) -[2617673.824] {Default Queue} -> wl_surface#135.commit() -[2617673.829] {Default Queue} -> wl_compositor#140.create_region(new id wl_region#159) -[2617673.833] {Default Queue} -> wl_compositor#140.create_region(new id wl_region#160) -[2617673.838] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) -[2617673.842] {Default Queue} -> wl_region#159.add(0, 0, 0, 0) -[2617673.847] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2617673.852] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2617673.856] {Default Queue} -> wl_surface#135.damage(0, 0, 2, 2) -[2617673.862] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) -[2617673.878] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) -[2617673.885] {Default Queue} -> wl_surface#135.commit() -[2617673.932] {Default Queue} -> wl_shm#145.create_pool(new id wl_shm_pool#161, fd 33, 640) -[2617673.943] {Default Queue} -> wl_shm#145.create_pool(new id wl_shm_pool#162, fd 34, 640) -[2617673.949] {Default Queue} -> wl_shm_pool#161.create_buffer(new id wl_buffer#163, 0, 10, 16, 40, 0) -[2617673.955] {Default Queue} -> wl_shm_pool#162.create_buffer(new id wl_buffer#164, 0, 10, 16, 40, 0) -[2617673.963] {Default Queue} -> wl_compositor#140.create_surface(new id wl_surface#165) -[2617673.969] {Default Queue} -> wl_surface#165.attach(wl_buffer#163, 0, 0) -[2617673.974] {Default Queue} -> wl_surface#165.commit() -[2617673.980] {Default Queue} -> wl_surface#165.attach(wl_buffer#163, 0, 0) -[2617673.985] {Default Queue} -> wl_surface#165.commit() -[2617673.991] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) -[2617673.998] {Default Queue} -> wl_surface#135.damage(0, 0, 2, 2) -[2617674.004] {Default Queue} -> wl_surface#135.damage(0, 0, 2, 2) -[2617674.014] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#166) -[2617674.020] {Default Queue} -> wl_display#1.sync(new id wl_callback#167) -[2617684.121] {Display Queue} wl_display#1.delete_id(167) -[2617684.139] {Default Queue} wl_keyboard#136.keymap(1, fd 29, 68213) -[2617684.145] {Default Queue} wl_keyboard#136.enter(566, wl_surface#19, array[0]) -[2617684.158] {Default Queue} wl_keyboard#136.modifiers(566, 0, 0, 16, 0) -[2617684.168] {Default Queue} discarded wl_shm#143.format(875709016) -[2617684.173] {Default Queue} discarded wl_shm#143.format(1) -[2617684.177] {Default Queue} discarded wl_shm#143.format(0) -[2617684.181] {Default Queue} discarded wl_shm#143.format(875708993) -[2617684.185] {Default Queue} discarded wl_shm#144.format(875709016) -[2617684.189] {Default Queue} discarded wl_shm#144.format(1) -[2617684.193] {Default Queue} discarded wl_shm#144.format(0) -[2617684.197] {Default Queue} discarded wl_shm#144.format(875708993) -[2617684.201] {Default Queue} discarded wl_shm#145.format(875709016) -[2617684.205] {Default Queue} discarded wl_shm#145.format(1) -[2617684.209] {Default Queue} discarded wl_shm#145.format(0) -[2617684.212] {Default Queue} discarded wl_shm#145.format(875708993) -[2617684.216] {Default Queue} wl_seat#152.capabilities(7) -[2617684.221] {Default Queue} -> wl_seat#152.get_keyboard(new id wl_keyboard#168) -[2617684.227] {Default Queue} -> wl_seat#152.get_pointer(new id wl_pointer#169) -[2617684.231] {Default Queue} -> wl_data_device_manager#148.get_data_device(new id wl_data_device#170, wl_seat#152) -[2617684.236] {Default Queue} -> zwp_primary_selection_device_manager_v1#150.get_device(new id zwp_primary_selection_device_v1#171, wl_seat#152) -[2617684.245] {Default Queue} wl_output#153.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617684.250] {Default Queue} wl_output#153.mode(3, 1280, 800, 60000) -[2617684.255] {Default Queue} discarded wl_surface#3.enter(wl_output#153) -[2617684.259] {Default Queue} discarded wl_surface#103.enter(wl_output#153) -[2617684.263] {Default Queue} discarded wl_surface#43.enter(wl_output#153) -[2617684.267] {Default Queue} discarded wl_surface#19.enter(wl_output#153) -[2617684.271] {Default Queue} discarded wl_surface#71.enter(wl_output#153) -[2617684.275] {Default Queue} wl_registry#166.global(1, "wl_compositor", 6) -[2617684.281] {Default Queue} -> wl_registry#166.bind(1, "wl_compositor", 1, new id [unknown]#172) -[2617684.285] {Default Queue} wl_registry#166.global(2, "wl_subcompositor", 1) -[2617684.290] {Default Queue} -> wl_registry#166.bind(2, "wl_subcompositor", 1, new id [unknown]#173) -[2617684.295] {Default Queue} wl_registry#166.global(3, "xdg_wm_base", 6) -[2617684.300] {Default Queue} -> wl_registry#166.bind(3, "xdg_wm_base", 1, new id [unknown]#174) -[2617684.305] {Default Queue} wl_registry#166.global(6, "zwlr_layer_shell_v1", 5) -[2617684.309] {Default Queue} wl_registry#166.global(7, "ext_session_lock_manager_v1", 1) -[2617684.314] {Default Queue} wl_registry#166.global(8, "wl_shm", 2) -[2617684.318] {Default Queue} -> wl_registry#166.bind(8, "wl_shm", 1, new id [unknown]#175) -[2617684.324] {Default Queue} -> wl_registry#166.bind(8, "wl_shm", 1, new id [unknown]#176) -[2617684.328] {Default Queue} -> wl_registry#166.bind(8, "wl_shm", 1, new id [unknown]#177) -[2617684.332] {Default Queue} wl_registry#166.global(9, "zxdg_output_manager_v1", 3) -[2617684.337] {Default Queue} wl_registry#166.global(10, "wp_fractional_scale_manager_v1", 1) -[2617684.341] {Default Queue} wl_registry#166.global(11, "zwp_tablet_manager_v2", 1) -[2617684.345] {Default Queue} wl_registry#166.global(12, "zwp_pointer_gestures_v1", 3) -[2617684.350] {Default Queue} wl_registry#166.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617684.354] {Default Queue} -> wl_registry#166.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#178) -[2617684.359] {Default Queue} wl_registry#166.global(14, "zwp_pointer_constraints_v1", 1) -[2617684.364] {Default Queue} -> wl_registry#166.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#179) -[2617684.369] {Default Queue} wl_registry#166.global(15, "ext_idle_notifier_v1", 2) -[2617684.373] {Default Queue} wl_registry#166.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617684.377] {Default Queue} wl_registry#166.global(17, "wl_data_device_manager", 3) -[2617684.382] {Default Queue} -> wl_registry#166.bind(17, "wl_data_device_manager", 2, new id [unknown]#180) -[2617684.388] {Default Queue} -> wl_data_device_manager#180.create_data_source(new id wl_data_source#181) -[2617684.395] {Default Queue} -> wl_data_source#181.offer("text/plain") -[2617684.401] {Default Queue} -> wl_data_source#181.offer("text/plain;charset=utf-8") -[2617684.406] {Default Queue} -> wl_data_source#181.offer("TEXT") -[2617684.410] {Default Queue} -> wl_data_source#181.offer("STRING") -[2617684.414] {Default Queue} -> wl_data_source#181.offer("UTF8_STRING") -[2617684.418] {Default Queue} wl_registry#166.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617684.423] {Default Queue} -> wl_registry#166.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#182) -[2617684.428] {Default Queue} -> zwp_primary_selection_device_manager_v1#182.create_source(new id zwp_primary_selection_source_v1#183) -[2617684.435] {Default Queue} -> zwp_primary_selection_source_v1#183.offer("text/plain") -[2617684.439] {Default Queue} -> zwp_primary_selection_source_v1#183.offer("text/plain;charset=utf-8") -[2617684.443] {Default Queue} -> zwp_primary_selection_source_v1#183.offer("TEXT") -[2617684.448] {Default Queue} -> zwp_primary_selection_source_v1#183.offer("STRING") -[2617684.452] {Default Queue} -> zwp_primary_selection_source_v1#183.offer("UTF8_STRING") -[2617684.456] {Default Queue} wl_registry#166.global(19, "zwlr_data_control_manager_v1", 2) -[2617684.461] {Default Queue} wl_registry#166.global(20, "ext_data_control_manager_v1", 1) -[2617684.465] {Default Queue} wl_registry#166.global(21, "wp_presentation", 2) -[2617684.470] {Default Queue} wl_registry#166.global(22, "wp_security_context_manager_v1", 1) -[2617684.474] {Default Queue} wl_registry#166.global(23, "zwp_text_input_manager_v3", 1) -[2617684.479] {Default Queue} wl_registry#166.global(24, "zwp_input_method_manager_v2", 1) -[2617684.483] {Default Queue} wl_registry#166.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617684.487] {Default Queue} wl_registry#166.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617684.492] {Default Queue} wl_registry#166.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617684.496] {Default Queue} wl_registry#166.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617684.501] {Default Queue} wl_registry#166.global(29, "ext_workspace_manager_v1", 1) -[2617684.505] {Default Queue} wl_registry#166.global(30, "zwlr_output_manager_v1", 4) -[2617684.509] {Default Queue} wl_registry#166.global(31, "zwlr_screencopy_manager_v1", 3) -[2617684.514] {Default Queue} wl_registry#166.global(32, "wp_viewporter", 1) -[2617684.518] {Default Queue} wl_registry#166.global(33, "zxdg_exporter_v2", 1) -[2617684.523] {Default Queue} wl_registry#166.global(34, "zxdg_importer_v2", 1) -[2617684.528] {Default Queue} wl_registry#166.global(36, "xdg_activation_v1", 1) -[2617684.532] {Default Queue} wl_registry#166.global(37, "mutter_x11_interop", 1) -[2617684.536] {Default Queue} wl_registry#166.global(38, "wl_seat", 9) -[2617684.541] {Default Queue} -> wl_registry#166.bind(38, "wl_seat", 1, new id [unknown]#184) -[2617684.546] {Default Queue} wl_registry#166.global(39, "wp_cursor_shape_manager_v1", 2) -[2617684.550] {Default Queue} wl_registry#166.global(40, "wl_output", 4) -[2617684.555] {Default Queue} -> wl_registry#166.bind(40, "wl_output", 1, new id [unknown]#185) -[2617684.559] {Default Queue} wl_callback#167.done(0) -[2617684.564] {Default Queue} discarded wl_surface#135.enter(wl_output#18) -[2617684.569] {Default Queue} discarded wl_surface#135.enter(wl_output#57) -[2617684.573] {Default Queue} discarded wl_surface#135.enter(wl_output#89) -[2617684.576] {Default Queue} discarded wl_surface#135.enter(wl_output#121) -[2617684.581] {Default Queue} discarded wl_surface#135.enter(wl_output#153) -[2617684.585] {Default Queue} -> wl_compositor#140.create_surface(new id wl_surface#167) -[2617684.590] {Default Queue} -> wl_subcompositor#173.get_subsurface(new id wl_subsurface#186, wl_surface#167, wl_surface#135) -[2617684.595] {Default Queue} -> wl_subsurface#186.set_desync() -[2617684.599] {Default Queue} -> wl_subsurface#186.set_position(0, 0) -[2617684.603] {Default Queue} -> wl_subsurface#186.place_above(wl_surface#135) -[2617684.657] {Default Queue} -> wl_shm#175.create_pool(new id wl_shm_pool#187, fd 34, 16) -[2617684.666] {Default Queue} -> wl_shm#175.create_pool(new id wl_shm_pool#188, fd 35, 16) -[2617684.671] {Default Queue} -> wl_shm_pool#187.create_buffer(new id wl_buffer#189, 0, 2, 2, 8, 0) -[2617684.676] {Default Queue} -> wl_shm_pool#188.create_buffer(new id wl_buffer#190, 0, 2, 2, 8, 0) -[2617684.686] {Default Queue} -> wl_surface#167.attach(wl_buffer#189, 0, 0) -[2617684.691] {Default Queue} -> wl_surface#167.commit() -[2617684.696] {Default Queue} -> wl_surface#167.attach(wl_buffer#189, 0, 0) -[2617684.701] {Default Queue} -> wl_surface#167.commit() -[2617684.705] {Default Queue} -> wl_compositor#172.create_region(new id wl_region#191) -[2617684.709] {Default Queue} -> wl_compositor#172.create_region(new id wl_region#192) -[2617684.713] {Default Queue} -> wl_region#191.subtract(0, 0, 2, 2) -[2617684.718] {Default Queue} -> wl_region#191.add(0, 0, 0, 0) -[2617684.722] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) -[2617684.726] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) -[2617684.731] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) -[2617684.735] {Default Queue} -> wl_surface#135.damage(0, 0, 2, 2) -[2617684.746] {Default Queue} -> wl_surface#167.attach(wl_buffer#189, 0, 0) -[2617684.751] {Default Queue} -> wl_surface#167.commit() -[2617684.783] {Default Queue} -> wl_shm#177.create_pool(new id wl_shm_pool#193, fd 38, 640) -[2617684.790] {Default Queue} -> wl_shm#177.create_pool(new id wl_shm_pool#194, fd 39, 640) -[2617684.795] {Default Queue} -> wl_shm_pool#193.create_buffer(new id wl_buffer#195, 0, 10, 16, 40, 0) -[2617684.799] {Default Queue} -> wl_shm_pool#194.create_buffer(new id wl_buffer#196, 0, 10, 16, 40, 0) -[2617684.806] {Default Queue} -> wl_compositor#172.create_surface(new id wl_surface#197) -[2617684.811] {Default Queue} -> wl_surface#197.attach(wl_buffer#195, 0, 0) -[2617684.815] {Default Queue} -> wl_surface#197.commit() -[2617684.821] {Default Queue} -> wl_surface#197.attach(wl_buffer#195, 0, 0) -[2617684.826] {Default Queue} -> wl_surface#197.commit() -[2617684.832] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) -[2617684.840] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#198) -[2617684.846] {Default Queue} -> wl_display#1.sync(new id wl_callback#199) -[2617693.217] {Display Queue} wl_display#1.delete_id(199) -[2617693.230] {Default Queue} wl_keyboard#168.keymap(1, fd 34, 68213) -[2617693.236] {Default Queue} wl_keyboard#168.enter(566, wl_surface#19, array[0]) -[2617693.243] {Default Queue} wl_keyboard#168.modifiers(566, 0, 0, 16, 0) -[2617693.249] {Default Queue} discarded wl_shm#175.format(875709016) -[2617693.255] {Default Queue} discarded wl_shm#175.format(1) -[2617693.260] {Default Queue} discarded wl_shm#175.format(0) -[2617693.265] {Default Queue} discarded wl_shm#175.format(875708993) -[2617693.270] {Default Queue} discarded wl_shm#176.format(875709016) -[2617693.275] {Default Queue} discarded wl_shm#176.format(1) -[2617693.280] {Default Queue} discarded wl_shm#176.format(0) -[2617693.285] {Default Queue} discarded wl_shm#176.format(875708993) -[2617693.290] {Default Queue} discarded wl_shm#177.format(875709016) -[2617693.295] {Default Queue} discarded wl_shm#177.format(1) -[2617693.300] {Default Queue} discarded wl_shm#177.format(0) -[2617693.305] {Default Queue} discarded wl_shm#177.format(875708993) -[2617693.310] {Default Queue} wl_seat#184.capabilities(7) -[2617693.316] {Default Queue} -> wl_seat#184.get_keyboard(new id wl_keyboard#200) -[2617693.321] {Default Queue} -> wl_seat#184.get_pointer(new id wl_pointer#201) -[2617693.327] {Default Queue} -> wl_data_device_manager#180.get_data_device(new id wl_data_device#202, wl_seat#184) -[2617693.334] {Default Queue} -> zwp_primary_selection_device_manager_v1#182.get_device(new id zwp_primary_selection_device_v1#203, wl_seat#184) -[2617693.344] {Default Queue} wl_output#185.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617693.357] {Default Queue} wl_output#185.mode(3, 1280, 800, 60000) -[2617693.367] {Default Queue} discarded wl_surface#3.enter(wl_output#185) -[2617693.372] {Default Queue} discarded wl_surface#135.enter(wl_output#185) -[2617693.377] {Default Queue} discarded wl_surface#103.enter(wl_output#185) -[2617693.383] {Default Queue} discarded wl_surface#43.enter(wl_output#185) -[2617693.388] {Default Queue} discarded wl_surface#19.enter(wl_output#185) -[2617693.393] {Default Queue} discarded wl_surface#71.enter(wl_output#185) -[2617693.398] {Default Queue} wl_registry#198.global(1, "wl_compositor", 6) -[2617693.405] {Default Queue} -> wl_registry#198.bind(1, "wl_compositor", 1, new id [unknown]#204) -[2617693.412] {Default Queue} wl_registry#198.global(2, "wl_subcompositor", 1) -[2617693.418] {Default Queue} -> wl_registry#198.bind(2, "wl_subcompositor", 1, new id [unknown]#205) -[2617693.426] {Default Queue} wl_registry#198.global(3, "xdg_wm_base", 6) -[2617693.437] {Default Queue} -> wl_registry#198.bind(3, "xdg_wm_base", 1, new id [unknown]#206) -[2617693.446] {Default Queue} wl_registry#198.global(6, "zwlr_layer_shell_v1", 5) -[2617693.455] {Default Queue} wl_registry#198.global(7, "ext_session_lock_manager_v1", 1) -[2617693.465] {Default Queue} wl_registry#198.global(8, "wl_shm", 2) -[2617693.474] {Default Queue} -> wl_registry#198.bind(8, "wl_shm", 1, new id [unknown]#207) -[2617693.482] {Default Queue} -> wl_registry#198.bind(8, "wl_shm", 1, new id [unknown]#208) -[2617693.489] {Default Queue} -> wl_registry#198.bind(8, "wl_shm", 1, new id [unknown]#209) -[2617693.495] {Default Queue} wl_registry#198.global(9, "zxdg_output_manager_v1", 3) -[2617693.500] {Default Queue} wl_registry#198.global(10, "wp_fractional_scale_manager_v1", 1) -[2617693.506] {Default Queue} wl_registry#198.global(11, "zwp_tablet_manager_v2", 1) -[2617693.512] {Default Queue} wl_registry#198.global(12, "zwp_pointer_gestures_v1", 3) -[2617693.517] {Default Queue} wl_registry#198.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617693.524] {Default Queue} -> wl_registry#198.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#210) -[2617693.529] {Default Queue} wl_registry#198.global(14, "zwp_pointer_constraints_v1", 1) -[2617693.536] {Default Queue} -> wl_registry#198.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#211) -[2617693.542] {Default Queue} wl_registry#198.global(15, "ext_idle_notifier_v1", 2) -[2617693.547] {Default Queue} wl_registry#198.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617693.553] {Default Queue} wl_registry#198.global(17, "wl_data_device_manager", 3) -[2617693.559] {Default Queue} -> wl_registry#198.bind(17, "wl_data_device_manager", 2, new id [unknown]#212) -[2617693.564] {Default Queue} -> wl_data_device_manager#212.create_data_source(new id wl_data_source#213) -[2617693.570] {Default Queue} -> wl_data_source#213.offer("text/plain") -[2617693.575] {Default Queue} -> wl_data_source#213.offer("text/plain;charset=utf-8") -[2617693.581] {Default Queue} -> wl_data_source#213.offer("TEXT") -[2617693.586] {Default Queue} -> wl_data_source#213.offer("STRING") -[2617693.591] {Default Queue} -> wl_data_source#213.offer("UTF8_STRING") -[2617693.596] {Default Queue} wl_registry#198.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617693.602] {Default Queue} -> wl_registry#198.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#214) -[2617693.608] {Default Queue} -> zwp_primary_selection_device_manager_v1#214.create_source(new id zwp_primary_selection_source_v1#215) -[2617693.618] {Default Queue} -> zwp_primary_selection_source_v1#215.offer("text/plain") -[2617693.623] {Default Queue} -> zwp_primary_selection_source_v1#215.offer("text/plain;charset=utf-8") -[2617693.628] {Default Queue} -> zwp_primary_selection_source_v1#215.offer("TEXT") -[2617693.633] {Default Queue} -> zwp_primary_selection_source_v1#215.offer("STRING") -[2617693.639] {Default Queue} -> zwp_primary_selection_source_v1#215.offer("UTF8_STRING") -[2617693.644] {Default Queue} wl_registry#198.global(19, "zwlr_data_control_manager_v1", 2) -[2617693.656] {Default Queue} wl_registry#198.global(20, "ext_data_control_manager_v1", 1) -[2617693.663] {Default Queue} wl_registry#198.global(21, "wp_presentation", 2) -[2617693.669] {Default Queue} wl_registry#198.global(22, "wp_security_context_manager_v1", 1) -[2617693.675] {Default Queue} wl_registry#198.global(23, "zwp_text_input_manager_v3", 1) -[2617693.681] {Default Queue} wl_registry#198.global(24, "zwp_input_method_manager_v2", 1) -[2617693.686] {Default Queue} wl_registry#198.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617693.692] {Default Queue} wl_registry#198.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617693.697] {Default Queue} wl_registry#198.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617693.703] {Default Queue} wl_registry#198.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617693.709] {Default Queue} wl_registry#198.global(29, "ext_workspace_manager_v1", 1) -[2617693.715] {Default Queue} wl_registry#198.global(30, "zwlr_output_manager_v1", 4) -[2617693.720] {Default Queue} wl_registry#198.global(31, "zwlr_screencopy_manager_v1", 3) -[2617693.725] {Default Queue} wl_registry#198.global(32, "wp_viewporter", 1) -[2617693.731] {Default Queue} wl_registry#198.global(33, "zxdg_exporter_v2", 1) -[2617693.736] {Default Queue} wl_registry#198.global(34, "zxdg_importer_v2", 1) -[2617693.742] {Default Queue} wl_registry#198.global(36, "xdg_activation_v1", 1) -[2617693.747] {Default Queue} wl_registry#198.global(37, "mutter_x11_interop", 1) -[2617693.753] {Default Queue} wl_registry#198.global(38, "wl_seat", 9) -[2617693.759] {Default Queue} -> wl_registry#198.bind(38, "wl_seat", 1, new id [unknown]#216) -[2617693.765] {Default Queue} wl_registry#198.global(39, "wp_cursor_shape_manager_v1", 2) -[2617693.770] {Default Queue} wl_registry#198.global(40, "wl_output", 4) -[2617693.776] {Default Queue} -> wl_registry#198.bind(40, "wl_output", 1, new id [unknown]#217) -[2617693.781] {Default Queue} wl_callback#199.done(0) -[2617693.787] {Default Queue} discarded wl_surface#167.enter(wl_output#18) -[2617693.792] {Default Queue} discarded wl_surface#167.enter(wl_output#57) -[2617693.797] {Default Queue} discarded wl_surface#167.enter(wl_output#89) -[2617693.802] {Default Queue} discarded wl_surface#167.enter(wl_output#121) -[2617693.807] {Default Queue} discarded wl_surface#167.enter(wl_output#153) -[2617693.811] {Default Queue} discarded wl_surface#167.enter(wl_output#185) -[2617693.817] {Default Queue} -> wl_compositor#172.create_surface(new id wl_surface#199) -[2617693.822] {Default Queue} -> wl_subcompositor#205.get_subsurface(new id wl_subsurface#218, wl_surface#199, wl_surface#167) -[2617693.828] {Default Queue} -> wl_subsurface#218.set_desync() -[2617693.834] {Default Queue} -> wl_subsurface#218.set_position(0, 0) -[2617693.840] {Default Queue} -> wl_subsurface#218.place_above(wl_surface#167) -[2617693.906] {Default Queue} -> wl_shm#207.create_pool(new id wl_shm_pool#219, fd 39, 16) -[2617693.915] {Default Queue} -> wl_shm#207.create_pool(new id wl_shm_pool#220, fd 40, 16) -[2617693.921] {Default Queue} -> wl_shm_pool#219.create_buffer(new id wl_buffer#221, 0, 2, 2, 8, 0) -[2617693.927] {Default Queue} -> wl_shm_pool#220.create_buffer(new id wl_buffer#222, 0, 2, 2, 8, 0) -[2617693.938] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) -[2617693.943] {Default Queue} -> wl_surface#199.commit() -[2617693.951] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) -[2617693.956] {Default Queue} -> wl_surface#199.commit() -[2617693.962] {Default Queue} -> wl_compositor#204.create_region(new id wl_region#223) -[2617693.968] {Default Queue} -> wl_compositor#204.create_region(new id wl_region#224) -[2617693.973] {Default Queue} -> wl_region#223.subtract(0, 0, 2, 2) -[2617693.979] {Default Queue} -> wl_region#223.add(0, 0, 0, 0) -[2617693.984] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2617693.990] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2617693.995] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2617694.001] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) -[2617694.016] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) -[2617694.024] {Default Queue} -> wl_surface#199.commit() -[2617694.067] {Default Queue} -> wl_shm#209.create_pool(new id wl_shm_pool#225, fd 43, 640) -[2617694.075] {Default Queue} -> wl_shm#209.create_pool(new id wl_shm_pool#226, fd 44, 640) -[2617694.081] {Default Queue} -> wl_shm_pool#225.create_buffer(new id wl_buffer#227, 0, 10, 16, 40, 0) -[2617694.088] {Default Queue} -> wl_shm_pool#226.create_buffer(new id wl_buffer#228, 0, 10, 16, 40, 0) -[2617694.097] {Default Queue} -> wl_compositor#204.create_surface(new id wl_surface#229) -[2617694.102] {Default Queue} -> wl_surface#229.attach(wl_buffer#227, 0, 0) -[2617694.109] {Default Queue} -> wl_surface#229.commit() -[2617694.114] {Default Queue} -> wl_surface#229.attach(wl_buffer#227, 0, 0) -[2617694.119] {Default Queue} -> wl_surface#229.commit() -[2617694.125] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) -[2617694.131] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2617694.135] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2617694.143] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#230) -[2617694.149] {Default Queue} -> wl_display#1.sync(new id wl_callback#231) -[2617703.232] {Display Queue} wl_display#1.delete_id(231) -[2617703.243] {Default Queue} wl_keyboard#200.keymap(1, fd 39, 68213) -[2617703.249] {Default Queue} wl_keyboard#200.enter(566, wl_surface#19, array[0]) -[2617703.255] {Default Queue} wl_keyboard#200.modifiers(566, 0, 0, 16, 0) -[2617703.262] {Default Queue} discarded wl_shm#207.format(875709016) -[2617703.267] {Default Queue} discarded wl_shm#207.format(1) -[2617703.272] {Default Queue} discarded wl_shm#207.format(0) -[2617703.277] {Default Queue} discarded wl_shm#207.format(875708993) -[2617703.282] {Default Queue} discarded wl_shm#208.format(875709016) -[2617703.288] {Default Queue} discarded wl_shm#208.format(1) -[2617703.295] {Default Queue} discarded wl_shm#208.format(0) -[2617703.303] {Default Queue} discarded wl_shm#208.format(875708993) -[2617703.311] {Default Queue} discarded wl_shm#209.format(875709016) -[2617703.319] {Default Queue} discarded wl_shm#209.format(1) -[2617703.327] {Default Queue} discarded wl_shm#209.format(0) -[2617703.338] {Default Queue} discarded wl_shm#209.format(875708993) -[2617703.346] {Default Queue} wl_seat#216.capabilities(7) -[2617703.354] {Default Queue} -> wl_seat#216.get_keyboard(new id wl_keyboard#232) -[2617703.362] {Default Queue} -> wl_seat#216.get_pointer(new id wl_pointer#233) -[2617703.368] {Default Queue} -> wl_data_device_manager#212.get_data_device(new id wl_data_device#234, wl_seat#216) -[2617703.374] {Default Queue} -> zwp_primary_selection_device_manager_v1#214.get_device(new id zwp_primary_selection_device_v1#235, wl_seat#216) -[2617703.384] {Default Queue} wl_output#217.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617703.390] {Default Queue} wl_output#217.mode(3, 1280, 800, 60000) -[2617703.396] {Default Queue} discarded wl_surface#3.enter(wl_output#217) -[2617703.401] {Default Queue} discarded wl_surface#135.enter(wl_output#217) -[2617703.406] {Default Queue} discarded wl_surface#103.enter(wl_output#217) -[2617703.411] {Default Queue} discarded wl_surface#43.enter(wl_output#217) -[2617703.416] {Default Queue} discarded wl_surface#19.enter(wl_output#217) -[2617703.421] {Default Queue} discarded wl_surface#71.enter(wl_output#217) -[2617703.426] {Default Queue} discarded wl_surface#167.enter(wl_output#217) -[2617703.431] {Default Queue} wl_registry#230.global(1, "wl_compositor", 6) -[2617703.437] {Default Queue} -> wl_registry#230.bind(1, "wl_compositor", 1, new id [unknown]#236) -[2617703.443] {Default Queue} wl_registry#230.global(2, "wl_subcompositor", 1) -[2617703.449] {Default Queue} -> wl_registry#230.bind(2, "wl_subcompositor", 1, new id [unknown]#237) -[2617703.455] {Default Queue} wl_registry#230.global(3, "xdg_wm_base", 6) -[2617703.461] {Default Queue} -> wl_registry#230.bind(3, "xdg_wm_base", 1, new id [unknown]#238) -[2617703.467] {Default Queue} wl_registry#230.global(6, "zwlr_layer_shell_v1", 5) -[2617703.477] {Default Queue} wl_registry#230.global(7, "ext_session_lock_manager_v1", 1) -[2617703.486] {Default Queue} wl_registry#230.global(8, "wl_shm", 2) -[2617703.492] {Default Queue} -> wl_registry#230.bind(8, "wl_shm", 1, new id [unknown]#239) -[2617703.498] {Default Queue} -> wl_registry#230.bind(8, "wl_shm", 1, new id [unknown]#240) -[2617703.503] {Default Queue} -> wl_registry#230.bind(8, "wl_shm", 1, new id [unknown]#241) -[2617703.509] {Default Queue} wl_registry#230.global(9, "zxdg_output_manager_v1", 3) -[2617703.515] {Default Queue} wl_registry#230.global(10, "wp_fractional_scale_manager_v1", 1) -[2617703.520] {Default Queue} wl_registry#230.global(11, "zwp_tablet_manager_v2", 1) -[2617703.525] {Default Queue} wl_registry#230.global(12, "zwp_pointer_gestures_v1", 3) -[2617703.531] {Default Queue} wl_registry#230.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617703.537] {Default Queue} -> wl_registry#230.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#242) -[2617703.542] {Default Queue} wl_registry#230.global(14, "zwp_pointer_constraints_v1", 1) -[2617703.548] {Default Queue} -> wl_registry#230.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#243) -[2617703.554] {Default Queue} wl_registry#230.global(15, "ext_idle_notifier_v1", 2) -[2617703.559] {Default Queue} wl_registry#230.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617703.565] {Default Queue} wl_registry#230.global(17, "wl_data_device_manager", 3) -[2617703.571] {Default Queue} -> wl_registry#230.bind(17, "wl_data_device_manager", 2, new id [unknown]#244) -[2617703.576] {Default Queue} -> wl_data_device_manager#244.create_data_source(new id wl_data_source#245) -[2617703.582] {Default Queue} -> wl_data_source#245.offer("text/plain") -[2617703.587] {Default Queue} -> wl_data_source#245.offer("text/plain;charset=utf-8") -[2617703.592] {Default Queue} -> wl_data_source#245.offer("TEXT") -[2617703.597] {Default Queue} -> wl_data_source#245.offer("STRING") -[2617703.602] {Default Queue} -> wl_data_source#245.offer("UTF8_STRING") -[2617703.607] {Default Queue} wl_registry#230.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617703.613] {Default Queue} -> wl_registry#230.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#246) -[2617703.619] {Default Queue} -> zwp_primary_selection_device_manager_v1#246.create_source(new id zwp_primary_selection_source_v1#247) -[2617703.629] {Default Queue} -> zwp_primary_selection_source_v1#247.offer("text/plain") -[2617703.634] {Default Queue} -> zwp_primary_selection_source_v1#247.offer("text/plain;charset=utf-8") -[2617703.639] {Default Queue} -> zwp_primary_selection_source_v1#247.offer("TEXT") -[2617703.644] {Default Queue} -> zwp_primary_selection_source_v1#247.offer("STRING") -[2617703.649] {Default Queue} -> zwp_primary_selection_source_v1#247.offer("UTF8_STRING") -[2617703.655] {Default Queue} wl_registry#230.global(19, "zwlr_data_control_manager_v1", 2) -[2617703.660] {Default Queue} wl_registry#230.global(20, "ext_data_control_manager_v1", 1) -[2617703.666] {Default Queue} wl_registry#230.global(21, "wp_presentation", 2) -[2617703.671] {Default Queue} wl_registry#230.global(22, "wp_security_context_manager_v1", 1) -[2617703.677] {Default Queue} wl_registry#230.global(23, "zwp_text_input_manager_v3", 1) -[2617703.682] {Default Queue} wl_registry#230.global(24, "zwp_input_method_manager_v2", 1) -[2617703.688] {Default Queue} wl_registry#230.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617703.693] {Default Queue} wl_registry#230.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617703.699] {Default Queue} wl_registry#230.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617703.704] {Default Queue} wl_registry#230.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617703.710] {Default Queue} wl_registry#230.global(29, "ext_workspace_manager_v1", 1) -[2617703.715] {Default Queue} wl_registry#230.global(30, "zwlr_output_manager_v1", 4) -[2617703.720] {Default Queue} wl_registry#230.global(31, "zwlr_screencopy_manager_v1", 3) -[2617703.730] {Default Queue} wl_registry#230.global(32, "wp_viewporter", 1) -[2617703.737] {Default Queue} wl_registry#230.global(33, "zxdg_exporter_v2", 1) -[2617703.743] {Default Queue} wl_registry#230.global(34, "zxdg_importer_v2", 1) -[2617703.748] {Default Queue} wl_registry#230.global(36, "xdg_activation_v1", 1) -[2617703.753] {Default Queue} wl_registry#230.global(37, "mutter_x11_interop", 1) -[2617703.759] {Default Queue} wl_registry#230.global(38, "wl_seat", 9) -[2617703.765] {Default Queue} -> wl_registry#230.bind(38, "wl_seat", 1, new id [unknown]#248) -[2617703.771] {Default Queue} wl_registry#230.global(39, "wp_cursor_shape_manager_v1", 2) -[2617703.776] {Default Queue} wl_registry#230.global(40, "wl_output", 4) -[2617703.782] {Default Queue} -> wl_registry#230.bind(40, "wl_output", 1, new id [unknown]#249) -[2617703.788] {Default Queue} wl_callback#231.done(0) -[2617703.795] {Default Queue} discarded wl_surface#199.enter(wl_output#18) -[2617703.800] {Default Queue} discarded wl_surface#199.enter(wl_output#57) -[2617703.805] {Default Queue} discarded wl_surface#199.enter(wl_output#89) -[2617703.810] {Default Queue} discarded wl_surface#199.enter(wl_output#121) -[2617703.815] {Default Queue} discarded wl_surface#199.enter(wl_output#153) -[2617703.820] {Default Queue} discarded wl_surface#199.enter(wl_output#185) -[2617703.825] {Default Queue} discarded wl_surface#199.enter(wl_output#217) -[2617703.830] {Default Queue} -> wl_compositor#172.create_surface(new id wl_surface#231) -[2617703.836] {Default Queue} -> wl_subcompositor#237.get_subsurface(new id wl_subsurface#250, wl_surface#231, wl_surface#167) -[2617703.842] {Default Queue} -> wl_subsurface#250.set_desync() -[2617703.847] {Default Queue} -> wl_subsurface#250.set_position(0, 0) -[2617703.853] {Default Queue} -> wl_subsurface#250.place_above(wl_surface#167) -[2617703.919] {Default Queue} -> wl_shm#239.create_pool(new id wl_shm_pool#251, fd 44, 16) -[2617703.928] {Default Queue} -> wl_shm#239.create_pool(new id wl_shm_pool#252, fd 45, 16) -[2617703.934] {Default Queue} -> wl_shm_pool#251.create_buffer(new id wl_buffer#253, 0, 2, 2, 8, 0) -[2617703.940] {Default Queue} -> wl_shm_pool#252.create_buffer(new id wl_buffer#254, 0, 2, 2, 8, 0) -[2617703.949] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) -[2617703.955] {Default Queue} -> wl_surface#231.commit() -[2617703.962] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) -[2617703.968] {Default Queue} -> wl_surface#231.commit() -[2617703.973] {Default Queue} -> wl_compositor#236.create_region(new id wl_region#255) -[2617703.979] {Default Queue} -> wl_compositor#236.create_region(new id wl_region#256) -[2617703.984] {Default Queue} -> wl_region#255.subtract(0, 0, 2, 2) -[2617703.990] {Default Queue} -> wl_region#255.add(0, 0, 0, 0) -[2617703.995] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) -[2617704.000] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) -[2617704.006] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) -[2617704.011] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) -[2617704.021] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) -[2617704.026] {Default Queue} -> wl_surface#231.commit() -[2617704.064] {Default Queue} -> wl_shm#241.create_pool(new id wl_shm_pool#257, fd 48, 640) -[2617704.072] {Default Queue} -> wl_shm#241.create_pool(new id wl_shm_pool#258, fd 49, 640) -[2617704.077] {Default Queue} -> wl_shm_pool#257.create_buffer(new id wl_buffer#259, 0, 10, 16, 40, 0) -[2617704.083] {Default Queue} -> wl_shm_pool#258.create_buffer(new id wl_buffer#260, 0, 10, 16, 40, 0) -[2617704.092] {Default Queue} -> wl_compositor#236.create_surface(new id wl_surface#261) -[2617704.097] {Default Queue} -> wl_surface#261.attach(wl_buffer#259, 0, 0) -[2617704.102] {Default Queue} -> wl_surface#261.commit() -[2617704.109] {Default Queue} -> wl_surface#261.attach(wl_buffer#259, 0, 0) -[2617704.114] {Default Queue} -> wl_surface#261.commit() -[2617704.121] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) -[2617704.131] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#262) -[2617704.140] {Default Queue} -> wl_display#1.sync(new id wl_callback#263) -[2617713.221] {Display Queue} wl_display#1.delete_id(263) -[2617713.232] {Default Queue} wl_keyboard#232.keymap(1, fd 44, 68213) -[2617713.238] {Default Queue} wl_keyboard#232.enter(566, wl_surface#19, array[0]) -[2617713.244] {Default Queue} wl_keyboard#232.modifiers(566, 0, 0, 16, 0) -[2617713.250] {Default Queue} discarded wl_shm#239.format(875709016) -[2617713.255] {Default Queue} discarded wl_shm#239.format(1) -[2617713.260] {Default Queue} discarded wl_shm#239.format(0) -[2617713.265] {Default Queue} discarded wl_shm#239.format(875708993) -[2617713.270] {Default Queue} discarded wl_shm#240.format(875709016) -[2617713.275] {Default Queue} discarded wl_shm#240.format(1) -[2617713.279] {Default Queue} discarded wl_shm#240.format(0) -[2617713.284] {Default Queue} discarded wl_shm#240.format(875708993) -[2617713.289] {Default Queue} discarded wl_shm#241.format(875709016) -[2617713.294] {Default Queue} discarded wl_shm#241.format(1) -[2617713.299] {Default Queue} discarded wl_shm#241.format(0) -[2617713.304] {Default Queue} discarded wl_shm#241.format(875708993) -[2617713.309] {Default Queue} wl_seat#248.capabilities(7) -[2617713.314] {Default Queue} -> wl_seat#248.get_keyboard(new id wl_keyboard#264) -[2617713.320] {Default Queue} -> wl_seat#248.get_pointer(new id wl_pointer#265) -[2617713.326] {Default Queue} -> wl_data_device_manager#244.get_data_device(new id wl_data_device#266, wl_seat#248) -[2617713.332] {Default Queue} -> zwp_primary_selection_device_manager_v1#246.get_device(new id zwp_primary_selection_device_v1#267, wl_seat#248) -[2617713.342] {Default Queue} wl_output#249.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617713.348] {Default Queue} wl_output#249.mode(3, 1280, 800, 60000) -[2617713.354] {Default Queue} discarded wl_surface#3.enter(wl_output#249) -[2617713.359] {Default Queue} discarded wl_surface#135.enter(wl_output#249) -[2617713.364] {Default Queue} discarded wl_surface#103.enter(wl_output#249) -[2617713.369] {Default Queue} discarded wl_surface#43.enter(wl_output#249) -[2617713.374] {Default Queue} discarded wl_surface#19.enter(wl_output#249) -[2617713.379] {Default Queue} discarded wl_surface#199.enter(wl_output#249) -[2617713.384] {Default Queue} discarded wl_surface#71.enter(wl_output#249) -[2617713.389] {Default Queue} discarded wl_surface#167.enter(wl_output#249) -[2617713.394] {Default Queue} wl_registry#262.global(1, "wl_compositor", 6) -[2617713.401] {Default Queue} -> wl_registry#262.bind(1, "wl_compositor", 1, new id [unknown]#268) -[2617713.407] {Default Queue} wl_registry#262.global(2, "wl_subcompositor", 1) -[2617713.413] {Default Queue} -> wl_registry#262.bind(2, "wl_subcompositor", 1, new id [unknown]#269) -[2617713.418] {Default Queue} wl_registry#262.global(3, "xdg_wm_base", 6) -[2617713.424] {Default Queue} -> wl_registry#262.bind(3, "xdg_wm_base", 1, new id [unknown]#270) -[2617713.430] {Default Queue} wl_registry#262.global(6, "zwlr_layer_shell_v1", 5) -[2617713.435] {Default Queue} wl_registry#262.global(7, "ext_session_lock_manager_v1", 1) -[2617713.441] {Default Queue} wl_registry#262.global(8, "wl_shm", 2) -[2617713.447] {Default Queue} -> wl_registry#262.bind(8, "wl_shm", 1, new id [unknown]#271) -[2617713.453] {Default Queue} -> wl_registry#262.bind(8, "wl_shm", 1, new id [unknown]#272) -[2617713.459] {Default Queue} -> wl_registry#262.bind(8, "wl_shm", 1, new id [unknown]#273) -[2617713.464] {Default Queue} wl_registry#262.global(9, "zxdg_output_manager_v1", 3) -[2617713.470] {Default Queue} wl_registry#262.global(10, "wp_fractional_scale_manager_v1", 1) -[2617713.475] {Default Queue} wl_registry#262.global(11, "zwp_tablet_manager_v2", 1) -[2617713.481] {Default Queue} wl_registry#262.global(12, "zwp_pointer_gestures_v1", 3) -[2617713.486] {Default Queue} wl_registry#262.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617713.492] {Default Queue} -> wl_registry#262.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#274) -[2617713.497] {Default Queue} wl_registry#262.global(14, "zwp_pointer_constraints_v1", 1) -[2617713.512] {Default Queue} -> wl_registry#262.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#275) -[2617713.520] {Default Queue} wl_registry#262.global(15, "ext_idle_notifier_v1", 2) -[2617713.526] {Default Queue} wl_registry#262.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617713.531] {Default Queue} wl_registry#262.global(17, "wl_data_device_manager", 3) -[2617713.538] {Default Queue} -> wl_registry#262.bind(17, "wl_data_device_manager", 2, new id [unknown]#276) -[2617713.543] {Default Queue} -> wl_data_device_manager#276.create_data_source(new id wl_data_source#277) -[2617713.548] {Default Queue} -> wl_data_source#277.offer("text/plain") -[2617713.554] {Default Queue} -> wl_data_source#277.offer("text/plain;charset=utf-8") -[2617713.559] {Default Queue} -> wl_data_source#277.offer("TEXT") -[2617713.564] {Default Queue} -> wl_data_source#277.offer("STRING") -[2617713.569] {Default Queue} -> wl_data_source#277.offer("UTF8_STRING") -[2617713.574] {Default Queue} wl_registry#262.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617713.580] {Default Queue} -> wl_registry#262.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#278) -[2617713.586] {Default Queue} -> zwp_primary_selection_device_manager_v1#278.create_source(new id zwp_primary_selection_source_v1#279) -[2617713.595] {Default Queue} -> zwp_primary_selection_source_v1#279.offer("text/plain") -[2617713.601] {Default Queue} -> zwp_primary_selection_source_v1#279.offer("text/plain;charset=utf-8") -[2617713.606] {Default Queue} -> zwp_primary_selection_source_v1#279.offer("TEXT") -[2617713.611] {Default Queue} -> zwp_primary_selection_source_v1#279.offer("STRING") -[2617713.616] {Default Queue} -> zwp_primary_selection_source_v1#279.offer("UTF8_STRING") -[2617713.622] {Default Queue} wl_registry#262.global(19, "zwlr_data_control_manager_v1", 2) -[2617713.628] {Default Queue} wl_registry#262.global(20, "ext_data_control_manager_v1", 1) -[2617713.633] {Default Queue} wl_registry#262.global(21, "wp_presentation", 2) -[2617713.639] {Default Queue} wl_registry#262.global(22, "wp_security_context_manager_v1", 1) -[2617713.644] {Default Queue} wl_registry#262.global(23, "zwp_text_input_manager_v3", 1) -[2617713.650] {Default Queue} wl_registry#262.global(24, "zwp_input_method_manager_v2", 1) -[2617713.655] {Default Queue} wl_registry#262.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617713.661] {Default Queue} wl_registry#262.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617713.667] {Default Queue} wl_registry#262.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617713.672] {Default Queue} wl_registry#262.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617713.677] {Default Queue} wl_registry#262.global(29, "ext_workspace_manager_v1", 1) -[2617713.683] {Default Queue} wl_registry#262.global(30, "zwlr_output_manager_v1", 4) -[2617713.688] {Default Queue} wl_registry#262.global(31, "zwlr_screencopy_manager_v1", 3) -[2617713.694] {Default Queue} wl_registry#262.global(32, "wp_viewporter", 1) -[2617713.699] {Default Queue} wl_registry#262.global(33, "zxdg_exporter_v2", 1) -[2617713.705] {Default Queue} wl_registry#262.global(34, "zxdg_importer_v2", 1) -[2617713.710] {Default Queue} wl_registry#262.global(36, "xdg_activation_v1", 1) -[2617713.715] {Default Queue} wl_registry#262.global(37, "mutter_x11_interop", 1) -[2617713.721] {Default Queue} wl_registry#262.global(38, "wl_seat", 9) -[2617713.726] {Default Queue} -> wl_registry#262.bind(38, "wl_seat", 1, new id [unknown]#280) -[2617713.733] {Default Queue} wl_registry#262.global(39, "wp_cursor_shape_manager_v1", 2) -[2617713.738] {Default Queue} wl_registry#262.global(40, "wl_output", 4) -[2617713.744] {Default Queue} -> wl_registry#262.bind(40, "wl_output", 1, new id [unknown]#281) -[2617713.750] {Default Queue} wl_callback#263.done(0) -[2617713.755] {Default Queue} discarded wl_surface#231.enter(wl_output#18) -[2617713.760] {Default Queue} discarded wl_surface#231.enter(wl_output#57) -[2617713.765] {Default Queue} discarded wl_surface#231.enter(wl_output#89) -[2617713.774] {Default Queue} discarded wl_surface#231.enter(wl_output#121) -[2617713.781] {Default Queue} discarded wl_surface#231.enter(wl_output#153) -[2617713.786] {Default Queue} discarded wl_surface#231.enter(wl_output#185) -[2617713.791] {Default Queue} discarded wl_surface#231.enter(wl_output#217) -[2617713.796] {Default Queue} discarded wl_surface#231.enter(wl_output#249) -[2617713.802] {Default Queue} -> wl_compositor#236.create_surface(new id wl_surface#263) -[2617713.807] {Default Queue} -> wl_subcompositor#269.get_subsurface(new id wl_subsurface#282, wl_surface#263, wl_surface#231) -[2617713.813] {Default Queue} -> wl_subsurface#282.set_desync() -[2617713.818] {Default Queue} -> wl_subsurface#282.set_position(0, 0) -[2617713.824] {Default Queue} -> wl_subsurface#282.place_above(wl_surface#231) -[2617713.880] {Default Queue} -> wl_shm#271.create_pool(new id wl_shm_pool#283, fd 49, 16) -[2617713.890] {Default Queue} -> wl_shm#271.create_pool(new id wl_shm_pool#284, fd 50, 16) -[2617713.896] {Default Queue} -> wl_shm_pool#283.create_buffer(new id wl_buffer#285, 0, 2, 2, 8, 0) -[2617713.902] {Default Queue} -> wl_shm_pool#284.create_buffer(new id wl_buffer#286, 0, 2, 2, 8, 0) -[2617713.912] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) -[2617713.917] {Default Queue} -> wl_surface#263.commit() -[2617713.924] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) -[2617713.930] {Default Queue} -> wl_surface#263.commit() -[2617713.935] {Default Queue} -> wl_compositor#268.create_region(new id wl_region#287) -[2617713.940] {Default Queue} -> wl_compositor#268.create_region(new id wl_region#288) -[2617713.946] {Default Queue} -> wl_region#287.subtract(0, 0, 2, 2) -[2617713.951] {Default Queue} -> wl_region#287.add(0, 0, 0, 0) -[2617713.957] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2617713.962] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2617713.967] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2617713.973] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) -[2617713.982] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) -[2617713.987] {Default Queue} -> wl_surface#263.commit() -[2617714.032] {Default Queue} -> wl_shm#273.create_pool(new id wl_shm_pool#289, fd 53, 640) -[2617714.040] {Default Queue} -> wl_shm#273.create_pool(new id wl_shm_pool#290, fd 54, 640) -[2617714.046] {Default Queue} -> wl_shm_pool#289.create_buffer(new id wl_buffer#291, 0, 10, 16, 40, 0) -[2617714.052] {Default Queue} -> wl_shm_pool#290.create_buffer(new id wl_buffer#292, 0, 10, 16, 40, 0) -[2617714.060] {Default Queue} -> wl_compositor#268.create_surface(new id wl_surface#293) -[2617714.065] {Default Queue} -> wl_surface#293.attach(wl_buffer#291, 0, 0) -[2617714.071] {Default Queue} -> wl_surface#293.commit() -[2617714.077] {Default Queue} -> wl_surface#293.attach(wl_buffer#291, 0, 0) -[2617714.083] {Default Queue} -> wl_surface#293.commit() -[2617714.090] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2617714.107] {Default Queue} -> wl_region#191.subtract(0, 0, 2, 2) -[2617714.114] {Default Queue} -> wl_subsurface#186.set_position(3, 3) -[2617714.121] {Default Queue} -> wl_region#191.subtract(0, 0, 5, 5) -[2617714.126] {Default Queue} -> wl_region#191.add(0, 0, 0, 0) -[2617714.132] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) -[2617714.137] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) -[2617714.143] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2617714.148] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2617714.153] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) -[2617714.157] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) -[2617714.164] {Default Queue} -> wl_region#191.subtract(0, 0, 5, 5) -[2617714.169] {Default Queue} -> wl_region#191.add(0, 0, 0, 0) -[2617714.174] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) -[2617714.178] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) -[2617714.184] {Default Queue} -> wl_surface#167.attach(wl_buffer#189, 0, 0) -[2617714.192] {Default Queue} -> wl_surface#167.commit() -[2617714.202] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#294) -[2617714.207] {Default Queue} -> wl_display#1.sync(new id wl_callback#295) -[2617723.277] {Display Queue} wl_display#1.delete_id(295) -[2617723.295] {Default Queue} wl_keyboard#264.keymap(1, fd 49, 68213) -[2617723.305] {Default Queue} wl_keyboard#264.enter(566, wl_surface#19, array[0]) -[2617723.315] {Default Queue} wl_keyboard#264.modifiers(566, 0, 0, 16, 0) -[2617723.324] {Default Queue} discarded wl_shm#271.format(875709016) -[2617723.332] {Default Queue} discarded wl_shm#271.format(1) -[2617723.340] {Default Queue} discarded wl_shm#271.format(0) -[2617723.348] {Default Queue} discarded wl_shm#271.format(875708993) -[2617723.356] {Default Queue} discarded wl_shm#272.format(875709016) -[2617723.363] {Default Queue} discarded wl_shm#272.format(1) -[2617723.370] {Default Queue} discarded wl_shm#272.format(0) -[2617723.377] {Default Queue} discarded wl_shm#272.format(875708993) -[2617723.382] {Default Queue} discarded wl_shm#273.format(875709016) -[2617723.387] {Default Queue} discarded wl_shm#273.format(1) -[2617723.392] {Default Queue} discarded wl_shm#273.format(0) -[2617723.397] {Default Queue} discarded wl_shm#273.format(875708993) -[2617723.402] {Default Queue} wl_seat#280.capabilities(7) -[2617723.408] {Default Queue} -> wl_seat#280.get_keyboard(new id wl_keyboard#296) -[2617723.414] {Default Queue} -> wl_seat#280.get_pointer(new id wl_pointer#297) -[2617723.420] {Default Queue} -> wl_data_device_manager#276.get_data_device(new id wl_data_device#298, wl_seat#280) -[2617723.426] {Default Queue} -> zwp_primary_selection_device_manager_v1#278.get_device(new id zwp_primary_selection_device_v1#299, wl_seat#280) -[2617723.436] {Default Queue} wl_output#281.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617723.442] {Default Queue} wl_output#281.mode(3, 1280, 800, 60000) -[2617723.448] {Default Queue} discarded wl_surface#3.enter(wl_output#281) -[2617723.454] {Default Queue} discarded wl_surface#135.enter(wl_output#281) -[2617723.459] {Default Queue} discarded wl_surface#231.enter(wl_output#281) -[2617723.464] {Default Queue} discarded wl_surface#103.enter(wl_output#281) -[2617723.468] {Default Queue} discarded wl_surface#43.enter(wl_output#281) -[2617723.473] {Default Queue} discarded wl_surface#19.enter(wl_output#281) -[2617723.478] {Default Queue} discarded wl_surface#199.enter(wl_output#281) -[2617723.483] {Default Queue} discarded wl_surface#71.enter(wl_output#281) -[2617723.488] {Default Queue} discarded wl_surface#167.enter(wl_output#281) -[2617723.493] {Default Queue} wl_registry#294.global(1, "wl_compositor", 6) -[2617723.499] {Default Queue} -> wl_registry#294.bind(1, "wl_compositor", 1, new id [unknown]#300) -[2617723.505] {Default Queue} wl_registry#294.global(2, "wl_subcompositor", 1) -[2617723.511] {Default Queue} -> wl_registry#294.bind(2, "wl_subcompositor", 1, new id [unknown]#301) -[2617723.517] {Default Queue} wl_registry#294.global(3, "xdg_wm_base", 6) -[2617723.522] {Default Queue} -> wl_registry#294.bind(3, "xdg_wm_base", 1, new id [unknown]#302) -[2617723.528] {Default Queue} wl_registry#294.global(6, "zwlr_layer_shell_v1", 5) -[2617723.534] {Default Queue} wl_registry#294.global(7, "ext_session_lock_manager_v1", 1) -[2617723.540] {Default Queue} wl_registry#294.global(8, "wl_shm", 2) -[2617723.546] {Default Queue} -> wl_registry#294.bind(8, "wl_shm", 1, new id [unknown]#303) -[2617723.551] {Default Queue} -> wl_registry#294.bind(8, "wl_shm", 1, new id [unknown]#304) -[2617723.557] {Default Queue} -> wl_registry#294.bind(8, "wl_shm", 1, new id [unknown]#305) -[2617723.562] {Default Queue} wl_registry#294.global(9, "zxdg_output_manager_v1", 3) -[2617723.567] {Default Queue} wl_registry#294.global(10, "wp_fractional_scale_manager_v1", 1) -[2617723.573] {Default Queue} wl_registry#294.global(11, "zwp_tablet_manager_v2", 1) -[2617723.578] {Default Queue} wl_registry#294.global(12, "zwp_pointer_gestures_v1", 3) -[2617723.584] {Default Queue} wl_registry#294.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617723.595] {Default Queue} -> wl_registry#294.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#306) -[2617723.606] {Default Queue} wl_registry#294.global(14, "zwp_pointer_constraints_v1", 1) -[2617723.612] {Default Queue} -> wl_registry#294.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#307) -[2617723.618] {Default Queue} wl_registry#294.global(15, "ext_idle_notifier_v1", 2) -[2617723.624] {Default Queue} wl_registry#294.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617723.629] {Default Queue} wl_registry#294.global(17, "wl_data_device_manager", 3) -[2617723.635] {Default Queue} -> wl_registry#294.bind(17, "wl_data_device_manager", 2, new id [unknown]#308) -[2617723.641] {Default Queue} -> wl_data_device_manager#308.create_data_source(new id wl_data_source#309) -[2617723.647] {Default Queue} -> wl_data_source#309.offer("text/plain") -[2617723.653] {Default Queue} -> wl_data_source#309.offer("text/plain;charset=utf-8") -[2617723.658] {Default Queue} -> wl_data_source#309.offer("TEXT") -[2617723.663] {Default Queue} -> wl_data_source#309.offer("STRING") -[2617723.668] {Default Queue} -> wl_data_source#309.offer("UTF8_STRING") -[2617723.673] {Default Queue} wl_registry#294.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617723.680] {Default Queue} -> wl_registry#294.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#310) -[2617723.686] {Default Queue} -> zwp_primary_selection_device_manager_v1#310.create_source(new id zwp_primary_selection_source_v1#311) -[2617723.695] {Default Queue} -> zwp_primary_selection_source_v1#311.offer("text/plain") -[2617723.700] {Default Queue} -> zwp_primary_selection_source_v1#311.offer("text/plain;charset=utf-8") -[2617723.705] {Default Queue} -> zwp_primary_selection_source_v1#311.offer("TEXT") -[2617723.710] {Default Queue} -> zwp_primary_selection_source_v1#311.offer("STRING") -[2617723.716] {Default Queue} -> zwp_primary_selection_source_v1#311.offer("UTF8_STRING") -[2617723.721] {Default Queue} wl_registry#294.global(19, "zwlr_data_control_manager_v1", 2) -[2617723.727] {Default Queue} wl_registry#294.global(20, "ext_data_control_manager_v1", 1) -[2617723.732] {Default Queue} wl_registry#294.global(21, "wp_presentation", 2) -[2617723.738] {Default Queue} wl_registry#294.global(22, "wp_security_context_manager_v1", 1) -[2617723.743] {Default Queue} wl_registry#294.global(23, "zwp_text_input_manager_v3", 1) -[2617723.749] {Default Queue} wl_registry#294.global(24, "zwp_input_method_manager_v2", 1) -[2617723.754] {Default Queue} wl_registry#294.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617723.760] {Default Queue} wl_registry#294.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617723.765] {Default Queue} wl_registry#294.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617723.771] {Default Queue} wl_registry#294.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617723.776] {Default Queue} wl_registry#294.global(29, "ext_workspace_manager_v1", 1) -[2617723.782] {Default Queue} wl_registry#294.global(30, "zwlr_output_manager_v1", 4) -[2617723.787] {Default Queue} wl_registry#294.global(31, "zwlr_screencopy_manager_v1", 3) -[2617723.793] {Default Queue} wl_registry#294.global(32, "wp_viewporter", 1) -[2617723.798] {Default Queue} wl_registry#294.global(33, "zxdg_exporter_v2", 1) -[2617723.804] {Default Queue} wl_registry#294.global(34, "zxdg_importer_v2", 1) -[2617723.809] {Default Queue} wl_registry#294.global(36, "xdg_activation_v1", 1) -[2617723.815] {Default Queue} wl_registry#294.global(37, "mutter_x11_interop", 1) -[2617723.820] {Default Queue} wl_registry#294.global(38, "wl_seat", 9) -[2617723.826] {Default Queue} -> wl_registry#294.bind(38, "wl_seat", 1, new id [unknown]#312) -[2617723.831] {Default Queue} wl_registry#294.global(39, "wp_cursor_shape_manager_v1", 2) -[2617723.837] {Default Queue} wl_registry#294.global(40, "wl_output", 4) -[2617723.842] {Default Queue} -> wl_registry#294.bind(40, "wl_output", 1, new id [unknown]#313) -[2617723.848] {Default Queue} wl_callback#295.done(0) -[2617723.858] {Default Queue} discarded wl_surface#263.enter(wl_output#18) -[2617723.872] {Default Queue} discarded wl_surface#263.enter(wl_output#57) -[2617723.877] {Default Queue} discarded wl_surface#263.enter(wl_output#89) -[2617723.882] {Default Queue} discarded wl_surface#263.enter(wl_output#121) -[2617723.887] {Default Queue} discarded wl_surface#263.enter(wl_output#153) -[2617723.892] {Default Queue} discarded wl_surface#263.enter(wl_output#185) -[2617723.897] {Default Queue} discarded wl_surface#263.enter(wl_output#217) -[2617723.902] {Default Queue} discarded wl_surface#263.enter(wl_output#249) -[2617723.907] {Default Queue} discarded wl_surface#263.enter(wl_output#281) -[2617723.912] {Default Queue} -> wl_compositor#108.create_surface(new id wl_surface#295) -[2617723.918] {Default Queue} -> wl_subcompositor#301.get_subsurface(new id wl_subsurface#314, wl_surface#295, wl_surface#103) -[2617723.923] {Default Queue} -> wl_subsurface#314.set_desync() -[2617723.929] {Default Queue} -> wl_subsurface#314.set_position(0, 0) -[2617723.935] {Default Queue} -> wl_subsurface#314.place_above(wl_surface#103) -[2617723.986] {Default Queue} -> wl_shm#303.create_pool(new id wl_shm_pool#315, fd 54, 16) -[2617723.994] {Default Queue} -> wl_shm#303.create_pool(new id wl_shm_pool#316, fd 55, 16) -[2617724.001] {Default Queue} -> wl_shm_pool#315.create_buffer(new id wl_buffer#317, 0, 2, 2, 8, 0) -[2617724.007] {Default Queue} -> wl_shm_pool#316.create_buffer(new id wl_buffer#318, 0, 2, 2, 8, 0) -[2617724.018] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) -[2617724.025] {Default Queue} -> wl_surface#295.commit() -[2617724.032] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) -[2617724.038] {Default Queue} -> wl_surface#295.commit() -[2617724.043] {Default Queue} -> wl_compositor#300.create_region(new id wl_region#319) -[2617724.048] {Default Queue} -> wl_compositor#300.create_region(new id wl_region#320) -[2617724.054] {Default Queue} -> wl_region#319.subtract(0, 0, 2, 2) -[2617724.059] {Default Queue} -> wl_region#319.add(0, 0, 0, 0) -[2617724.065] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2617724.070] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2617724.076] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) -[2617724.081] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) -[2617724.090] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) -[2617724.097] {Default Queue} -> wl_surface#295.commit() -[2617724.137] {Default Queue} -> wl_shm#305.create_pool(new id wl_shm_pool#321, fd 58, 640) -[2617724.145] {Default Queue} -> wl_shm#305.create_pool(new id wl_shm_pool#322, fd 59, 640) -[2617724.151] {Default Queue} -> wl_shm_pool#321.create_buffer(new id wl_buffer#323, 0, 10, 16, 40, 0) -[2617724.157] {Default Queue} -> wl_shm_pool#322.create_buffer(new id wl_buffer#324, 0, 10, 16, 40, 0) -[2617724.166] {Default Queue} -> wl_compositor#300.create_surface(new id wl_surface#325) -[2617724.171] {Default Queue} -> wl_surface#325.attach(wl_buffer#323, 0, 0) -[2617724.175] {Default Queue} -> wl_surface#325.commit() -[2617724.181] {Default Queue} -> wl_surface#325.attach(wl_buffer#323, 0, 0) -[2617724.185] {Default Queue} -> wl_surface#325.commit() -[2617724.191] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) -[2617724.197] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) -[2617724.205] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#326) -[2617724.210] {Default Queue} -> wl_display#1.sync(new id wl_callback#327) -[2617733.315] {Display Queue} wl_display#1.delete_id(327) -[2617733.331] {Default Queue} wl_keyboard#296.keymap(1, fd 54, 68213) -[2617733.339] {Default Queue} wl_keyboard#296.enter(566, wl_surface#19, array[0]) -[2617733.346] {Default Queue} wl_keyboard#296.modifiers(566, 0, 0, 16, 0) -[2617733.353] {Default Queue} discarded wl_shm#303.format(875709016) -[2617733.358] {Default Queue} discarded wl_shm#303.format(1) -[2617733.363] {Default Queue} discarded wl_shm#303.format(0) -[2617733.368] {Default Queue} discarded wl_shm#303.format(875708993) -[2617733.379] {Default Queue} discarded wl_shm#304.format(875709016) -[2617733.388] {Default Queue} discarded wl_shm#304.format(1) -[2617733.393] {Default Queue} discarded wl_shm#304.format(0) -[2617733.399] {Default Queue} discarded wl_shm#304.format(875708993) -[2617733.403] {Default Queue} discarded wl_shm#305.format(875709016) -[2617733.408] {Default Queue} discarded wl_shm#305.format(1) -[2617733.414] {Default Queue} discarded wl_shm#305.format(0) -[2617733.419] {Default Queue} discarded wl_shm#305.format(875708993) -[2617733.423] {Default Queue} wl_seat#312.capabilities(7) -[2617733.429] {Default Queue} -> wl_seat#312.get_keyboard(new id wl_keyboard#328) -[2617733.435] {Default Queue} -> wl_seat#312.get_pointer(new id wl_pointer#329) -[2617733.441] {Default Queue} -> wl_data_device_manager#308.get_data_device(new id wl_data_device#330, wl_seat#312) -[2617733.447] {Default Queue} -> zwp_primary_selection_device_manager_v1#310.get_device(new id zwp_primary_selection_device_v1#331, wl_seat#312) -[2617733.456] {Default Queue} wl_output#313.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617733.463] {Default Queue} wl_output#313.mode(3, 1280, 800, 60000) -[2617733.469] {Default Queue} discarded wl_surface#3.enter(wl_output#313) -[2617733.474] {Default Queue} discarded wl_surface#135.enter(wl_output#313) -[2617733.479] {Default Queue} discarded wl_surface#231.enter(wl_output#313) -[2617733.484] {Default Queue} discarded wl_surface#103.enter(wl_output#313) -[2617733.489] {Default Queue} discarded wl_surface#43.enter(wl_output#313) -[2617733.494] {Default Queue} discarded wl_surface#19.enter(wl_output#313) -[2617733.499] {Default Queue} discarded wl_surface#199.enter(wl_output#313) -[2617733.506] {Default Queue} discarded wl_surface#263.enter(wl_output#313) -[2617733.512] {Default Queue} discarded wl_surface#71.enter(wl_output#313) -[2617733.520] {Default Queue} discarded wl_surface#167.enter(wl_output#313) -[2617733.527] {Default Queue} wl_registry#326.global(1, "wl_compositor", 6) -[2617733.537] {Default Queue} -> wl_registry#326.bind(1, "wl_compositor", 1, new id [unknown]#332) -[2617733.548] {Default Queue} wl_registry#326.global(2, "wl_subcompositor", 1) -[2617733.557] {Default Queue} -> wl_registry#326.bind(2, "wl_subcompositor", 1, new id [unknown]#333) -[2617733.566] {Default Queue} wl_registry#326.global(3, "xdg_wm_base", 6) -[2617733.575] {Default Queue} -> wl_registry#326.bind(3, "xdg_wm_base", 1, new id [unknown]#334) -[2617733.583] {Default Queue} wl_registry#326.global(6, "zwlr_layer_shell_v1", 5) -[2617733.589] {Default Queue} wl_registry#326.global(7, "ext_session_lock_manager_v1", 1) -[2617733.595] {Default Queue} wl_registry#326.global(8, "wl_shm", 2) -[2617733.601] {Default Queue} -> wl_registry#326.bind(8, "wl_shm", 1, new id [unknown]#335) -[2617733.607] {Default Queue} -> wl_registry#326.bind(8, "wl_shm", 1, new id [unknown]#336) -[2617733.612] {Default Queue} -> wl_registry#326.bind(8, "wl_shm", 1, new id [unknown]#337) -[2617733.617] {Default Queue} wl_registry#326.global(9, "zxdg_output_manager_v1", 3) -[2617733.623] {Default Queue} wl_registry#326.global(10, "wp_fractional_scale_manager_v1", 1) -[2617733.628] {Default Queue} wl_registry#326.global(11, "zwp_tablet_manager_v2", 1) -[2617733.634] {Default Queue} wl_registry#326.global(12, "zwp_pointer_gestures_v1", 3) -[2617733.639] {Default Queue} wl_registry#326.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617733.645] {Default Queue} -> wl_registry#326.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#338) -[2617733.651] {Default Queue} wl_registry#326.global(14, "zwp_pointer_constraints_v1", 1) -[2617733.656] {Default Queue} -> wl_registry#326.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#339) -[2617733.662] {Default Queue} wl_registry#326.global(15, "ext_idle_notifier_v1", 2) -[2617733.667] {Default Queue} wl_registry#326.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617733.673] {Default Queue} wl_registry#326.global(17, "wl_data_device_manager", 3) -[2617733.679] {Default Queue} -> wl_registry#326.bind(17, "wl_data_device_manager", 2, new id [unknown]#340) -[2617733.689] {Default Queue} -> wl_data_device_manager#340.create_data_source(new id wl_data_source#341) -[2617733.697] {Default Queue} -> wl_data_source#341.offer("text/plain") -[2617733.703] {Default Queue} -> wl_data_source#341.offer("text/plain;charset=utf-8") -[2617733.708] {Default Queue} -> wl_data_source#341.offer("TEXT") -[2617733.713] {Default Queue} -> wl_data_source#341.offer("STRING") -[2617733.718] {Default Queue} -> wl_data_source#341.offer("UTF8_STRING") -[2617733.723] {Default Queue} wl_registry#326.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617733.730] {Default Queue} -> wl_registry#326.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#342) -[2617733.735] {Default Queue} -> zwp_primary_selection_device_manager_v1#342.create_source(new id zwp_primary_selection_source_v1#343) -[2617733.745] {Default Queue} -> zwp_primary_selection_source_v1#343.offer("text/plain") -[2617733.750] {Default Queue} -> zwp_primary_selection_source_v1#343.offer("text/plain;charset=utf-8") -[2617733.755] {Default Queue} -> zwp_primary_selection_source_v1#343.offer("TEXT") -[2617733.761] {Default Queue} -> zwp_primary_selection_source_v1#343.offer("STRING") -[2617733.766] {Default Queue} -> zwp_primary_selection_source_v1#343.offer("UTF8_STRING") -[2617733.771] {Default Queue} wl_registry#326.global(19, "zwlr_data_control_manager_v1", 2) -[2617733.776] {Default Queue} wl_registry#326.global(20, "ext_data_control_manager_v1", 1) -[2617733.782] {Default Queue} wl_registry#326.global(21, "wp_presentation", 2) -[2617733.788] {Default Queue} wl_registry#326.global(22, "wp_security_context_manager_v1", 1) -[2617733.793] {Default Queue} wl_registry#326.global(23, "zwp_text_input_manager_v3", 1) -[2617733.799] {Default Queue} wl_registry#326.global(24, "zwp_input_method_manager_v2", 1) -[2617733.804] {Default Queue} wl_registry#326.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617733.810] {Default Queue} wl_registry#326.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617733.815] {Default Queue} wl_registry#326.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617733.821] {Default Queue} wl_registry#326.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617733.827] {Default Queue} wl_registry#326.global(29, "ext_workspace_manager_v1", 1) -[2617733.832] {Default Queue} wl_registry#326.global(30, "zwlr_output_manager_v1", 4) -[2617733.837] {Default Queue} wl_registry#326.global(31, "zwlr_screencopy_manager_v1", 3) -[2617733.843] {Default Queue} wl_registry#326.global(32, "wp_viewporter", 1) -[2617733.849] {Default Queue} wl_registry#326.global(33, "zxdg_exporter_v2", 1) -[2617733.854] {Default Queue} wl_registry#326.global(34, "zxdg_importer_v2", 1) -[2617733.860] {Default Queue} wl_registry#326.global(36, "xdg_activation_v1", 1) -[2617733.872] {Default Queue} wl_registry#326.global(37, "mutter_x11_interop", 1) -[2617733.877] {Default Queue} wl_registry#326.global(38, "wl_seat", 9) -[2617733.884] {Default Queue} -> wl_registry#326.bind(38, "wl_seat", 1, new id [unknown]#344) -[2617733.890] {Default Queue} wl_registry#326.global(39, "wp_cursor_shape_manager_v1", 2) -[2617733.895] {Default Queue} wl_registry#326.global(40, "wl_output", 4) -[2617733.901] {Default Queue} -> wl_registry#326.bind(40, "wl_output", 1, new id [unknown]#345) -[2617733.907] {Default Queue} wl_callback#327.done(0) -[2617733.912] {Default Queue} discarded wl_surface#295.enter(wl_output#18) -[2617733.918] {Default Queue} discarded wl_surface#295.enter(wl_output#57) -[2617733.923] {Default Queue} discarded wl_surface#295.enter(wl_output#89) -[2617733.928] {Default Queue} discarded wl_surface#295.enter(wl_output#121) -[2617733.933] {Default Queue} discarded wl_surface#295.enter(wl_output#153) -[2617733.938] {Default Queue} discarded wl_surface#295.enter(wl_output#185) -[2617733.943] {Default Queue} discarded wl_surface#295.enter(wl_output#217) -[2617733.948] {Default Queue} discarded wl_surface#295.enter(wl_output#249) -[2617733.952] {Default Queue} discarded wl_surface#295.enter(wl_output#281) -[2617733.962] {Default Queue} discarded wl_surface#295.enter(wl_output#313) -[2617733.969] {Default Queue} -> wl_compositor#108.create_surface(new id wl_surface#327) -[2617733.975] {Default Queue} -> wl_subcompositor#333.get_subsurface(new id wl_subsurface#346, wl_surface#327, wl_surface#103) -[2617733.980] {Default Queue} -> wl_subsurface#346.set_desync() -[2617733.986] {Default Queue} -> wl_subsurface#346.set_position(0, 0) -[2617733.991] {Default Queue} -> wl_subsurface#346.place_above(wl_surface#103) -[2617734.048] {Default Queue} -> wl_shm#335.create_pool(new id wl_shm_pool#347, fd 59, 16) -[2617734.056] {Default Queue} -> wl_shm#335.create_pool(new id wl_shm_pool#348, fd 60, 16) -[2617734.062] {Default Queue} -> wl_shm_pool#347.create_buffer(new id wl_buffer#349, 0, 2, 2, 8, 0) -[2617734.068] {Default Queue} -> wl_shm_pool#348.create_buffer(new id wl_buffer#350, 0, 2, 2, 8, 0) -[2617734.079] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) -[2617734.085] {Default Queue} -> wl_surface#327.commit() -[2617734.093] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) -[2617734.098] {Default Queue} -> wl_surface#327.commit() -[2617734.104] {Default Queue} -> wl_compositor#332.create_region(new id wl_region#351) -[2617734.109] {Default Queue} -> wl_compositor#332.create_region(new id wl_region#352) -[2617734.114] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) -[2617734.120] {Default Queue} -> wl_region#351.add(0, 0, 0, 0) -[2617734.126] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2617734.131] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2617734.136] {Default Queue} -> wl_surface#327.damage(0, 0, 2, 2) -[2617734.142] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) -[2617734.151] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) -[2617734.156] {Default Queue} -> wl_surface#327.commit() -[2617734.193] {Default Queue} -> wl_shm#337.create_pool(new id wl_shm_pool#353, fd 63, 640) -[2617734.201] {Default Queue} -> wl_shm#337.create_pool(new id wl_shm_pool#354, fd 64, 640) -[2617734.206] {Default Queue} -> wl_shm_pool#353.create_buffer(new id wl_buffer#355, 0, 10, 16, 40, 0) -[2617734.210] {Default Queue} -> wl_shm_pool#354.create_buffer(new id wl_buffer#356, 0, 10, 16, 40, 0) -[2617734.218] {Default Queue} -> wl_compositor#332.create_surface(new id wl_surface#357) -[2617734.222] {Default Queue} -> wl_surface#357.attach(wl_buffer#355, 0, 0) -[2617734.226] {Default Queue} -> wl_surface#357.commit() -[2617734.232] {Default Queue} -> wl_surface#357.attach(wl_buffer#355, 0, 0) -[2617734.236] {Default Queue} -> wl_surface#357.commit() -[2617734.241] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) -[2617734.246] {Default Queue} -> wl_surface#327.damage(0, 0, 2, 2) -[2617734.251] {Default Queue} -> wl_surface#327.damage(0, 0, 2, 2) -[2617734.258] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#358) -[2617734.263] {Default Queue} -> wl_display#1.sync(new id wl_callback#359) -[2617743.319] {Display Queue} wl_display#1.delete_id(359) -[2617743.336] {Default Queue} wl_keyboard#328.keymap(1, fd 59, 68213) -[2617743.344] {Default Queue} wl_keyboard#328.enter(566, wl_surface#19, array[0]) -[2617743.351] {Default Queue} wl_keyboard#328.modifiers(566, 0, 0, 16, 0) -[2617743.357] {Default Queue} discarded wl_shm#335.format(875709016) -[2617743.362] {Default Queue} discarded wl_shm#335.format(1) -[2617743.367] {Default Queue} discarded wl_shm#335.format(0) -[2617743.372] {Default Queue} discarded wl_shm#335.format(875708993) -[2617743.377] {Default Queue} discarded wl_shm#336.format(875709016) -[2617743.382] {Default Queue} discarded wl_shm#336.format(1) -[2617743.387] {Default Queue} discarded wl_shm#336.format(0) -[2617743.392] {Default Queue} discarded wl_shm#336.format(875708993) -[2617743.396] {Default Queue} discarded wl_shm#337.format(875709016) -[2617743.401] {Default Queue} discarded wl_shm#337.format(1) -[2617743.406] {Default Queue} discarded wl_shm#337.format(0) -[2617743.412] {Default Queue} discarded wl_shm#337.format(875708993) -[2617743.423] {Default Queue} wl_seat#344.capabilities(7) -[2617743.433] {Default Queue} -> wl_seat#344.get_keyboard(new id wl_keyboard#360) -[2617743.439] {Default Queue} -> wl_seat#344.get_pointer(new id wl_pointer#361) -[2617743.445] {Default Queue} -> wl_data_device_manager#340.get_data_device(new id wl_data_device#362, wl_seat#344) -[2617743.451] {Default Queue} -> zwp_primary_selection_device_manager_v1#342.get_device(new id zwp_primary_selection_device_v1#363, wl_seat#344) -[2617743.461] {Default Queue} wl_output#345.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617743.467] {Default Queue} wl_output#345.mode(3, 1280, 800, 60000) -[2617743.474] {Default Queue} discarded wl_surface#3.enter(wl_output#345) -[2617743.479] {Default Queue} discarded wl_surface#135.enter(wl_output#345) -[2617743.484] {Default Queue} discarded wl_surface#231.enter(wl_output#345) -[2617743.489] {Default Queue} discarded wl_surface#103.enter(wl_output#345) -[2617743.494] {Default Queue} discarded wl_surface#43.enter(wl_output#345) -[2617743.499] {Default Queue} discarded wl_surface#19.enter(wl_output#345) -[2617743.504] {Default Queue} discarded wl_surface#199.enter(wl_output#345) -[2617743.509] {Default Queue} discarded wl_surface#263.enter(wl_output#345) -[2617743.514] {Default Queue} discarded wl_surface#71.enter(wl_output#345) -[2617743.519] {Default Queue} discarded wl_surface#295.enter(wl_output#345) -[2617743.524] {Default Queue} discarded wl_surface#167.enter(wl_output#345) -[2617743.529] {Default Queue} wl_registry#358.global(1, "wl_compositor", 6) -[2617743.536] {Default Queue} -> wl_registry#358.bind(1, "wl_compositor", 1, new id [unknown]#364) -[2617743.542] {Default Queue} wl_registry#358.global(2, "wl_subcompositor", 1) -[2617743.547] {Default Queue} -> wl_registry#358.bind(2, "wl_subcompositor", 1, new id [unknown]#365) -[2617743.553] {Default Queue} wl_registry#358.global(3, "xdg_wm_base", 6) -[2617743.559] {Default Queue} -> wl_registry#358.bind(3, "xdg_wm_base", 1, new id [unknown]#366) -[2617743.565] {Default Queue} wl_registry#358.global(6, "zwlr_layer_shell_v1", 5) -[2617743.570] {Default Queue} wl_registry#358.global(7, "ext_session_lock_manager_v1", 1) -[2617743.576] {Default Queue} wl_registry#358.global(8, "wl_shm", 2) -[2617743.582] {Default Queue} -> wl_registry#358.bind(8, "wl_shm", 1, new id [unknown]#367) -[2617743.587] {Default Queue} -> wl_registry#358.bind(8, "wl_shm", 1, new id [unknown]#368) -[2617743.593] {Default Queue} -> wl_registry#358.bind(8, "wl_shm", 1, new id [unknown]#369) -[2617743.598] {Default Queue} wl_registry#358.global(9, "zxdg_output_manager_v1", 3) -[2617743.604] {Default Queue} wl_registry#358.global(10, "wp_fractional_scale_manager_v1", 1) -[2617743.610] {Default Queue} wl_registry#358.global(11, "zwp_tablet_manager_v2", 1) -[2617743.615] {Default Queue} wl_registry#358.global(12, "zwp_pointer_gestures_v1", 3) -[2617743.621] {Default Queue} wl_registry#358.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617743.626] {Default Queue} -> wl_registry#358.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#370) -[2617743.632] {Default Queue} wl_registry#358.global(14, "zwp_pointer_constraints_v1", 1) -[2617743.638] {Default Queue} -> wl_registry#358.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#371) -[2617743.643] {Default Queue} wl_registry#358.global(15, "ext_idle_notifier_v1", 2) -[2617743.649] {Default Queue} wl_registry#358.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617743.654] {Default Queue} wl_registry#358.global(17, "wl_data_device_manager", 3) -[2617743.660] {Default Queue} -> wl_registry#358.bind(17, "wl_data_device_manager", 2, new id [unknown]#372) -[2617743.666] {Default Queue} -> wl_data_device_manager#372.create_data_source(new id wl_data_source#373) -[2617743.671] {Default Queue} -> wl_data_source#373.offer("text/plain") -[2617743.677] {Default Queue} -> wl_data_source#373.offer("text/plain;charset=utf-8") -[2617743.682] {Default Queue} -> wl_data_source#373.offer("TEXT") -[2617743.687] {Default Queue} -> wl_data_source#373.offer("STRING") -[2617743.692] {Default Queue} -> wl_data_source#373.offer("UTF8_STRING") -[2617743.701] {Default Queue} wl_registry#358.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617743.709] {Default Queue} -> wl_registry#358.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#374) -[2617743.716] {Default Queue} -> zwp_primary_selection_device_manager_v1#374.create_source(new id zwp_primary_selection_source_v1#375) -[2617743.729] {Default Queue} -> zwp_primary_selection_source_v1#375.offer("text/plain") -[2617743.736] {Default Queue} -> zwp_primary_selection_source_v1#375.offer("text/plain;charset=utf-8") -[2617743.744] {Default Queue} -> zwp_primary_selection_source_v1#375.offer("TEXT") -[2617743.753] {Default Queue} -> zwp_primary_selection_source_v1#375.offer("STRING") -[2617743.760] {Default Queue} -> zwp_primary_selection_source_v1#375.offer("UTF8_STRING") -[2617743.768] {Default Queue} wl_registry#358.global(19, "zwlr_data_control_manager_v1", 2) -[2617743.777] {Default Queue} wl_registry#358.global(20, "ext_data_control_manager_v1", 1) -[2617743.785] {Default Queue} wl_registry#358.global(21, "wp_presentation", 2) -[2617743.793] {Default Queue} wl_registry#358.global(22, "wp_security_context_manager_v1", 1) -[2617743.801] {Default Queue} wl_registry#358.global(23, "zwp_text_input_manager_v3", 1) -[2617743.806] {Default Queue} wl_registry#358.global(24, "zwp_input_method_manager_v2", 1) -[2617743.812] {Default Queue} wl_registry#358.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617743.818] {Default Queue} wl_registry#358.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617743.823] {Default Queue} wl_registry#358.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617743.829] {Default Queue} wl_registry#358.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617743.835] {Default Queue} wl_registry#358.global(29, "ext_workspace_manager_v1", 1) -[2617743.840] {Default Queue} wl_registry#358.global(30, "zwlr_output_manager_v1", 4) -[2617743.846] {Default Queue} wl_registry#358.global(31, "zwlr_screencopy_manager_v1", 3) -[2617743.851] {Default Queue} wl_registry#358.global(32, "wp_viewporter", 1) -[2617743.856] {Default Queue} wl_registry#358.global(33, "zxdg_exporter_v2", 1) -[2617743.869] {Default Queue} wl_registry#358.global(34, "zxdg_importer_v2", 1) -[2617743.874] {Default Queue} wl_registry#358.global(36, "xdg_activation_v1", 1) -[2617743.898] {Default Queue} wl_registry#358.global(37, "mutter_x11_interop", 1) -[2617743.913] {Default Queue} wl_registry#358.global(38, "wl_seat", 9) -[2617743.921] {Default Queue} -> wl_registry#358.bind(38, "wl_seat", 1, new id [unknown]#376) -[2617743.927] {Default Queue} wl_registry#358.global(39, "wp_cursor_shape_manager_v1", 2) -[2617743.931] {Default Queue} wl_registry#358.global(40, "wl_output", 4) -[2617743.936] {Default Queue} -> wl_registry#358.bind(40, "wl_output", 1, new id [unknown]#377) -[2617743.941] {Default Queue} wl_callback#359.done(0) -[2617743.946] {Default Queue} discarded wl_surface#327.enter(wl_output#18) -[2617743.950] {Default Queue} discarded wl_surface#327.enter(wl_output#57) -[2617743.955] {Default Queue} discarded wl_surface#327.enter(wl_output#89) -[2617743.959] {Default Queue} discarded wl_surface#327.enter(wl_output#121) -[2617743.963] {Default Queue} discarded wl_surface#327.enter(wl_output#153) -[2617743.967] {Default Queue} discarded wl_surface#327.enter(wl_output#185) -[2617743.971] {Default Queue} discarded wl_surface#327.enter(wl_output#217) -[2617743.975] {Default Queue} discarded wl_surface#327.enter(wl_output#249) -[2617743.979] {Default Queue} discarded wl_surface#327.enter(wl_output#281) -[2617743.983] {Default Queue} discarded wl_surface#327.enter(wl_output#313) -[2617743.987] {Default Queue} discarded wl_surface#327.enter(wl_output#345) -[2617743.991] {Default Queue} -> wl_compositor#332.create_surface(new id wl_surface#359) -[2617743.996] {Default Queue} -> wl_subcompositor#365.get_subsurface(new id wl_subsurface#378, wl_surface#359, wl_surface#327) -[2617744.001] {Default Queue} -> wl_subsurface#378.set_desync() -[2617744.005] {Default Queue} -> wl_subsurface#378.set_position(0, 0) -[2617744.016] {Default Queue} -> wl_subsurface#378.place_above(wl_surface#327) -[2617744.068] {Default Queue} -> wl_shm#367.create_pool(new id wl_shm_pool#379, fd 64, 16) -[2617744.075] {Default Queue} -> wl_shm#367.create_pool(new id wl_shm_pool#380, fd 65, 16) -[2617744.081] {Default Queue} -> wl_shm_pool#379.create_buffer(new id wl_buffer#381, 0, 2, 2, 8, 0) -[2617744.086] {Default Queue} -> wl_shm_pool#380.create_buffer(new id wl_buffer#382, 0, 2, 2, 8, 0) -[2617744.094] {Default Queue} -> wl_surface#359.attach(wl_buffer#381, 0, 0) -[2617744.099] {Default Queue} -> wl_surface#359.commit() -[2617744.105] {Default Queue} -> wl_surface#359.attach(wl_buffer#381, 0, 0) -[2617744.109] {Default Queue} -> wl_surface#359.commit() -[2617744.114] {Default Queue} -> wl_compositor#364.create_region(new id wl_region#383) -[2617744.118] {Default Queue} -> wl_compositor#364.create_region(new id wl_region#384) -[2617744.122] {Default Queue} -> wl_region#383.subtract(0, 0, 2, 2) -[2617744.127] {Default Queue} -> wl_region#383.add(0, 0, 0, 0) -[2617744.132] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) -[2617744.136] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) -[2617744.140] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) -[2617744.145] {Default Queue} -> wl_surface#327.damage(0, 0, 2, 2) -[2617744.152] {Default Queue} -> wl_surface#359.attach(wl_buffer#381, 0, 0) -[2617744.157] {Default Queue} -> wl_surface#359.commit() -[2617744.189] {Default Queue} -> wl_shm#369.create_pool(new id wl_shm_pool#385, fd 68, 640) -[2617744.196] {Default Queue} -> wl_shm#369.create_pool(new id wl_shm_pool#386, fd 69, 640) -[2617744.202] {Default Queue} -> wl_shm_pool#385.create_buffer(new id wl_buffer#387, 0, 10, 16, 40, 0) -[2617744.206] {Default Queue} -> wl_shm_pool#386.create_buffer(new id wl_buffer#388, 0, 10, 16, 40, 0) -[2617744.214] {Default Queue} -> wl_compositor#364.create_surface(new id wl_surface#389) -[2617744.218] {Default Queue} -> wl_surface#389.attach(wl_buffer#387, 0, 0) -[2617744.222] {Default Queue} -> wl_surface#389.commit() -[2617744.228] {Default Queue} -> wl_surface#389.attach(wl_buffer#387, 0, 0) -[2617744.233] {Default Queue} -> wl_surface#389.commit() -[2617744.239] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) -[2617744.247] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#390) -[2617744.251] {Default Queue} -> wl_display#1.sync(new id wl_callback#391) -[2617753.308] {Display Queue} wl_display#1.delete_id(391) -[2617753.323] {Default Queue} wl_keyboard#360.keymap(1, fd 64, 68213) -[2617753.331] {Default Queue} wl_keyboard#360.enter(566, wl_surface#19, array[0]) -[2617753.340] {Default Queue} wl_keyboard#360.modifiers(566, 0, 0, 16, 0) -[2617753.346] {Default Queue} discarded wl_shm#367.format(875709016) -[2617753.353] {Default Queue} discarded wl_shm#367.format(1) -[2617753.358] {Default Queue} discarded wl_shm#367.format(0) -[2617753.365] {Default Queue} discarded wl_shm#367.format(875708993) -[2617753.371] {Default Queue} discarded wl_shm#368.format(875709016) -[2617753.377] {Default Queue} discarded wl_shm#368.format(1) -[2617753.383] {Default Queue} discarded wl_shm#368.format(0) -[2617753.388] {Default Queue} discarded wl_shm#368.format(875708993) -[2617753.393] {Default Queue} discarded wl_shm#369.format(875709016) -[2617753.399] {Default Queue} discarded wl_shm#369.format(1) -[2617753.404] {Default Queue} discarded wl_shm#369.format(0) -[2617753.410] {Default Queue} discarded wl_shm#369.format(875708993) -[2617753.416] {Default Queue} wl_seat#376.capabilities(7) -[2617753.423] {Default Queue} -> wl_seat#376.get_keyboard(new id wl_keyboard#392) -[2617753.429] {Default Queue} -> wl_seat#376.get_pointer(new id wl_pointer#393) -[2617753.436] {Default Queue} -> wl_data_device_manager#372.get_data_device(new id wl_data_device#394, wl_seat#376) -[2617753.443] {Default Queue} -> zwp_primary_selection_device_manager_v1#374.get_device(new id zwp_primary_selection_device_v1#395, wl_seat#376) -[2617753.454] {Default Queue} wl_output#377.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617753.468] {Default Queue} wl_output#377.mode(3, 1280, 800, 60000) -[2617753.480] {Default Queue} discarded wl_surface#3.enter(wl_output#377) -[2617753.487] {Default Queue} discarded wl_surface#135.enter(wl_output#377) -[2617753.491] {Default Queue} discarded wl_surface#231.enter(wl_output#377) -[2617753.495] {Default Queue} discarded wl_surface#103.enter(wl_output#377) -[2617753.499] {Default Queue} discarded wl_surface#327.enter(wl_output#377) -[2617753.504] {Default Queue} discarded wl_surface#43.enter(wl_output#377) -[2617753.509] {Default Queue} discarded wl_surface#19.enter(wl_output#377) -[2617753.514] {Default Queue} discarded wl_surface#199.enter(wl_output#377) -[2617753.519] {Default Queue} discarded wl_surface#263.enter(wl_output#377) -[2617753.525] {Default Queue} discarded wl_surface#71.enter(wl_output#377) -[2617753.531] {Default Queue} discarded wl_surface#295.enter(wl_output#377) -[2617753.536] {Default Queue} discarded wl_surface#167.enter(wl_output#377) -[2617753.542] {Default Queue} wl_registry#390.global(1, "wl_compositor", 6) -[2617753.550] {Default Queue} -> wl_registry#390.bind(1, "wl_compositor", 1, new id [unknown]#396) -[2617753.556] {Default Queue} wl_registry#390.global(2, "wl_subcompositor", 1) -[2617753.561] {Default Queue} -> wl_registry#390.bind(2, "wl_subcompositor", 1, new id [unknown]#397) -[2617753.565] {Default Queue} wl_registry#390.global(3, "xdg_wm_base", 6) -[2617753.570] {Default Queue} -> wl_registry#390.bind(3, "xdg_wm_base", 1, new id [unknown]#398) -[2617753.574] {Default Queue} wl_registry#390.global(6, "zwlr_layer_shell_v1", 5) -[2617753.579] {Default Queue} wl_registry#390.global(7, "ext_session_lock_manager_v1", 1) -[2617753.583] {Default Queue} wl_registry#390.global(8, "wl_shm", 2) -[2617753.588] {Default Queue} -> wl_registry#390.bind(8, "wl_shm", 1, new id [unknown]#399) -[2617753.593] {Default Queue} -> wl_registry#390.bind(8, "wl_shm", 1, new id [unknown]#400) -[2617753.597] {Default Queue} -> wl_registry#390.bind(8, "wl_shm", 1, new id [unknown]#401) -[2617753.601] {Default Queue} wl_registry#390.global(9, "zxdg_output_manager_v1", 3) -[2617753.606] {Default Queue} wl_registry#390.global(10, "wp_fractional_scale_manager_v1", 1) -[2617753.610] {Default Queue} wl_registry#390.global(11, "zwp_tablet_manager_v2", 1) -[2617753.614] {Default Queue} wl_registry#390.global(12, "zwp_pointer_gestures_v1", 3) -[2617753.619] {Default Queue} wl_registry#390.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617753.623] {Default Queue} -> wl_registry#390.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#402) -[2617753.628] {Default Queue} wl_registry#390.global(14, "zwp_pointer_constraints_v1", 1) -[2617753.632] {Default Queue} -> wl_registry#390.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#403) -[2617753.637] {Default Queue} wl_registry#390.global(15, "ext_idle_notifier_v1", 2) -[2617753.641] {Default Queue} wl_registry#390.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617753.646] {Default Queue} wl_registry#390.global(17, "wl_data_device_manager", 3) -[2617753.650] {Default Queue} -> wl_registry#390.bind(17, "wl_data_device_manager", 2, new id [unknown]#404) -[2617753.655] {Default Queue} -> wl_data_device_manager#404.create_data_source(new id wl_data_source#405) -[2617753.660] {Default Queue} -> wl_data_source#405.offer("text/plain") -[2617753.664] {Default Queue} -> wl_data_source#405.offer("text/plain;charset=utf-8") -[2617753.668] {Default Queue} -> wl_data_source#405.offer("TEXT") -[2617753.672] {Default Queue} -> wl_data_source#405.offer("STRING") -[2617753.676] {Default Queue} -> wl_data_source#405.offer("UTF8_STRING") -[2617753.680] {Default Queue} wl_registry#390.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617753.685] {Default Queue} -> wl_registry#390.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#406) -[2617753.689] {Default Queue} -> zwp_primary_selection_device_manager_v1#406.create_source(new id zwp_primary_selection_source_v1#407) -[2617753.697] {Default Queue} -> zwp_primary_selection_source_v1#407.offer("text/plain") -[2617753.705] {Default Queue} -> zwp_primary_selection_source_v1#407.offer("text/plain;charset=utf-8") -[2617753.711] {Default Queue} -> zwp_primary_selection_source_v1#407.offer("TEXT") -[2617753.716] {Default Queue} -> zwp_primary_selection_source_v1#407.offer("STRING") -[2617753.720] {Default Queue} -> zwp_primary_selection_source_v1#407.offer("UTF8_STRING") -[2617753.724] {Default Queue} wl_registry#390.global(19, "zwlr_data_control_manager_v1", 2) -[2617753.729] {Default Queue} wl_registry#390.global(20, "ext_data_control_manager_v1", 1) -[2617753.733] {Default Queue} wl_registry#390.global(21, "wp_presentation", 2) -[2617753.737] {Default Queue} wl_registry#390.global(22, "wp_security_context_manager_v1", 1) -[2617753.742] {Default Queue} wl_registry#390.global(23, "zwp_text_input_manager_v3", 1) -[2617753.747] {Default Queue} wl_registry#390.global(24, "zwp_input_method_manager_v2", 1) -[2617753.751] {Default Queue} wl_registry#390.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617753.755] {Default Queue} wl_registry#390.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617753.759] {Default Queue} wl_registry#390.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617753.764] {Default Queue} wl_registry#390.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617753.768] {Default Queue} wl_registry#390.global(29, "ext_workspace_manager_v1", 1) -[2617753.772] {Default Queue} wl_registry#390.global(30, "zwlr_output_manager_v1", 4) -[2617753.777] {Default Queue} wl_registry#390.global(31, "zwlr_screencopy_manager_v1", 3) -[2617753.781] {Default Queue} wl_registry#390.global(32, "wp_viewporter", 1) -[2617753.785] {Default Queue} wl_registry#390.global(33, "zxdg_exporter_v2", 1) -[2617753.790] {Default Queue} wl_registry#390.global(34, "zxdg_importer_v2", 1) -[2617753.794] {Default Queue} wl_registry#390.global(36, "xdg_activation_v1", 1) -[2617753.799] {Default Queue} wl_registry#390.global(37, "mutter_x11_interop", 1) -[2617753.803] {Default Queue} wl_registry#390.global(38, "wl_seat", 9) -[2617753.807] {Default Queue} -> wl_registry#390.bind(38, "wl_seat", 1, new id [unknown]#408) -[2617753.812] {Default Queue} wl_registry#390.global(39, "wp_cursor_shape_manager_v1", 2) -[2617753.816] {Default Queue} wl_registry#390.global(40, "wl_output", 4) -[2617753.821] {Default Queue} -> wl_registry#390.bind(40, "wl_output", 1, new id [unknown]#409) -[2617753.825] {Default Queue} wl_callback#391.done(0) -[2617753.830] {Default Queue} discarded wl_surface#359.enter(wl_output#18) -[2617753.833] {Default Queue} discarded wl_surface#359.enter(wl_output#57) -[2617753.837] {Default Queue} discarded wl_surface#359.enter(wl_output#89) -[2617753.841] {Default Queue} discarded wl_surface#359.enter(wl_output#121) -[2617753.845] {Default Queue} discarded wl_surface#359.enter(wl_output#153) -[2617753.849] {Default Queue} discarded wl_surface#359.enter(wl_output#185) -[2617753.853] {Default Queue} discarded wl_surface#359.enter(wl_output#217) -[2617753.857] {Default Queue} discarded wl_surface#359.enter(wl_output#249) -[2617753.870] {Default Queue} discarded wl_surface#359.enter(wl_output#281) -[2617753.874] {Default Queue} discarded wl_surface#359.enter(wl_output#313) -[2617753.877] {Default Queue} discarded wl_surface#359.enter(wl_output#345) -[2617753.882] {Default Queue} discarded wl_surface#359.enter(wl_output#377) -[2617753.886] {Default Queue} -> wl_compositor#364.create_surface(new id wl_surface#391) -[2617753.890] {Default Queue} -> wl_subcompositor#397.get_subsurface(new id wl_subsurface#410, wl_surface#391, wl_surface#359) -[2617753.895] {Default Queue} -> wl_subsurface#410.set_desync() -[2617753.899] {Default Queue} -> wl_subsurface#410.set_position(0, 0) -[2617753.903] {Default Queue} -> wl_subsurface#410.place_above(wl_surface#359) -[2617753.952] {Default Queue} -> wl_shm#399.create_pool(new id wl_shm_pool#411, fd 69, 16) -[2617753.960] {Default Queue} -> wl_shm#399.create_pool(new id wl_shm_pool#412, fd 70, 16) -[2617753.964] {Default Queue} -> wl_shm_pool#411.create_buffer(new id wl_buffer#413, 0, 2, 2, 8, 0) -[2617753.973] {Default Queue} -> wl_shm_pool#412.create_buffer(new id wl_buffer#414, 0, 2, 2, 8, 0) -[2617753.983] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) -[2617753.988] {Default Queue} -> wl_surface#391.commit() -[2617753.993] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) -[2617753.998] {Default Queue} -> wl_surface#391.commit() -[2617754.002] {Default Queue} -> wl_compositor#396.create_region(new id wl_region#415) -[2617754.006] {Default Queue} -> wl_compositor#396.create_region(new id wl_region#416) -[2617754.011] {Default Queue} -> wl_region#415.subtract(0, 0, 2, 2) -[2617754.015] {Default Queue} -> wl_region#415.add(0, 0, 0, 0) -[2617754.020] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2617754.024] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2617754.028] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2617754.032] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) -[2617754.046] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) -[2617754.054] {Default Queue} -> wl_surface#391.commit() -[2617754.087] {Default Queue} -> wl_shm#401.create_pool(new id wl_shm_pool#417, fd 73, 640) -[2617754.094] {Default Queue} -> wl_shm#401.create_pool(new id wl_shm_pool#418, fd 74, 640) -[2617754.099] {Default Queue} -> wl_shm_pool#417.create_buffer(new id wl_buffer#419, 0, 10, 16, 40, 0) -[2617754.104] {Default Queue} -> wl_shm_pool#418.create_buffer(new id wl_buffer#420, 0, 10, 16, 40, 0) -[2617754.110] {Default Queue} -> wl_compositor#396.create_surface(new id wl_surface#421) -[2617754.115] {Default Queue} -> wl_surface#421.attach(wl_buffer#419, 0, 0) -[2617754.120] {Default Queue} -> wl_surface#421.commit() -[2617754.125] {Default Queue} -> wl_surface#421.attach(wl_buffer#419, 0, 0) -[2617754.129] {Default Queue} -> wl_surface#421.commit() -[2617754.135] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) -[2617754.141] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2617754.146] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2617754.153] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#422) -[2617754.158] {Default Queue} -> wl_display#1.sync(new id wl_callback#423) -[2617763.338] {Display Queue} wl_display#1.delete_id(423) -[2617763.356] {Default Queue} wl_keyboard#392.keymap(1, fd 69, 68213) -[2617763.366] {Default Queue} wl_keyboard#392.enter(566, wl_surface#19, array[0]) -[2617763.376] {Default Queue} wl_keyboard#392.modifiers(566, 0, 0, 16, 0) -[2617763.386] {Default Queue} discarded wl_shm#399.format(875709016) -[2617763.394] {Default Queue} discarded wl_shm#399.format(1) -[2617763.400] {Default Queue} discarded wl_shm#399.format(0) -[2617763.410] {Default Queue} discarded wl_shm#399.format(875708993) -[2617763.417] {Default Queue} discarded wl_shm#400.format(875709016) -[2617763.425] {Default Queue} discarded wl_shm#400.format(1) -[2617763.432] {Default Queue} discarded wl_shm#400.format(0) -[2617763.440] {Default Queue} discarded wl_shm#400.format(875708993) -[2617763.447] {Default Queue} discarded wl_shm#401.format(875709016) -[2617763.454] {Default Queue} discarded wl_shm#401.format(1) -[2617763.461] {Default Queue} discarded wl_shm#401.format(0) -[2617763.467] {Default Queue} discarded wl_shm#401.format(875708993) -[2617763.474] {Default Queue} wl_seat#408.capabilities(7) -[2617763.482] {Default Queue} -> wl_seat#408.get_keyboard(new id wl_keyboard#424) -[2617763.490] {Default Queue} -> wl_seat#408.get_pointer(new id wl_pointer#425) -[2617763.499] {Default Queue} -> wl_data_device_manager#404.get_data_device(new id wl_data_device#426, wl_seat#408) -[2617763.508] {Default Queue} -> zwp_primary_selection_device_manager_v1#406.get_device(new id zwp_primary_selection_device_v1#427, wl_seat#408) -[2617763.523] {Default Queue} wl_output#409.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617763.534] {Default Queue} wl_output#409.mode(3, 1280, 800, 60000) -[2617763.542] {Default Queue} discarded wl_surface#3.enter(wl_output#409) -[2617763.550] {Default Queue} discarded wl_surface#135.enter(wl_output#409) -[2617763.566] {Default Queue} discarded wl_surface#231.enter(wl_output#409) -[2617763.580] {Default Queue} discarded wl_surface#359.enter(wl_output#409) -[2617763.587] {Default Queue} discarded wl_surface#103.enter(wl_output#409) -[2617763.592] {Default Queue} discarded wl_surface#327.enter(wl_output#409) -[2617763.597] {Default Queue} discarded wl_surface#43.enter(wl_output#409) -[2617763.603] {Default Queue} discarded wl_surface#19.enter(wl_output#409) -[2617763.610] {Default Queue} discarded wl_surface#199.enter(wl_output#409) -[2617763.616] {Default Queue} discarded wl_surface#263.enter(wl_output#409) -[2617763.623] {Default Queue} discarded wl_surface#71.enter(wl_output#409) -[2617763.630] {Default Queue} discarded wl_surface#295.enter(wl_output#409) -[2617763.637] {Default Queue} discarded wl_surface#167.enter(wl_output#409) -[2617763.644] {Default Queue} wl_registry#422.global(1, "wl_compositor", 6) -[2617763.651] {Default Queue} -> wl_registry#422.bind(1, "wl_compositor", 1, new id [unknown]#428) -[2617763.657] {Default Queue} wl_registry#422.global(2, "wl_subcompositor", 1) -[2617763.663] {Default Queue} -> wl_registry#422.bind(2, "wl_subcompositor", 1, new id [unknown]#429) -[2617763.669] {Default Queue} wl_registry#422.global(3, "xdg_wm_base", 6) -[2617763.675] {Default Queue} -> wl_registry#422.bind(3, "xdg_wm_base", 1, new id [unknown]#430) -[2617763.681] {Default Queue} wl_registry#422.global(6, "zwlr_layer_shell_v1", 5) -[2617763.687] {Default Queue} wl_registry#422.global(7, "ext_session_lock_manager_v1", 1) -[2617763.692] {Default Queue} wl_registry#422.global(8, "wl_shm", 2) -[2617763.699] {Default Queue} -> wl_registry#422.bind(8, "wl_shm", 1, new id [unknown]#431) -[2617763.704] {Default Queue} -> wl_registry#422.bind(8, "wl_shm", 1, new id [unknown]#432) -[2617763.710] {Default Queue} -> wl_registry#422.bind(8, "wl_shm", 1, new id [unknown]#433) -[2617763.716] {Default Queue} wl_registry#422.global(9, "zxdg_output_manager_v1", 3) -[2617763.721] {Default Queue} wl_registry#422.global(10, "wp_fractional_scale_manager_v1", 1) -[2617763.727] {Default Queue} wl_registry#422.global(11, "zwp_tablet_manager_v2", 1) -[2617763.733] {Default Queue} wl_registry#422.global(12, "zwp_pointer_gestures_v1", 3) -[2617763.738] {Default Queue} wl_registry#422.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617763.744] {Default Queue} -> wl_registry#422.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#434) -[2617763.749] {Default Queue} wl_registry#422.global(14, "zwp_pointer_constraints_v1", 1) -[2617763.755] {Default Queue} -> wl_registry#422.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#435) -[2617763.761] {Default Queue} wl_registry#422.global(15, "ext_idle_notifier_v1", 2) -[2617763.766] {Default Queue} wl_registry#422.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617763.772] {Default Queue} wl_registry#422.global(17, "wl_data_device_manager", 3) -[2617763.779] {Default Queue} -> wl_registry#422.bind(17, "wl_data_device_manager", 2, new id [unknown]#436) -[2617763.784] {Default Queue} -> wl_data_device_manager#436.create_data_source(new id wl_data_source#437) -[2617763.790] {Default Queue} -> wl_data_source#437.offer("text/plain") -[2617763.795] {Default Queue} -> wl_data_source#437.offer("text/plain;charset=utf-8") -[2617763.800] {Default Queue} -> wl_data_source#437.offer("TEXT") -[2617763.806] {Default Queue} -> wl_data_source#437.offer("STRING") -[2617763.811] {Default Queue} -> wl_data_source#437.offer("UTF8_STRING") -[2617763.817] {Default Queue} wl_registry#422.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617763.823] {Default Queue} -> wl_registry#422.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#438) -[2617763.828] {Default Queue} -> zwp_primary_selection_device_manager_v1#438.create_source(new id zwp_primary_selection_source_v1#439) -[2617763.838] {Default Queue} -> zwp_primary_selection_source_v1#439.offer("text/plain") -[2617763.843] {Default Queue} -> zwp_primary_selection_source_v1#439.offer("text/plain;charset=utf-8") -[2617763.848] {Default Queue} -> zwp_primary_selection_source_v1#439.offer("TEXT") -[2617763.860] {Default Queue} -> zwp_primary_selection_source_v1#439.offer("STRING") -[2617763.873] {Default Queue} -> zwp_primary_selection_source_v1#439.offer("UTF8_STRING") -[2617763.878] {Default Queue} wl_registry#422.global(19, "zwlr_data_control_manager_v1", 2) -[2617763.884] {Default Queue} wl_registry#422.global(20, "ext_data_control_manager_v1", 1) -[2617763.890] {Default Queue} wl_registry#422.global(21, "wp_presentation", 2) -[2617763.896] {Default Queue} wl_registry#422.global(22, "wp_security_context_manager_v1", 1) -[2617763.902] {Default Queue} wl_registry#422.global(23, "zwp_text_input_manager_v3", 1) -[2617763.907] {Default Queue} wl_registry#422.global(24, "zwp_input_method_manager_v2", 1) -[2617763.913] {Default Queue} wl_registry#422.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617763.918] {Default Queue} wl_registry#422.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617763.924] {Default Queue} wl_registry#422.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617763.930] {Default Queue} wl_registry#422.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617763.936] {Default Queue} wl_registry#422.global(29, "ext_workspace_manager_v1", 1) -[2617763.942] {Default Queue} wl_registry#422.global(30, "zwlr_output_manager_v1", 4) -[2617763.947] {Default Queue} wl_registry#422.global(31, "zwlr_screencopy_manager_v1", 3) -[2617763.952] {Default Queue} wl_registry#422.global(32, "wp_viewporter", 1) -[2617763.958] {Default Queue} wl_registry#422.global(33, "zxdg_exporter_v2", 1) -[2617763.963] {Default Queue} wl_registry#422.global(34, "zxdg_importer_v2", 1) -[2617763.969] {Default Queue} wl_registry#422.global(36, "xdg_activation_v1", 1) -[2617763.974] {Default Queue} wl_registry#422.global(37, "mutter_x11_interop", 1) -[2617763.980] {Default Queue} wl_registry#422.global(38, "wl_seat", 9) -[2617763.986] {Default Queue} -> wl_registry#422.bind(38, "wl_seat", 1, new id [unknown]#440) -[2617763.992] {Default Queue} wl_registry#422.global(39, "wp_cursor_shape_manager_v1", 2) -[2617763.997] {Default Queue} wl_registry#422.global(40, "wl_output", 4) -[2617764.003] {Default Queue} -> wl_registry#422.bind(40, "wl_output", 1, new id [unknown]#441) -[2617764.009] {Default Queue} wl_callback#423.done(0) -[2617764.015] {Default Queue} discarded wl_surface#391.enter(wl_output#18) -[2617764.020] {Default Queue} discarded wl_surface#391.enter(wl_output#57) -[2617764.026] {Default Queue} discarded wl_surface#391.enter(wl_output#89) -[2617764.031] {Default Queue} discarded wl_surface#391.enter(wl_output#121) -[2617764.036] {Default Queue} discarded wl_surface#391.enter(wl_output#153) -[2617764.041] {Default Queue} discarded wl_surface#391.enter(wl_output#185) -[2617764.046] {Default Queue} discarded wl_surface#391.enter(wl_output#217) -[2617764.051] {Default Queue} discarded wl_surface#391.enter(wl_output#249) -[2617764.056] {Default Queue} discarded wl_surface#391.enter(wl_output#281) -[2617764.061] {Default Queue} discarded wl_surface#391.enter(wl_output#313) -[2617764.066] {Default Queue} discarded wl_surface#391.enter(wl_output#345) -[2617764.071] {Default Queue} discarded wl_surface#391.enter(wl_output#377) -[2617764.076] {Default Queue} discarded wl_surface#391.enter(wl_output#409) -[2617764.082] {Default Queue} -> wl_compositor#364.create_surface(new id wl_surface#423) -[2617764.087] {Default Queue} -> wl_subcompositor#429.get_subsurface(new id wl_subsurface#442, wl_surface#423, wl_surface#359) -[2617764.094] {Default Queue} -> wl_subsurface#442.set_desync() -[2617764.099] {Default Queue} -> wl_subsurface#442.set_position(0, 0) -[2617764.105] {Default Queue} -> wl_subsurface#442.place_above(wl_surface#359) -[2617764.161] {Default Queue} -> wl_shm#431.create_pool(new id wl_shm_pool#443, fd 74, 16) -[2617764.169] {Default Queue} -> wl_shm#431.create_pool(new id wl_shm_pool#444, fd 75, 16) -[2617764.176] {Default Queue} -> wl_shm_pool#443.create_buffer(new id wl_buffer#445, 0, 2, 2, 8, 0) -[2617764.182] {Default Queue} -> wl_shm_pool#444.create_buffer(new id wl_buffer#446, 0, 2, 2, 8, 0) -[2617764.197] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) -[2617764.207] {Default Queue} -> wl_surface#423.commit() -[2617764.217] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) -[2617764.225] {Default Queue} -> wl_surface#423.commit() -[2617764.233] {Default Queue} -> wl_compositor#428.create_region(new id wl_region#447) -[2617764.240] {Default Queue} -> wl_compositor#428.create_region(new id wl_region#448) -[2617764.245] {Default Queue} -> wl_region#447.subtract(0, 0, 2, 2) -[2617764.250] {Default Queue} -> wl_region#447.add(0, 0, 0, 0) -[2617764.254] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) -[2617764.259] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) -[2617764.263] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) -[2617764.268] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) -[2617764.277] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) -[2617764.282] {Default Queue} -> wl_surface#423.commit() -[2617764.321] {Default Queue} -> wl_shm#433.create_pool(new id wl_shm_pool#449, fd 78, 640) -[2617764.329] {Default Queue} -> wl_shm#433.create_pool(new id wl_shm_pool#450, fd 79, 640) -[2617764.334] {Default Queue} -> wl_shm_pool#449.create_buffer(new id wl_buffer#451, 0, 10, 16, 40, 0) -[2617764.339] {Default Queue} -> wl_shm_pool#450.create_buffer(new id wl_buffer#452, 0, 10, 16, 40, 0) -[2617764.347] {Default Queue} -> wl_compositor#428.create_surface(new id wl_surface#453) -[2617764.352] {Default Queue} -> wl_surface#453.attach(wl_buffer#451, 0, 0) -[2617764.356] {Default Queue} -> wl_surface#453.commit() -[2617764.363] {Default Queue} -> wl_surface#453.attach(wl_buffer#451, 0, 0) -[2617764.369] {Default Queue} -> wl_surface#453.commit() -[2617764.374] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) -[2617764.381] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#454) -[2617764.386] {Default Queue} -> wl_display#1.sync(new id wl_callback#455) -[2617773.370] {Display Queue} wl_display#1.delete_id(455) -[2617773.384] {Default Queue} wl_keyboard#424.keymap(1, fd 74, 68213) -[2617773.392] {Default Queue} wl_keyboard#424.enter(566, wl_surface#19, array[0]) -[2617773.399] {Default Queue} wl_keyboard#424.modifiers(566, 0, 0, 16, 0) -[2617773.407] {Default Queue} discarded wl_shm#431.format(875709016) -[2617773.412] {Default Queue} discarded wl_shm#431.format(1) -[2617773.418] {Default Queue} discarded wl_shm#431.format(0) -[2617773.424] {Default Queue} discarded wl_shm#431.format(875708993) -[2617773.430] {Default Queue} discarded wl_shm#432.format(875709016) -[2617773.436] {Default Queue} discarded wl_shm#432.format(1) -[2617773.442] {Default Queue} discarded wl_shm#432.format(0) -[2617773.449] {Default Queue} discarded wl_shm#432.format(875708993) -[2617773.455] {Default Queue} discarded wl_shm#433.format(875709016) -[2617773.460] {Default Queue} discarded wl_shm#433.format(1) -[2617773.466] {Default Queue} discarded wl_shm#433.format(0) -[2617773.471] {Default Queue} discarded wl_shm#433.format(875708993) -[2617773.476] {Default Queue} wl_seat#440.capabilities(7) -[2617773.483] {Default Queue} -> wl_seat#440.get_keyboard(new id wl_keyboard#456) -[2617773.489] {Default Queue} -> wl_seat#440.get_pointer(new id wl_pointer#457) -[2617773.496] {Default Queue} -> wl_data_device_manager#436.get_data_device(new id wl_data_device#458, wl_seat#440) -[2617773.503] {Default Queue} -> zwp_primary_selection_device_manager_v1#438.get_device(new id zwp_primary_selection_device_v1#459, wl_seat#440) -[2617773.514] {Default Queue} wl_output#441.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617773.522] {Default Queue} wl_output#441.mode(3, 1280, 800, 60000) -[2617773.528] {Default Queue} discarded wl_surface#3.enter(wl_output#441) -[2617773.534] {Default Queue} discarded wl_surface#135.enter(wl_output#441) -[2617773.540] {Default Queue} discarded wl_surface#231.enter(wl_output#441) -[2617773.545] {Default Queue} discarded wl_surface#359.enter(wl_output#441) -[2617773.551] {Default Queue} discarded wl_surface#103.enter(wl_output#441) -[2617773.562] {Default Queue} discarded wl_surface#327.enter(wl_output#441) -[2617773.569] {Default Queue} discarded wl_surface#43.enter(wl_output#441) -[2617773.573] {Default Queue} discarded wl_surface#19.enter(wl_output#441) -[2617773.577] {Default Queue} discarded wl_surface#199.enter(wl_output#441) -[2617773.581] {Default Queue} discarded wl_surface#391.enter(wl_output#441) -[2617773.585] {Default Queue} discarded wl_surface#263.enter(wl_output#441) -[2617773.590] {Default Queue} discarded wl_surface#71.enter(wl_output#441) -[2617773.596] {Default Queue} discarded wl_surface#295.enter(wl_output#441) -[2617773.601] {Default Queue} discarded wl_surface#167.enter(wl_output#441) -[2617773.606] {Default Queue} wl_registry#454.global(1, "wl_compositor", 6) -[2617773.614] {Default Queue} -> wl_registry#454.bind(1, "wl_compositor", 1, new id [unknown]#460) -[2617773.620] {Default Queue} wl_registry#454.global(2, "wl_subcompositor", 1) -[2617773.626] {Default Queue} -> wl_registry#454.bind(2, "wl_subcompositor", 1, new id [unknown]#461) -[2617773.630] {Default Queue} wl_registry#454.global(3, "xdg_wm_base", 6) -[2617773.635] {Default Queue} -> wl_registry#454.bind(3, "xdg_wm_base", 1, new id [unknown]#462) -[2617773.639] {Default Queue} wl_registry#454.global(6, "zwlr_layer_shell_v1", 5) -[2617773.644] {Default Queue} wl_registry#454.global(7, "ext_session_lock_manager_v1", 1) -[2617773.648] {Default Queue} wl_registry#454.global(8, "wl_shm", 2) -[2617773.653] {Default Queue} -> wl_registry#454.bind(8, "wl_shm", 1, new id [unknown]#463) -[2617773.657] {Default Queue} -> wl_registry#454.bind(8, "wl_shm", 1, new id [unknown]#464) -[2617773.662] {Default Queue} -> wl_registry#454.bind(8, "wl_shm", 1, new id [unknown]#465) -[2617773.666] {Default Queue} wl_registry#454.global(9, "zxdg_output_manager_v1", 3) -[2617773.670] {Default Queue} wl_registry#454.global(10, "wp_fractional_scale_manager_v1", 1) -[2617773.675] {Default Queue} wl_registry#454.global(11, "zwp_tablet_manager_v2", 1) -[2617773.679] {Default Queue} wl_registry#454.global(12, "zwp_pointer_gestures_v1", 3) -[2617773.684] {Default Queue} wl_registry#454.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617773.688] {Default Queue} -> wl_registry#454.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#466) -[2617773.693] {Default Queue} wl_registry#454.global(14, "zwp_pointer_constraints_v1", 1) -[2617773.697] {Default Queue} -> wl_registry#454.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#467) -[2617773.702] {Default Queue} wl_registry#454.global(15, "ext_idle_notifier_v1", 2) -[2617773.706] {Default Queue} wl_registry#454.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617773.711] {Default Queue} wl_registry#454.global(17, "wl_data_device_manager", 3) -[2617773.717] {Default Queue} -> wl_registry#454.bind(17, "wl_data_device_manager", 2, new id [unknown]#468) -[2617773.721] {Default Queue} -> wl_data_device_manager#468.create_data_source(new id wl_data_source#469) -[2617773.725] {Default Queue} -> wl_data_source#469.offer("text/plain") -[2617773.730] {Default Queue} -> wl_data_source#469.offer("text/plain;charset=utf-8") -[2617773.734] {Default Queue} -> wl_data_source#469.offer("TEXT") -[2617773.738] {Default Queue} -> wl_data_source#469.offer("STRING") -[2617773.742] {Default Queue} -> wl_data_source#469.offer("UTF8_STRING") -[2617773.746] {Default Queue} wl_registry#454.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617773.751] {Default Queue} -> wl_registry#454.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#470) -[2617773.755] {Default Queue} -> zwp_primary_selection_device_manager_v1#470.create_source(new id zwp_primary_selection_source_v1#471) -[2617773.765] {Default Queue} -> zwp_primary_selection_source_v1#471.offer("text/plain") -[2617773.771] {Default Queue} -> zwp_primary_selection_source_v1#471.offer("text/plain;charset=utf-8") -[2617773.775] {Default Queue} -> zwp_primary_selection_source_v1#471.offer("TEXT") -[2617773.780] {Default Queue} -> zwp_primary_selection_source_v1#471.offer("STRING") -[2617773.784] {Default Queue} -> zwp_primary_selection_source_v1#471.offer("UTF8_STRING") -[2617773.792] {Default Queue} wl_registry#454.global(19, "zwlr_data_control_manager_v1", 2) -[2617773.799] {Default Queue} wl_registry#454.global(20, "ext_data_control_manager_v1", 1) -[2617773.803] {Default Queue} wl_registry#454.global(21, "wp_presentation", 2) -[2617773.807] {Default Queue} wl_registry#454.global(22, "wp_security_context_manager_v1", 1) -[2617773.812] {Default Queue} wl_registry#454.global(23, "zwp_text_input_manager_v3", 1) -[2617773.816] {Default Queue} wl_registry#454.global(24, "zwp_input_method_manager_v2", 1) -[2617773.821] {Default Queue} wl_registry#454.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617773.825] {Default Queue} wl_registry#454.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617773.829] {Default Queue} wl_registry#454.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617773.834] {Default Queue} wl_registry#454.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617773.838] {Default Queue} wl_registry#454.global(29, "ext_workspace_manager_v1", 1) -[2617773.843] {Default Queue} wl_registry#454.global(30, "zwlr_output_manager_v1", 4) -[2617773.847] {Default Queue} wl_registry#454.global(31, "zwlr_screencopy_manager_v1", 3) -[2617773.852] {Default Queue} wl_registry#454.global(32, "wp_viewporter", 1) -[2617773.857] {Default Queue} wl_registry#454.global(33, "zxdg_exporter_v2", 1) -[2617773.862] {Default Queue} wl_registry#454.global(34, "zxdg_importer_v2", 1) -[2617773.866] {Default Queue} wl_registry#454.global(36, "xdg_activation_v1", 1) -[2617773.880] {Default Queue} wl_registry#454.global(37, "mutter_x11_interop", 1) -[2617773.885] {Default Queue} wl_registry#454.global(38, "wl_seat", 9) -[2617773.890] {Default Queue} -> wl_registry#454.bind(38, "wl_seat", 1, new id [unknown]#472) -[2617773.894] {Default Queue} wl_registry#454.global(39, "wp_cursor_shape_manager_v1", 2) -[2617773.898] {Default Queue} wl_registry#454.global(40, "wl_output", 4) -[2617773.903] {Default Queue} -> wl_registry#454.bind(40, "wl_output", 1, new id [unknown]#473) -[2617773.908] {Default Queue} wl_callback#455.done(0) -[2617773.912] {Default Queue} discarded wl_surface#423.enter(wl_output#18) -[2617773.916] {Default Queue} discarded wl_surface#423.enter(wl_output#57) -[2617773.920] {Default Queue} discarded wl_surface#423.enter(wl_output#89) -[2617773.924] {Default Queue} discarded wl_surface#423.enter(wl_output#121) -[2617773.928] {Default Queue} discarded wl_surface#423.enter(wl_output#153) -[2617773.933] {Default Queue} discarded wl_surface#423.enter(wl_output#185) -[2617773.938] {Default Queue} discarded wl_surface#423.enter(wl_output#217) -[2617773.944] {Default Queue} discarded wl_surface#423.enter(wl_output#249) -[2617773.949] {Default Queue} discarded wl_surface#423.enter(wl_output#281) -[2617773.953] {Default Queue} discarded wl_surface#423.enter(wl_output#313) -[2617773.957] {Default Queue} discarded wl_surface#423.enter(wl_output#345) -[2617773.961] {Default Queue} discarded wl_surface#423.enter(wl_output#377) -[2617773.965] {Default Queue} discarded wl_surface#423.enter(wl_output#409) -[2617773.969] {Default Queue} discarded wl_surface#423.enter(wl_output#441) -[2617773.973] {Default Queue} -> wl_compositor#428.create_surface(new id wl_surface#455) -[2617773.978] {Default Queue} -> wl_subcompositor#461.get_subsurface(new id wl_subsurface#474, wl_surface#455, wl_surface#423) -[2617773.983] {Default Queue} -> wl_subsurface#474.set_desync() -[2617773.987] {Default Queue} -> wl_subsurface#474.set_position(0, 0) -[2617773.992] {Default Queue} -> wl_subsurface#474.place_above(wl_surface#423) -[2617774.048] {Default Queue} -> wl_shm#463.create_pool(new id wl_shm_pool#475, fd 79, 16) -[2617774.058] {Default Queue} -> wl_shm#463.create_pool(new id wl_shm_pool#476, fd 80, 16) -[2617774.063] {Default Queue} -> wl_shm_pool#475.create_buffer(new id wl_buffer#477, 0, 2, 2, 8, 0) -[2617774.068] {Default Queue} -> wl_shm_pool#476.create_buffer(new id wl_buffer#478, 0, 2, 2, 8, 0) -[2617774.079] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) -[2617774.090] {Default Queue} -> wl_surface#455.commit() -[2617774.099] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) -[2617774.104] {Default Queue} -> wl_surface#455.commit() -[2617774.108] {Default Queue} -> wl_compositor#460.create_region(new id wl_region#479) -[2617774.112] {Default Queue} -> wl_compositor#460.create_region(new id wl_region#480) -[2617774.118] {Default Queue} -> wl_region#479.subtract(0, 0, 2, 2) -[2617774.124] {Default Queue} -> wl_region#479.add(0, 0, 0, 0) -[2617774.128] {Default Queue} -> wl_surface#455.set_opaque_region(wl_region#480) -[2617774.133] {Default Queue} -> wl_surface#455.set_input_region(wl_region#479) -[2617774.137] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2617774.142] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) -[2617774.149] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) -[2617774.153] {Default Queue} -> wl_surface#455.commit() -[2617774.190] {Default Queue} -> wl_shm#465.create_pool(new id wl_shm_pool#481, fd 83, 640) -[2617774.198] {Default Queue} -> wl_shm#465.create_pool(new id wl_shm_pool#482, fd 84, 640) -[2617774.203] {Default Queue} -> wl_shm_pool#481.create_buffer(new id wl_buffer#483, 0, 10, 16, 40, 0) -[2617774.208] {Default Queue} -> wl_shm_pool#482.create_buffer(new id wl_buffer#484, 0, 10, 16, 40, 0) -[2617774.216] {Default Queue} -> wl_compositor#460.create_surface(new id wl_surface#485) -[2617774.220] {Default Queue} -> wl_surface#485.attach(wl_buffer#483, 0, 0) -[2617774.225] {Default Queue} -> wl_surface#485.commit() -[2617774.230] {Default Queue} -> wl_surface#485.attach(wl_buffer#483, 0, 0) -[2617774.235] {Default Queue} -> wl_surface#485.commit() -[2617774.247] {Default Queue} -> wl_region#383.subtract(0, 0, 2, 2) -[2617774.252] {Default Queue} -> wl_subsurface#378.set_position(3, 3) -[2617774.257] {Default Queue} -> wl_region#383.subtract(0, 0, 5, 5) -[2617774.262] {Default Queue} -> wl_region#383.add(0, 0, 0, 0) -[2617774.266] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) -[2617774.271] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) -[2617774.275] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2617774.279] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2617774.284] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) -[2617774.288] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) -[2617774.296] {Default Queue} -> wl_region#383.subtract(0, 0, 5, 5) -[2617774.301] {Default Queue} -> wl_region#383.add(0, 0, 0, 0) -[2617774.305] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) -[2617774.309] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) -[2617774.315] {Default Queue} -> wl_surface#359.attach(wl_buffer#381, 0, 0) -[2617774.320] {Default Queue} -> wl_surface#359.commit() -[2617774.328] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#486) -[2617774.333] {Default Queue} -> wl_display#1.sync(new id wl_callback#487) -[2617783.979] {Display Queue} wl_display#1.delete_id(487) -[2617783.996] {Default Queue} wl_keyboard#456.keymap(1, fd 79, 68213) -[2617784.003] {Default Queue} wl_keyboard#456.enter(566, wl_surface#19, array[0]) -[2617784.011] {Default Queue} wl_keyboard#456.modifiers(566, 0, 0, 16, 0) -[2617784.018] {Default Queue} discarded wl_shm#463.format(875709016) -[2617784.025] {Default Queue} discarded wl_shm#463.format(1) -[2617784.030] {Default Queue} discarded wl_shm#463.format(0) -[2617784.035] {Default Queue} discarded wl_shm#463.format(875708993) -[2617784.041] {Default Queue} discarded wl_shm#464.format(875709016) -[2617784.046] {Default Queue} discarded wl_shm#464.format(1) -[2617784.052] {Default Queue} discarded wl_shm#464.format(0) -[2617784.058] {Default Queue} discarded wl_shm#464.format(875708993) -[2617784.064] {Default Queue} discarded wl_shm#465.format(875709016) -[2617784.069] {Default Queue} discarded wl_shm#465.format(1) -[2617784.075] {Default Queue} discarded wl_shm#465.format(0) -[2617784.081] {Default Queue} discarded wl_shm#465.format(875708993) -[2617784.086] {Default Queue} wl_seat#472.capabilities(7) -[2617784.101] {Default Queue} -> wl_seat#472.get_keyboard(new id wl_keyboard#488) -[2617784.113] {Default Queue} -> wl_seat#472.get_pointer(new id wl_pointer#489) -[2617784.120] {Default Queue} -> wl_data_device_manager#468.get_data_device(new id wl_data_device#490, wl_seat#472) -[2617784.126] {Default Queue} -> zwp_primary_selection_device_manager_v1#470.get_device(new id zwp_primary_selection_device_v1#491, wl_seat#472) -[2617784.138] {Default Queue} wl_output#473.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617784.145] {Default Queue} wl_output#473.mode(3, 1280, 800, 60000) -[2617784.152] {Default Queue} discarded wl_surface#3.enter(wl_output#473) -[2617784.158] {Default Queue} discarded wl_surface#423.enter(wl_output#473) -[2617784.164] {Default Queue} discarded wl_surface#135.enter(wl_output#473) -[2617784.170] {Default Queue} discarded wl_surface#231.enter(wl_output#473) -[2617784.175] {Default Queue} discarded wl_surface#359.enter(wl_output#473) -[2617784.181] {Default Queue} discarded wl_surface#103.enter(wl_output#473) -[2617784.187] {Default Queue} discarded wl_surface#327.enter(wl_output#473) -[2617784.192] {Default Queue} discarded wl_surface#43.enter(wl_output#473) -[2617784.198] {Default Queue} discarded wl_surface#19.enter(wl_output#473) -[2617784.204] {Default Queue} discarded wl_surface#199.enter(wl_output#473) -[2617784.209] {Default Queue} discarded wl_surface#391.enter(wl_output#473) -[2617784.213] {Default Queue} discarded wl_surface#263.enter(wl_output#473) -[2617784.217] {Default Queue} discarded wl_surface#71.enter(wl_output#473) -[2617784.221] {Default Queue} discarded wl_surface#295.enter(wl_output#473) -[2617784.225] {Default Queue} discarded wl_surface#167.enter(wl_output#473) -[2617784.229] {Default Queue} wl_registry#486.global(1, "wl_compositor", 6) -[2617784.237] {Default Queue} -> wl_registry#486.bind(1, "wl_compositor", 1, new id [unknown]#492) -[2617784.244] {Default Queue} wl_registry#486.global(2, "wl_subcompositor", 1) -[2617784.250] {Default Queue} -> wl_registry#486.bind(2, "wl_subcompositor", 1, new id [unknown]#493) -[2617784.256] {Default Queue} wl_registry#486.global(3, "xdg_wm_base", 6) -[2617784.263] {Default Queue} -> wl_registry#486.bind(3, "xdg_wm_base", 1, new id [unknown]#494) -[2617784.268] {Default Queue} wl_registry#486.global(6, "zwlr_layer_shell_v1", 5) -[2617784.273] {Default Queue} wl_registry#486.global(7, "ext_session_lock_manager_v1", 1) -[2617784.278] {Default Queue} wl_registry#486.global(8, "wl_shm", 2) -[2617784.283] {Default Queue} -> wl_registry#486.bind(8, "wl_shm", 1, new id [unknown]#495) -[2617784.288] {Default Queue} -> wl_registry#486.bind(8, "wl_shm", 1, new id [unknown]#496) -[2617784.292] {Default Queue} -> wl_registry#486.bind(8, "wl_shm", 1, new id [unknown]#497) -[2617784.297] {Default Queue} wl_registry#486.global(9, "zxdg_output_manager_v1", 3) -[2617784.301] {Default Queue} wl_registry#486.global(10, "wp_fractional_scale_manager_v1", 1) -[2617784.305] {Default Queue} wl_registry#486.global(11, "zwp_tablet_manager_v2", 1) -[2617784.310] {Default Queue} wl_registry#486.global(12, "zwp_pointer_gestures_v1", 3) -[2617784.314] {Default Queue} wl_registry#486.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617784.319] {Default Queue} -> wl_registry#486.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#498) -[2617784.324] {Default Queue} wl_registry#486.global(14, "zwp_pointer_constraints_v1", 1) -[2617784.328] {Default Queue} -> wl_registry#486.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#499) -[2617784.333] {Default Queue} wl_registry#486.global(15, "ext_idle_notifier_v1", 2) -[2617784.337] {Default Queue} wl_registry#486.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617784.341] {Default Queue} wl_registry#486.global(17, "wl_data_device_manager", 3) -[2617784.346] {Default Queue} -> wl_registry#486.bind(17, "wl_data_device_manager", 2, new id [unknown]#500) -[2617784.351] {Default Queue} -> wl_data_device_manager#500.create_data_source(new id wl_data_source#501) -[2617784.356] {Default Queue} -> wl_data_source#501.offer("text/plain") -[2617784.364] {Default Queue} -> wl_data_source#501.offer("text/plain;charset=utf-8") -[2617784.371] {Default Queue} -> wl_data_source#501.offer("TEXT") -[2617784.376] {Default Queue} -> wl_data_source#501.offer("STRING") -[2617784.380] {Default Queue} -> wl_data_source#501.offer("UTF8_STRING") -[2617784.384] {Default Queue} wl_registry#486.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617784.389] {Default Queue} -> wl_registry#486.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#502) -[2617784.394] {Default Queue} -> zwp_primary_selection_device_manager_v1#502.create_source(new id zwp_primary_selection_source_v1#503) -[2617784.401] {Default Queue} -> zwp_primary_selection_source_v1#503.offer("text/plain") -[2617784.405] {Default Queue} -> zwp_primary_selection_source_v1#503.offer("text/plain;charset=utf-8") -[2617784.410] {Default Queue} -> zwp_primary_selection_source_v1#503.offer("TEXT") -[2617784.414] {Default Queue} -> zwp_primary_selection_source_v1#503.offer("STRING") -[2617784.418] {Default Queue} -> zwp_primary_selection_source_v1#503.offer("UTF8_STRING") -[2617784.422] {Default Queue} wl_registry#486.global(19, "zwlr_data_control_manager_v1", 2) -[2617784.426] {Default Queue} wl_registry#486.global(20, "ext_data_control_manager_v1", 1) -[2617784.431] {Default Queue} wl_registry#486.global(21, "wp_presentation", 2) -[2617784.435] {Default Queue} wl_registry#486.global(22, "wp_security_context_manager_v1", 1) -[2617784.440] {Default Queue} wl_registry#486.global(23, "zwp_text_input_manager_v3", 1) -[2617784.444] {Default Queue} wl_registry#486.global(24, "zwp_input_method_manager_v2", 1) -[2617784.449] {Default Queue} wl_registry#486.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617784.454] {Default Queue} wl_registry#486.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617784.458] {Default Queue} wl_registry#486.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617784.462] {Default Queue} wl_registry#486.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617784.466] {Default Queue} wl_registry#486.global(29, "ext_workspace_manager_v1", 1) -[2617784.471] {Default Queue} wl_registry#486.global(30, "zwlr_output_manager_v1", 4) -[2617784.475] {Default Queue} wl_registry#486.global(31, "zwlr_screencopy_manager_v1", 3) -[2617784.479] {Default Queue} wl_registry#486.global(32, "wp_viewporter", 1) -[2617784.484] {Default Queue} wl_registry#486.global(33, "zxdg_exporter_v2", 1) -[2617784.489] {Default Queue} wl_registry#486.global(34, "zxdg_importer_v2", 1) -[2617784.493] {Default Queue} wl_registry#486.global(36, "xdg_activation_v1", 1) -[2617784.497] {Default Queue} wl_registry#486.global(37, "mutter_x11_interop", 1) -[2617784.502] {Default Queue} wl_registry#486.global(38, "wl_seat", 9) -[2617784.506] {Default Queue} -> wl_registry#486.bind(38, "wl_seat", 1, new id [unknown]#504) -[2617784.511] {Default Queue} wl_registry#486.global(39, "wp_cursor_shape_manager_v1", 2) -[2617784.515] {Default Queue} wl_registry#486.global(40, "wl_output", 4) -[2617784.520] {Default Queue} -> wl_registry#486.bind(40, "wl_output", 1, new id [unknown]#505) -[2617784.524] {Default Queue} wl_callback#487.done(0) -[2617784.529] {Default Queue} discarded wl_surface#455.enter(wl_output#18) -[2617784.533] {Default Queue} discarded wl_surface#455.enter(wl_output#57) -[2617784.537] {Default Queue} discarded wl_surface#455.enter(wl_output#89) -[2617784.541] {Default Queue} discarded wl_surface#455.enter(wl_output#121) -[2617784.545] {Default Queue} discarded wl_surface#455.enter(wl_output#153) -[2617784.549] {Default Queue} discarded wl_surface#455.enter(wl_output#185) -[2617784.554] {Default Queue} discarded wl_surface#455.enter(wl_output#217) -[2617784.558] {Default Queue} discarded wl_surface#455.enter(wl_output#249) -[2617784.562] {Default Queue} discarded wl_surface#455.enter(wl_output#281) -[2617784.566] {Default Queue} discarded wl_surface#455.enter(wl_output#313) -[2617784.569] {Default Queue} discarded wl_surface#455.enter(wl_output#345) -[2617784.573] {Default Queue} discarded wl_surface#455.enter(wl_output#377) -[2617784.580] {Default Queue} discarded wl_surface#455.enter(wl_output#409) -[2617784.586] {Default Queue} discarded wl_surface#455.enter(wl_output#441) -[2617784.590] {Default Queue} discarded wl_surface#455.enter(wl_output#473) -[2617784.594] {Default Queue} -> wl_compositor#460.create_surface(new id wl_surface#487) -[2617784.598] {Default Queue} -> wl_subcompositor#493.get_subsurface(new id wl_subsurface#506, wl_surface#487, wl_surface#455) -[2617784.603] {Default Queue} -> wl_subsurface#506.set_desync() -[2617784.608] {Default Queue} -> wl_subsurface#506.set_position(0, 0) -[2617784.612] {Default Queue} -> wl_subsurface#506.place_above(wl_surface#455) -[2617784.668] {Default Queue} -> wl_shm#495.create_pool(new id wl_shm_pool#507, fd 84, 16) -[2617784.675] {Default Queue} -> wl_shm#495.create_pool(new id wl_shm_pool#508, fd 85, 16) -[2617784.680] {Default Queue} -> wl_shm_pool#507.create_buffer(new id wl_buffer#509, 0, 2, 2, 8, 0) -[2617784.685] {Default Queue} -> wl_shm_pool#508.create_buffer(new id wl_buffer#510, 0, 2, 2, 8, 0) -[2617784.695] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) -[2617784.700] {Default Queue} -> wl_surface#487.commit() -[2617784.705] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) -[2617784.710] {Default Queue} -> wl_surface#487.commit() -[2617784.714] {Default Queue} -> wl_compositor#492.create_region(new id wl_region#511) -[2617784.721] {Default Queue} -> wl_compositor#492.create_region(new id wl_region#512) -[2617784.726] {Default Queue} -> wl_region#511.subtract(0, 0, 2, 2) -[2617784.730] {Default Queue} -> wl_region#511.add(0, 0, 0, 0) -[2617784.735] {Default Queue} -> wl_surface#487.set_opaque_region(wl_region#512) -[2617784.740] {Default Queue} -> wl_surface#487.set_input_region(wl_region#511) -[2617784.744] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2617784.748] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2617784.760] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) -[2617784.766] {Default Queue} -> wl_surface#487.commit() -[2617784.799] {Default Queue} -> wl_shm#497.create_pool(new id wl_shm_pool#513, fd 88, 640) -[2617784.805] {Default Queue} -> wl_shm#497.create_pool(new id wl_shm_pool#514, fd 89, 640) -[2617784.810] {Default Queue} -> wl_shm_pool#513.create_buffer(new id wl_buffer#515, 0, 10, 16, 40, 0) -[2617784.815] {Default Queue} -> wl_shm_pool#514.create_buffer(new id wl_buffer#516, 0, 10, 16, 40, 0) -[2617784.822] {Default Queue} -> wl_compositor#492.create_surface(new id wl_surface#517) -[2617784.826] {Default Queue} -> wl_surface#517.attach(wl_buffer#515, 0, 0) -[2617784.831] {Default Queue} -> wl_surface#517.commit() -[2617784.836] {Default Queue} -> wl_surface#517.attach(wl_buffer#515, 0, 0) -[2617784.840] {Default Queue} -> wl_surface#517.commit() -[2617784.847] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2617784.853] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2617784.863] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#518) -[2617784.868] {Default Queue} -> wl_display#1.sync(new id wl_callback#519) -[2617793.447] {Display Queue} wl_display#1.delete_id(519) -[2617793.465] {Default Queue} wl_keyboard#488.keymap(1, fd 84, 68213) -[2617793.475] {Default Queue} wl_keyboard#488.enter(566, wl_surface#19, array[0]) -[2617793.485] {Default Queue} wl_keyboard#488.modifiers(566, 0, 0, 16, 0) -[2617793.493] {Default Queue} discarded wl_shm#495.format(875709016) -[2617793.503] {Default Queue} discarded wl_shm#495.format(1) -[2617793.510] {Default Queue} discarded wl_shm#495.format(0) -[2617793.518] {Default Queue} discarded wl_shm#495.format(875708993) -[2617793.525] {Default Queue} discarded wl_shm#496.format(875709016) -[2617793.533] {Default Queue} discarded wl_shm#496.format(1) -[2617793.540] {Default Queue} discarded wl_shm#496.format(0) -[2617793.547] {Default Queue} discarded wl_shm#496.format(875708993) -[2617793.553] {Default Queue} discarded wl_shm#497.format(875709016) -[2617793.560] {Default Queue} discarded wl_shm#497.format(1) -[2617793.566] {Default Queue} discarded wl_shm#497.format(0) -[2617793.582] {Default Queue} discarded wl_shm#497.format(875708993) -[2617793.592] {Default Queue} wl_seat#504.capabilities(7) -[2617793.599] {Default Queue} -> wl_seat#504.get_keyboard(new id wl_keyboard#520) -[2617793.606] {Default Queue} -> wl_seat#504.get_pointer(new id wl_pointer#521) -[2617793.613] {Default Queue} -> wl_data_device_manager#500.get_data_device(new id wl_data_device#522, wl_seat#504) -[2617793.620] {Default Queue} -> zwp_primary_selection_device_manager_v1#502.get_device(new id zwp_primary_selection_device_v1#523, wl_seat#504) -[2617793.633] {Default Queue} wl_output#505.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617793.642] {Default Queue} wl_output#505.mode(3, 1280, 800, 60000) -[2617793.649] {Default Queue} discarded wl_surface#3.enter(wl_output#505) -[2617793.655] {Default Queue} discarded wl_surface#423.enter(wl_output#505) -[2617793.662] {Default Queue} discarded wl_surface#455.enter(wl_output#505) -[2617793.668] {Default Queue} discarded wl_surface#135.enter(wl_output#505) -[2617793.674] {Default Queue} discarded wl_surface#231.enter(wl_output#505) -[2617793.681] {Default Queue} discarded wl_surface#359.enter(wl_output#505) -[2617793.688] {Default Queue} discarded wl_surface#103.enter(wl_output#505) -[2617793.695] {Default Queue} discarded wl_surface#327.enter(wl_output#505) -[2617793.701] {Default Queue} discarded wl_surface#43.enter(wl_output#505) -[2617793.707] {Default Queue} discarded wl_surface#19.enter(wl_output#505) -[2617793.713] {Default Queue} discarded wl_surface#199.enter(wl_output#505) -[2617793.720] {Default Queue} discarded wl_surface#391.enter(wl_output#505) -[2617793.727] {Default Queue} discarded wl_surface#263.enter(wl_output#505) -[2617793.734] {Default Queue} discarded wl_surface#71.enter(wl_output#505) -[2617793.742] {Default Queue} discarded wl_surface#295.enter(wl_output#505) -[2617793.749] {Default Queue} discarded wl_surface#167.enter(wl_output#505) -[2617793.756] {Default Queue} wl_registry#518.global(1, "wl_compositor", 6) -[2617793.766] {Default Queue} -> wl_registry#518.bind(1, "wl_compositor", 1, new id [unknown]#524) -[2617793.776] {Default Queue} wl_registry#518.global(2, "wl_subcompositor", 1) -[2617793.785] {Default Queue} -> wl_registry#518.bind(2, "wl_subcompositor", 1, new id [unknown]#525) -[2617793.793] {Default Queue} wl_registry#518.global(3, "xdg_wm_base", 6) -[2617793.802] {Default Queue} -> wl_registry#518.bind(3, "xdg_wm_base", 1, new id [unknown]#526) -[2617793.811] {Default Queue} wl_registry#518.global(6, "zwlr_layer_shell_v1", 5) -[2617793.819] {Default Queue} wl_registry#518.global(7, "ext_session_lock_manager_v1", 1) -[2617793.827] {Default Queue} wl_registry#518.global(8, "wl_shm", 2) -[2617793.834] {Default Queue} -> wl_registry#518.bind(8, "wl_shm", 1, new id [unknown]#527) -[2617793.839] {Default Queue} -> wl_registry#518.bind(8, "wl_shm", 1, new id [unknown]#528) -[2617793.845] {Default Queue} -> wl_registry#518.bind(8, "wl_shm", 1, new id [unknown]#529) -[2617793.850] {Default Queue} wl_registry#518.global(9, "zxdg_output_manager_v1", 3) -[2617793.857] {Default Queue} wl_registry#518.global(10, "wp_fractional_scale_manager_v1", 1) -[2617793.875] {Default Queue} wl_registry#518.global(11, "zwp_tablet_manager_v2", 1) -[2617793.908] {Default Queue} wl_registry#518.global(12, "zwp_pointer_gestures_v1", 3) -[2617793.917] {Default Queue} wl_registry#518.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617793.924] {Default Queue} -> wl_registry#518.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#530) -[2617793.929] {Default Queue} wl_registry#518.global(14, "zwp_pointer_constraints_v1", 1) -[2617793.934] {Default Queue} -> wl_registry#518.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#531) -[2617793.939] {Default Queue} wl_registry#518.global(15, "ext_idle_notifier_v1", 2) -[2617793.945] {Default Queue} wl_registry#518.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617793.949] {Default Queue} wl_registry#518.global(17, "wl_data_device_manager", 3) -[2617793.954] {Default Queue} -> wl_registry#518.bind(17, "wl_data_device_manager", 2, new id [unknown]#532) -[2617793.966] {Default Queue} -> wl_data_device_manager#532.create_data_source(new id wl_data_source#533) -[2617793.976] {Default Queue} -> wl_data_source#533.offer("text/plain") -[2617793.981] {Default Queue} -> wl_data_source#533.offer("text/plain;charset=utf-8") -[2617793.985] {Default Queue} -> wl_data_source#533.offer("TEXT") -[2617793.990] {Default Queue} -> wl_data_source#533.offer("STRING") -[2617793.993] {Default Queue} -> wl_data_source#533.offer("UTF8_STRING") -[2617793.998] {Default Queue} wl_registry#518.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617794.003] {Default Queue} -> wl_registry#518.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#534) -[2617794.008] {Default Queue} -> zwp_primary_selection_device_manager_v1#534.create_source(new id zwp_primary_selection_source_v1#535) -[2617794.016] {Default Queue} -> zwp_primary_selection_source_v1#535.offer("text/plain") -[2617794.020] {Default Queue} -> zwp_primary_selection_source_v1#535.offer("text/plain;charset=utf-8") -[2617794.024] {Default Queue} -> zwp_primary_selection_source_v1#535.offer("TEXT") -[2617794.029] {Default Queue} -> zwp_primary_selection_source_v1#535.offer("STRING") -[2617794.032] {Default Queue} -> zwp_primary_selection_source_v1#535.offer("UTF8_STRING") -[2617794.037] {Default Queue} wl_registry#518.global(19, "zwlr_data_control_manager_v1", 2) -[2617794.041] {Default Queue} wl_registry#518.global(20, "ext_data_control_manager_v1", 1) -[2617794.046] {Default Queue} wl_registry#518.global(21, "wp_presentation", 2) -[2617794.050] {Default Queue} wl_registry#518.global(22, "wp_security_context_manager_v1", 1) -[2617794.055] {Default Queue} wl_registry#518.global(23, "zwp_text_input_manager_v3", 1) -[2617794.059] {Default Queue} wl_registry#518.global(24, "zwp_input_method_manager_v2", 1) -[2617794.064] {Default Queue} wl_registry#518.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617794.068] {Default Queue} wl_registry#518.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617794.072] {Default Queue} wl_registry#518.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617794.077] {Default Queue} wl_registry#518.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617794.081] {Default Queue} wl_registry#518.global(29, "ext_workspace_manager_v1", 1) -[2617794.086] {Default Queue} wl_registry#518.global(30, "zwlr_output_manager_v1", 4) -[2617794.090] {Default Queue} wl_registry#518.global(31, "zwlr_screencopy_manager_v1", 3) -[2617794.095] {Default Queue} wl_registry#518.global(32, "wp_viewporter", 1) -[2617794.099] {Default Queue} wl_registry#518.global(33, "zxdg_exporter_v2", 1) -[2617794.103] {Default Queue} wl_registry#518.global(34, "zxdg_importer_v2", 1) -[2617794.108] {Default Queue} wl_registry#518.global(36, "xdg_activation_v1", 1) -[2617794.112] {Default Queue} wl_registry#518.global(37, "mutter_x11_interop", 1) -[2617794.117] {Default Queue} wl_registry#518.global(38, "wl_seat", 9) -[2617794.121] {Default Queue} -> wl_registry#518.bind(38, "wl_seat", 1, new id [unknown]#536) -[2617794.126] {Default Queue} wl_registry#518.global(39, "wp_cursor_shape_manager_v1", 2) -[2617794.130] {Default Queue} wl_registry#518.global(40, "wl_output", 4) -[2617794.135] {Default Queue} -> wl_registry#518.bind(40, "wl_output", 1, new id [unknown]#537) -[2617794.139] {Default Queue} wl_callback#519.done(0) -[2617794.144] {Default Queue} discarded wl_surface#487.enter(wl_output#18) -[2617794.148] {Default Queue} discarded wl_surface#487.enter(wl_output#57) -[2617794.153] {Default Queue} discarded wl_surface#487.enter(wl_output#89) -[2617794.156] {Default Queue} discarded wl_surface#487.enter(wl_output#121) -[2617794.160] {Default Queue} discarded wl_surface#487.enter(wl_output#153) -[2617794.164] {Default Queue} discarded wl_surface#487.enter(wl_output#185) -[2617794.168] {Default Queue} discarded wl_surface#487.enter(wl_output#217) -[2617794.172] {Default Queue} discarded wl_surface#487.enter(wl_output#249) -[2617794.176] {Default Queue} discarded wl_surface#487.enter(wl_output#281) -[2617794.183] {Default Queue} discarded wl_surface#487.enter(wl_output#313) -[2617794.189] {Default Queue} discarded wl_surface#487.enter(wl_output#345) -[2617794.193] {Default Queue} discarded wl_surface#487.enter(wl_output#377) -[2617794.198] {Default Queue} discarded wl_surface#487.enter(wl_output#409) -[2617794.201] {Default Queue} discarded wl_surface#487.enter(wl_output#441) -[2617794.205] {Default Queue} discarded wl_surface#487.enter(wl_output#473) -[2617794.209] {Default Queue} discarded wl_surface#487.enter(wl_output#505) -[2617794.214] {Default Queue} -> wl_compositor#492.create_surface(new id wl_surface#519) -[2617794.219] {Default Queue} -> wl_subcompositor#525.get_subsurface(new id wl_subsurface#538, wl_surface#519, wl_surface#487) -[2617794.223] {Default Queue} -> wl_subsurface#538.set_desync() -[2617794.228] {Default Queue} -> wl_subsurface#538.set_position(0, 0) -[2617794.232] {Default Queue} -> wl_subsurface#538.place_above(wl_surface#487) -[2617794.281] {Default Queue} -> wl_shm#527.create_pool(new id wl_shm_pool#539, fd 89, 16) -[2617794.289] {Default Queue} -> wl_shm#527.create_pool(new id wl_shm_pool#540, fd 90, 16) -[2617794.295] {Default Queue} -> wl_shm_pool#539.create_buffer(new id wl_buffer#541, 0, 2, 2, 8, 0) -[2617794.300] {Default Queue} -> wl_shm_pool#540.create_buffer(new id wl_buffer#542, 0, 2, 2, 8, 0) -[2617794.308] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) -[2617794.313] {Default Queue} -> wl_surface#519.commit() -[2617794.319] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) -[2617794.323] {Default Queue} -> wl_surface#519.commit() -[2617794.328] {Default Queue} -> wl_compositor#524.create_region(new id wl_region#543) -[2617794.332] {Default Queue} -> wl_compositor#524.create_region(new id wl_region#544) -[2617794.337] {Default Queue} -> wl_region#543.subtract(0, 0, 2, 2) -[2617794.342] {Default Queue} -> wl_region#543.add(0, 0, 0, 0) -[2617794.346] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2617794.351] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2617794.355] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2617794.360] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2617794.368] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) -[2617794.373] {Default Queue} -> wl_surface#519.commit() -[2617794.408] {Default Queue} -> wl_shm#529.create_pool(new id wl_shm_pool#545, fd 93, 640) -[2617794.415] {Default Queue} -> wl_shm#529.create_pool(new id wl_shm_pool#546, fd 94, 640) -[2617794.420] {Default Queue} -> wl_shm_pool#545.create_buffer(new id wl_buffer#547, 0, 10, 16, 40, 0) -[2617794.425] {Default Queue} -> wl_shm_pool#546.create_buffer(new id wl_buffer#548, 0, 10, 16, 40, 0) -[2617794.432] {Default Queue} -> wl_compositor#524.create_surface(new id wl_surface#549) -[2617794.437] {Default Queue} -> wl_surface#549.attach(wl_buffer#547, 0, 0) -[2617794.441] {Default Queue} -> wl_surface#549.commit() -[2617794.447] {Default Queue} -> wl_surface#549.attach(wl_buffer#547, 0, 0) -[2617794.451] {Default Queue} -> wl_surface#549.commit() -[2617794.456] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2617794.464] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#550) -[2617794.469] {Default Queue} -> wl_display#1.sync(new id wl_callback#551) -[2617804.397] {Display Queue} wl_display#1.delete_id(551) -[2617804.410] {Default Queue} wl_keyboard#520.keymap(1, fd 89, 68213) -[2617804.416] {Default Queue} wl_keyboard#520.enter(566, wl_surface#19, array[0]) -[2617804.421] {Default Queue} wl_keyboard#520.modifiers(566, 0, 0, 16, 0) -[2617804.426] {Default Queue} discarded wl_shm#527.format(875709016) -[2617804.430] {Default Queue} discarded wl_shm#527.format(1) -[2617804.434] {Default Queue} discarded wl_shm#527.format(0) -[2617804.438] {Default Queue} discarded wl_shm#527.format(875708993) -[2617804.442] {Default Queue} discarded wl_shm#528.format(875709016) -[2617804.446] {Default Queue} discarded wl_shm#528.format(1) -[2617804.450] {Default Queue} discarded wl_shm#528.format(0) -[2617804.458] {Default Queue} discarded wl_shm#528.format(875708993) -[2617804.466] {Default Queue} discarded wl_shm#529.format(875709016) -[2617804.470] {Default Queue} discarded wl_shm#529.format(1) -[2617804.473] {Default Queue} discarded wl_shm#529.format(0) -[2617804.477] {Default Queue} discarded wl_shm#529.format(875708993) -[2617804.481] {Default Queue} wl_seat#536.capabilities(7) -[2617804.486] {Default Queue} -> wl_seat#536.get_keyboard(new id wl_keyboard#552) -[2617804.490] {Default Queue} -> wl_seat#536.get_pointer(new id wl_pointer#553) -[2617804.495] {Default Queue} -> wl_data_device_manager#532.get_data_device(new id wl_data_device#554, wl_seat#536) -[2617804.500] {Default Queue} -> zwp_primary_selection_device_manager_v1#534.get_device(new id zwp_primary_selection_device_v1#555, wl_seat#536) -[2617804.509] {Default Queue} wl_output#537.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617804.514] {Default Queue} wl_output#537.mode(3, 1280, 800, 60000) -[2617804.519] {Default Queue} discarded wl_surface#3.enter(wl_output#537) -[2617804.523] {Default Queue} discarded wl_surface#423.enter(wl_output#537) -[2617804.528] {Default Queue} discarded wl_surface#455.enter(wl_output#537) -[2617804.532] {Default Queue} discarded wl_surface#135.enter(wl_output#537) -[2617804.536] {Default Queue} discarded wl_surface#231.enter(wl_output#537) -[2617804.540] {Default Queue} discarded wl_surface#359.enter(wl_output#537) -[2617804.544] {Default Queue} discarded wl_surface#103.enter(wl_output#537) -[2617804.548] {Default Queue} discarded wl_surface#327.enter(wl_output#537) -[2617804.552] {Default Queue} discarded wl_surface#43.enter(wl_output#537) -[2617804.556] {Default Queue} discarded wl_surface#19.enter(wl_output#537) -[2617804.560] {Default Queue} discarded wl_surface#199.enter(wl_output#537) -[2617804.564] {Default Queue} discarded wl_surface#391.enter(wl_output#537) -[2617804.568] {Default Queue} discarded wl_surface#263.enter(wl_output#537) -[2617804.571] {Default Queue} discarded wl_surface#71.enter(wl_output#537) -[2617804.575] {Default Queue} discarded wl_surface#487.enter(wl_output#537) -[2617804.579] {Default Queue} discarded wl_surface#295.enter(wl_output#537) -[2617804.583] {Default Queue} discarded wl_surface#167.enter(wl_output#537) -[2617804.587] {Default Queue} wl_registry#550.global(1, "wl_compositor", 6) -[2617804.593] {Default Queue} -> wl_registry#550.bind(1, "wl_compositor", 1, new id [unknown]#556) -[2617804.598] {Default Queue} wl_registry#550.global(2, "wl_subcompositor", 1) -[2617804.603] {Default Queue} -> wl_registry#550.bind(2, "wl_subcompositor", 1, new id [unknown]#557) -[2617804.608] {Default Queue} wl_registry#550.global(3, "xdg_wm_base", 6) -[2617804.614] {Default Queue} -> wl_registry#550.bind(3, "xdg_wm_base", 1, new id [unknown]#558) -[2617804.620] {Default Queue} wl_registry#550.global(6, "zwlr_layer_shell_v1", 5) -[2617804.627] {Default Queue} wl_registry#550.global(7, "ext_session_lock_manager_v1", 1) -[2617804.631] {Default Queue} wl_registry#550.global(8, "wl_shm", 2) -[2617804.636] {Default Queue} -> wl_registry#550.bind(8, "wl_shm", 1, new id [unknown]#559) -[2617804.640] {Default Queue} -> wl_registry#550.bind(8, "wl_shm", 1, new id [unknown]#560) -[2617804.645] {Default Queue} -> wl_registry#550.bind(8, "wl_shm", 1, new id [unknown]#561) -[2617804.649] {Default Queue} wl_registry#550.global(9, "zxdg_output_manager_v1", 3) -[2617804.654] {Default Queue} wl_registry#550.global(10, "wp_fractional_scale_manager_v1", 1) -[2617804.658] {Default Queue} wl_registry#550.global(11, "zwp_tablet_manager_v2", 1) -[2617804.663] {Default Queue} wl_registry#550.global(12, "zwp_pointer_gestures_v1", 3) -[2617804.667] {Default Queue} wl_registry#550.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617804.671] {Default Queue} -> wl_registry#550.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#562) -[2617804.676] {Default Queue} wl_registry#550.global(14, "zwp_pointer_constraints_v1", 1) -[2617804.681] {Default Queue} -> wl_registry#550.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#563) -[2617804.685] {Default Queue} wl_registry#550.global(15, "ext_idle_notifier_v1", 2) -[2617804.693] {Default Queue} wl_registry#550.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617804.699] {Default Queue} wl_registry#550.global(17, "wl_data_device_manager", 3) -[2617804.704] {Default Queue} -> wl_registry#550.bind(17, "wl_data_device_manager", 2, new id [unknown]#564) -[2617804.709] {Default Queue} -> wl_data_device_manager#564.create_data_source(new id wl_data_source#565) -[2617804.713] {Default Queue} -> wl_data_source#565.offer("text/plain") -[2617804.718] {Default Queue} -> wl_data_source#565.offer("text/plain;charset=utf-8") -[2617804.722] {Default Queue} -> wl_data_source#565.offer("TEXT") -[2617804.726] {Default Queue} -> wl_data_source#565.offer("STRING") -[2617804.730] {Default Queue} -> wl_data_source#565.offer("UTF8_STRING") -[2617804.735] {Default Queue} wl_registry#550.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617804.740] {Default Queue} -> wl_registry#550.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#566) -[2617804.744] {Default Queue} -> zwp_primary_selection_device_manager_v1#566.create_source(new id zwp_primary_selection_source_v1#567) -[2617804.751] {Default Queue} -> zwp_primary_selection_source_v1#567.offer("text/plain") -[2617804.756] {Default Queue} -> zwp_primary_selection_source_v1#567.offer("text/plain;charset=utf-8") -[2617804.760] {Default Queue} -> zwp_primary_selection_source_v1#567.offer("TEXT") -[2617804.764] {Default Queue} -> zwp_primary_selection_source_v1#567.offer("STRING") -[2617804.768] {Default Queue} -> zwp_primary_selection_source_v1#567.offer("UTF8_STRING") -[2617804.772] {Default Queue} wl_registry#550.global(19, "zwlr_data_control_manager_v1", 2) -[2617804.777] {Default Queue} wl_registry#550.global(20, "ext_data_control_manager_v1", 1) -[2617804.781] {Default Queue} wl_registry#550.global(21, "wp_presentation", 2) -[2617804.786] {Default Queue} wl_registry#550.global(22, "wp_security_context_manager_v1", 1) -[2617804.790] {Default Queue} wl_registry#550.global(23, "zwp_text_input_manager_v3", 1) -[2617804.795] {Default Queue} wl_registry#550.global(24, "zwp_input_method_manager_v2", 1) -[2617804.799] {Default Queue} wl_registry#550.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617804.803] {Default Queue} wl_registry#550.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617804.808] {Default Queue} wl_registry#550.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617804.812] {Default Queue} wl_registry#550.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617804.816] {Default Queue} wl_registry#550.global(29, "ext_workspace_manager_v1", 1) -[2617804.820] {Default Queue} wl_registry#550.global(30, "zwlr_output_manager_v1", 4) -[2617804.825] {Default Queue} wl_registry#550.global(31, "zwlr_screencopy_manager_v1", 3) -[2617804.829] {Default Queue} wl_registry#550.global(32, "wp_viewporter", 1) -[2617804.833] {Default Queue} wl_registry#550.global(33, "zxdg_exporter_v2", 1) -[2617804.837] {Default Queue} wl_registry#550.global(34, "zxdg_importer_v2", 1) -[2617804.842] {Default Queue} wl_registry#550.global(36, "xdg_activation_v1", 1) -[2617804.847] {Default Queue} wl_registry#550.global(37, "mutter_x11_interop", 1) -[2617804.851] {Default Queue} wl_registry#550.global(38, "wl_seat", 9) -[2617804.855] {Default Queue} -> wl_registry#550.bind(38, "wl_seat", 1, new id [unknown]#568) -[2617804.860] {Default Queue} wl_registry#550.global(39, "wp_cursor_shape_manager_v1", 2) -[2617804.871] {Default Queue} wl_registry#550.global(40, "wl_output", 4) -[2617804.890] {Default Queue} -> wl_registry#550.bind(40, "wl_output", 1, new id [unknown]#569) -[2617804.895] {Default Queue} wl_callback#551.done(0) -[2617804.900] {Default Queue} discarded wl_surface#519.enter(wl_output#18) -[2617804.904] {Default Queue} discarded wl_surface#519.enter(wl_output#57) -[2617804.908] {Default Queue} discarded wl_surface#519.enter(wl_output#89) -[2617804.912] {Default Queue} discarded wl_surface#519.enter(wl_output#121) -[2617804.916] {Default Queue} discarded wl_surface#519.enter(wl_output#153) -[2617804.923] {Default Queue} discarded wl_surface#519.enter(wl_output#185) -[2617804.928] {Default Queue} discarded wl_surface#519.enter(wl_output#217) -[2617804.934] {Default Queue} discarded wl_surface#519.enter(wl_output#249) -[2617804.938] {Default Queue} discarded wl_surface#519.enter(wl_output#281) -[2617804.942] {Default Queue} discarded wl_surface#519.enter(wl_output#313) -[2617804.946] {Default Queue} discarded wl_surface#519.enter(wl_output#345) -[2617804.950] {Default Queue} discarded wl_surface#519.enter(wl_output#377) -[2617804.954] {Default Queue} discarded wl_surface#519.enter(wl_output#409) -[2617804.958] {Default Queue} discarded wl_surface#519.enter(wl_output#441) -[2617804.962] {Default Queue} discarded wl_surface#519.enter(wl_output#473) -[2617804.966] {Default Queue} discarded wl_surface#519.enter(wl_output#505) -[2617804.970] {Default Queue} discarded wl_surface#519.enter(wl_output#537) -[2617804.974] {Default Queue} -> wl_compositor#492.create_surface(new id wl_surface#551) -[2617804.979] {Default Queue} -> wl_subcompositor#557.get_subsurface(new id wl_subsurface#570, wl_surface#551, wl_surface#487) -[2617804.984] {Default Queue} -> wl_subsurface#570.set_desync() -[2617804.988] {Default Queue} -> wl_subsurface#570.set_position(0, 0) -[2617804.993] {Default Queue} -> wl_subsurface#570.place_above(wl_surface#487) -[2617805.036] {Default Queue} -> wl_shm#559.create_pool(new id wl_shm_pool#571, fd 94, 16) -[2617805.043] {Default Queue} -> wl_shm#559.create_pool(new id wl_shm_pool#572, fd 95, 16) -[2617805.048] {Default Queue} -> wl_shm_pool#571.create_buffer(new id wl_buffer#573, 0, 2, 2, 8, 0) -[2617805.053] {Default Queue} -> wl_shm_pool#572.create_buffer(new id wl_buffer#574, 0, 2, 2, 8, 0) -[2617805.061] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) -[2617805.066] {Default Queue} -> wl_surface#551.commit() -[2617805.072] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) -[2617805.076] {Default Queue} -> wl_surface#551.commit() -[2617805.080] {Default Queue} -> wl_compositor#556.create_region(new id wl_region#575) -[2617805.084] {Default Queue} -> wl_compositor#556.create_region(new id wl_region#576) -[2617805.089] {Default Queue} -> wl_region#575.subtract(0, 0, 2, 2) -[2617805.093] {Default Queue} -> wl_region#575.add(0, 0, 0, 0) -[2617805.098] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2617805.102] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2617805.106] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2617805.111] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2617805.118] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) -[2617805.122] {Default Queue} -> wl_surface#551.commit() -[2617805.154] {Default Queue} -> wl_shm#561.create_pool(new id wl_shm_pool#577, fd 98, 640) -[2617805.161] {Default Queue} -> wl_shm#561.create_pool(new id wl_shm_pool#578, fd 99, 640) -[2617805.165] {Default Queue} -> wl_shm_pool#577.create_buffer(new id wl_buffer#579, 0, 10, 16, 40, 0) -[2617805.170] {Default Queue} -> wl_shm_pool#578.create_buffer(new id wl_buffer#580, 0, 10, 16, 40, 0) -[2617805.177] {Default Queue} -> wl_compositor#556.create_surface(new id wl_surface#581) -[2617805.181] {Default Queue} -> wl_surface#581.attach(wl_buffer#579, 0, 0) -[2617805.186] {Default Queue} -> wl_surface#581.commit() -[2617805.191] {Default Queue} -> wl_surface#581.attach(wl_buffer#579, 0, 0) -[2617805.195] {Default Queue} -> wl_surface#581.commit() -[2617805.200] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2617805.208] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#582) -[2617805.212] {Default Queue} -> wl_display#1.sync(new id wl_callback#583) -[2617813.437] {Display Queue} wl_display#1.delete_id(583) -[2617813.449] {Default Queue} wl_keyboard#552.keymap(1, fd 94, 68213) -[2617813.455] {Default Queue} wl_keyboard#552.enter(566, wl_surface#19, array[0]) -[2617813.460] {Default Queue} wl_keyboard#552.modifiers(566, 0, 0, 16, 0) -[2617813.465] {Default Queue} discarded wl_shm#559.format(875709016) -[2617813.469] {Default Queue} discarded wl_shm#559.format(1) -[2617813.477] {Default Queue} discarded wl_shm#559.format(0) -[2617813.485] {Default Queue} discarded wl_shm#559.format(875708993) -[2617813.489] {Default Queue} discarded wl_shm#560.format(875709016) -[2617813.493] {Default Queue} discarded wl_shm#560.format(1) -[2617813.497] {Default Queue} discarded wl_shm#560.format(0) -[2617813.501] {Default Queue} discarded wl_shm#560.format(875708993) -[2617813.505] {Default Queue} discarded wl_shm#561.format(875709016) -[2617813.509] {Default Queue} discarded wl_shm#561.format(1) -[2617813.513] {Default Queue} discarded wl_shm#561.format(0) -[2617813.516] {Default Queue} discarded wl_shm#561.format(875708993) -[2617813.521] {Default Queue} wl_seat#568.capabilities(7) -[2617813.525] {Default Queue} -> wl_seat#568.get_keyboard(new id wl_keyboard#584) -[2617813.530] {Default Queue} -> wl_seat#568.get_pointer(new id wl_pointer#585) -[2617813.534] {Default Queue} -> wl_data_device_manager#564.get_data_device(new id wl_data_device#586, wl_seat#568) -[2617813.539] {Default Queue} -> zwp_primary_selection_device_manager_v1#566.get_device(new id zwp_primary_selection_device_v1#587, wl_seat#568) -[2617813.547] {Default Queue} wl_output#569.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617813.552] {Default Queue} wl_output#569.mode(3, 1280, 800, 60000) -[2617813.557] {Default Queue} discarded wl_surface#3.enter(wl_output#569) -[2617813.561] {Default Queue} discarded wl_surface#423.enter(wl_output#569) -[2617813.565] {Default Queue} discarded wl_surface#455.enter(wl_output#569) -[2617813.569] {Default Queue} discarded wl_surface#135.enter(wl_output#569) -[2617813.573] {Default Queue} discarded wl_surface#231.enter(wl_output#569) -[2617813.576] {Default Queue} discarded wl_surface#359.enter(wl_output#569) -[2617813.580] {Default Queue} discarded wl_surface#103.enter(wl_output#569) -[2617813.584] {Default Queue} discarded wl_surface#327.enter(wl_output#569) -[2617813.588] {Default Queue} discarded wl_surface#43.enter(wl_output#569) -[2617813.592] {Default Queue} discarded wl_surface#19.enter(wl_output#569) -[2617813.597] {Default Queue} discarded wl_surface#199.enter(wl_output#569) -[2617813.601] {Default Queue} discarded wl_surface#391.enter(wl_output#569) -[2617813.605] {Default Queue} discarded wl_surface#263.enter(wl_output#569) -[2617813.608] {Default Queue} discarded wl_surface#71.enter(wl_output#569) -[2617813.612] {Default Queue} discarded wl_surface#487.enter(wl_output#569) -[2617813.616] {Default Queue} discarded wl_surface#519.enter(wl_output#569) -[2617813.620] {Default Queue} discarded wl_surface#295.enter(wl_output#569) -[2617813.624] {Default Queue} discarded wl_surface#167.enter(wl_output#569) -[2617813.629] {Default Queue} wl_registry#582.global(1, "wl_compositor", 6) -[2617813.634] {Default Queue} -> wl_registry#582.bind(1, "wl_compositor", 1, new id [unknown]#588) -[2617813.639] {Default Queue} wl_registry#582.global(2, "wl_subcompositor", 1) -[2617813.644] {Default Queue} -> wl_registry#582.bind(2, "wl_subcompositor", 1, new id [unknown]#589) -[2617813.650] {Default Queue} wl_registry#582.global(3, "xdg_wm_base", 6) -[2617813.657] {Default Queue} -> wl_registry#582.bind(3, "xdg_wm_base", 1, new id [unknown]#590) -[2617813.663] {Default Queue} wl_registry#582.global(6, "zwlr_layer_shell_v1", 5) -[2617813.667] {Default Queue} wl_registry#582.global(7, "ext_session_lock_manager_v1", 1) -[2617813.672] {Default Queue} wl_registry#582.global(8, "wl_shm", 2) -[2617813.677] {Default Queue} -> wl_registry#582.bind(8, "wl_shm", 1, new id [unknown]#591) -[2617813.681] {Default Queue} -> wl_registry#582.bind(8, "wl_shm", 1, new id [unknown]#592) -[2617813.685] {Default Queue} -> wl_registry#582.bind(8, "wl_shm", 1, new id [unknown]#593) -[2617813.690] {Default Queue} wl_registry#582.global(9, "zxdg_output_manager_v1", 3) -[2617813.695] {Default Queue} wl_registry#582.global(10, "wp_fractional_scale_manager_v1", 1) -[2617813.699] {Default Queue} wl_registry#582.global(11, "zwp_tablet_manager_v2", 1) -[2617813.704] {Default Queue} wl_registry#582.global(12, "zwp_pointer_gestures_v1", 3) -[2617813.711] {Default Queue} wl_registry#582.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617813.718] {Default Queue} -> wl_registry#582.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#594) -[2617813.723] {Default Queue} wl_registry#582.global(14, "zwp_pointer_constraints_v1", 1) -[2617813.728] {Default Queue} -> wl_registry#582.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#595) -[2617813.732] {Default Queue} wl_registry#582.global(15, "ext_idle_notifier_v1", 2) -[2617813.736] {Default Queue} wl_registry#582.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617813.741] {Default Queue} wl_registry#582.global(17, "wl_data_device_manager", 3) -[2617813.746] {Default Queue} -> wl_registry#582.bind(17, "wl_data_device_manager", 2, new id [unknown]#596) -[2617813.750] {Default Queue} -> wl_data_device_manager#596.create_data_source(new id wl_data_source#597) -[2617813.755] {Default Queue} -> wl_data_source#597.offer("text/plain") -[2617813.759] {Default Queue} -> wl_data_source#597.offer("text/plain;charset=utf-8") -[2617813.763] {Default Queue} -> wl_data_source#597.offer("TEXT") -[2617813.767] {Default Queue} -> wl_data_source#597.offer("STRING") -[2617813.771] {Default Queue} -> wl_data_source#597.offer("UTF8_STRING") -[2617813.775] {Default Queue} wl_registry#582.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617813.780] {Default Queue} -> wl_registry#582.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#598) -[2617813.784] {Default Queue} -> zwp_primary_selection_device_manager_v1#598.create_source(new id zwp_primary_selection_source_v1#599) -[2617813.792] {Default Queue} -> zwp_primary_selection_source_v1#599.offer("text/plain") -[2617813.797] {Default Queue} -> zwp_primary_selection_source_v1#599.offer("text/plain;charset=utf-8") -[2617813.800] {Default Queue} -> zwp_primary_selection_source_v1#599.offer("TEXT") -[2617813.805] {Default Queue} -> zwp_primary_selection_source_v1#599.offer("STRING") -[2617813.809] {Default Queue} -> zwp_primary_selection_source_v1#599.offer("UTF8_STRING") -[2617813.813] {Default Queue} wl_registry#582.global(19, "zwlr_data_control_manager_v1", 2) -[2617813.817] {Default Queue} wl_registry#582.global(20, "ext_data_control_manager_v1", 1) -[2617813.822] {Default Queue} wl_registry#582.global(21, "wp_presentation", 2) -[2617813.826] {Default Queue} wl_registry#582.global(22, "wp_security_context_manager_v1", 1) -[2617813.830] {Default Queue} wl_registry#582.global(23, "zwp_text_input_manager_v3", 1) -[2617813.834] {Default Queue} wl_registry#582.global(24, "zwp_input_method_manager_v2", 1) -[2617813.839] {Default Queue} wl_registry#582.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617813.843] {Default Queue} wl_registry#582.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617813.847] {Default Queue} wl_registry#582.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617813.851] {Default Queue} wl_registry#582.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617813.856] {Default Queue} wl_registry#582.global(29, "ext_workspace_manager_v1", 1) -[2617813.866] {Default Queue} wl_registry#582.global(30, "zwlr_output_manager_v1", 4) -[2617813.871] {Default Queue} wl_registry#582.global(31, "zwlr_screencopy_manager_v1", 3) -[2617813.875] {Default Queue} wl_registry#582.global(32, "wp_viewporter", 1) -[2617813.880] {Default Queue} wl_registry#582.global(33, "zxdg_exporter_v2", 1) -[2617813.884] {Default Queue} wl_registry#582.global(34, "zxdg_importer_v2", 1) -[2617813.888] {Default Queue} wl_registry#582.global(36, "xdg_activation_v1", 1) -[2617813.893] {Default Queue} wl_registry#582.global(37, "mutter_x11_interop", 1) -[2617813.897] {Default Queue} wl_registry#582.global(38, "wl_seat", 9) -[2617813.902] {Default Queue} -> wl_registry#582.bind(38, "wl_seat", 1, new id [unknown]#600) -[2617813.906] {Default Queue} wl_registry#582.global(39, "wp_cursor_shape_manager_v1", 2) -[2617813.911] {Default Queue} wl_registry#582.global(40, "wl_output", 4) -[2617813.915] {Default Queue} -> wl_registry#582.bind(40, "wl_output", 1, new id [unknown]#601) -[2617813.933] {Default Queue} wl_callback#583.done(0) -[2617813.939] {Default Queue} discarded wl_surface#551.enter(wl_output#18) -[2617813.943] {Default Queue} discarded wl_surface#551.enter(wl_output#57) -[2617813.947] {Default Queue} discarded wl_surface#551.enter(wl_output#89) -[2617813.951] {Default Queue} discarded wl_surface#551.enter(wl_output#121) -[2617813.955] {Default Queue} discarded wl_surface#551.enter(wl_output#153) -[2617813.959] {Default Queue} discarded wl_surface#551.enter(wl_output#185) -[2617813.963] {Default Queue} discarded wl_surface#551.enter(wl_output#217) -[2617813.967] {Default Queue} discarded wl_surface#551.enter(wl_output#249) -[2617813.971] {Default Queue} discarded wl_surface#551.enter(wl_output#281) -[2617813.975] {Default Queue} discarded wl_surface#551.enter(wl_output#313) -[2617813.979] {Default Queue} discarded wl_surface#551.enter(wl_output#345) -[2617813.983] {Default Queue} discarded wl_surface#551.enter(wl_output#377) -[2617813.987] {Default Queue} discarded wl_surface#551.enter(wl_output#409) -[2617813.992] {Default Queue} discarded wl_surface#551.enter(wl_output#441) -[2617813.996] {Default Queue} discarded wl_surface#551.enter(wl_output#473) -[2617814.000] {Default Queue} discarded wl_surface#551.enter(wl_output#505) -[2617814.004] {Default Queue} discarded wl_surface#551.enter(wl_output#537) -[2617814.008] {Default Queue} discarded wl_surface#551.enter(wl_output#569) -[2617814.012] {Default Queue} -> wl_compositor#492.create_surface(new id wl_surface#583) -[2617814.017] {Default Queue} -> wl_subcompositor#589.get_subsurface(new id wl_subsurface#602, wl_surface#583, wl_surface#487) -[2617814.022] {Default Queue} -> wl_subsurface#602.set_desync() -[2617814.026] {Default Queue} -> wl_subsurface#602.set_position(0, 0) -[2617814.031] {Default Queue} -> wl_subsurface#602.place_above(wl_surface#487) -[2617814.080] {Default Queue} -> wl_shm#591.create_pool(new id wl_shm_pool#603, fd 99, 16) -[2617814.087] {Default Queue} -> wl_shm#591.create_pool(new id wl_shm_pool#604, fd 100, 16) -[2617814.091] {Default Queue} -> wl_shm_pool#603.create_buffer(new id wl_buffer#605, 0, 2, 2, 8, 0) -[2617814.097] {Default Queue} -> wl_shm_pool#604.create_buffer(new id wl_buffer#606, 0, 2, 2, 8, 0) -[2617814.107] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) -[2617814.115] {Default Queue} -> wl_surface#583.commit() -[2617814.124] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) -[2617814.131] {Default Queue} -> wl_surface#583.commit() -[2617814.138] {Default Queue} -> wl_compositor#588.create_region(new id wl_region#607) -[2617814.145] {Default Queue} -> wl_compositor#588.create_region(new id wl_region#608) -[2617814.151] {Default Queue} -> wl_region#607.subtract(0, 0, 2, 2) -[2617814.158] {Default Queue} -> wl_region#607.add(0, 0, 0, 0) -[2617814.163] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2617814.168] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2617814.172] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2617814.177] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2617814.184] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) -[2617814.189] {Default Queue} -> wl_surface#583.commit() -[2617814.229] {Default Queue} -> wl_shm#593.create_pool(new id wl_shm_pool#609, fd 103, 640) -[2617814.236] {Default Queue} -> wl_shm#593.create_pool(new id wl_shm_pool#610, fd 104, 640) -[2617814.241] {Default Queue} -> wl_shm_pool#609.create_buffer(new id wl_buffer#611, 0, 10, 16, 40, 0) -[2617814.246] {Default Queue} -> wl_shm_pool#610.create_buffer(new id wl_buffer#612, 0, 10, 16, 40, 0) -[2617814.253] {Default Queue} -> wl_compositor#588.create_surface(new id wl_surface#613) -[2617814.258] {Default Queue} -> wl_surface#613.attach(wl_buffer#611, 0, 0) -[2617814.262] {Default Queue} -> wl_surface#613.commit() -[2617814.268] {Default Queue} -> wl_surface#613.attach(wl_buffer#611, 0, 0) -[2617814.273] {Default Queue} -> wl_surface#613.commit() -[2617814.277] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2617814.289] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#614) -[2617814.297] {Default Queue} -> wl_display#1.sync(new id wl_callback#615) -[2617823.441] {Display Queue} wl_display#1.delete_id(615) -[2617823.456] {Default Queue} wl_keyboard#584.keymap(1, fd 99, 68213) -[2617823.461] {Default Queue} wl_keyboard#584.enter(566, wl_surface#19, array[0]) -[2617823.467] {Default Queue} wl_keyboard#584.modifiers(566, 0, 0, 16, 0) -[2617823.472] {Default Queue} discarded wl_shm#591.format(875709016) -[2617823.476] {Default Queue} discarded wl_shm#591.format(1) -[2617823.480] {Default Queue} discarded wl_shm#591.format(0) -[2617823.484] {Default Queue} discarded wl_shm#591.format(875708993) -[2617823.488] {Default Queue} discarded wl_shm#592.format(875709016) -[2617823.492] {Default Queue} discarded wl_shm#592.format(1) -[2617823.496] {Default Queue} discarded wl_shm#592.format(0) -[2617823.499] {Default Queue} discarded wl_shm#592.format(875708993) -[2617823.503] {Default Queue} discarded wl_shm#593.format(875709016) -[2617823.507] {Default Queue} discarded wl_shm#593.format(1) -[2617823.511] {Default Queue} discarded wl_shm#593.format(0) -[2617823.515] {Default Queue} discarded wl_shm#593.format(875708993) -[2617823.519] {Default Queue} wl_seat#600.capabilities(7) -[2617823.524] {Default Queue} -> wl_seat#600.get_keyboard(new id wl_keyboard#616) -[2617823.529] {Default Queue} -> wl_seat#600.get_pointer(new id wl_pointer#617) -[2617823.534] {Default Queue} -> wl_data_device_manager#596.get_data_device(new id wl_data_device#618, wl_seat#600) -[2617823.538] {Default Queue} -> zwp_primary_selection_device_manager_v1#598.get_device(new id zwp_primary_selection_device_v1#619, wl_seat#600) -[2617823.546] {Default Queue} wl_output#601.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617823.551] {Default Queue} wl_output#601.mode(3, 1280, 800, 60000) -[2617823.556] {Default Queue} discarded wl_surface#3.enter(wl_output#601) -[2617823.560] {Default Queue} discarded wl_surface#423.enter(wl_output#601) -[2617823.564] {Default Queue} discarded wl_surface#455.enter(wl_output#601) -[2617823.568] {Default Queue} discarded wl_surface#135.enter(wl_output#601) -[2617823.572] {Default Queue} discarded wl_surface#231.enter(wl_output#601) -[2617823.576] {Default Queue} discarded wl_surface#359.enter(wl_output#601) -[2617823.580] {Default Queue} discarded wl_surface#103.enter(wl_output#601) -[2617823.584] {Default Queue} discarded wl_surface#327.enter(wl_output#601) -[2617823.588] {Default Queue} discarded wl_surface#43.enter(wl_output#601) -[2617823.591] {Default Queue} discarded wl_surface#19.enter(wl_output#601) -[2617823.595] {Default Queue} discarded wl_surface#199.enter(wl_output#601) -[2617823.600] {Default Queue} discarded wl_surface#391.enter(wl_output#601) -[2617823.603] {Default Queue} discarded wl_surface#263.enter(wl_output#601) -[2617823.607] {Default Queue} discarded wl_surface#551.enter(wl_output#601) -[2617823.611] {Default Queue} discarded wl_surface#71.enter(wl_output#601) -[2617823.615] {Default Queue} discarded wl_surface#487.enter(wl_output#601) -[2617823.619] {Default Queue} discarded wl_surface#519.enter(wl_output#601) -[2617823.623] {Default Queue} discarded wl_surface#295.enter(wl_output#601) -[2617823.627] {Default Queue} discarded wl_surface#167.enter(wl_output#601) -[2617823.631] {Default Queue} wl_registry#614.global(1, "wl_compositor", 6) -[2617823.636] {Default Queue} -> wl_registry#614.bind(1, "wl_compositor", 1, new id [unknown]#620) -[2617823.640] {Default Queue} wl_registry#614.global(2, "wl_subcompositor", 1) -[2617823.647] {Default Queue} -> wl_registry#614.bind(2, "wl_subcompositor", 1, new id [unknown]#621) -[2617823.653] {Default Queue} wl_registry#614.global(3, "xdg_wm_base", 6) -[2617823.659] {Default Queue} -> wl_registry#614.bind(3, "xdg_wm_base", 1, new id [unknown]#622) -[2617823.665] {Default Queue} wl_registry#614.global(6, "zwlr_layer_shell_v1", 5) -[2617823.669] {Default Queue} wl_registry#614.global(7, "ext_session_lock_manager_v1", 1) -[2617823.674] {Default Queue} wl_registry#614.global(8, "wl_shm", 2) -[2617823.678] {Default Queue} -> wl_registry#614.bind(8, "wl_shm", 1, new id [unknown]#623) -[2617823.688] {Default Queue} -> wl_registry#614.bind(8, "wl_shm", 1, new id [unknown]#624) -[2617823.696] {Default Queue} -> wl_registry#614.bind(8, "wl_shm", 1, new id [unknown]#625) -[2617823.700] {Default Queue} wl_registry#614.global(9, "zxdg_output_manager_v1", 3) -[2617823.705] {Default Queue} wl_registry#614.global(10, "wp_fractional_scale_manager_v1", 1) -[2617823.709] {Default Queue} wl_registry#614.global(11, "zwp_tablet_manager_v2", 1) -[2617823.714] {Default Queue} wl_registry#614.global(12, "zwp_pointer_gestures_v1", 3) -[2617823.718] {Default Queue} wl_registry#614.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617823.722] {Default Queue} -> wl_registry#614.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#626) -[2617823.727] {Default Queue} wl_registry#614.global(14, "zwp_pointer_constraints_v1", 1) -[2617823.731] {Default Queue} -> wl_registry#614.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#627) -[2617823.736] {Default Queue} wl_registry#614.global(15, "ext_idle_notifier_v1", 2) -[2617823.741] {Default Queue} wl_registry#614.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617823.745] {Default Queue} wl_registry#614.global(17, "wl_data_device_manager", 3) -[2617823.750] {Default Queue} -> wl_registry#614.bind(17, "wl_data_device_manager", 2, new id [unknown]#628) -[2617823.755] {Default Queue} -> wl_data_device_manager#628.create_data_source(new id wl_data_source#629) -[2617823.759] {Default Queue} -> wl_data_source#629.offer("text/plain") -[2617823.763] {Default Queue} -> wl_data_source#629.offer("text/plain;charset=utf-8") -[2617823.767] {Default Queue} -> wl_data_source#629.offer("TEXT") -[2617823.771] {Default Queue} -> wl_data_source#629.offer("STRING") -[2617823.776] {Default Queue} -> wl_data_source#629.offer("UTF8_STRING") -[2617823.780] {Default Queue} wl_registry#614.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617823.785] {Default Queue} -> wl_registry#614.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#630) -[2617823.789] {Default Queue} -> zwp_primary_selection_device_manager_v1#630.create_source(new id zwp_primary_selection_source_v1#631) -[2617823.797] {Default Queue} -> zwp_primary_selection_source_v1#631.offer("text/plain") -[2617823.801] {Default Queue} -> zwp_primary_selection_source_v1#631.offer("text/plain;charset=utf-8") -[2617823.806] {Default Queue} -> zwp_primary_selection_source_v1#631.offer("TEXT") -[2617823.810] {Default Queue} -> zwp_primary_selection_source_v1#631.offer("STRING") -[2617823.814] {Default Queue} -> zwp_primary_selection_source_v1#631.offer("UTF8_STRING") -[2617823.819] {Default Queue} wl_registry#614.global(19, "zwlr_data_control_manager_v1", 2) -[2617823.823] {Default Queue} wl_registry#614.global(20, "ext_data_control_manager_v1", 1) -[2617823.827] {Default Queue} wl_registry#614.global(21, "wp_presentation", 2) -[2617823.832] {Default Queue} wl_registry#614.global(22, "wp_security_context_manager_v1", 1) -[2617823.836] {Default Queue} wl_registry#614.global(23, "zwp_text_input_manager_v3", 1) -[2617823.840] {Default Queue} wl_registry#614.global(24, "zwp_input_method_manager_v2", 1) -[2617823.845] {Default Queue} wl_registry#614.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617823.849] {Default Queue} wl_registry#614.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617823.854] {Default Queue} wl_registry#614.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617823.858] {Default Queue} wl_registry#614.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617823.864] {Default Queue} wl_registry#614.global(29, "ext_workspace_manager_v1", 1) -[2617823.868] {Default Queue} wl_registry#614.global(30, "zwlr_output_manager_v1", 4) -[2617823.880] {Default Queue} wl_registry#614.global(31, "zwlr_screencopy_manager_v1", 3) -[2617823.884] {Default Queue} wl_registry#614.global(32, "wp_viewporter", 1) -[2617823.889] {Default Queue} wl_registry#614.global(33, "zxdg_exporter_v2", 1) -[2617823.893] {Default Queue} wl_registry#614.global(34, "zxdg_importer_v2", 1) -[2617823.900] {Default Queue} wl_registry#614.global(36, "xdg_activation_v1", 1) -[2617823.906] {Default Queue} wl_registry#614.global(37, "mutter_x11_interop", 1) -[2617823.911] {Default Queue} wl_registry#614.global(38, "wl_seat", 9) -[2617823.916] {Default Queue} -> wl_registry#614.bind(38, "wl_seat", 1, new id [unknown]#632) -[2617823.921] {Default Queue} wl_registry#614.global(39, "wp_cursor_shape_manager_v1", 2) -[2617823.925] {Default Queue} wl_registry#614.global(40, "wl_output", 4) -[2617823.930] {Default Queue} -> wl_registry#614.bind(40, "wl_output", 1, new id [unknown]#633) -[2617823.934] {Default Queue} wl_callback#615.done(0) -[2617823.938] {Default Queue} discarded wl_surface#583.enter(wl_output#18) -[2617823.942] {Default Queue} discarded wl_surface#583.enter(wl_output#57) -[2617823.946] {Default Queue} discarded wl_surface#583.enter(wl_output#89) -[2617823.950] {Default Queue} discarded wl_surface#583.enter(wl_output#121) -[2617823.955] {Default Queue} discarded wl_surface#583.enter(wl_output#153) -[2617823.959] {Default Queue} discarded wl_surface#583.enter(wl_output#185) -[2617823.962] {Default Queue} discarded wl_surface#583.enter(wl_output#217) -[2617823.966] {Default Queue} discarded wl_surface#583.enter(wl_output#249) -[2617823.970] {Default Queue} discarded wl_surface#583.enter(wl_output#281) -[2617823.974] {Default Queue} discarded wl_surface#583.enter(wl_output#313) -[2617823.978] {Default Queue} discarded wl_surface#583.enter(wl_output#345) -[2617823.982] {Default Queue} discarded wl_surface#583.enter(wl_output#377) -[2617823.986] {Default Queue} discarded wl_surface#583.enter(wl_output#409) -[2617823.990] {Default Queue} discarded wl_surface#583.enter(wl_output#441) -[2617823.994] {Default Queue} discarded wl_surface#583.enter(wl_output#473) -[2617823.998] {Default Queue} discarded wl_surface#583.enter(wl_output#505) -[2617824.002] {Default Queue} discarded wl_surface#583.enter(wl_output#537) -[2617824.005] {Default Queue} discarded wl_surface#583.enter(wl_output#569) -[2617824.009] {Default Queue} discarded wl_surface#583.enter(wl_output#601) -[2617824.014] {Default Queue} -> wl_compositor#492.create_surface(new id wl_surface#615) -[2617824.018] {Default Queue} -> wl_subcompositor#621.get_subsurface(new id wl_subsurface#634, wl_surface#615, wl_surface#487) -[2617824.023] {Default Queue} -> wl_subsurface#634.set_desync() -[2617824.028] {Default Queue} -> wl_subsurface#634.set_position(0, 0) -[2617824.032] {Default Queue} -> wl_subsurface#634.place_above(wl_surface#487) -[2617824.077] {Default Queue} -> wl_shm#623.create_pool(new id wl_shm_pool#635, fd 104, 16) -[2617824.084] {Default Queue} -> wl_shm#623.create_pool(new id wl_shm_pool#636, fd 105, 16) -[2617824.088] {Default Queue} -> wl_shm_pool#635.create_buffer(new id wl_buffer#637, 0, 2, 2, 8, 0) -[2617824.093] {Default Queue} -> wl_shm_pool#636.create_buffer(new id wl_buffer#638, 0, 2, 2, 8, 0) -[2617824.102] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) -[2617824.106] {Default Queue} -> wl_surface#615.commit() -[2617824.112] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) -[2617824.117] {Default Queue} -> wl_surface#615.commit() -[2617824.121] {Default Queue} -> wl_compositor#620.create_region(new id wl_region#639) -[2617824.126] {Default Queue} -> wl_compositor#620.create_region(new id wl_region#640) -[2617824.130] {Default Queue} -> wl_region#639.subtract(0, 0, 2, 2) -[2617824.135] {Default Queue} -> wl_region#639.add(0, 0, 0, 0) -[2617824.139] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2617824.143] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2617824.147] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2617824.152] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2617824.159] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) -[2617824.164] {Default Queue} -> wl_surface#615.commit() -[2617824.196] {Default Queue} -> wl_shm#625.create_pool(new id wl_shm_pool#641, fd 108, 640) -[2617824.202] {Default Queue} -> wl_shm#625.create_pool(new id wl_shm_pool#642, fd 109, 640) -[2617824.211] {Default Queue} -> wl_shm_pool#641.create_buffer(new id wl_buffer#643, 0, 10, 16, 40, 0) -[2617824.217] {Default Queue} -> wl_shm_pool#642.create_buffer(new id wl_buffer#644, 0, 10, 16, 40, 0) -[2617824.224] {Default Queue} -> wl_compositor#620.create_surface(new id wl_surface#645) -[2617824.229] {Default Queue} -> wl_surface#645.attach(wl_buffer#643, 0, 0) -[2617824.233] {Default Queue} -> wl_surface#645.commit() -[2617824.238] {Default Queue} -> wl_surface#645.attach(wl_buffer#643, 0, 0) -[2617824.245] {Default Queue} -> wl_surface#645.commit() -[2617824.252] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2617824.262] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#646) -[2617824.270] {Default Queue} -> wl_display#1.sync(new id wl_callback#647) -[2617833.456] {Display Queue} wl_display#1.delete_id(647) -[2617833.469] {Default Queue} wl_keyboard#616.keymap(1, fd 104, 68213) -[2617833.474] {Default Queue} wl_keyboard#616.enter(566, wl_surface#19, array[0]) -[2617833.480] {Default Queue} wl_keyboard#616.modifiers(566, 0, 0, 16, 0) -[2617833.485] {Default Queue} discarded wl_shm#623.format(875709016) -[2617833.489] {Default Queue} discarded wl_shm#623.format(1) -[2617833.492] {Default Queue} discarded wl_shm#623.format(0) -[2617833.496] {Default Queue} discarded wl_shm#623.format(875708993) -[2617833.501] {Default Queue} discarded wl_shm#624.format(875709016) -[2617833.505] {Default Queue} discarded wl_shm#624.format(1) -[2617833.508] {Default Queue} discarded wl_shm#624.format(0) -[2617833.512] {Default Queue} discarded wl_shm#624.format(875708993) -[2617833.516] {Default Queue} discarded wl_shm#625.format(875709016) -[2617833.520] {Default Queue} discarded wl_shm#625.format(1) -[2617833.523] {Default Queue} discarded wl_shm#625.format(0) -[2617833.528] {Default Queue} discarded wl_shm#625.format(875708993) -[2617833.532] {Default Queue} wl_seat#632.capabilities(7) -[2617833.536] {Default Queue} -> wl_seat#632.get_keyboard(new id wl_keyboard#648) -[2617833.540] {Default Queue} -> wl_seat#632.get_pointer(new id wl_pointer#649) -[2617833.545] {Default Queue} -> wl_data_device_manager#628.get_data_device(new id wl_data_device#650, wl_seat#632) -[2617833.550] {Default Queue} -> zwp_primary_selection_device_manager_v1#630.get_device(new id zwp_primary_selection_device_v1#651, wl_seat#632) -[2617833.557] {Default Queue} wl_output#633.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617833.562] {Default Queue} wl_output#633.mode(3, 1280, 800, 60000) -[2617833.567] {Default Queue} discarded wl_surface#3.enter(wl_output#633) -[2617833.571] {Default Queue} discarded wl_surface#423.enter(wl_output#633) -[2617833.575] {Default Queue} discarded wl_surface#455.enter(wl_output#633) -[2617833.579] {Default Queue} discarded wl_surface#135.enter(wl_output#633) -[2617833.583] {Default Queue} discarded wl_surface#231.enter(wl_output#633) -[2617833.586] {Default Queue} discarded wl_surface#359.enter(wl_output#633) -[2617833.590] {Default Queue} discarded wl_surface#583.enter(wl_output#633) -[2617833.594] {Default Queue} discarded wl_surface#103.enter(wl_output#633) -[2617833.598] {Default Queue} discarded wl_surface#327.enter(wl_output#633) -[2617833.602] {Default Queue} discarded wl_surface#43.enter(wl_output#633) -[2617833.606] {Default Queue} discarded wl_surface#19.enter(wl_output#633) -[2617833.610] {Default Queue} discarded wl_surface#199.enter(wl_output#633) -[2617833.613] {Default Queue} discarded wl_surface#391.enter(wl_output#633) -[2617833.617] {Default Queue} discarded wl_surface#263.enter(wl_output#633) -[2617833.621] {Default Queue} discarded wl_surface#551.enter(wl_output#633) -[2617833.625] {Default Queue} discarded wl_surface#71.enter(wl_output#633) -[2617833.629] {Default Queue} discarded wl_surface#487.enter(wl_output#633) -[2617833.633] {Default Queue} discarded wl_surface#519.enter(wl_output#633) -[2617833.637] {Default Queue} discarded wl_surface#295.enter(wl_output#633) -[2617833.641] {Default Queue} discarded wl_surface#167.enter(wl_output#633) -[2617833.645] {Default Queue} wl_registry#646.global(1, "wl_compositor", 6) -[2617833.655] {Default Queue} -> wl_registry#646.bind(1, "wl_compositor", 1, new id [unknown]#652) -[2617833.662] {Default Queue} wl_registry#646.global(2, "wl_subcompositor", 1) -[2617833.667] {Default Queue} -> wl_registry#646.bind(2, "wl_subcompositor", 1, new id [unknown]#653) -[2617833.671] {Default Queue} wl_registry#646.global(3, "xdg_wm_base", 6) -[2617833.676] {Default Queue} -> wl_registry#646.bind(3, "xdg_wm_base", 1, new id [unknown]#654) -[2617833.680] {Default Queue} wl_registry#646.global(6, "zwlr_layer_shell_v1", 5) -[2617833.685] {Default Queue} wl_registry#646.global(7, "ext_session_lock_manager_v1", 1) -[2617833.689] {Default Queue} wl_registry#646.global(8, "wl_shm", 2) -[2617833.700] {Default Queue} -> wl_registry#646.bind(8, "wl_shm", 1, new id [unknown]#655) -[2617833.704] {Default Queue} -> wl_registry#646.bind(8, "wl_shm", 1, new id [unknown]#656) -[2617833.709] {Default Queue} -> wl_registry#646.bind(8, "wl_shm", 1, new id [unknown]#657) -[2617833.713] {Default Queue} wl_registry#646.global(9, "zxdg_output_manager_v1", 3) -[2617833.717] {Default Queue} wl_registry#646.global(10, "wp_fractional_scale_manager_v1", 1) -[2617833.722] {Default Queue} wl_registry#646.global(11, "zwp_tablet_manager_v2", 1) -[2617833.728] {Default Queue} wl_registry#646.global(12, "zwp_pointer_gestures_v1", 3) -[2617833.734] {Default Queue} wl_registry#646.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617833.741] {Default Queue} -> wl_registry#646.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#658) -[2617833.747] {Default Queue} wl_registry#646.global(14, "zwp_pointer_constraints_v1", 1) -[2617833.751] {Default Queue} -> wl_registry#646.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#659) -[2617833.756] {Default Queue} wl_registry#646.global(15, "ext_idle_notifier_v1", 2) -[2617833.760] {Default Queue} wl_registry#646.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617833.765] {Default Queue} wl_registry#646.global(17, "wl_data_device_manager", 3) -[2617833.770] {Default Queue} -> wl_registry#646.bind(17, "wl_data_device_manager", 2, new id [unknown]#660) -[2617833.774] {Default Queue} -> wl_data_device_manager#660.create_data_source(new id wl_data_source#661) -[2617833.778] {Default Queue} -> wl_data_source#661.offer("text/plain") -[2617833.782] {Default Queue} -> wl_data_source#661.offer("text/plain;charset=utf-8") -[2617833.786] {Default Queue} -> wl_data_source#661.offer("TEXT") -[2617833.790] {Default Queue} -> wl_data_source#661.offer("STRING") -[2617833.794] {Default Queue} -> wl_data_source#661.offer("UTF8_STRING") -[2617833.798] {Default Queue} wl_registry#646.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617833.803] {Default Queue} -> wl_registry#646.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#662) -[2617833.808] {Default Queue} -> zwp_primary_selection_device_manager_v1#662.create_source(new id zwp_primary_selection_source_v1#663) -[2617833.815] {Default Queue} -> zwp_primary_selection_source_v1#663.offer("text/plain") -[2617833.819] {Default Queue} -> zwp_primary_selection_source_v1#663.offer("text/plain;charset=utf-8") -[2617833.823] {Default Queue} -> zwp_primary_selection_source_v1#663.offer("TEXT") -[2617833.827] {Default Queue} -> zwp_primary_selection_source_v1#663.offer("STRING") -[2617833.831] {Default Queue} -> zwp_primary_selection_source_v1#663.offer("UTF8_STRING") -[2617833.835] {Default Queue} wl_registry#646.global(19, "zwlr_data_control_manager_v1", 2) -[2617833.839] {Default Queue} wl_registry#646.global(20, "ext_data_control_manager_v1", 1) -[2617833.844] {Default Queue} wl_registry#646.global(21, "wp_presentation", 2) -[2617833.848] {Default Queue} wl_registry#646.global(22, "wp_security_context_manager_v1", 1) -[2617833.852] {Default Queue} wl_registry#646.global(23, "zwp_text_input_manager_v3", 1) -[2617833.856] {Default Queue} wl_registry#646.global(24, "zwp_input_method_manager_v2", 1) -[2617833.862] {Default Queue} wl_registry#646.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617833.876] {Default Queue} wl_registry#646.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617833.882] {Default Queue} wl_registry#646.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617833.886] {Default Queue} wl_registry#646.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617833.891] {Default Queue} wl_registry#646.global(29, "ext_workspace_manager_v1", 1) -[2617833.895] {Default Queue} wl_registry#646.global(30, "zwlr_output_manager_v1", 4) -[2617833.899] {Default Queue} wl_registry#646.global(31, "zwlr_screencopy_manager_v1", 3) -[2617833.903] {Default Queue} wl_registry#646.global(32, "wp_viewporter", 1) -[2617833.908] {Default Queue} wl_registry#646.global(33, "zxdg_exporter_v2", 1) -[2617833.912] {Default Queue} wl_registry#646.global(34, "zxdg_importer_v2", 1) -[2617833.916] {Default Queue} wl_registry#646.global(36, "xdg_activation_v1", 1) -[2617833.921] {Default Queue} wl_registry#646.global(37, "mutter_x11_interop", 1) -[2617833.925] {Default Queue} wl_registry#646.global(38, "wl_seat", 9) -[2617833.930] {Default Queue} -> wl_registry#646.bind(38, "wl_seat", 1, new id [unknown]#664) -[2617833.935] {Default Queue} wl_registry#646.global(39, "wp_cursor_shape_manager_v1", 2) -[2617833.939] {Default Queue} wl_registry#646.global(40, "wl_output", 4) -[2617833.943] {Default Queue} -> wl_registry#646.bind(40, "wl_output", 1, new id [unknown]#665) -[2617833.948] {Default Queue} wl_callback#647.done(0) -[2617833.952] {Default Queue} discarded wl_surface#615.enter(wl_output#18) -[2617833.956] {Default Queue} discarded wl_surface#615.enter(wl_output#57) -[2617833.960] {Default Queue} discarded wl_surface#615.enter(wl_output#89) -[2617833.964] {Default Queue} discarded wl_surface#615.enter(wl_output#121) -[2617833.967] {Default Queue} discarded wl_surface#615.enter(wl_output#153) -[2617833.971] {Default Queue} discarded wl_surface#615.enter(wl_output#185) -[2617833.975] {Default Queue} discarded wl_surface#615.enter(wl_output#217) -[2617833.979] {Default Queue} discarded wl_surface#615.enter(wl_output#249) -[2617833.983] {Default Queue} discarded wl_surface#615.enter(wl_output#281) -[2617833.987] {Default Queue} discarded wl_surface#615.enter(wl_output#313) -[2617833.991] {Default Queue} discarded wl_surface#615.enter(wl_output#345) -[2617833.995] {Default Queue} discarded wl_surface#615.enter(wl_output#377) -[2617833.999] {Default Queue} discarded wl_surface#615.enter(wl_output#409) -[2617834.003] {Default Queue} discarded wl_surface#615.enter(wl_output#441) -[2617834.007] {Default Queue} discarded wl_surface#615.enter(wl_output#473) -[2617834.011] {Default Queue} discarded wl_surface#615.enter(wl_output#505) -[2617834.014] {Default Queue} discarded wl_surface#615.enter(wl_output#537) -[2617834.018] {Default Queue} discarded wl_surface#615.enter(wl_output#569) -[2617834.022] {Default Queue} discarded wl_surface#615.enter(wl_output#601) -[2617834.026] {Default Queue} discarded wl_surface#615.enter(wl_output#633) -[2617834.030] {Default Queue} -> wl_compositor#492.create_surface(new id wl_surface#647) -[2617834.035] {Default Queue} -> wl_subcompositor#653.get_subsurface(new id wl_subsurface#666, wl_surface#647, wl_surface#487) -[2617834.039] {Default Queue} -> wl_subsurface#666.set_desync() -[2617834.044] {Default Queue} -> wl_subsurface#666.set_position(0, 0) -[2617834.049] {Default Queue} -> wl_subsurface#666.place_above(wl_surface#487) -[2617834.092] {Default Queue} -> wl_shm#655.create_pool(new id wl_shm_pool#667, fd 109, 16) -[2617834.099] {Default Queue} -> wl_shm#655.create_pool(new id wl_shm_pool#668, fd 110, 16) -[2617834.104] {Default Queue} -> wl_shm_pool#667.create_buffer(new id wl_buffer#669, 0, 2, 2, 8, 0) -[2617834.109] {Default Queue} -> wl_shm_pool#668.create_buffer(new id wl_buffer#670, 0, 2, 2, 8, 0) -[2617834.117] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) -[2617834.121] {Default Queue} -> wl_surface#647.commit() -[2617834.127] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) -[2617834.131] {Default Queue} -> wl_surface#647.commit() -[2617834.135] {Default Queue} -> wl_compositor#652.create_region(new id wl_region#671) -[2617834.143] {Default Queue} -> wl_compositor#652.create_region(new id wl_region#672) -[2617834.149] {Default Queue} -> wl_region#671.subtract(0, 0, 2, 2) -[2617834.154] {Default Queue} -> wl_region#671.add(0, 0, 0, 0) -[2617834.158] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2617834.163] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2617834.167] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2617834.171] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2617834.178] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) -[2617834.183] {Default Queue} -> wl_surface#647.commit() -[2617834.214] {Default Queue} -> wl_shm#657.create_pool(new id wl_shm_pool#673, fd 113, 640) -[2617834.220] {Default Queue} -> wl_shm#657.create_pool(new id wl_shm_pool#674, fd 114, 640) -[2617834.224] {Default Queue} -> wl_shm_pool#673.create_buffer(new id wl_buffer#675, 0, 10, 16, 40, 0) -[2617834.229] {Default Queue} -> wl_shm_pool#674.create_buffer(new id wl_buffer#676, 0, 10, 16, 40, 0) -[2617834.236] {Default Queue} -> wl_compositor#652.create_surface(new id wl_surface#677) -[2617834.240] {Default Queue} -> wl_surface#677.attach(wl_buffer#675, 0, 0) -[2617834.245] {Default Queue} -> wl_surface#677.commit() -[2617834.250] {Default Queue} -> wl_surface#677.attach(wl_buffer#675, 0, 0) -[2617834.255] {Default Queue} -> wl_surface#677.commit() -[2617834.260] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2617834.268] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#678) -[2617834.273] {Default Queue} -> wl_display#1.sync(new id wl_callback#679) -[2617843.472] {Display Queue} wl_display#1.delete_id(679) -[2617843.484] {Default Queue} wl_keyboard#648.keymap(1, fd 109, 68213) -[2617843.490] {Default Queue} wl_keyboard#648.enter(566, wl_surface#19, array[0]) -[2617843.495] {Default Queue} wl_keyboard#648.modifiers(566, 0, 0, 16, 0) -[2617843.500] {Default Queue} discarded wl_shm#655.format(875709016) -[2617843.504] {Default Queue} discarded wl_shm#655.format(1) -[2617843.508] {Default Queue} discarded wl_shm#655.format(0) -[2617843.512] {Default Queue} discarded wl_shm#655.format(875708993) -[2617843.516] {Default Queue} discarded wl_shm#656.format(875709016) -[2617843.520] {Default Queue} discarded wl_shm#656.format(1) -[2617843.524] {Default Queue} discarded wl_shm#656.format(0) -[2617843.528] {Default Queue} discarded wl_shm#656.format(875708993) -[2617843.532] {Default Queue} discarded wl_shm#657.format(875709016) -[2617843.536] {Default Queue} discarded wl_shm#657.format(1) -[2617843.540] {Default Queue} discarded wl_shm#657.format(0) -[2617843.544] {Default Queue} discarded wl_shm#657.format(875708993) -[2617843.548] {Default Queue} wl_seat#664.capabilities(7) -[2617843.552] {Default Queue} -> wl_seat#664.get_keyboard(new id wl_keyboard#680) -[2617843.557] {Default Queue} -> wl_seat#664.get_pointer(new id wl_pointer#681) -[2617843.561] {Default Queue} -> wl_data_device_manager#660.get_data_device(new id wl_data_device#682, wl_seat#664) -[2617843.567] {Default Queue} -> zwp_primary_selection_device_manager_v1#662.get_device(new id zwp_primary_selection_device_v1#683, wl_seat#664) -[2617843.574] {Default Queue} wl_output#665.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617843.579] {Default Queue} wl_output#665.mode(3, 1280, 800, 60000) -[2617843.584] {Default Queue} discarded wl_surface#3.enter(wl_output#665) -[2617843.588] {Default Queue} discarded wl_surface#423.enter(wl_output#665) -[2617843.592] {Default Queue} discarded wl_surface#455.enter(wl_output#665) -[2617843.596] {Default Queue} discarded wl_surface#135.enter(wl_output#665) -[2617843.600] {Default Queue} discarded wl_surface#615.enter(wl_output#665) -[2617843.604] {Default Queue} discarded wl_surface#231.enter(wl_output#665) -[2617843.607] {Default Queue} discarded wl_surface#359.enter(wl_output#665) -[2617843.612] {Default Queue} discarded wl_surface#583.enter(wl_output#665) -[2617843.616] {Default Queue} discarded wl_surface#103.enter(wl_output#665) -[2617843.619] {Default Queue} discarded wl_surface#327.enter(wl_output#665) -[2617843.627] {Default Queue} discarded wl_surface#43.enter(wl_output#665) -[2617843.634] {Default Queue} discarded wl_surface#19.enter(wl_output#665) -[2617843.638] {Default Queue} discarded wl_surface#199.enter(wl_output#665) -[2617843.642] {Default Queue} discarded wl_surface#391.enter(wl_output#665) -[2617843.646] {Default Queue} discarded wl_surface#263.enter(wl_output#665) -[2617843.649] {Default Queue} discarded wl_surface#551.enter(wl_output#665) -[2617843.654] {Default Queue} discarded wl_surface#71.enter(wl_output#665) -[2617843.658] {Default Queue} discarded wl_surface#487.enter(wl_output#665) -[2617843.661] {Default Queue} discarded wl_surface#519.enter(wl_output#665) -[2617843.665] {Default Queue} discarded wl_surface#295.enter(wl_output#665) -[2617843.669] {Default Queue} discarded wl_surface#167.enter(wl_output#665) -[2617843.673] {Default Queue} wl_registry#678.global(1, "wl_compositor", 6) -[2617843.678] {Default Queue} -> wl_registry#678.bind(1, "wl_compositor", 1, new id [unknown]#684) -[2617843.683] {Default Queue} wl_registry#678.global(2, "wl_subcompositor", 1) -[2617843.687] {Default Queue} -> wl_registry#678.bind(2, "wl_subcompositor", 1, new id [unknown]#685) -[2617843.692] {Default Queue} wl_registry#678.global(3, "xdg_wm_base", 6) -[2617843.696] {Default Queue} -> wl_registry#678.bind(3, "xdg_wm_base", 1, new id [unknown]#686) -[2617843.701] {Default Queue} wl_registry#678.global(6, "zwlr_layer_shell_v1", 5) -[2617843.705] {Default Queue} wl_registry#678.global(7, "ext_session_lock_manager_v1", 1) -[2617843.710] {Default Queue} wl_registry#678.global(8, "wl_shm", 2) -[2617843.716] {Default Queue} -> wl_registry#678.bind(8, "wl_shm", 1, new id [unknown]#687) -[2617843.723] {Default Queue} -> wl_registry#678.bind(8, "wl_shm", 1, new id [unknown]#688) -[2617843.729] {Default Queue} -> wl_registry#678.bind(8, "wl_shm", 1, new id [unknown]#689) -[2617843.734] {Default Queue} wl_registry#678.global(9, "zxdg_output_manager_v1", 3) -[2617843.739] {Default Queue} wl_registry#678.global(10, "wp_fractional_scale_manager_v1", 1) -[2617843.743] {Default Queue} wl_registry#678.global(11, "zwp_tablet_manager_v2", 1) -[2617843.747] {Default Queue} wl_registry#678.global(12, "zwp_pointer_gestures_v1", 3) -[2617843.752] {Default Queue} wl_registry#678.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617843.756] {Default Queue} -> wl_registry#678.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#690) -[2617843.761] {Default Queue} wl_registry#678.global(14, "zwp_pointer_constraints_v1", 1) -[2617843.765] {Default Queue} -> wl_registry#678.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#691) -[2617843.770] {Default Queue} wl_registry#678.global(15, "ext_idle_notifier_v1", 2) -[2617843.774] {Default Queue} wl_registry#678.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617843.778] {Default Queue} wl_registry#678.global(17, "wl_data_device_manager", 3) -[2617843.783] {Default Queue} -> wl_registry#678.bind(17, "wl_data_device_manager", 2, new id [unknown]#692) -[2617843.788] {Default Queue} -> wl_data_device_manager#692.create_data_source(new id wl_data_source#693) -[2617843.792] {Default Queue} -> wl_data_source#693.offer("text/plain") -[2617843.796] {Default Queue} -> wl_data_source#693.offer("text/plain;charset=utf-8") -[2617843.800] {Default Queue} -> wl_data_source#693.offer("TEXT") -[2617843.805] {Default Queue} -> wl_data_source#693.offer("STRING") -[2617843.808] {Default Queue} -> wl_data_source#693.offer("UTF8_STRING") -[2617843.813] {Default Queue} wl_registry#678.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617843.817] {Default Queue} -> wl_registry#678.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#694) -[2617843.822] {Default Queue} -> zwp_primary_selection_device_manager_v1#694.create_source(new id zwp_primary_selection_source_v1#695) -[2617843.829] {Default Queue} -> zwp_primary_selection_source_v1#695.offer("text/plain") -[2617843.834] {Default Queue} -> zwp_primary_selection_source_v1#695.offer("text/plain;charset=utf-8") -[2617843.841] {Default Queue} -> zwp_primary_selection_source_v1#695.offer("TEXT") -[2617843.847] {Default Queue} -> zwp_primary_selection_source_v1#695.offer("STRING") -[2617843.851] {Default Queue} -> zwp_primary_selection_source_v1#695.offer("UTF8_STRING") -[2617843.855] {Default Queue} wl_registry#678.global(19, "zwlr_data_control_manager_v1", 2) -[2617843.859] {Default Queue} wl_registry#678.global(20, "ext_data_control_manager_v1", 1) -[2617843.869] {Default Queue} wl_registry#678.global(21, "wp_presentation", 2) -[2617843.874] {Default Queue} wl_registry#678.global(22, "wp_security_context_manager_v1", 1) -[2617843.895] {Default Queue} wl_registry#678.global(23, "zwp_text_input_manager_v3", 1) -[2617843.911] {Default Queue} wl_registry#678.global(24, "zwp_input_method_manager_v2", 1) -[2617843.918] {Default Queue} wl_registry#678.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617843.925] {Default Queue} wl_registry#678.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617843.931] {Default Queue} wl_registry#678.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617843.936] {Default Queue} wl_registry#678.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617843.941] {Default Queue} wl_registry#678.global(29, "ext_workspace_manager_v1", 1) -[2617843.947] {Default Queue} wl_registry#678.global(30, "zwlr_output_manager_v1", 4) -[2617843.952] {Default Queue} wl_registry#678.global(31, "zwlr_screencopy_manager_v1", 3) -[2617843.957] {Default Queue} wl_registry#678.global(32, "wp_viewporter", 1) -[2617843.963] {Default Queue} wl_registry#678.global(33, "zxdg_exporter_v2", 1) -[2617843.969] {Default Queue} wl_registry#678.global(34, "zxdg_importer_v2", 1) -[2617843.974] {Default Queue} wl_registry#678.global(36, "xdg_activation_v1", 1) -[2617843.980] {Default Queue} wl_registry#678.global(37, "mutter_x11_interop", 1) -[2617843.985] {Default Queue} wl_registry#678.global(38, "wl_seat", 9) -[2617843.991] {Default Queue} -> wl_registry#678.bind(38, "wl_seat", 1, new id [unknown]#696) -[2617843.998] {Default Queue} wl_registry#678.global(39, "wp_cursor_shape_manager_v1", 2) -[2617844.003] {Default Queue} wl_registry#678.global(40, "wl_output", 4) -[2617844.009] {Default Queue} -> wl_registry#678.bind(40, "wl_output", 1, new id [unknown]#697) -[2617844.015] {Default Queue} wl_callback#679.done(0) -[2617844.020] {Default Queue} discarded wl_surface#647.enter(wl_output#18) -[2617844.026] {Default Queue} discarded wl_surface#647.enter(wl_output#57) -[2617844.031] {Default Queue} discarded wl_surface#647.enter(wl_output#89) -[2617844.036] {Default Queue} discarded wl_surface#647.enter(wl_output#121) -[2617844.041] {Default Queue} discarded wl_surface#647.enter(wl_output#153) -[2617844.046] {Default Queue} discarded wl_surface#647.enter(wl_output#185) -[2617844.051] {Default Queue} discarded wl_surface#647.enter(wl_output#217) -[2617844.055] {Default Queue} discarded wl_surface#647.enter(wl_output#249) -[2617844.060] {Default Queue} discarded wl_surface#647.enter(wl_output#281) -[2617844.065] {Default Queue} discarded wl_surface#647.enter(wl_output#313) -[2617844.070] {Default Queue} discarded wl_surface#647.enter(wl_output#345) -[2617844.075] {Default Queue} discarded wl_surface#647.enter(wl_output#377) -[2617844.080] {Default Queue} discarded wl_surface#647.enter(wl_output#409) -[2617844.085] {Default Queue} discarded wl_surface#647.enter(wl_output#441) -[2617844.090] {Default Queue} discarded wl_surface#647.enter(wl_output#473) -[2617844.095] {Default Queue} discarded wl_surface#647.enter(wl_output#505) -[2617844.100] {Default Queue} discarded wl_surface#647.enter(wl_output#537) -[2617844.104] {Default Queue} discarded wl_surface#647.enter(wl_output#569) -[2617844.109] {Default Queue} discarded wl_surface#647.enter(wl_output#601) -[2617844.114] {Default Queue} discarded wl_surface#647.enter(wl_output#633) -[2617844.119] {Default Queue} discarded wl_surface#647.enter(wl_output#665) -[2617844.124] {Default Queue} -> wl_compositor#460.create_surface(new id wl_surface#679) -[2617844.130] {Default Queue} -> wl_subcompositor#685.get_subsurface(new id wl_subsurface#698, wl_surface#679, wl_surface#455) -[2617844.142] {Default Queue} -> wl_subsurface#698.set_desync() -[2617844.151] {Default Queue} -> wl_subsurface#698.set_position(0, 0) -[2617844.157] {Default Queue} -> wl_subsurface#698.place_above(wl_surface#455) -[2617844.220] {Default Queue} -> wl_shm#687.create_pool(new id wl_shm_pool#699, fd 114, 16) -[2617844.231] {Default Queue} -> wl_shm#687.create_pool(new id wl_shm_pool#700, fd 115, 16) -[2617844.237] {Default Queue} -> wl_shm_pool#699.create_buffer(new id wl_buffer#701, 0, 2, 2, 8, 0) -[2617844.244] {Default Queue} -> wl_shm_pool#700.create_buffer(new id wl_buffer#702, 0, 2, 2, 8, 0) -[2617844.254] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) -[2617844.260] {Default Queue} -> wl_surface#679.commit() -[2617844.267] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) -[2617844.272] {Default Queue} -> wl_surface#679.commit() -[2617844.277] {Default Queue} -> wl_compositor#684.create_region(new id wl_region#703) -[2617844.283] {Default Queue} -> wl_compositor#684.create_region(new id wl_region#704) -[2617844.288] {Default Queue} -> wl_region#703.subtract(0, 0, 2, 2) -[2617844.293] {Default Queue} -> wl_region#703.add(0, 0, 0, 0) -[2617844.299] {Default Queue} -> wl_surface#679.set_opaque_region(wl_region#704) -[2617844.304] {Default Queue} -> wl_surface#679.set_input_region(wl_region#703) -[2617844.309] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2617844.315] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2617844.324] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) -[2617844.329] {Default Queue} -> wl_surface#679.commit() -[2617844.372] {Default Queue} -> wl_shm#689.create_pool(new id wl_shm_pool#705, fd 118, 640) -[2617844.380] {Default Queue} -> wl_shm#689.create_pool(new id wl_shm_pool#706, fd 119, 640) -[2617844.386] {Default Queue} -> wl_shm_pool#705.create_buffer(new id wl_buffer#707, 0, 10, 16, 40, 0) -[2617844.392] {Default Queue} -> wl_shm_pool#706.create_buffer(new id wl_buffer#708, 0, 10, 16, 40, 0) -[2617844.401] {Default Queue} -> wl_compositor#684.create_surface(new id wl_surface#709) -[2617844.407] {Default Queue} -> wl_surface#709.attach(wl_buffer#707, 0, 0) -[2617844.411] {Default Queue} -> wl_surface#709.commit() -[2617844.417] {Default Queue} -> wl_surface#709.attach(wl_buffer#707, 0, 0) -[2617844.421] {Default Queue} -> wl_surface#709.commit() -[2617844.427] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2617844.432] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2617844.442] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#710) -[2617844.447] {Default Queue} -> wl_display#1.sync(new id wl_callback#711) -[2617853.510] {Display Queue} wl_display#1.delete_id(711) -[2617853.528] {Default Queue} wl_keyboard#680.keymap(1, fd 114, 68213) -[2617853.539] {Default Queue} wl_keyboard#680.enter(566, wl_surface#19, array[0]) -[2617853.548] {Default Queue} wl_keyboard#680.modifiers(566, 0, 0, 16, 0) -[2617853.557] {Default Queue} discarded wl_shm#687.format(875709016) -[2617853.564] {Default Queue} discarded wl_shm#687.format(1) -[2617853.571] {Default Queue} discarded wl_shm#687.format(0) -[2617853.579] {Default Queue} discarded wl_shm#687.format(875708993) -[2617853.586] {Default Queue} discarded wl_shm#688.format(875709016) -[2617853.594] {Default Queue} discarded wl_shm#688.format(1) -[2617853.601] {Default Queue} discarded wl_shm#688.format(0) -[2617853.608] {Default Queue} discarded wl_shm#688.format(875708993) -[2617853.614] {Default Queue} discarded wl_shm#689.format(875709016) -[2617853.621] {Default Queue} discarded wl_shm#689.format(1) -[2617853.628] {Default Queue} discarded wl_shm#689.format(0) -[2617853.634] {Default Queue} discarded wl_shm#689.format(875708993) -[2617853.641] {Default Queue} wl_seat#696.capabilities(7) -[2617853.649] {Default Queue} -> wl_seat#696.get_keyboard(new id wl_keyboard#712) -[2617853.657] {Default Queue} -> wl_seat#696.get_pointer(new id wl_pointer#713) -[2617853.666] {Default Queue} -> wl_data_device_manager#692.get_data_device(new id wl_data_device#714, wl_seat#696) -[2617853.683] {Default Queue} -> zwp_primary_selection_device_manager_v1#694.get_device(new id zwp_primary_selection_device_v1#715, wl_seat#696) -[2617853.702] {Default Queue} wl_output#697.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617853.711] {Default Queue} wl_output#697.mode(3, 1280, 800, 60000) -[2617853.719] {Default Queue} discarded wl_surface#3.enter(wl_output#697) -[2617853.727] {Default Queue} discarded wl_surface#423.enter(wl_output#697) -[2617853.734] {Default Queue} discarded wl_surface#455.enter(wl_output#697) -[2617853.740] {Default Queue} discarded wl_surface#135.enter(wl_output#697) -[2617853.747] {Default Queue} discarded wl_surface#615.enter(wl_output#697) -[2617853.754] {Default Queue} discarded wl_surface#231.enter(wl_output#697) -[2617853.760] {Default Queue} discarded wl_surface#359.enter(wl_output#697) -[2617853.765] {Default Queue} discarded wl_surface#583.enter(wl_output#697) -[2617853.770] {Default Queue} discarded wl_surface#103.enter(wl_output#697) -[2617853.776] {Default Queue} discarded wl_surface#327.enter(wl_output#697) -[2617853.782] {Default Queue} discarded wl_surface#43.enter(wl_output#697) -[2617853.788] {Default Queue} discarded wl_surface#19.enter(wl_output#697) -[2617853.794] {Default Queue} discarded wl_surface#199.enter(wl_output#697) -[2617853.801] {Default Queue} discarded wl_surface#391.enter(wl_output#697) -[2617853.808] {Default Queue} discarded wl_surface#263.enter(wl_output#697) -[2617853.814] {Default Queue} discarded wl_surface#551.enter(wl_output#697) -[2617853.820] {Default Queue} discarded wl_surface#647.enter(wl_output#697) -[2617853.825] {Default Queue} discarded wl_surface#71.enter(wl_output#697) -[2617853.830] {Default Queue} discarded wl_surface#487.enter(wl_output#697) -[2617853.835] {Default Queue} discarded wl_surface#519.enter(wl_output#697) -[2617853.839] {Default Queue} discarded wl_surface#295.enter(wl_output#697) -[2617853.844] {Default Queue} discarded wl_surface#167.enter(wl_output#697) -[2617853.849] {Default Queue} wl_registry#710.global(1, "wl_compositor", 6) -[2617853.856] {Default Queue} -> wl_registry#710.bind(1, "wl_compositor", 1, new id [unknown]#716) -[2617853.868] {Default Queue} wl_registry#710.global(2, "wl_subcompositor", 1) -[2617853.875] {Default Queue} -> wl_registry#710.bind(2, "wl_subcompositor", 1, new id [unknown]#717) -[2617853.880] {Default Queue} wl_registry#710.global(3, "xdg_wm_base", 6) -[2617853.886] {Default Queue} -> wl_registry#710.bind(3, "xdg_wm_base", 1, new id [unknown]#718) -[2617853.891] {Default Queue} wl_registry#710.global(6, "zwlr_layer_shell_v1", 5) -[2617853.897] {Default Queue} wl_registry#710.global(7, "ext_session_lock_manager_v1", 1) -[2617853.902] {Default Queue} wl_registry#710.global(8, "wl_shm", 2) -[2617853.908] {Default Queue} -> wl_registry#710.bind(8, "wl_shm", 1, new id [unknown]#719) -[2617853.914] {Default Queue} -> wl_registry#710.bind(8, "wl_shm", 1, new id [unknown]#720) -[2617853.919] {Default Queue} -> wl_registry#710.bind(8, "wl_shm", 1, new id [unknown]#721) -[2617853.924] {Default Queue} wl_registry#710.global(9, "zxdg_output_manager_v1", 3) -[2617853.930] {Default Queue} wl_registry#710.global(10, "wp_fractional_scale_manager_v1", 1) -[2617853.935] {Default Queue} wl_registry#710.global(11, "zwp_tablet_manager_v2", 1) -[2617853.940] {Default Queue} wl_registry#710.global(12, "zwp_pointer_gestures_v1", 3) -[2617853.946] {Default Queue} wl_registry#710.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617853.951] {Default Queue} -> wl_registry#710.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#722) -[2617853.957] {Default Queue} wl_registry#710.global(14, "zwp_pointer_constraints_v1", 1) -[2617853.962] {Default Queue} -> wl_registry#710.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#723) -[2617853.968] {Default Queue} wl_registry#710.global(15, "ext_idle_notifier_v1", 2) -[2617853.973] {Default Queue} wl_registry#710.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617853.978] {Default Queue} wl_registry#710.global(17, "wl_data_device_manager", 3) -[2617853.989] {Default Queue} -> wl_registry#710.bind(17, "wl_data_device_manager", 2, new id [unknown]#724) -[2617853.998] {Default Queue} -> wl_data_device_manager#724.create_data_source(new id wl_data_source#725) -[2617854.003] {Default Queue} -> wl_data_source#725.offer("text/plain") -[2617854.009] {Default Queue} -> wl_data_source#725.offer("text/plain;charset=utf-8") -[2617854.014] {Default Queue} -> wl_data_source#725.offer("TEXT") -[2617854.019] {Default Queue} -> wl_data_source#725.offer("STRING") -[2617854.024] {Default Queue} -> wl_data_source#725.offer("UTF8_STRING") -[2617854.030] {Default Queue} wl_registry#710.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617854.036] {Default Queue} -> wl_registry#710.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#726) -[2617854.042] {Default Queue} -> zwp_primary_selection_device_manager_v1#726.create_source(new id zwp_primary_selection_source_v1#727) -[2617854.051] {Default Queue} -> zwp_primary_selection_source_v1#727.offer("text/plain") -[2617854.056] {Default Queue} -> zwp_primary_selection_source_v1#727.offer("text/plain;charset=utf-8") -[2617854.061] {Default Queue} -> zwp_primary_selection_source_v1#727.offer("TEXT") -[2617854.066] {Default Queue} -> zwp_primary_selection_source_v1#727.offer("STRING") -[2617854.071] {Default Queue} -> zwp_primary_selection_source_v1#727.offer("UTF8_STRING") -[2617854.076] {Default Queue} wl_registry#710.global(19, "zwlr_data_control_manager_v1", 2) -[2617854.082] {Default Queue} wl_registry#710.global(20, "ext_data_control_manager_v1", 1) -[2617854.087] {Default Queue} wl_registry#710.global(21, "wp_presentation", 2) -[2617854.093] {Default Queue} wl_registry#710.global(22, "wp_security_context_manager_v1", 1) -[2617854.098] {Default Queue} wl_registry#710.global(23, "zwp_text_input_manager_v3", 1) -[2617854.103] {Default Queue} wl_registry#710.global(24, "zwp_input_method_manager_v2", 1) -[2617854.108] {Default Queue} wl_registry#710.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617854.114] {Default Queue} wl_registry#710.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617854.119] {Default Queue} wl_registry#710.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617854.125] {Default Queue} wl_registry#710.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617854.130] {Default Queue} wl_registry#710.global(29, "ext_workspace_manager_v1", 1) -[2617854.136] {Default Queue} wl_registry#710.global(30, "zwlr_output_manager_v1", 4) -[2617854.141] {Default Queue} wl_registry#710.global(31, "zwlr_screencopy_manager_v1", 3) -[2617854.146] {Default Queue} wl_registry#710.global(32, "wp_viewporter", 1) -[2617854.152] {Default Queue} wl_registry#710.global(33, "zxdg_exporter_v2", 1) -[2617854.157] {Default Queue} wl_registry#710.global(34, "zxdg_importer_v2", 1) -[2617854.162] {Default Queue} wl_registry#710.global(36, "xdg_activation_v1", 1) -[2617854.167] {Default Queue} wl_registry#710.global(37, "mutter_x11_interop", 1) -[2617854.173] {Default Queue} wl_registry#710.global(38, "wl_seat", 9) -[2617854.179] {Default Queue} -> wl_registry#710.bind(38, "wl_seat", 1, new id [unknown]#728) -[2617854.184] {Default Queue} wl_registry#710.global(39, "wp_cursor_shape_manager_v1", 2) -[2617854.189] {Default Queue} wl_registry#710.global(40, "wl_output", 4) -[2617854.195] {Default Queue} -> wl_registry#710.bind(40, "wl_output", 1, new id [unknown]#729) -[2617854.201] {Default Queue} wl_callback#711.done(0) -[2617854.206] {Default Queue} discarded wl_surface#679.enter(wl_output#18) -[2617854.211] {Default Queue} discarded wl_surface#679.enter(wl_output#57) -[2617854.216] {Default Queue} discarded wl_surface#679.enter(wl_output#89) -[2617854.221] {Default Queue} discarded wl_surface#679.enter(wl_output#121) -[2617854.226] {Default Queue} discarded wl_surface#679.enter(wl_output#153) -[2617854.231] {Default Queue} discarded wl_surface#679.enter(wl_output#185) -[2617854.236] {Default Queue} discarded wl_surface#679.enter(wl_output#217) -[2617854.241] {Default Queue} discarded wl_surface#679.enter(wl_output#249) -[2617854.245] {Default Queue} discarded wl_surface#679.enter(wl_output#281) -[2617854.254] {Default Queue} discarded wl_surface#679.enter(wl_output#313) -[2617854.261] {Default Queue} discarded wl_surface#679.enter(wl_output#345) -[2617854.266] {Default Queue} discarded wl_surface#679.enter(wl_output#377) -[2617854.271] {Default Queue} discarded wl_surface#679.enter(wl_output#409) -[2617854.276] {Default Queue} discarded wl_surface#679.enter(wl_output#441) -[2617854.280] {Default Queue} discarded wl_surface#679.enter(wl_output#473) -[2617854.285] {Default Queue} discarded wl_surface#679.enter(wl_output#505) -[2617854.290] {Default Queue} discarded wl_surface#679.enter(wl_output#537) -[2617854.295] {Default Queue} discarded wl_surface#679.enter(wl_output#569) -[2617854.300] {Default Queue} discarded wl_surface#679.enter(wl_output#601) -[2617854.304] {Default Queue} discarded wl_surface#679.enter(wl_output#633) -[2617854.309] {Default Queue} discarded wl_surface#679.enter(wl_output#665) -[2617854.314] {Default Queue} discarded wl_surface#679.enter(wl_output#697) -[2617854.319] {Default Queue} -> wl_compositor#684.create_surface(new id wl_surface#711) -[2617854.325] {Default Queue} -> wl_subcompositor#717.get_subsurface(new id wl_subsurface#730, wl_surface#711, wl_surface#679) -[2617854.331] {Default Queue} -> wl_subsurface#730.set_desync() -[2617854.336] {Default Queue} -> wl_subsurface#730.set_position(0, 0) -[2617854.342] {Default Queue} -> wl_subsurface#730.place_above(wl_surface#679) -[2617854.398] {Default Queue} -> wl_shm#719.create_pool(new id wl_shm_pool#731, fd 119, 16) -[2617854.407] {Default Queue} -> wl_shm#719.create_pool(new id wl_shm_pool#732, fd 120, 16) -[2617854.412] {Default Queue} -> wl_shm_pool#731.create_buffer(new id wl_buffer#733, 0, 2, 2, 8, 0) -[2617854.418] {Default Queue} -> wl_shm_pool#732.create_buffer(new id wl_buffer#734, 0, 2, 2, 8, 0) -[2617854.429] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) -[2617854.434] {Default Queue} -> wl_surface#711.commit() -[2617854.440] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) -[2617854.444] {Default Queue} -> wl_surface#711.commit() -[2617854.448] {Default Queue} -> wl_compositor#716.create_region(new id wl_region#735) -[2617854.453] {Default Queue} -> wl_compositor#716.create_region(new id wl_region#736) -[2617854.457] {Default Queue} -> wl_region#735.subtract(0, 0, 2, 2) -[2617854.461] {Default Queue} -> wl_region#735.add(0, 0, 0, 0) -[2617854.466] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2617854.471] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2617854.476] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2617854.480] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2617854.487] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) -[2617854.492] {Default Queue} -> wl_surface#711.commit() -[2617854.526] {Default Queue} -> wl_shm#721.create_pool(new id wl_shm_pool#737, fd 123, 640) -[2617854.533] {Default Queue} -> wl_shm#721.create_pool(new id wl_shm_pool#738, fd 124, 640) -[2617854.537] {Default Queue} -> wl_shm_pool#737.create_buffer(new id wl_buffer#739, 0, 10, 16, 40, 0) -[2617854.542] {Default Queue} -> wl_shm_pool#738.create_buffer(new id wl_buffer#740, 0, 10, 16, 40, 0) -[2617854.549] {Default Queue} -> wl_compositor#716.create_surface(new id wl_surface#741) -[2617854.553] {Default Queue} -> wl_surface#741.attach(wl_buffer#739, 0, 0) -[2617854.558] {Default Queue} -> wl_surface#741.commit() -[2617854.563] {Default Queue} -> wl_surface#741.attach(wl_buffer#739, 0, 0) -[2617854.568] {Default Queue} -> wl_surface#741.commit() -[2617854.573] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2617854.578] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2617854.583] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2617854.590] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#742) -[2617854.594] {Default Queue} -> wl_display#1.sync(new id wl_callback#743) -[2617863.533] {Display Queue} wl_display#1.delete_id(743) -[2617863.551] {Default Queue} wl_keyboard#712.keymap(1, fd 119, 68213) -[2617863.568] {Default Queue} wl_keyboard#712.enter(566, wl_surface#19, array[0]) -[2617863.583] {Default Queue} wl_keyboard#712.modifiers(566, 0, 0, 16, 0) -[2617863.590] {Default Queue} discarded wl_shm#719.format(875709016) -[2617863.597] {Default Queue} discarded wl_shm#719.format(1) -[2617863.605] {Default Queue} discarded wl_shm#719.format(0) -[2617863.612] {Default Queue} discarded wl_shm#719.format(875708993) -[2617863.619] {Default Queue} discarded wl_shm#720.format(875709016) -[2617863.626] {Default Queue} discarded wl_shm#720.format(1) -[2617863.633] {Default Queue} discarded wl_shm#720.format(0) -[2617863.642] {Default Queue} discarded wl_shm#720.format(875708993) -[2617863.649] {Default Queue} discarded wl_shm#721.format(875709016) -[2617863.656] {Default Queue} discarded wl_shm#721.format(1) -[2617863.662] {Default Queue} discarded wl_shm#721.format(0) -[2617863.669] {Default Queue} discarded wl_shm#721.format(875708993) -[2617863.675] {Default Queue} wl_seat#728.capabilities(7) -[2617863.683] {Default Queue} -> wl_seat#728.get_keyboard(new id wl_keyboard#744) -[2617863.694] {Default Queue} -> wl_seat#728.get_pointer(new id wl_pointer#745) -[2617863.702] {Default Queue} -> wl_data_device_manager#724.get_data_device(new id wl_data_device#746, wl_seat#728) -[2617863.711] {Default Queue} -> zwp_primary_selection_device_manager_v1#726.get_device(new id zwp_primary_selection_device_v1#747, wl_seat#728) -[2617863.726] {Default Queue} wl_output#729.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617863.737] {Default Queue} wl_output#729.mode(3, 1280, 800, 60000) -[2617863.745] {Default Queue} discarded wl_surface#3.enter(wl_output#729) -[2617863.752] {Default Queue} discarded wl_surface#423.enter(wl_output#729) -[2617863.760] {Default Queue} discarded wl_surface#455.enter(wl_output#729) -[2617863.766] {Default Queue} discarded wl_surface#135.enter(wl_output#729) -[2617863.773] {Default Queue} discarded wl_surface#615.enter(wl_output#729) -[2617863.780] {Default Queue} discarded wl_surface#231.enter(wl_output#729) -[2617863.787] {Default Queue} discarded wl_surface#359.enter(wl_output#729) -[2617863.794] {Default Queue} discarded wl_surface#583.enter(wl_output#729) -[2617863.801] {Default Queue} discarded wl_surface#103.enter(wl_output#729) -[2617863.807] {Default Queue} discarded wl_surface#327.enter(wl_output#729) -[2617863.815] {Default Queue} discarded wl_surface#43.enter(wl_output#729) -[2617863.822] {Default Queue} discarded wl_surface#19.enter(wl_output#729) -[2617863.827] {Default Queue} discarded wl_surface#199.enter(wl_output#729) -[2617863.833] {Default Queue} discarded wl_surface#391.enter(wl_output#729) -[2617863.838] {Default Queue} discarded wl_surface#263.enter(wl_output#729) -[2617863.842] {Default Queue} discarded wl_surface#551.enter(wl_output#729) -[2617863.847] {Default Queue} discarded wl_surface#647.enter(wl_output#729) -[2617863.853] {Default Queue} discarded wl_surface#71.enter(wl_output#729) -[2617863.859] {Default Queue} discarded wl_surface#487.enter(wl_output#729) -[2617863.875] {Default Queue} discarded wl_surface#519.enter(wl_output#729) -[2617863.882] {Default Queue} discarded wl_surface#295.enter(wl_output#729) -[2617863.889] {Default Queue} discarded wl_surface#167.enter(wl_output#729) -[2617863.896] {Default Queue} discarded wl_surface#679.enter(wl_output#729) -[2617863.902] {Default Queue} wl_registry#742.global(1, "wl_compositor", 6) -[2617863.909] {Default Queue} -> wl_registry#742.bind(1, "wl_compositor", 1, new id [unknown]#748) -[2617863.915] {Default Queue} wl_registry#742.global(2, "wl_subcompositor", 1) -[2617863.920] {Default Queue} -> wl_registry#742.bind(2, "wl_subcompositor", 1, new id [unknown]#749) -[2617863.926] {Default Queue} wl_registry#742.global(3, "xdg_wm_base", 6) -[2617863.932] {Default Queue} -> wl_registry#742.bind(3, "xdg_wm_base", 1, new id [unknown]#750) -[2617863.937] {Default Queue} wl_registry#742.global(6, "zwlr_layer_shell_v1", 5) -[2617863.943] {Default Queue} wl_registry#742.global(7, "ext_session_lock_manager_v1", 1) -[2617863.948] {Default Queue} wl_registry#742.global(8, "wl_shm", 2) -[2617863.967] {Default Queue} -> wl_registry#742.bind(8, "wl_shm", 1, new id [unknown]#751) -[2617863.976] {Default Queue} -> wl_registry#742.bind(8, "wl_shm", 1, new id [unknown]#752) -[2617863.982] {Default Queue} -> wl_registry#742.bind(8, "wl_shm", 1, new id [unknown]#753) -[2617863.987] {Default Queue} wl_registry#742.global(9, "zxdg_output_manager_v1", 3) -[2617863.992] {Default Queue} wl_registry#742.global(10, "wp_fractional_scale_manager_v1", 1) -[2617863.998] {Default Queue} wl_registry#742.global(11, "zwp_tablet_manager_v2", 1) -[2617864.003] {Default Queue} wl_registry#742.global(12, "zwp_pointer_gestures_v1", 3) -[2617864.008] {Default Queue} wl_registry#742.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617864.014] {Default Queue} -> wl_registry#742.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#754) -[2617864.020] {Default Queue} wl_registry#742.global(14, "zwp_pointer_constraints_v1", 1) -[2617864.026] {Default Queue} -> wl_registry#742.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#755) -[2617864.032] {Default Queue} wl_registry#742.global(15, "ext_idle_notifier_v1", 2) -[2617864.037] {Default Queue} wl_registry#742.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617864.043] {Default Queue} wl_registry#742.global(17, "wl_data_device_manager", 3) -[2617864.049] {Default Queue} -> wl_registry#742.bind(17, "wl_data_device_manager", 2, new id [unknown]#756) -[2617864.055] {Default Queue} -> wl_data_device_manager#756.create_data_source(new id wl_data_source#757) -[2617864.060] {Default Queue} -> wl_data_source#757.offer("text/plain") -[2617864.066] {Default Queue} -> wl_data_source#757.offer("text/plain;charset=utf-8") -[2617864.071] {Default Queue} -> wl_data_source#757.offer("TEXT") -[2617864.076] {Default Queue} -> wl_data_source#757.offer("STRING") -[2617864.081] {Default Queue} -> wl_data_source#757.offer("UTF8_STRING") -[2617864.086] {Default Queue} wl_registry#742.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617864.092] {Default Queue} -> wl_registry#742.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#758) -[2617864.098] {Default Queue} -> zwp_primary_selection_device_manager_v1#758.create_source(new id zwp_primary_selection_source_v1#759) -[2617864.107] {Default Queue} -> zwp_primary_selection_source_v1#759.offer("text/plain") -[2617864.112] {Default Queue} -> zwp_primary_selection_source_v1#759.offer("text/plain;charset=utf-8") -[2617864.117] {Default Queue} -> zwp_primary_selection_source_v1#759.offer("TEXT") -[2617864.122] {Default Queue} -> zwp_primary_selection_source_v1#759.offer("STRING") -[2617864.128] {Default Queue} -> zwp_primary_selection_source_v1#759.offer("UTF8_STRING") -[2617864.133] {Default Queue} wl_registry#742.global(19, "zwlr_data_control_manager_v1", 2) -[2617864.138] {Default Queue} wl_registry#742.global(20, "ext_data_control_manager_v1", 1) -[2617864.144] {Default Queue} wl_registry#742.global(21, "wp_presentation", 2) -[2617864.149] {Default Queue} wl_registry#742.global(22, "wp_security_context_manager_v1", 1) -[2617864.155] {Default Queue} wl_registry#742.global(23, "zwp_text_input_manager_v3", 1) -[2617864.160] {Default Queue} wl_registry#742.global(24, "zwp_input_method_manager_v2", 1) -[2617864.166] {Default Queue} wl_registry#742.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617864.171] {Default Queue} wl_registry#742.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617864.177] {Default Queue} wl_registry#742.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617864.182] {Default Queue} wl_registry#742.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617864.188] {Default Queue} wl_registry#742.global(29, "ext_workspace_manager_v1", 1) -[2617864.193] {Default Queue} wl_registry#742.global(30, "zwlr_output_manager_v1", 4) -[2617864.198] {Default Queue} wl_registry#742.global(31, "zwlr_screencopy_manager_v1", 3) -[2617864.203] {Default Queue} wl_registry#742.global(32, "wp_viewporter", 1) -[2617864.209] {Default Queue} wl_registry#742.global(33, "zxdg_exporter_v2", 1) -[2617864.218] {Default Queue} wl_registry#742.global(34, "zxdg_importer_v2", 1) -[2617864.226] {Default Queue} wl_registry#742.global(36, "xdg_activation_v1", 1) -[2617864.231] {Default Queue} wl_registry#742.global(37, "mutter_x11_interop", 1) -[2617864.236] {Default Queue} wl_registry#742.global(38, "wl_seat", 9) -[2617864.242] {Default Queue} -> wl_registry#742.bind(38, "wl_seat", 1, new id [unknown]#760) -[2617864.247] {Default Queue} wl_registry#742.global(39, "wp_cursor_shape_manager_v1", 2) -[2617864.253] {Default Queue} wl_registry#742.global(40, "wl_output", 4) -[2617864.259] {Default Queue} -> wl_registry#742.bind(40, "wl_output", 1, new id [unknown]#761) -[2617864.265] {Default Queue} wl_callback#743.done(0) -[2617864.270] {Default Queue} discarded wl_surface#711.enter(wl_output#18) -[2617864.275] {Default Queue} discarded wl_surface#711.enter(wl_output#57) -[2617864.280] {Default Queue} discarded wl_surface#711.enter(wl_output#89) -[2617864.285] {Default Queue} discarded wl_surface#711.enter(wl_output#121) -[2617864.290] {Default Queue} discarded wl_surface#711.enter(wl_output#153) -[2617864.295] {Default Queue} discarded wl_surface#711.enter(wl_output#185) -[2617864.300] {Default Queue} discarded wl_surface#711.enter(wl_output#217) -[2617864.305] {Default Queue} discarded wl_surface#711.enter(wl_output#249) -[2617864.310] {Default Queue} discarded wl_surface#711.enter(wl_output#281) -[2617864.315] {Default Queue} discarded wl_surface#711.enter(wl_output#313) -[2617864.320] {Default Queue} discarded wl_surface#711.enter(wl_output#345) -[2617864.325] {Default Queue} discarded wl_surface#711.enter(wl_output#377) -[2617864.330] {Default Queue} discarded wl_surface#711.enter(wl_output#409) -[2617864.335] {Default Queue} discarded wl_surface#711.enter(wl_output#441) -[2617864.340] {Default Queue} discarded wl_surface#711.enter(wl_output#473) -[2617864.345] {Default Queue} discarded wl_surface#711.enter(wl_output#505) -[2617864.349] {Default Queue} discarded wl_surface#711.enter(wl_output#537) -[2617864.355] {Default Queue} discarded wl_surface#711.enter(wl_output#569) -[2617864.359] {Default Queue} discarded wl_surface#711.enter(wl_output#601) -[2617864.364] {Default Queue} discarded wl_surface#711.enter(wl_output#633) -[2617864.369] {Default Queue} discarded wl_surface#711.enter(wl_output#665) -[2617864.374] {Default Queue} discarded wl_surface#711.enter(wl_output#697) -[2617864.379] {Default Queue} discarded wl_surface#711.enter(wl_output#729) -[2617864.384] {Default Queue} -> wl_compositor#684.create_surface(new id wl_surface#743) -[2617864.390] {Default Queue} -> wl_subcompositor#749.get_subsurface(new id wl_subsurface#762, wl_surface#743, wl_surface#679) -[2617864.396] {Default Queue} -> wl_subsurface#762.set_desync() -[2617864.401] {Default Queue} -> wl_subsurface#762.set_position(0, 0) -[2617864.407] {Default Queue} -> wl_subsurface#762.place_above(wl_surface#679) -[2617864.455] {Default Queue} -> wl_shm#751.create_pool(new id wl_shm_pool#763, fd 124, 16) -[2617864.462] {Default Queue} -> wl_shm#751.create_pool(new id wl_shm_pool#764, fd 125, 16) -[2617864.466] {Default Queue} -> wl_shm_pool#763.create_buffer(new id wl_buffer#765, 0, 2, 2, 8, 0) -[2617864.471] {Default Queue} -> wl_shm_pool#764.create_buffer(new id wl_buffer#766, 0, 2, 2, 8, 0) -[2617864.479] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) -[2617864.485] {Default Queue} -> wl_surface#743.commit() -[2617864.490] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) -[2617864.494] {Default Queue} -> wl_surface#743.commit() -[2617864.499] {Default Queue} -> wl_compositor#748.create_region(new id wl_region#767) -[2617864.503] {Default Queue} -> wl_compositor#748.create_region(new id wl_region#768) -[2617864.507] {Default Queue} -> wl_region#767.subtract(0, 0, 2, 2) -[2617864.512] {Default Queue} -> wl_region#767.add(0, 0, 0, 0) -[2617864.517] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2617864.521] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2617864.526] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2617864.534] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2617864.545] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) -[2617864.549] {Default Queue} -> wl_surface#743.commit() -[2617864.588] {Default Queue} -> wl_shm#753.create_pool(new id wl_shm_pool#769, fd 128, 640) -[2617864.595] {Default Queue} -> wl_shm#753.create_pool(new id wl_shm_pool#770, fd 129, 640) -[2617864.600] {Default Queue} -> wl_shm_pool#769.create_buffer(new id wl_buffer#771, 0, 10, 16, 40, 0) -[2617864.604] {Default Queue} -> wl_shm_pool#770.create_buffer(new id wl_buffer#772, 0, 10, 16, 40, 0) -[2617864.611] {Default Queue} -> wl_compositor#748.create_surface(new id wl_surface#773) -[2617864.616] {Default Queue} -> wl_surface#773.attach(wl_buffer#771, 0, 0) -[2617864.620] {Default Queue} -> wl_surface#773.commit() -[2617864.626] {Default Queue} -> wl_surface#773.attach(wl_buffer#771, 0, 0) -[2617864.630] {Default Queue} -> wl_surface#773.commit() -[2617864.636] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2617864.641] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2617864.646] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2617864.653] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#774) -[2617864.658] {Default Queue} -> wl_display#1.sync(new id wl_callback#775) -[2617873.548] {Display Queue} wl_display#1.delete_id(775) -[2617873.566] {Default Queue} wl_keyboard#744.keymap(1, fd 124, 68213) -[2617873.575] {Default Queue} wl_keyboard#744.enter(566, wl_surface#19, array[0]) -[2617873.584] {Default Queue} wl_keyboard#744.modifiers(566, 0, 0, 16, 0) -[2617873.594] {Default Queue} discarded wl_shm#751.format(875709016) -[2617873.601] {Default Queue} discarded wl_shm#751.format(1) -[2617873.607] {Default Queue} discarded wl_shm#751.format(0) -[2617873.616] {Default Queue} discarded wl_shm#751.format(875708993) -[2617873.623] {Default Queue} discarded wl_shm#752.format(875709016) -[2617873.631] {Default Queue} discarded wl_shm#752.format(1) -[2617873.641] {Default Queue} discarded wl_shm#752.format(0) -[2617873.649] {Default Queue} discarded wl_shm#752.format(875708993) -[2617873.656] {Default Queue} discarded wl_shm#753.format(875709016) -[2617873.663] {Default Queue} discarded wl_shm#753.format(1) -[2617873.669] {Default Queue} discarded wl_shm#753.format(0) -[2617873.676] {Default Queue} discarded wl_shm#753.format(875708993) -[2617873.683] {Default Queue} wl_seat#760.capabilities(7) -[2617873.690] {Default Queue} -> wl_seat#760.get_keyboard(new id wl_keyboard#776) -[2617873.698] {Default Queue} -> wl_seat#760.get_pointer(new id wl_pointer#777) -[2617873.705] {Default Queue} -> wl_data_device_manager#756.get_data_device(new id wl_data_device#778, wl_seat#760) -[2617873.713] {Default Queue} -> zwp_primary_selection_device_manager_v1#758.get_device(new id zwp_primary_selection_device_v1#779, wl_seat#760) -[2617873.728] {Default Queue} wl_output#761.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617873.737] {Default Queue} wl_output#761.mode(3, 1280, 800, 60000) -[2617873.745] {Default Queue} discarded wl_surface#3.enter(wl_output#761) -[2617873.753] {Default Queue} discarded wl_surface#423.enter(wl_output#761) -[2617873.760] {Default Queue} discarded wl_surface#455.enter(wl_output#761) -[2617873.768] {Default Queue} discarded wl_surface#135.enter(wl_output#761) -[2617873.776] {Default Queue} discarded wl_surface#615.enter(wl_output#761) -[2617873.783] {Default Queue} discarded wl_surface#231.enter(wl_output#761) -[2617873.790] {Default Queue} discarded wl_surface#359.enter(wl_output#761) -[2617873.797] {Default Queue} discarded wl_surface#583.enter(wl_output#761) -[2617873.804] {Default Queue} discarded wl_surface#103.enter(wl_output#761) -[2617873.811] {Default Queue} discarded wl_surface#327.enter(wl_output#761) -[2617873.818] {Default Queue} discarded wl_surface#43.enter(wl_output#761) -[2617873.825] {Default Queue} discarded wl_surface#19.enter(wl_output#761) -[2617873.832] {Default Queue} discarded wl_surface#199.enter(wl_output#761) -[2617873.838] {Default Queue} discarded wl_surface#391.enter(wl_output#761) -[2617873.853] {Default Queue} discarded wl_surface#711.enter(wl_output#761) -[2617873.870] {Default Queue} discarded wl_surface#263.enter(wl_output#761) -[2617873.877] {Default Queue} discarded wl_surface#551.enter(wl_output#761) -[2617873.883] {Default Queue} discarded wl_surface#647.enter(wl_output#761) -[2617873.891] {Default Queue} discarded wl_surface#71.enter(wl_output#761) -[2617873.897] {Default Queue} discarded wl_surface#487.enter(wl_output#761) -[2617873.904] {Default Queue} discarded wl_surface#519.enter(wl_output#761) -[2617873.909] {Default Queue} discarded wl_surface#295.enter(wl_output#761) -[2617873.914] {Default Queue} discarded wl_surface#167.enter(wl_output#761) -[2617873.919] {Default Queue} discarded wl_surface#679.enter(wl_output#761) -[2617873.924] {Default Queue} wl_registry#774.global(1, "wl_compositor", 6) -[2617873.931] {Default Queue} -> wl_registry#774.bind(1, "wl_compositor", 1, new id [unknown]#780) -[2617873.937] {Default Queue} wl_registry#774.global(2, "wl_subcompositor", 1) -[2617873.942] {Default Queue} -> wl_registry#774.bind(2, "wl_subcompositor", 1, new id [unknown]#781) -[2617873.948] {Default Queue} wl_registry#774.global(3, "xdg_wm_base", 6) -[2617873.954] {Default Queue} -> wl_registry#774.bind(3, "xdg_wm_base", 1, new id [unknown]#782) -[2617873.960] {Default Queue} wl_registry#774.global(6, "zwlr_layer_shell_v1", 5) -[2617873.966] {Default Queue} wl_registry#774.global(7, "ext_session_lock_manager_v1", 1) -[2617873.973] {Default Queue} wl_registry#774.global(8, "wl_shm", 2) -[2617873.981] {Default Queue} -> wl_registry#774.bind(8, "wl_shm", 1, new id [unknown]#783) -[2617873.987] {Default Queue} -> wl_registry#774.bind(8, "wl_shm", 1, new id [unknown]#784) -[2617873.992] {Default Queue} -> wl_registry#774.bind(8, "wl_shm", 1, new id [unknown]#785) -[2617873.998] {Default Queue} wl_registry#774.global(9, "zxdg_output_manager_v1", 3) -[2617874.004] {Default Queue} wl_registry#774.global(10, "wp_fractional_scale_manager_v1", 1) -[2617874.009] {Default Queue} wl_registry#774.global(11, "zwp_tablet_manager_v2", 1) -[2617874.015] {Default Queue} wl_registry#774.global(12, "zwp_pointer_gestures_v1", 3) -[2617874.020] {Default Queue} wl_registry#774.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617874.026] {Default Queue} -> wl_registry#774.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#786) -[2617874.031] {Default Queue} wl_registry#774.global(14, "zwp_pointer_constraints_v1", 1) -[2617874.037] {Default Queue} -> wl_registry#774.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#787) -[2617874.043] {Default Queue} wl_registry#774.global(15, "ext_idle_notifier_v1", 2) -[2617874.048] {Default Queue} wl_registry#774.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617874.053] {Default Queue} wl_registry#774.global(17, "wl_data_device_manager", 3) -[2617874.059] {Default Queue} -> wl_registry#774.bind(17, "wl_data_device_manager", 2, new id [unknown]#788) -[2617874.065] {Default Queue} -> wl_data_device_manager#788.create_data_source(new id wl_data_source#789) -[2617874.072] {Default Queue} -> wl_data_source#789.offer("text/plain") -[2617874.079] {Default Queue} -> wl_data_source#789.offer("text/plain;charset=utf-8") -[2617874.084] {Default Queue} -> wl_data_source#789.offer("TEXT") -[2617874.089] {Default Queue} -> wl_data_source#789.offer("STRING") -[2617874.094] {Default Queue} -> wl_data_source#789.offer("UTF8_STRING") -[2617874.099] {Default Queue} wl_registry#774.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617874.105] {Default Queue} -> wl_registry#774.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#790) -[2617874.111] {Default Queue} -> zwp_primary_selection_device_manager_v1#790.create_source(new id zwp_primary_selection_source_v1#791) -[2617874.120] {Default Queue} -> zwp_primary_selection_source_v1#791.offer("text/plain") -[2617874.126] {Default Queue} -> zwp_primary_selection_source_v1#791.offer("text/plain;charset=utf-8") -[2617874.131] {Default Queue} -> zwp_primary_selection_source_v1#791.offer("TEXT") -[2617874.136] {Default Queue} -> zwp_primary_selection_source_v1#791.offer("STRING") -[2617874.145] {Default Queue} -> zwp_primary_selection_source_v1#791.offer("UTF8_STRING") -[2617874.153] {Default Queue} wl_registry#774.global(19, "zwlr_data_control_manager_v1", 2) -[2617874.158] {Default Queue} wl_registry#774.global(20, "ext_data_control_manager_v1", 1) -[2617874.164] {Default Queue} wl_registry#774.global(21, "wp_presentation", 2) -[2617874.172] {Default Queue} wl_registry#774.global(22, "wp_security_context_manager_v1", 1) -[2617874.178] {Default Queue} wl_registry#774.global(23, "zwp_text_input_manager_v3", 1) -[2617874.185] {Default Queue} wl_registry#774.global(24, "zwp_input_method_manager_v2", 1) -[2617874.193] {Default Queue} wl_registry#774.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617874.200] {Default Queue} wl_registry#774.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617874.208] {Default Queue} wl_registry#774.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617874.215] {Default Queue} wl_registry#774.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617874.222] {Default Queue} wl_registry#774.global(29, "ext_workspace_manager_v1", 1) -[2617874.229] {Default Queue} wl_registry#774.global(30, "zwlr_output_manager_v1", 4) -[2617874.236] {Default Queue} wl_registry#774.global(31, "zwlr_screencopy_manager_v1", 3) -[2617874.243] {Default Queue} wl_registry#774.global(32, "wp_viewporter", 1) -[2617874.255] {Default Queue} wl_registry#774.global(33, "zxdg_exporter_v2", 1) -[2617874.262] {Default Queue} wl_registry#774.global(34, "zxdg_importer_v2", 1) -[2617874.269] {Default Queue} wl_registry#774.global(36, "xdg_activation_v1", 1) -[2617874.277] {Default Queue} wl_registry#774.global(37, "mutter_x11_interop", 1) -[2617874.284] {Default Queue} wl_registry#774.global(38, "wl_seat", 9) -[2617874.292] {Default Queue} -> wl_registry#774.bind(38, "wl_seat", 1, new id [unknown]#792) -[2617874.302] {Default Queue} wl_registry#774.global(39, "wp_cursor_shape_manager_v1", 2) -[2617874.309] {Default Queue} wl_registry#774.global(40, "wl_output", 4) -[2617874.317] {Default Queue} -> wl_registry#774.bind(40, "wl_output", 1, new id [unknown]#793) -[2617874.323] {Default Queue} wl_callback#775.done(0) -[2617874.329] {Default Queue} discarded wl_surface#743.enter(wl_output#18) -[2617874.334] {Default Queue} discarded wl_surface#743.enter(wl_output#57) -[2617874.339] {Default Queue} discarded wl_surface#743.enter(wl_output#89) -[2617874.344] {Default Queue} discarded wl_surface#743.enter(wl_output#121) -[2617874.349] {Default Queue} discarded wl_surface#743.enter(wl_output#153) -[2617874.354] {Default Queue} discarded wl_surface#743.enter(wl_output#185) -[2617874.359] {Default Queue} discarded wl_surface#743.enter(wl_output#217) -[2617874.364] {Default Queue} discarded wl_surface#743.enter(wl_output#249) -[2617874.369] {Default Queue} discarded wl_surface#743.enter(wl_output#281) -[2617874.374] {Default Queue} discarded wl_surface#743.enter(wl_output#313) -[2617874.379] {Default Queue} discarded wl_surface#743.enter(wl_output#345) -[2617874.384] {Default Queue} discarded wl_surface#743.enter(wl_output#377) -[2617874.389] {Default Queue} discarded wl_surface#743.enter(wl_output#409) -[2617874.394] {Default Queue} discarded wl_surface#743.enter(wl_output#441) -[2617874.399] {Default Queue} discarded wl_surface#743.enter(wl_output#473) -[2617874.403] {Default Queue} discarded wl_surface#743.enter(wl_output#505) -[2617874.408] {Default Queue} discarded wl_surface#743.enter(wl_output#537) -[2617874.413] {Default Queue} discarded wl_surface#743.enter(wl_output#569) -[2617874.418] {Default Queue} discarded wl_surface#743.enter(wl_output#601) -[2617874.423] {Default Queue} discarded wl_surface#743.enter(wl_output#633) -[2617874.428] {Default Queue} discarded wl_surface#743.enter(wl_output#665) -[2617874.433] {Default Queue} discarded wl_surface#743.enter(wl_output#697) -[2617874.438] {Default Queue} discarded wl_surface#743.enter(wl_output#729) -[2617874.443] {Default Queue} discarded wl_surface#743.enter(wl_output#761) -[2617874.449] {Default Queue} -> wl_compositor#684.create_surface(new id wl_surface#775) -[2617874.461] {Default Queue} -> wl_subcompositor#781.get_subsurface(new id wl_subsurface#794, wl_surface#775, wl_surface#679) -[2617874.469] {Default Queue} -> wl_subsurface#794.set_desync() -[2617874.473] {Default Queue} -> wl_subsurface#794.set_position(0, 0) -[2617874.478] {Default Queue} -> wl_subsurface#794.place_above(wl_surface#679) -[2617874.523] {Default Queue} -> wl_shm#783.create_pool(new id wl_shm_pool#795, fd 129, 16) -[2617874.530] {Default Queue} -> wl_shm#783.create_pool(new id wl_shm_pool#796, fd 130, 16) -[2617874.535] {Default Queue} -> wl_shm_pool#795.create_buffer(new id wl_buffer#797, 0, 2, 2, 8, 0) -[2617874.539] {Default Queue} -> wl_shm_pool#796.create_buffer(new id wl_buffer#798, 0, 2, 2, 8, 0) -[2617874.548] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) -[2617874.552] {Default Queue} -> wl_surface#775.commit() -[2617874.558] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) -[2617874.563] {Default Queue} -> wl_surface#775.commit() -[2617874.567] {Default Queue} -> wl_compositor#780.create_region(new id wl_region#799) -[2617874.571] {Default Queue} -> wl_compositor#780.create_region(new id wl_region#800) -[2617874.575] {Default Queue} -> wl_region#799.subtract(0, 0, 2, 2) -[2617874.580] {Default Queue} -> wl_region#799.add(0, 0, 0, 0) -[2617874.584] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2617874.589] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2617874.593] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2617874.598] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2617874.606] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) -[2617874.610] {Default Queue} -> wl_surface#775.commit() -[2617874.642] {Default Queue} -> wl_shm#785.create_pool(new id wl_shm_pool#801, fd 133, 640) -[2617874.648] {Default Queue} -> wl_shm#785.create_pool(new id wl_shm_pool#802, fd 134, 640) -[2617874.653] {Default Queue} -> wl_shm_pool#801.create_buffer(new id wl_buffer#803, 0, 10, 16, 40, 0) -[2617874.658] {Default Queue} -> wl_shm_pool#802.create_buffer(new id wl_buffer#804, 0, 10, 16, 40, 0) -[2617874.665] {Default Queue} -> wl_compositor#780.create_surface(new id wl_surface#805) -[2617874.670] {Default Queue} -> wl_surface#805.attach(wl_buffer#803, 0, 0) -[2617874.674] {Default Queue} -> wl_surface#805.commit() -[2617874.680] {Default Queue} -> wl_surface#805.attach(wl_buffer#803, 0, 0) -[2617874.684] {Default Queue} -> wl_surface#805.commit() -[2617874.691] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2617874.697] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2617874.702] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2617874.709] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#806) -[2617874.714] {Default Queue} -> wl_display#1.sync(new id wl_callback#807) -[2617884.179] {Display Queue} wl_display#1.delete_id(807) -[2617884.199] {Default Queue} wl_keyboard#776.keymap(1, fd 129, 68213) -[2617884.207] {Default Queue} wl_keyboard#776.enter(566, wl_surface#19, array[0]) -[2617884.215] {Default Queue} wl_keyboard#776.modifiers(566, 0, 0, 16, 0) -[2617884.221] {Default Queue} discarded wl_shm#783.format(875709016) -[2617884.226] {Default Queue} discarded wl_shm#783.format(1) -[2617884.231] {Default Queue} discarded wl_shm#783.format(0) -[2617884.236] {Default Queue} discarded wl_shm#783.format(875708993) -[2617884.241] {Default Queue} discarded wl_shm#784.format(875709016) -[2617884.247] {Default Queue} discarded wl_shm#784.format(1) -[2617884.252] {Default Queue} discarded wl_shm#784.format(0) -[2617884.258] {Default Queue} discarded wl_shm#784.format(875708993) -[2617884.264] {Default Queue} discarded wl_shm#785.format(875709016) -[2617884.269] {Default Queue} discarded wl_shm#785.format(1) -[2617884.275] {Default Queue} discarded wl_shm#785.format(0) -[2617884.280] {Default Queue} discarded wl_shm#785.format(875708993) -[2617884.285] {Default Queue} wl_seat#792.capabilities(7) -[2617884.292] {Default Queue} -> wl_seat#792.get_keyboard(new id wl_keyboard#808) -[2617884.304] {Default Queue} -> wl_seat#792.get_pointer(new id wl_pointer#809) -[2617884.316] {Default Queue} -> wl_data_device_manager#788.get_data_device(new id wl_data_device#810, wl_seat#792) -[2617884.323] {Default Queue} -> zwp_primary_selection_device_manager_v1#790.get_device(new id zwp_primary_selection_device_v1#811, wl_seat#792) -[2617884.334] {Default Queue} wl_output#793.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617884.342] {Default Queue} wl_output#793.mode(3, 1280, 800, 60000) -[2617884.348] {Default Queue} discarded wl_surface#3.enter(wl_output#793) -[2617884.354] {Default Queue} discarded wl_surface#423.enter(wl_output#793) -[2617884.360] {Default Queue} discarded wl_surface#455.enter(wl_output#793) -[2617884.366] {Default Queue} discarded wl_surface#135.enter(wl_output#793) -[2617884.371] {Default Queue} discarded wl_surface#615.enter(wl_output#793) -[2617884.377] {Default Queue} discarded wl_surface#231.enter(wl_output#793) -[2617884.383] {Default Queue} discarded wl_surface#359.enter(wl_output#793) -[2617884.389] {Default Queue} discarded wl_surface#583.enter(wl_output#793) -[2617884.394] {Default Queue} discarded wl_surface#743.enter(wl_output#793) -[2617884.400] {Default Queue} discarded wl_surface#103.enter(wl_output#793) -[2617884.406] {Default Queue} discarded wl_surface#327.enter(wl_output#793) -[2617884.411] {Default Queue} discarded wl_surface#43.enter(wl_output#793) -[2617884.416] {Default Queue} discarded wl_surface#19.enter(wl_output#793) -[2617884.422] {Default Queue} discarded wl_surface#199.enter(wl_output#793) -[2617884.428] {Default Queue} discarded wl_surface#391.enter(wl_output#793) -[2617884.433] {Default Queue} discarded wl_surface#711.enter(wl_output#793) -[2617884.438] {Default Queue} discarded wl_surface#263.enter(wl_output#793) -[2617884.442] {Default Queue} discarded wl_surface#551.enter(wl_output#793) -[2617884.446] {Default Queue} discarded wl_surface#647.enter(wl_output#793) -[2617884.450] {Default Queue} discarded wl_surface#71.enter(wl_output#793) -[2617884.454] {Default Queue} discarded wl_surface#487.enter(wl_output#793) -[2617884.460] {Default Queue} discarded wl_surface#519.enter(wl_output#793) -[2617884.465] {Default Queue} discarded wl_surface#295.enter(wl_output#793) -[2617884.470] {Default Queue} discarded wl_surface#167.enter(wl_output#793) -[2617884.475] {Default Queue} discarded wl_surface#679.enter(wl_output#793) -[2617884.479] {Default Queue} wl_registry#806.global(1, "wl_compositor", 6) -[2617884.487] {Default Queue} -> wl_registry#806.bind(1, "wl_compositor", 1, new id [unknown]#812) -[2617884.494] {Default Queue} wl_registry#806.global(2, "wl_subcompositor", 1) -[2617884.499] {Default Queue} -> wl_registry#806.bind(2, "wl_subcompositor", 1, new id [unknown]#813) -[2617884.504] {Default Queue} wl_registry#806.global(3, "xdg_wm_base", 6) -[2617884.509] {Default Queue} -> wl_registry#806.bind(3, "xdg_wm_base", 1, new id [unknown]#814) -[2617884.513] {Default Queue} wl_registry#806.global(6, "zwlr_layer_shell_v1", 5) -[2617884.518] {Default Queue} wl_registry#806.global(7, "ext_session_lock_manager_v1", 1) -[2617884.522] {Default Queue} wl_registry#806.global(8, "wl_shm", 2) -[2617884.527] {Default Queue} -> wl_registry#806.bind(8, "wl_shm", 1, new id [unknown]#815) -[2617884.532] {Default Queue} -> wl_registry#806.bind(8, "wl_shm", 1, new id [unknown]#816) -[2617884.536] {Default Queue} -> wl_registry#806.bind(8, "wl_shm", 1, new id [unknown]#817) -[2617884.541] {Default Queue} wl_registry#806.global(9, "zxdg_output_manager_v1", 3) -[2617884.546] {Default Queue} wl_registry#806.global(10, "wp_fractional_scale_manager_v1", 1) -[2617884.550] {Default Queue} wl_registry#806.global(11, "zwp_tablet_manager_v2", 1) -[2617884.554] {Default Queue} wl_registry#806.global(12, "zwp_pointer_gestures_v1", 3) -[2617884.558] {Default Queue} wl_registry#806.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617884.563] {Default Queue} -> wl_registry#806.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#818) -[2617884.568] {Default Queue} wl_registry#806.global(14, "zwp_pointer_constraints_v1", 1) -[2617884.577] {Default Queue} -> wl_registry#806.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#819) -[2617884.584] {Default Queue} wl_registry#806.global(15, "ext_idle_notifier_v1", 2) -[2617884.588] {Default Queue} wl_registry#806.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617884.593] {Default Queue} wl_registry#806.global(17, "wl_data_device_manager", 3) -[2617884.598] {Default Queue} -> wl_registry#806.bind(17, "wl_data_device_manager", 2, new id [unknown]#820) -[2617884.602] {Default Queue} -> wl_data_device_manager#820.create_data_source(new id wl_data_source#821) -[2617884.607] {Default Queue} -> wl_data_source#821.offer("text/plain") -[2617884.611] {Default Queue} -> wl_data_source#821.offer("text/plain;charset=utf-8") -[2617884.615] {Default Queue} -> wl_data_source#821.offer("TEXT") -[2617884.619] {Default Queue} -> wl_data_source#821.offer("STRING") -[2617884.623] {Default Queue} -> wl_data_source#821.offer("UTF8_STRING") -[2617884.627] {Default Queue} wl_registry#806.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617884.632] {Default Queue} -> wl_registry#806.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#822) -[2617884.637] {Default Queue} -> zwp_primary_selection_device_manager_v1#822.create_source(new id zwp_primary_selection_source_v1#823) -[2617884.645] {Default Queue} -> zwp_primary_selection_source_v1#823.offer("text/plain") -[2617884.649] {Default Queue} -> zwp_primary_selection_source_v1#823.offer("text/plain;charset=utf-8") -[2617884.653] {Default Queue} -> zwp_primary_selection_source_v1#823.offer("TEXT") -[2617884.658] {Default Queue} -> zwp_primary_selection_source_v1#823.offer("STRING") -[2617884.662] {Default Queue} -> zwp_primary_selection_source_v1#823.offer("UTF8_STRING") -[2617884.666] {Default Queue} wl_registry#806.global(19, "zwlr_data_control_manager_v1", 2) -[2617884.670] {Default Queue} wl_registry#806.global(20, "ext_data_control_manager_v1", 1) -[2617884.675] {Default Queue} wl_registry#806.global(21, "wp_presentation", 2) -[2617884.679] {Default Queue} wl_registry#806.global(22, "wp_security_context_manager_v1", 1) -[2617884.684] {Default Queue} wl_registry#806.global(23, "zwp_text_input_manager_v3", 1) -[2617884.688] {Default Queue} wl_registry#806.global(24, "zwp_input_method_manager_v2", 1) -[2617884.692] {Default Queue} wl_registry#806.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617884.697] {Default Queue} wl_registry#806.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617884.701] {Default Queue} wl_registry#806.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617884.705] {Default Queue} wl_registry#806.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617884.710] {Default Queue} wl_registry#806.global(29, "ext_workspace_manager_v1", 1) -[2617884.715] {Default Queue} wl_registry#806.global(30, "zwlr_output_manager_v1", 4) -[2617884.719] {Default Queue} wl_registry#806.global(31, "zwlr_screencopy_manager_v1", 3) -[2617884.724] {Default Queue} wl_registry#806.global(32, "wp_viewporter", 1) -[2617884.728] {Default Queue} wl_registry#806.global(33, "zxdg_exporter_v2", 1) -[2617884.732] {Default Queue} wl_registry#806.global(34, "zxdg_importer_v2", 1) -[2617884.737] {Default Queue} wl_registry#806.global(36, "xdg_activation_v1", 1) -[2617884.741] {Default Queue} wl_registry#806.global(37, "mutter_x11_interop", 1) -[2617884.746] {Default Queue} wl_registry#806.global(38, "wl_seat", 9) -[2617884.750] {Default Queue} -> wl_registry#806.bind(38, "wl_seat", 1, new id [unknown]#824) -[2617884.755] {Default Queue} wl_registry#806.global(39, "wp_cursor_shape_manager_v1", 2) -[2617884.759] {Default Queue} wl_registry#806.global(40, "wl_output", 4) -[2617884.764] {Default Queue} -> wl_registry#806.bind(40, "wl_output", 1, new id [unknown]#825) -[2617884.769] {Default Queue} wl_callback#807.done(0) -[2617884.773] {Default Queue} discarded wl_surface#775.enter(wl_output#18) -[2617884.777] {Default Queue} discarded wl_surface#775.enter(wl_output#57) -[2617884.781] {Default Queue} discarded wl_surface#775.enter(wl_output#89) -[2617884.788] {Default Queue} discarded wl_surface#775.enter(wl_output#121) -[2617884.794] {Default Queue} discarded wl_surface#775.enter(wl_output#153) -[2617884.798] {Default Queue} discarded wl_surface#775.enter(wl_output#185) -[2617884.801] {Default Queue} discarded wl_surface#775.enter(wl_output#217) -[2617884.806] {Default Queue} discarded wl_surface#775.enter(wl_output#249) -[2617884.810] {Default Queue} discarded wl_surface#775.enter(wl_output#281) -[2617884.814] {Default Queue} discarded wl_surface#775.enter(wl_output#313) -[2617884.817] {Default Queue} discarded wl_surface#775.enter(wl_output#345) -[2617884.821] {Default Queue} discarded wl_surface#775.enter(wl_output#377) -[2617884.825] {Default Queue} discarded wl_surface#775.enter(wl_output#409) -[2617884.829] {Default Queue} discarded wl_surface#775.enter(wl_output#441) -[2617884.833] {Default Queue} discarded wl_surface#775.enter(wl_output#473) -[2617884.837] {Default Queue} discarded wl_surface#775.enter(wl_output#505) -[2617884.841] {Default Queue} discarded wl_surface#775.enter(wl_output#537) -[2617884.845] {Default Queue} discarded wl_surface#775.enter(wl_output#569) -[2617884.849] {Default Queue} discarded wl_surface#775.enter(wl_output#601) -[2617884.853] {Default Queue} discarded wl_surface#775.enter(wl_output#633) -[2617884.857] {Default Queue} discarded wl_surface#775.enter(wl_output#665) -[2617884.868] {Default Queue} discarded wl_surface#775.enter(wl_output#697) -[2617884.872] {Default Queue} discarded wl_surface#775.enter(wl_output#729) -[2617884.876] {Default Queue} discarded wl_surface#775.enter(wl_output#761) -[2617884.880] {Default Queue} discarded wl_surface#775.enter(wl_output#793) -[2617884.885] {Default Queue} -> wl_compositor#684.create_surface(new id wl_surface#807) -[2617884.889] {Default Queue} -> wl_subcompositor#813.get_subsurface(new id wl_subsurface#826, wl_surface#807, wl_surface#679) -[2617884.894] {Default Queue} -> wl_subsurface#826.set_desync() -[2617884.898] {Default Queue} -> wl_subsurface#826.set_position(0, 0) -[2617884.903] {Default Queue} -> wl_subsurface#826.place_above(wl_surface#679) -[2617884.960] {Default Queue} -> wl_shm#815.create_pool(new id wl_shm_pool#827, fd 134, 16) -[2617884.967] {Default Queue} -> wl_shm#815.create_pool(new id wl_shm_pool#828, fd 135, 16) -[2617884.971] {Default Queue} -> wl_shm_pool#827.create_buffer(new id wl_buffer#829, 0, 2, 2, 8, 0) -[2617884.976] {Default Queue} -> wl_shm_pool#828.create_buffer(new id wl_buffer#830, 0, 2, 2, 8, 0) -[2617884.986] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) -[2617884.991] {Default Queue} -> wl_surface#807.commit() -[2617884.996] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) -[2617885.001] {Default Queue} -> wl_surface#807.commit() -[2617885.005] {Default Queue} -> wl_compositor#812.create_region(new id wl_region#831) -[2617885.009] {Default Queue} -> wl_compositor#812.create_region(new id wl_region#832) -[2617885.013] {Default Queue} -> wl_region#831.subtract(0, 0, 2, 2) -[2617885.018] {Default Queue} -> wl_region#831.add(0, 0, 0, 0) -[2617885.022] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2617885.027] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2617885.031] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2617885.035] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2617885.051] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) -[2617885.056] {Default Queue} -> wl_surface#807.commit() -[2617885.091] {Default Queue} -> wl_shm#817.create_pool(new id wl_shm_pool#833, fd 138, 640) -[2617885.098] {Default Queue} -> wl_shm#817.create_pool(new id wl_shm_pool#834, fd 139, 640) -[2617885.103] {Default Queue} -> wl_shm_pool#833.create_buffer(new id wl_buffer#835, 0, 10, 16, 40, 0) -[2617885.108] {Default Queue} -> wl_shm_pool#834.create_buffer(new id wl_buffer#836, 0, 10, 16, 40, 0) -[2617885.115] {Default Queue} -> wl_compositor#812.create_surface(new id wl_surface#837) -[2617885.119] {Default Queue} -> wl_surface#837.attach(wl_buffer#835, 0, 0) -[2617885.124] {Default Queue} -> wl_surface#837.commit() -[2617885.133] {Default Queue} -> wl_surface#837.attach(wl_buffer#835, 0, 0) -[2617885.140] {Default Queue} -> wl_surface#837.commit() -[2617885.147] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2617885.153] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2617885.158] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2617885.165] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#838) -[2617885.170] {Default Queue} -> wl_display#1.sync(new id wl_callback#839) -[2617893.646] {Display Queue} wl_display#1.delete_id(839) -[2617893.665] {Default Queue} wl_keyboard#808.keymap(1, fd 134, 68213) -[2617893.675] {Default Queue} wl_keyboard#808.enter(566, wl_surface#19, array[0]) -[2617893.684] {Default Queue} wl_keyboard#808.modifiers(566, 0, 0, 16, 0) -[2617893.692] {Default Queue} discarded wl_shm#815.format(875709016) -[2617893.699] {Default Queue} discarded wl_shm#815.format(1) -[2617893.707] {Default Queue} discarded wl_shm#815.format(0) -[2617893.713] {Default Queue} discarded wl_shm#815.format(875708993) -[2617893.721] {Default Queue} discarded wl_shm#816.format(875709016) -[2617893.731] {Default Queue} discarded wl_shm#816.format(1) -[2617893.738] {Default Queue} discarded wl_shm#816.format(0) -[2617893.746] {Default Queue} discarded wl_shm#816.format(875708993) -[2617893.753] {Default Queue} discarded wl_shm#817.format(875709016) -[2617893.760] {Default Queue} discarded wl_shm#817.format(1) -[2617893.766] {Default Queue} discarded wl_shm#817.format(0) -[2617893.773] {Default Queue} discarded wl_shm#817.format(875708993) -[2617893.780] {Default Queue} wl_seat#824.capabilities(7) -[2617893.787] {Default Queue} -> wl_seat#824.get_keyboard(new id wl_keyboard#840) -[2617893.795] {Default Queue} -> wl_seat#824.get_pointer(new id wl_pointer#841) -[2617893.803] {Default Queue} -> wl_data_device_manager#820.get_data_device(new id wl_data_device#842, wl_seat#824) -[2617893.811] {Default Queue} -> zwp_primary_selection_device_manager_v1#822.get_device(new id zwp_primary_selection_device_v1#843, wl_seat#824) -[2617893.824] {Default Queue} wl_output#825.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617893.832] {Default Queue} wl_output#825.mode(3, 1280, 800, 60000) -[2617893.840] {Default Queue} discarded wl_surface#3.enter(wl_output#825) -[2617893.847] {Default Queue} discarded wl_surface#423.enter(wl_output#825) -[2617893.855] {Default Queue} discarded wl_surface#455.enter(wl_output#825) -[2617893.873] {Default Queue} discarded wl_surface#775.enter(wl_output#825) -[2617893.880] {Default Queue} discarded wl_surface#135.enter(wl_output#825) -[2617893.887] {Default Queue} discarded wl_surface#615.enter(wl_output#825) -[2617893.895] {Default Queue} discarded wl_surface#231.enter(wl_output#825) -[2617893.902] {Default Queue} discarded wl_surface#359.enter(wl_output#825) -[2617893.909] {Default Queue} discarded wl_surface#583.enter(wl_output#825) -[2617893.917] {Default Queue} discarded wl_surface#743.enter(wl_output#825) -[2617893.924] {Default Queue} discarded wl_surface#103.enter(wl_output#825) -[2617893.931] {Default Queue} discarded wl_surface#327.enter(wl_output#825) -[2617893.938] {Default Queue} discarded wl_surface#43.enter(wl_output#825) -[2617893.946] {Default Queue} discarded wl_surface#19.enter(wl_output#825) -[2617893.952] {Default Queue} discarded wl_surface#199.enter(wl_output#825) -[2617893.958] {Default Queue} discarded wl_surface#391.enter(wl_output#825) -[2617893.965] {Default Queue} discarded wl_surface#711.enter(wl_output#825) -[2617893.972] {Default Queue} discarded wl_surface#263.enter(wl_output#825) -[2617893.979] {Default Queue} discarded wl_surface#551.enter(wl_output#825) -[2617893.985] {Default Queue} discarded wl_surface#647.enter(wl_output#825) -[2617893.992] {Default Queue} discarded wl_surface#71.enter(wl_output#825) -[2617893.998] {Default Queue} discarded wl_surface#487.enter(wl_output#825) -[2617894.005] {Default Queue} discarded wl_surface#519.enter(wl_output#825) -[2617894.011] {Default Queue} discarded wl_surface#295.enter(wl_output#825) -[2617894.017] {Default Queue} discarded wl_surface#167.enter(wl_output#825) -[2617894.039] {Default Queue} discarded wl_surface#679.enter(wl_output#825) -[2617894.049] {Default Queue} wl_registry#838.global(1, "wl_compositor", 6) -[2617894.057] {Default Queue} -> wl_registry#838.bind(1, "wl_compositor", 1, new id [unknown]#844) -[2617894.063] {Default Queue} wl_registry#838.global(2, "wl_subcompositor", 1) -[2617894.069] {Default Queue} -> wl_registry#838.bind(2, "wl_subcompositor", 1, new id [unknown]#845) -[2617894.075] {Default Queue} wl_registry#838.global(3, "xdg_wm_base", 6) -[2617894.081] {Default Queue} -> wl_registry#838.bind(3, "xdg_wm_base", 1, new id [unknown]#846) -[2617894.086] {Default Queue} wl_registry#838.global(6, "zwlr_layer_shell_v1", 5) -[2617894.092] {Default Queue} wl_registry#838.global(7, "ext_session_lock_manager_v1", 1) -[2617894.098] {Default Queue} wl_registry#838.global(8, "wl_shm", 2) -[2617894.104] {Default Queue} -> wl_registry#838.bind(8, "wl_shm", 1, new id [unknown]#847) -[2617894.110] {Default Queue} -> wl_registry#838.bind(8, "wl_shm", 1, new id [unknown]#848) -[2617894.115] {Default Queue} -> wl_registry#838.bind(8, "wl_shm", 1, new id [unknown]#849) -[2617894.121] {Default Queue} wl_registry#838.global(9, "zxdg_output_manager_v1", 3) -[2617894.126] {Default Queue} wl_registry#838.global(10, "wp_fractional_scale_manager_v1", 1) -[2617894.132] {Default Queue} wl_registry#838.global(11, "zwp_tablet_manager_v2", 1) -[2617894.138] {Default Queue} wl_registry#838.global(12, "zwp_pointer_gestures_v1", 3) -[2617894.143] {Default Queue} wl_registry#838.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617894.149] {Default Queue} -> wl_registry#838.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#850) -[2617894.154] {Default Queue} wl_registry#838.global(14, "zwp_pointer_constraints_v1", 1) -[2617894.160] {Default Queue} -> wl_registry#838.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#851) -[2617894.165] {Default Queue} wl_registry#838.global(15, "ext_idle_notifier_v1", 2) -[2617894.171] {Default Queue} wl_registry#838.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617894.176] {Default Queue} wl_registry#838.global(17, "wl_data_device_manager", 3) -[2617894.182] {Default Queue} -> wl_registry#838.bind(17, "wl_data_device_manager", 2, new id [unknown]#852) -[2617894.188] {Default Queue} -> wl_data_device_manager#852.create_data_source(new id wl_data_source#853) -[2617894.194] {Default Queue} -> wl_data_source#853.offer("text/plain") -[2617894.199] {Default Queue} -> wl_data_source#853.offer("text/plain;charset=utf-8") -[2617894.205] {Default Queue} -> wl_data_source#853.offer("TEXT") -[2617894.210] {Default Queue} -> wl_data_source#853.offer("STRING") -[2617894.215] {Default Queue} -> wl_data_source#853.offer("UTF8_STRING") -[2617894.221] {Default Queue} wl_registry#838.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617894.227] {Default Queue} -> wl_registry#838.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#854) -[2617894.233] {Default Queue} -> zwp_primary_selection_device_manager_v1#854.create_source(new id zwp_primary_selection_source_v1#855) -[2617894.242] {Default Queue} -> zwp_primary_selection_source_v1#855.offer("text/plain") -[2617894.247] {Default Queue} -> zwp_primary_selection_source_v1#855.offer("text/plain;charset=utf-8") -[2617894.253] {Default Queue} -> zwp_primary_selection_source_v1#855.offer("TEXT") -[2617894.258] {Default Queue} -> zwp_primary_selection_source_v1#855.offer("STRING") -[2617894.263] {Default Queue} -> zwp_primary_selection_source_v1#855.offer("UTF8_STRING") -[2617894.268] {Default Queue} wl_registry#838.global(19, "zwlr_data_control_manager_v1", 2) -[2617894.274] {Default Queue} wl_registry#838.global(20, "ext_data_control_manager_v1", 1) -[2617894.279] {Default Queue} wl_registry#838.global(21, "wp_presentation", 2) -[2617894.285] {Default Queue} wl_registry#838.global(22, "wp_security_context_manager_v1", 1) -[2617894.290] {Default Queue} wl_registry#838.global(23, "zwp_text_input_manager_v3", 1) -[2617894.295] {Default Queue} wl_registry#838.global(24, "zwp_input_method_manager_v2", 1) -[2617894.305] {Default Queue} wl_registry#838.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617894.313] {Default Queue} wl_registry#838.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617894.318] {Default Queue} wl_registry#838.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617894.323] {Default Queue} wl_registry#838.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617894.329] {Default Queue} wl_registry#838.global(29, "ext_workspace_manager_v1", 1) -[2617894.334] {Default Queue} wl_registry#838.global(30, "zwlr_output_manager_v1", 4) -[2617894.339] {Default Queue} wl_registry#838.global(31, "zwlr_screencopy_manager_v1", 3) -[2617894.345] {Default Queue} wl_registry#838.global(32, "wp_viewporter", 1) -[2617894.350] {Default Queue} wl_registry#838.global(33, "zxdg_exporter_v2", 1) -[2617894.356] {Default Queue} wl_registry#838.global(34, "zxdg_importer_v2", 1) -[2617894.361] {Default Queue} wl_registry#838.global(36, "xdg_activation_v1", 1) -[2617894.366] {Default Queue} wl_registry#838.global(37, "mutter_x11_interop", 1) -[2617894.372] {Default Queue} wl_registry#838.global(38, "wl_seat", 9) -[2617894.377] {Default Queue} -> wl_registry#838.bind(38, "wl_seat", 1, new id [unknown]#856) -[2617894.383] {Default Queue} wl_registry#838.global(39, "wp_cursor_shape_manager_v1", 2) -[2617894.388] {Default Queue} wl_registry#838.global(40, "wl_output", 4) -[2617894.393] {Default Queue} -> wl_registry#838.bind(40, "wl_output", 1, new id [unknown]#857) -[2617894.399] {Default Queue} wl_callback#839.done(0) -[2617894.404] {Default Queue} discarded wl_surface#807.enter(wl_output#18) -[2617894.410] {Default Queue} discarded wl_surface#807.enter(wl_output#57) -[2617894.415] {Default Queue} discarded wl_surface#807.enter(wl_output#89) -[2617894.419] {Default Queue} discarded wl_surface#807.enter(wl_output#121) -[2617894.424] {Default Queue} discarded wl_surface#807.enter(wl_output#153) -[2617894.429] {Default Queue} discarded wl_surface#807.enter(wl_output#185) -[2617894.434] {Default Queue} discarded wl_surface#807.enter(wl_output#217) -[2617894.439] {Default Queue} discarded wl_surface#807.enter(wl_output#249) -[2617894.444] {Default Queue} discarded wl_surface#807.enter(wl_output#281) -[2617894.449] {Default Queue} discarded wl_surface#807.enter(wl_output#313) -[2617894.454] {Default Queue} discarded wl_surface#807.enter(wl_output#345) -[2617894.459] {Default Queue} discarded wl_surface#807.enter(wl_output#377) -[2617894.464] {Default Queue} discarded wl_surface#807.enter(wl_output#409) -[2617894.469] {Default Queue} discarded wl_surface#807.enter(wl_output#441) -[2617894.473] {Default Queue} discarded wl_surface#807.enter(wl_output#473) -[2617894.478] {Default Queue} discarded wl_surface#807.enter(wl_output#505) -[2617894.483] {Default Queue} discarded wl_surface#807.enter(wl_output#537) -[2617894.488] {Default Queue} discarded wl_surface#807.enter(wl_output#569) -[2617894.493] {Default Queue} discarded wl_surface#807.enter(wl_output#601) -[2617894.497] {Default Queue} discarded wl_surface#807.enter(wl_output#633) -[2617894.500] {Default Queue} discarded wl_surface#807.enter(wl_output#665) -[2617894.504] {Default Queue} discarded wl_surface#807.enter(wl_output#697) -[2617894.508] {Default Queue} discarded wl_surface#807.enter(wl_output#729) -[2617894.512] {Default Queue} discarded wl_surface#807.enter(wl_output#761) -[2617894.516] {Default Queue} discarded wl_surface#807.enter(wl_output#793) -[2617894.520] {Default Queue} discarded wl_surface#807.enter(wl_output#825) -[2617894.524] {Default Queue} -> wl_compositor#684.create_surface(new id wl_surface#839) -[2617894.529] {Default Queue} -> wl_subcompositor#845.get_subsurface(new id wl_subsurface#858, wl_surface#839, wl_surface#679) -[2617894.534] {Default Queue} -> wl_subsurface#858.set_desync() -[2617894.538] {Default Queue} -> wl_subsurface#858.set_position(0, 0) -[2617894.543] {Default Queue} -> wl_subsurface#858.place_above(wl_surface#679) -[2617894.590] {Default Queue} -> wl_shm#847.create_pool(new id wl_shm_pool#859, fd 139, 16) -[2617894.601] {Default Queue} -> wl_shm#847.create_pool(new id wl_shm_pool#860, fd 140, 16) -[2617894.607] {Default Queue} -> wl_shm_pool#859.create_buffer(new id wl_buffer#861, 0, 2, 2, 8, 0) -[2617894.613] {Default Queue} -> wl_shm_pool#860.create_buffer(new id wl_buffer#862, 0, 2, 2, 8, 0) -[2617894.621] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) -[2617894.626] {Default Queue} -> wl_surface#839.commit() -[2617894.631] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) -[2617894.636] {Default Queue} -> wl_surface#839.commit() -[2617894.640] {Default Queue} -> wl_compositor#844.create_region(new id wl_region#863) -[2617894.644] {Default Queue} -> wl_compositor#844.create_region(new id wl_region#864) -[2617894.650] {Default Queue} -> wl_region#863.subtract(0, 0, 2, 2) -[2617894.655] {Default Queue} -> wl_region#863.add(0, 0, 0, 0) -[2617894.659] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2617894.664] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2617894.668] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2617894.673] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2617894.681] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) -[2617894.686] {Default Queue} -> wl_surface#839.commit() -[2617894.723] {Default Queue} -> wl_shm#849.create_pool(new id wl_shm_pool#865, fd 143, 640) -[2617894.729] {Default Queue} -> wl_shm#849.create_pool(new id wl_shm_pool#866, fd 144, 640) -[2617894.736] {Default Queue} -> wl_shm_pool#865.create_buffer(new id wl_buffer#867, 0, 10, 16, 40, 0) -[2617894.741] {Default Queue} -> wl_shm_pool#866.create_buffer(new id wl_buffer#868, 0, 10, 16, 40, 0) -[2617894.748] {Default Queue} -> wl_compositor#844.create_surface(new id wl_surface#869) -[2617894.753] {Default Queue} -> wl_surface#869.attach(wl_buffer#867, 0, 0) -[2617894.757] {Default Queue} -> wl_surface#869.commit() -[2617894.762] {Default Queue} -> wl_surface#869.attach(wl_buffer#867, 0, 0) -[2617894.767] {Default Queue} -> wl_surface#869.commit() -[2617894.773] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2617894.779] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2617894.783] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2617894.792] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#870) -[2617894.798] {Default Queue} -> wl_display#1.sync(new id wl_callback#871) -[2617904.398] {Display Queue} wl_display#1.delete_id(871) -[2617904.413] {Default Queue} wl_keyboard#840.keymap(1, fd 139, 68213) -[2617904.420] {Default Queue} wl_keyboard#840.enter(566, wl_surface#19, array[0]) -[2617904.428] {Default Queue} wl_keyboard#840.modifiers(566, 0, 0, 16, 0) -[2617904.434] {Default Queue} discarded wl_shm#847.format(875709016) -[2617904.439] {Default Queue} discarded wl_shm#847.format(1) -[2617904.445] {Default Queue} discarded wl_shm#847.format(0) -[2617904.451] {Default Queue} discarded wl_shm#847.format(875708993) -[2617904.456] {Default Queue} discarded wl_shm#848.format(875709016) -[2617904.462] {Default Queue} discarded wl_shm#848.format(1) -[2617904.468] {Default Queue} discarded wl_shm#848.format(0) -[2617904.473] {Default Queue} discarded wl_shm#848.format(875708993) -[2617904.479] {Default Queue} discarded wl_shm#849.format(875709016) -[2617904.485] {Default Queue} discarded wl_shm#849.format(1) -[2617904.490] {Default Queue} discarded wl_shm#849.format(0) -[2617904.496] {Default Queue} discarded wl_shm#849.format(875708993) -[2617904.501] {Default Queue} wl_seat#856.capabilities(7) -[2617904.507] {Default Queue} -> wl_seat#856.get_keyboard(new id wl_keyboard#872) -[2617904.513] {Default Queue} -> wl_seat#856.get_pointer(new id wl_pointer#873) -[2617904.520] {Default Queue} -> wl_data_device_manager#852.get_data_device(new id wl_data_device#874, wl_seat#856) -[2617904.528] {Default Queue} -> zwp_primary_selection_device_manager_v1#854.get_device(new id zwp_primary_selection_device_v1#875, wl_seat#856) -[2617904.543] {Default Queue} wl_output#857.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617904.552] {Default Queue} wl_output#857.mode(3, 1280, 800, 60000) -[2617904.570] {Default Queue} discarded wl_surface#3.enter(wl_output#857) -[2617904.582] {Default Queue} discarded wl_surface#423.enter(wl_output#857) -[2617904.589] {Default Queue} discarded wl_surface#455.enter(wl_output#857) -[2617904.596] {Default Queue} discarded wl_surface#775.enter(wl_output#857) -[2617904.603] {Default Queue} discarded wl_surface#135.enter(wl_output#857) -[2617904.610] {Default Queue} discarded wl_surface#615.enter(wl_output#857) -[2617904.618] {Default Queue} discarded wl_surface#231.enter(wl_output#857) -[2617904.625] {Default Queue} discarded wl_surface#359.enter(wl_output#857) -[2617904.632] {Default Queue} discarded wl_surface#583.enter(wl_output#857) -[2617904.639] {Default Queue} discarded wl_surface#743.enter(wl_output#857) -[2617904.646] {Default Queue} discarded wl_surface#103.enter(wl_output#857) -[2617904.653] {Default Queue} discarded wl_surface#327.enter(wl_output#857) -[2617904.658] {Default Queue} discarded wl_surface#43.enter(wl_output#857) -[2617904.662] {Default Queue} discarded wl_surface#807.enter(wl_output#857) -[2617904.667] {Default Queue} discarded wl_surface#19.enter(wl_output#857) -[2617904.673] {Default Queue} discarded wl_surface#199.enter(wl_output#857) -[2617904.680] {Default Queue} discarded wl_surface#391.enter(wl_output#857) -[2617904.686] {Default Queue} discarded wl_surface#711.enter(wl_output#857) -[2617904.693] {Default Queue} discarded wl_surface#263.enter(wl_output#857) -[2617904.699] {Default Queue} discarded wl_surface#551.enter(wl_output#857) -[2617904.706] {Default Queue} discarded wl_surface#647.enter(wl_output#857) -[2617904.712] {Default Queue} discarded wl_surface#71.enter(wl_output#857) -[2617904.718] {Default Queue} discarded wl_surface#487.enter(wl_output#857) -[2617904.723] {Default Queue} discarded wl_surface#519.enter(wl_output#857) -[2617904.728] {Default Queue} discarded wl_surface#295.enter(wl_output#857) -[2617904.733] {Default Queue} discarded wl_surface#167.enter(wl_output#857) -[2617904.737] {Default Queue} discarded wl_surface#679.enter(wl_output#857) -[2617904.742] {Default Queue} wl_registry#870.global(1, "wl_compositor", 6) -[2617904.749] {Default Queue} -> wl_registry#870.bind(1, "wl_compositor", 1, new id [unknown]#876) -[2617904.755] {Default Queue} wl_registry#870.global(2, "wl_subcompositor", 1) -[2617904.761] {Default Queue} -> wl_registry#870.bind(2, "wl_subcompositor", 1, new id [unknown]#877) -[2617904.767] {Default Queue} wl_registry#870.global(3, "xdg_wm_base", 6) -[2617904.773] {Default Queue} -> wl_registry#870.bind(3, "xdg_wm_base", 1, new id [unknown]#878) -[2617904.779] {Default Queue} wl_registry#870.global(6, "zwlr_layer_shell_v1", 5) -[2617904.784] {Default Queue} wl_registry#870.global(7, "ext_session_lock_manager_v1", 1) -[2617904.790] {Default Queue} wl_registry#870.global(8, "wl_shm", 2) -[2617904.796] {Default Queue} -> wl_registry#870.bind(8, "wl_shm", 1, new id [unknown]#879) -[2617904.801] {Default Queue} -> wl_registry#870.bind(8, "wl_shm", 1, new id [unknown]#880) -[2617904.806] {Default Queue} -> wl_registry#870.bind(8, "wl_shm", 1, new id [unknown]#881) -[2617904.812] {Default Queue} wl_registry#870.global(9, "zxdg_output_manager_v1", 3) -[2617904.817] {Default Queue} wl_registry#870.global(10, "wp_fractional_scale_manager_v1", 1) -[2617904.822] {Default Queue} wl_registry#870.global(11, "zwp_tablet_manager_v2", 1) -[2617904.828] {Default Queue} wl_registry#870.global(12, "zwp_pointer_gestures_v1", 3) -[2617904.833] {Default Queue} wl_registry#870.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617904.839] {Default Queue} -> wl_registry#870.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#882) -[2617904.844] {Default Queue} wl_registry#870.global(14, "zwp_pointer_constraints_v1", 1) -[2617904.850] {Default Queue} -> wl_registry#870.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#883) -[2617904.856] {Default Queue} wl_registry#870.global(15, "ext_idle_notifier_v1", 2) -[2617904.871] {Default Queue} wl_registry#870.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617904.876] {Default Queue} wl_registry#870.global(17, "wl_data_device_manager", 3) -[2617904.888] {Default Queue} -> wl_registry#870.bind(17, "wl_data_device_manager", 2, new id [unknown]#884) -[2617904.896] {Default Queue} -> wl_data_device_manager#884.create_data_source(new id wl_data_source#885) -[2617904.902] {Default Queue} -> wl_data_source#885.offer("text/plain") -[2617904.907] {Default Queue} -> wl_data_source#885.offer("text/plain;charset=utf-8") -[2617904.913] {Default Queue} -> wl_data_source#885.offer("TEXT") -[2617904.918] {Default Queue} -> wl_data_source#885.offer("STRING") -[2617904.923] {Default Queue} -> wl_data_source#885.offer("UTF8_STRING") -[2617904.928] {Default Queue} wl_registry#870.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617904.934] {Default Queue} -> wl_registry#870.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#886) -[2617904.940] {Default Queue} -> zwp_primary_selection_device_manager_v1#886.create_source(new id zwp_primary_selection_source_v1#887) -[2617904.950] {Default Queue} -> zwp_primary_selection_source_v1#887.offer("text/plain") -[2617904.955] {Default Queue} -> zwp_primary_selection_source_v1#887.offer("text/plain;charset=utf-8") -[2617904.960] {Default Queue} -> zwp_primary_selection_source_v1#887.offer("TEXT") -[2617904.966] {Default Queue} -> zwp_primary_selection_source_v1#887.offer("STRING") -[2617904.971] {Default Queue} -> zwp_primary_selection_source_v1#887.offer("UTF8_STRING") -[2617904.976] {Default Queue} wl_registry#870.global(19, "zwlr_data_control_manager_v1", 2) -[2617904.981] {Default Queue} wl_registry#870.global(20, "ext_data_control_manager_v1", 1) -[2617904.987] {Default Queue} wl_registry#870.global(21, "wp_presentation", 2) -[2617904.992] {Default Queue} wl_registry#870.global(22, "wp_security_context_manager_v1", 1) -[2617904.998] {Default Queue} wl_registry#870.global(23, "zwp_text_input_manager_v3", 1) -[2617905.003] {Default Queue} wl_registry#870.global(24, "zwp_input_method_manager_v2", 1) -[2617905.009] {Default Queue} wl_registry#870.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617905.014] {Default Queue} wl_registry#870.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617905.020] {Default Queue} wl_registry#870.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617905.026] {Default Queue} wl_registry#870.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617905.031] {Default Queue} wl_registry#870.global(29, "ext_workspace_manager_v1", 1) -[2617905.036] {Default Queue} wl_registry#870.global(30, "zwlr_output_manager_v1", 4) -[2617905.042] {Default Queue} wl_registry#870.global(31, "zwlr_screencopy_manager_v1", 3) -[2617905.047] {Default Queue} wl_registry#870.global(32, "wp_viewporter", 1) -[2617905.053] {Default Queue} wl_registry#870.global(33, "zxdg_exporter_v2", 1) -[2617905.058] {Default Queue} wl_registry#870.global(34, "zxdg_importer_v2", 1) -[2617905.064] {Default Queue} wl_registry#870.global(36, "xdg_activation_v1", 1) -[2617905.069] {Default Queue} wl_registry#870.global(37, "mutter_x11_interop", 1) -[2617905.074] {Default Queue} wl_registry#870.global(38, "wl_seat", 9) -[2617905.080] {Default Queue} -> wl_registry#870.bind(38, "wl_seat", 1, new id [unknown]#888) -[2617905.086] {Default Queue} wl_registry#870.global(39, "wp_cursor_shape_manager_v1", 2) -[2617905.092] {Default Queue} wl_registry#870.global(40, "wl_output", 4) -[2617905.097] {Default Queue} -> wl_registry#870.bind(40, "wl_output", 1, new id [unknown]#889) -[2617905.102] {Default Queue} wl_callback#871.done(0) -[2617905.108] {Default Queue} discarded wl_surface#839.enter(wl_output#18) -[2617905.113] {Default Queue} discarded wl_surface#839.enter(wl_output#57) -[2617905.118] {Default Queue} discarded wl_surface#839.enter(wl_output#89) -[2617905.123] {Default Queue} discarded wl_surface#839.enter(wl_output#121) -[2617905.128] {Default Queue} discarded wl_surface#839.enter(wl_output#153) -[2617905.133] {Default Queue} discarded wl_surface#839.enter(wl_output#185) -[2617905.138] {Default Queue} discarded wl_surface#839.enter(wl_output#217) -[2617905.143] {Default Queue} discarded wl_surface#839.enter(wl_output#249) -[2617905.152] {Default Queue} discarded wl_surface#839.enter(wl_output#281) -[2617905.159] {Default Queue} discarded wl_surface#839.enter(wl_output#313) -[2617905.163] {Default Queue} discarded wl_surface#839.enter(wl_output#345) -[2617905.168] {Default Queue} discarded wl_surface#839.enter(wl_output#377) -[2617905.173] {Default Queue} discarded wl_surface#839.enter(wl_output#409) -[2617905.178] {Default Queue} discarded wl_surface#839.enter(wl_output#441) -[2617905.183] {Default Queue} discarded wl_surface#839.enter(wl_output#473) -[2617905.188] {Default Queue} discarded wl_surface#839.enter(wl_output#505) -[2617905.193] {Default Queue} discarded wl_surface#839.enter(wl_output#537) -[2617905.199] {Default Queue} discarded wl_surface#839.enter(wl_output#569) -[2617905.204] {Default Queue} discarded wl_surface#839.enter(wl_output#601) -[2617905.209] {Default Queue} discarded wl_surface#839.enter(wl_output#633) -[2617905.214] {Default Queue} discarded wl_surface#839.enter(wl_output#665) -[2617905.219] {Default Queue} discarded wl_surface#839.enter(wl_output#697) -[2617905.224] {Default Queue} discarded wl_surface#839.enter(wl_output#729) -[2617905.229] {Default Queue} discarded wl_surface#839.enter(wl_output#761) -[2617905.234] {Default Queue} discarded wl_surface#839.enter(wl_output#793) -[2617905.239] {Default Queue} discarded wl_surface#839.enter(wl_output#825) -[2617905.243] {Default Queue} discarded wl_surface#839.enter(wl_output#857) -[2617905.249] {Default Queue} -> wl_compositor#28.create_surface(new id wl_surface#871) -[2617905.254] {Default Queue} -> wl_subcompositor#877.get_subsurface(new id wl_subsurface#890, wl_surface#871, wl_surface#71) -[2617905.260] {Default Queue} -> wl_subsurface#890.set_desync() -[2617905.266] {Default Queue} -> wl_subsurface#890.set_position(0, 0) -[2617905.271] {Default Queue} -> wl_subsurface#890.place_above(wl_surface#71) -[2617905.323] {Default Queue} -> wl_shm#879.create_pool(new id wl_shm_pool#891, fd 144, 16) -[2617905.331] {Default Queue} -> wl_shm#879.create_pool(new id wl_shm_pool#892, fd 145, 16) -[2617905.337] {Default Queue} -> wl_shm_pool#891.create_buffer(new id wl_buffer#893, 0, 2, 2, 8, 0) -[2617905.343] {Default Queue} -> wl_shm_pool#892.create_buffer(new id wl_buffer#894, 0, 2, 2, 8, 0) -[2617905.353] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) -[2617905.360] {Default Queue} -> wl_surface#871.commit() -[2617905.367] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) -[2617905.372] {Default Queue} -> wl_surface#871.commit() -[2617905.377] {Default Queue} -> wl_compositor#876.create_region(new id wl_region#895) -[2617905.385] {Default Queue} -> wl_compositor#876.create_region(new id wl_region#896) -[2617905.390] {Default Queue} -> wl_region#895.subtract(0, 0, 2, 2) -[2617905.396] {Default Queue} -> wl_region#895.add(0, 0, 0, 0) -[2617905.401] {Default Queue} -> wl_surface#871.set_opaque_region(wl_region#896) -[2617905.407] {Default Queue} -> wl_surface#871.set_input_region(wl_region#895) -[2617905.413] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) -[2617905.418] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) -[2617905.428] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) -[2617905.433] {Default Queue} -> wl_surface#871.commit() -[2617905.477] {Default Queue} -> wl_shm#881.create_pool(new id wl_shm_pool#897, fd 148, 640) -[2617905.485] {Default Queue} -> wl_shm#881.create_pool(new id wl_shm_pool#898, fd 149, 640) -[2617905.490] {Default Queue} -> wl_shm_pool#897.create_buffer(new id wl_buffer#899, 0, 10, 16, 40, 0) -[2617905.496] {Default Queue} -> wl_shm_pool#898.create_buffer(new id wl_buffer#900, 0, 10, 16, 40, 0) -[2617905.505] {Default Queue} -> wl_compositor#876.create_surface(new id wl_surface#901) -[2617905.510] {Default Queue} -> wl_surface#901.attach(wl_buffer#899, 0, 0) -[2617905.516] {Default Queue} -> wl_surface#901.commit() -[2617905.521] {Default Queue} -> wl_surface#901.attach(wl_buffer#899, 0, 0) -[2617905.525] {Default Queue} -> wl_surface#901.commit() -[2617905.531] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) -[2617905.542] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#902) -[2617905.551] {Default Queue} -> wl_display#1.sync(new id wl_callback#903) -[2617913.617] {Display Queue} wl_display#1.delete_id(903) -[2617913.634] {Default Queue} wl_keyboard#872.keymap(1, fd 144, 68213) -[2617913.643] {Default Queue} wl_keyboard#872.enter(566, wl_surface#19, array[0]) -[2617913.653] {Default Queue} wl_keyboard#872.modifiers(566, 0, 0, 16, 0) -[2617913.663] {Default Queue} discarded wl_shm#879.format(875709016) -[2617913.670] {Default Queue} discarded wl_shm#879.format(1) -[2617913.677] {Default Queue} discarded wl_shm#879.format(0) -[2617913.685] {Default Queue} discarded wl_shm#879.format(875708993) -[2617913.691] {Default Queue} discarded wl_shm#880.format(875709016) -[2617913.699] {Default Queue} discarded wl_shm#880.format(1) -[2617913.706] {Default Queue} discarded wl_shm#880.format(0) -[2617913.713] {Default Queue} discarded wl_shm#880.format(875708993) -[2617913.723] {Default Queue} discarded wl_shm#881.format(875709016) -[2617913.730] {Default Queue} discarded wl_shm#881.format(1) -[2617913.736] {Default Queue} discarded wl_shm#881.format(0) -[2617913.743] {Default Queue} discarded wl_shm#881.format(875708993) -[2617913.749] {Default Queue} wl_seat#888.capabilities(7) -[2617913.757] {Default Queue} -> wl_seat#888.get_keyboard(new id wl_keyboard#904) -[2617913.765] {Default Queue} -> wl_seat#888.get_pointer(new id wl_pointer#905) -[2617913.773] {Default Queue} -> wl_data_device_manager#884.get_data_device(new id wl_data_device#906, wl_seat#888) -[2617913.782] {Default Queue} -> zwp_primary_selection_device_manager_v1#886.get_device(new id zwp_primary_selection_device_v1#907, wl_seat#888) -[2617913.797] {Default Queue} wl_output#889.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617913.806] {Default Queue} wl_output#889.mode(3, 1280, 800, 60000) -[2617913.814] {Default Queue} discarded wl_surface#3.enter(wl_output#889) -[2617913.821] {Default Queue} discarded wl_surface#423.enter(wl_output#889) -[2617913.828] {Default Queue} discarded wl_surface#455.enter(wl_output#889) -[2617913.835] {Default Queue} discarded wl_surface#775.enter(wl_output#889) -[2617913.843] {Default Queue} discarded wl_surface#135.enter(wl_output#889) -[2617913.850] {Default Queue} discarded wl_surface#615.enter(wl_output#889) -[2617913.857] {Default Queue} discarded wl_surface#231.enter(wl_output#889) -[2617913.876] {Default Queue} discarded wl_surface#359.enter(wl_output#889) -[2617913.883] {Default Queue} discarded wl_surface#583.enter(wl_output#889) -[2617913.889] {Default Queue} discarded wl_surface#743.enter(wl_output#889) -[2617913.896] {Default Queue} discarded wl_surface#103.enter(wl_output#889) -[2617913.903] {Default Queue} discarded wl_surface#327.enter(wl_output#889) -[2617913.910] {Default Queue} discarded wl_surface#43.enter(wl_output#889) -[2617913.916] {Default Queue} discarded wl_surface#807.enter(wl_output#889) -[2617913.920] {Default Queue} discarded wl_surface#19.enter(wl_output#889) -[2617913.925] {Default Queue} discarded wl_surface#199.enter(wl_output#889) -[2617913.931] {Default Queue} discarded wl_surface#391.enter(wl_output#889) -[2617913.938] {Default Queue} discarded wl_surface#711.enter(wl_output#889) -[2617913.945] {Default Queue} discarded wl_surface#263.enter(wl_output#889) -[2617913.951] {Default Queue} discarded wl_surface#551.enter(wl_output#889) -[2617913.958] {Default Queue} discarded wl_surface#647.enter(wl_output#889) -[2617913.964] {Default Queue} discarded wl_surface#71.enter(wl_output#889) -[2617913.971] {Default Queue} discarded wl_surface#839.enter(wl_output#889) -[2617913.977] {Default Queue} discarded wl_surface#487.enter(wl_output#889) -[2617913.982] {Default Queue} discarded wl_surface#519.enter(wl_output#889) -[2617913.987] {Default Queue} discarded wl_surface#295.enter(wl_output#889) -[2617913.992] {Default Queue} discarded wl_surface#167.enter(wl_output#889) -[2617913.997] {Default Queue} discarded wl_surface#679.enter(wl_output#889) -[2617914.002] {Default Queue} wl_registry#902.global(1, "wl_compositor", 6) -[2617914.016] {Default Queue} -> wl_registry#902.bind(1, "wl_compositor", 1, new id [unknown]#908) -[2617914.025] {Default Queue} wl_registry#902.global(2, "wl_subcompositor", 1) -[2617914.031] {Default Queue} -> wl_registry#902.bind(2, "wl_subcompositor", 1, new id [unknown]#909) -[2617914.037] {Default Queue} wl_registry#902.global(3, "xdg_wm_base", 6) -[2617914.043] {Default Queue} -> wl_registry#902.bind(3, "xdg_wm_base", 1, new id [unknown]#910) -[2617914.049] {Default Queue} wl_registry#902.global(6, "zwlr_layer_shell_v1", 5) -[2617914.054] {Default Queue} wl_registry#902.global(7, "ext_session_lock_manager_v1", 1) -[2617914.060] {Default Queue} wl_registry#902.global(8, "wl_shm", 2) -[2617914.066] {Default Queue} -> wl_registry#902.bind(8, "wl_shm", 1, new id [unknown]#911) -[2617914.071] {Default Queue} -> wl_registry#902.bind(8, "wl_shm", 1, new id [unknown]#912) -[2617914.077] {Default Queue} -> wl_registry#902.bind(8, "wl_shm", 1, new id [unknown]#913) -[2617914.082] {Default Queue} wl_registry#902.global(9, "zxdg_output_manager_v1", 3) -[2617914.088] {Default Queue} wl_registry#902.global(10, "wp_fractional_scale_manager_v1", 1) -[2617914.093] {Default Queue} wl_registry#902.global(11, "zwp_tablet_manager_v2", 1) -[2617914.098] {Default Queue} wl_registry#902.global(12, "zwp_pointer_gestures_v1", 3) -[2617914.104] {Default Queue} wl_registry#902.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617914.109] {Default Queue} -> wl_registry#902.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#914) -[2617914.115] {Default Queue} wl_registry#902.global(14, "zwp_pointer_constraints_v1", 1) -[2617914.120] {Default Queue} -> wl_registry#902.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#915) -[2617914.126] {Default Queue} wl_registry#902.global(15, "ext_idle_notifier_v1", 2) -[2617914.132] {Default Queue} wl_registry#902.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617914.137] {Default Queue} wl_registry#902.global(17, "wl_data_device_manager", 3) -[2617914.143] {Default Queue} -> wl_registry#902.bind(17, "wl_data_device_manager", 2, new id [unknown]#916) -[2617914.149] {Default Queue} -> wl_data_device_manager#916.create_data_source(new id wl_data_source#917) -[2617914.155] {Default Queue} -> wl_data_source#917.offer("text/plain") -[2617914.160] {Default Queue} -> wl_data_source#917.offer("text/plain;charset=utf-8") -[2617914.166] {Default Queue} -> wl_data_source#917.offer("TEXT") -[2617914.171] {Default Queue} -> wl_data_source#917.offer("STRING") -[2617914.176] {Default Queue} -> wl_data_source#917.offer("UTF8_STRING") -[2617914.181] {Default Queue} wl_registry#902.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617914.187] {Default Queue} -> wl_registry#902.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#918) -[2617914.192] {Default Queue} -> zwp_primary_selection_device_manager_v1#918.create_source(new id zwp_primary_selection_source_v1#919) -[2617914.201] {Default Queue} -> zwp_primary_selection_source_v1#919.offer("text/plain") -[2617914.207] {Default Queue} -> zwp_primary_selection_source_v1#919.offer("text/plain;charset=utf-8") -[2617914.212] {Default Queue} -> zwp_primary_selection_source_v1#919.offer("TEXT") -[2617914.217] {Default Queue} -> zwp_primary_selection_source_v1#919.offer("STRING") -[2617914.222] {Default Queue} -> zwp_primary_selection_source_v1#919.offer("UTF8_STRING") -[2617914.227] {Default Queue} wl_registry#902.global(19, "zwlr_data_control_manager_v1", 2) -[2617914.233] {Default Queue} wl_registry#902.global(20, "ext_data_control_manager_v1", 1) -[2617914.238] {Default Queue} wl_registry#902.global(21, "wp_presentation", 2) -[2617914.244] {Default Queue} wl_registry#902.global(22, "wp_security_context_manager_v1", 1) -[2617914.249] {Default Queue} wl_registry#902.global(23, "zwp_text_input_manager_v3", 1) -[2617914.254] {Default Queue} wl_registry#902.global(24, "zwp_input_method_manager_v2", 1) -[2617914.260] {Default Queue} wl_registry#902.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617914.265] {Default Queue} wl_registry#902.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617914.276] {Default Queue} wl_registry#902.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617914.284] {Default Queue} wl_registry#902.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617914.289] {Default Queue} wl_registry#902.global(29, "ext_workspace_manager_v1", 1) -[2617914.295] {Default Queue} wl_registry#902.global(30, "zwlr_output_manager_v1", 4) -[2617914.300] {Default Queue} wl_registry#902.global(31, "zwlr_screencopy_manager_v1", 3) -[2617914.305] {Default Queue} wl_registry#902.global(32, "wp_viewporter", 1) -[2617914.311] {Default Queue} wl_registry#902.global(33, "zxdg_exporter_v2", 1) -[2617914.316] {Default Queue} wl_registry#902.global(34, "zxdg_importer_v2", 1) -[2617914.321] {Default Queue} wl_registry#902.global(36, "xdg_activation_v1", 1) -[2617914.327] {Default Queue} wl_registry#902.global(37, "mutter_x11_interop", 1) -[2617914.332] {Default Queue} wl_registry#902.global(38, "wl_seat", 9) -[2617914.338] {Default Queue} -> wl_registry#902.bind(38, "wl_seat", 1, new id [unknown]#920) -[2617914.343] {Default Queue} wl_registry#902.global(39, "wp_cursor_shape_manager_v1", 2) -[2617914.349] {Default Queue} wl_registry#902.global(40, "wl_output", 4) -[2617914.354] {Default Queue} -> wl_registry#902.bind(40, "wl_output", 1, new id [unknown]#921) -[2617914.360] {Default Queue} wl_callback#903.done(0) -[2617914.366] {Default Queue} discarded wl_surface#871.enter(wl_output#18) -[2617914.371] {Default Queue} discarded wl_surface#871.enter(wl_output#57) -[2617914.376] {Default Queue} discarded wl_surface#871.enter(wl_output#89) -[2617914.381] {Default Queue} discarded wl_surface#871.enter(wl_output#121) -[2617914.385] {Default Queue} discarded wl_surface#871.enter(wl_output#153) -[2617914.390] {Default Queue} discarded wl_surface#871.enter(wl_output#185) -[2617914.395] {Default Queue} discarded wl_surface#871.enter(wl_output#217) -[2617914.400] {Default Queue} discarded wl_surface#871.enter(wl_output#249) -[2617914.405] {Default Queue} discarded wl_surface#871.enter(wl_output#281) -[2617914.409] {Default Queue} discarded wl_surface#871.enter(wl_output#313) -[2617914.414] {Default Queue} discarded wl_surface#871.enter(wl_output#345) -[2617914.419] {Default Queue} discarded wl_surface#871.enter(wl_output#377) -[2617914.424] {Default Queue} discarded wl_surface#871.enter(wl_output#409) -[2617914.429] {Default Queue} discarded wl_surface#871.enter(wl_output#441) -[2617914.434] {Default Queue} discarded wl_surface#871.enter(wl_output#473) -[2617914.438] {Default Queue} discarded wl_surface#871.enter(wl_output#505) -[2617914.443] {Default Queue} discarded wl_surface#871.enter(wl_output#537) -[2617914.448] {Default Queue} discarded wl_surface#871.enter(wl_output#569) -[2617914.453] {Default Queue} discarded wl_surface#871.enter(wl_output#601) -[2617914.458] {Default Queue} discarded wl_surface#871.enter(wl_output#633) -[2617914.463] {Default Queue} discarded wl_surface#871.enter(wl_output#665) -[2617914.468] {Default Queue} discarded wl_surface#871.enter(wl_output#697) -[2617914.473] {Default Queue} discarded wl_surface#871.enter(wl_output#729) -[2617914.477] {Default Queue} discarded wl_surface#871.enter(wl_output#761) -[2617914.483] {Default Queue} discarded wl_surface#871.enter(wl_output#793) -[2617914.487] {Default Queue} discarded wl_surface#871.enter(wl_output#825) -[2617914.492] {Default Queue} discarded wl_surface#871.enter(wl_output#857) -[2617914.497] {Default Queue} discarded wl_surface#871.enter(wl_output#889) -[2617914.502] {Default Queue} -> wl_compositor#876.create_surface(new id wl_surface#903) -[2617914.508] {Default Queue} -> wl_subcompositor#909.get_subsurface(new id wl_subsurface#922, wl_surface#903, wl_surface#871) -[2617914.513] {Default Queue} -> wl_subsurface#922.set_desync() -[2617914.519] {Default Queue} -> wl_subsurface#922.set_position(0, 0) -[2617914.524] {Default Queue} -> wl_subsurface#922.place_above(wl_surface#871) -[2617914.569] {Default Queue} -> wl_shm#911.create_pool(new id wl_shm_pool#923, fd 149, 16) -[2617914.576] {Default Queue} -> wl_shm#911.create_pool(new id wl_shm_pool#924, fd 150, 16) -[2617914.583] {Default Queue} -> wl_shm_pool#923.create_buffer(new id wl_buffer#925, 0, 2, 2, 8, 0) -[2617914.590] {Default Queue} -> wl_shm_pool#924.create_buffer(new id wl_buffer#926, 0, 2, 2, 8, 0) -[2617914.598] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) -[2617914.602] {Default Queue} -> wl_surface#903.commit() -[2617914.608] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) -[2617914.612] {Default Queue} -> wl_surface#903.commit() -[2617914.616] {Default Queue} -> wl_compositor#908.create_region(new id wl_region#927) -[2617914.620] {Default Queue} -> wl_compositor#908.create_region(new id wl_region#928) -[2617914.625] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) -[2617914.629] {Default Queue} -> wl_region#927.add(0, 0, 0, 0) -[2617914.634] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2617914.638] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2617914.642] {Default Queue} -> wl_surface#903.damage(0, 0, 2, 2) -[2617914.647] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) -[2617914.654] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) -[2617914.658] {Default Queue} -> wl_surface#903.commit() -[2617914.690] {Default Queue} -> wl_shm#913.create_pool(new id wl_shm_pool#929, fd 153, 640) -[2617914.697] {Default Queue} -> wl_shm#913.create_pool(new id wl_shm_pool#930, fd 154, 640) -[2617914.704] {Default Queue} -> wl_shm_pool#929.create_buffer(new id wl_buffer#931, 0, 10, 16, 40, 0) -[2617914.709] {Default Queue} -> wl_shm_pool#930.create_buffer(new id wl_buffer#932, 0, 10, 16, 40, 0) -[2617914.716] {Default Queue} -> wl_compositor#908.create_surface(new id wl_surface#933) -[2617914.720] {Default Queue} -> wl_surface#933.attach(wl_buffer#931, 0, 0) -[2617914.725] {Default Queue} -> wl_surface#933.commit() -[2617914.730] {Default Queue} -> wl_surface#933.attach(wl_buffer#931, 0, 0) -[2617914.735] {Default Queue} -> wl_surface#933.commit() -[2617914.740] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) -[2617914.745] {Default Queue} -> wl_surface#903.damage(0, 0, 2, 2) -[2617914.749] {Default Queue} -> wl_surface#903.damage(0, 0, 2, 2) -[2617914.757] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#934) -[2617914.762] {Default Queue} -> wl_display#1.sync(new id wl_callback#935) -[2617923.667] {Display Queue} wl_display#1.delete_id(935) -[2617923.684] {Default Queue} wl_keyboard#904.keymap(1, fd 149, 68213) -[2617923.693] {Default Queue} wl_keyboard#904.enter(566, wl_surface#19, array[0]) -[2617923.702] {Default Queue} wl_keyboard#904.modifiers(566, 0, 0, 16, 0) -[2617923.710] {Default Queue} discarded wl_shm#911.format(875709016) -[2617923.717] {Default Queue} discarded wl_shm#911.format(1) -[2617923.723] {Default Queue} discarded wl_shm#911.format(0) -[2617923.728] {Default Queue} discarded wl_shm#911.format(875708993) -[2617923.733] {Default Queue} discarded wl_shm#912.format(875709016) -[2617923.738] {Default Queue} discarded wl_shm#912.format(1) -[2617923.743] {Default Queue} discarded wl_shm#912.format(0) -[2617923.748] {Default Queue} discarded wl_shm#912.format(875708993) -[2617923.753] {Default Queue} discarded wl_shm#913.format(875709016) -[2617923.758] {Default Queue} discarded wl_shm#913.format(1) -[2617923.763] {Default Queue} discarded wl_shm#913.format(0) -[2617923.767] {Default Queue} discarded wl_shm#913.format(875708993) -[2617923.772] {Default Queue} wl_seat#920.capabilities(7) -[2617923.778] {Default Queue} -> wl_seat#920.get_keyboard(new id wl_keyboard#936) -[2617923.784] {Default Queue} -> wl_seat#920.get_pointer(new id wl_pointer#937) -[2617923.789] {Default Queue} -> wl_data_device_manager#916.get_data_device(new id wl_data_device#938, wl_seat#920) -[2617923.795] {Default Queue} -> zwp_primary_selection_device_manager_v1#918.get_device(new id zwp_primary_selection_device_v1#939, wl_seat#920) -[2617923.805] {Default Queue} wl_output#921.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617923.811] {Default Queue} wl_output#921.mode(3, 1280, 800, 60000) -[2617923.827] {Default Queue} discarded wl_surface#3.enter(wl_output#921) -[2617923.836] {Default Queue} discarded wl_surface#423.enter(wl_output#921) -[2617923.843] {Default Queue} discarded wl_surface#455.enter(wl_output#921) -[2617923.849] {Default Queue} discarded wl_surface#775.enter(wl_output#921) -[2617923.856] {Default Queue} discarded wl_surface#135.enter(wl_output#921) -[2617923.869] {Default Queue} discarded wl_surface#615.enter(wl_output#921) -[2617923.876] {Default Queue} discarded wl_surface#231.enter(wl_output#921) -[2617923.882] {Default Queue} discarded wl_surface#359.enter(wl_output#921) -[2617923.889] {Default Queue} discarded wl_surface#583.enter(wl_output#921) -[2617923.896] {Default Queue} discarded wl_surface#743.enter(wl_output#921) -[2617923.903] {Default Queue} discarded wl_surface#103.enter(wl_output#921) -[2617923.910] {Default Queue} discarded wl_surface#327.enter(wl_output#921) -[2617923.918] {Default Queue} discarded wl_surface#43.enter(wl_output#921) -[2617923.925] {Default Queue} discarded wl_surface#807.enter(wl_output#921) -[2617923.931] {Default Queue} discarded wl_surface#19.enter(wl_output#921) -[2617923.938] {Default Queue} discarded wl_surface#199.enter(wl_output#921) -[2617923.946] {Default Queue} discarded wl_surface#391.enter(wl_output#921) -[2617923.952] {Default Queue} discarded wl_surface#711.enter(wl_output#921) -[2617923.960] {Default Queue} discarded wl_surface#871.enter(wl_output#921) -[2617923.968] {Default Queue} discarded wl_surface#263.enter(wl_output#921) -[2617923.975] {Default Queue} discarded wl_surface#551.enter(wl_output#921) -[2617923.984] {Default Queue} discarded wl_surface#647.enter(wl_output#921) -[2617923.991] {Default Queue} discarded wl_surface#71.enter(wl_output#921) -[2617923.997] {Default Queue} discarded wl_surface#839.enter(wl_output#921) -[2617924.004] {Default Queue} discarded wl_surface#487.enter(wl_output#921) -[2617924.011] {Default Queue} discarded wl_surface#519.enter(wl_output#921) -[2617924.017] {Default Queue} discarded wl_surface#295.enter(wl_output#921) -[2617924.024] {Default Queue} discarded wl_surface#167.enter(wl_output#921) -[2617924.030] {Default Queue} discarded wl_surface#679.enter(wl_output#921) -[2617924.038] {Default Queue} wl_registry#934.global(1, "wl_compositor", 6) -[2617924.047] {Default Queue} -> wl_registry#934.bind(1, "wl_compositor", 1, new id [unknown]#940) -[2617924.058] {Default Queue} wl_registry#934.global(2, "wl_subcompositor", 1) -[2617924.066] {Default Queue} -> wl_registry#934.bind(2, "wl_subcompositor", 1, new id [unknown]#941) -[2617924.074] {Default Queue} wl_registry#934.global(3, "xdg_wm_base", 6) -[2617924.083] {Default Queue} -> wl_registry#934.bind(3, "xdg_wm_base", 1, new id [unknown]#942) -[2617924.091] {Default Queue} wl_registry#934.global(6, "zwlr_layer_shell_v1", 5) -[2617924.099] {Default Queue} wl_registry#934.global(7, "ext_session_lock_manager_v1", 1) -[2617924.109] {Default Queue} wl_registry#934.global(8, "wl_shm", 2) -[2617924.118] {Default Queue} -> wl_registry#934.bind(8, "wl_shm", 1, new id [unknown]#943) -[2617924.126] {Default Queue} -> wl_registry#934.bind(8, "wl_shm", 1, new id [unknown]#944) -[2617924.134] {Default Queue} -> wl_registry#934.bind(8, "wl_shm", 1, new id [unknown]#945) -[2617924.143] {Default Queue} wl_registry#934.global(9, "zxdg_output_manager_v1", 3) -[2617924.150] {Default Queue} wl_registry#934.global(10, "wp_fractional_scale_manager_v1", 1) -[2617924.158] {Default Queue} wl_registry#934.global(11, "zwp_tablet_manager_v2", 1) -[2617924.166] {Default Queue} wl_registry#934.global(12, "zwp_pointer_gestures_v1", 3) -[2617924.173] {Default Queue} wl_registry#934.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617924.180] {Default Queue} -> wl_registry#934.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#946) -[2617924.186] {Default Queue} wl_registry#934.global(14, "zwp_pointer_constraints_v1", 1) -[2617924.194] {Default Queue} -> wl_registry#934.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#947) -[2617924.203] {Default Queue} wl_registry#934.global(15, "ext_idle_notifier_v1", 2) -[2617924.218] {Default Queue} wl_registry#934.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617924.227] {Default Queue} wl_registry#934.global(17, "wl_data_device_manager", 3) -[2617924.234] {Default Queue} -> wl_registry#934.bind(17, "wl_data_device_manager", 2, new id [unknown]#948) -[2617924.239] {Default Queue} -> wl_data_device_manager#948.create_data_source(new id wl_data_source#949) -[2617924.245] {Default Queue} -> wl_data_source#949.offer("text/plain") -[2617924.251] {Default Queue} -> wl_data_source#949.offer("text/plain;charset=utf-8") -[2617924.256] {Default Queue} -> wl_data_source#949.offer("TEXT") -[2617924.261] {Default Queue} -> wl_data_source#949.offer("STRING") -[2617924.266] {Default Queue} -> wl_data_source#949.offer("UTF8_STRING") -[2617924.271] {Default Queue} wl_registry#934.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617924.277] {Default Queue} -> wl_registry#934.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#950) -[2617924.283] {Default Queue} -> zwp_primary_selection_device_manager_v1#950.create_source(new id zwp_primary_selection_source_v1#951) -[2617924.292] {Default Queue} -> zwp_primary_selection_source_v1#951.offer("text/plain") -[2617924.298] {Default Queue} -> zwp_primary_selection_source_v1#951.offer("text/plain;charset=utf-8") -[2617924.302] {Default Queue} -> zwp_primary_selection_source_v1#951.offer("TEXT") -[2617924.307] {Default Queue} -> zwp_primary_selection_source_v1#951.offer("STRING") -[2617924.313] {Default Queue} -> zwp_primary_selection_source_v1#951.offer("UTF8_STRING") -[2617924.318] {Default Queue} wl_registry#934.global(19, "zwlr_data_control_manager_v1", 2) -[2617924.323] {Default Queue} wl_registry#934.global(20, "ext_data_control_manager_v1", 1) -[2617924.328] {Default Queue} wl_registry#934.global(21, "wp_presentation", 2) -[2617924.334] {Default Queue} wl_registry#934.global(22, "wp_security_context_manager_v1", 1) -[2617924.339] {Default Queue} wl_registry#934.global(23, "zwp_text_input_manager_v3", 1) -[2617924.344] {Default Queue} wl_registry#934.global(24, "zwp_input_method_manager_v2", 1) -[2617924.350] {Default Queue} wl_registry#934.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617924.355] {Default Queue} wl_registry#934.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617924.360] {Default Queue} wl_registry#934.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617924.366] {Default Queue} wl_registry#934.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617924.371] {Default Queue} wl_registry#934.global(29, "ext_workspace_manager_v1", 1) -[2617924.377] {Default Queue} wl_registry#934.global(30, "zwlr_output_manager_v1", 4) -[2617924.382] {Default Queue} wl_registry#934.global(31, "zwlr_screencopy_manager_v1", 3) -[2617924.388] {Default Queue} wl_registry#934.global(32, "wp_viewporter", 1) -[2617924.397] {Default Queue} wl_registry#934.global(33, "zxdg_exporter_v2", 1) -[2617924.412] {Default Queue} wl_registry#934.global(34, "zxdg_importer_v2", 1) -[2617924.422] {Default Queue} wl_registry#934.global(36, "xdg_activation_v1", 1) -[2617924.430] {Default Queue} wl_registry#934.global(37, "mutter_x11_interop", 1) -[2617924.439] {Default Queue} wl_registry#934.global(38, "wl_seat", 9) -[2617924.448] {Default Queue} -> wl_registry#934.bind(38, "wl_seat", 1, new id [unknown]#952) -[2617924.460] {Default Queue} wl_registry#934.global(39, "wp_cursor_shape_manager_v1", 2) -[2617924.468] {Default Queue} wl_registry#934.global(40, "wl_output", 4) -[2617924.474] {Default Queue} -> wl_registry#934.bind(40, "wl_output", 1, new id [unknown]#953) -[2617924.480] {Default Queue} wl_callback#935.done(0) -[2617924.486] {Default Queue} discarded wl_surface#903.enter(wl_output#18) -[2617924.491] {Default Queue} discarded wl_surface#903.enter(wl_output#57) -[2617924.496] {Default Queue} discarded wl_surface#903.enter(wl_output#89) -[2617924.501] {Default Queue} discarded wl_surface#903.enter(wl_output#121) -[2617924.506] {Default Queue} discarded wl_surface#903.enter(wl_output#153) -[2617924.511] {Default Queue} discarded wl_surface#903.enter(wl_output#185) -[2617924.522] {Default Queue} discarded wl_surface#903.enter(wl_output#217) -[2617924.530] {Default Queue} discarded wl_surface#903.enter(wl_output#249) -[2617924.535] {Default Queue} discarded wl_surface#903.enter(wl_output#281) -[2617924.540] {Default Queue} discarded wl_surface#903.enter(wl_output#313) -[2617924.544] {Default Queue} discarded wl_surface#903.enter(wl_output#345) -[2617924.549] {Default Queue} discarded wl_surface#903.enter(wl_output#377) -[2617924.553] {Default Queue} discarded wl_surface#903.enter(wl_output#409) -[2617924.557] {Default Queue} discarded wl_surface#903.enter(wl_output#441) -[2617924.561] {Default Queue} discarded wl_surface#903.enter(wl_output#473) -[2617924.564] {Default Queue} discarded wl_surface#903.enter(wl_output#505) -[2617924.568] {Default Queue} discarded wl_surface#903.enter(wl_output#537) -[2617924.572] {Default Queue} discarded wl_surface#903.enter(wl_output#569) -[2617924.576] {Default Queue} discarded wl_surface#903.enter(wl_output#601) -[2617924.580] {Default Queue} discarded wl_surface#903.enter(wl_output#633) -[2617924.584] {Default Queue} discarded wl_surface#903.enter(wl_output#665) -[2617924.588] {Default Queue} discarded wl_surface#903.enter(wl_output#697) -[2617924.592] {Default Queue} discarded wl_surface#903.enter(wl_output#729) -[2617924.596] {Default Queue} discarded wl_surface#903.enter(wl_output#761) -[2617924.600] {Default Queue} discarded wl_surface#903.enter(wl_output#793) -[2617924.604] {Default Queue} discarded wl_surface#903.enter(wl_output#825) -[2617924.607] {Default Queue} discarded wl_surface#903.enter(wl_output#857) -[2617924.611] {Default Queue} discarded wl_surface#903.enter(wl_output#889) -[2617924.615] {Default Queue} discarded wl_surface#903.enter(wl_output#921) -[2617924.620] {Default Queue} -> wl_compositor#908.create_surface(new id wl_surface#935) -[2617924.624] {Default Queue} -> wl_subcompositor#941.get_subsurface(new id wl_subsurface#954, wl_surface#935, wl_surface#903) -[2617924.629] {Default Queue} -> wl_subsurface#954.set_desync() -[2617924.633] {Default Queue} -> wl_subsurface#954.set_position(0, 0) -[2617924.638] {Default Queue} -> wl_subsurface#954.place_above(wl_surface#903) -[2617924.688] {Default Queue} -> wl_shm#943.create_pool(new id wl_shm_pool#955, fd 154, 16) -[2617924.695] {Default Queue} -> wl_shm#943.create_pool(new id wl_shm_pool#956, fd 155, 16) -[2617924.699] {Default Queue} -> wl_shm_pool#955.create_buffer(new id wl_buffer#957, 0, 2, 2, 8, 0) -[2617924.704] {Default Queue} -> wl_shm_pool#956.create_buffer(new id wl_buffer#958, 0, 2, 2, 8, 0) -[2617924.712] {Default Queue} -> wl_surface#935.attach(wl_buffer#957, 0, 0) -[2617924.717] {Default Queue} -> wl_surface#935.commit() -[2617924.723] {Default Queue} -> wl_surface#935.attach(wl_buffer#957, 0, 0) -[2617924.727] {Default Queue} -> wl_surface#935.commit() -[2617924.731] {Default Queue} -> wl_compositor#940.create_region(new id wl_region#959) -[2617924.736] {Default Queue} -> wl_compositor#940.create_region(new id wl_region#960) -[2617924.740] {Default Queue} -> wl_region#959.subtract(0, 0, 2, 2) -[2617924.744] {Default Queue} -> wl_region#959.add(0, 0, 0, 0) -[2617924.749] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) -[2617924.753] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) -[2617924.758] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) -[2617924.762] {Default Queue} -> wl_surface#903.damage(0, 0, 2, 2) -[2617924.769] {Default Queue} -> wl_surface#935.attach(wl_buffer#957, 0, 0) -[2617924.773] {Default Queue} -> wl_surface#935.commit() -[2617924.814] {Default Queue} -> wl_shm#945.create_pool(new id wl_shm_pool#961, fd 158, 640) -[2617924.822] {Default Queue} -> wl_shm#945.create_pool(new id wl_shm_pool#962, fd 159, 640) -[2617924.827] {Default Queue} -> wl_shm_pool#961.create_buffer(new id wl_buffer#963, 0, 10, 16, 40, 0) -[2617924.832] {Default Queue} -> wl_shm_pool#962.create_buffer(new id wl_buffer#964, 0, 10, 16, 40, 0) -[2617924.839] {Default Queue} -> wl_compositor#940.create_surface(new id wl_surface#965) -[2617924.846] {Default Queue} -> wl_surface#965.attach(wl_buffer#963, 0, 0) -[2617924.853] {Default Queue} -> wl_surface#965.commit() -[2617924.859] {Default Queue} -> wl_surface#965.attach(wl_buffer#963, 0, 0) -[2617924.877] {Default Queue} -> wl_surface#965.commit() -[2617924.884] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) -[2617924.891] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#966) -[2617924.897] {Default Queue} -> wl_display#1.sync(new id wl_callback#967) -[2617933.660] {Display Queue} wl_display#1.delete_id(967) -[2617933.672] {Default Queue} wl_keyboard#936.keymap(1, fd 154, 68213) -[2617933.677] {Default Queue} wl_keyboard#936.enter(566, wl_surface#19, array[0]) -[2617933.683] {Default Queue} wl_keyboard#936.modifiers(566, 0, 0, 16, 0) -[2617933.687] {Default Queue} discarded wl_shm#943.format(875709016) -[2617933.691] {Default Queue} discarded wl_shm#943.format(1) -[2617933.695] {Default Queue} discarded wl_shm#943.format(0) -[2617933.699] {Default Queue} discarded wl_shm#943.format(875708993) -[2617933.703] {Default Queue} discarded wl_shm#944.format(875709016) -[2617933.707] {Default Queue} discarded wl_shm#944.format(1) -[2617933.712] {Default Queue} discarded wl_shm#944.format(0) -[2617933.716] {Default Queue} discarded wl_shm#944.format(875708993) -[2617933.720] {Default Queue} discarded wl_shm#945.format(875709016) -[2617933.723] {Default Queue} discarded wl_shm#945.format(1) -[2617933.727] {Default Queue} discarded wl_shm#945.format(0) -[2617933.731] {Default Queue} discarded wl_shm#945.format(875708993) -[2617933.735] {Default Queue} wl_seat#952.capabilities(7) -[2617933.740] {Default Queue} -> wl_seat#952.get_keyboard(new id wl_keyboard#968) -[2617933.745] {Default Queue} -> wl_seat#952.get_pointer(new id wl_pointer#969) -[2617933.749] {Default Queue} -> wl_data_device_manager#948.get_data_device(new id wl_data_device#970, wl_seat#952) -[2617933.754] {Default Queue} -> zwp_primary_selection_device_manager_v1#950.get_device(new id zwp_primary_selection_device_v1#971, wl_seat#952) -[2617933.762] {Default Queue} wl_output#953.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617933.767] {Default Queue} wl_output#953.mode(3, 1280, 800, 60000) -[2617933.771] {Default Queue} discarded wl_surface#3.enter(wl_output#953) -[2617933.776] {Default Queue} discarded wl_surface#423.enter(wl_output#953) -[2617933.780] {Default Queue} discarded wl_surface#455.enter(wl_output#953) -[2617933.784] {Default Queue} discarded wl_surface#903.enter(wl_output#953) -[2617933.787] {Default Queue} discarded wl_surface#775.enter(wl_output#953) -[2617933.791] {Default Queue} discarded wl_surface#135.enter(wl_output#953) -[2617933.795] {Default Queue} discarded wl_surface#615.enter(wl_output#953) -[2617933.799] {Default Queue} discarded wl_surface#231.enter(wl_output#953) -[2617933.803] {Default Queue} discarded wl_surface#359.enter(wl_output#953) -[2617933.807] {Default Queue} discarded wl_surface#583.enter(wl_output#953) -[2617933.811] {Default Queue} discarded wl_surface#743.enter(wl_output#953) -[2617933.815] {Default Queue} discarded wl_surface#103.enter(wl_output#953) -[2617933.819] {Default Queue} discarded wl_surface#327.enter(wl_output#953) -[2617933.823] {Default Queue} discarded wl_surface#43.enter(wl_output#953) -[2617933.827] {Default Queue} discarded wl_surface#807.enter(wl_output#953) -[2617933.831] {Default Queue} discarded wl_surface#19.enter(wl_output#953) -[2617933.834] {Default Queue} discarded wl_surface#199.enter(wl_output#953) -[2617933.838] {Default Queue} discarded wl_surface#391.enter(wl_output#953) -[2617933.842] {Default Queue} discarded wl_surface#711.enter(wl_output#953) -[2617933.846] {Default Queue} discarded wl_surface#871.enter(wl_output#953) -[2617933.850] {Default Queue} discarded wl_surface#263.enter(wl_output#953) -[2617933.854] {Default Queue} discarded wl_surface#551.enter(wl_output#953) -[2617933.858] {Default Queue} discarded wl_surface#647.enter(wl_output#953) -[2617933.867] {Default Queue} discarded wl_surface#71.enter(wl_output#953) -[2617933.871] {Default Queue} discarded wl_surface#839.enter(wl_output#953) -[2617933.879] {Default Queue} discarded wl_surface#487.enter(wl_output#953) -[2617933.886] {Default Queue} discarded wl_surface#519.enter(wl_output#953) -[2617933.891] {Default Queue} discarded wl_surface#295.enter(wl_output#953) -[2617933.895] {Default Queue} discarded wl_surface#167.enter(wl_output#953) -[2617933.898] {Default Queue} discarded wl_surface#679.enter(wl_output#953) -[2617933.903] {Default Queue} wl_registry#966.global(1, "wl_compositor", 6) -[2617933.908] {Default Queue} -> wl_registry#966.bind(1, "wl_compositor", 1, new id [unknown]#972) -[2617933.912] {Default Queue} wl_registry#966.global(2, "wl_subcompositor", 1) -[2617933.917] {Default Queue} -> wl_registry#966.bind(2, "wl_subcompositor", 1, new id [unknown]#973) -[2617933.921] {Default Queue} wl_registry#966.global(3, "xdg_wm_base", 6) -[2617933.926] {Default Queue} -> wl_registry#966.bind(3, "xdg_wm_base", 1, new id [unknown]#974) -[2617933.930] {Default Queue} wl_registry#966.global(6, "zwlr_layer_shell_v1", 5) -[2617933.935] {Default Queue} wl_registry#966.global(7, "ext_session_lock_manager_v1", 1) -[2617933.939] {Default Queue} wl_registry#966.global(8, "wl_shm", 2) -[2617933.943] {Default Queue} -> wl_registry#966.bind(8, "wl_shm", 1, new id [unknown]#975) -[2617933.948] {Default Queue} -> wl_registry#966.bind(8, "wl_shm", 1, new id [unknown]#976) -[2617933.952] {Default Queue} -> wl_registry#966.bind(8, "wl_shm", 1, new id [unknown]#977) -[2617933.956] {Default Queue} wl_registry#966.global(9, "zxdg_output_manager_v1", 3) -[2617933.961] {Default Queue} wl_registry#966.global(10, "wp_fractional_scale_manager_v1", 1) -[2617933.965] {Default Queue} wl_registry#966.global(11, "zwp_tablet_manager_v2", 1) -[2617933.970] {Default Queue} wl_registry#966.global(12, "zwp_pointer_gestures_v1", 3) -[2617933.974] {Default Queue} wl_registry#966.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617933.978] {Default Queue} -> wl_registry#966.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#978) -[2617933.983] {Default Queue} wl_registry#966.global(14, "zwp_pointer_constraints_v1", 1) -[2617933.987] {Default Queue} -> wl_registry#966.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#979) -[2617933.992] {Default Queue} wl_registry#966.global(15, "ext_idle_notifier_v1", 2) -[2617933.996] {Default Queue} wl_registry#966.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617934.001] {Default Queue} wl_registry#966.global(17, "wl_data_device_manager", 3) -[2617934.005] {Default Queue} -> wl_registry#966.bind(17, "wl_data_device_manager", 2, new id [unknown]#980) -[2617934.010] {Default Queue} -> wl_data_device_manager#980.create_data_source(new id wl_data_source#981) -[2617934.014] {Default Queue} -> wl_data_source#981.offer("text/plain") -[2617934.019] {Default Queue} -> wl_data_source#981.offer("text/plain;charset=utf-8") -[2617934.023] {Default Queue} -> wl_data_source#981.offer("TEXT") -[2617934.027] {Default Queue} -> wl_data_source#981.offer("STRING") -[2617934.032] {Default Queue} -> wl_data_source#981.offer("UTF8_STRING") -[2617934.037] {Default Queue} wl_registry#966.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617934.041] {Default Queue} -> wl_registry#966.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#982) -[2617934.046] {Default Queue} -> zwp_primary_selection_device_manager_v1#982.create_source(new id zwp_primary_selection_source_v1#983) -[2617934.053] {Default Queue} -> zwp_primary_selection_source_v1#983.offer("text/plain") -[2617934.057] {Default Queue} -> zwp_primary_selection_source_v1#983.offer("text/plain;charset=utf-8") -[2617934.061] {Default Queue} -> zwp_primary_selection_source_v1#983.offer("TEXT") -[2617934.065] {Default Queue} -> zwp_primary_selection_source_v1#983.offer("STRING") -[2617934.069] {Default Queue} -> zwp_primary_selection_source_v1#983.offer("UTF8_STRING") -[2617934.073] {Default Queue} wl_registry#966.global(19, "zwlr_data_control_manager_v1", 2) -[2617934.078] {Default Queue} wl_registry#966.global(20, "ext_data_control_manager_v1", 1) -[2617934.082] {Default Queue} wl_registry#966.global(21, "wp_presentation", 2) -[2617934.090] {Default Queue} wl_registry#966.global(22, "wp_security_context_manager_v1", 1) -[2617934.096] {Default Queue} wl_registry#966.global(23, "zwp_text_input_manager_v3", 1) -[2617934.100] {Default Queue} wl_registry#966.global(24, "zwp_input_method_manager_v2", 1) -[2617934.104] {Default Queue} wl_registry#966.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617934.109] {Default Queue} wl_registry#966.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617934.113] {Default Queue} wl_registry#966.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617934.117] {Default Queue} wl_registry#966.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617934.122] {Default Queue} wl_registry#966.global(29, "ext_workspace_manager_v1", 1) -[2617934.126] {Default Queue} wl_registry#966.global(30, "zwlr_output_manager_v1", 4) -[2617934.131] {Default Queue} wl_registry#966.global(31, "zwlr_screencopy_manager_v1", 3) -[2617934.135] {Default Queue} wl_registry#966.global(32, "wp_viewporter", 1) -[2617934.139] {Default Queue} wl_registry#966.global(33, "zxdg_exporter_v2", 1) -[2617934.143] {Default Queue} wl_registry#966.global(34, "zxdg_importer_v2", 1) -[2617934.148] {Default Queue} wl_registry#966.global(36, "xdg_activation_v1", 1) -[2617934.152] {Default Queue} wl_registry#966.global(37, "mutter_x11_interop", 1) -[2617934.156] {Default Queue} wl_registry#966.global(38, "wl_seat", 9) -[2617934.162] {Default Queue} -> wl_registry#966.bind(38, "wl_seat", 1, new id [unknown]#984) -[2617934.166] {Default Queue} wl_registry#966.global(39, "wp_cursor_shape_manager_v1", 2) -[2617934.170] {Default Queue} wl_registry#966.global(40, "wl_output", 4) -[2617934.175] {Default Queue} -> wl_registry#966.bind(40, "wl_output", 1, new id [unknown]#985) -[2617934.179] {Default Queue} wl_callback#967.done(0) -[2617934.184] {Default Queue} discarded wl_surface#935.enter(wl_output#18) -[2617934.188] {Default Queue} discarded wl_surface#935.enter(wl_output#57) -[2617934.192] {Default Queue} discarded wl_surface#935.enter(wl_output#89) -[2617934.196] {Default Queue} discarded wl_surface#935.enter(wl_output#121) -[2617934.200] {Default Queue} discarded wl_surface#935.enter(wl_output#153) -[2617934.204] {Default Queue} discarded wl_surface#935.enter(wl_output#185) -[2617934.208] {Default Queue} discarded wl_surface#935.enter(wl_output#217) -[2617934.212] {Default Queue} discarded wl_surface#935.enter(wl_output#249) -[2617934.216] {Default Queue} discarded wl_surface#935.enter(wl_output#281) -[2617934.220] {Default Queue} discarded wl_surface#935.enter(wl_output#313) -[2617934.223] {Default Queue} discarded wl_surface#935.enter(wl_output#345) -[2617934.227] {Default Queue} discarded wl_surface#935.enter(wl_output#377) -[2617934.231] {Default Queue} discarded wl_surface#935.enter(wl_output#409) -[2617934.235] {Default Queue} discarded wl_surface#935.enter(wl_output#441) -[2617934.239] {Default Queue} discarded wl_surface#935.enter(wl_output#473) -[2617934.243] {Default Queue} discarded wl_surface#935.enter(wl_output#505) -[2617934.247] {Default Queue} discarded wl_surface#935.enter(wl_output#537) -[2617934.251] {Default Queue} discarded wl_surface#935.enter(wl_output#569) -[2617934.255] {Default Queue} discarded wl_surface#935.enter(wl_output#601) -[2617934.259] {Default Queue} discarded wl_surface#935.enter(wl_output#633) -[2617934.263] {Default Queue} discarded wl_surface#935.enter(wl_output#665) -[2617934.266] {Default Queue} discarded wl_surface#935.enter(wl_output#697) -[2617934.270] {Default Queue} discarded wl_surface#935.enter(wl_output#729) -[2617934.274] {Default Queue} discarded wl_surface#935.enter(wl_output#761) -[2617934.278] {Default Queue} discarded wl_surface#935.enter(wl_output#793) -[2617934.282] {Default Queue} discarded wl_surface#935.enter(wl_output#825) -[2617934.286] {Default Queue} discarded wl_surface#935.enter(wl_output#857) -[2617934.290] {Default Queue} discarded wl_surface#935.enter(wl_output#889) -[2617934.294] {Default Queue} discarded wl_surface#935.enter(wl_output#921) -[2617934.298] {Default Queue} discarded wl_surface#935.enter(wl_output#953) -[2617934.305] {Default Queue} -> wl_compositor#940.create_surface(new id wl_surface#967) -[2617934.311] {Default Queue} -> wl_subcompositor#973.get_subsurface(new id wl_subsurface#986, wl_surface#967, wl_surface#935) -[2617934.315] {Default Queue} -> wl_subsurface#986.set_desync() -[2617934.320] {Default Queue} -> wl_subsurface#986.set_position(0, 0) -[2617934.324] {Default Queue} -> wl_subsurface#986.place_above(wl_surface#935) -[2617934.368] {Default Queue} -> wl_shm#975.create_pool(new id wl_shm_pool#987, fd 159, 16) -[2617934.374] {Default Queue} -> wl_shm#975.create_pool(new id wl_shm_pool#988, fd 160, 16) -[2617934.379] {Default Queue} -> wl_shm_pool#987.create_buffer(new id wl_buffer#989, 0, 2, 2, 8, 0) -[2617934.383] {Default Queue} -> wl_shm_pool#988.create_buffer(new id wl_buffer#990, 0, 2, 2, 8, 0) -[2617934.393] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) -[2617934.398] {Default Queue} -> wl_surface#967.commit() -[2617934.404] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) -[2617934.408] {Default Queue} -> wl_surface#967.commit() -[2617934.412] {Default Queue} -> wl_compositor#972.create_region(new id wl_region#991) -[2617934.417] {Default Queue} -> wl_compositor#972.create_region(new id wl_region#992) -[2617934.421] {Default Queue} -> wl_region#991.subtract(0, 0, 2, 2) -[2617934.426] {Default Queue} -> wl_region#991.add(0, 0, 0, 0) -[2617934.430] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2617934.435] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2617934.439] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2617934.443] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) -[2617934.451] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) -[2617934.455] {Default Queue} -> wl_surface#967.commit() -[2617934.488] {Default Queue} -> wl_shm#977.create_pool(new id wl_shm_pool#993, fd 163, 640) -[2617934.494] {Default Queue} -> wl_shm#977.create_pool(new id wl_shm_pool#994, fd 164, 640) -[2617934.499] {Default Queue} -> wl_shm_pool#993.create_buffer(new id wl_buffer#995, 0, 10, 16, 40, 0) -[2617934.503] {Default Queue} -> wl_shm_pool#994.create_buffer(new id wl_buffer#996, 0, 10, 16, 40, 0) -[2617934.510] {Default Queue} -> wl_compositor#972.create_surface(new id wl_surface#997) -[2617934.515] {Default Queue} -> wl_surface#997.attach(wl_buffer#995, 0, 0) -[2617934.521] {Default Queue} -> wl_surface#997.commit() -[2617934.528] {Default Queue} -> wl_surface#997.attach(wl_buffer#995, 0, 0) -[2617934.535] {Default Queue} -> wl_surface#997.commit() -[2617934.544] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) -[2617934.553] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2617934.560] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2617934.571] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#998) -[2617934.578] {Default Queue} -> wl_display#1.sync(new id wl_callback#999) -[2617938.677] {Display Queue} wl_display#1.delete_id(999) -[2617938.692] {Default Queue} wl_keyboard#968.keymap(1, fd 159, 68213) -[2617938.699] {Default Queue} wl_keyboard#968.enter(566, wl_surface#19, array[0]) -[2617938.706] {Default Queue} wl_keyboard#968.modifiers(566, 0, 0, 16, 0) -[2617938.711] {Default Queue} discarded wl_shm#975.format(875709016) -[2617938.716] {Default Queue} discarded wl_shm#975.format(1) -[2617938.721] {Default Queue} discarded wl_shm#975.format(0) -[2617938.726] {Default Queue} discarded wl_shm#975.format(875708993) -[2617938.731] {Default Queue} discarded wl_shm#976.format(875709016) -[2617938.736] {Default Queue} discarded wl_shm#976.format(1) -[2617938.740] {Default Queue} discarded wl_shm#976.format(0) -[2617938.745] {Default Queue} discarded wl_shm#976.format(875708993) -[2617938.751] {Default Queue} discarded wl_shm#977.format(875709016) -[2617938.755] {Default Queue} discarded wl_shm#977.format(1) -[2617938.760] {Default Queue} discarded wl_shm#977.format(0) -[2617938.765] {Default Queue} discarded wl_shm#977.format(875708993) -[2617938.771] {Default Queue} wl_seat#984.capabilities(7) -[2617938.781] {Default Queue} -> wl_seat#984.get_keyboard(new id wl_keyboard#1000) -[2617938.790] {Default Queue} -> wl_seat#984.get_pointer(new id wl_pointer#1001) -[2617938.796] {Default Queue} -> wl_data_device_manager#980.get_data_device(new id wl_data_device#1002, wl_seat#984) -[2617938.802] {Default Queue} -> zwp_primary_selection_device_manager_v1#982.get_device(new id zwp_primary_selection_device_v1#1003, wl_seat#984) -[2617938.811] {Default Queue} wl_output#985.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617938.818] {Default Queue} wl_output#985.mode(3, 1280, 800, 60000) -[2617938.823] {Default Queue} discarded wl_surface#3.enter(wl_output#985) -[2617938.828] {Default Queue} discarded wl_surface#423.enter(wl_output#985) -[2617938.833] {Default Queue} discarded wl_surface#455.enter(wl_output#985) -[2617938.838] {Default Queue} discarded wl_surface#903.enter(wl_output#985) -[2617938.843] {Default Queue} discarded wl_surface#775.enter(wl_output#985) -[2617938.847] {Default Queue} discarded wl_surface#135.enter(wl_output#985) -[2617938.852] {Default Queue} discarded wl_surface#615.enter(wl_output#985) -[2617938.857] {Default Queue} discarded wl_surface#231.enter(wl_output#985) -[2617938.868] {Default Queue} discarded wl_surface#359.enter(wl_output#985) -[2617938.873] {Default Queue} discarded wl_surface#583.enter(wl_output#985) -[2617938.878] {Default Queue} discarded wl_surface#743.enter(wl_output#985) -[2617938.883] {Default Queue} discarded wl_surface#103.enter(wl_output#985) -[2617938.888] {Default Queue} discarded wl_surface#327.enter(wl_output#985) -[2617938.893] {Default Queue} discarded wl_surface#43.enter(wl_output#985) -[2617938.897] {Default Queue} discarded wl_surface#807.enter(wl_output#985) -[2617938.902] {Default Queue} discarded wl_surface#19.enter(wl_output#985) -[2617938.907] {Default Queue} discarded wl_surface#199.enter(wl_output#985) -[2617938.912] {Default Queue} discarded wl_surface#391.enter(wl_output#985) -[2617938.917] {Default Queue} discarded wl_surface#935.enter(wl_output#985) -[2617938.922] {Default Queue} discarded wl_surface#711.enter(wl_output#985) -[2617938.927] {Default Queue} discarded wl_surface#871.enter(wl_output#985) -[2617938.934] {Default Queue} discarded wl_surface#263.enter(wl_output#985) -[2617938.939] {Default Queue} discarded wl_surface#551.enter(wl_output#985) -[2617938.944] {Default Queue} discarded wl_surface#647.enter(wl_output#985) -[2617938.949] {Default Queue} discarded wl_surface#71.enter(wl_output#985) -[2617938.954] {Default Queue} discarded wl_surface#839.enter(wl_output#985) -[2617938.959] {Default Queue} discarded wl_surface#487.enter(wl_output#985) -[2617938.964] {Default Queue} discarded wl_surface#519.enter(wl_output#985) -[2617938.968] {Default Queue} discarded wl_surface#295.enter(wl_output#985) -[2617938.973] {Default Queue} discarded wl_surface#167.enter(wl_output#985) -[2617938.978] {Default Queue} discarded wl_surface#679.enter(wl_output#985) -[2617938.983] {Default Queue} wl_registry#998.global(1, "wl_compositor", 6) -[2617938.989] {Default Queue} -> wl_registry#998.bind(1, "wl_compositor", 1, new id [unknown]#1004) -[2617938.995] {Default Queue} wl_registry#998.global(2, "wl_subcompositor", 1) -[2617939.002] {Default Queue} -> wl_registry#998.bind(2, "wl_subcompositor", 1, new id [unknown]#1005) -[2617939.007] {Default Queue} wl_registry#998.global(3, "xdg_wm_base", 6) -[2617939.013] {Default Queue} -> wl_registry#998.bind(3, "xdg_wm_base", 1, new id [unknown]#1006) -[2617939.019] {Default Queue} wl_registry#998.global(6, "zwlr_layer_shell_v1", 5) -[2617939.024] {Default Queue} wl_registry#998.global(7, "ext_session_lock_manager_v1", 1) -[2617939.030] {Default Queue} wl_registry#998.global(8, "wl_shm", 2) -[2617939.036] {Default Queue} -> wl_registry#998.bind(8, "wl_shm", 1, new id [unknown]#1007) -[2617939.042] {Default Queue} -> wl_registry#998.bind(8, "wl_shm", 1, new id [unknown]#1008) -[2617939.048] {Default Queue} -> wl_registry#998.bind(8, "wl_shm", 1, new id [unknown]#1009) -[2617939.053] {Default Queue} wl_registry#998.global(9, "zxdg_output_manager_v1", 3) -[2617939.062] {Default Queue} wl_registry#998.global(10, "wp_fractional_scale_manager_v1", 1) -[2617939.070] {Default Queue} wl_registry#998.global(11, "zwp_tablet_manager_v2", 1) -[2617939.075] {Default Queue} wl_registry#998.global(12, "zwp_pointer_gestures_v1", 3) -[2617939.081] {Default Queue} wl_registry#998.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617939.086] {Default Queue} -> wl_registry#998.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1010) -[2617939.092] {Default Queue} wl_registry#998.global(14, "zwp_pointer_constraints_v1", 1) -[2617939.097] {Default Queue} -> wl_registry#998.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1011) -[2617939.103] {Default Queue} wl_registry#998.global(15, "ext_idle_notifier_v1", 2) -[2617939.108] {Default Queue} wl_registry#998.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617939.114] {Default Queue} wl_registry#998.global(17, "wl_data_device_manager", 3) -[2617939.120] {Default Queue} -> wl_registry#998.bind(17, "wl_data_device_manager", 2, new id [unknown]#1012) -[2617939.125] {Default Queue} -> wl_data_device_manager#1012.create_data_source(new id wl_data_source#1013) -[2617939.131] {Default Queue} -> wl_data_source#1013.offer("text/plain") -[2617939.136] {Default Queue} -> wl_data_source#1013.offer("text/plain;charset=utf-8") -[2617939.141] {Default Queue} -> wl_data_source#1013.offer("TEXT") -[2617939.146] {Default Queue} -> wl_data_source#1013.offer("STRING") -[2617939.151] {Default Queue} -> wl_data_source#1013.offer("UTF8_STRING") -[2617939.156] {Default Queue} wl_registry#998.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617939.162] {Default Queue} -> wl_registry#998.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1014) -[2617939.168] {Default Queue} -> zwp_primary_selection_device_manager_v1#1014.create_source(new id zwp_primary_selection_source_v1#1015) -[2617939.177] {Default Queue} -> zwp_primary_selection_source_v1#1015.offer("text/plain") -[2617939.182] {Default Queue} -> zwp_primary_selection_source_v1#1015.offer("text/plain;charset=utf-8") -[2617939.188] {Default Queue} -> zwp_primary_selection_source_v1#1015.offer("TEXT") -[2617939.193] {Default Queue} -> zwp_primary_selection_source_v1#1015.offer("STRING") -[2617939.198] {Default Queue} -> zwp_primary_selection_source_v1#1015.offer("UTF8_STRING") -[2617939.203] {Default Queue} wl_registry#998.global(19, "zwlr_data_control_manager_v1", 2) -[2617939.208] {Default Queue} wl_registry#998.global(20, "ext_data_control_manager_v1", 1) -[2617939.214] {Default Queue} wl_registry#998.global(21, "wp_presentation", 2) -[2617939.219] {Default Queue} wl_registry#998.global(22, "wp_security_context_manager_v1", 1) -[2617939.225] {Default Queue} wl_registry#998.global(23, "zwp_text_input_manager_v3", 1) -[2617939.230] {Default Queue} wl_registry#998.global(24, "zwp_input_method_manager_v2", 1) -[2617939.235] {Default Queue} wl_registry#998.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617939.241] {Default Queue} wl_registry#998.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617939.246] {Default Queue} wl_registry#998.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617939.252] {Default Queue} wl_registry#998.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617939.257] {Default Queue} wl_registry#998.global(29, "ext_workspace_manager_v1", 1) -[2617939.262] {Default Queue} wl_registry#998.global(30, "zwlr_output_manager_v1", 4) -[2617939.268] {Default Queue} wl_registry#998.global(31, "zwlr_screencopy_manager_v1", 3) -[2617939.273] {Default Queue} wl_registry#998.global(32, "wp_viewporter", 1) -[2617939.279] {Default Queue} wl_registry#998.global(33, "zxdg_exporter_v2", 1) -[2617939.284] {Default Queue} wl_registry#998.global(34, "zxdg_importer_v2", 1) -[2617939.290] {Default Queue} wl_registry#998.global(36, "xdg_activation_v1", 1) -[2617939.295] {Default Queue} wl_registry#998.global(37, "mutter_x11_interop", 1) -[2617939.301] {Default Queue} wl_registry#998.global(38, "wl_seat", 9) -[2617939.306] {Default Queue} -> wl_registry#998.bind(38, "wl_seat", 1, new id [unknown]#1016) -[2617939.315] {Default Queue} wl_registry#998.global(39, "wp_cursor_shape_manager_v1", 2) -[2617939.323] {Default Queue} wl_registry#998.global(40, "wl_output", 4) -[2617939.328] {Default Queue} -> wl_registry#998.bind(40, "wl_output", 1, new id [unknown]#1017) -[2617939.334] {Default Queue} wl_callback#999.done(0) -[2617939.339] {Default Queue} discarded wl_surface#967.enter(wl_output#18) -[2617939.344] {Default Queue} discarded wl_surface#967.enter(wl_output#57) -[2617939.349] {Default Queue} discarded wl_surface#967.enter(wl_output#89) -[2617939.354] {Default Queue} discarded wl_surface#967.enter(wl_output#121) -[2617939.359] {Default Queue} discarded wl_surface#967.enter(wl_output#153) -[2617939.364] {Default Queue} discarded wl_surface#967.enter(wl_output#185) -[2617939.369] {Default Queue} discarded wl_surface#967.enter(wl_output#217) -[2617939.374] {Default Queue} discarded wl_surface#967.enter(wl_output#249) -[2617939.379] {Default Queue} discarded wl_surface#967.enter(wl_output#281) -[2617939.384] {Default Queue} discarded wl_surface#967.enter(wl_output#313) -[2617939.389] {Default Queue} discarded wl_surface#967.enter(wl_output#345) -[2617939.393] {Default Queue} discarded wl_surface#967.enter(wl_output#377) -[2617939.398] {Default Queue} discarded wl_surface#967.enter(wl_output#409) -[2617939.403] {Default Queue} discarded wl_surface#967.enter(wl_output#441) -[2617939.408] {Default Queue} discarded wl_surface#967.enter(wl_output#473) -[2617939.413] {Default Queue} discarded wl_surface#967.enter(wl_output#505) -[2617939.418] {Default Queue} discarded wl_surface#967.enter(wl_output#537) -[2617939.422] {Default Queue} discarded wl_surface#967.enter(wl_output#569) -[2617939.427] {Default Queue} discarded wl_surface#967.enter(wl_output#601) -[2617939.432] {Default Queue} discarded wl_surface#967.enter(wl_output#633) -[2617939.438] {Default Queue} discarded wl_surface#967.enter(wl_output#665) -[2617939.442] {Default Queue} discarded wl_surface#967.enter(wl_output#697) -[2617939.447] {Default Queue} discarded wl_surface#967.enter(wl_output#729) -[2617939.452] {Default Queue} discarded wl_surface#967.enter(wl_output#761) -[2617939.457] {Default Queue} discarded wl_surface#967.enter(wl_output#793) -[2617939.462] {Default Queue} discarded wl_surface#967.enter(wl_output#825) -[2617939.467] {Default Queue} discarded wl_surface#967.enter(wl_output#857) -[2617939.472] {Default Queue} discarded wl_surface#967.enter(wl_output#889) -[2617939.476] {Default Queue} discarded wl_surface#967.enter(wl_output#921) -[2617939.481] {Default Queue} discarded wl_surface#967.enter(wl_output#953) -[2617939.486] {Default Queue} discarded wl_surface#967.enter(wl_output#985) -[2617939.491] {Default Queue} -> wl_compositor#940.create_surface(new id wl_surface#999) -[2617939.497] {Default Queue} -> wl_subcompositor#1005.get_subsurface(new id wl_subsurface#1018, wl_surface#999, wl_surface#935) -[2617939.507] {Default Queue} -> wl_subsurface#1018.set_desync() -[2617939.512] {Default Queue} -> wl_subsurface#1018.set_position(0, 0) -[2617939.518] {Default Queue} -> wl_subsurface#1018.place_above(wl_surface#935) -[2617939.570] {Default Queue} -> wl_shm#1007.create_pool(new id wl_shm_pool#1019, fd 164, 16) -[2617939.578] {Default Queue} -> wl_shm#1007.create_pool(new id wl_shm_pool#1020, fd 165, 16) -[2617939.583] {Default Queue} -> wl_shm_pool#1019.create_buffer(new id wl_buffer#1021, 0, 2, 2, 8, 0) -[2617939.588] {Default Queue} -> wl_shm_pool#1020.create_buffer(new id wl_buffer#1022, 0, 2, 2, 8, 0) -[2617939.596] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) -[2617939.603] {Default Queue} -> wl_surface#999.commit() -[2617939.608] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) -[2617939.612] {Default Queue} -> wl_surface#999.commit() -[2617939.617] {Default Queue} -> wl_compositor#1004.create_region(new id wl_region#1023) -[2617939.625] {Default Queue} -> wl_compositor#1004.create_region(new id wl_region#1024) -[2617939.637] {Default Queue} -> wl_region#1023.subtract(0, 0, 2, 2) -[2617939.649] {Default Queue} -> wl_region#1023.add(0, 0, 0, 0) -[2617939.657] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) -[2617939.663] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) -[2617939.667] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) -[2617939.672] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) -[2617939.679] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) -[2617939.683] {Default Queue} -> wl_surface#999.commit() -[2617939.720] {Default Queue} -> wl_shm#1009.create_pool(new id wl_shm_pool#1025, fd 168, 640) -[2617939.727] {Default Queue} -> wl_shm#1009.create_pool(new id wl_shm_pool#1026, fd 169, 640) -[2617939.731] {Default Queue} -> wl_shm_pool#1025.create_buffer(new id wl_buffer#1027, 0, 10, 16, 40, 0) -[2617939.736] {Default Queue} -> wl_shm_pool#1026.create_buffer(new id wl_buffer#1028, 0, 10, 16, 40, 0) -[2617939.743] {Default Queue} -> wl_compositor#1004.create_surface(new id wl_surface#1029) -[2617939.747] {Default Queue} -> wl_surface#1029.attach(wl_buffer#1027, 0, 0) -[2617939.752] {Default Queue} -> wl_surface#1029.commit() -[2617939.758] {Default Queue} -> wl_surface#1029.attach(wl_buffer#1027, 0, 0) -[2617939.762] {Default Queue} -> wl_surface#1029.commit() -[2617939.766] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) -[2617939.773] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1030) -[2617939.778] {Default Queue} -> wl_display#1.sync(new id wl_callback#1031) -[2617943.684] {Display Queue} wl_display#1.delete_id(1031) -[2617943.696] {Default Queue} wl_keyboard#1000.keymap(1, fd 164, 68213) -[2617943.701] {Default Queue} wl_keyboard#1000.enter(566, wl_surface#19, array[0]) -[2617943.707] {Default Queue} wl_keyboard#1000.modifiers(566, 0, 0, 16, 0) -[2617943.712] {Default Queue} discarded wl_shm#1007.format(875709016) -[2617943.716] {Default Queue} discarded wl_shm#1007.format(1) -[2617943.719] {Default Queue} discarded wl_shm#1007.format(0) -[2617943.723] {Default Queue} discarded wl_shm#1007.format(875708993) -[2617943.727] {Default Queue} discarded wl_shm#1008.format(875709016) -[2617943.731] {Default Queue} discarded wl_shm#1008.format(1) -[2617943.735] {Default Queue} discarded wl_shm#1008.format(0) -[2617943.739] {Default Queue} discarded wl_shm#1008.format(875708993) -[2617943.743] {Default Queue} discarded wl_shm#1009.format(875709016) -[2617943.747] {Default Queue} discarded wl_shm#1009.format(1) -[2617943.751] {Default Queue} discarded wl_shm#1009.format(0) -[2617943.754] {Default Queue} discarded wl_shm#1009.format(875708993) -[2617943.758] {Default Queue} wl_seat#1016.capabilities(7) -[2617943.763] {Default Queue} -> wl_seat#1016.get_keyboard(new id wl_keyboard#1032) -[2617943.767] {Default Queue} -> wl_seat#1016.get_pointer(new id wl_pointer#1033) -[2617943.772] {Default Queue} -> wl_data_device_manager#1012.get_data_device(new id wl_data_device#1034, wl_seat#1016) -[2617943.777] {Default Queue} -> zwp_primary_selection_device_manager_v1#1014.get_device(new id zwp_primary_selection_device_v1#1035, wl_seat#1016) -[2617943.785] {Default Queue} wl_output#1017.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617943.790] {Default Queue} wl_output#1017.mode(3, 1280, 800, 60000) -[2617943.795] {Default Queue} discarded wl_surface#3.enter(wl_output#1017) -[2617943.799] {Default Queue} discarded wl_surface#423.enter(wl_output#1017) -[2617943.803] {Default Queue} discarded wl_surface#455.enter(wl_output#1017) -[2617943.807] {Default Queue} discarded wl_surface#903.enter(wl_output#1017) -[2617943.811] {Default Queue} discarded wl_surface#775.enter(wl_output#1017) -[2617943.815] {Default Queue} discarded wl_surface#135.enter(wl_output#1017) -[2617943.819] {Default Queue} discarded wl_surface#615.enter(wl_output#1017) -[2617943.823] {Default Queue} discarded wl_surface#231.enter(wl_output#1017) -[2617943.827] {Default Queue} discarded wl_surface#359.enter(wl_output#1017) -[2617943.831] {Default Queue} discarded wl_surface#583.enter(wl_output#1017) -[2617943.835] {Default Queue} discarded wl_surface#743.enter(wl_output#1017) -[2617943.839] {Default Queue} discarded wl_surface#967.enter(wl_output#1017) -[2617943.849] {Default Queue} discarded wl_surface#103.enter(wl_output#1017) -[2617943.856] {Default Queue} discarded wl_surface#327.enter(wl_output#1017) -[2617943.859] {Default Queue} discarded wl_surface#43.enter(wl_output#1017) -[2617943.868] {Default Queue} discarded wl_surface#807.enter(wl_output#1017) -[2617943.872] {Default Queue} discarded wl_surface#19.enter(wl_output#1017) -[2617943.876] {Default Queue} discarded wl_surface#199.enter(wl_output#1017) -[2617943.879] {Default Queue} discarded wl_surface#391.enter(wl_output#1017) -[2617943.883] {Default Queue} discarded wl_surface#935.enter(wl_output#1017) -[2617943.887] {Default Queue} discarded wl_surface#711.enter(wl_output#1017) -[2617943.891] {Default Queue} discarded wl_surface#871.enter(wl_output#1017) -[2617943.895] {Default Queue} discarded wl_surface#263.enter(wl_output#1017) -[2617943.899] {Default Queue} discarded wl_surface#551.enter(wl_output#1017) -[2617943.903] {Default Queue} discarded wl_surface#647.enter(wl_output#1017) -[2617943.907] {Default Queue} discarded wl_surface#71.enter(wl_output#1017) -[2617943.911] {Default Queue} discarded wl_surface#839.enter(wl_output#1017) -[2617943.915] {Default Queue} discarded wl_surface#487.enter(wl_output#1017) -[2617943.919] {Default Queue} discarded wl_surface#519.enter(wl_output#1017) -[2617943.923] {Default Queue} discarded wl_surface#295.enter(wl_output#1017) -[2617943.927] {Default Queue} discarded wl_surface#167.enter(wl_output#1017) -[2617943.931] {Default Queue} discarded wl_surface#679.enter(wl_output#1017) -[2617943.935] {Default Queue} wl_registry#1030.global(1, "wl_compositor", 6) -[2617943.941] {Default Queue} -> wl_registry#1030.bind(1, "wl_compositor", 1, new id [unknown]#1036) -[2617943.946] {Default Queue} wl_registry#1030.global(2, "wl_subcompositor", 1) -[2617943.951] {Default Queue} -> wl_registry#1030.bind(2, "wl_subcompositor", 1, new id [unknown]#1037) -[2617943.955] {Default Queue} wl_registry#1030.global(3, "xdg_wm_base", 6) -[2617943.960] {Default Queue} -> wl_registry#1030.bind(3, "xdg_wm_base", 1, new id [unknown]#1038) -[2617943.965] {Default Queue} wl_registry#1030.global(6, "zwlr_layer_shell_v1", 5) -[2617943.969] {Default Queue} wl_registry#1030.global(7, "ext_session_lock_manager_v1", 1) -[2617943.974] {Default Queue} wl_registry#1030.global(8, "wl_shm", 2) -[2617943.978] {Default Queue} -> wl_registry#1030.bind(8, "wl_shm", 1, new id [unknown]#1039) -[2617943.983] {Default Queue} -> wl_registry#1030.bind(8, "wl_shm", 1, new id [unknown]#1040) -[2617943.987] {Default Queue} -> wl_registry#1030.bind(8, "wl_shm", 1, new id [unknown]#1041) -[2617943.992] {Default Queue} wl_registry#1030.global(9, "zxdg_output_manager_v1", 3) -[2617943.996] {Default Queue} wl_registry#1030.global(10, "wp_fractional_scale_manager_v1", 1) -[2617944.000] {Default Queue} wl_registry#1030.global(11, "zwp_tablet_manager_v2", 1) -[2617944.005] {Default Queue} wl_registry#1030.global(12, "zwp_pointer_gestures_v1", 3) -[2617944.009] {Default Queue} wl_registry#1030.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617944.013] {Default Queue} -> wl_registry#1030.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1042) -[2617944.018] {Default Queue} wl_registry#1030.global(14, "zwp_pointer_constraints_v1", 1) -[2617944.022] {Default Queue} -> wl_registry#1030.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1043) -[2617944.027] {Default Queue} wl_registry#1030.global(15, "ext_idle_notifier_v1", 2) -[2617944.031] {Default Queue} wl_registry#1030.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617944.036] {Default Queue} wl_registry#1030.global(17, "wl_data_device_manager", 3) -[2617944.040] {Default Queue} -> wl_registry#1030.bind(17, "wl_data_device_manager", 2, new id [unknown]#1044) -[2617944.045] {Default Queue} -> wl_data_device_manager#1044.create_data_source(new id wl_data_source#1045) -[2617944.049] {Default Queue} -> wl_data_source#1045.offer("text/plain") -[2617944.053] {Default Queue} -> wl_data_source#1045.offer("text/plain;charset=utf-8") -[2617944.058] {Default Queue} -> wl_data_source#1045.offer("TEXT") -[2617944.065] {Default Queue} -> wl_data_source#1045.offer("STRING") -[2617944.070] {Default Queue} -> wl_data_source#1045.offer("UTF8_STRING") -[2617944.074] {Default Queue} wl_registry#1030.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617944.079] {Default Queue} -> wl_registry#1030.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1046) -[2617944.087] {Default Queue} -> zwp_primary_selection_device_manager_v1#1046.create_source(new id zwp_primary_selection_source_v1#1047) -[2617944.095] {Default Queue} -> zwp_primary_selection_source_v1#1047.offer("text/plain") -[2617944.099] {Default Queue} -> zwp_primary_selection_source_v1#1047.offer("text/plain;charset=utf-8") -[2617944.103] {Default Queue} -> zwp_primary_selection_source_v1#1047.offer("TEXT") -[2617944.107] {Default Queue} -> zwp_primary_selection_source_v1#1047.offer("STRING") -[2617944.111] {Default Queue} -> zwp_primary_selection_source_v1#1047.offer("UTF8_STRING") -[2617944.115] {Default Queue} wl_registry#1030.global(19, "zwlr_data_control_manager_v1", 2) -[2617944.120] {Default Queue} wl_registry#1030.global(20, "ext_data_control_manager_v1", 1) -[2617944.124] {Default Queue} wl_registry#1030.global(21, "wp_presentation", 2) -[2617944.129] {Default Queue} wl_registry#1030.global(22, "wp_security_context_manager_v1", 1) -[2617944.133] {Default Queue} wl_registry#1030.global(23, "zwp_text_input_manager_v3", 1) -[2617944.137] {Default Queue} wl_registry#1030.global(24, "zwp_input_method_manager_v2", 1) -[2617944.141] {Default Queue} wl_registry#1030.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617944.146] {Default Queue} wl_registry#1030.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617944.150] {Default Queue} wl_registry#1030.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617944.154] {Default Queue} wl_registry#1030.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617944.159] {Default Queue} wl_registry#1030.global(29, "ext_workspace_manager_v1", 1) -[2617944.163] {Default Queue} wl_registry#1030.global(30, "zwlr_output_manager_v1", 4) -[2617944.168] {Default Queue} wl_registry#1030.global(31, "zwlr_screencopy_manager_v1", 3) -[2617944.172] {Default Queue} wl_registry#1030.global(32, "wp_viewporter", 1) -[2617944.176] {Default Queue} wl_registry#1030.global(33, "zxdg_exporter_v2", 1) -[2617944.180] {Default Queue} wl_registry#1030.global(34, "zxdg_importer_v2", 1) -[2617944.185] {Default Queue} wl_registry#1030.global(36, "xdg_activation_v1", 1) -[2617944.189] {Default Queue} wl_registry#1030.global(37, "mutter_x11_interop", 1) -[2617944.193] {Default Queue} wl_registry#1030.global(38, "wl_seat", 9) -[2617944.198] {Default Queue} -> wl_registry#1030.bind(38, "wl_seat", 1, new id [unknown]#1048) -[2617944.202] {Default Queue} wl_registry#1030.global(39, "wp_cursor_shape_manager_v1", 2) -[2617944.206] {Default Queue} wl_registry#1030.global(40, "wl_output", 4) -[2617944.211] {Default Queue} -> wl_registry#1030.bind(40, "wl_output", 1, new id [unknown]#1049) -[2617944.215] {Default Queue} wl_callback#1031.done(0) -[2617944.220] {Default Queue} discarded wl_surface#999.enter(wl_output#18) -[2617944.224] {Default Queue} discarded wl_surface#999.enter(wl_output#57) -[2617944.228] {Default Queue} discarded wl_surface#999.enter(wl_output#89) -[2617944.231] {Default Queue} discarded wl_surface#999.enter(wl_output#121) -[2617944.235] {Default Queue} discarded wl_surface#999.enter(wl_output#153) -[2617944.239] {Default Queue} discarded wl_surface#999.enter(wl_output#185) -[2617944.243] {Default Queue} discarded wl_surface#999.enter(wl_output#217) -[2617944.248] {Default Queue} discarded wl_surface#999.enter(wl_output#249) -[2617944.251] {Default Queue} discarded wl_surface#999.enter(wl_output#281) -[2617944.255] {Default Queue} discarded wl_surface#999.enter(wl_output#313) -[2617944.259] {Default Queue} discarded wl_surface#999.enter(wl_output#345) -[2617944.263] {Default Queue} discarded wl_surface#999.enter(wl_output#377) -[2617944.267] {Default Queue} discarded wl_surface#999.enter(wl_output#409) -[2617944.274] {Default Queue} discarded wl_surface#999.enter(wl_output#441) -[2617944.280] {Default Queue} discarded wl_surface#999.enter(wl_output#473) -[2617944.284] {Default Queue} discarded wl_surface#999.enter(wl_output#505) -[2617944.288] {Default Queue} discarded wl_surface#999.enter(wl_output#537) -[2617944.292] {Default Queue} discarded wl_surface#999.enter(wl_output#569) -[2617944.296] {Default Queue} discarded wl_surface#999.enter(wl_output#601) -[2617944.300] {Default Queue} discarded wl_surface#999.enter(wl_output#633) -[2617944.304] {Default Queue} discarded wl_surface#999.enter(wl_output#665) -[2617944.308] {Default Queue} discarded wl_surface#999.enter(wl_output#697) -[2617944.312] {Default Queue} discarded wl_surface#999.enter(wl_output#729) -[2617944.316] {Default Queue} discarded wl_surface#999.enter(wl_output#761) -[2617944.320] {Default Queue} discarded wl_surface#999.enter(wl_output#793) -[2617944.324] {Default Queue} discarded wl_surface#999.enter(wl_output#825) -[2617944.328] {Default Queue} discarded wl_surface#999.enter(wl_output#857) -[2617944.332] {Default Queue} discarded wl_surface#999.enter(wl_output#889) -[2617944.336] {Default Queue} discarded wl_surface#999.enter(wl_output#921) -[2617944.340] {Default Queue} discarded wl_surface#999.enter(wl_output#953) -[2617944.344] {Default Queue} discarded wl_surface#999.enter(wl_output#985) -[2617944.348] {Default Queue} discarded wl_surface#999.enter(wl_output#1017) -[2617944.352] {Default Queue} -> wl_compositor#1004.create_surface(new id wl_surface#1031) -[2617944.357] {Default Queue} -> wl_subcompositor#1037.get_subsurface(new id wl_subsurface#1050, wl_surface#1031, wl_surface#999) -[2617944.365] {Default Queue} -> wl_subsurface#1050.set_desync() -[2617944.369] {Default Queue} -> wl_subsurface#1050.set_position(0, 0) -[2617944.374] {Default Queue} -> wl_subsurface#1050.place_above(wl_surface#999) -[2617944.415] {Default Queue} -> wl_shm#1039.create_pool(new id wl_shm_pool#1051, fd 169, 16) -[2617944.421] {Default Queue} -> wl_shm#1039.create_pool(new id wl_shm_pool#1052, fd 170, 16) -[2617944.426] {Default Queue} -> wl_shm_pool#1051.create_buffer(new id wl_buffer#1053, 0, 2, 2, 8, 0) -[2617944.431] {Default Queue} -> wl_shm_pool#1052.create_buffer(new id wl_buffer#1054, 0, 2, 2, 8, 0) -[2617944.438] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) -[2617944.445] {Default Queue} -> wl_surface#1031.commit() -[2617944.451] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) -[2617944.455] {Default Queue} -> wl_surface#1031.commit() -[2617944.459] {Default Queue} -> wl_compositor#1036.create_region(new id wl_region#1055) -[2617944.464] {Default Queue} -> wl_compositor#1036.create_region(new id wl_region#1056) -[2617944.468] {Default Queue} -> wl_region#1055.subtract(0, 0, 2, 2) -[2617944.472] {Default Queue} -> wl_region#1055.add(0, 0, 0, 0) -[2617944.476] {Default Queue} -> wl_surface#1031.set_opaque_region(wl_region#1056) -[2617944.480] {Default Queue} -> wl_surface#1031.set_input_region(wl_region#1055) -[2617944.485] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2617944.489] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) -[2617944.496] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) -[2617944.500] {Default Queue} -> wl_surface#1031.commit() -[2617944.532] {Default Queue} -> wl_shm#1041.create_pool(new id wl_shm_pool#1057, fd 173, 640) -[2617944.538] {Default Queue} -> wl_shm#1041.create_pool(new id wl_shm_pool#1058, fd 174, 640) -[2617944.545] {Default Queue} -> wl_shm_pool#1057.create_buffer(new id wl_buffer#1059, 0, 10, 16, 40, 0) -[2617944.550] {Default Queue} -> wl_shm_pool#1058.create_buffer(new id wl_buffer#1060, 0, 10, 16, 40, 0) -[2617944.557] {Default Queue} -> wl_compositor#1036.create_surface(new id wl_surface#1061) -[2617944.561] {Default Queue} -> wl_surface#1061.attach(wl_buffer#1059, 0, 0) -[2617944.565] {Default Queue} -> wl_surface#1061.commit() -[2617944.571] {Default Queue} -> wl_surface#1061.attach(wl_buffer#1059, 0, 0) -[2617944.575] {Default Queue} -> wl_surface#1061.commit() -[2617944.588] {Default Queue} -> wl_region#959.subtract(0, 0, 2, 2) -[2617944.595] {Default Queue} -> wl_subsurface#954.set_position(3, 3) -[2617944.599] {Default Queue} -> wl_region#959.subtract(0, 0, 5, 5) -[2617944.604] {Default Queue} -> wl_region#959.add(0, 0, 0, 0) -[2617944.608] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) -[2617944.612] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) -[2617944.617] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2617944.621] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2617944.626] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) -[2617944.631] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) -[2617944.642] {Default Queue} -> wl_region#959.subtract(0, 0, 5, 5) -[2617944.649] {Default Queue} -> wl_region#959.add(0, 0, 0, 0) -[2617944.656] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) -[2617944.662] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) -[2617944.671] {Default Queue} -> wl_surface#935.attach(wl_buffer#957, 0, 0) -[2617944.678] {Default Queue} -> wl_surface#935.commit() -[2617944.688] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1062) -[2617944.694] {Default Queue} -> wl_display#1.sync(new id wl_callback#1063) -[2617953.710] {Display Queue} wl_display#1.delete_id(1063) -[2617953.724] {Default Queue} wl_keyboard#1032.keymap(1, fd 169, 68213) -[2617953.731] {Default Queue} wl_keyboard#1032.enter(566, wl_surface#19, array[0]) -[2617953.738] {Default Queue} wl_keyboard#1032.modifiers(566, 0, 0, 16, 0) -[2617953.745] {Default Queue} discarded wl_shm#1039.format(875709016) -[2617953.750] {Default Queue} discarded wl_shm#1039.format(1) -[2617953.755] {Default Queue} discarded wl_shm#1039.format(0) -[2617953.759] {Default Queue} discarded wl_shm#1039.format(875708993) -[2617953.762] {Default Queue} discarded wl_shm#1040.format(875709016) -[2617953.766] {Default Queue} discarded wl_shm#1040.format(1) -[2617953.770] {Default Queue} discarded wl_shm#1040.format(0) -[2617953.774] {Default Queue} discarded wl_shm#1040.format(875708993) -[2617953.778] {Default Queue} discarded wl_shm#1041.format(875709016) -[2617953.782] {Default Queue} discarded wl_shm#1041.format(1) -[2617953.786] {Default Queue} discarded wl_shm#1041.format(0) -[2617953.790] {Default Queue} discarded wl_shm#1041.format(875708993) -[2617953.793] {Default Queue} wl_seat#1048.capabilities(7) -[2617953.799] {Default Queue} -> wl_seat#1048.get_keyboard(new id wl_keyboard#1064) -[2617953.803] {Default Queue} -> wl_seat#1048.get_pointer(new id wl_pointer#1065) -[2617953.807] {Default Queue} -> wl_data_device_manager#1044.get_data_device(new id wl_data_device#1066, wl_seat#1048) -[2617953.812] {Default Queue} -> zwp_primary_selection_device_manager_v1#1046.get_device(new id zwp_primary_selection_device_v1#1067, wl_seat#1048) -[2617953.820] {Default Queue} wl_output#1049.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617953.826] {Default Queue} wl_output#1049.mode(3, 1280, 800, 60000) -[2617953.830] {Default Queue} discarded wl_surface#3.enter(wl_output#1049) -[2617953.835] {Default Queue} discarded wl_surface#999.enter(wl_output#1049) -[2617953.838] {Default Queue} discarded wl_surface#423.enter(wl_output#1049) -[2617953.842] {Default Queue} discarded wl_surface#455.enter(wl_output#1049) -[2617953.846] {Default Queue} discarded wl_surface#903.enter(wl_output#1049) -[2617953.850] {Default Queue} discarded wl_surface#775.enter(wl_output#1049) -[2617953.854] {Default Queue} discarded wl_surface#135.enter(wl_output#1049) -[2617953.858] {Default Queue} discarded wl_surface#615.enter(wl_output#1049) -[2617953.872] {Default Queue} discarded wl_surface#231.enter(wl_output#1049) -[2617953.876] {Default Queue} discarded wl_surface#359.enter(wl_output#1049) -[2617953.880] {Default Queue} discarded wl_surface#583.enter(wl_output#1049) -[2617953.885] {Default Queue} discarded wl_surface#743.enter(wl_output#1049) -[2617953.889] {Default Queue} discarded wl_surface#967.enter(wl_output#1049) -[2617953.892] {Default Queue} discarded wl_surface#103.enter(wl_output#1049) -[2617953.900] {Default Queue} discarded wl_surface#327.enter(wl_output#1049) -[2617953.907] {Default Queue} discarded wl_surface#43.enter(wl_output#1049) -[2617953.911] {Default Queue} discarded wl_surface#807.enter(wl_output#1049) -[2617953.915] {Default Queue} discarded wl_surface#19.enter(wl_output#1049) -[2617953.919] {Default Queue} discarded wl_surface#199.enter(wl_output#1049) -[2617953.923] {Default Queue} discarded wl_surface#391.enter(wl_output#1049) -[2617953.927] {Default Queue} discarded wl_surface#935.enter(wl_output#1049) -[2617953.931] {Default Queue} discarded wl_surface#711.enter(wl_output#1049) -[2617953.935] {Default Queue} discarded wl_surface#871.enter(wl_output#1049) -[2617953.939] {Default Queue} discarded wl_surface#263.enter(wl_output#1049) -[2617953.943] {Default Queue} discarded wl_surface#551.enter(wl_output#1049) -[2617953.947] {Default Queue} discarded wl_surface#647.enter(wl_output#1049) -[2617953.951] {Default Queue} discarded wl_surface#71.enter(wl_output#1049) -[2617953.955] {Default Queue} discarded wl_surface#839.enter(wl_output#1049) -[2617953.959] {Default Queue} discarded wl_surface#487.enter(wl_output#1049) -[2617953.963] {Default Queue} discarded wl_surface#519.enter(wl_output#1049) -[2617953.967] {Default Queue} discarded wl_surface#295.enter(wl_output#1049) -[2617953.971] {Default Queue} discarded wl_surface#167.enter(wl_output#1049) -[2617953.974] {Default Queue} discarded wl_surface#679.enter(wl_output#1049) -[2617953.978] {Default Queue} wl_registry#1062.global(1, "wl_compositor", 6) -[2617953.983] {Default Queue} -> wl_registry#1062.bind(1, "wl_compositor", 1, new id [unknown]#1068) -[2617953.988] {Default Queue} wl_registry#1062.global(2, "wl_subcompositor", 1) -[2617953.993] {Default Queue} -> wl_registry#1062.bind(2, "wl_subcompositor", 1, new id [unknown]#1069) -[2617953.998] {Default Queue} wl_registry#1062.global(3, "xdg_wm_base", 6) -[2617954.002] {Default Queue} -> wl_registry#1062.bind(3, "xdg_wm_base", 1, new id [unknown]#1070) -[2617954.007] {Default Queue} wl_registry#1062.global(6, "zwlr_layer_shell_v1", 5) -[2617954.011] {Default Queue} wl_registry#1062.global(7, "ext_session_lock_manager_v1", 1) -[2617954.015] {Default Queue} wl_registry#1062.global(8, "wl_shm", 2) -[2617954.020] {Default Queue} -> wl_registry#1062.bind(8, "wl_shm", 1, new id [unknown]#1071) -[2617954.025] {Default Queue} -> wl_registry#1062.bind(8, "wl_shm", 1, new id [unknown]#1072) -[2617954.029] {Default Queue} -> wl_registry#1062.bind(8, "wl_shm", 1, new id [unknown]#1073) -[2617954.033] {Default Queue} wl_registry#1062.global(9, "zxdg_output_manager_v1", 3) -[2617954.037] {Default Queue} wl_registry#1062.global(10, "wp_fractional_scale_manager_v1", 1) -[2617954.042] {Default Queue} wl_registry#1062.global(11, "zwp_tablet_manager_v2", 1) -[2617954.046] {Default Queue} wl_registry#1062.global(12, "zwp_pointer_gestures_v1", 3) -[2617954.051] {Default Queue} wl_registry#1062.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617954.055] {Default Queue} -> wl_registry#1062.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1074) -[2617954.060] {Default Queue} wl_registry#1062.global(14, "zwp_pointer_constraints_v1", 1) -[2617954.064] {Default Queue} -> wl_registry#1062.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1075) -[2617954.068] {Default Queue} wl_registry#1062.global(15, "ext_idle_notifier_v1", 2) -[2617954.073] {Default Queue} wl_registry#1062.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617954.077] {Default Queue} wl_registry#1062.global(17, "wl_data_device_manager", 3) -[2617954.082] {Default Queue} -> wl_registry#1062.bind(17, "wl_data_device_manager", 2, new id [unknown]#1076) -[2617954.086] {Default Queue} -> wl_data_device_manager#1076.create_data_source(new id wl_data_source#1077) -[2617954.091] {Default Queue} -> wl_data_source#1077.offer("text/plain") -[2617954.095] {Default Queue} -> wl_data_source#1077.offer("text/plain;charset=utf-8") -[2617954.099] {Default Queue} -> wl_data_source#1077.offer("TEXT") -[2617954.103] {Default Queue} -> wl_data_source#1077.offer("STRING") -[2617954.110] {Default Queue} -> wl_data_source#1077.offer("UTF8_STRING") -[2617954.116] {Default Queue} wl_registry#1062.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617954.121] {Default Queue} -> wl_registry#1062.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1078) -[2617954.129] {Default Queue} -> zwp_primary_selection_device_manager_v1#1078.create_source(new id zwp_primary_selection_source_v1#1079) -[2617954.136] {Default Queue} -> zwp_primary_selection_source_v1#1079.offer("text/plain") -[2617954.140] {Default Queue} -> zwp_primary_selection_source_v1#1079.offer("text/plain;charset=utf-8") -[2617954.144] {Default Queue} -> zwp_primary_selection_source_v1#1079.offer("TEXT") -[2617954.148] {Default Queue} -> zwp_primary_selection_source_v1#1079.offer("STRING") -[2617954.152] {Default Queue} -> zwp_primary_selection_source_v1#1079.offer("UTF8_STRING") -[2617954.156] {Default Queue} wl_registry#1062.global(19, "zwlr_data_control_manager_v1", 2) -[2617954.160] {Default Queue} wl_registry#1062.global(20, "ext_data_control_manager_v1", 1) -[2617954.165] {Default Queue} wl_registry#1062.global(21, "wp_presentation", 2) -[2617954.169] {Default Queue} wl_registry#1062.global(22, "wp_security_context_manager_v1", 1) -[2617954.173] {Default Queue} wl_registry#1062.global(23, "zwp_text_input_manager_v3", 1) -[2617954.177] {Default Queue} wl_registry#1062.global(24, "zwp_input_method_manager_v2", 1) -[2617954.182] {Default Queue} wl_registry#1062.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617954.186] {Default Queue} wl_registry#1062.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617954.190] {Default Queue} wl_registry#1062.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617954.195] {Default Queue} wl_registry#1062.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617954.199] {Default Queue} wl_registry#1062.global(29, "ext_workspace_manager_v1", 1) -[2617954.204] {Default Queue} wl_registry#1062.global(30, "zwlr_output_manager_v1", 4) -[2617954.209] {Default Queue} wl_registry#1062.global(31, "zwlr_screencopy_manager_v1", 3) -[2617954.213] {Default Queue} wl_registry#1062.global(32, "wp_viewporter", 1) -[2617954.217] {Default Queue} wl_registry#1062.global(33, "zxdg_exporter_v2", 1) -[2617954.221] {Default Queue} wl_registry#1062.global(34, "zxdg_importer_v2", 1) -[2617954.226] {Default Queue} wl_registry#1062.global(36, "xdg_activation_v1", 1) -[2617954.230] {Default Queue} wl_registry#1062.global(37, "mutter_x11_interop", 1) -[2617954.234] {Default Queue} wl_registry#1062.global(38, "wl_seat", 9) -[2617954.239] {Default Queue} -> wl_registry#1062.bind(38, "wl_seat", 1, new id [unknown]#1080) -[2617954.244] {Default Queue} wl_registry#1062.global(39, "wp_cursor_shape_manager_v1", 2) -[2617954.248] {Default Queue} wl_registry#1062.global(40, "wl_output", 4) -[2617954.252] {Default Queue} -> wl_registry#1062.bind(40, "wl_output", 1, new id [unknown]#1081) -[2617954.257] {Default Queue} wl_callback#1063.done(0) -[2617954.261] {Default Queue} discarded wl_surface#1031.enter(wl_output#18) -[2617954.265] {Default Queue} discarded wl_surface#1031.enter(wl_output#57) -[2617954.269] {Default Queue} discarded wl_surface#1031.enter(wl_output#89) -[2617954.273] {Default Queue} discarded wl_surface#1031.enter(wl_output#121) -[2617954.277] {Default Queue} discarded wl_surface#1031.enter(wl_output#153) -[2617954.281] {Default Queue} discarded wl_surface#1031.enter(wl_output#185) -[2617954.285] {Default Queue} discarded wl_surface#1031.enter(wl_output#217) -[2617954.289] {Default Queue} discarded wl_surface#1031.enter(wl_output#249) -[2617954.292] {Default Queue} discarded wl_surface#1031.enter(wl_output#281) -[2617954.296] {Default Queue} discarded wl_surface#1031.enter(wl_output#313) -[2617954.300] {Default Queue} discarded wl_surface#1031.enter(wl_output#345) -[2617954.304] {Default Queue} discarded wl_surface#1031.enter(wl_output#377) -[2617954.308] {Default Queue} discarded wl_surface#1031.enter(wl_output#409) -[2617954.312] {Default Queue} discarded wl_surface#1031.enter(wl_output#441) -[2617954.318] {Default Queue} discarded wl_surface#1031.enter(wl_output#473) -[2617954.324] {Default Queue} discarded wl_surface#1031.enter(wl_output#505) -[2617954.328] {Default Queue} discarded wl_surface#1031.enter(wl_output#537) -[2617954.331] {Default Queue} discarded wl_surface#1031.enter(wl_output#569) -[2617954.335] {Default Queue} discarded wl_surface#1031.enter(wl_output#601) -[2617954.339] {Default Queue} discarded wl_surface#1031.enter(wl_output#633) -[2617954.343] {Default Queue} discarded wl_surface#1031.enter(wl_output#665) -[2617954.347] {Default Queue} discarded wl_surface#1031.enter(wl_output#697) -[2617954.351] {Default Queue} discarded wl_surface#1031.enter(wl_output#729) -[2617954.355] {Default Queue} discarded wl_surface#1031.enter(wl_output#761) -[2617954.359] {Default Queue} discarded wl_surface#1031.enter(wl_output#793) -[2617954.362] {Default Queue} discarded wl_surface#1031.enter(wl_output#825) -[2617954.366] {Default Queue} discarded wl_surface#1031.enter(wl_output#857) -[2617954.370] {Default Queue} discarded wl_surface#1031.enter(wl_output#889) -[2617954.374] {Default Queue} discarded wl_surface#1031.enter(wl_output#921) -[2617954.378] {Default Queue} discarded wl_surface#1031.enter(wl_output#953) -[2617954.382] {Default Queue} discarded wl_surface#1031.enter(wl_output#985) -[2617954.386] {Default Queue} discarded wl_surface#1031.enter(wl_output#1017) -[2617954.390] {Default Queue} discarded wl_surface#1031.enter(wl_output#1049) -[2617954.394] {Default Queue} -> wl_compositor#1036.create_surface(new id wl_surface#1063) -[2617954.398] {Default Queue} -> wl_subcompositor#1069.get_subsurface(new id wl_subsurface#1082, wl_surface#1063, wl_surface#1031) -[2617954.406] {Default Queue} -> wl_subsurface#1082.set_desync() -[2617954.410] {Default Queue} -> wl_subsurface#1082.set_position(0, 0) -[2617954.415] {Default Queue} -> wl_subsurface#1082.place_above(wl_surface#1031) -[2617954.457] {Default Queue} -> wl_shm#1071.create_pool(new id wl_shm_pool#1083, fd 174, 16) -[2617954.464] {Default Queue} -> wl_shm#1071.create_pool(new id wl_shm_pool#1084, fd 175, 16) -[2617954.468] {Default Queue} -> wl_shm_pool#1083.create_buffer(new id wl_buffer#1085, 0, 2, 2, 8, 0) -[2617954.473] {Default Queue} -> wl_shm_pool#1084.create_buffer(new id wl_buffer#1086, 0, 2, 2, 8, 0) -[2617954.483] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) -[2617954.488] {Default Queue} -> wl_surface#1063.commit() -[2617954.493] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) -[2617954.498] {Default Queue} -> wl_surface#1063.commit() -[2617954.502] {Default Queue} -> wl_compositor#1068.create_region(new id wl_region#1087) -[2617954.506] {Default Queue} -> wl_compositor#1068.create_region(new id wl_region#1088) -[2617954.511] {Default Queue} -> wl_region#1087.subtract(0, 0, 2, 2) -[2617954.515] {Default Queue} -> wl_region#1087.add(0, 0, 0, 0) -[2617954.520] {Default Queue} -> wl_surface#1063.set_opaque_region(wl_region#1088) -[2617954.524] {Default Queue} -> wl_surface#1063.set_input_region(wl_region#1087) -[2617954.528] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2617954.533] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2617954.540] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) -[2617954.544] {Default Queue} -> wl_surface#1063.commit() -[2617954.577] {Default Queue} -> wl_shm#1073.create_pool(new id wl_shm_pool#1089, fd 178, 640) -[2617954.583] {Default Queue} -> wl_shm#1073.create_pool(new id wl_shm_pool#1090, fd 179, 640) -[2617954.588] {Default Queue} -> wl_shm_pool#1089.create_buffer(new id wl_buffer#1091, 0, 10, 16, 40, 0) -[2617954.593] {Default Queue} -> wl_shm_pool#1090.create_buffer(new id wl_buffer#1092, 0, 10, 16, 40, 0) -[2617954.599] {Default Queue} -> wl_compositor#1068.create_surface(new id wl_surface#1093) -[2617954.604] {Default Queue} -> wl_surface#1093.attach(wl_buffer#1091, 0, 0) -[2617954.608] {Default Queue} -> wl_surface#1093.commit() -[2617954.613] {Default Queue} -> wl_surface#1093.attach(wl_buffer#1091, 0, 0) -[2617954.618] {Default Queue} -> wl_surface#1093.commit() -[2617954.627] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2617954.634] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2617954.641] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1094) -[2617954.646] {Default Queue} -> wl_display#1.sync(new id wl_callback#1095) -[2617958.723] {Display Queue} wl_display#1.delete_id(1095) -[2617958.738] {Default Queue} wl_keyboard#1064.keymap(1, fd 174, 68213) -[2617958.745] {Default Queue} wl_keyboard#1064.enter(566, wl_surface#19, array[0]) -[2617958.752] {Default Queue} wl_keyboard#1064.modifiers(566, 0, 0, 16, 0) -[2617958.759] {Default Queue} discarded wl_shm#1071.format(875709016) -[2617958.764] {Default Queue} discarded wl_shm#1071.format(1) -[2617958.770] {Default Queue} discarded wl_shm#1071.format(0) -[2617958.776] {Default Queue} discarded wl_shm#1071.format(875708993) -[2617958.781] {Default Queue} discarded wl_shm#1072.format(875709016) -[2617958.787] {Default Queue} discarded wl_shm#1072.format(1) -[2617958.792] {Default Queue} discarded wl_shm#1072.format(0) -[2617958.799] {Default Queue} discarded wl_shm#1072.format(875708993) -[2617958.804] {Default Queue} discarded wl_shm#1073.format(875709016) -[2617958.809] {Default Queue} discarded wl_shm#1073.format(1) -[2617958.815] {Default Queue} discarded wl_shm#1073.format(0) -[2617958.820] {Default Queue} discarded wl_shm#1073.format(875708993) -[2617958.825] {Default Queue} wl_seat#1080.capabilities(7) -[2617958.831] {Default Queue} -> wl_seat#1080.get_keyboard(new id wl_keyboard#1096) -[2617958.836] {Default Queue} -> wl_seat#1080.get_pointer(new id wl_pointer#1097) -[2617958.842] {Default Queue} -> wl_data_device_manager#1076.get_data_device(new id wl_data_device#1098, wl_seat#1080) -[2617958.849] {Default Queue} -> zwp_primary_selection_device_manager_v1#1078.get_device(new id zwp_primary_selection_device_v1#1099, wl_seat#1080) -[2617958.869] {Default Queue} wl_output#1081.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617958.877] {Default Queue} wl_output#1081.mode(3, 1280, 800, 60000) -[2617958.883] {Default Queue} discarded wl_surface#3.enter(wl_output#1081) -[2617958.889] {Default Queue} discarded wl_surface#999.enter(wl_output#1081) -[2617958.894] {Default Queue} discarded wl_surface#423.enter(wl_output#1081) -[2617958.900] {Default Queue} discarded wl_surface#455.enter(wl_output#1081) -[2617958.905] {Default Queue} discarded wl_surface#903.enter(wl_output#1081) -[2617958.910] {Default Queue} discarded wl_surface#775.enter(wl_output#1081) -[2617958.916] {Default Queue} discarded wl_surface#135.enter(wl_output#1081) -[2617958.922] {Default Queue} discarded wl_surface#1031.enter(wl_output#1081) -[2617958.927] {Default Queue} discarded wl_surface#615.enter(wl_output#1081) -[2617958.934] {Default Queue} discarded wl_surface#231.enter(wl_output#1081) -[2617958.939] {Default Queue} discarded wl_surface#359.enter(wl_output#1081) -[2617958.945] {Default Queue} discarded wl_surface#583.enter(wl_output#1081) -[2617958.951] {Default Queue} discarded wl_surface#743.enter(wl_output#1081) -[2617958.957] {Default Queue} discarded wl_surface#967.enter(wl_output#1081) -[2617958.962] {Default Queue} discarded wl_surface#103.enter(wl_output#1081) -[2617958.968] {Default Queue} discarded wl_surface#327.enter(wl_output#1081) -[2617958.974] {Default Queue} discarded wl_surface#43.enter(wl_output#1081) -[2617958.980] {Default Queue} discarded wl_surface#807.enter(wl_output#1081) -[2617958.985] {Default Queue} discarded wl_surface#19.enter(wl_output#1081) -[2617958.991] {Default Queue} discarded wl_surface#199.enter(wl_output#1081) -[2617958.997] {Default Queue} discarded wl_surface#391.enter(wl_output#1081) -[2617959.002] {Default Queue} discarded wl_surface#935.enter(wl_output#1081) -[2617959.008] {Default Queue} discarded wl_surface#711.enter(wl_output#1081) -[2617959.014] {Default Queue} discarded wl_surface#871.enter(wl_output#1081) -[2617959.019] {Default Queue} discarded wl_surface#263.enter(wl_output#1081) -[2617959.024] {Default Queue} discarded wl_surface#551.enter(wl_output#1081) -[2617959.030] {Default Queue} discarded wl_surface#647.enter(wl_output#1081) -[2617959.043] {Default Queue} discarded wl_surface#71.enter(wl_output#1081) -[2617959.050] {Default Queue} discarded wl_surface#839.enter(wl_output#1081) -[2617959.054] {Default Queue} discarded wl_surface#487.enter(wl_output#1081) -[2617959.058] {Default Queue} discarded wl_surface#519.enter(wl_output#1081) -[2617959.063] {Default Queue} discarded wl_surface#295.enter(wl_output#1081) -[2617959.068] {Default Queue} discarded wl_surface#167.enter(wl_output#1081) -[2617959.073] {Default Queue} discarded wl_surface#679.enter(wl_output#1081) -[2617959.079] {Default Queue} wl_registry#1094.global(1, "wl_compositor", 6) -[2617959.086] {Default Queue} -> wl_registry#1094.bind(1, "wl_compositor", 1, new id [unknown]#1100) -[2617959.092] {Default Queue} wl_registry#1094.global(2, "wl_subcompositor", 1) -[2617959.098] {Default Queue} -> wl_registry#1094.bind(2, "wl_subcompositor", 1, new id [unknown]#1101) -[2617959.104] {Default Queue} wl_registry#1094.global(3, "xdg_wm_base", 6) -[2617959.109] {Default Queue} -> wl_registry#1094.bind(3, "xdg_wm_base", 1, new id [unknown]#1102) -[2617959.114] {Default Queue} wl_registry#1094.global(6, "zwlr_layer_shell_v1", 5) -[2617959.118] {Default Queue} wl_registry#1094.global(7, "ext_session_lock_manager_v1", 1) -[2617959.122] {Default Queue} wl_registry#1094.global(8, "wl_shm", 2) -[2617959.127] {Default Queue} -> wl_registry#1094.bind(8, "wl_shm", 1, new id [unknown]#1103) -[2617959.132] {Default Queue} -> wl_registry#1094.bind(8, "wl_shm", 1, new id [unknown]#1104) -[2617959.137] {Default Queue} -> wl_registry#1094.bind(8, "wl_shm", 1, new id [unknown]#1105) -[2617959.141] {Default Queue} wl_registry#1094.global(9, "zxdg_output_manager_v1", 3) -[2617959.145] {Default Queue} wl_registry#1094.global(10, "wp_fractional_scale_manager_v1", 1) -[2617959.150] {Default Queue} wl_registry#1094.global(11, "zwp_tablet_manager_v2", 1) -[2617959.154] {Default Queue} wl_registry#1094.global(12, "zwp_pointer_gestures_v1", 3) -[2617959.158] {Default Queue} wl_registry#1094.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617959.163] {Default Queue} -> wl_registry#1094.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1106) -[2617959.167] {Default Queue} wl_registry#1094.global(14, "zwp_pointer_constraints_v1", 1) -[2617959.172] {Default Queue} -> wl_registry#1094.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1107) -[2617959.176] {Default Queue} wl_registry#1094.global(15, "ext_idle_notifier_v1", 2) -[2617959.180] {Default Queue} wl_registry#1094.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617959.185] {Default Queue} wl_registry#1094.global(17, "wl_data_device_manager", 3) -[2617959.189] {Default Queue} -> wl_registry#1094.bind(17, "wl_data_device_manager", 2, new id [unknown]#1108) -[2617959.194] {Default Queue} -> wl_data_device_manager#1108.create_data_source(new id wl_data_source#1109) -[2617959.199] {Default Queue} -> wl_data_source#1109.offer("text/plain") -[2617959.204] {Default Queue} -> wl_data_source#1109.offer("text/plain;charset=utf-8") -[2617959.208] {Default Queue} -> wl_data_source#1109.offer("TEXT") -[2617959.212] {Default Queue} -> wl_data_source#1109.offer("STRING") -[2617959.216] {Default Queue} -> wl_data_source#1109.offer("UTF8_STRING") -[2617959.220] {Default Queue} wl_registry#1094.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617959.225] {Default Queue} -> wl_registry#1094.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1110) -[2617959.233] {Default Queue} -> zwp_primary_selection_device_manager_v1#1110.create_source(new id zwp_primary_selection_source_v1#1111) -[2617959.241] {Default Queue} -> zwp_primary_selection_source_v1#1111.offer("text/plain") -[2617959.245] {Default Queue} -> zwp_primary_selection_source_v1#1111.offer("text/plain;charset=utf-8") -[2617959.249] {Default Queue} -> zwp_primary_selection_source_v1#1111.offer("TEXT") -[2617959.253] {Default Queue} -> zwp_primary_selection_source_v1#1111.offer("STRING") -[2617959.257] {Default Queue} -> zwp_primary_selection_source_v1#1111.offer("UTF8_STRING") -[2617959.265] {Default Queue} wl_registry#1094.global(19, "zwlr_data_control_manager_v1", 2) -[2617959.271] {Default Queue} wl_registry#1094.global(20, "ext_data_control_manager_v1", 1) -[2617959.275] {Default Queue} wl_registry#1094.global(21, "wp_presentation", 2) -[2617959.280] {Default Queue} wl_registry#1094.global(22, "wp_security_context_manager_v1", 1) -[2617959.284] {Default Queue} wl_registry#1094.global(23, "zwp_text_input_manager_v3", 1) -[2617959.288] {Default Queue} wl_registry#1094.global(24, "zwp_input_method_manager_v2", 1) -[2617959.293] {Default Queue} wl_registry#1094.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617959.297] {Default Queue} wl_registry#1094.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617959.301] {Default Queue} wl_registry#1094.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617959.305] {Default Queue} wl_registry#1094.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617959.310] {Default Queue} wl_registry#1094.global(29, "ext_workspace_manager_v1", 1) -[2617959.314] {Default Queue} wl_registry#1094.global(30, "zwlr_output_manager_v1", 4) -[2617959.318] {Default Queue} wl_registry#1094.global(31, "zwlr_screencopy_manager_v1", 3) -[2617959.323] {Default Queue} wl_registry#1094.global(32, "wp_viewporter", 1) -[2617959.327] {Default Queue} wl_registry#1094.global(33, "zxdg_exporter_v2", 1) -[2617959.331] {Default Queue} wl_registry#1094.global(34, "zxdg_importer_v2", 1) -[2617959.336] {Default Queue} wl_registry#1094.global(36, "xdg_activation_v1", 1) -[2617959.340] {Default Queue} wl_registry#1094.global(37, "mutter_x11_interop", 1) -[2617959.344] {Default Queue} wl_registry#1094.global(38, "wl_seat", 9) -[2617959.349] {Default Queue} -> wl_registry#1094.bind(38, "wl_seat", 1, new id [unknown]#1112) -[2617959.353] {Default Queue} wl_registry#1094.global(39, "wp_cursor_shape_manager_v1", 2) -[2617959.358] {Default Queue} wl_registry#1094.global(40, "wl_output", 4) -[2617959.362] {Default Queue} -> wl_registry#1094.bind(40, "wl_output", 1, new id [unknown]#1113) -[2617959.367] {Default Queue} wl_callback#1095.done(0) -[2617959.371] {Default Queue} discarded wl_surface#1063.enter(wl_output#18) -[2617959.375] {Default Queue} discarded wl_surface#1063.enter(wl_output#57) -[2617959.379] {Default Queue} discarded wl_surface#1063.enter(wl_output#89) -[2617959.383] {Default Queue} discarded wl_surface#1063.enter(wl_output#121) -[2617959.387] {Default Queue} discarded wl_surface#1063.enter(wl_output#153) -[2617959.391] {Default Queue} discarded wl_surface#1063.enter(wl_output#185) -[2617959.395] {Default Queue} discarded wl_surface#1063.enter(wl_output#217) -[2617959.398] {Default Queue} discarded wl_surface#1063.enter(wl_output#249) -[2617959.402] {Default Queue} discarded wl_surface#1063.enter(wl_output#281) -[2617959.406] {Default Queue} discarded wl_surface#1063.enter(wl_output#313) -[2617959.410] {Default Queue} discarded wl_surface#1063.enter(wl_output#345) -[2617959.414] {Default Queue} discarded wl_surface#1063.enter(wl_output#377) -[2617959.418] {Default Queue} discarded wl_surface#1063.enter(wl_output#409) -[2617959.422] {Default Queue} discarded wl_surface#1063.enter(wl_output#441) -[2617959.426] {Default Queue} discarded wl_surface#1063.enter(wl_output#473) -[2617959.430] {Default Queue} discarded wl_surface#1063.enter(wl_output#505) -[2617959.434] {Default Queue} discarded wl_surface#1063.enter(wl_output#537) -[2617959.438] {Default Queue} discarded wl_surface#1063.enter(wl_output#569) -[2617959.442] {Default Queue} discarded wl_surface#1063.enter(wl_output#601) -[2617959.445] {Default Queue} discarded wl_surface#1063.enter(wl_output#633) -[2617959.449] {Default Queue} discarded wl_surface#1063.enter(wl_output#665) -[2617959.453] {Default Queue} discarded wl_surface#1063.enter(wl_output#697) -[2617959.457] {Default Queue} discarded wl_surface#1063.enter(wl_output#729) -[2617959.462] {Default Queue} discarded wl_surface#1063.enter(wl_output#761) -[2617959.467] {Default Queue} discarded wl_surface#1063.enter(wl_output#793) -[2617959.472] {Default Queue} discarded wl_surface#1063.enter(wl_output#825) -[2617959.480] {Default Queue} discarded wl_surface#1063.enter(wl_output#857) -[2617959.487] {Default Queue} discarded wl_surface#1063.enter(wl_output#889) -[2617959.492] {Default Queue} discarded wl_surface#1063.enter(wl_output#921) -[2617959.497] {Default Queue} discarded wl_surface#1063.enter(wl_output#953) -[2617959.501] {Default Queue} discarded wl_surface#1063.enter(wl_output#985) -[2617959.506] {Default Queue} discarded wl_surface#1063.enter(wl_output#1017) -[2617959.511] {Default Queue} discarded wl_surface#1063.enter(wl_output#1049) -[2617959.516] {Default Queue} discarded wl_surface#1063.enter(wl_output#1081) -[2617959.521] {Default Queue} -> wl_compositor#1068.create_surface(new id wl_surface#1095) -[2617959.526] {Default Queue} -> wl_subcompositor#1101.get_subsurface(new id wl_subsurface#1114, wl_surface#1095, wl_surface#1063) -[2617959.536] {Default Queue} -> wl_subsurface#1114.set_desync() -[2617959.542] {Default Queue} -> wl_subsurface#1114.set_position(0, 0) -[2617959.547] {Default Queue} -> wl_subsurface#1114.place_above(wl_surface#1063) -[2617959.596] {Default Queue} -> wl_shm#1103.create_pool(new id wl_shm_pool#1115, fd 179, 16) -[2617959.603] {Default Queue} -> wl_shm#1103.create_pool(new id wl_shm_pool#1116, fd 180, 16) -[2617959.608] {Default Queue} -> wl_shm_pool#1115.create_buffer(new id wl_buffer#1117, 0, 2, 2, 8, 0) -[2617959.613] {Default Queue} -> wl_shm_pool#1116.create_buffer(new id wl_buffer#1118, 0, 2, 2, 8, 0) -[2617959.621] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) -[2617959.627] {Default Queue} -> wl_surface#1095.commit() -[2617959.632] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) -[2617959.637] {Default Queue} -> wl_surface#1095.commit() -[2617959.641] {Default Queue} -> wl_compositor#1100.create_region(new id wl_region#1119) -[2617959.648] {Default Queue} -> wl_compositor#1100.create_region(new id wl_region#1120) -[2617959.653] {Default Queue} -> wl_region#1119.subtract(0, 0, 2, 2) -[2617959.658] {Default Queue} -> wl_region#1119.add(0, 0, 0, 0) -[2617959.662] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2617959.666] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2617959.671] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) -[2617959.675] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2617959.683] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) -[2617959.687] {Default Queue} -> wl_surface#1095.commit() -[2617959.723] {Default Queue} -> wl_shm#1105.create_pool(new id wl_shm_pool#1121, fd 183, 640) -[2617959.729] {Default Queue} -> wl_shm#1105.create_pool(new id wl_shm_pool#1122, fd 184, 640) -[2617959.733] {Default Queue} -> wl_shm_pool#1121.create_buffer(new id wl_buffer#1123, 0, 10, 16, 40, 0) -[2617959.738] {Default Queue} -> wl_shm_pool#1122.create_buffer(new id wl_buffer#1124, 0, 10, 16, 40, 0) -[2617959.745] {Default Queue} -> wl_compositor#1100.create_surface(new id wl_surface#1125) -[2617959.749] {Default Queue} -> wl_surface#1125.attach(wl_buffer#1123, 0, 0) -[2617959.754] {Default Queue} -> wl_surface#1125.commit() -[2617959.759] {Default Queue} -> wl_surface#1125.attach(wl_buffer#1123, 0, 0) -[2617959.763] {Default Queue} -> wl_surface#1125.commit() -[2617959.769] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2617959.776] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1126) -[2617959.781] {Default Queue} -> wl_display#1.sync(new id wl_callback#1127) -[2617968.936] {Display Queue} wl_display#1.delete_id(1127) -[2617968.951] {Default Queue} wl_keyboard#1096.keymap(1, fd 179, 68213) -[2617968.959] {Default Queue} wl_keyboard#1096.enter(566, wl_surface#19, array[0]) -[2617968.966] {Default Queue} wl_keyboard#1096.modifiers(566, 0, 0, 16, 0) -[2617968.971] {Default Queue} discarded wl_shm#1103.format(875709016) -[2617968.975] {Default Queue} discarded wl_shm#1103.format(1) -[2617968.979] {Default Queue} discarded wl_shm#1103.format(0) -[2617968.983] {Default Queue} discarded wl_shm#1103.format(875708993) -[2617968.986] {Default Queue} discarded wl_shm#1104.format(875709016) -[2617968.994] {Default Queue} discarded wl_shm#1104.format(1) -[2617969.001] {Default Queue} discarded wl_shm#1104.format(0) -[2617969.006] {Default Queue} discarded wl_shm#1104.format(875708993) -[2617969.010] {Default Queue} discarded wl_shm#1105.format(875709016) -[2617969.014] {Default Queue} discarded wl_shm#1105.format(1) -[2617969.017] {Default Queue} discarded wl_shm#1105.format(0) -[2617969.021] {Default Queue} discarded wl_shm#1105.format(875708993) -[2617969.025] {Default Queue} wl_seat#1112.capabilities(7) -[2617969.030] {Default Queue} -> wl_seat#1112.get_keyboard(new id wl_keyboard#1128) -[2617969.035] {Default Queue} -> wl_seat#1112.get_pointer(new id wl_pointer#1129) -[2617969.040] {Default Queue} -> wl_data_device_manager#1108.get_data_device(new id wl_data_device#1130, wl_seat#1112) -[2617969.045] {Default Queue} -> zwp_primary_selection_device_manager_v1#1110.get_device(new id zwp_primary_selection_device_v1#1131, wl_seat#1112) -[2617969.053] {Default Queue} wl_output#1113.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617969.058] {Default Queue} wl_output#1113.mode(3, 1280, 800, 60000) -[2617969.063] {Default Queue} discarded wl_surface#3.enter(wl_output#1113) -[2617969.067] {Default Queue} discarded wl_surface#999.enter(wl_output#1113) -[2617969.071] {Default Queue} discarded wl_surface#423.enter(wl_output#1113) -[2617969.075] {Default Queue} discarded wl_surface#1063.enter(wl_output#1113) -[2617969.079] {Default Queue} discarded wl_surface#455.enter(wl_output#1113) -[2617969.083] {Default Queue} discarded wl_surface#903.enter(wl_output#1113) -[2617969.087] {Default Queue} discarded wl_surface#775.enter(wl_output#1113) -[2617969.090] {Default Queue} discarded wl_surface#135.enter(wl_output#1113) -[2617969.094] {Default Queue} discarded wl_surface#1031.enter(wl_output#1113) -[2617969.098] {Default Queue} discarded wl_surface#615.enter(wl_output#1113) -[2617969.102] {Default Queue} discarded wl_surface#231.enter(wl_output#1113) -[2617969.106] {Default Queue} discarded wl_surface#359.enter(wl_output#1113) -[2617969.110] {Default Queue} discarded wl_surface#583.enter(wl_output#1113) -[2617969.114] {Default Queue} discarded wl_surface#743.enter(wl_output#1113) -[2617969.118] {Default Queue} discarded wl_surface#967.enter(wl_output#1113) -[2617969.121] {Default Queue} discarded wl_surface#103.enter(wl_output#1113) -[2617969.125] {Default Queue} discarded wl_surface#327.enter(wl_output#1113) -[2617969.129] {Default Queue} discarded wl_surface#43.enter(wl_output#1113) -[2617969.133] {Default Queue} discarded wl_surface#807.enter(wl_output#1113) -[2617969.137] {Default Queue} discarded wl_surface#19.enter(wl_output#1113) -[2617969.141] {Default Queue} discarded wl_surface#199.enter(wl_output#1113) -[2617969.145] {Default Queue} discarded wl_surface#391.enter(wl_output#1113) -[2617969.149] {Default Queue} discarded wl_surface#935.enter(wl_output#1113) -[2617969.152] {Default Queue} discarded wl_surface#711.enter(wl_output#1113) -[2617969.156] {Default Queue} discarded wl_surface#871.enter(wl_output#1113) -[2617969.160] {Default Queue} discarded wl_surface#263.enter(wl_output#1113) -[2617969.164] {Default Queue} discarded wl_surface#551.enter(wl_output#1113) -[2617969.168] {Default Queue} discarded wl_surface#647.enter(wl_output#1113) -[2617969.172] {Default Queue} discarded wl_surface#71.enter(wl_output#1113) -[2617969.176] {Default Queue} discarded wl_surface#839.enter(wl_output#1113) -[2617969.180] {Default Queue} discarded wl_surface#487.enter(wl_output#1113) -[2617969.184] {Default Queue} discarded wl_surface#519.enter(wl_output#1113) -[2617969.188] {Default Queue} discarded wl_surface#295.enter(wl_output#1113) -[2617969.192] {Default Queue} discarded wl_surface#167.enter(wl_output#1113) -[2617969.196] {Default Queue} discarded wl_surface#679.enter(wl_output#1113) -[2617969.200] {Default Queue} wl_registry#1126.global(1, "wl_compositor", 6) -[2617969.205] {Default Queue} -> wl_registry#1126.bind(1, "wl_compositor", 1, new id [unknown]#1132) -[2617969.210] {Default Queue} wl_registry#1126.global(2, "wl_subcompositor", 1) -[2617969.218] {Default Queue} -> wl_registry#1126.bind(2, "wl_subcompositor", 1, new id [unknown]#1133) -[2617969.224] {Default Queue} wl_registry#1126.global(3, "xdg_wm_base", 6) -[2617969.229] {Default Queue} -> wl_registry#1126.bind(3, "xdg_wm_base", 1, new id [unknown]#1134) -[2617969.234] {Default Queue} wl_registry#1126.global(6, "zwlr_layer_shell_v1", 5) -[2617969.239] {Default Queue} wl_registry#1126.global(7, "ext_session_lock_manager_v1", 1) -[2617969.243] {Default Queue} wl_registry#1126.global(8, "wl_shm", 2) -[2617969.247] {Default Queue} -> wl_registry#1126.bind(8, "wl_shm", 1, new id [unknown]#1135) -[2617969.252] {Default Queue} -> wl_registry#1126.bind(8, "wl_shm", 1, new id [unknown]#1136) -[2617969.256] {Default Queue} -> wl_registry#1126.bind(8, "wl_shm", 1, new id [unknown]#1137) -[2617969.260] {Default Queue} wl_registry#1126.global(9, "zxdg_output_manager_v1", 3) -[2617969.265] {Default Queue} wl_registry#1126.global(10, "wp_fractional_scale_manager_v1", 1) -[2617969.269] {Default Queue} wl_registry#1126.global(11, "zwp_tablet_manager_v2", 1) -[2617969.274] {Default Queue} wl_registry#1126.global(12, "zwp_pointer_gestures_v1", 3) -[2617969.278] {Default Queue} wl_registry#1126.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617969.283] {Default Queue} -> wl_registry#1126.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1138) -[2617969.288] {Default Queue} wl_registry#1126.global(14, "zwp_pointer_constraints_v1", 1) -[2617969.292] {Default Queue} -> wl_registry#1126.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1139) -[2617969.297] {Default Queue} wl_registry#1126.global(15, "ext_idle_notifier_v1", 2) -[2617969.301] {Default Queue} wl_registry#1126.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617969.305] {Default Queue} wl_registry#1126.global(17, "wl_data_device_manager", 3) -[2617969.310] {Default Queue} -> wl_registry#1126.bind(17, "wl_data_device_manager", 2, new id [unknown]#1140) -[2617969.314] {Default Queue} -> wl_data_device_manager#1140.create_data_source(new id wl_data_source#1141) -[2617969.319] {Default Queue} -> wl_data_source#1141.offer("text/plain") -[2617969.323] {Default Queue} -> wl_data_source#1141.offer("text/plain;charset=utf-8") -[2617969.327] {Default Queue} -> wl_data_source#1141.offer("TEXT") -[2617969.332] {Default Queue} -> wl_data_source#1141.offer("STRING") -[2617969.336] {Default Queue} -> wl_data_source#1141.offer("UTF8_STRING") -[2617969.340] {Default Queue} wl_registry#1126.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617969.345] {Default Queue} -> wl_registry#1126.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1142) -[2617969.354] {Default Queue} -> zwp_primary_selection_device_manager_v1#1142.create_source(new id zwp_primary_selection_source_v1#1143) -[2617969.362] {Default Queue} -> zwp_primary_selection_source_v1#1143.offer("text/plain") -[2617969.366] {Default Queue} -> zwp_primary_selection_source_v1#1143.offer("text/plain;charset=utf-8") -[2617969.370] {Default Queue} -> zwp_primary_selection_source_v1#1143.offer("TEXT") -[2617969.374] {Default Queue} -> zwp_primary_selection_source_v1#1143.offer("STRING") -[2617969.378] {Default Queue} -> zwp_primary_selection_source_v1#1143.offer("UTF8_STRING") -[2617969.383] {Default Queue} wl_registry#1126.global(19, "zwlr_data_control_manager_v1", 2) -[2617969.387] {Default Queue} wl_registry#1126.global(20, "ext_data_control_manager_v1", 1) -[2617969.391] {Default Queue} wl_registry#1126.global(21, "wp_presentation", 2) -[2617969.396] {Default Queue} wl_registry#1126.global(22, "wp_security_context_manager_v1", 1) -[2617969.401] {Default Queue} wl_registry#1126.global(23, "zwp_text_input_manager_v3", 1) -[2617969.405] {Default Queue} wl_registry#1126.global(24, "zwp_input_method_manager_v2", 1) -[2617969.409] {Default Queue} wl_registry#1126.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617969.414] {Default Queue} wl_registry#1126.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617969.418] {Default Queue} wl_registry#1126.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617969.425] {Default Queue} wl_registry#1126.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617969.431] {Default Queue} wl_registry#1126.global(29, "ext_workspace_manager_v1", 1) -[2617969.436] {Default Queue} wl_registry#1126.global(30, "zwlr_output_manager_v1", 4) -[2617969.440] {Default Queue} wl_registry#1126.global(31, "zwlr_screencopy_manager_v1", 3) -[2617969.444] {Default Queue} wl_registry#1126.global(32, "wp_viewporter", 1) -[2617969.449] {Default Queue} wl_registry#1126.global(33, "zxdg_exporter_v2", 1) -[2617969.453] {Default Queue} wl_registry#1126.global(34, "zxdg_importer_v2", 1) -[2617969.457] {Default Queue} wl_registry#1126.global(36, "xdg_activation_v1", 1) -[2617969.462] {Default Queue} wl_registry#1126.global(37, "mutter_x11_interop", 1) -[2617969.466] {Default Queue} wl_registry#1126.global(38, "wl_seat", 9) -[2617969.470] {Default Queue} -> wl_registry#1126.bind(38, "wl_seat", 1, new id [unknown]#1144) -[2617969.475] {Default Queue} wl_registry#1126.global(39, "wp_cursor_shape_manager_v1", 2) -[2617969.479] {Default Queue} wl_registry#1126.global(40, "wl_output", 4) -[2617969.484] {Default Queue} -> wl_registry#1126.bind(40, "wl_output", 1, new id [unknown]#1145) -[2617969.488] {Default Queue} wl_callback#1127.done(0) -[2617969.493] {Default Queue} discarded wl_surface#1095.enter(wl_output#18) -[2617969.497] {Default Queue} discarded wl_surface#1095.enter(wl_output#57) -[2617969.501] {Default Queue} discarded wl_surface#1095.enter(wl_output#89) -[2617969.505] {Default Queue} discarded wl_surface#1095.enter(wl_output#121) -[2617969.509] {Default Queue} discarded wl_surface#1095.enter(wl_output#153) -[2617969.513] {Default Queue} discarded wl_surface#1095.enter(wl_output#185) -[2617969.517] {Default Queue} discarded wl_surface#1095.enter(wl_output#217) -[2617969.521] {Default Queue} discarded wl_surface#1095.enter(wl_output#249) -[2617969.525] {Default Queue} discarded wl_surface#1095.enter(wl_output#281) -[2617969.528] {Default Queue} discarded wl_surface#1095.enter(wl_output#313) -[2617969.532] {Default Queue} discarded wl_surface#1095.enter(wl_output#345) -[2617969.536] {Default Queue} discarded wl_surface#1095.enter(wl_output#377) -[2617969.540] {Default Queue} discarded wl_surface#1095.enter(wl_output#409) -[2617969.544] {Default Queue} discarded wl_surface#1095.enter(wl_output#441) -[2617969.548] {Default Queue} discarded wl_surface#1095.enter(wl_output#473) -[2617969.553] {Default Queue} discarded wl_surface#1095.enter(wl_output#505) -[2617969.557] {Default Queue} discarded wl_surface#1095.enter(wl_output#537) -[2617969.560] {Default Queue} discarded wl_surface#1095.enter(wl_output#569) -[2617969.564] {Default Queue} discarded wl_surface#1095.enter(wl_output#601) -[2617969.568] {Default Queue} discarded wl_surface#1095.enter(wl_output#633) -[2617969.573] {Default Queue} discarded wl_surface#1095.enter(wl_output#665) -[2617969.577] {Default Queue} discarded wl_surface#1095.enter(wl_output#697) -[2617969.581] {Default Queue} discarded wl_surface#1095.enter(wl_output#729) -[2617969.585] {Default Queue} discarded wl_surface#1095.enter(wl_output#761) -[2617969.589] {Default Queue} discarded wl_surface#1095.enter(wl_output#793) -[2617969.593] {Default Queue} discarded wl_surface#1095.enter(wl_output#825) -[2617969.596] {Default Queue} discarded wl_surface#1095.enter(wl_output#857) -[2617969.600] {Default Queue} discarded wl_surface#1095.enter(wl_output#889) -[2617969.604] {Default Queue} discarded wl_surface#1095.enter(wl_output#921) -[2617969.608] {Default Queue} discarded wl_surface#1095.enter(wl_output#953) -[2617969.612] {Default Queue} discarded wl_surface#1095.enter(wl_output#985) -[2617969.616] {Default Queue} discarded wl_surface#1095.enter(wl_output#1017) -[2617969.621] {Default Queue} discarded wl_surface#1095.enter(wl_output#1049) -[2617969.625] {Default Queue} discarded wl_surface#1095.enter(wl_output#1081) -[2617969.629] {Default Queue} discarded wl_surface#1095.enter(wl_output#1113) -[2617969.633] {Default Queue} -> wl_compositor#1068.create_surface(new id wl_surface#1127) -[2617969.638] {Default Queue} -> wl_subcompositor#1133.get_subsurface(new id wl_subsurface#1146, wl_surface#1127, wl_surface#1063) -[2617969.651] {Default Queue} -> wl_subsurface#1146.set_desync() -[2617969.656] {Default Queue} -> wl_subsurface#1146.set_position(0, 0) -[2617969.660] {Default Queue} -> wl_subsurface#1146.place_above(wl_surface#1063) -[2617969.705] {Default Queue} -> wl_shm#1135.create_pool(new id wl_shm_pool#1147, fd 184, 16) -[2617969.711] {Default Queue} -> wl_shm#1135.create_pool(new id wl_shm_pool#1148, fd 185, 16) -[2617969.716] {Default Queue} -> wl_shm_pool#1147.create_buffer(new id wl_buffer#1149, 0, 2, 2, 8, 0) -[2617969.721] {Default Queue} -> wl_shm_pool#1148.create_buffer(new id wl_buffer#1150, 0, 2, 2, 8, 0) -[2617969.729] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) -[2617969.733] {Default Queue} -> wl_surface#1127.commit() -[2617969.738] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) -[2617969.743] {Default Queue} -> wl_surface#1127.commit() -[2617969.747] {Default Queue} -> wl_compositor#1132.create_region(new id wl_region#1151) -[2617969.751] {Default Queue} -> wl_compositor#1132.create_region(new id wl_region#1152) -[2617969.755] {Default Queue} -> wl_region#1151.subtract(0, 0, 2, 2) -[2617969.760] {Default Queue} -> wl_region#1151.add(0, 0, 0, 0) -[2617969.764] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2617969.769] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2617969.773] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) -[2617969.777] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2617969.785] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) -[2617969.789] {Default Queue} -> wl_surface#1127.commit() -[2617969.822] {Default Queue} -> wl_shm#1137.create_pool(new id wl_shm_pool#1153, fd 188, 640) -[2617969.830] {Default Queue} -> wl_shm#1137.create_pool(new id wl_shm_pool#1154, fd 189, 640) -[2617969.835] {Default Queue} -> wl_shm_pool#1153.create_buffer(new id wl_buffer#1155, 0, 10, 16, 40, 0) -[2617969.839] {Default Queue} -> wl_shm_pool#1154.create_buffer(new id wl_buffer#1156, 0, 10, 16, 40, 0) -[2617969.846] {Default Queue} -> wl_compositor#1132.create_surface(new id wl_surface#1157) -[2617969.851] {Default Queue} -> wl_surface#1157.attach(wl_buffer#1155, 0, 0) -[2617969.855] {Default Queue} -> wl_surface#1157.commit() -[2617969.868] {Default Queue} -> wl_surface#1157.attach(wl_buffer#1155, 0, 0) -[2617969.873] {Default Queue} -> wl_surface#1157.commit() -[2617969.878] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2617969.885] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1158) -[2617969.890] {Default Queue} -> wl_display#1.sync(new id wl_callback#1159) -[2617973.847] {Display Queue} wl_display#1.delete_id(1159) -[2617973.873] {Default Queue} wl_keyboard#1128.keymap(1, fd 184, 68213) -[2617973.882] {Default Queue} wl_keyboard#1128.enter(566, wl_surface#19, array[0]) -[2617973.891] {Default Queue} wl_keyboard#1128.modifiers(566, 0, 0, 16, 0) -[2617973.899] {Default Queue} discarded wl_shm#1135.format(875709016) -[2617973.906] {Default Queue} discarded wl_shm#1135.format(1) -[2617973.913] {Default Queue} discarded wl_shm#1135.format(0) -[2617973.922] {Default Queue} discarded wl_shm#1135.format(875708993) -[2617973.929] {Default Queue} discarded wl_shm#1136.format(875709016) -[2617973.936] {Default Queue} discarded wl_shm#1136.format(1) -[2617973.942] {Default Queue} discarded wl_shm#1136.format(0) -[2617973.950] {Default Queue} discarded wl_shm#1136.format(875708993) -[2617973.958] {Default Queue} discarded wl_shm#1137.format(875709016) -[2617973.964] {Default Queue} discarded wl_shm#1137.format(1) -[2617973.972] {Default Queue} discarded wl_shm#1137.format(0) -[2617973.979] {Default Queue} discarded wl_shm#1137.format(875708993) -[2617973.986] {Default Queue} wl_seat#1144.capabilities(7) -[2617973.993] {Default Queue} -> wl_seat#1144.get_keyboard(new id wl_keyboard#1160) -[2617974.000] {Default Queue} -> wl_seat#1144.get_pointer(new id wl_pointer#1161) -[2617974.008] {Default Queue} -> wl_data_device_manager#1140.get_data_device(new id wl_data_device#1162, wl_seat#1144) -[2617974.026] {Default Queue} -> zwp_primary_selection_device_manager_v1#1142.get_device(new id zwp_primary_selection_device_v1#1163, wl_seat#1144) -[2617974.047] {Default Queue} wl_output#1145.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617974.056] {Default Queue} wl_output#1145.mode(3, 1280, 800, 60000) -[2617974.063] {Default Queue} discarded wl_surface#3.enter(wl_output#1145) -[2617974.070] {Default Queue} discarded wl_surface#999.enter(wl_output#1145) -[2617974.077] {Default Queue} discarded wl_surface#423.enter(wl_output#1145) -[2617974.084] {Default Queue} discarded wl_surface#1063.enter(wl_output#1145) -[2617974.090] {Default Queue} discarded wl_surface#455.enter(wl_output#1145) -[2617974.098] {Default Queue} discarded wl_surface#903.enter(wl_output#1145) -[2617974.105] {Default Queue} discarded wl_surface#775.enter(wl_output#1145) -[2617974.112] {Default Queue} discarded wl_surface#135.enter(wl_output#1145) -[2617974.119] {Default Queue} discarded wl_surface#1031.enter(wl_output#1145) -[2617974.126] {Default Queue} discarded wl_surface#615.enter(wl_output#1145) -[2617974.133] {Default Queue} discarded wl_surface#231.enter(wl_output#1145) -[2617974.140] {Default Queue} discarded wl_surface#359.enter(wl_output#1145) -[2617974.148] {Default Queue} discarded wl_surface#583.enter(wl_output#1145) -[2617974.156] {Default Queue} discarded wl_surface#743.enter(wl_output#1145) -[2617974.164] {Default Queue} discarded wl_surface#967.enter(wl_output#1145) -[2617974.172] {Default Queue} discarded wl_surface#103.enter(wl_output#1145) -[2617974.180] {Default Queue} discarded wl_surface#327.enter(wl_output#1145) -[2617974.187] {Default Queue} discarded wl_surface#43.enter(wl_output#1145) -[2617974.197] {Default Queue} discarded wl_surface#807.enter(wl_output#1145) -[2617974.204] {Default Queue} discarded wl_surface#19.enter(wl_output#1145) -[2617974.211] {Default Queue} discarded wl_surface#199.enter(wl_output#1145) -[2617974.219] {Default Queue} discarded wl_surface#391.enter(wl_output#1145) -[2617974.225] {Default Queue} discarded wl_surface#935.enter(wl_output#1145) -[2617974.232] {Default Queue} discarded wl_surface#711.enter(wl_output#1145) -[2617974.239] {Default Queue} discarded wl_surface#871.enter(wl_output#1145) -[2617974.246] {Default Queue} discarded wl_surface#263.enter(wl_output#1145) -[2617974.252] {Default Queue} discarded wl_surface#551.enter(wl_output#1145) -[2617974.257] {Default Queue} discarded wl_surface#647.enter(wl_output#1145) -[2617974.262] {Default Queue} discarded wl_surface#71.enter(wl_output#1145) -[2617974.268] {Default Queue} discarded wl_surface#839.enter(wl_output#1145) -[2617974.272] {Default Queue} discarded wl_surface#1095.enter(wl_output#1145) -[2617974.278] {Default Queue} discarded wl_surface#487.enter(wl_output#1145) -[2617974.285] {Default Queue} discarded wl_surface#519.enter(wl_output#1145) -[2617974.292] {Default Queue} discarded wl_surface#295.enter(wl_output#1145) -[2617974.298] {Default Queue} discarded wl_surface#167.enter(wl_output#1145) -[2617974.305] {Default Queue} discarded wl_surface#679.enter(wl_output#1145) -[2617974.312] {Default Queue} wl_registry#1158.global(1, "wl_compositor", 6) -[2617974.321] {Default Queue} -> wl_registry#1158.bind(1, "wl_compositor", 1, new id [unknown]#1164) -[2617974.330] {Default Queue} wl_registry#1158.global(2, "wl_subcompositor", 1) -[2617974.336] {Default Queue} -> wl_registry#1158.bind(2, "wl_subcompositor", 1, new id [unknown]#1165) -[2617974.342] {Default Queue} wl_registry#1158.global(3, "xdg_wm_base", 6) -[2617974.348] {Default Queue} -> wl_registry#1158.bind(3, "xdg_wm_base", 1, new id [unknown]#1166) -[2617974.354] {Default Queue} wl_registry#1158.global(6, "zwlr_layer_shell_v1", 5) -[2617974.359] {Default Queue} wl_registry#1158.global(7, "ext_session_lock_manager_v1", 1) -[2617974.365] {Default Queue} wl_registry#1158.global(8, "wl_shm", 2) -[2617974.371] {Default Queue} -> wl_registry#1158.bind(8, "wl_shm", 1, new id [unknown]#1167) -[2617974.376] {Default Queue} -> wl_registry#1158.bind(8, "wl_shm", 1, new id [unknown]#1168) -[2617974.387] {Default Queue} -> wl_registry#1158.bind(8, "wl_shm", 1, new id [unknown]#1169) -[2617974.395] {Default Queue} wl_registry#1158.global(9, "zxdg_output_manager_v1", 3) -[2617974.401] {Default Queue} wl_registry#1158.global(10, "wp_fractional_scale_manager_v1", 1) -[2617974.406] {Default Queue} wl_registry#1158.global(11, "zwp_tablet_manager_v2", 1) -[2617974.412] {Default Queue} wl_registry#1158.global(12, "zwp_pointer_gestures_v1", 3) -[2617974.417] {Default Queue} wl_registry#1158.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617974.423] {Default Queue} -> wl_registry#1158.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1170) -[2617974.428] {Default Queue} wl_registry#1158.global(14, "zwp_pointer_constraints_v1", 1) -[2617974.434] {Default Queue} -> wl_registry#1158.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1171) -[2617974.439] {Default Queue} wl_registry#1158.global(15, "ext_idle_notifier_v1", 2) -[2617974.445] {Default Queue} wl_registry#1158.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617974.450] {Default Queue} wl_registry#1158.global(17, "wl_data_device_manager", 3) -[2617974.456] {Default Queue} -> wl_registry#1158.bind(17, "wl_data_device_manager", 2, new id [unknown]#1172) -[2617974.462] {Default Queue} -> wl_data_device_manager#1172.create_data_source(new id wl_data_source#1173) -[2617974.468] {Default Queue} -> wl_data_source#1173.offer("text/plain") -[2617974.473] {Default Queue} -> wl_data_source#1173.offer("text/plain;charset=utf-8") -[2617974.478] {Default Queue} -> wl_data_source#1173.offer("TEXT") -[2617974.484] {Default Queue} -> wl_data_source#1173.offer("STRING") -[2617974.489] {Default Queue} -> wl_data_source#1173.offer("UTF8_STRING") -[2617974.494] {Default Queue} wl_registry#1158.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617974.500] {Default Queue} -> wl_registry#1158.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1174) -[2617974.510] {Default Queue} -> zwp_primary_selection_device_manager_v1#1174.create_source(new id zwp_primary_selection_source_v1#1175) -[2617974.519] {Default Queue} -> zwp_primary_selection_source_v1#1175.offer("text/plain") -[2617974.525] {Default Queue} -> zwp_primary_selection_source_v1#1175.offer("text/plain;charset=utf-8") -[2617974.530] {Default Queue} -> zwp_primary_selection_source_v1#1175.offer("TEXT") -[2617974.535] {Default Queue} -> zwp_primary_selection_source_v1#1175.offer("STRING") -[2617974.540] {Default Queue} -> zwp_primary_selection_source_v1#1175.offer("UTF8_STRING") -[2617974.545] {Default Queue} wl_registry#1158.global(19, "zwlr_data_control_manager_v1", 2) -[2617974.551] {Default Queue} wl_registry#1158.global(20, "ext_data_control_manager_v1", 1) -[2617974.556] {Default Queue} wl_registry#1158.global(21, "wp_presentation", 2) -[2617974.561] {Default Queue} wl_registry#1158.global(22, "wp_security_context_manager_v1", 1) -[2617974.567] {Default Queue} wl_registry#1158.global(23, "zwp_text_input_manager_v3", 1) -[2617974.572] {Default Queue} wl_registry#1158.global(24, "zwp_input_method_manager_v2", 1) -[2617974.578] {Default Queue} wl_registry#1158.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617974.583] {Default Queue} wl_registry#1158.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617974.588] {Default Queue} wl_registry#1158.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617974.594] {Default Queue} wl_registry#1158.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617974.599] {Default Queue} wl_registry#1158.global(29, "ext_workspace_manager_v1", 1) -[2617974.604] {Default Queue} wl_registry#1158.global(30, "zwlr_output_manager_v1", 4) -[2617974.610] {Default Queue} wl_registry#1158.global(31, "zwlr_screencopy_manager_v1", 3) -[2617974.615] {Default Queue} wl_registry#1158.global(32, "wp_viewporter", 1) -[2617974.620] {Default Queue} wl_registry#1158.global(33, "zxdg_exporter_v2", 1) -[2617974.626] {Default Queue} wl_registry#1158.global(34, "zxdg_importer_v2", 1) -[2617974.632] {Default Queue} wl_registry#1158.global(36, "xdg_activation_v1", 1) -[2617974.641] {Default Queue} wl_registry#1158.global(37, "mutter_x11_interop", 1) -[2617974.648] {Default Queue} wl_registry#1158.global(38, "wl_seat", 9) -[2617974.654] {Default Queue} -> wl_registry#1158.bind(38, "wl_seat", 1, new id [unknown]#1176) -[2617974.660] {Default Queue} wl_registry#1158.global(39, "wp_cursor_shape_manager_v1", 2) -[2617974.664] {Default Queue} wl_registry#1158.global(40, "wl_output", 4) -[2617974.668] {Default Queue} -> wl_registry#1158.bind(40, "wl_output", 1, new id [unknown]#1177) -[2617974.674] {Default Queue} wl_callback#1159.done(0) -[2617974.678] {Default Queue} discarded wl_surface#1127.enter(wl_output#18) -[2617974.682] {Default Queue} discarded wl_surface#1127.enter(wl_output#57) -[2617974.687] {Default Queue} discarded wl_surface#1127.enter(wl_output#89) -[2617974.690] {Default Queue} discarded wl_surface#1127.enter(wl_output#121) -[2617974.695] {Default Queue} discarded wl_surface#1127.enter(wl_output#153) -[2617974.700] {Default Queue} discarded wl_surface#1127.enter(wl_output#185) -[2617974.706] {Default Queue} discarded wl_surface#1127.enter(wl_output#217) -[2617974.711] {Default Queue} discarded wl_surface#1127.enter(wl_output#249) -[2617974.716] {Default Queue} discarded wl_surface#1127.enter(wl_output#281) -[2617974.722] {Default Queue} discarded wl_surface#1127.enter(wl_output#313) -[2617974.726] {Default Queue} discarded wl_surface#1127.enter(wl_output#345) -[2617974.730] {Default Queue} discarded wl_surface#1127.enter(wl_output#377) -[2617974.734] {Default Queue} discarded wl_surface#1127.enter(wl_output#409) -[2617974.738] {Default Queue} discarded wl_surface#1127.enter(wl_output#441) -[2617974.742] {Default Queue} discarded wl_surface#1127.enter(wl_output#473) -[2617974.746] {Default Queue} discarded wl_surface#1127.enter(wl_output#505) -[2617974.749] {Default Queue} discarded wl_surface#1127.enter(wl_output#537) -[2617974.753] {Default Queue} discarded wl_surface#1127.enter(wl_output#569) -[2617974.757] {Default Queue} discarded wl_surface#1127.enter(wl_output#601) -[2617974.761] {Default Queue} discarded wl_surface#1127.enter(wl_output#633) -[2617974.765] {Default Queue} discarded wl_surface#1127.enter(wl_output#665) -[2617974.769] {Default Queue} discarded wl_surface#1127.enter(wl_output#697) -[2617974.773] {Default Queue} discarded wl_surface#1127.enter(wl_output#729) -[2617974.777] {Default Queue} discarded wl_surface#1127.enter(wl_output#761) -[2617974.780] {Default Queue} discarded wl_surface#1127.enter(wl_output#793) -[2617974.784] {Default Queue} discarded wl_surface#1127.enter(wl_output#825) -[2617974.788] {Default Queue} discarded wl_surface#1127.enter(wl_output#857) -[2617974.792] {Default Queue} discarded wl_surface#1127.enter(wl_output#889) -[2617974.796] {Default Queue} discarded wl_surface#1127.enter(wl_output#921) -[2617974.800] {Default Queue} discarded wl_surface#1127.enter(wl_output#953) -[2617974.804] {Default Queue} discarded wl_surface#1127.enter(wl_output#985) -[2617974.807] {Default Queue} discarded wl_surface#1127.enter(wl_output#1017) -[2617974.811] {Default Queue} discarded wl_surface#1127.enter(wl_output#1049) -[2617974.815] {Default Queue} discarded wl_surface#1127.enter(wl_output#1081) -[2617974.819] {Default Queue} discarded wl_surface#1127.enter(wl_output#1113) -[2617974.823] {Default Queue} discarded wl_surface#1127.enter(wl_output#1145) -[2617974.828] {Default Queue} -> wl_compositor#1068.create_surface(new id wl_surface#1159) -[2617974.832] {Default Queue} -> wl_subcompositor#1165.get_subsurface(new id wl_subsurface#1178, wl_surface#1159, wl_surface#1063) -[2617974.841] {Default Queue} -> wl_subsurface#1178.set_desync() -[2617974.845] {Default Queue} -> wl_subsurface#1178.set_position(0, 0) -[2617974.849] {Default Queue} -> wl_subsurface#1178.place_above(wl_surface#1063) -[2617974.899] {Default Queue} -> wl_shm#1167.create_pool(new id wl_shm_pool#1179, fd 189, 16) -[2617974.906] {Default Queue} -> wl_shm#1167.create_pool(new id wl_shm_pool#1180, fd 190, 16) -[2617974.910] {Default Queue} -> wl_shm_pool#1179.create_buffer(new id wl_buffer#1181, 0, 2, 2, 8, 0) -[2617974.919] {Default Queue} -> wl_shm_pool#1180.create_buffer(new id wl_buffer#1182, 0, 2, 2, 8, 0) -[2617974.930] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) -[2617974.934] {Default Queue} -> wl_surface#1159.commit() -[2617974.939] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) -[2617974.944] {Default Queue} -> wl_surface#1159.commit() -[2617974.948] {Default Queue} -> wl_compositor#1164.create_region(new id wl_region#1183) -[2617974.952] {Default Queue} -> wl_compositor#1164.create_region(new id wl_region#1184) -[2617974.956] {Default Queue} -> wl_region#1183.subtract(0, 0, 2, 2) -[2617974.960] {Default Queue} -> wl_region#1183.add(0, 0, 0, 0) -[2617974.965] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2617974.969] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2617974.973] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) -[2617974.977] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2617974.985] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) -[2617974.989] {Default Queue} -> wl_surface#1159.commit() -[2617975.024] {Default Queue} -> wl_shm#1169.create_pool(new id wl_shm_pool#1185, fd 193, 640) -[2617975.031] {Default Queue} -> wl_shm#1169.create_pool(new id wl_shm_pool#1186, fd 194, 640) -[2617975.035] {Default Queue} -> wl_shm_pool#1185.create_buffer(new id wl_buffer#1187, 0, 10, 16, 40, 0) -[2617975.040] {Default Queue} -> wl_shm_pool#1186.create_buffer(new id wl_buffer#1188, 0, 10, 16, 40, 0) -[2617975.047] {Default Queue} -> wl_compositor#1164.create_surface(new id wl_surface#1189) -[2617975.051] {Default Queue} -> wl_surface#1189.attach(wl_buffer#1187, 0, 0) -[2617975.056] {Default Queue} -> wl_surface#1189.commit() -[2617975.061] {Default Queue} -> wl_surface#1189.attach(wl_buffer#1187, 0, 0) -[2617975.065] {Default Queue} -> wl_surface#1189.commit() -[2617975.070] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2617975.077] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1190) -[2617975.083] {Default Queue} -> wl_display#1.sync(new id wl_callback#1191) -[2617983.842] {Display Queue} wl_display#1.delete_id(1191) -[2617983.869] {Default Queue} wl_keyboard#1160.keymap(1, fd 189, 68213) -[2617983.877] {Default Queue} wl_keyboard#1160.enter(566, wl_surface#19, array[0]) -[2617983.884] {Default Queue} wl_keyboard#1160.modifiers(566, 0, 0, 16, 0) -[2617983.889] {Default Queue} discarded wl_shm#1167.format(875709016) -[2617983.894] {Default Queue} discarded wl_shm#1167.format(1) -[2617983.898] {Default Queue} discarded wl_shm#1167.format(0) -[2617983.902] {Default Queue} discarded wl_shm#1167.format(875708993) -[2617983.906] {Default Queue} discarded wl_shm#1168.format(875709016) -[2617983.910] {Default Queue} discarded wl_shm#1168.format(1) -[2617983.914] {Default Queue} discarded wl_shm#1168.format(0) -[2617983.918] {Default Queue} discarded wl_shm#1168.format(875708993) -[2617983.922] {Default Queue} discarded wl_shm#1169.format(875709016) -[2617983.926] {Default Queue} discarded wl_shm#1169.format(1) -[2617983.930] {Default Queue} discarded wl_shm#1169.format(0) -[2617983.934] {Default Queue} discarded wl_shm#1169.format(875708993) -[2617983.937] {Default Queue} wl_seat#1176.capabilities(7) -[2617983.942] {Default Queue} -> wl_seat#1176.get_keyboard(new id wl_keyboard#1192) -[2617983.947] {Default Queue} -> wl_seat#1176.get_pointer(new id wl_pointer#1193) -[2617983.951] {Default Queue} -> wl_data_device_manager#1172.get_data_device(new id wl_data_device#1194, wl_seat#1176) -[2617983.956] {Default Queue} -> zwp_primary_selection_device_manager_v1#1174.get_device(new id zwp_primary_selection_device_v1#1195, wl_seat#1176) -[2617983.964] {Default Queue} wl_output#1177.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617983.969] {Default Queue} wl_output#1177.mode(3, 1280, 800, 60000) -[2617983.974] {Default Queue} discarded wl_surface#3.enter(wl_output#1177) -[2617983.978] {Default Queue} discarded wl_surface#999.enter(wl_output#1177) -[2617983.982] {Default Queue} discarded wl_surface#423.enter(wl_output#1177) -[2617983.991] {Default Queue} discarded wl_surface#1127.enter(wl_output#1177) -[2617983.999] {Default Queue} discarded wl_surface#1063.enter(wl_output#1177) -[2617984.003] {Default Queue} discarded wl_surface#455.enter(wl_output#1177) -[2617984.008] {Default Queue} discarded wl_surface#903.enter(wl_output#1177) -[2617984.012] {Default Queue} discarded wl_surface#775.enter(wl_output#1177) -[2617984.016] {Default Queue} discarded wl_surface#135.enter(wl_output#1177) -[2617984.020] {Default Queue} discarded wl_surface#1031.enter(wl_output#1177) -[2617984.024] {Default Queue} discarded wl_surface#615.enter(wl_output#1177) -[2617984.028] {Default Queue} discarded wl_surface#231.enter(wl_output#1177) -[2617984.031] {Default Queue} discarded wl_surface#359.enter(wl_output#1177) -[2617984.035] {Default Queue} discarded wl_surface#583.enter(wl_output#1177) -[2617984.040] {Default Queue} discarded wl_surface#743.enter(wl_output#1177) -[2617984.044] {Default Queue} discarded wl_surface#967.enter(wl_output#1177) -[2617984.047] {Default Queue} discarded wl_surface#103.enter(wl_output#1177) -[2617984.051] {Default Queue} discarded wl_surface#327.enter(wl_output#1177) -[2617984.055] {Default Queue} discarded wl_surface#43.enter(wl_output#1177) -[2617984.059] {Default Queue} discarded wl_surface#807.enter(wl_output#1177) -[2617984.064] {Default Queue} discarded wl_surface#19.enter(wl_output#1177) -[2617984.068] {Default Queue} discarded wl_surface#199.enter(wl_output#1177) -[2617984.072] {Default Queue} discarded wl_surface#391.enter(wl_output#1177) -[2617984.076] {Default Queue} discarded wl_surface#935.enter(wl_output#1177) -[2617984.079] {Default Queue} discarded wl_surface#711.enter(wl_output#1177) -[2617984.083] {Default Queue} discarded wl_surface#871.enter(wl_output#1177) -[2617984.087] {Default Queue} discarded wl_surface#263.enter(wl_output#1177) -[2617984.091] {Default Queue} discarded wl_surface#551.enter(wl_output#1177) -[2617984.095] {Default Queue} discarded wl_surface#647.enter(wl_output#1177) -[2617984.099] {Default Queue} discarded wl_surface#71.enter(wl_output#1177) -[2617984.103] {Default Queue} discarded wl_surface#839.enter(wl_output#1177) -[2617984.107] {Default Queue} discarded wl_surface#1095.enter(wl_output#1177) -[2617984.111] {Default Queue} discarded wl_surface#487.enter(wl_output#1177) -[2617984.115] {Default Queue} discarded wl_surface#519.enter(wl_output#1177) -[2617984.119] {Default Queue} discarded wl_surface#295.enter(wl_output#1177) -[2617984.123] {Default Queue} discarded wl_surface#167.enter(wl_output#1177) -[2617984.127] {Default Queue} discarded wl_surface#679.enter(wl_output#1177) -[2617984.131] {Default Queue} wl_registry#1190.global(1, "wl_compositor", 6) -[2617984.137] {Default Queue} -> wl_registry#1190.bind(1, "wl_compositor", 1, new id [unknown]#1196) -[2617984.143] {Default Queue} wl_registry#1190.global(2, "wl_subcompositor", 1) -[2617984.148] {Default Queue} -> wl_registry#1190.bind(2, "wl_subcompositor", 1, new id [unknown]#1197) -[2617984.152] {Default Queue} wl_registry#1190.global(3, "xdg_wm_base", 6) -[2617984.157] {Default Queue} -> wl_registry#1190.bind(3, "xdg_wm_base", 1, new id [unknown]#1198) -[2617984.162] {Default Queue} wl_registry#1190.global(6, "zwlr_layer_shell_v1", 5) -[2617984.166] {Default Queue} wl_registry#1190.global(7, "ext_session_lock_manager_v1", 1) -[2617984.171] {Default Queue} wl_registry#1190.global(8, "wl_shm", 2) -[2617984.176] {Default Queue} -> wl_registry#1190.bind(8, "wl_shm", 1, new id [unknown]#1199) -[2617984.181] {Default Queue} -> wl_registry#1190.bind(8, "wl_shm", 1, new id [unknown]#1200) -[2617984.185] {Default Queue} -> wl_registry#1190.bind(8, "wl_shm", 1, new id [unknown]#1201) -[2617984.189] {Default Queue} wl_registry#1190.global(9, "zxdg_output_manager_v1", 3) -[2617984.194] {Default Queue} wl_registry#1190.global(10, "wp_fractional_scale_manager_v1", 1) -[2617984.198] {Default Queue} wl_registry#1190.global(11, "zwp_tablet_manager_v2", 1) -[2617984.203] {Default Queue} wl_registry#1190.global(12, "zwp_pointer_gestures_v1", 3) -[2617984.211] {Default Queue} wl_registry#1190.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617984.217] {Default Queue} -> wl_registry#1190.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1202) -[2617984.221] {Default Queue} wl_registry#1190.global(14, "zwp_pointer_constraints_v1", 1) -[2617984.226] {Default Queue} -> wl_registry#1190.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1203) -[2617984.230] {Default Queue} wl_registry#1190.global(15, "ext_idle_notifier_v1", 2) -[2617984.235] {Default Queue} wl_registry#1190.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617984.240] {Default Queue} wl_registry#1190.global(17, "wl_data_device_manager", 3) -[2617984.244] {Default Queue} -> wl_registry#1190.bind(17, "wl_data_device_manager", 2, new id [unknown]#1204) -[2617984.249] {Default Queue} -> wl_data_device_manager#1204.create_data_source(new id wl_data_source#1205) -[2617984.253] {Default Queue} -> wl_data_source#1205.offer("text/plain") -[2617984.257] {Default Queue} -> wl_data_source#1205.offer("text/plain;charset=utf-8") -[2617984.262] {Default Queue} -> wl_data_source#1205.offer("TEXT") -[2617984.266] {Default Queue} -> wl_data_source#1205.offer("STRING") -[2617984.270] {Default Queue} -> wl_data_source#1205.offer("UTF8_STRING") -[2617984.274] {Default Queue} wl_registry#1190.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617984.279] {Default Queue} -> wl_registry#1190.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1206) -[2617984.287] {Default Queue} -> zwp_primary_selection_device_manager_v1#1206.create_source(new id zwp_primary_selection_source_v1#1207) -[2617984.295] {Default Queue} -> zwp_primary_selection_source_v1#1207.offer("text/plain") -[2617984.299] {Default Queue} -> zwp_primary_selection_source_v1#1207.offer("text/plain;charset=utf-8") -[2617984.303] {Default Queue} -> zwp_primary_selection_source_v1#1207.offer("TEXT") -[2617984.307] {Default Queue} -> zwp_primary_selection_source_v1#1207.offer("STRING") -[2617984.311] {Default Queue} -> zwp_primary_selection_source_v1#1207.offer("UTF8_STRING") -[2617984.315] {Default Queue} wl_registry#1190.global(19, "zwlr_data_control_manager_v1", 2) -[2617984.319] {Default Queue} wl_registry#1190.global(20, "ext_data_control_manager_v1", 1) -[2617984.324] {Default Queue} wl_registry#1190.global(21, "wp_presentation", 2) -[2617984.328] {Default Queue} wl_registry#1190.global(22, "wp_security_context_manager_v1", 1) -[2617984.333] {Default Queue} wl_registry#1190.global(23, "zwp_text_input_manager_v3", 1) -[2617984.337] {Default Queue} wl_registry#1190.global(24, "zwp_input_method_manager_v2", 1) -[2617984.341] {Default Queue} wl_registry#1190.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617984.345] {Default Queue} wl_registry#1190.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617984.350] {Default Queue} wl_registry#1190.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617984.354] {Default Queue} wl_registry#1190.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617984.358] {Default Queue} wl_registry#1190.global(29, "ext_workspace_manager_v1", 1) -[2617984.363] {Default Queue} wl_registry#1190.global(30, "zwlr_output_manager_v1", 4) -[2617984.367] {Default Queue} wl_registry#1190.global(31, "zwlr_screencopy_manager_v1", 3) -[2617984.371] {Default Queue} wl_registry#1190.global(32, "wp_viewporter", 1) -[2617984.376] {Default Queue} wl_registry#1190.global(33, "zxdg_exporter_v2", 1) -[2617984.380] {Default Queue} wl_registry#1190.global(34, "zxdg_importer_v2", 1) -[2617984.384] {Default Queue} wl_registry#1190.global(36, "xdg_activation_v1", 1) -[2617984.389] {Default Queue} wl_registry#1190.global(37, "mutter_x11_interop", 1) -[2617984.393] {Default Queue} wl_registry#1190.global(38, "wl_seat", 9) -[2617984.398] {Default Queue} -> wl_registry#1190.bind(38, "wl_seat", 1, new id [unknown]#1208) -[2617984.402] {Default Queue} wl_registry#1190.global(39, "wp_cursor_shape_manager_v1", 2) -[2617984.406] {Default Queue} wl_registry#1190.global(40, "wl_output", 4) -[2617984.411] {Default Queue} -> wl_registry#1190.bind(40, "wl_output", 1, new id [unknown]#1209) -[2617984.418] {Default Queue} wl_callback#1191.done(0) -[2617984.424] {Default Queue} discarded wl_surface#1159.enter(wl_output#18) -[2617984.428] {Default Queue} discarded wl_surface#1159.enter(wl_output#57) -[2617984.433] {Default Queue} discarded wl_surface#1159.enter(wl_output#89) -[2617984.437] {Default Queue} discarded wl_surface#1159.enter(wl_output#121) -[2617984.441] {Default Queue} discarded wl_surface#1159.enter(wl_output#153) -[2617984.444] {Default Queue} discarded wl_surface#1159.enter(wl_output#185) -[2617984.448] {Default Queue} discarded wl_surface#1159.enter(wl_output#217) -[2617984.452] {Default Queue} discarded wl_surface#1159.enter(wl_output#249) -[2617984.456] {Default Queue} discarded wl_surface#1159.enter(wl_output#281) -[2617984.460] {Default Queue} discarded wl_surface#1159.enter(wl_output#313) -[2617984.464] {Default Queue} discarded wl_surface#1159.enter(wl_output#345) -[2617984.468] {Default Queue} discarded wl_surface#1159.enter(wl_output#377) -[2617984.472] {Default Queue} discarded wl_surface#1159.enter(wl_output#409) -[2617984.476] {Default Queue} discarded wl_surface#1159.enter(wl_output#441) -[2617984.480] {Default Queue} discarded wl_surface#1159.enter(wl_output#473) -[2617984.485] {Default Queue} discarded wl_surface#1159.enter(wl_output#505) -[2617984.489] {Default Queue} discarded wl_surface#1159.enter(wl_output#537) -[2617984.492] {Default Queue} discarded wl_surface#1159.enter(wl_output#569) -[2617984.496] {Default Queue} discarded wl_surface#1159.enter(wl_output#601) -[2617984.500] {Default Queue} discarded wl_surface#1159.enter(wl_output#633) -[2617984.504] {Default Queue} discarded wl_surface#1159.enter(wl_output#665) -[2617984.508] {Default Queue} discarded wl_surface#1159.enter(wl_output#697) -[2617984.512] {Default Queue} discarded wl_surface#1159.enter(wl_output#729) -[2617984.516] {Default Queue} discarded wl_surface#1159.enter(wl_output#761) -[2617984.520] {Default Queue} discarded wl_surface#1159.enter(wl_output#793) -[2617984.524] {Default Queue} discarded wl_surface#1159.enter(wl_output#825) -[2617984.527] {Default Queue} discarded wl_surface#1159.enter(wl_output#857) -[2617984.531] {Default Queue} discarded wl_surface#1159.enter(wl_output#889) -[2617984.535] {Default Queue} discarded wl_surface#1159.enter(wl_output#921) -[2617984.539] {Default Queue} discarded wl_surface#1159.enter(wl_output#953) -[2617984.543] {Default Queue} discarded wl_surface#1159.enter(wl_output#985) -[2617984.547] {Default Queue} discarded wl_surface#1159.enter(wl_output#1017) -[2617984.550] {Default Queue} discarded wl_surface#1159.enter(wl_output#1049) -[2617984.554] {Default Queue} discarded wl_surface#1159.enter(wl_output#1081) -[2617984.558] {Default Queue} discarded wl_surface#1159.enter(wl_output#1113) -[2617984.562] {Default Queue} discarded wl_surface#1159.enter(wl_output#1145) -[2617984.566] {Default Queue} discarded wl_surface#1159.enter(wl_output#1177) -[2617984.571] {Default Queue} -> wl_compositor#1068.create_surface(new id wl_surface#1191) -[2617984.575] {Default Queue} -> wl_subcompositor#1197.get_subsurface(new id wl_subsurface#1210, wl_surface#1191, wl_surface#1063) -[2617984.584] {Default Queue} -> wl_subsurface#1210.set_desync() -[2617984.588] {Default Queue} -> wl_subsurface#1210.set_position(0, 0) -[2617984.593] {Default Queue} -> wl_subsurface#1210.place_above(wl_surface#1063) -[2617984.644] {Default Queue} -> wl_shm#1199.create_pool(new id wl_shm_pool#1211, fd 194, 16) -[2617984.651] {Default Queue} -> wl_shm#1199.create_pool(new id wl_shm_pool#1212, fd 195, 16) -[2617984.656] {Default Queue} -> wl_shm_pool#1211.create_buffer(new id wl_buffer#1213, 0, 2, 2, 8, 0) -[2617984.661] {Default Queue} -> wl_shm_pool#1212.create_buffer(new id wl_buffer#1214, 0, 2, 2, 8, 0) -[2617984.670] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) -[2617984.675] {Default Queue} -> wl_surface#1191.commit() -[2617984.680] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) -[2617984.685] {Default Queue} -> wl_surface#1191.commit() -[2617984.689] {Default Queue} -> wl_compositor#1196.create_region(new id wl_region#1215) -[2617984.696] {Default Queue} -> wl_compositor#1196.create_region(new id wl_region#1216) -[2617984.702] {Default Queue} -> wl_region#1215.subtract(0, 0, 2, 2) -[2617984.706] {Default Queue} -> wl_region#1215.add(0, 0, 0, 0) -[2617984.711] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2617984.715] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2617984.719] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) -[2617984.723] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2617984.735] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) -[2617984.740] {Default Queue} -> wl_surface#1191.commit() -[2617984.774] {Default Queue} -> wl_shm#1201.create_pool(new id wl_shm_pool#1217, fd 198, 640) -[2617984.781] {Default Queue} -> wl_shm#1201.create_pool(new id wl_shm_pool#1218, fd 199, 640) -[2617984.785] {Default Queue} -> wl_shm_pool#1217.create_buffer(new id wl_buffer#1219, 0, 10, 16, 40, 0) -[2617984.790] {Default Queue} -> wl_shm_pool#1218.create_buffer(new id wl_buffer#1220, 0, 10, 16, 40, 0) -[2617984.797] {Default Queue} -> wl_compositor#1196.create_surface(new id wl_surface#1221) -[2617984.802] {Default Queue} -> wl_surface#1221.attach(wl_buffer#1219, 0, 0) -[2617984.806] {Default Queue} -> wl_surface#1221.commit() -[2617984.811] {Default Queue} -> wl_surface#1221.attach(wl_buffer#1219, 0, 0) -[2617984.815] {Default Queue} -> wl_surface#1221.commit() -[2617984.820] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2617984.828] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1222) -[2617984.833] {Default Queue} -> wl_display#1.sync(new id wl_callback#1223) -[2617988.852] {Display Queue} wl_display#1.delete_id(1223) -[2617988.866] {Default Queue} wl_keyboard#1192.keymap(1, fd 194, 68213) -[2617988.878] {Default Queue} wl_keyboard#1192.enter(566, wl_surface#19, array[0]) -[2617988.884] {Default Queue} wl_keyboard#1192.modifiers(566, 0, 0, 16, 0) -[2617988.889] {Default Queue} discarded wl_shm#1199.format(875709016) -[2617988.893] {Default Queue} discarded wl_shm#1199.format(1) -[2617988.897] {Default Queue} discarded wl_shm#1199.format(0) -[2617988.901] {Default Queue} discarded wl_shm#1199.format(875708993) -[2617988.905] {Default Queue} discarded wl_shm#1200.format(875709016) -[2617988.909] {Default Queue} discarded wl_shm#1200.format(1) -[2617988.914] {Default Queue} discarded wl_shm#1200.format(0) -[2617988.918] {Default Queue} discarded wl_shm#1200.format(875708993) -[2617988.922] {Default Queue} discarded wl_shm#1201.format(875709016) -[2617988.926] {Default Queue} discarded wl_shm#1201.format(1) -[2617988.930] {Default Queue} discarded wl_shm#1201.format(0) -[2617988.934] {Default Queue} discarded wl_shm#1201.format(875708993) -[2617988.938] {Default Queue} wl_seat#1208.capabilities(7) -[2617988.942] {Default Queue} -> wl_seat#1208.get_keyboard(new id wl_keyboard#1224) -[2617988.947] {Default Queue} -> wl_seat#1208.get_pointer(new id wl_pointer#1225) -[2617988.952] {Default Queue} -> wl_data_device_manager#1204.get_data_device(new id wl_data_device#1226, wl_seat#1208) -[2617988.957] {Default Queue} -> zwp_primary_selection_device_manager_v1#1206.get_device(new id zwp_primary_selection_device_v1#1227, wl_seat#1208) -[2617988.966] {Default Queue} wl_output#1209.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617988.971] {Default Queue} wl_output#1209.mode(3, 1280, 800, 60000) -[2617988.975] {Default Queue} discarded wl_surface#3.enter(wl_output#1209) -[2617988.980] {Default Queue} discarded wl_surface#999.enter(wl_output#1209) -[2617988.984] {Default Queue} discarded wl_surface#1159.enter(wl_output#1209) -[2617988.988] {Default Queue} discarded wl_surface#423.enter(wl_output#1209) -[2617988.992] {Default Queue} discarded wl_surface#1127.enter(wl_output#1209) -[2617988.996] {Default Queue} discarded wl_surface#1063.enter(wl_output#1209) -[2617988.999] {Default Queue} discarded wl_surface#455.enter(wl_output#1209) -[2617989.003] {Default Queue} discarded wl_surface#903.enter(wl_output#1209) -[2617989.011] {Default Queue} discarded wl_surface#775.enter(wl_output#1209) -[2617989.019] {Default Queue} discarded wl_surface#135.enter(wl_output#1209) -[2617989.023] {Default Queue} discarded wl_surface#1031.enter(wl_output#1209) -[2617989.027] {Default Queue} discarded wl_surface#615.enter(wl_output#1209) -[2617989.031] {Default Queue} discarded wl_surface#231.enter(wl_output#1209) -[2617989.035] {Default Queue} discarded wl_surface#359.enter(wl_output#1209) -[2617989.038] {Default Queue} discarded wl_surface#583.enter(wl_output#1209) -[2617989.042] {Default Queue} discarded wl_surface#743.enter(wl_output#1209) -[2617989.046] {Default Queue} discarded wl_surface#967.enter(wl_output#1209) -[2617989.050] {Default Queue} discarded wl_surface#103.enter(wl_output#1209) -[2617989.054] {Default Queue} discarded wl_surface#327.enter(wl_output#1209) -[2617989.058] {Default Queue} discarded wl_surface#43.enter(wl_output#1209) -[2617989.062] {Default Queue} discarded wl_surface#807.enter(wl_output#1209) -[2617989.066] {Default Queue} discarded wl_surface#19.enter(wl_output#1209) -[2617989.070] {Default Queue} discarded wl_surface#199.enter(wl_output#1209) -[2617989.074] {Default Queue} discarded wl_surface#391.enter(wl_output#1209) -[2617989.078] {Default Queue} discarded wl_surface#935.enter(wl_output#1209) -[2617989.082] {Default Queue} discarded wl_surface#711.enter(wl_output#1209) -[2617989.086] {Default Queue} discarded wl_surface#871.enter(wl_output#1209) -[2617989.090] {Default Queue} discarded wl_surface#263.enter(wl_output#1209) -[2617989.094] {Default Queue} discarded wl_surface#551.enter(wl_output#1209) -[2617989.097] {Default Queue} discarded wl_surface#647.enter(wl_output#1209) -[2617989.102] {Default Queue} discarded wl_surface#71.enter(wl_output#1209) -[2617989.106] {Default Queue} discarded wl_surface#839.enter(wl_output#1209) -[2617989.110] {Default Queue} discarded wl_surface#1095.enter(wl_output#1209) -[2617989.114] {Default Queue} discarded wl_surface#487.enter(wl_output#1209) -[2617989.118] {Default Queue} discarded wl_surface#519.enter(wl_output#1209) -[2617989.122] {Default Queue} discarded wl_surface#295.enter(wl_output#1209) -[2617989.125] {Default Queue} discarded wl_surface#167.enter(wl_output#1209) -[2617989.129] {Default Queue} discarded wl_surface#679.enter(wl_output#1209) -[2617989.133] {Default Queue} wl_registry#1222.global(1, "wl_compositor", 6) -[2617989.138] {Default Queue} -> wl_registry#1222.bind(1, "wl_compositor", 1, new id [unknown]#1228) -[2617989.143] {Default Queue} wl_registry#1222.global(2, "wl_subcompositor", 1) -[2617989.148] {Default Queue} -> wl_registry#1222.bind(2, "wl_subcompositor", 1, new id [unknown]#1229) -[2617989.152] {Default Queue} wl_registry#1222.global(3, "xdg_wm_base", 6) -[2617989.157] {Default Queue} -> wl_registry#1222.bind(3, "xdg_wm_base", 1, new id [unknown]#1230) -[2617989.161] {Default Queue} wl_registry#1222.global(6, "zwlr_layer_shell_v1", 5) -[2617989.166] {Default Queue} wl_registry#1222.global(7, "ext_session_lock_manager_v1", 1) -[2617989.170] {Default Queue} wl_registry#1222.global(8, "wl_shm", 2) -[2617989.175] {Default Queue} -> wl_registry#1222.bind(8, "wl_shm", 1, new id [unknown]#1231) -[2617989.179] {Default Queue} -> wl_registry#1222.bind(8, "wl_shm", 1, new id [unknown]#1232) -[2617989.183] {Default Queue} -> wl_registry#1222.bind(8, "wl_shm", 1, new id [unknown]#1233) -[2617989.188] {Default Queue} wl_registry#1222.global(9, "zxdg_output_manager_v1", 3) -[2617989.192] {Default Queue} wl_registry#1222.global(10, "wp_fractional_scale_manager_v1", 1) -[2617989.196] {Default Queue} wl_registry#1222.global(11, "zwp_tablet_manager_v2", 1) -[2617989.201] {Default Queue} wl_registry#1222.global(12, "zwp_pointer_gestures_v1", 3) -[2617989.207] {Default Queue} wl_registry#1222.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617989.214] {Default Queue} -> wl_registry#1222.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1234) -[2617989.221] {Default Queue} wl_registry#1222.global(14, "zwp_pointer_constraints_v1", 1) -[2617989.228] {Default Queue} -> wl_registry#1222.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1235) -[2617989.240] {Default Queue} wl_registry#1222.global(15, "ext_idle_notifier_v1", 2) -[2617989.249] {Default Queue} wl_registry#1222.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617989.256] {Default Queue} wl_registry#1222.global(17, "wl_data_device_manager", 3) -[2617989.263] {Default Queue} -> wl_registry#1222.bind(17, "wl_data_device_manager", 2, new id [unknown]#1236) -[2617989.268] {Default Queue} -> wl_data_device_manager#1236.create_data_source(new id wl_data_source#1237) -[2617989.273] {Default Queue} -> wl_data_source#1237.offer("text/plain") -[2617989.277] {Default Queue} -> wl_data_source#1237.offer("text/plain;charset=utf-8") -[2617989.281] {Default Queue} -> wl_data_source#1237.offer("TEXT") -[2617989.285] {Default Queue} -> wl_data_source#1237.offer("STRING") -[2617989.289] {Default Queue} -> wl_data_source#1237.offer("UTF8_STRING") -[2617989.293] {Default Queue} wl_registry#1222.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617989.298] {Default Queue} -> wl_registry#1222.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1238) -[2617989.307] {Default Queue} -> zwp_primary_selection_device_manager_v1#1238.create_source(new id zwp_primary_selection_source_v1#1239) -[2617989.314] {Default Queue} -> zwp_primary_selection_source_v1#1239.offer("text/plain") -[2617989.318] {Default Queue} -> zwp_primary_selection_source_v1#1239.offer("text/plain;charset=utf-8") -[2617989.323] {Default Queue} -> zwp_primary_selection_source_v1#1239.offer("TEXT") -[2617989.327] {Default Queue} -> zwp_primary_selection_source_v1#1239.offer("STRING") -[2617989.331] {Default Queue} -> zwp_primary_selection_source_v1#1239.offer("UTF8_STRING") -[2617989.335] {Default Queue} wl_registry#1222.global(19, "zwlr_data_control_manager_v1", 2) -[2617989.342] {Default Queue} wl_registry#1222.global(20, "ext_data_control_manager_v1", 1) -[2617989.347] {Default Queue} wl_registry#1222.global(21, "wp_presentation", 2) -[2617989.351] {Default Queue} wl_registry#1222.global(22, "wp_security_context_manager_v1", 1) -[2617989.355] {Default Queue} wl_registry#1222.global(23, "zwp_text_input_manager_v3", 1) -[2617989.359] {Default Queue} wl_registry#1222.global(24, "zwp_input_method_manager_v2", 1) -[2617989.364] {Default Queue} wl_registry#1222.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617989.368] {Default Queue} wl_registry#1222.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617989.372] {Default Queue} wl_registry#1222.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617989.377] {Default Queue} wl_registry#1222.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617989.381] {Default Queue} wl_registry#1222.global(29, "ext_workspace_manager_v1", 1) -[2617989.386] {Default Queue} wl_registry#1222.global(30, "zwlr_output_manager_v1", 4) -[2617989.390] {Default Queue} wl_registry#1222.global(31, "zwlr_screencopy_manager_v1", 3) -[2617989.394] {Default Queue} wl_registry#1222.global(32, "wp_viewporter", 1) -[2617989.398] {Default Queue} wl_registry#1222.global(33, "zxdg_exporter_v2", 1) -[2617989.403] {Default Queue} wl_registry#1222.global(34, "zxdg_importer_v2", 1) -[2617989.407] {Default Queue} wl_registry#1222.global(36, "xdg_activation_v1", 1) -[2617989.411] {Default Queue} wl_registry#1222.global(37, "mutter_x11_interop", 1) -[2617989.415] {Default Queue} wl_registry#1222.global(38, "wl_seat", 9) -[2617989.420] {Default Queue} -> wl_registry#1222.bind(38, "wl_seat", 1, new id [unknown]#1240) -[2617989.424] {Default Queue} wl_registry#1222.global(39, "wp_cursor_shape_manager_v1", 2) -[2617989.429] {Default Queue} wl_registry#1222.global(40, "wl_output", 4) -[2617989.433] {Default Queue} -> wl_registry#1222.bind(40, "wl_output", 1, new id [unknown]#1241) -[2617989.438] {Default Queue} wl_callback#1223.done(0) -[2617989.442] {Default Queue} discarded wl_surface#1191.enter(wl_output#18) -[2617989.446] {Default Queue} discarded wl_surface#1191.enter(wl_output#57) -[2617989.450] {Default Queue} discarded wl_surface#1191.enter(wl_output#89) -[2617989.454] {Default Queue} discarded wl_surface#1191.enter(wl_output#121) -[2617989.461] {Default Queue} discarded wl_surface#1191.enter(wl_output#153) -[2617989.466] {Default Queue} discarded wl_surface#1191.enter(wl_output#185) -[2617989.470] {Default Queue} discarded wl_surface#1191.enter(wl_output#217) -[2617989.474] {Default Queue} discarded wl_surface#1191.enter(wl_output#249) -[2617989.478] {Default Queue} discarded wl_surface#1191.enter(wl_output#281) -[2617989.482] {Default Queue} discarded wl_surface#1191.enter(wl_output#313) -[2617989.486] {Default Queue} discarded wl_surface#1191.enter(wl_output#345) -[2617989.490] {Default Queue} discarded wl_surface#1191.enter(wl_output#377) -[2617989.494] {Default Queue} discarded wl_surface#1191.enter(wl_output#409) -[2617989.497] {Default Queue} discarded wl_surface#1191.enter(wl_output#441) -[2617989.501] {Default Queue} discarded wl_surface#1191.enter(wl_output#473) -[2617989.505] {Default Queue} discarded wl_surface#1191.enter(wl_output#505) -[2617989.509] {Default Queue} discarded wl_surface#1191.enter(wl_output#537) -[2617989.513] {Default Queue} discarded wl_surface#1191.enter(wl_output#569) -[2617989.517] {Default Queue} discarded wl_surface#1191.enter(wl_output#601) -[2617989.521] {Default Queue} discarded wl_surface#1191.enter(wl_output#633) -[2617989.525] {Default Queue} discarded wl_surface#1191.enter(wl_output#665) -[2617989.529] {Default Queue} discarded wl_surface#1191.enter(wl_output#697) -[2617989.533] {Default Queue} discarded wl_surface#1191.enter(wl_output#729) -[2617989.537] {Default Queue} discarded wl_surface#1191.enter(wl_output#761) -[2617989.541] {Default Queue} discarded wl_surface#1191.enter(wl_output#793) -[2617989.545] {Default Queue} discarded wl_surface#1191.enter(wl_output#825) -[2617989.548] {Default Queue} discarded wl_surface#1191.enter(wl_output#857) -[2617989.552] {Default Queue} discarded wl_surface#1191.enter(wl_output#889) -[2617989.556] {Default Queue} discarded wl_surface#1191.enter(wl_output#921) -[2617989.560] {Default Queue} discarded wl_surface#1191.enter(wl_output#953) -[2617989.564] {Default Queue} discarded wl_surface#1191.enter(wl_output#985) -[2617989.568] {Default Queue} discarded wl_surface#1191.enter(wl_output#1017) -[2617989.572] {Default Queue} discarded wl_surface#1191.enter(wl_output#1049) -[2617989.577] {Default Queue} discarded wl_surface#1191.enter(wl_output#1081) -[2617989.583] {Default Queue} discarded wl_surface#1191.enter(wl_output#1113) -[2617989.595] {Default Queue} discarded wl_surface#1191.enter(wl_output#1145) -[2617989.602] {Default Queue} discarded wl_surface#1191.enter(wl_output#1177) -[2617989.607] {Default Queue} discarded wl_surface#1191.enter(wl_output#1209) -[2617989.613] {Default Queue} -> wl_compositor#1068.create_surface(new id wl_surface#1223) -[2617989.620] {Default Queue} -> wl_subcompositor#1229.get_subsurface(new id wl_subsurface#1242, wl_surface#1223, wl_surface#1063) -[2617989.631] {Default Queue} -> wl_subsurface#1242.set_desync() -[2617989.636] {Default Queue} -> wl_subsurface#1242.set_position(0, 0) -[2617989.642] {Default Queue} -> wl_subsurface#1242.place_above(wl_surface#1063) -[2617989.711] {Default Queue} -> wl_shm#1231.create_pool(new id wl_shm_pool#1243, fd 199, 16) -[2617989.722] {Default Queue} -> wl_shm#1231.create_pool(new id wl_shm_pool#1244, fd 200, 16) -[2617989.728] {Default Queue} -> wl_shm_pool#1243.create_buffer(new id wl_buffer#1245, 0, 2, 2, 8, 0) -[2617989.734] {Default Queue} -> wl_shm_pool#1244.create_buffer(new id wl_buffer#1246, 0, 2, 2, 8, 0) -[2617989.745] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) -[2617989.752] {Default Queue} -> wl_surface#1223.commit() -[2617989.759] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) -[2617989.766] {Default Queue} -> wl_surface#1223.commit() -[2617989.772] {Default Queue} -> wl_compositor#1228.create_region(new id wl_region#1247) -[2617989.778] {Default Queue} -> wl_compositor#1228.create_region(new id wl_region#1248) -[2617989.784] {Default Queue} -> wl_region#1247.subtract(0, 0, 2, 2) -[2617989.790] {Default Queue} -> wl_region#1247.add(0, 0, 0, 0) -[2617989.801] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2617989.812] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2617989.818] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) -[2617989.824] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2617989.835] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) -[2617989.841] {Default Queue} -> wl_surface#1223.commit() -[2617989.932] {Default Queue} -> wl_shm#1233.create_pool(new id wl_shm_pool#1249, fd 203, 640) -[2617989.947] {Default Queue} -> wl_shm#1233.create_pool(new id wl_shm_pool#1250, fd 204, 640) -[2617989.954] {Default Queue} -> wl_shm_pool#1249.create_buffer(new id wl_buffer#1251, 0, 10, 16, 40, 0) -[2617989.959] {Default Queue} -> wl_shm_pool#1250.create_buffer(new id wl_buffer#1252, 0, 10, 16, 40, 0) -[2617989.969] {Default Queue} -> wl_compositor#1228.create_surface(new id wl_surface#1253) -[2617989.975] {Default Queue} -> wl_surface#1253.attach(wl_buffer#1251, 0, 0) -[2617989.980] {Default Queue} -> wl_surface#1253.commit() -[2617989.985] {Default Queue} -> wl_surface#1253.attach(wl_buffer#1251, 0, 0) -[2617989.990] {Default Queue} -> wl_surface#1253.commit() -[2617989.996] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2617990.004] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1254) -[2617990.010] {Default Queue} -> wl_display#1.sync(new id wl_callback#1255) -[2617999.059] {Display Queue} wl_display#1.delete_id(1255) -[2617999.072] {Default Queue} wl_keyboard#1224.keymap(1, fd 199, 68213) -[2617999.078] {Default Queue} wl_keyboard#1224.enter(566, wl_surface#19, array[0]) -[2617999.084] {Default Queue} wl_keyboard#1224.modifiers(566, 0, 0, 16, 0) -[2617999.089] {Default Queue} discarded wl_shm#1231.format(875709016) -[2617999.093] {Default Queue} discarded wl_shm#1231.format(1) -[2617999.097] {Default Queue} discarded wl_shm#1231.format(0) -[2617999.101] {Default Queue} discarded wl_shm#1231.format(875708993) -[2617999.105] {Default Queue} discarded wl_shm#1232.format(875709016) -[2617999.109] {Default Queue} discarded wl_shm#1232.format(1) -[2617999.113] {Default Queue} discarded wl_shm#1232.format(0) -[2617999.117] {Default Queue} discarded wl_shm#1232.format(875708993) -[2617999.121] {Default Queue} discarded wl_shm#1233.format(875709016) -[2617999.125] {Default Queue} discarded wl_shm#1233.format(1) -[2617999.129] {Default Queue} discarded wl_shm#1233.format(0) -[2617999.133] {Default Queue} discarded wl_shm#1233.format(875708993) -[2617999.137] {Default Queue} wl_seat#1240.capabilities(7) -[2617999.142] {Default Queue} -> wl_seat#1240.get_keyboard(new id wl_keyboard#1256) -[2617999.146] {Default Queue} -> wl_seat#1240.get_pointer(new id wl_pointer#1257) -[2617999.151] {Default Queue} -> wl_data_device_manager#1236.get_data_device(new id wl_data_device#1258, wl_seat#1240) -[2617999.156] {Default Queue} -> zwp_primary_selection_device_manager_v1#1238.get_device(new id zwp_primary_selection_device_v1#1259, wl_seat#1240) -[2617999.164] {Default Queue} wl_output#1241.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2617999.171] {Default Queue} wl_output#1241.mode(3, 1280, 800, 60000) -[2617999.176] {Default Queue} discarded wl_surface#3.enter(wl_output#1241) -[2617999.181] {Default Queue} discarded wl_surface#999.enter(wl_output#1241) -[2617999.185] {Default Queue} discarded wl_surface#1191.enter(wl_output#1241) -[2617999.189] {Default Queue} discarded wl_surface#1159.enter(wl_output#1241) -[2617999.193] {Default Queue} discarded wl_surface#423.enter(wl_output#1241) -[2617999.197] {Default Queue} discarded wl_surface#1127.enter(wl_output#1241) -[2617999.201] {Default Queue} discarded wl_surface#1063.enter(wl_output#1241) -[2617999.205] {Default Queue} discarded wl_surface#455.enter(wl_output#1241) -[2617999.209] {Default Queue} discarded wl_surface#903.enter(wl_output#1241) -[2617999.213] {Default Queue} discarded wl_surface#775.enter(wl_output#1241) -[2617999.217] {Default Queue} discarded wl_surface#135.enter(wl_output#1241) -[2617999.221] {Default Queue} discarded wl_surface#1031.enter(wl_output#1241) -[2617999.229] {Default Queue} discarded wl_surface#615.enter(wl_output#1241) -[2617999.237] {Default Queue} discarded wl_surface#231.enter(wl_output#1241) -[2617999.241] {Default Queue} discarded wl_surface#359.enter(wl_output#1241) -[2617999.245] {Default Queue} discarded wl_surface#583.enter(wl_output#1241) -[2617999.249] {Default Queue} discarded wl_surface#743.enter(wl_output#1241) -[2617999.253] {Default Queue} discarded wl_surface#967.enter(wl_output#1241) -[2617999.257] {Default Queue} discarded wl_surface#103.enter(wl_output#1241) -[2617999.261] {Default Queue} discarded wl_surface#327.enter(wl_output#1241) -[2617999.264] {Default Queue} discarded wl_surface#43.enter(wl_output#1241) -[2617999.268] {Default Queue} discarded wl_surface#807.enter(wl_output#1241) -[2617999.272] {Default Queue} discarded wl_surface#19.enter(wl_output#1241) -[2617999.276] {Default Queue} discarded wl_surface#199.enter(wl_output#1241) -[2617999.280] {Default Queue} discarded wl_surface#391.enter(wl_output#1241) -[2617999.284] {Default Queue} discarded wl_surface#935.enter(wl_output#1241) -[2617999.288] {Default Queue} discarded wl_surface#711.enter(wl_output#1241) -[2617999.292] {Default Queue} discarded wl_surface#871.enter(wl_output#1241) -[2617999.295] {Default Queue} discarded wl_surface#263.enter(wl_output#1241) -[2617999.300] {Default Queue} discarded wl_surface#551.enter(wl_output#1241) -[2617999.304] {Default Queue} discarded wl_surface#647.enter(wl_output#1241) -[2617999.308] {Default Queue} discarded wl_surface#71.enter(wl_output#1241) -[2617999.311] {Default Queue} discarded wl_surface#839.enter(wl_output#1241) -[2617999.315] {Default Queue} discarded wl_surface#1095.enter(wl_output#1241) -[2617999.319] {Default Queue} discarded wl_surface#487.enter(wl_output#1241) -[2617999.323] {Default Queue} discarded wl_surface#519.enter(wl_output#1241) -[2617999.327] {Default Queue} discarded wl_surface#295.enter(wl_output#1241) -[2617999.331] {Default Queue} discarded wl_surface#167.enter(wl_output#1241) -[2617999.335] {Default Queue} discarded wl_surface#679.enter(wl_output#1241) -[2617999.339] {Default Queue} wl_registry#1254.global(1, "wl_compositor", 6) -[2617999.344] {Default Queue} -> wl_registry#1254.bind(1, "wl_compositor", 1, new id [unknown]#1260) -[2617999.349] {Default Queue} wl_registry#1254.global(2, "wl_subcompositor", 1) -[2617999.353] {Default Queue} -> wl_registry#1254.bind(2, "wl_subcompositor", 1, new id [unknown]#1261) -[2617999.358] {Default Queue} wl_registry#1254.global(3, "xdg_wm_base", 6) -[2617999.363] {Default Queue} -> wl_registry#1254.bind(3, "xdg_wm_base", 1, new id [unknown]#1262) -[2617999.367] {Default Queue} wl_registry#1254.global(6, "zwlr_layer_shell_v1", 5) -[2617999.372] {Default Queue} wl_registry#1254.global(7, "ext_session_lock_manager_v1", 1) -[2617999.376] {Default Queue} wl_registry#1254.global(8, "wl_shm", 2) -[2617999.381] {Default Queue} -> wl_registry#1254.bind(8, "wl_shm", 1, new id [unknown]#1263) -[2617999.386] {Default Queue} -> wl_registry#1254.bind(8, "wl_shm", 1, new id [unknown]#1264) -[2617999.390] {Default Queue} -> wl_registry#1254.bind(8, "wl_shm", 1, new id [unknown]#1265) -[2617999.394] {Default Queue} wl_registry#1254.global(9, "zxdg_output_manager_v1", 3) -[2617999.399] {Default Queue} wl_registry#1254.global(10, "wp_fractional_scale_manager_v1", 1) -[2617999.403] {Default Queue} wl_registry#1254.global(11, "zwp_tablet_manager_v2", 1) -[2617999.407] {Default Queue} wl_registry#1254.global(12, "zwp_pointer_gestures_v1", 3) -[2617999.412] {Default Queue} wl_registry#1254.global(13, "zwp_relative_pointer_manager_v1", 1) -[2617999.416] {Default Queue} -> wl_registry#1254.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1266) -[2617999.422] {Default Queue} wl_registry#1254.global(14, "zwp_pointer_constraints_v1", 1) -[2617999.426] {Default Queue} -> wl_registry#1254.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1267) -[2617999.431] {Default Queue} wl_registry#1254.global(15, "ext_idle_notifier_v1", 2) -[2617999.435] {Default Queue} wl_registry#1254.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2617999.443] {Default Queue} wl_registry#1254.global(17, "wl_data_device_manager", 3) -[2617999.450] {Default Queue} -> wl_registry#1254.bind(17, "wl_data_device_manager", 2, new id [unknown]#1268) -[2617999.454] {Default Queue} -> wl_data_device_manager#1268.create_data_source(new id wl_data_source#1269) -[2617999.458] {Default Queue} -> wl_data_source#1269.offer("text/plain") -[2617999.463] {Default Queue} -> wl_data_source#1269.offer("text/plain;charset=utf-8") -[2617999.467] {Default Queue} -> wl_data_source#1269.offer("TEXT") -[2617999.471] {Default Queue} -> wl_data_source#1269.offer("STRING") -[2617999.475] {Default Queue} -> wl_data_source#1269.offer("UTF8_STRING") -[2617999.479] {Default Queue} wl_registry#1254.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2617999.484] {Default Queue} -> wl_registry#1254.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1270) -[2617999.492] {Default Queue} -> zwp_primary_selection_device_manager_v1#1270.create_source(new id zwp_primary_selection_source_v1#1271) -[2617999.499] {Default Queue} -> zwp_primary_selection_source_v1#1271.offer("text/plain") -[2617999.503] {Default Queue} -> zwp_primary_selection_source_v1#1271.offer("text/plain;charset=utf-8") -[2617999.507] {Default Queue} -> zwp_primary_selection_source_v1#1271.offer("TEXT") -[2617999.512] {Default Queue} -> zwp_primary_selection_source_v1#1271.offer("STRING") -[2617999.516] {Default Queue} -> zwp_primary_selection_source_v1#1271.offer("UTF8_STRING") -[2617999.520] {Default Queue} wl_registry#1254.global(19, "zwlr_data_control_manager_v1", 2) -[2617999.524] {Default Queue} wl_registry#1254.global(20, "ext_data_control_manager_v1", 1) -[2617999.529] {Default Queue} wl_registry#1254.global(21, "wp_presentation", 2) -[2617999.533] {Default Queue} wl_registry#1254.global(22, "wp_security_context_manager_v1", 1) -[2617999.537] {Default Queue} wl_registry#1254.global(23, "zwp_text_input_manager_v3", 1) -[2617999.542] {Default Queue} wl_registry#1254.global(24, "zwp_input_method_manager_v2", 1) -[2617999.546] {Default Queue} wl_registry#1254.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2617999.550] {Default Queue} wl_registry#1254.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2617999.555] {Default Queue} wl_registry#1254.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2617999.559] {Default Queue} wl_registry#1254.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2617999.563] {Default Queue} wl_registry#1254.global(29, "ext_workspace_manager_v1", 1) -[2617999.568] {Default Queue} wl_registry#1254.global(30, "zwlr_output_manager_v1", 4) -[2617999.572] {Default Queue} wl_registry#1254.global(31, "zwlr_screencopy_manager_v1", 3) -[2617999.576] {Default Queue} wl_registry#1254.global(32, "wp_viewporter", 1) -[2617999.580] {Default Queue} wl_registry#1254.global(33, "zxdg_exporter_v2", 1) -[2617999.584] {Default Queue} wl_registry#1254.global(34, "zxdg_importer_v2", 1) -[2617999.589] {Default Queue} wl_registry#1254.global(36, "xdg_activation_v1", 1) -[2617999.593] {Default Queue} wl_registry#1254.global(37, "mutter_x11_interop", 1) -[2617999.597] {Default Queue} wl_registry#1254.global(38, "wl_seat", 9) -[2617999.602] {Default Queue} -> wl_registry#1254.bind(38, "wl_seat", 1, new id [unknown]#1272) -[2617999.607] {Default Queue} wl_registry#1254.global(39, "wp_cursor_shape_manager_v1", 2) -[2617999.611] {Default Queue} wl_registry#1254.global(40, "wl_output", 4) -[2617999.616] {Default Queue} -> wl_registry#1254.bind(40, "wl_output", 1, new id [unknown]#1273) -[2617999.620] {Default Queue} wl_callback#1255.done(0) -[2617999.625] {Default Queue} discarded wl_surface#1223.enter(wl_output#18) -[2617999.630] {Default Queue} discarded wl_surface#1223.enter(wl_output#57) -[2617999.634] {Default Queue} discarded wl_surface#1223.enter(wl_output#89) -[2617999.638] {Default Queue} discarded wl_surface#1223.enter(wl_output#121) -[2617999.642] {Default Queue} discarded wl_surface#1223.enter(wl_output#153) -[2617999.646] {Default Queue} discarded wl_surface#1223.enter(wl_output#185) -[2617999.653] {Default Queue} discarded wl_surface#1223.enter(wl_output#217) -[2617999.658] {Default Queue} discarded wl_surface#1223.enter(wl_output#249) -[2617999.662] {Default Queue} discarded wl_surface#1223.enter(wl_output#281) -[2617999.666] {Default Queue} discarded wl_surface#1223.enter(wl_output#313) -[2617999.670] {Default Queue} discarded wl_surface#1223.enter(wl_output#345) -[2617999.674] {Default Queue} discarded wl_surface#1223.enter(wl_output#377) -[2617999.678] {Default Queue} discarded wl_surface#1223.enter(wl_output#409) -[2617999.682] {Default Queue} discarded wl_surface#1223.enter(wl_output#441) -[2617999.686] {Default Queue} discarded wl_surface#1223.enter(wl_output#473) -[2617999.690] {Default Queue} discarded wl_surface#1223.enter(wl_output#505) -[2617999.693] {Default Queue} discarded wl_surface#1223.enter(wl_output#537) -[2617999.697] {Default Queue} discarded wl_surface#1223.enter(wl_output#569) -[2617999.701] {Default Queue} discarded wl_surface#1223.enter(wl_output#601) -[2617999.705] {Default Queue} discarded wl_surface#1223.enter(wl_output#633) -[2617999.709] {Default Queue} discarded wl_surface#1223.enter(wl_output#665) -[2617999.713] {Default Queue} discarded wl_surface#1223.enter(wl_output#697) -[2617999.717] {Default Queue} discarded wl_surface#1223.enter(wl_output#729) -[2617999.721] {Default Queue} discarded wl_surface#1223.enter(wl_output#761) -[2617999.725] {Default Queue} discarded wl_surface#1223.enter(wl_output#793) -[2617999.729] {Default Queue} discarded wl_surface#1223.enter(wl_output#825) -[2617999.733] {Default Queue} discarded wl_surface#1223.enter(wl_output#857) -[2617999.737] {Default Queue} discarded wl_surface#1223.enter(wl_output#889) -[2617999.741] {Default Queue} discarded wl_surface#1223.enter(wl_output#921) -[2617999.745] {Default Queue} discarded wl_surface#1223.enter(wl_output#953) -[2617999.749] {Default Queue} discarded wl_surface#1223.enter(wl_output#985) -[2617999.752] {Default Queue} discarded wl_surface#1223.enter(wl_output#1017) -[2617999.756] {Default Queue} discarded wl_surface#1223.enter(wl_output#1049) -[2617999.760] {Default Queue} discarded wl_surface#1223.enter(wl_output#1081) -[2617999.764] {Default Queue} discarded wl_surface#1223.enter(wl_output#1113) -[2617999.768] {Default Queue} discarded wl_surface#1223.enter(wl_output#1145) -[2617999.772] {Default Queue} discarded wl_surface#1223.enter(wl_output#1177) -[2617999.776] {Default Queue} discarded wl_surface#1223.enter(wl_output#1209) -[2617999.780] {Default Queue} discarded wl_surface#1223.enter(wl_output#1241) -[2617999.785] {Default Queue} -> wl_compositor#1036.create_surface(new id wl_surface#1255) -[2617999.789] {Default Queue} -> wl_subcompositor#1261.get_subsurface(new id wl_subsurface#1274, wl_surface#1255, wl_surface#1031) -[2617999.797] {Default Queue} -> wl_subsurface#1274.set_desync() -[2617999.802] {Default Queue} -> wl_subsurface#1274.set_position(0, 0) -[2617999.806] {Default Queue} -> wl_subsurface#1274.place_above(wl_surface#1031) -[2617999.849] {Default Queue} -> wl_shm#1263.create_pool(new id wl_shm_pool#1275, fd 204, 16) -[2617999.856] {Default Queue} -> wl_shm#1263.create_pool(new id wl_shm_pool#1276, fd 205, 16) -[2617999.866] {Default Queue} -> wl_shm_pool#1275.create_buffer(new id wl_buffer#1277, 0, 2, 2, 8, 0) -[2617999.871] {Default Queue} -> wl_shm_pool#1276.create_buffer(new id wl_buffer#1278, 0, 2, 2, 8, 0) -[2617999.879] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) -[2617999.884] {Default Queue} -> wl_surface#1255.commit() -[2617999.890] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) -[2617999.894] {Default Queue} -> wl_surface#1255.commit() -[2617999.898] {Default Queue} -> wl_compositor#1260.create_region(new id wl_region#1279) -[2617999.902] {Default Queue} -> wl_compositor#1260.create_region(new id wl_region#1280) -[2617999.907] {Default Queue} -> wl_region#1279.subtract(0, 0, 2, 2) -[2617999.911] {Default Queue} -> wl_region#1279.add(0, 0, 0, 0) -[2617999.916] {Default Queue} -> wl_surface#1255.set_opaque_region(wl_region#1280) -[2617999.920] {Default Queue} -> wl_surface#1255.set_input_region(wl_region#1279) -[2617999.928] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2617999.934] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2617999.942] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) -[2617999.947] {Default Queue} -> wl_surface#1255.commit() -[2617999.981] {Default Queue} -> wl_shm#1265.create_pool(new id wl_shm_pool#1281, fd 208, 640) -[2617999.988] {Default Queue} -> wl_shm#1265.create_pool(new id wl_shm_pool#1282, fd 209, 640) -[2617999.992] {Default Queue} -> wl_shm_pool#1281.create_buffer(new id wl_buffer#1283, 0, 10, 16, 40, 0) -[2617999.997] {Default Queue} -> wl_shm_pool#1282.create_buffer(new id wl_buffer#1284, 0, 10, 16, 40, 0) -[2618000.004] {Default Queue} -> wl_compositor#1260.create_surface(new id wl_surface#1285) -[2618000.009] {Default Queue} -> wl_surface#1285.attach(wl_buffer#1283, 0, 0) -[2618000.013] {Default Queue} -> wl_surface#1285.commit() -[2618000.018] {Default Queue} -> wl_surface#1285.attach(wl_buffer#1283, 0, 0) -[2618000.023] {Default Queue} -> wl_surface#1285.commit() -[2618000.029] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2618000.034] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618000.042] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1286) -[2618000.047] {Default Queue} -> wl_display#1.sync(new id wl_callback#1287) -[2618004.447] {Display Queue} wl_display#1.delete_id(1287) -[2618004.460] {Default Queue} wl_keyboard#1256.keymap(1, fd 204, 68213) -[2618004.467] {Default Queue} wl_keyboard#1256.enter(566, wl_surface#19, array[0]) -[2618004.473] {Default Queue} wl_keyboard#1256.modifiers(566, 0, 0, 16, 0) -[2618004.479] {Default Queue} discarded wl_shm#1263.format(875709016) -[2618004.484] {Default Queue} discarded wl_shm#1263.format(1) -[2618004.489] {Default Queue} discarded wl_shm#1263.format(0) -[2618004.494] {Default Queue} discarded wl_shm#1263.format(875708993) -[2618004.500] {Default Queue} discarded wl_shm#1264.format(875709016) -[2618004.504] {Default Queue} discarded wl_shm#1264.format(1) -[2618004.509] {Default Queue} discarded wl_shm#1264.format(0) -[2618004.514] {Default Queue} discarded wl_shm#1264.format(875708993) -[2618004.519] {Default Queue} discarded wl_shm#1265.format(875709016) -[2618004.524] {Default Queue} discarded wl_shm#1265.format(1) -[2618004.529] {Default Queue} discarded wl_shm#1265.format(0) -[2618004.534] {Default Queue} discarded wl_shm#1265.format(875708993) -[2618004.539] {Default Queue} wl_seat#1272.capabilities(7) -[2618004.544] {Default Queue} -> wl_seat#1272.get_keyboard(new id wl_keyboard#1288) -[2618004.550] {Default Queue} -> wl_seat#1272.get_pointer(new id wl_pointer#1289) -[2618004.555] {Default Queue} -> wl_data_device_manager#1268.get_data_device(new id wl_data_device#1290, wl_seat#1272) -[2618004.561] {Default Queue} -> zwp_primary_selection_device_manager_v1#1270.get_device(new id zwp_primary_selection_device_v1#1291, wl_seat#1272) -[2618004.571] {Default Queue} wl_output#1273.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618004.577] {Default Queue} wl_output#1273.mode(3, 1280, 800, 60000) -[2618004.583] {Default Queue} discarded wl_surface#3.enter(wl_output#1273) -[2618004.588] {Default Queue} discarded wl_surface#999.enter(wl_output#1273) -[2618004.593] {Default Queue} discarded wl_surface#1191.enter(wl_output#1273) -[2618004.598] {Default Queue} discarded wl_surface#1159.enter(wl_output#1273) -[2618004.603] {Default Queue} discarded wl_surface#423.enter(wl_output#1273) -[2618004.608] {Default Queue} discarded wl_surface#1127.enter(wl_output#1273) -[2618004.613] {Default Queue} discarded wl_surface#1063.enter(wl_output#1273) -[2618004.618] {Default Queue} discarded wl_surface#455.enter(wl_output#1273) -[2618004.623] {Default Queue} discarded wl_surface#903.enter(wl_output#1273) -[2618004.628] {Default Queue} discarded wl_surface#775.enter(wl_output#1273) -[2618004.632] {Default Queue} discarded wl_surface#135.enter(wl_output#1273) -[2618004.637] {Default Queue} discarded wl_surface#1031.enter(wl_output#1273) -[2618004.642] {Default Queue} discarded wl_surface#615.enter(wl_output#1273) -[2618004.652] {Default Queue} discarded wl_surface#231.enter(wl_output#1273) -[2618004.663] {Default Queue} discarded wl_surface#359.enter(wl_output#1273) -[2618004.668] {Default Queue} discarded wl_surface#583.enter(wl_output#1273) -[2618004.673] {Default Queue} discarded wl_surface#743.enter(wl_output#1273) -[2618004.678] {Default Queue} discarded wl_surface#967.enter(wl_output#1273) -[2618004.683] {Default Queue} discarded wl_surface#103.enter(wl_output#1273) -[2618004.688] {Default Queue} discarded wl_surface#327.enter(wl_output#1273) -[2618004.693] {Default Queue} discarded wl_surface#43.enter(wl_output#1273) -[2618004.698] {Default Queue} discarded wl_surface#807.enter(wl_output#1273) -[2618004.702] {Default Queue} discarded wl_surface#19.enter(wl_output#1273) -[2618004.707] {Default Queue} discarded wl_surface#199.enter(wl_output#1273) -[2618004.712] {Default Queue} discarded wl_surface#391.enter(wl_output#1273) -[2618004.717] {Default Queue} discarded wl_surface#935.enter(wl_output#1273) -[2618004.722] {Default Queue} discarded wl_surface#711.enter(wl_output#1273) -[2618004.727] {Default Queue} discarded wl_surface#1223.enter(wl_output#1273) -[2618004.732] {Default Queue} discarded wl_surface#871.enter(wl_output#1273) -[2618004.737] {Default Queue} discarded wl_surface#263.enter(wl_output#1273) -[2618004.741] {Default Queue} discarded wl_surface#551.enter(wl_output#1273) -[2618004.746] {Default Queue} discarded wl_surface#647.enter(wl_output#1273) -[2618004.751] {Default Queue} discarded wl_surface#71.enter(wl_output#1273) -[2618004.756] {Default Queue} discarded wl_surface#839.enter(wl_output#1273) -[2618004.761] {Default Queue} discarded wl_surface#1095.enter(wl_output#1273) -[2618004.766] {Default Queue} discarded wl_surface#487.enter(wl_output#1273) -[2618004.771] {Default Queue} discarded wl_surface#519.enter(wl_output#1273) -[2618004.776] {Default Queue} discarded wl_surface#295.enter(wl_output#1273) -[2618004.780] {Default Queue} discarded wl_surface#167.enter(wl_output#1273) -[2618004.785] {Default Queue} discarded wl_surface#679.enter(wl_output#1273) -[2618004.790] {Default Queue} wl_registry#1286.global(1, "wl_compositor", 6) -[2618004.797] {Default Queue} -> wl_registry#1286.bind(1, "wl_compositor", 1, new id [unknown]#1292) -[2618004.803] {Default Queue} wl_registry#1286.global(2, "wl_subcompositor", 1) -[2618004.809] {Default Queue} -> wl_registry#1286.bind(2, "wl_subcompositor", 1, new id [unknown]#1293) -[2618004.814] {Default Queue} wl_registry#1286.global(3, "xdg_wm_base", 6) -[2618004.820] {Default Queue} -> wl_registry#1286.bind(3, "xdg_wm_base", 1, new id [unknown]#1294) -[2618004.825] {Default Queue} wl_registry#1286.global(6, "zwlr_layer_shell_v1", 5) -[2618004.831] {Default Queue} wl_registry#1286.global(7, "ext_session_lock_manager_v1", 1) -[2618004.838] {Default Queue} wl_registry#1286.global(8, "wl_shm", 2) -[2618004.844] {Default Queue} -> wl_registry#1286.bind(8, "wl_shm", 1, new id [unknown]#1295) -[2618004.850] {Default Queue} -> wl_registry#1286.bind(8, "wl_shm", 1, new id [unknown]#1296) -[2618004.856] {Default Queue} -> wl_registry#1286.bind(8, "wl_shm", 1, new id [unknown]#1297) -[2618004.869] {Default Queue} wl_registry#1286.global(9, "zxdg_output_manager_v1", 3) -[2618004.875] {Default Queue} wl_registry#1286.global(10, "wp_fractional_scale_manager_v1", 1) -[2618004.880] {Default Queue} wl_registry#1286.global(11, "zwp_tablet_manager_v2", 1) -[2618004.886] {Default Queue} wl_registry#1286.global(12, "zwp_pointer_gestures_v1", 3) -[2618004.891] {Default Queue} wl_registry#1286.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618004.896] {Default Queue} -> wl_registry#1286.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1298) -[2618004.902] {Default Queue} wl_registry#1286.global(14, "zwp_pointer_constraints_v1", 1) -[2618004.908] {Default Queue} -> wl_registry#1286.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1299) -[2618004.913] {Default Queue} wl_registry#1286.global(15, "ext_idle_notifier_v1", 2) -[2618004.919] {Default Queue} wl_registry#1286.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618004.928] {Default Queue} wl_registry#1286.global(17, "wl_data_device_manager", 3) -[2618004.936] {Default Queue} -> wl_registry#1286.bind(17, "wl_data_device_manager", 2, new id [unknown]#1300) -[2618004.941] {Default Queue} -> wl_data_device_manager#1300.create_data_source(new id wl_data_source#1301) -[2618004.947] {Default Queue} -> wl_data_source#1301.offer("text/plain") -[2618004.952] {Default Queue} -> wl_data_source#1301.offer("text/plain;charset=utf-8") -[2618004.957] {Default Queue} -> wl_data_source#1301.offer("TEXT") -[2618004.963] {Default Queue} -> wl_data_source#1301.offer("STRING") -[2618004.968] {Default Queue} -> wl_data_source#1301.offer("UTF8_STRING") -[2618004.973] {Default Queue} wl_registry#1286.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618004.979] {Default Queue} -> wl_registry#1286.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1302) -[2618004.988] {Default Queue} -> zwp_primary_selection_device_manager_v1#1302.create_source(new id zwp_primary_selection_source_v1#1303) -[2618004.998] {Default Queue} -> zwp_primary_selection_source_v1#1303.offer("text/plain") -[2618005.003] {Default Queue} -> zwp_primary_selection_source_v1#1303.offer("text/plain;charset=utf-8") -[2618005.008] {Default Queue} -> zwp_primary_selection_source_v1#1303.offer("TEXT") -[2618005.013] {Default Queue} -> zwp_primary_selection_source_v1#1303.offer("STRING") -[2618005.018] {Default Queue} -> zwp_primary_selection_source_v1#1303.offer("UTF8_STRING") -[2618005.023] {Default Queue} wl_registry#1286.global(19, "zwlr_data_control_manager_v1", 2) -[2618005.029] {Default Queue} wl_registry#1286.global(20, "ext_data_control_manager_v1", 1) -[2618005.034] {Default Queue} wl_registry#1286.global(21, "wp_presentation", 2) -[2618005.040] {Default Queue} wl_registry#1286.global(22, "wp_security_context_manager_v1", 1) -[2618005.045] {Default Queue} wl_registry#1286.global(23, "zwp_text_input_manager_v3", 1) -[2618005.050] {Default Queue} wl_registry#1286.global(24, "zwp_input_method_manager_v2", 1) -[2618005.056] {Default Queue} wl_registry#1286.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618005.061] {Default Queue} wl_registry#1286.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618005.067] {Default Queue} wl_registry#1286.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618005.072] {Default Queue} wl_registry#1286.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618005.077] {Default Queue} wl_registry#1286.global(29, "ext_workspace_manager_v1", 1) -[2618005.083] {Default Queue} wl_registry#1286.global(30, "zwlr_output_manager_v1", 4) -[2618005.088] {Default Queue} wl_registry#1286.global(31, "zwlr_screencopy_manager_v1", 3) -[2618005.094] {Default Queue} wl_registry#1286.global(32, "wp_viewporter", 1) -[2618005.099] {Default Queue} wl_registry#1286.global(33, "zxdg_exporter_v2", 1) -[2618005.104] {Default Queue} wl_registry#1286.global(34, "zxdg_importer_v2", 1) -[2618005.110] {Default Queue} wl_registry#1286.global(36, "xdg_activation_v1", 1) -[2618005.115] {Default Queue} wl_registry#1286.global(37, "mutter_x11_interop", 1) -[2618005.121] {Default Queue} wl_registry#1286.global(38, "wl_seat", 9) -[2618005.126] {Default Queue} -> wl_registry#1286.bind(38, "wl_seat", 1, new id [unknown]#1304) -[2618005.132] {Default Queue} wl_registry#1286.global(39, "wp_cursor_shape_manager_v1", 2) -[2618005.137] {Default Queue} wl_registry#1286.global(40, "wl_output", 4) -[2618005.142] {Default Queue} -> wl_registry#1286.bind(40, "wl_output", 1, new id [unknown]#1305) -[2618005.147] {Default Queue} wl_callback#1287.done(0) -[2618005.151] {Default Queue} discarded wl_surface#1255.enter(wl_output#18) -[2618005.155] {Default Queue} discarded wl_surface#1255.enter(wl_output#57) -[2618005.159] {Default Queue} discarded wl_surface#1255.enter(wl_output#89) -[2618005.164] {Default Queue} discarded wl_surface#1255.enter(wl_output#121) -[2618005.168] {Default Queue} discarded wl_surface#1255.enter(wl_output#153) -[2618005.172] {Default Queue} discarded wl_surface#1255.enter(wl_output#185) -[2618005.178] {Default Queue} discarded wl_surface#1255.enter(wl_output#217) -[2618005.183] {Default Queue} discarded wl_surface#1255.enter(wl_output#249) -[2618005.187] {Default Queue} discarded wl_surface#1255.enter(wl_output#281) -[2618005.191] {Default Queue} discarded wl_surface#1255.enter(wl_output#313) -[2618005.195] {Default Queue} discarded wl_surface#1255.enter(wl_output#345) -[2618005.199] {Default Queue} discarded wl_surface#1255.enter(wl_output#377) -[2618005.203] {Default Queue} discarded wl_surface#1255.enter(wl_output#409) -[2618005.207] {Default Queue} discarded wl_surface#1255.enter(wl_output#441) -[2618005.211] {Default Queue} discarded wl_surface#1255.enter(wl_output#473) -[2618005.214] {Default Queue} discarded wl_surface#1255.enter(wl_output#505) -[2618005.218] {Default Queue} discarded wl_surface#1255.enter(wl_output#537) -[2618005.222] {Default Queue} discarded wl_surface#1255.enter(wl_output#569) -[2618005.226] {Default Queue} discarded wl_surface#1255.enter(wl_output#601) -[2618005.230] {Default Queue} discarded wl_surface#1255.enter(wl_output#633) -[2618005.234] {Default Queue} discarded wl_surface#1255.enter(wl_output#665) -[2618005.238] {Default Queue} discarded wl_surface#1255.enter(wl_output#697) -[2618005.242] {Default Queue} discarded wl_surface#1255.enter(wl_output#729) -[2618005.246] {Default Queue} discarded wl_surface#1255.enter(wl_output#761) -[2618005.250] {Default Queue} discarded wl_surface#1255.enter(wl_output#793) -[2618005.253] {Default Queue} discarded wl_surface#1255.enter(wl_output#825) -[2618005.257] {Default Queue} discarded wl_surface#1255.enter(wl_output#857) -[2618005.261] {Default Queue} discarded wl_surface#1255.enter(wl_output#889) -[2618005.265] {Default Queue} discarded wl_surface#1255.enter(wl_output#921) -[2618005.269] {Default Queue} discarded wl_surface#1255.enter(wl_output#953) -[2618005.273] {Default Queue} discarded wl_surface#1255.enter(wl_output#985) -[2618005.277] {Default Queue} discarded wl_surface#1255.enter(wl_output#1017) -[2618005.281] {Default Queue} discarded wl_surface#1255.enter(wl_output#1049) -[2618005.285] {Default Queue} discarded wl_surface#1255.enter(wl_output#1081) -[2618005.289] {Default Queue} discarded wl_surface#1255.enter(wl_output#1113) -[2618005.292] {Default Queue} discarded wl_surface#1255.enter(wl_output#1145) -[2618005.296] {Default Queue} discarded wl_surface#1255.enter(wl_output#1177) -[2618005.301] {Default Queue} discarded wl_surface#1255.enter(wl_output#1209) -[2618005.305] {Default Queue} discarded wl_surface#1255.enter(wl_output#1241) -[2618005.308] {Default Queue} discarded wl_surface#1255.enter(wl_output#1273) -[2618005.312] {Default Queue} -> wl_compositor#1260.create_surface(new id wl_surface#1287) -[2618005.317] {Default Queue} -> wl_subcompositor#1293.get_subsurface(new id wl_subsurface#1306, wl_surface#1287, wl_surface#1255) -[2618005.325] {Default Queue} -> wl_subsurface#1306.set_desync() -[2618005.329] {Default Queue} -> wl_subsurface#1306.set_position(0, 0) -[2618005.334] {Default Queue} -> wl_subsurface#1306.place_above(wl_surface#1255) -[2618005.375] {Default Queue} -> wl_shm#1295.create_pool(new id wl_shm_pool#1307, fd 209, 16) -[2618005.381] {Default Queue} -> wl_shm#1295.create_pool(new id wl_shm_pool#1308, fd 210, 16) -[2618005.386] {Default Queue} -> wl_shm_pool#1307.create_buffer(new id wl_buffer#1309, 0, 2, 2, 8, 0) -[2618005.391] {Default Queue} -> wl_shm_pool#1308.create_buffer(new id wl_buffer#1310, 0, 2, 2, 8, 0) -[2618005.399] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) -[2618005.404] {Default Queue} -> wl_surface#1287.commit() -[2618005.410] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) -[2618005.414] {Default Queue} -> wl_surface#1287.commit() -[2618005.418] {Default Queue} -> wl_compositor#1292.create_region(new id wl_region#1311) -[2618005.422] {Default Queue} -> wl_compositor#1292.create_region(new id wl_region#1312) -[2618005.426] {Default Queue} -> wl_region#1311.subtract(0, 0, 2, 2) -[2618005.431] {Default Queue} -> wl_region#1311.add(0, 0, 0, 0) -[2618005.438] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2618005.444] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2618005.449] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618005.453] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618005.460] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) -[2618005.464] {Default Queue} -> wl_surface#1287.commit() -[2618005.495] {Default Queue} -> wl_shm#1297.create_pool(new id wl_shm_pool#1313, fd 213, 640) -[2618005.501] {Default Queue} -> wl_shm#1297.create_pool(new id wl_shm_pool#1314, fd 214, 640) -[2618005.505] {Default Queue} -> wl_shm_pool#1313.create_buffer(new id wl_buffer#1315, 0, 10, 16, 40, 0) -[2618005.510] {Default Queue} -> wl_shm_pool#1314.create_buffer(new id wl_buffer#1316, 0, 10, 16, 40, 0) -[2618005.517] {Default Queue} -> wl_compositor#1292.create_surface(new id wl_surface#1317) -[2618005.522] {Default Queue} -> wl_surface#1317.attach(wl_buffer#1315, 0, 0) -[2618005.527] {Default Queue} -> wl_surface#1317.commit() -[2618005.532] {Default Queue} -> wl_surface#1317.attach(wl_buffer#1315, 0, 0) -[2618005.537] {Default Queue} -> wl_surface#1317.commit() -[2618005.542] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618005.548] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618005.552] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618005.559] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1318) -[2618005.564] {Default Queue} -> wl_display#1.sync(new id wl_callback#1319) -[2618008.815] {Display Queue} wl_display#1.delete_id(1319) -[2618008.827] {Default Queue} wl_keyboard#1288.keymap(1, fd 209, 68213) -[2618008.833] {Default Queue} wl_keyboard#1288.enter(566, wl_surface#19, array[0]) -[2618008.838] {Default Queue} wl_keyboard#1288.modifiers(566, 0, 0, 16, 0) -[2618008.843] {Default Queue} discarded wl_shm#1295.format(875709016) -[2618008.847] {Default Queue} discarded wl_shm#1295.format(1) -[2618008.851] {Default Queue} discarded wl_shm#1295.format(0) -[2618008.855] {Default Queue} discarded wl_shm#1295.format(875708993) -[2618008.858] {Default Queue} discarded wl_shm#1296.format(875709016) -[2618008.867] {Default Queue} discarded wl_shm#1296.format(1) -[2618008.871] {Default Queue} discarded wl_shm#1296.format(0) -[2618008.875] {Default Queue} discarded wl_shm#1296.format(875708993) -[2618008.879] {Default Queue} discarded wl_shm#1297.format(875709016) -[2618008.883] {Default Queue} discarded wl_shm#1297.format(1) -[2618008.887] {Default Queue} discarded wl_shm#1297.format(0) -[2618008.891] {Default Queue} discarded wl_shm#1297.format(875708993) -[2618008.895] {Default Queue} wl_seat#1304.capabilities(7) -[2618008.899] {Default Queue} -> wl_seat#1304.get_keyboard(new id wl_keyboard#1320) -[2618008.903] {Default Queue} -> wl_seat#1304.get_pointer(new id wl_pointer#1321) -[2618008.908] {Default Queue} -> wl_data_device_manager#1300.get_data_device(new id wl_data_device#1322, wl_seat#1304) -[2618008.913] {Default Queue} -> zwp_primary_selection_device_manager_v1#1302.get_device(new id zwp_primary_selection_device_v1#1323, wl_seat#1304) -[2618008.921] {Default Queue} wl_output#1305.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618008.926] {Default Queue} wl_output#1305.mode(3, 1280, 800, 60000) -[2618008.930] {Default Queue} discarded wl_surface#3.enter(wl_output#1305) -[2618008.935] {Default Queue} discarded wl_surface#999.enter(wl_output#1305) -[2618008.939] {Default Queue} discarded wl_surface#1191.enter(wl_output#1305) -[2618008.942] {Default Queue} discarded wl_surface#1159.enter(wl_output#1305) -[2618008.946] {Default Queue} discarded wl_surface#423.enter(wl_output#1305) -[2618008.950] {Default Queue} discarded wl_surface#1127.enter(wl_output#1305) -[2618008.954] {Default Queue} discarded wl_surface#1063.enter(wl_output#1305) -[2618008.958] {Default Queue} discarded wl_surface#455.enter(wl_output#1305) -[2618008.962] {Default Queue} discarded wl_surface#903.enter(wl_output#1305) -[2618008.966] {Default Queue} discarded wl_surface#775.enter(wl_output#1305) -[2618008.974] {Default Queue} discarded wl_surface#135.enter(wl_output#1305) -[2618008.981] {Default Queue} discarded wl_surface#1031.enter(wl_output#1305) -[2618008.985] {Default Queue} discarded wl_surface#615.enter(wl_output#1305) -[2618008.988] {Default Queue} discarded wl_surface#231.enter(wl_output#1305) -[2618008.992] {Default Queue} discarded wl_surface#359.enter(wl_output#1305) -[2618008.996] {Default Queue} discarded wl_surface#583.enter(wl_output#1305) -[2618009.000] {Default Queue} discarded wl_surface#743.enter(wl_output#1305) -[2618009.004] {Default Queue} discarded wl_surface#967.enter(wl_output#1305) -[2618009.008] {Default Queue} discarded wl_surface#103.enter(wl_output#1305) -[2618009.011] {Default Queue} discarded wl_surface#327.enter(wl_output#1305) -[2618009.015] {Default Queue} discarded wl_surface#43.enter(wl_output#1305) -[2618009.019] {Default Queue} discarded wl_surface#807.enter(wl_output#1305) -[2618009.023] {Default Queue} discarded wl_surface#19.enter(wl_output#1305) -[2618009.027] {Default Queue} discarded wl_surface#199.enter(wl_output#1305) -[2618009.032] {Default Queue} discarded wl_surface#391.enter(wl_output#1305) -[2618009.035] {Default Queue} discarded wl_surface#935.enter(wl_output#1305) -[2618009.039] {Default Queue} discarded wl_surface#711.enter(wl_output#1305) -[2618009.043] {Default Queue} discarded wl_surface#1223.enter(wl_output#1305) -[2618009.047] {Default Queue} discarded wl_surface#871.enter(wl_output#1305) -[2618009.051] {Default Queue} discarded wl_surface#263.enter(wl_output#1305) -[2618009.055] {Default Queue} discarded wl_surface#551.enter(wl_output#1305) -[2618009.059] {Default Queue} discarded wl_surface#647.enter(wl_output#1305) -[2618009.063] {Default Queue} discarded wl_surface#71.enter(wl_output#1305) -[2618009.066] {Default Queue} discarded wl_surface#839.enter(wl_output#1305) -[2618009.070] {Default Queue} discarded wl_surface#1095.enter(wl_output#1305) -[2618009.074] {Default Queue} discarded wl_surface#487.enter(wl_output#1305) -[2618009.078] {Default Queue} discarded wl_surface#519.enter(wl_output#1305) -[2618009.082] {Default Queue} discarded wl_surface#295.enter(wl_output#1305) -[2618009.086] {Default Queue} discarded wl_surface#167.enter(wl_output#1305) -[2618009.090] {Default Queue} discarded wl_surface#1255.enter(wl_output#1305) -[2618009.094] {Default Queue} discarded wl_surface#679.enter(wl_output#1305) -[2618009.099] {Default Queue} wl_registry#1318.global(1, "wl_compositor", 6) -[2618009.105] {Default Queue} -> wl_registry#1318.bind(1, "wl_compositor", 1, new id [unknown]#1324) -[2618009.114] {Default Queue} wl_registry#1318.global(2, "wl_subcompositor", 1) -[2618009.118] {Default Queue} -> wl_registry#1318.bind(2, "wl_subcompositor", 1, new id [unknown]#1325) -[2618009.123] {Default Queue} wl_registry#1318.global(3, "xdg_wm_base", 6) -[2618009.128] {Default Queue} -> wl_registry#1318.bind(3, "xdg_wm_base", 1, new id [unknown]#1326) -[2618009.132] {Default Queue} wl_registry#1318.global(6, "zwlr_layer_shell_v1", 5) -[2618009.136] {Default Queue} wl_registry#1318.global(7, "ext_session_lock_manager_v1", 1) -[2618009.141] {Default Queue} wl_registry#1318.global(8, "wl_shm", 2) -[2618009.145] {Default Queue} -> wl_registry#1318.bind(8, "wl_shm", 1, new id [unknown]#1327) -[2618009.150] {Default Queue} -> wl_registry#1318.bind(8, "wl_shm", 1, new id [unknown]#1328) -[2618009.155] {Default Queue} -> wl_registry#1318.bind(8, "wl_shm", 1, new id [unknown]#1329) -[2618009.159] {Default Queue} wl_registry#1318.global(9, "zxdg_output_manager_v1", 3) -[2618009.163] {Default Queue} wl_registry#1318.global(10, "wp_fractional_scale_manager_v1", 1) -[2618009.167] {Default Queue} wl_registry#1318.global(11, "zwp_tablet_manager_v2", 1) -[2618009.172] {Default Queue} wl_registry#1318.global(12, "zwp_pointer_gestures_v1", 3) -[2618009.176] {Default Queue} wl_registry#1318.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618009.180] {Default Queue} -> wl_registry#1318.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1330) -[2618009.185] {Default Queue} wl_registry#1318.global(14, "zwp_pointer_constraints_v1", 1) -[2618009.192] {Default Queue} -> wl_registry#1318.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1331) -[2618009.198] {Default Queue} wl_registry#1318.global(15, "ext_idle_notifier_v1", 2) -[2618009.202] {Default Queue} wl_registry#1318.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618009.207] {Default Queue} wl_registry#1318.global(17, "wl_data_device_manager", 3) -[2618009.212] {Default Queue} -> wl_registry#1318.bind(17, "wl_data_device_manager", 2, new id [unknown]#1332) -[2618009.217] {Default Queue} -> wl_data_device_manager#1332.create_data_source(new id wl_data_source#1333) -[2618009.221] {Default Queue} -> wl_data_source#1333.offer("text/plain") -[2618009.225] {Default Queue} -> wl_data_source#1333.offer("text/plain;charset=utf-8") -[2618009.230] {Default Queue} -> wl_data_source#1333.offer("TEXT") -[2618009.234] {Default Queue} -> wl_data_source#1333.offer("STRING") -[2618009.238] {Default Queue} -> wl_data_source#1333.offer("UTF8_STRING") -[2618009.242] {Default Queue} wl_registry#1318.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618009.247] {Default Queue} -> wl_registry#1318.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1334) -[2618009.254] {Default Queue} -> zwp_primary_selection_device_manager_v1#1334.create_source(new id zwp_primary_selection_source_v1#1335) -[2618009.262] {Default Queue} -> zwp_primary_selection_source_v1#1335.offer("text/plain") -[2618009.266] {Default Queue} -> zwp_primary_selection_source_v1#1335.offer("text/plain;charset=utf-8") -[2618009.270] {Default Queue} -> zwp_primary_selection_source_v1#1335.offer("TEXT") -[2618009.275] {Default Queue} -> zwp_primary_selection_source_v1#1335.offer("STRING") -[2618009.279] {Default Queue} -> zwp_primary_selection_source_v1#1335.offer("UTF8_STRING") -[2618009.283] {Default Queue} wl_registry#1318.global(19, "zwlr_data_control_manager_v1", 2) -[2618009.288] {Default Queue} wl_registry#1318.global(20, "ext_data_control_manager_v1", 1) -[2618009.292] {Default Queue} wl_registry#1318.global(21, "wp_presentation", 2) -[2618009.297] {Default Queue} wl_registry#1318.global(22, "wp_security_context_manager_v1", 1) -[2618009.301] {Default Queue} wl_registry#1318.global(23, "zwp_text_input_manager_v3", 1) -[2618009.305] {Default Queue} wl_registry#1318.global(24, "zwp_input_method_manager_v2", 1) -[2618009.310] {Default Queue} wl_registry#1318.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618009.314] {Default Queue} wl_registry#1318.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618009.318] {Default Queue} wl_registry#1318.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618009.323] {Default Queue} wl_registry#1318.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618009.327] {Default Queue} wl_registry#1318.global(29, "ext_workspace_manager_v1", 1) -[2618009.331] {Default Queue} wl_registry#1318.global(30, "zwlr_output_manager_v1", 4) -[2618009.336] {Default Queue} wl_registry#1318.global(31, "zwlr_screencopy_manager_v1", 3) -[2618009.340] {Default Queue} wl_registry#1318.global(32, "wp_viewporter", 1) -[2618009.344] {Default Queue} wl_registry#1318.global(33, "zxdg_exporter_v2", 1) -[2618009.349] {Default Queue} wl_registry#1318.global(34, "zxdg_importer_v2", 1) -[2618009.353] {Default Queue} wl_registry#1318.global(36, "xdg_activation_v1", 1) -[2618009.357] {Default Queue} wl_registry#1318.global(37, "mutter_x11_interop", 1) -[2618009.361] {Default Queue} wl_registry#1318.global(38, "wl_seat", 9) -[2618009.366] {Default Queue} -> wl_registry#1318.bind(38, "wl_seat", 1, new id [unknown]#1336) -[2618009.370] {Default Queue} wl_registry#1318.global(39, "wp_cursor_shape_manager_v1", 2) -[2618009.375] {Default Queue} wl_registry#1318.global(40, "wl_output", 4) -[2618009.379] {Default Queue} -> wl_registry#1318.bind(40, "wl_output", 1, new id [unknown]#1337) -[2618009.383] {Default Queue} wl_callback#1319.done(0) -[2618009.388] {Default Queue} discarded wl_surface#1287.enter(wl_output#18) -[2618009.392] {Default Queue} discarded wl_surface#1287.enter(wl_output#57) -[2618009.398] {Default Queue} discarded wl_surface#1287.enter(wl_output#89) -[2618009.404] {Default Queue} discarded wl_surface#1287.enter(wl_output#121) -[2618009.408] {Default Queue} discarded wl_surface#1287.enter(wl_output#153) -[2618009.412] {Default Queue} discarded wl_surface#1287.enter(wl_output#185) -[2618009.416] {Default Queue} discarded wl_surface#1287.enter(wl_output#217) -[2618009.420] {Default Queue} discarded wl_surface#1287.enter(wl_output#249) -[2618009.424] {Default Queue} discarded wl_surface#1287.enter(wl_output#281) -[2618009.428] {Default Queue} discarded wl_surface#1287.enter(wl_output#313) -[2618009.431] {Default Queue} discarded wl_surface#1287.enter(wl_output#345) -[2618009.435] {Default Queue} discarded wl_surface#1287.enter(wl_output#377) -[2618009.439] {Default Queue} discarded wl_surface#1287.enter(wl_output#409) -[2618009.443] {Default Queue} discarded wl_surface#1287.enter(wl_output#441) -[2618009.447] {Default Queue} discarded wl_surface#1287.enter(wl_output#473) -[2618009.451] {Default Queue} discarded wl_surface#1287.enter(wl_output#505) -[2618009.454] {Default Queue} discarded wl_surface#1287.enter(wl_output#537) -[2618009.458] {Default Queue} discarded wl_surface#1287.enter(wl_output#569) -[2618009.462] {Default Queue} discarded wl_surface#1287.enter(wl_output#601) -[2618009.466] {Default Queue} discarded wl_surface#1287.enter(wl_output#633) -[2618009.470] {Default Queue} discarded wl_surface#1287.enter(wl_output#665) -[2618009.474] {Default Queue} discarded wl_surface#1287.enter(wl_output#697) -[2618009.478] {Default Queue} discarded wl_surface#1287.enter(wl_output#729) -[2618009.482] {Default Queue} discarded wl_surface#1287.enter(wl_output#761) -[2618009.486] {Default Queue} discarded wl_surface#1287.enter(wl_output#793) -[2618009.490] {Default Queue} discarded wl_surface#1287.enter(wl_output#825) -[2618009.493] {Default Queue} discarded wl_surface#1287.enter(wl_output#857) -[2618009.497] {Default Queue} discarded wl_surface#1287.enter(wl_output#889) -[2618009.501] {Default Queue} discarded wl_surface#1287.enter(wl_output#921) -[2618009.505] {Default Queue} discarded wl_surface#1287.enter(wl_output#953) -[2618009.509] {Default Queue} discarded wl_surface#1287.enter(wl_output#985) -[2618009.513] {Default Queue} discarded wl_surface#1287.enter(wl_output#1017) -[2618009.517] {Default Queue} discarded wl_surface#1287.enter(wl_output#1049) -[2618009.521] {Default Queue} discarded wl_surface#1287.enter(wl_output#1081) -[2618009.525] {Default Queue} discarded wl_surface#1287.enter(wl_output#1113) -[2618009.529] {Default Queue} discarded wl_surface#1287.enter(wl_output#1145) -[2618009.533] {Default Queue} discarded wl_surface#1287.enter(wl_output#1177) -[2618009.537] {Default Queue} discarded wl_surface#1287.enter(wl_output#1209) -[2618009.541] {Default Queue} discarded wl_surface#1287.enter(wl_output#1241) -[2618009.545] {Default Queue} discarded wl_surface#1287.enter(wl_output#1273) -[2618009.549] {Default Queue} discarded wl_surface#1287.enter(wl_output#1305) -[2618009.553] {Default Queue} -> wl_compositor#1260.create_surface(new id wl_surface#1319) -[2618009.557] {Default Queue} -> wl_subcompositor#1325.get_subsurface(new id wl_subsurface#1338, wl_surface#1319, wl_surface#1255) -[2618009.565] {Default Queue} -> wl_subsurface#1338.set_desync() -[2618009.569] {Default Queue} -> wl_subsurface#1338.set_position(0, 0) -[2618009.574] {Default Queue} -> wl_subsurface#1338.place_above(wl_surface#1255) -[2618009.617] {Default Queue} -> wl_shm#1327.create_pool(new id wl_shm_pool#1339, fd 214, 16) -[2618009.625] {Default Queue} -> wl_shm#1327.create_pool(new id wl_shm_pool#1340, fd 215, 16) -[2618009.629] {Default Queue} -> wl_shm_pool#1339.create_buffer(new id wl_buffer#1341, 0, 2, 2, 8, 0) -[2618009.634] {Default Queue} -> wl_shm_pool#1340.create_buffer(new id wl_buffer#1342, 0, 2, 2, 8, 0) -[2618009.641] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) -[2618009.646] {Default Queue} -> wl_surface#1319.commit() -[2618009.652] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) -[2618009.656] {Default Queue} -> wl_surface#1319.commit() -[2618009.664] {Default Queue} -> wl_compositor#1324.create_region(new id wl_region#1343) -[2618009.669] {Default Queue} -> wl_compositor#1324.create_region(new id wl_region#1344) -[2618009.674] {Default Queue} -> wl_region#1343.subtract(0, 0, 2, 2) -[2618009.678] {Default Queue} -> wl_region#1343.add(0, 0, 0, 0) -[2618009.683] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2618009.687] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2618009.691] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618009.695] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618009.702] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) -[2618009.707] {Default Queue} -> wl_surface#1319.commit() -[2618009.741] {Default Queue} -> wl_shm#1329.create_pool(new id wl_shm_pool#1345, fd 218, 640) -[2618009.747] {Default Queue} -> wl_shm#1329.create_pool(new id wl_shm_pool#1346, fd 219, 640) -[2618009.752] {Default Queue} -> wl_shm_pool#1345.create_buffer(new id wl_buffer#1347, 0, 10, 16, 40, 0) -[2618009.756] {Default Queue} -> wl_shm_pool#1346.create_buffer(new id wl_buffer#1348, 0, 10, 16, 40, 0) -[2618009.763] {Default Queue} -> wl_compositor#1324.create_surface(new id wl_surface#1349) -[2618009.767] {Default Queue} -> wl_surface#1349.attach(wl_buffer#1347, 0, 0) -[2618009.772] {Default Queue} -> wl_surface#1349.commit() -[2618009.778] {Default Queue} -> wl_surface#1349.attach(wl_buffer#1347, 0, 0) -[2618009.783] {Default Queue} -> wl_surface#1349.commit() -[2618009.788] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618009.794] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618009.798] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618009.806] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1350) -[2618009.810] {Default Queue} -> wl_display#1.sync(new id wl_callback#1351) -[2618018.840] {Display Queue} wl_display#1.delete_id(1351) -[2618018.855] {Default Queue} wl_keyboard#1320.keymap(1, fd 214, 68213) -[2618018.871] {Default Queue} wl_keyboard#1320.enter(566, wl_surface#19, array[0]) -[2618018.896] {Default Queue} wl_keyboard#1320.modifiers(566, 0, 0, 16, 0) -[2618018.910] {Default Queue} discarded wl_shm#1327.format(875709016) -[2618018.916] {Default Queue} discarded wl_shm#1327.format(1) -[2618018.921] {Default Queue} discarded wl_shm#1327.format(0) -[2618018.925] {Default Queue} discarded wl_shm#1327.format(875708993) -[2618018.929] {Default Queue} discarded wl_shm#1328.format(875709016) -[2618018.933] {Default Queue} discarded wl_shm#1328.format(1) -[2618018.937] {Default Queue} discarded wl_shm#1328.format(0) -[2618018.941] {Default Queue} discarded wl_shm#1328.format(875708993) -[2618018.945] {Default Queue} discarded wl_shm#1329.format(875709016) -[2618018.948] {Default Queue} discarded wl_shm#1329.format(1) -[2618018.952] {Default Queue} discarded wl_shm#1329.format(0) -[2618018.956] {Default Queue} discarded wl_shm#1329.format(875708993) -[2618018.960] {Default Queue} wl_seat#1336.capabilities(7) -[2618018.964] {Default Queue} -> wl_seat#1336.get_keyboard(new id wl_keyboard#1352) -[2618018.969] {Default Queue} -> wl_seat#1336.get_pointer(new id wl_pointer#1353) -[2618018.973] {Default Queue} -> wl_data_device_manager#1332.get_data_device(new id wl_data_device#1354, wl_seat#1336) -[2618018.978] {Default Queue} -> zwp_primary_selection_device_manager_v1#1334.get_device(new id zwp_primary_selection_device_v1#1355, wl_seat#1336) -[2618018.986] {Default Queue} wl_output#1337.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618018.992] {Default Queue} wl_output#1337.mode(3, 1280, 800, 60000) -[2618018.996] {Default Queue} discarded wl_surface#3.enter(wl_output#1337) -[2618019.001] {Default Queue} discarded wl_surface#999.enter(wl_output#1337) -[2618019.005] {Default Queue} discarded wl_surface#1191.enter(wl_output#1337) -[2618019.009] {Default Queue} discarded wl_surface#1159.enter(wl_output#1337) -[2618019.013] {Default Queue} discarded wl_surface#423.enter(wl_output#1337) -[2618019.017] {Default Queue} discarded wl_surface#1127.enter(wl_output#1337) -[2618019.026] {Default Queue} discarded wl_surface#1063.enter(wl_output#1337) -[2618019.033] {Default Queue} discarded wl_surface#455.enter(wl_output#1337) -[2618019.037] {Default Queue} discarded wl_surface#903.enter(wl_output#1337) -[2618019.041] {Default Queue} discarded wl_surface#775.enter(wl_output#1337) -[2618019.045] {Default Queue} discarded wl_surface#135.enter(wl_output#1337) -[2618019.048] {Default Queue} discarded wl_surface#1287.enter(wl_output#1337) -[2618019.052] {Default Queue} discarded wl_surface#1031.enter(wl_output#1337) -[2618019.056] {Default Queue} discarded wl_surface#615.enter(wl_output#1337) -[2618019.060] {Default Queue} discarded wl_surface#231.enter(wl_output#1337) -[2618019.064] {Default Queue} discarded wl_surface#359.enter(wl_output#1337) -[2618019.068] {Default Queue} discarded wl_surface#583.enter(wl_output#1337) -[2618019.072] {Default Queue} discarded wl_surface#743.enter(wl_output#1337) -[2618019.076] {Default Queue} discarded wl_surface#967.enter(wl_output#1337) -[2618019.080] {Default Queue} discarded wl_surface#103.enter(wl_output#1337) -[2618019.084] {Default Queue} discarded wl_surface#327.enter(wl_output#1337) -[2618019.088] {Default Queue} discarded wl_surface#43.enter(wl_output#1337) -[2618019.092] {Default Queue} discarded wl_surface#807.enter(wl_output#1337) -[2618019.096] {Default Queue} discarded wl_surface#19.enter(wl_output#1337) -[2618019.100] {Default Queue} discarded wl_surface#199.enter(wl_output#1337) -[2618019.104] {Default Queue} discarded wl_surface#391.enter(wl_output#1337) -[2618019.108] {Default Queue} discarded wl_surface#935.enter(wl_output#1337) -[2618019.112] {Default Queue} discarded wl_surface#711.enter(wl_output#1337) -[2618019.115] {Default Queue} discarded wl_surface#1223.enter(wl_output#1337) -[2618019.119] {Default Queue} discarded wl_surface#871.enter(wl_output#1337) -[2618019.123] {Default Queue} discarded wl_surface#263.enter(wl_output#1337) -[2618019.127] {Default Queue} discarded wl_surface#551.enter(wl_output#1337) -[2618019.131] {Default Queue} discarded wl_surface#647.enter(wl_output#1337) -[2618019.135] {Default Queue} discarded wl_surface#71.enter(wl_output#1337) -[2618019.138] {Default Queue} discarded wl_surface#839.enter(wl_output#1337) -[2618019.142] {Default Queue} discarded wl_surface#1095.enter(wl_output#1337) -[2618019.146] {Default Queue} discarded wl_surface#487.enter(wl_output#1337) -[2618019.150] {Default Queue} discarded wl_surface#519.enter(wl_output#1337) -[2618019.154] {Default Queue} discarded wl_surface#295.enter(wl_output#1337) -[2618019.158] {Default Queue} discarded wl_surface#167.enter(wl_output#1337) -[2618019.162] {Default Queue} discarded wl_surface#1255.enter(wl_output#1337) -[2618019.165] {Default Queue} discarded wl_surface#679.enter(wl_output#1337) -[2618019.169] {Default Queue} wl_registry#1350.global(1, "wl_compositor", 6) -[2618019.175] {Default Queue} -> wl_registry#1350.bind(1, "wl_compositor", 1, new id [unknown]#1356) -[2618019.184] {Default Queue} wl_registry#1350.global(2, "wl_subcompositor", 1) -[2618019.189] {Default Queue} -> wl_registry#1350.bind(2, "wl_subcompositor", 1, new id [unknown]#1357) -[2618019.193] {Default Queue} wl_registry#1350.global(3, "xdg_wm_base", 6) -[2618019.198] {Default Queue} -> wl_registry#1350.bind(3, "xdg_wm_base", 1, new id [unknown]#1358) -[2618019.202] {Default Queue} wl_registry#1350.global(6, "zwlr_layer_shell_v1", 5) -[2618019.207] {Default Queue} wl_registry#1350.global(7, "ext_session_lock_manager_v1", 1) -[2618019.212] {Default Queue} wl_registry#1350.global(8, "wl_shm", 2) -[2618019.217] {Default Queue} -> wl_registry#1350.bind(8, "wl_shm", 1, new id [unknown]#1359) -[2618019.221] {Default Queue} -> wl_registry#1350.bind(8, "wl_shm", 1, new id [unknown]#1360) -[2618019.225] {Default Queue} -> wl_registry#1350.bind(8, "wl_shm", 1, new id [unknown]#1361) -[2618019.229] {Default Queue} wl_registry#1350.global(9, "zxdg_output_manager_v1", 3) -[2618019.234] {Default Queue} wl_registry#1350.global(10, "wp_fractional_scale_manager_v1", 1) -[2618019.239] {Default Queue} wl_registry#1350.global(11, "zwp_tablet_manager_v2", 1) -[2618019.247] {Default Queue} wl_registry#1350.global(12, "zwp_pointer_gestures_v1", 3) -[2618019.253] {Default Queue} wl_registry#1350.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618019.258] {Default Queue} -> wl_registry#1350.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1362) -[2618019.262] {Default Queue} wl_registry#1350.global(14, "zwp_pointer_constraints_v1", 1) -[2618019.266] {Default Queue} -> wl_registry#1350.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1363) -[2618019.271] {Default Queue} wl_registry#1350.global(15, "ext_idle_notifier_v1", 2) -[2618019.275] {Default Queue} wl_registry#1350.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618019.280] {Default Queue} wl_registry#1350.global(17, "wl_data_device_manager", 3) -[2618019.285] {Default Queue} -> wl_registry#1350.bind(17, "wl_data_device_manager", 2, new id [unknown]#1364) -[2618019.290] {Default Queue} -> wl_data_device_manager#1364.create_data_source(new id wl_data_source#1365) -[2618019.294] {Default Queue} -> wl_data_source#1365.offer("text/plain") -[2618019.299] {Default Queue} -> wl_data_source#1365.offer("text/plain;charset=utf-8") -[2618019.303] {Default Queue} -> wl_data_source#1365.offer("TEXT") -[2618019.307] {Default Queue} -> wl_data_source#1365.offer("STRING") -[2618019.311] {Default Queue} -> wl_data_source#1365.offer("UTF8_STRING") -[2618019.315] {Default Queue} wl_registry#1350.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618019.320] {Default Queue} -> wl_registry#1350.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1366) -[2618019.328] {Default Queue} -> zwp_primary_selection_device_manager_v1#1366.create_source(new id zwp_primary_selection_source_v1#1367) -[2618019.335] {Default Queue} -> zwp_primary_selection_source_v1#1367.offer("text/plain") -[2618019.340] {Default Queue} -> zwp_primary_selection_source_v1#1367.offer("text/plain;charset=utf-8") -[2618019.344] {Default Queue} -> zwp_primary_selection_source_v1#1367.offer("TEXT") -[2618019.348] {Default Queue} -> zwp_primary_selection_source_v1#1367.offer("STRING") -[2618019.352] {Default Queue} -> zwp_primary_selection_source_v1#1367.offer("UTF8_STRING") -[2618019.356] {Default Queue} wl_registry#1350.global(19, "zwlr_data_control_manager_v1", 2) -[2618019.361] {Default Queue} wl_registry#1350.global(20, "ext_data_control_manager_v1", 1) -[2618019.365] {Default Queue} wl_registry#1350.global(21, "wp_presentation", 2) -[2618019.369] {Default Queue} wl_registry#1350.global(22, "wp_security_context_manager_v1", 1) -[2618019.374] {Default Queue} wl_registry#1350.global(23, "zwp_text_input_manager_v3", 1) -[2618019.378] {Default Queue} wl_registry#1350.global(24, "zwp_input_method_manager_v2", 1) -[2618019.382] {Default Queue} wl_registry#1350.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618019.387] {Default Queue} wl_registry#1350.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618019.391] {Default Queue} wl_registry#1350.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618019.395] {Default Queue} wl_registry#1350.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618019.400] {Default Queue} wl_registry#1350.global(29, "ext_workspace_manager_v1", 1) -[2618019.404] {Default Queue} wl_registry#1350.global(30, "zwlr_output_manager_v1", 4) -[2618019.408] {Default Queue} wl_registry#1350.global(31, "zwlr_screencopy_manager_v1", 3) -[2618019.413] {Default Queue} wl_registry#1350.global(32, "wp_viewporter", 1) -[2618019.417] {Default Queue} wl_registry#1350.global(33, "zxdg_exporter_v2", 1) -[2618019.421] {Default Queue} wl_registry#1350.global(34, "zxdg_importer_v2", 1) -[2618019.425] {Default Queue} wl_registry#1350.global(36, "xdg_activation_v1", 1) -[2618019.430] {Default Queue} wl_registry#1350.global(37, "mutter_x11_interop", 1) -[2618019.434] {Default Queue} wl_registry#1350.global(38, "wl_seat", 9) -[2618019.439] {Default Queue} -> wl_registry#1350.bind(38, "wl_seat", 1, new id [unknown]#1368) -[2618019.443] {Default Queue} wl_registry#1350.global(39, "wp_cursor_shape_manager_v1", 2) -[2618019.450] {Default Queue} wl_registry#1350.global(40, "wl_output", 4) -[2618019.456] {Default Queue} -> wl_registry#1350.bind(40, "wl_output", 1, new id [unknown]#1369) -[2618019.461] {Default Queue} wl_callback#1351.done(0) -[2618019.465] {Default Queue} discarded wl_surface#1319.enter(wl_output#18) -[2618019.469] {Default Queue} discarded wl_surface#1319.enter(wl_output#57) -[2618019.473] {Default Queue} discarded wl_surface#1319.enter(wl_output#89) -[2618019.477] {Default Queue} discarded wl_surface#1319.enter(wl_output#121) -[2618019.481] {Default Queue} discarded wl_surface#1319.enter(wl_output#153) -[2618019.485] {Default Queue} discarded wl_surface#1319.enter(wl_output#185) -[2618019.489] {Default Queue} discarded wl_surface#1319.enter(wl_output#217) -[2618019.493] {Default Queue} discarded wl_surface#1319.enter(wl_output#249) -[2618019.496] {Default Queue} discarded wl_surface#1319.enter(wl_output#281) -[2618019.500] {Default Queue} discarded wl_surface#1319.enter(wl_output#313) -[2618019.504] {Default Queue} discarded wl_surface#1319.enter(wl_output#345) -[2618019.508] {Default Queue} discarded wl_surface#1319.enter(wl_output#377) -[2618019.512] {Default Queue} discarded wl_surface#1319.enter(wl_output#409) -[2618019.516] {Default Queue} discarded wl_surface#1319.enter(wl_output#441) -[2618019.519] {Default Queue} discarded wl_surface#1319.enter(wl_output#473) -[2618019.523] {Default Queue} discarded wl_surface#1319.enter(wl_output#505) -[2618019.527] {Default Queue} discarded wl_surface#1319.enter(wl_output#537) -[2618019.531] {Default Queue} discarded wl_surface#1319.enter(wl_output#569) -[2618019.535] {Default Queue} discarded wl_surface#1319.enter(wl_output#601) -[2618019.539] {Default Queue} discarded wl_surface#1319.enter(wl_output#633) -[2618019.543] {Default Queue} discarded wl_surface#1319.enter(wl_output#665) -[2618019.547] {Default Queue} discarded wl_surface#1319.enter(wl_output#697) -[2618019.551] {Default Queue} discarded wl_surface#1319.enter(wl_output#729) -[2618019.555] {Default Queue} discarded wl_surface#1319.enter(wl_output#761) -[2618019.559] {Default Queue} discarded wl_surface#1319.enter(wl_output#793) -[2618019.562] {Default Queue} discarded wl_surface#1319.enter(wl_output#825) -[2618019.566] {Default Queue} discarded wl_surface#1319.enter(wl_output#857) -[2618019.570] {Default Queue} discarded wl_surface#1319.enter(wl_output#889) -[2618019.574] {Default Queue} discarded wl_surface#1319.enter(wl_output#921) -[2618019.578] {Default Queue} discarded wl_surface#1319.enter(wl_output#953) -[2618019.584] {Default Queue} discarded wl_surface#1319.enter(wl_output#985) -[2618019.590] {Default Queue} discarded wl_surface#1319.enter(wl_output#1017) -[2618019.596] {Default Queue} discarded wl_surface#1319.enter(wl_output#1049) -[2618019.602] {Default Queue} discarded wl_surface#1319.enter(wl_output#1081) -[2618019.608] {Default Queue} discarded wl_surface#1319.enter(wl_output#1113) -[2618019.614] {Default Queue} discarded wl_surface#1319.enter(wl_output#1145) -[2618019.620] {Default Queue} discarded wl_surface#1319.enter(wl_output#1177) -[2618019.626] {Default Queue} discarded wl_surface#1319.enter(wl_output#1209) -[2618019.632] {Default Queue} discarded wl_surface#1319.enter(wl_output#1241) -[2618019.637] {Default Queue} discarded wl_surface#1319.enter(wl_output#1273) -[2618019.643] {Default Queue} discarded wl_surface#1319.enter(wl_output#1305) -[2618019.647] {Default Queue} discarded wl_surface#1319.enter(wl_output#1337) -[2618019.652] {Default Queue} -> wl_compositor#1260.create_surface(new id wl_surface#1351) -[2618019.657] {Default Queue} -> wl_subcompositor#1357.get_subsurface(new id wl_subsurface#1370, wl_surface#1351, wl_surface#1255) -[2618019.664] {Default Queue} -> wl_subsurface#1370.set_desync() -[2618019.669] {Default Queue} -> wl_subsurface#1370.set_position(0, 0) -[2618019.673] {Default Queue} -> wl_subsurface#1370.place_above(wl_surface#1255) -[2618019.716] {Default Queue} -> wl_shm#1359.create_pool(new id wl_shm_pool#1371, fd 219, 16) -[2618019.723] {Default Queue} -> wl_shm#1359.create_pool(new id wl_shm_pool#1372, fd 220, 16) -[2618019.731] {Default Queue} -> wl_shm_pool#1371.create_buffer(new id wl_buffer#1373, 0, 2, 2, 8, 0) -[2618019.739] {Default Queue} -> wl_shm_pool#1372.create_buffer(new id wl_buffer#1374, 0, 2, 2, 8, 0) -[2618019.747] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) -[2618019.752] {Default Queue} -> wl_surface#1351.commit() -[2618019.757] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) -[2618019.761] {Default Queue} -> wl_surface#1351.commit() -[2618019.765] {Default Queue} -> wl_compositor#1356.create_region(new id wl_region#1375) -[2618019.770] {Default Queue} -> wl_compositor#1356.create_region(new id wl_region#1376) -[2618019.774] {Default Queue} -> wl_region#1375.subtract(0, 0, 2, 2) -[2618019.779] {Default Queue} -> wl_region#1375.add(0, 0, 0, 0) -[2618019.783] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2618019.787] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2618019.791] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618019.796] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618019.803] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) -[2618019.808] {Default Queue} -> wl_surface#1351.commit() -[2618019.845] {Default Queue} -> wl_shm#1361.create_pool(new id wl_shm_pool#1377, fd 223, 640) -[2618019.854] {Default Queue} -> wl_shm#1361.create_pool(new id wl_shm_pool#1378, fd 224, 640) -[2618019.867] {Default Queue} -> wl_shm_pool#1377.create_buffer(new id wl_buffer#1379, 0, 10, 16, 40, 0) -[2618019.875] {Default Queue} -> wl_shm_pool#1378.create_buffer(new id wl_buffer#1380, 0, 10, 16, 40, 0) -[2618019.887] {Default Queue} -> wl_compositor#1356.create_surface(new id wl_surface#1381) -[2618019.894] {Default Queue} -> wl_surface#1381.attach(wl_buffer#1379, 0, 0) -[2618019.900] {Default Queue} -> wl_surface#1381.commit() -[2618019.906] {Default Queue} -> wl_surface#1381.attach(wl_buffer#1379, 0, 0) -[2618019.911] {Default Queue} -> wl_surface#1381.commit() -[2618019.917] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618019.923] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618019.927] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618019.935] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1382) -[2618019.941] {Default Queue} -> wl_display#1.sync(new id wl_callback#1383) -[2618023.887] {Display Queue} wl_display#1.delete_id(1383) -[2618023.913] {Default Queue} wl_keyboard#1352.keymap(1, fd 219, 68213) -[2618023.922] {Default Queue} wl_keyboard#1352.enter(566, wl_surface#19, array[0]) -[2618023.931] {Default Queue} wl_keyboard#1352.modifiers(566, 0, 0, 16, 0) -[2618023.940] {Default Queue} discarded wl_shm#1359.format(875709016) -[2618023.948] {Default Queue} discarded wl_shm#1359.format(1) -[2618023.955] {Default Queue} discarded wl_shm#1359.format(0) -[2618023.962] {Default Queue} discarded wl_shm#1359.format(875708993) -[2618023.968] {Default Queue} discarded wl_shm#1360.format(875709016) -[2618023.975] {Default Queue} discarded wl_shm#1360.format(1) -[2618023.983] {Default Queue} discarded wl_shm#1360.format(0) -[2618023.989] {Default Queue} discarded wl_shm#1360.format(875708993) -[2618023.996] {Default Queue} discarded wl_shm#1361.format(875709016) -[2618024.003] {Default Queue} discarded wl_shm#1361.format(1) -[2618024.010] {Default Queue} discarded wl_shm#1361.format(0) -[2618024.016] {Default Queue} discarded wl_shm#1361.format(875708993) -[2618024.022] {Default Queue} wl_seat#1368.capabilities(7) -[2618024.029] {Default Queue} -> wl_seat#1368.get_keyboard(new id wl_keyboard#1384) -[2618024.038] {Default Queue} -> wl_seat#1368.get_pointer(new id wl_pointer#1385) -[2618024.046] {Default Queue} -> wl_data_device_manager#1364.get_data_device(new id wl_data_device#1386, wl_seat#1368) -[2618024.055] {Default Queue} -> zwp_primary_selection_device_manager_v1#1366.get_device(new id zwp_primary_selection_device_v1#1387, wl_seat#1368) -[2618024.071] {Default Queue} wl_output#1369.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618024.080] {Default Queue} wl_output#1369.mode(3, 1280, 800, 60000) -[2618024.095] {Default Queue} discarded wl_surface#3.enter(wl_output#1369) -[2618024.106] {Default Queue} discarded wl_surface#999.enter(wl_output#1369) -[2618024.113] {Default Queue} discarded wl_surface#1191.enter(wl_output#1369) -[2618024.120] {Default Queue} discarded wl_surface#1159.enter(wl_output#1369) -[2618024.126] {Default Queue} discarded wl_surface#423.enter(wl_output#1369) -[2618024.133] {Default Queue} discarded wl_surface#1319.enter(wl_output#1369) -[2618024.140] {Default Queue} discarded wl_surface#1127.enter(wl_output#1369) -[2618024.147] {Default Queue} discarded wl_surface#1063.enter(wl_output#1369) -[2618024.155] {Default Queue} discarded wl_surface#455.enter(wl_output#1369) -[2618024.162] {Default Queue} discarded wl_surface#903.enter(wl_output#1369) -[2618024.169] {Default Queue} discarded wl_surface#775.enter(wl_output#1369) -[2618024.176] {Default Queue} discarded wl_surface#135.enter(wl_output#1369) -[2618024.183] {Default Queue} discarded wl_surface#1287.enter(wl_output#1369) -[2618024.191] {Default Queue} discarded wl_surface#1031.enter(wl_output#1369) -[2618024.198] {Default Queue} discarded wl_surface#615.enter(wl_output#1369) -[2618024.205] {Default Queue} discarded wl_surface#231.enter(wl_output#1369) -[2618024.213] {Default Queue} discarded wl_surface#359.enter(wl_output#1369) -[2618024.220] {Default Queue} discarded wl_surface#583.enter(wl_output#1369) -[2618024.227] {Default Queue} discarded wl_surface#743.enter(wl_output#1369) -[2618024.234] {Default Queue} discarded wl_surface#967.enter(wl_output#1369) -[2618024.242] {Default Queue} discarded wl_surface#103.enter(wl_output#1369) -[2618024.249] {Default Queue} discarded wl_surface#327.enter(wl_output#1369) -[2618024.257] {Default Queue} discarded wl_surface#43.enter(wl_output#1369) -[2618024.264] {Default Queue} discarded wl_surface#807.enter(wl_output#1369) -[2618024.271] {Default Queue} discarded wl_surface#19.enter(wl_output#1369) -[2618024.278] {Default Queue} discarded wl_surface#199.enter(wl_output#1369) -[2618024.284] {Default Queue} discarded wl_surface#391.enter(wl_output#1369) -[2618024.292] {Default Queue} discarded wl_surface#935.enter(wl_output#1369) -[2618024.298] {Default Queue} discarded wl_surface#711.enter(wl_output#1369) -[2618024.303] {Default Queue} discarded wl_surface#1223.enter(wl_output#1369) -[2618024.308] {Default Queue} discarded wl_surface#871.enter(wl_output#1369) -[2618024.313] {Default Queue} discarded wl_surface#263.enter(wl_output#1369) -[2618024.318] {Default Queue} discarded wl_surface#551.enter(wl_output#1369) -[2618024.324] {Default Queue} discarded wl_surface#647.enter(wl_output#1369) -[2618024.331] {Default Queue} discarded wl_surface#71.enter(wl_output#1369) -[2618024.337] {Default Queue} discarded wl_surface#839.enter(wl_output#1369) -[2618024.343] {Default Queue} discarded wl_surface#1095.enter(wl_output#1369) -[2618024.350] {Default Queue} discarded wl_surface#487.enter(wl_output#1369) -[2618024.357] {Default Queue} discarded wl_surface#519.enter(wl_output#1369) -[2618024.364] {Default Queue} discarded wl_surface#295.enter(wl_output#1369) -[2618024.370] {Default Queue} discarded wl_surface#167.enter(wl_output#1369) -[2618024.375] {Default Queue} discarded wl_surface#1255.enter(wl_output#1369) -[2618024.379] {Default Queue} discarded wl_surface#679.enter(wl_output#1369) -[2618024.384] {Default Queue} wl_registry#1382.global(1, "wl_compositor", 6) -[2618024.392] {Default Queue} -> wl_registry#1382.bind(1, "wl_compositor", 1, new id [unknown]#1388) -[2618024.398] {Default Queue} wl_registry#1382.global(2, "wl_subcompositor", 1) -[2618024.404] {Default Queue} -> wl_registry#1382.bind(2, "wl_subcompositor", 1, new id [unknown]#1389) -[2618024.410] {Default Queue} wl_registry#1382.global(3, "xdg_wm_base", 6) -[2618024.416] {Default Queue} -> wl_registry#1382.bind(3, "xdg_wm_base", 1, new id [unknown]#1390) -[2618024.421] {Default Queue} wl_registry#1382.global(6, "zwlr_layer_shell_v1", 5) -[2618024.427] {Default Queue} wl_registry#1382.global(7, "ext_session_lock_manager_v1", 1) -[2618024.432] {Default Queue} wl_registry#1382.global(8, "wl_shm", 2) -[2618024.444] {Default Queue} -> wl_registry#1382.bind(8, "wl_shm", 1, new id [unknown]#1391) -[2618024.452] {Default Queue} -> wl_registry#1382.bind(8, "wl_shm", 1, new id [unknown]#1392) -[2618024.461] {Default Queue} -> wl_registry#1382.bind(8, "wl_shm", 1, new id [unknown]#1393) -[2618024.467] {Default Queue} wl_registry#1382.global(9, "zxdg_output_manager_v1", 3) -[2618024.472] {Default Queue} wl_registry#1382.global(10, "wp_fractional_scale_manager_v1", 1) -[2618024.478] {Default Queue} wl_registry#1382.global(11, "zwp_tablet_manager_v2", 1) -[2618024.483] {Default Queue} wl_registry#1382.global(12, "zwp_pointer_gestures_v1", 3) -[2618024.488] {Default Queue} wl_registry#1382.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618024.494] {Default Queue} -> wl_registry#1382.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1394) -[2618024.500] {Default Queue} wl_registry#1382.global(14, "zwp_pointer_constraints_v1", 1) -[2618024.505] {Default Queue} -> wl_registry#1382.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1395) -[2618024.511] {Default Queue} wl_registry#1382.global(15, "ext_idle_notifier_v1", 2) -[2618024.516] {Default Queue} wl_registry#1382.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618024.522] {Default Queue} wl_registry#1382.global(17, "wl_data_device_manager", 3) -[2618024.528] {Default Queue} -> wl_registry#1382.bind(17, "wl_data_device_manager", 2, new id [unknown]#1396) -[2618024.533] {Default Queue} -> wl_data_device_manager#1396.create_data_source(new id wl_data_source#1397) -[2618024.539] {Default Queue} -> wl_data_source#1397.offer("text/plain") -[2618024.544] {Default Queue} -> wl_data_source#1397.offer("text/plain;charset=utf-8") -[2618024.549] {Default Queue} -> wl_data_source#1397.offer("TEXT") -[2618024.554] {Default Queue} -> wl_data_source#1397.offer("STRING") -[2618024.559] {Default Queue} -> wl_data_source#1397.offer("UTF8_STRING") -[2618024.565] {Default Queue} wl_registry#1382.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618024.571] {Default Queue} -> wl_registry#1382.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1398) -[2618024.581] {Default Queue} -> zwp_primary_selection_device_manager_v1#1398.create_source(new id zwp_primary_selection_source_v1#1399) -[2618024.591] {Default Queue} -> zwp_primary_selection_source_v1#1399.offer("text/plain") -[2618024.596] {Default Queue} -> zwp_primary_selection_source_v1#1399.offer("text/plain;charset=utf-8") -[2618024.601] {Default Queue} -> zwp_primary_selection_source_v1#1399.offer("TEXT") -[2618024.606] {Default Queue} -> zwp_primary_selection_source_v1#1399.offer("STRING") -[2618024.611] {Default Queue} -> zwp_primary_selection_source_v1#1399.offer("UTF8_STRING") -[2618024.616] {Default Queue} wl_registry#1382.global(19, "zwlr_data_control_manager_v1", 2) -[2618024.622] {Default Queue} wl_registry#1382.global(20, "ext_data_control_manager_v1", 1) -[2618024.627] {Default Queue} wl_registry#1382.global(21, "wp_presentation", 2) -[2618024.632] {Default Queue} wl_registry#1382.global(22, "wp_security_context_manager_v1", 1) -[2618024.638] {Default Queue} wl_registry#1382.global(23, "zwp_text_input_manager_v3", 1) -[2618024.643] {Default Queue} wl_registry#1382.global(24, "zwp_input_method_manager_v2", 1) -[2618024.649] {Default Queue} wl_registry#1382.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618024.654] {Default Queue} wl_registry#1382.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618024.660] {Default Queue} wl_registry#1382.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618024.665] {Default Queue} wl_registry#1382.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618024.670] {Default Queue} wl_registry#1382.global(29, "ext_workspace_manager_v1", 1) -[2618024.676] {Default Queue} wl_registry#1382.global(30, "zwlr_output_manager_v1", 4) -[2618024.681] {Default Queue} wl_registry#1382.global(31, "zwlr_screencopy_manager_v1", 3) -[2618024.686] {Default Queue} wl_registry#1382.global(32, "wp_viewporter", 1) -[2618024.696] {Default Queue} wl_registry#1382.global(33, "zxdg_exporter_v2", 1) -[2618024.703] {Default Queue} wl_registry#1382.global(34, "zxdg_importer_v2", 1) -[2618024.709] {Default Queue} wl_registry#1382.global(36, "xdg_activation_v1", 1) -[2618024.714] {Default Queue} wl_registry#1382.global(37, "mutter_x11_interop", 1) -[2618024.719] {Default Queue} wl_registry#1382.global(38, "wl_seat", 9) -[2618024.725] {Default Queue} -> wl_registry#1382.bind(38, "wl_seat", 1, new id [unknown]#1400) -[2618024.731] {Default Queue} wl_registry#1382.global(39, "wp_cursor_shape_manager_v1", 2) -[2618024.736] {Default Queue} wl_registry#1382.global(40, "wl_output", 4) -[2618024.742] {Default Queue} -> wl_registry#1382.bind(40, "wl_output", 1, new id [unknown]#1401) -[2618024.746] {Default Queue} wl_callback#1383.done(0) -[2618024.751] {Default Queue} discarded wl_surface#1351.enter(wl_output#18) -[2618024.755] {Default Queue} discarded wl_surface#1351.enter(wl_output#57) -[2618024.759] {Default Queue} discarded wl_surface#1351.enter(wl_output#89) -[2618024.763] {Default Queue} discarded wl_surface#1351.enter(wl_output#121) -[2618024.767] {Default Queue} discarded wl_surface#1351.enter(wl_output#153) -[2618024.771] {Default Queue} discarded wl_surface#1351.enter(wl_output#185) -[2618024.775] {Default Queue} discarded wl_surface#1351.enter(wl_output#217) -[2618024.779] {Default Queue} discarded wl_surface#1351.enter(wl_output#249) -[2618024.783] {Default Queue} discarded wl_surface#1351.enter(wl_output#281) -[2618024.787] {Default Queue} discarded wl_surface#1351.enter(wl_output#313) -[2618024.791] {Default Queue} discarded wl_surface#1351.enter(wl_output#345) -[2618024.795] {Default Queue} discarded wl_surface#1351.enter(wl_output#377) -[2618024.799] {Default Queue} discarded wl_surface#1351.enter(wl_output#409) -[2618024.802] {Default Queue} discarded wl_surface#1351.enter(wl_output#441) -[2618024.806] {Default Queue} discarded wl_surface#1351.enter(wl_output#473) -[2618024.810] {Default Queue} discarded wl_surface#1351.enter(wl_output#505) -[2618024.814] {Default Queue} discarded wl_surface#1351.enter(wl_output#537) -[2618024.818] {Default Queue} discarded wl_surface#1351.enter(wl_output#569) -[2618024.822] {Default Queue} discarded wl_surface#1351.enter(wl_output#601) -[2618024.826] {Default Queue} discarded wl_surface#1351.enter(wl_output#633) -[2618024.830] {Default Queue} discarded wl_surface#1351.enter(wl_output#665) -[2618024.834] {Default Queue} discarded wl_surface#1351.enter(wl_output#697) -[2618024.838] {Default Queue} discarded wl_surface#1351.enter(wl_output#729) -[2618024.842] {Default Queue} discarded wl_surface#1351.enter(wl_output#761) -[2618024.846] {Default Queue} discarded wl_surface#1351.enter(wl_output#793) -[2618024.850] {Default Queue} discarded wl_surface#1351.enter(wl_output#825) -[2618024.854] {Default Queue} discarded wl_surface#1351.enter(wl_output#857) -[2618024.858] {Default Queue} discarded wl_surface#1351.enter(wl_output#889) -[2618024.868] {Default Queue} discarded wl_surface#1351.enter(wl_output#921) -[2618024.871] {Default Queue} discarded wl_surface#1351.enter(wl_output#953) -[2618024.875] {Default Queue} discarded wl_surface#1351.enter(wl_output#985) -[2618024.879] {Default Queue} discarded wl_surface#1351.enter(wl_output#1017) -[2618024.883] {Default Queue} discarded wl_surface#1351.enter(wl_output#1049) -[2618024.887] {Default Queue} discarded wl_surface#1351.enter(wl_output#1081) -[2618024.891] {Default Queue} discarded wl_surface#1351.enter(wl_output#1113) -[2618024.895] {Default Queue} discarded wl_surface#1351.enter(wl_output#1145) -[2618024.899] {Default Queue} discarded wl_surface#1351.enter(wl_output#1177) -[2618024.903] {Default Queue} discarded wl_surface#1351.enter(wl_output#1209) -[2618024.906] {Default Queue} discarded wl_surface#1351.enter(wl_output#1241) -[2618024.910] {Default Queue} discarded wl_surface#1351.enter(wl_output#1273) -[2618024.914] {Default Queue} discarded wl_surface#1351.enter(wl_output#1305) -[2618024.918] {Default Queue} discarded wl_surface#1351.enter(wl_output#1337) -[2618024.922] {Default Queue} discarded wl_surface#1351.enter(wl_output#1369) -[2618024.929] {Default Queue} -> wl_compositor#1260.create_surface(new id wl_surface#1383) -[2618024.935] {Default Queue} -> wl_subcompositor#1389.get_subsurface(new id wl_subsurface#1402, wl_surface#1383, wl_surface#1255) -[2618024.945] {Default Queue} -> wl_subsurface#1402.set_desync() -[2618024.949] {Default Queue} -> wl_subsurface#1402.set_position(0, 0) -[2618024.954] {Default Queue} -> wl_subsurface#1402.place_above(wl_surface#1255) -[2618024.997] {Default Queue} -> wl_shm#1391.create_pool(new id wl_shm_pool#1403, fd 224, 16) -[2618025.004] {Default Queue} -> wl_shm#1391.create_pool(new id wl_shm_pool#1404, fd 225, 16) -[2618025.009] {Default Queue} -> wl_shm_pool#1403.create_buffer(new id wl_buffer#1405, 0, 2, 2, 8, 0) -[2618025.014] {Default Queue} -> wl_shm_pool#1404.create_buffer(new id wl_buffer#1406, 0, 2, 2, 8, 0) -[2618025.023] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) -[2618025.027] {Default Queue} -> wl_surface#1383.commit() -[2618025.033] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) -[2618025.037] {Default Queue} -> wl_surface#1383.commit() -[2618025.041] {Default Queue} -> wl_compositor#1388.create_region(new id wl_region#1407) -[2618025.045] {Default Queue} -> wl_compositor#1388.create_region(new id wl_region#1408) -[2618025.049] {Default Queue} -> wl_region#1407.subtract(0, 0, 2, 2) -[2618025.054] {Default Queue} -> wl_region#1407.add(0, 0, 0, 0) -[2618025.058] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2618025.063] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2618025.067] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618025.071] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618025.078] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) -[2618025.083] {Default Queue} -> wl_surface#1383.commit() -[2618025.117] {Default Queue} -> wl_shm#1393.create_pool(new id wl_shm_pool#1409, fd 228, 640) -[2618025.123] {Default Queue} -> wl_shm#1393.create_pool(new id wl_shm_pool#1410, fd 229, 640) -[2618025.128] {Default Queue} -> wl_shm_pool#1409.create_buffer(new id wl_buffer#1411, 0, 10, 16, 40, 0) -[2618025.132] {Default Queue} -> wl_shm_pool#1410.create_buffer(new id wl_buffer#1412, 0, 10, 16, 40, 0) -[2618025.139] {Default Queue} -> wl_compositor#1388.create_surface(new id wl_surface#1413) -[2618025.144] {Default Queue} -> wl_surface#1413.attach(wl_buffer#1411, 0, 0) -[2618025.148] {Default Queue} -> wl_surface#1413.commit() -[2618025.153] {Default Queue} -> wl_surface#1413.attach(wl_buffer#1411, 0, 0) -[2618025.159] {Default Queue} -> wl_surface#1413.commit() -[2618025.165] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618025.170] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618025.175] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618025.183] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1414) -[2618025.188] {Default Queue} -> wl_display#1.sync(new id wl_callback#1415) -[2618033.871] {Display Queue} wl_display#1.delete_id(1415) -[2618033.885] {Default Queue} wl_keyboard#1384.keymap(1, fd 224, 68213) -[2618033.892] {Default Queue} wl_keyboard#1384.enter(566, wl_surface#19, array[0]) -[2618033.899] {Default Queue} wl_keyboard#1384.modifiers(566, 0, 0, 16, 0) -[2618033.906] {Default Queue} discarded wl_shm#1391.format(875709016) -[2618033.911] {Default Queue} discarded wl_shm#1391.format(1) -[2618033.916] {Default Queue} discarded wl_shm#1391.format(0) -[2618033.921] {Default Queue} discarded wl_shm#1391.format(875708993) -[2618033.925] {Default Queue} discarded wl_shm#1392.format(875709016) -[2618033.928] {Default Queue} discarded wl_shm#1392.format(1) -[2618033.932] {Default Queue} discarded wl_shm#1392.format(0) -[2618033.936] {Default Queue} discarded wl_shm#1392.format(875708993) -[2618033.940] {Default Queue} discarded wl_shm#1393.format(875709016) -[2618033.943] {Default Queue} discarded wl_shm#1393.format(1) -[2618033.947] {Default Queue} discarded wl_shm#1393.format(0) -[2618033.951] {Default Queue} discarded wl_shm#1393.format(875708993) -[2618033.959] {Default Queue} wl_seat#1400.capabilities(7) -[2618033.966] {Default Queue} -> wl_seat#1400.get_keyboard(new id wl_keyboard#1416) -[2618033.971] {Default Queue} -> wl_seat#1400.get_pointer(new id wl_pointer#1417) -[2618033.976] {Default Queue} -> wl_data_device_manager#1396.get_data_device(new id wl_data_device#1418, wl_seat#1400) -[2618033.980] {Default Queue} -> zwp_primary_selection_device_manager_v1#1398.get_device(new id zwp_primary_selection_device_v1#1419, wl_seat#1400) -[2618033.989] {Default Queue} wl_output#1401.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618033.994] {Default Queue} wl_output#1401.mode(3, 1280, 800, 60000) -[2618033.999] {Default Queue} discarded wl_surface#3.enter(wl_output#1401) -[2618034.003] {Default Queue} discarded wl_surface#999.enter(wl_output#1401) -[2618034.007] {Default Queue} discarded wl_surface#1191.enter(wl_output#1401) -[2618034.011] {Default Queue} discarded wl_surface#1159.enter(wl_output#1401) -[2618034.015] {Default Queue} discarded wl_surface#423.enter(wl_output#1401) -[2618034.018] {Default Queue} discarded wl_surface#1319.enter(wl_output#1401) -[2618034.022] {Default Queue} discarded wl_surface#1127.enter(wl_output#1401) -[2618034.026] {Default Queue} discarded wl_surface#1063.enter(wl_output#1401) -[2618034.030] {Default Queue} discarded wl_surface#455.enter(wl_output#1401) -[2618034.034] {Default Queue} discarded wl_surface#903.enter(wl_output#1401) -[2618034.038] {Default Queue} discarded wl_surface#775.enter(wl_output#1401) -[2618034.042] {Default Queue} discarded wl_surface#135.enter(wl_output#1401) -[2618034.045] {Default Queue} discarded wl_surface#1287.enter(wl_output#1401) -[2618034.049] {Default Queue} discarded wl_surface#1031.enter(wl_output#1401) -[2618034.053] {Default Queue} discarded wl_surface#615.enter(wl_output#1401) -[2618034.057] {Default Queue} discarded wl_surface#231.enter(wl_output#1401) -[2618034.061] {Default Queue} discarded wl_surface#359.enter(wl_output#1401) -[2618034.065] {Default Queue} discarded wl_surface#583.enter(wl_output#1401) -[2618034.069] {Default Queue} discarded wl_surface#743.enter(wl_output#1401) -[2618034.073] {Default Queue} discarded wl_surface#967.enter(wl_output#1401) -[2618034.077] {Default Queue} discarded wl_surface#103.enter(wl_output#1401) -[2618034.081] {Default Queue} discarded wl_surface#327.enter(wl_output#1401) -[2618034.085] {Default Queue} discarded wl_surface#43.enter(wl_output#1401) -[2618034.089] {Default Queue} discarded wl_surface#807.enter(wl_output#1401) -[2618034.093] {Default Queue} discarded wl_surface#19.enter(wl_output#1401) -[2618034.097] {Default Queue} discarded wl_surface#199.enter(wl_output#1401) -[2618034.101] {Default Queue} discarded wl_surface#391.enter(wl_output#1401) -[2618034.104] {Default Queue} discarded wl_surface#935.enter(wl_output#1401) -[2618034.108] {Default Queue} discarded wl_surface#1351.enter(wl_output#1401) -[2618034.113] {Default Queue} discarded wl_surface#711.enter(wl_output#1401) -[2618034.117] {Default Queue} discarded wl_surface#1223.enter(wl_output#1401) -[2618034.120] {Default Queue} discarded wl_surface#871.enter(wl_output#1401) -[2618034.124] {Default Queue} discarded wl_surface#263.enter(wl_output#1401) -[2618034.128] {Default Queue} discarded wl_surface#551.enter(wl_output#1401) -[2618034.132] {Default Queue} discarded wl_surface#647.enter(wl_output#1401) -[2618034.136] {Default Queue} discarded wl_surface#71.enter(wl_output#1401) -[2618034.140] {Default Queue} discarded wl_surface#839.enter(wl_output#1401) -[2618034.143] {Default Queue} discarded wl_surface#1095.enter(wl_output#1401) -[2618034.147] {Default Queue} discarded wl_surface#487.enter(wl_output#1401) -[2618034.151] {Default Queue} discarded wl_surface#519.enter(wl_output#1401) -[2618034.155] {Default Queue} discarded wl_surface#295.enter(wl_output#1401) -[2618034.159] {Default Queue} discarded wl_surface#167.enter(wl_output#1401) -[2618034.163] {Default Queue} discarded wl_surface#1255.enter(wl_output#1401) -[2618034.167] {Default Queue} discarded wl_surface#679.enter(wl_output#1401) -[2618034.174] {Default Queue} wl_registry#1414.global(1, "wl_compositor", 6) -[2618034.181] {Default Queue} -> wl_registry#1414.bind(1, "wl_compositor", 1, new id [unknown]#1420) -[2618034.186] {Default Queue} wl_registry#1414.global(2, "wl_subcompositor", 1) -[2618034.191] {Default Queue} -> wl_registry#1414.bind(2, "wl_subcompositor", 1, new id [unknown]#1421) -[2618034.195] {Default Queue} wl_registry#1414.global(3, "xdg_wm_base", 6) -[2618034.200] {Default Queue} -> wl_registry#1414.bind(3, "xdg_wm_base", 1, new id [unknown]#1422) -[2618034.204] {Default Queue} wl_registry#1414.global(6, "zwlr_layer_shell_v1", 5) -[2618034.209] {Default Queue} wl_registry#1414.global(7, "ext_session_lock_manager_v1", 1) -[2618034.213] {Default Queue} wl_registry#1414.global(8, "wl_shm", 2) -[2618034.218] {Default Queue} -> wl_registry#1414.bind(8, "wl_shm", 1, new id [unknown]#1423) -[2618034.222] {Default Queue} -> wl_registry#1414.bind(8, "wl_shm", 1, new id [unknown]#1424) -[2618034.227] {Default Queue} -> wl_registry#1414.bind(8, "wl_shm", 1, new id [unknown]#1425) -[2618034.231] {Default Queue} wl_registry#1414.global(9, "zxdg_output_manager_v1", 3) -[2618034.235] {Default Queue} wl_registry#1414.global(10, "wp_fractional_scale_manager_v1", 1) -[2618034.241] {Default Queue} wl_registry#1414.global(11, "zwp_tablet_manager_v2", 1) -[2618034.246] {Default Queue} wl_registry#1414.global(12, "zwp_pointer_gestures_v1", 3) -[2618034.250] {Default Queue} wl_registry#1414.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618034.255] {Default Queue} -> wl_registry#1414.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1426) -[2618034.259] {Default Queue} wl_registry#1414.global(14, "zwp_pointer_constraints_v1", 1) -[2618034.264] {Default Queue} -> wl_registry#1414.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1427) -[2618034.268] {Default Queue} wl_registry#1414.global(15, "ext_idle_notifier_v1", 2) -[2618034.272] {Default Queue} wl_registry#1414.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618034.277] {Default Queue} wl_registry#1414.global(17, "wl_data_device_manager", 3) -[2618034.282] {Default Queue} -> wl_registry#1414.bind(17, "wl_data_device_manager", 2, new id [unknown]#1428) -[2618034.286] {Default Queue} -> wl_data_device_manager#1428.create_data_source(new id wl_data_source#1429) -[2618034.290] {Default Queue} -> wl_data_source#1429.offer("text/plain") -[2618034.294] {Default Queue} -> wl_data_source#1429.offer("text/plain;charset=utf-8") -[2618034.298] {Default Queue} -> wl_data_source#1429.offer("TEXT") -[2618034.302] {Default Queue} -> wl_data_source#1429.offer("STRING") -[2618034.307] {Default Queue} -> wl_data_source#1429.offer("UTF8_STRING") -[2618034.311] {Default Queue} wl_registry#1414.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618034.315] {Default Queue} -> wl_registry#1414.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1430) -[2618034.323] {Default Queue} -> zwp_primary_selection_device_manager_v1#1430.create_source(new id zwp_primary_selection_source_v1#1431) -[2618034.330] {Default Queue} -> zwp_primary_selection_source_v1#1431.offer("text/plain") -[2618034.334] {Default Queue} -> zwp_primary_selection_source_v1#1431.offer("text/plain;charset=utf-8") -[2618034.339] {Default Queue} -> zwp_primary_selection_source_v1#1431.offer("TEXT") -[2618034.343] {Default Queue} -> zwp_primary_selection_source_v1#1431.offer("STRING") -[2618034.347] {Default Queue} -> zwp_primary_selection_source_v1#1431.offer("UTF8_STRING") -[2618034.351] {Default Queue} wl_registry#1414.global(19, "zwlr_data_control_manager_v1", 2) -[2618034.356] {Default Queue} wl_registry#1414.global(20, "ext_data_control_manager_v1", 1) -[2618034.360] {Default Queue} wl_registry#1414.global(21, "wp_presentation", 2) -[2618034.364] {Default Queue} wl_registry#1414.global(22, "wp_security_context_manager_v1", 1) -[2618034.369] {Default Queue} wl_registry#1414.global(23, "zwp_text_input_manager_v3", 1) -[2618034.373] {Default Queue} wl_registry#1414.global(24, "zwp_input_method_manager_v2", 1) -[2618034.377] {Default Queue} wl_registry#1414.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618034.384] {Default Queue} wl_registry#1414.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618034.390] {Default Queue} wl_registry#1414.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618034.395] {Default Queue} wl_registry#1414.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618034.399] {Default Queue} wl_registry#1414.global(29, "ext_workspace_manager_v1", 1) -[2618034.403] {Default Queue} wl_registry#1414.global(30, "zwlr_output_manager_v1", 4) -[2618034.407] {Default Queue} wl_registry#1414.global(31, "zwlr_screencopy_manager_v1", 3) -[2618034.412] {Default Queue} wl_registry#1414.global(32, "wp_viewporter", 1) -[2618034.416] {Default Queue} wl_registry#1414.global(33, "zxdg_exporter_v2", 1) -[2618034.420] {Default Queue} wl_registry#1414.global(34, "zxdg_importer_v2", 1) -[2618034.425] {Default Queue} wl_registry#1414.global(36, "xdg_activation_v1", 1) -[2618034.429] {Default Queue} wl_registry#1414.global(37, "mutter_x11_interop", 1) -[2618034.433] {Default Queue} wl_registry#1414.global(38, "wl_seat", 9) -[2618034.438] {Default Queue} -> wl_registry#1414.bind(38, "wl_seat", 1, new id [unknown]#1432) -[2618034.442] {Default Queue} wl_registry#1414.global(39, "wp_cursor_shape_manager_v1", 2) -[2618034.447] {Default Queue} wl_registry#1414.global(40, "wl_output", 4) -[2618034.451] {Default Queue} -> wl_registry#1414.bind(40, "wl_output", 1, new id [unknown]#1433) -[2618034.456] {Default Queue} wl_callback#1415.done(0) -[2618034.460] {Default Queue} discarded wl_surface#1383.enter(wl_output#18) -[2618034.464] {Default Queue} discarded wl_surface#1383.enter(wl_output#57) -[2618034.468] {Default Queue} discarded wl_surface#1383.enter(wl_output#89) -[2618034.472] {Default Queue} discarded wl_surface#1383.enter(wl_output#121) -[2618034.476] {Default Queue} discarded wl_surface#1383.enter(wl_output#153) -[2618034.481] {Default Queue} discarded wl_surface#1383.enter(wl_output#185) -[2618034.485] {Default Queue} discarded wl_surface#1383.enter(wl_output#217) -[2618034.488] {Default Queue} discarded wl_surface#1383.enter(wl_output#249) -[2618034.492] {Default Queue} discarded wl_surface#1383.enter(wl_output#281) -[2618034.496] {Default Queue} discarded wl_surface#1383.enter(wl_output#313) -[2618034.500] {Default Queue} discarded wl_surface#1383.enter(wl_output#345) -[2618034.504] {Default Queue} discarded wl_surface#1383.enter(wl_output#377) -[2618034.508] {Default Queue} discarded wl_surface#1383.enter(wl_output#409) -[2618034.512] {Default Queue} discarded wl_surface#1383.enter(wl_output#441) -[2618034.516] {Default Queue} discarded wl_surface#1383.enter(wl_output#473) -[2618034.520] {Default Queue} discarded wl_surface#1383.enter(wl_output#505) -[2618034.524] {Default Queue} discarded wl_surface#1383.enter(wl_output#537) -[2618034.528] {Default Queue} discarded wl_surface#1383.enter(wl_output#569) -[2618034.532] {Default Queue} discarded wl_surface#1383.enter(wl_output#601) -[2618034.536] {Default Queue} discarded wl_surface#1383.enter(wl_output#633) -[2618034.540] {Default Queue} discarded wl_surface#1383.enter(wl_output#665) -[2618034.544] {Default Queue} discarded wl_surface#1383.enter(wl_output#697) -[2618034.548] {Default Queue} discarded wl_surface#1383.enter(wl_output#729) -[2618034.552] {Default Queue} discarded wl_surface#1383.enter(wl_output#761) -[2618034.555] {Default Queue} discarded wl_surface#1383.enter(wl_output#793) -[2618034.559] {Default Queue} discarded wl_surface#1383.enter(wl_output#825) -[2618034.563] {Default Queue} discarded wl_surface#1383.enter(wl_output#857) -[2618034.567] {Default Queue} discarded wl_surface#1383.enter(wl_output#889) -[2618034.571] {Default Queue} discarded wl_surface#1383.enter(wl_output#921) -[2618034.575] {Default Queue} discarded wl_surface#1383.enter(wl_output#953) -[2618034.578] {Default Queue} discarded wl_surface#1383.enter(wl_output#985) -[2618034.582] {Default Queue} discarded wl_surface#1383.enter(wl_output#1017) -[2618034.586] {Default Queue} discarded wl_surface#1383.enter(wl_output#1049) -[2618034.590] {Default Queue} discarded wl_surface#1383.enter(wl_output#1081) -[2618034.597] {Default Queue} discarded wl_surface#1383.enter(wl_output#1113) -[2618034.602] {Default Queue} discarded wl_surface#1383.enter(wl_output#1145) -[2618034.606] {Default Queue} discarded wl_surface#1383.enter(wl_output#1177) -[2618034.610] {Default Queue} discarded wl_surface#1383.enter(wl_output#1209) -[2618034.614] {Default Queue} discarded wl_surface#1383.enter(wl_output#1241) -[2618034.618] {Default Queue} discarded wl_surface#1383.enter(wl_output#1273) -[2618034.622] {Default Queue} discarded wl_surface#1383.enter(wl_output#1305) -[2618034.626] {Default Queue} discarded wl_surface#1383.enter(wl_output#1337) -[2618034.630] {Default Queue} discarded wl_surface#1383.enter(wl_output#1369) -[2618034.634] {Default Queue} discarded wl_surface#1383.enter(wl_output#1401) -[2618034.638] {Default Queue} -> wl_compositor#1260.create_surface(new id wl_surface#1415) -[2618034.642] {Default Queue} -> wl_subcompositor#1421.get_subsurface(new id wl_subsurface#1434, wl_surface#1415, wl_surface#1255) -[2618034.650] {Default Queue} -> wl_subsurface#1434.set_desync() -[2618034.655] {Default Queue} -> wl_subsurface#1434.set_position(0, 0) -[2618034.659] {Default Queue} -> wl_subsurface#1434.place_above(wl_surface#1255) -[2618034.703] {Default Queue} -> wl_shm#1423.create_pool(new id wl_shm_pool#1435, fd 229, 16) -[2618034.710] {Default Queue} -> wl_shm#1423.create_pool(new id wl_shm_pool#1436, fd 230, 16) -[2618034.714] {Default Queue} -> wl_shm_pool#1435.create_buffer(new id wl_buffer#1437, 0, 2, 2, 8, 0) -[2618034.719] {Default Queue} -> wl_shm_pool#1436.create_buffer(new id wl_buffer#1438, 0, 2, 2, 8, 0) -[2618034.727] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) -[2618034.731] {Default Queue} -> wl_surface#1415.commit() -[2618034.737] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) -[2618034.742] {Default Queue} -> wl_surface#1415.commit() -[2618034.746] {Default Queue} -> wl_compositor#1420.create_region(new id wl_region#1439) -[2618034.750] {Default Queue} -> wl_compositor#1420.create_region(new id wl_region#1440) -[2618034.754] {Default Queue} -> wl_region#1439.subtract(0, 0, 2, 2) -[2618034.759] {Default Queue} -> wl_region#1439.add(0, 0, 0, 0) -[2618034.764] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2618034.768] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2618034.772] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618034.776] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618034.784] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) -[2618034.788] {Default Queue} -> wl_surface#1415.commit() -[2618034.822] {Default Queue} -> wl_shm#1425.create_pool(new id wl_shm_pool#1441, fd 233, 640) -[2618034.828] {Default Queue} -> wl_shm#1425.create_pool(new id wl_shm_pool#1442, fd 234, 640) -[2618034.833] {Default Queue} -> wl_shm_pool#1441.create_buffer(new id wl_buffer#1443, 0, 10, 16, 40, 0) -[2618034.838] {Default Queue} -> wl_shm_pool#1442.create_buffer(new id wl_buffer#1444, 0, 10, 16, 40, 0) -[2618034.845] {Default Queue} -> wl_compositor#1420.create_surface(new id wl_surface#1445) -[2618034.849] {Default Queue} -> wl_surface#1445.attach(wl_buffer#1443, 0, 0) -[2618034.853] {Default Queue} -> wl_surface#1445.commit() -[2618034.859] {Default Queue} -> wl_surface#1445.attach(wl_buffer#1443, 0, 0) -[2618034.870] {Default Queue} -> wl_surface#1445.commit() -[2618034.876] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618034.881] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618034.886] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618034.894] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1446) -[2618034.899] {Default Queue} -> wl_display#1.sync(new id wl_callback#1447) -[2618038.890] {Display Queue} wl_display#1.delete_id(1447) -[2618038.905] {Default Queue} wl_keyboard#1416.keymap(1, fd 229, 68213) -[2618038.911] {Default Queue} wl_keyboard#1416.enter(566, wl_surface#19, array[0]) -[2618038.916] {Default Queue} wl_keyboard#1416.modifiers(566, 0, 0, 16, 0) -[2618038.927] {Default Queue} discarded wl_shm#1423.format(875709016) -[2618038.935] {Default Queue} discarded wl_shm#1423.format(1) -[2618038.940] {Default Queue} discarded wl_shm#1423.format(0) -[2618038.944] {Default Queue} discarded wl_shm#1423.format(875708993) -[2618038.948] {Default Queue} discarded wl_shm#1424.format(875709016) -[2618038.952] {Default Queue} discarded wl_shm#1424.format(1) -[2618038.955] {Default Queue} discarded wl_shm#1424.format(0) -[2618038.959] {Default Queue} discarded wl_shm#1424.format(875708993) -[2618038.964] {Default Queue} discarded wl_shm#1425.format(875709016) -[2618038.968] {Default Queue} discarded wl_shm#1425.format(1) -[2618038.972] {Default Queue} discarded wl_shm#1425.format(0) -[2618038.977] {Default Queue} discarded wl_shm#1425.format(875708993) -[2618038.981] {Default Queue} wl_seat#1432.capabilities(7) -[2618038.985] {Default Queue} -> wl_seat#1432.get_keyboard(new id wl_keyboard#1448) -[2618038.990] {Default Queue} -> wl_seat#1432.get_pointer(new id wl_pointer#1449) -[2618038.994] {Default Queue} -> wl_data_device_manager#1428.get_data_device(new id wl_data_device#1450, wl_seat#1432) -[2618038.999] {Default Queue} -> zwp_primary_selection_device_manager_v1#1430.get_device(new id zwp_primary_selection_device_v1#1451, wl_seat#1432) -[2618039.007] {Default Queue} wl_output#1433.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618039.013] {Default Queue} wl_output#1433.mode(3, 1280, 800, 60000) -[2618039.017] {Default Queue} discarded wl_surface#3.enter(wl_output#1433) -[2618039.022] {Default Queue} discarded wl_surface#999.enter(wl_output#1433) -[2618039.026] {Default Queue} discarded wl_surface#1191.enter(wl_output#1433) -[2618039.030] {Default Queue} discarded wl_surface#1159.enter(wl_output#1433) -[2618039.033] {Default Queue} discarded wl_surface#423.enter(wl_output#1433) -[2618039.037] {Default Queue} discarded wl_surface#1319.enter(wl_output#1433) -[2618039.041] {Default Queue} discarded wl_surface#1127.enter(wl_output#1433) -[2618039.045] {Default Queue} discarded wl_surface#1063.enter(wl_output#1433) -[2618039.049] {Default Queue} discarded wl_surface#455.enter(wl_output#1433) -[2618039.053] {Default Queue} discarded wl_surface#903.enter(wl_output#1433) -[2618039.057] {Default Queue} discarded wl_surface#775.enter(wl_output#1433) -[2618039.061] {Default Queue} discarded wl_surface#135.enter(wl_output#1433) -[2618039.065] {Default Queue} discarded wl_surface#1287.enter(wl_output#1433) -[2618039.069] {Default Queue} discarded wl_surface#1031.enter(wl_output#1433) -[2618039.074] {Default Queue} discarded wl_surface#615.enter(wl_output#1433) -[2618039.078] {Default Queue} discarded wl_surface#231.enter(wl_output#1433) -[2618039.081] {Default Queue} discarded wl_surface#359.enter(wl_output#1433) -[2618039.085] {Default Queue} discarded wl_surface#583.enter(wl_output#1433) -[2618039.089] {Default Queue} discarded wl_surface#743.enter(wl_output#1433) -[2618039.093] {Default Queue} discarded wl_surface#967.enter(wl_output#1433) -[2618039.097] {Default Queue} discarded wl_surface#103.enter(wl_output#1433) -[2618039.101] {Default Queue} discarded wl_surface#327.enter(wl_output#1433) -[2618039.105] {Default Queue} discarded wl_surface#43.enter(wl_output#1433) -[2618039.109] {Default Queue} discarded wl_surface#807.enter(wl_output#1433) -[2618039.113] {Default Queue} discarded wl_surface#19.enter(wl_output#1433) -[2618039.117] {Default Queue} discarded wl_surface#199.enter(wl_output#1433) -[2618039.121] {Default Queue} discarded wl_surface#391.enter(wl_output#1433) -[2618039.124] {Default Queue} discarded wl_surface#935.enter(wl_output#1433) -[2618039.128] {Default Queue} discarded wl_surface#1351.enter(wl_output#1433) -[2618039.132] {Default Queue} discarded wl_surface#711.enter(wl_output#1433) -[2618039.136] {Default Queue} discarded wl_surface#1223.enter(wl_output#1433) -[2618039.140] {Default Queue} discarded wl_surface#871.enter(wl_output#1433) -[2618039.144] {Default Queue} discarded wl_surface#263.enter(wl_output#1433) -[2618039.148] {Default Queue} discarded wl_surface#551.enter(wl_output#1433) -[2618039.155] {Default Queue} discarded wl_surface#647.enter(wl_output#1433) -[2618039.161] {Default Queue} discarded wl_surface#71.enter(wl_output#1433) -[2618039.165] {Default Queue} discarded wl_surface#839.enter(wl_output#1433) -[2618039.169] {Default Queue} discarded wl_surface#1095.enter(wl_output#1433) -[2618039.173] {Default Queue} discarded wl_surface#1383.enter(wl_output#1433) -[2618039.177] {Default Queue} discarded wl_surface#487.enter(wl_output#1433) -[2618039.181] {Default Queue} discarded wl_surface#519.enter(wl_output#1433) -[2618039.185] {Default Queue} discarded wl_surface#295.enter(wl_output#1433) -[2618039.189] {Default Queue} discarded wl_surface#167.enter(wl_output#1433) -[2618039.193] {Default Queue} discarded wl_surface#1255.enter(wl_output#1433) -[2618039.197] {Default Queue} discarded wl_surface#679.enter(wl_output#1433) -[2618039.201] {Default Queue} wl_registry#1446.global(1, "wl_compositor", 6) -[2618039.206] {Default Queue} -> wl_registry#1446.bind(1, "wl_compositor", 1, new id [unknown]#1452) -[2618039.211] {Default Queue} wl_registry#1446.global(2, "wl_subcompositor", 1) -[2618039.215] {Default Queue} -> wl_registry#1446.bind(2, "wl_subcompositor", 1, new id [unknown]#1453) -[2618039.220] {Default Queue} wl_registry#1446.global(3, "xdg_wm_base", 6) -[2618039.225] {Default Queue} -> wl_registry#1446.bind(3, "xdg_wm_base", 1, new id [unknown]#1454) -[2618039.229] {Default Queue} wl_registry#1446.global(6, "zwlr_layer_shell_v1", 5) -[2618039.233] {Default Queue} wl_registry#1446.global(7, "ext_session_lock_manager_v1", 1) -[2618039.238] {Default Queue} wl_registry#1446.global(8, "wl_shm", 2) -[2618039.242] {Default Queue} -> wl_registry#1446.bind(8, "wl_shm", 1, new id [unknown]#1455) -[2618039.247] {Default Queue} -> wl_registry#1446.bind(8, "wl_shm", 1, new id [unknown]#1456) -[2618039.253] {Default Queue} -> wl_registry#1446.bind(8, "wl_shm", 1, new id [unknown]#1457) -[2618039.257] {Default Queue} wl_registry#1446.global(9, "zxdg_output_manager_v1", 3) -[2618039.262] {Default Queue} wl_registry#1446.global(10, "wp_fractional_scale_manager_v1", 1) -[2618039.267] {Default Queue} wl_registry#1446.global(11, "zwp_tablet_manager_v2", 1) -[2618039.271] {Default Queue} wl_registry#1446.global(12, "zwp_pointer_gestures_v1", 3) -[2618039.275] {Default Queue} wl_registry#1446.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618039.279] {Default Queue} -> wl_registry#1446.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1458) -[2618039.284] {Default Queue} wl_registry#1446.global(14, "zwp_pointer_constraints_v1", 1) -[2618039.288] {Default Queue} -> wl_registry#1446.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1459) -[2618039.293] {Default Queue} wl_registry#1446.global(15, "ext_idle_notifier_v1", 2) -[2618039.297] {Default Queue} wl_registry#1446.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618039.302] {Default Queue} wl_registry#1446.global(17, "wl_data_device_manager", 3) -[2618039.307] {Default Queue} -> wl_registry#1446.bind(17, "wl_data_device_manager", 2, new id [unknown]#1460) -[2618039.311] {Default Queue} -> wl_data_device_manager#1460.create_data_source(new id wl_data_source#1461) -[2618039.316] {Default Queue} -> wl_data_source#1461.offer("text/plain") -[2618039.320] {Default Queue} -> wl_data_source#1461.offer("text/plain;charset=utf-8") -[2618039.325] {Default Queue} -> wl_data_source#1461.offer("TEXT") -[2618039.329] {Default Queue} -> wl_data_source#1461.offer("STRING") -[2618039.333] {Default Queue} -> wl_data_source#1461.offer("UTF8_STRING") -[2618039.338] {Default Queue} wl_registry#1446.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618039.342] {Default Queue} -> wl_registry#1446.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1462) -[2618039.350] {Default Queue} -> zwp_primary_selection_device_manager_v1#1462.create_source(new id zwp_primary_selection_source_v1#1463) -[2618039.358] {Default Queue} -> zwp_primary_selection_source_v1#1463.offer("text/plain") -[2618039.362] {Default Queue} -> zwp_primary_selection_source_v1#1463.offer("text/plain;charset=utf-8") -[2618039.369] {Default Queue} -> zwp_primary_selection_source_v1#1463.offer("TEXT") -[2618039.374] {Default Queue} -> zwp_primary_selection_source_v1#1463.offer("STRING") -[2618039.379] {Default Queue} -> zwp_primary_selection_source_v1#1463.offer("UTF8_STRING") -[2618039.383] {Default Queue} wl_registry#1446.global(19, "zwlr_data_control_manager_v1", 2) -[2618039.387] {Default Queue} wl_registry#1446.global(20, "ext_data_control_manager_v1", 1) -[2618039.391] {Default Queue} wl_registry#1446.global(21, "wp_presentation", 2) -[2618039.396] {Default Queue} wl_registry#1446.global(22, "wp_security_context_manager_v1", 1) -[2618039.400] {Default Queue} wl_registry#1446.global(23, "zwp_text_input_manager_v3", 1) -[2618039.405] {Default Queue} wl_registry#1446.global(24, "zwp_input_method_manager_v2", 1) -[2618039.410] {Default Queue} wl_registry#1446.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618039.414] {Default Queue} wl_registry#1446.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618039.418] {Default Queue} wl_registry#1446.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618039.423] {Default Queue} wl_registry#1446.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618039.427] {Default Queue} wl_registry#1446.global(29, "ext_workspace_manager_v1", 1) -[2618039.431] {Default Queue} wl_registry#1446.global(30, "zwlr_output_manager_v1", 4) -[2618039.435] {Default Queue} wl_registry#1446.global(31, "zwlr_screencopy_manager_v1", 3) -[2618039.440] {Default Queue} wl_registry#1446.global(32, "wp_viewporter", 1) -[2618039.444] {Default Queue} wl_registry#1446.global(33, "zxdg_exporter_v2", 1) -[2618039.448] {Default Queue} wl_registry#1446.global(34, "zxdg_importer_v2", 1) -[2618039.452] {Default Queue} wl_registry#1446.global(36, "xdg_activation_v1", 1) -[2618039.457] {Default Queue} wl_registry#1446.global(37, "mutter_x11_interop", 1) -[2618039.461] {Default Queue} wl_registry#1446.global(38, "wl_seat", 9) -[2618039.465] {Default Queue} -> wl_registry#1446.bind(38, "wl_seat", 1, new id [unknown]#1464) -[2618039.470] {Default Queue} wl_registry#1446.global(39, "wp_cursor_shape_manager_v1", 2) -[2618039.474] {Default Queue} wl_registry#1446.global(40, "wl_output", 4) -[2618039.479] {Default Queue} -> wl_registry#1446.bind(40, "wl_output", 1, new id [unknown]#1465) -[2618039.483] {Default Queue} wl_callback#1447.done(0) -[2618039.488] {Default Queue} discarded wl_surface#1415.enter(wl_output#18) -[2618039.492] {Default Queue} discarded wl_surface#1415.enter(wl_output#57) -[2618039.496] {Default Queue} discarded wl_surface#1415.enter(wl_output#89) -[2618039.500] {Default Queue} discarded wl_surface#1415.enter(wl_output#121) -[2618039.504] {Default Queue} discarded wl_surface#1415.enter(wl_output#153) -[2618039.508] {Default Queue} discarded wl_surface#1415.enter(wl_output#185) -[2618039.512] {Default Queue} discarded wl_surface#1415.enter(wl_output#217) -[2618039.516] {Default Queue} discarded wl_surface#1415.enter(wl_output#249) -[2618039.520] {Default Queue} discarded wl_surface#1415.enter(wl_output#281) -[2618039.523] {Default Queue} discarded wl_surface#1415.enter(wl_output#313) -[2618039.527] {Default Queue} discarded wl_surface#1415.enter(wl_output#345) -[2618039.531] {Default Queue} discarded wl_surface#1415.enter(wl_output#377) -[2618039.538] {Default Queue} discarded wl_surface#1415.enter(wl_output#409) -[2618039.541] {Default Queue} discarded wl_surface#1415.enter(wl_output#441) -[2618039.546] {Default Queue} discarded wl_surface#1415.enter(wl_output#473) -[2618039.550] {Default Queue} discarded wl_surface#1415.enter(wl_output#505) -[2618039.554] {Default Queue} discarded wl_surface#1415.enter(wl_output#537) -[2618039.558] {Default Queue} discarded wl_surface#1415.enter(wl_output#569) -[2618039.562] {Default Queue} discarded wl_surface#1415.enter(wl_output#601) -[2618039.566] {Default Queue} discarded wl_surface#1415.enter(wl_output#633) -[2618039.570] {Default Queue} discarded wl_surface#1415.enter(wl_output#665) -[2618039.574] {Default Queue} discarded wl_surface#1415.enter(wl_output#697) -[2618039.581] {Default Queue} discarded wl_surface#1415.enter(wl_output#729) -[2618039.586] {Default Queue} discarded wl_surface#1415.enter(wl_output#761) -[2618039.590] {Default Queue} discarded wl_surface#1415.enter(wl_output#793) -[2618039.594] {Default Queue} discarded wl_surface#1415.enter(wl_output#825) -[2618039.599] {Default Queue} discarded wl_surface#1415.enter(wl_output#857) -[2618039.602] {Default Queue} discarded wl_surface#1415.enter(wl_output#889) -[2618039.606] {Default Queue} discarded wl_surface#1415.enter(wl_output#921) -[2618039.610] {Default Queue} discarded wl_surface#1415.enter(wl_output#953) -[2618039.614] {Default Queue} discarded wl_surface#1415.enter(wl_output#985) -[2618039.618] {Default Queue} discarded wl_surface#1415.enter(wl_output#1017) -[2618039.622] {Default Queue} discarded wl_surface#1415.enter(wl_output#1049) -[2618039.626] {Default Queue} discarded wl_surface#1415.enter(wl_output#1081) -[2618039.630] {Default Queue} discarded wl_surface#1415.enter(wl_output#1113) -[2618039.634] {Default Queue} discarded wl_surface#1415.enter(wl_output#1145) -[2618039.638] {Default Queue} discarded wl_surface#1415.enter(wl_output#1177) -[2618039.642] {Default Queue} discarded wl_surface#1415.enter(wl_output#1209) -[2618039.648] {Default Queue} discarded wl_surface#1415.enter(wl_output#1241) -[2618039.652] {Default Queue} discarded wl_surface#1415.enter(wl_output#1273) -[2618039.656] {Default Queue} discarded wl_surface#1415.enter(wl_output#1305) -[2618039.660] {Default Queue} discarded wl_surface#1415.enter(wl_output#1337) -[2618039.664] {Default Queue} discarded wl_surface#1415.enter(wl_output#1369) -[2618039.668] {Default Queue} discarded wl_surface#1415.enter(wl_output#1401) -[2618039.672] {Default Queue} discarded wl_surface#1415.enter(wl_output#1433) -[2618039.676] {Default Queue} -> wl_compositor#876.create_surface(new id wl_surface#1447) -[2618039.681] {Default Queue} -> wl_subcompositor#1453.get_subsurface(new id wl_subsurface#1466, wl_surface#1447, wl_surface#871) -[2618039.689] {Default Queue} -> wl_subsurface#1466.set_desync() -[2618039.693] {Default Queue} -> wl_subsurface#1466.set_position(0, 0) -[2618039.698] {Default Queue} -> wl_subsurface#1466.place_above(wl_surface#871) -[2618039.743] {Default Queue} -> wl_shm#1455.create_pool(new id wl_shm_pool#1467, fd 234, 16) -[2618039.751] {Default Queue} -> wl_shm#1455.create_pool(new id wl_shm_pool#1468, fd 235, 16) -[2618039.755] {Default Queue} -> wl_shm_pool#1467.create_buffer(new id wl_buffer#1469, 0, 2, 2, 8, 0) -[2618039.760] {Default Queue} -> wl_shm_pool#1468.create_buffer(new id wl_buffer#1470, 0, 2, 2, 8, 0) -[2618039.768] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) -[2618039.773] {Default Queue} -> wl_surface#1447.commit() -[2618039.779] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) -[2618039.783] {Default Queue} -> wl_surface#1447.commit() -[2618039.787] {Default Queue} -> wl_compositor#1452.create_region(new id wl_region#1471) -[2618039.791] {Default Queue} -> wl_compositor#1452.create_region(new id wl_region#1472) -[2618039.795] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) -[2618039.800] {Default Queue} -> wl_region#1471.add(0, 0, 0, 0) -[2618039.804] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618039.808] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618039.813] {Default Queue} -> wl_surface#1447.damage(0, 0, 2, 2) -[2618039.817] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) -[2618039.824] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) -[2618039.829] {Default Queue} -> wl_surface#1447.commit() -[2618039.867] {Default Queue} -> wl_shm#1457.create_pool(new id wl_shm_pool#1473, fd 238, 640) -[2618039.874] {Default Queue} -> wl_shm#1457.create_pool(new id wl_shm_pool#1474, fd 239, 640) -[2618039.898] {Default Queue} -> wl_shm_pool#1473.create_buffer(new id wl_buffer#1475, 0, 10, 16, 40, 0) -[2618039.911] {Default Queue} -> wl_shm_pool#1474.create_buffer(new id wl_buffer#1476, 0, 10, 16, 40, 0) -[2618039.921] {Default Queue} -> wl_compositor#1452.create_surface(new id wl_surface#1477) -[2618039.931] {Default Queue} -> wl_surface#1477.attach(wl_buffer#1475, 0, 0) -[2618039.939] {Default Queue} -> wl_surface#1477.commit() -[2618039.946] {Default Queue} -> wl_surface#1477.attach(wl_buffer#1475, 0, 0) -[2618039.950] {Default Queue} -> wl_surface#1477.commit() -[2618039.956] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) -[2618039.961] {Default Queue} -> wl_surface#1447.damage(0, 0, 2, 2) -[2618039.965] {Default Queue} -> wl_surface#1447.damage(0, 0, 2, 2) -[2618039.974] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1478) -[2618039.979] {Default Queue} -> wl_display#1.sync(new id wl_callback#1479) -[2618048.929] {Display Queue} wl_display#1.delete_id(1479) -[2618048.945] {Default Queue} wl_keyboard#1448.keymap(1, fd 234, 68213) -[2618048.952] {Default Queue} wl_keyboard#1448.enter(566, wl_surface#19, array[0]) -[2618048.959] {Default Queue} wl_keyboard#1448.modifiers(566, 0, 0, 16, 0) -[2618048.965] {Default Queue} discarded wl_shm#1455.format(875709016) -[2618048.969] {Default Queue} discarded wl_shm#1455.format(1) -[2618048.973] {Default Queue} discarded wl_shm#1455.format(0) -[2618048.977] {Default Queue} discarded wl_shm#1455.format(875708993) -[2618048.981] {Default Queue} discarded wl_shm#1456.format(875709016) -[2618048.984] {Default Queue} discarded wl_shm#1456.format(1) -[2618048.988] {Default Queue} discarded wl_shm#1456.format(0) -[2618048.992] {Default Queue} discarded wl_shm#1456.format(875708993) -[2618048.996] {Default Queue} discarded wl_shm#1457.format(875709016) -[2618049.000] {Default Queue} discarded wl_shm#1457.format(1) -[2618049.004] {Default Queue} discarded wl_shm#1457.format(0) -[2618049.008] {Default Queue} discarded wl_shm#1457.format(875708993) -[2618049.012] {Default Queue} wl_seat#1464.capabilities(7) -[2618049.017] {Default Queue} -> wl_seat#1464.get_keyboard(new id wl_keyboard#1480) -[2618049.021] {Default Queue} -> wl_seat#1464.get_pointer(new id wl_pointer#1481) -[2618049.026] {Default Queue} -> wl_data_device_manager#1460.get_data_device(new id wl_data_device#1482, wl_seat#1464) -[2618049.030] {Default Queue} -> zwp_primary_selection_device_manager_v1#1462.get_device(new id zwp_primary_selection_device_v1#1483, wl_seat#1464) -[2618049.038] {Default Queue} wl_output#1465.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618049.044] {Default Queue} wl_output#1465.mode(3, 1280, 800, 60000) -[2618049.049] {Default Queue} discarded wl_surface#3.enter(wl_output#1465) -[2618049.053] {Default Queue} discarded wl_surface#999.enter(wl_output#1465) -[2618049.057] {Default Queue} discarded wl_surface#1191.enter(wl_output#1465) -[2618049.061] {Default Queue} discarded wl_surface#1159.enter(wl_output#1465) -[2618049.065] {Default Queue} discarded wl_surface#423.enter(wl_output#1465) -[2618049.069] {Default Queue} discarded wl_surface#1319.enter(wl_output#1465) -[2618049.073] {Default Queue} discarded wl_surface#1127.enter(wl_output#1465) -[2618049.077] {Default Queue} discarded wl_surface#1063.enter(wl_output#1465) -[2618049.081] {Default Queue} discarded wl_surface#455.enter(wl_output#1465) -[2618049.085] {Default Queue} discarded wl_surface#1415.enter(wl_output#1465) -[2618049.089] {Default Queue} discarded wl_surface#903.enter(wl_output#1465) -[2618049.092] {Default Queue} discarded wl_surface#775.enter(wl_output#1465) -[2618049.096] {Default Queue} discarded wl_surface#135.enter(wl_output#1465) -[2618049.100] {Default Queue} discarded wl_surface#1287.enter(wl_output#1465) -[2618049.104] {Default Queue} discarded wl_surface#1031.enter(wl_output#1465) -[2618049.108] {Default Queue} discarded wl_surface#615.enter(wl_output#1465) -[2618049.112] {Default Queue} discarded wl_surface#231.enter(wl_output#1465) -[2618049.116] {Default Queue} discarded wl_surface#359.enter(wl_output#1465) -[2618049.120] {Default Queue} discarded wl_surface#583.enter(wl_output#1465) -[2618049.124] {Default Queue} discarded wl_surface#743.enter(wl_output#1465) -[2618049.128] {Default Queue} discarded wl_surface#967.enter(wl_output#1465) -[2618049.132] {Default Queue} discarded wl_surface#103.enter(wl_output#1465) -[2618049.140] {Default Queue} discarded wl_surface#327.enter(wl_output#1465) -[2618049.147] {Default Queue} discarded wl_surface#43.enter(wl_output#1465) -[2618049.151] {Default Queue} discarded wl_surface#807.enter(wl_output#1465) -[2618049.155] {Default Queue} discarded wl_surface#19.enter(wl_output#1465) -[2618049.159] {Default Queue} discarded wl_surface#199.enter(wl_output#1465) -[2618049.163] {Default Queue} discarded wl_surface#391.enter(wl_output#1465) -[2618049.167] {Default Queue} discarded wl_surface#935.enter(wl_output#1465) -[2618049.171] {Default Queue} discarded wl_surface#1351.enter(wl_output#1465) -[2618049.175] {Default Queue} discarded wl_surface#711.enter(wl_output#1465) -[2618049.179] {Default Queue} discarded wl_surface#1223.enter(wl_output#1465) -[2618049.183] {Default Queue} discarded wl_surface#871.enter(wl_output#1465) -[2618049.186] {Default Queue} discarded wl_surface#263.enter(wl_output#1465) -[2618049.190] {Default Queue} discarded wl_surface#551.enter(wl_output#1465) -[2618049.194] {Default Queue} discarded wl_surface#647.enter(wl_output#1465) -[2618049.198] {Default Queue} discarded wl_surface#71.enter(wl_output#1465) -[2618049.202] {Default Queue} discarded wl_surface#839.enter(wl_output#1465) -[2618049.206] {Default Queue} discarded wl_surface#1095.enter(wl_output#1465) -[2618049.210] {Default Queue} discarded wl_surface#1383.enter(wl_output#1465) -[2618049.214] {Default Queue} discarded wl_surface#487.enter(wl_output#1465) -[2618049.218] {Default Queue} discarded wl_surface#519.enter(wl_output#1465) -[2618049.221] {Default Queue} discarded wl_surface#295.enter(wl_output#1465) -[2618049.225] {Default Queue} discarded wl_surface#167.enter(wl_output#1465) -[2618049.230] {Default Queue} discarded wl_surface#1255.enter(wl_output#1465) -[2618049.234] {Default Queue} discarded wl_surface#679.enter(wl_output#1465) -[2618049.238] {Default Queue} wl_registry#1478.global(1, "wl_compositor", 6) -[2618049.243] {Default Queue} -> wl_registry#1478.bind(1, "wl_compositor", 1, new id [unknown]#1484) -[2618049.248] {Default Queue} wl_registry#1478.global(2, "wl_subcompositor", 1) -[2618049.253] {Default Queue} -> wl_registry#1478.bind(2, "wl_subcompositor", 1, new id [unknown]#1485) -[2618049.257] {Default Queue} wl_registry#1478.global(3, "xdg_wm_base", 6) -[2618049.262] {Default Queue} -> wl_registry#1478.bind(3, "xdg_wm_base", 1, new id [unknown]#1486) -[2618049.266] {Default Queue} wl_registry#1478.global(6, "zwlr_layer_shell_v1", 5) -[2618049.271] {Default Queue} wl_registry#1478.global(7, "ext_session_lock_manager_v1", 1) -[2618049.275] {Default Queue} wl_registry#1478.global(8, "wl_shm", 2) -[2618049.280] {Default Queue} -> wl_registry#1478.bind(8, "wl_shm", 1, new id [unknown]#1487) -[2618049.284] {Default Queue} -> wl_registry#1478.bind(8, "wl_shm", 1, new id [unknown]#1488) -[2618049.291] {Default Queue} -> wl_registry#1478.bind(8, "wl_shm", 1, new id [unknown]#1489) -[2618049.296] {Default Queue} wl_registry#1478.global(9, "zxdg_output_manager_v1", 3) -[2618049.301] {Default Queue} wl_registry#1478.global(10, "wp_fractional_scale_manager_v1", 1) -[2618049.305] {Default Queue} wl_registry#1478.global(11, "zwp_tablet_manager_v2", 1) -[2618049.309] {Default Queue} wl_registry#1478.global(12, "zwp_pointer_gestures_v1", 3) -[2618049.314] {Default Queue} wl_registry#1478.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618049.318] {Default Queue} -> wl_registry#1478.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1490) -[2618049.322] {Default Queue} wl_registry#1478.global(14, "zwp_pointer_constraints_v1", 1) -[2618049.327] {Default Queue} -> wl_registry#1478.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1491) -[2618049.332] {Default Queue} wl_registry#1478.global(15, "ext_idle_notifier_v1", 2) -[2618049.336] {Default Queue} wl_registry#1478.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618049.340] {Default Queue} wl_registry#1478.global(17, "wl_data_device_manager", 3) -[2618049.345] {Default Queue} -> wl_registry#1478.bind(17, "wl_data_device_manager", 2, new id [unknown]#1492) -[2618049.352] {Default Queue} -> wl_data_device_manager#1492.create_data_source(new id wl_data_source#1493) -[2618049.358] {Default Queue} -> wl_data_source#1493.offer("text/plain") -[2618049.362] {Default Queue} -> wl_data_source#1493.offer("text/plain;charset=utf-8") -[2618049.367] {Default Queue} -> wl_data_source#1493.offer("TEXT") -[2618049.372] {Default Queue} -> wl_data_source#1493.offer("STRING") -[2618049.378] {Default Queue} -> wl_data_source#1493.offer("UTF8_STRING") -[2618049.384] {Default Queue} wl_registry#1478.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618049.390] {Default Queue} -> wl_registry#1478.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1494) -[2618049.400] {Default Queue} -> zwp_primary_selection_device_manager_v1#1494.create_source(new id zwp_primary_selection_source_v1#1495) -[2618049.408] {Default Queue} -> zwp_primary_selection_source_v1#1495.offer("text/plain") -[2618049.412] {Default Queue} -> zwp_primary_selection_source_v1#1495.offer("text/plain;charset=utf-8") -[2618049.417] {Default Queue} -> zwp_primary_selection_source_v1#1495.offer("TEXT") -[2618049.421] {Default Queue} -> zwp_primary_selection_source_v1#1495.offer("STRING") -[2618049.425] {Default Queue} -> zwp_primary_selection_source_v1#1495.offer("UTF8_STRING") -[2618049.429] {Default Queue} wl_registry#1478.global(19, "zwlr_data_control_manager_v1", 2) -[2618049.433] {Default Queue} wl_registry#1478.global(20, "ext_data_control_manager_v1", 1) -[2618049.438] {Default Queue} wl_registry#1478.global(21, "wp_presentation", 2) -[2618049.443] {Default Queue} wl_registry#1478.global(22, "wp_security_context_manager_v1", 1) -[2618049.447] {Default Queue} wl_registry#1478.global(23, "zwp_text_input_manager_v3", 1) -[2618049.451] {Default Queue} wl_registry#1478.global(24, "zwp_input_method_manager_v2", 1) -[2618049.456] {Default Queue} wl_registry#1478.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618049.460] {Default Queue} wl_registry#1478.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618049.464] {Default Queue} wl_registry#1478.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618049.469] {Default Queue} wl_registry#1478.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618049.473] {Default Queue} wl_registry#1478.global(29, "ext_workspace_manager_v1", 1) -[2618049.477] {Default Queue} wl_registry#1478.global(30, "zwlr_output_manager_v1", 4) -[2618049.481] {Default Queue} wl_registry#1478.global(31, "zwlr_screencopy_manager_v1", 3) -[2618049.486] {Default Queue} wl_registry#1478.global(32, "wp_viewporter", 1) -[2618049.491] {Default Queue} wl_registry#1478.global(33, "zxdg_exporter_v2", 1) -[2618049.495] {Default Queue} wl_registry#1478.global(34, "zxdg_importer_v2", 1) -[2618049.499] {Default Queue} wl_registry#1478.global(36, "xdg_activation_v1", 1) -[2618049.503] {Default Queue} wl_registry#1478.global(37, "mutter_x11_interop", 1) -[2618049.507] {Default Queue} wl_registry#1478.global(38, "wl_seat", 9) -[2618049.512] {Default Queue} -> wl_registry#1478.bind(38, "wl_seat", 1, new id [unknown]#1496) -[2618049.516] {Default Queue} wl_registry#1478.global(39, "wp_cursor_shape_manager_v1", 2) -[2618049.520] {Default Queue} wl_registry#1478.global(40, "wl_output", 4) -[2618049.525] {Default Queue} -> wl_registry#1478.bind(40, "wl_output", 1, new id [unknown]#1497) -[2618049.529] {Default Queue} wl_callback#1479.done(0) -[2618049.534] {Default Queue} discarded wl_surface#1447.enter(wl_output#18) -[2618049.538] {Default Queue} discarded wl_surface#1447.enter(wl_output#57) -[2618049.542] {Default Queue} discarded wl_surface#1447.enter(wl_output#89) -[2618049.546] {Default Queue} discarded wl_surface#1447.enter(wl_output#121) -[2618049.550] {Default Queue} discarded wl_surface#1447.enter(wl_output#153) -[2618049.554] {Default Queue} discarded wl_surface#1447.enter(wl_output#185) -[2618049.558] {Default Queue} discarded wl_surface#1447.enter(wl_output#217) -[2618049.562] {Default Queue} discarded wl_surface#1447.enter(wl_output#249) -[2618049.566] {Default Queue} discarded wl_surface#1447.enter(wl_output#281) -[2618049.572] {Default Queue} discarded wl_surface#1447.enter(wl_output#313) -[2618049.578] {Default Queue} discarded wl_surface#1447.enter(wl_output#345) -[2618049.582] {Default Queue} discarded wl_surface#1447.enter(wl_output#377) -[2618049.586] {Default Queue} discarded wl_surface#1447.enter(wl_output#409) -[2618049.590] {Default Queue} discarded wl_surface#1447.enter(wl_output#441) -[2618049.594] {Default Queue} discarded wl_surface#1447.enter(wl_output#473) -[2618049.598] {Default Queue} discarded wl_surface#1447.enter(wl_output#505) -[2618049.602] {Default Queue} discarded wl_surface#1447.enter(wl_output#537) -[2618049.606] {Default Queue} discarded wl_surface#1447.enter(wl_output#569) -[2618049.609] {Default Queue} discarded wl_surface#1447.enter(wl_output#601) -[2618049.613] {Default Queue} discarded wl_surface#1447.enter(wl_output#633) -[2618049.618] {Default Queue} discarded wl_surface#1447.enter(wl_output#665) -[2618049.621] {Default Queue} discarded wl_surface#1447.enter(wl_output#697) -[2618049.625] {Default Queue} discarded wl_surface#1447.enter(wl_output#729) -[2618049.629] {Default Queue} discarded wl_surface#1447.enter(wl_output#761) -[2618049.633] {Default Queue} discarded wl_surface#1447.enter(wl_output#793) -[2618049.637] {Default Queue} discarded wl_surface#1447.enter(wl_output#825) -[2618049.641] {Default Queue} discarded wl_surface#1447.enter(wl_output#857) -[2618049.645] {Default Queue} discarded wl_surface#1447.enter(wl_output#889) -[2618049.649] {Default Queue} discarded wl_surface#1447.enter(wl_output#921) -[2618049.653] {Default Queue} discarded wl_surface#1447.enter(wl_output#953) -[2618049.657] {Default Queue} discarded wl_surface#1447.enter(wl_output#985) -[2618049.660] {Default Queue} discarded wl_surface#1447.enter(wl_output#1017) -[2618049.664] {Default Queue} discarded wl_surface#1447.enter(wl_output#1049) -[2618049.669] {Default Queue} discarded wl_surface#1447.enter(wl_output#1081) -[2618049.673] {Default Queue} discarded wl_surface#1447.enter(wl_output#1113) -[2618049.676] {Default Queue} discarded wl_surface#1447.enter(wl_output#1145) -[2618049.680] {Default Queue} discarded wl_surface#1447.enter(wl_output#1177) -[2618049.684] {Default Queue} discarded wl_surface#1447.enter(wl_output#1209) -[2618049.689] {Default Queue} discarded wl_surface#1447.enter(wl_output#1241) -[2618049.693] {Default Queue} discarded wl_surface#1447.enter(wl_output#1273) -[2618049.697] {Default Queue} discarded wl_surface#1447.enter(wl_output#1305) -[2618049.701] {Default Queue} discarded wl_surface#1447.enter(wl_output#1337) -[2618049.705] {Default Queue} discarded wl_surface#1447.enter(wl_output#1369) -[2618049.709] {Default Queue} discarded wl_surface#1447.enter(wl_output#1401) -[2618049.712] {Default Queue} discarded wl_surface#1447.enter(wl_output#1433) -[2618049.717] {Default Queue} discarded wl_surface#1447.enter(wl_output#1465) -[2618049.721] {Default Queue} -> wl_compositor#1452.create_surface(new id wl_surface#1479) -[2618049.726] {Default Queue} -> wl_subcompositor#1485.get_subsurface(new id wl_subsurface#1498, wl_surface#1479, wl_surface#1447) -[2618049.734] {Default Queue} -> wl_subsurface#1498.set_desync() -[2618049.738] {Default Queue} -> wl_subsurface#1498.set_position(0, 0) -[2618049.743] {Default Queue} -> wl_subsurface#1498.place_above(wl_surface#1447) -[2618049.790] {Default Queue} -> wl_shm#1487.create_pool(new id wl_shm_pool#1499, fd 239, 16) -[2618049.797] {Default Queue} -> wl_shm#1487.create_pool(new id wl_shm_pool#1500, fd 240, 16) -[2618049.802] {Default Queue} -> wl_shm_pool#1499.create_buffer(new id wl_buffer#1501, 0, 2, 2, 8, 0) -[2618049.807] {Default Queue} -> wl_shm_pool#1500.create_buffer(new id wl_buffer#1502, 0, 2, 2, 8, 0) -[2618049.816] {Default Queue} -> wl_surface#1479.attach(wl_buffer#1501, 0, 0) -[2618049.820] {Default Queue} -> wl_surface#1479.commit() -[2618049.826] {Default Queue} -> wl_surface#1479.attach(wl_buffer#1501, 0, 0) -[2618049.830] {Default Queue} -> wl_surface#1479.commit() -[2618049.835] {Default Queue} -> wl_compositor#1484.create_region(new id wl_region#1503) -[2618049.842] {Default Queue} -> wl_compositor#1484.create_region(new id wl_region#1504) -[2618049.848] {Default Queue} -> wl_region#1503.subtract(0, 0, 2, 2) -[2618049.853] {Default Queue} -> wl_region#1503.add(0, 0, 0, 0) -[2618049.858] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) -[2618049.863] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) -[2618049.867] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) -[2618049.877] {Default Queue} -> wl_surface#1447.damage(0, 0, 2, 2) -[2618049.884] {Default Queue} -> wl_surface#1479.attach(wl_buffer#1501, 0, 0) -[2618049.888] {Default Queue} -> wl_surface#1479.commit() -[2618049.927] {Default Queue} -> wl_shm#1489.create_pool(new id wl_shm_pool#1505, fd 243, 640) -[2618049.933] {Default Queue} -> wl_shm#1489.create_pool(new id wl_shm_pool#1506, fd 244, 640) -[2618049.938] {Default Queue} -> wl_shm_pool#1505.create_buffer(new id wl_buffer#1507, 0, 10, 16, 40, 0) -[2618049.943] {Default Queue} -> wl_shm_pool#1506.create_buffer(new id wl_buffer#1508, 0, 10, 16, 40, 0) -[2618049.950] {Default Queue} -> wl_compositor#1484.create_surface(new id wl_surface#1509) -[2618049.954] {Default Queue} -> wl_surface#1509.attach(wl_buffer#1507, 0, 0) -[2618049.958] {Default Queue} -> wl_surface#1509.commit() -[2618049.963] {Default Queue} -> wl_surface#1509.attach(wl_buffer#1507, 0, 0) -[2618049.968] {Default Queue} -> wl_surface#1509.commit() -[2618049.974] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) -[2618049.981] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1510) -[2618049.986] {Default Queue} -> wl_display#1.sync(new id wl_callback#1511) -[2618053.926] {Display Queue} wl_display#1.delete_id(1511) -[2618053.943] {Default Queue} wl_keyboard#1480.keymap(1, fd 239, 68213) -[2618053.952] {Default Queue} wl_keyboard#1480.enter(566, wl_surface#19, array[0]) -[2618053.961] {Default Queue} wl_keyboard#1480.modifiers(566, 0, 0, 16, 0) -[2618053.968] {Default Queue} discarded wl_shm#1487.format(875709016) -[2618053.975] {Default Queue} discarded wl_shm#1487.format(1) -[2618053.980] {Default Queue} discarded wl_shm#1487.format(0) -[2618053.985] {Default Queue} discarded wl_shm#1487.format(875708993) -[2618053.990] {Default Queue} discarded wl_shm#1488.format(875709016) -[2618053.994] {Default Queue} discarded wl_shm#1488.format(1) -[2618053.999] {Default Queue} discarded wl_shm#1488.format(0) -[2618054.004] {Default Queue} discarded wl_shm#1488.format(875708993) -[2618054.009] {Default Queue} discarded wl_shm#1489.format(875709016) -[2618054.014] {Default Queue} discarded wl_shm#1489.format(1) -[2618054.018] {Default Queue} discarded wl_shm#1489.format(0) -[2618054.023] {Default Queue} discarded wl_shm#1489.format(875708993) -[2618054.028] {Default Queue} wl_seat#1496.capabilities(7) -[2618054.033] {Default Queue} -> wl_seat#1496.get_keyboard(new id wl_keyboard#1512) -[2618054.039] {Default Queue} -> wl_seat#1496.get_pointer(new id wl_pointer#1513) -[2618054.045] {Default Queue} -> wl_data_device_manager#1492.get_data_device(new id wl_data_device#1514, wl_seat#1496) -[2618054.051] {Default Queue} -> zwp_primary_selection_device_manager_v1#1494.get_device(new id zwp_primary_selection_device_v1#1515, wl_seat#1496) -[2618054.061] {Default Queue} wl_output#1497.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618054.068] {Default Queue} wl_output#1497.mode(3, 1280, 800, 60000) -[2618054.073] {Default Queue} discarded wl_surface#3.enter(wl_output#1497) -[2618054.079] {Default Queue} discarded wl_surface#999.enter(wl_output#1497) -[2618054.084] {Default Queue} discarded wl_surface#1191.enter(wl_output#1497) -[2618054.089] {Default Queue} discarded wl_surface#1159.enter(wl_output#1497) -[2618054.094] {Default Queue} discarded wl_surface#423.enter(wl_output#1497) -[2618054.099] {Default Queue} discarded wl_surface#1447.enter(wl_output#1497) -[2618054.103] {Default Queue} discarded wl_surface#1319.enter(wl_output#1497) -[2618054.108] {Default Queue} discarded wl_surface#1127.enter(wl_output#1497) -[2618054.114] {Default Queue} discarded wl_surface#1063.enter(wl_output#1497) -[2618054.124] {Default Queue} discarded wl_surface#455.enter(wl_output#1497) -[2618054.132] {Default Queue} discarded wl_surface#1415.enter(wl_output#1497) -[2618054.137] {Default Queue} discarded wl_surface#903.enter(wl_output#1497) -[2618054.142] {Default Queue} discarded wl_surface#775.enter(wl_output#1497) -[2618054.147] {Default Queue} discarded wl_surface#135.enter(wl_output#1497) -[2618054.152] {Default Queue} discarded wl_surface#1287.enter(wl_output#1497) -[2618054.157] {Default Queue} discarded wl_surface#1031.enter(wl_output#1497) -[2618054.162] {Default Queue} discarded wl_surface#615.enter(wl_output#1497) -[2618054.167] {Default Queue} discarded wl_surface#231.enter(wl_output#1497) -[2618054.172] {Default Queue} discarded wl_surface#359.enter(wl_output#1497) -[2618054.176] {Default Queue} discarded wl_surface#583.enter(wl_output#1497) -[2618054.181] {Default Queue} discarded wl_surface#743.enter(wl_output#1497) -[2618054.186] {Default Queue} discarded wl_surface#967.enter(wl_output#1497) -[2618054.191] {Default Queue} discarded wl_surface#103.enter(wl_output#1497) -[2618054.195] {Default Queue} discarded wl_surface#327.enter(wl_output#1497) -[2618054.200] {Default Queue} discarded wl_surface#43.enter(wl_output#1497) -[2618054.205] {Default Queue} discarded wl_surface#807.enter(wl_output#1497) -[2618054.210] {Default Queue} discarded wl_surface#19.enter(wl_output#1497) -[2618054.214] {Default Queue} discarded wl_surface#199.enter(wl_output#1497) -[2618054.219] {Default Queue} discarded wl_surface#391.enter(wl_output#1497) -[2618054.225] {Default Queue} discarded wl_surface#935.enter(wl_output#1497) -[2618054.229] {Default Queue} discarded wl_surface#1351.enter(wl_output#1497) -[2618054.234] {Default Queue} discarded wl_surface#711.enter(wl_output#1497) -[2618054.239] {Default Queue} discarded wl_surface#1223.enter(wl_output#1497) -[2618054.244] {Default Queue} discarded wl_surface#871.enter(wl_output#1497) -[2618054.249] {Default Queue} discarded wl_surface#263.enter(wl_output#1497) -[2618054.254] {Default Queue} discarded wl_surface#551.enter(wl_output#1497) -[2618054.258] {Default Queue} discarded wl_surface#647.enter(wl_output#1497) -[2618054.263] {Default Queue} discarded wl_surface#71.enter(wl_output#1497) -[2618054.268] {Default Queue} discarded wl_surface#839.enter(wl_output#1497) -[2618054.273] {Default Queue} discarded wl_surface#1095.enter(wl_output#1497) -[2618054.278] {Default Queue} discarded wl_surface#1383.enter(wl_output#1497) -[2618054.282] {Default Queue} discarded wl_surface#487.enter(wl_output#1497) -[2618054.287] {Default Queue} discarded wl_surface#519.enter(wl_output#1497) -[2618054.292] {Default Queue} discarded wl_surface#295.enter(wl_output#1497) -[2618054.297] {Default Queue} discarded wl_surface#167.enter(wl_output#1497) -[2618054.302] {Default Queue} discarded wl_surface#1255.enter(wl_output#1497) -[2618054.307] {Default Queue} discarded wl_surface#679.enter(wl_output#1497) -[2618054.311] {Default Queue} wl_registry#1510.global(1, "wl_compositor", 6) -[2618054.318] {Default Queue} -> wl_registry#1510.bind(1, "wl_compositor", 1, new id [unknown]#1516) -[2618054.324] {Default Queue} wl_registry#1510.global(2, "wl_subcompositor", 1) -[2618054.330] {Default Queue} -> wl_registry#1510.bind(2, "wl_subcompositor", 1, new id [unknown]#1517) -[2618054.335] {Default Queue} wl_registry#1510.global(3, "xdg_wm_base", 6) -[2618054.341] {Default Queue} -> wl_registry#1510.bind(3, "xdg_wm_base", 1, new id [unknown]#1518) -[2618054.347] {Default Queue} wl_registry#1510.global(6, "zwlr_layer_shell_v1", 5) -[2618054.352] {Default Queue} wl_registry#1510.global(7, "ext_session_lock_manager_v1", 1) -[2618054.358] {Default Queue} wl_registry#1510.global(8, "wl_shm", 2) -[2618054.364] {Default Queue} -> wl_registry#1510.bind(8, "wl_shm", 1, new id [unknown]#1519) -[2618054.369] {Default Queue} -> wl_registry#1510.bind(8, "wl_shm", 1, new id [unknown]#1520) -[2618054.374] {Default Queue} -> wl_registry#1510.bind(8, "wl_shm", 1, new id [unknown]#1521) -[2618054.380] {Default Queue} wl_registry#1510.global(9, "zxdg_output_manager_v1", 3) -[2618054.389] {Default Queue} wl_registry#1510.global(10, "wp_fractional_scale_manager_v1", 1) -[2618054.396] {Default Queue} wl_registry#1510.global(11, "zwp_tablet_manager_v2", 1) -[2618054.401] {Default Queue} wl_registry#1510.global(12, "zwp_pointer_gestures_v1", 3) -[2618054.409] {Default Queue} wl_registry#1510.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618054.415] {Default Queue} -> wl_registry#1510.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1522) -[2618054.420] {Default Queue} wl_registry#1510.global(14, "zwp_pointer_constraints_v1", 1) -[2618054.426] {Default Queue} -> wl_registry#1510.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1523) -[2618054.432] {Default Queue} wl_registry#1510.global(15, "ext_idle_notifier_v1", 2) -[2618054.437] {Default Queue} wl_registry#1510.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618054.442] {Default Queue} wl_registry#1510.global(17, "wl_data_device_manager", 3) -[2618054.448] {Default Queue} -> wl_registry#1510.bind(17, "wl_data_device_manager", 2, new id [unknown]#1524) -[2618054.454] {Default Queue} -> wl_data_device_manager#1524.create_data_source(new id wl_data_source#1525) -[2618054.460] {Default Queue} -> wl_data_source#1525.offer("text/plain") -[2618054.465] {Default Queue} -> wl_data_source#1525.offer("text/plain;charset=utf-8") -[2618054.470] {Default Queue} -> wl_data_source#1525.offer("TEXT") -[2618054.475] {Default Queue} -> wl_data_source#1525.offer("STRING") -[2618054.480] {Default Queue} -> wl_data_source#1525.offer("UTF8_STRING") -[2618054.485] {Default Queue} wl_registry#1510.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618054.491] {Default Queue} -> wl_registry#1510.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1526) -[2618054.501] {Default Queue} -> zwp_primary_selection_device_manager_v1#1526.create_source(new id zwp_primary_selection_source_v1#1527) -[2618054.512] {Default Queue} -> zwp_primary_selection_source_v1#1527.offer("text/plain") -[2618054.517] {Default Queue} -> zwp_primary_selection_source_v1#1527.offer("text/plain;charset=utf-8") -[2618054.522] {Default Queue} -> zwp_primary_selection_source_v1#1527.offer("TEXT") -[2618054.527] {Default Queue} -> zwp_primary_selection_source_v1#1527.offer("STRING") -[2618054.532] {Default Queue} -> zwp_primary_selection_source_v1#1527.offer("UTF8_STRING") -[2618054.537] {Default Queue} wl_registry#1510.global(19, "zwlr_data_control_manager_v1", 2) -[2618054.543] {Default Queue} wl_registry#1510.global(20, "ext_data_control_manager_v1", 1) -[2618054.548] {Default Queue} wl_registry#1510.global(21, "wp_presentation", 2) -[2618054.553] {Default Queue} wl_registry#1510.global(22, "wp_security_context_manager_v1", 1) -[2618054.559] {Default Queue} wl_registry#1510.global(23, "zwp_text_input_manager_v3", 1) -[2618054.564] {Default Queue} wl_registry#1510.global(24, "zwp_input_method_manager_v2", 1) -[2618054.570] {Default Queue} wl_registry#1510.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618054.575] {Default Queue} wl_registry#1510.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618054.580] {Default Queue} wl_registry#1510.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618054.586] {Default Queue} wl_registry#1510.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618054.591] {Default Queue} wl_registry#1510.global(29, "ext_workspace_manager_v1", 1) -[2618054.596] {Default Queue} wl_registry#1510.global(30, "zwlr_output_manager_v1", 4) -[2618054.602] {Default Queue} wl_registry#1510.global(31, "zwlr_screencopy_manager_v1", 3) -[2618054.607] {Default Queue} wl_registry#1510.global(32, "wp_viewporter", 1) -[2618054.613] {Default Queue} wl_registry#1510.global(33, "zxdg_exporter_v2", 1) -[2618054.618] {Default Queue} wl_registry#1510.global(34, "zxdg_importer_v2", 1) -[2618054.623] {Default Queue} wl_registry#1510.global(36, "xdg_activation_v1", 1) -[2618054.629] {Default Queue} wl_registry#1510.global(37, "mutter_x11_interop", 1) -[2618054.634] {Default Queue} wl_registry#1510.global(38, "wl_seat", 9) -[2618054.642] {Default Queue} -> wl_registry#1510.bind(38, "wl_seat", 1, new id [unknown]#1528) -[2618054.652] {Default Queue} wl_registry#1510.global(39, "wp_cursor_shape_manager_v1", 2) -[2618054.659] {Default Queue} wl_registry#1510.global(40, "wl_output", 4) -[2618054.665] {Default Queue} -> wl_registry#1510.bind(40, "wl_output", 1, new id [unknown]#1529) -[2618054.671] {Default Queue} wl_callback#1511.done(0) -[2618054.676] {Default Queue} discarded wl_surface#1479.enter(wl_output#18) -[2618054.681] {Default Queue} discarded wl_surface#1479.enter(wl_output#57) -[2618054.686] {Default Queue} discarded wl_surface#1479.enter(wl_output#89) -[2618054.691] {Default Queue} discarded wl_surface#1479.enter(wl_output#121) -[2618054.696] {Default Queue} discarded wl_surface#1479.enter(wl_output#153) -[2618054.701] {Default Queue} discarded wl_surface#1479.enter(wl_output#185) -[2618054.706] {Default Queue} discarded wl_surface#1479.enter(wl_output#217) -[2618054.711] {Default Queue} discarded wl_surface#1479.enter(wl_output#249) -[2618054.715] {Default Queue} discarded wl_surface#1479.enter(wl_output#281) -[2618054.720] {Default Queue} discarded wl_surface#1479.enter(wl_output#313) -[2618054.725] {Default Queue} discarded wl_surface#1479.enter(wl_output#345) -[2618054.730] {Default Queue} discarded wl_surface#1479.enter(wl_output#377) -[2618054.735] {Default Queue} discarded wl_surface#1479.enter(wl_output#409) -[2618054.740] {Default Queue} discarded wl_surface#1479.enter(wl_output#441) -[2618054.745] {Default Queue} discarded wl_surface#1479.enter(wl_output#473) -[2618054.750] {Default Queue} discarded wl_surface#1479.enter(wl_output#505) -[2618054.754] {Default Queue} discarded wl_surface#1479.enter(wl_output#537) -[2618054.759] {Default Queue} discarded wl_surface#1479.enter(wl_output#569) -[2618054.764] {Default Queue} discarded wl_surface#1479.enter(wl_output#601) -[2618054.769] {Default Queue} discarded wl_surface#1479.enter(wl_output#633) -[2618054.774] {Default Queue} discarded wl_surface#1479.enter(wl_output#665) -[2618054.779] {Default Queue} discarded wl_surface#1479.enter(wl_output#697) -[2618054.784] {Default Queue} discarded wl_surface#1479.enter(wl_output#729) -[2618054.789] {Default Queue} discarded wl_surface#1479.enter(wl_output#761) -[2618054.793] {Default Queue} discarded wl_surface#1479.enter(wl_output#793) -[2618054.798] {Default Queue} discarded wl_surface#1479.enter(wl_output#825) -[2618054.803] {Default Queue} discarded wl_surface#1479.enter(wl_output#857) -[2618054.808] {Default Queue} discarded wl_surface#1479.enter(wl_output#889) -[2618054.813] {Default Queue} discarded wl_surface#1479.enter(wl_output#921) -[2618054.818] {Default Queue} discarded wl_surface#1479.enter(wl_output#953) -[2618054.823] {Default Queue} discarded wl_surface#1479.enter(wl_output#985) -[2618054.827] {Default Queue} discarded wl_surface#1479.enter(wl_output#1017) -[2618054.832] {Default Queue} discarded wl_surface#1479.enter(wl_output#1049) -[2618054.837] {Default Queue} discarded wl_surface#1479.enter(wl_output#1081) -[2618054.842] {Default Queue} discarded wl_surface#1479.enter(wl_output#1113) -[2618054.847] {Default Queue} discarded wl_surface#1479.enter(wl_output#1145) -[2618054.852] {Default Queue} discarded wl_surface#1479.enter(wl_output#1177) -[2618054.857] {Default Queue} discarded wl_surface#1479.enter(wl_output#1209) -[2618054.868] {Default Queue} discarded wl_surface#1479.enter(wl_output#1241) -[2618054.873] {Default Queue} discarded wl_surface#1479.enter(wl_output#1273) -[2618054.877] {Default Queue} discarded wl_surface#1479.enter(wl_output#1305) -[2618054.882] {Default Queue} discarded wl_surface#1479.enter(wl_output#1337) -[2618054.887] {Default Queue} discarded wl_surface#1479.enter(wl_output#1369) -[2618054.892] {Default Queue} discarded wl_surface#1479.enter(wl_output#1401) -[2618054.897] {Default Queue} discarded wl_surface#1479.enter(wl_output#1433) -[2618054.902] {Default Queue} discarded wl_surface#1479.enter(wl_output#1465) -[2618054.907] {Default Queue} discarded wl_surface#1479.enter(wl_output#1497) -[2618054.912] {Default Queue} -> wl_compositor#1484.create_surface(new id wl_surface#1511) -[2618054.921] {Default Queue} -> wl_subcompositor#1517.get_subsurface(new id wl_subsurface#1530, wl_surface#1511, wl_surface#1479) -[2618054.932] {Default Queue} -> wl_subsurface#1530.set_desync() -[2618054.938] {Default Queue} -> wl_subsurface#1530.set_position(0, 0) -[2618054.943] {Default Queue} -> wl_subsurface#1530.place_above(wl_surface#1479) -[2618054.989] {Default Queue} -> wl_shm#1519.create_pool(new id wl_shm_pool#1531, fd 244, 16) -[2618054.996] {Default Queue} -> wl_shm#1519.create_pool(new id wl_shm_pool#1532, fd 245, 16) -[2618055.000] {Default Queue} -> wl_shm_pool#1531.create_buffer(new id wl_buffer#1533, 0, 2, 2, 8, 0) -[2618055.005] {Default Queue} -> wl_shm_pool#1532.create_buffer(new id wl_buffer#1534, 0, 2, 2, 8, 0) -[2618055.013] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) -[2618055.019] {Default Queue} -> wl_surface#1511.commit() -[2618055.024] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) -[2618055.029] {Default Queue} -> wl_surface#1511.commit() -[2618055.033] {Default Queue} -> wl_compositor#1516.create_region(new id wl_region#1535) -[2618055.037] {Default Queue} -> wl_compositor#1516.create_region(new id wl_region#1536) -[2618055.042] {Default Queue} -> wl_region#1535.subtract(0, 0, 2, 2) -[2618055.046] {Default Queue} -> wl_region#1535.add(0, 0, 0, 0) -[2618055.051] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2618055.055] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2618055.059] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618055.064] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) -[2618055.071] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) -[2618055.075] {Default Queue} -> wl_surface#1511.commit() -[2618055.107] {Default Queue} -> wl_shm#1521.create_pool(new id wl_shm_pool#1537, fd 248, 640) -[2618055.113] {Default Queue} -> wl_shm#1521.create_pool(new id wl_shm_pool#1538, fd 249, 640) -[2618055.117] {Default Queue} -> wl_shm_pool#1537.create_buffer(new id wl_buffer#1539, 0, 10, 16, 40, 0) -[2618055.122] {Default Queue} -> wl_shm_pool#1538.create_buffer(new id wl_buffer#1540, 0, 10, 16, 40, 0) -[2618055.129] {Default Queue} -> wl_compositor#1516.create_surface(new id wl_surface#1541) -[2618055.133] {Default Queue} -> wl_surface#1541.attach(wl_buffer#1539, 0, 0) -[2618055.138] {Default Queue} -> wl_surface#1541.commit() -[2618055.143] {Default Queue} -> wl_surface#1541.attach(wl_buffer#1539, 0, 0) -[2618055.147] {Default Queue} -> wl_surface#1541.commit() -[2618055.153] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) -[2618055.159] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618055.163] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618055.170] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1542) -[2618055.175] {Default Queue} -> wl_display#1.sync(new id wl_callback#1543) -[2618058.964] {Display Queue} wl_display#1.delete_id(1543) -[2618058.980] {Default Queue} wl_keyboard#1512.keymap(1, fd 244, 68213) -[2618058.986] {Default Queue} wl_keyboard#1512.enter(566, wl_surface#19, array[0]) -[2618058.992] {Default Queue} wl_keyboard#1512.modifiers(566, 0, 0, 16, 0) -[2618058.996] {Default Queue} discarded wl_shm#1519.format(875709016) -[2618059.001] {Default Queue} discarded wl_shm#1519.format(1) -[2618059.005] {Default Queue} discarded wl_shm#1519.format(0) -[2618059.009] {Default Queue} discarded wl_shm#1519.format(875708993) -[2618059.013] {Default Queue} discarded wl_shm#1520.format(875709016) -[2618059.017] {Default Queue} discarded wl_shm#1520.format(1) -[2618059.021] {Default Queue} discarded wl_shm#1520.format(0) -[2618059.025] {Default Queue} discarded wl_shm#1520.format(875708993) -[2618059.029] {Default Queue} discarded wl_shm#1521.format(875709016) -[2618059.032] {Default Queue} discarded wl_shm#1521.format(1) -[2618059.036] {Default Queue} discarded wl_shm#1521.format(0) -[2618059.041] {Default Queue} discarded wl_shm#1521.format(875708993) -[2618059.044] {Default Queue} wl_seat#1528.capabilities(7) -[2618059.049] {Default Queue} -> wl_seat#1528.get_keyboard(new id wl_keyboard#1544) -[2618059.058] {Default Queue} -> wl_seat#1528.get_pointer(new id wl_pointer#1545) -[2618059.066] {Default Queue} -> wl_data_device_manager#1524.get_data_device(new id wl_data_device#1546, wl_seat#1528) -[2618059.071] {Default Queue} -> zwp_primary_selection_device_manager_v1#1526.get_device(new id zwp_primary_selection_device_v1#1547, wl_seat#1528) -[2618059.079] {Default Queue} wl_output#1529.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618059.084] {Default Queue} wl_output#1529.mode(3, 1280, 800, 60000) -[2618059.089] {Default Queue} discarded wl_surface#3.enter(wl_output#1529) -[2618059.093] {Default Queue} discarded wl_surface#999.enter(wl_output#1529) -[2618059.097] {Default Queue} discarded wl_surface#1191.enter(wl_output#1529) -[2618059.101] {Default Queue} discarded wl_surface#1159.enter(wl_output#1529) -[2618059.105] {Default Queue} discarded wl_surface#423.enter(wl_output#1529) -[2618059.109] {Default Queue} discarded wl_surface#1447.enter(wl_output#1529) -[2618059.113] {Default Queue} discarded wl_surface#1319.enter(wl_output#1529) -[2618059.117] {Default Queue} discarded wl_surface#1127.enter(wl_output#1529) -[2618059.121] {Default Queue} discarded wl_surface#1063.enter(wl_output#1529) -[2618059.124] {Default Queue} discarded wl_surface#455.enter(wl_output#1529) -[2618059.128] {Default Queue} discarded wl_surface#1415.enter(wl_output#1529) -[2618059.132] {Default Queue} discarded wl_surface#903.enter(wl_output#1529) -[2618059.136] {Default Queue} discarded wl_surface#775.enter(wl_output#1529) -[2618059.140] {Default Queue} discarded wl_surface#135.enter(wl_output#1529) -[2618059.144] {Default Queue} discarded wl_surface#1287.enter(wl_output#1529) -[2618059.148] {Default Queue} discarded wl_surface#1031.enter(wl_output#1529) -[2618059.152] {Default Queue} discarded wl_surface#615.enter(wl_output#1529) -[2618059.156] {Default Queue} discarded wl_surface#231.enter(wl_output#1529) -[2618059.160] {Default Queue} discarded wl_surface#359.enter(wl_output#1529) -[2618059.164] {Default Queue} discarded wl_surface#583.enter(wl_output#1529) -[2618059.168] {Default Queue} discarded wl_surface#743.enter(wl_output#1529) -[2618059.172] {Default Queue} discarded wl_surface#967.enter(wl_output#1529) -[2618059.176] {Default Queue} discarded wl_surface#103.enter(wl_output#1529) -[2618059.180] {Default Queue} discarded wl_surface#327.enter(wl_output#1529) -[2618059.183] {Default Queue} discarded wl_surface#43.enter(wl_output#1529) -[2618059.187] {Default Queue} discarded wl_surface#807.enter(wl_output#1529) -[2618059.191] {Default Queue} discarded wl_surface#19.enter(wl_output#1529) -[2618059.195] {Default Queue} discarded wl_surface#199.enter(wl_output#1529) -[2618059.199] {Default Queue} discarded wl_surface#391.enter(wl_output#1529) -[2618059.203] {Default Queue} discarded wl_surface#935.enter(wl_output#1529) -[2618059.207] {Default Queue} discarded wl_surface#1351.enter(wl_output#1529) -[2618059.211] {Default Queue} discarded wl_surface#711.enter(wl_output#1529) -[2618059.215] {Default Queue} discarded wl_surface#1223.enter(wl_output#1529) -[2618059.219] {Default Queue} discarded wl_surface#871.enter(wl_output#1529) -[2618059.222] {Default Queue} discarded wl_surface#263.enter(wl_output#1529) -[2618059.226] {Default Queue} discarded wl_surface#551.enter(wl_output#1529) -[2618059.230] {Default Queue} discarded wl_surface#1479.enter(wl_output#1529) -[2618059.234] {Default Queue} discarded wl_surface#647.enter(wl_output#1529) -[2618059.238] {Default Queue} discarded wl_surface#71.enter(wl_output#1529) -[2618059.242] {Default Queue} discarded wl_surface#839.enter(wl_output#1529) -[2618059.246] {Default Queue} discarded wl_surface#1095.enter(wl_output#1529) -[2618059.250] {Default Queue} discarded wl_surface#1383.enter(wl_output#1529) -[2618059.254] {Default Queue} discarded wl_surface#487.enter(wl_output#1529) -[2618059.258] {Default Queue} discarded wl_surface#519.enter(wl_output#1529) -[2618059.262] {Default Queue} discarded wl_surface#295.enter(wl_output#1529) -[2618059.266] {Default Queue} discarded wl_surface#167.enter(wl_output#1529) -[2618059.273] {Default Queue} discarded wl_surface#1255.enter(wl_output#1529) -[2618059.279] {Default Queue} discarded wl_surface#679.enter(wl_output#1529) -[2618059.283] {Default Queue} wl_registry#1542.global(1, "wl_compositor", 6) -[2618059.288] {Default Queue} -> wl_registry#1542.bind(1, "wl_compositor", 1, new id [unknown]#1548) -[2618059.293] {Default Queue} wl_registry#1542.global(2, "wl_subcompositor", 1) -[2618059.297] {Default Queue} -> wl_registry#1542.bind(2, "wl_subcompositor", 1, new id [unknown]#1549) -[2618059.302] {Default Queue} wl_registry#1542.global(3, "xdg_wm_base", 6) -[2618059.306] {Default Queue} -> wl_registry#1542.bind(3, "xdg_wm_base", 1, new id [unknown]#1550) -[2618059.311] {Default Queue} wl_registry#1542.global(6, "zwlr_layer_shell_v1", 5) -[2618059.316] {Default Queue} wl_registry#1542.global(7, "ext_session_lock_manager_v1", 1) -[2618059.320] {Default Queue} wl_registry#1542.global(8, "wl_shm", 2) -[2618059.325] {Default Queue} -> wl_registry#1542.bind(8, "wl_shm", 1, new id [unknown]#1551) -[2618059.331] {Default Queue} -> wl_registry#1542.bind(8, "wl_shm", 1, new id [unknown]#1552) -[2618059.336] {Default Queue} -> wl_registry#1542.bind(8, "wl_shm", 1, new id [unknown]#1553) -[2618059.340] {Default Queue} wl_registry#1542.global(9, "zxdg_output_manager_v1", 3) -[2618059.345] {Default Queue} wl_registry#1542.global(10, "wp_fractional_scale_manager_v1", 1) -[2618059.349] {Default Queue} wl_registry#1542.global(11, "zwp_tablet_manager_v2", 1) -[2618059.353] {Default Queue} wl_registry#1542.global(12, "zwp_pointer_gestures_v1", 3) -[2618059.357] {Default Queue} wl_registry#1542.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618059.362] {Default Queue} -> wl_registry#1542.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1554) -[2618059.367] {Default Queue} wl_registry#1542.global(14, "zwp_pointer_constraints_v1", 1) -[2618059.371] {Default Queue} -> wl_registry#1542.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1555) -[2618059.376] {Default Queue} wl_registry#1542.global(15, "ext_idle_notifier_v1", 2) -[2618059.380] {Default Queue} wl_registry#1542.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618059.384] {Default Queue} wl_registry#1542.global(17, "wl_data_device_manager", 3) -[2618059.390] {Default Queue} -> wl_registry#1542.bind(17, "wl_data_device_manager", 2, new id [unknown]#1556) -[2618059.394] {Default Queue} -> wl_data_device_manager#1556.create_data_source(new id wl_data_source#1557) -[2618059.399] {Default Queue} -> wl_data_source#1557.offer("text/plain") -[2618059.403] {Default Queue} -> wl_data_source#1557.offer("text/plain;charset=utf-8") -[2618059.407] {Default Queue} -> wl_data_source#1557.offer("TEXT") -[2618059.411] {Default Queue} -> wl_data_source#1557.offer("STRING") -[2618059.415] {Default Queue} -> wl_data_source#1557.offer("UTF8_STRING") -[2618059.419] {Default Queue} wl_registry#1542.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618059.424] {Default Queue} -> wl_registry#1542.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1558) -[2618059.432] {Default Queue} -> zwp_primary_selection_device_manager_v1#1558.create_source(new id zwp_primary_selection_source_v1#1559) -[2618059.439] {Default Queue} -> zwp_primary_selection_source_v1#1559.offer("text/plain") -[2618059.443] {Default Queue} -> zwp_primary_selection_source_v1#1559.offer("text/plain;charset=utf-8") -[2618059.447] {Default Queue} -> zwp_primary_selection_source_v1#1559.offer("TEXT") -[2618059.452] {Default Queue} -> zwp_primary_selection_source_v1#1559.offer("STRING") -[2618059.456] {Default Queue} -> zwp_primary_selection_source_v1#1559.offer("UTF8_STRING") -[2618059.459] {Default Queue} wl_registry#1542.global(19, "zwlr_data_control_manager_v1", 2) -[2618059.464] {Default Queue} wl_registry#1542.global(20, "ext_data_control_manager_v1", 1) -[2618059.468] {Default Queue} wl_registry#1542.global(21, "wp_presentation", 2) -[2618059.473] {Default Queue} wl_registry#1542.global(22, "wp_security_context_manager_v1", 1) -[2618059.480] {Default Queue} wl_registry#1542.global(23, "zwp_text_input_manager_v3", 1) -[2618059.486] {Default Queue} wl_registry#1542.global(24, "zwp_input_method_manager_v2", 1) -[2618059.490] {Default Queue} wl_registry#1542.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618059.495] {Default Queue} wl_registry#1542.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618059.499] {Default Queue} wl_registry#1542.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618059.503] {Default Queue} wl_registry#1542.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618059.507] {Default Queue} wl_registry#1542.global(29, "ext_workspace_manager_v1", 1) -[2618059.512] {Default Queue} wl_registry#1542.global(30, "zwlr_output_manager_v1", 4) -[2618059.516] {Default Queue} wl_registry#1542.global(31, "zwlr_screencopy_manager_v1", 3) -[2618059.520] {Default Queue} wl_registry#1542.global(32, "wp_viewporter", 1) -[2618059.525] {Default Queue} wl_registry#1542.global(33, "zxdg_exporter_v2", 1) -[2618059.529] {Default Queue} wl_registry#1542.global(34, "zxdg_importer_v2", 1) -[2618059.533] {Default Queue} wl_registry#1542.global(36, "xdg_activation_v1", 1) -[2618059.538] {Default Queue} wl_registry#1542.global(37, "mutter_x11_interop", 1) -[2618059.542] {Default Queue} wl_registry#1542.global(38, "wl_seat", 9) -[2618059.546] {Default Queue} -> wl_registry#1542.bind(38, "wl_seat", 1, new id [unknown]#1560) -[2618059.551] {Default Queue} wl_registry#1542.global(39, "wp_cursor_shape_manager_v1", 2) -[2618059.555] {Default Queue} wl_registry#1542.global(40, "wl_output", 4) -[2618059.560] {Default Queue} -> wl_registry#1542.bind(40, "wl_output", 1, new id [unknown]#1561) -[2618059.564] {Default Queue} wl_callback#1543.done(0) -[2618059.569] {Default Queue} discarded wl_surface#1511.enter(wl_output#18) -[2618059.574] {Default Queue} discarded wl_surface#1511.enter(wl_output#57) -[2618059.578] {Default Queue} discarded wl_surface#1511.enter(wl_output#89) -[2618059.582] {Default Queue} discarded wl_surface#1511.enter(wl_output#121) -[2618059.586] {Default Queue} discarded wl_surface#1511.enter(wl_output#153) -[2618059.590] {Default Queue} discarded wl_surface#1511.enter(wl_output#185) -[2618059.594] {Default Queue} discarded wl_surface#1511.enter(wl_output#217) -[2618059.598] {Default Queue} discarded wl_surface#1511.enter(wl_output#249) -[2618059.602] {Default Queue} discarded wl_surface#1511.enter(wl_output#281) -[2618059.606] {Default Queue} discarded wl_surface#1511.enter(wl_output#313) -[2618059.610] {Default Queue} discarded wl_surface#1511.enter(wl_output#345) -[2618059.614] {Default Queue} discarded wl_surface#1511.enter(wl_output#377) -[2618059.617] {Default Queue} discarded wl_surface#1511.enter(wl_output#409) -[2618059.621] {Default Queue} discarded wl_surface#1511.enter(wl_output#441) -[2618059.625] {Default Queue} discarded wl_surface#1511.enter(wl_output#473) -[2618059.629] {Default Queue} discarded wl_surface#1511.enter(wl_output#505) -[2618059.633] {Default Queue} discarded wl_surface#1511.enter(wl_output#537) -[2618059.637] {Default Queue} discarded wl_surface#1511.enter(wl_output#569) -[2618059.641] {Default Queue} discarded wl_surface#1511.enter(wl_output#601) -[2618059.644] {Default Queue} discarded wl_surface#1511.enter(wl_output#633) -[2618059.648] {Default Queue} discarded wl_surface#1511.enter(wl_output#665) -[2618059.652] {Default Queue} discarded wl_surface#1511.enter(wl_output#697) -[2618059.656] {Default Queue} discarded wl_surface#1511.enter(wl_output#729) -[2618059.660] {Default Queue} discarded wl_surface#1511.enter(wl_output#761) -[2618059.664] {Default Queue} discarded wl_surface#1511.enter(wl_output#793) -[2618059.668] {Default Queue} discarded wl_surface#1511.enter(wl_output#825) -[2618059.672] {Default Queue} discarded wl_surface#1511.enter(wl_output#857) -[2618059.676] {Default Queue} discarded wl_surface#1511.enter(wl_output#889) -[2618059.680] {Default Queue} discarded wl_surface#1511.enter(wl_output#921) -[2618059.684] {Default Queue} discarded wl_surface#1511.enter(wl_output#953) -[2618059.688] {Default Queue} discarded wl_surface#1511.enter(wl_output#985) -[2618059.694] {Default Queue} discarded wl_surface#1511.enter(wl_output#1017) -[2618059.700] {Default Queue} discarded wl_surface#1511.enter(wl_output#1049) -[2618059.704] {Default Queue} discarded wl_surface#1511.enter(wl_output#1081) -[2618059.708] {Default Queue} discarded wl_surface#1511.enter(wl_output#1113) -[2618059.712] {Default Queue} discarded wl_surface#1511.enter(wl_output#1145) -[2618059.716] {Default Queue} discarded wl_surface#1511.enter(wl_output#1177) -[2618059.720] {Default Queue} discarded wl_surface#1511.enter(wl_output#1209) -[2618059.723] {Default Queue} discarded wl_surface#1511.enter(wl_output#1241) -[2618059.727] {Default Queue} discarded wl_surface#1511.enter(wl_output#1273) -[2618059.731] {Default Queue} discarded wl_surface#1511.enter(wl_output#1305) -[2618059.735] {Default Queue} discarded wl_surface#1511.enter(wl_output#1337) -[2618059.739] {Default Queue} discarded wl_surface#1511.enter(wl_output#1369) -[2618059.743] {Default Queue} discarded wl_surface#1511.enter(wl_output#1401) -[2618059.747] {Default Queue} discarded wl_surface#1511.enter(wl_output#1433) -[2618059.751] {Default Queue} discarded wl_surface#1511.enter(wl_output#1465) -[2618059.755] {Default Queue} discarded wl_surface#1511.enter(wl_output#1497) -[2618059.759] {Default Queue} discarded wl_surface#1511.enter(wl_output#1529) -[2618059.763] {Default Queue} -> wl_compositor#1484.create_surface(new id wl_surface#1543) -[2618059.767] {Default Queue} -> wl_subcompositor#1549.get_subsurface(new id wl_subsurface#1562, wl_surface#1543, wl_surface#1479) -[2618059.775] {Default Queue} -> wl_subsurface#1562.set_desync() -[2618059.780] {Default Queue} -> wl_subsurface#1562.set_position(0, 0) -[2618059.784] {Default Queue} -> wl_subsurface#1562.place_above(wl_surface#1479) -[2618059.835] {Default Queue} -> wl_shm#1551.create_pool(new id wl_shm_pool#1563, fd 249, 16) -[2618059.842] {Default Queue} -> wl_shm#1551.create_pool(new id wl_shm_pool#1564, fd 250, 16) -[2618059.847] {Default Queue} -> wl_shm_pool#1563.create_buffer(new id wl_buffer#1565, 0, 2, 2, 8, 0) -[2618059.852] {Default Queue} -> wl_shm_pool#1564.create_buffer(new id wl_buffer#1566, 0, 2, 2, 8, 0) -[2618059.859] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) -[2618059.874] {Default Queue} -> wl_surface#1543.commit() -[2618059.880] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) -[2618059.885] {Default Queue} -> wl_surface#1543.commit() -[2618059.889] {Default Queue} -> wl_compositor#1548.create_region(new id wl_region#1567) -[2618059.893] {Default Queue} -> wl_compositor#1548.create_region(new id wl_region#1568) -[2618059.897] {Default Queue} -> wl_region#1567.subtract(0, 0, 2, 2) -[2618059.902] {Default Queue} -> wl_region#1567.add(0, 0, 0, 0) -[2618059.907] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) -[2618059.911] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) -[2618059.915] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) -[2618059.920] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) -[2618059.927] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) -[2618059.931] {Default Queue} -> wl_surface#1543.commit() -[2618059.966] {Default Queue} -> wl_shm#1553.create_pool(new id wl_shm_pool#1569, fd 253, 640) -[2618059.973] {Default Queue} -> wl_shm#1553.create_pool(new id wl_shm_pool#1570, fd 254, 640) -[2618059.977] {Default Queue} -> wl_shm_pool#1569.create_buffer(new id wl_buffer#1571, 0, 10, 16, 40, 0) -[2618059.982] {Default Queue} -> wl_shm_pool#1570.create_buffer(new id wl_buffer#1572, 0, 10, 16, 40, 0) -[2618059.989] {Default Queue} -> wl_compositor#1548.create_surface(new id wl_surface#1573) -[2618059.994] {Default Queue} -> wl_surface#1573.attach(wl_buffer#1571, 0, 0) -[2618059.999] {Default Queue} -> wl_surface#1573.commit() -[2618060.004] {Default Queue} -> wl_surface#1573.attach(wl_buffer#1571, 0, 0) -[2618060.008] {Default Queue} -> wl_surface#1573.commit() -[2618060.013] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) -[2618060.020] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1574) -[2618060.030] {Default Queue} -> wl_display#1.sync(new id wl_callback#1575) -[2618065.132] {Display Queue} wl_display#1.delete_id(1575) -[2618065.144] {Default Queue} wl_keyboard#1544.keymap(1, fd 249, 68213) -[2618065.151] {Default Queue} wl_keyboard#1544.enter(566, wl_surface#19, array[0]) -[2618065.158] {Default Queue} wl_keyboard#1544.modifiers(566, 0, 0, 16, 0) -[2618065.164] {Default Queue} discarded wl_shm#1551.format(875709016) -[2618065.170] {Default Queue} discarded wl_shm#1551.format(1) -[2618065.175] {Default Queue} discarded wl_shm#1551.format(0) -[2618065.179] {Default Queue} discarded wl_shm#1551.format(875708993) -[2618065.184] {Default Queue} discarded wl_shm#1552.format(875709016) -[2618065.189] {Default Queue} discarded wl_shm#1552.format(1) -[2618065.194] {Default Queue} discarded wl_shm#1552.format(0) -[2618065.199] {Default Queue} discarded wl_shm#1552.format(875708993) -[2618065.204] {Default Queue} discarded wl_shm#1553.format(875709016) -[2618065.209] {Default Queue} discarded wl_shm#1553.format(1) -[2618065.214] {Default Queue} discarded wl_shm#1553.format(0) -[2618065.219] {Default Queue} discarded wl_shm#1553.format(875708993) -[2618065.224] {Default Queue} wl_seat#1560.capabilities(7) -[2618065.229] {Default Queue} -> wl_seat#1560.get_keyboard(new id wl_keyboard#1576) -[2618065.235] {Default Queue} -> wl_seat#1560.get_pointer(new id wl_pointer#1577) -[2618065.241] {Default Queue} -> wl_data_device_manager#1556.get_data_device(new id wl_data_device#1578, wl_seat#1560) -[2618065.247] {Default Queue} -> zwp_primary_selection_device_manager_v1#1558.get_device(new id zwp_primary_selection_device_v1#1579, wl_seat#1560) -[2618065.257] {Default Queue} wl_output#1561.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618065.263] {Default Queue} wl_output#1561.mode(3, 1280, 800, 60000) -[2618065.269] {Default Queue} discarded wl_surface#3.enter(wl_output#1561) -[2618065.275] {Default Queue} discarded wl_surface#999.enter(wl_output#1561) -[2618065.279] {Default Queue} discarded wl_surface#1191.enter(wl_output#1561) -[2618065.284] {Default Queue} discarded wl_surface#1159.enter(wl_output#1561) -[2618065.289] {Default Queue} discarded wl_surface#423.enter(wl_output#1561) -[2618065.295] {Default Queue} discarded wl_surface#1447.enter(wl_output#1561) -[2618065.300] {Default Queue} discarded wl_surface#1319.enter(wl_output#1561) -[2618065.304] {Default Queue} discarded wl_surface#1127.enter(wl_output#1561) -[2618065.309] {Default Queue} discarded wl_surface#1063.enter(wl_output#1561) -[2618065.314] {Default Queue} discarded wl_surface#455.enter(wl_output#1561) -[2618065.319] {Default Queue} discarded wl_surface#1415.enter(wl_output#1561) -[2618065.324] {Default Queue} discarded wl_surface#903.enter(wl_output#1561) -[2618065.329] {Default Queue} discarded wl_surface#775.enter(wl_output#1561) -[2618065.334] {Default Queue} discarded wl_surface#135.enter(wl_output#1561) -[2618065.339] {Default Queue} discarded wl_surface#1287.enter(wl_output#1561) -[2618065.344] {Default Queue} discarded wl_surface#1031.enter(wl_output#1561) -[2618065.349] {Default Queue} discarded wl_surface#615.enter(wl_output#1561) -[2618065.354] {Default Queue} discarded wl_surface#231.enter(wl_output#1561) -[2618065.359] {Default Queue} discarded wl_surface#359.enter(wl_output#1561) -[2618065.364] {Default Queue} discarded wl_surface#583.enter(wl_output#1561) -[2618065.369] {Default Queue} discarded wl_surface#743.enter(wl_output#1561) -[2618065.374] {Default Queue} discarded wl_surface#967.enter(wl_output#1561) -[2618065.378] {Default Queue} discarded wl_surface#103.enter(wl_output#1561) -[2618065.383] {Default Queue} discarded wl_surface#327.enter(wl_output#1561) -[2618065.388] {Default Queue} discarded wl_surface#43.enter(wl_output#1561) -[2618065.393] {Default Queue} discarded wl_surface#807.enter(wl_output#1561) -[2618065.398] {Default Queue} discarded wl_surface#19.enter(wl_output#1561) -[2618065.403] {Default Queue} discarded wl_surface#1511.enter(wl_output#1561) -[2618065.408] {Default Queue} discarded wl_surface#199.enter(wl_output#1561) -[2618065.418] {Default Queue} discarded wl_surface#391.enter(wl_output#1561) -[2618065.426] {Default Queue} discarded wl_surface#935.enter(wl_output#1561) -[2618065.431] {Default Queue} discarded wl_surface#1351.enter(wl_output#1561) -[2618065.436] {Default Queue} discarded wl_surface#711.enter(wl_output#1561) -[2618065.441] {Default Queue} discarded wl_surface#1223.enter(wl_output#1561) -[2618065.446] {Default Queue} discarded wl_surface#871.enter(wl_output#1561) -[2618065.451] {Default Queue} discarded wl_surface#263.enter(wl_output#1561) -[2618065.456] {Default Queue} discarded wl_surface#551.enter(wl_output#1561) -[2618065.460] {Default Queue} discarded wl_surface#1479.enter(wl_output#1561) -[2618065.465] {Default Queue} discarded wl_surface#647.enter(wl_output#1561) -[2618065.470] {Default Queue} discarded wl_surface#71.enter(wl_output#1561) -[2618065.475] {Default Queue} discarded wl_surface#839.enter(wl_output#1561) -[2618065.480] {Default Queue} discarded wl_surface#1095.enter(wl_output#1561) -[2618065.485] {Default Queue} discarded wl_surface#1383.enter(wl_output#1561) -[2618065.489] {Default Queue} discarded wl_surface#487.enter(wl_output#1561) -[2618065.494] {Default Queue} discarded wl_surface#519.enter(wl_output#1561) -[2618065.499] {Default Queue} discarded wl_surface#295.enter(wl_output#1561) -[2618065.504] {Default Queue} discarded wl_surface#167.enter(wl_output#1561) -[2618065.509] {Default Queue} discarded wl_surface#1255.enter(wl_output#1561) -[2618065.514] {Default Queue} discarded wl_surface#679.enter(wl_output#1561) -[2618065.520] {Default Queue} wl_registry#1574.global(1, "wl_compositor", 6) -[2618065.526] {Default Queue} -> wl_registry#1574.bind(1, "wl_compositor", 1, new id [unknown]#1580) -[2618065.532] {Default Queue} wl_registry#1574.global(2, "wl_subcompositor", 1) -[2618065.538] {Default Queue} -> wl_registry#1574.bind(2, "wl_subcompositor", 1, new id [unknown]#1581) -[2618065.544] {Default Queue} wl_registry#1574.global(3, "xdg_wm_base", 6) -[2618065.549] {Default Queue} -> wl_registry#1574.bind(3, "xdg_wm_base", 1, new id [unknown]#1582) -[2618065.555] {Default Queue} wl_registry#1574.global(6, "zwlr_layer_shell_v1", 5) -[2618065.560] {Default Queue} wl_registry#1574.global(7, "ext_session_lock_manager_v1", 1) -[2618065.566] {Default Queue} wl_registry#1574.global(8, "wl_shm", 2) -[2618065.571] {Default Queue} -> wl_registry#1574.bind(8, "wl_shm", 1, new id [unknown]#1583) -[2618065.577] {Default Queue} -> wl_registry#1574.bind(8, "wl_shm", 1, new id [unknown]#1584) -[2618065.582] {Default Queue} -> wl_registry#1574.bind(8, "wl_shm", 1, new id [unknown]#1585) -[2618065.588] {Default Queue} wl_registry#1574.global(9, "zxdg_output_manager_v1", 3) -[2618065.593] {Default Queue} wl_registry#1574.global(10, "wp_fractional_scale_manager_v1", 1) -[2618065.601] {Default Queue} wl_registry#1574.global(11, "zwp_tablet_manager_v2", 1) -[2618065.606] {Default Queue} wl_registry#1574.global(12, "zwp_pointer_gestures_v1", 3) -[2618065.612] {Default Queue} wl_registry#1574.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618065.617] {Default Queue} -> wl_registry#1574.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1586) -[2618065.623] {Default Queue} wl_registry#1574.global(14, "zwp_pointer_constraints_v1", 1) -[2618065.629] {Default Queue} -> wl_registry#1574.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1587) -[2618065.634] {Default Queue} wl_registry#1574.global(15, "ext_idle_notifier_v1", 2) -[2618065.640] {Default Queue} wl_registry#1574.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618065.645] {Default Queue} wl_registry#1574.global(17, "wl_data_device_manager", 3) -[2618065.652] {Default Queue} -> wl_registry#1574.bind(17, "wl_data_device_manager", 2, new id [unknown]#1588) -[2618065.657] {Default Queue} -> wl_data_device_manager#1588.create_data_source(new id wl_data_source#1589) -[2618065.663] {Default Queue} -> wl_data_source#1589.offer("text/plain") -[2618065.668] {Default Queue} -> wl_data_source#1589.offer("text/plain;charset=utf-8") -[2618065.674] {Default Queue} -> wl_data_source#1589.offer("TEXT") -[2618065.682] {Default Queue} -> wl_data_source#1589.offer("STRING") -[2618065.689] {Default Queue} -> wl_data_source#1589.offer("UTF8_STRING") -[2618065.694] {Default Queue} wl_registry#1574.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618065.700] {Default Queue} -> wl_registry#1574.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1590) -[2618065.710] {Default Queue} -> zwp_primary_selection_device_manager_v1#1590.create_source(new id zwp_primary_selection_source_v1#1591) -[2618065.719] {Default Queue} -> zwp_primary_selection_source_v1#1591.offer("text/plain") -[2618065.724] {Default Queue} -> zwp_primary_selection_source_v1#1591.offer("text/plain;charset=utf-8") -[2618065.729] {Default Queue} -> zwp_primary_selection_source_v1#1591.offer("TEXT") -[2618065.734] {Default Queue} -> zwp_primary_selection_source_v1#1591.offer("STRING") -[2618065.739] {Default Queue} -> zwp_primary_selection_source_v1#1591.offer("UTF8_STRING") -[2618065.744] {Default Queue} wl_registry#1574.global(19, "zwlr_data_control_manager_v1", 2) -[2618065.750] {Default Queue} wl_registry#1574.global(20, "ext_data_control_manager_v1", 1) -[2618065.755] {Default Queue} wl_registry#1574.global(21, "wp_presentation", 2) -[2618065.761] {Default Queue} wl_registry#1574.global(22, "wp_security_context_manager_v1", 1) -[2618065.766] {Default Queue} wl_registry#1574.global(23, "zwp_text_input_manager_v3", 1) -[2618065.772] {Default Queue} wl_registry#1574.global(24, "zwp_input_method_manager_v2", 1) -[2618065.777] {Default Queue} wl_registry#1574.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618065.783] {Default Queue} wl_registry#1574.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618065.788] {Default Queue} wl_registry#1574.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618065.793] {Default Queue} wl_registry#1574.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618065.799] {Default Queue} wl_registry#1574.global(29, "ext_workspace_manager_v1", 1) -[2618065.804] {Default Queue} wl_registry#1574.global(30, "zwlr_output_manager_v1", 4) -[2618065.810] {Default Queue} wl_registry#1574.global(31, "zwlr_screencopy_manager_v1", 3) -[2618065.815] {Default Queue} wl_registry#1574.global(32, "wp_viewporter", 1) -[2618065.820] {Default Queue} wl_registry#1574.global(33, "zxdg_exporter_v2", 1) -[2618065.825] {Default Queue} wl_registry#1574.global(34, "zxdg_importer_v2", 1) -[2618065.829] {Default Queue} wl_registry#1574.global(36, "xdg_activation_v1", 1) -[2618065.833] {Default Queue} wl_registry#1574.global(37, "mutter_x11_interop", 1) -[2618065.838] {Default Queue} wl_registry#1574.global(38, "wl_seat", 9) -[2618065.842] {Default Queue} -> wl_registry#1574.bind(38, "wl_seat", 1, new id [unknown]#1592) -[2618065.847] {Default Queue} wl_registry#1574.global(39, "wp_cursor_shape_manager_v1", 2) -[2618065.851] {Default Queue} wl_registry#1574.global(40, "wl_output", 4) -[2618065.856] {Default Queue} -> wl_registry#1574.bind(40, "wl_output", 1, new id [unknown]#1593) -[2618065.865] {Default Queue} wl_callback#1575.done(0) -[2618065.869] {Default Queue} discarded wl_surface#1543.enter(wl_output#18) -[2618065.874] {Default Queue} discarded wl_surface#1543.enter(wl_output#57) -[2618065.878] {Default Queue} discarded wl_surface#1543.enter(wl_output#89) -[2618065.882] {Default Queue} discarded wl_surface#1543.enter(wl_output#121) -[2618065.886] {Default Queue} discarded wl_surface#1543.enter(wl_output#153) -[2618065.890] {Default Queue} discarded wl_surface#1543.enter(wl_output#185) -[2618065.894] {Default Queue} discarded wl_surface#1543.enter(wl_output#217) -[2618065.897] {Default Queue} discarded wl_surface#1543.enter(wl_output#249) -[2618065.901] {Default Queue} discarded wl_surface#1543.enter(wl_output#281) -[2618065.905] {Default Queue} discarded wl_surface#1543.enter(wl_output#313) -[2618065.909] {Default Queue} discarded wl_surface#1543.enter(wl_output#345) -[2618065.913] {Default Queue} discarded wl_surface#1543.enter(wl_output#377) -[2618065.917] {Default Queue} discarded wl_surface#1543.enter(wl_output#409) -[2618065.924] {Default Queue} discarded wl_surface#1543.enter(wl_output#441) -[2618065.929] {Default Queue} discarded wl_surface#1543.enter(wl_output#473) -[2618065.933] {Default Queue} discarded wl_surface#1543.enter(wl_output#505) -[2618065.937] {Default Queue} discarded wl_surface#1543.enter(wl_output#537) -[2618065.941] {Default Queue} discarded wl_surface#1543.enter(wl_output#569) -[2618065.945] {Default Queue} discarded wl_surface#1543.enter(wl_output#601) -[2618065.949] {Default Queue} discarded wl_surface#1543.enter(wl_output#633) -[2618065.953] {Default Queue} discarded wl_surface#1543.enter(wl_output#665) -[2618065.957] {Default Queue} discarded wl_surface#1543.enter(wl_output#697) -[2618065.961] {Default Queue} discarded wl_surface#1543.enter(wl_output#729) -[2618065.965] {Default Queue} discarded wl_surface#1543.enter(wl_output#761) -[2618065.969] {Default Queue} discarded wl_surface#1543.enter(wl_output#793) -[2618065.973] {Default Queue} discarded wl_surface#1543.enter(wl_output#825) -[2618065.976] {Default Queue} discarded wl_surface#1543.enter(wl_output#857) -[2618065.980] {Default Queue} discarded wl_surface#1543.enter(wl_output#889) -[2618065.984] {Default Queue} discarded wl_surface#1543.enter(wl_output#921) -[2618065.988] {Default Queue} discarded wl_surface#1543.enter(wl_output#953) -[2618065.993] {Default Queue} discarded wl_surface#1543.enter(wl_output#985) -[2618065.997] {Default Queue} discarded wl_surface#1543.enter(wl_output#1017) -[2618066.001] {Default Queue} discarded wl_surface#1543.enter(wl_output#1049) -[2618066.005] {Default Queue} discarded wl_surface#1543.enter(wl_output#1081) -[2618066.009] {Default Queue} discarded wl_surface#1543.enter(wl_output#1113) -[2618066.013] {Default Queue} discarded wl_surface#1543.enter(wl_output#1145) -[2618066.016] {Default Queue} discarded wl_surface#1543.enter(wl_output#1177) -[2618066.020] {Default Queue} discarded wl_surface#1543.enter(wl_output#1209) -[2618066.024] {Default Queue} discarded wl_surface#1543.enter(wl_output#1241) -[2618066.029] {Default Queue} discarded wl_surface#1543.enter(wl_output#1273) -[2618066.033] {Default Queue} discarded wl_surface#1543.enter(wl_output#1305) -[2618066.037] {Default Queue} discarded wl_surface#1543.enter(wl_output#1337) -[2618066.041] {Default Queue} discarded wl_surface#1543.enter(wl_output#1369) -[2618066.045] {Default Queue} discarded wl_surface#1543.enter(wl_output#1401) -[2618066.049] {Default Queue} discarded wl_surface#1543.enter(wl_output#1433) -[2618066.053] {Default Queue} discarded wl_surface#1543.enter(wl_output#1465) -[2618066.057] {Default Queue} discarded wl_surface#1543.enter(wl_output#1497) -[2618066.061] {Default Queue} discarded wl_surface#1543.enter(wl_output#1529) -[2618066.065] {Default Queue} discarded wl_surface#1543.enter(wl_output#1561) -[2618066.069] {Default Queue} -> wl_compositor#1548.create_surface(new id wl_surface#1575) -[2618066.074] {Default Queue} -> wl_subcompositor#1581.get_subsurface(new id wl_subsurface#1594, wl_surface#1575, wl_surface#1543) -[2618066.082] {Default Queue} -> wl_subsurface#1594.set_desync() -[2618066.086] {Default Queue} -> wl_subsurface#1594.set_position(0, 0) -[2618066.091] {Default Queue} -> wl_subsurface#1594.place_above(wl_surface#1543) -[2618066.135] {Default Queue} -> wl_shm#1583.create_pool(new id wl_shm_pool#1595, fd 254, 16) -[2618066.142] {Default Queue} -> wl_shm#1583.create_pool(new id wl_shm_pool#1596, fd 255, 16) -[2618066.147] {Default Queue} -> wl_shm_pool#1595.create_buffer(new id wl_buffer#1597, 0, 2, 2, 8, 0) -[2618066.152] {Default Queue} -> wl_shm_pool#1596.create_buffer(new id wl_buffer#1598, 0, 2, 2, 8, 0) -[2618066.159] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) -[2618066.164] {Default Queue} -> wl_surface#1575.commit() -[2618066.169] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) -[2618066.174] {Default Queue} -> wl_surface#1575.commit() -[2618066.178] {Default Queue} -> wl_compositor#1580.create_region(new id wl_region#1599) -[2618066.182] {Default Queue} -> wl_compositor#1580.create_region(new id wl_region#1600) -[2618066.186] {Default Queue} -> wl_region#1599.subtract(0, 0, 2, 2) -[2618066.194] {Default Queue} -> wl_region#1599.add(0, 0, 0, 0) -[2618066.200] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618066.204] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618066.208] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618066.213] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) -[2618066.220] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) -[2618066.224] {Default Queue} -> wl_surface#1575.commit() -[2618066.261] {Default Queue} -> wl_shm#1585.create_pool(new id wl_shm_pool#1601, fd 258, 640) -[2618066.268] {Default Queue} -> wl_shm#1585.create_pool(new id wl_shm_pool#1602, fd 259, 640) -[2618066.272] {Default Queue} -> wl_shm_pool#1601.create_buffer(new id wl_buffer#1603, 0, 10, 16, 40, 0) -[2618066.278] {Default Queue} -> wl_shm_pool#1602.create_buffer(new id wl_buffer#1604, 0, 10, 16, 40, 0) -[2618066.285] {Default Queue} -> wl_compositor#1580.create_surface(new id wl_surface#1605) -[2618066.290] {Default Queue} -> wl_surface#1605.attach(wl_buffer#1603, 0, 0) -[2618066.294] {Default Queue} -> wl_surface#1605.commit() -[2618066.299] {Default Queue} -> wl_surface#1605.attach(wl_buffer#1603, 0, 0) -[2618066.305] {Default Queue} -> wl_surface#1605.commit() -[2618066.316] {Default Queue} -> wl_region#1503.subtract(0, 0, 2, 2) -[2618066.321] {Default Queue} -> wl_subsurface#1498.set_position(3, 3) -[2618066.326] {Default Queue} -> wl_region#1503.subtract(0, 0, 5, 5) -[2618066.330] {Default Queue} -> wl_region#1503.add(0, 0, 0, 0) -[2618066.335] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) -[2618066.339] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) -[2618066.344] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618066.348] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618066.353] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) -[2618066.357] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) -[2618066.366] {Default Queue} -> wl_region#1503.subtract(0, 0, 5, 5) -[2618066.370] {Default Queue} -> wl_region#1503.add(0, 0, 0, 0) -[2618066.375] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) -[2618066.379] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) -[2618066.386] {Default Queue} -> wl_surface#1479.attach(wl_buffer#1501, 0, 0) -[2618066.391] {Default Queue} -> wl_surface#1479.commit() -[2618066.397] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618066.405] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1606) -[2618066.410] {Default Queue} -> wl_display#1.sync(new id wl_callback#1607) -[2618069.016] {Display Queue} wl_display#1.delete_id(1607) -[2618069.026] {Default Queue} wl_keyboard#1576.keymap(1, fd 254, 68213) -[2618069.032] {Default Queue} wl_keyboard#1576.enter(566, wl_surface#19, array[0]) -[2618069.038] {Default Queue} wl_keyboard#1576.modifiers(566, 0, 0, 16, 0) -[2618069.044] {Default Queue} discarded wl_shm#1583.format(875709016) -[2618069.049] {Default Queue} discarded wl_shm#1583.format(1) -[2618069.054] {Default Queue} discarded wl_shm#1583.format(0) -[2618069.059] {Default Queue} discarded wl_shm#1583.format(875708993) -[2618069.064] {Default Queue} discarded wl_shm#1584.format(875709016) -[2618069.069] {Default Queue} discarded wl_shm#1584.format(1) -[2618069.074] {Default Queue} discarded wl_shm#1584.format(0) -[2618069.079] {Default Queue} discarded wl_shm#1584.format(875708993) -[2618069.084] {Default Queue} discarded wl_shm#1585.format(875709016) -[2618069.089] {Default Queue} discarded wl_shm#1585.format(1) -[2618069.094] {Default Queue} discarded wl_shm#1585.format(0) -[2618069.099] {Default Queue} discarded wl_shm#1585.format(875708993) -[2618069.103] {Default Queue} wl_seat#1592.capabilities(7) -[2618069.110] {Default Queue} -> wl_seat#1592.get_keyboard(new id wl_keyboard#1608) -[2618069.115] {Default Queue} -> wl_seat#1592.get_pointer(new id wl_pointer#1609) -[2618069.121] {Default Queue} -> wl_data_device_manager#1588.get_data_device(new id wl_data_device#1610, wl_seat#1592) -[2618069.132] {Default Queue} -> zwp_primary_selection_device_manager_v1#1590.get_device(new id zwp_primary_selection_device_v1#1611, wl_seat#1592) -[2618069.146] {Default Queue} wl_output#1593.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618069.153] {Default Queue} wl_output#1593.mode(3, 1280, 800, 60000) -[2618069.158] {Default Queue} discarded wl_surface#3.enter(wl_output#1593) -[2618069.164] {Default Queue} discarded wl_surface#999.enter(wl_output#1593) -[2618069.169] {Default Queue} discarded wl_surface#1191.enter(wl_output#1593) -[2618069.174] {Default Queue} discarded wl_surface#1159.enter(wl_output#1593) -[2618069.179] {Default Queue} discarded wl_surface#423.enter(wl_output#1593) -[2618069.184] {Default Queue} discarded wl_surface#1447.enter(wl_output#1593) -[2618069.189] {Default Queue} discarded wl_surface#1319.enter(wl_output#1593) -[2618069.194] {Default Queue} discarded wl_surface#1127.enter(wl_output#1593) -[2618069.199] {Default Queue} discarded wl_surface#1063.enter(wl_output#1593) -[2618069.204] {Default Queue} discarded wl_surface#455.enter(wl_output#1593) -[2618069.209] {Default Queue} discarded wl_surface#1415.enter(wl_output#1593) -[2618069.214] {Default Queue} discarded wl_surface#903.enter(wl_output#1593) -[2618069.218] {Default Queue} discarded wl_surface#775.enter(wl_output#1593) -[2618069.223] {Default Queue} discarded wl_surface#1543.enter(wl_output#1593) -[2618069.228] {Default Queue} discarded wl_surface#135.enter(wl_output#1593) -[2618069.233] {Default Queue} discarded wl_surface#1287.enter(wl_output#1593) -[2618069.238] {Default Queue} discarded wl_surface#1031.enter(wl_output#1593) -[2618069.243] {Default Queue} discarded wl_surface#615.enter(wl_output#1593) -[2618069.248] {Default Queue} discarded wl_surface#231.enter(wl_output#1593) -[2618069.253] {Default Queue} discarded wl_surface#359.enter(wl_output#1593) -[2618069.258] {Default Queue} discarded wl_surface#583.enter(wl_output#1593) -[2618069.262] {Default Queue} discarded wl_surface#743.enter(wl_output#1593) -[2618069.267] {Default Queue} discarded wl_surface#967.enter(wl_output#1593) -[2618069.273] {Default Queue} discarded wl_surface#103.enter(wl_output#1593) -[2618069.278] {Default Queue} discarded wl_surface#327.enter(wl_output#1593) -[2618069.282] {Default Queue} discarded wl_surface#43.enter(wl_output#1593) -[2618069.287] {Default Queue} discarded wl_surface#807.enter(wl_output#1593) -[2618069.292] {Default Queue} discarded wl_surface#19.enter(wl_output#1593) -[2618069.297] {Default Queue} discarded wl_surface#1511.enter(wl_output#1593) -[2618069.302] {Default Queue} discarded wl_surface#199.enter(wl_output#1593) -[2618069.308] {Default Queue} discarded wl_surface#391.enter(wl_output#1593) -[2618069.313] {Default Queue} discarded wl_surface#935.enter(wl_output#1593) -[2618069.318] {Default Queue} discarded wl_surface#1351.enter(wl_output#1593) -[2618069.323] {Default Queue} discarded wl_surface#711.enter(wl_output#1593) -[2618069.328] {Default Queue} discarded wl_surface#1223.enter(wl_output#1593) -[2618069.333] {Default Queue} discarded wl_surface#871.enter(wl_output#1593) -[2618069.339] {Default Queue} discarded wl_surface#263.enter(wl_output#1593) -[2618069.344] {Default Queue} discarded wl_surface#551.enter(wl_output#1593) -[2618069.349] {Default Queue} discarded wl_surface#1479.enter(wl_output#1593) -[2618069.353] {Default Queue} discarded wl_surface#647.enter(wl_output#1593) -[2618069.359] {Default Queue} discarded wl_surface#71.enter(wl_output#1593) -[2618069.364] {Default Queue} discarded wl_surface#839.enter(wl_output#1593) -[2618069.369] {Default Queue} discarded wl_surface#1095.enter(wl_output#1593) -[2618069.374] {Default Queue} discarded wl_surface#1383.enter(wl_output#1593) -[2618069.379] {Default Queue} discarded wl_surface#487.enter(wl_output#1593) -[2618069.384] {Default Queue} discarded wl_surface#519.enter(wl_output#1593) -[2618069.389] {Default Queue} discarded wl_surface#295.enter(wl_output#1593) -[2618069.394] {Default Queue} discarded wl_surface#167.enter(wl_output#1593) -[2618069.399] {Default Queue} discarded wl_surface#1255.enter(wl_output#1593) -[2618069.408] {Default Queue} discarded wl_surface#679.enter(wl_output#1593) -[2618069.415] {Default Queue} wl_registry#1606.global(1, "wl_compositor", 6) -[2618069.421] {Default Queue} -> wl_registry#1606.bind(1, "wl_compositor", 1, new id [unknown]#1612) -[2618069.427] {Default Queue} wl_registry#1606.global(2, "wl_subcompositor", 1) -[2618069.433] {Default Queue} -> wl_registry#1606.bind(2, "wl_subcompositor", 1, new id [unknown]#1613) -[2618069.438] {Default Queue} wl_registry#1606.global(3, "xdg_wm_base", 6) -[2618069.444] {Default Queue} -> wl_registry#1606.bind(3, "xdg_wm_base", 1, new id [unknown]#1614) -[2618069.450] {Default Queue} wl_registry#1606.global(6, "zwlr_layer_shell_v1", 5) -[2618069.455] {Default Queue} wl_registry#1606.global(7, "ext_session_lock_manager_v1", 1) -[2618069.461] {Default Queue} wl_registry#1606.global(8, "wl_shm", 2) -[2618069.469] {Default Queue} -> wl_registry#1606.bind(8, "wl_shm", 1, new id [unknown]#1615) -[2618069.475] {Default Queue} -> wl_registry#1606.bind(8, "wl_shm", 1, new id [unknown]#1616) -[2618069.480] {Default Queue} -> wl_registry#1606.bind(8, "wl_shm", 1, new id [unknown]#1617) -[2618069.486] {Default Queue} wl_registry#1606.global(9, "zxdg_output_manager_v1", 3) -[2618069.491] {Default Queue} wl_registry#1606.global(10, "wp_fractional_scale_manager_v1", 1) -[2618069.496] {Default Queue} wl_registry#1606.global(11, "zwp_tablet_manager_v2", 1) -[2618069.502] {Default Queue} wl_registry#1606.global(12, "zwp_pointer_gestures_v1", 3) -[2618069.507] {Default Queue} wl_registry#1606.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618069.513] {Default Queue} -> wl_registry#1606.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1618) -[2618069.518] {Default Queue} wl_registry#1606.global(14, "zwp_pointer_constraints_v1", 1) -[2618069.524] {Default Queue} -> wl_registry#1606.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1619) -[2618069.530] {Default Queue} wl_registry#1606.global(15, "ext_idle_notifier_v1", 2) -[2618069.535] {Default Queue} wl_registry#1606.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618069.540] {Default Queue} wl_registry#1606.global(17, "wl_data_device_manager", 3) -[2618069.547] {Default Queue} -> wl_registry#1606.bind(17, "wl_data_device_manager", 2, new id [unknown]#1620) -[2618069.552] {Default Queue} -> wl_data_device_manager#1620.create_data_source(new id wl_data_source#1621) -[2618069.558] {Default Queue} -> wl_data_source#1621.offer("text/plain") -[2618069.563] {Default Queue} -> wl_data_source#1621.offer("text/plain;charset=utf-8") -[2618069.568] {Default Queue} -> wl_data_source#1621.offer("TEXT") -[2618069.573] {Default Queue} -> wl_data_source#1621.offer("STRING") -[2618069.578] {Default Queue} -> wl_data_source#1621.offer("UTF8_STRING") -[2618069.583] {Default Queue} wl_registry#1606.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618069.589] {Default Queue} -> wl_registry#1606.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1622) -[2618069.599] {Default Queue} -> zwp_primary_selection_device_manager_v1#1622.create_source(new id zwp_primary_selection_source_v1#1623) -[2618069.608] {Default Queue} -> zwp_primary_selection_source_v1#1623.offer("text/plain") -[2618069.613] {Default Queue} -> zwp_primary_selection_source_v1#1623.offer("text/plain;charset=utf-8") -[2618069.618] {Default Queue} -> zwp_primary_selection_source_v1#1623.offer("TEXT") -[2618069.623] {Default Queue} -> zwp_primary_selection_source_v1#1623.offer("STRING") -[2618069.628] {Default Queue} -> zwp_primary_selection_source_v1#1623.offer("UTF8_STRING") -[2618069.633] {Default Queue} wl_registry#1606.global(19, "zwlr_data_control_manager_v1", 2) -[2618069.638] {Default Queue} wl_registry#1606.global(20, "ext_data_control_manager_v1", 1) -[2618069.644] {Default Queue} wl_registry#1606.global(21, "wp_presentation", 2) -[2618069.650] {Default Queue} wl_registry#1606.global(22, "wp_security_context_manager_v1", 1) -[2618069.656] {Default Queue} wl_registry#1606.global(23, "zwp_text_input_manager_v3", 1) -[2618069.665] {Default Queue} wl_registry#1606.global(24, "zwp_input_method_manager_v2", 1) -[2618069.672] {Default Queue} wl_registry#1606.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618069.678] {Default Queue} wl_registry#1606.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618069.683] {Default Queue} wl_registry#1606.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618069.688] {Default Queue} wl_registry#1606.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618069.693] {Default Queue} wl_registry#1606.global(29, "ext_workspace_manager_v1", 1) -[2618069.699] {Default Queue} wl_registry#1606.global(30, "zwlr_output_manager_v1", 4) -[2618069.704] {Default Queue} wl_registry#1606.global(31, "zwlr_screencopy_manager_v1", 3) -[2618069.709] {Default Queue} wl_registry#1606.global(32, "wp_viewporter", 1) -[2618069.714] {Default Queue} wl_registry#1606.global(33, "zxdg_exporter_v2", 1) -[2618069.719] {Default Queue} wl_registry#1606.global(34, "zxdg_importer_v2", 1) -[2618069.725] {Default Queue} wl_registry#1606.global(36, "xdg_activation_v1", 1) -[2618069.730] {Default Queue} wl_registry#1606.global(37, "mutter_x11_interop", 1) -[2618069.736] {Default Queue} wl_registry#1606.global(38, "wl_seat", 9) -[2618069.741] {Default Queue} -> wl_registry#1606.bind(38, "wl_seat", 1, new id [unknown]#1624) -[2618069.747] {Default Queue} wl_registry#1606.global(39, "wp_cursor_shape_manager_v1", 2) -[2618069.752] {Default Queue} wl_registry#1606.global(40, "wl_output", 4) -[2618069.758] {Default Queue} -> wl_registry#1606.bind(40, "wl_output", 1, new id [unknown]#1625) -[2618069.763] {Default Queue} wl_callback#1607.done(0) -[2618069.769] {Default Queue} discarded wl_surface#1575.enter(wl_output#18) -[2618069.774] {Default Queue} discarded wl_surface#1575.enter(wl_output#57) -[2618069.779] {Default Queue} discarded wl_surface#1575.enter(wl_output#89) -[2618069.783] {Default Queue} discarded wl_surface#1575.enter(wl_output#121) -[2618069.788] {Default Queue} discarded wl_surface#1575.enter(wl_output#153) -[2618069.793] {Default Queue} discarded wl_surface#1575.enter(wl_output#185) -[2618069.798] {Default Queue} discarded wl_surface#1575.enter(wl_output#217) -[2618069.803] {Default Queue} discarded wl_surface#1575.enter(wl_output#249) -[2618069.808] {Default Queue} discarded wl_surface#1575.enter(wl_output#281) -[2618069.813] {Default Queue} discarded wl_surface#1575.enter(wl_output#313) -[2618069.818] {Default Queue} discarded wl_surface#1575.enter(wl_output#345) -[2618069.823] {Default Queue} discarded wl_surface#1575.enter(wl_output#377) -[2618069.828] {Default Queue} discarded wl_surface#1575.enter(wl_output#409) -[2618069.832] {Default Queue} discarded wl_surface#1575.enter(wl_output#441) -[2618069.836] {Default Queue} discarded wl_surface#1575.enter(wl_output#473) -[2618069.840] {Default Queue} discarded wl_surface#1575.enter(wl_output#505) -[2618069.844] {Default Queue} discarded wl_surface#1575.enter(wl_output#537) -[2618069.848] {Default Queue} discarded wl_surface#1575.enter(wl_output#569) -[2618069.852] {Default Queue} discarded wl_surface#1575.enter(wl_output#601) -[2618069.855] {Default Queue} discarded wl_surface#1575.enter(wl_output#633) -[2618069.859] {Default Queue} discarded wl_surface#1575.enter(wl_output#665) -[2618069.869] {Default Queue} discarded wl_surface#1575.enter(wl_output#697) -[2618069.873] {Default Queue} discarded wl_surface#1575.enter(wl_output#729) -[2618069.877] {Default Queue} discarded wl_surface#1575.enter(wl_output#761) -[2618069.881] {Default Queue} discarded wl_surface#1575.enter(wl_output#793) -[2618069.885] {Default Queue} discarded wl_surface#1575.enter(wl_output#825) -[2618069.888] {Default Queue} discarded wl_surface#1575.enter(wl_output#857) -[2618069.892] {Default Queue} discarded wl_surface#1575.enter(wl_output#889) -[2618069.896] {Default Queue} discarded wl_surface#1575.enter(wl_output#921) -[2618069.900] {Default Queue} discarded wl_surface#1575.enter(wl_output#953) -[2618069.904] {Default Queue} discarded wl_surface#1575.enter(wl_output#985) -[2618069.908] {Default Queue} discarded wl_surface#1575.enter(wl_output#1017) -[2618069.915] {Default Queue} discarded wl_surface#1575.enter(wl_output#1049) -[2618069.921] {Default Queue} discarded wl_surface#1575.enter(wl_output#1081) -[2618069.925] {Default Queue} discarded wl_surface#1575.enter(wl_output#1113) -[2618069.928] {Default Queue} discarded wl_surface#1575.enter(wl_output#1145) -[2618069.932] {Default Queue} discarded wl_surface#1575.enter(wl_output#1177) -[2618069.936] {Default Queue} discarded wl_surface#1575.enter(wl_output#1209) -[2618069.940] {Default Queue} discarded wl_surface#1575.enter(wl_output#1241) -[2618069.944] {Default Queue} discarded wl_surface#1575.enter(wl_output#1273) -[2618069.948] {Default Queue} discarded wl_surface#1575.enter(wl_output#1305) -[2618069.952] {Default Queue} discarded wl_surface#1575.enter(wl_output#1337) -[2618069.955] {Default Queue} discarded wl_surface#1575.enter(wl_output#1369) -[2618069.959] {Default Queue} discarded wl_surface#1575.enter(wl_output#1401) -[2618069.964] {Default Queue} discarded wl_surface#1575.enter(wl_output#1433) -[2618069.967] {Default Queue} discarded wl_surface#1575.enter(wl_output#1465) -[2618069.971] {Default Queue} discarded wl_surface#1575.enter(wl_output#1497) -[2618069.976] {Default Queue} discarded wl_surface#1575.enter(wl_output#1529) -[2618069.980] {Default Queue} discarded wl_surface#1575.enter(wl_output#1561) -[2618069.984] {Default Queue} discarded wl_surface#1575.enter(wl_output#1593) -[2618069.988] {Default Queue} -> wl_compositor#876.create_surface(new id wl_surface#1607) -[2618069.992] {Default Queue} -> wl_subcompositor#1613.get_subsurface(new id wl_subsurface#1626, wl_surface#1607, wl_surface#871) -[2618070.000] {Default Queue} -> wl_subsurface#1626.set_desync() -[2618070.005] {Default Queue} -> wl_subsurface#1626.set_position(0, 0) -[2618070.009] {Default Queue} -> wl_subsurface#1626.place_above(wl_surface#871) -[2618070.053] {Default Queue} -> wl_shm#1615.create_pool(new id wl_shm_pool#1627, fd 259, 16) -[2618070.060] {Default Queue} -> wl_shm#1615.create_pool(new id wl_shm_pool#1628, fd 260, 16) -[2618070.064] {Default Queue} -> wl_shm_pool#1627.create_buffer(new id wl_buffer#1629, 0, 2, 2, 8, 0) -[2618070.069] {Default Queue} -> wl_shm_pool#1628.create_buffer(new id wl_buffer#1630, 0, 2, 2, 8, 0) -[2618070.076] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) -[2618070.081] {Default Queue} -> wl_surface#1607.commit() -[2618070.087] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) -[2618070.091] {Default Queue} -> wl_surface#1607.commit() -[2618070.095] {Default Queue} -> wl_compositor#1612.create_region(new id wl_region#1631) -[2618070.099] {Default Queue} -> wl_compositor#1612.create_region(new id wl_region#1632) -[2618070.104] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) -[2618070.108] {Default Queue} -> wl_region#1631.add(0, 0, 0, 0) -[2618070.113] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618070.117] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618070.122] {Default Queue} -> wl_surface#1607.damage(0, 0, 2, 2) -[2618070.126] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) -[2618070.133] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) -[2618070.137] {Default Queue} -> wl_surface#1607.commit() -[2618070.170] {Default Queue} -> wl_shm#1617.create_pool(new id wl_shm_pool#1633, fd 263, 640) -[2618070.176] {Default Queue} -> wl_shm#1617.create_pool(new id wl_shm_pool#1634, fd 264, 640) -[2618070.181] {Default Queue} -> wl_shm_pool#1633.create_buffer(new id wl_buffer#1635, 0, 10, 16, 40, 0) -[2618070.186] {Default Queue} -> wl_shm_pool#1634.create_buffer(new id wl_buffer#1636, 0, 10, 16, 40, 0) -[2618070.193] {Default Queue} -> wl_compositor#1612.create_surface(new id wl_surface#1637) -[2618070.197] {Default Queue} -> wl_surface#1637.attach(wl_buffer#1635, 0, 0) -[2618070.201] {Default Queue} -> wl_surface#1637.commit() -[2618070.206] {Default Queue} -> wl_surface#1637.attach(wl_buffer#1635, 0, 0) -[2618070.211] {Default Queue} -> wl_surface#1637.commit() -[2618070.218] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) -[2618070.225] {Default Queue} -> wl_surface#1607.damage(0, 0, 2, 2) -[2618070.230] {Default Queue} -> wl_surface#1607.damage(0, 0, 2, 2) -[2618070.236] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1638) -[2618070.241] {Default Queue} -> wl_display#1.sync(new id wl_callback#1639) -[2618073.931] {Display Queue} wl_display#1.delete_id(1639) -[2618073.939] {Default Queue} wl_keyboard#1608.keymap(1, fd 259, 68213) -[2618073.943] {Default Queue} wl_keyboard#1608.enter(566, wl_surface#19, array[0]) -[2618073.949] {Default Queue} wl_keyboard#1608.modifiers(566, 0, 0, 16, 0) -[2618073.953] {Default Queue} discarded wl_shm#1615.format(875709016) -[2618073.957] {Default Queue} discarded wl_shm#1615.format(1) -[2618073.961] {Default Queue} discarded wl_shm#1615.format(0) -[2618073.965] {Default Queue} discarded wl_shm#1615.format(875708993) -[2618073.969] {Default Queue} discarded wl_shm#1616.format(875709016) -[2618073.973] {Default Queue} discarded wl_shm#1616.format(1) -[2618073.978] {Default Queue} discarded wl_shm#1616.format(0) -[2618073.982] {Default Queue} discarded wl_shm#1616.format(875708993) -[2618073.986] {Default Queue} discarded wl_shm#1617.format(875709016) -[2618073.990] {Default Queue} discarded wl_shm#1617.format(1) -[2618073.994] {Default Queue} discarded wl_shm#1617.format(0) -[2618073.998] {Default Queue} discarded wl_shm#1617.format(875708993) -[2618074.002] {Default Queue} wl_seat#1624.capabilities(7) -[2618074.006] {Default Queue} -> wl_seat#1624.get_keyboard(new id wl_keyboard#1640) -[2618074.011] {Default Queue} -> wl_seat#1624.get_pointer(new id wl_pointer#1641) -[2618074.015] {Default Queue} -> wl_data_device_manager#1620.get_data_device(new id wl_data_device#1642, wl_seat#1624) -[2618074.020] {Default Queue} -> zwp_primary_selection_device_manager_v1#1622.get_device(new id zwp_primary_selection_device_v1#1643, wl_seat#1624) -[2618074.027] {Default Queue} wl_output#1625.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618074.032] {Default Queue} wl_output#1625.mode(3, 1280, 800, 60000) -[2618074.037] {Default Queue} discarded wl_surface#3.enter(wl_output#1625) -[2618074.041] {Default Queue} discarded wl_surface#999.enter(wl_output#1625) -[2618074.045] {Default Queue} discarded wl_surface#1191.enter(wl_output#1625) -[2618074.049] {Default Queue} discarded wl_surface#1159.enter(wl_output#1625) -[2618074.053] {Default Queue} discarded wl_surface#423.enter(wl_output#1625) -[2618074.057] {Default Queue} discarded wl_surface#1447.enter(wl_output#1625) -[2618074.061] {Default Queue} discarded wl_surface#1319.enter(wl_output#1625) -[2618074.065] {Default Queue} discarded wl_surface#1127.enter(wl_output#1625) -[2618074.069] {Default Queue} discarded wl_surface#1063.enter(wl_output#1625) -[2618074.073] {Default Queue} discarded wl_surface#455.enter(wl_output#1625) -[2618074.077] {Default Queue} discarded wl_surface#1575.enter(wl_output#1625) -[2618074.081] {Default Queue} discarded wl_surface#1415.enter(wl_output#1625) -[2618074.085] {Default Queue} discarded wl_surface#903.enter(wl_output#1625) -[2618074.088] {Default Queue} discarded wl_surface#775.enter(wl_output#1625) -[2618074.092] {Default Queue} discarded wl_surface#1543.enter(wl_output#1625) -[2618074.096] {Default Queue} discarded wl_surface#135.enter(wl_output#1625) -[2618074.100] {Default Queue} discarded wl_surface#1287.enter(wl_output#1625) -[2618074.104] {Default Queue} discarded wl_surface#1031.enter(wl_output#1625) -[2618074.108] {Default Queue} discarded wl_surface#615.enter(wl_output#1625) -[2618074.112] {Default Queue} discarded wl_surface#231.enter(wl_output#1625) -[2618074.116] {Default Queue} discarded wl_surface#359.enter(wl_output#1625) -[2618074.120] {Default Queue} discarded wl_surface#583.enter(wl_output#1625) -[2618074.123] {Default Queue} discarded wl_surface#743.enter(wl_output#1625) -[2618074.127] {Default Queue} discarded wl_surface#967.enter(wl_output#1625) -[2618074.131] {Default Queue} discarded wl_surface#103.enter(wl_output#1625) -[2618074.135] {Default Queue} discarded wl_surface#327.enter(wl_output#1625) -[2618074.142] {Default Queue} discarded wl_surface#43.enter(wl_output#1625) -[2618074.148] {Default Queue} discarded wl_surface#807.enter(wl_output#1625) -[2618074.153] {Default Queue} discarded wl_surface#19.enter(wl_output#1625) -[2618074.157] {Default Queue} discarded wl_surface#1511.enter(wl_output#1625) -[2618074.161] {Default Queue} discarded wl_surface#199.enter(wl_output#1625) -[2618074.165] {Default Queue} discarded wl_surface#391.enter(wl_output#1625) -[2618074.169] {Default Queue} discarded wl_surface#935.enter(wl_output#1625) -[2618074.173] {Default Queue} discarded wl_surface#1351.enter(wl_output#1625) -[2618074.177] {Default Queue} discarded wl_surface#711.enter(wl_output#1625) -[2618074.181] {Default Queue} discarded wl_surface#1223.enter(wl_output#1625) -[2618074.185] {Default Queue} discarded wl_surface#871.enter(wl_output#1625) -[2618074.189] {Default Queue} discarded wl_surface#263.enter(wl_output#1625) -[2618074.192] {Default Queue} discarded wl_surface#551.enter(wl_output#1625) -[2618074.196] {Default Queue} discarded wl_surface#1479.enter(wl_output#1625) -[2618074.200] {Default Queue} discarded wl_surface#647.enter(wl_output#1625) -[2618074.204] {Default Queue} discarded wl_surface#71.enter(wl_output#1625) -[2618074.208] {Default Queue} discarded wl_surface#839.enter(wl_output#1625) -[2618074.212] {Default Queue} discarded wl_surface#1095.enter(wl_output#1625) -[2618074.216] {Default Queue} discarded wl_surface#1383.enter(wl_output#1625) -[2618074.219] {Default Queue} discarded wl_surface#487.enter(wl_output#1625) -[2618074.224] {Default Queue} discarded wl_surface#519.enter(wl_output#1625) -[2618074.227] {Default Queue} discarded wl_surface#295.enter(wl_output#1625) -[2618074.231] {Default Queue} discarded wl_surface#167.enter(wl_output#1625) -[2618074.235] {Default Queue} discarded wl_surface#1255.enter(wl_output#1625) -[2618074.239] {Default Queue} discarded wl_surface#679.enter(wl_output#1625) -[2618074.243] {Default Queue} wl_registry#1638.global(1, "wl_compositor", 6) -[2618074.248] {Default Queue} -> wl_registry#1638.bind(1, "wl_compositor", 1, new id [unknown]#1644) -[2618074.253] {Default Queue} wl_registry#1638.global(2, "wl_subcompositor", 1) -[2618074.257] {Default Queue} -> wl_registry#1638.bind(2, "wl_subcompositor", 1, new id [unknown]#1645) -[2618074.262] {Default Queue} wl_registry#1638.global(3, "xdg_wm_base", 6) -[2618074.266] {Default Queue} -> wl_registry#1638.bind(3, "xdg_wm_base", 1, new id [unknown]#1646) -[2618074.271] {Default Queue} wl_registry#1638.global(6, "zwlr_layer_shell_v1", 5) -[2618074.275] {Default Queue} wl_registry#1638.global(7, "ext_session_lock_manager_v1", 1) -[2618074.279] {Default Queue} wl_registry#1638.global(8, "wl_shm", 2) -[2618074.284] {Default Queue} -> wl_registry#1638.bind(8, "wl_shm", 1, new id [unknown]#1647) -[2618074.290] {Default Queue} -> wl_registry#1638.bind(8, "wl_shm", 1, new id [unknown]#1648) -[2618074.302] {Default Queue} -> wl_registry#1638.bind(8, "wl_shm", 1, new id [unknown]#1649) -[2618074.309] {Default Queue} wl_registry#1638.global(9, "zxdg_output_manager_v1", 3) -[2618074.314] {Default Queue} wl_registry#1638.global(10, "wp_fractional_scale_manager_v1", 1) -[2618074.318] {Default Queue} wl_registry#1638.global(11, "zwp_tablet_manager_v2", 1) -[2618074.323] {Default Queue} wl_registry#1638.global(12, "zwp_pointer_gestures_v1", 3) -[2618074.328] {Default Queue} wl_registry#1638.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618074.335] {Default Queue} -> wl_registry#1638.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1650) -[2618074.340] {Default Queue} wl_registry#1638.global(14, "zwp_pointer_constraints_v1", 1) -[2618074.345] {Default Queue} -> wl_registry#1638.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1651) -[2618074.350] {Default Queue} wl_registry#1638.global(15, "ext_idle_notifier_v1", 2) -[2618074.354] {Default Queue} wl_registry#1638.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618074.359] {Default Queue} wl_registry#1638.global(17, "wl_data_device_manager", 3) -[2618074.365] {Default Queue} -> wl_registry#1638.bind(17, "wl_data_device_manager", 2, new id [unknown]#1652) -[2618074.375] {Default Queue} -> wl_data_device_manager#1652.create_data_source(new id wl_data_source#1653) -[2618074.381] {Default Queue} -> wl_data_source#1653.offer("text/plain") -[2618074.385] {Default Queue} -> wl_data_source#1653.offer("text/plain;charset=utf-8") -[2618074.389] {Default Queue} -> wl_data_source#1653.offer("TEXT") -[2618074.393] {Default Queue} -> wl_data_source#1653.offer("STRING") -[2618074.398] {Default Queue} -> wl_data_source#1653.offer("UTF8_STRING") -[2618074.402] {Default Queue} wl_registry#1638.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618074.406] {Default Queue} -> wl_registry#1638.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1654) -[2618074.414] {Default Queue} -> zwp_primary_selection_device_manager_v1#1654.create_source(new id zwp_primary_selection_source_v1#1655) -[2618074.421] {Default Queue} -> zwp_primary_selection_source_v1#1655.offer("text/plain") -[2618074.426] {Default Queue} -> zwp_primary_selection_source_v1#1655.offer("text/plain;charset=utf-8") -[2618074.430] {Default Queue} -> zwp_primary_selection_source_v1#1655.offer("TEXT") -[2618074.434] {Default Queue} -> zwp_primary_selection_source_v1#1655.offer("STRING") -[2618074.440] {Default Queue} -> zwp_primary_selection_source_v1#1655.offer("UTF8_STRING") -[2618074.445] {Default Queue} wl_registry#1638.global(19, "zwlr_data_control_manager_v1", 2) -[2618074.451] {Default Queue} wl_registry#1638.global(20, "ext_data_control_manager_v1", 1) -[2618074.456] {Default Queue} wl_registry#1638.global(21, "wp_presentation", 2) -[2618074.461] {Default Queue} wl_registry#1638.global(22, "wp_security_context_manager_v1", 1) -[2618074.465] {Default Queue} wl_registry#1638.global(23, "zwp_text_input_manager_v3", 1) -[2618074.470] {Default Queue} wl_registry#1638.global(24, "zwp_input_method_manager_v2", 1) -[2618074.475] {Default Queue} wl_registry#1638.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618074.479] {Default Queue} wl_registry#1638.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618074.483] {Default Queue} wl_registry#1638.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618074.488] {Default Queue} wl_registry#1638.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618074.492] {Default Queue} wl_registry#1638.global(29, "ext_workspace_manager_v1", 1) -[2618074.496] {Default Queue} wl_registry#1638.global(30, "zwlr_output_manager_v1", 4) -[2618074.501] {Default Queue} wl_registry#1638.global(31, "zwlr_screencopy_manager_v1", 3) -[2618074.505] {Default Queue} wl_registry#1638.global(32, "wp_viewporter", 1) -[2618074.509] {Default Queue} wl_registry#1638.global(33, "zxdg_exporter_v2", 1) -[2618074.513] {Default Queue} wl_registry#1638.global(34, "zxdg_importer_v2", 1) -[2618074.518] {Default Queue} wl_registry#1638.global(36, "xdg_activation_v1", 1) -[2618074.522] {Default Queue} wl_registry#1638.global(37, "mutter_x11_interop", 1) -[2618074.526] {Default Queue} wl_registry#1638.global(38, "wl_seat", 9) -[2618074.531] {Default Queue} -> wl_registry#1638.bind(38, "wl_seat", 1, new id [unknown]#1656) -[2618074.535] {Default Queue} wl_registry#1638.global(39, "wp_cursor_shape_manager_v1", 2) -[2618074.539] {Default Queue} wl_registry#1638.global(40, "wl_output", 4) -[2618074.544] {Default Queue} -> wl_registry#1638.bind(40, "wl_output", 1, new id [unknown]#1657) -[2618074.548] {Default Queue} wl_callback#1639.done(0) -[2618074.552] {Default Queue} discarded wl_surface#1607.enter(wl_output#18) -[2618074.557] {Default Queue} discarded wl_surface#1607.enter(wl_output#57) -[2618074.561] {Default Queue} discarded wl_surface#1607.enter(wl_output#89) -[2618074.565] {Default Queue} discarded wl_surface#1607.enter(wl_output#121) -[2618074.569] {Default Queue} discarded wl_surface#1607.enter(wl_output#153) -[2618074.573] {Default Queue} discarded wl_surface#1607.enter(wl_output#185) -[2618074.577] {Default Queue} discarded wl_surface#1607.enter(wl_output#217) -[2618074.581] {Default Queue} discarded wl_surface#1607.enter(wl_output#249) -[2618074.588] {Default Queue} discarded wl_surface#1607.enter(wl_output#281) -[2618074.593] {Default Queue} discarded wl_surface#1607.enter(wl_output#313) -[2618074.597] {Default Queue} discarded wl_surface#1607.enter(wl_output#345) -[2618074.601] {Default Queue} discarded wl_surface#1607.enter(wl_output#377) -[2618074.605] {Default Queue} discarded wl_surface#1607.enter(wl_output#409) -[2618074.609] {Default Queue} discarded wl_surface#1607.enter(wl_output#441) -[2618074.612] {Default Queue} discarded wl_surface#1607.enter(wl_output#473) -[2618074.616] {Default Queue} discarded wl_surface#1607.enter(wl_output#505) -[2618074.620] {Default Queue} discarded wl_surface#1607.enter(wl_output#537) -[2618074.624] {Default Queue} discarded wl_surface#1607.enter(wl_output#569) -[2618074.628] {Default Queue} discarded wl_surface#1607.enter(wl_output#601) -[2618074.632] {Default Queue} discarded wl_surface#1607.enter(wl_output#633) -[2618074.636] {Default Queue} discarded wl_surface#1607.enter(wl_output#665) -[2618074.641] {Default Queue} discarded wl_surface#1607.enter(wl_output#697) -[2618074.646] {Default Queue} discarded wl_surface#1607.enter(wl_output#729) -[2618074.652] {Default Queue} discarded wl_surface#1607.enter(wl_output#761) -[2618074.655] {Default Queue} discarded wl_surface#1607.enter(wl_output#793) -[2618074.659] {Default Queue} discarded wl_surface#1607.enter(wl_output#825) -[2618074.663] {Default Queue} discarded wl_surface#1607.enter(wl_output#857) -[2618074.667] {Default Queue} discarded wl_surface#1607.enter(wl_output#889) -[2618074.672] {Default Queue} discarded wl_surface#1607.enter(wl_output#921) -[2618074.677] {Default Queue} discarded wl_surface#1607.enter(wl_output#953) -[2618074.682] {Default Queue} discarded wl_surface#1607.enter(wl_output#985) -[2618074.686] {Default Queue} discarded wl_surface#1607.enter(wl_output#1017) -[2618074.690] {Default Queue} discarded wl_surface#1607.enter(wl_output#1049) -[2618074.694] {Default Queue} discarded wl_surface#1607.enter(wl_output#1081) -[2618074.698] {Default Queue} discarded wl_surface#1607.enter(wl_output#1113) -[2618074.702] {Default Queue} discarded wl_surface#1607.enter(wl_output#1145) -[2618074.706] {Default Queue} discarded wl_surface#1607.enter(wl_output#1177) -[2618074.712] {Default Queue} discarded wl_surface#1607.enter(wl_output#1209) -[2618074.717] {Default Queue} discarded wl_surface#1607.enter(wl_output#1241) -[2618074.721] {Default Queue} discarded wl_surface#1607.enter(wl_output#1273) -[2618074.725] {Default Queue} discarded wl_surface#1607.enter(wl_output#1305) -[2618074.729] {Default Queue} discarded wl_surface#1607.enter(wl_output#1337) -[2618074.734] {Default Queue} discarded wl_surface#1607.enter(wl_output#1369) -[2618074.739] {Default Queue} discarded wl_surface#1607.enter(wl_output#1401) -[2618074.744] {Default Queue} discarded wl_surface#1607.enter(wl_output#1433) -[2618074.749] {Default Queue} discarded wl_surface#1607.enter(wl_output#1465) -[2618074.753] {Default Queue} discarded wl_surface#1607.enter(wl_output#1497) -[2618074.757] {Default Queue} discarded wl_surface#1607.enter(wl_output#1529) -[2618074.761] {Default Queue} discarded wl_surface#1607.enter(wl_output#1561) -[2618074.765] {Default Queue} discarded wl_surface#1607.enter(wl_output#1593) -[2618074.768] {Default Queue} discarded wl_surface#1607.enter(wl_output#1625) -[2618074.773] {Default Queue} -> wl_compositor#1612.create_surface(new id wl_surface#1639) -[2618074.777] {Default Queue} -> wl_subcompositor#1645.get_subsurface(new id wl_subsurface#1658, wl_surface#1639, wl_surface#1607) -[2618074.785] {Default Queue} -> wl_subsurface#1658.set_desync() -[2618074.789] {Default Queue} -> wl_subsurface#1658.set_position(0, 0) -[2618074.793] {Default Queue} -> wl_subsurface#1658.place_above(wl_surface#1607) -[2618074.835] {Default Queue} -> wl_shm#1647.create_pool(new id wl_shm_pool#1659, fd 264, 16) -[2618074.842] {Default Queue} -> wl_shm#1647.create_pool(new id wl_shm_pool#1660, fd 265, 16) -[2618074.847] {Default Queue} -> wl_shm_pool#1659.create_buffer(new id wl_buffer#1661, 0, 2, 2, 8, 0) -[2618074.852] {Default Queue} -> wl_shm_pool#1660.create_buffer(new id wl_buffer#1662, 0, 2, 2, 8, 0) -[2618074.870] {Default Queue} -> wl_surface#1639.attach(wl_buffer#1661, 0, 0) -[2618074.876] {Default Queue} -> wl_surface#1639.commit() -[2618074.882] {Default Queue} -> wl_surface#1639.attach(wl_buffer#1661, 0, 0) -[2618074.887] {Default Queue} -> wl_surface#1639.commit() -[2618074.891] {Default Queue} -> wl_compositor#1644.create_region(new id wl_region#1663) -[2618074.896] {Default Queue} -> wl_compositor#1644.create_region(new id wl_region#1664) -[2618074.902] {Default Queue} -> wl_region#1663.subtract(0, 0, 2, 2) -[2618074.908] {Default Queue} -> wl_region#1663.add(0, 0, 0, 0) -[2618074.913] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) -[2618074.918] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) -[2618074.922] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) -[2618074.926] {Default Queue} -> wl_surface#1607.damage(0, 0, 2, 2) -[2618074.934] {Default Queue} -> wl_surface#1639.attach(wl_buffer#1661, 0, 0) -[2618074.938] {Default Queue} -> wl_surface#1639.commit() -[2618074.972] {Default Queue} -> wl_shm#1649.create_pool(new id wl_shm_pool#1665, fd 268, 640) -[2618074.979] {Default Queue} -> wl_shm#1649.create_pool(new id wl_shm_pool#1666, fd 269, 640) -[2618074.983] {Default Queue} -> wl_shm_pool#1665.create_buffer(new id wl_buffer#1667, 0, 10, 16, 40, 0) -[2618074.988] {Default Queue} -> wl_shm_pool#1666.create_buffer(new id wl_buffer#1668, 0, 10, 16, 40, 0) -[2618074.995] {Default Queue} -> wl_compositor#1644.create_surface(new id wl_surface#1669) -[2618075.000] {Default Queue} -> wl_surface#1669.attach(wl_buffer#1667, 0, 0) -[2618075.004] {Default Queue} -> wl_surface#1669.commit() -[2618075.009] {Default Queue} -> wl_surface#1669.attach(wl_buffer#1667, 0, 0) -[2618075.014] {Default Queue} -> wl_surface#1669.commit() -[2618075.021] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) -[2618075.028] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1670) -[2618075.033] {Default Queue} -> wl_display#1.sync(new id wl_callback#1671) -[2618079.033] {Display Queue} wl_display#1.delete_id(1671) -[2618079.046] {Default Queue} wl_keyboard#1640.keymap(1, fd 264, 68213) -[2618079.052] {Default Queue} wl_keyboard#1640.enter(566, wl_surface#19, array[0]) -[2618079.057] {Default Queue} wl_keyboard#1640.modifiers(566, 0, 0, 16, 0) -[2618079.062] {Default Queue} discarded wl_shm#1647.format(875709016) -[2618079.066] {Default Queue} discarded wl_shm#1647.format(1) -[2618079.070] {Default Queue} discarded wl_shm#1647.format(0) -[2618079.074] {Default Queue} discarded wl_shm#1647.format(875708993) -[2618079.078] {Default Queue} discarded wl_shm#1648.format(875709016) -[2618079.082] {Default Queue} discarded wl_shm#1648.format(1) -[2618079.086] {Default Queue} discarded wl_shm#1648.format(0) -[2618079.090] {Default Queue} discarded wl_shm#1648.format(875708993) -[2618079.094] {Default Queue} discarded wl_shm#1649.format(875709016) -[2618079.098] {Default Queue} discarded wl_shm#1649.format(1) -[2618079.102] {Default Queue} discarded wl_shm#1649.format(0) -[2618079.106] {Default Queue} discarded wl_shm#1649.format(875708993) -[2618079.110] {Default Queue} wl_seat#1656.capabilities(7) -[2618079.114] {Default Queue} -> wl_seat#1656.get_keyboard(new id wl_keyboard#1672) -[2618079.119] {Default Queue} -> wl_seat#1656.get_pointer(new id wl_pointer#1673) -[2618079.123] {Default Queue} -> wl_data_device_manager#1652.get_data_device(new id wl_data_device#1674, wl_seat#1656) -[2618079.128] {Default Queue} -> zwp_primary_selection_device_manager_v1#1654.get_device(new id zwp_primary_selection_device_v1#1675, wl_seat#1656) -[2618079.135] {Default Queue} wl_output#1657.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618079.141] {Default Queue} wl_output#1657.mode(3, 1280, 800, 60000) -[2618079.146] {Default Queue} discarded wl_surface#3.enter(wl_output#1657) -[2618079.150] {Default Queue} discarded wl_surface#999.enter(wl_output#1657) -[2618079.154] {Default Queue} discarded wl_surface#1191.enter(wl_output#1657) -[2618079.158] {Default Queue} discarded wl_surface#1159.enter(wl_output#1657) -[2618079.166] {Default Queue} discarded wl_surface#423.enter(wl_output#1657) -[2618079.173] {Default Queue} discarded wl_surface#1447.enter(wl_output#1657) -[2618079.177] {Default Queue} discarded wl_surface#1319.enter(wl_output#1657) -[2618079.181] {Default Queue} discarded wl_surface#1127.enter(wl_output#1657) -[2618079.185] {Default Queue} discarded wl_surface#1063.enter(wl_output#1657) -[2618079.189] {Default Queue} discarded wl_surface#455.enter(wl_output#1657) -[2618079.193] {Default Queue} discarded wl_surface#1575.enter(wl_output#1657) -[2618079.197] {Default Queue} discarded wl_surface#1415.enter(wl_output#1657) -[2618079.200] {Default Queue} discarded wl_surface#903.enter(wl_output#1657) -[2618079.204] {Default Queue} discarded wl_surface#775.enter(wl_output#1657) -[2618079.208] {Default Queue} discarded wl_surface#1543.enter(wl_output#1657) -[2618079.212] {Default Queue} discarded wl_surface#135.enter(wl_output#1657) -[2618079.216] {Default Queue} discarded wl_surface#1287.enter(wl_output#1657) -[2618079.222] {Default Queue} discarded wl_surface#1031.enter(wl_output#1657) -[2618079.226] {Default Queue} discarded wl_surface#615.enter(wl_output#1657) -[2618079.231] {Default Queue} discarded wl_surface#231.enter(wl_output#1657) -[2618079.234] {Default Queue} discarded wl_surface#359.enter(wl_output#1657) -[2618079.238] {Default Queue} discarded wl_surface#583.enter(wl_output#1657) -[2618079.242] {Default Queue} discarded wl_surface#743.enter(wl_output#1657) -[2618079.246] {Default Queue} discarded wl_surface#967.enter(wl_output#1657) -[2618079.250] {Default Queue} discarded wl_surface#103.enter(wl_output#1657) -[2618079.255] {Default Queue} discarded wl_surface#327.enter(wl_output#1657) -[2618079.259] {Default Queue} discarded wl_surface#43.enter(wl_output#1657) -[2618079.263] {Default Queue} discarded wl_surface#807.enter(wl_output#1657) -[2618079.266] {Default Queue} discarded wl_surface#19.enter(wl_output#1657) -[2618079.270] {Default Queue} discarded wl_surface#1511.enter(wl_output#1657) -[2618079.274] {Default Queue} discarded wl_surface#199.enter(wl_output#1657) -[2618079.278] {Default Queue} discarded wl_surface#391.enter(wl_output#1657) -[2618079.282] {Default Queue} discarded wl_surface#935.enter(wl_output#1657) -[2618079.286] {Default Queue} discarded wl_surface#1351.enter(wl_output#1657) -[2618079.290] {Default Queue} discarded wl_surface#711.enter(wl_output#1657) -[2618079.294] {Default Queue} discarded wl_surface#1223.enter(wl_output#1657) -[2618079.298] {Default Queue} discarded wl_surface#871.enter(wl_output#1657) -[2618079.302] {Default Queue} discarded wl_surface#263.enter(wl_output#1657) -[2618079.306] {Default Queue} discarded wl_surface#551.enter(wl_output#1657) -[2618079.310] {Default Queue} discarded wl_surface#1479.enter(wl_output#1657) -[2618079.314] {Default Queue} discarded wl_surface#647.enter(wl_output#1657) -[2618079.318] {Default Queue} discarded wl_surface#71.enter(wl_output#1657) -[2618079.322] {Default Queue} discarded wl_surface#839.enter(wl_output#1657) -[2618079.325] {Default Queue} discarded wl_surface#1607.enter(wl_output#1657) -[2618079.329] {Default Queue} discarded wl_surface#1095.enter(wl_output#1657) -[2618079.333] {Default Queue} discarded wl_surface#1383.enter(wl_output#1657) -[2618079.337] {Default Queue} discarded wl_surface#487.enter(wl_output#1657) -[2618079.341] {Default Queue} discarded wl_surface#519.enter(wl_output#1657) -[2618079.345] {Default Queue} discarded wl_surface#295.enter(wl_output#1657) -[2618079.349] {Default Queue} discarded wl_surface#167.enter(wl_output#1657) -[2618079.353] {Default Queue} discarded wl_surface#1255.enter(wl_output#1657) -[2618079.357] {Default Queue} discarded wl_surface#679.enter(wl_output#1657) -[2618079.361] {Default Queue} wl_registry#1670.global(1, "wl_compositor", 6) -[2618079.366] {Default Queue} -> wl_registry#1670.bind(1, "wl_compositor", 1, new id [unknown]#1676) -[2618079.371] {Default Queue} wl_registry#1670.global(2, "wl_subcompositor", 1) -[2618079.376] {Default Queue} -> wl_registry#1670.bind(2, "wl_subcompositor", 1, new id [unknown]#1677) -[2618079.383] {Default Queue} wl_registry#1670.global(3, "xdg_wm_base", 6) -[2618079.390] {Default Queue} -> wl_registry#1670.bind(3, "xdg_wm_base", 1, new id [unknown]#1678) -[2618079.394] {Default Queue} wl_registry#1670.global(6, "zwlr_layer_shell_v1", 5) -[2618079.399] {Default Queue} wl_registry#1670.global(7, "ext_session_lock_manager_v1", 1) -[2618079.404] {Default Queue} wl_registry#1670.global(8, "wl_shm", 2) -[2618079.408] {Default Queue} -> wl_registry#1670.bind(8, "wl_shm", 1, new id [unknown]#1679) -[2618079.415] {Default Queue} -> wl_registry#1670.bind(8, "wl_shm", 1, new id [unknown]#1680) -[2618079.420] {Default Queue} -> wl_registry#1670.bind(8, "wl_shm", 1, new id [unknown]#1681) -[2618079.424] {Default Queue} wl_registry#1670.global(9, "zxdg_output_manager_v1", 3) -[2618079.428] {Default Queue} wl_registry#1670.global(10, "wp_fractional_scale_manager_v1", 1) -[2618079.433] {Default Queue} wl_registry#1670.global(11, "zwp_tablet_manager_v2", 1) -[2618079.438] {Default Queue} wl_registry#1670.global(12, "zwp_pointer_gestures_v1", 3) -[2618079.442] {Default Queue} wl_registry#1670.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618079.447] {Default Queue} -> wl_registry#1670.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1682) -[2618079.451] {Default Queue} wl_registry#1670.global(14, "zwp_pointer_constraints_v1", 1) -[2618079.456] {Default Queue} -> wl_registry#1670.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1683) -[2618079.460] {Default Queue} wl_registry#1670.global(15, "ext_idle_notifier_v1", 2) -[2618079.465] {Default Queue} wl_registry#1670.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618079.469] {Default Queue} wl_registry#1670.global(17, "wl_data_device_manager", 3) -[2618079.474] {Default Queue} -> wl_registry#1670.bind(17, "wl_data_device_manager", 2, new id [unknown]#1684) -[2618079.479] {Default Queue} -> wl_data_device_manager#1684.create_data_source(new id wl_data_source#1685) -[2618079.483] {Default Queue} -> wl_data_source#1685.offer("text/plain") -[2618079.487] {Default Queue} -> wl_data_source#1685.offer("text/plain;charset=utf-8") -[2618079.491] {Default Queue} -> wl_data_source#1685.offer("TEXT") -[2618079.495] {Default Queue} -> wl_data_source#1685.offer("STRING") -[2618079.499] {Default Queue} -> wl_data_source#1685.offer("UTF8_STRING") -[2618079.503] {Default Queue} wl_registry#1670.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618079.508] {Default Queue} -> wl_registry#1670.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1686) -[2618079.516] {Default Queue} -> zwp_primary_selection_device_manager_v1#1686.create_source(new id zwp_primary_selection_source_v1#1687) -[2618079.523] {Default Queue} -> zwp_primary_selection_source_v1#1687.offer("text/plain") -[2618079.528] {Default Queue} -> zwp_primary_selection_source_v1#1687.offer("text/plain;charset=utf-8") -[2618079.532] {Default Queue} -> zwp_primary_selection_source_v1#1687.offer("TEXT") -[2618079.536] {Default Queue} -> zwp_primary_selection_source_v1#1687.offer("STRING") -[2618079.540] {Default Queue} -> zwp_primary_selection_source_v1#1687.offer("UTF8_STRING") -[2618079.544] {Default Queue} wl_registry#1670.global(19, "zwlr_data_control_manager_v1", 2) -[2618079.548] {Default Queue} wl_registry#1670.global(20, "ext_data_control_manager_v1", 1) -[2618079.553] {Default Queue} wl_registry#1670.global(21, "wp_presentation", 2) -[2618079.557] {Default Queue} wl_registry#1670.global(22, "wp_security_context_manager_v1", 1) -[2618079.561] {Default Queue} wl_registry#1670.global(23, "zwp_text_input_manager_v3", 1) -[2618079.566] {Default Queue} wl_registry#1670.global(24, "zwp_input_method_manager_v2", 1) -[2618079.570] {Default Queue} wl_registry#1670.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618079.574] {Default Queue} wl_registry#1670.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618079.579] {Default Queue} wl_registry#1670.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618079.583] {Default Queue} wl_registry#1670.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618079.590] {Default Queue} wl_registry#1670.global(29, "ext_workspace_manager_v1", 1) -[2618079.596] {Default Queue} wl_registry#1670.global(30, "zwlr_output_manager_v1", 4) -[2618079.601] {Default Queue} wl_registry#1670.global(31, "zwlr_screencopy_manager_v1", 3) -[2618079.605] {Default Queue} wl_registry#1670.global(32, "wp_viewporter", 1) -[2618079.609] {Default Queue} wl_registry#1670.global(33, "zxdg_exporter_v2", 1) -[2618079.614] {Default Queue} wl_registry#1670.global(34, "zxdg_importer_v2", 1) -[2618079.618] {Default Queue} wl_registry#1670.global(36, "xdg_activation_v1", 1) -[2618079.623] {Default Queue} wl_registry#1670.global(37, "mutter_x11_interop", 1) -[2618079.627] {Default Queue} wl_registry#1670.global(38, "wl_seat", 9) -[2618079.632] {Default Queue} -> wl_registry#1670.bind(38, "wl_seat", 1, new id [unknown]#1688) -[2618079.636] {Default Queue} wl_registry#1670.global(39, "wp_cursor_shape_manager_v1", 2) -[2618079.641] {Default Queue} wl_registry#1670.global(40, "wl_output", 4) -[2618079.645] {Default Queue} -> wl_registry#1670.bind(40, "wl_output", 1, new id [unknown]#1689) -[2618079.649] {Default Queue} wl_callback#1671.done(0) -[2618079.654] {Default Queue} discarded wl_surface#1639.enter(wl_output#18) -[2618079.658] {Default Queue} discarded wl_surface#1639.enter(wl_output#57) -[2618079.662] {Default Queue} discarded wl_surface#1639.enter(wl_output#89) -[2618079.666] {Default Queue} discarded wl_surface#1639.enter(wl_output#121) -[2618079.670] {Default Queue} discarded wl_surface#1639.enter(wl_output#153) -[2618079.674] {Default Queue} discarded wl_surface#1639.enter(wl_output#185) -[2618079.678] {Default Queue} discarded wl_surface#1639.enter(wl_output#217) -[2618079.682] {Default Queue} discarded wl_surface#1639.enter(wl_output#249) -[2618079.687] {Default Queue} discarded wl_surface#1639.enter(wl_output#281) -[2618079.691] {Default Queue} discarded wl_surface#1639.enter(wl_output#313) -[2618079.695] {Default Queue} discarded wl_surface#1639.enter(wl_output#345) -[2618079.699] {Default Queue} discarded wl_surface#1639.enter(wl_output#377) -[2618079.703] {Default Queue} discarded wl_surface#1639.enter(wl_output#409) -[2618079.707] {Default Queue} discarded wl_surface#1639.enter(wl_output#441) -[2618079.711] {Default Queue} discarded wl_surface#1639.enter(wl_output#473) -[2618079.715] {Default Queue} discarded wl_surface#1639.enter(wl_output#505) -[2618079.719] {Default Queue} discarded wl_surface#1639.enter(wl_output#537) -[2618079.722] {Default Queue} discarded wl_surface#1639.enter(wl_output#569) -[2618079.726] {Default Queue} discarded wl_surface#1639.enter(wl_output#601) -[2618079.730] {Default Queue} discarded wl_surface#1639.enter(wl_output#633) -[2618079.734] {Default Queue} discarded wl_surface#1639.enter(wl_output#665) -[2618079.738] {Default Queue} discarded wl_surface#1639.enter(wl_output#697) -[2618079.742] {Default Queue} discarded wl_surface#1639.enter(wl_output#729) -[2618079.746] {Default Queue} discarded wl_surface#1639.enter(wl_output#761) -[2618079.750] {Default Queue} discarded wl_surface#1639.enter(wl_output#793) -[2618079.754] {Default Queue} discarded wl_surface#1639.enter(wl_output#825) -[2618079.758] {Default Queue} discarded wl_surface#1639.enter(wl_output#857) -[2618079.762] {Default Queue} discarded wl_surface#1639.enter(wl_output#889) -[2618079.765] {Default Queue} discarded wl_surface#1639.enter(wl_output#921) -[2618079.769] {Default Queue} discarded wl_surface#1639.enter(wl_output#953) -[2618079.774] {Default Queue} discarded wl_surface#1639.enter(wl_output#985) -[2618079.778] {Default Queue} discarded wl_surface#1639.enter(wl_output#1017) -[2618079.782] {Default Queue} discarded wl_surface#1639.enter(wl_output#1049) -[2618079.786] {Default Queue} discarded wl_surface#1639.enter(wl_output#1081) -[2618079.790] {Default Queue} discarded wl_surface#1639.enter(wl_output#1113) -[2618079.794] {Default Queue} discarded wl_surface#1639.enter(wl_output#1145) -[2618079.798] {Default Queue} discarded wl_surface#1639.enter(wl_output#1177) -[2618079.802] {Default Queue} discarded wl_surface#1639.enter(wl_output#1209) -[2618079.809] {Default Queue} discarded wl_surface#1639.enter(wl_output#1241) -[2618079.815] {Default Queue} discarded wl_surface#1639.enter(wl_output#1273) -[2618079.819] {Default Queue} discarded wl_surface#1639.enter(wl_output#1305) -[2618079.823] {Default Queue} discarded wl_surface#1639.enter(wl_output#1337) -[2618079.827] {Default Queue} discarded wl_surface#1639.enter(wl_output#1369) -[2618079.831] {Default Queue} discarded wl_surface#1639.enter(wl_output#1401) -[2618079.834] {Default Queue} discarded wl_surface#1639.enter(wl_output#1433) -[2618079.838] {Default Queue} discarded wl_surface#1639.enter(wl_output#1465) -[2618079.842] {Default Queue} discarded wl_surface#1639.enter(wl_output#1497) -[2618079.846] {Default Queue} discarded wl_surface#1639.enter(wl_output#1529) -[2618079.850] {Default Queue} discarded wl_surface#1639.enter(wl_output#1561) -[2618079.855] {Default Queue} discarded wl_surface#1639.enter(wl_output#1593) -[2618079.859] {Default Queue} discarded wl_surface#1639.enter(wl_output#1625) -[2618079.864] {Default Queue} discarded wl_surface#1639.enter(wl_output#1657) -[2618079.868] {Default Queue} -> wl_compositor#1644.create_surface(new id wl_surface#1671) -[2618079.877] {Default Queue} -> wl_subcompositor#1677.get_subsurface(new id wl_subsurface#1690, wl_surface#1671, wl_surface#1639) -[2618079.885] {Default Queue} -> wl_subsurface#1690.set_desync() -[2618079.890] {Default Queue} -> wl_subsurface#1690.set_position(0, 0) -[2618079.895] {Default Queue} -> wl_subsurface#1690.place_above(wl_surface#1639) -[2618079.940] {Default Queue} -> wl_shm#1679.create_pool(new id wl_shm_pool#1691, fd 269, 16) -[2618079.947] {Default Queue} -> wl_shm#1679.create_pool(new id wl_shm_pool#1692, fd 270, 16) -[2618079.951] {Default Queue} -> wl_shm_pool#1691.create_buffer(new id wl_buffer#1693, 0, 2, 2, 8, 0) -[2618079.956] {Default Queue} -> wl_shm_pool#1692.create_buffer(new id wl_buffer#1694, 0, 2, 2, 8, 0) -[2618079.964] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) -[2618079.969] {Default Queue} -> wl_surface#1671.commit() -[2618079.974] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) -[2618079.979] {Default Queue} -> wl_surface#1671.commit() -[2618079.983] {Default Queue} -> wl_compositor#1676.create_region(new id wl_region#1695) -[2618079.987] {Default Queue} -> wl_compositor#1676.create_region(new id wl_region#1696) -[2618079.991] {Default Queue} -> wl_region#1695.subtract(0, 0, 2, 2) -[2618079.996] {Default Queue} -> wl_region#1695.add(0, 0, 0, 0) -[2618080.001] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2618080.005] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2618080.009] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618080.014] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) -[2618080.022] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) -[2618080.026] {Default Queue} -> wl_surface#1671.commit() -[2618080.063] {Default Queue} -> wl_shm#1681.create_pool(new id wl_shm_pool#1697, fd 273, 640) -[2618080.071] {Default Queue} -> wl_shm#1681.create_pool(new id wl_shm_pool#1698, fd 274, 640) -[2618080.076] {Default Queue} -> wl_shm_pool#1697.create_buffer(new id wl_buffer#1699, 0, 10, 16, 40, 0) -[2618080.081] {Default Queue} -> wl_shm_pool#1698.create_buffer(new id wl_buffer#1700, 0, 10, 16, 40, 0) -[2618080.088] {Default Queue} -> wl_compositor#1676.create_surface(new id wl_surface#1701) -[2618080.092] {Default Queue} -> wl_surface#1701.attach(wl_buffer#1699, 0, 0) -[2618080.097] {Default Queue} -> wl_surface#1701.commit() -[2618080.102] {Default Queue} -> wl_surface#1701.attach(wl_buffer#1699, 0, 0) -[2618080.106] {Default Queue} -> wl_surface#1701.commit() -[2618080.112] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) -[2618080.118] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618080.122] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618080.129] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1702) -[2618080.135] {Default Queue} -> wl_display#1.sync(new id wl_callback#1703) -[2618084.633] {Display Queue} wl_display#1.delete_id(1703) -[2618084.649] {Default Queue} wl_keyboard#1672.keymap(1, fd 269, 68213) -[2618084.656] {Default Queue} wl_keyboard#1672.enter(566, wl_surface#19, array[0]) -[2618084.663] {Default Queue} wl_keyboard#1672.modifiers(566, 0, 0, 16, 0) -[2618084.669] {Default Queue} discarded wl_shm#1679.format(875709016) -[2618084.674] {Default Queue} discarded wl_shm#1679.format(1) -[2618084.679] {Default Queue} discarded wl_shm#1679.format(0) -[2618084.684] {Default Queue} discarded wl_shm#1679.format(875708993) -[2618084.689] {Default Queue} discarded wl_shm#1680.format(875709016) -[2618084.694] {Default Queue} discarded wl_shm#1680.format(1) -[2618084.699] {Default Queue} discarded wl_shm#1680.format(0) -[2618084.704] {Default Queue} discarded wl_shm#1680.format(875708993) -[2618084.708] {Default Queue} discarded wl_shm#1681.format(875709016) -[2618084.713] {Default Queue} discarded wl_shm#1681.format(1) -[2618084.718] {Default Queue} discarded wl_shm#1681.format(0) -[2618084.723] {Default Queue} discarded wl_shm#1681.format(875708993) -[2618084.728] {Default Queue} wl_seat#1688.capabilities(7) -[2618084.733] {Default Queue} -> wl_seat#1688.get_keyboard(new id wl_keyboard#1704) -[2618084.739] {Default Queue} -> wl_seat#1688.get_pointer(new id wl_pointer#1705) -[2618084.744] {Default Queue} -> wl_data_device_manager#1684.get_data_device(new id wl_data_device#1706, wl_seat#1688) -[2618084.750] {Default Queue} -> zwp_primary_selection_device_manager_v1#1686.get_device(new id zwp_primary_selection_device_v1#1707, wl_seat#1688) -[2618084.760] {Default Queue} wl_output#1689.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618084.766] {Default Queue} wl_output#1689.mode(3, 1280, 800, 60000) -[2618084.776] {Default Queue} discarded wl_surface#3.enter(wl_output#1689) -[2618084.790] {Default Queue} discarded wl_surface#999.enter(wl_output#1689) -[2618084.795] {Default Queue} discarded wl_surface#1191.enter(wl_output#1689) -[2618084.800] {Default Queue} discarded wl_surface#1159.enter(wl_output#1689) -[2618084.805] {Default Queue} discarded wl_surface#423.enter(wl_output#1689) -[2618084.810] {Default Queue} discarded wl_surface#1447.enter(wl_output#1689) -[2618084.814] {Default Queue} discarded wl_surface#1639.enter(wl_output#1689) -[2618084.819] {Default Queue} discarded wl_surface#1319.enter(wl_output#1689) -[2618084.824] {Default Queue} discarded wl_surface#1127.enter(wl_output#1689) -[2618084.829] {Default Queue} discarded wl_surface#1063.enter(wl_output#1689) -[2618084.834] {Default Queue} discarded wl_surface#455.enter(wl_output#1689) -[2618084.839] {Default Queue} discarded wl_surface#1575.enter(wl_output#1689) -[2618084.844] {Default Queue} discarded wl_surface#1415.enter(wl_output#1689) -[2618084.849] {Default Queue} discarded wl_surface#903.enter(wl_output#1689) -[2618084.854] {Default Queue} discarded wl_surface#775.enter(wl_output#1689) -[2618084.859] {Default Queue} discarded wl_surface#1543.enter(wl_output#1689) -[2618084.868] {Default Queue} discarded wl_surface#135.enter(wl_output#1689) -[2618084.872] {Default Queue} discarded wl_surface#1287.enter(wl_output#1689) -[2618084.876] {Default Queue} discarded wl_surface#1031.enter(wl_output#1689) -[2618084.879] {Default Queue} discarded wl_surface#615.enter(wl_output#1689) -[2618084.883] {Default Queue} discarded wl_surface#231.enter(wl_output#1689) -[2618084.887] {Default Queue} discarded wl_surface#359.enter(wl_output#1689) -[2618084.891] {Default Queue} discarded wl_surface#583.enter(wl_output#1689) -[2618084.895] {Default Queue} discarded wl_surface#743.enter(wl_output#1689) -[2618084.899] {Default Queue} discarded wl_surface#967.enter(wl_output#1689) -[2618084.903] {Default Queue} discarded wl_surface#103.enter(wl_output#1689) -[2618084.907] {Default Queue} discarded wl_surface#327.enter(wl_output#1689) -[2618084.911] {Default Queue} discarded wl_surface#43.enter(wl_output#1689) -[2618084.915] {Default Queue} discarded wl_surface#807.enter(wl_output#1689) -[2618084.919] {Default Queue} discarded wl_surface#19.enter(wl_output#1689) -[2618084.927] {Default Queue} discarded wl_surface#1511.enter(wl_output#1689) -[2618084.932] {Default Queue} discarded wl_surface#199.enter(wl_output#1689) -[2618084.937] {Default Queue} discarded wl_surface#391.enter(wl_output#1689) -[2618084.941] {Default Queue} discarded wl_surface#935.enter(wl_output#1689) -[2618084.945] {Default Queue} discarded wl_surface#1351.enter(wl_output#1689) -[2618084.949] {Default Queue} discarded wl_surface#711.enter(wl_output#1689) -[2618084.953] {Default Queue} discarded wl_surface#1223.enter(wl_output#1689) -[2618084.957] {Default Queue} discarded wl_surface#871.enter(wl_output#1689) -[2618084.961] {Default Queue} discarded wl_surface#263.enter(wl_output#1689) -[2618084.965] {Default Queue} discarded wl_surface#551.enter(wl_output#1689) -[2618084.969] {Default Queue} discarded wl_surface#1479.enter(wl_output#1689) -[2618084.972] {Default Queue} discarded wl_surface#647.enter(wl_output#1689) -[2618084.976] {Default Queue} discarded wl_surface#71.enter(wl_output#1689) -[2618084.980] {Default Queue} discarded wl_surface#839.enter(wl_output#1689) -[2618084.984] {Default Queue} discarded wl_surface#1607.enter(wl_output#1689) -[2618084.988] {Default Queue} discarded wl_surface#1095.enter(wl_output#1689) -[2618084.992] {Default Queue} discarded wl_surface#1383.enter(wl_output#1689) -[2618084.996] {Default Queue} discarded wl_surface#487.enter(wl_output#1689) -[2618085.000] {Default Queue} discarded wl_surface#519.enter(wl_output#1689) -[2618085.004] {Default Queue} discarded wl_surface#295.enter(wl_output#1689) -[2618085.008] {Default Queue} discarded wl_surface#167.enter(wl_output#1689) -[2618085.012] {Default Queue} discarded wl_surface#1255.enter(wl_output#1689) -[2618085.016] {Default Queue} discarded wl_surface#679.enter(wl_output#1689) -[2618085.020] {Default Queue} wl_registry#1702.global(1, "wl_compositor", 6) -[2618085.026] {Default Queue} -> wl_registry#1702.bind(1, "wl_compositor", 1, new id [unknown]#1708) -[2618085.032] {Default Queue} wl_registry#1702.global(2, "wl_subcompositor", 1) -[2618085.037] {Default Queue} -> wl_registry#1702.bind(2, "wl_subcompositor", 1, new id [unknown]#1709) -[2618085.042] {Default Queue} wl_registry#1702.global(3, "xdg_wm_base", 6) -[2618085.046] {Default Queue} -> wl_registry#1702.bind(3, "xdg_wm_base", 1, new id [unknown]#1710) -[2618085.051] {Default Queue} wl_registry#1702.global(6, "zwlr_layer_shell_v1", 5) -[2618085.055] {Default Queue} wl_registry#1702.global(7, "ext_session_lock_manager_v1", 1) -[2618085.060] {Default Queue} wl_registry#1702.global(8, "wl_shm", 2) -[2618085.064] {Default Queue} -> wl_registry#1702.bind(8, "wl_shm", 1, new id [unknown]#1711) -[2618085.069] {Default Queue} -> wl_registry#1702.bind(8, "wl_shm", 1, new id [unknown]#1712) -[2618085.073] {Default Queue} -> wl_registry#1702.bind(8, "wl_shm", 1, new id [unknown]#1713) -[2618085.077] {Default Queue} wl_registry#1702.global(9, "zxdg_output_manager_v1", 3) -[2618085.082] {Default Queue} wl_registry#1702.global(10, "wp_fractional_scale_manager_v1", 1) -[2618085.086] {Default Queue} wl_registry#1702.global(11, "zwp_tablet_manager_v2", 1) -[2618085.091] {Default Queue} wl_registry#1702.global(12, "zwp_pointer_gestures_v1", 3) -[2618085.095] {Default Queue} wl_registry#1702.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618085.099] {Default Queue} -> wl_registry#1702.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1714) -[2618085.104] {Default Queue} wl_registry#1702.global(14, "zwp_pointer_constraints_v1", 1) -[2618085.109] {Default Queue} -> wl_registry#1702.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1715) -[2618085.113] {Default Queue} wl_registry#1702.global(15, "ext_idle_notifier_v1", 2) -[2618085.117] {Default Queue} wl_registry#1702.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618085.122] {Default Queue} wl_registry#1702.global(17, "wl_data_device_manager", 3) -[2618085.126] {Default Queue} -> wl_registry#1702.bind(17, "wl_data_device_manager", 2, new id [unknown]#1716) -[2618085.131] {Default Queue} -> wl_data_device_manager#1716.create_data_source(new id wl_data_source#1717) -[2618085.139] {Default Queue} -> wl_data_source#1717.offer("text/plain") -[2618085.145] {Default Queue} -> wl_data_source#1717.offer("text/plain;charset=utf-8") -[2618085.149] {Default Queue} -> wl_data_source#1717.offer("TEXT") -[2618085.153] {Default Queue} -> wl_data_source#1717.offer("STRING") -[2618085.157] {Default Queue} -> wl_data_source#1717.offer("UTF8_STRING") -[2618085.163] {Default Queue} wl_registry#1702.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618085.167] {Default Queue} -> wl_registry#1702.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1718) -[2618085.175] {Default Queue} -> zwp_primary_selection_device_manager_v1#1718.create_source(new id zwp_primary_selection_source_v1#1719) -[2618085.182] {Default Queue} -> zwp_primary_selection_source_v1#1719.offer("text/plain") -[2618085.186] {Default Queue} -> zwp_primary_selection_source_v1#1719.offer("text/plain;charset=utf-8") -[2618085.190] {Default Queue} -> zwp_primary_selection_source_v1#1719.offer("TEXT") -[2618085.194] {Default Queue} -> zwp_primary_selection_source_v1#1719.offer("STRING") -[2618085.198] {Default Queue} -> zwp_primary_selection_source_v1#1719.offer("UTF8_STRING") -[2618085.202] {Default Queue} wl_registry#1702.global(19, "zwlr_data_control_manager_v1", 2) -[2618085.207] {Default Queue} wl_registry#1702.global(20, "ext_data_control_manager_v1", 1) -[2618085.211] {Default Queue} wl_registry#1702.global(21, "wp_presentation", 2) -[2618085.215] {Default Queue} wl_registry#1702.global(22, "wp_security_context_manager_v1", 1) -[2618085.221] {Default Queue} wl_registry#1702.global(23, "zwp_text_input_manager_v3", 1) -[2618085.225] {Default Queue} wl_registry#1702.global(24, "zwp_input_method_manager_v2", 1) -[2618085.229] {Default Queue} wl_registry#1702.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618085.234] {Default Queue} wl_registry#1702.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618085.238] {Default Queue} wl_registry#1702.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618085.242] {Default Queue} wl_registry#1702.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618085.247] {Default Queue} wl_registry#1702.global(29, "ext_workspace_manager_v1", 1) -[2618085.251] {Default Queue} wl_registry#1702.global(30, "zwlr_output_manager_v1", 4) -[2618085.255] {Default Queue} wl_registry#1702.global(31, "zwlr_screencopy_manager_v1", 3) -[2618085.260] {Default Queue} wl_registry#1702.global(32, "wp_viewporter", 1) -[2618085.264] {Default Queue} wl_registry#1702.global(33, "zxdg_exporter_v2", 1) -[2618085.268] {Default Queue} wl_registry#1702.global(34, "zxdg_importer_v2", 1) -[2618085.273] {Default Queue} wl_registry#1702.global(36, "xdg_activation_v1", 1) -[2618085.277] {Default Queue} wl_registry#1702.global(37, "mutter_x11_interop", 1) -[2618085.281] {Default Queue} wl_registry#1702.global(38, "wl_seat", 9) -[2618085.286] {Default Queue} -> wl_registry#1702.bind(38, "wl_seat", 1, new id [unknown]#1720) -[2618085.290] {Default Queue} wl_registry#1702.global(39, "wp_cursor_shape_manager_v1", 2) -[2618085.295] {Default Queue} wl_registry#1702.global(40, "wl_output", 4) -[2618085.299] {Default Queue} -> wl_registry#1702.bind(40, "wl_output", 1, new id [unknown]#1721) -[2618085.304] {Default Queue} wl_callback#1703.done(0) -[2618085.308] {Default Queue} discarded wl_surface#1671.enter(wl_output#18) -[2618085.312] {Default Queue} discarded wl_surface#1671.enter(wl_output#57) -[2618085.316] {Default Queue} discarded wl_surface#1671.enter(wl_output#89) -[2618085.320] {Default Queue} discarded wl_surface#1671.enter(wl_output#121) -[2618085.324] {Default Queue} discarded wl_surface#1671.enter(wl_output#153) -[2618085.328] {Default Queue} discarded wl_surface#1671.enter(wl_output#185) -[2618085.332] {Default Queue} discarded wl_surface#1671.enter(wl_output#217) -[2618085.336] {Default Queue} discarded wl_surface#1671.enter(wl_output#249) -[2618085.340] {Default Queue} discarded wl_surface#1671.enter(wl_output#281) -[2618085.344] {Default Queue} discarded wl_surface#1671.enter(wl_output#313) -[2618085.351] {Default Queue} discarded wl_surface#1671.enter(wl_output#345) -[2618085.356] {Default Queue} discarded wl_surface#1671.enter(wl_output#377) -[2618085.360] {Default Queue} discarded wl_surface#1671.enter(wl_output#409) -[2618085.364] {Default Queue} discarded wl_surface#1671.enter(wl_output#441) -[2618085.368] {Default Queue} discarded wl_surface#1671.enter(wl_output#473) -[2618085.373] {Default Queue} discarded wl_surface#1671.enter(wl_output#505) -[2618085.377] {Default Queue} discarded wl_surface#1671.enter(wl_output#537) -[2618085.381] {Default Queue} discarded wl_surface#1671.enter(wl_output#569) -[2618085.384] {Default Queue} discarded wl_surface#1671.enter(wl_output#601) -[2618085.388] {Default Queue} discarded wl_surface#1671.enter(wl_output#633) -[2618085.393] {Default Queue} discarded wl_surface#1671.enter(wl_output#665) -[2618085.397] {Default Queue} discarded wl_surface#1671.enter(wl_output#697) -[2618085.400] {Default Queue} discarded wl_surface#1671.enter(wl_output#729) -[2618085.404] {Default Queue} discarded wl_surface#1671.enter(wl_output#761) -[2618085.408] {Default Queue} discarded wl_surface#1671.enter(wl_output#793) -[2618085.412] {Default Queue} discarded wl_surface#1671.enter(wl_output#825) -[2618085.416] {Default Queue} discarded wl_surface#1671.enter(wl_output#857) -[2618085.420] {Default Queue} discarded wl_surface#1671.enter(wl_output#889) -[2618085.424] {Default Queue} discarded wl_surface#1671.enter(wl_output#921) -[2618085.428] {Default Queue} discarded wl_surface#1671.enter(wl_output#953) -[2618085.432] {Default Queue} discarded wl_surface#1671.enter(wl_output#985) -[2618085.436] {Default Queue} discarded wl_surface#1671.enter(wl_output#1017) -[2618085.440] {Default Queue} discarded wl_surface#1671.enter(wl_output#1049) -[2618085.444] {Default Queue} discarded wl_surface#1671.enter(wl_output#1081) -[2618085.448] {Default Queue} discarded wl_surface#1671.enter(wl_output#1113) -[2618085.452] {Default Queue} discarded wl_surface#1671.enter(wl_output#1145) -[2618085.455] {Default Queue} discarded wl_surface#1671.enter(wl_output#1177) -[2618085.459] {Default Queue} discarded wl_surface#1671.enter(wl_output#1209) -[2618085.463] {Default Queue} discarded wl_surface#1671.enter(wl_output#1241) -[2618085.467] {Default Queue} discarded wl_surface#1671.enter(wl_output#1273) -[2618085.471] {Default Queue} discarded wl_surface#1671.enter(wl_output#1305) -[2618085.475] {Default Queue} discarded wl_surface#1671.enter(wl_output#1337) -[2618085.479] {Default Queue} discarded wl_surface#1671.enter(wl_output#1369) -[2618085.483] {Default Queue} discarded wl_surface#1671.enter(wl_output#1401) -[2618085.487] {Default Queue} discarded wl_surface#1671.enter(wl_output#1433) -[2618085.491] {Default Queue} discarded wl_surface#1671.enter(wl_output#1465) -[2618085.496] {Default Queue} discarded wl_surface#1671.enter(wl_output#1497) -[2618085.499] {Default Queue} discarded wl_surface#1671.enter(wl_output#1529) -[2618085.503] {Default Queue} discarded wl_surface#1671.enter(wl_output#1561) -[2618085.507] {Default Queue} discarded wl_surface#1671.enter(wl_output#1593) -[2618085.511] {Default Queue} discarded wl_surface#1671.enter(wl_output#1625) -[2618085.515] {Default Queue} discarded wl_surface#1671.enter(wl_output#1657) -[2618085.519] {Default Queue} discarded wl_surface#1671.enter(wl_output#1689) -[2618085.523] {Default Queue} -> wl_compositor#1644.create_surface(new id wl_surface#1703) -[2618085.528] {Default Queue} -> wl_subcompositor#1709.get_subsurface(new id wl_subsurface#1722, wl_surface#1703, wl_surface#1639) -[2618085.536] {Default Queue} -> wl_subsurface#1722.set_desync() -[2618085.541] {Default Queue} -> wl_subsurface#1722.set_position(0, 0) -[2618085.546] {Default Queue} -> wl_subsurface#1722.place_above(wl_surface#1639) -[2618085.591] {Default Queue} -> wl_shm#1711.create_pool(new id wl_shm_pool#1723, fd 274, 16) -[2618085.598] {Default Queue} -> wl_shm#1711.create_pool(new id wl_shm_pool#1724, fd 275, 16) -[2618085.602] {Default Queue} -> wl_shm_pool#1723.create_buffer(new id wl_buffer#1725, 0, 2, 2, 8, 0) -[2618085.607] {Default Queue} -> wl_shm_pool#1724.create_buffer(new id wl_buffer#1726, 0, 2, 2, 8, 0) -[2618085.619] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) -[2618085.625] {Default Queue} -> wl_surface#1703.commit() -[2618085.630] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) -[2618085.635] {Default Queue} -> wl_surface#1703.commit() -[2618085.639] {Default Queue} -> wl_compositor#1708.create_region(new id wl_region#1727) -[2618085.643] {Default Queue} -> wl_compositor#1708.create_region(new id wl_region#1728) -[2618085.648] {Default Queue} -> wl_region#1727.subtract(0, 0, 2, 2) -[2618085.653] {Default Queue} -> wl_region#1727.add(0, 0, 0, 0) -[2618085.657] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) -[2618085.662] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) -[2618085.666] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) -[2618085.671] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) -[2618085.679] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) -[2618085.684] {Default Queue} -> wl_surface#1703.commit() -[2618085.723] {Default Queue} -> wl_shm#1713.create_pool(new id wl_shm_pool#1729, fd 278, 640) -[2618085.729] {Default Queue} -> wl_shm#1713.create_pool(new id wl_shm_pool#1730, fd 279, 640) -[2618085.734] {Default Queue} -> wl_shm_pool#1729.create_buffer(new id wl_buffer#1731, 0, 10, 16, 40, 0) -[2618085.738] {Default Queue} -> wl_shm_pool#1730.create_buffer(new id wl_buffer#1732, 0, 10, 16, 40, 0) -[2618085.745] {Default Queue} -> wl_compositor#1708.create_surface(new id wl_surface#1733) -[2618085.750] {Default Queue} -> wl_surface#1733.attach(wl_buffer#1731, 0, 0) -[2618085.754] {Default Queue} -> wl_surface#1733.commit() -[2618085.759] {Default Queue} -> wl_surface#1733.attach(wl_buffer#1731, 0, 0) -[2618085.764] {Default Queue} -> wl_surface#1733.commit() -[2618085.769] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) -[2618085.776] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1734) -[2618085.781] {Default Queue} -> wl_display#1.sync(new id wl_callback#1735) -[2618089.022] {Display Queue} wl_display#1.delete_id(1735) -[2618089.031] {Default Queue} wl_keyboard#1704.keymap(1, fd 274, 68213) -[2618089.036] {Default Queue} wl_keyboard#1704.enter(566, wl_surface#19, array[0]) -[2618089.042] {Default Queue} wl_keyboard#1704.modifiers(566, 0, 0, 16, 0) -[2618089.046] {Default Queue} discarded wl_shm#1711.format(875709016) -[2618089.050] {Default Queue} discarded wl_shm#1711.format(1) -[2618089.054] {Default Queue} discarded wl_shm#1711.format(0) -[2618089.058] {Default Queue} discarded wl_shm#1711.format(875708993) -[2618089.062] {Default Queue} discarded wl_shm#1712.format(875709016) -[2618089.066] {Default Queue} discarded wl_shm#1712.format(1) -[2618089.070] {Default Queue} discarded wl_shm#1712.format(0) -[2618089.074] {Default Queue} discarded wl_shm#1712.format(875708993) -[2618089.078] {Default Queue} discarded wl_shm#1713.format(875709016) -[2618089.082] {Default Queue} discarded wl_shm#1713.format(1) -[2618089.086] {Default Queue} discarded wl_shm#1713.format(0) -[2618089.090] {Default Queue} discarded wl_shm#1713.format(875708993) -[2618089.093] {Default Queue} wl_seat#1720.capabilities(7) -[2618089.098] {Default Queue} -> wl_seat#1720.get_keyboard(new id wl_keyboard#1736) -[2618089.102] {Default Queue} -> wl_seat#1720.get_pointer(new id wl_pointer#1737) -[2618089.106] {Default Queue} -> wl_data_device_manager#1716.get_data_device(new id wl_data_device#1738, wl_seat#1720) -[2618089.111] {Default Queue} -> zwp_primary_selection_device_manager_v1#1718.get_device(new id zwp_primary_selection_device_v1#1739, wl_seat#1720) -[2618089.119] {Default Queue} wl_output#1721.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618089.124] {Default Queue} wl_output#1721.mode(3, 1280, 800, 60000) -[2618089.128] {Default Queue} discarded wl_surface#3.enter(wl_output#1721) -[2618089.132] {Default Queue} discarded wl_surface#999.enter(wl_output#1721) -[2618089.136] {Default Queue} discarded wl_surface#1191.enter(wl_output#1721) -[2618089.144] {Default Queue} discarded wl_surface#1159.enter(wl_output#1721) -[2618089.151] {Default Queue} discarded wl_surface#423.enter(wl_output#1721) -[2618089.156] {Default Queue} discarded wl_surface#1447.enter(wl_output#1721) -[2618089.159] {Default Queue} discarded wl_surface#1639.enter(wl_output#1721) -[2618089.163] {Default Queue} discarded wl_surface#1319.enter(wl_output#1721) -[2618089.167] {Default Queue} discarded wl_surface#1127.enter(wl_output#1721) -[2618089.171] {Default Queue} discarded wl_surface#1063.enter(wl_output#1721) -[2618089.175] {Default Queue} discarded wl_surface#455.enter(wl_output#1721) -[2618089.179] {Default Queue} discarded wl_surface#1575.enter(wl_output#1721) -[2618089.183] {Default Queue} discarded wl_surface#1415.enter(wl_output#1721) -[2618089.187] {Default Queue} discarded wl_surface#903.enter(wl_output#1721) -[2618089.191] {Default Queue} discarded wl_surface#775.enter(wl_output#1721) -[2618089.195] {Default Queue} discarded wl_surface#1543.enter(wl_output#1721) -[2618089.199] {Default Queue} discarded wl_surface#135.enter(wl_output#1721) -[2618089.203] {Default Queue} discarded wl_surface#1287.enter(wl_output#1721) -[2618089.206] {Default Queue} discarded wl_surface#1031.enter(wl_output#1721) -[2618089.210] {Default Queue} discarded wl_surface#615.enter(wl_output#1721) -[2618089.214] {Default Queue} discarded wl_surface#231.enter(wl_output#1721) -[2618089.218] {Default Queue} discarded wl_surface#359.enter(wl_output#1721) -[2618089.222] {Default Queue} discarded wl_surface#583.enter(wl_output#1721) -[2618089.226] {Default Queue} discarded wl_surface#743.enter(wl_output#1721) -[2618089.230] {Default Queue} discarded wl_surface#967.enter(wl_output#1721) -[2618089.234] {Default Queue} discarded wl_surface#103.enter(wl_output#1721) -[2618089.238] {Default Queue} discarded wl_surface#327.enter(wl_output#1721) -[2618089.241] {Default Queue} discarded wl_surface#43.enter(wl_output#1721) -[2618089.245] {Default Queue} discarded wl_surface#807.enter(wl_output#1721) -[2618089.249] {Default Queue} discarded wl_surface#19.enter(wl_output#1721) -[2618089.253] {Default Queue} discarded wl_surface#1511.enter(wl_output#1721) -[2618089.257] {Default Queue} discarded wl_surface#199.enter(wl_output#1721) -[2618089.261] {Default Queue} discarded wl_surface#391.enter(wl_output#1721) -[2618089.264] {Default Queue} discarded wl_surface#935.enter(wl_output#1721) -[2618089.268] {Default Queue} discarded wl_surface#1671.enter(wl_output#1721) -[2618089.272] {Default Queue} discarded wl_surface#1351.enter(wl_output#1721) -[2618089.276] {Default Queue} discarded wl_surface#711.enter(wl_output#1721) -[2618089.280] {Default Queue} discarded wl_surface#1223.enter(wl_output#1721) -[2618089.284] {Default Queue} discarded wl_surface#871.enter(wl_output#1721) -[2618089.288] {Default Queue} discarded wl_surface#263.enter(wl_output#1721) -[2618089.292] {Default Queue} discarded wl_surface#551.enter(wl_output#1721) -[2618089.296] {Default Queue} discarded wl_surface#1479.enter(wl_output#1721) -[2618089.299] {Default Queue} discarded wl_surface#647.enter(wl_output#1721) -[2618089.303] {Default Queue} discarded wl_surface#71.enter(wl_output#1721) -[2618089.307] {Default Queue} discarded wl_surface#839.enter(wl_output#1721) -[2618089.311] {Default Queue} discarded wl_surface#1607.enter(wl_output#1721) -[2618089.315] {Default Queue} discarded wl_surface#1095.enter(wl_output#1721) -[2618089.319] {Default Queue} discarded wl_surface#1383.enter(wl_output#1721) -[2618089.323] {Default Queue} discarded wl_surface#487.enter(wl_output#1721) -[2618089.327] {Default Queue} discarded wl_surface#519.enter(wl_output#1721) -[2618089.331] {Default Queue} discarded wl_surface#295.enter(wl_output#1721) -[2618089.335] {Default Queue} discarded wl_surface#167.enter(wl_output#1721) -[2618089.339] {Default Queue} discarded wl_surface#1255.enter(wl_output#1721) -[2618089.343] {Default Queue} discarded wl_surface#679.enter(wl_output#1721) -[2618089.347] {Default Queue} wl_registry#1734.global(1, "wl_compositor", 6) -[2618089.352] {Default Queue} -> wl_registry#1734.bind(1, "wl_compositor", 1, new id [unknown]#1740) -[2618089.360] {Default Queue} wl_registry#1734.global(2, "wl_subcompositor", 1) -[2618089.366] {Default Queue} -> wl_registry#1734.bind(2, "wl_subcompositor", 1, new id [unknown]#1741) -[2618089.370] {Default Queue} wl_registry#1734.global(3, "xdg_wm_base", 6) -[2618089.375] {Default Queue} -> wl_registry#1734.bind(3, "xdg_wm_base", 1, new id [unknown]#1742) -[2618089.379] {Default Queue} wl_registry#1734.global(6, "zwlr_layer_shell_v1", 5) -[2618089.384] {Default Queue} wl_registry#1734.global(7, "ext_session_lock_manager_v1", 1) -[2618089.390] {Default Queue} wl_registry#1734.global(8, "wl_shm", 2) -[2618089.394] {Default Queue} -> wl_registry#1734.bind(8, "wl_shm", 1, new id [unknown]#1743) -[2618089.399] {Default Queue} -> wl_registry#1734.bind(8, "wl_shm", 1, new id [unknown]#1744) -[2618089.403] {Default Queue} -> wl_registry#1734.bind(8, "wl_shm", 1, new id [unknown]#1745) -[2618089.407] {Default Queue} wl_registry#1734.global(9, "zxdg_output_manager_v1", 3) -[2618089.412] {Default Queue} wl_registry#1734.global(10, "wp_fractional_scale_manager_v1", 1) -[2618089.417] {Default Queue} wl_registry#1734.global(11, "zwp_tablet_manager_v2", 1) -[2618089.421] {Default Queue} wl_registry#1734.global(12, "zwp_pointer_gestures_v1", 3) -[2618089.425] {Default Queue} wl_registry#1734.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618089.430] {Default Queue} -> wl_registry#1734.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1746) -[2618089.434] {Default Queue} wl_registry#1734.global(14, "zwp_pointer_constraints_v1", 1) -[2618089.439] {Default Queue} -> wl_registry#1734.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1747) -[2618089.443] {Default Queue} wl_registry#1734.global(15, "ext_idle_notifier_v1", 2) -[2618089.447] {Default Queue} wl_registry#1734.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618089.452] {Default Queue} wl_registry#1734.global(17, "wl_data_device_manager", 3) -[2618089.457] {Default Queue} -> wl_registry#1734.bind(17, "wl_data_device_manager", 2, new id [unknown]#1748) -[2618089.462] {Default Queue} -> wl_data_device_manager#1748.create_data_source(new id wl_data_source#1749) -[2618089.466] {Default Queue} -> wl_data_source#1749.offer("text/plain") -[2618089.470] {Default Queue} -> wl_data_source#1749.offer("text/plain;charset=utf-8") -[2618089.475] {Default Queue} -> wl_data_source#1749.offer("TEXT") -[2618089.479] {Default Queue} -> wl_data_source#1749.offer("STRING") -[2618089.483] {Default Queue} -> wl_data_source#1749.offer("UTF8_STRING") -[2618089.488] {Default Queue} wl_registry#1734.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618089.492] {Default Queue} -> wl_registry#1734.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1750) -[2618089.500] {Default Queue} -> zwp_primary_selection_device_manager_v1#1750.create_source(new id zwp_primary_selection_source_v1#1751) -[2618089.507] {Default Queue} -> zwp_primary_selection_source_v1#1751.offer("text/plain") -[2618089.511] {Default Queue} -> zwp_primary_selection_source_v1#1751.offer("text/plain;charset=utf-8") -[2618089.515] {Default Queue} -> zwp_primary_selection_source_v1#1751.offer("TEXT") -[2618089.520] {Default Queue} -> zwp_primary_selection_source_v1#1751.offer("STRING") -[2618089.523] {Default Queue} -> zwp_primary_selection_source_v1#1751.offer("UTF8_STRING") -[2618089.528] {Default Queue} wl_registry#1734.global(19, "zwlr_data_control_manager_v1", 2) -[2618089.532] {Default Queue} wl_registry#1734.global(20, "ext_data_control_manager_v1", 1) -[2618089.537] {Default Queue} wl_registry#1734.global(21, "wp_presentation", 2) -[2618089.541] {Default Queue} wl_registry#1734.global(22, "wp_security_context_manager_v1", 1) -[2618089.546] {Default Queue} wl_registry#1734.global(23, "zwp_text_input_manager_v3", 1) -[2618089.550] {Default Queue} wl_registry#1734.global(24, "zwp_input_method_manager_v2", 1) -[2618089.554] {Default Queue} wl_registry#1734.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618089.559] {Default Queue} wl_registry#1734.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618089.566] {Default Queue} wl_registry#1734.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618089.572] {Default Queue} wl_registry#1734.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618089.576] {Default Queue} wl_registry#1734.global(29, "ext_workspace_manager_v1", 1) -[2618089.580] {Default Queue} wl_registry#1734.global(30, "zwlr_output_manager_v1", 4) -[2618089.584] {Default Queue} wl_registry#1734.global(31, "zwlr_screencopy_manager_v1", 3) -[2618089.589] {Default Queue} wl_registry#1734.global(32, "wp_viewporter", 1) -[2618089.593] {Default Queue} wl_registry#1734.global(33, "zxdg_exporter_v2", 1) -[2618089.597] {Default Queue} wl_registry#1734.global(34, "zxdg_importer_v2", 1) -[2618089.602] {Default Queue} wl_registry#1734.global(36, "xdg_activation_v1", 1) -[2618089.606] {Default Queue} wl_registry#1734.global(37, "mutter_x11_interop", 1) -[2618089.610] {Default Queue} wl_registry#1734.global(38, "wl_seat", 9) -[2618089.615] {Default Queue} -> wl_registry#1734.bind(38, "wl_seat", 1, new id [unknown]#1752) -[2618089.619] {Default Queue} wl_registry#1734.global(39, "wp_cursor_shape_manager_v1", 2) -[2618089.624] {Default Queue} wl_registry#1734.global(40, "wl_output", 4) -[2618089.628] {Default Queue} -> wl_registry#1734.bind(40, "wl_output", 1, new id [unknown]#1753) -[2618089.633] {Default Queue} wl_callback#1735.done(0) -[2618089.637] {Default Queue} discarded wl_surface#1703.enter(wl_output#18) -[2618089.641] {Default Queue} discarded wl_surface#1703.enter(wl_output#57) -[2618089.645] {Default Queue} discarded wl_surface#1703.enter(wl_output#89) -[2618089.649] {Default Queue} discarded wl_surface#1703.enter(wl_output#121) -[2618089.653] {Default Queue} discarded wl_surface#1703.enter(wl_output#153) -[2618089.657] {Default Queue} discarded wl_surface#1703.enter(wl_output#185) -[2618089.661] {Default Queue} discarded wl_surface#1703.enter(wl_output#217) -[2618089.665] {Default Queue} discarded wl_surface#1703.enter(wl_output#249) -[2618089.669] {Default Queue} discarded wl_surface#1703.enter(wl_output#281) -[2618089.672] {Default Queue} discarded wl_surface#1703.enter(wl_output#313) -[2618089.676] {Default Queue} discarded wl_surface#1703.enter(wl_output#345) -[2618089.680] {Default Queue} discarded wl_surface#1703.enter(wl_output#377) -[2618089.684] {Default Queue} discarded wl_surface#1703.enter(wl_output#409) -[2618089.688] {Default Queue} discarded wl_surface#1703.enter(wl_output#441) -[2618089.692] {Default Queue} discarded wl_surface#1703.enter(wl_output#473) -[2618089.696] {Default Queue} discarded wl_surface#1703.enter(wl_output#505) -[2618089.700] {Default Queue} discarded wl_surface#1703.enter(wl_output#537) -[2618089.704] {Default Queue} discarded wl_surface#1703.enter(wl_output#569) -[2618089.708] {Default Queue} discarded wl_surface#1703.enter(wl_output#601) -[2618089.711] {Default Queue} discarded wl_surface#1703.enter(wl_output#633) -[2618089.715] {Default Queue} discarded wl_surface#1703.enter(wl_output#665) -[2618089.719] {Default Queue} discarded wl_surface#1703.enter(wl_output#697) -[2618089.723] {Default Queue} discarded wl_surface#1703.enter(wl_output#729) -[2618089.727] {Default Queue} discarded wl_surface#1703.enter(wl_output#761) -[2618089.731] {Default Queue} discarded wl_surface#1703.enter(wl_output#793) -[2618089.735] {Default Queue} discarded wl_surface#1703.enter(wl_output#825) -[2618089.739] {Default Queue} discarded wl_surface#1703.enter(wl_output#857) -[2618089.743] {Default Queue} discarded wl_surface#1703.enter(wl_output#889) -[2618089.747] {Default Queue} discarded wl_surface#1703.enter(wl_output#921) -[2618089.750] {Default Queue} discarded wl_surface#1703.enter(wl_output#953) -[2618089.755] {Default Queue} discarded wl_surface#1703.enter(wl_output#985) -[2618089.759] {Default Queue} discarded wl_surface#1703.enter(wl_output#1017) -[2618089.763] {Default Queue} discarded wl_surface#1703.enter(wl_output#1049) -[2618089.767] {Default Queue} discarded wl_surface#1703.enter(wl_output#1081) -[2618089.771] {Default Queue} discarded wl_surface#1703.enter(wl_output#1113) -[2618089.775] {Default Queue} discarded wl_surface#1703.enter(wl_output#1145) -[2618089.782] {Default Queue} discarded wl_surface#1703.enter(wl_output#1177) -[2618089.787] {Default Queue} discarded wl_surface#1703.enter(wl_output#1209) -[2618089.791] {Default Queue} discarded wl_surface#1703.enter(wl_output#1241) -[2618089.795] {Default Queue} discarded wl_surface#1703.enter(wl_output#1273) -[2618089.799] {Default Queue} discarded wl_surface#1703.enter(wl_output#1305) -[2618089.803] {Default Queue} discarded wl_surface#1703.enter(wl_output#1337) -[2618089.807] {Default Queue} discarded wl_surface#1703.enter(wl_output#1369) -[2618089.811] {Default Queue} discarded wl_surface#1703.enter(wl_output#1401) -[2618089.815] {Default Queue} discarded wl_surface#1703.enter(wl_output#1433) -[2618089.819] {Default Queue} discarded wl_surface#1703.enter(wl_output#1465) -[2618089.823] {Default Queue} discarded wl_surface#1703.enter(wl_output#1497) -[2618089.827] {Default Queue} discarded wl_surface#1703.enter(wl_output#1529) -[2618089.831] {Default Queue} discarded wl_surface#1703.enter(wl_output#1561) -[2618089.835] {Default Queue} discarded wl_surface#1703.enter(wl_output#1593) -[2618089.839] {Default Queue} discarded wl_surface#1703.enter(wl_output#1625) -[2618089.844] {Default Queue} discarded wl_surface#1703.enter(wl_output#1657) -[2618089.847] {Default Queue} discarded wl_surface#1703.enter(wl_output#1689) -[2618089.851] {Default Queue} discarded wl_surface#1703.enter(wl_output#1721) -[2618089.855] {Default Queue} -> wl_compositor#1708.create_surface(new id wl_surface#1735) -[2618089.860] {Default Queue} -> wl_subcompositor#1741.get_subsurface(new id wl_subsurface#1754, wl_surface#1735, wl_surface#1703) -[2618089.869] {Default Queue} -> wl_subsurface#1754.set_desync() -[2618089.877] {Default Queue} -> wl_subsurface#1754.set_position(0, 0) -[2618089.881] {Default Queue} -> wl_subsurface#1754.place_above(wl_surface#1703) -[2618089.921] {Default Queue} -> wl_shm#1743.create_pool(new id wl_shm_pool#1755, fd 279, 16) -[2618089.928] {Default Queue} -> wl_shm#1743.create_pool(new id wl_shm_pool#1756, fd 280, 16) -[2618089.932] {Default Queue} -> wl_shm_pool#1755.create_buffer(new id wl_buffer#1757, 0, 2, 2, 8, 0) -[2618089.937] {Default Queue} -> wl_shm_pool#1756.create_buffer(new id wl_buffer#1758, 0, 2, 2, 8, 0) -[2618089.944] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) -[2618089.948] {Default Queue} -> wl_surface#1735.commit() -[2618089.954] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) -[2618089.958] {Default Queue} -> wl_surface#1735.commit() -[2618089.963] {Default Queue} -> wl_compositor#1740.create_region(new id wl_region#1759) -[2618089.967] {Default Queue} -> wl_compositor#1740.create_region(new id wl_region#1760) -[2618089.971] {Default Queue} -> wl_region#1759.subtract(0, 0, 2, 2) -[2618089.976] {Default Queue} -> wl_region#1759.add(0, 0, 0, 0) -[2618089.980] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618089.984] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618089.989] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) -[2618089.993] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) -[2618090.000] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) -[2618090.005] {Default Queue} -> wl_surface#1735.commit() -[2618090.037] {Default Queue} -> wl_shm#1745.create_pool(new id wl_shm_pool#1761, fd 283, 640) -[2618090.043] {Default Queue} -> wl_shm#1745.create_pool(new id wl_shm_pool#1762, fd 284, 640) -[2618090.048] {Default Queue} -> wl_shm_pool#1761.create_buffer(new id wl_buffer#1763, 0, 10, 16, 40, 0) -[2618090.053] {Default Queue} -> wl_shm_pool#1762.create_buffer(new id wl_buffer#1764, 0, 10, 16, 40, 0) -[2618090.060] {Default Queue} -> wl_compositor#1740.create_surface(new id wl_surface#1765) -[2618090.064] {Default Queue} -> wl_surface#1765.attach(wl_buffer#1763, 0, 0) -[2618090.069] {Default Queue} -> wl_surface#1765.commit() -[2618090.074] {Default Queue} -> wl_surface#1765.attach(wl_buffer#1763, 0, 0) -[2618090.079] {Default Queue} -> wl_surface#1765.commit() -[2618090.095] {Default Queue} -> wl_buffer#1763.destroy() -[2618090.103] {Default Queue} -> wl_buffer#1764.destroy() -[2618090.107] {Default Queue} -> wl_shm_pool#1761.destroy() -[2618090.112] {Default Queue} -> wl_shm_pool#1762.destroy() -[2618090.117] {Default Queue} -> wl_surface#1765.destroy() -[2618090.151] {Default Queue} -> wl_shm#1745.create_pool(new id wl_shm_pool#1766, fd 285, 576) -[2618090.157] {Default Queue} -> wl_shm#1745.create_pool(new id wl_shm_pool#1767, fd 286, 576) -[2618090.162] {Default Queue} -> wl_shm_pool#1766.create_buffer(new id wl_buffer#1768, 0, 9, 16, 36, 0) -[2618090.167] {Default Queue} -> wl_shm_pool#1767.create_buffer(new id wl_buffer#1769, 0, 9, 16, 36, 0) -[2618090.173] {Default Queue} -> wl_compositor#1740.create_surface(new id wl_surface#1770) -[2618090.178] {Default Queue} -> wl_surface#1770.attach(wl_buffer#1768, 0, 0) -[2618090.182] {Default Queue} -> wl_surface#1770.commit() -[2618090.188] {Default Queue} -> wl_surface#1770.attach(wl_buffer#1768, 0, 0) -[2618090.192] {Default Queue} -> wl_surface#1770.commit() -[2618090.204] {Default Queue} -> wl_region#1663.subtract(0, 0, 2, 2) -[2618090.210] {Default Queue} -> wl_subsurface#1658.set_position(3, 3) -[2618090.215] {Default Queue} -> wl_region#1663.subtract(0, 0, 5, 5) -[2618090.220] {Default Queue} -> wl_region#1663.add(0, 0, 0, 0) -[2618090.224] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) -[2618090.229] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) -[2618090.234] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618090.238] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) -[2618090.243] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) -[2618090.247] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) -[2618090.256] {Default Queue} -> wl_region#1663.subtract(0, 0, 5, 5) -[2618090.261] {Default Queue} -> wl_region#1663.add(0, 0, 0, 0) -[2618090.265] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) -[2618090.269] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) -[2618090.276] {Default Queue} -> wl_surface#1639.attach(wl_buffer#1661, 0, 0) -[2618090.280] {Default Queue} -> wl_surface#1639.commit() -[2618090.287] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1771) -[2618090.292] {Default Queue} -> wl_display#1.sync(new id wl_callback#1772) -[2618094.821] {Display Queue} wl_display#1.delete_id(1763) -[2618094.831] {Display Queue} wl_display#1.delete_id(1764) -[2618094.837] {Display Queue} wl_display#1.delete_id(1761) -[2618094.842] {Display Queue} wl_display#1.delete_id(1762) -[2618094.847] {Display Queue} wl_display#1.delete_id(1765) -[2618094.852] {Display Queue} wl_display#1.delete_id(1772) -[2618094.857] {Default Queue} wl_keyboard#1736.keymap(1, fd 279, 68213) -[2618094.869] {Default Queue} wl_keyboard#1736.enter(566, wl_surface#19, array[0]) -[2618094.876] {Default Queue} wl_keyboard#1736.modifiers(566, 0, 0, 16, 0) -[2618094.881] {Default Queue} discarded wl_shm#1743.format(875709016) -[2618094.887] {Default Queue} discarded wl_shm#1743.format(1) -[2618094.891] {Default Queue} discarded wl_shm#1743.format(0) -[2618094.896] {Default Queue} discarded wl_shm#1743.format(875708993) -[2618094.901] {Default Queue} discarded wl_shm#1744.format(875709016) -[2618094.906] {Default Queue} discarded wl_shm#1744.format(1) -[2618094.911] {Default Queue} discarded wl_shm#1744.format(0) -[2618094.916] {Default Queue} discarded wl_shm#1744.format(875708993) -[2618094.921] {Default Queue} discarded wl_shm#1745.format(875709016) -[2618094.926] {Default Queue} discarded wl_shm#1745.format(1) -[2618094.931] {Default Queue} discarded wl_shm#1745.format(0) -[2618094.935] {Default Queue} discarded wl_shm#1745.format(875708993) -[2618094.940] {Default Queue} wl_seat#1752.capabilities(7) -[2618094.946] {Default Queue} -> wl_seat#1752.get_keyboard(new id wl_keyboard#1765) -[2618094.952] {Default Queue} -> wl_seat#1752.get_pointer(new id wl_pointer#1762) -[2618094.958] {Default Queue} -> wl_data_device_manager#1748.get_data_device(new id wl_data_device#1761, wl_seat#1752) -[2618094.969] {Default Queue} -> zwp_primary_selection_device_manager_v1#1750.get_device(new id zwp_primary_selection_device_v1#1764, wl_seat#1752) -[2618094.982] {Default Queue} wl_output#1753.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618094.989] {Default Queue} wl_output#1753.mode(3, 1280, 800, 60000) -[2618094.995] {Default Queue} discarded wl_surface#3.enter(wl_output#1753) -[2618095.000] {Default Queue} discarded wl_surface#999.enter(wl_output#1753) -[2618095.005] {Default Queue} discarded wl_surface#1191.enter(wl_output#1753) -[2618095.011] {Default Queue} discarded wl_surface#1159.enter(wl_output#1753) -[2618095.016] {Default Queue} discarded wl_surface#1703.enter(wl_output#1753) -[2618095.021] {Default Queue} discarded wl_surface#423.enter(wl_output#1753) -[2618095.026] {Default Queue} discarded wl_surface#1447.enter(wl_output#1753) -[2618095.031] {Default Queue} discarded wl_surface#1639.enter(wl_output#1753) -[2618095.036] {Default Queue} discarded wl_surface#1319.enter(wl_output#1753) -[2618095.041] {Default Queue} discarded wl_surface#1127.enter(wl_output#1753) -[2618095.046] {Default Queue} discarded wl_surface#1063.enter(wl_output#1753) -[2618095.051] {Default Queue} discarded wl_surface#455.enter(wl_output#1753) -[2618095.056] {Default Queue} discarded wl_surface#1575.enter(wl_output#1753) -[2618095.061] {Default Queue} discarded wl_surface#1415.enter(wl_output#1753) -[2618095.066] {Default Queue} discarded wl_surface#903.enter(wl_output#1753) -[2618095.071] {Default Queue} discarded wl_surface#775.enter(wl_output#1753) -[2618095.076] {Default Queue} discarded wl_surface#1543.enter(wl_output#1753) -[2618095.081] {Default Queue} discarded wl_surface#135.enter(wl_output#1753) -[2618095.086] {Default Queue} discarded wl_surface#1287.enter(wl_output#1753) -[2618095.091] {Default Queue} discarded wl_surface#1031.enter(wl_output#1753) -[2618095.096] {Default Queue} discarded wl_surface#615.enter(wl_output#1753) -[2618095.100] {Default Queue} discarded wl_surface#231.enter(wl_output#1753) -[2618095.105] {Default Queue} discarded wl_surface#359.enter(wl_output#1753) -[2618095.110] {Default Queue} discarded wl_surface#583.enter(wl_output#1753) -[2618095.115] {Default Queue} discarded wl_surface#743.enter(wl_output#1753) -[2618095.120] {Default Queue} discarded wl_surface#967.enter(wl_output#1753) -[2618095.125] {Default Queue} discarded wl_surface#103.enter(wl_output#1753) -[2618095.130] {Default Queue} discarded wl_surface#327.enter(wl_output#1753) -[2618095.135] {Default Queue} discarded wl_surface#43.enter(wl_output#1753) -[2618095.140] {Default Queue} discarded wl_surface#807.enter(wl_output#1753) -[2618095.144] {Default Queue} discarded wl_surface#19.enter(wl_output#1753) -[2618095.149] {Default Queue} discarded wl_surface#1511.enter(wl_output#1753) -[2618095.154] {Default Queue} discarded wl_surface#199.enter(wl_output#1753) -[2618095.159] {Default Queue} discarded wl_surface#391.enter(wl_output#1753) -[2618095.164] {Default Queue} discarded wl_surface#935.enter(wl_output#1753) -[2618095.169] {Default Queue} discarded wl_surface#1671.enter(wl_output#1753) -[2618095.174] {Default Queue} discarded wl_surface#1351.enter(wl_output#1753) -[2618095.179] {Default Queue} discarded wl_surface#711.enter(wl_output#1753) -[2618095.183] {Default Queue} discarded wl_surface#1223.enter(wl_output#1753) -[2618095.188] {Default Queue} discarded wl_surface#871.enter(wl_output#1753) -[2618095.193] {Default Queue} discarded wl_surface#263.enter(wl_output#1753) -[2618095.198] {Default Queue} discarded wl_surface#551.enter(wl_output#1753) -[2618095.203] {Default Queue} discarded wl_surface#1479.enter(wl_output#1753) -[2618095.208] {Default Queue} discarded wl_surface#647.enter(wl_output#1753) -[2618095.213] {Default Queue} discarded wl_surface#71.enter(wl_output#1753) -[2618095.218] {Default Queue} discarded wl_surface#839.enter(wl_output#1753) -[2618095.223] {Default Queue} discarded wl_surface#1607.enter(wl_output#1753) -[2618095.227] {Default Queue} discarded wl_surface#1095.enter(wl_output#1753) -[2618095.232] {Default Queue} discarded wl_surface#1383.enter(wl_output#1753) -[2618095.241] {Default Queue} discarded wl_surface#487.enter(wl_output#1753) -[2618095.248] {Default Queue} discarded wl_surface#519.enter(wl_output#1753) -[2618095.253] {Default Queue} discarded wl_surface#295.enter(wl_output#1753) -[2618095.258] {Default Queue} discarded wl_surface#167.enter(wl_output#1753) -[2618095.262] {Default Queue} discarded wl_surface#1255.enter(wl_output#1753) -[2618095.267] {Default Queue} discarded wl_surface#679.enter(wl_output#1753) -[2618095.272] {Default Queue} wl_registry#1771.global(1, "wl_compositor", 6) -[2618095.278] {Default Queue} -> wl_registry#1771.bind(1, "wl_compositor", 1, new id [unknown]#1763) -[2618095.284] {Default Queue} wl_registry#1771.global(2, "wl_subcompositor", 1) -[2618095.290] {Default Queue} -> wl_registry#1771.bind(2, "wl_subcompositor", 1, new id [unknown]#1773) -[2618095.296] {Default Queue} wl_registry#1771.global(3, "xdg_wm_base", 6) -[2618095.302] {Default Queue} -> wl_registry#1771.bind(3, "xdg_wm_base", 1, new id [unknown]#1774) -[2618095.307] {Default Queue} wl_registry#1771.global(6, "zwlr_layer_shell_v1", 5) -[2618095.312] {Default Queue} wl_registry#1771.global(7, "ext_session_lock_manager_v1", 1) -[2618095.318] {Default Queue} wl_registry#1771.global(8, "wl_shm", 2) -[2618095.324] {Default Queue} -> wl_registry#1771.bind(8, "wl_shm", 1, new id [unknown]#1775) -[2618095.329] {Default Queue} -> wl_registry#1771.bind(8, "wl_shm", 1, new id [unknown]#1776) -[2618095.334] {Default Queue} -> wl_registry#1771.bind(8, "wl_shm", 1, new id [unknown]#1777) -[2618095.340] {Default Queue} wl_registry#1771.global(9, "zxdg_output_manager_v1", 3) -[2618095.345] {Default Queue} wl_registry#1771.global(10, "wp_fractional_scale_manager_v1", 1) -[2618095.350] {Default Queue} wl_registry#1771.global(11, "zwp_tablet_manager_v2", 1) -[2618095.355] {Default Queue} wl_registry#1771.global(12, "zwp_pointer_gestures_v1", 3) -[2618095.361] {Default Queue} wl_registry#1771.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618095.367] {Default Queue} -> wl_registry#1771.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1778) -[2618095.372] {Default Queue} wl_registry#1771.global(14, "zwp_pointer_constraints_v1", 1) -[2618095.378] {Default Queue} -> wl_registry#1771.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1779) -[2618095.384] {Default Queue} wl_registry#1771.global(15, "ext_idle_notifier_v1", 2) -[2618095.389] {Default Queue} wl_registry#1771.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618095.395] {Default Queue} wl_registry#1771.global(17, "wl_data_device_manager", 3) -[2618095.401] {Default Queue} -> wl_registry#1771.bind(17, "wl_data_device_manager", 2, new id [unknown]#1780) -[2618095.406] {Default Queue} -> wl_data_device_manager#1780.create_data_source(new id wl_data_source#1781) -[2618095.411] {Default Queue} -> wl_data_source#1781.offer("text/plain") -[2618095.417] {Default Queue} -> wl_data_source#1781.offer("text/plain;charset=utf-8") -[2618095.422] {Default Queue} -> wl_data_source#1781.offer("TEXT") -[2618095.427] {Default Queue} -> wl_data_source#1781.offer("STRING") -[2618095.432] {Default Queue} -> wl_data_source#1781.offer("UTF8_STRING") -[2618095.437] {Default Queue} wl_registry#1771.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618095.443] {Default Queue} -> wl_registry#1771.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1782) -[2618095.453] {Default Queue} -> zwp_primary_selection_device_manager_v1#1782.create_source(new id zwp_primary_selection_source_v1#1783) -[2618095.462] {Default Queue} -> zwp_primary_selection_source_v1#1783.offer("text/plain") -[2618095.468] {Default Queue} -> zwp_primary_selection_source_v1#1783.offer("text/plain;charset=utf-8") -[2618095.473] {Default Queue} -> zwp_primary_selection_source_v1#1783.offer("TEXT") -[2618095.478] {Default Queue} -> zwp_primary_selection_source_v1#1783.offer("STRING") -[2618095.483] {Default Queue} -> zwp_primary_selection_source_v1#1783.offer("UTF8_STRING") -[2618095.488] {Default Queue} wl_registry#1771.global(19, "zwlr_data_control_manager_v1", 2) -[2618095.497] {Default Queue} wl_registry#1771.global(20, "ext_data_control_manager_v1", 1) -[2618095.504] {Default Queue} wl_registry#1771.global(21, "wp_presentation", 2) -[2618095.509] {Default Queue} wl_registry#1771.global(22, "wp_security_context_manager_v1", 1) -[2618095.515] {Default Queue} wl_registry#1771.global(23, "zwp_text_input_manager_v3", 1) -[2618095.520] {Default Queue} wl_registry#1771.global(24, "zwp_input_method_manager_v2", 1) -[2618095.526] {Default Queue} wl_registry#1771.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618095.532] {Default Queue} wl_registry#1771.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618095.537] {Default Queue} wl_registry#1771.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618095.542] {Default Queue} wl_registry#1771.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618095.548] {Default Queue} wl_registry#1771.global(29, "ext_workspace_manager_v1", 1) -[2618095.553] {Default Queue} wl_registry#1771.global(30, "zwlr_output_manager_v1", 4) -[2618095.558] {Default Queue} wl_registry#1771.global(31, "zwlr_screencopy_manager_v1", 3) -[2618095.564] {Default Queue} wl_registry#1771.global(32, "wp_viewporter", 1) -[2618095.569] {Default Queue} wl_registry#1771.global(33, "zxdg_exporter_v2", 1) -[2618095.575] {Default Queue} wl_registry#1771.global(34, "zxdg_importer_v2", 1) -[2618095.580] {Default Queue} wl_registry#1771.global(36, "xdg_activation_v1", 1) -[2618095.585] {Default Queue} wl_registry#1771.global(37, "mutter_x11_interop", 1) -[2618095.591] {Default Queue} wl_registry#1771.global(38, "wl_seat", 9) -[2618095.596] {Default Queue} -> wl_registry#1771.bind(38, "wl_seat", 1, new id [unknown]#1784) -[2618095.602] {Default Queue} wl_registry#1771.global(39, "wp_cursor_shape_manager_v1", 2) -[2618095.608] {Default Queue} wl_registry#1771.global(40, "wl_output", 4) -[2618095.613] {Default Queue} -> wl_registry#1771.bind(40, "wl_output", 1, new id [unknown]#1785) -[2618095.619] {Default Queue} wl_callback#1772.done(0) -[2618095.624] {Default Queue} discarded wl_surface#1735.enter(wl_output#18) -[2618095.629] {Default Queue} discarded wl_surface#1735.enter(wl_output#57) -[2618095.634] {Default Queue} discarded wl_surface#1735.enter(wl_output#89) -[2618095.639] {Default Queue} discarded wl_surface#1735.enter(wl_output#121) -[2618095.644] {Default Queue} discarded wl_surface#1735.enter(wl_output#153) -[2618095.650] {Default Queue} discarded wl_surface#1735.enter(wl_output#185) -[2618095.655] {Default Queue} discarded wl_surface#1735.enter(wl_output#217) -[2618095.660] {Default Queue} discarded wl_surface#1735.enter(wl_output#249) -[2618095.665] {Default Queue} discarded wl_surface#1735.enter(wl_output#281) -[2618095.670] {Default Queue} discarded wl_surface#1735.enter(wl_output#313) -[2618095.674] {Default Queue} discarded wl_surface#1735.enter(wl_output#345) -[2618095.679] {Default Queue} discarded wl_surface#1735.enter(wl_output#377) -[2618095.684] {Default Queue} discarded wl_surface#1735.enter(wl_output#409) -[2618095.690] {Default Queue} discarded wl_surface#1735.enter(wl_output#441) -[2618095.695] {Default Queue} discarded wl_surface#1735.enter(wl_output#473) -[2618095.700] {Default Queue} discarded wl_surface#1735.enter(wl_output#505) -[2618095.705] {Default Queue} discarded wl_surface#1735.enter(wl_output#537) -[2618095.710] {Default Queue} discarded wl_surface#1735.enter(wl_output#569) -[2618095.715] {Default Queue} discarded wl_surface#1735.enter(wl_output#601) -[2618095.720] {Default Queue} discarded wl_surface#1735.enter(wl_output#633) -[2618095.725] {Default Queue} discarded wl_surface#1735.enter(wl_output#665) -[2618095.730] {Default Queue} discarded wl_surface#1735.enter(wl_output#697) -[2618095.734] {Default Queue} discarded wl_surface#1735.enter(wl_output#729) -[2618095.739] {Default Queue} discarded wl_surface#1735.enter(wl_output#761) -[2618095.744] {Default Queue} discarded wl_surface#1735.enter(wl_output#793) -[2618095.749] {Default Queue} discarded wl_surface#1735.enter(wl_output#825) -[2618095.754] {Default Queue} discarded wl_surface#1735.enter(wl_output#857) -[2618095.765] {Default Queue} discarded wl_surface#1735.enter(wl_output#889) -[2618095.772] {Default Queue} discarded wl_surface#1735.enter(wl_output#921) -[2618095.778] {Default Queue} discarded wl_surface#1735.enter(wl_output#953) -[2618095.782] {Default Queue} discarded wl_surface#1735.enter(wl_output#985) -[2618095.787] {Default Queue} discarded wl_surface#1735.enter(wl_output#1017) -[2618095.792] {Default Queue} discarded wl_surface#1735.enter(wl_output#1049) -[2618095.797] {Default Queue} discarded wl_surface#1735.enter(wl_output#1081) -[2618095.802] {Default Queue} discarded wl_surface#1735.enter(wl_output#1113) -[2618095.807] {Default Queue} discarded wl_surface#1735.enter(wl_output#1145) -[2618095.812] {Default Queue} discarded wl_surface#1735.enter(wl_output#1177) -[2618095.817] {Default Queue} discarded wl_surface#1735.enter(wl_output#1209) -[2618095.821] {Default Queue} discarded wl_surface#1735.enter(wl_output#1241) -[2618095.827] {Default Queue} discarded wl_surface#1735.enter(wl_output#1273) -[2618095.832] {Default Queue} discarded wl_surface#1735.enter(wl_output#1305) -[2618095.836] {Default Queue} discarded wl_surface#1735.enter(wl_output#1337) -[2618095.841] {Default Queue} discarded wl_surface#1735.enter(wl_output#1369) -[2618095.846] {Default Queue} discarded wl_surface#1735.enter(wl_output#1401) -[2618095.851] {Default Queue} discarded wl_surface#1735.enter(wl_output#1433) -[2618095.856] {Default Queue} discarded wl_surface#1735.enter(wl_output#1465) -[2618095.862] {Default Queue} discarded wl_surface#1735.enter(wl_output#1497) -[2618095.867] {Default Queue} discarded wl_surface#1735.enter(wl_output#1529) -[2618095.881] {Default Queue} discarded wl_surface#1735.enter(wl_output#1561) -[2618095.885] {Default Queue} discarded wl_surface#1735.enter(wl_output#1593) -[2618095.889] {Default Queue} discarded wl_surface#1735.enter(wl_output#1625) -[2618095.894] {Default Queue} discarded wl_surface#1735.enter(wl_output#1657) -[2618095.898] {Default Queue} discarded wl_surface#1735.enter(wl_output#1689) -[2618095.902] {Default Queue} discarded wl_surface#1735.enter(wl_output#1721) -[2618095.906] {Default Queue} discarded wl_surface#1735.enter(wl_output#1753) -[2618095.910] {Default Queue} -> wl_compositor#876.create_surface(new id wl_surface#1772) -[2618095.914] {Default Queue} -> wl_subcompositor#1773.get_subsurface(new id wl_subsurface#1786, wl_surface#1772, wl_surface#871) -[2618095.922] {Default Queue} -> wl_subsurface#1786.set_desync() -[2618095.926] {Default Queue} -> wl_subsurface#1786.set_position(0, 0) -[2618095.931] {Default Queue} -> wl_subsurface#1786.place_above(wl_surface#871) -[2618095.971] {Default Queue} -> wl_shm#1775.create_pool(new id wl_shm_pool#1787, fd 284, 16) -[2618095.978] {Default Queue} -> wl_shm#1775.create_pool(new id wl_shm_pool#1788, fd 285, 16) -[2618095.982] {Default Queue} -> wl_shm_pool#1787.create_buffer(new id wl_buffer#1789, 0, 2, 2, 8, 0) -[2618095.987] {Default Queue} -> wl_shm_pool#1788.create_buffer(new id wl_buffer#1790, 0, 2, 2, 8, 0) -[2618095.995] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) -[2618096.000] {Default Queue} -> wl_surface#1772.commit() -[2618096.005] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) -[2618096.009] {Default Queue} -> wl_surface#1772.commit() -[2618096.015] {Default Queue} -> wl_compositor#1763.create_region(new id wl_region#1791) -[2618096.019] {Default Queue} -> wl_compositor#1763.create_region(new id wl_region#1792) -[2618096.024] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) -[2618096.028] {Default Queue} -> wl_region#1791.add(0, 0, 0, 0) -[2618096.032] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618096.037] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618096.041] {Default Queue} -> wl_surface#1772.damage(0, 0, 2, 2) -[2618096.045] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) -[2618096.052] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) -[2618096.057] {Default Queue} -> wl_surface#1772.commit() -[2618096.089] {Default Queue} -> wl_shm#1777.create_pool(new id wl_shm_pool#1793, fd 288, 640) -[2618096.099] {Default Queue} -> wl_shm#1777.create_pool(new id wl_shm_pool#1794, fd 289, 640) -[2618096.106] {Default Queue} -> wl_shm_pool#1793.create_buffer(new id wl_buffer#1795, 0, 10, 16, 40, 0) -[2618096.110] {Default Queue} -> wl_shm_pool#1794.create_buffer(new id wl_buffer#1796, 0, 10, 16, 40, 0) -[2618096.117] {Default Queue} -> wl_compositor#1763.create_surface(new id wl_surface#1797) -[2618096.121] {Default Queue} -> wl_surface#1797.attach(wl_buffer#1795, 0, 0) -[2618096.126] {Default Queue} -> wl_surface#1797.commit() -[2618096.131] {Default Queue} -> wl_surface#1797.attach(wl_buffer#1795, 0, 0) -[2618096.136] {Default Queue} -> wl_surface#1797.commit() -[2618096.140] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) -[2618096.145] {Default Queue} -> wl_surface#1772.damage(0, 0, 2, 2) -[2618096.150] {Default Queue} -> wl_surface#1772.damage(0, 0, 2, 2) -[2618096.157] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1798) -[2618096.162] {Default Queue} -> wl_display#1.sync(new id wl_callback#1799) -[2618099.213] {Display Queue} wl_display#1.delete_id(1799) -[2618099.223] {Default Queue} wl_keyboard#1765.keymap(1, fd 284, 68213) -[2618099.229] {Default Queue} wl_keyboard#1765.enter(566, wl_surface#19, array[0]) -[2618099.235] {Default Queue} wl_keyboard#1765.modifiers(566, 0, 0, 16, 0) -[2618099.241] {Default Queue} discarded wl_shm#1775.format(875709016) -[2618099.246] {Default Queue} discarded wl_shm#1775.format(1) -[2618099.251] {Default Queue} discarded wl_shm#1775.format(0) -[2618099.256] {Default Queue} discarded wl_shm#1775.format(875708993) -[2618099.261] {Default Queue} discarded wl_shm#1776.format(875709016) -[2618099.266] {Default Queue} discarded wl_shm#1776.format(1) -[2618099.271] {Default Queue} discarded wl_shm#1776.format(0) -[2618099.275] {Default Queue} discarded wl_shm#1776.format(875708993) -[2618099.280] {Default Queue} discarded wl_shm#1777.format(875709016) -[2618099.286] {Default Queue} discarded wl_shm#1777.format(1) -[2618099.291] {Default Queue} discarded wl_shm#1777.format(0) -[2618099.295] {Default Queue} discarded wl_shm#1777.format(875708993) -[2618099.300] {Default Queue} wl_seat#1784.capabilities(7) -[2618099.306] {Default Queue} -> wl_seat#1784.get_keyboard(new id wl_keyboard#1800) -[2618099.311] {Default Queue} -> wl_seat#1784.get_pointer(new id wl_pointer#1801) -[2618099.317] {Default Queue} -> wl_data_device_manager#1780.get_data_device(new id wl_data_device#1802, wl_seat#1784) -[2618099.323] {Default Queue} -> zwp_primary_selection_device_manager_v1#1782.get_device(new id zwp_primary_selection_device_v1#1803, wl_seat#1784) -[2618099.333] {Default Queue} wl_output#1785.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618099.339] {Default Queue} wl_output#1785.mode(3, 1280, 800, 60000) -[2618099.344] {Default Queue} discarded wl_surface#3.enter(wl_output#1785) -[2618099.349] {Default Queue} discarded wl_surface#999.enter(wl_output#1785) -[2618099.354] {Default Queue} discarded wl_surface#1191.enter(wl_output#1785) -[2618099.359] {Default Queue} discarded wl_surface#1159.enter(wl_output#1785) -[2618099.364] {Default Queue} discarded wl_surface#1703.enter(wl_output#1785) -[2618099.369] {Default Queue} discarded wl_surface#423.enter(wl_output#1785) -[2618099.374] {Default Queue} discarded wl_surface#1447.enter(wl_output#1785) -[2618099.379] {Default Queue} discarded wl_surface#1639.enter(wl_output#1785) -[2618099.383] {Default Queue} discarded wl_surface#1319.enter(wl_output#1785) -[2618099.388] {Default Queue} discarded wl_surface#1127.enter(wl_output#1785) -[2618099.393] {Default Queue} discarded wl_surface#1063.enter(wl_output#1785) -[2618099.398] {Default Queue} discarded wl_surface#455.enter(wl_output#1785) -[2618099.403] {Default Queue} discarded wl_surface#1575.enter(wl_output#1785) -[2618099.408] {Default Queue} discarded wl_surface#1415.enter(wl_output#1785) -[2618099.413] {Default Queue} discarded wl_surface#903.enter(wl_output#1785) -[2618099.418] {Default Queue} discarded wl_surface#775.enter(wl_output#1785) -[2618099.429] {Default Queue} discarded wl_surface#1543.enter(wl_output#1785) -[2618099.437] {Default Queue} discarded wl_surface#135.enter(wl_output#1785) -[2618099.442] {Default Queue} discarded wl_surface#1287.enter(wl_output#1785) -[2618099.447] {Default Queue} discarded wl_surface#1031.enter(wl_output#1785) -[2618099.452] {Default Queue} discarded wl_surface#615.enter(wl_output#1785) -[2618099.457] {Default Queue} discarded wl_surface#231.enter(wl_output#1785) -[2618099.462] {Default Queue} discarded wl_surface#359.enter(wl_output#1785) -[2618099.467] {Default Queue} discarded wl_surface#583.enter(wl_output#1785) -[2618099.472] {Default Queue} discarded wl_surface#743.enter(wl_output#1785) -[2618099.478] {Default Queue} discarded wl_surface#967.enter(wl_output#1785) -[2618099.483] {Default Queue} discarded wl_surface#103.enter(wl_output#1785) -[2618099.487] {Default Queue} discarded wl_surface#327.enter(wl_output#1785) -[2618099.492] {Default Queue} discarded wl_surface#43.enter(wl_output#1785) -[2618099.497] {Default Queue} discarded wl_surface#807.enter(wl_output#1785) -[2618099.502] {Default Queue} discarded wl_surface#19.enter(wl_output#1785) -[2618099.507] {Default Queue} discarded wl_surface#1511.enter(wl_output#1785) -[2618099.512] {Default Queue} discarded wl_surface#199.enter(wl_output#1785) -[2618099.517] {Default Queue} discarded wl_surface#391.enter(wl_output#1785) -[2618099.522] {Default Queue} discarded wl_surface#935.enter(wl_output#1785) -[2618099.527] {Default Queue} discarded wl_surface#1671.enter(wl_output#1785) -[2618099.532] {Default Queue} discarded wl_surface#1351.enter(wl_output#1785) -[2618099.537] {Default Queue} discarded wl_surface#711.enter(wl_output#1785) -[2618099.542] {Default Queue} discarded wl_surface#1223.enter(wl_output#1785) -[2618099.547] {Default Queue} discarded wl_surface#871.enter(wl_output#1785) -[2618099.552] {Default Queue} discarded wl_surface#263.enter(wl_output#1785) -[2618099.557] {Default Queue} discarded wl_surface#551.enter(wl_output#1785) -[2618099.561] {Default Queue} discarded wl_surface#1735.enter(wl_output#1785) -[2618099.566] {Default Queue} discarded wl_surface#1479.enter(wl_output#1785) -[2618099.571] {Default Queue} discarded wl_surface#647.enter(wl_output#1785) -[2618099.577] {Default Queue} discarded wl_surface#71.enter(wl_output#1785) -[2618099.582] {Default Queue} discarded wl_surface#839.enter(wl_output#1785) -[2618099.587] {Default Queue} discarded wl_surface#1607.enter(wl_output#1785) -[2618099.591] {Default Queue} discarded wl_surface#1095.enter(wl_output#1785) -[2618099.597] {Default Queue} discarded wl_surface#1383.enter(wl_output#1785) -[2618099.602] {Default Queue} discarded wl_surface#487.enter(wl_output#1785) -[2618099.607] {Default Queue} discarded wl_surface#519.enter(wl_output#1785) -[2618099.612] {Default Queue} discarded wl_surface#295.enter(wl_output#1785) -[2618099.617] {Default Queue} discarded wl_surface#167.enter(wl_output#1785) -[2618099.622] {Default Queue} discarded wl_surface#1255.enter(wl_output#1785) -[2618099.627] {Default Queue} discarded wl_surface#679.enter(wl_output#1785) -[2618099.632] {Default Queue} wl_registry#1798.global(1, "wl_compositor", 6) -[2618099.638] {Default Queue} -> wl_registry#1798.bind(1, "wl_compositor", 1, new id [unknown]#1804) -[2618099.644] {Default Queue} wl_registry#1798.global(2, "wl_subcompositor", 1) -[2618099.650] {Default Queue} -> wl_registry#1798.bind(2, "wl_subcompositor", 1, new id [unknown]#1805) -[2618099.656] {Default Queue} wl_registry#1798.global(3, "xdg_wm_base", 6) -[2618099.662] {Default Queue} -> wl_registry#1798.bind(3, "xdg_wm_base", 1, new id [unknown]#1806) -[2618099.667] {Default Queue} wl_registry#1798.global(6, "zwlr_layer_shell_v1", 5) -[2618099.673] {Default Queue} wl_registry#1798.global(7, "ext_session_lock_manager_v1", 1) -[2618099.678] {Default Queue} wl_registry#1798.global(8, "wl_shm", 2) -[2618099.687] {Default Queue} -> wl_registry#1798.bind(8, "wl_shm", 1, new id [unknown]#1807) -[2618099.692] {Default Queue} -> wl_registry#1798.bind(8, "wl_shm", 1, new id [unknown]#1808) -[2618099.698] {Default Queue} -> wl_registry#1798.bind(8, "wl_shm", 1, new id [unknown]#1809) -[2618099.707] {Default Queue} wl_registry#1798.global(9, "zxdg_output_manager_v1", 3) -[2618099.714] {Default Queue} wl_registry#1798.global(10, "wp_fractional_scale_manager_v1", 1) -[2618099.719] {Default Queue} wl_registry#1798.global(11, "zwp_tablet_manager_v2", 1) -[2618099.725] {Default Queue} wl_registry#1798.global(12, "zwp_pointer_gestures_v1", 3) -[2618099.730] {Default Queue} wl_registry#1798.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618099.736] {Default Queue} -> wl_registry#1798.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1810) -[2618099.741] {Default Queue} wl_registry#1798.global(14, "zwp_pointer_constraints_v1", 1) -[2618099.747] {Default Queue} -> wl_registry#1798.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1811) -[2618099.752] {Default Queue} wl_registry#1798.global(15, "ext_idle_notifier_v1", 2) -[2618099.759] {Default Queue} wl_registry#1798.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618099.764] {Default Queue} wl_registry#1798.global(17, "wl_data_device_manager", 3) -[2618099.770] {Default Queue} -> wl_registry#1798.bind(17, "wl_data_device_manager", 2, new id [unknown]#1812) -[2618099.776] {Default Queue} -> wl_data_device_manager#1812.create_data_source(new id wl_data_source#1813) -[2618099.781] {Default Queue} -> wl_data_source#1813.offer("text/plain") -[2618099.786] {Default Queue} -> wl_data_source#1813.offer("text/plain;charset=utf-8") -[2618099.791] {Default Queue} -> wl_data_source#1813.offer("TEXT") -[2618099.797] {Default Queue} -> wl_data_source#1813.offer("STRING") -[2618099.802] {Default Queue} -> wl_data_source#1813.offer("UTF8_STRING") -[2618099.807] {Default Queue} wl_registry#1798.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618099.813] {Default Queue} -> wl_registry#1798.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1814) -[2618099.823] {Default Queue} -> zwp_primary_selection_device_manager_v1#1814.create_source(new id zwp_primary_selection_source_v1#1815) -[2618099.833] {Default Queue} -> zwp_primary_selection_source_v1#1815.offer("text/plain") -[2618099.838] {Default Queue} -> zwp_primary_selection_source_v1#1815.offer("text/plain;charset=utf-8") -[2618099.843] {Default Queue} -> zwp_primary_selection_source_v1#1815.offer("TEXT") -[2618099.848] {Default Queue} -> zwp_primary_selection_source_v1#1815.offer("STRING") -[2618099.853] {Default Queue} -> zwp_primary_selection_source_v1#1815.offer("UTF8_STRING") -[2618099.858] {Default Queue} wl_registry#1798.global(19, "zwlr_data_control_manager_v1", 2) -[2618099.869] {Default Queue} wl_registry#1798.global(20, "ext_data_control_manager_v1", 1) -[2618099.875] {Default Queue} wl_registry#1798.global(21, "wp_presentation", 2) -[2618099.881] {Default Queue} wl_registry#1798.global(22, "wp_security_context_manager_v1", 1) -[2618099.886] {Default Queue} wl_registry#1798.global(23, "zwp_text_input_manager_v3", 1) -[2618099.891] {Default Queue} wl_registry#1798.global(24, "zwp_input_method_manager_v2", 1) -[2618099.895] {Default Queue} wl_registry#1798.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618099.899] {Default Queue} wl_registry#1798.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618099.904] {Default Queue} wl_registry#1798.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618099.908] {Default Queue} wl_registry#1798.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618099.913] {Default Queue} wl_registry#1798.global(29, "ext_workspace_manager_v1", 1) -[2618099.917] {Default Queue} wl_registry#1798.global(30, "zwlr_output_manager_v1", 4) -[2618099.922] {Default Queue} wl_registry#1798.global(31, "zwlr_screencopy_manager_v1", 3) -[2618099.926] {Default Queue} wl_registry#1798.global(32, "wp_viewporter", 1) -[2618099.930] {Default Queue} wl_registry#1798.global(33, "zxdg_exporter_v2", 1) -[2618099.935] {Default Queue} wl_registry#1798.global(34, "zxdg_importer_v2", 1) -[2618099.939] {Default Queue} wl_registry#1798.global(36, "xdg_activation_v1", 1) -[2618099.943] {Default Queue} wl_registry#1798.global(37, "mutter_x11_interop", 1) -[2618099.957] {Default Queue} wl_registry#1798.global(38, "wl_seat", 9) -[2618099.963] {Default Queue} -> wl_registry#1798.bind(38, "wl_seat", 1, new id [unknown]#1816) -[2618099.968] {Default Queue} wl_registry#1798.global(39, "wp_cursor_shape_manager_v1", 2) -[2618099.972] {Default Queue} wl_registry#1798.global(40, "wl_output", 4) -[2618099.976] {Default Queue} -> wl_registry#1798.bind(40, "wl_output", 1, new id [unknown]#1817) -[2618099.981] {Default Queue} wl_callback#1799.done(0) -[2618099.985] {Default Queue} discarded wl_surface#1772.enter(wl_output#18) -[2618099.989] {Default Queue} discarded wl_surface#1772.enter(wl_output#57) -[2618099.993] {Default Queue} discarded wl_surface#1772.enter(wl_output#89) -[2618099.997] {Default Queue} discarded wl_surface#1772.enter(wl_output#121) -[2618100.001] {Default Queue} discarded wl_surface#1772.enter(wl_output#153) -[2618100.005] {Default Queue} discarded wl_surface#1772.enter(wl_output#185) -[2618100.009] {Default Queue} discarded wl_surface#1772.enter(wl_output#217) -[2618100.013] {Default Queue} discarded wl_surface#1772.enter(wl_output#249) -[2618100.017] {Default Queue} discarded wl_surface#1772.enter(wl_output#281) -[2618100.021] {Default Queue} discarded wl_surface#1772.enter(wl_output#313) -[2618100.024] {Default Queue} discarded wl_surface#1772.enter(wl_output#345) -[2618100.028] {Default Queue} discarded wl_surface#1772.enter(wl_output#377) -[2618100.033] {Default Queue} discarded wl_surface#1772.enter(wl_output#409) -[2618100.037] {Default Queue} discarded wl_surface#1772.enter(wl_output#441) -[2618100.041] {Default Queue} discarded wl_surface#1772.enter(wl_output#473) -[2618100.045] {Default Queue} discarded wl_surface#1772.enter(wl_output#505) -[2618100.049] {Default Queue} discarded wl_surface#1772.enter(wl_output#537) -[2618100.053] {Default Queue} discarded wl_surface#1772.enter(wl_output#569) -[2618100.057] {Default Queue} discarded wl_surface#1772.enter(wl_output#601) -[2618100.061] {Default Queue} discarded wl_surface#1772.enter(wl_output#633) -[2618100.065] {Default Queue} discarded wl_surface#1772.enter(wl_output#665) -[2618100.069] {Default Queue} discarded wl_surface#1772.enter(wl_output#697) -[2618100.073] {Default Queue} discarded wl_surface#1772.enter(wl_output#729) -[2618100.077] {Default Queue} discarded wl_surface#1772.enter(wl_output#761) -[2618100.081] {Default Queue} discarded wl_surface#1772.enter(wl_output#793) -[2618100.085] {Default Queue} discarded wl_surface#1772.enter(wl_output#825) -[2618100.089] {Default Queue} discarded wl_surface#1772.enter(wl_output#857) -[2618100.093] {Default Queue} discarded wl_surface#1772.enter(wl_output#889) -[2618100.097] {Default Queue} discarded wl_surface#1772.enter(wl_output#921) -[2618100.101] {Default Queue} discarded wl_surface#1772.enter(wl_output#953) -[2618100.105] {Default Queue} discarded wl_surface#1772.enter(wl_output#985) -[2618100.109] {Default Queue} discarded wl_surface#1772.enter(wl_output#1017) -[2618100.113] {Default Queue} discarded wl_surface#1772.enter(wl_output#1049) -[2618100.117] {Default Queue} discarded wl_surface#1772.enter(wl_output#1081) -[2618100.121] {Default Queue} discarded wl_surface#1772.enter(wl_output#1113) -[2618100.125] {Default Queue} discarded wl_surface#1772.enter(wl_output#1145) -[2618100.129] {Default Queue} discarded wl_surface#1772.enter(wl_output#1177) -[2618100.133] {Default Queue} discarded wl_surface#1772.enter(wl_output#1209) -[2618100.137] {Default Queue} discarded wl_surface#1772.enter(wl_output#1241) -[2618100.141] {Default Queue} discarded wl_surface#1772.enter(wl_output#1273) -[2618100.145] {Default Queue} discarded wl_surface#1772.enter(wl_output#1305) -[2618100.149] {Default Queue} discarded wl_surface#1772.enter(wl_output#1337) -[2618100.153] {Default Queue} discarded wl_surface#1772.enter(wl_output#1369) -[2618100.157] {Default Queue} discarded wl_surface#1772.enter(wl_output#1401) -[2618100.161] {Default Queue} discarded wl_surface#1772.enter(wl_output#1433) -[2618100.164] {Default Queue} discarded wl_surface#1772.enter(wl_output#1465) -[2618100.171] {Default Queue} discarded wl_surface#1772.enter(wl_output#1497) -[2618100.177] {Default Queue} discarded wl_surface#1772.enter(wl_output#1529) -[2618100.180] {Default Queue} discarded wl_surface#1772.enter(wl_output#1561) -[2618100.184] {Default Queue} discarded wl_surface#1772.enter(wl_output#1593) -[2618100.189] {Default Queue} discarded wl_surface#1772.enter(wl_output#1625) -[2618100.193] {Default Queue} discarded wl_surface#1772.enter(wl_output#1657) -[2618100.196] {Default Queue} discarded wl_surface#1772.enter(wl_output#1689) -[2618100.200] {Default Queue} discarded wl_surface#1772.enter(wl_output#1721) -[2618100.204] {Default Queue} discarded wl_surface#1772.enter(wl_output#1753) -[2618100.208] {Default Queue} discarded wl_surface#1772.enter(wl_output#1785) -[2618100.212] {Default Queue} -> wl_compositor#1763.create_surface(new id wl_surface#1799) -[2618100.217] {Default Queue} -> wl_subcompositor#1805.get_subsurface(new id wl_subsurface#1818, wl_surface#1799, wl_surface#1772) -[2618100.225] {Default Queue} -> wl_subsurface#1818.set_desync() -[2618100.229] {Default Queue} -> wl_subsurface#1818.set_position(0, 0) -[2618100.233] {Default Queue} -> wl_subsurface#1818.place_above(wl_surface#1772) -[2618100.274] {Default Queue} -> wl_shm#1807.create_pool(new id wl_shm_pool#1819, fd 289, 16) -[2618100.281] {Default Queue} -> wl_shm#1807.create_pool(new id wl_shm_pool#1820, fd 290, 16) -[2618100.285] {Default Queue} -> wl_shm_pool#1819.create_buffer(new id wl_buffer#1821, 0, 2, 2, 8, 0) -[2618100.290] {Default Queue} -> wl_shm_pool#1820.create_buffer(new id wl_buffer#1822, 0, 2, 2, 8, 0) -[2618100.297] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1821, 0, 0) -[2618100.302] {Default Queue} -> wl_surface#1799.commit() -[2618100.307] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1821, 0, 0) -[2618100.312] {Default Queue} -> wl_surface#1799.commit() -[2618100.316] {Default Queue} -> wl_compositor#1804.create_region(new id wl_region#1823) -[2618100.320] {Default Queue} -> wl_compositor#1804.create_region(new id wl_region#1824) -[2618100.324] {Default Queue} -> wl_region#1823.subtract(0, 0, 2, 2) -[2618100.328] {Default Queue} -> wl_region#1823.add(0, 0, 0, 0) -[2618100.333] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) -[2618100.337] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) -[2618100.341] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) -[2618100.345] {Default Queue} -> wl_surface#1772.damage(0, 0, 2, 2) -[2618100.352] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1821, 0, 0) -[2618100.357] {Default Queue} -> wl_surface#1799.commit() -[2618100.391] {Default Queue} -> wl_shm#1809.create_pool(new id wl_shm_pool#1825, fd 293, 640) -[2618100.397] {Default Queue} -> wl_shm#1809.create_pool(new id wl_shm_pool#1826, fd 294, 640) -[2618100.401] {Default Queue} -> wl_shm_pool#1825.create_buffer(new id wl_buffer#1827, 0, 10, 16, 40, 0) -[2618100.406] {Default Queue} -> wl_shm_pool#1826.create_buffer(new id wl_buffer#1828, 0, 10, 16, 40, 0) -[2618100.413] {Default Queue} -> wl_compositor#1804.create_surface(new id wl_surface#1829) -[2618100.417] {Default Queue} -> wl_surface#1829.attach(wl_buffer#1827, 0, 0) -[2618100.421] {Default Queue} -> wl_surface#1829.commit() -[2618100.426] {Default Queue} -> wl_surface#1829.attach(wl_buffer#1827, 0, 0) -[2618100.430] {Default Queue} -> wl_surface#1829.commit() -[2618100.436] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) -[2618100.443] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1830) -[2618100.447] {Default Queue} -> wl_display#1.sync(new id wl_callback#1831) -[2618104.412] {Display Queue} wl_display#1.delete_id(1831) -[2618104.421] {Default Queue} wl_keyboard#1800.keymap(1, fd 289, 68213) -[2618104.427] {Default Queue} wl_keyboard#1800.enter(566, wl_surface#19, array[0]) -[2618104.434] {Default Queue} wl_keyboard#1800.modifiers(566, 0, 0, 16, 0) -[2618104.439] {Default Queue} discarded wl_shm#1807.format(875709016) -[2618104.444] {Default Queue} discarded wl_shm#1807.format(1) -[2618104.449] {Default Queue} discarded wl_shm#1807.format(0) -[2618104.459] {Default Queue} discarded wl_shm#1807.format(875708993) -[2618104.466] {Default Queue} discarded wl_shm#1808.format(875709016) -[2618104.471] {Default Queue} discarded wl_shm#1808.format(1) -[2618104.476] {Default Queue} discarded wl_shm#1808.format(0) -[2618104.481] {Default Queue} discarded wl_shm#1808.format(875708993) -[2618104.486] {Default Queue} discarded wl_shm#1809.format(875709016) -[2618104.491] {Default Queue} discarded wl_shm#1809.format(1) -[2618104.496] {Default Queue} discarded wl_shm#1809.format(0) -[2618104.501] {Default Queue} discarded wl_shm#1809.format(875708993) -[2618104.505] {Default Queue} wl_seat#1816.capabilities(7) -[2618104.511] {Default Queue} -> wl_seat#1816.get_keyboard(new id wl_keyboard#1832) -[2618104.516] {Default Queue} -> wl_seat#1816.get_pointer(new id wl_pointer#1833) -[2618104.522] {Default Queue} -> wl_data_device_manager#1812.get_data_device(new id wl_data_device#1834, wl_seat#1816) -[2618104.528] {Default Queue} -> zwp_primary_selection_device_manager_v1#1814.get_device(new id zwp_primary_selection_device_v1#1835, wl_seat#1816) -[2618104.537] {Default Queue} wl_output#1817.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618104.543] {Default Queue} wl_output#1817.mode(3, 1280, 800, 60000) -[2618104.549] {Default Queue} discarded wl_surface#3.enter(wl_output#1817) -[2618104.554] {Default Queue} discarded wl_surface#999.enter(wl_output#1817) -[2618104.559] {Default Queue} discarded wl_surface#1191.enter(wl_output#1817) -[2618104.564] {Default Queue} discarded wl_surface#1159.enter(wl_output#1817) -[2618104.568] {Default Queue} discarded wl_surface#1703.enter(wl_output#1817) -[2618104.573] {Default Queue} discarded wl_surface#423.enter(wl_output#1817) -[2618104.578] {Default Queue} discarded wl_surface#1447.enter(wl_output#1817) -[2618104.583] {Default Queue} discarded wl_surface#1639.enter(wl_output#1817) -[2618104.588] {Default Queue} discarded wl_surface#1319.enter(wl_output#1817) -[2618104.592] {Default Queue} discarded wl_surface#1127.enter(wl_output#1817) -[2618104.597] {Default Queue} discarded wl_surface#1063.enter(wl_output#1817) -[2618104.602] {Default Queue} discarded wl_surface#455.enter(wl_output#1817) -[2618104.607] {Default Queue} discarded wl_surface#1575.enter(wl_output#1817) -[2618104.611] {Default Queue} discarded wl_surface#1415.enter(wl_output#1817) -[2618104.617] {Default Queue} discarded wl_surface#903.enter(wl_output#1817) -[2618104.621] {Default Queue} discarded wl_surface#775.enter(wl_output#1817) -[2618104.626] {Default Queue} discarded wl_surface#1543.enter(wl_output#1817) -[2618104.631] {Default Queue} discarded wl_surface#135.enter(wl_output#1817) -[2618104.636] {Default Queue} discarded wl_surface#1287.enter(wl_output#1817) -[2618104.640] {Default Queue} discarded wl_surface#1031.enter(wl_output#1817) -[2618104.645] {Default Queue} discarded wl_surface#615.enter(wl_output#1817) -[2618104.650] {Default Queue} discarded wl_surface#231.enter(wl_output#1817) -[2618104.655] {Default Queue} discarded wl_surface#359.enter(wl_output#1817) -[2618104.660] {Default Queue} discarded wl_surface#583.enter(wl_output#1817) -[2618104.664] {Default Queue} discarded wl_surface#743.enter(wl_output#1817) -[2618104.669] {Default Queue} discarded wl_surface#967.enter(wl_output#1817) -[2618104.674] {Default Queue} discarded wl_surface#103.enter(wl_output#1817) -[2618104.679] {Default Queue} discarded wl_surface#327.enter(wl_output#1817) -[2618104.684] {Default Queue} discarded wl_surface#43.enter(wl_output#1817) -[2618104.689] {Default Queue} discarded wl_surface#807.enter(wl_output#1817) -[2618104.694] {Default Queue} discarded wl_surface#19.enter(wl_output#1817) -[2618104.699] {Default Queue} discarded wl_surface#1511.enter(wl_output#1817) -[2618104.704] {Default Queue} discarded wl_surface#199.enter(wl_output#1817) -[2618104.709] {Default Queue} discarded wl_surface#391.enter(wl_output#1817) -[2618104.714] {Default Queue} discarded wl_surface#935.enter(wl_output#1817) -[2618104.719] {Default Queue} discarded wl_surface#1671.enter(wl_output#1817) -[2618104.723] {Default Queue} discarded wl_surface#1351.enter(wl_output#1817) -[2618104.736] {Default Queue} discarded wl_surface#711.enter(wl_output#1817) -[2618104.742] {Default Queue} discarded wl_surface#1223.enter(wl_output#1817) -[2618104.747] {Default Queue} discarded wl_surface#871.enter(wl_output#1817) -[2618104.752] {Default Queue} discarded wl_surface#263.enter(wl_output#1817) -[2618104.757] {Default Queue} discarded wl_surface#551.enter(wl_output#1817) -[2618104.762] {Default Queue} discarded wl_surface#1735.enter(wl_output#1817) -[2618104.767] {Default Queue} discarded wl_surface#1479.enter(wl_output#1817) -[2618104.772] {Default Queue} discarded wl_surface#1772.enter(wl_output#1817) -[2618104.776] {Default Queue} discarded wl_surface#647.enter(wl_output#1817) -[2618104.781] {Default Queue} discarded wl_surface#71.enter(wl_output#1817) -[2618104.786] {Default Queue} discarded wl_surface#839.enter(wl_output#1817) -[2618104.791] {Default Queue} discarded wl_surface#1607.enter(wl_output#1817) -[2618104.796] {Default Queue} discarded wl_surface#1095.enter(wl_output#1817) -[2618104.801] {Default Queue} discarded wl_surface#1383.enter(wl_output#1817) -[2618104.806] {Default Queue} discarded wl_surface#487.enter(wl_output#1817) -[2618104.810] {Default Queue} discarded wl_surface#519.enter(wl_output#1817) -[2618104.816] {Default Queue} discarded wl_surface#295.enter(wl_output#1817) -[2618104.820] {Default Queue} discarded wl_surface#167.enter(wl_output#1817) -[2618104.825] {Default Queue} discarded wl_surface#1255.enter(wl_output#1817) -[2618104.830] {Default Queue} discarded wl_surface#679.enter(wl_output#1817) -[2618104.835] {Default Queue} wl_registry#1830.global(1, "wl_compositor", 6) -[2618104.841] {Default Queue} -> wl_registry#1830.bind(1, "wl_compositor", 1, new id [unknown]#1836) -[2618104.847] {Default Queue} wl_registry#1830.global(2, "wl_subcompositor", 1) -[2618104.853] {Default Queue} -> wl_registry#1830.bind(2, "wl_subcompositor", 1, new id [unknown]#1837) -[2618104.859] {Default Queue} wl_registry#1830.global(3, "xdg_wm_base", 6) -[2618104.869] {Default Queue} -> wl_registry#1830.bind(3, "xdg_wm_base", 1, new id [unknown]#1838) -[2618104.877] {Default Queue} wl_registry#1830.global(6, "zwlr_layer_shell_v1", 5) -[2618104.883] {Default Queue} wl_registry#1830.global(7, "ext_session_lock_manager_v1", 1) -[2618104.888] {Default Queue} wl_registry#1830.global(8, "wl_shm", 2) -[2618104.894] {Default Queue} -> wl_registry#1830.bind(8, "wl_shm", 1, new id [unknown]#1839) -[2618104.899] {Default Queue} -> wl_registry#1830.bind(8, "wl_shm", 1, new id [unknown]#1840) -[2618104.903] {Default Queue} -> wl_registry#1830.bind(8, "wl_shm", 1, new id [unknown]#1841) -[2618104.907] {Default Queue} wl_registry#1830.global(9, "zxdg_output_manager_v1", 3) -[2618104.911] {Default Queue} wl_registry#1830.global(10, "wp_fractional_scale_manager_v1", 1) -[2618104.916] {Default Queue} wl_registry#1830.global(11, "zwp_tablet_manager_v2", 1) -[2618104.920] {Default Queue} wl_registry#1830.global(12, "zwp_pointer_gestures_v1", 3) -[2618104.924] {Default Queue} wl_registry#1830.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618104.929] {Default Queue} -> wl_registry#1830.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1842) -[2618104.933] {Default Queue} wl_registry#1830.global(14, "zwp_pointer_constraints_v1", 1) -[2618104.938] {Default Queue} -> wl_registry#1830.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1843) -[2618104.942] {Default Queue} wl_registry#1830.global(15, "ext_idle_notifier_v1", 2) -[2618104.946] {Default Queue} wl_registry#1830.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618104.951] {Default Queue} wl_registry#1830.global(17, "wl_data_device_manager", 3) -[2618104.956] {Default Queue} -> wl_registry#1830.bind(17, "wl_data_device_manager", 2, new id [unknown]#1844) -[2618104.960] {Default Queue} -> wl_data_device_manager#1844.create_data_source(new id wl_data_source#1845) -[2618104.965] {Default Queue} -> wl_data_source#1845.offer("text/plain") -[2618104.969] {Default Queue} -> wl_data_source#1845.offer("text/plain;charset=utf-8") -[2618104.976] {Default Queue} -> wl_data_source#1845.offer("TEXT") -[2618104.981] {Default Queue} -> wl_data_source#1845.offer("STRING") -[2618104.986] {Default Queue} -> wl_data_source#1845.offer("UTF8_STRING") -[2618104.990] {Default Queue} wl_registry#1830.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618104.994] {Default Queue} -> wl_registry#1830.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1846) -[2618105.002] {Default Queue} -> zwp_primary_selection_device_manager_v1#1846.create_source(new id zwp_primary_selection_source_v1#1847) -[2618105.010] {Default Queue} -> zwp_primary_selection_source_v1#1847.offer("text/plain") -[2618105.014] {Default Queue} -> zwp_primary_selection_source_v1#1847.offer("text/plain;charset=utf-8") -[2618105.018] {Default Queue} -> zwp_primary_selection_source_v1#1847.offer("TEXT") -[2618105.022] {Default Queue} -> zwp_primary_selection_source_v1#1847.offer("STRING") -[2618105.026] {Default Queue} -> zwp_primary_selection_source_v1#1847.offer("UTF8_STRING") -[2618105.030] {Default Queue} wl_registry#1830.global(19, "zwlr_data_control_manager_v1", 2) -[2618105.035] {Default Queue} wl_registry#1830.global(20, "ext_data_control_manager_v1", 1) -[2618105.039] {Default Queue} wl_registry#1830.global(21, "wp_presentation", 2) -[2618105.043] {Default Queue} wl_registry#1830.global(22, "wp_security_context_manager_v1", 1) -[2618105.048] {Default Queue} wl_registry#1830.global(23, "zwp_text_input_manager_v3", 1) -[2618105.052] {Default Queue} wl_registry#1830.global(24, "zwp_input_method_manager_v2", 1) -[2618105.056] {Default Queue} wl_registry#1830.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618105.061] {Default Queue} wl_registry#1830.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618105.065] {Default Queue} wl_registry#1830.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618105.069] {Default Queue} wl_registry#1830.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618105.074] {Default Queue} wl_registry#1830.global(29, "ext_workspace_manager_v1", 1) -[2618105.078] {Default Queue} wl_registry#1830.global(30, "zwlr_output_manager_v1", 4) -[2618105.082] {Default Queue} wl_registry#1830.global(31, "zwlr_screencopy_manager_v1", 3) -[2618105.087] {Default Queue} wl_registry#1830.global(32, "wp_viewporter", 1) -[2618105.091] {Default Queue} wl_registry#1830.global(33, "zxdg_exporter_v2", 1) -[2618105.095] {Default Queue} wl_registry#1830.global(34, "zxdg_importer_v2", 1) -[2618105.100] {Default Queue} wl_registry#1830.global(36, "xdg_activation_v1", 1) -[2618105.104] {Default Queue} wl_registry#1830.global(37, "mutter_x11_interop", 1) -[2618105.108] {Default Queue} wl_registry#1830.global(38, "wl_seat", 9) -[2618105.113] {Default Queue} -> wl_registry#1830.bind(38, "wl_seat", 1, new id [unknown]#1848) -[2618105.117] {Default Queue} wl_registry#1830.global(39, "wp_cursor_shape_manager_v1", 2) -[2618105.122] {Default Queue} wl_registry#1830.global(40, "wl_output", 4) -[2618105.127] {Default Queue} -> wl_registry#1830.bind(40, "wl_output", 1, new id [unknown]#1849) -[2618105.131] {Default Queue} wl_callback#1831.done(0) -[2618105.136] {Default Queue} discarded wl_surface#1799.enter(wl_output#18) -[2618105.140] {Default Queue} discarded wl_surface#1799.enter(wl_output#57) -[2618105.144] {Default Queue} discarded wl_surface#1799.enter(wl_output#89) -[2618105.148] {Default Queue} discarded wl_surface#1799.enter(wl_output#121) -[2618105.152] {Default Queue} discarded wl_surface#1799.enter(wl_output#153) -[2618105.156] {Default Queue} discarded wl_surface#1799.enter(wl_output#185) -[2618105.160] {Default Queue} discarded wl_surface#1799.enter(wl_output#217) -[2618105.164] {Default Queue} discarded wl_surface#1799.enter(wl_output#249) -[2618105.168] {Default Queue} discarded wl_surface#1799.enter(wl_output#281) -[2618105.172] {Default Queue} discarded wl_surface#1799.enter(wl_output#313) -[2618105.176] {Default Queue} discarded wl_surface#1799.enter(wl_output#345) -[2618105.180] {Default Queue} discarded wl_surface#1799.enter(wl_output#377) -[2618105.184] {Default Queue} discarded wl_surface#1799.enter(wl_output#409) -[2618105.191] {Default Queue} discarded wl_surface#1799.enter(wl_output#441) -[2618105.196] {Default Queue} discarded wl_surface#1799.enter(wl_output#473) -[2618105.200] {Default Queue} discarded wl_surface#1799.enter(wl_output#505) -[2618105.204] {Default Queue} discarded wl_surface#1799.enter(wl_output#537) -[2618105.208] {Default Queue} discarded wl_surface#1799.enter(wl_output#569) -[2618105.212] {Default Queue} discarded wl_surface#1799.enter(wl_output#601) -[2618105.216] {Default Queue} discarded wl_surface#1799.enter(wl_output#633) -[2618105.220] {Default Queue} discarded wl_surface#1799.enter(wl_output#665) -[2618105.224] {Default Queue} discarded wl_surface#1799.enter(wl_output#697) -[2618105.228] {Default Queue} discarded wl_surface#1799.enter(wl_output#729) -[2618105.232] {Default Queue} discarded wl_surface#1799.enter(wl_output#761) -[2618105.236] {Default Queue} discarded wl_surface#1799.enter(wl_output#793) -[2618105.239] {Default Queue} discarded wl_surface#1799.enter(wl_output#825) -[2618105.244] {Default Queue} discarded wl_surface#1799.enter(wl_output#857) -[2618105.248] {Default Queue} discarded wl_surface#1799.enter(wl_output#889) -[2618105.251] {Default Queue} discarded wl_surface#1799.enter(wl_output#921) -[2618105.255] {Default Queue} discarded wl_surface#1799.enter(wl_output#953) -[2618105.259] {Default Queue} discarded wl_surface#1799.enter(wl_output#985) -[2618105.263] {Default Queue} discarded wl_surface#1799.enter(wl_output#1017) -[2618105.268] {Default Queue} discarded wl_surface#1799.enter(wl_output#1049) -[2618105.271] {Default Queue} discarded wl_surface#1799.enter(wl_output#1081) -[2618105.275] {Default Queue} discarded wl_surface#1799.enter(wl_output#1113) -[2618105.280] {Default Queue} discarded wl_surface#1799.enter(wl_output#1145) -[2618105.284] {Default Queue} discarded wl_surface#1799.enter(wl_output#1177) -[2618105.288] {Default Queue} discarded wl_surface#1799.enter(wl_output#1209) -[2618105.292] {Default Queue} discarded wl_surface#1799.enter(wl_output#1241) -[2618105.296] {Default Queue} discarded wl_surface#1799.enter(wl_output#1273) -[2618105.300] {Default Queue} discarded wl_surface#1799.enter(wl_output#1305) -[2618105.304] {Default Queue} discarded wl_surface#1799.enter(wl_output#1337) -[2618105.308] {Default Queue} discarded wl_surface#1799.enter(wl_output#1369) -[2618105.312] {Default Queue} discarded wl_surface#1799.enter(wl_output#1401) -[2618105.316] {Default Queue} discarded wl_surface#1799.enter(wl_output#1433) -[2618105.320] {Default Queue} discarded wl_surface#1799.enter(wl_output#1465) -[2618105.324] {Default Queue} discarded wl_surface#1799.enter(wl_output#1497) -[2618105.328] {Default Queue} discarded wl_surface#1799.enter(wl_output#1529) -[2618105.333] {Default Queue} discarded wl_surface#1799.enter(wl_output#1561) -[2618105.337] {Default Queue} discarded wl_surface#1799.enter(wl_output#1593) -[2618105.341] {Default Queue} discarded wl_surface#1799.enter(wl_output#1625) -[2618105.345] {Default Queue} discarded wl_surface#1799.enter(wl_output#1657) -[2618105.349] {Default Queue} discarded wl_surface#1799.enter(wl_output#1689) -[2618105.353] {Default Queue} discarded wl_surface#1799.enter(wl_output#1721) -[2618105.357] {Default Queue} discarded wl_surface#1799.enter(wl_output#1753) -[2618105.361] {Default Queue} discarded wl_surface#1799.enter(wl_output#1785) -[2618105.365] {Default Queue} discarded wl_surface#1799.enter(wl_output#1817) -[2618105.369] {Default Queue} -> wl_compositor#1804.create_surface(new id wl_surface#1831) -[2618105.374] {Default Queue} -> wl_subcompositor#1837.get_subsurface(new id wl_subsurface#1850, wl_surface#1831, wl_surface#1799) -[2618105.382] {Default Queue} -> wl_subsurface#1850.set_desync() -[2618105.386] {Default Queue} -> wl_subsurface#1850.set_position(0, 0) -[2618105.391] {Default Queue} -> wl_subsurface#1850.place_above(wl_surface#1799) -[2618105.430] {Default Queue} -> wl_shm#1839.create_pool(new id wl_shm_pool#1851, fd 294, 16) -[2618105.436] {Default Queue} -> wl_shm#1839.create_pool(new id wl_shm_pool#1852, fd 295, 16) -[2618105.444] {Default Queue} -> wl_shm_pool#1851.create_buffer(new id wl_buffer#1853, 0, 2, 2, 8, 0) -[2618105.450] {Default Queue} -> wl_shm_pool#1852.create_buffer(new id wl_buffer#1854, 0, 2, 2, 8, 0) -[2618105.458] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) -[2618105.463] {Default Queue} -> wl_surface#1831.commit() -[2618105.468] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) -[2618105.472] {Default Queue} -> wl_surface#1831.commit() -[2618105.477] {Default Queue} -> wl_compositor#1836.create_region(new id wl_region#1855) -[2618105.481] {Default Queue} -> wl_compositor#1836.create_region(new id wl_region#1856) -[2618105.485] {Default Queue} -> wl_region#1855.subtract(0, 0, 2, 2) -[2618105.489] {Default Queue} -> wl_region#1855.add(0, 0, 0, 0) -[2618105.494] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2618105.498] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2618105.503] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618105.507] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) -[2618105.514] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) -[2618105.518] {Default Queue} -> wl_surface#1831.commit() -[2618105.555] {Default Queue} -> wl_shm#1841.create_pool(new id wl_shm_pool#1857, fd 298, 640) -[2618105.561] {Default Queue} -> wl_shm#1841.create_pool(new id wl_shm_pool#1858, fd 299, 640) -[2618105.566] {Default Queue} -> wl_shm_pool#1857.create_buffer(new id wl_buffer#1859, 0, 10, 16, 40, 0) -[2618105.571] {Default Queue} -> wl_shm_pool#1858.create_buffer(new id wl_buffer#1860, 0, 10, 16, 40, 0) -[2618105.577] {Default Queue} -> wl_compositor#1836.create_surface(new id wl_surface#1861) -[2618105.582] {Default Queue} -> wl_surface#1861.attach(wl_buffer#1859, 0, 0) -[2618105.586] {Default Queue} -> wl_surface#1861.commit() -[2618105.591] {Default Queue} -> wl_surface#1861.attach(wl_buffer#1859, 0, 0) -[2618105.595] {Default Queue} -> wl_surface#1861.commit() -[2618105.600] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) -[2618105.606] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618105.610] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618105.617] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1862) -[2618105.622] {Default Queue} -> wl_display#1.sync(new id wl_callback#1863) -[2618108.999] {Display Queue} wl_display#1.delete_id(1863) -[2618109.009] {Default Queue} wl_keyboard#1832.keymap(1, fd 294, 68213) -[2618109.015] {Default Queue} wl_keyboard#1832.enter(566, wl_surface#19, array[0]) -[2618109.021] {Default Queue} wl_keyboard#1832.modifiers(566, 0, 0, 16, 0) -[2618109.027] {Default Queue} discarded wl_shm#1839.format(875709016) -[2618109.032] {Default Queue} discarded wl_shm#1839.format(1) -[2618109.037] {Default Queue} discarded wl_shm#1839.format(0) -[2618109.042] {Default Queue} discarded wl_shm#1839.format(875708993) -[2618109.047] {Default Queue} discarded wl_shm#1840.format(875709016) -[2618109.051] {Default Queue} discarded wl_shm#1840.format(1) -[2618109.056] {Default Queue} discarded wl_shm#1840.format(0) -[2618109.061] {Default Queue} discarded wl_shm#1840.format(875708993) -[2618109.066] {Default Queue} discarded wl_shm#1841.format(875709016) -[2618109.071] {Default Queue} discarded wl_shm#1841.format(1) -[2618109.076] {Default Queue} discarded wl_shm#1841.format(0) -[2618109.081] {Default Queue} discarded wl_shm#1841.format(875708993) -[2618109.086] {Default Queue} wl_seat#1848.capabilities(7) -[2618109.091] {Default Queue} -> wl_seat#1848.get_keyboard(new id wl_keyboard#1864) -[2618109.096] {Default Queue} -> wl_seat#1848.get_pointer(new id wl_pointer#1865) -[2618109.102] {Default Queue} -> wl_data_device_manager#1844.get_data_device(new id wl_data_device#1866, wl_seat#1848) -[2618109.107] {Default Queue} -> zwp_primary_selection_device_manager_v1#1846.get_device(new id zwp_primary_selection_device_v1#1867, wl_seat#1848) -[2618109.117] {Default Queue} wl_output#1849.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618109.123] {Default Queue} wl_output#1849.mode(3, 1280, 800, 60000) -[2618109.134] {Default Queue} discarded wl_surface#3.enter(wl_output#1849) -[2618109.142] {Default Queue} discarded wl_surface#999.enter(wl_output#1849) -[2618109.146] {Default Queue} discarded wl_surface#1191.enter(wl_output#1849) -[2618109.151] {Default Queue} discarded wl_surface#1159.enter(wl_output#1849) -[2618109.156] {Default Queue} discarded wl_surface#1703.enter(wl_output#1849) -[2618109.161] {Default Queue} discarded wl_surface#423.enter(wl_output#1849) -[2618109.166] {Default Queue} discarded wl_surface#1447.enter(wl_output#1849) -[2618109.171] {Default Queue} discarded wl_surface#1639.enter(wl_output#1849) -[2618109.176] {Default Queue} discarded wl_surface#1319.enter(wl_output#1849) -[2618109.181] {Default Queue} discarded wl_surface#1127.enter(wl_output#1849) -[2618109.185] {Default Queue} discarded wl_surface#1063.enter(wl_output#1849) -[2618109.190] {Default Queue} discarded wl_surface#455.enter(wl_output#1849) -[2618109.195] {Default Queue} discarded wl_surface#1575.enter(wl_output#1849) -[2618109.200] {Default Queue} discarded wl_surface#1799.enter(wl_output#1849) -[2618109.205] {Default Queue} discarded wl_surface#1415.enter(wl_output#1849) -[2618109.210] {Default Queue} discarded wl_surface#903.enter(wl_output#1849) -[2618109.215] {Default Queue} discarded wl_surface#775.enter(wl_output#1849) -[2618109.220] {Default Queue} discarded wl_surface#1543.enter(wl_output#1849) -[2618109.226] {Default Queue} discarded wl_surface#135.enter(wl_output#1849) -[2618109.231] {Default Queue} discarded wl_surface#1287.enter(wl_output#1849) -[2618109.235] {Default Queue} discarded wl_surface#1031.enter(wl_output#1849) -[2618109.240] {Default Queue} discarded wl_surface#615.enter(wl_output#1849) -[2618109.245] {Default Queue} discarded wl_surface#231.enter(wl_output#1849) -[2618109.250] {Default Queue} discarded wl_surface#359.enter(wl_output#1849) -[2618109.255] {Default Queue} discarded wl_surface#583.enter(wl_output#1849) -[2618109.260] {Default Queue} discarded wl_surface#743.enter(wl_output#1849) -[2618109.265] {Default Queue} discarded wl_surface#967.enter(wl_output#1849) -[2618109.270] {Default Queue} discarded wl_surface#103.enter(wl_output#1849) -[2618109.274] {Default Queue} discarded wl_surface#327.enter(wl_output#1849) -[2618109.279] {Default Queue} discarded wl_surface#43.enter(wl_output#1849) -[2618109.284] {Default Queue} discarded wl_surface#807.enter(wl_output#1849) -[2618109.289] {Default Queue} discarded wl_surface#19.enter(wl_output#1849) -[2618109.294] {Default Queue} discarded wl_surface#1511.enter(wl_output#1849) -[2618109.299] {Default Queue} discarded wl_surface#199.enter(wl_output#1849) -[2618109.304] {Default Queue} discarded wl_surface#391.enter(wl_output#1849) -[2618109.308] {Default Queue} discarded wl_surface#935.enter(wl_output#1849) -[2618109.313] {Default Queue} discarded wl_surface#1671.enter(wl_output#1849) -[2618109.318] {Default Queue} discarded wl_surface#1351.enter(wl_output#1849) -[2618109.323] {Default Queue} discarded wl_surface#711.enter(wl_output#1849) -[2618109.328] {Default Queue} discarded wl_surface#1223.enter(wl_output#1849) -[2618109.333] {Default Queue} discarded wl_surface#871.enter(wl_output#1849) -[2618109.338] {Default Queue} discarded wl_surface#263.enter(wl_output#1849) -[2618109.343] {Default Queue} discarded wl_surface#551.enter(wl_output#1849) -[2618109.348] {Default Queue} discarded wl_surface#1735.enter(wl_output#1849) -[2618109.352] {Default Queue} discarded wl_surface#1479.enter(wl_output#1849) -[2618109.357] {Default Queue} discarded wl_surface#1772.enter(wl_output#1849) -[2618109.362] {Default Queue} discarded wl_surface#647.enter(wl_output#1849) -[2618109.367] {Default Queue} discarded wl_surface#71.enter(wl_output#1849) -[2618109.372] {Default Queue} discarded wl_surface#839.enter(wl_output#1849) -[2618109.377] {Default Queue} discarded wl_surface#1607.enter(wl_output#1849) -[2618109.382] {Default Queue} discarded wl_surface#1095.enter(wl_output#1849) -[2618109.386] {Default Queue} discarded wl_surface#1383.enter(wl_output#1849) -[2618109.391] {Default Queue} discarded wl_surface#487.enter(wl_output#1849) -[2618109.400] {Default Queue} discarded wl_surface#519.enter(wl_output#1849) -[2618109.406] {Default Queue} discarded wl_surface#295.enter(wl_output#1849) -[2618109.412] {Default Queue} discarded wl_surface#167.enter(wl_output#1849) -[2618109.417] {Default Queue} discarded wl_surface#1255.enter(wl_output#1849) -[2618109.422] {Default Queue} discarded wl_surface#679.enter(wl_output#1849) -[2618109.426] {Default Queue} wl_registry#1862.global(1, "wl_compositor", 6) -[2618109.432] {Default Queue} -> wl_registry#1862.bind(1, "wl_compositor", 1, new id [unknown]#1868) -[2618109.438] {Default Queue} wl_registry#1862.global(2, "wl_subcompositor", 1) -[2618109.444] {Default Queue} -> wl_registry#1862.bind(2, "wl_subcompositor", 1, new id [unknown]#1869) -[2618109.450] {Default Queue} wl_registry#1862.global(3, "xdg_wm_base", 6) -[2618109.455] {Default Queue} -> wl_registry#1862.bind(3, "xdg_wm_base", 1, new id [unknown]#1870) -[2618109.461] {Default Queue} wl_registry#1862.global(6, "zwlr_layer_shell_v1", 5) -[2618109.466] {Default Queue} wl_registry#1862.global(7, "ext_session_lock_manager_v1", 1) -[2618109.472] {Default Queue} wl_registry#1862.global(8, "wl_shm", 2) -[2618109.479] {Default Queue} -> wl_registry#1862.bind(8, "wl_shm", 1, new id [unknown]#1871) -[2618109.485] {Default Queue} -> wl_registry#1862.bind(8, "wl_shm", 1, new id [unknown]#1872) -[2618109.491] {Default Queue} -> wl_registry#1862.bind(8, "wl_shm", 1, new id [unknown]#1873) -[2618109.496] {Default Queue} wl_registry#1862.global(9, "zxdg_output_manager_v1", 3) -[2618109.501] {Default Queue} wl_registry#1862.global(10, "wp_fractional_scale_manager_v1", 1) -[2618109.507] {Default Queue} wl_registry#1862.global(11, "zwp_tablet_manager_v2", 1) -[2618109.513] {Default Queue} wl_registry#1862.global(12, "zwp_pointer_gestures_v1", 3) -[2618109.518] {Default Queue} wl_registry#1862.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618109.524] {Default Queue} -> wl_registry#1862.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1874) -[2618109.529] {Default Queue} wl_registry#1862.global(14, "zwp_pointer_constraints_v1", 1) -[2618109.535] {Default Queue} -> wl_registry#1862.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1875) -[2618109.541] {Default Queue} wl_registry#1862.global(15, "ext_idle_notifier_v1", 2) -[2618109.546] {Default Queue} wl_registry#1862.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618109.552] {Default Queue} wl_registry#1862.global(17, "wl_data_device_manager", 3) -[2618109.557] {Default Queue} -> wl_registry#1862.bind(17, "wl_data_device_manager", 2, new id [unknown]#1876) -[2618109.563] {Default Queue} -> wl_data_device_manager#1876.create_data_source(new id wl_data_source#1877) -[2618109.568] {Default Queue} -> wl_data_source#1877.offer("text/plain") -[2618109.574] {Default Queue} -> wl_data_source#1877.offer("text/plain;charset=utf-8") -[2618109.579] {Default Queue} -> wl_data_source#1877.offer("TEXT") -[2618109.584] {Default Queue} -> wl_data_source#1877.offer("STRING") -[2618109.589] {Default Queue} -> wl_data_source#1877.offer("UTF8_STRING") -[2618109.594] {Default Queue} wl_registry#1862.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618109.600] {Default Queue} -> wl_registry#1862.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1878) -[2618109.609] {Default Queue} -> zwp_primary_selection_device_manager_v1#1878.create_source(new id zwp_primary_selection_source_v1#1879) -[2618109.619] {Default Queue} -> zwp_primary_selection_source_v1#1879.offer("text/plain") -[2618109.624] {Default Queue} -> zwp_primary_selection_source_v1#1879.offer("text/plain;charset=utf-8") -[2618109.629] {Default Queue} -> zwp_primary_selection_source_v1#1879.offer("TEXT") -[2618109.634] {Default Queue} -> zwp_primary_selection_source_v1#1879.offer("STRING") -[2618109.639] {Default Queue} -> zwp_primary_selection_source_v1#1879.offer("UTF8_STRING") -[2618109.644] {Default Queue} wl_registry#1862.global(19, "zwlr_data_control_manager_v1", 2) -[2618109.649] {Default Queue} wl_registry#1862.global(20, "ext_data_control_manager_v1", 1) -[2618109.658] {Default Queue} wl_registry#1862.global(21, "wp_presentation", 2) -[2618109.665] {Default Queue} wl_registry#1862.global(22, "wp_security_context_manager_v1", 1) -[2618109.670] {Default Queue} wl_registry#1862.global(23, "zwp_text_input_manager_v3", 1) -[2618109.676] {Default Queue} wl_registry#1862.global(24, "zwp_input_method_manager_v2", 1) -[2618109.681] {Default Queue} wl_registry#1862.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618109.687] {Default Queue} wl_registry#1862.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618109.692] {Default Queue} wl_registry#1862.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618109.697] {Default Queue} wl_registry#1862.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618109.703] {Default Queue} wl_registry#1862.global(29, "ext_workspace_manager_v1", 1) -[2618109.708] {Default Queue} wl_registry#1862.global(30, "zwlr_output_manager_v1", 4) -[2618109.714] {Default Queue} wl_registry#1862.global(31, "zwlr_screencopy_manager_v1", 3) -[2618109.719] {Default Queue} wl_registry#1862.global(32, "wp_viewporter", 1) -[2618109.724] {Default Queue} wl_registry#1862.global(33, "zxdg_exporter_v2", 1) -[2618109.730] {Default Queue} wl_registry#1862.global(34, "zxdg_importer_v2", 1) -[2618109.735] {Default Queue} wl_registry#1862.global(36, "xdg_activation_v1", 1) -[2618109.740] {Default Queue} wl_registry#1862.global(37, "mutter_x11_interop", 1) -[2618109.746] {Default Queue} wl_registry#1862.global(38, "wl_seat", 9) -[2618109.751] {Default Queue} -> wl_registry#1862.bind(38, "wl_seat", 1, new id [unknown]#1880) -[2618109.757] {Default Queue} wl_registry#1862.global(39, "wp_cursor_shape_manager_v1", 2) -[2618109.762] {Default Queue} wl_registry#1862.global(40, "wl_output", 4) -[2618109.768] {Default Queue} -> wl_registry#1862.bind(40, "wl_output", 1, new id [unknown]#1881) -[2618109.774] {Default Queue} wl_callback#1863.done(0) -[2618109.779] {Default Queue} discarded wl_surface#1831.enter(wl_output#18) -[2618109.784] {Default Queue} discarded wl_surface#1831.enter(wl_output#57) -[2618109.789] {Default Queue} discarded wl_surface#1831.enter(wl_output#89) -[2618109.794] {Default Queue} discarded wl_surface#1831.enter(wl_output#121) -[2618109.799] {Default Queue} discarded wl_surface#1831.enter(wl_output#153) -[2618109.804] {Default Queue} discarded wl_surface#1831.enter(wl_output#185) -[2618109.809] {Default Queue} discarded wl_surface#1831.enter(wl_output#217) -[2618109.814] {Default Queue} discarded wl_surface#1831.enter(wl_output#249) -[2618109.819] {Default Queue} discarded wl_surface#1831.enter(wl_output#281) -[2618109.824] {Default Queue} discarded wl_surface#1831.enter(wl_output#313) -[2618109.829] {Default Queue} discarded wl_surface#1831.enter(wl_output#345) -[2618109.834] {Default Queue} discarded wl_surface#1831.enter(wl_output#377) -[2618109.839] {Default Queue} discarded wl_surface#1831.enter(wl_output#409) -[2618109.844] {Default Queue} discarded wl_surface#1831.enter(wl_output#441) -[2618109.849] {Default Queue} discarded wl_surface#1831.enter(wl_output#473) -[2618109.854] {Default Queue} discarded wl_surface#1831.enter(wl_output#505) -[2618109.859] {Default Queue} discarded wl_surface#1831.enter(wl_output#537) -[2618109.870] {Default Queue} discarded wl_surface#1831.enter(wl_output#569) -[2618109.875] {Default Queue} discarded wl_surface#1831.enter(wl_output#601) -[2618109.880] {Default Queue} discarded wl_surface#1831.enter(wl_output#633) -[2618109.885] {Default Queue} discarded wl_surface#1831.enter(wl_output#665) -[2618109.890] {Default Queue} discarded wl_surface#1831.enter(wl_output#697) -[2618109.895] {Default Queue} discarded wl_surface#1831.enter(wl_output#729) -[2618109.900] {Default Queue} discarded wl_surface#1831.enter(wl_output#761) -[2618109.905] {Default Queue} discarded wl_surface#1831.enter(wl_output#793) -[2618109.909] {Default Queue} discarded wl_surface#1831.enter(wl_output#825) -[2618109.913] {Default Queue} discarded wl_surface#1831.enter(wl_output#857) -[2618109.917] {Default Queue} discarded wl_surface#1831.enter(wl_output#889) -[2618109.923] {Default Queue} discarded wl_surface#1831.enter(wl_output#921) -[2618109.929] {Default Queue} discarded wl_surface#1831.enter(wl_output#953) -[2618109.933] {Default Queue} discarded wl_surface#1831.enter(wl_output#985) -[2618109.936] {Default Queue} discarded wl_surface#1831.enter(wl_output#1017) -[2618109.940] {Default Queue} discarded wl_surface#1831.enter(wl_output#1049) -[2618109.944] {Default Queue} discarded wl_surface#1831.enter(wl_output#1081) -[2618109.948] {Default Queue} discarded wl_surface#1831.enter(wl_output#1113) -[2618109.952] {Default Queue} discarded wl_surface#1831.enter(wl_output#1145) -[2618109.956] {Default Queue} discarded wl_surface#1831.enter(wl_output#1177) -[2618109.960] {Default Queue} discarded wl_surface#1831.enter(wl_output#1209) -[2618109.964] {Default Queue} discarded wl_surface#1831.enter(wl_output#1241) -[2618109.968] {Default Queue} discarded wl_surface#1831.enter(wl_output#1273) -[2618109.972] {Default Queue} discarded wl_surface#1831.enter(wl_output#1305) -[2618109.975] {Default Queue} discarded wl_surface#1831.enter(wl_output#1337) -[2618109.979] {Default Queue} discarded wl_surface#1831.enter(wl_output#1369) -[2618109.983] {Default Queue} discarded wl_surface#1831.enter(wl_output#1401) -[2618109.987] {Default Queue} discarded wl_surface#1831.enter(wl_output#1433) -[2618109.991] {Default Queue} discarded wl_surface#1831.enter(wl_output#1465) -[2618109.995] {Default Queue} discarded wl_surface#1831.enter(wl_output#1497) -[2618109.999] {Default Queue} discarded wl_surface#1831.enter(wl_output#1529) -[2618110.002] {Default Queue} discarded wl_surface#1831.enter(wl_output#1561) -[2618110.006] {Default Queue} discarded wl_surface#1831.enter(wl_output#1593) -[2618110.010] {Default Queue} discarded wl_surface#1831.enter(wl_output#1625) -[2618110.014] {Default Queue} discarded wl_surface#1831.enter(wl_output#1657) -[2618110.018] {Default Queue} discarded wl_surface#1831.enter(wl_output#1689) -[2618110.022] {Default Queue} discarded wl_surface#1831.enter(wl_output#1721) -[2618110.026] {Default Queue} discarded wl_surface#1831.enter(wl_output#1753) -[2618110.030] {Default Queue} discarded wl_surface#1831.enter(wl_output#1785) -[2618110.034] {Default Queue} discarded wl_surface#1831.enter(wl_output#1817) -[2618110.038] {Default Queue} discarded wl_surface#1831.enter(wl_output#1849) -[2618110.042] {Default Queue} -> wl_compositor#1804.create_surface(new id wl_surface#1863) -[2618110.046] {Default Queue} -> wl_subcompositor#1869.get_subsurface(new id wl_subsurface#1882, wl_surface#1863, wl_surface#1799) -[2618110.054] {Default Queue} -> wl_subsurface#1882.set_desync() -[2618110.058] {Default Queue} -> wl_subsurface#1882.set_position(0, 0) -[2618110.063] {Default Queue} -> wl_subsurface#1882.place_above(wl_surface#1799) -[2618110.101] {Default Queue} -> wl_shm#1871.create_pool(new id wl_shm_pool#1883, fd 299, 16) -[2618110.108] {Default Queue} -> wl_shm#1871.create_pool(new id wl_shm_pool#1884, fd 300, 16) -[2618110.112] {Default Queue} -> wl_shm_pool#1883.create_buffer(new id wl_buffer#1885, 0, 2, 2, 8, 0) -[2618110.117] {Default Queue} -> wl_shm_pool#1884.create_buffer(new id wl_buffer#1886, 0, 2, 2, 8, 0) -[2618110.125] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) -[2618110.129] {Default Queue} -> wl_surface#1863.commit() -[2618110.134] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) -[2618110.140] {Default Queue} -> wl_surface#1863.commit() -[2618110.144] {Default Queue} -> wl_compositor#1868.create_region(new id wl_region#1887) -[2618110.149] {Default Queue} -> wl_compositor#1868.create_region(new id wl_region#1888) -[2618110.153] {Default Queue} -> wl_region#1887.subtract(0, 0, 2, 2) -[2618110.158] {Default Queue} -> wl_region#1887.add(0, 0, 0, 0) -[2618110.162] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) -[2618110.167] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) -[2618110.171] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) -[2618110.175] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) -[2618110.183] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) -[2618110.191] {Default Queue} -> wl_surface#1863.commit() -[2618110.226] {Default Queue} -> wl_shm#1873.create_pool(new id wl_shm_pool#1889, fd 303, 640) -[2618110.232] {Default Queue} -> wl_shm#1873.create_pool(new id wl_shm_pool#1890, fd 304, 640) -[2618110.237] {Default Queue} -> wl_shm_pool#1889.create_buffer(new id wl_buffer#1891, 0, 10, 16, 40, 0) -[2618110.241] {Default Queue} -> wl_shm_pool#1890.create_buffer(new id wl_buffer#1892, 0, 10, 16, 40, 0) -[2618110.248] {Default Queue} -> wl_compositor#1868.create_surface(new id wl_surface#1893) -[2618110.252] {Default Queue} -> wl_surface#1893.attach(wl_buffer#1891, 0, 0) -[2618110.257] {Default Queue} -> wl_surface#1893.commit() -[2618110.262] {Default Queue} -> wl_surface#1893.attach(wl_buffer#1891, 0, 0) -[2618110.266] {Default Queue} -> wl_surface#1893.commit() -[2618110.271] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) -[2618110.277] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1894) -[2618110.282] {Default Queue} -> wl_display#1.sync(new id wl_callback#1895) -[2618114.020] {Display Queue} wl_display#1.delete_id(1895) -[2618114.029] {Default Queue} wl_keyboard#1864.keymap(1, fd 299, 68213) -[2618114.035] {Default Queue} wl_keyboard#1864.enter(566, wl_surface#19, array[0]) -[2618114.042] {Default Queue} wl_keyboard#1864.modifiers(566, 0, 0, 16, 0) -[2618114.047] {Default Queue} discarded wl_shm#1871.format(875709016) -[2618114.052] {Default Queue} discarded wl_shm#1871.format(1) -[2618114.057] {Default Queue} discarded wl_shm#1871.format(0) -[2618114.062] {Default Queue} discarded wl_shm#1871.format(875708993) -[2618114.067] {Default Queue} discarded wl_shm#1872.format(875709016) -[2618114.072] {Default Queue} discarded wl_shm#1872.format(1) -[2618114.077] {Default Queue} discarded wl_shm#1872.format(0) -[2618114.082] {Default Queue} discarded wl_shm#1872.format(875708993) -[2618114.087] {Default Queue} discarded wl_shm#1873.format(875709016) -[2618114.091] {Default Queue} discarded wl_shm#1873.format(1) -[2618114.096] {Default Queue} discarded wl_shm#1873.format(0) -[2618114.101] {Default Queue} discarded wl_shm#1873.format(875708993) -[2618114.106] {Default Queue} wl_seat#1880.capabilities(7) -[2618114.112] {Default Queue} -> wl_seat#1880.get_keyboard(new id wl_keyboard#1896) -[2618114.117] {Default Queue} -> wl_seat#1880.get_pointer(new id wl_pointer#1897) -[2618114.123] {Default Queue} -> wl_data_device_manager#1876.get_data_device(new id wl_data_device#1898, wl_seat#1880) -[2618114.129] {Default Queue} -> zwp_primary_selection_device_manager_v1#1878.get_device(new id zwp_primary_selection_device_v1#1899, wl_seat#1880) -[2618114.138] {Default Queue} wl_output#1881.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618114.145] {Default Queue} wl_output#1881.mode(3, 1280, 800, 60000) -[2618114.150] {Default Queue} discarded wl_surface#3.enter(wl_output#1881) -[2618114.155] {Default Queue} discarded wl_surface#999.enter(wl_output#1881) -[2618114.160] {Default Queue} discarded wl_surface#1191.enter(wl_output#1881) -[2618114.165] {Default Queue} discarded wl_surface#1159.enter(wl_output#1881) -[2618114.170] {Default Queue} discarded wl_surface#1703.enter(wl_output#1881) -[2618114.175] {Default Queue} discarded wl_surface#423.enter(wl_output#1881) -[2618114.180] {Default Queue} discarded wl_surface#1447.enter(wl_output#1881) -[2618114.185] {Default Queue} discarded wl_surface#1639.enter(wl_output#1881) -[2618114.190] {Default Queue} discarded wl_surface#1319.enter(wl_output#1881) -[2618114.194] {Default Queue} discarded wl_surface#1127.enter(wl_output#1881) -[2618114.200] {Default Queue} discarded wl_surface#1063.enter(wl_output#1881) -[2618114.205] {Default Queue} discarded wl_surface#455.enter(wl_output#1881) -[2618114.210] {Default Queue} discarded wl_surface#1575.enter(wl_output#1881) -[2618114.215] {Default Queue} discarded wl_surface#1799.enter(wl_output#1881) -[2618114.219] {Default Queue} discarded wl_surface#1415.enter(wl_output#1881) -[2618114.224] {Default Queue} discarded wl_surface#1831.enter(wl_output#1881) -[2618114.238] {Default Queue} discarded wl_surface#903.enter(wl_output#1881) -[2618114.246] {Default Queue} discarded wl_surface#775.enter(wl_output#1881) -[2618114.251] {Default Queue} discarded wl_surface#1543.enter(wl_output#1881) -[2618114.256] {Default Queue} discarded wl_surface#135.enter(wl_output#1881) -[2618114.261] {Default Queue} discarded wl_surface#1287.enter(wl_output#1881) -[2618114.266] {Default Queue} discarded wl_surface#1031.enter(wl_output#1881) -[2618114.271] {Default Queue} discarded wl_surface#615.enter(wl_output#1881) -[2618114.276] {Default Queue} discarded wl_surface#231.enter(wl_output#1881) -[2618114.280] {Default Queue} discarded wl_surface#359.enter(wl_output#1881) -[2618114.285] {Default Queue} discarded wl_surface#583.enter(wl_output#1881) -[2618114.290] {Default Queue} discarded wl_surface#743.enter(wl_output#1881) -[2618114.295] {Default Queue} discarded wl_surface#967.enter(wl_output#1881) -[2618114.300] {Default Queue} discarded wl_surface#103.enter(wl_output#1881) -[2618114.305] {Default Queue} discarded wl_surface#327.enter(wl_output#1881) -[2618114.310] {Default Queue} discarded wl_surface#43.enter(wl_output#1881) -[2618114.315] {Default Queue} discarded wl_surface#807.enter(wl_output#1881) -[2618114.320] {Default Queue} discarded wl_surface#19.enter(wl_output#1881) -[2618114.325] {Default Queue} discarded wl_surface#1511.enter(wl_output#1881) -[2618114.330] {Default Queue} discarded wl_surface#199.enter(wl_output#1881) -[2618114.335] {Default Queue} discarded wl_surface#391.enter(wl_output#1881) -[2618114.340] {Default Queue} discarded wl_surface#935.enter(wl_output#1881) -[2618114.345] {Default Queue} discarded wl_surface#1671.enter(wl_output#1881) -[2618114.349] {Default Queue} discarded wl_surface#1351.enter(wl_output#1881) -[2618114.354] {Default Queue} discarded wl_surface#711.enter(wl_output#1881) -[2618114.359] {Default Queue} discarded wl_surface#1223.enter(wl_output#1881) -[2618114.364] {Default Queue} discarded wl_surface#871.enter(wl_output#1881) -[2618114.369] {Default Queue} discarded wl_surface#263.enter(wl_output#1881) -[2618114.374] {Default Queue} discarded wl_surface#551.enter(wl_output#1881) -[2618114.379] {Default Queue} discarded wl_surface#1735.enter(wl_output#1881) -[2618114.384] {Default Queue} discarded wl_surface#1479.enter(wl_output#1881) -[2618114.388] {Default Queue} discarded wl_surface#1772.enter(wl_output#1881) -[2618114.393] {Default Queue} discarded wl_surface#647.enter(wl_output#1881) -[2618114.398] {Default Queue} discarded wl_surface#71.enter(wl_output#1881) -[2618114.403] {Default Queue} discarded wl_surface#839.enter(wl_output#1881) -[2618114.408] {Default Queue} discarded wl_surface#1607.enter(wl_output#1881) -[2618114.413] {Default Queue} discarded wl_surface#1095.enter(wl_output#1881) -[2618114.418] {Default Queue} discarded wl_surface#1383.enter(wl_output#1881) -[2618114.422] {Default Queue} discarded wl_surface#487.enter(wl_output#1881) -[2618114.427] {Default Queue} discarded wl_surface#519.enter(wl_output#1881) -[2618114.432] {Default Queue} discarded wl_surface#295.enter(wl_output#1881) -[2618114.437] {Default Queue} discarded wl_surface#167.enter(wl_output#1881) -[2618114.442] {Default Queue} discarded wl_surface#1255.enter(wl_output#1881) -[2618114.447] {Default Queue} discarded wl_surface#679.enter(wl_output#1881) -[2618114.452] {Default Queue} wl_registry#1894.global(1, "wl_compositor", 6) -[2618114.458] {Default Queue} -> wl_registry#1894.bind(1, "wl_compositor", 1, new id [unknown]#1900) -[2618114.463] {Default Queue} wl_registry#1894.global(2, "wl_subcompositor", 1) -[2618114.469] {Default Queue} -> wl_registry#1894.bind(2, "wl_subcompositor", 1, new id [unknown]#1901) -[2618114.475] {Default Queue} wl_registry#1894.global(3, "xdg_wm_base", 6) -[2618114.481] {Default Queue} -> wl_registry#1894.bind(3, "xdg_wm_base", 1, new id [unknown]#1902) -[2618114.487] {Default Queue} wl_registry#1894.global(6, "zwlr_layer_shell_v1", 5) -[2618114.492] {Default Queue} wl_registry#1894.global(7, "ext_session_lock_manager_v1", 1) -[2618114.498] {Default Queue} wl_registry#1894.global(8, "wl_shm", 2) -[2618114.508] {Default Queue} -> wl_registry#1894.bind(8, "wl_shm", 1, new id [unknown]#1903) -[2618114.517] {Default Queue} -> wl_registry#1894.bind(8, "wl_shm", 1, new id [unknown]#1904) -[2618114.523] {Default Queue} -> wl_registry#1894.bind(8, "wl_shm", 1, new id [unknown]#1905) -[2618114.529] {Default Queue} wl_registry#1894.global(9, "zxdg_output_manager_v1", 3) -[2618114.534] {Default Queue} wl_registry#1894.global(10, "wp_fractional_scale_manager_v1", 1) -[2618114.540] {Default Queue} wl_registry#1894.global(11, "zwp_tablet_manager_v2", 1) -[2618114.545] {Default Queue} wl_registry#1894.global(12, "zwp_pointer_gestures_v1", 3) -[2618114.551] {Default Queue} wl_registry#1894.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618114.556] {Default Queue} -> wl_registry#1894.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1906) -[2618114.562] {Default Queue} wl_registry#1894.global(14, "zwp_pointer_constraints_v1", 1) -[2618114.567] {Default Queue} -> wl_registry#1894.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1907) -[2618114.573] {Default Queue} wl_registry#1894.global(15, "ext_idle_notifier_v1", 2) -[2618114.579] {Default Queue} wl_registry#1894.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618114.584] {Default Queue} wl_registry#1894.global(17, "wl_data_device_manager", 3) -[2618114.590] {Default Queue} -> wl_registry#1894.bind(17, "wl_data_device_manager", 2, new id [unknown]#1908) -[2618114.595] {Default Queue} -> wl_data_device_manager#1908.create_data_source(new id wl_data_source#1909) -[2618114.600] {Default Queue} -> wl_data_source#1909.offer("text/plain") -[2618114.605] {Default Queue} -> wl_data_source#1909.offer("text/plain;charset=utf-8") -[2618114.611] {Default Queue} -> wl_data_source#1909.offer("TEXT") -[2618114.616] {Default Queue} -> wl_data_source#1909.offer("STRING") -[2618114.621] {Default Queue} -> wl_data_source#1909.offer("UTF8_STRING") -[2618114.626] {Default Queue} wl_registry#1894.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618114.632] {Default Queue} -> wl_registry#1894.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1910) -[2618114.642] {Default Queue} -> zwp_primary_selection_device_manager_v1#1910.create_source(new id zwp_primary_selection_source_v1#1911) -[2618114.651] {Default Queue} -> zwp_primary_selection_source_v1#1911.offer("text/plain") -[2618114.656] {Default Queue} -> zwp_primary_selection_source_v1#1911.offer("text/plain;charset=utf-8") -[2618114.661] {Default Queue} -> zwp_primary_selection_source_v1#1911.offer("TEXT") -[2618114.666] {Default Queue} -> zwp_primary_selection_source_v1#1911.offer("STRING") -[2618114.671] {Default Queue} -> zwp_primary_selection_source_v1#1911.offer("UTF8_STRING") -[2618114.676] {Default Queue} wl_registry#1894.global(19, "zwlr_data_control_manager_v1", 2) -[2618114.682] {Default Queue} wl_registry#1894.global(20, "ext_data_control_manager_v1", 1) -[2618114.687] {Default Queue} wl_registry#1894.global(21, "wp_presentation", 2) -[2618114.693] {Default Queue} wl_registry#1894.global(22, "wp_security_context_manager_v1", 1) -[2618114.698] {Default Queue} wl_registry#1894.global(23, "zwp_text_input_manager_v3", 1) -[2618114.703] {Default Queue} wl_registry#1894.global(24, "zwp_input_method_manager_v2", 1) -[2618114.709] {Default Queue} wl_registry#1894.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618114.714] {Default Queue} wl_registry#1894.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618114.720] {Default Queue} wl_registry#1894.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618114.725] {Default Queue} wl_registry#1894.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618114.731] {Default Queue} wl_registry#1894.global(29, "ext_workspace_manager_v1", 1) -[2618114.736] {Default Queue} wl_registry#1894.global(30, "zwlr_output_manager_v1", 4) -[2618114.742] {Default Queue} wl_registry#1894.global(31, "zwlr_screencopy_manager_v1", 3) -[2618114.747] {Default Queue} wl_registry#1894.global(32, "wp_viewporter", 1) -[2618114.752] {Default Queue} wl_registry#1894.global(33, "zxdg_exporter_v2", 1) -[2618114.761] {Default Queue} wl_registry#1894.global(34, "zxdg_importer_v2", 1) -[2618114.768] {Default Queue} wl_registry#1894.global(36, "xdg_activation_v1", 1) -[2618114.774] {Default Queue} wl_registry#1894.global(37, "mutter_x11_interop", 1) -[2618114.779] {Default Queue} wl_registry#1894.global(38, "wl_seat", 9) -[2618114.785] {Default Queue} -> wl_registry#1894.bind(38, "wl_seat", 1, new id [unknown]#1912) -[2618114.790] {Default Queue} wl_registry#1894.global(39, "wp_cursor_shape_manager_v1", 2) -[2618114.796] {Default Queue} wl_registry#1894.global(40, "wl_output", 4) -[2618114.801] {Default Queue} -> wl_registry#1894.bind(40, "wl_output", 1, new id [unknown]#1913) -[2618114.807] {Default Queue} wl_callback#1895.done(0) -[2618114.812] {Default Queue} discarded wl_surface#1863.enter(wl_output#18) -[2618114.817] {Default Queue} discarded wl_surface#1863.enter(wl_output#57) -[2618114.822] {Default Queue} discarded wl_surface#1863.enter(wl_output#89) -[2618114.827] {Default Queue} discarded wl_surface#1863.enter(wl_output#121) -[2618114.832] {Default Queue} discarded wl_surface#1863.enter(wl_output#153) -[2618114.837] {Default Queue} discarded wl_surface#1863.enter(wl_output#185) -[2618114.842] {Default Queue} discarded wl_surface#1863.enter(wl_output#217) -[2618114.848] {Default Queue} discarded wl_surface#1863.enter(wl_output#249) -[2618114.853] {Default Queue} discarded wl_surface#1863.enter(wl_output#281) -[2618114.857] {Default Queue} discarded wl_surface#1863.enter(wl_output#313) -[2618114.863] {Default Queue} discarded wl_surface#1863.enter(wl_output#345) -[2618114.869] {Default Queue} discarded wl_surface#1863.enter(wl_output#377) -[2618114.879] {Default Queue} discarded wl_surface#1863.enter(wl_output#409) -[2618114.884] {Default Queue} discarded wl_surface#1863.enter(wl_output#441) -[2618114.889] {Default Queue} discarded wl_surface#1863.enter(wl_output#473) -[2618114.894] {Default Queue} discarded wl_surface#1863.enter(wl_output#505) -[2618114.899] {Default Queue} discarded wl_surface#1863.enter(wl_output#537) -[2618114.904] {Default Queue} discarded wl_surface#1863.enter(wl_output#569) -[2618114.908] {Default Queue} discarded wl_surface#1863.enter(wl_output#601) -[2618114.913] {Default Queue} discarded wl_surface#1863.enter(wl_output#633) -[2618114.918] {Default Queue} discarded wl_surface#1863.enter(wl_output#665) -[2618114.922] {Default Queue} discarded wl_surface#1863.enter(wl_output#697) -[2618114.926] {Default Queue} discarded wl_surface#1863.enter(wl_output#729) -[2618114.930] {Default Queue} discarded wl_surface#1863.enter(wl_output#761) -[2618114.934] {Default Queue} discarded wl_surface#1863.enter(wl_output#793) -[2618114.937] {Default Queue} discarded wl_surface#1863.enter(wl_output#825) -[2618114.941] {Default Queue} discarded wl_surface#1863.enter(wl_output#857) -[2618114.945] {Default Queue} discarded wl_surface#1863.enter(wl_output#889) -[2618114.949] {Default Queue} discarded wl_surface#1863.enter(wl_output#921) -[2618114.953] {Default Queue} discarded wl_surface#1863.enter(wl_output#953) -[2618114.957] {Default Queue} discarded wl_surface#1863.enter(wl_output#985) -[2618114.961] {Default Queue} discarded wl_surface#1863.enter(wl_output#1017) -[2618114.965] {Default Queue} discarded wl_surface#1863.enter(wl_output#1049) -[2618114.969] {Default Queue} discarded wl_surface#1863.enter(wl_output#1081) -[2618114.973] {Default Queue} discarded wl_surface#1863.enter(wl_output#1113) -[2618114.977] {Default Queue} discarded wl_surface#1863.enter(wl_output#1145) -[2618114.981] {Default Queue} discarded wl_surface#1863.enter(wl_output#1177) -[2618114.985] {Default Queue} discarded wl_surface#1863.enter(wl_output#1209) -[2618114.989] {Default Queue} discarded wl_surface#1863.enter(wl_output#1241) -[2618114.993] {Default Queue} discarded wl_surface#1863.enter(wl_output#1273) -[2618114.997] {Default Queue} discarded wl_surface#1863.enter(wl_output#1305) -[2618115.001] {Default Queue} discarded wl_surface#1863.enter(wl_output#1337) -[2618115.005] {Default Queue} discarded wl_surface#1863.enter(wl_output#1369) -[2618115.012] {Default Queue} discarded wl_surface#1863.enter(wl_output#1401) -[2618115.017] {Default Queue} discarded wl_surface#1863.enter(wl_output#1433) -[2618115.021] {Default Queue} discarded wl_surface#1863.enter(wl_output#1465) -[2618115.025] {Default Queue} discarded wl_surface#1863.enter(wl_output#1497) -[2618115.029] {Default Queue} discarded wl_surface#1863.enter(wl_output#1529) -[2618115.033] {Default Queue} discarded wl_surface#1863.enter(wl_output#1561) -[2618115.037] {Default Queue} discarded wl_surface#1863.enter(wl_output#1593) -[2618115.041] {Default Queue} discarded wl_surface#1863.enter(wl_output#1625) -[2618115.045] {Default Queue} discarded wl_surface#1863.enter(wl_output#1657) -[2618115.048] {Default Queue} discarded wl_surface#1863.enter(wl_output#1689) -[2618115.052] {Default Queue} discarded wl_surface#1863.enter(wl_output#1721) -[2618115.057] {Default Queue} discarded wl_surface#1863.enter(wl_output#1753) -[2618115.061] {Default Queue} discarded wl_surface#1863.enter(wl_output#1785) -[2618115.065] {Default Queue} discarded wl_surface#1863.enter(wl_output#1817) -[2618115.069] {Default Queue} discarded wl_surface#1863.enter(wl_output#1849) -[2618115.073] {Default Queue} discarded wl_surface#1863.enter(wl_output#1881) -[2618115.077] {Default Queue} -> wl_compositor#1868.create_surface(new id wl_surface#1895) -[2618115.081] {Default Queue} -> wl_subcompositor#1901.get_subsurface(new id wl_subsurface#1914, wl_surface#1895, wl_surface#1863) -[2618115.090] {Default Queue} -> wl_subsurface#1914.set_desync() -[2618115.094] {Default Queue} -> wl_subsurface#1914.set_position(0, 0) -[2618115.099] {Default Queue} -> wl_subsurface#1914.place_above(wl_surface#1863) -[2618115.139] {Default Queue} -> wl_shm#1903.create_pool(new id wl_shm_pool#1915, fd 304, 16) -[2618115.145] {Default Queue} -> wl_shm#1903.create_pool(new id wl_shm_pool#1916, fd 305, 16) -[2618115.150] {Default Queue} -> wl_shm_pool#1915.create_buffer(new id wl_buffer#1917, 0, 2, 2, 8, 0) -[2618115.155] {Default Queue} -> wl_shm_pool#1916.create_buffer(new id wl_buffer#1918, 0, 2, 2, 8, 0) -[2618115.162] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) -[2618115.167] {Default Queue} -> wl_surface#1895.commit() -[2618115.172] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) -[2618115.176] {Default Queue} -> wl_surface#1895.commit() -[2618115.181] {Default Queue} -> wl_compositor#1900.create_region(new id wl_region#1919) -[2618115.185] {Default Queue} -> wl_compositor#1900.create_region(new id wl_region#1920) -[2618115.189] {Default Queue} -> wl_region#1919.subtract(0, 0, 2, 2) -[2618115.193] {Default Queue} -> wl_region#1919.add(0, 0, 0, 0) -[2618115.198] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) -[2618115.203] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) -[2618115.207] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618115.211] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) -[2618115.218] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) -[2618115.223] {Default Queue} -> wl_surface#1895.commit() -[2618115.264] {Default Queue} -> wl_shm#1905.create_pool(new id wl_shm_pool#1921, fd 308, 640) -[2618115.271] {Default Queue} -> wl_shm#1905.create_pool(new id wl_shm_pool#1922, fd 309, 640) -[2618115.275] {Default Queue} -> wl_shm_pool#1921.create_buffer(new id wl_buffer#1923, 0, 10, 16, 40, 0) -[2618115.280] {Default Queue} -> wl_shm_pool#1922.create_buffer(new id wl_buffer#1924, 0, 10, 16, 40, 0) -[2618115.287] {Default Queue} -> wl_compositor#1900.create_surface(new id wl_surface#1925) -[2618115.291] {Default Queue} -> wl_surface#1925.attach(wl_buffer#1923, 0, 0) -[2618115.295] {Default Queue} -> wl_surface#1925.commit() -[2618115.301] {Default Queue} -> wl_surface#1925.attach(wl_buffer#1923, 0, 0) -[2618115.305] {Default Queue} -> wl_surface#1925.commit() -[2618115.310] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618115.319] {Default Queue} -> wl_region#1823.subtract(0, 0, 2, 2) -[2618115.324] {Default Queue} -> wl_subsurface#1818.set_position(3, 3) -[2618115.333] {Default Queue} -> wl_region#1823.subtract(0, 0, 5, 5) -[2618115.339] {Default Queue} -> wl_region#1823.add(0, 0, 0, 0) -[2618115.344] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) -[2618115.348] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) -[2618115.353] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618115.357] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618115.361] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) -[2618115.366] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) -[2618115.372] {Default Queue} -> wl_region#1823.subtract(0, 0, 5, 5) -[2618115.377] {Default Queue} -> wl_region#1823.add(0, 0, 0, 0) -[2618115.382] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) -[2618115.386] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) -[2618115.391] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1821, 0, 0) -[2618115.395] {Default Queue} -> wl_surface#1799.commit() -[2618115.403] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1926) -[2618115.407] {Default Queue} -> wl_display#1.sync(new id wl_callback#1927) -[2618119.027] {Display Queue} wl_display#1.delete_id(1927) -[2618119.043] {Default Queue} wl_keyboard#1896.keymap(1, fd 304, 68213) -[2618119.051] {Default Queue} wl_keyboard#1896.enter(566, wl_surface#19, array[0]) -[2618119.057] {Default Queue} wl_keyboard#1896.modifiers(566, 0, 0, 16, 0) -[2618119.064] {Default Queue} discarded wl_shm#1903.format(875709016) -[2618119.069] {Default Queue} discarded wl_shm#1903.format(1) -[2618119.074] {Default Queue} discarded wl_shm#1903.format(0) -[2618119.079] {Default Queue} discarded wl_shm#1903.format(875708993) -[2618119.084] {Default Queue} discarded wl_shm#1904.format(875709016) -[2618119.089] {Default Queue} discarded wl_shm#1904.format(1) -[2618119.094] {Default Queue} discarded wl_shm#1904.format(0) -[2618119.099] {Default Queue} discarded wl_shm#1904.format(875708993) -[2618119.104] {Default Queue} discarded wl_shm#1905.format(875709016) -[2618119.109] {Default Queue} discarded wl_shm#1905.format(1) -[2618119.114] {Default Queue} discarded wl_shm#1905.format(0) -[2618119.119] {Default Queue} discarded wl_shm#1905.format(875708993) -[2618119.124] {Default Queue} wl_seat#1912.capabilities(7) -[2618119.129] {Default Queue} -> wl_seat#1912.get_keyboard(new id wl_keyboard#1928) -[2618119.135] {Default Queue} -> wl_seat#1912.get_pointer(new id wl_pointer#1929) -[2618119.141] {Default Queue} -> wl_data_device_manager#1908.get_data_device(new id wl_data_device#1930, wl_seat#1912) -[2618119.146] {Default Queue} -> zwp_primary_selection_device_manager_v1#1910.get_device(new id zwp_primary_selection_device_v1#1931, wl_seat#1912) -[2618119.156] {Default Queue} wl_output#1913.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618119.163] {Default Queue} wl_output#1913.mode(3, 1280, 800, 60000) -[2618119.169] {Default Queue} discarded wl_surface#3.enter(wl_output#1913) -[2618119.174] {Default Queue} discarded wl_surface#999.enter(wl_output#1913) -[2618119.179] {Default Queue} discarded wl_surface#1191.enter(wl_output#1913) -[2618119.184] {Default Queue} discarded wl_surface#1159.enter(wl_output#1913) -[2618119.189] {Default Queue} discarded wl_surface#1703.enter(wl_output#1913) -[2618119.194] {Default Queue} discarded wl_surface#423.enter(wl_output#1913) -[2618119.199] {Default Queue} discarded wl_surface#1447.enter(wl_output#1913) -[2618119.204] {Default Queue} discarded wl_surface#1639.enter(wl_output#1913) -[2618119.208] {Default Queue} discarded wl_surface#1319.enter(wl_output#1913) -[2618119.213] {Default Queue} discarded wl_surface#1127.enter(wl_output#1913) -[2618119.218] {Default Queue} discarded wl_surface#1063.enter(wl_output#1913) -[2618119.223] {Default Queue} discarded wl_surface#455.enter(wl_output#1913) -[2618119.228] {Default Queue} discarded wl_surface#1575.enter(wl_output#1913) -[2618119.233] {Default Queue} discarded wl_surface#1799.enter(wl_output#1913) -[2618119.238] {Default Queue} discarded wl_surface#1415.enter(wl_output#1913) -[2618119.248] {Default Queue} discarded wl_surface#1831.enter(wl_output#1913) -[2618119.258] {Default Queue} discarded wl_surface#903.enter(wl_output#1913) -[2618119.263] {Default Queue} discarded wl_surface#775.enter(wl_output#1913) -[2618119.268] {Default Queue} discarded wl_surface#1543.enter(wl_output#1913) -[2618119.273] {Default Queue} discarded wl_surface#135.enter(wl_output#1913) -[2618119.278] {Default Queue} discarded wl_surface#1287.enter(wl_output#1913) -[2618119.283] {Default Queue} discarded wl_surface#1031.enter(wl_output#1913) -[2618119.288] {Default Queue} discarded wl_surface#615.enter(wl_output#1913) -[2618119.293] {Default Queue} discarded wl_surface#231.enter(wl_output#1913) -[2618119.298] {Default Queue} discarded wl_surface#1863.enter(wl_output#1913) -[2618119.304] {Default Queue} discarded wl_surface#359.enter(wl_output#1913) -[2618119.308] {Default Queue} discarded wl_surface#583.enter(wl_output#1913) -[2618119.313] {Default Queue} discarded wl_surface#743.enter(wl_output#1913) -[2618119.318] {Default Queue} discarded wl_surface#967.enter(wl_output#1913) -[2618119.323] {Default Queue} discarded wl_surface#103.enter(wl_output#1913) -[2618119.328] {Default Queue} discarded wl_surface#327.enter(wl_output#1913) -[2618119.333] {Default Queue} discarded wl_surface#43.enter(wl_output#1913) -[2618119.338] {Default Queue} discarded wl_surface#807.enter(wl_output#1913) -[2618119.343] {Default Queue} discarded wl_surface#19.enter(wl_output#1913) -[2618119.348] {Default Queue} discarded wl_surface#1511.enter(wl_output#1913) -[2618119.353] {Default Queue} discarded wl_surface#199.enter(wl_output#1913) -[2618119.358] {Default Queue} discarded wl_surface#391.enter(wl_output#1913) -[2618119.363] {Default Queue} discarded wl_surface#935.enter(wl_output#1913) -[2618119.368] {Default Queue} discarded wl_surface#1671.enter(wl_output#1913) -[2618119.373] {Default Queue} discarded wl_surface#1351.enter(wl_output#1913) -[2618119.378] {Default Queue} discarded wl_surface#711.enter(wl_output#1913) -[2618119.383] {Default Queue} discarded wl_surface#1223.enter(wl_output#1913) -[2618119.388] {Default Queue} discarded wl_surface#871.enter(wl_output#1913) -[2618119.392] {Default Queue} discarded wl_surface#263.enter(wl_output#1913) -[2618119.397] {Default Queue} discarded wl_surface#551.enter(wl_output#1913) -[2618119.402] {Default Queue} discarded wl_surface#1735.enter(wl_output#1913) -[2618119.407] {Default Queue} discarded wl_surface#1479.enter(wl_output#1913) -[2618119.412] {Default Queue} discarded wl_surface#1772.enter(wl_output#1913) -[2618119.417] {Default Queue} discarded wl_surface#647.enter(wl_output#1913) -[2618119.422] {Default Queue} discarded wl_surface#71.enter(wl_output#1913) -[2618119.427] {Default Queue} discarded wl_surface#839.enter(wl_output#1913) -[2618119.432] {Default Queue} discarded wl_surface#1607.enter(wl_output#1913) -[2618119.437] {Default Queue} discarded wl_surface#1095.enter(wl_output#1913) -[2618119.442] {Default Queue} discarded wl_surface#1383.enter(wl_output#1913) -[2618119.446] {Default Queue} discarded wl_surface#487.enter(wl_output#1913) -[2618119.451] {Default Queue} discarded wl_surface#519.enter(wl_output#1913) -[2618119.456] {Default Queue} discarded wl_surface#295.enter(wl_output#1913) -[2618119.461] {Default Queue} discarded wl_surface#167.enter(wl_output#1913) -[2618119.466] {Default Queue} discarded wl_surface#1255.enter(wl_output#1913) -[2618119.471] {Default Queue} discarded wl_surface#679.enter(wl_output#1913) -[2618119.476] {Default Queue} wl_registry#1926.global(1, "wl_compositor", 6) -[2618119.484] {Default Queue} -> wl_registry#1926.bind(1, "wl_compositor", 1, new id [unknown]#1932) -[2618119.490] {Default Queue} wl_registry#1926.global(2, "wl_subcompositor", 1) -[2618119.497] {Default Queue} -> wl_registry#1926.bind(2, "wl_subcompositor", 1, new id [unknown]#1933) -[2618119.503] {Default Queue} wl_registry#1926.global(3, "xdg_wm_base", 6) -[2618119.509] {Default Queue} -> wl_registry#1926.bind(3, "xdg_wm_base", 1, new id [unknown]#1934) -[2618119.517] {Default Queue} wl_registry#1926.global(6, "zwlr_layer_shell_v1", 5) -[2618119.526] {Default Queue} wl_registry#1926.global(7, "ext_session_lock_manager_v1", 1) -[2618119.534] {Default Queue} wl_registry#1926.global(8, "wl_shm", 2) -[2618119.540] {Default Queue} -> wl_registry#1926.bind(8, "wl_shm", 1, new id [unknown]#1935) -[2618119.546] {Default Queue} -> wl_registry#1926.bind(8, "wl_shm", 1, new id [unknown]#1936) -[2618119.551] {Default Queue} -> wl_registry#1926.bind(8, "wl_shm", 1, new id [unknown]#1937) -[2618119.556] {Default Queue} wl_registry#1926.global(9, "zxdg_output_manager_v1", 3) -[2618119.562] {Default Queue} wl_registry#1926.global(10, "wp_fractional_scale_manager_v1", 1) -[2618119.567] {Default Queue} wl_registry#1926.global(11, "zwp_tablet_manager_v2", 1) -[2618119.572] {Default Queue} wl_registry#1926.global(12, "zwp_pointer_gestures_v1", 3) -[2618119.578] {Default Queue} wl_registry#1926.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618119.583] {Default Queue} -> wl_registry#1926.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1938) -[2618119.589] {Default Queue} wl_registry#1926.global(14, "zwp_pointer_constraints_v1", 1) -[2618119.595] {Default Queue} -> wl_registry#1926.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1939) -[2618119.601] {Default Queue} wl_registry#1926.global(15, "ext_idle_notifier_v1", 2) -[2618119.606] {Default Queue} wl_registry#1926.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618119.612] {Default Queue} wl_registry#1926.global(17, "wl_data_device_manager", 3) -[2618119.617] {Default Queue} -> wl_registry#1926.bind(17, "wl_data_device_manager", 2, new id [unknown]#1940) -[2618119.623] {Default Queue} -> wl_data_device_manager#1940.create_data_source(new id wl_data_source#1941) -[2618119.629] {Default Queue} -> wl_data_source#1941.offer("text/plain") -[2618119.634] {Default Queue} -> wl_data_source#1941.offer("text/plain;charset=utf-8") -[2618119.639] {Default Queue} -> wl_data_source#1941.offer("TEXT") -[2618119.644] {Default Queue} -> wl_data_source#1941.offer("STRING") -[2618119.649] {Default Queue} -> wl_data_source#1941.offer("UTF8_STRING") -[2618119.654] {Default Queue} wl_registry#1926.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618119.660] {Default Queue} -> wl_registry#1926.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1942) -[2618119.670] {Default Queue} -> zwp_primary_selection_device_manager_v1#1942.create_source(new id zwp_primary_selection_source_v1#1943) -[2618119.679] {Default Queue} -> zwp_primary_selection_source_v1#1943.offer("text/plain") -[2618119.685] {Default Queue} -> zwp_primary_selection_source_v1#1943.offer("text/plain;charset=utf-8") -[2618119.690] {Default Queue} -> zwp_primary_selection_source_v1#1943.offer("TEXT") -[2618119.695] {Default Queue} -> zwp_primary_selection_source_v1#1943.offer("STRING") -[2618119.700] {Default Queue} -> zwp_primary_selection_source_v1#1943.offer("UTF8_STRING") -[2618119.705] {Default Queue} wl_registry#1926.global(19, "zwlr_data_control_manager_v1", 2) -[2618119.711] {Default Queue} wl_registry#1926.global(20, "ext_data_control_manager_v1", 1) -[2618119.716] {Default Queue} wl_registry#1926.global(21, "wp_presentation", 2) -[2618119.722] {Default Queue} wl_registry#1926.global(22, "wp_security_context_manager_v1", 1) -[2618119.727] {Default Queue} wl_registry#1926.global(23, "zwp_text_input_manager_v3", 1) -[2618119.732] {Default Queue} wl_registry#1926.global(24, "zwp_input_method_manager_v2", 1) -[2618119.738] {Default Queue} wl_registry#1926.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618119.743] {Default Queue} wl_registry#1926.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618119.749] {Default Queue} wl_registry#1926.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618119.754] {Default Queue} wl_registry#1926.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618119.760] {Default Queue} wl_registry#1926.global(29, "ext_workspace_manager_v1", 1) -[2618119.765] {Default Queue} wl_registry#1926.global(30, "zwlr_output_manager_v1", 4) -[2618119.770] {Default Queue} wl_registry#1926.global(31, "zwlr_screencopy_manager_v1", 3) -[2618119.780] {Default Queue} wl_registry#1926.global(32, "wp_viewporter", 1) -[2618119.787] {Default Queue} wl_registry#1926.global(33, "zxdg_exporter_v2", 1) -[2618119.792] {Default Queue} wl_registry#1926.global(34, "zxdg_importer_v2", 1) -[2618119.798] {Default Queue} wl_registry#1926.global(36, "xdg_activation_v1", 1) -[2618119.803] {Default Queue} wl_registry#1926.global(37, "mutter_x11_interop", 1) -[2618119.808] {Default Queue} wl_registry#1926.global(38, "wl_seat", 9) -[2618119.814] {Default Queue} -> wl_registry#1926.bind(38, "wl_seat", 1, new id [unknown]#1944) -[2618119.820] {Default Queue} wl_registry#1926.global(39, "wp_cursor_shape_manager_v1", 2) -[2618119.825] {Default Queue} wl_registry#1926.global(40, "wl_output", 4) -[2618119.831] {Default Queue} -> wl_registry#1926.bind(40, "wl_output", 1, new id [unknown]#1945) -[2618119.836] {Default Queue} wl_callback#1927.done(0) -[2618119.842] {Default Queue} discarded wl_surface#1895.enter(wl_output#18) -[2618119.847] {Default Queue} discarded wl_surface#1895.enter(wl_output#57) -[2618119.852] {Default Queue} discarded wl_surface#1895.enter(wl_output#89) -[2618119.857] {Default Queue} discarded wl_surface#1895.enter(wl_output#121) -[2618119.868] {Default Queue} discarded wl_surface#1895.enter(wl_output#153) -[2618119.873] {Default Queue} discarded wl_surface#1895.enter(wl_output#185) -[2618119.878] {Default Queue} discarded wl_surface#1895.enter(wl_output#217) -[2618119.882] {Default Queue} discarded wl_surface#1895.enter(wl_output#249) -[2618119.887] {Default Queue} discarded wl_surface#1895.enter(wl_output#281) -[2618119.892] {Default Queue} discarded wl_surface#1895.enter(wl_output#313) -[2618119.897] {Default Queue} discarded wl_surface#1895.enter(wl_output#345) -[2618119.902] {Default Queue} discarded wl_surface#1895.enter(wl_output#377) -[2618119.907] {Default Queue} discarded wl_surface#1895.enter(wl_output#409) -[2618119.912] {Default Queue} discarded wl_surface#1895.enter(wl_output#441) -[2618119.917] {Default Queue} discarded wl_surface#1895.enter(wl_output#473) -[2618119.922] {Default Queue} discarded wl_surface#1895.enter(wl_output#505) -[2618119.926] {Default Queue} discarded wl_surface#1895.enter(wl_output#537) -[2618119.930] {Default Queue} discarded wl_surface#1895.enter(wl_output#569) -[2618119.934] {Default Queue} discarded wl_surface#1895.enter(wl_output#601) -[2618119.938] {Default Queue} discarded wl_surface#1895.enter(wl_output#633) -[2618119.942] {Default Queue} discarded wl_surface#1895.enter(wl_output#665) -[2618119.946] {Default Queue} discarded wl_surface#1895.enter(wl_output#697) -[2618119.949] {Default Queue} discarded wl_surface#1895.enter(wl_output#729) -[2618119.953] {Default Queue} discarded wl_surface#1895.enter(wl_output#761) -[2618119.957] {Default Queue} discarded wl_surface#1895.enter(wl_output#793) -[2618119.961] {Default Queue} discarded wl_surface#1895.enter(wl_output#825) -[2618119.965] {Default Queue} discarded wl_surface#1895.enter(wl_output#857) -[2618119.969] {Default Queue} discarded wl_surface#1895.enter(wl_output#889) -[2618119.973] {Default Queue} discarded wl_surface#1895.enter(wl_output#921) -[2618119.977] {Default Queue} discarded wl_surface#1895.enter(wl_output#953) -[2618119.981] {Default Queue} discarded wl_surface#1895.enter(wl_output#985) -[2618119.985] {Default Queue} discarded wl_surface#1895.enter(wl_output#1017) -[2618119.988] {Default Queue} discarded wl_surface#1895.enter(wl_output#1049) -[2618119.992] {Default Queue} discarded wl_surface#1895.enter(wl_output#1081) -[2618119.996] {Default Queue} discarded wl_surface#1895.enter(wl_output#1113) -[2618120.000] {Default Queue} discarded wl_surface#1895.enter(wl_output#1145) -[2618120.004] {Default Queue} discarded wl_surface#1895.enter(wl_output#1177) -[2618120.008] {Default Queue} discarded wl_surface#1895.enter(wl_output#1209) -[2618120.012] {Default Queue} discarded wl_surface#1895.enter(wl_output#1241) -[2618120.016] {Default Queue} discarded wl_surface#1895.enter(wl_output#1273) -[2618120.020] {Default Queue} discarded wl_surface#1895.enter(wl_output#1305) -[2618120.024] {Default Queue} discarded wl_surface#1895.enter(wl_output#1337) -[2618120.029] {Default Queue} discarded wl_surface#1895.enter(wl_output#1369) -[2618120.034] {Default Queue} discarded wl_surface#1895.enter(wl_output#1401) -[2618120.038] {Default Queue} discarded wl_surface#1895.enter(wl_output#1433) -[2618120.042] {Default Queue} discarded wl_surface#1895.enter(wl_output#1465) -[2618120.046] {Default Queue} discarded wl_surface#1895.enter(wl_output#1497) -[2618120.050] {Default Queue} discarded wl_surface#1895.enter(wl_output#1529) -[2618120.054] {Default Queue} discarded wl_surface#1895.enter(wl_output#1561) -[2618120.058] {Default Queue} discarded wl_surface#1895.enter(wl_output#1593) -[2618120.062] {Default Queue} discarded wl_surface#1895.enter(wl_output#1625) -[2618120.066] {Default Queue} discarded wl_surface#1895.enter(wl_output#1657) -[2618120.070] {Default Queue} discarded wl_surface#1895.enter(wl_output#1689) -[2618120.074] {Default Queue} discarded wl_surface#1895.enter(wl_output#1721) -[2618120.078] {Default Queue} discarded wl_surface#1895.enter(wl_output#1753) -[2618120.082] {Default Queue} discarded wl_surface#1895.enter(wl_output#1785) -[2618120.086] {Default Queue} discarded wl_surface#1895.enter(wl_output#1817) -[2618120.090] {Default Queue} discarded wl_surface#1895.enter(wl_output#1849) -[2618120.096] {Default Queue} discarded wl_surface#1895.enter(wl_output#1881) -[2618120.100] {Default Queue} discarded wl_surface#1895.enter(wl_output#1913) -[2618120.104] {Default Queue} -> wl_compositor#876.create_surface(new id wl_surface#1927) -[2618120.109] {Default Queue} -> wl_subcompositor#1933.get_subsurface(new id wl_subsurface#1946, wl_surface#1927, wl_surface#871) -[2618120.117] {Default Queue} -> wl_subsurface#1946.set_desync() -[2618120.122] {Default Queue} -> wl_subsurface#1946.set_position(0, 0) -[2618120.126] {Default Queue} -> wl_subsurface#1946.place_above(wl_surface#871) -[2618120.171] {Default Queue} -> wl_shm#1935.create_pool(new id wl_shm_pool#1947, fd 309, 16) -[2618120.178] {Default Queue} -> wl_shm#1935.create_pool(new id wl_shm_pool#1948, fd 310, 16) -[2618120.182] {Default Queue} -> wl_shm_pool#1947.create_buffer(new id wl_buffer#1949, 0, 2, 2, 8, 0) -[2618120.187] {Default Queue} -> wl_shm_pool#1948.create_buffer(new id wl_buffer#1950, 0, 2, 2, 8, 0) -[2618120.195] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) -[2618120.199] {Default Queue} -> wl_surface#1927.commit() -[2618120.205] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) -[2618120.209] {Default Queue} -> wl_surface#1927.commit() -[2618120.213] {Default Queue} -> wl_compositor#1932.create_region(new id wl_region#1951) -[2618120.218] {Default Queue} -> wl_compositor#1932.create_region(new id wl_region#1952) -[2618120.222] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) -[2618120.227] {Default Queue} -> wl_region#1951.add(0, 0, 0, 0) -[2618120.231] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618120.235] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618120.239] {Default Queue} -> wl_surface#1927.damage(0, 0, 2, 2) -[2618120.244] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) -[2618120.251] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) -[2618120.255] {Default Queue} -> wl_surface#1927.commit() -[2618120.291] {Default Queue} -> wl_shm#1937.create_pool(new id wl_shm_pool#1953, fd 313, 640) -[2618120.298] {Default Queue} -> wl_shm#1937.create_pool(new id wl_shm_pool#1954, fd 314, 640) -[2618120.302] {Default Queue} -> wl_shm_pool#1953.create_buffer(new id wl_buffer#1955, 0, 10, 16, 40, 0) -[2618120.307] {Default Queue} -> wl_shm_pool#1954.create_buffer(new id wl_buffer#1956, 0, 10, 16, 40, 0) -[2618120.314] {Default Queue} -> wl_compositor#1932.create_surface(new id wl_surface#1957) -[2618120.318] {Default Queue} -> wl_surface#1957.attach(wl_buffer#1955, 0, 0) -[2618120.323] {Default Queue} -> wl_surface#1957.commit() -[2618120.329] {Default Queue} -> wl_surface#1957.attach(wl_buffer#1955, 0, 0) -[2618120.333] {Default Queue} -> wl_surface#1957.commit() -[2618120.341] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) -[2618120.348] {Default Queue} -> wl_surface#1927.damage(0, 0, 2, 2) -[2618120.353] {Default Queue} -> wl_surface#1927.damage(0, 0, 2, 2) -[2618120.361] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1958) -[2618120.366] {Default Queue} -> wl_display#1.sync(new id wl_callback#1959) -[2618124.077] {Display Queue} wl_display#1.delete_id(1959) -[2618124.087] {Default Queue} wl_keyboard#1928.keymap(1, fd 309, 68213) -[2618124.094] {Default Queue} wl_keyboard#1928.enter(566, wl_surface#19, array[0]) -[2618124.100] {Default Queue} wl_keyboard#1928.modifiers(566, 0, 0, 16, 0) -[2618124.106] {Default Queue} discarded wl_shm#1935.format(875709016) -[2618124.111] {Default Queue} discarded wl_shm#1935.format(1) -[2618124.116] {Default Queue} discarded wl_shm#1935.format(0) -[2618124.121] {Default Queue} discarded wl_shm#1935.format(875708993) -[2618124.126] {Default Queue} discarded wl_shm#1936.format(875709016) -[2618124.131] {Default Queue} discarded wl_shm#1936.format(1) -[2618124.135] {Default Queue} discarded wl_shm#1936.format(0) -[2618124.140] {Default Queue} discarded wl_shm#1936.format(875708993) -[2618124.145] {Default Queue} discarded wl_shm#1937.format(875709016) -[2618124.150] {Default Queue} discarded wl_shm#1937.format(1) -[2618124.155] {Default Queue} discarded wl_shm#1937.format(0) -[2618124.160] {Default Queue} discarded wl_shm#1937.format(875708993) -[2618124.164] {Default Queue} wl_seat#1944.capabilities(7) -[2618124.170] {Default Queue} -> wl_seat#1944.get_keyboard(new id wl_keyboard#1960) -[2618124.175] {Default Queue} -> wl_seat#1944.get_pointer(new id wl_pointer#1961) -[2618124.181] {Default Queue} -> wl_data_device_manager#1940.get_data_device(new id wl_data_device#1962, wl_seat#1944) -[2618124.186] {Default Queue} -> zwp_primary_selection_device_manager_v1#1942.get_device(new id zwp_primary_selection_device_v1#1963, wl_seat#1944) -[2618124.196] {Default Queue} wl_output#1945.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618124.202] {Default Queue} wl_output#1945.mode(3, 1280, 800, 60000) -[2618124.208] {Default Queue} discarded wl_surface#3.enter(wl_output#1945) -[2618124.213] {Default Queue} discarded wl_surface#999.enter(wl_output#1945) -[2618124.218] {Default Queue} discarded wl_surface#1191.enter(wl_output#1945) -[2618124.223] {Default Queue} discarded wl_surface#1159.enter(wl_output#1945) -[2618124.228] {Default Queue} discarded wl_surface#1703.enter(wl_output#1945) -[2618124.232] {Default Queue} discarded wl_surface#423.enter(wl_output#1945) -[2618124.237] {Default Queue} discarded wl_surface#1447.enter(wl_output#1945) -[2618124.242] {Default Queue} discarded wl_surface#1639.enter(wl_output#1945) -[2618124.247] {Default Queue} discarded wl_surface#1319.enter(wl_output#1945) -[2618124.252] {Default Queue} discarded wl_surface#1127.enter(wl_output#1945) -[2618124.257] {Default Queue} discarded wl_surface#1063.enter(wl_output#1945) -[2618124.262] {Default Queue} discarded wl_surface#455.enter(wl_output#1945) -[2618124.266] {Default Queue} discarded wl_surface#1575.enter(wl_output#1945) -[2618124.271] {Default Queue} discarded wl_surface#1799.enter(wl_output#1945) -[2618124.276] {Default Queue} discarded wl_surface#1415.enter(wl_output#1945) -[2618124.281] {Default Queue} discarded wl_surface#1831.enter(wl_output#1945) -[2618124.286] {Default Queue} discarded wl_surface#903.enter(wl_output#1945) -[2618124.290] {Default Queue} discarded wl_surface#775.enter(wl_output#1945) -[2618124.295] {Default Queue} discarded wl_surface#1543.enter(wl_output#1945) -[2618124.300] {Default Queue} discarded wl_surface#135.enter(wl_output#1945) -[2618124.305] {Default Queue} discarded wl_surface#1287.enter(wl_output#1945) -[2618124.310] {Default Queue} discarded wl_surface#1031.enter(wl_output#1945) -[2618124.315] {Default Queue} discarded wl_surface#615.enter(wl_output#1945) -[2618124.320] {Default Queue} discarded wl_surface#231.enter(wl_output#1945) -[2618124.325] {Default Queue} discarded wl_surface#1863.enter(wl_output#1945) -[2618124.329] {Default Queue} discarded wl_surface#359.enter(wl_output#1945) -[2618124.339] {Default Queue} discarded wl_surface#583.enter(wl_output#1945) -[2618124.347] {Default Queue} discarded wl_surface#743.enter(wl_output#1945) -[2618124.352] {Default Queue} discarded wl_surface#967.enter(wl_output#1945) -[2618124.357] {Default Queue} discarded wl_surface#103.enter(wl_output#1945) -[2618124.361] {Default Queue} discarded wl_surface#327.enter(wl_output#1945) -[2618124.366] {Default Queue} discarded wl_surface#43.enter(wl_output#1945) -[2618124.371] {Default Queue} discarded wl_surface#807.enter(wl_output#1945) -[2618124.376] {Default Queue} discarded wl_surface#19.enter(wl_output#1945) -[2618124.381] {Default Queue} discarded wl_surface#1511.enter(wl_output#1945) -[2618124.386] {Default Queue} discarded wl_surface#199.enter(wl_output#1945) -[2618124.390] {Default Queue} discarded wl_surface#391.enter(wl_output#1945) -[2618124.395] {Default Queue} discarded wl_surface#935.enter(wl_output#1945) -[2618124.400] {Default Queue} discarded wl_surface#1671.enter(wl_output#1945) -[2618124.405] {Default Queue} discarded wl_surface#1351.enter(wl_output#1945) -[2618124.410] {Default Queue} discarded wl_surface#711.enter(wl_output#1945) -[2618124.415] {Default Queue} discarded wl_surface#1223.enter(wl_output#1945) -[2618124.420] {Default Queue} discarded wl_surface#871.enter(wl_output#1945) -[2618124.425] {Default Queue} discarded wl_surface#1895.enter(wl_output#1945) -[2618124.429] {Default Queue} discarded wl_surface#263.enter(wl_output#1945) -[2618124.434] {Default Queue} discarded wl_surface#551.enter(wl_output#1945) -[2618124.439] {Default Queue} discarded wl_surface#1735.enter(wl_output#1945) -[2618124.444] {Default Queue} discarded wl_surface#1479.enter(wl_output#1945) -[2618124.449] {Default Queue} discarded wl_surface#1772.enter(wl_output#1945) -[2618124.454] {Default Queue} discarded wl_surface#647.enter(wl_output#1945) -[2618124.459] {Default Queue} discarded wl_surface#71.enter(wl_output#1945) -[2618124.464] {Default Queue} discarded wl_surface#839.enter(wl_output#1945) -[2618124.469] {Default Queue} discarded wl_surface#1607.enter(wl_output#1945) -[2618124.474] {Default Queue} discarded wl_surface#1095.enter(wl_output#1945) -[2618124.479] {Default Queue} discarded wl_surface#1383.enter(wl_output#1945) -[2618124.484] {Default Queue} discarded wl_surface#487.enter(wl_output#1945) -[2618124.489] {Default Queue} discarded wl_surface#519.enter(wl_output#1945) -[2618124.494] {Default Queue} discarded wl_surface#295.enter(wl_output#1945) -[2618124.499] {Default Queue} discarded wl_surface#167.enter(wl_output#1945) -[2618124.504] {Default Queue} discarded wl_surface#1255.enter(wl_output#1945) -[2618124.509] {Default Queue} discarded wl_surface#679.enter(wl_output#1945) -[2618124.514] {Default Queue} wl_registry#1958.global(1, "wl_compositor", 6) -[2618124.520] {Default Queue} -> wl_registry#1958.bind(1, "wl_compositor", 1, new id [unknown]#1964) -[2618124.526] {Default Queue} wl_registry#1958.global(2, "wl_subcompositor", 1) -[2618124.531] {Default Queue} -> wl_registry#1958.bind(2, "wl_subcompositor", 1, new id [unknown]#1965) -[2618124.537] {Default Queue} wl_registry#1958.global(3, "xdg_wm_base", 6) -[2618124.543] {Default Queue} -> wl_registry#1958.bind(3, "xdg_wm_base", 1, new id [unknown]#1966) -[2618124.550] {Default Queue} wl_registry#1958.global(6, "zwlr_layer_shell_v1", 5) -[2618124.556] {Default Queue} wl_registry#1958.global(7, "ext_session_lock_manager_v1", 1) -[2618124.561] {Default Queue} wl_registry#1958.global(8, "wl_shm", 2) -[2618124.567] {Default Queue} -> wl_registry#1958.bind(8, "wl_shm", 1, new id [unknown]#1967) -[2618124.572] {Default Queue} -> wl_registry#1958.bind(8, "wl_shm", 1, new id [unknown]#1968) -[2618124.578] {Default Queue} -> wl_registry#1958.bind(8, "wl_shm", 1, new id [unknown]#1969) -[2618124.584] {Default Queue} wl_registry#1958.global(9, "zxdg_output_manager_v1", 3) -[2618124.589] {Default Queue} wl_registry#1958.global(10, "wp_fractional_scale_manager_v1", 1) -[2618124.594] {Default Queue} wl_registry#1958.global(11, "zwp_tablet_manager_v2", 1) -[2618124.600] {Default Queue} wl_registry#1958.global(12, "zwp_pointer_gestures_v1", 3) -[2618124.609] {Default Queue} wl_registry#1958.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618124.616] {Default Queue} -> wl_registry#1958.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#1970) -[2618124.622] {Default Queue} wl_registry#1958.global(14, "zwp_pointer_constraints_v1", 1) -[2618124.627] {Default Queue} -> wl_registry#1958.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#1971) -[2618124.633] {Default Queue} wl_registry#1958.global(15, "ext_idle_notifier_v1", 2) -[2618124.638] {Default Queue} wl_registry#1958.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618124.644] {Default Queue} wl_registry#1958.global(17, "wl_data_device_manager", 3) -[2618124.650] {Default Queue} -> wl_registry#1958.bind(17, "wl_data_device_manager", 2, new id [unknown]#1972) -[2618124.656] {Default Queue} -> wl_data_device_manager#1972.create_data_source(new id wl_data_source#1973) -[2618124.661] {Default Queue} -> wl_data_source#1973.offer("text/plain") -[2618124.666] {Default Queue} -> wl_data_source#1973.offer("text/plain;charset=utf-8") -[2618124.671] {Default Queue} -> wl_data_source#1973.offer("TEXT") -[2618124.676] {Default Queue} -> wl_data_source#1973.offer("STRING") -[2618124.682] {Default Queue} -> wl_data_source#1973.offer("UTF8_STRING") -[2618124.687] {Default Queue} wl_registry#1958.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618124.693] {Default Queue} -> wl_registry#1958.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#1974) -[2618124.702] {Default Queue} -> zwp_primary_selection_device_manager_v1#1974.create_source(new id zwp_primary_selection_source_v1#1975) -[2618124.712] {Default Queue} -> zwp_primary_selection_source_v1#1975.offer("text/plain") -[2618124.717] {Default Queue} -> zwp_primary_selection_source_v1#1975.offer("text/plain;charset=utf-8") -[2618124.722] {Default Queue} -> zwp_primary_selection_source_v1#1975.offer("TEXT") -[2618124.727] {Default Queue} -> zwp_primary_selection_source_v1#1975.offer("STRING") -[2618124.732] {Default Queue} -> zwp_primary_selection_source_v1#1975.offer("UTF8_STRING") -[2618124.737] {Default Queue} wl_registry#1958.global(19, "zwlr_data_control_manager_v1", 2) -[2618124.743] {Default Queue} wl_registry#1958.global(20, "ext_data_control_manager_v1", 1) -[2618124.748] {Default Queue} wl_registry#1958.global(21, "wp_presentation", 2) -[2618124.754] {Default Queue} wl_registry#1958.global(22, "wp_security_context_manager_v1", 1) -[2618124.759] {Default Queue} wl_registry#1958.global(23, "zwp_text_input_manager_v3", 1) -[2618124.765] {Default Queue} wl_registry#1958.global(24, "zwp_input_method_manager_v2", 1) -[2618124.770] {Default Queue} wl_registry#1958.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618124.776] {Default Queue} wl_registry#1958.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618124.781] {Default Queue} wl_registry#1958.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618124.787] {Default Queue} wl_registry#1958.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618124.792] {Default Queue} wl_registry#1958.global(29, "ext_workspace_manager_v1", 1) -[2618124.797] {Default Queue} wl_registry#1958.global(30, "zwlr_output_manager_v1", 4) -[2618124.803] {Default Queue} wl_registry#1958.global(31, "zwlr_screencopy_manager_v1", 3) -[2618124.809] {Default Queue} wl_registry#1958.global(32, "wp_viewporter", 1) -[2618124.814] {Default Queue} wl_registry#1958.global(33, "zxdg_exporter_v2", 1) -[2618124.820] {Default Queue} wl_registry#1958.global(34, "zxdg_importer_v2", 1) -[2618124.825] {Default Queue} wl_registry#1958.global(36, "xdg_activation_v1", 1) -[2618124.830] {Default Queue} wl_registry#1958.global(37, "mutter_x11_interop", 1) -[2618124.836] {Default Queue} wl_registry#1958.global(38, "wl_seat", 9) -[2618124.841] {Default Queue} -> wl_registry#1958.bind(38, "wl_seat", 1, new id [unknown]#1976) -[2618124.847] {Default Queue} wl_registry#1958.global(39, "wp_cursor_shape_manager_v1", 2) -[2618124.852] {Default Queue} wl_registry#1958.global(40, "wl_output", 4) -[2618124.863] {Default Queue} -> wl_registry#1958.bind(40, "wl_output", 1, new id [unknown]#1977) -[2618124.875] {Default Queue} wl_callback#1959.done(0) -[2618124.881] {Default Queue} discarded wl_surface#1927.enter(wl_output#18) -[2618124.886] {Default Queue} discarded wl_surface#1927.enter(wl_output#57) -[2618124.891] {Default Queue} discarded wl_surface#1927.enter(wl_output#89) -[2618124.896] {Default Queue} discarded wl_surface#1927.enter(wl_output#121) -[2618124.901] {Default Queue} discarded wl_surface#1927.enter(wl_output#153) -[2618124.906] {Default Queue} discarded wl_surface#1927.enter(wl_output#185) -[2618124.911] {Default Queue} discarded wl_surface#1927.enter(wl_output#217) -[2618124.916] {Default Queue} discarded wl_surface#1927.enter(wl_output#249) -[2618124.921] {Default Queue} discarded wl_surface#1927.enter(wl_output#281) -[2618124.926] {Default Queue} discarded wl_surface#1927.enter(wl_output#313) -[2618124.930] {Default Queue} discarded wl_surface#1927.enter(wl_output#345) -[2618124.935] {Default Queue} discarded wl_surface#1927.enter(wl_output#377) -[2618124.940] {Default Queue} discarded wl_surface#1927.enter(wl_output#409) -[2618124.945] {Default Queue} discarded wl_surface#1927.enter(wl_output#441) -[2618124.950] {Default Queue} discarded wl_surface#1927.enter(wl_output#473) -[2618124.955] {Default Queue} discarded wl_surface#1927.enter(wl_output#505) -[2618124.959] {Default Queue} discarded wl_surface#1927.enter(wl_output#537) -[2618124.963] {Default Queue} discarded wl_surface#1927.enter(wl_output#569) -[2618124.966] {Default Queue} discarded wl_surface#1927.enter(wl_output#601) -[2618124.970] {Default Queue} discarded wl_surface#1927.enter(wl_output#633) -[2618124.974] {Default Queue} discarded wl_surface#1927.enter(wl_output#665) -[2618124.978] {Default Queue} discarded wl_surface#1927.enter(wl_output#697) -[2618124.982] {Default Queue} discarded wl_surface#1927.enter(wl_output#729) -[2618124.986] {Default Queue} discarded wl_surface#1927.enter(wl_output#761) -[2618124.990] {Default Queue} discarded wl_surface#1927.enter(wl_output#793) -[2618124.994] {Default Queue} discarded wl_surface#1927.enter(wl_output#825) -[2618124.998] {Default Queue} discarded wl_surface#1927.enter(wl_output#857) -[2618125.002] {Default Queue} discarded wl_surface#1927.enter(wl_output#889) -[2618125.006] {Default Queue} discarded wl_surface#1927.enter(wl_output#921) -[2618125.010] {Default Queue} discarded wl_surface#1927.enter(wl_output#953) -[2618125.014] {Default Queue} discarded wl_surface#1927.enter(wl_output#985) -[2618125.018] {Default Queue} discarded wl_surface#1927.enter(wl_output#1017) -[2618125.022] {Default Queue} discarded wl_surface#1927.enter(wl_output#1049) -[2618125.026] {Default Queue} discarded wl_surface#1927.enter(wl_output#1081) -[2618125.030] {Default Queue} discarded wl_surface#1927.enter(wl_output#1113) -[2618125.034] {Default Queue} discarded wl_surface#1927.enter(wl_output#1145) -[2618125.038] {Default Queue} discarded wl_surface#1927.enter(wl_output#1177) -[2618125.042] {Default Queue} discarded wl_surface#1927.enter(wl_output#1209) -[2618125.045] {Default Queue} discarded wl_surface#1927.enter(wl_output#1241) -[2618125.049] {Default Queue} discarded wl_surface#1927.enter(wl_output#1273) -[2618125.053] {Default Queue} discarded wl_surface#1927.enter(wl_output#1305) -[2618125.057] {Default Queue} discarded wl_surface#1927.enter(wl_output#1337) -[2618125.061] {Default Queue} discarded wl_surface#1927.enter(wl_output#1369) -[2618125.065] {Default Queue} discarded wl_surface#1927.enter(wl_output#1401) -[2618125.069] {Default Queue} discarded wl_surface#1927.enter(wl_output#1433) -[2618125.073] {Default Queue} discarded wl_surface#1927.enter(wl_output#1465) -[2618125.077] {Default Queue} discarded wl_surface#1927.enter(wl_output#1497) -[2618125.081] {Default Queue} discarded wl_surface#1927.enter(wl_output#1529) -[2618125.085] {Default Queue} discarded wl_surface#1927.enter(wl_output#1561) -[2618125.089] {Default Queue} discarded wl_surface#1927.enter(wl_output#1593) -[2618125.093] {Default Queue} discarded wl_surface#1927.enter(wl_output#1625) -[2618125.100] {Default Queue} discarded wl_surface#1927.enter(wl_output#1657) -[2618125.105] {Default Queue} discarded wl_surface#1927.enter(wl_output#1689) -[2618125.110] {Default Queue} discarded wl_surface#1927.enter(wl_output#1721) -[2618125.114] {Default Queue} discarded wl_surface#1927.enter(wl_output#1753) -[2618125.118] {Default Queue} discarded wl_surface#1927.enter(wl_output#1785) -[2618125.121] {Default Queue} discarded wl_surface#1927.enter(wl_output#1817) -[2618125.125] {Default Queue} discarded wl_surface#1927.enter(wl_output#1849) -[2618125.129] {Default Queue} discarded wl_surface#1927.enter(wl_output#1881) -[2618125.133] {Default Queue} discarded wl_surface#1927.enter(wl_output#1913) -[2618125.137] {Default Queue} discarded wl_surface#1927.enter(wl_output#1945) -[2618125.141] {Default Queue} -> wl_compositor#1932.create_surface(new id wl_surface#1959) -[2618125.145] {Default Queue} -> wl_subcompositor#1965.get_subsurface(new id wl_subsurface#1978, wl_surface#1959, wl_surface#1927) -[2618125.153] {Default Queue} -> wl_subsurface#1978.set_desync() -[2618125.157] {Default Queue} -> wl_subsurface#1978.set_position(0, 0) -[2618125.162] {Default Queue} -> wl_subsurface#1978.place_above(wl_surface#1927) -[2618125.208] {Default Queue} -> wl_shm#1967.create_pool(new id wl_shm_pool#1979, fd 314, 16) -[2618125.214] {Default Queue} -> wl_shm#1967.create_pool(new id wl_shm_pool#1980, fd 315, 16) -[2618125.219] {Default Queue} -> wl_shm_pool#1979.create_buffer(new id wl_buffer#1981, 0, 2, 2, 8, 0) -[2618125.224] {Default Queue} -> wl_shm_pool#1980.create_buffer(new id wl_buffer#1982, 0, 2, 2, 8, 0) -[2618125.232] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1981, 0, 0) -[2618125.236] {Default Queue} -> wl_surface#1959.commit() -[2618125.241] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1981, 0, 0) -[2618125.246] {Default Queue} -> wl_surface#1959.commit() -[2618125.250] {Default Queue} -> wl_compositor#1964.create_region(new id wl_region#1983) -[2618125.254] {Default Queue} -> wl_compositor#1964.create_region(new id wl_region#1984) -[2618125.258] {Default Queue} -> wl_region#1983.subtract(0, 0, 2, 2) -[2618125.263] {Default Queue} -> wl_region#1983.add(0, 0, 0, 0) -[2618125.268] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) -[2618125.272] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) -[2618125.276] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) -[2618125.280] {Default Queue} -> wl_surface#1927.damage(0, 0, 2, 2) -[2618125.287] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1981, 0, 0) -[2618125.291] {Default Queue} -> wl_surface#1959.commit() -[2618125.325] {Default Queue} -> wl_shm#1969.create_pool(new id wl_shm_pool#1985, fd 318, 640) -[2618125.331] {Default Queue} -> wl_shm#1969.create_pool(new id wl_shm_pool#1986, fd 319, 640) -[2618125.336] {Default Queue} -> wl_shm_pool#1985.create_buffer(new id wl_buffer#1987, 0, 10, 16, 40, 0) -[2618125.340] {Default Queue} -> wl_shm_pool#1986.create_buffer(new id wl_buffer#1988, 0, 10, 16, 40, 0) -[2618125.347] {Default Queue} -> wl_compositor#1964.create_surface(new id wl_surface#1989) -[2618125.351] {Default Queue} -> wl_surface#1989.attach(wl_buffer#1987, 0, 0) -[2618125.356] {Default Queue} -> wl_surface#1989.commit() -[2618125.361] {Default Queue} -> wl_surface#1989.attach(wl_buffer#1987, 0, 0) -[2618125.365] {Default Queue} -> wl_surface#1989.commit() -[2618125.371] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) -[2618125.378] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#1990) -[2618125.383] {Default Queue} -> wl_display#1.sync(new id wl_callback#1991) -[2618129.062] {Display Queue} wl_display#1.delete_id(1991) -[2618129.078] {Default Queue} wl_keyboard#1960.keymap(1, fd 314, 68213) -[2618129.085] {Default Queue} wl_keyboard#1960.enter(566, wl_surface#19, array[0]) -[2618129.092] {Default Queue} wl_keyboard#1960.modifiers(566, 0, 0, 16, 0) -[2618129.097] {Default Queue} discarded wl_shm#1967.format(875709016) -[2618129.103] {Default Queue} discarded wl_shm#1967.format(1) -[2618129.113] {Default Queue} discarded wl_shm#1967.format(0) -[2618129.122] {Default Queue} discarded wl_shm#1967.format(875708993) -[2618129.127] {Default Queue} discarded wl_shm#1968.format(875709016) -[2618129.132] {Default Queue} discarded wl_shm#1968.format(1) -[2618129.138] {Default Queue} discarded wl_shm#1968.format(0) -[2618129.143] {Default Queue} discarded wl_shm#1968.format(875708993) -[2618129.148] {Default Queue} discarded wl_shm#1969.format(875709016) -[2618129.153] {Default Queue} discarded wl_shm#1969.format(1) -[2618129.158] {Default Queue} discarded wl_shm#1969.format(0) -[2618129.162] {Default Queue} discarded wl_shm#1969.format(875708993) -[2618129.167] {Default Queue} wl_seat#1976.capabilities(7) -[2618129.173] {Default Queue} -> wl_seat#1976.get_keyboard(new id wl_keyboard#1992) -[2618129.179] {Default Queue} -> wl_seat#1976.get_pointer(new id wl_pointer#1993) -[2618129.184] {Default Queue} -> wl_data_device_manager#1972.get_data_device(new id wl_data_device#1994, wl_seat#1976) -[2618129.190] {Default Queue} -> zwp_primary_selection_device_manager_v1#1974.get_device(new id zwp_primary_selection_device_v1#1995, wl_seat#1976) -[2618129.200] {Default Queue} wl_output#1977.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618129.206] {Default Queue} wl_output#1977.mode(3, 1280, 800, 60000) -[2618129.212] {Default Queue} discarded wl_surface#3.enter(wl_output#1977) -[2618129.217] {Default Queue} discarded wl_surface#999.enter(wl_output#1977) -[2618129.222] {Default Queue} discarded wl_surface#1191.enter(wl_output#1977) -[2618129.227] {Default Queue} discarded wl_surface#1159.enter(wl_output#1977) -[2618129.232] {Default Queue} discarded wl_surface#1703.enter(wl_output#1977) -[2618129.237] {Default Queue} discarded wl_surface#423.enter(wl_output#1977) -[2618129.241] {Default Queue} discarded wl_surface#1447.enter(wl_output#1977) -[2618129.246] {Default Queue} discarded wl_surface#1639.enter(wl_output#1977) -[2618129.251] {Default Queue} discarded wl_surface#1319.enter(wl_output#1977) -[2618129.256] {Default Queue} discarded wl_surface#1127.enter(wl_output#1977) -[2618129.261] {Default Queue} discarded wl_surface#1063.enter(wl_output#1977) -[2618129.266] {Default Queue} discarded wl_surface#455.enter(wl_output#1977) -[2618129.271] {Default Queue} discarded wl_surface#1575.enter(wl_output#1977) -[2618129.275] {Default Queue} discarded wl_surface#1799.enter(wl_output#1977) -[2618129.280] {Default Queue} discarded wl_surface#1415.enter(wl_output#1977) -[2618129.285] {Default Queue} discarded wl_surface#1831.enter(wl_output#1977) -[2618129.290] {Default Queue} discarded wl_surface#903.enter(wl_output#1977) -[2618129.295] {Default Queue} discarded wl_surface#775.enter(wl_output#1977) -[2618129.300] {Default Queue} discarded wl_surface#1543.enter(wl_output#1977) -[2618129.304] {Default Queue} discarded wl_surface#135.enter(wl_output#1977) -[2618129.309] {Default Queue} discarded wl_surface#1287.enter(wl_output#1977) -[2618129.314] {Default Queue} discarded wl_surface#1031.enter(wl_output#1977) -[2618129.319] {Default Queue} discarded wl_surface#615.enter(wl_output#1977) -[2618129.324] {Default Queue} discarded wl_surface#231.enter(wl_output#1977) -[2618129.329] {Default Queue} discarded wl_surface#1863.enter(wl_output#1977) -[2618129.334] {Default Queue} discarded wl_surface#359.enter(wl_output#1977) -[2618129.339] {Default Queue} discarded wl_surface#583.enter(wl_output#1977) -[2618129.344] {Default Queue} discarded wl_surface#743.enter(wl_output#1977) -[2618129.349] {Default Queue} discarded wl_surface#967.enter(wl_output#1977) -[2618129.354] {Default Queue} discarded wl_surface#103.enter(wl_output#1977) -[2618129.359] {Default Queue} discarded wl_surface#327.enter(wl_output#1977) -[2618129.363] {Default Queue} discarded wl_surface#43.enter(wl_output#1977) -[2618129.368] {Default Queue} discarded wl_surface#807.enter(wl_output#1977) -[2618129.373] {Default Queue} discarded wl_surface#19.enter(wl_output#1977) -[2618129.378] {Default Queue} discarded wl_surface#1511.enter(wl_output#1977) -[2618129.383] {Default Queue} discarded wl_surface#199.enter(wl_output#1977) -[2618129.393] {Default Queue} discarded wl_surface#391.enter(wl_output#1977) -[2618129.399] {Default Queue} discarded wl_surface#935.enter(wl_output#1977) -[2618129.404] {Default Queue} discarded wl_surface#1671.enter(wl_output#1977) -[2618129.409] {Default Queue} discarded wl_surface#1351.enter(wl_output#1977) -[2618129.414] {Default Queue} discarded wl_surface#711.enter(wl_output#1977) -[2618129.419] {Default Queue} discarded wl_surface#1223.enter(wl_output#1977) -[2618129.424] {Default Queue} discarded wl_surface#1927.enter(wl_output#1977) -[2618129.429] {Default Queue} discarded wl_surface#871.enter(wl_output#1977) -[2618129.434] {Default Queue} discarded wl_surface#1895.enter(wl_output#1977) -[2618129.439] {Default Queue} discarded wl_surface#263.enter(wl_output#1977) -[2618129.444] {Default Queue} discarded wl_surface#551.enter(wl_output#1977) -[2618129.449] {Default Queue} discarded wl_surface#1735.enter(wl_output#1977) -[2618129.454] {Default Queue} discarded wl_surface#1479.enter(wl_output#1977) -[2618129.458] {Default Queue} discarded wl_surface#1772.enter(wl_output#1977) -[2618129.463] {Default Queue} discarded wl_surface#647.enter(wl_output#1977) -[2618129.468] {Default Queue} discarded wl_surface#71.enter(wl_output#1977) -[2618129.473] {Default Queue} discarded wl_surface#839.enter(wl_output#1977) -[2618129.478] {Default Queue} discarded wl_surface#1607.enter(wl_output#1977) -[2618129.483] {Default Queue} discarded wl_surface#1095.enter(wl_output#1977) -[2618129.488] {Default Queue} discarded wl_surface#1383.enter(wl_output#1977) -[2618129.492] {Default Queue} discarded wl_surface#487.enter(wl_output#1977) -[2618129.497] {Default Queue} discarded wl_surface#519.enter(wl_output#1977) -[2618129.502] {Default Queue} discarded wl_surface#295.enter(wl_output#1977) -[2618129.507] {Default Queue} discarded wl_surface#167.enter(wl_output#1977) -[2618129.512] {Default Queue} discarded wl_surface#1255.enter(wl_output#1977) -[2618129.517] {Default Queue} discarded wl_surface#679.enter(wl_output#1977) -[2618129.521] {Default Queue} wl_registry#1990.global(1, "wl_compositor", 6) -[2618129.528] {Default Queue} -> wl_registry#1990.bind(1, "wl_compositor", 1, new id [unknown]#1996) -[2618129.534] {Default Queue} wl_registry#1990.global(2, "wl_subcompositor", 1) -[2618129.540] {Default Queue} -> wl_registry#1990.bind(2, "wl_subcompositor", 1, new id [unknown]#1997) -[2618129.545] {Default Queue} wl_registry#1990.global(3, "xdg_wm_base", 6) -[2618129.552] {Default Queue} -> wl_registry#1990.bind(3, "xdg_wm_base", 1, new id [unknown]#1998) -[2618129.557] {Default Queue} wl_registry#1990.global(6, "zwlr_layer_shell_v1", 5) -[2618129.563] {Default Queue} wl_registry#1990.global(7, "ext_session_lock_manager_v1", 1) -[2618129.570] {Default Queue} wl_registry#1990.global(8, "wl_shm", 2) -[2618129.576] {Default Queue} -> wl_registry#1990.bind(8, "wl_shm", 1, new id [unknown]#1999) -[2618129.582] {Default Queue} -> wl_registry#1990.bind(8, "wl_shm", 1, new id [unknown]#2000) -[2618129.588] {Default Queue} -> wl_registry#1990.bind(8, "wl_shm", 1, new id [unknown]#2001) -[2618129.593] {Default Queue} wl_registry#1990.global(9, "zxdg_output_manager_v1", 3) -[2618129.598] {Default Queue} wl_registry#1990.global(10, "wp_fractional_scale_manager_v1", 1) -[2618129.604] {Default Queue} wl_registry#1990.global(11, "zwp_tablet_manager_v2", 1) -[2618129.609] {Default Queue} wl_registry#1990.global(12, "zwp_pointer_gestures_v1", 3) -[2618129.614] {Default Queue} wl_registry#1990.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618129.620] {Default Queue} -> wl_registry#1990.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2002) -[2618129.628] {Default Queue} wl_registry#1990.global(14, "zwp_pointer_constraints_v1", 1) -[2618129.634] {Default Queue} -> wl_registry#1990.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2003) -[2618129.639] {Default Queue} wl_registry#1990.global(15, "ext_idle_notifier_v1", 2) -[2618129.645] {Default Queue} wl_registry#1990.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618129.650] {Default Queue} wl_registry#1990.global(17, "wl_data_device_manager", 3) -[2618129.660] {Default Queue} -> wl_registry#1990.bind(17, "wl_data_device_manager", 2, new id [unknown]#2004) -[2618129.667] {Default Queue} -> wl_data_device_manager#2004.create_data_source(new id wl_data_source#2005) -[2618129.672] {Default Queue} -> wl_data_source#2005.offer("text/plain") -[2618129.678] {Default Queue} -> wl_data_source#2005.offer("text/plain;charset=utf-8") -[2618129.683] {Default Queue} -> wl_data_source#2005.offer("TEXT") -[2618129.688] {Default Queue} -> wl_data_source#2005.offer("STRING") -[2618129.693] {Default Queue} -> wl_data_source#2005.offer("UTF8_STRING") -[2618129.698] {Default Queue} wl_registry#1990.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618129.704] {Default Queue} -> wl_registry#1990.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2006) -[2618129.714] {Default Queue} -> zwp_primary_selection_device_manager_v1#2006.create_source(new id zwp_primary_selection_source_v1#2007) -[2618129.723] {Default Queue} -> zwp_primary_selection_source_v1#2007.offer("text/plain") -[2618129.728] {Default Queue} -> zwp_primary_selection_source_v1#2007.offer("text/plain;charset=utf-8") -[2618129.734] {Default Queue} -> zwp_primary_selection_source_v1#2007.offer("TEXT") -[2618129.739] {Default Queue} -> zwp_primary_selection_source_v1#2007.offer("STRING") -[2618129.744] {Default Queue} -> zwp_primary_selection_source_v1#2007.offer("UTF8_STRING") -[2618129.749] {Default Queue} wl_registry#1990.global(19, "zwlr_data_control_manager_v1", 2) -[2618129.755] {Default Queue} wl_registry#1990.global(20, "ext_data_control_manager_v1", 1) -[2618129.760] {Default Queue} wl_registry#1990.global(21, "wp_presentation", 2) -[2618129.766] {Default Queue} wl_registry#1990.global(22, "wp_security_context_manager_v1", 1) -[2618129.772] {Default Queue} wl_registry#1990.global(23, "zwp_text_input_manager_v3", 1) -[2618129.777] {Default Queue} wl_registry#1990.global(24, "zwp_input_method_manager_v2", 1) -[2618129.782] {Default Queue} wl_registry#1990.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618129.788] {Default Queue} wl_registry#1990.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618129.793] {Default Queue} wl_registry#1990.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618129.799] {Default Queue} wl_registry#1990.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618129.804] {Default Queue} wl_registry#1990.global(29, "ext_workspace_manager_v1", 1) -[2618129.810] {Default Queue} wl_registry#1990.global(30, "zwlr_output_manager_v1", 4) -[2618129.815] {Default Queue} wl_registry#1990.global(31, "zwlr_screencopy_manager_v1", 3) -[2618129.821] {Default Queue} wl_registry#1990.global(32, "wp_viewporter", 1) -[2618129.826] {Default Queue} wl_registry#1990.global(33, "zxdg_exporter_v2", 1) -[2618129.831] {Default Queue} wl_registry#1990.global(34, "zxdg_importer_v2", 1) -[2618129.837] {Default Queue} wl_registry#1990.global(36, "xdg_activation_v1", 1) -[2618129.843] {Default Queue} wl_registry#1990.global(37, "mutter_x11_interop", 1) -[2618129.848] {Default Queue} wl_registry#1990.global(38, "wl_seat", 9) -[2618129.853] {Default Queue} -> wl_registry#1990.bind(38, "wl_seat", 1, new id [unknown]#2008) -[2618129.859] {Default Queue} wl_registry#1990.global(39, "wp_cursor_shape_manager_v1", 2) -[2618129.866] {Default Queue} wl_registry#1990.global(40, "wl_output", 4) -[2618129.878] {Default Queue} -> wl_registry#1990.bind(40, "wl_output", 1, new id [unknown]#2009) -[2618129.883] {Default Queue} wl_callback#1991.done(0) -[2618129.889] {Default Queue} discarded wl_surface#1959.enter(wl_output#18) -[2618129.894] {Default Queue} discarded wl_surface#1959.enter(wl_output#57) -[2618129.899] {Default Queue} discarded wl_surface#1959.enter(wl_output#89) -[2618129.904] {Default Queue} discarded wl_surface#1959.enter(wl_output#121) -[2618129.909] {Default Queue} discarded wl_surface#1959.enter(wl_output#153) -[2618129.914] {Default Queue} discarded wl_surface#1959.enter(wl_output#185) -[2618129.919] {Default Queue} discarded wl_surface#1959.enter(wl_output#217) -[2618129.927] {Default Queue} discarded wl_surface#1959.enter(wl_output#249) -[2618129.934] {Default Queue} discarded wl_surface#1959.enter(wl_output#281) -[2618129.939] {Default Queue} discarded wl_surface#1959.enter(wl_output#313) -[2618129.944] {Default Queue} discarded wl_surface#1959.enter(wl_output#345) -[2618129.948] {Default Queue} discarded wl_surface#1959.enter(wl_output#377) -[2618129.952] {Default Queue} discarded wl_surface#1959.enter(wl_output#409) -[2618129.956] {Default Queue} discarded wl_surface#1959.enter(wl_output#441) -[2618129.960] {Default Queue} discarded wl_surface#1959.enter(wl_output#473) -[2618129.964] {Default Queue} discarded wl_surface#1959.enter(wl_output#505) -[2618129.968] {Default Queue} discarded wl_surface#1959.enter(wl_output#537) -[2618129.972] {Default Queue} discarded wl_surface#1959.enter(wl_output#569) -[2618129.976] {Default Queue} discarded wl_surface#1959.enter(wl_output#601) -[2618129.980] {Default Queue} discarded wl_surface#1959.enter(wl_output#633) -[2618129.984] {Default Queue} discarded wl_surface#1959.enter(wl_output#665) -[2618129.988] {Default Queue} discarded wl_surface#1959.enter(wl_output#697) -[2618129.991] {Default Queue} discarded wl_surface#1959.enter(wl_output#729) -[2618129.996] {Default Queue} discarded wl_surface#1959.enter(wl_output#761) -[2618129.999] {Default Queue} discarded wl_surface#1959.enter(wl_output#793) -[2618130.003] {Default Queue} discarded wl_surface#1959.enter(wl_output#825) -[2618130.007] {Default Queue} discarded wl_surface#1959.enter(wl_output#857) -[2618130.011] {Default Queue} discarded wl_surface#1959.enter(wl_output#889) -[2618130.015] {Default Queue} discarded wl_surface#1959.enter(wl_output#921) -[2618130.019] {Default Queue} discarded wl_surface#1959.enter(wl_output#953) -[2618130.023] {Default Queue} discarded wl_surface#1959.enter(wl_output#985) -[2618130.027] {Default Queue} discarded wl_surface#1959.enter(wl_output#1017) -[2618130.031] {Default Queue} discarded wl_surface#1959.enter(wl_output#1049) -[2618130.035] {Default Queue} discarded wl_surface#1959.enter(wl_output#1081) -[2618130.039] {Default Queue} discarded wl_surface#1959.enter(wl_output#1113) -[2618130.043] {Default Queue} discarded wl_surface#1959.enter(wl_output#1145) -[2618130.048] {Default Queue} discarded wl_surface#1959.enter(wl_output#1177) -[2618130.052] {Default Queue} discarded wl_surface#1959.enter(wl_output#1209) -[2618130.056] {Default Queue} discarded wl_surface#1959.enter(wl_output#1241) -[2618130.060] {Default Queue} discarded wl_surface#1959.enter(wl_output#1273) -[2618130.064] {Default Queue} discarded wl_surface#1959.enter(wl_output#1305) -[2618130.068] {Default Queue} discarded wl_surface#1959.enter(wl_output#1337) -[2618130.072] {Default Queue} discarded wl_surface#1959.enter(wl_output#1369) -[2618130.076] {Default Queue} discarded wl_surface#1959.enter(wl_output#1401) -[2618130.079] {Default Queue} discarded wl_surface#1959.enter(wl_output#1433) -[2618130.083] {Default Queue} discarded wl_surface#1959.enter(wl_output#1465) -[2618130.087] {Default Queue} discarded wl_surface#1959.enter(wl_output#1497) -[2618130.091] {Default Queue} discarded wl_surface#1959.enter(wl_output#1529) -[2618130.095] {Default Queue} discarded wl_surface#1959.enter(wl_output#1561) -[2618130.099] {Default Queue} discarded wl_surface#1959.enter(wl_output#1593) -[2618130.103] {Default Queue} discarded wl_surface#1959.enter(wl_output#1625) -[2618130.107] {Default Queue} discarded wl_surface#1959.enter(wl_output#1657) -[2618130.111] {Default Queue} discarded wl_surface#1959.enter(wl_output#1689) -[2618130.115] {Default Queue} discarded wl_surface#1959.enter(wl_output#1721) -[2618130.118] {Default Queue} discarded wl_surface#1959.enter(wl_output#1753) -[2618130.122] {Default Queue} discarded wl_surface#1959.enter(wl_output#1785) -[2618130.127] {Default Queue} discarded wl_surface#1959.enter(wl_output#1817) -[2618130.131] {Default Queue} discarded wl_surface#1959.enter(wl_output#1849) -[2618130.134] {Default Queue} discarded wl_surface#1959.enter(wl_output#1881) -[2618130.138] {Default Queue} discarded wl_surface#1959.enter(wl_output#1913) -[2618130.145] {Default Queue} discarded wl_surface#1959.enter(wl_output#1945) -[2618130.151] {Default Queue} discarded wl_surface#1959.enter(wl_output#1977) -[2618130.155] {Default Queue} -> wl_compositor#1964.create_surface(new id wl_surface#1991) -[2618130.159] {Default Queue} -> wl_subcompositor#1997.get_subsurface(new id wl_subsurface#2010, wl_surface#1991, wl_surface#1959) -[2618130.168] {Default Queue} -> wl_subsurface#2010.set_desync() -[2618130.172] {Default Queue} -> wl_subsurface#2010.set_position(0, 0) -[2618130.177] {Default Queue} -> wl_subsurface#2010.place_above(wl_surface#1959) -[2618130.219] {Default Queue} -> wl_shm#1999.create_pool(new id wl_shm_pool#2011, fd 319, 16) -[2618130.225] {Default Queue} -> wl_shm#1999.create_pool(new id wl_shm_pool#2012, fd 320, 16) -[2618130.230] {Default Queue} -> wl_shm_pool#2011.create_buffer(new id wl_buffer#2013, 0, 2, 2, 8, 0) -[2618130.235] {Default Queue} -> wl_shm_pool#2012.create_buffer(new id wl_buffer#2014, 0, 2, 2, 8, 0) -[2618130.243] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) -[2618130.247] {Default Queue} -> wl_surface#1991.commit() -[2618130.253] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) -[2618130.258] {Default Queue} -> wl_surface#1991.commit() -[2618130.262] {Default Queue} -> wl_compositor#1996.create_region(new id wl_region#2015) -[2618130.267] {Default Queue} -> wl_compositor#1996.create_region(new id wl_region#2016) -[2618130.271] {Default Queue} -> wl_region#2015.subtract(0, 0, 2, 2) -[2618130.276] {Default Queue} -> wl_region#2015.add(0, 0, 0, 0) -[2618130.280] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2618130.284] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2618130.289] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618130.293] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) -[2618130.301] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) -[2618130.305] {Default Queue} -> wl_surface#1991.commit() -[2618130.337] {Default Queue} -> wl_shm#2001.create_pool(new id wl_shm_pool#2017, fd 323, 640) -[2618130.344] {Default Queue} -> wl_shm#2001.create_pool(new id wl_shm_pool#2018, fd 324, 640) -[2618130.348] {Default Queue} -> wl_shm_pool#2017.create_buffer(new id wl_buffer#2019, 0, 10, 16, 40, 0) -[2618130.353] {Default Queue} -> wl_shm_pool#2018.create_buffer(new id wl_buffer#2020, 0, 10, 16, 40, 0) -[2618130.361] {Default Queue} -> wl_compositor#1996.create_surface(new id wl_surface#2021) -[2618130.365] {Default Queue} -> wl_surface#2021.attach(wl_buffer#2019, 0, 0) -[2618130.370] {Default Queue} -> wl_surface#2021.commit() -[2618130.376] {Default Queue} -> wl_surface#2021.attach(wl_buffer#2019, 0, 0) -[2618130.380] {Default Queue} -> wl_surface#2021.commit() -[2618130.385] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) -[2618130.392] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618130.396] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618130.403] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2022) -[2618130.408] {Default Queue} -> wl_display#1.sync(new id wl_callback#2023) -[2618134.117] {Display Queue} wl_display#1.delete_id(2023) -[2618134.128] {Default Queue} wl_keyboard#1992.keymap(1, fd 319, 68213) -[2618134.134] {Default Queue} wl_keyboard#1992.enter(566, wl_surface#19, array[0]) -[2618134.140] {Default Queue} wl_keyboard#1992.modifiers(566, 0, 0, 16, 0) -[2618134.146] {Default Queue} discarded wl_shm#1999.format(875709016) -[2618134.151] {Default Queue} discarded wl_shm#1999.format(1) -[2618134.156] {Default Queue} discarded wl_shm#1999.format(0) -[2618134.162] {Default Queue} discarded wl_shm#1999.format(875708993) -[2618134.166] {Default Queue} discarded wl_shm#2000.format(875709016) -[2618134.171] {Default Queue} discarded wl_shm#2000.format(1) -[2618134.176] {Default Queue} discarded wl_shm#2000.format(0) -[2618134.181] {Default Queue} discarded wl_shm#2000.format(875708993) -[2618134.186] {Default Queue} discarded wl_shm#2001.format(875709016) -[2618134.196] {Default Queue} discarded wl_shm#2001.format(1) -[2618134.203] {Default Queue} discarded wl_shm#2001.format(0) -[2618134.208] {Default Queue} discarded wl_shm#2001.format(875708993) -[2618134.213] {Default Queue} wl_seat#2008.capabilities(7) -[2618134.219] {Default Queue} -> wl_seat#2008.get_keyboard(new id wl_keyboard#2024) -[2618134.224] {Default Queue} -> wl_seat#2008.get_pointer(new id wl_pointer#2025) -[2618134.230] {Default Queue} -> wl_data_device_manager#2004.get_data_device(new id wl_data_device#2026, wl_seat#2008) -[2618134.235] {Default Queue} -> zwp_primary_selection_device_manager_v1#2006.get_device(new id zwp_primary_selection_device_v1#2027, wl_seat#2008) -[2618134.246] {Default Queue} wl_output#2009.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618134.252] {Default Queue} wl_output#2009.mode(3, 1280, 800, 60000) -[2618134.257] {Default Queue} discarded wl_surface#3.enter(wl_output#2009) -[2618134.262] {Default Queue} discarded wl_surface#999.enter(wl_output#2009) -[2618134.267] {Default Queue} discarded wl_surface#1191.enter(wl_output#2009) -[2618134.272] {Default Queue} discarded wl_surface#1159.enter(wl_output#2009) -[2618134.277] {Default Queue} discarded wl_surface#1703.enter(wl_output#2009) -[2618134.282] {Default Queue} discarded wl_surface#423.enter(wl_output#2009) -[2618134.287] {Default Queue} discarded wl_surface#1447.enter(wl_output#2009) -[2618134.291] {Default Queue} discarded wl_surface#1639.enter(wl_output#2009) -[2618134.296] {Default Queue} discarded wl_surface#1319.enter(wl_output#2009) -[2618134.301] {Default Queue} discarded wl_surface#1127.enter(wl_output#2009) -[2618134.306] {Default Queue} discarded wl_surface#1063.enter(wl_output#2009) -[2618134.311] {Default Queue} discarded wl_surface#455.enter(wl_output#2009) -[2618134.315] {Default Queue} discarded wl_surface#1575.enter(wl_output#2009) -[2618134.320] {Default Queue} discarded wl_surface#1799.enter(wl_output#2009) -[2618134.326] {Default Queue} discarded wl_surface#1415.enter(wl_output#2009) -[2618134.331] {Default Queue} discarded wl_surface#1831.enter(wl_output#2009) -[2618134.335] {Default Queue} discarded wl_surface#903.enter(wl_output#2009) -[2618134.340] {Default Queue} discarded wl_surface#775.enter(wl_output#2009) -[2618134.345] {Default Queue} discarded wl_surface#1543.enter(wl_output#2009) -[2618134.350] {Default Queue} discarded wl_surface#135.enter(wl_output#2009) -[2618134.355] {Default Queue} discarded wl_surface#1287.enter(wl_output#2009) -[2618134.359] {Default Queue} discarded wl_surface#1031.enter(wl_output#2009) -[2618134.364] {Default Queue} discarded wl_surface#615.enter(wl_output#2009) -[2618134.369] {Default Queue} discarded wl_surface#231.enter(wl_output#2009) -[2618134.374] {Default Queue} discarded wl_surface#1863.enter(wl_output#2009) -[2618134.379] {Default Queue} discarded wl_surface#359.enter(wl_output#2009) -[2618134.384] {Default Queue} discarded wl_surface#583.enter(wl_output#2009) -[2618134.389] {Default Queue} discarded wl_surface#743.enter(wl_output#2009) -[2618134.393] {Default Queue} discarded wl_surface#967.enter(wl_output#2009) -[2618134.398] {Default Queue} discarded wl_surface#103.enter(wl_output#2009) -[2618134.404] {Default Queue} discarded wl_surface#327.enter(wl_output#2009) -[2618134.408] {Default Queue} discarded wl_surface#43.enter(wl_output#2009) -[2618134.413] {Default Queue} discarded wl_surface#807.enter(wl_output#2009) -[2618134.418] {Default Queue} discarded wl_surface#19.enter(wl_output#2009) -[2618134.423] {Default Queue} discarded wl_surface#1511.enter(wl_output#2009) -[2618134.428] {Default Queue} discarded wl_surface#199.enter(wl_output#2009) -[2618134.433] {Default Queue} discarded wl_surface#391.enter(wl_output#2009) -[2618134.438] {Default Queue} discarded wl_surface#935.enter(wl_output#2009) -[2618134.443] {Default Queue} discarded wl_surface#1671.enter(wl_output#2009) -[2618134.448] {Default Queue} discarded wl_surface#1351.enter(wl_output#2009) -[2618134.453] {Default Queue} discarded wl_surface#711.enter(wl_output#2009) -[2618134.458] {Default Queue} discarded wl_surface#1223.enter(wl_output#2009) -[2618134.466] {Default Queue} discarded wl_surface#1927.enter(wl_output#2009) -[2618134.473] {Default Queue} discarded wl_surface#871.enter(wl_output#2009) -[2618134.478] {Default Queue} discarded wl_surface#1895.enter(wl_output#2009) -[2618134.483] {Default Queue} discarded wl_surface#263.enter(wl_output#2009) -[2618134.487] {Default Queue} discarded wl_surface#551.enter(wl_output#2009) -[2618134.492] {Default Queue} discarded wl_surface#1735.enter(wl_output#2009) -[2618134.497] {Default Queue} discarded wl_surface#1479.enter(wl_output#2009) -[2618134.502] {Default Queue} discarded wl_surface#1772.enter(wl_output#2009) -[2618134.507] {Default Queue} discarded wl_surface#1959.enter(wl_output#2009) -[2618134.512] {Default Queue} discarded wl_surface#647.enter(wl_output#2009) -[2618134.517] {Default Queue} discarded wl_surface#71.enter(wl_output#2009) -[2618134.522] {Default Queue} discarded wl_surface#839.enter(wl_output#2009) -[2618134.526] {Default Queue} discarded wl_surface#1607.enter(wl_output#2009) -[2618134.531] {Default Queue} discarded wl_surface#1095.enter(wl_output#2009) -[2618134.536] {Default Queue} discarded wl_surface#1383.enter(wl_output#2009) -[2618134.541] {Default Queue} discarded wl_surface#487.enter(wl_output#2009) -[2618134.546] {Default Queue} discarded wl_surface#519.enter(wl_output#2009) -[2618134.551] {Default Queue} discarded wl_surface#295.enter(wl_output#2009) -[2618134.556] {Default Queue} discarded wl_surface#167.enter(wl_output#2009) -[2618134.561] {Default Queue} discarded wl_surface#1255.enter(wl_output#2009) -[2618134.566] {Default Queue} discarded wl_surface#679.enter(wl_output#2009) -[2618134.571] {Default Queue} wl_registry#2022.global(1, "wl_compositor", 6) -[2618134.577] {Default Queue} -> wl_registry#2022.bind(1, "wl_compositor", 1, new id [unknown]#2028) -[2618134.583] {Default Queue} wl_registry#2022.global(2, "wl_subcompositor", 1) -[2618134.590] {Default Queue} -> wl_registry#2022.bind(2, "wl_subcompositor", 1, new id [unknown]#2029) -[2618134.595] {Default Queue} wl_registry#2022.global(3, "xdg_wm_base", 6) -[2618134.601] {Default Queue} -> wl_registry#2022.bind(3, "xdg_wm_base", 1, new id [unknown]#2030) -[2618134.607] {Default Queue} wl_registry#2022.global(6, "zwlr_layer_shell_v1", 5) -[2618134.612] {Default Queue} wl_registry#2022.global(7, "ext_session_lock_manager_v1", 1) -[2618134.620] {Default Queue} wl_registry#2022.global(8, "wl_shm", 2) -[2618134.626] {Default Queue} -> wl_registry#2022.bind(8, "wl_shm", 1, new id [unknown]#2031) -[2618134.631] {Default Queue} -> wl_registry#2022.bind(8, "wl_shm", 1, new id [unknown]#2032) -[2618134.637] {Default Queue} -> wl_registry#2022.bind(8, "wl_shm", 1, new id [unknown]#2033) -[2618134.642] {Default Queue} wl_registry#2022.global(9, "zxdg_output_manager_v1", 3) -[2618134.647] {Default Queue} wl_registry#2022.global(10, "wp_fractional_scale_manager_v1", 1) -[2618134.653] {Default Queue} wl_registry#2022.global(11, "zwp_tablet_manager_v2", 1) -[2618134.658] {Default Queue} wl_registry#2022.global(12, "zwp_pointer_gestures_v1", 3) -[2618134.664] {Default Queue} wl_registry#2022.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618134.669] {Default Queue} -> wl_registry#2022.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2034) -[2618134.675] {Default Queue} wl_registry#2022.global(14, "zwp_pointer_constraints_v1", 1) -[2618134.680] {Default Queue} -> wl_registry#2022.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2035) -[2618134.686] {Default Queue} wl_registry#2022.global(15, "ext_idle_notifier_v1", 2) -[2618134.691] {Default Queue} wl_registry#2022.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618134.697] {Default Queue} wl_registry#2022.global(17, "wl_data_device_manager", 3) -[2618134.703] {Default Queue} -> wl_registry#2022.bind(17, "wl_data_device_manager", 2, new id [unknown]#2036) -[2618134.708] {Default Queue} -> wl_data_device_manager#2036.create_data_source(new id wl_data_source#2037) -[2618134.713] {Default Queue} -> wl_data_source#2037.offer("text/plain") -[2618134.719] {Default Queue} -> wl_data_source#2037.offer("text/plain;charset=utf-8") -[2618134.728] {Default Queue} -> wl_data_source#2037.offer("TEXT") -[2618134.735] {Default Queue} -> wl_data_source#2037.offer("STRING") -[2618134.740] {Default Queue} -> wl_data_source#2037.offer("UTF8_STRING") -[2618134.746] {Default Queue} wl_registry#2022.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618134.752] {Default Queue} -> wl_registry#2022.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2038) -[2618134.762] {Default Queue} -> zwp_primary_selection_device_manager_v1#2038.create_source(new id zwp_primary_selection_source_v1#2039) -[2618134.771] {Default Queue} -> zwp_primary_selection_source_v1#2039.offer("text/plain") -[2618134.776] {Default Queue} -> zwp_primary_selection_source_v1#2039.offer("text/plain;charset=utf-8") -[2618134.781] {Default Queue} -> zwp_primary_selection_source_v1#2039.offer("TEXT") -[2618134.786] {Default Queue} -> zwp_primary_selection_source_v1#2039.offer("STRING") -[2618134.791] {Default Queue} -> zwp_primary_selection_source_v1#2039.offer("UTF8_STRING") -[2618134.797] {Default Queue} wl_registry#2022.global(19, "zwlr_data_control_manager_v1", 2) -[2618134.802] {Default Queue} wl_registry#2022.global(20, "ext_data_control_manager_v1", 1) -[2618134.808] {Default Queue} wl_registry#2022.global(21, "wp_presentation", 2) -[2618134.813] {Default Queue} wl_registry#2022.global(22, "wp_security_context_manager_v1", 1) -[2618134.819] {Default Queue} wl_registry#2022.global(23, "zwp_text_input_manager_v3", 1) -[2618134.824] {Default Queue} wl_registry#2022.global(24, "zwp_input_method_manager_v2", 1) -[2618134.830] {Default Queue} wl_registry#2022.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618134.835] {Default Queue} wl_registry#2022.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618134.841] {Default Queue} wl_registry#2022.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618134.846] {Default Queue} wl_registry#2022.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618134.851] {Default Queue} wl_registry#2022.global(29, "ext_workspace_manager_v1", 1) -[2618134.857] {Default Queue} wl_registry#2022.global(30, "zwlr_output_manager_v1", 4) -[2618134.870] {Default Queue} wl_registry#2022.global(31, "zwlr_screencopy_manager_v1", 3) -[2618134.876] {Default Queue} wl_registry#2022.global(32, "wp_viewporter", 1) -[2618134.881] {Default Queue} wl_registry#2022.global(33, "zxdg_exporter_v2", 1) -[2618134.887] {Default Queue} wl_registry#2022.global(34, "zxdg_importer_v2", 1) -[2618134.892] {Default Queue} wl_registry#2022.global(36, "xdg_activation_v1", 1) -[2618134.897] {Default Queue} wl_registry#2022.global(37, "mutter_x11_interop", 1) -[2618134.903] {Default Queue} wl_registry#2022.global(38, "wl_seat", 9) -[2618134.908] {Default Queue} -> wl_registry#2022.bind(38, "wl_seat", 1, new id [unknown]#2040) -[2618134.914] {Default Queue} wl_registry#2022.global(39, "wp_cursor_shape_manager_v1", 2) -[2618134.919] {Default Queue} wl_registry#2022.global(40, "wl_output", 4) -[2618134.925] {Default Queue} -> wl_registry#2022.bind(40, "wl_output", 1, new id [unknown]#2041) -[2618134.930] {Default Queue} wl_callback#2023.done(0) -[2618134.936] {Default Queue} discarded wl_surface#1991.enter(wl_output#18) -[2618134.941] {Default Queue} discarded wl_surface#1991.enter(wl_output#57) -[2618134.946] {Default Queue} discarded wl_surface#1991.enter(wl_output#89) -[2618134.951] {Default Queue} discarded wl_surface#1991.enter(wl_output#121) -[2618134.956] {Default Queue} discarded wl_surface#1991.enter(wl_output#153) -[2618134.960] {Default Queue} discarded wl_surface#1991.enter(wl_output#185) -[2618134.964] {Default Queue} discarded wl_surface#1991.enter(wl_output#217) -[2618134.968] {Default Queue} discarded wl_surface#1991.enter(wl_output#249) -[2618134.972] {Default Queue} discarded wl_surface#1991.enter(wl_output#281) -[2618134.976] {Default Queue} discarded wl_surface#1991.enter(wl_output#313) -[2618134.980] {Default Queue} discarded wl_surface#1991.enter(wl_output#345) -[2618134.984] {Default Queue} discarded wl_surface#1991.enter(wl_output#377) -[2618134.991] {Default Queue} discarded wl_surface#1991.enter(wl_output#409) -[2618134.997] {Default Queue} discarded wl_surface#1991.enter(wl_output#441) -[2618135.001] {Default Queue} discarded wl_surface#1991.enter(wl_output#473) -[2618135.005] {Default Queue} discarded wl_surface#1991.enter(wl_output#505) -[2618135.009] {Default Queue} discarded wl_surface#1991.enter(wl_output#537) -[2618135.013] {Default Queue} discarded wl_surface#1991.enter(wl_output#569) -[2618135.017] {Default Queue} discarded wl_surface#1991.enter(wl_output#601) -[2618135.021] {Default Queue} discarded wl_surface#1991.enter(wl_output#633) -[2618135.025] {Default Queue} discarded wl_surface#1991.enter(wl_output#665) -[2618135.030] {Default Queue} discarded wl_surface#1991.enter(wl_output#697) -[2618135.034] {Default Queue} discarded wl_surface#1991.enter(wl_output#729) -[2618135.037] {Default Queue} discarded wl_surface#1991.enter(wl_output#761) -[2618135.041] {Default Queue} discarded wl_surface#1991.enter(wl_output#793) -[2618135.045] {Default Queue} discarded wl_surface#1991.enter(wl_output#825) -[2618135.049] {Default Queue} discarded wl_surface#1991.enter(wl_output#857) -[2618135.053] {Default Queue} discarded wl_surface#1991.enter(wl_output#889) -[2618135.057] {Default Queue} discarded wl_surface#1991.enter(wl_output#921) -[2618135.061] {Default Queue} discarded wl_surface#1991.enter(wl_output#953) -[2618135.065] {Default Queue} discarded wl_surface#1991.enter(wl_output#985) -[2618135.069] {Default Queue} discarded wl_surface#1991.enter(wl_output#1017) -[2618135.073] {Default Queue} discarded wl_surface#1991.enter(wl_output#1049) -[2618135.077] {Default Queue} discarded wl_surface#1991.enter(wl_output#1081) -[2618135.080] {Default Queue} discarded wl_surface#1991.enter(wl_output#1113) -[2618135.084] {Default Queue} discarded wl_surface#1991.enter(wl_output#1145) -[2618135.088] {Default Queue} discarded wl_surface#1991.enter(wl_output#1177) -[2618135.092] {Default Queue} discarded wl_surface#1991.enter(wl_output#1209) -[2618135.096] {Default Queue} discarded wl_surface#1991.enter(wl_output#1241) -[2618135.100] {Default Queue} discarded wl_surface#1991.enter(wl_output#1273) -[2618135.104] {Default Queue} discarded wl_surface#1991.enter(wl_output#1305) -[2618135.108] {Default Queue} discarded wl_surface#1991.enter(wl_output#1337) -[2618135.111] {Default Queue} discarded wl_surface#1991.enter(wl_output#1369) -[2618135.115] {Default Queue} discarded wl_surface#1991.enter(wl_output#1401) -[2618135.119] {Default Queue} discarded wl_surface#1991.enter(wl_output#1433) -[2618135.123] {Default Queue} discarded wl_surface#1991.enter(wl_output#1465) -[2618135.127] {Default Queue} discarded wl_surface#1991.enter(wl_output#1497) -[2618135.131] {Default Queue} discarded wl_surface#1991.enter(wl_output#1529) -[2618135.135] {Default Queue} discarded wl_surface#1991.enter(wl_output#1561) -[2618135.139] {Default Queue} discarded wl_surface#1991.enter(wl_output#1593) -[2618135.143] {Default Queue} discarded wl_surface#1991.enter(wl_output#1625) -[2618135.147] {Default Queue} discarded wl_surface#1991.enter(wl_output#1657) -[2618135.151] {Default Queue} discarded wl_surface#1991.enter(wl_output#1689) -[2618135.154] {Default Queue} discarded wl_surface#1991.enter(wl_output#1721) -[2618135.158] {Default Queue} discarded wl_surface#1991.enter(wl_output#1753) -[2618135.162] {Default Queue} discarded wl_surface#1991.enter(wl_output#1785) -[2618135.166] {Default Queue} discarded wl_surface#1991.enter(wl_output#1817) -[2618135.170] {Default Queue} discarded wl_surface#1991.enter(wl_output#1849) -[2618135.174] {Default Queue} discarded wl_surface#1991.enter(wl_output#1881) -[2618135.178] {Default Queue} discarded wl_surface#1991.enter(wl_output#1913) -[2618135.182] {Default Queue} discarded wl_surface#1991.enter(wl_output#1945) -[2618135.186] {Default Queue} discarded wl_surface#1991.enter(wl_output#1977) -[2618135.190] {Default Queue} discarded wl_surface#1991.enter(wl_output#2009) -[2618135.194] {Default Queue} -> wl_compositor#1964.create_surface(new id wl_surface#2023) -[2618135.198] {Default Queue} -> wl_subcompositor#2029.get_subsurface(new id wl_subsurface#2042, wl_surface#2023, wl_surface#1959) -[2618135.211] {Default Queue} -> wl_subsurface#2042.set_desync() -[2618135.215] {Default Queue} -> wl_subsurface#2042.set_position(0, 0) -[2618135.219] {Default Queue} -> wl_subsurface#2042.place_above(wl_surface#1959) -[2618135.258] {Default Queue} -> wl_shm#2031.create_pool(new id wl_shm_pool#2043, fd 324, 16) -[2618135.264] {Default Queue} -> wl_shm#2031.create_pool(new id wl_shm_pool#2044, fd 325, 16) -[2618135.269] {Default Queue} -> wl_shm_pool#2043.create_buffer(new id wl_buffer#2045, 0, 2, 2, 8, 0) -[2618135.274] {Default Queue} -> wl_shm_pool#2044.create_buffer(new id wl_buffer#2046, 0, 2, 2, 8, 0) -[2618135.281] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) -[2618135.286] {Default Queue} -> wl_surface#2023.commit() -[2618135.291] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) -[2618135.296] {Default Queue} -> wl_surface#2023.commit() -[2618135.300] {Default Queue} -> wl_compositor#2028.create_region(new id wl_region#2047) -[2618135.313] {Default Queue} -> wl_compositor#2028.create_region(new id wl_region#2048) -[2618135.321] {Default Queue} -> wl_region#2047.subtract(0, 0, 2, 2) -[2618135.325] {Default Queue} -> wl_region#2047.add(0, 0, 0, 0) -[2618135.330] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) -[2618135.334] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) -[2618135.338] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) -[2618135.342] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) -[2618135.350] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) -[2618135.354] {Default Queue} -> wl_surface#2023.commit() -[2618135.389] {Default Queue} -> wl_shm#2033.create_pool(new id wl_shm_pool#2049, fd 328, 640) -[2618135.395] {Default Queue} -> wl_shm#2033.create_pool(new id wl_shm_pool#2050, fd 329, 640) -[2618135.400] {Default Queue} -> wl_shm_pool#2049.create_buffer(new id wl_buffer#2051, 0, 10, 16, 40, 0) -[2618135.404] {Default Queue} -> wl_shm_pool#2050.create_buffer(new id wl_buffer#2052, 0, 10, 16, 40, 0) -[2618135.411] {Default Queue} -> wl_compositor#2028.create_surface(new id wl_surface#2053) -[2618135.416] {Default Queue} -> wl_surface#2053.attach(wl_buffer#2051, 0, 0) -[2618135.420] {Default Queue} -> wl_surface#2053.commit() -[2618135.425] {Default Queue} -> wl_surface#2053.attach(wl_buffer#2051, 0, 0) -[2618135.430] {Default Queue} -> wl_surface#2053.commit() -[2618135.435] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) -[2618135.442] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2054) -[2618135.447] {Default Queue} -> wl_display#1.sync(new id wl_callback#2055) -[2618139.076] {Display Queue} wl_display#1.delete_id(2055) -[2618139.089] {Default Queue} wl_keyboard#2024.keymap(1, fd 324, 68213) -[2618139.095] {Default Queue} wl_keyboard#2024.enter(566, wl_surface#19, array[0]) -[2618139.101] {Default Queue} wl_keyboard#2024.modifiers(566, 0, 0, 16, 0) -[2618139.105] {Default Queue} discarded wl_shm#2031.format(875709016) -[2618139.110] {Default Queue} discarded wl_shm#2031.format(1) -[2618139.114] {Default Queue} discarded wl_shm#2031.format(0) -[2618139.118] {Default Queue} discarded wl_shm#2031.format(875708993) -[2618139.121] {Default Queue} discarded wl_shm#2032.format(875709016) -[2618139.125] {Default Queue} discarded wl_shm#2032.format(1) -[2618139.129] {Default Queue} discarded wl_shm#2032.format(0) -[2618139.133] {Default Queue} discarded wl_shm#2032.format(875708993) -[2618139.137] {Default Queue} discarded wl_shm#2033.format(875709016) -[2618139.141] {Default Queue} discarded wl_shm#2033.format(1) -[2618139.145] {Default Queue} discarded wl_shm#2033.format(0) -[2618139.149] {Default Queue} discarded wl_shm#2033.format(875708993) -[2618139.153] {Default Queue} wl_seat#2040.capabilities(7) -[2618139.157] {Default Queue} -> wl_seat#2040.get_keyboard(new id wl_keyboard#2056) -[2618139.162] {Default Queue} -> wl_seat#2040.get_pointer(new id wl_pointer#2057) -[2618139.166] {Default Queue} -> wl_data_device_manager#2036.get_data_device(new id wl_data_device#2058, wl_seat#2040) -[2618139.175] {Default Queue} -> zwp_primary_selection_device_manager_v1#2038.get_device(new id zwp_primary_selection_device_v1#2059, wl_seat#2040) -[2618139.186] {Default Queue} wl_output#2041.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618139.191] {Default Queue} wl_output#2041.mode(3, 1280, 800, 60000) -[2618139.195] {Default Queue} discarded wl_surface#3.enter(wl_output#2041) -[2618139.200] {Default Queue} discarded wl_surface#999.enter(wl_output#2041) -[2618139.204] {Default Queue} discarded wl_surface#1191.enter(wl_output#2041) -[2618139.208] {Default Queue} discarded wl_surface#1159.enter(wl_output#2041) -[2618139.212] {Default Queue} discarded wl_surface#1703.enter(wl_output#2041) -[2618139.215] {Default Queue} discarded wl_surface#423.enter(wl_output#2041) -[2618139.219] {Default Queue} discarded wl_surface#1447.enter(wl_output#2041) -[2618139.223] {Default Queue} discarded wl_surface#1639.enter(wl_output#2041) -[2618139.227] {Default Queue} discarded wl_surface#1319.enter(wl_output#2041) -[2618139.231] {Default Queue} discarded wl_surface#1127.enter(wl_output#2041) -[2618139.235] {Default Queue} discarded wl_surface#1063.enter(wl_output#2041) -[2618139.239] {Default Queue} discarded wl_surface#455.enter(wl_output#2041) -[2618139.242] {Default Queue} discarded wl_surface#1575.enter(wl_output#2041) -[2618139.246] {Default Queue} discarded wl_surface#1799.enter(wl_output#2041) -[2618139.251] {Default Queue} discarded wl_surface#1415.enter(wl_output#2041) -[2618139.255] {Default Queue} discarded wl_surface#1831.enter(wl_output#2041) -[2618139.258] {Default Queue} discarded wl_surface#903.enter(wl_output#2041) -[2618139.262] {Default Queue} discarded wl_surface#775.enter(wl_output#2041) -[2618139.266] {Default Queue} discarded wl_surface#1991.enter(wl_output#2041) -[2618139.270] {Default Queue} discarded wl_surface#1543.enter(wl_output#2041) -[2618139.274] {Default Queue} discarded wl_surface#135.enter(wl_output#2041) -[2618139.278] {Default Queue} discarded wl_surface#1287.enter(wl_output#2041) -[2618139.282] {Default Queue} discarded wl_surface#1031.enter(wl_output#2041) -[2618139.286] {Default Queue} discarded wl_surface#615.enter(wl_output#2041) -[2618139.290] {Default Queue} discarded wl_surface#231.enter(wl_output#2041) -[2618139.293] {Default Queue} discarded wl_surface#1863.enter(wl_output#2041) -[2618139.297] {Default Queue} discarded wl_surface#359.enter(wl_output#2041) -[2618139.301] {Default Queue} discarded wl_surface#583.enter(wl_output#2041) -[2618139.305] {Default Queue} discarded wl_surface#743.enter(wl_output#2041) -[2618139.309] {Default Queue} discarded wl_surface#967.enter(wl_output#2041) -[2618139.313] {Default Queue} discarded wl_surface#103.enter(wl_output#2041) -[2618139.317] {Default Queue} discarded wl_surface#327.enter(wl_output#2041) -[2618139.321] {Default Queue} discarded wl_surface#43.enter(wl_output#2041) -[2618139.325] {Default Queue} discarded wl_surface#807.enter(wl_output#2041) -[2618139.329] {Default Queue} discarded wl_surface#19.enter(wl_output#2041) -[2618139.332] {Default Queue} discarded wl_surface#1511.enter(wl_output#2041) -[2618139.336] {Default Queue} discarded wl_surface#199.enter(wl_output#2041) -[2618139.340] {Default Queue} discarded wl_surface#391.enter(wl_output#2041) -[2618139.344] {Default Queue} discarded wl_surface#935.enter(wl_output#2041) -[2618139.348] {Default Queue} discarded wl_surface#1671.enter(wl_output#2041) -[2618139.352] {Default Queue} discarded wl_surface#1351.enter(wl_output#2041) -[2618139.356] {Default Queue} discarded wl_surface#711.enter(wl_output#2041) -[2618139.360] {Default Queue} discarded wl_surface#1223.enter(wl_output#2041) -[2618139.364] {Default Queue} discarded wl_surface#1927.enter(wl_output#2041) -[2618139.368] {Default Queue} discarded wl_surface#871.enter(wl_output#2041) -[2618139.372] {Default Queue} discarded wl_surface#1895.enter(wl_output#2041) -[2618139.376] {Default Queue} discarded wl_surface#263.enter(wl_output#2041) -[2618139.380] {Default Queue} discarded wl_surface#551.enter(wl_output#2041) -[2618139.387] {Default Queue} discarded wl_surface#1735.enter(wl_output#2041) -[2618139.392] {Default Queue} discarded wl_surface#1479.enter(wl_output#2041) -[2618139.396] {Default Queue} discarded wl_surface#1772.enter(wl_output#2041) -[2618139.400] {Default Queue} discarded wl_surface#1959.enter(wl_output#2041) -[2618139.404] {Default Queue} discarded wl_surface#647.enter(wl_output#2041) -[2618139.408] {Default Queue} discarded wl_surface#71.enter(wl_output#2041) -[2618139.412] {Default Queue} discarded wl_surface#839.enter(wl_output#2041) -[2618139.416] {Default Queue} discarded wl_surface#1607.enter(wl_output#2041) -[2618139.420] {Default Queue} discarded wl_surface#1095.enter(wl_output#2041) -[2618139.424] {Default Queue} discarded wl_surface#1383.enter(wl_output#2041) -[2618139.428] {Default Queue} discarded wl_surface#487.enter(wl_output#2041) -[2618139.431] {Default Queue} discarded wl_surface#519.enter(wl_output#2041) -[2618139.435] {Default Queue} discarded wl_surface#295.enter(wl_output#2041) -[2618139.439] {Default Queue} discarded wl_surface#167.enter(wl_output#2041) -[2618139.443] {Default Queue} discarded wl_surface#1255.enter(wl_output#2041) -[2618139.447] {Default Queue} discarded wl_surface#679.enter(wl_output#2041) -[2618139.451] {Default Queue} wl_registry#2054.global(1, "wl_compositor", 6) -[2618139.456] {Default Queue} -> wl_registry#2054.bind(1, "wl_compositor", 1, new id [unknown]#2060) -[2618139.461] {Default Queue} wl_registry#2054.global(2, "wl_subcompositor", 1) -[2618139.465] {Default Queue} -> wl_registry#2054.bind(2, "wl_subcompositor", 1, new id [unknown]#2061) -[2618139.470] {Default Queue} wl_registry#2054.global(3, "xdg_wm_base", 6) -[2618139.475] {Default Queue} -> wl_registry#2054.bind(3, "xdg_wm_base", 1, new id [unknown]#2062) -[2618139.480] {Default Queue} wl_registry#2054.global(6, "zwlr_layer_shell_v1", 5) -[2618139.484] {Default Queue} wl_registry#2054.global(7, "ext_session_lock_manager_v1", 1) -[2618139.488] {Default Queue} wl_registry#2054.global(8, "wl_shm", 2) -[2618139.493] {Default Queue} -> wl_registry#2054.bind(8, "wl_shm", 1, new id [unknown]#2063) -[2618139.498] {Default Queue} -> wl_registry#2054.bind(8, "wl_shm", 1, new id [unknown]#2064) -[2618139.502] {Default Queue} -> wl_registry#2054.bind(8, "wl_shm", 1, new id [unknown]#2065) -[2618139.506] {Default Queue} wl_registry#2054.global(9, "zxdg_output_manager_v1", 3) -[2618139.510] {Default Queue} wl_registry#2054.global(10, "wp_fractional_scale_manager_v1", 1) -[2618139.515] {Default Queue} wl_registry#2054.global(11, "zwp_tablet_manager_v2", 1) -[2618139.519] {Default Queue} wl_registry#2054.global(12, "zwp_pointer_gestures_v1", 3) -[2618139.524] {Default Queue} wl_registry#2054.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618139.528] {Default Queue} -> wl_registry#2054.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2066) -[2618139.533] {Default Queue} wl_registry#2054.global(14, "zwp_pointer_constraints_v1", 1) -[2618139.537] {Default Queue} -> wl_registry#2054.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2067) -[2618139.542] {Default Queue} wl_registry#2054.global(15, "ext_idle_notifier_v1", 2) -[2618139.546] {Default Queue} wl_registry#2054.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618139.551] {Default Queue} wl_registry#2054.global(17, "wl_data_device_manager", 3) -[2618139.555] {Default Queue} -> wl_registry#2054.bind(17, "wl_data_device_manager", 2, new id [unknown]#2068) -[2618139.560] {Default Queue} -> wl_data_device_manager#2068.create_data_source(new id wl_data_source#2069) -[2618139.564] {Default Queue} -> wl_data_source#2069.offer("text/plain") -[2618139.568] {Default Queue} -> wl_data_source#2069.offer("text/plain;charset=utf-8") -[2618139.572] {Default Queue} -> wl_data_source#2069.offer("TEXT") -[2618139.577] {Default Queue} -> wl_data_source#2069.offer("STRING") -[2618139.581] {Default Queue} -> wl_data_source#2069.offer("UTF8_STRING") -[2618139.585] {Default Queue} wl_registry#2054.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618139.590] {Default Queue} -> wl_registry#2054.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2070) -[2618139.603] {Default Queue} -> zwp_primary_selection_device_manager_v1#2070.create_source(new id zwp_primary_selection_source_v1#2071) -[2618139.610] {Default Queue} -> zwp_primary_selection_source_v1#2071.offer("text/plain") -[2618139.614] {Default Queue} -> zwp_primary_selection_source_v1#2071.offer("text/plain;charset=utf-8") -[2618139.619] {Default Queue} -> zwp_primary_selection_source_v1#2071.offer("TEXT") -[2618139.623] {Default Queue} -> zwp_primary_selection_source_v1#2071.offer("STRING") -[2618139.627] {Default Queue} -> zwp_primary_selection_source_v1#2071.offer("UTF8_STRING") -[2618139.631] {Default Queue} wl_registry#2054.global(19, "zwlr_data_control_manager_v1", 2) -[2618139.635] {Default Queue} wl_registry#2054.global(20, "ext_data_control_manager_v1", 1) -[2618139.640] {Default Queue} wl_registry#2054.global(21, "wp_presentation", 2) -[2618139.644] {Default Queue} wl_registry#2054.global(22, "wp_security_context_manager_v1", 1) -[2618139.650] {Default Queue} wl_registry#2054.global(23, "zwp_text_input_manager_v3", 1) -[2618139.655] {Default Queue} wl_registry#2054.global(24, "zwp_input_method_manager_v2", 1) -[2618139.659] {Default Queue} wl_registry#2054.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618139.664] {Default Queue} wl_registry#2054.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618139.668] {Default Queue} wl_registry#2054.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618139.673] {Default Queue} wl_registry#2054.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618139.677] {Default Queue} wl_registry#2054.global(29, "ext_workspace_manager_v1", 1) -[2618139.681] {Default Queue} wl_registry#2054.global(30, "zwlr_output_manager_v1", 4) -[2618139.686] {Default Queue} wl_registry#2054.global(31, "zwlr_screencopy_manager_v1", 3) -[2618139.690] {Default Queue} wl_registry#2054.global(32, "wp_viewporter", 1) -[2618139.694] {Default Queue} wl_registry#2054.global(33, "zxdg_exporter_v2", 1) -[2618139.699] {Default Queue} wl_registry#2054.global(34, "zxdg_importer_v2", 1) -[2618139.703] {Default Queue} wl_registry#2054.global(36, "xdg_activation_v1", 1) -[2618139.707] {Default Queue} wl_registry#2054.global(37, "mutter_x11_interop", 1) -[2618139.711] {Default Queue} wl_registry#2054.global(38, "wl_seat", 9) -[2618139.716] {Default Queue} -> wl_registry#2054.bind(38, "wl_seat", 1, new id [unknown]#2072) -[2618139.721] {Default Queue} wl_registry#2054.global(39, "wp_cursor_shape_manager_v1", 2) -[2618139.725] {Default Queue} wl_registry#2054.global(40, "wl_output", 4) -[2618139.729] {Default Queue} -> wl_registry#2054.bind(40, "wl_output", 1, new id [unknown]#2073) -[2618139.734] {Default Queue} wl_callback#2055.done(0) -[2618139.739] {Default Queue} discarded wl_surface#2023.enter(wl_output#18) -[2618139.744] {Default Queue} discarded wl_surface#2023.enter(wl_output#57) -[2618139.748] {Default Queue} discarded wl_surface#2023.enter(wl_output#89) -[2618139.754] {Default Queue} discarded wl_surface#2023.enter(wl_output#121) -[2618139.757] {Default Queue} discarded wl_surface#2023.enter(wl_output#153) -[2618139.761] {Default Queue} discarded wl_surface#2023.enter(wl_output#185) -[2618139.765] {Default Queue} discarded wl_surface#2023.enter(wl_output#217) -[2618139.769] {Default Queue} discarded wl_surface#2023.enter(wl_output#249) -[2618139.773] {Default Queue} discarded wl_surface#2023.enter(wl_output#281) -[2618139.777] {Default Queue} discarded wl_surface#2023.enter(wl_output#313) -[2618139.781] {Default Queue} discarded wl_surface#2023.enter(wl_output#345) -[2618139.785] {Default Queue} discarded wl_surface#2023.enter(wl_output#377) -[2618139.789] {Default Queue} discarded wl_surface#2023.enter(wl_output#409) -[2618139.793] {Default Queue} discarded wl_surface#2023.enter(wl_output#441) -[2618139.796] {Default Queue} discarded wl_surface#2023.enter(wl_output#473) -[2618139.800] {Default Queue} discarded wl_surface#2023.enter(wl_output#505) -[2618139.804] {Default Queue} discarded wl_surface#2023.enter(wl_output#537) -[2618139.808] {Default Queue} discarded wl_surface#2023.enter(wl_output#569) -[2618139.815] {Default Queue} discarded wl_surface#2023.enter(wl_output#601) -[2618139.820] {Default Queue} discarded wl_surface#2023.enter(wl_output#633) -[2618139.824] {Default Queue} discarded wl_surface#2023.enter(wl_output#665) -[2618139.828] {Default Queue} discarded wl_surface#2023.enter(wl_output#697) -[2618139.832] {Default Queue} discarded wl_surface#2023.enter(wl_output#729) -[2618139.836] {Default Queue} discarded wl_surface#2023.enter(wl_output#761) -[2618139.840] {Default Queue} discarded wl_surface#2023.enter(wl_output#793) -[2618139.844] {Default Queue} discarded wl_surface#2023.enter(wl_output#825) -[2618139.848] {Default Queue} discarded wl_surface#2023.enter(wl_output#857) -[2618139.852] {Default Queue} discarded wl_surface#2023.enter(wl_output#889) -[2618139.856] {Default Queue} discarded wl_surface#2023.enter(wl_output#921) -[2618139.860] {Default Queue} discarded wl_surface#2023.enter(wl_output#953) -[2618139.869] {Default Queue} discarded wl_surface#2023.enter(wl_output#985) -[2618139.873] {Default Queue} discarded wl_surface#2023.enter(wl_output#1017) -[2618139.877] {Default Queue} discarded wl_surface#2023.enter(wl_output#1049) -[2618139.881] {Default Queue} discarded wl_surface#2023.enter(wl_output#1081) -[2618139.885] {Default Queue} discarded wl_surface#2023.enter(wl_output#1113) -[2618139.889] {Default Queue} discarded wl_surface#2023.enter(wl_output#1145) -[2618139.893] {Default Queue} discarded wl_surface#2023.enter(wl_output#1177) -[2618139.897] {Default Queue} discarded wl_surface#2023.enter(wl_output#1209) -[2618139.901] {Default Queue} discarded wl_surface#2023.enter(wl_output#1241) -[2618139.905] {Default Queue} discarded wl_surface#2023.enter(wl_output#1273) -[2618139.909] {Default Queue} discarded wl_surface#2023.enter(wl_output#1305) -[2618139.913] {Default Queue} discarded wl_surface#2023.enter(wl_output#1337) -[2618139.917] {Default Queue} discarded wl_surface#2023.enter(wl_output#1369) -[2618139.921] {Default Queue} discarded wl_surface#2023.enter(wl_output#1401) -[2618139.925] {Default Queue} discarded wl_surface#2023.enter(wl_output#1433) -[2618139.929] {Default Queue} discarded wl_surface#2023.enter(wl_output#1465) -[2618139.933] {Default Queue} discarded wl_surface#2023.enter(wl_output#1497) -[2618139.937] {Default Queue} discarded wl_surface#2023.enter(wl_output#1529) -[2618139.941] {Default Queue} discarded wl_surface#2023.enter(wl_output#1561) -[2618139.945] {Default Queue} discarded wl_surface#2023.enter(wl_output#1593) -[2618139.949] {Default Queue} discarded wl_surface#2023.enter(wl_output#1625) -[2618139.953] {Default Queue} discarded wl_surface#2023.enter(wl_output#1657) -[2618139.957] {Default Queue} discarded wl_surface#2023.enter(wl_output#1689) -[2618139.961] {Default Queue} discarded wl_surface#2023.enter(wl_output#1721) -[2618139.964] {Default Queue} discarded wl_surface#2023.enter(wl_output#1753) -[2618139.968] {Default Queue} discarded wl_surface#2023.enter(wl_output#1785) -[2618139.972] {Default Queue} discarded wl_surface#2023.enter(wl_output#1817) -[2618139.976] {Default Queue} discarded wl_surface#2023.enter(wl_output#1849) -[2618139.980] {Default Queue} discarded wl_surface#2023.enter(wl_output#1881) -[2618139.984] {Default Queue} discarded wl_surface#2023.enter(wl_output#1913) -[2618139.988] {Default Queue} discarded wl_surface#2023.enter(wl_output#1945) -[2618139.992] {Default Queue} discarded wl_surface#2023.enter(wl_output#1977) -[2618139.996] {Default Queue} discarded wl_surface#2023.enter(wl_output#2009) -[2618140.000] {Default Queue} discarded wl_surface#2023.enter(wl_output#2041) -[2618140.004] {Default Queue} -> wl_compositor#2028.create_surface(new id wl_surface#2055) -[2618140.008] {Default Queue} -> wl_subcompositor#2061.get_subsurface(new id wl_subsurface#2074, wl_surface#2055, wl_surface#2023) -[2618140.017] {Default Queue} -> wl_subsurface#2074.set_desync() -[2618140.021] {Default Queue} -> wl_subsurface#2074.set_position(0, 0) -[2618140.025] {Default Queue} -> wl_subsurface#2074.place_above(wl_surface#2023) -[2618140.070] {Default Queue} -> wl_shm#2063.create_pool(new id wl_shm_pool#2075, fd 329, 16) -[2618140.080] {Default Queue} -> wl_shm#2063.create_pool(new id wl_shm_pool#2076, fd 330, 16) -[2618140.086] {Default Queue} -> wl_shm_pool#2075.create_buffer(new id wl_buffer#2077, 0, 2, 2, 8, 0) -[2618140.091] {Default Queue} -> wl_shm_pool#2076.create_buffer(new id wl_buffer#2078, 0, 2, 2, 8, 0) -[2618140.099] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) -[2618140.104] {Default Queue} -> wl_surface#2055.commit() -[2618140.109] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) -[2618140.114] {Default Queue} -> wl_surface#2055.commit() -[2618140.118] {Default Queue} -> wl_compositor#2060.create_region(new id wl_region#2079) -[2618140.122] {Default Queue} -> wl_compositor#2060.create_region(new id wl_region#2080) -[2618140.126] {Default Queue} -> wl_region#2079.subtract(0, 0, 2, 2) -[2618140.131] {Default Queue} -> wl_region#2079.add(0, 0, 0, 0) -[2618140.136] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618140.140] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618140.144] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618140.148] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) -[2618140.156] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) -[2618140.160] {Default Queue} -> wl_surface#2055.commit() -[2618140.193] {Default Queue} -> wl_shm#2065.create_pool(new id wl_shm_pool#2081, fd 333, 640) -[2618140.199] {Default Queue} -> wl_shm#2065.create_pool(new id wl_shm_pool#2082, fd 334, 640) -[2618140.204] {Default Queue} -> wl_shm_pool#2081.create_buffer(new id wl_buffer#2083, 0, 10, 16, 40, 0) -[2618140.209] {Default Queue} -> wl_shm_pool#2082.create_buffer(new id wl_buffer#2084, 0, 10, 16, 40, 0) -[2618140.216] {Default Queue} -> wl_compositor#2060.create_surface(new id wl_surface#2085) -[2618140.220] {Default Queue} -> wl_surface#2085.attach(wl_buffer#2083, 0, 0) -[2618140.225] {Default Queue} -> wl_surface#2085.commit() -[2618140.230] {Default Queue} -> wl_surface#2085.attach(wl_buffer#2083, 0, 0) -[2618140.235] {Default Queue} -> wl_surface#2085.commit() -[2618140.240] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618140.249] {Default Queue} -> wl_region#1983.subtract(0, 0, 2, 2) -[2618140.254] {Default Queue} -> wl_subsurface#1978.set_position(3, 3) -[2618140.258] {Default Queue} -> wl_region#1983.subtract(0, 0, 5, 5) -[2618140.262] {Default Queue} -> wl_region#1983.add(0, 0, 0, 0) -[2618140.267] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) -[2618140.271] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) -[2618140.275] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618140.279] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618140.284] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) -[2618140.288] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) -[2618140.295] {Default Queue} -> wl_region#1983.subtract(0, 0, 5, 5) -[2618140.299] {Default Queue} -> wl_region#1983.add(0, 0, 0, 0) -[2618140.304] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) -[2618140.308] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) -[2618140.313] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1981, 0, 0) -[2618140.317] {Default Queue} -> wl_surface#1959.commit() -[2618140.324] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2086) -[2618140.329] {Default Queue} -> wl_display#1.sync(new id wl_callback#2087) -[2618144.120] {Display Queue} wl_display#1.delete_id(2087) -[2618144.130] {Default Queue} wl_keyboard#2056.keymap(1, fd 329, 68213) -[2618144.137] {Default Queue} wl_keyboard#2056.enter(566, wl_surface#19, array[0]) -[2618144.143] {Default Queue} wl_keyboard#2056.modifiers(566, 0, 0, 16, 0) -[2618144.149] {Default Queue} discarded wl_shm#2063.format(875709016) -[2618144.154] {Default Queue} discarded wl_shm#2063.format(1) -[2618144.159] {Default Queue} discarded wl_shm#2063.format(0) -[2618144.164] {Default Queue} discarded wl_shm#2063.format(875708993) -[2618144.174] {Default Queue} discarded wl_shm#2064.format(875709016) -[2618144.184] {Default Queue} discarded wl_shm#2064.format(1) -[2618144.189] {Default Queue} discarded wl_shm#2064.format(0) -[2618144.194] {Default Queue} discarded wl_shm#2064.format(875708993) -[2618144.199] {Default Queue} discarded wl_shm#2065.format(875709016) -[2618144.204] {Default Queue} discarded wl_shm#2065.format(1) -[2618144.209] {Default Queue} discarded wl_shm#2065.format(0) -[2618144.214] {Default Queue} discarded wl_shm#2065.format(875708993) -[2618144.219] {Default Queue} wl_seat#2072.capabilities(7) -[2618144.225] {Default Queue} -> wl_seat#2072.get_keyboard(new id wl_keyboard#2088) -[2618144.230] {Default Queue} -> wl_seat#2072.get_pointer(new id wl_pointer#2089) -[2618144.235] {Default Queue} -> wl_data_device_manager#2068.get_data_device(new id wl_data_device#2090, wl_seat#2072) -[2618144.241] {Default Queue} -> zwp_primary_selection_device_manager_v1#2070.get_device(new id zwp_primary_selection_device_v1#2091, wl_seat#2072) -[2618144.251] {Default Queue} wl_output#2073.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618144.258] {Default Queue} wl_output#2073.mode(3, 1280, 800, 60000) -[2618144.263] {Default Queue} discarded wl_surface#3.enter(wl_output#2073) -[2618144.268] {Default Queue} discarded wl_surface#999.enter(wl_output#2073) -[2618144.273] {Default Queue} discarded wl_surface#1191.enter(wl_output#2073) -[2618144.278] {Default Queue} discarded wl_surface#1159.enter(wl_output#2073) -[2618144.283] {Default Queue} discarded wl_surface#1703.enter(wl_output#2073) -[2618144.288] {Default Queue} discarded wl_surface#423.enter(wl_output#2073) -[2618144.293] {Default Queue} discarded wl_surface#1447.enter(wl_output#2073) -[2618144.298] {Default Queue} discarded wl_surface#2023.enter(wl_output#2073) -[2618144.303] {Default Queue} discarded wl_surface#1639.enter(wl_output#2073) -[2618144.308] {Default Queue} discarded wl_surface#1319.enter(wl_output#2073) -[2618144.312] {Default Queue} discarded wl_surface#1127.enter(wl_output#2073) -[2618144.317] {Default Queue} discarded wl_surface#1063.enter(wl_output#2073) -[2618144.322] {Default Queue} discarded wl_surface#455.enter(wl_output#2073) -[2618144.327] {Default Queue} discarded wl_surface#1575.enter(wl_output#2073) -[2618144.332] {Default Queue} discarded wl_surface#1799.enter(wl_output#2073) -[2618144.337] {Default Queue} discarded wl_surface#1415.enter(wl_output#2073) -[2618144.342] {Default Queue} discarded wl_surface#1831.enter(wl_output#2073) -[2618144.346] {Default Queue} discarded wl_surface#903.enter(wl_output#2073) -[2618144.351] {Default Queue} discarded wl_surface#775.enter(wl_output#2073) -[2618144.356] {Default Queue} discarded wl_surface#1991.enter(wl_output#2073) -[2618144.361] {Default Queue} discarded wl_surface#1543.enter(wl_output#2073) -[2618144.366] {Default Queue} discarded wl_surface#135.enter(wl_output#2073) -[2618144.371] {Default Queue} discarded wl_surface#1287.enter(wl_output#2073) -[2618144.376] {Default Queue} discarded wl_surface#1031.enter(wl_output#2073) -[2618144.381] {Default Queue} discarded wl_surface#615.enter(wl_output#2073) -[2618144.386] {Default Queue} discarded wl_surface#231.enter(wl_output#2073) -[2618144.391] {Default Queue} discarded wl_surface#1863.enter(wl_output#2073) -[2618144.396] {Default Queue} discarded wl_surface#359.enter(wl_output#2073) -[2618144.400] {Default Queue} discarded wl_surface#583.enter(wl_output#2073) -[2618144.405] {Default Queue} discarded wl_surface#743.enter(wl_output#2073) -[2618144.410] {Default Queue} discarded wl_surface#967.enter(wl_output#2073) -[2618144.415] {Default Queue} discarded wl_surface#103.enter(wl_output#2073) -[2618144.420] {Default Queue} discarded wl_surface#327.enter(wl_output#2073) -[2618144.425] {Default Queue} discarded wl_surface#43.enter(wl_output#2073) -[2618144.430] {Default Queue} discarded wl_surface#807.enter(wl_output#2073) -[2618144.435] {Default Queue} discarded wl_surface#19.enter(wl_output#2073) -[2618144.440] {Default Queue} discarded wl_surface#1511.enter(wl_output#2073) -[2618144.448] {Default Queue} discarded wl_surface#199.enter(wl_output#2073) -[2618144.455] {Default Queue} discarded wl_surface#391.enter(wl_output#2073) -[2618144.460] {Default Queue} discarded wl_surface#935.enter(wl_output#2073) -[2618144.465] {Default Queue} discarded wl_surface#1671.enter(wl_output#2073) -[2618144.469] {Default Queue} discarded wl_surface#1351.enter(wl_output#2073) -[2618144.474] {Default Queue} discarded wl_surface#711.enter(wl_output#2073) -[2618144.479] {Default Queue} discarded wl_surface#1223.enter(wl_output#2073) -[2618144.484] {Default Queue} discarded wl_surface#1927.enter(wl_output#2073) -[2618144.489] {Default Queue} discarded wl_surface#871.enter(wl_output#2073) -[2618144.494] {Default Queue} discarded wl_surface#1895.enter(wl_output#2073) -[2618144.499] {Default Queue} discarded wl_surface#263.enter(wl_output#2073) -[2618144.504] {Default Queue} discarded wl_surface#551.enter(wl_output#2073) -[2618144.508] {Default Queue} discarded wl_surface#1735.enter(wl_output#2073) -[2618144.513] {Default Queue} discarded wl_surface#1479.enter(wl_output#2073) -[2618144.518] {Default Queue} discarded wl_surface#1772.enter(wl_output#2073) -[2618144.523] {Default Queue} discarded wl_surface#1959.enter(wl_output#2073) -[2618144.528] {Default Queue} discarded wl_surface#647.enter(wl_output#2073) -[2618144.533] {Default Queue} discarded wl_surface#71.enter(wl_output#2073) -[2618144.538] {Default Queue} discarded wl_surface#839.enter(wl_output#2073) -[2618144.543] {Default Queue} discarded wl_surface#1607.enter(wl_output#2073) -[2618144.548] {Default Queue} discarded wl_surface#1095.enter(wl_output#2073) -[2618144.552] {Default Queue} discarded wl_surface#1383.enter(wl_output#2073) -[2618144.557] {Default Queue} discarded wl_surface#487.enter(wl_output#2073) -[2618144.562] {Default Queue} discarded wl_surface#519.enter(wl_output#2073) -[2618144.567] {Default Queue} discarded wl_surface#295.enter(wl_output#2073) -[2618144.572] {Default Queue} discarded wl_surface#167.enter(wl_output#2073) -[2618144.577] {Default Queue} discarded wl_surface#1255.enter(wl_output#2073) -[2618144.582] {Default Queue} discarded wl_surface#679.enter(wl_output#2073) -[2618144.587] {Default Queue} wl_registry#2086.global(1, "wl_compositor", 6) -[2618144.593] {Default Queue} -> wl_registry#2086.bind(1, "wl_compositor", 1, new id [unknown]#2092) -[2618144.599] {Default Queue} wl_registry#2086.global(2, "wl_subcompositor", 1) -[2618144.605] {Default Queue} -> wl_registry#2086.bind(2, "wl_subcompositor", 1, new id [unknown]#2093) -[2618144.610] {Default Queue} wl_registry#2086.global(3, "xdg_wm_base", 6) -[2618144.616] {Default Queue} -> wl_registry#2086.bind(3, "xdg_wm_base", 1, new id [unknown]#2094) -[2618144.622] {Default Queue} wl_registry#2086.global(6, "zwlr_layer_shell_v1", 5) -[2618144.627] {Default Queue} wl_registry#2086.global(7, "ext_session_lock_manager_v1", 1) -[2618144.636] {Default Queue} wl_registry#2086.global(8, "wl_shm", 2) -[2618144.642] {Default Queue} -> wl_registry#2086.bind(8, "wl_shm", 1, new id [unknown]#2095) -[2618144.648] {Default Queue} -> wl_registry#2086.bind(8, "wl_shm", 1, new id [unknown]#2096) -[2618144.653] {Default Queue} -> wl_registry#2086.bind(8, "wl_shm", 1, new id [unknown]#2097) -[2618144.659] {Default Queue} wl_registry#2086.global(9, "zxdg_output_manager_v1", 3) -[2618144.664] {Default Queue} wl_registry#2086.global(10, "wp_fractional_scale_manager_v1", 1) -[2618144.670] {Default Queue} wl_registry#2086.global(11, "zwp_tablet_manager_v2", 1) -[2618144.675] {Default Queue} wl_registry#2086.global(12, "zwp_pointer_gestures_v1", 3) -[2618144.680] {Default Queue} wl_registry#2086.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618144.686] {Default Queue} -> wl_registry#2086.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2098) -[2618144.691] {Default Queue} wl_registry#2086.global(14, "zwp_pointer_constraints_v1", 1) -[2618144.697] {Default Queue} -> wl_registry#2086.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2099) -[2618144.703] {Default Queue} wl_registry#2086.global(15, "ext_idle_notifier_v1", 2) -[2618144.712] {Default Queue} wl_registry#2086.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618144.719] {Default Queue} wl_registry#2086.global(17, "wl_data_device_manager", 3) -[2618144.725] {Default Queue} -> wl_registry#2086.bind(17, "wl_data_device_manager", 2, new id [unknown]#2100) -[2618144.731] {Default Queue} -> wl_data_device_manager#2100.create_data_source(new id wl_data_source#2101) -[2618144.736] {Default Queue} -> wl_data_source#2101.offer("text/plain") -[2618144.742] {Default Queue} -> wl_data_source#2101.offer("text/plain;charset=utf-8") -[2618144.747] {Default Queue} -> wl_data_source#2101.offer("TEXT") -[2618144.752] {Default Queue} -> wl_data_source#2101.offer("STRING") -[2618144.757] {Default Queue} -> wl_data_source#2101.offer("UTF8_STRING") -[2618144.762] {Default Queue} wl_registry#2086.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618144.768] {Default Queue} -> wl_registry#2086.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2102) -[2618144.778] {Default Queue} -> zwp_primary_selection_device_manager_v1#2102.create_source(new id zwp_primary_selection_source_v1#2103) -[2618144.787] {Default Queue} -> zwp_primary_selection_source_v1#2103.offer("text/plain") -[2618144.792] {Default Queue} -> zwp_primary_selection_source_v1#2103.offer("text/plain;charset=utf-8") -[2618144.797] {Default Queue} -> zwp_primary_selection_source_v1#2103.offer("TEXT") -[2618144.802] {Default Queue} -> zwp_primary_selection_source_v1#2103.offer("STRING") -[2618144.807] {Default Queue} -> zwp_primary_selection_source_v1#2103.offer("UTF8_STRING") -[2618144.812] {Default Queue} wl_registry#2086.global(19, "zwlr_data_control_manager_v1", 2) -[2618144.818] {Default Queue} wl_registry#2086.global(20, "ext_data_control_manager_v1", 1) -[2618144.823] {Default Queue} wl_registry#2086.global(21, "wp_presentation", 2) -[2618144.829] {Default Queue} wl_registry#2086.global(22, "wp_security_context_manager_v1", 1) -[2618144.834] {Default Queue} wl_registry#2086.global(23, "zwp_text_input_manager_v3", 1) -[2618144.839] {Default Queue} wl_registry#2086.global(24, "zwp_input_method_manager_v2", 1) -[2618144.845] {Default Queue} wl_registry#2086.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618144.850] {Default Queue} wl_registry#2086.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618144.855] {Default Queue} wl_registry#2086.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618144.866] {Default Queue} wl_registry#2086.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618144.872] {Default Queue} wl_registry#2086.global(29, "ext_workspace_manager_v1", 1) -[2618144.877] {Default Queue} wl_registry#2086.global(30, "zwlr_output_manager_v1", 4) -[2618144.882] {Default Queue} wl_registry#2086.global(31, "zwlr_screencopy_manager_v1", 3) -[2618144.888] {Default Queue} wl_registry#2086.global(32, "wp_viewporter", 1) -[2618144.893] {Default Queue} wl_registry#2086.global(33, "zxdg_exporter_v2", 1) -[2618144.899] {Default Queue} wl_registry#2086.global(34, "zxdg_importer_v2", 1) -[2618144.904] {Default Queue} wl_registry#2086.global(36, "xdg_activation_v1", 1) -[2618144.910] {Default Queue} wl_registry#2086.global(37, "mutter_x11_interop", 1) -[2618144.915] {Default Queue} wl_registry#2086.global(38, "wl_seat", 9) -[2618144.921] {Default Queue} -> wl_registry#2086.bind(38, "wl_seat", 1, new id [unknown]#2104) -[2618144.927] {Default Queue} wl_registry#2086.global(39, "wp_cursor_shape_manager_v1", 2) -[2618144.932] {Default Queue} wl_registry#2086.global(40, "wl_output", 4) -[2618144.938] {Default Queue} -> wl_registry#2086.bind(40, "wl_output", 1, new id [unknown]#2105) -[2618144.943] {Default Queue} wl_callback#2087.done(0) -[2618144.948] {Default Queue} discarded wl_surface#2055.enter(wl_output#18) -[2618144.953] {Default Queue} discarded wl_surface#2055.enter(wl_output#57) -[2618144.958] {Default Queue} discarded wl_surface#2055.enter(wl_output#89) -[2618144.964] {Default Queue} discarded wl_surface#2055.enter(wl_output#121) -[2618144.968] {Default Queue} discarded wl_surface#2055.enter(wl_output#153) -[2618144.973] {Default Queue} discarded wl_surface#2055.enter(wl_output#185) -[2618144.980] {Default Queue} discarded wl_surface#2055.enter(wl_output#217) -[2618144.985] {Default Queue} discarded wl_surface#2055.enter(wl_output#249) -[2618144.989] {Default Queue} discarded wl_surface#2055.enter(wl_output#281) -[2618144.993] {Default Queue} discarded wl_surface#2055.enter(wl_output#313) -[2618144.997] {Default Queue} discarded wl_surface#2055.enter(wl_output#345) -[2618145.001] {Default Queue} discarded wl_surface#2055.enter(wl_output#377) -[2618145.005] {Default Queue} discarded wl_surface#2055.enter(wl_output#409) -[2618145.009] {Default Queue} discarded wl_surface#2055.enter(wl_output#441) -[2618145.013] {Default Queue} discarded wl_surface#2055.enter(wl_output#473) -[2618145.017] {Default Queue} discarded wl_surface#2055.enter(wl_output#505) -[2618145.021] {Default Queue} discarded wl_surface#2055.enter(wl_output#537) -[2618145.025] {Default Queue} discarded wl_surface#2055.enter(wl_output#569) -[2618145.029] {Default Queue} discarded wl_surface#2055.enter(wl_output#601) -[2618145.033] {Default Queue} discarded wl_surface#2055.enter(wl_output#633) -[2618145.037] {Default Queue} discarded wl_surface#2055.enter(wl_output#665) -[2618145.041] {Default Queue} discarded wl_surface#2055.enter(wl_output#697) -[2618145.045] {Default Queue} discarded wl_surface#2055.enter(wl_output#729) -[2618145.049] {Default Queue} discarded wl_surface#2055.enter(wl_output#761) -[2618145.053] {Default Queue} discarded wl_surface#2055.enter(wl_output#793) -[2618145.057] {Default Queue} discarded wl_surface#2055.enter(wl_output#825) -[2618145.061] {Default Queue} discarded wl_surface#2055.enter(wl_output#857) -[2618145.065] {Default Queue} discarded wl_surface#2055.enter(wl_output#889) -[2618145.069] {Default Queue} discarded wl_surface#2055.enter(wl_output#921) -[2618145.073] {Default Queue} discarded wl_surface#2055.enter(wl_output#953) -[2618145.076] {Default Queue} discarded wl_surface#2055.enter(wl_output#985) -[2618145.080] {Default Queue} discarded wl_surface#2055.enter(wl_output#1017) -[2618145.084] {Default Queue} discarded wl_surface#2055.enter(wl_output#1049) -[2618145.088] {Default Queue} discarded wl_surface#2055.enter(wl_output#1081) -[2618145.092] {Default Queue} discarded wl_surface#2055.enter(wl_output#1113) -[2618145.096] {Default Queue} discarded wl_surface#2055.enter(wl_output#1145) -[2618145.100] {Default Queue} discarded wl_surface#2055.enter(wl_output#1177) -[2618145.104] {Default Queue} discarded wl_surface#2055.enter(wl_output#1209) -[2618145.108] {Default Queue} discarded wl_surface#2055.enter(wl_output#1241) -[2618145.112] {Default Queue} discarded wl_surface#2055.enter(wl_output#1273) -[2618145.116] {Default Queue} discarded wl_surface#2055.enter(wl_output#1305) -[2618145.120] {Default Queue} discarded wl_surface#2055.enter(wl_output#1337) -[2618145.124] {Default Queue} discarded wl_surface#2055.enter(wl_output#1369) -[2618145.128] {Default Queue} discarded wl_surface#2055.enter(wl_output#1401) -[2618145.132] {Default Queue} discarded wl_surface#2055.enter(wl_output#1433) -[2618145.136] {Default Queue} discarded wl_surface#2055.enter(wl_output#1465) -[2618145.139] {Default Queue} discarded wl_surface#2055.enter(wl_output#1497) -[2618145.143] {Default Queue} discarded wl_surface#2055.enter(wl_output#1529) -[2618145.147] {Default Queue} discarded wl_surface#2055.enter(wl_output#1561) -[2618145.151] {Default Queue} discarded wl_surface#2055.enter(wl_output#1593) -[2618145.155] {Default Queue} discarded wl_surface#2055.enter(wl_output#1625) -[2618145.159] {Default Queue} discarded wl_surface#2055.enter(wl_output#1657) -[2618145.163] {Default Queue} discarded wl_surface#2055.enter(wl_output#1689) -[2618145.167] {Default Queue} discarded wl_surface#2055.enter(wl_output#1721) -[2618145.171] {Default Queue} discarded wl_surface#2055.enter(wl_output#1753) -[2618145.175] {Default Queue} discarded wl_surface#2055.enter(wl_output#1785) -[2618145.179] {Default Queue} discarded wl_surface#2055.enter(wl_output#1817) -[2618145.183] {Default Queue} discarded wl_surface#2055.enter(wl_output#1849) -[2618145.189] {Default Queue} discarded wl_surface#2055.enter(wl_output#1881) -[2618145.195] {Default Queue} discarded wl_surface#2055.enter(wl_output#1913) -[2618145.199] {Default Queue} discarded wl_surface#2055.enter(wl_output#1945) -[2618145.203] {Default Queue} discarded wl_surface#2055.enter(wl_output#1977) -[2618145.207] {Default Queue} discarded wl_surface#2055.enter(wl_output#2009) -[2618145.212] {Default Queue} discarded wl_surface#2055.enter(wl_output#2041) -[2618145.215] {Default Queue} discarded wl_surface#2055.enter(wl_output#2073) -[2618145.220] {Default Queue} -> wl_compositor#28.create_surface(new id wl_surface#2087) -[2618145.224] {Default Queue} -> wl_subcompositor#2093.get_subsurface(new id wl_subsurface#2106, wl_surface#2087, wl_surface#71) -[2618145.233] {Default Queue} -> wl_subsurface#2106.set_desync() -[2618145.237] {Default Queue} -> wl_subsurface#2106.set_position(0, 0) -[2618145.242] {Default Queue} -> wl_subsurface#2106.place_above(wl_surface#71) -[2618145.283] {Default Queue} -> wl_shm#2095.create_pool(new id wl_shm_pool#2107, fd 334, 16) -[2618145.290] {Default Queue} -> wl_shm#2095.create_pool(new id wl_shm_pool#2108, fd 335, 16) -[2618145.295] {Default Queue} -> wl_shm_pool#2107.create_buffer(new id wl_buffer#2109, 0, 2, 2, 8, 0) -[2618145.300] {Default Queue} -> wl_shm_pool#2108.create_buffer(new id wl_buffer#2110, 0, 2, 2, 8, 0) -[2618145.308] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) -[2618145.312] {Default Queue} -> wl_surface#2087.commit() -[2618145.318] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) -[2618145.322] {Default Queue} -> wl_surface#2087.commit() -[2618145.326] {Default Queue} -> wl_compositor#2092.create_region(new id wl_region#2111) -[2618145.331] {Default Queue} -> wl_compositor#2092.create_region(new id wl_region#2112) -[2618145.336] {Default Queue} -> wl_region#2111.subtract(0, 0, 2, 2) -[2618145.341] {Default Queue} -> wl_region#2111.add(0, 0, 0, 0) -[2618145.345] {Default Queue} -> wl_surface#2087.set_opaque_region(wl_region#2112) -[2618145.349] {Default Queue} -> wl_surface#2087.set_input_region(wl_region#2111) -[2618145.353] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) -[2618145.358] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) -[2618145.365] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) -[2618145.369] {Default Queue} -> wl_surface#2087.commit() -[2618145.401] {Default Queue} -> wl_shm#2097.create_pool(new id wl_shm_pool#2113, fd 338, 640) -[2618145.407] {Default Queue} -> wl_shm#2097.create_pool(new id wl_shm_pool#2114, fd 339, 640) -[2618145.411] {Default Queue} -> wl_shm_pool#2113.create_buffer(new id wl_buffer#2115, 0, 10, 16, 40, 0) -[2618145.416] {Default Queue} -> wl_shm_pool#2114.create_buffer(new id wl_buffer#2116, 0, 10, 16, 40, 0) -[2618145.423] {Default Queue} -> wl_compositor#2092.create_surface(new id wl_surface#2117) -[2618145.427] {Default Queue} -> wl_surface#2117.attach(wl_buffer#2115, 0, 0) -[2618145.431] {Default Queue} -> wl_surface#2117.commit() -[2618145.437] {Default Queue} -> wl_surface#2117.attach(wl_buffer#2115, 0, 0) -[2618145.441] {Default Queue} -> wl_surface#2117.commit() -[2618145.447] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) -[2618145.453] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2118) -[2618145.458] {Default Queue} -> wl_display#1.sync(new id wl_callback#2119) -[2618149.117] {Display Queue} wl_display#1.delete_id(2119) -[2618149.126] {Default Queue} wl_keyboard#2088.keymap(1, fd 334, 68213) -[2618149.131] {Default Queue} wl_keyboard#2088.enter(566, wl_surface#19, array[0]) -[2618149.136] {Default Queue} wl_keyboard#2088.modifiers(566, 0, 0, 16, 0) -[2618149.141] {Default Queue} discarded wl_shm#2095.format(875709016) -[2618149.145] {Default Queue} discarded wl_shm#2095.format(1) -[2618149.149] {Default Queue} discarded wl_shm#2095.format(0) -[2618149.153] {Default Queue} discarded wl_shm#2095.format(875708993) -[2618149.157] {Default Queue} discarded wl_shm#2096.format(875709016) -[2618149.161] {Default Queue} discarded wl_shm#2096.format(1) -[2618149.169] {Default Queue} discarded wl_shm#2096.format(0) -[2618149.175] {Default Queue} discarded wl_shm#2096.format(875708993) -[2618149.179] {Default Queue} discarded wl_shm#2097.format(875709016) -[2618149.183] {Default Queue} discarded wl_shm#2097.format(1) -[2618149.187] {Default Queue} discarded wl_shm#2097.format(0) -[2618149.192] {Default Queue} discarded wl_shm#2097.format(875708993) -[2618149.196] {Default Queue} wl_seat#2104.capabilities(7) -[2618149.200] {Default Queue} -> wl_seat#2104.get_keyboard(new id wl_keyboard#2120) -[2618149.205] {Default Queue} -> wl_seat#2104.get_pointer(new id wl_pointer#2121) -[2618149.209] {Default Queue} -> wl_data_device_manager#2100.get_data_device(new id wl_data_device#2122, wl_seat#2104) -[2618149.214] {Default Queue} -> zwp_primary_selection_device_manager_v1#2102.get_device(new id zwp_primary_selection_device_v1#2123, wl_seat#2104) -[2618149.222] {Default Queue} wl_output#2105.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618149.227] {Default Queue} wl_output#2105.mode(3, 1280, 800, 60000) -[2618149.231] {Default Queue} discarded wl_surface#3.enter(wl_output#2105) -[2618149.235] {Default Queue} discarded wl_surface#999.enter(wl_output#2105) -[2618149.239] {Default Queue} discarded wl_surface#1191.enter(wl_output#2105) -[2618149.244] {Default Queue} discarded wl_surface#1159.enter(wl_output#2105) -[2618149.247] {Default Queue} discarded wl_surface#1703.enter(wl_output#2105) -[2618149.252] {Default Queue} discarded wl_surface#423.enter(wl_output#2105) -[2618149.255] {Default Queue} discarded wl_surface#1447.enter(wl_output#2105) -[2618149.259] {Default Queue} discarded wl_surface#2023.enter(wl_output#2105) -[2618149.263] {Default Queue} discarded wl_surface#1639.enter(wl_output#2105) -[2618149.267] {Default Queue} discarded wl_surface#1319.enter(wl_output#2105) -[2618149.271] {Default Queue} discarded wl_surface#1127.enter(wl_output#2105) -[2618149.275] {Default Queue} discarded wl_surface#1063.enter(wl_output#2105) -[2618149.279] {Default Queue} discarded wl_surface#455.enter(wl_output#2105) -[2618149.283] {Default Queue} discarded wl_surface#1575.enter(wl_output#2105) -[2618149.287] {Default Queue} discarded wl_surface#1799.enter(wl_output#2105) -[2618149.291] {Default Queue} discarded wl_surface#1415.enter(wl_output#2105) -[2618149.294] {Default Queue} discarded wl_surface#1831.enter(wl_output#2105) -[2618149.298] {Default Queue} discarded wl_surface#903.enter(wl_output#2105) -[2618149.302] {Default Queue} discarded wl_surface#775.enter(wl_output#2105) -[2618149.306] {Default Queue} discarded wl_surface#1991.enter(wl_output#2105) -[2618149.310] {Default Queue} discarded wl_surface#1543.enter(wl_output#2105) -[2618149.314] {Default Queue} discarded wl_surface#135.enter(wl_output#2105) -[2618149.318] {Default Queue} discarded wl_surface#1287.enter(wl_output#2105) -[2618149.322] {Default Queue} discarded wl_surface#1031.enter(wl_output#2105) -[2618149.326] {Default Queue} discarded wl_surface#615.enter(wl_output#2105) -[2618149.330] {Default Queue} discarded wl_surface#231.enter(wl_output#2105) -[2618149.334] {Default Queue} discarded wl_surface#1863.enter(wl_output#2105) -[2618149.338] {Default Queue} discarded wl_surface#359.enter(wl_output#2105) -[2618149.342] {Default Queue} discarded wl_surface#583.enter(wl_output#2105) -[2618149.346] {Default Queue} discarded wl_surface#743.enter(wl_output#2105) -[2618149.350] {Default Queue} discarded wl_surface#967.enter(wl_output#2105) -[2618149.354] {Default Queue} discarded wl_surface#103.enter(wl_output#2105) -[2618149.358] {Default Queue} discarded wl_surface#327.enter(wl_output#2105) -[2618149.362] {Default Queue} discarded wl_surface#43.enter(wl_output#2105) -[2618149.366] {Default Queue} discarded wl_surface#807.enter(wl_output#2105) -[2618149.371] {Default Queue} discarded wl_surface#19.enter(wl_output#2105) -[2618149.375] {Default Queue} discarded wl_surface#1511.enter(wl_output#2105) -[2618149.379] {Default Queue} discarded wl_surface#199.enter(wl_output#2105) -[2618149.382] {Default Queue} discarded wl_surface#391.enter(wl_output#2105) -[2618149.386] {Default Queue} discarded wl_surface#935.enter(wl_output#2105) -[2618149.394] {Default Queue} discarded wl_surface#1671.enter(wl_output#2105) -[2618149.399] {Default Queue} discarded wl_surface#1351.enter(wl_output#2105) -[2618149.403] {Default Queue} discarded wl_surface#711.enter(wl_output#2105) -[2618149.407] {Default Queue} discarded wl_surface#1223.enter(wl_output#2105) -[2618149.411] {Default Queue} discarded wl_surface#1927.enter(wl_output#2105) -[2618149.415] {Default Queue} discarded wl_surface#871.enter(wl_output#2105) -[2618149.419] {Default Queue} discarded wl_surface#1895.enter(wl_output#2105) -[2618149.423] {Default Queue} discarded wl_surface#263.enter(wl_output#2105) -[2618149.427] {Default Queue} discarded wl_surface#551.enter(wl_output#2105) -[2618149.431] {Default Queue} discarded wl_surface#1735.enter(wl_output#2105) -[2618149.434] {Default Queue} discarded wl_surface#1479.enter(wl_output#2105) -[2618149.438] {Default Queue} discarded wl_surface#1772.enter(wl_output#2105) -[2618149.443] {Default Queue} discarded wl_surface#1959.enter(wl_output#2105) -[2618149.447] {Default Queue} discarded wl_surface#647.enter(wl_output#2105) -[2618149.451] {Default Queue} discarded wl_surface#2055.enter(wl_output#2105) -[2618149.454] {Default Queue} discarded wl_surface#71.enter(wl_output#2105) -[2618149.458] {Default Queue} discarded wl_surface#839.enter(wl_output#2105) -[2618149.462] {Default Queue} discarded wl_surface#1607.enter(wl_output#2105) -[2618149.466] {Default Queue} discarded wl_surface#1095.enter(wl_output#2105) -[2618149.470] {Default Queue} discarded wl_surface#1383.enter(wl_output#2105) -[2618149.474] {Default Queue} discarded wl_surface#487.enter(wl_output#2105) -[2618149.478] {Default Queue} discarded wl_surface#519.enter(wl_output#2105) -[2618149.482] {Default Queue} discarded wl_surface#295.enter(wl_output#2105) -[2618149.486] {Default Queue} discarded wl_surface#167.enter(wl_output#2105) -[2618149.490] {Default Queue} discarded wl_surface#1255.enter(wl_output#2105) -[2618149.493] {Default Queue} discarded wl_surface#679.enter(wl_output#2105) -[2618149.497] {Default Queue} wl_registry#2118.global(1, "wl_compositor", 6) -[2618149.503] {Default Queue} -> wl_registry#2118.bind(1, "wl_compositor", 1, new id [unknown]#2124) -[2618149.508] {Default Queue} wl_registry#2118.global(2, "wl_subcompositor", 1) -[2618149.513] {Default Queue} -> wl_registry#2118.bind(2, "wl_subcompositor", 1, new id [unknown]#2125) -[2618149.517] {Default Queue} wl_registry#2118.global(3, "xdg_wm_base", 6) -[2618149.522] {Default Queue} -> wl_registry#2118.bind(3, "xdg_wm_base", 1, new id [unknown]#2126) -[2618149.528] {Default Queue} wl_registry#2118.global(6, "zwlr_layer_shell_v1", 5) -[2618149.532] {Default Queue} wl_registry#2118.global(7, "ext_session_lock_manager_v1", 1) -[2618149.537] {Default Queue} wl_registry#2118.global(8, "wl_shm", 2) -[2618149.544] {Default Queue} -> wl_registry#2118.bind(8, "wl_shm", 1, new id [unknown]#2127) -[2618149.548] {Default Queue} -> wl_registry#2118.bind(8, "wl_shm", 1, new id [unknown]#2128) -[2618149.553] {Default Queue} -> wl_registry#2118.bind(8, "wl_shm", 1, new id [unknown]#2129) -[2618149.558] {Default Queue} wl_registry#2118.global(9, "zxdg_output_manager_v1", 3) -[2618149.562] {Default Queue} wl_registry#2118.global(10, "wp_fractional_scale_manager_v1", 1) -[2618149.566] {Default Queue} wl_registry#2118.global(11, "zwp_tablet_manager_v2", 1) -[2618149.571] {Default Queue} wl_registry#2118.global(12, "zwp_pointer_gestures_v1", 3) -[2618149.575] {Default Queue} wl_registry#2118.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618149.580] {Default Queue} -> wl_registry#2118.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2130) -[2618149.584] {Default Queue} wl_registry#2118.global(14, "zwp_pointer_constraints_v1", 1) -[2618149.588] {Default Queue} -> wl_registry#2118.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2131) -[2618149.593] {Default Queue} wl_registry#2118.global(15, "ext_idle_notifier_v1", 2) -[2618149.597] {Default Queue} wl_registry#2118.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618149.604] {Default Queue} wl_registry#2118.global(17, "wl_data_device_manager", 3) -[2618149.611] {Default Queue} -> wl_registry#2118.bind(17, "wl_data_device_manager", 2, new id [unknown]#2132) -[2618149.616] {Default Queue} -> wl_data_device_manager#2132.create_data_source(new id wl_data_source#2133) -[2618149.620] {Default Queue} -> wl_data_source#2133.offer("text/plain") -[2618149.624] {Default Queue} -> wl_data_source#2133.offer("text/plain;charset=utf-8") -[2618149.629] {Default Queue} -> wl_data_source#2133.offer("TEXT") -[2618149.633] {Default Queue} -> wl_data_source#2133.offer("STRING") -[2618149.637] {Default Queue} -> wl_data_source#2133.offer("UTF8_STRING") -[2618149.641] {Default Queue} wl_registry#2118.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618149.646] {Default Queue} -> wl_registry#2118.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2134) -[2618149.654] {Default Queue} -> zwp_primary_selection_device_manager_v1#2134.create_source(new id zwp_primary_selection_source_v1#2135) -[2618149.661] {Default Queue} -> zwp_primary_selection_source_v1#2135.offer("text/plain") -[2618149.665] {Default Queue} -> zwp_primary_selection_source_v1#2135.offer("text/plain;charset=utf-8") -[2618149.669] {Default Queue} -> zwp_primary_selection_source_v1#2135.offer("TEXT") -[2618149.674] {Default Queue} -> zwp_primary_selection_source_v1#2135.offer("STRING") -[2618149.678] {Default Queue} -> zwp_primary_selection_source_v1#2135.offer("UTF8_STRING") -[2618149.682] {Default Queue} wl_registry#2118.global(19, "zwlr_data_control_manager_v1", 2) -[2618149.686] {Default Queue} wl_registry#2118.global(20, "ext_data_control_manager_v1", 1) -[2618149.690] {Default Queue} wl_registry#2118.global(21, "wp_presentation", 2) -[2618149.695] {Default Queue} wl_registry#2118.global(22, "wp_security_context_manager_v1", 1) -[2618149.699] {Default Queue} wl_registry#2118.global(23, "zwp_text_input_manager_v3", 1) -[2618149.703] {Default Queue} wl_registry#2118.global(24, "zwp_input_method_manager_v2", 1) -[2618149.708] {Default Queue} wl_registry#2118.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618149.712] {Default Queue} wl_registry#2118.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618149.716] {Default Queue} wl_registry#2118.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618149.721] {Default Queue} wl_registry#2118.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618149.725] {Default Queue} wl_registry#2118.global(29, "ext_workspace_manager_v1", 1) -[2618149.729] {Default Queue} wl_registry#2118.global(30, "zwlr_output_manager_v1", 4) -[2618149.734] {Default Queue} wl_registry#2118.global(31, "zwlr_screencopy_manager_v1", 3) -[2618149.738] {Default Queue} wl_registry#2118.global(32, "wp_viewporter", 1) -[2618149.742] {Default Queue} wl_registry#2118.global(33, "zxdg_exporter_v2", 1) -[2618149.747] {Default Queue} wl_registry#2118.global(34, "zxdg_importer_v2", 1) -[2618149.751] {Default Queue} wl_registry#2118.global(36, "xdg_activation_v1", 1) -[2618149.755] {Default Queue} wl_registry#2118.global(37, "mutter_x11_interop", 1) -[2618149.760] {Default Queue} wl_registry#2118.global(38, "wl_seat", 9) -[2618149.764] {Default Queue} -> wl_registry#2118.bind(38, "wl_seat", 1, new id [unknown]#2136) -[2618149.769] {Default Queue} wl_registry#2118.global(39, "wp_cursor_shape_manager_v1", 2) -[2618149.773] {Default Queue} wl_registry#2118.global(40, "wl_output", 4) -[2618149.777] {Default Queue} -> wl_registry#2118.bind(40, "wl_output", 1, new id [unknown]#2137) -[2618149.782] {Default Queue} wl_callback#2119.done(0) -[2618149.786] {Default Queue} discarded wl_surface#2087.enter(wl_output#18) -[2618149.790] {Default Queue} discarded wl_surface#2087.enter(wl_output#57) -[2618149.794] {Default Queue} discarded wl_surface#2087.enter(wl_output#89) -[2618149.798] {Default Queue} discarded wl_surface#2087.enter(wl_output#121) -[2618149.802] {Default Queue} discarded wl_surface#2087.enter(wl_output#153) -[2618149.806] {Default Queue} discarded wl_surface#2087.enter(wl_output#185) -[2618149.810] {Default Queue} discarded wl_surface#2087.enter(wl_output#217) -[2618149.817] {Default Queue} discarded wl_surface#2087.enter(wl_output#249) -[2618149.822] {Default Queue} discarded wl_surface#2087.enter(wl_output#281) -[2618149.826] {Default Queue} discarded wl_surface#2087.enter(wl_output#313) -[2618149.830] {Default Queue} discarded wl_surface#2087.enter(wl_output#345) -[2618149.834] {Default Queue} discarded wl_surface#2087.enter(wl_output#377) -[2618149.838] {Default Queue} discarded wl_surface#2087.enter(wl_output#409) -[2618149.841] {Default Queue} discarded wl_surface#2087.enter(wl_output#441) -[2618149.845] {Default Queue} discarded wl_surface#2087.enter(wl_output#473) -[2618149.849] {Default Queue} discarded wl_surface#2087.enter(wl_output#505) -[2618149.853] {Default Queue} discarded wl_surface#2087.enter(wl_output#537) -[2618149.857] {Default Queue} discarded wl_surface#2087.enter(wl_output#569) -[2618149.867] {Default Queue} discarded wl_surface#2087.enter(wl_output#601) -[2618149.871] {Default Queue} discarded wl_surface#2087.enter(wl_output#633) -[2618149.875] {Default Queue} discarded wl_surface#2087.enter(wl_output#665) -[2618149.879] {Default Queue} discarded wl_surface#2087.enter(wl_output#697) -[2618149.883] {Default Queue} discarded wl_surface#2087.enter(wl_output#729) -[2618149.887] {Default Queue} discarded wl_surface#2087.enter(wl_output#761) -[2618149.891] {Default Queue} discarded wl_surface#2087.enter(wl_output#793) -[2618149.895] {Default Queue} discarded wl_surface#2087.enter(wl_output#825) -[2618149.899] {Default Queue} discarded wl_surface#2087.enter(wl_output#857) -[2618149.903] {Default Queue} discarded wl_surface#2087.enter(wl_output#889) -[2618149.908] {Default Queue} discarded wl_surface#2087.enter(wl_output#921) -[2618149.912] {Default Queue} discarded wl_surface#2087.enter(wl_output#953) -[2618149.915] {Default Queue} discarded wl_surface#2087.enter(wl_output#985) -[2618149.919] {Default Queue} discarded wl_surface#2087.enter(wl_output#1017) -[2618149.923] {Default Queue} discarded wl_surface#2087.enter(wl_output#1049) -[2618149.927] {Default Queue} discarded wl_surface#2087.enter(wl_output#1081) -[2618149.931] {Default Queue} discarded wl_surface#2087.enter(wl_output#1113) -[2618149.935] {Default Queue} discarded wl_surface#2087.enter(wl_output#1145) -[2618149.939] {Default Queue} discarded wl_surface#2087.enter(wl_output#1177) -[2618149.943] {Default Queue} discarded wl_surface#2087.enter(wl_output#1209) -[2618149.947] {Default Queue} discarded wl_surface#2087.enter(wl_output#1241) -[2618149.951] {Default Queue} discarded wl_surface#2087.enter(wl_output#1273) -[2618149.955] {Default Queue} discarded wl_surface#2087.enter(wl_output#1305) -[2618149.960] {Default Queue} discarded wl_surface#2087.enter(wl_output#1337) -[2618149.964] {Default Queue} discarded wl_surface#2087.enter(wl_output#1369) -[2618149.968] {Default Queue} discarded wl_surface#2087.enter(wl_output#1401) -[2618149.971] {Default Queue} discarded wl_surface#2087.enter(wl_output#1433) -[2618149.976] {Default Queue} discarded wl_surface#2087.enter(wl_output#1465) -[2618149.979] {Default Queue} discarded wl_surface#2087.enter(wl_output#1497) -[2618149.983] {Default Queue} discarded wl_surface#2087.enter(wl_output#1529) -[2618149.987] {Default Queue} discarded wl_surface#2087.enter(wl_output#1561) -[2618149.992] {Default Queue} discarded wl_surface#2087.enter(wl_output#1593) -[2618149.996] {Default Queue} discarded wl_surface#2087.enter(wl_output#1625) -[2618149.999] {Default Queue} discarded wl_surface#2087.enter(wl_output#1657) -[2618150.003] {Default Queue} discarded wl_surface#2087.enter(wl_output#1689) -[2618150.007] {Default Queue} discarded wl_surface#2087.enter(wl_output#1721) -[2618150.011] {Default Queue} discarded wl_surface#2087.enter(wl_output#1753) -[2618150.015] {Default Queue} discarded wl_surface#2087.enter(wl_output#1785) -[2618150.019] {Default Queue} discarded wl_surface#2087.enter(wl_output#1817) -[2618150.023] {Default Queue} discarded wl_surface#2087.enter(wl_output#1849) -[2618150.027] {Default Queue} discarded wl_surface#2087.enter(wl_output#1881) -[2618150.031] {Default Queue} discarded wl_surface#2087.enter(wl_output#1913) -[2618150.038] {Default Queue} discarded wl_surface#2087.enter(wl_output#1945) -[2618150.043] {Default Queue} discarded wl_surface#2087.enter(wl_output#1977) -[2618150.047] {Default Queue} discarded wl_surface#2087.enter(wl_output#2009) -[2618150.051] {Default Queue} discarded wl_surface#2087.enter(wl_output#2041) -[2618150.055] {Default Queue} discarded wl_surface#2087.enter(wl_output#2073) -[2618150.059] {Default Queue} discarded wl_surface#2087.enter(wl_output#2105) -[2618150.063] {Default Queue} -> wl_compositor#2092.create_surface(new id wl_surface#2119) -[2618150.067] {Default Queue} -> wl_subcompositor#2125.get_subsurface(new id wl_subsurface#2138, wl_surface#2119, wl_surface#2087) -[2618150.075] {Default Queue} -> wl_subsurface#2138.set_desync() -[2618150.079] {Default Queue} -> wl_subsurface#2138.set_position(0, 0) -[2618150.084] {Default Queue} -> wl_subsurface#2138.place_above(wl_surface#2087) -[2618150.122] {Default Queue} -> wl_shm#2127.create_pool(new id wl_shm_pool#2139, fd 339, 16) -[2618150.129] {Default Queue} -> wl_shm#2127.create_pool(new id wl_shm_pool#2140, fd 340, 16) -[2618150.133] {Default Queue} -> wl_shm_pool#2139.create_buffer(new id wl_buffer#2141, 0, 2, 2, 8, 0) -[2618150.138] {Default Queue} -> wl_shm_pool#2140.create_buffer(new id wl_buffer#2142, 0, 2, 2, 8, 0) -[2618150.146] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) -[2618150.150] {Default Queue} -> wl_surface#2119.commit() -[2618150.156] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) -[2618150.160] {Default Queue} -> wl_surface#2119.commit() -[2618150.164] {Default Queue} -> wl_compositor#2124.create_region(new id wl_region#2143) -[2618150.168] {Default Queue} -> wl_compositor#2124.create_region(new id wl_region#2144) -[2618150.173] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) -[2618150.177] {Default Queue} -> wl_region#2143.add(0, 0, 0, 0) -[2618150.182] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618150.186] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618150.190] {Default Queue} -> wl_surface#2119.damage(0, 0, 2, 2) -[2618150.194] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) -[2618150.201] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) -[2618150.206] {Default Queue} -> wl_surface#2119.commit() -[2618150.241] {Default Queue} -> wl_shm#2129.create_pool(new id wl_shm_pool#2145, fd 343, 640) -[2618150.247] {Default Queue} -> wl_shm#2129.create_pool(new id wl_shm_pool#2146, fd 344, 640) -[2618150.252] {Default Queue} -> wl_shm_pool#2145.create_buffer(new id wl_buffer#2147, 0, 10, 16, 40, 0) -[2618150.257] {Default Queue} -> wl_shm_pool#2146.create_buffer(new id wl_buffer#2148, 0, 10, 16, 40, 0) -[2618150.264] {Default Queue} -> wl_compositor#2124.create_surface(new id wl_surface#2149) -[2618150.268] {Default Queue} -> wl_surface#2149.attach(wl_buffer#2147, 0, 0) -[2618150.273] {Default Queue} -> wl_surface#2149.commit() -[2618150.278] {Default Queue} -> wl_surface#2149.attach(wl_buffer#2147, 0, 0) -[2618150.282] {Default Queue} -> wl_surface#2149.commit() -[2618150.287] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) -[2618150.292] {Default Queue} -> wl_surface#2119.damage(0, 0, 2, 2) -[2618150.297] {Default Queue} -> wl_surface#2119.damage(0, 0, 2, 2) -[2618150.303] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2150) -[2618150.308] {Default Queue} -> wl_display#1.sync(new id wl_callback#2151) -[2618154.088] {Display Queue} wl_display#1.delete_id(2151) -[2618154.100] {Default Queue} wl_keyboard#2120.keymap(1, fd 339, 68213) -[2618154.106] {Default Queue} wl_keyboard#2120.enter(566, wl_surface#19, array[0]) -[2618154.113] {Default Queue} wl_keyboard#2120.modifiers(566, 0, 0, 16, 0) -[2618154.119] {Default Queue} discarded wl_shm#2127.format(875709016) -[2618154.123] {Default Queue} discarded wl_shm#2127.format(1) -[2618154.128] {Default Queue} discarded wl_shm#2127.format(0) -[2618154.133] {Default Queue} discarded wl_shm#2127.format(875708993) -[2618154.142] {Default Queue} discarded wl_shm#2128.format(875709016) -[2618154.151] {Default Queue} discarded wl_shm#2128.format(1) -[2618154.156] {Default Queue} discarded wl_shm#2128.format(0) -[2618154.161] {Default Queue} discarded wl_shm#2128.format(875708993) -[2618154.166] {Default Queue} discarded wl_shm#2129.format(875709016) -[2618154.171] {Default Queue} discarded wl_shm#2129.format(1) -[2618154.175] {Default Queue} discarded wl_shm#2129.format(0) -[2618154.180] {Default Queue} discarded wl_shm#2129.format(875708993) -[2618154.185] {Default Queue} wl_seat#2136.capabilities(7) -[2618154.191] {Default Queue} -> wl_seat#2136.get_keyboard(new id wl_keyboard#2152) -[2618154.196] {Default Queue} -> wl_seat#2136.get_pointer(new id wl_pointer#2153) -[2618154.202] {Default Queue} -> wl_data_device_manager#2132.get_data_device(new id wl_data_device#2154, wl_seat#2136) -[2618154.207] {Default Queue} -> zwp_primary_selection_device_manager_v1#2134.get_device(new id zwp_primary_selection_device_v1#2155, wl_seat#2136) -[2618154.218] {Default Queue} wl_output#2137.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618154.224] {Default Queue} wl_output#2137.mode(3, 1280, 800, 60000) -[2618154.230] {Default Queue} discarded wl_surface#3.enter(wl_output#2137) -[2618154.235] {Default Queue} discarded wl_surface#999.enter(wl_output#2137) -[2618154.240] {Default Queue} discarded wl_surface#1191.enter(wl_output#2137) -[2618154.245] {Default Queue} discarded wl_surface#1159.enter(wl_output#2137) -[2618154.250] {Default Queue} discarded wl_surface#1703.enter(wl_output#2137) -[2618154.255] {Default Queue} discarded wl_surface#423.enter(wl_output#2137) -[2618154.260] {Default Queue} discarded wl_surface#1447.enter(wl_output#2137) -[2618154.265] {Default Queue} discarded wl_surface#2023.enter(wl_output#2137) -[2618154.270] {Default Queue} discarded wl_surface#1639.enter(wl_output#2137) -[2618154.275] {Default Queue} discarded wl_surface#1319.enter(wl_output#2137) -[2618154.279] {Default Queue} discarded wl_surface#1127.enter(wl_output#2137) -[2618154.284] {Default Queue} discarded wl_surface#1063.enter(wl_output#2137) -[2618154.289] {Default Queue} discarded wl_surface#455.enter(wl_output#2137) -[2618154.294] {Default Queue} discarded wl_surface#1575.enter(wl_output#2137) -[2618154.299] {Default Queue} discarded wl_surface#1799.enter(wl_output#2137) -[2618154.304] {Default Queue} discarded wl_surface#1415.enter(wl_output#2137) -[2618154.309] {Default Queue} discarded wl_surface#1831.enter(wl_output#2137) -[2618154.313] {Default Queue} discarded wl_surface#903.enter(wl_output#2137) -[2618154.318] {Default Queue} discarded wl_surface#775.enter(wl_output#2137) -[2618154.323] {Default Queue} discarded wl_surface#1991.enter(wl_output#2137) -[2618154.328] {Default Queue} discarded wl_surface#1543.enter(wl_output#2137) -[2618154.333] {Default Queue} discarded wl_surface#135.enter(wl_output#2137) -[2618154.338] {Default Queue} discarded wl_surface#1287.enter(wl_output#2137) -[2618154.343] {Default Queue} discarded wl_surface#1031.enter(wl_output#2137) -[2618154.348] {Default Queue} discarded wl_surface#615.enter(wl_output#2137) -[2618154.352] {Default Queue} discarded wl_surface#231.enter(wl_output#2137) -[2618154.357] {Default Queue} discarded wl_surface#1863.enter(wl_output#2137) -[2618154.362] {Default Queue} discarded wl_surface#359.enter(wl_output#2137) -[2618154.367] {Default Queue} discarded wl_surface#583.enter(wl_output#2137) -[2618154.372] {Default Queue} discarded wl_surface#743.enter(wl_output#2137) -[2618154.377] {Default Queue} discarded wl_surface#967.enter(wl_output#2137) -[2618154.382] {Default Queue} discarded wl_surface#103.enter(wl_output#2137) -[2618154.387] {Default Queue} discarded wl_surface#327.enter(wl_output#2137) -[2618154.391] {Default Queue} discarded wl_surface#43.enter(wl_output#2137) -[2618154.396] {Default Queue} discarded wl_surface#807.enter(wl_output#2137) -[2618154.401] {Default Queue} discarded wl_surface#19.enter(wl_output#2137) -[2618154.406] {Default Queue} discarded wl_surface#1511.enter(wl_output#2137) -[2618154.411] {Default Queue} discarded wl_surface#199.enter(wl_output#2137) -[2618154.421] {Default Queue} discarded wl_surface#391.enter(wl_output#2137) -[2618154.428] {Default Queue} discarded wl_surface#935.enter(wl_output#2137) -[2618154.433] {Default Queue} discarded wl_surface#1671.enter(wl_output#2137) -[2618154.438] {Default Queue} discarded wl_surface#1351.enter(wl_output#2137) -[2618154.442] {Default Queue} discarded wl_surface#711.enter(wl_output#2137) -[2618154.447] {Default Queue} discarded wl_surface#1223.enter(wl_output#2137) -[2618154.452] {Default Queue} discarded wl_surface#1927.enter(wl_output#2137) -[2618154.457] {Default Queue} discarded wl_surface#871.enter(wl_output#2137) -[2618154.462] {Default Queue} discarded wl_surface#1895.enter(wl_output#2137) -[2618154.467] {Default Queue} discarded wl_surface#263.enter(wl_output#2137) -[2618154.472] {Default Queue} discarded wl_surface#551.enter(wl_output#2137) -[2618154.477] {Default Queue} discarded wl_surface#1735.enter(wl_output#2137) -[2618154.482] {Default Queue} discarded wl_surface#1479.enter(wl_output#2137) -[2618154.486] {Default Queue} discarded wl_surface#1772.enter(wl_output#2137) -[2618154.491] {Default Queue} discarded wl_surface#1959.enter(wl_output#2137) -[2618154.496] {Default Queue} discarded wl_surface#647.enter(wl_output#2137) -[2618154.501] {Default Queue} discarded wl_surface#2055.enter(wl_output#2137) -[2618154.506] {Default Queue} discarded wl_surface#71.enter(wl_output#2137) -[2618154.511] {Default Queue} discarded wl_surface#839.enter(wl_output#2137) -[2618154.515] {Default Queue} discarded wl_surface#1607.enter(wl_output#2137) -[2618154.520] {Default Queue} discarded wl_surface#1095.enter(wl_output#2137) -[2618154.525] {Default Queue} discarded wl_surface#1383.enter(wl_output#2137) -[2618154.530] {Default Queue} discarded wl_surface#487.enter(wl_output#2137) -[2618154.535] {Default Queue} discarded wl_surface#519.enter(wl_output#2137) -[2618154.540] {Default Queue} discarded wl_surface#2087.enter(wl_output#2137) -[2618154.545] {Default Queue} discarded wl_surface#295.enter(wl_output#2137) -[2618154.550] {Default Queue} discarded wl_surface#167.enter(wl_output#2137) -[2618154.554] {Default Queue} discarded wl_surface#1255.enter(wl_output#2137) -[2618154.559] {Default Queue} discarded wl_surface#679.enter(wl_output#2137) -[2618154.564] {Default Queue} wl_registry#2150.global(1, "wl_compositor", 6) -[2618154.570] {Default Queue} -> wl_registry#2150.bind(1, "wl_compositor", 1, new id [unknown]#2156) -[2618154.576] {Default Queue} wl_registry#2150.global(2, "wl_subcompositor", 1) -[2618154.582] {Default Queue} -> wl_registry#2150.bind(2, "wl_subcompositor", 1, new id [unknown]#2157) -[2618154.587] {Default Queue} wl_registry#2150.global(3, "xdg_wm_base", 6) -[2618154.593] {Default Queue} -> wl_registry#2150.bind(3, "xdg_wm_base", 1, new id [unknown]#2158) -[2618154.599] {Default Queue} wl_registry#2150.global(6, "zwlr_layer_shell_v1", 5) -[2618154.604] {Default Queue} wl_registry#2150.global(7, "ext_session_lock_manager_v1", 1) -[2618154.610] {Default Queue} wl_registry#2150.global(8, "wl_shm", 2) -[2618154.616] {Default Queue} -> wl_registry#2150.bind(8, "wl_shm", 1, new id [unknown]#2159) -[2618154.621] {Default Queue} -> wl_registry#2150.bind(8, "wl_shm", 1, new id [unknown]#2160) -[2618154.629] {Default Queue} -> wl_registry#2150.bind(8, "wl_shm", 1, new id [unknown]#2161) -[2618154.634] {Default Queue} wl_registry#2150.global(9, "zxdg_output_manager_v1", 3) -[2618154.640] {Default Queue} wl_registry#2150.global(10, "wp_fractional_scale_manager_v1", 1) -[2618154.645] {Default Queue} wl_registry#2150.global(11, "zwp_tablet_manager_v2", 1) -[2618154.651] {Default Queue} wl_registry#2150.global(12, "zwp_pointer_gestures_v1", 3) -[2618154.656] {Default Queue} wl_registry#2150.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618154.661] {Default Queue} -> wl_registry#2150.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2162) -[2618154.667] {Default Queue} wl_registry#2150.global(14, "zwp_pointer_constraints_v1", 1) -[2618154.672] {Default Queue} -> wl_registry#2150.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2163) -[2618154.681] {Default Queue} wl_registry#2150.global(15, "ext_idle_notifier_v1", 2) -[2618154.689] {Default Queue} wl_registry#2150.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618154.695] {Default Queue} wl_registry#2150.global(17, "wl_data_device_manager", 3) -[2618154.701] {Default Queue} -> wl_registry#2150.bind(17, "wl_data_device_manager", 2, new id [unknown]#2164) -[2618154.706] {Default Queue} -> wl_data_device_manager#2164.create_data_source(new id wl_data_source#2165) -[2618154.712] {Default Queue} -> wl_data_source#2165.offer("text/plain") -[2618154.717] {Default Queue} -> wl_data_source#2165.offer("text/plain;charset=utf-8") -[2618154.722] {Default Queue} -> wl_data_source#2165.offer("TEXT") -[2618154.728] {Default Queue} -> wl_data_source#2165.offer("STRING") -[2618154.732] {Default Queue} -> wl_data_source#2165.offer("UTF8_STRING") -[2618154.738] {Default Queue} wl_registry#2150.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618154.744] {Default Queue} -> wl_registry#2150.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2166) -[2618154.753] {Default Queue} -> zwp_primary_selection_device_manager_v1#2166.create_source(new id zwp_primary_selection_source_v1#2167) -[2618154.763] {Default Queue} -> zwp_primary_selection_source_v1#2167.offer("text/plain") -[2618154.768] {Default Queue} -> zwp_primary_selection_source_v1#2167.offer("text/plain;charset=utf-8") -[2618154.773] {Default Queue} -> zwp_primary_selection_source_v1#2167.offer("TEXT") -[2618154.778] {Default Queue} -> zwp_primary_selection_source_v1#2167.offer("STRING") -[2618154.783] {Default Queue} -> zwp_primary_selection_source_v1#2167.offer("UTF8_STRING") -[2618154.788] {Default Queue} wl_registry#2150.global(19, "zwlr_data_control_manager_v1", 2) -[2618154.794] {Default Queue} wl_registry#2150.global(20, "ext_data_control_manager_v1", 1) -[2618154.800] {Default Queue} wl_registry#2150.global(21, "wp_presentation", 2) -[2618154.805] {Default Queue} wl_registry#2150.global(22, "wp_security_context_manager_v1", 1) -[2618154.810] {Default Queue} wl_registry#2150.global(23, "zwp_text_input_manager_v3", 1) -[2618154.816] {Default Queue} wl_registry#2150.global(24, "zwp_input_method_manager_v2", 1) -[2618154.821] {Default Queue} wl_registry#2150.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618154.827] {Default Queue} wl_registry#2150.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618154.832] {Default Queue} wl_registry#2150.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618154.837] {Default Queue} wl_registry#2150.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618154.843] {Default Queue} wl_registry#2150.global(29, "ext_workspace_manager_v1", 1) -[2618154.848] {Default Queue} wl_registry#2150.global(30, "zwlr_output_manager_v1", 4) -[2618154.854] {Default Queue} wl_registry#2150.global(31, "zwlr_screencopy_manager_v1", 3) -[2618154.859] {Default Queue} wl_registry#2150.global(32, "wp_viewporter", 1) -[2618154.875] {Default Queue} wl_registry#2150.global(33, "zxdg_exporter_v2", 1) -[2618154.881] {Default Queue} wl_registry#2150.global(34, "zxdg_importer_v2", 1) -[2618154.886] {Default Queue} wl_registry#2150.global(36, "xdg_activation_v1", 1) -[2618154.891] {Default Queue} wl_registry#2150.global(37, "mutter_x11_interop", 1) -[2618154.897] {Default Queue} wl_registry#2150.global(38, "wl_seat", 9) -[2618154.903] {Default Queue} -> wl_registry#2150.bind(38, "wl_seat", 1, new id [unknown]#2168) -[2618154.908] {Default Queue} wl_registry#2150.global(39, "wp_cursor_shape_manager_v1", 2) -[2618154.914] {Default Queue} wl_registry#2150.global(40, "wl_output", 4) -[2618154.919] {Default Queue} -> wl_registry#2150.bind(40, "wl_output", 1, new id [unknown]#2169) -[2618154.925] {Default Queue} wl_callback#2151.done(0) -[2618154.931] {Default Queue} discarded wl_surface#2119.enter(wl_output#18) -[2618154.936] {Default Queue} discarded wl_surface#2119.enter(wl_output#57) -[2618154.941] {Default Queue} discarded wl_surface#2119.enter(wl_output#89) -[2618154.946] {Default Queue} discarded wl_surface#2119.enter(wl_output#121) -[2618154.954] {Default Queue} discarded wl_surface#2119.enter(wl_output#153) -[2618154.961] {Default Queue} discarded wl_surface#2119.enter(wl_output#185) -[2618154.966] {Default Queue} discarded wl_surface#2119.enter(wl_output#217) -[2618154.971] {Default Queue} discarded wl_surface#2119.enter(wl_output#249) -[2618154.976] {Default Queue} discarded wl_surface#2119.enter(wl_output#281) -[2618154.981] {Default Queue} discarded wl_surface#2119.enter(wl_output#313) -[2618154.986] {Default Queue} discarded wl_surface#2119.enter(wl_output#345) -[2618154.991] {Default Queue} discarded wl_surface#2119.enter(wl_output#377) -[2618154.995] {Default Queue} discarded wl_surface#2119.enter(wl_output#409) -[2618154.999] {Default Queue} discarded wl_surface#2119.enter(wl_output#441) -[2618155.003] {Default Queue} discarded wl_surface#2119.enter(wl_output#473) -[2618155.007] {Default Queue} discarded wl_surface#2119.enter(wl_output#505) -[2618155.011] {Default Queue} discarded wl_surface#2119.enter(wl_output#537) -[2618155.015] {Default Queue} discarded wl_surface#2119.enter(wl_output#569) -[2618155.019] {Default Queue} discarded wl_surface#2119.enter(wl_output#601) -[2618155.023] {Default Queue} discarded wl_surface#2119.enter(wl_output#633) -[2618155.027] {Default Queue} discarded wl_surface#2119.enter(wl_output#665) -[2618155.031] {Default Queue} discarded wl_surface#2119.enter(wl_output#697) -[2618155.034] {Default Queue} discarded wl_surface#2119.enter(wl_output#729) -[2618155.038] {Default Queue} discarded wl_surface#2119.enter(wl_output#761) -[2618155.043] {Default Queue} discarded wl_surface#2119.enter(wl_output#793) -[2618155.046] {Default Queue} discarded wl_surface#2119.enter(wl_output#825) -[2618155.050] {Default Queue} discarded wl_surface#2119.enter(wl_output#857) -[2618155.055] {Default Queue} discarded wl_surface#2119.enter(wl_output#889) -[2618155.059] {Default Queue} discarded wl_surface#2119.enter(wl_output#921) -[2618155.062] {Default Queue} discarded wl_surface#2119.enter(wl_output#953) -[2618155.066] {Default Queue} discarded wl_surface#2119.enter(wl_output#985) -[2618155.070] {Default Queue} discarded wl_surface#2119.enter(wl_output#1017) -[2618155.074] {Default Queue} discarded wl_surface#2119.enter(wl_output#1049) -[2618155.078] {Default Queue} discarded wl_surface#2119.enter(wl_output#1081) -[2618155.082] {Default Queue} discarded wl_surface#2119.enter(wl_output#1113) -[2618155.086] {Default Queue} discarded wl_surface#2119.enter(wl_output#1145) -[2618155.090] {Default Queue} discarded wl_surface#2119.enter(wl_output#1177) -[2618155.094] {Default Queue} discarded wl_surface#2119.enter(wl_output#1209) -[2618155.098] {Default Queue} discarded wl_surface#2119.enter(wl_output#1241) -[2618155.102] {Default Queue} discarded wl_surface#2119.enter(wl_output#1273) -[2618155.105] {Default Queue} discarded wl_surface#2119.enter(wl_output#1305) -[2618155.109] {Default Queue} discarded wl_surface#2119.enter(wl_output#1337) -[2618155.114] {Default Queue} discarded wl_surface#2119.enter(wl_output#1369) -[2618155.118] {Default Queue} discarded wl_surface#2119.enter(wl_output#1401) -[2618155.121] {Default Queue} discarded wl_surface#2119.enter(wl_output#1433) -[2618155.125] {Default Queue} discarded wl_surface#2119.enter(wl_output#1465) -[2618155.129] {Default Queue} discarded wl_surface#2119.enter(wl_output#1497) -[2618155.133] {Default Queue} discarded wl_surface#2119.enter(wl_output#1529) -[2618155.137] {Default Queue} discarded wl_surface#2119.enter(wl_output#1561) -[2618155.141] {Default Queue} discarded wl_surface#2119.enter(wl_output#1593) -[2618155.145] {Default Queue} discarded wl_surface#2119.enter(wl_output#1625) -[2618155.149] {Default Queue} discarded wl_surface#2119.enter(wl_output#1657) -[2618155.153] {Default Queue} discarded wl_surface#2119.enter(wl_output#1689) -[2618155.156] {Default Queue} discarded wl_surface#2119.enter(wl_output#1721) -[2618155.160] {Default Queue} discarded wl_surface#2119.enter(wl_output#1753) -[2618155.164] {Default Queue} discarded wl_surface#2119.enter(wl_output#1785) -[2618155.168] {Default Queue} discarded wl_surface#2119.enter(wl_output#1817) -[2618155.175] {Default Queue} discarded wl_surface#2119.enter(wl_output#1849) -[2618155.180] {Default Queue} discarded wl_surface#2119.enter(wl_output#1881) -[2618155.184] {Default Queue} discarded wl_surface#2119.enter(wl_output#1913) -[2618155.188] {Default Queue} discarded wl_surface#2119.enter(wl_output#1945) -[2618155.192] {Default Queue} discarded wl_surface#2119.enter(wl_output#1977) -[2618155.196] {Default Queue} discarded wl_surface#2119.enter(wl_output#2009) -[2618155.200] {Default Queue} discarded wl_surface#2119.enter(wl_output#2041) -[2618155.205] {Default Queue} discarded wl_surface#2119.enter(wl_output#2073) -[2618155.209] {Default Queue} discarded wl_surface#2119.enter(wl_output#2105) -[2618155.213] {Default Queue} discarded wl_surface#2119.enter(wl_output#2137) -[2618155.217] {Default Queue} -> wl_compositor#2124.create_surface(new id wl_surface#2151) -[2618155.221] {Default Queue} -> wl_subcompositor#2157.get_subsurface(new id wl_subsurface#2170, wl_surface#2151, wl_surface#2119) -[2618155.229] {Default Queue} -> wl_subsurface#2170.set_desync() -[2618155.233] {Default Queue} -> wl_subsurface#2170.set_position(0, 0) -[2618155.238] {Default Queue} -> wl_subsurface#2170.place_above(wl_surface#2119) -[2618155.284] {Default Queue} -> wl_shm#2159.create_pool(new id wl_shm_pool#2171, fd 344, 16) -[2618155.291] {Default Queue} -> wl_shm#2159.create_pool(new id wl_shm_pool#2172, fd 345, 16) -[2618155.295] {Default Queue} -> wl_shm_pool#2171.create_buffer(new id wl_buffer#2173, 0, 2, 2, 8, 0) -[2618155.300] {Default Queue} -> wl_shm_pool#2172.create_buffer(new id wl_buffer#2174, 0, 2, 2, 8, 0) -[2618155.308] {Default Queue} -> wl_surface#2151.attach(wl_buffer#2173, 0, 0) -[2618155.313] {Default Queue} -> wl_surface#2151.commit() -[2618155.318] {Default Queue} -> wl_surface#2151.attach(wl_buffer#2173, 0, 0) -[2618155.323] {Default Queue} -> wl_surface#2151.commit() -[2618155.327] {Default Queue} -> wl_compositor#2156.create_region(new id wl_region#2175) -[2618155.331] {Default Queue} -> wl_compositor#2156.create_region(new id wl_region#2176) -[2618155.335] {Default Queue} -> wl_region#2175.subtract(0, 0, 2, 2) -[2618155.340] {Default Queue} -> wl_region#2175.add(0, 0, 0, 0) -[2618155.344] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) -[2618155.348] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) -[2618155.353] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) -[2618155.357] {Default Queue} -> wl_surface#2119.damage(0, 0, 2, 2) -[2618155.364] {Default Queue} -> wl_surface#2151.attach(wl_buffer#2173, 0, 0) -[2618155.369] {Default Queue} -> wl_surface#2151.commit() -[2618155.403] {Default Queue} -> wl_shm#2161.create_pool(new id wl_shm_pool#2177, fd 348, 640) -[2618155.409] {Default Queue} -> wl_shm#2161.create_pool(new id wl_shm_pool#2178, fd 349, 640) -[2618155.413] {Default Queue} -> wl_shm_pool#2177.create_buffer(new id wl_buffer#2179, 0, 10, 16, 40, 0) -[2618155.418] {Default Queue} -> wl_shm_pool#2178.create_buffer(new id wl_buffer#2180, 0, 10, 16, 40, 0) -[2618155.425] {Default Queue} -> wl_compositor#2156.create_surface(new id wl_surface#2181) -[2618155.429] {Default Queue} -> wl_surface#2181.attach(wl_buffer#2179, 0, 0) -[2618155.434] {Default Queue} -> wl_surface#2181.commit() -[2618155.439] {Default Queue} -> wl_surface#2181.attach(wl_buffer#2179, 0, 0) -[2618155.443] {Default Queue} -> wl_surface#2181.commit() -[2618155.449] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) -[2618155.456] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2182) -[2618155.461] {Default Queue} -> wl_display#1.sync(new id wl_callback#2183) -[2618159.112] {Display Queue} wl_display#1.delete_id(2183) -[2618159.124] {Default Queue} wl_keyboard#2152.keymap(1, fd 344, 68213) -[2618159.130] {Default Queue} wl_keyboard#2152.enter(566, wl_surface#19, array[0]) -[2618159.137] {Default Queue} wl_keyboard#2152.modifiers(566, 0, 0, 16, 0) -[2618159.143] {Default Queue} discarded wl_shm#2159.format(875709016) -[2618159.148] {Default Queue} discarded wl_shm#2159.format(1) -[2618159.158] {Default Queue} discarded wl_shm#2159.format(0) -[2618159.166] {Default Queue} discarded wl_shm#2159.format(875708993) -[2618159.171] {Default Queue} discarded wl_shm#2160.format(875709016) -[2618159.176] {Default Queue} discarded wl_shm#2160.format(1) -[2618159.181] {Default Queue} discarded wl_shm#2160.format(0) -[2618159.186] {Default Queue} discarded wl_shm#2160.format(875708993) -[2618159.191] {Default Queue} discarded wl_shm#2161.format(875709016) -[2618159.196] {Default Queue} discarded wl_shm#2161.format(1) -[2618159.201] {Default Queue} discarded wl_shm#2161.format(0) -[2618159.206] {Default Queue} discarded wl_shm#2161.format(875708993) -[2618159.211] {Default Queue} wl_seat#2168.capabilities(7) -[2618159.216] {Default Queue} -> wl_seat#2168.get_keyboard(new id wl_keyboard#2184) -[2618159.222] {Default Queue} -> wl_seat#2168.get_pointer(new id wl_pointer#2185) -[2618159.228] {Default Queue} -> wl_data_device_manager#2164.get_data_device(new id wl_data_device#2186, wl_seat#2168) -[2618159.234] {Default Queue} -> zwp_primary_selection_device_manager_v1#2166.get_device(new id zwp_primary_selection_device_v1#2187, wl_seat#2168) -[2618159.244] {Default Queue} wl_output#2169.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618159.250] {Default Queue} wl_output#2169.mode(3, 1280, 800, 60000) -[2618159.256] {Default Queue} discarded wl_surface#3.enter(wl_output#2169) -[2618159.261] {Default Queue} discarded wl_surface#999.enter(wl_output#2169) -[2618159.266] {Default Queue} discarded wl_surface#1191.enter(wl_output#2169) -[2618159.271] {Default Queue} discarded wl_surface#1159.enter(wl_output#2169) -[2618159.276] {Default Queue} discarded wl_surface#1703.enter(wl_output#2169) -[2618159.281] {Default Queue} discarded wl_surface#423.enter(wl_output#2169) -[2618159.286] {Default Queue} discarded wl_surface#1447.enter(wl_output#2169) -[2618159.290] {Default Queue} discarded wl_surface#2023.enter(wl_output#2169) -[2618159.295] {Default Queue} discarded wl_surface#1639.enter(wl_output#2169) -[2618159.300] {Default Queue} discarded wl_surface#1319.enter(wl_output#2169) -[2618159.305] {Default Queue} discarded wl_surface#1127.enter(wl_output#2169) -[2618159.310] {Default Queue} discarded wl_surface#1063.enter(wl_output#2169) -[2618159.315] {Default Queue} discarded wl_surface#455.enter(wl_output#2169) -[2618159.320] {Default Queue} discarded wl_surface#1575.enter(wl_output#2169) -[2618159.325] {Default Queue} discarded wl_surface#1799.enter(wl_output#2169) -[2618159.329] {Default Queue} discarded wl_surface#1415.enter(wl_output#2169) -[2618159.334] {Default Queue} discarded wl_surface#1831.enter(wl_output#2169) -[2618159.339] {Default Queue} discarded wl_surface#903.enter(wl_output#2169) -[2618159.344] {Default Queue} discarded wl_surface#775.enter(wl_output#2169) -[2618159.349] {Default Queue} discarded wl_surface#1991.enter(wl_output#2169) -[2618159.354] {Default Queue} discarded wl_surface#1543.enter(wl_output#2169) -[2618159.359] {Default Queue} discarded wl_surface#135.enter(wl_output#2169) -[2618159.364] {Default Queue} discarded wl_surface#1287.enter(wl_output#2169) -[2618159.369] {Default Queue} discarded wl_surface#1031.enter(wl_output#2169) -[2618159.374] {Default Queue} discarded wl_surface#615.enter(wl_output#2169) -[2618159.378] {Default Queue} discarded wl_surface#231.enter(wl_output#2169) -[2618159.384] {Default Queue} discarded wl_surface#1863.enter(wl_output#2169) -[2618159.389] {Default Queue} discarded wl_surface#359.enter(wl_output#2169) -[2618159.394] {Default Queue} discarded wl_surface#583.enter(wl_output#2169) -[2618159.399] {Default Queue} discarded wl_surface#743.enter(wl_output#2169) -[2618159.404] {Default Queue} discarded wl_surface#967.enter(wl_output#2169) -[2618159.409] {Default Queue} discarded wl_surface#103.enter(wl_output#2169) -[2618159.414] {Default Queue} discarded wl_surface#327.enter(wl_output#2169) -[2618159.418] {Default Queue} discarded wl_surface#43.enter(wl_output#2169) -[2618159.424] {Default Queue} discarded wl_surface#807.enter(wl_output#2169) -[2618159.428] {Default Queue} discarded wl_surface#19.enter(wl_output#2169) -[2618159.438] {Default Queue} discarded wl_surface#1511.enter(wl_output#2169) -[2618159.445] {Default Queue} discarded wl_surface#199.enter(wl_output#2169) -[2618159.450] {Default Queue} discarded wl_surface#391.enter(wl_output#2169) -[2618159.455] {Default Queue} discarded wl_surface#935.enter(wl_output#2169) -[2618159.460] {Default Queue} discarded wl_surface#1671.enter(wl_output#2169) -[2618159.465] {Default Queue} discarded wl_surface#1351.enter(wl_output#2169) -[2618159.470] {Default Queue} discarded wl_surface#711.enter(wl_output#2169) -[2618159.475] {Default Queue} discarded wl_surface#1223.enter(wl_output#2169) -[2618159.479] {Default Queue} discarded wl_surface#1927.enter(wl_output#2169) -[2618159.484] {Default Queue} discarded wl_surface#871.enter(wl_output#2169) -[2618159.489] {Default Queue} discarded wl_surface#1895.enter(wl_output#2169) -[2618159.494] {Default Queue} discarded wl_surface#263.enter(wl_output#2169) -[2618159.499] {Default Queue} discarded wl_surface#551.enter(wl_output#2169) -[2618159.504] {Default Queue} discarded wl_surface#1735.enter(wl_output#2169) -[2618159.509] {Default Queue} discarded wl_surface#1479.enter(wl_output#2169) -[2618159.514] {Default Queue} discarded wl_surface#1772.enter(wl_output#2169) -[2618159.519] {Default Queue} discarded wl_surface#1959.enter(wl_output#2169) -[2618159.524] {Default Queue} discarded wl_surface#647.enter(wl_output#2169) -[2618159.528] {Default Queue} discarded wl_surface#2055.enter(wl_output#2169) -[2618159.533] {Default Queue} discarded wl_surface#71.enter(wl_output#2169) -[2618159.538] {Default Queue} discarded wl_surface#839.enter(wl_output#2169) -[2618159.543] {Default Queue} discarded wl_surface#1607.enter(wl_output#2169) -[2618159.548] {Default Queue} discarded wl_surface#1095.enter(wl_output#2169) -[2618159.553] {Default Queue} discarded wl_surface#1383.enter(wl_output#2169) -[2618159.558] {Default Queue} discarded wl_surface#487.enter(wl_output#2169) -[2618159.563] {Default Queue} discarded wl_surface#519.enter(wl_output#2169) -[2618159.567] {Default Queue} discarded wl_surface#2087.enter(wl_output#2169) -[2618159.572] {Default Queue} discarded wl_surface#295.enter(wl_output#2169) -[2618159.577] {Default Queue} discarded wl_surface#167.enter(wl_output#2169) -[2618159.582] {Default Queue} discarded wl_surface#1255.enter(wl_output#2169) -[2618159.587] {Default Queue} discarded wl_surface#679.enter(wl_output#2169) -[2618159.592] {Default Queue} discarded wl_surface#2119.enter(wl_output#2169) -[2618159.597] {Default Queue} wl_registry#2182.global(1, "wl_compositor", 6) -[2618159.603] {Default Queue} -> wl_registry#2182.bind(1, "wl_compositor", 1, new id [unknown]#2188) -[2618159.609] {Default Queue} wl_registry#2182.global(2, "wl_subcompositor", 1) -[2618159.615] {Default Queue} -> wl_registry#2182.bind(2, "wl_subcompositor", 1, new id [unknown]#2189) -[2618159.621] {Default Queue} wl_registry#2182.global(3, "xdg_wm_base", 6) -[2618159.627] {Default Queue} -> wl_registry#2182.bind(3, "xdg_wm_base", 1, new id [unknown]#2190) -[2618159.632] {Default Queue} wl_registry#2182.global(6, "zwlr_layer_shell_v1", 5) -[2618159.638] {Default Queue} wl_registry#2182.global(7, "ext_session_lock_manager_v1", 1) -[2618159.643] {Default Queue} wl_registry#2182.global(8, "wl_shm", 2) -[2618159.649] {Default Queue} -> wl_registry#2182.bind(8, "wl_shm", 1, new id [unknown]#2191) -[2618159.657] {Default Queue} -> wl_registry#2182.bind(8, "wl_shm", 1, new id [unknown]#2192) -[2618159.662] {Default Queue} -> wl_registry#2182.bind(8, "wl_shm", 1, new id [unknown]#2193) -[2618159.668] {Default Queue} wl_registry#2182.global(9, "zxdg_output_manager_v1", 3) -[2618159.674] {Default Queue} wl_registry#2182.global(10, "wp_fractional_scale_manager_v1", 1) -[2618159.679] {Default Queue} wl_registry#2182.global(11, "zwp_tablet_manager_v2", 1) -[2618159.684] {Default Queue} wl_registry#2182.global(12, "zwp_pointer_gestures_v1", 3) -[2618159.690] {Default Queue} wl_registry#2182.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618159.695] {Default Queue} -> wl_registry#2182.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2194) -[2618159.705] {Default Queue} wl_registry#2182.global(14, "zwp_pointer_constraints_v1", 1) -[2618159.712] {Default Queue} -> wl_registry#2182.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2195) -[2618159.718] {Default Queue} wl_registry#2182.global(15, "ext_idle_notifier_v1", 2) -[2618159.723] {Default Queue} wl_registry#2182.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618159.729] {Default Queue} wl_registry#2182.global(17, "wl_data_device_manager", 3) -[2618159.735] {Default Queue} -> wl_registry#2182.bind(17, "wl_data_device_manager", 2, new id [unknown]#2196) -[2618159.740] {Default Queue} -> wl_data_device_manager#2196.create_data_source(new id wl_data_source#2197) -[2618159.746] {Default Queue} -> wl_data_source#2197.offer("text/plain") -[2618159.751] {Default Queue} -> wl_data_source#2197.offer("text/plain;charset=utf-8") -[2618159.756] {Default Queue} -> wl_data_source#2197.offer("TEXT") -[2618159.761] {Default Queue} -> wl_data_source#2197.offer("STRING") -[2618159.766] {Default Queue} -> wl_data_source#2197.offer("UTF8_STRING") -[2618159.772] {Default Queue} wl_registry#2182.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618159.777] {Default Queue} -> wl_registry#2182.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2198) -[2618159.787] {Default Queue} -> zwp_primary_selection_device_manager_v1#2198.create_source(new id zwp_primary_selection_source_v1#2199) -[2618159.796] {Default Queue} -> zwp_primary_selection_source_v1#2199.offer("text/plain") -[2618159.801] {Default Queue} -> zwp_primary_selection_source_v1#2199.offer("text/plain;charset=utf-8") -[2618159.806] {Default Queue} -> zwp_primary_selection_source_v1#2199.offer("TEXT") -[2618159.811] {Default Queue} -> zwp_primary_selection_source_v1#2199.offer("STRING") -[2618159.817] {Default Queue} -> zwp_primary_selection_source_v1#2199.offer("UTF8_STRING") -[2618159.822] {Default Queue} wl_registry#2182.global(19, "zwlr_data_control_manager_v1", 2) -[2618159.827] {Default Queue} wl_registry#2182.global(20, "ext_data_control_manager_v1", 1) -[2618159.833] {Default Queue} wl_registry#2182.global(21, "wp_presentation", 2) -[2618159.838] {Default Queue} wl_registry#2182.global(22, "wp_security_context_manager_v1", 1) -[2618159.843] {Default Queue} wl_registry#2182.global(23, "zwp_text_input_manager_v3", 1) -[2618159.850] {Default Queue} wl_registry#2182.global(24, "zwp_input_method_manager_v2", 1) -[2618159.855] {Default Queue} wl_registry#2182.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618159.868] {Default Queue} wl_registry#2182.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618159.874] {Default Queue} wl_registry#2182.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618159.879] {Default Queue} wl_registry#2182.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618159.885] {Default Queue} wl_registry#2182.global(29, "ext_workspace_manager_v1", 1) -[2618159.890] {Default Queue} wl_registry#2182.global(30, "zwlr_output_manager_v1", 4) -[2618159.896] {Default Queue} wl_registry#2182.global(31, "zwlr_screencopy_manager_v1", 3) -[2618159.901] {Default Queue} wl_registry#2182.global(32, "wp_viewporter", 1) -[2618159.906] {Default Queue} wl_registry#2182.global(33, "zxdg_exporter_v2", 1) -[2618159.912] {Default Queue} wl_registry#2182.global(34, "zxdg_importer_v2", 1) -[2618159.918] {Default Queue} wl_registry#2182.global(36, "xdg_activation_v1", 1) -[2618159.923] {Default Queue} wl_registry#2182.global(37, "mutter_x11_interop", 1) -[2618159.928] {Default Queue} wl_registry#2182.global(38, "wl_seat", 9) -[2618159.934] {Default Queue} -> wl_registry#2182.bind(38, "wl_seat", 1, new id [unknown]#2200) -[2618159.939] {Default Queue} wl_registry#2182.global(39, "wp_cursor_shape_manager_v1", 2) -[2618159.945] {Default Queue} wl_registry#2182.global(40, "wl_output", 4) -[2618159.951] {Default Queue} -> wl_registry#2182.bind(40, "wl_output", 1, new id [unknown]#2201) -[2618159.956] {Default Queue} wl_callback#2183.done(0) -[2618159.962] {Default Queue} discarded wl_surface#2151.enter(wl_output#18) -[2618159.971] {Default Queue} discarded wl_surface#2151.enter(wl_output#57) -[2618159.978] {Default Queue} discarded wl_surface#2151.enter(wl_output#89) -[2618159.983] {Default Queue} discarded wl_surface#2151.enter(wl_output#121) -[2618159.988] {Default Queue} discarded wl_surface#2151.enter(wl_output#153) -[2618159.993] {Default Queue} discarded wl_surface#2151.enter(wl_output#185) -[2618159.998] {Default Queue} discarded wl_surface#2151.enter(wl_output#217) -[2618160.003] {Default Queue} discarded wl_surface#2151.enter(wl_output#249) -[2618160.007] {Default Queue} discarded wl_surface#2151.enter(wl_output#281) -[2618160.011] {Default Queue} discarded wl_surface#2151.enter(wl_output#313) -[2618160.015] {Default Queue} discarded wl_surface#2151.enter(wl_output#345) -[2618160.019] {Default Queue} discarded wl_surface#2151.enter(wl_output#377) -[2618160.023] {Default Queue} discarded wl_surface#2151.enter(wl_output#409) -[2618160.027] {Default Queue} discarded wl_surface#2151.enter(wl_output#441) -[2618160.031] {Default Queue} discarded wl_surface#2151.enter(wl_output#473) -[2618160.035] {Default Queue} discarded wl_surface#2151.enter(wl_output#505) -[2618160.039] {Default Queue} discarded wl_surface#2151.enter(wl_output#537) -[2618160.042] {Default Queue} discarded wl_surface#2151.enter(wl_output#569) -[2618160.046] {Default Queue} discarded wl_surface#2151.enter(wl_output#601) -[2618160.050] {Default Queue} discarded wl_surface#2151.enter(wl_output#633) -[2618160.054] {Default Queue} discarded wl_surface#2151.enter(wl_output#665) -[2618160.058] {Default Queue} discarded wl_surface#2151.enter(wl_output#697) -[2618160.062] {Default Queue} discarded wl_surface#2151.enter(wl_output#729) -[2618160.066] {Default Queue} discarded wl_surface#2151.enter(wl_output#761) -[2618160.070] {Default Queue} discarded wl_surface#2151.enter(wl_output#793) -[2618160.074] {Default Queue} discarded wl_surface#2151.enter(wl_output#825) -[2618160.078] {Default Queue} discarded wl_surface#2151.enter(wl_output#857) -[2618160.082] {Default Queue} discarded wl_surface#2151.enter(wl_output#889) -[2618160.086] {Default Queue} discarded wl_surface#2151.enter(wl_output#921) -[2618160.089] {Default Queue} discarded wl_surface#2151.enter(wl_output#953) -[2618160.093] {Default Queue} discarded wl_surface#2151.enter(wl_output#985) -[2618160.097] {Default Queue} discarded wl_surface#2151.enter(wl_output#1017) -[2618160.101] {Default Queue} discarded wl_surface#2151.enter(wl_output#1049) -[2618160.105] {Default Queue} discarded wl_surface#2151.enter(wl_output#1081) -[2618160.109] {Default Queue} discarded wl_surface#2151.enter(wl_output#1113) -[2618160.113] {Default Queue} discarded wl_surface#2151.enter(wl_output#1145) -[2618160.117] {Default Queue} discarded wl_surface#2151.enter(wl_output#1177) -[2618160.121] {Default Queue} discarded wl_surface#2151.enter(wl_output#1209) -[2618160.125] {Default Queue} discarded wl_surface#2151.enter(wl_output#1241) -[2618160.129] {Default Queue} discarded wl_surface#2151.enter(wl_output#1273) -[2618160.133] {Default Queue} discarded wl_surface#2151.enter(wl_output#1305) -[2618160.137] {Default Queue} discarded wl_surface#2151.enter(wl_output#1337) -[2618160.141] {Default Queue} discarded wl_surface#2151.enter(wl_output#1369) -[2618160.145] {Default Queue} discarded wl_surface#2151.enter(wl_output#1401) -[2618160.149] {Default Queue} discarded wl_surface#2151.enter(wl_output#1433) -[2618160.152] {Default Queue} discarded wl_surface#2151.enter(wl_output#1465) -[2618160.156] {Default Queue} discarded wl_surface#2151.enter(wl_output#1497) -[2618160.160] {Default Queue} discarded wl_surface#2151.enter(wl_output#1529) -[2618160.164] {Default Queue} discarded wl_surface#2151.enter(wl_output#1561) -[2618160.168] {Default Queue} discarded wl_surface#2151.enter(wl_output#1593) -[2618160.172] {Default Queue} discarded wl_surface#2151.enter(wl_output#1625) -[2618160.176] {Default Queue} discarded wl_surface#2151.enter(wl_output#1657) -[2618160.180] {Default Queue} discarded wl_surface#2151.enter(wl_output#1689) -[2618160.184] {Default Queue} discarded wl_surface#2151.enter(wl_output#1721) -[2618160.192] {Default Queue} discarded wl_surface#2151.enter(wl_output#1753) -[2618160.197] {Default Queue} discarded wl_surface#2151.enter(wl_output#1785) -[2618160.201] {Default Queue} discarded wl_surface#2151.enter(wl_output#1817) -[2618160.205] {Default Queue} discarded wl_surface#2151.enter(wl_output#1849) -[2618160.209] {Default Queue} discarded wl_surface#2151.enter(wl_output#1881) -[2618160.213] {Default Queue} discarded wl_surface#2151.enter(wl_output#1913) -[2618160.217] {Default Queue} discarded wl_surface#2151.enter(wl_output#1945) -[2618160.221] {Default Queue} discarded wl_surface#2151.enter(wl_output#1977) -[2618160.226] {Default Queue} discarded wl_surface#2151.enter(wl_output#2009) -[2618160.230] {Default Queue} discarded wl_surface#2151.enter(wl_output#2041) -[2618160.234] {Default Queue} discarded wl_surface#2151.enter(wl_output#2073) -[2618160.237] {Default Queue} discarded wl_surface#2151.enter(wl_output#2105) -[2618160.241] {Default Queue} discarded wl_surface#2151.enter(wl_output#2137) -[2618160.245] {Default Queue} discarded wl_surface#2151.enter(wl_output#2169) -[2618160.249] {Default Queue} -> wl_compositor#2156.create_surface(new id wl_surface#2183) -[2618160.254] {Default Queue} -> wl_subcompositor#2189.get_subsurface(new id wl_subsurface#2202, wl_surface#2183, wl_surface#2151) -[2618160.262] {Default Queue} -> wl_subsurface#2202.set_desync() -[2618160.266] {Default Queue} -> wl_subsurface#2202.set_position(0, 0) -[2618160.270] {Default Queue} -> wl_subsurface#2202.place_above(wl_surface#2151) -[2618160.312] {Default Queue} -> wl_shm#2191.create_pool(new id wl_shm_pool#2203, fd 349, 16) -[2618160.318] {Default Queue} -> wl_shm#2191.create_pool(new id wl_shm_pool#2204, fd 350, 16) -[2618160.323] {Default Queue} -> wl_shm_pool#2203.create_buffer(new id wl_buffer#2205, 0, 2, 2, 8, 0) -[2618160.328] {Default Queue} -> wl_shm_pool#2204.create_buffer(new id wl_buffer#2206, 0, 2, 2, 8, 0) -[2618160.336] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) -[2618160.340] {Default Queue} -> wl_surface#2183.commit() -[2618160.346] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) -[2618160.350] {Default Queue} -> wl_surface#2183.commit() -[2618160.354] {Default Queue} -> wl_compositor#2188.create_region(new id wl_region#2207) -[2618160.358] {Default Queue} -> wl_compositor#2188.create_region(new id wl_region#2208) -[2618160.363] {Default Queue} -> wl_region#2207.subtract(0, 0, 2, 2) -[2618160.367] {Default Queue} -> wl_region#2207.add(0, 0, 0, 0) -[2618160.371] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2618160.376] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2618160.380] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618160.385] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) -[2618160.392] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) -[2618160.397] {Default Queue} -> wl_surface#2183.commit() -[2618160.435] {Default Queue} -> wl_shm#2193.create_pool(new id wl_shm_pool#2209, fd 353, 640) -[2618160.441] {Default Queue} -> wl_shm#2193.create_pool(new id wl_shm_pool#2210, fd 354, 640) -[2618160.446] {Default Queue} -> wl_shm_pool#2209.create_buffer(new id wl_buffer#2211, 0, 10, 16, 40, 0) -[2618160.451] {Default Queue} -> wl_shm_pool#2210.create_buffer(new id wl_buffer#2212, 0, 10, 16, 40, 0) -[2618160.458] {Default Queue} -> wl_compositor#2188.create_surface(new id wl_surface#2213) -[2618160.462] {Default Queue} -> wl_surface#2213.attach(wl_buffer#2211, 0, 0) -[2618160.466] {Default Queue} -> wl_surface#2213.commit() -[2618160.471] {Default Queue} -> wl_surface#2213.attach(wl_buffer#2211, 0, 0) -[2618160.476] {Default Queue} -> wl_surface#2213.commit() -[2618160.481] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) -[2618160.486] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618160.491] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618160.498] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2214) -[2618160.503] {Default Queue} -> wl_display#1.sync(new id wl_callback#2215) -[2618164.966] {Display Queue} wl_display#1.delete_id(2215) -[2618164.981] {Default Queue} wl_keyboard#2184.keymap(1, fd 349, 68213) -[2618164.988] {Default Queue} wl_keyboard#2184.enter(566, wl_surface#19, array[0]) -[2618164.994] {Default Queue} wl_keyboard#2184.modifiers(566, 0, 0, 16, 0) -[2618165.000] {Default Queue} discarded wl_shm#2191.format(875709016) -[2618165.005] {Default Queue} discarded wl_shm#2191.format(1) -[2618165.010] {Default Queue} discarded wl_shm#2191.format(0) -[2618165.014] {Default Queue} discarded wl_shm#2191.format(875708993) -[2618165.018] {Default Queue} discarded wl_shm#2192.format(875709016) -[2618165.023] {Default Queue} discarded wl_shm#2192.format(1) -[2618165.027] {Default Queue} discarded wl_shm#2192.format(0) -[2618165.030] {Default Queue} discarded wl_shm#2192.format(875708993) -[2618165.034] {Default Queue} discarded wl_shm#2193.format(875709016) -[2618165.038] {Default Queue} discarded wl_shm#2193.format(1) -[2618165.042] {Default Queue} discarded wl_shm#2193.format(0) -[2618165.046] {Default Queue} discarded wl_shm#2193.format(875708993) -[2618165.050] {Default Queue} wl_seat#2200.capabilities(7) -[2618165.055] {Default Queue} -> wl_seat#2200.get_keyboard(new id wl_keyboard#2216) -[2618165.059] {Default Queue} -> wl_seat#2200.get_pointer(new id wl_pointer#2217) -[2618165.064] {Default Queue} -> wl_data_device_manager#2196.get_data_device(new id wl_data_device#2218, wl_seat#2200) -[2618165.068] {Default Queue} -> zwp_primary_selection_device_manager_v1#2198.get_device(new id zwp_primary_selection_device_v1#2219, wl_seat#2200) -[2618165.076] {Default Queue} wl_output#2201.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618165.081] {Default Queue} wl_output#2201.mode(3, 1280, 800, 60000) -[2618165.086] {Default Queue} discarded wl_surface#3.enter(wl_output#2201) -[2618165.090] {Default Queue} discarded wl_surface#999.enter(wl_output#2201) -[2618165.094] {Default Queue} discarded wl_surface#1191.enter(wl_output#2201) -[2618165.098] {Default Queue} discarded wl_surface#1159.enter(wl_output#2201) -[2618165.102] {Default Queue} discarded wl_surface#1703.enter(wl_output#2201) -[2618165.106] {Default Queue} discarded wl_surface#423.enter(wl_output#2201) -[2618165.110] {Default Queue} discarded wl_surface#1447.enter(wl_output#2201) -[2618165.114] {Default Queue} discarded wl_surface#2023.enter(wl_output#2201) -[2618165.118] {Default Queue} discarded wl_surface#1639.enter(wl_output#2201) -[2618165.122] {Default Queue} discarded wl_surface#1319.enter(wl_output#2201) -[2618165.126] {Default Queue} discarded wl_surface#1127.enter(wl_output#2201) -[2618165.130] {Default Queue} discarded wl_surface#2151.enter(wl_output#2201) -[2618165.134] {Default Queue} discarded wl_surface#1063.enter(wl_output#2201) -[2618165.138] {Default Queue} discarded wl_surface#455.enter(wl_output#2201) -[2618165.142] {Default Queue} discarded wl_surface#1575.enter(wl_output#2201) -[2618165.146] {Default Queue} discarded wl_surface#1799.enter(wl_output#2201) -[2618165.150] {Default Queue} discarded wl_surface#1415.enter(wl_output#2201) -[2618165.155] {Default Queue} discarded wl_surface#1831.enter(wl_output#2201) -[2618165.159] {Default Queue} discarded wl_surface#903.enter(wl_output#2201) -[2618165.162] {Default Queue} discarded wl_surface#775.enter(wl_output#2201) -[2618165.166] {Default Queue} discarded wl_surface#1991.enter(wl_output#2201) -[2618165.170] {Default Queue} discarded wl_surface#1543.enter(wl_output#2201) -[2618165.174] {Default Queue} discarded wl_surface#135.enter(wl_output#2201) -[2618165.178] {Default Queue} discarded wl_surface#1287.enter(wl_output#2201) -[2618165.182] {Default Queue} discarded wl_surface#1031.enter(wl_output#2201) -[2618165.186] {Default Queue} discarded wl_surface#615.enter(wl_output#2201) -[2618165.190] {Default Queue} discarded wl_surface#231.enter(wl_output#2201) -[2618165.194] {Default Queue} discarded wl_surface#1863.enter(wl_output#2201) -[2618165.197] {Default Queue} discarded wl_surface#359.enter(wl_output#2201) -[2618165.201] {Default Queue} discarded wl_surface#583.enter(wl_output#2201) -[2618165.209] {Default Queue} discarded wl_surface#743.enter(wl_output#2201) -[2618165.215] {Default Queue} discarded wl_surface#967.enter(wl_output#2201) -[2618165.219] {Default Queue} discarded wl_surface#103.enter(wl_output#2201) -[2618165.223] {Default Queue} discarded wl_surface#327.enter(wl_output#2201) -[2618165.227] {Default Queue} discarded wl_surface#43.enter(wl_output#2201) -[2618165.231] {Default Queue} discarded wl_surface#807.enter(wl_output#2201) -[2618165.235] {Default Queue} discarded wl_surface#19.enter(wl_output#2201) -[2618165.238] {Default Queue} discarded wl_surface#1511.enter(wl_output#2201) -[2618165.243] {Default Queue} discarded wl_surface#199.enter(wl_output#2201) -[2618165.247] {Default Queue} discarded wl_surface#391.enter(wl_output#2201) -[2618165.251] {Default Queue} discarded wl_surface#935.enter(wl_output#2201) -[2618165.255] {Default Queue} discarded wl_surface#1671.enter(wl_output#2201) -[2618165.259] {Default Queue} discarded wl_surface#1351.enter(wl_output#2201) -[2618165.263] {Default Queue} discarded wl_surface#711.enter(wl_output#2201) -[2618165.267] {Default Queue} discarded wl_surface#1223.enter(wl_output#2201) -[2618165.271] {Default Queue} discarded wl_surface#1927.enter(wl_output#2201) -[2618165.275] {Default Queue} discarded wl_surface#871.enter(wl_output#2201) -[2618165.279] {Default Queue} discarded wl_surface#1895.enter(wl_output#2201) -[2618165.282] {Default Queue} discarded wl_surface#263.enter(wl_output#2201) -[2618165.286] {Default Queue} discarded wl_surface#551.enter(wl_output#2201) -[2618165.290] {Default Queue} discarded wl_surface#1735.enter(wl_output#2201) -[2618165.294] {Default Queue} discarded wl_surface#1479.enter(wl_output#2201) -[2618165.298] {Default Queue} discarded wl_surface#1772.enter(wl_output#2201) -[2618165.302] {Default Queue} discarded wl_surface#1959.enter(wl_output#2201) -[2618165.306] {Default Queue} discarded wl_surface#647.enter(wl_output#2201) -[2618165.309] {Default Queue} discarded wl_surface#2055.enter(wl_output#2201) -[2618165.313] {Default Queue} discarded wl_surface#71.enter(wl_output#2201) -[2618165.318] {Default Queue} discarded wl_surface#839.enter(wl_output#2201) -[2618165.321] {Default Queue} discarded wl_surface#1607.enter(wl_output#2201) -[2618165.325] {Default Queue} discarded wl_surface#1095.enter(wl_output#2201) -[2618165.329] {Default Queue} discarded wl_surface#1383.enter(wl_output#2201) -[2618165.333] {Default Queue} discarded wl_surface#487.enter(wl_output#2201) -[2618165.337] {Default Queue} discarded wl_surface#519.enter(wl_output#2201) -[2618165.341] {Default Queue} discarded wl_surface#2087.enter(wl_output#2201) -[2618165.345] {Default Queue} discarded wl_surface#295.enter(wl_output#2201) -[2618165.348] {Default Queue} discarded wl_surface#167.enter(wl_output#2201) -[2618165.352] {Default Queue} discarded wl_surface#1255.enter(wl_output#2201) -[2618165.357] {Default Queue} discarded wl_surface#679.enter(wl_output#2201) -[2618165.360] {Default Queue} discarded wl_surface#2119.enter(wl_output#2201) -[2618165.364] {Default Queue} wl_registry#2214.global(1, "wl_compositor", 6) -[2618165.369] {Default Queue} -> wl_registry#2214.bind(1, "wl_compositor", 1, new id [unknown]#2220) -[2618165.374] {Default Queue} wl_registry#2214.global(2, "wl_subcompositor", 1) -[2618165.378] {Default Queue} -> wl_registry#2214.bind(2, "wl_subcompositor", 1, new id [unknown]#2221) -[2618165.383] {Default Queue} wl_registry#2214.global(3, "xdg_wm_base", 6) -[2618165.388] {Default Queue} -> wl_registry#2214.bind(3, "xdg_wm_base", 1, new id [unknown]#2222) -[2618165.392] {Default Queue} wl_registry#2214.global(6, "zwlr_layer_shell_v1", 5) -[2618165.397] {Default Queue} wl_registry#2214.global(7, "ext_session_lock_manager_v1", 1) -[2618165.401] {Default Queue} wl_registry#2214.global(8, "wl_shm", 2) -[2618165.405] {Default Queue} -> wl_registry#2214.bind(8, "wl_shm", 1, new id [unknown]#2223) -[2618165.412] {Default Queue} -> wl_registry#2214.bind(8, "wl_shm", 1, new id [unknown]#2224) -[2618165.416] {Default Queue} -> wl_registry#2214.bind(8, "wl_shm", 1, new id [unknown]#2225) -[2618165.428] {Default Queue} wl_registry#2214.global(9, "zxdg_output_manager_v1", 3) -[2618165.433] {Default Queue} wl_registry#2214.global(10, "wp_fractional_scale_manager_v1", 1) -[2618165.438] {Default Queue} wl_registry#2214.global(11, "zwp_tablet_manager_v2", 1) -[2618165.442] {Default Queue} wl_registry#2214.global(12, "zwp_pointer_gestures_v1", 3) -[2618165.446] {Default Queue} wl_registry#2214.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618165.451] {Default Queue} -> wl_registry#2214.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2226) -[2618165.455] {Default Queue} wl_registry#2214.global(14, "zwp_pointer_constraints_v1", 1) -[2618165.460] {Default Queue} -> wl_registry#2214.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2227) -[2618165.464] {Default Queue} wl_registry#2214.global(15, "ext_idle_notifier_v1", 2) -[2618165.469] {Default Queue} wl_registry#2214.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618165.473] {Default Queue} wl_registry#2214.global(17, "wl_data_device_manager", 3) -[2618165.478] {Default Queue} -> wl_registry#2214.bind(17, "wl_data_device_manager", 2, new id [unknown]#2228) -[2618165.482] {Default Queue} -> wl_data_device_manager#2228.create_data_source(new id wl_data_source#2229) -[2618165.486] {Default Queue} -> wl_data_source#2229.offer("text/plain") -[2618165.491] {Default Queue} -> wl_data_source#2229.offer("text/plain;charset=utf-8") -[2618165.495] {Default Queue} -> wl_data_source#2229.offer("TEXT") -[2618165.499] {Default Queue} -> wl_data_source#2229.offer("STRING") -[2618165.503] {Default Queue} -> wl_data_source#2229.offer("UTF8_STRING") -[2618165.507] {Default Queue} wl_registry#2214.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618165.512] {Default Queue} -> wl_registry#2214.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2230) -[2618165.520] {Default Queue} -> zwp_primary_selection_device_manager_v1#2230.create_source(new id zwp_primary_selection_source_v1#2231) -[2618165.527] {Default Queue} -> zwp_primary_selection_source_v1#2231.offer("text/plain") -[2618165.531] {Default Queue} -> zwp_primary_selection_source_v1#2231.offer("text/plain;charset=utf-8") -[2618165.535] {Default Queue} -> zwp_primary_selection_source_v1#2231.offer("TEXT") -[2618165.539] {Default Queue} -> zwp_primary_selection_source_v1#2231.offer("STRING") -[2618165.543] {Default Queue} -> zwp_primary_selection_source_v1#2231.offer("UTF8_STRING") -[2618165.547] {Default Queue} wl_registry#2214.global(19, "zwlr_data_control_manager_v1", 2) -[2618165.553] {Default Queue} wl_registry#2214.global(20, "ext_data_control_manager_v1", 1) -[2618165.557] {Default Queue} wl_registry#2214.global(21, "wp_presentation", 2) -[2618165.561] {Default Queue} wl_registry#2214.global(22, "wp_security_context_manager_v1", 1) -[2618165.566] {Default Queue} wl_registry#2214.global(23, "zwp_text_input_manager_v3", 1) -[2618165.570] {Default Queue} wl_registry#2214.global(24, "zwp_input_method_manager_v2", 1) -[2618165.574] {Default Queue} wl_registry#2214.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618165.579] {Default Queue} wl_registry#2214.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618165.583] {Default Queue} wl_registry#2214.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618165.587] {Default Queue} wl_registry#2214.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618165.592] {Default Queue} wl_registry#2214.global(29, "ext_workspace_manager_v1", 1) -[2618165.596] {Default Queue} wl_registry#2214.global(30, "zwlr_output_manager_v1", 4) -[2618165.601] {Default Queue} wl_registry#2214.global(31, "zwlr_screencopy_manager_v1", 3) -[2618165.605] {Default Queue} wl_registry#2214.global(32, "wp_viewporter", 1) -[2618165.609] {Default Queue} wl_registry#2214.global(33, "zxdg_exporter_v2", 1) -[2618165.614] {Default Queue} wl_registry#2214.global(34, "zxdg_importer_v2", 1) -[2618165.619] {Default Queue} wl_registry#2214.global(36, "xdg_activation_v1", 1) -[2618165.623] {Default Queue} wl_registry#2214.global(37, "mutter_x11_interop", 1) -[2618165.627] {Default Queue} wl_registry#2214.global(38, "wl_seat", 9) -[2618165.635] {Default Queue} -> wl_registry#2214.bind(38, "wl_seat", 1, new id [unknown]#2232) -[2618165.641] {Default Queue} wl_registry#2214.global(39, "wp_cursor_shape_manager_v1", 2) -[2618165.645] {Default Queue} wl_registry#2214.global(40, "wl_output", 4) -[2618165.650] {Default Queue} -> wl_registry#2214.bind(40, "wl_output", 1, new id [unknown]#2233) -[2618165.654] {Default Queue} wl_callback#2215.done(0) -[2618165.658] {Default Queue} discarded wl_surface#2183.enter(wl_output#18) -[2618165.662] {Default Queue} discarded wl_surface#2183.enter(wl_output#57) -[2618165.667] {Default Queue} discarded wl_surface#2183.enter(wl_output#89) -[2618165.671] {Default Queue} discarded wl_surface#2183.enter(wl_output#121) -[2618165.675] {Default Queue} discarded wl_surface#2183.enter(wl_output#153) -[2618165.679] {Default Queue} discarded wl_surface#2183.enter(wl_output#185) -[2618165.683] {Default Queue} discarded wl_surface#2183.enter(wl_output#217) -[2618165.687] {Default Queue} discarded wl_surface#2183.enter(wl_output#249) -[2618165.691] {Default Queue} discarded wl_surface#2183.enter(wl_output#281) -[2618165.695] {Default Queue} discarded wl_surface#2183.enter(wl_output#313) -[2618165.699] {Default Queue} discarded wl_surface#2183.enter(wl_output#345) -[2618165.703] {Default Queue} discarded wl_surface#2183.enter(wl_output#377) -[2618165.707] {Default Queue} discarded wl_surface#2183.enter(wl_output#409) -[2618165.711] {Default Queue} discarded wl_surface#2183.enter(wl_output#441) -[2618165.715] {Default Queue} discarded wl_surface#2183.enter(wl_output#473) -[2618165.719] {Default Queue} discarded wl_surface#2183.enter(wl_output#505) -[2618165.723] {Default Queue} discarded wl_surface#2183.enter(wl_output#537) -[2618165.727] {Default Queue} discarded wl_surface#2183.enter(wl_output#569) -[2618165.731] {Default Queue} discarded wl_surface#2183.enter(wl_output#601) -[2618165.735] {Default Queue} discarded wl_surface#2183.enter(wl_output#633) -[2618165.739] {Default Queue} discarded wl_surface#2183.enter(wl_output#665) -[2618165.743] {Default Queue} discarded wl_surface#2183.enter(wl_output#697) -[2618165.747] {Default Queue} discarded wl_surface#2183.enter(wl_output#729) -[2618165.751] {Default Queue} discarded wl_surface#2183.enter(wl_output#761) -[2618165.755] {Default Queue} discarded wl_surface#2183.enter(wl_output#793) -[2618165.759] {Default Queue} discarded wl_surface#2183.enter(wl_output#825) -[2618165.763] {Default Queue} discarded wl_surface#2183.enter(wl_output#857) -[2618165.767] {Default Queue} discarded wl_surface#2183.enter(wl_output#889) -[2618165.771] {Default Queue} discarded wl_surface#2183.enter(wl_output#921) -[2618165.775] {Default Queue} discarded wl_surface#2183.enter(wl_output#953) -[2618165.779] {Default Queue} discarded wl_surface#2183.enter(wl_output#985) -[2618165.783] {Default Queue} discarded wl_surface#2183.enter(wl_output#1017) -[2618165.787] {Default Queue} discarded wl_surface#2183.enter(wl_output#1049) -[2618165.791] {Default Queue} discarded wl_surface#2183.enter(wl_output#1081) -[2618165.795] {Default Queue} discarded wl_surface#2183.enter(wl_output#1113) -[2618165.799] {Default Queue} discarded wl_surface#2183.enter(wl_output#1145) -[2618165.803] {Default Queue} discarded wl_surface#2183.enter(wl_output#1177) -[2618165.807] {Default Queue} discarded wl_surface#2183.enter(wl_output#1209) -[2618165.811] {Default Queue} discarded wl_surface#2183.enter(wl_output#1241) -[2618165.815] {Default Queue} discarded wl_surface#2183.enter(wl_output#1273) -[2618165.819] {Default Queue} discarded wl_surface#2183.enter(wl_output#1305) -[2618165.823] {Default Queue} discarded wl_surface#2183.enter(wl_output#1337) -[2618165.826] {Default Queue} discarded wl_surface#2183.enter(wl_output#1369) -[2618165.830] {Default Queue} discarded wl_surface#2183.enter(wl_output#1401) -[2618165.835] {Default Queue} discarded wl_surface#2183.enter(wl_output#1433) -[2618165.839] {Default Queue} discarded wl_surface#2183.enter(wl_output#1465) -[2618165.843] {Default Queue} discarded wl_surface#2183.enter(wl_output#1497) -[2618165.850] {Default Queue} discarded wl_surface#2183.enter(wl_output#1529) -[2618165.855] {Default Queue} discarded wl_surface#2183.enter(wl_output#1561) -[2618165.859] {Default Queue} discarded wl_surface#2183.enter(wl_output#1593) -[2618165.864] {Default Queue} discarded wl_surface#2183.enter(wl_output#1625) -[2618165.868] {Default Queue} discarded wl_surface#2183.enter(wl_output#1657) -[2618165.879] {Default Queue} discarded wl_surface#2183.enter(wl_output#1689) -[2618165.883] {Default Queue} discarded wl_surface#2183.enter(wl_output#1721) -[2618165.887] {Default Queue} discarded wl_surface#2183.enter(wl_output#1753) -[2618165.891] {Default Queue} discarded wl_surface#2183.enter(wl_output#1785) -[2618165.895] {Default Queue} discarded wl_surface#2183.enter(wl_output#1817) -[2618165.899] {Default Queue} discarded wl_surface#2183.enter(wl_output#1849) -[2618165.903] {Default Queue} discarded wl_surface#2183.enter(wl_output#1881) -[2618165.907] {Default Queue} discarded wl_surface#2183.enter(wl_output#1913) -[2618165.911] {Default Queue} discarded wl_surface#2183.enter(wl_output#1945) -[2618165.915] {Default Queue} discarded wl_surface#2183.enter(wl_output#1977) -[2618165.918] {Default Queue} discarded wl_surface#2183.enter(wl_output#2009) -[2618165.922] {Default Queue} discarded wl_surface#2183.enter(wl_output#2041) -[2618165.926] {Default Queue} discarded wl_surface#2183.enter(wl_output#2073) -[2618165.930] {Default Queue} discarded wl_surface#2183.enter(wl_output#2105) -[2618165.934] {Default Queue} discarded wl_surface#2183.enter(wl_output#2137) -[2618165.938] {Default Queue} discarded wl_surface#2183.enter(wl_output#2169) -[2618165.942] {Default Queue} discarded wl_surface#2183.enter(wl_output#2201) -[2618165.946] {Default Queue} -> wl_compositor#2156.create_surface(new id wl_surface#2215) -[2618165.951] {Default Queue} -> wl_subcompositor#2221.get_subsurface(new id wl_subsurface#2234, wl_surface#2215, wl_surface#2151) -[2618165.959] {Default Queue} -> wl_subsurface#2234.set_desync() -[2618165.963] {Default Queue} -> wl_subsurface#2234.set_position(0, 0) -[2618165.967] {Default Queue} -> wl_subsurface#2234.place_above(wl_surface#2151) -[2618166.010] {Default Queue} -> wl_shm#2223.create_pool(new id wl_shm_pool#2235, fd 354, 16) -[2618166.017] {Default Queue} -> wl_shm#2223.create_pool(new id wl_shm_pool#2236, fd 355, 16) -[2618166.021] {Default Queue} -> wl_shm_pool#2235.create_buffer(new id wl_buffer#2237, 0, 2, 2, 8, 0) -[2618166.026] {Default Queue} -> wl_shm_pool#2236.create_buffer(new id wl_buffer#2238, 0, 2, 2, 8, 0) -[2618166.035] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) -[2618166.039] {Default Queue} -> wl_surface#2215.commit() -[2618166.045] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) -[2618166.049] {Default Queue} -> wl_surface#2215.commit() -[2618166.053] {Default Queue} -> wl_compositor#2220.create_region(new id wl_region#2239) -[2618166.057] {Default Queue} -> wl_compositor#2220.create_region(new id wl_region#2240) -[2618166.062] {Default Queue} -> wl_region#2239.subtract(0, 0, 2, 2) -[2618166.067] {Default Queue} -> wl_region#2239.add(0, 0, 0, 0) -[2618166.071] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) -[2618166.076] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) -[2618166.080] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) -[2618166.085] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) -[2618166.093] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) -[2618166.097] {Default Queue} -> wl_surface#2215.commit() -[2618166.132] {Default Queue} -> wl_shm#2225.create_pool(new id wl_shm_pool#2241, fd 358, 640) -[2618166.138] {Default Queue} -> wl_shm#2225.create_pool(new id wl_shm_pool#2242, fd 359, 640) -[2618166.143] {Default Queue} -> wl_shm_pool#2241.create_buffer(new id wl_buffer#2243, 0, 10, 16, 40, 0) -[2618166.148] {Default Queue} -> wl_shm_pool#2242.create_buffer(new id wl_buffer#2244, 0, 10, 16, 40, 0) -[2618166.154] {Default Queue} -> wl_compositor#2220.create_surface(new id wl_surface#2245) -[2618166.162] {Default Queue} -> wl_surface#2245.attach(wl_buffer#2243, 0, 0) -[2618166.169] {Default Queue} -> wl_surface#2245.commit() -[2618166.174] {Default Queue} -> wl_surface#2245.attach(wl_buffer#2243, 0, 0) -[2618166.179] {Default Queue} -> wl_surface#2245.commit() -[2618166.183] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) -[2618166.190] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2246) -[2618166.195] {Default Queue} -> wl_display#1.sync(new id wl_callback#2247) -[2618171.114] {Display Queue} wl_display#1.delete_id(2247) -[2618171.125] {Default Queue} wl_keyboard#2216.keymap(1, fd 354, 68213) -[2618171.132] {Default Queue} wl_keyboard#2216.enter(566, wl_surface#19, array[0]) -[2618171.138] {Default Queue} wl_keyboard#2216.modifiers(566, 0, 0, 16, 0) -[2618171.144] {Default Queue} discarded wl_shm#2223.format(875709016) -[2618171.149] {Default Queue} discarded wl_shm#2223.format(1) -[2618171.154] {Default Queue} discarded wl_shm#2223.format(0) -[2618171.159] {Default Queue} discarded wl_shm#2223.format(875708993) -[2618171.163] {Default Queue} discarded wl_shm#2224.format(875709016) -[2618171.168] {Default Queue} discarded wl_shm#2224.format(1) -[2618171.173] {Default Queue} discarded wl_shm#2224.format(0) -[2618171.178] {Default Queue} discarded wl_shm#2224.format(875708993) -[2618171.183] {Default Queue} discarded wl_shm#2225.format(875709016) -[2618171.188] {Default Queue} discarded wl_shm#2225.format(1) -[2618171.193] {Default Queue} discarded wl_shm#2225.format(0) -[2618171.198] {Default Queue} discarded wl_shm#2225.format(875708993) -[2618171.203] {Default Queue} wl_seat#2232.capabilities(7) -[2618171.208] {Default Queue} -> wl_seat#2232.get_keyboard(new id wl_keyboard#2248) -[2618171.214] {Default Queue} -> wl_seat#2232.get_pointer(new id wl_pointer#2249) -[2618171.219] {Default Queue} -> wl_data_device_manager#2228.get_data_device(new id wl_data_device#2250, wl_seat#2232) -[2618171.225] {Default Queue} -> zwp_primary_selection_device_manager_v1#2230.get_device(new id zwp_primary_selection_device_v1#2251, wl_seat#2232) -[2618171.235] {Default Queue} wl_output#2233.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618171.241] {Default Queue} wl_output#2233.mode(3, 1280, 800, 60000) -[2618171.247] {Default Queue} discarded wl_surface#3.enter(wl_output#2233) -[2618171.252] {Default Queue} discarded wl_surface#999.enter(wl_output#2233) -[2618171.257] {Default Queue} discarded wl_surface#1191.enter(wl_output#2233) -[2618171.262] {Default Queue} discarded wl_surface#1159.enter(wl_output#2233) -[2618171.267] {Default Queue} discarded wl_surface#1703.enter(wl_output#2233) -[2618171.272] {Default Queue} discarded wl_surface#423.enter(wl_output#2233) -[2618171.277] {Default Queue} discarded wl_surface#1447.enter(wl_output#2233) -[2618171.282] {Default Queue} discarded wl_surface#2023.enter(wl_output#2233) -[2618171.287] {Default Queue} discarded wl_surface#1639.enter(wl_output#2233) -[2618171.291] {Default Queue} discarded wl_surface#1319.enter(wl_output#2233) -[2618171.296] {Default Queue} discarded wl_surface#1127.enter(wl_output#2233) -[2618171.301] {Default Queue} discarded wl_surface#2151.enter(wl_output#2233) -[2618171.306] {Default Queue} discarded wl_surface#1063.enter(wl_output#2233) -[2618171.311] {Default Queue} discarded wl_surface#455.enter(wl_output#2233) -[2618171.316] {Default Queue} discarded wl_surface#1575.enter(wl_output#2233) -[2618171.321] {Default Queue} discarded wl_surface#1799.enter(wl_output#2233) -[2618171.326] {Default Queue} discarded wl_surface#1415.enter(wl_output#2233) -[2618171.331] {Default Queue} discarded wl_surface#1831.enter(wl_output#2233) -[2618171.336] {Default Queue} discarded wl_surface#903.enter(wl_output#2233) -[2618171.341] {Default Queue} discarded wl_surface#775.enter(wl_output#2233) -[2618171.346] {Default Queue} discarded wl_surface#1991.enter(wl_output#2233) -[2618171.351] {Default Queue} discarded wl_surface#1543.enter(wl_output#2233) -[2618171.356] {Default Queue} discarded wl_surface#135.enter(wl_output#2233) -[2618171.361] {Default Queue} discarded wl_surface#1287.enter(wl_output#2233) -[2618171.370] {Default Queue} discarded wl_surface#1031.enter(wl_output#2233) -[2618171.378] {Default Queue} discarded wl_surface#615.enter(wl_output#2233) -[2618171.383] {Default Queue} discarded wl_surface#231.enter(wl_output#2233) -[2618171.388] {Default Queue} discarded wl_surface#1863.enter(wl_output#2233) -[2618171.393] {Default Queue} discarded wl_surface#359.enter(wl_output#2233) -[2618171.398] {Default Queue} discarded wl_surface#583.enter(wl_output#2233) -[2618171.402] {Default Queue} discarded wl_surface#743.enter(wl_output#2233) -[2618171.407] {Default Queue} discarded wl_surface#967.enter(wl_output#2233) -[2618171.412] {Default Queue} discarded wl_surface#103.enter(wl_output#2233) -[2618171.417] {Default Queue} discarded wl_surface#327.enter(wl_output#2233) -[2618171.422] {Default Queue} discarded wl_surface#43.enter(wl_output#2233) -[2618171.427] {Default Queue} discarded wl_surface#807.enter(wl_output#2233) -[2618171.432] {Default Queue} discarded wl_surface#19.enter(wl_output#2233) -[2618171.437] {Default Queue} discarded wl_surface#1511.enter(wl_output#2233) -[2618171.442] {Default Queue} discarded wl_surface#199.enter(wl_output#2233) -[2618171.447] {Default Queue} discarded wl_surface#391.enter(wl_output#2233) -[2618171.452] {Default Queue} discarded wl_surface#935.enter(wl_output#2233) -[2618171.456] {Default Queue} discarded wl_surface#1671.enter(wl_output#2233) -[2618171.461] {Default Queue} discarded wl_surface#1351.enter(wl_output#2233) -[2618171.466] {Default Queue} discarded wl_surface#711.enter(wl_output#2233) -[2618171.471] {Default Queue} discarded wl_surface#1223.enter(wl_output#2233) -[2618171.476] {Default Queue} discarded wl_surface#1927.enter(wl_output#2233) -[2618171.481] {Default Queue} discarded wl_surface#871.enter(wl_output#2233) -[2618171.486] {Default Queue} discarded wl_surface#1895.enter(wl_output#2233) -[2618171.491] {Default Queue} discarded wl_surface#263.enter(wl_output#2233) -[2618171.496] {Default Queue} discarded wl_surface#551.enter(wl_output#2233) -[2618171.501] {Default Queue} discarded wl_surface#1735.enter(wl_output#2233) -[2618171.506] {Default Queue} discarded wl_surface#1479.enter(wl_output#2233) -[2618171.511] {Default Queue} discarded wl_surface#1772.enter(wl_output#2233) -[2618171.516] {Default Queue} discarded wl_surface#1959.enter(wl_output#2233) -[2618171.521] {Default Queue} discarded wl_surface#647.enter(wl_output#2233) -[2618171.526] {Default Queue} discarded wl_surface#2055.enter(wl_output#2233) -[2618171.531] {Default Queue} discarded wl_surface#71.enter(wl_output#2233) -[2618171.535] {Default Queue} discarded wl_surface#2183.enter(wl_output#2233) -[2618171.540] {Default Queue} discarded wl_surface#839.enter(wl_output#2233) -[2618171.545] {Default Queue} discarded wl_surface#1607.enter(wl_output#2233) -[2618171.550] {Default Queue} discarded wl_surface#1095.enter(wl_output#2233) -[2618171.555] {Default Queue} discarded wl_surface#1383.enter(wl_output#2233) -[2618171.560] {Default Queue} discarded wl_surface#487.enter(wl_output#2233) -[2618171.565] {Default Queue} discarded wl_surface#519.enter(wl_output#2233) -[2618171.570] {Default Queue} discarded wl_surface#2087.enter(wl_output#2233) -[2618171.575] {Default Queue} discarded wl_surface#295.enter(wl_output#2233) -[2618171.580] {Default Queue} discarded wl_surface#167.enter(wl_output#2233) -[2618171.585] {Default Queue} discarded wl_surface#1255.enter(wl_output#2233) -[2618171.590] {Default Queue} discarded wl_surface#679.enter(wl_output#2233) -[2618171.594] {Default Queue} discarded wl_surface#2119.enter(wl_output#2233) -[2618171.599] {Default Queue} wl_registry#2246.global(1, "wl_compositor", 6) -[2618171.606] {Default Queue} -> wl_registry#2246.bind(1, "wl_compositor", 1, new id [unknown]#2252) -[2618171.612] {Default Queue} wl_registry#2246.global(2, "wl_subcompositor", 1) -[2618171.618] {Default Queue} -> wl_registry#2246.bind(2, "wl_subcompositor", 1, new id [unknown]#2253) -[2618171.623] {Default Queue} wl_registry#2246.global(3, "xdg_wm_base", 6) -[2618171.629] {Default Queue} -> wl_registry#2246.bind(3, "xdg_wm_base", 1, new id [unknown]#2254) -[2618171.639] {Default Queue} wl_registry#2246.global(6, "zwlr_layer_shell_v1", 5) -[2618171.646] {Default Queue} wl_registry#2246.global(7, "ext_session_lock_manager_v1", 1) -[2618171.652] {Default Queue} wl_registry#2246.global(8, "wl_shm", 2) -[2618171.657] {Default Queue} -> wl_registry#2246.bind(8, "wl_shm", 1, new id [unknown]#2255) -[2618171.665] {Default Queue} -> wl_registry#2246.bind(8, "wl_shm", 1, new id [unknown]#2256) -[2618171.673] {Default Queue} -> wl_registry#2246.bind(8, "wl_shm", 1, new id [unknown]#2257) -[2618171.680] {Default Queue} wl_registry#2246.global(9, "zxdg_output_manager_v1", 3) -[2618171.688] {Default Queue} wl_registry#2246.global(10, "wp_fractional_scale_manager_v1", 1) -[2618171.698] {Default Queue} wl_registry#2246.global(11, "zwp_tablet_manager_v2", 1) -[2618171.705] {Default Queue} wl_registry#2246.global(12, "zwp_pointer_gestures_v1", 3) -[2618171.710] {Default Queue} wl_registry#2246.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618171.716] {Default Queue} -> wl_registry#2246.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2258) -[2618171.721] {Default Queue} wl_registry#2246.global(14, "zwp_pointer_constraints_v1", 1) -[2618171.727] {Default Queue} -> wl_registry#2246.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2259) -[2618171.732] {Default Queue} wl_registry#2246.global(15, "ext_idle_notifier_v1", 2) -[2618171.738] {Default Queue} wl_registry#2246.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618171.747] {Default Queue} wl_registry#2246.global(17, "wl_data_device_manager", 3) -[2618171.753] {Default Queue} -> wl_registry#2246.bind(17, "wl_data_device_manager", 2, new id [unknown]#2260) -[2618171.758] {Default Queue} -> wl_data_device_manager#2260.create_data_source(new id wl_data_source#2261) -[2618171.764] {Default Queue} -> wl_data_source#2261.offer("text/plain") -[2618171.769] {Default Queue} -> wl_data_source#2261.offer("text/plain;charset=utf-8") -[2618171.774] {Default Queue} -> wl_data_source#2261.offer("TEXT") -[2618171.779] {Default Queue} -> wl_data_source#2261.offer("STRING") -[2618171.784] {Default Queue} -> wl_data_source#2261.offer("UTF8_STRING") -[2618171.789] {Default Queue} wl_registry#2246.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618171.795] {Default Queue} -> wl_registry#2246.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2262) -[2618171.805] {Default Queue} -> zwp_primary_selection_device_manager_v1#2262.create_source(new id zwp_primary_selection_source_v1#2263) -[2618171.814] {Default Queue} -> zwp_primary_selection_source_v1#2263.offer("text/plain") -[2618171.820] {Default Queue} -> zwp_primary_selection_source_v1#2263.offer("text/plain;charset=utf-8") -[2618171.825] {Default Queue} -> zwp_primary_selection_source_v1#2263.offer("TEXT") -[2618171.830] {Default Queue} -> zwp_primary_selection_source_v1#2263.offer("STRING") -[2618171.835] {Default Queue} -> zwp_primary_selection_source_v1#2263.offer("UTF8_STRING") -[2618171.840] {Default Queue} wl_registry#2246.global(19, "zwlr_data_control_manager_v1", 2) -[2618171.845] {Default Queue} wl_registry#2246.global(20, "ext_data_control_manager_v1", 1) -[2618171.851] {Default Queue} wl_registry#2246.global(21, "wp_presentation", 2) -[2618171.857] {Default Queue} wl_registry#2246.global(22, "wp_security_context_manager_v1", 1) -[2618171.869] {Default Queue} wl_registry#2246.global(23, "zwp_text_input_manager_v3", 1) -[2618171.899] {Default Queue} wl_registry#2246.global(24, "zwp_input_method_manager_v2", 1) -[2618171.908] {Default Queue} wl_registry#2246.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618171.914] {Default Queue} wl_registry#2246.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618171.919] {Default Queue} wl_registry#2246.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618171.923] {Default Queue} wl_registry#2246.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618171.928] {Default Queue} wl_registry#2246.global(29, "ext_workspace_manager_v1", 1) -[2618171.932] {Default Queue} wl_registry#2246.global(30, "zwlr_output_manager_v1", 4) -[2618171.943] {Default Queue} wl_registry#2246.global(31, "zwlr_screencopy_manager_v1", 3) -[2618171.952] {Default Queue} wl_registry#2246.global(32, "wp_viewporter", 1) -[2618171.956] {Default Queue} wl_registry#2246.global(33, "zxdg_exporter_v2", 1) -[2618171.960] {Default Queue} wl_registry#2246.global(34, "zxdg_importer_v2", 1) -[2618171.965] {Default Queue} wl_registry#2246.global(36, "xdg_activation_v1", 1) -[2618171.969] {Default Queue} wl_registry#2246.global(37, "mutter_x11_interop", 1) -[2618171.973] {Default Queue} wl_registry#2246.global(38, "wl_seat", 9) -[2618171.979] {Default Queue} -> wl_registry#2246.bind(38, "wl_seat", 1, new id [unknown]#2264) -[2618171.984] {Default Queue} wl_registry#2246.global(39, "wp_cursor_shape_manager_v1", 2) -[2618171.988] {Default Queue} wl_registry#2246.global(40, "wl_output", 4) -[2618171.993] {Default Queue} -> wl_registry#2246.bind(40, "wl_output", 1, new id [unknown]#2265) -[2618171.997] {Default Queue} wl_callback#2247.done(0) -[2618172.002] {Default Queue} discarded wl_surface#2215.enter(wl_output#18) -[2618172.006] {Default Queue} discarded wl_surface#2215.enter(wl_output#57) -[2618172.010] {Default Queue} discarded wl_surface#2215.enter(wl_output#89) -[2618172.014] {Default Queue} discarded wl_surface#2215.enter(wl_output#121) -[2618172.018] {Default Queue} discarded wl_surface#2215.enter(wl_output#153) -[2618172.022] {Default Queue} discarded wl_surface#2215.enter(wl_output#185) -[2618172.027] {Default Queue} discarded wl_surface#2215.enter(wl_output#217) -[2618172.031] {Default Queue} discarded wl_surface#2215.enter(wl_output#249) -[2618172.035] {Default Queue} discarded wl_surface#2215.enter(wl_output#281) -[2618172.038] {Default Queue} discarded wl_surface#2215.enter(wl_output#313) -[2618172.042] {Default Queue} discarded wl_surface#2215.enter(wl_output#345) -[2618172.046] {Default Queue} discarded wl_surface#2215.enter(wl_output#377) -[2618172.050] {Default Queue} discarded wl_surface#2215.enter(wl_output#409) -[2618172.054] {Default Queue} discarded wl_surface#2215.enter(wl_output#441) -[2618172.058] {Default Queue} discarded wl_surface#2215.enter(wl_output#473) -[2618172.062] {Default Queue} discarded wl_surface#2215.enter(wl_output#505) -[2618172.066] {Default Queue} discarded wl_surface#2215.enter(wl_output#537) -[2618172.070] {Default Queue} discarded wl_surface#2215.enter(wl_output#569) -[2618172.074] {Default Queue} discarded wl_surface#2215.enter(wl_output#601) -[2618172.078] {Default Queue} discarded wl_surface#2215.enter(wl_output#633) -[2618172.082] {Default Queue} discarded wl_surface#2215.enter(wl_output#665) -[2618172.086] {Default Queue} discarded wl_surface#2215.enter(wl_output#697) -[2618172.089] {Default Queue} discarded wl_surface#2215.enter(wl_output#729) -[2618172.093] {Default Queue} discarded wl_surface#2215.enter(wl_output#761) -[2618172.097] {Default Queue} discarded wl_surface#2215.enter(wl_output#793) -[2618172.101] {Default Queue} discarded wl_surface#2215.enter(wl_output#825) -[2618172.105] {Default Queue} discarded wl_surface#2215.enter(wl_output#857) -[2618172.109] {Default Queue} discarded wl_surface#2215.enter(wl_output#889) -[2618172.113] {Default Queue} discarded wl_surface#2215.enter(wl_output#921) -[2618172.117] {Default Queue} discarded wl_surface#2215.enter(wl_output#953) -[2618172.121] {Default Queue} discarded wl_surface#2215.enter(wl_output#985) -[2618172.125] {Default Queue} discarded wl_surface#2215.enter(wl_output#1017) -[2618172.128] {Default Queue} discarded wl_surface#2215.enter(wl_output#1049) -[2618172.132] {Default Queue} discarded wl_surface#2215.enter(wl_output#1081) -[2618172.136] {Default Queue} discarded wl_surface#2215.enter(wl_output#1113) -[2618172.140] {Default Queue} discarded wl_surface#2215.enter(wl_output#1145) -[2618172.144] {Default Queue} discarded wl_surface#2215.enter(wl_output#1177) -[2618172.148] {Default Queue} discarded wl_surface#2215.enter(wl_output#1209) -[2618172.152] {Default Queue} discarded wl_surface#2215.enter(wl_output#1241) -[2618172.155] {Default Queue} discarded wl_surface#2215.enter(wl_output#1273) -[2618172.164] {Default Queue} discarded wl_surface#2215.enter(wl_output#1305) -[2618172.170] {Default Queue} discarded wl_surface#2215.enter(wl_output#1337) -[2618172.174] {Default Queue} discarded wl_surface#2215.enter(wl_output#1369) -[2618172.178] {Default Queue} discarded wl_surface#2215.enter(wl_output#1401) -[2618172.182] {Default Queue} discarded wl_surface#2215.enter(wl_output#1433) -[2618172.186] {Default Queue} discarded wl_surface#2215.enter(wl_output#1465) -[2618172.190] {Default Queue} discarded wl_surface#2215.enter(wl_output#1497) -[2618172.193] {Default Queue} discarded wl_surface#2215.enter(wl_output#1529) -[2618172.197] {Default Queue} discarded wl_surface#2215.enter(wl_output#1561) -[2618172.201] {Default Queue} discarded wl_surface#2215.enter(wl_output#1593) -[2618172.205] {Default Queue} discarded wl_surface#2215.enter(wl_output#1625) -[2618172.209] {Default Queue} discarded wl_surface#2215.enter(wl_output#1657) -[2618172.213] {Default Queue} discarded wl_surface#2215.enter(wl_output#1689) -[2618172.217] {Default Queue} discarded wl_surface#2215.enter(wl_output#1721) -[2618172.221] {Default Queue} discarded wl_surface#2215.enter(wl_output#1753) -[2618172.225] {Default Queue} discarded wl_surface#2215.enter(wl_output#1785) -[2618172.229] {Default Queue} discarded wl_surface#2215.enter(wl_output#1817) -[2618172.233] {Default Queue} discarded wl_surface#2215.enter(wl_output#1849) -[2618172.237] {Default Queue} discarded wl_surface#2215.enter(wl_output#1881) -[2618172.241] {Default Queue} discarded wl_surface#2215.enter(wl_output#1913) -[2618172.245] {Default Queue} discarded wl_surface#2215.enter(wl_output#1945) -[2618172.249] {Default Queue} discarded wl_surface#2215.enter(wl_output#1977) -[2618172.253] {Default Queue} discarded wl_surface#2215.enter(wl_output#2009) -[2618172.256] {Default Queue} discarded wl_surface#2215.enter(wl_output#2041) -[2618172.260] {Default Queue} discarded wl_surface#2215.enter(wl_output#2073) -[2618172.264] {Default Queue} discarded wl_surface#2215.enter(wl_output#2105) -[2618172.268] {Default Queue} discarded wl_surface#2215.enter(wl_output#2137) -[2618172.273] {Default Queue} discarded wl_surface#2215.enter(wl_output#2169) -[2618172.277] {Default Queue} discarded wl_surface#2215.enter(wl_output#2201) -[2618172.281] {Default Queue} discarded wl_surface#2215.enter(wl_output#2233) -[2618172.285] {Default Queue} -> wl_compositor#2220.create_surface(new id wl_surface#2247) -[2618172.290] {Default Queue} -> wl_subcompositor#2253.get_subsurface(new id wl_subsurface#2266, wl_surface#2247, wl_surface#2215) -[2618172.298] {Default Queue} -> wl_subsurface#2266.set_desync() -[2618172.302] {Default Queue} -> wl_subsurface#2266.set_position(0, 0) -[2618172.308] {Default Queue} -> wl_subsurface#2266.place_above(wl_surface#2215) -[2618172.355] {Default Queue} -> wl_shm#2255.create_pool(new id wl_shm_pool#2267, fd 359, 16) -[2618172.362] {Default Queue} -> wl_shm#2255.create_pool(new id wl_shm_pool#2268, fd 360, 16) -[2618172.366] {Default Queue} -> wl_shm_pool#2267.create_buffer(new id wl_buffer#2269, 0, 2, 2, 8, 0) -[2618172.371] {Default Queue} -> wl_shm_pool#2268.create_buffer(new id wl_buffer#2270, 0, 2, 2, 8, 0) -[2618172.380] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) -[2618172.385] {Default Queue} -> wl_surface#2247.commit() -[2618172.390] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) -[2618172.395] {Default Queue} -> wl_surface#2247.commit() -[2618172.399] {Default Queue} -> wl_compositor#2252.create_region(new id wl_region#2271) -[2618172.403] {Default Queue} -> wl_compositor#2252.create_region(new id wl_region#2272) -[2618172.409] {Default Queue} -> wl_region#2271.subtract(0, 0, 2, 2) -[2618172.415] {Default Queue} -> wl_region#2271.add(0, 0, 0, 0) -[2618172.422] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618172.428] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618172.435] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618172.442] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) -[2618172.453] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) -[2618172.474] {Default Queue} -> wl_surface#2247.commit() -[2618172.518] {Default Queue} -> wl_shm#2257.create_pool(new id wl_shm_pool#2273, fd 363, 640) -[2618172.525] {Default Queue} -> wl_shm#2257.create_pool(new id wl_shm_pool#2274, fd 364, 640) -[2618172.529] {Default Queue} -> wl_shm_pool#2273.create_buffer(new id wl_buffer#2275, 0, 10, 16, 40, 0) -[2618172.534] {Default Queue} -> wl_shm_pool#2274.create_buffer(new id wl_buffer#2276, 0, 10, 16, 40, 0) -[2618172.543] {Default Queue} -> wl_compositor#2252.create_surface(new id wl_surface#2277) -[2618172.547] {Default Queue} -> wl_surface#2277.attach(wl_buffer#2275, 0, 0) -[2618172.552] {Default Queue} -> wl_surface#2277.commit() -[2618172.557] {Default Queue} -> wl_surface#2277.attach(wl_buffer#2275, 0, 0) -[2618172.561] {Default Queue} -> wl_surface#2277.commit() -[2618172.572] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2278) -[2618172.577] {Default Queue} -> wl_display#1.sync(new id wl_callback#2279) -[2618175.156] {Display Queue} wl_display#1.delete_id(2279) -[2618175.170] {Default Queue} wl_keyboard#2248.keymap(1, fd 359, 68213) -[2618175.175] {Default Queue} wl_keyboard#2248.enter(566, wl_surface#19, array[0]) -[2618175.182] {Default Queue} wl_keyboard#2248.modifiers(566, 0, 0, 16, 0) -[2618175.186] {Default Queue} discarded wl_shm#2255.format(875709016) -[2618175.191] {Default Queue} discarded wl_shm#2255.format(1) -[2618175.195] {Default Queue} discarded wl_shm#2255.format(0) -[2618175.199] {Default Queue} discarded wl_shm#2255.format(875708993) -[2618175.203] {Default Queue} discarded wl_shm#2256.format(875709016) -[2618175.207] {Default Queue} discarded wl_shm#2256.format(1) -[2618175.211] {Default Queue} discarded wl_shm#2256.format(0) -[2618175.216] {Default Queue} discarded wl_shm#2256.format(875708993) -[2618175.220] {Default Queue} discarded wl_shm#2257.format(875709016) -[2618175.224] {Default Queue} discarded wl_shm#2257.format(1) -[2618175.227] {Default Queue} discarded wl_shm#2257.format(0) -[2618175.231] {Default Queue} discarded wl_shm#2257.format(875708993) -[2618175.235] {Default Queue} wl_seat#2264.capabilities(7) -[2618175.240] {Default Queue} -> wl_seat#2264.get_keyboard(new id wl_keyboard#2280) -[2618175.244] {Default Queue} -> wl_seat#2264.get_pointer(new id wl_pointer#2281) -[2618175.250] {Default Queue} -> wl_data_device_manager#2260.get_data_device(new id wl_data_device#2282, wl_seat#2264) -[2618175.254] {Default Queue} -> zwp_primary_selection_device_manager_v1#2262.get_device(new id zwp_primary_selection_device_v1#2283, wl_seat#2264) -[2618175.262] {Default Queue} wl_output#2265.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618175.268] {Default Queue} wl_output#2265.mode(3, 1280, 800, 60000) -[2618175.272] {Default Queue} discarded wl_surface#3.enter(wl_output#2265) -[2618175.277] {Default Queue} discarded wl_surface#999.enter(wl_output#2265) -[2618175.281] {Default Queue} discarded wl_surface#1191.enter(wl_output#2265) -[2618175.286] {Default Queue} discarded wl_surface#1159.enter(wl_output#2265) -[2618175.290] {Default Queue} discarded wl_surface#1703.enter(wl_output#2265) -[2618175.294] {Default Queue} discarded wl_surface#2215.enter(wl_output#2265) -[2618175.298] {Default Queue} discarded wl_surface#423.enter(wl_output#2265) -[2618175.302] {Default Queue} discarded wl_surface#1447.enter(wl_output#2265) -[2618175.306] {Default Queue} discarded wl_surface#2023.enter(wl_output#2265) -[2618175.310] {Default Queue} discarded wl_surface#1639.enter(wl_output#2265) -[2618175.314] {Default Queue} discarded wl_surface#1319.enter(wl_output#2265) -[2618175.318] {Default Queue} discarded wl_surface#1127.enter(wl_output#2265) -[2618175.322] {Default Queue} discarded wl_surface#2151.enter(wl_output#2265) -[2618175.326] {Default Queue} discarded wl_surface#1063.enter(wl_output#2265) -[2618175.330] {Default Queue} discarded wl_surface#455.enter(wl_output#2265) -[2618175.334] {Default Queue} discarded wl_surface#1575.enter(wl_output#2265) -[2618175.337] {Default Queue} discarded wl_surface#1799.enter(wl_output#2265) -[2618175.347] {Default Queue} discarded wl_surface#1415.enter(wl_output#2265) -[2618175.355] {Default Queue} discarded wl_surface#1831.enter(wl_output#2265) -[2618175.359] {Default Queue} discarded wl_surface#903.enter(wl_output#2265) -[2618175.363] {Default Queue} discarded wl_surface#775.enter(wl_output#2265) -[2618175.367] {Default Queue} discarded wl_surface#1991.enter(wl_output#2265) -[2618175.372] {Default Queue} discarded wl_surface#1543.enter(wl_output#2265) -[2618175.376] {Default Queue} discarded wl_surface#135.enter(wl_output#2265) -[2618175.379] {Default Queue} discarded wl_surface#1287.enter(wl_output#2265) -[2618175.383] {Default Queue} discarded wl_surface#1031.enter(wl_output#2265) -[2618175.387] {Default Queue} discarded wl_surface#615.enter(wl_output#2265) -[2618175.391] {Default Queue} discarded wl_surface#231.enter(wl_output#2265) -[2618175.395] {Default Queue} discarded wl_surface#1863.enter(wl_output#2265) -[2618175.399] {Default Queue} discarded wl_surface#359.enter(wl_output#2265) -[2618175.403] {Default Queue} discarded wl_surface#583.enter(wl_output#2265) -[2618175.407] {Default Queue} discarded wl_surface#743.enter(wl_output#2265) -[2618175.410] {Default Queue} discarded wl_surface#967.enter(wl_output#2265) -[2618175.414] {Default Queue} discarded wl_surface#103.enter(wl_output#2265) -[2618175.418] {Default Queue} discarded wl_surface#327.enter(wl_output#2265) -[2618175.422] {Default Queue} discarded wl_surface#43.enter(wl_output#2265) -[2618175.427] {Default Queue} discarded wl_surface#807.enter(wl_output#2265) -[2618175.431] {Default Queue} discarded wl_surface#19.enter(wl_output#2265) -[2618175.435] {Default Queue} discarded wl_surface#1511.enter(wl_output#2265) -[2618175.439] {Default Queue} discarded wl_surface#199.enter(wl_output#2265) -[2618175.443] {Default Queue} discarded wl_surface#391.enter(wl_output#2265) -[2618175.447] {Default Queue} discarded wl_surface#935.enter(wl_output#2265) -[2618175.451] {Default Queue} discarded wl_surface#1671.enter(wl_output#2265) -[2618175.455] {Default Queue} discarded wl_surface#1351.enter(wl_output#2265) -[2618175.459] {Default Queue} discarded wl_surface#711.enter(wl_output#2265) -[2618175.463] {Default Queue} discarded wl_surface#1223.enter(wl_output#2265) -[2618175.467] {Default Queue} discarded wl_surface#1927.enter(wl_output#2265) -[2618175.470] {Default Queue} discarded wl_surface#871.enter(wl_output#2265) -[2618175.474] {Default Queue} discarded wl_surface#1895.enter(wl_output#2265) -[2618175.479] {Default Queue} discarded wl_surface#263.enter(wl_output#2265) -[2618175.483] {Default Queue} discarded wl_surface#551.enter(wl_output#2265) -[2618175.487] {Default Queue} discarded wl_surface#1735.enter(wl_output#2265) -[2618175.492] {Default Queue} discarded wl_surface#1479.enter(wl_output#2265) -[2618175.496] {Default Queue} discarded wl_surface#1772.enter(wl_output#2265) -[2618175.499] {Default Queue} discarded wl_surface#1959.enter(wl_output#2265) -[2618175.503] {Default Queue} discarded wl_surface#647.enter(wl_output#2265) -[2618175.507] {Default Queue} discarded wl_surface#2055.enter(wl_output#2265) -[2618175.511] {Default Queue} discarded wl_surface#71.enter(wl_output#2265) -[2618175.515] {Default Queue} discarded wl_surface#2183.enter(wl_output#2265) -[2618175.519] {Default Queue} discarded wl_surface#839.enter(wl_output#2265) -[2618175.523] {Default Queue} discarded wl_surface#1607.enter(wl_output#2265) -[2618175.527] {Default Queue} discarded wl_surface#1095.enter(wl_output#2265) -[2618175.531] {Default Queue} discarded wl_surface#1383.enter(wl_output#2265) -[2618175.535] {Default Queue} discarded wl_surface#487.enter(wl_output#2265) -[2618175.539] {Default Queue} discarded wl_surface#519.enter(wl_output#2265) -[2618175.543] {Default Queue} discarded wl_surface#2087.enter(wl_output#2265) -[2618175.547] {Default Queue} discarded wl_surface#295.enter(wl_output#2265) -[2618175.551] {Default Queue} discarded wl_surface#167.enter(wl_output#2265) -[2618175.555] {Default Queue} discarded wl_surface#1255.enter(wl_output#2265) -[2618175.559] {Default Queue} discarded wl_surface#679.enter(wl_output#2265) -[2618175.566] {Default Queue} discarded wl_surface#2119.enter(wl_output#2265) -[2618175.572] {Default Queue} wl_registry#2278.global(1, "wl_compositor", 6) -[2618175.577] {Default Queue} -> wl_registry#2278.bind(1, "wl_compositor", 1, new id [unknown]#2284) -[2618175.582] {Default Queue} wl_registry#2278.global(2, "wl_subcompositor", 1) -[2618175.587] {Default Queue} -> wl_registry#2278.bind(2, "wl_subcompositor", 1, new id [unknown]#2285) -[2618175.591] {Default Queue} wl_registry#2278.global(3, "xdg_wm_base", 6) -[2618175.596] {Default Queue} -> wl_registry#2278.bind(3, "xdg_wm_base", 1, new id [unknown]#2286) -[2618175.601] {Default Queue} wl_registry#2278.global(6, "zwlr_layer_shell_v1", 5) -[2618175.605] {Default Queue} wl_registry#2278.global(7, "ext_session_lock_manager_v1", 1) -[2618175.610] {Default Queue} wl_registry#2278.global(8, "wl_shm", 2) -[2618175.615] {Default Queue} -> wl_registry#2278.bind(8, "wl_shm", 1, new id [unknown]#2287) -[2618175.619] {Default Queue} -> wl_registry#2278.bind(8, "wl_shm", 1, new id [unknown]#2288) -[2618175.623] {Default Queue} -> wl_registry#2278.bind(8, "wl_shm", 1, new id [unknown]#2289) -[2618175.628] {Default Queue} wl_registry#2278.global(9, "zxdg_output_manager_v1", 3) -[2618175.632] {Default Queue} wl_registry#2278.global(10, "wp_fractional_scale_manager_v1", 1) -[2618175.636] {Default Queue} wl_registry#2278.global(11, "zwp_tablet_manager_v2", 1) -[2618175.641] {Default Queue} wl_registry#2278.global(12, "zwp_pointer_gestures_v1", 3) -[2618175.645] {Default Queue} wl_registry#2278.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618175.650] {Default Queue} -> wl_registry#2278.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2290) -[2618175.654] {Default Queue} wl_registry#2278.global(14, "zwp_pointer_constraints_v1", 1) -[2618175.661] {Default Queue} -> wl_registry#2278.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2291) -[2618175.665] {Default Queue} wl_registry#2278.global(15, "ext_idle_notifier_v1", 2) -[2618175.670] {Default Queue} wl_registry#2278.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618175.674] {Default Queue} wl_registry#2278.global(17, "wl_data_device_manager", 3) -[2618175.679] {Default Queue} -> wl_registry#2278.bind(17, "wl_data_device_manager", 2, new id [unknown]#2292) -[2618175.684] {Default Queue} -> wl_data_device_manager#2292.create_data_source(new id wl_data_source#2293) -[2618175.689] {Default Queue} -> wl_data_source#2293.offer("text/plain") -[2618175.693] {Default Queue} -> wl_data_source#2293.offer("text/plain;charset=utf-8") -[2618175.697] {Default Queue} -> wl_data_source#2293.offer("TEXT") -[2618175.702] {Default Queue} -> wl_data_source#2293.offer("STRING") -[2618175.706] {Default Queue} -> wl_data_source#2293.offer("UTF8_STRING") -[2618175.710] {Default Queue} wl_registry#2278.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618175.715] {Default Queue} -> wl_registry#2278.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2294) -[2618175.724] {Default Queue} -> zwp_primary_selection_device_manager_v1#2294.create_source(new id zwp_primary_selection_source_v1#2295) -[2618175.731] {Default Queue} -> zwp_primary_selection_source_v1#2295.offer("text/plain") -[2618175.736] {Default Queue} -> zwp_primary_selection_source_v1#2295.offer("text/plain;charset=utf-8") -[2618175.740] {Default Queue} -> zwp_primary_selection_source_v1#2295.offer("TEXT") -[2618175.745] {Default Queue} -> zwp_primary_selection_source_v1#2295.offer("STRING") -[2618175.749] {Default Queue} -> zwp_primary_selection_source_v1#2295.offer("UTF8_STRING") -[2618175.753] {Default Queue} wl_registry#2278.global(19, "zwlr_data_control_manager_v1", 2) -[2618175.757] {Default Queue} wl_registry#2278.global(20, "ext_data_control_manager_v1", 1) -[2618175.762] {Default Queue} wl_registry#2278.global(21, "wp_presentation", 2) -[2618175.766] {Default Queue} wl_registry#2278.global(22, "wp_security_context_manager_v1", 1) -[2618175.771] {Default Queue} wl_registry#2278.global(23, "zwp_text_input_manager_v3", 1) -[2618175.778] {Default Queue} wl_registry#2278.global(24, "zwp_input_method_manager_v2", 1) -[2618175.784] {Default Queue} wl_registry#2278.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618175.788] {Default Queue} wl_registry#2278.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618175.792] {Default Queue} wl_registry#2278.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618175.797] {Default Queue} wl_registry#2278.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618175.801] {Default Queue} wl_registry#2278.global(29, "ext_workspace_manager_v1", 1) -[2618175.806] {Default Queue} wl_registry#2278.global(30, "zwlr_output_manager_v1", 4) -[2618175.810] {Default Queue} wl_registry#2278.global(31, "zwlr_screencopy_manager_v1", 3) -[2618175.814] {Default Queue} wl_registry#2278.global(32, "wp_viewporter", 1) -[2618175.819] {Default Queue} wl_registry#2278.global(33, "zxdg_exporter_v2", 1) -[2618175.823] {Default Queue} wl_registry#2278.global(34, "zxdg_importer_v2", 1) -[2618175.829] {Default Queue} wl_registry#2278.global(36, "xdg_activation_v1", 1) -[2618175.833] {Default Queue} wl_registry#2278.global(37, "mutter_x11_interop", 1) -[2618175.837] {Default Queue} wl_registry#2278.global(38, "wl_seat", 9) -[2618175.842] {Default Queue} -> wl_registry#2278.bind(38, "wl_seat", 1, new id [unknown]#2296) -[2618175.846] {Default Queue} wl_registry#2278.global(39, "wp_cursor_shape_manager_v1", 2) -[2618175.851] {Default Queue} wl_registry#2278.global(40, "wl_output", 4) -[2618175.856] {Default Queue} -> wl_registry#2278.bind(40, "wl_output", 1, new id [unknown]#2297) -[2618175.868] {Default Queue} wl_callback#2279.done(0) -[2618175.872] {Default Queue} discarded wl_surface#2247.enter(wl_output#18) -[2618175.877] {Default Queue} discarded wl_surface#2247.enter(wl_output#57) -[2618175.881] {Default Queue} discarded wl_surface#2247.enter(wl_output#89) -[2618175.885] {Default Queue} discarded wl_surface#2247.enter(wl_output#121) -[2618175.889] {Default Queue} discarded wl_surface#2247.enter(wl_output#153) -[2618175.893] {Default Queue} discarded wl_surface#2247.enter(wl_output#185) -[2618175.897] {Default Queue} discarded wl_surface#2247.enter(wl_output#217) -[2618175.901] {Default Queue} discarded wl_surface#2247.enter(wl_output#249) -[2618175.905] {Default Queue} discarded wl_surface#2247.enter(wl_output#281) -[2618175.909] {Default Queue} discarded wl_surface#2247.enter(wl_output#313) -[2618175.913] {Default Queue} discarded wl_surface#2247.enter(wl_output#345) -[2618175.917] {Default Queue} discarded wl_surface#2247.enter(wl_output#377) -[2618175.921] {Default Queue} discarded wl_surface#2247.enter(wl_output#409) -[2618175.924] {Default Queue} discarded wl_surface#2247.enter(wl_output#441) -[2618175.928] {Default Queue} discarded wl_surface#2247.enter(wl_output#473) -[2618175.932] {Default Queue} discarded wl_surface#2247.enter(wl_output#505) -[2618175.936] {Default Queue} discarded wl_surface#2247.enter(wl_output#537) -[2618175.940] {Default Queue} discarded wl_surface#2247.enter(wl_output#569) -[2618175.944] {Default Queue} discarded wl_surface#2247.enter(wl_output#601) -[2618175.948] {Default Queue} discarded wl_surface#2247.enter(wl_output#633) -[2618175.952] {Default Queue} discarded wl_surface#2247.enter(wl_output#665) -[2618175.957] {Default Queue} discarded wl_surface#2247.enter(wl_output#697) -[2618175.960] {Default Queue} discarded wl_surface#2247.enter(wl_output#729) -[2618175.964] {Default Queue} discarded wl_surface#2247.enter(wl_output#761) -[2618175.968] {Default Queue} discarded wl_surface#2247.enter(wl_output#793) -[2618175.972] {Default Queue} discarded wl_surface#2247.enter(wl_output#825) -[2618175.976] {Default Queue} discarded wl_surface#2247.enter(wl_output#857) -[2618175.980] {Default Queue} discarded wl_surface#2247.enter(wl_output#889) -[2618175.984] {Default Queue} discarded wl_surface#2247.enter(wl_output#921) -[2618175.988] {Default Queue} discarded wl_surface#2247.enter(wl_output#953) -[2618175.992] {Default Queue} discarded wl_surface#2247.enter(wl_output#985) -[2618175.996] {Default Queue} discarded wl_surface#2247.enter(wl_output#1017) -[2618176.003] {Default Queue} discarded wl_surface#2247.enter(wl_output#1049) -[2618176.008] {Default Queue} discarded wl_surface#2247.enter(wl_output#1081) -[2618176.012] {Default Queue} discarded wl_surface#2247.enter(wl_output#1113) -[2618176.016] {Default Queue} discarded wl_surface#2247.enter(wl_output#1145) -[2618176.020] {Default Queue} discarded wl_surface#2247.enter(wl_output#1177) -[2618176.024] {Default Queue} discarded wl_surface#2247.enter(wl_output#1209) -[2618176.028] {Default Queue} discarded wl_surface#2247.enter(wl_output#1241) -[2618176.032] {Default Queue} discarded wl_surface#2247.enter(wl_output#1273) -[2618176.035] {Default Queue} discarded wl_surface#2247.enter(wl_output#1305) -[2618176.039] {Default Queue} discarded wl_surface#2247.enter(wl_output#1337) -[2618176.043] {Default Queue} discarded wl_surface#2247.enter(wl_output#1369) -[2618176.047] {Default Queue} discarded wl_surface#2247.enter(wl_output#1401) -[2618176.051] {Default Queue} discarded wl_surface#2247.enter(wl_output#1433) -[2618176.055] {Default Queue} discarded wl_surface#2247.enter(wl_output#1465) -[2618176.058] {Default Queue} discarded wl_surface#2247.enter(wl_output#1497) -[2618176.062] {Default Queue} discarded wl_surface#2247.enter(wl_output#1529) -[2618176.066] {Default Queue} discarded wl_surface#2247.enter(wl_output#1561) -[2618176.070] {Default Queue} discarded wl_surface#2247.enter(wl_output#1593) -[2618176.074] {Default Queue} discarded wl_surface#2247.enter(wl_output#1625) -[2618176.078] {Default Queue} discarded wl_surface#2247.enter(wl_output#1657) -[2618176.082] {Default Queue} discarded wl_surface#2247.enter(wl_output#1689) -[2618176.086] {Default Queue} discarded wl_surface#2247.enter(wl_output#1721) -[2618176.090] {Default Queue} discarded wl_surface#2247.enter(wl_output#1753) -[2618176.094] {Default Queue} discarded wl_surface#2247.enter(wl_output#1785) -[2618176.098] {Default Queue} discarded wl_surface#2247.enter(wl_output#1817) -[2618176.102] {Default Queue} discarded wl_surface#2247.enter(wl_output#1849) -[2618176.105] {Default Queue} discarded wl_surface#2247.enter(wl_output#1881) -[2618176.110] {Default Queue} discarded wl_surface#2247.enter(wl_output#1913) -[2618176.114] {Default Queue} discarded wl_surface#2247.enter(wl_output#1945) -[2618176.118] {Default Queue} discarded wl_surface#2247.enter(wl_output#1977) -[2618176.122] {Default Queue} discarded wl_surface#2247.enter(wl_output#2009) -[2618176.126] {Default Queue} discarded wl_surface#2247.enter(wl_output#2041) -[2618176.130] {Default Queue} discarded wl_surface#2247.enter(wl_output#2073) -[2618176.133] {Default Queue} discarded wl_surface#2247.enter(wl_output#2105) -[2618176.137] {Default Queue} discarded wl_surface#2247.enter(wl_output#2137) -[2618176.141] {Default Queue} discarded wl_surface#2247.enter(wl_output#2169) -[2618176.145] {Default Queue} discarded wl_surface#2247.enter(wl_output#2201) -[2618176.149] {Default Queue} discarded wl_surface#2247.enter(wl_output#2233) -[2618176.153] {Default Queue} discarded wl_surface#2247.enter(wl_output#2265) -[2618176.157] {Default Queue} -> wl_compositor#2252.create_surface(new id wl_surface#2279) -[2618176.162] {Default Queue} -> wl_subcompositor#2285.get_subsurface(new id wl_subsurface#2298, wl_surface#2279, wl_surface#2247) -[2618176.170] {Default Queue} -> wl_subsurface#2298.set_desync() -[2618176.174] {Default Queue} -> wl_subsurface#2298.set_position(-14, 0) -[2618176.179] {Default Queue} -> wl_subsurface#2298.place_above(wl_surface#2247) -[2618176.228] {Default Queue} -> wl_shm#2287.create_pool(new id wl_shm_pool#2299, fd 364, 128) -[2618176.235] {Default Queue} -> wl_shm#2287.create_pool(new id wl_shm_pool#2300, fd 365, 128) -[2618176.239] {Default Queue} -> wl_shm_pool#2299.create_buffer(new id wl_buffer#2301, 0, 16, 2, 64, 0) -[2618176.244] {Default Queue} -> wl_shm_pool#2300.create_buffer(new id wl_buffer#2302, 0, 16, 2, 64, 0) -[2618176.252] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618176.257] {Default Queue} -> wl_surface#2279.commit() -[2618176.262] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618176.271] {Default Queue} -> wl_surface#2279.commit() -[2618176.278] {Default Queue} -> wl_compositor#2284.create_region(new id wl_region#2303) -[2618176.282] {Default Queue} -> wl_compositor#2284.create_region(new id wl_region#2304) -[2618176.286] {Default Queue} -> wl_region#2303.subtract(0, 0, 30, 2) -[2618176.291] {Default Queue} -> wl_region#2303.add(0, 0, 0, 0) -[2618176.295] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618176.300] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618176.304] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618176.308] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618176.316] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618176.321] {Default Queue} -> wl_surface#2279.commit() -[2618176.357] {Default Queue} -> wl_shm#2289.create_pool(new id wl_shm_pool#2305, fd 368, 640) -[2618176.364] {Default Queue} -> wl_shm#2289.create_pool(new id wl_shm_pool#2306, fd 369, 640) -[2618176.369] {Default Queue} -> wl_shm_pool#2305.create_buffer(new id wl_buffer#2307, 0, 10, 16, 40, 0) -[2618176.373] {Default Queue} -> wl_shm_pool#2306.create_buffer(new id wl_buffer#2308, 0, 10, 16, 40, 0) -[2618176.381] {Default Queue} -> wl_compositor#2284.create_surface(new id wl_surface#2309) -[2618176.385] {Default Queue} -> wl_surface#2309.attach(wl_buffer#2307, 0, 0) -[2618176.390] {Default Queue} -> wl_surface#2309.commit() -[2618176.395] {Default Queue} -> wl_surface#2309.attach(wl_buffer#2307, 0, 0) -[2618176.399] {Default Queue} -> wl_surface#2309.commit() -[2618176.411] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618176.417] {Default Queue} -> wl_surface#2279.commit() -[2618176.424] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2310) -[2618176.428] {Default Queue} -> wl_display#1.sync(new id wl_callback#2311) -[2618179.208] {Display Queue} wl_display#1.delete_id(2311) -[2618179.224] {Default Queue} wl_keyboard#2280.keymap(1, fd 364, 68213) -[2618179.231] {Default Queue} wl_keyboard#2280.enter(566, wl_surface#19, array[0]) -[2618179.238] {Default Queue} wl_keyboard#2280.modifiers(566, 0, 0, 16, 0) -[2618179.243] {Default Queue} discarded wl_shm#2287.format(875709016) -[2618179.247] {Default Queue} discarded wl_shm#2287.format(1) -[2618179.251] {Default Queue} discarded wl_shm#2287.format(0) -[2618179.255] {Default Queue} discarded wl_shm#2287.format(875708993) -[2618179.259] {Default Queue} discarded wl_shm#2288.format(875709016) -[2618179.263] {Default Queue} discarded wl_shm#2288.format(1) -[2618179.267] {Default Queue} discarded wl_shm#2288.format(0) -[2618179.270] {Default Queue} discarded wl_shm#2288.format(875708993) -[2618179.274] {Default Queue} discarded wl_shm#2289.format(875709016) -[2618179.278] {Default Queue} discarded wl_shm#2289.format(1) -[2618179.282] {Default Queue} discarded wl_shm#2289.format(0) -[2618179.286] {Default Queue} discarded wl_shm#2289.format(875708993) -[2618179.290] {Default Queue} wl_seat#2296.capabilities(7) -[2618179.294] {Default Queue} -> wl_seat#2296.get_keyboard(new id wl_keyboard#2312) -[2618179.299] {Default Queue} -> wl_seat#2296.get_pointer(new id wl_pointer#2313) -[2618179.303] {Default Queue} -> wl_data_device_manager#2292.get_data_device(new id wl_data_device#2314, wl_seat#2296) -[2618179.308] {Default Queue} -> zwp_primary_selection_device_manager_v1#2294.get_device(new id zwp_primary_selection_device_v1#2315, wl_seat#2296) -[2618179.316] {Default Queue} wl_output#2297.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618179.322] {Default Queue} wl_output#2297.mode(3, 1280, 800, 60000) -[2618179.328] {Default Queue} discarded wl_surface#3.enter(wl_output#2297) -[2618179.334] {Default Queue} discarded wl_surface#999.enter(wl_output#2297) -[2618179.339] {Default Queue} discarded wl_surface#1191.enter(wl_output#2297) -[2618179.343] {Default Queue} discarded wl_surface#1159.enter(wl_output#2297) -[2618179.347] {Default Queue} discarded wl_surface#1703.enter(wl_output#2297) -[2618179.351] {Default Queue} discarded wl_surface#2215.enter(wl_output#2297) -[2618179.359] {Default Queue} discarded wl_surface#423.enter(wl_output#2297) -[2618179.368] {Default Queue} discarded wl_surface#1447.enter(wl_output#2297) -[2618179.372] {Default Queue} discarded wl_surface#2023.enter(wl_output#2297) -[2618179.376] {Default Queue} discarded wl_surface#1639.enter(wl_output#2297) -[2618179.380] {Default Queue} discarded wl_surface#1319.enter(wl_output#2297) -[2618179.384] {Default Queue} discarded wl_surface#1127.enter(wl_output#2297) -[2618179.388] {Default Queue} discarded wl_surface#2151.enter(wl_output#2297) -[2618179.392] {Default Queue} discarded wl_surface#1063.enter(wl_output#2297) -[2618179.396] {Default Queue} discarded wl_surface#455.enter(wl_output#2297) -[2618179.400] {Default Queue} discarded wl_surface#1575.enter(wl_output#2297) -[2618179.404] {Default Queue} discarded wl_surface#1799.enter(wl_output#2297) -[2618179.407] {Default Queue} discarded wl_surface#1415.enter(wl_output#2297) -[2618179.411] {Default Queue} discarded wl_surface#1831.enter(wl_output#2297) -[2618179.415] {Default Queue} discarded wl_surface#903.enter(wl_output#2297) -[2618179.419] {Default Queue} discarded wl_surface#775.enter(wl_output#2297) -[2618179.423] {Default Queue} discarded wl_surface#1991.enter(wl_output#2297) -[2618179.427] {Default Queue} discarded wl_surface#1543.enter(wl_output#2297) -[2618179.431] {Default Queue} discarded wl_surface#135.enter(wl_output#2297) -[2618179.435] {Default Queue} discarded wl_surface#1287.enter(wl_output#2297) -[2618179.438] {Default Queue} discarded wl_surface#1031.enter(wl_output#2297) -[2618179.442] {Default Queue} discarded wl_surface#615.enter(wl_output#2297) -[2618179.446] {Default Queue} discarded wl_surface#231.enter(wl_output#2297) -[2618179.450] {Default Queue} discarded wl_surface#1863.enter(wl_output#2297) -[2618179.454] {Default Queue} discarded wl_surface#359.enter(wl_output#2297) -[2618179.458] {Default Queue} discarded wl_surface#583.enter(wl_output#2297) -[2618179.462] {Default Queue} discarded wl_surface#743.enter(wl_output#2297) -[2618179.465] {Default Queue} discarded wl_surface#967.enter(wl_output#2297) -[2618179.470] {Default Queue} discarded wl_surface#103.enter(wl_output#2297) -[2618179.473] {Default Queue} discarded wl_surface#327.enter(wl_output#2297) -[2618179.477] {Default Queue} discarded wl_surface#43.enter(wl_output#2297) -[2618179.481] {Default Queue} discarded wl_surface#2247.enter(wl_output#2297) -[2618179.485] {Default Queue} discarded wl_surface#807.enter(wl_output#2297) -[2618179.489] {Default Queue} discarded wl_surface#19.enter(wl_output#2297) -[2618179.493] {Default Queue} discarded wl_surface#1511.enter(wl_output#2297) -[2618179.497] {Default Queue} discarded wl_surface#199.enter(wl_output#2297) -[2618179.501] {Default Queue} discarded wl_surface#391.enter(wl_output#2297) -[2618179.504] {Default Queue} discarded wl_surface#935.enter(wl_output#2297) -[2618179.509] {Default Queue} discarded wl_surface#1671.enter(wl_output#2297) -[2618179.513] {Default Queue} discarded wl_surface#1351.enter(wl_output#2297) -[2618179.516] {Default Queue} discarded wl_surface#711.enter(wl_output#2297) -[2618179.520] {Default Queue} discarded wl_surface#1223.enter(wl_output#2297) -[2618179.524] {Default Queue} discarded wl_surface#1927.enter(wl_output#2297) -[2618179.528] {Default Queue} discarded wl_surface#871.enter(wl_output#2297) -[2618179.532] {Default Queue} discarded wl_surface#1895.enter(wl_output#2297) -[2618179.536] {Default Queue} discarded wl_surface#263.enter(wl_output#2297) -[2618179.540] {Default Queue} discarded wl_surface#551.enter(wl_output#2297) -[2618179.543] {Default Queue} discarded wl_surface#1735.enter(wl_output#2297) -[2618179.547] {Default Queue} discarded wl_surface#1479.enter(wl_output#2297) -[2618179.551] {Default Queue} discarded wl_surface#1772.enter(wl_output#2297) -[2618179.555] {Default Queue} discarded wl_surface#1959.enter(wl_output#2297) -[2618179.559] {Default Queue} discarded wl_surface#647.enter(wl_output#2297) -[2618179.563] {Default Queue} discarded wl_surface#2055.enter(wl_output#2297) -[2618179.567] {Default Queue} discarded wl_surface#71.enter(wl_output#2297) -[2618179.574] {Default Queue} discarded wl_surface#2183.enter(wl_output#2297) -[2618179.580] {Default Queue} discarded wl_surface#839.enter(wl_output#2297) -[2618179.584] {Default Queue} discarded wl_surface#1607.enter(wl_output#2297) -[2618179.588] {Default Queue} discarded wl_surface#1095.enter(wl_output#2297) -[2618179.593] {Default Queue} discarded wl_surface#1383.enter(wl_output#2297) -[2618179.596] {Default Queue} discarded wl_surface#487.enter(wl_output#2297) -[2618179.600] {Default Queue} discarded wl_surface#519.enter(wl_output#2297) -[2618179.604] {Default Queue} discarded wl_surface#2087.enter(wl_output#2297) -[2618179.608] {Default Queue} discarded wl_surface#295.enter(wl_output#2297) -[2618179.612] {Default Queue} discarded wl_surface#167.enter(wl_output#2297) -[2618179.616] {Default Queue} discarded wl_surface#1255.enter(wl_output#2297) -[2618179.620] {Default Queue} discarded wl_surface#679.enter(wl_output#2297) -[2618179.623] {Default Queue} discarded wl_surface#2119.enter(wl_output#2297) -[2618179.627] {Default Queue} wl_registry#2310.global(1, "wl_compositor", 6) -[2618179.633] {Default Queue} -> wl_registry#2310.bind(1, "wl_compositor", 1, new id [unknown]#2316) -[2618179.638] {Default Queue} wl_registry#2310.global(2, "wl_subcompositor", 1) -[2618179.643] {Default Queue} -> wl_registry#2310.bind(2, "wl_subcompositor", 1, new id [unknown]#2317) -[2618179.648] {Default Queue} wl_registry#2310.global(3, "xdg_wm_base", 6) -[2618179.652] {Default Queue} -> wl_registry#2310.bind(3, "xdg_wm_base", 1, new id [unknown]#2318) -[2618179.657] {Default Queue} wl_registry#2310.global(6, "zwlr_layer_shell_v1", 5) -[2618179.661] {Default Queue} wl_registry#2310.global(7, "ext_session_lock_manager_v1", 1) -[2618179.666] {Default Queue} wl_registry#2310.global(8, "wl_shm", 2) -[2618179.670] {Default Queue} -> wl_registry#2310.bind(8, "wl_shm", 1, new id [unknown]#2319) -[2618179.677] {Default Queue} -> wl_registry#2310.bind(8, "wl_shm", 1, new id [unknown]#2320) -[2618179.681] {Default Queue} -> wl_registry#2310.bind(8, "wl_shm", 1, new id [unknown]#2321) -[2618179.686] {Default Queue} wl_registry#2310.global(9, "zxdg_output_manager_v1", 3) -[2618179.690] {Default Queue} wl_registry#2310.global(10, "wp_fractional_scale_manager_v1", 1) -[2618179.694] {Default Queue} wl_registry#2310.global(11, "zwp_tablet_manager_v2", 1) -[2618179.699] {Default Queue} wl_registry#2310.global(12, "zwp_pointer_gestures_v1", 3) -[2618179.703] {Default Queue} wl_registry#2310.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618179.707] {Default Queue} -> wl_registry#2310.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2322) -[2618179.712] {Default Queue} wl_registry#2310.global(14, "zwp_pointer_constraints_v1", 1) -[2618179.716] {Default Queue} -> wl_registry#2310.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2323) -[2618179.721] {Default Queue} wl_registry#2310.global(15, "ext_idle_notifier_v1", 2) -[2618179.725] {Default Queue} wl_registry#2310.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618179.729] {Default Queue} wl_registry#2310.global(17, "wl_data_device_manager", 3) -[2618179.734] {Default Queue} -> wl_registry#2310.bind(17, "wl_data_device_manager", 2, new id [unknown]#2324) -[2618179.739] {Default Queue} -> wl_data_device_manager#2324.create_data_source(new id wl_data_source#2325) -[2618179.743] {Default Queue} -> wl_data_source#2325.offer("text/plain") -[2618179.748] {Default Queue} -> wl_data_source#2325.offer("text/plain;charset=utf-8") -[2618179.752] {Default Queue} -> wl_data_source#2325.offer("TEXT") -[2618179.756] {Default Queue} -> wl_data_source#2325.offer("STRING") -[2618179.761] {Default Queue} -> wl_data_source#2325.offer("UTF8_STRING") -[2618179.765] {Default Queue} wl_registry#2310.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618179.770] {Default Queue} -> wl_registry#2310.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2326) -[2618179.778] {Default Queue} -> zwp_primary_selection_device_manager_v1#2326.create_source(new id zwp_primary_selection_source_v1#2327) -[2618179.789] {Default Queue} -> zwp_primary_selection_source_v1#2327.offer("text/plain") -[2618179.795] {Default Queue} -> zwp_primary_selection_source_v1#2327.offer("text/plain;charset=utf-8") -[2618179.800] {Default Queue} -> zwp_primary_selection_source_v1#2327.offer("TEXT") -[2618179.804] {Default Queue} -> zwp_primary_selection_source_v1#2327.offer("STRING") -[2618179.808] {Default Queue} -> zwp_primary_selection_source_v1#2327.offer("UTF8_STRING") -[2618179.812] {Default Queue} wl_registry#2310.global(19, "zwlr_data_control_manager_v1", 2) -[2618179.816] {Default Queue} wl_registry#2310.global(20, "ext_data_control_manager_v1", 1) -[2618179.821] {Default Queue} wl_registry#2310.global(21, "wp_presentation", 2) -[2618179.825] {Default Queue} wl_registry#2310.global(22, "wp_security_context_manager_v1", 1) -[2618179.830] {Default Queue} wl_registry#2310.global(23, "zwp_text_input_manager_v3", 1) -[2618179.834] {Default Queue} wl_registry#2310.global(24, "zwp_input_method_manager_v2", 1) -[2618179.839] {Default Queue} wl_registry#2310.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618179.843] {Default Queue} wl_registry#2310.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618179.847] {Default Queue} wl_registry#2310.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618179.852] {Default Queue} wl_registry#2310.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618179.856] {Default Queue} wl_registry#2310.global(29, "ext_workspace_manager_v1", 1) -[2618179.867] {Default Queue} wl_registry#2310.global(30, "zwlr_output_manager_v1", 4) -[2618179.872] {Default Queue} wl_registry#2310.global(31, "zwlr_screencopy_manager_v1", 3) -[2618179.877] {Default Queue} wl_registry#2310.global(32, "wp_viewporter", 1) -[2618179.881] {Default Queue} wl_registry#2310.global(33, "zxdg_exporter_v2", 1) -[2618179.885] {Default Queue} wl_registry#2310.global(34, "zxdg_importer_v2", 1) -[2618179.889] {Default Queue} wl_registry#2310.global(36, "xdg_activation_v1", 1) -[2618179.894] {Default Queue} wl_registry#2310.global(37, "mutter_x11_interop", 1) -[2618179.898] {Default Queue} wl_registry#2310.global(38, "wl_seat", 9) -[2618179.903] {Default Queue} -> wl_registry#2310.bind(38, "wl_seat", 1, new id [unknown]#2328) -[2618179.907] {Default Queue} wl_registry#2310.global(39, "wp_cursor_shape_manager_v1", 2) -[2618179.911] {Default Queue} wl_registry#2310.global(40, "wl_output", 4) -[2618179.916] {Default Queue} -> wl_registry#2310.bind(40, "wl_output", 1, new id [unknown]#2329) -[2618179.920] {Default Queue} wl_callback#2311.done(0) -[2618179.925] {Default Queue} discarded wl_surface#2279.enter(wl_output#18) -[2618179.929] {Default Queue} discarded wl_surface#2279.enter(wl_output#57) -[2618179.933] {Default Queue} discarded wl_surface#2279.enter(wl_output#89) -[2618179.937] {Default Queue} discarded wl_surface#2279.enter(wl_output#121) -[2618179.941] {Default Queue} discarded wl_surface#2279.enter(wl_output#153) -[2618179.945] {Default Queue} discarded wl_surface#2279.enter(wl_output#185) -[2618179.949] {Default Queue} discarded wl_surface#2279.enter(wl_output#217) -[2618179.953] {Default Queue} discarded wl_surface#2279.enter(wl_output#249) -[2618179.957] {Default Queue} discarded wl_surface#2279.enter(wl_output#281) -[2618179.961] {Default Queue} discarded wl_surface#2279.enter(wl_output#313) -[2618179.964] {Default Queue} discarded wl_surface#2279.enter(wl_output#345) -[2618179.968] {Default Queue} discarded wl_surface#2279.enter(wl_output#377) -[2618179.972] {Default Queue} discarded wl_surface#2279.enter(wl_output#409) -[2618179.976] {Default Queue} discarded wl_surface#2279.enter(wl_output#441) -[2618179.980] {Default Queue} discarded wl_surface#2279.enter(wl_output#473) -[2618179.984] {Default Queue} discarded wl_surface#2279.enter(wl_output#505) -[2618179.988] {Default Queue} discarded wl_surface#2279.enter(wl_output#537) -[2618179.991] {Default Queue} discarded wl_surface#2279.enter(wl_output#569) -[2618179.995] {Default Queue} discarded wl_surface#2279.enter(wl_output#601) -[2618179.999] {Default Queue} discarded wl_surface#2279.enter(wl_output#633) -[2618180.007] {Default Queue} discarded wl_surface#2279.enter(wl_output#665) -[2618180.012] {Default Queue} discarded wl_surface#2279.enter(wl_output#697) -[2618180.016] {Default Queue} discarded wl_surface#2279.enter(wl_output#729) -[2618180.020] {Default Queue} discarded wl_surface#2279.enter(wl_output#761) -[2618180.024] {Default Queue} discarded wl_surface#2279.enter(wl_output#793) -[2618180.028] {Default Queue} discarded wl_surface#2279.enter(wl_output#825) -[2618180.032] {Default Queue} discarded wl_surface#2279.enter(wl_output#857) -[2618180.036] {Default Queue} discarded wl_surface#2279.enter(wl_output#889) -[2618180.040] {Default Queue} discarded wl_surface#2279.enter(wl_output#921) -[2618180.044] {Default Queue} discarded wl_surface#2279.enter(wl_output#953) -[2618180.048] {Default Queue} discarded wl_surface#2279.enter(wl_output#985) -[2618180.052] {Default Queue} discarded wl_surface#2279.enter(wl_output#1017) -[2618180.055] {Default Queue} discarded wl_surface#2279.enter(wl_output#1049) -[2618180.059] {Default Queue} discarded wl_surface#2279.enter(wl_output#1081) -[2618180.063] {Default Queue} discarded wl_surface#2279.enter(wl_output#1113) -[2618180.067] {Default Queue} discarded wl_surface#2279.enter(wl_output#1145) -[2618180.071] {Default Queue} discarded wl_surface#2279.enter(wl_output#1177) -[2618180.075] {Default Queue} discarded wl_surface#2279.enter(wl_output#1209) -[2618180.079] {Default Queue} discarded wl_surface#2279.enter(wl_output#1241) -[2618180.084] {Default Queue} discarded wl_surface#2279.enter(wl_output#1273) -[2618180.088] {Default Queue} discarded wl_surface#2279.enter(wl_output#1305) -[2618180.092] {Default Queue} discarded wl_surface#2279.enter(wl_output#1337) -[2618180.096] {Default Queue} discarded wl_surface#2279.enter(wl_output#1369) -[2618180.100] {Default Queue} discarded wl_surface#2279.enter(wl_output#1401) -[2618180.104] {Default Queue} discarded wl_surface#2279.enter(wl_output#1433) -[2618180.108] {Default Queue} discarded wl_surface#2279.enter(wl_output#1465) -[2618180.112] {Default Queue} discarded wl_surface#2279.enter(wl_output#1497) -[2618180.116] {Default Queue} discarded wl_surface#2279.enter(wl_output#1529) -[2618180.120] {Default Queue} discarded wl_surface#2279.enter(wl_output#1561) -[2618180.124] {Default Queue} discarded wl_surface#2279.enter(wl_output#1593) -[2618180.128] {Default Queue} discarded wl_surface#2279.enter(wl_output#1625) -[2618180.132] {Default Queue} discarded wl_surface#2279.enter(wl_output#1657) -[2618180.136] {Default Queue} discarded wl_surface#2279.enter(wl_output#1689) -[2618180.140] {Default Queue} discarded wl_surface#2279.enter(wl_output#1721) -[2618180.144] {Default Queue} discarded wl_surface#2279.enter(wl_output#1753) -[2618180.147] {Default Queue} discarded wl_surface#2279.enter(wl_output#1785) -[2618180.151] {Default Queue} discarded wl_surface#2279.enter(wl_output#1817) -[2618180.155] {Default Queue} discarded wl_surface#2279.enter(wl_output#1849) -[2618180.159] {Default Queue} discarded wl_surface#2279.enter(wl_output#1881) -[2618180.163] {Default Queue} discarded wl_surface#2279.enter(wl_output#1913) -[2618180.167] {Default Queue} discarded wl_surface#2279.enter(wl_output#1945) -[2618180.171] {Default Queue} discarded wl_surface#2279.enter(wl_output#1977) -[2618180.175] {Default Queue} discarded wl_surface#2279.enter(wl_output#2009) -[2618180.178] {Default Queue} discarded wl_surface#2279.enter(wl_output#2041) -[2618180.182] {Default Queue} discarded wl_surface#2279.enter(wl_output#2073) -[2618180.186] {Default Queue} discarded wl_surface#2279.enter(wl_output#2105) -[2618180.190] {Default Queue} discarded wl_surface#2279.enter(wl_output#2137) -[2618180.194] {Default Queue} discarded wl_surface#2279.enter(wl_output#2169) -[2618180.198] {Default Queue} discarded wl_surface#2279.enter(wl_output#2201) -[2618180.202] {Default Queue} discarded wl_surface#2279.enter(wl_output#2233) -[2618180.207] {Default Queue} discarded wl_surface#2279.enter(wl_output#2265) -[2618180.211] {Default Queue} discarded wl_surface#2279.enter(wl_output#2297) -[2618180.215] {Default Queue} -> wl_compositor#2252.create_surface(new id wl_surface#2311) -[2618180.222] {Default Queue} -> wl_subcompositor#2317.get_subsurface(new id wl_subsurface#2330, wl_surface#2311, wl_surface#2247) -[2618180.232] {Default Queue} -> wl_subsurface#2330.set_desync() -[2618180.237] {Default Queue} -> wl_subsurface#2330.set_position(0, 0) -[2618180.241] {Default Queue} -> wl_subsurface#2330.place_above(wl_surface#2247) -[2618180.287] {Default Queue} -> wl_shm#2319.create_pool(new id wl_shm_pool#2331, fd 369, 16) -[2618180.295] {Default Queue} -> wl_shm#2319.create_pool(new id wl_shm_pool#2332, fd 370, 16) -[2618180.300] {Default Queue} -> wl_shm_pool#2331.create_buffer(new id wl_buffer#2333, 0, 2, 2, 8, 0) -[2618180.304] {Default Queue} -> wl_shm_pool#2332.create_buffer(new id wl_buffer#2334, 0, 2, 2, 8, 0) -[2618180.313] {Default Queue} -> wl_surface#2311.attach(wl_buffer#2333, 0, 0) -[2618180.317] {Default Queue} -> wl_surface#2311.commit() -[2618180.323] {Default Queue} -> wl_surface#2311.attach(wl_buffer#2333, 0, 0) -[2618180.328] {Default Queue} -> wl_surface#2311.commit() -[2618180.332] {Default Queue} -> wl_compositor#2316.create_region(new id wl_region#2335) -[2618180.336] {Default Queue} -> wl_compositor#2316.create_region(new id wl_region#2336) -[2618180.341] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 2) -[2618180.345] {Default Queue} -> wl_region#2335.add(0, 0, 0, 0) -[2618180.349] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618180.354] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618180.358] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618180.362] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618180.372] {Default Queue} -> wl_surface#2311.attach(wl_buffer#2333, 0, 0) -[2618180.376] {Default Queue} -> wl_surface#2311.commit() -[2618180.412] {Default Queue} -> wl_shm#2321.create_pool(new id wl_shm_pool#2337, fd 373, 640) -[2618180.419] {Default Queue} -> wl_shm#2321.create_pool(new id wl_shm_pool#2338, fd 374, 640) -[2618180.424] {Default Queue} -> wl_shm_pool#2337.create_buffer(new id wl_buffer#2339, 0, 10, 16, 40, 0) -[2618180.429] {Default Queue} -> wl_shm_pool#2338.create_buffer(new id wl_buffer#2340, 0, 10, 16, 40, 0) -[2618180.436] {Default Queue} -> wl_compositor#2316.create_surface(new id wl_surface#2341) -[2618180.441] {Default Queue} -> wl_surface#2341.attach(wl_buffer#2339, 0, 0) -[2618180.445] {Default Queue} -> wl_surface#2341.commit() -[2618180.451] {Default Queue} -> wl_surface#2341.attach(wl_buffer#2339, 0, 0) -[2618180.455] {Default Queue} -> wl_surface#2341.commit() -[2618180.467] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618180.473] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618180.478] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618180.485] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) -[2618180.490] {Default Queue} -> wl_subsurface#2298.set_position(-14, 0) -[2618180.495] {Default Queue} -> wl_region#2303.subtract(0, 0, 30, 2) -[2618180.499] {Default Queue} -> wl_region#2303.add(0, 0, 0, 0) -[2618180.504] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618180.508] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618180.513] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618180.523] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) -[2618180.532] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) -[2618180.539] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618180.546] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618180.562] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) -[2618180.570] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) -[2618180.576] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618180.582] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618180.595] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) -[2618180.600] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) -[2618180.609] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618180.616] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618180.622] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) -[2618180.626] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) -[2618180.631] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618180.635] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618180.641] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) -[2618180.645] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) -[2618180.650] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618180.654] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618180.674] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) -[2618180.680] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) -[2618180.684] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618180.688] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618180.694] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) -[2618180.698] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) -[2618180.702] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618180.706] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618180.711] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) -[2618180.716] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) -[2618180.720] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618180.724] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618180.729] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) -[2618180.733] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) -[2618180.738] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618180.742] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618180.754] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) -[2618180.759] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) -[2618180.764] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618180.768] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618180.772] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) -[2618180.777] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) -[2618180.781] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618180.785] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618180.789] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) -[2618180.794] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) -[2618180.798] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618180.802] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618180.807] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) -[2618180.812] {Default Queue} -> wl_region#2303.add(14, 0, 2, 2) -[2618180.816] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618180.820] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618180.825] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618180.830] {Default Queue} -> wl_surface#2279.commit() -[2618180.836] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618180.840] {Default Queue} -> wl_surface#2279.commit() -[2618180.845] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 2) -[2618180.849] {Default Queue} -> wl_subsurface#2330.set_position(0, 20) -[2618180.853] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618180.858] {Default Queue} -> wl_region#2335.add(0, 0, 0, 0) -[2618180.864] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618180.869] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618180.877] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618180.884] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618180.889] {Default Queue} -> wl_region#2335.add(0, 0, 2, 0) -[2618180.896] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618180.902] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618180.912] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618180.918] {Default Queue} -> wl_region#2335.add(0, 0, 2, 0) -[2618180.922] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618180.927] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618180.931] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618180.936] {Default Queue} -> wl_region#2335.add(0, 0, 2, 0) -[2618180.941] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618180.945] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618180.950] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618180.954] {Default Queue} -> wl_region#2335.add(0, 0, 2, 0) -[2618180.958] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618180.962] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618180.967] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618180.971] {Default Queue} -> wl_region#2335.add(0, 0, 2, 0) -[2618180.976] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618180.979] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618180.984] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618180.989] {Default Queue} -> wl_region#2335.add(0, 0, 2, 0) -[2618180.993] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618180.997] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.006] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.011] {Default Queue} -> wl_region#2335.add(0, 0, 2, 0) -[2618181.015] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.019] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.024] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.028] {Default Queue} -> wl_region#2335.add(0, 0, 2, 0) -[2618181.032] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.036] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.041] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.045] {Default Queue} -> wl_region#2335.add(0, 0, 2, 0) -[2618181.049] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.054] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.058] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.063] {Default Queue} -> wl_region#2335.add(0, 0, 2, 0) -[2618181.067] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.071] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.075] {Default Queue} -> wl_surface#2311.attach(wl_buffer#2333, 0, 0) -[2618181.080] {Default Queue} -> wl_surface#2311.commit() -[2618181.086] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618181.091] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618181.099] {Default Queue} -> wl_region#2175.subtract(0, 0, 2, 2) -[2618181.105] {Default Queue} -> wl_subsurface#2170.set_position(3, 3) -[2618181.109] {Default Queue} -> wl_region#2175.subtract(0, 0, 5, 5) -[2618181.114] {Default Queue} -> wl_region#2175.add(0, 0, 0, 0) -[2618181.118] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) -[2618181.122] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) -[2618181.126] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618181.132] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618181.136] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618181.140] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618181.144] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) -[2618181.148] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) -[2618181.155] {Default Queue} -> wl_region#2175.subtract(0, 0, 5, 5) -[2618181.162] {Default Queue} -> wl_region#2175.add(0, 0, 0, 0) -[2618181.168] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) -[2618181.172] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) -[2618181.178] {Default Queue} -> wl_surface#2151.attach(wl_buffer#2173, 0, 0) -[2618181.182] {Default Queue} -> wl_surface#2151.commit() -[2618181.190] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618181.194] {Default Queue} -> wl_surface#2279.commit() -[2618181.199] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 2) -[2618181.203] {Default Queue} -> wl_subsurface#2330.set_position(0, 20) -[2618181.207] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.211] {Default Queue} -> wl_region#2335.add(0, 0, 2, 0) -[2618181.216] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.220] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.225] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618181.230] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.235] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618181.239] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.251] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.262] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.267] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618181.271] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.276] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.280] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.285] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618181.289] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.293] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.298] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.302] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618181.306] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.311] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.316] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.320] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618181.324] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.328] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.334] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.340] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618181.351] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.358] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.373] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.381] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618181.388] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.394] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.400] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.406] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618181.412] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.417] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.423] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.429] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618181.435] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.439] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.445] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.451] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618181.457] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.463] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.483] {Default Queue} -> wl_surface#2311.attach(wl_buffer#2333, 0, 0) -[2618181.496] {Default Queue} -> wl_surface#2311.commit() -[2618181.507] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618181.513] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618181.522] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618181.527] {Default Queue} -> wl_surface#2279.commit() -[2618181.531] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 2) -[2618181.536] {Default Queue} -> wl_subsurface#2330.set_position(0, 20) -[2618181.540] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.546] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618181.552] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.558] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.564] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618181.574] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.581] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618181.587] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.592] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.603] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.607] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618181.612] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.618] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.625] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.631] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618181.637] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.641] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.646] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.650] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618181.655] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.661] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.668] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.674] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618181.681] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.686] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.692] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.697] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618181.701] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.705] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.787] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.793] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618181.798] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.803] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.812] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618181.817] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618181.826] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.831] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618181.836] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.840] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.845] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.849] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618181.853] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.857] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.873] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.877] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618181.881] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.886] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.895] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618181.902] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618181.906] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618181.910] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618181.915] {Default Queue} -> wl_surface#2311.attach(wl_buffer#2333, 0, 0) -[2618181.920] {Default Queue} -> wl_surface#2311.commit() -[2618181.926] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618181.931] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618181.940] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2342) -[2618181.945] {Default Queue} -> wl_display#1.sync(new id wl_callback#2343) -[2618184.241] {Default Queue} wl_keyboard#2312.keymap(1, fd 369, 68213) -[2618184.253] {Default Queue} wl_keyboard#2312.enter(566, wl_surface#19, array[0]) -[2618184.260] {Default Queue} wl_keyboard#2312.modifiers(566, 0, 0, 16, 0) -[2618184.265] {Default Queue} discarded wl_shm#2319.format(875709016) -[2618184.270] {Default Queue} discarded wl_shm#2319.format(1) -[2618184.274] {Default Queue} discarded wl_shm#2319.format(0) -[2618184.278] {Default Queue} discarded wl_shm#2319.format(875708993) -[2618184.282] {Default Queue} discarded wl_shm#2320.format(875709016) -[2618184.286] {Default Queue} discarded wl_shm#2320.format(1) -[2618184.290] {Default Queue} discarded wl_shm#2320.format(0) -[2618184.294] {Default Queue} discarded wl_shm#2320.format(875708993) -[2618184.298] {Default Queue} discarded wl_shm#2321.format(875709016) -[2618184.302] {Default Queue} discarded wl_shm#2321.format(1) -[2618184.306] {Default Queue} discarded wl_shm#2321.format(0) -[2618184.310] {Default Queue} discarded wl_shm#2321.format(875708993) -[2618184.314] {Default Queue} wl_seat#2328.capabilities(7) -[2618184.319] {Default Queue} -> wl_seat#2328.get_keyboard(new id wl_keyboard#2344) -[2618184.323] {Default Queue} -> wl_seat#2328.get_pointer(new id wl_pointer#2345) -[2618184.328] {Default Queue} -> wl_data_device_manager#2324.get_data_device(new id wl_data_device#2346, wl_seat#2328) -[2618184.333] {Default Queue} -> zwp_primary_selection_device_manager_v1#2326.get_device(new id zwp_primary_selection_device_v1#2347, wl_seat#2328) -[2618184.343] {Default Queue} wl_output#2329.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618184.348] {Default Queue} wl_output#2329.mode(3, 1280, 800, 60000) -[2618184.352] {Default Queue} discarded wl_surface#3.enter(wl_output#2329) -[2618184.356] {Default Queue} discarded wl_surface#999.enter(wl_output#2329) -[2618184.360] {Default Queue} discarded wl_surface#1191.enter(wl_output#2329) -[2618184.364] {Default Queue} discarded wl_surface#1159.enter(wl_output#2329) -[2618184.368] {Default Queue} discarded wl_surface#1703.enter(wl_output#2329) -[2618184.372] {Default Queue} discarded wl_surface#2215.enter(wl_output#2329) -[2618184.376] {Default Queue} discarded wl_surface#423.enter(wl_output#2329) -[2618184.380] {Default Queue} discarded wl_surface#1447.enter(wl_output#2329) -[2618184.384] {Default Queue} discarded wl_surface#2023.enter(wl_output#2329) -[2618184.388] {Default Queue} discarded wl_surface#1639.enter(wl_output#2329) -[2618184.391] {Default Queue} discarded wl_surface#1319.enter(wl_output#2329) -[2618184.395] {Default Queue} discarded wl_surface#1127.enter(wl_output#2329) -[2618184.399] {Default Queue} discarded wl_surface#2151.enter(wl_output#2329) -[2618184.403] {Default Queue} discarded wl_surface#1063.enter(wl_output#2329) -[2618184.408] {Default Queue} discarded wl_surface#455.enter(wl_output#2329) -[2618184.412] {Default Queue} discarded wl_surface#1575.enter(wl_output#2329) -[2618184.416] {Default Queue} discarded wl_surface#1799.enter(wl_output#2329) -[2618184.419] {Default Queue} discarded wl_surface#1415.enter(wl_output#2329) -[2618184.423] {Default Queue} discarded wl_surface#2279.enter(wl_output#2329) -[2618184.428] {Default Queue} discarded wl_surface#1831.enter(wl_output#2329) -[2618184.432] {Default Queue} discarded wl_surface#903.enter(wl_output#2329) -[2618184.441] {Default Queue} discarded wl_surface#775.enter(wl_output#2329) -[2618184.447] {Default Queue} discarded wl_surface#1991.enter(wl_output#2329) -[2618184.452] {Default Queue} discarded wl_surface#1543.enter(wl_output#2329) -[2618184.456] {Default Queue} discarded wl_surface#135.enter(wl_output#2329) -[2618184.460] {Default Queue} discarded wl_surface#1287.enter(wl_output#2329) -[2618184.464] {Default Queue} discarded wl_surface#1031.enter(wl_output#2329) -[2618184.468] {Default Queue} discarded wl_surface#615.enter(wl_output#2329) -[2618184.472] {Default Queue} discarded wl_surface#231.enter(wl_output#2329) -[2618184.476] {Default Queue} discarded wl_surface#1863.enter(wl_output#2329) -[2618184.479] {Default Queue} discarded wl_surface#359.enter(wl_output#2329) -[2618184.483] {Default Queue} discarded wl_surface#583.enter(wl_output#2329) -[2618184.487] {Default Queue} discarded wl_surface#743.enter(wl_output#2329) -[2618184.492] {Default Queue} discarded wl_surface#967.enter(wl_output#2329) -[2618184.495] {Default Queue} discarded wl_surface#103.enter(wl_output#2329) -[2618184.499] {Default Queue} discarded wl_surface#327.enter(wl_output#2329) -[2618184.503] {Default Queue} discarded wl_surface#43.enter(wl_output#2329) -[2618184.507] {Default Queue} discarded wl_surface#2247.enter(wl_output#2329) -[2618184.511] {Default Queue} discarded wl_surface#807.enter(wl_output#2329) -[2618184.515] {Default Queue} discarded wl_surface#19.enter(wl_output#2329) -[2618184.519] {Default Queue} discarded wl_surface#1511.enter(wl_output#2329) -[2618184.523] {Default Queue} discarded wl_surface#199.enter(wl_output#2329) -[2618184.527] {Default Queue} discarded wl_surface#391.enter(wl_output#2329) -[2618184.532] {Default Queue} discarded wl_surface#935.enter(wl_output#2329) -[2618184.536] {Default Queue} discarded wl_surface#1671.enter(wl_output#2329) -[2618184.540] {Default Queue} discarded wl_surface#1351.enter(wl_output#2329) -[2618184.543] {Default Queue} discarded wl_surface#711.enter(wl_output#2329) -[2618184.547] {Default Queue} discarded wl_surface#1223.enter(wl_output#2329) -[2618184.551] {Default Queue} discarded wl_surface#1927.enter(wl_output#2329) -[2618184.555] {Default Queue} discarded wl_surface#871.enter(wl_output#2329) -[2618184.559] {Default Queue} discarded wl_surface#1895.enter(wl_output#2329) -[2618184.563] {Default Queue} discarded wl_surface#263.enter(wl_output#2329) -[2618184.567] {Default Queue} discarded wl_surface#551.enter(wl_output#2329) -[2618184.571] {Default Queue} discarded wl_surface#1735.enter(wl_output#2329) -[2618184.575] {Default Queue} discarded wl_surface#1479.enter(wl_output#2329) -[2618184.579] {Default Queue} discarded wl_surface#1772.enter(wl_output#2329) -[2618184.584] {Default Queue} discarded wl_surface#1959.enter(wl_output#2329) -[2618184.590] {Default Queue} discarded wl_surface#647.enter(wl_output#2329) -[2618184.596] {Default Queue} discarded wl_surface#2055.enter(wl_output#2329) -[2618184.603] {Default Queue} discarded wl_surface#71.enter(wl_output#2329) -[2618184.609] {Default Queue} discarded wl_surface#2183.enter(wl_output#2329) -[2618184.615] {Default Queue} discarded wl_surface#839.enter(wl_output#2329) -[2618184.622] {Default Queue} discarded wl_surface#1607.enter(wl_output#2329) -[2618184.628] {Default Queue} discarded wl_surface#1095.enter(wl_output#2329) -[2618184.634] {Default Queue} discarded wl_surface#1383.enter(wl_output#2329) -[2618184.639] {Default Queue} discarded wl_surface#487.enter(wl_output#2329) -[2618184.644] {Default Queue} discarded wl_surface#519.enter(wl_output#2329) -[2618184.648] {Default Queue} discarded wl_surface#2087.enter(wl_output#2329) -[2618184.652] {Default Queue} discarded wl_surface#295.enter(wl_output#2329) -[2618184.655] {Default Queue} discarded wl_surface#167.enter(wl_output#2329) -[2618184.659] {Default Queue} discarded wl_surface#1255.enter(wl_output#2329) -[2618184.664] {Default Queue} discarded wl_surface#679.enter(wl_output#2329) -[2618184.668] {Default Queue} discarded wl_surface#2119.enter(wl_output#2329) -[2618184.671] {Default Queue} discarded wl_surface#2311.enter(wl_output#18) -[2618184.679] {Default Queue} discarded wl_surface#2311.enter(wl_output#57) -[2618184.685] {Default Queue} discarded wl_surface#2311.enter(wl_output#89) -[2618184.690] {Default Queue} discarded wl_surface#2311.enter(wl_output#121) -[2618184.694] {Default Queue} discarded wl_surface#2311.enter(wl_output#153) -[2618184.697] {Default Queue} discarded wl_surface#2311.enter(wl_output#185) -[2618184.701] {Default Queue} discarded wl_surface#2311.enter(wl_output#217) -[2618184.705] {Default Queue} discarded wl_surface#2311.enter(wl_output#249) -[2618184.709] {Default Queue} discarded wl_surface#2311.enter(wl_output#281) -[2618184.713] {Default Queue} discarded wl_surface#2311.enter(wl_output#313) -[2618184.717] {Default Queue} discarded wl_surface#2311.enter(wl_output#345) -[2618184.720] {Default Queue} discarded wl_surface#2311.enter(wl_output#377) -[2618184.724] {Default Queue} discarded wl_surface#2311.enter(wl_output#409) -[2618184.728] {Default Queue} discarded wl_surface#2311.enter(wl_output#441) -[2618184.732] {Default Queue} discarded wl_surface#2311.enter(wl_output#473) -[2618184.736] {Default Queue} discarded wl_surface#2311.enter(wl_output#505) -[2618184.740] {Default Queue} discarded wl_surface#2311.enter(wl_output#537) -[2618184.744] {Default Queue} discarded wl_surface#2311.enter(wl_output#569) -[2618184.748] {Default Queue} discarded wl_surface#2311.enter(wl_output#601) -[2618184.752] {Default Queue} discarded wl_surface#2311.enter(wl_output#633) -[2618184.756] {Default Queue} discarded wl_surface#2311.enter(wl_output#665) -[2618184.760] {Default Queue} discarded wl_surface#2311.enter(wl_output#697) -[2618184.764] {Default Queue} discarded wl_surface#2311.enter(wl_output#729) -[2618184.768] {Default Queue} discarded wl_surface#2311.enter(wl_output#761) -[2618184.772] {Default Queue} discarded wl_surface#2311.enter(wl_output#793) -[2618184.776] {Default Queue} discarded wl_surface#2311.enter(wl_output#825) -[2618184.780] {Default Queue} discarded wl_surface#2311.enter(wl_output#857) -[2618184.784] {Default Queue} discarded wl_surface#2311.enter(wl_output#889) -[2618184.788] {Default Queue} discarded wl_surface#2311.enter(wl_output#921) -[2618184.792] {Default Queue} discarded wl_surface#2311.enter(wl_output#953) -[2618184.796] {Default Queue} discarded wl_surface#2311.enter(wl_output#985) -[2618184.800] {Default Queue} discarded wl_surface#2311.enter(wl_output#1017) -[2618184.803] {Default Queue} discarded wl_surface#2311.enter(wl_output#1049) -[2618184.807] {Default Queue} discarded wl_surface#2311.enter(wl_output#1081) -[2618184.811] {Default Queue} discarded wl_surface#2311.enter(wl_output#1113) -[2618184.815] {Default Queue} discarded wl_surface#2311.enter(wl_output#1145) -[2618184.819] {Default Queue} discarded wl_surface#2311.enter(wl_output#1177) -[2618184.823] {Default Queue} discarded wl_surface#2311.enter(wl_output#1209) -[2618184.827] {Default Queue} discarded wl_surface#2311.enter(wl_output#1241) -[2618184.831] {Default Queue} discarded wl_surface#2311.enter(wl_output#1273) -[2618184.835] {Default Queue} discarded wl_surface#2311.enter(wl_output#1305) -[2618184.839] {Default Queue} discarded wl_surface#2311.enter(wl_output#1337) -[2618184.844] {Default Queue} discarded wl_surface#2311.enter(wl_output#1369) -[2618184.852] {Default Queue} discarded wl_surface#2311.enter(wl_output#1401) -[2618184.860] {Default Queue} discarded wl_surface#2311.enter(wl_output#1433) -[2618184.872] {Default Queue} discarded wl_surface#2311.enter(wl_output#1465) -[2618184.876] {Default Queue} discarded wl_surface#2311.enter(wl_output#1497) -[2618184.880] {Default Queue} discarded wl_surface#2311.enter(wl_output#1529) -[2618184.885] {Default Queue} discarded wl_surface#2311.enter(wl_output#1561) -[2618184.891] {Default Queue} discarded wl_surface#2311.enter(wl_output#1593) -[2618184.896] {Default Queue} discarded wl_surface#2311.enter(wl_output#1625) -[2618184.901] {Default Queue} discarded wl_surface#2311.enter(wl_output#1657) -[2618184.907] {Default Queue} discarded wl_surface#2311.enter(wl_output#1689) -[2618184.912] {Default Queue} discarded wl_surface#2311.enter(wl_output#1721) -[2618184.923] {Default Queue} discarded wl_surface#2311.enter(wl_output#1753) -[2618184.930] {Default Queue} discarded wl_surface#2311.enter(wl_output#1785) -[2618184.933] {Default Queue} discarded wl_surface#2311.enter(wl_output#1817) -[2618184.937] {Default Queue} discarded wl_surface#2311.enter(wl_output#1849) -[2618184.941] {Default Queue} discarded wl_surface#2311.enter(wl_output#1881) -[2618184.945] {Default Queue} discarded wl_surface#2311.enter(wl_output#1913) -[2618184.949] {Default Queue} discarded wl_surface#2311.enter(wl_output#1945) -[2618184.953] {Default Queue} discarded wl_surface#2311.enter(wl_output#1977) -[2618184.957] {Default Queue} discarded wl_surface#2311.enter(wl_output#2009) -[2618184.961] {Default Queue} discarded wl_surface#2311.enter(wl_output#2041) -[2618184.965] {Default Queue} discarded wl_surface#2311.enter(wl_output#2073) -[2618184.969] {Default Queue} discarded wl_surface#2311.enter(wl_output#2105) -[2618184.972] {Default Queue} discarded wl_surface#2311.enter(wl_output#2137) -[2618184.976] {Default Queue} discarded wl_surface#2311.enter(wl_output#2169) -[2618184.980] {Default Queue} discarded wl_surface#2311.enter(wl_output#2201) -[2618184.984] {Default Queue} discarded wl_surface#2311.enter(wl_output#2233) -[2618184.988] {Default Queue} discarded wl_surface#2311.enter(wl_output#2265) -[2618184.992] {Default Queue} discarded wl_surface#2311.enter(wl_output#2297) -[2618184.996] {Default Queue} discarded wl_surface#2311.enter(wl_output#2329) -[2618190.766] {Display Queue} wl_display#1.delete_id(2343) -[2618190.781] {Default Queue} wl_registry#2342.global(1, "wl_compositor", 6) -[2618190.788] {Default Queue} -> wl_registry#2342.bind(1, "wl_compositor", 1, new id [unknown]#2348) -[2618190.794] {Default Queue} wl_registry#2342.global(2, "wl_subcompositor", 1) -[2618190.799] {Default Queue} -> wl_registry#2342.bind(2, "wl_subcompositor", 1, new id [unknown]#2349) -[2618190.803] {Default Queue} wl_registry#2342.global(3, "xdg_wm_base", 6) -[2618190.808] {Default Queue} -> wl_registry#2342.bind(3, "xdg_wm_base", 1, new id [unknown]#2350) -[2618190.814] {Default Queue} wl_registry#2342.global(6, "zwlr_layer_shell_v1", 5) -[2618190.818] {Default Queue} wl_registry#2342.global(7, "ext_session_lock_manager_v1", 1) -[2618190.822] {Default Queue} wl_registry#2342.global(8, "wl_shm", 2) -[2618190.827] {Default Queue} -> wl_registry#2342.bind(8, "wl_shm", 1, new id [unknown]#2351) -[2618190.832] {Default Queue} -> wl_registry#2342.bind(8, "wl_shm", 1, new id [unknown]#2352) -[2618190.836] {Default Queue} -> wl_registry#2342.bind(8, "wl_shm", 1, new id [unknown]#2353) -[2618190.841] {Default Queue} wl_registry#2342.global(9, "zxdg_output_manager_v1", 3) -[2618190.845] {Default Queue} wl_registry#2342.global(10, "wp_fractional_scale_manager_v1", 1) -[2618190.849] {Default Queue} wl_registry#2342.global(11, "zwp_tablet_manager_v2", 1) -[2618190.854] {Default Queue} wl_registry#2342.global(12, "zwp_pointer_gestures_v1", 3) -[2618190.858] {Default Queue} wl_registry#2342.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618190.872] {Default Queue} -> wl_registry#2342.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2354) -[2618190.877] {Default Queue} wl_registry#2342.global(14, "zwp_pointer_constraints_v1", 1) -[2618190.882] {Default Queue} -> wl_registry#2342.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2355) -[2618190.887] {Default Queue} wl_registry#2342.global(15, "ext_idle_notifier_v1", 2) -[2618190.891] {Default Queue} wl_registry#2342.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618190.896] {Default Queue} wl_registry#2342.global(17, "wl_data_device_manager", 3) -[2618190.901] {Default Queue} -> wl_registry#2342.bind(17, "wl_data_device_manager", 2, new id [unknown]#2356) -[2618190.905] {Default Queue} -> wl_data_device_manager#2356.create_data_source(new id wl_data_source#2357) -[2618190.910] {Default Queue} -> wl_data_source#2357.offer("text/plain") -[2618190.914] {Default Queue} -> wl_data_source#2357.offer("text/plain;charset=utf-8") -[2618190.919] {Default Queue} -> wl_data_source#2357.offer("TEXT") -[2618190.928] {Default Queue} -> wl_data_source#2357.offer("STRING") -[2618190.935] {Default Queue} -> wl_data_source#2357.offer("UTF8_STRING") -[2618190.940] {Default Queue} wl_registry#2342.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618190.945] {Default Queue} -> wl_registry#2342.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2358) -[2618190.954] {Default Queue} -> zwp_primary_selection_device_manager_v1#2358.create_source(new id zwp_primary_selection_source_v1#2359) -[2618190.961] {Default Queue} -> zwp_primary_selection_source_v1#2359.offer("text/plain") -[2618190.966] {Default Queue} -> zwp_primary_selection_source_v1#2359.offer("text/plain;charset=utf-8") -[2618190.970] {Default Queue} -> zwp_primary_selection_source_v1#2359.offer("TEXT") -[2618190.974] {Default Queue} -> zwp_primary_selection_source_v1#2359.offer("STRING") -[2618190.978] {Default Queue} -> zwp_primary_selection_source_v1#2359.offer("UTF8_STRING") -[2618190.983] {Default Queue} wl_registry#2342.global(19, "zwlr_data_control_manager_v1", 2) -[2618190.987] {Default Queue} wl_registry#2342.global(20, "ext_data_control_manager_v1", 1) -[2618190.991] {Default Queue} wl_registry#2342.global(21, "wp_presentation", 2) -[2618190.996] {Default Queue} wl_registry#2342.global(22, "wp_security_context_manager_v1", 1) -[2618191.001] {Default Queue} wl_registry#2342.global(23, "zwp_text_input_manager_v3", 1) -[2618191.005] {Default Queue} wl_registry#2342.global(24, "zwp_input_method_manager_v2", 1) -[2618191.010] {Default Queue} wl_registry#2342.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618191.014] {Default Queue} wl_registry#2342.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618191.019] {Default Queue} wl_registry#2342.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618191.024] {Default Queue} wl_registry#2342.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618191.028] {Default Queue} wl_registry#2342.global(29, "ext_workspace_manager_v1", 1) -[2618191.033] {Default Queue} wl_registry#2342.global(30, "zwlr_output_manager_v1", 4) -[2618191.037] {Default Queue} wl_registry#2342.global(31, "zwlr_screencopy_manager_v1", 3) -[2618191.041] {Default Queue} wl_registry#2342.global(32, "wp_viewporter", 1) -[2618191.046] {Default Queue} wl_registry#2342.global(33, "zxdg_exporter_v2", 1) -[2618191.050] {Default Queue} wl_registry#2342.global(34, "zxdg_importer_v2", 1) -[2618191.055] {Default Queue} wl_registry#2342.global(36, "xdg_activation_v1", 1) -[2618191.060] {Default Queue} wl_registry#2342.global(37, "mutter_x11_interop", 1) -[2618191.064] {Default Queue} wl_registry#2342.global(38, "wl_seat", 9) -[2618191.069] {Default Queue} -> wl_registry#2342.bind(38, "wl_seat", 1, new id [unknown]#2360) -[2618191.074] {Default Queue} wl_registry#2342.global(39, "wp_cursor_shape_manager_v1", 2) -[2618191.078] {Default Queue} wl_registry#2342.global(40, "wl_output", 4) -[2618191.083] {Default Queue} -> wl_registry#2342.bind(40, "wl_output", 1, new id [unknown]#2361) -[2618191.087] {Default Queue} wl_callback#2343.done(0) -[2618191.092] {Default Queue} -> wl_compositor#2092.create_surface(new id wl_surface#2343) -[2618191.097] {Default Queue} -> wl_subcompositor#2349.get_subsurface(new id wl_subsurface#2362, wl_surface#2343, wl_surface#2087) -[2618191.105] {Default Queue} -> wl_subsurface#2362.set_desync() -[2618191.109] {Default Queue} -> wl_subsurface#2362.set_position(0, 0) -[2618191.114] {Default Queue} -> wl_subsurface#2362.place_above(wl_surface#2087) -[2618191.167] {Default Queue} -> wl_shm#2351.create_pool(new id wl_shm_pool#2363, fd 374, 16) -[2618191.174] {Default Queue} -> wl_shm#2351.create_pool(new id wl_shm_pool#2364, fd 375, 16) -[2618191.179] {Default Queue} -> wl_shm_pool#2363.create_buffer(new id wl_buffer#2365, 0, 2, 2, 8, 0) -[2618191.184] {Default Queue} -> wl_shm_pool#2364.create_buffer(new id wl_buffer#2366, 0, 2, 2, 8, 0) -[2618191.193] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) -[2618191.197] {Default Queue} -> wl_surface#2343.commit() -[2618191.203] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) -[2618191.211] {Default Queue} -> wl_surface#2343.commit() -[2618191.217] {Default Queue} -> wl_compositor#2348.create_region(new id wl_region#2367) -[2618191.221] {Default Queue} -> wl_compositor#2348.create_region(new id wl_region#2368) -[2618191.225] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) -[2618191.230] {Default Queue} -> wl_region#2367.add(0, 0, 0, 0) -[2618191.234] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618191.238] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618191.242] {Default Queue} -> wl_surface#2343.damage(0, 0, 2, 2) -[2618191.247] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) -[2618191.256] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) -[2618191.260] {Default Queue} -> wl_surface#2343.commit() -[2618191.293] {Default Queue} -> wl_shm#2353.create_pool(new id wl_shm_pool#2369, fd 378, 640) -[2618191.300] {Default Queue} -> wl_shm#2353.create_pool(new id wl_shm_pool#2370, fd 379, 640) -[2618191.306] {Default Queue} -> wl_shm_pool#2369.create_buffer(new id wl_buffer#2371, 0, 10, 16, 40, 0) -[2618191.310] {Default Queue} -> wl_shm_pool#2370.create_buffer(new id wl_buffer#2372, 0, 10, 16, 40, 0) -[2618191.318] {Default Queue} -> wl_compositor#2348.create_surface(new id wl_surface#2373) -[2618191.322] {Default Queue} -> wl_surface#2373.attach(wl_buffer#2371, 0, 0) -[2618191.326] {Default Queue} -> wl_surface#2373.commit() -[2618191.331] {Default Queue} -> wl_surface#2373.attach(wl_buffer#2371, 0, 0) -[2618191.336] {Default Queue} -> wl_surface#2373.commit() -[2618191.341] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) -[2618191.346] {Default Queue} -> wl_surface#2343.damage(0, 0, 2, 2) -[2618191.351] {Default Queue} -> wl_surface#2343.damage(0, 0, 2, 2) -[2618191.358] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2374) -[2618191.364] {Default Queue} -> wl_display#1.sync(new id wl_callback#2375) -[2618191.381] {Default Queue} wl_keyboard#2344.keymap(1, fd 374, 68213) -[2618191.387] {Default Queue} wl_keyboard#2344.enter(566, wl_surface#19, array[0]) -[2618191.392] {Default Queue} wl_keyboard#2344.modifiers(566, 0, 0, 16, 0) -[2618194.227] {Display Queue} wl_display#1.delete_id(2375) -[2618194.247] {Default Queue} discarded wl_shm#2351.format(875709016) -[2618194.252] {Default Queue} discarded wl_shm#2351.format(1) -[2618194.256] {Default Queue} discarded wl_shm#2351.format(0) -[2618194.260] {Default Queue} discarded wl_shm#2351.format(875708993) -[2618194.264] {Default Queue} discarded wl_shm#2352.format(875709016) -[2618194.268] {Default Queue} discarded wl_shm#2352.format(1) -[2618194.272] {Default Queue} discarded wl_shm#2352.format(0) -[2618194.276] {Default Queue} discarded wl_shm#2352.format(875708993) -[2618194.280] {Default Queue} discarded wl_shm#2353.format(875709016) -[2618194.283] {Default Queue} discarded wl_shm#2353.format(1) -[2618194.287] {Default Queue} discarded wl_shm#2353.format(0) -[2618194.291] {Default Queue} discarded wl_shm#2353.format(875708993) -[2618194.295] {Default Queue} wl_seat#2360.capabilities(7) -[2618194.300] {Default Queue} -> wl_seat#2360.get_keyboard(new id wl_keyboard#2376) -[2618194.304] {Default Queue} -> wl_seat#2360.get_pointer(new id wl_pointer#2377) -[2618194.309] {Default Queue} -> wl_data_device_manager#2356.get_data_device(new id wl_data_device#2378, wl_seat#2360) -[2618194.314] {Default Queue} -> zwp_primary_selection_device_manager_v1#2358.get_device(new id zwp_primary_selection_device_v1#2379, wl_seat#2360) -[2618194.322] {Default Queue} wl_output#2361.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618194.327] {Default Queue} wl_output#2361.mode(3, 1280, 800, 60000) -[2618194.332] {Default Queue} discarded wl_surface#3.enter(wl_output#2361) -[2618194.336] {Default Queue} discarded wl_surface#999.enter(wl_output#2361) -[2618194.340] {Default Queue} discarded wl_surface#1191.enter(wl_output#2361) -[2618194.345] {Default Queue} discarded wl_surface#1159.enter(wl_output#2361) -[2618194.349] {Default Queue} discarded wl_surface#1703.enter(wl_output#2361) -[2618194.358] {Default Queue} discarded wl_surface#2215.enter(wl_output#2361) -[2618194.365] {Default Queue} discarded wl_surface#423.enter(wl_output#2361) -[2618194.369] {Default Queue} discarded wl_surface#1447.enter(wl_output#2361) -[2618194.373] {Default Queue} discarded wl_surface#2023.enter(wl_output#2361) -[2618194.377] {Default Queue} discarded wl_surface#1639.enter(wl_output#2361) -[2618194.381] {Default Queue} discarded wl_surface#1319.enter(wl_output#2361) -[2618194.385] {Default Queue} discarded wl_surface#1127.enter(wl_output#2361) -[2618194.389] {Default Queue} discarded wl_surface#2151.enter(wl_output#2361) -[2618194.393] {Default Queue} discarded wl_surface#1063.enter(wl_output#2361) -[2618194.397] {Default Queue} discarded wl_surface#455.enter(wl_output#2361) -[2618194.401] {Default Queue} discarded wl_surface#1575.enter(wl_output#2361) -[2618194.405] {Default Queue} discarded wl_surface#1799.enter(wl_output#2361) -[2618194.409] {Default Queue} discarded wl_surface#1415.enter(wl_output#2361) -[2618194.413] {Default Queue} discarded wl_surface#2279.enter(wl_output#2361) -[2618194.417] {Default Queue} discarded wl_surface#1831.enter(wl_output#2361) -[2618194.421] {Default Queue} discarded wl_surface#903.enter(wl_output#2361) -[2618194.425] {Default Queue} discarded wl_surface#775.enter(wl_output#2361) -[2618194.428] {Default Queue} discarded wl_surface#1991.enter(wl_output#2361) -[2618194.432] {Default Queue} discarded wl_surface#1543.enter(wl_output#2361) -[2618194.436] {Default Queue} discarded wl_surface#135.enter(wl_output#2361) -[2618194.440] {Default Queue} discarded wl_surface#1287.enter(wl_output#2361) -[2618194.444] {Default Queue} discarded wl_surface#1031.enter(wl_output#2361) -[2618194.448] {Default Queue} discarded wl_surface#615.enter(wl_output#2361) -[2618194.452] {Default Queue} discarded wl_surface#231.enter(wl_output#2361) -[2618194.456] {Default Queue} discarded wl_surface#1863.enter(wl_output#2361) -[2618194.460] {Default Queue} discarded wl_surface#359.enter(wl_output#2361) -[2618194.464] {Default Queue} discarded wl_surface#583.enter(wl_output#2361) -[2618194.468] {Default Queue} discarded wl_surface#743.enter(wl_output#2361) -[2618194.472] {Default Queue} discarded wl_surface#967.enter(wl_output#2361) -[2618194.476] {Default Queue} discarded wl_surface#103.enter(wl_output#2361) -[2618194.480] {Default Queue} discarded wl_surface#327.enter(wl_output#2361) -[2618194.484] {Default Queue} discarded wl_surface#43.enter(wl_output#2361) -[2618194.489] {Default Queue} discarded wl_surface#2247.enter(wl_output#2361) -[2618194.493] {Default Queue} discarded wl_surface#807.enter(wl_output#2361) -[2618194.497] {Default Queue} discarded wl_surface#19.enter(wl_output#2361) -[2618194.501] {Default Queue} discarded wl_surface#1511.enter(wl_output#2361) -[2618194.505] {Default Queue} discarded wl_surface#199.enter(wl_output#2361) -[2618194.509] {Default Queue} discarded wl_surface#391.enter(wl_output#2361) -[2618194.513] {Default Queue} discarded wl_surface#935.enter(wl_output#2361) -[2618194.517] {Default Queue} discarded wl_surface#1671.enter(wl_output#2361) -[2618194.521] {Default Queue} discarded wl_surface#1351.enter(wl_output#2361) -[2618194.525] {Default Queue} discarded wl_surface#711.enter(wl_output#2361) -[2618194.529] {Default Queue} discarded wl_surface#1223.enter(wl_output#2361) -[2618194.533] {Default Queue} discarded wl_surface#1927.enter(wl_output#2361) -[2618194.537] {Default Queue} discarded wl_surface#871.enter(wl_output#2361) -[2618194.540] {Default Queue} discarded wl_surface#1895.enter(wl_output#2361) -[2618194.544] {Default Queue} discarded wl_surface#263.enter(wl_output#2361) -[2618194.549] {Default Queue} discarded wl_surface#551.enter(wl_output#2361) -[2618194.553] {Default Queue} discarded wl_surface#1735.enter(wl_output#2361) -[2618194.556] {Default Queue} discarded wl_surface#1479.enter(wl_output#2361) -[2618194.560] {Default Queue} discarded wl_surface#1772.enter(wl_output#2361) -[2618194.564] {Default Queue} discarded wl_surface#1959.enter(wl_output#2361) -[2618194.568] {Default Queue} discarded wl_surface#647.enter(wl_output#2361) -[2618194.576] {Default Queue} discarded wl_surface#2055.enter(wl_output#2361) -[2618194.582] {Default Queue} discarded wl_surface#71.enter(wl_output#2361) -[2618194.586] {Default Queue} discarded wl_surface#2183.enter(wl_output#2361) -[2618194.590] {Default Queue} discarded wl_surface#839.enter(wl_output#2361) -[2618194.594] {Default Queue} discarded wl_surface#1607.enter(wl_output#2361) -[2618194.599] {Default Queue} discarded wl_surface#1095.enter(wl_output#2361) -[2618194.603] {Default Queue} discarded wl_surface#1383.enter(wl_output#2361) -[2618194.607] {Default Queue} discarded wl_surface#487.enter(wl_output#2361) -[2618194.611] {Default Queue} discarded wl_surface#2311.enter(wl_output#2361) -[2618194.615] {Default Queue} discarded wl_surface#519.enter(wl_output#2361) -[2618194.619] {Default Queue} discarded wl_surface#2087.enter(wl_output#2361) -[2618194.623] {Default Queue} discarded wl_surface#295.enter(wl_output#2361) -[2618194.626] {Default Queue} discarded wl_surface#167.enter(wl_output#2361) -[2618194.630] {Default Queue} discarded wl_surface#1255.enter(wl_output#2361) -[2618194.634] {Default Queue} discarded wl_surface#679.enter(wl_output#2361) -[2618194.638] {Default Queue} discarded wl_surface#2119.enter(wl_output#2361) -[2618194.642] {Default Queue} wl_registry#2374.global(1, "wl_compositor", 6) -[2618194.647] {Default Queue} -> wl_registry#2374.bind(1, "wl_compositor", 1, new id [unknown]#2380) -[2618194.652] {Default Queue} wl_registry#2374.global(2, "wl_subcompositor", 1) -[2618194.657] {Default Queue} -> wl_registry#2374.bind(2, "wl_subcompositor", 1, new id [unknown]#2381) -[2618194.662] {Default Queue} wl_registry#2374.global(3, "xdg_wm_base", 6) -[2618194.666] {Default Queue} -> wl_registry#2374.bind(3, "xdg_wm_base", 1, new id [unknown]#2382) -[2618194.671] {Default Queue} wl_registry#2374.global(6, "zwlr_layer_shell_v1", 5) -[2618194.675] {Default Queue} wl_registry#2374.global(7, "ext_session_lock_manager_v1", 1) -[2618194.679] {Default Queue} wl_registry#2374.global(8, "wl_shm", 2) -[2618194.684] {Default Queue} -> wl_registry#2374.bind(8, "wl_shm", 1, new id [unknown]#2383) -[2618194.689] {Default Queue} -> wl_registry#2374.bind(8, "wl_shm", 1, new id [unknown]#2384) -[2618194.693] {Default Queue} -> wl_registry#2374.bind(8, "wl_shm", 1, new id [unknown]#2385) -[2618194.697] {Default Queue} wl_registry#2374.global(9, "zxdg_output_manager_v1", 3) -[2618194.702] {Default Queue} wl_registry#2374.global(10, "wp_fractional_scale_manager_v1", 1) -[2618194.707] {Default Queue} wl_registry#2374.global(11, "zwp_tablet_manager_v2", 1) -[2618194.711] {Default Queue} wl_registry#2374.global(12, "zwp_pointer_gestures_v1", 3) -[2618194.715] {Default Queue} wl_registry#2374.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618194.720] {Default Queue} -> wl_registry#2374.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2386) -[2618194.724] {Default Queue} wl_registry#2374.global(14, "zwp_pointer_constraints_v1", 1) -[2618194.729] {Default Queue} -> wl_registry#2374.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2387) -[2618194.733] {Default Queue} wl_registry#2374.global(15, "ext_idle_notifier_v1", 2) -[2618194.737] {Default Queue} wl_registry#2374.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618194.742] {Default Queue} wl_registry#2374.global(17, "wl_data_device_manager", 3) -[2618194.747] {Default Queue} -> wl_registry#2374.bind(17, "wl_data_device_manager", 2, new id [unknown]#2388) -[2618194.753] {Default Queue} -> wl_data_device_manager#2388.create_data_source(new id wl_data_source#2389) -[2618194.758] {Default Queue} -> wl_data_source#2389.offer("text/plain") -[2618194.765] {Default Queue} -> wl_data_source#2389.offer("text/plain;charset=utf-8") -[2618194.771] {Default Queue} -> wl_data_source#2389.offer("TEXT") -[2618194.778] {Default Queue} -> wl_data_source#2389.offer("STRING") -[2618194.784] {Default Queue} -> wl_data_source#2389.offer("UTF8_STRING") -[2618194.791] {Default Queue} wl_registry#2374.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618194.803] {Default Queue} -> wl_registry#2374.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2390) -[2618194.816] {Default Queue} -> zwp_primary_selection_device_manager_v1#2390.create_source(new id zwp_primary_selection_source_v1#2391) -[2618194.824] {Default Queue} -> zwp_primary_selection_source_v1#2391.offer("text/plain") -[2618194.828] {Default Queue} -> zwp_primary_selection_source_v1#2391.offer("text/plain;charset=utf-8") -[2618194.832] {Default Queue} -> zwp_primary_selection_source_v1#2391.offer("TEXT") -[2618194.836] {Default Queue} -> zwp_primary_selection_source_v1#2391.offer("STRING") -[2618194.840] {Default Queue} -> zwp_primary_selection_source_v1#2391.offer("UTF8_STRING") -[2618194.845] {Default Queue} wl_registry#2374.global(19, "zwlr_data_control_manager_v1", 2) -[2618194.849] {Default Queue} wl_registry#2374.global(20, "ext_data_control_manager_v1", 1) -[2618194.854] {Default Queue} wl_registry#2374.global(21, "wp_presentation", 2) -[2618194.858] {Default Queue} wl_registry#2374.global(22, "wp_security_context_manager_v1", 1) -[2618194.868] {Default Queue} wl_registry#2374.global(23, "zwp_text_input_manager_v3", 1) -[2618194.873] {Default Queue} wl_registry#2374.global(24, "zwp_input_method_manager_v2", 1) -[2618194.877] {Default Queue} wl_registry#2374.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618194.882] {Default Queue} wl_registry#2374.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618194.886] {Default Queue} wl_registry#2374.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618194.890] {Default Queue} wl_registry#2374.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618194.895] {Default Queue} wl_registry#2374.global(29, "ext_workspace_manager_v1", 1) -[2618194.899] {Default Queue} wl_registry#2374.global(30, "zwlr_output_manager_v1", 4) -[2618194.903] {Default Queue} wl_registry#2374.global(31, "zwlr_screencopy_manager_v1", 3) -[2618194.908] {Default Queue} wl_registry#2374.global(32, "wp_viewporter", 1) -[2618194.912] {Default Queue} wl_registry#2374.global(33, "zxdg_exporter_v2", 1) -[2618194.917] {Default Queue} wl_registry#2374.global(34, "zxdg_importer_v2", 1) -[2618194.922] {Default Queue} wl_registry#2374.global(36, "xdg_activation_v1", 1) -[2618194.926] {Default Queue} wl_registry#2374.global(37, "mutter_x11_interop", 1) -[2618194.930] {Default Queue} wl_registry#2374.global(38, "wl_seat", 9) -[2618194.935] {Default Queue} -> wl_registry#2374.bind(38, "wl_seat", 1, new id [unknown]#2392) -[2618194.939] {Default Queue} wl_registry#2374.global(39, "wp_cursor_shape_manager_v1", 2) -[2618194.943] {Default Queue} wl_registry#2374.global(40, "wl_output", 4) -[2618194.948] {Default Queue} -> wl_registry#2374.bind(40, "wl_output", 1, new id [unknown]#2393) -[2618194.952] {Default Queue} wl_callback#2375.done(0) -[2618194.957] {Default Queue} discarded wl_surface#2343.enter(wl_output#18) -[2618194.961] {Default Queue} discarded wl_surface#2343.enter(wl_output#57) -[2618194.965] {Default Queue} discarded wl_surface#2343.enter(wl_output#89) -[2618194.969] {Default Queue} discarded wl_surface#2343.enter(wl_output#121) -[2618194.973] {Default Queue} discarded wl_surface#2343.enter(wl_output#153) -[2618194.978] {Default Queue} discarded wl_surface#2343.enter(wl_output#185) -[2618194.982] {Default Queue} discarded wl_surface#2343.enter(wl_output#217) -[2618194.985] {Default Queue} discarded wl_surface#2343.enter(wl_output#249) -[2618194.989] {Default Queue} discarded wl_surface#2343.enter(wl_output#281) -[2618194.993] {Default Queue} discarded wl_surface#2343.enter(wl_output#313) -[2618194.997] {Default Queue} discarded wl_surface#2343.enter(wl_output#345) -[2618195.001] {Default Queue} discarded wl_surface#2343.enter(wl_output#377) -[2618195.006] {Default Queue} discarded wl_surface#2343.enter(wl_output#409) -[2618195.010] {Default Queue} discarded wl_surface#2343.enter(wl_output#441) -[2618195.014] {Default Queue} discarded wl_surface#2343.enter(wl_output#473) -[2618195.018] {Default Queue} discarded wl_surface#2343.enter(wl_output#505) -[2618195.022] {Default Queue} discarded wl_surface#2343.enter(wl_output#537) -[2618195.029] {Default Queue} discarded wl_surface#2343.enter(wl_output#569) -[2618195.035] {Default Queue} discarded wl_surface#2343.enter(wl_output#601) -[2618195.038] {Default Queue} discarded wl_surface#2343.enter(wl_output#633) -[2618195.043] {Default Queue} discarded wl_surface#2343.enter(wl_output#665) -[2618195.047] {Default Queue} discarded wl_surface#2343.enter(wl_output#697) -[2618195.051] {Default Queue} discarded wl_surface#2343.enter(wl_output#729) -[2618195.055] {Default Queue} discarded wl_surface#2343.enter(wl_output#761) -[2618195.060] {Default Queue} discarded wl_surface#2343.enter(wl_output#793) -[2618195.064] {Default Queue} discarded wl_surface#2343.enter(wl_output#825) -[2618195.068] {Default Queue} discarded wl_surface#2343.enter(wl_output#857) -[2618195.072] {Default Queue} discarded wl_surface#2343.enter(wl_output#889) -[2618195.076] {Default Queue} discarded wl_surface#2343.enter(wl_output#921) -[2618195.080] {Default Queue} discarded wl_surface#2343.enter(wl_output#953) -[2618195.083] {Default Queue} discarded wl_surface#2343.enter(wl_output#985) -[2618195.087] {Default Queue} discarded wl_surface#2343.enter(wl_output#1017) -[2618195.091] {Default Queue} discarded wl_surface#2343.enter(wl_output#1049) -[2618195.095] {Default Queue} discarded wl_surface#2343.enter(wl_output#1081) -[2618195.099] {Default Queue} discarded wl_surface#2343.enter(wl_output#1113) -[2618195.103] {Default Queue} discarded wl_surface#2343.enter(wl_output#1145) -[2618195.107] {Default Queue} discarded wl_surface#2343.enter(wl_output#1177) -[2618195.111] {Default Queue} discarded wl_surface#2343.enter(wl_output#1209) -[2618195.115] {Default Queue} discarded wl_surface#2343.enter(wl_output#1241) -[2618195.120] {Default Queue} discarded wl_surface#2343.enter(wl_output#1273) -[2618195.124] {Default Queue} discarded wl_surface#2343.enter(wl_output#1305) -[2618195.128] {Default Queue} discarded wl_surface#2343.enter(wl_output#1337) -[2618195.131] {Default Queue} discarded wl_surface#2343.enter(wl_output#1369) -[2618195.136] {Default Queue} discarded wl_surface#2343.enter(wl_output#1401) -[2618195.141] {Default Queue} discarded wl_surface#2343.enter(wl_output#1433) -[2618195.144] {Default Queue} discarded wl_surface#2343.enter(wl_output#1465) -[2618195.148] {Default Queue} discarded wl_surface#2343.enter(wl_output#1497) -[2618195.152] {Default Queue} discarded wl_surface#2343.enter(wl_output#1529) -[2618195.156] {Default Queue} discarded wl_surface#2343.enter(wl_output#1561) -[2618195.161] {Default Queue} discarded wl_surface#2343.enter(wl_output#1593) -[2618195.164] {Default Queue} discarded wl_surface#2343.enter(wl_output#1625) -[2618195.168] {Default Queue} discarded wl_surface#2343.enter(wl_output#1657) -[2618195.172] {Default Queue} discarded wl_surface#2343.enter(wl_output#1689) -[2618195.176] {Default Queue} discarded wl_surface#2343.enter(wl_output#1721) -[2618195.180] {Default Queue} discarded wl_surface#2343.enter(wl_output#1753) -[2618195.184] {Default Queue} discarded wl_surface#2343.enter(wl_output#1785) -[2618195.188] {Default Queue} discarded wl_surface#2343.enter(wl_output#1817) -[2618195.192] {Default Queue} discarded wl_surface#2343.enter(wl_output#1849) -[2618195.196] {Default Queue} discarded wl_surface#2343.enter(wl_output#1881) -[2618195.200] {Default Queue} discarded wl_surface#2343.enter(wl_output#1913) -[2618195.204] {Default Queue} discarded wl_surface#2343.enter(wl_output#1945) -[2618195.208] {Default Queue} discarded wl_surface#2343.enter(wl_output#1977) -[2618195.212] {Default Queue} discarded wl_surface#2343.enter(wl_output#2009) -[2618195.216] {Default Queue} discarded wl_surface#2343.enter(wl_output#2041) -[2618195.220] {Default Queue} discarded wl_surface#2343.enter(wl_output#2073) -[2618195.224] {Default Queue} discarded wl_surface#2343.enter(wl_output#2105) -[2618195.228] {Default Queue} discarded wl_surface#2343.enter(wl_output#2137) -[2618195.232] {Default Queue} discarded wl_surface#2343.enter(wl_output#2169) -[2618195.236] {Default Queue} discarded wl_surface#2343.enter(wl_output#2201) -[2618195.240] {Default Queue} discarded wl_surface#2343.enter(wl_output#2233) -[2618195.247] {Default Queue} discarded wl_surface#2343.enter(wl_output#2265) -[2618195.253] {Default Queue} discarded wl_surface#2343.enter(wl_output#2297) -[2618195.257] {Default Queue} discarded wl_surface#2343.enter(wl_output#2329) -[2618195.260] {Default Queue} discarded wl_surface#2343.enter(wl_output#2361) -[2618195.265] {Default Queue} -> wl_compositor#2348.create_surface(new id wl_surface#2375) -[2618195.269] {Default Queue} -> wl_subcompositor#2381.get_subsurface(new id wl_subsurface#2394, wl_surface#2375, wl_surface#2343) -[2618195.277] {Default Queue} -> wl_subsurface#2394.set_desync() -[2618195.282] {Default Queue} -> wl_subsurface#2394.set_position(0, 0) -[2618195.286] {Default Queue} -> wl_subsurface#2394.place_above(wl_surface#2343) -[2618195.330] {Default Queue} -> wl_shm#2383.create_pool(new id wl_shm_pool#2395, fd 379, 16) -[2618195.338] {Default Queue} -> wl_shm#2383.create_pool(new id wl_shm_pool#2396, fd 380, 16) -[2618195.342] {Default Queue} -> wl_shm_pool#2395.create_buffer(new id wl_buffer#2397, 0, 2, 2, 8, 0) -[2618195.347] {Default Queue} -> wl_shm_pool#2396.create_buffer(new id wl_buffer#2398, 0, 2, 2, 8, 0) -[2618195.355] {Default Queue} -> wl_surface#2375.attach(wl_buffer#2397, 0, 0) -[2618195.360] {Default Queue} -> wl_surface#2375.commit() -[2618195.366] {Default Queue} -> wl_surface#2375.attach(wl_buffer#2397, 0, 0) -[2618195.370] {Default Queue} -> wl_surface#2375.commit() -[2618195.374] {Default Queue} -> wl_compositor#2380.create_region(new id wl_region#2399) -[2618195.378] {Default Queue} -> wl_compositor#2380.create_region(new id wl_region#2400) -[2618195.383] {Default Queue} -> wl_region#2399.subtract(0, 0, 2, 2) -[2618195.387] {Default Queue} -> wl_region#2399.add(0, 0, 0, 0) -[2618195.392] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) -[2618195.396] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) -[2618195.400] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) -[2618195.405] {Default Queue} -> wl_surface#2343.damage(0, 0, 2, 2) -[2618195.412] {Default Queue} -> wl_surface#2375.attach(wl_buffer#2397, 0, 0) -[2618195.417] {Default Queue} -> wl_surface#2375.commit() -[2618195.455] {Default Queue} -> wl_shm#2385.create_pool(new id wl_shm_pool#2401, fd 383, 640) -[2618195.462] {Default Queue} -> wl_shm#2385.create_pool(new id wl_shm_pool#2402, fd 384, 640) -[2618195.466] {Default Queue} -> wl_shm_pool#2401.create_buffer(new id wl_buffer#2403, 0, 10, 16, 40, 0) -[2618195.471] {Default Queue} -> wl_shm_pool#2402.create_buffer(new id wl_buffer#2404, 0, 10, 16, 40, 0) -[2618195.478] {Default Queue} -> wl_compositor#2380.create_surface(new id wl_surface#2405) -[2618195.483] {Default Queue} -> wl_surface#2405.attach(wl_buffer#2403, 0, 0) -[2618195.488] {Default Queue} -> wl_surface#2405.commit() -[2618195.493] {Default Queue} -> wl_surface#2405.attach(wl_buffer#2403, 0, 0) -[2618195.497] {Default Queue} -> wl_surface#2405.commit() -[2618195.503] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) -[2618195.510] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2406) -[2618195.515] {Default Queue} -> wl_display#1.sync(new id wl_callback#2407) -[2618199.439] {Display Queue} wl_display#1.delete_id(2407) -[2618199.452] {Default Queue} wl_keyboard#2376.keymap(1, fd 379, 68213) -[2618199.457] {Default Queue} wl_keyboard#2376.enter(566, wl_surface#19, array[0]) -[2618199.463] {Default Queue} wl_keyboard#2376.modifiers(566, 0, 0, 16, 0) -[2618199.469] {Default Queue} discarded wl_shm#2383.format(875709016) -[2618199.473] {Default Queue} discarded wl_shm#2383.format(1) -[2618199.477] {Default Queue} discarded wl_shm#2383.format(0) -[2618199.481] {Default Queue} discarded wl_shm#2383.format(875708993) -[2618199.485] {Default Queue} discarded wl_shm#2384.format(875709016) -[2618199.489] {Default Queue} discarded wl_shm#2384.format(1) -[2618199.493] {Default Queue} discarded wl_shm#2384.format(0) -[2618199.497] {Default Queue} discarded wl_shm#2384.format(875708993) -[2618199.501] {Default Queue} discarded wl_shm#2385.format(875709016) -[2618199.513] {Default Queue} discarded wl_shm#2385.format(1) -[2618199.520] {Default Queue} discarded wl_shm#2385.format(0) -[2618199.525] {Default Queue} discarded wl_shm#2385.format(875708993) -[2618199.529] {Default Queue} wl_seat#2392.capabilities(7) -[2618199.533] {Default Queue} -> wl_seat#2392.get_keyboard(new id wl_keyboard#2408) -[2618199.538] {Default Queue} -> wl_seat#2392.get_pointer(new id wl_pointer#2409) -[2618199.543] {Default Queue} -> wl_data_device_manager#2388.get_data_device(new id wl_data_device#2410, wl_seat#2392) -[2618199.548] {Default Queue} -> zwp_primary_selection_device_manager_v1#2390.get_device(new id zwp_primary_selection_device_v1#2411, wl_seat#2392) -[2618199.556] {Default Queue} wl_output#2393.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618199.561] {Default Queue} wl_output#2393.mode(3, 1280, 800, 60000) -[2618199.566] {Default Queue} discarded wl_surface#3.enter(wl_output#2393) -[2618199.570] {Default Queue} discarded wl_surface#999.enter(wl_output#2393) -[2618199.574] {Default Queue} discarded wl_surface#1191.enter(wl_output#2393) -[2618199.578] {Default Queue} discarded wl_surface#1159.enter(wl_output#2393) -[2618199.582] {Default Queue} discarded wl_surface#1703.enter(wl_output#2393) -[2618199.585] {Default Queue} discarded wl_surface#2215.enter(wl_output#2393) -[2618199.589] {Default Queue} discarded wl_surface#423.enter(wl_output#2393) -[2618199.593] {Default Queue} discarded wl_surface#1447.enter(wl_output#2393) -[2618199.597] {Default Queue} discarded wl_surface#2023.enter(wl_output#2393) -[2618199.601] {Default Queue} discarded wl_surface#1639.enter(wl_output#2393) -[2618199.605] {Default Queue} discarded wl_surface#1319.enter(wl_output#2393) -[2618199.609] {Default Queue} discarded wl_surface#1127.enter(wl_output#2393) -[2618199.613] {Default Queue} discarded wl_surface#2151.enter(wl_output#2393) -[2618199.616] {Default Queue} discarded wl_surface#1063.enter(wl_output#2393) -[2618199.621] {Default Queue} discarded wl_surface#455.enter(wl_output#2393) -[2618199.625] {Default Queue} discarded wl_surface#1575.enter(wl_output#2393) -[2618199.628] {Default Queue} discarded wl_surface#1799.enter(wl_output#2393) -[2618199.632] {Default Queue} discarded wl_surface#1415.enter(wl_output#2393) -[2618199.636] {Default Queue} discarded wl_surface#2279.enter(wl_output#2393) -[2618199.640] {Default Queue} discarded wl_surface#1831.enter(wl_output#2393) -[2618199.644] {Default Queue} discarded wl_surface#903.enter(wl_output#2393) -[2618199.648] {Default Queue} discarded wl_surface#775.enter(wl_output#2393) -[2618199.652] {Default Queue} discarded wl_surface#1991.enter(wl_output#2393) -[2618199.656] {Default Queue} discarded wl_surface#1543.enter(wl_output#2393) -[2618199.660] {Default Queue} discarded wl_surface#135.enter(wl_output#2393) -[2618199.664] {Default Queue} discarded wl_surface#1287.enter(wl_output#2393) -[2618199.668] {Default Queue} discarded wl_surface#1031.enter(wl_output#2393) -[2618199.672] {Default Queue} discarded wl_surface#615.enter(wl_output#2393) -[2618199.676] {Default Queue} discarded wl_surface#231.enter(wl_output#2393) -[2618199.680] {Default Queue} discarded wl_surface#2343.enter(wl_output#2393) -[2618199.684] {Default Queue} discarded wl_surface#1863.enter(wl_output#2393) -[2618199.688] {Default Queue} discarded wl_surface#359.enter(wl_output#2393) -[2618199.691] {Default Queue} discarded wl_surface#583.enter(wl_output#2393) -[2618199.695] {Default Queue} discarded wl_surface#743.enter(wl_output#2393) -[2618199.699] {Default Queue} discarded wl_surface#967.enter(wl_output#2393) -[2618199.703] {Default Queue} discarded wl_surface#103.enter(wl_output#2393) -[2618199.707] {Default Queue} discarded wl_surface#327.enter(wl_output#2393) -[2618199.711] {Default Queue} discarded wl_surface#43.enter(wl_output#2393) -[2618199.715] {Default Queue} discarded wl_surface#2247.enter(wl_output#2393) -[2618199.719] {Default Queue} discarded wl_surface#807.enter(wl_output#2393) -[2618199.723] {Default Queue} discarded wl_surface#19.enter(wl_output#2393) -[2618199.727] {Default Queue} discarded wl_surface#1511.enter(wl_output#2393) -[2618199.734] {Default Queue} discarded wl_surface#199.enter(wl_output#2393) -[2618199.739] {Default Queue} discarded wl_surface#391.enter(wl_output#2393) -[2618199.743] {Default Queue} discarded wl_surface#935.enter(wl_output#2393) -[2618199.747] {Default Queue} discarded wl_surface#1671.enter(wl_output#2393) -[2618199.751] {Default Queue} discarded wl_surface#1351.enter(wl_output#2393) -[2618199.755] {Default Queue} discarded wl_surface#711.enter(wl_output#2393) -[2618199.759] {Default Queue} discarded wl_surface#1223.enter(wl_output#2393) -[2618199.763] {Default Queue} discarded wl_surface#1927.enter(wl_output#2393) -[2618199.766] {Default Queue} discarded wl_surface#871.enter(wl_output#2393) -[2618199.770] {Default Queue} discarded wl_surface#1895.enter(wl_output#2393) -[2618199.774] {Default Queue} discarded wl_surface#263.enter(wl_output#2393) -[2618199.778] {Default Queue} discarded wl_surface#551.enter(wl_output#2393) -[2618199.782] {Default Queue} discarded wl_surface#1735.enter(wl_output#2393) -[2618199.786] {Default Queue} discarded wl_surface#1479.enter(wl_output#2393) -[2618199.790] {Default Queue} discarded wl_surface#1772.enter(wl_output#2393) -[2618199.794] {Default Queue} discarded wl_surface#1959.enter(wl_output#2393) -[2618199.798] {Default Queue} discarded wl_surface#647.enter(wl_output#2393) -[2618199.802] {Default Queue} discarded wl_surface#2055.enter(wl_output#2393) -[2618199.806] {Default Queue} discarded wl_surface#71.enter(wl_output#2393) -[2618199.810] {Default Queue} discarded wl_surface#2183.enter(wl_output#2393) -[2618199.814] {Default Queue} discarded wl_surface#839.enter(wl_output#2393) -[2618199.817] {Default Queue} discarded wl_surface#1607.enter(wl_output#2393) -[2618199.822] {Default Queue} discarded wl_surface#1095.enter(wl_output#2393) -[2618199.826] {Default Queue} discarded wl_surface#1383.enter(wl_output#2393) -[2618199.829] {Default Queue} discarded wl_surface#487.enter(wl_output#2393) -[2618199.833] {Default Queue} discarded wl_surface#2311.enter(wl_output#2393) -[2618199.837] {Default Queue} discarded wl_surface#519.enter(wl_output#2393) -[2618199.841] {Default Queue} discarded wl_surface#2087.enter(wl_output#2393) -[2618199.845] {Default Queue} discarded wl_surface#295.enter(wl_output#2393) -[2618199.849] {Default Queue} discarded wl_surface#167.enter(wl_output#2393) -[2618199.853] {Default Queue} discarded wl_surface#1255.enter(wl_output#2393) -[2618199.857] {Default Queue} discarded wl_surface#679.enter(wl_output#2393) -[2618199.870] {Default Queue} discarded wl_surface#2119.enter(wl_output#2393) -[2618199.874] {Default Queue} wl_registry#2406.global(1, "wl_compositor", 6) -[2618199.879] {Default Queue} -> wl_registry#2406.bind(1, "wl_compositor", 1, new id [unknown]#2412) -[2618199.884] {Default Queue} wl_registry#2406.global(2, "wl_subcompositor", 1) -[2618199.889] {Default Queue} -> wl_registry#2406.bind(2, "wl_subcompositor", 1, new id [unknown]#2413) -[2618199.894] {Default Queue} wl_registry#2406.global(3, "xdg_wm_base", 6) -[2618199.898] {Default Queue} -> wl_registry#2406.bind(3, "xdg_wm_base", 1, new id [unknown]#2414) -[2618199.902] {Default Queue} wl_registry#2406.global(6, "zwlr_layer_shell_v1", 5) -[2618199.907] {Default Queue} wl_registry#2406.global(7, "ext_session_lock_manager_v1", 1) -[2618199.911] {Default Queue} wl_registry#2406.global(8, "wl_shm", 2) -[2618199.916] {Default Queue} -> wl_registry#2406.bind(8, "wl_shm", 1, new id [unknown]#2415) -[2618199.921] {Default Queue} -> wl_registry#2406.bind(8, "wl_shm", 1, new id [unknown]#2416) -[2618199.925] {Default Queue} -> wl_registry#2406.bind(8, "wl_shm", 1, new id [unknown]#2417) -[2618199.930] {Default Queue} wl_registry#2406.global(9, "zxdg_output_manager_v1", 3) -[2618199.934] {Default Queue} wl_registry#2406.global(10, "wp_fractional_scale_manager_v1", 1) -[2618199.938] {Default Queue} wl_registry#2406.global(11, "zwp_tablet_manager_v2", 1) -[2618199.942] {Default Queue} wl_registry#2406.global(12, "zwp_pointer_gestures_v1", 3) -[2618199.947] {Default Queue} wl_registry#2406.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618199.954] {Default Queue} -> wl_registry#2406.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2418) -[2618199.960] {Default Queue} wl_registry#2406.global(14, "zwp_pointer_constraints_v1", 1) -[2618199.964] {Default Queue} -> wl_registry#2406.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2419) -[2618199.969] {Default Queue} wl_registry#2406.global(15, "ext_idle_notifier_v1", 2) -[2618199.974] {Default Queue} wl_registry#2406.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618199.978] {Default Queue} wl_registry#2406.global(17, "wl_data_device_manager", 3) -[2618199.983] {Default Queue} -> wl_registry#2406.bind(17, "wl_data_device_manager", 2, new id [unknown]#2420) -[2618199.987] {Default Queue} -> wl_data_device_manager#2420.create_data_source(new id wl_data_source#2421) -[2618199.992] {Default Queue} -> wl_data_source#2421.offer("text/plain") -[2618199.996] {Default Queue} -> wl_data_source#2421.offer("text/plain;charset=utf-8") -[2618200.000] {Default Queue} -> wl_data_source#2421.offer("TEXT") -[2618200.005] {Default Queue} -> wl_data_source#2421.offer("STRING") -[2618200.009] {Default Queue} -> wl_data_source#2421.offer("UTF8_STRING") -[2618200.014] {Default Queue} wl_registry#2406.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618200.018] {Default Queue} -> wl_registry#2406.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2422) -[2618200.026] {Default Queue} -> zwp_primary_selection_device_manager_v1#2422.create_source(new id zwp_primary_selection_source_v1#2423) -[2618200.034] {Default Queue} -> zwp_primary_selection_source_v1#2423.offer("text/plain") -[2618200.038] {Default Queue} -> zwp_primary_selection_source_v1#2423.offer("text/plain;charset=utf-8") -[2618200.042] {Default Queue} -> zwp_primary_selection_source_v1#2423.offer("TEXT") -[2618200.046] {Default Queue} -> zwp_primary_selection_source_v1#2423.offer("STRING") -[2618200.050] {Default Queue} -> zwp_primary_selection_source_v1#2423.offer("UTF8_STRING") -[2618200.054] {Default Queue} wl_registry#2406.global(19, "zwlr_data_control_manager_v1", 2) -[2618200.059] {Default Queue} wl_registry#2406.global(20, "ext_data_control_manager_v1", 1) -[2618200.063] {Default Queue} wl_registry#2406.global(21, "wp_presentation", 2) -[2618200.067] {Default Queue} wl_registry#2406.global(22, "wp_security_context_manager_v1", 1) -[2618200.071] {Default Queue} wl_registry#2406.global(23, "zwp_text_input_manager_v3", 1) -[2618200.076] {Default Queue} wl_registry#2406.global(24, "zwp_input_method_manager_v2", 1) -[2618200.080] {Default Queue} wl_registry#2406.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618200.084] {Default Queue} wl_registry#2406.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618200.089] {Default Queue} wl_registry#2406.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618200.093] {Default Queue} wl_registry#2406.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618200.097] {Default Queue} wl_registry#2406.global(29, "ext_workspace_manager_v1", 1) -[2618200.102] {Default Queue} wl_registry#2406.global(30, "zwlr_output_manager_v1", 4) -[2618200.106] {Default Queue} wl_registry#2406.global(31, "zwlr_screencopy_manager_v1", 3) -[2618200.110] {Default Queue} wl_registry#2406.global(32, "wp_viewporter", 1) -[2618200.115] {Default Queue} wl_registry#2406.global(33, "zxdg_exporter_v2", 1) -[2618200.119] {Default Queue} wl_registry#2406.global(34, "zxdg_importer_v2", 1) -[2618200.123] {Default Queue} wl_registry#2406.global(36, "xdg_activation_v1", 1) -[2618200.127] {Default Queue} wl_registry#2406.global(37, "mutter_x11_interop", 1) -[2618200.132] {Default Queue} wl_registry#2406.global(38, "wl_seat", 9) -[2618200.136] {Default Queue} -> wl_registry#2406.bind(38, "wl_seat", 1, new id [unknown]#2424) -[2618200.141] {Default Queue} wl_registry#2406.global(39, "wp_cursor_shape_manager_v1", 2) -[2618200.145] {Default Queue} wl_registry#2406.global(40, "wl_output", 4) -[2618200.149] {Default Queue} -> wl_registry#2406.bind(40, "wl_output", 1, new id [unknown]#2425) -[2618200.157] {Default Queue} wl_callback#2407.done(0) -[2618200.162] {Default Queue} discarded wl_surface#2375.enter(wl_output#18) -[2618200.166] {Default Queue} discarded wl_surface#2375.enter(wl_output#57) -[2618200.170] {Default Queue} discarded wl_surface#2375.enter(wl_output#89) -[2618200.175] {Default Queue} discarded wl_surface#2375.enter(wl_output#121) -[2618200.178] {Default Queue} discarded wl_surface#2375.enter(wl_output#153) -[2618200.182] {Default Queue} discarded wl_surface#2375.enter(wl_output#185) -[2618200.186] {Default Queue} discarded wl_surface#2375.enter(wl_output#217) -[2618200.190] {Default Queue} discarded wl_surface#2375.enter(wl_output#249) -[2618200.194] {Default Queue} discarded wl_surface#2375.enter(wl_output#281) -[2618200.198] {Default Queue} discarded wl_surface#2375.enter(wl_output#313) -[2618200.202] {Default Queue} discarded wl_surface#2375.enter(wl_output#345) -[2618200.206] {Default Queue} discarded wl_surface#2375.enter(wl_output#377) -[2618200.210] {Default Queue} discarded wl_surface#2375.enter(wl_output#409) -[2618200.214] {Default Queue} discarded wl_surface#2375.enter(wl_output#441) -[2618200.217] {Default Queue} discarded wl_surface#2375.enter(wl_output#473) -[2618200.221] {Default Queue} discarded wl_surface#2375.enter(wl_output#505) -[2618200.226] {Default Queue} discarded wl_surface#2375.enter(wl_output#537) -[2618200.230] {Default Queue} discarded wl_surface#2375.enter(wl_output#569) -[2618200.233] {Default Queue} discarded wl_surface#2375.enter(wl_output#601) -[2618200.237] {Default Queue} discarded wl_surface#2375.enter(wl_output#633) -[2618200.241] {Default Queue} discarded wl_surface#2375.enter(wl_output#665) -[2618200.245] {Default Queue} discarded wl_surface#2375.enter(wl_output#697) -[2618200.249] {Default Queue} discarded wl_surface#2375.enter(wl_output#729) -[2618200.253] {Default Queue} discarded wl_surface#2375.enter(wl_output#761) -[2618200.257] {Default Queue} discarded wl_surface#2375.enter(wl_output#793) -[2618200.261] {Default Queue} discarded wl_surface#2375.enter(wl_output#825) -[2618200.265] {Default Queue} discarded wl_surface#2375.enter(wl_output#857) -[2618200.269] {Default Queue} discarded wl_surface#2375.enter(wl_output#889) -[2618200.273] {Default Queue} discarded wl_surface#2375.enter(wl_output#921) -[2618200.277] {Default Queue} discarded wl_surface#2375.enter(wl_output#953) -[2618200.281] {Default Queue} discarded wl_surface#2375.enter(wl_output#985) -[2618200.285] {Default Queue} discarded wl_surface#2375.enter(wl_output#1017) -[2618200.289] {Default Queue} discarded wl_surface#2375.enter(wl_output#1049) -[2618200.293] {Default Queue} discarded wl_surface#2375.enter(wl_output#1081) -[2618200.297] {Default Queue} discarded wl_surface#2375.enter(wl_output#1113) -[2618200.300] {Default Queue} discarded wl_surface#2375.enter(wl_output#1145) -[2618200.304] {Default Queue} discarded wl_surface#2375.enter(wl_output#1177) -[2618200.308] {Default Queue} discarded wl_surface#2375.enter(wl_output#1209) -[2618200.312] {Default Queue} discarded wl_surface#2375.enter(wl_output#1241) -[2618200.316] {Default Queue} discarded wl_surface#2375.enter(wl_output#1273) -[2618200.320] {Default Queue} discarded wl_surface#2375.enter(wl_output#1305) -[2618200.324] {Default Queue} discarded wl_surface#2375.enter(wl_output#1337) -[2618200.328] {Default Queue} discarded wl_surface#2375.enter(wl_output#1369) -[2618200.332] {Default Queue} discarded wl_surface#2375.enter(wl_output#1401) -[2618200.336] {Default Queue} discarded wl_surface#2375.enter(wl_output#1433) -[2618200.340] {Default Queue} discarded wl_surface#2375.enter(wl_output#1465) -[2618200.344] {Default Queue} discarded wl_surface#2375.enter(wl_output#1497) -[2618200.347] {Default Queue} discarded wl_surface#2375.enter(wl_output#1529) -[2618200.351] {Default Queue} discarded wl_surface#2375.enter(wl_output#1561) -[2618200.356] {Default Queue} discarded wl_surface#2375.enter(wl_output#1593) -[2618200.359] {Default Queue} discarded wl_surface#2375.enter(wl_output#1625) -[2618200.363] {Default Queue} discarded wl_surface#2375.enter(wl_output#1657) -[2618200.367] {Default Queue} discarded wl_surface#2375.enter(wl_output#1689) -[2618200.374] {Default Queue} discarded wl_surface#2375.enter(wl_output#1721) -[2618200.379] {Default Queue} discarded wl_surface#2375.enter(wl_output#1753) -[2618200.383] {Default Queue} discarded wl_surface#2375.enter(wl_output#1785) -[2618200.388] {Default Queue} discarded wl_surface#2375.enter(wl_output#1817) -[2618200.392] {Default Queue} discarded wl_surface#2375.enter(wl_output#1849) -[2618200.396] {Default Queue} discarded wl_surface#2375.enter(wl_output#1881) -[2618200.400] {Default Queue} discarded wl_surface#2375.enter(wl_output#1913) -[2618200.404] {Default Queue} discarded wl_surface#2375.enter(wl_output#1945) -[2618200.408] {Default Queue} discarded wl_surface#2375.enter(wl_output#1977) -[2618200.412] {Default Queue} discarded wl_surface#2375.enter(wl_output#2009) -[2618200.416] {Default Queue} discarded wl_surface#2375.enter(wl_output#2041) -[2618200.420] {Default Queue} discarded wl_surface#2375.enter(wl_output#2073) -[2618200.424] {Default Queue} discarded wl_surface#2375.enter(wl_output#2105) -[2618200.428] {Default Queue} discarded wl_surface#2375.enter(wl_output#2137) -[2618200.432] {Default Queue} discarded wl_surface#2375.enter(wl_output#2169) -[2618200.436] {Default Queue} discarded wl_surface#2375.enter(wl_output#2201) -[2618200.441] {Default Queue} discarded wl_surface#2375.enter(wl_output#2233) -[2618200.445] {Default Queue} discarded wl_surface#2375.enter(wl_output#2265) -[2618200.448] {Default Queue} discarded wl_surface#2375.enter(wl_output#2297) -[2618200.452] {Default Queue} discarded wl_surface#2375.enter(wl_output#2329) -[2618200.457] {Default Queue} discarded wl_surface#2375.enter(wl_output#2361) -[2618200.460] {Default Queue} discarded wl_surface#2375.enter(wl_output#2393) -[2618200.465] {Default Queue} -> wl_compositor#2380.create_surface(new id wl_surface#2407) -[2618200.469] {Default Queue} -> wl_subcompositor#2413.get_subsurface(new id wl_subsurface#2426, wl_surface#2407, wl_surface#2375) -[2618200.478] {Default Queue} -> wl_subsurface#2426.set_desync() -[2618200.482] {Default Queue} -> wl_subsurface#2426.set_position(0, 0) -[2618200.486] {Default Queue} -> wl_subsurface#2426.place_above(wl_surface#2375) -[2618200.533] {Default Queue} -> wl_shm#2415.create_pool(new id wl_shm_pool#2427, fd 384, 16) -[2618200.541] {Default Queue} -> wl_shm#2415.create_pool(new id wl_shm_pool#2428, fd 385, 16) -[2618200.545] {Default Queue} -> wl_shm_pool#2427.create_buffer(new id wl_buffer#2429, 0, 2, 2, 8, 0) -[2618200.550] {Default Queue} -> wl_shm_pool#2428.create_buffer(new id wl_buffer#2430, 0, 2, 2, 8, 0) -[2618200.559] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) -[2618200.563] {Default Queue} -> wl_surface#2407.commit() -[2618200.569] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) -[2618200.573] {Default Queue} -> wl_surface#2407.commit() -[2618200.577] {Default Queue} -> wl_compositor#2412.create_region(new id wl_region#2431) -[2618200.582] {Default Queue} -> wl_compositor#2412.create_region(new id wl_region#2432) -[2618200.586] {Default Queue} -> wl_region#2431.subtract(0, 0, 2, 2) -[2618200.590] {Default Queue} -> wl_region#2431.add(0, 0, 0, 0) -[2618200.595] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2618200.600] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2618200.604] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618200.608] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) -[2618200.615] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) -[2618200.620] {Default Queue} -> wl_surface#2407.commit() -[2618200.661] {Default Queue} -> wl_shm#2417.create_pool(new id wl_shm_pool#2433, fd 388, 640) -[2618200.667] {Default Queue} -> wl_shm#2417.create_pool(new id wl_shm_pool#2434, fd 389, 640) -[2618200.672] {Default Queue} -> wl_shm_pool#2433.create_buffer(new id wl_buffer#2435, 0, 10, 16, 40, 0) -[2618200.677] {Default Queue} -> wl_shm_pool#2434.create_buffer(new id wl_buffer#2436, 0, 10, 16, 40, 0) -[2618200.684] {Default Queue} -> wl_compositor#2412.create_surface(new id wl_surface#2437) -[2618200.691] {Default Queue} -> wl_surface#2437.attach(wl_buffer#2435, 0, 0) -[2618200.698] {Default Queue} -> wl_surface#2437.commit() -[2618200.703] {Default Queue} -> wl_surface#2437.attach(wl_buffer#2435, 0, 0) -[2618200.707] {Default Queue} -> wl_surface#2437.commit() -[2618200.713] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) -[2618200.719] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618200.723] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618200.731] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2438) -[2618200.735] {Default Queue} -> wl_display#1.sync(new id wl_callback#2439) -[2618205.559] {Display Queue} wl_display#1.delete_id(2439) -[2618205.571] {Default Queue} wl_keyboard#2408.keymap(1, fd 384, 68213) -[2618205.577] {Default Queue} wl_keyboard#2408.enter(566, wl_surface#19, array[0]) -[2618205.582] {Default Queue} wl_keyboard#2408.modifiers(566, 0, 0, 16, 0) -[2618205.587] {Default Queue} discarded wl_shm#2415.format(875709016) -[2618205.591] {Default Queue} discarded wl_shm#2415.format(1) -[2618205.595] {Default Queue} discarded wl_shm#2415.format(0) -[2618205.599] {Default Queue} discarded wl_shm#2415.format(875708993) -[2618205.603] {Default Queue} discarded wl_shm#2416.format(875709016) -[2618205.606] {Default Queue} discarded wl_shm#2416.format(1) -[2618205.610] {Default Queue} discarded wl_shm#2416.format(0) -[2618205.614] {Default Queue} discarded wl_shm#2416.format(875708993) -[2618205.619] {Default Queue} discarded wl_shm#2417.format(875709016) -[2618205.623] {Default Queue} discarded wl_shm#2417.format(1) -[2618205.627] {Default Queue} discarded wl_shm#2417.format(0) -[2618205.630] {Default Queue} discarded wl_shm#2417.format(875708993) -[2618205.634] {Default Queue} wl_seat#2424.capabilities(7) -[2618205.639] {Default Queue} -> wl_seat#2424.get_keyboard(new id wl_keyboard#2440) -[2618205.644] {Default Queue} -> wl_seat#2424.get_pointer(new id wl_pointer#2441) -[2618205.648] {Default Queue} -> wl_data_device_manager#2420.get_data_device(new id wl_data_device#2442, wl_seat#2424) -[2618205.653] {Default Queue} -> zwp_primary_selection_device_manager_v1#2422.get_device(new id zwp_primary_selection_device_v1#2443, wl_seat#2424) -[2618205.661] {Default Queue} wl_output#2425.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618205.666] {Default Queue} wl_output#2425.mode(3, 1280, 800, 60000) -[2618205.671] {Default Queue} discarded wl_surface#3.enter(wl_output#2425) -[2618205.675] {Default Queue} discarded wl_surface#999.enter(wl_output#2425) -[2618205.679] {Default Queue} discarded wl_surface#1191.enter(wl_output#2425) -[2618205.683] {Default Queue} discarded wl_surface#1159.enter(wl_output#2425) -[2618205.687] {Default Queue} discarded wl_surface#1703.enter(wl_output#2425) -[2618205.691] {Default Queue} discarded wl_surface#2215.enter(wl_output#2425) -[2618205.695] {Default Queue} discarded wl_surface#423.enter(wl_output#2425) -[2618205.699] {Default Queue} discarded wl_surface#1447.enter(wl_output#2425) -[2618205.703] {Default Queue} discarded wl_surface#2023.enter(wl_output#2425) -[2618205.706] {Default Queue} discarded wl_surface#1639.enter(wl_output#2425) -[2618205.710] {Default Queue} discarded wl_surface#1319.enter(wl_output#2425) -[2618205.714] {Default Queue} discarded wl_surface#1127.enter(wl_output#2425) -[2618205.718] {Default Queue} discarded wl_surface#2151.enter(wl_output#2425) -[2618205.722] {Default Queue} discarded wl_surface#2375.enter(wl_output#2425) -[2618205.726] {Default Queue} discarded wl_surface#1063.enter(wl_output#2425) -[2618205.730] {Default Queue} discarded wl_surface#455.enter(wl_output#2425) -[2618205.734] {Default Queue} discarded wl_surface#1575.enter(wl_output#2425) -[2618205.738] {Default Queue} discarded wl_surface#1799.enter(wl_output#2425) -[2618205.742] {Default Queue} discarded wl_surface#1415.enter(wl_output#2425) -[2618205.746] {Default Queue} discarded wl_surface#2279.enter(wl_output#2425) -[2618205.750] {Default Queue} discarded wl_surface#1831.enter(wl_output#2425) -[2618205.753] {Default Queue} discarded wl_surface#903.enter(wl_output#2425) -[2618205.763] {Default Queue} discarded wl_surface#775.enter(wl_output#2425) -[2618205.770] {Default Queue} discarded wl_surface#1991.enter(wl_output#2425) -[2618205.774] {Default Queue} discarded wl_surface#1543.enter(wl_output#2425) -[2618205.778] {Default Queue} discarded wl_surface#135.enter(wl_output#2425) -[2618205.782] {Default Queue} discarded wl_surface#1287.enter(wl_output#2425) -[2618205.786] {Default Queue} discarded wl_surface#1031.enter(wl_output#2425) -[2618205.790] {Default Queue} discarded wl_surface#615.enter(wl_output#2425) -[2618205.794] {Default Queue} discarded wl_surface#231.enter(wl_output#2425) -[2618205.798] {Default Queue} discarded wl_surface#2343.enter(wl_output#2425) -[2618205.801] {Default Queue} discarded wl_surface#1863.enter(wl_output#2425) -[2618205.805] {Default Queue} discarded wl_surface#359.enter(wl_output#2425) -[2618205.809] {Default Queue} discarded wl_surface#583.enter(wl_output#2425) -[2618205.813] {Default Queue} discarded wl_surface#743.enter(wl_output#2425) -[2618205.817] {Default Queue} discarded wl_surface#967.enter(wl_output#2425) -[2618205.821] {Default Queue} discarded wl_surface#103.enter(wl_output#2425) -[2618205.825] {Default Queue} discarded wl_surface#327.enter(wl_output#2425) -[2618205.829] {Default Queue} discarded wl_surface#43.enter(wl_output#2425) -[2618205.833] {Default Queue} discarded wl_surface#2247.enter(wl_output#2425) -[2618205.837] {Default Queue} discarded wl_surface#807.enter(wl_output#2425) -[2618205.841] {Default Queue} discarded wl_surface#19.enter(wl_output#2425) -[2618205.845] {Default Queue} discarded wl_surface#1511.enter(wl_output#2425) -[2618205.849] {Default Queue} discarded wl_surface#199.enter(wl_output#2425) -[2618205.853] {Default Queue} discarded wl_surface#391.enter(wl_output#2425) -[2618205.857] {Default Queue} discarded wl_surface#935.enter(wl_output#2425) -[2618205.870] {Default Queue} discarded wl_surface#1671.enter(wl_output#2425) -[2618205.874] {Default Queue} discarded wl_surface#1351.enter(wl_output#2425) -[2618205.878] {Default Queue} discarded wl_surface#711.enter(wl_output#2425) -[2618205.882] {Default Queue} discarded wl_surface#1223.enter(wl_output#2425) -[2618205.886] {Default Queue} discarded wl_surface#1927.enter(wl_output#2425) -[2618205.889] {Default Queue} discarded wl_surface#871.enter(wl_output#2425) -[2618205.893] {Default Queue} discarded wl_surface#1895.enter(wl_output#2425) -[2618205.897] {Default Queue} discarded wl_surface#263.enter(wl_output#2425) -[2618205.901] {Default Queue} discarded wl_surface#551.enter(wl_output#2425) -[2618205.905] {Default Queue} discarded wl_surface#1735.enter(wl_output#2425) -[2618205.909] {Default Queue} discarded wl_surface#1479.enter(wl_output#2425) -[2618205.913] {Default Queue} discarded wl_surface#1772.enter(wl_output#2425) -[2618205.917] {Default Queue} discarded wl_surface#1959.enter(wl_output#2425) -[2618205.921] {Default Queue} discarded wl_surface#647.enter(wl_output#2425) -[2618205.925] {Default Queue} discarded wl_surface#2055.enter(wl_output#2425) -[2618205.928] {Default Queue} discarded wl_surface#71.enter(wl_output#2425) -[2618205.932] {Default Queue} discarded wl_surface#2183.enter(wl_output#2425) -[2618205.937] {Default Queue} discarded wl_surface#839.enter(wl_output#2425) -[2618205.941] {Default Queue} discarded wl_surface#1607.enter(wl_output#2425) -[2618205.944] {Default Queue} discarded wl_surface#1095.enter(wl_output#2425) -[2618205.948] {Default Queue} discarded wl_surface#1383.enter(wl_output#2425) -[2618205.952] {Default Queue} discarded wl_surface#487.enter(wl_output#2425) -[2618205.956] {Default Queue} discarded wl_surface#2311.enter(wl_output#2425) -[2618205.960] {Default Queue} discarded wl_surface#519.enter(wl_output#2425) -[2618205.964] {Default Queue} discarded wl_surface#2087.enter(wl_output#2425) -[2618205.968] {Default Queue} discarded wl_surface#295.enter(wl_output#2425) -[2618205.972] {Default Queue} discarded wl_surface#167.enter(wl_output#2425) -[2618205.976] {Default Queue} discarded wl_surface#1255.enter(wl_output#2425) -[2618205.980] {Default Queue} discarded wl_surface#679.enter(wl_output#2425) -[2618205.987] {Default Queue} discarded wl_surface#2119.enter(wl_output#2425) -[2618205.993] {Default Queue} wl_registry#2438.global(1, "wl_compositor", 6) -[2618205.998] {Default Queue} -> wl_registry#2438.bind(1, "wl_compositor", 1, new id [unknown]#2444) -[2618206.003] {Default Queue} wl_registry#2438.global(2, "wl_subcompositor", 1) -[2618206.008] {Default Queue} -> wl_registry#2438.bind(2, "wl_subcompositor", 1, new id [unknown]#2445) -[2618206.012] {Default Queue} wl_registry#2438.global(3, "xdg_wm_base", 6) -[2618206.017] {Default Queue} -> wl_registry#2438.bind(3, "xdg_wm_base", 1, new id [unknown]#2446) -[2618206.022] {Default Queue} wl_registry#2438.global(6, "zwlr_layer_shell_v1", 5) -[2618206.026] {Default Queue} wl_registry#2438.global(7, "ext_session_lock_manager_v1", 1) -[2618206.030] {Default Queue} wl_registry#2438.global(8, "wl_shm", 2) -[2618206.035] {Default Queue} -> wl_registry#2438.bind(8, "wl_shm", 1, new id [unknown]#2447) -[2618206.040] {Default Queue} -> wl_registry#2438.bind(8, "wl_shm", 1, new id [unknown]#2448) -[2618206.044] {Default Queue} -> wl_registry#2438.bind(8, "wl_shm", 1, new id [unknown]#2449) -[2618206.049] {Default Queue} wl_registry#2438.global(9, "zxdg_output_manager_v1", 3) -[2618206.054] {Default Queue} wl_registry#2438.global(10, "wp_fractional_scale_manager_v1", 1) -[2618206.058] {Default Queue} wl_registry#2438.global(11, "zwp_tablet_manager_v2", 1) -[2618206.063] {Default Queue} wl_registry#2438.global(12, "zwp_pointer_gestures_v1", 3) -[2618206.067] {Default Queue} wl_registry#2438.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618206.072] {Default Queue} -> wl_registry#2438.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2450) -[2618206.076] {Default Queue} wl_registry#2438.global(14, "zwp_pointer_constraints_v1", 1) -[2618206.081] {Default Queue} -> wl_registry#2438.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2451) -[2618206.085] {Default Queue} wl_registry#2438.global(15, "ext_idle_notifier_v1", 2) -[2618206.089] {Default Queue} wl_registry#2438.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618206.094] {Default Queue} wl_registry#2438.global(17, "wl_data_device_manager", 3) -[2618206.098] {Default Queue} -> wl_registry#2438.bind(17, "wl_data_device_manager", 2, new id [unknown]#2452) -[2618206.103] {Default Queue} -> wl_data_device_manager#2452.create_data_source(new id wl_data_source#2453) -[2618206.107] {Default Queue} -> wl_data_source#2453.offer("text/plain") -[2618206.111] {Default Queue} -> wl_data_source#2453.offer("text/plain;charset=utf-8") -[2618206.115] {Default Queue} -> wl_data_source#2453.offer("TEXT") -[2618206.120] {Default Queue} -> wl_data_source#2453.offer("STRING") -[2618206.123] {Default Queue} -> wl_data_source#2453.offer("UTF8_STRING") -[2618206.128] {Default Queue} wl_registry#2438.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618206.133] {Default Queue} -> wl_registry#2438.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2454) -[2618206.140] {Default Queue} -> zwp_primary_selection_device_manager_v1#2454.create_source(new id zwp_primary_selection_source_v1#2455) -[2618206.148] {Default Queue} -> zwp_primary_selection_source_v1#2455.offer("text/plain") -[2618206.152] {Default Queue} -> zwp_primary_selection_source_v1#2455.offer("text/plain;charset=utf-8") -[2618206.156] {Default Queue} -> zwp_primary_selection_source_v1#2455.offer("TEXT") -[2618206.160] {Default Queue} -> zwp_primary_selection_source_v1#2455.offer("STRING") -[2618206.164] {Default Queue} -> zwp_primary_selection_source_v1#2455.offer("UTF8_STRING") -[2618206.169] {Default Queue} wl_registry#2438.global(19, "zwlr_data_control_manager_v1", 2) -[2618206.173] {Default Queue} wl_registry#2438.global(20, "ext_data_control_manager_v1", 1) -[2618206.177] {Default Queue} wl_registry#2438.global(21, "wp_presentation", 2) -[2618206.181] {Default Queue} wl_registry#2438.global(22, "wp_security_context_manager_v1", 1) -[2618206.186] {Default Queue} wl_registry#2438.global(23, "zwp_text_input_manager_v3", 1) -[2618206.193] {Default Queue} wl_registry#2438.global(24, "zwp_input_method_manager_v2", 1) -[2618206.199] {Default Queue} wl_registry#2438.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618206.203] {Default Queue} wl_registry#2438.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618206.208] {Default Queue} wl_registry#2438.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618206.212] {Default Queue} wl_registry#2438.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618206.216] {Default Queue} wl_registry#2438.global(29, "ext_workspace_manager_v1", 1) -[2618206.221] {Default Queue} wl_registry#2438.global(30, "zwlr_output_manager_v1", 4) -[2618206.225] {Default Queue} wl_registry#2438.global(31, "zwlr_screencopy_manager_v1", 3) -[2618206.229] {Default Queue} wl_registry#2438.global(32, "wp_viewporter", 1) -[2618206.233] {Default Queue} wl_registry#2438.global(33, "zxdg_exporter_v2", 1) -[2618206.238] {Default Queue} wl_registry#2438.global(34, "zxdg_importer_v2", 1) -[2618206.242] {Default Queue} wl_registry#2438.global(36, "xdg_activation_v1", 1) -[2618206.247] {Default Queue} wl_registry#2438.global(37, "mutter_x11_interop", 1) -[2618206.251] {Default Queue} wl_registry#2438.global(38, "wl_seat", 9) -[2618206.255] {Default Queue} -> wl_registry#2438.bind(38, "wl_seat", 1, new id [unknown]#2456) -[2618206.260] {Default Queue} wl_registry#2438.global(39, "wp_cursor_shape_manager_v1", 2) -[2618206.264] {Default Queue} wl_registry#2438.global(40, "wl_output", 4) -[2618206.269] {Default Queue} -> wl_registry#2438.bind(40, "wl_output", 1, new id [unknown]#2457) -[2618206.273] {Default Queue} wl_callback#2439.done(0) -[2618206.277] {Default Queue} discarded wl_surface#2407.enter(wl_output#18) -[2618206.282] {Default Queue} discarded wl_surface#2407.enter(wl_output#57) -[2618206.285] {Default Queue} discarded wl_surface#2407.enter(wl_output#89) -[2618206.289] {Default Queue} discarded wl_surface#2407.enter(wl_output#121) -[2618206.294] {Default Queue} discarded wl_surface#2407.enter(wl_output#153) -[2618206.298] {Default Queue} discarded wl_surface#2407.enter(wl_output#185) -[2618206.302] {Default Queue} discarded wl_surface#2407.enter(wl_output#217) -[2618206.305] {Default Queue} discarded wl_surface#2407.enter(wl_output#249) -[2618206.309] {Default Queue} discarded wl_surface#2407.enter(wl_output#281) -[2618206.314] {Default Queue} discarded wl_surface#2407.enter(wl_output#313) -[2618206.317] {Default Queue} discarded wl_surface#2407.enter(wl_output#345) -[2618206.321] {Default Queue} discarded wl_surface#2407.enter(wl_output#377) -[2618206.326] {Default Queue} discarded wl_surface#2407.enter(wl_output#409) -[2618206.330] {Default Queue} discarded wl_surface#2407.enter(wl_output#441) -[2618206.333] {Default Queue} discarded wl_surface#2407.enter(wl_output#473) -[2618206.337] {Default Queue} discarded wl_surface#2407.enter(wl_output#505) -[2618206.341] {Default Queue} discarded wl_surface#2407.enter(wl_output#537) -[2618206.345] {Default Queue} discarded wl_surface#2407.enter(wl_output#569) -[2618206.349] {Default Queue} discarded wl_surface#2407.enter(wl_output#601) -[2618206.353] {Default Queue} discarded wl_surface#2407.enter(wl_output#633) -[2618206.357] {Default Queue} discarded wl_surface#2407.enter(wl_output#665) -[2618206.361] {Default Queue} discarded wl_surface#2407.enter(wl_output#697) -[2618206.365] {Default Queue} discarded wl_surface#2407.enter(wl_output#729) -[2618206.368] {Default Queue} discarded wl_surface#2407.enter(wl_output#761) -[2618206.372] {Default Queue} discarded wl_surface#2407.enter(wl_output#793) -[2618206.376] {Default Queue} discarded wl_surface#2407.enter(wl_output#825) -[2618206.380] {Default Queue} discarded wl_surface#2407.enter(wl_output#857) -[2618206.384] {Default Queue} discarded wl_surface#2407.enter(wl_output#889) -[2618206.388] {Default Queue} discarded wl_surface#2407.enter(wl_output#921) -[2618206.392] {Default Queue} discarded wl_surface#2407.enter(wl_output#953) -[2618206.396] {Default Queue} discarded wl_surface#2407.enter(wl_output#985) -[2618206.400] {Default Queue} discarded wl_surface#2407.enter(wl_output#1017) -[2618206.408] {Default Queue} discarded wl_surface#2407.enter(wl_output#1049) -[2618206.413] {Default Queue} discarded wl_surface#2407.enter(wl_output#1081) -[2618206.417] {Default Queue} discarded wl_surface#2407.enter(wl_output#1113) -[2618206.421] {Default Queue} discarded wl_surface#2407.enter(wl_output#1145) -[2618206.425] {Default Queue} discarded wl_surface#2407.enter(wl_output#1177) -[2618206.429] {Default Queue} discarded wl_surface#2407.enter(wl_output#1209) -[2618206.433] {Default Queue} discarded wl_surface#2407.enter(wl_output#1241) -[2618206.437] {Default Queue} discarded wl_surface#2407.enter(wl_output#1273) -[2618206.442] {Default Queue} discarded wl_surface#2407.enter(wl_output#1305) -[2618206.445] {Default Queue} discarded wl_surface#2407.enter(wl_output#1337) -[2618206.450] {Default Queue} discarded wl_surface#2407.enter(wl_output#1369) -[2618206.454] {Default Queue} discarded wl_surface#2407.enter(wl_output#1401) -[2618206.457] {Default Queue} discarded wl_surface#2407.enter(wl_output#1433) -[2618206.461] {Default Queue} discarded wl_surface#2407.enter(wl_output#1465) -[2618206.465] {Default Queue} discarded wl_surface#2407.enter(wl_output#1497) -[2618206.470] {Default Queue} discarded wl_surface#2407.enter(wl_output#1529) -[2618206.474] {Default Queue} discarded wl_surface#2407.enter(wl_output#1561) -[2618206.478] {Default Queue} discarded wl_surface#2407.enter(wl_output#1593) -[2618206.483] {Default Queue} discarded wl_surface#2407.enter(wl_output#1625) -[2618206.487] {Default Queue} discarded wl_surface#2407.enter(wl_output#1657) -[2618206.491] {Default Queue} discarded wl_surface#2407.enter(wl_output#1689) -[2618206.494] {Default Queue} discarded wl_surface#2407.enter(wl_output#1721) -[2618206.498] {Default Queue} discarded wl_surface#2407.enter(wl_output#1753) -[2618206.503] {Default Queue} discarded wl_surface#2407.enter(wl_output#1785) -[2618206.507] {Default Queue} discarded wl_surface#2407.enter(wl_output#1817) -[2618206.511] {Default Queue} discarded wl_surface#2407.enter(wl_output#1849) -[2618206.515] {Default Queue} discarded wl_surface#2407.enter(wl_output#1881) -[2618206.519] {Default Queue} discarded wl_surface#2407.enter(wl_output#1913) -[2618206.523] {Default Queue} discarded wl_surface#2407.enter(wl_output#1945) -[2618206.527] {Default Queue} discarded wl_surface#2407.enter(wl_output#1977) -[2618206.531] {Default Queue} discarded wl_surface#2407.enter(wl_output#2009) -[2618206.535] {Default Queue} discarded wl_surface#2407.enter(wl_output#2041) -[2618206.539] {Default Queue} discarded wl_surface#2407.enter(wl_output#2073) -[2618206.543] {Default Queue} discarded wl_surface#2407.enter(wl_output#2105) -[2618206.547] {Default Queue} discarded wl_surface#2407.enter(wl_output#2137) -[2618206.551] {Default Queue} discarded wl_surface#2407.enter(wl_output#2169) -[2618206.555] {Default Queue} discarded wl_surface#2407.enter(wl_output#2201) -[2618206.559] {Default Queue} discarded wl_surface#2407.enter(wl_output#2233) -[2618206.563] {Default Queue} discarded wl_surface#2407.enter(wl_output#2265) -[2618206.567] {Default Queue} discarded wl_surface#2407.enter(wl_output#2297) -[2618206.571] {Default Queue} discarded wl_surface#2407.enter(wl_output#2329) -[2618206.575] {Default Queue} discarded wl_surface#2407.enter(wl_output#2361) -[2618206.579] {Default Queue} discarded wl_surface#2407.enter(wl_output#2393) -[2618206.583] {Default Queue} discarded wl_surface#2407.enter(wl_output#2425) -[2618206.587] {Default Queue} -> wl_compositor#2380.create_surface(new id wl_surface#2439) -[2618206.592] {Default Queue} -> wl_subcompositor#2445.get_subsurface(new id wl_subsurface#2458, wl_surface#2439, wl_surface#2375) -[2618206.599] {Default Queue} -> wl_subsurface#2458.set_desync() -[2618206.604] {Default Queue} -> wl_subsurface#2458.set_position(0, 0) -[2618206.608] {Default Queue} -> wl_subsurface#2458.place_above(wl_surface#2375) -[2618206.654] {Default Queue} -> wl_shm#2447.create_pool(new id wl_shm_pool#2459, fd 389, 16) -[2618206.662] {Default Queue} -> wl_shm#2447.create_pool(new id wl_shm_pool#2460, fd 390, 16) -[2618206.669] {Default Queue} -> wl_shm_pool#2459.create_buffer(new id wl_buffer#2461, 0, 2, 2, 8, 0) -[2618206.675] {Default Queue} -> wl_shm_pool#2460.create_buffer(new id wl_buffer#2462, 0, 2, 2, 8, 0) -[2618206.683] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) -[2618206.688] {Default Queue} -> wl_surface#2439.commit() -[2618206.694] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) -[2618206.699] {Default Queue} -> wl_surface#2439.commit() -[2618206.703] {Default Queue} -> wl_compositor#2444.create_region(new id wl_region#2463) -[2618206.708] {Default Queue} -> wl_compositor#2444.create_region(new id wl_region#2464) -[2618206.712] {Default Queue} -> wl_region#2463.subtract(0, 0, 2, 2) -[2618206.717] {Default Queue} -> wl_region#2463.add(0, 0, 0, 0) -[2618206.721] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) -[2618206.725] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) -[2618206.730] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) -[2618206.734] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) -[2618206.741] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) -[2618206.746] {Default Queue} -> wl_surface#2439.commit() -[2618206.787] {Default Queue} -> wl_shm#2449.create_pool(new id wl_shm_pool#2465, fd 393, 640) -[2618206.795] {Default Queue} -> wl_shm#2449.create_pool(new id wl_shm_pool#2466, fd 394, 640) -[2618206.799] {Default Queue} -> wl_shm_pool#2465.create_buffer(new id wl_buffer#2467, 0, 10, 16, 40, 0) -[2618206.804] {Default Queue} -> wl_shm_pool#2466.create_buffer(new id wl_buffer#2468, 0, 10, 16, 40, 0) -[2618206.812] {Default Queue} -> wl_compositor#2444.create_surface(new id wl_surface#2469) -[2618206.816] {Default Queue} -> wl_surface#2469.attach(wl_buffer#2467, 0, 0) -[2618206.821] {Default Queue} -> wl_surface#2469.commit() -[2618206.826] {Default Queue} -> wl_surface#2469.attach(wl_buffer#2467, 0, 0) -[2618206.831] {Default Queue} -> wl_surface#2469.commit() -[2618206.836] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) -[2618206.844] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2470) -[2618206.849] {Default Queue} -> wl_display#1.sync(new id wl_callback#2471) -[2618210.260] {Display Queue} wl_display#1.delete_id(2471) -[2618210.272] {Default Queue} wl_keyboard#2440.keymap(1, fd 389, 68213) -[2618210.277] {Default Queue} wl_keyboard#2440.enter(566, wl_surface#19, array[0]) -[2618210.283] {Default Queue} wl_keyboard#2440.modifiers(566, 0, 0, 16, 0) -[2618210.287] {Default Queue} discarded wl_shm#2447.format(875709016) -[2618210.291] {Default Queue} discarded wl_shm#2447.format(1) -[2618210.295] {Default Queue} discarded wl_shm#2447.format(0) -[2618210.299] {Default Queue} discarded wl_shm#2447.format(875708993) -[2618210.303] {Default Queue} discarded wl_shm#2448.format(875709016) -[2618210.307] {Default Queue} discarded wl_shm#2448.format(1) -[2618210.311] {Default Queue} discarded wl_shm#2448.format(0) -[2618210.315] {Default Queue} discarded wl_shm#2448.format(875708993) -[2618210.319] {Default Queue} discarded wl_shm#2449.format(875709016) -[2618210.322] {Default Queue} discarded wl_shm#2449.format(1) -[2618210.326] {Default Queue} discarded wl_shm#2449.format(0) -[2618210.330] {Default Queue} discarded wl_shm#2449.format(875708993) -[2618210.334] {Default Queue} wl_seat#2456.capabilities(7) -[2618210.339] {Default Queue} -> wl_seat#2456.get_keyboard(new id wl_keyboard#2472) -[2618210.343] {Default Queue} -> wl_seat#2456.get_pointer(new id wl_pointer#2473) -[2618210.348] {Default Queue} -> wl_data_device_manager#2452.get_data_device(new id wl_data_device#2474, wl_seat#2456) -[2618210.353] {Default Queue} -> zwp_primary_selection_device_manager_v1#2454.get_device(new id zwp_primary_selection_device_v1#2475, wl_seat#2456) -[2618210.361] {Default Queue} wl_output#2457.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618210.366] {Default Queue} wl_output#2457.mode(3, 1280, 800, 60000) -[2618210.370] {Default Queue} discarded wl_surface#3.enter(wl_output#2457) -[2618210.374] {Default Queue} discarded wl_surface#999.enter(wl_output#2457) -[2618210.383] {Default Queue} discarded wl_surface#1191.enter(wl_output#2457) -[2618210.390] {Default Queue} discarded wl_surface#1159.enter(wl_output#2457) -[2618210.394] {Default Queue} discarded wl_surface#1703.enter(wl_output#2457) -[2618210.398] {Default Queue} discarded wl_surface#2215.enter(wl_output#2457) -[2618210.402] {Default Queue} discarded wl_surface#423.enter(wl_output#2457) -[2618210.406] {Default Queue} discarded wl_surface#1447.enter(wl_output#2457) -[2618210.409] {Default Queue} discarded wl_surface#2023.enter(wl_output#2457) -[2618210.413] {Default Queue} discarded wl_surface#1639.enter(wl_output#2457) -[2618210.417] {Default Queue} discarded wl_surface#1319.enter(wl_output#2457) -[2618210.421] {Default Queue} discarded wl_surface#1127.enter(wl_output#2457) -[2618210.425] {Default Queue} discarded wl_surface#2151.enter(wl_output#2457) -[2618210.429] {Default Queue} discarded wl_surface#2375.enter(wl_output#2457) -[2618210.433] {Default Queue} discarded wl_surface#1063.enter(wl_output#2457) -[2618210.437] {Default Queue} discarded wl_surface#455.enter(wl_output#2457) -[2618210.441] {Default Queue} discarded wl_surface#1575.enter(wl_output#2457) -[2618210.444] {Default Queue} discarded wl_surface#1799.enter(wl_output#2457) -[2618210.448] {Default Queue} discarded wl_surface#1415.enter(wl_output#2457) -[2618210.453] {Default Queue} discarded wl_surface#2279.enter(wl_output#2457) -[2618210.457] {Default Queue} discarded wl_surface#1831.enter(wl_output#2457) -[2618210.460] {Default Queue} discarded wl_surface#903.enter(wl_output#2457) -[2618210.464] {Default Queue} discarded wl_surface#775.enter(wl_output#2457) -[2618210.468] {Default Queue} discarded wl_surface#1991.enter(wl_output#2457) -[2618210.472] {Default Queue} discarded wl_surface#1543.enter(wl_output#2457) -[2618210.476] {Default Queue} discarded wl_surface#135.enter(wl_output#2457) -[2618210.480] {Default Queue} discarded wl_surface#1287.enter(wl_output#2457) -[2618210.484] {Default Queue} discarded wl_surface#1031.enter(wl_output#2457) -[2618210.488] {Default Queue} discarded wl_surface#615.enter(wl_output#2457) -[2618210.492] {Default Queue} discarded wl_surface#231.enter(wl_output#2457) -[2618210.496] {Default Queue} discarded wl_surface#2343.enter(wl_output#2457) -[2618210.499] {Default Queue} discarded wl_surface#1863.enter(wl_output#2457) -[2618210.503] {Default Queue} discarded wl_surface#359.enter(wl_output#2457) -[2618210.507] {Default Queue} discarded wl_surface#583.enter(wl_output#2457) -[2618210.511] {Default Queue} discarded wl_surface#743.enter(wl_output#2457) -[2618210.515] {Default Queue} discarded wl_surface#967.enter(wl_output#2457) -[2618210.519] {Default Queue} discarded wl_surface#103.enter(wl_output#2457) -[2618210.523] {Default Queue} discarded wl_surface#327.enter(wl_output#2457) -[2618210.527] {Default Queue} discarded wl_surface#43.enter(wl_output#2457) -[2618210.531] {Default Queue} discarded wl_surface#2247.enter(wl_output#2457) -[2618210.535] {Default Queue} discarded wl_surface#807.enter(wl_output#2457) -[2618210.539] {Default Queue} discarded wl_surface#19.enter(wl_output#2457) -[2618210.543] {Default Queue} discarded wl_surface#1511.enter(wl_output#2457) -[2618210.547] {Default Queue} discarded wl_surface#199.enter(wl_output#2457) -[2618210.551] {Default Queue} discarded wl_surface#391.enter(wl_output#2457) -[2618210.555] {Default Queue} discarded wl_surface#935.enter(wl_output#2457) -[2618210.559] {Default Queue} discarded wl_surface#1671.enter(wl_output#2457) -[2618210.563] {Default Queue} discarded wl_surface#1351.enter(wl_output#2457) -[2618210.566] {Default Queue} discarded wl_surface#711.enter(wl_output#2457) -[2618210.570] {Default Queue} discarded wl_surface#1223.enter(wl_output#2457) -[2618210.574] {Default Queue} discarded wl_surface#1927.enter(wl_output#2457) -[2618210.578] {Default Queue} discarded wl_surface#871.enter(wl_output#2457) -[2618210.582] {Default Queue} discarded wl_surface#1895.enter(wl_output#2457) -[2618210.586] {Default Queue} discarded wl_surface#263.enter(wl_output#2457) -[2618210.590] {Default Queue} discarded wl_surface#551.enter(wl_output#2457) -[2618210.597] {Default Queue} discarded wl_surface#1735.enter(wl_output#2457) -[2618210.603] {Default Queue} discarded wl_surface#1479.enter(wl_output#2457) -[2618210.607] {Default Queue} discarded wl_surface#1772.enter(wl_output#2457) -[2618210.611] {Default Queue} discarded wl_surface#1959.enter(wl_output#2457) -[2618210.615] {Default Queue} discarded wl_surface#647.enter(wl_output#2457) -[2618210.618] {Default Queue} discarded wl_surface#2055.enter(wl_output#2457) -[2618210.622] {Default Queue} discarded wl_surface#71.enter(wl_output#2457) -[2618210.626] {Default Queue} discarded wl_surface#2183.enter(wl_output#2457) -[2618210.630] {Default Queue} discarded wl_surface#839.enter(wl_output#2457) -[2618210.634] {Default Queue} discarded wl_surface#1607.enter(wl_output#2457) -[2618210.638] {Default Queue} discarded wl_surface#1095.enter(wl_output#2457) -[2618210.642] {Default Queue} discarded wl_surface#1383.enter(wl_output#2457) -[2618210.646] {Default Queue} discarded wl_surface#487.enter(wl_output#2457) -[2618210.650] {Default Queue} discarded wl_surface#2311.enter(wl_output#2457) -[2618210.654] {Default Queue} discarded wl_surface#519.enter(wl_output#2457) -[2618210.658] {Default Queue} discarded wl_surface#2087.enter(wl_output#2457) -[2618210.661] {Default Queue} discarded wl_surface#295.enter(wl_output#2457) -[2618210.665] {Default Queue} discarded wl_surface#167.enter(wl_output#2457) -[2618210.669] {Default Queue} discarded wl_surface#1255.enter(wl_output#2457) -[2618210.673] {Default Queue} discarded wl_surface#679.enter(wl_output#2457) -[2618210.677] {Default Queue} discarded wl_surface#2407.enter(wl_output#2457) -[2618210.681] {Default Queue} discarded wl_surface#2119.enter(wl_output#2457) -[2618210.685] {Default Queue} wl_registry#2470.global(1, "wl_compositor", 6) -[2618210.690] {Default Queue} -> wl_registry#2470.bind(1, "wl_compositor", 1, new id [unknown]#2476) -[2618210.695] {Default Queue} wl_registry#2470.global(2, "wl_subcompositor", 1) -[2618210.700] {Default Queue} -> wl_registry#2470.bind(2, "wl_subcompositor", 1, new id [unknown]#2477) -[2618210.704] {Default Queue} wl_registry#2470.global(3, "xdg_wm_base", 6) -[2618210.709] {Default Queue} -> wl_registry#2470.bind(3, "xdg_wm_base", 1, new id [unknown]#2478) -[2618210.713] {Default Queue} wl_registry#2470.global(6, "zwlr_layer_shell_v1", 5) -[2618210.718] {Default Queue} wl_registry#2470.global(7, "ext_session_lock_manager_v1", 1) -[2618210.722] {Default Queue} wl_registry#2470.global(8, "wl_shm", 2) -[2618210.727] {Default Queue} -> wl_registry#2470.bind(8, "wl_shm", 1, new id [unknown]#2479) -[2618210.732] {Default Queue} -> wl_registry#2470.bind(8, "wl_shm", 1, new id [unknown]#2480) -[2618210.736] {Default Queue} -> wl_registry#2470.bind(8, "wl_shm", 1, new id [unknown]#2481) -[2618210.740] {Default Queue} wl_registry#2470.global(9, "zxdg_output_manager_v1", 3) -[2618210.745] {Default Queue} wl_registry#2470.global(10, "wp_fractional_scale_manager_v1", 1) -[2618210.749] {Default Queue} wl_registry#2470.global(11, "zwp_tablet_manager_v2", 1) -[2618210.754] {Default Queue} wl_registry#2470.global(12, "zwp_pointer_gestures_v1", 3) -[2618210.758] {Default Queue} wl_registry#2470.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618210.762] {Default Queue} -> wl_registry#2470.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2482) -[2618210.767] {Default Queue} wl_registry#2470.global(14, "zwp_pointer_constraints_v1", 1) -[2618210.771] {Default Queue} -> wl_registry#2470.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2483) -[2618210.776] {Default Queue} wl_registry#2470.global(15, "ext_idle_notifier_v1", 2) -[2618210.780] {Default Queue} wl_registry#2470.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618210.785] {Default Queue} wl_registry#2470.global(17, "wl_data_device_manager", 3) -[2618210.790] {Default Queue} -> wl_registry#2470.bind(17, "wl_data_device_manager", 2, new id [unknown]#2484) -[2618210.794] {Default Queue} -> wl_data_device_manager#2484.create_data_source(new id wl_data_source#2485) -[2618210.801] {Default Queue} -> wl_data_source#2485.offer("text/plain") -[2618210.807] {Default Queue} -> wl_data_source#2485.offer("text/plain;charset=utf-8") -[2618210.811] {Default Queue} -> wl_data_source#2485.offer("TEXT") -[2618210.815] {Default Queue} -> wl_data_source#2485.offer("STRING") -[2618210.819] {Default Queue} -> wl_data_source#2485.offer("UTF8_STRING") -[2618210.823] {Default Queue} wl_registry#2470.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618210.828] {Default Queue} -> wl_registry#2470.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2486) -[2618210.836] {Default Queue} -> zwp_primary_selection_device_manager_v1#2486.create_source(new id zwp_primary_selection_source_v1#2487) -[2618210.844] {Default Queue} -> zwp_primary_selection_source_v1#2487.offer("text/plain") -[2618210.848] {Default Queue} -> zwp_primary_selection_source_v1#2487.offer("text/plain;charset=utf-8") -[2618210.852] {Default Queue} -> zwp_primary_selection_source_v1#2487.offer("TEXT") -[2618210.856] {Default Queue} -> zwp_primary_selection_source_v1#2487.offer("STRING") -[2618210.868] {Default Queue} -> zwp_primary_selection_source_v1#2487.offer("UTF8_STRING") -[2618210.872] {Default Queue} wl_registry#2470.global(19, "zwlr_data_control_manager_v1", 2) -[2618210.877] {Default Queue} wl_registry#2470.global(20, "ext_data_control_manager_v1", 1) -[2618210.881] {Default Queue} wl_registry#2470.global(21, "wp_presentation", 2) -[2618210.914] {Default Queue} wl_registry#2470.global(22, "wp_security_context_manager_v1", 1) -[2618210.920] {Default Queue} wl_registry#2470.global(23, "zwp_text_input_manager_v3", 1) -[2618210.925] {Default Queue} wl_registry#2470.global(24, "zwp_input_method_manager_v2", 1) -[2618210.930] {Default Queue} wl_registry#2470.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618210.935] {Default Queue} wl_registry#2470.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618210.939] {Default Queue} wl_registry#2470.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618210.945] {Default Queue} wl_registry#2470.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618210.949] {Default Queue} wl_registry#2470.global(29, "ext_workspace_manager_v1", 1) -[2618210.953] {Default Queue} wl_registry#2470.global(30, "zwlr_output_manager_v1", 4) -[2618210.958] {Default Queue} wl_registry#2470.global(31, "zwlr_screencopy_manager_v1", 3) -[2618210.962] {Default Queue} wl_registry#2470.global(32, "wp_viewporter", 1) -[2618210.967] {Default Queue} wl_registry#2470.global(33, "zxdg_exporter_v2", 1) -[2618210.971] {Default Queue} wl_registry#2470.global(34, "zxdg_importer_v2", 1) -[2618210.975] {Default Queue} wl_registry#2470.global(36, "xdg_activation_v1", 1) -[2618210.979] {Default Queue} wl_registry#2470.global(37, "mutter_x11_interop", 1) -[2618210.983] {Default Queue} wl_registry#2470.global(38, "wl_seat", 9) -[2618210.989] {Default Queue} -> wl_registry#2470.bind(38, "wl_seat", 1, new id [unknown]#2488) -[2618210.994] {Default Queue} wl_registry#2470.global(39, "wp_cursor_shape_manager_v1", 2) -[2618210.998] {Default Queue} wl_registry#2470.global(40, "wl_output", 4) -[2618211.003] {Default Queue} -> wl_registry#2470.bind(40, "wl_output", 1, new id [unknown]#2489) -[2618211.007] {Default Queue} wl_callback#2471.done(0) -[2618211.012] {Default Queue} discarded wl_surface#2439.enter(wl_output#18) -[2618211.016] {Default Queue} discarded wl_surface#2439.enter(wl_output#57) -[2618211.020] {Default Queue} discarded wl_surface#2439.enter(wl_output#89) -[2618211.024] {Default Queue} discarded wl_surface#2439.enter(wl_output#121) -[2618211.028] {Default Queue} discarded wl_surface#2439.enter(wl_output#153) -[2618211.032] {Default Queue} discarded wl_surface#2439.enter(wl_output#185) -[2618211.036] {Default Queue} discarded wl_surface#2439.enter(wl_output#217) -[2618211.040] {Default Queue} discarded wl_surface#2439.enter(wl_output#249) -[2618211.044] {Default Queue} discarded wl_surface#2439.enter(wl_output#281) -[2618211.048] {Default Queue} discarded wl_surface#2439.enter(wl_output#313) -[2618211.052] {Default Queue} discarded wl_surface#2439.enter(wl_output#345) -[2618211.061] {Default Queue} discarded wl_surface#2439.enter(wl_output#377) -[2618211.068] {Default Queue} discarded wl_surface#2439.enter(wl_output#409) -[2618211.072] {Default Queue} discarded wl_surface#2439.enter(wl_output#441) -[2618211.076] {Default Queue} discarded wl_surface#2439.enter(wl_output#473) -[2618211.080] {Default Queue} discarded wl_surface#2439.enter(wl_output#505) -[2618211.084] {Default Queue} discarded wl_surface#2439.enter(wl_output#537) -[2618211.088] {Default Queue} discarded wl_surface#2439.enter(wl_output#569) -[2618211.092] {Default Queue} discarded wl_surface#2439.enter(wl_output#601) -[2618211.096] {Default Queue} discarded wl_surface#2439.enter(wl_output#633) -[2618211.100] {Default Queue} discarded wl_surface#2439.enter(wl_output#665) -[2618211.104] {Default Queue} discarded wl_surface#2439.enter(wl_output#697) -[2618211.108] {Default Queue} discarded wl_surface#2439.enter(wl_output#729) -[2618211.112] {Default Queue} discarded wl_surface#2439.enter(wl_output#761) -[2618211.116] {Default Queue} discarded wl_surface#2439.enter(wl_output#793) -[2618211.120] {Default Queue} discarded wl_surface#2439.enter(wl_output#825) -[2618211.124] {Default Queue} discarded wl_surface#2439.enter(wl_output#857) -[2618211.128] {Default Queue} discarded wl_surface#2439.enter(wl_output#889) -[2618211.132] {Default Queue} discarded wl_surface#2439.enter(wl_output#921) -[2618211.136] {Default Queue} discarded wl_surface#2439.enter(wl_output#953) -[2618211.139] {Default Queue} discarded wl_surface#2439.enter(wl_output#985) -[2618211.143] {Default Queue} discarded wl_surface#2439.enter(wl_output#1017) -[2618211.147] {Default Queue} discarded wl_surface#2439.enter(wl_output#1049) -[2618211.152] {Default Queue} discarded wl_surface#2439.enter(wl_output#1081) -[2618211.155] {Default Queue} discarded wl_surface#2439.enter(wl_output#1113) -[2618211.159] {Default Queue} discarded wl_surface#2439.enter(wl_output#1145) -[2618211.164] {Default Queue} discarded wl_surface#2439.enter(wl_output#1177) -[2618211.168] {Default Queue} discarded wl_surface#2439.enter(wl_output#1209) -[2618211.171] {Default Queue} discarded wl_surface#2439.enter(wl_output#1241) -[2618211.175] {Default Queue} discarded wl_surface#2439.enter(wl_output#1273) -[2618211.180] {Default Queue} discarded wl_surface#2439.enter(wl_output#1305) -[2618211.184] {Default Queue} discarded wl_surface#2439.enter(wl_output#1337) -[2618211.187] {Default Queue} discarded wl_surface#2439.enter(wl_output#1369) -[2618211.191] {Default Queue} discarded wl_surface#2439.enter(wl_output#1401) -[2618211.195] {Default Queue} discarded wl_surface#2439.enter(wl_output#1433) -[2618211.199] {Default Queue} discarded wl_surface#2439.enter(wl_output#1465) -[2618211.203] {Default Queue} discarded wl_surface#2439.enter(wl_output#1497) -[2618211.207] {Default Queue} discarded wl_surface#2439.enter(wl_output#1529) -[2618211.211] {Default Queue} discarded wl_surface#2439.enter(wl_output#1561) -[2618211.215] {Default Queue} discarded wl_surface#2439.enter(wl_output#1593) -[2618211.219] {Default Queue} discarded wl_surface#2439.enter(wl_output#1625) -[2618211.223] {Default Queue} discarded wl_surface#2439.enter(wl_output#1657) -[2618211.227] {Default Queue} discarded wl_surface#2439.enter(wl_output#1689) -[2618211.231] {Default Queue} discarded wl_surface#2439.enter(wl_output#1721) -[2618211.235] {Default Queue} discarded wl_surface#2439.enter(wl_output#1753) -[2618211.239] {Default Queue} discarded wl_surface#2439.enter(wl_output#1785) -[2618211.243] {Default Queue} discarded wl_surface#2439.enter(wl_output#1817) -[2618211.247] {Default Queue} discarded wl_surface#2439.enter(wl_output#1849) -[2618211.251] {Default Queue} discarded wl_surface#2439.enter(wl_output#1881) -[2618211.255] {Default Queue} discarded wl_surface#2439.enter(wl_output#1913) -[2618211.258] {Default Queue} discarded wl_surface#2439.enter(wl_output#1945) -[2618211.262] {Default Queue} discarded wl_surface#2439.enter(wl_output#1977) -[2618211.266] {Default Queue} discarded wl_surface#2439.enter(wl_output#2009) -[2618211.273] {Default Queue} discarded wl_surface#2439.enter(wl_output#2041) -[2618211.279] {Default Queue} discarded wl_surface#2439.enter(wl_output#2073) -[2618211.283] {Default Queue} discarded wl_surface#2439.enter(wl_output#2105) -[2618211.287] {Default Queue} discarded wl_surface#2439.enter(wl_output#2137) -[2618211.291] {Default Queue} discarded wl_surface#2439.enter(wl_output#2169) -[2618211.295] {Default Queue} discarded wl_surface#2439.enter(wl_output#2201) -[2618211.299] {Default Queue} discarded wl_surface#2439.enter(wl_output#2233) -[2618211.303] {Default Queue} discarded wl_surface#2439.enter(wl_output#2265) -[2618211.307] {Default Queue} discarded wl_surface#2439.enter(wl_output#2297) -[2618211.312] {Default Queue} discarded wl_surface#2439.enter(wl_output#2329) -[2618211.317] {Default Queue} discarded wl_surface#2439.enter(wl_output#2361) -[2618211.323] {Default Queue} discarded wl_surface#2439.enter(wl_output#2393) -[2618211.327] {Default Queue} discarded wl_surface#2439.enter(wl_output#2425) -[2618211.331] {Default Queue} discarded wl_surface#2439.enter(wl_output#2457) -[2618211.335] {Default Queue} -> wl_compositor#2444.create_surface(new id wl_surface#2471) -[2618211.340] {Default Queue} -> wl_subcompositor#2477.get_subsurface(new id wl_subsurface#2490, wl_surface#2471, wl_surface#2439) -[2618211.348] {Default Queue} -> wl_subsurface#2490.set_desync() -[2618211.352] {Default Queue} -> wl_subsurface#2490.set_position(0, 0) -[2618211.357] {Default Queue} -> wl_subsurface#2490.place_above(wl_surface#2439) -[2618211.407] {Default Queue} -> wl_shm#2479.create_pool(new id wl_shm_pool#2491, fd 394, 16) -[2618211.415] {Default Queue} -> wl_shm#2479.create_pool(new id wl_shm_pool#2492, fd 395, 16) -[2618211.419] {Default Queue} -> wl_shm_pool#2491.create_buffer(new id wl_buffer#2493, 0, 2, 2, 8, 0) -[2618211.424] {Default Queue} -> wl_shm_pool#2492.create_buffer(new id wl_buffer#2494, 0, 2, 2, 8, 0) -[2618211.434] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) -[2618211.439] {Default Queue} -> wl_surface#2471.commit() -[2618211.444] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) -[2618211.449] {Default Queue} -> wl_surface#2471.commit() -[2618211.453] {Default Queue} -> wl_compositor#2476.create_region(new id wl_region#2495) -[2618211.457] {Default Queue} -> wl_compositor#2476.create_region(new id wl_region#2496) -[2618211.461] {Default Queue} -> wl_region#2495.subtract(0, 0, 2, 2) -[2618211.466] {Default Queue} -> wl_region#2495.add(0, 0, 0, 0) -[2618211.470] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618211.475] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618211.479] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) -[2618211.483] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) -[2618211.490] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) -[2618211.495] {Default Queue} -> wl_surface#2471.commit() -[2618211.528] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2497, fd 398, 640) -[2618211.535] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2498, fd 399, 640) -[2618211.539] {Default Queue} -> wl_shm_pool#2497.create_buffer(new id wl_buffer#2499, 0, 10, 16, 40, 0) -[2618211.544] {Default Queue} -> wl_shm_pool#2498.create_buffer(new id wl_buffer#2500, 0, 10, 16, 40, 0) -[2618211.551] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#2501) -[2618211.555] {Default Queue} -> wl_surface#2501.attach(wl_buffer#2499, 0, 0) -[2618211.560] {Default Queue} -> wl_surface#2501.commit() -[2618211.565] {Default Queue} -> wl_surface#2501.attach(wl_buffer#2499, 0, 0) -[2618211.569] {Default Queue} -> wl_surface#2501.commit() -[2618211.582] {Default Queue} -> wl_buffer#2499.destroy() -[2618211.588] {Default Queue} -> wl_buffer#2500.destroy() -[2618211.592] {Default Queue} -> wl_shm_pool#2497.destroy() -[2618211.597] {Default Queue} -> wl_shm_pool#2498.destroy() -[2618211.602] {Default Queue} -> wl_surface#2501.destroy() -[2618211.634] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2502, fd 400, 576) -[2618211.644] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2503, fd 401, 576) -[2618211.651] {Default Queue} -> wl_shm_pool#2502.create_buffer(new id wl_buffer#2504, 0, 9, 16, 36, 0) -[2618211.655] {Default Queue} -> wl_shm_pool#2503.create_buffer(new id wl_buffer#2505, 0, 9, 16, 36, 0) -[2618211.662] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#2506) -[2618211.666] {Default Queue} -> wl_surface#2506.attach(wl_buffer#2504, 0, 0) -[2618211.671] {Default Queue} -> wl_surface#2506.commit() -[2618211.676] {Default Queue} -> wl_surface#2506.attach(wl_buffer#2504, 0, 0) -[2618211.680] {Default Queue} -> wl_surface#2506.commit() -[2618211.691] {Default Queue} -> wl_region#2399.subtract(0, 0, 2, 2) -[2618211.696] {Default Queue} -> wl_subsurface#2394.set_position(3, 3) -[2618211.701] {Default Queue} -> wl_region#2399.subtract(0, 0, 5, 5) -[2618211.705] {Default Queue} -> wl_region#2399.add(0, 0, 0, 0) -[2618211.710] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) -[2618211.715] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) -[2618211.719] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618211.724] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) -[2618211.728] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) -[2618211.732] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) -[2618211.740] {Default Queue} -> wl_region#2399.subtract(0, 0, 5, 5) -[2618211.746] {Default Queue} -> wl_region#2399.add(0, 0, 0, 0) -[2618211.751] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) -[2618211.755] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) -[2618211.761] {Default Queue} -> wl_surface#2375.attach(wl_buffer#2397, 0, 0) -[2618211.766] {Default Queue} -> wl_surface#2375.commit() -[2618211.773] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2507) -[2618211.779] {Default Queue} -> wl_display#1.sync(new id wl_callback#2508) -[2618215.249] {Display Queue} wl_display#1.delete_id(2499) -[2618215.262] {Display Queue} wl_display#1.delete_id(2500) -[2618215.268] {Display Queue} wl_display#1.delete_id(2497) -[2618215.272] {Display Queue} wl_display#1.delete_id(2498) -[2618215.276] {Display Queue} wl_display#1.delete_id(2501) -[2618215.280] {Display Queue} wl_display#1.delete_id(2508) -[2618215.284] {Default Queue} wl_keyboard#2472.keymap(1, fd 394, 68213) -[2618215.289] {Default Queue} wl_keyboard#2472.enter(566, wl_surface#19, array[0]) -[2618215.294] {Default Queue} wl_keyboard#2472.modifiers(566, 0, 0, 16, 0) -[2618215.299] {Default Queue} discarded wl_shm#2479.format(875709016) -[2618215.303] {Default Queue} discarded wl_shm#2479.format(1) -[2618215.307] {Default Queue} discarded wl_shm#2479.format(0) -[2618215.312] {Default Queue} discarded wl_shm#2479.format(875708993) -[2618215.316] {Default Queue} discarded wl_shm#2480.format(875709016) -[2618215.321] {Default Queue} discarded wl_shm#2480.format(1) -[2618215.325] {Default Queue} discarded wl_shm#2480.format(0) -[2618215.329] {Default Queue} discarded wl_shm#2480.format(875708993) -[2618215.332] {Default Queue} discarded wl_shm#2481.format(875709016) -[2618215.336] {Default Queue} discarded wl_shm#2481.format(1) -[2618215.340] {Default Queue} discarded wl_shm#2481.format(0) -[2618215.344] {Default Queue} discarded wl_shm#2481.format(875708993) -[2618215.348] {Default Queue} wl_seat#2488.capabilities(7) -[2618215.352] {Default Queue} -> wl_seat#2488.get_keyboard(new id wl_keyboard#2501) -[2618215.357] {Default Queue} -> wl_seat#2488.get_pointer(new id wl_pointer#2498) -[2618215.361] {Default Queue} -> wl_data_device_manager#2484.get_data_device(new id wl_data_device#2497, wl_seat#2488) -[2618215.367] {Default Queue} -> zwp_primary_selection_device_manager_v1#2486.get_device(new id zwp_primary_selection_device_v1#2500, wl_seat#2488) -[2618215.375] {Default Queue} wl_output#2489.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618215.380] {Default Queue} wl_output#2489.mode(3, 1280, 800, 60000) -[2618215.385] {Default Queue} discarded wl_surface#3.enter(wl_output#2489) -[2618215.395] {Default Queue} discarded wl_surface#999.enter(wl_output#2489) -[2618215.403] {Default Queue} discarded wl_surface#1191.enter(wl_output#2489) -[2618215.407] {Default Queue} discarded wl_surface#1159.enter(wl_output#2489) -[2618215.411] {Default Queue} discarded wl_surface#1703.enter(wl_output#2489) -[2618215.415] {Default Queue} discarded wl_surface#2215.enter(wl_output#2489) -[2618215.418] {Default Queue} discarded wl_surface#423.enter(wl_output#2489) -[2618215.422] {Default Queue} discarded wl_surface#1447.enter(wl_output#2489) -[2618215.426] {Default Queue} discarded wl_surface#2023.enter(wl_output#2489) -[2618215.430] {Default Queue} discarded wl_surface#1639.enter(wl_output#2489) -[2618215.434] {Default Queue} discarded wl_surface#1319.enter(wl_output#2489) -[2618215.438] {Default Queue} discarded wl_surface#1127.enter(wl_output#2489) -[2618215.442] {Default Queue} discarded wl_surface#2151.enter(wl_output#2489) -[2618215.446] {Default Queue} discarded wl_surface#2375.enter(wl_output#2489) -[2618215.450] {Default Queue} discarded wl_surface#1063.enter(wl_output#2489) -[2618215.453] {Default Queue} discarded wl_surface#455.enter(wl_output#2489) -[2618215.457] {Default Queue} discarded wl_surface#1575.enter(wl_output#2489) -[2618215.461] {Default Queue} discarded wl_surface#1799.enter(wl_output#2489) -[2618215.465] {Default Queue} discarded wl_surface#1415.enter(wl_output#2489) -[2618215.469] {Default Queue} discarded wl_surface#2439.enter(wl_output#2489) -[2618215.473] {Default Queue} discarded wl_surface#2279.enter(wl_output#2489) -[2618215.477] {Default Queue} discarded wl_surface#1831.enter(wl_output#2489) -[2618215.481] {Default Queue} discarded wl_surface#903.enter(wl_output#2489) -[2618215.485] {Default Queue} discarded wl_surface#775.enter(wl_output#2489) -[2618215.489] {Default Queue} discarded wl_surface#1991.enter(wl_output#2489) -[2618215.493] {Default Queue} discarded wl_surface#1543.enter(wl_output#2489) -[2618215.497] {Default Queue} discarded wl_surface#135.enter(wl_output#2489) -[2618215.501] {Default Queue} discarded wl_surface#1287.enter(wl_output#2489) -[2618215.504] {Default Queue} discarded wl_surface#1031.enter(wl_output#2489) -[2618215.508] {Default Queue} discarded wl_surface#615.enter(wl_output#2489) -[2618215.512] {Default Queue} discarded wl_surface#231.enter(wl_output#2489) -[2618215.516] {Default Queue} discarded wl_surface#2343.enter(wl_output#2489) -[2618215.520] {Default Queue} discarded wl_surface#1863.enter(wl_output#2489) -[2618215.524] {Default Queue} discarded wl_surface#359.enter(wl_output#2489) -[2618215.528] {Default Queue} discarded wl_surface#583.enter(wl_output#2489) -[2618215.532] {Default Queue} discarded wl_surface#743.enter(wl_output#2489) -[2618215.536] {Default Queue} discarded wl_surface#967.enter(wl_output#2489) -[2618215.540] {Default Queue} discarded wl_surface#103.enter(wl_output#2489) -[2618215.544] {Default Queue} discarded wl_surface#327.enter(wl_output#2489) -[2618215.548] {Default Queue} discarded wl_surface#43.enter(wl_output#2489) -[2618215.551] {Default Queue} discarded wl_surface#2247.enter(wl_output#2489) -[2618215.555] {Default Queue} discarded wl_surface#807.enter(wl_output#2489) -[2618215.559] {Default Queue} discarded wl_surface#19.enter(wl_output#2489) -[2618215.563] {Default Queue} discarded wl_surface#1511.enter(wl_output#2489) -[2618215.567] {Default Queue} discarded wl_surface#199.enter(wl_output#2489) -[2618215.571] {Default Queue} discarded wl_surface#391.enter(wl_output#2489) -[2618215.575] {Default Queue} discarded wl_surface#935.enter(wl_output#2489) -[2618215.579] {Default Queue} discarded wl_surface#1671.enter(wl_output#2489) -[2618215.582] {Default Queue} discarded wl_surface#1351.enter(wl_output#2489) -[2618215.586] {Default Queue} discarded wl_surface#711.enter(wl_output#2489) -[2618215.590] {Default Queue} discarded wl_surface#1223.enter(wl_output#2489) -[2618215.594] {Default Queue} discarded wl_surface#1927.enter(wl_output#2489) -[2618215.598] {Default Queue} discarded wl_surface#871.enter(wl_output#2489) -[2618215.602] {Default Queue} discarded wl_surface#1895.enter(wl_output#2489) -[2618215.609] {Default Queue} discarded wl_surface#263.enter(wl_output#2489) -[2618215.614] {Default Queue} discarded wl_surface#551.enter(wl_output#2489) -[2618215.618] {Default Queue} discarded wl_surface#1735.enter(wl_output#2489) -[2618215.622] {Default Queue} discarded wl_surface#1479.enter(wl_output#2489) -[2618215.626] {Default Queue} discarded wl_surface#1772.enter(wl_output#2489) -[2618215.630] {Default Queue} discarded wl_surface#1959.enter(wl_output#2489) -[2618215.635] {Default Queue} discarded wl_surface#647.enter(wl_output#2489) -[2618215.639] {Default Queue} discarded wl_surface#2055.enter(wl_output#2489) -[2618215.643] {Default Queue} discarded wl_surface#71.enter(wl_output#2489) -[2618215.646] {Default Queue} discarded wl_surface#2183.enter(wl_output#2489) -[2618215.650] {Default Queue} discarded wl_surface#839.enter(wl_output#2489) -[2618215.654] {Default Queue} discarded wl_surface#1607.enter(wl_output#2489) -[2618215.658] {Default Queue} discarded wl_surface#1095.enter(wl_output#2489) -[2618215.662] {Default Queue} discarded wl_surface#1383.enter(wl_output#2489) -[2618215.666] {Default Queue} discarded wl_surface#487.enter(wl_output#2489) -[2618215.670] {Default Queue} discarded wl_surface#2311.enter(wl_output#2489) -[2618215.674] {Default Queue} discarded wl_surface#519.enter(wl_output#2489) -[2618215.678] {Default Queue} discarded wl_surface#2087.enter(wl_output#2489) -[2618215.681] {Default Queue} discarded wl_surface#295.enter(wl_output#2489) -[2618215.685] {Default Queue} discarded wl_surface#167.enter(wl_output#2489) -[2618215.689] {Default Queue} discarded wl_surface#1255.enter(wl_output#2489) -[2618215.693] {Default Queue} discarded wl_surface#679.enter(wl_output#2489) -[2618215.697] {Default Queue} discarded wl_surface#2407.enter(wl_output#2489) -[2618215.701] {Default Queue} discarded wl_surface#2119.enter(wl_output#2489) -[2618215.705] {Default Queue} wl_registry#2507.global(1, "wl_compositor", 6) -[2618215.711] {Default Queue} -> wl_registry#2507.bind(1, "wl_compositor", 1, new id [unknown]#2499) -[2618215.715] {Default Queue} wl_registry#2507.global(2, "wl_subcompositor", 1) -[2618215.721] {Default Queue} -> wl_registry#2507.bind(2, "wl_subcompositor", 1, new id [unknown]#2509) -[2618215.725] {Default Queue} wl_registry#2507.global(3, "xdg_wm_base", 6) -[2618215.730] {Default Queue} -> wl_registry#2507.bind(3, "xdg_wm_base", 1, new id [unknown]#2510) -[2618215.734] {Default Queue} wl_registry#2507.global(6, "zwlr_layer_shell_v1", 5) -[2618215.739] {Default Queue} wl_registry#2507.global(7, "ext_session_lock_manager_v1", 1) -[2618215.743] {Default Queue} wl_registry#2507.global(8, "wl_shm", 2) -[2618215.748] {Default Queue} -> wl_registry#2507.bind(8, "wl_shm", 1, new id [unknown]#2511) -[2618215.752] {Default Queue} -> wl_registry#2507.bind(8, "wl_shm", 1, new id [unknown]#2512) -[2618215.757] {Default Queue} -> wl_registry#2507.bind(8, "wl_shm", 1, new id [unknown]#2513) -[2618215.761] {Default Queue} wl_registry#2507.global(9, "zxdg_output_manager_v1", 3) -[2618215.765] {Default Queue} wl_registry#2507.global(10, "wp_fractional_scale_manager_v1", 1) -[2618215.770] {Default Queue} wl_registry#2507.global(11, "zwp_tablet_manager_v2", 1) -[2618215.774] {Default Queue} wl_registry#2507.global(12, "zwp_pointer_gestures_v1", 3) -[2618215.778] {Default Queue} wl_registry#2507.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618215.783] {Default Queue} -> wl_registry#2507.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2514) -[2618215.787] {Default Queue} wl_registry#2507.global(14, "zwp_pointer_constraints_v1", 1) -[2618215.792] {Default Queue} -> wl_registry#2507.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2515) -[2618215.796] {Default Queue} wl_registry#2507.global(15, "ext_idle_notifier_v1", 2) -[2618215.801] {Default Queue} wl_registry#2507.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618215.805] {Default Queue} wl_registry#2507.global(17, "wl_data_device_manager", 3) -[2618215.810] {Default Queue} -> wl_registry#2507.bind(17, "wl_data_device_manager", 2, new id [unknown]#2516) -[2618215.818] {Default Queue} -> wl_data_device_manager#2516.create_data_source(new id wl_data_source#2517) -[2618215.823] {Default Queue} -> wl_data_source#2517.offer("text/plain") -[2618215.828] {Default Queue} -> wl_data_source#2517.offer("text/plain;charset=utf-8") -[2618215.832] {Default Queue} -> wl_data_source#2517.offer("TEXT") -[2618215.836] {Default Queue} -> wl_data_source#2517.offer("STRING") -[2618215.840] {Default Queue} -> wl_data_source#2517.offer("UTF8_STRING") -[2618215.844] {Default Queue} wl_registry#2507.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618215.849] {Default Queue} -> wl_registry#2507.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2518) -[2618215.857] {Default Queue} -> zwp_primary_selection_device_manager_v1#2518.create_source(new id zwp_primary_selection_source_v1#2519) -[2618215.871] {Default Queue} -> zwp_primary_selection_source_v1#2519.offer("text/plain") -[2618215.876] {Default Queue} -> zwp_primary_selection_source_v1#2519.offer("text/plain;charset=utf-8") -[2618215.880] {Default Queue} -> zwp_primary_selection_source_v1#2519.offer("TEXT") -[2618215.885] {Default Queue} -> zwp_primary_selection_source_v1#2519.offer("STRING") -[2618215.888] {Default Queue} -> zwp_primary_selection_source_v1#2519.offer("UTF8_STRING") -[2618215.893] {Default Queue} wl_registry#2507.global(19, "zwlr_data_control_manager_v1", 2) -[2618215.899] {Default Queue} wl_registry#2507.global(20, "ext_data_control_manager_v1", 1) -[2618215.904] {Default Queue} wl_registry#2507.global(21, "wp_presentation", 2) -[2618215.909] {Default Queue} wl_registry#2507.global(22, "wp_security_context_manager_v1", 1) -[2618215.913] {Default Queue} wl_registry#2507.global(23, "zwp_text_input_manager_v3", 1) -[2618215.917] {Default Queue} wl_registry#2507.global(24, "zwp_input_method_manager_v2", 1) -[2618215.922] {Default Queue} wl_registry#2507.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618215.926] {Default Queue} wl_registry#2507.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618215.930] {Default Queue} wl_registry#2507.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618215.934] {Default Queue} wl_registry#2507.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618215.939] {Default Queue} wl_registry#2507.global(29, "ext_workspace_manager_v1", 1) -[2618215.943] {Default Queue} wl_registry#2507.global(30, "zwlr_output_manager_v1", 4) -[2618215.947] {Default Queue} wl_registry#2507.global(31, "zwlr_screencopy_manager_v1", 3) -[2618215.952] {Default Queue} wl_registry#2507.global(32, "wp_viewporter", 1) -[2618215.956] {Default Queue} wl_registry#2507.global(33, "zxdg_exporter_v2", 1) -[2618215.960] {Default Queue} wl_registry#2507.global(34, "zxdg_importer_v2", 1) -[2618215.965] {Default Queue} wl_registry#2507.global(36, "xdg_activation_v1", 1) -[2618215.969] {Default Queue} wl_registry#2507.global(37, "mutter_x11_interop", 1) -[2618215.973] {Default Queue} wl_registry#2507.global(38, "wl_seat", 9) -[2618215.978] {Default Queue} -> wl_registry#2507.bind(38, "wl_seat", 1, new id [unknown]#2520) -[2618215.982] {Default Queue} wl_registry#2507.global(39, "wp_cursor_shape_manager_v1", 2) -[2618215.987] {Default Queue} wl_registry#2507.global(40, "wl_output", 4) -[2618215.991] {Default Queue} -> wl_registry#2507.bind(40, "wl_output", 1, new id [unknown]#2521) -[2618215.996] {Default Queue} wl_callback#2508.done(0) -[2618216.000] {Default Queue} discarded wl_surface#2471.enter(wl_output#18) -[2618216.004] {Default Queue} discarded wl_surface#2471.enter(wl_output#57) -[2618216.008] {Default Queue} discarded wl_surface#2471.enter(wl_output#89) -[2618216.012] {Default Queue} discarded wl_surface#2471.enter(wl_output#121) -[2618216.016] {Default Queue} discarded wl_surface#2471.enter(wl_output#153) -[2618216.020] {Default Queue} discarded wl_surface#2471.enter(wl_output#185) -[2618216.024] {Default Queue} discarded wl_surface#2471.enter(wl_output#217) -[2618216.028] {Default Queue} discarded wl_surface#2471.enter(wl_output#249) -[2618216.032] {Default Queue} discarded wl_surface#2471.enter(wl_output#281) -[2618216.039] {Default Queue} discarded wl_surface#2471.enter(wl_output#313) -[2618216.044] {Default Queue} discarded wl_surface#2471.enter(wl_output#345) -[2618216.049] {Default Queue} discarded wl_surface#2471.enter(wl_output#377) -[2618216.052] {Default Queue} discarded wl_surface#2471.enter(wl_output#409) -[2618216.056] {Default Queue} discarded wl_surface#2471.enter(wl_output#441) -[2618216.060] {Default Queue} discarded wl_surface#2471.enter(wl_output#473) -[2618216.064] {Default Queue} discarded wl_surface#2471.enter(wl_output#505) -[2618216.068] {Default Queue} discarded wl_surface#2471.enter(wl_output#537) -[2618216.072] {Default Queue} discarded wl_surface#2471.enter(wl_output#569) -[2618216.076] {Default Queue} discarded wl_surface#2471.enter(wl_output#601) -[2618216.080] {Default Queue} discarded wl_surface#2471.enter(wl_output#633) -[2618216.083] {Default Queue} discarded wl_surface#2471.enter(wl_output#665) -[2618216.088] {Default Queue} discarded wl_surface#2471.enter(wl_output#697) -[2618216.092] {Default Queue} discarded wl_surface#2471.enter(wl_output#729) -[2618216.096] {Default Queue} discarded wl_surface#2471.enter(wl_output#761) -[2618216.100] {Default Queue} discarded wl_surface#2471.enter(wl_output#793) -[2618216.104] {Default Queue} discarded wl_surface#2471.enter(wl_output#825) -[2618216.108] {Default Queue} discarded wl_surface#2471.enter(wl_output#857) -[2618216.112] {Default Queue} discarded wl_surface#2471.enter(wl_output#889) -[2618216.116] {Default Queue} discarded wl_surface#2471.enter(wl_output#921) -[2618216.120] {Default Queue} discarded wl_surface#2471.enter(wl_output#953) -[2618216.124] {Default Queue} discarded wl_surface#2471.enter(wl_output#985) -[2618216.127] {Default Queue} discarded wl_surface#2471.enter(wl_output#1017) -[2618216.131] {Default Queue} discarded wl_surface#2471.enter(wl_output#1049) -[2618216.135] {Default Queue} discarded wl_surface#2471.enter(wl_output#1081) -[2618216.139] {Default Queue} discarded wl_surface#2471.enter(wl_output#1113) -[2618216.143] {Default Queue} discarded wl_surface#2471.enter(wl_output#1145) -[2618216.147] {Default Queue} discarded wl_surface#2471.enter(wl_output#1177) -[2618216.151] {Default Queue} discarded wl_surface#2471.enter(wl_output#1209) -[2618216.155] {Default Queue} discarded wl_surface#2471.enter(wl_output#1241) -[2618216.158] {Default Queue} discarded wl_surface#2471.enter(wl_output#1273) -[2618216.162] {Default Queue} discarded wl_surface#2471.enter(wl_output#1305) -[2618216.166] {Default Queue} discarded wl_surface#2471.enter(wl_output#1337) -[2618216.170] {Default Queue} discarded wl_surface#2471.enter(wl_output#1369) -[2618216.174] {Default Queue} discarded wl_surface#2471.enter(wl_output#1401) -[2618216.178] {Default Queue} discarded wl_surface#2471.enter(wl_output#1433) -[2618216.182] {Default Queue} discarded wl_surface#2471.enter(wl_output#1465) -[2618216.186] {Default Queue} discarded wl_surface#2471.enter(wl_output#1497) -[2618216.190] {Default Queue} discarded wl_surface#2471.enter(wl_output#1529) -[2618216.193] {Default Queue} discarded wl_surface#2471.enter(wl_output#1561) -[2618216.198] {Default Queue} discarded wl_surface#2471.enter(wl_output#1593) -[2618216.202] {Default Queue} discarded wl_surface#2471.enter(wl_output#1625) -[2618216.206] {Default Queue} discarded wl_surface#2471.enter(wl_output#1657) -[2618216.209] {Default Queue} discarded wl_surface#2471.enter(wl_output#1689) -[2618216.213] {Default Queue} discarded wl_surface#2471.enter(wl_output#1721) -[2618216.217] {Default Queue} discarded wl_surface#2471.enter(wl_output#1753) -[2618216.221] {Default Queue} discarded wl_surface#2471.enter(wl_output#1785) -[2618216.225] {Default Queue} discarded wl_surface#2471.enter(wl_output#1817) -[2618216.229] {Default Queue} discarded wl_surface#2471.enter(wl_output#1849) -[2618216.233] {Default Queue} discarded wl_surface#2471.enter(wl_output#1881) -[2618216.236] {Default Queue} discarded wl_surface#2471.enter(wl_output#1913) -[2618216.240] {Default Queue} discarded wl_surface#2471.enter(wl_output#1945) -[2618216.244] {Default Queue} discarded wl_surface#2471.enter(wl_output#1977) -[2618216.259] {Default Queue} discarded wl_surface#2471.enter(wl_output#2009) -[2618216.265] {Default Queue} discarded wl_surface#2471.enter(wl_output#2041) -[2618216.268] {Default Queue} discarded wl_surface#2471.enter(wl_output#2073) -[2618216.273] {Default Queue} discarded wl_surface#2471.enter(wl_output#2105) -[2618216.276] {Default Queue} discarded wl_surface#2471.enter(wl_output#2137) -[2618216.281] {Default Queue} discarded wl_surface#2471.enter(wl_output#2169) -[2618216.285] {Default Queue} discarded wl_surface#2471.enter(wl_output#2201) -[2618216.288] {Default Queue} discarded wl_surface#2471.enter(wl_output#2233) -[2618216.292] {Default Queue} discarded wl_surface#2471.enter(wl_output#2265) -[2618216.296] {Default Queue} discarded wl_surface#2471.enter(wl_output#2297) -[2618216.300] {Default Queue} discarded wl_surface#2471.enter(wl_output#2329) -[2618216.306] {Default Queue} discarded wl_surface#2471.enter(wl_output#2361) -[2618216.311] {Default Queue} discarded wl_surface#2471.enter(wl_output#2393) -[2618216.318] {Default Queue} discarded wl_surface#2471.enter(wl_output#2425) -[2618216.325] {Default Queue} discarded wl_surface#2471.enter(wl_output#2457) -[2618216.331] {Default Queue} discarded wl_surface#2471.enter(wl_output#2489) -[2618216.338] {Default Queue} -> wl_compositor#2092.create_surface(new id wl_surface#2508) -[2618216.345] {Default Queue} -> wl_subcompositor#2509.get_subsurface(new id wl_subsurface#2522, wl_surface#2508, wl_surface#2087) -[2618216.357] {Default Queue} -> wl_subsurface#2522.set_desync() -[2618216.363] {Default Queue} -> wl_subsurface#2522.set_position(0, 0) -[2618216.370] {Default Queue} -> wl_subsurface#2522.place_above(wl_surface#2087) -[2618216.412] {Default Queue} -> wl_shm#2511.create_pool(new id wl_shm_pool#2523, fd 399, 16) -[2618216.419] {Default Queue} -> wl_shm#2511.create_pool(new id wl_shm_pool#2524, fd 400, 16) -[2618216.424] {Default Queue} -> wl_shm_pool#2523.create_buffer(new id wl_buffer#2525, 0, 2, 2, 8, 0) -[2618216.429] {Default Queue} -> wl_shm_pool#2524.create_buffer(new id wl_buffer#2526, 0, 2, 2, 8, 0) -[2618216.437] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) -[2618216.442] {Default Queue} -> wl_surface#2508.commit() -[2618216.449] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) -[2618216.453] {Default Queue} -> wl_surface#2508.commit() -[2618216.457] {Default Queue} -> wl_compositor#2499.create_region(new id wl_region#2527) -[2618216.461] {Default Queue} -> wl_compositor#2499.create_region(new id wl_region#2528) -[2618216.465] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) -[2618216.470] {Default Queue} -> wl_region#2527.add(0, 0, 0, 0) -[2618216.475] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618216.479] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618216.483] {Default Queue} -> wl_surface#2508.damage(0, 0, 2, 2) -[2618216.487] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) -[2618216.495] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) -[2618216.499] {Default Queue} -> wl_surface#2508.commit() -[2618216.536] {Default Queue} -> wl_shm#2513.create_pool(new id wl_shm_pool#2529, fd 403, 640) -[2618216.543] {Default Queue} -> wl_shm#2513.create_pool(new id wl_shm_pool#2530, fd 404, 640) -[2618216.547] {Default Queue} -> wl_shm_pool#2529.create_buffer(new id wl_buffer#2531, 0, 10, 16, 40, 0) -[2618216.552] {Default Queue} -> wl_shm_pool#2530.create_buffer(new id wl_buffer#2532, 0, 10, 16, 40, 0) -[2618216.559] {Default Queue} -> wl_compositor#2499.create_surface(new id wl_surface#2533) -[2618216.564] {Default Queue} -> wl_surface#2533.attach(wl_buffer#2531, 0, 0) -[2618216.568] {Default Queue} -> wl_surface#2533.commit() -[2618216.574] {Default Queue} -> wl_surface#2533.attach(wl_buffer#2531, 0, 0) -[2618216.578] {Default Queue} -> wl_surface#2533.commit() -[2618216.584] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) -[2618216.589] {Default Queue} -> wl_surface#2508.damage(0, 0, 2, 2) -[2618216.597] {Default Queue} -> wl_surface#2508.damage(0, 0, 2, 2) -[2618216.607] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2534) -[2618216.612] {Default Queue} -> wl_display#1.sync(new id wl_callback#2535) -[2618220.296] {Display Queue} wl_display#1.delete_id(2535) -[2618220.309] {Default Queue} wl_keyboard#2501.keymap(1, fd 399, 68213) -[2618220.315] {Default Queue} wl_keyboard#2501.enter(566, wl_surface#19, array[0]) -[2618220.321] {Default Queue} wl_keyboard#2501.modifiers(566, 0, 0, 16, 0) -[2618220.325] {Default Queue} discarded wl_shm#2511.format(875709016) -[2618220.329] {Default Queue} discarded wl_shm#2511.format(1) -[2618220.334] {Default Queue} discarded wl_shm#2511.format(0) -[2618220.338] {Default Queue} discarded wl_shm#2511.format(875708993) -[2618220.342] {Default Queue} discarded wl_shm#2512.format(875709016) -[2618220.345] {Default Queue} discarded wl_shm#2512.format(1) -[2618220.349] {Default Queue} discarded wl_shm#2512.format(0) -[2618220.354] {Default Queue} discarded wl_shm#2512.format(875708993) -[2618220.357] {Default Queue} discarded wl_shm#2513.format(875709016) -[2618220.362] {Default Queue} discarded wl_shm#2513.format(1) -[2618220.368] {Default Queue} discarded wl_shm#2513.format(0) -[2618220.374] {Default Queue} discarded wl_shm#2513.format(875708993) -[2618220.381] {Default Queue} wl_seat#2520.capabilities(7) -[2618220.388] {Default Queue} -> wl_seat#2520.get_keyboard(new id wl_keyboard#2536) -[2618220.395] {Default Queue} -> wl_seat#2520.get_pointer(new id wl_pointer#2537) -[2618220.402] {Default Queue} -> wl_data_device_manager#2516.get_data_device(new id wl_data_device#2538, wl_seat#2520) -[2618220.409] {Default Queue} -> zwp_primary_selection_device_manager_v1#2518.get_device(new id zwp_primary_selection_device_v1#2539, wl_seat#2520) -[2618220.420] {Default Queue} wl_output#2521.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618220.426] {Default Queue} wl_output#2521.mode(3, 1280, 800, 60000) -[2618220.431] {Default Queue} discarded wl_surface#3.enter(wl_output#2521) -[2618220.435] {Default Queue} discarded wl_surface#999.enter(wl_output#2521) -[2618220.439] {Default Queue} discarded wl_surface#1191.enter(wl_output#2521) -[2618220.443] {Default Queue} discarded wl_surface#1159.enter(wl_output#2521) -[2618220.447] {Default Queue} discarded wl_surface#1703.enter(wl_output#2521) -[2618220.451] {Default Queue} discarded wl_surface#2215.enter(wl_output#2521) -[2618220.455] {Default Queue} discarded wl_surface#423.enter(wl_output#2521) -[2618220.459] {Default Queue} discarded wl_surface#1447.enter(wl_output#2521) -[2618220.462] {Default Queue} discarded wl_surface#2023.enter(wl_output#2521) -[2618220.466] {Default Queue} discarded wl_surface#1639.enter(wl_output#2521) -[2618220.470] {Default Queue} discarded wl_surface#1319.enter(wl_output#2521) -[2618220.474] {Default Queue} discarded wl_surface#1127.enter(wl_output#2521) -[2618220.479] {Default Queue} discarded wl_surface#2151.enter(wl_output#2521) -[2618220.483] {Default Queue} discarded wl_surface#2375.enter(wl_output#2521) -[2618220.487] {Default Queue} discarded wl_surface#1063.enter(wl_output#2521) -[2618220.490] {Default Queue} discarded wl_surface#455.enter(wl_output#2521) -[2618220.494] {Default Queue} discarded wl_surface#1575.enter(wl_output#2521) -[2618220.499] {Default Queue} discarded wl_surface#1799.enter(wl_output#2521) -[2618220.503] {Default Queue} discarded wl_surface#1415.enter(wl_output#2521) -[2618220.507] {Default Queue} discarded wl_surface#2439.enter(wl_output#2521) -[2618220.511] {Default Queue} discarded wl_surface#2279.enter(wl_output#2521) -[2618220.515] {Default Queue} discarded wl_surface#1831.enter(wl_output#2521) -[2618220.518] {Default Queue} discarded wl_surface#903.enter(wl_output#2521) -[2618220.522] {Default Queue} discarded wl_surface#775.enter(wl_output#2521) -[2618220.526] {Default Queue} discarded wl_surface#1991.enter(wl_output#2521) -[2618220.530] {Default Queue} discarded wl_surface#1543.enter(wl_output#2521) -[2618220.534] {Default Queue} discarded wl_surface#135.enter(wl_output#2521) -[2618220.538] {Default Queue} discarded wl_surface#1287.enter(wl_output#2521) -[2618220.546] {Default Queue} discarded wl_surface#1031.enter(wl_output#2521) -[2618220.553] {Default Queue} discarded wl_surface#615.enter(wl_output#2521) -[2618220.557] {Default Queue} discarded wl_surface#231.enter(wl_output#2521) -[2618220.561] {Default Queue} discarded wl_surface#2343.enter(wl_output#2521) -[2618220.565] {Default Queue} discarded wl_surface#1863.enter(wl_output#2521) -[2618220.569] {Default Queue} discarded wl_surface#359.enter(wl_output#2521) -[2618220.573] {Default Queue} discarded wl_surface#583.enter(wl_output#2521) -[2618220.576] {Default Queue} discarded wl_surface#743.enter(wl_output#2521) -[2618220.580] {Default Queue} discarded wl_surface#967.enter(wl_output#2521) -[2618220.584] {Default Queue} discarded wl_surface#103.enter(wl_output#2521) -[2618220.588] {Default Queue} discarded wl_surface#327.enter(wl_output#2521) -[2618220.592] {Default Queue} discarded wl_surface#43.enter(wl_output#2521) -[2618220.596] {Default Queue} discarded wl_surface#2247.enter(wl_output#2521) -[2618220.600] {Default Queue} discarded wl_surface#807.enter(wl_output#2521) -[2618220.604] {Default Queue} discarded wl_surface#19.enter(wl_output#2521) -[2618220.608] {Default Queue} discarded wl_surface#1511.enter(wl_output#2521) -[2618220.611] {Default Queue} discarded wl_surface#199.enter(wl_output#2521) -[2618220.615] {Default Queue} discarded wl_surface#391.enter(wl_output#2521) -[2618220.619] {Default Queue} discarded wl_surface#935.enter(wl_output#2521) -[2618220.623] {Default Queue} discarded wl_surface#1671.enter(wl_output#2521) -[2618220.627] {Default Queue} discarded wl_surface#1351.enter(wl_output#2521) -[2618220.631] {Default Queue} discarded wl_surface#711.enter(wl_output#2521) -[2618220.635] {Default Queue} discarded wl_surface#1223.enter(wl_output#2521) -[2618220.638] {Default Queue} discarded wl_surface#1927.enter(wl_output#2521) -[2618220.642] {Default Queue} discarded wl_surface#871.enter(wl_output#2521) -[2618220.646] {Default Queue} discarded wl_surface#1895.enter(wl_output#2521) -[2618220.650] {Default Queue} discarded wl_surface#263.enter(wl_output#2521) -[2618220.654] {Default Queue} discarded wl_surface#551.enter(wl_output#2521) -[2618220.658] {Default Queue} discarded wl_surface#1735.enter(wl_output#2521) -[2618220.662] {Default Queue} discarded wl_surface#1479.enter(wl_output#2521) -[2618220.666] {Default Queue} discarded wl_surface#1772.enter(wl_output#2521) -[2618220.670] {Default Queue} discarded wl_surface#1959.enter(wl_output#2521) -[2618220.674] {Default Queue} discarded wl_surface#647.enter(wl_output#2521) -[2618220.678] {Default Queue} discarded wl_surface#2055.enter(wl_output#2521) -[2618220.681] {Default Queue} discarded wl_surface#71.enter(wl_output#2521) -[2618220.686] {Default Queue} discarded wl_surface#2183.enter(wl_output#2521) -[2618220.690] {Default Queue} discarded wl_surface#839.enter(wl_output#2521) -[2618220.693] {Default Queue} discarded wl_surface#1607.enter(wl_output#2521) -[2618220.697] {Default Queue} discarded wl_surface#1095.enter(wl_output#2521) -[2618220.701] {Default Queue} discarded wl_surface#1383.enter(wl_output#2521) -[2618220.705] {Default Queue} discarded wl_surface#487.enter(wl_output#2521) -[2618220.709] {Default Queue} discarded wl_surface#2311.enter(wl_output#2521) -[2618220.713] {Default Queue} discarded wl_surface#519.enter(wl_output#2521) -[2618220.716] {Default Queue} discarded wl_surface#2087.enter(wl_output#2521) -[2618220.720] {Default Queue} discarded wl_surface#2471.enter(wl_output#2521) -[2618220.724] {Default Queue} discarded wl_surface#295.enter(wl_output#2521) -[2618220.728] {Default Queue} discarded wl_surface#167.enter(wl_output#2521) -[2618220.732] {Default Queue} discarded wl_surface#1255.enter(wl_output#2521) -[2618220.736] {Default Queue} discarded wl_surface#679.enter(wl_output#2521) -[2618220.740] {Default Queue} discarded wl_surface#2407.enter(wl_output#2521) -[2618220.744] {Default Queue} discarded wl_surface#2119.enter(wl_output#2521) -[2618220.748] {Default Queue} wl_registry#2534.global(1, "wl_compositor", 6) -[2618220.754] {Default Queue} -> wl_registry#2534.bind(1, "wl_compositor", 1, new id [unknown]#2540) -[2618220.761] {Default Queue} wl_registry#2534.global(2, "wl_subcompositor", 1) -[2618220.768] {Default Queue} -> wl_registry#2534.bind(2, "wl_subcompositor", 1, new id [unknown]#2541) -[2618220.772] {Default Queue} wl_registry#2534.global(3, "xdg_wm_base", 6) -[2618220.777] {Default Queue} -> wl_registry#2534.bind(3, "xdg_wm_base", 1, new id [unknown]#2542) -[2618220.781] {Default Queue} wl_registry#2534.global(6, "zwlr_layer_shell_v1", 5) -[2618220.786] {Default Queue} wl_registry#2534.global(7, "ext_session_lock_manager_v1", 1) -[2618220.790] {Default Queue} wl_registry#2534.global(8, "wl_shm", 2) -[2618220.795] {Default Queue} -> wl_registry#2534.bind(8, "wl_shm", 1, new id [unknown]#2543) -[2618220.799] {Default Queue} -> wl_registry#2534.bind(8, "wl_shm", 1, new id [unknown]#2544) -[2618220.804] {Default Queue} -> wl_registry#2534.bind(8, "wl_shm", 1, new id [unknown]#2545) -[2618220.809] {Default Queue} wl_registry#2534.global(9, "zxdg_output_manager_v1", 3) -[2618220.813] {Default Queue} wl_registry#2534.global(10, "wp_fractional_scale_manager_v1", 1) -[2618220.817] {Default Queue} wl_registry#2534.global(11, "zwp_tablet_manager_v2", 1) -[2618220.822] {Default Queue} wl_registry#2534.global(12, "zwp_pointer_gestures_v1", 3) -[2618220.827] {Default Queue} wl_registry#2534.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618220.831] {Default Queue} -> wl_registry#2534.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2546) -[2618220.836] {Default Queue} wl_registry#2534.global(14, "zwp_pointer_constraints_v1", 1) -[2618220.840] {Default Queue} -> wl_registry#2534.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2547) -[2618220.845] {Default Queue} wl_registry#2534.global(15, "ext_idle_notifier_v1", 2) -[2618220.850] {Default Queue} wl_registry#2534.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618220.854] {Default Queue} wl_registry#2534.global(17, "wl_data_device_manager", 3) -[2618220.862] {Default Queue} -> wl_registry#2534.bind(17, "wl_data_device_manager", 2, new id [unknown]#2548) -[2618220.866] {Default Queue} -> wl_data_device_manager#2548.create_data_source(new id wl_data_source#2549) -[2618220.893] {Default Queue} -> wl_data_source#2549.offer("text/plain") -[2618220.897] {Default Queue} -> wl_data_source#2549.offer("text/plain;charset=utf-8") -[2618220.902] {Default Queue} -> wl_data_source#2549.offer("TEXT") -[2618220.906] {Default Queue} -> wl_data_source#2549.offer("STRING") -[2618220.910] {Default Queue} -> wl_data_source#2549.offer("UTF8_STRING") -[2618220.914] {Default Queue} wl_registry#2534.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618220.919] {Default Queue} -> wl_registry#2534.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2550) -[2618220.927] {Default Queue} -> zwp_primary_selection_device_manager_v1#2550.create_source(new id zwp_primary_selection_source_v1#2551) -[2618220.935] {Default Queue} -> zwp_primary_selection_source_v1#2551.offer("text/plain") -[2618220.939] {Default Queue} -> zwp_primary_selection_source_v1#2551.offer("text/plain;charset=utf-8") -[2618220.943] {Default Queue} -> zwp_primary_selection_source_v1#2551.offer("TEXT") -[2618220.947] {Default Queue} -> zwp_primary_selection_source_v1#2551.offer("STRING") -[2618220.951] {Default Queue} -> zwp_primary_selection_source_v1#2551.offer("UTF8_STRING") -[2618220.955] {Default Queue} wl_registry#2534.global(19, "zwlr_data_control_manager_v1", 2) -[2618220.960] {Default Queue} wl_registry#2534.global(20, "ext_data_control_manager_v1", 1) -[2618220.964] {Default Queue} wl_registry#2534.global(21, "wp_presentation", 2) -[2618220.968] {Default Queue} wl_registry#2534.global(22, "wp_security_context_manager_v1", 1) -[2618220.973] {Default Queue} wl_registry#2534.global(23, "zwp_text_input_manager_v3", 1) -[2618220.977] {Default Queue} wl_registry#2534.global(24, "zwp_input_method_manager_v2", 1) -[2618220.982] {Default Queue} wl_registry#2534.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618220.989] {Default Queue} wl_registry#2534.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618220.995] {Default Queue} wl_registry#2534.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618220.999] {Default Queue} wl_registry#2534.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618221.004] {Default Queue} wl_registry#2534.global(29, "ext_workspace_manager_v1", 1) -[2618221.008] {Default Queue} wl_registry#2534.global(30, "zwlr_output_manager_v1", 4) -[2618221.012] {Default Queue} wl_registry#2534.global(31, "zwlr_screencopy_manager_v1", 3) -[2618221.017] {Default Queue} wl_registry#2534.global(32, "wp_viewporter", 1) -[2618221.021] {Default Queue} wl_registry#2534.global(33, "zxdg_exporter_v2", 1) -[2618221.025] {Default Queue} wl_registry#2534.global(34, "zxdg_importer_v2", 1) -[2618221.030] {Default Queue} wl_registry#2534.global(36, "xdg_activation_v1", 1) -[2618221.034] {Default Queue} wl_registry#2534.global(37, "mutter_x11_interop", 1) -[2618221.038] {Default Queue} wl_registry#2534.global(38, "wl_seat", 9) -[2618221.043] {Default Queue} -> wl_registry#2534.bind(38, "wl_seat", 1, new id [unknown]#2552) -[2618221.047] {Default Queue} wl_registry#2534.global(39, "wp_cursor_shape_manager_v1", 2) -[2618221.052] {Default Queue} wl_registry#2534.global(40, "wl_output", 4) -[2618221.056] {Default Queue} -> wl_registry#2534.bind(40, "wl_output", 1, new id [unknown]#2553) -[2618221.061] {Default Queue} wl_callback#2535.done(0) -[2618221.065] {Default Queue} discarded wl_surface#2508.enter(wl_output#18) -[2618221.069] {Default Queue} discarded wl_surface#2508.enter(wl_output#57) -[2618221.073] {Default Queue} discarded wl_surface#2508.enter(wl_output#89) -[2618221.077] {Default Queue} discarded wl_surface#2508.enter(wl_output#121) -[2618221.081] {Default Queue} discarded wl_surface#2508.enter(wl_output#153) -[2618221.085] {Default Queue} discarded wl_surface#2508.enter(wl_output#185) -[2618221.089] {Default Queue} discarded wl_surface#2508.enter(wl_output#217) -[2618221.093] {Default Queue} discarded wl_surface#2508.enter(wl_output#249) -[2618221.097] {Default Queue} discarded wl_surface#2508.enter(wl_output#281) -[2618221.101] {Default Queue} discarded wl_surface#2508.enter(wl_output#313) -[2618221.105] {Default Queue} discarded wl_surface#2508.enter(wl_output#345) -[2618221.109] {Default Queue} discarded wl_surface#2508.enter(wl_output#377) -[2618221.113] {Default Queue} discarded wl_surface#2508.enter(wl_output#409) -[2618221.116] {Default Queue} discarded wl_surface#2508.enter(wl_output#441) -[2618221.121] {Default Queue} discarded wl_surface#2508.enter(wl_output#473) -[2618221.125] {Default Queue} discarded wl_surface#2508.enter(wl_output#505) -[2618221.129] {Default Queue} discarded wl_surface#2508.enter(wl_output#537) -[2618221.133] {Default Queue} discarded wl_surface#2508.enter(wl_output#569) -[2618221.137] {Default Queue} discarded wl_surface#2508.enter(wl_output#601) -[2618221.141] {Default Queue} discarded wl_surface#2508.enter(wl_output#633) -[2618221.145] {Default Queue} discarded wl_surface#2508.enter(wl_output#665) -[2618221.149] {Default Queue} discarded wl_surface#2508.enter(wl_output#697) -[2618221.153] {Default Queue} discarded wl_surface#2508.enter(wl_output#729) -[2618221.157] {Default Queue} discarded wl_surface#2508.enter(wl_output#761) -[2618221.161] {Default Queue} discarded wl_surface#2508.enter(wl_output#793) -[2618221.165] {Default Queue} discarded wl_surface#2508.enter(wl_output#825) -[2618221.169] {Default Queue} discarded wl_surface#2508.enter(wl_output#857) -[2618221.172] {Default Queue} discarded wl_surface#2508.enter(wl_output#889) -[2618221.176] {Default Queue} discarded wl_surface#2508.enter(wl_output#921) -[2618221.180] {Default Queue} discarded wl_surface#2508.enter(wl_output#953) -[2618221.184] {Default Queue} discarded wl_surface#2508.enter(wl_output#985) -[2618221.188] {Default Queue} discarded wl_surface#2508.enter(wl_output#1017) -[2618221.192] {Default Queue} discarded wl_surface#2508.enter(wl_output#1049) -[2618221.196] {Default Queue} discarded wl_surface#2508.enter(wl_output#1081) -[2618221.200] {Default Queue} discarded wl_surface#2508.enter(wl_output#1113) -[2618221.207] {Default Queue} discarded wl_surface#2508.enter(wl_output#1145) -[2618221.212] {Default Queue} discarded wl_surface#2508.enter(wl_output#1177) -[2618221.216] {Default Queue} discarded wl_surface#2508.enter(wl_output#1209) -[2618221.220] {Default Queue} discarded wl_surface#2508.enter(wl_output#1241) -[2618221.224] {Default Queue} discarded wl_surface#2508.enter(wl_output#1273) -[2618221.228] {Default Queue} discarded wl_surface#2508.enter(wl_output#1305) -[2618221.232] {Default Queue} discarded wl_surface#2508.enter(wl_output#1337) -[2618221.236] {Default Queue} discarded wl_surface#2508.enter(wl_output#1369) -[2618221.240] {Default Queue} discarded wl_surface#2508.enter(wl_output#1401) -[2618221.244] {Default Queue} discarded wl_surface#2508.enter(wl_output#1433) -[2618221.248] {Default Queue} discarded wl_surface#2508.enter(wl_output#1465) -[2618221.252] {Default Queue} discarded wl_surface#2508.enter(wl_output#1497) -[2618221.255] {Default Queue} discarded wl_surface#2508.enter(wl_output#1529) -[2618221.259] {Default Queue} discarded wl_surface#2508.enter(wl_output#1561) -[2618221.263] {Default Queue} discarded wl_surface#2508.enter(wl_output#1593) -[2618221.267] {Default Queue} discarded wl_surface#2508.enter(wl_output#1625) -[2618221.271] {Default Queue} discarded wl_surface#2508.enter(wl_output#1657) -[2618221.275] {Default Queue} discarded wl_surface#2508.enter(wl_output#1689) -[2618221.279] {Default Queue} discarded wl_surface#2508.enter(wl_output#1721) -[2618221.283] {Default Queue} discarded wl_surface#2508.enter(wl_output#1753) -[2618221.287] {Default Queue} discarded wl_surface#2508.enter(wl_output#1785) -[2618221.291] {Default Queue} discarded wl_surface#2508.enter(wl_output#1817) -[2618221.295] {Default Queue} discarded wl_surface#2508.enter(wl_output#1849) -[2618221.299] {Default Queue} discarded wl_surface#2508.enter(wl_output#1881) -[2618221.303] {Default Queue} discarded wl_surface#2508.enter(wl_output#1913) -[2618221.307] {Default Queue} discarded wl_surface#2508.enter(wl_output#1945) -[2618221.311] {Default Queue} discarded wl_surface#2508.enter(wl_output#1977) -[2618221.316] {Default Queue} discarded wl_surface#2508.enter(wl_output#2009) -[2618221.320] {Default Queue} discarded wl_surface#2508.enter(wl_output#2041) -[2618221.323] {Default Queue} discarded wl_surface#2508.enter(wl_output#2073) -[2618221.327] {Default Queue} discarded wl_surface#2508.enter(wl_output#2105) -[2618221.331] {Default Queue} discarded wl_surface#2508.enter(wl_output#2137) -[2618221.335] {Default Queue} discarded wl_surface#2508.enter(wl_output#2169) -[2618221.339] {Default Queue} discarded wl_surface#2508.enter(wl_output#2201) -[2618221.343] {Default Queue} discarded wl_surface#2508.enter(wl_output#2233) -[2618221.347] {Default Queue} discarded wl_surface#2508.enter(wl_output#2265) -[2618221.351] {Default Queue} discarded wl_surface#2508.enter(wl_output#2297) -[2618221.356] {Default Queue} discarded wl_surface#2508.enter(wl_output#2329) -[2618221.359] {Default Queue} discarded wl_surface#2508.enter(wl_output#2361) -[2618221.363] {Default Queue} discarded wl_surface#2508.enter(wl_output#2393) -[2618221.367] {Default Queue} discarded wl_surface#2508.enter(wl_output#2425) -[2618221.371] {Default Queue} discarded wl_surface#2508.enter(wl_output#2457) -[2618221.376] {Default Queue} discarded wl_surface#2508.enter(wl_output#2489) -[2618221.380] {Default Queue} discarded wl_surface#2508.enter(wl_output#2521) -[2618221.384] {Default Queue} -> wl_compositor#2499.create_surface(new id wl_surface#2535) -[2618221.389] {Default Queue} -> wl_subcompositor#2541.get_subsurface(new id wl_subsurface#2554, wl_surface#2535, wl_surface#2508) -[2618221.397] {Default Queue} -> wl_subsurface#2554.set_desync() -[2618221.402] {Default Queue} -> wl_subsurface#2554.set_position(0, 0) -[2618221.406] {Default Queue} -> wl_subsurface#2554.place_above(wl_surface#2508) -[2618221.451] {Default Queue} -> wl_shm#2543.create_pool(new id wl_shm_pool#2555, fd 404, 16) -[2618221.458] {Default Queue} -> wl_shm#2543.create_pool(new id wl_shm_pool#2556, fd 405, 16) -[2618221.466] {Default Queue} -> wl_shm_pool#2555.create_buffer(new id wl_buffer#2557, 0, 2, 2, 8, 0) -[2618221.473] {Default Queue} -> wl_shm_pool#2556.create_buffer(new id wl_buffer#2558, 0, 2, 2, 8, 0) -[2618221.481] {Default Queue} -> wl_surface#2535.attach(wl_buffer#2557, 0, 0) -[2618221.486] {Default Queue} -> wl_surface#2535.commit() -[2618221.492] {Default Queue} -> wl_surface#2535.attach(wl_buffer#2557, 0, 0) -[2618221.496] {Default Queue} -> wl_surface#2535.commit() -[2618221.500] {Default Queue} -> wl_compositor#2540.create_region(new id wl_region#2559) -[2618221.505] {Default Queue} -> wl_compositor#2540.create_region(new id wl_region#2560) -[2618221.510] {Default Queue} -> wl_region#2559.subtract(0, 0, 2, 2) -[2618221.514] {Default Queue} -> wl_region#2559.add(0, 0, 0, 0) -[2618221.519] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) -[2618221.523] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) -[2618221.527] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) -[2618221.532] {Default Queue} -> wl_surface#2508.damage(0, 0, 2, 2) -[2618221.539] {Default Queue} -> wl_surface#2535.attach(wl_buffer#2557, 0, 0) -[2618221.544] {Default Queue} -> wl_surface#2535.commit() -[2618221.578] {Default Queue} -> wl_shm#2545.create_pool(new id wl_shm_pool#2561, fd 408, 640) -[2618221.585] {Default Queue} -> wl_shm#2545.create_pool(new id wl_shm_pool#2562, fd 409, 640) -[2618221.590] {Default Queue} -> wl_shm_pool#2561.create_buffer(new id wl_buffer#2563, 0, 10, 16, 40, 0) -[2618221.594] {Default Queue} -> wl_shm_pool#2562.create_buffer(new id wl_buffer#2564, 0, 10, 16, 40, 0) -[2618221.601] {Default Queue} -> wl_compositor#2540.create_surface(new id wl_surface#2565) -[2618221.606] {Default Queue} -> wl_surface#2565.attach(wl_buffer#2563, 0, 0) -[2618221.610] {Default Queue} -> wl_surface#2565.commit() -[2618221.615] {Default Queue} -> wl_surface#2565.attach(wl_buffer#2563, 0, 0) -[2618221.619] {Default Queue} -> wl_surface#2565.commit() -[2618221.625] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) -[2618221.633] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2566) -[2618221.638] {Default Queue} -> wl_display#1.sync(new id wl_callback#2567) -[2618225.266] {Display Queue} wl_display#1.delete_id(2567) -[2618225.279] {Default Queue} wl_keyboard#2536.keymap(1, fd 404, 68213) -[2618225.285] {Default Queue} wl_keyboard#2536.enter(566, wl_surface#19, array[0]) -[2618225.291] {Default Queue} wl_keyboard#2536.modifiers(566, 0, 0, 16, 0) -[2618225.295] {Default Queue} discarded wl_shm#2543.format(875709016) -[2618225.299] {Default Queue} discarded wl_shm#2543.format(1) -[2618225.303] {Default Queue} discarded wl_shm#2543.format(0) -[2618225.307] {Default Queue} discarded wl_shm#2543.format(875708993) -[2618225.311] {Default Queue} discarded wl_shm#2544.format(875709016) -[2618225.315] {Default Queue} discarded wl_shm#2544.format(1) -[2618225.319] {Default Queue} discarded wl_shm#2544.format(0) -[2618225.323] {Default Queue} discarded wl_shm#2544.format(875708993) -[2618225.327] {Default Queue} discarded wl_shm#2545.format(875709016) -[2618225.331] {Default Queue} discarded wl_shm#2545.format(1) -[2618225.335] {Default Queue} discarded wl_shm#2545.format(0) -[2618225.339] {Default Queue} discarded wl_shm#2545.format(875708993) -[2618225.343] {Default Queue} wl_seat#2552.capabilities(7) -[2618225.347] {Default Queue} -> wl_seat#2552.get_keyboard(new id wl_keyboard#2568) -[2618225.352] {Default Queue} -> wl_seat#2552.get_pointer(new id wl_pointer#2569) -[2618225.357] {Default Queue} -> wl_data_device_manager#2548.get_data_device(new id wl_data_device#2570, wl_seat#2552) -[2618225.361] {Default Queue} -> zwp_primary_selection_device_manager_v1#2550.get_device(new id zwp_primary_selection_device_v1#2571, wl_seat#2552) -[2618225.369] {Default Queue} wl_output#2553.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618225.374] {Default Queue} wl_output#2553.mode(3, 1280, 800, 60000) -[2618225.379] {Default Queue} discarded wl_surface#3.enter(wl_output#2553) -[2618225.383] {Default Queue} discarded wl_surface#999.enter(wl_output#2553) -[2618225.391] {Default Queue} discarded wl_surface#1191.enter(wl_output#2553) -[2618225.398] {Default Queue} discarded wl_surface#1159.enter(wl_output#2553) -[2618225.402] {Default Queue} discarded wl_surface#1703.enter(wl_output#2553) -[2618225.406] {Default Queue} discarded wl_surface#2215.enter(wl_output#2553) -[2618225.410] {Default Queue} discarded wl_surface#423.enter(wl_output#2553) -[2618225.414] {Default Queue} discarded wl_surface#1447.enter(wl_output#2553) -[2618225.418] {Default Queue} discarded wl_surface#2023.enter(wl_output#2553) -[2618225.422] {Default Queue} discarded wl_surface#1639.enter(wl_output#2553) -[2618225.426] {Default Queue} discarded wl_surface#1319.enter(wl_output#2553) -[2618225.430] {Default Queue} discarded wl_surface#1127.enter(wl_output#2553) -[2618225.433] {Default Queue} discarded wl_surface#2151.enter(wl_output#2553) -[2618225.437] {Default Queue} discarded wl_surface#2375.enter(wl_output#2553) -[2618225.441] {Default Queue} discarded wl_surface#1063.enter(wl_output#2553) -[2618225.445] {Default Queue} discarded wl_surface#455.enter(wl_output#2553) -[2618225.449] {Default Queue} discarded wl_surface#1575.enter(wl_output#2553) -[2618225.453] {Default Queue} discarded wl_surface#1799.enter(wl_output#2553) -[2618225.457] {Default Queue} discarded wl_surface#1415.enter(wl_output#2553) -[2618225.461] {Default Queue} discarded wl_surface#2439.enter(wl_output#2553) -[2618225.465] {Default Queue} discarded wl_surface#2279.enter(wl_output#2553) -[2618225.469] {Default Queue} discarded wl_surface#1831.enter(wl_output#2553) -[2618225.472] {Default Queue} discarded wl_surface#903.enter(wl_output#2553) -[2618225.476] {Default Queue} discarded wl_surface#775.enter(wl_output#2553) -[2618225.480] {Default Queue} discarded wl_surface#1991.enter(wl_output#2553) -[2618225.484] {Default Queue} discarded wl_surface#1543.enter(wl_output#2553) -[2618225.488] {Default Queue} discarded wl_surface#135.enter(wl_output#2553) -[2618225.492] {Default Queue} discarded wl_surface#1287.enter(wl_output#2553) -[2618225.496] {Default Queue} discarded wl_surface#1031.enter(wl_output#2553) -[2618225.500] {Default Queue} discarded wl_surface#615.enter(wl_output#2553) -[2618225.504] {Default Queue} discarded wl_surface#231.enter(wl_output#2553) -[2618225.508] {Default Queue} discarded wl_surface#2343.enter(wl_output#2553) -[2618225.511] {Default Queue} discarded wl_surface#1863.enter(wl_output#2553) -[2618225.515] {Default Queue} discarded wl_surface#359.enter(wl_output#2553) -[2618225.520] {Default Queue} discarded wl_surface#583.enter(wl_output#2553) -[2618225.524] {Default Queue} discarded wl_surface#743.enter(wl_output#2553) -[2618225.528] {Default Queue} discarded wl_surface#967.enter(wl_output#2553) -[2618225.532] {Default Queue} discarded wl_surface#103.enter(wl_output#2553) -[2618225.535] {Default Queue} discarded wl_surface#327.enter(wl_output#2553) -[2618225.540] {Default Queue} discarded wl_surface#43.enter(wl_output#2553) -[2618225.544] {Default Queue} discarded wl_surface#2247.enter(wl_output#2553) -[2618225.547] {Default Queue} discarded wl_surface#807.enter(wl_output#2553) -[2618225.551] {Default Queue} discarded wl_surface#19.enter(wl_output#2553) -[2618225.555] {Default Queue} discarded wl_surface#1511.enter(wl_output#2553) -[2618225.559] {Default Queue} discarded wl_surface#199.enter(wl_output#2553) -[2618225.563] {Default Queue} discarded wl_surface#391.enter(wl_output#2553) -[2618225.567] {Default Queue} discarded wl_surface#935.enter(wl_output#2553) -[2618225.571] {Default Queue} discarded wl_surface#1671.enter(wl_output#2553) -[2618225.575] {Default Queue} discarded wl_surface#1351.enter(wl_output#2553) -[2618225.579] {Default Queue} discarded wl_surface#711.enter(wl_output#2553) -[2618225.583] {Default Queue} discarded wl_surface#1223.enter(wl_output#2553) -[2618225.587] {Default Queue} discarded wl_surface#1927.enter(wl_output#2553) -[2618225.591] {Default Queue} discarded wl_surface#871.enter(wl_output#2553) -[2618225.595] {Default Queue} discarded wl_surface#1895.enter(wl_output#2553) -[2618225.599] {Default Queue} discarded wl_surface#263.enter(wl_output#2553) -[2618225.604] {Default Queue} discarded wl_surface#551.enter(wl_output#2553) -[2618225.609] {Default Queue} discarded wl_surface#1735.enter(wl_output#2553) -[2618225.613] {Default Queue} discarded wl_surface#1479.enter(wl_output#2553) -[2618225.617] {Default Queue} discarded wl_surface#1772.enter(wl_output#2553) -[2618225.621] {Default Queue} discarded wl_surface#1959.enter(wl_output#2553) -[2618225.625] {Default Queue} discarded wl_surface#647.enter(wl_output#2553) -[2618225.629] {Default Queue} discarded wl_surface#2055.enter(wl_output#2553) -[2618225.633] {Default Queue} discarded wl_surface#2508.enter(wl_output#2553) -[2618225.636] {Default Queue} discarded wl_surface#71.enter(wl_output#2553) -[2618225.640] {Default Queue} discarded wl_surface#2183.enter(wl_output#2553) -[2618225.645] {Default Queue} discarded wl_surface#839.enter(wl_output#2553) -[2618225.649] {Default Queue} discarded wl_surface#1607.enter(wl_output#2553) -[2618225.653] {Default Queue} discarded wl_surface#1095.enter(wl_output#2553) -[2618225.657] {Default Queue} discarded wl_surface#1383.enter(wl_output#2553) -[2618225.661] {Default Queue} discarded wl_surface#487.enter(wl_output#2553) -[2618225.665] {Default Queue} discarded wl_surface#2311.enter(wl_output#2553) -[2618225.669] {Default Queue} discarded wl_surface#519.enter(wl_output#2553) -[2618225.673] {Default Queue} discarded wl_surface#2087.enter(wl_output#2553) -[2618225.676] {Default Queue} discarded wl_surface#2471.enter(wl_output#2553) -[2618225.680] {Default Queue} discarded wl_surface#295.enter(wl_output#2553) -[2618225.685] {Default Queue} discarded wl_surface#167.enter(wl_output#2553) -[2618225.689] {Default Queue} discarded wl_surface#1255.enter(wl_output#2553) -[2618225.692] {Default Queue} discarded wl_surface#679.enter(wl_output#2553) -[2618225.696] {Default Queue} discarded wl_surface#2407.enter(wl_output#2553) -[2618225.700] {Default Queue} discarded wl_surface#2119.enter(wl_output#2553) -[2618225.704] {Default Queue} wl_registry#2566.global(1, "wl_compositor", 6) -[2618225.709] {Default Queue} -> wl_registry#2566.bind(1, "wl_compositor", 1, new id [unknown]#2572) -[2618225.714] {Default Queue} wl_registry#2566.global(2, "wl_subcompositor", 1) -[2618225.718] {Default Queue} -> wl_registry#2566.bind(2, "wl_subcompositor", 1, new id [unknown]#2573) -[2618225.723] {Default Queue} wl_registry#2566.global(3, "xdg_wm_base", 6) -[2618225.728] {Default Queue} -> wl_registry#2566.bind(3, "xdg_wm_base", 1, new id [unknown]#2574) -[2618225.733] {Default Queue} wl_registry#2566.global(6, "zwlr_layer_shell_v1", 5) -[2618225.737] {Default Queue} wl_registry#2566.global(7, "ext_session_lock_manager_v1", 1) -[2618225.741] {Default Queue} wl_registry#2566.global(8, "wl_shm", 2) -[2618225.746] {Default Queue} -> wl_registry#2566.bind(8, "wl_shm", 1, new id [unknown]#2575) -[2618225.751] {Default Queue} -> wl_registry#2566.bind(8, "wl_shm", 1, new id [unknown]#2576) -[2618225.755] {Default Queue} -> wl_registry#2566.bind(8, "wl_shm", 1, new id [unknown]#2577) -[2618225.759] {Default Queue} wl_registry#2566.global(9, "zxdg_output_manager_v1", 3) -[2618225.764] {Default Queue} wl_registry#2566.global(10, "wp_fractional_scale_manager_v1", 1) -[2618225.768] {Default Queue} wl_registry#2566.global(11, "zwp_tablet_manager_v2", 1) -[2618225.772] {Default Queue} wl_registry#2566.global(12, "zwp_pointer_gestures_v1", 3) -[2618225.777] {Default Queue} wl_registry#2566.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618225.781] {Default Queue} -> wl_registry#2566.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2578) -[2618225.785] {Default Queue} wl_registry#2566.global(14, "zwp_pointer_constraints_v1", 1) -[2618225.790] {Default Queue} -> wl_registry#2566.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2579) -[2618225.794] {Default Queue} wl_registry#2566.global(15, "ext_idle_notifier_v1", 2) -[2618225.799] {Default Queue} wl_registry#2566.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618225.803] {Default Queue} wl_registry#2566.global(17, "wl_data_device_manager", 3) -[2618225.811] {Default Queue} -> wl_registry#2566.bind(17, "wl_data_device_manager", 2, new id [unknown]#2580) -[2618225.817] {Default Queue} -> wl_data_device_manager#2580.create_data_source(new id wl_data_source#2581) -[2618225.821] {Default Queue} -> wl_data_source#2581.offer("text/plain") -[2618225.825] {Default Queue} -> wl_data_source#2581.offer("text/plain;charset=utf-8") -[2618225.830] {Default Queue} -> wl_data_source#2581.offer("TEXT") -[2618225.834] {Default Queue} -> wl_data_source#2581.offer("STRING") -[2618225.838] {Default Queue} -> wl_data_source#2581.offer("UTF8_STRING") -[2618225.842] {Default Queue} wl_registry#2566.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618225.847] {Default Queue} -> wl_registry#2566.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2582) -[2618225.855] {Default Queue} -> zwp_primary_selection_device_manager_v1#2582.create_source(new id zwp_primary_selection_source_v1#2583) -[2618225.863] {Default Queue} -> zwp_primary_selection_source_v1#2583.offer("text/plain") -[2618225.867] {Default Queue} -> zwp_primary_selection_source_v1#2583.offer("text/plain;charset=utf-8") -[2618225.877] {Default Queue} -> zwp_primary_selection_source_v1#2583.offer("TEXT") -[2618225.881] {Default Queue} -> zwp_primary_selection_source_v1#2583.offer("STRING") -[2618225.885] {Default Queue} -> zwp_primary_selection_source_v1#2583.offer("UTF8_STRING") -[2618225.889] {Default Queue} wl_registry#2566.global(19, "zwlr_data_control_manager_v1", 2) -[2618225.894] {Default Queue} wl_registry#2566.global(20, "ext_data_control_manager_v1", 1) -[2618225.898] {Default Queue} wl_registry#2566.global(21, "wp_presentation", 2) -[2618225.902] {Default Queue} wl_registry#2566.global(22, "wp_security_context_manager_v1", 1) -[2618225.907] {Default Queue} wl_registry#2566.global(23, "zwp_text_input_manager_v3", 1) -[2618225.911] {Default Queue} wl_registry#2566.global(24, "zwp_input_method_manager_v2", 1) -[2618225.915] {Default Queue} wl_registry#2566.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618225.920] {Default Queue} wl_registry#2566.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618225.924] {Default Queue} wl_registry#2566.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618225.928] {Default Queue} wl_registry#2566.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618225.933] {Default Queue} wl_registry#2566.global(29, "ext_workspace_manager_v1", 1) -[2618225.937] {Default Queue} wl_registry#2566.global(30, "zwlr_output_manager_v1", 4) -[2618225.941] {Default Queue} wl_registry#2566.global(31, "zwlr_screencopy_manager_v1", 3) -[2618225.945] {Default Queue} wl_registry#2566.global(32, "wp_viewporter", 1) -[2618225.949] {Default Queue} wl_registry#2566.global(33, "zxdg_exporter_v2", 1) -[2618225.954] {Default Queue} wl_registry#2566.global(34, "zxdg_importer_v2", 1) -[2618225.958] {Default Queue} wl_registry#2566.global(36, "xdg_activation_v1", 1) -[2618225.963] {Default Queue} wl_registry#2566.global(37, "mutter_x11_interop", 1) -[2618225.967] {Default Queue} wl_registry#2566.global(38, "wl_seat", 9) -[2618225.972] {Default Queue} -> wl_registry#2566.bind(38, "wl_seat", 1, new id [unknown]#2584) -[2618225.976] {Default Queue} wl_registry#2566.global(39, "wp_cursor_shape_manager_v1", 2) -[2618225.980] {Default Queue} wl_registry#2566.global(40, "wl_output", 4) -[2618225.985] {Default Queue} -> wl_registry#2566.bind(40, "wl_output", 1, new id [unknown]#2585) -[2618225.989] {Default Queue} wl_callback#2567.done(0) -[2618225.993] {Default Queue} discarded wl_surface#2535.enter(wl_output#18) -[2618225.998] {Default Queue} discarded wl_surface#2535.enter(wl_output#57) -[2618226.001] {Default Queue} discarded wl_surface#2535.enter(wl_output#89) -[2618226.005] {Default Queue} discarded wl_surface#2535.enter(wl_output#121) -[2618226.009] {Default Queue} discarded wl_surface#2535.enter(wl_output#153) -[2618226.013] {Default Queue} discarded wl_surface#2535.enter(wl_output#185) -[2618226.017] {Default Queue} discarded wl_surface#2535.enter(wl_output#217) -[2618226.021] {Default Queue} discarded wl_surface#2535.enter(wl_output#249) -[2618226.028] {Default Queue} discarded wl_surface#2535.enter(wl_output#281) -[2618226.033] {Default Queue} discarded wl_surface#2535.enter(wl_output#313) -[2618226.037] {Default Queue} discarded wl_surface#2535.enter(wl_output#345) -[2618226.041] {Default Queue} discarded wl_surface#2535.enter(wl_output#377) -[2618226.045] {Default Queue} discarded wl_surface#2535.enter(wl_output#409) -[2618226.049] {Default Queue} discarded wl_surface#2535.enter(wl_output#441) -[2618226.052] {Default Queue} discarded wl_surface#2535.enter(wl_output#473) -[2618226.056] {Default Queue} discarded wl_surface#2535.enter(wl_output#505) -[2618226.060] {Default Queue} discarded wl_surface#2535.enter(wl_output#537) -[2618226.064] {Default Queue} discarded wl_surface#2535.enter(wl_output#569) -[2618226.068] {Default Queue} discarded wl_surface#2535.enter(wl_output#601) -[2618226.072] {Default Queue} discarded wl_surface#2535.enter(wl_output#633) -[2618226.075] {Default Queue} discarded wl_surface#2535.enter(wl_output#665) -[2618226.079] {Default Queue} discarded wl_surface#2535.enter(wl_output#697) -[2618226.083] {Default Queue} discarded wl_surface#2535.enter(wl_output#729) -[2618226.087] {Default Queue} discarded wl_surface#2535.enter(wl_output#761) -[2618226.091] {Default Queue} discarded wl_surface#2535.enter(wl_output#793) -[2618226.095] {Default Queue} discarded wl_surface#2535.enter(wl_output#825) -[2618226.098] {Default Queue} discarded wl_surface#2535.enter(wl_output#857) -[2618226.102] {Default Queue} discarded wl_surface#2535.enter(wl_output#889) -[2618226.107] {Default Queue} discarded wl_surface#2535.enter(wl_output#921) -[2618226.111] {Default Queue} discarded wl_surface#2535.enter(wl_output#953) -[2618226.115] {Default Queue} discarded wl_surface#2535.enter(wl_output#985) -[2618226.119] {Default Queue} discarded wl_surface#2535.enter(wl_output#1017) -[2618226.123] {Default Queue} discarded wl_surface#2535.enter(wl_output#1049) -[2618226.127] {Default Queue} discarded wl_surface#2535.enter(wl_output#1081) -[2618226.131] {Default Queue} discarded wl_surface#2535.enter(wl_output#1113) -[2618226.135] {Default Queue} discarded wl_surface#2535.enter(wl_output#1145) -[2618226.139] {Default Queue} discarded wl_surface#2535.enter(wl_output#1177) -[2618226.143] {Default Queue} discarded wl_surface#2535.enter(wl_output#1209) -[2618226.147] {Default Queue} discarded wl_surface#2535.enter(wl_output#1241) -[2618226.151] {Default Queue} discarded wl_surface#2535.enter(wl_output#1273) -[2618226.155] {Default Queue} discarded wl_surface#2535.enter(wl_output#1305) -[2618226.159] {Default Queue} discarded wl_surface#2535.enter(wl_output#1337) -[2618226.163] {Default Queue} discarded wl_surface#2535.enter(wl_output#1369) -[2618226.166] {Default Queue} discarded wl_surface#2535.enter(wl_output#1401) -[2618226.170] {Default Queue} discarded wl_surface#2535.enter(wl_output#1433) -[2618226.174] {Default Queue} discarded wl_surface#2535.enter(wl_output#1465) -[2618226.178] {Default Queue} discarded wl_surface#2535.enter(wl_output#1497) -[2618226.182] {Default Queue} discarded wl_surface#2535.enter(wl_output#1529) -[2618226.186] {Default Queue} discarded wl_surface#2535.enter(wl_output#1561) -[2618226.190] {Default Queue} discarded wl_surface#2535.enter(wl_output#1593) -[2618226.194] {Default Queue} discarded wl_surface#2535.enter(wl_output#1625) -[2618226.198] {Default Queue} discarded wl_surface#2535.enter(wl_output#1657) -[2618226.202] {Default Queue} discarded wl_surface#2535.enter(wl_output#1689) -[2618226.206] {Default Queue} discarded wl_surface#2535.enter(wl_output#1721) -[2618226.210] {Default Queue} discarded wl_surface#2535.enter(wl_output#1753) -[2618226.214] {Default Queue} discarded wl_surface#2535.enter(wl_output#1785) -[2618226.218] {Default Queue} discarded wl_surface#2535.enter(wl_output#1817) -[2618226.222] {Default Queue} discarded wl_surface#2535.enter(wl_output#1849) -[2618226.226] {Default Queue} discarded wl_surface#2535.enter(wl_output#1881) -[2618226.230] {Default Queue} discarded wl_surface#2535.enter(wl_output#1913) -[2618226.237] {Default Queue} discarded wl_surface#2535.enter(wl_output#1945) -[2618226.242] {Default Queue} discarded wl_surface#2535.enter(wl_output#1977) -[2618226.246] {Default Queue} discarded wl_surface#2535.enter(wl_output#2009) -[2618226.250] {Default Queue} discarded wl_surface#2535.enter(wl_output#2041) -[2618226.254] {Default Queue} discarded wl_surface#2535.enter(wl_output#2073) -[2618226.258] {Default Queue} discarded wl_surface#2535.enter(wl_output#2105) -[2618226.262] {Default Queue} discarded wl_surface#2535.enter(wl_output#2137) -[2618226.266] {Default Queue} discarded wl_surface#2535.enter(wl_output#2169) -[2618226.270] {Default Queue} discarded wl_surface#2535.enter(wl_output#2201) -[2618226.274] {Default Queue} discarded wl_surface#2535.enter(wl_output#2233) -[2618226.277] {Default Queue} discarded wl_surface#2535.enter(wl_output#2265) -[2618226.281] {Default Queue} discarded wl_surface#2535.enter(wl_output#2297) -[2618226.285] {Default Queue} discarded wl_surface#2535.enter(wl_output#2329) -[2618226.289] {Default Queue} discarded wl_surface#2535.enter(wl_output#2361) -[2618226.293] {Default Queue} discarded wl_surface#2535.enter(wl_output#2393) -[2618226.297] {Default Queue} discarded wl_surface#2535.enter(wl_output#2425) -[2618226.301] {Default Queue} discarded wl_surface#2535.enter(wl_output#2457) -[2618226.305] {Default Queue} discarded wl_surface#2535.enter(wl_output#2489) -[2618226.309] {Default Queue} discarded wl_surface#2535.enter(wl_output#2521) -[2618226.312] {Default Queue} discarded wl_surface#2535.enter(wl_output#2553) -[2618226.317] {Default Queue} -> wl_compositor#2540.create_surface(new id wl_surface#2567) -[2618226.321] {Default Queue} -> wl_subcompositor#2573.get_subsurface(new id wl_subsurface#2586, wl_surface#2567, wl_surface#2535) -[2618226.329] {Default Queue} -> wl_subsurface#2586.set_desync() -[2618226.333] {Default Queue} -> wl_subsurface#2586.set_position(0, 0) -[2618226.337] {Default Queue} -> wl_subsurface#2586.place_above(wl_surface#2535) -[2618226.383] {Default Queue} -> wl_shm#2575.create_pool(new id wl_shm_pool#2587, fd 409, 16) -[2618226.390] {Default Queue} -> wl_shm#2575.create_pool(new id wl_shm_pool#2588, fd 410, 16) -[2618226.395] {Default Queue} -> wl_shm_pool#2587.create_buffer(new id wl_buffer#2589, 0, 2, 2, 8, 0) -[2618226.399] {Default Queue} -> wl_shm_pool#2588.create_buffer(new id wl_buffer#2590, 0, 2, 2, 8, 0) -[2618226.407] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) -[2618226.412] {Default Queue} -> wl_surface#2567.commit() -[2618226.418] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) -[2618226.422] {Default Queue} -> wl_surface#2567.commit() -[2618226.427] {Default Queue} -> wl_compositor#2572.create_region(new id wl_region#2591) -[2618226.431] {Default Queue} -> wl_compositor#2572.create_region(new id wl_region#2592) -[2618226.435] {Default Queue} -> wl_region#2591.subtract(0, 0, 2, 2) -[2618226.441] {Default Queue} -> wl_region#2591.add(0, 0, 0, 0) -[2618226.447] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2618226.453] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2618226.460] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618226.467] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) -[2618226.478] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) -[2618226.487] {Default Queue} -> wl_surface#2567.commit() -[2618226.529] {Default Queue} -> wl_shm#2577.create_pool(new id wl_shm_pool#2593, fd 413, 640) -[2618226.536] {Default Queue} -> wl_shm#2577.create_pool(new id wl_shm_pool#2594, fd 414, 640) -[2618226.541] {Default Queue} -> wl_shm_pool#2593.create_buffer(new id wl_buffer#2595, 0, 10, 16, 40, 0) -[2618226.546] {Default Queue} -> wl_shm_pool#2594.create_buffer(new id wl_buffer#2596, 0, 10, 16, 40, 0) -[2618226.553] {Default Queue} -> wl_compositor#2572.create_surface(new id wl_surface#2597) -[2618226.558] {Default Queue} -> wl_surface#2597.attach(wl_buffer#2595, 0, 0) -[2618226.562] {Default Queue} -> wl_surface#2597.commit() -[2618226.567] {Default Queue} -> wl_surface#2597.attach(wl_buffer#2595, 0, 0) -[2618226.576] {Default Queue} -> wl_surface#2597.commit() -[2618226.585] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) -[2618226.591] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618226.596] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618226.602] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2598) -[2618226.607] {Default Queue} -> wl_display#1.sync(new id wl_callback#2599) -[2618230.288] {Display Queue} wl_display#1.delete_id(2599) -[2618230.301] {Default Queue} wl_keyboard#2568.keymap(1, fd 409, 68213) -[2618230.307] {Default Queue} wl_keyboard#2568.enter(566, wl_surface#19, array[0]) -[2618230.312] {Default Queue} wl_keyboard#2568.modifiers(566, 0, 0, 16, 0) -[2618230.317] {Default Queue} discarded wl_shm#2575.format(875709016) -[2618230.321] {Default Queue} discarded wl_shm#2575.format(1) -[2618230.324] {Default Queue} discarded wl_shm#2575.format(0) -[2618230.328] {Default Queue} discarded wl_shm#2575.format(875708993) -[2618230.333] {Default Queue} discarded wl_shm#2576.format(875709016) -[2618230.337] {Default Queue} discarded wl_shm#2576.format(1) -[2618230.341] {Default Queue} discarded wl_shm#2576.format(0) -[2618230.344] {Default Queue} discarded wl_shm#2576.format(875708993) -[2618230.348] {Default Queue} discarded wl_shm#2577.format(875709016) -[2618230.353] {Default Queue} discarded wl_shm#2577.format(1) -[2618230.356] {Default Queue} discarded wl_shm#2577.format(0) -[2618230.360] {Default Queue} discarded wl_shm#2577.format(875708993) -[2618230.364] {Default Queue} wl_seat#2584.capabilities(7) -[2618230.369] {Default Queue} -> wl_seat#2584.get_keyboard(new id wl_keyboard#2600) -[2618230.374] {Default Queue} -> wl_seat#2584.get_pointer(new id wl_pointer#2601) -[2618230.378] {Default Queue} -> wl_data_device_manager#2580.get_data_device(new id wl_data_device#2602, wl_seat#2584) -[2618230.383] {Default Queue} -> zwp_primary_selection_device_manager_v1#2582.get_device(new id zwp_primary_selection_device_v1#2603, wl_seat#2584) -[2618230.391] {Default Queue} wl_output#2585.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618230.396] {Default Queue} wl_output#2585.mode(3, 1280, 800, 60000) -[2618230.401] {Default Queue} discarded wl_surface#3.enter(wl_output#2585) -[2618230.405] {Default Queue} discarded wl_surface#999.enter(wl_output#2585) -[2618230.409] {Default Queue} discarded wl_surface#1191.enter(wl_output#2585) -[2618230.413] {Default Queue} discarded wl_surface#1159.enter(wl_output#2585) -[2618230.417] {Default Queue} discarded wl_surface#1703.enter(wl_output#2585) -[2618230.421] {Default Queue} discarded wl_surface#2215.enter(wl_output#2585) -[2618230.425] {Default Queue} discarded wl_surface#423.enter(wl_output#2585) -[2618230.429] {Default Queue} discarded wl_surface#1447.enter(wl_output#2585) -[2618230.433] {Default Queue} discarded wl_surface#2023.enter(wl_output#2585) -[2618230.436] {Default Queue} discarded wl_surface#1639.enter(wl_output#2585) -[2618230.440] {Default Queue} discarded wl_surface#1319.enter(wl_output#2585) -[2618230.444] {Default Queue} discarded wl_surface#1127.enter(wl_output#2585) -[2618230.448] {Default Queue} discarded wl_surface#2151.enter(wl_output#2585) -[2618230.452] {Default Queue} discarded wl_surface#2375.enter(wl_output#2585) -[2618230.456] {Default Queue} discarded wl_surface#1063.enter(wl_output#2585) -[2618230.460] {Default Queue} discarded wl_surface#455.enter(wl_output#2585) -[2618230.464] {Default Queue} discarded wl_surface#1575.enter(wl_output#2585) -[2618230.468] {Default Queue} discarded wl_surface#1799.enter(wl_output#2585) -[2618230.471] {Default Queue} discarded wl_surface#1415.enter(wl_output#2585) -[2618230.475] {Default Queue} discarded wl_surface#2439.enter(wl_output#2585) -[2618230.479] {Default Queue} discarded wl_surface#2279.enter(wl_output#2585) -[2618230.483] {Default Queue} discarded wl_surface#1831.enter(wl_output#2585) -[2618230.487] {Default Queue} discarded wl_surface#903.enter(wl_output#2585) -[2618230.491] {Default Queue} discarded wl_surface#775.enter(wl_output#2585) -[2618230.495] {Default Queue} discarded wl_surface#1991.enter(wl_output#2585) -[2618230.506] {Default Queue} discarded wl_surface#1543.enter(wl_output#2585) -[2618230.517] {Default Queue} discarded wl_surface#135.enter(wl_output#2585) -[2618230.523] {Default Queue} discarded wl_surface#1287.enter(wl_output#2585) -[2618230.529] {Default Queue} discarded wl_surface#1031.enter(wl_output#2585) -[2618230.535] {Default Queue} discarded wl_surface#615.enter(wl_output#2585) -[2618230.541] {Default Queue} discarded wl_surface#231.enter(wl_output#2585) -[2618230.547] {Default Queue} discarded wl_surface#2343.enter(wl_output#2585) -[2618230.553] {Default Queue} discarded wl_surface#1863.enter(wl_output#2585) -[2618230.559] {Default Queue} discarded wl_surface#359.enter(wl_output#2585) -[2618230.564] {Default Queue} discarded wl_surface#583.enter(wl_output#2585) -[2618230.568] {Default Queue} discarded wl_surface#743.enter(wl_output#2585) -[2618230.571] {Default Queue} discarded wl_surface#2535.enter(wl_output#2585) -[2618230.575] {Default Queue} discarded wl_surface#967.enter(wl_output#2585) -[2618230.579] {Default Queue} discarded wl_surface#103.enter(wl_output#2585) -[2618230.583] {Default Queue} discarded wl_surface#327.enter(wl_output#2585) -[2618230.587] {Default Queue} discarded wl_surface#43.enter(wl_output#2585) -[2618230.591] {Default Queue} discarded wl_surface#2247.enter(wl_output#2585) -[2618230.595] {Default Queue} discarded wl_surface#807.enter(wl_output#2585) -[2618230.599] {Default Queue} discarded wl_surface#19.enter(wl_output#2585) -[2618230.603] {Default Queue} discarded wl_surface#1511.enter(wl_output#2585) -[2618230.606] {Default Queue} discarded wl_surface#199.enter(wl_output#2585) -[2618230.610] {Default Queue} discarded wl_surface#391.enter(wl_output#2585) -[2618230.614] {Default Queue} discarded wl_surface#935.enter(wl_output#2585) -[2618230.618] {Default Queue} discarded wl_surface#1671.enter(wl_output#2585) -[2618230.622] {Default Queue} discarded wl_surface#1351.enter(wl_output#2585) -[2618230.626] {Default Queue} discarded wl_surface#711.enter(wl_output#2585) -[2618230.630] {Default Queue} discarded wl_surface#1223.enter(wl_output#2585) -[2618230.633] {Default Queue} discarded wl_surface#1927.enter(wl_output#2585) -[2618230.637] {Default Queue} discarded wl_surface#871.enter(wl_output#2585) -[2618230.641] {Default Queue} discarded wl_surface#1895.enter(wl_output#2585) -[2618230.645] {Default Queue} discarded wl_surface#263.enter(wl_output#2585) -[2618230.649] {Default Queue} discarded wl_surface#551.enter(wl_output#2585) -[2618230.653] {Default Queue} discarded wl_surface#1735.enter(wl_output#2585) -[2618230.657] {Default Queue} discarded wl_surface#1479.enter(wl_output#2585) -[2618230.661] {Default Queue} discarded wl_surface#1772.enter(wl_output#2585) -[2618230.665] {Default Queue} discarded wl_surface#1959.enter(wl_output#2585) -[2618230.669] {Default Queue} discarded wl_surface#647.enter(wl_output#2585) -[2618230.672] {Default Queue} discarded wl_surface#2055.enter(wl_output#2585) -[2618230.676] {Default Queue} discarded wl_surface#2508.enter(wl_output#2585) -[2618230.680] {Default Queue} discarded wl_surface#71.enter(wl_output#2585) -[2618230.684] {Default Queue} discarded wl_surface#2183.enter(wl_output#2585) -[2618230.688] {Default Queue} discarded wl_surface#839.enter(wl_output#2585) -[2618230.692] {Default Queue} discarded wl_surface#1607.enter(wl_output#2585) -[2618230.696] {Default Queue} discarded wl_surface#1095.enter(wl_output#2585) -[2618230.700] {Default Queue} discarded wl_surface#1383.enter(wl_output#2585) -[2618230.704] {Default Queue} discarded wl_surface#487.enter(wl_output#2585) -[2618230.708] {Default Queue} discarded wl_surface#2311.enter(wl_output#2585) -[2618230.712] {Default Queue} discarded wl_surface#519.enter(wl_output#2585) -[2618230.718] {Default Queue} discarded wl_surface#2087.enter(wl_output#2585) -[2618230.731] {Default Queue} discarded wl_surface#2471.enter(wl_output#2585) -[2618230.738] {Default Queue} discarded wl_surface#295.enter(wl_output#2585) -[2618230.743] {Default Queue} discarded wl_surface#167.enter(wl_output#2585) -[2618230.752] {Default Queue} discarded wl_surface#1255.enter(wl_output#2585) -[2618230.759] {Default Queue} discarded wl_surface#679.enter(wl_output#2585) -[2618230.763] {Default Queue} discarded wl_surface#2407.enter(wl_output#2585) -[2618230.767] {Default Queue} discarded wl_surface#2119.enter(wl_output#2585) -[2618230.771] {Default Queue} wl_registry#2598.global(1, "wl_compositor", 6) -[2618230.778] {Default Queue} -> wl_registry#2598.bind(1, "wl_compositor", 1, new id [unknown]#2604) -[2618230.783] {Default Queue} wl_registry#2598.global(2, "wl_subcompositor", 1) -[2618230.787] {Default Queue} -> wl_registry#2598.bind(2, "wl_subcompositor", 1, new id [unknown]#2605) -[2618230.792] {Default Queue} wl_registry#2598.global(3, "xdg_wm_base", 6) -[2618230.797] {Default Queue} -> wl_registry#2598.bind(3, "xdg_wm_base", 1, new id [unknown]#2606) -[2618230.802] {Default Queue} wl_registry#2598.global(6, "zwlr_layer_shell_v1", 5) -[2618230.806] {Default Queue} wl_registry#2598.global(7, "ext_session_lock_manager_v1", 1) -[2618230.811] {Default Queue} wl_registry#2598.global(8, "wl_shm", 2) -[2618230.815] {Default Queue} -> wl_registry#2598.bind(8, "wl_shm", 1, new id [unknown]#2607) -[2618230.820] {Default Queue} -> wl_registry#2598.bind(8, "wl_shm", 1, new id [unknown]#2608) -[2618230.824] {Default Queue} -> wl_registry#2598.bind(8, "wl_shm", 1, new id [unknown]#2609) -[2618230.828] {Default Queue} wl_registry#2598.global(9, "zxdg_output_manager_v1", 3) -[2618230.833] {Default Queue} wl_registry#2598.global(10, "wp_fractional_scale_manager_v1", 1) -[2618230.837] {Default Queue} wl_registry#2598.global(11, "zwp_tablet_manager_v2", 1) -[2618230.841] {Default Queue} wl_registry#2598.global(12, "zwp_pointer_gestures_v1", 3) -[2618230.845] {Default Queue} wl_registry#2598.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618230.850] {Default Queue} -> wl_registry#2598.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2610) -[2618230.855] {Default Queue} wl_registry#2598.global(14, "zwp_pointer_constraints_v1", 1) -[2618230.859] {Default Queue} -> wl_registry#2598.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2611) -[2618230.873] {Default Queue} wl_registry#2598.global(15, "ext_idle_notifier_v1", 2) -[2618230.878] {Default Queue} wl_registry#2598.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618230.882] {Default Queue} wl_registry#2598.global(17, "wl_data_device_manager", 3) -[2618230.888] {Default Queue} -> wl_registry#2598.bind(17, "wl_data_device_manager", 2, new id [unknown]#2612) -[2618230.892] {Default Queue} -> wl_data_device_manager#2612.create_data_source(new id wl_data_source#2613) -[2618230.896] {Default Queue} -> wl_data_source#2613.offer("text/plain") -[2618230.901] {Default Queue} -> wl_data_source#2613.offer("text/plain;charset=utf-8") -[2618230.905] {Default Queue} -> wl_data_source#2613.offer("TEXT") -[2618230.909] {Default Queue} -> wl_data_source#2613.offer("STRING") -[2618230.913] {Default Queue} -> wl_data_source#2613.offer("UTF8_STRING") -[2618230.917] {Default Queue} wl_registry#2598.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618230.922] {Default Queue} -> wl_registry#2598.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2614) -[2618230.930] {Default Queue} -> zwp_primary_selection_device_manager_v1#2614.create_source(new id zwp_primary_selection_source_v1#2615) -[2618230.938] {Default Queue} -> zwp_primary_selection_source_v1#2615.offer("text/plain") -[2618230.942] {Default Queue} -> zwp_primary_selection_source_v1#2615.offer("text/plain;charset=utf-8") -[2618230.946] {Default Queue} -> zwp_primary_selection_source_v1#2615.offer("TEXT") -[2618230.951] {Default Queue} -> zwp_primary_selection_source_v1#2615.offer("STRING") -[2618230.955] {Default Queue} -> zwp_primary_selection_source_v1#2615.offer("UTF8_STRING") -[2618230.959] {Default Queue} wl_registry#2598.global(19, "zwlr_data_control_manager_v1", 2) -[2618230.964] {Default Queue} wl_registry#2598.global(20, "ext_data_control_manager_v1", 1) -[2618230.968] {Default Queue} wl_registry#2598.global(21, "wp_presentation", 2) -[2618230.976] {Default Queue} wl_registry#2598.global(22, "wp_security_context_manager_v1", 1) -[2618230.984] {Default Queue} wl_registry#2598.global(23, "zwp_text_input_manager_v3", 1) -[2618230.989] {Default Queue} wl_registry#2598.global(24, "zwp_input_method_manager_v2", 1) -[2618230.993] {Default Queue} wl_registry#2598.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618230.997] {Default Queue} wl_registry#2598.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618231.002] {Default Queue} wl_registry#2598.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618231.007] {Default Queue} wl_registry#2598.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618231.011] {Default Queue} wl_registry#2598.global(29, "ext_workspace_manager_v1", 1) -[2618231.016] {Default Queue} wl_registry#2598.global(30, "zwlr_output_manager_v1", 4) -[2618231.020] {Default Queue} wl_registry#2598.global(31, "zwlr_screencopy_manager_v1", 3) -[2618231.024] {Default Queue} wl_registry#2598.global(32, "wp_viewporter", 1) -[2618231.029] {Default Queue} wl_registry#2598.global(33, "zxdg_exporter_v2", 1) -[2618231.033] {Default Queue} wl_registry#2598.global(34, "zxdg_importer_v2", 1) -[2618231.037] {Default Queue} wl_registry#2598.global(36, "xdg_activation_v1", 1) -[2618231.042] {Default Queue} wl_registry#2598.global(37, "mutter_x11_interop", 1) -[2618231.046] {Default Queue} wl_registry#2598.global(38, "wl_seat", 9) -[2618231.050] {Default Queue} -> wl_registry#2598.bind(38, "wl_seat", 1, new id [unknown]#2616) -[2618231.055] {Default Queue} wl_registry#2598.global(39, "wp_cursor_shape_manager_v1", 2) -[2618231.059] {Default Queue} wl_registry#2598.global(40, "wl_output", 4) -[2618231.063] {Default Queue} -> wl_registry#2598.bind(40, "wl_output", 1, new id [unknown]#2617) -[2618231.068] {Default Queue} wl_callback#2599.done(0) -[2618231.072] {Default Queue} discarded wl_surface#2567.enter(wl_output#18) -[2618231.077] {Default Queue} discarded wl_surface#2567.enter(wl_output#57) -[2618231.081] {Default Queue} discarded wl_surface#2567.enter(wl_output#89) -[2618231.084] {Default Queue} discarded wl_surface#2567.enter(wl_output#121) -[2618231.089] {Default Queue} discarded wl_surface#2567.enter(wl_output#153) -[2618231.093] {Default Queue} discarded wl_surface#2567.enter(wl_output#185) -[2618231.097] {Default Queue} discarded wl_surface#2567.enter(wl_output#217) -[2618231.101] {Default Queue} discarded wl_surface#2567.enter(wl_output#249) -[2618231.104] {Default Queue} discarded wl_surface#2567.enter(wl_output#281) -[2618231.108] {Default Queue} discarded wl_surface#2567.enter(wl_output#313) -[2618231.112] {Default Queue} discarded wl_surface#2567.enter(wl_output#345) -[2618231.116] {Default Queue} discarded wl_surface#2567.enter(wl_output#377) -[2618231.120] {Default Queue} discarded wl_surface#2567.enter(wl_output#409) -[2618231.124] {Default Queue} discarded wl_surface#2567.enter(wl_output#441) -[2618231.128] {Default Queue} discarded wl_surface#2567.enter(wl_output#473) -[2618231.132] {Default Queue} discarded wl_surface#2567.enter(wl_output#505) -[2618231.136] {Default Queue} discarded wl_surface#2567.enter(wl_output#537) -[2618231.140] {Default Queue} discarded wl_surface#2567.enter(wl_output#569) -[2618231.145] {Default Queue} discarded wl_surface#2567.enter(wl_output#601) -[2618231.149] {Default Queue} discarded wl_surface#2567.enter(wl_output#633) -[2618231.152] {Default Queue} discarded wl_surface#2567.enter(wl_output#665) -[2618231.156] {Default Queue} discarded wl_surface#2567.enter(wl_output#697) -[2618231.160] {Default Queue} discarded wl_surface#2567.enter(wl_output#729) -[2618231.164] {Default Queue} discarded wl_surface#2567.enter(wl_output#761) -[2618231.168] {Default Queue} discarded wl_surface#2567.enter(wl_output#793) -[2618231.172] {Default Queue} discarded wl_surface#2567.enter(wl_output#825) -[2618231.176] {Default Queue} discarded wl_surface#2567.enter(wl_output#857) -[2618231.180] {Default Queue} discarded wl_surface#2567.enter(wl_output#889) -[2618231.184] {Default Queue} discarded wl_surface#2567.enter(wl_output#921) -[2618231.188] {Default Queue} discarded wl_surface#2567.enter(wl_output#953) -[2618231.194] {Default Queue} discarded wl_surface#2567.enter(wl_output#985) -[2618231.200] {Default Queue} discarded wl_surface#2567.enter(wl_output#1017) -[2618231.204] {Default Queue} discarded wl_surface#2567.enter(wl_output#1049) -[2618231.208] {Default Queue} discarded wl_surface#2567.enter(wl_output#1081) -[2618231.212] {Default Queue} discarded wl_surface#2567.enter(wl_output#1113) -[2618231.216] {Default Queue} discarded wl_surface#2567.enter(wl_output#1145) -[2618231.220] {Default Queue} discarded wl_surface#2567.enter(wl_output#1177) -[2618231.224] {Default Queue} discarded wl_surface#2567.enter(wl_output#1209) -[2618231.228] {Default Queue} discarded wl_surface#2567.enter(wl_output#1241) -[2618231.232] {Default Queue} discarded wl_surface#2567.enter(wl_output#1273) -[2618231.236] {Default Queue} discarded wl_surface#2567.enter(wl_output#1305) -[2618231.239] {Default Queue} discarded wl_surface#2567.enter(wl_output#1337) -[2618231.243] {Default Queue} discarded wl_surface#2567.enter(wl_output#1369) -[2618231.247] {Default Queue} discarded wl_surface#2567.enter(wl_output#1401) -[2618231.251] {Default Queue} discarded wl_surface#2567.enter(wl_output#1433) -[2618231.255] {Default Queue} discarded wl_surface#2567.enter(wl_output#1465) -[2618231.259] {Default Queue} discarded wl_surface#2567.enter(wl_output#1497) -[2618231.263] {Default Queue} discarded wl_surface#2567.enter(wl_output#1529) -[2618231.267] {Default Queue} discarded wl_surface#2567.enter(wl_output#1561) -[2618231.271] {Default Queue} discarded wl_surface#2567.enter(wl_output#1593) -[2618231.275] {Default Queue} discarded wl_surface#2567.enter(wl_output#1625) -[2618231.278] {Default Queue} discarded wl_surface#2567.enter(wl_output#1657) -[2618231.282] {Default Queue} discarded wl_surface#2567.enter(wl_output#1689) -[2618231.286] {Default Queue} discarded wl_surface#2567.enter(wl_output#1721) -[2618231.290] {Default Queue} discarded wl_surface#2567.enter(wl_output#1753) -[2618231.294] {Default Queue} discarded wl_surface#2567.enter(wl_output#1785) -[2618231.299] {Default Queue} discarded wl_surface#2567.enter(wl_output#1817) -[2618231.303] {Default Queue} discarded wl_surface#2567.enter(wl_output#1849) -[2618231.307] {Default Queue} discarded wl_surface#2567.enter(wl_output#1881) -[2618231.310] {Default Queue} discarded wl_surface#2567.enter(wl_output#1913) -[2618231.315] {Default Queue} discarded wl_surface#2567.enter(wl_output#1945) -[2618231.319] {Default Queue} discarded wl_surface#2567.enter(wl_output#1977) -[2618231.322] {Default Queue} discarded wl_surface#2567.enter(wl_output#2009) -[2618231.326] {Default Queue} discarded wl_surface#2567.enter(wl_output#2041) -[2618231.330] {Default Queue} discarded wl_surface#2567.enter(wl_output#2073) -[2618231.334] {Default Queue} discarded wl_surface#2567.enter(wl_output#2105) -[2618231.338] {Default Queue} discarded wl_surface#2567.enter(wl_output#2137) -[2618231.342] {Default Queue} discarded wl_surface#2567.enter(wl_output#2169) -[2618231.346] {Default Queue} discarded wl_surface#2567.enter(wl_output#2201) -[2618231.350] {Default Queue} discarded wl_surface#2567.enter(wl_output#2233) -[2618231.354] {Default Queue} discarded wl_surface#2567.enter(wl_output#2265) -[2618231.358] {Default Queue} discarded wl_surface#2567.enter(wl_output#2297) -[2618231.362] {Default Queue} discarded wl_surface#2567.enter(wl_output#2329) -[2618231.366] {Default Queue} discarded wl_surface#2567.enter(wl_output#2361) -[2618231.370] {Default Queue} discarded wl_surface#2567.enter(wl_output#2393) -[2618231.374] {Default Queue} discarded wl_surface#2567.enter(wl_output#2425) -[2618231.378] {Default Queue} discarded wl_surface#2567.enter(wl_output#2457) -[2618231.381] {Default Queue} discarded wl_surface#2567.enter(wl_output#2489) -[2618231.385] {Default Queue} discarded wl_surface#2567.enter(wl_output#2521) -[2618231.390] {Default Queue} discarded wl_surface#2567.enter(wl_output#2553) -[2618231.394] {Default Queue} discarded wl_surface#2567.enter(wl_output#2585) -[2618231.398] {Default Queue} -> wl_compositor#2540.create_surface(new id wl_surface#2599) -[2618231.405] {Default Queue} -> wl_subcompositor#2605.get_subsurface(new id wl_subsurface#2618, wl_surface#2599, wl_surface#2535) -[2618231.414] {Default Queue} -> wl_subsurface#2618.set_desync() -[2618231.419] {Default Queue} -> wl_subsurface#2618.set_position(0, 0) -[2618231.423] {Default Queue} -> wl_subsurface#2618.place_above(wl_surface#2535) -[2618231.467] {Default Queue} -> wl_shm#2607.create_pool(new id wl_shm_pool#2619, fd 414, 16) -[2618231.473] {Default Queue} -> wl_shm#2607.create_pool(new id wl_shm_pool#2620, fd 415, 16) -[2618231.478] {Default Queue} -> wl_shm_pool#2619.create_buffer(new id wl_buffer#2621, 0, 2, 2, 8, 0) -[2618231.483] {Default Queue} -> wl_shm_pool#2620.create_buffer(new id wl_buffer#2622, 0, 2, 2, 8, 0) -[2618231.491] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) -[2618231.496] {Default Queue} -> wl_surface#2599.commit() -[2618231.502] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) -[2618231.506] {Default Queue} -> wl_surface#2599.commit() -[2618231.511] {Default Queue} -> wl_compositor#2604.create_region(new id wl_region#2623) -[2618231.515] {Default Queue} -> wl_compositor#2604.create_region(new id wl_region#2624) -[2618231.520] {Default Queue} -> wl_region#2623.subtract(0, 0, 2, 2) -[2618231.524] {Default Queue} -> wl_region#2623.add(0, 0, 0, 0) -[2618231.528] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) -[2618231.533] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) -[2618231.537] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) -[2618231.542] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) -[2618231.549] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) -[2618231.554] {Default Queue} -> wl_surface#2599.commit() -[2618231.585] {Default Queue} -> wl_shm#2609.create_pool(new id wl_shm_pool#2625, fd 418, 640) -[2618231.592] {Default Queue} -> wl_shm#2609.create_pool(new id wl_shm_pool#2626, fd 419, 640) -[2618231.598] {Default Queue} -> wl_shm_pool#2625.create_buffer(new id wl_buffer#2627, 0, 10, 16, 40, 0) -[2618231.603] {Default Queue} -> wl_shm_pool#2626.create_buffer(new id wl_buffer#2628, 0, 10, 16, 40, 0) -[2618231.609] {Default Queue} -> wl_compositor#2604.create_surface(new id wl_surface#2629) -[2618231.614] {Default Queue} -> wl_surface#2629.attach(wl_buffer#2627, 0, 0) -[2618231.618] {Default Queue} -> wl_surface#2629.commit() -[2618231.624] {Default Queue} -> wl_surface#2629.attach(wl_buffer#2627, 0, 0) -[2618231.628] {Default Queue} -> wl_surface#2629.commit() -[2618231.633] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) -[2618231.640] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2630) -[2618231.645] {Default Queue} -> wl_display#1.sync(new id wl_callback#2631) -[2618235.324] {Display Queue} wl_display#1.delete_id(2631) -[2618235.337] {Default Queue} wl_keyboard#2600.keymap(1, fd 414, 68213) -[2618235.342] {Default Queue} wl_keyboard#2600.enter(566, wl_surface#19, array[0]) -[2618235.347] {Default Queue} wl_keyboard#2600.modifiers(566, 0, 0, 16, 0) -[2618235.352] {Default Queue} discarded wl_shm#2607.format(875709016) -[2618235.356] {Default Queue} discarded wl_shm#2607.format(1) -[2618235.360] {Default Queue} discarded wl_shm#2607.format(0) -[2618235.364] {Default Queue} discarded wl_shm#2607.format(875708993) -[2618235.368] {Default Queue} discarded wl_shm#2608.format(875709016) -[2618235.372] {Default Queue} discarded wl_shm#2608.format(1) -[2618235.376] {Default Queue} discarded wl_shm#2608.format(0) -[2618235.380] {Default Queue} discarded wl_shm#2608.format(875708993) -[2618235.383] {Default Queue} discarded wl_shm#2609.format(875709016) -[2618235.387] {Default Queue} discarded wl_shm#2609.format(1) -[2618235.391] {Default Queue} discarded wl_shm#2609.format(0) -[2618235.395] {Default Queue} discarded wl_shm#2609.format(875708993) -[2618235.399] {Default Queue} wl_seat#2616.capabilities(7) -[2618235.403] {Default Queue} -> wl_seat#2616.get_keyboard(new id wl_keyboard#2632) -[2618235.408] {Default Queue} -> wl_seat#2616.get_pointer(new id wl_pointer#2633) -[2618235.417] {Default Queue} -> wl_data_device_manager#2612.get_data_device(new id wl_data_device#2634, wl_seat#2616) -[2618235.425] {Default Queue} -> zwp_primary_selection_device_manager_v1#2614.get_device(new id zwp_primary_selection_device_v1#2635, wl_seat#2616) -[2618235.433] {Default Queue} wl_output#2617.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618235.438] {Default Queue} wl_output#2617.mode(3, 1280, 800, 60000) -[2618235.443] {Default Queue} discarded wl_surface#3.enter(wl_output#2617) -[2618235.447] {Default Queue} discarded wl_surface#999.enter(wl_output#2617) -[2618235.451] {Default Queue} discarded wl_surface#1191.enter(wl_output#2617) -[2618235.455] {Default Queue} discarded wl_surface#1159.enter(wl_output#2617) -[2618235.459] {Default Queue} discarded wl_surface#1703.enter(wl_output#2617) -[2618235.463] {Default Queue} discarded wl_surface#2215.enter(wl_output#2617) -[2618235.467] {Default Queue} discarded wl_surface#423.enter(wl_output#2617) -[2618235.470] {Default Queue} discarded wl_surface#1447.enter(wl_output#2617) -[2618235.474] {Default Queue} discarded wl_surface#2023.enter(wl_output#2617) -[2618235.478] {Default Queue} discarded wl_surface#1639.enter(wl_output#2617) -[2618235.482] {Default Queue} discarded wl_surface#1319.enter(wl_output#2617) -[2618235.486] {Default Queue} discarded wl_surface#1127.enter(wl_output#2617) -[2618235.490] {Default Queue} discarded wl_surface#2151.enter(wl_output#2617) -[2618235.494] {Default Queue} discarded wl_surface#2375.enter(wl_output#2617) -[2618235.498] {Default Queue} discarded wl_surface#1063.enter(wl_output#2617) -[2618235.502] {Default Queue} discarded wl_surface#455.enter(wl_output#2617) -[2618235.506] {Default Queue} discarded wl_surface#1575.enter(wl_output#2617) -[2618235.510] {Default Queue} discarded wl_surface#1799.enter(wl_output#2617) -[2618235.514] {Default Queue} discarded wl_surface#1415.enter(wl_output#2617) -[2618235.518] {Default Queue} discarded wl_surface#2439.enter(wl_output#2617) -[2618235.522] {Default Queue} discarded wl_surface#2279.enter(wl_output#2617) -[2618235.526] {Default Queue} discarded wl_surface#1831.enter(wl_output#2617) -[2618235.530] {Default Queue} discarded wl_surface#903.enter(wl_output#2617) -[2618235.534] {Default Queue} discarded wl_surface#775.enter(wl_output#2617) -[2618235.538] {Default Queue} discarded wl_surface#1991.enter(wl_output#2617) -[2618235.542] {Default Queue} discarded wl_surface#1543.enter(wl_output#2617) -[2618235.546] {Default Queue} discarded wl_surface#135.enter(wl_output#2617) -[2618235.549] {Default Queue} discarded wl_surface#1287.enter(wl_output#2617) -[2618235.553] {Default Queue} discarded wl_surface#1031.enter(wl_output#2617) -[2618235.557] {Default Queue} discarded wl_surface#615.enter(wl_output#2617) -[2618235.561] {Default Queue} discarded wl_surface#231.enter(wl_output#2617) -[2618235.565] {Default Queue} discarded wl_surface#2343.enter(wl_output#2617) -[2618235.569] {Default Queue} discarded wl_surface#1863.enter(wl_output#2617) -[2618235.573] {Default Queue} discarded wl_surface#359.enter(wl_output#2617) -[2618235.577] {Default Queue} discarded wl_surface#583.enter(wl_output#2617) -[2618235.581] {Default Queue} discarded wl_surface#743.enter(wl_output#2617) -[2618235.584] {Default Queue} discarded wl_surface#2535.enter(wl_output#2617) -[2618235.588] {Default Queue} discarded wl_surface#967.enter(wl_output#2617) -[2618235.592] {Default Queue} discarded wl_surface#103.enter(wl_output#2617) -[2618235.596] {Default Queue} discarded wl_surface#327.enter(wl_output#2617) -[2618235.600] {Default Queue} discarded wl_surface#43.enter(wl_output#2617) -[2618235.604] {Default Queue} discarded wl_surface#2247.enter(wl_output#2617) -[2618235.608] {Default Queue} discarded wl_surface#807.enter(wl_output#2617) -[2618235.612] {Default Queue} discarded wl_surface#19.enter(wl_output#2617) -[2618235.616] {Default Queue} discarded wl_surface#1511.enter(wl_output#2617) -[2618235.620] {Default Queue} discarded wl_surface#199.enter(wl_output#2617) -[2618235.623] {Default Queue} discarded wl_surface#391.enter(wl_output#2617) -[2618235.630] {Default Queue} discarded wl_surface#935.enter(wl_output#2617) -[2618235.636] {Default Queue} discarded wl_surface#1671.enter(wl_output#2617) -[2618235.640] {Default Queue} discarded wl_surface#1351.enter(wl_output#2617) -[2618235.644] {Default Queue} discarded wl_surface#711.enter(wl_output#2617) -[2618235.648] {Default Queue} discarded wl_surface#1223.enter(wl_output#2617) -[2618235.652] {Default Queue} discarded wl_surface#1927.enter(wl_output#2617) -[2618235.656] {Default Queue} discarded wl_surface#871.enter(wl_output#2617) -[2618235.659] {Default Queue} discarded wl_surface#1895.enter(wl_output#2617) -[2618235.663] {Default Queue} discarded wl_surface#263.enter(wl_output#2617) -[2618235.667] {Default Queue} discarded wl_surface#551.enter(wl_output#2617) -[2618235.671] {Default Queue} discarded wl_surface#1735.enter(wl_output#2617) -[2618235.675] {Default Queue} discarded wl_surface#1479.enter(wl_output#2617) -[2618235.679] {Default Queue} discarded wl_surface#1772.enter(wl_output#2617) -[2618235.683] {Default Queue} discarded wl_surface#1959.enter(wl_output#2617) -[2618235.687] {Default Queue} discarded wl_surface#647.enter(wl_output#2617) -[2618235.691] {Default Queue} discarded wl_surface#2055.enter(wl_output#2617) -[2618235.695] {Default Queue} discarded wl_surface#2508.enter(wl_output#2617) -[2618235.699] {Default Queue} discarded wl_surface#71.enter(wl_output#2617) -[2618235.703] {Default Queue} discarded wl_surface#2183.enter(wl_output#2617) -[2618235.707] {Default Queue} discarded wl_surface#2567.enter(wl_output#2617) -[2618235.711] {Default Queue} discarded wl_surface#839.enter(wl_output#2617) -[2618235.715] {Default Queue} discarded wl_surface#1607.enter(wl_output#2617) -[2618235.718] {Default Queue} discarded wl_surface#1095.enter(wl_output#2617) -[2618235.722] {Default Queue} discarded wl_surface#1383.enter(wl_output#2617) -[2618235.726] {Default Queue} discarded wl_surface#487.enter(wl_output#2617) -[2618235.730] {Default Queue} discarded wl_surface#2311.enter(wl_output#2617) -[2618235.734] {Default Queue} discarded wl_surface#519.enter(wl_output#2617) -[2618235.738] {Default Queue} discarded wl_surface#2087.enter(wl_output#2617) -[2618235.742] {Default Queue} discarded wl_surface#2471.enter(wl_output#2617) -[2618235.746] {Default Queue} discarded wl_surface#295.enter(wl_output#2617) -[2618235.750] {Default Queue} discarded wl_surface#167.enter(wl_output#2617) -[2618235.753] {Default Queue} discarded wl_surface#1255.enter(wl_output#2617) -[2618235.757] {Default Queue} discarded wl_surface#679.enter(wl_output#2617) -[2618235.761] {Default Queue} discarded wl_surface#2407.enter(wl_output#2617) -[2618235.765] {Default Queue} discarded wl_surface#2119.enter(wl_output#2617) -[2618235.769] {Default Queue} wl_registry#2630.global(1, "wl_compositor", 6) -[2618235.774] {Default Queue} -> wl_registry#2630.bind(1, "wl_compositor", 1, new id [unknown]#2636) -[2618235.779] {Default Queue} wl_registry#2630.global(2, "wl_subcompositor", 1) -[2618235.784] {Default Queue} -> wl_registry#2630.bind(2, "wl_subcompositor", 1, new id [unknown]#2637) -[2618235.788] {Default Queue} wl_registry#2630.global(3, "xdg_wm_base", 6) -[2618235.793] {Default Queue} -> wl_registry#2630.bind(3, "xdg_wm_base", 1, new id [unknown]#2638) -[2618235.797] {Default Queue} wl_registry#2630.global(6, "zwlr_layer_shell_v1", 5) -[2618235.802] {Default Queue} wl_registry#2630.global(7, "ext_session_lock_manager_v1", 1) -[2618235.806] {Default Queue} wl_registry#2630.global(8, "wl_shm", 2) -[2618235.811] {Default Queue} -> wl_registry#2630.bind(8, "wl_shm", 1, new id [unknown]#2639) -[2618235.815] {Default Queue} -> wl_registry#2630.bind(8, "wl_shm", 1, new id [unknown]#2640) -[2618235.820] {Default Queue} -> wl_registry#2630.bind(8, "wl_shm", 1, new id [unknown]#2641) -[2618235.824] {Default Queue} wl_registry#2630.global(9, "zxdg_output_manager_v1", 3) -[2618235.828] {Default Queue} wl_registry#2630.global(10, "wp_fractional_scale_manager_v1", 1) -[2618235.833] {Default Queue} wl_registry#2630.global(11, "zwp_tablet_manager_v2", 1) -[2618235.837] {Default Queue} wl_registry#2630.global(12, "zwp_pointer_gestures_v1", 3) -[2618235.844] {Default Queue} wl_registry#2630.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618235.850] {Default Queue} -> wl_registry#2630.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2642) -[2618235.855] {Default Queue} wl_registry#2630.global(14, "zwp_pointer_constraints_v1", 1) -[2618235.859] {Default Queue} -> wl_registry#2630.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2643) -[2618235.865] {Default Queue} wl_registry#2630.global(15, "ext_idle_notifier_v1", 2) -[2618235.870] {Default Queue} wl_registry#2630.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618235.879] {Default Queue} wl_registry#2630.global(17, "wl_data_device_manager", 3) -[2618235.884] {Default Queue} -> wl_registry#2630.bind(17, "wl_data_device_manager", 2, new id [unknown]#2644) -[2618235.889] {Default Queue} -> wl_data_device_manager#2644.create_data_source(new id wl_data_source#2645) -[2618235.893] {Default Queue} -> wl_data_source#2645.offer("text/plain") -[2618235.898] {Default Queue} -> wl_data_source#2645.offer("text/plain;charset=utf-8") -[2618235.902] {Default Queue} -> wl_data_source#2645.offer("TEXT") -[2618235.906] {Default Queue} -> wl_data_source#2645.offer("STRING") -[2618235.910] {Default Queue} -> wl_data_source#2645.offer("UTF8_STRING") -[2618235.914] {Default Queue} wl_registry#2630.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618235.919] {Default Queue} -> wl_registry#2630.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2646) -[2618235.927] {Default Queue} -> zwp_primary_selection_device_manager_v1#2646.create_source(new id zwp_primary_selection_source_v1#2647) -[2618235.934] {Default Queue} -> zwp_primary_selection_source_v1#2647.offer("text/plain") -[2618235.938] {Default Queue} -> zwp_primary_selection_source_v1#2647.offer("text/plain;charset=utf-8") -[2618235.943] {Default Queue} -> zwp_primary_selection_source_v1#2647.offer("TEXT") -[2618235.947] {Default Queue} -> zwp_primary_selection_source_v1#2647.offer("STRING") -[2618235.951] {Default Queue} -> zwp_primary_selection_source_v1#2647.offer("UTF8_STRING") -[2618235.955] {Default Queue} wl_registry#2630.global(19, "zwlr_data_control_manager_v1", 2) -[2618235.960] {Default Queue} wl_registry#2630.global(20, "ext_data_control_manager_v1", 1) -[2618235.964] {Default Queue} wl_registry#2630.global(21, "wp_presentation", 2) -[2618235.968] {Default Queue} wl_registry#2630.global(22, "wp_security_context_manager_v1", 1) -[2618235.973] {Default Queue} wl_registry#2630.global(23, "zwp_text_input_manager_v3", 1) -[2618235.977] {Default Queue} wl_registry#2630.global(24, "zwp_input_method_manager_v2", 1) -[2618235.981] {Default Queue} wl_registry#2630.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618235.986] {Default Queue} wl_registry#2630.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618235.990] {Default Queue} wl_registry#2630.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618235.994] {Default Queue} wl_registry#2630.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618235.999] {Default Queue} wl_registry#2630.global(29, "ext_workspace_manager_v1", 1) -[2618236.003] {Default Queue} wl_registry#2630.global(30, "zwlr_output_manager_v1", 4) -[2618236.007] {Default Queue} wl_registry#2630.global(31, "zwlr_screencopy_manager_v1", 3) -[2618236.012] {Default Queue} wl_registry#2630.global(32, "wp_viewporter", 1) -[2618236.016] {Default Queue} wl_registry#2630.global(33, "zxdg_exporter_v2", 1) -[2618236.020] {Default Queue} wl_registry#2630.global(34, "zxdg_importer_v2", 1) -[2618236.024] {Default Queue} wl_registry#2630.global(36, "xdg_activation_v1", 1) -[2618236.028] {Default Queue} wl_registry#2630.global(37, "mutter_x11_interop", 1) -[2618236.033] {Default Queue} wl_registry#2630.global(38, "wl_seat", 9) -[2618236.037] {Default Queue} -> wl_registry#2630.bind(38, "wl_seat", 1, new id [unknown]#2648) -[2618236.042] {Default Queue} wl_registry#2630.global(39, "wp_cursor_shape_manager_v1", 2) -[2618236.046] {Default Queue} wl_registry#2630.global(40, "wl_output", 4) -[2618236.053] {Default Queue} -> wl_registry#2630.bind(40, "wl_output", 1, new id [unknown]#2649) -[2618236.059] {Default Queue} wl_callback#2631.done(0) -[2618236.064] {Default Queue} discarded wl_surface#2599.enter(wl_output#18) -[2618236.068] {Default Queue} discarded wl_surface#2599.enter(wl_output#57) -[2618236.072] {Default Queue} discarded wl_surface#2599.enter(wl_output#89) -[2618236.076] {Default Queue} discarded wl_surface#2599.enter(wl_output#121) -[2618236.080] {Default Queue} discarded wl_surface#2599.enter(wl_output#153) -[2618236.084] {Default Queue} discarded wl_surface#2599.enter(wl_output#185) -[2618236.088] {Default Queue} discarded wl_surface#2599.enter(wl_output#217) -[2618236.092] {Default Queue} discarded wl_surface#2599.enter(wl_output#249) -[2618236.096] {Default Queue} discarded wl_surface#2599.enter(wl_output#281) -[2618236.100] {Default Queue} discarded wl_surface#2599.enter(wl_output#313) -[2618236.104] {Default Queue} discarded wl_surface#2599.enter(wl_output#345) -[2618236.108] {Default Queue} discarded wl_surface#2599.enter(wl_output#377) -[2618236.112] {Default Queue} discarded wl_surface#2599.enter(wl_output#409) -[2618236.116] {Default Queue} discarded wl_surface#2599.enter(wl_output#441) -[2618236.120] {Default Queue} discarded wl_surface#2599.enter(wl_output#473) -[2618236.124] {Default Queue} discarded wl_surface#2599.enter(wl_output#505) -[2618236.128] {Default Queue} discarded wl_surface#2599.enter(wl_output#537) -[2618236.132] {Default Queue} discarded wl_surface#2599.enter(wl_output#569) -[2618236.136] {Default Queue} discarded wl_surface#2599.enter(wl_output#601) -[2618236.140] {Default Queue} discarded wl_surface#2599.enter(wl_output#633) -[2618236.144] {Default Queue} discarded wl_surface#2599.enter(wl_output#665) -[2618236.148] {Default Queue} discarded wl_surface#2599.enter(wl_output#697) -[2618236.151] {Default Queue} discarded wl_surface#2599.enter(wl_output#729) -[2618236.155] {Default Queue} discarded wl_surface#2599.enter(wl_output#761) -[2618236.159] {Default Queue} discarded wl_surface#2599.enter(wl_output#793) -[2618236.163] {Default Queue} discarded wl_surface#2599.enter(wl_output#825) -[2618236.167] {Default Queue} discarded wl_surface#2599.enter(wl_output#857) -[2618236.171] {Default Queue} discarded wl_surface#2599.enter(wl_output#889) -[2618236.175] {Default Queue} discarded wl_surface#2599.enter(wl_output#921) -[2618236.179] {Default Queue} discarded wl_surface#2599.enter(wl_output#953) -[2618236.183] {Default Queue} discarded wl_surface#2599.enter(wl_output#985) -[2618236.187] {Default Queue} discarded wl_surface#2599.enter(wl_output#1017) -[2618236.190] {Default Queue} discarded wl_surface#2599.enter(wl_output#1049) -[2618236.194] {Default Queue} discarded wl_surface#2599.enter(wl_output#1081) -[2618236.198] {Default Queue} discarded wl_surface#2599.enter(wl_output#1113) -[2618236.202] {Default Queue} discarded wl_surface#2599.enter(wl_output#1145) -[2618236.206] {Default Queue} discarded wl_surface#2599.enter(wl_output#1177) -[2618236.210] {Default Queue} discarded wl_surface#2599.enter(wl_output#1209) -[2618236.214] {Default Queue} discarded wl_surface#2599.enter(wl_output#1241) -[2618236.218] {Default Queue} discarded wl_surface#2599.enter(wl_output#1273) -[2618236.222] {Default Queue} discarded wl_surface#2599.enter(wl_output#1305) -[2618236.226] {Default Queue} discarded wl_surface#2599.enter(wl_output#1337) -[2618236.230] {Default Queue} discarded wl_surface#2599.enter(wl_output#1369) -[2618236.234] {Default Queue} discarded wl_surface#2599.enter(wl_output#1401) -[2618236.238] {Default Queue} discarded wl_surface#2599.enter(wl_output#1433) -[2618236.242] {Default Queue} discarded wl_surface#2599.enter(wl_output#1465) -[2618236.246] {Default Queue} discarded wl_surface#2599.enter(wl_output#1497) -[2618236.249] {Default Queue} discarded wl_surface#2599.enter(wl_output#1529) -[2618236.253] {Default Queue} discarded wl_surface#2599.enter(wl_output#1561) -[2618236.257] {Default Queue} discarded wl_surface#2599.enter(wl_output#1593) -[2618236.261] {Default Queue} discarded wl_surface#2599.enter(wl_output#1625) -[2618236.270] {Default Queue} discarded wl_surface#2599.enter(wl_output#1657) -[2618236.275] {Default Queue} discarded wl_surface#2599.enter(wl_output#1689) -[2618236.279] {Default Queue} discarded wl_surface#2599.enter(wl_output#1721) -[2618236.283] {Default Queue} discarded wl_surface#2599.enter(wl_output#1753) -[2618236.287] {Default Queue} discarded wl_surface#2599.enter(wl_output#1785) -[2618236.291] {Default Queue} discarded wl_surface#2599.enter(wl_output#1817) -[2618236.295] {Default Queue} discarded wl_surface#2599.enter(wl_output#1849) -[2618236.299] {Default Queue} discarded wl_surface#2599.enter(wl_output#1881) -[2618236.304] {Default Queue} discarded wl_surface#2599.enter(wl_output#1913) -[2618236.308] {Default Queue} discarded wl_surface#2599.enter(wl_output#1945) -[2618236.312] {Default Queue} discarded wl_surface#2599.enter(wl_output#1977) -[2618236.316] {Default Queue} discarded wl_surface#2599.enter(wl_output#2009) -[2618236.320] {Default Queue} discarded wl_surface#2599.enter(wl_output#2041) -[2618236.324] {Default Queue} discarded wl_surface#2599.enter(wl_output#2073) -[2618236.328] {Default Queue} discarded wl_surface#2599.enter(wl_output#2105) -[2618236.332] {Default Queue} discarded wl_surface#2599.enter(wl_output#2137) -[2618236.336] {Default Queue} discarded wl_surface#2599.enter(wl_output#2169) -[2618236.341] {Default Queue} discarded wl_surface#2599.enter(wl_output#2201) -[2618236.344] {Default Queue} discarded wl_surface#2599.enter(wl_output#2233) -[2618236.348] {Default Queue} discarded wl_surface#2599.enter(wl_output#2265) -[2618236.352] {Default Queue} discarded wl_surface#2599.enter(wl_output#2297) -[2618236.356] {Default Queue} discarded wl_surface#2599.enter(wl_output#2329) -[2618236.360] {Default Queue} discarded wl_surface#2599.enter(wl_output#2361) -[2618236.364] {Default Queue} discarded wl_surface#2599.enter(wl_output#2393) -[2618236.368] {Default Queue} discarded wl_surface#2599.enter(wl_output#2425) -[2618236.372] {Default Queue} discarded wl_surface#2599.enter(wl_output#2457) -[2618236.376] {Default Queue} discarded wl_surface#2599.enter(wl_output#2489) -[2618236.379] {Default Queue} discarded wl_surface#2599.enter(wl_output#2521) -[2618236.383] {Default Queue} discarded wl_surface#2599.enter(wl_output#2553) -[2618236.387] {Default Queue} discarded wl_surface#2599.enter(wl_output#2585) -[2618236.391] {Default Queue} discarded wl_surface#2599.enter(wl_output#2617) -[2618236.396] {Default Queue} -> wl_compositor#2604.create_surface(new id wl_surface#2631) -[2618236.400] {Default Queue} -> wl_subcompositor#2637.get_subsurface(new id wl_subsurface#2650, wl_surface#2631, wl_surface#2599) -[2618236.408] {Default Queue} -> wl_subsurface#2650.set_desync() -[2618236.412] {Default Queue} -> wl_subsurface#2650.set_position(0, 0) -[2618236.417] {Default Queue} -> wl_subsurface#2650.place_above(wl_surface#2599) -[2618236.466] {Default Queue} -> wl_shm#2639.create_pool(new id wl_shm_pool#2651, fd 419, 16) -[2618236.473] {Default Queue} -> wl_shm#2639.create_pool(new id wl_shm_pool#2652, fd 420, 16) -[2618236.478] {Default Queue} -> wl_shm_pool#2651.create_buffer(new id wl_buffer#2653, 0, 2, 2, 8, 0) -[2618236.482] {Default Queue} -> wl_shm_pool#2652.create_buffer(new id wl_buffer#2654, 0, 2, 2, 8, 0) -[2618236.490] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) -[2618236.495] {Default Queue} -> wl_surface#2631.commit() -[2618236.501] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) -[2618236.505] {Default Queue} -> wl_surface#2631.commit() -[2618236.509] {Default Queue} -> wl_compositor#2636.create_region(new id wl_region#2655) -[2618236.513] {Default Queue} -> wl_compositor#2636.create_region(new id wl_region#2656) -[2618236.518] {Default Queue} -> wl_region#2655.subtract(0, 0, 2, 2) -[2618236.522] {Default Queue} -> wl_region#2655.add(0, 0, 0, 0) -[2618236.527] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618236.531] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618236.535] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) -[2618236.543] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) -[2618236.552] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) -[2618236.557] {Default Queue} -> wl_surface#2631.commit() -[2618236.600] {Default Queue} -> wl_shm#2641.create_pool(new id wl_shm_pool#2657, fd 423, 640) -[2618236.611] {Default Queue} -> wl_shm#2641.create_pool(new id wl_shm_pool#2658, fd 424, 640) -[2618236.619] {Default Queue} -> wl_shm_pool#2657.create_buffer(new id wl_buffer#2659, 0, 10, 16, 40, 0) -[2618236.626] {Default Queue} -> wl_shm_pool#2658.create_buffer(new id wl_buffer#2660, 0, 10, 16, 40, 0) -[2618236.637] {Default Queue} -> wl_compositor#2636.create_surface(new id wl_surface#2661) -[2618236.643] {Default Queue} -> wl_surface#2661.attach(wl_buffer#2659, 0, 0) -[2618236.648] {Default Queue} -> wl_surface#2661.commit() -[2618236.654] {Default Queue} -> wl_surface#2661.attach(wl_buffer#2659, 0, 0) -[2618236.659] {Default Queue} -> wl_surface#2661.commit() -[2618236.665] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) -[2618236.674] {Default Queue} -> wl_region#2559.subtract(0, 0, 2, 2) -[2618236.679] {Default Queue} -> wl_subsurface#2554.set_position(3, 3) -[2618236.683] {Default Queue} -> wl_region#2559.subtract(0, 0, 5, 5) -[2618236.688] {Default Queue} -> wl_region#2559.add(0, 0, 0, 0) -[2618236.692] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) -[2618236.697] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) -[2618236.701] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618236.705] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) -[2618236.710] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) -[2618236.714] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) -[2618236.721] {Default Queue} -> wl_region#2559.subtract(0, 0, 5, 5) -[2618236.725] {Default Queue} -> wl_region#2559.add(0, 0, 0, 0) -[2618236.730] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) -[2618236.734] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) -[2618236.739] {Default Queue} -> wl_surface#2535.attach(wl_buffer#2557, 0, 0) -[2618236.743] {Default Queue} -> wl_surface#2535.commit() -[2618236.750] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2662) -[2618236.758] {Default Queue} -> wl_display#1.sync(new id wl_callback#2663) -[2618240.326] {Display Queue} wl_display#1.delete_id(2663) -[2618240.341] {Default Queue} wl_keyboard#2632.keymap(1, fd 419, 68213) -[2618240.348] {Default Queue} wl_keyboard#2632.enter(566, wl_surface#19, array[0]) -[2618240.354] {Default Queue} wl_keyboard#2632.modifiers(566, 0, 0, 16, 0) -[2618240.360] {Default Queue} discarded wl_shm#2639.format(875709016) -[2618240.365] {Default Queue} discarded wl_shm#2639.format(1) -[2618240.370] {Default Queue} discarded wl_shm#2639.format(0) -[2618240.375] {Default Queue} discarded wl_shm#2639.format(875708993) -[2618240.379] {Default Queue} discarded wl_shm#2640.format(875709016) -[2618240.384] {Default Queue} discarded wl_shm#2640.format(1) -[2618240.389] {Default Queue} discarded wl_shm#2640.format(0) -[2618240.394] {Default Queue} discarded wl_shm#2640.format(875708993) -[2618240.399] {Default Queue} discarded wl_shm#2641.format(875709016) -[2618240.404] {Default Queue} discarded wl_shm#2641.format(1) -[2618240.408] {Default Queue} discarded wl_shm#2641.format(0) -[2618240.413] {Default Queue} discarded wl_shm#2641.format(875708993) -[2618240.418] {Default Queue} wl_seat#2648.capabilities(7) -[2618240.424] {Default Queue} -> wl_seat#2648.get_keyboard(new id wl_keyboard#2664) -[2618240.429] {Default Queue} -> wl_seat#2648.get_pointer(new id wl_pointer#2665) -[2618240.435] {Default Queue} -> wl_data_device_manager#2644.get_data_device(new id wl_data_device#2666, wl_seat#2648) -[2618240.441] {Default Queue} -> zwp_primary_selection_device_manager_v1#2646.get_device(new id zwp_primary_selection_device_v1#2667, wl_seat#2648) -[2618240.450] {Default Queue} wl_output#2649.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618240.456] {Default Queue} wl_output#2649.mode(3, 1280, 800, 60000) -[2618240.469] {Default Queue} discarded wl_surface#3.enter(wl_output#2649) -[2618240.478] {Default Queue} discarded wl_surface#999.enter(wl_output#2649) -[2618240.483] {Default Queue} discarded wl_surface#1191.enter(wl_output#2649) -[2618240.488] {Default Queue} discarded wl_surface#1159.enter(wl_output#2649) -[2618240.493] {Default Queue} discarded wl_surface#1703.enter(wl_output#2649) -[2618240.498] {Default Queue} discarded wl_surface#2215.enter(wl_output#2649) -[2618240.503] {Default Queue} discarded wl_surface#423.enter(wl_output#2649) -[2618240.507] {Default Queue} discarded wl_surface#1447.enter(wl_output#2649) -[2618240.512] {Default Queue} discarded wl_surface#2023.enter(wl_output#2649) -[2618240.517] {Default Queue} discarded wl_surface#1639.enter(wl_output#2649) -[2618240.522] {Default Queue} discarded wl_surface#1319.enter(wl_output#2649) -[2618240.527] {Default Queue} discarded wl_surface#1127.enter(wl_output#2649) -[2618240.532] {Default Queue} discarded wl_surface#2151.enter(wl_output#2649) -[2618240.537] {Default Queue} discarded wl_surface#2375.enter(wl_output#2649) -[2618240.542] {Default Queue} discarded wl_surface#1063.enter(wl_output#2649) -[2618240.547] {Default Queue} discarded wl_surface#455.enter(wl_output#2649) -[2618240.551] {Default Queue} discarded wl_surface#1575.enter(wl_output#2649) -[2618240.556] {Default Queue} discarded wl_surface#1799.enter(wl_output#2649) -[2618240.561] {Default Queue} discarded wl_surface#1415.enter(wl_output#2649) -[2618240.566] {Default Queue} discarded wl_surface#2439.enter(wl_output#2649) -[2618240.571] {Default Queue} discarded wl_surface#2279.enter(wl_output#2649) -[2618240.575] {Default Queue} discarded wl_surface#1831.enter(wl_output#2649) -[2618240.581] {Default Queue} discarded wl_surface#903.enter(wl_output#2649) -[2618240.585] {Default Queue} discarded wl_surface#775.enter(wl_output#2649) -[2618240.590] {Default Queue} discarded wl_surface#1991.enter(wl_output#2649) -[2618240.595] {Default Queue} discarded wl_surface#1543.enter(wl_output#2649) -[2618240.600] {Default Queue} discarded wl_surface#135.enter(wl_output#2649) -[2618240.605] {Default Queue} discarded wl_surface#1287.enter(wl_output#2649) -[2618240.610] {Default Queue} discarded wl_surface#1031.enter(wl_output#2649) -[2618240.614] {Default Queue} discarded wl_surface#615.enter(wl_output#2649) -[2618240.619] {Default Queue} discarded wl_surface#231.enter(wl_output#2649) -[2618240.624] {Default Queue} discarded wl_surface#2343.enter(wl_output#2649) -[2618240.629] {Default Queue} discarded wl_surface#1863.enter(wl_output#2649) -[2618240.634] {Default Queue} discarded wl_surface#359.enter(wl_output#2649) -[2618240.641] {Default Queue} discarded wl_surface#583.enter(wl_output#2649) -[2618240.647] {Default Queue} discarded wl_surface#743.enter(wl_output#2649) -[2618240.655] {Default Queue} discarded wl_surface#2535.enter(wl_output#2649) -[2618240.663] {Default Queue} discarded wl_surface#967.enter(wl_output#2649) -[2618240.671] {Default Queue} discarded wl_surface#103.enter(wl_output#2649) -[2618240.678] {Default Queue} discarded wl_surface#327.enter(wl_output#2649) -[2618240.686] {Default Queue} discarded wl_surface#43.enter(wl_output#2649) -[2618240.694] {Default Queue} discarded wl_surface#2247.enter(wl_output#2649) -[2618240.701] {Default Queue} discarded wl_surface#807.enter(wl_output#2649) -[2618240.708] {Default Queue} discarded wl_surface#19.enter(wl_output#2649) -[2618240.714] {Default Queue} discarded wl_surface#1511.enter(wl_output#2649) -[2618240.719] {Default Queue} discarded wl_surface#199.enter(wl_output#2649) -[2618240.724] {Default Queue} discarded wl_surface#391.enter(wl_output#2649) -[2618240.728] {Default Queue} discarded wl_surface#935.enter(wl_output#2649) -[2618240.733] {Default Queue} discarded wl_surface#1671.enter(wl_output#2649) -[2618240.738] {Default Queue} discarded wl_surface#1351.enter(wl_output#2649) -[2618240.743] {Default Queue} discarded wl_surface#711.enter(wl_output#2649) -[2618240.748] {Default Queue} discarded wl_surface#1223.enter(wl_output#2649) -[2618240.753] {Default Queue} discarded wl_surface#1927.enter(wl_output#2649) -[2618240.762] {Default Queue} discarded wl_surface#871.enter(wl_output#2649) -[2618240.769] {Default Queue} discarded wl_surface#1895.enter(wl_output#2649) -[2618240.774] {Default Queue} discarded wl_surface#263.enter(wl_output#2649) -[2618240.779] {Default Queue} discarded wl_surface#551.enter(wl_output#2649) -[2618240.784] {Default Queue} discarded wl_surface#1735.enter(wl_output#2649) -[2618240.789] {Default Queue} discarded wl_surface#1479.enter(wl_output#2649) -[2618240.794] {Default Queue} discarded wl_surface#1772.enter(wl_output#2649) -[2618240.798] {Default Queue} discarded wl_surface#2599.enter(wl_output#2649) -[2618240.804] {Default Queue} discarded wl_surface#1959.enter(wl_output#2649) -[2618240.808] {Default Queue} discarded wl_surface#647.enter(wl_output#2649) -[2618240.813] {Default Queue} discarded wl_surface#2055.enter(wl_output#2649) -[2618240.818] {Default Queue} discarded wl_surface#2508.enter(wl_output#2649) -[2618240.823] {Default Queue} discarded wl_surface#71.enter(wl_output#2649) -[2618240.828] {Default Queue} discarded wl_surface#2183.enter(wl_output#2649) -[2618240.832] {Default Queue} discarded wl_surface#2567.enter(wl_output#2649) -[2618240.837] {Default Queue} discarded wl_surface#839.enter(wl_output#2649) -[2618240.842] {Default Queue} discarded wl_surface#1607.enter(wl_output#2649) -[2618240.847] {Default Queue} discarded wl_surface#1095.enter(wl_output#2649) -[2618240.852] {Default Queue} discarded wl_surface#1383.enter(wl_output#2649) -[2618240.857] {Default Queue} discarded wl_surface#487.enter(wl_output#2649) -[2618240.886] {Default Queue} discarded wl_surface#2311.enter(wl_output#2649) -[2618240.899] {Default Queue} discarded wl_surface#519.enter(wl_output#2649) -[2618240.904] {Default Queue} discarded wl_surface#2087.enter(wl_output#2649) -[2618240.908] {Default Queue} discarded wl_surface#2471.enter(wl_output#2649) -[2618240.912] {Default Queue} discarded wl_surface#295.enter(wl_output#2649) -[2618240.916] {Default Queue} discarded wl_surface#167.enter(wl_output#2649) -[2618240.920] {Default Queue} discarded wl_surface#1255.enter(wl_output#2649) -[2618240.924] {Default Queue} discarded wl_surface#679.enter(wl_output#2649) -[2618240.928] {Default Queue} discarded wl_surface#2407.enter(wl_output#2649) -[2618240.932] {Default Queue} discarded wl_surface#2119.enter(wl_output#2649) -[2618240.936] {Default Queue} wl_registry#2662.global(1, "wl_compositor", 6) -[2618240.942] {Default Queue} -> wl_registry#2662.bind(1, "wl_compositor", 1, new id [unknown]#2668) -[2618240.948] {Default Queue} wl_registry#2662.global(2, "wl_subcompositor", 1) -[2618240.953] {Default Queue} -> wl_registry#2662.bind(2, "wl_subcompositor", 1, new id [unknown]#2669) -[2618240.958] {Default Queue} wl_registry#2662.global(3, "xdg_wm_base", 6) -[2618240.962] {Default Queue} -> wl_registry#2662.bind(3, "xdg_wm_base", 1, new id [unknown]#2670) -[2618240.967] {Default Queue} wl_registry#2662.global(6, "zwlr_layer_shell_v1", 5) -[2618240.972] {Default Queue} wl_registry#2662.global(7, "ext_session_lock_manager_v1", 1) -[2618240.976] {Default Queue} wl_registry#2662.global(8, "wl_shm", 2) -[2618240.981] {Default Queue} -> wl_registry#2662.bind(8, "wl_shm", 1, new id [unknown]#2671) -[2618240.985] {Default Queue} -> wl_registry#2662.bind(8, "wl_shm", 1, new id [unknown]#2672) -[2618240.990] {Default Queue} -> wl_registry#2662.bind(8, "wl_shm", 1, new id [unknown]#2673) -[2618240.994] {Default Queue} wl_registry#2662.global(9, "zxdg_output_manager_v1", 3) -[2618240.999] {Default Queue} wl_registry#2662.global(10, "wp_fractional_scale_manager_v1", 1) -[2618241.003] {Default Queue} wl_registry#2662.global(11, "zwp_tablet_manager_v2", 1) -[2618241.008] {Default Queue} wl_registry#2662.global(12, "zwp_pointer_gestures_v1", 3) -[2618241.012] {Default Queue} wl_registry#2662.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618241.016] {Default Queue} -> wl_registry#2662.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2674) -[2618241.021] {Default Queue} wl_registry#2662.global(14, "zwp_pointer_constraints_v1", 1) -[2618241.025] {Default Queue} -> wl_registry#2662.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2675) -[2618241.033] {Default Queue} wl_registry#2662.global(15, "ext_idle_notifier_v1", 2) -[2618241.042] {Default Queue} wl_registry#2662.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618241.047] {Default Queue} wl_registry#2662.global(17, "wl_data_device_manager", 3) -[2618241.051] {Default Queue} -> wl_registry#2662.bind(17, "wl_data_device_manager", 2, new id [unknown]#2676) -[2618241.056] {Default Queue} -> wl_data_device_manager#2676.create_data_source(new id wl_data_source#2677) -[2618241.061] {Default Queue} -> wl_data_source#2677.offer("text/plain") -[2618241.065] {Default Queue} -> wl_data_source#2677.offer("text/plain;charset=utf-8") -[2618241.069] {Default Queue} -> wl_data_source#2677.offer("TEXT") -[2618241.073] {Default Queue} -> wl_data_source#2677.offer("STRING") -[2618241.077] {Default Queue} -> wl_data_source#2677.offer("UTF8_STRING") -[2618241.081] {Default Queue} wl_registry#2662.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618241.086] {Default Queue} -> wl_registry#2662.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2678) -[2618241.095] {Default Queue} -> zwp_primary_selection_device_manager_v1#2678.create_source(new id zwp_primary_selection_source_v1#2679) -[2618241.102] {Default Queue} -> zwp_primary_selection_source_v1#2679.offer("text/plain") -[2618241.106] {Default Queue} -> zwp_primary_selection_source_v1#2679.offer("text/plain;charset=utf-8") -[2618241.111] {Default Queue} -> zwp_primary_selection_source_v1#2679.offer("TEXT") -[2618241.115] {Default Queue} -> zwp_primary_selection_source_v1#2679.offer("STRING") -[2618241.119] {Default Queue} -> zwp_primary_selection_source_v1#2679.offer("UTF8_STRING") -[2618241.123] {Default Queue} wl_registry#2662.global(19, "zwlr_data_control_manager_v1", 2) -[2618241.127] {Default Queue} wl_registry#2662.global(20, "ext_data_control_manager_v1", 1) -[2618241.132] {Default Queue} wl_registry#2662.global(21, "wp_presentation", 2) -[2618241.136] {Default Queue} wl_registry#2662.global(22, "wp_security_context_manager_v1", 1) -[2618241.141] {Default Queue} wl_registry#2662.global(23, "zwp_text_input_manager_v3", 1) -[2618241.145] {Default Queue} wl_registry#2662.global(24, "zwp_input_method_manager_v2", 1) -[2618241.149] {Default Queue} wl_registry#2662.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618241.153] {Default Queue} wl_registry#2662.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618241.158] {Default Queue} wl_registry#2662.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618241.163] {Default Queue} wl_registry#2662.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618241.167] {Default Queue} wl_registry#2662.global(29, "ext_workspace_manager_v1", 1) -[2618241.171] {Default Queue} wl_registry#2662.global(30, "zwlr_output_manager_v1", 4) -[2618241.176] {Default Queue} wl_registry#2662.global(31, "zwlr_screencopy_manager_v1", 3) -[2618241.180] {Default Queue} wl_registry#2662.global(32, "wp_viewporter", 1) -[2618241.184] {Default Queue} wl_registry#2662.global(33, "zxdg_exporter_v2", 1) -[2618241.189] {Default Queue} wl_registry#2662.global(34, "zxdg_importer_v2", 1) -[2618241.193] {Default Queue} wl_registry#2662.global(36, "xdg_activation_v1", 1) -[2618241.198] {Default Queue} wl_registry#2662.global(37, "mutter_x11_interop", 1) -[2618241.202] {Default Queue} wl_registry#2662.global(38, "wl_seat", 9) -[2618241.206] {Default Queue} -> wl_registry#2662.bind(38, "wl_seat", 1, new id [unknown]#2680) -[2618241.211] {Default Queue} wl_registry#2662.global(39, "wp_cursor_shape_manager_v1", 2) -[2618241.215] {Default Queue} wl_registry#2662.global(40, "wl_output", 4) -[2618241.220] {Default Queue} -> wl_registry#2662.bind(40, "wl_output", 1, new id [unknown]#2681) -[2618241.224] {Default Queue} wl_callback#2663.done(0) -[2618241.229] {Default Queue} discarded wl_surface#2631.enter(wl_output#18) -[2618241.234] {Default Queue} discarded wl_surface#2631.enter(wl_output#57) -[2618241.238] {Default Queue} discarded wl_surface#2631.enter(wl_output#89) -[2618241.244] {Default Queue} discarded wl_surface#2631.enter(wl_output#121) -[2618241.250] {Default Queue} discarded wl_surface#2631.enter(wl_output#153) -[2618241.255] {Default Queue} discarded wl_surface#2631.enter(wl_output#185) -[2618241.259] {Default Queue} discarded wl_surface#2631.enter(wl_output#217) -[2618241.263] {Default Queue} discarded wl_surface#2631.enter(wl_output#249) -[2618241.267] {Default Queue} discarded wl_surface#2631.enter(wl_output#281) -[2618241.270] {Default Queue} discarded wl_surface#2631.enter(wl_output#313) -[2618241.274] {Default Queue} discarded wl_surface#2631.enter(wl_output#345) -[2618241.278] {Default Queue} discarded wl_surface#2631.enter(wl_output#377) -[2618241.282] {Default Queue} discarded wl_surface#2631.enter(wl_output#409) -[2618241.286] {Default Queue} discarded wl_surface#2631.enter(wl_output#441) -[2618241.290] {Default Queue} discarded wl_surface#2631.enter(wl_output#473) -[2618241.294] {Default Queue} discarded wl_surface#2631.enter(wl_output#505) -[2618241.298] {Default Queue} discarded wl_surface#2631.enter(wl_output#537) -[2618241.302] {Default Queue} discarded wl_surface#2631.enter(wl_output#569) -[2618241.306] {Default Queue} discarded wl_surface#2631.enter(wl_output#601) -[2618241.309] {Default Queue} discarded wl_surface#2631.enter(wl_output#633) -[2618241.313] {Default Queue} discarded wl_surface#2631.enter(wl_output#665) -[2618241.317] {Default Queue} discarded wl_surface#2631.enter(wl_output#697) -[2618241.321] {Default Queue} discarded wl_surface#2631.enter(wl_output#729) -[2618241.325] {Default Queue} discarded wl_surface#2631.enter(wl_output#761) -[2618241.329] {Default Queue} discarded wl_surface#2631.enter(wl_output#793) -[2618241.333] {Default Queue} discarded wl_surface#2631.enter(wl_output#825) -[2618241.337] {Default Queue} discarded wl_surface#2631.enter(wl_output#857) -[2618241.341] {Default Queue} discarded wl_surface#2631.enter(wl_output#889) -[2618241.345] {Default Queue} discarded wl_surface#2631.enter(wl_output#921) -[2618241.348] {Default Queue} discarded wl_surface#2631.enter(wl_output#953) -[2618241.352] {Default Queue} discarded wl_surface#2631.enter(wl_output#985) -[2618241.356] {Default Queue} discarded wl_surface#2631.enter(wl_output#1017) -[2618241.360] {Default Queue} discarded wl_surface#2631.enter(wl_output#1049) -[2618241.366] {Default Queue} discarded wl_surface#2631.enter(wl_output#1081) -[2618241.371] {Default Queue} discarded wl_surface#2631.enter(wl_output#1113) -[2618241.377] {Default Queue} discarded wl_surface#2631.enter(wl_output#1145) -[2618241.383] {Default Queue} discarded wl_surface#2631.enter(wl_output#1177) -[2618241.388] {Default Queue} discarded wl_surface#2631.enter(wl_output#1209) -[2618241.392] {Default Queue} discarded wl_surface#2631.enter(wl_output#1241) -[2618241.396] {Default Queue} discarded wl_surface#2631.enter(wl_output#1273) -[2618241.400] {Default Queue} discarded wl_surface#2631.enter(wl_output#1305) -[2618241.404] {Default Queue} discarded wl_surface#2631.enter(wl_output#1337) -[2618241.408] {Default Queue} discarded wl_surface#2631.enter(wl_output#1369) -[2618241.412] {Default Queue} discarded wl_surface#2631.enter(wl_output#1401) -[2618241.416] {Default Queue} discarded wl_surface#2631.enter(wl_output#1433) -[2618241.420] {Default Queue} discarded wl_surface#2631.enter(wl_output#1465) -[2618241.424] {Default Queue} discarded wl_surface#2631.enter(wl_output#1497) -[2618241.428] {Default Queue} discarded wl_surface#2631.enter(wl_output#1529) -[2618241.432] {Default Queue} discarded wl_surface#2631.enter(wl_output#1561) -[2618241.436] {Default Queue} discarded wl_surface#2631.enter(wl_output#1593) -[2618241.439] {Default Queue} discarded wl_surface#2631.enter(wl_output#1625) -[2618241.443] {Default Queue} discarded wl_surface#2631.enter(wl_output#1657) -[2618241.447] {Default Queue} discarded wl_surface#2631.enter(wl_output#1689) -[2618241.451] {Default Queue} discarded wl_surface#2631.enter(wl_output#1721) -[2618241.455] {Default Queue} discarded wl_surface#2631.enter(wl_output#1753) -[2618241.459] {Default Queue} discarded wl_surface#2631.enter(wl_output#1785) -[2618241.467] {Default Queue} discarded wl_surface#2631.enter(wl_output#1817) -[2618241.473] {Default Queue} discarded wl_surface#2631.enter(wl_output#1849) -[2618241.477] {Default Queue} discarded wl_surface#2631.enter(wl_output#1881) -[2618241.481] {Default Queue} discarded wl_surface#2631.enter(wl_output#1913) -[2618241.485] {Default Queue} discarded wl_surface#2631.enter(wl_output#1945) -[2618241.489] {Default Queue} discarded wl_surface#2631.enter(wl_output#1977) -[2618241.493] {Default Queue} discarded wl_surface#2631.enter(wl_output#2009) -[2618241.497] {Default Queue} discarded wl_surface#2631.enter(wl_output#2041) -[2618241.501] {Default Queue} discarded wl_surface#2631.enter(wl_output#2073) -[2618241.505] {Default Queue} discarded wl_surface#2631.enter(wl_output#2105) -[2618241.509] {Default Queue} discarded wl_surface#2631.enter(wl_output#2137) -[2618241.513] {Default Queue} discarded wl_surface#2631.enter(wl_output#2169) -[2618241.517] {Default Queue} discarded wl_surface#2631.enter(wl_output#2201) -[2618241.521] {Default Queue} discarded wl_surface#2631.enter(wl_output#2233) -[2618241.525] {Default Queue} discarded wl_surface#2631.enter(wl_output#2265) -[2618241.529] {Default Queue} discarded wl_surface#2631.enter(wl_output#2297) -[2618241.533] {Default Queue} discarded wl_surface#2631.enter(wl_output#2329) -[2618241.537] {Default Queue} discarded wl_surface#2631.enter(wl_output#2361) -[2618241.541] {Default Queue} discarded wl_surface#2631.enter(wl_output#2393) -[2618241.545] {Default Queue} discarded wl_surface#2631.enter(wl_output#2425) -[2618241.549] {Default Queue} discarded wl_surface#2631.enter(wl_output#2457) -[2618241.553] {Default Queue} discarded wl_surface#2631.enter(wl_output#2489) -[2618241.557] {Default Queue} discarded wl_surface#2631.enter(wl_output#2521) -[2618241.561] {Default Queue} discarded wl_surface#2631.enter(wl_output#2553) -[2618241.565] {Default Queue} discarded wl_surface#2631.enter(wl_output#2585) -[2618241.569] {Default Queue} discarded wl_surface#2631.enter(wl_output#2617) -[2618241.572] {Default Queue} discarded wl_surface#2631.enter(wl_output#2649) -[2618241.577] {Default Queue} -> wl_compositor#2092.create_surface(new id wl_surface#2663) -[2618241.582] {Default Queue} -> wl_subcompositor#2669.get_subsurface(new id wl_subsurface#2682, wl_surface#2663, wl_surface#2087) -[2618241.589] {Default Queue} -> wl_subsurface#2682.set_desync() -[2618241.594] {Default Queue} -> wl_subsurface#2682.set_position(0, 0) -[2618241.599] {Default Queue} -> wl_subsurface#2682.place_above(wl_surface#2087) -[2618241.642] {Default Queue} -> wl_shm#2671.create_pool(new id wl_shm_pool#2683, fd 424, 16) -[2618241.649] {Default Queue} -> wl_shm#2671.create_pool(new id wl_shm_pool#2684, fd 425, 16) -[2618241.654] {Default Queue} -> wl_shm_pool#2683.create_buffer(new id wl_buffer#2685, 0, 2, 2, 8, 0) -[2618241.659] {Default Queue} -> wl_shm_pool#2684.create_buffer(new id wl_buffer#2686, 0, 2, 2, 8, 0) -[2618241.667] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) -[2618241.672] {Default Queue} -> wl_surface#2663.commit() -[2618241.678] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) -[2618241.682] {Default Queue} -> wl_surface#2663.commit() -[2618241.686] {Default Queue} -> wl_compositor#2668.create_region(new id wl_region#2687) -[2618241.691] {Default Queue} -> wl_compositor#2668.create_region(new id wl_region#2688) -[2618241.696] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) -[2618241.700] {Default Queue} -> wl_region#2687.add(0, 0, 0, 0) -[2618241.705] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618241.709] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618241.713] {Default Queue} -> wl_surface#2663.damage(0, 0, 2, 2) -[2618241.718] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) -[2618241.725] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) -[2618241.731] {Default Queue} -> wl_surface#2663.commit() -[2618241.774] {Default Queue} -> wl_shm#2673.create_pool(new id wl_shm_pool#2689, fd 428, 640) -[2618241.784] {Default Queue} -> wl_shm#2673.create_pool(new id wl_shm_pool#2690, fd 429, 640) -[2618241.791] {Default Queue} -> wl_shm_pool#2689.create_buffer(new id wl_buffer#2691, 0, 10, 16, 40, 0) -[2618241.796] {Default Queue} -> wl_shm_pool#2690.create_buffer(new id wl_buffer#2692, 0, 10, 16, 40, 0) -[2618241.804] {Default Queue} -> wl_compositor#2668.create_surface(new id wl_surface#2693) -[2618241.808] {Default Queue} -> wl_surface#2693.attach(wl_buffer#2691, 0, 0) -[2618241.812] {Default Queue} -> wl_surface#2693.commit() -[2618241.818] {Default Queue} -> wl_surface#2693.attach(wl_buffer#2691, 0, 0) -[2618241.822] {Default Queue} -> wl_surface#2693.commit() -[2618241.827] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) -[2618241.832] {Default Queue} -> wl_surface#2663.damage(0, 0, 2, 2) -[2618241.837] {Default Queue} -> wl_surface#2663.damage(0, 0, 2, 2) -[2618241.844] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2694) -[2618241.849] {Default Queue} -> wl_display#1.sync(new id wl_callback#2695) -[2618245.314] {Display Queue} wl_display#1.delete_id(2695) -[2618245.328] {Default Queue} wl_keyboard#2664.keymap(1, fd 424, 68213) -[2618245.336] {Default Queue} wl_keyboard#2664.enter(566, wl_surface#19, array[0]) -[2618245.343] {Default Queue} wl_keyboard#2664.modifiers(566, 0, 0, 16, 0) -[2618245.350] {Default Queue} discarded wl_shm#2671.format(875709016) -[2618245.356] {Default Queue} discarded wl_shm#2671.format(1) -[2618245.361] {Default Queue} discarded wl_shm#2671.format(0) -[2618245.365] {Default Queue} discarded wl_shm#2671.format(875708993) -[2618245.369] {Default Queue} discarded wl_shm#2672.format(875709016) -[2618245.372] {Default Queue} discarded wl_shm#2672.format(1) -[2618245.376] {Default Queue} discarded wl_shm#2672.format(0) -[2618245.380] {Default Queue} discarded wl_shm#2672.format(875708993) -[2618245.384] {Default Queue} discarded wl_shm#2673.format(875709016) -[2618245.388] {Default Queue} discarded wl_shm#2673.format(1) -[2618245.392] {Default Queue} discarded wl_shm#2673.format(0) -[2618245.396] {Default Queue} discarded wl_shm#2673.format(875708993) -[2618245.400] {Default Queue} wl_seat#2680.capabilities(7) -[2618245.404] {Default Queue} -> wl_seat#2680.get_keyboard(new id wl_keyboard#2696) -[2618245.409] {Default Queue} -> wl_seat#2680.get_pointer(new id wl_pointer#2697) -[2618245.414] {Default Queue} -> wl_data_device_manager#2676.get_data_device(new id wl_data_device#2698, wl_seat#2680) -[2618245.419] {Default Queue} -> zwp_primary_selection_device_manager_v1#2678.get_device(new id zwp_primary_selection_device_v1#2699, wl_seat#2680) -[2618245.427] {Default Queue} wl_output#2681.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618245.433] {Default Queue} wl_output#2681.mode(3, 1280, 800, 60000) -[2618245.437] {Default Queue} discarded wl_surface#3.enter(wl_output#2681) -[2618245.442] {Default Queue} discarded wl_surface#999.enter(wl_output#2681) -[2618245.446] {Default Queue} discarded wl_surface#1191.enter(wl_output#2681) -[2618245.450] {Default Queue} discarded wl_surface#1159.enter(wl_output#2681) -[2618245.453] {Default Queue} discarded wl_surface#1703.enter(wl_output#2681) -[2618245.457] {Default Queue} discarded wl_surface#2215.enter(wl_output#2681) -[2618245.461] {Default Queue} discarded wl_surface#423.enter(wl_output#2681) -[2618245.465] {Default Queue} discarded wl_surface#1447.enter(wl_output#2681) -[2618245.469] {Default Queue} discarded wl_surface#2023.enter(wl_output#2681) -[2618245.473] {Default Queue} discarded wl_surface#1639.enter(wl_output#2681) -[2618245.477] {Default Queue} discarded wl_surface#1319.enter(wl_output#2681) -[2618245.481] {Default Queue} discarded wl_surface#1127.enter(wl_output#2681) -[2618245.485] {Default Queue} discarded wl_surface#2151.enter(wl_output#2681) -[2618245.489] {Default Queue} discarded wl_surface#2375.enter(wl_output#2681) -[2618245.493] {Default Queue} discarded wl_surface#1063.enter(wl_output#2681) -[2618245.497] {Default Queue} discarded wl_surface#455.enter(wl_output#2681) -[2618245.500] {Default Queue} discarded wl_surface#1575.enter(wl_output#2681) -[2618245.509] {Default Queue} discarded wl_surface#1799.enter(wl_output#2681) -[2618245.516] {Default Queue} discarded wl_surface#1415.enter(wl_output#2681) -[2618245.520] {Default Queue} discarded wl_surface#2439.enter(wl_output#2681) -[2618245.524] {Default Queue} discarded wl_surface#2279.enter(wl_output#2681) -[2618245.528] {Default Queue} discarded wl_surface#1831.enter(wl_output#2681) -[2618245.532] {Default Queue} discarded wl_surface#903.enter(wl_output#2681) -[2618245.535] {Default Queue} discarded wl_surface#775.enter(wl_output#2681) -[2618245.539] {Default Queue} discarded wl_surface#1991.enter(wl_output#2681) -[2618245.543] {Default Queue} discarded wl_surface#1543.enter(wl_output#2681) -[2618245.547] {Default Queue} discarded wl_surface#135.enter(wl_output#2681) -[2618245.551] {Default Queue} discarded wl_surface#1287.enter(wl_output#2681) -[2618245.555] {Default Queue} discarded wl_surface#1031.enter(wl_output#2681) -[2618245.559] {Default Queue} discarded wl_surface#615.enter(wl_output#2681) -[2618245.563] {Default Queue} discarded wl_surface#231.enter(wl_output#2681) -[2618245.567] {Default Queue} discarded wl_surface#2343.enter(wl_output#2681) -[2618245.571] {Default Queue} discarded wl_surface#1863.enter(wl_output#2681) -[2618245.574] {Default Queue} discarded wl_surface#359.enter(wl_output#2681) -[2618245.578] {Default Queue} discarded wl_surface#583.enter(wl_output#2681) -[2618245.583] {Default Queue} discarded wl_surface#743.enter(wl_output#2681) -[2618245.587] {Default Queue} discarded wl_surface#2535.enter(wl_output#2681) -[2618245.590] {Default Queue} discarded wl_surface#967.enter(wl_output#2681) -[2618245.594] {Default Queue} discarded wl_surface#103.enter(wl_output#2681) -[2618245.598] {Default Queue} discarded wl_surface#327.enter(wl_output#2681) -[2618245.602] {Default Queue} discarded wl_surface#43.enter(wl_output#2681) -[2618245.606] {Default Queue} discarded wl_surface#2247.enter(wl_output#2681) -[2618245.610] {Default Queue} discarded wl_surface#807.enter(wl_output#2681) -[2618245.614] {Default Queue} discarded wl_surface#19.enter(wl_output#2681) -[2618245.618] {Default Queue} discarded wl_surface#1511.enter(wl_output#2681) -[2618245.622] {Default Queue} discarded wl_surface#199.enter(wl_output#2681) -[2618245.626] {Default Queue} discarded wl_surface#391.enter(wl_output#2681) -[2618245.630] {Default Queue} discarded wl_surface#935.enter(wl_output#2681) -[2618245.634] {Default Queue} discarded wl_surface#1671.enter(wl_output#2681) -[2618245.638] {Default Queue} discarded wl_surface#1351.enter(wl_output#2681) -[2618245.642] {Default Queue} discarded wl_surface#711.enter(wl_output#2681) -[2618245.645] {Default Queue} discarded wl_surface#1223.enter(wl_output#2681) -[2618245.649] {Default Queue} discarded wl_surface#1927.enter(wl_output#2681) -[2618245.654] {Default Queue} discarded wl_surface#871.enter(wl_output#2681) -[2618245.658] {Default Queue} discarded wl_surface#1895.enter(wl_output#2681) -[2618245.661] {Default Queue} discarded wl_surface#263.enter(wl_output#2681) -[2618245.665] {Default Queue} discarded wl_surface#551.enter(wl_output#2681) -[2618245.669] {Default Queue} discarded wl_surface#1735.enter(wl_output#2681) -[2618245.673] {Default Queue} discarded wl_surface#1479.enter(wl_output#2681) -[2618245.677] {Default Queue} discarded wl_surface#1772.enter(wl_output#2681) -[2618245.681] {Default Queue} discarded wl_surface#2599.enter(wl_output#2681) -[2618245.685] {Default Queue} discarded wl_surface#2631.enter(wl_output#2681) -[2618245.689] {Default Queue} discarded wl_surface#1959.enter(wl_output#2681) -[2618245.693] {Default Queue} discarded wl_surface#647.enter(wl_output#2681) -[2618245.697] {Default Queue} discarded wl_surface#2055.enter(wl_output#2681) -[2618245.701] {Default Queue} discarded wl_surface#2508.enter(wl_output#2681) -[2618245.705] {Default Queue} discarded wl_surface#71.enter(wl_output#2681) -[2618245.708] {Default Queue} discarded wl_surface#2183.enter(wl_output#2681) -[2618245.712] {Default Queue} discarded wl_surface#2567.enter(wl_output#2681) -[2618245.716] {Default Queue} discarded wl_surface#839.enter(wl_output#2681) -[2618245.724] {Default Queue} discarded wl_surface#1607.enter(wl_output#2681) -[2618245.730] {Default Queue} discarded wl_surface#1095.enter(wl_output#2681) -[2618245.734] {Default Queue} discarded wl_surface#1383.enter(wl_output#2681) -[2618245.737] {Default Queue} discarded wl_surface#487.enter(wl_output#2681) -[2618245.741] {Default Queue} discarded wl_surface#2311.enter(wl_output#2681) -[2618245.745] {Default Queue} discarded wl_surface#519.enter(wl_output#2681) -[2618245.749] {Default Queue} discarded wl_surface#2087.enter(wl_output#2681) -[2618245.753] {Default Queue} discarded wl_surface#2471.enter(wl_output#2681) -[2618245.757] {Default Queue} discarded wl_surface#295.enter(wl_output#2681) -[2618245.761] {Default Queue} discarded wl_surface#167.enter(wl_output#2681) -[2618245.765] {Default Queue} discarded wl_surface#1255.enter(wl_output#2681) -[2618245.769] {Default Queue} discarded wl_surface#679.enter(wl_output#2681) -[2618245.773] {Default Queue} discarded wl_surface#2407.enter(wl_output#2681) -[2618245.777] {Default Queue} discarded wl_surface#2119.enter(wl_output#2681) -[2618245.781] {Default Queue} wl_registry#2694.global(1, "wl_compositor", 6) -[2618245.786] {Default Queue} -> wl_registry#2694.bind(1, "wl_compositor", 1, new id [unknown]#2700) -[2618245.791] {Default Queue} wl_registry#2694.global(2, "wl_subcompositor", 1) -[2618245.796] {Default Queue} -> wl_registry#2694.bind(2, "wl_subcompositor", 1, new id [unknown]#2701) -[2618245.800] {Default Queue} wl_registry#2694.global(3, "xdg_wm_base", 6) -[2618245.805] {Default Queue} -> wl_registry#2694.bind(3, "xdg_wm_base", 1, new id [unknown]#2702) -[2618245.810] {Default Queue} wl_registry#2694.global(6, "zwlr_layer_shell_v1", 5) -[2618245.814] {Default Queue} wl_registry#2694.global(7, "ext_session_lock_manager_v1", 1) -[2618245.819] {Default Queue} wl_registry#2694.global(8, "wl_shm", 2) -[2618245.824] {Default Queue} -> wl_registry#2694.bind(8, "wl_shm", 1, new id [unknown]#2703) -[2618245.828] {Default Queue} -> wl_registry#2694.bind(8, "wl_shm", 1, new id [unknown]#2704) -[2618245.832] {Default Queue} -> wl_registry#2694.bind(8, "wl_shm", 1, new id [unknown]#2705) -[2618245.837] {Default Queue} wl_registry#2694.global(9, "zxdg_output_manager_v1", 3) -[2618245.841] {Default Queue} wl_registry#2694.global(10, "wp_fractional_scale_manager_v1", 1) -[2618245.845] {Default Queue} wl_registry#2694.global(11, "zwp_tablet_manager_v2", 1) -[2618245.850] {Default Queue} wl_registry#2694.global(12, "zwp_pointer_gestures_v1", 3) -[2618245.854] {Default Queue} wl_registry#2694.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618245.859] {Default Queue} -> wl_registry#2694.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2706) -[2618245.868] {Default Queue} wl_registry#2694.global(14, "zwp_pointer_constraints_v1", 1) -[2618245.873] {Default Queue} -> wl_registry#2694.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2707) -[2618245.877] {Default Queue} wl_registry#2694.global(15, "ext_idle_notifier_v1", 2) -[2618245.882] {Default Queue} wl_registry#2694.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618245.886] {Default Queue} wl_registry#2694.global(17, "wl_data_device_manager", 3) -[2618245.892] {Default Queue} -> wl_registry#2694.bind(17, "wl_data_device_manager", 2, new id [unknown]#2708) -[2618245.896] {Default Queue} -> wl_data_device_manager#2708.create_data_source(new id wl_data_source#2709) -[2618245.900] {Default Queue} -> wl_data_source#2709.offer("text/plain") -[2618245.905] {Default Queue} -> wl_data_source#2709.offer("text/plain;charset=utf-8") -[2618245.909] {Default Queue} -> wl_data_source#2709.offer("TEXT") -[2618245.913] {Default Queue} -> wl_data_source#2709.offer("STRING") -[2618245.917] {Default Queue} -> wl_data_source#2709.offer("UTF8_STRING") -[2618245.922] {Default Queue} wl_registry#2694.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618245.927] {Default Queue} -> wl_registry#2694.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2710) -[2618245.935] {Default Queue} -> zwp_primary_selection_device_manager_v1#2710.create_source(new id zwp_primary_selection_source_v1#2711) -[2618245.947] {Default Queue} -> zwp_primary_selection_source_v1#2711.offer("text/plain") -[2618245.951] {Default Queue} -> zwp_primary_selection_source_v1#2711.offer("text/plain;charset=utf-8") -[2618245.955] {Default Queue} -> zwp_primary_selection_source_v1#2711.offer("TEXT") -[2618245.959] {Default Queue} -> zwp_primary_selection_source_v1#2711.offer("STRING") -[2618245.964] {Default Queue} -> zwp_primary_selection_source_v1#2711.offer("UTF8_STRING") -[2618245.968] {Default Queue} wl_registry#2694.global(19, "zwlr_data_control_manager_v1", 2) -[2618245.973] {Default Queue} wl_registry#2694.global(20, "ext_data_control_manager_v1", 1) -[2618245.977] {Default Queue} wl_registry#2694.global(21, "wp_presentation", 2) -[2618245.982] {Default Queue} wl_registry#2694.global(22, "wp_security_context_manager_v1", 1) -[2618245.986] {Default Queue} wl_registry#2694.global(23, "zwp_text_input_manager_v3", 1) -[2618245.990] {Default Queue} wl_registry#2694.global(24, "zwp_input_method_manager_v2", 1) -[2618245.994] {Default Queue} wl_registry#2694.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618245.999] {Default Queue} wl_registry#2694.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618246.003] {Default Queue} wl_registry#2694.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618246.008] {Default Queue} wl_registry#2694.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618246.012] {Default Queue} wl_registry#2694.global(29, "ext_workspace_manager_v1", 1) -[2618246.017] {Default Queue} wl_registry#2694.global(30, "zwlr_output_manager_v1", 4) -[2618246.021] {Default Queue} wl_registry#2694.global(31, "zwlr_screencopy_manager_v1", 3) -[2618246.025] {Default Queue} wl_registry#2694.global(32, "wp_viewporter", 1) -[2618246.030] {Default Queue} wl_registry#2694.global(33, "zxdg_exporter_v2", 1) -[2618246.034] {Default Queue} wl_registry#2694.global(34, "zxdg_importer_v2", 1) -[2618246.038] {Default Queue} wl_registry#2694.global(36, "xdg_activation_v1", 1) -[2618246.042] {Default Queue} wl_registry#2694.global(37, "mutter_x11_interop", 1) -[2618246.047] {Default Queue} wl_registry#2694.global(38, "wl_seat", 9) -[2618246.052] {Default Queue} -> wl_registry#2694.bind(38, "wl_seat", 1, new id [unknown]#2712) -[2618246.056] {Default Queue} wl_registry#2694.global(39, "wp_cursor_shape_manager_v1", 2) -[2618246.061] {Default Queue} wl_registry#2694.global(40, "wl_output", 4) -[2618246.066] {Default Queue} -> wl_registry#2694.bind(40, "wl_output", 1, new id [unknown]#2713) -[2618246.070] {Default Queue} wl_callback#2695.done(0) -[2618246.075] {Default Queue} discarded wl_surface#2663.enter(wl_output#18) -[2618246.079] {Default Queue} discarded wl_surface#2663.enter(wl_output#57) -[2618246.083] {Default Queue} discarded wl_surface#2663.enter(wl_output#89) -[2618246.087] {Default Queue} discarded wl_surface#2663.enter(wl_output#121) -[2618246.091] {Default Queue} discarded wl_surface#2663.enter(wl_output#153) -[2618246.095] {Default Queue} discarded wl_surface#2663.enter(wl_output#185) -[2618246.099] {Default Queue} discarded wl_surface#2663.enter(wl_output#217) -[2618246.103] {Default Queue} discarded wl_surface#2663.enter(wl_output#249) -[2618246.107] {Default Queue} discarded wl_surface#2663.enter(wl_output#281) -[2618246.111] {Default Queue} discarded wl_surface#2663.enter(wl_output#313) -[2618246.115] {Default Queue} discarded wl_surface#2663.enter(wl_output#345) -[2618246.119] {Default Queue} discarded wl_surface#2663.enter(wl_output#377) -[2618246.122] {Default Queue} discarded wl_surface#2663.enter(wl_output#409) -[2618246.126] {Default Queue} discarded wl_surface#2663.enter(wl_output#441) -[2618246.130] {Default Queue} discarded wl_surface#2663.enter(wl_output#473) -[2618246.134] {Default Queue} discarded wl_surface#2663.enter(wl_output#505) -[2618246.138] {Default Queue} discarded wl_surface#2663.enter(wl_output#537) -[2618246.142] {Default Queue} discarded wl_surface#2663.enter(wl_output#569) -[2618246.146] {Default Queue} discarded wl_surface#2663.enter(wl_output#601) -[2618246.153] {Default Queue} discarded wl_surface#2663.enter(wl_output#633) -[2618246.158] {Default Queue} discarded wl_surface#2663.enter(wl_output#665) -[2618246.162] {Default Queue} discarded wl_surface#2663.enter(wl_output#697) -[2618246.166] {Default Queue} discarded wl_surface#2663.enter(wl_output#729) -[2618246.170] {Default Queue} discarded wl_surface#2663.enter(wl_output#761) -[2618246.174] {Default Queue} discarded wl_surface#2663.enter(wl_output#793) -[2618246.178] {Default Queue} discarded wl_surface#2663.enter(wl_output#825) -[2618246.182] {Default Queue} discarded wl_surface#2663.enter(wl_output#857) -[2618246.186] {Default Queue} discarded wl_surface#2663.enter(wl_output#889) -[2618246.190] {Default Queue} discarded wl_surface#2663.enter(wl_output#921) -[2618246.193] {Default Queue} discarded wl_surface#2663.enter(wl_output#953) -[2618246.197] {Default Queue} discarded wl_surface#2663.enter(wl_output#985) -[2618246.201] {Default Queue} discarded wl_surface#2663.enter(wl_output#1017) -[2618246.205] {Default Queue} discarded wl_surface#2663.enter(wl_output#1049) -[2618246.209] {Default Queue} discarded wl_surface#2663.enter(wl_output#1081) -[2618246.213] {Default Queue} discarded wl_surface#2663.enter(wl_output#1113) -[2618246.217] {Default Queue} discarded wl_surface#2663.enter(wl_output#1145) -[2618246.221] {Default Queue} discarded wl_surface#2663.enter(wl_output#1177) -[2618246.225] {Default Queue} discarded wl_surface#2663.enter(wl_output#1209) -[2618246.229] {Default Queue} discarded wl_surface#2663.enter(wl_output#1241) -[2618246.233] {Default Queue} discarded wl_surface#2663.enter(wl_output#1273) -[2618246.237] {Default Queue} discarded wl_surface#2663.enter(wl_output#1305) -[2618246.241] {Default Queue} discarded wl_surface#2663.enter(wl_output#1337) -[2618246.245] {Default Queue} discarded wl_surface#2663.enter(wl_output#1369) -[2618246.249] {Default Queue} discarded wl_surface#2663.enter(wl_output#1401) -[2618246.253] {Default Queue} discarded wl_surface#2663.enter(wl_output#1433) -[2618246.257] {Default Queue} discarded wl_surface#2663.enter(wl_output#1465) -[2618246.260] {Default Queue} discarded wl_surface#2663.enter(wl_output#1497) -[2618246.264] {Default Queue} discarded wl_surface#2663.enter(wl_output#1529) -[2618246.268] {Default Queue} discarded wl_surface#2663.enter(wl_output#1561) -[2618246.272] {Default Queue} discarded wl_surface#2663.enter(wl_output#1593) -[2618246.276] {Default Queue} discarded wl_surface#2663.enter(wl_output#1625) -[2618246.280] {Default Queue} discarded wl_surface#2663.enter(wl_output#1657) -[2618246.284] {Default Queue} discarded wl_surface#2663.enter(wl_output#1689) -[2618246.288] {Default Queue} discarded wl_surface#2663.enter(wl_output#1721) -[2618246.292] {Default Queue} discarded wl_surface#2663.enter(wl_output#1753) -[2618246.296] {Default Queue} discarded wl_surface#2663.enter(wl_output#1785) -[2618246.300] {Default Queue} discarded wl_surface#2663.enter(wl_output#1817) -[2618246.304] {Default Queue} discarded wl_surface#2663.enter(wl_output#1849) -[2618246.308] {Default Queue} discarded wl_surface#2663.enter(wl_output#1881) -[2618246.312] {Default Queue} discarded wl_surface#2663.enter(wl_output#1913) -[2618246.316] {Default Queue} discarded wl_surface#2663.enter(wl_output#1945) -[2618246.320] {Default Queue} discarded wl_surface#2663.enter(wl_output#1977) -[2618246.324] {Default Queue} discarded wl_surface#2663.enter(wl_output#2009) -[2618246.328] {Default Queue} discarded wl_surface#2663.enter(wl_output#2041) -[2618246.332] {Default Queue} discarded wl_surface#2663.enter(wl_output#2073) -[2618246.335] {Default Queue} discarded wl_surface#2663.enter(wl_output#2105) -[2618246.339] {Default Queue} discarded wl_surface#2663.enter(wl_output#2137) -[2618246.343] {Default Queue} discarded wl_surface#2663.enter(wl_output#2169) -[2618246.347] {Default Queue} discarded wl_surface#2663.enter(wl_output#2201) -[2618246.351] {Default Queue} discarded wl_surface#2663.enter(wl_output#2233) -[2618246.355] {Default Queue} discarded wl_surface#2663.enter(wl_output#2265) -[2618246.359] {Default Queue} discarded wl_surface#2663.enter(wl_output#2297) -[2618246.366] {Default Queue} discarded wl_surface#2663.enter(wl_output#2329) -[2618246.371] {Default Queue} discarded wl_surface#2663.enter(wl_output#2361) -[2618246.375] {Default Queue} discarded wl_surface#2663.enter(wl_output#2393) -[2618246.379] {Default Queue} discarded wl_surface#2663.enter(wl_output#2425) -[2618246.384] {Default Queue} discarded wl_surface#2663.enter(wl_output#2457) -[2618246.388] {Default Queue} discarded wl_surface#2663.enter(wl_output#2489) -[2618246.392] {Default Queue} discarded wl_surface#2663.enter(wl_output#2521) -[2618246.396] {Default Queue} discarded wl_surface#2663.enter(wl_output#2553) -[2618246.400] {Default Queue} discarded wl_surface#2663.enter(wl_output#2585) -[2618246.404] {Default Queue} discarded wl_surface#2663.enter(wl_output#2617) -[2618246.407] {Default Queue} discarded wl_surface#2663.enter(wl_output#2649) -[2618246.411] {Default Queue} discarded wl_surface#2663.enter(wl_output#2681) -[2618246.416] {Default Queue} -> wl_compositor#2668.create_surface(new id wl_surface#2695) -[2618246.420] {Default Queue} -> wl_subcompositor#2701.get_subsurface(new id wl_subsurface#2714, wl_surface#2695, wl_surface#2663) -[2618246.428] {Default Queue} -> wl_subsurface#2714.set_desync() -[2618246.433] {Default Queue} -> wl_subsurface#2714.set_position(0, 0) -[2618246.437] {Default Queue} -> wl_subsurface#2714.place_above(wl_surface#2663) -[2618246.481] {Default Queue} -> wl_shm#2703.create_pool(new id wl_shm_pool#2715, fd 429, 16) -[2618246.488] {Default Queue} -> wl_shm#2703.create_pool(new id wl_shm_pool#2716, fd 430, 16) -[2618246.492] {Default Queue} -> wl_shm_pool#2715.create_buffer(new id wl_buffer#2717, 0, 2, 2, 8, 0) -[2618246.498] {Default Queue} -> wl_shm_pool#2716.create_buffer(new id wl_buffer#2718, 0, 2, 2, 8, 0) -[2618246.506] {Default Queue} -> wl_surface#2695.attach(wl_buffer#2717, 0, 0) -[2618246.510] {Default Queue} -> wl_surface#2695.commit() -[2618246.516] {Default Queue} -> wl_surface#2695.attach(wl_buffer#2717, 0, 0) -[2618246.520] {Default Queue} -> wl_surface#2695.commit() -[2618246.524] {Default Queue} -> wl_compositor#2700.create_region(new id wl_region#2719) -[2618246.529] {Default Queue} -> wl_compositor#2700.create_region(new id wl_region#2720) -[2618246.533] {Default Queue} -> wl_region#2719.subtract(0, 0, 2, 2) -[2618246.537] {Default Queue} -> wl_region#2719.add(0, 0, 0, 0) -[2618246.542] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) -[2618246.546] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) -[2618246.550] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) -[2618246.555] {Default Queue} -> wl_surface#2663.damage(0, 0, 2, 2) -[2618246.562] {Default Queue} -> wl_surface#2695.attach(wl_buffer#2717, 0, 0) -[2618246.567] {Default Queue} -> wl_surface#2695.commit() -[2618246.607] {Default Queue} -> wl_shm#2705.create_pool(new id wl_shm_pool#2721, fd 433, 640) -[2618246.613] {Default Queue} -> wl_shm#2705.create_pool(new id wl_shm_pool#2722, fd 434, 640) -[2618246.618] {Default Queue} -> wl_shm_pool#2721.create_buffer(new id wl_buffer#2723, 0, 10, 16, 40, 0) -[2618246.623] {Default Queue} -> wl_shm_pool#2722.create_buffer(new id wl_buffer#2724, 0, 10, 16, 40, 0) -[2618246.630] {Default Queue} -> wl_compositor#2700.create_surface(new id wl_surface#2725) -[2618246.634] {Default Queue} -> wl_surface#2725.attach(wl_buffer#2723, 0, 0) -[2618246.638] {Default Queue} -> wl_surface#2725.commit() -[2618246.644] {Default Queue} -> wl_surface#2725.attach(wl_buffer#2723, 0, 0) -[2618246.648] {Default Queue} -> wl_surface#2725.commit() -[2618246.655] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) -[2618246.662] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2726) -[2618246.667] {Default Queue} -> wl_display#1.sync(new id wl_callback#2727) -[2618250.304] {Display Queue} wl_display#1.delete_id(2727) -[2618250.317] {Default Queue} wl_keyboard#2696.keymap(1, fd 429, 68213) -[2618250.322] {Default Queue} wl_keyboard#2696.enter(566, wl_surface#19, array[0]) -[2618250.328] {Default Queue} wl_keyboard#2696.modifiers(566, 0, 0, 16, 0) -[2618250.337] {Default Queue} discarded wl_shm#2703.format(875709016) -[2618250.344] {Default Queue} discarded wl_shm#2703.format(1) -[2618250.348] {Default Queue} discarded wl_shm#2703.format(0) -[2618250.352] {Default Queue} discarded wl_shm#2703.format(875708993) -[2618250.356] {Default Queue} discarded wl_shm#2704.format(875709016) -[2618250.360] {Default Queue} discarded wl_shm#2704.format(1) -[2618250.364] {Default Queue} discarded wl_shm#2704.format(0) -[2618250.368] {Default Queue} discarded wl_shm#2704.format(875708993) -[2618250.372] {Default Queue} discarded wl_shm#2705.format(875709016) -[2618250.375] {Default Queue} discarded wl_shm#2705.format(1) -[2618250.379] {Default Queue} discarded wl_shm#2705.format(0) -[2618250.383] {Default Queue} discarded wl_shm#2705.format(875708993) -[2618250.387] {Default Queue} wl_seat#2712.capabilities(7) -[2618250.391] {Default Queue} -> wl_seat#2712.get_keyboard(new id wl_keyboard#2728) -[2618250.396] {Default Queue} -> wl_seat#2712.get_pointer(new id wl_pointer#2729) -[2618250.400] {Default Queue} -> wl_data_device_manager#2708.get_data_device(new id wl_data_device#2730, wl_seat#2712) -[2618250.405] {Default Queue} -> zwp_primary_selection_device_manager_v1#2710.get_device(new id zwp_primary_selection_device_v1#2731, wl_seat#2712) -[2618250.413] {Default Queue} wl_output#2713.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618250.418] {Default Queue} wl_output#2713.mode(3, 1280, 800, 60000) -[2618250.423] {Default Queue} discarded wl_surface#3.enter(wl_output#2713) -[2618250.427] {Default Queue} discarded wl_surface#999.enter(wl_output#2713) -[2618250.431] {Default Queue} discarded wl_surface#1191.enter(wl_output#2713) -[2618250.435] {Default Queue} discarded wl_surface#1159.enter(wl_output#2713) -[2618250.439] {Default Queue} discarded wl_surface#1703.enter(wl_output#2713) -[2618250.443] {Default Queue} discarded wl_surface#2215.enter(wl_output#2713) -[2618250.447] {Default Queue} discarded wl_surface#423.enter(wl_output#2713) -[2618250.451] {Default Queue} discarded wl_surface#1447.enter(wl_output#2713) -[2618250.455] {Default Queue} discarded wl_surface#2023.enter(wl_output#2713) -[2618250.458] {Default Queue} discarded wl_surface#1639.enter(wl_output#2713) -[2618250.462] {Default Queue} discarded wl_surface#1319.enter(wl_output#2713) -[2618250.467] {Default Queue} discarded wl_surface#1127.enter(wl_output#2713) -[2618250.471] {Default Queue} discarded wl_surface#2151.enter(wl_output#2713) -[2618250.475] {Default Queue} discarded wl_surface#2375.enter(wl_output#2713) -[2618250.479] {Default Queue} discarded wl_surface#1063.enter(wl_output#2713) -[2618250.483] {Default Queue} discarded wl_surface#455.enter(wl_output#2713) -[2618250.486] {Default Queue} discarded wl_surface#1575.enter(wl_output#2713) -[2618250.491] {Default Queue} discarded wl_surface#1799.enter(wl_output#2713) -[2618250.495] {Default Queue} discarded wl_surface#1415.enter(wl_output#2713) -[2618250.500] {Default Queue} discarded wl_surface#2439.enter(wl_output#2713) -[2618250.504] {Default Queue} discarded wl_surface#2279.enter(wl_output#2713) -[2618250.508] {Default Queue} discarded wl_surface#1831.enter(wl_output#2713) -[2618250.512] {Default Queue} discarded wl_surface#903.enter(wl_output#2713) -[2618250.516] {Default Queue} discarded wl_surface#2663.enter(wl_output#2713) -[2618250.520] {Default Queue} discarded wl_surface#775.enter(wl_output#2713) -[2618250.524] {Default Queue} discarded wl_surface#1991.enter(wl_output#2713) -[2618250.528] {Default Queue} discarded wl_surface#1543.enter(wl_output#2713) -[2618250.531] {Default Queue} discarded wl_surface#135.enter(wl_output#2713) -[2618250.535] {Default Queue} discarded wl_surface#1287.enter(wl_output#2713) -[2618250.539] {Default Queue} discarded wl_surface#1031.enter(wl_output#2713) -[2618250.543] {Default Queue} discarded wl_surface#615.enter(wl_output#2713) -[2618250.547] {Default Queue} discarded wl_surface#231.enter(wl_output#2713) -[2618250.551] {Default Queue} discarded wl_surface#2343.enter(wl_output#2713) -[2618250.555] {Default Queue} discarded wl_surface#1863.enter(wl_output#2713) -[2618250.562] {Default Queue} discarded wl_surface#359.enter(wl_output#2713) -[2618250.568] {Default Queue} discarded wl_surface#583.enter(wl_output#2713) -[2618250.572] {Default Queue} discarded wl_surface#743.enter(wl_output#2713) -[2618250.575] {Default Queue} discarded wl_surface#2535.enter(wl_output#2713) -[2618250.579] {Default Queue} discarded wl_surface#967.enter(wl_output#2713) -[2618250.583] {Default Queue} discarded wl_surface#103.enter(wl_output#2713) -[2618250.588] {Default Queue} discarded wl_surface#327.enter(wl_output#2713) -[2618250.592] {Default Queue} discarded wl_surface#43.enter(wl_output#2713) -[2618250.596] {Default Queue} discarded wl_surface#2247.enter(wl_output#2713) -[2618250.599] {Default Queue} discarded wl_surface#807.enter(wl_output#2713) -[2618250.604] {Default Queue} discarded wl_surface#19.enter(wl_output#2713) -[2618250.607] {Default Queue} discarded wl_surface#1511.enter(wl_output#2713) -[2618250.612] {Default Queue} discarded wl_surface#199.enter(wl_output#2713) -[2618250.615] {Default Queue} discarded wl_surface#391.enter(wl_output#2713) -[2618250.620] {Default Queue} discarded wl_surface#935.enter(wl_output#2713) -[2618250.624] {Default Queue} discarded wl_surface#1671.enter(wl_output#2713) -[2618250.628] {Default Queue} discarded wl_surface#1351.enter(wl_output#2713) -[2618250.632] {Default Queue} discarded wl_surface#711.enter(wl_output#2713) -[2618250.636] {Default Queue} discarded wl_surface#1223.enter(wl_output#2713) -[2618250.640] {Default Queue} discarded wl_surface#1927.enter(wl_output#2713) -[2618250.644] {Default Queue} discarded wl_surface#871.enter(wl_output#2713) -[2618250.648] {Default Queue} discarded wl_surface#1895.enter(wl_output#2713) -[2618250.652] {Default Queue} discarded wl_surface#263.enter(wl_output#2713) -[2618250.656] {Default Queue} discarded wl_surface#551.enter(wl_output#2713) -[2618250.660] {Default Queue} discarded wl_surface#1735.enter(wl_output#2713) -[2618250.664] {Default Queue} discarded wl_surface#1479.enter(wl_output#2713) -[2618250.668] {Default Queue} discarded wl_surface#1772.enter(wl_output#2713) -[2618250.672] {Default Queue} discarded wl_surface#2599.enter(wl_output#2713) -[2618250.676] {Default Queue} discarded wl_surface#2631.enter(wl_output#2713) -[2618250.680] {Default Queue} discarded wl_surface#1959.enter(wl_output#2713) -[2618250.684] {Default Queue} discarded wl_surface#647.enter(wl_output#2713) -[2618250.688] {Default Queue} discarded wl_surface#2055.enter(wl_output#2713) -[2618250.692] {Default Queue} discarded wl_surface#2508.enter(wl_output#2713) -[2618250.696] {Default Queue} discarded wl_surface#71.enter(wl_output#2713) -[2618250.700] {Default Queue} discarded wl_surface#2183.enter(wl_output#2713) -[2618250.704] {Default Queue} discarded wl_surface#2567.enter(wl_output#2713) -[2618250.708] {Default Queue} discarded wl_surface#839.enter(wl_output#2713) -[2618250.712] {Default Queue} discarded wl_surface#1607.enter(wl_output#2713) -[2618250.716] {Default Queue} discarded wl_surface#1095.enter(wl_output#2713) -[2618250.720] {Default Queue} discarded wl_surface#1383.enter(wl_output#2713) -[2618250.724] {Default Queue} discarded wl_surface#487.enter(wl_output#2713) -[2618250.727] {Default Queue} discarded wl_surface#2311.enter(wl_output#2713) -[2618250.732] {Default Queue} discarded wl_surface#519.enter(wl_output#2713) -[2618250.735] {Default Queue} discarded wl_surface#2087.enter(wl_output#2713) -[2618250.739] {Default Queue} discarded wl_surface#2471.enter(wl_output#2713) -[2618250.744] {Default Queue} discarded wl_surface#295.enter(wl_output#2713) -[2618250.747] {Default Queue} discarded wl_surface#167.enter(wl_output#2713) -[2618250.751] {Default Queue} discarded wl_surface#1255.enter(wl_output#2713) -[2618250.755] {Default Queue} discarded wl_surface#679.enter(wl_output#2713) -[2618250.759] {Default Queue} discarded wl_surface#2407.enter(wl_output#2713) -[2618250.763] {Default Queue} discarded wl_surface#2119.enter(wl_output#2713) -[2618250.767] {Default Queue} wl_registry#2726.global(1, "wl_compositor", 6) -[2618250.772] {Default Queue} -> wl_registry#2726.bind(1, "wl_compositor", 1, new id [unknown]#2732) -[2618250.780] {Default Queue} wl_registry#2726.global(2, "wl_subcompositor", 1) -[2618250.786] {Default Queue} -> wl_registry#2726.bind(2, "wl_subcompositor", 1, new id [unknown]#2733) -[2618250.791] {Default Queue} wl_registry#2726.global(3, "xdg_wm_base", 6) -[2618250.796] {Default Queue} -> wl_registry#2726.bind(3, "xdg_wm_base", 1, new id [unknown]#2734) -[2618250.801] {Default Queue} wl_registry#2726.global(6, "zwlr_layer_shell_v1", 5) -[2618250.806] {Default Queue} wl_registry#2726.global(7, "ext_session_lock_manager_v1", 1) -[2618250.810] {Default Queue} wl_registry#2726.global(8, "wl_shm", 2) -[2618250.815] {Default Queue} -> wl_registry#2726.bind(8, "wl_shm", 1, new id [unknown]#2735) -[2618250.819] {Default Queue} -> wl_registry#2726.bind(8, "wl_shm", 1, new id [unknown]#2736) -[2618250.823] {Default Queue} -> wl_registry#2726.bind(8, "wl_shm", 1, new id [unknown]#2737) -[2618250.827] {Default Queue} wl_registry#2726.global(9, "zxdg_output_manager_v1", 3) -[2618250.832] {Default Queue} wl_registry#2726.global(10, "wp_fractional_scale_manager_v1", 1) -[2618250.837] {Default Queue} wl_registry#2726.global(11, "zwp_tablet_manager_v2", 1) -[2618250.841] {Default Queue} wl_registry#2726.global(12, "zwp_pointer_gestures_v1", 3) -[2618250.845] {Default Queue} wl_registry#2726.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618250.850] {Default Queue} -> wl_registry#2726.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2738) -[2618250.854] {Default Queue} wl_registry#2726.global(14, "zwp_pointer_constraints_v1", 1) -[2618250.858] {Default Queue} -> wl_registry#2726.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2739) -[2618250.864] {Default Queue} wl_registry#2726.global(15, "ext_idle_notifier_v1", 2) -[2618250.868] {Default Queue} wl_registry#2726.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618250.877] {Default Queue} wl_registry#2726.global(17, "wl_data_device_manager", 3) -[2618250.881] {Default Queue} -> wl_registry#2726.bind(17, "wl_data_device_manager", 2, new id [unknown]#2740) -[2618250.886] {Default Queue} -> wl_data_device_manager#2740.create_data_source(new id wl_data_source#2741) -[2618250.890] {Default Queue} -> wl_data_source#2741.offer("text/plain") -[2618250.895] {Default Queue} -> wl_data_source#2741.offer("text/plain;charset=utf-8") -[2618250.899] {Default Queue} -> wl_data_source#2741.offer("TEXT") -[2618250.903] {Default Queue} -> wl_data_source#2741.offer("STRING") -[2618250.907] {Default Queue} -> wl_data_source#2741.offer("UTF8_STRING") -[2618250.911] {Default Queue} wl_registry#2726.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618250.916] {Default Queue} -> wl_registry#2726.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2742) -[2618250.924] {Default Queue} -> zwp_primary_selection_device_manager_v1#2742.create_source(new id zwp_primary_selection_source_v1#2743) -[2618250.932] {Default Queue} -> zwp_primary_selection_source_v1#2743.offer("text/plain") -[2618250.936] {Default Queue} -> zwp_primary_selection_source_v1#2743.offer("text/plain;charset=utf-8") -[2618250.940] {Default Queue} -> zwp_primary_selection_source_v1#2743.offer("TEXT") -[2618250.944] {Default Queue} -> zwp_primary_selection_source_v1#2743.offer("STRING") -[2618250.948] {Default Queue} -> zwp_primary_selection_source_v1#2743.offer("UTF8_STRING") -[2618250.952] {Default Queue} wl_registry#2726.global(19, "zwlr_data_control_manager_v1", 2) -[2618250.957] {Default Queue} wl_registry#2726.global(20, "ext_data_control_manager_v1", 1) -[2618250.961] {Default Queue} wl_registry#2726.global(21, "wp_presentation", 2) -[2618250.966] {Default Queue} wl_registry#2726.global(22, "wp_security_context_manager_v1", 1) -[2618250.970] {Default Queue} wl_registry#2726.global(23, "zwp_text_input_manager_v3", 1) -[2618250.975] {Default Queue} wl_registry#2726.global(24, "zwp_input_method_manager_v2", 1) -[2618250.979] {Default Queue} wl_registry#2726.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618250.987] {Default Queue} wl_registry#2726.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618250.992] {Default Queue} wl_registry#2726.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618250.997] {Default Queue} wl_registry#2726.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618251.001] {Default Queue} wl_registry#2726.global(29, "ext_workspace_manager_v1", 1) -[2618251.006] {Default Queue} wl_registry#2726.global(30, "zwlr_output_manager_v1", 4) -[2618251.010] {Default Queue} wl_registry#2726.global(31, "zwlr_screencopy_manager_v1", 3) -[2618251.014] {Default Queue} wl_registry#2726.global(32, "wp_viewporter", 1) -[2618251.018] {Default Queue} wl_registry#2726.global(33, "zxdg_exporter_v2", 1) -[2618251.023] {Default Queue} wl_registry#2726.global(34, "zxdg_importer_v2", 1) -[2618251.027] {Default Queue} wl_registry#2726.global(36, "xdg_activation_v1", 1) -[2618251.031] {Default Queue} wl_registry#2726.global(37, "mutter_x11_interop", 1) -[2618251.036] {Default Queue} wl_registry#2726.global(38, "wl_seat", 9) -[2618251.040] {Default Queue} -> wl_registry#2726.bind(38, "wl_seat", 1, new id [unknown]#2744) -[2618251.045] {Default Queue} wl_registry#2726.global(39, "wp_cursor_shape_manager_v1", 2) -[2618251.049] {Default Queue} wl_registry#2726.global(40, "wl_output", 4) -[2618251.054] {Default Queue} -> wl_registry#2726.bind(40, "wl_output", 1, new id [unknown]#2745) -[2618251.058] {Default Queue} wl_callback#2727.done(0) -[2618251.063] {Default Queue} discarded wl_surface#2695.enter(wl_output#18) -[2618251.067] {Default Queue} discarded wl_surface#2695.enter(wl_output#57) -[2618251.071] {Default Queue} discarded wl_surface#2695.enter(wl_output#89) -[2618251.075] {Default Queue} discarded wl_surface#2695.enter(wl_output#121) -[2618251.079] {Default Queue} discarded wl_surface#2695.enter(wl_output#153) -[2618251.083] {Default Queue} discarded wl_surface#2695.enter(wl_output#185) -[2618251.087] {Default Queue} discarded wl_surface#2695.enter(wl_output#217) -[2618251.091] {Default Queue} discarded wl_surface#2695.enter(wl_output#249) -[2618251.094] {Default Queue} discarded wl_surface#2695.enter(wl_output#281) -[2618251.099] {Default Queue} discarded wl_surface#2695.enter(wl_output#313) -[2618251.102] {Default Queue} discarded wl_surface#2695.enter(wl_output#345) -[2618251.107] {Default Queue} discarded wl_surface#2695.enter(wl_output#377) -[2618251.111] {Default Queue} discarded wl_surface#2695.enter(wl_output#409) -[2618251.114] {Default Queue} discarded wl_surface#2695.enter(wl_output#441) -[2618251.118] {Default Queue} discarded wl_surface#2695.enter(wl_output#473) -[2618251.123] {Default Queue} discarded wl_surface#2695.enter(wl_output#505) -[2618251.127] {Default Queue} discarded wl_surface#2695.enter(wl_output#537) -[2618251.130] {Default Queue} discarded wl_surface#2695.enter(wl_output#569) -[2618251.134] {Default Queue} discarded wl_surface#2695.enter(wl_output#601) -[2618251.138] {Default Queue} discarded wl_surface#2695.enter(wl_output#633) -[2618251.142] {Default Queue} discarded wl_surface#2695.enter(wl_output#665) -[2618251.146] {Default Queue} discarded wl_surface#2695.enter(wl_output#697) -[2618251.150] {Default Queue} discarded wl_surface#2695.enter(wl_output#729) -[2618251.154] {Default Queue} discarded wl_surface#2695.enter(wl_output#761) -[2618251.158] {Default Queue} discarded wl_surface#2695.enter(wl_output#793) -[2618251.162] {Default Queue} discarded wl_surface#2695.enter(wl_output#825) -[2618251.166] {Default Queue} discarded wl_surface#2695.enter(wl_output#857) -[2618251.170] {Default Queue} discarded wl_surface#2695.enter(wl_output#889) -[2618251.174] {Default Queue} discarded wl_surface#2695.enter(wl_output#921) -[2618251.178] {Default Queue} discarded wl_surface#2695.enter(wl_output#953) -[2618251.182] {Default Queue} discarded wl_surface#2695.enter(wl_output#985) -[2618251.186] {Default Queue} discarded wl_surface#2695.enter(wl_output#1017) -[2618251.190] {Default Queue} discarded wl_surface#2695.enter(wl_output#1049) -[2618251.194] {Default Queue} discarded wl_surface#2695.enter(wl_output#1081) -[2618251.198] {Default Queue} discarded wl_surface#2695.enter(wl_output#1113) -[2618251.205] {Default Queue} discarded wl_surface#2695.enter(wl_output#1145) -[2618251.210] {Default Queue} discarded wl_surface#2695.enter(wl_output#1177) -[2618251.215] {Default Queue} discarded wl_surface#2695.enter(wl_output#1209) -[2618251.218] {Default Queue} discarded wl_surface#2695.enter(wl_output#1241) -[2618251.222] {Default Queue} discarded wl_surface#2695.enter(wl_output#1273) -[2618251.226] {Default Queue} discarded wl_surface#2695.enter(wl_output#1305) -[2618251.230] {Default Queue} discarded wl_surface#2695.enter(wl_output#1337) -[2618251.234] {Default Queue} discarded wl_surface#2695.enter(wl_output#1369) -[2618251.238] {Default Queue} discarded wl_surface#2695.enter(wl_output#1401) -[2618251.242] {Default Queue} discarded wl_surface#2695.enter(wl_output#1433) -[2618251.246] {Default Queue} discarded wl_surface#2695.enter(wl_output#1465) -[2618251.250] {Default Queue} discarded wl_surface#2695.enter(wl_output#1497) -[2618251.254] {Default Queue} discarded wl_surface#2695.enter(wl_output#1529) -[2618251.258] {Default Queue} discarded wl_surface#2695.enter(wl_output#1561) -[2618251.262] {Default Queue} discarded wl_surface#2695.enter(wl_output#1593) -[2618251.265] {Default Queue} discarded wl_surface#2695.enter(wl_output#1625) -[2618251.269] {Default Queue} discarded wl_surface#2695.enter(wl_output#1657) -[2618251.273] {Default Queue} discarded wl_surface#2695.enter(wl_output#1689) -[2618251.277] {Default Queue} discarded wl_surface#2695.enter(wl_output#1721) -[2618251.281] {Default Queue} discarded wl_surface#2695.enter(wl_output#1753) -[2618251.285] {Default Queue} discarded wl_surface#2695.enter(wl_output#1785) -[2618251.289] {Default Queue} discarded wl_surface#2695.enter(wl_output#1817) -[2618251.293] {Default Queue} discarded wl_surface#2695.enter(wl_output#1849) -[2618251.297] {Default Queue} discarded wl_surface#2695.enter(wl_output#1881) -[2618251.301] {Default Queue} discarded wl_surface#2695.enter(wl_output#1913) -[2618251.304] {Default Queue} discarded wl_surface#2695.enter(wl_output#1945) -[2618251.308] {Default Queue} discarded wl_surface#2695.enter(wl_output#1977) -[2618251.312] {Default Queue} discarded wl_surface#2695.enter(wl_output#2009) -[2618251.316] {Default Queue} discarded wl_surface#2695.enter(wl_output#2041) -[2618251.320] {Default Queue} discarded wl_surface#2695.enter(wl_output#2073) -[2618251.324] {Default Queue} discarded wl_surface#2695.enter(wl_output#2105) -[2618251.328] {Default Queue} discarded wl_surface#2695.enter(wl_output#2137) -[2618251.332] {Default Queue} discarded wl_surface#2695.enter(wl_output#2169) -[2618251.336] {Default Queue} discarded wl_surface#2695.enter(wl_output#2201) -[2618251.340] {Default Queue} discarded wl_surface#2695.enter(wl_output#2233) -[2618251.343] {Default Queue} discarded wl_surface#2695.enter(wl_output#2265) -[2618251.347] {Default Queue} discarded wl_surface#2695.enter(wl_output#2297) -[2618251.351] {Default Queue} discarded wl_surface#2695.enter(wl_output#2329) -[2618251.355] {Default Queue} discarded wl_surface#2695.enter(wl_output#2361) -[2618251.359] {Default Queue} discarded wl_surface#2695.enter(wl_output#2393) -[2618251.363] {Default Queue} discarded wl_surface#2695.enter(wl_output#2425) -[2618251.367] {Default Queue} discarded wl_surface#2695.enter(wl_output#2457) -[2618251.371] {Default Queue} discarded wl_surface#2695.enter(wl_output#2489) -[2618251.375] {Default Queue} discarded wl_surface#2695.enter(wl_output#2521) -[2618251.379] {Default Queue} discarded wl_surface#2695.enter(wl_output#2553) -[2618251.383] {Default Queue} discarded wl_surface#2695.enter(wl_output#2585) -[2618251.387] {Default Queue} discarded wl_surface#2695.enter(wl_output#2617) -[2618251.391] {Default Queue} discarded wl_surface#2695.enter(wl_output#2649) -[2618251.395] {Default Queue} discarded wl_surface#2695.enter(wl_output#2681) -[2618251.399] {Default Queue} discarded wl_surface#2695.enter(wl_output#2713) -[2618251.403] {Default Queue} -> wl_compositor#2700.create_surface(new id wl_surface#2727) -[2618251.407] {Default Queue} -> wl_subcompositor#2733.get_subsurface(new id wl_subsurface#2746, wl_surface#2727, wl_surface#2695) -[2618251.420] {Default Queue} -> wl_subsurface#2746.set_desync() -[2618251.424] {Default Queue} -> wl_subsurface#2746.set_position(0, 0) -[2618251.429] {Default Queue} -> wl_subsurface#2746.place_above(wl_surface#2695) -[2618251.473] {Default Queue} -> wl_shm#2735.create_pool(new id wl_shm_pool#2747, fd 434, 16) -[2618251.481] {Default Queue} -> wl_shm#2735.create_pool(new id wl_shm_pool#2748, fd 435, 16) -[2618251.485] {Default Queue} -> wl_shm_pool#2747.create_buffer(new id wl_buffer#2749, 0, 2, 2, 8, 0) -[2618251.490] {Default Queue} -> wl_shm_pool#2748.create_buffer(new id wl_buffer#2750, 0, 2, 2, 8, 0) -[2618251.498] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) -[2618251.503] {Default Queue} -> wl_surface#2727.commit() -[2618251.509] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) -[2618251.514] {Default Queue} -> wl_surface#2727.commit() -[2618251.518] {Default Queue} -> wl_compositor#2732.create_region(new id wl_region#2751) -[2618251.522] {Default Queue} -> wl_compositor#2732.create_region(new id wl_region#2752) -[2618251.526] {Default Queue} -> wl_region#2751.subtract(0, 0, 2, 2) -[2618251.531] {Default Queue} -> wl_region#2751.add(0, 0, 0, 0) -[2618251.536] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2618251.540] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2618251.544] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618251.548] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) -[2618251.556] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) -[2618251.560] {Default Queue} -> wl_surface#2727.commit() -[2618251.594] {Default Queue} -> wl_shm#2737.create_pool(new id wl_shm_pool#2753, fd 438, 640) -[2618251.600] {Default Queue} -> wl_shm#2737.create_pool(new id wl_shm_pool#2754, fd 439, 640) -[2618251.605] {Default Queue} -> wl_shm_pool#2753.create_buffer(new id wl_buffer#2755, 0, 10, 16, 40, 0) -[2618251.610] {Default Queue} -> wl_shm_pool#2754.create_buffer(new id wl_buffer#2756, 0, 10, 16, 40, 0) -[2618251.617] {Default Queue} -> wl_compositor#2732.create_surface(new id wl_surface#2757) -[2618251.621] {Default Queue} -> wl_surface#2757.attach(wl_buffer#2755, 0, 0) -[2618251.626] {Default Queue} -> wl_surface#2757.commit() -[2618251.631] {Default Queue} -> wl_surface#2757.attach(wl_buffer#2755, 0, 0) -[2618251.635] {Default Queue} -> wl_surface#2757.commit() -[2618251.641] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) -[2618251.646] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618251.651] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618251.658] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2758) -[2618251.663] {Default Queue} -> wl_display#1.sync(new id wl_callback#2759) -[2618255.335] {Display Queue} wl_display#1.delete_id(2759) -[2618255.350] {Default Queue} wl_keyboard#2728.keymap(1, fd 434, 68213) -[2618255.357] {Default Queue} wl_keyboard#2728.enter(566, wl_surface#19, array[0]) -[2618255.364] {Default Queue} wl_keyboard#2728.modifiers(566, 0, 0, 16, 0) -[2618255.370] {Default Queue} discarded wl_shm#2735.format(875709016) -[2618255.376] {Default Queue} discarded wl_shm#2735.format(1) -[2618255.380] {Default Queue} discarded wl_shm#2735.format(0) -[2618255.384] {Default Queue} discarded wl_shm#2735.format(875708993) -[2618255.389] {Default Queue} discarded wl_shm#2736.format(875709016) -[2618255.392] {Default Queue} discarded wl_shm#2736.format(1) -[2618255.396] {Default Queue} discarded wl_shm#2736.format(0) -[2618255.400] {Default Queue} discarded wl_shm#2736.format(875708993) -[2618255.404] {Default Queue} discarded wl_shm#2737.format(875709016) -[2618255.408] {Default Queue} discarded wl_shm#2737.format(1) -[2618255.412] {Default Queue} discarded wl_shm#2737.format(0) -[2618255.416] {Default Queue} discarded wl_shm#2737.format(875708993) -[2618255.419] {Default Queue} wl_seat#2744.capabilities(7) -[2618255.424] {Default Queue} -> wl_seat#2744.get_keyboard(new id wl_keyboard#2760) -[2618255.433] {Default Queue} -> wl_seat#2744.get_pointer(new id wl_pointer#2761) -[2618255.440] {Default Queue} -> wl_data_device_manager#2740.get_data_device(new id wl_data_device#2762, wl_seat#2744) -[2618255.445] {Default Queue} -> zwp_primary_selection_device_manager_v1#2742.get_device(new id zwp_primary_selection_device_v1#2763, wl_seat#2744) -[2618255.453] {Default Queue} wl_output#2745.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618255.458] {Default Queue} wl_output#2745.mode(3, 1280, 800, 60000) -[2618255.463] {Default Queue} discarded wl_surface#3.enter(wl_output#2745) -[2618255.467] {Default Queue} discarded wl_surface#999.enter(wl_output#2745) -[2618255.471] {Default Queue} discarded wl_surface#1191.enter(wl_output#2745) -[2618255.475] {Default Queue} discarded wl_surface#1159.enter(wl_output#2745) -[2618255.479] {Default Queue} discarded wl_surface#1703.enter(wl_output#2745) -[2618255.483] {Default Queue} discarded wl_surface#2215.enter(wl_output#2745) -[2618255.487] {Default Queue} discarded wl_surface#423.enter(wl_output#2745) -[2618255.491] {Default Queue} discarded wl_surface#1447.enter(wl_output#2745) -[2618255.495] {Default Queue} discarded wl_surface#2023.enter(wl_output#2745) -[2618255.499] {Default Queue} discarded wl_surface#1639.enter(wl_output#2745) -[2618255.503] {Default Queue} discarded wl_surface#1319.enter(wl_output#2745) -[2618255.507] {Default Queue} discarded wl_surface#1127.enter(wl_output#2745) -[2618255.511] {Default Queue} discarded wl_surface#2151.enter(wl_output#2745) -[2618255.515] {Default Queue} discarded wl_surface#2375.enter(wl_output#2745) -[2618255.518] {Default Queue} discarded wl_surface#2695.enter(wl_output#2745) -[2618255.522] {Default Queue} discarded wl_surface#1063.enter(wl_output#2745) -[2618255.526] {Default Queue} discarded wl_surface#455.enter(wl_output#2745) -[2618255.530] {Default Queue} discarded wl_surface#1575.enter(wl_output#2745) -[2618255.534] {Default Queue} discarded wl_surface#1799.enter(wl_output#2745) -[2618255.538] {Default Queue} discarded wl_surface#1415.enter(wl_output#2745) -[2618255.542] {Default Queue} discarded wl_surface#2439.enter(wl_output#2745) -[2618255.546] {Default Queue} discarded wl_surface#2279.enter(wl_output#2745) -[2618255.550] {Default Queue} discarded wl_surface#1831.enter(wl_output#2745) -[2618255.554] {Default Queue} discarded wl_surface#903.enter(wl_output#2745) -[2618255.558] {Default Queue} discarded wl_surface#2663.enter(wl_output#2745) -[2618255.562] {Default Queue} discarded wl_surface#775.enter(wl_output#2745) -[2618255.566] {Default Queue} discarded wl_surface#1991.enter(wl_output#2745) -[2618255.570] {Default Queue} discarded wl_surface#1543.enter(wl_output#2745) -[2618255.574] {Default Queue} discarded wl_surface#135.enter(wl_output#2745) -[2618255.578] {Default Queue} discarded wl_surface#1287.enter(wl_output#2745) -[2618255.582] {Default Queue} discarded wl_surface#1031.enter(wl_output#2745) -[2618255.586] {Default Queue} discarded wl_surface#615.enter(wl_output#2745) -[2618255.589] {Default Queue} discarded wl_surface#231.enter(wl_output#2745) -[2618255.593] {Default Queue} discarded wl_surface#2343.enter(wl_output#2745) -[2618255.597] {Default Queue} discarded wl_surface#1863.enter(wl_output#2745) -[2618255.601] {Default Queue} discarded wl_surface#359.enter(wl_output#2745) -[2618255.605] {Default Queue} discarded wl_surface#583.enter(wl_output#2745) -[2618255.609] {Default Queue} discarded wl_surface#743.enter(wl_output#2745) -[2618255.613] {Default Queue} discarded wl_surface#2535.enter(wl_output#2745) -[2618255.616] {Default Queue} discarded wl_surface#967.enter(wl_output#2745) -[2618255.620] {Default Queue} discarded wl_surface#103.enter(wl_output#2745) -[2618255.624] {Default Queue} discarded wl_surface#327.enter(wl_output#2745) -[2618255.628] {Default Queue} discarded wl_surface#43.enter(wl_output#2745) -[2618255.632] {Default Queue} discarded wl_surface#2247.enter(wl_output#2745) -[2618255.636] {Default Queue} discarded wl_surface#807.enter(wl_output#2745) -[2618255.640] {Default Queue} discarded wl_surface#19.enter(wl_output#2745) -[2618255.644] {Default Queue} discarded wl_surface#1511.enter(wl_output#2745) -[2618255.651] {Default Queue} discarded wl_surface#199.enter(wl_output#2745) -[2618255.656] {Default Queue} discarded wl_surface#391.enter(wl_output#2745) -[2618255.661] {Default Queue} discarded wl_surface#935.enter(wl_output#2745) -[2618255.664] {Default Queue} discarded wl_surface#1671.enter(wl_output#2745) -[2618255.668] {Default Queue} discarded wl_surface#1351.enter(wl_output#2745) -[2618255.672] {Default Queue} discarded wl_surface#711.enter(wl_output#2745) -[2618255.676] {Default Queue} discarded wl_surface#1223.enter(wl_output#2745) -[2618255.680] {Default Queue} discarded wl_surface#1927.enter(wl_output#2745) -[2618255.684] {Default Queue} discarded wl_surface#871.enter(wl_output#2745) -[2618255.688] {Default Queue} discarded wl_surface#1895.enter(wl_output#2745) -[2618255.692] {Default Queue} discarded wl_surface#263.enter(wl_output#2745) -[2618255.696] {Default Queue} discarded wl_surface#551.enter(wl_output#2745) -[2618255.700] {Default Queue} discarded wl_surface#1735.enter(wl_output#2745) -[2618255.704] {Default Queue} discarded wl_surface#1479.enter(wl_output#2745) -[2618255.708] {Default Queue} discarded wl_surface#1772.enter(wl_output#2745) -[2618255.711] {Default Queue} discarded wl_surface#2599.enter(wl_output#2745) -[2618255.715] {Default Queue} discarded wl_surface#2631.enter(wl_output#2745) -[2618255.719] {Default Queue} discarded wl_surface#1959.enter(wl_output#2745) -[2618255.723] {Default Queue} discarded wl_surface#647.enter(wl_output#2745) -[2618255.727] {Default Queue} discarded wl_surface#2055.enter(wl_output#2745) -[2618255.731] {Default Queue} discarded wl_surface#2508.enter(wl_output#2745) -[2618255.735] {Default Queue} discarded wl_surface#71.enter(wl_output#2745) -[2618255.739] {Default Queue} discarded wl_surface#2183.enter(wl_output#2745) -[2618255.743] {Default Queue} discarded wl_surface#2567.enter(wl_output#2745) -[2618255.747] {Default Queue} discarded wl_surface#839.enter(wl_output#2745) -[2618255.751] {Default Queue} discarded wl_surface#1607.enter(wl_output#2745) -[2618255.755] {Default Queue} discarded wl_surface#1095.enter(wl_output#2745) -[2618255.759] {Default Queue} discarded wl_surface#1383.enter(wl_output#2745) -[2618255.763] {Default Queue} discarded wl_surface#487.enter(wl_output#2745) -[2618255.766] {Default Queue} discarded wl_surface#2311.enter(wl_output#2745) -[2618255.770] {Default Queue} discarded wl_surface#519.enter(wl_output#2745) -[2618255.774] {Default Queue} discarded wl_surface#2087.enter(wl_output#2745) -[2618255.778] {Default Queue} discarded wl_surface#2471.enter(wl_output#2745) -[2618255.782] {Default Queue} discarded wl_surface#295.enter(wl_output#2745) -[2618255.786] {Default Queue} discarded wl_surface#167.enter(wl_output#2745) -[2618255.790] {Default Queue} discarded wl_surface#1255.enter(wl_output#2745) -[2618255.794] {Default Queue} discarded wl_surface#679.enter(wl_output#2745) -[2618255.798] {Default Queue} discarded wl_surface#2407.enter(wl_output#2745) -[2618255.802] {Default Queue} discarded wl_surface#2119.enter(wl_output#2745) -[2618255.806] {Default Queue} wl_registry#2758.global(1, "wl_compositor", 6) -[2618255.811] {Default Queue} -> wl_registry#2758.bind(1, "wl_compositor", 1, new id [unknown]#2764) -[2618255.816] {Default Queue} wl_registry#2758.global(2, "wl_subcompositor", 1) -[2618255.821] {Default Queue} -> wl_registry#2758.bind(2, "wl_subcompositor", 1, new id [unknown]#2765) -[2618255.826] {Default Queue} wl_registry#2758.global(3, "xdg_wm_base", 6) -[2618255.830] {Default Queue} -> wl_registry#2758.bind(3, "xdg_wm_base", 1, new id [unknown]#2766) -[2618255.835] {Default Queue} wl_registry#2758.global(6, "zwlr_layer_shell_v1", 5) -[2618255.839] {Default Queue} wl_registry#2758.global(7, "ext_session_lock_manager_v1", 1) -[2618255.843] {Default Queue} wl_registry#2758.global(8, "wl_shm", 2) -[2618255.848] {Default Queue} -> wl_registry#2758.bind(8, "wl_shm", 1, new id [unknown]#2767) -[2618255.853] {Default Queue} -> wl_registry#2758.bind(8, "wl_shm", 1, new id [unknown]#2768) -[2618255.857] {Default Queue} -> wl_registry#2758.bind(8, "wl_shm", 1, new id [unknown]#2769) -[2618255.870] {Default Queue} wl_registry#2758.global(9, "zxdg_output_manager_v1", 3) -[2618255.876] {Default Queue} wl_registry#2758.global(10, "wp_fractional_scale_manager_v1", 1) -[2618255.881] {Default Queue} wl_registry#2758.global(11, "zwp_tablet_manager_v2", 1) -[2618255.885] {Default Queue} wl_registry#2758.global(12, "zwp_pointer_gestures_v1", 3) -[2618255.889] {Default Queue} wl_registry#2758.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618255.894] {Default Queue} -> wl_registry#2758.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2770) -[2618255.898] {Default Queue} wl_registry#2758.global(14, "zwp_pointer_constraints_v1", 1) -[2618255.903] {Default Queue} -> wl_registry#2758.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2771) -[2618255.907] {Default Queue} wl_registry#2758.global(15, "ext_idle_notifier_v1", 2) -[2618255.912] {Default Queue} wl_registry#2758.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618255.916] {Default Queue} wl_registry#2758.global(17, "wl_data_device_manager", 3) -[2618255.921] {Default Queue} -> wl_registry#2758.bind(17, "wl_data_device_manager", 2, new id [unknown]#2772) -[2618255.926] {Default Queue} -> wl_data_device_manager#2772.create_data_source(new id wl_data_source#2773) -[2618255.930] {Default Queue} -> wl_data_source#2773.offer("text/plain") -[2618255.935] {Default Queue} -> wl_data_source#2773.offer("text/plain;charset=utf-8") -[2618255.939] {Default Queue} -> wl_data_source#2773.offer("TEXT") -[2618255.943] {Default Queue} -> wl_data_source#2773.offer("STRING") -[2618255.948] {Default Queue} -> wl_data_source#2773.offer("UTF8_STRING") -[2618255.952] {Default Queue} wl_registry#2758.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618255.957] {Default Queue} -> wl_registry#2758.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2774) -[2618255.964] {Default Queue} -> zwp_primary_selection_device_manager_v1#2774.create_source(new id zwp_primary_selection_source_v1#2775) -[2618255.972] {Default Queue} -> zwp_primary_selection_source_v1#2775.offer("text/plain") -[2618255.976] {Default Queue} -> zwp_primary_selection_source_v1#2775.offer("text/plain;charset=utf-8") -[2618255.980] {Default Queue} -> zwp_primary_selection_source_v1#2775.offer("TEXT") -[2618255.984] {Default Queue} -> zwp_primary_selection_source_v1#2775.offer("STRING") -[2618255.988] {Default Queue} -> zwp_primary_selection_source_v1#2775.offer("UTF8_STRING") -[2618255.992] {Default Queue} wl_registry#2758.global(19, "zwlr_data_control_manager_v1", 2) -[2618255.997] {Default Queue} wl_registry#2758.global(20, "ext_data_control_manager_v1", 1) -[2618256.001] {Default Queue} wl_registry#2758.global(21, "wp_presentation", 2) -[2618256.006] {Default Queue} wl_registry#2758.global(22, "wp_security_context_manager_v1", 1) -[2618256.010] {Default Queue} wl_registry#2758.global(23, "zwp_text_input_manager_v3", 1) -[2618256.015] {Default Queue} wl_registry#2758.global(24, "zwp_input_method_manager_v2", 1) -[2618256.019] {Default Queue} wl_registry#2758.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618256.023] {Default Queue} wl_registry#2758.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618256.028] {Default Queue} wl_registry#2758.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618256.033] {Default Queue} wl_registry#2758.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618256.037] {Default Queue} wl_registry#2758.global(29, "ext_workspace_manager_v1", 1) -[2618256.041] {Default Queue} wl_registry#2758.global(30, "zwlr_output_manager_v1", 4) -[2618256.046] {Default Queue} wl_registry#2758.global(31, "zwlr_screencopy_manager_v1", 3) -[2618256.050] {Default Queue} wl_registry#2758.global(32, "wp_viewporter", 1) -[2618256.054] {Default Queue} wl_registry#2758.global(33, "zxdg_exporter_v2", 1) -[2618256.059] {Default Queue} wl_registry#2758.global(34, "zxdg_importer_v2", 1) -[2618256.063] {Default Queue} wl_registry#2758.global(36, "xdg_activation_v1", 1) -[2618256.067] {Default Queue} wl_registry#2758.global(37, "mutter_x11_interop", 1) -[2618256.075] {Default Queue} wl_registry#2758.global(38, "wl_seat", 9) -[2618256.081] {Default Queue} -> wl_registry#2758.bind(38, "wl_seat", 1, new id [unknown]#2776) -[2618256.085] {Default Queue} wl_registry#2758.global(39, "wp_cursor_shape_manager_v1", 2) -[2618256.089] {Default Queue} wl_registry#2758.global(40, "wl_output", 4) -[2618256.094] {Default Queue} -> wl_registry#2758.bind(40, "wl_output", 1, new id [unknown]#2777) -[2618256.098] {Default Queue} wl_callback#2759.done(0) -[2618256.103] {Default Queue} discarded wl_surface#2727.enter(wl_output#18) -[2618256.107] {Default Queue} discarded wl_surface#2727.enter(wl_output#57) -[2618256.111] {Default Queue} discarded wl_surface#2727.enter(wl_output#89) -[2618256.115] {Default Queue} discarded wl_surface#2727.enter(wl_output#121) -[2618256.118] {Default Queue} discarded wl_surface#2727.enter(wl_output#153) -[2618256.122] {Default Queue} discarded wl_surface#2727.enter(wl_output#185) -[2618256.126] {Default Queue} discarded wl_surface#2727.enter(wl_output#217) -[2618256.130] {Default Queue} discarded wl_surface#2727.enter(wl_output#249) -[2618256.134] {Default Queue} discarded wl_surface#2727.enter(wl_output#281) -[2618256.138] {Default Queue} discarded wl_surface#2727.enter(wl_output#313) -[2618256.142] {Default Queue} discarded wl_surface#2727.enter(wl_output#345) -[2618256.146] {Default Queue} discarded wl_surface#2727.enter(wl_output#377) -[2618256.150] {Default Queue} discarded wl_surface#2727.enter(wl_output#409) -[2618256.153] {Default Queue} discarded wl_surface#2727.enter(wl_output#441) -[2618256.157] {Default Queue} discarded wl_surface#2727.enter(wl_output#473) -[2618256.162] {Default Queue} discarded wl_surface#2727.enter(wl_output#505) -[2618256.165] {Default Queue} discarded wl_surface#2727.enter(wl_output#537) -[2618256.169] {Default Queue} discarded wl_surface#2727.enter(wl_output#569) -[2618256.173] {Default Queue} discarded wl_surface#2727.enter(wl_output#601) -[2618256.177] {Default Queue} discarded wl_surface#2727.enter(wl_output#633) -[2618256.181] {Default Queue} discarded wl_surface#2727.enter(wl_output#665) -[2618256.185] {Default Queue} discarded wl_surface#2727.enter(wl_output#697) -[2618256.189] {Default Queue} discarded wl_surface#2727.enter(wl_output#729) -[2618256.193] {Default Queue} discarded wl_surface#2727.enter(wl_output#761) -[2618256.197] {Default Queue} discarded wl_surface#2727.enter(wl_output#793) -[2618256.201] {Default Queue} discarded wl_surface#2727.enter(wl_output#825) -[2618256.204] {Default Queue} discarded wl_surface#2727.enter(wl_output#857) -[2618256.208] {Default Queue} discarded wl_surface#2727.enter(wl_output#889) -[2618256.212] {Default Queue} discarded wl_surface#2727.enter(wl_output#921) -[2618256.216] {Default Queue} discarded wl_surface#2727.enter(wl_output#953) -[2618256.220] {Default Queue} discarded wl_surface#2727.enter(wl_output#985) -[2618256.224] {Default Queue} discarded wl_surface#2727.enter(wl_output#1017) -[2618256.228] {Default Queue} discarded wl_surface#2727.enter(wl_output#1049) -[2618256.232] {Default Queue} discarded wl_surface#2727.enter(wl_output#1081) -[2618256.236] {Default Queue} discarded wl_surface#2727.enter(wl_output#1113) -[2618256.239] {Default Queue} discarded wl_surface#2727.enter(wl_output#1145) -[2618256.243] {Default Queue} discarded wl_surface#2727.enter(wl_output#1177) -[2618256.247] {Default Queue} discarded wl_surface#2727.enter(wl_output#1209) -[2618256.252] {Default Queue} discarded wl_surface#2727.enter(wl_output#1241) -[2618256.256] {Default Queue} discarded wl_surface#2727.enter(wl_output#1273) -[2618256.259] {Default Queue} discarded wl_surface#2727.enter(wl_output#1305) -[2618256.263] {Default Queue} discarded wl_surface#2727.enter(wl_output#1337) -[2618256.267] {Default Queue} discarded wl_surface#2727.enter(wl_output#1369) -[2618256.271] {Default Queue} discarded wl_surface#2727.enter(wl_output#1401) -[2618256.275] {Default Queue} discarded wl_surface#2727.enter(wl_output#1433) -[2618256.279] {Default Queue} discarded wl_surface#2727.enter(wl_output#1465) -[2618256.283] {Default Queue} discarded wl_surface#2727.enter(wl_output#1497) -[2618256.290] {Default Queue} discarded wl_surface#2727.enter(wl_output#1529) -[2618256.295] {Default Queue} discarded wl_surface#2727.enter(wl_output#1561) -[2618256.299] {Default Queue} discarded wl_surface#2727.enter(wl_output#1593) -[2618256.304] {Default Queue} discarded wl_surface#2727.enter(wl_output#1625) -[2618256.307] {Default Queue} discarded wl_surface#2727.enter(wl_output#1657) -[2618256.311] {Default Queue} discarded wl_surface#2727.enter(wl_output#1689) -[2618256.315] {Default Queue} discarded wl_surface#2727.enter(wl_output#1721) -[2618256.319] {Default Queue} discarded wl_surface#2727.enter(wl_output#1753) -[2618256.323] {Default Queue} discarded wl_surface#2727.enter(wl_output#1785) -[2618256.327] {Default Queue} discarded wl_surface#2727.enter(wl_output#1817) -[2618256.331] {Default Queue} discarded wl_surface#2727.enter(wl_output#1849) -[2618256.335] {Default Queue} discarded wl_surface#2727.enter(wl_output#1881) -[2618256.339] {Default Queue} discarded wl_surface#2727.enter(wl_output#1913) -[2618256.343] {Default Queue} discarded wl_surface#2727.enter(wl_output#1945) -[2618256.347] {Default Queue} discarded wl_surface#2727.enter(wl_output#1977) -[2618256.351] {Default Queue} discarded wl_surface#2727.enter(wl_output#2009) -[2618256.354] {Default Queue} discarded wl_surface#2727.enter(wl_output#2041) -[2618256.358] {Default Queue} discarded wl_surface#2727.enter(wl_output#2073) -[2618256.362] {Default Queue} discarded wl_surface#2727.enter(wl_output#2105) -[2618256.366] {Default Queue} discarded wl_surface#2727.enter(wl_output#2137) -[2618256.370] {Default Queue} discarded wl_surface#2727.enter(wl_output#2169) -[2618256.374] {Default Queue} discarded wl_surface#2727.enter(wl_output#2201) -[2618256.378] {Default Queue} discarded wl_surface#2727.enter(wl_output#2233) -[2618256.382] {Default Queue} discarded wl_surface#2727.enter(wl_output#2265) -[2618256.386] {Default Queue} discarded wl_surface#2727.enter(wl_output#2297) -[2618256.390] {Default Queue} discarded wl_surface#2727.enter(wl_output#2329) -[2618256.393] {Default Queue} discarded wl_surface#2727.enter(wl_output#2361) -[2618256.397] {Default Queue} discarded wl_surface#2727.enter(wl_output#2393) -[2618256.401] {Default Queue} discarded wl_surface#2727.enter(wl_output#2425) -[2618256.405] {Default Queue} discarded wl_surface#2727.enter(wl_output#2457) -[2618256.409] {Default Queue} discarded wl_surface#2727.enter(wl_output#2489) -[2618256.413] {Default Queue} discarded wl_surface#2727.enter(wl_output#2521) -[2618256.417] {Default Queue} discarded wl_surface#2727.enter(wl_output#2553) -[2618256.421] {Default Queue} discarded wl_surface#2727.enter(wl_output#2585) -[2618256.425] {Default Queue} discarded wl_surface#2727.enter(wl_output#2617) -[2618256.429] {Default Queue} discarded wl_surface#2727.enter(wl_output#2649) -[2618256.432] {Default Queue} discarded wl_surface#2727.enter(wl_output#2681) -[2618256.436] {Default Queue} discarded wl_surface#2727.enter(wl_output#2713) -[2618256.440] {Default Queue} discarded wl_surface#2727.enter(wl_output#2745) -[2618256.444] {Default Queue} -> wl_compositor#2700.create_surface(new id wl_surface#2759) -[2618256.449] {Default Queue} -> wl_subcompositor#2765.get_subsurface(new id wl_subsurface#2778, wl_surface#2759, wl_surface#2695) -[2618256.458] {Default Queue} -> wl_subsurface#2778.set_desync() -[2618256.462] {Default Queue} -> wl_subsurface#2778.set_position(0, 0) -[2618256.466] {Default Queue} -> wl_subsurface#2778.place_above(wl_surface#2695) -[2618256.511] {Default Queue} -> wl_shm#2767.create_pool(new id wl_shm_pool#2779, fd 439, 16) -[2618256.518] {Default Queue} -> wl_shm#2767.create_pool(new id wl_shm_pool#2780, fd 440, 16) -[2618256.523] {Default Queue} -> wl_shm_pool#2779.create_buffer(new id wl_buffer#2781, 0, 2, 2, 8, 0) -[2618256.527] {Default Queue} -> wl_shm_pool#2780.create_buffer(new id wl_buffer#2782, 0, 2, 2, 8, 0) -[2618256.536] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) -[2618256.540] {Default Queue} -> wl_surface#2759.commit() -[2618256.546] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) -[2618256.554] {Default Queue} -> wl_surface#2759.commit() -[2618256.560] {Default Queue} -> wl_compositor#2764.create_region(new id wl_region#2783) -[2618256.565] {Default Queue} -> wl_compositor#2764.create_region(new id wl_region#2784) -[2618256.569] {Default Queue} -> wl_region#2783.subtract(0, 0, 2, 2) -[2618256.573] {Default Queue} -> wl_region#2783.add(0, 0, 0, 0) -[2618256.578] {Default Queue} -> wl_surface#2759.set_opaque_region(wl_region#2784) -[2618256.582] {Default Queue} -> wl_surface#2759.set_input_region(wl_region#2783) -[2618256.586] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) -[2618256.591] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) -[2618256.598] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) -[2618256.603] {Default Queue} -> wl_surface#2759.commit() -[2618256.637] {Default Queue} -> wl_shm#2769.create_pool(new id wl_shm_pool#2785, fd 443, 640) -[2618256.644] {Default Queue} -> wl_shm#2769.create_pool(new id wl_shm_pool#2786, fd 444, 640) -[2618256.648] {Default Queue} -> wl_shm_pool#2785.create_buffer(new id wl_buffer#2787, 0, 10, 16, 40, 0) -[2618256.653] {Default Queue} -> wl_shm_pool#2786.create_buffer(new id wl_buffer#2788, 0, 10, 16, 40, 0) -[2618256.660] {Default Queue} -> wl_compositor#2764.create_surface(new id wl_surface#2789) -[2618256.665] {Default Queue} -> wl_surface#2789.attach(wl_buffer#2787, 0, 0) -[2618256.669] {Default Queue} -> wl_surface#2789.commit() -[2618256.675] {Default Queue} -> wl_surface#2789.attach(wl_buffer#2787, 0, 0) -[2618256.679] {Default Queue} -> wl_surface#2789.commit() -[2618256.684] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) -[2618256.691] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2790) -[2618256.696] {Default Queue} -> wl_display#1.sync(new id wl_callback#2791) -[2618260.376] {Display Queue} wl_display#1.delete_id(2791) -[2618260.392] {Default Queue} wl_keyboard#2760.keymap(1, fd 439, 68213) -[2618260.400] {Default Queue} wl_keyboard#2760.enter(566, wl_surface#19, array[0]) -[2618260.407] {Default Queue} wl_keyboard#2760.modifiers(566, 0, 0, 16, 0) -[2618260.413] {Default Queue} discarded wl_shm#2767.format(875709016) -[2618260.419] {Default Queue} discarded wl_shm#2767.format(1) -[2618260.424] {Default Queue} discarded wl_shm#2767.format(0) -[2618260.429] {Default Queue} discarded wl_shm#2767.format(875708993) -[2618260.434] {Default Queue} discarded wl_shm#2768.format(875709016) -[2618260.439] {Default Queue} discarded wl_shm#2768.format(1) -[2618260.444] {Default Queue} discarded wl_shm#2768.format(0) -[2618260.449] {Default Queue} discarded wl_shm#2768.format(875708993) -[2618260.453] {Default Queue} discarded wl_shm#2769.format(875709016) -[2618260.458] {Default Queue} discarded wl_shm#2769.format(1) -[2618260.463] {Default Queue} discarded wl_shm#2769.format(0) -[2618260.468] {Default Queue} discarded wl_shm#2769.format(875708993) -[2618260.473] {Default Queue} wl_seat#2776.capabilities(7) -[2618260.479] {Default Queue} -> wl_seat#2776.get_keyboard(new id wl_keyboard#2792) -[2618260.485] {Default Queue} -> wl_seat#2776.get_pointer(new id wl_pointer#2793) -[2618260.490] {Default Queue} -> wl_data_device_manager#2772.get_data_device(new id wl_data_device#2794, wl_seat#2776) -[2618260.496] {Default Queue} -> zwp_primary_selection_device_manager_v1#2774.get_device(new id zwp_primary_selection_device_v1#2795, wl_seat#2776) -[2618260.506] {Default Queue} wl_output#2777.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618260.513] {Default Queue} wl_output#2777.mode(3, 1280, 800, 60000) -[2618260.519] {Default Queue} discarded wl_surface#2727.enter(wl_output#2777) -[2618260.524] {Default Queue} discarded wl_surface#3.enter(wl_output#2777) -[2618260.529] {Default Queue} discarded wl_surface#999.enter(wl_output#2777) -[2618260.534] {Default Queue} discarded wl_surface#1191.enter(wl_output#2777) -[2618260.539] {Default Queue} discarded wl_surface#1159.enter(wl_output#2777) -[2618260.544] {Default Queue} discarded wl_surface#1703.enter(wl_output#2777) -[2618260.557] {Default Queue} discarded wl_surface#2215.enter(wl_output#2777) -[2618260.566] {Default Queue} discarded wl_surface#423.enter(wl_output#2777) -[2618260.572] {Default Queue} discarded wl_surface#1447.enter(wl_output#2777) -[2618260.577] {Default Queue} discarded wl_surface#2023.enter(wl_output#2777) -[2618260.582] {Default Queue} discarded wl_surface#1639.enter(wl_output#2777) -[2618260.586] {Default Queue} discarded wl_surface#1319.enter(wl_output#2777) -[2618260.591] {Default Queue} discarded wl_surface#1127.enter(wl_output#2777) -[2618260.596] {Default Queue} discarded wl_surface#2151.enter(wl_output#2777) -[2618260.601] {Default Queue} discarded wl_surface#2375.enter(wl_output#2777) -[2618260.606] {Default Queue} discarded wl_surface#2695.enter(wl_output#2777) -[2618260.610] {Default Queue} discarded wl_surface#1063.enter(wl_output#2777) -[2618260.615] {Default Queue} discarded wl_surface#455.enter(wl_output#2777) -[2618260.620] {Default Queue} discarded wl_surface#1575.enter(wl_output#2777) -[2618260.625] {Default Queue} discarded wl_surface#1799.enter(wl_output#2777) -[2618260.630] {Default Queue} discarded wl_surface#1415.enter(wl_output#2777) -[2618260.635] {Default Queue} discarded wl_surface#2439.enter(wl_output#2777) -[2618260.640] {Default Queue} discarded wl_surface#2279.enter(wl_output#2777) -[2618260.645] {Default Queue} discarded wl_surface#1831.enter(wl_output#2777) -[2618260.649] {Default Queue} discarded wl_surface#903.enter(wl_output#2777) -[2618260.654] {Default Queue} discarded wl_surface#2663.enter(wl_output#2777) -[2618260.659] {Default Queue} discarded wl_surface#775.enter(wl_output#2777) -[2618260.664] {Default Queue} discarded wl_surface#1991.enter(wl_output#2777) -[2618260.669] {Default Queue} discarded wl_surface#1543.enter(wl_output#2777) -[2618260.674] {Default Queue} discarded wl_surface#135.enter(wl_output#2777) -[2618260.679] {Default Queue} discarded wl_surface#1287.enter(wl_output#2777) -[2618260.684] {Default Queue} discarded wl_surface#1031.enter(wl_output#2777) -[2618260.688] {Default Queue} discarded wl_surface#615.enter(wl_output#2777) -[2618260.694] {Default Queue} discarded wl_surface#231.enter(wl_output#2777) -[2618260.698] {Default Queue} discarded wl_surface#2343.enter(wl_output#2777) -[2618260.703] {Default Queue} discarded wl_surface#1863.enter(wl_output#2777) -[2618260.708] {Default Queue} discarded wl_surface#359.enter(wl_output#2777) -[2618260.713] {Default Queue} discarded wl_surface#583.enter(wl_output#2777) -[2618260.718] {Default Queue} discarded wl_surface#743.enter(wl_output#2777) -[2618260.723] {Default Queue} discarded wl_surface#2535.enter(wl_output#2777) -[2618260.727] {Default Queue} discarded wl_surface#967.enter(wl_output#2777) -[2618260.733] {Default Queue} discarded wl_surface#103.enter(wl_output#2777) -[2618260.738] {Default Queue} discarded wl_surface#327.enter(wl_output#2777) -[2618260.742] {Default Queue} discarded wl_surface#43.enter(wl_output#2777) -[2618260.747] {Default Queue} discarded wl_surface#2247.enter(wl_output#2777) -[2618260.752] {Default Queue} discarded wl_surface#807.enter(wl_output#2777) -[2618260.757] {Default Queue} discarded wl_surface#19.enter(wl_output#2777) -[2618260.762] {Default Queue} discarded wl_surface#1511.enter(wl_output#2777) -[2618260.767] {Default Queue} discarded wl_surface#199.enter(wl_output#2777) -[2618260.772] {Default Queue} discarded wl_surface#391.enter(wl_output#2777) -[2618260.777] {Default Queue} discarded wl_surface#935.enter(wl_output#2777) -[2618260.782] {Default Queue} discarded wl_surface#1671.enter(wl_output#2777) -[2618260.786] {Default Queue} discarded wl_surface#1351.enter(wl_output#2777) -[2618260.791] {Default Queue} discarded wl_surface#711.enter(wl_output#2777) -[2618260.797] {Default Queue} discarded wl_surface#1223.enter(wl_output#2777) -[2618260.802] {Default Queue} discarded wl_surface#1927.enter(wl_output#2777) -[2618260.806] {Default Queue} discarded wl_surface#871.enter(wl_output#2777) -[2618260.811] {Default Queue} discarded wl_surface#1895.enter(wl_output#2777) -[2618260.816] {Default Queue} discarded wl_surface#263.enter(wl_output#2777) -[2618260.825] {Default Queue} discarded wl_surface#551.enter(wl_output#2777) -[2618260.832] {Default Queue} discarded wl_surface#1735.enter(wl_output#2777) -[2618260.837] {Default Queue} discarded wl_surface#1479.enter(wl_output#2777) -[2618260.842] {Default Queue} discarded wl_surface#1772.enter(wl_output#2777) -[2618260.847] {Default Queue} discarded wl_surface#2599.enter(wl_output#2777) -[2618260.852] {Default Queue} discarded wl_surface#2631.enter(wl_output#2777) -[2618260.857] {Default Queue} discarded wl_surface#1959.enter(wl_output#2777) -[2618260.868] {Default Queue} discarded wl_surface#647.enter(wl_output#2777) -[2618260.873] {Default Queue} discarded wl_surface#2055.enter(wl_output#2777) -[2618260.878] {Default Queue} discarded wl_surface#2508.enter(wl_output#2777) -[2618260.883] {Default Queue} discarded wl_surface#71.enter(wl_output#2777) -[2618260.887] {Default Queue} discarded wl_surface#2183.enter(wl_output#2777) -[2618260.892] {Default Queue} discarded wl_surface#2567.enter(wl_output#2777) -[2618260.897] {Default Queue} discarded wl_surface#839.enter(wl_output#2777) -[2618260.902] {Default Queue} discarded wl_surface#1607.enter(wl_output#2777) -[2618260.907] {Default Queue} discarded wl_surface#1095.enter(wl_output#2777) -[2618260.912] {Default Queue} discarded wl_surface#1383.enter(wl_output#2777) -[2618260.916] {Default Queue} discarded wl_surface#487.enter(wl_output#2777) -[2618260.921] {Default Queue} discarded wl_surface#2311.enter(wl_output#2777) -[2618260.926] {Default Queue} discarded wl_surface#519.enter(wl_output#2777) -[2618260.931] {Default Queue} discarded wl_surface#2087.enter(wl_output#2777) -[2618260.936] {Default Queue} discarded wl_surface#2471.enter(wl_output#2777) -[2618260.941] {Default Queue} discarded wl_surface#295.enter(wl_output#2777) -[2618260.945] {Default Queue} discarded wl_surface#167.enter(wl_output#2777) -[2618260.950] {Default Queue} discarded wl_surface#1255.enter(wl_output#2777) -[2618260.955] {Default Queue} discarded wl_surface#679.enter(wl_output#2777) -[2618260.960] {Default Queue} discarded wl_surface#2407.enter(wl_output#2777) -[2618260.965] {Default Queue} discarded wl_surface#2119.enter(wl_output#2777) -[2618260.970] {Default Queue} wl_registry#2790.global(1, "wl_compositor", 6) -[2618260.976] {Default Queue} -> wl_registry#2790.bind(1, "wl_compositor", 1, new id [unknown]#2796) -[2618260.982] {Default Queue} wl_registry#2790.global(2, "wl_subcompositor", 1) -[2618260.988] {Default Queue} -> wl_registry#2790.bind(2, "wl_subcompositor", 1, new id [unknown]#2797) -[2618260.994] {Default Queue} wl_registry#2790.global(3, "xdg_wm_base", 6) -[2618261.000] {Default Queue} -> wl_registry#2790.bind(3, "xdg_wm_base", 1, new id [unknown]#2798) -[2618261.005] {Default Queue} wl_registry#2790.global(6, "zwlr_layer_shell_v1", 5) -[2618261.011] {Default Queue} wl_registry#2790.global(7, "ext_session_lock_manager_v1", 1) -[2618261.016] {Default Queue} wl_registry#2790.global(8, "wl_shm", 2) -[2618261.022] {Default Queue} -> wl_registry#2790.bind(8, "wl_shm", 1, new id [unknown]#2799) -[2618261.028] {Default Queue} -> wl_registry#2790.bind(8, "wl_shm", 1, new id [unknown]#2800) -[2618261.033] {Default Queue} -> wl_registry#2790.bind(8, "wl_shm", 1, new id [unknown]#2801) -[2618261.039] {Default Queue} wl_registry#2790.global(9, "zxdg_output_manager_v1", 3) -[2618261.044] {Default Queue} wl_registry#2790.global(10, "wp_fractional_scale_manager_v1", 1) -[2618261.050] {Default Queue} wl_registry#2790.global(11, "zwp_tablet_manager_v2", 1) -[2618261.055] {Default Queue} wl_registry#2790.global(12, "zwp_pointer_gestures_v1", 3) -[2618261.061] {Default Queue} wl_registry#2790.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618261.066] {Default Queue} -> wl_registry#2790.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2802) -[2618261.072] {Default Queue} wl_registry#2790.global(14, "zwp_pointer_constraints_v1", 1) -[2618261.078] {Default Queue} -> wl_registry#2790.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2803) -[2618261.084] {Default Queue} wl_registry#2790.global(15, "ext_idle_notifier_v1", 2) -[2618261.093] {Default Queue} wl_registry#2790.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618261.100] {Default Queue} wl_registry#2790.global(17, "wl_data_device_manager", 3) -[2618261.106] {Default Queue} -> wl_registry#2790.bind(17, "wl_data_device_manager", 2, new id [unknown]#2804) -[2618261.112] {Default Queue} -> wl_data_device_manager#2804.create_data_source(new id wl_data_source#2805) -[2618261.117] {Default Queue} -> wl_data_source#2805.offer("text/plain") -[2618261.123] {Default Queue} -> wl_data_source#2805.offer("text/plain;charset=utf-8") -[2618261.128] {Default Queue} -> wl_data_source#2805.offer("TEXT") -[2618261.133] {Default Queue} -> wl_data_source#2805.offer("STRING") -[2618261.138] {Default Queue} -> wl_data_source#2805.offer("UTF8_STRING") -[2618261.143] {Default Queue} wl_registry#2790.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618261.150] {Default Queue} -> wl_registry#2790.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2806) -[2618261.159] {Default Queue} -> zwp_primary_selection_device_manager_v1#2806.create_source(new id zwp_primary_selection_source_v1#2807) -[2618261.169] {Default Queue} -> zwp_primary_selection_source_v1#2807.offer("text/plain") -[2618261.174] {Default Queue} -> zwp_primary_selection_source_v1#2807.offer("text/plain;charset=utf-8") -[2618261.179] {Default Queue} -> zwp_primary_selection_source_v1#2807.offer("TEXT") -[2618261.184] {Default Queue} -> zwp_primary_selection_source_v1#2807.offer("STRING") -[2618261.189] {Default Queue} -> zwp_primary_selection_source_v1#2807.offer("UTF8_STRING") -[2618261.195] {Default Queue} wl_registry#2790.global(19, "zwlr_data_control_manager_v1", 2) -[2618261.200] {Default Queue} wl_registry#2790.global(20, "ext_data_control_manager_v1", 1) -[2618261.206] {Default Queue} wl_registry#2790.global(21, "wp_presentation", 2) -[2618261.211] {Default Queue} wl_registry#2790.global(22, "wp_security_context_manager_v1", 1) -[2618261.216] {Default Queue} wl_registry#2790.global(23, "zwp_text_input_manager_v3", 1) -[2618261.221] {Default Queue} wl_registry#2790.global(24, "zwp_input_method_manager_v2", 1) -[2618261.225] {Default Queue} wl_registry#2790.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618261.229] {Default Queue} wl_registry#2790.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618261.234] {Default Queue} wl_registry#2790.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618261.238] {Default Queue} wl_registry#2790.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618261.242] {Default Queue} wl_registry#2790.global(29, "ext_workspace_manager_v1", 1) -[2618261.247] {Default Queue} wl_registry#2790.global(30, "zwlr_output_manager_v1", 4) -[2618261.251] {Default Queue} wl_registry#2790.global(31, "zwlr_screencopy_manager_v1", 3) -[2618261.255] {Default Queue} wl_registry#2790.global(32, "wp_viewporter", 1) -[2618261.259] {Default Queue} wl_registry#2790.global(33, "zxdg_exporter_v2", 1) -[2618261.264] {Default Queue} wl_registry#2790.global(34, "zxdg_importer_v2", 1) -[2618261.268] {Default Queue} wl_registry#2790.global(36, "xdg_activation_v1", 1) -[2618261.272] {Default Queue} wl_registry#2790.global(37, "mutter_x11_interop", 1) -[2618261.276] {Default Queue} wl_registry#2790.global(38, "wl_seat", 9) -[2618261.281] {Default Queue} -> wl_registry#2790.bind(38, "wl_seat", 1, new id [unknown]#2808) -[2618261.285] {Default Queue} wl_registry#2790.global(39, "wp_cursor_shape_manager_v1", 2) -[2618261.290] {Default Queue} wl_registry#2790.global(40, "wl_output", 4) -[2618261.294] {Default Queue} -> wl_registry#2790.bind(40, "wl_output", 1, new id [unknown]#2809) -[2618261.299] {Default Queue} wl_callback#2791.done(0) -[2618261.303] {Default Queue} discarded wl_surface#2759.enter(wl_output#18) -[2618261.307] {Default Queue} discarded wl_surface#2759.enter(wl_output#57) -[2618261.311] {Default Queue} discarded wl_surface#2759.enter(wl_output#89) -[2618261.315] {Default Queue} discarded wl_surface#2759.enter(wl_output#121) -[2618261.319] {Default Queue} discarded wl_surface#2759.enter(wl_output#153) -[2618261.326] {Default Queue} discarded wl_surface#2759.enter(wl_output#185) -[2618261.331] {Default Queue} discarded wl_surface#2759.enter(wl_output#217) -[2618261.335] {Default Queue} discarded wl_surface#2759.enter(wl_output#249) -[2618261.339] {Default Queue} discarded wl_surface#2759.enter(wl_output#281) -[2618261.343] {Default Queue} discarded wl_surface#2759.enter(wl_output#313) -[2618261.347] {Default Queue} discarded wl_surface#2759.enter(wl_output#345) -[2618261.351] {Default Queue} discarded wl_surface#2759.enter(wl_output#377) -[2618261.355] {Default Queue} discarded wl_surface#2759.enter(wl_output#409) -[2618261.359] {Default Queue} discarded wl_surface#2759.enter(wl_output#441) -[2618261.363] {Default Queue} discarded wl_surface#2759.enter(wl_output#473) -[2618261.367] {Default Queue} discarded wl_surface#2759.enter(wl_output#505) -[2618261.371] {Default Queue} discarded wl_surface#2759.enter(wl_output#537) -[2618261.375] {Default Queue} discarded wl_surface#2759.enter(wl_output#569) -[2618261.379] {Default Queue} discarded wl_surface#2759.enter(wl_output#601) -[2618261.382] {Default Queue} discarded wl_surface#2759.enter(wl_output#633) -[2618261.386] {Default Queue} discarded wl_surface#2759.enter(wl_output#665) -[2618261.390] {Default Queue} discarded wl_surface#2759.enter(wl_output#697) -[2618261.394] {Default Queue} discarded wl_surface#2759.enter(wl_output#729) -[2618261.398] {Default Queue} discarded wl_surface#2759.enter(wl_output#761) -[2618261.402] {Default Queue} discarded wl_surface#2759.enter(wl_output#793) -[2618261.406] {Default Queue} discarded wl_surface#2759.enter(wl_output#825) -[2618261.410] {Default Queue} discarded wl_surface#2759.enter(wl_output#857) -[2618261.414] {Default Queue} discarded wl_surface#2759.enter(wl_output#889) -[2618261.418] {Default Queue} discarded wl_surface#2759.enter(wl_output#921) -[2618261.422] {Default Queue} discarded wl_surface#2759.enter(wl_output#953) -[2618261.426] {Default Queue} discarded wl_surface#2759.enter(wl_output#985) -[2618261.430] {Default Queue} discarded wl_surface#2759.enter(wl_output#1017) -[2618261.434] {Default Queue} discarded wl_surface#2759.enter(wl_output#1049) -[2618261.438] {Default Queue} discarded wl_surface#2759.enter(wl_output#1081) -[2618261.442] {Default Queue} discarded wl_surface#2759.enter(wl_output#1113) -[2618261.446] {Default Queue} discarded wl_surface#2759.enter(wl_output#1145) -[2618261.450] {Default Queue} discarded wl_surface#2759.enter(wl_output#1177) -[2618261.453] {Default Queue} discarded wl_surface#2759.enter(wl_output#1209) -[2618261.457] {Default Queue} discarded wl_surface#2759.enter(wl_output#1241) -[2618261.461] {Default Queue} discarded wl_surface#2759.enter(wl_output#1273) -[2618261.465] {Default Queue} discarded wl_surface#2759.enter(wl_output#1305) -[2618261.469] {Default Queue} discarded wl_surface#2759.enter(wl_output#1337) -[2618261.474] {Default Queue} discarded wl_surface#2759.enter(wl_output#1369) -[2618261.478] {Default Queue} discarded wl_surface#2759.enter(wl_output#1401) -[2618261.482] {Default Queue} discarded wl_surface#2759.enter(wl_output#1433) -[2618261.486] {Default Queue} discarded wl_surface#2759.enter(wl_output#1465) -[2618261.490] {Default Queue} discarded wl_surface#2759.enter(wl_output#1497) -[2618261.494] {Default Queue} discarded wl_surface#2759.enter(wl_output#1529) -[2618261.498] {Default Queue} discarded wl_surface#2759.enter(wl_output#1561) -[2618261.502] {Default Queue} discarded wl_surface#2759.enter(wl_output#1593) -[2618261.506] {Default Queue} discarded wl_surface#2759.enter(wl_output#1625) -[2618261.510] {Default Queue} discarded wl_surface#2759.enter(wl_output#1657) -[2618261.514] {Default Queue} discarded wl_surface#2759.enter(wl_output#1689) -[2618261.518] {Default Queue} discarded wl_surface#2759.enter(wl_output#1721) -[2618261.522] {Default Queue} discarded wl_surface#2759.enter(wl_output#1753) -[2618261.525] {Default Queue} discarded wl_surface#2759.enter(wl_output#1785) -[2618261.529] {Default Queue} discarded wl_surface#2759.enter(wl_output#1817) -[2618261.534] {Default Queue} discarded wl_surface#2759.enter(wl_output#1849) -[2618261.540] {Default Queue} discarded wl_surface#2759.enter(wl_output#1881) -[2618261.547] {Default Queue} discarded wl_surface#2759.enter(wl_output#1913) -[2618261.551] {Default Queue} discarded wl_surface#2759.enter(wl_output#1945) -[2618261.555] {Default Queue} discarded wl_surface#2759.enter(wl_output#1977) -[2618261.558] {Default Queue} discarded wl_surface#2759.enter(wl_output#2009) -[2618261.562] {Default Queue} discarded wl_surface#2759.enter(wl_output#2041) -[2618261.567] {Default Queue} discarded wl_surface#2759.enter(wl_output#2073) -[2618261.571] {Default Queue} discarded wl_surface#2759.enter(wl_output#2105) -[2618261.574] {Default Queue} discarded wl_surface#2759.enter(wl_output#2137) -[2618261.578] {Default Queue} discarded wl_surface#2759.enter(wl_output#2169) -[2618261.582] {Default Queue} discarded wl_surface#2759.enter(wl_output#2201) -[2618261.586] {Default Queue} discarded wl_surface#2759.enter(wl_output#2233) -[2618261.590] {Default Queue} discarded wl_surface#2759.enter(wl_output#2265) -[2618261.594] {Default Queue} discarded wl_surface#2759.enter(wl_output#2297) -[2618261.598] {Default Queue} discarded wl_surface#2759.enter(wl_output#2329) -[2618261.602] {Default Queue} discarded wl_surface#2759.enter(wl_output#2361) -[2618261.606] {Default Queue} discarded wl_surface#2759.enter(wl_output#2393) -[2618261.610] {Default Queue} discarded wl_surface#2759.enter(wl_output#2425) -[2618261.614] {Default Queue} discarded wl_surface#2759.enter(wl_output#2457) -[2618261.618] {Default Queue} discarded wl_surface#2759.enter(wl_output#2489) -[2618261.622] {Default Queue} discarded wl_surface#2759.enter(wl_output#2521) -[2618261.626] {Default Queue} discarded wl_surface#2759.enter(wl_output#2553) -[2618261.630] {Default Queue} discarded wl_surface#2759.enter(wl_output#2585) -[2618261.634] {Default Queue} discarded wl_surface#2759.enter(wl_output#2617) -[2618261.637] {Default Queue} discarded wl_surface#2759.enter(wl_output#2649) -[2618261.641] {Default Queue} discarded wl_surface#2759.enter(wl_output#2681) -[2618261.646] {Default Queue} discarded wl_surface#2759.enter(wl_output#2713) -[2618261.650] {Default Queue} discarded wl_surface#2759.enter(wl_output#2745) -[2618261.654] {Default Queue} discarded wl_surface#2759.enter(wl_output#2777) -[2618261.659] {Default Queue} -> wl_compositor#2764.create_surface(new id wl_surface#2791) -[2618261.663] {Default Queue} -> wl_subcompositor#2797.get_subsurface(new id wl_subsurface#2810, wl_surface#2791, wl_surface#2759) -[2618261.672] {Default Queue} -> wl_subsurface#2810.set_desync() -[2618261.676] {Default Queue} -> wl_subsurface#2810.set_position(0, 0) -[2618261.681] {Default Queue} -> wl_subsurface#2810.place_above(wl_surface#2759) -[2618261.733] {Default Queue} -> wl_shm#2799.create_pool(new id wl_shm_pool#2811, fd 444, 16) -[2618261.740] {Default Queue} -> wl_shm#2799.create_pool(new id wl_shm_pool#2812, fd 445, 16) -[2618261.744] {Default Queue} -> wl_shm_pool#2811.create_buffer(new id wl_buffer#2813, 0, 2, 2, 8, 0) -[2618261.749] {Default Queue} -> wl_shm_pool#2812.create_buffer(new id wl_buffer#2814, 0, 2, 2, 8, 0) -[2618261.758] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) -[2618261.762] {Default Queue} -> wl_surface#2791.commit() -[2618261.769] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) -[2618261.773] {Default Queue} -> wl_surface#2791.commit() -[2618261.777] {Default Queue} -> wl_compositor#2796.create_region(new id wl_region#2815) -[2618261.781] {Default Queue} -> wl_compositor#2796.create_region(new id wl_region#2816) -[2618261.785] {Default Queue} -> wl_region#2815.subtract(0, 0, 2, 2) -[2618261.790] {Default Queue} -> wl_region#2815.add(0, 0, 0, 0) -[2618261.794] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618261.799] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618261.803] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) -[2618261.807] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) -[2618261.815] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) -[2618261.824] {Default Queue} -> wl_surface#2791.commit() -[2618261.876] {Default Queue} -> wl_shm#2801.create_pool(new id wl_shm_pool#2817, fd 448, 640) -[2618261.886] {Default Queue} -> wl_shm#2801.create_pool(new id wl_shm_pool#2818, fd 449, 640) -[2618261.892] {Default Queue} -> wl_shm_pool#2817.create_buffer(new id wl_buffer#2819, 0, 10, 16, 40, 0) -[2618261.897] {Default Queue} -> wl_shm_pool#2818.create_buffer(new id wl_buffer#2820, 0, 10, 16, 40, 0) -[2618261.904] {Default Queue} -> wl_compositor#2796.create_surface(new id wl_surface#2821) -[2618261.909] {Default Queue} -> wl_surface#2821.attach(wl_buffer#2819, 0, 0) -[2618261.914] {Default Queue} -> wl_surface#2821.commit() -[2618261.920] {Default Queue} -> wl_surface#2821.attach(wl_buffer#2819, 0, 0) -[2618261.924] {Default Queue} -> wl_surface#2821.commit() -[2618261.935] {Default Queue} -> wl_region#2719.subtract(0, 0, 2, 2) -[2618261.940] {Default Queue} -> wl_subsurface#2714.set_position(3, 3) -[2618261.944] {Default Queue} -> wl_region#2719.subtract(0, 0, 5, 5) -[2618261.949] {Default Queue} -> wl_region#2719.add(0, 0, 0, 0) -[2618261.954] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) -[2618261.958] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) -[2618261.962] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618261.967] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) -[2618261.971] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) -[2618261.975] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) -[2618261.982] {Default Queue} -> wl_region#2719.subtract(0, 0, 5, 5) -[2618261.987] {Default Queue} -> wl_region#2719.add(0, 0, 0, 0) -[2618261.991] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) -[2618261.995] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) -[2618262.000] {Default Queue} -> wl_surface#2695.attach(wl_buffer#2717, 0, 0) -[2618262.004] {Default Queue} -> wl_surface#2695.commit() -[2618262.011] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2822) -[2618262.016] {Default Queue} -> wl_display#1.sync(new id wl_callback#2823) -[2618266.282] {Display Queue} wl_display#1.delete_id(2823) -[2618266.296] {Default Queue} wl_keyboard#2792.keymap(1, fd 444, 68213) -[2618266.303] {Default Queue} wl_keyboard#2792.enter(566, wl_surface#19, array[0]) -[2618266.310] {Default Queue} wl_keyboard#2792.modifiers(566, 0, 0, 16, 0) -[2618266.315] {Default Queue} discarded wl_shm#2799.format(875709016) -[2618266.321] {Default Queue} discarded wl_shm#2799.format(1) -[2618266.326] {Default Queue} discarded wl_shm#2799.format(0) -[2618266.330] {Default Queue} discarded wl_shm#2799.format(875708993) -[2618266.336] {Default Queue} discarded wl_shm#2800.format(875709016) -[2618266.340] {Default Queue} discarded wl_shm#2800.format(1) -[2618266.345] {Default Queue} discarded wl_shm#2800.format(0) -[2618266.350] {Default Queue} discarded wl_shm#2800.format(875708993) -[2618266.355] {Default Queue} discarded wl_shm#2801.format(875709016) -[2618266.360] {Default Queue} discarded wl_shm#2801.format(1) -[2618266.365] {Default Queue} discarded wl_shm#2801.format(0) -[2618266.370] {Default Queue} discarded wl_shm#2801.format(875708993) -[2618266.375] {Default Queue} wl_seat#2808.capabilities(7) -[2618266.380] {Default Queue} -> wl_seat#2808.get_keyboard(new id wl_keyboard#2824) -[2618266.386] {Default Queue} -> wl_seat#2808.get_pointer(new id wl_pointer#2825) -[2618266.392] {Default Queue} -> wl_data_device_manager#2804.get_data_device(new id wl_data_device#2826, wl_seat#2808) -[2618266.398] {Default Queue} -> zwp_primary_selection_device_manager_v1#2806.get_device(new id zwp_primary_selection_device_v1#2827, wl_seat#2808) -[2618266.408] {Default Queue} wl_output#2809.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618266.415] {Default Queue} wl_output#2809.mode(3, 1280, 800, 60000) -[2618266.420] {Default Queue} discarded wl_surface#2727.enter(wl_output#2809) -[2618266.425] {Default Queue} discarded wl_surface#3.enter(wl_output#2809) -[2618266.430] {Default Queue} discarded wl_surface#999.enter(wl_output#2809) -[2618266.440] {Default Queue} discarded wl_surface#1191.enter(wl_output#2809) -[2618266.450] {Default Queue} discarded wl_surface#1159.enter(wl_output#2809) -[2618266.455] {Default Queue} discarded wl_surface#1703.enter(wl_output#2809) -[2618266.460] {Default Queue} discarded wl_surface#2215.enter(wl_output#2809) -[2618266.465] {Default Queue} discarded wl_surface#423.enter(wl_output#2809) -[2618266.470] {Default Queue} discarded wl_surface#1447.enter(wl_output#2809) -[2618266.474] {Default Queue} discarded wl_surface#2023.enter(wl_output#2809) -[2618266.479] {Default Queue} discarded wl_surface#1639.enter(wl_output#2809) -[2618266.484] {Default Queue} discarded wl_surface#1319.enter(wl_output#2809) -[2618266.489] {Default Queue} discarded wl_surface#1127.enter(wl_output#2809) -[2618266.494] {Default Queue} discarded wl_surface#2151.enter(wl_output#2809) -[2618266.499] {Default Queue} discarded wl_surface#2375.enter(wl_output#2809) -[2618266.504] {Default Queue} discarded wl_surface#2695.enter(wl_output#2809) -[2618266.508] {Default Queue} discarded wl_surface#1063.enter(wl_output#2809) -[2618266.513] {Default Queue} discarded wl_surface#455.enter(wl_output#2809) -[2618266.518] {Default Queue} discarded wl_surface#1575.enter(wl_output#2809) -[2618266.523] {Default Queue} discarded wl_surface#1799.enter(wl_output#2809) -[2618266.528] {Default Queue} discarded wl_surface#1415.enter(wl_output#2809) -[2618266.533] {Default Queue} discarded wl_surface#2439.enter(wl_output#2809) -[2618266.538] {Default Queue} discarded wl_surface#2279.enter(wl_output#2809) -[2618266.543] {Default Queue} discarded wl_surface#1831.enter(wl_output#2809) -[2618266.548] {Default Queue} discarded wl_surface#903.enter(wl_output#2809) -[2618266.553] {Default Queue} discarded wl_surface#2663.enter(wl_output#2809) -[2618266.557] {Default Queue} discarded wl_surface#775.enter(wl_output#2809) -[2618266.563] {Default Queue} discarded wl_surface#1991.enter(wl_output#2809) -[2618266.568] {Default Queue} discarded wl_surface#1543.enter(wl_output#2809) -[2618266.572] {Default Queue} discarded wl_surface#135.enter(wl_output#2809) -[2618266.577] {Default Queue} discarded wl_surface#1287.enter(wl_output#2809) -[2618266.583] {Default Queue} discarded wl_surface#1031.enter(wl_output#2809) -[2618266.588] {Default Queue} discarded wl_surface#615.enter(wl_output#2809) -[2618266.592] {Default Queue} discarded wl_surface#231.enter(wl_output#2809) -[2618266.597] {Default Queue} discarded wl_surface#2343.enter(wl_output#2809) -[2618266.602] {Default Queue} discarded wl_surface#1863.enter(wl_output#2809) -[2618266.607] {Default Queue} discarded wl_surface#359.enter(wl_output#2809) -[2618266.612] {Default Queue} discarded wl_surface#583.enter(wl_output#2809) -[2618266.617] {Default Queue} discarded wl_surface#743.enter(wl_output#2809) -[2618266.622] {Default Queue} discarded wl_surface#2535.enter(wl_output#2809) -[2618266.627] {Default Queue} discarded wl_surface#967.enter(wl_output#2809) -[2618266.632] {Default Queue} discarded wl_surface#103.enter(wl_output#2809) -[2618266.637] {Default Queue} discarded wl_surface#327.enter(wl_output#2809) -[2618266.642] {Default Queue} discarded wl_surface#43.enter(wl_output#2809) -[2618266.647] {Default Queue} discarded wl_surface#2247.enter(wl_output#2809) -[2618266.652] {Default Queue} discarded wl_surface#807.enter(wl_output#2809) -[2618266.657] {Default Queue} discarded wl_surface#19.enter(wl_output#2809) -[2618266.662] {Default Queue} discarded wl_surface#1511.enter(wl_output#2809) -[2618266.667] {Default Queue} discarded wl_surface#199.enter(wl_output#2809) -[2618266.671] {Default Queue} discarded wl_surface#391.enter(wl_output#2809) -[2618266.676] {Default Queue} discarded wl_surface#935.enter(wl_output#2809) -[2618266.681] {Default Queue} discarded wl_surface#1671.enter(wl_output#2809) -[2618266.686] {Default Queue} discarded wl_surface#1351.enter(wl_output#2809) -[2618266.691] {Default Queue} discarded wl_surface#711.enter(wl_output#2809) -[2618266.696] {Default Queue} discarded wl_surface#1223.enter(wl_output#2809) -[2618266.701] {Default Queue} discarded wl_surface#1927.enter(wl_output#2809) -[2618266.710] {Default Queue} discarded wl_surface#871.enter(wl_output#2809) -[2618266.718] {Default Queue} discarded wl_surface#1895.enter(wl_output#2809) -[2618266.723] {Default Queue} discarded wl_surface#263.enter(wl_output#2809) -[2618266.728] {Default Queue} discarded wl_surface#551.enter(wl_output#2809) -[2618266.733] {Default Queue} discarded wl_surface#1735.enter(wl_output#2809) -[2618266.738] {Default Queue} discarded wl_surface#1479.enter(wl_output#2809) -[2618266.743] {Default Queue} discarded wl_surface#1772.enter(wl_output#2809) -[2618266.748] {Default Queue} discarded wl_surface#2599.enter(wl_output#2809) -[2618266.752] {Default Queue} discarded wl_surface#2631.enter(wl_output#2809) -[2618266.757] {Default Queue} discarded wl_surface#1959.enter(wl_output#2809) -[2618266.762] {Default Queue} discarded wl_surface#647.enter(wl_output#2809) -[2618266.767] {Default Queue} discarded wl_surface#2055.enter(wl_output#2809) -[2618266.772] {Default Queue} discarded wl_surface#2508.enter(wl_output#2809) -[2618266.777] {Default Queue} discarded wl_surface#71.enter(wl_output#2809) -[2618266.782] {Default Queue} discarded wl_surface#2759.enter(wl_output#2809) -[2618266.787] {Default Queue} discarded wl_surface#2183.enter(wl_output#2809) -[2618266.792] {Default Queue} discarded wl_surface#2567.enter(wl_output#2809) -[2618266.797] {Default Queue} discarded wl_surface#839.enter(wl_output#2809) -[2618266.802] {Default Queue} discarded wl_surface#1607.enter(wl_output#2809) -[2618266.806] {Default Queue} discarded wl_surface#1095.enter(wl_output#2809) -[2618266.811] {Default Queue} discarded wl_surface#1383.enter(wl_output#2809) -[2618266.816] {Default Queue} discarded wl_surface#487.enter(wl_output#2809) -[2618266.821] {Default Queue} discarded wl_surface#2311.enter(wl_output#2809) -[2618266.826] {Default Queue} discarded wl_surface#519.enter(wl_output#2809) -[2618266.831] {Default Queue} discarded wl_surface#2087.enter(wl_output#2809) -[2618266.836] {Default Queue} discarded wl_surface#2471.enter(wl_output#2809) -[2618266.842] {Default Queue} discarded wl_surface#295.enter(wl_output#2809) -[2618266.849] {Default Queue} discarded wl_surface#167.enter(wl_output#2809) -[2618266.855] {Default Queue} discarded wl_surface#1255.enter(wl_output#2809) -[2618266.871] {Default Queue} discarded wl_surface#679.enter(wl_output#2809) -[2618266.878] {Default Queue} discarded wl_surface#2407.enter(wl_output#2809) -[2618266.885] {Default Queue} discarded wl_surface#2119.enter(wl_output#2809) -[2618266.890] {Default Queue} wl_registry#2822.global(1, "wl_compositor", 6) -[2618266.897] {Default Queue} -> wl_registry#2822.bind(1, "wl_compositor", 1, new id [unknown]#2828) -[2618266.903] {Default Queue} wl_registry#2822.global(2, "wl_subcompositor", 1) -[2618266.909] {Default Queue} -> wl_registry#2822.bind(2, "wl_subcompositor", 1, new id [unknown]#2829) -[2618266.915] {Default Queue} wl_registry#2822.global(3, "xdg_wm_base", 6) -[2618266.921] {Default Queue} -> wl_registry#2822.bind(3, "xdg_wm_base", 1, new id [unknown]#2830) -[2618266.927] {Default Queue} wl_registry#2822.global(6, "zwlr_layer_shell_v1", 5) -[2618266.933] {Default Queue} wl_registry#2822.global(7, "ext_session_lock_manager_v1", 1) -[2618266.938] {Default Queue} wl_registry#2822.global(8, "wl_shm", 2) -[2618266.944] {Default Queue} -> wl_registry#2822.bind(8, "wl_shm", 1, new id [unknown]#2831) -[2618266.953] {Default Queue} -> wl_registry#2822.bind(8, "wl_shm", 1, new id [unknown]#2832) -[2618266.958] {Default Queue} -> wl_registry#2822.bind(8, "wl_shm", 1, new id [unknown]#2833) -[2618266.964] {Default Queue} wl_registry#2822.global(9, "zxdg_output_manager_v1", 3) -[2618266.969] {Default Queue} wl_registry#2822.global(10, "wp_fractional_scale_manager_v1", 1) -[2618266.975] {Default Queue} wl_registry#2822.global(11, "zwp_tablet_manager_v2", 1) -[2618266.980] {Default Queue} wl_registry#2822.global(12, "zwp_pointer_gestures_v1", 3) -[2618266.985] {Default Queue} wl_registry#2822.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618266.991] {Default Queue} -> wl_registry#2822.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2834) -[2618267.011] {Default Queue} wl_registry#2822.global(14, "zwp_pointer_constraints_v1", 1) -[2618267.019] {Default Queue} -> wl_registry#2822.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2835) -[2618267.025] {Default Queue} wl_registry#2822.global(15, "ext_idle_notifier_v1", 2) -[2618267.030] {Default Queue} wl_registry#2822.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618267.036] {Default Queue} wl_registry#2822.global(17, "wl_data_device_manager", 3) -[2618267.042] {Default Queue} -> wl_registry#2822.bind(17, "wl_data_device_manager", 2, new id [unknown]#2836) -[2618267.047] {Default Queue} -> wl_data_device_manager#2836.create_data_source(new id wl_data_source#2837) -[2618267.053] {Default Queue} -> wl_data_source#2837.offer("text/plain") -[2618267.058] {Default Queue} -> wl_data_source#2837.offer("text/plain;charset=utf-8") -[2618267.063] {Default Queue} -> wl_data_source#2837.offer("TEXT") -[2618267.068] {Default Queue} -> wl_data_source#2837.offer("STRING") -[2618267.073] {Default Queue} -> wl_data_source#2837.offer("UTF8_STRING") -[2618267.078] {Default Queue} wl_registry#2822.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618267.084] {Default Queue} -> wl_registry#2822.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2838) -[2618267.094] {Default Queue} -> zwp_primary_selection_device_manager_v1#2838.create_source(new id zwp_primary_selection_source_v1#2839) -[2618267.104] {Default Queue} -> zwp_primary_selection_source_v1#2839.offer("text/plain") -[2618267.108] {Default Queue} -> zwp_primary_selection_source_v1#2839.offer("text/plain;charset=utf-8") -[2618267.114] {Default Queue} -> zwp_primary_selection_source_v1#2839.offer("TEXT") -[2618267.119] {Default Queue} -> zwp_primary_selection_source_v1#2839.offer("STRING") -[2618267.124] {Default Queue} -> zwp_primary_selection_source_v1#2839.offer("UTF8_STRING") -[2618267.129] {Default Queue} wl_registry#2822.global(19, "zwlr_data_control_manager_v1", 2) -[2618267.134] {Default Queue} wl_registry#2822.global(20, "ext_data_control_manager_v1", 1) -[2618267.139] {Default Queue} wl_registry#2822.global(21, "wp_presentation", 2) -[2618267.145] {Default Queue} wl_registry#2822.global(22, "wp_security_context_manager_v1", 1) -[2618267.150] {Default Queue} wl_registry#2822.global(23, "zwp_text_input_manager_v3", 1) -[2618267.156] {Default Queue} wl_registry#2822.global(24, "zwp_input_method_manager_v2", 1) -[2618267.162] {Default Queue} wl_registry#2822.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618267.167] {Default Queue} wl_registry#2822.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618267.172] {Default Queue} wl_registry#2822.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618267.178] {Default Queue} wl_registry#2822.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618267.183] {Default Queue} wl_registry#2822.global(29, "ext_workspace_manager_v1", 1) -[2618267.188] {Default Queue} wl_registry#2822.global(30, "zwlr_output_manager_v1", 4) -[2618267.194] {Default Queue} wl_registry#2822.global(31, "zwlr_screencopy_manager_v1", 3) -[2618267.199] {Default Queue} wl_registry#2822.global(32, "wp_viewporter", 1) -[2618267.204] {Default Queue} wl_registry#2822.global(33, "zxdg_exporter_v2", 1) -[2618267.210] {Default Queue} wl_registry#2822.global(34, "zxdg_importer_v2", 1) -[2618267.214] {Default Queue} wl_registry#2822.global(36, "xdg_activation_v1", 1) -[2618267.219] {Default Queue} wl_registry#2822.global(37, "mutter_x11_interop", 1) -[2618267.223] {Default Queue} wl_registry#2822.global(38, "wl_seat", 9) -[2618267.228] {Default Queue} -> wl_registry#2822.bind(38, "wl_seat", 1, new id [unknown]#2840) -[2618267.232] {Default Queue} wl_registry#2822.global(39, "wp_cursor_shape_manager_v1", 2) -[2618267.237] {Default Queue} wl_registry#2822.global(40, "wl_output", 4) -[2618267.241] {Default Queue} -> wl_registry#2822.bind(40, "wl_output", 1, new id [unknown]#2841) -[2618267.246] {Default Queue} wl_callback#2823.done(0) -[2618267.250] {Default Queue} discarded wl_surface#2791.enter(wl_output#18) -[2618267.257] {Default Queue} discarded wl_surface#2791.enter(wl_output#57) -[2618267.263] {Default Queue} discarded wl_surface#2791.enter(wl_output#89) -[2618267.267] {Default Queue} discarded wl_surface#2791.enter(wl_output#121) -[2618267.271] {Default Queue} discarded wl_surface#2791.enter(wl_output#153) -[2618267.275] {Default Queue} discarded wl_surface#2791.enter(wl_output#185) -[2618267.279] {Default Queue} discarded wl_surface#2791.enter(wl_output#217) -[2618267.283] {Default Queue} discarded wl_surface#2791.enter(wl_output#249) -[2618267.287] {Default Queue} discarded wl_surface#2791.enter(wl_output#281) -[2618267.290] {Default Queue} discarded wl_surface#2791.enter(wl_output#313) -[2618267.295] {Default Queue} discarded wl_surface#2791.enter(wl_output#345) -[2618267.300] {Default Queue} discarded wl_surface#2791.enter(wl_output#377) -[2618267.304] {Default Queue} discarded wl_surface#2791.enter(wl_output#409) -[2618267.308] {Default Queue} discarded wl_surface#2791.enter(wl_output#441) -[2618267.312] {Default Queue} discarded wl_surface#2791.enter(wl_output#473) -[2618267.317] {Default Queue} discarded wl_surface#2791.enter(wl_output#505) -[2618267.320] {Default Queue} discarded wl_surface#2791.enter(wl_output#537) -[2618267.324] {Default Queue} discarded wl_surface#2791.enter(wl_output#569) -[2618267.328] {Default Queue} discarded wl_surface#2791.enter(wl_output#601) -[2618267.332] {Default Queue} discarded wl_surface#2791.enter(wl_output#633) -[2618267.336] {Default Queue} discarded wl_surface#2791.enter(wl_output#665) -[2618267.340] {Default Queue} discarded wl_surface#2791.enter(wl_output#697) -[2618267.344] {Default Queue} discarded wl_surface#2791.enter(wl_output#729) -[2618267.348] {Default Queue} discarded wl_surface#2791.enter(wl_output#761) -[2618267.351] {Default Queue} discarded wl_surface#2791.enter(wl_output#793) -[2618267.355] {Default Queue} discarded wl_surface#2791.enter(wl_output#825) -[2618267.360] {Default Queue} discarded wl_surface#2791.enter(wl_output#857) -[2618267.363] {Default Queue} discarded wl_surface#2791.enter(wl_output#889) -[2618267.368] {Default Queue} discarded wl_surface#2791.enter(wl_output#921) -[2618267.371] {Default Queue} discarded wl_surface#2791.enter(wl_output#953) -[2618267.375] {Default Queue} discarded wl_surface#2791.enter(wl_output#985) -[2618267.380] {Default Queue} discarded wl_surface#2791.enter(wl_output#1017) -[2618267.384] {Default Queue} discarded wl_surface#2791.enter(wl_output#1049) -[2618267.388] {Default Queue} discarded wl_surface#2791.enter(wl_output#1081) -[2618267.391] {Default Queue} discarded wl_surface#2791.enter(wl_output#1113) -[2618267.396] {Default Queue} discarded wl_surface#2791.enter(wl_output#1145) -[2618267.400] {Default Queue} discarded wl_surface#2791.enter(wl_output#1177) -[2618267.403] {Default Queue} discarded wl_surface#2791.enter(wl_output#1209) -[2618267.408] {Default Queue} discarded wl_surface#2791.enter(wl_output#1241) -[2618267.412] {Default Queue} discarded wl_surface#2791.enter(wl_output#1273) -[2618267.416] {Default Queue} discarded wl_surface#2791.enter(wl_output#1305) -[2618267.420] {Default Queue} discarded wl_surface#2791.enter(wl_output#1337) -[2618267.424] {Default Queue} discarded wl_surface#2791.enter(wl_output#1369) -[2618267.428] {Default Queue} discarded wl_surface#2791.enter(wl_output#1401) -[2618267.432] {Default Queue} discarded wl_surface#2791.enter(wl_output#1433) -[2618267.436] {Default Queue} discarded wl_surface#2791.enter(wl_output#1465) -[2618267.440] {Default Queue} discarded wl_surface#2791.enter(wl_output#1497) -[2618267.443] {Default Queue} discarded wl_surface#2791.enter(wl_output#1529) -[2618267.447] {Default Queue} discarded wl_surface#2791.enter(wl_output#1561) -[2618267.451] {Default Queue} discarded wl_surface#2791.enter(wl_output#1593) -[2618267.455] {Default Queue} discarded wl_surface#2791.enter(wl_output#1625) -[2618267.459] {Default Queue} discarded wl_surface#2791.enter(wl_output#1657) -[2618267.464] {Default Queue} discarded wl_surface#2791.enter(wl_output#1689) -[2618267.468] {Default Queue} discarded wl_surface#2791.enter(wl_output#1721) -[2618267.475] {Default Queue} discarded wl_surface#2791.enter(wl_output#1753) -[2618267.480] {Default Queue} discarded wl_surface#2791.enter(wl_output#1785) -[2618267.484] {Default Queue} discarded wl_surface#2791.enter(wl_output#1817) -[2618267.488] {Default Queue} discarded wl_surface#2791.enter(wl_output#1849) -[2618267.492] {Default Queue} discarded wl_surface#2791.enter(wl_output#1881) -[2618267.496] {Default Queue} discarded wl_surface#2791.enter(wl_output#1913) -[2618267.500] {Default Queue} discarded wl_surface#2791.enter(wl_output#1945) -[2618267.504] {Default Queue} discarded wl_surface#2791.enter(wl_output#1977) -[2618267.508] {Default Queue} discarded wl_surface#2791.enter(wl_output#2009) -[2618267.512] {Default Queue} discarded wl_surface#2791.enter(wl_output#2041) -[2618267.515] {Default Queue} discarded wl_surface#2791.enter(wl_output#2073) -[2618267.519] {Default Queue} discarded wl_surface#2791.enter(wl_output#2105) -[2618267.523] {Default Queue} discarded wl_surface#2791.enter(wl_output#2137) -[2618267.527] {Default Queue} discarded wl_surface#2791.enter(wl_output#2169) -[2618267.531] {Default Queue} discarded wl_surface#2791.enter(wl_output#2201) -[2618267.535] {Default Queue} discarded wl_surface#2791.enter(wl_output#2233) -[2618267.539] {Default Queue} discarded wl_surface#2791.enter(wl_output#2265) -[2618267.543] {Default Queue} discarded wl_surface#2791.enter(wl_output#2297) -[2618267.547] {Default Queue} discarded wl_surface#2791.enter(wl_output#2329) -[2618267.551] {Default Queue} discarded wl_surface#2791.enter(wl_output#2361) -[2618267.555] {Default Queue} discarded wl_surface#2791.enter(wl_output#2393) -[2618267.559] {Default Queue} discarded wl_surface#2791.enter(wl_output#2425) -[2618267.563] {Default Queue} discarded wl_surface#2791.enter(wl_output#2457) -[2618267.567] {Default Queue} discarded wl_surface#2791.enter(wl_output#2489) -[2618267.571] {Default Queue} discarded wl_surface#2791.enter(wl_output#2521) -[2618267.575] {Default Queue} discarded wl_surface#2791.enter(wl_output#2553) -[2618267.579] {Default Queue} discarded wl_surface#2791.enter(wl_output#2585) -[2618267.583] {Default Queue} discarded wl_surface#2791.enter(wl_output#2617) -[2618267.587] {Default Queue} discarded wl_surface#2791.enter(wl_output#2649) -[2618267.591] {Default Queue} discarded wl_surface#2791.enter(wl_output#2681) -[2618267.595] {Default Queue} discarded wl_surface#2791.enter(wl_output#2713) -[2618267.599] {Default Queue} discarded wl_surface#2791.enter(wl_output#2745) -[2618267.603] {Default Queue} discarded wl_surface#2791.enter(wl_output#2777) -[2618267.607] {Default Queue} discarded wl_surface#2791.enter(wl_output#2809) -[2618267.612] {Default Queue} -> wl_compositor#2092.create_surface(new id wl_surface#2823) -[2618267.616] {Default Queue} -> wl_subcompositor#2829.get_subsurface(new id wl_subsurface#2842, wl_surface#2823, wl_surface#2087) -[2618267.624] {Default Queue} -> wl_subsurface#2842.set_desync() -[2618267.628] {Default Queue} -> wl_subsurface#2842.set_position(0, 0) -[2618267.633] {Default Queue} -> wl_subsurface#2842.place_above(wl_surface#2087) -[2618267.676] {Default Queue} -> wl_shm#2831.create_pool(new id wl_shm_pool#2843, fd 449, 16) -[2618267.683] {Default Queue} -> wl_shm#2831.create_pool(new id wl_shm_pool#2844, fd 450, 16) -[2618267.688] {Default Queue} -> wl_shm_pool#2843.create_buffer(new id wl_buffer#2845, 0, 2, 2, 8, 0) -[2618267.693] {Default Queue} -> wl_shm_pool#2844.create_buffer(new id wl_buffer#2846, 0, 2, 2, 8, 0) -[2618267.700] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) -[2618267.705] {Default Queue} -> wl_surface#2823.commit() -[2618267.711] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) -[2618267.715] {Default Queue} -> wl_surface#2823.commit() -[2618267.719] {Default Queue} -> wl_compositor#2828.create_region(new id wl_region#2847) -[2618267.723] {Default Queue} -> wl_compositor#2828.create_region(new id wl_region#2848) -[2618267.729] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) -[2618267.733] {Default Queue} -> wl_region#2847.add(0, 0, 0, 0) -[2618267.740] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618267.746] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618267.751] {Default Queue} -> wl_surface#2823.damage(0, 0, 2, 2) -[2618267.756] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) -[2618267.764] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) -[2618267.768] {Default Queue} -> wl_surface#2823.commit() -[2618267.802] {Default Queue} -> wl_shm#2833.create_pool(new id wl_shm_pool#2849, fd 453, 640) -[2618267.808] {Default Queue} -> wl_shm#2833.create_pool(new id wl_shm_pool#2850, fd 454, 640) -[2618267.813] {Default Queue} -> wl_shm_pool#2849.create_buffer(new id wl_buffer#2851, 0, 10, 16, 40, 0) -[2618267.818] {Default Queue} -> wl_shm_pool#2850.create_buffer(new id wl_buffer#2852, 0, 10, 16, 40, 0) -[2618267.825] {Default Queue} -> wl_compositor#2828.create_surface(new id wl_surface#2853) -[2618267.829] {Default Queue} -> wl_surface#2853.attach(wl_buffer#2851, 0, 0) -[2618267.834] {Default Queue} -> wl_surface#2853.commit() -[2618267.840] {Default Queue} -> wl_surface#2853.attach(wl_buffer#2851, 0, 0) -[2618267.844] {Default Queue} -> wl_surface#2853.commit() -[2618267.849] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) -[2618267.854] {Default Queue} -> wl_surface#2823.damage(0, 0, 2, 2) -[2618267.859] {Default Queue} -> wl_surface#2823.damage(0, 0, 2, 2) -[2618267.867] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2854) -[2618267.877] {Default Queue} -> wl_display#1.sync(new id wl_callback#2855) -[2618268.166] {Display Queue} wl_display#1.delete_id(2855) -[2618268.172] {Default Queue} wl_keyboard#2824.keymap(1, fd 449, 68213) -[2618268.177] {Default Queue} wl_keyboard#2824.enter(566, wl_surface#19, array[0]) -[2618268.182] {Default Queue} wl_keyboard#2824.modifiers(566, 0, 0, 16, 0) -[2618268.187] {Default Queue} discarded wl_shm#2831.format(875709016) -[2618268.191] {Default Queue} discarded wl_shm#2831.format(1) -[2618268.195] {Default Queue} discarded wl_shm#2831.format(0) -[2618268.199] {Default Queue} discarded wl_shm#2831.format(875708993) -[2618268.203] {Default Queue} discarded wl_shm#2832.format(875709016) -[2618268.207] {Default Queue} discarded wl_shm#2832.format(1) -[2618268.210] {Default Queue} discarded wl_shm#2832.format(0) -[2618268.214] {Default Queue} discarded wl_shm#2832.format(875708993) -[2618268.218] {Default Queue} discarded wl_shm#2833.format(875709016) -[2618268.222] {Default Queue} discarded wl_shm#2833.format(1) -[2618268.226] {Default Queue} discarded wl_shm#2833.format(0) -[2618268.230] {Default Queue} discarded wl_shm#2833.format(875708993) -[2618268.234] {Default Queue} wl_seat#2840.capabilities(7) -[2618268.239] {Default Queue} -> wl_seat#2840.get_keyboard(new id wl_keyboard#2856) -[2618268.244] {Default Queue} -> wl_seat#2840.get_pointer(new id wl_pointer#2857) -[2618268.249] {Default Queue} -> wl_data_device_manager#2836.get_data_device(new id wl_data_device#2858, wl_seat#2840) -[2618268.253] {Default Queue} -> zwp_primary_selection_device_manager_v1#2838.get_device(new id zwp_primary_selection_device_v1#2859, wl_seat#2840) -[2618268.261] {Default Queue} wl_output#2841.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618268.266] {Default Queue} wl_output#2841.mode(3, 1280, 800, 60000) -[2618268.271] {Default Queue} discarded wl_surface#2727.enter(wl_output#2841) -[2618268.275] {Default Queue} discarded wl_surface#3.enter(wl_output#2841) -[2618268.279] {Default Queue} discarded wl_surface#999.enter(wl_output#2841) -[2618268.283] {Default Queue} discarded wl_surface#1191.enter(wl_output#2841) -[2618268.287] {Default Queue} discarded wl_surface#1159.enter(wl_output#2841) -[2618268.291] {Default Queue} discarded wl_surface#1703.enter(wl_output#2841) -[2618268.295] {Default Queue} discarded wl_surface#2215.enter(wl_output#2841) -[2618268.299] {Default Queue} discarded wl_surface#423.enter(wl_output#2841) -[2618268.303] {Default Queue} discarded wl_surface#1447.enter(wl_output#2841) -[2618268.307] {Default Queue} discarded wl_surface#2023.enter(wl_output#2841) -[2618268.315] {Default Queue} discarded wl_surface#1639.enter(wl_output#2841) -[2618268.321] {Default Queue} discarded wl_surface#1319.enter(wl_output#2841) -[2618268.326] {Default Queue} discarded wl_surface#1127.enter(wl_output#2841) -[2618268.330] {Default Queue} discarded wl_surface#2151.enter(wl_output#2841) -[2618268.334] {Default Queue} discarded wl_surface#2375.enter(wl_output#2841) -[2618268.338] {Default Queue} discarded wl_surface#2695.enter(wl_output#2841) -[2618268.342] {Default Queue} discarded wl_surface#1063.enter(wl_output#2841) -[2618268.347] {Default Queue} discarded wl_surface#455.enter(wl_output#2841) -[2618268.351] {Default Queue} discarded wl_surface#1575.enter(wl_output#2841) -[2618268.354] {Default Queue} discarded wl_surface#1799.enter(wl_output#2841) -[2618268.358] {Default Queue} discarded wl_surface#1415.enter(wl_output#2841) -[2618268.362] {Default Queue} discarded wl_surface#2439.enter(wl_output#2841) -[2618268.366] {Default Queue} discarded wl_surface#2279.enter(wl_output#2841) -[2618268.370] {Default Queue} discarded wl_surface#1831.enter(wl_output#2841) -[2618268.374] {Default Queue} discarded wl_surface#903.enter(wl_output#2841) -[2618268.378] {Default Queue} discarded wl_surface#2663.enter(wl_output#2841) -[2618268.382] {Default Queue} discarded wl_surface#775.enter(wl_output#2841) -[2618268.386] {Default Queue} discarded wl_surface#1991.enter(wl_output#2841) -[2618268.390] {Default Queue} discarded wl_surface#1543.enter(wl_output#2841) -[2618268.394] {Default Queue} discarded wl_surface#135.enter(wl_output#2841) -[2618268.397] {Default Queue} discarded wl_surface#1287.enter(wl_output#2841) -[2618268.401] {Default Queue} discarded wl_surface#1031.enter(wl_output#2841) -[2618268.405] {Default Queue} discarded wl_surface#615.enter(wl_output#2841) -[2618268.409] {Default Queue} discarded wl_surface#231.enter(wl_output#2841) -[2618268.413] {Default Queue} discarded wl_surface#2343.enter(wl_output#2841) -[2618268.417] {Default Queue} discarded wl_surface#1863.enter(wl_output#2841) -[2618268.423] {Default Queue} discarded wl_surface#359.enter(wl_output#2841) -[2618268.427] {Default Queue} discarded wl_surface#583.enter(wl_output#2841) -[2618268.431] {Default Queue} discarded wl_surface#743.enter(wl_output#2841) -[2618268.434] {Default Queue} discarded wl_surface#2535.enter(wl_output#2841) -[2618268.438] {Default Queue} discarded wl_surface#967.enter(wl_output#2841) -[2618268.442] {Default Queue} discarded wl_surface#103.enter(wl_output#2841) -[2618268.446] {Default Queue} discarded wl_surface#327.enter(wl_output#2841) -[2618268.450] {Default Queue} discarded wl_surface#43.enter(wl_output#2841) -[2618268.454] {Default Queue} discarded wl_surface#2247.enter(wl_output#2841) -[2618268.458] {Default Queue} discarded wl_surface#807.enter(wl_output#2841) -[2618268.462] {Default Queue} discarded wl_surface#19.enter(wl_output#2841) -[2618268.466] {Default Queue} discarded wl_surface#1511.enter(wl_output#2841) -[2618268.470] {Default Queue} discarded wl_surface#199.enter(wl_output#2841) -[2618268.474] {Default Queue} discarded wl_surface#391.enter(wl_output#2841) -[2618268.478] {Default Queue} discarded wl_surface#935.enter(wl_output#2841) -[2618268.482] {Default Queue} discarded wl_surface#1671.enter(wl_output#2841) -[2618268.486] {Default Queue} discarded wl_surface#1351.enter(wl_output#2841) -[2618268.490] {Default Queue} discarded wl_surface#711.enter(wl_output#2841) -[2618268.493] {Default Queue} discarded wl_surface#1223.enter(wl_output#2841) -[2618268.497] {Default Queue} discarded wl_surface#1927.enter(wl_output#2841) -[2618268.502] {Default Queue} discarded wl_surface#871.enter(wl_output#2841) -[2618268.506] {Default Queue} discarded wl_surface#1895.enter(wl_output#2841) -[2618268.509] {Default Queue} discarded wl_surface#263.enter(wl_output#2841) -[2618268.513] {Default Queue} discarded wl_surface#551.enter(wl_output#2841) -[2618268.517] {Default Queue} discarded wl_surface#1735.enter(wl_output#2841) -[2618268.521] {Default Queue} discarded wl_surface#1479.enter(wl_output#2841) -[2618268.525] {Default Queue} discarded wl_surface#1772.enter(wl_output#2841) -[2618268.532] {Default Queue} discarded wl_surface#2599.enter(wl_output#2841) -[2618268.537] {Default Queue} discarded wl_surface#2631.enter(wl_output#2841) -[2618268.541] {Default Queue} discarded wl_surface#1959.enter(wl_output#2841) -[2618268.545] {Default Queue} discarded wl_surface#647.enter(wl_output#2841) -[2618268.549] {Default Queue} discarded wl_surface#2055.enter(wl_output#2841) -[2618268.554] {Default Queue} discarded wl_surface#2508.enter(wl_output#2841) -[2618268.558] {Default Queue} discarded wl_surface#71.enter(wl_output#2841) -[2618268.562] {Default Queue} discarded wl_surface#2759.enter(wl_output#2841) -[2618268.567] {Default Queue} discarded wl_surface#2791.enter(wl_output#2841) -[2618268.571] {Default Queue} discarded wl_surface#2183.enter(wl_output#2841) -[2618268.575] {Default Queue} discarded wl_surface#2567.enter(wl_output#2841) -[2618268.579] {Default Queue} discarded wl_surface#839.enter(wl_output#2841) -[2618268.583] {Default Queue} discarded wl_surface#1607.enter(wl_output#2841) -[2618268.587] {Default Queue} discarded wl_surface#1095.enter(wl_output#2841) -[2618268.591] {Default Queue} discarded wl_surface#1383.enter(wl_output#2841) -[2618268.595] {Default Queue} discarded wl_surface#487.enter(wl_output#2841) -[2618268.599] {Default Queue} discarded wl_surface#2311.enter(wl_output#2841) -[2618268.602] {Default Queue} discarded wl_surface#519.enter(wl_output#2841) -[2618268.607] {Default Queue} discarded wl_surface#2087.enter(wl_output#2841) -[2618268.611] {Default Queue} discarded wl_surface#2471.enter(wl_output#2841) -[2618268.615] {Default Queue} discarded wl_surface#295.enter(wl_output#2841) -[2618268.619] {Default Queue} discarded wl_surface#167.enter(wl_output#2841) -[2618268.623] {Default Queue} discarded wl_surface#1255.enter(wl_output#2841) -[2618268.627] {Default Queue} discarded wl_surface#679.enter(wl_output#2841) -[2618268.631] {Default Queue} discarded wl_surface#2407.enter(wl_output#2841) -[2618268.635] {Default Queue} discarded wl_surface#2119.enter(wl_output#2841) -[2618268.638] {Default Queue} wl_registry#2854.global(1, "wl_compositor", 6) -[2618268.643] {Default Queue} -> wl_registry#2854.bind(1, "wl_compositor", 1, new id [unknown]#2860) -[2618268.648] {Default Queue} wl_registry#2854.global(2, "wl_subcompositor", 1) -[2618268.653] {Default Queue} -> wl_registry#2854.bind(2, "wl_subcompositor", 1, new id [unknown]#2861) -[2618268.658] {Default Queue} wl_registry#2854.global(3, "xdg_wm_base", 6) -[2618268.662] {Default Queue} -> wl_registry#2854.bind(3, "xdg_wm_base", 1, new id [unknown]#2862) -[2618268.667] {Default Queue} wl_registry#2854.global(6, "zwlr_layer_shell_v1", 5) -[2618268.671] {Default Queue} wl_registry#2854.global(7, "ext_session_lock_manager_v1", 1) -[2618268.676] {Default Queue} wl_registry#2854.global(8, "wl_shm", 2) -[2618268.680] {Default Queue} -> wl_registry#2854.bind(8, "wl_shm", 1, new id [unknown]#2863) -[2618268.685] {Default Queue} -> wl_registry#2854.bind(8, "wl_shm", 1, new id [unknown]#2864) -[2618268.690] {Default Queue} -> wl_registry#2854.bind(8, "wl_shm", 1, new id [unknown]#2865) -[2618268.694] {Default Queue} wl_registry#2854.global(9, "zxdg_output_manager_v1", 3) -[2618268.698] {Default Queue} wl_registry#2854.global(10, "wp_fractional_scale_manager_v1", 1) -[2618268.702] {Default Queue} wl_registry#2854.global(11, "zwp_tablet_manager_v2", 1) -[2618268.707] {Default Queue} wl_registry#2854.global(12, "zwp_pointer_gestures_v1", 3) -[2618268.711] {Default Queue} wl_registry#2854.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618268.716] {Default Queue} -> wl_registry#2854.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2866) -[2618268.720] {Default Queue} wl_registry#2854.global(14, "zwp_pointer_constraints_v1", 1) -[2618268.725] {Default Queue} -> wl_registry#2854.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2867) -[2618268.729] {Default Queue} wl_registry#2854.global(15, "ext_idle_notifier_v1", 2) -[2618268.733] {Default Queue} wl_registry#2854.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618268.741] {Default Queue} wl_registry#2854.global(17, "wl_data_device_manager", 3) -[2618268.747] {Default Queue} -> wl_registry#2854.bind(17, "wl_data_device_manager", 2, new id [unknown]#2868) -[2618268.752] {Default Queue} -> wl_data_device_manager#2868.create_data_source(new id wl_data_source#2869) -[2618268.756] {Default Queue} -> wl_data_source#2869.offer("text/plain") -[2618268.761] {Default Queue} -> wl_data_source#2869.offer("text/plain;charset=utf-8") -[2618268.765] {Default Queue} -> wl_data_source#2869.offer("TEXT") -[2618268.769] {Default Queue} -> wl_data_source#2869.offer("STRING") -[2618268.774] {Default Queue} -> wl_data_source#2869.offer("UTF8_STRING") -[2618268.778] {Default Queue} wl_registry#2854.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618268.782] {Default Queue} -> wl_registry#2854.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2870) -[2618268.790] {Default Queue} -> zwp_primary_selection_device_manager_v1#2870.create_source(new id zwp_primary_selection_source_v1#2871) -[2618268.798] {Default Queue} -> zwp_primary_selection_source_v1#2871.offer("text/plain") -[2618268.802] {Default Queue} -> zwp_primary_selection_source_v1#2871.offer("text/plain;charset=utf-8") -[2618268.807] {Default Queue} -> zwp_primary_selection_source_v1#2871.offer("TEXT") -[2618268.811] {Default Queue} -> zwp_primary_selection_source_v1#2871.offer("STRING") -[2618268.815] {Default Queue} -> zwp_primary_selection_source_v1#2871.offer("UTF8_STRING") -[2618268.819] {Default Queue} wl_registry#2854.global(19, "zwlr_data_control_manager_v1", 2) -[2618268.823] {Default Queue} wl_registry#2854.global(20, "ext_data_control_manager_v1", 1) -[2618268.828] {Default Queue} wl_registry#2854.global(21, "wp_presentation", 2) -[2618268.832] {Default Queue} wl_registry#2854.global(22, "wp_security_context_manager_v1", 1) -[2618268.837] {Default Queue} wl_registry#2854.global(23, "zwp_text_input_manager_v3", 1) -[2618268.841] {Default Queue} wl_registry#2854.global(24, "zwp_input_method_manager_v2", 1) -[2618268.845] {Default Queue} wl_registry#2854.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618268.850] {Default Queue} wl_registry#2854.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618268.854] {Default Queue} wl_registry#2854.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618268.858] {Default Queue} wl_registry#2854.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618268.870] {Default Queue} wl_registry#2854.global(29, "ext_workspace_manager_v1", 1) -[2618268.874] {Default Queue} wl_registry#2854.global(30, "zwlr_output_manager_v1", 4) -[2618268.879] {Default Queue} wl_registry#2854.global(31, "zwlr_screencopy_manager_v1", 3) -[2618268.883] {Default Queue} wl_registry#2854.global(32, "wp_viewporter", 1) -[2618268.888] {Default Queue} wl_registry#2854.global(33, "zxdg_exporter_v2", 1) -[2618268.893] {Default Queue} wl_registry#2854.global(34, "zxdg_importer_v2", 1) -[2618268.897] {Default Queue} wl_registry#2854.global(36, "xdg_activation_v1", 1) -[2618268.901] {Default Queue} wl_registry#2854.global(37, "mutter_x11_interop", 1) -[2618268.907] {Default Queue} wl_registry#2854.global(38, "wl_seat", 9) -[2618268.911] {Default Queue} -> wl_registry#2854.bind(38, "wl_seat", 1, new id [unknown]#2872) -[2618268.916] {Default Queue} wl_registry#2854.global(39, "wp_cursor_shape_manager_v1", 2) -[2618268.920] {Default Queue} wl_registry#2854.global(40, "wl_output", 4) -[2618268.925] {Default Queue} -> wl_registry#2854.bind(40, "wl_output", 1, new id [unknown]#2873) -[2618268.929] {Default Queue} wl_callback#2855.done(0) -[2618268.933] {Default Queue} discarded wl_surface#2823.enter(wl_output#18) -[2618268.937] {Default Queue} discarded wl_surface#2823.enter(wl_output#57) -[2618268.942] {Default Queue} discarded wl_surface#2823.enter(wl_output#89) -[2618268.946] {Default Queue} discarded wl_surface#2823.enter(wl_output#121) -[2618268.950] {Default Queue} discarded wl_surface#2823.enter(wl_output#153) -[2618268.954] {Default Queue} discarded wl_surface#2823.enter(wl_output#185) -[2618268.958] {Default Queue} discarded wl_surface#2823.enter(wl_output#217) -[2618268.965] {Default Queue} discarded wl_surface#2823.enter(wl_output#249) -[2618268.970] {Default Queue} discarded wl_surface#2823.enter(wl_output#281) -[2618268.974] {Default Queue} discarded wl_surface#2823.enter(wl_output#313) -[2618268.978] {Default Queue} discarded wl_surface#2823.enter(wl_output#345) -[2618268.982] {Default Queue} discarded wl_surface#2823.enter(wl_output#377) -[2618268.986] {Default Queue} discarded wl_surface#2823.enter(wl_output#409) -[2618268.990] {Default Queue} discarded wl_surface#2823.enter(wl_output#441) -[2618268.994] {Default Queue} discarded wl_surface#2823.enter(wl_output#473) -[2618268.998] {Default Queue} discarded wl_surface#2823.enter(wl_output#505) -[2618269.002] {Default Queue} discarded wl_surface#2823.enter(wl_output#537) -[2618269.006] {Default Queue} discarded wl_surface#2823.enter(wl_output#569) -[2618269.010] {Default Queue} discarded wl_surface#2823.enter(wl_output#601) -[2618269.014] {Default Queue} discarded wl_surface#2823.enter(wl_output#633) -[2618269.018] {Default Queue} discarded wl_surface#2823.enter(wl_output#665) -[2618269.022] {Default Queue} discarded wl_surface#2823.enter(wl_output#697) -[2618269.026] {Default Queue} discarded wl_surface#2823.enter(wl_output#729) -[2618269.030] {Default Queue} discarded wl_surface#2823.enter(wl_output#761) -[2618269.034] {Default Queue} discarded wl_surface#2823.enter(wl_output#793) -[2618269.037] {Default Queue} discarded wl_surface#2823.enter(wl_output#825) -[2618269.041] {Default Queue} discarded wl_surface#2823.enter(wl_output#857) -[2618269.046] {Default Queue} discarded wl_surface#2823.enter(wl_output#889) -[2618269.049] {Default Queue} discarded wl_surface#2823.enter(wl_output#921) -[2618269.053] {Default Queue} discarded wl_surface#2823.enter(wl_output#953) -[2618269.057] {Default Queue} discarded wl_surface#2823.enter(wl_output#985) -[2618269.061] {Default Queue} discarded wl_surface#2823.enter(wl_output#1017) -[2618269.065] {Default Queue} discarded wl_surface#2823.enter(wl_output#1049) -[2618269.069] {Default Queue} discarded wl_surface#2823.enter(wl_output#1081) -[2618269.073] {Default Queue} discarded wl_surface#2823.enter(wl_output#1113) -[2618269.077] {Default Queue} discarded wl_surface#2823.enter(wl_output#1145) -[2618269.082] {Default Queue} discarded wl_surface#2823.enter(wl_output#1177) -[2618269.086] {Default Queue} discarded wl_surface#2823.enter(wl_output#1209) -[2618269.090] {Default Queue} discarded wl_surface#2823.enter(wl_output#1241) -[2618269.094] {Default Queue} discarded wl_surface#2823.enter(wl_output#1273) -[2618269.098] {Default Queue} discarded wl_surface#2823.enter(wl_output#1305) -[2618269.102] {Default Queue} discarded wl_surface#2823.enter(wl_output#1337) -[2618269.106] {Default Queue} discarded wl_surface#2823.enter(wl_output#1369) -[2618269.110] {Default Queue} discarded wl_surface#2823.enter(wl_output#1401) -[2618269.114] {Default Queue} discarded wl_surface#2823.enter(wl_output#1433) -[2618269.118] {Default Queue} discarded wl_surface#2823.enter(wl_output#1465) -[2618269.122] {Default Queue} discarded wl_surface#2823.enter(wl_output#1497) -[2618269.126] {Default Queue} discarded wl_surface#2823.enter(wl_output#1529) -[2618269.130] {Default Queue} discarded wl_surface#2823.enter(wl_output#1561) -[2618269.134] {Default Queue} discarded wl_surface#2823.enter(wl_output#1593) -[2618269.137] {Default Queue} discarded wl_surface#2823.enter(wl_output#1625) -[2618269.141] {Default Queue} discarded wl_surface#2823.enter(wl_output#1657) -[2618269.146] {Default Queue} discarded wl_surface#2823.enter(wl_output#1689) -[2618269.150] {Default Queue} discarded wl_surface#2823.enter(wl_output#1721) -[2618269.154] {Default Queue} discarded wl_surface#2823.enter(wl_output#1753) -[2618269.157] {Default Queue} discarded wl_surface#2823.enter(wl_output#1785) -[2618269.161] {Default Queue} discarded wl_surface#2823.enter(wl_output#1817) -[2618269.165] {Default Queue} discarded wl_surface#2823.enter(wl_output#1849) -[2618269.169] {Default Queue} discarded wl_surface#2823.enter(wl_output#1881) -[2618269.176] {Default Queue} discarded wl_surface#2823.enter(wl_output#1913) -[2618269.182] {Default Queue} discarded wl_surface#2823.enter(wl_output#1945) -[2618269.186] {Default Queue} discarded wl_surface#2823.enter(wl_output#1977) -[2618269.190] {Default Queue} discarded wl_surface#2823.enter(wl_output#2009) -[2618269.194] {Default Queue} discarded wl_surface#2823.enter(wl_output#2041) -[2618269.198] {Default Queue} discarded wl_surface#2823.enter(wl_output#2073) -[2618269.202] {Default Queue} discarded wl_surface#2823.enter(wl_output#2105) -[2618269.206] {Default Queue} discarded wl_surface#2823.enter(wl_output#2137) -[2618269.210] {Default Queue} discarded wl_surface#2823.enter(wl_output#2169) -[2618269.214] {Default Queue} discarded wl_surface#2823.enter(wl_output#2201) -[2618269.218] {Default Queue} discarded wl_surface#2823.enter(wl_output#2233) -[2618269.221] {Default Queue} discarded wl_surface#2823.enter(wl_output#2265) -[2618269.225] {Default Queue} discarded wl_surface#2823.enter(wl_output#2297) -[2618269.229] {Default Queue} discarded wl_surface#2823.enter(wl_output#2329) -[2618269.233] {Default Queue} discarded wl_surface#2823.enter(wl_output#2361) -[2618269.237] {Default Queue} discarded wl_surface#2823.enter(wl_output#2393) -[2618269.241] {Default Queue} discarded wl_surface#2823.enter(wl_output#2425) -[2618269.245] {Default Queue} discarded wl_surface#2823.enter(wl_output#2457) -[2618269.249] {Default Queue} discarded wl_surface#2823.enter(wl_output#2489) -[2618269.253] {Default Queue} discarded wl_surface#2823.enter(wl_output#2521) -[2618269.257] {Default Queue} discarded wl_surface#2823.enter(wl_output#2553) -[2618269.261] {Default Queue} discarded wl_surface#2823.enter(wl_output#2585) -[2618269.265] {Default Queue} discarded wl_surface#2823.enter(wl_output#2617) -[2618269.268] {Default Queue} discarded wl_surface#2823.enter(wl_output#2649) -[2618269.273] {Default Queue} discarded wl_surface#2823.enter(wl_output#2681) -[2618269.276] {Default Queue} discarded wl_surface#2823.enter(wl_output#2713) -[2618269.280] {Default Queue} discarded wl_surface#2823.enter(wl_output#2745) -[2618269.285] {Default Queue} discarded wl_surface#2823.enter(wl_output#2777) -[2618269.289] {Default Queue} -> wl_compositor#2828.create_surface(new id wl_surface#2855) -[2618269.293] {Default Queue} -> wl_subcompositor#2861.get_subsurface(new id wl_subsurface#2874, wl_surface#2855, wl_surface#2823) -[2618269.301] {Default Queue} -> wl_subsurface#2874.set_desync() -[2618269.305] {Default Queue} -> wl_subsurface#2874.set_position(0, 0) -[2618269.310] {Default Queue} -> wl_subsurface#2874.place_above(wl_surface#2823) -[2618269.346] {Default Queue} -> wl_shm#2863.create_pool(new id wl_shm_pool#2875, fd 454, 16) -[2618269.353] {Default Queue} -> wl_shm#2863.create_pool(new id wl_shm_pool#2876, fd 455, 16) -[2618269.357] {Default Queue} -> wl_shm_pool#2875.create_buffer(new id wl_buffer#2877, 0, 2, 2, 8, 0) -[2618269.362] {Default Queue} -> wl_shm_pool#2876.create_buffer(new id wl_buffer#2878, 0, 2, 2, 8, 0) -[2618269.369] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2877, 0, 0) -[2618269.374] {Default Queue} -> wl_surface#2855.commit() -[2618269.380] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2877, 0, 0) -[2618269.384] {Default Queue} -> wl_surface#2855.commit() -[2618269.388] {Default Queue} -> wl_compositor#2860.create_region(new id wl_region#2879) -[2618269.392] {Default Queue} -> wl_compositor#2860.create_region(new id wl_region#2880) -[2618269.396] {Default Queue} -> wl_region#2879.subtract(0, 0, 2, 2) -[2618269.401] {Default Queue} -> wl_region#2879.add(0, 0, 0, 0) -[2618269.406] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) -[2618269.410] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) -[2618269.414] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) -[2618269.419] {Default Queue} -> wl_surface#2823.damage(0, 0, 2, 2) -[2618269.425] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2877, 0, 0) -[2618269.430] {Default Queue} -> wl_surface#2855.commit() -[2618269.461] {Default Queue} -> wl_shm#2865.create_pool(new id wl_shm_pool#2881, fd 458, 640) -[2618269.471] {Default Queue} -> wl_shm#2865.create_pool(new id wl_shm_pool#2882, fd 459, 640) -[2618269.477] {Default Queue} -> wl_shm_pool#2881.create_buffer(new id wl_buffer#2883, 0, 10, 16, 40, 0) -[2618269.482] {Default Queue} -> wl_shm_pool#2882.create_buffer(new id wl_buffer#2884, 0, 10, 16, 40, 0) -[2618269.489] {Default Queue} -> wl_compositor#2860.create_surface(new id wl_surface#2885) -[2618269.493] {Default Queue} -> wl_surface#2885.attach(wl_buffer#2883, 0, 0) -[2618269.497] {Default Queue} -> wl_surface#2885.commit() -[2618269.503] {Default Queue} -> wl_surface#2885.attach(wl_buffer#2883, 0, 0) -[2618269.507] {Default Queue} -> wl_surface#2885.commit() -[2618269.513] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) -[2618269.520] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2886) -[2618269.524] {Default Queue} -> wl_display#1.sync(new id wl_callback#2887) -[2618271.136] {Default Queue} discarded wl_surface#2823.enter(wl_output#2809) -[2618271.144] {Default Queue} discarded wl_surface#2823.enter(wl_output#2841) -[2618271.405] {Display Queue} wl_display#1.delete_id(2887) -[2618271.411] {Default Queue} wl_keyboard#2856.keymap(1, fd 454, 68213) -[2618271.415] {Default Queue} wl_keyboard#2856.enter(566, wl_surface#19, array[0]) -[2618271.421] {Default Queue} wl_keyboard#2856.modifiers(566, 0, 0, 16, 0) -[2618271.426] {Default Queue} discarded wl_shm#2863.format(875709016) -[2618271.430] {Default Queue} discarded wl_shm#2863.format(1) -[2618271.434] {Default Queue} discarded wl_shm#2863.format(0) -[2618271.438] {Default Queue} discarded wl_shm#2863.format(875708993) -[2618271.442] {Default Queue} discarded wl_shm#2864.format(875709016) -[2618271.446] {Default Queue} discarded wl_shm#2864.format(1) -[2618271.450] {Default Queue} discarded wl_shm#2864.format(0) -[2618271.454] {Default Queue} discarded wl_shm#2864.format(875708993) -[2618271.459] {Default Queue} discarded wl_shm#2865.format(875709016) -[2618271.463] {Default Queue} discarded wl_shm#2865.format(1) -[2618271.467] {Default Queue} discarded wl_shm#2865.format(0) -[2618271.471] {Default Queue} discarded wl_shm#2865.format(875708993) -[2618271.475] {Default Queue} wl_seat#2872.capabilities(7) -[2618271.479] {Default Queue} -> wl_seat#2872.get_keyboard(new id wl_keyboard#2888) -[2618271.485] {Default Queue} -> wl_seat#2872.get_pointer(new id wl_pointer#2889) -[2618271.489] {Default Queue} -> wl_data_device_manager#2868.get_data_device(new id wl_data_device#2890, wl_seat#2872) -[2618271.494] {Default Queue} -> zwp_primary_selection_device_manager_v1#2870.get_device(new id zwp_primary_selection_device_v1#2891, wl_seat#2872) -[2618271.502] {Default Queue} wl_output#2873.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618271.507] {Default Queue} wl_output#2873.mode(3, 1280, 800, 60000) -[2618271.511] {Default Queue} discarded wl_surface#2727.enter(wl_output#2873) -[2618271.516] {Default Queue} discarded wl_surface#3.enter(wl_output#2873) -[2618271.520] {Default Queue} discarded wl_surface#999.enter(wl_output#2873) -[2618271.524] {Default Queue} discarded wl_surface#1191.enter(wl_output#2873) -[2618271.529] {Default Queue} discarded wl_surface#1159.enter(wl_output#2873) -[2618271.533] {Default Queue} discarded wl_surface#1703.enter(wl_output#2873) -[2618271.537] {Default Queue} discarded wl_surface#2215.enter(wl_output#2873) -[2618271.541] {Default Queue} discarded wl_surface#423.enter(wl_output#2873) -[2618271.545] {Default Queue} discarded wl_surface#1447.enter(wl_output#2873) -[2618271.549] {Default Queue} discarded wl_surface#2023.enter(wl_output#2873) -[2618271.553] {Default Queue} discarded wl_surface#1639.enter(wl_output#2873) -[2618271.558] {Default Queue} discarded wl_surface#1319.enter(wl_output#2873) -[2618271.562] {Default Queue} discarded wl_surface#1127.enter(wl_output#2873) -[2618271.566] {Default Queue} discarded wl_surface#2151.enter(wl_output#2873) -[2618271.569] {Default Queue} discarded wl_surface#2375.enter(wl_output#2873) -[2618271.573] {Default Queue} discarded wl_surface#2695.enter(wl_output#2873) -[2618271.581] {Default Queue} discarded wl_surface#1063.enter(wl_output#2873) -[2618271.588] {Default Queue} discarded wl_surface#455.enter(wl_output#2873) -[2618271.592] {Default Queue} discarded wl_surface#1575.enter(wl_output#2873) -[2618271.596] {Default Queue} discarded wl_surface#1799.enter(wl_output#2873) -[2618271.600] {Default Queue} discarded wl_surface#1415.enter(wl_output#2873) -[2618271.604] {Default Queue} discarded wl_surface#2439.enter(wl_output#2873) -[2618271.608] {Default Queue} discarded wl_surface#2279.enter(wl_output#2873) -[2618271.612] {Default Queue} discarded wl_surface#1831.enter(wl_output#2873) -[2618271.616] {Default Queue} discarded wl_surface#903.enter(wl_output#2873) -[2618271.620] {Default Queue} discarded wl_surface#2663.enter(wl_output#2873) -[2618271.624] {Default Queue} discarded wl_surface#775.enter(wl_output#2873) -[2618271.627] {Default Queue} discarded wl_surface#1991.enter(wl_output#2873) -[2618271.632] {Default Queue} discarded wl_surface#1543.enter(wl_output#2873) -[2618271.636] {Default Queue} discarded wl_surface#135.enter(wl_output#2873) -[2618271.640] {Default Queue} discarded wl_surface#1287.enter(wl_output#2873) -[2618271.644] {Default Queue} discarded wl_surface#1031.enter(wl_output#2873) -[2618271.647] {Default Queue} discarded wl_surface#615.enter(wl_output#2873) -[2618271.651] {Default Queue} discarded wl_surface#231.enter(wl_output#2873) -[2618271.655] {Default Queue} discarded wl_surface#2343.enter(wl_output#2873) -[2618271.659] {Default Queue} discarded wl_surface#1863.enter(wl_output#2873) -[2618271.663] {Default Queue} discarded wl_surface#359.enter(wl_output#2873) -[2618271.667] {Default Queue} discarded wl_surface#583.enter(wl_output#2873) -[2618271.671] {Default Queue} discarded wl_surface#743.enter(wl_output#2873) -[2618271.675] {Default Queue} discarded wl_surface#2535.enter(wl_output#2873) -[2618271.679] {Default Queue} discarded wl_surface#967.enter(wl_output#2873) -[2618271.683] {Default Queue} discarded wl_surface#103.enter(wl_output#2873) -[2618271.687] {Default Queue} discarded wl_surface#327.enter(wl_output#2873) -[2618271.691] {Default Queue} discarded wl_surface#43.enter(wl_output#2873) -[2618271.694] {Default Queue} discarded wl_surface#2247.enter(wl_output#2873) -[2618271.698] {Default Queue} discarded wl_surface#807.enter(wl_output#2873) -[2618271.703] {Default Queue} discarded wl_surface#19.enter(wl_output#2873) -[2618271.707] {Default Queue} discarded wl_surface#1511.enter(wl_output#2873) -[2618271.711] {Default Queue} discarded wl_surface#199.enter(wl_output#2873) -[2618271.715] {Default Queue} discarded wl_surface#391.enter(wl_output#2873) -[2618271.719] {Default Queue} discarded wl_surface#935.enter(wl_output#2873) -[2618271.723] {Default Queue} discarded wl_surface#2823.enter(wl_output#2873) -[2618271.726] {Default Queue} discarded wl_surface#1671.enter(wl_output#2873) -[2618271.730] {Default Queue} discarded wl_surface#1351.enter(wl_output#2873) -[2618271.734] {Default Queue} discarded wl_surface#711.enter(wl_output#2873) -[2618271.739] {Default Queue} discarded wl_surface#1223.enter(wl_output#2873) -[2618271.743] {Default Queue} discarded wl_surface#1927.enter(wl_output#2873) -[2618271.747] {Default Queue} discarded wl_surface#871.enter(wl_output#2873) -[2618271.751] {Default Queue} discarded wl_surface#1895.enter(wl_output#2873) -[2618271.755] {Default Queue} discarded wl_surface#263.enter(wl_output#2873) -[2618271.759] {Default Queue} discarded wl_surface#551.enter(wl_output#2873) -[2618271.763] {Default Queue} discarded wl_surface#1735.enter(wl_output#2873) -[2618271.767] {Default Queue} discarded wl_surface#1479.enter(wl_output#2873) -[2618271.771] {Default Queue} discarded wl_surface#1772.enter(wl_output#2873) -[2618271.774] {Default Queue} discarded wl_surface#2599.enter(wl_output#2873) -[2618271.778] {Default Queue} discarded wl_surface#2631.enter(wl_output#2873) -[2618271.783] {Default Queue} discarded wl_surface#1959.enter(wl_output#2873) -[2618271.787] {Default Queue} discarded wl_surface#647.enter(wl_output#2873) -[2618271.791] {Default Queue} discarded wl_surface#2055.enter(wl_output#2873) -[2618271.798] {Default Queue} discarded wl_surface#2508.enter(wl_output#2873) -[2618271.803] {Default Queue} discarded wl_surface#71.enter(wl_output#2873) -[2618271.807] {Default Queue} discarded wl_surface#2759.enter(wl_output#2873) -[2618271.811] {Default Queue} discarded wl_surface#2791.enter(wl_output#2873) -[2618271.815] {Default Queue} discarded wl_surface#2183.enter(wl_output#2873) -[2618271.819] {Default Queue} discarded wl_surface#2567.enter(wl_output#2873) -[2618271.823] {Default Queue} discarded wl_surface#839.enter(wl_output#2873) -[2618271.827] {Default Queue} discarded wl_surface#1607.enter(wl_output#2873) -[2618271.831] {Default Queue} discarded wl_surface#1095.enter(wl_output#2873) -[2618271.835] {Default Queue} discarded wl_surface#1383.enter(wl_output#2873) -[2618271.839] {Default Queue} discarded wl_surface#487.enter(wl_output#2873) -[2618271.843] {Default Queue} discarded wl_surface#2311.enter(wl_output#2873) -[2618271.848] {Default Queue} discarded wl_surface#519.enter(wl_output#2873) -[2618271.852] {Default Queue} discarded wl_surface#2087.enter(wl_output#2873) -[2618271.857] {Default Queue} discarded wl_surface#2471.enter(wl_output#2873) -[2618271.867] {Default Queue} discarded wl_surface#295.enter(wl_output#2873) -[2618271.872] {Default Queue} discarded wl_surface#167.enter(wl_output#2873) -[2618271.878] {Default Queue} discarded wl_surface#1255.enter(wl_output#2873) -[2618271.883] {Default Queue} discarded wl_surface#679.enter(wl_output#2873) -[2618271.889] {Default Queue} discarded wl_surface#2407.enter(wl_output#2873) -[2618271.894] {Default Queue} discarded wl_surface#2119.enter(wl_output#2873) -[2618271.898] {Default Queue} wl_registry#2886.global(1, "wl_compositor", 6) -[2618271.904] {Default Queue} -> wl_registry#2886.bind(1, "wl_compositor", 1, new id [unknown]#2892) -[2618271.909] {Default Queue} wl_registry#2886.global(2, "wl_subcompositor", 1) -[2618271.913] {Default Queue} -> wl_registry#2886.bind(2, "wl_subcompositor", 1, new id [unknown]#2893) -[2618271.918] {Default Queue} wl_registry#2886.global(3, "xdg_wm_base", 6) -[2618271.923] {Default Queue} -> wl_registry#2886.bind(3, "xdg_wm_base", 1, new id [unknown]#2894) -[2618271.927] {Default Queue} wl_registry#2886.global(6, "zwlr_layer_shell_v1", 5) -[2618271.932] {Default Queue} wl_registry#2886.global(7, "ext_session_lock_manager_v1", 1) -[2618271.936] {Default Queue} wl_registry#2886.global(8, "wl_shm", 2) -[2618271.941] {Default Queue} -> wl_registry#2886.bind(8, "wl_shm", 1, new id [unknown]#2895) -[2618271.945] {Default Queue} -> wl_registry#2886.bind(8, "wl_shm", 1, new id [unknown]#2896) -[2618271.949] {Default Queue} -> wl_registry#2886.bind(8, "wl_shm", 1, new id [unknown]#2897) -[2618271.954] {Default Queue} wl_registry#2886.global(9, "zxdg_output_manager_v1", 3) -[2618271.958] {Default Queue} wl_registry#2886.global(10, "wp_fractional_scale_manager_v1", 1) -[2618271.962] {Default Queue} wl_registry#2886.global(11, "zwp_tablet_manager_v2", 1) -[2618271.967] {Default Queue} wl_registry#2886.global(12, "zwp_pointer_gestures_v1", 3) -[2618271.971] {Default Queue} wl_registry#2886.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618271.975] {Default Queue} -> wl_registry#2886.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2898) -[2618271.980] {Default Queue} wl_registry#2886.global(14, "zwp_pointer_constraints_v1", 1) -[2618271.984] {Default Queue} -> wl_registry#2886.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2899) -[2618271.989] {Default Queue} wl_registry#2886.global(15, "ext_idle_notifier_v1", 2) -[2618271.993] {Default Queue} wl_registry#2886.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618271.998] {Default Queue} wl_registry#2886.global(17, "wl_data_device_manager", 3) -[2618272.003] {Default Queue} -> wl_registry#2886.bind(17, "wl_data_device_manager", 2, new id [unknown]#2900) -[2618272.007] {Default Queue} -> wl_data_device_manager#2900.create_data_source(new id wl_data_source#2901) -[2618272.012] {Default Queue} -> wl_data_source#2901.offer("text/plain") -[2618272.016] {Default Queue} -> wl_data_source#2901.offer("text/plain;charset=utf-8") -[2618272.024] {Default Queue} -> wl_data_source#2901.offer("TEXT") -[2618272.030] {Default Queue} -> wl_data_source#2901.offer("STRING") -[2618272.034] {Default Queue} -> wl_data_source#2901.offer("UTF8_STRING") -[2618272.039] {Default Queue} wl_registry#2886.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618272.043] {Default Queue} -> wl_registry#2886.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2902) -[2618272.051] {Default Queue} -> zwp_primary_selection_device_manager_v1#2902.create_source(new id zwp_primary_selection_source_v1#2903) -[2618272.059] {Default Queue} -> zwp_primary_selection_source_v1#2903.offer("text/plain") -[2618272.063] {Default Queue} -> zwp_primary_selection_source_v1#2903.offer("text/plain;charset=utf-8") -[2618272.067] {Default Queue} -> zwp_primary_selection_source_v1#2903.offer("TEXT") -[2618272.071] {Default Queue} -> zwp_primary_selection_source_v1#2903.offer("STRING") -[2618272.075] {Default Queue} -> zwp_primary_selection_source_v1#2903.offer("UTF8_STRING") -[2618272.079] {Default Queue} wl_registry#2886.global(19, "zwlr_data_control_manager_v1", 2) -[2618272.084] {Default Queue} wl_registry#2886.global(20, "ext_data_control_manager_v1", 1) -[2618272.090] {Default Queue} wl_registry#2886.global(21, "wp_presentation", 2) -[2618272.094] {Default Queue} wl_registry#2886.global(22, "wp_security_context_manager_v1", 1) -[2618272.098] {Default Queue} wl_registry#2886.global(23, "zwp_text_input_manager_v3", 1) -[2618272.103] {Default Queue} wl_registry#2886.global(24, "zwp_input_method_manager_v2", 1) -[2618272.108] {Default Queue} wl_registry#2886.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618272.112] {Default Queue} wl_registry#2886.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618272.117] {Default Queue} wl_registry#2886.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618272.121] {Default Queue} wl_registry#2886.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618272.125] {Default Queue} wl_registry#2886.global(29, "ext_workspace_manager_v1", 1) -[2618272.130] {Default Queue} wl_registry#2886.global(30, "zwlr_output_manager_v1", 4) -[2618272.134] {Default Queue} wl_registry#2886.global(31, "zwlr_screencopy_manager_v1", 3) -[2618272.139] {Default Queue} wl_registry#2886.global(32, "wp_viewporter", 1) -[2618272.143] {Default Queue} wl_registry#2886.global(33, "zxdg_exporter_v2", 1) -[2618272.147] {Default Queue} wl_registry#2886.global(34, "zxdg_importer_v2", 1) -[2618272.152] {Default Queue} wl_registry#2886.global(36, "xdg_activation_v1", 1) -[2618272.157] {Default Queue} wl_registry#2886.global(37, "mutter_x11_interop", 1) -[2618272.161] {Default Queue} wl_registry#2886.global(38, "wl_seat", 9) -[2618272.165] {Default Queue} -> wl_registry#2886.bind(38, "wl_seat", 1, new id [unknown]#2904) -[2618272.170] {Default Queue} wl_registry#2886.global(39, "wp_cursor_shape_manager_v1", 2) -[2618272.175] {Default Queue} wl_registry#2886.global(40, "wl_output", 4) -[2618272.180] {Default Queue} -> wl_registry#2886.bind(40, "wl_output", 1, new id [unknown]#2905) -[2618272.184] {Default Queue} wl_callback#2887.done(0) -[2618272.188] {Default Queue} discarded wl_surface#2855.enter(wl_output#18) -[2618272.193] {Default Queue} discarded wl_surface#2855.enter(wl_output#57) -[2618272.197] {Default Queue} discarded wl_surface#2855.enter(wl_output#89) -[2618272.201] {Default Queue} discarded wl_surface#2855.enter(wl_output#121) -[2618272.205] {Default Queue} discarded wl_surface#2855.enter(wl_output#153) -[2618272.208] {Default Queue} discarded wl_surface#2855.enter(wl_output#185) -[2618272.212] {Default Queue} discarded wl_surface#2855.enter(wl_output#217) -[2618272.216] {Default Queue} discarded wl_surface#2855.enter(wl_output#249) -[2618272.220] {Default Queue} discarded wl_surface#2855.enter(wl_output#281) -[2618272.225] {Default Queue} discarded wl_surface#2855.enter(wl_output#313) -[2618272.228] {Default Queue} discarded wl_surface#2855.enter(wl_output#345) -[2618272.232] {Default Queue} discarded wl_surface#2855.enter(wl_output#377) -[2618272.239] {Default Queue} discarded wl_surface#2855.enter(wl_output#409) -[2618272.245] {Default Queue} discarded wl_surface#2855.enter(wl_output#441) -[2618272.248] {Default Queue} discarded wl_surface#2855.enter(wl_output#473) -[2618272.252] {Default Queue} discarded wl_surface#2855.enter(wl_output#505) -[2618272.256] {Default Queue} discarded wl_surface#2855.enter(wl_output#537) -[2618272.260] {Default Queue} discarded wl_surface#2855.enter(wl_output#569) -[2618272.264] {Default Queue} discarded wl_surface#2855.enter(wl_output#601) -[2618272.268] {Default Queue} discarded wl_surface#2855.enter(wl_output#633) -[2618272.272] {Default Queue} discarded wl_surface#2855.enter(wl_output#665) -[2618272.276] {Default Queue} discarded wl_surface#2855.enter(wl_output#697) -[2618272.280] {Default Queue} discarded wl_surface#2855.enter(wl_output#729) -[2618272.284] {Default Queue} discarded wl_surface#2855.enter(wl_output#761) -[2618272.288] {Default Queue} discarded wl_surface#2855.enter(wl_output#793) -[2618272.292] {Default Queue} discarded wl_surface#2855.enter(wl_output#825) -[2618272.295] {Default Queue} discarded wl_surface#2855.enter(wl_output#857) -[2618272.299] {Default Queue} discarded wl_surface#2855.enter(wl_output#889) -[2618272.303] {Default Queue} discarded wl_surface#2855.enter(wl_output#921) -[2618272.307] {Default Queue} discarded wl_surface#2855.enter(wl_output#953) -[2618272.311] {Default Queue} discarded wl_surface#2855.enter(wl_output#985) -[2618272.315] {Default Queue} discarded wl_surface#2855.enter(wl_output#1017) -[2618272.318] {Default Queue} discarded wl_surface#2855.enter(wl_output#1049) -[2618272.322] {Default Queue} discarded wl_surface#2855.enter(wl_output#1081) -[2618272.326] {Default Queue} discarded wl_surface#2855.enter(wl_output#1113) -[2618272.330] {Default Queue} discarded wl_surface#2855.enter(wl_output#1145) -[2618272.334] {Default Queue} discarded wl_surface#2855.enter(wl_output#1177) -[2618272.338] {Default Queue} discarded wl_surface#2855.enter(wl_output#1209) -[2618272.342] {Default Queue} discarded wl_surface#2855.enter(wl_output#1241) -[2618272.346] {Default Queue} discarded wl_surface#2855.enter(wl_output#1273) -[2618272.350] {Default Queue} discarded wl_surface#2855.enter(wl_output#1305) -[2618272.354] {Default Queue} discarded wl_surface#2855.enter(wl_output#1337) -[2618272.357] {Default Queue} discarded wl_surface#2855.enter(wl_output#1369) -[2618272.361] {Default Queue} discarded wl_surface#2855.enter(wl_output#1401) -[2618272.365] {Default Queue} discarded wl_surface#2855.enter(wl_output#1433) -[2618272.369] {Default Queue} discarded wl_surface#2855.enter(wl_output#1465) -[2618272.373] {Default Queue} discarded wl_surface#2855.enter(wl_output#1497) -[2618272.377] {Default Queue} discarded wl_surface#2855.enter(wl_output#1529) -[2618272.381] {Default Queue} discarded wl_surface#2855.enter(wl_output#1561) -[2618272.385] {Default Queue} discarded wl_surface#2855.enter(wl_output#1593) -[2618272.389] {Default Queue} discarded wl_surface#2855.enter(wl_output#1625) -[2618272.393] {Default Queue} discarded wl_surface#2855.enter(wl_output#1657) -[2618272.397] {Default Queue} discarded wl_surface#2855.enter(wl_output#1689) -[2618272.401] {Default Queue} discarded wl_surface#2855.enter(wl_output#1721) -[2618272.405] {Default Queue} discarded wl_surface#2855.enter(wl_output#1753) -[2618272.409] {Default Queue} discarded wl_surface#2855.enter(wl_output#1785) -[2618272.412] {Default Queue} discarded wl_surface#2855.enter(wl_output#1817) -[2618272.416] {Default Queue} discarded wl_surface#2855.enter(wl_output#1849) -[2618272.420] {Default Queue} discarded wl_surface#2855.enter(wl_output#1881) -[2618272.424] {Default Queue} discarded wl_surface#2855.enter(wl_output#1913) -[2618272.428] {Default Queue} discarded wl_surface#2855.enter(wl_output#1945) -[2618272.432] {Default Queue} discarded wl_surface#2855.enter(wl_output#1977) -[2618272.436] {Default Queue} discarded wl_surface#2855.enter(wl_output#2009) -[2618272.440] {Default Queue} discarded wl_surface#2855.enter(wl_output#2041) -[2618272.444] {Default Queue} discarded wl_surface#2855.enter(wl_output#2073) -[2618272.450] {Default Queue} discarded wl_surface#2855.enter(wl_output#2105) -[2618272.455] {Default Queue} discarded wl_surface#2855.enter(wl_output#2137) -[2618272.459] {Default Queue} discarded wl_surface#2855.enter(wl_output#2169) -[2618272.463] {Default Queue} discarded wl_surface#2855.enter(wl_output#2201) -[2618272.467] {Default Queue} discarded wl_surface#2855.enter(wl_output#2233) -[2618272.471] {Default Queue} discarded wl_surface#2855.enter(wl_output#2265) -[2618272.475] {Default Queue} discarded wl_surface#2855.enter(wl_output#2297) -[2618272.479] {Default Queue} discarded wl_surface#2855.enter(wl_output#2329) -[2618272.483] {Default Queue} discarded wl_surface#2855.enter(wl_output#2361) -[2618272.487] {Default Queue} discarded wl_surface#2855.enter(wl_output#2393) -[2618272.491] {Default Queue} discarded wl_surface#2855.enter(wl_output#2425) -[2618272.495] {Default Queue} discarded wl_surface#2855.enter(wl_output#2457) -[2618272.498] {Default Queue} discarded wl_surface#2855.enter(wl_output#2489) -[2618272.502] {Default Queue} discarded wl_surface#2855.enter(wl_output#2521) -[2618272.506] {Default Queue} discarded wl_surface#2855.enter(wl_output#2553) -[2618272.510] {Default Queue} discarded wl_surface#2855.enter(wl_output#2585) -[2618272.514] {Default Queue} discarded wl_surface#2855.enter(wl_output#2617) -[2618272.518] {Default Queue} discarded wl_surface#2855.enter(wl_output#2649) -[2618272.522] {Default Queue} discarded wl_surface#2855.enter(wl_output#2681) -[2618272.526] {Default Queue} discarded wl_surface#2855.enter(wl_output#2713) -[2618272.530] {Default Queue} discarded wl_surface#2855.enter(wl_output#2745) -[2618272.534] {Default Queue} -> wl_compositor#2860.create_surface(new id wl_surface#2887) -[2618272.539] {Default Queue} -> wl_subcompositor#2893.get_subsurface(new id wl_subsurface#2906, wl_surface#2887, wl_surface#2855) -[2618272.547] {Default Queue} -> wl_subsurface#2906.set_desync() -[2618272.551] {Default Queue} -> wl_subsurface#2906.set_position(0, 0) -[2618272.555] {Default Queue} -> wl_subsurface#2906.place_above(wl_surface#2855) -[2618272.598] {Default Queue} -> wl_shm#2895.create_pool(new id wl_shm_pool#2907, fd 459, 16) -[2618272.604] {Default Queue} -> wl_shm#2895.create_pool(new id wl_shm_pool#2908, fd 460, 16) -[2618272.609] {Default Queue} -> wl_shm_pool#2907.create_buffer(new id wl_buffer#2909, 0, 2, 2, 8, 0) -[2618272.614] {Default Queue} -> wl_shm_pool#2908.create_buffer(new id wl_buffer#2910, 0, 2, 2, 8, 0) -[2618272.622] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) -[2618272.626] {Default Queue} -> wl_surface#2887.commit() -[2618272.632] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) -[2618272.636] {Default Queue} -> wl_surface#2887.commit() -[2618272.640] {Default Queue} -> wl_compositor#2892.create_region(new id wl_region#2911) -[2618272.644] {Default Queue} -> wl_compositor#2892.create_region(new id wl_region#2912) -[2618272.649] {Default Queue} -> wl_region#2911.subtract(0, 0, 2, 2) -[2618272.653] {Default Queue} -> wl_region#2911.add(0, 0, 0, 0) -[2618272.658] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2618272.662] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2618272.666] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618272.671] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) -[2618272.678] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) -[2618272.682] {Default Queue} -> wl_surface#2887.commit() -[2618272.715] {Default Queue} -> wl_shm#2897.create_pool(new id wl_shm_pool#2913, fd 463, 640) -[2618272.722] {Default Queue} -> wl_shm#2897.create_pool(new id wl_shm_pool#2914, fd 464, 640) -[2618272.727] {Default Queue} -> wl_shm_pool#2913.create_buffer(new id wl_buffer#2915, 0, 10, 16, 40, 0) -[2618272.732] {Default Queue} -> wl_shm_pool#2914.create_buffer(new id wl_buffer#2916, 0, 10, 16, 40, 0) -[2618272.738] {Default Queue} -> wl_compositor#2892.create_surface(new id wl_surface#2917) -[2618272.743] {Default Queue} -> wl_surface#2917.attach(wl_buffer#2915, 0, 0) -[2618272.750] {Default Queue} -> wl_surface#2917.commit() -[2618272.757] {Default Queue} -> wl_surface#2917.attach(wl_buffer#2915, 0, 0) -[2618272.761] {Default Queue} -> wl_surface#2917.commit() -[2618272.766] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) -[2618272.772] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618272.777] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618272.784] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2918) -[2618272.789] {Default Queue} -> wl_display#1.sync(new id wl_callback#2919) -[2618275.353] {Default Queue} discarded wl_surface#2855.enter(wl_output#2777) -[2618275.371] {Default Queue} discarded wl_surface#2855.enter(wl_output#2809) -[2618275.380] {Default Queue} discarded wl_surface#2855.enter(wl_output#2841) -[2618275.387] {Default Queue} discarded wl_surface#2855.enter(wl_output#2873) -[2618275.746] {Display Queue} wl_display#1.delete_id(2919) -[2618275.763] {Default Queue} wl_keyboard#2888.keymap(1, fd 459, 68213) -[2618275.772] {Default Queue} wl_keyboard#2888.enter(566, wl_surface#19, array[0]) -[2618275.781] {Default Queue} wl_keyboard#2888.modifiers(566, 0, 0, 16, 0) -[2618275.789] {Default Queue} discarded wl_shm#2895.format(875709016) -[2618275.796] {Default Queue} discarded wl_shm#2895.format(1) -[2618275.803] {Default Queue} discarded wl_shm#2895.format(0) -[2618275.809] {Default Queue} discarded wl_shm#2895.format(875708993) -[2618275.816] {Default Queue} discarded wl_shm#2896.format(875709016) -[2618275.823] {Default Queue} discarded wl_shm#2896.format(1) -[2618275.831] {Default Queue} discarded wl_shm#2896.format(0) -[2618275.838] {Default Queue} discarded wl_shm#2896.format(875708993) -[2618275.845] {Default Queue} discarded wl_shm#2897.format(875709016) -[2618275.851] {Default Queue} discarded wl_shm#2897.format(1) -[2618275.857] {Default Queue} discarded wl_shm#2897.format(0) -[2618275.871] {Default Queue} discarded wl_shm#2897.format(875708993) -[2618275.879] {Default Queue} wl_seat#2904.capabilities(7) -[2618275.887] {Default Queue} -> wl_seat#2904.get_keyboard(new id wl_keyboard#2920) -[2618275.895] {Default Queue} -> wl_seat#2904.get_pointer(new id wl_pointer#2921) -[2618275.903] {Default Queue} -> wl_data_device_manager#2900.get_data_device(new id wl_data_device#2922, wl_seat#2904) -[2618275.913] {Default Queue} -> zwp_primary_selection_device_manager_v1#2902.get_device(new id zwp_primary_selection_device_v1#2923, wl_seat#2904) -[2618275.928] {Default Queue} wl_output#2905.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618275.937] {Default Queue} wl_output#2905.mode(3, 1280, 800, 60000) -[2618275.948] {Default Queue} discarded wl_surface#2727.enter(wl_output#2905) -[2618275.957] {Default Queue} discarded wl_surface#3.enter(wl_output#2905) -[2618275.964] {Default Queue} discarded wl_surface#999.enter(wl_output#2905) -[2618275.970] {Default Queue} discarded wl_surface#1191.enter(wl_output#2905) -[2618275.977] {Default Queue} discarded wl_surface#1159.enter(wl_output#2905) -[2618275.983] {Default Queue} discarded wl_surface#1703.enter(wl_output#2905) -[2618275.990] {Default Queue} discarded wl_surface#2215.enter(wl_output#2905) -[2618275.996] {Default Queue} discarded wl_surface#423.enter(wl_output#2905) -[2618276.003] {Default Queue} discarded wl_surface#1447.enter(wl_output#2905) -[2618276.009] {Default Queue} discarded wl_surface#2023.enter(wl_output#2905) -[2618276.016] {Default Queue} discarded wl_surface#1639.enter(wl_output#2905) -[2618276.022] {Default Queue} discarded wl_surface#1319.enter(wl_output#2905) -[2618276.029] {Default Queue} discarded wl_surface#1127.enter(wl_output#2905) -[2618276.036] {Default Queue} discarded wl_surface#2151.enter(wl_output#2905) -[2618276.043] {Default Queue} discarded wl_surface#2375.enter(wl_output#2905) -[2618276.051] {Default Queue} discarded wl_surface#2695.enter(wl_output#2905) -[2618276.058] {Default Queue} discarded wl_surface#1063.enter(wl_output#2905) -[2618276.065] {Default Queue} discarded wl_surface#455.enter(wl_output#2905) -[2618276.073] {Default Queue} discarded wl_surface#1575.enter(wl_output#2905) -[2618276.088] {Default Queue} discarded wl_surface#1799.enter(wl_output#2905) -[2618276.101] {Default Queue} discarded wl_surface#1415.enter(wl_output#2905) -[2618276.108] {Default Queue} discarded wl_surface#2439.enter(wl_output#2905) -[2618276.116] {Default Queue} discarded wl_surface#2279.enter(wl_output#2905) -[2618276.123] {Default Queue} discarded wl_surface#1831.enter(wl_output#2905) -[2618276.130] {Default Queue} discarded wl_surface#903.enter(wl_output#2905) -[2618276.141] {Default Queue} discarded wl_surface#2663.enter(wl_output#2905) -[2618276.149] {Default Queue} discarded wl_surface#775.enter(wl_output#2905) -[2618276.156] {Default Queue} discarded wl_surface#1991.enter(wl_output#2905) -[2618276.164] {Default Queue} discarded wl_surface#1543.enter(wl_output#2905) -[2618276.170] {Default Queue} discarded wl_surface#135.enter(wl_output#2905) -[2618276.177] {Default Queue} discarded wl_surface#1287.enter(wl_output#2905) -[2618276.184] {Default Queue} discarded wl_surface#1031.enter(wl_output#2905) -[2618276.190] {Default Queue} discarded wl_surface#615.enter(wl_output#2905) -[2618276.198] {Default Queue} discarded wl_surface#231.enter(wl_output#2905) -[2618276.205] {Default Queue} discarded wl_surface#2343.enter(wl_output#2905) -[2618276.212] {Default Queue} discarded wl_surface#1863.enter(wl_output#2905) -[2618276.219] {Default Queue} discarded wl_surface#359.enter(wl_output#2905) -[2618276.227] {Default Queue} discarded wl_surface#583.enter(wl_output#2905) -[2618276.234] {Default Queue} discarded wl_surface#743.enter(wl_output#2905) -[2618276.241] {Default Queue} discarded wl_surface#2535.enter(wl_output#2905) -[2618276.248] {Default Queue} discarded wl_surface#967.enter(wl_output#2905) -[2618276.254] {Default Queue} discarded wl_surface#103.enter(wl_output#2905) -[2618276.259] {Default Queue} discarded wl_surface#327.enter(wl_output#2905) -[2618276.265] {Default Queue} discarded wl_surface#43.enter(wl_output#2905) -[2618276.271] {Default Queue} discarded wl_surface#2247.enter(wl_output#2905) -[2618276.277] {Default Queue} discarded wl_surface#807.enter(wl_output#2905) -[2618276.283] {Default Queue} discarded wl_surface#19.enter(wl_output#2905) -[2618276.288] {Default Queue} discarded wl_surface#1511.enter(wl_output#2905) -[2618276.294] {Default Queue} discarded wl_surface#199.enter(wl_output#2905) -[2618276.299] {Default Queue} discarded wl_surface#391.enter(wl_output#2905) -[2618276.305] {Default Queue} discarded wl_surface#935.enter(wl_output#2905) -[2618276.310] {Default Queue} discarded wl_surface#2823.enter(wl_output#2905) -[2618276.316] {Default Queue} discarded wl_surface#1671.enter(wl_output#2905) -[2618276.321] {Default Queue} discarded wl_surface#1351.enter(wl_output#2905) -[2618276.326] {Default Queue} discarded wl_surface#711.enter(wl_output#2905) -[2618276.330] {Default Queue} discarded wl_surface#1223.enter(wl_output#2905) -[2618276.334] {Default Queue} discarded wl_surface#1927.enter(wl_output#2905) -[2618276.338] {Default Queue} discarded wl_surface#871.enter(wl_output#2905) -[2618276.342] {Default Queue} discarded wl_surface#1895.enter(wl_output#2905) -[2618276.346] {Default Queue} discarded wl_surface#263.enter(wl_output#2905) -[2618276.352] {Default Queue} discarded wl_surface#551.enter(wl_output#2905) -[2618276.357] {Default Queue} discarded wl_surface#1735.enter(wl_output#2905) -[2618276.362] {Default Queue} discarded wl_surface#1479.enter(wl_output#2905) -[2618276.367] {Default Queue} discarded wl_surface#1772.enter(wl_output#2905) -[2618276.371] {Default Queue} discarded wl_surface#2599.enter(wl_output#2905) -[2618276.376] {Default Queue} discarded wl_surface#2631.enter(wl_output#2905) -[2618276.381] {Default Queue} discarded wl_surface#1959.enter(wl_output#2905) -[2618276.387] {Default Queue} discarded wl_surface#647.enter(wl_output#2905) -[2618276.392] {Default Queue} discarded wl_surface#2055.enter(wl_output#2905) -[2618276.397] {Default Queue} discarded wl_surface#2508.enter(wl_output#2905) -[2618276.402] {Default Queue} discarded wl_surface#71.enter(wl_output#2905) -[2618276.406] {Default Queue} discarded wl_surface#2759.enter(wl_output#2905) -[2618276.415] {Default Queue} discarded wl_surface#2791.enter(wl_output#2905) -[2618276.421] {Default Queue} discarded wl_surface#2183.enter(wl_output#2905) -[2618276.425] {Default Queue} discarded wl_surface#2567.enter(wl_output#2905) -[2618276.429] {Default Queue} discarded wl_surface#839.enter(wl_output#2905) -[2618276.433] {Default Queue} discarded wl_surface#1607.enter(wl_output#2905) -[2618276.437] {Default Queue} discarded wl_surface#1095.enter(wl_output#2905) -[2618276.441] {Default Queue} discarded wl_surface#1383.enter(wl_output#2905) -[2618276.445] {Default Queue} discarded wl_surface#487.enter(wl_output#2905) -[2618276.449] {Default Queue} discarded wl_surface#2311.enter(wl_output#2905) -[2618276.452] {Default Queue} discarded wl_surface#519.enter(wl_output#2905) -[2618276.456] {Default Queue} discarded wl_surface#2087.enter(wl_output#2905) -[2618276.461] {Default Queue} discarded wl_surface#2471.enter(wl_output#2905) -[2618276.465] {Default Queue} discarded wl_surface#295.enter(wl_output#2905) -[2618276.469] {Default Queue} discarded wl_surface#167.enter(wl_output#2905) -[2618276.472] {Default Queue} discarded wl_surface#1255.enter(wl_output#2905) -[2618276.476] {Default Queue} discarded wl_surface#2855.enter(wl_output#2905) -[2618276.481] {Default Queue} discarded wl_surface#679.enter(wl_output#2905) -[2618276.484] {Default Queue} discarded wl_surface#2407.enter(wl_output#2905) -[2618276.488] {Default Queue} discarded wl_surface#2119.enter(wl_output#2905) -[2618276.492] {Default Queue} wl_registry#2918.global(1, "wl_compositor", 6) -[2618276.499] {Default Queue} -> wl_registry#2918.bind(1, "wl_compositor", 1, new id [unknown]#2924) -[2618276.504] {Default Queue} wl_registry#2918.global(2, "wl_subcompositor", 1) -[2618276.509] {Default Queue} -> wl_registry#2918.bind(2, "wl_subcompositor", 1, new id [unknown]#2925) -[2618276.514] {Default Queue} wl_registry#2918.global(3, "xdg_wm_base", 6) -[2618276.519] {Default Queue} -> wl_registry#2918.bind(3, "xdg_wm_base", 1, new id [unknown]#2926) -[2618276.523] {Default Queue} wl_registry#2918.global(6, "zwlr_layer_shell_v1", 5) -[2618276.528] {Default Queue} wl_registry#2918.global(7, "ext_session_lock_manager_v1", 1) -[2618276.533] {Default Queue} wl_registry#2918.global(8, "wl_shm", 2) -[2618276.537] {Default Queue} -> wl_registry#2918.bind(8, "wl_shm", 1, new id [unknown]#2927) -[2618276.542] {Default Queue} -> wl_registry#2918.bind(8, "wl_shm", 1, new id [unknown]#2928) -[2618276.546] {Default Queue} -> wl_registry#2918.bind(8, "wl_shm", 1, new id [unknown]#2929) -[2618276.550] {Default Queue} wl_registry#2918.global(9, "zxdg_output_manager_v1", 3) -[2618276.555] {Default Queue} wl_registry#2918.global(10, "wp_fractional_scale_manager_v1", 1) -[2618276.559] {Default Queue} wl_registry#2918.global(11, "zwp_tablet_manager_v2", 1) -[2618276.565] {Default Queue} wl_registry#2918.global(12, "zwp_pointer_gestures_v1", 3) -[2618276.569] {Default Queue} wl_registry#2918.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618276.573] {Default Queue} -> wl_registry#2918.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2930) -[2618276.578] {Default Queue} wl_registry#2918.global(14, "zwp_pointer_constraints_v1", 1) -[2618276.582] {Default Queue} -> wl_registry#2918.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2931) -[2618276.587] {Default Queue} wl_registry#2918.global(15, "ext_idle_notifier_v1", 2) -[2618276.591] {Default Queue} wl_registry#2918.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618276.596] {Default Queue} wl_registry#2918.global(17, "wl_data_device_manager", 3) -[2618276.601] {Default Queue} -> wl_registry#2918.bind(17, "wl_data_device_manager", 2, new id [unknown]#2932) -[2618276.605] {Default Queue} -> wl_data_device_manager#2932.create_data_source(new id wl_data_source#2933) -[2618276.610] {Default Queue} -> wl_data_source#2933.offer("text/plain") -[2618276.614] {Default Queue} -> wl_data_source#2933.offer("text/plain;charset=utf-8") -[2618276.618] {Default Queue} -> wl_data_source#2933.offer("TEXT") -[2618276.622] {Default Queue} -> wl_data_source#2933.offer("STRING") -[2618276.630] {Default Queue} -> wl_data_source#2933.offer("UTF8_STRING") -[2618276.636] {Default Queue} wl_registry#2918.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618276.641] {Default Queue} -> wl_registry#2918.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2934) -[2618276.649] {Default Queue} -> zwp_primary_selection_device_manager_v1#2934.create_source(new id zwp_primary_selection_source_v1#2935) -[2618276.657] {Default Queue} -> zwp_primary_selection_source_v1#2935.offer("text/plain") -[2618276.661] {Default Queue} -> zwp_primary_selection_source_v1#2935.offer("text/plain;charset=utf-8") -[2618276.665] {Default Queue} -> zwp_primary_selection_source_v1#2935.offer("TEXT") -[2618276.669] {Default Queue} -> zwp_primary_selection_source_v1#2935.offer("STRING") -[2618276.673] {Default Queue} -> zwp_primary_selection_source_v1#2935.offer("UTF8_STRING") -[2618276.677] {Default Queue} wl_registry#2918.global(19, "zwlr_data_control_manager_v1", 2) -[2618276.682] {Default Queue} wl_registry#2918.global(20, "ext_data_control_manager_v1", 1) -[2618276.686] {Default Queue} wl_registry#2918.global(21, "wp_presentation", 2) -[2618276.691] {Default Queue} wl_registry#2918.global(22, "wp_security_context_manager_v1", 1) -[2618276.695] {Default Queue} wl_registry#2918.global(23, "zwp_text_input_manager_v3", 1) -[2618276.700] {Default Queue} wl_registry#2918.global(24, "zwp_input_method_manager_v2", 1) -[2618276.704] {Default Queue} wl_registry#2918.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618276.709] {Default Queue} wl_registry#2918.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618276.713] {Default Queue} wl_registry#2918.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618276.717] {Default Queue} wl_registry#2918.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618276.721] {Default Queue} wl_registry#2918.global(29, "ext_workspace_manager_v1", 1) -[2618276.725] {Default Queue} wl_registry#2918.global(30, "zwlr_output_manager_v1", 4) -[2618276.730] {Default Queue} wl_registry#2918.global(31, "zwlr_screencopy_manager_v1", 3) -[2618276.736] {Default Queue} wl_registry#2918.global(32, "wp_viewporter", 1) -[2618276.740] {Default Queue} wl_registry#2918.global(33, "zxdg_exporter_v2", 1) -[2618276.744] {Default Queue} wl_registry#2918.global(34, "zxdg_importer_v2", 1) -[2618276.749] {Default Queue} wl_registry#2918.global(36, "xdg_activation_v1", 1) -[2618276.753] {Default Queue} wl_registry#2918.global(37, "mutter_x11_interop", 1) -[2618276.757] {Default Queue} wl_registry#2918.global(38, "wl_seat", 9) -[2618276.762] {Default Queue} -> wl_registry#2918.bind(38, "wl_seat", 1, new id [unknown]#2936) -[2618276.766] {Default Queue} wl_registry#2918.global(39, "wp_cursor_shape_manager_v1", 2) -[2618276.771] {Default Queue} wl_registry#2918.global(40, "wl_output", 4) -[2618276.775] {Default Queue} -> wl_registry#2918.bind(40, "wl_output", 1, new id [unknown]#2937) -[2618276.780] {Default Queue} wl_callback#2919.done(0) -[2618276.784] {Default Queue} discarded wl_surface#2887.enter(wl_output#18) -[2618276.789] {Default Queue} discarded wl_surface#2887.enter(wl_output#57) -[2618276.793] {Default Queue} discarded wl_surface#2887.enter(wl_output#89) -[2618276.797] {Default Queue} discarded wl_surface#2887.enter(wl_output#121) -[2618276.801] {Default Queue} discarded wl_surface#2887.enter(wl_output#153) -[2618276.805] {Default Queue} discarded wl_surface#2887.enter(wl_output#185) -[2618276.809] {Default Queue} discarded wl_surface#2887.enter(wl_output#217) -[2618276.813] {Default Queue} discarded wl_surface#2887.enter(wl_output#249) -[2618276.817] {Default Queue} discarded wl_surface#2887.enter(wl_output#281) -[2618276.821] {Default Queue} discarded wl_surface#2887.enter(wl_output#313) -[2618276.825] {Default Queue} discarded wl_surface#2887.enter(wl_output#345) -[2618276.829] {Default Queue} discarded wl_surface#2887.enter(wl_output#377) -[2618276.832] {Default Queue} discarded wl_surface#2887.enter(wl_output#409) -[2618276.836] {Default Queue} discarded wl_surface#2887.enter(wl_output#441) -[2618276.844] {Default Queue} discarded wl_surface#2887.enter(wl_output#473) -[2618276.849] {Default Queue} discarded wl_surface#2887.enter(wl_output#505) -[2618276.853] {Default Queue} discarded wl_surface#2887.enter(wl_output#537) -[2618276.857] {Default Queue} discarded wl_surface#2887.enter(wl_output#569) -[2618276.871] {Default Queue} discarded wl_surface#2887.enter(wl_output#601) -[2618276.876] {Default Queue} discarded wl_surface#2887.enter(wl_output#633) -[2618276.880] {Default Queue} discarded wl_surface#2887.enter(wl_output#665) -[2618276.884] {Default Queue} discarded wl_surface#2887.enter(wl_output#697) -[2618276.887] {Default Queue} discarded wl_surface#2887.enter(wl_output#729) -[2618276.891] {Default Queue} discarded wl_surface#2887.enter(wl_output#761) -[2618276.895] {Default Queue} discarded wl_surface#2887.enter(wl_output#793) -[2618276.900] {Default Queue} discarded wl_surface#2887.enter(wl_output#825) -[2618276.904] {Default Queue} discarded wl_surface#2887.enter(wl_output#857) -[2618276.908] {Default Queue} discarded wl_surface#2887.enter(wl_output#889) -[2618276.911] {Default Queue} discarded wl_surface#2887.enter(wl_output#921) -[2618276.915] {Default Queue} discarded wl_surface#2887.enter(wl_output#953) -[2618276.920] {Default Queue} discarded wl_surface#2887.enter(wl_output#985) -[2618276.924] {Default Queue} discarded wl_surface#2887.enter(wl_output#1017) -[2618276.928] {Default Queue} discarded wl_surface#2887.enter(wl_output#1049) -[2618276.932] {Default Queue} discarded wl_surface#2887.enter(wl_output#1081) -[2618276.936] {Default Queue} discarded wl_surface#2887.enter(wl_output#1113) -[2618276.940] {Default Queue} discarded wl_surface#2887.enter(wl_output#1145) -[2618276.943] {Default Queue} discarded wl_surface#2887.enter(wl_output#1177) -[2618276.947] {Default Queue} discarded wl_surface#2887.enter(wl_output#1209) -[2618276.951] {Default Queue} discarded wl_surface#2887.enter(wl_output#1241) -[2618276.955] {Default Queue} discarded wl_surface#2887.enter(wl_output#1273) -[2618276.961] {Default Queue} discarded wl_surface#2887.enter(wl_output#1305) -[2618276.965] {Default Queue} discarded wl_surface#2887.enter(wl_output#1337) -[2618276.969] {Default Queue} discarded wl_surface#2887.enter(wl_output#1369) -[2618276.973] {Default Queue} discarded wl_surface#2887.enter(wl_output#1401) -[2618276.977] {Default Queue} discarded wl_surface#2887.enter(wl_output#1433) -[2618276.981] {Default Queue} discarded wl_surface#2887.enter(wl_output#1465) -[2618276.985] {Default Queue} discarded wl_surface#2887.enter(wl_output#1497) -[2618276.990] {Default Queue} discarded wl_surface#2887.enter(wl_output#1529) -[2618276.994] {Default Queue} discarded wl_surface#2887.enter(wl_output#1561) -[2618276.998] {Default Queue} discarded wl_surface#2887.enter(wl_output#1593) -[2618277.002] {Default Queue} discarded wl_surface#2887.enter(wl_output#1625) -[2618277.006] {Default Queue} discarded wl_surface#2887.enter(wl_output#1657) -[2618277.010] {Default Queue} discarded wl_surface#2887.enter(wl_output#1689) -[2618277.014] {Default Queue} discarded wl_surface#2887.enter(wl_output#1721) -[2618277.018] {Default Queue} discarded wl_surface#2887.enter(wl_output#1753) -[2618277.022] {Default Queue} discarded wl_surface#2887.enter(wl_output#1785) -[2618277.026] {Default Queue} discarded wl_surface#2887.enter(wl_output#1817) -[2618277.031] {Default Queue} discarded wl_surface#2887.enter(wl_output#1849) -[2618277.035] {Default Queue} discarded wl_surface#2887.enter(wl_output#1881) -[2618277.039] {Default Queue} discarded wl_surface#2887.enter(wl_output#1913) -[2618277.043] {Default Queue} discarded wl_surface#2887.enter(wl_output#1945) -[2618277.047] {Default Queue} discarded wl_surface#2887.enter(wl_output#1977) -[2618277.051] {Default Queue} discarded wl_surface#2887.enter(wl_output#2009) -[2618277.056] {Default Queue} discarded wl_surface#2887.enter(wl_output#2041) -[2618277.060] {Default Queue} discarded wl_surface#2887.enter(wl_output#2073) -[2618277.064] {Default Queue} discarded wl_surface#2887.enter(wl_output#2105) -[2618277.069] {Default Queue} discarded wl_surface#2887.enter(wl_output#2137) -[2618277.075] {Default Queue} discarded wl_surface#2887.enter(wl_output#2169) -[2618277.081] {Default Queue} discarded wl_surface#2887.enter(wl_output#2201) -[2618277.085] {Default Queue} discarded wl_surface#2887.enter(wl_output#2233) -[2618277.089] {Default Queue} discarded wl_surface#2887.enter(wl_output#2265) -[2618277.093] {Default Queue} discarded wl_surface#2887.enter(wl_output#2297) -[2618277.097] {Default Queue} discarded wl_surface#2887.enter(wl_output#2329) -[2618277.101] {Default Queue} discarded wl_surface#2887.enter(wl_output#2361) -[2618277.105] {Default Queue} discarded wl_surface#2887.enter(wl_output#2393) -[2618277.109] {Default Queue} discarded wl_surface#2887.enter(wl_output#2425) -[2618277.113] {Default Queue} discarded wl_surface#2887.enter(wl_output#2457) -[2618277.117] {Default Queue} discarded wl_surface#2887.enter(wl_output#2489) -[2618277.120] {Default Queue} discarded wl_surface#2887.enter(wl_output#2521) -[2618277.124] {Default Queue} discarded wl_surface#2887.enter(wl_output#2553) -[2618277.129] {Default Queue} discarded wl_surface#2887.enter(wl_output#2585) -[2618277.133] {Default Queue} discarded wl_surface#2887.enter(wl_output#2617) -[2618277.137] {Default Queue} discarded wl_surface#2887.enter(wl_output#2649) -[2618277.141] {Default Queue} discarded wl_surface#2887.enter(wl_output#2681) -[2618277.145] {Default Queue} discarded wl_surface#2887.enter(wl_output#2713) -[2618277.150] {Default Queue} -> wl_compositor#2860.create_surface(new id wl_surface#2919) -[2618277.154] {Default Queue} -> wl_subcompositor#2925.get_subsurface(new id wl_subsurface#2938, wl_surface#2919, wl_surface#2855) -[2618277.163] {Default Queue} -> wl_subsurface#2938.set_desync() -[2618277.167] {Default Queue} -> wl_subsurface#2938.set_position(0, 0) -[2618277.172] {Default Queue} -> wl_subsurface#2938.place_above(wl_surface#2855) -[2618277.222] {Default Queue} -> wl_shm#2927.create_pool(new id wl_shm_pool#2939, fd 464, 16) -[2618277.230] {Default Queue} -> wl_shm#2927.create_pool(new id wl_shm_pool#2940, fd 465, 16) -[2618277.235] {Default Queue} -> wl_shm_pool#2939.create_buffer(new id wl_buffer#2941, 0, 2, 2, 8, 0) -[2618277.240] {Default Queue} -> wl_shm_pool#2940.create_buffer(new id wl_buffer#2942, 0, 2, 2, 8, 0) -[2618277.248] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) -[2618277.253] {Default Queue} -> wl_surface#2919.commit() -[2618277.259] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) -[2618277.263] {Default Queue} -> wl_surface#2919.commit() -[2618277.267] {Default Queue} -> wl_compositor#2924.create_region(new id wl_region#2943) -[2618277.272] {Default Queue} -> wl_compositor#2924.create_region(new id wl_region#2944) -[2618277.276] {Default Queue} -> wl_region#2943.subtract(0, 0, 2, 2) -[2618277.281] {Default Queue} -> wl_region#2943.add(0, 0, 0, 0) -[2618277.285] {Default Queue} -> wl_surface#2919.set_opaque_region(wl_region#2944) -[2618277.289] {Default Queue} -> wl_surface#2919.set_input_region(wl_region#2943) -[2618277.294] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) -[2618277.298] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) -[2618277.306] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) -[2618277.311] {Default Queue} -> wl_surface#2919.commit() -[2618277.344] {Default Queue} -> wl_shm#2929.create_pool(new id wl_shm_pool#2945, fd 468, 640) -[2618277.351] {Default Queue} -> wl_shm#2929.create_pool(new id wl_shm_pool#2946, fd 469, 640) -[2618277.356] {Default Queue} -> wl_shm_pool#2945.create_buffer(new id wl_buffer#2947, 0, 10, 16, 40, 0) -[2618277.361] {Default Queue} -> wl_shm_pool#2946.create_buffer(new id wl_buffer#2948, 0, 10, 16, 40, 0) -[2618277.368] {Default Queue} -> wl_compositor#2924.create_surface(new id wl_surface#2949) -[2618277.372] {Default Queue} -> wl_surface#2949.attach(wl_buffer#2947, 0, 0) -[2618277.377] {Default Queue} -> wl_surface#2949.commit() -[2618277.382] {Default Queue} -> wl_surface#2949.attach(wl_buffer#2947, 0, 0) -[2618277.386] {Default Queue} -> wl_surface#2949.commit() -[2618277.394] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) -[2618277.404] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2950) -[2618277.409] {Default Queue} -> wl_display#1.sync(new id wl_callback#2951) -[2618280.393] {Default Queue} discarded wl_surface#2887.enter(wl_output#2745) -[2618280.407] {Default Queue} discarded wl_surface#2887.enter(wl_output#2777) -[2618280.413] {Default Queue} discarded wl_surface#2887.enter(wl_output#2809) -[2618280.419] {Default Queue} discarded wl_surface#2887.enter(wl_output#2841) -[2618280.424] {Default Queue} discarded wl_surface#2887.enter(wl_output#2873) -[2618280.430] {Default Queue} discarded wl_surface#2887.enter(wl_output#2905) -[2618280.795] {Display Queue} wl_display#1.delete_id(2951) -[2618280.807] {Default Queue} wl_keyboard#2920.keymap(1, fd 464, 68213) -[2618280.814] {Default Queue} wl_keyboard#2920.enter(566, wl_surface#19, array[0]) -[2618280.821] {Default Queue} wl_keyboard#2920.modifiers(566, 0, 0, 16, 0) -[2618280.828] {Default Queue} discarded wl_shm#2927.format(875709016) -[2618280.833] {Default Queue} discarded wl_shm#2927.format(1) -[2618280.839] {Default Queue} discarded wl_shm#2927.format(0) -[2618280.844] {Default Queue} discarded wl_shm#2927.format(875708993) -[2618280.850] {Default Queue} discarded wl_shm#2928.format(875709016) -[2618280.855] {Default Queue} discarded wl_shm#2928.format(1) -[2618280.867] {Default Queue} discarded wl_shm#2928.format(0) -[2618280.873] {Default Queue} discarded wl_shm#2928.format(875708993) -[2618280.878] {Default Queue} discarded wl_shm#2929.format(875709016) -[2618280.883] {Default Queue} discarded wl_shm#2929.format(1) -[2618280.889] {Default Queue} discarded wl_shm#2929.format(0) -[2618280.893] {Default Queue} discarded wl_shm#2929.format(875708993) -[2618280.898] {Default Queue} wl_seat#2936.capabilities(7) -[2618280.904] {Default Queue} -> wl_seat#2936.get_keyboard(new id wl_keyboard#2952) -[2618280.911] {Default Queue} -> wl_seat#2936.get_pointer(new id wl_pointer#2953) -[2618280.917] {Default Queue} -> wl_data_device_manager#2932.get_data_device(new id wl_data_device#2954, wl_seat#2936) -[2618280.924] {Default Queue} -> zwp_primary_selection_device_manager_v1#2934.get_device(new id zwp_primary_selection_device_v1#2955, wl_seat#2936) -[2618280.935] {Default Queue} wl_output#2937.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618280.942] {Default Queue} wl_output#2937.mode(3, 1280, 800, 60000) -[2618280.948] {Default Queue} discarded wl_surface#2727.enter(wl_output#2937) -[2618280.953] {Default Queue} discarded wl_surface#3.enter(wl_output#2937) -[2618280.959] {Default Queue} discarded wl_surface#999.enter(wl_output#2937) -[2618280.964] {Default Queue} discarded wl_surface#1191.enter(wl_output#2937) -[2618280.970] {Default Queue} discarded wl_surface#1159.enter(wl_output#2937) -[2618280.975] {Default Queue} discarded wl_surface#1703.enter(wl_output#2937) -[2618280.980] {Default Queue} discarded wl_surface#2215.enter(wl_output#2937) -[2618280.986] {Default Queue} discarded wl_surface#423.enter(wl_output#2937) -[2618280.991] {Default Queue} discarded wl_surface#1447.enter(wl_output#2937) -[2618280.997] {Default Queue} discarded wl_surface#2023.enter(wl_output#2937) -[2618281.002] {Default Queue} discarded wl_surface#1639.enter(wl_output#2937) -[2618281.008] {Default Queue} discarded wl_surface#1319.enter(wl_output#2937) -[2618281.013] {Default Queue} discarded wl_surface#1127.enter(wl_output#2937) -[2618281.019] {Default Queue} discarded wl_surface#2151.enter(wl_output#2937) -[2618281.024] {Default Queue} discarded wl_surface#2375.enter(wl_output#2937) -[2618281.030] {Default Queue} discarded wl_surface#2695.enter(wl_output#2937) -[2618281.035] {Default Queue} discarded wl_surface#1063.enter(wl_output#2937) -[2618281.041] {Default Queue} discarded wl_surface#455.enter(wl_output#2937) -[2618281.046] {Default Queue} discarded wl_surface#1575.enter(wl_output#2937) -[2618281.052] {Default Queue} discarded wl_surface#1799.enter(wl_output#2937) -[2618281.057] {Default Queue} discarded wl_surface#1415.enter(wl_output#2937) -[2618281.062] {Default Queue} discarded wl_surface#2439.enter(wl_output#2937) -[2618281.074] {Default Queue} discarded wl_surface#2279.enter(wl_output#2937) -[2618281.084] {Default Queue} discarded wl_surface#1831.enter(wl_output#2937) -[2618281.089] {Default Queue} discarded wl_surface#903.enter(wl_output#2937) -[2618281.095] {Default Queue} discarded wl_surface#2663.enter(wl_output#2937) -[2618281.100] {Default Queue} discarded wl_surface#775.enter(wl_output#2937) -[2618281.106] {Default Queue} discarded wl_surface#1991.enter(wl_output#2937) -[2618281.111] {Default Queue} discarded wl_surface#1543.enter(wl_output#2937) -[2618281.117] {Default Queue} discarded wl_surface#135.enter(wl_output#2937) -[2618281.122] {Default Queue} discarded wl_surface#1287.enter(wl_output#2937) -[2618281.127] {Default Queue} discarded wl_surface#1031.enter(wl_output#2937) -[2618281.132] {Default Queue} discarded wl_surface#615.enter(wl_output#2937) -[2618281.138] {Default Queue} discarded wl_surface#231.enter(wl_output#2937) -[2618281.143] {Default Queue} discarded wl_surface#2343.enter(wl_output#2937) -[2618281.148] {Default Queue} discarded wl_surface#1863.enter(wl_output#2937) -[2618281.153] {Default Queue} discarded wl_surface#359.enter(wl_output#2937) -[2618281.158] {Default Queue} discarded wl_surface#583.enter(wl_output#2937) -[2618281.164] {Default Queue} discarded wl_surface#743.enter(wl_output#2937) -[2618281.168] {Default Queue} discarded wl_surface#2535.enter(wl_output#2937) -[2618281.174] {Default Queue} discarded wl_surface#967.enter(wl_output#2937) -[2618281.179] {Default Queue} discarded wl_surface#103.enter(wl_output#2937) -[2618281.184] {Default Queue} discarded wl_surface#327.enter(wl_output#2937) -[2618281.189] {Default Queue} discarded wl_surface#43.enter(wl_output#2937) -[2618281.195] {Default Queue} discarded wl_surface#2247.enter(wl_output#2937) -[2618281.199] {Default Queue} discarded wl_surface#807.enter(wl_output#2937) -[2618281.205] {Default Queue} discarded wl_surface#19.enter(wl_output#2937) -[2618281.210] {Default Queue} discarded wl_surface#1511.enter(wl_output#2937) -[2618281.215] {Default Queue} discarded wl_surface#199.enter(wl_output#2937) -[2618281.220] {Default Queue} discarded wl_surface#391.enter(wl_output#2937) -[2618281.225] {Default Queue} discarded wl_surface#935.enter(wl_output#2937) -[2618281.230] {Default Queue} discarded wl_surface#2823.enter(wl_output#2937) -[2618281.236] {Default Queue} discarded wl_surface#1671.enter(wl_output#2937) -[2618281.241] {Default Queue} discarded wl_surface#1351.enter(wl_output#2937) -[2618281.246] {Default Queue} discarded wl_surface#711.enter(wl_output#2937) -[2618281.251] {Default Queue} discarded wl_surface#1223.enter(wl_output#2937) -[2618281.256] {Default Queue} discarded wl_surface#1927.enter(wl_output#2937) -[2618281.262] {Default Queue} discarded wl_surface#871.enter(wl_output#2937) -[2618281.267] {Default Queue} discarded wl_surface#1895.enter(wl_output#2937) -[2618281.272] {Default Queue} discarded wl_surface#263.enter(wl_output#2937) -[2618281.277] {Default Queue} discarded wl_surface#551.enter(wl_output#2937) -[2618281.283] {Default Queue} discarded wl_surface#1735.enter(wl_output#2937) -[2618281.288] {Default Queue} discarded wl_surface#1479.enter(wl_output#2937) -[2618281.293] {Default Queue} discarded wl_surface#1772.enter(wl_output#2937) -[2618281.299] {Default Queue} discarded wl_surface#2599.enter(wl_output#2937) -[2618281.303] {Default Queue} discarded wl_surface#2631.enter(wl_output#2937) -[2618281.307] {Default Queue} discarded wl_surface#1959.enter(wl_output#2937) -[2618281.311] {Default Queue} discarded wl_surface#647.enter(wl_output#2937) -[2618281.315] {Default Queue} discarded wl_surface#2055.enter(wl_output#2937) -[2618281.318] {Default Queue} discarded wl_surface#2508.enter(wl_output#2937) -[2618281.323] {Default Queue} discarded wl_surface#71.enter(wl_output#2937) -[2618281.327] {Default Queue} discarded wl_surface#2759.enter(wl_output#2937) -[2618281.331] {Default Queue} discarded wl_surface#2791.enter(wl_output#2937) -[2618281.335] {Default Queue} discarded wl_surface#2887.enter(wl_output#2937) -[2618281.339] {Default Queue} discarded wl_surface#2183.enter(wl_output#2937) -[2618281.347] {Default Queue} discarded wl_surface#2567.enter(wl_output#2937) -[2618281.353] {Default Queue} discarded wl_surface#839.enter(wl_output#2937) -[2618281.357] {Default Queue} discarded wl_surface#1607.enter(wl_output#2937) -[2618281.361] {Default Queue} discarded wl_surface#1095.enter(wl_output#2937) -[2618281.365] {Default Queue} discarded wl_surface#1383.enter(wl_output#2937) -[2618281.369] {Default Queue} discarded wl_surface#487.enter(wl_output#2937) -[2618281.373] {Default Queue} discarded wl_surface#2311.enter(wl_output#2937) -[2618281.376] {Default Queue} discarded wl_surface#519.enter(wl_output#2937) -[2618281.380] {Default Queue} discarded wl_surface#2087.enter(wl_output#2937) -[2618281.384] {Default Queue} discarded wl_surface#2471.enter(wl_output#2937) -[2618281.388] {Default Queue} discarded wl_surface#295.enter(wl_output#2937) -[2618281.392] {Default Queue} discarded wl_surface#167.enter(wl_output#2937) -[2618281.396] {Default Queue} discarded wl_surface#1255.enter(wl_output#2937) -[2618281.400] {Default Queue} discarded wl_surface#2855.enter(wl_output#2937) -[2618281.404] {Default Queue} discarded wl_surface#679.enter(wl_output#2937) -[2618281.408] {Default Queue} discarded wl_surface#2407.enter(wl_output#2937) -[2618281.412] {Default Queue} discarded wl_surface#2119.enter(wl_output#2937) -[2618281.416] {Default Queue} wl_registry#2950.global(1, "wl_compositor", 6) -[2618281.422] {Default Queue} -> wl_registry#2950.bind(1, "wl_compositor", 1, new id [unknown]#2956) -[2618281.427] {Default Queue} wl_registry#2950.global(2, "wl_subcompositor", 1) -[2618281.432] {Default Queue} -> wl_registry#2950.bind(2, "wl_subcompositor", 1, new id [unknown]#2957) -[2618281.437] {Default Queue} wl_registry#2950.global(3, "xdg_wm_base", 6) -[2618281.442] {Default Queue} -> wl_registry#2950.bind(3, "xdg_wm_base", 1, new id [unknown]#2958) -[2618281.446] {Default Queue} wl_registry#2950.global(6, "zwlr_layer_shell_v1", 5) -[2618281.451] {Default Queue} wl_registry#2950.global(7, "ext_session_lock_manager_v1", 1) -[2618281.456] {Default Queue} wl_registry#2950.global(8, "wl_shm", 2) -[2618281.461] {Default Queue} -> wl_registry#2950.bind(8, "wl_shm", 1, new id [unknown]#2959) -[2618281.465] {Default Queue} -> wl_registry#2950.bind(8, "wl_shm", 1, new id [unknown]#2960) -[2618281.469] {Default Queue} -> wl_registry#2950.bind(8, "wl_shm", 1, new id [unknown]#2961) -[2618281.474] {Default Queue} wl_registry#2950.global(9, "zxdg_output_manager_v1", 3) -[2618281.478] {Default Queue} wl_registry#2950.global(10, "wp_fractional_scale_manager_v1", 1) -[2618281.483] {Default Queue} wl_registry#2950.global(11, "zwp_tablet_manager_v2", 1) -[2618281.487] {Default Queue} wl_registry#2950.global(12, "zwp_pointer_gestures_v1", 3) -[2618281.494] {Default Queue} wl_registry#2950.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618281.499] {Default Queue} -> wl_registry#2950.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2962) -[2618281.503] {Default Queue} wl_registry#2950.global(14, "zwp_pointer_constraints_v1", 1) -[2618281.508] {Default Queue} -> wl_registry#2950.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2963) -[2618281.512] {Default Queue} wl_registry#2950.global(15, "ext_idle_notifier_v1", 2) -[2618281.517] {Default Queue} wl_registry#2950.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618281.521] {Default Queue} wl_registry#2950.global(17, "wl_data_device_manager", 3) -[2618281.526] {Default Queue} -> wl_registry#2950.bind(17, "wl_data_device_manager", 2, new id [unknown]#2964) -[2618281.531] {Default Queue} -> wl_data_device_manager#2964.create_data_source(new id wl_data_source#2965) -[2618281.535] {Default Queue} -> wl_data_source#2965.offer("text/plain") -[2618281.539] {Default Queue} -> wl_data_source#2965.offer("text/plain;charset=utf-8") -[2618281.543] {Default Queue} -> wl_data_source#2965.offer("TEXT") -[2618281.548] {Default Queue} -> wl_data_source#2965.offer("STRING") -[2618281.552] {Default Queue} -> wl_data_source#2965.offer("UTF8_STRING") -[2618281.559] {Default Queue} wl_registry#2950.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618281.565] {Default Queue} -> wl_registry#2950.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2966) -[2618281.573] {Default Queue} -> zwp_primary_selection_device_manager_v1#2966.create_source(new id zwp_primary_selection_source_v1#2967) -[2618281.580] {Default Queue} -> zwp_primary_selection_source_v1#2967.offer("text/plain") -[2618281.585] {Default Queue} -> zwp_primary_selection_source_v1#2967.offer("text/plain;charset=utf-8") -[2618281.589] {Default Queue} -> zwp_primary_selection_source_v1#2967.offer("TEXT") -[2618281.593] {Default Queue} -> zwp_primary_selection_source_v1#2967.offer("STRING") -[2618281.597] {Default Queue} -> zwp_primary_selection_source_v1#2967.offer("UTF8_STRING") -[2618281.601] {Default Queue} wl_registry#2950.global(19, "zwlr_data_control_manager_v1", 2) -[2618281.605] {Default Queue} wl_registry#2950.global(20, "ext_data_control_manager_v1", 1) -[2618281.610] {Default Queue} wl_registry#2950.global(21, "wp_presentation", 2) -[2618281.615] {Default Queue} wl_registry#2950.global(22, "wp_security_context_manager_v1", 1) -[2618281.619] {Default Queue} wl_registry#2950.global(23, "zwp_text_input_manager_v3", 1) -[2618281.623] {Default Queue} wl_registry#2950.global(24, "zwp_input_method_manager_v2", 1) -[2618281.627] {Default Queue} wl_registry#2950.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618281.632] {Default Queue} wl_registry#2950.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618281.636] {Default Queue} wl_registry#2950.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618281.640] {Default Queue} wl_registry#2950.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618281.645] {Default Queue} wl_registry#2950.global(29, "ext_workspace_manager_v1", 1) -[2618281.649] {Default Queue} wl_registry#2950.global(30, "zwlr_output_manager_v1", 4) -[2618281.654] {Default Queue} wl_registry#2950.global(31, "zwlr_screencopy_manager_v1", 3) -[2618281.658] {Default Queue} wl_registry#2950.global(32, "wp_viewporter", 1) -[2618281.664] {Default Queue} wl_registry#2950.global(33, "zxdg_exporter_v2", 1) -[2618281.668] {Default Queue} wl_registry#2950.global(34, "zxdg_importer_v2", 1) -[2618281.672] {Default Queue} wl_registry#2950.global(36, "xdg_activation_v1", 1) -[2618281.676] {Default Queue} wl_registry#2950.global(37, "mutter_x11_interop", 1) -[2618281.681] {Default Queue} wl_registry#2950.global(38, "wl_seat", 9) -[2618281.685] {Default Queue} -> wl_registry#2950.bind(38, "wl_seat", 1, new id [unknown]#2968) -[2618281.690] {Default Queue} wl_registry#2950.global(39, "wp_cursor_shape_manager_v1", 2) -[2618281.694] {Default Queue} wl_registry#2950.global(40, "wl_output", 4) -[2618281.699] {Default Queue} -> wl_registry#2950.bind(40, "wl_output", 1, new id [unknown]#2969) -[2618281.703] {Default Queue} wl_callback#2951.done(0) -[2618281.707] {Default Queue} discarded wl_surface#2919.enter(wl_output#18) -[2618281.712] {Default Queue} discarded wl_surface#2919.enter(wl_output#57) -[2618281.716] {Default Queue} discarded wl_surface#2919.enter(wl_output#89) -[2618281.720] {Default Queue} discarded wl_surface#2919.enter(wl_output#121) -[2618281.724] {Default Queue} discarded wl_surface#2919.enter(wl_output#153) -[2618281.728] {Default Queue} discarded wl_surface#2919.enter(wl_output#185) -[2618281.732] {Default Queue} discarded wl_surface#2919.enter(wl_output#217) -[2618281.736] {Default Queue} discarded wl_surface#2919.enter(wl_output#249) -[2618281.740] {Default Queue} discarded wl_surface#2919.enter(wl_output#281) -[2618281.744] {Default Queue} discarded wl_surface#2919.enter(wl_output#313) -[2618281.748] {Default Queue} discarded wl_surface#2919.enter(wl_output#345) -[2618281.752] {Default Queue} discarded wl_surface#2919.enter(wl_output#377) -[2618281.756] {Default Queue} discarded wl_surface#2919.enter(wl_output#409) -[2618281.759] {Default Queue} discarded wl_surface#2919.enter(wl_output#441) -[2618281.763] {Default Queue} discarded wl_surface#2919.enter(wl_output#473) -[2618281.767] {Default Queue} discarded wl_surface#2919.enter(wl_output#505) -[2618281.774] {Default Queue} discarded wl_surface#2919.enter(wl_output#537) -[2618281.779] {Default Queue} discarded wl_surface#2919.enter(wl_output#569) -[2618281.783] {Default Queue} discarded wl_surface#2919.enter(wl_output#601) -[2618281.787] {Default Queue} discarded wl_surface#2919.enter(wl_output#633) -[2618281.791] {Default Queue} discarded wl_surface#2919.enter(wl_output#665) -[2618281.796] {Default Queue} discarded wl_surface#2919.enter(wl_output#697) -[2618281.800] {Default Queue} discarded wl_surface#2919.enter(wl_output#729) -[2618281.803] {Default Queue} discarded wl_surface#2919.enter(wl_output#761) -[2618281.807] {Default Queue} discarded wl_surface#2919.enter(wl_output#793) -[2618281.811] {Default Queue} discarded wl_surface#2919.enter(wl_output#825) -[2618281.815] {Default Queue} discarded wl_surface#2919.enter(wl_output#857) -[2618281.819] {Default Queue} discarded wl_surface#2919.enter(wl_output#889) -[2618281.823] {Default Queue} discarded wl_surface#2919.enter(wl_output#921) -[2618281.827] {Default Queue} discarded wl_surface#2919.enter(wl_output#953) -[2618281.831] {Default Queue} discarded wl_surface#2919.enter(wl_output#985) -[2618281.835] {Default Queue} discarded wl_surface#2919.enter(wl_output#1017) -[2618281.839] {Default Queue} discarded wl_surface#2919.enter(wl_output#1049) -[2618281.843] {Default Queue} discarded wl_surface#2919.enter(wl_output#1081) -[2618281.847] {Default Queue} discarded wl_surface#2919.enter(wl_output#1113) -[2618281.851] {Default Queue} discarded wl_surface#2919.enter(wl_output#1145) -[2618281.855] {Default Queue} discarded wl_surface#2919.enter(wl_output#1177) -[2618281.860] {Default Queue} discarded wl_surface#2919.enter(wl_output#1209) -[2618281.872] {Default Queue} discarded wl_surface#2919.enter(wl_output#1241) -[2618281.877] {Default Queue} discarded wl_surface#2919.enter(wl_output#1273) -[2618281.883] {Default Queue} discarded wl_surface#2919.enter(wl_output#1305) -[2618281.888] {Default Queue} discarded wl_surface#2919.enter(wl_output#1337) -[2618281.894] {Default Queue} discarded wl_surface#2919.enter(wl_output#1369) -[2618281.900] {Default Queue} discarded wl_surface#2919.enter(wl_output#1401) -[2618281.905] {Default Queue} discarded wl_surface#2919.enter(wl_output#1433) -[2618281.910] {Default Queue} discarded wl_surface#2919.enter(wl_output#1465) -[2618281.914] {Default Queue} discarded wl_surface#2919.enter(wl_output#1497) -[2618281.918] {Default Queue} discarded wl_surface#2919.enter(wl_output#1529) -[2618281.922] {Default Queue} discarded wl_surface#2919.enter(wl_output#1561) -[2618281.926] {Default Queue} discarded wl_surface#2919.enter(wl_output#1593) -[2618281.930] {Default Queue} discarded wl_surface#2919.enter(wl_output#1625) -[2618281.934] {Default Queue} discarded wl_surface#2919.enter(wl_output#1657) -[2618281.939] {Default Queue} discarded wl_surface#2919.enter(wl_output#1689) -[2618281.943] {Default Queue} discarded wl_surface#2919.enter(wl_output#1721) -[2618281.947] {Default Queue} discarded wl_surface#2919.enter(wl_output#1753) -[2618281.951] {Default Queue} discarded wl_surface#2919.enter(wl_output#1785) -[2618281.955] {Default Queue} discarded wl_surface#2919.enter(wl_output#1817) -[2618281.959] {Default Queue} discarded wl_surface#2919.enter(wl_output#1849) -[2618281.963] {Default Queue} discarded wl_surface#2919.enter(wl_output#1881) -[2618281.968] {Default Queue} discarded wl_surface#2919.enter(wl_output#1913) -[2618281.972] {Default Queue} discarded wl_surface#2919.enter(wl_output#1945) -[2618281.976] {Default Queue} discarded wl_surface#2919.enter(wl_output#1977) -[2618281.980] {Default Queue} discarded wl_surface#2919.enter(wl_output#2009) -[2618281.984] {Default Queue} discarded wl_surface#2919.enter(wl_output#2041) -[2618281.989] {Default Queue} discarded wl_surface#2919.enter(wl_output#2073) -[2618281.993] {Default Queue} discarded wl_surface#2919.enter(wl_output#2105) -[2618281.997] {Default Queue} discarded wl_surface#2919.enter(wl_output#2137) -[2618282.000] {Default Queue} discarded wl_surface#2919.enter(wl_output#2169) -[2618282.008] {Default Queue} discarded wl_surface#2919.enter(wl_output#2201) -[2618282.013] {Default Queue} discarded wl_surface#2919.enter(wl_output#2233) -[2618282.018] {Default Queue} discarded wl_surface#2919.enter(wl_output#2265) -[2618282.021] {Default Queue} discarded wl_surface#2919.enter(wl_output#2297) -[2618282.025] {Default Queue} discarded wl_surface#2919.enter(wl_output#2329) -[2618282.029] {Default Queue} discarded wl_surface#2919.enter(wl_output#2361) -[2618282.033] {Default Queue} discarded wl_surface#2919.enter(wl_output#2393) -[2618282.037] {Default Queue} discarded wl_surface#2919.enter(wl_output#2425) -[2618282.042] {Default Queue} discarded wl_surface#2919.enter(wl_output#2457) -[2618282.046] {Default Queue} discarded wl_surface#2919.enter(wl_output#2489) -[2618282.050] {Default Queue} discarded wl_surface#2919.enter(wl_output#2521) -[2618282.054] {Default Queue} discarded wl_surface#2919.enter(wl_output#2553) -[2618282.058] {Default Queue} discarded wl_surface#2919.enter(wl_output#2585) -[2618282.061] {Default Queue} discarded wl_surface#2919.enter(wl_output#2617) -[2618282.065] {Default Queue} discarded wl_surface#2919.enter(wl_output#2649) -[2618282.069] {Default Queue} discarded wl_surface#2919.enter(wl_output#2681) -[2618282.074] {Default Queue} -> wl_compositor#2924.create_surface(new id wl_surface#2951) -[2618282.078] {Default Queue} -> wl_subcompositor#2957.get_subsurface(new id wl_subsurface#2970, wl_surface#2951, wl_surface#2919) -[2618282.087] {Default Queue} -> wl_subsurface#2970.set_desync() -[2618282.091] {Default Queue} -> wl_subsurface#2970.set_position(0, 0) -[2618282.097] {Default Queue} -> wl_subsurface#2970.place_above(wl_surface#2919) -[2618282.145] {Default Queue} -> wl_shm#2959.create_pool(new id wl_shm_pool#2971, fd 469, 16) -[2618282.152] {Default Queue} -> wl_shm#2959.create_pool(new id wl_shm_pool#2972, fd 470, 16) -[2618282.157] {Default Queue} -> wl_shm_pool#2971.create_buffer(new id wl_buffer#2973, 0, 2, 2, 8, 0) -[2618282.162] {Default Queue} -> wl_shm_pool#2972.create_buffer(new id wl_buffer#2974, 0, 2, 2, 8, 0) -[2618282.170] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) -[2618282.175] {Default Queue} -> wl_surface#2951.commit() -[2618282.180] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) -[2618282.185] {Default Queue} -> wl_surface#2951.commit() -[2618282.189] {Default Queue} -> wl_compositor#2956.create_region(new id wl_region#2975) -[2618282.193] {Default Queue} -> wl_compositor#2956.create_region(new id wl_region#2976) -[2618282.197] {Default Queue} -> wl_region#2975.subtract(0, 0, 2, 2) -[2618282.202] {Default Queue} -> wl_region#2975.add(0, 0, 0, 0) -[2618282.206] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618282.210] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618282.214] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) -[2618282.219] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) -[2618282.227] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) -[2618282.231] {Default Queue} -> wl_surface#2951.commit() -[2618282.262] {Default Queue} -> wl_shm#2961.create_pool(new id wl_shm_pool#2977, fd 473, 640) -[2618282.269] {Default Queue} -> wl_shm#2961.create_pool(new id wl_shm_pool#2978, fd 474, 640) -[2618282.273] {Default Queue} -> wl_shm_pool#2977.create_buffer(new id wl_buffer#2979, 0, 10, 16, 40, 0) -[2618282.278] {Default Queue} -> wl_shm_pool#2978.create_buffer(new id wl_buffer#2980, 0, 10, 16, 40, 0) -[2618282.285] {Default Queue} -> wl_compositor#2956.create_surface(new id wl_surface#2981) -[2618282.290] {Default Queue} -> wl_surface#2981.attach(wl_buffer#2979, 0, 0) -[2618282.294] {Default Queue} -> wl_surface#2981.commit() -[2618282.300] {Default Queue} -> wl_surface#2981.attach(wl_buffer#2979, 0, 0) -[2618282.304] {Default Queue} -> wl_surface#2981.commit() -[2618282.315] {Default Queue} -> wl_region#2879.subtract(0, 0, 2, 2) -[2618282.320] {Default Queue} -> wl_subsurface#2874.set_position(3, 3) -[2618282.325] {Default Queue} -> wl_region#2879.subtract(0, 0, 5, 5) -[2618282.332] {Default Queue} -> wl_region#2879.add(0, 0, 0, 0) -[2618282.339] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) -[2618282.343] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) -[2618282.347] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618282.352] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) -[2618282.356] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) -[2618282.361] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) -[2618282.368] {Default Queue} -> wl_region#2879.subtract(0, 0, 5, 5) -[2618282.373] {Default Queue} -> wl_region#2879.add(0, 0, 0, 0) -[2618282.377] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) -[2618282.381] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) -[2618282.387] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2877, 0, 0) -[2618282.391] {Default Queue} -> wl_surface#2855.commit() -[2618282.398] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2982) -[2618282.403] {Default Queue} -> wl_display#1.sync(new id wl_callback#2983) -[2618286.117] {Default Queue} discarded wl_surface#2919.enter(wl_output#2713) -[2618286.125] {Default Queue} discarded wl_surface#2919.enter(wl_output#2745) -[2618286.130] {Default Queue} discarded wl_surface#2919.enter(wl_output#2777) -[2618286.135] {Default Queue} discarded wl_surface#2919.enter(wl_output#2809) -[2618286.140] {Default Queue} discarded wl_surface#2919.enter(wl_output#2841) -[2618286.145] {Default Queue} discarded wl_surface#2919.enter(wl_output#2873) -[2618286.150] {Default Queue} discarded wl_surface#2919.enter(wl_output#2905) -[2618286.155] {Default Queue} discarded wl_surface#2919.enter(wl_output#2937) -[2618286.478] {Display Queue} wl_display#1.delete_id(2983) -[2618286.486] {Default Queue} wl_keyboard#2952.keymap(1, fd 469, 68213) -[2618286.491] {Default Queue} wl_keyboard#2952.enter(566, wl_surface#19, array[0]) -[2618286.498] {Default Queue} wl_keyboard#2952.modifiers(566, 0, 0, 16, 0) -[2618286.504] {Default Queue} discarded wl_shm#2959.format(875709016) -[2618286.509] {Default Queue} discarded wl_shm#2959.format(1) -[2618286.514] {Default Queue} discarded wl_shm#2959.format(0) -[2618286.519] {Default Queue} discarded wl_shm#2959.format(875708993) -[2618286.524] {Default Queue} discarded wl_shm#2960.format(875709016) -[2618286.529] {Default Queue} discarded wl_shm#2960.format(1) -[2618286.534] {Default Queue} discarded wl_shm#2960.format(0) -[2618286.538] {Default Queue} discarded wl_shm#2960.format(875708993) -[2618286.543] {Default Queue} discarded wl_shm#2961.format(875709016) -[2618286.548] {Default Queue} discarded wl_shm#2961.format(1) -[2618286.553] {Default Queue} discarded wl_shm#2961.format(0) -[2618286.558] {Default Queue} discarded wl_shm#2961.format(875708993) -[2618286.563] {Default Queue} wl_seat#2968.capabilities(7) -[2618286.568] {Default Queue} -> wl_seat#2968.get_keyboard(new id wl_keyboard#2984) -[2618286.574] {Default Queue} -> wl_seat#2968.get_pointer(new id wl_pointer#2985) -[2618286.580] {Default Queue} -> wl_data_device_manager#2964.get_data_device(new id wl_data_device#2986, wl_seat#2968) -[2618286.585] {Default Queue} -> zwp_primary_selection_device_manager_v1#2966.get_device(new id zwp_primary_selection_device_v1#2987, wl_seat#2968) -[2618286.595] {Default Queue} wl_output#2969.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618286.602] {Default Queue} wl_output#2969.mode(3, 1280, 800, 60000) -[2618286.608] {Default Queue} discarded wl_surface#2727.enter(wl_output#2969) -[2618286.613] {Default Queue} discarded wl_surface#3.enter(wl_output#2969) -[2618286.618] {Default Queue} discarded wl_surface#999.enter(wl_output#2969) -[2618286.623] {Default Queue} discarded wl_surface#1191.enter(wl_output#2969) -[2618286.628] {Default Queue} discarded wl_surface#1159.enter(wl_output#2969) -[2618286.633] {Default Queue} discarded wl_surface#1703.enter(wl_output#2969) -[2618286.638] {Default Queue} discarded wl_surface#2215.enter(wl_output#2969) -[2618286.643] {Default Queue} discarded wl_surface#423.enter(wl_output#2969) -[2618286.652] {Default Queue} discarded wl_surface#1447.enter(wl_output#2969) -[2618286.659] {Default Queue} discarded wl_surface#2023.enter(wl_output#2969) -[2618286.664] {Default Queue} discarded wl_surface#1639.enter(wl_output#2969) -[2618286.669] {Default Queue} discarded wl_surface#1319.enter(wl_output#2969) -[2618286.674] {Default Queue} discarded wl_surface#1127.enter(wl_output#2969) -[2618286.678] {Default Queue} discarded wl_surface#2151.enter(wl_output#2969) -[2618286.683] {Default Queue} discarded wl_surface#2375.enter(wl_output#2969) -[2618286.688] {Default Queue} discarded wl_surface#2695.enter(wl_output#2969) -[2618286.693] {Default Queue} discarded wl_surface#2919.enter(wl_output#2969) -[2618286.698] {Default Queue} discarded wl_surface#1063.enter(wl_output#2969) -[2618286.703] {Default Queue} discarded wl_surface#455.enter(wl_output#2969) -[2618286.708] {Default Queue} discarded wl_surface#1575.enter(wl_output#2969) -[2618286.712] {Default Queue} discarded wl_surface#1799.enter(wl_output#2969) -[2618286.717] {Default Queue} discarded wl_surface#1415.enter(wl_output#2969) -[2618286.722] {Default Queue} discarded wl_surface#2439.enter(wl_output#2969) -[2618286.727] {Default Queue} discarded wl_surface#2279.enter(wl_output#2969) -[2618286.732] {Default Queue} discarded wl_surface#1831.enter(wl_output#2969) -[2618286.737] {Default Queue} discarded wl_surface#903.enter(wl_output#2969) -[2618286.742] {Default Queue} discarded wl_surface#2663.enter(wl_output#2969) -[2618286.747] {Default Queue} discarded wl_surface#775.enter(wl_output#2969) -[2618286.751] {Default Queue} discarded wl_surface#1991.enter(wl_output#2969) -[2618286.756] {Default Queue} discarded wl_surface#1543.enter(wl_output#2969) -[2618286.761] {Default Queue} discarded wl_surface#135.enter(wl_output#2969) -[2618286.766] {Default Queue} discarded wl_surface#1287.enter(wl_output#2969) -[2618286.771] {Default Queue} discarded wl_surface#1031.enter(wl_output#2969) -[2618286.775] {Default Queue} discarded wl_surface#615.enter(wl_output#2969) -[2618286.780] {Default Queue} discarded wl_surface#231.enter(wl_output#2969) -[2618286.785] {Default Queue} discarded wl_surface#2343.enter(wl_output#2969) -[2618286.790] {Default Queue} discarded wl_surface#1863.enter(wl_output#2969) -[2618286.795] {Default Queue} discarded wl_surface#359.enter(wl_output#2969) -[2618286.800] {Default Queue} discarded wl_surface#583.enter(wl_output#2969) -[2618286.805] {Default Queue} discarded wl_surface#743.enter(wl_output#2969) -[2618286.809] {Default Queue} discarded wl_surface#2535.enter(wl_output#2969) -[2618286.814] {Default Queue} discarded wl_surface#967.enter(wl_output#2969) -[2618286.819] {Default Queue} discarded wl_surface#103.enter(wl_output#2969) -[2618286.824] {Default Queue} discarded wl_surface#327.enter(wl_output#2969) -[2618286.829] {Default Queue} discarded wl_surface#43.enter(wl_output#2969) -[2618286.834] {Default Queue} discarded wl_surface#2247.enter(wl_output#2969) -[2618286.839] {Default Queue} discarded wl_surface#807.enter(wl_output#2969) -[2618286.843] {Default Queue} discarded wl_surface#19.enter(wl_output#2969) -[2618286.848] {Default Queue} discarded wl_surface#1511.enter(wl_output#2969) -[2618286.853] {Default Queue} discarded wl_surface#199.enter(wl_output#2969) -[2618286.858] {Default Queue} discarded wl_surface#391.enter(wl_output#2969) -[2618286.873] {Default Queue} discarded wl_surface#935.enter(wl_output#2969) -[2618286.878] {Default Queue} discarded wl_surface#2823.enter(wl_output#2969) -[2618286.885] {Default Queue} discarded wl_surface#1671.enter(wl_output#2969) -[2618286.892] {Default Queue} discarded wl_surface#1351.enter(wl_output#2969) -[2618286.899] {Default Queue} discarded wl_surface#711.enter(wl_output#2969) -[2618286.905] {Default Queue} discarded wl_surface#1223.enter(wl_output#2969) -[2618286.913] {Default Queue} discarded wl_surface#1927.enter(wl_output#2969) -[2618286.920] {Default Queue} discarded wl_surface#871.enter(wl_output#2969) -[2618286.926] {Default Queue} discarded wl_surface#1895.enter(wl_output#2969) -[2618286.931] {Default Queue} discarded wl_surface#263.enter(wl_output#2969) -[2618286.940] {Default Queue} discarded wl_surface#551.enter(wl_output#2969) -[2618286.948] {Default Queue} discarded wl_surface#1735.enter(wl_output#2969) -[2618286.953] {Default Queue} discarded wl_surface#1479.enter(wl_output#2969) -[2618286.958] {Default Queue} discarded wl_surface#1772.enter(wl_output#2969) -[2618286.963] {Default Queue} discarded wl_surface#2599.enter(wl_output#2969) -[2618286.967] {Default Queue} discarded wl_surface#2631.enter(wl_output#2969) -[2618286.972] {Default Queue} discarded wl_surface#1959.enter(wl_output#2969) -[2618286.977] {Default Queue} discarded wl_surface#647.enter(wl_output#2969) -[2618286.983] {Default Queue} discarded wl_surface#2055.enter(wl_output#2969) -[2618286.987] {Default Queue} discarded wl_surface#2508.enter(wl_output#2969) -[2618286.992] {Default Queue} discarded wl_surface#71.enter(wl_output#2969) -[2618286.998] {Default Queue} discarded wl_surface#2759.enter(wl_output#2969) -[2618287.002] {Default Queue} discarded wl_surface#2791.enter(wl_output#2969) -[2618287.007] {Default Queue} discarded wl_surface#2887.enter(wl_output#2969) -[2618287.012] {Default Queue} discarded wl_surface#2183.enter(wl_output#2969) -[2618287.017] {Default Queue} discarded wl_surface#2567.enter(wl_output#2969) -[2618287.022] {Default Queue} discarded wl_surface#839.enter(wl_output#2969) -[2618287.027] {Default Queue} discarded wl_surface#1607.enter(wl_output#2969) -[2618287.032] {Default Queue} discarded wl_surface#1095.enter(wl_output#2969) -[2618287.037] {Default Queue} discarded wl_surface#1383.enter(wl_output#2969) -[2618287.042] {Default Queue} discarded wl_surface#487.enter(wl_output#2969) -[2618287.047] {Default Queue} discarded wl_surface#2311.enter(wl_output#2969) -[2618287.052] {Default Queue} discarded wl_surface#519.enter(wl_output#2969) -[2618287.057] {Default Queue} discarded wl_surface#2087.enter(wl_output#2969) -[2618287.062] {Default Queue} discarded wl_surface#2471.enter(wl_output#2969) -[2618287.066] {Default Queue} discarded wl_surface#295.enter(wl_output#2969) -[2618287.071] {Default Queue} discarded wl_surface#167.enter(wl_output#2969) -[2618287.076] {Default Queue} discarded wl_surface#1255.enter(wl_output#2969) -[2618287.081] {Default Queue} discarded wl_surface#2855.enter(wl_output#2969) -[2618287.086] {Default Queue} discarded wl_surface#679.enter(wl_output#2969) -[2618287.091] {Default Queue} discarded wl_surface#2407.enter(wl_output#2969) -[2618287.096] {Default Queue} discarded wl_surface#2119.enter(wl_output#2969) -[2618287.101] {Default Queue} wl_registry#2982.global(1, "wl_compositor", 6) -[2618287.108] {Default Queue} -> wl_registry#2982.bind(1, "wl_compositor", 1, new id [unknown]#2988) -[2618287.115] {Default Queue} wl_registry#2982.global(2, "wl_subcompositor", 1) -[2618287.121] {Default Queue} -> wl_registry#2982.bind(2, "wl_subcompositor", 1, new id [unknown]#2989) -[2618287.126] {Default Queue} wl_registry#2982.global(3, "xdg_wm_base", 6) -[2618287.133] {Default Queue} -> wl_registry#2982.bind(3, "xdg_wm_base", 1, new id [unknown]#2990) -[2618287.138] {Default Queue} wl_registry#2982.global(6, "zwlr_layer_shell_v1", 5) -[2618287.144] {Default Queue} wl_registry#2982.global(7, "ext_session_lock_manager_v1", 1) -[2618287.149] {Default Queue} wl_registry#2982.global(8, "wl_shm", 2) -[2618287.156] {Default Queue} -> wl_registry#2982.bind(8, "wl_shm", 1, new id [unknown]#2991) -[2618287.161] {Default Queue} -> wl_registry#2982.bind(8, "wl_shm", 1, new id [unknown]#2992) -[2618287.167] {Default Queue} -> wl_registry#2982.bind(8, "wl_shm", 1, new id [unknown]#2993) -[2618287.172] {Default Queue} wl_registry#2982.global(9, "zxdg_output_manager_v1", 3) -[2618287.177] {Default Queue} wl_registry#2982.global(10, "wp_fractional_scale_manager_v1", 1) -[2618287.183] {Default Queue} wl_registry#2982.global(11, "zwp_tablet_manager_v2", 1) -[2618287.188] {Default Queue} wl_registry#2982.global(12, "zwp_pointer_gestures_v1", 3) -[2618287.194] {Default Queue} wl_registry#2982.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618287.199] {Default Queue} -> wl_registry#2982.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#2994) -[2618287.210] {Default Queue} wl_registry#2982.global(14, "zwp_pointer_constraints_v1", 1) -[2618287.218] {Default Queue} -> wl_registry#2982.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#2995) -[2618287.224] {Default Queue} wl_registry#2982.global(15, "ext_idle_notifier_v1", 2) -[2618287.230] {Default Queue} wl_registry#2982.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618287.238] {Default Queue} wl_registry#2982.global(17, "wl_data_device_manager", 3) -[2618287.244] {Default Queue} -> wl_registry#2982.bind(17, "wl_data_device_manager", 2, new id [unknown]#2996) -[2618287.249] {Default Queue} -> wl_data_device_manager#2996.create_data_source(new id wl_data_source#2997) -[2618287.254] {Default Queue} -> wl_data_source#2997.offer("text/plain") -[2618287.258] {Default Queue} -> wl_data_source#2997.offer("text/plain;charset=utf-8") -[2618287.262] {Default Queue} -> wl_data_source#2997.offer("TEXT") -[2618287.267] {Default Queue} -> wl_data_source#2997.offer("STRING") -[2618287.272] {Default Queue} -> wl_data_source#2997.offer("UTF8_STRING") -[2618287.276] {Default Queue} wl_registry#2982.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618287.282] {Default Queue} -> wl_registry#2982.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#2998) -[2618287.289] {Default Queue} -> zwp_primary_selection_device_manager_v1#2998.create_source(new id zwp_primary_selection_source_v1#2999) -[2618287.297] {Default Queue} -> zwp_primary_selection_source_v1#2999.offer("text/plain") -[2618287.301] {Default Queue} -> zwp_primary_selection_source_v1#2999.offer("text/plain;charset=utf-8") -[2618287.305] {Default Queue} -> zwp_primary_selection_source_v1#2999.offer("TEXT") -[2618287.309] {Default Queue} -> zwp_primary_selection_source_v1#2999.offer("STRING") -[2618287.314] {Default Queue} -> zwp_primary_selection_source_v1#2999.offer("UTF8_STRING") -[2618287.318] {Default Queue} wl_registry#2982.global(19, "zwlr_data_control_manager_v1", 2) -[2618287.322] {Default Queue} wl_registry#2982.global(20, "ext_data_control_manager_v1", 1) -[2618287.327] {Default Queue} wl_registry#2982.global(21, "wp_presentation", 2) -[2618287.332] {Default Queue} wl_registry#2982.global(22, "wp_security_context_manager_v1", 1) -[2618287.336] {Default Queue} wl_registry#2982.global(23, "zwp_text_input_manager_v3", 1) -[2618287.340] {Default Queue} wl_registry#2982.global(24, "zwp_input_method_manager_v2", 1) -[2618287.345] {Default Queue} wl_registry#2982.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618287.349] {Default Queue} wl_registry#2982.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618287.354] {Default Queue} wl_registry#2982.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618287.358] {Default Queue} wl_registry#2982.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618287.362] {Default Queue} wl_registry#2982.global(29, "ext_workspace_manager_v1", 1) -[2618287.367] {Default Queue} wl_registry#2982.global(30, "zwlr_output_manager_v1", 4) -[2618287.371] {Default Queue} wl_registry#2982.global(31, "zwlr_screencopy_manager_v1", 3) -[2618287.375] {Default Queue} wl_registry#2982.global(32, "wp_viewporter", 1) -[2618287.379] {Default Queue} wl_registry#2982.global(33, "zxdg_exporter_v2", 1) -[2618287.384] {Default Queue} wl_registry#2982.global(34, "zxdg_importer_v2", 1) -[2618287.388] {Default Queue} wl_registry#2982.global(36, "xdg_activation_v1", 1) -[2618287.392] {Default Queue} wl_registry#2982.global(37, "mutter_x11_interop", 1) -[2618287.397] {Default Queue} wl_registry#2982.global(38, "wl_seat", 9) -[2618287.401] {Default Queue} -> wl_registry#2982.bind(38, "wl_seat", 1, new id [unknown]#3000) -[2618287.406] {Default Queue} wl_registry#2982.global(39, "wp_cursor_shape_manager_v1", 2) -[2618287.410] {Default Queue} wl_registry#2982.global(40, "wl_output", 4) -[2618287.414] {Default Queue} -> wl_registry#2982.bind(40, "wl_output", 1, new id [unknown]#3001) -[2618287.419] {Default Queue} wl_callback#2983.done(0) -[2618287.423] {Default Queue} discarded wl_surface#2951.enter(wl_output#18) -[2618287.433] {Default Queue} discarded wl_surface#2951.enter(wl_output#57) -[2618287.439] {Default Queue} discarded wl_surface#2951.enter(wl_output#89) -[2618287.443] {Default Queue} discarded wl_surface#2951.enter(wl_output#121) -[2618287.447] {Default Queue} discarded wl_surface#2951.enter(wl_output#153) -[2618287.451] {Default Queue} discarded wl_surface#2951.enter(wl_output#185) -[2618287.455] {Default Queue} discarded wl_surface#2951.enter(wl_output#217) -[2618287.459] {Default Queue} discarded wl_surface#2951.enter(wl_output#249) -[2618287.463] {Default Queue} discarded wl_surface#2951.enter(wl_output#281) -[2618287.467] {Default Queue} discarded wl_surface#2951.enter(wl_output#313) -[2618287.471] {Default Queue} discarded wl_surface#2951.enter(wl_output#345) -[2618287.475] {Default Queue} discarded wl_surface#2951.enter(wl_output#377) -[2618287.479] {Default Queue} discarded wl_surface#2951.enter(wl_output#409) -[2618287.483] {Default Queue} discarded wl_surface#2951.enter(wl_output#441) -[2618287.487] {Default Queue} discarded wl_surface#2951.enter(wl_output#473) -[2618287.491] {Default Queue} discarded wl_surface#2951.enter(wl_output#505) -[2618287.495] {Default Queue} discarded wl_surface#2951.enter(wl_output#537) -[2618287.499] {Default Queue} discarded wl_surface#2951.enter(wl_output#569) -[2618287.502] {Default Queue} discarded wl_surface#2951.enter(wl_output#601) -[2618287.506] {Default Queue} discarded wl_surface#2951.enter(wl_output#633) -[2618287.510] {Default Queue} discarded wl_surface#2951.enter(wl_output#665) -[2618287.514] {Default Queue} discarded wl_surface#2951.enter(wl_output#697) -[2618287.518] {Default Queue} discarded wl_surface#2951.enter(wl_output#729) -[2618287.522] {Default Queue} discarded wl_surface#2951.enter(wl_output#761) -[2618287.526] {Default Queue} discarded wl_surface#2951.enter(wl_output#793) -[2618287.530] {Default Queue} discarded wl_surface#2951.enter(wl_output#825) -[2618287.534] {Default Queue} discarded wl_surface#2951.enter(wl_output#857) -[2618287.537] {Default Queue} discarded wl_surface#2951.enter(wl_output#889) -[2618287.541] {Default Queue} discarded wl_surface#2951.enter(wl_output#921) -[2618287.545] {Default Queue} discarded wl_surface#2951.enter(wl_output#953) -[2618287.549] {Default Queue} discarded wl_surface#2951.enter(wl_output#985) -[2618287.553] {Default Queue} discarded wl_surface#2951.enter(wl_output#1017) -[2618287.557] {Default Queue} discarded wl_surface#2951.enter(wl_output#1049) -[2618287.561] {Default Queue} discarded wl_surface#2951.enter(wl_output#1081) -[2618287.565] {Default Queue} discarded wl_surface#2951.enter(wl_output#1113) -[2618287.569] {Default Queue} discarded wl_surface#2951.enter(wl_output#1145) -[2618287.572] {Default Queue} discarded wl_surface#2951.enter(wl_output#1177) -[2618287.577] {Default Queue} discarded wl_surface#2951.enter(wl_output#1209) -[2618287.580] {Default Queue} discarded wl_surface#2951.enter(wl_output#1241) -[2618287.584] {Default Queue} discarded wl_surface#2951.enter(wl_output#1273) -[2618287.589] {Default Queue} discarded wl_surface#2951.enter(wl_output#1305) -[2618287.593] {Default Queue} discarded wl_surface#2951.enter(wl_output#1337) -[2618287.597] {Default Queue} discarded wl_surface#2951.enter(wl_output#1369) -[2618287.601] {Default Queue} discarded wl_surface#2951.enter(wl_output#1401) -[2618287.605] {Default Queue} discarded wl_surface#2951.enter(wl_output#1433) -[2618287.609] {Default Queue} discarded wl_surface#2951.enter(wl_output#1465) -[2618287.613] {Default Queue} discarded wl_surface#2951.enter(wl_output#1497) -[2618287.617] {Default Queue} discarded wl_surface#2951.enter(wl_output#1529) -[2618287.621] {Default Queue} discarded wl_surface#2951.enter(wl_output#1561) -[2618287.625] {Default Queue} discarded wl_surface#2951.enter(wl_output#1593) -[2618287.629] {Default Queue} discarded wl_surface#2951.enter(wl_output#1625) -[2618287.633] {Default Queue} discarded wl_surface#2951.enter(wl_output#1657) -[2618287.637] {Default Queue} discarded wl_surface#2951.enter(wl_output#1689) -[2618287.641] {Default Queue} discarded wl_surface#2951.enter(wl_output#1721) -[2618287.648] {Default Queue} discarded wl_surface#2951.enter(wl_output#1753) -[2618287.653] {Default Queue} discarded wl_surface#2951.enter(wl_output#1785) -[2618287.657] {Default Queue} discarded wl_surface#2951.enter(wl_output#1817) -[2618287.661] {Default Queue} discarded wl_surface#2951.enter(wl_output#1849) -[2618287.665] {Default Queue} discarded wl_surface#2951.enter(wl_output#1881) -[2618287.669] {Default Queue} discarded wl_surface#2951.enter(wl_output#1913) -[2618287.673] {Default Queue} discarded wl_surface#2951.enter(wl_output#1945) -[2618287.677] {Default Queue} discarded wl_surface#2951.enter(wl_output#1977) -[2618287.681] {Default Queue} discarded wl_surface#2951.enter(wl_output#2009) -[2618287.685] {Default Queue} discarded wl_surface#2951.enter(wl_output#2041) -[2618287.690] {Default Queue} discarded wl_surface#2951.enter(wl_output#2073) -[2618287.694] {Default Queue} discarded wl_surface#2951.enter(wl_output#2105) -[2618287.697] {Default Queue} discarded wl_surface#2951.enter(wl_output#2137) -[2618287.701] {Default Queue} discarded wl_surface#2951.enter(wl_output#2169) -[2618287.705] {Default Queue} discarded wl_surface#2951.enter(wl_output#2201) -[2618287.709] {Default Queue} discarded wl_surface#2951.enter(wl_output#2233) -[2618287.713] {Default Queue} discarded wl_surface#2951.enter(wl_output#2265) -[2618287.717] {Default Queue} discarded wl_surface#2951.enter(wl_output#2297) -[2618287.721] {Default Queue} discarded wl_surface#2951.enter(wl_output#2329) -[2618287.725] {Default Queue} discarded wl_surface#2951.enter(wl_output#2361) -[2618287.729] {Default Queue} discarded wl_surface#2951.enter(wl_output#2393) -[2618287.732] {Default Queue} discarded wl_surface#2951.enter(wl_output#2425) -[2618287.736] {Default Queue} discarded wl_surface#2951.enter(wl_output#2457) -[2618287.740] {Default Queue} discarded wl_surface#2951.enter(wl_output#2489) -[2618287.744] {Default Queue} discarded wl_surface#2951.enter(wl_output#2521) -[2618287.748] {Default Queue} discarded wl_surface#2951.enter(wl_output#2553) -[2618287.752] {Default Queue} discarded wl_surface#2951.enter(wl_output#2585) -[2618287.756] {Default Queue} discarded wl_surface#2951.enter(wl_output#2617) -[2618287.760] {Default Queue} discarded wl_surface#2951.enter(wl_output#2649) -[2618287.764] {Default Queue} -> wl_compositor#28.create_surface(new id wl_surface#2983) -[2618287.769] {Default Queue} -> wl_subcompositor#2989.get_subsurface(new id wl_subsurface#3002, wl_surface#2983, wl_surface#71) -[2618287.777] {Default Queue} -> wl_subsurface#3002.set_desync() -[2618287.781] {Default Queue} -> wl_subsurface#3002.set_position(0, 0) -[2618287.785] {Default Queue} -> wl_subsurface#3002.place_above(wl_surface#71) -[2618287.826] {Default Queue} -> wl_shm#2991.create_pool(new id wl_shm_pool#3003, fd 474, 16) -[2618287.833] {Default Queue} -> wl_shm#2991.create_pool(new id wl_shm_pool#3004, fd 475, 16) -[2618287.838] {Default Queue} -> wl_shm_pool#3003.create_buffer(new id wl_buffer#3005, 0, 2, 2, 8, 0) -[2618287.842] {Default Queue} -> wl_shm_pool#3004.create_buffer(new id wl_buffer#3006, 0, 2, 2, 8, 0) -[2618287.851] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) -[2618287.855] {Default Queue} -> wl_surface#2983.commit() -[2618287.866] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) -[2618287.870] {Default Queue} -> wl_surface#2983.commit() -[2618287.875] {Default Queue} -> wl_compositor#2988.create_region(new id wl_region#3007) -[2618287.879] {Default Queue} -> wl_compositor#2988.create_region(new id wl_region#3008) -[2618287.906] {Default Queue} -> wl_region#3007.subtract(0, 0, 2, 2) -[2618287.914] {Default Queue} -> wl_region#3007.add(0, 0, 0, 0) -[2618287.919] {Default Queue} -> wl_surface#2983.set_opaque_region(wl_region#3008) -[2618287.924] {Default Queue} -> wl_surface#2983.set_input_region(wl_region#3007) -[2618287.929] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) -[2618287.934] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) -[2618287.941] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) -[2618287.953] {Default Queue} -> wl_surface#2983.commit() -[2618288.014] {Default Queue} -> wl_shm#2993.create_pool(new id wl_shm_pool#3009, fd 478, 640) -[2618288.023] {Default Queue} -> wl_shm#2993.create_pool(new id wl_shm_pool#3010, fd 479, 640) -[2618288.028] {Default Queue} -> wl_shm_pool#3009.create_buffer(new id wl_buffer#3011, 0, 10, 16, 40, 0) -[2618288.033] {Default Queue} -> wl_shm_pool#3010.create_buffer(new id wl_buffer#3012, 0, 10, 16, 40, 0) -[2618288.041] {Default Queue} -> wl_compositor#2988.create_surface(new id wl_surface#3013) -[2618288.046] {Default Queue} -> wl_surface#3013.attach(wl_buffer#3011, 0, 0) -[2618288.050] {Default Queue} -> wl_surface#3013.commit() -[2618288.056] {Default Queue} -> wl_surface#3013.attach(wl_buffer#3011, 0, 0) -[2618288.060] {Default Queue} -> wl_surface#3013.commit() -[2618288.066] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) -[2618288.074] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3014) -[2618288.079] {Default Queue} -> wl_display#1.sync(new id wl_callback#3015) -[2618290.424] {Default Queue} discarded wl_surface#2951.enter(wl_output#2681) -[2618290.436] {Default Queue} discarded wl_surface#2951.enter(wl_output#2713) -[2618290.441] {Default Queue} discarded wl_surface#2951.enter(wl_output#2745) -[2618290.446] {Default Queue} discarded wl_surface#2951.enter(wl_output#2777) -[2618290.450] {Default Queue} discarded wl_surface#2951.enter(wl_output#2809) -[2618290.454] {Default Queue} discarded wl_surface#2951.enter(wl_output#2841) -[2618290.458] {Default Queue} discarded wl_surface#2951.enter(wl_output#2873) -[2618290.462] {Default Queue} discarded wl_surface#2951.enter(wl_output#2905) -[2618290.466] {Default Queue} discarded wl_surface#2951.enter(wl_output#2937) -[2618290.470] {Default Queue} discarded wl_surface#2951.enter(wl_output#2969) -[2618290.838] {Display Queue} wl_display#1.delete_id(3015) -[2618290.844] {Default Queue} wl_keyboard#2984.keymap(1, fd 474, 68213) -[2618290.849] {Default Queue} wl_keyboard#2984.enter(566, wl_surface#19, array[0]) -[2618290.855] {Default Queue} wl_keyboard#2984.modifiers(566, 0, 0, 16, 0) -[2618290.860] {Default Queue} discarded wl_shm#2991.format(875709016) -[2618290.869] {Default Queue} discarded wl_shm#2991.format(1) -[2618290.873] {Default Queue} discarded wl_shm#2991.format(0) -[2618290.877] {Default Queue} discarded wl_shm#2991.format(875708993) -[2618290.881] {Default Queue} discarded wl_shm#2992.format(875709016) -[2618290.885] {Default Queue} discarded wl_shm#2992.format(1) -[2618290.889] {Default Queue} discarded wl_shm#2992.format(0) -[2618290.892] {Default Queue} discarded wl_shm#2992.format(875708993) -[2618290.896] {Default Queue} discarded wl_shm#2993.format(875709016) -[2618290.900] {Default Queue} discarded wl_shm#2993.format(1) -[2618290.904] {Default Queue} discarded wl_shm#2993.format(0) -[2618290.908] {Default Queue} discarded wl_shm#2993.format(875708993) -[2618290.912] {Default Queue} wl_seat#3000.capabilities(7) -[2618290.916] {Default Queue} -> wl_seat#3000.get_keyboard(new id wl_keyboard#3016) -[2618290.921] {Default Queue} -> wl_seat#3000.get_pointer(new id wl_pointer#3017) -[2618290.926] {Default Queue} -> wl_data_device_manager#2996.get_data_device(new id wl_data_device#3018, wl_seat#3000) -[2618290.930] {Default Queue} -> zwp_primary_selection_device_manager_v1#2998.get_device(new id zwp_primary_selection_device_v1#3019, wl_seat#3000) -[2618290.938] {Default Queue} wl_output#3001.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618290.944] {Default Queue} wl_output#3001.mode(3, 1280, 800, 60000) -[2618290.948] {Default Queue} discarded wl_surface#2727.enter(wl_output#3001) -[2618290.953] {Default Queue} discarded wl_surface#3.enter(wl_output#3001) -[2618290.957] {Default Queue} discarded wl_surface#999.enter(wl_output#3001) -[2618290.961] {Default Queue} discarded wl_surface#1191.enter(wl_output#3001) -[2618290.965] {Default Queue} discarded wl_surface#1159.enter(wl_output#3001) -[2618290.969] {Default Queue} discarded wl_surface#1703.enter(wl_output#3001) -[2618290.973] {Default Queue} discarded wl_surface#2215.enter(wl_output#3001) -[2618290.981] {Default Queue} discarded wl_surface#423.enter(wl_output#3001) -[2618290.989] {Default Queue} discarded wl_surface#1447.enter(wl_output#3001) -[2618290.993] {Default Queue} discarded wl_surface#2023.enter(wl_output#3001) -[2618290.996] {Default Queue} discarded wl_surface#1639.enter(wl_output#3001) -[2618291.001] {Default Queue} discarded wl_surface#1319.enter(wl_output#3001) -[2618291.005] {Default Queue} discarded wl_surface#1127.enter(wl_output#3001) -[2618291.009] {Default Queue} discarded wl_surface#2151.enter(wl_output#3001) -[2618291.013] {Default Queue} discarded wl_surface#2375.enter(wl_output#3001) -[2618291.017] {Default Queue} discarded wl_surface#2695.enter(wl_output#3001) -[2618291.021] {Default Queue} discarded wl_surface#2919.enter(wl_output#3001) -[2618291.025] {Default Queue} discarded wl_surface#1063.enter(wl_output#3001) -[2618291.029] {Default Queue} discarded wl_surface#455.enter(wl_output#3001) -[2618291.033] {Default Queue} discarded wl_surface#1575.enter(wl_output#3001) -[2618291.036] {Default Queue} discarded wl_surface#1799.enter(wl_output#3001) -[2618291.040] {Default Queue} discarded wl_surface#1415.enter(wl_output#3001) -[2618291.044] {Default Queue} discarded wl_surface#2439.enter(wl_output#3001) -[2618291.048] {Default Queue} discarded wl_surface#2279.enter(wl_output#3001) -[2618291.052] {Default Queue} discarded wl_surface#1831.enter(wl_output#3001) -[2618291.056] {Default Queue} discarded wl_surface#903.enter(wl_output#3001) -[2618291.060] {Default Queue} discarded wl_surface#2663.enter(wl_output#3001) -[2618291.064] {Default Queue} discarded wl_surface#775.enter(wl_output#3001) -[2618291.068] {Default Queue} discarded wl_surface#1991.enter(wl_output#3001) -[2618291.072] {Default Queue} discarded wl_surface#1543.enter(wl_output#3001) -[2618291.075] {Default Queue} discarded wl_surface#135.enter(wl_output#3001) -[2618291.079] {Default Queue} discarded wl_surface#1287.enter(wl_output#3001) -[2618291.083] {Default Queue} discarded wl_surface#1031.enter(wl_output#3001) -[2618291.087] {Default Queue} discarded wl_surface#615.enter(wl_output#3001) -[2618291.091] {Default Queue} discarded wl_surface#231.enter(wl_output#3001) -[2618291.095] {Default Queue} discarded wl_surface#2343.enter(wl_output#3001) -[2618291.099] {Default Queue} discarded wl_surface#1863.enter(wl_output#3001) -[2618291.103] {Default Queue} discarded wl_surface#359.enter(wl_output#3001) -[2618291.107] {Default Queue} discarded wl_surface#583.enter(wl_output#3001) -[2618291.110] {Default Queue} discarded wl_surface#743.enter(wl_output#3001) -[2618291.114] {Default Queue} discarded wl_surface#2535.enter(wl_output#3001) -[2618291.118] {Default Queue} discarded wl_surface#967.enter(wl_output#3001) -[2618291.122] {Default Queue} discarded wl_surface#103.enter(wl_output#3001) -[2618291.126] {Default Queue} discarded wl_surface#327.enter(wl_output#3001) -[2618291.130] {Default Queue} discarded wl_surface#43.enter(wl_output#3001) -[2618291.134] {Default Queue} discarded wl_surface#2247.enter(wl_output#3001) -[2618291.138] {Default Queue} discarded wl_surface#807.enter(wl_output#3001) -[2618291.142] {Default Queue} discarded wl_surface#19.enter(wl_output#3001) -[2618291.145] {Default Queue} discarded wl_surface#2951.enter(wl_output#3001) -[2618291.149] {Default Queue} discarded wl_surface#1511.enter(wl_output#3001) -[2618291.153] {Default Queue} discarded wl_surface#199.enter(wl_output#3001) -[2618291.157] {Default Queue} discarded wl_surface#391.enter(wl_output#3001) -[2618291.161] {Default Queue} discarded wl_surface#935.enter(wl_output#3001) -[2618291.165] {Default Queue} discarded wl_surface#2823.enter(wl_output#3001) -[2618291.169] {Default Queue} discarded wl_surface#1671.enter(wl_output#3001) -[2618291.173] {Default Queue} discarded wl_surface#1351.enter(wl_output#3001) -[2618291.177] {Default Queue} discarded wl_surface#711.enter(wl_output#3001) -[2618291.181] {Default Queue} discarded wl_surface#1223.enter(wl_output#3001) -[2618291.185] {Default Queue} discarded wl_surface#1927.enter(wl_output#3001) -[2618291.189] {Default Queue} discarded wl_surface#871.enter(wl_output#3001) -[2618291.196] {Default Queue} discarded wl_surface#1895.enter(wl_output#3001) -[2618291.202] {Default Queue} discarded wl_surface#263.enter(wl_output#3001) -[2618291.206] {Default Queue} discarded wl_surface#551.enter(wl_output#3001) -[2618291.209] {Default Queue} discarded wl_surface#1735.enter(wl_output#3001) -[2618291.214] {Default Queue} discarded wl_surface#1479.enter(wl_output#3001) -[2618291.218] {Default Queue} discarded wl_surface#1772.enter(wl_output#3001) -[2618291.221] {Default Queue} discarded wl_surface#2599.enter(wl_output#3001) -[2618291.225] {Default Queue} discarded wl_surface#2631.enter(wl_output#3001) -[2618291.229] {Default Queue} discarded wl_surface#1959.enter(wl_output#3001) -[2618291.233] {Default Queue} discarded wl_surface#647.enter(wl_output#3001) -[2618291.237] {Default Queue} discarded wl_surface#2055.enter(wl_output#3001) -[2618291.241] {Default Queue} discarded wl_surface#2508.enter(wl_output#3001) -[2618291.245] {Default Queue} discarded wl_surface#71.enter(wl_output#3001) -[2618291.249] {Default Queue} discarded wl_surface#2759.enter(wl_output#3001) -[2618291.253] {Default Queue} discarded wl_surface#2791.enter(wl_output#3001) -[2618291.256] {Default Queue} discarded wl_surface#2887.enter(wl_output#3001) -[2618291.260] {Default Queue} discarded wl_surface#2183.enter(wl_output#3001) -[2618291.264] {Default Queue} discarded wl_surface#2567.enter(wl_output#3001) -[2618291.268] {Default Queue} discarded wl_surface#839.enter(wl_output#3001) -[2618291.272] {Default Queue} discarded wl_surface#1607.enter(wl_output#3001) -[2618291.276] {Default Queue} discarded wl_surface#1095.enter(wl_output#3001) -[2618291.280] {Default Queue} discarded wl_surface#1383.enter(wl_output#3001) -[2618291.285] {Default Queue} discarded wl_surface#487.enter(wl_output#3001) -[2618291.289] {Default Queue} discarded wl_surface#2311.enter(wl_output#3001) -[2618291.292] {Default Queue} discarded wl_surface#519.enter(wl_output#3001) -[2618291.296] {Default Queue} discarded wl_surface#2087.enter(wl_output#3001) -[2618291.300] {Default Queue} discarded wl_surface#2471.enter(wl_output#3001) -[2618291.304] {Default Queue} discarded wl_surface#295.enter(wl_output#3001) -[2618291.308] {Default Queue} discarded wl_surface#167.enter(wl_output#3001) -[2618291.312] {Default Queue} discarded wl_surface#1255.enter(wl_output#3001) -[2618291.316] {Default Queue} discarded wl_surface#2855.enter(wl_output#3001) -[2618291.320] {Default Queue} discarded wl_surface#679.enter(wl_output#3001) -[2618291.324] {Default Queue} discarded wl_surface#2407.enter(wl_output#3001) -[2618291.328] {Default Queue} discarded wl_surface#2119.enter(wl_output#3001) -[2618291.332] {Default Queue} wl_registry#3014.global(1, "wl_compositor", 6) -[2618291.338] {Default Queue} -> wl_registry#3014.bind(1, "wl_compositor", 1, new id [unknown]#3020) -[2618291.342] {Default Queue} wl_registry#3014.global(2, "wl_subcompositor", 1) -[2618291.347] {Default Queue} -> wl_registry#3014.bind(2, "wl_subcompositor", 1, new id [unknown]#3021) -[2618291.352] {Default Queue} wl_registry#3014.global(3, "xdg_wm_base", 6) -[2618291.357] {Default Queue} -> wl_registry#3014.bind(3, "xdg_wm_base", 1, new id [unknown]#3022) -[2618291.361] {Default Queue} wl_registry#3014.global(6, "zwlr_layer_shell_v1", 5) -[2618291.365] {Default Queue} wl_registry#3014.global(7, "ext_session_lock_manager_v1", 1) -[2618291.370] {Default Queue} wl_registry#3014.global(8, "wl_shm", 2) -[2618291.374] {Default Queue} -> wl_registry#3014.bind(8, "wl_shm", 1, new id [unknown]#3023) -[2618291.379] {Default Queue} -> wl_registry#3014.bind(8, "wl_shm", 1, new id [unknown]#3024) -[2618291.383] {Default Queue} -> wl_registry#3014.bind(8, "wl_shm", 1, new id [unknown]#3025) -[2618291.388] {Default Queue} wl_registry#3014.global(9, "zxdg_output_manager_v1", 3) -[2618291.393] {Default Queue} wl_registry#3014.global(10, "wp_fractional_scale_manager_v1", 1) -[2618291.397] {Default Queue} wl_registry#3014.global(11, "zwp_tablet_manager_v2", 1) -[2618291.401] {Default Queue} wl_registry#3014.global(12, "zwp_pointer_gestures_v1", 3) -[2618291.408] {Default Queue} wl_registry#3014.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618291.414] {Default Queue} -> wl_registry#3014.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3026) -[2618291.419] {Default Queue} wl_registry#3014.global(14, "zwp_pointer_constraints_v1", 1) -[2618291.423] {Default Queue} -> wl_registry#3014.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3027) -[2618291.427] {Default Queue} wl_registry#3014.global(15, "ext_idle_notifier_v1", 2) -[2618291.432] {Default Queue} wl_registry#3014.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618291.436] {Default Queue} wl_registry#3014.global(17, "wl_data_device_manager", 3) -[2618291.441] {Default Queue} -> wl_registry#3014.bind(17, "wl_data_device_manager", 2, new id [unknown]#3028) -[2618291.445] {Default Queue} -> wl_data_device_manager#3028.create_data_source(new id wl_data_source#3029) -[2618291.450] {Default Queue} -> wl_data_source#3029.offer("text/plain") -[2618291.454] {Default Queue} -> wl_data_source#3029.offer("text/plain;charset=utf-8") -[2618291.458] {Default Queue} -> wl_data_source#3029.offer("TEXT") -[2618291.462] {Default Queue} -> wl_data_source#3029.offer("STRING") -[2618291.466] {Default Queue} -> wl_data_source#3029.offer("UTF8_STRING") -[2618291.470] {Default Queue} wl_registry#3014.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618291.475] {Default Queue} -> wl_registry#3014.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3030) -[2618291.483] {Default Queue} -> zwp_primary_selection_device_manager_v1#3030.create_source(new id zwp_primary_selection_source_v1#3031) -[2618291.491] {Default Queue} -> zwp_primary_selection_source_v1#3031.offer("text/plain") -[2618291.495] {Default Queue} -> zwp_primary_selection_source_v1#3031.offer("text/plain;charset=utf-8") -[2618291.499] {Default Queue} -> zwp_primary_selection_source_v1#3031.offer("TEXT") -[2618291.503] {Default Queue} -> zwp_primary_selection_source_v1#3031.offer("STRING") -[2618291.507] {Default Queue} -> zwp_primary_selection_source_v1#3031.offer("UTF8_STRING") -[2618291.511] {Default Queue} wl_registry#3014.global(19, "zwlr_data_control_manager_v1", 2) -[2618291.517] {Default Queue} wl_registry#3014.global(20, "ext_data_control_manager_v1", 1) -[2618291.521] {Default Queue} wl_registry#3014.global(21, "wp_presentation", 2) -[2618291.525] {Default Queue} wl_registry#3014.global(22, "wp_security_context_manager_v1", 1) -[2618291.530] {Default Queue} wl_registry#3014.global(23, "zwp_text_input_manager_v3", 1) -[2618291.534] {Default Queue} wl_registry#3014.global(24, "zwp_input_method_manager_v2", 1) -[2618291.538] {Default Queue} wl_registry#3014.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618291.543] {Default Queue} wl_registry#3014.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618291.547] {Default Queue} wl_registry#3014.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618291.552] {Default Queue} wl_registry#3014.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618291.556] {Default Queue} wl_registry#3014.global(29, "ext_workspace_manager_v1", 1) -[2618291.560] {Default Queue} wl_registry#3014.global(30, "zwlr_output_manager_v1", 4) -[2618291.564] {Default Queue} wl_registry#3014.global(31, "zwlr_screencopy_manager_v1", 3) -[2618291.569] {Default Queue} wl_registry#3014.global(32, "wp_viewporter", 1) -[2618291.573] {Default Queue} wl_registry#3014.global(33, "zxdg_exporter_v2", 1) -[2618291.577] {Default Queue} wl_registry#3014.global(34, "zxdg_importer_v2", 1) -[2618291.582] {Default Queue} wl_registry#3014.global(36, "xdg_activation_v1", 1) -[2618291.586] {Default Queue} wl_registry#3014.global(37, "mutter_x11_interop", 1) -[2618291.590] {Default Queue} wl_registry#3014.global(38, "wl_seat", 9) -[2618291.595] {Default Queue} -> wl_registry#3014.bind(38, "wl_seat", 1, new id [unknown]#3032) -[2618291.602] {Default Queue} wl_registry#3014.global(39, "wp_cursor_shape_manager_v1", 2) -[2618291.606] {Default Queue} wl_registry#3014.global(40, "wl_output", 4) -[2618291.611] {Default Queue} -> wl_registry#3014.bind(40, "wl_output", 1, new id [unknown]#3033) -[2618291.618] {Default Queue} wl_callback#3015.done(0) -[2618291.624] {Default Queue} discarded wl_surface#2983.enter(wl_output#18) -[2618291.629] {Default Queue} discarded wl_surface#2983.enter(wl_output#57) -[2618291.633] {Default Queue} discarded wl_surface#2983.enter(wl_output#89) -[2618291.637] {Default Queue} discarded wl_surface#2983.enter(wl_output#121) -[2618291.641] {Default Queue} discarded wl_surface#2983.enter(wl_output#153) -[2618291.646] {Default Queue} discarded wl_surface#2983.enter(wl_output#185) -[2618291.650] {Default Queue} discarded wl_surface#2983.enter(wl_output#217) -[2618291.654] {Default Queue} discarded wl_surface#2983.enter(wl_output#249) -[2618291.657] {Default Queue} discarded wl_surface#2983.enter(wl_output#281) -[2618291.661] {Default Queue} discarded wl_surface#2983.enter(wl_output#313) -[2618291.666] {Default Queue} discarded wl_surface#2983.enter(wl_output#345) -[2618291.670] {Default Queue} discarded wl_surface#2983.enter(wl_output#377) -[2618291.674] {Default Queue} discarded wl_surface#2983.enter(wl_output#409) -[2618291.678] {Default Queue} discarded wl_surface#2983.enter(wl_output#441) -[2618291.682] {Default Queue} discarded wl_surface#2983.enter(wl_output#473) -[2618291.686] {Default Queue} discarded wl_surface#2983.enter(wl_output#505) -[2618291.689] {Default Queue} discarded wl_surface#2983.enter(wl_output#537) -[2618291.693] {Default Queue} discarded wl_surface#2983.enter(wl_output#569) -[2618291.697] {Default Queue} discarded wl_surface#2983.enter(wl_output#601) -[2618291.701] {Default Queue} discarded wl_surface#2983.enter(wl_output#633) -[2618291.705] {Default Queue} discarded wl_surface#2983.enter(wl_output#665) -[2618291.709] {Default Queue} discarded wl_surface#2983.enter(wl_output#697) -[2618291.713] {Default Queue} discarded wl_surface#2983.enter(wl_output#729) -[2618291.717] {Default Queue} discarded wl_surface#2983.enter(wl_output#761) -[2618291.721] {Default Queue} discarded wl_surface#2983.enter(wl_output#793) -[2618291.725] {Default Queue} discarded wl_surface#2983.enter(wl_output#825) -[2618291.729] {Default Queue} discarded wl_surface#2983.enter(wl_output#857) -[2618291.733] {Default Queue} discarded wl_surface#2983.enter(wl_output#889) -[2618291.737] {Default Queue} discarded wl_surface#2983.enter(wl_output#921) -[2618291.741] {Default Queue} discarded wl_surface#2983.enter(wl_output#953) -[2618291.745] {Default Queue} discarded wl_surface#2983.enter(wl_output#985) -[2618291.749] {Default Queue} discarded wl_surface#2983.enter(wl_output#1017) -[2618291.753] {Default Queue} discarded wl_surface#2983.enter(wl_output#1049) -[2618291.757] {Default Queue} discarded wl_surface#2983.enter(wl_output#1081) -[2618291.761] {Default Queue} discarded wl_surface#2983.enter(wl_output#1113) -[2618291.765] {Default Queue} discarded wl_surface#2983.enter(wl_output#1145) -[2618291.769] {Default Queue} discarded wl_surface#2983.enter(wl_output#1177) -[2618291.773] {Default Queue} discarded wl_surface#2983.enter(wl_output#1209) -[2618291.776] {Default Queue} discarded wl_surface#2983.enter(wl_output#1241) -[2618291.781] {Default Queue} discarded wl_surface#2983.enter(wl_output#1273) -[2618291.785] {Default Queue} discarded wl_surface#2983.enter(wl_output#1305) -[2618291.788] {Default Queue} discarded wl_surface#2983.enter(wl_output#1337) -[2618291.792] {Default Queue} discarded wl_surface#2983.enter(wl_output#1369) -[2618291.796] {Default Queue} discarded wl_surface#2983.enter(wl_output#1401) -[2618291.800] {Default Queue} discarded wl_surface#2983.enter(wl_output#1433) -[2618291.805] {Default Queue} discarded wl_surface#2983.enter(wl_output#1465) -[2618291.809] {Default Queue} discarded wl_surface#2983.enter(wl_output#1497) -[2618291.813] {Default Queue} discarded wl_surface#2983.enter(wl_output#1529) -[2618291.817] {Default Queue} discarded wl_surface#2983.enter(wl_output#1561) -[2618291.821] {Default Queue} discarded wl_surface#2983.enter(wl_output#1593) -[2618291.825] {Default Queue} discarded wl_surface#2983.enter(wl_output#1625) -[2618291.829] {Default Queue} discarded wl_surface#2983.enter(wl_output#1657) -[2618291.836] {Default Queue} discarded wl_surface#2983.enter(wl_output#1689) -[2618291.841] {Default Queue} discarded wl_surface#2983.enter(wl_output#1721) -[2618291.845] {Default Queue} discarded wl_surface#2983.enter(wl_output#1753) -[2618291.849] {Default Queue} discarded wl_surface#2983.enter(wl_output#1785) -[2618291.853] {Default Queue} discarded wl_surface#2983.enter(wl_output#1817) -[2618291.857] {Default Queue} discarded wl_surface#2983.enter(wl_output#1849) -[2618291.864] {Default Queue} discarded wl_surface#2983.enter(wl_output#1881) -[2618291.868] {Default Queue} discarded wl_surface#2983.enter(wl_output#1913) -[2618291.872] {Default Queue} discarded wl_surface#2983.enter(wl_output#1945) -[2618291.876] {Default Queue} discarded wl_surface#2983.enter(wl_output#1977) -[2618291.880] {Default Queue} discarded wl_surface#2983.enter(wl_output#2009) -[2618291.884] {Default Queue} discarded wl_surface#2983.enter(wl_output#2041) -[2618291.888] {Default Queue} discarded wl_surface#2983.enter(wl_output#2073) -[2618291.892] {Default Queue} discarded wl_surface#2983.enter(wl_output#2105) -[2618291.896] {Default Queue} discarded wl_surface#2983.enter(wl_output#2137) -[2618291.900] {Default Queue} discarded wl_surface#2983.enter(wl_output#2169) -[2618291.904] {Default Queue} discarded wl_surface#2983.enter(wl_output#2201) -[2618291.907] {Default Queue} discarded wl_surface#2983.enter(wl_output#2233) -[2618291.911] {Default Queue} discarded wl_surface#2983.enter(wl_output#2265) -[2618291.917] {Default Queue} discarded wl_surface#2983.enter(wl_output#2297) -[2618291.923] {Default Queue} discarded wl_surface#2983.enter(wl_output#2329) -[2618291.928] {Default Queue} discarded wl_surface#2983.enter(wl_output#2361) -[2618291.933] {Default Queue} discarded wl_surface#2983.enter(wl_output#2393) -[2618291.938] {Default Queue} discarded wl_surface#2983.enter(wl_output#2425) -[2618291.943] {Default Queue} discarded wl_surface#2983.enter(wl_output#2457) -[2618291.947] {Default Queue} discarded wl_surface#2983.enter(wl_output#2489) -[2618291.951] {Default Queue} discarded wl_surface#2983.enter(wl_output#2521) -[2618291.955] {Default Queue} discarded wl_surface#2983.enter(wl_output#2553) -[2618291.959] {Default Queue} discarded wl_surface#2983.enter(wl_output#2585) -[2618291.963] {Default Queue} discarded wl_surface#2983.enter(wl_output#2617) -[2618291.967] {Default Queue} -> wl_compositor#2988.create_surface(new id wl_surface#3015) -[2618291.972] {Default Queue} -> wl_subcompositor#3021.get_subsurface(new id wl_subsurface#3034, wl_surface#3015, wl_surface#2983) -[2618291.980] {Default Queue} -> wl_subsurface#3034.set_desync() -[2618291.984] {Default Queue} -> wl_subsurface#3034.set_position(0, 0) -[2618291.989] {Default Queue} -> wl_subsurface#3034.place_above(wl_surface#2983) -[2618292.035] {Default Queue} -> wl_shm#3023.create_pool(new id wl_shm_pool#3035, fd 479, 16) -[2618292.042] {Default Queue} -> wl_shm#3023.create_pool(new id wl_shm_pool#3036, fd 480, 16) -[2618292.047] {Default Queue} -> wl_shm_pool#3035.create_buffer(new id wl_buffer#3037, 0, 2, 2, 8, 0) -[2618292.052] {Default Queue} -> wl_shm_pool#3036.create_buffer(new id wl_buffer#3038, 0, 2, 2, 8, 0) -[2618292.060] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) -[2618292.064] {Default Queue} -> wl_surface#3015.commit() -[2618292.070] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) -[2618292.074] {Default Queue} -> wl_surface#3015.commit() -[2618292.078] {Default Queue} -> wl_compositor#3020.create_region(new id wl_region#3039) -[2618292.083] {Default Queue} -> wl_compositor#3020.create_region(new id wl_region#3040) -[2618292.087] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) -[2618292.092] {Default Queue} -> wl_region#3039.add(0, 0, 0, 0) -[2618292.096] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618292.100] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618292.105] {Default Queue} -> wl_surface#3015.damage(0, 0, 2, 2) -[2618292.109] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) -[2618292.120] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) -[2618292.126] {Default Queue} -> wl_surface#3015.commit() -[2618292.160] {Default Queue} -> wl_shm#3025.create_pool(new id wl_shm_pool#3041, fd 483, 640) -[2618292.166] {Default Queue} -> wl_shm#3025.create_pool(new id wl_shm_pool#3042, fd 484, 640) -[2618292.171] {Default Queue} -> wl_shm_pool#3041.create_buffer(new id wl_buffer#3043, 0, 10, 16, 40, 0) -[2618292.176] {Default Queue} -> wl_shm_pool#3042.create_buffer(new id wl_buffer#3044, 0, 10, 16, 40, 0) -[2618292.183] {Default Queue} -> wl_compositor#3020.create_surface(new id wl_surface#3045) -[2618292.187] {Default Queue} -> wl_surface#3045.attach(wl_buffer#3043, 0, 0) -[2618292.192] {Default Queue} -> wl_surface#3045.commit() -[2618292.197] {Default Queue} -> wl_surface#3045.attach(wl_buffer#3043, 0, 0) -[2618292.201] {Default Queue} -> wl_surface#3045.commit() -[2618292.206] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) -[2618292.212] {Default Queue} -> wl_surface#3015.damage(0, 0, 2, 2) -[2618292.216] {Default Queue} -> wl_surface#3015.damage(0, 0, 2, 2) -[2618292.223] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3046) -[2618292.228] {Default Queue} -> wl_display#1.sync(new id wl_callback#3047) -[2618296.404] {Default Queue} discarded wl_surface#2983.enter(wl_output#2649) -[2618296.417] {Default Queue} discarded wl_surface#2983.enter(wl_output#2681) -[2618296.422] {Default Queue} discarded wl_surface#2983.enter(wl_output#2713) -[2618296.426] {Default Queue} discarded wl_surface#2983.enter(wl_output#2745) -[2618296.430] {Default Queue} discarded wl_surface#2983.enter(wl_output#2777) -[2618296.434] {Default Queue} discarded wl_surface#2983.enter(wl_output#2809) -[2618296.438] {Default Queue} discarded wl_surface#2983.enter(wl_output#2841) -[2618296.442] {Default Queue} discarded wl_surface#2983.enter(wl_output#2873) -[2618296.446] {Default Queue} discarded wl_surface#2983.enter(wl_output#2905) -[2618296.451] {Default Queue} discarded wl_surface#2983.enter(wl_output#2937) -[2618296.454] {Default Queue} discarded wl_surface#2983.enter(wl_output#2969) -[2618296.458] {Default Queue} discarded wl_surface#2983.enter(wl_output#3001) -[2618296.741] {Display Queue} wl_display#1.delete_id(3047) -[2618296.747] {Default Queue} wl_keyboard#3016.keymap(1, fd 479, 68213) -[2618296.752] {Default Queue} wl_keyboard#3016.enter(566, wl_surface#19, array[0]) -[2618296.758] {Default Queue} wl_keyboard#3016.modifiers(566, 0, 0, 16, 0) -[2618296.763] {Default Queue} discarded wl_shm#3023.format(875709016) -[2618296.767] {Default Queue} discarded wl_shm#3023.format(1) -[2618296.770] {Default Queue} discarded wl_shm#3023.format(0) -[2618296.775] {Default Queue} discarded wl_shm#3023.format(875708993) -[2618296.779] {Default Queue} discarded wl_shm#3024.format(875709016) -[2618296.783] {Default Queue} discarded wl_shm#3024.format(1) -[2618296.786] {Default Queue} discarded wl_shm#3024.format(0) -[2618296.790] {Default Queue} discarded wl_shm#3024.format(875708993) -[2618296.794] {Default Queue} discarded wl_shm#3025.format(875709016) -[2618296.798] {Default Queue} discarded wl_shm#3025.format(1) -[2618296.802] {Default Queue} discarded wl_shm#3025.format(0) -[2618296.805] {Default Queue} discarded wl_shm#3025.format(875708993) -[2618296.809] {Default Queue} wl_seat#3032.capabilities(7) -[2618296.814] {Default Queue} -> wl_seat#3032.get_keyboard(new id wl_keyboard#3048) -[2618296.818] {Default Queue} -> wl_seat#3032.get_pointer(new id wl_pointer#3049) -[2618296.823] {Default Queue} -> wl_data_device_manager#3028.get_data_device(new id wl_data_device#3050, wl_seat#3032) -[2618296.828] {Default Queue} -> zwp_primary_selection_device_manager_v1#3030.get_device(new id zwp_primary_selection_device_v1#3051, wl_seat#3032) -[2618296.836] {Default Queue} wl_output#3033.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618296.841] {Default Queue} wl_output#3033.mode(3, 1280, 800, 60000) -[2618296.845] {Default Queue} discarded wl_surface#2727.enter(wl_output#3033) -[2618296.849] {Default Queue} discarded wl_surface#3.enter(wl_output#3033) -[2618296.860] {Default Queue} discarded wl_surface#999.enter(wl_output#3033) -[2618296.878] {Default Queue} discarded wl_surface#1191.enter(wl_output#3033) -[2618296.882] {Default Queue} discarded wl_surface#1159.enter(wl_output#3033) -[2618296.886] {Default Queue} discarded wl_surface#1703.enter(wl_output#3033) -[2618296.890] {Default Queue} discarded wl_surface#2215.enter(wl_output#3033) -[2618296.894] {Default Queue} discarded wl_surface#423.enter(wl_output#3033) -[2618296.898] {Default Queue} discarded wl_surface#1447.enter(wl_output#3033) -[2618296.901] {Default Queue} discarded wl_surface#2023.enter(wl_output#3033) -[2618296.905] {Default Queue} discarded wl_surface#1639.enter(wl_output#3033) -[2618296.910] {Default Queue} discarded wl_surface#1319.enter(wl_output#3033) -[2618296.914] {Default Queue} discarded wl_surface#1127.enter(wl_output#3033) -[2618296.919] {Default Queue} discarded wl_surface#2151.enter(wl_output#3033) -[2618296.925] {Default Queue} discarded wl_surface#2375.enter(wl_output#3033) -[2618296.930] {Default Queue} discarded wl_surface#2695.enter(wl_output#3033) -[2618296.935] {Default Queue} discarded wl_surface#2919.enter(wl_output#3033) -[2618296.939] {Default Queue} discarded wl_surface#1063.enter(wl_output#3033) -[2618296.943] {Default Queue} discarded wl_surface#455.enter(wl_output#3033) -[2618296.946] {Default Queue} discarded wl_surface#1575.enter(wl_output#3033) -[2618296.950] {Default Queue} discarded wl_surface#1799.enter(wl_output#3033) -[2618296.954] {Default Queue} discarded wl_surface#1415.enter(wl_output#3033) -[2618296.958] {Default Queue} discarded wl_surface#2439.enter(wl_output#3033) -[2618296.962] {Default Queue} discarded wl_surface#2279.enter(wl_output#3033) -[2618296.966] {Default Queue} discarded wl_surface#1831.enter(wl_output#3033) -[2618296.970] {Default Queue} discarded wl_surface#903.enter(wl_output#3033) -[2618296.974] {Default Queue} discarded wl_surface#2663.enter(wl_output#3033) -[2618296.978] {Default Queue} discarded wl_surface#775.enter(wl_output#3033) -[2618296.982] {Default Queue} discarded wl_surface#1991.enter(wl_output#3033) -[2618296.986] {Default Queue} discarded wl_surface#1543.enter(wl_output#3033) -[2618296.989] {Default Queue} discarded wl_surface#135.enter(wl_output#3033) -[2618296.993] {Default Queue} discarded wl_surface#1287.enter(wl_output#3033) -[2618296.997] {Default Queue} discarded wl_surface#1031.enter(wl_output#3033) -[2618297.001] {Default Queue} discarded wl_surface#615.enter(wl_output#3033) -[2618297.005] {Default Queue} discarded wl_surface#231.enter(wl_output#3033) -[2618297.009] {Default Queue} discarded wl_surface#2343.enter(wl_output#3033) -[2618297.013] {Default Queue} discarded wl_surface#1863.enter(wl_output#3033) -[2618297.017] {Default Queue} discarded wl_surface#359.enter(wl_output#3033) -[2618297.021] {Default Queue} discarded wl_surface#2983.enter(wl_output#3033) -[2618297.024] {Default Queue} discarded wl_surface#583.enter(wl_output#3033) -[2618297.028] {Default Queue} discarded wl_surface#743.enter(wl_output#3033) -[2618297.032] {Default Queue} discarded wl_surface#2535.enter(wl_output#3033) -[2618297.036] {Default Queue} discarded wl_surface#967.enter(wl_output#3033) -[2618297.040] {Default Queue} discarded wl_surface#103.enter(wl_output#3033) -[2618297.044] {Default Queue} discarded wl_surface#327.enter(wl_output#3033) -[2618297.048] {Default Queue} discarded wl_surface#43.enter(wl_output#3033) -[2618297.052] {Default Queue} discarded wl_surface#2247.enter(wl_output#3033) -[2618297.055] {Default Queue} discarded wl_surface#807.enter(wl_output#3033) -[2618297.059] {Default Queue} discarded wl_surface#19.enter(wl_output#3033) -[2618297.063] {Default Queue} discarded wl_surface#2951.enter(wl_output#3033) -[2618297.067] {Default Queue} discarded wl_surface#1511.enter(wl_output#3033) -[2618297.071] {Default Queue} discarded wl_surface#199.enter(wl_output#3033) -[2618297.075] {Default Queue} discarded wl_surface#391.enter(wl_output#3033) -[2618297.079] {Default Queue} discarded wl_surface#935.enter(wl_output#3033) -[2618297.082] {Default Queue} discarded wl_surface#2823.enter(wl_output#3033) -[2618297.090] {Default Queue} discarded wl_surface#1671.enter(wl_output#3033) -[2618297.095] {Default Queue} discarded wl_surface#1351.enter(wl_output#3033) -[2618297.099] {Default Queue} discarded wl_surface#711.enter(wl_output#3033) -[2618297.103] {Default Queue} discarded wl_surface#1223.enter(wl_output#3033) -[2618297.107] {Default Queue} discarded wl_surface#1927.enter(wl_output#3033) -[2618297.112] {Default Queue} discarded wl_surface#871.enter(wl_output#3033) -[2618297.116] {Default Queue} discarded wl_surface#1895.enter(wl_output#3033) -[2618297.119] {Default Queue} discarded wl_surface#263.enter(wl_output#3033) -[2618297.123] {Default Queue} discarded wl_surface#551.enter(wl_output#3033) -[2618297.127] {Default Queue} discarded wl_surface#1735.enter(wl_output#3033) -[2618297.131] {Default Queue} discarded wl_surface#1479.enter(wl_output#3033) -[2618297.135] {Default Queue} discarded wl_surface#1772.enter(wl_output#3033) -[2618297.139] {Default Queue} discarded wl_surface#2599.enter(wl_output#3033) -[2618297.143] {Default Queue} discarded wl_surface#2631.enter(wl_output#3033) -[2618297.147] {Default Queue} discarded wl_surface#1959.enter(wl_output#3033) -[2618297.150] {Default Queue} discarded wl_surface#647.enter(wl_output#3033) -[2618297.154] {Default Queue} discarded wl_surface#2055.enter(wl_output#3033) -[2618297.158] {Default Queue} discarded wl_surface#2508.enter(wl_output#3033) -[2618297.162] {Default Queue} discarded wl_surface#71.enter(wl_output#3033) -[2618297.166] {Default Queue} discarded wl_surface#2759.enter(wl_output#3033) -[2618297.170] {Default Queue} discarded wl_surface#2791.enter(wl_output#3033) -[2618297.174] {Default Queue} discarded wl_surface#2887.enter(wl_output#3033) -[2618297.178] {Default Queue} discarded wl_surface#2183.enter(wl_output#3033) -[2618297.182] {Default Queue} discarded wl_surface#2567.enter(wl_output#3033) -[2618297.186] {Default Queue} discarded wl_surface#839.enter(wl_output#3033) -[2618297.190] {Default Queue} discarded wl_surface#1607.enter(wl_output#3033) -[2618297.194] {Default Queue} discarded wl_surface#1095.enter(wl_output#3033) -[2618297.198] {Default Queue} discarded wl_surface#1383.enter(wl_output#3033) -[2618297.202] {Default Queue} discarded wl_surface#487.enter(wl_output#3033) -[2618297.206] {Default Queue} discarded wl_surface#2311.enter(wl_output#3033) -[2618297.210] {Default Queue} discarded wl_surface#519.enter(wl_output#3033) -[2618297.214] {Default Queue} discarded wl_surface#2087.enter(wl_output#3033) -[2618297.218] {Default Queue} discarded wl_surface#2471.enter(wl_output#3033) -[2618297.222] {Default Queue} discarded wl_surface#295.enter(wl_output#3033) -[2618297.226] {Default Queue} discarded wl_surface#167.enter(wl_output#3033) -[2618297.230] {Default Queue} discarded wl_surface#1255.enter(wl_output#3033) -[2618297.233] {Default Queue} discarded wl_surface#2855.enter(wl_output#3033) -[2618297.237] {Default Queue} discarded wl_surface#679.enter(wl_output#3033) -[2618297.241] {Default Queue} discarded wl_surface#2407.enter(wl_output#3033) -[2618297.245] {Default Queue} discarded wl_surface#2119.enter(wl_output#3033) -[2618297.250] {Default Queue} wl_registry#3046.global(1, "wl_compositor", 6) -[2618297.258] {Default Queue} -> wl_registry#3046.bind(1, "wl_compositor", 1, new id [unknown]#3052) -[2618297.265] {Default Queue} wl_registry#3046.global(2, "wl_subcompositor", 1) -[2618297.270] {Default Queue} -> wl_registry#3046.bind(2, "wl_subcompositor", 1, new id [unknown]#3053) -[2618297.275] {Default Queue} wl_registry#3046.global(3, "xdg_wm_base", 6) -[2618297.280] {Default Queue} -> wl_registry#3046.bind(3, "xdg_wm_base", 1, new id [unknown]#3054) -[2618297.285] {Default Queue} wl_registry#3046.global(6, "zwlr_layer_shell_v1", 5) -[2618297.290] {Default Queue} wl_registry#3046.global(7, "ext_session_lock_manager_v1", 1) -[2618297.294] {Default Queue} wl_registry#3046.global(8, "wl_shm", 2) -[2618297.299] {Default Queue} -> wl_registry#3046.bind(8, "wl_shm", 1, new id [unknown]#3055) -[2618297.303] {Default Queue} -> wl_registry#3046.bind(8, "wl_shm", 1, new id [unknown]#3056) -[2618297.310] {Default Queue} -> wl_registry#3046.bind(8, "wl_shm", 1, new id [unknown]#3057) -[2618297.316] {Default Queue} wl_registry#3046.global(9, "zxdg_output_manager_v1", 3) -[2618297.320] {Default Queue} wl_registry#3046.global(10, "wp_fractional_scale_manager_v1", 1) -[2618297.325] {Default Queue} wl_registry#3046.global(11, "zwp_tablet_manager_v2", 1) -[2618297.329] {Default Queue} wl_registry#3046.global(12, "zwp_pointer_gestures_v1", 3) -[2618297.333] {Default Queue} wl_registry#3046.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618297.338] {Default Queue} -> wl_registry#3046.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3058) -[2618297.342] {Default Queue} wl_registry#3046.global(14, "zwp_pointer_constraints_v1", 1) -[2618297.347] {Default Queue} -> wl_registry#3046.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3059) -[2618297.351] {Default Queue} wl_registry#3046.global(15, "ext_idle_notifier_v1", 2) -[2618297.356] {Default Queue} wl_registry#3046.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618297.360] {Default Queue} wl_registry#3046.global(17, "wl_data_device_manager", 3) -[2618297.365] {Default Queue} -> wl_registry#3046.bind(17, "wl_data_device_manager", 2, new id [unknown]#3060) -[2618297.370] {Default Queue} -> wl_data_device_manager#3060.create_data_source(new id wl_data_source#3061) -[2618297.375] {Default Queue} -> wl_data_source#3061.offer("text/plain") -[2618297.379] {Default Queue} -> wl_data_source#3061.offer("text/plain;charset=utf-8") -[2618297.383] {Default Queue} -> wl_data_source#3061.offer("TEXT") -[2618297.388] {Default Queue} -> wl_data_source#3061.offer("STRING") -[2618297.392] {Default Queue} -> wl_data_source#3061.offer("UTF8_STRING") -[2618297.396] {Default Queue} wl_registry#3046.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618297.401] {Default Queue} -> wl_registry#3046.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3062) -[2618297.409] {Default Queue} -> zwp_primary_selection_device_manager_v1#3062.create_source(new id zwp_primary_selection_source_v1#3063) -[2618297.417] {Default Queue} -> zwp_primary_selection_source_v1#3063.offer("text/plain") -[2618297.421] {Default Queue} -> zwp_primary_selection_source_v1#3063.offer("text/plain;charset=utf-8") -[2618297.425] {Default Queue} -> zwp_primary_selection_source_v1#3063.offer("TEXT") -[2618297.429] {Default Queue} -> zwp_primary_selection_source_v1#3063.offer("STRING") -[2618297.433] {Default Queue} -> zwp_primary_selection_source_v1#3063.offer("UTF8_STRING") -[2618297.437] {Default Queue} wl_registry#3046.global(19, "zwlr_data_control_manager_v1", 2) -[2618297.441] {Default Queue} wl_registry#3046.global(20, "ext_data_control_manager_v1", 1) -[2618297.446] {Default Queue} wl_registry#3046.global(21, "wp_presentation", 2) -[2618297.450] {Default Queue} wl_registry#3046.global(22, "wp_security_context_manager_v1", 1) -[2618297.454] {Default Queue} wl_registry#3046.global(23, "zwp_text_input_manager_v3", 1) -[2618297.459] {Default Queue} wl_registry#3046.global(24, "zwp_input_method_manager_v2", 1) -[2618297.463] {Default Queue} wl_registry#3046.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618297.468] {Default Queue} wl_registry#3046.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618297.472] {Default Queue} wl_registry#3046.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618297.476] {Default Queue} wl_registry#3046.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618297.481] {Default Queue} wl_registry#3046.global(29, "ext_workspace_manager_v1", 1) -[2618297.486] {Default Queue} wl_registry#3046.global(30, "zwlr_output_manager_v1", 4) -[2618297.490] {Default Queue} wl_registry#3046.global(31, "zwlr_screencopy_manager_v1", 3) -[2618297.494] {Default Queue} wl_registry#3046.global(32, "wp_viewporter", 1) -[2618297.499] {Default Queue} wl_registry#3046.global(33, "zxdg_exporter_v2", 1) -[2618297.503] {Default Queue} wl_registry#3046.global(34, "zxdg_importer_v2", 1) -[2618297.507] {Default Queue} wl_registry#3046.global(36, "xdg_activation_v1", 1) -[2618297.515] {Default Queue} wl_registry#3046.global(37, "mutter_x11_interop", 1) -[2618297.520] {Default Queue} wl_registry#3046.global(38, "wl_seat", 9) -[2618297.525] {Default Queue} -> wl_registry#3046.bind(38, "wl_seat", 1, new id [unknown]#3064) -[2618297.529] {Default Queue} wl_registry#3046.global(39, "wp_cursor_shape_manager_v1", 2) -[2618297.534] {Default Queue} wl_registry#3046.global(40, "wl_output", 4) -[2618297.538] {Default Queue} -> wl_registry#3046.bind(40, "wl_output", 1, new id [unknown]#3065) -[2618297.543] {Default Queue} wl_callback#3047.done(0) -[2618297.547] {Default Queue} discarded wl_surface#3015.enter(wl_output#18) -[2618297.551] {Default Queue} discarded wl_surface#3015.enter(wl_output#57) -[2618297.555] {Default Queue} discarded wl_surface#3015.enter(wl_output#89) -[2618297.559] {Default Queue} discarded wl_surface#3015.enter(wl_output#121) -[2618297.563] {Default Queue} discarded wl_surface#3015.enter(wl_output#153) -[2618297.567] {Default Queue} discarded wl_surface#3015.enter(wl_output#185) -[2618297.571] {Default Queue} discarded wl_surface#3015.enter(wl_output#217) -[2618297.575] {Default Queue} discarded wl_surface#3015.enter(wl_output#249) -[2618297.579] {Default Queue} discarded wl_surface#3015.enter(wl_output#281) -[2618297.583] {Default Queue} discarded wl_surface#3015.enter(wl_output#313) -[2618297.588] {Default Queue} discarded wl_surface#3015.enter(wl_output#345) -[2618297.592] {Default Queue} discarded wl_surface#3015.enter(wl_output#377) -[2618297.596] {Default Queue} discarded wl_surface#3015.enter(wl_output#409) -[2618297.599] {Default Queue} discarded wl_surface#3015.enter(wl_output#441) -[2618297.603] {Default Queue} discarded wl_surface#3015.enter(wl_output#473) -[2618297.609] {Default Queue} discarded wl_surface#3015.enter(wl_output#505) -[2618297.613] {Default Queue} discarded wl_surface#3015.enter(wl_output#537) -[2618297.617] {Default Queue} discarded wl_surface#3015.enter(wl_output#569) -[2618297.621] {Default Queue} discarded wl_surface#3015.enter(wl_output#601) -[2618297.625] {Default Queue} discarded wl_surface#3015.enter(wl_output#633) -[2618297.629] {Default Queue} discarded wl_surface#3015.enter(wl_output#665) -[2618297.632] {Default Queue} discarded wl_surface#3015.enter(wl_output#697) -[2618297.636] {Default Queue} discarded wl_surface#3015.enter(wl_output#729) -[2618297.640] {Default Queue} discarded wl_surface#3015.enter(wl_output#761) -[2618297.644] {Default Queue} discarded wl_surface#3015.enter(wl_output#793) -[2618297.648] {Default Queue} discarded wl_surface#3015.enter(wl_output#825) -[2618297.652] {Default Queue} discarded wl_surface#3015.enter(wl_output#857) -[2618297.656] {Default Queue} discarded wl_surface#3015.enter(wl_output#889) -[2618297.660] {Default Queue} discarded wl_surface#3015.enter(wl_output#921) -[2618297.664] {Default Queue} discarded wl_surface#3015.enter(wl_output#953) -[2618297.668] {Default Queue} discarded wl_surface#3015.enter(wl_output#985) -[2618297.672] {Default Queue} discarded wl_surface#3015.enter(wl_output#1017) -[2618297.676] {Default Queue} discarded wl_surface#3015.enter(wl_output#1049) -[2618297.680] {Default Queue} discarded wl_surface#3015.enter(wl_output#1081) -[2618297.684] {Default Queue} discarded wl_surface#3015.enter(wl_output#1113) -[2618297.688] {Default Queue} discarded wl_surface#3015.enter(wl_output#1145) -[2618297.692] {Default Queue} discarded wl_surface#3015.enter(wl_output#1177) -[2618297.696] {Default Queue} discarded wl_surface#3015.enter(wl_output#1209) -[2618297.700] {Default Queue} discarded wl_surface#3015.enter(wl_output#1241) -[2618297.703] {Default Queue} discarded wl_surface#3015.enter(wl_output#1273) -[2618297.708] {Default Queue} discarded wl_surface#3015.enter(wl_output#1305) -[2618297.712] {Default Queue} discarded wl_surface#3015.enter(wl_output#1337) -[2618297.716] {Default Queue} discarded wl_surface#3015.enter(wl_output#1369) -[2618297.720] {Default Queue} discarded wl_surface#3015.enter(wl_output#1401) -[2618297.724] {Default Queue} discarded wl_surface#3015.enter(wl_output#1433) -[2618297.731] {Default Queue} discarded wl_surface#3015.enter(wl_output#1465) -[2618297.736] {Default Queue} discarded wl_surface#3015.enter(wl_output#1497) -[2618297.741] {Default Queue} discarded wl_surface#3015.enter(wl_output#1529) -[2618297.745] {Default Queue} discarded wl_surface#3015.enter(wl_output#1561) -[2618297.748] {Default Queue} discarded wl_surface#3015.enter(wl_output#1593) -[2618297.752] {Default Queue} discarded wl_surface#3015.enter(wl_output#1625) -[2618297.757] {Default Queue} discarded wl_surface#3015.enter(wl_output#1657) -[2618297.761] {Default Queue} discarded wl_surface#3015.enter(wl_output#1689) -[2618297.764] {Default Queue} discarded wl_surface#3015.enter(wl_output#1721) -[2618297.768] {Default Queue} discarded wl_surface#3015.enter(wl_output#1753) -[2618297.773] {Default Queue} discarded wl_surface#3015.enter(wl_output#1785) -[2618297.777] {Default Queue} discarded wl_surface#3015.enter(wl_output#1817) -[2618297.781] {Default Queue} discarded wl_surface#3015.enter(wl_output#1849) -[2618297.784] {Default Queue} discarded wl_surface#3015.enter(wl_output#1881) -[2618297.788] {Default Queue} discarded wl_surface#3015.enter(wl_output#1913) -[2618297.793] {Default Queue} discarded wl_surface#3015.enter(wl_output#1945) -[2618297.796] {Default Queue} discarded wl_surface#3015.enter(wl_output#1977) -[2618297.801] {Default Queue} discarded wl_surface#3015.enter(wl_output#2009) -[2618297.804] {Default Queue} discarded wl_surface#3015.enter(wl_output#2041) -[2618297.808] {Default Queue} discarded wl_surface#3015.enter(wl_output#2073) -[2618297.812] {Default Queue} discarded wl_surface#3015.enter(wl_output#2105) -[2618297.816] {Default Queue} discarded wl_surface#3015.enter(wl_output#2137) -[2618297.820] {Default Queue} discarded wl_surface#3015.enter(wl_output#2169) -[2618297.824] {Default Queue} discarded wl_surface#3015.enter(wl_output#2201) -[2618297.828] {Default Queue} discarded wl_surface#3015.enter(wl_output#2233) -[2618297.832] {Default Queue} discarded wl_surface#3015.enter(wl_output#2265) -[2618297.836] {Default Queue} discarded wl_surface#3015.enter(wl_output#2297) -[2618297.840] {Default Queue} discarded wl_surface#3015.enter(wl_output#2329) -[2618297.844] {Default Queue} discarded wl_surface#3015.enter(wl_output#2361) -[2618297.848] {Default Queue} discarded wl_surface#3015.enter(wl_output#2393) -[2618297.852] {Default Queue} discarded wl_surface#3015.enter(wl_output#2425) -[2618297.856] {Default Queue} discarded wl_surface#3015.enter(wl_output#2457) -[2618297.860] {Default Queue} discarded wl_surface#3015.enter(wl_output#2489) -[2618297.870] {Default Queue} discarded wl_surface#3015.enter(wl_output#2521) -[2618297.874] {Default Queue} discarded wl_surface#3015.enter(wl_output#2553) -[2618297.878] {Default Queue} discarded wl_surface#3015.enter(wl_output#2585) -[2618297.883] {Default Queue} -> wl_compositor#3020.create_surface(new id wl_surface#3047) -[2618297.887] {Default Queue} -> wl_subcompositor#3053.get_subsurface(new id wl_subsurface#3066, wl_surface#3047, wl_surface#3015) -[2618297.896] {Default Queue} -> wl_subsurface#3066.set_desync() -[2618297.900] {Default Queue} -> wl_subsurface#3066.set_position(0, 0) -[2618297.905] {Default Queue} -> wl_subsurface#3066.place_above(wl_surface#3015) -[2618297.958] {Default Queue} -> wl_shm#3055.create_pool(new id wl_shm_pool#3067, fd 484, 16) -[2618297.966] {Default Queue} -> wl_shm#3055.create_pool(new id wl_shm_pool#3068, fd 485, 16) -[2618297.970] {Default Queue} -> wl_shm_pool#3067.create_buffer(new id wl_buffer#3069, 0, 2, 2, 8, 0) -[2618297.975] {Default Queue} -> wl_shm_pool#3068.create_buffer(new id wl_buffer#3070, 0, 2, 2, 8, 0) -[2618297.986] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3069, 0, 0) -[2618297.992] {Default Queue} -> wl_surface#3047.commit() -[2618298.000] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3069, 0, 0) -[2618298.006] {Default Queue} -> wl_surface#3047.commit() -[2618298.012] {Default Queue} -> wl_compositor#3052.create_region(new id wl_region#3071) -[2618298.019] {Default Queue} -> wl_compositor#3052.create_region(new id wl_region#3072) -[2618298.030] {Default Queue} -> wl_region#3071.subtract(0, 0, 2, 2) -[2618298.040] {Default Queue} -> wl_region#3071.add(0, 0, 0, 0) -[2618298.046] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) -[2618298.052] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) -[2618298.057] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) -[2618298.063] {Default Queue} -> wl_surface#3015.damage(0, 0, 2, 2) -[2618298.073] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3069, 0, 0) -[2618298.079] {Default Queue} -> wl_surface#3047.commit() -[2618298.135] {Default Queue} -> wl_shm#3057.create_pool(new id wl_shm_pool#3073, fd 488, 640) -[2618298.148] {Default Queue} -> wl_shm#3057.create_pool(new id wl_shm_pool#3074, fd 489, 640) -[2618298.155] {Default Queue} -> wl_shm_pool#3073.create_buffer(new id wl_buffer#3075, 0, 10, 16, 40, 0) -[2618298.161] {Default Queue} -> wl_shm_pool#3074.create_buffer(new id wl_buffer#3076, 0, 10, 16, 40, 0) -[2618298.169] {Default Queue} -> wl_compositor#3052.create_surface(new id wl_surface#3077) -[2618298.174] {Default Queue} -> wl_surface#3077.attach(wl_buffer#3075, 0, 0) -[2618298.180] {Default Queue} -> wl_surface#3077.commit() -[2618298.189] {Default Queue} -> wl_surface#3077.attach(wl_buffer#3075, 0, 0) -[2618298.195] {Default Queue} -> wl_surface#3077.commit() -[2618298.203] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) -[2618298.213] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3078) -[2618298.221] {Default Queue} -> wl_display#1.sync(new id wl_callback#3079) -[2618300.732] {Default Queue} discarded wl_surface#3015.enter(wl_output#2617) -[2618300.746] {Default Queue} discarded wl_surface#3015.enter(wl_output#2649) -[2618300.752] {Default Queue} discarded wl_surface#3015.enter(wl_output#2681) -[2618300.757] {Default Queue} discarded wl_surface#3015.enter(wl_output#2713) -[2618300.762] {Default Queue} discarded wl_surface#3015.enter(wl_output#2745) -[2618300.766] {Default Queue} discarded wl_surface#3015.enter(wl_output#2777) -[2618300.772] {Default Queue} discarded wl_surface#3015.enter(wl_output#2809) -[2618300.776] {Default Queue} discarded wl_surface#3015.enter(wl_output#2841) -[2618300.781] {Default Queue} discarded wl_surface#3015.enter(wl_output#2873) -[2618300.786] {Default Queue} discarded wl_surface#3015.enter(wl_output#2905) -[2618300.791] {Default Queue} discarded wl_surface#3015.enter(wl_output#2937) -[2618300.796] {Default Queue} discarded wl_surface#3015.enter(wl_output#2969) -[2618300.801] {Default Queue} discarded wl_surface#3015.enter(wl_output#3001) -[2618300.806] {Default Queue} discarded wl_surface#3015.enter(wl_output#3033) -[2618301.067] {Display Queue} wl_display#1.delete_id(3079) -[2618301.083] {Default Queue} wl_keyboard#3048.keymap(1, fd 484, 68213) -[2618301.089] {Default Queue} wl_keyboard#3048.enter(566, wl_surface#19, array[0]) -[2618301.095] {Default Queue} wl_keyboard#3048.modifiers(566, 0, 0, 16, 0) -[2618301.101] {Default Queue} discarded wl_shm#3055.format(875709016) -[2618301.106] {Default Queue} discarded wl_shm#3055.format(1) -[2618301.111] {Default Queue} discarded wl_shm#3055.format(0) -[2618301.116] {Default Queue} discarded wl_shm#3055.format(875708993) -[2618301.121] {Default Queue} discarded wl_shm#3056.format(875709016) -[2618301.126] {Default Queue} discarded wl_shm#3056.format(1) -[2618301.131] {Default Queue} discarded wl_shm#3056.format(0) -[2618301.136] {Default Queue} discarded wl_shm#3056.format(875708993) -[2618301.141] {Default Queue} discarded wl_shm#3057.format(875709016) -[2618301.145] {Default Queue} discarded wl_shm#3057.format(1) -[2618301.150] {Default Queue} discarded wl_shm#3057.format(0) -[2618301.155] {Default Queue} discarded wl_shm#3057.format(875708993) -[2618301.160] {Default Queue} wl_seat#3064.capabilities(7) -[2618301.166] {Default Queue} -> wl_seat#3064.get_keyboard(new id wl_keyboard#3080) -[2618301.172] {Default Queue} -> wl_seat#3064.get_pointer(new id wl_pointer#3081) -[2618301.177] {Default Queue} -> wl_data_device_manager#3060.get_data_device(new id wl_data_device#3082, wl_seat#3064) -[2618301.188] {Default Queue} -> zwp_primary_selection_device_manager_v1#3062.get_device(new id zwp_primary_selection_device_v1#3083, wl_seat#3064) -[2618301.202] {Default Queue} wl_output#3065.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618301.209] {Default Queue} wl_output#3065.mode(3, 1280, 800, 60000) -[2618301.214] {Default Queue} discarded wl_surface#2727.enter(wl_output#3065) -[2618301.220] {Default Queue} discarded wl_surface#3.enter(wl_output#3065) -[2618301.224] {Default Queue} discarded wl_surface#999.enter(wl_output#3065) -[2618301.229] {Default Queue} discarded wl_surface#1191.enter(wl_output#3065) -[2618301.234] {Default Queue} discarded wl_surface#1159.enter(wl_output#3065) -[2618301.239] {Default Queue} discarded wl_surface#1703.enter(wl_output#3065) -[2618301.244] {Default Queue} discarded wl_surface#2215.enter(wl_output#3065) -[2618301.249] {Default Queue} discarded wl_surface#423.enter(wl_output#3065) -[2618301.254] {Default Queue} discarded wl_surface#1447.enter(wl_output#3065) -[2618301.259] {Default Queue} discarded wl_surface#2023.enter(wl_output#3065) -[2618301.263] {Default Queue} discarded wl_surface#1639.enter(wl_output#3065) -[2618301.269] {Default Queue} discarded wl_surface#1319.enter(wl_output#3065) -[2618301.274] {Default Queue} discarded wl_surface#1127.enter(wl_output#3065) -[2618301.278] {Default Queue} discarded wl_surface#2151.enter(wl_output#3065) -[2618301.282] {Default Queue} discarded wl_surface#2375.enter(wl_output#3065) -[2618301.285] {Default Queue} discarded wl_surface#2695.enter(wl_output#3065) -[2618301.289] {Default Queue} discarded wl_surface#2919.enter(wl_output#3065) -[2618301.293] {Default Queue} discarded wl_surface#1063.enter(wl_output#3065) -[2618301.297] {Default Queue} discarded wl_surface#455.enter(wl_output#3065) -[2618301.301] {Default Queue} discarded wl_surface#1575.enter(wl_output#3065) -[2618301.305] {Default Queue} discarded wl_surface#1799.enter(wl_output#3065) -[2618301.309] {Default Queue} discarded wl_surface#1415.enter(wl_output#3065) -[2618301.312] {Default Queue} discarded wl_surface#2439.enter(wl_output#3065) -[2618301.316] {Default Queue} discarded wl_surface#2279.enter(wl_output#3065) -[2618301.320] {Default Queue} discarded wl_surface#1831.enter(wl_output#3065) -[2618301.324] {Default Queue} discarded wl_surface#903.enter(wl_output#3065) -[2618301.328] {Default Queue} discarded wl_surface#2663.enter(wl_output#3065) -[2618301.332] {Default Queue} discarded wl_surface#775.enter(wl_output#3065) -[2618301.336] {Default Queue} discarded wl_surface#1991.enter(wl_output#3065) -[2618301.340] {Default Queue} discarded wl_surface#1543.enter(wl_output#3065) -[2618301.344] {Default Queue} discarded wl_surface#135.enter(wl_output#3065) -[2618301.348] {Default Queue} discarded wl_surface#1287.enter(wl_output#3065) -[2618301.351] {Default Queue} discarded wl_surface#1031.enter(wl_output#3065) -[2618301.355] {Default Queue} discarded wl_surface#615.enter(wl_output#3065) -[2618301.359] {Default Queue} discarded wl_surface#231.enter(wl_output#3065) -[2618301.363] {Default Queue} discarded wl_surface#2343.enter(wl_output#3065) -[2618301.367] {Default Queue} discarded wl_surface#1863.enter(wl_output#3065) -[2618301.371] {Default Queue} discarded wl_surface#359.enter(wl_output#3065) -[2618301.375] {Default Queue} discarded wl_surface#2983.enter(wl_output#3065) -[2618301.379] {Default Queue} discarded wl_surface#583.enter(wl_output#3065) -[2618301.382] {Default Queue} discarded wl_surface#743.enter(wl_output#3065) -[2618301.386] {Default Queue} discarded wl_surface#2535.enter(wl_output#3065) -[2618301.390] {Default Queue} discarded wl_surface#967.enter(wl_output#3065) -[2618301.394] {Default Queue} discarded wl_surface#103.enter(wl_output#3065) -[2618301.398] {Default Queue} discarded wl_surface#327.enter(wl_output#3065) -[2618301.402] {Default Queue} discarded wl_surface#43.enter(wl_output#3065) -[2618301.406] {Default Queue} discarded wl_surface#2247.enter(wl_output#3065) -[2618301.410] {Default Queue} discarded wl_surface#807.enter(wl_output#3065) -[2618301.414] {Default Queue} discarded wl_surface#19.enter(wl_output#3065) -[2618301.421] {Default Queue} discarded wl_surface#2951.enter(wl_output#3065) -[2618301.426] {Default Queue} discarded wl_surface#1511.enter(wl_output#3065) -[2618301.430] {Default Queue} discarded wl_surface#199.enter(wl_output#3065) -[2618301.434] {Default Queue} discarded wl_surface#391.enter(wl_output#3065) -[2618301.438] {Default Queue} discarded wl_surface#935.enter(wl_output#3065) -[2618301.442] {Default Queue} discarded wl_surface#2823.enter(wl_output#3065) -[2618301.446] {Default Queue} discarded wl_surface#3015.enter(wl_output#3065) -[2618301.449] {Default Queue} discarded wl_surface#1671.enter(wl_output#3065) -[2618301.453] {Default Queue} discarded wl_surface#1351.enter(wl_output#3065) -[2618301.457] {Default Queue} discarded wl_surface#711.enter(wl_output#3065) -[2618301.462] {Default Queue} discarded wl_surface#1223.enter(wl_output#3065) -[2618301.466] {Default Queue} discarded wl_surface#1927.enter(wl_output#3065) -[2618301.469] {Default Queue} discarded wl_surface#871.enter(wl_output#3065) -[2618301.473] {Default Queue} discarded wl_surface#1895.enter(wl_output#3065) -[2618301.477] {Default Queue} discarded wl_surface#263.enter(wl_output#3065) -[2618301.481] {Default Queue} discarded wl_surface#551.enter(wl_output#3065) -[2618301.485] {Default Queue} discarded wl_surface#1735.enter(wl_output#3065) -[2618301.489] {Default Queue} discarded wl_surface#1479.enter(wl_output#3065) -[2618301.493] {Default Queue} discarded wl_surface#1772.enter(wl_output#3065) -[2618301.497] {Default Queue} discarded wl_surface#2599.enter(wl_output#3065) -[2618301.501] {Default Queue} discarded wl_surface#2631.enter(wl_output#3065) -[2618301.504] {Default Queue} discarded wl_surface#1959.enter(wl_output#3065) -[2618301.508] {Default Queue} discarded wl_surface#647.enter(wl_output#3065) -[2618301.512] {Default Queue} discarded wl_surface#2055.enter(wl_output#3065) -[2618301.516] {Default Queue} discarded wl_surface#2508.enter(wl_output#3065) -[2618301.520] {Default Queue} discarded wl_surface#71.enter(wl_output#3065) -[2618301.524] {Default Queue} discarded wl_surface#2759.enter(wl_output#3065) -[2618301.528] {Default Queue} discarded wl_surface#2791.enter(wl_output#3065) -[2618301.532] {Default Queue} discarded wl_surface#2887.enter(wl_output#3065) -[2618301.536] {Default Queue} discarded wl_surface#2183.enter(wl_output#3065) -[2618301.539] {Default Queue} discarded wl_surface#2567.enter(wl_output#3065) -[2618301.543] {Default Queue} discarded wl_surface#839.enter(wl_output#3065) -[2618301.547] {Default Queue} discarded wl_surface#1607.enter(wl_output#3065) -[2618301.551] {Default Queue} discarded wl_surface#1095.enter(wl_output#3065) -[2618301.555] {Default Queue} discarded wl_surface#1383.enter(wl_output#3065) -[2618301.559] {Default Queue} discarded wl_surface#487.enter(wl_output#3065) -[2618301.563] {Default Queue} discarded wl_surface#2311.enter(wl_output#3065) -[2618301.567] {Default Queue} discarded wl_surface#519.enter(wl_output#3065) -[2618301.571] {Default Queue} discarded wl_surface#2087.enter(wl_output#3065) -[2618301.575] {Default Queue} discarded wl_surface#2471.enter(wl_output#3065) -[2618301.578] {Default Queue} discarded wl_surface#295.enter(wl_output#3065) -[2618301.582] {Default Queue} discarded wl_surface#167.enter(wl_output#3065) -[2618301.586] {Default Queue} discarded wl_surface#1255.enter(wl_output#3065) -[2618301.590] {Default Queue} discarded wl_surface#2855.enter(wl_output#3065) -[2618301.594] {Default Queue} discarded wl_surface#679.enter(wl_output#3065) -[2618301.598] {Default Queue} discarded wl_surface#2407.enter(wl_output#3065) -[2618301.602] {Default Queue} discarded wl_surface#2119.enter(wl_output#3065) -[2618301.606] {Default Queue} wl_registry#3078.global(1, "wl_compositor", 6) -[2618301.611] {Default Queue} -> wl_registry#3078.bind(1, "wl_compositor", 1, new id [unknown]#3084) -[2618301.616] {Default Queue} wl_registry#3078.global(2, "wl_subcompositor", 1) -[2618301.620] {Default Queue} -> wl_registry#3078.bind(2, "wl_subcompositor", 1, new id [unknown]#3085) -[2618301.625] {Default Queue} wl_registry#3078.global(3, "xdg_wm_base", 6) -[2618301.632] {Default Queue} -> wl_registry#3078.bind(3, "xdg_wm_base", 1, new id [unknown]#3086) -[2618301.638] {Default Queue} wl_registry#3078.global(6, "zwlr_layer_shell_v1", 5) -[2618301.643] {Default Queue} wl_registry#3078.global(7, "ext_session_lock_manager_v1", 1) -[2618301.648] {Default Queue} wl_registry#3078.global(8, "wl_shm", 2) -[2618301.652] {Default Queue} -> wl_registry#3078.bind(8, "wl_shm", 1, new id [unknown]#3087) -[2618301.657] {Default Queue} -> wl_registry#3078.bind(8, "wl_shm", 1, new id [unknown]#3088) -[2618301.661] {Default Queue} -> wl_registry#3078.bind(8, "wl_shm", 1, new id [unknown]#3089) -[2618301.665] {Default Queue} wl_registry#3078.global(9, "zxdg_output_manager_v1", 3) -[2618301.670] {Default Queue} wl_registry#3078.global(10, "wp_fractional_scale_manager_v1", 1) -[2618301.674] {Default Queue} wl_registry#3078.global(11, "zwp_tablet_manager_v2", 1) -[2618301.678] {Default Queue} wl_registry#3078.global(12, "zwp_pointer_gestures_v1", 3) -[2618301.683] {Default Queue} wl_registry#3078.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618301.687] {Default Queue} -> wl_registry#3078.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3090) -[2618301.692] {Default Queue} wl_registry#3078.global(14, "zwp_pointer_constraints_v1", 1) -[2618301.696] {Default Queue} -> wl_registry#3078.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3091) -[2618301.701] {Default Queue} wl_registry#3078.global(15, "ext_idle_notifier_v1", 2) -[2618301.705] {Default Queue} wl_registry#3078.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618301.710] {Default Queue} wl_registry#3078.global(17, "wl_data_device_manager", 3) -[2618301.714] {Default Queue} -> wl_registry#3078.bind(17, "wl_data_device_manager", 2, new id [unknown]#3092) -[2618301.719] {Default Queue} -> wl_data_device_manager#3092.create_data_source(new id wl_data_source#3093) -[2618301.723] {Default Queue} -> wl_data_source#3093.offer("text/plain") -[2618301.727] {Default Queue} -> wl_data_source#3093.offer("text/plain;charset=utf-8") -[2618301.732] {Default Queue} -> wl_data_source#3093.offer("TEXT") -[2618301.735] {Default Queue} -> wl_data_source#3093.offer("STRING") -[2618301.739] {Default Queue} -> wl_data_source#3093.offer("UTF8_STRING") -[2618301.744] {Default Queue} wl_registry#3078.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618301.748] {Default Queue} -> wl_registry#3078.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3094) -[2618301.756] {Default Queue} -> zwp_primary_selection_device_manager_v1#3094.create_source(new id zwp_primary_selection_source_v1#3095) -[2618301.764] {Default Queue} -> zwp_primary_selection_source_v1#3095.offer("text/plain") -[2618301.768] {Default Queue} -> zwp_primary_selection_source_v1#3095.offer("text/plain;charset=utf-8") -[2618301.772] {Default Queue} -> zwp_primary_selection_source_v1#3095.offer("TEXT") -[2618301.776] {Default Queue} -> zwp_primary_selection_source_v1#3095.offer("STRING") -[2618301.780] {Default Queue} -> zwp_primary_selection_source_v1#3095.offer("UTF8_STRING") -[2618301.784] {Default Queue} wl_registry#3078.global(19, "zwlr_data_control_manager_v1", 2) -[2618301.789] {Default Queue} wl_registry#3078.global(20, "ext_data_control_manager_v1", 1) -[2618301.793] {Default Queue} wl_registry#3078.global(21, "wp_presentation", 2) -[2618301.798] {Default Queue} wl_registry#3078.global(22, "wp_security_context_manager_v1", 1) -[2618301.803] {Default Queue} wl_registry#3078.global(23, "zwp_text_input_manager_v3", 1) -[2618301.808] {Default Queue} wl_registry#3078.global(24, "zwp_input_method_manager_v2", 1) -[2618301.812] {Default Queue} wl_registry#3078.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618301.816] {Default Queue} wl_registry#3078.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618301.820] {Default Queue} wl_registry#3078.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618301.825] {Default Queue} wl_registry#3078.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618301.829] {Default Queue} wl_registry#3078.global(29, "ext_workspace_manager_v1", 1) -[2618301.841] {Default Queue} wl_registry#3078.global(30, "zwlr_output_manager_v1", 4) -[2618301.847] {Default Queue} wl_registry#3078.global(31, "zwlr_screencopy_manager_v1", 3) -[2618301.851] {Default Queue} wl_registry#3078.global(32, "wp_viewporter", 1) -[2618301.855] {Default Queue} wl_registry#3078.global(33, "zxdg_exporter_v2", 1) -[2618301.860] {Default Queue} wl_registry#3078.global(34, "zxdg_importer_v2", 1) -[2618301.870] {Default Queue} wl_registry#3078.global(36, "xdg_activation_v1", 1) -[2618301.874] {Default Queue} wl_registry#3078.global(37, "mutter_x11_interop", 1) -[2618301.878] {Default Queue} wl_registry#3078.global(38, "wl_seat", 9) -[2618301.883] {Default Queue} -> wl_registry#3078.bind(38, "wl_seat", 1, new id [unknown]#3096) -[2618301.887] {Default Queue} wl_registry#3078.global(39, "wp_cursor_shape_manager_v1", 2) -[2618301.892] {Default Queue} wl_registry#3078.global(40, "wl_output", 4) -[2618301.896] {Default Queue} -> wl_registry#3078.bind(40, "wl_output", 1, new id [unknown]#3097) -[2618301.901] {Default Queue} wl_callback#3079.done(0) -[2618301.905] {Default Queue} discarded wl_surface#3047.enter(wl_output#18) -[2618301.909] {Default Queue} discarded wl_surface#3047.enter(wl_output#57) -[2618301.913] {Default Queue} discarded wl_surface#3047.enter(wl_output#89) -[2618301.919] {Default Queue} discarded wl_surface#3047.enter(wl_output#121) -[2618301.924] {Default Queue} discarded wl_surface#3047.enter(wl_output#153) -[2618301.929] {Default Queue} discarded wl_surface#3047.enter(wl_output#185) -[2618301.935] {Default Queue} discarded wl_surface#3047.enter(wl_output#217) -[2618301.940] {Default Queue} discarded wl_surface#3047.enter(wl_output#249) -[2618301.944] {Default Queue} discarded wl_surface#3047.enter(wl_output#281) -[2618301.948] {Default Queue} discarded wl_surface#3047.enter(wl_output#313) -[2618301.952] {Default Queue} discarded wl_surface#3047.enter(wl_output#345) -[2618301.956] {Default Queue} discarded wl_surface#3047.enter(wl_output#377) -[2618301.960] {Default Queue} discarded wl_surface#3047.enter(wl_output#409) -[2618301.964] {Default Queue} discarded wl_surface#3047.enter(wl_output#441) -[2618301.968] {Default Queue} discarded wl_surface#3047.enter(wl_output#473) -[2618301.972] {Default Queue} discarded wl_surface#3047.enter(wl_output#505) -[2618301.976] {Default Queue} discarded wl_surface#3047.enter(wl_output#537) -[2618301.980] {Default Queue} discarded wl_surface#3047.enter(wl_output#569) -[2618301.984] {Default Queue} discarded wl_surface#3047.enter(wl_output#601) -[2618301.988] {Default Queue} discarded wl_surface#3047.enter(wl_output#633) -[2618301.992] {Default Queue} discarded wl_surface#3047.enter(wl_output#665) -[2618301.996] {Default Queue} discarded wl_surface#3047.enter(wl_output#697) -[2618302.000] {Default Queue} discarded wl_surface#3047.enter(wl_output#729) -[2618302.004] {Default Queue} discarded wl_surface#3047.enter(wl_output#761) -[2618302.008] {Default Queue} discarded wl_surface#3047.enter(wl_output#793) -[2618302.012] {Default Queue} discarded wl_surface#3047.enter(wl_output#825) -[2618302.016] {Default Queue} discarded wl_surface#3047.enter(wl_output#857) -[2618302.020] {Default Queue} discarded wl_surface#3047.enter(wl_output#889) -[2618302.024] {Default Queue} discarded wl_surface#3047.enter(wl_output#921) -[2618302.028] {Default Queue} discarded wl_surface#3047.enter(wl_output#953) -[2618302.032] {Default Queue} discarded wl_surface#3047.enter(wl_output#985) -[2618302.036] {Default Queue} discarded wl_surface#3047.enter(wl_output#1017) -[2618302.040] {Default Queue} discarded wl_surface#3047.enter(wl_output#1049) -[2618302.044] {Default Queue} discarded wl_surface#3047.enter(wl_output#1081) -[2618302.047] {Default Queue} discarded wl_surface#3047.enter(wl_output#1113) -[2618302.051] {Default Queue} discarded wl_surface#3047.enter(wl_output#1145) -[2618302.056] {Default Queue} discarded wl_surface#3047.enter(wl_output#1177) -[2618302.060] {Default Queue} discarded wl_surface#3047.enter(wl_output#1209) -[2618302.064] {Default Queue} discarded wl_surface#3047.enter(wl_output#1241) -[2618302.071] {Default Queue} discarded wl_surface#3047.enter(wl_output#1273) -[2618302.077] {Default Queue} discarded wl_surface#3047.enter(wl_output#1305) -[2618302.081] {Default Queue} discarded wl_surface#3047.enter(wl_output#1337) -[2618302.085] {Default Queue} discarded wl_surface#3047.enter(wl_output#1369) -[2618302.090] {Default Queue} discarded wl_surface#3047.enter(wl_output#1401) -[2618302.094] {Default Queue} discarded wl_surface#3047.enter(wl_output#1433) -[2618302.098] {Default Queue} discarded wl_surface#3047.enter(wl_output#1465) -[2618302.102] {Default Queue} discarded wl_surface#3047.enter(wl_output#1497) -[2618302.106] {Default Queue} discarded wl_surface#3047.enter(wl_output#1529) -[2618302.110] {Default Queue} discarded wl_surface#3047.enter(wl_output#1561) -[2618302.114] {Default Queue} discarded wl_surface#3047.enter(wl_output#1593) -[2618302.118] {Default Queue} discarded wl_surface#3047.enter(wl_output#1625) -[2618302.123] {Default Queue} discarded wl_surface#3047.enter(wl_output#1657) -[2618302.127] {Default Queue} discarded wl_surface#3047.enter(wl_output#1689) -[2618302.131] {Default Queue} discarded wl_surface#3047.enter(wl_output#1721) -[2618302.134] {Default Queue} discarded wl_surface#3047.enter(wl_output#1753) -[2618302.138] {Default Queue} discarded wl_surface#3047.enter(wl_output#1785) -[2618302.143] {Default Queue} discarded wl_surface#3047.enter(wl_output#1817) -[2618302.147] {Default Queue} discarded wl_surface#3047.enter(wl_output#1849) -[2618302.150] {Default Queue} discarded wl_surface#3047.enter(wl_output#1881) -[2618302.154] {Default Queue} discarded wl_surface#3047.enter(wl_output#1913) -[2618302.158] {Default Queue} discarded wl_surface#3047.enter(wl_output#1945) -[2618302.162] {Default Queue} discarded wl_surface#3047.enter(wl_output#1977) -[2618302.166] {Default Queue} discarded wl_surface#3047.enter(wl_output#2009) -[2618302.170] {Default Queue} discarded wl_surface#3047.enter(wl_output#2041) -[2618302.174] {Default Queue} discarded wl_surface#3047.enter(wl_output#2073) -[2618302.178] {Default Queue} discarded wl_surface#3047.enter(wl_output#2105) -[2618302.183] {Default Queue} discarded wl_surface#3047.enter(wl_output#2137) -[2618302.187] {Default Queue} discarded wl_surface#3047.enter(wl_output#2169) -[2618302.191] {Default Queue} discarded wl_surface#3047.enter(wl_output#2201) -[2618302.194] {Default Queue} discarded wl_surface#3047.enter(wl_output#2233) -[2618302.198] {Default Queue} discarded wl_surface#3047.enter(wl_output#2265) -[2618302.202] {Default Queue} discarded wl_surface#3047.enter(wl_output#2297) -[2618302.206] {Default Queue} discarded wl_surface#3047.enter(wl_output#2329) -[2618302.210] {Default Queue} discarded wl_surface#3047.enter(wl_output#2361) -[2618302.214] {Default Queue} discarded wl_surface#3047.enter(wl_output#2393) -[2618302.218] {Default Queue} discarded wl_surface#3047.enter(wl_output#2425) -[2618302.222] {Default Queue} discarded wl_surface#3047.enter(wl_output#2457) -[2618302.226] {Default Queue} discarded wl_surface#3047.enter(wl_output#2489) -[2618302.230] {Default Queue} discarded wl_surface#3047.enter(wl_output#2521) -[2618302.234] {Default Queue} discarded wl_surface#3047.enter(wl_output#2553) -[2618302.238] {Default Queue} -> wl_compositor#3052.create_surface(new id wl_surface#3079) -[2618302.243] {Default Queue} -> wl_subcompositor#3085.get_subsurface(new id wl_subsurface#3098, wl_surface#3079, wl_surface#3047) -[2618302.251] {Default Queue} -> wl_subsurface#3098.set_desync() -[2618302.256] {Default Queue} -> wl_subsurface#3098.set_position(0, 0) -[2618302.260] {Default Queue} -> wl_subsurface#3098.place_above(wl_surface#3047) -[2618302.302] {Default Queue} -> wl_shm#3087.create_pool(new id wl_shm_pool#3099, fd 489, 16) -[2618302.309] {Default Queue} -> wl_shm#3087.create_pool(new id wl_shm_pool#3100, fd 490, 16) -[2618302.313] {Default Queue} -> wl_shm_pool#3099.create_buffer(new id wl_buffer#3101, 0, 2, 2, 8, 0) -[2618302.319] {Default Queue} -> wl_shm_pool#3100.create_buffer(new id wl_buffer#3102, 0, 2, 2, 8, 0) -[2618302.327] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) -[2618302.335] {Default Queue} -> wl_surface#3079.commit() -[2618302.342] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) -[2618302.347] {Default Queue} -> wl_surface#3079.commit() -[2618302.351] {Default Queue} -> wl_compositor#3084.create_region(new id wl_region#3103) -[2618302.356] {Default Queue} -> wl_compositor#3084.create_region(new id wl_region#3104) -[2618302.360] {Default Queue} -> wl_region#3103.subtract(0, 0, 2, 2) -[2618302.365] {Default Queue} -> wl_region#3103.add(0, 0, 0, 0) -[2618302.369] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2618302.373] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2618302.378] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618302.382] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) -[2618302.389] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) -[2618302.394] {Default Queue} -> wl_surface#3079.commit() -[2618302.432] {Default Queue} -> wl_shm#3089.create_pool(new id wl_shm_pool#3105, fd 493, 640) -[2618302.439] {Default Queue} -> wl_shm#3089.create_pool(new id wl_shm_pool#3106, fd 494, 640) -[2618302.443] {Default Queue} -> wl_shm_pool#3105.create_buffer(new id wl_buffer#3107, 0, 10, 16, 40, 0) -[2618302.448] {Default Queue} -> wl_shm_pool#3106.create_buffer(new id wl_buffer#3108, 0, 10, 16, 40, 0) -[2618302.455] {Default Queue} -> wl_compositor#3084.create_surface(new id wl_surface#3109) -[2618302.459] {Default Queue} -> wl_surface#3109.attach(wl_buffer#3107, 0, 0) -[2618302.464] {Default Queue} -> wl_surface#3109.commit() -[2618302.469] {Default Queue} -> wl_surface#3109.attach(wl_buffer#3107, 0, 0) -[2618302.473] {Default Queue} -> wl_surface#3109.commit() -[2618302.479] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) -[2618302.485] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618302.490] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618302.497] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3110) -[2618302.502] {Default Queue} -> wl_display#1.sync(new id wl_callback#3111) -[2618305.508] {Default Queue} discarded wl_surface#3047.enter(wl_output#2585) -[2618305.520] {Default Queue} discarded wl_surface#3047.enter(wl_output#2617) -[2618305.525] {Default Queue} discarded wl_surface#3047.enter(wl_output#2649) -[2618305.529] {Default Queue} discarded wl_surface#3047.enter(wl_output#2681) -[2618305.534] {Default Queue} discarded wl_surface#3047.enter(wl_output#2713) -[2618305.537] {Default Queue} discarded wl_surface#3047.enter(wl_output#2745) -[2618305.541] {Default Queue} discarded wl_surface#3047.enter(wl_output#2777) -[2618305.545] {Default Queue} discarded wl_surface#3047.enter(wl_output#2809) -[2618305.549] {Default Queue} discarded wl_surface#3047.enter(wl_output#2841) -[2618305.554] {Default Queue} discarded wl_surface#3047.enter(wl_output#2873) -[2618305.557] {Default Queue} discarded wl_surface#3047.enter(wl_output#2905) -[2618305.561] {Default Queue} discarded wl_surface#3047.enter(wl_output#2937) -[2618305.565] {Default Queue} discarded wl_surface#3047.enter(wl_output#2969) -[2618305.569] {Default Queue} discarded wl_surface#3047.enter(wl_output#3001) -[2618305.573] {Default Queue} discarded wl_surface#3047.enter(wl_output#3033) -[2618305.577] {Default Queue} discarded wl_surface#3047.enter(wl_output#3065) -[2618305.826] {Display Queue} wl_display#1.delete_id(3111) -[2618305.833] {Default Queue} wl_keyboard#3080.keymap(1, fd 489, 68213) -[2618305.838] {Default Queue} wl_keyboard#3080.enter(566, wl_surface#19, array[0]) -[2618305.843] {Default Queue} wl_keyboard#3080.modifiers(566, 0, 0, 16, 0) -[2618305.847] {Default Queue} discarded wl_shm#3087.format(875709016) -[2618305.851] {Default Queue} discarded wl_shm#3087.format(1) -[2618305.855] {Default Queue} discarded wl_shm#3087.format(0) -[2618305.859] {Default Queue} discarded wl_shm#3087.format(875708993) -[2618305.868] {Default Queue} discarded wl_shm#3088.format(875709016) -[2618305.872] {Default Queue} discarded wl_shm#3088.format(1) -[2618305.876] {Default Queue} discarded wl_shm#3088.format(0) -[2618305.885] {Default Queue} discarded wl_shm#3088.format(875708993) -[2618305.892] {Default Queue} discarded wl_shm#3089.format(875709016) -[2618305.896] {Default Queue} discarded wl_shm#3089.format(1) -[2618305.900] {Default Queue} discarded wl_shm#3089.format(0) -[2618305.904] {Default Queue} discarded wl_shm#3089.format(875708993) -[2618305.908] {Default Queue} wl_seat#3096.capabilities(7) -[2618305.912] {Default Queue} -> wl_seat#3096.get_keyboard(new id wl_keyboard#3112) -[2618305.917] {Default Queue} -> wl_seat#3096.get_pointer(new id wl_pointer#3113) -[2618305.921] {Default Queue} -> wl_data_device_manager#3092.get_data_device(new id wl_data_device#3114, wl_seat#3096) -[2618305.926] {Default Queue} -> zwp_primary_selection_device_manager_v1#3094.get_device(new id zwp_primary_selection_device_v1#3115, wl_seat#3096) -[2618305.934] {Default Queue} wl_output#3097.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618305.938] {Default Queue} wl_output#3097.mode(3, 1280, 800, 60000) -[2618305.943] {Default Queue} discarded wl_surface#2727.enter(wl_output#3097) -[2618305.947] {Default Queue} discarded wl_surface#3.enter(wl_output#3097) -[2618305.951] {Default Queue} discarded wl_surface#999.enter(wl_output#3097) -[2618305.955] {Default Queue} discarded wl_surface#1191.enter(wl_output#3097) -[2618305.959] {Default Queue} discarded wl_surface#1159.enter(wl_output#3097) -[2618305.963] {Default Queue} discarded wl_surface#1703.enter(wl_output#3097) -[2618305.967] {Default Queue} discarded wl_surface#2215.enter(wl_output#3097) -[2618305.971] {Default Queue} discarded wl_surface#423.enter(wl_output#3097) -[2618305.975] {Default Queue} discarded wl_surface#1447.enter(wl_output#3097) -[2618305.978] {Default Queue} discarded wl_surface#3047.enter(wl_output#3097) -[2618305.982] {Default Queue} discarded wl_surface#2023.enter(wl_output#3097) -[2618305.986] {Default Queue} discarded wl_surface#1639.enter(wl_output#3097) -[2618305.990] {Default Queue} discarded wl_surface#1319.enter(wl_output#3097) -[2618305.994] {Default Queue} discarded wl_surface#1127.enter(wl_output#3097) -[2618305.998] {Default Queue} discarded wl_surface#2151.enter(wl_output#3097) -[2618306.002] {Default Queue} discarded wl_surface#2375.enter(wl_output#3097) -[2618306.006] {Default Queue} discarded wl_surface#2695.enter(wl_output#3097) -[2618306.010] {Default Queue} discarded wl_surface#2919.enter(wl_output#3097) -[2618306.014] {Default Queue} discarded wl_surface#1063.enter(wl_output#3097) -[2618306.018] {Default Queue} discarded wl_surface#455.enter(wl_output#3097) -[2618306.022] {Default Queue} discarded wl_surface#1575.enter(wl_output#3097) -[2618306.026] {Default Queue} discarded wl_surface#1799.enter(wl_output#3097) -[2618306.030] {Default Queue} discarded wl_surface#1415.enter(wl_output#3097) -[2618306.034] {Default Queue} discarded wl_surface#2439.enter(wl_output#3097) -[2618306.038] {Default Queue} discarded wl_surface#2279.enter(wl_output#3097) -[2618306.042] {Default Queue} discarded wl_surface#1831.enter(wl_output#3097) -[2618306.046] {Default Queue} discarded wl_surface#903.enter(wl_output#3097) -[2618306.050] {Default Queue} discarded wl_surface#2663.enter(wl_output#3097) -[2618306.054] {Default Queue} discarded wl_surface#775.enter(wl_output#3097) -[2618306.058] {Default Queue} discarded wl_surface#1991.enter(wl_output#3097) -[2618306.061] {Default Queue} discarded wl_surface#1543.enter(wl_output#3097) -[2618306.065] {Default Queue} discarded wl_surface#135.enter(wl_output#3097) -[2618306.070] {Default Queue} discarded wl_surface#1287.enter(wl_output#3097) -[2618306.073] {Default Queue} discarded wl_surface#1031.enter(wl_output#3097) -[2618306.077] {Default Queue} discarded wl_surface#615.enter(wl_output#3097) -[2618306.081] {Default Queue} discarded wl_surface#231.enter(wl_output#3097) -[2618306.085] {Default Queue} discarded wl_surface#2343.enter(wl_output#3097) -[2618306.089] {Default Queue} discarded wl_surface#1863.enter(wl_output#3097) -[2618306.093] {Default Queue} discarded wl_surface#359.enter(wl_output#3097) -[2618306.097] {Default Queue} discarded wl_surface#2983.enter(wl_output#3097) -[2618306.104] {Default Queue} discarded wl_surface#583.enter(wl_output#3097) -[2618306.109] {Default Queue} discarded wl_surface#743.enter(wl_output#3097) -[2618306.113] {Default Queue} discarded wl_surface#2535.enter(wl_output#3097) -[2618306.117] {Default Queue} discarded wl_surface#967.enter(wl_output#3097) -[2618306.121] {Default Queue} discarded wl_surface#103.enter(wl_output#3097) -[2618306.125] {Default Queue} discarded wl_surface#327.enter(wl_output#3097) -[2618306.129] {Default Queue} discarded wl_surface#43.enter(wl_output#3097) -[2618306.132] {Default Queue} discarded wl_surface#2247.enter(wl_output#3097) -[2618306.136] {Default Queue} discarded wl_surface#807.enter(wl_output#3097) -[2618306.140] {Default Queue} discarded wl_surface#19.enter(wl_output#3097) -[2618306.144] {Default Queue} discarded wl_surface#2951.enter(wl_output#3097) -[2618306.148] {Default Queue} discarded wl_surface#1511.enter(wl_output#3097) -[2618306.152] {Default Queue} discarded wl_surface#199.enter(wl_output#3097) -[2618306.156] {Default Queue} discarded wl_surface#391.enter(wl_output#3097) -[2618306.160] {Default Queue} discarded wl_surface#935.enter(wl_output#3097) -[2618306.163] {Default Queue} discarded wl_surface#2823.enter(wl_output#3097) -[2618306.167] {Default Queue} discarded wl_surface#3015.enter(wl_output#3097) -[2618306.171] {Default Queue} discarded wl_surface#1671.enter(wl_output#3097) -[2618306.175] {Default Queue} discarded wl_surface#1351.enter(wl_output#3097) -[2618306.179] {Default Queue} discarded wl_surface#711.enter(wl_output#3097) -[2618306.183] {Default Queue} discarded wl_surface#1223.enter(wl_output#3097) -[2618306.187] {Default Queue} discarded wl_surface#1927.enter(wl_output#3097) -[2618306.191] {Default Queue} discarded wl_surface#871.enter(wl_output#3097) -[2618306.195] {Default Queue} discarded wl_surface#1895.enter(wl_output#3097) -[2618306.199] {Default Queue} discarded wl_surface#263.enter(wl_output#3097) -[2618306.203] {Default Queue} discarded wl_surface#551.enter(wl_output#3097) -[2618306.207] {Default Queue} discarded wl_surface#1735.enter(wl_output#3097) -[2618306.210] {Default Queue} discarded wl_surface#1479.enter(wl_output#3097) -[2618306.214] {Default Queue} discarded wl_surface#1772.enter(wl_output#3097) -[2618306.218] {Default Queue} discarded wl_surface#2599.enter(wl_output#3097) -[2618306.222] {Default Queue} discarded wl_surface#2631.enter(wl_output#3097) -[2618306.226] {Default Queue} discarded wl_surface#1959.enter(wl_output#3097) -[2618306.230] {Default Queue} discarded wl_surface#647.enter(wl_output#3097) -[2618306.234] {Default Queue} discarded wl_surface#2055.enter(wl_output#3097) -[2618306.238] {Default Queue} discarded wl_surface#2508.enter(wl_output#3097) -[2618306.242] {Default Queue} discarded wl_surface#71.enter(wl_output#3097) -[2618306.246] {Default Queue} discarded wl_surface#2759.enter(wl_output#3097) -[2618306.250] {Default Queue} discarded wl_surface#2791.enter(wl_output#3097) -[2618306.254] {Default Queue} discarded wl_surface#2887.enter(wl_output#3097) -[2618306.258] {Default Queue} discarded wl_surface#2183.enter(wl_output#3097) -[2618306.261] {Default Queue} discarded wl_surface#2567.enter(wl_output#3097) -[2618306.265] {Default Queue} discarded wl_surface#839.enter(wl_output#3097) -[2618306.269] {Default Queue} discarded wl_surface#1607.enter(wl_output#3097) -[2618306.273] {Default Queue} discarded wl_surface#1095.enter(wl_output#3097) -[2618306.277] {Default Queue} discarded wl_surface#1383.enter(wl_output#3097) -[2618306.282] {Default Queue} discarded wl_surface#487.enter(wl_output#3097) -[2618306.286] {Default Queue} discarded wl_surface#2311.enter(wl_output#3097) -[2618306.290] {Default Queue} discarded wl_surface#519.enter(wl_output#3097) -[2618306.293] {Default Queue} discarded wl_surface#2087.enter(wl_output#3097) -[2618306.298] {Default Queue} discarded wl_surface#2471.enter(wl_output#3097) -[2618306.302] {Default Queue} discarded wl_surface#295.enter(wl_output#3097) -[2618306.306] {Default Queue} discarded wl_surface#167.enter(wl_output#3097) -[2618306.310] {Default Queue} discarded wl_surface#1255.enter(wl_output#3097) -[2618306.317] {Default Queue} discarded wl_surface#2855.enter(wl_output#3097) -[2618306.324] {Default Queue} discarded wl_surface#679.enter(wl_output#3097) -[2618306.329] {Default Queue} discarded wl_surface#2407.enter(wl_output#3097) -[2618306.334] {Default Queue} discarded wl_surface#2119.enter(wl_output#3097) -[2618306.340] {Default Queue} wl_registry#3110.global(1, "wl_compositor", 6) -[2618306.346] {Default Queue} -> wl_registry#3110.bind(1, "wl_compositor", 1, new id [unknown]#3116) -[2618306.351] {Default Queue} wl_registry#3110.global(2, "wl_subcompositor", 1) -[2618306.356] {Default Queue} -> wl_registry#3110.bind(2, "wl_subcompositor", 1, new id [unknown]#3117) -[2618306.360] {Default Queue} wl_registry#3110.global(3, "xdg_wm_base", 6) -[2618306.365] {Default Queue} -> wl_registry#3110.bind(3, "xdg_wm_base", 1, new id [unknown]#3118) -[2618306.370] {Default Queue} wl_registry#3110.global(6, "zwlr_layer_shell_v1", 5) -[2618306.374] {Default Queue} wl_registry#3110.global(7, "ext_session_lock_manager_v1", 1) -[2618306.379] {Default Queue} wl_registry#3110.global(8, "wl_shm", 2) -[2618306.384] {Default Queue} -> wl_registry#3110.bind(8, "wl_shm", 1, new id [unknown]#3119) -[2618306.388] {Default Queue} -> wl_registry#3110.bind(8, "wl_shm", 1, new id [unknown]#3120) -[2618306.393] {Default Queue} -> wl_registry#3110.bind(8, "wl_shm", 1, new id [unknown]#3121) -[2618306.397] {Default Queue} wl_registry#3110.global(9, "zxdg_output_manager_v1", 3) -[2618306.401] {Default Queue} wl_registry#3110.global(10, "wp_fractional_scale_manager_v1", 1) -[2618306.405] {Default Queue} wl_registry#3110.global(11, "zwp_tablet_manager_v2", 1) -[2618306.410] {Default Queue} wl_registry#3110.global(12, "zwp_pointer_gestures_v1", 3) -[2618306.414] {Default Queue} wl_registry#3110.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618306.418] {Default Queue} -> wl_registry#3110.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3122) -[2618306.424] {Default Queue} wl_registry#3110.global(14, "zwp_pointer_constraints_v1", 1) -[2618306.428] {Default Queue} -> wl_registry#3110.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3123) -[2618306.433] {Default Queue} wl_registry#3110.global(15, "ext_idle_notifier_v1", 2) -[2618306.437] {Default Queue} wl_registry#3110.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618306.441] {Default Queue} wl_registry#3110.global(17, "wl_data_device_manager", 3) -[2618306.446] {Default Queue} -> wl_registry#3110.bind(17, "wl_data_device_manager", 2, new id [unknown]#3124) -[2618306.451] {Default Queue} -> wl_data_device_manager#3124.create_data_source(new id wl_data_source#3125) -[2618306.455] {Default Queue} -> wl_data_source#3125.offer("text/plain") -[2618306.459] {Default Queue} -> wl_data_source#3125.offer("text/plain;charset=utf-8") -[2618306.463] {Default Queue} -> wl_data_source#3125.offer("TEXT") -[2618306.467] {Default Queue} -> wl_data_source#3125.offer("STRING") -[2618306.471] {Default Queue} -> wl_data_source#3125.offer("UTF8_STRING") -[2618306.476] {Default Queue} wl_registry#3110.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618306.481] {Default Queue} -> wl_registry#3110.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3126) -[2618306.488] {Default Queue} -> zwp_primary_selection_device_manager_v1#3126.create_source(new id zwp_primary_selection_source_v1#3127) -[2618306.495] {Default Queue} -> zwp_primary_selection_source_v1#3127.offer("text/plain") -[2618306.499] {Default Queue} -> zwp_primary_selection_source_v1#3127.offer("text/plain;charset=utf-8") -[2618306.503] {Default Queue} -> zwp_primary_selection_source_v1#3127.offer("TEXT") -[2618306.507] {Default Queue} -> zwp_primary_selection_source_v1#3127.offer("STRING") -[2618306.511] {Default Queue} -> zwp_primary_selection_source_v1#3127.offer("UTF8_STRING") -[2618306.516] {Default Queue} wl_registry#3110.global(19, "zwlr_data_control_manager_v1", 2) -[2618306.520] {Default Queue} wl_registry#3110.global(20, "ext_data_control_manager_v1", 1) -[2618306.528] {Default Queue} wl_registry#3110.global(21, "wp_presentation", 2) -[2618306.534] {Default Queue} wl_registry#3110.global(22, "wp_security_context_manager_v1", 1) -[2618306.538] {Default Queue} wl_registry#3110.global(23, "zwp_text_input_manager_v3", 1) -[2618306.543] {Default Queue} wl_registry#3110.global(24, "zwp_input_method_manager_v2", 1) -[2618306.547] {Default Queue} wl_registry#3110.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618306.552] {Default Queue} wl_registry#3110.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618306.556] {Default Queue} wl_registry#3110.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618306.561] {Default Queue} wl_registry#3110.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618306.565] {Default Queue} wl_registry#3110.global(29, "ext_workspace_manager_v1", 1) -[2618306.569] {Default Queue} wl_registry#3110.global(30, "zwlr_output_manager_v1", 4) -[2618306.573] {Default Queue} wl_registry#3110.global(31, "zwlr_screencopy_manager_v1", 3) -[2618306.578] {Default Queue} wl_registry#3110.global(32, "wp_viewporter", 1) -[2618306.582] {Default Queue} wl_registry#3110.global(33, "zxdg_exporter_v2", 1) -[2618306.587] {Default Queue} wl_registry#3110.global(34, "zxdg_importer_v2", 1) -[2618306.591] {Default Queue} wl_registry#3110.global(36, "xdg_activation_v1", 1) -[2618306.595] {Default Queue} wl_registry#3110.global(37, "mutter_x11_interop", 1) -[2618306.600] {Default Queue} wl_registry#3110.global(38, "wl_seat", 9) -[2618306.604] {Default Queue} -> wl_registry#3110.bind(38, "wl_seat", 1, new id [unknown]#3128) -[2618306.609] {Default Queue} wl_registry#3110.global(39, "wp_cursor_shape_manager_v1", 2) -[2618306.614] {Default Queue} wl_registry#3110.global(40, "wl_output", 4) -[2618306.618] {Default Queue} -> wl_registry#3110.bind(40, "wl_output", 1, new id [unknown]#3129) -[2618306.623] {Default Queue} wl_callback#3111.done(0) -[2618306.627] {Default Queue} discarded wl_surface#3079.enter(wl_output#18) -[2618306.631] {Default Queue} discarded wl_surface#3079.enter(wl_output#57) -[2618306.636] {Default Queue} discarded wl_surface#3079.enter(wl_output#89) -[2618306.639] {Default Queue} discarded wl_surface#3079.enter(wl_output#121) -[2618306.643] {Default Queue} discarded wl_surface#3079.enter(wl_output#153) -[2618306.647] {Default Queue} discarded wl_surface#3079.enter(wl_output#185) -[2618306.651] {Default Queue} discarded wl_surface#3079.enter(wl_output#217) -[2618306.655] {Default Queue} discarded wl_surface#3079.enter(wl_output#249) -[2618306.659] {Default Queue} discarded wl_surface#3079.enter(wl_output#281) -[2618306.663] {Default Queue} discarded wl_surface#3079.enter(wl_output#313) -[2618306.667] {Default Queue} discarded wl_surface#3079.enter(wl_output#345) -[2618306.671] {Default Queue} discarded wl_surface#3079.enter(wl_output#377) -[2618306.675] {Default Queue} discarded wl_surface#3079.enter(wl_output#409) -[2618306.679] {Default Queue} discarded wl_surface#3079.enter(wl_output#441) -[2618306.683] {Default Queue} discarded wl_surface#3079.enter(wl_output#473) -[2618306.687] {Default Queue} discarded wl_surface#3079.enter(wl_output#505) -[2618306.691] {Default Queue} discarded wl_surface#3079.enter(wl_output#537) -[2618306.695] {Default Queue} discarded wl_surface#3079.enter(wl_output#569) -[2618306.698] {Default Queue} discarded wl_surface#3079.enter(wl_output#601) -[2618306.702] {Default Queue} discarded wl_surface#3079.enter(wl_output#633) -[2618306.706] {Default Queue} discarded wl_surface#3079.enter(wl_output#665) -[2618306.710] {Default Queue} discarded wl_surface#3079.enter(wl_output#697) -[2618306.714] {Default Queue} discarded wl_surface#3079.enter(wl_output#729) -[2618306.718] {Default Queue} discarded wl_surface#3079.enter(wl_output#761) -[2618306.722] {Default Queue} discarded wl_surface#3079.enter(wl_output#793) -[2618306.726] {Default Queue} discarded wl_surface#3079.enter(wl_output#825) -[2618306.730] {Default Queue} discarded wl_surface#3079.enter(wl_output#857) -[2618306.734] {Default Queue} discarded wl_surface#3079.enter(wl_output#889) -[2618306.737] {Default Queue} discarded wl_surface#3079.enter(wl_output#921) -[2618306.744] {Default Queue} discarded wl_surface#3079.enter(wl_output#953) -[2618306.750] {Default Queue} discarded wl_surface#3079.enter(wl_output#985) -[2618306.754] {Default Queue} discarded wl_surface#3079.enter(wl_output#1017) -[2618306.758] {Default Queue} discarded wl_surface#3079.enter(wl_output#1049) -[2618306.762] {Default Queue} discarded wl_surface#3079.enter(wl_output#1081) -[2618306.766] {Default Queue} discarded wl_surface#3079.enter(wl_output#1113) -[2618306.770] {Default Queue} discarded wl_surface#3079.enter(wl_output#1145) -[2618306.774] {Default Queue} discarded wl_surface#3079.enter(wl_output#1177) -[2618306.778] {Default Queue} discarded wl_surface#3079.enter(wl_output#1209) -[2618306.782] {Default Queue} discarded wl_surface#3079.enter(wl_output#1241) -[2618306.786] {Default Queue} discarded wl_surface#3079.enter(wl_output#1273) -[2618306.790] {Default Queue} discarded wl_surface#3079.enter(wl_output#1305) -[2618306.794] {Default Queue} discarded wl_surface#3079.enter(wl_output#1337) -[2618306.798] {Default Queue} discarded wl_surface#3079.enter(wl_output#1369) -[2618306.802] {Default Queue} discarded wl_surface#3079.enter(wl_output#1401) -[2618306.806] {Default Queue} discarded wl_surface#3079.enter(wl_output#1433) -[2618306.810] {Default Queue} discarded wl_surface#3079.enter(wl_output#1465) -[2618306.814] {Default Queue} discarded wl_surface#3079.enter(wl_output#1497) -[2618306.818] {Default Queue} discarded wl_surface#3079.enter(wl_output#1529) -[2618306.822] {Default Queue} discarded wl_surface#3079.enter(wl_output#1561) -[2618306.826] {Default Queue} discarded wl_surface#3079.enter(wl_output#1593) -[2618306.831] {Default Queue} discarded wl_surface#3079.enter(wl_output#1625) -[2618306.835] {Default Queue} discarded wl_surface#3079.enter(wl_output#1657) -[2618306.839] {Default Queue} discarded wl_surface#3079.enter(wl_output#1689) -[2618306.843] {Default Queue} discarded wl_surface#3079.enter(wl_output#1721) -[2618306.847] {Default Queue} discarded wl_surface#3079.enter(wl_output#1753) -[2618306.851] {Default Queue} discarded wl_surface#3079.enter(wl_output#1785) -[2618306.855] {Default Queue} discarded wl_surface#3079.enter(wl_output#1817) -[2618306.859] {Default Queue} discarded wl_surface#3079.enter(wl_output#1849) -[2618306.863] {Default Queue} discarded wl_surface#3079.enter(wl_output#1881) -[2618306.867] {Default Queue} discarded wl_surface#3079.enter(wl_output#1913) -[2618306.881] {Default Queue} discarded wl_surface#3079.enter(wl_output#1945) -[2618306.885] {Default Queue} discarded wl_surface#3079.enter(wl_output#1977) -[2618306.889] {Default Queue} discarded wl_surface#3079.enter(wl_output#2009) -[2618306.893] {Default Queue} discarded wl_surface#3079.enter(wl_output#2041) -[2618306.897] {Default Queue} discarded wl_surface#3079.enter(wl_output#2073) -[2618306.901] {Default Queue} discarded wl_surface#3079.enter(wl_output#2105) -[2618306.904] {Default Queue} discarded wl_surface#3079.enter(wl_output#2137) -[2618306.908] {Default Queue} discarded wl_surface#3079.enter(wl_output#2169) -[2618306.912] {Default Queue} discarded wl_surface#3079.enter(wl_output#2201) -[2618306.916] {Default Queue} discarded wl_surface#3079.enter(wl_output#2233) -[2618306.920] {Default Queue} discarded wl_surface#3079.enter(wl_output#2265) -[2618306.924] {Default Queue} discarded wl_surface#3079.enter(wl_output#2297) -[2618306.928] {Default Queue} discarded wl_surface#3079.enter(wl_output#2329) -[2618306.931] {Default Queue} discarded wl_surface#3079.enter(wl_output#2361) -[2618306.936] {Default Queue} discarded wl_surface#3079.enter(wl_output#2393) -[2618306.939] {Default Queue} discarded wl_surface#3079.enter(wl_output#2425) -[2618306.943] {Default Queue} discarded wl_surface#3079.enter(wl_output#2457) -[2618306.949] {Default Queue} discarded wl_surface#3079.enter(wl_output#2489) -[2618306.954] {Default Queue} discarded wl_surface#3079.enter(wl_output#2521) -[2618306.960] {Default Queue} -> wl_compositor#3052.create_surface(new id wl_surface#3111) -[2618306.966] {Default Queue} -> wl_subcompositor#3117.get_subsurface(new id wl_subsurface#3130, wl_surface#3111, wl_surface#3047) -[2618306.980] {Default Queue} -> wl_subsurface#3130.set_desync() -[2618306.984] {Default Queue} -> wl_subsurface#3130.set_position(0, 0) -[2618306.989] {Default Queue} -> wl_subsurface#3130.place_above(wl_surface#3047) -[2618307.041] {Default Queue} -> wl_shm#3119.create_pool(new id wl_shm_pool#3131, fd 494, 16) -[2618307.048] {Default Queue} -> wl_shm#3119.create_pool(new id wl_shm_pool#3132, fd 495, 16) -[2618307.052] {Default Queue} -> wl_shm_pool#3131.create_buffer(new id wl_buffer#3133, 0, 2, 2, 8, 0) -[2618307.057] {Default Queue} -> wl_shm_pool#3132.create_buffer(new id wl_buffer#3134, 0, 2, 2, 8, 0) -[2618307.065] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) -[2618307.072] {Default Queue} -> wl_surface#3111.commit() -[2618307.078] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) -[2618307.082] {Default Queue} -> wl_surface#3111.commit() -[2618307.087] {Default Queue} -> wl_compositor#3116.create_region(new id wl_region#3135) -[2618307.091] {Default Queue} -> wl_compositor#3116.create_region(new id wl_region#3136) -[2618307.095] {Default Queue} -> wl_region#3135.subtract(0, 0, 2, 2) -[2618307.100] {Default Queue} -> wl_region#3135.add(0, 0, 0, 0) -[2618307.105] {Default Queue} -> wl_surface#3111.set_opaque_region(wl_region#3136) -[2618307.109] {Default Queue} -> wl_surface#3111.set_input_region(wl_region#3135) -[2618307.113] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) -[2618307.118] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) -[2618307.125] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) -[2618307.129] {Default Queue} -> wl_surface#3111.commit() -[2618307.164] {Default Queue} -> wl_shm#3121.create_pool(new id wl_shm_pool#3137, fd 498, 640) -[2618307.171] {Default Queue} -> wl_shm#3121.create_pool(new id wl_shm_pool#3138, fd 499, 640) -[2618307.175] {Default Queue} -> wl_shm_pool#3137.create_buffer(new id wl_buffer#3139, 0, 10, 16, 40, 0) -[2618307.180] {Default Queue} -> wl_shm_pool#3138.create_buffer(new id wl_buffer#3140, 0, 10, 16, 40, 0) -[2618307.187] {Default Queue} -> wl_compositor#3116.create_surface(new id wl_surface#3141) -[2618307.192] {Default Queue} -> wl_surface#3141.attach(wl_buffer#3139, 0, 0) -[2618307.196] {Default Queue} -> wl_surface#3141.commit() -[2618307.202] {Default Queue} -> wl_surface#3141.attach(wl_buffer#3139, 0, 0) -[2618307.206] {Default Queue} -> wl_surface#3141.commit() -[2618307.211] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) -[2618307.218] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3142) -[2618307.223] {Default Queue} -> wl_display#1.sync(new id wl_callback#3143) -[2618310.382] {Default Queue} discarded wl_surface#3079.enter(wl_output#2553) -[2618310.394] {Default Queue} discarded wl_surface#3079.enter(wl_output#2585) -[2618310.399] {Default Queue} discarded wl_surface#3079.enter(wl_output#2617) -[2618310.403] {Default Queue} discarded wl_surface#3079.enter(wl_output#2649) -[2618310.407] {Default Queue} discarded wl_surface#3079.enter(wl_output#2681) -[2618310.411] {Default Queue} discarded wl_surface#3079.enter(wl_output#2713) -[2618310.415] {Default Queue} discarded wl_surface#3079.enter(wl_output#2745) -[2618310.419] {Default Queue} discarded wl_surface#3079.enter(wl_output#2777) -[2618310.423] {Default Queue} discarded wl_surface#3079.enter(wl_output#2809) -[2618310.427] {Default Queue} discarded wl_surface#3079.enter(wl_output#2841) -[2618310.431] {Default Queue} discarded wl_surface#3079.enter(wl_output#2873) -[2618310.435] {Default Queue} discarded wl_surface#3079.enter(wl_output#2905) -[2618310.439] {Default Queue} discarded wl_surface#3079.enter(wl_output#2937) -[2618310.443] {Default Queue} discarded wl_surface#3079.enter(wl_output#2969) -[2618310.447] {Default Queue} discarded wl_surface#3079.enter(wl_output#3001) -[2618310.451] {Default Queue} discarded wl_surface#3079.enter(wl_output#3033) -[2618310.455] {Default Queue} discarded wl_surface#3079.enter(wl_output#3065) -[2618310.459] {Default Queue} discarded wl_surface#3079.enter(wl_output#3097) -[2618310.632] {Display Queue} wl_display#1.delete_id(3143) -[2618310.641] {Default Queue} wl_keyboard#3112.keymap(1, fd 494, 68213) -[2618310.646] {Default Queue} wl_keyboard#3112.enter(566, wl_surface#19, array[0]) -[2618310.651] {Default Queue} wl_keyboard#3112.modifiers(566, 0, 0, 16, 0) -[2618310.656] {Default Queue} discarded wl_shm#3119.format(875709016) -[2618310.660] {Default Queue} discarded wl_shm#3119.format(1) -[2618310.664] {Default Queue} discarded wl_shm#3119.format(0) -[2618310.668] {Default Queue} discarded wl_shm#3119.format(875708993) -[2618310.672] {Default Queue} discarded wl_shm#3120.format(875709016) -[2618310.676] {Default Queue} discarded wl_shm#3120.format(1) -[2618310.680] {Default Queue} discarded wl_shm#3120.format(0) -[2618310.684] {Default Queue} discarded wl_shm#3120.format(875708993) -[2618310.688] {Default Queue} discarded wl_shm#3121.format(875709016) -[2618310.692] {Default Queue} discarded wl_shm#3121.format(1) -[2618310.696] {Default Queue} discarded wl_shm#3121.format(0) -[2618310.700] {Default Queue} discarded wl_shm#3121.format(875708993) -[2618310.703] {Default Queue} wl_seat#3128.capabilities(7) -[2618310.708] {Default Queue} -> wl_seat#3128.get_keyboard(new id wl_keyboard#3144) -[2618310.712] {Default Queue} -> wl_seat#3128.get_pointer(new id wl_pointer#3145) -[2618310.717] {Default Queue} -> wl_data_device_manager#3124.get_data_device(new id wl_data_device#3146, wl_seat#3128) -[2618310.722] {Default Queue} -> zwp_primary_selection_device_manager_v1#3126.get_device(new id zwp_primary_selection_device_v1#3147, wl_seat#3128) -[2618310.729] {Default Queue} wl_output#3129.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618310.734] {Default Queue} wl_output#3129.mode(3, 1280, 800, 60000) -[2618310.739] {Default Queue} discarded wl_surface#2727.enter(wl_output#3129) -[2618310.743] {Default Queue} discarded wl_surface#3.enter(wl_output#3129) -[2618310.747] {Default Queue} discarded wl_surface#999.enter(wl_output#3129) -[2618310.751] {Default Queue} discarded wl_surface#3079.enter(wl_output#3129) -[2618310.755] {Default Queue} discarded wl_surface#1191.enter(wl_output#3129) -[2618310.759] {Default Queue} discarded wl_surface#1159.enter(wl_output#3129) -[2618310.763] {Default Queue} discarded wl_surface#1703.enter(wl_output#3129) -[2618310.767] {Default Queue} discarded wl_surface#2215.enter(wl_output#3129) -[2618310.771] {Default Queue} discarded wl_surface#423.enter(wl_output#3129) -[2618310.775] {Default Queue} discarded wl_surface#1447.enter(wl_output#3129) -[2618310.778] {Default Queue} discarded wl_surface#3047.enter(wl_output#3129) -[2618310.783] {Default Queue} discarded wl_surface#2023.enter(wl_output#3129) -[2618310.786] {Default Queue} discarded wl_surface#1639.enter(wl_output#3129) -[2618310.790] {Default Queue} discarded wl_surface#1319.enter(wl_output#3129) -[2618310.794] {Default Queue} discarded wl_surface#1127.enter(wl_output#3129) -[2618310.798] {Default Queue} discarded wl_surface#2151.enter(wl_output#3129) -[2618310.802] {Default Queue} discarded wl_surface#2375.enter(wl_output#3129) -[2618310.806] {Default Queue} discarded wl_surface#2695.enter(wl_output#3129) -[2618310.810] {Default Queue} discarded wl_surface#2919.enter(wl_output#3129) -[2618310.814] {Default Queue} discarded wl_surface#1063.enter(wl_output#3129) -[2618310.818] {Default Queue} discarded wl_surface#455.enter(wl_output#3129) -[2618310.821] {Default Queue} discarded wl_surface#1575.enter(wl_output#3129) -[2618310.825] {Default Queue} discarded wl_surface#1799.enter(wl_output#3129) -[2618310.829] {Default Queue} discarded wl_surface#1415.enter(wl_output#3129) -[2618310.833] {Default Queue} discarded wl_surface#2439.enter(wl_output#3129) -[2618310.837] {Default Queue} discarded wl_surface#2279.enter(wl_output#3129) -[2618310.841] {Default Queue} discarded wl_surface#1831.enter(wl_output#3129) -[2618310.845] {Default Queue} discarded wl_surface#903.enter(wl_output#3129) -[2618310.849] {Default Queue} discarded wl_surface#2663.enter(wl_output#3129) -[2618310.852] {Default Queue} discarded wl_surface#775.enter(wl_output#3129) -[2618310.859] {Default Queue} discarded wl_surface#1991.enter(wl_output#3129) -[2618310.871] {Default Queue} discarded wl_surface#1543.enter(wl_output#3129) -[2618310.875] {Default Queue} discarded wl_surface#135.enter(wl_output#3129) -[2618310.879] {Default Queue} discarded wl_surface#1287.enter(wl_output#3129) -[2618310.884] {Default Queue} discarded wl_surface#1031.enter(wl_output#3129) -[2618310.888] {Default Queue} discarded wl_surface#615.enter(wl_output#3129) -[2618310.892] {Default Queue} discarded wl_surface#231.enter(wl_output#3129) -[2618310.895] {Default Queue} discarded wl_surface#2343.enter(wl_output#3129) -[2618310.899] {Default Queue} discarded wl_surface#1863.enter(wl_output#3129) -[2618310.903] {Default Queue} discarded wl_surface#359.enter(wl_output#3129) -[2618310.907] {Default Queue} discarded wl_surface#2983.enter(wl_output#3129) -[2618310.911] {Default Queue} discarded wl_surface#583.enter(wl_output#3129) -[2618310.915] {Default Queue} discarded wl_surface#743.enter(wl_output#3129) -[2618310.919] {Default Queue} discarded wl_surface#2535.enter(wl_output#3129) -[2618310.923] {Default Queue} discarded wl_surface#967.enter(wl_output#3129) -[2618310.927] {Default Queue} discarded wl_surface#103.enter(wl_output#3129) -[2618310.931] {Default Queue} discarded wl_surface#327.enter(wl_output#3129) -[2618310.935] {Default Queue} discarded wl_surface#43.enter(wl_output#3129) -[2618310.939] {Default Queue} discarded wl_surface#2247.enter(wl_output#3129) -[2618310.943] {Default Queue} discarded wl_surface#807.enter(wl_output#3129) -[2618310.947] {Default Queue} discarded wl_surface#19.enter(wl_output#3129) -[2618310.951] {Default Queue} discarded wl_surface#2951.enter(wl_output#3129) -[2618310.955] {Default Queue} discarded wl_surface#1511.enter(wl_output#3129) -[2618310.958] {Default Queue} discarded wl_surface#199.enter(wl_output#3129) -[2618310.962] {Default Queue} discarded wl_surface#391.enter(wl_output#3129) -[2618310.966] {Default Queue} discarded wl_surface#935.enter(wl_output#3129) -[2618310.970] {Default Queue} discarded wl_surface#2823.enter(wl_output#3129) -[2618310.974] {Default Queue} discarded wl_surface#3015.enter(wl_output#3129) -[2618310.978] {Default Queue} discarded wl_surface#1671.enter(wl_output#3129) -[2618310.982] {Default Queue} discarded wl_surface#1351.enter(wl_output#3129) -[2618310.985] {Default Queue} discarded wl_surface#711.enter(wl_output#3129) -[2618310.989] {Default Queue} discarded wl_surface#1223.enter(wl_output#3129) -[2618310.993] {Default Queue} discarded wl_surface#1927.enter(wl_output#3129) -[2618310.997] {Default Queue} discarded wl_surface#871.enter(wl_output#3129) -[2618311.001] {Default Queue} discarded wl_surface#1895.enter(wl_output#3129) -[2618311.005] {Default Queue} discarded wl_surface#263.enter(wl_output#3129) -[2618311.009] {Default Queue} discarded wl_surface#551.enter(wl_output#3129) -[2618311.013] {Default Queue} discarded wl_surface#1735.enter(wl_output#3129) -[2618311.017] {Default Queue} discarded wl_surface#1479.enter(wl_output#3129) -[2618311.021] {Default Queue} discarded wl_surface#1772.enter(wl_output#3129) -[2618311.025] {Default Queue} discarded wl_surface#2599.enter(wl_output#3129) -[2618311.029] {Default Queue} discarded wl_surface#2631.enter(wl_output#3129) -[2618311.032] {Default Queue} discarded wl_surface#1959.enter(wl_output#3129) -[2618311.036] {Default Queue} discarded wl_surface#647.enter(wl_output#3129) -[2618311.040] {Default Queue} discarded wl_surface#2055.enter(wl_output#3129) -[2618311.044] {Default Queue} discarded wl_surface#2508.enter(wl_output#3129) -[2618311.049] {Default Queue} discarded wl_surface#71.enter(wl_output#3129) -[2618311.053] {Default Queue} discarded wl_surface#2759.enter(wl_output#3129) -[2618311.057] {Default Queue} discarded wl_surface#2791.enter(wl_output#3129) -[2618311.061] {Default Queue} discarded wl_surface#2887.enter(wl_output#3129) -[2618311.064] {Default Queue} discarded wl_surface#2183.enter(wl_output#3129) -[2618311.068] {Default Queue} discarded wl_surface#2567.enter(wl_output#3129) -[2618311.072] {Default Queue} discarded wl_surface#839.enter(wl_output#3129) -[2618311.079] {Default Queue} discarded wl_surface#1607.enter(wl_output#3129) -[2618311.084] {Default Queue} discarded wl_surface#1095.enter(wl_output#3129) -[2618311.088] {Default Queue} discarded wl_surface#1383.enter(wl_output#3129) -[2618311.092] {Default Queue} discarded wl_surface#487.enter(wl_output#3129) -[2618311.096] {Default Queue} discarded wl_surface#2311.enter(wl_output#3129) -[2618311.100] {Default Queue} discarded wl_surface#519.enter(wl_output#3129) -[2618311.104] {Default Queue} discarded wl_surface#2087.enter(wl_output#3129) -[2618311.108] {Default Queue} discarded wl_surface#2471.enter(wl_output#3129) -[2618311.112] {Default Queue} discarded wl_surface#295.enter(wl_output#3129) -[2618311.116] {Default Queue} discarded wl_surface#167.enter(wl_output#3129) -[2618311.120] {Default Queue} discarded wl_surface#1255.enter(wl_output#3129) -[2618311.123] {Default Queue} discarded wl_surface#2855.enter(wl_output#3129) -[2618311.127] {Default Queue} discarded wl_surface#679.enter(wl_output#3129) -[2618311.131] {Default Queue} discarded wl_surface#2407.enter(wl_output#3129) -[2618311.135] {Default Queue} discarded wl_surface#2119.enter(wl_output#3129) -[2618311.139] {Default Queue} wl_registry#3142.global(1, "wl_compositor", 6) -[2618311.144] {Default Queue} -> wl_registry#3142.bind(1, "wl_compositor", 1, new id [unknown]#3148) -[2618311.149] {Default Queue} wl_registry#3142.global(2, "wl_subcompositor", 1) -[2618311.153] {Default Queue} -> wl_registry#3142.bind(2, "wl_subcompositor", 1, new id [unknown]#3149) -[2618311.158] {Default Queue} wl_registry#3142.global(3, "xdg_wm_base", 6) -[2618311.163] {Default Queue} -> wl_registry#3142.bind(3, "xdg_wm_base", 1, new id [unknown]#3150) -[2618311.167] {Default Queue} wl_registry#3142.global(6, "zwlr_layer_shell_v1", 5) -[2618311.171] {Default Queue} wl_registry#3142.global(7, "ext_session_lock_manager_v1", 1) -[2618311.176] {Default Queue} wl_registry#3142.global(8, "wl_shm", 2) -[2618311.181] {Default Queue} -> wl_registry#3142.bind(8, "wl_shm", 1, new id [unknown]#3151) -[2618311.186] {Default Queue} -> wl_registry#3142.bind(8, "wl_shm", 1, new id [unknown]#3152) -[2618311.190] {Default Queue} -> wl_registry#3142.bind(8, "wl_shm", 1, new id [unknown]#3153) -[2618311.195] {Default Queue} wl_registry#3142.global(9, "zxdg_output_manager_v1", 3) -[2618311.199] {Default Queue} wl_registry#3142.global(10, "wp_fractional_scale_manager_v1", 1) -[2618311.204] {Default Queue} wl_registry#3142.global(11, "zwp_tablet_manager_v2", 1) -[2618311.208] {Default Queue} wl_registry#3142.global(12, "zwp_pointer_gestures_v1", 3) -[2618311.212] {Default Queue} wl_registry#3142.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618311.217] {Default Queue} -> wl_registry#3142.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3154) -[2618311.221] {Default Queue} wl_registry#3142.global(14, "zwp_pointer_constraints_v1", 1) -[2618311.226] {Default Queue} -> wl_registry#3142.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3155) -[2618311.230] {Default Queue} wl_registry#3142.global(15, "ext_idle_notifier_v1", 2) -[2618311.234] {Default Queue} wl_registry#3142.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618311.239] {Default Queue} wl_registry#3142.global(17, "wl_data_device_manager", 3) -[2618311.244] {Default Queue} -> wl_registry#3142.bind(17, "wl_data_device_manager", 2, new id [unknown]#3156) -[2618311.249] {Default Queue} -> wl_data_device_manager#3156.create_data_source(new id wl_data_source#3157) -[2618311.253] {Default Queue} -> wl_data_source#3157.offer("text/plain") -[2618311.257] {Default Queue} -> wl_data_source#3157.offer("text/plain;charset=utf-8") -[2618311.261] {Default Queue} -> wl_data_source#3157.offer("TEXT") -[2618311.265] {Default Queue} -> wl_data_source#3157.offer("STRING") -[2618311.270] {Default Queue} -> wl_data_source#3157.offer("UTF8_STRING") -[2618311.274] {Default Queue} wl_registry#3142.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618311.278] {Default Queue} -> wl_registry#3142.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3158) -[2618311.291] {Default Queue} -> zwp_primary_selection_device_manager_v1#3158.create_source(new id zwp_primary_selection_source_v1#3159) -[2618311.299] {Default Queue} -> zwp_primary_selection_source_v1#3159.offer("text/plain") -[2618311.303] {Default Queue} -> zwp_primary_selection_source_v1#3159.offer("text/plain;charset=utf-8") -[2618311.307] {Default Queue} -> zwp_primary_selection_source_v1#3159.offer("TEXT") -[2618311.311] {Default Queue} -> zwp_primary_selection_source_v1#3159.offer("STRING") -[2618311.315] {Default Queue} -> zwp_primary_selection_source_v1#3159.offer("UTF8_STRING") -[2618311.319] {Default Queue} wl_registry#3142.global(19, "zwlr_data_control_manager_v1", 2) -[2618311.323] {Default Queue} wl_registry#3142.global(20, "ext_data_control_manager_v1", 1) -[2618311.328] {Default Queue} wl_registry#3142.global(21, "wp_presentation", 2) -[2618311.332] {Default Queue} wl_registry#3142.global(22, "wp_security_context_manager_v1", 1) -[2618311.336] {Default Queue} wl_registry#3142.global(23, "zwp_text_input_manager_v3", 1) -[2618311.341] {Default Queue} wl_registry#3142.global(24, "zwp_input_method_manager_v2", 1) -[2618311.345] {Default Queue} wl_registry#3142.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618311.349] {Default Queue} wl_registry#3142.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618311.354] {Default Queue} wl_registry#3142.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618311.358] {Default Queue} wl_registry#3142.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618311.362] {Default Queue} wl_registry#3142.global(29, "ext_workspace_manager_v1", 1) -[2618311.367] {Default Queue} wl_registry#3142.global(30, "zwlr_output_manager_v1", 4) -[2618311.371] {Default Queue} wl_registry#3142.global(31, "zwlr_screencopy_manager_v1", 3) -[2618311.375] {Default Queue} wl_registry#3142.global(32, "wp_viewporter", 1) -[2618311.380] {Default Queue} wl_registry#3142.global(33, "zxdg_exporter_v2", 1) -[2618311.384] {Default Queue} wl_registry#3142.global(34, "zxdg_importer_v2", 1) -[2618311.388] {Default Queue} wl_registry#3142.global(36, "xdg_activation_v1", 1) -[2618311.392] {Default Queue} wl_registry#3142.global(37, "mutter_x11_interop", 1) -[2618311.397] {Default Queue} wl_registry#3142.global(38, "wl_seat", 9) -[2618311.401] {Default Queue} -> wl_registry#3142.bind(38, "wl_seat", 1, new id [unknown]#3160) -[2618311.406] {Default Queue} wl_registry#3142.global(39, "wp_cursor_shape_manager_v1", 2) -[2618311.410] {Default Queue} wl_registry#3142.global(40, "wl_output", 4) -[2618311.415] {Default Queue} -> wl_registry#3142.bind(40, "wl_output", 1, new id [unknown]#3161) -[2618311.419] {Default Queue} wl_callback#3143.done(0) -[2618311.424] {Default Queue} discarded wl_surface#3111.enter(wl_output#18) -[2618311.428] {Default Queue} discarded wl_surface#3111.enter(wl_output#57) -[2618311.432] {Default Queue} discarded wl_surface#3111.enter(wl_output#89) -[2618311.435] {Default Queue} discarded wl_surface#3111.enter(wl_output#121) -[2618311.439] {Default Queue} discarded wl_surface#3111.enter(wl_output#153) -[2618311.443] {Default Queue} discarded wl_surface#3111.enter(wl_output#185) -[2618311.447] {Default Queue} discarded wl_surface#3111.enter(wl_output#217) -[2618311.451] {Default Queue} discarded wl_surface#3111.enter(wl_output#249) -[2618311.455] {Default Queue} discarded wl_surface#3111.enter(wl_output#281) -[2618311.459] {Default Queue} discarded wl_surface#3111.enter(wl_output#313) -[2618311.463] {Default Queue} discarded wl_surface#3111.enter(wl_output#345) -[2618311.467] {Default Queue} discarded wl_surface#3111.enter(wl_output#377) -[2618311.471] {Default Queue} discarded wl_surface#3111.enter(wl_output#409) -[2618311.474] {Default Queue} discarded wl_surface#3111.enter(wl_output#441) -[2618311.478] {Default Queue} discarded wl_surface#3111.enter(wl_output#473) -[2618311.482] {Default Queue} discarded wl_surface#3111.enter(wl_output#505) -[2618311.486] {Default Queue} discarded wl_surface#3111.enter(wl_output#537) -[2618311.490] {Default Queue} discarded wl_surface#3111.enter(wl_output#569) -[2618311.497] {Default Queue} discarded wl_surface#3111.enter(wl_output#601) -[2618311.502] {Default Queue} discarded wl_surface#3111.enter(wl_output#633) -[2618311.506] {Default Queue} discarded wl_surface#3111.enter(wl_output#665) -[2618311.510] {Default Queue} discarded wl_surface#3111.enter(wl_output#697) -[2618311.514] {Default Queue} discarded wl_surface#3111.enter(wl_output#729) -[2618311.518] {Default Queue} discarded wl_surface#3111.enter(wl_output#761) -[2618311.523] {Default Queue} discarded wl_surface#3111.enter(wl_output#793) -[2618311.527] {Default Queue} discarded wl_surface#3111.enter(wl_output#825) -[2618311.531] {Default Queue} discarded wl_surface#3111.enter(wl_output#857) -[2618311.536] {Default Queue} discarded wl_surface#3111.enter(wl_output#889) -[2618311.540] {Default Queue} discarded wl_surface#3111.enter(wl_output#921) -[2618311.544] {Default Queue} discarded wl_surface#3111.enter(wl_output#953) -[2618311.548] {Default Queue} discarded wl_surface#3111.enter(wl_output#985) -[2618311.552] {Default Queue} discarded wl_surface#3111.enter(wl_output#1017) -[2618311.556] {Default Queue} discarded wl_surface#3111.enter(wl_output#1049) -[2618311.560] {Default Queue} discarded wl_surface#3111.enter(wl_output#1081) -[2618311.564] {Default Queue} discarded wl_surface#3111.enter(wl_output#1113) -[2618311.568] {Default Queue} discarded wl_surface#3111.enter(wl_output#1145) -[2618311.572] {Default Queue} discarded wl_surface#3111.enter(wl_output#1177) -[2618311.576] {Default Queue} discarded wl_surface#3111.enter(wl_output#1209) -[2618311.580] {Default Queue} discarded wl_surface#3111.enter(wl_output#1241) -[2618311.584] {Default Queue} discarded wl_surface#3111.enter(wl_output#1273) -[2618311.588] {Default Queue} discarded wl_surface#3111.enter(wl_output#1305) -[2618311.592] {Default Queue} discarded wl_surface#3111.enter(wl_output#1337) -[2618311.596] {Default Queue} discarded wl_surface#3111.enter(wl_output#1369) -[2618311.600] {Default Queue} discarded wl_surface#3111.enter(wl_output#1401) -[2618311.604] {Default Queue} discarded wl_surface#3111.enter(wl_output#1433) -[2618311.608] {Default Queue} discarded wl_surface#3111.enter(wl_output#1465) -[2618311.612] {Default Queue} discarded wl_surface#3111.enter(wl_output#1497) -[2618311.615] {Default Queue} discarded wl_surface#3111.enter(wl_output#1529) -[2618311.619] {Default Queue} discarded wl_surface#3111.enter(wl_output#1561) -[2618311.623] {Default Queue} discarded wl_surface#3111.enter(wl_output#1593) -[2618311.627] {Default Queue} discarded wl_surface#3111.enter(wl_output#1625) -[2618311.631] {Default Queue} discarded wl_surface#3111.enter(wl_output#1657) -[2618311.635] {Default Queue} discarded wl_surface#3111.enter(wl_output#1689) -[2618311.639] {Default Queue} discarded wl_surface#3111.enter(wl_output#1721) -[2618311.643] {Default Queue} discarded wl_surface#3111.enter(wl_output#1753) -[2618311.647] {Default Queue} discarded wl_surface#3111.enter(wl_output#1785) -[2618311.651] {Default Queue} discarded wl_surface#3111.enter(wl_output#1817) -[2618311.655] {Default Queue} discarded wl_surface#3111.enter(wl_output#1849) -[2618311.659] {Default Queue} discarded wl_surface#3111.enter(wl_output#1881) -[2618311.663] {Default Queue} discarded wl_surface#3111.enter(wl_output#1913) -[2618311.667] {Default Queue} discarded wl_surface#3111.enter(wl_output#1945) -[2618311.671] {Default Queue} discarded wl_surface#3111.enter(wl_output#1977) -[2618311.674] {Default Queue} discarded wl_surface#3111.enter(wl_output#2009) -[2618311.678] {Default Queue} discarded wl_surface#3111.enter(wl_output#2041) -[2618311.682] {Default Queue} discarded wl_surface#3111.enter(wl_output#2073) -[2618311.686] {Default Queue} discarded wl_surface#3111.enter(wl_output#2105) -[2618311.690] {Default Queue} discarded wl_surface#3111.enter(wl_output#2137) -[2618311.694] {Default Queue} discarded wl_surface#3111.enter(wl_output#2169) -[2618311.698] {Default Queue} discarded wl_surface#3111.enter(wl_output#2201) -[2618311.701] {Default Queue} discarded wl_surface#3111.enter(wl_output#2233) -[2618311.705] {Default Queue} discarded wl_surface#3111.enter(wl_output#2265) -[2618311.712] {Default Queue} discarded wl_surface#3111.enter(wl_output#2297) -[2618311.717] {Default Queue} discarded wl_surface#3111.enter(wl_output#2329) -[2618311.721] {Default Queue} discarded wl_surface#3111.enter(wl_output#2361) -[2618311.725] {Default Queue} discarded wl_surface#3111.enter(wl_output#2393) -[2618311.729] {Default Queue} discarded wl_surface#3111.enter(wl_output#2425) -[2618311.733] {Default Queue} discarded wl_surface#3111.enter(wl_output#2457) -[2618311.737] {Default Queue} discarded wl_surface#3111.enter(wl_output#2489) -[2618311.741] {Default Queue} -> wl_compositor#3116.create_surface(new id wl_surface#3143) -[2618311.746] {Default Queue} -> wl_subcompositor#3149.get_subsurface(new id wl_subsurface#3162, wl_surface#3143, wl_surface#3111) -[2618311.754] {Default Queue} -> wl_subsurface#3162.set_desync() -[2618311.758] {Default Queue} -> wl_subsurface#3162.set_position(0, 0) -[2618311.762] {Default Queue} -> wl_subsurface#3162.place_above(wl_surface#3111) -[2618311.803] {Default Queue} -> wl_shm#3151.create_pool(new id wl_shm_pool#3163, fd 499, 16) -[2618311.811] {Default Queue} -> wl_shm#3151.create_pool(new id wl_shm_pool#3164, fd 500, 16) -[2618311.815] {Default Queue} -> wl_shm_pool#3163.create_buffer(new id wl_buffer#3165, 0, 2, 2, 8, 0) -[2618311.820] {Default Queue} -> wl_shm_pool#3164.create_buffer(new id wl_buffer#3166, 0, 2, 2, 8, 0) -[2618311.828] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) -[2618311.836] {Default Queue} -> wl_surface#3143.commit() -[2618311.842] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) -[2618311.846] {Default Queue} -> wl_surface#3143.commit() -[2618311.850] {Default Queue} -> wl_compositor#3148.create_region(new id wl_region#3167) -[2618311.854] {Default Queue} -> wl_compositor#3148.create_region(new id wl_region#3168) -[2618311.859] {Default Queue} -> wl_region#3167.subtract(0, 0, 2, 2) -[2618311.864] {Default Queue} -> wl_region#3167.add(0, 0, 0, 0) -[2618311.868] {Default Queue} -> wl_surface#3143.set_opaque_region(wl_region#3168) -[2618311.878] {Default Queue} -> wl_surface#3143.set_input_region(wl_region#3167) -[2618311.882] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) -[2618311.888] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) -[2618311.895] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) -[2618311.899] {Default Queue} -> wl_surface#3143.commit() -[2618311.941] {Default Queue} -> wl_shm#3153.create_pool(new id wl_shm_pool#3169, fd 503, 640) -[2618311.947] {Default Queue} -> wl_shm#3153.create_pool(new id wl_shm_pool#3170, fd 504, 640) -[2618311.952] {Default Queue} -> wl_shm_pool#3169.create_buffer(new id wl_buffer#3171, 0, 10, 16, 40, 0) -[2618311.957] {Default Queue} -> wl_shm_pool#3170.create_buffer(new id wl_buffer#3172, 0, 10, 16, 40, 0) -[2618311.966] {Default Queue} -> wl_compositor#3148.create_surface(new id wl_surface#3173) -[2618311.972] {Default Queue} -> wl_surface#3173.attach(wl_buffer#3171, 0, 0) -[2618311.978] {Default Queue} -> wl_surface#3173.commit() -[2618311.985] {Default Queue} -> wl_surface#3173.attach(wl_buffer#3171, 0, 0) -[2618311.991] {Default Queue} -> wl_surface#3173.commit() -[2618312.002] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3174) -[2618312.007] {Default Queue} -> wl_display#1.sync(new id wl_callback#3175) -[2618315.431] {Default Queue} discarded wl_surface#3111.enter(wl_output#2521) -[2618315.443] {Default Queue} discarded wl_surface#3111.enter(wl_output#2553) -[2618315.447] {Default Queue} discarded wl_surface#3111.enter(wl_output#2585) -[2618315.451] {Default Queue} discarded wl_surface#3111.enter(wl_output#2617) -[2618315.456] {Default Queue} discarded wl_surface#3111.enter(wl_output#2649) -[2618315.459] {Default Queue} discarded wl_surface#3111.enter(wl_output#2681) -[2618315.463] {Default Queue} discarded wl_surface#3111.enter(wl_output#2713) -[2618315.467] {Default Queue} discarded wl_surface#3111.enter(wl_output#2745) -[2618315.471] {Default Queue} discarded wl_surface#3111.enter(wl_output#2777) -[2618315.480] {Default Queue} discarded wl_surface#3111.enter(wl_output#2809) -[2618315.487] {Default Queue} discarded wl_surface#3111.enter(wl_output#2841) -[2618315.491] {Default Queue} discarded wl_surface#3111.enter(wl_output#2873) -[2618315.494] {Default Queue} discarded wl_surface#3111.enter(wl_output#2905) -[2618315.498] {Default Queue} discarded wl_surface#3111.enter(wl_output#2937) -[2618315.502] {Default Queue} discarded wl_surface#3111.enter(wl_output#2969) -[2618315.506] {Default Queue} discarded wl_surface#3111.enter(wl_output#3001) -[2618315.510] {Default Queue} discarded wl_surface#3111.enter(wl_output#3033) -[2618315.515] {Default Queue} discarded wl_surface#3111.enter(wl_output#3065) -[2618315.519] {Default Queue} discarded wl_surface#3111.enter(wl_output#3097) -[2618315.523] {Default Queue} discarded wl_surface#3111.enter(wl_output#3129) -[2618315.746] {Display Queue} wl_display#1.delete_id(3175) -[2618315.752] {Default Queue} wl_keyboard#3144.keymap(1, fd 499, 68213) -[2618315.757] {Default Queue} wl_keyboard#3144.enter(566, wl_surface#19, array[0]) -[2618315.762] {Default Queue} wl_keyboard#3144.modifiers(566, 0, 0, 16, 0) -[2618315.767] {Default Queue} discarded wl_shm#3151.format(875709016) -[2618315.771] {Default Queue} discarded wl_shm#3151.format(1) -[2618315.775] {Default Queue} discarded wl_shm#3151.format(0) -[2618315.779] {Default Queue} discarded wl_shm#3151.format(875708993) -[2618315.783] {Default Queue} discarded wl_shm#3152.format(875709016) -[2618315.787] {Default Queue} discarded wl_shm#3152.format(1) -[2618315.791] {Default Queue} discarded wl_shm#3152.format(0) -[2618315.795] {Default Queue} discarded wl_shm#3152.format(875708993) -[2618315.799] {Default Queue} discarded wl_shm#3153.format(875709016) -[2618315.803] {Default Queue} discarded wl_shm#3153.format(1) -[2618315.806] {Default Queue} discarded wl_shm#3153.format(0) -[2618315.810] {Default Queue} discarded wl_shm#3153.format(875708993) -[2618315.814] {Default Queue} wl_seat#3160.capabilities(7) -[2618315.819] {Default Queue} -> wl_seat#3160.get_keyboard(new id wl_keyboard#3176) -[2618315.823] {Default Queue} -> wl_seat#3160.get_pointer(new id wl_pointer#3177) -[2618315.829] {Default Queue} -> wl_data_device_manager#3156.get_data_device(new id wl_data_device#3178, wl_seat#3160) -[2618315.834] {Default Queue} -> zwp_primary_selection_device_manager_v1#3158.get_device(new id zwp_primary_selection_device_v1#3179, wl_seat#3160) -[2618315.841] {Default Queue} wl_output#3161.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618315.846] {Default Queue} wl_output#3161.mode(3, 1280, 800, 60000) -[2618315.851] {Default Queue} discarded wl_surface#2727.enter(wl_output#3161) -[2618315.856] {Default Queue} discarded wl_surface#3.enter(wl_output#3161) -[2618315.859] {Default Queue} discarded wl_surface#999.enter(wl_output#3161) -[2618315.870] {Default Queue} discarded wl_surface#3079.enter(wl_output#3161) -[2618315.874] {Default Queue} discarded wl_surface#1191.enter(wl_output#3161) -[2618315.878] {Default Queue} discarded wl_surface#1159.enter(wl_output#3161) -[2618315.882] {Default Queue} discarded wl_surface#1703.enter(wl_output#3161) -[2618315.887] {Default Queue} discarded wl_surface#2215.enter(wl_output#3161) -[2618315.890] {Default Queue} discarded wl_surface#423.enter(wl_output#3161) -[2618315.894] {Default Queue} discarded wl_surface#1447.enter(wl_output#3161) -[2618315.898] {Default Queue} discarded wl_surface#3047.enter(wl_output#3161) -[2618315.902] {Default Queue} discarded wl_surface#2023.enter(wl_output#3161) -[2618315.906] {Default Queue} discarded wl_surface#1639.enter(wl_output#3161) -[2618315.910] {Default Queue} discarded wl_surface#1319.enter(wl_output#3161) -[2618315.914] {Default Queue} discarded wl_surface#1127.enter(wl_output#3161) -[2618315.917] {Default Queue} discarded wl_surface#2151.enter(wl_output#3161) -[2618315.922] {Default Queue} discarded wl_surface#2375.enter(wl_output#3161) -[2618315.925] {Default Queue} discarded wl_surface#2695.enter(wl_output#3161) -[2618315.929] {Default Queue} discarded wl_surface#2919.enter(wl_output#3161) -[2618315.934] {Default Queue} discarded wl_surface#1063.enter(wl_output#3161) -[2618315.941] {Default Queue} discarded wl_surface#455.enter(wl_output#3161) -[2618315.947] {Default Queue} discarded wl_surface#1575.enter(wl_output#3161) -[2618315.951] {Default Queue} discarded wl_surface#1799.enter(wl_output#3161) -[2618315.955] {Default Queue} discarded wl_surface#1415.enter(wl_output#3161) -[2618315.959] {Default Queue} discarded wl_surface#2439.enter(wl_output#3161) -[2618315.963] {Default Queue} discarded wl_surface#2279.enter(wl_output#3161) -[2618315.967] {Default Queue} discarded wl_surface#1831.enter(wl_output#3161) -[2618315.971] {Default Queue} discarded wl_surface#903.enter(wl_output#3161) -[2618315.974] {Default Queue} discarded wl_surface#2663.enter(wl_output#3161) -[2618315.978] {Default Queue} discarded wl_surface#775.enter(wl_output#3161) -[2618315.982] {Default Queue} discarded wl_surface#1991.enter(wl_output#3161) -[2618315.986] {Default Queue} discarded wl_surface#1543.enter(wl_output#3161) -[2618315.990] {Default Queue} discarded wl_surface#135.enter(wl_output#3161) -[2618315.994] {Default Queue} discarded wl_surface#1287.enter(wl_output#3161) -[2618315.998] {Default Queue} discarded wl_surface#1031.enter(wl_output#3161) -[2618316.001] {Default Queue} discarded wl_surface#615.enter(wl_output#3161) -[2618316.005] {Default Queue} discarded wl_surface#3111.enter(wl_output#3161) -[2618316.009] {Default Queue} discarded wl_surface#231.enter(wl_output#3161) -[2618316.013] {Default Queue} discarded wl_surface#2343.enter(wl_output#3161) -[2618316.017] {Default Queue} discarded wl_surface#1863.enter(wl_output#3161) -[2618316.021] {Default Queue} discarded wl_surface#359.enter(wl_output#3161) -[2618316.025] {Default Queue} discarded wl_surface#2983.enter(wl_output#3161) -[2618316.029] {Default Queue} discarded wl_surface#583.enter(wl_output#3161) -[2618316.032] {Default Queue} discarded wl_surface#743.enter(wl_output#3161) -[2618316.036] {Default Queue} discarded wl_surface#2535.enter(wl_output#3161) -[2618316.040] {Default Queue} discarded wl_surface#967.enter(wl_output#3161) -[2618316.044] {Default Queue} discarded wl_surface#103.enter(wl_output#3161) -[2618316.048] {Default Queue} discarded wl_surface#327.enter(wl_output#3161) -[2618316.052] {Default Queue} discarded wl_surface#43.enter(wl_output#3161) -[2618316.056] {Default Queue} discarded wl_surface#2247.enter(wl_output#3161) -[2618316.060] {Default Queue} discarded wl_surface#807.enter(wl_output#3161) -[2618316.064] {Default Queue} discarded wl_surface#19.enter(wl_output#3161) -[2618316.068] {Default Queue} discarded wl_surface#2951.enter(wl_output#3161) -[2618316.072] {Default Queue} discarded wl_surface#1511.enter(wl_output#3161) -[2618316.075] {Default Queue} discarded wl_surface#199.enter(wl_output#3161) -[2618316.079] {Default Queue} discarded wl_surface#391.enter(wl_output#3161) -[2618316.083] {Default Queue} discarded wl_surface#935.enter(wl_output#3161) -[2618316.087] {Default Queue} discarded wl_surface#2823.enter(wl_output#3161) -[2618316.091] {Default Queue} discarded wl_surface#3015.enter(wl_output#3161) -[2618316.095] {Default Queue} discarded wl_surface#1671.enter(wl_output#3161) -[2618316.099] {Default Queue} discarded wl_surface#1351.enter(wl_output#3161) -[2618316.103] {Default Queue} discarded wl_surface#711.enter(wl_output#3161) -[2618316.107] {Default Queue} discarded wl_surface#1223.enter(wl_output#3161) -[2618316.111] {Default Queue} discarded wl_surface#1927.enter(wl_output#3161) -[2618316.115] {Default Queue} discarded wl_surface#871.enter(wl_output#3161) -[2618316.118] {Default Queue} discarded wl_surface#1895.enter(wl_output#3161) -[2618316.122] {Default Queue} discarded wl_surface#263.enter(wl_output#3161) -[2618316.126] {Default Queue} discarded wl_surface#551.enter(wl_output#3161) -[2618316.130] {Default Queue} discarded wl_surface#1735.enter(wl_output#3161) -[2618316.134] {Default Queue} discarded wl_surface#1479.enter(wl_output#3161) -[2618316.138] {Default Queue} discarded wl_surface#1772.enter(wl_output#3161) -[2618316.142] {Default Queue} discarded wl_surface#2599.enter(wl_output#3161) -[2618316.146] {Default Queue} discarded wl_surface#2631.enter(wl_output#3161) -[2618316.153] {Default Queue} discarded wl_surface#1959.enter(wl_output#3161) -[2618316.158] {Default Queue} discarded wl_surface#647.enter(wl_output#3161) -[2618316.162] {Default Queue} discarded wl_surface#2055.enter(wl_output#3161) -[2618316.166] {Default Queue} discarded wl_surface#2508.enter(wl_output#3161) -[2618316.170] {Default Queue} discarded wl_surface#71.enter(wl_output#3161) -[2618316.174] {Default Queue} discarded wl_surface#2759.enter(wl_output#3161) -[2618316.178] {Default Queue} discarded wl_surface#2791.enter(wl_output#3161) -[2618316.181] {Default Queue} discarded wl_surface#2887.enter(wl_output#3161) -[2618316.185] {Default Queue} discarded wl_surface#2183.enter(wl_output#3161) -[2618316.189] {Default Queue} discarded wl_surface#2567.enter(wl_output#3161) -[2618316.193] {Default Queue} discarded wl_surface#839.enter(wl_output#3161) -[2618316.197] {Default Queue} discarded wl_surface#1607.enter(wl_output#3161) -[2618316.201] {Default Queue} discarded wl_surface#1095.enter(wl_output#3161) -[2618316.205] {Default Queue} discarded wl_surface#1383.enter(wl_output#3161) -[2618316.209] {Default Queue} discarded wl_surface#487.enter(wl_output#3161) -[2618316.213] {Default Queue} discarded wl_surface#2311.enter(wl_output#3161) -[2618316.217] {Default Queue} discarded wl_surface#519.enter(wl_output#3161) -[2618316.221] {Default Queue} discarded wl_surface#2087.enter(wl_output#3161) -[2618316.225] {Default Queue} discarded wl_surface#2471.enter(wl_output#3161) -[2618316.229] {Default Queue} discarded wl_surface#295.enter(wl_output#3161) -[2618316.233] {Default Queue} discarded wl_surface#167.enter(wl_output#3161) -[2618316.237] {Default Queue} discarded wl_surface#1255.enter(wl_output#3161) -[2618316.241] {Default Queue} discarded wl_surface#2855.enter(wl_output#3161) -[2618316.245] {Default Queue} discarded wl_surface#679.enter(wl_output#3161) -[2618316.249] {Default Queue} discarded wl_surface#2407.enter(wl_output#3161) -[2618316.252] {Default Queue} discarded wl_surface#2119.enter(wl_output#3161) -[2618316.256] {Default Queue} wl_registry#3174.global(1, "wl_compositor", 6) -[2618316.262] {Default Queue} -> wl_registry#3174.bind(1, "wl_compositor", 1, new id [unknown]#3180) -[2618316.269] {Default Queue} wl_registry#3174.global(2, "wl_subcompositor", 1) -[2618316.274] {Default Queue} -> wl_registry#3174.bind(2, "wl_subcompositor", 1, new id [unknown]#3181) -[2618316.278] {Default Queue} wl_registry#3174.global(3, "xdg_wm_base", 6) -[2618316.283] {Default Queue} -> wl_registry#3174.bind(3, "xdg_wm_base", 1, new id [unknown]#3182) -[2618316.287] {Default Queue} wl_registry#3174.global(6, "zwlr_layer_shell_v1", 5) -[2618316.291] {Default Queue} wl_registry#3174.global(7, "ext_session_lock_manager_v1", 1) -[2618316.296] {Default Queue} wl_registry#3174.global(8, "wl_shm", 2) -[2618316.301] {Default Queue} -> wl_registry#3174.bind(8, "wl_shm", 1, new id [unknown]#3183) -[2618316.305] {Default Queue} -> wl_registry#3174.bind(8, "wl_shm", 1, new id [unknown]#3184) -[2618316.309] {Default Queue} -> wl_registry#3174.bind(8, "wl_shm", 1, new id [unknown]#3185) -[2618316.314] {Default Queue} wl_registry#3174.global(9, "zxdg_output_manager_v1", 3) -[2618316.318] {Default Queue} wl_registry#3174.global(10, "wp_fractional_scale_manager_v1", 1) -[2618316.323] {Default Queue} wl_registry#3174.global(11, "zwp_tablet_manager_v2", 1) -[2618316.329] {Default Queue} wl_registry#3174.global(12, "zwp_pointer_gestures_v1", 3) -[2618316.335] {Default Queue} wl_registry#3174.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618316.342] {Default Queue} -> wl_registry#3174.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3186) -[2618316.347] {Default Queue} wl_registry#3174.global(14, "zwp_pointer_constraints_v1", 1) -[2618316.353] {Default Queue} -> wl_registry#3174.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3187) -[2618316.359] {Default Queue} wl_registry#3174.global(15, "ext_idle_notifier_v1", 2) -[2618316.363] {Default Queue} wl_registry#3174.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618316.371] {Default Queue} wl_registry#3174.global(17, "wl_data_device_manager", 3) -[2618316.378] {Default Queue} -> wl_registry#3174.bind(17, "wl_data_device_manager", 2, new id [unknown]#3188) -[2618316.382] {Default Queue} -> wl_data_device_manager#3188.create_data_source(new id wl_data_source#3189) -[2618316.387] {Default Queue} -> wl_data_source#3189.offer("text/plain") -[2618316.391] {Default Queue} -> wl_data_source#3189.offer("text/plain;charset=utf-8") -[2618316.395] {Default Queue} -> wl_data_source#3189.offer("TEXT") -[2618316.399] {Default Queue} -> wl_data_source#3189.offer("STRING") -[2618316.403] {Default Queue} -> wl_data_source#3189.offer("UTF8_STRING") -[2618316.408] {Default Queue} wl_registry#3174.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618316.412] {Default Queue} -> wl_registry#3174.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3190) -[2618316.420] {Default Queue} -> zwp_primary_selection_device_manager_v1#3190.create_source(new id zwp_primary_selection_source_v1#3191) -[2618316.428] {Default Queue} -> zwp_primary_selection_source_v1#3191.offer("text/plain") -[2618316.432] {Default Queue} -> zwp_primary_selection_source_v1#3191.offer("text/plain;charset=utf-8") -[2618316.436] {Default Queue} -> zwp_primary_selection_source_v1#3191.offer("TEXT") -[2618316.440] {Default Queue} -> zwp_primary_selection_source_v1#3191.offer("STRING") -[2618316.445] {Default Queue} -> zwp_primary_selection_source_v1#3191.offer("UTF8_STRING") -[2618316.448] {Default Queue} wl_registry#3174.global(19, "zwlr_data_control_manager_v1", 2) -[2618316.453] {Default Queue} wl_registry#3174.global(20, "ext_data_control_manager_v1", 1) -[2618316.458] {Default Queue} wl_registry#3174.global(21, "wp_presentation", 2) -[2618316.462] {Default Queue} wl_registry#3174.global(22, "wp_security_context_manager_v1", 1) -[2618316.467] {Default Queue} wl_registry#3174.global(23, "zwp_text_input_manager_v3", 1) -[2618316.471] {Default Queue} wl_registry#3174.global(24, "zwp_input_method_manager_v2", 1) -[2618316.475] {Default Queue} wl_registry#3174.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618316.480] {Default Queue} wl_registry#3174.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618316.484] {Default Queue} wl_registry#3174.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618316.488] {Default Queue} wl_registry#3174.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618316.493] {Default Queue} wl_registry#3174.global(29, "ext_workspace_manager_v1", 1) -[2618316.497] {Default Queue} wl_registry#3174.global(30, "zwlr_output_manager_v1", 4) -[2618316.501] {Default Queue} wl_registry#3174.global(31, "zwlr_screencopy_manager_v1", 3) -[2618316.505] {Default Queue} wl_registry#3174.global(32, "wp_viewporter", 1) -[2618316.510] {Default Queue} wl_registry#3174.global(33, "zxdg_exporter_v2", 1) -[2618316.515] {Default Queue} wl_registry#3174.global(34, "zxdg_importer_v2", 1) -[2618316.519] {Default Queue} wl_registry#3174.global(36, "xdg_activation_v1", 1) -[2618316.524] {Default Queue} wl_registry#3174.global(37, "mutter_x11_interop", 1) -[2618316.528] {Default Queue} wl_registry#3174.global(38, "wl_seat", 9) -[2618316.533] {Default Queue} -> wl_registry#3174.bind(38, "wl_seat", 1, new id [unknown]#3192) -[2618316.537] {Default Queue} wl_registry#3174.global(39, "wp_cursor_shape_manager_v1", 2) -[2618316.542] {Default Queue} wl_registry#3174.global(40, "wl_output", 4) -[2618316.546] {Default Queue} -> wl_registry#3174.bind(40, "wl_output", 1, new id [unknown]#3193) -[2618316.551] {Default Queue} wl_callback#3175.done(0) -[2618316.555] {Default Queue} discarded wl_surface#3143.enter(wl_output#18) -[2618316.559] {Default Queue} discarded wl_surface#3143.enter(wl_output#57) -[2618316.563] {Default Queue} discarded wl_surface#3143.enter(wl_output#89) -[2618316.567] {Default Queue} discarded wl_surface#3143.enter(wl_output#121) -[2618316.571] {Default Queue} discarded wl_surface#3143.enter(wl_output#153) -[2618316.575] {Default Queue} discarded wl_surface#3143.enter(wl_output#185) -[2618316.579] {Default Queue} discarded wl_surface#3143.enter(wl_output#217) -[2618316.586] {Default Queue} discarded wl_surface#3143.enter(wl_output#249) -[2618316.591] {Default Queue} discarded wl_surface#3143.enter(wl_output#281) -[2618316.595] {Default Queue} discarded wl_surface#3143.enter(wl_output#313) -[2618316.599] {Default Queue} discarded wl_surface#3143.enter(wl_output#345) -[2618316.603] {Default Queue} discarded wl_surface#3143.enter(wl_output#377) -[2618316.607] {Default Queue} discarded wl_surface#3143.enter(wl_output#409) -[2618316.611] {Default Queue} discarded wl_surface#3143.enter(wl_output#441) -[2618316.615] {Default Queue} discarded wl_surface#3143.enter(wl_output#473) -[2618316.618] {Default Queue} discarded wl_surface#3143.enter(wl_output#505) -[2618316.622] {Default Queue} discarded wl_surface#3143.enter(wl_output#537) -[2618316.626] {Default Queue} discarded wl_surface#3143.enter(wl_output#569) -[2618316.630] {Default Queue} discarded wl_surface#3143.enter(wl_output#601) -[2618316.634] {Default Queue} discarded wl_surface#3143.enter(wl_output#633) -[2618316.638] {Default Queue} discarded wl_surface#3143.enter(wl_output#665) -[2618316.641] {Default Queue} discarded wl_surface#3143.enter(wl_output#697) -[2618316.645] {Default Queue} discarded wl_surface#3143.enter(wl_output#729) -[2618316.649] {Default Queue} discarded wl_surface#3143.enter(wl_output#761) -[2618316.654] {Default Queue} discarded wl_surface#3143.enter(wl_output#793) -[2618316.658] {Default Queue} discarded wl_surface#3143.enter(wl_output#825) -[2618316.662] {Default Queue} discarded wl_surface#3143.enter(wl_output#857) -[2618316.666] {Default Queue} discarded wl_surface#3143.enter(wl_output#889) -[2618316.670] {Default Queue} discarded wl_surface#3143.enter(wl_output#921) -[2618316.674] {Default Queue} discarded wl_surface#3143.enter(wl_output#953) -[2618316.678] {Default Queue} discarded wl_surface#3143.enter(wl_output#985) -[2618316.682] {Default Queue} discarded wl_surface#3143.enter(wl_output#1017) -[2618316.686] {Default Queue} discarded wl_surface#3143.enter(wl_output#1049) -[2618316.690] {Default Queue} discarded wl_surface#3143.enter(wl_output#1081) -[2618316.694] {Default Queue} discarded wl_surface#3143.enter(wl_output#1113) -[2618316.698] {Default Queue} discarded wl_surface#3143.enter(wl_output#1145) -[2618316.703] {Default Queue} discarded wl_surface#3143.enter(wl_output#1177) -[2618316.707] {Default Queue} discarded wl_surface#3143.enter(wl_output#1209) -[2618316.711] {Default Queue} discarded wl_surface#3143.enter(wl_output#1241) -[2618316.715] {Default Queue} discarded wl_surface#3143.enter(wl_output#1273) -[2618316.719] {Default Queue} discarded wl_surface#3143.enter(wl_output#1305) -[2618316.723] {Default Queue} discarded wl_surface#3143.enter(wl_output#1337) -[2618316.727] {Default Queue} discarded wl_surface#3143.enter(wl_output#1369) -[2618316.731] {Default Queue} discarded wl_surface#3143.enter(wl_output#1401) -[2618316.735] {Default Queue} discarded wl_surface#3143.enter(wl_output#1433) -[2618316.739] {Default Queue} discarded wl_surface#3143.enter(wl_output#1465) -[2618316.743] {Default Queue} discarded wl_surface#3143.enter(wl_output#1497) -[2618316.747] {Default Queue} discarded wl_surface#3143.enter(wl_output#1529) -[2618316.751] {Default Queue} discarded wl_surface#3143.enter(wl_output#1561) -[2618316.754] {Default Queue} discarded wl_surface#3143.enter(wl_output#1593) -[2618316.758] {Default Queue} discarded wl_surface#3143.enter(wl_output#1625) -[2618316.762] {Default Queue} discarded wl_surface#3143.enter(wl_output#1657) -[2618316.766] {Default Queue} discarded wl_surface#3143.enter(wl_output#1689) -[2618316.770] {Default Queue} discarded wl_surface#3143.enter(wl_output#1721) -[2618316.774] {Default Queue} discarded wl_surface#3143.enter(wl_output#1753) -[2618316.778] {Default Queue} discarded wl_surface#3143.enter(wl_output#1785) -[2618316.782] {Default Queue} discarded wl_surface#3143.enter(wl_output#1817) -[2618316.786] {Default Queue} discarded wl_surface#3143.enter(wl_output#1849) -[2618316.790] {Default Queue} discarded wl_surface#3143.enter(wl_output#1881) -[2618316.797] {Default Queue} discarded wl_surface#3143.enter(wl_output#1913) -[2618316.803] {Default Queue} discarded wl_surface#3143.enter(wl_output#1945) -[2618316.807] {Default Queue} discarded wl_surface#3143.enter(wl_output#1977) -[2618316.811] {Default Queue} discarded wl_surface#3143.enter(wl_output#2009) -[2618316.815] {Default Queue} discarded wl_surface#3143.enter(wl_output#2041) -[2618316.819] {Default Queue} discarded wl_surface#3143.enter(wl_output#2073) -[2618316.823] {Default Queue} discarded wl_surface#3143.enter(wl_output#2105) -[2618316.826] {Default Queue} discarded wl_surface#3143.enter(wl_output#2137) -[2618316.830] {Default Queue} discarded wl_surface#3143.enter(wl_output#2169) -[2618316.834] {Default Queue} discarded wl_surface#3143.enter(wl_output#2201) -[2618316.838] {Default Queue} discarded wl_surface#3143.enter(wl_output#2233) -[2618316.843] {Default Queue} discarded wl_surface#3143.enter(wl_output#2265) -[2618316.847] {Default Queue} discarded wl_surface#3143.enter(wl_output#2297) -[2618316.850] {Default Queue} discarded wl_surface#3143.enter(wl_output#2329) -[2618316.854] {Default Queue} discarded wl_surface#3143.enter(wl_output#2361) -[2618316.858] {Default Queue} discarded wl_surface#3143.enter(wl_output#2393) -[2618316.869] {Default Queue} discarded wl_surface#3143.enter(wl_output#2425) -[2618316.873] {Default Queue} discarded wl_surface#3143.enter(wl_output#2457) -[2618316.878] {Default Queue} -> wl_compositor#3148.create_surface(new id wl_surface#3175) -[2618316.883] {Default Queue} -> wl_subcompositor#3181.get_subsurface(new id wl_subsurface#3194, wl_surface#3175, wl_surface#3143) -[2618316.891] {Default Queue} -> wl_subsurface#3194.set_desync() -[2618316.895] {Default Queue} -> wl_subsurface#3194.set_position(-14, 0) -[2618316.900] {Default Queue} -> wl_subsurface#3194.place_above(wl_surface#3143) -[2618316.942] {Default Queue} -> wl_shm#3183.create_pool(new id wl_shm_pool#3195, fd 504, 128) -[2618316.949] {Default Queue} -> wl_shm#3183.create_pool(new id wl_shm_pool#3196, fd 505, 128) -[2618316.953] {Default Queue} -> wl_shm_pool#3195.create_buffer(new id wl_buffer#3197, 0, 16, 2, 64, 0) -[2618316.958] {Default Queue} -> wl_shm_pool#3196.create_buffer(new id wl_buffer#3198, 0, 16, 2, 64, 0) -[2618316.966] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618316.973] {Default Queue} -> wl_surface#3175.commit() -[2618316.981] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618316.986] {Default Queue} -> wl_surface#3175.commit() -[2618316.992] {Default Queue} -> wl_compositor#3180.create_region(new id wl_region#3199) -[2618316.998] {Default Queue} -> wl_compositor#3180.create_region(new id wl_region#3200) -[2618317.002] {Default Queue} -> wl_region#3199.subtract(0, 0, 30, 2) -[2618317.007] {Default Queue} -> wl_region#3199.add(0, 0, 0, 0) -[2618317.012] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618317.016] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618317.021] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618317.025] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) -[2618317.040] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618317.045] {Default Queue} -> wl_surface#3175.commit() -[2618317.083] {Default Queue} -> wl_shm#3185.create_pool(new id wl_shm_pool#3201, fd 508, 640) -[2618317.089] {Default Queue} -> wl_shm#3185.create_pool(new id wl_shm_pool#3202, fd 509, 640) -[2618317.093] {Default Queue} -> wl_shm_pool#3201.create_buffer(new id wl_buffer#3203, 0, 10, 16, 40, 0) -[2618317.098] {Default Queue} -> wl_shm_pool#3202.create_buffer(new id wl_buffer#3204, 0, 10, 16, 40, 0) -[2618317.106] {Default Queue} -> wl_compositor#3180.create_surface(new id wl_surface#3205) -[2618317.110] {Default Queue} -> wl_surface#3205.attach(wl_buffer#3203, 0, 0) -[2618317.114] {Default Queue} -> wl_surface#3205.commit() -[2618317.120] {Default Queue} -> wl_surface#3205.attach(wl_buffer#3203, 0, 0) -[2618317.124] {Default Queue} -> wl_surface#3205.commit() -[2618317.131] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618317.145] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618317.152] {Default Queue} -> wl_surface#3175.commit() -[2618317.159] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3206) -[2618317.164] {Default Queue} -> wl_display#1.sync(new id wl_callback#3207) -[2618320.448] {Default Queue} discarded wl_surface#3143.enter(wl_output#2489) -[2618320.459] {Default Queue} discarded wl_surface#3143.enter(wl_output#2521) -[2618320.464] {Default Queue} discarded wl_surface#3143.enter(wl_output#2553) -[2618320.468] {Default Queue} discarded wl_surface#3143.enter(wl_output#2585) -[2618320.473] {Default Queue} discarded wl_surface#3143.enter(wl_output#2617) -[2618320.477] {Default Queue} discarded wl_surface#3143.enter(wl_output#2649) -[2618320.481] {Default Queue} discarded wl_surface#3143.enter(wl_output#2681) -[2618320.484] {Default Queue} discarded wl_surface#3143.enter(wl_output#2713) -[2618320.489] {Default Queue} discarded wl_surface#3143.enter(wl_output#2745) -[2618320.493] {Default Queue} discarded wl_surface#3143.enter(wl_output#2777) -[2618320.497] {Default Queue} discarded wl_surface#3143.enter(wl_output#2809) -[2618320.500] {Default Queue} discarded wl_surface#3143.enter(wl_output#2841) -[2618320.504] {Default Queue} discarded wl_surface#3143.enter(wl_output#2873) -[2618320.508] {Default Queue} discarded wl_surface#3143.enter(wl_output#2905) -[2618320.512] {Default Queue} discarded wl_surface#3143.enter(wl_output#2937) -[2618320.516] {Default Queue} discarded wl_surface#3143.enter(wl_output#2969) -[2618320.520] {Default Queue} discarded wl_surface#3143.enter(wl_output#3001) -[2618320.524] {Default Queue} discarded wl_surface#3143.enter(wl_output#3033) -[2618320.528] {Default Queue} discarded wl_surface#3143.enter(wl_output#3065) -[2618320.532] {Default Queue} discarded wl_surface#3143.enter(wl_output#3097) -[2618320.536] {Default Queue} discarded wl_surface#3143.enter(wl_output#3129) -[2618320.540] {Default Queue} discarded wl_surface#3143.enter(wl_output#3161) -[2618320.754] {Display Queue} wl_display#1.delete_id(3207) -[2618320.760] {Default Queue} wl_keyboard#3176.keymap(1, fd 504, 68213) -[2618320.765] {Default Queue} wl_keyboard#3176.enter(566, wl_surface#19, array[0]) -[2618320.770] {Default Queue} wl_keyboard#3176.modifiers(566, 0, 0, 16, 0) -[2618320.775] {Default Queue} discarded wl_shm#3183.format(875709016) -[2618320.779] {Default Queue} discarded wl_shm#3183.format(1) -[2618320.782] {Default Queue} discarded wl_shm#3183.format(0) -[2618320.786] {Default Queue} discarded wl_shm#3183.format(875708993) -[2618320.791] {Default Queue} discarded wl_shm#3184.format(875709016) -[2618320.795] {Default Queue} discarded wl_shm#3184.format(1) -[2618320.799] {Default Queue} discarded wl_shm#3184.format(0) -[2618320.802] {Default Queue} discarded wl_shm#3184.format(875708993) -[2618320.806] {Default Queue} discarded wl_shm#3185.format(875709016) -[2618320.810] {Default Queue} discarded wl_shm#3185.format(1) -[2618320.814] {Default Queue} discarded wl_shm#3185.format(0) -[2618320.818] {Default Queue} discarded wl_shm#3185.format(875708993) -[2618320.821] {Default Queue} wl_seat#3192.capabilities(7) -[2618320.826] {Default Queue} -> wl_seat#3192.get_keyboard(new id wl_keyboard#3208) -[2618320.830] {Default Queue} -> wl_seat#3192.get_pointer(new id wl_pointer#3209) -[2618320.835] {Default Queue} -> wl_data_device_manager#3188.get_data_device(new id wl_data_device#3210, wl_seat#3192) -[2618320.840] {Default Queue} -> zwp_primary_selection_device_manager_v1#3190.get_device(new id zwp_primary_selection_device_v1#3211, wl_seat#3192) -[2618320.847] {Default Queue} wl_output#3193.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618320.852] {Default Queue} wl_output#3193.mode(3, 1280, 800, 60000) -[2618320.857] {Default Queue} discarded wl_surface#2727.enter(wl_output#3193) -[2618320.868] {Default Queue} discarded wl_surface#3.enter(wl_output#3193) -[2618320.872] {Default Queue} discarded wl_surface#999.enter(wl_output#3193) -[2618320.876] {Default Queue} discarded wl_surface#3079.enter(wl_output#3193) -[2618320.886] {Default Queue} discarded wl_surface#1191.enter(wl_output#3193) -[2618320.893] {Default Queue} discarded wl_surface#1159.enter(wl_output#3193) -[2618320.896] {Default Queue} discarded wl_surface#1703.enter(wl_output#3193) -[2618320.900] {Default Queue} discarded wl_surface#2215.enter(wl_output#3193) -[2618320.904] {Default Queue} discarded wl_surface#423.enter(wl_output#3193) -[2618320.908] {Default Queue} discarded wl_surface#1447.enter(wl_output#3193) -[2618320.912] {Default Queue} discarded wl_surface#3047.enter(wl_output#3193) -[2618320.916] {Default Queue} discarded wl_surface#2023.enter(wl_output#3193) -[2618320.920] {Default Queue} discarded wl_surface#1639.enter(wl_output#3193) -[2618320.923] {Default Queue} discarded wl_surface#1319.enter(wl_output#3193) -[2618320.927] {Default Queue} discarded wl_surface#1127.enter(wl_output#3193) -[2618320.931] {Default Queue} discarded wl_surface#2151.enter(wl_output#3193) -[2618320.935] {Default Queue} discarded wl_surface#2375.enter(wl_output#3193) -[2618320.939] {Default Queue} discarded wl_surface#2695.enter(wl_output#3193) -[2618320.944] {Default Queue} discarded wl_surface#2919.enter(wl_output#3193) -[2618320.948] {Default Queue} discarded wl_surface#1063.enter(wl_output#3193) -[2618320.952] {Default Queue} discarded wl_surface#455.enter(wl_output#3193) -[2618320.956] {Default Queue} discarded wl_surface#1575.enter(wl_output#3193) -[2618320.960] {Default Queue} discarded wl_surface#1799.enter(wl_output#3193) -[2618320.964] {Default Queue} discarded wl_surface#1415.enter(wl_output#3193) -[2618320.968] {Default Queue} discarded wl_surface#2439.enter(wl_output#3193) -[2618320.972] {Default Queue} discarded wl_surface#2279.enter(wl_output#3193) -[2618320.977] {Default Queue} discarded wl_surface#1831.enter(wl_output#3193) -[2618320.981] {Default Queue} discarded wl_surface#903.enter(wl_output#3193) -[2618320.984] {Default Queue} discarded wl_surface#2663.enter(wl_output#3193) -[2618320.988] {Default Queue} discarded wl_surface#775.enter(wl_output#3193) -[2618320.992] {Default Queue} discarded wl_surface#1991.enter(wl_output#3193) -[2618320.996] {Default Queue} discarded wl_surface#1543.enter(wl_output#3193) -[2618321.000] {Default Queue} discarded wl_surface#135.enter(wl_output#3193) -[2618321.004] {Default Queue} discarded wl_surface#1287.enter(wl_output#3193) -[2618321.008] {Default Queue} discarded wl_surface#1031.enter(wl_output#3193) -[2618321.011] {Default Queue} discarded wl_surface#615.enter(wl_output#3193) -[2618321.015] {Default Queue} discarded wl_surface#3111.enter(wl_output#3193) -[2618321.019] {Default Queue} discarded wl_surface#231.enter(wl_output#3193) -[2618321.023] {Default Queue} discarded wl_surface#2343.enter(wl_output#3193) -[2618321.027] {Default Queue} discarded wl_surface#1863.enter(wl_output#3193) -[2618321.031] {Default Queue} discarded wl_surface#359.enter(wl_output#3193) -[2618321.035] {Default Queue} discarded wl_surface#2983.enter(wl_output#3193) -[2618321.039] {Default Queue} discarded wl_surface#583.enter(wl_output#3193) -[2618321.043] {Default Queue} discarded wl_surface#743.enter(wl_output#3193) -[2618321.046] {Default Queue} discarded wl_surface#3143.enter(wl_output#3193) -[2618321.050] {Default Queue} discarded wl_surface#2535.enter(wl_output#3193) -[2618321.054] {Default Queue} discarded wl_surface#967.enter(wl_output#3193) -[2618321.058] {Default Queue} discarded wl_surface#103.enter(wl_output#3193) -[2618321.062] {Default Queue} discarded wl_surface#327.enter(wl_output#3193) -[2618321.066] {Default Queue} discarded wl_surface#43.enter(wl_output#3193) -[2618321.070] {Default Queue} discarded wl_surface#2247.enter(wl_output#3193) -[2618321.074] {Default Queue} discarded wl_surface#807.enter(wl_output#3193) -[2618321.077] {Default Queue} discarded wl_surface#19.enter(wl_output#3193) -[2618321.081] {Default Queue} discarded wl_surface#2951.enter(wl_output#3193) -[2618321.085] {Default Queue} discarded wl_surface#1511.enter(wl_output#3193) -[2618321.089] {Default Queue} discarded wl_surface#199.enter(wl_output#3193) -[2618321.093] {Default Queue} discarded wl_surface#391.enter(wl_output#3193) -[2618321.100] {Default Queue} discarded wl_surface#935.enter(wl_output#3193) -[2618321.105] {Default Queue} discarded wl_surface#2823.enter(wl_output#3193) -[2618321.109] {Default Queue} discarded wl_surface#3015.enter(wl_output#3193) -[2618321.113] {Default Queue} discarded wl_surface#1671.enter(wl_output#3193) -[2618321.117] {Default Queue} discarded wl_surface#1351.enter(wl_output#3193) -[2618321.121] {Default Queue} discarded wl_surface#711.enter(wl_output#3193) -[2618321.125] {Default Queue} discarded wl_surface#1223.enter(wl_output#3193) -[2618321.128] {Default Queue} discarded wl_surface#1927.enter(wl_output#3193) -[2618321.132] {Default Queue} discarded wl_surface#871.enter(wl_output#3193) -[2618321.137] {Default Queue} discarded wl_surface#1895.enter(wl_output#3193) -[2618321.141] {Default Queue} discarded wl_surface#263.enter(wl_output#3193) -[2618321.144] {Default Queue} discarded wl_surface#551.enter(wl_output#3193) -[2618321.148] {Default Queue} discarded wl_surface#1735.enter(wl_output#3193) -[2618321.152] {Default Queue} discarded wl_surface#1479.enter(wl_output#3193) -[2618321.156] {Default Queue} discarded wl_surface#1772.enter(wl_output#3193) -[2618321.160] {Default Queue} discarded wl_surface#2599.enter(wl_output#3193) -[2618321.164] {Default Queue} discarded wl_surface#2631.enter(wl_output#3193) -[2618321.168] {Default Queue} discarded wl_surface#1959.enter(wl_output#3193) -[2618321.172] {Default Queue} discarded wl_surface#647.enter(wl_output#3193) -[2618321.176] {Default Queue} discarded wl_surface#2055.enter(wl_output#3193) -[2618321.180] {Default Queue} discarded wl_surface#2508.enter(wl_output#3193) -[2618321.184] {Default Queue} discarded wl_surface#71.enter(wl_output#3193) -[2618321.187] {Default Queue} discarded wl_surface#2759.enter(wl_output#3193) -[2618321.191] {Default Queue} discarded wl_surface#2791.enter(wl_output#3193) -[2618321.195] {Default Queue} discarded wl_surface#2887.enter(wl_output#3193) -[2618321.199] {Default Queue} discarded wl_surface#2183.enter(wl_output#3193) -[2618321.203] {Default Queue} discarded wl_surface#2567.enter(wl_output#3193) -[2618321.207] {Default Queue} discarded wl_surface#839.enter(wl_output#3193) -[2618321.211] {Default Queue} discarded wl_surface#1607.enter(wl_output#3193) -[2618321.215] {Default Queue} discarded wl_surface#1095.enter(wl_output#3193) -[2618321.219] {Default Queue} discarded wl_surface#1383.enter(wl_output#3193) -[2618321.222] {Default Queue} discarded wl_surface#487.enter(wl_output#3193) -[2618321.226] {Default Queue} discarded wl_surface#2311.enter(wl_output#3193) -[2618321.230] {Default Queue} discarded wl_surface#519.enter(wl_output#3193) -[2618321.234] {Default Queue} discarded wl_surface#2087.enter(wl_output#3193) -[2618321.238] {Default Queue} discarded wl_surface#2471.enter(wl_output#3193) -[2618321.242] {Default Queue} discarded wl_surface#295.enter(wl_output#3193) -[2618321.246] {Default Queue} discarded wl_surface#167.enter(wl_output#3193) -[2618321.250] {Default Queue} discarded wl_surface#1255.enter(wl_output#3193) -[2618321.254] {Default Queue} discarded wl_surface#2855.enter(wl_output#3193) -[2618321.258] {Default Queue} discarded wl_surface#679.enter(wl_output#3193) -[2618321.262] {Default Queue} discarded wl_surface#2407.enter(wl_output#3193) -[2618321.265] {Default Queue} discarded wl_surface#2119.enter(wl_output#3193) -[2618321.269] {Default Queue} wl_registry#3206.global(1, "wl_compositor", 6) -[2618321.274] {Default Queue} -> wl_registry#3206.bind(1, "wl_compositor", 1, new id [unknown]#3212) -[2618321.279] {Default Queue} wl_registry#3206.global(2, "wl_subcompositor", 1) -[2618321.284] {Default Queue} -> wl_registry#3206.bind(2, "wl_subcompositor", 1, new id [unknown]#3213) -[2618321.288] {Default Queue} wl_registry#3206.global(3, "xdg_wm_base", 6) -[2618321.294] {Default Queue} -> wl_registry#3206.bind(3, "xdg_wm_base", 1, new id [unknown]#3214) -[2618321.298] {Default Queue} wl_registry#3206.global(6, "zwlr_layer_shell_v1", 5) -[2618321.303] {Default Queue} wl_registry#3206.global(7, "ext_session_lock_manager_v1", 1) -[2618321.307] {Default Queue} wl_registry#3206.global(8, "wl_shm", 2) -[2618321.317] {Default Queue} -> wl_registry#3206.bind(8, "wl_shm", 1, new id [unknown]#3215) -[2618321.323] {Default Queue} -> wl_registry#3206.bind(8, "wl_shm", 1, new id [unknown]#3216) -[2618321.327] {Default Queue} -> wl_registry#3206.bind(8, "wl_shm", 1, new id [unknown]#3217) -[2618321.332] {Default Queue} wl_registry#3206.global(9, "zxdg_output_manager_v1", 3) -[2618321.336] {Default Queue} wl_registry#3206.global(10, "wp_fractional_scale_manager_v1", 1) -[2618321.340] {Default Queue} wl_registry#3206.global(11, "zwp_tablet_manager_v2", 1) -[2618321.345] {Default Queue} wl_registry#3206.global(12, "zwp_pointer_gestures_v1", 3) -[2618321.349] {Default Queue} wl_registry#3206.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618321.353] {Default Queue} -> wl_registry#3206.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3218) -[2618321.358] {Default Queue} wl_registry#3206.global(14, "zwp_pointer_constraints_v1", 1) -[2618321.362] {Default Queue} -> wl_registry#3206.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3219) -[2618321.367] {Default Queue} wl_registry#3206.global(15, "ext_idle_notifier_v1", 2) -[2618321.371] {Default Queue} wl_registry#3206.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618321.375] {Default Queue} wl_registry#3206.global(17, "wl_data_device_manager", 3) -[2618321.380] {Default Queue} -> wl_registry#3206.bind(17, "wl_data_device_manager", 2, new id [unknown]#3220) -[2618321.385] {Default Queue} -> wl_data_device_manager#3220.create_data_source(new id wl_data_source#3221) -[2618321.389] {Default Queue} -> wl_data_source#3221.offer("text/plain") -[2618321.393] {Default Queue} -> wl_data_source#3221.offer("text/plain;charset=utf-8") -[2618321.397] {Default Queue} -> wl_data_source#3221.offer("TEXT") -[2618321.401] {Default Queue} -> wl_data_source#3221.offer("STRING") -[2618321.405] {Default Queue} -> wl_data_source#3221.offer("UTF8_STRING") -[2618321.410] {Default Queue} wl_registry#3206.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618321.415] {Default Queue} -> wl_registry#3206.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3222) -[2618321.423] {Default Queue} -> zwp_primary_selection_device_manager_v1#3222.create_source(new id zwp_primary_selection_source_v1#3223) -[2618321.430] {Default Queue} -> zwp_primary_selection_source_v1#3223.offer("text/plain") -[2618321.434] {Default Queue} -> zwp_primary_selection_source_v1#3223.offer("text/plain;charset=utf-8") -[2618321.438] {Default Queue} -> zwp_primary_selection_source_v1#3223.offer("TEXT") -[2618321.442] {Default Queue} -> zwp_primary_selection_source_v1#3223.offer("STRING") -[2618321.446] {Default Queue} -> zwp_primary_selection_source_v1#3223.offer("UTF8_STRING") -[2618321.451] {Default Queue} wl_registry#3206.global(19, "zwlr_data_control_manager_v1", 2) -[2618321.455] {Default Queue} wl_registry#3206.global(20, "ext_data_control_manager_v1", 1) -[2618321.459] {Default Queue} wl_registry#3206.global(21, "wp_presentation", 2) -[2618321.464] {Default Queue} wl_registry#3206.global(22, "wp_security_context_manager_v1", 1) -[2618321.468] {Default Queue} wl_registry#3206.global(23, "zwp_text_input_manager_v3", 1) -[2618321.472] {Default Queue} wl_registry#3206.global(24, "zwp_input_method_manager_v2", 1) -[2618321.477] {Default Queue} wl_registry#3206.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618321.481] {Default Queue} wl_registry#3206.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618321.485] {Default Queue} wl_registry#3206.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618321.490] {Default Queue} wl_registry#3206.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618321.494] {Default Queue} wl_registry#3206.global(29, "ext_workspace_manager_v1", 1) -[2618321.498] {Default Queue} wl_registry#3206.global(30, "zwlr_output_manager_v1", 4) -[2618321.503] {Default Queue} wl_registry#3206.global(31, "zwlr_screencopy_manager_v1", 3) -[2618321.507] {Default Queue} wl_registry#3206.global(32, "wp_viewporter", 1) -[2618321.511] {Default Queue} wl_registry#3206.global(33, "zxdg_exporter_v2", 1) -[2618321.518] {Default Queue} wl_registry#3206.global(34, "zxdg_importer_v2", 1) -[2618321.524] {Default Queue} wl_registry#3206.global(36, "xdg_activation_v1", 1) -[2618321.528] {Default Queue} wl_registry#3206.global(37, "mutter_x11_interop", 1) -[2618321.533] {Default Queue} wl_registry#3206.global(38, "wl_seat", 9) -[2618321.538] {Default Queue} -> wl_registry#3206.bind(38, "wl_seat", 1, new id [unknown]#3224) -[2618321.542] {Default Queue} wl_registry#3206.global(39, "wp_cursor_shape_manager_v1", 2) -[2618321.547] {Default Queue} wl_registry#3206.global(40, "wl_output", 4) -[2618321.551] {Default Queue} -> wl_registry#3206.bind(40, "wl_output", 1, new id [unknown]#3225) -[2618321.556] {Default Queue} wl_callback#3207.done(0) -[2618321.560] {Default Queue} discarded wl_surface#3175.enter(wl_output#18) -[2618321.564] {Default Queue} discarded wl_surface#3175.enter(wl_output#57) -[2618321.568] {Default Queue} discarded wl_surface#3175.enter(wl_output#89) -[2618321.572] {Default Queue} discarded wl_surface#3175.enter(wl_output#121) -[2618321.576] {Default Queue} discarded wl_surface#3175.enter(wl_output#153) -[2618321.580] {Default Queue} discarded wl_surface#3175.enter(wl_output#185) -[2618321.584] {Default Queue} discarded wl_surface#3175.enter(wl_output#217) -[2618321.588] {Default Queue} discarded wl_surface#3175.enter(wl_output#249) -[2618321.591] {Default Queue} discarded wl_surface#3175.enter(wl_output#281) -[2618321.595] {Default Queue} discarded wl_surface#3175.enter(wl_output#313) -[2618321.599] {Default Queue} discarded wl_surface#3175.enter(wl_output#345) -[2618321.603] {Default Queue} discarded wl_surface#3175.enter(wl_output#377) -[2618321.607] {Default Queue} discarded wl_surface#3175.enter(wl_output#409) -[2618321.611] {Default Queue} discarded wl_surface#3175.enter(wl_output#441) -[2618321.615] {Default Queue} discarded wl_surface#3175.enter(wl_output#473) -[2618321.618] {Default Queue} discarded wl_surface#3175.enter(wl_output#505) -[2618321.622] {Default Queue} discarded wl_surface#3175.enter(wl_output#537) -[2618321.627] {Default Queue} discarded wl_surface#3175.enter(wl_output#569) -[2618321.631] {Default Queue} discarded wl_surface#3175.enter(wl_output#601) -[2618321.635] {Default Queue} discarded wl_surface#3175.enter(wl_output#633) -[2618321.638] {Default Queue} discarded wl_surface#3175.enter(wl_output#665) -[2618321.642] {Default Queue} discarded wl_surface#3175.enter(wl_output#697) -[2618321.646] {Default Queue} discarded wl_surface#3175.enter(wl_output#729) -[2618321.650] {Default Queue} discarded wl_surface#3175.enter(wl_output#761) -[2618321.654] {Default Queue} discarded wl_surface#3175.enter(wl_output#793) -[2618321.658] {Default Queue} discarded wl_surface#3175.enter(wl_output#825) -[2618321.662] {Default Queue} discarded wl_surface#3175.enter(wl_output#857) -[2618321.666] {Default Queue} discarded wl_surface#3175.enter(wl_output#889) -[2618321.670] {Default Queue} discarded wl_surface#3175.enter(wl_output#921) -[2618321.674] {Default Queue} discarded wl_surface#3175.enter(wl_output#953) -[2618321.677] {Default Queue} discarded wl_surface#3175.enter(wl_output#985) -[2618321.681] {Default Queue} discarded wl_surface#3175.enter(wl_output#1017) -[2618321.686] {Default Queue} discarded wl_surface#3175.enter(wl_output#1049) -[2618321.690] {Default Queue} discarded wl_surface#3175.enter(wl_output#1081) -[2618321.694] {Default Queue} discarded wl_surface#3175.enter(wl_output#1113) -[2618321.698] {Default Queue} discarded wl_surface#3175.enter(wl_output#1145) -[2618321.702] {Default Queue} discarded wl_surface#3175.enter(wl_output#1177) -[2618321.706] {Default Queue} discarded wl_surface#3175.enter(wl_output#1209) -[2618321.710] {Default Queue} discarded wl_surface#3175.enter(wl_output#1241) -[2618321.714] {Default Queue} discarded wl_surface#3175.enter(wl_output#1273) -[2618321.718] {Default Queue} discarded wl_surface#3175.enter(wl_output#1305) -[2618321.722] {Default Queue} discarded wl_surface#3175.enter(wl_output#1337) -[2618321.726] {Default Queue} discarded wl_surface#3175.enter(wl_output#1369) -[2618321.733] {Default Queue} discarded wl_surface#3175.enter(wl_output#1401) -[2618321.738] {Default Queue} discarded wl_surface#3175.enter(wl_output#1433) -[2618321.742] {Default Queue} discarded wl_surface#3175.enter(wl_output#1465) -[2618321.746] {Default Queue} discarded wl_surface#3175.enter(wl_output#1497) -[2618321.750] {Default Queue} discarded wl_surface#3175.enter(wl_output#1529) -[2618321.754] {Default Queue} discarded wl_surface#3175.enter(wl_output#1561) -[2618321.758] {Default Queue} discarded wl_surface#3175.enter(wl_output#1593) -[2618321.762] {Default Queue} discarded wl_surface#3175.enter(wl_output#1625) -[2618321.765] {Default Queue} discarded wl_surface#3175.enter(wl_output#1657) -[2618321.769] {Default Queue} discarded wl_surface#3175.enter(wl_output#1689) -[2618321.773] {Default Queue} discarded wl_surface#3175.enter(wl_output#1721) -[2618321.778] {Default Queue} discarded wl_surface#3175.enter(wl_output#1753) -[2618321.781] {Default Queue} discarded wl_surface#3175.enter(wl_output#1785) -[2618321.785] {Default Queue} discarded wl_surface#3175.enter(wl_output#1817) -[2618321.789] {Default Queue} discarded wl_surface#3175.enter(wl_output#1849) -[2618321.793] {Default Queue} discarded wl_surface#3175.enter(wl_output#1881) -[2618321.796] {Default Queue} discarded wl_surface#3175.enter(wl_output#1913) -[2618321.800] {Default Queue} discarded wl_surface#3175.enter(wl_output#1945) -[2618321.804] {Default Queue} discarded wl_surface#3175.enter(wl_output#1977) -[2618321.808] {Default Queue} discarded wl_surface#3175.enter(wl_output#2009) -[2618321.812] {Default Queue} discarded wl_surface#3175.enter(wl_output#2041) -[2618321.816] {Default Queue} discarded wl_surface#3175.enter(wl_output#2073) -[2618321.820] {Default Queue} discarded wl_surface#3175.enter(wl_output#2105) -[2618321.824] {Default Queue} discarded wl_surface#3175.enter(wl_output#2137) -[2618321.827] {Default Queue} discarded wl_surface#3175.enter(wl_output#2169) -[2618321.831] {Default Queue} discarded wl_surface#3175.enter(wl_output#2201) -[2618321.835] {Default Queue} discarded wl_surface#3175.enter(wl_output#2233) -[2618321.839] {Default Queue} discarded wl_surface#3175.enter(wl_output#2265) -[2618321.843] {Default Queue} discarded wl_surface#3175.enter(wl_output#2297) -[2618321.847] {Default Queue} discarded wl_surface#3175.enter(wl_output#2329) -[2618321.851] {Default Queue} discarded wl_surface#3175.enter(wl_output#2361) -[2618321.855] {Default Queue} discarded wl_surface#3175.enter(wl_output#2393) -[2618321.859] {Default Queue} discarded wl_surface#3175.enter(wl_output#2425) -[2618321.864] {Default Queue} -> wl_compositor#3148.create_surface(new id wl_surface#3207) -[2618321.868] {Default Queue} -> wl_subcompositor#3213.get_subsurface(new id wl_subsurface#3226, wl_surface#3207, wl_surface#3143) -[2618321.881] {Default Queue} -> wl_subsurface#3226.set_desync() -[2618321.886] {Default Queue} -> wl_subsurface#3226.set_position(0, 0) -[2618321.890] {Default Queue} -> wl_subsurface#3226.place_above(wl_surface#3143) -[2618321.939] {Default Queue} -> wl_shm#3215.create_pool(new id wl_shm_pool#3227, fd 509, 16) -[2618321.946] {Default Queue} -> wl_shm#3215.create_pool(new id wl_shm_pool#3228, fd 510, 16) -[2618321.950] {Default Queue} -> wl_shm_pool#3227.create_buffer(new id wl_buffer#3229, 0, 2, 2, 8, 0) -[2618321.955] {Default Queue} -> wl_shm_pool#3228.create_buffer(new id wl_buffer#3230, 0, 2, 2, 8, 0) -[2618321.963] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3229, 0, 0) -[2618321.968] {Default Queue} -> wl_surface#3207.commit() -[2618321.974] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3229, 0, 0) -[2618321.979] {Default Queue} -> wl_surface#3207.commit() -[2618321.984] {Default Queue} -> wl_compositor#3212.create_region(new id wl_region#3231) -[2618321.990] {Default Queue} -> wl_compositor#3212.create_region(new id wl_region#3232) -[2618321.996] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.002] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.008] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.016] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.023] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618322.027] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) -[2618322.034] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3229, 0, 0) -[2618322.039] {Default Queue} -> wl_surface#3207.commit() -[2618322.086] {Default Queue} -> wl_shm#3217.create_pool(new id wl_shm_pool#3233, fd 513, 640) -[2618322.092] {Default Queue} -> wl_shm#3217.create_pool(new id wl_shm_pool#3234, fd 514, 640) -[2618322.097] {Default Queue} -> wl_shm_pool#3233.create_buffer(new id wl_buffer#3235, 0, 10, 16, 40, 0) -[2618322.102] {Default Queue} -> wl_shm_pool#3234.create_buffer(new id wl_buffer#3236, 0, 10, 16, 40, 0) -[2618322.109] {Default Queue} -> wl_compositor#3212.create_surface(new id wl_surface#3237) -[2618322.113] {Default Queue} -> wl_surface#3237.attach(wl_buffer#3235, 0, 0) -[2618322.117] {Default Queue} -> wl_surface#3237.commit() -[2618322.123] {Default Queue} -> wl_surface#3237.attach(wl_buffer#3235, 0, 0) -[2618322.127] {Default Queue} -> wl_surface#3237.commit() -[2618322.133] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618322.137] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618322.145] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618322.150] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618322.155] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618322.164] {Default Queue} -> wl_region#3071.subtract(0, 0, 2, 2) -[2618322.169] {Default Queue} -> wl_subsurface#3066.set_position(3, 3) -[2618322.174] {Default Queue} -> wl_region#3071.subtract(0, 0, 5, 5) -[2618322.178] {Default Queue} -> wl_region#3071.add(0, 0, 0, 0) -[2618322.182] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) -[2618322.186] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) -[2618322.191] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618322.195] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618322.200] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618322.204] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) -[2618322.209] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) -[2618322.213] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) -[2618322.220] {Default Queue} -> wl_region#3071.subtract(0, 0, 5, 5) -[2618322.225] {Default Queue} -> wl_region#3071.add(0, 0, 0, 0) -[2618322.229] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) -[2618322.233] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) -[2618322.238] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3069, 0, 0) -[2618322.243] {Default Queue} -> wl_surface#3047.commit() -[2618322.250] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618322.254] {Default Queue} -> wl_surface#3175.commit() -[2618322.259] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.263] {Default Queue} -> wl_subsurface#3226.set_position(0, 0) -[2618322.267] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.272] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.276] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.280] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.284] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618322.293] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.297] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.302] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.306] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.311] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.315] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.320] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.324] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.328] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.336] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.342] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.347] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.352] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.356] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.360] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.365] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.371] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.376] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.381] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.385] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.394] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.400] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.404] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.409] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.413] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.418] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.423] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.427] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.432] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.436] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.440] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.444] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.449] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.453] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.457] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.461] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.466] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.470] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.475] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.479] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.489] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.493] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.498] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.502] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.506] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.511] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.515] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.519] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.524] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.528] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.532] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.536] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.541] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.545] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.549] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.554] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.558] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3229, 0, 0) -[2618322.562] {Default Queue} -> wl_surface#3207.commit() -[2618322.569] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618322.573] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618322.578] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618322.584] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618322.588] {Default Queue} -> wl_surface#3175.commit() -[2618322.593] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.600] {Default Queue} -> wl_subsurface#3226.set_position(0, 0) -[2618322.606] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.610] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.615] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.620] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.624] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618322.631] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.636] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.640] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.644] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.649] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.653] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.657] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.662] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.666] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.670] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.675] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.679] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.683] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.687] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.691] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.696] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.702] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.706] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.711] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.715] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.724] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.729] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.733] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.737] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.742] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.746] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.750] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.754] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.759] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.763] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.768] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.771] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.776] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.780] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.785] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.789] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.794] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.798] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.802] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.807] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.819] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.824] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.828] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.832] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.845] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.850] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.854] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.858] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.926] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.934] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.939] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.943] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.952] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618322.956] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618322.966] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.971] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.975] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.979] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618322.984] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618322.989] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618322.993] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618322.997] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.002] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.006] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.010] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.014] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.019] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.025] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.032] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.038] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.044] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3229, 0, 0) -[2618323.050] {Default Queue} -> wl_surface#3207.commit() -[2618323.059] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618323.068] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618323.073] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618323.079] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618323.083] {Default Queue} -> wl_surface#3175.commit() -[2618323.087] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.092] {Default Queue} -> wl_subsurface#3226.set_position(0, 0) -[2618323.096] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.100] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.105] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.109] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.113] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618323.121] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.125] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.129] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.133] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.138] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.143] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.147] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.151] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.155] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.159] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.164] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.168] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.172] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.177] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.181] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.185] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.191] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.195] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.200] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.204] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.217] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.224] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.229] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.232] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.237] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.242] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.246] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.250] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.255] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.259] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.263] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.268] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.272] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.276] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.280] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.285] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.290] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.295] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.299] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.303] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.315] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.320] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.324] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.329] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.334] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.339] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.343] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.347] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.355] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.359] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.363] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.367] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.374] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.378] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.383] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.387] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.392] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.396] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.400] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.404] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.409] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.413] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.417] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.421] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.426] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.430] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.435] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.439] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.444] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.448] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.452] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.456] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.463] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.467] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.474] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.480] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.485] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.489] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.493] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.497] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.502] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.506] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.511] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.515] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.519] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.524] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.528] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.532] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.565] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.571] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.575] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.579] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.585] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618323.589] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618323.601] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.606] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.611] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.615] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.621] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.625] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.629] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.633] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.668] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.674] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.678] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.682] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.688] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618323.692] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618323.700] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.705] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.709] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.714] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.718] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.723] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.727] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.731] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.735] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.740] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.744] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.748] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.753] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618323.757] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618323.762] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618323.766] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618323.771] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3229, 0, 0) -[2618323.775] {Default Queue} -> wl_surface#3207.commit() -[2618323.781] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618323.786] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618323.791] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618323.801] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3238) -[2618323.808] {Default Queue} -> wl_display#1.sync(new id wl_callback#3239) -[2618325.459] {Default Queue} discarded wl_surface#3175.enter(wl_output#2457) -[2618325.470] {Default Queue} discarded wl_surface#3175.enter(wl_output#2489) -[2618325.475] {Default Queue} discarded wl_surface#3175.enter(wl_output#2521) -[2618325.480] {Default Queue} discarded wl_surface#3175.enter(wl_output#2553) -[2618325.483] {Default Queue} discarded wl_surface#3175.enter(wl_output#2585) -[2618325.487] {Default Queue} discarded wl_surface#3175.enter(wl_output#2617) -[2618325.491] {Default Queue} discarded wl_surface#3175.enter(wl_output#2649) -[2618325.495] {Default Queue} discarded wl_surface#3175.enter(wl_output#2681) -[2618325.499] {Default Queue} discarded wl_surface#3175.enter(wl_output#2713) -[2618325.503] {Default Queue} discarded wl_surface#3175.enter(wl_output#2745) -[2618325.507] {Default Queue} discarded wl_surface#3175.enter(wl_output#2777) -[2618325.511] {Default Queue} discarded wl_surface#3175.enter(wl_output#2809) -[2618325.515] {Default Queue} discarded wl_surface#3175.enter(wl_output#2841) -[2618325.519] {Default Queue} discarded wl_surface#3175.enter(wl_output#2873) -[2618325.523] {Default Queue} discarded wl_surface#3175.enter(wl_output#2905) -[2618325.527] {Default Queue} discarded wl_surface#3175.enter(wl_output#2937) -[2618325.531] {Default Queue} discarded wl_surface#3175.enter(wl_output#2969) -[2618325.535] {Default Queue} discarded wl_surface#3175.enter(wl_output#3001) -[2618325.538] {Default Queue} discarded wl_surface#3175.enter(wl_output#3033) -[2618325.542] {Default Queue} discarded wl_surface#3175.enter(wl_output#3065) -[2618325.546] {Default Queue} discarded wl_surface#3175.enter(wl_output#3097) -[2618325.550] {Default Queue} discarded wl_surface#3175.enter(wl_output#3129) -[2618325.554] {Default Queue} discarded wl_surface#3175.enter(wl_output#3161) -[2618325.558] {Default Queue} discarded wl_surface#3175.enter(wl_output#3193) -[2618330.480] {Default Queue} wl_keyboard#3208.keymap(1, fd 509, 68213) -[2618330.492] {Default Queue} wl_keyboard#3208.enter(566, wl_surface#19, array[0]) -[2618330.498] {Default Queue} wl_keyboard#3208.modifiers(566, 0, 0, 16, 0) -[2618330.503] {Default Queue} discarded wl_shm#3215.format(875709016) -[2618330.507] {Default Queue} discarded wl_shm#3215.format(1) -[2618330.512] {Default Queue} discarded wl_shm#3215.format(0) -[2618330.516] {Default Queue} discarded wl_shm#3215.format(875708993) -[2618330.520] {Default Queue} discarded wl_shm#3216.format(875709016) -[2618330.525] {Default Queue} discarded wl_shm#3216.format(1) -[2618330.529] {Default Queue} discarded wl_shm#3216.format(0) -[2618330.533] {Default Queue} discarded wl_shm#3216.format(875708993) -[2618330.536] {Default Queue} discarded wl_shm#3217.format(875709016) -[2618330.540] {Default Queue} discarded wl_shm#3217.format(1) -[2618330.544] {Default Queue} discarded wl_shm#3217.format(0) -[2618330.548] {Default Queue} discarded wl_shm#3217.format(875708993) -[2618330.552] {Default Queue} wl_seat#3224.capabilities(7) -[2618330.557] {Default Queue} -> wl_seat#3224.get_keyboard(new id wl_keyboard#3240) -[2618330.561] {Default Queue} -> wl_seat#3224.get_pointer(new id wl_pointer#3241) -[2618330.566] {Default Queue} -> wl_data_device_manager#3220.get_data_device(new id wl_data_device#3242, wl_seat#3224) -[2618330.571] {Default Queue} -> zwp_primary_selection_device_manager_v1#3222.get_device(new id zwp_primary_selection_device_v1#3243, wl_seat#3224) -[2618330.579] {Default Queue} wl_output#3225.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618330.584] {Default Queue} wl_output#3225.mode(3, 1280, 800, 60000) -[2618330.589] {Default Queue} discarded wl_surface#2727.enter(wl_output#3225) -[2618330.593] {Default Queue} discarded wl_surface#3.enter(wl_output#3225) -[2618330.597] {Default Queue} discarded wl_surface#999.enter(wl_output#3225) -[2618330.601] {Default Queue} discarded wl_surface#3079.enter(wl_output#3225) -[2618330.605] {Default Queue} discarded wl_surface#1191.enter(wl_output#3225) -[2618330.613] {Default Queue} discarded wl_surface#1159.enter(wl_output#3225) -[2618330.620] {Default Queue} discarded wl_surface#1703.enter(wl_output#3225) -[2618330.624] {Default Queue} discarded wl_surface#2215.enter(wl_output#3225) -[2618330.628] {Default Queue} discarded wl_surface#423.enter(wl_output#3225) -[2618330.632] {Default Queue} discarded wl_surface#1447.enter(wl_output#3225) -[2618330.636] {Default Queue} discarded wl_surface#3047.enter(wl_output#3225) -[2618330.640] {Default Queue} discarded wl_surface#2023.enter(wl_output#3225) -[2618330.643] {Default Queue} discarded wl_surface#1639.enter(wl_output#3225) -[2618330.647] {Default Queue} discarded wl_surface#1319.enter(wl_output#3225) -[2618330.651] {Default Queue} discarded wl_surface#1127.enter(wl_output#3225) -[2618330.655] {Default Queue} discarded wl_surface#2151.enter(wl_output#3225) -[2618330.659] {Default Queue} discarded wl_surface#2375.enter(wl_output#3225) -[2618330.663] {Default Queue} discarded wl_surface#2695.enter(wl_output#3225) -[2618330.667] {Default Queue} discarded wl_surface#2919.enter(wl_output#3225) -[2618330.671] {Default Queue} discarded wl_surface#1063.enter(wl_output#3225) -[2618330.675] {Default Queue} discarded wl_surface#455.enter(wl_output#3225) -[2618330.679] {Default Queue} discarded wl_surface#1575.enter(wl_output#3225) -[2618330.683] {Default Queue} discarded wl_surface#1799.enter(wl_output#3225) -[2618330.687] {Default Queue} discarded wl_surface#1415.enter(wl_output#3225) -[2618330.690] {Default Queue} discarded wl_surface#2439.enter(wl_output#3225) -[2618330.694] {Default Queue} discarded wl_surface#2279.enter(wl_output#3225) -[2618330.698] {Default Queue} discarded wl_surface#1831.enter(wl_output#3225) -[2618330.702] {Default Queue} discarded wl_surface#903.enter(wl_output#3225) -[2618330.706] {Default Queue} discarded wl_surface#2663.enter(wl_output#3225) -[2618330.710] {Default Queue} discarded wl_surface#775.enter(wl_output#3225) -[2618330.714] {Default Queue} discarded wl_surface#1991.enter(wl_output#3225) -[2618330.717] {Default Queue} discarded wl_surface#1543.enter(wl_output#3225) -[2618330.721] {Default Queue} discarded wl_surface#135.enter(wl_output#3225) -[2618330.725] {Default Queue} discarded wl_surface#1287.enter(wl_output#3225) -[2618330.729] {Default Queue} discarded wl_surface#1031.enter(wl_output#3225) -[2618330.733] {Default Queue} discarded wl_surface#615.enter(wl_output#3225) -[2618330.737] {Default Queue} discarded wl_surface#3111.enter(wl_output#3225) -[2618330.741] {Default Queue} discarded wl_surface#231.enter(wl_output#3225) -[2618330.744] {Default Queue} discarded wl_surface#2343.enter(wl_output#3225) -[2618330.748] {Default Queue} discarded wl_surface#1863.enter(wl_output#3225) -[2618330.752] {Default Queue} discarded wl_surface#359.enter(wl_output#3225) -[2618330.756] {Default Queue} discarded wl_surface#2983.enter(wl_output#3225) -[2618330.760] {Default Queue} discarded wl_surface#583.enter(wl_output#3225) -[2618330.764] {Default Queue} discarded wl_surface#743.enter(wl_output#3225) -[2618330.768] {Default Queue} discarded wl_surface#3143.enter(wl_output#3225) -[2618330.772] {Default Queue} discarded wl_surface#2535.enter(wl_output#3225) -[2618330.776] {Default Queue} discarded wl_surface#967.enter(wl_output#3225) -[2618330.780] {Default Queue} discarded wl_surface#103.enter(wl_output#3225) -[2618330.784] {Default Queue} discarded wl_surface#327.enter(wl_output#3225) -[2618330.788] {Default Queue} discarded wl_surface#43.enter(wl_output#3225) -[2618330.791] {Default Queue} discarded wl_surface#2247.enter(wl_output#3225) -[2618330.795] {Default Queue} discarded wl_surface#807.enter(wl_output#3225) -[2618330.799] {Default Queue} discarded wl_surface#19.enter(wl_output#3225) -[2618330.803] {Default Queue} discarded wl_surface#2951.enter(wl_output#3225) -[2618330.807] {Default Queue} discarded wl_surface#1511.enter(wl_output#3225) -[2618330.811] {Default Queue} discarded wl_surface#199.enter(wl_output#3225) -[2618330.814] {Default Queue} discarded wl_surface#391.enter(wl_output#3225) -[2618330.821] {Default Queue} discarded wl_surface#935.enter(wl_output#3225) -[2618330.827] {Default Queue} discarded wl_surface#2823.enter(wl_output#3225) -[2618330.831] {Default Queue} discarded wl_surface#3015.enter(wl_output#3225) -[2618330.835] {Default Queue} discarded wl_surface#1671.enter(wl_output#3225) -[2618330.838] {Default Queue} discarded wl_surface#1351.enter(wl_output#3225) -[2618330.842] {Default Queue} discarded wl_surface#711.enter(wl_output#3225) -[2618330.846] {Default Queue} discarded wl_surface#3175.enter(wl_output#3225) -[2618330.850] {Default Queue} discarded wl_surface#1223.enter(wl_output#3225) -[2618330.854] {Default Queue} discarded wl_surface#1927.enter(wl_output#3225) -[2618330.858] {Default Queue} discarded wl_surface#871.enter(wl_output#3225) -[2618330.870] {Default Queue} discarded wl_surface#1895.enter(wl_output#3225) -[2618330.874] {Default Queue} discarded wl_surface#263.enter(wl_output#3225) -[2618330.879] {Default Queue} discarded wl_surface#551.enter(wl_output#3225) -[2618330.883] {Default Queue} discarded wl_surface#1735.enter(wl_output#3225) -[2618330.887] {Default Queue} discarded wl_surface#1479.enter(wl_output#3225) -[2618330.891] {Default Queue} discarded wl_surface#1772.enter(wl_output#3225) -[2618330.895] {Default Queue} discarded wl_surface#2599.enter(wl_output#3225) -[2618330.899] {Default Queue} discarded wl_surface#2631.enter(wl_output#3225) -[2618330.903] {Default Queue} discarded wl_surface#1959.enter(wl_output#3225) -[2618330.907] {Default Queue} discarded wl_surface#647.enter(wl_output#3225) -[2618330.911] {Default Queue} discarded wl_surface#2055.enter(wl_output#3225) -[2618330.915] {Default Queue} discarded wl_surface#2508.enter(wl_output#3225) -[2618330.919] {Default Queue} discarded wl_surface#71.enter(wl_output#3225) -[2618330.923] {Default Queue} discarded wl_surface#2759.enter(wl_output#3225) -[2618330.927] {Default Queue} discarded wl_surface#2791.enter(wl_output#3225) -[2618330.930] {Default Queue} discarded wl_surface#2887.enter(wl_output#3225) -[2618330.934] {Default Queue} discarded wl_surface#2183.enter(wl_output#3225) -[2618330.938] {Default Queue} discarded wl_surface#2567.enter(wl_output#3225) -[2618330.942] {Default Queue} discarded wl_surface#839.enter(wl_output#3225) -[2618330.946] {Default Queue} discarded wl_surface#1607.enter(wl_output#3225) -[2618330.950] {Default Queue} discarded wl_surface#1095.enter(wl_output#3225) -[2618330.954] {Default Queue} discarded wl_surface#1383.enter(wl_output#3225) -[2618330.958] {Default Queue} discarded wl_surface#487.enter(wl_output#3225) -[2618330.962] {Default Queue} discarded wl_surface#2311.enter(wl_output#3225) -[2618330.966] {Default Queue} discarded wl_surface#519.enter(wl_output#3225) -[2618330.969] {Default Queue} discarded wl_surface#2087.enter(wl_output#3225) -[2618330.973] {Default Queue} discarded wl_surface#2471.enter(wl_output#3225) -[2618330.977] {Default Queue} discarded wl_surface#295.enter(wl_output#3225) -[2618330.981] {Default Queue} discarded wl_surface#167.enter(wl_output#3225) -[2618330.985] {Default Queue} discarded wl_surface#1255.enter(wl_output#3225) -[2618330.989] {Default Queue} discarded wl_surface#2855.enter(wl_output#3225) -[2618330.993] {Default Queue} discarded wl_surface#679.enter(wl_output#3225) -[2618330.997] {Default Queue} discarded wl_surface#2407.enter(wl_output#3225) -[2618331.001] {Default Queue} discarded wl_surface#2119.enter(wl_output#3225) -[2618331.005] {Default Queue} discarded wl_surface#3207.enter(wl_output#18) -[2618331.008] {Default Queue} discarded wl_surface#3207.enter(wl_output#57) -[2618331.012] {Default Queue} discarded wl_surface#3207.enter(wl_output#89) -[2618331.016] {Default Queue} discarded wl_surface#3207.enter(wl_output#121) -[2618331.020] {Default Queue} discarded wl_surface#3207.enter(wl_output#153) -[2618331.024] {Default Queue} discarded wl_surface#3207.enter(wl_output#185) -[2618331.028] {Default Queue} discarded wl_surface#3207.enter(wl_output#217) -[2618331.032] {Default Queue} discarded wl_surface#3207.enter(wl_output#249) -[2618331.036] {Default Queue} discarded wl_surface#3207.enter(wl_output#281) -[2618331.043] {Default Queue} discarded wl_surface#3207.enter(wl_output#313) -[2618331.049] {Default Queue} discarded wl_surface#3207.enter(wl_output#345) -[2618331.053] {Default Queue} discarded wl_surface#3207.enter(wl_output#377) -[2618331.057] {Default Queue} discarded wl_surface#3207.enter(wl_output#409) -[2618331.061] {Default Queue} discarded wl_surface#3207.enter(wl_output#441) -[2618331.065] {Default Queue} discarded wl_surface#3207.enter(wl_output#473) -[2618331.069] {Default Queue} discarded wl_surface#3207.enter(wl_output#505) -[2618331.073] {Default Queue} discarded wl_surface#3207.enter(wl_output#537) -[2618331.077] {Default Queue} discarded wl_surface#3207.enter(wl_output#569) -[2618331.081] {Default Queue} discarded wl_surface#3207.enter(wl_output#601) -[2618331.084] {Default Queue} discarded wl_surface#3207.enter(wl_output#633) -[2618331.088] {Default Queue} discarded wl_surface#3207.enter(wl_output#665) -[2618331.092] {Default Queue} discarded wl_surface#3207.enter(wl_output#697) -[2618331.096] {Default Queue} discarded wl_surface#3207.enter(wl_output#729) -[2618331.100] {Default Queue} discarded wl_surface#3207.enter(wl_output#761) -[2618331.104] {Default Queue} discarded wl_surface#3207.enter(wl_output#793) -[2618331.108] {Default Queue} discarded wl_surface#3207.enter(wl_output#825) -[2618331.112] {Default Queue} discarded wl_surface#3207.enter(wl_output#857) -[2618331.115] {Default Queue} discarded wl_surface#3207.enter(wl_output#889) -[2618331.119] {Default Queue} discarded wl_surface#3207.enter(wl_output#921) -[2618331.123] {Default Queue} discarded wl_surface#3207.enter(wl_output#953) -[2618331.127] {Default Queue} discarded wl_surface#3207.enter(wl_output#985) -[2618331.131] {Default Queue} discarded wl_surface#3207.enter(wl_output#1017) -[2618331.135] {Default Queue} discarded wl_surface#3207.enter(wl_output#1049) -[2618331.139] {Default Queue} discarded wl_surface#3207.enter(wl_output#1081) -[2618331.143] {Default Queue} discarded wl_surface#3207.enter(wl_output#1113) -[2618331.147] {Default Queue} discarded wl_surface#3207.enter(wl_output#1145) -[2618331.150] {Default Queue} discarded wl_surface#3207.enter(wl_output#1177) -[2618331.154] {Default Queue} discarded wl_surface#3207.enter(wl_output#1209) -[2618331.158] {Default Queue} discarded wl_surface#3207.enter(wl_output#1241) -[2618331.162] {Default Queue} discarded wl_surface#3207.enter(wl_output#1273) -[2618331.166] {Default Queue} discarded wl_surface#3207.enter(wl_output#1305) -[2618331.170] {Default Queue} discarded wl_surface#3207.enter(wl_output#1337) -[2618331.174] {Default Queue} discarded wl_surface#3207.enter(wl_output#1369) -[2618331.178] {Default Queue} discarded wl_surface#3207.enter(wl_output#1401) -[2618331.182] {Default Queue} discarded wl_surface#3207.enter(wl_output#1433) -[2618331.186] {Default Queue} discarded wl_surface#3207.enter(wl_output#1465) -[2618331.190] {Default Queue} discarded wl_surface#3207.enter(wl_output#1497) -[2618331.194] {Default Queue} discarded wl_surface#3207.enter(wl_output#1529) -[2618331.198] {Default Queue} discarded wl_surface#3207.enter(wl_output#1561) -[2618331.201] {Default Queue} discarded wl_surface#3207.enter(wl_output#1593) -[2618331.205] {Default Queue} discarded wl_surface#3207.enter(wl_output#1625) -[2618331.209] {Default Queue} discarded wl_surface#3207.enter(wl_output#1657) -[2618331.213] {Default Queue} discarded wl_surface#3207.enter(wl_output#1689) -[2618331.217] {Default Queue} discarded wl_surface#3207.enter(wl_output#1721) -[2618331.221] {Default Queue} discarded wl_surface#3207.enter(wl_output#1753) -[2618331.224] {Default Queue} discarded wl_surface#3207.enter(wl_output#1785) -[2618331.228] {Default Queue} discarded wl_surface#3207.enter(wl_output#1817) -[2618331.232] {Default Queue} discarded wl_surface#3207.enter(wl_output#1849) -[2618331.236] {Default Queue} discarded wl_surface#3207.enter(wl_output#1881) -[2618331.240] {Default Queue} discarded wl_surface#3207.enter(wl_output#1913) -[2618331.244] {Default Queue} discarded wl_surface#3207.enter(wl_output#1945) -[2618331.248] {Default Queue} discarded wl_surface#3207.enter(wl_output#1977) -[2618331.254] {Default Queue} discarded wl_surface#3207.enter(wl_output#2009) -[2618331.260] {Default Queue} discarded wl_surface#3207.enter(wl_output#2041) -[2618331.264] {Default Queue} discarded wl_surface#3207.enter(wl_output#2073) -[2618331.268] {Default Queue} discarded wl_surface#3207.enter(wl_output#2105) -[2618331.272] {Default Queue} discarded wl_surface#3207.enter(wl_output#2137) -[2618331.276] {Default Queue} discarded wl_surface#3207.enter(wl_output#2169) -[2618331.279] {Default Queue} discarded wl_surface#3207.enter(wl_output#2201) -[2618331.283] {Default Queue} discarded wl_surface#3207.enter(wl_output#2233) -[2618331.287] {Default Queue} discarded wl_surface#3207.enter(wl_output#2265) -[2618331.291] {Default Queue} discarded wl_surface#3207.enter(wl_output#2297) -[2618331.295] {Default Queue} discarded wl_surface#3207.enter(wl_output#2329) -[2618331.299] {Default Queue} discarded wl_surface#3207.enter(wl_output#2361) -[2618331.303] {Default Queue} discarded wl_surface#3207.enter(wl_output#2393) -[2618331.307] {Default Queue} discarded wl_surface#3207.enter(wl_output#2425) -[2618331.311] {Default Queue} discarded wl_surface#3207.enter(wl_output#2457) -[2618331.315] {Default Queue} discarded wl_surface#3207.enter(wl_output#2489) -[2618331.319] {Default Queue} discarded wl_surface#3207.enter(wl_output#2521) -[2618331.322] {Default Queue} discarded wl_surface#3207.enter(wl_output#2553) -[2618331.326] {Default Queue} discarded wl_surface#3207.enter(wl_output#2585) -[2618331.330] {Default Queue} discarded wl_surface#3207.enter(wl_output#2617) -[2618331.334] {Default Queue} discarded wl_surface#3207.enter(wl_output#2649) -[2618331.338] {Default Queue} discarded wl_surface#3207.enter(wl_output#2681) -[2618331.342] {Default Queue} discarded wl_surface#3207.enter(wl_output#2713) -[2618331.346] {Default Queue} discarded wl_surface#3207.enter(wl_output#2745) -[2618331.350] {Default Queue} discarded wl_surface#3207.enter(wl_output#2777) -[2618331.354] {Default Queue} discarded wl_surface#3207.enter(wl_output#2809) -[2618331.358] {Default Queue} discarded wl_surface#3207.enter(wl_output#2841) -[2618331.362] {Default Queue} discarded wl_surface#3207.enter(wl_output#2873) -[2618331.366] {Default Queue} discarded wl_surface#3207.enter(wl_output#2905) -[2618331.370] {Default Queue} discarded wl_surface#3207.enter(wl_output#2937) -[2618331.373] {Default Queue} discarded wl_surface#3207.enter(wl_output#2969) -[2618331.377] {Default Queue} discarded wl_surface#3207.enter(wl_output#3001) -[2618331.381] {Default Queue} discarded wl_surface#3207.enter(wl_output#3033) -[2618331.385] {Default Queue} discarded wl_surface#3207.enter(wl_output#3065) -[2618331.389] {Default Queue} discarded wl_surface#3207.enter(wl_output#3097) -[2618331.393] {Default Queue} discarded wl_surface#3207.enter(wl_output#3129) -[2618331.397] {Default Queue} discarded wl_surface#3207.enter(wl_output#3161) -[2618331.401] {Default Queue} discarded wl_surface#3207.enter(wl_output#3193) -[2618331.405] {Default Queue} discarded wl_surface#3207.enter(wl_output#3225) -[2618335.483] {Display Queue} wl_display#1.delete_id(3239) -[2618335.496] {Default Queue} wl_registry#3238.global(1, "wl_compositor", 6) -[2618335.502] {Default Queue} -> wl_registry#3238.bind(1, "wl_compositor", 1, new id [unknown]#3244) -[2618335.508] {Default Queue} wl_registry#3238.global(2, "wl_subcompositor", 1) -[2618335.512] {Default Queue} -> wl_registry#3238.bind(2, "wl_subcompositor", 1, new id [unknown]#3245) -[2618335.517] {Default Queue} wl_registry#3238.global(3, "xdg_wm_base", 6) -[2618335.522] {Default Queue} -> wl_registry#3238.bind(3, "xdg_wm_base", 1, new id [unknown]#3246) -[2618335.527] {Default Queue} wl_registry#3238.global(6, "zwlr_layer_shell_v1", 5) -[2618335.531] {Default Queue} wl_registry#3238.global(7, "ext_session_lock_manager_v1", 1) -[2618335.536] {Default Queue} wl_registry#3238.global(8, "wl_shm", 2) -[2618335.541] {Default Queue} -> wl_registry#3238.bind(8, "wl_shm", 1, new id [unknown]#3247) -[2618335.545] {Default Queue} -> wl_registry#3238.bind(8, "wl_shm", 1, new id [unknown]#3248) -[2618335.554] {Default Queue} -> wl_registry#3238.bind(8, "wl_shm", 1, new id [unknown]#3249) -[2618335.561] {Default Queue} wl_registry#3238.global(9, "zxdg_output_manager_v1", 3) -[2618335.566] {Default Queue} wl_registry#3238.global(10, "wp_fractional_scale_manager_v1", 1) -[2618335.571] {Default Queue} wl_registry#3238.global(11, "zwp_tablet_manager_v2", 1) -[2618335.575] {Default Queue} wl_registry#3238.global(12, "zwp_pointer_gestures_v1", 3) -[2618335.580] {Default Queue} wl_registry#3238.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618335.584] {Default Queue} -> wl_registry#3238.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3250) -[2618335.589] {Default Queue} wl_registry#3238.global(14, "zwp_pointer_constraints_v1", 1) -[2618335.593] {Default Queue} -> wl_registry#3238.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3251) -[2618335.598] {Default Queue} wl_registry#3238.global(15, "ext_idle_notifier_v1", 2) -[2618335.602] {Default Queue} wl_registry#3238.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618335.606] {Default Queue} wl_registry#3238.global(17, "wl_data_device_manager", 3) -[2618335.611] {Default Queue} -> wl_registry#3238.bind(17, "wl_data_device_manager", 2, new id [unknown]#3252) -[2618335.616] {Default Queue} -> wl_data_device_manager#3252.create_data_source(new id wl_data_source#3253) -[2618335.620] {Default Queue} -> wl_data_source#3253.offer("text/plain") -[2618335.624] {Default Queue} -> wl_data_source#3253.offer("text/plain;charset=utf-8") -[2618335.628] {Default Queue} -> wl_data_source#3253.offer("TEXT") -[2618335.633] {Default Queue} -> wl_data_source#3253.offer("STRING") -[2618335.637] {Default Queue} -> wl_data_source#3253.offer("UTF8_STRING") -[2618335.641] {Default Queue} wl_registry#3238.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618335.646] {Default Queue} -> wl_registry#3238.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3254) -[2618335.653] {Default Queue} -> zwp_primary_selection_device_manager_v1#3254.create_source(new id zwp_primary_selection_source_v1#3255) -[2618335.661] {Default Queue} -> zwp_primary_selection_source_v1#3255.offer("text/plain") -[2618335.665] {Default Queue} -> zwp_primary_selection_source_v1#3255.offer("text/plain;charset=utf-8") -[2618335.669] {Default Queue} -> zwp_primary_selection_source_v1#3255.offer("TEXT") -[2618335.673] {Default Queue} -> zwp_primary_selection_source_v1#3255.offer("STRING") -[2618335.677] {Default Queue} -> zwp_primary_selection_source_v1#3255.offer("UTF8_STRING") -[2618335.682] {Default Queue} wl_registry#3238.global(19, "zwlr_data_control_manager_v1", 2) -[2618335.686] {Default Queue} wl_registry#3238.global(20, "ext_data_control_manager_v1", 1) -[2618335.690] {Default Queue} wl_registry#3238.global(21, "wp_presentation", 2) -[2618335.695] {Default Queue} wl_registry#3238.global(22, "wp_security_context_manager_v1", 1) -[2618335.699] {Default Queue} wl_registry#3238.global(23, "zwp_text_input_manager_v3", 1) -[2618335.704] {Default Queue} wl_registry#3238.global(24, "zwp_input_method_manager_v2", 1) -[2618335.708] {Default Queue} wl_registry#3238.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618335.712] {Default Queue} wl_registry#3238.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618335.717] {Default Queue} wl_registry#3238.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618335.721] {Default Queue} wl_registry#3238.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618335.725] {Default Queue} wl_registry#3238.global(29, "ext_workspace_manager_v1", 1) -[2618335.730] {Default Queue} wl_registry#3238.global(30, "zwlr_output_manager_v1", 4) -[2618335.734] {Default Queue} wl_registry#3238.global(31, "zwlr_screencopy_manager_v1", 3) -[2618335.739] {Default Queue} wl_registry#3238.global(32, "wp_viewporter", 1) -[2618335.743] {Default Queue} wl_registry#3238.global(33, "zxdg_exporter_v2", 1) -[2618335.747] {Default Queue} wl_registry#3238.global(34, "zxdg_importer_v2", 1) -[2618335.751] {Default Queue} wl_registry#3238.global(36, "xdg_activation_v1", 1) -[2618335.759] {Default Queue} wl_registry#3238.global(37, "mutter_x11_interop", 1) -[2618335.765] {Default Queue} wl_registry#3238.global(38, "wl_seat", 9) -[2618335.770] {Default Queue} -> wl_registry#3238.bind(38, "wl_seat", 1, new id [unknown]#3256) -[2618335.775] {Default Queue} wl_registry#3238.global(39, "wp_cursor_shape_manager_v1", 2) -[2618335.779] {Default Queue} wl_registry#3238.global(40, "wl_output", 4) -[2618335.783] {Default Queue} -> wl_registry#3238.bind(40, "wl_output", 1, new id [unknown]#3257) -[2618335.788] {Default Queue} wl_callback#3239.done(0) -[2618335.792] {Default Queue} -> wl_compositor#2988.create_surface(new id wl_surface#3239) -[2618335.797] {Default Queue} -> wl_subcompositor#3245.get_subsurface(new id wl_subsurface#3258, wl_surface#3239, wl_surface#2983) -[2618335.805] {Default Queue} -> wl_subsurface#3258.set_desync() -[2618335.810] {Default Queue} -> wl_subsurface#3258.set_position(0, 0) -[2618335.814] {Default Queue} -> wl_subsurface#3258.place_above(wl_surface#2983) -[2618335.859] {Default Queue} -> wl_shm#3247.create_pool(new id wl_shm_pool#3259, fd 514, 16) -[2618335.867] {Default Queue} -> wl_shm#3247.create_pool(new id wl_shm_pool#3260, fd 515, 16) -[2618335.940] {Default Queue} -> wl_shm_pool#3259.create_buffer(new id wl_buffer#3261, 0, 2, 2, 8, 0) -[2618335.961] {Default Queue} -> wl_shm_pool#3260.create_buffer(new id wl_buffer#3262, 0, 2, 2, 8, 0) -[2618335.977] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) -[2618335.984] {Default Queue} -> wl_surface#3239.commit() -[2618335.992] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) -[2618335.997] {Default Queue} -> wl_surface#3239.commit() -[2618336.002] {Default Queue} -> wl_compositor#3244.create_region(new id wl_region#3263) -[2618336.006] {Default Queue} -> wl_compositor#3244.create_region(new id wl_region#3264) -[2618336.011] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) -[2618336.015] {Default Queue} -> wl_region#3263.add(0, 0, 0, 0) -[2618336.020] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618336.024] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618336.029] {Default Queue} -> wl_surface#3239.damage(0, 0, 2, 2) -[2618336.033] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) -[2618336.046] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) -[2618336.051] {Default Queue} -> wl_surface#3239.commit() -[2618336.113] {Default Queue} -> wl_shm#3249.create_pool(new id wl_shm_pool#3265, fd 518, 640) -[2618336.120] {Default Queue} -> wl_shm#3249.create_pool(new id wl_shm_pool#3266, fd 519, 640) -[2618336.124] {Default Queue} -> wl_shm_pool#3265.create_buffer(new id wl_buffer#3267, 0, 10, 16, 40, 0) -[2618336.129] {Default Queue} -> wl_shm_pool#3266.create_buffer(new id wl_buffer#3268, 0, 10, 16, 40, 0) -[2618336.137] {Default Queue} -> wl_compositor#3244.create_surface(new id wl_surface#3269) -[2618336.141] {Default Queue} -> wl_surface#3269.attach(wl_buffer#3267, 0, 0) -[2618336.146] {Default Queue} -> wl_surface#3269.commit() -[2618336.151] {Default Queue} -> wl_surface#3269.attach(wl_buffer#3267, 0, 0) -[2618336.155] {Default Queue} -> wl_surface#3269.commit() -[2618336.161] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) -[2618336.166] {Default Queue} -> wl_surface#3239.damage(0, 0, 2, 2) -[2618336.170] {Default Queue} -> wl_surface#3239.damage(0, 0, 2, 2) -[2618336.182] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3270) -[2618336.188] {Default Queue} -> wl_display#1.sync(new id wl_callback#3271) -[2618336.212] {Default Queue} wl_keyboard#3240.keymap(1, fd 514, 68213) -[2618336.219] {Default Queue} wl_keyboard#3240.enter(566, wl_surface#19, array[0]) -[2618336.225] {Default Queue} wl_keyboard#3240.modifiers(566, 0, 0, 16, 0) -[2618336.462] {Display Queue} wl_display#1.delete_id(3271) -[2618336.479] {Default Queue} discarded wl_shm#3247.format(875709016) -[2618336.486] {Default Queue} discarded wl_shm#3247.format(1) -[2618336.492] {Default Queue} discarded wl_shm#3247.format(0) -[2618336.498] {Default Queue} discarded wl_shm#3247.format(875708993) -[2618336.519] {Default Queue} discarded wl_shm#3248.format(875709016) -[2618336.529] {Default Queue} discarded wl_shm#3248.format(1) -[2618336.534] {Default Queue} discarded wl_shm#3248.format(0) -[2618336.540] {Default Queue} discarded wl_shm#3248.format(875708993) -[2618336.546] {Default Queue} discarded wl_shm#3249.format(875709016) -[2618336.552] {Default Queue} discarded wl_shm#3249.format(1) -[2618336.557] {Default Queue} discarded wl_shm#3249.format(0) -[2618336.563] {Default Queue} discarded wl_shm#3249.format(875708993) -[2618336.569] {Default Queue} wl_seat#3256.capabilities(7) -[2618336.578] {Default Queue} -> wl_seat#3256.get_keyboard(new id wl_keyboard#3272) -[2618336.585] {Default Queue} -> wl_seat#3256.get_pointer(new id wl_pointer#3273) -[2618336.591] {Default Queue} -> wl_data_device_manager#3252.get_data_device(new id wl_data_device#3274, wl_seat#3256) -[2618336.598] {Default Queue} -> zwp_primary_selection_device_manager_v1#3254.get_device(new id zwp_primary_selection_device_v1#3275, wl_seat#3256) -[2618336.609] {Default Queue} wl_output#3257.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618336.616] {Default Queue} wl_output#3257.mode(3, 1280, 800, 60000) -[2618336.623] {Default Queue} discarded wl_surface#2727.enter(wl_output#3257) -[2618336.628] {Default Queue} discarded wl_surface#3.enter(wl_output#3257) -[2618336.633] {Default Queue} discarded wl_surface#999.enter(wl_output#3257) -[2618336.639] {Default Queue} discarded wl_surface#3079.enter(wl_output#3257) -[2618336.644] {Default Queue} discarded wl_surface#1191.enter(wl_output#3257) -[2618336.649] {Default Queue} discarded wl_surface#1159.enter(wl_output#3257) -[2618336.655] {Default Queue} discarded wl_surface#1703.enter(wl_output#3257) -[2618336.660] {Default Queue} discarded wl_surface#2215.enter(wl_output#3257) -[2618336.665] {Default Queue} discarded wl_surface#423.enter(wl_output#3257) -[2618336.670] {Default Queue} discarded wl_surface#1447.enter(wl_output#3257) -[2618336.676] {Default Queue} discarded wl_surface#3047.enter(wl_output#3257) -[2618336.682] {Default Queue} discarded wl_surface#2023.enter(wl_output#3257) -[2618336.688] {Default Queue} discarded wl_surface#1639.enter(wl_output#3257) -[2618336.694] {Default Queue} discarded wl_surface#1319.enter(wl_output#3257) -[2618336.700] {Default Queue} discarded wl_surface#1127.enter(wl_output#3257) -[2618336.705] {Default Queue} discarded wl_surface#2151.enter(wl_output#3257) -[2618336.711] {Default Queue} discarded wl_surface#2375.enter(wl_output#3257) -[2618336.717] {Default Queue} discarded wl_surface#2695.enter(wl_output#3257) -[2618336.723] {Default Queue} discarded wl_surface#2919.enter(wl_output#3257) -[2618336.729] {Default Queue} discarded wl_surface#1063.enter(wl_output#3257) -[2618336.735] {Default Queue} discarded wl_surface#455.enter(wl_output#3257) -[2618336.741] {Default Queue} discarded wl_surface#1575.enter(wl_output#3257) -[2618336.747] {Default Queue} discarded wl_surface#1799.enter(wl_output#3257) -[2618336.752] {Default Queue} discarded wl_surface#1415.enter(wl_output#3257) -[2618336.758] {Default Queue} discarded wl_surface#2439.enter(wl_output#3257) -[2618336.764] {Default Queue} discarded wl_surface#2279.enter(wl_output#3257) -[2618336.770] {Default Queue} discarded wl_surface#1831.enter(wl_output#3257) -[2618336.776] {Default Queue} discarded wl_surface#903.enter(wl_output#3257) -[2618336.782] {Default Queue} discarded wl_surface#2663.enter(wl_output#3257) -[2618336.788] {Default Queue} discarded wl_surface#775.enter(wl_output#3257) -[2618336.794] {Default Queue} discarded wl_surface#1991.enter(wl_output#3257) -[2618336.800] {Default Queue} discarded wl_surface#1543.enter(wl_output#3257) -[2618336.806] {Default Queue} discarded wl_surface#135.enter(wl_output#3257) -[2618336.811] {Default Queue} discarded wl_surface#1287.enter(wl_output#3257) -[2618336.817] {Default Queue} discarded wl_surface#1031.enter(wl_output#3257) -[2618336.823] {Default Queue} discarded wl_surface#615.enter(wl_output#3257) -[2618336.829] {Default Queue} discarded wl_surface#3111.enter(wl_output#3257) -[2618336.843] {Default Queue} discarded wl_surface#231.enter(wl_output#3257) -[2618336.852] {Default Queue} discarded wl_surface#2343.enter(wl_output#3257) -[2618336.858] {Default Queue} discarded wl_surface#1863.enter(wl_output#3257) -[2618336.869] {Default Queue} discarded wl_surface#359.enter(wl_output#3257) -[2618336.875] {Default Queue} discarded wl_surface#2983.enter(wl_output#3257) -[2618336.880] {Default Queue} discarded wl_surface#583.enter(wl_output#3257) -[2618336.886] {Default Queue} discarded wl_surface#743.enter(wl_output#3257) -[2618336.892] {Default Queue} discarded wl_surface#3143.enter(wl_output#3257) -[2618336.897] {Default Queue} discarded wl_surface#2535.enter(wl_output#3257) -[2618336.903] {Default Queue} discarded wl_surface#967.enter(wl_output#3257) -[2618336.908] {Default Queue} discarded wl_surface#103.enter(wl_output#3257) -[2618336.913] {Default Queue} discarded wl_surface#327.enter(wl_output#3257) -[2618336.919] {Default Queue} discarded wl_surface#43.enter(wl_output#3257) -[2618336.924] {Default Queue} discarded wl_surface#2247.enter(wl_output#3257) -[2618336.928] {Default Queue} discarded wl_surface#807.enter(wl_output#3257) -[2618336.932] {Default Queue} discarded wl_surface#19.enter(wl_output#3257) -[2618336.936] {Default Queue} discarded wl_surface#2951.enter(wl_output#3257) -[2618336.940] {Default Queue} discarded wl_surface#1511.enter(wl_output#3257) -[2618336.945] {Default Queue} discarded wl_surface#199.enter(wl_output#3257) -[2618336.949] {Default Queue} discarded wl_surface#391.enter(wl_output#3257) -[2618336.953] {Default Queue} discarded wl_surface#935.enter(wl_output#3257) -[2618336.957] {Default Queue} discarded wl_surface#2823.enter(wl_output#3257) -[2618336.961] {Default Queue} discarded wl_surface#3015.enter(wl_output#3257) -[2618336.965] {Default Queue} discarded wl_surface#1671.enter(wl_output#3257) -[2618336.970] {Default Queue} discarded wl_surface#1351.enter(wl_output#3257) -[2618336.975] {Default Queue} discarded wl_surface#711.enter(wl_output#3257) -[2618336.981] {Default Queue} discarded wl_surface#3175.enter(wl_output#3257) -[2618336.986] {Default Queue} discarded wl_surface#1223.enter(wl_output#3257) -[2618336.991] {Default Queue} discarded wl_surface#1927.enter(wl_output#3257) -[2618336.995] {Default Queue} discarded wl_surface#871.enter(wl_output#3257) -[2618337.000] {Default Queue} discarded wl_surface#1895.enter(wl_output#3257) -[2618337.006] {Default Queue} discarded wl_surface#263.enter(wl_output#3257) -[2618337.011] {Default Queue} discarded wl_surface#551.enter(wl_output#3257) -[2618337.017] {Default Queue} discarded wl_surface#1735.enter(wl_output#3257) -[2618337.022] {Default Queue} discarded wl_surface#1479.enter(wl_output#3257) -[2618337.027] {Default Queue} discarded wl_surface#1772.enter(wl_output#3257) -[2618337.031] {Default Queue} discarded wl_surface#2599.enter(wl_output#3257) -[2618337.035] {Default Queue} discarded wl_surface#2631.enter(wl_output#3257) -[2618337.039] {Default Queue} discarded wl_surface#1959.enter(wl_output#3257) -[2618337.043] {Default Queue} discarded wl_surface#647.enter(wl_output#3257) -[2618337.047] {Default Queue} discarded wl_surface#2055.enter(wl_output#3257) -[2618337.051] {Default Queue} discarded wl_surface#2508.enter(wl_output#3257) -[2618337.055] {Default Queue} discarded wl_surface#71.enter(wl_output#3257) -[2618337.059] {Default Queue} discarded wl_surface#2759.enter(wl_output#3257) -[2618337.064] {Default Queue} discarded wl_surface#2791.enter(wl_output#3257) -[2618337.068] {Default Queue} discarded wl_surface#2887.enter(wl_output#3257) -[2618337.072] {Default Queue} discarded wl_surface#2183.enter(wl_output#3257) -[2618337.076] {Default Queue} discarded wl_surface#2567.enter(wl_output#3257) -[2618337.080] {Default Queue} discarded wl_surface#839.enter(wl_output#3257) -[2618337.084] {Default Queue} discarded wl_surface#1607.enter(wl_output#3257) -[2618337.089] {Default Queue} discarded wl_surface#1095.enter(wl_output#3257) -[2618337.093] {Default Queue} discarded wl_surface#1383.enter(wl_output#3257) -[2618337.097] {Default Queue} discarded wl_surface#487.enter(wl_output#3257) -[2618337.105] {Default Queue} discarded wl_surface#2311.enter(wl_output#3257) -[2618337.111] {Default Queue} discarded wl_surface#519.enter(wl_output#3257) -[2618337.116] {Default Queue} discarded wl_surface#2087.enter(wl_output#3257) -[2618337.120] {Default Queue} discarded wl_surface#2471.enter(wl_output#3257) -[2618337.123] {Default Queue} discarded wl_surface#295.enter(wl_output#3257) -[2618337.127] {Default Queue} discarded wl_surface#167.enter(wl_output#3257) -[2618337.131] {Default Queue} discarded wl_surface#1255.enter(wl_output#3257) -[2618337.135] {Default Queue} discarded wl_surface#2855.enter(wl_output#3257) -[2618337.139] {Default Queue} discarded wl_surface#679.enter(wl_output#3257) -[2618337.143] {Default Queue} discarded wl_surface#2407.enter(wl_output#3257) -[2618337.148] {Default Queue} discarded wl_surface#3207.enter(wl_output#3257) -[2618337.152] {Default Queue} discarded wl_surface#2119.enter(wl_output#3257) -[2618337.156] {Default Queue} wl_registry#3270.global(1, "wl_compositor", 6) -[2618337.163] {Default Queue} -> wl_registry#3270.bind(1, "wl_compositor", 1, new id [unknown]#3276) -[2618337.168] {Default Queue} wl_registry#3270.global(2, "wl_subcompositor", 1) -[2618337.172] {Default Queue} -> wl_registry#3270.bind(2, "wl_subcompositor", 1, new id [unknown]#3277) -[2618337.177] {Default Queue} wl_registry#3270.global(3, "xdg_wm_base", 6) -[2618337.183] {Default Queue} -> wl_registry#3270.bind(3, "xdg_wm_base", 1, new id [unknown]#3278) -[2618337.187] {Default Queue} wl_registry#3270.global(6, "zwlr_layer_shell_v1", 5) -[2618337.191] {Default Queue} wl_registry#3270.global(7, "ext_session_lock_manager_v1", 1) -[2618337.196] {Default Queue} wl_registry#3270.global(8, "wl_shm", 2) -[2618337.201] {Default Queue} -> wl_registry#3270.bind(8, "wl_shm", 1, new id [unknown]#3279) -[2618337.205] {Default Queue} -> wl_registry#3270.bind(8, "wl_shm", 1, new id [unknown]#3280) -[2618337.209] {Default Queue} -> wl_registry#3270.bind(8, "wl_shm", 1, new id [unknown]#3281) -[2618337.214] {Default Queue} wl_registry#3270.global(9, "zxdg_output_manager_v1", 3) -[2618337.219] {Default Queue} wl_registry#3270.global(10, "wp_fractional_scale_manager_v1", 1) -[2618337.223] {Default Queue} wl_registry#3270.global(11, "zwp_tablet_manager_v2", 1) -[2618337.228] {Default Queue} wl_registry#3270.global(12, "zwp_pointer_gestures_v1", 3) -[2618337.232] {Default Queue} wl_registry#3270.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618337.236] {Default Queue} -> wl_registry#3270.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3282) -[2618337.241] {Default Queue} wl_registry#3270.global(14, "zwp_pointer_constraints_v1", 1) -[2618337.245] {Default Queue} -> wl_registry#3270.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3283) -[2618337.250] {Default Queue} wl_registry#3270.global(15, "ext_idle_notifier_v1", 2) -[2618337.254] {Default Queue} wl_registry#3270.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618337.259] {Default Queue} wl_registry#3270.global(17, "wl_data_device_manager", 3) -[2618337.264] {Default Queue} -> wl_registry#3270.bind(17, "wl_data_device_manager", 2, new id [unknown]#3284) -[2618337.268] {Default Queue} -> wl_data_device_manager#3284.create_data_source(new id wl_data_source#3285) -[2618337.273] {Default Queue} -> wl_data_source#3285.offer("text/plain") -[2618337.277] {Default Queue} -> wl_data_source#3285.offer("text/plain;charset=utf-8") -[2618337.281] {Default Queue} -> wl_data_source#3285.offer("TEXT") -[2618337.285] {Default Queue} -> wl_data_source#3285.offer("STRING") -[2618337.289] {Default Queue} -> wl_data_source#3285.offer("UTF8_STRING") -[2618337.293] {Default Queue} wl_registry#3270.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618337.298] {Default Queue} -> wl_registry#3270.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3286) -[2618337.306] {Default Queue} -> zwp_primary_selection_device_manager_v1#3286.create_source(new id zwp_primary_selection_source_v1#3287) -[2618337.314] {Default Queue} -> zwp_primary_selection_source_v1#3287.offer("text/plain") -[2618337.321] {Default Queue} -> zwp_primary_selection_source_v1#3287.offer("text/plain;charset=utf-8") -[2618337.327] {Default Queue} -> zwp_primary_selection_source_v1#3287.offer("TEXT") -[2618337.331] {Default Queue} -> zwp_primary_selection_source_v1#3287.offer("STRING") -[2618337.335] {Default Queue} -> zwp_primary_selection_source_v1#3287.offer("UTF8_STRING") -[2618337.339] {Default Queue} wl_registry#3270.global(19, "zwlr_data_control_manager_v1", 2) -[2618337.344] {Default Queue} wl_registry#3270.global(20, "ext_data_control_manager_v1", 1) -[2618337.348] {Default Queue} wl_registry#3270.global(21, "wp_presentation", 2) -[2618337.352] {Default Queue} wl_registry#3270.global(22, "wp_security_context_manager_v1", 1) -[2618337.357] {Default Queue} wl_registry#3270.global(23, "zwp_text_input_manager_v3", 1) -[2618337.361] {Default Queue} wl_registry#3270.global(24, "zwp_input_method_manager_v2", 1) -[2618337.366] {Default Queue} wl_registry#3270.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618337.370] {Default Queue} wl_registry#3270.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618337.376] {Default Queue} wl_registry#3270.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618337.382] {Default Queue} wl_registry#3270.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618337.388] {Default Queue} wl_registry#3270.global(29, "ext_workspace_manager_v1", 1) -[2618337.394] {Default Queue} wl_registry#3270.global(30, "zwlr_output_manager_v1", 4) -[2618337.398] {Default Queue} wl_registry#3270.global(31, "zwlr_screencopy_manager_v1", 3) -[2618337.403] {Default Queue} wl_registry#3270.global(32, "wp_viewporter", 1) -[2618337.407] {Default Queue} wl_registry#3270.global(33, "zxdg_exporter_v2", 1) -[2618337.411] {Default Queue} wl_registry#3270.global(34, "zxdg_importer_v2", 1) -[2618337.416] {Default Queue} wl_registry#3270.global(36, "xdg_activation_v1", 1) -[2618337.420] {Default Queue} wl_registry#3270.global(37, "mutter_x11_interop", 1) -[2618337.424] {Default Queue} wl_registry#3270.global(38, "wl_seat", 9) -[2618337.429] {Default Queue} -> wl_registry#3270.bind(38, "wl_seat", 1, new id [unknown]#3288) -[2618337.434] {Default Queue} wl_registry#3270.global(39, "wp_cursor_shape_manager_v1", 2) -[2618337.438] {Default Queue} wl_registry#3270.global(40, "wl_output", 4) -[2618337.442] {Default Queue} -> wl_registry#3270.bind(40, "wl_output", 1, new id [unknown]#3289) -[2618337.447] {Default Queue} wl_callback#3271.done(0) -[2618337.452] {Default Queue} discarded wl_surface#3239.enter(wl_output#18) -[2618337.456] {Default Queue} discarded wl_surface#3239.enter(wl_output#57) -[2618337.460] {Default Queue} discarded wl_surface#3239.enter(wl_output#89) -[2618337.464] {Default Queue} discarded wl_surface#3239.enter(wl_output#121) -[2618337.468] {Default Queue} discarded wl_surface#3239.enter(wl_output#153) -[2618337.472] {Default Queue} discarded wl_surface#3239.enter(wl_output#185) -[2618337.476] {Default Queue} discarded wl_surface#3239.enter(wl_output#217) -[2618337.480] {Default Queue} discarded wl_surface#3239.enter(wl_output#249) -[2618337.484] {Default Queue} discarded wl_surface#3239.enter(wl_output#281) -[2618337.487] {Default Queue} discarded wl_surface#3239.enter(wl_output#313) -[2618337.491] {Default Queue} discarded wl_surface#3239.enter(wl_output#345) -[2618337.495] {Default Queue} discarded wl_surface#3239.enter(wl_output#377) -[2618337.499] {Default Queue} discarded wl_surface#3239.enter(wl_output#409) -[2618337.503] {Default Queue} discarded wl_surface#3239.enter(wl_output#441) -[2618337.507] {Default Queue} discarded wl_surface#3239.enter(wl_output#473) -[2618337.511] {Default Queue} discarded wl_surface#3239.enter(wl_output#505) -[2618337.515] {Default Queue} discarded wl_surface#3239.enter(wl_output#537) -[2618337.519] {Default Queue} discarded wl_surface#3239.enter(wl_output#569) -[2618337.523] {Default Queue} discarded wl_surface#3239.enter(wl_output#601) -[2618337.527] {Default Queue} discarded wl_surface#3239.enter(wl_output#633) -[2618337.531] {Default Queue} discarded wl_surface#3239.enter(wl_output#665) -[2618337.537] {Default Queue} discarded wl_surface#3239.enter(wl_output#697) -[2618337.543] {Default Queue} discarded wl_surface#3239.enter(wl_output#729) -[2618337.547] {Default Queue} discarded wl_surface#3239.enter(wl_output#761) -[2618337.550] {Default Queue} discarded wl_surface#3239.enter(wl_output#793) -[2618337.554] {Default Queue} discarded wl_surface#3239.enter(wl_output#825) -[2618337.558] {Default Queue} discarded wl_surface#3239.enter(wl_output#857) -[2618337.562] {Default Queue} discarded wl_surface#3239.enter(wl_output#889) -[2618337.566] {Default Queue} discarded wl_surface#3239.enter(wl_output#921) -[2618337.570] {Default Queue} discarded wl_surface#3239.enter(wl_output#953) -[2618337.574] {Default Queue} discarded wl_surface#3239.enter(wl_output#985) -[2618337.578] {Default Queue} discarded wl_surface#3239.enter(wl_output#1017) -[2618337.582] {Default Queue} discarded wl_surface#3239.enter(wl_output#1049) -[2618337.586] {Default Queue} discarded wl_surface#3239.enter(wl_output#1081) -[2618337.589] {Default Queue} discarded wl_surface#3239.enter(wl_output#1113) -[2618337.593] {Default Queue} discarded wl_surface#3239.enter(wl_output#1145) -[2618337.597] {Default Queue} discarded wl_surface#3239.enter(wl_output#1177) -[2618337.601] {Default Queue} discarded wl_surface#3239.enter(wl_output#1209) -[2618337.605] {Default Queue} discarded wl_surface#3239.enter(wl_output#1241) -[2618337.609] {Default Queue} discarded wl_surface#3239.enter(wl_output#1273) -[2618337.613] {Default Queue} discarded wl_surface#3239.enter(wl_output#1305) -[2618337.617] {Default Queue} discarded wl_surface#3239.enter(wl_output#1337) -[2618337.621] {Default Queue} discarded wl_surface#3239.enter(wl_output#1369) -[2618337.625] {Default Queue} discarded wl_surface#3239.enter(wl_output#1401) -[2618337.628] {Default Queue} discarded wl_surface#3239.enter(wl_output#1433) -[2618337.632] {Default Queue} discarded wl_surface#3239.enter(wl_output#1465) -[2618337.636] {Default Queue} discarded wl_surface#3239.enter(wl_output#1497) -[2618337.640] {Default Queue} discarded wl_surface#3239.enter(wl_output#1529) -[2618337.644] {Default Queue} discarded wl_surface#3239.enter(wl_output#1561) -[2618337.648] {Default Queue} discarded wl_surface#3239.enter(wl_output#1593) -[2618337.652] {Default Queue} discarded wl_surface#3239.enter(wl_output#1625) -[2618337.656] {Default Queue} discarded wl_surface#3239.enter(wl_output#1657) -[2618337.659] {Default Queue} discarded wl_surface#3239.enter(wl_output#1689) -[2618337.663] {Default Queue} discarded wl_surface#3239.enter(wl_output#1721) -[2618337.667] {Default Queue} discarded wl_surface#3239.enter(wl_output#1753) -[2618337.671] {Default Queue} discarded wl_surface#3239.enter(wl_output#1785) -[2618337.675] {Default Queue} discarded wl_surface#3239.enter(wl_output#1817) -[2618337.679] {Default Queue} discarded wl_surface#3239.enter(wl_output#1849) -[2618337.683] {Default Queue} discarded wl_surface#3239.enter(wl_output#1881) -[2618337.687] {Default Queue} discarded wl_surface#3239.enter(wl_output#1913) -[2618337.690] {Default Queue} discarded wl_surface#3239.enter(wl_output#1945) -[2618337.694] {Default Queue} discarded wl_surface#3239.enter(wl_output#1977) -[2618337.698] {Default Queue} discarded wl_surface#3239.enter(wl_output#2009) -[2618337.702] {Default Queue} discarded wl_surface#3239.enter(wl_output#2041) -[2618337.706] {Default Queue} discarded wl_surface#3239.enter(wl_output#2073) -[2618337.710] {Default Queue} discarded wl_surface#3239.enter(wl_output#2105) -[2618337.714] {Default Queue} discarded wl_surface#3239.enter(wl_output#2137) -[2618337.718] {Default Queue} discarded wl_surface#3239.enter(wl_output#2169) -[2618337.722] {Default Queue} discarded wl_surface#3239.enter(wl_output#2201) -[2618337.726] {Default Queue} discarded wl_surface#3239.enter(wl_output#2233) -[2618337.729] {Default Queue} discarded wl_surface#3239.enter(wl_output#2265) -[2618337.733] {Default Queue} discarded wl_surface#3239.enter(wl_output#2297) -[2618337.737] {Default Queue} discarded wl_surface#3239.enter(wl_output#2329) -[2618337.741] {Default Queue} discarded wl_surface#3239.enter(wl_output#2361) -[2618337.748] {Default Queue} discarded wl_surface#3239.enter(wl_output#2393) -[2618337.753] {Default Queue} discarded wl_surface#3239.enter(wl_output#2425) -[2618337.757] {Default Queue} discarded wl_surface#3239.enter(wl_output#2457) -[2618337.761] {Default Queue} discarded wl_surface#3239.enter(wl_output#2489) -[2618337.765] {Default Queue} discarded wl_surface#3239.enter(wl_output#2521) -[2618337.769] {Default Queue} -> wl_compositor#3244.create_surface(new id wl_surface#3271) -[2618337.774] {Default Queue} -> wl_subcompositor#3277.get_subsurface(new id wl_subsurface#3290, wl_surface#3271, wl_surface#3239) -[2618337.782] {Default Queue} -> wl_subsurface#3290.set_desync() -[2618337.787] {Default Queue} -> wl_subsurface#3290.set_position(0, 0) -[2618337.792] {Default Queue} -> wl_subsurface#3290.place_above(wl_surface#3239) -[2618337.836] {Default Queue} -> wl_shm#3279.create_pool(new id wl_shm_pool#3291, fd 519, 16) -[2618337.843] {Default Queue} -> wl_shm#3279.create_pool(new id wl_shm_pool#3292, fd 520, 16) -[2618337.847] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 2, 2, 8, 0) -[2618337.852] {Default Queue} -> wl_shm_pool#3292.create_buffer(new id wl_buffer#3294, 0, 2, 2, 8, 0) -[2618337.868] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3293, 0, 0) -[2618337.874] {Default Queue} -> wl_surface#3271.commit() -[2618337.880] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3293, 0, 0) -[2618337.884] {Default Queue} -> wl_surface#3271.commit() -[2618337.888] {Default Queue} -> wl_compositor#3276.create_region(new id wl_region#3295) -[2618337.893] {Default Queue} -> wl_compositor#3276.create_region(new id wl_region#3296) -[2618337.897] {Default Queue} -> wl_region#3295.subtract(0, 0, 2, 2) -[2618337.902] {Default Queue} -> wl_region#3295.add(0, 0, 0, 0) -[2618337.906] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) -[2618337.911] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) -[2618337.916] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) -[2618337.920] {Default Queue} -> wl_surface#3239.damage(0, 0, 2, 2) -[2618337.928] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3293, 0, 0) -[2618337.932] {Default Queue} -> wl_surface#3271.commit() -[2618337.969] {Default Queue} -> wl_shm#3281.create_pool(new id wl_shm_pool#3297, fd 523, 640) -[2618337.976] {Default Queue} -> wl_shm#3281.create_pool(new id wl_shm_pool#3298, fd 524, 640) -[2618337.980] {Default Queue} -> wl_shm_pool#3297.create_buffer(new id wl_buffer#3299, 0, 10, 16, 40, 0) -[2618337.985] {Default Queue} -> wl_shm_pool#3298.create_buffer(new id wl_buffer#3300, 0, 10, 16, 40, 0) -[2618337.992] {Default Queue} -> wl_compositor#3276.create_surface(new id wl_surface#3301) -[2618337.997] {Default Queue} -> wl_surface#3301.attach(wl_buffer#3299, 0, 0) -[2618338.001] {Default Queue} -> wl_surface#3301.commit() -[2618338.007] {Default Queue} -> wl_surface#3301.attach(wl_buffer#3299, 0, 0) -[2618338.011] {Default Queue} -> wl_surface#3301.commit() -[2618338.017] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) -[2618338.024] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3302) -[2618338.029] {Default Queue} -> wl_display#1.sync(new id wl_callback#3303) -[2618340.503] {Default Queue} discarded wl_surface#3239.enter(wl_output#2553) -[2618340.516] {Default Queue} discarded wl_surface#3239.enter(wl_output#2585) -[2618340.523] {Default Queue} discarded wl_surface#3239.enter(wl_output#2617) -[2618340.530] {Default Queue} discarded wl_surface#3239.enter(wl_output#2649) -[2618340.536] {Default Queue} discarded wl_surface#3239.enter(wl_output#2681) -[2618340.543] {Default Queue} discarded wl_surface#3239.enter(wl_output#2713) -[2618340.549] {Default Queue} discarded wl_surface#3239.enter(wl_output#2745) -[2618340.556] {Default Queue} discarded wl_surface#3239.enter(wl_output#2777) -[2618340.562] {Default Queue} discarded wl_surface#3239.enter(wl_output#2809) -[2618340.569] {Default Queue} discarded wl_surface#3239.enter(wl_output#2841) -[2618340.585] {Default Queue} discarded wl_surface#3239.enter(wl_output#2873) -[2618340.596] {Default Queue} discarded wl_surface#3239.enter(wl_output#2905) -[2618340.603] {Default Queue} discarded wl_surface#3239.enter(wl_output#2937) -[2618340.610] {Default Queue} discarded wl_surface#3239.enter(wl_output#2969) -[2618340.617] {Default Queue} discarded wl_surface#3239.enter(wl_output#3001) -[2618340.623] {Default Queue} discarded wl_surface#3239.enter(wl_output#3033) -[2618340.630] {Default Queue} discarded wl_surface#3239.enter(wl_output#3065) -[2618340.636] {Default Queue} discarded wl_surface#3239.enter(wl_output#3097) -[2618340.642] {Default Queue} discarded wl_surface#3239.enter(wl_output#3129) -[2618340.649] {Default Queue} discarded wl_surface#3239.enter(wl_output#3161) -[2618340.655] {Default Queue} discarded wl_surface#3239.enter(wl_output#3193) -[2618340.662] {Default Queue} discarded wl_surface#3239.enter(wl_output#3225) -[2618340.669] {Default Queue} discarded wl_surface#3239.enter(wl_output#3257) -[2618340.884] {Display Queue} wl_display#1.delete_id(3303) -[2618340.901] {Default Queue} wl_keyboard#3272.keymap(1, fd 519, 68213) -[2618340.910] {Default Queue} wl_keyboard#3272.enter(566, wl_surface#19, array[0]) -[2618340.919] {Default Queue} wl_keyboard#3272.modifiers(566, 0, 0, 16, 0) -[2618340.926] {Default Queue} discarded wl_shm#3279.format(875709016) -[2618340.933] {Default Queue} discarded wl_shm#3279.format(1) -[2618340.940] {Default Queue} discarded wl_shm#3279.format(0) -[2618340.946] {Default Queue} discarded wl_shm#3279.format(875708993) -[2618340.953] {Default Queue} discarded wl_shm#3280.format(875709016) -[2618340.959] {Default Queue} discarded wl_shm#3280.format(1) -[2618340.966] {Default Queue} discarded wl_shm#3280.format(0) -[2618340.973] {Default Queue} discarded wl_shm#3280.format(875708993) -[2618340.980] {Default Queue} discarded wl_shm#3281.format(875709016) -[2618340.987] {Default Queue} discarded wl_shm#3281.format(1) -[2618340.994] {Default Queue} discarded wl_shm#3281.format(0) -[2618341.001] {Default Queue} discarded wl_shm#3281.format(875708993) -[2618341.007] {Default Queue} wl_seat#3288.capabilities(7) -[2618341.015] {Default Queue} -> wl_seat#3288.get_keyboard(new id wl_keyboard#3304) -[2618341.024] {Default Queue} -> wl_seat#3288.get_pointer(new id wl_pointer#3305) -[2618341.033] {Default Queue} -> wl_data_device_manager#3284.get_data_device(new id wl_data_device#3306, wl_seat#3288) -[2618341.042] {Default Queue} -> zwp_primary_selection_device_manager_v1#3286.get_device(new id zwp_primary_selection_device_v1#3307, wl_seat#3288) -[2618341.056] {Default Queue} wl_output#3289.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618341.066] {Default Queue} wl_output#3289.mode(3, 1280, 800, 60000) -[2618341.075] {Default Queue} discarded wl_surface#2727.enter(wl_output#3289) -[2618341.082] {Default Queue} discarded wl_surface#3.enter(wl_output#3289) -[2618341.089] {Default Queue} discarded wl_surface#999.enter(wl_output#3289) -[2618341.096] {Default Queue} discarded wl_surface#3079.enter(wl_output#3289) -[2618341.102] {Default Queue} discarded wl_surface#1191.enter(wl_output#3289) -[2618341.109] {Default Queue} discarded wl_surface#1159.enter(wl_output#3289) -[2618341.115] {Default Queue} discarded wl_surface#1703.enter(wl_output#3289) -[2618341.122] {Default Queue} discarded wl_surface#2215.enter(wl_output#3289) -[2618341.128] {Default Queue} discarded wl_surface#423.enter(wl_output#3289) -[2618341.135] {Default Queue} discarded wl_surface#1447.enter(wl_output#3289) -[2618341.141] {Default Queue} discarded wl_surface#3047.enter(wl_output#3289) -[2618341.148] {Default Queue} discarded wl_surface#2023.enter(wl_output#3289) -[2618341.154] {Default Queue} discarded wl_surface#1639.enter(wl_output#3289) -[2618341.161] {Default Queue} discarded wl_surface#1319.enter(wl_output#3289) -[2618341.167] {Default Queue} discarded wl_surface#1127.enter(wl_output#3289) -[2618341.174] {Default Queue} discarded wl_surface#2151.enter(wl_output#3289) -[2618341.180] {Default Queue} discarded wl_surface#2375.enter(wl_output#3289) -[2618341.187] {Default Queue} discarded wl_surface#2695.enter(wl_output#3289) -[2618341.201] {Default Queue} discarded wl_surface#2919.enter(wl_output#3289) -[2618341.212] {Default Queue} discarded wl_surface#1063.enter(wl_output#3289) -[2618341.220] {Default Queue} discarded wl_surface#455.enter(wl_output#3289) -[2618341.227] {Default Queue} discarded wl_surface#1575.enter(wl_output#3289) -[2618341.234] {Default Queue} discarded wl_surface#1799.enter(wl_output#3289) -[2618341.241] {Default Queue} discarded wl_surface#1415.enter(wl_output#3289) -[2618341.249] {Default Queue} discarded wl_surface#2439.enter(wl_output#3289) -[2618341.256] {Default Queue} discarded wl_surface#2279.enter(wl_output#3289) -[2618341.263] {Default Queue} discarded wl_surface#1831.enter(wl_output#3289) -[2618341.271] {Default Queue} discarded wl_surface#903.enter(wl_output#3289) -[2618341.278] {Default Queue} discarded wl_surface#2663.enter(wl_output#3289) -[2618341.285] {Default Queue} discarded wl_surface#775.enter(wl_output#3289) -[2618341.293] {Default Queue} discarded wl_surface#1991.enter(wl_output#3289) -[2618341.300] {Default Queue} discarded wl_surface#1543.enter(wl_output#3289) -[2618341.307] {Default Queue} discarded wl_surface#135.enter(wl_output#3289) -[2618341.314] {Default Queue} discarded wl_surface#1287.enter(wl_output#3289) -[2618341.322] {Default Queue} discarded wl_surface#1031.enter(wl_output#3289) -[2618341.329] {Default Queue} discarded wl_surface#615.enter(wl_output#3289) -[2618341.336] {Default Queue} discarded wl_surface#3111.enter(wl_output#3289) -[2618341.343] {Default Queue} discarded wl_surface#231.enter(wl_output#3289) -[2618341.351] {Default Queue} discarded wl_surface#2343.enter(wl_output#3289) -[2618341.357] {Default Queue} discarded wl_surface#1863.enter(wl_output#3289) -[2618341.362] {Default Queue} discarded wl_surface#359.enter(wl_output#3289) -[2618341.368] {Default Queue} discarded wl_surface#2983.enter(wl_output#3289) -[2618341.374] {Default Queue} discarded wl_surface#583.enter(wl_output#3289) -[2618341.379] {Default Queue} discarded wl_surface#743.enter(wl_output#3289) -[2618341.385] {Default Queue} discarded wl_surface#3143.enter(wl_output#3289) -[2618341.391] {Default Queue} discarded wl_surface#2535.enter(wl_output#3289) -[2618341.397] {Default Queue} discarded wl_surface#967.enter(wl_output#3289) -[2618341.403] {Default Queue} discarded wl_surface#103.enter(wl_output#3289) -[2618341.409] {Default Queue} discarded wl_surface#327.enter(wl_output#3289) -[2618341.414] {Default Queue} discarded wl_surface#43.enter(wl_output#3289) -[2618341.420] {Default Queue} discarded wl_surface#2247.enter(wl_output#3289) -[2618341.426] {Default Queue} discarded wl_surface#807.enter(wl_output#3289) -[2618341.432] {Default Queue} discarded wl_surface#19.enter(wl_output#3289) -[2618341.438] {Default Queue} discarded wl_surface#2951.enter(wl_output#3289) -[2618341.444] {Default Queue} discarded wl_surface#1511.enter(wl_output#3289) -[2618341.449] {Default Queue} discarded wl_surface#199.enter(wl_output#3289) -[2618341.455] {Default Queue} discarded wl_surface#391.enter(wl_output#3289) -[2618341.460] {Default Queue} discarded wl_surface#935.enter(wl_output#3289) -[2618341.466] {Default Queue} discarded wl_surface#2823.enter(wl_output#3289) -[2618341.471] {Default Queue} discarded wl_surface#3015.enter(wl_output#3289) -[2618341.474] {Default Queue} discarded wl_surface#1671.enter(wl_output#3289) -[2618341.478] {Default Queue} discarded wl_surface#1351.enter(wl_output#3289) -[2618341.483] {Default Queue} discarded wl_surface#711.enter(wl_output#3289) -[2618341.487] {Default Queue} discarded wl_surface#3175.enter(wl_output#3289) -[2618341.490] {Default Queue} discarded wl_surface#1223.enter(wl_output#3289) -[2618341.494] {Default Queue} discarded wl_surface#1927.enter(wl_output#3289) -[2618341.498] {Default Queue} discarded wl_surface#871.enter(wl_output#3289) -[2618341.503] {Default Queue} discarded wl_surface#1895.enter(wl_output#3289) -[2618341.508] {Default Queue} discarded wl_surface#263.enter(wl_output#3289) -[2618341.514] {Default Queue} discarded wl_surface#551.enter(wl_output#3289) -[2618341.519] {Default Queue} discarded wl_surface#1735.enter(wl_output#3289) -[2618341.528] {Default Queue} discarded wl_surface#1479.enter(wl_output#3289) -[2618341.536] {Default Queue} discarded wl_surface#1772.enter(wl_output#3289) -[2618341.542] {Default Queue} discarded wl_surface#2599.enter(wl_output#3289) -[2618341.547] {Default Queue} discarded wl_surface#2631.enter(wl_output#3289) -[2618341.553] {Default Queue} discarded wl_surface#1959.enter(wl_output#3289) -[2618341.558] {Default Queue} discarded wl_surface#647.enter(wl_output#3289) -[2618341.562] {Default Queue} discarded wl_surface#2055.enter(wl_output#3289) -[2618341.566] {Default Queue} discarded wl_surface#2508.enter(wl_output#3289) -[2618341.570] {Default Queue} discarded wl_surface#71.enter(wl_output#3289) -[2618341.574] {Default Queue} discarded wl_surface#2759.enter(wl_output#3289) -[2618341.578] {Default Queue} discarded wl_surface#2791.enter(wl_output#3289) -[2618341.582] {Default Queue} discarded wl_surface#2887.enter(wl_output#3289) -[2618341.586] {Default Queue} discarded wl_surface#2183.enter(wl_output#3289) -[2618341.590] {Default Queue} discarded wl_surface#2567.enter(wl_output#3289) -[2618341.594] {Default Queue} discarded wl_surface#839.enter(wl_output#3289) -[2618341.598] {Default Queue} discarded wl_surface#1607.enter(wl_output#3289) -[2618341.602] {Default Queue} discarded wl_surface#1095.enter(wl_output#3289) -[2618341.606] {Default Queue} discarded wl_surface#1383.enter(wl_output#3289) -[2618341.610] {Default Queue} discarded wl_surface#487.enter(wl_output#3289) -[2618341.614] {Default Queue} discarded wl_surface#2311.enter(wl_output#3289) -[2618341.618] {Default Queue} discarded wl_surface#519.enter(wl_output#3289) -[2618341.622] {Default Queue} discarded wl_surface#3239.enter(wl_output#3289) -[2618341.626] {Default Queue} discarded wl_surface#2087.enter(wl_output#3289) -[2618341.630] {Default Queue} discarded wl_surface#2471.enter(wl_output#3289) -[2618341.634] {Default Queue} discarded wl_surface#295.enter(wl_output#3289) -[2618341.638] {Default Queue} discarded wl_surface#167.enter(wl_output#3289) -[2618341.641] {Default Queue} discarded wl_surface#1255.enter(wl_output#3289) -[2618341.645] {Default Queue} discarded wl_surface#2855.enter(wl_output#3289) -[2618341.649] {Default Queue} discarded wl_surface#679.enter(wl_output#3289) -[2618341.653] {Default Queue} discarded wl_surface#2407.enter(wl_output#3289) -[2618341.657] {Default Queue} discarded wl_surface#3207.enter(wl_output#3289) -[2618341.661] {Default Queue} discarded wl_surface#2119.enter(wl_output#3289) -[2618341.665] {Default Queue} wl_registry#3302.global(1, "wl_compositor", 6) -[2618341.672] {Default Queue} -> wl_registry#3302.bind(1, "wl_compositor", 1, new id [unknown]#3308) -[2618341.677] {Default Queue} wl_registry#3302.global(2, "wl_subcompositor", 1) -[2618341.681] {Default Queue} -> wl_registry#3302.bind(2, "wl_subcompositor", 1, new id [unknown]#3309) -[2618341.686] {Default Queue} wl_registry#3302.global(3, "xdg_wm_base", 6) -[2618341.691] {Default Queue} -> wl_registry#3302.bind(3, "xdg_wm_base", 1, new id [unknown]#3310) -[2618341.695] {Default Queue} wl_registry#3302.global(6, "zwlr_layer_shell_v1", 5) -[2618341.700] {Default Queue} wl_registry#3302.global(7, "ext_session_lock_manager_v1", 1) -[2618341.704] {Default Queue} wl_registry#3302.global(8, "wl_shm", 2) -[2618341.709] {Default Queue} -> wl_registry#3302.bind(8, "wl_shm", 1, new id [unknown]#3311) -[2618341.714] {Default Queue} -> wl_registry#3302.bind(8, "wl_shm", 1, new id [unknown]#3312) -[2618341.718] {Default Queue} -> wl_registry#3302.bind(8, "wl_shm", 1, new id [unknown]#3313) -[2618341.722] {Default Queue} wl_registry#3302.global(9, "zxdg_output_manager_v1", 3) -[2618341.727] {Default Queue} wl_registry#3302.global(10, "wp_fractional_scale_manager_v1", 1) -[2618341.731] {Default Queue} wl_registry#3302.global(11, "zwp_tablet_manager_v2", 1) -[2618341.736] {Default Queue} wl_registry#3302.global(12, "zwp_pointer_gestures_v1", 3) -[2618341.740] {Default Queue} wl_registry#3302.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618341.748] {Default Queue} -> wl_registry#3302.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3314) -[2618341.759] {Default Queue} wl_registry#3302.global(14, "zwp_pointer_constraints_v1", 1) -[2618341.765] {Default Queue} -> wl_registry#3302.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3315) -[2618341.769] {Default Queue} wl_registry#3302.global(15, "ext_idle_notifier_v1", 2) -[2618341.774] {Default Queue} wl_registry#3302.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618341.778] {Default Queue} wl_registry#3302.global(17, "wl_data_device_manager", 3) -[2618341.783] {Default Queue} -> wl_registry#3302.bind(17, "wl_data_device_manager", 2, new id [unknown]#3316) -[2618341.788] {Default Queue} -> wl_data_device_manager#3316.create_data_source(new id wl_data_source#3317) -[2618341.792] {Default Queue} -> wl_data_source#3317.offer("text/plain") -[2618341.796] {Default Queue} -> wl_data_source#3317.offer("text/plain;charset=utf-8") -[2618341.801] {Default Queue} -> wl_data_source#3317.offer("TEXT") -[2618341.805] {Default Queue} -> wl_data_source#3317.offer("STRING") -[2618341.809] {Default Queue} -> wl_data_source#3317.offer("UTF8_STRING") -[2618341.813] {Default Queue} wl_registry#3302.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618341.818] {Default Queue} -> wl_registry#3302.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3318) -[2618341.826] {Default Queue} -> zwp_primary_selection_device_manager_v1#3318.create_source(new id zwp_primary_selection_source_v1#3319) -[2618341.834] {Default Queue} -> zwp_primary_selection_source_v1#3319.offer("text/plain") -[2618341.838] {Default Queue} -> zwp_primary_selection_source_v1#3319.offer("text/plain;charset=utf-8") -[2618341.842] {Default Queue} -> zwp_primary_selection_source_v1#3319.offer("TEXT") -[2618341.846] {Default Queue} -> zwp_primary_selection_source_v1#3319.offer("STRING") -[2618341.850] {Default Queue} -> zwp_primary_selection_source_v1#3319.offer("UTF8_STRING") -[2618341.855] {Default Queue} wl_registry#3302.global(19, "zwlr_data_control_manager_v1", 2) -[2618341.859] {Default Queue} wl_registry#3302.global(20, "ext_data_control_manager_v1", 1) -[2618341.869] {Default Queue} wl_registry#3302.global(21, "wp_presentation", 2) -[2618341.874] {Default Queue} wl_registry#3302.global(22, "wp_security_context_manager_v1", 1) -[2618341.878] {Default Queue} wl_registry#3302.global(23, "zwp_text_input_manager_v3", 1) -[2618341.883] {Default Queue} wl_registry#3302.global(24, "zwp_input_method_manager_v2", 1) -[2618341.887] {Default Queue} wl_registry#3302.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618341.891] {Default Queue} wl_registry#3302.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618341.896] {Default Queue} wl_registry#3302.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618341.900] {Default Queue} wl_registry#3302.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618341.905] {Default Queue} wl_registry#3302.global(29, "ext_workspace_manager_v1", 1) -[2618341.909] {Default Queue} wl_registry#3302.global(30, "zwlr_output_manager_v1", 4) -[2618341.913] {Default Queue} wl_registry#3302.global(31, "zwlr_screencopy_manager_v1", 3) -[2618341.918] {Default Queue} wl_registry#3302.global(32, "wp_viewporter", 1) -[2618341.922] {Default Queue} wl_registry#3302.global(33, "zxdg_exporter_v2", 1) -[2618341.926] {Default Queue} wl_registry#3302.global(34, "zxdg_importer_v2", 1) -[2618341.931] {Default Queue} wl_registry#3302.global(36, "xdg_activation_v1", 1) -[2618341.935] {Default Queue} wl_registry#3302.global(37, "mutter_x11_interop", 1) -[2618341.939] {Default Queue} wl_registry#3302.global(38, "wl_seat", 9) -[2618341.944] {Default Queue} -> wl_registry#3302.bind(38, "wl_seat", 1, new id [unknown]#3320) -[2618341.949] {Default Queue} wl_registry#3302.global(39, "wp_cursor_shape_manager_v1", 2) -[2618341.953] {Default Queue} wl_registry#3302.global(40, "wl_output", 4) -[2618341.958] {Default Queue} -> wl_registry#3302.bind(40, "wl_output", 1, new id [unknown]#3321) -[2618341.962] {Default Queue} wl_callback#3303.done(0) -[2618341.970] {Default Queue} discarded wl_surface#3271.enter(wl_output#18) -[2618341.976] {Default Queue} discarded wl_surface#3271.enter(wl_output#57) -[2618341.980] {Default Queue} discarded wl_surface#3271.enter(wl_output#89) -[2618341.984] {Default Queue} discarded wl_surface#3271.enter(wl_output#121) -[2618341.988] {Default Queue} discarded wl_surface#3271.enter(wl_output#153) -[2618341.992] {Default Queue} discarded wl_surface#3271.enter(wl_output#185) -[2618341.996] {Default Queue} discarded wl_surface#3271.enter(wl_output#217) -[2618342.000] {Default Queue} discarded wl_surface#3271.enter(wl_output#249) -[2618342.004] {Default Queue} discarded wl_surface#3271.enter(wl_output#281) -[2618342.008] {Default Queue} discarded wl_surface#3271.enter(wl_output#313) -[2618342.012] {Default Queue} discarded wl_surface#3271.enter(wl_output#345) -[2618342.016] {Default Queue} discarded wl_surface#3271.enter(wl_output#377) -[2618342.020] {Default Queue} discarded wl_surface#3271.enter(wl_output#409) -[2618342.024] {Default Queue} discarded wl_surface#3271.enter(wl_output#441) -[2618342.027] {Default Queue} discarded wl_surface#3271.enter(wl_output#473) -[2618342.032] {Default Queue} discarded wl_surface#3271.enter(wl_output#505) -[2618342.036] {Default Queue} discarded wl_surface#3271.enter(wl_output#537) -[2618342.040] {Default Queue} discarded wl_surface#3271.enter(wl_output#569) -[2618342.044] {Default Queue} discarded wl_surface#3271.enter(wl_output#601) -[2618342.047] {Default Queue} discarded wl_surface#3271.enter(wl_output#633) -[2618342.051] {Default Queue} discarded wl_surface#3271.enter(wl_output#665) -[2618342.055] {Default Queue} discarded wl_surface#3271.enter(wl_output#697) -[2618342.059] {Default Queue} discarded wl_surface#3271.enter(wl_output#729) -[2618342.063] {Default Queue} discarded wl_surface#3271.enter(wl_output#761) -[2618342.067] {Default Queue} discarded wl_surface#3271.enter(wl_output#793) -[2618342.070] {Default Queue} discarded wl_surface#3271.enter(wl_output#825) -[2618342.075] {Default Queue} discarded wl_surface#3271.enter(wl_output#857) -[2618342.079] {Default Queue} discarded wl_surface#3271.enter(wl_output#889) -[2618342.082] {Default Queue} discarded wl_surface#3271.enter(wl_output#921) -[2618342.086] {Default Queue} discarded wl_surface#3271.enter(wl_output#953) -[2618342.090] {Default Queue} discarded wl_surface#3271.enter(wl_output#985) -[2618342.094] {Default Queue} discarded wl_surface#3271.enter(wl_output#1017) -[2618342.098] {Default Queue} discarded wl_surface#3271.enter(wl_output#1049) -[2618342.102] {Default Queue} discarded wl_surface#3271.enter(wl_output#1081) -[2618342.107] {Default Queue} discarded wl_surface#3271.enter(wl_output#1113) -[2618342.111] {Default Queue} discarded wl_surface#3271.enter(wl_output#1145) -[2618342.115] {Default Queue} discarded wl_surface#3271.enter(wl_output#1177) -[2618342.118] {Default Queue} discarded wl_surface#3271.enter(wl_output#1209) -[2618342.122] {Default Queue} discarded wl_surface#3271.enter(wl_output#1241) -[2618342.127] {Default Queue} discarded wl_surface#3271.enter(wl_output#1273) -[2618342.131] {Default Queue} discarded wl_surface#3271.enter(wl_output#1305) -[2618342.135] {Default Queue} discarded wl_surface#3271.enter(wl_output#1337) -[2618342.139] {Default Queue} discarded wl_surface#3271.enter(wl_output#1369) -[2618342.143] {Default Queue} discarded wl_surface#3271.enter(wl_output#1401) -[2618342.147] {Default Queue} discarded wl_surface#3271.enter(wl_output#1433) -[2618342.150] {Default Queue} discarded wl_surface#3271.enter(wl_output#1465) -[2618342.154] {Default Queue} discarded wl_surface#3271.enter(wl_output#1497) -[2618342.158] {Default Queue} discarded wl_surface#3271.enter(wl_output#1529) -[2618342.162] {Default Queue} discarded wl_surface#3271.enter(wl_output#1561) -[2618342.167] {Default Queue} discarded wl_surface#3271.enter(wl_output#1593) -[2618342.171] {Default Queue} discarded wl_surface#3271.enter(wl_output#1625) -[2618342.175] {Default Queue} discarded wl_surface#3271.enter(wl_output#1657) -[2618342.178] {Default Queue} discarded wl_surface#3271.enter(wl_output#1689) -[2618342.185] {Default Queue} discarded wl_surface#3271.enter(wl_output#1721) -[2618342.191] {Default Queue} discarded wl_surface#3271.enter(wl_output#1753) -[2618342.195] {Default Queue} discarded wl_surface#3271.enter(wl_output#1785) -[2618342.199] {Default Queue} discarded wl_surface#3271.enter(wl_output#1817) -[2618342.203] {Default Queue} discarded wl_surface#3271.enter(wl_output#1849) -[2618342.207] {Default Queue} discarded wl_surface#3271.enter(wl_output#1881) -[2618342.211] {Default Queue} discarded wl_surface#3271.enter(wl_output#1913) -[2618342.215] {Default Queue} discarded wl_surface#3271.enter(wl_output#1945) -[2618342.219] {Default Queue} discarded wl_surface#3271.enter(wl_output#1977) -[2618342.223] {Default Queue} discarded wl_surface#3271.enter(wl_output#2009) -[2618342.226] {Default Queue} discarded wl_surface#3271.enter(wl_output#2041) -[2618342.231] {Default Queue} discarded wl_surface#3271.enter(wl_output#2073) -[2618342.235] {Default Queue} discarded wl_surface#3271.enter(wl_output#2105) -[2618342.239] {Default Queue} discarded wl_surface#3271.enter(wl_output#2137) -[2618342.243] {Default Queue} discarded wl_surface#3271.enter(wl_output#2169) -[2618342.247] {Default Queue} discarded wl_surface#3271.enter(wl_output#2201) -[2618342.251] {Default Queue} discarded wl_surface#3271.enter(wl_output#2233) -[2618342.255] {Default Queue} discarded wl_surface#3271.enter(wl_output#2265) -[2618342.259] {Default Queue} discarded wl_surface#3271.enter(wl_output#2297) -[2618342.263] {Default Queue} discarded wl_surface#3271.enter(wl_output#2329) -[2618342.267] {Default Queue} -> wl_compositor#3276.create_surface(new id wl_surface#3303) -[2618342.272] {Default Queue} -> wl_subcompositor#3309.get_subsurface(new id wl_subsurface#3322, wl_surface#3303, wl_surface#3271) -[2618342.280] {Default Queue} -> wl_subsurface#3322.set_desync() -[2618342.284] {Default Queue} -> wl_subsurface#3322.set_position(0, 0) -[2618342.289] {Default Queue} -> wl_subsurface#3322.place_above(wl_surface#3271) -[2618342.330] {Default Queue} -> wl_shm#3311.create_pool(new id wl_shm_pool#3323, fd 524, 16) -[2618342.337] {Default Queue} -> wl_shm#3311.create_pool(new id wl_shm_pool#3324, fd 525, 16) -[2618342.341] {Default Queue} -> wl_shm_pool#3323.create_buffer(new id wl_buffer#3325, 0, 2, 2, 8, 0) -[2618342.346] {Default Queue} -> wl_shm_pool#3324.create_buffer(new id wl_buffer#3326, 0, 2, 2, 8, 0) -[2618342.354] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) -[2618342.359] {Default Queue} -> wl_surface#3303.commit() -[2618342.364] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) -[2618342.368] {Default Queue} -> wl_surface#3303.commit() -[2618342.372] {Default Queue} -> wl_compositor#3308.create_region(new id wl_region#3327) -[2618342.377] {Default Queue} -> wl_compositor#3308.create_region(new id wl_region#3328) -[2618342.381] {Default Queue} -> wl_region#3327.subtract(0, 0, 2, 2) -[2618342.385] {Default Queue} -> wl_region#3327.add(0, 0, 0, 0) -[2618342.390] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2618342.394] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2618342.398] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618342.403] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) -[2618342.410] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) -[2618342.414] {Default Queue} -> wl_surface#3303.commit() -[2618342.446] {Default Queue} -> wl_shm#3313.create_pool(new id wl_shm_pool#3329, fd 528, 640) -[2618342.453] {Default Queue} -> wl_shm#3313.create_pool(new id wl_shm_pool#3330, fd 529, 640) -[2618342.457] {Default Queue} -> wl_shm_pool#3329.create_buffer(new id wl_buffer#3331, 0, 10, 16, 40, 0) -[2618342.462] {Default Queue} -> wl_shm_pool#3330.create_buffer(new id wl_buffer#3332, 0, 10, 16, 40, 0) -[2618342.469] {Default Queue} -> wl_compositor#3308.create_surface(new id wl_surface#3333) -[2618342.474] {Default Queue} -> wl_surface#3333.attach(wl_buffer#3331, 0, 0) -[2618342.478] {Default Queue} -> wl_surface#3333.commit() -[2618342.483] {Default Queue} -> wl_surface#3333.attach(wl_buffer#3331, 0, 0) -[2618342.491] {Default Queue} -> wl_surface#3333.commit() -[2618342.499] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) -[2618342.504] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618342.509] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618342.516] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3334) -[2618342.521] {Default Queue} -> wl_display#1.sync(new id wl_callback#3335) -[2618345.570] {Default Queue} discarded wl_surface#3271.enter(wl_output#2361) -[2618345.583] {Default Queue} discarded wl_surface#3271.enter(wl_output#2393) -[2618345.590] {Default Queue} discarded wl_surface#3271.enter(wl_output#2425) -[2618345.597] {Default Queue} discarded wl_surface#3271.enter(wl_output#2457) -[2618345.604] {Default Queue} discarded wl_surface#3271.enter(wl_output#2489) -[2618345.611] {Default Queue} discarded wl_surface#3271.enter(wl_output#2521) -[2618345.617] {Default Queue} discarded wl_surface#3271.enter(wl_output#2553) -[2618345.623] {Default Queue} discarded wl_surface#3271.enter(wl_output#2585) -[2618345.630] {Default Queue} discarded wl_surface#3271.enter(wl_output#2617) -[2618345.636] {Default Queue} discarded wl_surface#3271.enter(wl_output#2649) -[2618345.644] {Default Queue} discarded wl_surface#3271.enter(wl_output#2681) -[2618345.651] {Default Queue} discarded wl_surface#3271.enter(wl_output#2713) -[2618345.657] {Default Queue} discarded wl_surface#3271.enter(wl_output#2745) -[2618345.664] {Default Queue} discarded wl_surface#3271.enter(wl_output#2777) -[2618345.671] {Default Queue} discarded wl_surface#3271.enter(wl_output#2809) -[2618345.678] {Default Queue} discarded wl_surface#3271.enter(wl_output#2841) -[2618345.685] {Default Queue} discarded wl_surface#3271.enter(wl_output#2873) -[2618345.691] {Default Queue} discarded wl_surface#3271.enter(wl_output#2905) -[2618345.697] {Default Queue} discarded wl_surface#3271.enter(wl_output#2937) -[2618345.704] {Default Queue} discarded wl_surface#3271.enter(wl_output#2969) -[2618345.711] {Default Queue} discarded wl_surface#3271.enter(wl_output#3001) -[2618345.717] {Default Queue} discarded wl_surface#3271.enter(wl_output#3033) -[2618345.723] {Default Queue} discarded wl_surface#3271.enter(wl_output#3065) -[2618345.730] {Default Queue} discarded wl_surface#3271.enter(wl_output#3097) -[2618345.737] {Default Queue} discarded wl_surface#3271.enter(wl_output#3129) -[2618345.744] {Default Queue} discarded wl_surface#3271.enter(wl_output#3161) -[2618345.751] {Default Queue} discarded wl_surface#3271.enter(wl_output#3193) -[2618345.758] {Default Queue} discarded wl_surface#3271.enter(wl_output#3225) -[2618345.766] {Default Queue} discarded wl_surface#3271.enter(wl_output#3257) -[2618345.772] {Default Queue} discarded wl_surface#3271.enter(wl_output#3289) -[2618345.963] {Display Queue} wl_display#1.delete_id(3335) -[2618345.980] {Default Queue} wl_keyboard#3304.keymap(1, fd 524, 68213) -[2618345.989] {Default Queue} wl_keyboard#3304.enter(566, wl_surface#19, array[0]) -[2618345.997] {Default Queue} wl_keyboard#3304.modifiers(566, 0, 0, 16, 0) -[2618346.005] {Default Queue} discarded wl_shm#3311.format(875709016) -[2618346.012] {Default Queue} discarded wl_shm#3311.format(1) -[2618346.018] {Default Queue} discarded wl_shm#3311.format(0) -[2618346.025] {Default Queue} discarded wl_shm#3311.format(875708993) -[2618346.031] {Default Queue} discarded wl_shm#3312.format(875709016) -[2618346.038] {Default Queue} discarded wl_shm#3312.format(1) -[2618346.045] {Default Queue} discarded wl_shm#3312.format(0) -[2618346.052] {Default Queue} discarded wl_shm#3312.format(875708993) -[2618346.059] {Default Queue} discarded wl_shm#3313.format(875709016) -[2618346.067] {Default Queue} discarded wl_shm#3313.format(1) -[2618346.075] {Default Queue} discarded wl_shm#3313.format(0) -[2618346.082] {Default Queue} discarded wl_shm#3313.format(875708993) -[2618346.088] {Default Queue} wl_seat#3320.capabilities(7) -[2618346.095] {Default Queue} -> wl_seat#3320.get_keyboard(new id wl_keyboard#3336) -[2618346.103] {Default Queue} -> wl_seat#3320.get_pointer(new id wl_pointer#3337) -[2618346.120] {Default Queue} -> wl_data_device_manager#3316.get_data_device(new id wl_data_device#3338, wl_seat#3320) -[2618346.133] {Default Queue} -> zwp_primary_selection_device_manager_v1#3318.get_device(new id zwp_primary_selection_device_v1#3339, wl_seat#3320) -[2618346.148] {Default Queue} wl_output#3321.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618346.159] {Default Queue} wl_output#3321.mode(3, 1280, 800, 60000) -[2618346.167] {Default Queue} discarded wl_surface#2727.enter(wl_output#3321) -[2618346.173] {Default Queue} discarded wl_surface#3.enter(wl_output#3321) -[2618346.180] {Default Queue} discarded wl_surface#999.enter(wl_output#3321) -[2618346.186] {Default Queue} discarded wl_surface#3079.enter(wl_output#3321) -[2618346.193] {Default Queue} discarded wl_surface#1191.enter(wl_output#3321) -[2618346.199] {Default Queue} discarded wl_surface#1159.enter(wl_output#3321) -[2618346.206] {Default Queue} discarded wl_surface#1703.enter(wl_output#3321) -[2618346.212] {Default Queue} discarded wl_surface#2215.enter(wl_output#3321) -[2618346.219] {Default Queue} discarded wl_surface#423.enter(wl_output#3321) -[2618346.225] {Default Queue} discarded wl_surface#1447.enter(wl_output#3321) -[2618346.232] {Default Queue} discarded wl_surface#3047.enter(wl_output#3321) -[2618346.238] {Default Queue} discarded wl_surface#2023.enter(wl_output#3321) -[2618346.245] {Default Queue} discarded wl_surface#1639.enter(wl_output#3321) -[2618346.251] {Default Queue} discarded wl_surface#1319.enter(wl_output#3321) -[2618346.258] {Default Queue} discarded wl_surface#1127.enter(wl_output#3321) -[2618346.264] {Default Queue} discarded wl_surface#2151.enter(wl_output#3321) -[2618346.271] {Default Queue} discarded wl_surface#2375.enter(wl_output#3321) -[2618346.278] {Default Queue} discarded wl_surface#2695.enter(wl_output#3321) -[2618346.285] {Default Queue} discarded wl_surface#2919.enter(wl_output#3321) -[2618346.292] {Default Queue} discarded wl_surface#1063.enter(wl_output#3321) -[2618346.300] {Default Queue} discarded wl_surface#455.enter(wl_output#3321) -[2618346.307] {Default Queue} discarded wl_surface#1575.enter(wl_output#3321) -[2618346.315] {Default Queue} discarded wl_surface#1799.enter(wl_output#3321) -[2618346.323] {Default Queue} discarded wl_surface#1415.enter(wl_output#3321) -[2618346.330] {Default Queue} discarded wl_surface#2439.enter(wl_output#3321) -[2618346.337] {Default Queue} discarded wl_surface#2279.enter(wl_output#3321) -[2618346.344] {Default Queue} discarded wl_surface#1831.enter(wl_output#3321) -[2618346.351] {Default Queue} discarded wl_surface#903.enter(wl_output#3321) -[2618346.358] {Default Queue} discarded wl_surface#2663.enter(wl_output#3321) -[2618346.365] {Default Queue} discarded wl_surface#775.enter(wl_output#3321) -[2618346.370] {Default Queue} discarded wl_surface#1991.enter(wl_output#3321) -[2618346.376] {Default Queue} discarded wl_surface#1543.enter(wl_output#3321) -[2618346.381] {Default Queue} discarded wl_surface#135.enter(wl_output#3321) -[2618346.387] {Default Queue} discarded wl_surface#1287.enter(wl_output#3321) -[2618346.393] {Default Queue} discarded wl_surface#1031.enter(wl_output#3321) -[2618346.398] {Default Queue} discarded wl_surface#615.enter(wl_output#3321) -[2618346.404] {Default Queue} discarded wl_surface#3111.enter(wl_output#3321) -[2618346.410] {Default Queue} discarded wl_surface#231.enter(wl_output#3321) -[2618346.416] {Default Queue} discarded wl_surface#2343.enter(wl_output#3321) -[2618346.422] {Default Queue} discarded wl_surface#1863.enter(wl_output#3321) -[2618346.428] {Default Queue} discarded wl_surface#359.enter(wl_output#3321) -[2618346.434] {Default Queue} discarded wl_surface#2983.enter(wl_output#3321) -[2618346.440] {Default Queue} discarded wl_surface#583.enter(wl_output#3321) -[2618346.446] {Default Queue} discarded wl_surface#743.enter(wl_output#3321) -[2618346.451] {Default Queue} discarded wl_surface#3143.enter(wl_output#3321) -[2618346.457] {Default Queue} discarded wl_surface#2535.enter(wl_output#3321) -[2618346.463] {Default Queue} discarded wl_surface#967.enter(wl_output#3321) -[2618346.475] {Default Queue} discarded wl_surface#103.enter(wl_output#3321) -[2618346.484] {Default Queue} discarded wl_surface#3271.enter(wl_output#3321) -[2618346.490] {Default Queue} discarded wl_surface#327.enter(wl_output#3321) -[2618346.496] {Default Queue} discarded wl_surface#43.enter(wl_output#3321) -[2618346.502] {Default Queue} discarded wl_surface#2247.enter(wl_output#3321) -[2618346.507] {Default Queue} discarded wl_surface#807.enter(wl_output#3321) -[2618346.512] {Default Queue} discarded wl_surface#19.enter(wl_output#3321) -[2618346.518] {Default Queue} discarded wl_surface#2951.enter(wl_output#3321) -[2618346.523] {Default Queue} discarded wl_surface#1511.enter(wl_output#3321) -[2618346.529] {Default Queue} discarded wl_surface#199.enter(wl_output#3321) -[2618346.534] {Default Queue} discarded wl_surface#391.enter(wl_output#3321) -[2618346.539] {Default Queue} discarded wl_surface#935.enter(wl_output#3321) -[2618346.543] {Default Queue} discarded wl_surface#2823.enter(wl_output#3321) -[2618346.547] {Default Queue} discarded wl_surface#3015.enter(wl_output#3321) -[2618346.551] {Default Queue} discarded wl_surface#1671.enter(wl_output#3321) -[2618346.554] {Default Queue} discarded wl_surface#1351.enter(wl_output#3321) -[2618346.558] {Default Queue} discarded wl_surface#711.enter(wl_output#3321) -[2618346.562] {Default Queue} discarded wl_surface#3175.enter(wl_output#3321) -[2618346.566] {Default Queue} discarded wl_surface#1223.enter(wl_output#3321) -[2618346.570] {Default Queue} discarded wl_surface#1927.enter(wl_output#3321) -[2618346.574] {Default Queue} discarded wl_surface#871.enter(wl_output#3321) -[2618346.580] {Default Queue} discarded wl_surface#1895.enter(wl_output#3321) -[2618346.585] {Default Queue} discarded wl_surface#263.enter(wl_output#3321) -[2618346.590] {Default Queue} discarded wl_surface#551.enter(wl_output#3321) -[2618346.595] {Default Queue} discarded wl_surface#1735.enter(wl_output#3321) -[2618346.600] {Default Queue} discarded wl_surface#1479.enter(wl_output#3321) -[2618346.605] {Default Queue} discarded wl_surface#1772.enter(wl_output#3321) -[2618346.610] {Default Queue} discarded wl_surface#2599.enter(wl_output#3321) -[2618346.615] {Default Queue} discarded wl_surface#2631.enter(wl_output#3321) -[2618346.621] {Default Queue} discarded wl_surface#1959.enter(wl_output#3321) -[2618346.627] {Default Queue} discarded wl_surface#647.enter(wl_output#3321) -[2618346.632] {Default Queue} discarded wl_surface#2055.enter(wl_output#3321) -[2618346.636] {Default Queue} discarded wl_surface#2508.enter(wl_output#3321) -[2618346.640] {Default Queue} discarded wl_surface#71.enter(wl_output#3321) -[2618346.645] {Default Queue} discarded wl_surface#2759.enter(wl_output#3321) -[2618346.649] {Default Queue} discarded wl_surface#2791.enter(wl_output#3321) -[2618346.653] {Default Queue} discarded wl_surface#2887.enter(wl_output#3321) -[2618346.657] {Default Queue} discarded wl_surface#2183.enter(wl_output#3321) -[2618346.661] {Default Queue} discarded wl_surface#2567.enter(wl_output#3321) -[2618346.665] {Default Queue} discarded wl_surface#839.enter(wl_output#3321) -[2618346.669] {Default Queue} discarded wl_surface#1607.enter(wl_output#3321) -[2618346.673] {Default Queue} discarded wl_surface#1095.enter(wl_output#3321) -[2618346.677] {Default Queue} discarded wl_surface#1383.enter(wl_output#3321) -[2618346.681] {Default Queue} discarded wl_surface#487.enter(wl_output#3321) -[2618346.685] {Default Queue} discarded wl_surface#2311.enter(wl_output#3321) -[2618346.689] {Default Queue} discarded wl_surface#519.enter(wl_output#3321) -[2618346.693] {Default Queue} discarded wl_surface#3239.enter(wl_output#3321) -[2618346.697] {Default Queue} discarded wl_surface#2087.enter(wl_output#3321) -[2618346.701] {Default Queue} discarded wl_surface#2471.enter(wl_output#3321) -[2618346.705] {Default Queue} discarded wl_surface#295.enter(wl_output#3321) -[2618346.709] {Default Queue} discarded wl_surface#167.enter(wl_output#3321) -[2618346.713] {Default Queue} discarded wl_surface#1255.enter(wl_output#3321) -[2618346.717] {Default Queue} discarded wl_surface#2855.enter(wl_output#3321) -[2618346.724] {Default Queue} discarded wl_surface#679.enter(wl_output#3321) -[2618346.730] {Default Queue} discarded wl_surface#2407.enter(wl_output#3321) -[2618346.735] {Default Queue} discarded wl_surface#3207.enter(wl_output#3321) -[2618346.739] {Default Queue} discarded wl_surface#2119.enter(wl_output#3321) -[2618346.743] {Default Queue} wl_registry#3334.global(1, "wl_compositor", 6) -[2618346.750] {Default Queue} -> wl_registry#3334.bind(1, "wl_compositor", 1, new id [unknown]#3340) -[2618346.755] {Default Queue} wl_registry#3334.global(2, "wl_subcompositor", 1) -[2618346.760] {Default Queue} -> wl_registry#3334.bind(2, "wl_subcompositor", 1, new id [unknown]#3341) -[2618346.765] {Default Queue} wl_registry#3334.global(3, "xdg_wm_base", 6) -[2618346.769] {Default Queue} -> wl_registry#3334.bind(3, "xdg_wm_base", 1, new id [unknown]#3342) -[2618346.773] {Default Queue} wl_registry#3334.global(6, "zwlr_layer_shell_v1", 5) -[2618346.778] {Default Queue} wl_registry#3334.global(7, "ext_session_lock_manager_v1", 1) -[2618346.782] {Default Queue} wl_registry#3334.global(8, "wl_shm", 2) -[2618346.787] {Default Queue} -> wl_registry#3334.bind(8, "wl_shm", 1, new id [unknown]#3343) -[2618346.798] {Default Queue} -> wl_registry#3334.bind(8, "wl_shm", 1, new id [unknown]#3344) -[2618346.806] {Default Queue} -> wl_registry#3334.bind(8, "wl_shm", 1, new id [unknown]#3345) -[2618346.810] {Default Queue} wl_registry#3334.global(9, "zxdg_output_manager_v1", 3) -[2618346.815] {Default Queue} wl_registry#3334.global(10, "wp_fractional_scale_manager_v1", 1) -[2618346.819] {Default Queue} wl_registry#3334.global(11, "zwp_tablet_manager_v2", 1) -[2618346.823] {Default Queue} wl_registry#3334.global(12, "zwp_pointer_gestures_v1", 3) -[2618346.827] {Default Queue} wl_registry#3334.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618346.832] {Default Queue} -> wl_registry#3334.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3346) -[2618346.836] {Default Queue} wl_registry#3334.global(14, "zwp_pointer_constraints_v1", 1) -[2618346.841] {Default Queue} -> wl_registry#3334.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3347) -[2618346.846] {Default Queue} wl_registry#3334.global(15, "ext_idle_notifier_v1", 2) -[2618346.850] {Default Queue} wl_registry#3334.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618346.856] {Default Queue} wl_registry#3334.global(17, "wl_data_device_manager", 3) -[2618346.862] {Default Queue} -> wl_registry#3334.bind(17, "wl_data_device_manager", 2, new id [unknown]#3348) -[2618346.867] {Default Queue} -> wl_data_device_manager#3348.create_data_source(new id wl_data_source#3349) -[2618346.879] {Default Queue} -> wl_data_source#3349.offer("text/plain") -[2618346.883] {Default Queue} -> wl_data_source#3349.offer("text/plain;charset=utf-8") -[2618346.887] {Default Queue} -> wl_data_source#3349.offer("TEXT") -[2618346.891] {Default Queue} -> wl_data_source#3349.offer("STRING") -[2618346.895] {Default Queue} -> wl_data_source#3349.offer("UTF8_STRING") -[2618346.901] {Default Queue} wl_registry#3334.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618346.905] {Default Queue} -> wl_registry#3334.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3350) -[2618346.913] {Default Queue} -> zwp_primary_selection_device_manager_v1#3350.create_source(new id zwp_primary_selection_source_v1#3351) -[2618346.921] {Default Queue} -> zwp_primary_selection_source_v1#3351.offer("text/plain") -[2618346.925] {Default Queue} -> zwp_primary_selection_source_v1#3351.offer("text/plain;charset=utf-8") -[2618346.929] {Default Queue} -> zwp_primary_selection_source_v1#3351.offer("TEXT") -[2618346.933] {Default Queue} -> zwp_primary_selection_source_v1#3351.offer("STRING") -[2618346.937] {Default Queue} -> zwp_primary_selection_source_v1#3351.offer("UTF8_STRING") -[2618346.941] {Default Queue} wl_registry#3334.global(19, "zwlr_data_control_manager_v1", 2) -[2618346.946] {Default Queue} wl_registry#3334.global(20, "ext_data_control_manager_v1", 1) -[2618346.950] {Default Queue} wl_registry#3334.global(21, "wp_presentation", 2) -[2618346.957] {Default Queue} wl_registry#3334.global(22, "wp_security_context_manager_v1", 1) -[2618346.963] {Default Queue} wl_registry#3334.global(23, "zwp_text_input_manager_v3", 1) -[2618346.968] {Default Queue} wl_registry#3334.global(24, "zwp_input_method_manager_v2", 1) -[2618346.973] {Default Queue} wl_registry#3334.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618346.977] {Default Queue} wl_registry#3334.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618346.981] {Default Queue} wl_registry#3334.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618346.985] {Default Queue} wl_registry#3334.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618346.990] {Default Queue} wl_registry#3334.global(29, "ext_workspace_manager_v1", 1) -[2618346.994] {Default Queue} wl_registry#3334.global(30, "zwlr_output_manager_v1", 4) -[2618346.998] {Default Queue} wl_registry#3334.global(31, "zwlr_screencopy_manager_v1", 3) -[2618347.003] {Default Queue} wl_registry#3334.global(32, "wp_viewporter", 1) -[2618347.007] {Default Queue} wl_registry#3334.global(33, "zxdg_exporter_v2", 1) -[2618347.011] {Default Queue} wl_registry#3334.global(34, "zxdg_importer_v2", 1) -[2618347.015] {Default Queue} wl_registry#3334.global(36, "xdg_activation_v1", 1) -[2618347.019] {Default Queue} wl_registry#3334.global(37, "mutter_x11_interop", 1) -[2618347.024] {Default Queue} wl_registry#3334.global(38, "wl_seat", 9) -[2618347.028] {Default Queue} -> wl_registry#3334.bind(38, "wl_seat", 1, new id [unknown]#3352) -[2618347.033] {Default Queue} wl_registry#3334.global(39, "wp_cursor_shape_manager_v1", 2) -[2618347.037] {Default Queue} wl_registry#3334.global(40, "wl_output", 4) -[2618347.042] {Default Queue} -> wl_registry#3334.bind(40, "wl_output", 1, new id [unknown]#3353) -[2618347.046] {Default Queue} wl_callback#3335.done(0) -[2618347.051] {Default Queue} discarded wl_surface#3303.enter(wl_output#18) -[2618347.055] {Default Queue} discarded wl_surface#3303.enter(wl_output#57) -[2618347.059] {Default Queue} discarded wl_surface#3303.enter(wl_output#89) -[2618347.063] {Default Queue} discarded wl_surface#3303.enter(wl_output#121) -[2618347.067] {Default Queue} discarded wl_surface#3303.enter(wl_output#153) -[2618347.071] {Default Queue} discarded wl_surface#3303.enter(wl_output#185) -[2618347.075] {Default Queue} discarded wl_surface#3303.enter(wl_output#217) -[2618347.079] {Default Queue} discarded wl_surface#3303.enter(wl_output#249) -[2618347.083] {Default Queue} discarded wl_surface#3303.enter(wl_output#281) -[2618347.087] {Default Queue} discarded wl_surface#3303.enter(wl_output#313) -[2618347.091] {Default Queue} discarded wl_surface#3303.enter(wl_output#345) -[2618347.096] {Default Queue} discarded wl_surface#3303.enter(wl_output#377) -[2618347.099] {Default Queue} discarded wl_surface#3303.enter(wl_output#409) -[2618347.103] {Default Queue} discarded wl_surface#3303.enter(wl_output#441) -[2618347.107] {Default Queue} discarded wl_surface#3303.enter(wl_output#473) -[2618347.111] {Default Queue} discarded wl_surface#3303.enter(wl_output#505) -[2618347.115] {Default Queue} discarded wl_surface#3303.enter(wl_output#537) -[2618347.119] {Default Queue} discarded wl_surface#3303.enter(wl_output#569) -[2618347.123] {Default Queue} discarded wl_surface#3303.enter(wl_output#601) -[2618347.127] {Default Queue} discarded wl_surface#3303.enter(wl_output#633) -[2618347.131] {Default Queue} discarded wl_surface#3303.enter(wl_output#665) -[2618347.135] {Default Queue} discarded wl_surface#3303.enter(wl_output#697) -[2618347.138] {Default Queue} discarded wl_surface#3303.enter(wl_output#729) -[2618347.142] {Default Queue} discarded wl_surface#3303.enter(wl_output#761) -[2618347.146] {Default Queue} discarded wl_surface#3303.enter(wl_output#793) -[2618347.150] {Default Queue} discarded wl_surface#3303.enter(wl_output#825) -[2618347.154] {Default Queue} discarded wl_surface#3303.enter(wl_output#857) -[2618347.158] {Default Queue} discarded wl_surface#3303.enter(wl_output#889) -[2618347.162] {Default Queue} discarded wl_surface#3303.enter(wl_output#921) -[2618347.169] {Default Queue} discarded wl_surface#3303.enter(wl_output#953) -[2618347.174] {Default Queue} discarded wl_surface#3303.enter(wl_output#985) -[2618347.178] {Default Queue} discarded wl_surface#3303.enter(wl_output#1017) -[2618347.182] {Default Queue} discarded wl_surface#3303.enter(wl_output#1049) -[2618347.186] {Default Queue} discarded wl_surface#3303.enter(wl_output#1081) -[2618347.190] {Default Queue} discarded wl_surface#3303.enter(wl_output#1113) -[2618347.194] {Default Queue} discarded wl_surface#3303.enter(wl_output#1145) -[2618347.199] {Default Queue} discarded wl_surface#3303.enter(wl_output#1177) -[2618347.203] {Default Queue} discarded wl_surface#3303.enter(wl_output#1209) -[2618347.208] {Default Queue} discarded wl_surface#3303.enter(wl_output#1241) -[2618347.212] {Default Queue} discarded wl_surface#3303.enter(wl_output#1273) -[2618347.215] {Default Queue} discarded wl_surface#3303.enter(wl_output#1305) -[2618347.219] {Default Queue} discarded wl_surface#3303.enter(wl_output#1337) -[2618347.223] {Default Queue} discarded wl_surface#3303.enter(wl_output#1369) -[2618347.227] {Default Queue} discarded wl_surface#3303.enter(wl_output#1401) -[2618347.231] {Default Queue} discarded wl_surface#3303.enter(wl_output#1433) -[2618347.235] {Default Queue} discarded wl_surface#3303.enter(wl_output#1465) -[2618347.239] {Default Queue} discarded wl_surface#3303.enter(wl_output#1497) -[2618347.242] {Default Queue} discarded wl_surface#3303.enter(wl_output#1529) -[2618347.247] {Default Queue} discarded wl_surface#3303.enter(wl_output#1561) -[2618347.251] {Default Queue} discarded wl_surface#3303.enter(wl_output#1593) -[2618347.255] {Default Queue} discarded wl_surface#3303.enter(wl_output#1625) -[2618347.258] {Default Queue} discarded wl_surface#3303.enter(wl_output#1657) -[2618347.262] {Default Queue} discarded wl_surface#3303.enter(wl_output#1689) -[2618347.266] {Default Queue} discarded wl_surface#3303.enter(wl_output#1721) -[2618347.270] {Default Queue} discarded wl_surface#3303.enter(wl_output#1753) -[2618347.274] {Default Queue} discarded wl_surface#3303.enter(wl_output#1785) -[2618347.278] {Default Queue} discarded wl_surface#3303.enter(wl_output#1817) -[2618347.282] {Default Queue} discarded wl_surface#3303.enter(wl_output#1849) -[2618347.286] {Default Queue} discarded wl_surface#3303.enter(wl_output#1881) -[2618347.290] {Default Queue} discarded wl_surface#3303.enter(wl_output#1913) -[2618347.294] {Default Queue} discarded wl_surface#3303.enter(wl_output#1945) -[2618347.298] {Default Queue} discarded wl_surface#3303.enter(wl_output#1977) -[2618347.302] {Default Queue} discarded wl_surface#3303.enter(wl_output#2009) -[2618347.306] {Default Queue} discarded wl_surface#3303.enter(wl_output#2041) -[2618347.310] {Default Queue} discarded wl_surface#3303.enter(wl_output#2073) -[2618347.314] {Default Queue} discarded wl_surface#3303.enter(wl_output#2105) -[2618347.318] {Default Queue} discarded wl_surface#3303.enter(wl_output#2137) -[2618347.321] {Default Queue} discarded wl_surface#3303.enter(wl_output#2169) -[2618347.325] {Default Queue} discarded wl_surface#3303.enter(wl_output#2201) -[2618347.329] {Default Queue} discarded wl_surface#3303.enter(wl_output#2233) -[2618347.333] {Default Queue} discarded wl_surface#3303.enter(wl_output#2265) -[2618347.337] {Default Queue} discarded wl_surface#3303.enter(wl_output#2297) -[2618347.342] {Default Queue} -> wl_compositor#3276.create_surface(new id wl_surface#3335) -[2618347.346] {Default Queue} -> wl_subcompositor#3341.get_subsurface(new id wl_subsurface#3354, wl_surface#3335, wl_surface#3271) -[2618347.354] {Default Queue} -> wl_subsurface#3354.set_desync() -[2618347.358] {Default Queue} -> wl_subsurface#3354.set_position(0, 0) -[2618347.363] {Default Queue} -> wl_subsurface#3354.place_above(wl_surface#3271) -[2618347.404] {Default Queue} -> wl_shm#3343.create_pool(new id wl_shm_pool#3355, fd 529, 16) -[2618347.412] {Default Queue} -> wl_shm#3343.create_pool(new id wl_shm_pool#3356, fd 530, 16) -[2618347.416] {Default Queue} -> wl_shm_pool#3355.create_buffer(new id wl_buffer#3357, 0, 2, 2, 8, 0) -[2618347.424] {Default Queue} -> wl_shm_pool#3356.create_buffer(new id wl_buffer#3358, 0, 2, 2, 8, 0) -[2618347.434] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) -[2618347.438] {Default Queue} -> wl_surface#3335.commit() -[2618347.444] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) -[2618347.448] {Default Queue} -> wl_surface#3335.commit() -[2618347.452] {Default Queue} -> wl_compositor#3340.create_region(new id wl_region#3359) -[2618347.456] {Default Queue} -> wl_compositor#3340.create_region(new id wl_region#3360) -[2618347.460] {Default Queue} -> wl_region#3359.subtract(0, 0, 2, 2) -[2618347.465] {Default Queue} -> wl_region#3359.add(0, 0, 0, 0) -[2618347.469] {Default Queue} -> wl_surface#3335.set_opaque_region(wl_region#3360) -[2618347.473] {Default Queue} -> wl_surface#3335.set_input_region(wl_region#3359) -[2618347.478] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) -[2618347.482] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) -[2618347.489] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) -[2618347.494] {Default Queue} -> wl_surface#3335.commit() -[2618347.528] {Default Queue} -> wl_shm#3345.create_pool(new id wl_shm_pool#3361, fd 533, 640) -[2618347.534] {Default Queue} -> wl_shm#3345.create_pool(new id wl_shm_pool#3362, fd 534, 640) -[2618347.538] {Default Queue} -> wl_shm_pool#3361.create_buffer(new id wl_buffer#3363, 0, 10, 16, 40, 0) -[2618347.543] {Default Queue} -> wl_shm_pool#3362.create_buffer(new id wl_buffer#3364, 0, 10, 16, 40, 0) -[2618347.550] {Default Queue} -> wl_compositor#3340.create_surface(new id wl_surface#3365) -[2618347.555] {Default Queue} -> wl_surface#3365.attach(wl_buffer#3363, 0, 0) -[2618347.559] {Default Queue} -> wl_surface#3365.commit() -[2618347.564] {Default Queue} -> wl_surface#3365.attach(wl_buffer#3363, 0, 0) -[2618347.568] {Default Queue} -> wl_surface#3365.commit() -[2618347.574] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) -[2618347.581] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3366) -[2618347.585] {Default Queue} -> wl_display#1.sync(new id wl_callback#3367) -[2618350.504] {Default Queue} discarded wl_surface#3303.enter(wl_output#2329) -[2618350.518] {Default Queue} discarded wl_surface#3303.enter(wl_output#2361) -[2618350.525] {Default Queue} discarded wl_surface#3303.enter(wl_output#2393) -[2618350.532] {Default Queue} discarded wl_surface#3303.enter(wl_output#2425) -[2618350.539] {Default Queue} discarded wl_surface#3303.enter(wl_output#2457) -[2618350.545] {Default Queue} discarded wl_surface#3303.enter(wl_output#2489) -[2618350.552] {Default Queue} discarded wl_surface#3303.enter(wl_output#2521) -[2618350.559] {Default Queue} discarded wl_surface#3303.enter(wl_output#2553) -[2618350.565] {Default Queue} discarded wl_surface#3303.enter(wl_output#2585) -[2618350.572] {Default Queue} discarded wl_surface#3303.enter(wl_output#2617) -[2618350.579] {Default Queue} discarded wl_surface#3303.enter(wl_output#2649) -[2618350.586] {Default Queue} discarded wl_surface#3303.enter(wl_output#2681) -[2618350.592] {Default Queue} discarded wl_surface#3303.enter(wl_output#2713) -[2618350.599] {Default Queue} discarded wl_surface#3303.enter(wl_output#2745) -[2618350.606] {Default Queue} discarded wl_surface#3303.enter(wl_output#2777) -[2618350.613] {Default Queue} discarded wl_surface#3303.enter(wl_output#2809) -[2618350.620] {Default Queue} discarded wl_surface#3303.enter(wl_output#2841) -[2618350.626] {Default Queue} discarded wl_surface#3303.enter(wl_output#2873) -[2618350.632] {Default Queue} discarded wl_surface#3303.enter(wl_output#2905) -[2618350.639] {Default Queue} discarded wl_surface#3303.enter(wl_output#2937) -[2618350.645] {Default Queue} discarded wl_surface#3303.enter(wl_output#2969) -[2618350.652] {Default Queue} discarded wl_surface#3303.enter(wl_output#3001) -[2618350.658] {Default Queue} discarded wl_surface#3303.enter(wl_output#3033) -[2618350.665] {Default Queue} discarded wl_surface#3303.enter(wl_output#3065) -[2618350.672] {Default Queue} discarded wl_surface#3303.enter(wl_output#3097) -[2618350.686] {Default Queue} discarded wl_surface#3303.enter(wl_output#3129) -[2618350.697] {Default Queue} discarded wl_surface#3303.enter(wl_output#3161) -[2618350.704] {Default Queue} discarded wl_surface#3303.enter(wl_output#3193) -[2618350.710] {Default Queue} discarded wl_surface#3303.enter(wl_output#3225) -[2618350.717] {Default Queue} discarded wl_surface#3303.enter(wl_output#3257) -[2618350.724] {Default Queue} discarded wl_surface#3303.enter(wl_output#3289) -[2618350.731] {Default Queue} discarded wl_surface#3303.enter(wl_output#3321) -[2618350.915] {Display Queue} wl_display#1.delete_id(3367) -[2618350.930] {Default Queue} wl_keyboard#3336.keymap(1, fd 529, 68213) -[2618350.939] {Default Queue} wl_keyboard#3336.enter(566, wl_surface#19, array[0]) -[2618350.948] {Default Queue} wl_keyboard#3336.modifiers(566, 0, 0, 16, 0) -[2618350.959] {Default Queue} discarded wl_shm#3343.format(875709016) -[2618350.965] {Default Queue} discarded wl_shm#3343.format(1) -[2618350.972] {Default Queue} discarded wl_shm#3343.format(0) -[2618350.978] {Default Queue} discarded wl_shm#3343.format(875708993) -[2618350.984] {Default Queue} discarded wl_shm#3344.format(875709016) -[2618350.991] {Default Queue} discarded wl_shm#3344.format(1) -[2618350.998] {Default Queue} discarded wl_shm#3344.format(0) -[2618351.004] {Default Queue} discarded wl_shm#3344.format(875708993) -[2618351.010] {Default Queue} discarded wl_shm#3345.format(875709016) -[2618351.017] {Default Queue} discarded wl_shm#3345.format(1) -[2618351.024] {Default Queue} discarded wl_shm#3345.format(0) -[2618351.031] {Default Queue} discarded wl_shm#3345.format(875708993) -[2618351.038] {Default Queue} wl_seat#3352.capabilities(7) -[2618351.047] {Default Queue} -> wl_seat#3352.get_keyboard(new id wl_keyboard#3368) -[2618351.054] {Default Queue} -> wl_seat#3352.get_pointer(new id wl_pointer#3369) -[2618351.062] {Default Queue} -> wl_data_device_manager#3348.get_data_device(new id wl_data_device#3370, wl_seat#3352) -[2618351.070] {Default Queue} -> zwp_primary_selection_device_manager_v1#3350.get_device(new id zwp_primary_selection_device_v1#3371, wl_seat#3352) -[2618351.085] {Default Queue} wl_output#3353.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618351.093] {Default Queue} wl_output#3353.mode(3, 1280, 800, 60000) -[2618351.101] {Default Queue} discarded wl_surface#2727.enter(wl_output#3353) -[2618351.108] {Default Queue} discarded wl_surface#3.enter(wl_output#3353) -[2618351.116] {Default Queue} discarded wl_surface#999.enter(wl_output#3353) -[2618351.123] {Default Queue} discarded wl_surface#3079.enter(wl_output#3353) -[2618351.130] {Default Queue} discarded wl_surface#1191.enter(wl_output#3353) -[2618351.137] {Default Queue} discarded wl_surface#1159.enter(wl_output#3353) -[2618351.144] {Default Queue} discarded wl_surface#1703.enter(wl_output#3353) -[2618351.150] {Default Queue} discarded wl_surface#2215.enter(wl_output#3353) -[2618351.157] {Default Queue} discarded wl_surface#423.enter(wl_output#3353) -[2618351.163] {Default Queue} discarded wl_surface#1447.enter(wl_output#3353) -[2618351.170] {Default Queue} discarded wl_surface#3047.enter(wl_output#3353) -[2618351.176] {Default Queue} discarded wl_surface#2023.enter(wl_output#3353) -[2618351.183] {Default Queue} discarded wl_surface#1639.enter(wl_output#3353) -[2618351.189] {Default Queue} discarded wl_surface#1319.enter(wl_output#3353) -[2618351.196] {Default Queue} discarded wl_surface#1127.enter(wl_output#3353) -[2618351.202] {Default Queue} discarded wl_surface#2151.enter(wl_output#3353) -[2618351.209] {Default Queue} discarded wl_surface#2375.enter(wl_output#3353) -[2618351.216] {Default Queue} discarded wl_surface#2695.enter(wl_output#3353) -[2618351.222] {Default Queue} discarded wl_surface#2919.enter(wl_output#3353) -[2618351.229] {Default Queue} discarded wl_surface#1063.enter(wl_output#3353) -[2618351.235] {Default Queue} discarded wl_surface#455.enter(wl_output#3353) -[2618351.241] {Default Queue} discarded wl_surface#1575.enter(wl_output#3353) -[2618351.248] {Default Queue} discarded wl_surface#1799.enter(wl_output#3353) -[2618351.255] {Default Queue} discarded wl_surface#1415.enter(wl_output#3353) -[2618351.270] {Default Queue} discarded wl_surface#2439.enter(wl_output#3353) -[2618351.282] {Default Queue} discarded wl_surface#2279.enter(wl_output#3353) -[2618351.289] {Default Queue} discarded wl_surface#1831.enter(wl_output#3353) -[2618351.296] {Default Queue} discarded wl_surface#903.enter(wl_output#3353) -[2618351.303] {Default Queue} discarded wl_surface#2663.enter(wl_output#3353) -[2618351.311] {Default Queue} discarded wl_surface#775.enter(wl_output#3353) -[2618351.318] {Default Queue} discarded wl_surface#1991.enter(wl_output#3353) -[2618351.325] {Default Queue} discarded wl_surface#1543.enter(wl_output#3353) -[2618351.333] {Default Queue} discarded wl_surface#135.enter(wl_output#3353) -[2618351.340] {Default Queue} discarded wl_surface#1287.enter(wl_output#3353) -[2618351.348] {Default Queue} discarded wl_surface#1031.enter(wl_output#3353) -[2618351.355] {Default Queue} discarded wl_surface#615.enter(wl_output#3353) -[2618351.362] {Default Queue} discarded wl_surface#3111.enter(wl_output#3353) -[2618351.370] {Default Queue} discarded wl_surface#231.enter(wl_output#3353) -[2618351.377] {Default Queue} discarded wl_surface#2343.enter(wl_output#3353) -[2618351.384] {Default Queue} discarded wl_surface#1863.enter(wl_output#3353) -[2618351.391] {Default Queue} discarded wl_surface#359.enter(wl_output#3353) -[2618351.397] {Default Queue} discarded wl_surface#2983.enter(wl_output#3353) -[2618351.403] {Default Queue} discarded wl_surface#583.enter(wl_output#3353) -[2618351.409] {Default Queue} discarded wl_surface#743.enter(wl_output#3353) -[2618351.414] {Default Queue} discarded wl_surface#3143.enter(wl_output#3353) -[2618351.420] {Default Queue} discarded wl_surface#2535.enter(wl_output#3353) -[2618351.426] {Default Queue} discarded wl_surface#967.enter(wl_output#3353) -[2618351.432] {Default Queue} discarded wl_surface#103.enter(wl_output#3353) -[2618351.438] {Default Queue} discarded wl_surface#3271.enter(wl_output#3353) -[2618351.443] {Default Queue} discarded wl_surface#327.enter(wl_output#3353) -[2618351.449] {Default Queue} discarded wl_surface#43.enter(wl_output#3353) -[2618351.455] {Default Queue} discarded wl_surface#2247.enter(wl_output#3353) -[2618351.461] {Default Queue} discarded wl_surface#807.enter(wl_output#3353) -[2618351.467] {Default Queue} discarded wl_surface#19.enter(wl_output#3353) -[2618351.472] {Default Queue} discarded wl_surface#2951.enter(wl_output#3353) -[2618351.478] {Default Queue} discarded wl_surface#1511.enter(wl_output#3353) -[2618351.484] {Default Queue} discarded wl_surface#199.enter(wl_output#3353) -[2618351.489] {Default Queue} discarded wl_surface#391.enter(wl_output#3353) -[2618351.495] {Default Queue} discarded wl_surface#935.enter(wl_output#3353) -[2618351.500] {Default Queue} discarded wl_surface#2823.enter(wl_output#3353) -[2618351.505] {Default Queue} discarded wl_surface#3015.enter(wl_output#3353) -[2618351.511] {Default Queue} discarded wl_surface#1671.enter(wl_output#3353) -[2618351.516] {Default Queue} discarded wl_surface#1351.enter(wl_output#3353) -[2618351.521] {Default Queue} discarded wl_surface#711.enter(wl_output#3353) -[2618351.525] {Default Queue} discarded wl_surface#3175.enter(wl_output#3353) -[2618351.529] {Default Queue} discarded wl_surface#1223.enter(wl_output#3353) -[2618351.533] {Default Queue} discarded wl_surface#1927.enter(wl_output#3353) -[2618351.537] {Default Queue} discarded wl_surface#871.enter(wl_output#3353) -[2618351.541] {Default Queue} discarded wl_surface#1895.enter(wl_output#3353) -[2618351.545] {Default Queue} discarded wl_surface#263.enter(wl_output#3353) -[2618351.549] {Default Queue} discarded wl_surface#551.enter(wl_output#3353) -[2618351.555] {Default Queue} discarded wl_surface#1735.enter(wl_output#3353) -[2618351.560] {Default Queue} discarded wl_surface#1479.enter(wl_output#3353) -[2618351.565] {Default Queue} discarded wl_surface#1772.enter(wl_output#3353) -[2618351.570] {Default Queue} discarded wl_surface#2599.enter(wl_output#3353) -[2618351.575] {Default Queue} discarded wl_surface#2631.enter(wl_output#3353) -[2618351.584] {Default Queue} discarded wl_surface#1959.enter(wl_output#3353) -[2618351.592] {Default Queue} discarded wl_surface#647.enter(wl_output#3353) -[2618351.598] {Default Queue} discarded wl_surface#2055.enter(wl_output#3353) -[2618351.603] {Default Queue} discarded wl_surface#2508.enter(wl_output#3353) -[2618351.607] {Default Queue} discarded wl_surface#71.enter(wl_output#3353) -[2618351.611] {Default Queue} discarded wl_surface#2759.enter(wl_output#3353) -[2618351.615] {Default Queue} discarded wl_surface#2791.enter(wl_output#3353) -[2618351.620] {Default Queue} discarded wl_surface#2887.enter(wl_output#3353) -[2618351.624] {Default Queue} discarded wl_surface#2183.enter(wl_output#3353) -[2618351.628] {Default Queue} discarded wl_surface#2567.enter(wl_output#3353) -[2618351.631] {Default Queue} discarded wl_surface#839.enter(wl_output#3353) -[2618351.635] {Default Queue} discarded wl_surface#1607.enter(wl_output#3353) -[2618351.639] {Default Queue} discarded wl_surface#1095.enter(wl_output#3353) -[2618351.643] {Default Queue} discarded wl_surface#1383.enter(wl_output#3353) -[2618351.647] {Default Queue} discarded wl_surface#487.enter(wl_output#3353) -[2618351.651] {Default Queue} discarded wl_surface#2311.enter(wl_output#3353) -[2618351.655] {Default Queue} discarded wl_surface#519.enter(wl_output#3353) -[2618351.659] {Default Queue} discarded wl_surface#3239.enter(wl_output#3353) -[2618351.663] {Default Queue} discarded wl_surface#2087.enter(wl_output#3353) -[2618351.667] {Default Queue} discarded wl_surface#2471.enter(wl_output#3353) -[2618351.670] {Default Queue} discarded wl_surface#295.enter(wl_output#3353) -[2618351.674] {Default Queue} discarded wl_surface#167.enter(wl_output#3353) -[2618351.678] {Default Queue} discarded wl_surface#1255.enter(wl_output#3353) -[2618351.682] {Default Queue} discarded wl_surface#2855.enter(wl_output#3353) -[2618351.686] {Default Queue} discarded wl_surface#3303.enter(wl_output#3353) -[2618351.690] {Default Queue} discarded wl_surface#679.enter(wl_output#3353) -[2618351.694] {Default Queue} discarded wl_surface#2407.enter(wl_output#3353) -[2618351.699] {Default Queue} discarded wl_surface#3207.enter(wl_output#3353) -[2618351.702] {Default Queue} discarded wl_surface#2119.enter(wl_output#3353) -[2618351.707] {Default Queue} wl_registry#3366.global(1, "wl_compositor", 6) -[2618351.713] {Default Queue} -> wl_registry#3366.bind(1, "wl_compositor", 1, new id [unknown]#3372) -[2618351.718] {Default Queue} wl_registry#3366.global(2, "wl_subcompositor", 1) -[2618351.723] {Default Queue} -> wl_registry#3366.bind(2, "wl_subcompositor", 1, new id [unknown]#3373) -[2618351.727] {Default Queue} wl_registry#3366.global(3, "xdg_wm_base", 6) -[2618351.732] {Default Queue} -> wl_registry#3366.bind(3, "xdg_wm_base", 1, new id [unknown]#3374) -[2618351.736] {Default Queue} wl_registry#3366.global(6, "zwlr_layer_shell_v1", 5) -[2618351.741] {Default Queue} wl_registry#3366.global(7, "ext_session_lock_manager_v1", 1) -[2618351.745] {Default Queue} wl_registry#3366.global(8, "wl_shm", 2) -[2618351.750] {Default Queue} -> wl_registry#3366.bind(8, "wl_shm", 1, new id [unknown]#3375) -[2618351.754] {Default Queue} -> wl_registry#3366.bind(8, "wl_shm", 1, new id [unknown]#3376) -[2618351.759] {Default Queue} -> wl_registry#3366.bind(8, "wl_shm", 1, new id [unknown]#3377) -[2618351.763] {Default Queue} wl_registry#3366.global(9, "zxdg_output_manager_v1", 3) -[2618351.767] {Default Queue} wl_registry#3366.global(10, "wp_fractional_scale_manager_v1", 1) -[2618351.772] {Default Queue} wl_registry#3366.global(11, "zwp_tablet_manager_v2", 1) -[2618351.776] {Default Queue} wl_registry#3366.global(12, "zwp_pointer_gestures_v1", 3) -[2618351.781] {Default Queue} wl_registry#3366.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618351.785] {Default Queue} -> wl_registry#3366.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3378) -[2618351.790] {Default Queue} wl_registry#3366.global(14, "zwp_pointer_constraints_v1", 1) -[2618351.794] {Default Queue} -> wl_registry#3366.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3379) -[2618351.802] {Default Queue} wl_registry#3366.global(15, "ext_idle_notifier_v1", 2) -[2618351.808] {Default Queue} wl_registry#3366.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618351.813] {Default Queue} wl_registry#3366.global(17, "wl_data_device_manager", 3) -[2618351.818] {Default Queue} -> wl_registry#3366.bind(17, "wl_data_device_manager", 2, new id [unknown]#3380) -[2618351.823] {Default Queue} -> wl_data_device_manager#3380.create_data_source(new id wl_data_source#3381) -[2618351.827] {Default Queue} -> wl_data_source#3381.offer("text/plain") -[2618351.831] {Default Queue} -> wl_data_source#3381.offer("text/plain;charset=utf-8") -[2618351.835] {Default Queue} -> wl_data_source#3381.offer("TEXT") -[2618351.840] {Default Queue} -> wl_data_source#3381.offer("STRING") -[2618351.844] {Default Queue} -> wl_data_source#3381.offer("UTF8_STRING") -[2618351.848] {Default Queue} wl_registry#3366.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618351.853] {Default Queue} -> wl_registry#3366.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3382) -[2618351.862] {Default Queue} -> zwp_primary_selection_device_manager_v1#3382.create_source(new id zwp_primary_selection_source_v1#3383) -[2618351.870] {Default Queue} -> zwp_primary_selection_source_v1#3383.offer("text/plain") -[2618351.879] {Default Queue} -> zwp_primary_selection_source_v1#3383.offer("text/plain;charset=utf-8") -[2618351.883] {Default Queue} -> zwp_primary_selection_source_v1#3383.offer("TEXT") -[2618351.887] {Default Queue} -> zwp_primary_selection_source_v1#3383.offer("STRING") -[2618351.891] {Default Queue} -> zwp_primary_selection_source_v1#3383.offer("UTF8_STRING") -[2618351.895] {Default Queue} wl_registry#3366.global(19, "zwlr_data_control_manager_v1", 2) -[2618351.903] {Default Queue} wl_registry#3366.global(20, "ext_data_control_manager_v1", 1) -[2618351.908] {Default Queue} wl_registry#3366.global(21, "wp_presentation", 2) -[2618351.912] {Default Queue} wl_registry#3366.global(22, "wp_security_context_manager_v1", 1) -[2618351.917] {Default Queue} wl_registry#3366.global(23, "zwp_text_input_manager_v3", 1) -[2618351.921] {Default Queue} wl_registry#3366.global(24, "zwp_input_method_manager_v2", 1) -[2618351.926] {Default Queue} wl_registry#3366.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618351.930] {Default Queue} wl_registry#3366.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618351.935] {Default Queue} wl_registry#3366.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618351.939] {Default Queue} wl_registry#3366.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618351.943] {Default Queue} wl_registry#3366.global(29, "ext_workspace_manager_v1", 1) -[2618351.948] {Default Queue} wl_registry#3366.global(30, "zwlr_output_manager_v1", 4) -[2618351.952] {Default Queue} wl_registry#3366.global(31, "zwlr_screencopy_manager_v1", 3) -[2618351.956] {Default Queue} wl_registry#3366.global(32, "wp_viewporter", 1) -[2618351.961] {Default Queue} wl_registry#3366.global(33, "zxdg_exporter_v2", 1) -[2618351.965] {Default Queue} wl_registry#3366.global(34, "zxdg_importer_v2", 1) -[2618351.969] {Default Queue} wl_registry#3366.global(36, "xdg_activation_v1", 1) -[2618351.974] {Default Queue} wl_registry#3366.global(37, "mutter_x11_interop", 1) -[2618351.978] {Default Queue} wl_registry#3366.global(38, "wl_seat", 9) -[2618351.982] {Default Queue} -> wl_registry#3366.bind(38, "wl_seat", 1, new id [unknown]#3384) -[2618351.987] {Default Queue} wl_registry#3366.global(39, "wp_cursor_shape_manager_v1", 2) -[2618351.992] {Default Queue} wl_registry#3366.global(40, "wl_output", 4) -[2618351.996] {Default Queue} -> wl_registry#3366.bind(40, "wl_output", 1, new id [unknown]#3385) -[2618352.001] {Default Queue} wl_callback#3367.done(0) -[2618352.005] {Default Queue} discarded wl_surface#3335.enter(wl_output#18) -[2618352.009] {Default Queue} discarded wl_surface#3335.enter(wl_output#57) -[2618352.013] {Default Queue} discarded wl_surface#3335.enter(wl_output#89) -[2618352.017] {Default Queue} discarded wl_surface#3335.enter(wl_output#121) -[2618352.024] {Default Queue} discarded wl_surface#3335.enter(wl_output#153) -[2618352.030] {Default Queue} discarded wl_surface#3335.enter(wl_output#185) -[2618352.034] {Default Queue} discarded wl_surface#3335.enter(wl_output#217) -[2618352.040] {Default Queue} discarded wl_surface#3335.enter(wl_output#249) -[2618352.043] {Default Queue} discarded wl_surface#3335.enter(wl_output#281) -[2618352.047] {Default Queue} discarded wl_surface#3335.enter(wl_output#313) -[2618352.051] {Default Queue} discarded wl_surface#3335.enter(wl_output#345) -[2618352.055] {Default Queue} discarded wl_surface#3335.enter(wl_output#377) -[2618352.059] {Default Queue} discarded wl_surface#3335.enter(wl_output#409) -[2618352.063] {Default Queue} discarded wl_surface#3335.enter(wl_output#441) -[2618352.067] {Default Queue} discarded wl_surface#3335.enter(wl_output#473) -[2618352.071] {Default Queue} discarded wl_surface#3335.enter(wl_output#505) -[2618352.075] {Default Queue} discarded wl_surface#3335.enter(wl_output#537) -[2618352.080] {Default Queue} discarded wl_surface#3335.enter(wl_output#569) -[2618352.084] {Default Queue} discarded wl_surface#3335.enter(wl_output#601) -[2618352.087] {Default Queue} discarded wl_surface#3335.enter(wl_output#633) -[2618352.091] {Default Queue} discarded wl_surface#3335.enter(wl_output#665) -[2618352.095] {Default Queue} discarded wl_surface#3335.enter(wl_output#697) -[2618352.101] {Default Queue} discarded wl_surface#3335.enter(wl_output#729) -[2618352.105] {Default Queue} discarded wl_surface#3335.enter(wl_output#761) -[2618352.109] {Default Queue} discarded wl_surface#3335.enter(wl_output#793) -[2618352.113] {Default Queue} discarded wl_surface#3335.enter(wl_output#825) -[2618352.117] {Default Queue} discarded wl_surface#3335.enter(wl_output#857) -[2618352.121] {Default Queue} discarded wl_surface#3335.enter(wl_output#889) -[2618352.125] {Default Queue} discarded wl_surface#3335.enter(wl_output#921) -[2618352.129] {Default Queue} discarded wl_surface#3335.enter(wl_output#953) -[2618352.133] {Default Queue} discarded wl_surface#3335.enter(wl_output#985) -[2618352.137] {Default Queue} discarded wl_surface#3335.enter(wl_output#1017) -[2618352.141] {Default Queue} discarded wl_surface#3335.enter(wl_output#1049) -[2618352.145] {Default Queue} discarded wl_surface#3335.enter(wl_output#1081) -[2618352.149] {Default Queue} discarded wl_surface#3335.enter(wl_output#1113) -[2618352.153] {Default Queue} discarded wl_surface#3335.enter(wl_output#1145) -[2618352.156] {Default Queue} discarded wl_surface#3335.enter(wl_output#1177) -[2618352.160] {Default Queue} discarded wl_surface#3335.enter(wl_output#1209) -[2618352.164] {Default Queue} discarded wl_surface#3335.enter(wl_output#1241) -[2618352.168] {Default Queue} discarded wl_surface#3335.enter(wl_output#1273) -[2618352.172] {Default Queue} discarded wl_surface#3335.enter(wl_output#1305) -[2618352.176] {Default Queue} discarded wl_surface#3335.enter(wl_output#1337) -[2618352.179] {Default Queue} discarded wl_surface#3335.enter(wl_output#1369) -[2618352.183] {Default Queue} discarded wl_surface#3335.enter(wl_output#1401) -[2618352.187] {Default Queue} discarded wl_surface#3335.enter(wl_output#1433) -[2618352.191] {Default Queue} discarded wl_surface#3335.enter(wl_output#1465) -[2618352.195] {Default Queue} discarded wl_surface#3335.enter(wl_output#1497) -[2618352.199] {Default Queue} discarded wl_surface#3335.enter(wl_output#1529) -[2618352.203] {Default Queue} discarded wl_surface#3335.enter(wl_output#1561) -[2618352.207] {Default Queue} discarded wl_surface#3335.enter(wl_output#1593) -[2618352.211] {Default Queue} discarded wl_surface#3335.enter(wl_output#1625) -[2618352.214] {Default Queue} discarded wl_surface#3335.enter(wl_output#1657) -[2618352.218] {Default Queue} discarded wl_surface#3335.enter(wl_output#1689) -[2618352.222] {Default Queue} discarded wl_surface#3335.enter(wl_output#1721) -[2618352.226] {Default Queue} discarded wl_surface#3335.enter(wl_output#1753) -[2618352.230] {Default Queue} discarded wl_surface#3335.enter(wl_output#1785) -[2618352.234] {Default Queue} discarded wl_surface#3335.enter(wl_output#1817) -[2618352.241] {Default Queue} discarded wl_surface#3335.enter(wl_output#1849) -[2618352.246] {Default Queue} discarded wl_surface#3335.enter(wl_output#1881) -[2618352.251] {Default Queue} discarded wl_surface#3335.enter(wl_output#1913) -[2618352.254] {Default Queue} discarded wl_surface#3335.enter(wl_output#1945) -[2618352.258] {Default Queue} discarded wl_surface#3335.enter(wl_output#1977) -[2618352.262] {Default Queue} discarded wl_surface#3335.enter(wl_output#2009) -[2618352.266] {Default Queue} discarded wl_surface#3335.enter(wl_output#2041) -[2618352.270] {Default Queue} discarded wl_surface#3335.enter(wl_output#2073) -[2618352.274] {Default Queue} discarded wl_surface#3335.enter(wl_output#2105) -[2618352.278] {Default Queue} discarded wl_surface#3335.enter(wl_output#2137) -[2618352.282] {Default Queue} discarded wl_surface#3335.enter(wl_output#2169) -[2618352.286] {Default Queue} discarded wl_surface#3335.enter(wl_output#2201) -[2618352.290] {Default Queue} discarded wl_surface#3335.enter(wl_output#2233) -[2618352.294] {Default Queue} discarded wl_surface#3335.enter(wl_output#2265) -[2618352.298] {Default Queue} -> wl_compositor#3340.create_surface(new id wl_surface#3367) -[2618352.303] {Default Queue} -> wl_subcompositor#3373.get_subsurface(new id wl_subsurface#3386, wl_surface#3367, wl_surface#3335) -[2618352.311] {Default Queue} -> wl_subsurface#3386.set_desync() -[2618352.315] {Default Queue} -> wl_subsurface#3386.set_position(0, 0) -[2618352.319] {Default Queue} -> wl_subsurface#3386.place_above(wl_surface#3335) -[2618352.363] {Default Queue} -> wl_shm#3375.create_pool(new id wl_shm_pool#3387, fd 534, 16) -[2618352.370] {Default Queue} -> wl_shm#3375.create_pool(new id wl_shm_pool#3388, fd 535, 16) -[2618352.374] {Default Queue} -> wl_shm_pool#3387.create_buffer(new id wl_buffer#3389, 0, 2, 2, 8, 0) -[2618352.379] {Default Queue} -> wl_shm_pool#3388.create_buffer(new id wl_buffer#3390, 0, 2, 2, 8, 0) -[2618352.387] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) -[2618352.391] {Default Queue} -> wl_surface#3367.commit() -[2618352.397] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) -[2618352.401] {Default Queue} -> wl_surface#3367.commit() -[2618352.405] {Default Queue} -> wl_compositor#3372.create_region(new id wl_region#3391) -[2618352.410] {Default Queue} -> wl_compositor#3372.create_region(new id wl_region#3392) -[2618352.414] {Default Queue} -> wl_region#3391.subtract(0, 0, 2, 2) -[2618352.418] {Default Queue} -> wl_region#3391.add(0, 0, 0, 0) -[2618352.423] {Default Queue} -> wl_surface#3367.set_opaque_region(wl_region#3392) -[2618352.427] {Default Queue} -> wl_surface#3367.set_input_region(wl_region#3391) -[2618352.431] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) -[2618352.435] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) -[2618352.443] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) -[2618352.447] {Default Queue} -> wl_surface#3367.commit() -[2618352.478] {Default Queue} -> wl_shm#3377.create_pool(new id wl_shm_pool#3393, fd 538, 640) -[2618352.485] {Default Queue} -> wl_shm#3377.create_pool(new id wl_shm_pool#3394, fd 539, 640) -[2618352.489] {Default Queue} -> wl_shm_pool#3393.create_buffer(new id wl_buffer#3395, 0, 10, 16, 40, 0) -[2618352.494] {Default Queue} -> wl_shm_pool#3394.create_buffer(new id wl_buffer#3396, 0, 10, 16, 40, 0) -[2618352.501] {Default Queue} -> wl_compositor#3372.create_surface(new id wl_surface#3397) -[2618352.505] {Default Queue} -> wl_surface#3397.attach(wl_buffer#3395, 0, 0) -[2618352.509] {Default Queue} -> wl_surface#3397.commit() -[2618352.515] {Default Queue} -> wl_surface#3397.attach(wl_buffer#3395, 0, 0) -[2618352.519] {Default Queue} -> wl_surface#3397.commit() -[2618352.526] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3398) -[2618352.531] {Default Queue} -> wl_display#1.sync(new id wl_callback#3399) -[2618355.531] {Default Queue} discarded wl_surface#3335.enter(wl_output#2297) -[2618355.544] {Default Queue} discarded wl_surface#3335.enter(wl_output#2329) -[2618355.550] {Default Queue} discarded wl_surface#3335.enter(wl_output#2361) -[2618355.565] {Default Queue} discarded wl_surface#3335.enter(wl_output#2393) -[2618355.575] {Default Queue} discarded wl_surface#3335.enter(wl_output#2425) -[2618355.581] {Default Queue} discarded wl_surface#3335.enter(wl_output#2457) -[2618355.587] {Default Queue} discarded wl_surface#3335.enter(wl_output#2489) -[2618355.594] {Default Queue} discarded wl_surface#3335.enter(wl_output#2521) -[2618355.600] {Default Queue} discarded wl_surface#3335.enter(wl_output#2553) -[2618355.607] {Default Queue} discarded wl_surface#3335.enter(wl_output#2585) -[2618355.614] {Default Queue} discarded wl_surface#3335.enter(wl_output#2617) -[2618355.621] {Default Queue} discarded wl_surface#3335.enter(wl_output#2649) -[2618355.628] {Default Queue} discarded wl_surface#3335.enter(wl_output#2681) -[2618355.634] {Default Queue} discarded wl_surface#3335.enter(wl_output#2713) -[2618355.641] {Default Queue} discarded wl_surface#3335.enter(wl_output#2745) -[2618355.648] {Default Queue} discarded wl_surface#3335.enter(wl_output#2777) -[2618355.655] {Default Queue} discarded wl_surface#3335.enter(wl_output#2809) -[2618355.661] {Default Queue} discarded wl_surface#3335.enter(wl_output#2841) -[2618355.668] {Default Queue} discarded wl_surface#3335.enter(wl_output#2873) -[2618355.674] {Default Queue} discarded wl_surface#3335.enter(wl_output#2905) -[2618355.681] {Default Queue} discarded wl_surface#3335.enter(wl_output#2937) -[2618355.687] {Default Queue} discarded wl_surface#3335.enter(wl_output#2969) -[2618355.694] {Default Queue} discarded wl_surface#3335.enter(wl_output#3001) -[2618355.700] {Default Queue} discarded wl_surface#3335.enter(wl_output#3033) -[2618355.707] {Default Queue} discarded wl_surface#3335.enter(wl_output#3065) -[2618355.714] {Default Queue} discarded wl_surface#3335.enter(wl_output#3097) -[2618355.721] {Default Queue} discarded wl_surface#3335.enter(wl_output#3129) -[2618355.729] {Default Queue} discarded wl_surface#3335.enter(wl_output#3161) -[2618355.735] {Default Queue} discarded wl_surface#3335.enter(wl_output#3193) -[2618355.742] {Default Queue} discarded wl_surface#3335.enter(wl_output#3225) -[2618355.748] {Default Queue} discarded wl_surface#3335.enter(wl_output#3257) -[2618355.755] {Default Queue} discarded wl_surface#3335.enter(wl_output#3289) -[2618355.762] {Default Queue} discarded wl_surface#3335.enter(wl_output#3321) -[2618355.769] {Default Queue} discarded wl_surface#3335.enter(wl_output#3353) -[2618355.943] {Display Queue} wl_display#1.delete_id(3399) -[2618355.959] {Default Queue} wl_keyboard#3368.keymap(1, fd 534, 68213) -[2618355.969] {Default Queue} wl_keyboard#3368.enter(566, wl_surface#19, array[0]) -[2618355.977] {Default Queue} wl_keyboard#3368.modifiers(566, 0, 0, 16, 0) -[2618355.985] {Default Queue} discarded wl_shm#3375.format(875709016) -[2618355.991] {Default Queue} discarded wl_shm#3375.format(1) -[2618355.998] {Default Queue} discarded wl_shm#3375.format(0) -[2618356.005] {Default Queue} discarded wl_shm#3375.format(875708993) -[2618356.011] {Default Queue} discarded wl_shm#3376.format(875709016) -[2618356.017] {Default Queue} discarded wl_shm#3376.format(1) -[2618356.024] {Default Queue} discarded wl_shm#3376.format(0) -[2618356.031] {Default Queue} discarded wl_shm#3376.format(875708993) -[2618356.038] {Default Queue} discarded wl_shm#3377.format(875709016) -[2618356.045] {Default Queue} discarded wl_shm#3377.format(1) -[2618356.052] {Default Queue} discarded wl_shm#3377.format(0) -[2618356.062] {Default Queue} discarded wl_shm#3377.format(875708993) -[2618356.068] {Default Queue} wl_seat#3384.capabilities(7) -[2618356.076] {Default Queue} -> wl_seat#3384.get_keyboard(new id wl_keyboard#3400) -[2618356.084] {Default Queue} -> wl_seat#3384.get_pointer(new id wl_pointer#3401) -[2618356.092] {Default Queue} -> wl_data_device_manager#3380.get_data_device(new id wl_data_device#3402, wl_seat#3384) -[2618356.101] {Default Queue} -> zwp_primary_selection_device_manager_v1#3382.get_device(new id zwp_primary_selection_device_v1#3403, wl_seat#3384) -[2618356.117] {Default Queue} wl_output#3385.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618356.134] {Default Queue} wl_output#3385.mode(3, 1280, 800, 60000) -[2618356.150] {Default Queue} discarded wl_surface#2727.enter(wl_output#3385) -[2618356.157] {Default Queue} discarded wl_surface#3.enter(wl_output#3385) -[2618356.163] {Default Queue} discarded wl_surface#999.enter(wl_output#3385) -[2618356.170] {Default Queue} discarded wl_surface#3079.enter(wl_output#3385) -[2618356.177] {Default Queue} discarded wl_surface#1191.enter(wl_output#3385) -[2618356.184] {Default Queue} discarded wl_surface#1159.enter(wl_output#3385) -[2618356.190] {Default Queue} discarded wl_surface#1703.enter(wl_output#3385) -[2618356.197] {Default Queue} discarded wl_surface#2215.enter(wl_output#3385) -[2618356.203] {Default Queue} discarded wl_surface#423.enter(wl_output#3385) -[2618356.210] {Default Queue} discarded wl_surface#1447.enter(wl_output#3385) -[2618356.216] {Default Queue} discarded wl_surface#3047.enter(wl_output#3385) -[2618356.223] {Default Queue} discarded wl_surface#2023.enter(wl_output#3385) -[2618356.229] {Default Queue} discarded wl_surface#1639.enter(wl_output#3385) -[2618356.235] {Default Queue} discarded wl_surface#1319.enter(wl_output#3385) -[2618356.242] {Default Queue} discarded wl_surface#1127.enter(wl_output#3385) -[2618356.249] {Default Queue} discarded wl_surface#2151.enter(wl_output#3385) -[2618356.255] {Default Queue} discarded wl_surface#2375.enter(wl_output#3385) -[2618356.261] {Default Queue} discarded wl_surface#2695.enter(wl_output#3385) -[2618356.268] {Default Queue} discarded wl_surface#2919.enter(wl_output#3385) -[2618356.274] {Default Queue} discarded wl_surface#1063.enter(wl_output#3385) -[2618356.280] {Default Queue} discarded wl_surface#455.enter(wl_output#3385) -[2618356.287] {Default Queue} discarded wl_surface#1575.enter(wl_output#3385) -[2618356.294] {Default Queue} discarded wl_surface#1799.enter(wl_output#3385) -[2618356.301] {Default Queue} discarded wl_surface#1415.enter(wl_output#3385) -[2618356.308] {Default Queue} discarded wl_surface#2439.enter(wl_output#3385) -[2618356.315] {Default Queue} discarded wl_surface#2279.enter(wl_output#3385) -[2618356.323] {Default Queue} discarded wl_surface#1831.enter(wl_output#3385) -[2618356.331] {Default Queue} discarded wl_surface#903.enter(wl_output#3385) -[2618356.338] {Default Queue} discarded wl_surface#2663.enter(wl_output#3385) -[2618356.345] {Default Queue} discarded wl_surface#775.enter(wl_output#3385) -[2618356.352] {Default Queue} discarded wl_surface#1991.enter(wl_output#3385) -[2618356.360] {Default Queue} discarded wl_surface#1543.enter(wl_output#3385) -[2618356.367] {Default Queue} discarded wl_surface#135.enter(wl_output#3385) -[2618356.375] {Default Queue} discarded wl_surface#1287.enter(wl_output#3385) -[2618356.382] {Default Queue} discarded wl_surface#1031.enter(wl_output#3385) -[2618356.387] {Default Queue} discarded wl_surface#615.enter(wl_output#3385) -[2618356.393] {Default Queue} discarded wl_surface#3111.enter(wl_output#3385) -[2618356.399] {Default Queue} discarded wl_surface#231.enter(wl_output#3385) -[2618356.405] {Default Queue} discarded wl_surface#2343.enter(wl_output#3385) -[2618356.411] {Default Queue} discarded wl_surface#1863.enter(wl_output#3385) -[2618356.417] {Default Queue} discarded wl_surface#359.enter(wl_output#3385) -[2618356.423] {Default Queue} discarded wl_surface#2983.enter(wl_output#3385) -[2618356.429] {Default Queue} discarded wl_surface#583.enter(wl_output#3385) -[2618356.435] {Default Queue} discarded wl_surface#743.enter(wl_output#3385) -[2618356.441] {Default Queue} discarded wl_surface#3143.enter(wl_output#3385) -[2618356.446] {Default Queue} discarded wl_surface#2535.enter(wl_output#3385) -[2618356.452] {Default Queue} discarded wl_surface#967.enter(wl_output#3385) -[2618356.458] {Default Queue} discarded wl_surface#103.enter(wl_output#3385) -[2618356.463] {Default Queue} discarded wl_surface#3271.enter(wl_output#3385) -[2618356.469] {Default Queue} discarded wl_surface#327.enter(wl_output#3385) -[2618356.475] {Default Queue} discarded wl_surface#43.enter(wl_output#3385) -[2618356.481] {Default Queue} discarded wl_surface#2247.enter(wl_output#3385) -[2618356.492] {Default Queue} discarded wl_surface#807.enter(wl_output#3385) -[2618356.500] {Default Queue} discarded wl_surface#19.enter(wl_output#3385) -[2618356.506] {Default Queue} discarded wl_surface#2951.enter(wl_output#3385) -[2618356.512] {Default Queue} discarded wl_surface#1511.enter(wl_output#3385) -[2618356.518] {Default Queue} discarded wl_surface#199.enter(wl_output#3385) -[2618356.523] {Default Queue} discarded wl_surface#391.enter(wl_output#3385) -[2618356.529] {Default Queue} discarded wl_surface#935.enter(wl_output#3385) -[2618356.535] {Default Queue} discarded wl_surface#2823.enter(wl_output#3385) -[2618356.540] {Default Queue} discarded wl_surface#3015.enter(wl_output#3385) -[2618356.546] {Default Queue} discarded wl_surface#1671.enter(wl_output#3385) -[2618356.552] {Default Queue} discarded wl_surface#1351.enter(wl_output#3385) -[2618356.557] {Default Queue} discarded wl_surface#711.enter(wl_output#3385) -[2618356.561] {Default Queue} discarded wl_surface#3175.enter(wl_output#3385) -[2618356.566] {Default Queue} discarded wl_surface#1223.enter(wl_output#3385) -[2618356.570] {Default Queue} discarded wl_surface#1927.enter(wl_output#3385) -[2618356.574] {Default Queue} discarded wl_surface#871.enter(wl_output#3385) -[2618356.578] {Default Queue} discarded wl_surface#1895.enter(wl_output#3385) -[2618356.582] {Default Queue} discarded wl_surface#263.enter(wl_output#3385) -[2618356.586] {Default Queue} discarded wl_surface#551.enter(wl_output#3385) -[2618356.589] {Default Queue} discarded wl_surface#1735.enter(wl_output#3385) -[2618356.593] {Default Queue} discarded wl_surface#1479.enter(wl_output#3385) -[2618356.597] {Default Queue} discarded wl_surface#1772.enter(wl_output#3385) -[2618356.602] {Default Queue} discarded wl_surface#2599.enter(wl_output#3385) -[2618356.607] {Default Queue} discarded wl_surface#2631.enter(wl_output#3385) -[2618356.613] {Default Queue} discarded wl_surface#1959.enter(wl_output#3385) -[2618356.618] {Default Queue} discarded wl_surface#647.enter(wl_output#3385) -[2618356.622] {Default Queue} discarded wl_surface#2055.enter(wl_output#3385) -[2618356.627] {Default Queue} discarded wl_surface#2508.enter(wl_output#3385) -[2618356.632] {Default Queue} discarded wl_surface#71.enter(wl_output#3385) -[2618356.637] {Default Queue} discarded wl_surface#2759.enter(wl_output#3385) -[2618356.643] {Default Queue} discarded wl_surface#2791.enter(wl_output#3385) -[2618356.648] {Default Queue} discarded wl_surface#2887.enter(wl_output#3385) -[2618356.653] {Default Queue} discarded wl_surface#2183.enter(wl_output#3385) -[2618356.658] {Default Queue} discarded wl_surface#2567.enter(wl_output#3385) -[2618356.664] {Default Queue} discarded wl_surface#839.enter(wl_output#3385) -[2618356.668] {Default Queue} discarded wl_surface#1607.enter(wl_output#3385) -[2618356.672] {Default Queue} discarded wl_surface#1095.enter(wl_output#3385) -[2618356.676] {Default Queue} discarded wl_surface#1383.enter(wl_output#3385) -[2618356.680] {Default Queue} discarded wl_surface#487.enter(wl_output#3385) -[2618356.684] {Default Queue} discarded wl_surface#2311.enter(wl_output#3385) -[2618356.688] {Default Queue} discarded wl_surface#519.enter(wl_output#3385) -[2618356.692] {Default Queue} discarded wl_surface#3335.enter(wl_output#3385) -[2618356.696] {Default Queue} discarded wl_surface#3239.enter(wl_output#3385) -[2618356.700] {Default Queue} discarded wl_surface#2087.enter(wl_output#3385) -[2618356.703] {Default Queue} discarded wl_surface#2471.enter(wl_output#3385) -[2618356.707] {Default Queue} discarded wl_surface#295.enter(wl_output#3385) -[2618356.711] {Default Queue} discarded wl_surface#167.enter(wl_output#3385) -[2618356.716] {Default Queue} discarded wl_surface#1255.enter(wl_output#3385) -[2618356.719] {Default Queue} discarded wl_surface#2855.enter(wl_output#3385) -[2618356.723] {Default Queue} discarded wl_surface#3303.enter(wl_output#3385) -[2618356.728] {Default Queue} discarded wl_surface#679.enter(wl_output#3385) -[2618356.732] {Default Queue} discarded wl_surface#2407.enter(wl_output#3385) -[2618356.737] {Default Queue} discarded wl_surface#3207.enter(wl_output#3385) -[2618356.744] {Default Queue} discarded wl_surface#2119.enter(wl_output#3385) -[2618356.751] {Default Queue} wl_registry#3398.global(1, "wl_compositor", 6) -[2618356.757] {Default Queue} -> wl_registry#3398.bind(1, "wl_compositor", 1, new id [unknown]#3404) -[2618356.762] {Default Queue} wl_registry#3398.global(2, "wl_subcompositor", 1) -[2618356.766] {Default Queue} -> wl_registry#3398.bind(2, "wl_subcompositor", 1, new id [unknown]#3405) -[2618356.771] {Default Queue} wl_registry#3398.global(3, "xdg_wm_base", 6) -[2618356.776] {Default Queue} -> wl_registry#3398.bind(3, "xdg_wm_base", 1, new id [unknown]#3406) -[2618356.781] {Default Queue} wl_registry#3398.global(6, "zwlr_layer_shell_v1", 5) -[2618356.785] {Default Queue} wl_registry#3398.global(7, "ext_session_lock_manager_v1", 1) -[2618356.790] {Default Queue} wl_registry#3398.global(8, "wl_shm", 2) -[2618356.795] {Default Queue} -> wl_registry#3398.bind(8, "wl_shm", 1, new id [unknown]#3407) -[2618356.799] {Default Queue} -> wl_registry#3398.bind(8, "wl_shm", 1, new id [unknown]#3408) -[2618356.804] {Default Queue} -> wl_registry#3398.bind(8, "wl_shm", 1, new id [unknown]#3409) -[2618356.808] {Default Queue} wl_registry#3398.global(9, "zxdg_output_manager_v1", 3) -[2618356.812] {Default Queue} wl_registry#3398.global(10, "wp_fractional_scale_manager_v1", 1) -[2618356.817] {Default Queue} wl_registry#3398.global(11, "zwp_tablet_manager_v2", 1) -[2618356.821] {Default Queue} wl_registry#3398.global(12, "zwp_pointer_gestures_v1", 3) -[2618356.825] {Default Queue} wl_registry#3398.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618356.830] {Default Queue} -> wl_registry#3398.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3410) -[2618356.834] {Default Queue} wl_registry#3398.global(14, "zwp_pointer_constraints_v1", 1) -[2618356.839] {Default Queue} -> wl_registry#3398.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3411) -[2618356.844] {Default Queue} wl_registry#3398.global(15, "ext_idle_notifier_v1", 2) -[2618356.848] {Default Queue} wl_registry#3398.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618356.852] {Default Queue} wl_registry#3398.global(17, "wl_data_device_manager", 3) -[2618356.857] {Default Queue} -> wl_registry#3398.bind(17, "wl_data_device_manager", 2, new id [unknown]#3412) -[2618356.863] {Default Queue} -> wl_data_device_manager#3412.create_data_source(new id wl_data_source#3413) -[2618356.867] {Default Queue} -> wl_data_source#3413.offer("text/plain") -[2618356.880] {Default Queue} -> wl_data_source#3413.offer("text/plain;charset=utf-8") -[2618356.884] {Default Queue} -> wl_data_source#3413.offer("TEXT") -[2618356.888] {Default Queue} -> wl_data_source#3413.offer("STRING") -[2618356.892] {Default Queue} -> wl_data_source#3413.offer("UTF8_STRING") -[2618356.896] {Default Queue} wl_registry#3398.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618356.902] {Default Queue} -> wl_registry#3398.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3414) -[2618356.910] {Default Queue} -> zwp_primary_selection_device_manager_v1#3414.create_source(new id zwp_primary_selection_source_v1#3415) -[2618356.918] {Default Queue} -> zwp_primary_selection_source_v1#3415.offer("text/plain") -[2618356.922] {Default Queue} -> zwp_primary_selection_source_v1#3415.offer("text/plain;charset=utf-8") -[2618356.926] {Default Queue} -> zwp_primary_selection_source_v1#3415.offer("TEXT") -[2618356.930] {Default Queue} -> zwp_primary_selection_source_v1#3415.offer("STRING") -[2618356.934] {Default Queue} -> zwp_primary_selection_source_v1#3415.offer("UTF8_STRING") -[2618356.938] {Default Queue} wl_registry#3398.global(19, "zwlr_data_control_manager_v1", 2) -[2618356.942] {Default Queue} wl_registry#3398.global(20, "ext_data_control_manager_v1", 1) -[2618356.947] {Default Queue} wl_registry#3398.global(21, "wp_presentation", 2) -[2618356.952] {Default Queue} wl_registry#3398.global(22, "wp_security_context_manager_v1", 1) -[2618356.962] {Default Queue} wl_registry#3398.global(23, "zwp_text_input_manager_v3", 1) -[2618356.977] {Default Queue} wl_registry#3398.global(24, "zwp_input_method_manager_v2", 1) -[2618356.983] {Default Queue} wl_registry#3398.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618356.987] {Default Queue} wl_registry#3398.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618356.992] {Default Queue} wl_registry#3398.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618356.996] {Default Queue} wl_registry#3398.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618357.001] {Default Queue} wl_registry#3398.global(29, "ext_workspace_manager_v1", 1) -[2618357.006] {Default Queue} wl_registry#3398.global(30, "zwlr_output_manager_v1", 4) -[2618357.010] {Default Queue} wl_registry#3398.global(31, "zwlr_screencopy_manager_v1", 3) -[2618357.015] {Default Queue} wl_registry#3398.global(32, "wp_viewporter", 1) -[2618357.019] {Default Queue} wl_registry#3398.global(33, "zxdg_exporter_v2", 1) -[2618357.023] {Default Queue} wl_registry#3398.global(34, "zxdg_importer_v2", 1) -[2618357.027] {Default Queue} wl_registry#3398.global(36, "xdg_activation_v1", 1) -[2618357.032] {Default Queue} wl_registry#3398.global(37, "mutter_x11_interop", 1) -[2618357.036] {Default Queue} wl_registry#3398.global(38, "wl_seat", 9) -[2618357.041] {Default Queue} -> wl_registry#3398.bind(38, "wl_seat", 1, new id [unknown]#3416) -[2618357.046] {Default Queue} wl_registry#3398.global(39, "wp_cursor_shape_manager_v1", 2) -[2618357.050] {Default Queue} wl_registry#3398.global(40, "wl_output", 4) -[2618357.054] {Default Queue} -> wl_registry#3398.bind(40, "wl_output", 1, new id [unknown]#3417) -[2618357.059] {Default Queue} wl_callback#3399.done(0) -[2618357.063] {Default Queue} discarded wl_surface#3367.enter(wl_output#18) -[2618357.067] {Default Queue} discarded wl_surface#3367.enter(wl_output#57) -[2618357.072] {Default Queue} discarded wl_surface#3367.enter(wl_output#89) -[2618357.076] {Default Queue} discarded wl_surface#3367.enter(wl_output#121) -[2618357.079] {Default Queue} discarded wl_surface#3367.enter(wl_output#153) -[2618357.083] {Default Queue} discarded wl_surface#3367.enter(wl_output#185) -[2618357.087] {Default Queue} discarded wl_surface#3367.enter(wl_output#217) -[2618357.091] {Default Queue} discarded wl_surface#3367.enter(wl_output#249) -[2618357.095] {Default Queue} discarded wl_surface#3367.enter(wl_output#281) -[2618357.099] {Default Queue} discarded wl_surface#3367.enter(wl_output#313) -[2618357.103] {Default Queue} discarded wl_surface#3367.enter(wl_output#345) -[2618357.107] {Default Queue} discarded wl_surface#3367.enter(wl_output#377) -[2618357.111] {Default Queue} discarded wl_surface#3367.enter(wl_output#409) -[2618357.115] {Default Queue} discarded wl_surface#3367.enter(wl_output#441) -[2618357.119] {Default Queue} discarded wl_surface#3367.enter(wl_output#473) -[2618357.123] {Default Queue} discarded wl_surface#3367.enter(wl_output#505) -[2618357.127] {Default Queue} discarded wl_surface#3367.enter(wl_output#537) -[2618357.131] {Default Queue} discarded wl_surface#3367.enter(wl_output#569) -[2618357.135] {Default Queue} discarded wl_surface#3367.enter(wl_output#601) -[2618357.139] {Default Queue} discarded wl_surface#3367.enter(wl_output#633) -[2618357.143] {Default Queue} discarded wl_surface#3367.enter(wl_output#665) -[2618357.146] {Default Queue} discarded wl_surface#3367.enter(wl_output#697) -[2618357.150] {Default Queue} discarded wl_surface#3367.enter(wl_output#729) -[2618357.154] {Default Queue} discarded wl_surface#3367.enter(wl_output#761) -[2618357.158] {Default Queue} discarded wl_surface#3367.enter(wl_output#793) -[2618357.162] {Default Queue} discarded wl_surface#3367.enter(wl_output#825) -[2618357.166] {Default Queue} discarded wl_surface#3367.enter(wl_output#857) -[2618357.170] {Default Queue} discarded wl_surface#3367.enter(wl_output#889) -[2618357.173] {Default Queue} discarded wl_surface#3367.enter(wl_output#921) -[2618357.178] {Default Queue} discarded wl_surface#3367.enter(wl_output#953) -[2618357.181] {Default Queue} discarded wl_surface#3367.enter(wl_output#985) -[2618357.185] {Default Queue} discarded wl_surface#3367.enter(wl_output#1017) -[2618357.192] {Default Queue} discarded wl_surface#3367.enter(wl_output#1049) -[2618357.198] {Default Queue} discarded wl_surface#3367.enter(wl_output#1081) -[2618357.203] {Default Queue} discarded wl_surface#3367.enter(wl_output#1113) -[2618357.208] {Default Queue} discarded wl_surface#3367.enter(wl_output#1145) -[2618357.211] {Default Queue} discarded wl_surface#3367.enter(wl_output#1177) -[2618357.216] {Default Queue} discarded wl_surface#3367.enter(wl_output#1209) -[2618357.220] {Default Queue} discarded wl_surface#3367.enter(wl_output#1241) -[2618357.224] {Default Queue} discarded wl_surface#3367.enter(wl_output#1273) -[2618357.228] {Default Queue} discarded wl_surface#3367.enter(wl_output#1305) -[2618357.231] {Default Queue} discarded wl_surface#3367.enter(wl_output#1337) -[2618357.236] {Default Queue} discarded wl_surface#3367.enter(wl_output#1369) -[2618357.240] {Default Queue} discarded wl_surface#3367.enter(wl_output#1401) -[2618357.243] {Default Queue} discarded wl_surface#3367.enter(wl_output#1433) -[2618357.247] {Default Queue} discarded wl_surface#3367.enter(wl_output#1465) -[2618357.251] {Default Queue} discarded wl_surface#3367.enter(wl_output#1497) -[2618357.257] {Default Queue} discarded wl_surface#3367.enter(wl_output#1529) -[2618357.261] {Default Queue} discarded wl_surface#3367.enter(wl_output#1561) -[2618357.264] {Default Queue} discarded wl_surface#3367.enter(wl_output#1593) -[2618357.268] {Default Queue} discarded wl_surface#3367.enter(wl_output#1625) -[2618357.272] {Default Queue} discarded wl_surface#3367.enter(wl_output#1657) -[2618357.276] {Default Queue} discarded wl_surface#3367.enter(wl_output#1689) -[2618357.280] {Default Queue} discarded wl_surface#3367.enter(wl_output#1721) -[2618357.284] {Default Queue} discarded wl_surface#3367.enter(wl_output#1753) -[2618357.288] {Default Queue} discarded wl_surface#3367.enter(wl_output#1785) -[2618357.292] {Default Queue} discarded wl_surface#3367.enter(wl_output#1817) -[2618357.296] {Default Queue} discarded wl_surface#3367.enter(wl_output#1849) -[2618357.300] {Default Queue} discarded wl_surface#3367.enter(wl_output#1881) -[2618357.304] {Default Queue} discarded wl_surface#3367.enter(wl_output#1913) -[2618357.307] {Default Queue} discarded wl_surface#3367.enter(wl_output#1945) -[2618357.311] {Default Queue} discarded wl_surface#3367.enter(wl_output#1977) -[2618357.316] {Default Queue} discarded wl_surface#3367.enter(wl_output#2009) -[2618357.319] {Default Queue} discarded wl_surface#3367.enter(wl_output#2041) -[2618357.323] {Default Queue} discarded wl_surface#3367.enter(wl_output#2073) -[2618357.327] {Default Queue} discarded wl_surface#3367.enter(wl_output#2105) -[2618357.331] {Default Queue} discarded wl_surface#3367.enter(wl_output#2137) -[2618357.335] {Default Queue} discarded wl_surface#3367.enter(wl_output#2169) -[2618357.339] {Default Queue} discarded wl_surface#3367.enter(wl_output#2201) -[2618357.343] {Default Queue} discarded wl_surface#3367.enter(wl_output#2233) -[2618357.347] {Default Queue} -> wl_compositor#3372.create_surface(new id wl_surface#3399) -[2618357.351] {Default Queue} -> wl_subcompositor#3405.get_subsurface(new id wl_subsurface#3418, wl_surface#3399, wl_surface#3367) -[2618357.359] {Default Queue} -> wl_subsurface#3418.set_desync() -[2618357.363] {Default Queue} -> wl_subsurface#3418.set_position(-14, 0) -[2618357.368] {Default Queue} -> wl_subsurface#3418.place_above(wl_surface#3367) -[2618357.417] {Default Queue} -> wl_shm#3407.create_pool(new id wl_shm_pool#3419, fd 539, 128) -[2618357.423] {Default Queue} -> wl_shm#3407.create_pool(new id wl_shm_pool#3420, fd 540, 128) -[2618357.428] {Default Queue} -> wl_shm_pool#3419.create_buffer(new id wl_buffer#3421, 0, 16, 2, 64, 0) -[2618357.433] {Default Queue} -> wl_shm_pool#3420.create_buffer(new id wl_buffer#3422, 0, 16, 2, 64, 0) -[2618357.440] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3421, 0, 0) -[2618357.445] {Default Queue} -> wl_surface#3399.commit() -[2618357.450] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3421, 0, 0) -[2618357.455] {Default Queue} -> wl_surface#3399.commit() -[2618357.462] {Default Queue} -> wl_compositor#3404.create_region(new id wl_region#3423) -[2618357.468] {Default Queue} -> wl_compositor#3404.create_region(new id wl_region#3424) -[2618357.472] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) -[2618357.478] {Default Queue} -> wl_region#3423.add(0, 0, 0, 0) -[2618357.482] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618357.486] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618357.490] {Default Queue} -> wl_surface#3399.damage(0, 0, 16, 2) -[2618357.495] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) -[2618357.502] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3421, 0, 0) -[2618357.506] {Default Queue} -> wl_surface#3399.commit() -[2618357.547] {Default Queue} -> wl_shm#3409.create_pool(new id wl_shm_pool#3425, fd 543, 640) -[2618357.553] {Default Queue} -> wl_shm#3409.create_pool(new id wl_shm_pool#3426, fd 544, 640) -[2618357.558] {Default Queue} -> wl_shm_pool#3425.create_buffer(new id wl_buffer#3427, 0, 10, 16, 40, 0) -[2618357.563] {Default Queue} -> wl_shm_pool#3426.create_buffer(new id wl_buffer#3428, 0, 10, 16, 40, 0) -[2618357.570] {Default Queue} -> wl_compositor#3404.create_surface(new id wl_surface#3429) -[2618357.574] {Default Queue} -> wl_surface#3429.attach(wl_buffer#3427, 0, 0) -[2618357.579] {Default Queue} -> wl_surface#3429.commit() -[2618357.585] {Default Queue} -> wl_surface#3429.attach(wl_buffer#3427, 0, 0) -[2618357.589] {Default Queue} -> wl_surface#3429.commit() -[2618357.598] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3430) -[2618357.602] {Default Queue} -> wl_display#1.sync(new id wl_callback#3431) -[2618360.544] {Default Queue} discarded wl_surface#3367.enter(wl_output#2265) -[2618360.555] {Default Queue} discarded wl_surface#3367.enter(wl_output#2297) -[2618360.560] {Default Queue} discarded wl_surface#3367.enter(wl_output#2329) -[2618360.565] {Default Queue} discarded wl_surface#3367.enter(wl_output#2361) -[2618360.569] {Default Queue} discarded wl_surface#3367.enter(wl_output#2393) -[2618360.573] {Default Queue} discarded wl_surface#3367.enter(wl_output#2425) -[2618360.577] {Default Queue} discarded wl_surface#3367.enter(wl_output#2457) -[2618360.581] {Default Queue} discarded wl_surface#3367.enter(wl_output#2489) -[2618360.585] {Default Queue} discarded wl_surface#3367.enter(wl_output#2521) -[2618360.589] {Default Queue} discarded wl_surface#3367.enter(wl_output#2553) -[2618360.593] {Default Queue} discarded wl_surface#3367.enter(wl_output#2585) -[2618360.597] {Default Queue} discarded wl_surface#3367.enter(wl_output#2617) -[2618360.601] {Default Queue} discarded wl_surface#3367.enter(wl_output#2649) -[2618360.604] {Default Queue} discarded wl_surface#3367.enter(wl_output#2681) -[2618360.608] {Default Queue} discarded wl_surface#3367.enter(wl_output#2713) -[2618360.613] {Default Queue} discarded wl_surface#3367.enter(wl_output#2745) -[2618360.617] {Default Queue} discarded wl_surface#3367.enter(wl_output#2777) -[2618360.621] {Default Queue} discarded wl_surface#3367.enter(wl_output#2809) -[2618360.624] {Default Queue} discarded wl_surface#3367.enter(wl_output#2841) -[2618360.628] {Default Queue} discarded wl_surface#3367.enter(wl_output#2873) -[2618360.632] {Default Queue} discarded wl_surface#3367.enter(wl_output#2905) -[2618360.636] {Default Queue} discarded wl_surface#3367.enter(wl_output#2937) -[2618360.640] {Default Queue} discarded wl_surface#3367.enter(wl_output#2969) -[2618360.644] {Default Queue} discarded wl_surface#3367.enter(wl_output#3001) -[2618360.648] {Default Queue} discarded wl_surface#3367.enter(wl_output#3033) -[2618360.652] {Default Queue} discarded wl_surface#3367.enter(wl_output#3065) -[2618360.656] {Default Queue} discarded wl_surface#3367.enter(wl_output#3097) -[2618360.660] {Default Queue} discarded wl_surface#3367.enter(wl_output#3129) -[2618360.664] {Default Queue} discarded wl_surface#3367.enter(wl_output#3161) -[2618360.668] {Default Queue} discarded wl_surface#3367.enter(wl_output#3193) -[2618360.671] {Default Queue} discarded wl_surface#3367.enter(wl_output#3225) -[2618360.683] {Default Queue} discarded wl_surface#3367.enter(wl_output#3257) -[2618360.690] {Default Queue} discarded wl_surface#3367.enter(wl_output#3289) -[2618360.694] {Default Queue} discarded wl_surface#3367.enter(wl_output#3321) -[2618360.698] {Default Queue} discarded wl_surface#3367.enter(wl_output#3353) -[2618360.702] {Default Queue} discarded wl_surface#3367.enter(wl_output#3385) -[2618360.875] {Display Queue} wl_display#1.delete_id(3431) -[2618360.882] {Default Queue} wl_keyboard#3400.keymap(1, fd 539, 68213) -[2618360.887] {Default Queue} wl_keyboard#3400.enter(566, wl_surface#19, array[0]) -[2618360.893] {Default Queue} wl_keyboard#3400.modifiers(566, 0, 0, 16, 0) -[2618360.898] {Default Queue} discarded wl_shm#3407.format(875709016) -[2618360.902] {Default Queue} discarded wl_shm#3407.format(1) -[2618360.906] {Default Queue} discarded wl_shm#3407.format(0) -[2618360.910] {Default Queue} discarded wl_shm#3407.format(875708993) -[2618360.914] {Default Queue} discarded wl_shm#3408.format(875709016) -[2618360.918] {Default Queue} discarded wl_shm#3408.format(1) -[2618360.922] {Default Queue} discarded wl_shm#3408.format(0) -[2618360.925] {Default Queue} discarded wl_shm#3408.format(875708993) -[2618360.929] {Default Queue} discarded wl_shm#3409.format(875709016) -[2618360.933] {Default Queue} discarded wl_shm#3409.format(1) -[2618360.937] {Default Queue} discarded wl_shm#3409.format(0) -[2618360.941] {Default Queue} discarded wl_shm#3409.format(875708993) -[2618360.945] {Default Queue} wl_seat#3416.capabilities(7) -[2618360.949] {Default Queue} -> wl_seat#3416.get_keyboard(new id wl_keyboard#3432) -[2618360.954] {Default Queue} -> wl_seat#3416.get_pointer(new id wl_pointer#3433) -[2618360.958] {Default Queue} -> wl_data_device_manager#3412.get_data_device(new id wl_data_device#3434, wl_seat#3416) -[2618360.963] {Default Queue} -> zwp_primary_selection_device_manager_v1#3414.get_device(new id zwp_primary_selection_device_v1#3435, wl_seat#3416) -[2618360.971] {Default Queue} wl_output#3417.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618360.976] {Default Queue} wl_output#3417.mode(3, 1280, 800, 60000) -[2618360.981] {Default Queue} discarded wl_surface#2727.enter(wl_output#3417) -[2618360.985] {Default Queue} discarded wl_surface#3.enter(wl_output#3417) -[2618360.989] {Default Queue} discarded wl_surface#999.enter(wl_output#3417) -[2618360.993] {Default Queue} discarded wl_surface#3079.enter(wl_output#3417) -[2618360.997] {Default Queue} discarded wl_surface#1191.enter(wl_output#3417) -[2618361.001] {Default Queue} discarded wl_surface#1159.enter(wl_output#3417) -[2618361.005] {Default Queue} discarded wl_surface#1703.enter(wl_output#3417) -[2618361.009] {Default Queue} discarded wl_surface#2215.enter(wl_output#3417) -[2618361.013] {Default Queue} discarded wl_surface#423.enter(wl_output#3417) -[2618361.017] {Default Queue} discarded wl_surface#1447.enter(wl_output#3417) -[2618361.021] {Default Queue} discarded wl_surface#3047.enter(wl_output#3417) -[2618361.025] {Default Queue} discarded wl_surface#2023.enter(wl_output#3417) -[2618361.029] {Default Queue} discarded wl_surface#1639.enter(wl_output#3417) -[2618361.033] {Default Queue} discarded wl_surface#1319.enter(wl_output#3417) -[2618361.038] {Default Queue} discarded wl_surface#1127.enter(wl_output#3417) -[2618361.043] {Default Queue} discarded wl_surface#2151.enter(wl_output#3417) -[2618361.049] {Default Queue} discarded wl_surface#2375.enter(wl_output#3417) -[2618361.054] {Default Queue} discarded wl_surface#2695.enter(wl_output#3417) -[2618361.059] {Default Queue} discarded wl_surface#2919.enter(wl_output#3417) -[2618361.063] {Default Queue} discarded wl_surface#1063.enter(wl_output#3417) -[2618361.068] {Default Queue} discarded wl_surface#455.enter(wl_output#3417) -[2618361.073] {Default Queue} discarded wl_surface#1575.enter(wl_output#3417) -[2618361.078] {Default Queue} discarded wl_surface#1799.enter(wl_output#3417) -[2618361.083] {Default Queue} discarded wl_surface#1415.enter(wl_output#3417) -[2618361.088] {Default Queue} discarded wl_surface#2439.enter(wl_output#3417) -[2618361.097] {Default Queue} discarded wl_surface#2279.enter(wl_output#3417) -[2618361.105] {Default Queue} discarded wl_surface#1831.enter(wl_output#3417) -[2618361.111] {Default Queue} discarded wl_surface#903.enter(wl_output#3417) -[2618361.115] {Default Queue} discarded wl_surface#2663.enter(wl_output#3417) -[2618361.119] {Default Queue} discarded wl_surface#775.enter(wl_output#3417) -[2618361.123] {Default Queue} discarded wl_surface#1991.enter(wl_output#3417) -[2618361.127] {Default Queue} discarded wl_surface#1543.enter(wl_output#3417) -[2618361.131] {Default Queue} discarded wl_surface#135.enter(wl_output#3417) -[2618361.135] {Default Queue} discarded wl_surface#1287.enter(wl_output#3417) -[2618361.139] {Default Queue} discarded wl_surface#1031.enter(wl_output#3417) -[2618361.142] {Default Queue} discarded wl_surface#615.enter(wl_output#3417) -[2618361.146] {Default Queue} discarded wl_surface#3111.enter(wl_output#3417) -[2618361.150] {Default Queue} discarded wl_surface#231.enter(wl_output#3417) -[2618361.154] {Default Queue} discarded wl_surface#2343.enter(wl_output#3417) -[2618361.158] {Default Queue} discarded wl_surface#1863.enter(wl_output#3417) -[2618361.162] {Default Queue} discarded wl_surface#359.enter(wl_output#3417) -[2618361.166] {Default Queue} discarded wl_surface#2983.enter(wl_output#3417) -[2618361.170] {Default Queue} discarded wl_surface#583.enter(wl_output#3417) -[2618361.173] {Default Queue} discarded wl_surface#743.enter(wl_output#3417) -[2618361.178] {Default Queue} discarded wl_surface#3143.enter(wl_output#3417) -[2618361.182] {Default Queue} discarded wl_surface#2535.enter(wl_output#3417) -[2618361.186] {Default Queue} discarded wl_surface#3367.enter(wl_output#3417) -[2618361.189] {Default Queue} discarded wl_surface#967.enter(wl_output#3417) -[2618361.193] {Default Queue} discarded wl_surface#103.enter(wl_output#3417) -[2618361.197] {Default Queue} discarded wl_surface#3271.enter(wl_output#3417) -[2618361.201] {Default Queue} discarded wl_surface#327.enter(wl_output#3417) -[2618361.205] {Default Queue} discarded wl_surface#43.enter(wl_output#3417) -[2618361.209] {Default Queue} discarded wl_surface#2247.enter(wl_output#3417) -[2618361.213] {Default Queue} discarded wl_surface#807.enter(wl_output#3417) -[2618361.216] {Default Queue} discarded wl_surface#19.enter(wl_output#3417) -[2618361.220] {Default Queue} discarded wl_surface#2951.enter(wl_output#3417) -[2618361.224] {Default Queue} discarded wl_surface#1511.enter(wl_output#3417) -[2618361.229] {Default Queue} discarded wl_surface#199.enter(wl_output#3417) -[2618361.232] {Default Queue} discarded wl_surface#391.enter(wl_output#3417) -[2618361.236] {Default Queue} discarded wl_surface#935.enter(wl_output#3417) -[2618361.240] {Default Queue} discarded wl_surface#2823.enter(wl_output#3417) -[2618361.244] {Default Queue} discarded wl_surface#3015.enter(wl_output#3417) -[2618361.248] {Default Queue} discarded wl_surface#1671.enter(wl_output#3417) -[2618361.252] {Default Queue} discarded wl_surface#1351.enter(wl_output#3417) -[2618361.256] {Default Queue} discarded wl_surface#711.enter(wl_output#3417) -[2618361.260] {Default Queue} discarded wl_surface#3175.enter(wl_output#3417) -[2618361.264] {Default Queue} discarded wl_surface#1223.enter(wl_output#3417) -[2618361.268] {Default Queue} discarded wl_surface#1927.enter(wl_output#3417) -[2618361.272] {Default Queue} discarded wl_surface#871.enter(wl_output#3417) -[2618361.276] {Default Queue} discarded wl_surface#1895.enter(wl_output#3417) -[2618361.280] {Default Queue} discarded wl_surface#263.enter(wl_output#3417) -[2618361.284] {Default Queue} discarded wl_surface#551.enter(wl_output#3417) -[2618361.288] {Default Queue} discarded wl_surface#1735.enter(wl_output#3417) -[2618361.292] {Default Queue} discarded wl_surface#1479.enter(wl_output#3417) -[2618361.296] {Default Queue} discarded wl_surface#1772.enter(wl_output#3417) -[2618361.299] {Default Queue} discarded wl_surface#2599.enter(wl_output#3417) -[2618361.303] {Default Queue} discarded wl_surface#2631.enter(wl_output#3417) -[2618361.307] {Default Queue} discarded wl_surface#1959.enter(wl_output#3417) -[2618361.314] {Default Queue} discarded wl_surface#647.enter(wl_output#3417) -[2618361.320] {Default Queue} discarded wl_surface#2055.enter(wl_output#3417) -[2618361.324] {Default Queue} discarded wl_surface#2508.enter(wl_output#3417) -[2618361.328] {Default Queue} discarded wl_surface#71.enter(wl_output#3417) -[2618361.331] {Default Queue} discarded wl_surface#2759.enter(wl_output#3417) -[2618361.335] {Default Queue} discarded wl_surface#2791.enter(wl_output#3417) -[2618361.339] {Default Queue} discarded wl_surface#2887.enter(wl_output#3417) -[2618361.343] {Default Queue} discarded wl_surface#2183.enter(wl_output#3417) -[2618361.347] {Default Queue} discarded wl_surface#2567.enter(wl_output#3417) -[2618361.351] {Default Queue} discarded wl_surface#839.enter(wl_output#3417) -[2618361.355] {Default Queue} discarded wl_surface#1607.enter(wl_output#3417) -[2618361.359] {Default Queue} discarded wl_surface#1095.enter(wl_output#3417) -[2618361.362] {Default Queue} discarded wl_surface#1383.enter(wl_output#3417) -[2618361.366] {Default Queue} discarded wl_surface#487.enter(wl_output#3417) -[2618361.370] {Default Queue} discarded wl_surface#2311.enter(wl_output#3417) -[2618361.374] {Default Queue} discarded wl_surface#519.enter(wl_output#3417) -[2618361.378] {Default Queue} discarded wl_surface#3335.enter(wl_output#3417) -[2618361.382] {Default Queue} discarded wl_surface#3239.enter(wl_output#3417) -[2618361.386] {Default Queue} discarded wl_surface#2087.enter(wl_output#3417) -[2618361.390] {Default Queue} discarded wl_surface#2471.enter(wl_output#3417) -[2618361.394] {Default Queue} discarded wl_surface#295.enter(wl_output#3417) -[2618361.398] {Default Queue} discarded wl_surface#167.enter(wl_output#3417) -[2618361.402] {Default Queue} discarded wl_surface#1255.enter(wl_output#3417) -[2618361.406] {Default Queue} discarded wl_surface#2855.enter(wl_output#3417) -[2618361.409] {Default Queue} discarded wl_surface#3303.enter(wl_output#3417) -[2618361.413] {Default Queue} discarded wl_surface#679.enter(wl_output#3417) -[2618361.418] {Default Queue} discarded wl_surface#2407.enter(wl_output#3417) -[2618361.421] {Default Queue} discarded wl_surface#3207.enter(wl_output#3417) -[2618361.425] {Default Queue} discarded wl_surface#2119.enter(wl_output#3417) -[2618361.429] {Default Queue} wl_registry#3430.global(1, "wl_compositor", 6) -[2618361.435] {Default Queue} -> wl_registry#3430.bind(1, "wl_compositor", 1, new id [unknown]#3436) -[2618361.440] {Default Queue} wl_registry#3430.global(2, "wl_subcompositor", 1) -[2618361.444] {Default Queue} -> wl_registry#3430.bind(2, "wl_subcompositor", 1, new id [unknown]#3437) -[2618361.449] {Default Queue} wl_registry#3430.global(3, "xdg_wm_base", 6) -[2618361.454] {Default Queue} -> wl_registry#3430.bind(3, "xdg_wm_base", 1, new id [unknown]#3438) -[2618361.458] {Default Queue} wl_registry#3430.global(6, "zwlr_layer_shell_v1", 5) -[2618361.463] {Default Queue} wl_registry#3430.global(7, "ext_session_lock_manager_v1", 1) -[2618361.467] {Default Queue} wl_registry#3430.global(8, "wl_shm", 2) -[2618361.472] {Default Queue} -> wl_registry#3430.bind(8, "wl_shm", 1, new id [unknown]#3439) -[2618361.476] {Default Queue} -> wl_registry#3430.bind(8, "wl_shm", 1, new id [unknown]#3440) -[2618361.481] {Default Queue} -> wl_registry#3430.bind(8, "wl_shm", 1, new id [unknown]#3441) -[2618361.485] {Default Queue} wl_registry#3430.global(9, "zxdg_output_manager_v1", 3) -[2618361.489] {Default Queue} wl_registry#3430.global(10, "wp_fractional_scale_manager_v1", 1) -[2618361.495] {Default Queue} wl_registry#3430.global(11, "zwp_tablet_manager_v2", 1) -[2618361.501] {Default Queue} wl_registry#3430.global(12, "zwp_pointer_gestures_v1", 3) -[2618361.507] {Default Queue} wl_registry#3430.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618361.513] {Default Queue} -> wl_registry#3430.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3442) -[2618361.519] {Default Queue} wl_registry#3430.global(14, "zwp_pointer_constraints_v1", 1) -[2618361.524] {Default Queue} -> wl_registry#3430.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3443) -[2618361.532] {Default Queue} wl_registry#3430.global(15, "ext_idle_notifier_v1", 2) -[2618361.538] {Default Queue} wl_registry#3430.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618361.542] {Default Queue} wl_registry#3430.global(17, "wl_data_device_manager", 3) -[2618361.547] {Default Queue} -> wl_registry#3430.bind(17, "wl_data_device_manager", 2, new id [unknown]#3444) -[2618361.552] {Default Queue} -> wl_data_device_manager#3444.create_data_source(new id wl_data_source#3445) -[2618361.557] {Default Queue} -> wl_data_source#3445.offer("text/plain") -[2618361.561] {Default Queue} -> wl_data_source#3445.offer("text/plain;charset=utf-8") -[2618361.566] {Default Queue} -> wl_data_source#3445.offer("TEXT") -[2618361.570] {Default Queue} -> wl_data_source#3445.offer("STRING") -[2618361.574] {Default Queue} -> wl_data_source#3445.offer("UTF8_STRING") -[2618361.578] {Default Queue} wl_registry#3430.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618361.582] {Default Queue} -> wl_registry#3430.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3446) -[2618361.590] {Default Queue} -> zwp_primary_selection_device_manager_v1#3446.create_source(new id zwp_primary_selection_source_v1#3447) -[2618361.598] {Default Queue} -> zwp_primary_selection_source_v1#3447.offer("text/plain") -[2618361.602] {Default Queue} -> zwp_primary_selection_source_v1#3447.offer("text/plain;charset=utf-8") -[2618361.607] {Default Queue} -> zwp_primary_selection_source_v1#3447.offer("TEXT") -[2618361.612] {Default Queue} -> zwp_primary_selection_source_v1#3447.offer("STRING") -[2618361.617] {Default Queue} -> zwp_primary_selection_source_v1#3447.offer("UTF8_STRING") -[2618361.623] {Default Queue} wl_registry#3430.global(19, "zwlr_data_control_manager_v1", 2) -[2618361.631] {Default Queue} wl_registry#3430.global(20, "ext_data_control_manager_v1", 1) -[2618361.637] {Default Queue} wl_registry#3430.global(21, "wp_presentation", 2) -[2618361.643] {Default Queue} wl_registry#3430.global(22, "wp_security_context_manager_v1", 1) -[2618361.649] {Default Queue} wl_registry#3430.global(23, "zwp_text_input_manager_v3", 1) -[2618361.654] {Default Queue} wl_registry#3430.global(24, "zwp_input_method_manager_v2", 1) -[2618361.660] {Default Queue} wl_registry#3430.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618361.667] {Default Queue} wl_registry#3430.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618361.673] {Default Queue} wl_registry#3430.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618361.679] {Default Queue} wl_registry#3430.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618361.685] {Default Queue} wl_registry#3430.global(29, "ext_workspace_manager_v1", 1) -[2618361.690] {Default Queue} wl_registry#3430.global(30, "zwlr_output_manager_v1", 4) -[2618361.696] {Default Queue} wl_registry#3430.global(31, "zwlr_screencopy_manager_v1", 3) -[2618361.702] {Default Queue} wl_registry#3430.global(32, "wp_viewporter", 1) -[2618361.708] {Default Queue} wl_registry#3430.global(33, "zxdg_exporter_v2", 1) -[2618361.713] {Default Queue} wl_registry#3430.global(34, "zxdg_importer_v2", 1) -[2618361.717] {Default Queue} wl_registry#3430.global(36, "xdg_activation_v1", 1) -[2618361.722] {Default Queue} wl_registry#3430.global(37, "mutter_x11_interop", 1) -[2618361.727] {Default Queue} wl_registry#3430.global(38, "wl_seat", 9) -[2618361.732] {Default Queue} -> wl_registry#3430.bind(38, "wl_seat", 1, new id [unknown]#3448) -[2618361.736] {Default Queue} wl_registry#3430.global(39, "wp_cursor_shape_manager_v1", 2) -[2618361.741] {Default Queue} wl_registry#3430.global(40, "wl_output", 4) -[2618361.746] {Default Queue} -> wl_registry#3430.bind(40, "wl_output", 1, new id [unknown]#3449) -[2618361.751] {Default Queue} wl_callback#3431.done(0) -[2618361.756] {Default Queue} discarded wl_surface#3399.enter(wl_output#18) -[2618361.760] {Default Queue} discarded wl_surface#3399.enter(wl_output#57) -[2618361.764] {Default Queue} discarded wl_surface#3399.enter(wl_output#89) -[2618361.768] {Default Queue} discarded wl_surface#3399.enter(wl_output#121) -[2618361.775] {Default Queue} discarded wl_surface#3399.enter(wl_output#153) -[2618361.782] {Default Queue} discarded wl_surface#3399.enter(wl_output#185) -[2618361.786] {Default Queue} discarded wl_surface#3399.enter(wl_output#217) -[2618361.791] {Default Queue} discarded wl_surface#3399.enter(wl_output#249) -[2618361.794] {Default Queue} discarded wl_surface#3399.enter(wl_output#281) -[2618361.798] {Default Queue} discarded wl_surface#3399.enter(wl_output#313) -[2618361.802] {Default Queue} discarded wl_surface#3399.enter(wl_output#345) -[2618361.808] {Default Queue} discarded wl_surface#3399.enter(wl_output#377) -[2618361.812] {Default Queue} discarded wl_surface#3399.enter(wl_output#409) -[2618361.816] {Default Queue} discarded wl_surface#3399.enter(wl_output#441) -[2618361.820] {Default Queue} discarded wl_surface#3399.enter(wl_output#473) -[2618361.824] {Default Queue} discarded wl_surface#3399.enter(wl_output#505) -[2618361.829] {Default Queue} discarded wl_surface#3399.enter(wl_output#537) -[2618361.833] {Default Queue} discarded wl_surface#3399.enter(wl_output#569) -[2618361.837] {Default Queue} discarded wl_surface#3399.enter(wl_output#601) -[2618361.841] {Default Queue} discarded wl_surface#3399.enter(wl_output#633) -[2618361.845] {Default Queue} discarded wl_surface#3399.enter(wl_output#665) -[2618361.849] {Default Queue} discarded wl_surface#3399.enter(wl_output#697) -[2618361.853] {Default Queue} discarded wl_surface#3399.enter(wl_output#729) -[2618361.857] {Default Queue} discarded wl_surface#3399.enter(wl_output#761) -[2618361.868] {Default Queue} discarded wl_surface#3399.enter(wl_output#793) -[2618361.872] {Default Queue} discarded wl_surface#3399.enter(wl_output#825) -[2618361.876] {Default Queue} discarded wl_surface#3399.enter(wl_output#857) -[2618361.881] {Default Queue} discarded wl_surface#3399.enter(wl_output#889) -[2618361.885] {Default Queue} discarded wl_surface#3399.enter(wl_output#921) -[2618361.889] {Default Queue} discarded wl_surface#3399.enter(wl_output#953) -[2618361.893] {Default Queue} discarded wl_surface#3399.enter(wl_output#985) -[2618361.896] {Default Queue} discarded wl_surface#3399.enter(wl_output#1017) -[2618361.900] {Default Queue} discarded wl_surface#3399.enter(wl_output#1049) -[2618361.905] {Default Queue} discarded wl_surface#3399.enter(wl_output#1081) -[2618361.908] {Default Queue} discarded wl_surface#3399.enter(wl_output#1113) -[2618361.912] {Default Queue} discarded wl_surface#3399.enter(wl_output#1145) -[2618361.916] {Default Queue} discarded wl_surface#3399.enter(wl_output#1177) -[2618361.920] {Default Queue} discarded wl_surface#3399.enter(wl_output#1209) -[2618361.924] {Default Queue} discarded wl_surface#3399.enter(wl_output#1241) -[2618361.928] {Default Queue} discarded wl_surface#3399.enter(wl_output#1273) -[2618361.932] {Default Queue} discarded wl_surface#3399.enter(wl_output#1305) -[2618361.937] {Default Queue} discarded wl_surface#3399.enter(wl_output#1337) -[2618361.941] {Default Queue} discarded wl_surface#3399.enter(wl_output#1369) -[2618361.945] {Default Queue} discarded wl_surface#3399.enter(wl_output#1401) -[2618361.948] {Default Queue} discarded wl_surface#3399.enter(wl_output#1433) -[2618361.952] {Default Queue} discarded wl_surface#3399.enter(wl_output#1465) -[2618361.956] {Default Queue} discarded wl_surface#3399.enter(wl_output#1497) -[2618361.960] {Default Queue} discarded wl_surface#3399.enter(wl_output#1529) -[2618361.964] {Default Queue} discarded wl_surface#3399.enter(wl_output#1561) -[2618361.968] {Default Queue} discarded wl_surface#3399.enter(wl_output#1593) -[2618361.972] {Default Queue} discarded wl_surface#3399.enter(wl_output#1625) -[2618361.976] {Default Queue} discarded wl_surface#3399.enter(wl_output#1657) -[2618361.980] {Default Queue} discarded wl_surface#3399.enter(wl_output#1689) -[2618361.984] {Default Queue} discarded wl_surface#3399.enter(wl_output#1721) -[2618361.989] {Default Queue} discarded wl_surface#3399.enter(wl_output#1753) -[2618361.993] {Default Queue} discarded wl_surface#3399.enter(wl_output#1785) -[2618361.997] {Default Queue} discarded wl_surface#3399.enter(wl_output#1817) -[2618362.004] {Default Queue} discarded wl_surface#3399.enter(wl_output#1849) -[2618362.010] {Default Queue} discarded wl_surface#3399.enter(wl_output#1881) -[2618362.014] {Default Queue} discarded wl_surface#3399.enter(wl_output#1913) -[2618362.017] {Default Queue} discarded wl_surface#3399.enter(wl_output#1945) -[2618362.022] {Default Queue} discarded wl_surface#3399.enter(wl_output#1977) -[2618362.026] {Default Queue} discarded wl_surface#3399.enter(wl_output#2009) -[2618362.030] {Default Queue} discarded wl_surface#3399.enter(wl_output#2041) -[2618362.034] {Default Queue} discarded wl_surface#3399.enter(wl_output#2073) -[2618362.038] {Default Queue} discarded wl_surface#3399.enter(wl_output#2105) -[2618362.042] {Default Queue} discarded wl_surface#3399.enter(wl_output#2137) -[2618362.046] {Default Queue} discarded wl_surface#3399.enter(wl_output#2169) -[2618362.050] {Default Queue} discarded wl_surface#3399.enter(wl_output#2201) -[2618362.054] {Default Queue} -> wl_compositor#3372.create_surface(new id wl_surface#3431) -[2618362.058] {Default Queue} -> wl_subcompositor#3437.get_subsurface(new id wl_subsurface#3450, wl_surface#3431, wl_surface#3367) -[2618362.066] {Default Queue} -> wl_subsurface#3450.set_desync() -[2618362.071] {Default Queue} -> wl_subsurface#3450.set_position(0, -14) -[2618362.075] {Default Queue} -> wl_subsurface#3450.place_above(wl_surface#3367) -[2618362.118] {Default Queue} -> wl_shm#3439.create_pool(new id wl_shm_pool#3451, fd 544, 128) -[2618362.125] {Default Queue} -> wl_shm#3439.create_pool(new id wl_shm_pool#3452, fd 545, 128) -[2618362.129] {Default Queue} -> wl_shm_pool#3451.create_buffer(new id wl_buffer#3453, 0, 2, 16, 8, 0) -[2618362.134] {Default Queue} -> wl_shm_pool#3452.create_buffer(new id wl_buffer#3454, 0, 2, 16, 8, 0) -[2618362.142] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3453, 0, 0) -[2618362.147] {Default Queue} -> wl_surface#3431.commit() -[2618362.153] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3453, 0, 0) -[2618362.157] {Default Queue} -> wl_surface#3431.commit() -[2618362.162] {Default Queue} -> wl_compositor#3436.create_region(new id wl_region#3455) -[2618362.166] {Default Queue} -> wl_compositor#3436.create_region(new id wl_region#3456) -[2618362.170] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) -[2618362.175] {Default Queue} -> wl_region#3455.add(0, 0, 0, 0) -[2618362.179] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618362.184] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618362.188] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 16) -[2618362.192] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) -[2618362.200] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3453, 0, 0) -[2618362.204] {Default Queue} -> wl_surface#3431.commit() -[2618362.241] {Default Queue} -> wl_shm#3441.create_pool(new id wl_shm_pool#3457, fd 548, 640) -[2618362.247] {Default Queue} -> wl_shm#3441.create_pool(new id wl_shm_pool#3458, fd 549, 640) -[2618362.251] {Default Queue} -> wl_shm_pool#3457.create_buffer(new id wl_buffer#3459, 0, 10, 16, 40, 0) -[2618362.256] {Default Queue} -> wl_shm_pool#3458.create_buffer(new id wl_buffer#3460, 0, 10, 16, 40, 0) -[2618362.264] {Default Queue} -> wl_compositor#3436.create_surface(new id wl_surface#3461) -[2618362.269] {Default Queue} -> wl_surface#3461.attach(wl_buffer#3459, 0, 0) -[2618362.273] {Default Queue} -> wl_surface#3461.commit() -[2618362.279] {Default Queue} -> wl_surface#3461.attach(wl_buffer#3459, 0, 0) -[2618362.283] {Default Queue} -> wl_surface#3461.commit() -[2618362.292] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3462) -[2618362.297] {Default Queue} -> wl_display#1.sync(new id wl_callback#3463) -[2618365.516] {Default Queue} discarded wl_surface#3399.enter(wl_output#2233) -[2618365.526] {Default Queue} discarded wl_surface#3399.enter(wl_output#2265) -[2618365.531] {Default Queue} discarded wl_surface#3399.enter(wl_output#2297) -[2618365.537] {Default Queue} discarded wl_surface#3399.enter(wl_output#2329) -[2618365.547] {Default Queue} discarded wl_surface#3399.enter(wl_output#2361) -[2618365.555] {Default Queue} discarded wl_surface#3399.enter(wl_output#2393) -[2618365.560] {Default Queue} discarded wl_surface#3399.enter(wl_output#2425) -[2618365.565] {Default Queue} discarded wl_surface#3399.enter(wl_output#2457) -[2618365.570] {Default Queue} discarded wl_surface#3399.enter(wl_output#2489) -[2618365.575] {Default Queue} discarded wl_surface#3399.enter(wl_output#2521) -[2618365.580] {Default Queue} discarded wl_surface#3399.enter(wl_output#2553) -[2618365.585] {Default Queue} discarded wl_surface#3399.enter(wl_output#2585) -[2618365.590] {Default Queue} discarded wl_surface#3399.enter(wl_output#2617) -[2618365.594] {Default Queue} discarded wl_surface#3399.enter(wl_output#2649) -[2618365.599] {Default Queue} discarded wl_surface#3399.enter(wl_output#2681) -[2618365.604] {Default Queue} discarded wl_surface#3399.enter(wl_output#2713) -[2618365.609] {Default Queue} discarded wl_surface#3399.enter(wl_output#2745) -[2618365.614] {Default Queue} discarded wl_surface#3399.enter(wl_output#2777) -[2618365.619] {Default Queue} discarded wl_surface#3399.enter(wl_output#2809) -[2618365.624] {Default Queue} discarded wl_surface#3399.enter(wl_output#2841) -[2618365.629] {Default Queue} discarded wl_surface#3399.enter(wl_output#2873) -[2618365.634] {Default Queue} discarded wl_surface#3399.enter(wl_output#2905) -[2618365.638] {Default Queue} discarded wl_surface#3399.enter(wl_output#2937) -[2618365.644] {Default Queue} discarded wl_surface#3399.enter(wl_output#2969) -[2618365.648] {Default Queue} discarded wl_surface#3399.enter(wl_output#3001) -[2618365.653] {Default Queue} discarded wl_surface#3399.enter(wl_output#3033) -[2618365.658] {Default Queue} discarded wl_surface#3399.enter(wl_output#3065) -[2618365.663] {Default Queue} discarded wl_surface#3399.enter(wl_output#3097) -[2618365.667] {Default Queue} discarded wl_surface#3399.enter(wl_output#3129) -[2618365.672] {Default Queue} discarded wl_surface#3399.enter(wl_output#3161) -[2618365.677] {Default Queue} discarded wl_surface#3399.enter(wl_output#3193) -[2618365.682] {Default Queue} discarded wl_surface#3399.enter(wl_output#3225) -[2618365.686] {Default Queue} discarded wl_surface#3399.enter(wl_output#3257) -[2618365.691] {Default Queue} discarded wl_surface#3399.enter(wl_output#3289) -[2618365.696] {Default Queue} discarded wl_surface#3399.enter(wl_output#3321) -[2618365.701] {Default Queue} discarded wl_surface#3399.enter(wl_output#3353) -[2618365.706] {Default Queue} discarded wl_surface#3399.enter(wl_output#3385) -[2618365.711] {Default Queue} discarded wl_surface#3399.enter(wl_output#3417) -[2618365.799] {Display Queue} wl_display#1.delete_id(3463) -[2618365.806] {Default Queue} wl_keyboard#3432.keymap(1, fd 544, 68213) -[2618365.812] {Default Queue} wl_keyboard#3432.enter(566, wl_surface#19, array[0]) -[2618365.819] {Default Queue} wl_keyboard#3432.modifiers(566, 0, 0, 16, 0) -[2618365.824] {Default Queue} discarded wl_shm#3439.format(875709016) -[2618365.830] {Default Queue} discarded wl_shm#3439.format(1) -[2618365.835] {Default Queue} discarded wl_shm#3439.format(0) -[2618365.839] {Default Queue} discarded wl_shm#3439.format(875708993) -[2618365.844] {Default Queue} discarded wl_shm#3440.format(875709016) -[2618365.849] {Default Queue} discarded wl_shm#3440.format(1) -[2618365.854] {Default Queue} discarded wl_shm#3440.format(0) -[2618365.859] {Default Queue} discarded wl_shm#3440.format(875708993) -[2618365.870] {Default Queue} discarded wl_shm#3441.format(875709016) -[2618365.874] {Default Queue} discarded wl_shm#3441.format(1) -[2618365.879] {Default Queue} discarded wl_shm#3441.format(0) -[2618365.884] {Default Queue} discarded wl_shm#3441.format(875708993) -[2618365.890] {Default Queue} wl_seat#3448.capabilities(7) -[2618365.895] {Default Queue} -> wl_seat#3448.get_keyboard(new id wl_keyboard#3464) -[2618365.900] {Default Queue} -> wl_seat#3448.get_pointer(new id wl_pointer#3465) -[2618365.906] {Default Queue} -> wl_data_device_manager#3444.get_data_device(new id wl_data_device#3466, wl_seat#3448) -[2618365.916] {Default Queue} -> zwp_primary_selection_device_manager_v1#3446.get_device(new id zwp_primary_selection_device_v1#3467, wl_seat#3448) -[2618365.929] {Default Queue} wl_output#3449.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618365.936] {Default Queue} wl_output#3449.mode(3, 1280, 800, 60000) -[2618365.942] {Default Queue} discarded wl_surface#2727.enter(wl_output#3449) -[2618365.947] {Default Queue} discarded wl_surface#3.enter(wl_output#3449) -[2618365.952] {Default Queue} discarded wl_surface#999.enter(wl_output#3449) -[2618365.957] {Default Queue} discarded wl_surface#3079.enter(wl_output#3449) -[2618365.962] {Default Queue} discarded wl_surface#1191.enter(wl_output#3449) -[2618365.967] {Default Queue} discarded wl_surface#1159.enter(wl_output#3449) -[2618365.972] {Default Queue} discarded wl_surface#1703.enter(wl_output#3449) -[2618365.977] {Default Queue} discarded wl_surface#2215.enter(wl_output#3449) -[2618365.982] {Default Queue} discarded wl_surface#423.enter(wl_output#3449) -[2618365.986] {Default Queue} discarded wl_surface#1447.enter(wl_output#3449) -[2618365.991] {Default Queue} discarded wl_surface#3047.enter(wl_output#3449) -[2618365.996] {Default Queue} discarded wl_surface#2023.enter(wl_output#3449) -[2618366.001] {Default Queue} discarded wl_surface#1639.enter(wl_output#3449) -[2618366.006] {Default Queue} discarded wl_surface#1319.enter(wl_output#3449) -[2618366.011] {Default Queue} discarded wl_surface#1127.enter(wl_output#3449) -[2618366.016] {Default Queue} discarded wl_surface#2151.enter(wl_output#3449) -[2618366.020] {Default Queue} discarded wl_surface#2375.enter(wl_output#3449) -[2618366.025] {Default Queue} discarded wl_surface#2695.enter(wl_output#3449) -[2618366.030] {Default Queue} discarded wl_surface#2919.enter(wl_output#3449) -[2618366.036] {Default Queue} discarded wl_surface#1063.enter(wl_output#3449) -[2618366.041] {Default Queue} discarded wl_surface#455.enter(wl_output#3449) -[2618366.046] {Default Queue} discarded wl_surface#1575.enter(wl_output#3449) -[2618366.050] {Default Queue} discarded wl_surface#1799.enter(wl_output#3449) -[2618366.056] {Default Queue} discarded wl_surface#1415.enter(wl_output#3449) -[2618366.060] {Default Queue} discarded wl_surface#2439.enter(wl_output#3449) -[2618366.065] {Default Queue} discarded wl_surface#2279.enter(wl_output#3449) -[2618366.070] {Default Queue} discarded wl_surface#1831.enter(wl_output#3449) -[2618366.075] {Default Queue} discarded wl_surface#903.enter(wl_output#3449) -[2618366.080] {Default Queue} discarded wl_surface#2663.enter(wl_output#3449) -[2618366.086] {Default Queue} discarded wl_surface#775.enter(wl_output#3449) -[2618366.092] {Default Queue} discarded wl_surface#1991.enter(wl_output#3449) -[2618366.097] {Default Queue} discarded wl_surface#1543.enter(wl_output#3449) -[2618366.103] {Default Queue} discarded wl_surface#135.enter(wl_output#3449) -[2618366.107] {Default Queue} discarded wl_surface#1287.enter(wl_output#3449) -[2618366.112] {Default Queue} discarded wl_surface#3399.enter(wl_output#3449) -[2618366.117] {Default Queue} discarded wl_surface#1031.enter(wl_output#3449) -[2618366.123] {Default Queue} discarded wl_surface#615.enter(wl_output#3449) -[2618366.128] {Default Queue} discarded wl_surface#3111.enter(wl_output#3449) -[2618366.133] {Default Queue} discarded wl_surface#231.enter(wl_output#3449) -[2618366.138] {Default Queue} discarded wl_surface#2343.enter(wl_output#3449) -[2618366.143] {Default Queue} discarded wl_surface#1863.enter(wl_output#3449) -[2618366.149] {Default Queue} discarded wl_surface#359.enter(wl_output#3449) -[2618366.154] {Default Queue} discarded wl_surface#2983.enter(wl_output#3449) -[2618366.159] {Default Queue} discarded wl_surface#583.enter(wl_output#3449) -[2618366.163] {Default Queue} discarded wl_surface#743.enter(wl_output#3449) -[2618366.169] {Default Queue} discarded wl_surface#3143.enter(wl_output#3449) -[2618366.174] {Default Queue} discarded wl_surface#2535.enter(wl_output#3449) -[2618366.179] {Default Queue} discarded wl_surface#3367.enter(wl_output#3449) -[2618366.184] {Default Queue} discarded wl_surface#967.enter(wl_output#3449) -[2618366.193] {Default Queue} discarded wl_surface#103.enter(wl_output#3449) -[2618366.200] {Default Queue} discarded wl_surface#3271.enter(wl_output#3449) -[2618366.205] {Default Queue} discarded wl_surface#327.enter(wl_output#3449) -[2618366.210] {Default Queue} discarded wl_surface#43.enter(wl_output#3449) -[2618366.215] {Default Queue} discarded wl_surface#2247.enter(wl_output#3449) -[2618366.220] {Default Queue} discarded wl_surface#807.enter(wl_output#3449) -[2618366.226] {Default Queue} discarded wl_surface#19.enter(wl_output#3449) -[2618366.231] {Default Queue} discarded wl_surface#2951.enter(wl_output#3449) -[2618366.236] {Default Queue} discarded wl_surface#1511.enter(wl_output#3449) -[2618366.241] {Default Queue} discarded wl_surface#199.enter(wl_output#3449) -[2618366.246] {Default Queue} discarded wl_surface#391.enter(wl_output#3449) -[2618366.251] {Default Queue} discarded wl_surface#935.enter(wl_output#3449) -[2618366.256] {Default Queue} discarded wl_surface#2823.enter(wl_output#3449) -[2618366.261] {Default Queue} discarded wl_surface#3015.enter(wl_output#3449) -[2618366.266] {Default Queue} discarded wl_surface#1671.enter(wl_output#3449) -[2618366.271] {Default Queue} discarded wl_surface#1351.enter(wl_output#3449) -[2618366.276] {Default Queue} discarded wl_surface#711.enter(wl_output#3449) -[2618366.281] {Default Queue} discarded wl_surface#3175.enter(wl_output#3449) -[2618366.286] {Default Queue} discarded wl_surface#1223.enter(wl_output#3449) -[2618366.290] {Default Queue} discarded wl_surface#1927.enter(wl_output#3449) -[2618366.296] {Default Queue} discarded wl_surface#871.enter(wl_output#3449) -[2618366.300] {Default Queue} discarded wl_surface#1895.enter(wl_output#3449) -[2618366.305] {Default Queue} discarded wl_surface#263.enter(wl_output#3449) -[2618366.310] {Default Queue} discarded wl_surface#551.enter(wl_output#3449) -[2618366.315] {Default Queue} discarded wl_surface#1735.enter(wl_output#3449) -[2618366.320] {Default Queue} discarded wl_surface#1479.enter(wl_output#3449) -[2618366.325] {Default Queue} discarded wl_surface#1772.enter(wl_output#3449) -[2618366.330] {Default Queue} discarded wl_surface#2599.enter(wl_output#3449) -[2618366.335] {Default Queue} discarded wl_surface#2631.enter(wl_output#3449) -[2618366.340] {Default Queue} discarded wl_surface#1959.enter(wl_output#3449) -[2618366.345] {Default Queue} discarded wl_surface#647.enter(wl_output#3449) -[2618366.350] {Default Queue} discarded wl_surface#2055.enter(wl_output#3449) -[2618366.356] {Default Queue} discarded wl_surface#2508.enter(wl_output#3449) -[2618366.361] {Default Queue} discarded wl_surface#71.enter(wl_output#3449) -[2618366.365] {Default Queue} discarded wl_surface#2759.enter(wl_output#3449) -[2618366.370] {Default Queue} discarded wl_surface#2791.enter(wl_output#3449) -[2618366.376] {Default Queue} discarded wl_surface#2887.enter(wl_output#3449) -[2618366.381] {Default Queue} discarded wl_surface#2183.enter(wl_output#3449) -[2618366.386] {Default Queue} discarded wl_surface#2567.enter(wl_output#3449) -[2618366.391] {Default Queue} discarded wl_surface#839.enter(wl_output#3449) -[2618366.396] {Default Queue} discarded wl_surface#1607.enter(wl_output#3449) -[2618366.401] {Default Queue} discarded wl_surface#1095.enter(wl_output#3449) -[2618366.405] {Default Queue} discarded wl_surface#1383.enter(wl_output#3449) -[2618366.409] {Default Queue} discarded wl_surface#487.enter(wl_output#3449) -[2618366.413] {Default Queue} discarded wl_surface#2311.enter(wl_output#3449) -[2618366.417] {Default Queue} discarded wl_surface#519.enter(wl_output#3449) -[2618366.421] {Default Queue} discarded wl_surface#3335.enter(wl_output#3449) -[2618366.425] {Default Queue} discarded wl_surface#3239.enter(wl_output#3449) -[2618366.429] {Default Queue} discarded wl_surface#2087.enter(wl_output#3449) -[2618366.433] {Default Queue} discarded wl_surface#2471.enter(wl_output#3449) -[2618366.437] {Default Queue} discarded wl_surface#295.enter(wl_output#3449) -[2618366.442] {Default Queue} discarded wl_surface#167.enter(wl_output#3449) -[2618366.446] {Default Queue} discarded wl_surface#1255.enter(wl_output#3449) -[2618366.454] {Default Queue} discarded wl_surface#2855.enter(wl_output#3449) -[2618366.459] {Default Queue} discarded wl_surface#3303.enter(wl_output#3449) -[2618366.463] {Default Queue} discarded wl_surface#679.enter(wl_output#3449) -[2618366.468] {Default Queue} discarded wl_surface#2407.enter(wl_output#3449) -[2618366.471] {Default Queue} discarded wl_surface#3207.enter(wl_output#3449) -[2618366.475] {Default Queue} discarded wl_surface#2119.enter(wl_output#3449) -[2618366.480] {Default Queue} wl_registry#3462.global(1, "wl_compositor", 6) -[2618366.485] {Default Queue} -> wl_registry#3462.bind(1, "wl_compositor", 1, new id [unknown]#3468) -[2618366.490] {Default Queue} wl_registry#3462.global(2, "wl_subcompositor", 1) -[2618366.495] {Default Queue} -> wl_registry#3462.bind(2, "wl_subcompositor", 1, new id [unknown]#3469) -[2618366.500] {Default Queue} wl_registry#3462.global(3, "xdg_wm_base", 6) -[2618366.504] {Default Queue} -> wl_registry#3462.bind(3, "xdg_wm_base", 1, new id [unknown]#3470) -[2618366.509] {Default Queue} wl_registry#3462.global(6, "zwlr_layer_shell_v1", 5) -[2618366.515] {Default Queue} wl_registry#3462.global(7, "ext_session_lock_manager_v1", 1) -[2618366.519] {Default Queue} wl_registry#3462.global(8, "wl_shm", 2) -[2618366.524] {Default Queue} -> wl_registry#3462.bind(8, "wl_shm", 1, new id [unknown]#3471) -[2618366.529] {Default Queue} -> wl_registry#3462.bind(8, "wl_shm", 1, new id [unknown]#3472) -[2618366.534] {Default Queue} -> wl_registry#3462.bind(8, "wl_shm", 1, new id [unknown]#3473) -[2618366.538] {Default Queue} wl_registry#3462.global(9, "zxdg_output_manager_v1", 3) -[2618366.543] {Default Queue} wl_registry#3462.global(10, "wp_fractional_scale_manager_v1", 1) -[2618366.548] {Default Queue} wl_registry#3462.global(11, "zwp_tablet_manager_v2", 1) -[2618366.553] {Default Queue} wl_registry#3462.global(12, "zwp_pointer_gestures_v1", 3) -[2618366.557] {Default Queue} wl_registry#3462.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618366.562] {Default Queue} -> wl_registry#3462.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3474) -[2618366.567] {Default Queue} wl_registry#3462.global(14, "zwp_pointer_constraints_v1", 1) -[2618366.572] {Default Queue} -> wl_registry#3462.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3475) -[2618366.576] {Default Queue} wl_registry#3462.global(15, "ext_idle_notifier_v1", 2) -[2618366.582] {Default Queue} wl_registry#3462.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618366.587] {Default Queue} wl_registry#3462.global(17, "wl_data_device_manager", 3) -[2618366.591] {Default Queue} -> wl_registry#3462.bind(17, "wl_data_device_manager", 2, new id [unknown]#3476) -[2618366.596] {Default Queue} -> wl_data_device_manager#3476.create_data_source(new id wl_data_source#3477) -[2618366.600] {Default Queue} -> wl_data_source#3477.offer("text/plain") -[2618366.605] {Default Queue} -> wl_data_source#3477.offer("text/plain;charset=utf-8") -[2618366.611] {Default Queue} -> wl_data_source#3477.offer("TEXT") -[2618366.616] {Default Queue} -> wl_data_source#3477.offer("STRING") -[2618366.621] {Default Queue} -> wl_data_source#3477.offer("UTF8_STRING") -[2618366.625] {Default Queue} wl_registry#3462.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618366.631] {Default Queue} -> wl_registry#3462.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3478) -[2618366.639] {Default Queue} -> zwp_primary_selection_device_manager_v1#3478.create_source(new id zwp_primary_selection_source_v1#3479) -[2618366.647] {Default Queue} -> zwp_primary_selection_source_v1#3479.offer("text/plain") -[2618366.651] {Default Queue} -> zwp_primary_selection_source_v1#3479.offer("text/plain;charset=utf-8") -[2618366.655] {Default Queue} -> zwp_primary_selection_source_v1#3479.offer("TEXT") -[2618366.659] {Default Queue} -> zwp_primary_selection_source_v1#3479.offer("STRING") -[2618366.663] {Default Queue} -> zwp_primary_selection_source_v1#3479.offer("UTF8_STRING") -[2618366.667] {Default Queue} wl_registry#3462.global(19, "zwlr_data_control_manager_v1", 2) -[2618366.675] {Default Queue} wl_registry#3462.global(20, "ext_data_control_manager_v1", 1) -[2618366.681] {Default Queue} wl_registry#3462.global(21, "wp_presentation", 2) -[2618366.686] {Default Queue} wl_registry#3462.global(22, "wp_security_context_manager_v1", 1) -[2618366.690] {Default Queue} wl_registry#3462.global(23, "zwp_text_input_manager_v3", 1) -[2618366.694] {Default Queue} wl_registry#3462.global(24, "zwp_input_method_manager_v2", 1) -[2618366.699] {Default Queue} wl_registry#3462.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618366.703] {Default Queue} wl_registry#3462.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618366.707] {Default Queue} wl_registry#3462.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618366.712] {Default Queue} wl_registry#3462.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618366.716] {Default Queue} wl_registry#3462.global(29, "ext_workspace_manager_v1", 1) -[2618366.720] {Default Queue} wl_registry#3462.global(30, "zwlr_output_manager_v1", 4) -[2618366.725] {Default Queue} wl_registry#3462.global(31, "zwlr_screencopy_manager_v1", 3) -[2618366.729] {Default Queue} wl_registry#3462.global(32, "wp_viewporter", 1) -[2618366.733] {Default Queue} wl_registry#3462.global(33, "zxdg_exporter_v2", 1) -[2618366.738] {Default Queue} wl_registry#3462.global(34, "zxdg_importer_v2", 1) -[2618366.742] {Default Queue} wl_registry#3462.global(36, "xdg_activation_v1", 1) -[2618366.746] {Default Queue} wl_registry#3462.global(37, "mutter_x11_interop", 1) -[2618366.751] {Default Queue} wl_registry#3462.global(38, "wl_seat", 9) -[2618366.755] {Default Queue} -> wl_registry#3462.bind(38, "wl_seat", 1, new id [unknown]#3480) -[2618366.760] {Default Queue} wl_registry#3462.global(39, "wp_cursor_shape_manager_v1", 2) -[2618366.764] {Default Queue} wl_registry#3462.global(40, "wl_output", 4) -[2618366.769] {Default Queue} -> wl_registry#3462.bind(40, "wl_output", 1, new id [unknown]#3481) -[2618366.773] {Default Queue} wl_callback#3463.done(0) -[2618366.778] {Default Queue} discarded wl_surface#3431.enter(wl_output#18) -[2618366.782] {Default Queue} discarded wl_surface#3431.enter(wl_output#57) -[2618366.786] {Default Queue} discarded wl_surface#3431.enter(wl_output#89) -[2618366.790] {Default Queue} discarded wl_surface#3431.enter(wl_output#121) -[2618366.794] {Default Queue} discarded wl_surface#3431.enter(wl_output#153) -[2618366.798] {Default Queue} discarded wl_surface#3431.enter(wl_output#185) -[2618366.803] {Default Queue} discarded wl_surface#3431.enter(wl_output#217) -[2618366.807] {Default Queue} discarded wl_surface#3431.enter(wl_output#249) -[2618366.811] {Default Queue} discarded wl_surface#3431.enter(wl_output#281) -[2618366.815] {Default Queue} discarded wl_surface#3431.enter(wl_output#313) -[2618366.819] {Default Queue} discarded wl_surface#3431.enter(wl_output#345) -[2618366.823] {Default Queue} discarded wl_surface#3431.enter(wl_output#377) -[2618366.826] {Default Queue} discarded wl_surface#3431.enter(wl_output#409) -[2618366.831] {Default Queue} discarded wl_surface#3431.enter(wl_output#441) -[2618366.837] {Default Queue} discarded wl_surface#3431.enter(wl_output#473) -[2618366.843] {Default Queue} discarded wl_surface#3431.enter(wl_output#505) -[2618366.848] {Default Queue} discarded wl_surface#3431.enter(wl_output#537) -[2618366.853] {Default Queue} discarded wl_surface#3431.enter(wl_output#569) -[2618366.858] {Default Queue} discarded wl_surface#3431.enter(wl_output#601) -[2618366.863] {Default Queue} discarded wl_surface#3431.enter(wl_output#633) -[2618366.867] {Default Queue} discarded wl_surface#3431.enter(wl_output#665) -[2618366.876] {Default Queue} discarded wl_surface#3431.enter(wl_output#697) -[2618366.880] {Default Queue} discarded wl_surface#3431.enter(wl_output#729) -[2618366.884] {Default Queue} discarded wl_surface#3431.enter(wl_output#761) -[2618366.888] {Default Queue} discarded wl_surface#3431.enter(wl_output#793) -[2618366.892] {Default Queue} discarded wl_surface#3431.enter(wl_output#825) -[2618366.896] {Default Queue} discarded wl_surface#3431.enter(wl_output#857) -[2618366.903] {Default Queue} discarded wl_surface#3431.enter(wl_output#889) -[2618366.909] {Default Queue} discarded wl_surface#3431.enter(wl_output#921) -[2618366.912] {Default Queue} discarded wl_surface#3431.enter(wl_output#953) -[2618366.916] {Default Queue} discarded wl_surface#3431.enter(wl_output#985) -[2618366.921] {Default Queue} discarded wl_surface#3431.enter(wl_output#1017) -[2618366.925] {Default Queue} discarded wl_surface#3431.enter(wl_output#1049) -[2618366.929] {Default Queue} discarded wl_surface#3431.enter(wl_output#1081) -[2618366.932] {Default Queue} discarded wl_surface#3431.enter(wl_output#1113) -[2618366.936] {Default Queue} discarded wl_surface#3431.enter(wl_output#1145) -[2618366.940] {Default Queue} discarded wl_surface#3431.enter(wl_output#1177) -[2618366.944] {Default Queue} discarded wl_surface#3431.enter(wl_output#1209) -[2618366.948] {Default Queue} discarded wl_surface#3431.enter(wl_output#1241) -[2618366.952] {Default Queue} discarded wl_surface#3431.enter(wl_output#1273) -[2618366.956] {Default Queue} discarded wl_surface#3431.enter(wl_output#1305) -[2618366.960] {Default Queue} discarded wl_surface#3431.enter(wl_output#1337) -[2618366.964] {Default Queue} discarded wl_surface#3431.enter(wl_output#1369) -[2618366.968] {Default Queue} discarded wl_surface#3431.enter(wl_output#1401) -[2618366.972] {Default Queue} discarded wl_surface#3431.enter(wl_output#1433) -[2618366.976] {Default Queue} discarded wl_surface#3431.enter(wl_output#1465) -[2618366.980] {Default Queue} discarded wl_surface#3431.enter(wl_output#1497) -[2618366.984] {Default Queue} discarded wl_surface#3431.enter(wl_output#1529) -[2618366.988] {Default Queue} discarded wl_surface#3431.enter(wl_output#1561) -[2618366.992] {Default Queue} discarded wl_surface#3431.enter(wl_output#1593) -[2618366.996] {Default Queue} discarded wl_surface#3431.enter(wl_output#1625) -[2618367.000] {Default Queue} discarded wl_surface#3431.enter(wl_output#1657) -[2618367.003] {Default Queue} discarded wl_surface#3431.enter(wl_output#1689) -[2618367.007] {Default Queue} discarded wl_surface#3431.enter(wl_output#1721) -[2618367.011] {Default Queue} discarded wl_surface#3431.enter(wl_output#1753) -[2618367.015] {Default Queue} discarded wl_surface#3431.enter(wl_output#1785) -[2618367.019] {Default Queue} discarded wl_surface#3431.enter(wl_output#1817) -[2618367.023] {Default Queue} discarded wl_surface#3431.enter(wl_output#1849) -[2618367.027] {Default Queue} discarded wl_surface#3431.enter(wl_output#1881) -[2618367.031] {Default Queue} discarded wl_surface#3431.enter(wl_output#1913) -[2618367.035] {Default Queue} discarded wl_surface#3431.enter(wl_output#1945) -[2618367.039] {Default Queue} discarded wl_surface#3431.enter(wl_output#1977) -[2618367.044] {Default Queue} discarded wl_surface#3431.enter(wl_output#2009) -[2618367.048] {Default Queue} discarded wl_surface#3431.enter(wl_output#2041) -[2618367.052] {Default Queue} discarded wl_surface#3431.enter(wl_output#2073) -[2618367.056] {Default Queue} discarded wl_surface#3431.enter(wl_output#2105) -[2618367.060] {Default Queue} discarded wl_surface#3431.enter(wl_output#2137) -[2618367.064] {Default Queue} discarded wl_surface#3431.enter(wl_output#2169) -[2618367.068] {Default Queue} -> wl_compositor#3372.create_surface(new id wl_surface#3463) -[2618367.072] {Default Queue} -> wl_subcompositor#3469.get_subsurface(new id wl_subsurface#3482, wl_surface#3463, wl_surface#3367) -[2618367.081] {Default Queue} -> wl_subsurface#3482.set_desync() -[2618367.085] {Default Queue} -> wl_subsurface#3482.set_position(0, 0) -[2618367.090] {Default Queue} -> wl_subsurface#3482.place_above(wl_surface#3367) -[2618367.129] {Default Queue} -> wl_shm#3471.create_pool(new id wl_shm_pool#3483, fd 549, 16) -[2618367.136] {Default Queue} -> wl_shm#3471.create_pool(new id wl_shm_pool#3484, fd 550, 16) -[2618367.141] {Default Queue} -> wl_shm_pool#3483.create_buffer(new id wl_buffer#3485, 0, 2, 2, 8, 0) -[2618367.146] {Default Queue} -> wl_shm_pool#3484.create_buffer(new id wl_buffer#3486, 0, 2, 2, 8, 0) -[2618367.154] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3485, 0, 0) -[2618367.161] {Default Queue} -> wl_surface#3463.commit() -[2618367.168] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3485, 0, 0) -[2618367.173] {Default Queue} -> wl_surface#3463.commit() -[2618367.177] {Default Queue} -> wl_compositor#3468.create_region(new id wl_region#3487) -[2618367.181] {Default Queue} -> wl_compositor#3468.create_region(new id wl_region#3488) -[2618367.185] {Default Queue} -> wl_region#3487.subtract(0, 0, 2, 2) -[2618367.190] {Default Queue} -> wl_region#3487.add(0, 0, 0, 0) -[2618367.194] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) -[2618367.199] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) -[2618367.203] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) -[2618367.209] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) -[2618367.216] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3485, 0, 0) -[2618367.220] {Default Queue} -> wl_surface#3463.commit() -[2618367.260] {Default Queue} -> wl_shm#3473.create_pool(new id wl_shm_pool#3489, fd 553, 640) -[2618367.267] {Default Queue} -> wl_shm#3473.create_pool(new id wl_shm_pool#3490, fd 554, 640) -[2618367.271] {Default Queue} -> wl_shm_pool#3489.create_buffer(new id wl_buffer#3491, 0, 10, 16, 40, 0) -[2618367.276] {Default Queue} -> wl_shm_pool#3490.create_buffer(new id wl_buffer#3492, 0, 10, 16, 40, 0) -[2618367.283] {Default Queue} -> wl_compositor#3468.create_surface(new id wl_surface#3493) -[2618367.287] {Default Queue} -> wl_surface#3493.attach(wl_buffer#3491, 0, 0) -[2618367.292] {Default Queue} -> wl_surface#3493.commit() -[2618367.297] {Default Queue} -> wl_surface#3493.attach(wl_buffer#3491, 0, 0) -[2618367.302] {Default Queue} -> wl_surface#3493.commit() -[2618367.309] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3494) -[2618367.314] {Default Queue} -> wl_display#1.sync(new id wl_callback#3495) -[2618371.179] {Default Queue} discarded wl_surface#3431.enter(wl_output#2201) -[2618371.185] {Default Queue} discarded wl_surface#3431.enter(wl_output#2233) -[2618371.189] {Default Queue} discarded wl_surface#3431.enter(wl_output#2265) -[2618371.193] {Default Queue} discarded wl_surface#3431.enter(wl_output#2297) -[2618371.198] {Default Queue} discarded wl_surface#3431.enter(wl_output#2329) -[2618371.201] {Default Queue} discarded wl_surface#3431.enter(wl_output#2361) -[2618371.205] {Default Queue} discarded wl_surface#3431.enter(wl_output#2393) -[2618371.209] {Default Queue} discarded wl_surface#3431.enter(wl_output#2425) -[2618371.213] {Default Queue} discarded wl_surface#3431.enter(wl_output#2457) -[2618371.217] {Default Queue} discarded wl_surface#3431.enter(wl_output#2489) -[2618371.221] {Default Queue} discarded wl_surface#3431.enter(wl_output#2521) -[2618371.225] {Default Queue} discarded wl_surface#3431.enter(wl_output#2553) -[2618371.229] {Default Queue} discarded wl_surface#3431.enter(wl_output#2585) -[2618371.233] {Default Queue} discarded wl_surface#3431.enter(wl_output#2617) -[2618371.238] {Default Queue} discarded wl_surface#3431.enter(wl_output#2649) -[2618371.242] {Default Queue} discarded wl_surface#3431.enter(wl_output#2681) -[2618371.245] {Default Queue} discarded wl_surface#3431.enter(wl_output#2713) -[2618371.249] {Default Queue} discarded wl_surface#3431.enter(wl_output#2745) -[2618371.253] {Default Queue} discarded wl_surface#3431.enter(wl_output#2777) -[2618371.257] {Default Queue} discarded wl_surface#3431.enter(wl_output#2809) -[2618371.261] {Default Queue} discarded wl_surface#3431.enter(wl_output#2841) -[2618371.265] {Default Queue} discarded wl_surface#3431.enter(wl_output#2873) -[2618371.269] {Default Queue} discarded wl_surface#3431.enter(wl_output#2905) -[2618371.273] {Default Queue} discarded wl_surface#3431.enter(wl_output#2937) -[2618371.277] {Default Queue} discarded wl_surface#3431.enter(wl_output#2969) -[2618371.280] {Default Queue} discarded wl_surface#3431.enter(wl_output#3001) -[2618371.284] {Default Queue} discarded wl_surface#3431.enter(wl_output#3033) -[2618371.288] {Default Queue} discarded wl_surface#3431.enter(wl_output#3065) -[2618371.296] {Default Queue} discarded wl_surface#3431.enter(wl_output#3097) -[2618371.303] {Default Queue} discarded wl_surface#3431.enter(wl_output#3129) -[2618371.307] {Default Queue} discarded wl_surface#3431.enter(wl_output#3161) -[2618371.310] {Default Queue} discarded wl_surface#3431.enter(wl_output#3193) -[2618371.314] {Default Queue} discarded wl_surface#3431.enter(wl_output#3225) -[2618371.318] {Default Queue} discarded wl_surface#3431.enter(wl_output#3257) -[2618371.322] {Default Queue} discarded wl_surface#3431.enter(wl_output#3289) -[2618371.326] {Default Queue} discarded wl_surface#3431.enter(wl_output#3321) -[2618371.330] {Default Queue} discarded wl_surface#3431.enter(wl_output#3353) -[2618371.333] {Default Queue} discarded wl_surface#3431.enter(wl_output#3385) -[2618371.337] {Default Queue} discarded wl_surface#3431.enter(wl_output#3417) -[2618371.341] {Default Queue} discarded wl_surface#3431.enter(wl_output#3449) -[2618371.495] {Display Queue} wl_display#1.delete_id(3495) -[2618371.501] {Default Queue} wl_keyboard#3464.keymap(1, fd 549, 68213) -[2618371.506] {Default Queue} wl_keyboard#3464.enter(566, wl_surface#19, array[0]) -[2618371.511] {Default Queue} wl_keyboard#3464.modifiers(566, 0, 0, 16, 0) -[2618371.516] {Default Queue} discarded wl_shm#3471.format(875709016) -[2618371.520] {Default Queue} discarded wl_shm#3471.format(1) -[2618371.524] {Default Queue} discarded wl_shm#3471.format(0) -[2618371.529] {Default Queue} discarded wl_shm#3471.format(875708993) -[2618371.533] {Default Queue} discarded wl_shm#3472.format(875709016) -[2618371.537] {Default Queue} discarded wl_shm#3472.format(1) -[2618371.541] {Default Queue} discarded wl_shm#3472.format(0) -[2618371.545] {Default Queue} discarded wl_shm#3472.format(875708993) -[2618371.549] {Default Queue} discarded wl_shm#3473.format(875709016) -[2618371.553] {Default Queue} discarded wl_shm#3473.format(1) -[2618371.557] {Default Queue} discarded wl_shm#3473.format(0) -[2618371.561] {Default Queue} discarded wl_shm#3473.format(875708993) -[2618371.565] {Default Queue} wl_seat#3480.capabilities(7) -[2618371.570] {Default Queue} -> wl_seat#3480.get_keyboard(new id wl_keyboard#3496) -[2618371.574] {Default Queue} -> wl_seat#3480.get_pointer(new id wl_pointer#3497) -[2618371.579] {Default Queue} -> wl_data_device_manager#3476.get_data_device(new id wl_data_device#3498, wl_seat#3480) -[2618371.584] {Default Queue} -> zwp_primary_selection_device_manager_v1#3478.get_device(new id zwp_primary_selection_device_v1#3499, wl_seat#3480) -[2618371.592] {Default Queue} wl_output#3481.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618371.597] {Default Queue} wl_output#3481.mode(3, 1280, 800, 60000) -[2618371.602] {Default Queue} discarded wl_surface#2727.enter(wl_output#3481) -[2618371.606] {Default Queue} discarded wl_surface#3.enter(wl_output#3481) -[2618371.610] {Default Queue} discarded wl_surface#999.enter(wl_output#3481) -[2618371.614] {Default Queue} discarded wl_surface#3079.enter(wl_output#3481) -[2618371.618] {Default Queue} discarded wl_surface#1191.enter(wl_output#3481) -[2618371.622] {Default Queue} discarded wl_surface#1159.enter(wl_output#3481) -[2618371.627] {Default Queue} discarded wl_surface#1703.enter(wl_output#3481) -[2618371.631] {Default Queue} discarded wl_surface#2215.enter(wl_output#3481) -[2618371.635] {Default Queue} discarded wl_surface#423.enter(wl_output#3481) -[2618371.639] {Default Queue} discarded wl_surface#1447.enter(wl_output#3481) -[2618371.643] {Default Queue} discarded wl_surface#3047.enter(wl_output#3481) -[2618371.647] {Default Queue} discarded wl_surface#2023.enter(wl_output#3481) -[2618371.651] {Default Queue} discarded wl_surface#1639.enter(wl_output#3481) -[2618371.655] {Default Queue} discarded wl_surface#1319.enter(wl_output#3481) -[2618371.659] {Default Queue} discarded wl_surface#1127.enter(wl_output#3481) -[2618371.663] {Default Queue} discarded wl_surface#2151.enter(wl_output#3481) -[2618371.667] {Default Queue} discarded wl_surface#2375.enter(wl_output#3481) -[2618371.672] {Default Queue} discarded wl_surface#2695.enter(wl_output#3481) -[2618371.679] {Default Queue} discarded wl_surface#2919.enter(wl_output#3481) -[2618371.684] {Default Queue} discarded wl_surface#1063.enter(wl_output#3481) -[2618371.688] {Default Queue} discarded wl_surface#455.enter(wl_output#3481) -[2618371.692] {Default Queue} discarded wl_surface#1575.enter(wl_output#3481) -[2618371.696] {Default Queue} discarded wl_surface#1799.enter(wl_output#3481) -[2618371.700] {Default Queue} discarded wl_surface#1415.enter(wl_output#3481) -[2618371.704] {Default Queue} discarded wl_surface#2439.enter(wl_output#3481) -[2618371.707] {Default Queue} discarded wl_surface#2279.enter(wl_output#3481) -[2618371.711] {Default Queue} discarded wl_surface#1831.enter(wl_output#3481) -[2618371.715] {Default Queue} discarded wl_surface#903.enter(wl_output#3481) -[2618371.719] {Default Queue} discarded wl_surface#2663.enter(wl_output#3481) -[2618371.723] {Default Queue} discarded wl_surface#775.enter(wl_output#3481) -[2618371.727] {Default Queue} discarded wl_surface#1991.enter(wl_output#3481) -[2618371.730] {Default Queue} discarded wl_surface#1543.enter(wl_output#3481) -[2618371.734] {Default Queue} discarded wl_surface#135.enter(wl_output#3481) -[2618371.738] {Default Queue} discarded wl_surface#1287.enter(wl_output#3481) -[2618371.742] {Default Queue} discarded wl_surface#3399.enter(wl_output#3481) -[2618371.746] {Default Queue} discarded wl_surface#1031.enter(wl_output#3481) -[2618371.750] {Default Queue} discarded wl_surface#615.enter(wl_output#3481) -[2618371.754] {Default Queue} discarded wl_surface#3111.enter(wl_output#3481) -[2618371.758] {Default Queue} discarded wl_surface#231.enter(wl_output#3481) -[2618371.762] {Default Queue} discarded wl_surface#2343.enter(wl_output#3481) -[2618371.766] {Default Queue} discarded wl_surface#1863.enter(wl_output#3481) -[2618371.769] {Default Queue} discarded wl_surface#359.enter(wl_output#3481) -[2618371.773] {Default Queue} discarded wl_surface#2983.enter(wl_output#3481) -[2618371.777] {Default Queue} discarded wl_surface#583.enter(wl_output#3481) -[2618371.781] {Default Queue} discarded wl_surface#743.enter(wl_output#3481) -[2618371.785] {Default Queue} discarded wl_surface#3143.enter(wl_output#3481) -[2618371.789] {Default Queue} discarded wl_surface#2535.enter(wl_output#3481) -[2618371.793] {Default Queue} discarded wl_surface#3367.enter(wl_output#3481) -[2618371.797] {Default Queue} discarded wl_surface#967.enter(wl_output#3481) -[2618371.801] {Default Queue} discarded wl_surface#103.enter(wl_output#3481) -[2618371.805] {Default Queue} discarded wl_surface#3271.enter(wl_output#3481) -[2618371.808] {Default Queue} discarded wl_surface#327.enter(wl_output#3481) -[2618371.813] {Default Queue} discarded wl_surface#43.enter(wl_output#3481) -[2618371.817] {Default Queue} discarded wl_surface#2247.enter(wl_output#3481) -[2618371.820] {Default Queue} discarded wl_surface#807.enter(wl_output#3481) -[2618371.825] {Default Queue} discarded wl_surface#19.enter(wl_output#3481) -[2618371.828] {Default Queue} discarded wl_surface#2951.enter(wl_output#3481) -[2618371.832] {Default Queue} discarded wl_surface#1511.enter(wl_output#3481) -[2618371.836] {Default Queue} discarded wl_surface#199.enter(wl_output#3481) -[2618371.840] {Default Queue} discarded wl_surface#391.enter(wl_output#3481) -[2618371.844] {Default Queue} discarded wl_surface#935.enter(wl_output#3481) -[2618371.849] {Default Queue} discarded wl_surface#2823.enter(wl_output#3481) -[2618371.853] {Default Queue} discarded wl_surface#3015.enter(wl_output#3481) -[2618371.857] {Default Queue} discarded wl_surface#1671.enter(wl_output#3481) -[2618371.869] {Default Queue} discarded wl_surface#1351.enter(wl_output#3481) -[2618371.874] {Default Queue} discarded wl_surface#711.enter(wl_output#3481) -[2618371.878] {Default Queue} discarded wl_surface#3175.enter(wl_output#3481) -[2618371.881] {Default Queue} discarded wl_surface#3431.enter(wl_output#3481) -[2618371.885] {Default Queue} discarded wl_surface#1223.enter(wl_output#3481) -[2618371.889] {Default Queue} discarded wl_surface#1927.enter(wl_output#3481) -[2618371.893] {Default Queue} discarded wl_surface#871.enter(wl_output#3481) -[2618371.900] {Default Queue} discarded wl_surface#1895.enter(wl_output#3481) -[2618371.905] {Default Queue} discarded wl_surface#263.enter(wl_output#3481) -[2618371.909] {Default Queue} discarded wl_surface#551.enter(wl_output#3481) -[2618371.913] {Default Queue} discarded wl_surface#1735.enter(wl_output#3481) -[2618371.917] {Default Queue} discarded wl_surface#1479.enter(wl_output#3481) -[2618371.922] {Default Queue} discarded wl_surface#1772.enter(wl_output#3481) -[2618371.926] {Default Queue} discarded wl_surface#2599.enter(wl_output#3481) -[2618371.930] {Default Queue} discarded wl_surface#2631.enter(wl_output#3481) -[2618371.933] {Default Queue} discarded wl_surface#1959.enter(wl_output#3481) -[2618371.937] {Default Queue} discarded wl_surface#647.enter(wl_output#3481) -[2618371.941] {Default Queue} discarded wl_surface#2055.enter(wl_output#3481) -[2618371.945] {Default Queue} discarded wl_surface#2508.enter(wl_output#3481) -[2618371.949] {Default Queue} discarded wl_surface#71.enter(wl_output#3481) -[2618371.953] {Default Queue} discarded wl_surface#2759.enter(wl_output#3481) -[2618371.957] {Default Queue} discarded wl_surface#2791.enter(wl_output#3481) -[2618371.961] {Default Queue} discarded wl_surface#2887.enter(wl_output#3481) -[2618371.965] {Default Queue} discarded wl_surface#2183.enter(wl_output#3481) -[2618371.969] {Default Queue} discarded wl_surface#2567.enter(wl_output#3481) -[2618371.973] {Default Queue} discarded wl_surface#839.enter(wl_output#3481) -[2618371.977] {Default Queue} discarded wl_surface#1607.enter(wl_output#3481) -[2618371.981] {Default Queue} discarded wl_surface#1095.enter(wl_output#3481) -[2618371.985] {Default Queue} discarded wl_surface#1383.enter(wl_output#3481) -[2618371.989] {Default Queue} discarded wl_surface#487.enter(wl_output#3481) -[2618371.992] {Default Queue} discarded wl_surface#2311.enter(wl_output#3481) -[2618371.996] {Default Queue} discarded wl_surface#519.enter(wl_output#3481) -[2618372.000] {Default Queue} discarded wl_surface#3335.enter(wl_output#3481) -[2618372.004] {Default Queue} discarded wl_surface#3239.enter(wl_output#3481) -[2618372.008] {Default Queue} discarded wl_surface#2087.enter(wl_output#3481) -[2618372.012] {Default Queue} discarded wl_surface#2471.enter(wl_output#3481) -[2618372.016] {Default Queue} discarded wl_surface#295.enter(wl_output#3481) -[2618372.020] {Default Queue} discarded wl_surface#167.enter(wl_output#3481) -[2618372.024] {Default Queue} discarded wl_surface#1255.enter(wl_output#3481) -[2618372.028] {Default Queue} discarded wl_surface#2855.enter(wl_output#3481) -[2618372.033] {Default Queue} discarded wl_surface#3303.enter(wl_output#3481) -[2618372.037] {Default Queue} discarded wl_surface#679.enter(wl_output#3481) -[2618372.041] {Default Queue} discarded wl_surface#2407.enter(wl_output#3481) -[2618372.046] {Default Queue} discarded wl_surface#3207.enter(wl_output#3481) -[2618372.050] {Default Queue} discarded wl_surface#2119.enter(wl_output#3481) -[2618372.054] {Default Queue} wl_registry#3494.global(1, "wl_compositor", 6) -[2618372.060] {Default Queue} -> wl_registry#3494.bind(1, "wl_compositor", 1, new id [unknown]#3500) -[2618372.066] {Default Queue} wl_registry#3494.global(2, "wl_subcompositor", 1) -[2618372.070] {Default Queue} -> wl_registry#3494.bind(2, "wl_subcompositor", 1, new id [unknown]#3501) -[2618372.075] {Default Queue} wl_registry#3494.global(3, "xdg_wm_base", 6) -[2618372.080] {Default Queue} -> wl_registry#3494.bind(3, "xdg_wm_base", 1, new id [unknown]#3502) -[2618372.085] {Default Queue} wl_registry#3494.global(6, "zwlr_layer_shell_v1", 5) -[2618372.089] {Default Queue} wl_registry#3494.global(7, "ext_session_lock_manager_v1", 1) -[2618372.094] {Default Queue} wl_registry#3494.global(8, "wl_shm", 2) -[2618372.099] {Default Queue} -> wl_registry#3494.bind(8, "wl_shm", 1, new id [unknown]#3503) -[2618372.103] {Default Queue} -> wl_registry#3494.bind(8, "wl_shm", 1, new id [unknown]#3504) -[2618372.108] {Default Queue} -> wl_registry#3494.bind(8, "wl_shm", 1, new id [unknown]#3505) -[2618372.112] {Default Queue} wl_registry#3494.global(9, "zxdg_output_manager_v1", 3) -[2618372.120] {Default Queue} wl_registry#3494.global(10, "wp_fractional_scale_manager_v1", 1) -[2618372.126] {Default Queue} wl_registry#3494.global(11, "zwp_tablet_manager_v2", 1) -[2618372.130] {Default Queue} wl_registry#3494.global(12, "zwp_pointer_gestures_v1", 3) -[2618372.135] {Default Queue} wl_registry#3494.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618372.139] {Default Queue} -> wl_registry#3494.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3506) -[2618372.144] {Default Queue} wl_registry#3494.global(14, "zwp_pointer_constraints_v1", 1) -[2618372.148] {Default Queue} -> wl_registry#3494.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3507) -[2618372.153] {Default Queue} wl_registry#3494.global(15, "ext_idle_notifier_v1", 2) -[2618372.158] {Default Queue} wl_registry#3494.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618372.164] {Default Queue} wl_registry#3494.global(17, "wl_data_device_manager", 3) -[2618372.171] {Default Queue} -> wl_registry#3494.bind(17, "wl_data_device_manager", 2, new id [unknown]#3508) -[2618372.177] {Default Queue} -> wl_data_device_manager#3508.create_data_source(new id wl_data_source#3509) -[2618372.182] {Default Queue} -> wl_data_source#3509.offer("text/plain") -[2618372.186] {Default Queue} -> wl_data_source#3509.offer("text/plain;charset=utf-8") -[2618372.190] {Default Queue} -> wl_data_source#3509.offer("TEXT") -[2618372.194] {Default Queue} -> wl_data_source#3509.offer("STRING") -[2618372.198] {Default Queue} -> wl_data_source#3509.offer("UTF8_STRING") -[2618372.203] {Default Queue} wl_registry#3494.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618372.208] {Default Queue} -> wl_registry#3494.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3510) -[2618372.215] {Default Queue} -> zwp_primary_selection_device_manager_v1#3510.create_source(new id zwp_primary_selection_source_v1#3511) -[2618372.223] {Default Queue} -> zwp_primary_selection_source_v1#3511.offer("text/plain") -[2618372.229] {Default Queue} -> zwp_primary_selection_source_v1#3511.offer("text/plain;charset=utf-8") -[2618372.233] {Default Queue} -> zwp_primary_selection_source_v1#3511.offer("TEXT") -[2618372.237] {Default Queue} -> zwp_primary_selection_source_v1#3511.offer("STRING") -[2618372.242] {Default Queue} -> zwp_primary_selection_source_v1#3511.offer("UTF8_STRING") -[2618372.246] {Default Queue} wl_registry#3494.global(19, "zwlr_data_control_manager_v1", 2) -[2618372.250] {Default Queue} wl_registry#3494.global(20, "ext_data_control_manager_v1", 1) -[2618372.255] {Default Queue} wl_registry#3494.global(21, "wp_presentation", 2) -[2618372.259] {Default Queue} wl_registry#3494.global(22, "wp_security_context_manager_v1", 1) -[2618372.263] {Default Queue} wl_registry#3494.global(23, "zwp_text_input_manager_v3", 1) -[2618372.268] {Default Queue} wl_registry#3494.global(24, "zwp_input_method_manager_v2", 1) -[2618372.272] {Default Queue} wl_registry#3494.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618372.276] {Default Queue} wl_registry#3494.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618372.281] {Default Queue} wl_registry#3494.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618372.285] {Default Queue} wl_registry#3494.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618372.289] {Default Queue} wl_registry#3494.global(29, "ext_workspace_manager_v1", 1) -[2618372.294] {Default Queue} wl_registry#3494.global(30, "zwlr_output_manager_v1", 4) -[2618372.298] {Default Queue} wl_registry#3494.global(31, "zwlr_screencopy_manager_v1", 3) -[2618372.303] {Default Queue} wl_registry#3494.global(32, "wp_viewporter", 1) -[2618372.307] {Default Queue} wl_registry#3494.global(33, "zxdg_exporter_v2", 1) -[2618372.311] {Default Queue} wl_registry#3494.global(34, "zxdg_importer_v2", 1) -[2618372.316] {Default Queue} wl_registry#3494.global(36, "xdg_activation_v1", 1) -[2618372.320] {Default Queue} wl_registry#3494.global(37, "mutter_x11_interop", 1) -[2618372.324] {Default Queue} wl_registry#3494.global(38, "wl_seat", 9) -[2618372.332] {Default Queue} -> wl_registry#3494.bind(38, "wl_seat", 1, new id [unknown]#3512) -[2618372.339] {Default Queue} wl_registry#3494.global(39, "wp_cursor_shape_manager_v1", 2) -[2618372.343] {Default Queue} wl_registry#3494.global(40, "wl_output", 4) -[2618372.348] {Default Queue} -> wl_registry#3494.bind(40, "wl_output", 1, new id [unknown]#3513) -[2618372.352] {Default Queue} wl_callback#3495.done(0) -[2618372.357] {Default Queue} discarded wl_surface#3463.enter(wl_output#18) -[2618372.361] {Default Queue} discarded wl_surface#3463.enter(wl_output#57) -[2618372.365] {Default Queue} discarded wl_surface#3463.enter(wl_output#89) -[2618372.369] {Default Queue} discarded wl_surface#3463.enter(wl_output#121) -[2618372.373] {Default Queue} discarded wl_surface#3463.enter(wl_output#153) -[2618372.377] {Default Queue} discarded wl_surface#3463.enter(wl_output#185) -[2618372.381] {Default Queue} discarded wl_surface#3463.enter(wl_output#217) -[2618372.385] {Default Queue} discarded wl_surface#3463.enter(wl_output#249) -[2618372.389] {Default Queue} discarded wl_surface#3463.enter(wl_output#281) -[2618372.392] {Default Queue} discarded wl_surface#3463.enter(wl_output#313) -[2618372.396] {Default Queue} discarded wl_surface#3463.enter(wl_output#345) -[2618372.400] {Default Queue} discarded wl_surface#3463.enter(wl_output#377) -[2618372.404] {Default Queue} discarded wl_surface#3463.enter(wl_output#409) -[2618372.408] {Default Queue} discarded wl_surface#3463.enter(wl_output#441) -[2618372.412] {Default Queue} discarded wl_surface#3463.enter(wl_output#473) -[2618372.416] {Default Queue} discarded wl_surface#3463.enter(wl_output#505) -[2618372.420] {Default Queue} discarded wl_surface#3463.enter(wl_output#537) -[2618372.424] {Default Queue} discarded wl_surface#3463.enter(wl_output#569) -[2618372.428] {Default Queue} discarded wl_surface#3463.enter(wl_output#601) -[2618372.432] {Default Queue} discarded wl_surface#3463.enter(wl_output#633) -[2618372.436] {Default Queue} discarded wl_surface#3463.enter(wl_output#665) -[2618372.440] {Default Queue} discarded wl_surface#3463.enter(wl_output#697) -[2618372.444] {Default Queue} discarded wl_surface#3463.enter(wl_output#729) -[2618372.448] {Default Queue} discarded wl_surface#3463.enter(wl_output#761) -[2618372.452] {Default Queue} discarded wl_surface#3463.enter(wl_output#793) -[2618372.456] {Default Queue} discarded wl_surface#3463.enter(wl_output#825) -[2618372.460] {Default Queue} discarded wl_surface#3463.enter(wl_output#857) -[2618372.464] {Default Queue} discarded wl_surface#3463.enter(wl_output#889) -[2618372.468] {Default Queue} discarded wl_surface#3463.enter(wl_output#921) -[2618372.471] {Default Queue} discarded wl_surface#3463.enter(wl_output#953) -[2618372.475] {Default Queue} discarded wl_surface#3463.enter(wl_output#985) -[2618372.480] {Default Queue} discarded wl_surface#3463.enter(wl_output#1017) -[2618372.483] {Default Queue} discarded wl_surface#3463.enter(wl_output#1049) -[2618372.487] {Default Queue} discarded wl_surface#3463.enter(wl_output#1081) -[2618372.491] {Default Queue} discarded wl_surface#3463.enter(wl_output#1113) -[2618372.495] {Default Queue} discarded wl_surface#3463.enter(wl_output#1145) -[2618372.499] {Default Queue} discarded wl_surface#3463.enter(wl_output#1177) -[2618372.503] {Default Queue} discarded wl_surface#3463.enter(wl_output#1209) -[2618372.507] {Default Queue} discarded wl_surface#3463.enter(wl_output#1241) -[2618372.511] {Default Queue} discarded wl_surface#3463.enter(wl_output#1273) -[2618372.515] {Default Queue} discarded wl_surface#3463.enter(wl_output#1305) -[2618372.519] {Default Queue} discarded wl_surface#3463.enter(wl_output#1337) -[2618372.523] {Default Queue} discarded wl_surface#3463.enter(wl_output#1369) -[2618372.527] {Default Queue} discarded wl_surface#3463.enter(wl_output#1401) -[2618372.531] {Default Queue} discarded wl_surface#3463.enter(wl_output#1433) -[2618372.535] {Default Queue} discarded wl_surface#3463.enter(wl_output#1465) -[2618372.539] {Default Queue} discarded wl_surface#3463.enter(wl_output#1497) -[2618372.542] {Default Queue} discarded wl_surface#3463.enter(wl_output#1529) -[2618372.550] {Default Queue} discarded wl_surface#3463.enter(wl_output#1561) -[2618372.555] {Default Queue} discarded wl_surface#3463.enter(wl_output#1593) -[2618372.560] {Default Queue} discarded wl_surface#3463.enter(wl_output#1625) -[2618372.563] {Default Queue} discarded wl_surface#3463.enter(wl_output#1657) -[2618372.568] {Default Queue} discarded wl_surface#3463.enter(wl_output#1689) -[2618372.572] {Default Queue} discarded wl_surface#3463.enter(wl_output#1721) -[2618372.576] {Default Queue} discarded wl_surface#3463.enter(wl_output#1753) -[2618372.580] {Default Queue} discarded wl_surface#3463.enter(wl_output#1785) -[2618372.584] {Default Queue} discarded wl_surface#3463.enter(wl_output#1817) -[2618372.587] {Default Queue} discarded wl_surface#3463.enter(wl_output#1849) -[2618372.592] {Default Queue} discarded wl_surface#3463.enter(wl_output#1881) -[2618372.596] {Default Queue} discarded wl_surface#3463.enter(wl_output#1913) -[2618372.600] {Default Queue} discarded wl_surface#3463.enter(wl_output#1945) -[2618372.604] {Default Queue} discarded wl_surface#3463.enter(wl_output#1977) -[2618372.608] {Default Queue} discarded wl_surface#3463.enter(wl_output#2009) -[2618372.612] {Default Queue} discarded wl_surface#3463.enter(wl_output#2041) -[2618372.616] {Default Queue} discarded wl_surface#3463.enter(wl_output#2073) -[2618372.620] {Default Queue} discarded wl_surface#3463.enter(wl_output#2105) -[2618372.624] {Default Queue} discarded wl_surface#3463.enter(wl_output#2137) -[2618372.628] {Default Queue} -> wl_compositor#3468.create_surface(new id wl_surface#3495) -[2618372.632] {Default Queue} -> wl_subcompositor#3501.get_subsurface(new id wl_subsurface#3514, wl_surface#3495, wl_surface#3463) -[2618372.640] {Default Queue} -> wl_subsurface#3514.set_desync() -[2618372.645] {Default Queue} -> wl_subsurface#3514.set_position(0, 0) -[2618372.649] {Default Queue} -> wl_subsurface#3514.place_above(wl_surface#3463) -[2618372.690] {Default Queue} -> wl_shm#3503.create_pool(new id wl_shm_pool#3515, fd 554, 16) -[2618372.696] {Default Queue} -> wl_shm#3503.create_pool(new id wl_shm_pool#3516, fd 555, 16) -[2618372.701] {Default Queue} -> wl_shm_pool#3515.create_buffer(new id wl_buffer#3517, 0, 2, 2, 8, 0) -[2618372.706] {Default Queue} -> wl_shm_pool#3516.create_buffer(new id wl_buffer#3518, 0, 2, 2, 8, 0) -[2618372.714] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3517, 0, 0) -[2618372.718] {Default Queue} -> wl_surface#3495.commit() -[2618372.725] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3517, 0, 0) -[2618372.729] {Default Queue} -> wl_surface#3495.commit() -[2618372.734] {Default Queue} -> wl_compositor#3500.create_region(new id wl_region#3519) -[2618372.738] {Default Queue} -> wl_compositor#3500.create_region(new id wl_region#3520) -[2618372.743] {Default Queue} -> wl_region#3519.subtract(0, 0, 2, 2) -[2618372.747] {Default Queue} -> wl_region#3519.add(0, 0, 0, 0) -[2618372.752] {Default Queue} -> wl_surface#3495.set_opaque_region(wl_region#3520) -[2618372.756] {Default Queue} -> wl_surface#3495.set_input_region(wl_region#3519) -[2618372.760] {Default Queue} -> wl_surface#3495.damage(0, 0, 2, 2) -[2618372.764] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) -[2618372.771] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3517, 0, 0) -[2618372.776] {Default Queue} -> wl_surface#3495.commit() -[2618372.808] {Default Queue} -> wl_shm#3505.create_pool(new id wl_shm_pool#3521, fd 558, 640) -[2618372.814] {Default Queue} -> wl_shm#3505.create_pool(new id wl_shm_pool#3522, fd 559, 640) -[2618372.818] {Default Queue} -> wl_shm_pool#3521.create_buffer(new id wl_buffer#3523, 0, 10, 16, 40, 0) -[2618372.823] {Default Queue} -> wl_shm_pool#3522.create_buffer(new id wl_buffer#3524, 0, 10, 16, 40, 0) -[2618372.830] {Default Queue} -> wl_compositor#3500.create_surface(new id wl_surface#3525) -[2618372.834] {Default Queue} -> wl_surface#3525.attach(wl_buffer#3523, 0, 0) -[2618372.839] {Default Queue} -> wl_surface#3525.commit() -[2618372.844] {Default Queue} -> wl_surface#3525.attach(wl_buffer#3523, 0, 0) -[2618372.852] {Default Queue} -> wl_surface#3525.commit() -[2618372.860] {Default Queue} -> wl_surface#3399.damage(0, 0, 16, 2) -[2618372.873] {Default Queue} -> wl_surface#3399.damage(0, 0, 16, 2) -[2618372.879] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 16) -[2618372.884] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 16) -[2618372.894] {Default Queue} -> wl_region#3295.subtract(0, 0, 2, 2) -[2618372.899] {Default Queue} -> wl_subsurface#3290.set_position(3, 3) -[2618372.903] {Default Queue} -> wl_region#3295.subtract(0, 0, 5, 5) -[2618372.908] {Default Queue} -> wl_region#3295.add(0, 0, 0, 0) -[2618372.912] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) -[2618372.916] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) -[2618372.920] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618372.925] {Default Queue} -> wl_surface#3399.damage(0, 0, 16, 2) -[2618372.929] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 16) -[2618372.934] {Default Queue} -> wl_surface#3495.damage(0, 0, 2, 2) -[2618372.938] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) -[2618372.942] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) -[2618372.946] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) -[2618372.951] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) -[2618372.959] {Default Queue} -> wl_region#3295.subtract(0, 0, 5, 5) -[2618372.963] {Default Queue} -> wl_region#3295.add(0, 0, 0, 0) -[2618372.968] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) -[2618372.972] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) -[2618372.977] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3293, 0, 0) -[2618372.981] {Default Queue} -> wl_surface#3271.commit() -[2618372.986] {Default Queue} -> wl_region#3423.subtract(0, 0, 16, 2) -[2618372.991] {Default Queue} -> wl_subsurface#3418.set_position(-14, 0) -[2618372.995] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) -[2618373.000] {Default Queue} -> wl_region#3423.add(0, 0, 0, 0) -[2618373.005] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618373.009] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618373.014] {Default Queue} -> wl_surface#3399.damage(0, 0, 16, 2) -[2618373.020] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) -[2618373.025] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) -[2618373.029] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618373.034] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618373.041] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) -[2618373.045] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) -[2618373.050] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618373.054] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618373.059] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) -[2618373.063] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) -[2618373.067] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618373.071] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618373.076] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) -[2618373.080] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) -[2618373.085] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618373.089] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618373.094] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) -[2618373.098] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) -[2618373.102] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618373.107] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618373.114] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) -[2618373.119] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) -[2618373.123] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618373.127] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618373.135] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) -[2618373.141] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) -[2618373.146] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618373.150] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618373.155] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) -[2618373.159] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) -[2618373.164] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618373.168] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618373.173] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) -[2618373.178] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) -[2618373.182] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618373.186] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618373.196] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) -[2618373.202] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) -[2618373.206] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618373.211] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618373.215] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) -[2618373.220] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) -[2618373.224] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618373.229] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618373.233] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) -[2618373.237] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) -[2618373.242] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618373.246] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618373.251] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) -[2618373.255] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) -[2618373.260] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618373.264] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618373.269] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) -[2618373.274] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) -[2618373.278] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618373.282] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618373.289] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) -[2618373.293] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) -[2618373.297] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618373.301] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618373.306] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) -[2618373.311] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) -[2618373.315] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618373.319] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618373.323] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) -[2618373.328] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) -[2618373.332] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618373.337] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618373.341] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) -[2618373.345] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) -[2618373.349] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618373.353] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618373.364] {Default Queue} -> wl_region#3423.subtract(0, 0, 30, 2) -[2618373.369] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) -[2618373.373] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618373.377] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618373.394] {Default Queue} -> wl_surface#3399.damage(0, 0, 16, 2) -[2618373.400] {Default Queue} -> wl_surface#3399.damage(0, 0, 16, 2) -[2618373.408] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3421, 0, 0) -[2618373.414] {Default Queue} -> wl_surface#3399.commit() -[2618373.418] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 16) -[2618373.423] {Default Queue} -> wl_subsurface#3450.set_position(0, -14) -[2618373.427] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) -[2618373.432] {Default Queue} -> wl_region#3455.add(0, 0, 0, 0) -[2618373.436] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618373.440] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618373.444] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 16) -[2618373.450] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) -[2618373.454] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) -[2618373.459] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618373.463] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618373.470] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) -[2618373.474] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) -[2618373.478] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618373.482] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618373.487] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) -[2618373.491] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) -[2618373.496] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618373.500] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618373.505] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) -[2618373.509] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) -[2618373.513] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618373.517] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618373.522] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) -[2618373.526] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) -[2618373.530] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618373.534] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618373.540] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) -[2618373.545] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) -[2618373.550] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618373.554] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618373.559] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) -[2618373.564] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) -[2618373.568] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618373.578] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618373.583] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) -[2618373.588] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) -[2618373.592] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618373.596] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618373.601] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) -[2618373.606] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) -[2618373.610] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618373.614] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618373.624] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) -[2618373.629] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) -[2618373.633] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618373.638] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618373.642] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) -[2618373.647] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) -[2618373.651] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618373.655] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618373.659] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) -[2618373.667] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) -[2618373.673] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618373.677] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618373.681] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) -[2618373.686] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) -[2618373.690] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618373.694] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618373.700] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) -[2618373.704] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) -[2618373.709] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618373.713] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618373.719] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) -[2618373.723] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) -[2618373.728] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618373.732] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618373.736] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) -[2618373.741] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) -[2618373.745] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618373.749] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618373.754] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) -[2618373.758] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) -[2618373.762] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618373.766] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618373.771] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) -[2618373.776] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) -[2618373.780] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618373.784] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618373.794] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 30) -[2618373.800] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) -[2618373.804] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618373.808] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618373.814] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 16) -[2618373.819] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 16) -[2618373.823] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3453, 0, 0) -[2618373.828] {Default Queue} -> wl_surface#3431.commit() -[2618373.832] {Default Queue} -> wl_region#3487.subtract(0, 0, 2, 2) -[2618373.837] {Default Queue} -> wl_subsurface#3482.set_position(0, 0) -[2618373.841] {Default Queue} -> wl_region#3487.subtract(0, 0, 2, 2) -[2618373.845] {Default Queue} -> wl_region#3487.add(0, 0, 0, 0) -[2618373.849] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) -[2618373.853] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) -[2618373.857] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) -[2618373.867] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) -[2618373.873] {Default Queue} -> wl_region#3487.subtract(0, 0, 2, 2) -[2618373.877] {Default Queue} -> wl_region#3487.add(0, 0, 0, 0) -[2618373.882] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) -[2618373.886] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) -[2618373.890] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3485, 0, 0) -[2618373.895] {Default Queue} -> wl_surface#3463.commit() -[2618373.900] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2618373.904] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2618373.909] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2618373.913] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2618373.920] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3526) -[2618373.925] {Default Queue} -> wl_display#1.sync(new id wl_callback#3527) -[2618375.497] {Default Queue} discarded wl_surface#3463.enter(wl_output#2169) -[2618375.506] {Default Queue} discarded wl_surface#3463.enter(wl_output#2201) -[2618375.510] {Default Queue} discarded wl_surface#3463.enter(wl_output#2233) -[2618375.514] {Default Queue} discarded wl_surface#3463.enter(wl_output#2265) -[2618375.518] {Default Queue} discarded wl_surface#3463.enter(wl_output#2297) -[2618375.522] {Default Queue} discarded wl_surface#3463.enter(wl_output#2329) -[2618375.525] {Default Queue} discarded wl_surface#3463.enter(wl_output#2361) -[2618375.529] {Default Queue} discarded wl_surface#3463.enter(wl_output#2393) -[2618375.533] {Default Queue} discarded wl_surface#3463.enter(wl_output#2425) -[2618375.538] {Default Queue} discarded wl_surface#3463.enter(wl_output#2457) -[2618375.541] {Default Queue} discarded wl_surface#3463.enter(wl_output#2489) -[2618375.546] {Default Queue} discarded wl_surface#3463.enter(wl_output#2521) -[2618375.549] {Default Queue} discarded wl_surface#3463.enter(wl_output#2553) -[2618375.553] {Default Queue} discarded wl_surface#3463.enter(wl_output#2585) -[2618375.557] {Default Queue} discarded wl_surface#3463.enter(wl_output#2617) -[2618375.561] {Default Queue} discarded wl_surface#3463.enter(wl_output#2649) -[2618375.565] {Default Queue} discarded wl_surface#3463.enter(wl_output#2681) -[2618375.569] {Default Queue} discarded wl_surface#3463.enter(wl_output#2713) -[2618375.573] {Default Queue} discarded wl_surface#3463.enter(wl_output#2745) -[2618375.577] {Default Queue} discarded wl_surface#3463.enter(wl_output#2777) -[2618375.580] {Default Queue} discarded wl_surface#3463.enter(wl_output#2809) -[2618375.584] {Default Queue} discarded wl_surface#3463.enter(wl_output#2841) -[2618375.588] {Default Queue} discarded wl_surface#3463.enter(wl_output#2873) -[2618375.592] {Default Queue} discarded wl_surface#3463.enter(wl_output#2905) -[2618375.596] {Default Queue} discarded wl_surface#3463.enter(wl_output#2937) -[2618375.599] {Default Queue} discarded wl_surface#3463.enter(wl_output#2969) -[2618375.603] {Default Queue} discarded wl_surface#3463.enter(wl_output#3001) -[2618375.607] {Default Queue} discarded wl_surface#3463.enter(wl_output#3033) -[2618375.611] {Default Queue} discarded wl_surface#3463.enter(wl_output#3065) -[2618375.615] {Default Queue} discarded wl_surface#3463.enter(wl_output#3097) -[2618375.619] {Default Queue} discarded wl_surface#3463.enter(wl_output#3129) -[2618375.623] {Default Queue} discarded wl_surface#3463.enter(wl_output#3161) -[2618375.627] {Default Queue} discarded wl_surface#3463.enter(wl_output#3193) -[2618375.630] {Default Queue} discarded wl_surface#3463.enter(wl_output#3225) -[2618375.634] {Default Queue} discarded wl_surface#3463.enter(wl_output#3257) -[2618375.638] {Default Queue} discarded wl_surface#3463.enter(wl_output#3289) -[2618375.642] {Default Queue} discarded wl_surface#3463.enter(wl_output#3321) -[2618375.646] {Default Queue} discarded wl_surface#3463.enter(wl_output#3353) -[2618375.650] {Default Queue} discarded wl_surface#3463.enter(wl_output#3385) -[2618375.654] {Default Queue} discarded wl_surface#3463.enter(wl_output#3417) -[2618375.658] {Default Queue} discarded wl_surface#3463.enter(wl_output#3449) -[2618375.662] {Default Queue} discarded wl_surface#3463.enter(wl_output#3481) -[2618380.569] {Default Queue} wl_keyboard#3496.keymap(1, fd 554, 68213) -[2618380.583] {Default Queue} wl_keyboard#3496.enter(566, wl_surface#19, array[0]) -[2618380.589] {Default Queue} wl_keyboard#3496.modifiers(566, 0, 0, 16, 0) -[2618380.595] {Default Queue} discarded wl_shm#3503.format(875709016) -[2618380.599] {Default Queue} discarded wl_shm#3503.format(1) -[2618380.603] {Default Queue} discarded wl_shm#3503.format(0) -[2618380.607] {Default Queue} discarded wl_shm#3503.format(875708993) -[2618380.611] {Default Queue} discarded wl_shm#3504.format(875709016) -[2618380.615] {Default Queue} discarded wl_shm#3504.format(1) -[2618380.619] {Default Queue} discarded wl_shm#3504.format(0) -[2618380.624] {Default Queue} discarded wl_shm#3504.format(875708993) -[2618380.629] {Default Queue} discarded wl_shm#3505.format(875709016) -[2618380.638] {Default Queue} discarded wl_shm#3505.format(1) -[2618380.646] {Default Queue} discarded wl_shm#3505.format(0) -[2618380.650] {Default Queue} discarded wl_shm#3505.format(875708993) -[2618380.654] {Default Queue} wl_seat#3512.capabilities(7) -[2618380.659] {Default Queue} -> wl_seat#3512.get_keyboard(new id wl_keyboard#3528) -[2618380.663] {Default Queue} -> wl_seat#3512.get_pointer(new id wl_pointer#3529) -[2618380.668] {Default Queue} -> wl_data_device_manager#3508.get_data_device(new id wl_data_device#3530, wl_seat#3512) -[2618380.673] {Default Queue} -> zwp_primary_selection_device_manager_v1#3510.get_device(new id zwp_primary_selection_device_v1#3531, wl_seat#3512) -[2618380.681] {Default Queue} wl_output#3513.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618380.686] {Default Queue} wl_output#3513.mode(3, 1280, 800, 60000) -[2618380.691] {Default Queue} discarded wl_surface#2727.enter(wl_output#3513) -[2618380.695] {Default Queue} discarded wl_surface#3.enter(wl_output#3513) -[2618380.699] {Default Queue} discarded wl_surface#999.enter(wl_output#3513) -[2618380.703] {Default Queue} discarded wl_surface#3079.enter(wl_output#3513) -[2618380.708] {Default Queue} discarded wl_surface#1191.enter(wl_output#3513) -[2618380.712] {Default Queue} discarded wl_surface#1159.enter(wl_output#3513) -[2618380.716] {Default Queue} discarded wl_surface#1703.enter(wl_output#3513) -[2618380.720] {Default Queue} discarded wl_surface#2215.enter(wl_output#3513) -[2618380.724] {Default Queue} discarded wl_surface#423.enter(wl_output#3513) -[2618380.727] {Default Queue} discarded wl_surface#1447.enter(wl_output#3513) -[2618380.731] {Default Queue} discarded wl_surface#3047.enter(wl_output#3513) -[2618380.735] {Default Queue} discarded wl_surface#2023.enter(wl_output#3513) -[2618380.739] {Default Queue} discarded wl_surface#1639.enter(wl_output#3513) -[2618380.743] {Default Queue} discarded wl_surface#1319.enter(wl_output#3513) -[2618380.747] {Default Queue} discarded wl_surface#1127.enter(wl_output#3513) -[2618380.751] {Default Queue} discarded wl_surface#2151.enter(wl_output#3513) -[2618380.755] {Default Queue} discarded wl_surface#2375.enter(wl_output#3513) -[2618380.759] {Default Queue} discarded wl_surface#2695.enter(wl_output#3513) -[2618380.763] {Default Queue} discarded wl_surface#2919.enter(wl_output#3513) -[2618380.767] {Default Queue} discarded wl_surface#1063.enter(wl_output#3513) -[2618380.771] {Default Queue} discarded wl_surface#455.enter(wl_output#3513) -[2618380.775] {Default Queue} discarded wl_surface#1575.enter(wl_output#3513) -[2618380.779] {Default Queue} discarded wl_surface#1799.enter(wl_output#3513) -[2618380.782] {Default Queue} discarded wl_surface#1415.enter(wl_output#3513) -[2618380.786] {Default Queue} discarded wl_surface#2439.enter(wl_output#3513) -[2618380.791] {Default Queue} discarded wl_surface#2279.enter(wl_output#3513) -[2618380.796] {Default Queue} discarded wl_surface#1831.enter(wl_output#3513) -[2618380.801] {Default Queue} discarded wl_surface#903.enter(wl_output#3513) -[2618380.807] {Default Queue} discarded wl_surface#2663.enter(wl_output#3513) -[2618380.814] {Default Queue} discarded wl_surface#775.enter(wl_output#3513) -[2618380.820] {Default Queue} discarded wl_surface#1991.enter(wl_output#3513) -[2618380.828] {Default Queue} discarded wl_surface#1543.enter(wl_output#3513) -[2618380.835] {Default Queue} discarded wl_surface#135.enter(wl_output#3513) -[2618380.841] {Default Queue} discarded wl_surface#1287.enter(wl_output#3513) -[2618380.847] {Default Queue} discarded wl_surface#3399.enter(wl_output#3513) -[2618380.852] {Default Queue} discarded wl_surface#1031.enter(wl_output#3513) -[2618380.857] {Default Queue} discarded wl_surface#615.enter(wl_output#3513) -[2618380.866] {Default Queue} discarded wl_surface#3111.enter(wl_output#3513) -[2618380.870] {Default Queue} discarded wl_surface#231.enter(wl_output#3513) -[2618380.875] {Default Queue} discarded wl_surface#2343.enter(wl_output#3513) -[2618380.879] {Default Queue} discarded wl_surface#1863.enter(wl_output#3513) -[2618380.882] {Default Queue} discarded wl_surface#359.enter(wl_output#3513) -[2618380.890] {Default Queue} discarded wl_surface#2983.enter(wl_output#3513) -[2618380.896] {Default Queue} discarded wl_surface#583.enter(wl_output#3513) -[2618380.900] {Default Queue} discarded wl_surface#743.enter(wl_output#3513) -[2618380.904] {Default Queue} discarded wl_surface#3143.enter(wl_output#3513) -[2618380.908] {Default Queue} discarded wl_surface#2535.enter(wl_output#3513) -[2618380.912] {Default Queue} discarded wl_surface#3367.enter(wl_output#3513) -[2618380.916] {Default Queue} discarded wl_surface#967.enter(wl_output#3513) -[2618380.920] {Default Queue} discarded wl_surface#103.enter(wl_output#3513) -[2618380.924] {Default Queue} discarded wl_surface#3271.enter(wl_output#3513) -[2618380.928] {Default Queue} discarded wl_surface#327.enter(wl_output#3513) -[2618380.932] {Default Queue} discarded wl_surface#43.enter(wl_output#3513) -[2618380.936] {Default Queue} discarded wl_surface#2247.enter(wl_output#3513) -[2618380.940] {Default Queue} discarded wl_surface#807.enter(wl_output#3513) -[2618380.944] {Default Queue} discarded wl_surface#19.enter(wl_output#3513) -[2618380.947] {Default Queue} discarded wl_surface#2951.enter(wl_output#3513) -[2618380.951] {Default Queue} discarded wl_surface#1511.enter(wl_output#3513) -[2618380.955] {Default Queue} discarded wl_surface#199.enter(wl_output#3513) -[2618380.959] {Default Queue} discarded wl_surface#3463.enter(wl_output#3513) -[2618380.963] {Default Queue} discarded wl_surface#391.enter(wl_output#3513) -[2618380.967] {Default Queue} discarded wl_surface#935.enter(wl_output#3513) -[2618380.971] {Default Queue} discarded wl_surface#2823.enter(wl_output#3513) -[2618380.975] {Default Queue} discarded wl_surface#3015.enter(wl_output#3513) -[2618380.979] {Default Queue} discarded wl_surface#1671.enter(wl_output#3513) -[2618380.983] {Default Queue} discarded wl_surface#1351.enter(wl_output#3513) -[2618380.987] {Default Queue} discarded wl_surface#711.enter(wl_output#3513) -[2618380.991] {Default Queue} discarded wl_surface#3175.enter(wl_output#3513) -[2618380.995] {Default Queue} discarded wl_surface#3431.enter(wl_output#3513) -[2618380.999] {Default Queue} discarded wl_surface#1223.enter(wl_output#3513) -[2618381.003] {Default Queue} discarded wl_surface#1927.enter(wl_output#3513) -[2618381.007] {Default Queue} discarded wl_surface#871.enter(wl_output#3513) -[2618381.011] {Default Queue} discarded wl_surface#1895.enter(wl_output#3513) -[2618381.015] {Default Queue} discarded wl_surface#263.enter(wl_output#3513) -[2618381.019] {Default Queue} discarded wl_surface#551.enter(wl_output#3513) -[2618381.022] {Default Queue} discarded wl_surface#1735.enter(wl_output#3513) -[2618381.026] {Default Queue} discarded wl_surface#1479.enter(wl_output#3513) -[2618381.031] {Default Queue} discarded wl_surface#1772.enter(wl_output#3513) -[2618381.035] {Default Queue} discarded wl_surface#2599.enter(wl_output#3513) -[2618381.039] {Default Queue} discarded wl_surface#2631.enter(wl_output#3513) -[2618381.043] {Default Queue} discarded wl_surface#1959.enter(wl_output#3513) -[2618381.047] {Default Queue} discarded wl_surface#647.enter(wl_output#3513) -[2618381.051] {Default Queue} discarded wl_surface#2055.enter(wl_output#3513) -[2618381.055] {Default Queue} discarded wl_surface#2508.enter(wl_output#3513) -[2618381.059] {Default Queue} discarded wl_surface#71.enter(wl_output#3513) -[2618381.063] {Default Queue} discarded wl_surface#2759.enter(wl_output#3513) -[2618381.067] {Default Queue} discarded wl_surface#2791.enter(wl_output#3513) -[2618381.071] {Default Queue} discarded wl_surface#2887.enter(wl_output#3513) -[2618381.074] {Default Queue} discarded wl_surface#2183.enter(wl_output#3513) -[2618381.078] {Default Queue} discarded wl_surface#2567.enter(wl_output#3513) -[2618381.083] {Default Queue} discarded wl_surface#839.enter(wl_output#3513) -[2618381.087] {Default Queue} discarded wl_surface#1607.enter(wl_output#3513) -[2618381.091] {Default Queue} discarded wl_surface#1095.enter(wl_output#3513) -[2618381.095] {Default Queue} discarded wl_surface#1383.enter(wl_output#3513) -[2618381.099] {Default Queue} discarded wl_surface#487.enter(wl_output#3513) -[2618381.106] {Default Queue} discarded wl_surface#2311.enter(wl_output#3513) -[2618381.111] {Default Queue} discarded wl_surface#519.enter(wl_output#3513) -[2618381.115] {Default Queue} discarded wl_surface#3335.enter(wl_output#3513) -[2618381.119] {Default Queue} discarded wl_surface#3239.enter(wl_output#3513) -[2618381.123] {Default Queue} discarded wl_surface#2087.enter(wl_output#3513) -[2618381.127] {Default Queue} discarded wl_surface#2471.enter(wl_output#3513) -[2618381.131] {Default Queue} discarded wl_surface#295.enter(wl_output#3513) -[2618381.135] {Default Queue} discarded wl_surface#167.enter(wl_output#3513) -[2618381.139] {Default Queue} discarded wl_surface#1255.enter(wl_output#3513) -[2618381.143] {Default Queue} discarded wl_surface#2855.enter(wl_output#3513) -[2618381.147] {Default Queue} discarded wl_surface#3303.enter(wl_output#3513) -[2618381.151] {Default Queue} discarded wl_surface#679.enter(wl_output#3513) -[2618381.155] {Default Queue} discarded wl_surface#2407.enter(wl_output#3513) -[2618381.158] {Default Queue} discarded wl_surface#3207.enter(wl_output#3513) -[2618381.162] {Default Queue} discarded wl_surface#2119.enter(wl_output#3513) -[2618381.167] {Default Queue} discarded wl_surface#3495.enter(wl_output#18) -[2618381.171] {Default Queue} discarded wl_surface#3495.enter(wl_output#57) -[2618381.175] {Default Queue} discarded wl_surface#3495.enter(wl_output#89) -[2618381.179] {Default Queue} discarded wl_surface#3495.enter(wl_output#121) -[2618381.183] {Default Queue} discarded wl_surface#3495.enter(wl_output#153) -[2618381.187] {Default Queue} discarded wl_surface#3495.enter(wl_output#185) -[2618381.191] {Default Queue} discarded wl_surface#3495.enter(wl_output#217) -[2618381.195] {Default Queue} discarded wl_surface#3495.enter(wl_output#249) -[2618381.199] {Default Queue} discarded wl_surface#3495.enter(wl_output#281) -[2618381.203] {Default Queue} discarded wl_surface#3495.enter(wl_output#313) -[2618381.207] {Default Queue} discarded wl_surface#3495.enter(wl_output#345) -[2618381.211] {Default Queue} discarded wl_surface#3495.enter(wl_output#377) -[2618381.215] {Default Queue} discarded wl_surface#3495.enter(wl_output#409) -[2618381.218] {Default Queue} discarded wl_surface#3495.enter(wl_output#441) -[2618381.222] {Default Queue} discarded wl_surface#3495.enter(wl_output#473) -[2618381.226] {Default Queue} discarded wl_surface#3495.enter(wl_output#505) -[2618381.230] {Default Queue} discarded wl_surface#3495.enter(wl_output#537) -[2618381.234] {Default Queue} discarded wl_surface#3495.enter(wl_output#569) -[2618381.238] {Default Queue} discarded wl_surface#3495.enter(wl_output#601) -[2618381.242] {Default Queue} discarded wl_surface#3495.enter(wl_output#633) -[2618381.246] {Default Queue} discarded wl_surface#3495.enter(wl_output#665) -[2618381.250] {Default Queue} discarded wl_surface#3495.enter(wl_output#697) -[2618381.254] {Default Queue} discarded wl_surface#3495.enter(wl_output#729) -[2618381.258] {Default Queue} discarded wl_surface#3495.enter(wl_output#761) -[2618381.261] {Default Queue} discarded wl_surface#3495.enter(wl_output#793) -[2618381.265] {Default Queue} discarded wl_surface#3495.enter(wl_output#825) -[2618381.269] {Default Queue} discarded wl_surface#3495.enter(wl_output#857) -[2618381.273] {Default Queue} discarded wl_surface#3495.enter(wl_output#889) -[2618381.277] {Default Queue} discarded wl_surface#3495.enter(wl_output#921) -[2618381.281] {Default Queue} discarded wl_surface#3495.enter(wl_output#953) -[2618381.285] {Default Queue} discarded wl_surface#3495.enter(wl_output#985) -[2618381.289] {Default Queue} discarded wl_surface#3495.enter(wl_output#1017) -[2618381.293] {Default Queue} discarded wl_surface#3495.enter(wl_output#1049) -[2618381.297] {Default Queue} discarded wl_surface#3495.enter(wl_output#1081) -[2618381.300] {Default Queue} discarded wl_surface#3495.enter(wl_output#1113) -[2618381.304] {Default Queue} discarded wl_surface#3495.enter(wl_output#1145) -[2618381.310] {Default Queue} discarded wl_surface#3495.enter(wl_output#1177) -[2618381.314] {Default Queue} discarded wl_surface#3495.enter(wl_output#1209) -[2618381.320] {Default Queue} discarded wl_surface#3495.enter(wl_output#1241) -[2618381.325] {Default Queue} discarded wl_surface#3495.enter(wl_output#1273) -[2618381.330] {Default Queue} discarded wl_surface#3495.enter(wl_output#1305) -[2618381.334] {Default Queue} discarded wl_surface#3495.enter(wl_output#1337) -[2618381.338] {Default Queue} discarded wl_surface#3495.enter(wl_output#1369) -[2618381.341] {Default Queue} discarded wl_surface#3495.enter(wl_output#1401) -[2618381.345] {Default Queue} discarded wl_surface#3495.enter(wl_output#1433) -[2618381.349] {Default Queue} discarded wl_surface#3495.enter(wl_output#1465) -[2618381.353] {Default Queue} discarded wl_surface#3495.enter(wl_output#1497) -[2618381.357] {Default Queue} discarded wl_surface#3495.enter(wl_output#1529) -[2618381.361] {Default Queue} discarded wl_surface#3495.enter(wl_output#1561) -[2618381.365] {Default Queue} discarded wl_surface#3495.enter(wl_output#1593) -[2618381.369] {Default Queue} discarded wl_surface#3495.enter(wl_output#1625) -[2618381.373] {Default Queue} discarded wl_surface#3495.enter(wl_output#1657) -[2618381.377] {Default Queue} discarded wl_surface#3495.enter(wl_output#1689) -[2618381.380] {Default Queue} discarded wl_surface#3495.enter(wl_output#1721) -[2618381.384] {Default Queue} discarded wl_surface#3495.enter(wl_output#1753) -[2618381.389] {Default Queue} discarded wl_surface#3495.enter(wl_output#1785) -[2618381.393] {Default Queue} discarded wl_surface#3495.enter(wl_output#1817) -[2618381.397] {Default Queue} discarded wl_surface#3495.enter(wl_output#1849) -[2618381.400] {Default Queue} discarded wl_surface#3495.enter(wl_output#1881) -[2618381.404] {Default Queue} discarded wl_surface#3495.enter(wl_output#1913) -[2618381.408] {Default Queue} discarded wl_surface#3495.enter(wl_output#1945) -[2618381.412] {Default Queue} discarded wl_surface#3495.enter(wl_output#1977) -[2618381.416] {Default Queue} discarded wl_surface#3495.enter(wl_output#2009) -[2618381.420] {Default Queue} discarded wl_surface#3495.enter(wl_output#2041) -[2618381.424] {Default Queue} discarded wl_surface#3495.enter(wl_output#2073) -[2618381.428] {Default Queue} discarded wl_surface#3495.enter(wl_output#2105) -[2618381.432] {Default Queue} discarded wl_surface#3495.enter(wl_output#2137) -[2618381.436] {Default Queue} discarded wl_surface#3495.enter(wl_output#2169) -[2618381.439] {Default Queue} discarded wl_surface#3495.enter(wl_output#2201) -[2618381.443] {Default Queue} discarded wl_surface#3495.enter(wl_output#2233) -[2618381.447] {Default Queue} discarded wl_surface#3495.enter(wl_output#2265) -[2618381.452] {Default Queue} discarded wl_surface#3495.enter(wl_output#2297) -[2618381.456] {Default Queue} discarded wl_surface#3495.enter(wl_output#2329) -[2618381.460] {Default Queue} discarded wl_surface#3495.enter(wl_output#2361) -[2618381.463] {Default Queue} discarded wl_surface#3495.enter(wl_output#2393) -[2618381.467] {Default Queue} discarded wl_surface#3495.enter(wl_output#2425) -[2618381.471] {Default Queue} discarded wl_surface#3495.enter(wl_output#2457) -[2618381.475] {Default Queue} discarded wl_surface#3495.enter(wl_output#2489) -[2618381.479] {Default Queue} discarded wl_surface#3495.enter(wl_output#2521) -[2618381.483] {Default Queue} discarded wl_surface#3495.enter(wl_output#2553) -[2618381.487] {Default Queue} discarded wl_surface#3495.enter(wl_output#2585) -[2618381.491] {Default Queue} discarded wl_surface#3495.enter(wl_output#2617) -[2618381.495] {Default Queue} discarded wl_surface#3495.enter(wl_output#2649) -[2618381.499] {Default Queue} discarded wl_surface#3495.enter(wl_output#2681) -[2618381.503] {Default Queue} discarded wl_surface#3495.enter(wl_output#2713) -[2618381.507] {Default Queue} discarded wl_surface#3495.enter(wl_output#2745) -[2618381.511] {Default Queue} discarded wl_surface#3495.enter(wl_output#2777) -[2618381.515] {Default Queue} discarded wl_surface#3495.enter(wl_output#2809) -[2618381.519] {Default Queue} discarded wl_surface#3495.enter(wl_output#2841) -[2618381.523] {Default Queue} discarded wl_surface#3495.enter(wl_output#2873) -[2618381.529] {Default Queue} discarded wl_surface#3495.enter(wl_output#2905) -[2618381.535] {Default Queue} discarded wl_surface#3495.enter(wl_output#2937) -[2618381.538] {Default Queue} discarded wl_surface#3495.enter(wl_output#2969) -[2618381.542] {Default Queue} discarded wl_surface#3495.enter(wl_output#3001) -[2618381.546] {Default Queue} discarded wl_surface#3495.enter(wl_output#3033) -[2618381.550] {Default Queue} discarded wl_surface#3495.enter(wl_output#3065) -[2618381.554] {Default Queue} discarded wl_surface#3495.enter(wl_output#3097) -[2618381.558] {Default Queue} discarded wl_surface#3495.enter(wl_output#3129) -[2618381.562] {Default Queue} discarded wl_surface#3495.enter(wl_output#3161) -[2618381.566] {Default Queue} discarded wl_surface#3495.enter(wl_output#3193) -[2618381.570] {Default Queue} discarded wl_surface#3495.enter(wl_output#3225) -[2618381.574] {Default Queue} discarded wl_surface#3495.enter(wl_output#3257) -[2618381.578] {Default Queue} discarded wl_surface#3495.enter(wl_output#3289) -[2618381.582] {Default Queue} discarded wl_surface#3495.enter(wl_output#3321) -[2618381.586] {Default Queue} discarded wl_surface#3495.enter(wl_output#3353) -[2618381.590] {Default Queue} discarded wl_surface#3495.enter(wl_output#3385) -[2618381.594] {Default Queue} discarded wl_surface#3495.enter(wl_output#3417) -[2618381.597] {Default Queue} discarded wl_surface#3495.enter(wl_output#3449) -[2618381.601] {Default Queue} discarded wl_surface#3495.enter(wl_output#3481) -[2618381.606] {Default Queue} discarded wl_surface#3495.enter(wl_output#3513) -[2618386.520] {Display Queue} wl_display#1.delete_id(3527) -[2618386.533] {Default Queue} wl_registry#3526.global(1, "wl_compositor", 6) -[2618386.541] {Default Queue} -> wl_registry#3526.bind(1, "wl_compositor", 1, new id [unknown]#3532) -[2618386.548] {Default Queue} wl_registry#3526.global(2, "wl_subcompositor", 1) -[2618386.554] {Default Queue} -> wl_registry#3526.bind(2, "wl_subcompositor", 1, new id [unknown]#3533) -[2618386.560] {Default Queue} wl_registry#3526.global(3, "xdg_wm_base", 6) -[2618386.566] {Default Queue} -> wl_registry#3526.bind(3, "xdg_wm_base", 1, new id [unknown]#3534) -[2618386.572] {Default Queue} wl_registry#3526.global(6, "zwlr_layer_shell_v1", 5) -[2618386.578] {Default Queue} wl_registry#3526.global(7, "ext_session_lock_manager_v1", 1) -[2618386.583] {Default Queue} wl_registry#3526.global(8, "wl_shm", 2) -[2618386.590] {Default Queue} -> wl_registry#3526.bind(8, "wl_shm", 1, new id [unknown]#3535) -[2618386.595] {Default Queue} -> wl_registry#3526.bind(8, "wl_shm", 1, new id [unknown]#3536) -[2618386.601] {Default Queue} -> wl_registry#3526.bind(8, "wl_shm", 1, new id [unknown]#3537) -[2618386.607] {Default Queue} wl_registry#3526.global(9, "zxdg_output_manager_v1", 3) -[2618386.612] {Default Queue} wl_registry#3526.global(10, "wp_fractional_scale_manager_v1", 1) -[2618386.619] {Default Queue} wl_registry#3526.global(11, "zwp_tablet_manager_v2", 1) -[2618386.627] {Default Queue} wl_registry#3526.global(12, "zwp_pointer_gestures_v1", 3) -[2618386.639] {Default Queue} wl_registry#3526.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618386.648] {Default Queue} -> wl_registry#3526.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3538) -[2618386.657] {Default Queue} wl_registry#3526.global(14, "zwp_pointer_constraints_v1", 1) -[2618386.667] {Default Queue} -> wl_registry#3526.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3539) -[2618386.676] {Default Queue} wl_registry#3526.global(15, "ext_idle_notifier_v1", 2) -[2618386.686] {Default Queue} wl_registry#3526.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618386.693] {Default Queue} wl_registry#3526.global(17, "wl_data_device_manager", 3) -[2618386.699] {Default Queue} -> wl_registry#3526.bind(17, "wl_data_device_manager", 2, new id [unknown]#3540) -[2618386.705] {Default Queue} -> wl_data_device_manager#3540.create_data_source(new id wl_data_source#3541) -[2618386.711] {Default Queue} -> wl_data_source#3541.offer("text/plain") -[2618386.716] {Default Queue} -> wl_data_source#3541.offer("text/plain;charset=utf-8") -[2618386.727] {Default Queue} -> wl_data_source#3541.offer("TEXT") -[2618386.738] {Default Queue} -> wl_data_source#3541.offer("STRING") -[2618386.744] {Default Queue} -> wl_data_source#3541.offer("UTF8_STRING") -[2618386.749] {Default Queue} wl_registry#3526.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618386.755] {Default Queue} -> wl_registry#3526.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3542) -[2618386.766] {Default Queue} -> zwp_primary_selection_device_manager_v1#3542.create_source(new id zwp_primary_selection_source_v1#3543) -[2618386.775] {Default Queue} -> zwp_primary_selection_source_v1#3543.offer("text/plain") -[2618386.781] {Default Queue} -> zwp_primary_selection_source_v1#3543.offer("text/plain;charset=utf-8") -[2618386.786] {Default Queue} -> zwp_primary_selection_source_v1#3543.offer("TEXT") -[2618386.792] {Default Queue} -> zwp_primary_selection_source_v1#3543.offer("STRING") -[2618386.797] {Default Queue} -> zwp_primary_selection_source_v1#3543.offer("UTF8_STRING") -[2618386.802] {Default Queue} wl_registry#3526.global(19, "zwlr_data_control_manager_v1", 2) -[2618386.807] {Default Queue} wl_registry#3526.global(20, "ext_data_control_manager_v1", 1) -[2618386.813] {Default Queue} wl_registry#3526.global(21, "wp_presentation", 2) -[2618386.819] {Default Queue} wl_registry#3526.global(22, "wp_security_context_manager_v1", 1) -[2618386.824] {Default Queue} wl_registry#3526.global(23, "zwp_text_input_manager_v3", 1) -[2618386.830] {Default Queue} wl_registry#3526.global(24, "zwp_input_method_manager_v2", 1) -[2618386.835] {Default Queue} wl_registry#3526.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618386.841] {Default Queue} wl_registry#3526.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618386.846] {Default Queue} wl_registry#3526.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618386.851] {Default Queue} wl_registry#3526.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618386.857] {Default Queue} wl_registry#3526.global(29, "ext_workspace_manager_v1", 1) -[2618386.868] {Default Queue} wl_registry#3526.global(30, "zwlr_output_manager_v1", 4) -[2618386.873] {Default Queue} wl_registry#3526.global(31, "zwlr_screencopy_manager_v1", 3) -[2618386.879] {Default Queue} wl_registry#3526.global(32, "wp_viewporter", 1) -[2618386.884] {Default Queue} wl_registry#3526.global(33, "zxdg_exporter_v2", 1) -[2618386.889] {Default Queue} wl_registry#3526.global(34, "zxdg_importer_v2", 1) -[2618386.894] {Default Queue} wl_registry#3526.global(36, "xdg_activation_v1", 1) -[2618386.900] {Default Queue} wl_registry#3526.global(37, "mutter_x11_interop", 1) -[2618386.905] {Default Queue} wl_registry#3526.global(38, "wl_seat", 9) -[2618386.911] {Default Queue} -> wl_registry#3526.bind(38, "wl_seat", 1, new id [unknown]#3544) -[2618386.917] {Default Queue} wl_registry#3526.global(39, "wp_cursor_shape_manager_v1", 2) -[2618386.922] {Default Queue} wl_registry#3526.global(40, "wl_output", 4) -[2618386.928] {Default Queue} -> wl_registry#3526.bind(40, "wl_output", 1, new id [unknown]#3545) -[2618386.933] {Default Queue} wl_callback#3527.done(0) -[2618386.939] {Default Queue} -> wl_compositor#3500.create_surface(new id wl_surface#3527) -[2618386.945] {Default Queue} -> wl_subcompositor#3533.get_subsurface(new id wl_subsurface#3546, wl_surface#3527, wl_surface#3495) -[2618386.955] {Default Queue} -> wl_subsurface#3546.set_desync() -[2618386.960] {Default Queue} -> wl_subsurface#3546.set_position(64, 64) -[2618386.966] {Default Queue} -> wl_subsurface#3546.place_above(wl_surface#3495) -[2618387.076] {Default Queue} -> wl_shm#3535.create_pool(new id wl_shm_pool#3547, fd 559, 65536) -[2618387.085] {Default Queue} -> wl_shm#3535.create_pool(new id wl_shm_pool#3548, fd 560, 65536) -[2618387.092] {Default Queue} -> wl_shm_pool#3547.create_buffer(new id wl_buffer#3549, 0, 128, 128, 512, 0) -[2618387.101] {Default Queue} -> wl_shm_pool#3548.create_buffer(new id wl_buffer#3550, 0, 128, 128, 512, 0) -[2618387.136] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2618387.147] {Default Queue} -> wl_surface#3527.commit() -[2618387.176] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2618387.183] {Default Queue} -> wl_surface#3527.commit() -[2618387.188] {Default Queue} -> wl_compositor#3532.create_region(new id wl_region#3551) -[2618387.194] {Default Queue} -> wl_compositor#3532.create_region(new id wl_region#3552) -[2618387.199] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) -[2618387.205] {Default Queue} -> wl_region#3551.add(0, 0, 0, 0) -[2618387.210] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618387.216] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618387.221] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618387.227] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) -[2618387.242] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2618387.248] {Default Queue} -> wl_surface#3527.commit() -[2618387.297] {Default Queue} -> wl_shm#3537.create_pool(new id wl_shm_pool#3553, fd 563, 640) -[2618387.305] {Default Queue} -> wl_shm#3537.create_pool(new id wl_shm_pool#3554, fd 564, 640) -[2618387.310] {Default Queue} -> wl_shm_pool#3553.create_buffer(new id wl_buffer#3555, 0, 10, 16, 40, 0) -[2618387.316] {Default Queue} -> wl_shm_pool#3554.create_buffer(new id wl_buffer#3556, 0, 10, 16, 40, 0) -[2618387.327] {Default Queue} -> wl_compositor#3532.create_surface(new id wl_surface#3557) -[2618387.332] {Default Queue} -> wl_surface#3557.attach(wl_buffer#3555, 0, 0) -[2618387.338] {Default Queue} -> wl_surface#3557.commit() -[2618387.344] {Default Queue} -> wl_surface#3557.attach(wl_buffer#3555, 0, 0) -[2618387.349] {Default Queue} -> wl_surface#3557.commit() -[2618387.357] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618387.367] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3558) -[2618387.373] {Default Queue} -> wl_display#1.sync(new id wl_callback#3559) -[2618387.394] {Default Queue} wl_keyboard#3528.keymap(1, fd 559, 68213) -[2618387.404] {Default Queue} wl_keyboard#3528.enter(566, wl_surface#19, array[0]) -[2618387.410] {Default Queue} wl_keyboard#3528.modifiers(566, 0, 0, 16, 0) -[2618387.664] {Display Queue} wl_display#1.delete_id(3559) -[2618387.671] {Default Queue} discarded wl_shm#3535.format(875709016) -[2618387.675] {Default Queue} discarded wl_shm#3535.format(1) -[2618387.679] {Default Queue} discarded wl_shm#3535.format(0) -[2618387.683] {Default Queue} discarded wl_shm#3535.format(875708993) -[2618387.687] {Default Queue} discarded wl_shm#3536.format(875709016) -[2618387.691] {Default Queue} discarded wl_shm#3536.format(1) -[2618387.695] {Default Queue} discarded wl_shm#3536.format(0) -[2618387.699] {Default Queue} discarded wl_shm#3536.format(875708993) -[2618387.703] {Default Queue} discarded wl_shm#3537.format(875709016) -[2618387.707] {Default Queue} discarded wl_shm#3537.format(1) -[2618387.710] {Default Queue} discarded wl_shm#3537.format(0) -[2618387.714] {Default Queue} discarded wl_shm#3537.format(875708993) -[2618387.718] {Default Queue} wl_seat#3544.capabilities(7) -[2618387.723] {Default Queue} -> wl_seat#3544.get_keyboard(new id wl_keyboard#3560) -[2618387.727] {Default Queue} -> wl_seat#3544.get_pointer(new id wl_pointer#3561) -[2618387.732] {Default Queue} -> wl_data_device_manager#3540.get_data_device(new id wl_data_device#3562, wl_seat#3544) -[2618387.736] {Default Queue} -> zwp_primary_selection_device_manager_v1#3542.get_device(new id zwp_primary_selection_device_v1#3563, wl_seat#3544) -[2618387.745] {Default Queue} wl_output#3545.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618387.750] {Default Queue} wl_output#3545.mode(3, 1280, 800, 60000) -[2618387.755] {Default Queue} discarded wl_surface#2727.enter(wl_output#3545) -[2618387.759] {Default Queue} discarded wl_surface#3.enter(wl_output#3545) -[2618387.763] {Default Queue} discarded wl_surface#999.enter(wl_output#3545) -[2618387.767] {Default Queue} discarded wl_surface#3079.enter(wl_output#3545) -[2618387.772] {Default Queue} discarded wl_surface#1191.enter(wl_output#3545) -[2618387.779] {Default Queue} discarded wl_surface#1159.enter(wl_output#3545) -[2618387.785] {Default Queue} discarded wl_surface#1703.enter(wl_output#3545) -[2618387.789] {Default Queue} discarded wl_surface#2215.enter(wl_output#3545) -[2618387.793] {Default Queue} discarded wl_surface#423.enter(wl_output#3545) -[2618387.797] {Default Queue} discarded wl_surface#1447.enter(wl_output#3545) -[2618387.801] {Default Queue} discarded wl_surface#3047.enter(wl_output#3545) -[2618387.805] {Default Queue} discarded wl_surface#2023.enter(wl_output#3545) -[2618387.809] {Default Queue} discarded wl_surface#1639.enter(wl_output#3545) -[2618387.813] {Default Queue} discarded wl_surface#1319.enter(wl_output#3545) -[2618387.817] {Default Queue} discarded wl_surface#1127.enter(wl_output#3545) -[2618387.821] {Default Queue} discarded wl_surface#2151.enter(wl_output#3545) -[2618387.824] {Default Queue} discarded wl_surface#2375.enter(wl_output#3545) -[2618387.828] {Default Queue} discarded wl_surface#2695.enter(wl_output#3545) -[2618387.832] {Default Queue} discarded wl_surface#2919.enter(wl_output#3545) -[2618387.836] {Default Queue} discarded wl_surface#1063.enter(wl_output#3545) -[2618387.840] {Default Queue} discarded wl_surface#455.enter(wl_output#3545) -[2618387.844] {Default Queue} discarded wl_surface#1575.enter(wl_output#3545) -[2618387.848] {Default Queue} discarded wl_surface#1799.enter(wl_output#3545) -[2618387.852] {Default Queue} discarded wl_surface#1415.enter(wl_output#3545) -[2618387.856] {Default Queue} discarded wl_surface#2439.enter(wl_output#3545) -[2618387.859] {Default Queue} discarded wl_surface#2279.enter(wl_output#3545) -[2618387.877] {Default Queue} discarded wl_surface#1831.enter(wl_output#3545) -[2618387.881] {Default Queue} discarded wl_surface#903.enter(wl_output#3545) -[2618387.887] {Default Queue} discarded wl_surface#2663.enter(wl_output#3545) -[2618387.891] {Default Queue} discarded wl_surface#775.enter(wl_output#3545) -[2618387.894] {Default Queue} discarded wl_surface#1991.enter(wl_output#3545) -[2618387.898] {Default Queue} discarded wl_surface#1543.enter(wl_output#3545) -[2618387.902] {Default Queue} discarded wl_surface#135.enter(wl_output#3545) -[2618387.907] {Default Queue} discarded wl_surface#1287.enter(wl_output#3545) -[2618387.910] {Default Queue} discarded wl_surface#3399.enter(wl_output#3545) -[2618387.915] {Default Queue} discarded wl_surface#1031.enter(wl_output#3545) -[2618387.919] {Default Queue} discarded wl_surface#615.enter(wl_output#3545) -[2618387.923] {Default Queue} discarded wl_surface#3111.enter(wl_output#3545) -[2618387.927] {Default Queue} discarded wl_surface#231.enter(wl_output#3545) -[2618387.931] {Default Queue} discarded wl_surface#2343.enter(wl_output#3545) -[2618387.934] {Default Queue} discarded wl_surface#1863.enter(wl_output#3545) -[2618387.939] {Default Queue} discarded wl_surface#359.enter(wl_output#3545) -[2618387.943] {Default Queue} discarded wl_surface#2983.enter(wl_output#3545) -[2618387.946] {Default Queue} discarded wl_surface#583.enter(wl_output#3545) -[2618387.950] {Default Queue} discarded wl_surface#743.enter(wl_output#3545) -[2618387.954] {Default Queue} discarded wl_surface#3143.enter(wl_output#3545) -[2618387.958] {Default Queue} discarded wl_surface#2535.enter(wl_output#3545) -[2618387.962] {Default Queue} discarded wl_surface#3367.enter(wl_output#3545) -[2618387.966] {Default Queue} discarded wl_surface#967.enter(wl_output#3545) -[2618387.970] {Default Queue} discarded wl_surface#103.enter(wl_output#3545) -[2618387.974] {Default Queue} discarded wl_surface#3271.enter(wl_output#3545) -[2618387.979] {Default Queue} discarded wl_surface#327.enter(wl_output#3545) -[2618387.983] {Default Queue} discarded wl_surface#43.enter(wl_output#3545) -[2618387.988] {Default Queue} discarded wl_surface#2247.enter(wl_output#3545) -[2618387.993] {Default Queue} discarded wl_surface#807.enter(wl_output#3545) -[2618387.997] {Default Queue} discarded wl_surface#19.enter(wl_output#3545) -[2618388.001] {Default Queue} discarded wl_surface#2951.enter(wl_output#3545) -[2618388.005] {Default Queue} discarded wl_surface#1511.enter(wl_output#3545) -[2618388.015] {Default Queue} discarded wl_surface#199.enter(wl_output#3545) -[2618388.023] {Default Queue} discarded wl_surface#3463.enter(wl_output#3545) -[2618388.029] {Default Queue} discarded wl_surface#3495.enter(wl_output#3545) -[2618388.033] {Default Queue} discarded wl_surface#391.enter(wl_output#3545) -[2618388.037] {Default Queue} discarded wl_surface#935.enter(wl_output#3545) -[2618388.041] {Default Queue} discarded wl_surface#2823.enter(wl_output#3545) -[2618388.045] {Default Queue} discarded wl_surface#3015.enter(wl_output#3545) -[2618388.049] {Default Queue} discarded wl_surface#1671.enter(wl_output#3545) -[2618388.053] {Default Queue} discarded wl_surface#1351.enter(wl_output#3545) -[2618388.057] {Default Queue} discarded wl_surface#711.enter(wl_output#3545) -[2618388.061] {Default Queue} discarded wl_surface#3175.enter(wl_output#3545) -[2618388.065] {Default Queue} discarded wl_surface#3431.enter(wl_output#3545) -[2618388.070] {Default Queue} discarded wl_surface#1223.enter(wl_output#3545) -[2618388.074] {Default Queue} discarded wl_surface#1927.enter(wl_output#3545) -[2618388.077] {Default Queue} discarded wl_surface#871.enter(wl_output#3545) -[2618388.081] {Default Queue} discarded wl_surface#1895.enter(wl_output#3545) -[2618388.085] {Default Queue} discarded wl_surface#263.enter(wl_output#3545) -[2618388.089] {Default Queue} discarded wl_surface#551.enter(wl_output#3545) -[2618388.093] {Default Queue} discarded wl_surface#1735.enter(wl_output#3545) -[2618388.097] {Default Queue} discarded wl_surface#1479.enter(wl_output#3545) -[2618388.101] {Default Queue} discarded wl_surface#1772.enter(wl_output#3545) -[2618388.105] {Default Queue} discarded wl_surface#2599.enter(wl_output#3545) -[2618388.109] {Default Queue} discarded wl_surface#2631.enter(wl_output#3545) -[2618388.113] {Default Queue} discarded wl_surface#1959.enter(wl_output#3545) -[2618388.117] {Default Queue} discarded wl_surface#647.enter(wl_output#3545) -[2618388.120] {Default Queue} discarded wl_surface#2055.enter(wl_output#3545) -[2618388.124] {Default Queue} discarded wl_surface#2508.enter(wl_output#3545) -[2618388.128] {Default Queue} discarded wl_surface#71.enter(wl_output#3545) -[2618388.132] {Default Queue} discarded wl_surface#2759.enter(wl_output#3545) -[2618388.136] {Default Queue} discarded wl_surface#2791.enter(wl_output#3545) -[2618388.142] {Default Queue} discarded wl_surface#2887.enter(wl_output#3545) -[2618388.147] {Default Queue} discarded wl_surface#2183.enter(wl_output#3545) -[2618388.152] {Default Queue} discarded wl_surface#2567.enter(wl_output#3545) -[2618388.156] {Default Queue} discarded wl_surface#839.enter(wl_output#3545) -[2618388.160] {Default Queue} discarded wl_surface#1607.enter(wl_output#3545) -[2618388.164] {Default Queue} discarded wl_surface#1095.enter(wl_output#3545) -[2618388.168] {Default Queue} discarded wl_surface#1383.enter(wl_output#3545) -[2618388.172] {Default Queue} discarded wl_surface#487.enter(wl_output#3545) -[2618388.177] {Default Queue} discarded wl_surface#2311.enter(wl_output#3545) -[2618388.186] {Default Queue} discarded wl_surface#519.enter(wl_output#3545) -[2618388.193] {Default Queue} discarded wl_surface#3335.enter(wl_output#3545) -[2618388.198] {Default Queue} discarded wl_surface#3239.enter(wl_output#3545) -[2618388.202] {Default Queue} discarded wl_surface#2087.enter(wl_output#3545) -[2618388.206] {Default Queue} discarded wl_surface#2471.enter(wl_output#3545) -[2618388.210] {Default Queue} discarded wl_surface#295.enter(wl_output#3545) -[2618388.214] {Default Queue} discarded wl_surface#167.enter(wl_output#3545) -[2618388.218] {Default Queue} discarded wl_surface#1255.enter(wl_output#3545) -[2618388.222] {Default Queue} discarded wl_surface#2855.enter(wl_output#3545) -[2618388.225] {Default Queue} discarded wl_surface#3303.enter(wl_output#3545) -[2618388.229] {Default Queue} discarded wl_surface#679.enter(wl_output#3545) -[2618388.233] {Default Queue} discarded wl_surface#2407.enter(wl_output#3545) -[2618388.237] {Default Queue} discarded wl_surface#3207.enter(wl_output#3545) -[2618388.241] {Default Queue} discarded wl_surface#2119.enter(wl_output#3545) -[2618388.249] {Default Queue} wl_registry#3558.global(1, "wl_compositor", 6) -[2618388.258] {Default Queue} -> wl_registry#3558.bind(1, "wl_compositor", 1, new id [unknown]#3564) -[2618388.264] {Default Queue} wl_registry#3558.global(2, "wl_subcompositor", 1) -[2618388.269] {Default Queue} -> wl_registry#3558.bind(2, "wl_subcompositor", 1, new id [unknown]#3565) -[2618388.274] {Default Queue} wl_registry#3558.global(3, "xdg_wm_base", 6) -[2618388.279] {Default Queue} -> wl_registry#3558.bind(3, "xdg_wm_base", 1, new id [unknown]#3566) -[2618388.283] {Default Queue} wl_registry#3558.global(6, "zwlr_layer_shell_v1", 5) -[2618388.288] {Default Queue} wl_registry#3558.global(7, "ext_session_lock_manager_v1", 1) -[2618388.292] {Default Queue} wl_registry#3558.global(8, "wl_shm", 2) -[2618388.297] {Default Queue} -> wl_registry#3558.bind(8, "wl_shm", 1, new id [unknown]#3567) -[2618388.302] {Default Queue} -> wl_registry#3558.bind(8, "wl_shm", 1, new id [unknown]#3568) -[2618388.306] {Default Queue} -> wl_registry#3558.bind(8, "wl_shm", 1, new id [unknown]#3569) -[2618388.311] {Default Queue} wl_registry#3558.global(9, "zxdg_output_manager_v1", 3) -[2618388.315] {Default Queue} wl_registry#3558.global(10, "wp_fractional_scale_manager_v1", 1) -[2618388.319] {Default Queue} wl_registry#3558.global(11, "zwp_tablet_manager_v2", 1) -[2618388.324] {Default Queue} wl_registry#3558.global(12, "zwp_pointer_gestures_v1", 3) -[2618388.328] {Default Queue} wl_registry#3558.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618388.332] {Default Queue} -> wl_registry#3558.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3570) -[2618388.337] {Default Queue} wl_registry#3558.global(14, "zwp_pointer_constraints_v1", 1) -[2618388.341] {Default Queue} -> wl_registry#3558.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3571) -[2618388.346] {Default Queue} wl_registry#3558.global(15, "ext_idle_notifier_v1", 2) -[2618388.350] {Default Queue} wl_registry#3558.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618388.358] {Default Queue} wl_registry#3558.global(17, "wl_data_device_manager", 3) -[2618388.363] {Default Queue} -> wl_registry#3558.bind(17, "wl_data_device_manager", 2, new id [unknown]#3572) -[2618388.367] {Default Queue} -> wl_data_device_manager#3572.create_data_source(new id wl_data_source#3573) -[2618388.372] {Default Queue} -> wl_data_source#3573.offer("text/plain") -[2618388.376] {Default Queue} -> wl_data_source#3573.offer("text/plain;charset=utf-8") -[2618388.380] {Default Queue} -> wl_data_source#3573.offer("TEXT") -[2618388.384] {Default Queue} -> wl_data_source#3573.offer("STRING") -[2618388.388] {Default Queue} -> wl_data_source#3573.offer("UTF8_STRING") -[2618388.392] {Default Queue} wl_registry#3558.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618388.398] {Default Queue} -> wl_registry#3558.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3574) -[2618388.406] {Default Queue} -> zwp_primary_selection_device_manager_v1#3574.create_source(new id zwp_primary_selection_source_v1#3575) -[2618388.413] {Default Queue} -> zwp_primary_selection_source_v1#3575.offer("text/plain") -[2618388.417] {Default Queue} -> zwp_primary_selection_source_v1#3575.offer("text/plain;charset=utf-8") -[2618388.421] {Default Queue} -> zwp_primary_selection_source_v1#3575.offer("TEXT") -[2618388.425] {Default Queue} -> zwp_primary_selection_source_v1#3575.offer("STRING") -[2618388.429] {Default Queue} -> zwp_primary_selection_source_v1#3575.offer("UTF8_STRING") -[2618388.433] {Default Queue} wl_registry#3558.global(19, "zwlr_data_control_manager_v1", 2) -[2618388.438] {Default Queue} wl_registry#3558.global(20, "ext_data_control_manager_v1", 1) -[2618388.442] {Default Queue} wl_registry#3558.global(21, "wp_presentation", 2) -[2618388.447] {Default Queue} wl_registry#3558.global(22, "wp_security_context_manager_v1", 1) -[2618388.452] {Default Queue} wl_registry#3558.global(23, "zwp_text_input_manager_v3", 1) -[2618388.456] {Default Queue} wl_registry#3558.global(24, "zwp_input_method_manager_v2", 1) -[2618388.464] {Default Queue} wl_registry#3558.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618388.469] {Default Queue} wl_registry#3558.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618388.474] {Default Queue} wl_registry#3558.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618388.478] {Default Queue} wl_registry#3558.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618388.483] {Default Queue} wl_registry#3558.global(29, "ext_workspace_manager_v1", 1) -[2618388.487] {Default Queue} wl_registry#3558.global(30, "zwlr_output_manager_v1", 4) -[2618388.491] {Default Queue} wl_registry#3558.global(31, "zwlr_screencopy_manager_v1", 3) -[2618388.496] {Default Queue} wl_registry#3558.global(32, "wp_viewporter", 1) -[2618388.500] {Default Queue} wl_registry#3558.global(33, "zxdg_exporter_v2", 1) -[2618388.504] {Default Queue} wl_registry#3558.global(34, "zxdg_importer_v2", 1) -[2618388.508] {Default Queue} wl_registry#3558.global(36, "xdg_activation_v1", 1) -[2618388.513] {Default Queue} wl_registry#3558.global(37, "mutter_x11_interop", 1) -[2618388.517] {Default Queue} wl_registry#3558.global(38, "wl_seat", 9) -[2618388.522] {Default Queue} -> wl_registry#3558.bind(38, "wl_seat", 1, new id [unknown]#3576) -[2618388.526] {Default Queue} wl_registry#3558.global(39, "wp_cursor_shape_manager_v1", 2) -[2618388.530] {Default Queue} wl_registry#3558.global(40, "wl_output", 4) -[2618388.535] {Default Queue} -> wl_registry#3558.bind(40, "wl_output", 1, new id [unknown]#3577) -[2618388.540] {Default Queue} wl_callback#3559.done(0) -[2618388.544] {Default Queue} discarded wl_surface#3527.enter(wl_output#18) -[2618388.548] {Default Queue} discarded wl_surface#3527.enter(wl_output#57) -[2618388.552] {Default Queue} discarded wl_surface#3527.enter(wl_output#89) -[2618388.556] {Default Queue} discarded wl_surface#3527.enter(wl_output#121) -[2618388.560] {Default Queue} discarded wl_surface#3527.enter(wl_output#153) -[2618388.564] {Default Queue} discarded wl_surface#3527.enter(wl_output#185) -[2618388.568] {Default Queue} discarded wl_surface#3527.enter(wl_output#217) -[2618388.572] {Default Queue} discarded wl_surface#3527.enter(wl_output#249) -[2618388.576] {Default Queue} discarded wl_surface#3527.enter(wl_output#281) -[2618388.581] {Default Queue} discarded wl_surface#3527.enter(wl_output#313) -[2618388.585] {Default Queue} discarded wl_surface#3527.enter(wl_output#345) -[2618388.589] {Default Queue} discarded wl_surface#3527.enter(wl_output#377) -[2618388.594] {Default Queue} discarded wl_surface#3527.enter(wl_output#409) -[2618388.598] {Default Queue} discarded wl_surface#3527.enter(wl_output#441) -[2618388.601] {Default Queue} discarded wl_surface#3527.enter(wl_output#473) -[2618388.605] {Default Queue} discarded wl_surface#3527.enter(wl_output#505) -[2618388.609] {Default Queue} discarded wl_surface#3527.enter(wl_output#537) -[2618388.613] {Default Queue} discarded wl_surface#3527.enter(wl_output#569) -[2618388.617] {Default Queue} discarded wl_surface#3527.enter(wl_output#601) -[2618388.621] {Default Queue} discarded wl_surface#3527.enter(wl_output#633) -[2618388.625] {Default Queue} discarded wl_surface#3527.enter(wl_output#665) -[2618388.629] {Default Queue} discarded wl_surface#3527.enter(wl_output#697) -[2618388.633] {Default Queue} discarded wl_surface#3527.enter(wl_output#729) -[2618388.637] {Default Queue} discarded wl_surface#3527.enter(wl_output#761) -[2618388.641] {Default Queue} discarded wl_surface#3527.enter(wl_output#793) -[2618388.646] {Default Queue} discarded wl_surface#3527.enter(wl_output#825) -[2618388.652] {Default Queue} discarded wl_surface#3527.enter(wl_output#857) -[2618388.658] {Default Queue} discarded wl_surface#3527.enter(wl_output#889) -[2618388.664] {Default Queue} discarded wl_surface#3527.enter(wl_output#921) -[2618388.670] {Default Queue} discarded wl_surface#3527.enter(wl_output#953) -[2618388.677] {Default Queue} discarded wl_surface#3527.enter(wl_output#985) -[2618388.685] {Default Queue} discarded wl_surface#3527.enter(wl_output#1017) -[2618388.691] {Default Queue} discarded wl_surface#3527.enter(wl_output#1049) -[2618388.708] {Default Queue} discarded wl_surface#3527.enter(wl_output#1081) -[2618388.715] {Default Queue} discarded wl_surface#3527.enter(wl_output#1113) -[2618388.719] {Default Queue} discarded wl_surface#3527.enter(wl_output#1145) -[2618388.723] {Default Queue} discarded wl_surface#3527.enter(wl_output#1177) -[2618388.727] {Default Queue} discarded wl_surface#3527.enter(wl_output#1209) -[2618388.732] {Default Queue} discarded wl_surface#3527.enter(wl_output#1241) -[2618388.736] {Default Queue} discarded wl_surface#3527.enter(wl_output#1273) -[2618388.740] {Default Queue} discarded wl_surface#3527.enter(wl_output#1305) -[2618388.744] {Default Queue} discarded wl_surface#3527.enter(wl_output#1337) -[2618388.748] {Default Queue} discarded wl_surface#3527.enter(wl_output#1369) -[2618388.752] {Default Queue} discarded wl_surface#3527.enter(wl_output#1401) -[2618388.756] {Default Queue} discarded wl_surface#3527.enter(wl_output#1433) -[2618388.760] {Default Queue} discarded wl_surface#3527.enter(wl_output#1465) -[2618388.764] {Default Queue} discarded wl_surface#3527.enter(wl_output#1497) -[2618388.768] {Default Queue} discarded wl_surface#3527.enter(wl_output#1529) -[2618388.771] {Default Queue} discarded wl_surface#3527.enter(wl_output#1561) -[2618388.775] {Default Queue} discarded wl_surface#3527.enter(wl_output#1593) -[2618388.779] {Default Queue} discarded wl_surface#3527.enter(wl_output#1625) -[2618388.783] {Default Queue} discarded wl_surface#3527.enter(wl_output#1657) -[2618388.787] {Default Queue} discarded wl_surface#3527.enter(wl_output#1689) -[2618388.791] {Default Queue} discarded wl_surface#3527.enter(wl_output#1721) -[2618388.795] {Default Queue} discarded wl_surface#3527.enter(wl_output#1753) -[2618388.799] {Default Queue} discarded wl_surface#3527.enter(wl_output#1785) -[2618388.803] {Default Queue} discarded wl_surface#3527.enter(wl_output#1817) -[2618388.807] {Default Queue} discarded wl_surface#3527.enter(wl_output#1849) -[2618388.811] {Default Queue} discarded wl_surface#3527.enter(wl_output#1881) -[2618388.815] {Default Queue} discarded wl_surface#3527.enter(wl_output#1913) -[2618388.819] {Default Queue} discarded wl_surface#3527.enter(wl_output#1945) -[2618388.823] {Default Queue} discarded wl_surface#3527.enter(wl_output#1977) -[2618388.827] {Default Queue} discarded wl_surface#3527.enter(wl_output#2009) -[2618388.831] {Default Queue} discarded wl_surface#3527.enter(wl_output#2041) -[2618388.835] {Default Queue} discarded wl_surface#3527.enter(wl_output#2073) -[2618388.840] {Default Queue} discarded wl_surface#3527.enter(wl_output#2105) -[2618388.844] {Default Queue} discarded wl_surface#3527.enter(wl_output#2137) -[2618388.847] {Default Queue} discarded wl_surface#3527.enter(wl_output#2169) -[2618388.851] {Default Queue} discarded wl_surface#3527.enter(wl_output#2201) -[2618388.855] {Default Queue} discarded wl_surface#3527.enter(wl_output#2233) -[2618388.860] {Default Queue} -> wl_compositor#2988.create_surface(new id wl_surface#3559) -[2618388.870] {Default Queue} -> wl_subcompositor#3565.get_subsurface(new id wl_subsurface#3578, wl_surface#3559, wl_surface#2983) -[2618388.878] {Default Queue} -> wl_subsurface#3578.set_desync() -[2618388.882] {Default Queue} -> wl_subsurface#3578.set_position(0, 0) -[2618388.887] {Default Queue} -> wl_subsurface#3578.place_above(wl_surface#2983) -[2618388.929] {Default Queue} -> wl_shm#3567.create_pool(new id wl_shm_pool#3579, fd 564, 16) -[2618388.936] {Default Queue} -> wl_shm#3567.create_pool(new id wl_shm_pool#3580, fd 565, 16) -[2618388.941] {Default Queue} -> wl_shm_pool#3579.create_buffer(new id wl_buffer#3581, 0, 2, 2, 8, 0) -[2618388.945] {Default Queue} -> wl_shm_pool#3580.create_buffer(new id wl_buffer#3582, 0, 2, 2, 8, 0) -[2618388.954] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) -[2618388.958] {Default Queue} -> wl_surface#3559.commit() -[2618388.964] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) -[2618388.968] {Default Queue} -> wl_surface#3559.commit() -[2618388.972] {Default Queue} -> wl_compositor#3564.create_region(new id wl_region#3583) -[2618388.980] {Default Queue} -> wl_compositor#3564.create_region(new id wl_region#3584) -[2618388.986] {Default Queue} -> wl_region#3583.subtract(0, 0, 2, 2) -[2618388.990] {Default Queue} -> wl_region#3583.add(0, 0, 0, 0) -[2618388.995] {Default Queue} -> wl_surface#3559.set_opaque_region(wl_region#3584) -[2618388.999] {Default Queue} -> wl_surface#3559.set_input_region(wl_region#3583) -[2618389.003] {Default Queue} -> wl_surface#3559.damage(0, 0, 2, 2) -[2618389.008] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) -[2618389.015] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) -[2618389.021] {Default Queue} -> wl_surface#3559.commit() -[2618389.054] {Default Queue} -> wl_shm#3569.create_pool(new id wl_shm_pool#3585, fd 568, 640) -[2618389.061] {Default Queue} -> wl_shm#3569.create_pool(new id wl_shm_pool#3586, fd 569, 640) -[2618389.065] {Default Queue} -> wl_shm_pool#3585.create_buffer(new id wl_buffer#3587, 0, 10, 16, 40, 0) -[2618389.070] {Default Queue} -> wl_shm_pool#3586.create_buffer(new id wl_buffer#3588, 0, 10, 16, 40, 0) -[2618389.077] {Default Queue} -> wl_compositor#3564.create_surface(new id wl_surface#3589) -[2618389.081] {Default Queue} -> wl_surface#3589.attach(wl_buffer#3587, 0, 0) -[2618389.085] {Default Queue} -> wl_surface#3589.commit() -[2618389.091] {Default Queue} -> wl_surface#3589.attach(wl_buffer#3587, 0, 0) -[2618389.095] {Default Queue} -> wl_surface#3589.commit() -[2618389.100] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) -[2618389.107] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3590) -[2618389.112] {Default Queue} -> wl_display#1.sync(new id wl_callback#3591) -[2618391.006] {Default Queue} discarded wl_surface#3527.enter(wl_output#2265) -[2618391.016] {Default Queue} discarded wl_surface#3527.enter(wl_output#2297) -[2618391.021] {Default Queue} discarded wl_surface#3527.enter(wl_output#2329) -[2618391.027] {Default Queue} discarded wl_surface#3527.enter(wl_output#2361) -[2618391.032] {Default Queue} discarded wl_surface#3527.enter(wl_output#2393) -[2618391.037] {Default Queue} discarded wl_surface#3527.enter(wl_output#2425) -[2618391.041] {Default Queue} discarded wl_surface#3527.enter(wl_output#2457) -[2618391.046] {Default Queue} discarded wl_surface#3527.enter(wl_output#2489) -[2618391.051] {Default Queue} discarded wl_surface#3527.enter(wl_output#2521) -[2618391.056] {Default Queue} discarded wl_surface#3527.enter(wl_output#2553) -[2618391.061] {Default Queue} discarded wl_surface#3527.enter(wl_output#2585) -[2618391.066] {Default Queue} discarded wl_surface#3527.enter(wl_output#2617) -[2618391.071] {Default Queue} discarded wl_surface#3527.enter(wl_output#2649) -[2618391.076] {Default Queue} discarded wl_surface#3527.enter(wl_output#2681) -[2618391.081] {Default Queue} discarded wl_surface#3527.enter(wl_output#2713) -[2618391.085] {Default Queue} discarded wl_surface#3527.enter(wl_output#2745) -[2618391.090] {Default Queue} discarded wl_surface#3527.enter(wl_output#2777) -[2618391.095] {Default Queue} discarded wl_surface#3527.enter(wl_output#2809) -[2618391.100] {Default Queue} discarded wl_surface#3527.enter(wl_output#2841) -[2618391.105] {Default Queue} discarded wl_surface#3527.enter(wl_output#2873) -[2618391.110] {Default Queue} discarded wl_surface#3527.enter(wl_output#2905) -[2618391.115] {Default Queue} discarded wl_surface#3527.enter(wl_output#2937) -[2618391.120] {Default Queue} discarded wl_surface#3527.enter(wl_output#2969) -[2618391.125] {Default Queue} discarded wl_surface#3527.enter(wl_output#3001) -[2618391.130] {Default Queue} discarded wl_surface#3527.enter(wl_output#3033) -[2618391.135] {Default Queue} discarded wl_surface#3527.enter(wl_output#3065) -[2618391.140] {Default Queue} discarded wl_surface#3527.enter(wl_output#3097) -[2618391.144] {Default Queue} discarded wl_surface#3527.enter(wl_output#3129) -[2618391.149] {Default Queue} discarded wl_surface#3527.enter(wl_output#3161) -[2618391.155] {Default Queue} discarded wl_surface#3527.enter(wl_output#3193) -[2618391.159] {Default Queue} discarded wl_surface#3527.enter(wl_output#3225) -[2618391.169] {Default Queue} discarded wl_surface#3527.enter(wl_output#3257) -[2618391.177] {Default Queue} discarded wl_surface#3527.enter(wl_output#3289) -[2618391.182] {Default Queue} discarded wl_surface#3527.enter(wl_output#3321) -[2618391.187] {Default Queue} discarded wl_surface#3527.enter(wl_output#3353) -[2618391.192] {Default Queue} discarded wl_surface#3527.enter(wl_output#3385) -[2618391.197] {Default Queue} discarded wl_surface#3527.enter(wl_output#3417) -[2618391.201] {Default Queue} discarded wl_surface#3527.enter(wl_output#3449) -[2618391.207] {Default Queue} discarded wl_surface#3527.enter(wl_output#3481) -[2618391.211] {Default Queue} discarded wl_surface#3527.enter(wl_output#3513) -[2618391.216] {Default Queue} discarded wl_surface#3527.enter(wl_output#3545) -[2618391.278] {Display Queue} wl_display#1.delete_id(3591) -[2618391.286] {Default Queue} wl_keyboard#3560.keymap(1, fd 564, 68213) -[2618391.292] {Default Queue} wl_keyboard#3560.enter(566, wl_surface#19, array[0]) -[2618391.298] {Default Queue} wl_keyboard#3560.modifiers(566, 0, 0, 16, 0) -[2618391.304] {Default Queue} discarded wl_shm#3567.format(875709016) -[2618391.309] {Default Queue} discarded wl_shm#3567.format(1) -[2618391.314] {Default Queue} discarded wl_shm#3567.format(0) -[2618391.319] {Default Queue} discarded wl_shm#3567.format(875708993) -[2618391.324] {Default Queue} discarded wl_shm#3568.format(875709016) -[2618391.329] {Default Queue} discarded wl_shm#3568.format(1) -[2618391.333] {Default Queue} discarded wl_shm#3568.format(0) -[2618391.338] {Default Queue} discarded wl_shm#3568.format(875708993) -[2618391.343] {Default Queue} discarded wl_shm#3569.format(875709016) -[2618391.348] {Default Queue} discarded wl_shm#3569.format(1) -[2618391.353] {Default Queue} discarded wl_shm#3569.format(0) -[2618391.358] {Default Queue} discarded wl_shm#3569.format(875708993) -[2618391.363] {Default Queue} wl_seat#3576.capabilities(7) -[2618391.368] {Default Queue} -> wl_seat#3576.get_keyboard(new id wl_keyboard#3592) -[2618391.374] {Default Queue} -> wl_seat#3576.get_pointer(new id wl_pointer#3593) -[2618391.380] {Default Queue} -> wl_data_device_manager#3572.get_data_device(new id wl_data_device#3594, wl_seat#3576) -[2618391.386] {Default Queue} -> zwp_primary_selection_device_manager_v1#3574.get_device(new id zwp_primary_selection_device_v1#3595, wl_seat#3576) -[2618391.395] {Default Queue} wl_output#3577.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618391.401] {Default Queue} wl_output#3577.mode(3, 1280, 800, 60000) -[2618391.407] {Default Queue} discarded wl_surface#2727.enter(wl_output#3577) -[2618391.412] {Default Queue} discarded wl_surface#3.enter(wl_output#3577) -[2618391.417] {Default Queue} discarded wl_surface#999.enter(wl_output#3577) -[2618391.422] {Default Queue} discarded wl_surface#3079.enter(wl_output#3577) -[2618391.427] {Default Queue} discarded wl_surface#1191.enter(wl_output#3577) -[2618391.432] {Default Queue} discarded wl_surface#1159.enter(wl_output#3577) -[2618391.437] {Default Queue} discarded wl_surface#1703.enter(wl_output#3577) -[2618391.441] {Default Queue} discarded wl_surface#2215.enter(wl_output#3577) -[2618391.446] {Default Queue} discarded wl_surface#423.enter(wl_output#3577) -[2618391.451] {Default Queue} discarded wl_surface#1447.enter(wl_output#3577) -[2618391.456] {Default Queue} discarded wl_surface#3527.enter(wl_output#3577) -[2618391.461] {Default Queue} discarded wl_surface#3047.enter(wl_output#3577) -[2618391.466] {Default Queue} discarded wl_surface#2023.enter(wl_output#3577) -[2618391.470] {Default Queue} discarded wl_surface#1639.enter(wl_output#3577) -[2618391.474] {Default Queue} discarded wl_surface#1319.enter(wl_output#3577) -[2618391.478] {Default Queue} discarded wl_surface#1127.enter(wl_output#3577) -[2618391.482] {Default Queue} discarded wl_surface#2151.enter(wl_output#3577) -[2618391.486] {Default Queue} discarded wl_surface#2375.enter(wl_output#3577) -[2618391.489] {Default Queue} discarded wl_surface#2695.enter(wl_output#3577) -[2618391.493] {Default Queue} discarded wl_surface#2919.enter(wl_output#3577) -[2618391.502] {Default Queue} discarded wl_surface#1063.enter(wl_output#3577) -[2618391.508] {Default Queue} discarded wl_surface#455.enter(wl_output#3577) -[2618391.512] {Default Queue} discarded wl_surface#1575.enter(wl_output#3577) -[2618391.515] {Default Queue} discarded wl_surface#1799.enter(wl_output#3577) -[2618391.519] {Default Queue} discarded wl_surface#1415.enter(wl_output#3577) -[2618391.523] {Default Queue} discarded wl_surface#2439.enter(wl_output#3577) -[2618391.527] {Default Queue} discarded wl_surface#2279.enter(wl_output#3577) -[2618391.531] {Default Queue} discarded wl_surface#1831.enter(wl_output#3577) -[2618391.535] {Default Queue} discarded wl_surface#903.enter(wl_output#3577) -[2618391.538] {Default Queue} discarded wl_surface#2663.enter(wl_output#3577) -[2618391.542] {Default Queue} discarded wl_surface#775.enter(wl_output#3577) -[2618391.546] {Default Queue} discarded wl_surface#1991.enter(wl_output#3577) -[2618391.550] {Default Queue} discarded wl_surface#1543.enter(wl_output#3577) -[2618391.554] {Default Queue} discarded wl_surface#135.enter(wl_output#3577) -[2618391.558] {Default Queue} discarded wl_surface#1287.enter(wl_output#3577) -[2618391.562] {Default Queue} discarded wl_surface#3399.enter(wl_output#3577) -[2618391.565] {Default Queue} discarded wl_surface#1031.enter(wl_output#3577) -[2618391.569] {Default Queue} discarded wl_surface#615.enter(wl_output#3577) -[2618391.573] {Default Queue} discarded wl_surface#3111.enter(wl_output#3577) -[2618391.577] {Default Queue} discarded wl_surface#231.enter(wl_output#3577) -[2618391.581] {Default Queue} discarded wl_surface#2343.enter(wl_output#3577) -[2618391.585] {Default Queue} discarded wl_surface#1863.enter(wl_output#3577) -[2618391.589] {Default Queue} discarded wl_surface#359.enter(wl_output#3577) -[2618391.593] {Default Queue} discarded wl_surface#2983.enter(wl_output#3577) -[2618391.596] {Default Queue} discarded wl_surface#583.enter(wl_output#3577) -[2618391.601] {Default Queue} discarded wl_surface#743.enter(wl_output#3577) -[2618391.605] {Default Queue} discarded wl_surface#3143.enter(wl_output#3577) -[2618391.608] {Default Queue} discarded wl_surface#2535.enter(wl_output#3577) -[2618391.612] {Default Queue} discarded wl_surface#3367.enter(wl_output#3577) -[2618391.616] {Default Queue} discarded wl_surface#967.enter(wl_output#3577) -[2618391.620] {Default Queue} discarded wl_surface#103.enter(wl_output#3577) -[2618391.624] {Default Queue} discarded wl_surface#3271.enter(wl_output#3577) -[2618391.628] {Default Queue} discarded wl_surface#327.enter(wl_output#3577) -[2618391.632] {Default Queue} discarded wl_surface#43.enter(wl_output#3577) -[2618391.636] {Default Queue} discarded wl_surface#2247.enter(wl_output#3577) -[2618391.640] {Default Queue} discarded wl_surface#807.enter(wl_output#3577) -[2618391.644] {Default Queue} discarded wl_surface#19.enter(wl_output#3577) -[2618391.648] {Default Queue} discarded wl_surface#2951.enter(wl_output#3577) -[2618391.651] {Default Queue} discarded wl_surface#1511.enter(wl_output#3577) -[2618391.656] {Default Queue} discarded wl_surface#199.enter(wl_output#3577) -[2618391.659] {Default Queue} discarded wl_surface#3463.enter(wl_output#3577) -[2618391.663] {Default Queue} discarded wl_surface#3495.enter(wl_output#3577) -[2618391.667] {Default Queue} discarded wl_surface#391.enter(wl_output#3577) -[2618391.671] {Default Queue} discarded wl_surface#935.enter(wl_output#3577) -[2618391.675] {Default Queue} discarded wl_surface#2823.enter(wl_output#3577) -[2618391.679] {Default Queue} discarded wl_surface#3015.enter(wl_output#3577) -[2618391.683] {Default Queue} discarded wl_surface#1671.enter(wl_output#3577) -[2618391.687] {Default Queue} discarded wl_surface#1351.enter(wl_output#3577) -[2618391.691] {Default Queue} discarded wl_surface#711.enter(wl_output#3577) -[2618391.695] {Default Queue} discarded wl_surface#3175.enter(wl_output#3577) -[2618391.699] {Default Queue} discarded wl_surface#3431.enter(wl_output#3577) -[2618391.703] {Default Queue} discarded wl_surface#1223.enter(wl_output#3577) -[2618391.707] {Default Queue} discarded wl_surface#1927.enter(wl_output#3577) -[2618391.714] {Default Queue} discarded wl_surface#871.enter(wl_output#3577) -[2618391.719] {Default Queue} discarded wl_surface#1895.enter(wl_output#3577) -[2618391.723] {Default Queue} discarded wl_surface#263.enter(wl_output#3577) -[2618391.727] {Default Queue} discarded wl_surface#551.enter(wl_output#3577) -[2618391.731] {Default Queue} discarded wl_surface#1735.enter(wl_output#3577) -[2618391.735] {Default Queue} discarded wl_surface#1479.enter(wl_output#3577) -[2618391.739] {Default Queue} discarded wl_surface#1772.enter(wl_output#3577) -[2618391.742] {Default Queue} discarded wl_surface#2599.enter(wl_output#3577) -[2618391.746] {Default Queue} discarded wl_surface#2631.enter(wl_output#3577) -[2618391.750] {Default Queue} discarded wl_surface#1959.enter(wl_output#3577) -[2618391.754] {Default Queue} discarded wl_surface#647.enter(wl_output#3577) -[2618391.758] {Default Queue} discarded wl_surface#2055.enter(wl_output#3577) -[2618391.762] {Default Queue} discarded wl_surface#2508.enter(wl_output#3577) -[2618391.766] {Default Queue} discarded wl_surface#71.enter(wl_output#3577) -[2618391.770] {Default Queue} discarded wl_surface#2759.enter(wl_output#3577) -[2618391.774] {Default Queue} discarded wl_surface#2791.enter(wl_output#3577) -[2618391.778] {Default Queue} discarded wl_surface#2887.enter(wl_output#3577) -[2618391.781] {Default Queue} discarded wl_surface#2183.enter(wl_output#3577) -[2618391.785] {Default Queue} discarded wl_surface#2567.enter(wl_output#3577) -[2618391.789] {Default Queue} discarded wl_surface#839.enter(wl_output#3577) -[2618391.793] {Default Queue} discarded wl_surface#1607.enter(wl_output#3577) -[2618391.797] {Default Queue} discarded wl_surface#1095.enter(wl_output#3577) -[2618391.801] {Default Queue} discarded wl_surface#1383.enter(wl_output#3577) -[2618391.805] {Default Queue} discarded wl_surface#487.enter(wl_output#3577) -[2618391.809] {Default Queue} discarded wl_surface#2311.enter(wl_output#3577) -[2618391.813] {Default Queue} discarded wl_surface#519.enter(wl_output#3577) -[2618391.817] {Default Queue} discarded wl_surface#3335.enter(wl_output#3577) -[2618391.820] {Default Queue} discarded wl_surface#3239.enter(wl_output#3577) -[2618391.824] {Default Queue} discarded wl_surface#2087.enter(wl_output#3577) -[2618391.828] {Default Queue} discarded wl_surface#2471.enter(wl_output#3577) -[2618391.832] {Default Queue} discarded wl_surface#295.enter(wl_output#3577) -[2618391.836] {Default Queue} discarded wl_surface#167.enter(wl_output#3577) -[2618391.840] {Default Queue} discarded wl_surface#1255.enter(wl_output#3577) -[2618391.844] {Default Queue} discarded wl_surface#2855.enter(wl_output#3577) -[2618391.848] {Default Queue} discarded wl_surface#3303.enter(wl_output#3577) -[2618391.852] {Default Queue} discarded wl_surface#679.enter(wl_output#3577) -[2618391.856] {Default Queue} discarded wl_surface#2407.enter(wl_output#3577) -[2618391.860] {Default Queue} discarded wl_surface#3207.enter(wl_output#3577) -[2618391.864] {Default Queue} discarded wl_surface#2119.enter(wl_output#3577) -[2618391.868] {Default Queue} wl_registry#3590.global(1, "wl_compositor", 6) -[2618391.877] {Default Queue} -> wl_registry#3590.bind(1, "wl_compositor", 1, new id [unknown]#3596) -[2618391.882] {Default Queue} wl_registry#3590.global(2, "wl_subcompositor", 1) -[2618391.887] {Default Queue} -> wl_registry#3590.bind(2, "wl_subcompositor", 1, new id [unknown]#3597) -[2618391.892] {Default Queue} wl_registry#3590.global(3, "xdg_wm_base", 6) -[2618391.897] {Default Queue} -> wl_registry#3590.bind(3, "xdg_wm_base", 1, new id [unknown]#3598) -[2618391.902] {Default Queue} wl_registry#3590.global(6, "zwlr_layer_shell_v1", 5) -[2618391.906] {Default Queue} wl_registry#3590.global(7, "ext_session_lock_manager_v1", 1) -[2618391.911] {Default Queue} wl_registry#3590.global(8, "wl_shm", 2) -[2618391.915] {Default Queue} -> wl_registry#3590.bind(8, "wl_shm", 1, new id [unknown]#3599) -[2618391.920] {Default Queue} -> wl_registry#3590.bind(8, "wl_shm", 1, new id [unknown]#3600) -[2618391.925] {Default Queue} -> wl_registry#3590.bind(8, "wl_shm", 1, new id [unknown]#3601) -[2618391.932] {Default Queue} wl_registry#3590.global(9, "zxdg_output_manager_v1", 3) -[2618391.938] {Default Queue} wl_registry#3590.global(10, "wp_fractional_scale_manager_v1", 1) -[2618391.943] {Default Queue} wl_registry#3590.global(11, "zwp_tablet_manager_v2", 1) -[2618391.947] {Default Queue} wl_registry#3590.global(12, "zwp_pointer_gestures_v1", 3) -[2618391.952] {Default Queue} wl_registry#3590.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618391.956] {Default Queue} -> wl_registry#3590.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3602) -[2618391.961] {Default Queue} wl_registry#3590.global(14, "zwp_pointer_constraints_v1", 1) -[2618391.965] {Default Queue} -> wl_registry#3590.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3603) -[2618391.969] {Default Queue} wl_registry#3590.global(15, "ext_idle_notifier_v1", 2) -[2618391.974] {Default Queue} wl_registry#3590.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618391.978] {Default Queue} wl_registry#3590.global(17, "wl_data_device_manager", 3) -[2618391.983] {Default Queue} -> wl_registry#3590.bind(17, "wl_data_device_manager", 2, new id [unknown]#3604) -[2618391.987] {Default Queue} -> wl_data_device_manager#3604.create_data_source(new id wl_data_source#3605) -[2618391.992] {Default Queue} -> wl_data_source#3605.offer("text/plain") -[2618391.997] {Default Queue} -> wl_data_source#3605.offer("text/plain;charset=utf-8") -[2618392.001] {Default Queue} -> wl_data_source#3605.offer("TEXT") -[2618392.005] {Default Queue} -> wl_data_source#3605.offer("STRING") -[2618392.009] {Default Queue} -> wl_data_source#3605.offer("UTF8_STRING") -[2618392.013] {Default Queue} wl_registry#3590.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618392.017] {Default Queue} -> wl_registry#3590.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3606) -[2618392.026] {Default Queue} -> zwp_primary_selection_device_manager_v1#3606.create_source(new id zwp_primary_selection_source_v1#3607) -[2618392.033] {Default Queue} -> zwp_primary_selection_source_v1#3607.offer("text/plain") -[2618392.039] {Default Queue} -> zwp_primary_selection_source_v1#3607.offer("text/plain;charset=utf-8") -[2618392.043] {Default Queue} -> zwp_primary_selection_source_v1#3607.offer("TEXT") -[2618392.048] {Default Queue} -> zwp_primary_selection_source_v1#3607.offer("STRING") -[2618392.052] {Default Queue} -> zwp_primary_selection_source_v1#3607.offer("UTF8_STRING") -[2618392.056] {Default Queue} wl_registry#3590.global(19, "zwlr_data_control_manager_v1", 2) -[2618392.060] {Default Queue} wl_registry#3590.global(20, "ext_data_control_manager_v1", 1) -[2618392.065] {Default Queue} wl_registry#3590.global(21, "wp_presentation", 2) -[2618392.069] {Default Queue} wl_registry#3590.global(22, "wp_security_context_manager_v1", 1) -[2618392.073] {Default Queue} wl_registry#3590.global(23, "zwp_text_input_manager_v3", 1) -[2618392.078] {Default Queue} wl_registry#3590.global(24, "zwp_input_method_manager_v2", 1) -[2618392.082] {Default Queue} wl_registry#3590.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618392.087] {Default Queue} wl_registry#3590.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618392.091] {Default Queue} wl_registry#3590.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618392.096] {Default Queue} wl_registry#3590.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618392.102] {Default Queue} wl_registry#3590.global(29, "ext_workspace_manager_v1", 1) -[2618392.108] {Default Queue} wl_registry#3590.global(30, "zwlr_output_manager_v1", 4) -[2618392.113] {Default Queue} wl_registry#3590.global(31, "zwlr_screencopy_manager_v1", 3) -[2618392.119] {Default Queue} wl_registry#3590.global(32, "wp_viewporter", 1) -[2618392.125] {Default Queue} wl_registry#3590.global(33, "zxdg_exporter_v2", 1) -[2618392.130] {Default Queue} wl_registry#3590.global(34, "zxdg_importer_v2", 1) -[2618392.134] {Default Queue} wl_registry#3590.global(36, "xdg_activation_v1", 1) -[2618392.139] {Default Queue} wl_registry#3590.global(37, "mutter_x11_interop", 1) -[2618392.146] {Default Queue} wl_registry#3590.global(38, "wl_seat", 9) -[2618392.152] {Default Queue} -> wl_registry#3590.bind(38, "wl_seat", 1, new id [unknown]#3608) -[2618392.157] {Default Queue} wl_registry#3590.global(39, "wp_cursor_shape_manager_v1", 2) -[2618392.161] {Default Queue} wl_registry#3590.global(40, "wl_output", 4) -[2618392.166] {Default Queue} -> wl_registry#3590.bind(40, "wl_output", 1, new id [unknown]#3609) -[2618392.171] {Default Queue} wl_callback#3591.done(0) -[2618392.175] {Default Queue} discarded wl_surface#3559.enter(wl_output#18) -[2618392.179] {Default Queue} discarded wl_surface#3559.enter(wl_output#57) -[2618392.182] {Default Queue} discarded wl_surface#3559.enter(wl_output#89) -[2618392.186] {Default Queue} discarded wl_surface#3559.enter(wl_output#121) -[2618392.191] {Default Queue} discarded wl_surface#3559.enter(wl_output#153) -[2618392.195] {Default Queue} discarded wl_surface#3559.enter(wl_output#185) -[2618392.199] {Default Queue} discarded wl_surface#3559.enter(wl_output#217) -[2618392.202] {Default Queue} discarded wl_surface#3559.enter(wl_output#249) -[2618392.206] {Default Queue} discarded wl_surface#3559.enter(wl_output#281) -[2618392.210] {Default Queue} discarded wl_surface#3559.enter(wl_output#313) -[2618392.214] {Default Queue} discarded wl_surface#3559.enter(wl_output#345) -[2618392.218] {Default Queue} discarded wl_surface#3559.enter(wl_output#377) -[2618392.222] {Default Queue} discarded wl_surface#3559.enter(wl_output#409) -[2618392.226] {Default Queue} discarded wl_surface#3559.enter(wl_output#441) -[2618392.230] {Default Queue} discarded wl_surface#3559.enter(wl_output#473) -[2618392.234] {Default Queue} discarded wl_surface#3559.enter(wl_output#505) -[2618392.238] {Default Queue} discarded wl_surface#3559.enter(wl_output#537) -[2618392.242] {Default Queue} discarded wl_surface#3559.enter(wl_output#569) -[2618392.246] {Default Queue} discarded wl_surface#3559.enter(wl_output#601) -[2618392.250] {Default Queue} discarded wl_surface#3559.enter(wl_output#633) -[2618392.253] {Default Queue} discarded wl_surface#3559.enter(wl_output#665) -[2618392.257] {Default Queue} discarded wl_surface#3559.enter(wl_output#697) -[2618392.262] {Default Queue} discarded wl_surface#3559.enter(wl_output#729) -[2618392.266] {Default Queue} discarded wl_surface#3559.enter(wl_output#761) -[2618392.269] {Default Queue} discarded wl_surface#3559.enter(wl_output#793) -[2618392.273] {Default Queue} discarded wl_surface#3559.enter(wl_output#825) -[2618392.277] {Default Queue} discarded wl_surface#3559.enter(wl_output#857) -[2618392.281] {Default Queue} discarded wl_surface#3559.enter(wl_output#889) -[2618392.285] {Default Queue} discarded wl_surface#3559.enter(wl_output#921) -[2618392.289] {Default Queue} discarded wl_surface#3559.enter(wl_output#953) -[2618392.293] {Default Queue} discarded wl_surface#3559.enter(wl_output#985) -[2618392.297] {Default Queue} discarded wl_surface#3559.enter(wl_output#1017) -[2618392.301] {Default Queue} discarded wl_surface#3559.enter(wl_output#1049) -[2618392.305] {Default Queue} discarded wl_surface#3559.enter(wl_output#1081) -[2618392.309] {Default Queue} discarded wl_surface#3559.enter(wl_output#1113) -[2618392.313] {Default Queue} discarded wl_surface#3559.enter(wl_output#1145) -[2618392.317] {Default Queue} discarded wl_surface#3559.enter(wl_output#1177) -[2618392.321] {Default Queue} discarded wl_surface#3559.enter(wl_output#1209) -[2618392.325] {Default Queue} discarded wl_surface#3559.enter(wl_output#1241) -[2618392.329] {Default Queue} discarded wl_surface#3559.enter(wl_output#1273) -[2618392.333] {Default Queue} discarded wl_surface#3559.enter(wl_output#1305) -[2618392.337] {Default Queue} discarded wl_surface#3559.enter(wl_output#1337) -[2618392.341] {Default Queue} discarded wl_surface#3559.enter(wl_output#1369) -[2618392.344] {Default Queue} discarded wl_surface#3559.enter(wl_output#1401) -[2618392.348] {Default Queue} discarded wl_surface#3559.enter(wl_output#1433) -[2618392.352] {Default Queue} discarded wl_surface#3559.enter(wl_output#1465) -[2618392.356] {Default Queue} discarded wl_surface#3559.enter(wl_output#1497) -[2618392.363] {Default Queue} discarded wl_surface#3559.enter(wl_output#1529) -[2618392.368] {Default Queue} discarded wl_surface#3559.enter(wl_output#1561) -[2618392.372] {Default Queue} discarded wl_surface#3559.enter(wl_output#1593) -[2618392.376] {Default Queue} discarded wl_surface#3559.enter(wl_output#1625) -[2618392.380] {Default Queue} discarded wl_surface#3559.enter(wl_output#1657) -[2618392.384] {Default Queue} discarded wl_surface#3559.enter(wl_output#1689) -[2618392.388] {Default Queue} discarded wl_surface#3559.enter(wl_output#1721) -[2618392.392] {Default Queue} discarded wl_surface#3559.enter(wl_output#1753) -[2618392.396] {Default Queue} discarded wl_surface#3559.enter(wl_output#1785) -[2618392.400] {Default Queue} discarded wl_surface#3559.enter(wl_output#1817) -[2618392.404] {Default Queue} discarded wl_surface#3559.enter(wl_output#1849) -[2618392.408] {Default Queue} discarded wl_surface#3559.enter(wl_output#1881) -[2618392.412] {Default Queue} discarded wl_surface#3559.enter(wl_output#1913) -[2618392.416] {Default Queue} discarded wl_surface#3559.enter(wl_output#1945) -[2618392.420] {Default Queue} discarded wl_surface#3559.enter(wl_output#1977) -[2618392.424] {Default Queue} discarded wl_surface#3559.enter(wl_output#2009) -[2618392.428] {Default Queue} discarded wl_surface#3559.enter(wl_output#2041) -[2618392.432] {Default Queue} -> wl_compositor#2988.create_surface(new id wl_surface#3591) -[2618392.436] {Default Queue} -> wl_subcompositor#3597.get_subsurface(new id wl_subsurface#3610, wl_surface#3591, wl_surface#2983) -[2618392.444] {Default Queue} -> wl_subsurface#3610.set_desync() -[2618392.449] {Default Queue} -> wl_subsurface#3610.set_position(0, 0) -[2618392.453] {Default Queue} -> wl_subsurface#3610.place_above(wl_surface#2983) -[2618392.503] {Default Queue} -> wl_shm#3599.create_pool(new id wl_shm_pool#3611, fd 569, 16) -[2618392.510] {Default Queue} -> wl_shm#3599.create_pool(new id wl_shm_pool#3612, fd 570, 16) -[2618392.514] {Default Queue} -> wl_shm_pool#3611.create_buffer(new id wl_buffer#3613, 0, 2, 2, 8, 0) -[2618392.519] {Default Queue} -> wl_shm_pool#3612.create_buffer(new id wl_buffer#3614, 0, 2, 2, 8, 0) -[2618392.527] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) -[2618392.533] {Default Queue} -> wl_surface#3591.commit() -[2618392.538] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) -[2618392.543] {Default Queue} -> wl_surface#3591.commit() -[2618392.547] {Default Queue} -> wl_compositor#3596.create_region(new id wl_region#3615) -[2618392.551] {Default Queue} -> wl_compositor#3596.create_region(new id wl_region#3616) -[2618392.556] {Default Queue} -> wl_region#3615.subtract(0, 0, 2, 2) -[2618392.560] {Default Queue} -> wl_region#3615.add(0, 0, 0, 0) -[2618392.565] {Default Queue} -> wl_surface#3591.set_opaque_region(wl_region#3616) -[2618392.569] {Default Queue} -> wl_surface#3591.set_input_region(wl_region#3615) -[2618392.574] {Default Queue} -> wl_surface#3591.damage(0, 0, 2, 2) -[2618392.578] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) -[2618392.585] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) -[2618392.589] {Default Queue} -> wl_surface#3591.commit() -[2618392.624] {Default Queue} -> wl_shm#3601.create_pool(new id wl_shm_pool#3617, fd 573, 640) -[2618392.630] {Default Queue} -> wl_shm#3601.create_pool(new id wl_shm_pool#3618, fd 574, 640) -[2618392.634] {Default Queue} -> wl_shm_pool#3617.create_buffer(new id wl_buffer#3619, 0, 10, 16, 40, 0) -[2618392.639] {Default Queue} -> wl_shm_pool#3618.create_buffer(new id wl_buffer#3620, 0, 10, 16, 40, 0) -[2618392.646] {Default Queue} -> wl_compositor#3596.create_surface(new id wl_surface#3621) -[2618392.650] {Default Queue} -> wl_surface#3621.attach(wl_buffer#3619, 0, 0) -[2618392.654] {Default Queue} -> wl_surface#3621.commit() -[2618392.660] {Default Queue} -> wl_surface#3621.attach(wl_buffer#3619, 0, 0) -[2618392.664] {Default Queue} -> wl_surface#3621.commit() -[2618392.669] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) -[2618392.676] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3622) -[2618392.684] {Default Queue} -> wl_display#1.sync(new id wl_callback#3623) -[2618396.013] {Default Queue} discarded wl_surface#3559.enter(wl_output#2073) -[2618396.021] {Default Queue} discarded wl_surface#3559.enter(wl_output#2105) -[2618396.025] {Default Queue} discarded wl_surface#3559.enter(wl_output#2137) -[2618396.029] {Default Queue} discarded wl_surface#3559.enter(wl_output#2169) -[2618396.033] {Default Queue} discarded wl_surface#3559.enter(wl_output#2201) -[2618396.037] {Default Queue} discarded wl_surface#3559.enter(wl_output#2233) -[2618396.042] {Default Queue} discarded wl_surface#3559.enter(wl_output#2265) -[2618396.045] {Default Queue} discarded wl_surface#3559.enter(wl_output#2297) -[2618396.049] {Default Queue} discarded wl_surface#3559.enter(wl_output#2329) -[2618396.053] {Default Queue} discarded wl_surface#3559.enter(wl_output#2361) -[2618396.057] {Default Queue} discarded wl_surface#3559.enter(wl_output#2393) -[2618396.060] {Default Queue} discarded wl_surface#3559.enter(wl_output#2425) -[2618396.064] {Default Queue} discarded wl_surface#3559.enter(wl_output#2457) -[2618396.069] {Default Queue} discarded wl_surface#3559.enter(wl_output#2489) -[2618396.073] {Default Queue} discarded wl_surface#3559.enter(wl_output#2521) -[2618396.077] {Default Queue} discarded wl_surface#3559.enter(wl_output#2553) -[2618396.080] {Default Queue} discarded wl_surface#3559.enter(wl_output#2585) -[2618396.084] {Default Queue} discarded wl_surface#3559.enter(wl_output#2617) -[2618396.089] {Default Queue} discarded wl_surface#3559.enter(wl_output#2649) -[2618396.093] {Default Queue} discarded wl_surface#3559.enter(wl_output#2681) -[2618396.096] {Default Queue} discarded wl_surface#3559.enter(wl_output#2713) -[2618396.100] {Default Queue} discarded wl_surface#3559.enter(wl_output#2745) -[2618396.104] {Default Queue} discarded wl_surface#3559.enter(wl_output#2777) -[2618396.108] {Default Queue} discarded wl_surface#3559.enter(wl_output#2809) -[2618396.112] {Default Queue} discarded wl_surface#3559.enter(wl_output#2841) -[2618396.116] {Default Queue} discarded wl_surface#3559.enter(wl_output#2873) -[2618396.120] {Default Queue} discarded wl_surface#3559.enter(wl_output#2905) -[2618396.124] {Default Queue} discarded wl_surface#3559.enter(wl_output#2937) -[2618396.128] {Default Queue} discarded wl_surface#3559.enter(wl_output#2969) -[2618396.132] {Default Queue} discarded wl_surface#3559.enter(wl_output#3001) -[2618396.136] {Default Queue} discarded wl_surface#3559.enter(wl_output#3033) -[2618396.140] {Default Queue} discarded wl_surface#3559.enter(wl_output#3065) -[2618396.144] {Default Queue} discarded wl_surface#3559.enter(wl_output#3097) -[2618396.148] {Default Queue} discarded wl_surface#3559.enter(wl_output#3129) -[2618396.152] {Default Queue} discarded wl_surface#3559.enter(wl_output#3161) -[2618396.155] {Default Queue} discarded wl_surface#3559.enter(wl_output#3193) -[2618396.160] {Default Queue} discarded wl_surface#3559.enter(wl_output#3225) -[2618396.164] {Default Queue} discarded wl_surface#3559.enter(wl_output#3257) -[2618396.167] {Default Queue} discarded wl_surface#3559.enter(wl_output#3289) -[2618396.171] {Default Queue} discarded wl_surface#3559.enter(wl_output#3321) -[2618396.175] {Default Queue} discarded wl_surface#3559.enter(wl_output#3353) -[2618396.179] {Default Queue} discarded wl_surface#3559.enter(wl_output#3385) -[2618396.183] {Default Queue} discarded wl_surface#3559.enter(wl_output#3417) -[2618396.187] {Default Queue} discarded wl_surface#3559.enter(wl_output#3449) -[2618396.191] {Default Queue} discarded wl_surface#3559.enter(wl_output#3481) -[2618396.195] {Default Queue} discarded wl_surface#3559.enter(wl_output#3513) -[2618396.198] {Default Queue} discarded wl_surface#3559.enter(wl_output#3545) -[2618396.202] {Default Queue} discarded wl_surface#3559.enter(wl_output#3577) -[2618396.332] {Display Queue} wl_display#1.delete_id(3623) -[2618396.339] {Default Queue} wl_keyboard#3592.keymap(1, fd 569, 68213) -[2618396.343] {Default Queue} wl_keyboard#3592.enter(566, wl_surface#19, array[0]) -[2618396.353] {Default Queue} wl_keyboard#3592.modifiers(566, 0, 0, 16, 0) -[2618396.360] {Default Queue} discarded wl_shm#3599.format(875709016) -[2618396.364] {Default Queue} discarded wl_shm#3599.format(1) -[2618396.368] {Default Queue} discarded wl_shm#3599.format(0) -[2618396.372] {Default Queue} discarded wl_shm#3599.format(875708993) -[2618396.376] {Default Queue} discarded wl_shm#3600.format(875709016) -[2618396.380] {Default Queue} discarded wl_shm#3600.format(1) -[2618396.384] {Default Queue} discarded wl_shm#3600.format(0) -[2618396.388] {Default Queue} discarded wl_shm#3600.format(875708993) -[2618396.392] {Default Queue} discarded wl_shm#3601.format(875709016) -[2618396.396] {Default Queue} discarded wl_shm#3601.format(1) -[2618396.400] {Default Queue} discarded wl_shm#3601.format(0) -[2618396.403] {Default Queue} discarded wl_shm#3601.format(875708993) -[2618396.407] {Default Queue} wl_seat#3608.capabilities(7) -[2618396.412] {Default Queue} -> wl_seat#3608.get_keyboard(new id wl_keyboard#3624) -[2618396.416] {Default Queue} -> wl_seat#3608.get_pointer(new id wl_pointer#3625) -[2618396.421] {Default Queue} -> wl_data_device_manager#3604.get_data_device(new id wl_data_device#3626, wl_seat#3608) -[2618396.425] {Default Queue} -> zwp_primary_selection_device_manager_v1#3606.get_device(new id zwp_primary_selection_device_v1#3627, wl_seat#3608) -[2618396.433] {Default Queue} wl_output#3609.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618396.438] {Default Queue} wl_output#3609.mode(3, 1280, 800, 60000) -[2618396.443] {Default Queue} discarded wl_surface#2727.enter(wl_output#3609) -[2618396.447] {Default Queue} discarded wl_surface#3.enter(wl_output#3609) -[2618396.451] {Default Queue} discarded wl_surface#999.enter(wl_output#3609) -[2618396.455] {Default Queue} discarded wl_surface#3079.enter(wl_output#3609) -[2618396.459] {Default Queue} discarded wl_surface#1191.enter(wl_output#3609) -[2618396.463] {Default Queue} discarded wl_surface#1159.enter(wl_output#3609) -[2618396.467] {Default Queue} discarded wl_surface#1703.enter(wl_output#3609) -[2618396.471] {Default Queue} discarded wl_surface#2215.enter(wl_output#3609) -[2618396.475] {Default Queue} discarded wl_surface#423.enter(wl_output#3609) -[2618396.479] {Default Queue} discarded wl_surface#1447.enter(wl_output#3609) -[2618396.483] {Default Queue} discarded wl_surface#3527.enter(wl_output#3609) -[2618396.487] {Default Queue} discarded wl_surface#3047.enter(wl_output#3609) -[2618396.491] {Default Queue} discarded wl_surface#2023.enter(wl_output#3609) -[2618396.495] {Default Queue} discarded wl_surface#1639.enter(wl_output#3609) -[2618396.499] {Default Queue} discarded wl_surface#1319.enter(wl_output#3609) -[2618396.502] {Default Queue} discarded wl_surface#1127.enter(wl_output#3609) -[2618396.506] {Default Queue} discarded wl_surface#2151.enter(wl_output#3609) -[2618396.510] {Default Queue} discarded wl_surface#2375.enter(wl_output#3609) -[2618396.514] {Default Queue} discarded wl_surface#2695.enter(wl_output#3609) -[2618396.518] {Default Queue} discarded wl_surface#2919.enter(wl_output#3609) -[2618396.522] {Default Queue} discarded wl_surface#1063.enter(wl_output#3609) -[2618396.526] {Default Queue} discarded wl_surface#455.enter(wl_output#3609) -[2618396.529] {Default Queue} discarded wl_surface#1575.enter(wl_output#3609) -[2618396.534] {Default Queue} discarded wl_surface#1799.enter(wl_output#3609) -[2618396.537] {Default Queue} discarded wl_surface#1415.enter(wl_output#3609) -[2618396.541] {Default Queue} discarded wl_surface#2439.enter(wl_output#3609) -[2618396.545] {Default Queue} discarded wl_surface#2279.enter(wl_output#3609) -[2618396.549] {Default Queue} discarded wl_surface#1831.enter(wl_output#3609) -[2618396.553] {Default Queue} discarded wl_surface#903.enter(wl_output#3609) -[2618396.557] {Default Queue} discarded wl_surface#2663.enter(wl_output#3609) -[2618396.561] {Default Queue} discarded wl_surface#775.enter(wl_output#3609) -[2618396.565] {Default Queue} discarded wl_surface#1991.enter(wl_output#3609) -[2618396.569] {Default Queue} discarded wl_surface#1543.enter(wl_output#3609) -[2618396.575] {Default Queue} discarded wl_surface#135.enter(wl_output#3609) -[2618396.581] {Default Queue} discarded wl_surface#1287.enter(wl_output#3609) -[2618396.585] {Default Queue} discarded wl_surface#3399.enter(wl_output#3609) -[2618396.589] {Default Queue} discarded wl_surface#1031.enter(wl_output#3609) -[2618396.593] {Default Queue} discarded wl_surface#615.enter(wl_output#3609) -[2618396.597] {Default Queue} discarded wl_surface#3111.enter(wl_output#3609) -[2618396.601] {Default Queue} discarded wl_surface#231.enter(wl_output#3609) -[2618396.606] {Default Queue} discarded wl_surface#2343.enter(wl_output#3609) -[2618396.609] {Default Queue} discarded wl_surface#1863.enter(wl_output#3609) -[2618396.613] {Default Queue} discarded wl_surface#359.enter(wl_output#3609) -[2618396.618] {Default Queue} discarded wl_surface#2983.enter(wl_output#3609) -[2618396.622] {Default Queue} discarded wl_surface#583.enter(wl_output#3609) -[2618396.626] {Default Queue} discarded wl_surface#743.enter(wl_output#3609) -[2618396.630] {Default Queue} discarded wl_surface#3143.enter(wl_output#3609) -[2618396.634] {Default Queue} discarded wl_surface#2535.enter(wl_output#3609) -[2618396.638] {Default Queue} discarded wl_surface#3367.enter(wl_output#3609) -[2618396.642] {Default Queue} discarded wl_surface#967.enter(wl_output#3609) -[2618396.646] {Default Queue} discarded wl_surface#103.enter(wl_output#3609) -[2618396.649] {Default Queue} discarded wl_surface#3271.enter(wl_output#3609) -[2618396.653] {Default Queue} discarded wl_surface#327.enter(wl_output#3609) -[2618396.658] {Default Queue} discarded wl_surface#43.enter(wl_output#3609) -[2618396.662] {Default Queue} discarded wl_surface#2247.enter(wl_output#3609) -[2618396.665] {Default Queue} discarded wl_surface#807.enter(wl_output#3609) -[2618396.669] {Default Queue} discarded wl_surface#19.enter(wl_output#3609) -[2618396.673] {Default Queue} discarded wl_surface#2951.enter(wl_output#3609) -[2618396.677] {Default Queue} discarded wl_surface#1511.enter(wl_output#3609) -[2618396.681] {Default Queue} discarded wl_surface#199.enter(wl_output#3609) -[2618396.685] {Default Queue} discarded wl_surface#3463.enter(wl_output#3609) -[2618396.689] {Default Queue} discarded wl_surface#3559.enter(wl_output#3609) -[2618396.693] {Default Queue} discarded wl_surface#3495.enter(wl_output#3609) -[2618396.697] {Default Queue} discarded wl_surface#391.enter(wl_output#3609) -[2618396.701] {Default Queue} discarded wl_surface#935.enter(wl_output#3609) -[2618396.705] {Default Queue} discarded wl_surface#2823.enter(wl_output#3609) -[2618396.709] {Default Queue} discarded wl_surface#3015.enter(wl_output#3609) -[2618396.713] {Default Queue} discarded wl_surface#1671.enter(wl_output#3609) -[2618396.717] {Default Queue} discarded wl_surface#1351.enter(wl_output#3609) -[2618396.720] {Default Queue} discarded wl_surface#711.enter(wl_output#3609) -[2618396.724] {Default Queue} discarded wl_surface#3175.enter(wl_output#3609) -[2618396.728] {Default Queue} discarded wl_surface#3431.enter(wl_output#3609) -[2618396.732] {Default Queue} discarded wl_surface#1223.enter(wl_output#3609) -[2618396.736] {Default Queue} discarded wl_surface#1927.enter(wl_output#3609) -[2618396.740] {Default Queue} discarded wl_surface#871.enter(wl_output#3609) -[2618396.744] {Default Queue} discarded wl_surface#1895.enter(wl_output#3609) -[2618396.749] {Default Queue} discarded wl_surface#263.enter(wl_output#3609) -[2618396.754] {Default Queue} discarded wl_surface#551.enter(wl_output#3609) -[2618396.760] {Default Queue} discarded wl_surface#1735.enter(wl_output#3609) -[2618396.766] {Default Queue} discarded wl_surface#1479.enter(wl_output#3609) -[2618396.773] {Default Queue} discarded wl_surface#1772.enter(wl_output#3609) -[2618396.779] {Default Queue} discarded wl_surface#2599.enter(wl_output#3609) -[2618396.785] {Default Queue} discarded wl_surface#2631.enter(wl_output#3609) -[2618396.791] {Default Queue} discarded wl_surface#1959.enter(wl_output#3609) -[2618396.797] {Default Queue} discarded wl_surface#647.enter(wl_output#3609) -[2618396.802] {Default Queue} discarded wl_surface#2055.enter(wl_output#3609) -[2618396.810] {Default Queue} discarded wl_surface#2508.enter(wl_output#3609) -[2618396.815] {Default Queue} discarded wl_surface#71.enter(wl_output#3609) -[2618396.820] {Default Queue} discarded wl_surface#2759.enter(wl_output#3609) -[2618396.824] {Default Queue} discarded wl_surface#2791.enter(wl_output#3609) -[2618396.828] {Default Queue} discarded wl_surface#2887.enter(wl_output#3609) -[2618396.832] {Default Queue} discarded wl_surface#2183.enter(wl_output#3609) -[2618396.836] {Default Queue} discarded wl_surface#2567.enter(wl_output#3609) -[2618396.840] {Default Queue} discarded wl_surface#839.enter(wl_output#3609) -[2618396.844] {Default Queue} discarded wl_surface#1607.enter(wl_output#3609) -[2618396.848] {Default Queue} discarded wl_surface#1095.enter(wl_output#3609) -[2618396.852] {Default Queue} discarded wl_surface#1383.enter(wl_output#3609) -[2618396.856] {Default Queue} discarded wl_surface#487.enter(wl_output#3609) -[2618396.861] {Default Queue} discarded wl_surface#2311.enter(wl_output#3609) -[2618396.865] {Default Queue} discarded wl_surface#519.enter(wl_output#3609) -[2618396.869] {Default Queue} discarded wl_surface#3335.enter(wl_output#3609) -[2618396.877] {Default Queue} discarded wl_surface#3239.enter(wl_output#3609) -[2618396.881] {Default Queue} discarded wl_surface#2087.enter(wl_output#3609) -[2618396.885] {Default Queue} discarded wl_surface#2471.enter(wl_output#3609) -[2618396.889] {Default Queue} discarded wl_surface#295.enter(wl_output#3609) -[2618396.893] {Default Queue} discarded wl_surface#167.enter(wl_output#3609) -[2618396.897] {Default Queue} discarded wl_surface#1255.enter(wl_output#3609) -[2618396.901] {Default Queue} discarded wl_surface#2855.enter(wl_output#3609) -[2618396.904] {Default Queue} discarded wl_surface#3303.enter(wl_output#3609) -[2618396.908] {Default Queue} discarded wl_surface#679.enter(wl_output#3609) -[2618396.912] {Default Queue} discarded wl_surface#2407.enter(wl_output#3609) -[2618396.917] {Default Queue} discarded wl_surface#3207.enter(wl_output#3609) -[2618396.920] {Default Queue} discarded wl_surface#2119.enter(wl_output#3609) -[2618396.924] {Default Queue} wl_registry#3622.global(1, "wl_compositor", 6) -[2618396.930] {Default Queue} -> wl_registry#3622.bind(1, "wl_compositor", 1, new id [unknown]#3628) -[2618396.935] {Default Queue} wl_registry#3622.global(2, "wl_subcompositor", 1) -[2618396.940] {Default Queue} -> wl_registry#3622.bind(2, "wl_subcompositor", 1, new id [unknown]#3629) -[2618396.944] {Default Queue} wl_registry#3622.global(3, "xdg_wm_base", 6) -[2618396.949] {Default Queue} -> wl_registry#3622.bind(3, "xdg_wm_base", 1, new id [unknown]#3630) -[2618396.953] {Default Queue} wl_registry#3622.global(6, "zwlr_layer_shell_v1", 5) -[2618396.957] {Default Queue} wl_registry#3622.global(7, "ext_session_lock_manager_v1", 1) -[2618396.962] {Default Queue} wl_registry#3622.global(8, "wl_shm", 2) -[2618396.967] {Default Queue} -> wl_registry#3622.bind(8, "wl_shm", 1, new id [unknown]#3631) -[2618396.971] {Default Queue} -> wl_registry#3622.bind(8, "wl_shm", 1, new id [unknown]#3632) -[2618396.975] {Default Queue} -> wl_registry#3622.bind(8, "wl_shm", 1, new id [unknown]#3633) -[2618396.980] {Default Queue} wl_registry#3622.global(9, "zxdg_output_manager_v1", 3) -[2618396.984] {Default Queue} wl_registry#3622.global(10, "wp_fractional_scale_manager_v1", 1) -[2618396.989] {Default Queue} wl_registry#3622.global(11, "zwp_tablet_manager_v2", 1) -[2618396.993] {Default Queue} wl_registry#3622.global(12, "zwp_pointer_gestures_v1", 3) -[2618396.997] {Default Queue} wl_registry#3622.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618397.004] {Default Queue} -> wl_registry#3622.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3634) -[2618397.009] {Default Queue} wl_registry#3622.global(14, "zwp_pointer_constraints_v1", 1) -[2618397.014] {Default Queue} -> wl_registry#3622.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3635) -[2618397.019] {Default Queue} wl_registry#3622.global(15, "ext_idle_notifier_v1", 2) -[2618397.023] {Default Queue} wl_registry#3622.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618397.030] {Default Queue} wl_registry#3622.global(17, "wl_data_device_manager", 3) -[2618397.037] {Default Queue} -> wl_registry#3622.bind(17, "wl_data_device_manager", 2, new id [unknown]#3636) -[2618397.042] {Default Queue} -> wl_data_device_manager#3636.create_data_source(new id wl_data_source#3637) -[2618397.046] {Default Queue} -> wl_data_source#3637.offer("text/plain") -[2618397.050] {Default Queue} -> wl_data_source#3637.offer("text/plain;charset=utf-8") -[2618397.054] {Default Queue} -> wl_data_source#3637.offer("TEXT") -[2618397.059] {Default Queue} -> wl_data_source#3637.offer("STRING") -[2618397.063] {Default Queue} -> wl_data_source#3637.offer("UTF8_STRING") -[2618397.067] {Default Queue} wl_registry#3622.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618397.072] {Default Queue} -> wl_registry#3622.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3638) -[2618397.080] {Default Queue} -> zwp_primary_selection_device_manager_v1#3638.create_source(new id zwp_primary_selection_source_v1#3639) -[2618397.087] {Default Queue} -> zwp_primary_selection_source_v1#3639.offer("text/plain") -[2618397.091] {Default Queue} -> zwp_primary_selection_source_v1#3639.offer("text/plain;charset=utf-8") -[2618397.096] {Default Queue} -> zwp_primary_selection_source_v1#3639.offer("TEXT") -[2618397.100] {Default Queue} -> zwp_primary_selection_source_v1#3639.offer("STRING") -[2618397.104] {Default Queue} -> zwp_primary_selection_source_v1#3639.offer("UTF8_STRING") -[2618397.108] {Default Queue} wl_registry#3622.global(19, "zwlr_data_control_manager_v1", 2) -[2618397.115] {Default Queue} wl_registry#3622.global(20, "ext_data_control_manager_v1", 1) -[2618397.120] {Default Queue} wl_registry#3622.global(21, "wp_presentation", 2) -[2618397.126] {Default Queue} wl_registry#3622.global(22, "wp_security_context_manager_v1", 1) -[2618397.133] {Default Queue} wl_registry#3622.global(23, "zwp_text_input_manager_v3", 1) -[2618397.137] {Default Queue} wl_registry#3622.global(24, "zwp_input_method_manager_v2", 1) -[2618397.141] {Default Queue} wl_registry#3622.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618397.146] {Default Queue} wl_registry#3622.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618397.150] {Default Queue} wl_registry#3622.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618397.155] {Default Queue} wl_registry#3622.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618397.159] {Default Queue} wl_registry#3622.global(29, "ext_workspace_manager_v1", 1) -[2618397.163] {Default Queue} wl_registry#3622.global(30, "zwlr_output_manager_v1", 4) -[2618397.168] {Default Queue} wl_registry#3622.global(31, "zwlr_screencopy_manager_v1", 3) -[2618397.173] {Default Queue} wl_registry#3622.global(32, "wp_viewporter", 1) -[2618397.177] {Default Queue} wl_registry#3622.global(33, "zxdg_exporter_v2", 1) -[2618397.181] {Default Queue} wl_registry#3622.global(34, "zxdg_importer_v2", 1) -[2618397.186] {Default Queue} wl_registry#3622.global(36, "xdg_activation_v1", 1) -[2618397.190] {Default Queue} wl_registry#3622.global(37, "mutter_x11_interop", 1) -[2618397.195] {Default Queue} wl_registry#3622.global(38, "wl_seat", 9) -[2618397.199] {Default Queue} -> wl_registry#3622.bind(38, "wl_seat", 1, new id [unknown]#3640) -[2618397.204] {Default Queue} wl_registry#3622.global(39, "wp_cursor_shape_manager_v1", 2) -[2618397.208] {Default Queue} wl_registry#3622.global(40, "wl_output", 4) -[2618397.213] {Default Queue} -> wl_registry#3622.bind(40, "wl_output", 1, new id [unknown]#3641) -[2618397.217] {Default Queue} wl_callback#3623.done(0) -[2618397.222] {Default Queue} discarded wl_surface#3591.enter(wl_output#18) -[2618397.226] {Default Queue} discarded wl_surface#3591.enter(wl_output#57) -[2618397.229] {Default Queue} discarded wl_surface#3591.enter(wl_output#89) -[2618397.233] {Default Queue} discarded wl_surface#3591.enter(wl_output#121) -[2618397.237] {Default Queue} discarded wl_surface#3591.enter(wl_output#153) -[2618397.241] {Default Queue} discarded wl_surface#3591.enter(wl_output#185) -[2618397.249] {Default Queue} discarded wl_surface#3591.enter(wl_output#217) -[2618397.254] {Default Queue} discarded wl_surface#3591.enter(wl_output#249) -[2618397.259] {Default Queue} discarded wl_surface#3591.enter(wl_output#281) -[2618397.263] {Default Queue} discarded wl_surface#3591.enter(wl_output#313) -[2618397.267] {Default Queue} discarded wl_surface#3591.enter(wl_output#345) -[2618397.271] {Default Queue} discarded wl_surface#3591.enter(wl_output#377) -[2618397.274] {Default Queue} discarded wl_surface#3591.enter(wl_output#409) -[2618397.279] {Default Queue} discarded wl_surface#3591.enter(wl_output#441) -[2618397.283] {Default Queue} discarded wl_surface#3591.enter(wl_output#473) -[2618397.286] {Default Queue} discarded wl_surface#3591.enter(wl_output#505) -[2618397.290] {Default Queue} discarded wl_surface#3591.enter(wl_output#537) -[2618397.294] {Default Queue} discarded wl_surface#3591.enter(wl_output#569) -[2618397.298] {Default Queue} discarded wl_surface#3591.enter(wl_output#601) -[2618397.302] {Default Queue} discarded wl_surface#3591.enter(wl_output#633) -[2618397.306] {Default Queue} discarded wl_surface#3591.enter(wl_output#665) -[2618397.310] {Default Queue} discarded wl_surface#3591.enter(wl_output#697) -[2618397.314] {Default Queue} discarded wl_surface#3591.enter(wl_output#729) -[2618397.319] {Default Queue} discarded wl_surface#3591.enter(wl_output#761) -[2618397.323] {Default Queue} discarded wl_surface#3591.enter(wl_output#793) -[2618397.326] {Default Queue} discarded wl_surface#3591.enter(wl_output#825) -[2618397.330] {Default Queue} discarded wl_surface#3591.enter(wl_output#857) -[2618397.334] {Default Queue} discarded wl_surface#3591.enter(wl_output#889) -[2618397.338] {Default Queue} discarded wl_surface#3591.enter(wl_output#921) -[2618397.342] {Default Queue} discarded wl_surface#3591.enter(wl_output#953) -[2618397.346] {Default Queue} discarded wl_surface#3591.enter(wl_output#985) -[2618397.350] {Default Queue} discarded wl_surface#3591.enter(wl_output#1017) -[2618397.354] {Default Queue} discarded wl_surface#3591.enter(wl_output#1049) -[2618397.358] {Default Queue} discarded wl_surface#3591.enter(wl_output#1081) -[2618397.362] {Default Queue} discarded wl_surface#3591.enter(wl_output#1113) -[2618397.366] {Default Queue} discarded wl_surface#3591.enter(wl_output#1145) -[2618397.370] {Default Queue} discarded wl_surface#3591.enter(wl_output#1177) -[2618397.373] {Default Queue} discarded wl_surface#3591.enter(wl_output#1209) -[2618397.378] {Default Queue} discarded wl_surface#3591.enter(wl_output#1241) -[2618397.381] {Default Queue} discarded wl_surface#3591.enter(wl_output#1273) -[2618397.385] {Default Queue} discarded wl_surface#3591.enter(wl_output#1305) -[2618397.389] {Default Queue} discarded wl_surface#3591.enter(wl_output#1337) -[2618397.393] {Default Queue} discarded wl_surface#3591.enter(wl_output#1369) -[2618397.397] {Default Queue} discarded wl_surface#3591.enter(wl_output#1401) -[2618397.400] {Default Queue} discarded wl_surface#3591.enter(wl_output#1433) -[2618397.404] {Default Queue} discarded wl_surface#3591.enter(wl_output#1465) -[2618397.408] {Default Queue} discarded wl_surface#3591.enter(wl_output#1497) -[2618397.412] {Default Queue} discarded wl_surface#3591.enter(wl_output#1529) -[2618397.416] {Default Queue} discarded wl_surface#3591.enter(wl_output#1561) -[2618397.420] {Default Queue} discarded wl_surface#3591.enter(wl_output#1593) -[2618397.424] {Default Queue} discarded wl_surface#3591.enter(wl_output#1625) -[2618397.428] {Default Queue} discarded wl_surface#3591.enter(wl_output#1657) -[2618397.432] {Default Queue} discarded wl_surface#3591.enter(wl_output#1689) -[2618397.436] {Default Queue} discarded wl_surface#3591.enter(wl_output#1721) -[2618397.440] {Default Queue} discarded wl_surface#3591.enter(wl_output#1753) -[2618397.444] {Default Queue} discarded wl_surface#3591.enter(wl_output#1785) -[2618397.448] {Default Queue} discarded wl_surface#3591.enter(wl_output#1817) -[2618397.452] {Default Queue} discarded wl_surface#3591.enter(wl_output#1849) -[2618397.456] {Default Queue} discarded wl_surface#3591.enter(wl_output#1881) -[2618397.463] {Default Queue} discarded wl_surface#3591.enter(wl_output#1913) -[2618397.469] {Default Queue} discarded wl_surface#3591.enter(wl_output#1945) -[2618397.472] {Default Queue} discarded wl_surface#3591.enter(wl_output#1977) -[2618397.476] {Default Queue} discarded wl_surface#3591.enter(wl_output#2009) -[2618397.481] {Default Queue} -> wl_compositor#2988.create_surface(new id wl_surface#3623) -[2618397.485] {Default Queue} -> wl_subcompositor#3629.get_subsurface(new id wl_subsurface#3642, wl_surface#3623, wl_surface#2983) -[2618397.493] {Default Queue} -> wl_subsurface#3642.set_desync() -[2618397.497] {Default Queue} -> wl_subsurface#3642.set_position(0, 0) -[2618397.502] {Default Queue} -> wl_subsurface#3642.place_above(wl_surface#2983) -[2618397.553] {Default Queue} -> wl_shm#3631.create_pool(new id wl_shm_pool#3643, fd 574, 16) -[2618397.560] {Default Queue} -> wl_shm#3631.create_pool(new id wl_shm_pool#3644, fd 575, 16) -[2618397.564] {Default Queue} -> wl_shm_pool#3643.create_buffer(new id wl_buffer#3645, 0, 2, 2, 8, 0) -[2618397.569] {Default Queue} -> wl_shm_pool#3644.create_buffer(new id wl_buffer#3646, 0, 2, 2, 8, 0) -[2618397.576] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) -[2618397.581] {Default Queue} -> wl_surface#3623.commit() -[2618397.586] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) -[2618397.590] {Default Queue} -> wl_surface#3623.commit() -[2618397.595] {Default Queue} -> wl_compositor#3628.create_region(new id wl_region#3647) -[2618397.599] {Default Queue} -> wl_compositor#3628.create_region(new id wl_region#3648) -[2618397.603] {Default Queue} -> wl_region#3647.subtract(0, 0, 2, 2) -[2618397.608] {Default Queue} -> wl_region#3647.add(0, 0, 0, 0) -[2618397.613] {Default Queue} -> wl_surface#3623.set_opaque_region(wl_region#3648) -[2618397.617] {Default Queue} -> wl_surface#3623.set_input_region(wl_region#3647) -[2618397.622] {Default Queue} -> wl_surface#3623.damage(0, 0, 2, 2) -[2618397.626] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) -[2618397.633] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) -[2618397.637] {Default Queue} -> wl_surface#3623.commit() -[2618397.674] {Default Queue} -> wl_shm#3633.create_pool(new id wl_shm_pool#3649, fd 578, 640) -[2618397.680] {Default Queue} -> wl_shm#3633.create_pool(new id wl_shm_pool#3650, fd 579, 640) -[2618397.685] {Default Queue} -> wl_shm_pool#3649.create_buffer(new id wl_buffer#3651, 0, 10, 16, 40, 0) -[2618397.689] {Default Queue} -> wl_shm_pool#3650.create_buffer(new id wl_buffer#3652, 0, 10, 16, 40, 0) -[2618397.696] {Default Queue} -> wl_compositor#3628.create_surface(new id wl_surface#3653) -[2618397.700] {Default Queue} -> wl_surface#3653.attach(wl_buffer#3651, 0, 0) -[2618397.705] {Default Queue} -> wl_surface#3653.commit() -[2618397.710] {Default Queue} -> wl_surface#3653.attach(wl_buffer#3651, 0, 0) -[2618397.714] {Default Queue} -> wl_surface#3653.commit() -[2618397.719] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) -[2618397.726] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3654) -[2618397.731] {Default Queue} -> wl_display#1.sync(new id wl_callback#3655) -[2618399.752] {Default Queue} discarded wl_surface#3591.enter(wl_output#2041) -[2618399.761] {Default Queue} discarded wl_surface#3591.enter(wl_output#2073) -[2618399.765] {Default Queue} discarded wl_surface#3591.enter(wl_output#2105) -[2618399.769] {Default Queue} discarded wl_surface#3591.enter(wl_output#2137) -[2618399.773] {Default Queue} discarded wl_surface#3591.enter(wl_output#2169) -[2618399.777] {Default Queue} discarded wl_surface#3591.enter(wl_output#2201) -[2618399.781] {Default Queue} discarded wl_surface#3591.enter(wl_output#2233) -[2618399.785] {Default Queue} discarded wl_surface#3591.enter(wl_output#2265) -[2618399.789] {Default Queue} discarded wl_surface#3591.enter(wl_output#2297) -[2618399.793] {Default Queue} discarded wl_surface#3591.enter(wl_output#2329) -[2618399.797] {Default Queue} discarded wl_surface#3591.enter(wl_output#2361) -[2618399.801] {Default Queue} discarded wl_surface#3591.enter(wl_output#2393) -[2618399.810] {Default Queue} discarded wl_surface#3591.enter(wl_output#2425) -[2618399.816] {Default Queue} discarded wl_surface#3591.enter(wl_output#2457) -[2618399.820] {Default Queue} discarded wl_surface#3591.enter(wl_output#2489) -[2618399.824] {Default Queue} discarded wl_surface#3591.enter(wl_output#2521) -[2618399.828] {Default Queue} discarded wl_surface#3591.enter(wl_output#2553) -[2618399.832] {Default Queue} discarded wl_surface#3591.enter(wl_output#2585) -[2618399.836] {Default Queue} discarded wl_surface#3591.enter(wl_output#2617) -[2618399.841] {Default Queue} discarded wl_surface#3591.enter(wl_output#2649) -[2618399.845] {Default Queue} discarded wl_surface#3591.enter(wl_output#2681) -[2618399.849] {Default Queue} discarded wl_surface#3591.enter(wl_output#2713) -[2618399.853] {Default Queue} discarded wl_surface#3591.enter(wl_output#2745) -[2618399.856] {Default Queue} discarded wl_surface#3591.enter(wl_output#2777) -[2618399.868] {Default Queue} discarded wl_surface#3591.enter(wl_output#2809) -[2618399.872] {Default Queue} discarded wl_surface#3591.enter(wl_output#2841) -[2618399.876] {Default Queue} discarded wl_surface#3591.enter(wl_output#2873) -[2618399.881] {Default Queue} discarded wl_surface#3591.enter(wl_output#2905) -[2618399.885] {Default Queue} discarded wl_surface#3591.enter(wl_output#2937) -[2618399.888] {Default Queue} discarded wl_surface#3591.enter(wl_output#2969) -[2618399.893] {Default Queue} discarded wl_surface#3591.enter(wl_output#3001) -[2618399.897] {Default Queue} discarded wl_surface#3591.enter(wl_output#3033) -[2618399.900] {Default Queue} discarded wl_surface#3591.enter(wl_output#3065) -[2618399.904] {Default Queue} discarded wl_surface#3591.enter(wl_output#3097) -[2618399.908] {Default Queue} discarded wl_surface#3591.enter(wl_output#3129) -[2618399.912] {Default Queue} discarded wl_surface#3591.enter(wl_output#3161) -[2618399.916] {Default Queue} discarded wl_surface#3591.enter(wl_output#3193) -[2618399.920] {Default Queue} discarded wl_surface#3591.enter(wl_output#3225) -[2618399.924] {Default Queue} discarded wl_surface#3591.enter(wl_output#3257) -[2618399.928] {Default Queue} discarded wl_surface#3591.enter(wl_output#3289) -[2618399.932] {Default Queue} discarded wl_surface#3591.enter(wl_output#3321) -[2618399.936] {Default Queue} discarded wl_surface#3591.enter(wl_output#3353) -[2618399.940] {Default Queue} discarded wl_surface#3591.enter(wl_output#3385) -[2618399.943] {Default Queue} discarded wl_surface#3591.enter(wl_output#3417) -[2618399.947] {Default Queue} discarded wl_surface#3591.enter(wl_output#3449) -[2618399.952] {Default Queue} discarded wl_surface#3591.enter(wl_output#3481) -[2618399.956] {Default Queue} discarded wl_surface#3591.enter(wl_output#3513) -[2618399.960] {Default Queue} discarded wl_surface#3591.enter(wl_output#3545) -[2618399.963] {Default Queue} discarded wl_surface#3591.enter(wl_output#3577) -[2618399.967] {Default Queue} discarded wl_surface#3591.enter(wl_output#3609) -[2618400.021] {Display Queue} wl_display#1.delete_id(3655) -[2618400.028] {Default Queue} wl_keyboard#3624.keymap(1, fd 574, 68213) -[2618400.032] {Default Queue} wl_keyboard#3624.enter(566, wl_surface#19, array[0]) -[2618400.037] {Default Queue} wl_keyboard#3624.modifiers(566, 0, 0, 16, 0) -[2618400.042] {Default Queue} discarded wl_shm#3631.format(875709016) -[2618400.046] {Default Queue} discarded wl_shm#3631.format(1) -[2618400.050] {Default Queue} discarded wl_shm#3631.format(0) -[2618400.055] {Default Queue} discarded wl_shm#3631.format(875708993) -[2618400.058] {Default Queue} discarded wl_shm#3632.format(875709016) -[2618400.062] {Default Queue} discarded wl_shm#3632.format(1) -[2618400.066] {Default Queue} discarded wl_shm#3632.format(0) -[2618400.070] {Default Queue} discarded wl_shm#3632.format(875708993) -[2618400.074] {Default Queue} discarded wl_shm#3633.format(875709016) -[2618400.078] {Default Queue} discarded wl_shm#3633.format(1) -[2618400.082] {Default Queue} discarded wl_shm#3633.format(0) -[2618400.085] {Default Queue} discarded wl_shm#3633.format(875708993) -[2618400.093] {Default Queue} wl_seat#3640.capabilities(7) -[2618400.099] {Default Queue} -> wl_seat#3640.get_keyboard(new id wl_keyboard#3656) -[2618400.104] {Default Queue} -> wl_seat#3640.get_pointer(new id wl_pointer#3657) -[2618400.108] {Default Queue} -> wl_data_device_manager#3636.get_data_device(new id wl_data_device#3658, wl_seat#3640) -[2618400.113] {Default Queue} -> zwp_primary_selection_device_manager_v1#3638.get_device(new id zwp_primary_selection_device_v1#3659, wl_seat#3640) -[2618400.121] {Default Queue} wl_output#3641.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618400.126] {Default Queue} wl_output#3641.mode(3, 1280, 800, 60000) -[2618400.131] {Default Queue} discarded wl_surface#2727.enter(wl_output#3641) -[2618400.135] {Default Queue} discarded wl_surface#3.enter(wl_output#3641) -[2618400.139] {Default Queue} discarded wl_surface#999.enter(wl_output#3641) -[2618400.143] {Default Queue} discarded wl_surface#3079.enter(wl_output#3641) -[2618400.147] {Default Queue} discarded wl_surface#1191.enter(wl_output#3641) -[2618400.152] {Default Queue} discarded wl_surface#1159.enter(wl_output#3641) -[2618400.156] {Default Queue} discarded wl_surface#1703.enter(wl_output#3641) -[2618400.160] {Default Queue} discarded wl_surface#2215.enter(wl_output#3641) -[2618400.164] {Default Queue} discarded wl_surface#423.enter(wl_output#3641) -[2618400.168] {Default Queue} discarded wl_surface#1447.enter(wl_output#3641) -[2618400.172] {Default Queue} discarded wl_surface#3527.enter(wl_output#3641) -[2618400.175] {Default Queue} discarded wl_surface#3047.enter(wl_output#3641) -[2618400.179] {Default Queue} discarded wl_surface#2023.enter(wl_output#3641) -[2618400.183] {Default Queue} discarded wl_surface#1639.enter(wl_output#3641) -[2618400.187] {Default Queue} discarded wl_surface#1319.enter(wl_output#3641) -[2618400.191] {Default Queue} discarded wl_surface#1127.enter(wl_output#3641) -[2618400.195] {Default Queue} discarded wl_surface#2151.enter(wl_output#3641) -[2618400.199] {Default Queue} discarded wl_surface#2375.enter(wl_output#3641) -[2618400.202] {Default Queue} discarded wl_surface#2695.enter(wl_output#3641) -[2618400.206] {Default Queue} discarded wl_surface#2919.enter(wl_output#3641) -[2618400.211] {Default Queue} discarded wl_surface#1063.enter(wl_output#3641) -[2618400.215] {Default Queue} discarded wl_surface#455.enter(wl_output#3641) -[2618400.218] {Default Queue} discarded wl_surface#1575.enter(wl_output#3641) -[2618400.222] {Default Queue} discarded wl_surface#1799.enter(wl_output#3641) -[2618400.226] {Default Queue} discarded wl_surface#1415.enter(wl_output#3641) -[2618400.230] {Default Queue} discarded wl_surface#2439.enter(wl_output#3641) -[2618400.234] {Default Queue} discarded wl_surface#2279.enter(wl_output#3641) -[2618400.238] {Default Queue} discarded wl_surface#3591.enter(wl_output#3641) -[2618400.242] {Default Queue} discarded wl_surface#1831.enter(wl_output#3641) -[2618400.246] {Default Queue} discarded wl_surface#903.enter(wl_output#3641) -[2618400.249] {Default Queue} discarded wl_surface#2663.enter(wl_output#3641) -[2618400.253] {Default Queue} discarded wl_surface#775.enter(wl_output#3641) -[2618400.257] {Default Queue} discarded wl_surface#1991.enter(wl_output#3641) -[2618400.261] {Default Queue} discarded wl_surface#1543.enter(wl_output#3641) -[2618400.265] {Default Queue} discarded wl_surface#135.enter(wl_output#3641) -[2618400.269] {Default Queue} discarded wl_surface#1287.enter(wl_output#3641) -[2618400.273] {Default Queue} discarded wl_surface#3399.enter(wl_output#3641) -[2618400.277] {Default Queue} discarded wl_surface#1031.enter(wl_output#3641) -[2618400.280] {Default Queue} discarded wl_surface#615.enter(wl_output#3641) -[2618400.284] {Default Queue} discarded wl_surface#3111.enter(wl_output#3641) -[2618400.288] {Default Queue} discarded wl_surface#231.enter(wl_output#3641) -[2618400.292] {Default Queue} discarded wl_surface#2343.enter(wl_output#3641) -[2618400.296] {Default Queue} discarded wl_surface#1863.enter(wl_output#3641) -[2618400.301] {Default Queue} discarded wl_surface#359.enter(wl_output#3641) -[2618400.308] {Default Queue} discarded wl_surface#2983.enter(wl_output#3641) -[2618400.314] {Default Queue} discarded wl_surface#583.enter(wl_output#3641) -[2618400.318] {Default Queue} discarded wl_surface#743.enter(wl_output#3641) -[2618400.322] {Default Queue} discarded wl_surface#3143.enter(wl_output#3641) -[2618400.326] {Default Queue} discarded wl_surface#2535.enter(wl_output#3641) -[2618400.330] {Default Queue} discarded wl_surface#3367.enter(wl_output#3641) -[2618400.334] {Default Queue} discarded wl_surface#967.enter(wl_output#3641) -[2618400.338] {Default Queue} discarded wl_surface#103.enter(wl_output#3641) -[2618400.342] {Default Queue} discarded wl_surface#3271.enter(wl_output#3641) -[2618400.346] {Default Queue} discarded wl_surface#327.enter(wl_output#3641) -[2618400.350] {Default Queue} discarded wl_surface#43.enter(wl_output#3641) -[2618400.354] {Default Queue} discarded wl_surface#2247.enter(wl_output#3641) -[2618400.357] {Default Queue} discarded wl_surface#807.enter(wl_output#3641) -[2618400.361] {Default Queue} discarded wl_surface#19.enter(wl_output#3641) -[2618400.365] {Default Queue} discarded wl_surface#2951.enter(wl_output#3641) -[2618400.369] {Default Queue} discarded wl_surface#1511.enter(wl_output#3641) -[2618400.373] {Default Queue} discarded wl_surface#199.enter(wl_output#3641) -[2618400.377] {Default Queue} discarded wl_surface#3463.enter(wl_output#3641) -[2618400.381] {Default Queue} discarded wl_surface#3559.enter(wl_output#3641) -[2618400.386] {Default Queue} discarded wl_surface#3495.enter(wl_output#3641) -[2618400.390] {Default Queue} discarded wl_surface#391.enter(wl_output#3641) -[2618400.394] {Default Queue} discarded wl_surface#935.enter(wl_output#3641) -[2618400.397] {Default Queue} discarded wl_surface#2823.enter(wl_output#3641) -[2618400.401] {Default Queue} discarded wl_surface#3015.enter(wl_output#3641) -[2618400.405] {Default Queue} discarded wl_surface#1671.enter(wl_output#3641) -[2618400.409] {Default Queue} discarded wl_surface#1351.enter(wl_output#3641) -[2618400.413] {Default Queue} discarded wl_surface#711.enter(wl_output#3641) -[2618400.417] {Default Queue} discarded wl_surface#3175.enter(wl_output#3641) -[2618400.421] {Default Queue} discarded wl_surface#3431.enter(wl_output#3641) -[2618400.425] {Default Queue} discarded wl_surface#1223.enter(wl_output#3641) -[2618400.429] {Default Queue} discarded wl_surface#1927.enter(wl_output#3641) -[2618400.433] {Default Queue} discarded wl_surface#871.enter(wl_output#3641) -[2618400.436] {Default Queue} discarded wl_surface#1895.enter(wl_output#3641) -[2618400.440] {Default Queue} discarded wl_surface#263.enter(wl_output#3641) -[2618400.444] {Default Queue} discarded wl_surface#551.enter(wl_output#3641) -[2618400.448] {Default Queue} discarded wl_surface#1735.enter(wl_output#3641) -[2618400.452] {Default Queue} discarded wl_surface#1479.enter(wl_output#3641) -[2618400.456] {Default Queue} discarded wl_surface#1772.enter(wl_output#3641) -[2618400.460] {Default Queue} discarded wl_surface#2599.enter(wl_output#3641) -[2618400.464] {Default Queue} discarded wl_surface#2631.enter(wl_output#3641) -[2618400.468] {Default Queue} discarded wl_surface#1959.enter(wl_output#3641) -[2618400.472] {Default Queue} discarded wl_surface#647.enter(wl_output#3641) -[2618400.476] {Default Queue} discarded wl_surface#2055.enter(wl_output#3641) -[2618400.480] {Default Queue} discarded wl_surface#2508.enter(wl_output#3641) -[2618400.484] {Default Queue} discarded wl_surface#71.enter(wl_output#3641) -[2618400.488] {Default Queue} discarded wl_surface#2759.enter(wl_output#3641) -[2618400.492] {Default Queue} discarded wl_surface#2791.enter(wl_output#3641) -[2618400.496] {Default Queue} discarded wl_surface#2887.enter(wl_output#3641) -[2618400.500] {Default Queue} discarded wl_surface#2183.enter(wl_output#3641) -[2618400.504] {Default Queue} discarded wl_surface#2567.enter(wl_output#3641) -[2618400.508] {Default Queue} discarded wl_surface#839.enter(wl_output#3641) -[2618400.512] {Default Queue} discarded wl_surface#1607.enter(wl_output#3641) -[2618400.516] {Default Queue} discarded wl_surface#1095.enter(wl_output#3641) -[2618400.523] {Default Queue} discarded wl_surface#1383.enter(wl_output#3641) -[2618400.528] {Default Queue} discarded wl_surface#487.enter(wl_output#3641) -[2618400.533] {Default Queue} discarded wl_surface#2311.enter(wl_output#3641) -[2618400.537] {Default Queue} discarded wl_surface#519.enter(wl_output#3641) -[2618400.541] {Default Queue} discarded wl_surface#3335.enter(wl_output#3641) -[2618400.545] {Default Queue} discarded wl_surface#3239.enter(wl_output#3641) -[2618400.549] {Default Queue} discarded wl_surface#2087.enter(wl_output#3641) -[2618400.553] {Default Queue} discarded wl_surface#2471.enter(wl_output#3641) -[2618400.557] {Default Queue} discarded wl_surface#295.enter(wl_output#3641) -[2618400.561] {Default Queue} discarded wl_surface#167.enter(wl_output#3641) -[2618400.565] {Default Queue} discarded wl_surface#1255.enter(wl_output#3641) -[2618400.569] {Default Queue} discarded wl_surface#2855.enter(wl_output#3641) -[2618400.573] {Default Queue} discarded wl_surface#3303.enter(wl_output#3641) -[2618400.577] {Default Queue} discarded wl_surface#679.enter(wl_output#3641) -[2618400.580] {Default Queue} discarded wl_surface#2407.enter(wl_output#3641) -[2618400.584] {Default Queue} discarded wl_surface#3207.enter(wl_output#3641) -[2618400.589] {Default Queue} discarded wl_surface#2119.enter(wl_output#3641) -[2618400.593] {Default Queue} wl_registry#3654.global(1, "wl_compositor", 6) -[2618400.598] {Default Queue} -> wl_registry#3654.bind(1, "wl_compositor", 1, new id [unknown]#3660) -[2618400.603] {Default Queue} wl_registry#3654.global(2, "wl_subcompositor", 1) -[2618400.607] {Default Queue} -> wl_registry#3654.bind(2, "wl_subcompositor", 1, new id [unknown]#3661) -[2618400.612] {Default Queue} wl_registry#3654.global(3, "xdg_wm_base", 6) -[2618400.616] {Default Queue} -> wl_registry#3654.bind(3, "xdg_wm_base", 1, new id [unknown]#3662) -[2618400.621] {Default Queue} wl_registry#3654.global(6, "zwlr_layer_shell_v1", 5) -[2618400.625] {Default Queue} wl_registry#3654.global(7, "ext_session_lock_manager_v1", 1) -[2618400.630] {Default Queue} wl_registry#3654.global(8, "wl_shm", 2) -[2618400.634] {Default Queue} -> wl_registry#3654.bind(8, "wl_shm", 1, new id [unknown]#3663) -[2618400.639] {Default Queue} -> wl_registry#3654.bind(8, "wl_shm", 1, new id [unknown]#3664) -[2618400.643] {Default Queue} -> wl_registry#3654.bind(8, "wl_shm", 1, new id [unknown]#3665) -[2618400.648] {Default Queue} wl_registry#3654.global(9, "zxdg_output_manager_v1", 3) -[2618400.653] {Default Queue} wl_registry#3654.global(10, "wp_fractional_scale_manager_v1", 1) -[2618400.658] {Default Queue} wl_registry#3654.global(11, "zwp_tablet_manager_v2", 1) -[2618400.662] {Default Queue} wl_registry#3654.global(12, "zwp_pointer_gestures_v1", 3) -[2618400.666] {Default Queue} wl_registry#3654.global(13, "zwp_relative_pointer_manager_v1", 1) -[2618400.671] {Default Queue} -> wl_registry#3654.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3666) -[2618400.675] {Default Queue} wl_registry#3654.global(14, "zwp_pointer_constraints_v1", 1) -[2618400.681] {Default Queue} -> wl_registry#3654.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3667) -[2618400.686] {Default Queue} wl_registry#3654.global(15, "ext_idle_notifier_v1", 2) -[2618400.690] {Default Queue} wl_registry#3654.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2618400.695] {Default Queue} wl_registry#3654.global(17, "wl_data_device_manager", 3) -[2618400.700] {Default Queue} -> wl_registry#3654.bind(17, "wl_data_device_manager", 2, new id [unknown]#3668) -[2618400.704] {Default Queue} -> wl_data_device_manager#3668.create_data_source(new id wl_data_source#3669) -[2618400.708] {Default Queue} -> wl_data_source#3669.offer("text/plain") -[2618400.713] {Default Queue} -> wl_data_source#3669.offer("text/plain;charset=utf-8") -[2618400.717] {Default Queue} -> wl_data_source#3669.offer("TEXT") -[2618400.721] {Default Queue} -> wl_data_source#3669.offer("STRING") -[2618400.725] {Default Queue} -> wl_data_source#3669.offer("UTF8_STRING") -[2618400.729] {Default Queue} wl_registry#3654.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2618400.737] {Default Queue} -> wl_registry#3654.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3670) -[2618400.746] {Default Queue} -> zwp_primary_selection_device_manager_v1#3670.create_source(new id zwp_primary_selection_source_v1#3671) -[2618400.754] {Default Queue} -> zwp_primary_selection_source_v1#3671.offer("text/plain") -[2618400.758] {Default Queue} -> zwp_primary_selection_source_v1#3671.offer("text/plain;charset=utf-8") -[2618400.762] {Default Queue} -> zwp_primary_selection_source_v1#3671.offer("TEXT") -[2618400.766] {Default Queue} -> zwp_primary_selection_source_v1#3671.offer("STRING") -[2618400.770] {Default Queue} -> zwp_primary_selection_source_v1#3671.offer("UTF8_STRING") -[2618400.775] {Default Queue} wl_registry#3654.global(19, "zwlr_data_control_manager_v1", 2) -[2618400.780] {Default Queue} wl_registry#3654.global(20, "ext_data_control_manager_v1", 1) -[2618400.784] {Default Queue} wl_registry#3654.global(21, "wp_presentation", 2) -[2618400.789] {Default Queue} wl_registry#3654.global(22, "wp_security_context_manager_v1", 1) -[2618400.793] {Default Queue} wl_registry#3654.global(23, "zwp_text_input_manager_v3", 1) -[2618400.798] {Default Queue} wl_registry#3654.global(24, "zwp_input_method_manager_v2", 1) -[2618400.803] {Default Queue} wl_registry#3654.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2618400.810] {Default Queue} wl_registry#3654.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2618400.817] {Default Queue} wl_registry#3654.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2618400.824] {Default Queue} wl_registry#3654.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2618400.830] {Default Queue} wl_registry#3654.global(29, "ext_workspace_manager_v1", 1) -[2618400.837] {Default Queue} wl_registry#3654.global(30, "zwlr_output_manager_v1", 4) -[2618400.844] {Default Queue} wl_registry#3654.global(31, "zwlr_screencopy_manager_v1", 3) -[2618400.850] {Default Queue} wl_registry#3654.global(32, "wp_viewporter", 1) -[2618400.856] {Default Queue} wl_registry#3654.global(33, "zxdg_exporter_v2", 1) -[2618400.869] {Default Queue} wl_registry#3654.global(34, "zxdg_importer_v2", 1) -[2618400.873] {Default Queue} wl_registry#3654.global(36, "xdg_activation_v1", 1) -[2618400.877] {Default Queue} wl_registry#3654.global(37, "mutter_x11_interop", 1) -[2618400.916] {Default Queue} wl_registry#3654.global(38, "wl_seat", 9) -[2618400.930] {Default Queue} -> wl_registry#3654.bind(38, "wl_seat", 1, new id [unknown]#3672) -[2618400.938] {Default Queue} wl_registry#3654.global(39, "wp_cursor_shape_manager_v1", 2) -[2618400.945] {Default Queue} wl_registry#3654.global(40, "wl_output", 4) -[2618400.951] {Default Queue} -> wl_registry#3654.bind(40, "wl_output", 1, new id [unknown]#3673) -[2618400.957] {Default Queue} wl_callback#3655.done(0) -[2618400.962] {Default Queue} discarded wl_surface#3623.enter(wl_output#18) -[2618400.968] {Default Queue} discarded wl_surface#3623.enter(wl_output#57) -[2618400.973] {Default Queue} discarded wl_surface#3623.enter(wl_output#89) -[2618400.978] {Default Queue} discarded wl_surface#3623.enter(wl_output#121) -[2618400.983] {Default Queue} discarded wl_surface#3623.enter(wl_output#153) -[2618400.988] {Default Queue} discarded wl_surface#3623.enter(wl_output#185) -[2618400.993] {Default Queue} discarded wl_surface#3623.enter(wl_output#217) -[2618400.998] {Default Queue} discarded wl_surface#3623.enter(wl_output#249) -[2618401.003] {Default Queue} discarded wl_surface#3623.enter(wl_output#281) -[2618401.008] {Default Queue} discarded wl_surface#3623.enter(wl_output#313) -[2618401.013] {Default Queue} discarded wl_surface#3623.enter(wl_output#345) -[2618401.017] {Default Queue} discarded wl_surface#3623.enter(wl_output#377) -[2618401.022] {Default Queue} discarded wl_surface#3623.enter(wl_output#409) -[2618401.027] {Default Queue} discarded wl_surface#3623.enter(wl_output#441) -[2618401.032] {Default Queue} discarded wl_surface#3623.enter(wl_output#473) -[2618401.037] {Default Queue} discarded wl_surface#3623.enter(wl_output#505) -[2618401.049] {Default Queue} discarded wl_surface#3623.enter(wl_output#537) -[2618401.058] {Default Queue} discarded wl_surface#3623.enter(wl_output#569) -[2618401.063] {Default Queue} discarded wl_surface#3623.enter(wl_output#601) -[2618401.068] {Default Queue} discarded wl_surface#3623.enter(wl_output#633) -[2618401.073] {Default Queue} discarded wl_surface#3623.enter(wl_output#665) -[2618401.078] {Default Queue} discarded wl_surface#3623.enter(wl_output#697) -[2618401.083] {Default Queue} discarded wl_surface#3623.enter(wl_output#729) -[2618401.088] {Default Queue} discarded wl_surface#3623.enter(wl_output#761) -[2618401.092] {Default Queue} discarded wl_surface#3623.enter(wl_output#793) -[2618401.097] {Default Queue} discarded wl_surface#3623.enter(wl_output#825) -[2618401.102] {Default Queue} discarded wl_surface#3623.enter(wl_output#857) -[2618401.107] {Default Queue} discarded wl_surface#3623.enter(wl_output#889) -[2618401.112] {Default Queue} discarded wl_surface#3623.enter(wl_output#921) -[2618401.117] {Default Queue} discarded wl_surface#3623.enter(wl_output#953) -[2618401.122] {Default Queue} discarded wl_surface#3623.enter(wl_output#985) -[2618401.127] {Default Queue} discarded wl_surface#3623.enter(wl_output#1017) -[2618401.132] {Default Queue} discarded wl_surface#3623.enter(wl_output#1049) -[2618401.137] {Default Queue} discarded wl_surface#3623.enter(wl_output#1081) -[2618401.142] {Default Queue} discarded wl_surface#3623.enter(wl_output#1113) -[2618401.147] {Default Queue} discarded wl_surface#3623.enter(wl_output#1145) -[2618401.152] {Default Queue} discarded wl_surface#3623.enter(wl_output#1177) -[2618401.156] {Default Queue} discarded wl_surface#3623.enter(wl_output#1209) -[2618401.161] {Default Queue} discarded wl_surface#3623.enter(wl_output#1241) -[2618401.166] {Default Queue} discarded wl_surface#3623.enter(wl_output#1273) -[2618401.171] {Default Queue} discarded wl_surface#3623.enter(wl_output#1305) -[2618401.176] {Default Queue} discarded wl_surface#3623.enter(wl_output#1337) -[2618401.181] {Default Queue} discarded wl_surface#3623.enter(wl_output#1369) -[2618401.185] {Default Queue} discarded wl_surface#3623.enter(wl_output#1401) -[2618401.190] {Default Queue} discarded wl_surface#3623.enter(wl_output#1433) -[2618401.195] {Default Queue} discarded wl_surface#3623.enter(wl_output#1465) -[2618401.200] {Default Queue} discarded wl_surface#3623.enter(wl_output#1497) -[2618401.205] {Default Queue} discarded wl_surface#3623.enter(wl_output#1529) -[2618401.210] {Default Queue} discarded wl_surface#3623.enter(wl_output#1561) -[2618401.214] {Default Queue} discarded wl_surface#3623.enter(wl_output#1593) -[2618401.219] {Default Queue} discarded wl_surface#3623.enter(wl_output#1625) -[2618401.224] {Default Queue} discarded wl_surface#3623.enter(wl_output#1657) -[2618401.229] {Default Queue} discarded wl_surface#3623.enter(wl_output#1689) -[2618401.234] {Default Queue} discarded wl_surface#3623.enter(wl_output#1721) -[2618401.238] {Default Queue} discarded wl_surface#3623.enter(wl_output#1753) -[2618401.244] {Default Queue} discarded wl_surface#3623.enter(wl_output#1785) -[2618401.248] {Default Queue} discarded wl_surface#3623.enter(wl_output#1817) -[2618401.253] {Default Queue} discarded wl_surface#3623.enter(wl_output#1849) -[2618401.258] {Default Queue} discarded wl_surface#3623.enter(wl_output#1881) -[2618401.263] {Default Queue} discarded wl_surface#3623.enter(wl_output#1913) -[2618401.268] {Default Queue} discarded wl_surface#3623.enter(wl_output#1945) -[2618401.273] {Default Queue} discarded wl_surface#3623.enter(wl_output#1977) -[2618401.278] {Default Queue} -> wl_compositor#28.create_surface(new id wl_surface#3655) -[2618401.285] {Default Queue} -> wl_subcompositor#3661.get_subsurface(new id wl_subsurface#3674, wl_surface#3655, wl_surface#71) -[2618401.295] {Default Queue} -> wl_subsurface#3674.set_desync() -[2618401.301] {Default Queue} -> wl_subsurface#3674.set_position(0, 0) -[2618401.307] {Default Queue} -> wl_subsurface#3674.place_above(wl_surface#71) -[2618401.365] {Default Queue} -> wl_shm#3663.create_pool(new id wl_shm_pool#3675, fd 579, 16) -[2618401.380] {Default Queue} -> wl_shm#3663.create_pool(new id wl_shm_pool#3676, fd 580, 16) -[2618401.393] {Default Queue} -> wl_shm_pool#3675.create_buffer(new id wl_buffer#3677, 0, 2, 2, 8, 0) -[2618401.402] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 2, 2, 8, 0) -[2618401.415] {Default Queue} -> wl_surface#3655.attach(wl_buffer#3677, 0, 0) -[2618401.421] {Default Queue} -> wl_surface#3655.commit() -[2618401.428] {Default Queue} -> wl_surface#3655.attach(wl_buffer#3677, 0, 0) -[2618401.433] {Default Queue} -> wl_surface#3655.commit() -[2618401.439] {Default Queue} -> wl_compositor#3660.create_region(new id wl_region#3679) -[2618401.444] {Default Queue} -> wl_compositor#3660.create_region(new id wl_region#3680) -[2618401.449] {Default Queue} -> wl_region#3679.subtract(0, 0, 2, 2) -[2618401.455] {Default Queue} -> wl_region#3679.add(0, 0, 0, 0) -[2618401.460] {Default Queue} -> wl_surface#3655.set_opaque_region(wl_region#3680) -[2618401.466] {Default Queue} -> wl_surface#3655.set_input_region(wl_region#3679) -[2618401.471] {Default Queue} -> wl_surface#3655.damage(0, 0, 2, 2) -[2618401.476] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) -[2618401.485] {Default Queue} -> wl_surface#3655.attach(wl_buffer#3677, 0, 0) -[2618401.489] {Default Queue} -> wl_surface#3655.commit() -[2618401.527] {Default Queue} -> wl_shm#3665.create_pool(new id wl_shm_pool#3681, fd 583, 640) -[2618401.533] {Default Queue} -> wl_shm#3665.create_pool(new id wl_shm_pool#3682, fd 584, 640) -[2618401.538] {Default Queue} -> wl_shm_pool#3681.create_buffer(new id wl_buffer#3683, 0, 10, 16, 40, 0) -[2618401.543] {Default Queue} -> wl_shm_pool#3682.create_buffer(new id wl_buffer#3684, 0, 10, 16, 40, 0) -[2618401.550] {Default Queue} -> wl_compositor#3660.create_surface(new id wl_surface#3685) -[2618401.554] {Default Queue} -> wl_surface#3685.attach(wl_buffer#3683, 0, 0) -[2618401.558] {Default Queue} -> wl_surface#3685.commit() -[2618401.563] {Default Queue} -> wl_surface#3685.attach(wl_buffer#3683, 0, 0) -[2618401.568] {Default Queue} -> wl_surface#3685.commit() -[2618401.573] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) -[2618401.580] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) -[2618401.587] {Default Queue} -> wl_region#95.subtract(0, 0, 2, 2) -[2618401.591] {Default Queue} -> wl_subsurface#90.set_position(20, 49) -[2618401.596] {Default Queue} -> wl_region#95.subtract(0, 0, 22, 51) -[2618401.601] {Default Queue} -> wl_region#95.add(0, 0, 0, 0) -[2618401.605] {Default Queue} -> wl_surface#71.set_opaque_region(wl_region#96) -[2618401.609] {Default Queue} -> wl_surface#71.set_input_region(wl_region#95) -[2618401.614] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618401.620] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618401.624] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) -[2618401.629] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) -[2618401.633] {Default Queue} -> wl_surface#135.damage(0, 0, 2, 2) -[2618401.637] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) -[2618401.643] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618401.649] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618401.653] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618401.658] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618401.663] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618401.667] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618401.672] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2618401.677] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618401.681] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618401.685] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618401.690] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618401.695] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618401.699] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2618401.703] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2618401.707] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) -[2618401.716] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) -[2618401.722] {Default Queue} -> wl_surface#327.damage(0, 0, 2, 2) -[2618401.726] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) -[2618401.732] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618401.738] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) -[2618401.742] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) -[2618401.747] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) -[2618401.751] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) -[2618401.755] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) -[2618401.760] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2618401.765] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618401.770] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618401.774] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618401.778] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618401.783] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618401.787] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618401.791] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2618401.795] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) -[2618401.800] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) -[2618401.805] {Default Queue} -> wl_surface#903.damage(0, 0, 2, 2) -[2618401.810] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618401.816] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618401.820] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) -[2618401.824] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) -[2618401.828] {Default Queue} -> wl_surface#1447.damage(0, 0, 2, 2) -[2618401.834] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618401.839] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) -[2618401.844] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) -[2618401.848] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) -[2618401.852] {Default Queue} -> wl_surface#1607.damage(0, 0, 2, 2) -[2618401.858] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618401.872] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618401.876] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) -[2618401.881] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) -[2618401.885] {Default Queue} -> wl_surface#1772.damage(0, 0, 2, 2) -[2618401.890] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618401.895] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618401.900] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) -[2618401.904] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) -[2618401.908] {Default Queue} -> wl_surface#1927.damage(0, 0, 2, 2) -[2618401.912] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) -[2618401.918] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618401.923] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618401.928] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618401.933] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618401.937] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) -[2618401.941] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) -[2618401.945] {Default Queue} -> wl_surface#2119.damage(0, 0, 2, 2) -[2618401.950] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618401.955] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) -[2618401.960] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) -[2618401.964] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) -[2618401.969] {Default Queue} -> wl_surface#2343.damage(0, 0, 2, 2) -[2618401.974] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618401.978] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) -[2618401.983] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) -[2618401.987] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) -[2618401.992] {Default Queue} -> wl_surface#2508.damage(0, 0, 2, 2) -[2618401.997] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618402.001] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) -[2618402.009] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) -[2618402.015] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) -[2618402.019] {Default Queue} -> wl_surface#2663.damage(0, 0, 2, 2) -[2618402.024] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618402.029] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) -[2618402.033] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) -[2618402.037] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) -[2618402.041] {Default Queue} -> wl_surface#2823.damage(0, 0, 2, 2) -[2618402.046] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) -[2618402.051] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618402.056] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618402.060] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618402.065] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) -[2618402.069] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) -[2618402.073] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) -[2618402.078] {Default Queue} -> wl_surface#3015.damage(0, 0, 2, 2) -[2618402.082] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618402.087] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2618402.091] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2618402.096] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618402.100] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) -[2618402.104] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) -[2618402.108] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) -[2618402.113] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) -[2618402.117] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) -[2618402.129] {Default Queue} -> wl_surface#3239.damage(0, 0, 2, 2) -[2618402.133] {Default Queue} -> wl_surface#3559.damage(0, 0, 2, 2) -[2618402.138] {Default Queue} -> wl_surface#3591.damage(0, 0, 2, 2) -[2618402.142] {Default Queue} -> wl_surface#3623.damage(0, 0, 2, 2) -[2618402.146] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) -[2618402.151] {Default Queue} -> wl_surface#3655.damage(0, 0, 2, 2) -[2618402.155] {Default Queue} -> wl_surface#71.damage(0, 0, 2, 2) -[2618402.162] {Default Queue} -> wl_region#95.subtract(0, 0, 22, 51) -[2618402.167] {Default Queue} -> wl_region#95.add(0, 0, 2, 2) -[2618402.171] {Default Queue} -> wl_surface#71.set_opaque_region(wl_region#96) -[2618402.175] {Default Queue} -> wl_surface#71.set_input_region(wl_region#95) -[2618402.183] {Default Queue} -> wl_surface#71.attach(wl_buffer#93, 0, 0) -[2618402.187] {Default Queue} -> wl_surface#71.commit() -[2618402.196] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618402.201] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618402.206] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618402.211] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618402.215] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618402.219] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618402.234] {Default Queue} -> wl_buffer#61.destroy() -[2618402.239] {Default Queue} -> wl_buffer#62.destroy() -[2618402.244] {Default Queue} -> wl_shm_pool#59.destroy() -[2618402.248] {Default Queue} -> wl_shm_pool#60.destroy() -[2618402.337] {Default Queue} -> wl_shm#47.create_pool(new id wl_shm_pool#3686, fd 579, 71456) -[2618402.344] {Default Queue} -> wl_shm#47.create_pool(new id wl_shm_pool#3687, fd 580, 71456) -[2618402.349] {Default Queue} -> wl_shm_pool#3686.create_buffer(new id wl_buffer#3688, 0, 616, 29, 2464, 0) -[2618402.354] {Default Queue} -> wl_shm_pool#3687.create_buffer(new id wl_buffer#3689, 0, 616, 29, 2464, 0) -[2618402.376] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2618402.381] {Default Queue} -> wl_surface#43.commit() -[2618402.404] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2618402.409] {Default Queue} -> wl_surface#43.commit() -[2618402.419] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618402.428] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618402.434] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618402.439] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618402.446] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618402.451] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618402.455] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618402.459] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618402.471] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618402.476] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618402.481] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618402.485] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618402.491] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618402.495] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618402.500] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618402.504] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618402.510] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618402.514] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618402.518] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618402.522] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618402.539] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618402.544] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618402.549] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618402.557] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618402.591] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618402.596] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618402.661] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618402.666] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618402.672] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618402.676] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618402.683] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618402.687] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618402.734] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618402.739] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618402.744] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618402.748] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618402.754] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618402.758] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618402.805] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618402.810] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618402.814] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618402.819] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618402.824] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618402.829] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618402.912] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618402.918] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618402.922] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618402.926] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618402.933] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618402.937] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618402.979] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618402.986] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618402.990] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618402.994] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618403.000] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618403.005] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618403.011] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2618403.019] {Default Queue} -> wl_surface#43.commit() -[2618403.031] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2618403.037] {Default Queue} -> wl_surface#43.commit() -[2618403.045] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2618403.050] {Default Queue} -> wl_surface#43.commit() -[2618404.127] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2618404.142] {Default Queue} -> wl_surface#43.commit() -[2618404.155] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618404.160] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618404.166] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618404.172] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618404.183] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618404.189] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618404.195] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618404.200] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618404.208] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618404.212] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618404.216] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618404.220] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618404.227] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618404.231] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618404.236] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618404.240] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618404.245] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618404.250] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618404.254] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618404.258] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618404.290] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618404.295] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618404.299] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618404.304] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618404.320] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618404.325] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618404.372] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618404.378] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618404.382] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618404.386] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618404.393] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618404.397] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618404.442] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618404.454] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618404.458] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618404.462] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618404.469] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618404.473] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618404.633] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618404.654] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618404.662] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618404.668] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618404.691] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618404.698] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618404.851] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618404.872] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618404.880] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618404.886] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618404.899] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618404.906] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618404.970] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618404.982] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618404.988] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618404.994] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618405.002] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618405.008] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618405.026] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2618405.039] {Default Queue} -> wl_surface#43.commit() -[2618405.054] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2618405.064] {Default Queue} -> wl_surface#43.commit() -[2618405.080] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2618405.089] {Default Queue} -> wl_surface#43.commit() -[2618405.102] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) -[2618405.110] {Default Queue} -> wl_surface#199.commit() -[2618406.176] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) -[2618406.181] {Default Queue} -> wl_surface#199.commit() -[2618406.195] {Default Queue} -> wl_region#223.subtract(0, 0, 19, 48) -[2618406.199] {Default Queue} -> wl_region#223.add(-20, -49, 19, 48) -[2618406.204] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618406.208] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618406.288] {Default Queue} -> wl_region#223.subtract(0, 0, 19, 48) -[2618406.293] {Default Queue} -> wl_region#223.add(-20, -49, 19, 48) -[2618406.297] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618406.301] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618406.308] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618406.313] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618406.365] {Default Queue} -> wl_region#223.subtract(0, 0, 19, 48) -[2618406.370] {Default Queue} -> wl_region#223.add(-20, -49, 19, 48) -[2618406.374] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618406.379] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618406.384] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618406.388] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618406.393] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) -[2618406.397] {Default Queue} -> wl_surface#199.commit() -[2618406.402] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) -[2618406.406] {Default Queue} -> wl_surface#199.commit() -[2618406.412] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) -[2618406.416] {Default Queue} -> wl_surface#199.commit() -[2618406.422] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) -[2618406.426] {Default Queue} -> wl_surface#263.commit() -[2618406.584] {Default Queue} discarded wl_surface#3623.enter(wl_output#2009) -[2618406.601] {Default Queue} discarded wl_surface#3623.enter(wl_output#2041) -[2618406.608] {Default Queue} discarded wl_surface#3623.enter(wl_output#2073) -[2618406.614] {Default Queue} discarded wl_surface#3623.enter(wl_output#2105) -[2618406.619] {Default Queue} discarded wl_surface#3623.enter(wl_output#2137) -[2618406.624] {Default Queue} discarded wl_surface#3623.enter(wl_output#2169) -[2618406.629] {Default Queue} discarded wl_surface#3623.enter(wl_output#2201) -[2618406.634] {Default Queue} discarded wl_surface#3623.enter(wl_output#2233) -[2618406.639] {Default Queue} discarded wl_surface#3623.enter(wl_output#2265) -[2618406.644] {Default Queue} discarded wl_surface#3623.enter(wl_output#2297) -[2618406.649] {Default Queue} discarded wl_surface#3623.enter(wl_output#2329) -[2618406.654] {Default Queue} discarded wl_surface#3623.enter(wl_output#2361) -[2618406.659] {Default Queue} discarded wl_surface#3623.enter(wl_output#2393) -[2618406.664] {Default Queue} discarded wl_surface#3623.enter(wl_output#2425) -[2618406.669] {Default Queue} discarded wl_surface#3623.enter(wl_output#2457) -[2618406.673] {Default Queue} discarded wl_surface#3623.enter(wl_output#2489) -[2618406.685] {Default Queue} discarded wl_surface#3623.enter(wl_output#2521) -[2618406.695] {Default Queue} discarded wl_surface#3623.enter(wl_output#2553) -[2618406.700] {Default Queue} discarded wl_surface#3623.enter(wl_output#2585) -[2618406.704] {Default Queue} discarded wl_surface#3623.enter(wl_output#2617) -[2618406.709] {Default Queue} discarded wl_surface#3623.enter(wl_output#2649) -[2618406.714] {Default Queue} discarded wl_surface#3623.enter(wl_output#2681) -[2618406.719] {Default Queue} discarded wl_surface#3623.enter(wl_output#2713) -[2618406.724] {Default Queue} discarded wl_surface#3623.enter(wl_output#2745) -[2618406.728] {Default Queue} discarded wl_surface#3623.enter(wl_output#2777) -[2618406.733] {Default Queue} discarded wl_surface#3623.enter(wl_output#2809) -[2618406.738] {Default Queue} discarded wl_surface#3623.enter(wl_output#2841) -[2618406.743] {Default Queue} discarded wl_surface#3623.enter(wl_output#2873) -[2618406.748] {Default Queue} discarded wl_surface#3623.enter(wl_output#2905) -[2618406.753] {Default Queue} discarded wl_surface#3623.enter(wl_output#2937) -[2618406.758] {Default Queue} discarded wl_surface#3623.enter(wl_output#2969) -[2618406.763] {Default Queue} discarded wl_surface#3623.enter(wl_output#3001) -[2618406.768] {Default Queue} discarded wl_surface#3623.enter(wl_output#3033) -[2618406.772] {Default Queue} discarded wl_surface#3623.enter(wl_output#3065) -[2618406.777] {Default Queue} discarded wl_surface#3623.enter(wl_output#3097) -[2618406.783] {Default Queue} discarded wl_surface#3623.enter(wl_output#3129) -[2618406.788] {Default Queue} discarded wl_surface#3623.enter(wl_output#3161) -[2618406.793] {Default Queue} discarded wl_surface#3623.enter(wl_output#3193) -[2618406.798] {Default Queue} discarded wl_surface#3623.enter(wl_output#3225) -[2618406.803] {Default Queue} discarded wl_surface#3623.enter(wl_output#3257) -[2618406.807] {Default Queue} discarded wl_surface#3623.enter(wl_output#3289) -[2618406.812] {Default Queue} discarded wl_surface#3623.enter(wl_output#3321) -[2618406.817] {Default Queue} discarded wl_surface#3623.enter(wl_output#3353) -[2618406.822] {Default Queue} discarded wl_surface#3623.enter(wl_output#3385) -[2618406.827] {Default Queue} discarded wl_surface#3623.enter(wl_output#3417) -[2618406.832] {Default Queue} discarded wl_surface#3623.enter(wl_output#3449) -[2618406.837] {Default Queue} discarded wl_surface#3623.enter(wl_output#3481) -[2618406.842] {Default Queue} discarded wl_surface#3623.enter(wl_output#3513) -[2618406.846] {Default Queue} discarded wl_surface#3623.enter(wl_output#3545) -[2618406.851] {Default Queue} discarded wl_surface#3623.enter(wl_output#3577) -[2618406.856] {Default Queue} discarded wl_surface#3623.enter(wl_output#3609) -[2618406.868] {Default Queue} discarded wl_surface#3623.enter(wl_output#3641) -[2618406.884] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) -[2618406.892] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) -[2618406.898] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618406.903] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618406.915] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) -[2618406.921] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) -[2618406.927] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618406.932] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618406.939] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) -[2618406.944] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) -[2618406.949] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618406.955] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618406.961] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) -[2618406.966] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) -[2618406.971] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618406.976] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618406.982] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) -[2618406.992] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) -[2618406.999] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618407.005] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618407.119] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) -[2618407.126] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) -[2618407.131] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618407.137] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618407.145] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618407.152] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618407.160] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) -[2618407.168] {Default Queue} -> wl_surface#263.commit() -[2618407.174] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) -[2618407.179] {Default Queue} -> wl_surface#263.commit() -[2618407.188] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) -[2618407.195] {Default Queue} -> wl_surface#263.commit() -[2618407.202] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) -[2618407.208] {Default Queue} -> wl_surface#231.commit() -[2618408.274] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) -[2618408.280] {Default Queue} -> wl_surface#231.commit() -[2618408.287] {Default Queue} -> wl_region#255.subtract(0, 0, 19, 48) -[2618408.292] {Default Queue} -> wl_region#255.add(-20, -49, 19, 48) -[2618408.296] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) -[2618408.301] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) -[2618408.306] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) -[2618408.311] {Default Queue} -> wl_surface#231.commit() -[2618408.315] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) -[2618408.319] {Default Queue} -> wl_surface#231.commit() -[2618408.324] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) -[2618408.329] {Default Queue} -> wl_surface#231.commit() -[2618408.333] {Default Queue} -> wl_region#191.subtract(0, 0, 2, 2) -[2618408.340] {Default Queue} -> wl_region#223.subtract(0, 0, 19, 48) -[2618408.345] {Default Queue} -> wl_region#223.add(-20, -49, 19, 48) -[2618408.349] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618408.354] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618408.427] {Default Queue} -> wl_region#223.subtract(0, 0, 19, 48) -[2618408.433] {Default Queue} -> wl_region#223.add(-20, -49, 19, 48) -[2618408.437] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618408.441] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618408.447] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618408.451] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618408.503] {Default Queue} -> wl_region#223.subtract(0, 0, 19, 48) -[2618408.508] {Default Queue} -> wl_region#223.add(-20, -49, 19, 48) -[2618408.513] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618408.517] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618408.522] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618408.527] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618408.533] {Default Queue} -> wl_region#255.subtract(0, 0, 19, 48) -[2618408.537] {Default Queue} -> wl_region#255.add(-20, -49, 19, 48) -[2618408.542] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) -[2618408.546] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) -[2618408.550] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) -[2618408.555] {Default Queue} -> wl_region#191.subtract(0, 0, 5, 5) -[2618408.559] {Default Queue} -> wl_region#191.add(0, 0, 0, 0) -[2618408.564] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) -[2618408.568] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) -[2618408.573] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618408.577] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618408.586] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) -[2618408.592] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) -[2618408.610] {Default Queue} -> wl_buffer#189.destroy() -[2618408.616] {Default Queue} -> wl_buffer#190.destroy() -[2618408.620] {Default Queue} -> wl_shm_pool#187.destroy() -[2618408.624] {Default Queue} -> wl_shm_pool#188.destroy() -[2618408.690] {Default Queue} -> wl_shm#175.create_pool(new id wl_shm_pool#3690, fd 579, 16) -[2618408.697] {Default Queue} -> wl_shm#175.create_pool(new id wl_shm_pool#3691, fd 580, 16) -[2618408.702] {Default Queue} -> wl_shm_pool#3690.create_buffer(new id wl_buffer#3692, 0, 2, 2, 8, 0) -[2618408.707] {Default Queue} -> wl_shm_pool#3691.create_buffer(new id wl_buffer#3693, 0, 2, 2, 8, 0) -[2618408.714] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) -[2618408.719] {Default Queue} -> wl_surface#167.commit() -[2618408.724] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) -[2618408.729] {Default Queue} -> wl_surface#167.commit() -[2618408.736] {Default Queue} -> wl_region#191.subtract(0, 0, 22, 51) -[2618408.740] {Default Queue} -> wl_region#191.add(-20, -49, 19, 48) -[2618408.745] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) -[2618408.749] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) -[2618408.753] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) -[2618408.758] {Default Queue} -> wl_surface#167.commit() -[2618408.764] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) -[2618408.768] {Default Queue} -> wl_surface#167.commit() -[2618409.833] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) -[2618409.839] {Default Queue} -> wl_surface#167.commit() -[2618409.845] {Default Queue} -> wl_region#191.subtract(0, 0, 22, 51) -[2618409.849] {Default Queue} -> wl_region#191.add(-20, -49, 19, 48) -[2618409.854] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) -[2618409.858] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) -[2618409.866] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) -[2618409.870] {Default Queue} -> wl_surface#167.commit() -[2618409.875] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) -[2618409.879] {Default Queue} -> wl_surface#167.commit() -[2618409.885] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) -[2618409.889] {Default Queue} -> wl_surface#167.commit() -[2618409.894] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) -[2618409.900] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) -[2618409.905] {Default Queue} -> wl_surface#135.commit() -[2618410.637] {Default Queue} wl_keyboard#3656.keymap(1, fd 579, 68213) -[2618410.644] {Default Queue} wl_keyboard#3656.enter(566, wl_surface#19, array[0]) -[2618410.649] {Default Queue} wl_keyboard#3656.modifiers(566, 0, 0, 16, 0) -[2618410.653] {Default Queue} discarded wl_shm#3663.format(875709016) -[2618410.658] {Default Queue} discarded wl_shm#3663.format(1) -[2618410.662] {Default Queue} discarded wl_shm#3663.format(0) -[2618410.666] {Default Queue} discarded wl_shm#3663.format(875708993) -[2618410.669] {Default Queue} discarded wl_shm#3664.format(875709016) -[2618410.673] {Default Queue} discarded wl_shm#3664.format(1) -[2618410.678] {Default Queue} discarded wl_shm#3664.format(0) -[2618410.681] {Default Queue} discarded wl_shm#3664.format(875708993) -[2618410.685] {Default Queue} discarded wl_shm#3665.format(875709016) -[2618410.689] {Default Queue} discarded wl_shm#3665.format(1) -[2618410.693] {Default Queue} discarded wl_shm#3665.format(0) -[2618410.698] {Default Queue} discarded wl_shm#3665.format(875708993) -[2618410.702] {Default Queue} wl_seat#3672.capabilities(7) -[2618410.706] {Default Queue} -> wl_seat#3672.get_keyboard(new id wl_keyboard#3694) -[2618410.711] {Default Queue} -> wl_seat#3672.get_pointer(new id wl_pointer#3695) -[2618410.715] {Default Queue} -> wl_data_device_manager#3668.get_data_device(new id wl_data_device#3696, wl_seat#3672) -[2618410.720] {Default Queue} -> zwp_primary_selection_device_manager_v1#3670.get_device(new id zwp_primary_selection_device_v1#3697, wl_seat#3672) -[2618410.737] {Default Queue} wl_output#3673.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2618410.743] {Default Queue} wl_output#3673.mode(3, 1280, 800, 60000) -[2618410.747] {Default Queue} discarded wl_surface#2727.enter(wl_output#3673) -[2618410.752] {Default Queue} discarded wl_surface#3.enter(wl_output#3673) -[2618410.756] {Default Queue} discarded wl_surface#999.enter(wl_output#3673) -[2618410.760] {Default Queue} discarded wl_surface#3079.enter(wl_output#3673) -[2618410.764] {Default Queue} discarded wl_surface#1191.enter(wl_output#3673) -[2618410.768] {Default Queue} discarded wl_surface#1159.enter(wl_output#3673) -[2618410.771] {Default Queue} discarded wl_surface#1703.enter(wl_output#3673) -[2618410.776] {Default Queue} discarded wl_surface#2215.enter(wl_output#3673) -[2618410.780] {Default Queue} discarded wl_surface#423.enter(wl_output#3673) -[2618410.784] {Default Queue} discarded wl_surface#1447.enter(wl_output#3673) -[2618410.787] {Default Queue} discarded wl_surface#3527.enter(wl_output#3673) -[2618410.791] {Default Queue} discarded wl_surface#3047.enter(wl_output#3673) -[2618410.795] {Default Queue} discarded wl_surface#2023.enter(wl_output#3673) -[2618410.799] {Default Queue} discarded wl_surface#1639.enter(wl_output#3673) -[2618410.803] {Default Queue} discarded wl_surface#1319.enter(wl_output#3673) -[2618410.808] {Default Queue} discarded wl_surface#1127.enter(wl_output#3673) -[2618410.812] {Default Queue} discarded wl_surface#2151.enter(wl_output#3673) -[2618410.816] {Default Queue} discarded wl_surface#2375.enter(wl_output#3673) -[2618410.820] {Default Queue} discarded wl_surface#2695.enter(wl_output#3673) -[2618410.824] {Default Queue} discarded wl_surface#2919.enter(wl_output#3673) -[2618410.828] {Default Queue} discarded wl_surface#1063.enter(wl_output#3673) -[2618410.831] {Default Queue} discarded wl_surface#455.enter(wl_output#3673) -[2618410.835] {Default Queue} discarded wl_surface#1575.enter(wl_output#3673) -[2618410.839] {Default Queue} discarded wl_surface#1799.enter(wl_output#3673) -[2618410.843] {Default Queue} discarded wl_surface#1415.enter(wl_output#3673) -[2618410.847] {Default Queue} discarded wl_surface#2439.enter(wl_output#3673) -[2618410.851] {Default Queue} discarded wl_surface#2279.enter(wl_output#3673) -[2618410.855] {Default Queue} discarded wl_surface#3591.enter(wl_output#3673) -[2618410.859] {Default Queue} discarded wl_surface#1831.enter(wl_output#3673) -[2618410.866] {Default Queue} discarded wl_surface#903.enter(wl_output#3673) -[2618410.870] {Default Queue} discarded wl_surface#2663.enter(wl_output#3673) -[2618410.874] {Default Queue} discarded wl_surface#775.enter(wl_output#3673) -[2618410.879] {Default Queue} discarded wl_surface#1991.enter(wl_output#3673) -[2618410.882] {Default Queue} discarded wl_surface#1543.enter(wl_output#3673) -[2618410.886] {Default Queue} discarded wl_surface#135.enter(wl_output#3673) -[2618410.890] {Default Queue} discarded wl_surface#3623.enter(wl_output#3673) -[2618410.894] {Default Queue} discarded wl_surface#1287.enter(wl_output#3673) -[2618410.898] {Default Queue} discarded wl_surface#3399.enter(wl_output#3673) -[2618410.902] {Default Queue} discarded wl_surface#1031.enter(wl_output#3673) -[2618410.906] {Default Queue} discarded wl_surface#615.enter(wl_output#3673) -[2618410.909] {Default Queue} discarded wl_surface#3111.enter(wl_output#3673) -[2618410.913] {Default Queue} discarded wl_surface#231.enter(wl_output#3673) -[2618410.917] {Default Queue} discarded wl_surface#2343.enter(wl_output#3673) -[2618410.921] {Default Queue} discarded wl_surface#1863.enter(wl_output#3673) -[2618410.925] {Default Queue} discarded wl_surface#359.enter(wl_output#3673) -[2618410.929] {Default Queue} discarded wl_surface#2983.enter(wl_output#3673) -[2618410.933] {Default Queue} discarded wl_surface#583.enter(wl_output#3673) -[2618410.937] {Default Queue} discarded wl_surface#743.enter(wl_output#3673) -[2618410.941] {Default Queue} discarded wl_surface#3143.enter(wl_output#3673) -[2618410.948] {Default Queue} discarded wl_surface#2535.enter(wl_output#3673) -[2618410.953] {Default Queue} discarded wl_surface#3367.enter(wl_output#3673) -[2618410.957] {Default Queue} discarded wl_surface#967.enter(wl_output#3673) -[2618410.961] {Default Queue} discarded wl_surface#103.enter(wl_output#3673) -[2618410.965] {Default Queue} discarded wl_surface#3271.enter(wl_output#3673) -[2618410.969] {Default Queue} discarded wl_surface#327.enter(wl_output#3673) -[2618410.973] {Default Queue} discarded wl_surface#43.enter(wl_output#3673) -[2618410.977] {Default Queue} discarded wl_surface#2247.enter(wl_output#3673) -[2618410.981] {Default Queue} discarded wl_surface#807.enter(wl_output#3673) -[2618410.985] {Default Queue} discarded wl_surface#19.enter(wl_output#3673) -[2618410.988] {Default Queue} discarded wl_surface#2951.enter(wl_output#3673) -[2618410.992] {Default Queue} discarded wl_surface#1511.enter(wl_output#3673) -[2618410.996] {Default Queue} discarded wl_surface#199.enter(wl_output#3673) -[2618411.000] {Default Queue} discarded wl_surface#3463.enter(wl_output#3673) -[2618411.004] {Default Queue} discarded wl_surface#3559.enter(wl_output#3673) -[2618411.009] {Default Queue} discarded wl_surface#3495.enter(wl_output#3673) -[2618411.013] {Default Queue} discarded wl_surface#391.enter(wl_output#3673) -[2618411.017] {Default Queue} discarded wl_surface#935.enter(wl_output#3673) -[2618411.021] {Default Queue} discarded wl_surface#2823.enter(wl_output#3673) -[2618411.025] {Default Queue} discarded wl_surface#3015.enter(wl_output#3673) -[2618411.029] {Default Queue} discarded wl_surface#1671.enter(wl_output#3673) -[2618411.033] {Default Queue} discarded wl_surface#1351.enter(wl_output#3673) -[2618411.037] {Default Queue} discarded wl_surface#711.enter(wl_output#3673) -[2618411.041] {Default Queue} discarded wl_surface#3175.enter(wl_output#3673) -[2618411.045] {Default Queue} discarded wl_surface#3431.enter(wl_output#3673) -[2618411.049] {Default Queue} discarded wl_surface#1223.enter(wl_output#3673) -[2618411.053] {Default Queue} discarded wl_surface#1927.enter(wl_output#3673) -[2618411.057] {Default Queue} discarded wl_surface#871.enter(wl_output#3673) -[2618411.061] {Default Queue} discarded wl_surface#1895.enter(wl_output#3673) -[2618411.065] {Default Queue} discarded wl_surface#263.enter(wl_output#3673) -[2618411.069] {Default Queue} discarded wl_surface#551.enter(wl_output#3673) -[2618411.072] {Default Queue} discarded wl_surface#1735.enter(wl_output#3673) -[2618411.076] {Default Queue} discarded wl_surface#1479.enter(wl_output#3673) -[2618411.081] {Default Queue} discarded wl_surface#1772.enter(wl_output#3673) -[2618411.084] {Default Queue} discarded wl_surface#2599.enter(wl_output#3673) -[2618411.088] {Default Queue} discarded wl_surface#2631.enter(wl_output#3673) -[2618411.092] {Default Queue} discarded wl_surface#1959.enter(wl_output#3673) -[2618411.096] {Default Queue} discarded wl_surface#647.enter(wl_output#3673) -[2618411.100] {Default Queue} discarded wl_surface#2055.enter(wl_output#3673) -[2618411.104] {Default Queue} discarded wl_surface#2508.enter(wl_output#3673) -[2618411.108] {Default Queue} discarded wl_surface#71.enter(wl_output#3673) -[2618411.113] {Default Queue} discarded wl_surface#2759.enter(wl_output#3673) -[2618411.117] {Default Queue} discarded wl_surface#2791.enter(wl_output#3673) -[2618411.120] {Default Queue} discarded wl_surface#2887.enter(wl_output#3673) -[2618411.124] {Default Queue} discarded wl_surface#2183.enter(wl_output#3673) -[2618411.128] {Default Queue} discarded wl_surface#2567.enter(wl_output#3673) -[2618411.132] {Default Queue} discarded wl_surface#839.enter(wl_output#3673) -[2618411.136] {Default Queue} discarded wl_surface#1607.enter(wl_output#3673) -[2618411.140] {Default Queue} discarded wl_surface#1095.enter(wl_output#3673) -[2618411.144] {Default Queue} discarded wl_surface#1383.enter(wl_output#3673) -[2618411.148] {Default Queue} discarded wl_surface#487.enter(wl_output#3673) -[2618411.152] {Default Queue} discarded wl_surface#2311.enter(wl_output#3673) -[2618411.156] {Default Queue} discarded wl_surface#519.enter(wl_output#3673) -[2618411.162] {Default Queue} discarded wl_surface#3335.enter(wl_output#3673) -[2618411.168] {Default Queue} discarded wl_surface#3239.enter(wl_output#3673) -[2618411.172] {Default Queue} discarded wl_surface#2087.enter(wl_output#3673) -[2618411.175] {Default Queue} discarded wl_surface#2471.enter(wl_output#3673) -[2618411.179] {Default Queue} discarded wl_surface#295.enter(wl_output#3673) -[2618411.183] {Default Queue} discarded wl_surface#167.enter(wl_output#3673) -[2618411.187] {Default Queue} discarded wl_surface#1255.enter(wl_output#3673) -[2618411.191] {Default Queue} discarded wl_surface#2855.enter(wl_output#3673) -[2618411.195] {Default Queue} discarded wl_surface#3303.enter(wl_output#3673) -[2618411.199] {Default Queue} discarded wl_surface#679.enter(wl_output#3673) -[2618411.202] {Default Queue} discarded wl_surface#2407.enter(wl_output#3673) -[2618411.206] {Default Queue} discarded wl_surface#3207.enter(wl_output#3673) -[2618411.210] {Default Queue} discarded wl_surface#2119.enter(wl_output#3673) -[2618411.214] {Default Queue} discarded wl_surface#3655.enter(wl_output#18) -[2618411.218] {Default Queue} discarded wl_surface#3655.enter(wl_output#57) -[2618411.222] {Default Queue} discarded wl_surface#3655.enter(wl_output#89) -[2618411.226] {Default Queue} discarded wl_surface#3655.enter(wl_output#121) -[2618411.230] {Default Queue} discarded wl_surface#3655.enter(wl_output#153) -[2618411.234] {Default Queue} discarded wl_surface#3655.enter(wl_output#185) -[2618411.238] {Default Queue} discarded wl_surface#3655.enter(wl_output#217) -[2618411.241] {Default Queue} discarded wl_surface#3655.enter(wl_output#249) -[2618411.245] {Default Queue} discarded wl_surface#3655.enter(wl_output#281) -[2618411.249] {Default Queue} discarded wl_surface#3655.enter(wl_output#313) -[2618411.253] {Default Queue} discarded wl_surface#3655.enter(wl_output#345) -[2618411.257] {Default Queue} discarded wl_surface#3655.enter(wl_output#377) -[2618411.261] {Default Queue} discarded wl_surface#3655.enter(wl_output#409) -[2618411.265] {Default Queue} discarded wl_surface#3655.enter(wl_output#441) -[2618411.269] {Default Queue} discarded wl_surface#3655.enter(wl_output#473) -[2618411.273] {Default Queue} discarded wl_surface#3655.enter(wl_output#505) -[2618411.277] {Default Queue} discarded wl_surface#3655.enter(wl_output#537) -[2618411.280] {Default Queue} discarded wl_surface#3655.enter(wl_output#569) -[2618411.284] {Default Queue} discarded wl_surface#3655.enter(wl_output#601) -[2618411.288] {Default Queue} discarded wl_surface#3655.enter(wl_output#633) -[2618411.292] {Default Queue} discarded wl_surface#3655.enter(wl_output#665) -[2618411.296] {Default Queue} discarded wl_surface#3655.enter(wl_output#697) -[2618411.300] {Default Queue} discarded wl_surface#3655.enter(wl_output#729) -[2618411.304] {Default Queue} discarded wl_surface#3655.enter(wl_output#761) -[2618411.308] {Default Queue} discarded wl_surface#3655.enter(wl_output#793) -[2618411.311] {Default Queue} discarded wl_surface#3655.enter(wl_output#825) -[2618411.315] {Default Queue} discarded wl_surface#3655.enter(wl_output#857) -[2618411.319] {Default Queue} discarded wl_surface#3655.enter(wl_output#889) -[2618411.323] {Default Queue} discarded wl_surface#3655.enter(wl_output#921) -[2618411.327] {Default Queue} discarded wl_surface#3655.enter(wl_output#953) -[2618411.331] {Default Queue} discarded wl_surface#3655.enter(wl_output#985) -[2618411.335] {Default Queue} discarded wl_surface#3655.enter(wl_output#1017) -[2618411.339] {Default Queue} discarded wl_surface#3655.enter(wl_output#1049) -[2618411.343] {Default Queue} discarded wl_surface#3655.enter(wl_output#1081) -[2618411.347] {Default Queue} discarded wl_surface#3655.enter(wl_output#1113) -[2618411.350] {Default Queue} discarded wl_surface#3655.enter(wl_output#1145) -[2618411.354] {Default Queue} discarded wl_surface#3655.enter(wl_output#1177) -[2618411.358] {Default Queue} discarded wl_surface#3655.enter(wl_output#1209) -[2618411.362] {Default Queue} discarded wl_surface#3655.enter(wl_output#1241) -[2618411.366] {Default Queue} discarded wl_surface#3655.enter(wl_output#1273) -[2618411.373] {Default Queue} discarded wl_surface#3655.enter(wl_output#1305) -[2618411.378] {Default Queue} discarded wl_surface#3655.enter(wl_output#1337) -[2618411.382] {Default Queue} discarded wl_surface#3655.enter(wl_output#1369) -[2618411.386] {Default Queue} discarded wl_surface#3655.enter(wl_output#1401) -[2618411.390] {Default Queue} discarded wl_surface#3655.enter(wl_output#1433) -[2618411.394] {Default Queue} discarded wl_surface#3655.enter(wl_output#1465) -[2618411.398] {Default Queue} discarded wl_surface#3655.enter(wl_output#1497) -[2618411.402] {Default Queue} discarded wl_surface#3655.enter(wl_output#1529) -[2618411.405] {Default Queue} discarded wl_surface#3655.enter(wl_output#1561) -[2618411.409] {Default Queue} discarded wl_surface#3655.enter(wl_output#1593) -[2618411.413] {Default Queue} discarded wl_surface#3655.enter(wl_output#1625) -[2618411.417] {Default Queue} discarded wl_surface#3655.enter(wl_output#1657) -[2618411.421] {Default Queue} discarded wl_surface#3655.enter(wl_output#1689) -[2618411.425] {Default Queue} discarded wl_surface#3655.enter(wl_output#1721) -[2618411.429] {Default Queue} discarded wl_surface#3655.enter(wl_output#1753) -[2618411.433] {Default Queue} discarded wl_surface#3655.enter(wl_output#1785) -[2618411.437] {Default Queue} discarded wl_surface#3655.enter(wl_output#1817) -[2618411.441] {Default Queue} discarded wl_surface#3655.enter(wl_output#1849) -[2618411.444] {Default Queue} discarded wl_surface#3655.enter(wl_output#1881) -[2618411.448] {Default Queue} discarded wl_surface#3655.enter(wl_output#1913) -[2618411.452] {Default Queue} discarded wl_surface#3655.enter(wl_output#1945) -[2618411.456] {Default Queue} discarded wl_surface#3655.enter(wl_output#1977) -[2618411.460] {Default Queue} discarded wl_surface#3655.enter(wl_output#2009) -[2618411.464] {Default Queue} discarded wl_surface#3655.enter(wl_output#2041) -[2618411.468] {Default Queue} discarded wl_surface#3655.enter(wl_output#2073) -[2618411.472] {Default Queue} discarded wl_surface#3655.enter(wl_output#2105) -[2618411.476] {Default Queue} discarded wl_surface#3655.enter(wl_output#2137) -[2618411.480] {Default Queue} discarded wl_surface#3655.enter(wl_output#2169) -[2618411.484] {Default Queue} discarded wl_surface#3655.enter(wl_output#2201) -[2618411.488] {Default Queue} discarded wl_surface#3655.enter(wl_output#2233) -[2618411.492] {Default Queue} discarded wl_surface#3655.enter(wl_output#2265) -[2618411.496] {Default Queue} discarded wl_surface#3655.enter(wl_output#2297) -[2618411.499] {Default Queue} discarded wl_surface#3655.enter(wl_output#2329) -[2618411.503] {Default Queue} discarded wl_surface#3655.enter(wl_output#2361) -[2618411.507] {Default Queue} discarded wl_surface#3655.enter(wl_output#2393) -[2618411.511] {Default Queue} discarded wl_surface#3655.enter(wl_output#2425) -[2618411.515] {Default Queue} discarded wl_surface#3655.enter(wl_output#2457) -[2618411.519] {Default Queue} discarded wl_surface#3655.enter(wl_output#2489) -[2618411.523] {Default Queue} discarded wl_surface#3655.enter(wl_output#2521) -[2618411.527] {Default Queue} discarded wl_surface#3655.enter(wl_output#2553) -[2618411.531] {Default Queue} discarded wl_surface#3655.enter(wl_output#2585) -[2618411.535] {Default Queue} discarded wl_surface#3655.enter(wl_output#2617) -[2618411.539] {Default Queue} discarded wl_surface#3655.enter(wl_output#2649) -[2618411.542] {Default Queue} discarded wl_surface#3655.enter(wl_output#2681) -[2618411.546] {Default Queue} discarded wl_surface#3655.enter(wl_output#2713) -[2618411.550] {Default Queue} discarded wl_surface#3655.enter(wl_output#2745) -[2618411.554] {Default Queue} discarded wl_surface#3655.enter(wl_output#2777) -[2618411.558] {Default Queue} discarded wl_surface#3655.enter(wl_output#2809) -[2618411.562] {Default Queue} discarded wl_surface#3655.enter(wl_output#2841) -[2618411.566] {Default Queue} discarded wl_surface#3655.enter(wl_output#2873) -[2618411.570] {Default Queue} discarded wl_surface#3655.enter(wl_output#2905) -[2618411.574] {Default Queue} discarded wl_surface#3655.enter(wl_output#2937) -[2618411.578] {Default Queue} discarded wl_surface#3655.enter(wl_output#2969) -[2618411.585] {Default Queue} discarded wl_surface#3655.enter(wl_output#3001) -[2618411.590] {Default Queue} discarded wl_surface#3655.enter(wl_output#3033) -[2618411.594] {Default Queue} discarded wl_surface#3655.enter(wl_output#3065) -[2618411.598] {Default Queue} discarded wl_surface#3655.enter(wl_output#3097) -[2618411.602] {Default Queue} discarded wl_surface#3655.enter(wl_output#3129) -[2618411.605] {Default Queue} discarded wl_surface#3655.enter(wl_output#3161) -[2618411.609] {Default Queue} discarded wl_surface#3655.enter(wl_output#3193) -[2618411.613] {Default Queue} discarded wl_surface#3655.enter(wl_output#3225) -[2618411.617] {Default Queue} discarded wl_surface#3655.enter(wl_output#3257) -[2618411.621] {Default Queue} discarded wl_surface#3655.enter(wl_output#3289) -[2618411.625] {Default Queue} discarded wl_surface#3655.enter(wl_output#3321) -[2618411.628] {Default Queue} discarded wl_surface#3655.enter(wl_output#3353) -[2618411.632] {Default Queue} discarded wl_surface#3655.enter(wl_output#3385) -[2618411.636] {Default Queue} discarded wl_surface#3655.enter(wl_output#3417) -[2618411.640] {Default Queue} discarded wl_surface#3655.enter(wl_output#3449) -[2618411.644] {Default Queue} discarded wl_surface#3655.enter(wl_output#3481) -[2618411.648] {Default Queue} discarded wl_surface#3655.enter(wl_output#3513) -[2618411.652] {Default Queue} discarded wl_surface#3655.enter(wl_output#3545) -[2618411.656] {Default Queue} discarded wl_surface#3655.enter(wl_output#3577) -[2618411.660] {Default Queue} discarded wl_surface#3655.enter(wl_output#3609) -[2618411.663] {Default Queue} discarded wl_surface#3655.enter(wl_output#3641) -[2618411.667] {Default Queue} discarded wl_surface#3655.enter(wl_output#3673) -[2618411.675] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) -[2618411.680] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) -[2618411.685] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618411.689] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618411.696] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) -[2618411.701] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) -[2618411.705] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618411.709] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618411.715] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) -[2618411.719] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) -[2618411.724] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618411.728] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618411.733] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) -[2618411.738] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) -[2618411.742] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618411.746] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618411.753] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) -[2618411.757] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) -[2618411.761] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618411.765] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618411.770] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) -[2618411.774] {Default Queue} -> wl_surface#135.commit() -[2618411.778] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) -[2618411.782] {Default Queue} -> wl_surface#135.commit() -[2618411.788] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) -[2618411.793] {Default Queue} -> wl_surface#135.commit() -[2618411.798] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) -[2618411.803] {Default Queue} -> wl_surface#295.commit() -[2618412.868] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) -[2618412.874] {Default Queue} -> wl_surface#295.commit() -[2618412.882] {Default Queue} -> wl_region#319.subtract(0, 0, 2, 2) -[2618412.886] {Default Queue} -> wl_region#319.add(0, 0, 2, 2) -[2618412.891] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618412.898] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618413.191] {Default Queue} -> wl_region#319.subtract(0, 0, 2, 2) -[2618413.197] {Default Queue} -> wl_region#319.add(0, 0, 2, 2) -[2618413.201] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618413.206] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618413.214] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) -[2618413.218] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) -[2618413.452] {Default Queue} -> wl_region#319.subtract(0, 0, 2, 2) -[2618413.457] {Default Queue} -> wl_region#319.add(0, 0, 2, 2) -[2618413.461] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618413.466] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618413.472] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) -[2618413.476] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) -[2618413.481] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) -[2618413.486] {Default Queue} -> wl_surface#295.commit() -[2618413.490] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) -[2618413.494] {Default Queue} -> wl_surface#295.commit() -[2618413.500] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) -[2618413.505] {Default Queue} -> wl_surface#295.commit() -[2618413.511] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) -[2618413.516] {Default Queue} -> wl_surface#391.commit() -[2618414.578] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) -[2618414.584] {Default Queue} -> wl_surface#391.commit() -[2618414.592] {Default Queue} -> wl_region#415.subtract(0, 0, 19, 48) -[2618414.597] {Default Queue} -> wl_region#415.add(-20, -49, 19, 48) -[2618414.601] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618414.605] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618414.696] {Default Queue} -> wl_region#415.subtract(0, 0, 19, 48) -[2618414.701] {Default Queue} -> wl_region#415.add(-20, -49, 19, 48) -[2618414.706] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618414.710] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618414.715] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618414.720] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618414.784] {Default Queue} -> wl_region#415.subtract(0, 0, 19, 48) -[2618414.790] {Default Queue} -> wl_region#415.add(-20, -49, 19, 48) -[2618414.794] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618414.798] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618414.804] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618414.808] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618414.813] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) -[2618414.818] {Default Queue} -> wl_surface#391.commit() -[2618414.822] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) -[2618414.826] {Default Queue} -> wl_surface#391.commit() -[2618414.832] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) -[2618414.836] {Default Queue} -> wl_surface#391.commit() -[2618414.846] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) -[2618414.852] {Default Queue} -> wl_surface#519.commit() -[2618415.866] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) -[2618415.872] {Default Queue} -> wl_surface#519.commit() -[2618415.880] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) -[2618415.885] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) -[2618415.889] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618415.893] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618415.900] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) -[2618415.904] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) -[2618415.908] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618415.912] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618415.924] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) -[2618415.932] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) -[2618415.936] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618415.941] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618415.946] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) -[2618415.951] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) -[2618415.955] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618415.959] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618415.964] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) -[2618415.968] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) -[2618415.972] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618415.976] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618415.981] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) -[2618415.986] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) -[2618415.990] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618415.994] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618415.999] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) -[2618416.004] {Default Queue} -> wl_surface#519.commit() -[2618416.008] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) -[2618416.012] {Default Queue} -> wl_surface#519.commit() -[2618416.018] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) -[2618416.023] {Default Queue} -> wl_surface#519.commit() -[2618416.029] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) -[2618416.033] {Default Queue} -> wl_surface#551.commit() -[2618417.095] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) -[2618417.101] {Default Queue} -> wl_surface#551.commit() -[2618417.108] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) -[2618417.113] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) -[2618417.117] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618417.121] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618417.128] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) -[2618417.132] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) -[2618417.137] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618417.141] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618417.148] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) -[2618417.152] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) -[2618417.157] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618417.161] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618417.165] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) -[2618417.170] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) -[2618417.174] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618417.178] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618417.183] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) -[2618417.187] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) -[2618417.192] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618417.196] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618417.201] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) -[2618417.206] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) -[2618417.210] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618417.214] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618417.219] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) -[2618417.223] {Default Queue} -> wl_surface#551.commit() -[2618417.227] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) -[2618417.231] {Default Queue} -> wl_surface#551.commit() -[2618417.237] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) -[2618417.245] {Default Queue} -> wl_surface#551.commit() -[2618417.253] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) -[2618417.257] {Default Queue} -> wl_surface#583.commit() -[2618418.318] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) -[2618418.323] {Default Queue} -> wl_surface#583.commit() -[2618418.329] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) -[2618418.334] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) -[2618418.338] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618418.342] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618418.348] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) -[2618418.353] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) -[2618418.357] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618418.361] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618418.368] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) -[2618418.372] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) -[2618418.377] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618418.381] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618418.386] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) -[2618418.390] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) -[2618418.394] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618418.398] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618418.403] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) -[2618418.407] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) -[2618418.411] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618418.415] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618418.420] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) -[2618418.424] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) -[2618418.429] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618418.433] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618418.437] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) -[2618418.442] {Default Queue} -> wl_surface#583.commit() -[2618418.446] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) -[2618418.450] {Default Queue} -> wl_surface#583.commit() -[2618418.456] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) -[2618418.461] {Default Queue} -> wl_surface#583.commit() -[2618418.466] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) -[2618418.471] {Default Queue} -> wl_surface#615.commit() -[2618419.531] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) -[2618419.537] {Default Queue} -> wl_surface#615.commit() -[2618419.543] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) -[2618419.547] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) -[2618419.551] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618419.556] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618419.561] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) -[2618419.566] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) -[2618419.570] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618419.574] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618419.581] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) -[2618419.585] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) -[2618419.590] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618419.594] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618419.599] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) -[2618419.603] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) -[2618419.607] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618419.611] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618419.616] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) -[2618419.624] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) -[2618419.630] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618419.634] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618419.638] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) -[2618419.643] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) -[2618419.647] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618419.651] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618419.656] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) -[2618419.660] {Default Queue} -> wl_surface#615.commit() -[2618419.664] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) -[2618419.669] {Default Queue} -> wl_surface#615.commit() -[2618419.674] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) -[2618419.678] {Default Queue} -> wl_surface#615.commit() -[2618419.684] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) -[2618419.689] {Default Queue} -> wl_surface#647.commit() -[2618420.633] {Display Queue} wl_display#1.delete_id(61) -[2618420.639] {Display Queue} wl_display#1.delete_id(62) -[2618420.643] {Display Queue} wl_display#1.delete_id(59) -[2618420.648] {Display Queue} wl_display#1.delete_id(60) -[2618420.652] {Display Queue} wl_display#1.delete_id(189) -[2618420.656] {Display Queue} wl_display#1.delete_id(190) -[2618420.660] {Display Queue} wl_display#1.delete_id(187) -[2618420.664] {Display Queue} wl_display#1.delete_id(188) -[2618420.668] {Default Queue} wl_keyboard#3694.keymap(1, fd 580, 68213) -[2618420.673] {Default Queue} wl_keyboard#3694.enter(566, wl_surface#19, array[0]) -[2618420.678] {Default Queue} wl_keyboard#3694.modifiers(566, 0, 0, 16, 0) -[2618420.686] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) -[2618420.691] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) -[2618420.696] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618420.700] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618420.706] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) -[2618420.711] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) -[2618420.716] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618420.720] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618420.726] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) -[2618420.731] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) -[2618420.735] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618420.739] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618420.744] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) -[2618420.748] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) -[2618420.753] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618420.757] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618420.761] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) -[2618420.766] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) -[2618420.770] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618420.774] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618420.779] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) -[2618420.783] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) -[2618420.787] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618420.791] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618420.796] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) -[2618420.801] {Default Queue} -> wl_surface#647.commit() -[2618420.805] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) -[2618420.809] {Default Queue} -> wl_surface#647.commit() -[2618420.815] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) -[2618420.819] {Default Queue} -> wl_surface#647.commit() -[2618420.824] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618420.831] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618420.838] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618420.842] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618420.847] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618420.852] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) -[2618420.857] {Default Queue} -> wl_surface#487.commit() -[2618421.923] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) -[2618421.929] {Default Queue} -> wl_surface#487.commit() -[2618421.936] {Default Queue} -> wl_region#511.subtract(0, 0, 19, 48) -[2618421.940] {Default Queue} -> wl_region#511.add(-20, -49, 19, 48) -[2618421.944] {Default Queue} -> wl_surface#487.set_opaque_region(wl_region#512) -[2618421.949] {Default Queue} -> wl_surface#487.set_input_region(wl_region#511) -[2618421.954] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) -[2618421.958] {Default Queue} -> wl_surface#487.commit() -[2618421.962] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) -[2618421.966] {Default Queue} -> wl_surface#487.commit() -[2618421.972] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) -[2618421.976] {Default Queue} -> wl_surface#487.commit() -[2618421.982] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) -[2618421.986] {Default Queue} -> wl_surface#711.commit() -[2618423.048] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) -[2618423.054] {Default Queue} -> wl_surface#711.commit() -[2618423.062] {Default Queue} -> wl_region#735.subtract(0, 0, 19, 48) -[2618423.068] {Default Queue} -> wl_region#735.add(-20, -49, 19, 48) -[2618423.072] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2618423.076] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2618423.175] {Default Queue} -> wl_region#735.subtract(0, 0, 19, 48) -[2618423.181] {Default Queue} -> wl_region#735.add(-20, -49, 19, 48) -[2618423.185] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2618423.189] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2618423.196] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618423.200] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618423.272] {Default Queue} -> wl_region#735.subtract(0, 0, 19, 48) -[2618423.277] {Default Queue} -> wl_region#735.add(-20, -49, 19, 48) -[2618423.282] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2618423.286] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2618423.291] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618423.295] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618423.301] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) -[2618423.306] {Default Queue} -> wl_surface#711.commit() -[2618423.310] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) -[2618423.315] {Default Queue} -> wl_surface#711.commit() -[2618423.321] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) -[2618423.325] {Default Queue} -> wl_surface#711.commit() -[2618423.331] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) -[2618423.336] {Default Queue} -> wl_surface#743.commit() -[2618424.397] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) -[2618424.402] {Default Queue} -> wl_surface#743.commit() -[2618424.410] {Default Queue} -> wl_region#767.subtract(0, 0, 19, 48) -[2618424.415] {Default Queue} -> wl_region#767.add(-20, -49, 19, 48) -[2618424.419] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2618424.423] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2618424.511] {Default Queue} -> wl_region#767.subtract(0, 0, 19, 48) -[2618424.517] {Default Queue} -> wl_region#767.add(-20, -49, 19, 48) -[2618424.521] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2618424.525] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2618424.530] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618424.535] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618424.612] {Default Queue} -> wl_region#767.subtract(0, 0, 19, 48) -[2618424.620] {Default Queue} -> wl_region#767.add(-20, -49, 19, 48) -[2618424.624] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2618424.628] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2618424.634] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618424.638] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618424.643] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) -[2618424.648] {Default Queue} -> wl_surface#743.commit() -[2618424.652] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) -[2618424.656] {Default Queue} -> wl_surface#743.commit() -[2618424.662] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) -[2618424.667] {Default Queue} -> wl_surface#743.commit() -[2618424.673] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) -[2618424.677] {Default Queue} -> wl_surface#775.commit() -[2618425.739] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) -[2618425.744] {Default Queue} -> wl_surface#775.commit() -[2618425.753] {Default Queue} -> wl_region#799.subtract(0, 0, 19, 48) -[2618425.758] {Default Queue} -> wl_region#799.add(-20, -49, 19, 48) -[2618425.762] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2618425.766] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2618425.858] {Default Queue} -> wl_region#799.subtract(0, 0, 19, 48) -[2618425.864] {Default Queue} -> wl_region#799.add(-20, -49, 19, 48) -[2618425.869] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2618425.879] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2618425.885] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618425.889] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618425.964] {Default Queue} -> wl_region#799.subtract(0, 0, 19, 48) -[2618425.970] {Default Queue} -> wl_region#799.add(-20, -49, 19, 48) -[2618425.974] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2618425.978] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2618425.984] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618425.988] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618425.993] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) -[2618425.998] {Default Queue} -> wl_surface#775.commit() -[2618426.002] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) -[2618426.007] {Default Queue} -> wl_surface#775.commit() -[2618426.013] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) -[2618426.017] {Default Queue} -> wl_surface#775.commit() -[2618426.023] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) -[2618426.027] {Default Queue} -> wl_surface#807.commit() -[2618427.089] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) -[2618427.094] {Default Queue} -> wl_surface#807.commit() -[2618427.104] {Default Queue} -> wl_region#831.subtract(0, 0, 19, 48) -[2618427.111] {Default Queue} -> wl_region#831.add(-20, -49, 19, 48) -[2618427.115] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2618427.119] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2618427.208] {Default Queue} -> wl_region#831.subtract(0, 0, 19, 48) -[2618427.213] {Default Queue} -> wl_region#831.add(-20, -49, 19, 48) -[2618427.217] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2618427.222] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2618427.227] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618427.232] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618427.303] {Default Queue} -> wl_region#831.subtract(0, 0, 19, 48) -[2618427.309] {Default Queue} -> wl_region#831.add(-20, -49, 19, 48) -[2618427.314] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2618427.318] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2618427.322] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618427.332] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618427.340] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) -[2618427.344] {Default Queue} -> wl_surface#807.commit() -[2618427.348] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) -[2618427.352] {Default Queue} -> wl_surface#807.commit() -[2618427.358] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) -[2618427.362] {Default Queue} -> wl_surface#807.commit() -[2618427.368] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) -[2618427.373] {Default Queue} -> wl_surface#839.commit() -[2618428.434] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) -[2618428.440] {Default Queue} -> wl_surface#839.commit() -[2618428.447] {Default Queue} -> wl_region#863.subtract(0, 0, 19, 48) -[2618428.451] {Default Queue} -> wl_region#863.add(-20, -49, 19, 48) -[2618428.456] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2618428.460] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2618428.549] {Default Queue} -> wl_region#863.subtract(0, 0, 19, 48) -[2618428.554] {Default Queue} -> wl_region#863.add(-20, -49, 19, 48) -[2618428.558] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2618428.563] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2618428.569] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618428.573] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618428.647] {Default Queue} -> wl_region#863.subtract(0, 0, 19, 48) -[2618428.652] {Default Queue} -> wl_region#863.add(-20, -49, 19, 48) -[2618428.656] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2618428.660] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2618428.666] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618428.670] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618428.675] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) -[2618428.679] {Default Queue} -> wl_surface#839.commit() -[2618428.683] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) -[2618428.688] {Default Queue} -> wl_surface#839.commit() -[2618428.693] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) -[2618428.697] {Default Queue} -> wl_surface#839.commit() -[2618428.703] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) -[2618428.707] {Default Queue} -> wl_surface#679.commit() -[2618429.768] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) -[2618429.774] {Default Queue} -> wl_surface#679.commit() -[2618429.780] {Default Queue} -> wl_region#703.subtract(0, 0, 19, 48) -[2618429.785] {Default Queue} -> wl_region#703.add(-20, -49, 19, 48) -[2618429.789] {Default Queue} -> wl_surface#679.set_opaque_region(wl_region#704) -[2618429.793] {Default Queue} -> wl_surface#679.set_input_region(wl_region#703) -[2618429.798] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) -[2618429.802] {Default Queue} -> wl_surface#679.commit() -[2618429.806] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) -[2618429.811] {Default Queue} -> wl_surface#679.commit() -[2618429.816] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) -[2618429.820] {Default Queue} -> wl_surface#679.commit() -[2618429.825] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2618429.829] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618429.833] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618429.838] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618429.842] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618429.846] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618429.850] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2618429.856] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) -[2618429.866] {Default Queue} -> wl_surface#455.commit() -[2618430.928] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) -[2618430.934] {Default Queue} -> wl_surface#455.commit() -[2618430.940] {Default Queue} -> wl_region#479.subtract(0, 0, 19, 48) -[2618430.948] {Default Queue} -> wl_region#479.add(-20, -49, 19, 48) -[2618430.955] {Default Queue} -> wl_surface#455.set_opaque_region(wl_region#480) -[2618430.959] {Default Queue} -> wl_surface#455.set_input_region(wl_region#479) -[2618430.964] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) -[2618430.969] {Default Queue} -> wl_surface#455.commit() -[2618430.973] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) -[2618430.977] {Default Queue} -> wl_surface#455.commit() -[2618430.983] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) -[2618430.987] {Default Queue} -> wl_surface#455.commit() -[2618430.992] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2618430.997] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2618431.002] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618431.006] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618431.010] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618431.014] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618431.019] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618431.023] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2618431.029] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) -[2618431.033] {Default Queue} -> wl_surface#423.commit() -[2618432.095] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) -[2618432.100] {Default Queue} -> wl_surface#423.commit() -[2618432.107] {Default Queue} -> wl_region#447.subtract(0, 0, 19, 48) -[2618432.112] {Default Queue} -> wl_region#447.add(-20, -49, 19, 48) -[2618432.116] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) -[2618432.120] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) -[2618432.125] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) -[2618432.130] {Default Queue} -> wl_surface#423.commit() -[2618432.134] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) -[2618432.138] {Default Queue} -> wl_surface#423.commit() -[2618432.144] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) -[2618432.148] {Default Queue} -> wl_surface#423.commit() -[2618432.153] {Default Queue} -> wl_region#383.subtract(0, 0, 2, 2) -[2618432.159] {Default Queue} -> wl_region#415.subtract(0, 0, 19, 48) -[2618432.164] {Default Queue} -> wl_region#415.add(-20, -49, 19, 48) -[2618432.168] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618432.172] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618432.251] {Default Queue} -> wl_region#415.subtract(0, 0, 19, 48) -[2618432.257] {Default Queue} -> wl_region#415.add(-20, -49, 19, 48) -[2618432.261] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618432.265] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618432.271] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618432.275] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618432.338] {Default Queue} -> wl_region#415.subtract(0, 0, 19, 48) -[2618432.344] {Default Queue} -> wl_region#415.add(-20, -49, 19, 48) -[2618432.348] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618432.352] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618432.358] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618432.363] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618432.368] {Default Queue} -> wl_region#447.subtract(0, 0, 19, 48) -[2618432.373] {Default Queue} -> wl_region#447.add(-20, -49, 19, 48) -[2618432.377] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) -[2618432.381] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) -[2618432.386] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) -[2618432.390] {Default Queue} -> wl_region#383.subtract(0, 0, 5, 5) -[2618432.395] {Default Queue} -> wl_region#383.add(0, 0, 0, 0) -[2618432.399] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) -[2618432.403] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) -[2618432.411] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618432.417] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618432.421] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618432.426] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618432.430] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618432.434] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618432.439] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2618432.443] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618432.447] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618432.452] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618432.456] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618432.461] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618432.465] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2618432.469] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2618432.474] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) -[2618432.478] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) -[2618432.500] {Default Queue} -> wl_buffer#381.destroy() -[2618432.506] {Default Queue} -> wl_buffer#382.destroy() -[2618432.510] {Default Queue} -> wl_shm_pool#379.destroy() -[2618432.514] {Default Queue} -> wl_shm_pool#380.destroy() -[2618432.558] {Default Queue} -> wl_shm#367.create_pool(new id wl_shm_pool#188, fd 583, 16) -[2618432.565] {Default Queue} -> wl_shm#367.create_pool(new id wl_shm_pool#187, fd 584, 16) -[2618432.570] {Default Queue} -> wl_shm_pool#188.create_buffer(new id wl_buffer#190, 0, 2, 2, 8, 0) -[2618432.575] {Default Queue} -> wl_shm_pool#187.create_buffer(new id wl_buffer#189, 0, 2, 2, 8, 0) -[2618432.582] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) -[2618432.587] {Default Queue} -> wl_surface#359.commit() -[2618432.593] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) -[2618432.597] {Default Queue} -> wl_surface#359.commit() -[2618432.604] {Default Queue} -> wl_region#383.subtract(0, 0, 22, 51) -[2618432.609] {Default Queue} -> wl_region#383.add(-20, -49, 19, 48) -[2618432.613] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) -[2618432.618] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) -[2618432.622] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) -[2618432.627] {Default Queue} -> wl_surface#359.commit() -[2618432.631] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2618432.636] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2618432.640] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618432.644] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618432.649] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618432.653] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618432.658] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618432.662] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2618432.668] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) -[2618432.673] {Default Queue} -> wl_surface#359.commit() -[2618433.737] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) -[2618433.744] {Default Queue} -> wl_surface#359.commit() -[2618433.750] {Default Queue} -> wl_region#383.subtract(0, 0, 22, 51) -[2618433.755] {Default Queue} -> wl_region#383.add(-20, -49, 19, 48) -[2618433.759] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) -[2618433.764] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) -[2618433.769] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) -[2618433.773] {Default Queue} -> wl_surface#359.commit() -[2618433.777] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) -[2618433.781] {Default Queue} -> wl_surface#359.commit() -[2618433.787] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) -[2618433.791] {Default Queue} -> wl_surface#359.commit() -[2618433.796] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) -[2618433.800] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2618433.809] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2618433.816] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618433.820] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618433.824] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618433.829] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618433.833] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618433.837] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2618433.843] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) -[2618433.848] {Default Queue} -> wl_surface#327.commit() -[2618434.871] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) -[2618434.876] {Default Queue} -> wl_surface#327.commit() -[2618434.884] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) -[2618434.889] {Default Queue} -> wl_region#351.add(0, 0, 2, 2) -[2618434.893] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618434.897] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618434.905] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) -[2618434.909] {Default Queue} -> wl_region#351.add(0, 0, 2, 2) -[2618434.913] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618434.918] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618434.923] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) -[2618434.927] {Default Queue} -> wl_region#351.add(0, 0, 2, 2) -[2618434.932] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618434.936] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618434.941] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) -[2618434.945] {Default Queue} -> wl_region#351.add(0, 0, 2, 2) -[2618434.950] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618434.954] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618434.961] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) -[2618434.965] {Default Queue} -> wl_region#351.add(0, 0, 2, 2) -[2618434.970] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618434.974] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618434.978] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) -[2618434.983] {Default Queue} -> wl_surface#327.commit() -[2618434.987] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) -[2618434.991] {Default Queue} -> wl_surface#327.commit() -[2618434.997] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) -[2618435.001] {Default Queue} -> wl_surface#327.commit() -[2618435.005] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) -[2618435.010] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) -[2618435.015] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2618435.019] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2618435.023] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618435.028] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618435.032] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618435.036] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618435.041] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618435.045] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2618435.051] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) -[2618435.055] {Default Queue} -> wl_surface#103.commit() -[2618436.117] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) -[2618436.123] {Default Queue} -> wl_surface#103.commit() -[2618436.128] {Default Queue} -> wl_region#127.subtract(0, 0, 2, 2) -[2618436.133] {Default Queue} -> wl_region#127.add(0, 0, 2, 2) -[2618436.137] {Default Queue} -> wl_surface#103.set_opaque_region(wl_region#128) -[2618436.141] {Default Queue} -> wl_surface#103.set_input_region(wl_region#127) -[2618436.147] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) -[2618436.151] {Default Queue} -> wl_surface#103.commit() -[2618436.155] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) -[2618436.163] {Default Queue} -> wl_surface#103.commit() -[2618436.172] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) -[2618436.178] {Default Queue} -> wl_surface#103.commit() -[2618436.186] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) -[2618436.191] {Default Queue} -> wl_surface#967.commit() -[2618437.253] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) -[2618437.260] {Default Queue} -> wl_surface#967.commit() -[2618437.271] {Default Queue} -> wl_region#991.subtract(0, 0, 19, 48) -[2618437.276] {Default Queue} -> wl_region#991.add(-20, -49, 19, 48) -[2618437.280] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2618437.285] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2618437.382] {Default Queue} -> wl_region#991.subtract(0, 0, 19, 48) -[2618437.387] {Default Queue} -> wl_region#991.add(-20, -49, 19, 48) -[2618437.392] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2618437.396] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2618437.402] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618437.407] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618437.476] {Default Queue} -> wl_region#991.subtract(0, 0, 19, 48) -[2618437.482] {Default Queue} -> wl_region#991.add(-20, -49, 19, 48) -[2618437.486] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2618437.490] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2618437.495] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618437.500] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618437.505] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) -[2618437.510] {Default Queue} -> wl_surface#967.commit() -[2618437.514] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) -[2618437.518] {Default Queue} -> wl_surface#967.commit() -[2618437.524] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) -[2618437.528] {Default Queue} -> wl_surface#967.commit() -[2618437.535] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) -[2618437.539] {Default Queue} -> wl_surface#1095.commit() -[2618438.601] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) -[2618438.606] {Default Queue} -> wl_surface#1095.commit() -[2618438.613] {Default Queue} -> wl_region#1119.subtract(0, 0, 19, 48) -[2618438.618] {Default Queue} -> wl_region#1119.add(-20, -49, 19, 48) -[2618438.622] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618438.627] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618438.636] {Default Queue} -> wl_region#1119.subtract(0, 0, 19, 48) -[2618438.641] {Default Queue} -> wl_region#1119.add(-20, -49, 19, 48) -[2618438.645] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618438.649] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618438.654] {Default Queue} -> wl_region#1119.subtract(0, 0, 19, 48) -[2618438.659] {Default Queue} -> wl_region#1119.add(-20, -49, 19, 48) -[2618438.663] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618438.667] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618438.672] {Default Queue} -> wl_region#1119.subtract(0, 0, 19, 48) -[2618438.676] {Default Queue} -> wl_region#1119.add(-20, -49, 19, 48) -[2618438.681] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618438.685] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618438.689] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) -[2618438.694] {Default Queue} -> wl_surface#1095.commit() -[2618438.698] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) -[2618438.702] {Default Queue} -> wl_surface#1095.commit() -[2618438.708] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) -[2618438.712] {Default Queue} -> wl_surface#1095.commit() -[2618438.719] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) -[2618438.724] {Default Queue} -> wl_surface#1127.commit() -[2618439.789] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) -[2618439.797] {Default Queue} -> wl_surface#1127.commit() -[2618439.803] {Default Queue} -> wl_region#1151.subtract(0, 0, 19, 48) -[2618439.808] {Default Queue} -> wl_region#1151.add(-20, -49, 19, 48) -[2618439.812] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618439.816] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618439.823] {Default Queue} -> wl_region#1151.subtract(0, 0, 19, 48) -[2618439.828] {Default Queue} -> wl_region#1151.add(-20, -49, 19, 48) -[2618439.832] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618439.836] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618439.841] {Default Queue} -> wl_region#1151.subtract(0, 0, 19, 48) -[2618439.845] {Default Queue} -> wl_region#1151.add(-20, -49, 19, 48) -[2618439.849] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618439.853] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618439.858] {Default Queue} -> wl_region#1151.subtract(0, 0, 19, 48) -[2618439.867] {Default Queue} -> wl_region#1151.add(-20, -49, 19, 48) -[2618439.872] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618439.876] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618439.880] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) -[2618439.885] {Default Queue} -> wl_surface#1127.commit() -[2618439.889] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) -[2618439.893] {Default Queue} -> wl_surface#1127.commit() -[2618439.899] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) -[2618439.904] {Default Queue} -> wl_surface#1127.commit() -[2618439.910] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) -[2618439.914] {Default Queue} -> wl_surface#1159.commit() -[2618440.981] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) -[2618441.000] {Default Queue} -> wl_surface#1159.commit() -[2618441.014] {Default Queue} -> wl_region#1183.subtract(0, 0, 19, 48) -[2618441.020] {Default Queue} -> wl_region#1183.add(-20, -49, 19, 48) -[2618441.026] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618441.032] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618441.044] {Default Queue} -> wl_region#1183.subtract(0, 0, 19, 48) -[2618441.051] {Default Queue} -> wl_region#1183.add(-20, -49, 19, 48) -[2618441.056] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618441.062] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618441.069] {Default Queue} -> wl_region#1183.subtract(0, 0, 19, 48) -[2618441.075] {Default Queue} -> wl_region#1183.add(-20, -49, 19, 48) -[2618441.080] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618441.085] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618441.092] {Default Queue} -> wl_region#1183.subtract(0, 0, 19, 48) -[2618441.097] {Default Queue} -> wl_region#1183.add(-20, -49, 19, 48) -[2618441.102] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618441.107] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618441.113] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) -[2618441.119] {Default Queue} -> wl_surface#1159.commit() -[2618441.124] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) -[2618441.130] {Default Queue} -> wl_surface#1159.commit() -[2618441.138] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) -[2618441.144] {Default Queue} -> wl_surface#1159.commit() -[2618441.151] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) -[2618441.157] {Default Queue} -> wl_surface#1191.commit() -[2618442.183] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) -[2618442.196] {Default Queue} -> wl_surface#1191.commit() -[2618442.209] {Default Queue} -> wl_region#1215.subtract(0, 0, 19, 48) -[2618442.219] {Default Queue} -> wl_region#1215.add(-20, -49, 19, 48) -[2618442.227] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618442.231] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618442.241] {Default Queue} -> wl_region#1215.subtract(0, 0, 19, 48) -[2618442.247] {Default Queue} -> wl_region#1215.add(-20, -49, 19, 48) -[2618442.251] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618442.256] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618442.261] {Default Queue} -> wl_region#1215.subtract(0, 0, 19, 48) -[2618442.265] {Default Queue} -> wl_region#1215.add(-20, -49, 19, 48) -[2618442.270] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618442.274] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618442.279] {Default Queue} -> wl_region#1215.subtract(0, 0, 19, 48) -[2618442.283] {Default Queue} -> wl_region#1215.add(-20, -49, 19, 48) -[2618442.287] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618442.291] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618442.296] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) -[2618442.300] {Default Queue} -> wl_surface#1191.commit() -[2618442.305] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) -[2618442.309] {Default Queue} -> wl_surface#1191.commit() -[2618442.316] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) -[2618442.320] {Default Queue} -> wl_surface#1191.commit() -[2618442.326] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) -[2618442.331] {Default Queue} -> wl_surface#1223.commit() -[2618443.393] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) -[2618443.399] {Default Queue} -> wl_surface#1223.commit() -[2618443.405] {Default Queue} -> wl_region#1247.subtract(0, 0, 19, 48) -[2618443.410] {Default Queue} -> wl_region#1247.add(-20, -49, 19, 48) -[2618443.414] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618443.418] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618443.426] {Default Queue} -> wl_region#1247.subtract(0, 0, 19, 48) -[2618443.430] {Default Queue} -> wl_region#1247.add(-20, -49, 19, 48) -[2618443.434] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618443.438] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618443.443] {Default Queue} -> wl_region#1247.subtract(0, 0, 19, 48) -[2618443.448] {Default Queue} -> wl_region#1247.add(-20, -49, 19, 48) -[2618443.452] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618443.456] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618443.461] {Default Queue} -> wl_region#1247.subtract(0, 0, 19, 48) -[2618443.465] {Default Queue} -> wl_region#1247.add(-20, -49, 19, 48) -[2618443.469] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618443.473] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618443.478] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) -[2618443.482] {Default Queue} -> wl_surface#1223.commit() -[2618443.486] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) -[2618443.490] {Default Queue} -> wl_surface#1223.commit() -[2618443.496] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) -[2618443.500] {Default Queue} -> wl_surface#1223.commit() -[2618443.506] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) -[2618443.511] {Default Queue} -> wl_surface#1063.commit() -[2618444.572] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) -[2618444.578] {Default Queue} -> wl_surface#1063.commit() -[2618444.585] {Default Queue} -> wl_region#1087.subtract(0, 0, 19, 48) -[2618444.589] {Default Queue} -> wl_region#1087.add(-20, -49, 19, 48) -[2618444.594] {Default Queue} -> wl_surface#1063.set_opaque_region(wl_region#1088) -[2618444.598] {Default Queue} -> wl_surface#1063.set_input_region(wl_region#1087) -[2618444.606] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) -[2618444.612] {Default Queue} -> wl_surface#1063.commit() -[2618444.617] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) -[2618444.621] {Default Queue} -> wl_surface#1063.commit() -[2618444.627] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) -[2618444.631] {Default Queue} -> wl_surface#1063.commit() -[2618444.638] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) -[2618444.642] {Default Queue} -> wl_surface#1287.commit() -[2618445.707] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) -[2618445.719] {Default Queue} -> wl_surface#1287.commit() -[2618445.733] {Default Queue} -> wl_region#1311.subtract(0, 0, 19, 48) -[2618445.741] {Default Queue} -> wl_region#1311.add(-20, -49, 19, 48) -[2618445.747] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2618445.752] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2618445.915] {Default Queue} -> wl_region#1311.subtract(0, 0, 19, 48) -[2618445.923] {Default Queue} -> wl_region#1311.add(-20, -49, 19, 48) -[2618445.929] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2618445.934] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2618445.943] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618445.948] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618446.072] {Default Queue} -> wl_region#1311.subtract(0, 0, 19, 48) -[2618446.087] {Default Queue} -> wl_region#1311.add(-20, -49, 19, 48) -[2618446.092] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2618446.098] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2618446.105] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618446.110] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618446.117] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) -[2618446.123] {Default Queue} -> wl_surface#1287.commit() -[2618446.128] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) -[2618446.134] {Default Queue} -> wl_surface#1287.commit() -[2618446.142] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) -[2618446.149] {Default Queue} -> wl_surface#1287.commit() -[2618446.157] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) -[2618446.162] {Default Queue} -> wl_surface#1319.commit() -[2618447.194] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) -[2618447.207] {Default Queue} -> wl_surface#1319.commit() -[2618447.220] {Default Queue} -> wl_region#1343.subtract(0, 0, 19, 48) -[2618447.226] {Default Queue} -> wl_region#1343.add(-20, -49, 19, 48) -[2618447.231] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2618447.236] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2618447.350] {Default Queue} -> wl_region#1343.subtract(0, 0, 19, 48) -[2618447.356] {Default Queue} -> wl_region#1343.add(-20, -49, 19, 48) -[2618447.361] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2618447.365] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2618447.372] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618447.376] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618447.461] {Default Queue} -> wl_region#1343.subtract(0, 0, 19, 48) -[2618447.467] {Default Queue} -> wl_region#1343.add(-20, -49, 19, 48) -[2618447.471] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2618447.475] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2618447.481] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618447.486] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618447.492] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) -[2618447.496] {Default Queue} -> wl_surface#1319.commit() -[2618447.500] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) -[2618447.505] {Default Queue} -> wl_surface#1319.commit() -[2618447.512] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) -[2618447.520] {Default Queue} -> wl_surface#1319.commit() -[2618447.529] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) -[2618447.534] {Default Queue} -> wl_surface#1351.commit() -[2618448.596] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) -[2618448.601] {Default Queue} -> wl_surface#1351.commit() -[2618448.609] {Default Queue} -> wl_region#1375.subtract(0, 0, 19, 48) -[2618448.614] {Default Queue} -> wl_region#1375.add(-20, -49, 19, 48) -[2618448.618] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2618448.622] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2618448.716] {Default Queue} -> wl_region#1375.subtract(0, 0, 19, 48) -[2618448.722] {Default Queue} -> wl_region#1375.add(-20, -49, 19, 48) -[2618448.726] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2618448.730] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2618448.736] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618448.740] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618448.823] {Default Queue} -> wl_region#1375.subtract(0, 0, 19, 48) -[2618448.828] {Default Queue} -> wl_region#1375.add(-20, -49, 19, 48) -[2618448.832] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2618448.837] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2618448.842] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618448.846] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618448.851] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) -[2618448.855] {Default Queue} -> wl_surface#1351.commit() -[2618448.860] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) -[2618448.869] {Default Queue} -> wl_surface#1351.commit() -[2618448.875] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) -[2618448.879] {Default Queue} -> wl_surface#1351.commit() -[2618448.885] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) -[2618448.890] {Default Queue} -> wl_surface#1383.commit() -[2618449.951] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) -[2618449.957] {Default Queue} -> wl_surface#1383.commit() -[2618449.964] {Default Queue} -> wl_region#1407.subtract(0, 0, 19, 48) -[2618449.969] {Default Queue} -> wl_region#1407.add(-20, -49, 19, 48) -[2618449.973] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2618449.978] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2618450.068] {Default Queue} -> wl_region#1407.subtract(0, 0, 19, 48) -[2618450.074] {Default Queue} -> wl_region#1407.add(-20, -49, 19, 48) -[2618450.078] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2618450.083] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2618450.088] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618450.092] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618450.169] {Default Queue} -> wl_region#1407.subtract(0, 0, 19, 48) -[2618450.175] {Default Queue} -> wl_region#1407.add(-20, -49, 19, 48) -[2618450.179] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2618450.183] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2618450.189] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618450.193] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618450.198] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) -[2618450.203] {Default Queue} -> wl_surface#1383.commit() -[2618450.207] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) -[2618450.211] {Default Queue} -> wl_surface#1383.commit() -[2618450.217] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) -[2618450.221] {Default Queue} -> wl_surface#1383.commit() -[2618450.227] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) -[2618450.232] {Default Queue} -> wl_surface#1415.commit() -[2618451.298] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) -[2618451.315] {Default Queue} -> wl_surface#1415.commit() -[2618451.333] {Default Queue} -> wl_region#1439.subtract(0, 0, 19, 48) -[2618451.339] {Default Queue} -> wl_region#1439.add(-20, -49, 19, 48) -[2618451.345] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2618451.350] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2618451.483] {Default Queue} -> wl_region#1439.subtract(0, 0, 19, 48) -[2618451.491] {Default Queue} -> wl_region#1439.add(-20, -49, 19, 48) -[2618451.496] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2618451.502] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2618451.510] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618451.516] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618451.615] {Default Queue} -> wl_region#1439.subtract(0, 0, 19, 48) -[2618451.621] {Default Queue} -> wl_region#1439.add(-20, -49, 19, 48) -[2618451.625] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2618451.630] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2618451.635] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618451.640] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618451.645] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) -[2618451.649] {Default Queue} -> wl_surface#1415.commit() -[2618451.654] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) -[2618451.658] {Default Queue} -> wl_surface#1415.commit() -[2618451.664] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) -[2618451.669] {Default Queue} -> wl_surface#1415.commit() -[2618451.675] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) -[2618451.680] {Default Queue} -> wl_surface#1255.commit() -[2618452.742] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) -[2618452.748] {Default Queue} -> wl_surface#1255.commit() -[2618452.756] {Default Queue} -> wl_region#1279.subtract(0, 0, 19, 48) -[2618452.761] {Default Queue} -> wl_region#1279.add(-20, -49, 19, 48) -[2618452.765] {Default Queue} -> wl_surface#1255.set_opaque_region(wl_region#1280) -[2618452.769] {Default Queue} -> wl_surface#1255.set_input_region(wl_region#1279) -[2618452.775] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) -[2618452.779] {Default Queue} -> wl_surface#1255.commit() -[2618452.783] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) -[2618452.788] {Default Queue} -> wl_surface#1255.commit() -[2618452.794] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) -[2618452.799] {Default Queue} -> wl_surface#1255.commit() -[2618452.803] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2618452.808] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618452.814] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) -[2618452.819] {Default Queue} -> wl_surface#1031.commit() -[2618453.866] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) -[2618453.872] {Default Queue} -> wl_surface#1031.commit() -[2618453.878] {Default Queue} -> wl_region#1055.subtract(0, 0, 19, 48) -[2618453.883] {Default Queue} -> wl_region#1055.add(-20, -49, 19, 48) -[2618453.887] {Default Queue} -> wl_surface#1031.set_opaque_region(wl_region#1056) -[2618453.891] {Default Queue} -> wl_surface#1031.set_input_region(wl_region#1055) -[2618453.896] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) -[2618453.900] {Default Queue} -> wl_surface#1031.commit() -[2618453.904] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) -[2618453.909] {Default Queue} -> wl_surface#1031.commit() -[2618453.914] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) -[2618453.919] {Default Queue} -> wl_surface#1031.commit() -[2618453.923] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2618453.928] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2618453.932] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618453.938] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) -[2618453.946] {Default Queue} -> wl_surface#999.commit() -[2618455.009] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) -[2618455.015] {Default Queue} -> wl_surface#999.commit() -[2618455.021] {Default Queue} -> wl_region#1023.subtract(0, 0, 19, 48) -[2618455.026] {Default Queue} -> wl_region#1023.add(-20, -49, 19, 48) -[2618455.030] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) -[2618455.034] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) -[2618455.039] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) -[2618455.043] {Default Queue} -> wl_surface#999.commit() -[2618455.048] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) -[2618455.052] {Default Queue} -> wl_surface#999.commit() -[2618455.058] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) -[2618455.062] {Default Queue} -> wl_surface#999.commit() -[2618455.066] {Default Queue} -> wl_region#959.subtract(0, 0, 2, 2) -[2618455.072] {Default Queue} -> wl_region#991.subtract(0, 0, 19, 48) -[2618455.077] {Default Queue} -> wl_region#991.add(-20, -49, 19, 48) -[2618455.081] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2618455.085] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2618455.170] {Default Queue} -> wl_region#991.subtract(0, 0, 19, 48) -[2618455.175] {Default Queue} -> wl_region#991.add(-20, -49, 19, 48) -[2618455.179] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2618455.184] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2618455.190] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618455.194] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618455.259] {Default Queue} -> wl_region#991.subtract(0, 0, 19, 48) -[2618455.264] {Default Queue} -> wl_region#991.add(-20, -49, 19, 48) -[2618455.268] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2618455.272] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2618455.278] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618455.282] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618455.288] {Default Queue} -> wl_region#1023.subtract(0, 0, 19, 48) -[2618455.292] {Default Queue} -> wl_region#1023.add(-20, -49, 19, 48) -[2618455.296] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) -[2618455.301] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) -[2618455.305] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) -[2618455.310] {Default Queue} -> wl_region#959.subtract(0, 0, 5, 5) -[2618455.314] {Default Queue} -> wl_region#959.add(0, 0, 0, 0) -[2618455.318] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) -[2618455.322] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) -[2618455.327] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618455.331] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) -[2618455.335] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) -[2618455.339] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) -[2618455.344] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) -[2618455.348] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) -[2618455.352] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2618455.357] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618455.361] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618455.365] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618455.370] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618455.374] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618455.378] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618455.382] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2618455.387] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) -[2618455.391] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) -[2618455.406] {Default Queue} -> wl_buffer#957.destroy() -[2618455.411] {Default Queue} -> wl_buffer#958.destroy() -[2618455.419] {Default Queue} -> wl_shm_pool#955.destroy() -[2618455.426] {Default Queue} -> wl_shm_pool#956.destroy() -[2618455.481] {Default Queue} -> wl_shm#943.create_pool(new id wl_shm_pool#60, fd 583, 16) -[2618455.490] {Default Queue} -> wl_shm#943.create_pool(new id wl_shm_pool#59, fd 584, 16) -[2618455.496] {Default Queue} -> wl_shm_pool#60.create_buffer(new id wl_buffer#62, 0, 2, 2, 8, 0) -[2618455.501] {Default Queue} -> wl_shm_pool#59.create_buffer(new id wl_buffer#61, 0, 2, 2, 8, 0) -[2618455.511] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) -[2618455.518] {Default Queue} -> wl_surface#935.commit() -[2618455.526] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) -[2618455.532] {Default Queue} -> wl_surface#935.commit() -[2618455.541] {Default Queue} -> wl_region#959.subtract(0, 0, 22, 51) -[2618455.546] {Default Queue} -> wl_region#959.add(-20, -49, 19, 48) -[2618455.553] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) -[2618455.558] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) -[2618455.565] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) -[2618455.570] {Default Queue} -> wl_surface#935.commit() -[2618455.575] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2618455.580] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2618455.584] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618455.591] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) -[2618455.595] {Default Queue} -> wl_surface#935.commit() -[2618456.662] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) -[2618456.668] {Default Queue} -> wl_surface#935.commit() -[2618456.675] {Default Queue} -> wl_region#959.subtract(0, 0, 22, 51) -[2618456.679] {Default Queue} -> wl_region#959.add(-20, -49, 19, 48) -[2618456.683] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) -[2618456.687] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) -[2618456.692] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) -[2618456.697] {Default Queue} -> wl_surface#935.commit() -[2618456.701] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) -[2618456.705] {Default Queue} -> wl_surface#935.commit() -[2618456.711] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) -[2618456.715] {Default Queue} -> wl_surface#935.commit() -[2618456.720] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) -[2618456.724] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2618456.728] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2618456.732] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618456.738] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) -[2618456.743] {Default Queue} -> wl_surface#903.commit() -[2618457.805] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) -[2618457.812] {Default Queue} -> wl_surface#903.commit() -[2618457.820] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) -[2618457.825] {Default Queue} -> wl_region#927.add(0, 0, 2, 2) -[2618457.829] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618457.833] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618457.841] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) -[2618457.845] {Default Queue} -> wl_region#927.add(0, 0, 2, 2) -[2618457.850] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618457.854] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618457.859] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) -[2618457.869] {Default Queue} -> wl_region#927.add(0, 0, 2, 2) -[2618457.874] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618457.878] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618457.883] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) -[2618457.887] {Default Queue} -> wl_region#927.add(0, 0, 2, 2) -[2618457.891] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618457.895] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618457.906] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) -[2618457.913] {Default Queue} -> wl_region#927.add(0, 0, 2, 2) -[2618457.917] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618457.922] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618457.926] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) -[2618457.930] {Default Queue} -> wl_surface#903.commit() -[2618457.934] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) -[2618457.939] {Default Queue} -> wl_surface#903.commit() -[2618457.945] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) -[2618457.949] {Default Queue} -> wl_surface#903.commit() -[2618457.955] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) -[2618457.960] {Default Queue} -> wl_surface#1511.commit() -[2618459.021] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) -[2618459.027] {Default Queue} -> wl_surface#1511.commit() -[2618459.035] {Default Queue} -> wl_region#1535.subtract(0, 0, 19, 48) -[2618459.040] {Default Queue} -> wl_region#1535.add(-20, -49, 19, 48) -[2618459.044] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2618459.048] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2618459.148] {Default Queue} -> wl_region#1535.subtract(0, 0, 19, 48) -[2618459.154] {Default Queue} -> wl_region#1535.add(-20, -49, 19, 48) -[2618459.158] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2618459.162] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2618459.168] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618459.173] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618459.249] {Default Queue} -> wl_region#1535.subtract(0, 0, 19, 48) -[2618459.254] {Default Queue} -> wl_region#1535.add(-20, -49, 19, 48) -[2618459.259] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2618459.263] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2618459.268] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618459.272] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618459.277] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) -[2618459.282] {Default Queue} -> wl_surface#1511.commit() -[2618459.286] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) -[2618459.290] {Default Queue} -> wl_surface#1511.commit() -[2618459.296] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) -[2618459.300] {Default Queue} -> wl_surface#1511.commit() -[2618459.307] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) -[2618459.311] {Default Queue} -> wl_surface#1575.commit() -[2618460.373] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) -[2618460.382] {Default Queue} -> wl_surface#1575.commit() -[2618460.390] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618460.395] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618460.399] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618460.403] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618460.412] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618460.416] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618460.420] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618460.425] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618460.430] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618460.434] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618460.438] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618460.442] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618460.447] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618460.451] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618460.456] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618460.460] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618460.469] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618460.477] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618460.483] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618460.489] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618460.548] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618460.554] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618460.559] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618460.565] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618460.574] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618460.579] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618460.593] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618460.599] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618460.606] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618460.611] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618460.618] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618460.624] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618460.629] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618460.633] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618460.638] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618460.642] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618460.646] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618460.651] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618460.658] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618460.664] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618460.670] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618460.675] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618460.685] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618460.692] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618460.696] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618460.701] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618460.706] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618460.710] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618460.716] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618460.722] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618460.728] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618460.732] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618460.737] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618460.740] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618460.745] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618460.750] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618460.754] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618460.758] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618460.763] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) -[2618460.768] {Default Queue} -> wl_surface#1575.commit() -[2618460.772] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) -[2618460.776] {Default Queue} -> wl_surface#1575.commit() -[2618460.782] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) -[2618460.786] {Default Queue} -> wl_surface#1575.commit() -[2618460.792] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) -[2618460.797] {Default Queue} -> wl_surface#1543.commit() -[2618461.859] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) -[2618461.872] {Default Queue} -> wl_surface#1543.commit() -[2618461.881] {Default Queue} -> wl_region#1567.subtract(0, 0, 19, 48) -[2618461.886] {Default Queue} -> wl_region#1567.add(-20, -49, 19, 48) -[2618461.895] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) -[2618461.902] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) -[2618461.907] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) -[2618461.912] {Default Queue} -> wl_surface#1543.commit() -[2618461.916] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) -[2618461.920] {Default Queue} -> wl_surface#1543.commit() -[2618461.927] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) -[2618461.931] {Default Queue} -> wl_surface#1543.commit() -[2618461.936] {Default Queue} -> wl_region#1503.subtract(0, 0, 2, 2) -[2618461.942] {Default Queue} -> wl_region#1535.subtract(0, 0, 19, 48) -[2618461.947] {Default Queue} -> wl_region#1535.add(-20, -49, 19, 48) -[2618461.951] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2618461.955] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2618462.071] {Default Queue} -> wl_region#1535.subtract(0, 0, 19, 48) -[2618462.080] {Default Queue} -> wl_region#1535.add(-20, -49, 19, 48) -[2618462.086] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2618462.092] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2618462.101] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618462.108] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618462.183] {Default Queue} -> wl_region#1535.subtract(0, 0, 19, 48) -[2618462.188] {Default Queue} -> wl_region#1535.add(-20, -49, 19, 48) -[2618462.193] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2618462.197] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2618462.203] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618462.207] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618462.243] {Default Queue} -> wl_region#1567.subtract(0, 0, 19, 48) -[2618462.249] {Default Queue} -> wl_region#1567.add(-20, -49, 19, 48) -[2618462.255] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) -[2618462.259] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) -[2618462.265] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) -[2618462.269] {Default Queue} -> wl_region#1503.subtract(0, 0, 5, 5) -[2618462.273] {Default Queue} -> wl_region#1503.add(0, 0, 0, 0) -[2618462.277] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) -[2618462.281] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) -[2618462.285] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618462.290] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618462.294] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) -[2618462.298] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) -[2618462.317] {Default Queue} -> wl_buffer#1501.destroy() -[2618462.323] {Default Queue} -> wl_buffer#1502.destroy() -[2618462.327] {Default Queue} -> wl_shm_pool#1499.destroy() -[2618462.331] {Default Queue} -> wl_shm_pool#1500.destroy() -[2618462.375] {Default Queue} -> wl_shm#1487.create_pool(new id wl_shm_pool#3698, fd 583, 16) -[2618462.382] {Default Queue} -> wl_shm#1487.create_pool(new id wl_shm_pool#3699, fd 584, 16) -[2618462.387] {Default Queue} -> wl_shm_pool#3698.create_buffer(new id wl_buffer#3700, 0, 2, 2, 8, 0) -[2618462.392] {Default Queue} -> wl_shm_pool#3699.create_buffer(new id wl_buffer#3701, 0, 2, 2, 8, 0) -[2618462.399] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) -[2618462.404] {Default Queue} -> wl_surface#1479.commit() -[2618462.409] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) -[2618462.413] {Default Queue} -> wl_surface#1479.commit() -[2618462.421] {Default Queue} -> wl_region#1503.subtract(0, 0, 22, 51) -[2618462.426] {Default Queue} -> wl_region#1503.add(-20, -49, 19, 48) -[2618462.430] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) -[2618462.435] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) -[2618462.439] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) -[2618462.449] {Default Queue} -> wl_surface#1479.commit() -[2618462.459] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) -[2618462.463] {Default Queue} -> wl_surface#1479.commit() -[2618463.528] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) -[2618463.537] {Default Queue} -> wl_surface#1479.commit() -[2618463.545] {Default Queue} -> wl_region#1503.subtract(0, 0, 22, 51) -[2618463.550] {Default Queue} -> wl_region#1503.add(-20, -49, 19, 48) -[2618463.554] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) -[2618463.558] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) -[2618463.563] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) -[2618463.568] {Default Queue} -> wl_surface#1479.commit() -[2618463.572] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) -[2618463.576] {Default Queue} -> wl_surface#1479.commit() -[2618463.582] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) -[2618463.586] {Default Queue} -> wl_surface#1479.commit() -[2618463.591] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) -[2618463.597] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) -[2618463.601] {Default Queue} -> wl_surface#1447.commit() -[2618464.663] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) -[2618464.669] {Default Queue} -> wl_surface#1447.commit() -[2618464.677] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) -[2618464.681] {Default Queue} -> wl_region#1471.add(0, 0, 2, 2) -[2618464.686] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618464.690] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618464.697] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) -[2618464.702] {Default Queue} -> wl_region#1471.add(0, 0, 2, 2) -[2618464.706] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618464.710] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618464.715] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) -[2618464.720] {Default Queue} -> wl_region#1471.add(0, 0, 2, 2) -[2618464.724] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618464.728] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618464.733] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) -[2618464.738] {Default Queue} -> wl_region#1471.add(0, 0, 2, 2) -[2618464.742] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618464.746] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618464.753] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) -[2618464.757] {Default Queue} -> wl_region#1471.add(0, 0, 2, 2) -[2618464.761] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618464.765] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618464.770] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) -[2618464.774] {Default Queue} -> wl_surface#1447.commit() -[2618464.778] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) -[2618464.782] {Default Queue} -> wl_surface#1447.commit() -[2618464.788] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) -[2618464.792] {Default Queue} -> wl_surface#1447.commit() -[2618464.799] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) -[2618464.803] {Default Queue} -> wl_surface#1671.commit() -[2618465.869] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) -[2618465.880] {Default Queue} -> wl_surface#1671.commit() -[2618465.892] {Default Queue} -> wl_region#1695.subtract(0, 0, 19, 48) -[2618465.897] {Default Queue} -> wl_region#1695.add(-20, -49, 19, 48) -[2618465.901] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2618465.906] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2618465.972] {Default Queue} -> wl_region#1695.subtract(0, 0, 19, 48) -[2618465.978] {Default Queue} -> wl_region#1695.add(-20, -49, 19, 48) -[2618465.986] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2618465.994] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2618466.000] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618466.005] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618466.048] {Default Queue} -> wl_region#1695.subtract(0, 0, 19, 48) -[2618466.054] {Default Queue} -> wl_region#1695.add(-20, -49, 19, 48) -[2618466.058] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2618466.066] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2618466.071] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618466.075] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618466.081] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) -[2618466.085] {Default Queue} -> wl_surface#1671.commit() -[2618466.089] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) -[2618466.094] {Default Queue} -> wl_surface#1671.commit() -[2618466.100] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) -[2618466.104] {Default Queue} -> wl_surface#1671.commit() -[2618466.110] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) -[2618466.115] {Default Queue} -> wl_surface#1735.commit() -[2618467.176] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) -[2618467.182] {Default Queue} -> wl_surface#1735.commit() -[2618467.191] {Default Queue} -> wl_region#1759.subtract(0, 0, 19, 48) -[2618467.196] {Default Queue} -> wl_region#1759.add(-20, -49, 19, 48) -[2618467.200] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618467.204] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618467.213] {Default Queue} -> wl_region#1759.subtract(0, 0, 19, 48) -[2618467.217] {Default Queue} -> wl_region#1759.add(-20, -49, 19, 48) -[2618467.221] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618467.256] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618467.261] {Default Queue} -> wl_region#1759.subtract(0, 0, 19, 48) -[2618467.266] {Default Queue} -> wl_region#1759.add(-20, -49, 19, 48) -[2618467.270] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618467.274] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618467.279] {Default Queue} -> wl_region#1759.subtract(0, 0, 19, 48) -[2618467.284] {Default Queue} -> wl_region#1759.add(-20, -49, 19, 48) -[2618467.288] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618467.292] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618467.297] {Default Queue} -> wl_region#1759.subtract(0, 0, 19, 48) -[2618467.301] {Default Queue} -> wl_region#1759.add(-20, -49, 19, 48) -[2618467.305] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618467.309] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618467.324] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) -[2618467.330] {Default Queue} -> wl_surface#1735.commit() -[2618467.334] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) -[2618467.338] {Default Queue} -> wl_surface#1735.commit() -[2618467.345] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) -[2618467.349] {Default Queue} -> wl_surface#1735.commit() -[2618467.355] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) -[2618467.359] {Default Queue} -> wl_surface#1703.commit() -[2618468.421] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) -[2618468.427] {Default Queue} -> wl_surface#1703.commit() -[2618468.433] {Default Queue} -> wl_region#1727.subtract(0, 0, 19, 48) -[2618468.438] {Default Queue} -> wl_region#1727.add(-20, -49, 19, 48) -[2618468.442] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) -[2618468.446] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) -[2618468.451] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) -[2618468.455] {Default Queue} -> wl_surface#1703.commit() -[2618468.464] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) -[2618468.471] {Default Queue} -> wl_surface#1703.commit() -[2618468.478] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) -[2618468.482] {Default Queue} -> wl_surface#1703.commit() -[2618468.487] {Default Queue} -> wl_region#1663.subtract(0, 0, 2, 2) -[2618468.494] {Default Queue} -> wl_region#1695.subtract(0, 0, 19, 48) -[2618468.499] {Default Queue} -> wl_region#1695.add(-20, -49, 19, 48) -[2618468.503] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2618468.507] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2618468.560] {Default Queue} -> wl_region#1695.subtract(0, 0, 19, 48) -[2618468.566] {Default Queue} -> wl_region#1695.add(-20, -49, 19, 48) -[2618468.570] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2618468.574] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2618468.581] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618468.586] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618468.625] {Default Queue} -> wl_region#1695.subtract(0, 0, 19, 48) -[2618468.630] {Default Queue} -> wl_region#1695.add(-20, -49, 19, 48) -[2618468.635] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2618468.639] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2618468.644] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618468.648] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618468.654] {Default Queue} -> wl_region#1727.subtract(0, 0, 19, 48) -[2618468.659] {Default Queue} -> wl_region#1727.add(-20, -49, 19, 48) -[2618468.663] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) -[2618468.667] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) -[2618468.672] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) -[2618468.677] {Default Queue} -> wl_region#1663.subtract(0, 0, 5, 5) -[2618468.681] {Default Queue} -> wl_region#1663.add(0, 0, 0, 0) -[2618468.686] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) -[2618468.691] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) -[2618468.696] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618468.700] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) -[2618468.704] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) -[2618468.709] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) -[2618468.724] {Default Queue} -> wl_buffer#1661.destroy() -[2618468.729] {Default Queue} -> wl_buffer#1662.destroy() -[2618468.734] {Default Queue} -> wl_shm_pool#1659.destroy() -[2618468.739] {Default Queue} -> wl_shm_pool#1660.destroy() -[2618468.784] {Default Queue} -> wl_shm#1647.create_pool(new id wl_shm_pool#3702, fd 583, 16) -[2618468.792] {Default Queue} -> wl_shm#1647.create_pool(new id wl_shm_pool#3703, fd 584, 16) -[2618468.799] {Default Queue} -> wl_shm_pool#3702.create_buffer(new id wl_buffer#3704, 0, 2, 2, 8, 0) -[2618468.804] {Default Queue} -> wl_shm_pool#3703.create_buffer(new id wl_buffer#3705, 0, 2, 2, 8, 0) -[2618468.815] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) -[2618468.820] {Default Queue} -> wl_surface#1639.commit() -[2618468.825] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) -[2618468.829] {Default Queue} -> wl_surface#1639.commit() -[2618468.836] {Default Queue} -> wl_region#1663.subtract(0, 0, 22, 51) -[2618468.840] {Default Queue} -> wl_region#1663.add(-20, -49, 19, 48) -[2618468.845] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) -[2618468.849] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) -[2618468.854] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) -[2618468.858] {Default Queue} -> wl_surface#1639.commit() -[2618468.872] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) -[2618468.876] {Default Queue} -> wl_surface#1639.commit() -[2618469.941] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) -[2618469.953] {Default Queue} -> wl_surface#1639.commit() -[2618469.963] {Default Queue} -> wl_region#1663.subtract(0, 0, 22, 51) -[2618469.968] {Default Queue} -> wl_region#1663.add(-20, -49, 19, 48) -[2618469.972] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) -[2618469.976] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) -[2618469.982] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) -[2618469.987] {Default Queue} -> wl_surface#1639.commit() -[2618469.991] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) -[2618469.995] {Default Queue} -> wl_surface#1639.commit() -[2618470.001] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) -[2618470.005] {Default Queue} -> wl_surface#1639.commit() -[2618470.010] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) -[2618470.016] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) -[2618470.021] {Default Queue} -> wl_surface#1607.commit() -[2618471.083] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) -[2618471.091] {Default Queue} -> wl_surface#1607.commit() -[2618471.101] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) -[2618471.105] {Default Queue} -> wl_region#1631.add(0, 0, 2, 2) -[2618471.109] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618471.113] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618471.121] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) -[2618471.126] {Default Queue} -> wl_region#1631.add(0, 0, 2, 2) -[2618471.130] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618471.134] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618471.140] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) -[2618471.144] {Default Queue} -> wl_region#1631.add(0, 0, 2, 2) -[2618471.148] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618471.152] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618471.157] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) -[2618471.162] {Default Queue} -> wl_region#1631.add(0, 0, 2, 2) -[2618471.166] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618471.170] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618471.176] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) -[2618471.181] {Default Queue} -> wl_region#1631.add(0, 0, 2, 2) -[2618471.185] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618471.189] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618471.194] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) -[2618471.198] {Default Queue} -> wl_surface#1607.commit() -[2618471.202] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) -[2618471.207] {Default Queue} -> wl_surface#1607.commit() -[2618471.213] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) -[2618471.217] {Default Queue} -> wl_surface#1607.commit() -[2618471.224] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) -[2618471.228] {Default Queue} -> wl_surface#1831.commit() -[2618472.290] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) -[2618472.296] {Default Queue} -> wl_surface#1831.commit() -[2618472.305] {Default Queue} -> wl_region#1855.subtract(0, 0, 19, 48) -[2618472.310] {Default Queue} -> wl_region#1855.add(-20, -49, 19, 48) -[2618472.314] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2618472.318] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2618472.398] {Default Queue} -> wl_region#1855.subtract(0, 0, 19, 48) -[2618472.403] {Default Queue} -> wl_region#1855.add(-20, -49, 19, 48) -[2618472.408] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2618472.412] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2618472.419] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618472.423] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618472.482] {Default Queue} -> wl_region#1855.subtract(0, 0, 19, 48) -[2618472.490] {Default Queue} -> wl_region#1855.add(-20, -49, 19, 48) -[2618472.494] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2618472.498] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2618472.503] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618472.508] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618472.513] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) -[2618472.517] {Default Queue} -> wl_surface#1831.commit() -[2618472.521] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) -[2618472.526] {Default Queue} -> wl_surface#1831.commit() -[2618472.532] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) -[2618472.537] {Default Queue} -> wl_surface#1831.commit() -[2618472.543] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) -[2618472.547] {Default Queue} -> wl_surface#1895.commit() -[2618473.610] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) -[2618473.617] {Default Queue} -> wl_surface#1895.commit() -[2618473.626] {Default Queue} -> wl_region#1919.subtract(0, 0, 19, 48) -[2618473.631] {Default Queue} -> wl_region#1919.add(-20, -49, 19, 48) -[2618473.635] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) -[2618473.639] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) -[2618473.645] {Default Queue} -> wl_region#1919.subtract(0, 0, 19, 48) -[2618473.650] {Default Queue} -> wl_region#1919.add(-20, -49, 19, 48) -[2618473.654] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) -[2618473.658] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) -[2618473.669] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618473.673] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618473.678] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) -[2618473.682] {Default Queue} -> wl_surface#1895.commit() -[2618473.686] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) -[2618473.691] {Default Queue} -> wl_surface#1895.commit() -[2618473.697] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) -[2618473.701] {Default Queue} -> wl_surface#1895.commit() -[2618473.707] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) -[2618473.712] {Default Queue} -> wl_surface#1863.commit() -[2618474.773] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) -[2618474.778] {Default Queue} -> wl_surface#1863.commit() -[2618474.785] {Default Queue} -> wl_region#1887.subtract(0, 0, 19, 48) -[2618474.789] {Default Queue} -> wl_region#1887.add(-20, -49, 19, 48) -[2618474.794] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) -[2618474.798] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) -[2618474.802] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) -[2618474.807] {Default Queue} -> wl_surface#1863.commit() -[2618474.811] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) -[2618474.815] {Default Queue} -> wl_surface#1863.commit() -[2618474.820] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) -[2618474.824] {Default Queue} -> wl_surface#1863.commit() -[2618474.829] {Default Queue} -> wl_region#1823.subtract(0, 0, 2, 2) -[2618474.835] {Default Queue} -> wl_region#1855.subtract(0, 0, 19, 48) -[2618474.840] {Default Queue} -> wl_region#1855.add(-20, -49, 19, 48) -[2618474.844] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2618474.848] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2618474.919] {Default Queue} -> wl_region#1855.subtract(0, 0, 19, 48) -[2618474.924] {Default Queue} -> wl_region#1855.add(-20, -49, 19, 48) -[2618474.928] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2618474.933] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2618474.938] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618474.942] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618474.995] {Default Queue} -> wl_region#1855.subtract(0, 0, 19, 48) -[2618475.003] {Default Queue} -> wl_region#1855.add(-20, -49, 19, 48) -[2618475.007] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2618475.011] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2618475.016] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618475.020] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618475.026] {Default Queue} -> wl_region#1887.subtract(0, 0, 19, 48) -[2618475.030] {Default Queue} -> wl_region#1887.add(-20, -49, 19, 48) -[2618475.035] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) -[2618475.039] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) -[2618475.043] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) -[2618475.048] {Default Queue} -> wl_region#1823.subtract(0, 0, 5, 5) -[2618475.052] {Default Queue} -> wl_region#1823.add(0, 0, 0, 0) -[2618475.057] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) -[2618475.061] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) -[2618475.065] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618475.069] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618475.073] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) -[2618475.078] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) -[2618475.094] {Default Queue} -> wl_buffer#1821.destroy() -[2618475.100] {Default Queue} -> wl_buffer#1822.destroy() -[2618475.104] {Default Queue} -> wl_shm_pool#1819.destroy() -[2618475.108] {Default Queue} -> wl_shm_pool#1820.destroy() -[2618475.150] {Default Queue} -> wl_shm#1807.create_pool(new id wl_shm_pool#3706, fd 583, 16) -[2618475.157] {Default Queue} -> wl_shm#1807.create_pool(new id wl_shm_pool#3707, fd 584, 16) -[2618475.162] {Default Queue} -> wl_shm_pool#3706.create_buffer(new id wl_buffer#3708, 0, 2, 2, 8, 0) -[2618475.166] {Default Queue} -> wl_shm_pool#3707.create_buffer(new id wl_buffer#3709, 0, 2, 2, 8, 0) -[2618475.173] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) -[2618475.178] {Default Queue} -> wl_surface#1799.commit() -[2618475.183] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) -[2618475.187] {Default Queue} -> wl_surface#1799.commit() -[2618475.194] {Default Queue} -> wl_region#1823.subtract(0, 0, 22, 51) -[2618475.199] {Default Queue} -> wl_region#1823.add(-20, -49, 19, 48) -[2618475.203] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) -[2618475.207] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) -[2618475.212] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) -[2618475.216] {Default Queue} -> wl_surface#1799.commit() -[2618475.223] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) -[2618475.227] {Default Queue} -> wl_surface#1799.commit() -[2618476.291] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) -[2618476.300] {Default Queue} -> wl_surface#1799.commit() -[2618476.308] {Default Queue} -> wl_region#1823.subtract(0, 0, 22, 51) -[2618476.312] {Default Queue} -> wl_region#1823.add(-20, -49, 19, 48) -[2618476.317] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) -[2618476.321] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) -[2618476.326] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) -[2618476.330] {Default Queue} -> wl_surface#1799.commit() -[2618476.334] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) -[2618476.339] {Default Queue} -> wl_surface#1799.commit() -[2618476.345] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) -[2618476.349] {Default Queue} -> wl_surface#1799.commit() -[2618476.354] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) -[2618476.360] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) -[2618476.364] {Default Queue} -> wl_surface#1772.commit() -[2618477.427] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) -[2618477.438] {Default Queue} -> wl_surface#1772.commit() -[2618477.449] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) -[2618477.454] {Default Queue} -> wl_region#1791.add(0, 0, 2, 2) -[2618477.459] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618477.463] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618477.471] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) -[2618477.476] {Default Queue} -> wl_region#1791.add(0, 0, 2, 2) -[2618477.483] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618477.487] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618477.492] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) -[2618477.497] {Default Queue} -> wl_region#1791.add(0, 0, 2, 2) -[2618477.501] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618477.506] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618477.511] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) -[2618477.515] {Default Queue} -> wl_region#1791.add(0, 0, 2, 2) -[2618477.519] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618477.523] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618477.530] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) -[2618477.534] {Default Queue} -> wl_region#1791.add(0, 0, 2, 2) -[2618477.539] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618477.543] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618477.547] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) -[2618477.552] {Default Queue} -> wl_surface#1772.commit() -[2618477.556] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) -[2618477.560] {Default Queue} -> wl_surface#1772.commit() -[2618477.566] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) -[2618477.571] {Default Queue} -> wl_surface#1772.commit() -[2618477.577] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) -[2618477.582] {Default Queue} -> wl_surface#1991.commit() -[2618478.643] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) -[2618478.650] {Default Queue} -> wl_surface#1991.commit() -[2618478.660] {Default Queue} -> wl_region#2015.subtract(0, 0, 19, 48) -[2618478.664] {Default Queue} -> wl_region#2015.add(-20, -49, 19, 48) -[2618478.669] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2618478.673] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2618478.738] {Default Queue} -> wl_region#2015.subtract(0, 0, 19, 48) -[2618478.743] {Default Queue} -> wl_region#2015.add(-20, -49, 19, 48) -[2618478.747] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2618478.752] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2618478.758] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618478.762] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618478.805] {Default Queue} -> wl_region#2015.subtract(0, 0, 19, 48) -[2618478.810] {Default Queue} -> wl_region#2015.add(-20, -49, 19, 48) -[2618478.815] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2618478.819] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2618478.824] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618478.829] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618478.833] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) -[2618478.838] {Default Queue} -> wl_surface#1991.commit() -[2618478.842] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) -[2618478.846] {Default Queue} -> wl_surface#1991.commit() -[2618478.852] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) -[2618478.857] {Default Queue} -> wl_surface#1991.commit() -[2618478.868] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) -[2618478.873] {Default Queue} -> wl_surface#2055.commit() -[2618479.935] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) -[2618479.945] {Default Queue} -> wl_surface#2055.commit() -[2618479.957] {Default Queue} -> wl_region#2079.subtract(0, 0, 19, 48) -[2618479.961] {Default Queue} -> wl_region#2079.add(-20, -49, 19, 48) -[2618479.965] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618479.969] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618480.046] {Default Queue} -> wl_region#2079.subtract(0, 0, 19, 48) -[2618480.051] {Default Queue} -> wl_region#2079.add(-20, -49, 19, 48) -[2618480.055] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618480.059] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618480.065] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618480.069] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618480.258] {Default Queue} -> wl_region#2079.subtract(0, 0, 19, 48) -[2618480.263] {Default Queue} -> wl_region#2079.add(-20, -49, 19, 48) -[2618480.267] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618480.271] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618480.276] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618480.281] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618480.345] {Default Queue} -> wl_region#2079.subtract(0, 0, 19, 48) -[2618480.350] {Default Queue} -> wl_region#2079.add(-20, -49, 19, 48) -[2618480.355] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618480.359] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618480.364] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618480.368] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618480.519] {Default Queue} -> wl_region#2079.subtract(0, 0, 19, 48) -[2618480.524] {Default Queue} -> wl_region#2079.add(-20, -49, 19, 48) -[2618480.528] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618480.532] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618480.537] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618480.541] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618480.546] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) -[2618480.551] {Default Queue} -> wl_surface#2055.commit() -[2618480.555] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) -[2618480.559] {Default Queue} -> wl_surface#2055.commit() -[2618480.565] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) -[2618480.570] {Default Queue} -> wl_surface#2055.commit() -[2618480.576] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) -[2618480.580] {Default Queue} -> wl_surface#2023.commit() -[2618481.643] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) -[2618481.654] {Default Queue} -> wl_surface#2023.commit() -[2618481.663] {Default Queue} -> wl_region#2047.subtract(0, 0, 19, 48) -[2618481.669] {Default Queue} -> wl_region#2047.add(-20, -49, 19, 48) -[2618481.673] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) -[2618481.677] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) -[2618481.683] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) -[2618481.688] {Default Queue} -> wl_surface#2023.commit() -[2618481.692] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) -[2618481.696] {Default Queue} -> wl_surface#2023.commit() -[2618481.702] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) -[2618481.707] {Default Queue} -> wl_surface#2023.commit() -[2618481.711] {Default Queue} -> wl_region#1983.subtract(0, 0, 2, 2) -[2618481.718] {Default Queue} -> wl_region#2015.subtract(0, 0, 19, 48) -[2618481.722] {Default Queue} -> wl_region#2015.add(-20, -49, 19, 48) -[2618481.726] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2618481.731] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2618481.789] {Default Queue} -> wl_region#2015.subtract(0, 0, 19, 48) -[2618481.794] {Default Queue} -> wl_region#2015.add(-20, -49, 19, 48) -[2618481.803] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2618481.810] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2618481.816] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618481.821] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618481.869] {Default Queue} -> wl_region#2015.subtract(0, 0, 19, 48) -[2618481.874] {Default Queue} -> wl_region#2015.add(-20, -49, 19, 48) -[2618481.897] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2618481.912] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2618481.923] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618481.928] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618481.937] {Default Queue} -> wl_region#2047.subtract(0, 0, 19, 48) -[2618481.943] {Default Queue} -> wl_region#2047.add(-20, -49, 19, 48) -[2618481.949] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) -[2618481.955] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) -[2618481.962] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) -[2618481.969] {Default Queue} -> wl_region#1983.subtract(0, 0, 5, 5) -[2618481.975] {Default Queue} -> wl_region#1983.add(0, 0, 0, 0) -[2618481.981] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) -[2618481.986] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) -[2618481.993] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618481.999] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618482.005] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) -[2618482.011] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) -[2618482.030] {Default Queue} -> wl_buffer#1981.destroy() -[2618482.039] {Default Queue} -> wl_buffer#1982.destroy() -[2618482.044] {Default Queue} -> wl_shm_pool#1979.destroy() -[2618482.048] {Default Queue} -> wl_shm_pool#1980.destroy() -[2618482.104] {Default Queue} -> wl_shm#1967.create_pool(new id wl_shm_pool#3710, fd 583, 16) -[2618482.111] {Default Queue} -> wl_shm#1967.create_pool(new id wl_shm_pool#3711, fd 584, 16) -[2618482.116] {Default Queue} -> wl_shm_pool#3710.create_buffer(new id wl_buffer#3712, 0, 2, 2, 8, 0) -[2618482.121] {Default Queue} -> wl_shm_pool#3711.create_buffer(new id wl_buffer#3713, 0, 2, 2, 8, 0) -[2618482.129] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) -[2618482.134] {Default Queue} -> wl_surface#1959.commit() -[2618482.140] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) -[2618482.145] {Default Queue} -> wl_surface#1959.commit() -[2618482.154] {Default Queue} -> wl_region#1983.subtract(0, 0, 22, 51) -[2618482.159] {Default Queue} -> wl_region#1983.add(-20, -49, 19, 48) -[2618482.164] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) -[2618482.168] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) -[2618482.174] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) -[2618482.180] {Default Queue} -> wl_surface#1959.commit() -[2618482.189] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) -[2618482.195] {Default Queue} -> wl_surface#1959.commit() -[2618483.262] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) -[2618483.272] {Default Queue} -> wl_surface#1959.commit() -[2618483.280] {Default Queue} -> wl_region#1983.subtract(0, 0, 22, 51) -[2618483.285] {Default Queue} -> wl_region#1983.add(-20, -49, 19, 48) -[2618483.290] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) -[2618483.294] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) -[2618483.299] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) -[2618483.303] {Default Queue} -> wl_surface#1959.commit() -[2618483.307] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) -[2618483.311] {Default Queue} -> wl_surface#1959.commit() -[2618483.318] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) -[2618483.325] {Default Queue} -> wl_surface#1959.commit() -[2618483.352] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) -[2618483.369] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) -[2618483.378] {Default Queue} -> wl_surface#1927.commit() -[2618484.448] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) -[2618484.462] {Default Queue} -> wl_surface#1927.commit() -[2618484.474] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) -[2618484.479] {Default Queue} -> wl_region#1951.add(0, 0, 2, 2) -[2618484.484] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618484.489] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618484.498] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) -[2618484.503] {Default Queue} -> wl_region#1951.add(0, 0, 2, 2) -[2618484.507] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618484.511] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618484.517] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) -[2618484.521] {Default Queue} -> wl_region#1951.add(0, 0, 2, 2) -[2618484.526] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618484.531] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618484.536] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) -[2618484.540] {Default Queue} -> wl_region#1951.add(0, 0, 2, 2) -[2618484.544] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618484.548] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618484.555] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) -[2618484.559] {Default Queue} -> wl_region#1951.add(0, 0, 2, 2) -[2618484.564] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618484.568] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618484.573] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) -[2618484.577] {Default Queue} -> wl_surface#1927.commit() -[2618484.581] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) -[2618484.586] {Default Queue} -> wl_surface#1927.commit() -[2618484.592] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) -[2618484.597] {Default Queue} -> wl_surface#1927.commit() -[2618484.602] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) -[2618484.608] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2618484.612] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2618484.617] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618484.622] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) -[2618484.627] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) -[2618484.632] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) -[2618484.636] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) -[2618484.642] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) -[2618484.647] {Default Queue} -> wl_surface#871.commit() -[2618485.709] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) -[2618485.715] {Default Queue} -> wl_surface#871.commit() -[2618485.721] {Default Queue} -> wl_region#895.subtract(0, 0, 2, 2) -[2618485.726] {Default Queue} -> wl_region#895.add(0, 0, 2, 2) -[2618485.730] {Default Queue} -> wl_surface#871.set_opaque_region(wl_region#896) -[2618485.734] {Default Queue} -> wl_surface#871.set_input_region(wl_region#895) -[2618485.740] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) -[2618485.745] {Default Queue} -> wl_surface#871.commit() -[2618485.748] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) -[2618485.753] {Default Queue} -> wl_surface#871.commit() -[2618485.758] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) -[2618485.763] {Default Queue} -> wl_surface#871.commit() -[2618485.770] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) -[2618485.775] {Default Queue} -> wl_surface#2183.commit() -[2618486.843] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) -[2618486.858] {Default Queue} -> wl_surface#2183.commit() -[2618486.884] {Default Queue} -> wl_region#2207.subtract(0, 0, 19, 48) -[2618486.899] {Default Queue} -> wl_region#2207.add(-20, -49, 19, 48) -[2618486.909] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2618486.915] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2618487.037] {Default Queue} -> wl_region#2207.subtract(0, 0, 19, 48) -[2618487.047] {Default Queue} -> wl_region#2207.add(-20, -49, 19, 48) -[2618487.054] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2618487.060] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2618487.070] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618487.077] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618487.165] {Default Queue} -> wl_region#2207.subtract(0, 0, 19, 48) -[2618487.174] {Default Queue} -> wl_region#2207.add(-20, -49, 19, 48) -[2618487.180] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2618487.187] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2618487.195] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618487.202] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618487.211] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) -[2618487.217] {Default Queue} -> wl_surface#2183.commit() -[2618487.223] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) -[2618487.230] {Default Queue} -> wl_surface#2183.commit() -[2618487.239] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) -[2618487.246] {Default Queue} -> wl_surface#2183.commit() -[2618487.255] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618487.263] {Default Queue} -> wl_surface#2279.commit() -[2618488.329] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618488.339] {Default Queue} -> wl_surface#2279.commit() -[2618488.351] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618488.357] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618488.361] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618488.366] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618488.375] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618488.380] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618488.384] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618488.389] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618488.394] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618488.398] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618488.402] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618488.406] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618488.411] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618488.415] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618488.420] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618488.424] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618488.429] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618488.433] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618488.437] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618488.441] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618488.449] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618488.453] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618488.457] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618488.461] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618488.466] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618488.470] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618488.475] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618488.479] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618488.483] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618488.488] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618488.499] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618488.506] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618488.511] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618488.515] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618488.519] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618488.523] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618488.534] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618488.539] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618488.543] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618488.547] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618488.552] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618488.556] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618488.560] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618488.564] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618488.569] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618488.573] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618488.578] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618488.581] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618488.586] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618488.590] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618488.595] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618488.599] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618488.604] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618488.608] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618488.612] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618488.616] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618488.622] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618488.627] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618488.631] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618488.635] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618488.639] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618488.645] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618488.651] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618488.657] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618488.663] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618488.669] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618488.674] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618488.678] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618488.683] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618488.687] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618488.691] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618488.695] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618488.703] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618488.707] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618488.712] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618488.716] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618488.725] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618488.730] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618488.735] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618488.740] {Default Queue} -> wl_surface#2279.commit() -[2618488.744] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618488.748] {Default Queue} -> wl_surface#2279.commit() -[2618488.755] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618488.764] {Default Queue} -> wl_surface#2279.commit() -[2618488.770] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 2) -[2618488.776] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 22) -[2618488.780] {Default Queue} -> wl_region#2335.add(-3, -3, 2, 0) -[2618488.784] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618488.788] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618488.793] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618488.808] {Default Queue} -> wl_buffer#2333.destroy() -[2618488.813] {Default Queue} -> wl_buffer#2334.destroy() -[2618488.818] {Default Queue} -> wl_shm_pool#2331.destroy() -[2618488.822] {Default Queue} -> wl_shm_pool#2332.destroy() -[2618488.875] {Default Queue} -> wl_shm#2319.create_pool(new id wl_shm_pool#3714, fd 583, 16) -[2618488.882] {Default Queue} -> wl_shm#2319.create_pool(new id wl_shm_pool#3715, fd 584, 16) -[2618488.887] {Default Queue} -> wl_shm_pool#3714.create_buffer(new id wl_buffer#3716, 0, 2, 2, 8, 0) -[2618488.892] {Default Queue} -> wl_shm_pool#3715.create_buffer(new id wl_buffer#3717, 0, 2, 2, 8, 0) -[2618488.899] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) -[2618488.904] {Default Queue} -> wl_surface#2311.commit() -[2618488.909] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) -[2618488.914] {Default Queue} -> wl_surface#2311.commit() -[2618488.922] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618488.928] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618488.933] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618488.937] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618488.948] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618488.952] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618488.957] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618488.961] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618488.966] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618488.970] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618488.974] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618488.978] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618488.983] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618488.988] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618488.992] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618488.996] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618489.001] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618489.005] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618489.010] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618489.014] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618489.018] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618489.023] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618489.027] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618489.031] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618489.075] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618489.080] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618489.085] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618489.090] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618489.095] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618489.100] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618489.109] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618489.113] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618489.118] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618489.122] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618489.127] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618489.135] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618489.142] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618489.146] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618489.151] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618489.155] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618489.159] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618489.163] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618489.169] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618489.173] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618489.177] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618489.181] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618489.186] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) -[2618489.190] {Default Queue} -> wl_surface#2311.commit() -[2618489.197] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) -[2618489.201] {Default Queue} -> wl_surface#2311.commit() -[2618490.268] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) -[2618490.277] {Default Queue} -> wl_surface#2311.commit() -[2618490.286] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618490.291] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618490.295] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618490.299] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618490.310] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618490.315] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618490.319] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618490.323] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618490.328] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618490.333] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618490.337] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618490.341] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618490.346] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618490.351] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618490.355] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618490.359] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618490.363] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618490.368] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618490.372] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618490.376] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618490.381] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618490.385] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618490.389] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618490.393] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618490.427] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618490.432] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618490.436] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618490.441] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618490.447] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618490.451] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618490.459] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618490.464] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618490.468] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618490.472] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618490.477] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618490.481] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618490.486] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618490.494] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618490.501] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618490.506] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618490.510] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618490.515] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618490.519] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618490.523] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618490.528] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618490.531] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618490.536] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) -[2618490.540] {Default Queue} -> wl_surface#2311.commit() -[2618490.544] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) -[2618490.548] {Default Queue} -> wl_surface#2311.commit() -[2618490.555] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) -[2618490.559] {Default Queue} -> wl_surface#2311.commit() -[2618490.565] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) -[2618490.569] {Default Queue} -> wl_surface#2247.commit() -[2618491.637] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) -[2618491.652] {Default Queue} -> wl_surface#2247.commit() -[2618491.665] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) -[2618491.671] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) -[2618491.678] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618491.684] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618491.698] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) -[2618491.705] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) -[2618491.711] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618491.717] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618491.724] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) -[2618491.730] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) -[2618491.736] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618491.742] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618491.748] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) -[2618491.755] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) -[2618491.761] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618491.766] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618491.772] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) -[2618491.778] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) -[2618491.784] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618491.790] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618491.927] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) -[2618491.939] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) -[2618491.945] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618491.952] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618491.962] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618491.968] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618491.977] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) -[2618491.984] {Default Queue} -> wl_surface#2247.commit() -[2618491.990] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) -[2618491.996] {Default Queue} -> wl_surface#2247.commit() -[2618492.005] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) -[2618492.012] {Default Queue} -> wl_surface#2247.commit() -[2618492.020] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) -[2618492.029] {Default Queue} -> wl_surface#2215.commit() -[2618493.100] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) -[2618493.115] {Default Queue} -> wl_surface#2215.commit() -[2618493.133] {Default Queue} -> wl_region#2239.subtract(0, 0, 19, 48) -[2618493.145] {Default Queue} -> wl_region#2239.add(-20, -49, 19, 48) -[2618493.151] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) -[2618493.157] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) -[2618493.165] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) -[2618493.171] {Default Queue} -> wl_surface#2215.commit() -[2618493.177] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) -[2618493.183] {Default Queue} -> wl_surface#2215.commit() -[2618493.192] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) -[2618493.198] {Default Queue} -> wl_surface#2215.commit() -[2618493.205] {Default Queue} -> wl_region#2175.subtract(0, 0, 2, 2) -[2618493.214] {Default Queue} -> wl_region#2207.subtract(0, 0, 19, 48) -[2618493.220] {Default Queue} -> wl_region#2207.add(-20, -49, 19, 48) -[2618493.226] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2618493.233] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2618493.351] {Default Queue} -> wl_region#2207.subtract(0, 0, 19, 48) -[2618493.361] {Default Queue} -> wl_region#2207.add(-20, -49, 19, 48) -[2618493.368] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2618493.374] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2618493.383] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618493.390] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618493.477] {Default Queue} -> wl_region#2207.subtract(0, 0, 19, 48) -[2618493.486] {Default Queue} -> wl_region#2207.add(-20, -49, 19, 48) -[2618493.491] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2618493.497] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2618493.505] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618493.511] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618493.519] {Default Queue} -> wl_region#2239.subtract(0, 0, 19, 48) -[2618493.525] {Default Queue} -> wl_region#2239.add(-20, -49, 19, 48) -[2618493.531] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) -[2618493.536] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) -[2618493.544] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) -[2618493.550] {Default Queue} -> wl_region#2175.subtract(0, 0, 5, 5) -[2618493.556] {Default Queue} -> wl_region#2175.add(0, 0, 0, 0) -[2618493.562] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) -[2618493.569] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) -[2618493.575] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618493.581] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618493.587] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618493.593] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618493.599] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) -[2618493.604] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) -[2618493.622] {Default Queue} -> wl_buffer#2173.destroy() -[2618493.629] {Default Queue} -> wl_buffer#2174.destroy() -[2618493.634] {Default Queue} -> wl_shm_pool#2171.destroy() -[2618493.639] {Default Queue} -> wl_shm_pool#2172.destroy() -[2618493.706] {Default Queue} -> wl_shm#2159.create_pool(new id wl_shm_pool#3718, fd 583, 16) -[2618493.716] {Default Queue} -> wl_shm#2159.create_pool(new id wl_shm_pool#3719, fd 584, 16) -[2618493.723] {Default Queue} -> wl_shm_pool#3718.create_buffer(new id wl_buffer#3720, 0, 2, 2, 8, 0) -[2618493.729] {Default Queue} -> wl_shm_pool#3719.create_buffer(new id wl_buffer#3721, 0, 2, 2, 8, 0) -[2618493.738] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) -[2618493.745] {Default Queue} -> wl_surface#2151.commit() -[2618493.752] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) -[2618493.758] {Default Queue} -> wl_surface#2151.commit() -[2618493.769] {Default Queue} -> wl_region#2175.subtract(0, 0, 22, 51) -[2618493.782] {Default Queue} -> wl_region#2175.add(-20, -49, 19, 48) -[2618493.791] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) -[2618493.797] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) -[2618493.804] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) -[2618493.810] {Default Queue} -> wl_surface#2151.commit() -[2618493.819] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) -[2618493.825] {Default Queue} -> wl_surface#2151.commit() -[2618494.871] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) -[2618494.883] {Default Queue} -> wl_surface#2151.commit() -[2618494.909] {Default Queue} -> wl_region#2175.subtract(0, 0, 22, 51) -[2618494.920] {Default Queue} -> wl_region#2175.add(-20, -49, 19, 48) -[2618494.926] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) -[2618494.931] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) -[2618494.937] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) -[2618494.942] {Default Queue} -> wl_surface#2151.commit() -[2618494.947] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) -[2618494.952] {Default Queue} -> wl_surface#2151.commit() -[2618494.959] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) -[2618494.964] {Default Queue} -> wl_surface#2151.commit() -[2618494.968] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) -[2618494.975] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) -[2618494.980] {Default Queue} -> wl_surface#2119.commit() -[2618496.043] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) -[2618496.052] {Default Queue} -> wl_surface#2119.commit() -[2618496.061] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) -[2618496.065] {Default Queue} -> wl_region#2143.add(0, 0, 2, 2) -[2618496.070] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618496.074] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618496.084] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) -[2618496.088] {Default Queue} -> wl_region#2143.add(0, 0, 2, 2) -[2618496.092] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618496.097] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618496.102] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) -[2618496.107] {Default Queue} -> wl_region#2143.add(0, 0, 2, 2) -[2618496.111] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618496.115] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618496.121] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) -[2618496.125] {Default Queue} -> wl_region#2143.add(0, 0, 2, 2) -[2618496.129] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618496.133] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618496.140] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) -[2618496.145] {Default Queue} -> wl_region#2143.add(0, 0, 2, 2) -[2618496.149] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618496.153] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618496.158] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) -[2618496.162] {Default Queue} -> wl_surface#2119.commit() -[2618496.167] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) -[2618496.171] {Default Queue} -> wl_surface#2119.commit() -[2618496.177] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) -[2618496.181] {Default Queue} -> wl_surface#2119.commit() -[2618496.189] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) -[2618496.193] {Default Queue} -> wl_surface#2407.commit() -[2618497.254] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) -[2618497.260] {Default Queue} -> wl_surface#2407.commit() -[2618497.269] {Default Queue} -> wl_region#2431.subtract(0, 0, 19, 48) -[2618497.274] {Default Queue} -> wl_region#2431.add(-20, -49, 19, 48) -[2618497.278] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2618497.286] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2618497.463] {Default Queue} -> wl_region#2431.subtract(0, 0, 19, 48) -[2618497.473] {Default Queue} -> wl_region#2431.add(-20, -49, 19, 48) -[2618497.478] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2618497.483] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2618497.490] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618497.495] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618497.590] {Default Queue} -> wl_region#2431.subtract(0, 0, 19, 48) -[2618497.596] {Default Queue} -> wl_region#2431.add(-20, -49, 19, 48) -[2618497.600] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2618497.604] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2618497.610] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618497.615] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618497.620] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) -[2618497.625] {Default Queue} -> wl_surface#2407.commit() -[2618497.629] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) -[2618497.633] {Default Queue} -> wl_surface#2407.commit() -[2618497.640] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) -[2618497.644] {Default Queue} -> wl_surface#2407.commit() -[2618497.652] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) -[2618497.656] {Default Queue} -> wl_surface#2471.commit() -[2618498.719] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) -[2618498.726] {Default Queue} -> wl_surface#2471.commit() -[2618498.743] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618498.748] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618498.752] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618498.756] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618498.764] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618498.768] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618498.772] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618498.776] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618498.781] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618498.786] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618498.790] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618498.794] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618498.799] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618498.803] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618498.808] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618498.812] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618498.817] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618498.821] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618498.826] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618498.829] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618498.836] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618498.840] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618498.845] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618498.849] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618498.854] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618498.858] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618498.868] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618498.872] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618498.876] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618498.881] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618498.885] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618498.893] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618498.901] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618498.905] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618498.909] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618498.913] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618498.919] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618498.923] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618498.928] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618498.931] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618498.938] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618498.942] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618498.946] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618498.950] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618498.955] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618498.960] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618498.964] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618498.968] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618498.973] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618498.977] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618498.981] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618498.985] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618498.990] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618498.994] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618498.998] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618499.002] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618499.008] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618499.012] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618499.016] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618499.021] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618499.025] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618499.030] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618499.034] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618499.039] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618499.043] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618499.048] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618499.052] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618499.056] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618499.060] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618499.065] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618499.069] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618499.074] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618499.078] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) -[2618499.083] {Default Queue} -> wl_surface#2471.commit() -[2618499.087] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) -[2618499.091] {Default Queue} -> wl_surface#2471.commit() -[2618499.098] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) -[2618499.102] {Default Queue} -> wl_surface#2471.commit() -[2618499.108] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) -[2618499.113] {Default Queue} -> wl_surface#2439.commit() -[2618500.171] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) -[2618500.185] {Default Queue} -> wl_surface#2439.commit() -[2618500.196] {Default Queue} -> wl_region#2463.subtract(0, 0, 19, 48) -[2618500.202] {Default Queue} -> wl_region#2463.add(-20, -49, 19, 48) -[2618500.206] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) -[2618500.226] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) -[2618500.236] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) -[2618500.241] {Default Queue} -> wl_surface#2439.commit() -[2618500.245] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) -[2618500.249] {Default Queue} -> wl_surface#2439.commit() -[2618500.256] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) -[2618500.260] {Default Queue} -> wl_surface#2439.commit() -[2618500.265] {Default Queue} -> wl_region#2399.subtract(0, 0, 2, 2) -[2618500.272] {Default Queue} -> wl_region#2431.subtract(0, 0, 19, 48) -[2618500.277] {Default Queue} -> wl_region#2431.add(-20, -49, 19, 48) -[2618500.281] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2618500.286] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2618500.415] {Default Queue} -> wl_region#2431.subtract(0, 0, 19, 48) -[2618500.421] {Default Queue} -> wl_region#2431.add(-20, -49, 19, 48) -[2618500.425] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2618500.430] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2618500.436] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618500.441] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618500.531] {Default Queue} -> wl_region#2431.subtract(0, 0, 19, 48) -[2618500.537] {Default Queue} -> wl_region#2431.add(-20, -49, 19, 48) -[2618500.541] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2618500.545] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2618500.551] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618500.555] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618500.561] {Default Queue} -> wl_region#2463.subtract(0, 0, 19, 48) -[2618500.566] {Default Queue} -> wl_region#2463.add(-20, -49, 19, 48) -[2618500.570] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) -[2618500.574] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) -[2618500.579] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) -[2618500.584] {Default Queue} -> wl_region#2399.subtract(0, 0, 5, 5) -[2618500.588] {Default Queue} -> wl_region#2399.add(0, 0, 0, 0) -[2618500.593] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) -[2618500.597] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) -[2618500.601] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618500.605] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) -[2618500.610] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) -[2618500.614] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) -[2618500.628] {Default Queue} -> wl_buffer#2397.destroy() -[2618500.634] {Default Queue} -> wl_buffer#2398.destroy() -[2618500.638] {Default Queue} -> wl_shm_pool#2395.destroy() -[2618500.643] {Default Queue} -> wl_shm_pool#2396.destroy() -[2618500.690] {Default Queue} -> wl_shm#2383.create_pool(new id wl_shm_pool#3722, fd 583, 16) -[2618500.697] {Default Queue} -> wl_shm#2383.create_pool(new id wl_shm_pool#3723, fd 584, 16) -[2618500.702] {Default Queue} -> wl_shm_pool#3722.create_buffer(new id wl_buffer#3724, 0, 2, 2, 8, 0) -[2618500.707] {Default Queue} -> wl_shm_pool#3723.create_buffer(new id wl_buffer#3725, 0, 2, 2, 8, 0) -[2618500.714] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) -[2618500.719] {Default Queue} -> wl_surface#2375.commit() -[2618500.724] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) -[2618500.729] {Default Queue} -> wl_surface#2375.commit() -[2618500.736] {Default Queue} -> wl_region#2399.subtract(0, 0, 22, 51) -[2618500.740] {Default Queue} -> wl_region#2399.add(-20, -49, 19, 48) -[2618500.745] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) -[2618500.749] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) -[2618500.754] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) -[2618500.758] {Default Queue} -> wl_surface#2375.commit() -[2618500.768] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) -[2618500.775] {Default Queue} -> wl_surface#2375.commit() -[2618501.840] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) -[2618501.846] {Default Queue} -> wl_surface#2375.commit() -[2618501.852] {Default Queue} -> wl_region#2399.subtract(0, 0, 22, 51) -[2618501.857] {Default Queue} -> wl_region#2399.add(-20, -49, 19, 48) -[2618501.862] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) -[2618501.866] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) -[2618501.878] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) -[2618501.882] {Default Queue} -> wl_surface#2375.commit() -[2618501.887] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) -[2618501.892] {Default Queue} -> wl_surface#2375.commit() -[2618501.898] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) -[2618501.902] {Default Queue} -> wl_surface#2375.commit() -[2618501.907] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) -[2618501.914] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) -[2618501.918] {Default Queue} -> wl_surface#2343.commit() -[2618502.980] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) -[2618502.987] {Default Queue} -> wl_surface#2343.commit() -[2618502.996] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) -[2618503.001] {Default Queue} -> wl_region#2367.add(0, 0, 2, 2) -[2618503.006] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618503.010] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618503.018] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) -[2618503.023] {Default Queue} -> wl_region#2367.add(0, 0, 2, 2) -[2618503.027] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618503.031] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618503.036] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) -[2618503.041] {Default Queue} -> wl_region#2367.add(0, 0, 2, 2) -[2618503.045] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618503.049] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618503.054] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) -[2618503.058] {Default Queue} -> wl_region#2367.add(0, 0, 2, 2) -[2618503.062] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618503.066] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618503.073] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) -[2618503.077] {Default Queue} -> wl_region#2367.add(0, 0, 2, 2) -[2618503.081] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618503.085] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618503.090] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) -[2618503.095] {Default Queue} -> wl_surface#2343.commit() -[2618503.099] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) -[2618503.103] {Default Queue} -> wl_surface#2343.commit() -[2618503.109] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) -[2618503.114] {Default Queue} -> wl_surface#2343.commit() -[2618503.121] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) -[2618503.126] {Default Queue} -> wl_surface#2567.commit() -[2618504.187] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) -[2618504.192] {Default Queue} -> wl_surface#2567.commit() -[2618504.202] {Default Queue} -> wl_region#2591.subtract(0, 0, 19, 48) -[2618504.207] {Default Queue} -> wl_region#2591.add(-20, -49, 19, 48) -[2618504.211] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2618504.215] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2618504.348] {Default Queue} -> wl_region#2591.subtract(0, 0, 19, 48) -[2618504.354] {Default Queue} -> wl_region#2591.add(-20, -49, 19, 48) -[2618504.359] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2618504.367] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2618504.376] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618504.380] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618504.474] {Default Queue} -> wl_region#2591.subtract(0, 0, 19, 48) -[2618504.480] {Default Queue} -> wl_region#2591.add(-20, -49, 19, 48) -[2618504.484] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2618504.488] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2618504.493] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618504.497] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618504.503] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) -[2618504.507] {Default Queue} -> wl_surface#2567.commit() -[2618504.511] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) -[2618504.515] {Default Queue} -> wl_surface#2567.commit() -[2618504.521] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) -[2618504.526] {Default Queue} -> wl_surface#2567.commit() -[2618504.532] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) -[2618504.536] {Default Queue} -> wl_surface#2631.commit() -[2618505.597] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) -[2618505.603] {Default Queue} -> wl_surface#2631.commit() -[2618505.613] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) -[2618505.618] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) -[2618505.623] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618505.628] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618505.635] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) -[2618505.639] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) -[2618505.644] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618505.648] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618505.653] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) -[2618505.657] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) -[2618505.661] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618505.665] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618505.670] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) -[2618505.675] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) -[2618505.679] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618505.683] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618505.688] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) -[2618505.692] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) -[2618505.696] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618505.700] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618505.707] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) -[2618505.711] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) -[2618505.716] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618505.720] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618505.725] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) -[2618505.729] {Default Queue} -> wl_surface#2631.commit() -[2618505.733] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) -[2618505.737] {Default Queue} -> wl_surface#2631.commit() -[2618505.742] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) -[2618505.746] {Default Queue} -> wl_surface#2631.commit() -[2618505.752] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) -[2618505.756] {Default Queue} -> wl_surface#2599.commit() -[2618506.818] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) -[2618506.824] {Default Queue} -> wl_surface#2599.commit() -[2618506.831] {Default Queue} -> wl_region#2623.subtract(0, 0, 19, 48) -[2618506.836] {Default Queue} -> wl_region#2623.add(-20, -49, 19, 48) -[2618506.840] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) -[2618506.847] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) -[2618506.855] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) -[2618506.859] {Default Queue} -> wl_surface#2599.commit() -[2618506.870] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) -[2618506.874] {Default Queue} -> wl_surface#2599.commit() -[2618506.880] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) -[2618506.884] {Default Queue} -> wl_surface#2599.commit() -[2618506.889] {Default Queue} -> wl_region#2559.subtract(0, 0, 2, 2) -[2618506.895] {Default Queue} -> wl_region#2591.subtract(0, 0, 19, 48) -[2618506.900] {Default Queue} -> wl_region#2591.add(-20, -49, 19, 48) -[2618506.904] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2618506.908] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2618507.017] {Default Queue} -> wl_region#2591.subtract(0, 0, 19, 48) -[2618507.023] {Default Queue} -> wl_region#2591.add(-20, -49, 19, 48) -[2618507.027] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2618507.032] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2618507.037] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618507.042] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618507.128] {Default Queue} -> wl_region#2591.subtract(0, 0, 19, 48) -[2618507.134] {Default Queue} -> wl_region#2591.add(-20, -49, 19, 48) -[2618507.138] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2618507.142] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2618507.147] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618507.151] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618507.157] {Default Queue} -> wl_region#2623.subtract(0, 0, 19, 48) -[2618507.162] {Default Queue} -> wl_region#2623.add(-20, -49, 19, 48) -[2618507.166] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) -[2618507.170] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) -[2618507.175] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) -[2618507.180] {Default Queue} -> wl_region#2559.subtract(0, 0, 5, 5) -[2618507.184] {Default Queue} -> wl_region#2559.add(0, 0, 0, 0) -[2618507.189] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) -[2618507.192] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) -[2618507.197] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618507.202] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) -[2618507.206] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) -[2618507.210] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) -[2618507.225] {Default Queue} -> wl_buffer#2557.destroy() -[2618507.232] {Default Queue} -> wl_buffer#2558.destroy() -[2618507.236] {Default Queue} -> wl_shm_pool#2555.destroy() -[2618507.240] {Default Queue} -> wl_shm_pool#2556.destroy() -[2618507.286] {Default Queue} -> wl_shm#2543.create_pool(new id wl_shm_pool#3726, fd 583, 16) -[2618507.293] {Default Queue} -> wl_shm#2543.create_pool(new id wl_shm_pool#3727, fd 584, 16) -[2618507.298] {Default Queue} -> wl_shm_pool#3726.create_buffer(new id wl_buffer#3728, 0, 2, 2, 8, 0) -[2618507.303] {Default Queue} -> wl_shm_pool#3727.create_buffer(new id wl_buffer#3729, 0, 2, 2, 8, 0) -[2618507.313] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) -[2618507.317] {Default Queue} -> wl_surface#2535.commit() -[2618507.323] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) -[2618507.327] {Default Queue} -> wl_surface#2535.commit() -[2618507.334] {Default Queue} -> wl_region#2559.subtract(0, 0, 22, 51) -[2618507.338] {Default Queue} -> wl_region#2559.add(-20, -49, 19, 48) -[2618507.343] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) -[2618507.347] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) -[2618507.352] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) -[2618507.360] {Default Queue} -> wl_surface#2535.commit() -[2618507.369] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) -[2618507.373] {Default Queue} -> wl_surface#2535.commit() -[2618508.439] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) -[2618508.446] {Default Queue} -> wl_surface#2535.commit() -[2618508.453] {Default Queue} -> wl_region#2559.subtract(0, 0, 22, 51) -[2618508.458] {Default Queue} -> wl_region#2559.add(-20, -49, 19, 48) -[2618508.462] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) -[2618508.466] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) -[2618508.471] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) -[2618508.476] {Default Queue} -> wl_surface#2535.commit() -[2618508.480] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) -[2618508.484] {Default Queue} -> wl_surface#2535.commit() -[2618508.490] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) -[2618508.494] {Default Queue} -> wl_surface#2535.commit() -[2618508.499] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) -[2618508.505] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) -[2618508.509] {Default Queue} -> wl_surface#2508.commit() -[2618509.571] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) -[2618509.576] {Default Queue} -> wl_surface#2508.commit() -[2618509.584] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) -[2618509.589] {Default Queue} -> wl_region#2527.add(0, 0, 2, 2) -[2618509.593] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618509.597] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618509.605] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) -[2618509.609] {Default Queue} -> wl_region#2527.add(0, 0, 2, 2) -[2618509.613] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618509.617] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618509.622] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) -[2618509.627] {Default Queue} -> wl_region#2527.add(0, 0, 2, 2) -[2618509.631] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618509.635] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618509.641] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) -[2618509.645] {Default Queue} -> wl_region#2527.add(0, 0, 2, 2) -[2618509.649] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618509.653] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618509.660] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) -[2618509.664] {Default Queue} -> wl_region#2527.add(0, 0, 2, 2) -[2618509.668] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618509.673] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618509.677] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) -[2618509.682] {Default Queue} -> wl_surface#2508.commit() -[2618509.686] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) -[2618509.690] {Default Queue} -> wl_surface#2508.commit() -[2618509.696] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) -[2618509.700] {Default Queue} -> wl_surface#2508.commit() -[2618509.707] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) -[2618509.711] {Default Queue} -> wl_surface#2727.commit() -[2618510.772] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) -[2618510.778] {Default Queue} -> wl_surface#2727.commit() -[2618510.786] {Default Queue} -> wl_region#2751.subtract(0, 0, 19, 48) -[2618510.791] {Default Queue} -> wl_region#2751.add(-20, -49, 19, 48) -[2618510.795] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2618510.799] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2618510.895] {Default Queue} -> wl_region#2751.subtract(0, 0, 19, 48) -[2618510.901] {Default Queue} -> wl_region#2751.add(-20, -49, 19, 48) -[2618510.905] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2618510.913] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2618510.922] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618510.926] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618510.994] {Default Queue} -> wl_region#2751.subtract(0, 0, 19, 48) -[2618510.999] {Default Queue} -> wl_region#2751.add(-20, -49, 19, 48) -[2618511.003] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2618511.007] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2618511.012] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618511.017] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618511.022] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) -[2618511.027] {Default Queue} -> wl_surface#2727.commit() -[2618511.031] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) -[2618511.035] {Default Queue} -> wl_surface#2727.commit() -[2618511.041] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) -[2618511.046] {Default Queue} -> wl_surface#2727.commit() -[2618511.052] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) -[2618511.057] {Default Queue} -> wl_surface#2791.commit() -[2618512.118] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) -[2618512.125] {Default Queue} -> wl_surface#2791.commit() -[2618512.135] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618512.139] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618512.144] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618512.149] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618512.157] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618512.161] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618512.167] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618512.171] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618512.176] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618512.180] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618512.184] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618512.188] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618512.194] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618512.199] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618512.203] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618512.207] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618512.211] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618512.216] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618512.220] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618512.224] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618512.230] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618512.235] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618512.239] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618512.243] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618512.248] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618512.252] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618512.256] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618512.260] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618512.265] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618512.270] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618512.274] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618512.278] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618512.282] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618512.287] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618512.291] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618512.299] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618512.312] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618512.317] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618512.322] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618512.326] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618512.331] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618512.335] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618512.339] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618512.343] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618512.348] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618512.352] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618512.357] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618512.361] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618512.365] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618512.370] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618512.374] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618512.379] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618512.383] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) -[2618512.387] {Default Queue} -> wl_surface#2791.commit() -[2618512.392] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) -[2618512.396] {Default Queue} -> wl_surface#2791.commit() -[2618512.402] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) -[2618512.406] {Default Queue} -> wl_surface#2791.commit() -[2618512.412] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) -[2618512.416] {Default Queue} -> wl_surface#2759.commit() -[2618513.477] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) -[2618513.483] {Default Queue} -> wl_surface#2759.commit() -[2618513.491] {Default Queue} -> wl_region#2783.subtract(0, 0, 19, 48) -[2618513.495] {Default Queue} -> wl_region#2783.add(-20, -49, 19, 48) -[2618513.499] {Default Queue} -> wl_surface#2759.set_opaque_region(wl_region#2784) -[2618513.503] {Default Queue} -> wl_surface#2759.set_input_region(wl_region#2783) -[2618513.508] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) -[2618513.513] {Default Queue} -> wl_surface#2759.commit() -[2618513.517] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) -[2618513.521] {Default Queue} -> wl_surface#2759.commit() -[2618513.527] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) -[2618513.531] {Default Queue} -> wl_surface#2759.commit() -[2618513.536] {Default Queue} -> wl_region#2719.subtract(0, 0, 2, 2) -[2618513.542] {Default Queue} -> wl_region#2751.subtract(0, 0, 19, 48) -[2618513.546] {Default Queue} -> wl_region#2751.add(-20, -49, 19, 48) -[2618513.550] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2618513.554] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2618513.635] {Default Queue} -> wl_region#2751.subtract(0, 0, 19, 48) -[2618513.640] {Default Queue} -> wl_region#2751.add(-20, -49, 19, 48) -[2618513.644] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2618513.648] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2618513.655] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618513.659] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618513.721] {Default Queue} -> wl_region#2751.subtract(0, 0, 19, 48) -[2618513.726] {Default Queue} -> wl_region#2751.add(-20, -49, 19, 48) -[2618513.730] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2618513.734] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2618513.739] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618513.744] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618513.749] {Default Queue} -> wl_region#2783.subtract(0, 0, 19, 48) -[2618513.759] {Default Queue} -> wl_region#2783.add(-20, -49, 19, 48) -[2618513.765] {Default Queue} -> wl_surface#2759.set_opaque_region(wl_region#2784) -[2618513.769] {Default Queue} -> wl_surface#2759.set_input_region(wl_region#2783) -[2618513.774] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) -[2618513.779] {Default Queue} -> wl_region#2719.subtract(0, 0, 5, 5) -[2618513.783] {Default Queue} -> wl_region#2719.add(0, 0, 0, 0) -[2618513.787] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) -[2618513.791] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) -[2618513.795] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618513.800] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) -[2618513.804] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) -[2618513.808] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) -[2618513.822] {Default Queue} -> wl_buffer#2717.destroy() -[2618513.827] {Default Queue} -> wl_buffer#2718.destroy() -[2618513.831] {Default Queue} -> wl_shm_pool#2715.destroy() -[2618513.835] {Default Queue} -> wl_shm_pool#2716.destroy() -[2618513.882] {Default Queue} -> wl_shm#2703.create_pool(new id wl_shm_pool#3730, fd 583, 16) -[2618513.888] {Default Queue} -> wl_shm#2703.create_pool(new id wl_shm_pool#3731, fd 584, 16) -[2618513.893] {Default Queue} -> wl_shm_pool#3730.create_buffer(new id wl_buffer#3732, 0, 2, 2, 8, 0) -[2618513.898] {Default Queue} -> wl_shm_pool#3731.create_buffer(new id wl_buffer#3733, 0, 2, 2, 8, 0) -[2618513.905] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) -[2618513.909] {Default Queue} -> wl_surface#2695.commit() -[2618513.915] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) -[2618513.919] {Default Queue} -> wl_surface#2695.commit() -[2618513.927] {Default Queue} -> wl_region#2719.subtract(0, 0, 22, 51) -[2618513.931] {Default Queue} -> wl_region#2719.add(-20, -49, 19, 48) -[2618513.935] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) -[2618513.940] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) -[2618513.944] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) -[2618513.949] {Default Queue} -> wl_surface#2695.commit() -[2618513.956] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) -[2618513.960] {Default Queue} -> wl_surface#2695.commit() -[2618515.024] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) -[2618515.029] {Default Queue} -> wl_surface#2695.commit() -[2618515.035] {Default Queue} -> wl_region#2719.subtract(0, 0, 22, 51) -[2618515.039] {Default Queue} -> wl_region#2719.add(-20, -49, 19, 48) -[2618515.044] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) -[2618515.047] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) -[2618515.052] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) -[2618515.056] {Default Queue} -> wl_surface#2695.commit() -[2618515.060] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) -[2618515.065] {Default Queue} -> wl_surface#2695.commit() -[2618515.071] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) -[2618515.075] {Default Queue} -> wl_surface#2695.commit() -[2618515.080] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) -[2618515.086] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) -[2618515.090] {Default Queue} -> wl_surface#2663.commit() -[2618516.150] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) -[2618516.156] {Default Queue} -> wl_surface#2663.commit() -[2618516.164] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) -[2618516.169] {Default Queue} -> wl_region#2687.add(0, 0, 2, 2) -[2618516.173] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618516.177] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618516.184] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) -[2618516.189] {Default Queue} -> wl_region#2687.add(0, 0, 2, 2) -[2618516.193] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618516.211] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618516.219] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) -[2618516.224] {Default Queue} -> wl_region#2687.add(0, 0, 2, 2) -[2618516.228] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618516.233] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618516.238] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) -[2618516.242] {Default Queue} -> wl_region#2687.add(0, 0, 2, 2) -[2618516.247] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618516.250] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618516.257] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) -[2618516.261] {Default Queue} -> wl_region#2687.add(0, 0, 2, 2) -[2618516.266] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618516.270] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618516.274] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) -[2618516.279] {Default Queue} -> wl_surface#2663.commit() -[2618516.283] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) -[2618516.287] {Default Queue} -> wl_surface#2663.commit() -[2618516.293] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) -[2618516.297] {Default Queue} -> wl_surface#2663.commit() -[2618516.306] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) -[2618516.311] {Default Queue} -> wl_surface#2887.commit() -[2618517.372] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) -[2618517.379] {Default Queue} -> wl_surface#2887.commit() -[2618517.390] {Default Queue} -> wl_region#2911.subtract(0, 0, 19, 48) -[2618517.395] {Default Queue} -> wl_region#2911.add(-20, -49, 19, 48) -[2618517.399] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2618517.403] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2618517.510] {Default Queue} -> wl_region#2911.subtract(0, 0, 19, 48) -[2618517.516] {Default Queue} -> wl_region#2911.add(-20, -49, 19, 48) -[2618517.520] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2618517.524] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2618517.530] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618517.535] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618517.612] {Default Queue} -> wl_region#2911.subtract(0, 0, 19, 48) -[2618517.617] {Default Queue} -> wl_region#2911.add(-20, -49, 19, 48) -[2618517.621] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2618517.626] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2618517.631] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618517.636] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618517.641] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) -[2618517.645] {Default Queue} -> wl_surface#2887.commit() -[2618517.650] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) -[2618517.655] {Default Queue} -> wl_surface#2887.commit() -[2618517.661] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) -[2618517.665] {Default Queue} -> wl_surface#2887.commit() -[2618517.672] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) -[2618517.677] {Default Queue} -> wl_surface#2951.commit() -[2618518.737] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) -[2618518.743] {Default Queue} -> wl_surface#2951.commit() -[2618518.750] {Default Queue} -> wl_region#2975.subtract(0, 0, 19, 48) -[2618518.755] {Default Queue} -> wl_region#2975.add(-20, -49, 19, 48) -[2618518.759] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618518.763] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618518.770] {Default Queue} -> wl_region#2975.subtract(0, 0, 19, 48) -[2618518.774] {Default Queue} -> wl_region#2975.add(-20, -49, 19, 48) -[2618518.778] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618518.786] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618518.793] {Default Queue} -> wl_region#2975.subtract(0, 0, 19, 48) -[2618518.798] {Default Queue} -> wl_region#2975.add(-20, -49, 19, 48) -[2618518.802] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618518.806] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618518.811] {Default Queue} -> wl_region#2975.subtract(0, 0, 19, 48) -[2618518.816] {Default Queue} -> wl_region#2975.add(-20, -49, 19, 48) -[2618518.820] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618518.824] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618518.829] {Default Queue} -> wl_region#2975.subtract(0, 0, 19, 48) -[2618518.833] {Default Queue} -> wl_region#2975.add(-20, -49, 19, 48) -[2618518.837] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618518.841] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618518.846] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) -[2618518.850] {Default Queue} -> wl_surface#2951.commit() -[2618518.854] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) -[2618518.858] {Default Queue} -> wl_surface#2951.commit() -[2618518.868] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) -[2618518.873] {Default Queue} -> wl_surface#2951.commit() -[2618518.879] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) -[2618518.883] {Default Queue} -> wl_surface#2919.commit() -[2618519.944] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) -[2618519.950] {Default Queue} -> wl_surface#2919.commit() -[2618519.956] {Default Queue} -> wl_region#2943.subtract(0, 0, 19, 48) -[2618519.960] {Default Queue} -> wl_region#2943.add(-20, -49, 19, 48) -[2618519.965] {Default Queue} -> wl_surface#2919.set_opaque_region(wl_region#2944) -[2618519.969] {Default Queue} -> wl_surface#2919.set_input_region(wl_region#2943) -[2618519.974] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) -[2618519.978] {Default Queue} -> wl_surface#2919.commit() -[2618519.982] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) -[2618519.986] {Default Queue} -> wl_surface#2919.commit() -[2618519.992] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) -[2618519.996] {Default Queue} -> wl_surface#2919.commit() -[2618520.001] {Default Queue} -> wl_region#2879.subtract(0, 0, 2, 2) -[2618520.007] {Default Queue} -> wl_region#2911.subtract(0, 0, 19, 48) -[2618520.012] {Default Queue} -> wl_region#2911.add(-20, -49, 19, 48) -[2618520.016] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2618520.020] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2618520.109] {Default Queue} -> wl_region#2911.subtract(0, 0, 19, 48) -[2618520.114] {Default Queue} -> wl_region#2911.add(-20, -49, 19, 48) -[2618520.118] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2618520.123] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2618520.129] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618520.134] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618520.205] {Default Queue} -> wl_region#2911.subtract(0, 0, 19, 48) -[2618520.210] {Default Queue} -> wl_region#2911.add(-20, -49, 19, 48) -[2618520.215] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2618520.219] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2618520.224] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618520.229] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618520.235] {Default Queue} -> wl_region#2943.subtract(0, 0, 19, 48) -[2618520.239] {Default Queue} -> wl_region#2943.add(-20, -49, 19, 48) -[2618520.243] {Default Queue} -> wl_surface#2919.set_opaque_region(wl_region#2944) -[2618520.247] {Default Queue} -> wl_surface#2919.set_input_region(wl_region#2943) -[2618520.252] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) -[2618520.260] {Default Queue} -> wl_region#2879.subtract(0, 0, 5, 5) -[2618520.266] {Default Queue} -> wl_region#2879.add(0, 0, 0, 0) -[2618520.271] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) -[2618520.275] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) -[2618520.279] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618520.283] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) -[2618520.288] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) -[2618520.292] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) -[2618520.305] {Default Queue} -> wl_buffer#2877.destroy() -[2618520.310] {Default Queue} -> wl_buffer#2878.destroy() -[2618520.315] {Default Queue} -> wl_shm_pool#2875.destroy() -[2618520.319] {Default Queue} -> wl_shm_pool#2876.destroy() -[2618520.359] {Default Queue} -> wl_shm#2863.create_pool(new id wl_shm_pool#3734, fd 583, 16) -[2618520.366] {Default Queue} -> wl_shm#2863.create_pool(new id wl_shm_pool#3735, fd 584, 16) -[2618520.371] {Default Queue} -> wl_shm_pool#3734.create_buffer(new id wl_buffer#3736, 0, 2, 2, 8, 0) -[2618520.378] {Default Queue} -> wl_shm_pool#3735.create_buffer(new id wl_buffer#3737, 0, 2, 2, 8, 0) -[2618520.385] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) -[2618520.390] {Default Queue} -> wl_surface#2855.commit() -[2618520.395] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) -[2618520.399] {Default Queue} -> wl_surface#2855.commit() -[2618520.406] {Default Queue} -> wl_region#2879.subtract(0, 0, 22, 51) -[2618520.410] {Default Queue} -> wl_region#2879.add(-20, -49, 19, 48) -[2618520.415] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) -[2618520.419] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) -[2618520.424] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) -[2618520.428] {Default Queue} -> wl_surface#2855.commit() -[2618520.435] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) -[2618520.439] {Default Queue} -> wl_surface#2855.commit() -[2618521.502] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) -[2618521.509] {Default Queue} -> wl_surface#2855.commit() -[2618521.515] {Default Queue} -> wl_region#2879.subtract(0, 0, 22, 51) -[2618521.519] {Default Queue} -> wl_region#2879.add(-20, -49, 19, 48) -[2618521.523] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) -[2618521.528] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) -[2618521.533] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) -[2618521.537] {Default Queue} -> wl_surface#2855.commit() -[2618521.541] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) -[2618521.545] {Default Queue} -> wl_surface#2855.commit() -[2618521.551] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) -[2618521.556] {Default Queue} -> wl_surface#2855.commit() -[2618521.560] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) -[2618521.566] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) -[2618521.570] {Default Queue} -> wl_surface#2823.commit() -[2618522.631] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) -[2618522.638] {Default Queue} -> wl_surface#2823.commit() -[2618522.646] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) -[2618522.651] {Default Queue} -> wl_region#2847.add(0, 0, 2, 2) -[2618522.655] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618522.659] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618522.667] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) -[2618522.674] {Default Queue} -> wl_region#2847.add(0, 0, 2, 2) -[2618522.678] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618522.682] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618522.688] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) -[2618522.693] {Default Queue} -> wl_region#2847.add(0, 0, 2, 2) -[2618522.697] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618522.705] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618522.713] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) -[2618522.717] {Default Queue} -> wl_region#2847.add(0, 0, 2, 2) -[2618522.721] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618522.725] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618522.732] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) -[2618522.736] {Default Queue} -> wl_region#2847.add(0, 0, 2, 2) -[2618522.740] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618522.744] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618522.749] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) -[2618522.753] {Default Queue} -> wl_surface#2823.commit() -[2618522.757] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) -[2618522.762] {Default Queue} -> wl_surface#2823.commit() -[2618522.768] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) -[2618522.772] {Default Queue} -> wl_surface#2823.commit() -[2618522.776] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) -[2618522.781] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) -[2618522.786] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) -[2618522.790] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) -[2618522.794] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) -[2618522.800] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) -[2618522.805] {Default Queue} -> wl_surface#2087.commit() -[2618523.870] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) -[2618523.876] {Default Queue} -> wl_surface#2087.commit() -[2618523.882] {Default Queue} -> wl_region#2111.subtract(0, 0, 2, 2) -[2618523.887] {Default Queue} -> wl_region#2111.add(0, 0, 2, 2) -[2618523.891] {Default Queue} -> wl_surface#2087.set_opaque_region(wl_region#2112) -[2618523.895] {Default Queue} -> wl_surface#2087.set_input_region(wl_region#2111) -[2618523.901] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) -[2618523.905] {Default Queue} -> wl_surface#2087.commit() -[2618523.910] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) -[2618523.914] {Default Queue} -> wl_surface#2087.commit() -[2618523.919] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) -[2618523.924] {Default Queue} -> wl_surface#2087.commit() -[2618523.930] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) -[2618523.935] {Default Queue} -> wl_surface#3079.commit() -[2618524.996] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) -[2618525.002] {Default Queue} -> wl_surface#3079.commit() -[2618525.011] {Default Queue} -> wl_region#3103.subtract(0, 0, 19, 48) -[2618525.016] {Default Queue} -> wl_region#3103.add(-20, -49, 19, 48) -[2618525.020] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2618525.024] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2618525.112] {Default Queue} -> wl_region#3103.subtract(0, 0, 19, 48) -[2618525.118] {Default Queue} -> wl_region#3103.add(-20, -49, 19, 48) -[2618525.122] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2618525.126] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2618525.132] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618525.137] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618525.203] {Default Queue} -> wl_region#3103.subtract(0, 0, 19, 48) -[2618525.209] {Default Queue} -> wl_region#3103.add(-20, -49, 19, 48) -[2618525.213] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2618525.217] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2618525.222] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618525.226] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618525.231] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) -[2618525.236] {Default Queue} -> wl_surface#3079.commit() -[2618525.243] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) -[2618525.250] {Default Queue} -> wl_surface#3079.commit() -[2618525.256] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) -[2618525.260] {Default Queue} -> wl_surface#3079.commit() -[2618525.267] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618525.271] {Default Queue} -> wl_surface#3175.commit() -[2618526.332] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618526.337] {Default Queue} -> wl_surface#3175.commit() -[2618526.345] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618526.350] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618526.354] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618526.358] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618526.366] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618526.372] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618526.377] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618526.381] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618526.386] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618526.390] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618526.394] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618526.398] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618526.403] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618526.407] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618526.411] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618526.415] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618526.420] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618526.424] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618526.428] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618526.432] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618526.438] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618526.443] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618526.447] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618526.451] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618526.456] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618526.460] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618526.464] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618526.468] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618526.473] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618526.477] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618526.481] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618526.485] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618526.490] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618526.495] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618526.499] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618526.503] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618526.513] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618526.518] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618526.522] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618526.526] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618526.531] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618526.535] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618526.539] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618526.543] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618526.548] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618526.552] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618526.560] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618526.566] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618526.571] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618526.575] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618526.579] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618526.584] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618526.588] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618526.592] {Default Queue} -> wl_surface#3175.commit() -[2618526.597] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618526.601] {Default Queue} -> wl_surface#3175.commit() -[2618526.606] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618526.611] {Default Queue} -> wl_surface#3175.commit() -[2618526.615] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618526.620] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618526.625] {Default Queue} -> wl_region#3231.add(0, 0, 0, 0) -[2618526.629] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618526.633] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618526.637] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618526.651] {Default Queue} -> wl_buffer#3229.destroy() -[2618526.656] {Default Queue} -> wl_buffer#3230.destroy() -[2618526.661] {Default Queue} -> wl_shm_pool#3227.destroy() -[2618526.665] {Default Queue} -> wl_shm_pool#3228.destroy() -[2618526.705] {Default Queue} -> wl_shm#3215.create_pool(new id wl_shm_pool#3738, fd 583, 16) -[2618526.712] {Default Queue} -> wl_shm#3215.create_pool(new id wl_shm_pool#3739, fd 584, 16) -[2618526.717] {Default Queue} -> wl_shm_pool#3738.create_buffer(new id wl_buffer#3740, 0, 2, 2, 8, 0) -[2618526.721] {Default Queue} -> wl_shm_pool#3739.create_buffer(new id wl_buffer#3741, 0, 2, 2, 8, 0) -[2618526.728] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) -[2618526.733] {Default Queue} -> wl_surface#3207.commit() -[2618526.739] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) -[2618526.743] {Default Queue} -> wl_surface#3207.commit() -[2618526.752] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618526.758] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618526.763] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618526.767] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618526.772] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618526.777] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618526.781] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618526.785] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618526.790] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618526.794] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618526.799] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618526.803] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618526.808] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618526.812] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618526.816] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618526.821] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618526.827] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618526.832] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618526.836] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618526.840] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618526.850] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618526.854] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618526.858] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618526.863] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618526.876] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618526.884] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618526.888] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618526.894] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618526.898] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618526.903] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618526.907] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618526.911] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618526.915] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618526.920] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618526.924] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618526.929] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618526.933] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618526.938] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618526.942] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618526.946] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618526.960] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618526.965] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618526.969] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618526.973] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618526.982] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618526.990] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618526.994] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618526.998] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618527.005] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618527.009] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618527.014] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618527.018] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618527.024] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618527.029] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618527.033] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618527.037] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618527.041] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618527.046] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618527.050] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618527.054] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618527.059] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618527.063] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618527.067] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618527.071] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618527.076] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618527.080] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618527.085] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618527.089] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618527.094] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618527.098] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618527.102] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618527.106] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618527.112] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618527.117] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618527.121] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618527.126] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618527.130] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618527.138] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618527.144] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618527.148] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618527.153] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618527.157] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618527.161] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618527.165] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618527.170] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618527.174] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618527.178] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618527.182] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618527.223] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618527.229] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618527.233] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618527.238] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618527.243] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618527.248] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618527.260] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618527.264] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618527.269] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618527.273] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618527.279] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618527.283] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618527.288] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618527.291] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618527.326] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618527.332] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618527.336] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618527.340] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618527.345] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618527.349] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618527.358] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618527.362] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618527.367] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618527.370] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618527.375] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618527.380] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618527.384] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618527.388] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618527.392] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618527.397] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618527.401] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618527.405] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618527.410] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618527.414] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618527.418] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618527.422] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618527.428] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) -[2618527.432] {Default Queue} -> wl_surface#3207.commit() -[2618527.438] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) -[2618527.443] {Default Queue} -> wl_surface#3207.commit() -[2618528.507] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) -[2618528.513] {Default Queue} -> wl_surface#3207.commit() -[2618528.521] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618528.529] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618528.535] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618528.539] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618528.544] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618528.548] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618528.553] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618528.556] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618528.561] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618528.565] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618528.569] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618528.574] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618528.578] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618528.583] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618528.587] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618528.591] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618528.598] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618528.602] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618528.606] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618528.610] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618528.620] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618528.625] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618528.630] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618528.634] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618528.638] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618528.643] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618528.647] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618528.651] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618528.656] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618528.661] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618528.665] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618528.669] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618528.673] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618528.678] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618528.682] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618528.686] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618528.690] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618528.695] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618528.699] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618528.703] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618528.715] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618528.720] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618528.724] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618528.728] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618528.734] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618528.738] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618528.743] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618528.747] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618528.754] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618528.758] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618528.762] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618528.766] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618528.773] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618528.777] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618528.784] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618528.790] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618528.794] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618528.799] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618528.803] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618528.807] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618528.811] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618528.816] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618528.820] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618528.825] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618528.829] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618528.833] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618528.838] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618528.842] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618528.847] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618528.851] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618528.855] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618528.859] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618528.866] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618528.875] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618528.879] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618528.883] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618528.911] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618528.934] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618528.941] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618528.946] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618528.951] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618528.956] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618528.961] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618528.965] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618528.970] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618528.975] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618528.979] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618528.983] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618529.026] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618529.032] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618529.036] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618529.040] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618529.047] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618529.051] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618529.063] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618529.067] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618529.072] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618529.076] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618529.083] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618529.088] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618529.092] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618529.096] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618529.131] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618529.136] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618529.140] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618529.145] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618529.150] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618529.159] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618529.172] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618529.177] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618529.182] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618529.186] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618529.190] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618529.195] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618529.199] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618529.204] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618529.208] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618529.213] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618529.217] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618529.221] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618529.226] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618529.230] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618529.234] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618529.238] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618529.243] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) -[2618529.248] {Default Queue} -> wl_surface#3207.commit() -[2618529.252] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) -[2618529.257] {Default Queue} -> wl_surface#3207.commit() -[2618529.264] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) -[2618529.269] {Default Queue} -> wl_surface#3207.commit() -[2618529.276] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) -[2618529.280] {Default Queue} -> wl_surface#3143.commit() -[2618530.344] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) -[2618530.351] {Default Queue} -> wl_surface#3143.commit() -[2618530.359] {Default Queue} -> wl_region#3167.subtract(0, 0, 19, 48) -[2618530.363] {Default Queue} -> wl_region#3167.add(-20, -49, 19, 48) -[2618530.368] {Default Queue} -> wl_surface#3143.set_opaque_region(wl_region#3168) -[2618530.372] {Default Queue} -> wl_surface#3143.set_input_region(wl_region#3167) -[2618530.377] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) -[2618530.382] {Default Queue} -> wl_surface#3143.commit() -[2618530.386] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) -[2618530.391] {Default Queue} -> wl_surface#3143.commit() -[2618530.396] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) -[2618530.402] {Default Queue} -> wl_surface#3143.commit() -[2618530.408] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) -[2618530.413] {Default Queue} -> wl_surface#3111.commit() -[2618531.475] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) -[2618531.483] {Default Queue} -> wl_surface#3111.commit() -[2618531.491] {Default Queue} -> wl_region#3135.subtract(0, 0, 19, 48) -[2618531.496] {Default Queue} -> wl_region#3135.add(-20, -49, 19, 48) -[2618531.500] {Default Queue} -> wl_surface#3111.set_opaque_region(wl_region#3136) -[2618531.504] {Default Queue} -> wl_surface#3111.set_input_region(wl_region#3135) -[2618531.510] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) -[2618531.514] {Default Queue} -> wl_surface#3111.commit() -[2618531.518] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) -[2618531.523] {Default Queue} -> wl_surface#3111.commit() -[2618531.529] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) -[2618531.533] {Default Queue} -> wl_surface#3111.commit() -[2618531.537] {Default Queue} -> wl_region#3071.subtract(0, 0, 2, 2) -[2618531.544] {Default Queue} -> wl_region#3103.subtract(0, 0, 19, 48) -[2618531.548] {Default Queue} -> wl_region#3103.add(-20, -49, 19, 48) -[2618531.553] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2618531.557] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2618531.651] {Default Queue} -> wl_region#3103.subtract(0, 0, 19, 48) -[2618531.659] {Default Queue} -> wl_region#3103.add(-20, -49, 19, 48) -[2618531.663] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2618531.667] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2618531.674] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618531.679] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618531.741] {Default Queue} -> wl_region#3103.subtract(0, 0, 19, 48) -[2618531.749] {Default Queue} -> wl_region#3103.add(-20, -49, 19, 48) -[2618531.754] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2618531.758] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2618531.763] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618531.768] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618531.774] {Default Queue} -> wl_region#3135.subtract(0, 0, 19, 48) -[2618531.778] {Default Queue} -> wl_region#3135.add(-20, -49, 19, 48) -[2618531.782] {Default Queue} -> wl_surface#3111.set_opaque_region(wl_region#3136) -[2618531.786] {Default Queue} -> wl_surface#3111.set_input_region(wl_region#3135) -[2618531.791] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) -[2618531.796] {Default Queue} -> wl_region#3071.subtract(0, 0, 5, 5) -[2618531.800] {Default Queue} -> wl_region#3071.add(0, 0, 0, 0) -[2618531.804] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) -[2618531.808] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) -[2618531.812] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618531.817] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618531.822] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618531.826] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) -[2618531.830] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) -[2618531.834] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) -[2618531.848] {Default Queue} -> wl_buffer#3069.destroy() -[2618531.853] {Default Queue} -> wl_buffer#3070.destroy() -[2618531.858] {Default Queue} -> wl_shm_pool#3067.destroy() -[2618531.866] {Default Queue} -> wl_shm_pool#3068.destroy() -[2618531.911] {Default Queue} -> wl_shm#3055.create_pool(new id wl_shm_pool#3742, fd 583, 16) -[2618531.918] {Default Queue} -> wl_shm#3055.create_pool(new id wl_shm_pool#3743, fd 584, 16) -[2618531.923] {Default Queue} -> wl_shm_pool#3742.create_buffer(new id wl_buffer#3744, 0, 2, 2, 8, 0) -[2618531.928] {Default Queue} -> wl_shm_pool#3743.create_buffer(new id wl_buffer#3745, 0, 2, 2, 8, 0) -[2618531.935] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) -[2618531.940] {Default Queue} -> wl_surface#3047.commit() -[2618531.945] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) -[2618531.949] {Default Queue} -> wl_surface#3047.commit() -[2618531.956] {Default Queue} -> wl_region#3071.subtract(0, 0, 22, 51) -[2618531.961] {Default Queue} -> wl_region#3071.add(-20, -49, 19, 48) -[2618531.965] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) -[2618531.969] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) -[2618531.974] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) -[2618531.978] {Default Queue} -> wl_surface#3047.commit() -[2618531.985] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) -[2618531.989] {Default Queue} -> wl_surface#3047.commit() -[2618533.055] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) -[2618533.063] {Default Queue} -> wl_surface#3047.commit() -[2618533.071] {Default Queue} -> wl_region#3071.subtract(0, 0, 22, 51) -[2618533.076] {Default Queue} -> wl_region#3071.add(-20, -49, 19, 48) -[2618533.081] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) -[2618533.085] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) -[2618533.090] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) -[2618533.094] {Default Queue} -> wl_surface#3047.commit() -[2618533.103] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) -[2618533.110] {Default Queue} -> wl_surface#3047.commit() -[2618533.116] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) -[2618533.120] {Default Queue} -> wl_surface#3047.commit() -[2618533.125] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) -[2618533.131] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) -[2618533.136] {Default Queue} -> wl_surface#3015.commit() -[2618534.197] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) -[2618534.203] {Default Queue} -> wl_surface#3015.commit() -[2618534.210] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) -[2618534.215] {Default Queue} -> wl_region#3039.add(0, 0, 2, 2) -[2618534.219] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618534.223] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618534.230] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) -[2618534.235] {Default Queue} -> wl_region#3039.add(0, 0, 2, 2) -[2618534.239] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618534.243] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618534.248] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) -[2618534.253] {Default Queue} -> wl_region#3039.add(0, 0, 2, 2) -[2618534.257] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618534.261] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618534.267] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) -[2618534.271] {Default Queue} -> wl_region#3039.add(0, 0, 2, 2) -[2618534.276] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618534.280] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618534.286] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) -[2618534.291] {Default Queue} -> wl_region#3039.add(0, 0, 2, 2) -[2618534.295] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618534.299] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618534.304] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) -[2618534.308] {Default Queue} -> wl_surface#3015.commit() -[2618534.312] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) -[2618534.316] {Default Queue} -> wl_surface#3015.commit() -[2618534.322] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) -[2618534.326] {Default Queue} -> wl_surface#3015.commit() -[2618534.333] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) -[2618534.337] {Default Queue} -> wl_surface#3303.commit() -[2618535.398] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) -[2618535.404] {Default Queue} -> wl_surface#3303.commit() -[2618535.412] {Default Queue} -> wl_region#3327.subtract(0, 0, 19, 48) -[2618535.417] {Default Queue} -> wl_region#3327.add(-20, -49, 19, 48) -[2618535.421] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2618535.426] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2618535.517] {Default Queue} -> wl_region#3327.subtract(0, 0, 19, 48) -[2618535.522] {Default Queue} -> wl_region#3327.add(-20, -49, 19, 48) -[2618535.527] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2618535.531] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2618535.537] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618535.542] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618535.603] {Default Queue} -> wl_region#3327.subtract(0, 0, 19, 48) -[2618535.609] {Default Queue} -> wl_region#3327.add(-20, -49, 19, 48) -[2618535.613] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2618535.617] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2618535.622] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618535.626] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618535.631] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) -[2618535.640] {Default Queue} -> wl_surface#3303.commit() -[2618535.646] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) -[2618535.650] {Default Queue} -> wl_surface#3303.commit() -[2618535.657] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) -[2618535.661] {Default Queue} -> wl_surface#3303.commit() -[2618535.666] {Default Queue} -> wl_region#3423.subtract(0, 0, 2, 2) -[2618535.671] {Default Queue} -> wl_region#3423.subtract(0, 0, 16, 2) -[2618535.675] {Default Queue} -> wl_region#3423.add(14, 0, 0, 0) -[2618535.680] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618535.684] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618535.688] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2618535.702] {Default Queue} -> wl_buffer#3421.destroy() -[2618535.707] {Default Queue} -> wl_buffer#3422.destroy() -[2618535.711] {Default Queue} -> wl_shm_pool#3419.destroy() -[2618535.716] {Default Queue} -> wl_shm_pool#3420.destroy() -[2618535.759] {Default Queue} -> wl_shm#3407.create_pool(new id wl_shm_pool#3746, fd 583, 16) -[2618535.766] {Default Queue} -> wl_shm#3407.create_pool(new id wl_shm_pool#3747, fd 584, 16) -[2618535.770] {Default Queue} -> wl_shm_pool#3746.create_buffer(new id wl_buffer#3748, 0, 2, 2, 8, 0) -[2618535.775] {Default Queue} -> wl_shm_pool#3747.create_buffer(new id wl_buffer#3749, 0, 2, 2, 8, 0) -[2618535.782] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) -[2618535.786] {Default Queue} -> wl_surface#3399.commit() -[2618535.792] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) -[2618535.796] {Default Queue} -> wl_surface#3399.commit() -[2618535.805] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618535.809] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618535.814] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618535.818] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618535.826] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618535.830] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618535.835] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618535.839] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618535.844] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618535.848] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618535.853] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618535.857] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618535.867] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618535.871] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618535.875] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618535.880] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618535.884] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618535.889] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618535.893] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618535.897] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618535.903] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618535.907] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618535.911] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618535.916] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618535.920] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618535.925] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618535.929] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618535.933] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618535.937] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618535.941] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618535.945] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618535.949] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618535.957] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618535.964] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618535.968] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618535.972] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618535.983] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618535.987] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618535.991] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618535.995] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618536.000] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618536.005] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618536.009] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618536.013] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618536.017] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618536.022] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618536.026] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618536.030] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618536.035] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618536.039] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618536.044] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618536.048] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618536.052] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) -[2618536.057] {Default Queue} -> wl_surface#3399.commit() -[2618536.063] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) -[2618536.067] {Default Queue} -> wl_surface#3399.commit() -[2618537.131] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) -[2618537.140] {Default Queue} -> wl_surface#3399.commit() -[2618537.148] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618537.152] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618537.157] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618537.161] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618537.169] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618537.173] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618537.178] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618537.182] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618537.187] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618537.191] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618537.196] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618537.200] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618537.204] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618537.209] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618537.213] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618537.217] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618537.221] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618537.226] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618537.231] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618537.235] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618537.241] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618537.245] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618537.249] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618537.254] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618537.258] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618537.262] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618537.267] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618537.275] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618537.282] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618537.287] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618537.291] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618537.295] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618537.300] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618537.304] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618537.308] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618537.312] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618537.322] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618537.328] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618537.332] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618537.336] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618537.341] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618537.346] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618537.350] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618537.354] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618537.359] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618537.363] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618537.367] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618537.371] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618537.376] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618537.381] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618537.385] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618537.389] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618537.394] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) -[2618537.398] {Default Queue} -> wl_surface#3399.commit() -[2618537.402] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) -[2618537.406] {Default Queue} -> wl_surface#3399.commit() -[2618537.412] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) -[2618537.417] {Default Queue} -> wl_surface#3399.commit() -[2618537.422] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 2) -[2618537.426] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 16) -[2618537.431] {Default Queue} -> wl_region#3455.add(0, 14, 0, 0) -[2618537.435] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618537.439] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618537.444] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2618537.457] {Default Queue} -> wl_buffer#3453.destroy() -[2618537.463] {Default Queue} -> wl_buffer#3454.destroy() -[2618537.467] {Default Queue} -> wl_shm_pool#3451.destroy() -[2618537.471] {Default Queue} -> wl_shm_pool#3452.destroy() -[2618537.541] {Default Queue} -> wl_shm#3439.create_pool(new id wl_shm_pool#3750, fd 583, 16) -[2618537.556] {Default Queue} -> wl_shm#3439.create_pool(new id wl_shm_pool#3751, fd 584, 16) -[2618537.562] {Default Queue} -> wl_shm_pool#3750.create_buffer(new id wl_buffer#3752, 0, 2, 2, 8, 0) -[2618537.568] {Default Queue} -> wl_shm_pool#3751.create_buffer(new id wl_buffer#3753, 0, 2, 2, 8, 0) -[2618537.576] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) -[2618537.582] {Default Queue} -> wl_surface#3431.commit() -[2618537.587] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) -[2618537.592] {Default Queue} -> wl_surface#3431.commit() -[2618537.603] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618537.610] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618537.614] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618537.619] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618537.628] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618537.633] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618537.643] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618537.651] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618537.657] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618537.662] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618537.666] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618537.670] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618537.675] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618537.679] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618537.684] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618537.688] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618537.693] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618537.697] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618537.702] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618537.706] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618537.712] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618537.716] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618537.720] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618537.724] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618537.729] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618537.733] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618537.738] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618537.742] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618537.746] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618537.750] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618537.758] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618537.762] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618537.767] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618537.771] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618537.775] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618537.779] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618537.789] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618537.794] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618537.798] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618537.802] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618537.807] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618537.811] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618537.816] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618537.820] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618537.825] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618537.829] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618537.833] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618537.837] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618537.842] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618537.846] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618537.851] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618537.854] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618537.859] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) -[2618537.870] {Default Queue} -> wl_surface#3431.commit() -[2618537.877] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) -[2618537.882] {Default Queue} -> wl_surface#3431.commit() -[2618538.946] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) -[2618538.953] {Default Queue} -> wl_surface#3431.commit() -[2618538.960] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618538.968] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618538.975] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618538.979] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618538.986] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618538.990] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618538.994] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618538.998] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618539.003] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618539.007] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618539.012] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618539.016] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618539.020] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618539.025] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618539.029] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618539.033] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618539.038] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618539.042] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618539.046] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618539.050] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618539.056] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618539.061] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618539.065] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618539.069] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618539.073] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618539.078] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618539.082] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618539.086] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618539.091] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618539.095] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618539.099] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618539.103] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618539.108] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618539.112] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618539.117] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618539.121] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618539.130] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618539.136] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618539.140] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618539.144] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618539.149] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618539.153] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618539.157] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618539.161] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618539.165] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618539.170] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618539.174] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618539.178] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618539.182] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618539.186] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618539.191] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618539.194] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618539.199] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) -[2618539.203] {Default Queue} -> wl_surface#3431.commit() -[2618539.210] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) -[2618539.216] {Default Queue} -> wl_surface#3431.commit() -[2618539.222] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) -[2618539.227] {Default Queue} -> wl_surface#3431.commit() -[2618539.237] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2618539.242] {Default Queue} -> wl_surface#3527.commit() -[2618540.305] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2618540.312] {Default Queue} -> wl_surface#3527.commit() -[2618540.323] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) -[2618540.328] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) -[2618540.333] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618540.337] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618540.345] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) -[2618540.349] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) -[2618540.354] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618540.358] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618540.363] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) -[2618540.367] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) -[2618540.371] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618540.375] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618540.380] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) -[2618540.385] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) -[2618540.389] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618540.393] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618540.398] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) -[2618540.402] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) -[2618540.406] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618540.410] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618540.456] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) -[2618540.461] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) -[2618540.465] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618540.470] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618540.484] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618540.489] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618540.554] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) -[2618540.560] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) -[2618540.564] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618540.568] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618540.574] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618540.578] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618540.585] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2618540.590] {Default Queue} -> wl_surface#3527.commit() -[2618540.595] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2618540.599] {Default Queue} -> wl_surface#3527.commit() -[2618540.606] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2618540.611] {Default Queue} -> wl_surface#3527.commit() -[2618540.615] {Default Queue} -> wl_region#3519.subtract(0, 0, 256, 256) -[2618540.622] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) -[2618540.627] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) -[2618540.632] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618540.636] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618540.644] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) -[2618540.648] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) -[2618540.653] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618540.657] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618540.666] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) -[2618540.672] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) -[2618540.677] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618540.681] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618540.686] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) -[2618540.690] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) -[2618540.694] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618540.698] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618540.703] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) -[2618540.708] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) -[2618540.712] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618540.716] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618540.727] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) -[2618540.736] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) -[2618540.745] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618540.752] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618540.762] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618540.767] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618540.822] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) -[2618540.829] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) -[2618540.834] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618540.838] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618540.843] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618540.849] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618540.857] {Default Queue} -> wl_region#3519.subtract(0, 0, 256, 256) -[2618540.866] {Default Queue} -> wl_region#3519.add(0, 0, 0, 0) -[2618540.871] {Default Queue} -> wl_surface#3495.set_opaque_region(wl_region#3520) -[2618540.875] {Default Queue} -> wl_surface#3495.set_input_region(wl_region#3519) -[2618540.880] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618540.885] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) -[2618540.899] {Default Queue} -> wl_buffer#3517.destroy() -[2618540.907] {Default Queue} -> wl_buffer#3518.destroy() -[2618540.912] {Default Queue} -> wl_shm_pool#3515.destroy() -[2618540.918] {Default Queue} -> wl_shm_pool#3516.destroy() -[2618541.101] {Default Queue} -> wl_shm#3503.create_pool(new id wl_shm_pool#3754, fd 583, 262144) -[2618541.109] {Default Queue} -> wl_shm#3503.create_pool(new id wl_shm_pool#3755, fd 584, 262144) -[2618541.114] {Default Queue} -> wl_shm_pool#3754.create_buffer(new id wl_buffer#3756, 0, 256, 256, 1024, 0) -[2618541.119] {Default Queue} -> wl_shm_pool#3755.create_buffer(new id wl_buffer#3757, 0, 256, 256, 1024, 0) -[2618541.188] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2618541.194] {Default Queue} -> wl_surface#3495.commit() -[2618541.261] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2618541.267] {Default Queue} -> wl_surface#3495.commit() -[2618541.280] {Default Queue} -> wl_region#3519.subtract(0, 0, 19, 48) -[2618541.286] {Default Queue} -> wl_region#3519.add(-20, -49, 19, 48) -[2618541.291] {Default Queue} -> wl_surface#3495.set_opaque_region(wl_region#3520) -[2618541.295] {Default Queue} -> wl_surface#3495.set_input_region(wl_region#3519) -[2618541.304] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2618541.309] {Default Queue} -> wl_surface#3495.commit() -[2618541.320] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2618541.325] {Default Queue} -> wl_surface#3495.commit() -[2618542.395] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2618542.402] {Default Queue} -> wl_surface#3495.commit() -[2618542.409] {Default Queue} -> wl_region#3519.subtract(0, 0, 19, 48) -[2618542.414] {Default Queue} -> wl_region#3519.add(-20, -49, 19, 48) -[2618542.424] {Default Queue} -> wl_surface#3495.set_opaque_region(wl_region#3520) -[2618542.434] {Default Queue} -> wl_surface#3495.set_input_region(wl_region#3519) -[2618542.444] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2618542.450] {Default Queue} -> wl_surface#3495.commit() -[2618542.458] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2618542.462] {Default Queue} -> wl_surface#3495.commit() -[2618542.473] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2618542.477] {Default Queue} -> wl_surface#3495.commit() -[2618542.482] {Default Queue} -> wl_region#3487.subtract(0, 0, 2, 2) -[2618542.488] {Default Queue} -> wl_region#3519.subtract(0, 0, 19, 48) -[2618542.492] {Default Queue} -> wl_region#3519.add(-20, -49, 19, 48) -[2618542.497] {Default Queue} -> wl_surface#3495.set_opaque_region(wl_region#3520) -[2618542.500] {Default Queue} -> wl_surface#3495.set_input_region(wl_region#3519) -[2618542.505] {Default Queue} -> wl_region#3487.subtract(0, 0, 2, 2) -[2618542.509] {Default Queue} -> wl_region#3487.add(0, 0, 0, 0) -[2618542.514] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) -[2618542.518] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) -[2618542.523] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618542.527] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) -[2618542.531] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) -[2618542.546] {Default Queue} -> wl_buffer#3485.destroy() -[2618542.552] {Default Queue} -> wl_buffer#3486.destroy() -[2618542.556] {Default Queue} -> wl_shm_pool#3483.destroy() -[2618542.560] {Default Queue} -> wl_shm_pool#3484.destroy() -[2618542.599] {Default Queue} -> wl_shm#3471.create_pool(new id wl_shm_pool#3758, fd 583, 16) -[2618542.606] {Default Queue} -> wl_shm#3471.create_pool(new id wl_shm_pool#3759, fd 584, 16) -[2618542.610] {Default Queue} -> wl_shm_pool#3758.create_buffer(new id wl_buffer#3760, 0, 2, 2, 8, 0) -[2618542.615] {Default Queue} -> wl_shm_pool#3759.create_buffer(new id wl_buffer#3761, 0, 2, 2, 8, 0) -[2618542.623] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) -[2618542.627] {Default Queue} -> wl_surface#3463.commit() -[2618542.633] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) -[2618542.637] {Default Queue} -> wl_surface#3463.commit() -[2618542.644] {Default Queue} -> wl_region#3487.subtract(0, 0, 19, 48) -[2618542.649] {Default Queue} -> wl_region#3487.add(-20, -49, 19, 48) -[2618542.653] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) -[2618542.657] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) -[2618542.662] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) -[2618542.666] {Default Queue} -> wl_surface#3463.commit() -[2618542.672] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) -[2618542.677] {Default Queue} -> wl_surface#3463.commit() -[2618543.740] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) -[2618543.750] {Default Queue} -> wl_surface#3463.commit() -[2618543.757] {Default Queue} -> wl_region#3487.subtract(0, 0, 19, 48) -[2618543.762] {Default Queue} -> wl_region#3487.add(-20, -49, 19, 48) -[2618543.766] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) -[2618543.771] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) -[2618543.776] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) -[2618543.780] {Default Queue} -> wl_surface#3463.commit() -[2618543.784] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) -[2618543.788] {Default Queue} -> wl_surface#3463.commit() -[2618543.795] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) -[2618543.799] {Default Queue} -> wl_surface#3463.commit() -[2618543.805] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) -[2618543.809] {Default Queue} -> wl_surface#3367.commit() -[2618544.866] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) -[2618544.876] {Default Queue} -> wl_surface#3367.commit() -[2618544.903] {Default Queue} -> wl_region#3391.subtract(0, 0, 19, 48) -[2618544.919] {Default Queue} -> wl_region#3391.add(-20, -49, 19, 48) -[2618544.927] {Default Queue} -> wl_surface#3367.set_opaque_region(wl_region#3392) -[2618544.933] {Default Queue} -> wl_surface#3367.set_input_region(wl_region#3391) -[2618544.942] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) -[2618544.948] {Default Queue} -> wl_surface#3367.commit() -[2618544.953] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) -[2618544.959] {Default Queue} -> wl_surface#3367.commit() -[2618544.968] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) -[2618544.974] {Default Queue} -> wl_surface#3367.commit() -[2618544.982] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) -[2618544.987] {Default Queue} -> wl_surface#3335.commit() -[2618546.052] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) -[2618546.058] {Default Queue} -> wl_surface#3335.commit() -[2618546.065] {Default Queue} -> wl_region#3359.subtract(0, 0, 19, 48) -[2618546.070] {Default Queue} -> wl_region#3359.add(-20, -49, 19, 48) -[2618546.074] {Default Queue} -> wl_surface#3335.set_opaque_region(wl_region#3360) -[2618546.079] {Default Queue} -> wl_surface#3335.set_input_region(wl_region#3359) -[2618546.083] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) -[2618546.088] {Default Queue} -> wl_surface#3335.commit() -[2618546.092] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) -[2618546.096] {Default Queue} -> wl_surface#3335.commit() -[2618546.102] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) -[2618546.106] {Default Queue} -> wl_surface#3335.commit() -[2618546.111] {Default Queue} -> wl_region#3295.subtract(0, 0, 2, 2) -[2618546.117] {Default Queue} -> wl_region#3327.subtract(0, 0, 19, 48) -[2618546.122] {Default Queue} -> wl_region#3327.add(-20, -49, 19, 48) -[2618546.129] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2618546.134] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2618546.250] {Default Queue} -> wl_region#3327.subtract(0, 0, 19, 48) -[2618546.259] {Default Queue} -> wl_region#3327.add(-20, -49, 19, 48) -[2618546.264] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2618546.268] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2618546.276] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618546.280] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618546.348] {Default Queue} -> wl_region#3327.subtract(0, 0, 19, 48) -[2618546.353] {Default Queue} -> wl_region#3327.add(-20, -49, 19, 48) -[2618546.357] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2618546.362] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2618546.367] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618546.371] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618546.378] {Default Queue} -> wl_region#3359.subtract(0, 0, 19, 48) -[2618546.382] {Default Queue} -> wl_region#3359.add(-20, -49, 19, 48) -[2618546.386] {Default Queue} -> wl_surface#3335.set_opaque_region(wl_region#3360) -[2618546.390] {Default Queue} -> wl_surface#3335.set_input_region(wl_region#3359) -[2618546.395] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) -[2618546.400] {Default Queue} -> wl_region#3295.subtract(0, 0, 5, 5) -[2618546.404] {Default Queue} -> wl_region#3295.add(0, 0, 0, 0) -[2618546.408] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) -[2618546.413] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) -[2618546.417] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618546.422] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2618546.426] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2618546.431] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618546.435] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) -[2618546.445] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) -[2618546.454] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) -[2618546.458] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) -[2618546.463] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) -[2618546.483] {Default Queue} -> wl_buffer#3293.destroy() -[2618546.489] {Default Queue} -> wl_buffer#3294.destroy() -[2618546.493] {Default Queue} -> wl_shm_pool#3291.destroy() -[2618546.497] {Default Queue} -> wl_shm_pool#3292.destroy() -[2618546.543] {Default Queue} -> wl_shm#3279.create_pool(new id wl_shm_pool#3762, fd 583, 16) -[2618546.551] {Default Queue} -> wl_shm#3279.create_pool(new id wl_shm_pool#3763, fd 584, 16) -[2618546.555] {Default Queue} -> wl_shm_pool#3762.create_buffer(new id wl_buffer#3764, 0, 2, 2, 8, 0) -[2618546.560] {Default Queue} -> wl_shm_pool#3763.create_buffer(new id wl_buffer#3765, 0, 2, 2, 8, 0) -[2618546.568] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) -[2618546.574] {Default Queue} -> wl_surface#3271.commit() -[2618546.580] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) -[2618546.584] {Default Queue} -> wl_surface#3271.commit() -[2618546.592] {Default Queue} -> wl_region#3295.subtract(0, 0, 22, 51) -[2618546.597] {Default Queue} -> wl_region#3295.add(-20, -49, 19, 48) -[2618546.602] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) -[2618546.606] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) -[2618546.611] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) -[2618546.616] {Default Queue} -> wl_surface#3271.commit() -[2618546.622] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) -[2618546.627] {Default Queue} -> wl_surface#3271.commit() -[2618547.692] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) -[2618547.700] {Default Queue} -> wl_surface#3271.commit() -[2618547.707] {Default Queue} -> wl_region#3295.subtract(0, 0, 22, 51) -[2618547.711] {Default Queue} -> wl_region#3295.add(-20, -49, 19, 48) -[2618547.716] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) -[2618547.720] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) -[2618547.725] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) -[2618547.729] {Default Queue} -> wl_surface#3271.commit() -[2618547.733] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) -[2618547.738] {Default Queue} -> wl_surface#3271.commit() -[2618547.744] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) -[2618547.748] {Default Queue} -> wl_surface#3271.commit() -[2618547.753] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) -[2618547.760] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) -[2618547.764] {Default Queue} -> wl_surface#3239.commit() -[2618548.829] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) -[2618548.834] {Default Queue} -> wl_surface#3239.commit() -[2618548.842] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) -[2618548.847] {Default Queue} -> wl_region#3263.add(0, 0, 2, 2) -[2618548.851] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618548.855] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618548.868] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) -[2618548.872] {Default Queue} -> wl_region#3263.add(0, 0, 2, 2) -[2618548.877] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618548.881] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618548.887] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) -[2618548.891] {Default Queue} -> wl_region#3263.add(0, 0, 2, 2) -[2618548.895] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618548.899] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618548.905] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) -[2618548.909] {Default Queue} -> wl_region#3263.add(0, 0, 2, 2) -[2618548.913] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618548.922] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618548.932] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) -[2618548.936] {Default Queue} -> wl_region#3263.add(0, 0, 2, 2) -[2618548.940] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618548.944] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618548.950] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) -[2618548.954] {Default Queue} -> wl_surface#3239.commit() -[2618548.958] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) -[2618548.963] {Default Queue} -> wl_surface#3239.commit() -[2618548.968] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) -[2618548.973] {Default Queue} -> wl_surface#3239.commit() -[2618548.979] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) -[2618548.984] {Default Queue} -> wl_surface#3559.commit() -[2618550.045] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) -[2618550.051] {Default Queue} -> wl_surface#3559.commit() -[2618550.057] {Default Queue} -> wl_region#3583.subtract(0, 0, 2, 2) -[2618550.062] {Default Queue} -> wl_region#3583.add(0, 0, 2, 2) -[2618550.066] {Default Queue} -> wl_surface#3559.set_opaque_region(wl_region#3584) -[2618550.070] {Default Queue} -> wl_surface#3559.set_input_region(wl_region#3583) -[2618550.076] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) -[2618550.080] {Default Queue} -> wl_surface#3559.commit() -[2618550.084] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) -[2618550.088] {Default Queue} -> wl_surface#3559.commit() -[2618550.093] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) -[2618550.098] {Default Queue} -> wl_surface#3559.commit() -[2618550.104] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) -[2618550.108] {Default Queue} -> wl_surface#3591.commit() -[2618551.130] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) -[2618551.141] {Default Queue} -> wl_surface#3591.commit() -[2618551.151] {Default Queue} -> wl_region#3615.subtract(0, 0, 2, 2) -[2618551.157] {Default Queue} -> wl_region#3615.add(0, 0, 2, 2) -[2618551.162] {Default Queue} -> wl_surface#3591.set_opaque_region(wl_region#3616) -[2618551.167] {Default Queue} -> wl_surface#3591.set_input_region(wl_region#3615) -[2618551.175] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) -[2618551.181] {Default Queue} -> wl_surface#3591.commit() -[2618551.186] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) -[2618551.191] {Default Queue} -> wl_surface#3591.commit() -[2618551.199] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) -[2618551.204] {Default Queue} -> wl_surface#3591.commit() -[2618551.212] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) -[2618551.217] {Default Queue} -> wl_surface#3623.commit() -[2618552.283] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) -[2618552.290] {Default Queue} -> wl_surface#3623.commit() -[2618552.299] {Default Queue} -> wl_region#3647.subtract(0, 0, 2, 2) -[2618552.305] {Default Queue} -> wl_region#3647.add(0, 0, 2, 2) -[2618552.310] {Default Queue} -> wl_surface#3623.set_opaque_region(wl_region#3648) -[2618552.315] {Default Queue} -> wl_surface#3623.set_input_region(wl_region#3647) -[2618552.321] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) -[2618552.325] {Default Queue} -> wl_surface#3623.commit() -[2618552.330] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) -[2618552.335] {Default Queue} -> wl_surface#3623.commit() -[2618552.340] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) -[2618552.344] {Default Queue} -> wl_surface#3623.commit() -[2618552.349] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) -[2618552.355] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) -[2618552.363] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) -[2618552.368] {Default Queue} -> wl_surface#2983.commit() -[2618553.429] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) -[2618553.458] {Default Queue} -> wl_surface#2983.commit() -[2618553.468] {Default Queue} -> wl_region#3007.subtract(0, 0, 2, 2) -[2618553.473] {Default Queue} -> wl_region#3007.add(0, 0, 2, 2) -[2618553.477] {Default Queue} -> wl_surface#2983.set_opaque_region(wl_region#3008) -[2618553.481] {Default Queue} -> wl_surface#2983.set_input_region(wl_region#3007) -[2618553.487] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) -[2618553.491] {Default Queue} -> wl_surface#2983.commit() -[2618553.495] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) -[2618553.520] {Default Queue} -> wl_surface#2983.commit() -[2618553.539] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) -[2618553.544] {Default Queue} -> wl_surface#2983.commit() -[2618553.550] {Default Queue} -> wl_surface#3655.attach(wl_buffer#3677, 0, 0) -[2618553.555] {Default Queue} -> wl_surface#3655.commit() -[2618554.617] {Default Queue} -> wl_surface#3655.attach(wl_buffer#3677, 0, 0) -[2618554.622] {Default Queue} -> wl_surface#3655.commit() -[2618554.628] {Default Queue} -> wl_surface#3655.attach(wl_buffer#3677, 0, 0) -[2618554.632] {Default Queue} -> wl_surface#3655.commit() -[2618554.637] {Default Queue} -> wl_surface#3655.attach(wl_buffer#3677, 0, 0) -[2618554.641] {Default Queue} -> wl_surface#3655.commit() -[2618554.646] {Default Queue} -> wl_surface#3655.attach(wl_buffer#3677, 0, 0) -[2618554.651] {Default Queue} -> wl_surface#3655.commit() -[2618554.655] {Default Queue} -> wl_region#95.subtract(0, 0, 576, 669) -[2618554.662] {Default Queue} -> wl_region#127.subtract(0, 0, 2, 2) -[2618554.666] {Default Queue} -> wl_region#127.add(0, 0, 2, 2) -[2618554.670] {Default Queue} -> wl_surface#103.set_opaque_region(wl_region#128) -[2618554.675] {Default Queue} -> wl_surface#103.set_input_region(wl_region#127) -[2618554.682] {Default Queue} -> wl_region#895.subtract(0, 0, 2, 2) -[2618554.687] {Default Queue} -> wl_region#895.add(0, 0, 2, 2) -[2618554.692] {Default Queue} -> wl_surface#871.set_opaque_region(wl_region#896) -[2618554.696] {Default Queue} -> wl_surface#871.set_input_region(wl_region#895) -[2618554.702] {Default Queue} -> wl_region#2111.subtract(0, 0, 2, 2) -[2618554.706] {Default Queue} -> wl_region#2111.add(0, 0, 2, 2) -[2618554.711] {Default Queue} -> wl_surface#2087.set_opaque_region(wl_region#2112) -[2618554.715] {Default Queue} -> wl_surface#2087.set_input_region(wl_region#2111) -[2618554.720] {Default Queue} -> wl_region#3007.subtract(0, 0, 2, 2) -[2618554.725] {Default Queue} -> wl_region#3007.add(0, 0, 2, 2) -[2618554.729] {Default Queue} -> wl_surface#2983.set_opaque_region(wl_region#3008) -[2618554.733] {Default Queue} -> wl_surface#2983.set_input_region(wl_region#3007) -[2618554.737] {Default Queue} -> wl_surface#71.damage(0, 0, 576, 669) -[2618554.742] {Default Queue} -> wl_region#95.subtract(0, 0, 22, 51) -[2618554.746] {Default Queue} -> wl_region#95.add(0, 0, 2, 2) -[2618554.750] {Default Queue} -> wl_surface#71.set_opaque_region(wl_region#96) -[2618554.755] {Default Queue} -> wl_surface#71.set_input_region(wl_region#95) -[2618554.760] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618554.765] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618554.769] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) -[2618554.774] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) -[2618554.778] {Default Queue} -> wl_surface#135.damage(0, 0, 2, 2) -[2618554.784] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) -[2618554.789] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618554.795] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618554.799] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618554.804] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618554.808] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618554.813] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618554.818] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2618554.823] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618554.831] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618554.838] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618554.843] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618554.848] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618554.852] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2618554.856] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2618554.865] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) -[2618554.870] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) -[2618554.874] {Default Queue} -> wl_surface#327.damage(0, 0, 2, 2) -[2618554.905] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) -[2618554.924] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618554.933] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) -[2618554.939] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) -[2618554.945] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) -[2618554.950] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) -[2618554.956] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) -[2618554.962] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2618554.968] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618554.974] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618554.979] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618554.985] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618554.991] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618554.996] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618555.001] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2618555.007] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) -[2618555.012] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) -[2618555.018] {Default Queue} -> wl_surface#903.damage(0, 0, 2, 2) -[2618555.024] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618555.031] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618555.036] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) -[2618555.042] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) -[2618555.047] {Default Queue} -> wl_surface#1447.damage(0, 0, 2, 2) -[2618555.053] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618555.059] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) -[2618555.064] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) -[2618555.070] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) -[2618555.075] {Default Queue} -> wl_surface#1607.damage(0, 0, 2, 2) -[2618555.081] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618555.087] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618555.092] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) -[2618555.097] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) -[2618555.103] {Default Queue} -> wl_surface#1772.damage(0, 0, 2, 2) -[2618555.109] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618555.114] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618555.120] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) -[2618555.125] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) -[2618555.131] {Default Queue} -> wl_surface#1927.damage(0, 0, 2, 2) -[2618555.136] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) -[2618555.142] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618555.147] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618555.153] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618555.159] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618555.164] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) -[2618555.169] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) -[2618555.174] {Default Queue} -> wl_surface#2119.damage(0, 0, 2, 2) -[2618555.180] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618555.185] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) -[2618555.191] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) -[2618555.196] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) -[2618555.201] {Default Queue} -> wl_surface#2343.damage(0, 0, 2, 2) -[2618555.213] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618555.223] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) -[2618555.228] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) -[2618555.233] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) -[2618555.238] {Default Queue} -> wl_surface#2508.damage(0, 0, 2, 2) -[2618555.244] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618555.250] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) -[2618555.256] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) -[2618555.261] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) -[2618555.266] {Default Queue} -> wl_surface#2663.damage(0, 0, 2, 2) -[2618555.272] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618555.277] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) -[2618555.283] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) -[2618555.289] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) -[2618555.294] {Default Queue} -> wl_surface#2823.damage(0, 0, 2, 2) -[2618555.299] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) -[2618555.305] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618555.310] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618555.316] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618555.321] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) -[2618555.327] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) -[2618555.332] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) -[2618555.337] {Default Queue} -> wl_surface#3015.damage(0, 0, 2, 2) -[2618555.343] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618555.348] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2618555.354] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2618555.359] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618555.364] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) -[2618555.369] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) -[2618555.375] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) -[2618555.381] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) -[2618555.386] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) -[2618555.391] {Default Queue} -> wl_surface#3239.damage(0, 0, 2, 2) -[2618555.396] {Default Queue} -> wl_surface#3559.damage(0, 0, 2, 2) -[2618555.401] {Default Queue} -> wl_surface#3591.damage(0, 0, 2, 2) -[2618555.407] {Default Queue} -> wl_surface#3623.damage(0, 0, 2, 2) -[2618555.412] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) -[2618555.418] {Default Queue} -> wl_surface#3655.damage(0, 0, 2, 2) -[2618555.423] {Default Queue} -> wl_surface#71.damage(0, 0, 576, 669) -[2618555.441] {Default Queue} -> wl_buffer#93.destroy() -[2618555.448] {Default Queue} -> wl_buffer#94.destroy() -[2618555.453] {Default Queue} -> wl_shm_pool#91.destroy() -[2618555.459] {Default Queue} -> wl_shm_pool#92.destroy() -[2618556.495] {Default Queue} -> wl_shm#29.create_pool(new id wl_shm_pool#3766, fd 583, 1541376) -[2618556.504] {Default Queue} -> wl_shm#29.create_pool(new id wl_shm_pool#3767, fd 584, 1541376) -[2618556.508] {Default Queue} -> wl_shm_pool#3766.create_buffer(new id wl_buffer#3768, 0, 576, 669, 2304, 0) -[2618556.514] {Default Queue} -> wl_shm_pool#3767.create_buffer(new id wl_buffer#3769, 0, 576, 669, 2304, 0) -[2618556.917] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) -[2618556.924] {Default Queue} -> wl_surface#71.commit() -[2618557.396] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) -[2618557.403] {Default Queue} -> wl_surface#71.commit() -[2618557.435] {Default Queue} -> wl_region#95.subtract(0, 0, 596, 718) -[2618557.442] {Default Queue} -> wl_region#95.add(0, 0, 576, 669) -[2618557.447] {Default Queue} -> wl_surface#71.set_opaque_region(wl_region#96) -[2618557.451] {Default Queue} -> wl_surface#71.set_input_region(wl_region#95) -[2618557.511] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) -[2618557.518] {Default Queue} -> wl_surface#71.commit() -[2618557.523] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) -[2618557.534] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) -[2618557.542] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) -[2618557.548] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2618557.552] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2618557.557] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618557.561] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618557.566] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618557.570] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618557.575] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618557.579] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2618557.584] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) -[2618557.589] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) -[2618557.594] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2618557.599] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2618557.603] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618557.608] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) -[2618557.614] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) -[2618557.619] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) -[2618557.624] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) -[2618557.630] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) -[2618557.635] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) -[2618557.639] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) -[2618557.644] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) -[2618557.648] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) -[2618557.661] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) -[2618557.667] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) -[2618557.672] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) -[2618557.676] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) -[2618557.713] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) -[2618557.720] {Default Queue} -> wl_surface#71.commit() -[2618558.824] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) -[2618558.838] {Default Queue} -> wl_surface#71.commit() -[2618558.891] {Default Queue} -> wl_region#95.subtract(0, 0, 596, 718) -[2618558.901] {Default Queue} -> wl_region#95.add(0, 0, 576, 669) -[2618558.906] {Default Queue} -> wl_surface#71.set_opaque_region(wl_region#96) -[2618558.911] {Default Queue} -> wl_surface#71.set_input_region(wl_region#95) -[2618558.971] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) -[2618558.978] {Default Queue} -> wl_surface#71.commit() -[2618559.010] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) -[2618559.017] {Default Queue} -> wl_surface#71.commit() -[2618559.052] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) -[2618559.059] {Default Queue} -> wl_surface#71.commit() -[2618560.126] {Default Queue} -> wl_surface#3655.attach(wl_buffer#3677, 0, 0) -[2618560.132] {Default Queue} -> wl_surface#3655.commit() -[2618561.211] {Default Queue} -> wl_buffer#3683.destroy() -[2618561.220] {Default Queue} -> wl_buffer#3684.destroy() -[2618561.224] {Default Queue} -> wl_shm_pool#3681.destroy() -[2618561.228] {Default Queue} -> wl_shm_pool#3682.destroy() -[2618561.234] {Default Queue} -> wl_region#3679.destroy() -[2618561.238] {Default Queue} -> zwp_primary_selection_source_v1#3671.destroy() -[2618561.249] {Default Queue} -> wl_buffer#3677.destroy() -[2618561.255] {Default Queue} -> wl_buffer#3678.destroy() -[2618561.259] {Default Queue} -> wl_shm_pool#3675.destroy() -[2618561.263] {Default Queue} -> wl_shm_pool#3676.destroy() -[2618561.269] {Default Queue} -> wl_subsurface#3674.destroy() -[2618562.537] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618562.554] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618562.562] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618562.568] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) -[2618562.573] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) -[2618562.583] {Default Queue} -> wl_surface#135.damage(0, 0, 2, 2) -[2618562.594] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) -[2618562.599] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618562.604] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618562.609] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618562.613] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618562.617] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618562.622] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618562.628] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2618562.633] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618562.637] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618562.642] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618562.646] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618562.651] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618562.655] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2618562.660] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2618562.664] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) -[2618562.669] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) -[2618562.673] {Default Queue} -> wl_surface#327.damage(0, 0, 2, 2) -[2618562.677] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) -[2618562.682] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618562.687] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) -[2618562.692] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) -[2618562.696] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) -[2618562.701] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) -[2618562.705] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) -[2618562.710] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2618562.714] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618562.718] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618562.723] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618562.728] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618562.732] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618562.737] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618562.741] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2618562.746] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) -[2618562.750] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) -[2618562.755] {Default Queue} -> wl_surface#903.damage(0, 0, 2, 2) -[2618562.760] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618562.767] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618562.773] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) -[2618562.779] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) -[2618562.784] {Default Queue} -> wl_surface#1447.damage(0, 0, 2, 2) -[2618562.789] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618562.795] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) -[2618562.801] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) -[2618562.806] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) -[2618562.812] {Default Queue} -> wl_surface#1607.damage(0, 0, 2, 2) -[2618562.817] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618562.823] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618562.828] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) -[2618562.835] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) -[2618562.843] {Default Queue} -> wl_surface#1772.damage(0, 0, 2, 2) -[2618562.849] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618562.855] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618562.868] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) -[2618562.872] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) -[2618562.877] {Default Queue} -> wl_surface#1927.damage(0, 0, 2, 2) -[2618562.881] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) -[2618562.886] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618562.891] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618562.899] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618562.906] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618562.911] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) -[2618562.918] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) -[2618562.924] {Default Queue} -> wl_surface#2119.damage(0, 0, 2, 2) -[2618562.929] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618562.934] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) -[2618562.938] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) -[2618562.943] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) -[2618562.947] {Default Queue} -> wl_surface#2343.damage(0, 0, 2, 2) -[2618562.952] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618562.957] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) -[2618562.961] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) -[2618562.965] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) -[2618562.970] {Default Queue} -> wl_surface#2508.damage(0, 0, 2, 2) -[2618562.975] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618562.979] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) -[2618562.984] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) -[2618562.988] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) -[2618562.993] {Default Queue} -> wl_surface#2663.damage(0, 0, 2, 2) -[2618562.997] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618563.002] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) -[2618563.006] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) -[2618563.010] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) -[2618563.015] {Default Queue} -> wl_surface#2823.damage(0, 0, 2, 2) -[2618563.019] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) -[2618563.024] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618563.030] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618563.034] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618563.039] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) -[2618563.043] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) -[2618563.048] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) -[2618563.052] {Default Queue} -> wl_surface#3015.damage(0, 0, 2, 2) -[2618563.056] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618563.061] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2618563.066] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2618563.070] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618563.074] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) -[2618563.080] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) -[2618563.084] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) -[2618563.088] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) -[2618563.093] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) -[2618563.097] {Default Queue} -> wl_surface#3239.damage(0, 0, 2, 2) -[2618563.101] {Default Queue} -> wl_surface#3559.damage(0, 0, 2, 2) -[2618563.106] {Default Queue} -> wl_surface#3591.damage(0, 0, 2, 2) -[2618563.110] {Default Queue} -> wl_surface#3623.damage(0, 0, 2, 2) -[2618563.115] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) -[2618563.119] {Default Queue} -> wl_surface#71.damage(0, 0, 576, 669) -[2618563.123] {Default Queue} -> wl_surface#3.damage(0, 0, 616, 738) -[2618566.001] {Default Queue} -> wl_surface#3.damage(0, 0, 616, 738) -[2618566.015] {Default Queue} -> wl_surface#3.damage(0, 0, 616, 738) -[2618566.164] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) -[2618566.172] {Default Queue} -> wl_surface#19.commit() -[2618566.291] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) -[2618566.298] {Default Queue} -> wl_surface#19.commit() -[2618566.382] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) -[2618566.389] {Default Queue} -> wl_surface#3.commit() -[2618566.394] {Default Queue} -> wl_surface#71.damage(0, 0, 576, 669) -[2618566.399] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) -[2618566.411] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) -[2618566.424] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) -[2618566.429] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2618566.433] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2618566.439] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618566.443] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618566.448] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618566.454] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618566.458] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618566.463] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2618566.468] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) -[2618566.475] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) -[2618566.479] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2618566.484] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2618566.489] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618566.494] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) -[2618566.500] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) -[2618566.505] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) -[2618566.510] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) -[2618566.514] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) -[2618566.519] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) -[2618566.524] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) -[2618566.529] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) -[2618566.533] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) -[2618566.540] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) -[2618566.545] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) -[2618566.550] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) -[2618566.555] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) -[2618566.624] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) -[2618566.632] {Default Queue} -> wl_surface#3.commit() -[2618566.679] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) -[2618566.686] {Default Queue} -> wl_surface#19.commit() -[2618567.797] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) -[2618567.811] {Default Queue} -> wl_surface#3.commit() -[2618567.857] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) -[2618567.869] {Default Queue} -> wl_surface#19.commit() -[2618569.481] {Default Queue} -> wl_surface#3.damage(0, 0, 616, 738) -[2618569.492] {Default Queue} -> wl_surface#3.damage(0, 0, 616, 738) -[2618569.537] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) -[2618569.547] {Default Queue} -> wl_surface#19.commit() -[2618569.616] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) -[2618569.623] {Default Queue} -> wl_surface#19.commit() -[2618569.663] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) -[2618569.670] {Default Queue} -> wl_surface#3.commit() -[2618569.706] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) -[2618569.716] {Default Queue} -> wl_surface#3.commit() -[2618569.764] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) -[2618569.772] {Default Queue} -> wl_surface#3.commit() -[2618569.811] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) -[2618569.818] {Default Queue} -> wl_surface#19.commit() -[2618569.833] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2618569.839] {Default Queue} -> wl_surface#43.commit() -[2618569.846] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2618569.851] {Default Queue} -> wl_surface#43.commit() -[2618570.871] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2618570.877] {Default Queue} -> wl_surface#43.commit() -[2618570.891] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618570.896] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618570.901] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618570.906] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618570.914] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618570.923] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618570.934] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618570.939] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618570.952] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618570.959] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618570.965] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618570.970] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618570.979] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618570.985] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618570.990] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618570.994] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618571.001] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618571.005] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618571.010] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618571.016] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618571.051] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618571.059] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618571.066] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618571.072] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618571.090] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618571.096] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618571.209] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618571.222] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618571.227] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618571.232] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618571.243] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618571.248] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618571.298] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618571.304] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618571.308] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618571.312] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618571.318] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618571.323] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618571.373] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618571.379] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618571.383] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618571.394] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618571.400] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618571.404] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618571.486] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618571.492] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618571.497] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618571.501] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618571.507] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618571.512] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618571.555] {Default Queue} -> wl_region#63.subtract(0, 0, 616, 29) -[2618571.561] {Default Queue} -> wl_region#63.add(0, 0, 616, 29) -[2618571.565] {Default Queue} -> wl_surface#43.set_opaque_region(wl_region#64) -[2618571.569] {Default Queue} -> wl_surface#43.set_input_region(wl_region#63) -[2618571.575] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618571.580] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2618571.588] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2618571.592] {Default Queue} -> wl_surface#43.commit() -[2618571.598] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2618571.602] {Default Queue} -> wl_surface#43.commit() -[2618571.610] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2618571.621] {Default Queue} -> wl_surface#43.commit() -[2618571.634] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) -[2618571.638] {Default Queue} -> wl_surface#199.commit() -[2618572.706] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) -[2618572.721] {Default Queue} -> wl_surface#199.commit() -[2618572.737] {Default Queue} -> wl_region#223.subtract(0, 0, 19, 48) -[2618572.745] {Default Queue} -> wl_region#223.add(-20, -49, 19, 48) -[2618572.752] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618572.757] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618572.872] {Default Queue} -> wl_region#223.subtract(0, 0, 19, 48) -[2618572.884] {Default Queue} -> wl_region#223.add(-20, -49, 19, 48) -[2618572.890] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618572.896] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618572.908] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618572.915] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618573.008] {Default Queue} -> wl_region#223.subtract(0, 0, 19, 48) -[2618573.017] {Default Queue} -> wl_region#223.add(-20, -49, 19, 48) -[2618573.023] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618573.029] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618573.038] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618573.044] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618573.052] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) -[2618573.058] {Default Queue} -> wl_surface#199.commit() -[2618573.064] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) -[2618573.070] {Default Queue} -> wl_surface#199.commit() -[2618573.079] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) -[2618573.086] {Default Queue} -> wl_surface#199.commit() -[2618573.094] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) -[2618573.102] {Default Queue} -> wl_surface#263.commit() -[2618574.169] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) -[2618574.181] {Default Queue} -> wl_surface#263.commit() -[2618574.195] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) -[2618574.200] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) -[2618574.204] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618574.209] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618574.219] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) -[2618574.224] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) -[2618574.228] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618574.232] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618574.238] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) -[2618574.242] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) -[2618574.246] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618574.250] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618574.256] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) -[2618574.260] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) -[2618574.265] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618574.269] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618574.274] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) -[2618574.278] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) -[2618574.282] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618574.286] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618574.371] {Default Queue} -> wl_region#287.subtract(0, 0, 19, 48) -[2618574.377] {Default Queue} -> wl_region#287.add(-20, -49, 19, 48) -[2618574.381] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618574.385] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618574.392] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618574.402] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618574.410] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) -[2618574.415] {Default Queue} -> wl_surface#263.commit() -[2618574.419] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) -[2618574.424] {Default Queue} -> wl_surface#263.commit() -[2618574.430] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) -[2618574.435] {Default Queue} -> wl_surface#263.commit() -[2618574.440] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) -[2618574.445] {Default Queue} -> wl_surface#231.commit() -[2618575.508] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) -[2618575.514] {Default Queue} -> wl_surface#231.commit() -[2618575.522] {Default Queue} -> wl_region#255.subtract(0, 0, 19, 48) -[2618575.526] {Default Queue} -> wl_region#255.add(-20, -49, 19, 48) -[2618575.531] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) -[2618575.535] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) -[2618575.540] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) -[2618575.544] {Default Queue} -> wl_surface#231.commit() -[2618575.549] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) -[2618575.553] {Default Queue} -> wl_surface#231.commit() -[2618575.559] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) -[2618575.563] {Default Queue} -> wl_surface#231.commit() -[2618575.569] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) -[2618575.573] {Default Queue} -> wl_surface#167.commit() -[2618576.639] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) -[2618576.652] {Default Queue} -> wl_surface#167.commit() -[2618576.664] {Default Queue} -> wl_region#191.subtract(0, 0, 22, 51) -[2618576.673] {Default Queue} -> wl_region#191.add(-20, -49, 19, 48) -[2618576.679] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) -[2618576.685] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) -[2618576.693] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) -[2618576.699] {Default Queue} -> wl_surface#167.commit() -[2618576.705] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) -[2618576.711] {Default Queue} -> wl_surface#167.commit() -[2618576.719] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) -[2618576.725] {Default Queue} -> wl_surface#167.commit() -[2618576.734] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) -[2618576.739] {Default Queue} -> wl_surface#135.commit() -[2618577.805] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) -[2618577.819] {Default Queue} -> wl_surface#135.commit() -[2618577.832] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) -[2618577.843] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) -[2618577.848] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618577.853] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618577.866] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) -[2618577.870] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) -[2618577.874] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618577.879] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618577.885] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) -[2618577.889] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) -[2618577.893] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618577.897] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618577.902] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) -[2618577.907] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) -[2618577.911] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618577.915] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618577.922] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) -[2618577.926] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) -[2618577.931] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618577.940] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618577.948] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) -[2618577.952] {Default Queue} -> wl_surface#135.commit() -[2618577.957] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) -[2618577.962] {Default Queue} -> wl_surface#135.commit() -[2618577.968] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) -[2618577.973] {Default Queue} -> wl_surface#135.commit() -[2618577.979] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) -[2618577.984] {Default Queue} -> wl_surface#295.commit() -[2618579.046] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) -[2618579.054] {Default Queue} -> wl_surface#295.commit() -[2618579.064] {Default Queue} -> wl_region#319.subtract(0, 0, 2, 2) -[2618579.068] {Default Queue} -> wl_region#319.add(0, 0, 2, 2) -[2618579.073] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618579.077] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618579.369] {Default Queue} -> wl_region#319.subtract(0, 0, 2, 2) -[2618579.375] {Default Queue} -> wl_region#319.add(0, 0, 2, 2) -[2618579.380] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618579.384] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618579.392] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) -[2618579.397] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) -[2618579.640] {Default Queue} -> wl_region#319.subtract(0, 0, 2, 2) -[2618579.645] {Default Queue} -> wl_region#319.add(0, 0, 2, 2) -[2618579.650] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618579.654] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618579.660] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) -[2618579.664] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) -[2618579.669] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) -[2618579.673] {Default Queue} -> wl_surface#295.commit() -[2618579.678] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) -[2618579.682] {Default Queue} -> wl_surface#295.commit() -[2618579.688] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) -[2618579.692] {Default Queue} -> wl_surface#295.commit() -[2618579.699] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) -[2618579.703] {Default Queue} -> wl_surface#391.commit() -[2618580.766] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) -[2618580.773] {Default Queue} -> wl_surface#391.commit() -[2618580.783] {Default Queue} -> wl_region#415.subtract(0, 0, 19, 48) -[2618580.787] {Default Queue} -> wl_region#415.add(-20, -49, 19, 48) -[2618580.792] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618580.796] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618580.900] {Default Queue} -> wl_region#415.subtract(0, 0, 19, 48) -[2618580.906] {Default Queue} -> wl_region#415.add(-20, -49, 19, 48) -[2618580.910] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618580.915] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618580.920] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618580.925] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618580.991] {Default Queue} -> wl_region#415.subtract(0, 0, 19, 48) -[2618580.996] {Default Queue} -> wl_region#415.add(-20, -49, 19, 48) -[2618581.000] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618581.004] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618581.010] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618581.015] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618581.020] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) -[2618581.024] {Default Queue} -> wl_surface#391.commit() -[2618581.028] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) -[2618581.033] {Default Queue} -> wl_surface#391.commit() -[2618581.039] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) -[2618581.049] {Default Queue} -> wl_surface#391.commit() -[2618581.058] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) -[2618581.062] {Default Queue} -> wl_surface#519.commit() -[2618582.130] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) -[2618582.146] {Default Queue} -> wl_surface#519.commit() -[2618582.162] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) -[2618582.168] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) -[2618582.175] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618582.181] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618582.198] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) -[2618582.206] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) -[2618582.213] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618582.219] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618582.233] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) -[2618582.240] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) -[2618582.247] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618582.253] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618582.262] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) -[2618582.269] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) -[2618582.275] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618582.281] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618582.290] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) -[2618582.296] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) -[2618582.302] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618582.308] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618582.314] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) -[2618582.321] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) -[2618582.327] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618582.333] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618582.341] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) -[2618582.347] {Default Queue} -> wl_surface#519.commit() -[2618582.354] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) -[2618582.360] {Default Queue} -> wl_surface#519.commit() -[2618582.368] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) -[2618582.372] {Default Queue} -> wl_surface#519.commit() -[2618582.380] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) -[2618582.386] {Default Queue} -> wl_surface#551.commit() -[2618583.452] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) -[2618583.461] {Default Queue} -> wl_surface#551.commit() -[2618583.471] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) -[2618583.475] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) -[2618583.479] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618583.483] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618583.491] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) -[2618583.516] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) -[2618583.521] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618583.525] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618583.532] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) -[2618583.536] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) -[2618583.540] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618583.544] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618583.549] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) -[2618583.554] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) -[2618583.558] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618583.562] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618583.566] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) -[2618583.575] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) -[2618583.582] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618583.586] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618583.591] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) -[2618583.595] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) -[2618583.600] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618583.604] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618583.608] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) -[2618583.612] {Default Queue} -> wl_surface#551.commit() -[2618583.616] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) -[2618583.621] {Default Queue} -> wl_surface#551.commit() -[2618583.627] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) -[2618583.631] {Default Queue} -> wl_surface#551.commit() -[2618583.637] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) -[2618583.642] {Default Queue} -> wl_surface#583.commit() -[2618584.703] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) -[2618584.710] {Default Queue} -> wl_surface#583.commit() -[2618584.717] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) -[2618584.722] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) -[2618584.726] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618584.730] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618584.736] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) -[2618584.740] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) -[2618584.744] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618584.748] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618584.755] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) -[2618584.760] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) -[2618584.764] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618584.768] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618584.772] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) -[2618584.777] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) -[2618584.781] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618584.785] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618584.789] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) -[2618584.793] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) -[2618584.798] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618584.801] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618584.806] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) -[2618584.810] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) -[2618584.814] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618584.818] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618584.823] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) -[2618584.827] {Default Queue} -> wl_surface#583.commit() -[2618584.831] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) -[2618584.836] {Default Queue} -> wl_surface#583.commit() -[2618584.841] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) -[2618584.845] {Default Queue} -> wl_surface#583.commit() -[2618584.851] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) -[2618584.856] {Default Queue} -> wl_surface#615.commit() -[2618585.918] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) -[2618585.925] {Default Queue} -> wl_surface#615.commit() -[2618585.935] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) -[2618585.939] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) -[2618585.944] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618585.948] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618585.954] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) -[2618585.962] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) -[2618585.969] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618585.973] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618585.980] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) -[2618585.984] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) -[2618585.988] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618585.992] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618585.997] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) -[2618586.001] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) -[2618586.005] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618586.009] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618586.014] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) -[2618586.018] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) -[2618586.022] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618586.026] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618586.031] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) -[2618586.035] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) -[2618586.039] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618586.043] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618586.048] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) -[2618586.052] {Default Queue} -> wl_surface#615.commit() -[2618586.056] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) -[2618586.060] {Default Queue} -> wl_surface#615.commit() -[2618586.066] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) -[2618586.070] {Default Queue} -> wl_surface#615.commit() -[2618586.076] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) -[2618586.080] {Default Queue} -> wl_surface#647.commit() -[2618587.146] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) -[2618587.161] {Default Queue} -> wl_surface#647.commit() -[2618587.175] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) -[2618587.182] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) -[2618587.187] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618587.193] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618587.203] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) -[2618587.207] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) -[2618587.211] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618587.215] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618587.228] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) -[2618587.232] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) -[2618587.237] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618587.241] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618587.246] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) -[2618587.250] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) -[2618587.254] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618587.258] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618587.263] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) -[2618587.267] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) -[2618587.271] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618587.275] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618587.280] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) -[2618587.284] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) -[2618587.290] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618587.296] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618587.302] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) -[2618587.307] {Default Queue} -> wl_surface#647.commit() -[2618587.318] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) -[2618587.328] {Default Queue} -> wl_surface#647.commit() -[2618587.337] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) -[2618587.342] {Default Queue} -> wl_surface#647.commit() -[2618587.350] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) -[2618587.356] {Default Queue} -> wl_surface#487.commit() -[2618588.422] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) -[2618588.437] {Default Queue} -> wl_surface#487.commit() -[2618588.448] {Default Queue} -> wl_region#511.subtract(0, 0, 19, 48) -[2618588.453] {Default Queue} -> wl_region#511.add(-20, -49, 19, 48) -[2618588.458] {Default Queue} -> wl_surface#487.set_opaque_region(wl_region#512) -[2618588.463] {Default Queue} -> wl_surface#487.set_input_region(wl_region#511) -[2618588.469] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) -[2618588.473] {Default Queue} -> wl_surface#487.commit() -[2618588.477] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) -[2618588.481] {Default Queue} -> wl_surface#487.commit() -[2618588.488] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) -[2618588.492] {Default Queue} -> wl_surface#487.commit() -[2618588.499] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) -[2618588.505] {Default Queue} -> wl_surface#711.commit() -[2618589.570] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) -[2618589.577] {Default Queue} -> wl_surface#711.commit() -[2618589.588] {Default Queue} -> wl_region#735.subtract(0, 0, 19, 48) -[2618589.593] {Default Queue} -> wl_region#735.add(-20, -49, 19, 48) -[2618589.597] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2618589.601] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2618589.723] {Default Queue} -> wl_region#735.subtract(0, 0, 19, 48) -[2618589.728] {Default Queue} -> wl_region#735.add(-20, -49, 19, 48) -[2618589.733] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2618589.737] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2618589.744] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618589.749] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618589.828] {Default Queue} -> wl_region#735.subtract(0, 0, 19, 48) -[2618589.833] {Default Queue} -> wl_region#735.add(-20, -49, 19, 48) -[2618589.837] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2618589.841] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2618589.846] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618589.850] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618589.856] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) -[2618589.860] {Default Queue} -> wl_surface#711.commit() -[2618589.869] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) -[2618589.873] {Default Queue} -> wl_surface#711.commit() -[2618589.880] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) -[2618589.884] {Default Queue} -> wl_surface#711.commit() -[2618589.890] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) -[2618589.894] {Default Queue} -> wl_surface#743.commit() -[2618590.958] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) -[2618590.969] {Default Queue} -> wl_surface#743.commit() -[2618590.981] {Default Queue} -> wl_region#767.subtract(0, 0, 19, 48) -[2618590.986] {Default Queue} -> wl_region#767.add(-20, -49, 19, 48) -[2618590.990] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2618590.994] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2618591.102] {Default Queue} -> wl_region#767.subtract(0, 0, 19, 48) -[2618591.107] {Default Queue} -> wl_region#767.add(-20, -49, 19, 48) -[2618591.111] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2618591.115] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2618591.122] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618591.126] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618591.208] {Default Queue} -> wl_region#767.subtract(0, 0, 19, 48) -[2618591.217] {Default Queue} -> wl_region#767.add(-20, -49, 19, 48) -[2618591.221] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2618591.225] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2618591.230] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618591.235] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618591.240] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) -[2618591.244] {Default Queue} -> wl_surface#743.commit() -[2618591.249] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) -[2618591.253] {Default Queue} -> wl_surface#743.commit() -[2618591.259] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) -[2618591.263] {Default Queue} -> wl_surface#743.commit() -[2618591.270] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) -[2618591.274] {Default Queue} -> wl_surface#775.commit() -[2618591.695] {Display Queue} wl_display#1.delete_id(381) -[2618591.703] {Display Queue} wl_display#1.delete_id(382) -[2618591.707] {Display Queue} wl_display#1.delete_id(379) -[2618591.711] {Display Queue} wl_display#1.delete_id(380) -[2618591.715] {Display Queue} wl_display#1.delete_id(957) -[2618591.720] {Display Queue} wl_display#1.delete_id(958) -[2618591.724] {Display Queue} wl_display#1.delete_id(955) -[2618591.728] {Display Queue} wl_display#1.delete_id(956) -[2618591.732] {Display Queue} wl_display#1.delete_id(1501) -[2618591.736] {Display Queue} wl_display#1.delete_id(1502) -[2618591.740] {Display Queue} wl_display#1.delete_id(1499) -[2618591.744] {Display Queue} wl_display#1.delete_id(1500) -[2618591.747] {Display Queue} wl_display#1.delete_id(1661) -[2618591.752] {Display Queue} wl_display#1.delete_id(1662) -[2618591.756] {Display Queue} wl_display#1.delete_id(1659) -[2618591.760] {Display Queue} wl_display#1.delete_id(1660) -[2618591.764] {Display Queue} wl_display#1.delete_id(1821) -[2618591.768] {Display Queue} wl_display#1.delete_id(1822) -[2618591.772] {Display Queue} wl_display#1.delete_id(1819) -[2618591.775] {Display Queue} wl_display#1.delete_id(1820) -[2618591.780] {Display Queue} wl_display#1.delete_id(1981) -[2618591.784] {Display Queue} wl_display#1.delete_id(1982) -[2618591.788] {Display Queue} wl_display#1.delete_id(1979) -[2618591.792] {Display Queue} wl_display#1.delete_id(1980) -[2618591.795] {Display Queue} wl_display#1.delete_id(2333) -[2618591.799] {Display Queue} wl_display#1.delete_id(2334) -[2618591.803] {Display Queue} wl_display#1.delete_id(2331) -[2618591.807] {Display Queue} wl_display#1.delete_id(2332) -[2618591.811] {Display Queue} wl_display#1.delete_id(2173) -[2618591.815] {Display Queue} wl_display#1.delete_id(2174) -[2618591.819] {Display Queue} wl_display#1.delete_id(2171) -[2618591.823] {Display Queue} wl_display#1.delete_id(2172) -[2618591.827] {Display Queue} wl_display#1.delete_id(2397) -[2618591.831] {Display Queue} wl_display#1.delete_id(2398) -[2618591.835] {Display Queue} wl_display#1.delete_id(2395) -[2618591.838] {Display Queue} wl_display#1.delete_id(2396) -[2618591.842] {Display Queue} wl_display#1.delete_id(2557) -[2618591.846] {Display Queue} wl_display#1.delete_id(2558) -[2618591.850] {Display Queue} wl_display#1.delete_id(2555) -[2618591.854] {Display Queue} wl_display#1.delete_id(2556) -[2618591.858] {Display Queue} wl_display#1.delete_id(2717) -[2618591.869] {Display Queue} wl_display#1.delete_id(2718) -[2618591.873] {Display Queue} wl_display#1.delete_id(2715) -[2618591.877] {Display Queue} wl_display#1.delete_id(2716) -[2618591.881] {Display Queue} wl_display#1.delete_id(2877) -[2618591.885] {Display Queue} wl_display#1.delete_id(2878) -[2618591.889] {Display Queue} wl_display#1.delete_id(2875) -[2618591.893] {Display Queue} wl_display#1.delete_id(2876) -[2618591.897] {Display Queue} wl_display#1.delete_id(3229) -[2618591.901] {Display Queue} wl_display#1.delete_id(3230) -[2618591.905] {Display Queue} wl_display#1.delete_id(3227) -[2618591.909] {Display Queue} wl_display#1.delete_id(3228) -[2618591.928] {Display Queue} wl_display#1.delete_id(3069) -[2618591.934] {Display Queue} wl_display#1.delete_id(3070) -[2618591.938] {Display Queue} wl_display#1.delete_id(3067) -[2618591.942] {Display Queue} wl_display#1.delete_id(3068) -[2618591.946] {Display Queue} wl_display#1.delete_id(3421) -[2618591.950] {Display Queue} wl_display#1.delete_id(3422) -[2618591.954] {Display Queue} wl_display#1.delete_id(3419) -[2618591.958] {Display Queue} wl_display#1.delete_id(3420) -[2618591.962] {Display Queue} wl_display#1.delete_id(3453) -[2618591.966] {Display Queue} wl_display#1.delete_id(3454) -[2618591.970] {Display Queue} wl_display#1.delete_id(3451) -[2618591.974] {Display Queue} wl_display#1.delete_id(3452) -[2618591.978] {Display Queue} wl_display#1.delete_id(3517) -[2618591.982] {Display Queue} wl_display#1.delete_id(3518) -[2618591.986] {Display Queue} wl_display#1.delete_id(3515) -[2618591.990] {Display Queue} wl_display#1.delete_id(3516) -[2618591.994] {Display Queue} wl_display#1.delete_id(3485) -[2618591.998] {Display Queue} wl_display#1.delete_id(3486) -[2618592.002] {Display Queue} wl_display#1.delete_id(3483) -[2618592.006] {Display Queue} wl_display#1.delete_id(3484) -[2618592.010] {Display Queue} wl_display#1.delete_id(3293) -[2618592.014] {Display Queue} wl_display#1.delete_id(3294) -[2618592.018] {Display Queue} wl_display#1.delete_id(3291) -[2618592.022] {Display Queue} wl_display#1.delete_id(3292) -[2618592.025] {Display Queue} wl_display#1.delete_id(93) -[2618592.029] {Display Queue} wl_display#1.delete_id(94) -[2618592.033] {Display Queue} wl_display#1.delete_id(91) -[2618592.037] {Display Queue} wl_display#1.delete_id(92) -[2618592.041] {Display Queue} wl_display#1.delete_id(3683) -[2618592.045] {Display Queue} wl_display#1.delete_id(3684) -[2618592.049] {Display Queue} wl_display#1.delete_id(3681) -[2618592.053] {Display Queue} wl_display#1.delete_id(3682) -[2618592.057] {Display Queue} wl_display#1.delete_id(3679) -[2618592.061] {Display Queue} wl_display#1.delete_id(3671) -[2618592.065] {Display Queue} wl_display#1.delete_id(3677) -[2618592.069] {Display Queue} wl_display#1.delete_id(3678) -[2618592.073] {Display Queue} wl_display#1.delete_id(3675) -[2618592.077] {Display Queue} wl_display#1.delete_id(3676) -[2618592.081] {Display Queue} wl_display#1.delete_id(3674) -[2618592.085] {Default Queue} wl_pointer#24.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.091] {Default Queue} -> wl_pointer#24.set_cursor(626, wl_surface#41, 0, 0) -[2618592.096] {Default Queue} wl_pointer#81.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.101] {Default Queue} -> wl_pointer#81.set_cursor(626, wl_surface#41, 0, 0) -[2618592.105] {Default Queue} wl_pointer#105.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.110] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#41, 0, 0) -[2618592.114] {Default Queue} wl_pointer#137.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.119] {Default Queue} -> wl_pointer#137.set_cursor(626, wl_surface#41, 0, 0) -[2618592.123] {Default Queue} wl_pointer#169.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.128] {Default Queue} -> wl_pointer#169.set_cursor(626, wl_surface#41, 0, 0) -[2618592.132] {Default Queue} wl_pointer#201.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.136] {Default Queue} -> wl_pointer#201.set_cursor(626, wl_surface#41, 0, 0) -[2618592.140] {Default Queue} wl_pointer#233.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.145] {Default Queue} -> wl_pointer#233.set_cursor(626, wl_surface#41, 0, 0) -[2618592.149] {Default Queue} wl_pointer#265.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.153] {Default Queue} -> wl_pointer#265.set_cursor(626, wl_surface#41, 0, 0) -[2618592.158] {Default Queue} wl_pointer#297.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.162] {Default Queue} -> wl_pointer#297.set_cursor(626, wl_surface#41, 0, 0) -[2618592.167] {Default Queue} wl_pointer#329.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.171] {Default Queue} -> wl_pointer#329.set_cursor(626, wl_surface#41, 0, 0) -[2618592.178] {Default Queue} wl_pointer#361.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.184] {Default Queue} -> wl_pointer#361.set_cursor(626, wl_surface#41, 0, 0) -[2618592.188] {Default Queue} wl_pointer#393.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.193] {Default Queue} -> wl_pointer#393.set_cursor(626, wl_surface#41, 0, 0) -[2618592.197] {Default Queue} wl_pointer#425.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.201] {Default Queue} -> wl_pointer#425.set_cursor(626, wl_surface#41, 0, 0) -[2618592.206] {Default Queue} wl_pointer#457.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.210] {Default Queue} -> wl_pointer#457.set_cursor(626, wl_surface#41, 0, 0) -[2618592.214] {Default Queue} wl_pointer#489.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.218] {Default Queue} -> wl_pointer#489.set_cursor(626, wl_surface#41, 0, 0) -[2618592.223] {Default Queue} wl_pointer#521.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.227] {Default Queue} -> wl_pointer#521.set_cursor(626, wl_surface#41, 0, 0) -[2618592.231] {Default Queue} wl_pointer#553.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.236] {Default Queue} -> wl_pointer#553.set_cursor(626, wl_surface#41, 0, 0) -[2618592.240] {Default Queue} wl_pointer#585.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.244] {Default Queue} -> wl_pointer#585.set_cursor(626, wl_surface#41, 0, 0) -[2618592.249] {Default Queue} wl_pointer#617.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.253] {Default Queue} -> wl_pointer#617.set_cursor(626, wl_surface#41, 0, 0) -[2618592.257] {Default Queue} wl_pointer#649.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.261] {Default Queue} -> wl_pointer#649.set_cursor(626, wl_surface#41, 0, 0) -[2618592.266] {Default Queue} wl_pointer#681.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.270] {Default Queue} -> wl_pointer#681.set_cursor(626, wl_surface#41, 0, 0) -[2618592.274] {Default Queue} wl_pointer#713.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.279] {Default Queue} -> wl_pointer#713.set_cursor(626, wl_surface#41, 0, 0) -[2618592.283] {Default Queue} wl_pointer#745.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.287] {Default Queue} -> wl_pointer#745.set_cursor(626, wl_surface#41, 0, 0) -[2618592.291] {Default Queue} wl_pointer#777.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.296] {Default Queue} -> wl_pointer#777.set_cursor(626, wl_surface#41, 0, 0) -[2618592.300] {Default Queue} wl_pointer#809.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.304] {Default Queue} -> wl_pointer#809.set_cursor(626, wl_surface#41, 0, 0) -[2618592.308] {Default Queue} wl_pointer#841.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.313] {Default Queue} -> wl_pointer#841.set_cursor(626, wl_surface#41, 0, 0) -[2618592.317] {Default Queue} wl_pointer#873.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.322] {Default Queue} -> wl_pointer#873.set_cursor(626, wl_surface#41, 0, 0) -[2618592.326] {Default Queue} wl_pointer#905.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.330] {Default Queue} -> wl_pointer#905.set_cursor(626, wl_surface#41, 0, 0) -[2618592.335] {Default Queue} wl_pointer#937.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.339] {Default Queue} -> wl_pointer#937.set_cursor(626, wl_surface#41, 0, 0) -[2618592.343] {Default Queue} wl_pointer#969.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.348] {Default Queue} -> wl_pointer#969.set_cursor(626, wl_surface#41, 0, 0) -[2618592.352] {Default Queue} wl_pointer#1001.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.356] {Default Queue} -> wl_pointer#1001.set_cursor(626, wl_surface#41, 0, 0) -[2618592.361] {Default Queue} wl_pointer#1033.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.365] {Default Queue} -> wl_pointer#1033.set_cursor(626, wl_surface#41, 0, 0) -[2618592.369] {Default Queue} wl_pointer#1065.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.376] {Default Queue} -> wl_pointer#1065.set_cursor(626, wl_surface#41, 0, 0) -[2618592.382] {Default Queue} wl_pointer#1097.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.387] {Default Queue} -> wl_pointer#1097.set_cursor(626, wl_surface#41, 0, 0) -[2618592.391] {Default Queue} wl_pointer#1129.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.395] {Default Queue} -> wl_pointer#1129.set_cursor(626, wl_surface#41, 0, 0) -[2618592.400] {Default Queue} wl_pointer#1161.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.404] {Default Queue} -> wl_pointer#1161.set_cursor(626, wl_surface#41, 0, 0) -[2618592.408] {Default Queue} wl_pointer#1193.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.412] {Default Queue} -> wl_pointer#1193.set_cursor(626, wl_surface#41, 0, 0) -[2618592.417] {Default Queue} wl_pointer#1225.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.421] {Default Queue} -> wl_pointer#1225.set_cursor(626, wl_surface#41, 0, 0) -[2618592.425] {Default Queue} wl_pointer#1257.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.430] {Default Queue} -> wl_pointer#1257.set_cursor(626, wl_surface#41, 0, 0) -[2618592.434] {Default Queue} wl_pointer#1289.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.438] {Default Queue} -> wl_pointer#1289.set_cursor(626, wl_surface#41, 0, 0) -[2618592.443] {Default Queue} wl_pointer#1321.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.447] {Default Queue} -> wl_pointer#1321.set_cursor(626, wl_surface#41, 0, 0) -[2618592.451] {Default Queue} wl_pointer#1353.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.455] {Default Queue} -> wl_pointer#1353.set_cursor(626, wl_surface#41, 0, 0) -[2618592.460] {Default Queue} wl_pointer#1385.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.464] {Default Queue} -> wl_pointer#1385.set_cursor(626, wl_surface#41, 0, 0) -[2618592.468] {Default Queue} wl_pointer#1417.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.472] {Default Queue} -> wl_pointer#1417.set_cursor(626, wl_surface#41, 0, 0) -[2618592.477] {Default Queue} wl_pointer#1449.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.481] {Default Queue} -> wl_pointer#1449.set_cursor(626, wl_surface#41, 0, 0) -[2618592.485] {Default Queue} wl_pointer#1481.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.490] {Default Queue} -> wl_pointer#1481.set_cursor(626, wl_surface#41, 0, 0) -[2618592.494] {Default Queue} wl_pointer#1513.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.498] {Default Queue} -> wl_pointer#1513.set_cursor(626, wl_surface#41, 0, 0) -[2618592.502] {Default Queue} wl_pointer#1545.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.507] {Default Queue} -> wl_pointer#1545.set_cursor(626, wl_surface#41, 0, 0) -[2618592.511] {Default Queue} wl_pointer#1577.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.515] {Default Queue} -> wl_pointer#1577.set_cursor(626, wl_surface#41, 0, 0) -[2618592.520] {Default Queue} wl_pointer#1609.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.524] {Default Queue} -> wl_pointer#1609.set_cursor(626, wl_surface#41, 0, 0) -[2618592.528] {Default Queue} wl_pointer#1641.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.533] {Default Queue} -> wl_pointer#1641.set_cursor(626, wl_surface#41, 0, 0) -[2618592.537] {Default Queue} wl_pointer#1673.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.541] {Default Queue} -> wl_pointer#1673.set_cursor(626, wl_surface#41, 0, 0) -[2618592.546] {Default Queue} wl_pointer#1705.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.550] {Default Queue} -> wl_pointer#1705.set_cursor(626, wl_surface#41, 0, 0) -[2618592.554] {Default Queue} wl_pointer#1737.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.559] {Default Queue} -> wl_pointer#1737.set_cursor(626, wl_surface#41, 0, 0) -[2618592.563] {Default Queue} wl_pointer#1762.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.568] {Default Queue} -> wl_pointer#1762.set_cursor(626, wl_surface#41, 0, 0) -[2618592.582] {Default Queue} wl_pointer#1801.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.588] {Default Queue} -> wl_pointer#1801.set_cursor(626, wl_surface#41, 0, 0) -[2618592.592] {Default Queue} wl_pointer#1833.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.597] {Default Queue} -> wl_pointer#1833.set_cursor(626, wl_surface#41, 0, 0) -[2618592.601] {Default Queue} wl_pointer#1865.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.605] {Default Queue} -> wl_pointer#1865.set_cursor(626, wl_surface#41, 0, 0) -[2618592.609] {Default Queue} wl_pointer#1897.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.614] {Default Queue} -> wl_pointer#1897.set_cursor(626, wl_surface#41, 0, 0) -[2618592.618] {Default Queue} wl_pointer#1929.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.623] {Default Queue} -> wl_pointer#1929.set_cursor(626, wl_surface#41, 0, 0) -[2618592.627] {Default Queue} wl_pointer#1961.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.631] {Default Queue} -> wl_pointer#1961.set_cursor(626, wl_surface#41, 0, 0) -[2618592.635] {Default Queue} wl_pointer#1993.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.640] {Default Queue} -> wl_pointer#1993.set_cursor(626, wl_surface#41, 0, 0) -[2618592.644] {Default Queue} wl_pointer#2025.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.648] {Default Queue} -> wl_pointer#2025.set_cursor(626, wl_surface#41, 0, 0) -[2618592.653] {Default Queue} wl_pointer#2057.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.657] {Default Queue} -> wl_pointer#2057.set_cursor(626, wl_surface#41, 0, 0) -[2618592.661] {Default Queue} wl_pointer#2089.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.666] {Default Queue} -> wl_pointer#2089.set_cursor(626, wl_surface#41, 0, 0) -[2618592.670] {Default Queue} wl_pointer#2121.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.674] {Default Queue} -> wl_pointer#2121.set_cursor(626, wl_surface#41, 0, 0) -[2618592.679] {Default Queue} wl_pointer#2153.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.683] {Default Queue} -> wl_pointer#2153.set_cursor(626, wl_surface#41, 0, 0) -[2618592.687] {Default Queue} wl_pointer#2185.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.692] {Default Queue} -> wl_pointer#2185.set_cursor(626, wl_surface#41, 0, 0) -[2618592.696] {Default Queue} wl_pointer#2217.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.700] {Default Queue} -> wl_pointer#2217.set_cursor(626, wl_surface#41, 0, 0) -[2618592.704] {Default Queue} wl_pointer#2249.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.709] {Default Queue} -> wl_pointer#2249.set_cursor(626, wl_surface#41, 0, 0) -[2618592.713] {Default Queue} wl_pointer#2281.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.717] {Default Queue} -> wl_pointer#2281.set_cursor(626, wl_surface#41, 0, 0) -[2618592.722] {Default Queue} wl_pointer#2313.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.726] {Default Queue} -> wl_pointer#2313.set_cursor(626, wl_surface#41, 0, 0) -[2618592.730] {Default Queue} wl_pointer#2345.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.735] {Default Queue} -> wl_pointer#2345.set_cursor(626, wl_surface#41, 0, 0) -[2618592.739] {Default Queue} wl_pointer#2377.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.743] {Default Queue} -> wl_pointer#2377.set_cursor(626, wl_surface#41, 0, 0) -[2618592.748] {Default Queue} wl_pointer#2409.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.752] {Default Queue} -> wl_pointer#2409.set_cursor(626, wl_surface#41, 0, 0) -[2618592.756] {Default Queue} wl_pointer#2441.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.761] {Default Queue} -> wl_pointer#2441.set_cursor(626, wl_surface#41, 0, 0) -[2618592.765] {Default Queue} wl_pointer#2473.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.769] {Default Queue} -> wl_pointer#2473.set_cursor(626, wl_surface#41, 0, 0) -[2618592.777] {Default Queue} wl_pointer#2498.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.783] {Default Queue} -> wl_pointer#2498.set_cursor(626, wl_surface#41, 0, 0) -[2618592.787] {Default Queue} wl_pointer#2537.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.791] {Default Queue} -> wl_pointer#2537.set_cursor(626, wl_surface#41, 0, 0) -[2618592.795] {Default Queue} wl_pointer#2569.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.800] {Default Queue} -> wl_pointer#2569.set_cursor(626, wl_surface#41, 0, 0) -[2618592.804] {Default Queue} wl_pointer#2601.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.808] {Default Queue} -> wl_pointer#2601.set_cursor(626, wl_surface#41, 0, 0) -[2618592.812] {Default Queue} wl_pointer#2633.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.817] {Default Queue} -> wl_pointer#2633.set_cursor(626, wl_surface#41, 0, 0) -[2618592.821] {Default Queue} wl_pointer#2665.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.826] {Default Queue} -> wl_pointer#2665.set_cursor(626, wl_surface#41, 0, 0) -[2618592.830] {Default Queue} wl_pointer#2697.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.834] {Default Queue} -> wl_pointer#2697.set_cursor(626, wl_surface#41, 0, 0) -[2618592.838] {Default Queue} wl_pointer#2729.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.843] {Default Queue} -> wl_pointer#2729.set_cursor(626, wl_surface#41, 0, 0) -[2618592.847] {Default Queue} wl_pointer#2761.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.852] {Default Queue} -> wl_pointer#2761.set_cursor(626, wl_surface#41, 0, 0) -[2618592.856] {Default Queue} wl_pointer#2793.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.865] {Default Queue} -> wl_pointer#2793.set_cursor(626, wl_surface#41, 0, 0) -[2618592.869] {Default Queue} wl_pointer#2825.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.874] {Default Queue} -> wl_pointer#2825.set_cursor(626, wl_surface#41, 0, 0) -[2618592.878] {Default Queue} wl_pointer#2857.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.882] {Default Queue} -> wl_pointer#2857.set_cursor(626, wl_surface#41, 0, 0) -[2618592.887] {Default Queue} wl_pointer#2889.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.891] {Default Queue} -> wl_pointer#2889.set_cursor(626, wl_surface#41, 0, 0) -[2618592.895] {Default Queue} wl_pointer#2921.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.900] {Default Queue} -> wl_pointer#2921.set_cursor(626, wl_surface#41, 0, 0) -[2618592.904] {Default Queue} wl_pointer#2953.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.908] {Default Queue} -> wl_pointer#2953.set_cursor(626, wl_surface#41, 0, 0) -[2618592.912] {Default Queue} wl_pointer#2985.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.917] {Default Queue} -> wl_pointer#2985.set_cursor(626, wl_surface#41, 0, 0) -[2618592.921] {Default Queue} wl_pointer#3017.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.926] {Default Queue} -> wl_pointer#3017.set_cursor(626, wl_surface#41, 0, 0) -[2618592.930] {Default Queue} wl_pointer#3049.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.934] {Default Queue} -> wl_pointer#3049.set_cursor(626, wl_surface#41, 0, 0) -[2618592.939] {Default Queue} wl_pointer#3081.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.943] {Default Queue} -> wl_pointer#3081.set_cursor(626, wl_surface#41, 0, 0) -[2618592.947] {Default Queue} wl_pointer#3113.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.952] {Default Queue} -> wl_pointer#3113.set_cursor(626, wl_surface#41, 0, 0) -[2618592.956] {Default Queue} wl_pointer#3145.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.960] {Default Queue} -> wl_pointer#3145.set_cursor(626, wl_surface#41, 0, 0) -[2618592.964] {Default Queue} wl_pointer#3177.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.969] {Default Queue} -> wl_pointer#3177.set_cursor(626, wl_surface#41, 0, 0) -[2618592.973] {Default Queue} wl_pointer#3209.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.981] {Default Queue} -> wl_pointer#3209.set_cursor(626, wl_surface#41, 0, 0) -[2618592.987] {Default Queue} wl_pointer#3241.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618592.992] {Default Queue} -> wl_pointer#3241.set_cursor(626, wl_surface#41, 0, 0) -[2618592.996] {Default Queue} wl_pointer#3273.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618593.000] {Default Queue} -> wl_pointer#3273.set_cursor(626, wl_surface#41, 0, 0) -[2618593.005] {Default Queue} wl_pointer#3305.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618593.009] {Default Queue} -> wl_pointer#3305.set_cursor(626, wl_surface#41, 0, 0) -[2618593.013] {Default Queue} wl_pointer#3337.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618593.018] {Default Queue} -> wl_pointer#3337.set_cursor(626, wl_surface#41, 0, 0) -[2618593.022] {Default Queue} wl_pointer#3369.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618593.026] {Default Queue} -> wl_pointer#3369.set_cursor(626, wl_surface#41, 0, 0) -[2618593.031] {Default Queue} wl_pointer#3401.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618593.035] {Default Queue} -> wl_pointer#3401.set_cursor(626, wl_surface#41, 0, 0) -[2618593.039] {Default Queue} wl_pointer#3433.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618593.044] {Default Queue} -> wl_pointer#3433.set_cursor(626, wl_surface#41, 0, 0) -[2618593.048] {Default Queue} wl_pointer#3465.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618593.052] {Default Queue} -> wl_pointer#3465.set_cursor(626, wl_surface#41, 0, 0) -[2618593.057] {Default Queue} wl_pointer#3497.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618593.061] {Default Queue} -> wl_pointer#3497.set_cursor(626, wl_surface#41, 0, 0) -[2618593.065] {Default Queue} wl_pointer#3529.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618593.070] {Default Queue} -> wl_pointer#3529.set_cursor(626, wl_surface#41, 0, 0) -[2618593.074] {Default Queue} wl_pointer#3561.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618593.078] {Default Queue} -> wl_pointer#3561.set_cursor(626, wl_surface#41, 0, 0) -[2618593.083] {Default Queue} wl_pointer#3593.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618593.087] {Default Queue} -> wl_pointer#3593.set_cursor(626, wl_surface#41, 0, 0) -[2618593.091] {Default Queue} wl_pointer#3625.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618593.096] {Default Queue} -> wl_pointer#3625.set_cursor(626, wl_surface#41, 0, 0) -[2618593.100] {Default Queue} wl_pointer#3657.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618593.104] {Default Queue} -> wl_pointer#3657.set_cursor(626, wl_surface#41, 0, 0) -[2618593.109] {Default Queue} wl_pointer#3695.enter(626, wl_surface#71, 0.19921875, 86.80078125) -[2618593.113] {Default Queue} wl_pointer#24.motion(187310226, 1.00000000, 85.19921875) -[2618593.118] {Default Queue} wl_pointer#81.motion(187310226, 1.00000000, 85.19921875) -[2618593.125] {Default Queue} wl_pointer#105.motion(187310226, 1.00000000, 85.19921875) -[2618593.130] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618593.134] {Default Queue} wl_pointer#137.motion(187310226, 1.00000000, 85.19921875) -[2618593.138] {Default Queue} wl_pointer#169.motion(187310226, 1.00000000, 85.19921875) -[2618593.143] {Default Queue} wl_pointer#201.motion(187310226, 1.00000000, 85.19921875) -[2618593.147] {Default Queue} wl_pointer#233.motion(187310226, 1.00000000, 85.19921875) -[2618593.152] {Default Queue} wl_pointer#265.motion(187310226, 1.00000000, 85.19921875) -[2618593.157] {Default Queue} wl_pointer#297.motion(187310226, 1.00000000, 85.19921875) -[2618593.161] {Default Queue} wl_pointer#329.motion(187310226, 1.00000000, 85.19921875) -[2618593.166] {Default Queue} wl_pointer#361.motion(187310226, 1.00000000, 85.19921875) -[2618593.170] {Default Queue} wl_pointer#393.motion(187310226, 1.00000000, 85.19921875) -[2618593.182] {Default Queue} -> wl_region#799.subtract(0, 0, 19, 48) -[2618593.187] {Default Queue} -> wl_region#799.add(-20, -49, 19, 48) -[2618593.195] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2618593.200] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2618593.304] {Default Queue} -> wl_region#799.subtract(0, 0, 19, 48) -[2618593.309] {Default Queue} -> wl_region#799.add(-20, -49, 19, 48) -[2618593.313] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2618593.317] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2618593.323] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618593.328] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618593.479] {Default Queue} -> wl_region#799.subtract(0, 0, 19, 48) -[2618593.492] {Default Queue} -> wl_region#799.add(-20, -49, 19, 48) -[2618593.497] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2618593.502] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2618593.543] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618593.548] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618593.554] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) -[2618593.559] {Default Queue} -> wl_surface#775.commit() -[2618593.563] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) -[2618593.567] {Default Queue} -> wl_surface#775.commit() -[2618593.574] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) -[2618593.579] {Default Queue} -> wl_surface#775.commit() -[2618593.585] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) -[2618593.589] {Default Queue} -> wl_surface#807.commit() -[2618594.652] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) -[2618594.658] {Default Queue} -> wl_surface#807.commit() -[2618594.667] {Default Queue} -> wl_region#831.subtract(0, 0, 19, 48) -[2618594.672] {Default Queue} -> wl_region#831.add(-20, -49, 19, 48) -[2618594.676] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2618594.681] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2618594.788] {Default Queue} -> wl_region#831.subtract(0, 0, 19, 48) -[2618594.793] {Default Queue} -> wl_region#831.add(-20, -49, 19, 48) -[2618594.797] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2618594.801] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2618594.807] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618594.811] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618594.910] {Default Queue} -> wl_region#831.subtract(0, 0, 19, 48) -[2618594.921] {Default Queue} -> wl_region#831.add(-20, -49, 19, 48) -[2618594.927] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2618594.932] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2618594.940] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618594.945] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618594.951] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) -[2618594.956] {Default Queue} -> wl_surface#807.commit() -[2618594.960] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) -[2618594.965] {Default Queue} -> wl_surface#807.commit() -[2618594.972] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) -[2618594.978] {Default Queue} -> wl_surface#807.commit() -[2618594.984] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) -[2618594.989] {Default Queue} -> wl_surface#839.commit() -[2618596.052] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) -[2618596.059] {Default Queue} -> wl_surface#839.commit() -[2618596.070] {Default Queue} -> wl_region#863.subtract(0, 0, 19, 48) -[2618596.075] {Default Queue} -> wl_region#863.add(-20, -49, 19, 48) -[2618596.080] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2618596.084] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2618596.187] {Default Queue} -> wl_region#863.subtract(0, 0, 19, 48) -[2618596.217] {Default Queue} -> wl_region#863.add(-20, -49, 19, 48) -[2618596.223] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2618596.232] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2618596.241] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618596.246] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618596.333] {Default Queue} -> wl_region#863.subtract(0, 0, 19, 48) -[2618596.338] {Default Queue} -> wl_region#863.add(-20, -49, 19, 48) -[2618596.343] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2618596.347] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2618596.352] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618596.356] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618596.361] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) -[2618596.366] {Default Queue} -> wl_surface#839.commit() -[2618596.370] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) -[2618596.374] {Default Queue} -> wl_surface#839.commit() -[2618596.381] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) -[2618596.385] {Default Queue} -> wl_surface#839.commit() -[2618596.391] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) -[2618596.395] {Default Queue} -> wl_surface#679.commit() -[2618596.496] {Default Queue} wl_pointer#425.motion(187310226, 1.00000000, 85.19921875) -[2618596.514] {Default Queue} wl_pointer#457.motion(187310226, 1.00000000, 85.19921875) -[2618596.520] {Default Queue} wl_pointer#489.motion(187310226, 1.00000000, 85.19921875) -[2618596.525] {Default Queue} wl_pointer#521.motion(187310226, 1.00000000, 85.19921875) -[2618596.529] {Default Queue} wl_pointer#553.motion(187310226, 1.00000000, 85.19921875) -[2618596.533] {Default Queue} wl_pointer#585.motion(187310226, 1.00000000, 85.19921875) -[2618596.538] {Default Queue} wl_pointer#617.motion(187310226, 1.00000000, 85.19921875) -[2618596.543] {Default Queue} wl_pointer#649.motion(187310226, 1.00000000, 85.19921875) -[2618596.548] {Default Queue} wl_pointer#681.motion(187310226, 1.00000000, 85.19921875) -[2618596.552] {Default Queue} wl_pointer#713.motion(187310226, 1.00000000, 85.19921875) -[2618596.557] {Default Queue} wl_pointer#745.motion(187310226, 1.00000000, 85.19921875) -[2618596.561] {Default Queue} wl_pointer#777.motion(187310226, 1.00000000, 85.19921875) -[2618596.565] {Default Queue} wl_pointer#809.motion(187310226, 1.00000000, 85.19921875) -[2618596.570] {Default Queue} wl_pointer#841.motion(187310226, 1.00000000, 85.19921875) -[2618596.574] {Default Queue} wl_pointer#873.motion(187310226, 1.00000000, 85.19921875) -[2618596.578] {Default Queue} wl_pointer#905.motion(187310226, 1.00000000, 85.19921875) -[2618596.583] {Default Queue} wl_pointer#937.motion(187310226, 1.00000000, 85.19921875) -[2618596.588] {Default Queue} wl_pointer#969.motion(187310226, 1.00000000, 85.19921875) -[2618596.592] {Default Queue} wl_pointer#1001.motion(187310226, 1.00000000, 85.19921875) -[2618596.597] {Default Queue} wl_pointer#1033.motion(187310226, 1.00000000, 85.19921875) -[2618596.602] {Default Queue} wl_pointer#1065.motion(187310226, 1.00000000, 85.19921875) -[2618596.607] {Default Queue} wl_pointer#1097.motion(187310226, 1.00000000, 85.19921875) -[2618596.612] {Default Queue} wl_pointer#1129.motion(187310226, 1.00000000, 85.19921875) -[2618596.616] {Default Queue} wl_pointer#1161.motion(187310226, 1.00000000, 85.19921875) -[2618596.621] {Default Queue} wl_pointer#1193.motion(187310226, 1.00000000, 85.19921875) -[2618596.626] {Default Queue} wl_pointer#1225.motion(187310226, 1.00000000, 85.19921875) -[2618596.631] {Default Queue} wl_pointer#1257.motion(187310226, 1.00000000, 85.19921875) -[2618596.636] {Default Queue} wl_pointer#1289.motion(187310226, 1.00000000, 85.19921875) -[2618596.640] {Default Queue} wl_pointer#1321.motion(187310226, 1.00000000, 85.19921875) -[2618596.645] {Default Queue} wl_pointer#1353.motion(187310226, 1.00000000, 85.19921875) -[2618596.650] {Default Queue} wl_pointer#1385.motion(187310226, 1.00000000, 85.19921875) -[2618596.655] {Default Queue} wl_pointer#1417.motion(187310226, 1.00000000, 85.19921875) -[2618596.659] {Default Queue} wl_pointer#1449.motion(187310226, 1.00000000, 85.19921875) -[2618596.672] {Default Queue} wl_pointer#1481.motion(187310226, 1.00000000, 85.19921875) -[2618596.680] {Default Queue} wl_pointer#1513.motion(187310226, 1.00000000, 85.19921875) -[2618596.685] {Default Queue} wl_pointer#1545.motion(187310226, 1.00000000, 85.19921875) -[2618596.689] {Default Queue} wl_pointer#1577.motion(187310226, 1.00000000, 85.19921875) -[2618596.694] {Default Queue} wl_pointer#1609.motion(187310226, 1.00000000, 85.19921875) -[2618596.699] {Default Queue} wl_pointer#1641.motion(187310226, 1.00000000, 85.19921875) -[2618596.703] {Default Queue} wl_pointer#1673.motion(187310226, 1.00000000, 85.19921875) -[2618596.708] {Default Queue} wl_pointer#1705.motion(187310226, 1.00000000, 85.19921875) -[2618596.713] {Default Queue} wl_pointer#1737.motion(187310226, 1.00000000, 85.19921875) -[2618596.718] {Default Queue} wl_pointer#1762.motion(187310226, 1.00000000, 85.19921875) -[2618596.723] {Default Queue} wl_pointer#1801.motion(187310226, 1.00000000, 85.19921875) -[2618596.728] {Default Queue} wl_pointer#1833.motion(187310226, 1.00000000, 85.19921875) -[2618596.733] {Default Queue} wl_pointer#1865.motion(187310226, 1.00000000, 85.19921875) -[2618596.737] {Default Queue} wl_pointer#1897.motion(187310226, 1.00000000, 85.19921875) -[2618596.742] {Default Queue} wl_pointer#1929.motion(187310226, 1.00000000, 85.19921875) -[2618596.747] {Default Queue} wl_pointer#1961.motion(187310226, 1.00000000, 85.19921875) -[2618596.752] {Default Queue} wl_pointer#1993.motion(187310226, 1.00000000, 85.19921875) -[2618596.757] {Default Queue} wl_pointer#2025.motion(187310226, 1.00000000, 85.19921875) -[2618596.762] {Default Queue} wl_pointer#2057.motion(187310226, 1.00000000, 85.19921875) -[2618596.767] {Default Queue} wl_pointer#2089.motion(187310226, 1.00000000, 85.19921875) -[2618596.772] {Default Queue} wl_pointer#2121.motion(187310226, 1.00000000, 85.19921875) -[2618596.776] {Default Queue} wl_pointer#2153.motion(187310226, 1.00000000, 85.19921875) -[2618596.781] {Default Queue} wl_pointer#2185.motion(187310226, 1.00000000, 85.19921875) -[2618596.786] {Default Queue} wl_pointer#2217.motion(187310226, 1.00000000, 85.19921875) -[2618596.791] {Default Queue} wl_pointer#2249.motion(187310226, 1.00000000, 85.19921875) -[2618596.795] {Default Queue} wl_pointer#2281.motion(187310226, 1.00000000, 85.19921875) -[2618596.800] {Default Queue} wl_pointer#2313.motion(187310226, 1.00000000, 85.19921875) -[2618596.806] {Default Queue} wl_pointer#2345.motion(187310226, 1.00000000, 85.19921875) -[2618596.811] {Default Queue} wl_pointer#2377.motion(187310226, 1.00000000, 85.19921875) -[2618596.816] {Default Queue} wl_pointer#2409.motion(187310226, 1.00000000, 85.19921875) -[2618596.820] {Default Queue} wl_pointer#2441.motion(187310226, 1.00000000, 85.19921875) -[2618596.825] {Default Queue} wl_pointer#2473.motion(187310226, 1.00000000, 85.19921875) -[2618596.830] {Default Queue} wl_pointer#2498.motion(187310226, 1.00000000, 85.19921875) -[2618596.846] {Default Queue} -> wl_buffer#2504.destroy() -[2618596.852] {Default Queue} -> wl_buffer#2505.destroy() -[2618596.856] {Default Queue} -> wl_shm_pool#2502.destroy() -[2618596.868] {Default Queue} -> wl_shm_pool#2503.destroy() -[2618596.874] {Default Queue} -> wl_surface#2506.destroy() -[2618596.936] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3674, fd 575, 640) -[2618596.943] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3676, fd 578, 640) -[2618596.948] {Default Queue} -> wl_shm_pool#3674.create_buffer(new id wl_buffer#3675, 0, 10, 16, 40, 0) -[2618596.953] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 10, 16, 40, 0) -[2618596.962] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3677) -[2618596.966] {Default Queue} -> wl_surface#3677.attach(wl_buffer#3675, 0, 0) -[2618596.971] {Default Queue} -> wl_surface#3677.commit() -[2618596.976] {Default Queue} -> wl_surface#3677.attach(wl_buffer#3675, 0, 0) -[2618596.980] {Default Queue} -> wl_surface#3677.commit() -[2618596.985] {Default Queue} wl_pointer#2537.motion(187310226, 1.00000000, 85.19921875) -[2618596.994] {Default Queue} wl_pointer#2569.motion(187310226, 1.00000000, 85.19921875) -[2618597.001] {Default Queue} wl_pointer#2601.motion(187310226, 1.00000000, 85.19921875) -[2618597.006] {Default Queue} wl_pointer#2633.motion(187310226, 1.00000000, 85.19921875) -[2618597.011] {Default Queue} wl_pointer#2665.motion(187310226, 1.00000000, 85.19921875) -[2618597.016] {Default Queue} wl_pointer#2697.motion(187310226, 1.00000000, 85.19921875) -[2618597.021] {Default Queue} wl_pointer#2729.motion(187310226, 1.00000000, 85.19921875) -[2618597.025] {Default Queue} wl_pointer#2761.motion(187310226, 1.00000000, 85.19921875) -[2618597.030] {Default Queue} wl_pointer#2793.motion(187310226, 1.00000000, 85.19921875) -[2618597.035] {Default Queue} wl_pointer#2825.motion(187310226, 1.00000000, 85.19921875) -[2618597.041] {Default Queue} wl_pointer#2857.motion(187310226, 1.00000000, 85.19921875) -[2618597.046] {Default Queue} wl_pointer#2889.motion(187310226, 1.00000000, 85.19921875) -[2618597.051] {Default Queue} wl_pointer#2921.motion(187310226, 1.00000000, 85.19921875) -[2618597.056] {Default Queue} wl_pointer#2953.motion(187310226, 1.00000000, 85.19921875) -[2618597.061] {Default Queue} wl_pointer#2985.motion(187310226, 1.00000000, 85.19921875) -[2618597.066] {Default Queue} wl_pointer#3017.motion(187310226, 1.00000000, 85.19921875) -[2618597.070] {Default Queue} wl_pointer#3049.motion(187310226, 1.00000000, 85.19921875) -[2618597.075] {Default Queue} wl_pointer#3081.motion(187310226, 1.00000000, 85.19921875) -[2618597.080] {Default Queue} wl_pointer#3113.motion(187310226, 1.00000000, 85.19921875) -[2618597.085] {Default Queue} wl_pointer#3145.motion(187310226, 1.00000000, 85.19921875) -[2618597.090] {Default Queue} wl_pointer#3177.motion(187310226, 1.00000000, 85.19921875) -[2618597.095] {Default Queue} wl_pointer#3209.motion(187310226, 1.00000000, 85.19921875) -[2618597.100] {Default Queue} wl_pointer#3241.motion(187310226, 1.00000000, 85.19921875) -[2618597.105] {Default Queue} wl_pointer#3273.motion(187310226, 1.00000000, 85.19921875) -[2618597.110] {Default Queue} wl_pointer#3305.motion(187310226, 1.00000000, 85.19921875) -[2618597.115] {Default Queue} wl_pointer#3337.motion(187310226, 1.00000000, 85.19921875) -[2618597.120] {Default Queue} wl_pointer#3369.motion(187310226, 1.00000000, 85.19921875) -[2618597.125] {Default Queue} wl_pointer#3401.motion(187310226, 1.00000000, 85.19921875) -[2618597.130] {Default Queue} wl_pointer#3433.motion(187310226, 1.00000000, 85.19921875) -[2618597.136] {Default Queue} wl_pointer#3465.motion(187310226, 1.00000000, 85.19921875) -[2618597.142] {Default Queue} wl_pointer#3497.motion(187310226, 1.00000000, 85.19921875) -[2618597.147] {Default Queue} wl_pointer#3529.motion(187310226, 1.00000000, 85.19921875) -[2618597.151] {Default Queue} wl_pointer#3561.motion(187310226, 1.00000000, 85.19921875) -[2618597.156] {Default Queue} wl_pointer#3593.motion(187310226, 1.00000000, 85.19921875) -[2618597.162] {Default Queue} wl_pointer#3625.motion(187310226, 1.00000000, 85.19921875) -[2618597.167] {Default Queue} wl_pointer#3657.motion(187310226, 1.00000000, 85.19921875) -[2618597.172] {Default Queue} wl_pointer#3695.motion(187310226, 1.00000000, 85.19921875) -[2618597.182] {Default Queue} -> wl_region#703.subtract(0, 0, 19, 48) -[2618597.187] {Default Queue} -> wl_region#703.add(-20, -49, 19, 48) -[2618597.191] {Default Queue} -> wl_surface#679.set_opaque_region(wl_region#704) -[2618597.195] {Default Queue} -> wl_surface#679.set_input_region(wl_region#703) -[2618597.201] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) -[2618597.206] {Default Queue} -> wl_surface#679.commit() -[2618597.210] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) -[2618597.214] {Default Queue} -> wl_surface#679.commit() -[2618597.272] {Default Queue} wl_pointer#24.motion(187310231, 1.80078125, 83.60156250) -[2618597.277] {Default Queue} wl_pointer#81.motion(187310231, 1.80078125, 83.60156250) -[2618597.283] {Default Queue} wl_pointer#105.motion(187310231, 1.80078125, 83.60156250) -[2618597.288] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618597.295] {Default Queue} wl_pointer#137.motion(187310231, 1.80078125, 83.60156250) -[2618597.301] {Default Queue} wl_pointer#169.motion(187310231, 1.80078125, 83.60156250) -[2618597.306] {Default Queue} wl_pointer#201.motion(187310231, 1.80078125, 83.60156250) -[2618597.310] {Default Queue} wl_pointer#233.motion(187310231, 1.80078125, 83.60156250) -[2618597.314] {Default Queue} wl_pointer#265.motion(187310231, 1.80078125, 83.60156250) -[2618597.318] {Default Queue} wl_pointer#297.motion(187310231, 1.80078125, 83.60156250) -[2618597.323] {Default Queue} wl_pointer#329.motion(187310231, 1.80078125, 83.60156250) -[2618597.327] {Default Queue} wl_pointer#361.motion(187310231, 1.80078125, 83.60156250) -[2618597.332] {Default Queue} wl_pointer#393.motion(187310231, 1.80078125, 83.60156250) -[2618597.336] {Default Queue} wl_pointer#425.motion(187310231, 1.80078125, 83.60156250) -[2618597.340] {Default Queue} wl_pointer#457.motion(187310231, 1.80078125, 83.60156250) -[2618597.345] {Default Queue} wl_pointer#489.motion(187310231, 1.80078125, 83.60156250) -[2618597.349] {Default Queue} wl_pointer#521.motion(187310231, 1.80078125, 83.60156250) -[2618597.353] {Default Queue} wl_pointer#553.motion(187310231, 1.80078125, 83.60156250) -[2618597.358] {Default Queue} wl_pointer#585.motion(187310231, 1.80078125, 83.60156250) -[2618597.362] {Default Queue} wl_pointer#617.motion(187310231, 1.80078125, 83.60156250) -[2618597.366] {Default Queue} wl_pointer#649.motion(187310231, 1.80078125, 83.60156250) -[2618597.370] {Default Queue} wl_pointer#681.motion(187310231, 1.80078125, 83.60156250) -[2618597.374] {Default Queue} wl_pointer#713.motion(187310231, 1.80078125, 83.60156250) -[2618597.379] {Default Queue} wl_pointer#745.motion(187310231, 1.80078125, 83.60156250) -[2618597.383] {Default Queue} wl_pointer#777.motion(187310231, 1.80078125, 83.60156250) -[2618597.387] {Default Queue} wl_pointer#809.motion(187310231, 1.80078125, 83.60156250) -[2618597.391] {Default Queue} wl_pointer#841.motion(187310231, 1.80078125, 83.60156250) -[2618597.396] {Default Queue} wl_pointer#873.motion(187310231, 1.80078125, 83.60156250) -[2618597.400] {Default Queue} wl_pointer#905.motion(187310231, 1.80078125, 83.60156250) -[2618597.404] {Default Queue} wl_pointer#937.motion(187310231, 1.80078125, 83.60156250) -[2618597.408] {Default Queue} wl_pointer#969.motion(187310231, 1.80078125, 83.60156250) -[2618597.412] {Default Queue} wl_pointer#1001.motion(187310231, 1.80078125, 83.60156250) -[2618597.417] {Default Queue} wl_pointer#1033.motion(187310231, 1.80078125, 83.60156250) -[2618597.421] {Default Queue} wl_pointer#1065.motion(187310231, 1.80078125, 83.60156250) -[2618597.426] {Default Queue} wl_pointer#1097.motion(187310231, 1.80078125, 83.60156250) -[2618597.430] {Default Queue} wl_pointer#1129.motion(187310231, 1.80078125, 83.60156250) -[2618597.434] {Default Queue} wl_pointer#1161.motion(187310231, 1.80078125, 83.60156250) -[2618597.438] {Default Queue} wl_pointer#1193.motion(187310231, 1.80078125, 83.60156250) -[2618597.443] {Default Queue} wl_pointer#1225.motion(187310231, 1.80078125, 83.60156250) -[2618597.448] {Default Queue} wl_pointer#1257.motion(187310231, 1.80078125, 83.60156250) -[2618597.454] {Default Queue} wl_pointer#1289.motion(187310231, 1.80078125, 83.60156250) -[2618597.460] {Default Queue} wl_pointer#1321.motion(187310231, 1.80078125, 83.60156250) -[2618597.466] {Default Queue} wl_pointer#1353.motion(187310231, 1.80078125, 83.60156250) -[2618597.471] {Default Queue} wl_pointer#1385.motion(187310231, 1.80078125, 83.60156250) -[2618597.477] {Default Queue} wl_pointer#1417.motion(187310231, 1.80078125, 83.60156250) -[2618597.483] {Default Queue} wl_pointer#1449.motion(187310231, 1.80078125, 83.60156250) -[2618597.489] {Default Queue} wl_pointer#1481.motion(187310231, 1.80078125, 83.60156250) -[2618597.495] {Default Queue} wl_pointer#1513.motion(187310231, 1.80078125, 83.60156250) -[2618597.501] {Default Queue} wl_pointer#1545.motion(187310231, 1.80078125, 83.60156250) -[2618597.507] {Default Queue} wl_pointer#1577.motion(187310231, 1.80078125, 83.60156250) -[2618597.517] {Default Queue} wl_pointer#1609.motion(187310231, 1.80078125, 83.60156250) -[2618597.523] {Default Queue} wl_pointer#1641.motion(187310231, 1.80078125, 83.60156250) -[2618597.527] {Default Queue} wl_pointer#1673.motion(187310231, 1.80078125, 83.60156250) -[2618597.532] {Default Queue} wl_pointer#1705.motion(187310231, 1.80078125, 83.60156250) -[2618597.536] {Default Queue} wl_pointer#1737.motion(187310231, 1.80078125, 83.60156250) -[2618597.540] {Default Queue} wl_pointer#1762.motion(187310231, 1.80078125, 83.60156250) -[2618597.544] {Default Queue} wl_pointer#1801.motion(187310231, 1.80078125, 83.60156250) -[2618597.549] {Default Queue} wl_pointer#1833.motion(187310231, 1.80078125, 83.60156250) -[2618597.553] {Default Queue} wl_pointer#1865.motion(187310231, 1.80078125, 83.60156250) -[2618597.557] {Default Queue} wl_pointer#1897.motion(187310231, 1.80078125, 83.60156250) -[2618597.561] {Default Queue} wl_pointer#1929.motion(187310231, 1.80078125, 83.60156250) -[2618597.566] {Default Queue} wl_pointer#1961.motion(187310231, 1.80078125, 83.60156250) -[2618597.570] {Default Queue} wl_pointer#1993.motion(187310231, 1.80078125, 83.60156250) -[2618597.575] {Default Queue} wl_pointer#2025.motion(187310231, 1.80078125, 83.60156250) -[2618597.579] {Default Queue} wl_pointer#2057.motion(187310231, 1.80078125, 83.60156250) -[2618597.583] {Default Queue} wl_pointer#2089.motion(187310231, 1.80078125, 83.60156250) -[2618597.587] {Default Queue} wl_pointer#2121.motion(187310231, 1.80078125, 83.60156250) -[2618597.592] {Default Queue} wl_pointer#2153.motion(187310231, 1.80078125, 83.60156250) -[2618597.596] {Default Queue} wl_pointer#2185.motion(187310231, 1.80078125, 83.60156250) -[2618597.600] {Default Queue} wl_pointer#2217.motion(187310231, 1.80078125, 83.60156250) -[2618597.604] {Default Queue} wl_pointer#2249.motion(187310231, 1.80078125, 83.60156250) -[2618597.609] {Default Queue} wl_pointer#2281.motion(187310231, 1.80078125, 83.60156250) -[2618597.613] {Default Queue} wl_pointer#2313.motion(187310231, 1.80078125, 83.60156250) -[2618597.618] {Default Queue} wl_pointer#2345.motion(187310231, 1.80078125, 83.60156250) -[2618597.622] {Default Queue} wl_pointer#2377.motion(187310231, 1.80078125, 83.60156250) -[2618597.627] {Default Queue} wl_pointer#2409.motion(187310231, 1.80078125, 83.60156250) -[2618597.631] {Default Queue} wl_pointer#2441.motion(187310231, 1.80078125, 83.60156250) -[2618597.635] {Default Queue} wl_pointer#2473.motion(187310231, 1.80078125, 83.60156250) -[2618597.640] {Default Queue} wl_pointer#2498.motion(187310231, 1.80078125, 83.60156250) -[2618597.651] {Default Queue} -> wl_buffer#3675.destroy() -[2618597.656] {Default Queue} -> wl_buffer#3678.destroy() -[2618597.660] {Default Queue} -> wl_shm_pool#3674.destroy() -[2618597.664] {Default Queue} -> wl_shm_pool#3676.destroy() -[2618597.669] {Default Queue} -> wl_surface#3677.destroy() -[2618597.712] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3671, fd 581, 640) -[2618597.718] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 582, 640) -[2618597.723] {Default Queue} -> wl_shm_pool#3671.create_buffer(new id wl_buffer#3682, 0, 10, 16, 40, 0) -[2618597.728] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) -[2618597.735] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3684) -[2618597.740] {Default Queue} -> wl_surface#3684.attach(wl_buffer#3682, 0, 0) -[2618597.744] {Default Queue} -> wl_surface#3684.commit() -[2618597.749] {Default Queue} -> wl_surface#3684.attach(wl_buffer#3682, 0, 0) -[2618597.753] {Default Queue} -> wl_surface#3684.commit() -[2618597.758] {Default Queue} wl_pointer#2537.motion(187310231, 1.80078125, 83.60156250) -[2618597.762] {Default Queue} wl_pointer#2569.motion(187310231, 1.80078125, 83.60156250) -[2618597.767] {Default Queue} wl_pointer#2601.motion(187310231, 1.80078125, 83.60156250) -[2618597.771] {Default Queue} wl_pointer#2633.motion(187310231, 1.80078125, 83.60156250) -[2618597.776] {Default Queue} wl_pointer#2665.motion(187310231, 1.80078125, 83.60156250) -[2618597.783] {Default Queue} wl_pointer#2697.motion(187310231, 1.80078125, 83.60156250) -[2618597.789] {Default Queue} wl_pointer#2729.motion(187310231, 1.80078125, 83.60156250) -[2618597.794] {Default Queue} wl_pointer#2761.motion(187310231, 1.80078125, 83.60156250) -[2618597.798] {Default Queue} wl_pointer#2793.motion(187310231, 1.80078125, 83.60156250) -[2618597.803] {Default Queue} wl_pointer#2825.motion(187310231, 1.80078125, 83.60156250) -[2618597.807] {Default Queue} wl_pointer#2857.motion(187310231, 1.80078125, 83.60156250) -[2618597.811] {Default Queue} wl_pointer#2889.motion(187310231, 1.80078125, 83.60156250) -[2618597.816] {Default Queue} wl_pointer#2921.motion(187310231, 1.80078125, 83.60156250) -[2618597.820] {Default Queue} wl_pointer#2953.motion(187310231, 1.80078125, 83.60156250) -[2618597.825] {Default Queue} wl_pointer#2985.motion(187310231, 1.80078125, 83.60156250) -[2618597.829] {Default Queue} wl_pointer#3017.motion(187310231, 1.80078125, 83.60156250) -[2618597.833] {Default Queue} wl_pointer#3049.motion(187310231, 1.80078125, 83.60156250) -[2618597.838] {Default Queue} wl_pointer#3081.motion(187310231, 1.80078125, 83.60156250) -[2618597.842] {Default Queue} wl_pointer#3113.motion(187310231, 1.80078125, 83.60156250) -[2618597.846] {Default Queue} wl_pointer#3145.motion(187310231, 1.80078125, 83.60156250) -[2618597.851] {Default Queue} wl_pointer#3177.motion(187310231, 1.80078125, 83.60156250) -[2618597.855] {Default Queue} wl_pointer#3209.motion(187310231, 1.80078125, 83.60156250) -[2618597.859] {Default Queue} wl_pointer#3241.motion(187310231, 1.80078125, 83.60156250) -[2618597.870] {Default Queue} wl_pointer#3273.motion(187310231, 1.80078125, 83.60156250) -[2618597.875] {Default Queue} wl_pointer#3305.motion(187310231, 1.80078125, 83.60156250) -[2618597.879] {Default Queue} wl_pointer#3337.motion(187310231, 1.80078125, 83.60156250) -[2618597.883] {Default Queue} wl_pointer#3369.motion(187310231, 1.80078125, 83.60156250) -[2618597.888] {Default Queue} wl_pointer#3401.motion(187310231, 1.80078125, 83.60156250) -[2618597.892] {Default Queue} wl_pointer#3433.motion(187310231, 1.80078125, 83.60156250) -[2618597.897] {Default Queue} wl_pointer#3465.motion(187310231, 1.80078125, 83.60156250) -[2618597.901] {Default Queue} wl_pointer#3497.motion(187310231, 1.80078125, 83.60156250) -[2618597.906] {Default Queue} wl_pointer#3529.motion(187310231, 1.80078125, 83.60156250) -[2618597.910] {Default Queue} wl_pointer#3561.motion(187310231, 1.80078125, 83.60156250) -[2618597.915] {Default Queue} wl_pointer#3593.motion(187310231, 1.80078125, 83.60156250) -[2618597.919] {Default Queue} wl_pointer#3625.motion(187310231, 1.80078125, 83.60156250) -[2618597.923] {Default Queue} wl_pointer#3657.motion(187310231, 1.80078125, 83.60156250) -[2618597.928] {Default Queue} wl_pointer#3695.motion(187310231, 1.80078125, 83.60156250) -[2618597.932] {Default Queue} wl_pointer#24.motion(187310231, 3.00000000, 81.60156250) -[2618597.936] {Default Queue} wl_pointer#81.motion(187310231, 3.00000000, 81.60156250) -[2618597.941] {Default Queue} wl_pointer#105.motion(187310231, 3.00000000, 81.60156250) -[2618597.946] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618597.950] {Default Queue} wl_pointer#137.motion(187310231, 3.00000000, 81.60156250) -[2618597.954] {Default Queue} wl_pointer#169.motion(187310231, 3.00000000, 81.60156250) -[2618597.959] {Default Queue} wl_pointer#201.motion(187310231, 3.00000000, 81.60156250) -[2618597.963] {Default Queue} wl_pointer#233.motion(187310231, 3.00000000, 81.60156250) -[2618597.967] {Default Queue} wl_pointer#265.motion(187310231, 3.00000000, 81.60156250) -[2618597.971] {Default Queue} wl_pointer#297.motion(187310231, 3.00000000, 81.60156250) -[2618597.976] {Default Queue} wl_pointer#329.motion(187310231, 3.00000000, 81.60156250) -[2618597.980] {Default Queue} wl_pointer#361.motion(187310231, 3.00000000, 81.60156250) -[2618597.985] {Default Queue} wl_pointer#393.motion(187310231, 3.00000000, 81.60156250) -[2618597.991] {Default Queue} wl_pointer#425.motion(187310231, 3.00000000, 81.60156250) -[2618598.001] {Default Queue} wl_pointer#457.motion(187310231, 3.00000000, 81.60156250) -[2618598.009] {Default Queue} wl_pointer#489.motion(187310231, 3.00000000, 81.60156250) -[2618598.013] {Default Queue} wl_pointer#521.motion(187310231, 3.00000000, 81.60156250) -[2618598.019] {Default Queue} wl_pointer#553.motion(187310231, 3.00000000, 81.60156250) -[2618598.025] {Default Queue} wl_pointer#585.motion(187310231, 3.00000000, 81.60156250) -[2618598.031] {Default Queue} wl_pointer#617.motion(187310231, 3.00000000, 81.60156250) -[2618598.037] {Default Queue} wl_pointer#649.motion(187310231, 3.00000000, 81.60156250) -[2618598.042] {Default Queue} wl_pointer#681.motion(187310231, 3.00000000, 81.60156250) -[2618598.046] {Default Queue} wl_pointer#713.motion(187310231, 3.00000000, 81.60156250) -[2618598.050] {Default Queue} wl_pointer#745.motion(187310231, 3.00000000, 81.60156250) -[2618598.055] {Default Queue} wl_pointer#777.motion(187310231, 3.00000000, 81.60156250) -[2618598.059] {Default Queue} wl_pointer#809.motion(187310231, 3.00000000, 81.60156250) -[2618598.063] {Default Queue} wl_pointer#841.motion(187310231, 3.00000000, 81.60156250) -[2618598.067] {Default Queue} wl_pointer#873.motion(187310231, 3.00000000, 81.60156250) -[2618598.072] {Default Queue} wl_pointer#905.motion(187310231, 3.00000000, 81.60156250) -[2618598.076] {Default Queue} wl_pointer#937.motion(187310231, 3.00000000, 81.60156250) -[2618598.080] {Default Queue} wl_pointer#969.motion(187310231, 3.00000000, 81.60156250) -[2618598.085] {Default Queue} wl_pointer#1001.motion(187310231, 3.00000000, 81.60156250) -[2618598.089] {Default Queue} wl_pointer#1033.motion(187310231, 3.00000000, 81.60156250) -[2618598.093] {Default Queue} wl_pointer#1065.motion(187310231, 3.00000000, 81.60156250) -[2618598.097] {Default Queue} wl_pointer#1097.motion(187310231, 3.00000000, 81.60156250) -[2618598.102] {Default Queue} wl_pointer#1129.motion(187310231, 3.00000000, 81.60156250) -[2618598.106] {Default Queue} wl_pointer#1161.motion(187310231, 3.00000000, 81.60156250) -[2618598.110] {Default Queue} wl_pointer#1193.motion(187310231, 3.00000000, 81.60156250) -[2618598.114] {Default Queue} wl_pointer#1225.motion(187310231, 3.00000000, 81.60156250) -[2618598.119] {Default Queue} wl_pointer#1257.motion(187310231, 3.00000000, 81.60156250) -[2618598.123] {Default Queue} wl_pointer#1289.motion(187310231, 3.00000000, 81.60156250) -[2618598.127] {Default Queue} wl_pointer#1321.motion(187310231, 3.00000000, 81.60156250) -[2618598.132] {Default Queue} wl_pointer#1353.motion(187310231, 3.00000000, 81.60156250) -[2618598.136] {Default Queue} wl_pointer#1385.motion(187310231, 3.00000000, 81.60156250) -[2618598.140] {Default Queue} wl_pointer#1417.motion(187310231, 3.00000000, 81.60156250) -[2618598.144] {Default Queue} wl_pointer#1449.motion(187310231, 3.00000000, 81.60156250) -[2618598.149] {Default Queue} wl_pointer#1481.motion(187310231, 3.00000000, 81.60156250) -[2618598.153] {Default Queue} wl_pointer#1513.motion(187310231, 3.00000000, 81.60156250) -[2618598.157] {Default Queue} wl_pointer#1545.motion(187310231, 3.00000000, 81.60156250) -[2618598.162] {Default Queue} wl_pointer#1577.motion(187310231, 3.00000000, 81.60156250) -[2618598.166] {Default Queue} wl_pointer#1609.motion(187310231, 3.00000000, 81.60156250) -[2618598.170] {Default Queue} wl_pointer#1641.motion(187310231, 3.00000000, 81.60156250) -[2618598.174] {Default Queue} wl_pointer#1673.motion(187310231, 3.00000000, 81.60156250) -[2618598.179] {Default Queue} wl_pointer#1705.motion(187310231, 3.00000000, 81.60156250) -[2618598.183] {Default Queue} wl_pointer#1737.motion(187310231, 3.00000000, 81.60156250) -[2618598.187] {Default Queue} wl_pointer#1762.motion(187310231, 3.00000000, 81.60156250) -[2618598.192] {Default Queue} wl_pointer#1801.motion(187310231, 3.00000000, 81.60156250) -[2618598.196] {Default Queue} wl_pointer#1833.motion(187310231, 3.00000000, 81.60156250) -[2618598.200] {Default Queue} wl_pointer#1865.motion(187310231, 3.00000000, 81.60156250) -[2618598.204] {Default Queue} wl_pointer#1897.motion(187310231, 3.00000000, 81.60156250) -[2618598.212] {Default Queue} wl_pointer#1929.motion(187310231, 3.00000000, 81.60156250) -[2618598.218] {Default Queue} wl_pointer#1961.motion(187310231, 3.00000000, 81.60156250) -[2618598.222] {Default Queue} wl_pointer#1993.motion(187310231, 3.00000000, 81.60156250) -[2618598.226] {Default Queue} wl_pointer#2025.motion(187310231, 3.00000000, 81.60156250) -[2618598.230] {Default Queue} wl_pointer#2057.motion(187310231, 3.00000000, 81.60156250) -[2618598.235] {Default Queue} wl_pointer#2089.motion(187310231, 3.00000000, 81.60156250) -[2618598.239] {Default Queue} wl_pointer#2121.motion(187310231, 3.00000000, 81.60156250) -[2618598.243] {Default Queue} wl_pointer#2153.motion(187310231, 3.00000000, 81.60156250) -[2618598.248] {Default Queue} wl_pointer#2185.motion(187310231, 3.00000000, 81.60156250) -[2618598.252] {Default Queue} wl_pointer#2217.motion(187310231, 3.00000000, 81.60156250) -[2618598.256] {Default Queue} wl_pointer#2249.motion(187310231, 3.00000000, 81.60156250) -[2618598.260] {Default Queue} wl_pointer#2281.motion(187310231, 3.00000000, 81.60156250) -[2618598.265] {Default Queue} wl_pointer#2313.motion(187310231, 3.00000000, 81.60156250) -[2618598.269] {Default Queue} wl_pointer#2345.motion(187310231, 3.00000000, 81.60156250) -[2618598.274] {Default Queue} wl_pointer#2377.motion(187310231, 3.00000000, 81.60156250) -[2618598.278] {Default Queue} wl_pointer#2409.motion(187310231, 3.00000000, 81.60156250) -[2618598.282] {Default Queue} wl_pointer#2441.motion(187310231, 3.00000000, 81.60156250) -[2618598.287] {Default Queue} wl_pointer#2473.motion(187310231, 3.00000000, 81.60156250) -[2618598.291] {Default Queue} wl_pointer#2498.motion(187310231, 3.00000000, 81.60156250) -[2618598.302] {Default Queue} -> wl_buffer#3682.destroy() -[2618598.308] {Default Queue} -> wl_buffer#3681.destroy() -[2618598.312] {Default Queue} -> wl_shm_pool#3671.destroy() -[2618598.316] {Default Queue} -> wl_shm_pool#3679.destroy() -[2618598.321] {Default Queue} -> wl_surface#3684.destroy() -[2618598.358] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3683, fd 583, 640) -[2618598.364] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 584, 640) -[2618598.368] {Default Queue} -> wl_shm_pool#3683.create_buffer(new id wl_buffer#91, 0, 10, 16, 40, 0) -[2618598.373] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) -[2618598.380] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#93) -[2618598.384] {Default Queue} -> wl_surface#93.attach(wl_buffer#91, 0, 0) -[2618598.389] {Default Queue} -> wl_surface#93.commit() -[2618598.394] {Default Queue} -> wl_surface#93.attach(wl_buffer#91, 0, 0) -[2618598.398] {Default Queue} -> wl_surface#93.commit() -[2618598.402] {Default Queue} wl_pointer#2537.motion(187310231, 3.00000000, 81.60156250) -[2618598.407] {Default Queue} wl_pointer#2569.motion(187310231, 3.00000000, 81.60156250) -[2618598.411] {Default Queue} wl_pointer#2601.motion(187310231, 3.00000000, 81.60156250) -[2618598.415] {Default Queue} wl_pointer#2633.motion(187310231, 3.00000000, 81.60156250) -[2618598.420] {Default Queue} wl_pointer#2665.motion(187310231, 3.00000000, 81.60156250) -[2618598.424] {Default Queue} wl_pointer#2697.motion(187310231, 3.00000000, 81.60156250) -[2618598.428] {Default Queue} wl_pointer#2729.motion(187310231, 3.00000000, 81.60156250) -[2618598.433] {Default Queue} wl_pointer#2761.motion(187310231, 3.00000000, 81.60156250) -[2618598.437] {Default Queue} wl_pointer#2793.motion(187310231, 3.00000000, 81.60156250) -[2618598.441] {Default Queue} wl_pointer#2825.motion(187310231, 3.00000000, 81.60156250) -[2618598.446] {Default Queue} wl_pointer#2857.motion(187310231, 3.00000000, 81.60156250) -[2618598.450] {Default Queue} wl_pointer#2889.motion(187310231, 3.00000000, 81.60156250) -[2618598.454] {Default Queue} wl_pointer#2921.motion(187310231, 3.00000000, 81.60156250) -[2618598.459] {Default Queue} wl_pointer#2953.motion(187310231, 3.00000000, 81.60156250) -[2618598.463] {Default Queue} wl_pointer#2985.motion(187310231, 3.00000000, 81.60156250) -[2618598.467] {Default Queue} wl_pointer#3017.motion(187310231, 3.00000000, 81.60156250) -[2618598.475] {Default Queue} wl_pointer#3049.motion(187310231, 3.00000000, 81.60156250) -[2618598.481] {Default Queue} wl_pointer#3081.motion(187310231, 3.00000000, 81.60156250) -[2618598.485] {Default Queue} wl_pointer#3113.motion(187310231, 3.00000000, 81.60156250) -[2618598.490] {Default Queue} wl_pointer#3145.motion(187310231, 3.00000000, 81.60156250) -[2618598.494] {Default Queue} wl_pointer#3177.motion(187310231, 3.00000000, 81.60156250) -[2618598.498] {Default Queue} wl_pointer#3209.motion(187310231, 3.00000000, 81.60156250) -[2618598.503] {Default Queue} wl_pointer#3241.motion(187310231, 3.00000000, 81.60156250) -[2618598.507] {Default Queue} wl_pointer#3273.motion(187310231, 3.00000000, 81.60156250) -[2618598.511] {Default Queue} wl_pointer#3305.motion(187310231, 3.00000000, 81.60156250) -[2618598.516] {Default Queue} wl_pointer#3337.motion(187310231, 3.00000000, 81.60156250) -[2618598.520] {Default Queue} wl_pointer#3369.motion(187310231, 3.00000000, 81.60156250) -[2618598.524] {Default Queue} wl_pointer#3401.motion(187310231, 3.00000000, 81.60156250) -[2618598.528] {Default Queue} wl_pointer#3433.motion(187310231, 3.00000000, 81.60156250) -[2618598.533] {Default Queue} wl_pointer#3465.motion(187310231, 3.00000000, 81.60156250) -[2618598.537] {Default Queue} wl_pointer#3497.motion(187310231, 3.00000000, 81.60156250) -[2618598.542] {Default Queue} wl_pointer#3529.motion(187310231, 3.00000000, 81.60156250) -[2618598.546] {Default Queue} wl_pointer#3561.motion(187310231, 3.00000000, 81.60156250) -[2618598.550] {Default Queue} wl_pointer#3593.motion(187310231, 3.00000000, 81.60156250) -[2618598.555] {Default Queue} wl_pointer#3625.motion(187310231, 3.00000000, 81.60156250) -[2618598.559] {Default Queue} wl_pointer#3657.motion(187310231, 3.00000000, 81.60156250) -[2618598.563] {Default Queue} wl_pointer#3695.motion(187310231, 3.00000000, 81.60156250) -[2618598.567] {Default Queue} wl_pointer#24.motion(187310231, 3.80078125, 80.39843750) -[2618598.572] {Default Queue} wl_pointer#81.motion(187310231, 3.80078125, 80.39843750) -[2618598.579] {Default Queue} wl_pointer#105.motion(187310231, 3.80078125, 80.39843750) -[2618598.584] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618598.589] {Default Queue} wl_pointer#137.motion(187310231, 3.80078125, 80.39843750) -[2618598.593] {Default Queue} wl_pointer#169.motion(187310231, 3.80078125, 80.39843750) -[2618598.598] {Default Queue} wl_pointer#201.motion(187310231, 3.80078125, 80.39843750) -[2618598.602] {Default Queue} wl_pointer#233.motion(187310231, 3.80078125, 80.39843750) -[2618598.606] {Default Queue} wl_pointer#265.motion(187310231, 3.80078125, 80.39843750) -[2618598.611] {Default Queue} wl_pointer#297.motion(187310231, 3.80078125, 80.39843750) -[2618598.615] {Default Queue} wl_pointer#329.motion(187310231, 3.80078125, 80.39843750) -[2618598.619] {Default Queue} wl_pointer#361.motion(187310231, 3.80078125, 80.39843750) -[2618598.623] {Default Queue} wl_pointer#393.motion(187310231, 3.80078125, 80.39843750) -[2618598.628] {Default Queue} wl_pointer#425.motion(187310231, 3.80078125, 80.39843750) -[2618598.632] {Default Queue} wl_pointer#457.motion(187310231, 3.80078125, 80.39843750) -[2618598.636] {Default Queue} wl_pointer#489.motion(187310231, 3.80078125, 80.39843750) -[2618598.640] {Default Queue} wl_pointer#521.motion(187310231, 3.80078125, 80.39843750) -[2618598.645] {Default Queue} wl_pointer#553.motion(187310231, 3.80078125, 80.39843750) -[2618598.649] {Default Queue} wl_pointer#585.motion(187310231, 3.80078125, 80.39843750) -[2618598.653] {Default Queue} wl_pointer#617.motion(187310231, 3.80078125, 80.39843750) -[2618598.657] {Default Queue} wl_pointer#649.motion(187310231, 3.80078125, 80.39843750) -[2618598.661] {Default Queue} wl_pointer#681.motion(187310231, 3.80078125, 80.39843750) -[2618598.666] {Default Queue} wl_pointer#713.motion(187310231, 3.80078125, 80.39843750) -[2618598.670] {Default Queue} wl_pointer#745.motion(187310231, 3.80078125, 80.39843750) -[2618598.674] {Default Queue} wl_pointer#777.motion(187310231, 3.80078125, 80.39843750) -[2618598.681] {Default Queue} wl_pointer#809.motion(187310231, 3.80078125, 80.39843750) -[2618598.687] {Default Queue} wl_pointer#841.motion(187310231, 3.80078125, 80.39843750) -[2618598.691] {Default Queue} wl_pointer#873.motion(187310231, 3.80078125, 80.39843750) -[2618598.695] {Default Queue} wl_pointer#905.motion(187310231, 3.80078125, 80.39843750) -[2618598.700] {Default Queue} wl_pointer#937.motion(187310231, 3.80078125, 80.39843750) -[2618598.704] {Default Queue} wl_pointer#969.motion(187310231, 3.80078125, 80.39843750) -[2618598.708] {Default Queue} wl_pointer#1001.motion(187310231, 3.80078125, 80.39843750) -[2618598.712] {Default Queue} wl_pointer#1033.motion(187310231, 3.80078125, 80.39843750) -[2618598.717] {Default Queue} wl_pointer#1065.motion(187310231, 3.80078125, 80.39843750) -[2618598.721] {Default Queue} wl_pointer#1097.motion(187310231, 3.80078125, 80.39843750) -[2618598.726] {Default Queue} wl_pointer#1129.motion(187310231, 3.80078125, 80.39843750) -[2618598.730] {Default Queue} wl_pointer#1161.motion(187310231, 3.80078125, 80.39843750) -[2618598.734] {Default Queue} wl_pointer#1193.motion(187310231, 3.80078125, 80.39843750) -[2618598.738] {Default Queue} wl_pointer#1225.motion(187310231, 3.80078125, 80.39843750) -[2618598.743] {Default Queue} wl_pointer#1257.motion(187310231, 3.80078125, 80.39843750) -[2618598.747] {Default Queue} wl_pointer#1289.motion(187310231, 3.80078125, 80.39843750) -[2618598.751] {Default Queue} wl_pointer#1321.motion(187310231, 3.80078125, 80.39843750) -[2618598.755] {Default Queue} wl_pointer#1353.motion(187310231, 3.80078125, 80.39843750) -[2618598.760] {Default Queue} wl_pointer#1385.motion(187310231, 3.80078125, 80.39843750) -[2618598.764] {Default Queue} wl_pointer#1417.motion(187310231, 3.80078125, 80.39843750) -[2618598.768] {Default Queue} wl_pointer#1449.motion(187310231, 3.80078125, 80.39843750) -[2618598.772] {Default Queue} wl_pointer#1481.motion(187310231, 3.80078125, 80.39843750) -[2618598.777] {Default Queue} wl_pointer#1513.motion(187310231, 3.80078125, 80.39843750) -[2618598.781] {Default Queue} wl_pointer#1545.motion(187310231, 3.80078125, 80.39843750) -[2618598.785] {Default Queue} wl_pointer#1577.motion(187310231, 3.80078125, 80.39843750) -[2618598.790] {Default Queue} wl_pointer#1609.motion(187310231, 3.80078125, 80.39843750) -[2618598.794] {Default Queue} wl_pointer#1641.motion(187310231, 3.80078125, 80.39843750) -[2618598.798] {Default Queue} wl_pointer#1673.motion(187310231, 3.80078125, 80.39843750) -[2618598.803] {Default Queue} wl_pointer#1705.motion(187310231, 3.80078125, 80.39843750) -[2618598.807] {Default Queue} wl_pointer#1737.motion(187310231, 3.80078125, 80.39843750) -[2618598.811] {Default Queue} wl_pointer#1762.motion(187310231, 3.80078125, 80.39843750) -[2618598.815] {Default Queue} wl_pointer#1801.motion(187310231, 3.80078125, 80.39843750) -[2618598.820] {Default Queue} wl_pointer#1833.motion(187310231, 3.80078125, 80.39843750) -[2618598.824] {Default Queue} wl_pointer#1865.motion(187310231, 3.80078125, 80.39843750) -[2618598.828] {Default Queue} wl_pointer#1897.motion(187310231, 3.80078125, 80.39843750) -[2618598.833] {Default Queue} wl_pointer#1929.motion(187310231, 3.80078125, 80.39843750) -[2618598.837] {Default Queue} wl_pointer#1961.motion(187310231, 3.80078125, 80.39843750) -[2618598.841] {Default Queue} wl_pointer#1993.motion(187310231, 3.80078125, 80.39843750) -[2618598.845] {Default Queue} wl_pointer#2025.motion(187310231, 3.80078125, 80.39843750) -[2618598.850] {Default Queue} wl_pointer#2057.motion(187310231, 3.80078125, 80.39843750) -[2618598.854] {Default Queue} wl_pointer#2089.motion(187310231, 3.80078125, 80.39843750) -[2618598.858] {Default Queue} wl_pointer#2121.motion(187310231, 3.80078125, 80.39843750) -[2618598.868] {Default Queue} wl_pointer#2153.motion(187310231, 3.80078125, 80.39843750) -[2618598.873] {Default Queue} wl_pointer#2185.motion(187310231, 3.80078125, 80.39843750) -[2618598.877] {Default Queue} wl_pointer#2217.motion(187310231, 3.80078125, 80.39843750) -[2618598.882] {Default Queue} wl_pointer#2249.motion(187310231, 3.80078125, 80.39843750) -[2618598.889] {Default Queue} wl_pointer#2281.motion(187310231, 3.80078125, 80.39843750) -[2618598.895] {Default Queue} wl_pointer#2313.motion(187310231, 3.80078125, 80.39843750) -[2618598.899] {Default Queue} wl_pointer#2345.motion(187310231, 3.80078125, 80.39843750) -[2618598.904] {Default Queue} wl_pointer#2377.motion(187310231, 3.80078125, 80.39843750) -[2618598.908] {Default Queue} wl_pointer#2409.motion(187310231, 3.80078125, 80.39843750) -[2618598.912] {Default Queue} wl_pointer#2441.motion(187310231, 3.80078125, 80.39843750) -[2618598.917] {Default Queue} wl_pointer#2473.motion(187310231, 3.80078125, 80.39843750) -[2618598.921] {Default Queue} wl_pointer#2498.motion(187310231, 3.80078125, 80.39843750) -[2618598.931] {Default Queue} -> wl_buffer#91.destroy() -[2618598.935] {Default Queue} -> wl_buffer#94.destroy() -[2618598.939] {Default Queue} -> wl_shm_pool#3683.destroy() -[2618598.943] {Default Queue} -> wl_shm_pool#92.destroy() -[2618598.948] {Default Queue} -> wl_surface#93.destroy() -[2618598.984] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3292, fd 585, 640) -[2618598.990] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 586, 640) -[2618598.995] {Default Queue} -> wl_shm_pool#3292.create_buffer(new id wl_buffer#3294, 0, 10, 16, 40, 0) -[2618598.999] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) -[2618599.006] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3484) -[2618599.010] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) -[2618599.014] {Default Queue} -> wl_surface#3484.commit() -[2618599.020] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) -[2618599.024] {Default Queue} -> wl_surface#3484.commit() -[2618599.028] {Default Queue} wl_pointer#2537.motion(187310231, 3.80078125, 80.39843750) -[2618599.032] {Default Queue} wl_pointer#2569.motion(187310231, 3.80078125, 80.39843750) -[2618599.037] {Default Queue} wl_pointer#2601.motion(187310231, 3.80078125, 80.39843750) -[2618599.041] {Default Queue} wl_pointer#2633.motion(187310231, 3.80078125, 80.39843750) -[2618599.045] {Default Queue} wl_pointer#2665.motion(187310231, 3.80078125, 80.39843750) -[2618599.050] {Default Queue} wl_pointer#2697.motion(187310231, 3.80078125, 80.39843750) -[2618599.054] {Default Queue} wl_pointer#2729.motion(187310231, 3.80078125, 80.39843750) -[2618599.058] {Default Queue} wl_pointer#2761.motion(187310231, 3.80078125, 80.39843750) -[2618599.063] {Default Queue} wl_pointer#2793.motion(187310231, 3.80078125, 80.39843750) -[2618599.067] {Default Queue} wl_pointer#2825.motion(187310231, 3.80078125, 80.39843750) -[2618599.072] {Default Queue} wl_pointer#2857.motion(187310231, 3.80078125, 80.39843750) -[2618599.076] {Default Queue} wl_pointer#2889.motion(187310231, 3.80078125, 80.39843750) -[2618599.080] {Default Queue} wl_pointer#2921.motion(187310231, 3.80078125, 80.39843750) -[2618599.084] {Default Queue} wl_pointer#2953.motion(187310231, 3.80078125, 80.39843750) -[2618599.089] {Default Queue} wl_pointer#2985.motion(187310231, 3.80078125, 80.39843750) -[2618599.093] {Default Queue} wl_pointer#3017.motion(187310231, 3.80078125, 80.39843750) -[2618599.097] {Default Queue} wl_pointer#3049.motion(187310231, 3.80078125, 80.39843750) -[2618599.102] {Default Queue} wl_pointer#3081.motion(187310231, 3.80078125, 80.39843750) -[2618599.106] {Default Queue} wl_pointer#3113.motion(187310231, 3.80078125, 80.39843750) -[2618599.110] {Default Queue} wl_pointer#3145.motion(187310231, 3.80078125, 80.39843750) -[2618599.115] {Default Queue} wl_pointer#3177.motion(187310231, 3.80078125, 80.39843750) -[2618599.119] {Default Queue} wl_pointer#3209.motion(187310231, 3.80078125, 80.39843750) -[2618599.123] {Default Queue} wl_pointer#3241.motion(187310231, 3.80078125, 80.39843750) -[2618599.128] {Default Queue} wl_pointer#3273.motion(187310231, 3.80078125, 80.39843750) -[2618599.132] {Default Queue} wl_pointer#3305.motion(187310231, 3.80078125, 80.39843750) -[2618599.136] {Default Queue} wl_pointer#3337.motion(187310231, 3.80078125, 80.39843750) -[2618599.143] {Default Queue} wl_pointer#3369.motion(187310231, 3.80078125, 80.39843750) -[2618599.149] {Default Queue} wl_pointer#3401.motion(187310231, 3.80078125, 80.39843750) -[2618599.154] {Default Queue} wl_pointer#3433.motion(187310231, 3.80078125, 80.39843750) -[2618599.158] {Default Queue} wl_pointer#3465.motion(187310231, 3.80078125, 80.39843750) -[2618599.162] {Default Queue} wl_pointer#3497.motion(187310231, 3.80078125, 80.39843750) -[2618599.167] {Default Queue} wl_pointer#3529.motion(187310231, 3.80078125, 80.39843750) -[2618599.171] {Default Queue} wl_pointer#3561.motion(187310231, 3.80078125, 80.39843750) -[2618599.175] {Default Queue} wl_pointer#3593.motion(187310231, 3.80078125, 80.39843750) -[2618599.180] {Default Queue} wl_pointer#3625.motion(187310231, 3.80078125, 80.39843750) -[2618599.184] {Default Queue} wl_pointer#3657.motion(187310231, 3.80078125, 80.39843750) -[2618599.188] {Default Queue} wl_pointer#3695.motion(187310231, 3.80078125, 80.39843750) -[2618599.193] {Default Queue} discarded wl_surface#101.enter(wl_output#18) -[2618599.197] {Default Queue} discarded wl_surface#101.enter(wl_output#57) -[2618599.201] {Default Queue} discarded wl_surface#101.enter(wl_output#89) -[2618599.205] {Default Queue} discarded wl_surface#101.enter(wl_output#121) -[2618599.209] {Default Queue} discarded wl_surface#101.enter(wl_output#153) -[2618599.213] {Default Queue} discarded wl_surface#101.enter(wl_output#185) -[2618599.216] {Default Queue} discarded wl_surface#101.enter(wl_output#217) -[2618599.220] {Default Queue} discarded wl_surface#101.enter(wl_output#249) -[2618599.224] {Default Queue} discarded wl_surface#101.enter(wl_output#281) -[2618599.228] {Default Queue} discarded wl_surface#101.enter(wl_output#313) -[2618599.232] {Default Queue} discarded wl_surface#101.enter(wl_output#345) -[2618599.236] {Default Queue} discarded wl_surface#101.enter(wl_output#377) -[2618599.240] {Default Queue} discarded wl_surface#101.enter(wl_output#409) -[2618599.244] {Default Queue} discarded wl_surface#101.enter(wl_output#441) -[2618599.248] {Default Queue} discarded wl_surface#101.enter(wl_output#473) -[2618599.252] {Default Queue} discarded wl_surface#101.enter(wl_output#505) -[2618599.255] {Default Queue} discarded wl_surface#101.enter(wl_output#537) -[2618599.259] {Default Queue} discarded wl_surface#101.enter(wl_output#569) -[2618599.263] {Default Queue} discarded wl_surface#101.enter(wl_output#601) -[2618599.267] {Default Queue} discarded wl_surface#101.enter(wl_output#633) -[2618599.271] {Default Queue} discarded wl_surface#101.enter(wl_output#665) -[2618599.275] {Default Queue} discarded wl_surface#101.enter(wl_output#697) -[2618599.279] {Default Queue} discarded wl_surface#101.enter(wl_output#729) -[2618599.283] {Default Queue} discarded wl_surface#101.enter(wl_output#761) -[2618599.286] {Default Queue} discarded wl_surface#101.enter(wl_output#793) -[2618599.290] {Default Queue} discarded wl_surface#101.enter(wl_output#825) -[2618599.294] {Default Queue} discarded wl_surface#101.enter(wl_output#857) -[2618599.298] {Default Queue} discarded wl_surface#101.enter(wl_output#889) -[2618599.302] {Default Queue} discarded wl_surface#101.enter(wl_output#921) -[2618599.306] {Default Queue} discarded wl_surface#101.enter(wl_output#953) -[2618599.309] {Default Queue} discarded wl_surface#101.enter(wl_output#985) -[2618599.313] {Default Queue} discarded wl_surface#101.enter(wl_output#1017) -[2618599.317] {Default Queue} discarded wl_surface#101.enter(wl_output#1049) -[2618599.321] {Default Queue} discarded wl_surface#101.enter(wl_output#1081) -[2618599.325] {Default Queue} discarded wl_surface#101.enter(wl_output#1113) -[2618599.329] {Default Queue} discarded wl_surface#101.enter(wl_output#1145) -[2618599.333] {Default Queue} discarded wl_surface#101.enter(wl_output#1177) -[2618599.337] {Default Queue} discarded wl_surface#101.enter(wl_output#1209) -[2618599.341] {Default Queue} discarded wl_surface#101.enter(wl_output#1241) -[2618599.344] {Default Queue} discarded wl_surface#101.enter(wl_output#1273) -[2618599.348] {Default Queue} discarded wl_surface#101.enter(wl_output#1305) -[2618599.355] {Default Queue} discarded wl_surface#101.enter(wl_output#1337) -[2618599.360] {Default Queue} discarded wl_surface#101.enter(wl_output#1369) -[2618599.364] {Default Queue} discarded wl_surface#101.enter(wl_output#1401) -[2618599.368] {Default Queue} discarded wl_surface#101.enter(wl_output#1433) -[2618599.371] {Default Queue} discarded wl_surface#101.enter(wl_output#1465) -[2618599.375] {Default Queue} discarded wl_surface#101.enter(wl_output#1497) -[2618599.379] {Default Queue} discarded wl_surface#101.enter(wl_output#1529) -[2618599.383] {Default Queue} discarded wl_surface#101.enter(wl_output#1561) -[2618599.387] {Default Queue} discarded wl_surface#101.enter(wl_output#1593) -[2618599.391] {Default Queue} discarded wl_surface#101.enter(wl_output#1625) -[2618599.394] {Default Queue} discarded wl_surface#101.enter(wl_output#1657) -[2618599.398] {Default Queue} discarded wl_surface#101.enter(wl_output#1689) -[2618599.402] {Default Queue} discarded wl_surface#101.enter(wl_output#1721) -[2618599.406] {Default Queue} discarded wl_surface#101.enter(wl_output#1753) -[2618599.410] {Default Queue} discarded wl_surface#101.enter(wl_output#1785) -[2618599.414] {Default Queue} discarded wl_surface#101.enter(wl_output#1817) -[2618599.417] {Default Queue} discarded wl_surface#101.enter(wl_output#1849) -[2618599.421] {Default Queue} discarded wl_surface#101.enter(wl_output#1881) -[2618599.425] {Default Queue} discarded wl_surface#101.enter(wl_output#1913) -[2618599.429] {Default Queue} discarded wl_surface#101.enter(wl_output#1945) -[2618599.433] {Default Queue} discarded wl_surface#101.enter(wl_output#1977) -[2618599.436] {Default Queue} discarded wl_surface#101.enter(wl_output#2009) -[2618599.440] {Default Queue} discarded wl_surface#101.enter(wl_output#2041) -[2618599.444] {Default Queue} discarded wl_surface#101.enter(wl_output#2073) -[2618599.448] {Default Queue} discarded wl_surface#101.enter(wl_output#2105) -[2618599.452] {Default Queue} discarded wl_surface#101.enter(wl_output#2137) -[2618599.456] {Default Queue} discarded wl_surface#101.enter(wl_output#2169) -[2618599.460] {Default Queue} discarded wl_surface#101.enter(wl_output#2201) -[2618599.463] {Default Queue} discarded wl_surface#101.enter(wl_output#2233) -[2618599.467] {Default Queue} discarded wl_surface#101.enter(wl_output#2265) -[2618599.471] {Default Queue} discarded wl_surface#101.enter(wl_output#2297) -[2618599.475] {Default Queue} discarded wl_surface#101.enter(wl_output#2329) -[2618599.479] {Default Queue} discarded wl_surface#101.enter(wl_output#2361) -[2618599.482] {Default Queue} discarded wl_surface#101.enter(wl_output#2393) -[2618599.486] {Default Queue} discarded wl_surface#101.enter(wl_output#2425) -[2618599.490] {Default Queue} discarded wl_surface#101.enter(wl_output#2457) -[2618599.494] {Default Queue} discarded wl_surface#101.enter(wl_output#2489) -[2618599.498] {Default Queue} discarded wl_surface#101.enter(wl_output#2521) -[2618599.501] {Default Queue} discarded wl_surface#101.enter(wl_output#2553) -[2618599.505] {Default Queue} discarded wl_surface#101.enter(wl_output#2585) -[2618599.509] {Default Queue} discarded wl_surface#101.enter(wl_output#2617) -[2618599.513] {Default Queue} discarded wl_surface#101.enter(wl_output#2649) -[2618599.517] {Default Queue} discarded wl_surface#101.enter(wl_output#2681) -[2618599.521] {Default Queue} discarded wl_surface#101.enter(wl_output#2713) -[2618599.525] {Default Queue} discarded wl_surface#101.enter(wl_output#2745) -[2618599.529] {Default Queue} discarded wl_surface#101.enter(wl_output#2777) -[2618599.532] {Default Queue} discarded wl_surface#101.enter(wl_output#2809) -[2618599.536] {Default Queue} discarded wl_surface#101.enter(wl_output#2841) -[2618599.540] {Default Queue} discarded wl_surface#101.enter(wl_output#2873) -[2618599.544] {Default Queue} discarded wl_surface#101.enter(wl_output#2905) -[2618599.548] {Default Queue} discarded wl_surface#101.enter(wl_output#2937) -[2618599.551] {Default Queue} discarded wl_surface#101.enter(wl_output#2969) -[2618599.555] {Default Queue} discarded wl_surface#101.enter(wl_output#3001) -[2618599.562] {Default Queue} discarded wl_surface#101.enter(wl_output#3033) -[2618599.567] {Default Queue} discarded wl_surface#101.enter(wl_output#3065) -[2618599.571] {Default Queue} discarded wl_surface#101.enter(wl_output#3097) -[2618599.575] {Default Queue} discarded wl_surface#101.enter(wl_output#3129) -[2618599.578] {Default Queue} discarded wl_surface#101.enter(wl_output#3161) -[2618599.582] {Default Queue} discarded wl_surface#101.enter(wl_output#3193) -[2618599.586] {Default Queue} discarded wl_surface#101.enter(wl_output#3225) -[2618599.590] {Default Queue} discarded wl_surface#101.enter(wl_output#3257) -[2618599.594] {Default Queue} discarded wl_surface#101.enter(wl_output#3289) -[2618599.598] {Default Queue} discarded wl_surface#101.enter(wl_output#3321) -[2618599.601] {Default Queue} discarded wl_surface#101.enter(wl_output#3353) -[2618599.605] {Default Queue} discarded wl_surface#101.enter(wl_output#3385) -[2618599.610] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) -[2618599.614] {Default Queue} -> wl_surface#679.commit() -[2618600.683] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) -[2618600.688] {Default Queue} -> wl_surface#679.commit() -[2618600.695] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) -[2618600.699] {Default Queue} -> wl_surface#679.commit() -[2618600.705] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) -[2618600.709] {Default Queue} -> wl_surface#455.commit() -[2618601.398] {Default Queue} discarded wl_surface#101.enter(wl_output#3417) -[2618601.403] {Default Queue} discarded wl_surface#101.enter(wl_output#3449) -[2618601.408] {Default Queue} discarded wl_surface#101.enter(wl_output#3481) -[2618601.413] {Default Queue} discarded wl_surface#101.enter(wl_output#3513) -[2618601.419] {Default Queue} discarded wl_surface#101.enter(wl_output#3545) -[2618601.423] {Default Queue} discarded wl_surface#101.enter(wl_output#3577) -[2618601.428] {Default Queue} discarded wl_surface#101.enter(wl_output#3609) -[2618601.432] {Default Queue} discarded wl_surface#101.enter(wl_output#3641) -[2618601.436] {Default Queue} discarded wl_surface#101.enter(wl_output#3673) -[2618601.445] {Default Queue} -> wl_region#479.subtract(0, 0, 19, 48) -[2618601.450] {Default Queue} -> wl_region#479.add(-20, -49, 19, 48) -[2618601.454] {Default Queue} -> wl_surface#455.set_opaque_region(wl_region#480) -[2618601.459] {Default Queue} -> wl_surface#455.set_input_region(wl_region#479) -[2618601.465] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) -[2618601.469] {Default Queue} -> wl_surface#455.commit() -[2618601.473] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) -[2618601.477] {Default Queue} -> wl_surface#455.commit() -[2618601.483] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) -[2618601.487] {Default Queue} -> wl_surface#455.commit() -[2618601.493] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) -[2618601.497] {Default Queue} -> wl_surface#423.commit() -[2618601.617] {Default Queue} wl_pointer#24.motion(187310236, 4.60156250, 78.80078125) -[2618601.623] {Default Queue} wl_pointer#81.motion(187310236, 4.60156250, 78.80078125) -[2618601.628] {Default Queue} wl_pointer#105.motion(187310236, 4.60156250, 78.80078125) -[2618601.633] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618601.637] {Default Queue} wl_pointer#137.motion(187310236, 4.60156250, 78.80078125) -[2618601.641] {Default Queue} wl_pointer#169.motion(187310236, 4.60156250, 78.80078125) -[2618601.646] {Default Queue} wl_pointer#201.motion(187310236, 4.60156250, 78.80078125) -[2618601.650] {Default Queue} wl_pointer#233.motion(187310236, 4.60156250, 78.80078125) -[2618601.654] {Default Queue} wl_pointer#265.motion(187310236, 4.60156250, 78.80078125) -[2618601.658] {Default Queue} wl_pointer#297.motion(187310236, 4.60156250, 78.80078125) -[2618601.663] {Default Queue} wl_pointer#329.motion(187310236, 4.60156250, 78.80078125) -[2618601.667] {Default Queue} wl_pointer#361.motion(187310236, 4.60156250, 78.80078125) -[2618601.671] {Default Queue} wl_pointer#393.motion(187310236, 4.60156250, 78.80078125) -[2618601.679] {Default Queue} wl_pointer#425.motion(187310236, 4.60156250, 78.80078125) -[2618601.686] {Default Queue} wl_pointer#457.motion(187310236, 4.60156250, 78.80078125) -[2618601.690] {Default Queue} wl_pointer#489.motion(187310236, 4.60156250, 78.80078125) -[2618601.694] {Default Queue} wl_pointer#521.motion(187310236, 4.60156250, 78.80078125) -[2618601.698] {Default Queue} wl_pointer#553.motion(187310236, 4.60156250, 78.80078125) -[2618601.703] {Default Queue} wl_pointer#585.motion(187310236, 4.60156250, 78.80078125) -[2618601.707] {Default Queue} wl_pointer#617.motion(187310236, 4.60156250, 78.80078125) -[2618601.711] {Default Queue} wl_pointer#649.motion(187310236, 4.60156250, 78.80078125) -[2618601.715] {Default Queue} wl_pointer#681.motion(187310236, 4.60156250, 78.80078125) -[2618601.720] {Default Queue} wl_pointer#713.motion(187310236, 4.60156250, 78.80078125) -[2618601.724] {Default Queue} wl_pointer#745.motion(187310236, 4.60156250, 78.80078125) -[2618601.728] {Default Queue} wl_pointer#777.motion(187310236, 4.60156250, 78.80078125) -[2618601.732] {Default Queue} wl_pointer#809.motion(187310236, 4.60156250, 78.80078125) -[2618601.737] {Default Queue} wl_pointer#841.motion(187310236, 4.60156250, 78.80078125) -[2618601.741] {Default Queue} wl_pointer#873.motion(187310236, 4.60156250, 78.80078125) -[2618601.745] {Default Queue} wl_pointer#905.motion(187310236, 4.60156250, 78.80078125) -[2618601.749] {Default Queue} wl_pointer#937.motion(187310236, 4.60156250, 78.80078125) -[2618601.753] {Default Queue} wl_pointer#969.motion(187310236, 4.60156250, 78.80078125) -[2618601.758] {Default Queue} wl_pointer#1001.motion(187310236, 4.60156250, 78.80078125) -[2618601.762] {Default Queue} wl_pointer#1033.motion(187310236, 4.60156250, 78.80078125) -[2618601.766] {Default Queue} wl_pointer#1065.motion(187310236, 4.60156250, 78.80078125) -[2618601.771] {Default Queue} wl_pointer#1097.motion(187310236, 4.60156250, 78.80078125) -[2618601.775] {Default Queue} wl_pointer#1129.motion(187310236, 4.60156250, 78.80078125) -[2618601.779] {Default Queue} wl_pointer#1161.motion(187310236, 4.60156250, 78.80078125) -[2618601.783] {Default Queue} wl_pointer#1193.motion(187310236, 4.60156250, 78.80078125) -[2618601.788] {Default Queue} wl_pointer#1225.motion(187310236, 4.60156250, 78.80078125) -[2618601.792] {Default Queue} wl_pointer#1257.motion(187310236, 4.60156250, 78.80078125) -[2618601.796] {Default Queue} wl_pointer#1289.motion(187310236, 4.60156250, 78.80078125) -[2618601.800] {Default Queue} wl_pointer#1321.motion(187310236, 4.60156250, 78.80078125) -[2618601.805] {Default Queue} wl_pointer#1353.motion(187310236, 4.60156250, 78.80078125) -[2618601.809] {Default Queue} wl_pointer#1385.motion(187310236, 4.60156250, 78.80078125) -[2618601.813] {Default Queue} wl_pointer#1417.motion(187310236, 4.60156250, 78.80078125) -[2618601.817] {Default Queue} wl_pointer#1449.motion(187310236, 4.60156250, 78.80078125) -[2618601.822] {Default Queue} wl_pointer#1481.motion(187310236, 4.60156250, 78.80078125) -[2618601.826] {Default Queue} wl_pointer#1513.motion(187310236, 4.60156250, 78.80078125) -[2618601.830] {Default Queue} wl_pointer#1545.motion(187310236, 4.60156250, 78.80078125) -[2618601.834] {Default Queue} wl_pointer#1577.motion(187310236, 4.60156250, 78.80078125) -[2618601.839] {Default Queue} wl_pointer#1609.motion(187310236, 4.60156250, 78.80078125) -[2618601.843] {Default Queue} wl_pointer#1641.motion(187310236, 4.60156250, 78.80078125) -[2618601.847] {Default Queue} wl_pointer#1673.motion(187310236, 4.60156250, 78.80078125) -[2618601.851] {Default Queue} wl_pointer#1705.motion(187310236, 4.60156250, 78.80078125) -[2618601.856] {Default Queue} wl_pointer#1737.motion(187310236, 4.60156250, 78.80078125) -[2618601.866] {Default Queue} wl_pointer#1762.motion(187310236, 4.60156250, 78.80078125) -[2618601.871] {Default Queue} wl_pointer#1801.motion(187310236, 4.60156250, 78.80078125) -[2618601.875] {Default Queue} wl_pointer#1833.motion(187310236, 4.60156250, 78.80078125) -[2618601.879] {Default Queue} wl_pointer#1865.motion(187310236, 4.60156250, 78.80078125) -[2618601.886] {Default Queue} wl_pointer#1897.motion(187310236, 4.60156250, 78.80078125) -[2618601.892] {Default Queue} wl_pointer#1929.motion(187310236, 4.60156250, 78.80078125) -[2618601.896] {Default Queue} wl_pointer#1961.motion(187310236, 4.60156250, 78.80078125) -[2618601.901] {Default Queue} wl_pointer#1993.motion(187310236, 4.60156250, 78.80078125) -[2618601.905] {Default Queue} wl_pointer#2025.motion(187310236, 4.60156250, 78.80078125) -[2618601.909] {Default Queue} wl_pointer#2057.motion(187310236, 4.60156250, 78.80078125) -[2618601.913] {Default Queue} wl_pointer#2089.motion(187310236, 4.60156250, 78.80078125) -[2618601.918] {Default Queue} wl_pointer#2121.motion(187310236, 4.60156250, 78.80078125) -[2618601.922] {Default Queue} wl_pointer#2153.motion(187310236, 4.60156250, 78.80078125) -[2618601.926] {Default Queue} wl_pointer#2185.motion(187310236, 4.60156250, 78.80078125) -[2618601.931] {Default Queue} wl_pointer#2217.motion(187310236, 4.60156250, 78.80078125) -[2618601.935] {Default Queue} wl_pointer#2249.motion(187310236, 4.60156250, 78.80078125) -[2618601.939] {Default Queue} wl_pointer#2281.motion(187310236, 4.60156250, 78.80078125) -[2618601.943] {Default Queue} wl_pointer#2313.motion(187310236, 4.60156250, 78.80078125) -[2618601.948] {Default Queue} wl_pointer#2345.motion(187310236, 4.60156250, 78.80078125) -[2618601.952] {Default Queue} wl_pointer#2377.motion(187310236, 4.60156250, 78.80078125) -[2618601.957] {Default Queue} wl_pointer#2409.motion(187310236, 4.60156250, 78.80078125) -[2618601.961] {Default Queue} wl_pointer#2441.motion(187310236, 4.60156250, 78.80078125) -[2618601.965] {Default Queue} wl_pointer#2473.motion(187310236, 4.60156250, 78.80078125) -[2618601.969] {Default Queue} wl_pointer#2498.motion(187310236, 4.60156250, 78.80078125) -[2618601.980] {Default Queue} -> wl_buffer#3294.destroy() -[2618601.986] {Default Queue} -> wl_buffer#3293.destroy() -[2618601.990] {Default Queue} -> wl_shm_pool#3292.destroy() -[2618601.994] {Default Queue} -> wl_shm_pool#3291.destroy() -[2618601.999] {Default Queue} -> wl_surface#3484.destroy() -[2618602.042] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3483, fd 575, 640) -[2618602.049] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3486, fd 578, 640) -[2618602.054] {Default Queue} -> wl_shm_pool#3483.create_buffer(new id wl_buffer#3485, 0, 10, 16, 40, 0) -[2618602.058] {Default Queue} -> wl_shm_pool#3486.create_buffer(new id wl_buffer#3516, 0, 10, 16, 40, 0) -[2618602.066] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3515) -[2618602.070] {Default Queue} -> wl_surface#3515.attach(wl_buffer#3485, 0, 0) -[2618602.074] {Default Queue} -> wl_surface#3515.commit() -[2618602.079] {Default Queue} -> wl_surface#3515.attach(wl_buffer#3485, 0, 0) -[2618602.084] {Default Queue} -> wl_surface#3515.commit() -[2618602.088] {Default Queue} wl_pointer#2537.motion(187310236, 4.60156250, 78.80078125) -[2618602.093] {Default Queue} wl_pointer#2569.motion(187310236, 4.60156250, 78.80078125) -[2618602.097] {Default Queue} wl_pointer#2601.motion(187310236, 4.60156250, 78.80078125) -[2618602.102] {Default Queue} wl_pointer#2633.motion(187310236, 4.60156250, 78.80078125) -[2618602.106] {Default Queue} wl_pointer#2665.motion(187310236, 4.60156250, 78.80078125) -[2618602.111] {Default Queue} wl_pointer#2697.motion(187310236, 4.60156250, 78.80078125) -[2618602.115] {Default Queue} wl_pointer#2729.motion(187310236, 4.60156250, 78.80078125) -[2618602.119] {Default Queue} wl_pointer#2761.motion(187310236, 4.60156250, 78.80078125) -[2618602.123] {Default Queue} wl_pointer#2793.motion(187310236, 4.60156250, 78.80078125) -[2618602.128] {Default Queue} wl_pointer#2825.motion(187310236, 4.60156250, 78.80078125) -[2618602.132] {Default Queue} wl_pointer#2857.motion(187310236, 4.60156250, 78.80078125) -[2618602.137] {Default Queue} wl_pointer#2889.motion(187310236, 4.60156250, 78.80078125) -[2618602.141] {Default Queue} wl_pointer#2921.motion(187310236, 4.60156250, 78.80078125) -[2618602.146] {Default Queue} wl_pointer#2953.motion(187310236, 4.60156250, 78.80078125) -[2618602.153] {Default Queue} wl_pointer#2985.motion(187310236, 4.60156250, 78.80078125) -[2618602.159] {Default Queue} wl_pointer#3017.motion(187310236, 4.60156250, 78.80078125) -[2618602.164] {Default Queue} wl_pointer#3049.motion(187310236, 4.60156250, 78.80078125) -[2618602.168] {Default Queue} wl_pointer#3081.motion(187310236, 4.60156250, 78.80078125) -[2618602.172] {Default Queue} wl_pointer#3113.motion(187310236, 4.60156250, 78.80078125) -[2618602.177] {Default Queue} wl_pointer#3145.motion(187310236, 4.60156250, 78.80078125) -[2618602.181] {Default Queue} wl_pointer#3177.motion(187310236, 4.60156250, 78.80078125) -[2618602.185] {Default Queue} wl_pointer#3209.motion(187310236, 4.60156250, 78.80078125) -[2618602.190] {Default Queue} wl_pointer#3241.motion(187310236, 4.60156250, 78.80078125) -[2618602.194] {Default Queue} wl_pointer#3273.motion(187310236, 4.60156250, 78.80078125) -[2618602.198] {Default Queue} wl_pointer#3305.motion(187310236, 4.60156250, 78.80078125) -[2618602.203] {Default Queue} wl_pointer#3337.motion(187310236, 4.60156250, 78.80078125) -[2618602.207] {Default Queue} wl_pointer#3369.motion(187310236, 4.60156250, 78.80078125) -[2618602.211] {Default Queue} wl_pointer#3401.motion(187310236, 4.60156250, 78.80078125) -[2618602.216] {Default Queue} wl_pointer#3433.motion(187310236, 4.60156250, 78.80078125) -[2618602.220] {Default Queue} wl_pointer#3465.motion(187310236, 4.60156250, 78.80078125) -[2618602.224] {Default Queue} wl_pointer#3497.motion(187310236, 4.60156250, 78.80078125) -[2618602.229] {Default Queue} wl_pointer#3529.motion(187310236, 4.60156250, 78.80078125) -[2618602.233] {Default Queue} wl_pointer#3561.motion(187310236, 4.60156250, 78.80078125) -[2618602.237] {Default Queue} wl_pointer#3593.motion(187310236, 4.60156250, 78.80078125) -[2618602.242] {Default Queue} wl_pointer#3625.motion(187310236, 4.60156250, 78.80078125) -[2618602.246] {Default Queue} wl_pointer#3657.motion(187310236, 4.60156250, 78.80078125) -[2618602.250] {Default Queue} wl_pointer#3695.motion(187310236, 4.60156250, 78.80078125) -[2618602.255] {Default Queue} wl_pointer#24.motion(187310236, 5.39843750, 77.19921875) -[2618602.259] {Default Queue} wl_pointer#81.motion(187310236, 5.39843750, 77.19921875) -[2618602.264] {Default Queue} wl_pointer#105.motion(187310236, 5.39843750, 77.19921875) -[2618602.269] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618602.273] {Default Queue} wl_pointer#137.motion(187310236, 5.39843750, 77.19921875) -[2618602.277] {Default Queue} wl_pointer#169.motion(187310236, 5.39843750, 77.19921875) -[2618602.282] {Default Queue} wl_pointer#201.motion(187310236, 5.39843750, 77.19921875) -[2618602.286] {Default Queue} wl_pointer#233.motion(187310236, 5.39843750, 77.19921875) -[2618602.290] {Default Queue} wl_pointer#265.motion(187310236, 5.39843750, 77.19921875) -[2618602.294] {Default Queue} wl_pointer#297.motion(187310236, 5.39843750, 77.19921875) -[2618602.299] {Default Queue} wl_pointer#329.motion(187310236, 5.39843750, 77.19921875) -[2618602.303] {Default Queue} wl_pointer#361.motion(187310236, 5.39843750, 77.19921875) -[2618602.307] {Default Queue} wl_pointer#393.motion(187310236, 5.39843750, 77.19921875) -[2618602.312] {Default Queue} wl_pointer#425.motion(187310236, 5.39843750, 77.19921875) -[2618602.316] {Default Queue} wl_pointer#457.motion(187310236, 5.39843750, 77.19921875) -[2618602.320] {Default Queue} wl_pointer#489.motion(187310236, 5.39843750, 77.19921875) -[2618602.324] {Default Queue} wl_pointer#521.motion(187310236, 5.39843750, 77.19921875) -[2618602.329] {Default Queue} wl_pointer#553.motion(187310236, 5.39843750, 77.19921875) -[2618602.333] {Default Queue} wl_pointer#585.motion(187310236, 5.39843750, 77.19921875) -[2618602.337] {Default Queue} wl_pointer#617.motion(187310236, 5.39843750, 77.19921875) -[2618602.342] {Default Queue} wl_pointer#649.motion(187310236, 5.39843750, 77.19921875) -[2618602.346] {Default Queue} wl_pointer#681.motion(187310236, 5.39843750, 77.19921875) -[2618602.350] {Default Queue} wl_pointer#713.motion(187310236, 5.39843750, 77.19921875) -[2618602.357] {Default Queue} wl_pointer#745.motion(187310236, 5.39843750, 77.19921875) -[2618602.363] {Default Queue} wl_pointer#777.motion(187310236, 5.39843750, 77.19921875) -[2618602.367] {Default Queue} wl_pointer#809.motion(187310236, 5.39843750, 77.19921875) -[2618602.372] {Default Queue} wl_pointer#841.motion(187310236, 5.39843750, 77.19921875) -[2618602.376] {Default Queue} wl_pointer#873.motion(187310236, 5.39843750, 77.19921875) -[2618602.380] {Default Queue} wl_pointer#905.motion(187310236, 5.39843750, 77.19921875) -[2618602.384] {Default Queue} wl_pointer#937.motion(187310236, 5.39843750, 77.19921875) -[2618602.389] {Default Queue} wl_pointer#969.motion(187310236, 5.39843750, 77.19921875) -[2618602.393] {Default Queue} wl_pointer#1001.motion(187310236, 5.39843750, 77.19921875) -[2618602.397] {Default Queue} wl_pointer#1033.motion(187310236, 5.39843750, 77.19921875) -[2618602.402] {Default Queue} wl_pointer#1065.motion(187310236, 5.39843750, 77.19921875) -[2618602.406] {Default Queue} wl_pointer#1097.motion(187310236, 5.39843750, 77.19921875) -[2618602.410] {Default Queue} wl_pointer#1129.motion(187310236, 5.39843750, 77.19921875) -[2618602.414] {Default Queue} wl_pointer#1161.motion(187310236, 5.39843750, 77.19921875) -[2618602.419] {Default Queue} wl_pointer#1193.motion(187310236, 5.39843750, 77.19921875) -[2618602.423] {Default Queue} wl_pointer#1225.motion(187310236, 5.39843750, 77.19921875) -[2618602.427] {Default Queue} wl_pointer#1257.motion(187310236, 5.39843750, 77.19921875) -[2618602.432] {Default Queue} wl_pointer#1289.motion(187310236, 5.39843750, 77.19921875) -[2618602.436] {Default Queue} wl_pointer#1321.motion(187310236, 5.39843750, 77.19921875) -[2618602.440] {Default Queue} wl_pointer#1353.motion(187310236, 5.39843750, 77.19921875) -[2618602.444] {Default Queue} wl_pointer#1385.motion(187310236, 5.39843750, 77.19921875) -[2618602.450] {Default Queue} wl_pointer#1417.motion(187310236, 5.39843750, 77.19921875) -[2618602.456] {Default Queue} wl_pointer#1449.motion(187310236, 5.39843750, 77.19921875) -[2618602.461] {Default Queue} wl_pointer#1481.motion(187310236, 5.39843750, 77.19921875) -[2618602.467] {Default Queue} wl_pointer#1513.motion(187310236, 5.39843750, 77.19921875) -[2618602.473] {Default Queue} wl_pointer#1545.motion(187310236, 5.39843750, 77.19921875) -[2618602.479] {Default Queue} wl_pointer#1577.motion(187310236, 5.39843750, 77.19921875) -[2618602.485] {Default Queue} wl_pointer#1609.motion(187310236, 5.39843750, 77.19921875) -[2618602.491] {Default Queue} wl_pointer#1641.motion(187310236, 5.39843750, 77.19921875) -[2618602.496] {Default Queue} wl_pointer#1673.motion(187310236, 5.39843750, 77.19921875) -[2618602.502] {Default Queue} wl_pointer#1705.motion(187310236, 5.39843750, 77.19921875) -[2618602.508] {Default Queue} wl_pointer#1737.motion(187310236, 5.39843750, 77.19921875) -[2618602.513] {Default Queue} wl_pointer#1762.motion(187310236, 5.39843750, 77.19921875) -[2618602.517] {Default Queue} wl_pointer#1801.motion(187310236, 5.39843750, 77.19921875) -[2618602.522] {Default Queue} wl_pointer#1833.motion(187310236, 5.39843750, 77.19921875) -[2618602.526] {Default Queue} wl_pointer#1865.motion(187310236, 5.39843750, 77.19921875) -[2618602.530] {Default Queue} wl_pointer#1897.motion(187310236, 5.39843750, 77.19921875) -[2618602.535] {Default Queue} wl_pointer#1929.motion(187310236, 5.39843750, 77.19921875) -[2618602.539] {Default Queue} wl_pointer#1961.motion(187310236, 5.39843750, 77.19921875) -[2618602.543] {Default Queue} wl_pointer#1993.motion(187310236, 5.39843750, 77.19921875) -[2618602.548] {Default Queue} wl_pointer#2025.motion(187310236, 5.39843750, 77.19921875) -[2618602.552] {Default Queue} wl_pointer#2057.motion(187310236, 5.39843750, 77.19921875) -[2618602.556] {Default Queue} wl_pointer#2089.motion(187310236, 5.39843750, 77.19921875) -[2618602.561] {Default Queue} wl_pointer#2121.motion(187310236, 5.39843750, 77.19921875) -[2618602.565] {Default Queue} wl_pointer#2153.motion(187310236, 5.39843750, 77.19921875) -[2618602.569] {Default Queue} wl_pointer#2185.motion(187310236, 5.39843750, 77.19921875) -[2618602.579] {Default Queue} wl_pointer#2217.motion(187310236, 5.39843750, 77.19921875) -[2618602.585] {Default Queue} wl_pointer#2249.motion(187310236, 5.39843750, 77.19921875) -[2618602.589] {Default Queue} wl_pointer#2281.motion(187310236, 5.39843750, 77.19921875) -[2618602.594] {Default Queue} wl_pointer#2313.motion(187310236, 5.39843750, 77.19921875) -[2618602.598] {Default Queue} wl_pointer#2345.motion(187310236, 5.39843750, 77.19921875) -[2618602.602] {Default Queue} wl_pointer#2377.motion(187310236, 5.39843750, 77.19921875) -[2618602.607] {Default Queue} wl_pointer#2409.motion(187310236, 5.39843750, 77.19921875) -[2618602.611] {Default Queue} wl_pointer#2441.motion(187310236, 5.39843750, 77.19921875) -[2618602.615] {Default Queue} wl_pointer#2473.motion(187310236, 5.39843750, 77.19921875) -[2618602.619] {Default Queue} wl_pointer#2498.motion(187310236, 5.39843750, 77.19921875) -[2618602.631] {Default Queue} -> wl_buffer#3485.destroy() -[2618602.637] {Default Queue} -> wl_buffer#3516.destroy() -[2618602.642] {Default Queue} -> wl_shm_pool#3483.destroy() -[2618602.645] {Default Queue} -> wl_shm_pool#3486.destroy() -[2618602.650] {Default Queue} -> wl_surface#3515.destroy() -[2618602.695] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3518, fd 581, 640) -[2618602.701] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3517, fd 582, 640) -[2618602.705] {Default Queue} -> wl_shm_pool#3518.create_buffer(new id wl_buffer#3452, 0, 10, 16, 40, 0) -[2618602.710] {Default Queue} -> wl_shm_pool#3517.create_buffer(new id wl_buffer#3451, 0, 10, 16, 40, 0) -[2618602.717] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3454) -[2618602.721] {Default Queue} -> wl_surface#3454.attach(wl_buffer#3452, 0, 0) -[2618602.725] {Default Queue} -> wl_surface#3454.commit() -[2618602.730] {Default Queue} -> wl_surface#3454.attach(wl_buffer#3452, 0, 0) -[2618602.735] {Default Queue} -> wl_surface#3454.commit() -[2618602.739] {Default Queue} wl_pointer#2537.motion(187310236, 5.39843750, 77.19921875) -[2618602.743] {Default Queue} wl_pointer#2569.motion(187310236, 5.39843750, 77.19921875) -[2618602.748] {Default Queue} wl_pointer#2601.motion(187310236, 5.39843750, 77.19921875) -[2618602.752] {Default Queue} wl_pointer#2633.motion(187310236, 5.39843750, 77.19921875) -[2618602.756] {Default Queue} wl_pointer#2665.motion(187310236, 5.39843750, 77.19921875) -[2618602.760] {Default Queue} wl_pointer#2697.motion(187310236, 5.39843750, 77.19921875) -[2618602.765] {Default Queue} wl_pointer#2729.motion(187310236, 5.39843750, 77.19921875) -[2618602.769] {Default Queue} wl_pointer#2761.motion(187310236, 5.39843750, 77.19921875) -[2618602.773] {Default Queue} wl_pointer#2793.motion(187310236, 5.39843750, 77.19921875) -[2618602.778] {Default Queue} wl_pointer#2825.motion(187310236, 5.39843750, 77.19921875) -[2618602.782] {Default Queue} wl_pointer#2857.motion(187310236, 5.39843750, 77.19921875) -[2618602.792] {Default Queue} -> wl_region#447.subtract(0, 0, 19, 48) -[2618602.796] {Default Queue} -> wl_region#447.add(-20, -49, 19, 48) -[2618602.800] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) -[2618602.805] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) -[2618602.810] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) -[2618602.814] {Default Queue} -> wl_surface#423.commit() -[2618602.818] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) -[2618602.823] {Default Queue} -> wl_surface#423.commit() -[2618602.829] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) -[2618602.833] {Default Queue} -> wl_surface#423.commit() -[2618602.839] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) -[2618602.844] {Default Queue} -> wl_surface#359.commit() -[2618603.867] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) -[2618603.873] {Default Queue} -> wl_surface#359.commit() -[2618603.879] {Default Queue} -> wl_region#383.subtract(0, 0, 22, 51) -[2618603.884] {Default Queue} -> wl_region#383.add(-20, -49, 19, 48) -[2618603.888] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) -[2618603.896] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) -[2618603.903] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) -[2618603.908] {Default Queue} -> wl_surface#359.commit() -[2618603.912] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) -[2618603.916] {Default Queue} -> wl_surface#359.commit() -[2618603.922] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) -[2618603.926] {Default Queue} -> wl_surface#359.commit() -[2618603.932] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) -[2618603.936] {Default Queue} -> wl_surface#327.commit() -[2618604.997] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) -[2618605.002] {Default Queue} -> wl_surface#327.commit() -[2618605.012] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) -[2618605.017] {Default Queue} -> wl_region#351.add(0, 0, 2, 2) -[2618605.021] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618605.025] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618605.035] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) -[2618605.039] {Default Queue} -> wl_region#351.add(0, 0, 2, 2) -[2618605.043] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618605.047] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618605.053] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) -[2618605.057] {Default Queue} -> wl_region#351.add(0, 0, 2, 2) -[2618605.061] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618605.065] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618605.071] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) -[2618605.075] {Default Queue} -> wl_region#351.add(0, 0, 2, 2) -[2618605.079] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618605.083] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618605.089] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) -[2618605.094] {Default Queue} -> wl_region#351.add(0, 0, 2, 2) -[2618605.098] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618605.102] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618605.106] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) -[2618605.111] {Default Queue} -> wl_surface#327.commit() -[2618605.114] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) -[2618605.118] {Default Queue} -> wl_surface#327.commit() -[2618605.124] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) -[2618605.128] {Default Queue} -> wl_surface#327.commit() -[2618605.134] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) -[2618605.138] {Default Queue} -> wl_surface#103.commit() -[2618606.199] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) -[2618606.204] {Default Queue} -> wl_surface#103.commit() -[2618606.211] {Default Queue} -> wl_region#127.subtract(0, 0, 2, 2) -[2618606.215] {Default Queue} -> wl_region#127.add(0, 0, 2, 2) -[2618606.219] {Default Queue} -> wl_surface#103.set_opaque_region(wl_region#128) -[2618606.223] {Default Queue} -> wl_surface#103.set_input_region(wl_region#127) -[2618606.228] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) -[2618606.232] {Default Queue} -> wl_surface#103.commit() -[2618606.236] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) -[2618606.240] {Default Queue} -> wl_surface#103.commit() -[2618606.246] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) -[2618606.250] {Default Queue} -> wl_surface#103.commit() -[2618606.256] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) -[2618606.260] {Default Queue} -> wl_surface#967.commit() -[2618606.386] {Display Queue} wl_display#1.delete_id(2504) -[2618606.391] {Display Queue} wl_display#1.delete_id(2505) -[2618606.396] {Display Queue} wl_display#1.delete_id(2502) -[2618606.401] {Display Queue} wl_display#1.delete_id(2503) -[2618606.407] {Display Queue} wl_display#1.delete_id(2506) -[2618606.417] {Display Queue} wl_display#1.delete_id(3675) -[2618606.422] {Display Queue} wl_display#1.delete_id(3678) -[2618606.426] {Display Queue} wl_display#1.delete_id(3674) -[2618606.430] {Display Queue} wl_display#1.delete_id(3676) -[2618606.434] {Display Queue} wl_display#1.delete_id(3677) -[2618606.438] {Display Queue} wl_display#1.delete_id(3682) -[2618606.442] {Display Queue} wl_display#1.delete_id(3681) -[2618606.446] {Display Queue} wl_display#1.delete_id(3671) -[2618606.450] {Display Queue} wl_display#1.delete_id(3679) -[2618606.454] {Display Queue} wl_display#1.delete_id(3684) -[2618606.458] {Display Queue} wl_display#1.delete_id(91) -[2618606.462] {Display Queue} wl_display#1.delete_id(94) -[2618606.466] {Display Queue} wl_display#1.delete_id(3683) -[2618606.470] {Display Queue} wl_display#1.delete_id(92) -[2618606.474] {Display Queue} wl_display#1.delete_id(93) -[2618606.478] {Default Queue} wl_pointer#2889.motion(187310236, 5.39843750, 77.19921875) -[2618606.482] {Default Queue} wl_pointer#2921.motion(187310236, 5.39843750, 77.19921875) -[2618606.487] {Default Queue} wl_pointer#2953.motion(187310236, 5.39843750, 77.19921875) -[2618606.491] {Default Queue} wl_pointer#2985.motion(187310236, 5.39843750, 77.19921875) -[2618606.495] {Default Queue} wl_pointer#3017.motion(187310236, 5.39843750, 77.19921875) -[2618606.499] {Default Queue} wl_pointer#3049.motion(187310236, 5.39843750, 77.19921875) -[2618606.504] {Default Queue} wl_pointer#3081.motion(187310236, 5.39843750, 77.19921875) -[2618606.508] {Default Queue} wl_pointer#3113.motion(187310236, 5.39843750, 77.19921875) -[2618606.512] {Default Queue} wl_pointer#3145.motion(187310236, 5.39843750, 77.19921875) -[2618606.517] {Default Queue} wl_pointer#3177.motion(187310236, 5.39843750, 77.19921875) -[2618606.521] {Default Queue} wl_pointer#3209.motion(187310236, 5.39843750, 77.19921875) -[2618606.526] {Default Queue} wl_pointer#3241.motion(187310236, 5.39843750, 77.19921875) -[2618606.530] {Default Queue} wl_pointer#3273.motion(187310236, 5.39843750, 77.19921875) -[2618606.534] {Default Queue} wl_pointer#3305.motion(187310236, 5.39843750, 77.19921875) -[2618606.538] {Default Queue} wl_pointer#3337.motion(187310236, 5.39843750, 77.19921875) -[2618606.543] {Default Queue} wl_pointer#3369.motion(187310236, 5.39843750, 77.19921875) -[2618606.547] {Default Queue} wl_pointer#3401.motion(187310236, 5.39843750, 77.19921875) -[2618606.551] {Default Queue} wl_pointer#3433.motion(187310236, 5.39843750, 77.19921875) -[2618606.556] {Default Queue} wl_pointer#3465.motion(187310236, 5.39843750, 77.19921875) -[2618606.560] {Default Queue} wl_pointer#3497.motion(187310236, 5.39843750, 77.19921875) -[2618606.565] {Default Queue} wl_pointer#3529.motion(187310236, 5.39843750, 77.19921875) -[2618606.569] {Default Queue} wl_pointer#3561.motion(187310236, 5.39843750, 77.19921875) -[2618606.573] {Default Queue} wl_pointer#3593.motion(187310236, 5.39843750, 77.19921875) -[2618606.577] {Default Queue} wl_pointer#3625.motion(187310236, 5.39843750, 77.19921875) -[2618606.582] {Default Queue} wl_pointer#3657.motion(187310236, 5.39843750, 77.19921875) -[2618606.586] {Default Queue} wl_pointer#3695.motion(187310236, 5.39843750, 77.19921875) -[2618606.595] {Default Queue} -> wl_region#991.subtract(0, 0, 19, 48) -[2618606.600] {Default Queue} -> wl_region#991.add(-20, -49, 19, 48) -[2618606.605] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2618606.609] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2618606.718] {Default Queue} -> wl_region#991.subtract(0, 0, 19, 48) -[2618606.723] {Default Queue} -> wl_region#991.add(-20, -49, 19, 48) -[2618606.728] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2618606.732] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2618606.738] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618606.742] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618606.815] {Default Queue} -> wl_region#991.subtract(0, 0, 19, 48) -[2618606.819] {Default Queue} -> wl_region#991.add(-20, -49, 19, 48) -[2618606.824] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2618606.831] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2618606.837] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618606.842] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618606.847] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) -[2618606.851] {Default Queue} -> wl_surface#967.commit() -[2618606.855] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) -[2618606.859] {Default Queue} -> wl_surface#967.commit() -[2618606.889] {Default Queue} wl_pointer#24.motion(187310241, 6.60156250, 75.60156250) -[2618606.894] {Default Queue} wl_pointer#81.motion(187310241, 6.60156250, 75.60156250) -[2618606.899] {Default Queue} wl_pointer#105.motion(187310241, 6.60156250, 75.60156250) -[2618606.904] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618606.908] {Default Queue} wl_pointer#137.motion(187310241, 6.60156250, 75.60156250) -[2618606.913] {Default Queue} wl_pointer#169.motion(187310241, 6.60156250, 75.60156250) -[2618606.917] {Default Queue} wl_pointer#201.motion(187310241, 6.60156250, 75.60156250) -[2618606.921] {Default Queue} wl_pointer#233.motion(187310241, 6.60156250, 75.60156250) -[2618606.926] {Default Queue} wl_pointer#265.motion(187310241, 6.60156250, 75.60156250) -[2618606.930] {Default Queue} wl_pointer#297.motion(187310241, 6.60156250, 75.60156250) -[2618606.934] {Default Queue} wl_pointer#329.motion(187310241, 6.60156250, 75.60156250) -[2618606.938] {Default Queue} wl_pointer#361.motion(187310241, 6.60156250, 75.60156250) -[2618606.943] {Default Queue} wl_pointer#393.motion(187310241, 6.60156250, 75.60156250) -[2618606.947] {Default Queue} wl_pointer#425.motion(187310241, 6.60156250, 75.60156250) -[2618606.951] {Default Queue} wl_pointer#457.motion(187310241, 6.60156250, 75.60156250) -[2618606.955] {Default Queue} wl_pointer#489.motion(187310241, 6.60156250, 75.60156250) -[2618606.960] {Default Queue} wl_pointer#521.motion(187310241, 6.60156250, 75.60156250) -[2618606.964] {Default Queue} wl_pointer#553.motion(187310241, 6.60156250, 75.60156250) -[2618606.968] {Default Queue} wl_pointer#585.motion(187310241, 6.60156250, 75.60156250) -[2618606.973] {Default Queue} wl_pointer#617.motion(187310241, 6.60156250, 75.60156250) -[2618606.977] {Default Queue} wl_pointer#649.motion(187310241, 6.60156250, 75.60156250) -[2618606.981] {Default Queue} wl_pointer#681.motion(187310241, 6.60156250, 75.60156250) -[2618606.985] {Default Queue} wl_pointer#713.motion(187310241, 6.60156250, 75.60156250) -[2618606.990] {Default Queue} wl_pointer#745.motion(187310241, 6.60156250, 75.60156250) -[2618606.994] {Default Queue} wl_pointer#777.motion(187310241, 6.60156250, 75.60156250) -[2618606.998] {Default Queue} wl_pointer#809.motion(187310241, 6.60156250, 75.60156250) -[2618607.003] {Default Queue} wl_pointer#841.motion(187310241, 6.60156250, 75.60156250) -[2618607.007] {Default Queue} wl_pointer#873.motion(187310241, 6.60156250, 75.60156250) -[2618607.011] {Default Queue} wl_pointer#905.motion(187310241, 6.60156250, 75.60156250) -[2618607.015] {Default Queue} wl_pointer#937.motion(187310241, 6.60156250, 75.60156250) -[2618607.020] {Default Queue} wl_pointer#969.motion(187310241, 6.60156250, 75.60156250) -[2618607.024] {Default Queue} wl_pointer#1001.motion(187310241, 6.60156250, 75.60156250) -[2618607.028] {Default Queue} wl_pointer#1033.motion(187310241, 6.60156250, 75.60156250) -[2618607.033] {Default Queue} wl_pointer#1065.motion(187310241, 6.60156250, 75.60156250) -[2618607.037] {Default Queue} wl_pointer#1097.motion(187310241, 6.60156250, 75.60156250) -[2618607.041] {Default Queue} wl_pointer#1129.motion(187310241, 6.60156250, 75.60156250) -[2618607.045] {Default Queue} wl_pointer#1161.motion(187310241, 6.60156250, 75.60156250) -[2618607.050] {Default Queue} wl_pointer#1193.motion(187310241, 6.60156250, 75.60156250) -[2618607.054] {Default Queue} wl_pointer#1225.motion(187310241, 6.60156250, 75.60156250) -[2618607.058] {Default Queue} wl_pointer#1257.motion(187310241, 6.60156250, 75.60156250) -[2618607.062] {Default Queue} wl_pointer#1289.motion(187310241, 6.60156250, 75.60156250) -[2618607.069] {Default Queue} wl_pointer#1321.motion(187310241, 6.60156250, 75.60156250) -[2618607.075] {Default Queue} wl_pointer#1353.motion(187310241, 6.60156250, 75.60156250) -[2618607.080] {Default Queue} wl_pointer#1385.motion(187310241, 6.60156250, 75.60156250) -[2618607.084] {Default Queue} wl_pointer#1417.motion(187310241, 6.60156250, 75.60156250) -[2618607.088] {Default Queue} wl_pointer#1449.motion(187310241, 6.60156250, 75.60156250) -[2618607.092] {Default Queue} wl_pointer#1481.motion(187310241, 6.60156250, 75.60156250) -[2618607.096] {Default Queue} wl_pointer#1513.motion(187310241, 6.60156250, 75.60156250) -[2618607.101] {Default Queue} wl_pointer#1545.motion(187310241, 6.60156250, 75.60156250) -[2618607.105] {Default Queue} wl_pointer#1577.motion(187310241, 6.60156250, 75.60156250) -[2618607.109] {Default Queue} wl_pointer#1609.motion(187310241, 6.60156250, 75.60156250) -[2618607.114] {Default Queue} wl_pointer#1641.motion(187310241, 6.60156250, 75.60156250) -[2618607.118] {Default Queue} wl_pointer#1673.motion(187310241, 6.60156250, 75.60156250) -[2618607.122] {Default Queue} wl_pointer#1705.motion(187310241, 6.60156250, 75.60156250) -[2618607.126] {Default Queue} wl_pointer#1737.motion(187310241, 6.60156250, 75.60156250) -[2618607.131] {Default Queue} wl_pointer#1762.motion(187310241, 6.60156250, 75.60156250) -[2618607.135] {Default Queue} wl_pointer#1801.motion(187310241, 6.60156250, 75.60156250) -[2618607.139] {Default Queue} wl_pointer#1833.motion(187310241, 6.60156250, 75.60156250) -[2618607.143] {Default Queue} wl_pointer#1865.motion(187310241, 6.60156250, 75.60156250) -[2618607.148] {Default Queue} wl_pointer#1897.motion(187310241, 6.60156250, 75.60156250) -[2618607.152] {Default Queue} wl_pointer#1929.motion(187310241, 6.60156250, 75.60156250) -[2618607.156] {Default Queue} wl_pointer#1961.motion(187310241, 6.60156250, 75.60156250) -[2618607.160] {Default Queue} wl_pointer#1993.motion(187310241, 6.60156250, 75.60156250) -[2618607.165] {Default Queue} wl_pointer#2025.motion(187310241, 6.60156250, 75.60156250) -[2618607.169] {Default Queue} wl_pointer#2057.motion(187310241, 6.60156250, 75.60156250) -[2618607.173] {Default Queue} wl_pointer#2089.motion(187310241, 6.60156250, 75.60156250) -[2618607.178] {Default Queue} wl_pointer#2121.motion(187310241, 6.60156250, 75.60156250) -[2618607.182] {Default Queue} wl_pointer#2153.motion(187310241, 6.60156250, 75.60156250) -[2618607.186] {Default Queue} wl_pointer#2185.motion(187310241, 6.60156250, 75.60156250) -[2618607.190] {Default Queue} wl_pointer#2217.motion(187310241, 6.60156250, 75.60156250) -[2618607.195] {Default Queue} wl_pointer#2249.motion(187310241, 6.60156250, 75.60156250) -[2618607.199] {Default Queue} wl_pointer#2281.motion(187310241, 6.60156250, 75.60156250) -[2618607.203] {Default Queue} wl_pointer#2313.motion(187310241, 6.60156250, 75.60156250) -[2618607.208] {Default Queue} wl_pointer#2345.motion(187310241, 6.60156250, 75.60156250) -[2618607.212] {Default Queue} wl_pointer#2377.motion(187310241, 6.60156250, 75.60156250) -[2618607.216] {Default Queue} wl_pointer#2409.motion(187310241, 6.60156250, 75.60156250) -[2618607.221] {Default Queue} wl_pointer#2441.motion(187310241, 6.60156250, 75.60156250) -[2618607.225] {Default Queue} wl_pointer#2473.motion(187310241, 6.60156250, 75.60156250) -[2618607.229] {Default Queue} wl_pointer#2498.motion(187310241, 6.60156250, 75.60156250) -[2618607.241] {Default Queue} -> wl_buffer#3452.destroy() -[2618607.245] {Default Queue} -> wl_buffer#3451.destroy() -[2618607.249] {Default Queue} -> wl_shm_pool#3518.destroy() -[2618607.253] {Default Queue} -> wl_shm_pool#3517.destroy() -[2618607.258] {Default Queue} -> wl_surface#3454.destroy() -[2618607.300] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#93, fd 575, 640) -[2618607.306] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 578, 640) -[2618607.311] {Default Queue} -> wl_shm_pool#93.create_buffer(new id wl_buffer#3683, 0, 10, 16, 40, 0) -[2618607.315] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) -[2618607.326] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#91) -[2618607.332] {Default Queue} -> wl_surface#91.attach(wl_buffer#3683, 0, 0) -[2618607.337] {Default Queue} -> wl_surface#91.commit() -[2618607.342] {Default Queue} -> wl_surface#91.attach(wl_buffer#3683, 0, 0) -[2618607.346] {Default Queue} -> wl_surface#91.commit() -[2618607.350] {Default Queue} wl_pointer#2537.motion(187310241, 6.60156250, 75.60156250) -[2618607.355] {Default Queue} wl_pointer#2569.motion(187310241, 6.60156250, 75.60156250) -[2618607.359] {Default Queue} wl_pointer#2601.motion(187310241, 6.60156250, 75.60156250) -[2618607.364] {Default Queue} wl_pointer#2633.motion(187310241, 6.60156250, 75.60156250) -[2618607.368] {Default Queue} wl_pointer#2665.motion(187310241, 6.60156250, 75.60156250) -[2618607.372] {Default Queue} wl_pointer#2697.motion(187310241, 6.60156250, 75.60156250) -[2618607.377] {Default Queue} wl_pointer#2729.motion(187310241, 6.60156250, 75.60156250) -[2618607.381] {Default Queue} wl_pointer#2761.motion(187310241, 6.60156250, 75.60156250) -[2618607.385] {Default Queue} wl_pointer#2793.motion(187310241, 6.60156250, 75.60156250) -[2618607.390] {Default Queue} wl_pointer#2825.motion(187310241, 6.60156250, 75.60156250) -[2618607.394] {Default Queue} wl_pointer#2857.motion(187310241, 6.60156250, 75.60156250) -[2618607.398] {Default Queue} wl_pointer#2889.motion(187310241, 6.60156250, 75.60156250) -[2618607.403] {Default Queue} wl_pointer#2921.motion(187310241, 6.60156250, 75.60156250) -[2618607.407] {Default Queue} wl_pointer#2953.motion(187310241, 6.60156250, 75.60156250) -[2618607.411] {Default Queue} wl_pointer#2985.motion(187310241, 6.60156250, 75.60156250) -[2618607.415] {Default Queue} wl_pointer#3017.motion(187310241, 6.60156250, 75.60156250) -[2618607.420] {Default Queue} wl_pointer#3049.motion(187310241, 6.60156250, 75.60156250) -[2618607.424] {Default Queue} wl_pointer#3081.motion(187310241, 6.60156250, 75.60156250) -[2618607.429] {Default Queue} wl_pointer#3113.motion(187310241, 6.60156250, 75.60156250) -[2618607.433] {Default Queue} wl_pointer#3145.motion(187310241, 6.60156250, 75.60156250) -[2618607.437] {Default Queue} wl_pointer#3177.motion(187310241, 6.60156250, 75.60156250) -[2618607.441] {Default Queue} wl_pointer#3209.motion(187310241, 6.60156250, 75.60156250) -[2618607.446] {Default Queue} wl_pointer#3241.motion(187310241, 6.60156250, 75.60156250) -[2618607.450] {Default Queue} wl_pointer#3273.motion(187310241, 6.60156250, 75.60156250) -[2618607.455] {Default Queue} wl_pointer#3305.motion(187310241, 6.60156250, 75.60156250) -[2618607.461] {Default Queue} wl_pointer#3337.motion(187310241, 6.60156250, 75.60156250) -[2618607.467] {Default Queue} wl_pointer#3369.motion(187310241, 6.60156250, 75.60156250) -[2618607.473] {Default Queue} wl_pointer#3401.motion(187310241, 6.60156250, 75.60156250) -[2618607.478] {Default Queue} wl_pointer#3433.motion(187310241, 6.60156250, 75.60156250) -[2618607.484] {Default Queue} wl_pointer#3465.motion(187310241, 6.60156250, 75.60156250) -[2618607.490] {Default Queue} wl_pointer#3497.motion(187310241, 6.60156250, 75.60156250) -[2618607.496] {Default Queue} wl_pointer#3529.motion(187310241, 6.60156250, 75.60156250) -[2618607.502] {Default Queue} wl_pointer#3561.motion(187310241, 6.60156250, 75.60156250) -[2618607.508] {Default Queue} wl_pointer#3593.motion(187310241, 6.60156250, 75.60156250) -[2618607.514] {Default Queue} wl_pointer#3625.motion(187310241, 6.60156250, 75.60156250) -[2618607.520] {Default Queue} wl_pointer#3657.motion(187310241, 6.60156250, 75.60156250) -[2618607.526] {Default Queue} wl_pointer#3695.motion(187310241, 6.60156250, 75.60156250) -[2618607.531] {Default Queue} wl_pointer#24.motion(187310241, 7.39843750, 74.00000000) -[2618607.535] {Default Queue} wl_pointer#81.motion(187310241, 7.39843750, 74.00000000) -[2618607.541] {Default Queue} wl_pointer#105.motion(187310241, 7.39843750, 74.00000000) -[2618607.545] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618607.550] {Default Queue} wl_pointer#137.motion(187310241, 7.39843750, 74.00000000) -[2618607.559] {Default Queue} wl_pointer#169.motion(187310241, 7.39843750, 74.00000000) -[2618607.565] {Default Queue} wl_pointer#201.motion(187310241, 7.39843750, 74.00000000) -[2618607.569] {Default Queue} wl_pointer#233.motion(187310241, 7.39843750, 74.00000000) -[2618607.574] {Default Queue} wl_pointer#265.motion(187310241, 7.39843750, 74.00000000) -[2618607.578] {Default Queue} wl_pointer#297.motion(187310241, 7.39843750, 74.00000000) -[2618607.582] {Default Queue} wl_pointer#329.motion(187310241, 7.39843750, 74.00000000) -[2618607.587] {Default Queue} wl_pointer#361.motion(187310241, 7.39843750, 74.00000000) -[2618607.591] {Default Queue} wl_pointer#393.motion(187310241, 7.39843750, 74.00000000) -[2618607.595] {Default Queue} wl_pointer#425.motion(187310241, 7.39843750, 74.00000000) -[2618607.599] {Default Queue} wl_pointer#457.motion(187310241, 7.39843750, 74.00000000) -[2618607.604] {Default Queue} wl_pointer#489.motion(187310241, 7.39843750, 74.00000000) -[2618607.608] {Default Queue} wl_pointer#521.motion(187310241, 7.39843750, 74.00000000) -[2618607.612] {Default Queue} wl_pointer#553.motion(187310241, 7.39843750, 74.00000000) -[2618607.617] {Default Queue} wl_pointer#585.motion(187310241, 7.39843750, 74.00000000) -[2618607.621] {Default Queue} wl_pointer#617.motion(187310241, 7.39843750, 74.00000000) -[2618607.625] {Default Queue} wl_pointer#649.motion(187310241, 7.39843750, 74.00000000) -[2618607.630] {Default Queue} wl_pointer#681.motion(187310241, 7.39843750, 74.00000000) -[2618607.634] {Default Queue} wl_pointer#713.motion(187310241, 7.39843750, 74.00000000) -[2618607.638] {Default Queue} wl_pointer#745.motion(187310241, 7.39843750, 74.00000000) -[2618607.642] {Default Queue} wl_pointer#777.motion(187310241, 7.39843750, 74.00000000) -[2618607.647] {Default Queue} wl_pointer#809.motion(187310241, 7.39843750, 74.00000000) -[2618607.651] {Default Queue} wl_pointer#841.motion(187310241, 7.39843750, 74.00000000) -[2618607.655] {Default Queue} wl_pointer#873.motion(187310241, 7.39843750, 74.00000000) -[2618607.660] {Default Queue} wl_pointer#905.motion(187310241, 7.39843750, 74.00000000) -[2618607.664] {Default Queue} wl_pointer#937.motion(187310241, 7.39843750, 74.00000000) -[2618607.668] {Default Queue} wl_pointer#969.motion(187310241, 7.39843750, 74.00000000) -[2618607.673] {Default Queue} wl_pointer#1001.motion(187310241, 7.39843750, 74.00000000) -[2618607.677] {Default Queue} wl_pointer#1033.motion(187310241, 7.39843750, 74.00000000) -[2618607.681] {Default Queue} wl_pointer#1065.motion(187310241, 7.39843750, 74.00000000) -[2618607.686] {Default Queue} wl_pointer#1097.motion(187310241, 7.39843750, 74.00000000) -[2618607.690] {Default Queue} wl_pointer#1129.motion(187310241, 7.39843750, 74.00000000) -[2618607.694] {Default Queue} wl_pointer#1161.motion(187310241, 7.39843750, 74.00000000) -[2618607.699] {Default Queue} wl_pointer#1193.motion(187310241, 7.39843750, 74.00000000) -[2618607.703] {Default Queue} wl_pointer#1225.motion(187310241, 7.39843750, 74.00000000) -[2618607.707] {Default Queue} wl_pointer#1257.motion(187310241, 7.39843750, 74.00000000) -[2618607.712] {Default Queue} wl_pointer#1289.motion(187310241, 7.39843750, 74.00000000) -[2618607.716] {Default Queue} wl_pointer#1321.motion(187310241, 7.39843750, 74.00000000) -[2618607.720] {Default Queue} wl_pointer#1353.motion(187310241, 7.39843750, 74.00000000) -[2618607.724] {Default Queue} wl_pointer#1385.motion(187310241, 7.39843750, 74.00000000) -[2618607.729] {Default Queue} wl_pointer#1417.motion(187310241, 7.39843750, 74.00000000) -[2618607.733] {Default Queue} wl_pointer#1449.motion(187310241, 7.39843750, 74.00000000) -[2618607.737] {Default Queue} wl_pointer#1481.motion(187310241, 7.39843750, 74.00000000) -[2618607.742] {Default Queue} wl_pointer#1513.motion(187310241, 7.39843750, 74.00000000) -[2618607.746] {Default Queue} wl_pointer#1545.motion(187310241, 7.39843750, 74.00000000) -[2618607.750] {Default Queue} wl_pointer#1577.motion(187310241, 7.39843750, 74.00000000) -[2618607.754] {Default Queue} wl_pointer#1609.motion(187310241, 7.39843750, 74.00000000) -[2618607.762] {Default Queue} wl_pointer#1641.motion(187310241, 7.39843750, 74.00000000) -[2618607.767] {Default Queue} wl_pointer#1673.motion(187310241, 7.39843750, 74.00000000) -[2618607.772] {Default Queue} wl_pointer#1705.motion(187310241, 7.39843750, 74.00000000) -[2618607.776] {Default Queue} wl_pointer#1737.motion(187310241, 7.39843750, 74.00000000) -[2618607.781] {Default Queue} wl_pointer#1762.motion(187310241, 7.39843750, 74.00000000) -[2618607.785] {Default Queue} wl_pointer#1801.motion(187310241, 7.39843750, 74.00000000) -[2618607.789] {Default Queue} wl_pointer#1833.motion(187310241, 7.39843750, 74.00000000) -[2618607.794] {Default Queue} wl_pointer#1865.motion(187310241, 7.39843750, 74.00000000) -[2618607.798] {Default Queue} wl_pointer#1897.motion(187310241, 7.39843750, 74.00000000) -[2618607.802] {Default Queue} wl_pointer#1929.motion(187310241, 7.39843750, 74.00000000) -[2618607.806] {Default Queue} wl_pointer#1961.motion(187310241, 7.39843750, 74.00000000) -[2618607.811] {Default Queue} wl_pointer#1993.motion(187310241, 7.39843750, 74.00000000) -[2618607.815] {Default Queue} wl_pointer#2025.motion(187310241, 7.39843750, 74.00000000) -[2618607.819] {Default Queue} wl_pointer#2057.motion(187310241, 7.39843750, 74.00000000) -[2618607.823] {Default Queue} wl_pointer#2089.motion(187310241, 7.39843750, 74.00000000) -[2618607.828] {Default Queue} wl_pointer#2121.motion(187310241, 7.39843750, 74.00000000) -[2618607.832] {Default Queue} wl_pointer#2153.motion(187310241, 7.39843750, 74.00000000) -[2618607.836] {Default Queue} wl_pointer#2185.motion(187310241, 7.39843750, 74.00000000) -[2618607.840] {Default Queue} wl_pointer#2217.motion(187310241, 7.39843750, 74.00000000) -[2618607.845] {Default Queue} wl_pointer#2249.motion(187310241, 7.39843750, 74.00000000) -[2618607.849] {Default Queue} wl_pointer#2281.motion(187310241, 7.39843750, 74.00000000) -[2618607.853] {Default Queue} wl_pointer#2313.motion(187310241, 7.39843750, 74.00000000) -[2618607.858] {Default Queue} wl_pointer#2345.motion(187310241, 7.39843750, 74.00000000) -[2618607.863] {Default Queue} wl_pointer#2377.motion(187310241, 7.39843750, 74.00000000) -[2618607.868] {Default Queue} wl_pointer#2409.motion(187310241, 7.39843750, 74.00000000) -[2618607.876] {Default Queue} wl_pointer#2441.motion(187310241, 7.39843750, 74.00000000) -[2618607.881] {Default Queue} wl_pointer#2473.motion(187310241, 7.39843750, 74.00000000) -[2618607.885] {Default Queue} wl_pointer#2498.motion(187310241, 7.39843750, 74.00000000) -[2618607.896] {Default Queue} -> wl_buffer#3683.destroy() -[2618607.901] {Default Queue} -> wl_buffer#94.destroy() -[2618607.905] {Default Queue} -> wl_shm_pool#93.destroy() -[2618607.909] {Default Queue} -> wl_shm_pool#92.destroy() -[2618607.914] {Default Queue} -> wl_surface#91.destroy() -[2618607.952] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3684, fd 581, 640) -[2618607.958] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 582, 640) -[2618607.962] {Default Queue} -> wl_shm_pool#3684.create_buffer(new id wl_buffer#3671, 0, 10, 16, 40, 0) -[2618607.967] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) -[2618607.974] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3682) -[2618607.978] {Default Queue} -> wl_surface#3682.attach(wl_buffer#3671, 0, 0) -[2618607.984] {Default Queue} -> wl_surface#3682.commit() -[2618607.991] {Default Queue} -> wl_surface#3682.attach(wl_buffer#3671, 0, 0) -[2618607.996] {Default Queue} -> wl_surface#3682.commit() -[2618608.002] {Default Queue} wl_pointer#2537.motion(187310241, 7.39843750, 74.00000000) -[2618608.007] {Default Queue} wl_pointer#2569.motion(187310241, 7.39843750, 74.00000000) -[2618608.012] {Default Queue} wl_pointer#2601.motion(187310241, 7.39843750, 74.00000000) -[2618608.018] {Default Queue} wl_pointer#2633.motion(187310241, 7.39843750, 74.00000000) -[2618608.024] {Default Queue} wl_pointer#2665.motion(187310241, 7.39843750, 74.00000000) -[2618608.030] {Default Queue} wl_pointer#2697.motion(187310241, 7.39843750, 74.00000000) -[2618608.038] {Default Queue} wl_pointer#2729.motion(187310241, 7.39843750, 74.00000000) -[2618608.045] {Default Queue} wl_pointer#2761.motion(187310241, 7.39843750, 74.00000000) -[2618608.049] {Default Queue} wl_pointer#2793.motion(187310241, 7.39843750, 74.00000000) -[2618608.054] {Default Queue} wl_pointer#2825.motion(187310241, 7.39843750, 74.00000000) -[2618608.058] {Default Queue} wl_pointer#2857.motion(187310241, 7.39843750, 74.00000000) -[2618608.063] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) -[2618608.067] {Default Queue} -> wl_surface#967.commit() -[2618609.132] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) -[2618609.137] {Default Queue} -> wl_surface#967.commit() -[2618609.143] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) -[2618609.148] {Default Queue} -> wl_surface#967.commit() -[2618609.154] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) -[2618609.159] {Default Queue} -> wl_surface#1095.commit() -[2618610.219] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) -[2618610.225] {Default Queue} -> wl_surface#1095.commit() -[2618610.235] {Default Queue} -> wl_region#1119.subtract(0, 0, 19, 48) -[2618610.239] {Default Queue} -> wl_region#1119.add(-20, -49, 19, 48) -[2618610.244] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618610.248] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618610.257] {Default Queue} -> wl_region#1119.subtract(0, 0, 19, 48) -[2618610.261] {Default Queue} -> wl_region#1119.add(-20, -49, 19, 48) -[2618610.266] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618610.270] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618610.275] {Default Queue} -> wl_region#1119.subtract(0, 0, 19, 48) -[2618610.279] {Default Queue} -> wl_region#1119.add(-20, -49, 19, 48) -[2618610.283] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618610.287] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618610.292] {Default Queue} -> wl_region#1119.subtract(0, 0, 19, 48) -[2618610.296] {Default Queue} -> wl_region#1119.add(-20, -49, 19, 48) -[2618610.300] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618610.304] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618610.308] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) -[2618610.313] {Default Queue} -> wl_surface#1095.commit() -[2618610.317] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) -[2618610.321] {Default Queue} -> wl_surface#1095.commit() -[2618610.326] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) -[2618610.331] {Default Queue} -> wl_surface#1095.commit() -[2618610.337] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) -[2618610.341] {Default Queue} -> wl_surface#1127.commit() -[2618611.370] {Display Queue} wl_display#1.delete_id(3294) -[2618611.377] {Display Queue} wl_display#1.delete_id(3293) -[2618611.382] {Display Queue} wl_display#1.delete_id(3292) -[2618611.386] {Display Queue} wl_display#1.delete_id(3291) -[2618611.390] {Display Queue} wl_display#1.delete_id(3484) -[2618611.394] {Display Queue} wl_display#1.delete_id(3485) -[2618611.398] {Display Queue} wl_display#1.delete_id(3516) -[2618611.402] {Display Queue} wl_display#1.delete_id(3483) -[2618611.406] {Display Queue} wl_display#1.delete_id(3486) -[2618611.410] {Display Queue} wl_display#1.delete_id(3515) -[2618611.414] {Default Queue} wl_pointer#2889.motion(187310241, 7.39843750, 74.00000000) -[2618611.418] {Default Queue} wl_pointer#2921.motion(187310241, 7.39843750, 74.00000000) -[2618611.423] {Default Queue} wl_pointer#2953.motion(187310241, 7.39843750, 74.00000000) -[2618611.427] {Default Queue} wl_pointer#2985.motion(187310241, 7.39843750, 74.00000000) -[2618611.431] {Default Queue} wl_pointer#3017.motion(187310241, 7.39843750, 74.00000000) -[2618611.435] {Default Queue} wl_pointer#3049.motion(187310241, 7.39843750, 74.00000000) -[2618611.440] {Default Queue} wl_pointer#3081.motion(187310241, 7.39843750, 74.00000000) -[2618611.448] {Default Queue} wl_pointer#3113.motion(187310241, 7.39843750, 74.00000000) -[2618611.454] {Default Queue} wl_pointer#3145.motion(187310241, 7.39843750, 74.00000000) -[2618611.458] {Default Queue} wl_pointer#3177.motion(187310241, 7.39843750, 74.00000000) -[2618611.462] {Default Queue} wl_pointer#3209.motion(187310241, 7.39843750, 74.00000000) -[2618611.467] {Default Queue} wl_pointer#3241.motion(187310241, 7.39843750, 74.00000000) -[2618611.471] {Default Queue} wl_pointer#3273.motion(187310241, 7.39843750, 74.00000000) -[2618611.475] {Default Queue} wl_pointer#3305.motion(187310241, 7.39843750, 74.00000000) -[2618611.480] {Default Queue} wl_pointer#3337.motion(187310241, 7.39843750, 74.00000000) -[2618611.484] {Default Queue} wl_pointer#3369.motion(187310241, 7.39843750, 74.00000000) -[2618611.488] {Default Queue} wl_pointer#3401.motion(187310241, 7.39843750, 74.00000000) -[2618611.492] {Default Queue} wl_pointer#3433.motion(187310241, 7.39843750, 74.00000000) -[2618611.497] {Default Queue} wl_pointer#3465.motion(187310241, 7.39843750, 74.00000000) -[2618611.501] {Default Queue} wl_pointer#3497.motion(187310241, 7.39843750, 74.00000000) -[2618611.506] {Default Queue} wl_pointer#3529.motion(187310241, 7.39843750, 74.00000000) -[2618611.510] {Default Queue} wl_pointer#3561.motion(187310241, 7.39843750, 74.00000000) -[2618611.514] {Default Queue} wl_pointer#3593.motion(187310241, 7.39843750, 74.00000000) -[2618611.519] {Default Queue} wl_pointer#3625.motion(187310241, 7.39843750, 74.00000000) -[2618611.523] {Default Queue} wl_pointer#3657.motion(187310241, 7.39843750, 74.00000000) -[2618611.527] {Default Queue} wl_pointer#3695.motion(187310241, 7.39843750, 74.00000000) -[2618611.531] {Default Queue} wl_pointer#24.motion(187310241, 8.60156250, 72.80078125) -[2618611.536] {Default Queue} wl_pointer#81.motion(187310241, 8.60156250, 72.80078125) -[2618611.541] {Default Queue} wl_pointer#105.motion(187310241, 8.60156250, 72.80078125) -[2618611.545] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618611.549] {Default Queue} wl_pointer#137.motion(187310241, 8.60156250, 72.80078125) -[2618611.554] {Default Queue} wl_pointer#169.motion(187310241, 8.60156250, 72.80078125) -[2618611.558] {Default Queue} wl_pointer#201.motion(187310241, 8.60156250, 72.80078125) -[2618611.562] {Default Queue} wl_pointer#233.motion(187310241, 8.60156250, 72.80078125) -[2618611.566] {Default Queue} wl_pointer#265.motion(187310241, 8.60156250, 72.80078125) -[2618611.571] {Default Queue} wl_pointer#297.motion(187310241, 8.60156250, 72.80078125) -[2618611.575] {Default Queue} wl_pointer#329.motion(187310241, 8.60156250, 72.80078125) -[2618611.579] {Default Queue} wl_pointer#361.motion(187310241, 8.60156250, 72.80078125) -[2618611.584] {Default Queue} wl_pointer#393.motion(187310241, 8.60156250, 72.80078125) -[2618611.588] {Default Queue} wl_pointer#425.motion(187310241, 8.60156250, 72.80078125) -[2618611.592] {Default Queue} wl_pointer#457.motion(187310241, 8.60156250, 72.80078125) -[2618611.596] {Default Queue} wl_pointer#489.motion(187310241, 8.60156250, 72.80078125) -[2618611.601] {Default Queue} wl_pointer#521.motion(187310241, 8.60156250, 72.80078125) -[2618611.605] {Default Queue} wl_pointer#553.motion(187310241, 8.60156250, 72.80078125) -[2618611.609] {Default Queue} wl_pointer#585.motion(187310241, 8.60156250, 72.80078125) -[2618611.613] {Default Queue} wl_pointer#617.motion(187310241, 8.60156250, 72.80078125) -[2618611.618] {Default Queue} wl_pointer#649.motion(187310241, 8.60156250, 72.80078125) -[2618611.622] {Default Queue} wl_pointer#681.motion(187310241, 8.60156250, 72.80078125) -[2618611.626] {Default Queue} wl_pointer#713.motion(187310241, 8.60156250, 72.80078125) -[2618611.630] {Default Queue} wl_pointer#745.motion(187310241, 8.60156250, 72.80078125) -[2618611.635] {Default Queue} wl_pointer#777.motion(187310241, 8.60156250, 72.80078125) -[2618611.639] {Default Queue} wl_pointer#809.motion(187310241, 8.60156250, 72.80078125) -[2618611.643] {Default Queue} wl_pointer#841.motion(187310241, 8.60156250, 72.80078125) -[2618611.650] {Default Queue} wl_pointer#873.motion(187310241, 8.60156250, 72.80078125) -[2618611.656] {Default Queue} wl_pointer#905.motion(187310241, 8.60156250, 72.80078125) -[2618611.660] {Default Queue} wl_pointer#937.motion(187310241, 8.60156250, 72.80078125) -[2618611.664] {Default Queue} wl_pointer#969.motion(187310241, 8.60156250, 72.80078125) -[2618611.669] {Default Queue} wl_pointer#1001.motion(187310241, 8.60156250, 72.80078125) -[2618611.673] {Default Queue} wl_pointer#1033.motion(187310241, 8.60156250, 72.80078125) -[2618611.677] {Default Queue} wl_pointer#1065.motion(187310241, 8.60156250, 72.80078125) -[2618611.681] {Default Queue} wl_pointer#1097.motion(187310241, 8.60156250, 72.80078125) -[2618611.686] {Default Queue} wl_pointer#1129.motion(187310241, 8.60156250, 72.80078125) -[2618611.690] {Default Queue} wl_pointer#1161.motion(187310241, 8.60156250, 72.80078125) -[2618611.694] {Default Queue} wl_pointer#1193.motion(187310241, 8.60156250, 72.80078125) -[2618611.699] {Default Queue} wl_pointer#1225.motion(187310241, 8.60156250, 72.80078125) -[2618611.703] {Default Queue} wl_pointer#1257.motion(187310241, 8.60156250, 72.80078125) -[2618611.707] {Default Queue} wl_pointer#1289.motion(187310241, 8.60156250, 72.80078125) -[2618611.711] {Default Queue} wl_pointer#1321.motion(187310241, 8.60156250, 72.80078125) -[2618611.716] {Default Queue} wl_pointer#1353.motion(187310241, 8.60156250, 72.80078125) -[2618611.720] {Default Queue} wl_pointer#1385.motion(187310241, 8.60156250, 72.80078125) -[2618611.724] {Default Queue} wl_pointer#1417.motion(187310241, 8.60156250, 72.80078125) -[2618611.729] {Default Queue} wl_pointer#1449.motion(187310241, 8.60156250, 72.80078125) -[2618611.733] {Default Queue} wl_pointer#1481.motion(187310241, 8.60156250, 72.80078125) -[2618611.737] {Default Queue} wl_pointer#1513.motion(187310241, 8.60156250, 72.80078125) -[2618611.741] {Default Queue} wl_pointer#1545.motion(187310241, 8.60156250, 72.80078125) -[2618611.746] {Default Queue} wl_pointer#1577.motion(187310241, 8.60156250, 72.80078125) -[2618611.750] {Default Queue} wl_pointer#1609.motion(187310241, 8.60156250, 72.80078125) -[2618611.754] {Default Queue} wl_pointer#1641.motion(187310241, 8.60156250, 72.80078125) -[2618611.758] {Default Queue} wl_pointer#1673.motion(187310241, 8.60156250, 72.80078125) -[2618611.763] {Default Queue} wl_pointer#1705.motion(187310241, 8.60156250, 72.80078125) -[2618611.767] {Default Queue} wl_pointer#1737.motion(187310241, 8.60156250, 72.80078125) -[2618611.771] {Default Queue} wl_pointer#1762.motion(187310241, 8.60156250, 72.80078125) -[2618611.775] {Default Queue} wl_pointer#1801.motion(187310241, 8.60156250, 72.80078125) -[2618611.780] {Default Queue} wl_pointer#1833.motion(187310241, 8.60156250, 72.80078125) -[2618611.784] {Default Queue} wl_pointer#1865.motion(187310241, 8.60156250, 72.80078125) -[2618611.788] {Default Queue} wl_pointer#1897.motion(187310241, 8.60156250, 72.80078125) -[2618611.793] {Default Queue} wl_pointer#1929.motion(187310241, 8.60156250, 72.80078125) -[2618611.797] {Default Queue} wl_pointer#1961.motion(187310241, 8.60156250, 72.80078125) -[2618611.801] {Default Queue} wl_pointer#1993.motion(187310241, 8.60156250, 72.80078125) -[2618611.806] {Default Queue} wl_pointer#2025.motion(187310241, 8.60156250, 72.80078125) -[2618611.810] {Default Queue} wl_pointer#2057.motion(187310241, 8.60156250, 72.80078125) -[2618611.814] {Default Queue} wl_pointer#2089.motion(187310241, 8.60156250, 72.80078125) -[2618611.818] {Default Queue} wl_pointer#2121.motion(187310241, 8.60156250, 72.80078125) -[2618611.823] {Default Queue} wl_pointer#2153.motion(187310241, 8.60156250, 72.80078125) -[2618611.827] {Default Queue} wl_pointer#2185.motion(187310241, 8.60156250, 72.80078125) -[2618611.831] {Default Queue} wl_pointer#2217.motion(187310241, 8.60156250, 72.80078125) -[2618611.836] {Default Queue} wl_pointer#2249.motion(187310241, 8.60156250, 72.80078125) -[2618611.840] {Default Queue} wl_pointer#2281.motion(187310241, 8.60156250, 72.80078125) -[2618611.844] {Default Queue} wl_pointer#2313.motion(187310241, 8.60156250, 72.80078125) -[2618611.851] {Default Queue} wl_pointer#2345.motion(187310241, 8.60156250, 72.80078125) -[2618611.857] {Default Queue} wl_pointer#2377.motion(187310241, 8.60156250, 72.80078125) -[2618611.866] {Default Queue} wl_pointer#2409.motion(187310241, 8.60156250, 72.80078125) -[2618611.871] {Default Queue} wl_pointer#2441.motion(187310241, 8.60156250, 72.80078125) -[2618611.875] {Default Queue} wl_pointer#2473.motion(187310241, 8.60156250, 72.80078125) -[2618611.879] {Default Queue} wl_pointer#2498.motion(187310241, 8.60156250, 72.80078125) -[2618611.891] {Default Queue} -> wl_buffer#3671.destroy() -[2618611.895] {Default Queue} -> wl_buffer#3681.destroy() -[2618611.899] {Default Queue} -> wl_shm_pool#3684.destroy() -[2618611.903] {Default Queue} -> wl_shm_pool#3679.destroy() -[2618611.908] {Default Queue} -> wl_surface#3682.destroy() -[2618611.945] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3515, fd 575, 640) -[2618611.951] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3486, fd 578, 640) -[2618611.955] {Default Queue} -> wl_shm_pool#3515.create_buffer(new id wl_buffer#3483, 0, 10, 16, 40, 0) -[2618611.960] {Default Queue} -> wl_shm_pool#3486.create_buffer(new id wl_buffer#3516, 0, 10, 16, 40, 0) -[2618611.967] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3485) -[2618611.971] {Default Queue} -> wl_surface#3485.attach(wl_buffer#3483, 0, 0) -[2618611.976] {Default Queue} -> wl_surface#3485.commit() -[2618611.981] {Default Queue} -> wl_surface#3485.attach(wl_buffer#3483, 0, 0) -[2618611.985] {Default Queue} -> wl_surface#3485.commit() -[2618611.989] {Default Queue} wl_pointer#2537.motion(187310241, 8.60156250, 72.80078125) -[2618611.994] {Default Queue} wl_pointer#2569.motion(187310241, 8.60156250, 72.80078125) -[2618611.998] {Default Queue} wl_pointer#2601.motion(187310241, 8.60156250, 72.80078125) -[2618612.003] {Default Queue} wl_pointer#2633.motion(187310241, 8.60156250, 72.80078125) -[2618612.007] {Default Queue} wl_pointer#2665.motion(187310241, 8.60156250, 72.80078125) -[2618612.012] {Default Queue} wl_pointer#2697.motion(187310241, 8.60156250, 72.80078125) -[2618612.018] {Default Queue} wl_pointer#2729.motion(187310241, 8.60156250, 72.80078125) -[2618612.024] {Default Queue} wl_pointer#2761.motion(187310241, 8.60156250, 72.80078125) -[2618612.030] {Default Queue} wl_pointer#2793.motion(187310241, 8.60156250, 72.80078125) -[2618612.035] {Default Queue} wl_pointer#2825.motion(187310241, 8.60156250, 72.80078125) -[2618612.040] {Default Queue} wl_pointer#2857.motion(187310241, 8.60156250, 72.80078125) -[2618612.044] {Default Queue} wl_pointer#2889.motion(187310241, 8.60156250, 72.80078125) -[2618612.048] {Default Queue} wl_pointer#2921.motion(187310241, 8.60156250, 72.80078125) -[2618612.052] {Default Queue} wl_pointer#2953.motion(187310241, 8.60156250, 72.80078125) -[2618612.057] {Default Queue} wl_pointer#2985.motion(187310241, 8.60156250, 72.80078125) -[2618612.061] {Default Queue} wl_pointer#3017.motion(187310241, 8.60156250, 72.80078125) -[2618612.065] {Default Queue} wl_pointer#3049.motion(187310241, 8.60156250, 72.80078125) -[2618612.070] {Default Queue} wl_pointer#3081.motion(187310241, 8.60156250, 72.80078125) -[2618612.074] {Default Queue} wl_pointer#3113.motion(187310241, 8.60156250, 72.80078125) -[2618612.078] {Default Queue} wl_pointer#3145.motion(187310241, 8.60156250, 72.80078125) -[2618612.082] {Default Queue} wl_pointer#3177.motion(187310241, 8.60156250, 72.80078125) -[2618612.087] {Default Queue} wl_pointer#3209.motion(187310241, 8.60156250, 72.80078125) -[2618612.091] {Default Queue} wl_pointer#3241.motion(187310241, 8.60156250, 72.80078125) -[2618612.096] {Default Queue} wl_pointer#3273.motion(187310241, 8.60156250, 72.80078125) -[2618612.100] {Default Queue} wl_pointer#3305.motion(187310241, 8.60156250, 72.80078125) -[2618612.104] {Default Queue} wl_pointer#3337.motion(187310241, 8.60156250, 72.80078125) -[2618612.109] {Default Queue} wl_pointer#3369.motion(187310241, 8.60156250, 72.80078125) -[2618612.113] {Default Queue} wl_pointer#3401.motion(187310241, 8.60156250, 72.80078125) -[2618612.120] {Default Queue} wl_pointer#3433.motion(187310241, 8.60156250, 72.80078125) -[2618612.127] {Default Queue} wl_pointer#3465.motion(187310241, 8.60156250, 72.80078125) -[2618612.131] {Default Queue} wl_pointer#3497.motion(187310241, 8.60156250, 72.80078125) -[2618612.136] {Default Queue} wl_pointer#3529.motion(187310241, 8.60156250, 72.80078125) -[2618612.140] {Default Queue} wl_pointer#3561.motion(187310241, 8.60156250, 72.80078125) -[2618612.144] {Default Queue} wl_pointer#3593.motion(187310241, 8.60156250, 72.80078125) -[2618612.149] {Default Queue} wl_pointer#3625.motion(187310241, 8.60156250, 72.80078125) -[2618612.153] {Default Queue} wl_pointer#3657.motion(187310241, 8.60156250, 72.80078125) -[2618612.157] {Default Queue} wl_pointer#3695.motion(187310241, 8.60156250, 72.80078125) -[2618612.167] {Default Queue} -> wl_region#1151.subtract(0, 0, 19, 48) -[2618612.171] {Default Queue} -> wl_region#1151.add(-20, -49, 19, 48) -[2618612.175] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618612.180] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618612.187] {Default Queue} -> wl_region#1151.subtract(0, 0, 19, 48) -[2618612.192] {Default Queue} -> wl_region#1151.add(-20, -49, 19, 48) -[2618612.196] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618612.200] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618612.205] {Default Queue} -> wl_region#1151.subtract(0, 0, 19, 48) -[2618612.209] {Default Queue} -> wl_region#1151.add(-20, -49, 19, 48) -[2618612.213] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618612.217] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618612.222] {Default Queue} -> wl_region#1151.subtract(0, 0, 19, 48) -[2618612.226] {Default Queue} -> wl_region#1151.add(-20, -49, 19, 48) -[2618612.230] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618612.234] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618612.239] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) -[2618612.243] {Default Queue} -> wl_surface#1127.commit() -[2618612.247] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) -[2618612.251] {Default Queue} -> wl_surface#1127.commit() -[2618612.274] {Default Queue} wl_pointer#24.motion(187310246, 9.39843750, 71.19921875) -[2618612.279] {Default Queue} wl_pointer#81.motion(187310246, 9.39843750, 71.19921875) -[2618612.284] {Default Queue} wl_pointer#105.motion(187310246, 9.39843750, 71.19921875) -[2618612.289] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618612.293] {Default Queue} wl_pointer#137.motion(187310246, 9.39843750, 71.19921875) -[2618612.297] {Default Queue} wl_pointer#169.motion(187310246, 9.39843750, 71.19921875) -[2618612.301] {Default Queue} wl_pointer#201.motion(187310246, 9.39843750, 71.19921875) -[2618612.306] {Default Queue} wl_pointer#233.motion(187310246, 9.39843750, 71.19921875) -[2618612.310] {Default Queue} wl_pointer#265.motion(187310246, 9.39843750, 71.19921875) -[2618612.314] {Default Queue} wl_pointer#297.motion(187310246, 9.39843750, 71.19921875) -[2618612.319] {Default Queue} wl_pointer#329.motion(187310246, 9.39843750, 71.19921875) -[2618612.323] {Default Queue} wl_pointer#361.motion(187310246, 9.39843750, 71.19921875) -[2618612.327] {Default Queue} wl_pointer#393.motion(187310246, 9.39843750, 71.19921875) -[2618612.331] {Default Queue} wl_pointer#425.motion(187310246, 9.39843750, 71.19921875) -[2618612.336] {Default Queue} wl_pointer#457.motion(187310246, 9.39843750, 71.19921875) -[2618612.340] {Default Queue} wl_pointer#489.motion(187310246, 9.39843750, 71.19921875) -[2618612.344] {Default Queue} wl_pointer#521.motion(187310246, 9.39843750, 71.19921875) -[2618612.349] {Default Queue} wl_pointer#553.motion(187310246, 9.39843750, 71.19921875) -[2618612.353] {Default Queue} wl_pointer#585.motion(187310246, 9.39843750, 71.19921875) -[2618612.357] {Default Queue} wl_pointer#617.motion(187310246, 9.39843750, 71.19921875) -[2618612.361] {Default Queue} wl_pointer#649.motion(187310246, 9.39843750, 71.19921875) -[2618612.369] {Default Queue} wl_pointer#681.motion(187310246, 9.39843750, 71.19921875) -[2618612.375] {Default Queue} wl_pointer#713.motion(187310246, 9.39843750, 71.19921875) -[2618612.379] {Default Queue} wl_pointer#745.motion(187310246, 9.39843750, 71.19921875) -[2618612.383] {Default Queue} wl_pointer#777.motion(187310246, 9.39843750, 71.19921875) -[2618612.387] {Default Queue} wl_pointer#809.motion(187310246, 9.39843750, 71.19921875) -[2618612.392] {Default Queue} wl_pointer#841.motion(187310246, 9.39843750, 71.19921875) -[2618612.396] {Default Queue} wl_pointer#873.motion(187310246, 9.39843750, 71.19921875) -[2618612.400] {Default Queue} wl_pointer#905.motion(187310246, 9.39843750, 71.19921875) -[2618612.404] {Default Queue} wl_pointer#937.motion(187310246, 9.39843750, 71.19921875) -[2618612.409] {Default Queue} wl_pointer#969.motion(187310246, 9.39843750, 71.19921875) -[2618612.413] {Default Queue} wl_pointer#1001.motion(187310246, 9.39843750, 71.19921875) -[2618612.417] {Default Queue} wl_pointer#1033.motion(187310246, 9.39843750, 71.19921875) -[2618612.421] {Default Queue} wl_pointer#1065.motion(187310246, 9.39843750, 71.19921875) -[2618612.426] {Default Queue} wl_pointer#1097.motion(187310246, 9.39843750, 71.19921875) -[2618612.430] {Default Queue} wl_pointer#1129.motion(187310246, 9.39843750, 71.19921875) -[2618612.434] {Default Queue} wl_pointer#1161.motion(187310246, 9.39843750, 71.19921875) -[2618612.438] {Default Queue} wl_pointer#1193.motion(187310246, 9.39843750, 71.19921875) -[2618612.443] {Default Queue} wl_pointer#1225.motion(187310246, 9.39843750, 71.19921875) -[2618612.447] {Default Queue} wl_pointer#1257.motion(187310246, 9.39843750, 71.19921875) -[2618612.451] {Default Queue} wl_pointer#1289.motion(187310246, 9.39843750, 71.19921875) -[2618612.455] {Default Queue} wl_pointer#1321.motion(187310246, 9.39843750, 71.19921875) -[2618612.460] {Default Queue} wl_pointer#1353.motion(187310246, 9.39843750, 71.19921875) -[2618612.464] {Default Queue} wl_pointer#1385.motion(187310246, 9.39843750, 71.19921875) -[2618612.470] {Default Queue} wl_pointer#1417.motion(187310246, 9.39843750, 71.19921875) -[2618612.476] {Default Queue} wl_pointer#1449.motion(187310246, 9.39843750, 71.19921875) -[2618612.482] {Default Queue} wl_pointer#1481.motion(187310246, 9.39843750, 71.19921875) -[2618612.487] {Default Queue} wl_pointer#1513.motion(187310246, 9.39843750, 71.19921875) -[2618612.493] {Default Queue} wl_pointer#1545.motion(187310246, 9.39843750, 71.19921875) -[2618612.499] {Default Queue} wl_pointer#1577.motion(187310246, 9.39843750, 71.19921875) -[2618612.505] {Default Queue} wl_pointer#1609.motion(187310246, 9.39843750, 71.19921875) -[2618612.511] {Default Queue} wl_pointer#1641.motion(187310246, 9.39843750, 71.19921875) -[2618612.517] {Default Queue} wl_pointer#1673.motion(187310246, 9.39843750, 71.19921875) -[2618612.523] {Default Queue} wl_pointer#1705.motion(187310246, 9.39843750, 71.19921875) -[2618612.528] {Default Queue} wl_pointer#1737.motion(187310246, 9.39843750, 71.19921875) -[2618612.534] {Default Queue} wl_pointer#1762.motion(187310246, 9.39843750, 71.19921875) -[2618612.540] {Default Queue} wl_pointer#1801.motion(187310246, 9.39843750, 71.19921875) -[2618612.544] {Default Queue} wl_pointer#1833.motion(187310246, 9.39843750, 71.19921875) -[2618612.548] {Default Queue} wl_pointer#1865.motion(187310246, 9.39843750, 71.19921875) -[2618612.553] {Default Queue} wl_pointer#1897.motion(187310246, 9.39843750, 71.19921875) -[2618612.557] {Default Queue} wl_pointer#1929.motion(187310246, 9.39843750, 71.19921875) -[2618612.561] {Default Queue} wl_pointer#1961.motion(187310246, 9.39843750, 71.19921875) -[2618612.565] {Default Queue} wl_pointer#1993.motion(187310246, 9.39843750, 71.19921875) -[2618612.570] {Default Queue} wl_pointer#2025.motion(187310246, 9.39843750, 71.19921875) -[2618612.574] {Default Queue} wl_pointer#2057.motion(187310246, 9.39843750, 71.19921875) -[2618612.578] {Default Queue} wl_pointer#2089.motion(187310246, 9.39843750, 71.19921875) -[2618612.583] {Default Queue} wl_pointer#2121.motion(187310246, 9.39843750, 71.19921875) -[2618612.590] {Default Queue} wl_pointer#2153.motion(187310246, 9.39843750, 71.19921875) -[2618612.596] {Default Queue} wl_pointer#2185.motion(187310246, 9.39843750, 71.19921875) -[2618612.600] {Default Queue} wl_pointer#2217.motion(187310246, 9.39843750, 71.19921875) -[2618612.605] {Default Queue} wl_pointer#2249.motion(187310246, 9.39843750, 71.19921875) -[2618612.609] {Default Queue} wl_pointer#2281.motion(187310246, 9.39843750, 71.19921875) -[2618612.613] {Default Queue} wl_pointer#2313.motion(187310246, 9.39843750, 71.19921875) -[2618612.618] {Default Queue} wl_pointer#2345.motion(187310246, 9.39843750, 71.19921875) -[2618612.622] {Default Queue} wl_pointer#2377.motion(187310246, 9.39843750, 71.19921875) -[2618612.627] {Default Queue} wl_pointer#2409.motion(187310246, 9.39843750, 71.19921875) -[2618612.631] {Default Queue} wl_pointer#2441.motion(187310246, 9.39843750, 71.19921875) -[2618612.635] {Default Queue} wl_pointer#2473.motion(187310246, 9.39843750, 71.19921875) -[2618612.639] {Default Queue} wl_pointer#2498.motion(187310246, 9.39843750, 71.19921875) -[2618612.651] {Default Queue} -> wl_buffer#3483.destroy() -[2618612.656] {Default Queue} -> wl_buffer#3516.destroy() -[2618612.660] {Default Queue} -> wl_shm_pool#3515.destroy() -[2618612.664] {Default Queue} -> wl_shm_pool#3486.destroy() -[2618612.669] {Default Queue} -> wl_surface#3485.destroy() -[2618612.707] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3484, fd 581, 640) -[2618612.713] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 582, 640) -[2618612.717] {Default Queue} -> wl_shm_pool#3484.create_buffer(new id wl_buffer#3292, 0, 10, 16, 40, 0) -[2618612.722] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) -[2618612.729] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3294) -[2618612.733] {Default Queue} -> wl_surface#3294.attach(wl_buffer#3292, 0, 0) -[2618612.738] {Default Queue} -> wl_surface#3294.commit() -[2618612.743] {Default Queue} -> wl_surface#3294.attach(wl_buffer#3292, 0, 0) -[2618612.747] {Default Queue} -> wl_surface#3294.commit() -[2618612.751] {Default Queue} wl_pointer#2537.motion(187310246, 9.39843750, 71.19921875) -[2618612.756] {Default Queue} wl_pointer#2569.motion(187310246, 9.39843750, 71.19921875) -[2618612.760] {Default Queue} wl_pointer#2601.motion(187310246, 9.39843750, 71.19921875) -[2618612.765] {Default Queue} wl_pointer#2633.motion(187310246, 9.39843750, 71.19921875) -[2618612.769] {Default Queue} wl_pointer#2665.motion(187310246, 9.39843750, 71.19921875) -[2618612.773] {Default Queue} wl_pointer#2697.motion(187310246, 9.39843750, 71.19921875) -[2618612.778] {Default Queue} wl_pointer#2729.motion(187310246, 9.39843750, 71.19921875) -[2618612.782] {Default Queue} wl_pointer#2761.motion(187310246, 9.39843750, 71.19921875) -[2618612.786] {Default Queue} wl_pointer#2793.motion(187310246, 9.39843750, 71.19921875) -[2618612.790] {Default Queue} wl_pointer#2825.motion(187310246, 9.39843750, 71.19921875) -[2618612.795] {Default Queue} wl_pointer#2857.motion(187310246, 9.39843750, 71.19921875) -[2618612.799] {Default Queue} wl_pointer#2889.motion(187310246, 9.39843750, 71.19921875) -[2618612.804] {Default Queue} wl_pointer#2921.motion(187310246, 9.39843750, 71.19921875) -[2618612.808] {Default Queue} wl_pointer#2953.motion(187310246, 9.39843750, 71.19921875) -[2618612.812] {Default Queue} wl_pointer#2985.motion(187310246, 9.39843750, 71.19921875) -[2618612.817] {Default Queue} wl_pointer#3017.motion(187310246, 9.39843750, 71.19921875) -[2618612.821] {Default Queue} wl_pointer#3049.motion(187310246, 9.39843750, 71.19921875) -[2618612.825] {Default Queue} wl_pointer#3081.motion(187310246, 9.39843750, 71.19921875) -[2618612.829] {Default Queue} wl_pointer#3113.motion(187310246, 9.39843750, 71.19921875) -[2618612.834] {Default Queue} wl_pointer#3145.motion(187310246, 9.39843750, 71.19921875) -[2618612.838] {Default Queue} wl_pointer#3177.motion(187310246, 9.39843750, 71.19921875) -[2618612.842] {Default Queue} wl_pointer#3209.motion(187310246, 9.39843750, 71.19921875) -[2618612.851] {Default Queue} wl_pointer#3241.motion(187310246, 9.39843750, 71.19921875) -[2618612.857] {Default Queue} wl_pointer#3273.motion(187310246, 9.39843750, 71.19921875) -[2618612.866] {Default Queue} wl_pointer#3305.motion(187310246, 9.39843750, 71.19921875) -[2618612.871] {Default Queue} wl_pointer#3337.motion(187310246, 9.39843750, 71.19921875) -[2618612.875] {Default Queue} wl_pointer#3369.motion(187310246, 9.39843750, 71.19921875) -[2618612.879] {Default Queue} wl_pointer#3401.motion(187310246, 9.39843750, 71.19921875) -[2618612.884] {Default Queue} wl_pointer#3433.motion(187310246, 9.39843750, 71.19921875) -[2618612.888] {Default Queue} wl_pointer#3465.motion(187310246, 9.39843750, 71.19921875) -[2618612.892] {Default Queue} wl_pointer#3497.motion(187310246, 9.39843750, 71.19921875) -[2618612.897] {Default Queue} wl_pointer#3529.motion(187310246, 9.39843750, 71.19921875) -[2618612.901] {Default Queue} wl_pointer#3561.motion(187310246, 9.39843750, 71.19921875) -[2618612.905] {Default Queue} wl_pointer#3593.motion(187310246, 9.39843750, 71.19921875) -[2618612.910] {Default Queue} wl_pointer#3625.motion(187310246, 9.39843750, 71.19921875) -[2618612.914] {Default Queue} wl_pointer#3657.motion(187310246, 9.39843750, 71.19921875) -[2618612.918] {Default Queue} wl_pointer#3695.motion(187310246, 9.39843750, 71.19921875) -[2618612.922] {Default Queue} wl_pointer#24.motion(187310246, 10.60156250, 70.00000000) -[2618612.927] {Default Queue} wl_pointer#81.motion(187310246, 10.60156250, 70.00000000) -[2618612.932] {Default Queue} wl_pointer#105.motion(187310246, 10.60156250, 70.00000000) -[2618612.936] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618612.941] {Default Queue} wl_pointer#137.motion(187310246, 10.60156250, 70.00000000) -[2618612.945] {Default Queue} wl_pointer#169.motion(187310246, 10.60156250, 70.00000000) -[2618612.949] {Default Queue} wl_pointer#201.motion(187310246, 10.60156250, 70.00000000) -[2618612.954] {Default Queue} wl_pointer#233.motion(187310246, 10.60156250, 70.00000000) -[2618612.958] {Default Queue} wl_pointer#265.motion(187310246, 10.60156250, 70.00000000) -[2618612.962] {Default Queue} wl_pointer#297.motion(187310246, 10.60156250, 70.00000000) -[2618612.967] {Default Queue} wl_pointer#329.motion(187310246, 10.60156250, 70.00000000) -[2618612.971] {Default Queue} wl_pointer#361.motion(187310246, 10.60156250, 70.00000000) -[2618612.975] {Default Queue} wl_pointer#393.motion(187310246, 10.60156250, 70.00000000) -[2618612.979] {Default Queue} wl_pointer#425.motion(187310246, 10.60156250, 70.00000000) -[2618612.984] {Default Queue} wl_pointer#457.motion(187310246, 10.60156250, 70.00000000) -[2618612.988] {Default Queue} wl_pointer#489.motion(187310246, 10.60156250, 70.00000000) -[2618612.992] {Default Queue} wl_pointer#521.motion(187310246, 10.60156250, 70.00000000) -[2618612.997] {Default Queue} wl_pointer#553.motion(187310246, 10.60156250, 70.00000000) -[2618613.001] {Default Queue} wl_pointer#585.motion(187310246, 10.60156250, 70.00000000) -[2618613.005] {Default Queue} wl_pointer#617.motion(187310246, 10.60156250, 70.00000000) -[2618613.010] {Default Queue} wl_pointer#649.motion(187310246, 10.60156250, 70.00000000) -[2618613.014] {Default Queue} wl_pointer#681.motion(187310246, 10.60156250, 70.00000000) -[2618613.018] {Default Queue} wl_pointer#713.motion(187310246, 10.60156250, 70.00000000) -[2618613.023] {Default Queue} wl_pointer#745.motion(187310246, 10.60156250, 70.00000000) -[2618613.027] {Default Queue} wl_pointer#777.motion(187310246, 10.60156250, 70.00000000) -[2618613.031] {Default Queue} wl_pointer#809.motion(187310246, 10.60156250, 70.00000000) -[2618613.036] {Default Queue} wl_pointer#841.motion(187310246, 10.60156250, 70.00000000) -[2618613.040] {Default Queue} wl_pointer#873.motion(187310246, 10.60156250, 70.00000000) -[2618613.044] {Default Queue} wl_pointer#905.motion(187310246, 10.60156250, 70.00000000) -[2618613.048] {Default Queue} wl_pointer#937.motion(187310246, 10.60156250, 70.00000000) -[2618613.053] {Default Queue} wl_pointer#969.motion(187310246, 10.60156250, 70.00000000) -[2618613.062] {Default Queue} wl_pointer#1001.motion(187310246, 10.60156250, 70.00000000) -[2618613.068] {Default Queue} wl_pointer#1033.motion(187310246, 10.60156250, 70.00000000) -[2618613.072] {Default Queue} wl_pointer#1065.motion(187310246, 10.60156250, 70.00000000) -[2618613.076] {Default Queue} wl_pointer#1097.motion(187310246, 10.60156250, 70.00000000) -[2618613.081] {Default Queue} wl_pointer#1129.motion(187310246, 10.60156250, 70.00000000) -[2618613.085] {Default Queue} wl_pointer#1161.motion(187310246, 10.60156250, 70.00000000) -[2618613.089] {Default Queue} wl_pointer#1193.motion(187310246, 10.60156250, 70.00000000) -[2618613.094] {Default Queue} wl_pointer#1225.motion(187310246, 10.60156250, 70.00000000) -[2618613.098] {Default Queue} wl_pointer#1257.motion(187310246, 10.60156250, 70.00000000) -[2618613.102] {Default Queue} wl_pointer#1289.motion(187310246, 10.60156250, 70.00000000) -[2618613.107] {Default Queue} wl_pointer#1321.motion(187310246, 10.60156250, 70.00000000) -[2618613.111] {Default Queue} wl_pointer#1353.motion(187310246, 10.60156250, 70.00000000) -[2618613.115] {Default Queue} wl_pointer#1385.motion(187310246, 10.60156250, 70.00000000) -[2618613.119] {Default Queue} wl_pointer#1417.motion(187310246, 10.60156250, 70.00000000) -[2618613.124] {Default Queue} wl_pointer#1449.motion(187310246, 10.60156250, 70.00000000) -[2618613.128] {Default Queue} wl_pointer#1481.motion(187310246, 10.60156250, 70.00000000) -[2618613.132] {Default Queue} wl_pointer#1513.motion(187310246, 10.60156250, 70.00000000) -[2618613.137] {Default Queue} wl_pointer#1545.motion(187310246, 10.60156250, 70.00000000) -[2618613.141] {Default Queue} wl_pointer#1577.motion(187310246, 10.60156250, 70.00000000) -[2618613.145] {Default Queue} wl_pointer#1609.motion(187310246, 10.60156250, 70.00000000) -[2618613.150] {Default Queue} wl_pointer#1641.motion(187310246, 10.60156250, 70.00000000) -[2618613.154] {Default Queue} wl_pointer#1673.motion(187310246, 10.60156250, 70.00000000) -[2618613.158] {Default Queue} wl_pointer#1705.motion(187310246, 10.60156250, 70.00000000) -[2618613.162] {Default Queue} wl_pointer#1737.motion(187310246, 10.60156250, 70.00000000) -[2618613.167] {Default Queue} wl_pointer#1762.motion(187310246, 10.60156250, 70.00000000) -[2618613.171] {Default Queue} wl_pointer#1801.motion(187310246, 10.60156250, 70.00000000) -[2618613.175] {Default Queue} wl_pointer#1833.motion(187310246, 10.60156250, 70.00000000) -[2618613.180] {Default Queue} wl_pointer#1865.motion(187310246, 10.60156250, 70.00000000) -[2618613.184] {Default Queue} wl_pointer#1897.motion(187310246, 10.60156250, 70.00000000) -[2618613.188] {Default Queue} wl_pointer#1929.motion(187310246, 10.60156250, 70.00000000) -[2618613.192] {Default Queue} wl_pointer#1961.motion(187310246, 10.60156250, 70.00000000) -[2618613.197] {Default Queue} wl_pointer#1993.motion(187310246, 10.60156250, 70.00000000) -[2618613.201] {Default Queue} wl_pointer#2025.motion(187310246, 10.60156250, 70.00000000) -[2618613.205] {Default Queue} wl_pointer#2057.motion(187310246, 10.60156250, 70.00000000) -[2618613.210] {Default Queue} wl_pointer#2089.motion(187310246, 10.60156250, 70.00000000) -[2618613.214] {Default Queue} wl_pointer#2121.motion(187310246, 10.60156250, 70.00000000) -[2618613.218] {Default Queue} wl_pointer#2153.motion(187310246, 10.60156250, 70.00000000) -[2618613.222] {Default Queue} wl_pointer#2185.motion(187310246, 10.60156250, 70.00000000) -[2618613.227] {Default Queue} wl_pointer#2217.motion(187310246, 10.60156250, 70.00000000) -[2618613.231] {Default Queue} wl_pointer#2249.motion(187310246, 10.60156250, 70.00000000) -[2618613.235] {Default Queue} wl_pointer#2281.motion(187310246, 10.60156250, 70.00000000) -[2618613.240] {Default Queue} wl_pointer#2313.motion(187310246, 10.60156250, 70.00000000) -[2618613.244] {Default Queue} wl_pointer#2345.motion(187310246, 10.60156250, 70.00000000) -[2618613.249] {Default Queue} wl_pointer#2377.motion(187310246, 10.60156250, 70.00000000) -[2618613.253] {Default Queue} wl_pointer#2409.motion(187310246, 10.60156250, 70.00000000) -[2618613.260] {Default Queue} wl_pointer#2441.motion(187310246, 10.60156250, 70.00000000) -[2618613.266] {Default Queue} wl_pointer#2473.motion(187310246, 10.60156250, 70.00000000) -[2618613.270] {Default Queue} wl_pointer#2498.motion(187310246, 10.60156250, 70.00000000) -[2618613.280] {Default Queue} -> wl_buffer#3292.destroy() -[2618613.284] {Default Queue} -> wl_buffer#3293.destroy() -[2618613.288] {Default Queue} -> wl_shm_pool#3484.destroy() -[2618613.292] {Default Queue} -> wl_shm_pool#3291.destroy() -[2618613.297] {Default Queue} -> wl_surface#3294.destroy() -[2618613.329] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3677, fd 583, 640) -[2618613.334] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3676, fd 584, 640) -[2618613.339] {Default Queue} -> wl_shm_pool#3677.create_buffer(new id wl_buffer#3674, 0, 10, 16, 40, 0) -[2618613.343] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 10, 16, 40, 0) -[2618613.350] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3675) -[2618613.354] {Default Queue} -> wl_surface#3675.attach(wl_buffer#3674, 0, 0) -[2618613.358] {Default Queue} -> wl_surface#3675.commit() -[2618613.364] {Default Queue} -> wl_surface#3675.attach(wl_buffer#3674, 0, 0) -[2618613.368] {Default Queue} -> wl_surface#3675.commit() -[2618613.372] {Default Queue} wl_pointer#2537.motion(187310246, 10.60156250, 70.00000000) -[2618613.376] {Default Queue} wl_pointer#2569.motion(187310246, 10.60156250, 70.00000000) -[2618613.381] {Default Queue} wl_pointer#2601.motion(187310246, 10.60156250, 70.00000000) -[2618613.385] {Default Queue} wl_pointer#2633.motion(187310246, 10.60156250, 70.00000000) -[2618613.389] {Default Queue} wl_pointer#2665.motion(187310246, 10.60156250, 70.00000000) -[2618613.393] {Default Queue} wl_pointer#2697.motion(187310246, 10.60156250, 70.00000000) -[2618613.398] {Default Queue} wl_pointer#2729.motion(187310246, 10.60156250, 70.00000000) -[2618613.402] {Default Queue} wl_pointer#2761.motion(187310246, 10.60156250, 70.00000000) -[2618613.406] {Default Queue} wl_pointer#2793.motion(187310246, 10.60156250, 70.00000000) -[2618613.410] {Default Queue} wl_pointer#2825.motion(187310246, 10.60156250, 70.00000000) -[2618613.415] {Default Queue} wl_pointer#2857.motion(187310246, 10.60156250, 70.00000000) -[2618613.420] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) -[2618613.424] {Default Queue} -> wl_surface#1127.commit() -[2618614.490] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) -[2618614.496] {Default Queue} -> wl_surface#1127.commit() -[2618614.502] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) -[2618614.506] {Default Queue} -> wl_surface#1127.commit() -[2618614.512] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) -[2618614.517] {Default Queue} -> wl_surface#1159.commit() -[2618615.578] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) -[2618615.583] {Default Queue} -> wl_surface#1159.commit() -[2618615.592] {Default Queue} -> wl_region#1183.subtract(0, 0, 19, 48) -[2618615.596] {Default Queue} -> wl_region#1183.add(-20, -49, 19, 48) -[2618615.600] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618615.604] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618615.613] {Default Queue} -> wl_region#1183.subtract(0, 0, 19, 48) -[2618615.617] {Default Queue} -> wl_region#1183.add(-20, -49, 19, 48) -[2618615.622] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618615.625] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618615.630] {Default Queue} -> wl_region#1183.subtract(0, 0, 19, 48) -[2618615.635] {Default Queue} -> wl_region#1183.add(-20, -49, 19, 48) -[2618615.639] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618615.643] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618615.648] {Default Queue} -> wl_region#1183.subtract(0, 0, 19, 48) -[2618615.652] {Default Queue} -> wl_region#1183.add(-20, -49, 19, 48) -[2618615.660] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618615.666] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618615.670] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) -[2618615.675] {Default Queue} -> wl_surface#1159.commit() -[2618615.679] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) -[2618615.683] {Default Queue} -> wl_surface#1159.commit() -[2618615.688] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) -[2618615.692] {Default Queue} -> wl_surface#1159.commit() -[2618615.698] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) -[2618615.702] {Default Queue} -> wl_surface#1191.commit() -[2618616.352] {Display Queue} wl_display#1.delete_id(3452) -[2618616.359] {Display Queue} wl_display#1.delete_id(3451) -[2618616.365] {Display Queue} wl_display#1.delete_id(3518) -[2618616.370] {Display Queue} wl_display#1.delete_id(3517) -[2618616.375] {Display Queue} wl_display#1.delete_id(3454) -[2618616.379] {Display Queue} wl_display#1.delete_id(3683) -[2618616.383] {Display Queue} wl_display#1.delete_id(94) -[2618616.387] {Display Queue} wl_display#1.delete_id(93) -[2618616.391] {Display Queue} wl_display#1.delete_id(92) -[2618616.395] {Display Queue} wl_display#1.delete_id(91) -[2618616.399] {Default Queue} wl_pointer#2889.motion(187310246, 10.60156250, 70.00000000) -[2618616.403] {Default Queue} wl_pointer#2921.motion(187310246, 10.60156250, 70.00000000) -[2618616.408] {Default Queue} wl_pointer#2953.motion(187310246, 10.60156250, 70.00000000) -[2618616.412] {Default Queue} wl_pointer#2985.motion(187310246, 10.60156250, 70.00000000) -[2618616.416] {Default Queue} wl_pointer#3017.motion(187310246, 10.60156250, 70.00000000) -[2618616.420] {Default Queue} wl_pointer#3049.motion(187310246, 10.60156250, 70.00000000) -[2618616.425] {Default Queue} wl_pointer#3081.motion(187310246, 10.60156250, 70.00000000) -[2618616.429] {Default Queue} wl_pointer#3113.motion(187310246, 10.60156250, 70.00000000) -[2618616.433] {Default Queue} wl_pointer#3145.motion(187310246, 10.60156250, 70.00000000) -[2618616.438] {Default Queue} wl_pointer#3177.motion(187310246, 10.60156250, 70.00000000) -[2618616.442] {Default Queue} wl_pointer#3209.motion(187310246, 10.60156250, 70.00000000) -[2618616.446] {Default Queue} wl_pointer#3241.motion(187310246, 10.60156250, 70.00000000) -[2618616.451] {Default Queue} wl_pointer#3273.motion(187310246, 10.60156250, 70.00000000) -[2618616.455] {Default Queue} wl_pointer#3305.motion(187310246, 10.60156250, 70.00000000) -[2618616.459] {Default Queue} wl_pointer#3337.motion(187310246, 10.60156250, 70.00000000) -[2618616.464] {Default Queue} wl_pointer#3369.motion(187310246, 10.60156250, 70.00000000) -[2618616.468] {Default Queue} wl_pointer#3401.motion(187310246, 10.60156250, 70.00000000) -[2618616.472] {Default Queue} wl_pointer#3433.motion(187310246, 10.60156250, 70.00000000) -[2618616.477] {Default Queue} wl_pointer#3465.motion(187310246, 10.60156250, 70.00000000) -[2618616.481] {Default Queue} wl_pointer#3497.motion(187310246, 10.60156250, 70.00000000) -[2618616.486] {Default Queue} wl_pointer#3529.motion(187310246, 10.60156250, 70.00000000) -[2618616.490] {Default Queue} wl_pointer#3561.motion(187310246, 10.60156250, 70.00000000) -[2618616.494] {Default Queue} wl_pointer#3593.motion(187310246, 10.60156250, 70.00000000) -[2618616.498] {Default Queue} wl_pointer#3625.motion(187310246, 10.60156250, 70.00000000) -[2618616.503] {Default Queue} wl_pointer#3657.motion(187310246, 10.60156250, 70.00000000) -[2618616.507] {Default Queue} wl_pointer#3695.motion(187310246, 10.60156250, 70.00000000) -[2618616.514] {Default Queue} -> wl_region#1215.subtract(0, 0, 19, 48) -[2618616.519] {Default Queue} -> wl_region#1215.add(-20, -49, 19, 48) -[2618616.523] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618616.527] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618616.534] {Default Queue} -> wl_region#1215.subtract(0, 0, 19, 48) -[2618616.539] {Default Queue} -> wl_region#1215.add(-20, -49, 19, 48) -[2618616.546] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618616.552] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618616.557] {Default Queue} -> wl_region#1215.subtract(0, 0, 19, 48) -[2618616.561] {Default Queue} -> wl_region#1215.add(-20, -49, 19, 48) -[2618616.565] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618616.569] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618616.573] {Default Queue} -> wl_region#1215.subtract(0, 0, 19, 48) -[2618616.578] {Default Queue} -> wl_region#1215.add(-20, -49, 19, 48) -[2618616.582] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618616.586] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618616.590] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) -[2618616.594] {Default Queue} -> wl_surface#1191.commit() -[2618616.598] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) -[2618616.602] {Default Queue} -> wl_surface#1191.commit() -[2618616.626] {Default Queue} wl_pointer#24.motion(187310251, 11.80078125, 68.39843750) -[2618616.631] {Default Queue} wl_pointer#81.motion(187310251, 11.80078125, 68.39843750) -[2618616.636] {Default Queue} wl_pointer#105.motion(187310251, 11.80078125, 68.39843750) -[2618616.640] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618616.645] {Default Queue} wl_pointer#137.motion(187310251, 11.80078125, 68.39843750) -[2618616.649] {Default Queue} wl_pointer#169.motion(187310251, 11.80078125, 68.39843750) -[2618616.653] {Default Queue} wl_pointer#201.motion(187310251, 11.80078125, 68.39843750) -[2618616.658] {Default Queue} wl_pointer#233.motion(187310251, 11.80078125, 68.39843750) -[2618616.662] {Default Queue} wl_pointer#265.motion(187310251, 11.80078125, 68.39843750) -[2618616.666] {Default Queue} wl_pointer#297.motion(187310251, 11.80078125, 68.39843750) -[2618616.671] {Default Queue} wl_pointer#329.motion(187310251, 11.80078125, 68.39843750) -[2618616.675] {Default Queue} wl_pointer#361.motion(187310251, 11.80078125, 68.39843750) -[2618616.679] {Default Queue} wl_pointer#393.motion(187310251, 11.80078125, 68.39843750) -[2618616.683] {Default Queue} wl_pointer#425.motion(187310251, 11.80078125, 68.39843750) -[2618616.688] {Default Queue} wl_pointer#457.motion(187310251, 11.80078125, 68.39843750) -[2618616.692] {Default Queue} wl_pointer#489.motion(187310251, 11.80078125, 68.39843750) -[2618616.696] {Default Queue} wl_pointer#521.motion(187310251, 11.80078125, 68.39843750) -[2618616.701] {Default Queue} wl_pointer#553.motion(187310251, 11.80078125, 68.39843750) -[2618616.705] {Default Queue} wl_pointer#585.motion(187310251, 11.80078125, 68.39843750) -[2618616.709] {Default Queue} wl_pointer#617.motion(187310251, 11.80078125, 68.39843750) -[2618616.713] {Default Queue} wl_pointer#649.motion(187310251, 11.80078125, 68.39843750) -[2618616.718] {Default Queue} wl_pointer#681.motion(187310251, 11.80078125, 68.39843750) -[2618616.722] {Default Queue} wl_pointer#713.motion(187310251, 11.80078125, 68.39843750) -[2618616.727] {Default Queue} wl_pointer#745.motion(187310251, 11.80078125, 68.39843750) -[2618616.731] {Default Queue} wl_pointer#777.motion(187310251, 11.80078125, 68.39843750) -[2618616.735] {Default Queue} wl_pointer#809.motion(187310251, 11.80078125, 68.39843750) -[2618616.739] {Default Queue} wl_pointer#841.motion(187310251, 11.80078125, 68.39843750) -[2618616.744] {Default Queue} wl_pointer#873.motion(187310251, 11.80078125, 68.39843750) -[2618616.748] {Default Queue} wl_pointer#905.motion(187310251, 11.80078125, 68.39843750) -[2618616.752] {Default Queue} wl_pointer#937.motion(187310251, 11.80078125, 68.39843750) -[2618616.756] {Default Queue} wl_pointer#969.motion(187310251, 11.80078125, 68.39843750) -[2618616.761] {Default Queue} wl_pointer#1001.motion(187310251, 11.80078125, 68.39843750) -[2618616.765] {Default Queue} wl_pointer#1033.motion(187310251, 11.80078125, 68.39843750) -[2618616.769] {Default Queue} wl_pointer#1065.motion(187310251, 11.80078125, 68.39843750) -[2618616.777] {Default Queue} wl_pointer#1097.motion(187310251, 11.80078125, 68.39843750) -[2618616.782] {Default Queue} wl_pointer#1129.motion(187310251, 11.80078125, 68.39843750) -[2618616.787] {Default Queue} wl_pointer#1161.motion(187310251, 11.80078125, 68.39843750) -[2618616.791] {Default Queue} wl_pointer#1193.motion(187310251, 11.80078125, 68.39843750) -[2618616.795] {Default Queue} wl_pointer#1225.motion(187310251, 11.80078125, 68.39843750) -[2618616.799] {Default Queue} wl_pointer#1257.motion(187310251, 11.80078125, 68.39843750) -[2618616.804] {Default Queue} wl_pointer#1289.motion(187310251, 11.80078125, 68.39843750) -[2618616.808] {Default Queue} wl_pointer#1321.motion(187310251, 11.80078125, 68.39843750) -[2618616.812] {Default Queue} wl_pointer#1353.motion(187310251, 11.80078125, 68.39843750) -[2618616.816] {Default Queue} wl_pointer#1385.motion(187310251, 11.80078125, 68.39843750) -[2618616.821] {Default Queue} wl_pointer#1417.motion(187310251, 11.80078125, 68.39843750) -[2618616.825] {Default Queue} wl_pointer#1449.motion(187310251, 11.80078125, 68.39843750) -[2618616.829] {Default Queue} wl_pointer#1481.motion(187310251, 11.80078125, 68.39843750) -[2618616.833] {Default Queue} wl_pointer#1513.motion(187310251, 11.80078125, 68.39843750) -[2618616.838] {Default Queue} wl_pointer#1545.motion(187310251, 11.80078125, 68.39843750) -[2618616.842] {Default Queue} wl_pointer#1577.motion(187310251, 11.80078125, 68.39843750) -[2618616.846] {Default Queue} wl_pointer#1609.motion(187310251, 11.80078125, 68.39843750) -[2618616.851] {Default Queue} wl_pointer#1641.motion(187310251, 11.80078125, 68.39843750) -[2618616.855] {Default Queue} wl_pointer#1673.motion(187310251, 11.80078125, 68.39843750) -[2618616.859] {Default Queue} wl_pointer#1705.motion(187310251, 11.80078125, 68.39843750) -[2618616.868] {Default Queue} wl_pointer#1737.motion(187310251, 11.80078125, 68.39843750) -[2618616.872] {Default Queue} wl_pointer#1762.motion(187310251, 11.80078125, 68.39843750) -[2618616.876] {Default Queue} wl_pointer#1801.motion(187310251, 11.80078125, 68.39843750) -[2618616.881] {Default Queue} wl_pointer#1833.motion(187310251, 11.80078125, 68.39843750) -[2618616.885] {Default Queue} wl_pointer#1865.motion(187310251, 11.80078125, 68.39843750) -[2618616.889] {Default Queue} wl_pointer#1897.motion(187310251, 11.80078125, 68.39843750) -[2618616.893] {Default Queue} wl_pointer#1929.motion(187310251, 11.80078125, 68.39843750) -[2618616.898] {Default Queue} wl_pointer#1961.motion(187310251, 11.80078125, 68.39843750) -[2618616.902] {Default Queue} wl_pointer#1993.motion(187310251, 11.80078125, 68.39843750) -[2618616.906] {Default Queue} wl_pointer#2025.motion(187310251, 11.80078125, 68.39843750) -[2618616.911] {Default Queue} wl_pointer#2057.motion(187310251, 11.80078125, 68.39843750) -[2618616.915] {Default Queue} wl_pointer#2089.motion(187310251, 11.80078125, 68.39843750) -[2618616.919] {Default Queue} wl_pointer#2121.motion(187310251, 11.80078125, 68.39843750) -[2618616.923] {Default Queue} wl_pointer#2153.motion(187310251, 11.80078125, 68.39843750) -[2618616.928] {Default Queue} wl_pointer#2185.motion(187310251, 11.80078125, 68.39843750) -[2618616.932] {Default Queue} wl_pointer#2217.motion(187310251, 11.80078125, 68.39843750) -[2618616.936] {Default Queue} wl_pointer#2249.motion(187310251, 11.80078125, 68.39843750) -[2618616.941] {Default Queue} wl_pointer#2281.motion(187310251, 11.80078125, 68.39843750) -[2618616.945] {Default Queue} wl_pointer#2313.motion(187310251, 11.80078125, 68.39843750) -[2618616.949] {Default Queue} wl_pointer#2345.motion(187310251, 11.80078125, 68.39843750) -[2618616.954] {Default Queue} wl_pointer#2377.motion(187310251, 11.80078125, 68.39843750) -[2618616.958] {Default Queue} wl_pointer#2409.motion(187310251, 11.80078125, 68.39843750) -[2618616.962] {Default Queue} wl_pointer#2441.motion(187310251, 11.80078125, 68.39843750) -[2618616.967] {Default Queue} wl_pointer#2473.motion(187310251, 11.80078125, 68.39843750) -[2618616.971] {Default Queue} wl_pointer#2498.motion(187310251, 11.80078125, 68.39843750) -[2618616.983] {Default Queue} -> wl_buffer#3674.destroy() -[2618616.995] {Default Queue} -> wl_buffer#3678.destroy() -[2618617.001] {Default Queue} -> wl_shm_pool#3677.destroy() -[2618617.005] {Default Queue} -> wl_shm_pool#3676.destroy() -[2618617.011] {Default Queue} -> wl_surface#3675.destroy() -[2618617.051] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#91, fd 575, 640) -[2618617.058] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 578, 640) -[2618617.063] {Default Queue} -> wl_shm_pool#91.create_buffer(new id wl_buffer#93, 0, 10, 16, 40, 0) -[2618617.068] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) -[2618617.075] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3683) -[2618617.079] {Default Queue} -> wl_surface#3683.attach(wl_buffer#93, 0, 0) -[2618617.083] {Default Queue} -> wl_surface#3683.commit() -[2618617.089] {Default Queue} -> wl_surface#3683.attach(wl_buffer#93, 0, 0) -[2618617.093] {Default Queue} -> wl_surface#3683.commit() -[2618617.097] {Default Queue} wl_pointer#2537.motion(187310251, 11.80078125, 68.39843750) -[2618617.102] {Default Queue} wl_pointer#2569.motion(187310251, 11.80078125, 68.39843750) -[2618617.106] {Default Queue} wl_pointer#2601.motion(187310251, 11.80078125, 68.39843750) -[2618617.111] {Default Queue} wl_pointer#2633.motion(187310251, 11.80078125, 68.39843750) -[2618617.115] {Default Queue} wl_pointer#2665.motion(187310251, 11.80078125, 68.39843750) -[2618617.119] {Default Queue} wl_pointer#2697.motion(187310251, 11.80078125, 68.39843750) -[2618617.124] {Default Queue} wl_pointer#2729.motion(187310251, 11.80078125, 68.39843750) -[2618617.128] {Default Queue} wl_pointer#2761.motion(187310251, 11.80078125, 68.39843750) -[2618617.132] {Default Queue} wl_pointer#2793.motion(187310251, 11.80078125, 68.39843750) -[2618617.137] {Default Queue} wl_pointer#2825.motion(187310251, 11.80078125, 68.39843750) -[2618617.141] {Default Queue} wl_pointer#2857.motion(187310251, 11.80078125, 68.39843750) -[2618617.145] {Default Queue} wl_pointer#2889.motion(187310251, 11.80078125, 68.39843750) -[2618617.150] {Default Queue} wl_pointer#2921.motion(187310251, 11.80078125, 68.39843750) -[2618617.154] {Default Queue} wl_pointer#2953.motion(187310251, 11.80078125, 68.39843750) -[2618617.158] {Default Queue} wl_pointer#2985.motion(187310251, 11.80078125, 68.39843750) -[2618617.163] {Default Queue} wl_pointer#3017.motion(187310251, 11.80078125, 68.39843750) -[2618617.167] {Default Queue} wl_pointer#3049.motion(187310251, 11.80078125, 68.39843750) -[2618617.171] {Default Queue} wl_pointer#3081.motion(187310251, 11.80078125, 68.39843750) -[2618617.175] {Default Queue} wl_pointer#3113.motion(187310251, 11.80078125, 68.39843750) -[2618617.180] {Default Queue} wl_pointer#3145.motion(187310251, 11.80078125, 68.39843750) -[2618617.184] {Default Queue} wl_pointer#3177.motion(187310251, 11.80078125, 68.39843750) -[2618617.188] {Default Queue} wl_pointer#3209.motion(187310251, 11.80078125, 68.39843750) -[2618617.193] {Default Queue} wl_pointer#3241.motion(187310251, 11.80078125, 68.39843750) -[2618617.197] {Default Queue} wl_pointer#3273.motion(187310251, 11.80078125, 68.39843750) -[2618617.201] {Default Queue} wl_pointer#3305.motion(187310251, 11.80078125, 68.39843750) -[2618617.205] {Default Queue} wl_pointer#3337.motion(187310251, 11.80078125, 68.39843750) -[2618617.210] {Default Queue} wl_pointer#3369.motion(187310251, 11.80078125, 68.39843750) -[2618617.214] {Default Queue} wl_pointer#3401.motion(187310251, 11.80078125, 68.39843750) -[2618617.218] {Default Queue} wl_pointer#3433.motion(187310251, 11.80078125, 68.39843750) -[2618617.223] {Default Queue} wl_pointer#3465.motion(187310251, 11.80078125, 68.39843750) -[2618617.227] {Default Queue} wl_pointer#3497.motion(187310251, 11.80078125, 68.39843750) -[2618617.231] {Default Queue} wl_pointer#3529.motion(187310251, 11.80078125, 68.39843750) -[2618617.236] {Default Queue} wl_pointer#3561.motion(187310251, 11.80078125, 68.39843750) -[2618617.240] {Default Queue} wl_pointer#3593.motion(187310251, 11.80078125, 68.39843750) -[2618617.244] {Default Queue} wl_pointer#3625.motion(187310251, 11.80078125, 68.39843750) -[2618617.252] {Default Queue} wl_pointer#3657.motion(187310251, 11.80078125, 68.39843750) -[2618617.258] {Default Queue} wl_pointer#3695.motion(187310251, 11.80078125, 68.39843750) -[2618617.262] {Default Queue} wl_pointer#24.motion(187310251, 12.60156250, 67.19921875) -[2618617.266] {Default Queue} wl_pointer#81.motion(187310251, 12.60156250, 67.19921875) -[2618617.271] {Default Queue} wl_pointer#105.motion(187310251, 12.60156250, 67.19921875) -[2618617.276] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618617.280] {Default Queue} wl_pointer#137.motion(187310251, 12.60156250, 67.19921875) -[2618617.285] {Default Queue} wl_pointer#169.motion(187310251, 12.60156250, 67.19921875) -[2618617.289] {Default Queue} wl_pointer#201.motion(187310251, 12.60156250, 67.19921875) -[2618617.293] {Default Queue} wl_pointer#233.motion(187310251, 12.60156250, 67.19921875) -[2618617.297] {Default Queue} wl_pointer#265.motion(187310251, 12.60156250, 67.19921875) -[2618617.302] {Default Queue} wl_pointer#297.motion(187310251, 12.60156250, 67.19921875) -[2618617.306] {Default Queue} wl_pointer#329.motion(187310251, 12.60156250, 67.19921875) -[2618617.310] {Default Queue} wl_pointer#361.motion(187310251, 12.60156250, 67.19921875) -[2618617.314] {Default Queue} wl_pointer#393.motion(187310251, 12.60156250, 67.19921875) -[2618617.319] {Default Queue} wl_pointer#425.motion(187310251, 12.60156250, 67.19921875) -[2618617.323] {Default Queue} wl_pointer#457.motion(187310251, 12.60156250, 67.19921875) -[2618617.327] {Default Queue} wl_pointer#489.motion(187310251, 12.60156250, 67.19921875) -[2618617.332] {Default Queue} wl_pointer#521.motion(187310251, 12.60156250, 67.19921875) -[2618617.336] {Default Queue} wl_pointer#553.motion(187310251, 12.60156250, 67.19921875) -[2618617.340] {Default Queue} wl_pointer#585.motion(187310251, 12.60156250, 67.19921875) -[2618617.344] {Default Queue} wl_pointer#617.motion(187310251, 12.60156250, 67.19921875) -[2618617.349] {Default Queue} wl_pointer#649.motion(187310251, 12.60156250, 67.19921875) -[2618617.353] {Default Queue} wl_pointer#681.motion(187310251, 12.60156250, 67.19921875) -[2618617.357] {Default Queue} wl_pointer#713.motion(187310251, 12.60156250, 67.19921875) -[2618617.361] {Default Queue} wl_pointer#745.motion(187310251, 12.60156250, 67.19921875) -[2618617.366] {Default Queue} wl_pointer#777.motion(187310251, 12.60156250, 67.19921875) -[2618617.370] {Default Queue} wl_pointer#809.motion(187310251, 12.60156250, 67.19921875) -[2618617.374] {Default Queue} wl_pointer#841.motion(187310251, 12.60156250, 67.19921875) -[2618617.379] {Default Queue} wl_pointer#873.motion(187310251, 12.60156250, 67.19921875) -[2618617.383] {Default Queue} wl_pointer#905.motion(187310251, 12.60156250, 67.19921875) -[2618617.387] {Default Queue} wl_pointer#937.motion(187310251, 12.60156250, 67.19921875) -[2618617.391] {Default Queue} wl_pointer#969.motion(187310251, 12.60156250, 67.19921875) -[2618617.396] {Default Queue} wl_pointer#1001.motion(187310251, 12.60156250, 67.19921875) -[2618617.400] {Default Queue} wl_pointer#1033.motion(187310251, 12.60156250, 67.19921875) -[2618617.404] {Default Queue} wl_pointer#1065.motion(187310251, 12.60156250, 67.19921875) -[2618617.408] {Default Queue} wl_pointer#1097.motion(187310251, 12.60156250, 67.19921875) -[2618617.413] {Default Queue} wl_pointer#1129.motion(187310251, 12.60156250, 67.19921875) -[2618617.417] {Default Queue} wl_pointer#1161.motion(187310251, 12.60156250, 67.19921875) -[2618617.421] {Default Queue} wl_pointer#1193.motion(187310251, 12.60156250, 67.19921875) -[2618617.426] {Default Queue} wl_pointer#1225.motion(187310251, 12.60156250, 67.19921875) -[2618617.430] {Default Queue} wl_pointer#1257.motion(187310251, 12.60156250, 67.19921875) -[2618617.434] {Default Queue} wl_pointer#1289.motion(187310251, 12.60156250, 67.19921875) -[2618617.438] {Default Queue} wl_pointer#1321.motion(187310251, 12.60156250, 67.19921875) -[2618617.443] {Default Queue} wl_pointer#1353.motion(187310251, 12.60156250, 67.19921875) -[2618617.447] {Default Queue} wl_pointer#1385.motion(187310251, 12.60156250, 67.19921875) -[2618617.454] {Default Queue} wl_pointer#1417.motion(187310251, 12.60156250, 67.19921875) -[2618617.459] {Default Queue} wl_pointer#1449.motion(187310251, 12.60156250, 67.19921875) -[2618617.464] {Default Queue} wl_pointer#1481.motion(187310251, 12.60156250, 67.19921875) -[2618617.468] {Default Queue} wl_pointer#1513.motion(187310251, 12.60156250, 67.19921875) -[2618617.472] {Default Queue} wl_pointer#1545.motion(187310251, 12.60156250, 67.19921875) -[2618617.478] {Default Queue} wl_pointer#1577.motion(187310251, 12.60156250, 67.19921875) -[2618617.484] {Default Queue} wl_pointer#1609.motion(187310251, 12.60156250, 67.19921875) -[2618617.490] {Default Queue} wl_pointer#1641.motion(187310251, 12.60156250, 67.19921875) -[2618617.496] {Default Queue} wl_pointer#1673.motion(187310251, 12.60156250, 67.19921875) -[2618617.502] {Default Queue} wl_pointer#1705.motion(187310251, 12.60156250, 67.19921875) -[2618617.507] {Default Queue} wl_pointer#1737.motion(187310251, 12.60156250, 67.19921875) -[2618617.513] {Default Queue} wl_pointer#1762.motion(187310251, 12.60156250, 67.19921875) -[2618617.519] {Default Queue} wl_pointer#1801.motion(187310251, 12.60156250, 67.19921875) -[2618617.524] {Default Queue} wl_pointer#1833.motion(187310251, 12.60156250, 67.19921875) -[2618617.530] {Default Queue} wl_pointer#1865.motion(187310251, 12.60156250, 67.19921875) -[2618617.559] {Default Queue} wl_pointer#1897.motion(187310251, 12.60156250, 67.19921875) -[2618617.567] {Default Queue} wl_pointer#1929.motion(187310251, 12.60156250, 67.19921875) -[2618617.572] {Default Queue} wl_pointer#1961.motion(187310251, 12.60156250, 67.19921875) -[2618617.577] {Default Queue} wl_pointer#1993.motion(187310251, 12.60156250, 67.19921875) -[2618617.581] {Default Queue} wl_pointer#2025.motion(187310251, 12.60156250, 67.19921875) -[2618617.586] {Default Queue} wl_pointer#2057.motion(187310251, 12.60156250, 67.19921875) -[2618617.593] {Default Queue} wl_pointer#2089.motion(187310251, 12.60156250, 67.19921875) -[2618617.599] {Default Queue} wl_pointer#2121.motion(187310251, 12.60156250, 67.19921875) -[2618617.611] {Default Queue} wl_pointer#2153.motion(187310251, 12.60156250, 67.19921875) -[2618617.618] {Default Queue} wl_pointer#2185.motion(187310251, 12.60156250, 67.19921875) -[2618617.624] {Default Queue} wl_pointer#2217.motion(187310251, 12.60156250, 67.19921875) -[2618617.631] {Default Queue} wl_pointer#2249.motion(187310251, 12.60156250, 67.19921875) -[2618617.638] {Default Queue} wl_pointer#2281.motion(187310251, 12.60156250, 67.19921875) -[2618617.644] {Default Queue} wl_pointer#2313.motion(187310251, 12.60156250, 67.19921875) -[2618617.651] {Default Queue} wl_pointer#2345.motion(187310251, 12.60156250, 67.19921875) -[2618617.657] {Default Queue} wl_pointer#2377.motion(187310251, 12.60156250, 67.19921875) -[2618617.661] {Default Queue} wl_pointer#2409.motion(187310251, 12.60156250, 67.19921875) -[2618617.666] {Default Queue} wl_pointer#2441.motion(187310251, 12.60156250, 67.19921875) -[2618617.670] {Default Queue} wl_pointer#2473.motion(187310251, 12.60156250, 67.19921875) -[2618617.674] {Default Queue} wl_pointer#2498.motion(187310251, 12.60156250, 67.19921875) -[2618617.688] {Default Queue} -> wl_buffer#93.destroy() -[2618617.693] {Default Queue} -> wl_buffer#94.destroy() -[2618617.698] {Default Queue} -> wl_shm_pool#91.destroy() -[2618617.702] {Default Queue} -> wl_shm_pool#92.destroy() -[2618617.707] {Default Queue} -> wl_surface#3683.destroy() -[2618617.752] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3454, fd 581, 640) -[2618617.759] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3517, fd 582, 640) -[2618617.764] {Default Queue} -> wl_shm_pool#3454.create_buffer(new id wl_buffer#3518, 0, 10, 16, 40, 0) -[2618617.768] {Default Queue} -> wl_shm_pool#3517.create_buffer(new id wl_buffer#3451, 0, 10, 16, 40, 0) -[2618617.776] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3452) -[2618617.781] {Default Queue} -> wl_surface#3452.attach(wl_buffer#3518, 0, 0) -[2618617.789] {Default Queue} -> wl_surface#3452.commit() -[2618617.798] {Default Queue} -> wl_surface#3452.attach(wl_buffer#3518, 0, 0) -[2618617.802] {Default Queue} -> wl_surface#3452.commit() -[2618617.807] {Default Queue} wl_pointer#2537.motion(187310251, 12.60156250, 67.19921875) -[2618617.811] {Default Queue} wl_pointer#2569.motion(187310251, 12.60156250, 67.19921875) -[2618617.816] {Default Queue} wl_pointer#2601.motion(187310251, 12.60156250, 67.19921875) -[2618617.820] {Default Queue} wl_pointer#2633.motion(187310251, 12.60156250, 67.19921875) -[2618617.825] {Default Queue} wl_pointer#2665.motion(187310251, 12.60156250, 67.19921875) -[2618617.829] {Default Queue} wl_pointer#2697.motion(187310251, 12.60156250, 67.19921875) -[2618617.834] {Default Queue} wl_pointer#2729.motion(187310251, 12.60156250, 67.19921875) -[2618617.838] {Default Queue} wl_pointer#2761.motion(187310251, 12.60156250, 67.19921875) -[2618617.842] {Default Queue} wl_pointer#2793.motion(187310251, 12.60156250, 67.19921875) -[2618617.846] {Default Queue} wl_pointer#2825.motion(187310251, 12.60156250, 67.19921875) -[2618617.851] {Default Queue} wl_pointer#2857.motion(187310251, 12.60156250, 67.19921875) -[2618617.856] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) -[2618617.861] {Default Queue} -> wl_surface#1191.commit() -[2618618.935] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) -[2618618.940] {Default Queue} -> wl_surface#1191.commit() -[2618618.947] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) -[2618618.951] {Default Queue} -> wl_surface#1191.commit() -[2618618.957] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) -[2618618.961] {Default Queue} -> wl_surface#1223.commit() -[2618620.023] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) -[2618620.030] {Default Queue} -> wl_surface#1223.commit() -[2618620.040] {Default Queue} -> wl_region#1247.subtract(0, 0, 19, 48) -[2618620.045] {Default Queue} -> wl_region#1247.add(-20, -49, 19, 48) -[2618620.050] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618620.054] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618620.063] {Default Queue} -> wl_region#1247.subtract(0, 0, 19, 48) -[2618620.068] {Default Queue} -> wl_region#1247.add(-20, -49, 19, 48) -[2618620.072] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618620.076] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618620.081] {Default Queue} -> wl_region#1247.subtract(0, 0, 19, 48) -[2618620.085] {Default Queue} -> wl_region#1247.add(-20, -49, 19, 48) -[2618620.089] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618620.093] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618620.098] {Default Queue} -> wl_region#1247.subtract(0, 0, 19, 48) -[2618620.102] {Default Queue} -> wl_region#1247.add(-20, -49, 19, 48) -[2618620.107] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618620.111] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618620.115] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) -[2618620.119] {Default Queue} -> wl_surface#1223.commit() -[2618620.123] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) -[2618620.128] {Default Queue} -> wl_surface#1223.commit() -[2618620.133] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) -[2618620.138] {Default Queue} -> wl_surface#1223.commit() -[2618620.143] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) -[2618620.148] {Default Queue} -> wl_surface#1063.commit() -[2618621.154] {Display Queue} wl_display#1.delete_id(3671) -[2618621.160] {Display Queue} wl_display#1.delete_id(3681) -[2618621.164] {Display Queue} wl_display#1.delete_id(3684) -[2618621.168] {Display Queue} wl_display#1.delete_id(3679) -[2618621.172] {Display Queue} wl_display#1.delete_id(3682) -[2618621.176] {Display Queue} wl_display#1.delete_id(3483) -[2618621.180] {Display Queue} wl_display#1.delete_id(3516) -[2618621.184] {Display Queue} wl_display#1.delete_id(3515) -[2618621.195] {Display Queue} wl_display#1.delete_id(3486) -[2618621.202] {Display Queue} wl_display#1.delete_id(3485) -[2618621.206] {Display Queue} wl_display#1.delete_id(3292) -[2618621.210] {Display Queue} wl_display#1.delete_id(3293) -[2618621.214] {Display Queue} wl_display#1.delete_id(3484) -[2618621.218] {Display Queue} wl_display#1.delete_id(3291) -[2618621.222] {Display Queue} wl_display#1.delete_id(3294) -[2618621.226] {Default Queue} wl_pointer#2889.motion(187310251, 12.60156250, 67.19921875) -[2618621.230] {Default Queue} wl_pointer#2921.motion(187310251, 12.60156250, 67.19921875) -[2618621.235] {Default Queue} wl_pointer#2953.motion(187310251, 12.60156250, 67.19921875) -[2618621.239] {Default Queue} wl_pointer#2985.motion(187310251, 12.60156250, 67.19921875) -[2618621.243] {Default Queue} wl_pointer#3017.motion(187310251, 12.60156250, 67.19921875) -[2618621.248] {Default Queue} wl_pointer#3049.motion(187310251, 12.60156250, 67.19921875) -[2618621.252] {Default Queue} wl_pointer#3081.motion(187310251, 12.60156250, 67.19921875) -[2618621.256] {Default Queue} wl_pointer#3113.motion(187310251, 12.60156250, 67.19921875) -[2618621.261] {Default Queue} wl_pointer#3145.motion(187310251, 12.60156250, 67.19921875) -[2618621.265] {Default Queue} wl_pointer#3177.motion(187310251, 12.60156250, 67.19921875) -[2618621.269] {Default Queue} wl_pointer#3209.motion(187310251, 12.60156250, 67.19921875) -[2618621.274] {Default Queue} wl_pointer#3241.motion(187310251, 12.60156250, 67.19921875) -[2618621.278] {Default Queue} wl_pointer#3273.motion(187310251, 12.60156250, 67.19921875) -[2618621.283] {Default Queue} wl_pointer#3305.motion(187310251, 12.60156250, 67.19921875) -[2618621.287] {Default Queue} wl_pointer#3337.motion(187310251, 12.60156250, 67.19921875) -[2618621.291] {Default Queue} wl_pointer#3369.motion(187310251, 12.60156250, 67.19921875) -[2618621.295] {Default Queue} wl_pointer#3401.motion(187310251, 12.60156250, 67.19921875) -[2618621.300] {Default Queue} wl_pointer#3433.motion(187310251, 12.60156250, 67.19921875) -[2618621.304] {Default Queue} wl_pointer#3465.motion(187310251, 12.60156250, 67.19921875) -[2618621.309] {Default Queue} wl_pointer#3497.motion(187310251, 12.60156250, 67.19921875) -[2618621.313] {Default Queue} wl_pointer#3529.motion(187310251, 12.60156250, 67.19921875) -[2618621.317] {Default Queue} wl_pointer#3561.motion(187310251, 12.60156250, 67.19921875) -[2618621.321] {Default Queue} wl_pointer#3593.motion(187310251, 12.60156250, 67.19921875) -[2618621.326] {Default Queue} wl_pointer#3625.motion(187310251, 12.60156250, 67.19921875) -[2618621.330] {Default Queue} wl_pointer#3657.motion(187310251, 12.60156250, 67.19921875) -[2618621.334] {Default Queue} wl_pointer#3695.motion(187310251, 12.60156250, 67.19921875) -[2618621.342] {Default Queue} -> wl_region#1087.subtract(0, 0, 19, 48) -[2618621.346] {Default Queue} -> wl_region#1087.add(-20, -49, 19, 48) -[2618621.351] {Default Queue} -> wl_surface#1063.set_opaque_region(wl_region#1088) -[2618621.355] {Default Queue} -> wl_surface#1063.set_input_region(wl_region#1087) -[2618621.360] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) -[2618621.364] {Default Queue} -> wl_surface#1063.commit() -[2618621.368] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) -[2618621.372] {Default Queue} -> wl_surface#1063.commit() -[2618621.396] {Default Queue} wl_pointer#24.motion(187310256, 13.80078125, 66.00000000) -[2618621.401] {Default Queue} wl_pointer#81.motion(187310256, 13.80078125, 66.00000000) -[2618621.407] {Default Queue} wl_pointer#105.motion(187310256, 13.80078125, 66.00000000) -[2618621.411] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618621.416] {Default Queue} wl_pointer#137.motion(187310256, 13.80078125, 66.00000000) -[2618621.420] {Default Queue} wl_pointer#169.motion(187310256, 13.80078125, 66.00000000) -[2618621.425] {Default Queue} wl_pointer#201.motion(187310256, 13.80078125, 66.00000000) -[2618621.429] {Default Queue} wl_pointer#233.motion(187310256, 13.80078125, 66.00000000) -[2618621.436] {Default Queue} wl_pointer#265.motion(187310256, 13.80078125, 66.00000000) -[2618621.442] {Default Queue} wl_pointer#297.motion(187310256, 13.80078125, 66.00000000) -[2618621.446] {Default Queue} wl_pointer#329.motion(187310256, 13.80078125, 66.00000000) -[2618621.451] {Default Queue} wl_pointer#361.motion(187310256, 13.80078125, 66.00000000) -[2618621.455] {Default Queue} wl_pointer#393.motion(187310256, 13.80078125, 66.00000000) -[2618621.459] {Default Queue} wl_pointer#425.motion(187310256, 13.80078125, 66.00000000) -[2618621.464] {Default Queue} wl_pointer#457.motion(187310256, 13.80078125, 66.00000000) -[2618621.468] {Default Queue} wl_pointer#489.motion(187310256, 13.80078125, 66.00000000) -[2618621.472] {Default Queue} wl_pointer#521.motion(187310256, 13.80078125, 66.00000000) -[2618621.476] {Default Queue} wl_pointer#553.motion(187310256, 13.80078125, 66.00000000) -[2618621.481] {Default Queue} wl_pointer#585.motion(187310256, 13.80078125, 66.00000000) -[2618621.485] {Default Queue} wl_pointer#617.motion(187310256, 13.80078125, 66.00000000) -[2618621.489] {Default Queue} wl_pointer#649.motion(187310256, 13.80078125, 66.00000000) -[2618621.493] {Default Queue} wl_pointer#681.motion(187310256, 13.80078125, 66.00000000) -[2618621.498] {Default Queue} wl_pointer#713.motion(187310256, 13.80078125, 66.00000000) -[2618621.502] {Default Queue} wl_pointer#745.motion(187310256, 13.80078125, 66.00000000) -[2618621.506] {Default Queue} wl_pointer#777.motion(187310256, 13.80078125, 66.00000000) -[2618621.510] {Default Queue} wl_pointer#809.motion(187310256, 13.80078125, 66.00000000) -[2618621.515] {Default Queue} wl_pointer#841.motion(187310256, 13.80078125, 66.00000000) -[2618621.519] {Default Queue} wl_pointer#873.motion(187310256, 13.80078125, 66.00000000) -[2618621.523] {Default Queue} wl_pointer#905.motion(187310256, 13.80078125, 66.00000000) -[2618621.527] {Default Queue} wl_pointer#937.motion(187310256, 13.80078125, 66.00000000) -[2618621.532] {Default Queue} wl_pointer#969.motion(187310256, 13.80078125, 66.00000000) -[2618621.536] {Default Queue} wl_pointer#1001.motion(187310256, 13.80078125, 66.00000000) -[2618621.540] {Default Queue} wl_pointer#1033.motion(187310256, 13.80078125, 66.00000000) -[2618621.544] {Default Queue} wl_pointer#1065.motion(187310256, 13.80078125, 66.00000000) -[2618621.549] {Default Queue} wl_pointer#1097.motion(187310256, 13.80078125, 66.00000000) -[2618621.553] {Default Queue} wl_pointer#1129.motion(187310256, 13.80078125, 66.00000000) -[2618621.557] {Default Queue} wl_pointer#1161.motion(187310256, 13.80078125, 66.00000000) -[2618621.561] {Default Queue} wl_pointer#1193.motion(187310256, 13.80078125, 66.00000000) -[2618621.566] {Default Queue} wl_pointer#1225.motion(187310256, 13.80078125, 66.00000000) -[2618621.570] {Default Queue} wl_pointer#1257.motion(187310256, 13.80078125, 66.00000000) -[2618621.574] {Default Queue} wl_pointer#1289.motion(187310256, 13.80078125, 66.00000000) -[2618621.578] {Default Queue} wl_pointer#1321.motion(187310256, 13.80078125, 66.00000000) -[2618621.583] {Default Queue} wl_pointer#1353.motion(187310256, 13.80078125, 66.00000000) -[2618621.587] {Default Queue} wl_pointer#1385.motion(187310256, 13.80078125, 66.00000000) -[2618621.591] {Default Queue} wl_pointer#1417.motion(187310256, 13.80078125, 66.00000000) -[2618621.596] {Default Queue} wl_pointer#1449.motion(187310256, 13.80078125, 66.00000000) -[2618621.600] {Default Queue} wl_pointer#1481.motion(187310256, 13.80078125, 66.00000000) -[2618621.604] {Default Queue} wl_pointer#1513.motion(187310256, 13.80078125, 66.00000000) -[2618621.608] {Default Queue} wl_pointer#1545.motion(187310256, 13.80078125, 66.00000000) -[2618621.613] {Default Queue} wl_pointer#1577.motion(187310256, 13.80078125, 66.00000000) -[2618621.617] {Default Queue} wl_pointer#1609.motion(187310256, 13.80078125, 66.00000000) -[2618621.621] {Default Queue} wl_pointer#1641.motion(187310256, 13.80078125, 66.00000000) -[2618621.626] {Default Queue} wl_pointer#1673.motion(187310256, 13.80078125, 66.00000000) -[2618621.630] {Default Queue} wl_pointer#1705.motion(187310256, 13.80078125, 66.00000000) -[2618621.638] {Default Queue} wl_pointer#1737.motion(187310256, 13.80078125, 66.00000000) -[2618621.643] {Default Queue} wl_pointer#1762.motion(187310256, 13.80078125, 66.00000000) -[2618621.648] {Default Queue} wl_pointer#1801.motion(187310256, 13.80078125, 66.00000000) -[2618621.654] {Default Queue} wl_pointer#1833.motion(187310256, 13.80078125, 66.00000000) -[2618621.661] {Default Queue} wl_pointer#1865.motion(187310256, 13.80078125, 66.00000000) -[2618621.667] {Default Queue} wl_pointer#1897.motion(187310256, 13.80078125, 66.00000000) -[2618621.674] {Default Queue} wl_pointer#1929.motion(187310256, 13.80078125, 66.00000000) -[2618621.681] {Default Queue} wl_pointer#1961.motion(187310256, 13.80078125, 66.00000000) -[2618621.688] {Default Queue} wl_pointer#1993.motion(187310256, 13.80078125, 66.00000000) -[2618621.694] {Default Queue} wl_pointer#2025.motion(187310256, 13.80078125, 66.00000000) -[2618621.701] {Default Queue} wl_pointer#2057.motion(187310256, 13.80078125, 66.00000000) -[2618621.706] {Default Queue} wl_pointer#2089.motion(187310256, 13.80078125, 66.00000000) -[2618621.711] {Default Queue} wl_pointer#2121.motion(187310256, 13.80078125, 66.00000000) -[2618621.716] {Default Queue} wl_pointer#2153.motion(187310256, 13.80078125, 66.00000000) -[2618621.720] {Default Queue} wl_pointer#2185.motion(187310256, 13.80078125, 66.00000000) -[2618621.724] {Default Queue} wl_pointer#2217.motion(187310256, 13.80078125, 66.00000000) -[2618621.728] {Default Queue} wl_pointer#2249.motion(187310256, 13.80078125, 66.00000000) -[2618621.733] {Default Queue} wl_pointer#2281.motion(187310256, 13.80078125, 66.00000000) -[2618621.737] {Default Queue} wl_pointer#2313.motion(187310256, 13.80078125, 66.00000000) -[2618621.742] {Default Queue} wl_pointer#2345.motion(187310256, 13.80078125, 66.00000000) -[2618621.746] {Default Queue} wl_pointer#2377.motion(187310256, 13.80078125, 66.00000000) -[2618621.750] {Default Queue} wl_pointer#2409.motion(187310256, 13.80078125, 66.00000000) -[2618621.755] {Default Queue} wl_pointer#2441.motion(187310256, 13.80078125, 66.00000000) -[2618621.759] {Default Queue} wl_pointer#2473.motion(187310256, 13.80078125, 66.00000000) -[2618621.763] {Default Queue} wl_pointer#2498.motion(187310256, 13.80078125, 66.00000000) -[2618621.775] {Default Queue} -> wl_buffer#3518.destroy() -[2618621.780] {Default Queue} -> wl_buffer#3451.destroy() -[2618621.784] {Default Queue} -> wl_shm_pool#3454.destroy() -[2618621.788] {Default Queue} -> wl_shm_pool#3517.destroy() -[2618621.793] {Default Queue} -> wl_surface#3452.destroy() -[2618621.838] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3294, fd 575, 640) -[2618621.845] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 578, 640) -[2618621.850] {Default Queue} -> wl_shm_pool#3294.create_buffer(new id wl_buffer#3484, 0, 10, 16, 40, 0) -[2618621.855] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) -[2618621.863] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3292) -[2618621.867] {Default Queue} -> wl_surface#3292.attach(wl_buffer#3484, 0, 0) -[2618621.880] {Default Queue} -> wl_surface#3292.commit() -[2618621.886] {Default Queue} -> wl_surface#3292.attach(wl_buffer#3484, 0, 0) -[2618621.890] {Default Queue} -> wl_surface#3292.commit() -[2618621.894] {Default Queue} wl_pointer#2537.motion(187310256, 13.80078125, 66.00000000) -[2618621.899] {Default Queue} wl_pointer#2569.motion(187310256, 13.80078125, 66.00000000) -[2618621.904] {Default Queue} wl_pointer#2601.motion(187310256, 13.80078125, 66.00000000) -[2618621.908] {Default Queue} wl_pointer#2633.motion(187310256, 13.80078125, 66.00000000) -[2618621.912] {Default Queue} wl_pointer#2665.motion(187310256, 13.80078125, 66.00000000) -[2618621.917] {Default Queue} wl_pointer#2697.motion(187310256, 13.80078125, 66.00000000) -[2618621.921] {Default Queue} wl_pointer#2729.motion(187310256, 13.80078125, 66.00000000) -[2618621.925] {Default Queue} wl_pointer#2761.motion(187310256, 13.80078125, 66.00000000) -[2618621.930] {Default Queue} wl_pointer#2793.motion(187310256, 13.80078125, 66.00000000) -[2618621.937] {Default Queue} wl_pointer#2825.motion(187310256, 13.80078125, 66.00000000) -[2618621.944] {Default Queue} wl_pointer#2857.motion(187310256, 13.80078125, 66.00000000) -[2618621.949] {Default Queue} wl_pointer#2889.motion(187310256, 13.80078125, 66.00000000) -[2618621.953] {Default Queue} wl_pointer#2921.motion(187310256, 13.80078125, 66.00000000) -[2618621.957] {Default Queue} wl_pointer#2953.motion(187310256, 13.80078125, 66.00000000) -[2618621.962] {Default Queue} wl_pointer#2985.motion(187310256, 13.80078125, 66.00000000) -[2618621.966] {Default Queue} wl_pointer#3017.motion(187310256, 13.80078125, 66.00000000) -[2618621.970] {Default Queue} wl_pointer#3049.motion(187310256, 13.80078125, 66.00000000) -[2618621.974] {Default Queue} wl_pointer#3081.motion(187310256, 13.80078125, 66.00000000) -[2618621.979] {Default Queue} wl_pointer#3113.motion(187310256, 13.80078125, 66.00000000) -[2618621.983] {Default Queue} wl_pointer#3145.motion(187310256, 13.80078125, 66.00000000) -[2618621.987] {Default Queue} wl_pointer#3177.motion(187310256, 13.80078125, 66.00000000) -[2618621.991] {Default Queue} wl_pointer#3209.motion(187310256, 13.80078125, 66.00000000) -[2618621.996] {Default Queue} wl_pointer#3241.motion(187310256, 13.80078125, 66.00000000) -[2618622.000] {Default Queue} wl_pointer#3273.motion(187310256, 13.80078125, 66.00000000) -[2618622.005] {Default Queue} wl_pointer#3305.motion(187310256, 13.80078125, 66.00000000) -[2618622.009] {Default Queue} wl_pointer#3337.motion(187310256, 13.80078125, 66.00000000) -[2618622.013] {Default Queue} wl_pointer#3369.motion(187310256, 13.80078125, 66.00000000) -[2618622.017] {Default Queue} wl_pointer#3401.motion(187310256, 13.80078125, 66.00000000) -[2618622.022] {Default Queue} wl_pointer#3433.motion(187310256, 13.80078125, 66.00000000) -[2618622.026] {Default Queue} wl_pointer#3465.motion(187310256, 13.80078125, 66.00000000) -[2618622.031] {Default Queue} wl_pointer#3497.motion(187310256, 13.80078125, 66.00000000) -[2618622.035] {Default Queue} wl_pointer#3529.motion(187310256, 13.80078125, 66.00000000) -[2618622.039] {Default Queue} wl_pointer#3561.motion(187310256, 13.80078125, 66.00000000) -[2618622.044] {Default Queue} wl_pointer#3593.motion(187310256, 13.80078125, 66.00000000) -[2618622.048] {Default Queue} wl_pointer#3625.motion(187310256, 13.80078125, 66.00000000) -[2618622.052] {Default Queue} wl_pointer#3657.motion(187310256, 13.80078125, 66.00000000) -[2618622.057] {Default Queue} wl_pointer#3695.motion(187310256, 13.80078125, 66.00000000) -[2618622.061] {Default Queue} wl_pointer#24.motion(187310256, 14.60156250, 64.80078125) -[2618622.065] {Default Queue} wl_pointer#81.motion(187310256, 14.60156250, 64.80078125) -[2618622.070] {Default Queue} wl_pointer#105.motion(187310256, 14.60156250, 64.80078125) -[2618622.075] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618622.079] {Default Queue} wl_pointer#137.motion(187310256, 14.60156250, 64.80078125) -[2618622.084] {Default Queue} wl_pointer#169.motion(187310256, 14.60156250, 64.80078125) -[2618622.088] {Default Queue} wl_pointer#201.motion(187310256, 14.60156250, 64.80078125) -[2618622.092] {Default Queue} wl_pointer#233.motion(187310256, 14.60156250, 64.80078125) -[2618622.096] {Default Queue} wl_pointer#265.motion(187310256, 14.60156250, 64.80078125) -[2618622.101] {Default Queue} wl_pointer#297.motion(187310256, 14.60156250, 64.80078125) -[2618622.105] {Default Queue} wl_pointer#329.motion(187310256, 14.60156250, 64.80078125) -[2618622.109] {Default Queue} wl_pointer#361.motion(187310256, 14.60156250, 64.80078125) -[2618622.113] {Default Queue} wl_pointer#393.motion(187310256, 14.60156250, 64.80078125) -[2618622.118] {Default Queue} wl_pointer#425.motion(187310256, 14.60156250, 64.80078125) -[2618622.122] {Default Queue} wl_pointer#457.motion(187310256, 14.60156250, 64.80078125) -[2618622.126] {Default Queue} wl_pointer#489.motion(187310256, 14.60156250, 64.80078125) -[2618622.130] {Default Queue} wl_pointer#521.motion(187310256, 14.60156250, 64.80078125) -[2618622.134] {Default Queue} wl_pointer#553.motion(187310256, 14.60156250, 64.80078125) -[2618622.144] {Default Queue} wl_pointer#585.motion(187310256, 14.60156250, 64.80078125) -[2618622.150] {Default Queue} wl_pointer#617.motion(187310256, 14.60156250, 64.80078125) -[2618622.154] {Default Queue} wl_pointer#649.motion(187310256, 14.60156250, 64.80078125) -[2618622.158] {Default Queue} wl_pointer#681.motion(187310256, 14.60156250, 64.80078125) -[2618622.162] {Default Queue} wl_pointer#713.motion(187310256, 14.60156250, 64.80078125) -[2618622.167] {Default Queue} wl_pointer#745.motion(187310256, 14.60156250, 64.80078125) -[2618622.171] {Default Queue} wl_pointer#777.motion(187310256, 14.60156250, 64.80078125) -[2618622.175] {Default Queue} wl_pointer#809.motion(187310256, 14.60156250, 64.80078125) -[2618622.179] {Default Queue} wl_pointer#841.motion(187310256, 14.60156250, 64.80078125) -[2618622.184] {Default Queue} wl_pointer#873.motion(187310256, 14.60156250, 64.80078125) -[2618622.188] {Default Queue} wl_pointer#905.motion(187310256, 14.60156250, 64.80078125) -[2618622.192] {Default Queue} wl_pointer#937.motion(187310256, 14.60156250, 64.80078125) -[2618622.196] {Default Queue} wl_pointer#969.motion(187310256, 14.60156250, 64.80078125) -[2618622.201] {Default Queue} wl_pointer#1001.motion(187310256, 14.60156250, 64.80078125) -[2618622.205] {Default Queue} wl_pointer#1033.motion(187310256, 14.60156250, 64.80078125) -[2618622.209] {Default Queue} wl_pointer#1065.motion(187310256, 14.60156250, 64.80078125) -[2618622.214] {Default Queue} wl_pointer#1097.motion(187310256, 14.60156250, 64.80078125) -[2618622.218] {Default Queue} wl_pointer#1129.motion(187310256, 14.60156250, 64.80078125) -[2618622.222] {Default Queue} wl_pointer#1161.motion(187310256, 14.60156250, 64.80078125) -[2618622.230] {Default Queue} wl_pointer#1193.motion(187310256, 14.60156250, 64.80078125) -[2618622.234] {Default Queue} wl_pointer#1225.motion(187310256, 14.60156250, 64.80078125) -[2618622.239] {Default Queue} wl_pointer#1257.motion(187310256, 14.60156250, 64.80078125) -[2618622.243] {Default Queue} wl_pointer#1289.motion(187310256, 14.60156250, 64.80078125) -[2618622.247] {Default Queue} wl_pointer#1321.motion(187310256, 14.60156250, 64.80078125) -[2618622.251] {Default Queue} wl_pointer#1353.motion(187310256, 14.60156250, 64.80078125) -[2618622.256] {Default Queue} wl_pointer#1385.motion(187310256, 14.60156250, 64.80078125) -[2618622.260] {Default Queue} wl_pointer#1417.motion(187310256, 14.60156250, 64.80078125) -[2618622.264] {Default Queue} wl_pointer#1449.motion(187310256, 14.60156250, 64.80078125) -[2618622.268] {Default Queue} wl_pointer#1481.motion(187310256, 14.60156250, 64.80078125) -[2618622.273] {Default Queue} wl_pointer#1513.motion(187310256, 14.60156250, 64.80078125) -[2618622.277] {Default Queue} wl_pointer#1545.motion(187310256, 14.60156250, 64.80078125) -[2618622.281] {Default Queue} wl_pointer#1577.motion(187310256, 14.60156250, 64.80078125) -[2618622.285] {Default Queue} wl_pointer#1609.motion(187310256, 14.60156250, 64.80078125) -[2618622.290] {Default Queue} wl_pointer#1641.motion(187310256, 14.60156250, 64.80078125) -[2618622.294] {Default Queue} wl_pointer#1673.motion(187310256, 14.60156250, 64.80078125) -[2618622.298] {Default Queue} wl_pointer#1705.motion(187310256, 14.60156250, 64.80078125) -[2618622.302] {Default Queue} wl_pointer#1737.motion(187310256, 14.60156250, 64.80078125) -[2618622.307] {Default Queue} wl_pointer#1762.motion(187310256, 14.60156250, 64.80078125) -[2618622.311] {Default Queue} wl_pointer#1801.motion(187310256, 14.60156250, 64.80078125) -[2618622.315] {Default Queue} wl_pointer#1833.motion(187310256, 14.60156250, 64.80078125) -[2618622.319] {Default Queue} wl_pointer#1865.motion(187310256, 14.60156250, 64.80078125) -[2618622.323] {Default Queue} wl_pointer#1897.motion(187310256, 14.60156250, 64.80078125) -[2618622.328] {Default Queue} wl_pointer#1929.motion(187310256, 14.60156250, 64.80078125) -[2618622.332] {Default Queue} wl_pointer#1961.motion(187310256, 14.60156250, 64.80078125) -[2618622.336] {Default Queue} wl_pointer#1993.motion(187310256, 14.60156250, 64.80078125) -[2618622.343] {Default Queue} wl_pointer#2025.motion(187310256, 14.60156250, 64.80078125) -[2618622.349] {Default Queue} wl_pointer#2057.motion(187310256, 14.60156250, 64.80078125) -[2618622.353] {Default Queue} wl_pointer#2089.motion(187310256, 14.60156250, 64.80078125) -[2618622.358] {Default Queue} wl_pointer#2121.motion(187310256, 14.60156250, 64.80078125) -[2618622.362] {Default Queue} wl_pointer#2153.motion(187310256, 14.60156250, 64.80078125) -[2618622.366] {Default Queue} wl_pointer#2185.motion(187310256, 14.60156250, 64.80078125) -[2618622.370] {Default Queue} wl_pointer#2217.motion(187310256, 14.60156250, 64.80078125) -[2618622.375] {Default Queue} wl_pointer#2249.motion(187310256, 14.60156250, 64.80078125) -[2618622.379] {Default Queue} wl_pointer#2281.motion(187310256, 14.60156250, 64.80078125) -[2618622.383] {Default Queue} wl_pointer#2313.motion(187310256, 14.60156250, 64.80078125) -[2618622.388] {Default Queue} wl_pointer#2345.motion(187310256, 14.60156250, 64.80078125) -[2618622.392] {Default Queue} wl_pointer#2377.motion(187310256, 14.60156250, 64.80078125) -[2618622.396] {Default Queue} wl_pointer#2409.motion(187310256, 14.60156250, 64.80078125) -[2618622.400] {Default Queue} wl_pointer#2441.motion(187310256, 14.60156250, 64.80078125) -[2618622.405] {Default Queue} wl_pointer#2473.motion(187310256, 14.60156250, 64.80078125) -[2618622.409] {Default Queue} wl_pointer#2498.motion(187310256, 14.60156250, 64.80078125) -[2618622.419] {Default Queue} -> wl_buffer#3484.destroy() -[2618622.423] {Default Queue} -> wl_buffer#3293.destroy() -[2618622.427] {Default Queue} -> wl_shm_pool#3294.destroy() -[2618622.431] {Default Queue} -> wl_shm_pool#3291.destroy() -[2618622.436] {Default Queue} -> wl_surface#3292.destroy() -[2618622.470] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3485, fd 581, 640) -[2618622.476] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3486, fd 582, 640) -[2618622.480] {Default Queue} -> wl_shm_pool#3485.create_buffer(new id wl_buffer#3515, 0, 10, 16, 40, 0) -[2618622.485] {Default Queue} -> wl_shm_pool#3486.create_buffer(new id wl_buffer#3516, 0, 10, 16, 40, 0) -[2618622.492] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3483) -[2618622.496] {Default Queue} -> wl_surface#3483.attach(wl_buffer#3515, 0, 0) -[2618622.500] {Default Queue} -> wl_surface#3483.commit() -[2618622.505] {Default Queue} -> wl_surface#3483.attach(wl_buffer#3515, 0, 0) -[2618622.510] {Default Queue} -> wl_surface#3483.commit() -[2618622.514] {Default Queue} wl_pointer#2537.motion(187310256, 14.60156250, 64.80078125) -[2618622.518] {Default Queue} wl_pointer#2569.motion(187310256, 14.60156250, 64.80078125) -[2618622.522] {Default Queue} wl_pointer#2601.motion(187310256, 14.60156250, 64.80078125) -[2618622.527] {Default Queue} wl_pointer#2633.motion(187310256, 14.60156250, 64.80078125) -[2618622.531] {Default Queue} wl_pointer#2665.motion(187310256, 14.60156250, 64.80078125) -[2618622.535] {Default Queue} wl_pointer#2697.motion(187310256, 14.60156250, 64.80078125) -[2618622.540] {Default Queue} wl_pointer#2729.motion(187310256, 14.60156250, 64.80078125) -[2618622.544] {Default Queue} wl_pointer#2761.motion(187310256, 14.60156250, 64.80078125) -[2618622.552] {Default Queue} wl_pointer#2793.motion(187310256, 14.60156250, 64.80078125) -[2618622.556] {Default Queue} wl_pointer#2825.motion(187310256, 14.60156250, 64.80078125) -[2618622.560] {Default Queue} wl_pointer#2857.motion(187310256, 14.60156250, 64.80078125) -[2618622.565] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) -[2618622.569] {Default Queue} -> wl_surface#1063.commit() -[2618623.634] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) -[2618623.641] {Default Queue} -> wl_surface#1063.commit() -[2618623.647] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) -[2618623.651] {Default Queue} -> wl_surface#1063.commit() -[2618623.658] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) -[2618623.662] {Default Queue} -> wl_surface#1287.commit() -[2618624.725] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) -[2618624.736] {Default Queue} -> wl_surface#1287.commit() -[2618624.749] {Default Queue} -> wl_region#1311.subtract(0, 0, 19, 48) -[2618624.754] {Default Queue} -> wl_region#1311.add(-20, -49, 19, 48) -[2618624.758] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2618624.762] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2618624.887] {Default Queue} -> wl_region#1311.subtract(0, 0, 19, 48) -[2618624.893] {Default Queue} -> wl_region#1311.add(-20, -49, 19, 48) -[2618624.898] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2618624.902] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2618624.909] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618624.915] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618624.997] {Default Queue} -> wl_region#1311.subtract(0, 0, 19, 48) -[2618625.002] {Default Queue} -> wl_region#1311.add(-20, -49, 19, 48) -[2618625.006] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2618625.010] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2618625.015] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618625.020] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618625.025] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) -[2618625.029] {Default Queue} -> wl_surface#1287.commit() -[2618625.033] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) -[2618625.037] {Default Queue} -> wl_surface#1287.commit() -[2618625.044] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) -[2618625.048] {Default Queue} -> wl_surface#1287.commit() -[2618625.054] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) -[2618625.058] {Default Queue} -> wl_surface#1319.commit() -[2618626.121] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) -[2618626.133] {Default Queue} -> wl_surface#1319.commit() -[2618626.146] {Default Queue} -> wl_region#1343.subtract(0, 0, 19, 48) -[2618626.151] {Default Queue} -> wl_region#1343.add(-20, -49, 19, 48) -[2618626.155] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2618626.159] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2618626.263] {Default Queue} -> wl_region#1343.subtract(0, 0, 19, 48) -[2618626.269] {Default Queue} -> wl_region#1343.add(-20, -49, 19, 48) -[2618626.273] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2618626.277] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2618626.283] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618626.288] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618626.366] {Default Queue} -> wl_region#1343.subtract(0, 0, 19, 48) -[2618626.371] {Default Queue} -> wl_region#1343.add(-20, -49, 19, 48) -[2618626.375] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2618626.379] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2618626.384] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618626.389] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618626.394] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) -[2618626.398] {Default Queue} -> wl_surface#1319.commit() -[2618626.402] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) -[2618626.406] {Default Queue} -> wl_surface#1319.commit() -[2618626.428] {Display Queue} wl_display#1.delete_id(3674) -[2618626.434] {Display Queue} wl_display#1.delete_id(3678) -[2618626.438] {Display Queue} wl_display#1.delete_id(3677) -[2618626.442] {Display Queue} wl_display#1.delete_id(3676) -[2618626.446] {Display Queue} wl_display#1.delete_id(3675) -[2618626.450] {Display Queue} wl_display#1.delete_id(93) -[2618626.454] {Display Queue} wl_display#1.delete_id(94) -[2618626.458] {Display Queue} wl_display#1.delete_id(91) -[2618626.462] {Display Queue} wl_display#1.delete_id(92) -[2618626.466] {Display Queue} wl_display#1.delete_id(3683) -[2618626.470] {Default Queue} wl_pointer#2889.motion(187310256, 14.60156250, 64.80078125) -[2618626.479] {Default Queue} wl_pointer#2921.motion(187310256, 14.60156250, 64.80078125) -[2618626.487] {Default Queue} wl_pointer#2953.motion(187310256, 14.60156250, 64.80078125) -[2618626.491] {Default Queue} wl_pointer#2985.motion(187310256, 14.60156250, 64.80078125) -[2618626.495] {Default Queue} wl_pointer#3017.motion(187310256, 14.60156250, 64.80078125) -[2618626.500] {Default Queue} wl_pointer#3049.motion(187310256, 14.60156250, 64.80078125) -[2618626.504] {Default Queue} wl_pointer#3081.motion(187310256, 14.60156250, 64.80078125) -[2618626.508] {Default Queue} wl_pointer#3113.motion(187310256, 14.60156250, 64.80078125) -[2618626.512] {Default Queue} wl_pointer#3145.motion(187310256, 14.60156250, 64.80078125) -[2618626.517] {Default Queue} wl_pointer#3177.motion(187310256, 14.60156250, 64.80078125) -[2618626.521] {Default Queue} wl_pointer#3209.motion(187310256, 14.60156250, 64.80078125) -[2618626.525] {Default Queue} wl_pointer#3241.motion(187310256, 14.60156250, 64.80078125) -[2618626.530] {Default Queue} wl_pointer#3273.motion(187310256, 14.60156250, 64.80078125) -[2618626.534] {Default Queue} wl_pointer#3305.motion(187310256, 14.60156250, 64.80078125) -[2618626.538] {Default Queue} wl_pointer#3337.motion(187310256, 14.60156250, 64.80078125) -[2618626.543] {Default Queue} wl_pointer#3369.motion(187310256, 14.60156250, 64.80078125) -[2618626.547] {Default Queue} wl_pointer#3401.motion(187310256, 14.60156250, 64.80078125) -[2618626.551] {Default Queue} wl_pointer#3433.motion(187310256, 14.60156250, 64.80078125) -[2618626.556] {Default Queue} wl_pointer#3465.motion(187310256, 14.60156250, 64.80078125) -[2618626.560] {Default Queue} wl_pointer#3497.motion(187310256, 14.60156250, 64.80078125) -[2618626.564] {Default Queue} wl_pointer#3529.motion(187310256, 14.60156250, 64.80078125) -[2618626.569] {Default Queue} wl_pointer#3561.motion(187310256, 14.60156250, 64.80078125) -[2618626.573] {Default Queue} wl_pointer#3593.motion(187310256, 14.60156250, 64.80078125) -[2618626.577] {Default Queue} wl_pointer#3625.motion(187310256, 14.60156250, 64.80078125) -[2618626.581] {Default Queue} wl_pointer#3657.motion(187310256, 14.60156250, 64.80078125) -[2618626.585] {Default Queue} wl_pointer#3695.motion(187310256, 14.60156250, 64.80078125) -[2618626.590] {Default Queue} wl_pointer#24.motion(187310256, 15.80078125, 63.19921875) -[2618626.594] {Default Queue} wl_pointer#81.motion(187310256, 15.80078125, 63.19921875) -[2618626.599] {Default Queue} wl_pointer#105.motion(187310256, 15.80078125, 63.19921875) -[2618626.604] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618626.608] {Default Queue} wl_pointer#137.motion(187310256, 15.80078125, 63.19921875) -[2618626.612] {Default Queue} wl_pointer#169.motion(187310256, 15.80078125, 63.19921875) -[2618626.617] {Default Queue} wl_pointer#201.motion(187310256, 15.80078125, 63.19921875) -[2618626.621] {Default Queue} wl_pointer#233.motion(187310256, 15.80078125, 63.19921875) -[2618626.625] {Default Queue} wl_pointer#265.motion(187310256, 15.80078125, 63.19921875) -[2618626.629] {Default Queue} wl_pointer#297.motion(187310256, 15.80078125, 63.19921875) -[2618626.634] {Default Queue} wl_pointer#329.motion(187310256, 15.80078125, 63.19921875) -[2618626.638] {Default Queue} wl_pointer#361.motion(187310256, 15.80078125, 63.19921875) -[2618626.642] {Default Queue} wl_pointer#393.motion(187310256, 15.80078125, 63.19921875) -[2618626.646] {Default Queue} wl_pointer#425.motion(187310256, 15.80078125, 63.19921875) -[2618626.651] {Default Queue} wl_pointer#457.motion(187310256, 15.80078125, 63.19921875) -[2618626.655] {Default Queue} wl_pointer#489.motion(187310256, 15.80078125, 63.19921875) -[2618626.659] {Default Queue} wl_pointer#521.motion(187310256, 15.80078125, 63.19921875) -[2618626.663] {Default Queue} wl_pointer#553.motion(187310256, 15.80078125, 63.19921875) -[2618626.668] {Default Queue} wl_pointer#585.motion(187310256, 15.80078125, 63.19921875) -[2618626.672] {Default Queue} wl_pointer#617.motion(187310256, 15.80078125, 63.19921875) -[2618626.679] {Default Queue} wl_pointer#649.motion(187310256, 15.80078125, 63.19921875) -[2618626.685] {Default Queue} wl_pointer#681.motion(187310256, 15.80078125, 63.19921875) -[2618626.690] {Default Queue} wl_pointer#713.motion(187310256, 15.80078125, 63.19921875) -[2618626.694] {Default Queue} wl_pointer#745.motion(187310256, 15.80078125, 63.19921875) -[2618626.698] {Default Queue} wl_pointer#777.motion(187310256, 15.80078125, 63.19921875) -[2618626.702] {Default Queue} wl_pointer#809.motion(187310256, 15.80078125, 63.19921875) -[2618626.707] {Default Queue} wl_pointer#841.motion(187310256, 15.80078125, 63.19921875) -[2618626.711] {Default Queue} wl_pointer#873.motion(187310256, 15.80078125, 63.19921875) -[2618626.715] {Default Queue} wl_pointer#905.motion(187310256, 15.80078125, 63.19921875) -[2618626.720] {Default Queue} wl_pointer#937.motion(187310256, 15.80078125, 63.19921875) -[2618626.724] {Default Queue} wl_pointer#969.motion(187310256, 15.80078125, 63.19921875) -[2618626.728] {Default Queue} wl_pointer#1001.motion(187310256, 15.80078125, 63.19921875) -[2618626.732] {Default Queue} wl_pointer#1033.motion(187310256, 15.80078125, 63.19921875) -[2618626.737] {Default Queue} wl_pointer#1065.motion(187310256, 15.80078125, 63.19921875) -[2618626.741] {Default Queue} wl_pointer#1097.motion(187310256, 15.80078125, 63.19921875) -[2618626.745] {Default Queue} wl_pointer#1129.motion(187310256, 15.80078125, 63.19921875) -[2618626.749] {Default Queue} wl_pointer#1161.motion(187310256, 15.80078125, 63.19921875) -[2618626.754] {Default Queue} wl_pointer#1193.motion(187310256, 15.80078125, 63.19921875) -[2618626.758] {Default Queue} wl_pointer#1225.motion(187310256, 15.80078125, 63.19921875) -[2618626.762] {Default Queue} wl_pointer#1257.motion(187310256, 15.80078125, 63.19921875) -[2618626.767] {Default Queue} wl_pointer#1289.motion(187310256, 15.80078125, 63.19921875) -[2618626.771] {Default Queue} wl_pointer#1321.motion(187310256, 15.80078125, 63.19921875) -[2618626.775] {Default Queue} wl_pointer#1353.motion(187310256, 15.80078125, 63.19921875) -[2618626.779] {Default Queue} wl_pointer#1385.motion(187310256, 15.80078125, 63.19921875) -[2618626.784] {Default Queue} wl_pointer#1417.motion(187310256, 15.80078125, 63.19921875) -[2618626.788] {Default Queue} wl_pointer#1449.motion(187310256, 15.80078125, 63.19921875) -[2618626.792] {Default Queue} wl_pointer#1481.motion(187310256, 15.80078125, 63.19921875) -[2618626.796] {Default Queue} wl_pointer#1513.motion(187310256, 15.80078125, 63.19921875) -[2618626.801] {Default Queue} wl_pointer#1545.motion(187310256, 15.80078125, 63.19921875) -[2618626.805] {Default Queue} wl_pointer#1577.motion(187310256, 15.80078125, 63.19921875) -[2618626.809] {Default Queue} wl_pointer#1609.motion(187310256, 15.80078125, 63.19921875) -[2618626.814] {Default Queue} wl_pointer#1641.motion(187310256, 15.80078125, 63.19921875) -[2618626.818] {Default Queue} wl_pointer#1673.motion(187310256, 15.80078125, 63.19921875) -[2618626.822] {Default Queue} wl_pointer#1705.motion(187310256, 15.80078125, 63.19921875) -[2618626.826] {Default Queue} wl_pointer#1737.motion(187310256, 15.80078125, 63.19921875) -[2618626.831] {Default Queue} wl_pointer#1762.motion(187310256, 15.80078125, 63.19921875) -[2618626.835] {Default Queue} wl_pointer#1801.motion(187310256, 15.80078125, 63.19921875) -[2618626.839] {Default Queue} wl_pointer#1833.motion(187310256, 15.80078125, 63.19921875) -[2618626.843] {Default Queue} wl_pointer#1865.motion(187310256, 15.80078125, 63.19921875) -[2618626.848] {Default Queue} wl_pointer#1897.motion(187310256, 15.80078125, 63.19921875) -[2618626.852] {Default Queue} wl_pointer#1929.motion(187310256, 15.80078125, 63.19921875) -[2618626.856] {Default Queue} wl_pointer#1961.motion(187310256, 15.80078125, 63.19921875) -[2618626.865] {Default Queue} wl_pointer#1993.motion(187310256, 15.80078125, 63.19921875) -[2618626.869] {Default Queue} wl_pointer#2025.motion(187310256, 15.80078125, 63.19921875) -[2618626.873] {Default Queue} wl_pointer#2057.motion(187310256, 15.80078125, 63.19921875) -[2618626.878] {Default Queue} wl_pointer#2089.motion(187310256, 15.80078125, 63.19921875) -[2618626.885] {Default Queue} wl_pointer#2121.motion(187310256, 15.80078125, 63.19921875) -[2618626.891] {Default Queue} wl_pointer#2153.motion(187310256, 15.80078125, 63.19921875) -[2618626.895] {Default Queue} wl_pointer#2185.motion(187310256, 15.80078125, 63.19921875) -[2618626.899] {Default Queue} wl_pointer#2217.motion(187310256, 15.80078125, 63.19921875) -[2618626.904] {Default Queue} wl_pointer#2249.motion(187310256, 15.80078125, 63.19921875) -[2618626.908] {Default Queue} wl_pointer#2281.motion(187310256, 15.80078125, 63.19921875) -[2618626.912] {Default Queue} wl_pointer#2313.motion(187310256, 15.80078125, 63.19921875) -[2618626.917] {Default Queue} wl_pointer#2345.motion(187310256, 15.80078125, 63.19921875) -[2618626.921] {Default Queue} wl_pointer#2377.motion(187310256, 15.80078125, 63.19921875) -[2618626.925] {Default Queue} wl_pointer#2409.motion(187310256, 15.80078125, 63.19921875) -[2618626.930] {Default Queue} wl_pointer#2441.motion(187310256, 15.80078125, 63.19921875) -[2618626.934] {Default Queue} wl_pointer#2473.motion(187310256, 15.80078125, 63.19921875) -[2618626.938] {Default Queue} wl_pointer#2498.motion(187310256, 15.80078125, 63.19921875) -[2618626.950] {Default Queue} -> wl_buffer#3515.destroy() -[2618626.956] {Default Queue} -> wl_buffer#3516.destroy() -[2618626.960] {Default Queue} -> wl_shm_pool#3485.destroy() -[2618626.964] {Default Queue} -> wl_shm_pool#3486.destroy() -[2618626.969] {Default Queue} -> wl_surface#3483.destroy() -[2618627.010] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3683, fd 575, 640) -[2618627.017] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 578, 640) -[2618627.022] {Default Queue} -> wl_shm_pool#3683.create_buffer(new id wl_buffer#91, 0, 10, 16, 40, 0) -[2618627.026] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) -[2618627.034] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#93) -[2618627.038] {Default Queue} -> wl_surface#93.attach(wl_buffer#91, 0, 0) -[2618627.043] {Default Queue} -> wl_surface#93.commit() -[2618627.048] {Default Queue} -> wl_surface#93.attach(wl_buffer#91, 0, 0) -[2618627.052] {Default Queue} -> wl_surface#93.commit() -[2618627.056] {Default Queue} wl_pointer#2537.motion(187310256, 15.80078125, 63.19921875) -[2618627.061] {Default Queue} wl_pointer#2569.motion(187310256, 15.80078125, 63.19921875) -[2618627.065] {Default Queue} wl_pointer#2601.motion(187310256, 15.80078125, 63.19921875) -[2618627.070] {Default Queue} wl_pointer#2633.motion(187310256, 15.80078125, 63.19921875) -[2618627.074] {Default Queue} wl_pointer#2665.motion(187310256, 15.80078125, 63.19921875) -[2618627.078] {Default Queue} wl_pointer#2697.motion(187310256, 15.80078125, 63.19921875) -[2618627.083] {Default Queue} wl_pointer#2729.motion(187310256, 15.80078125, 63.19921875) -[2618627.087] {Default Queue} wl_pointer#2761.motion(187310256, 15.80078125, 63.19921875) -[2618627.091] {Default Queue} wl_pointer#2793.motion(187310256, 15.80078125, 63.19921875) -[2618627.095] {Default Queue} wl_pointer#2825.motion(187310256, 15.80078125, 63.19921875) -[2618627.100] {Default Queue} wl_pointer#2857.motion(187310256, 15.80078125, 63.19921875) -[2618627.104] {Default Queue} wl_pointer#2889.motion(187310256, 15.80078125, 63.19921875) -[2618627.108] {Default Queue} wl_pointer#2921.motion(187310256, 15.80078125, 63.19921875) -[2618627.113] {Default Queue} wl_pointer#2953.motion(187310256, 15.80078125, 63.19921875) -[2618627.117] {Default Queue} wl_pointer#2985.motion(187310256, 15.80078125, 63.19921875) -[2618627.121] {Default Queue} wl_pointer#3017.motion(187310256, 15.80078125, 63.19921875) -[2618627.126] {Default Queue} wl_pointer#3049.motion(187310256, 15.80078125, 63.19921875) -[2618627.130] {Default Queue} wl_pointer#3081.motion(187310256, 15.80078125, 63.19921875) -[2618627.134] {Default Queue} wl_pointer#3113.motion(187310256, 15.80078125, 63.19921875) -[2618627.138] {Default Queue} wl_pointer#3145.motion(187310256, 15.80078125, 63.19921875) -[2618627.143] {Default Queue} wl_pointer#3177.motion(187310256, 15.80078125, 63.19921875) -[2618627.152] {Default Queue} wl_pointer#3209.motion(187310256, 15.80078125, 63.19921875) -[2618627.158] {Default Queue} wl_pointer#3241.motion(187310256, 15.80078125, 63.19921875) -[2618627.162] {Default Queue} wl_pointer#3273.motion(187310256, 15.80078125, 63.19921875) -[2618627.167] {Default Queue} wl_pointer#3305.motion(187310256, 15.80078125, 63.19921875) -[2618627.171] {Default Queue} wl_pointer#3337.motion(187310256, 15.80078125, 63.19921875) -[2618627.175] {Default Queue} wl_pointer#3369.motion(187310256, 15.80078125, 63.19921875) -[2618627.179] {Default Queue} wl_pointer#3401.motion(187310256, 15.80078125, 63.19921875) -[2618627.184] {Default Queue} wl_pointer#3433.motion(187310256, 15.80078125, 63.19921875) -[2618627.188] {Default Queue} wl_pointer#3465.motion(187310256, 15.80078125, 63.19921875) -[2618627.193] {Default Queue} wl_pointer#3497.motion(187310256, 15.80078125, 63.19921875) -[2618627.197] {Default Queue} wl_pointer#3529.motion(187310256, 15.80078125, 63.19921875) -[2618627.201] {Default Queue} wl_pointer#3561.motion(187310256, 15.80078125, 63.19921875) -[2618627.205] {Default Queue} wl_pointer#3593.motion(187310256, 15.80078125, 63.19921875) -[2618627.210] {Default Queue} wl_pointer#3625.motion(187310256, 15.80078125, 63.19921875) -[2618627.214] {Default Queue} wl_pointer#3657.motion(187310256, 15.80078125, 63.19921875) -[2618627.218] {Default Queue} wl_pointer#3695.motion(187310256, 15.80078125, 63.19921875) -[2618627.223] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) -[2618627.227] {Default Queue} -> wl_surface#1319.commit() -[2618627.255] {Default Queue} wl_pointer#24.motion(187310261, 16.60156250, 62.00000000) -[2618627.260] {Default Queue} wl_pointer#81.motion(187310261, 16.60156250, 62.00000000) -[2618627.266] {Default Queue} wl_pointer#105.motion(187310261, 16.60156250, 62.00000000) -[2618627.270] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618627.274] {Default Queue} wl_pointer#137.motion(187310261, 16.60156250, 62.00000000) -[2618627.279] {Default Queue} wl_pointer#169.motion(187310261, 16.60156250, 62.00000000) -[2618627.283] {Default Queue} wl_pointer#201.motion(187310261, 16.60156250, 62.00000000) -[2618627.287] {Default Queue} wl_pointer#233.motion(187310261, 16.60156250, 62.00000000) -[2618627.292] {Default Queue} wl_pointer#265.motion(187310261, 16.60156250, 62.00000000) -[2618627.296] {Default Queue} wl_pointer#297.motion(187310261, 16.60156250, 62.00000000) -[2618627.304] {Default Queue} wl_pointer#329.motion(187310261, 16.60156250, 62.00000000) -[2618627.308] {Default Queue} wl_pointer#361.motion(187310261, 16.60156250, 62.00000000) -[2618627.313] {Default Queue} wl_pointer#393.motion(187310261, 16.60156250, 62.00000000) -[2618627.317] {Default Queue} wl_pointer#425.motion(187310261, 16.60156250, 62.00000000) -[2618627.321] {Default Queue} wl_pointer#457.motion(187310261, 16.60156250, 62.00000000) -[2618627.325] {Default Queue} wl_pointer#489.motion(187310261, 16.60156250, 62.00000000) -[2618627.330] {Default Queue} wl_pointer#521.motion(187310261, 16.60156250, 62.00000000) -[2618627.334] {Default Queue} wl_pointer#553.motion(187310261, 16.60156250, 62.00000000) -[2618627.338] {Default Queue} wl_pointer#585.motion(187310261, 16.60156250, 62.00000000) -[2618627.343] {Default Queue} wl_pointer#617.motion(187310261, 16.60156250, 62.00000000) -[2618627.347] {Default Queue} wl_pointer#649.motion(187310261, 16.60156250, 62.00000000) -[2618627.351] {Default Queue} wl_pointer#681.motion(187310261, 16.60156250, 62.00000000) -[2618627.355] {Default Queue} wl_pointer#713.motion(187310261, 16.60156250, 62.00000000) -[2618627.360] {Default Queue} wl_pointer#745.motion(187310261, 16.60156250, 62.00000000) -[2618627.364] {Default Queue} wl_pointer#777.motion(187310261, 16.60156250, 62.00000000) -[2618627.368] {Default Queue} wl_pointer#809.motion(187310261, 16.60156250, 62.00000000) -[2618627.372] {Default Queue} wl_pointer#841.motion(187310261, 16.60156250, 62.00000000) -[2618627.376] {Default Queue} wl_pointer#873.motion(187310261, 16.60156250, 62.00000000) -[2618627.384] {Default Queue} wl_pointer#905.motion(187310261, 16.60156250, 62.00000000) -[2618627.390] {Default Queue} wl_pointer#937.motion(187310261, 16.60156250, 62.00000000) -[2618627.395] {Default Queue} wl_pointer#969.motion(187310261, 16.60156250, 62.00000000) -[2618627.399] {Default Queue} wl_pointer#1001.motion(187310261, 16.60156250, 62.00000000) -[2618627.403] {Default Queue} wl_pointer#1033.motion(187310261, 16.60156250, 62.00000000) -[2618627.407] {Default Queue} wl_pointer#1065.motion(187310261, 16.60156250, 62.00000000) -[2618627.412] {Default Queue} wl_pointer#1097.motion(187310261, 16.60156250, 62.00000000) -[2618627.416] {Default Queue} wl_pointer#1129.motion(187310261, 16.60156250, 62.00000000) -[2618627.420] {Default Queue} wl_pointer#1161.motion(187310261, 16.60156250, 62.00000000) -[2618627.424] {Default Queue} wl_pointer#1193.motion(187310261, 16.60156250, 62.00000000) -[2618627.429] {Default Queue} wl_pointer#1225.motion(187310261, 16.60156250, 62.00000000) -[2618627.433] {Default Queue} wl_pointer#1257.motion(187310261, 16.60156250, 62.00000000) -[2618627.437] {Default Queue} wl_pointer#1289.motion(187310261, 16.60156250, 62.00000000) -[2618627.441] {Default Queue} wl_pointer#1321.motion(187310261, 16.60156250, 62.00000000) -[2618627.446] {Default Queue} wl_pointer#1353.motion(187310261, 16.60156250, 62.00000000) -[2618627.450] {Default Queue} wl_pointer#1385.motion(187310261, 16.60156250, 62.00000000) -[2618627.454] {Default Queue} wl_pointer#1417.motion(187310261, 16.60156250, 62.00000000) -[2618627.458] {Default Queue} wl_pointer#1449.motion(187310261, 16.60156250, 62.00000000) -[2618627.462] {Default Queue} wl_pointer#1481.motion(187310261, 16.60156250, 62.00000000) -[2618627.467] {Default Queue} wl_pointer#1513.motion(187310261, 16.60156250, 62.00000000) -[2618627.471] {Default Queue} wl_pointer#1545.motion(187310261, 16.60156250, 62.00000000) -[2618627.475] {Default Queue} wl_pointer#1577.motion(187310261, 16.60156250, 62.00000000) -[2618627.479] {Default Queue} wl_pointer#1609.motion(187310261, 16.60156250, 62.00000000) -[2618627.484] {Default Queue} wl_pointer#1641.motion(187310261, 16.60156250, 62.00000000) -[2618627.488] {Default Queue} wl_pointer#1673.motion(187310261, 16.60156250, 62.00000000) -[2618627.492] {Default Queue} wl_pointer#1705.motion(187310261, 16.60156250, 62.00000000) -[2618627.496] {Default Queue} wl_pointer#1737.motion(187310261, 16.60156250, 62.00000000) -[2618627.501] {Default Queue} wl_pointer#1762.motion(187310261, 16.60156250, 62.00000000) -[2618627.505] {Default Queue} wl_pointer#1801.motion(187310261, 16.60156250, 62.00000000) -[2618627.509] {Default Queue} wl_pointer#1833.motion(187310261, 16.60156250, 62.00000000) -[2618627.513] {Default Queue} wl_pointer#1865.motion(187310261, 16.60156250, 62.00000000) -[2618627.518] {Default Queue} wl_pointer#1897.motion(187310261, 16.60156250, 62.00000000) -[2618627.522] {Default Queue} wl_pointer#1929.motion(187310261, 16.60156250, 62.00000000) -[2618627.526] {Default Queue} wl_pointer#1961.motion(187310261, 16.60156250, 62.00000000) -[2618627.530] {Default Queue} wl_pointer#1993.motion(187310261, 16.60156250, 62.00000000) -[2618627.535] {Default Queue} wl_pointer#2025.motion(187310261, 16.60156250, 62.00000000) -[2618627.539] {Default Queue} wl_pointer#2057.motion(187310261, 16.60156250, 62.00000000) -[2618627.543] {Default Queue} wl_pointer#2089.motion(187310261, 16.60156250, 62.00000000) -[2618627.548] {Default Queue} wl_pointer#2121.motion(187310261, 16.60156250, 62.00000000) -[2618627.552] {Default Queue} wl_pointer#2153.motion(187310261, 16.60156250, 62.00000000) -[2618627.556] {Default Queue} wl_pointer#2185.motion(187310261, 16.60156250, 62.00000000) -[2618627.560] {Default Queue} wl_pointer#2217.motion(187310261, 16.60156250, 62.00000000) -[2618627.565] {Default Queue} wl_pointer#2249.motion(187310261, 16.60156250, 62.00000000) -[2618627.569] {Default Queue} wl_pointer#2281.motion(187310261, 16.60156250, 62.00000000) -[2618627.573] {Default Queue} wl_pointer#2313.motion(187310261, 16.60156250, 62.00000000) -[2618627.578] {Default Queue} wl_pointer#2345.motion(187310261, 16.60156250, 62.00000000) -[2618627.586] {Default Queue} wl_pointer#2377.motion(187310261, 16.60156250, 62.00000000) -[2618627.592] {Default Queue} wl_pointer#2409.motion(187310261, 16.60156250, 62.00000000) -[2618627.596] {Default Queue} wl_pointer#2441.motion(187310261, 16.60156250, 62.00000000) -[2618627.600] {Default Queue} wl_pointer#2473.motion(187310261, 16.60156250, 62.00000000) -[2618627.605] {Default Queue} wl_pointer#2498.motion(187310261, 16.60156250, 62.00000000) -[2618627.614] {Default Queue} -> wl_buffer#91.destroy() -[2618627.619] {Default Queue} -> wl_buffer#94.destroy() -[2618627.626] {Default Queue} -> wl_shm_pool#3683.destroy() -[2618627.630] {Default Queue} -> wl_shm_pool#92.destroy() -[2618627.635] {Default Queue} -> wl_surface#93.destroy() -[2618627.668] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3675, fd 575, 640) -[2618627.674] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3676, fd 578, 640) -[2618627.679] {Default Queue} -> wl_shm_pool#3675.create_buffer(new id wl_buffer#3677, 0, 10, 16, 40, 0) -[2618627.683] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 10, 16, 40, 0) -[2618627.690] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3674) -[2618627.694] {Default Queue} -> wl_surface#3674.attach(wl_buffer#3677, 0, 0) -[2618627.698] {Default Queue} -> wl_surface#3674.commit() -[2618627.704] {Default Queue} -> wl_surface#3674.attach(wl_buffer#3677, 0, 0) -[2618627.708] {Default Queue} -> wl_surface#3674.commit() -[2618627.712] {Default Queue} wl_pointer#2537.motion(187310261, 16.60156250, 62.00000000) -[2618627.717] {Default Queue} wl_pointer#2569.motion(187310261, 16.60156250, 62.00000000) -[2618627.721] {Default Queue} wl_pointer#2601.motion(187310261, 16.60156250, 62.00000000) -[2618627.725] {Default Queue} wl_pointer#2633.motion(187310261, 16.60156250, 62.00000000) -[2618627.731] {Default Queue} wl_pointer#2665.motion(187310261, 16.60156250, 62.00000000) -[2618627.737] {Default Queue} wl_pointer#2697.motion(187310261, 16.60156250, 62.00000000) -[2618627.743] {Default Queue} wl_pointer#2729.motion(187310261, 16.60156250, 62.00000000) -[2618627.750] {Default Queue} wl_pointer#2761.motion(187310261, 16.60156250, 62.00000000) -[2618627.756] {Default Queue} wl_pointer#2793.motion(187310261, 16.60156250, 62.00000000) -[2618627.763] {Default Queue} wl_pointer#2825.motion(187310261, 16.60156250, 62.00000000) -[2618627.770] {Default Queue} wl_pointer#2857.motion(187310261, 16.60156250, 62.00000000) -[2618627.777] {Default Queue} wl_pointer#2889.motion(187310261, 16.60156250, 62.00000000) -[2618627.783] {Default Queue} wl_pointer#2921.motion(187310261, 16.60156250, 62.00000000) -[2618627.789] {Default Queue} wl_pointer#2953.motion(187310261, 16.60156250, 62.00000000) -[2618627.795] {Default Queue} wl_pointer#2985.motion(187310261, 16.60156250, 62.00000000) -[2618627.800] {Default Queue} wl_pointer#3017.motion(187310261, 16.60156250, 62.00000000) -[2618627.805] {Default Queue} wl_pointer#3049.motion(187310261, 16.60156250, 62.00000000) -[2618627.809] {Default Queue} wl_pointer#3081.motion(187310261, 16.60156250, 62.00000000) -[2618627.814] {Default Queue} wl_pointer#3113.motion(187310261, 16.60156250, 62.00000000) -[2618627.818] {Default Queue} wl_pointer#3145.motion(187310261, 16.60156250, 62.00000000) -[2618627.822] {Default Queue} wl_pointer#3177.motion(187310261, 16.60156250, 62.00000000) -[2618627.827] {Default Queue} wl_pointer#3209.motion(187310261, 16.60156250, 62.00000000) -[2618627.831] {Default Queue} wl_pointer#3241.motion(187310261, 16.60156250, 62.00000000) -[2618627.836] {Default Queue} wl_pointer#3273.motion(187310261, 16.60156250, 62.00000000) -[2618627.840] {Default Queue} wl_pointer#3305.motion(187310261, 16.60156250, 62.00000000) -[2618627.844] {Default Queue} wl_pointer#3337.motion(187310261, 16.60156250, 62.00000000) -[2618627.848] {Default Queue} wl_pointer#3369.motion(187310261, 16.60156250, 62.00000000) -[2618627.853] {Default Queue} wl_pointer#3401.motion(187310261, 16.60156250, 62.00000000) -[2618627.857] {Default Queue} wl_pointer#3433.motion(187310261, 16.60156250, 62.00000000) -[2618627.874] {Default Queue} wl_pointer#3465.motion(187310261, 16.60156250, 62.00000000) -[2618627.880] {Default Queue} wl_pointer#3497.motion(187310261, 16.60156250, 62.00000000) -[2618627.885] {Default Queue} wl_pointer#3529.motion(187310261, 16.60156250, 62.00000000) -[2618627.889] {Default Queue} wl_pointer#3561.motion(187310261, 16.60156250, 62.00000000) -[2618627.893] {Default Queue} wl_pointer#3593.motion(187310261, 16.60156250, 62.00000000) -[2618627.898] {Default Queue} wl_pointer#3625.motion(187310261, 16.60156250, 62.00000000) -[2618627.902] {Default Queue} wl_pointer#3657.motion(187310261, 16.60156250, 62.00000000) -[2618627.906] {Default Queue} wl_pointer#3695.motion(187310261, 16.60156250, 62.00000000) -[2618627.910] {Default Queue} wl_pointer#24.motion(187310261, 17.39843750, 60.80078125) -[2618627.915] {Default Queue} wl_pointer#81.motion(187310261, 17.39843750, 60.80078125) -[2618627.920] {Default Queue} wl_pointer#105.motion(187310261, 17.39843750, 60.80078125) -[2618627.925] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618627.929] {Default Queue} wl_pointer#137.motion(187310261, 17.39843750, 60.80078125) -[2618627.934] {Default Queue} wl_pointer#169.motion(187310261, 17.39843750, 60.80078125) -[2618627.938] {Default Queue} wl_pointer#201.motion(187310261, 17.39843750, 60.80078125) -[2618627.942] {Default Queue} wl_pointer#233.motion(187310261, 17.39843750, 60.80078125) -[2618627.946] {Default Queue} wl_pointer#265.motion(187310261, 17.39843750, 60.80078125) -[2618627.951] {Default Queue} wl_pointer#297.motion(187310261, 17.39843750, 60.80078125) -[2618627.955] {Default Queue} wl_pointer#329.motion(187310261, 17.39843750, 60.80078125) -[2618627.959] {Default Queue} wl_pointer#361.motion(187310261, 17.39843750, 60.80078125) -[2618627.964] {Default Queue} wl_pointer#393.motion(187310261, 17.39843750, 60.80078125) -[2618627.968] {Default Queue} wl_pointer#425.motion(187310261, 17.39843750, 60.80078125) -[2618627.972] {Default Queue} wl_pointer#457.motion(187310261, 17.39843750, 60.80078125) -[2618627.977] {Default Queue} wl_pointer#489.motion(187310261, 17.39843750, 60.80078125) -[2618627.984] {Default Queue} wl_pointer#521.motion(187310261, 17.39843750, 60.80078125) -[2618627.989] {Default Queue} wl_pointer#553.motion(187310261, 17.39843750, 60.80078125) -[2618627.993] {Default Queue} wl_pointer#585.motion(187310261, 17.39843750, 60.80078125) -[2618627.997] {Default Queue} wl_pointer#617.motion(187310261, 17.39843750, 60.80078125) -[2618628.002] {Default Queue} wl_pointer#649.motion(187310261, 17.39843750, 60.80078125) -[2618628.006] {Default Queue} wl_pointer#681.motion(187310261, 17.39843750, 60.80078125) -[2618628.010] {Default Queue} wl_pointer#713.motion(187310261, 17.39843750, 60.80078125) -[2618628.014] {Default Queue} wl_pointer#745.motion(187310261, 17.39843750, 60.80078125) -[2618628.019] {Default Queue} wl_pointer#777.motion(187310261, 17.39843750, 60.80078125) -[2618628.023] {Default Queue} wl_pointer#809.motion(187310261, 17.39843750, 60.80078125) -[2618628.027] {Default Queue} wl_pointer#841.motion(187310261, 17.39843750, 60.80078125) -[2618628.031] {Default Queue} wl_pointer#873.motion(187310261, 17.39843750, 60.80078125) -[2618628.036] {Default Queue} wl_pointer#905.motion(187310261, 17.39843750, 60.80078125) -[2618628.040] {Default Queue} wl_pointer#937.motion(187310261, 17.39843750, 60.80078125) -[2618628.044] {Default Queue} wl_pointer#969.motion(187310261, 17.39843750, 60.80078125) -[2618628.049] {Default Queue} wl_pointer#1001.motion(187310261, 17.39843750, 60.80078125) -[2618628.053] {Default Queue} wl_pointer#1033.motion(187310261, 17.39843750, 60.80078125) -[2618628.057] {Default Queue} wl_pointer#1065.motion(187310261, 17.39843750, 60.80078125) -[2618628.061] {Default Queue} wl_pointer#1097.motion(187310261, 17.39843750, 60.80078125) -[2618628.066] {Default Queue} wl_pointer#1129.motion(187310261, 17.39843750, 60.80078125) -[2618628.070] {Default Queue} wl_pointer#1161.motion(187310261, 17.39843750, 60.80078125) -[2618628.077] {Default Queue} wl_pointer#1193.motion(187310261, 17.39843750, 60.80078125) -[2618628.083] {Default Queue} wl_pointer#1225.motion(187310261, 17.39843750, 60.80078125) -[2618628.088] {Default Queue} wl_pointer#1257.motion(187310261, 17.39843750, 60.80078125) -[2618628.092] {Default Queue} wl_pointer#1289.motion(187310261, 17.39843750, 60.80078125) -[2618628.096] {Default Queue} wl_pointer#1321.motion(187310261, 17.39843750, 60.80078125) -[2618628.100] {Default Queue} wl_pointer#1353.motion(187310261, 17.39843750, 60.80078125) -[2618628.105] {Default Queue} wl_pointer#1385.motion(187310261, 17.39843750, 60.80078125) -[2618628.109] {Default Queue} wl_pointer#1417.motion(187310261, 17.39843750, 60.80078125) -[2618628.113] {Default Queue} wl_pointer#1449.motion(187310261, 17.39843750, 60.80078125) -[2618628.117] {Default Queue} wl_pointer#1481.motion(187310261, 17.39843750, 60.80078125) -[2618628.122] {Default Queue} wl_pointer#1513.motion(187310261, 17.39843750, 60.80078125) -[2618628.126] {Default Queue} wl_pointer#1545.motion(187310261, 17.39843750, 60.80078125) -[2618628.130] {Default Queue} wl_pointer#1577.motion(187310261, 17.39843750, 60.80078125) -[2618628.134] {Default Queue} wl_pointer#1609.motion(187310261, 17.39843750, 60.80078125) -[2618628.139] {Default Queue} wl_pointer#1641.motion(187310261, 17.39843750, 60.80078125) -[2618628.143] {Default Queue} wl_pointer#1673.motion(187310261, 17.39843750, 60.80078125) -[2618628.147] {Default Queue} wl_pointer#1705.motion(187310261, 17.39843750, 60.80078125) -[2618628.152] {Default Queue} wl_pointer#1737.motion(187310261, 17.39843750, 60.80078125) -[2618628.156] {Default Queue} wl_pointer#1762.motion(187310261, 17.39843750, 60.80078125) -[2618628.160] {Default Queue} wl_pointer#1801.motion(187310261, 17.39843750, 60.80078125) -[2618628.164] {Default Queue} wl_pointer#1833.motion(187310261, 17.39843750, 60.80078125) -[2618628.169] {Default Queue} wl_pointer#1865.motion(187310261, 17.39843750, 60.80078125) -[2618628.173] {Default Queue} wl_pointer#1897.motion(187310261, 17.39843750, 60.80078125) -[2618628.195] {Default Queue} wl_pointer#1929.motion(187310261, 17.39843750, 60.80078125) -[2618628.200] {Default Queue} wl_pointer#1961.motion(187310261, 17.39843750, 60.80078125) -[2618628.215] {Default Queue} wl_pointer#1993.motion(187310261, 17.39843750, 60.80078125) -[2618628.220] {Default Queue} wl_pointer#2025.motion(187310261, 17.39843750, 60.80078125) -[2618628.224] {Default Queue} wl_pointer#2057.motion(187310261, 17.39843750, 60.80078125) -[2618628.229] {Default Queue} wl_pointer#2089.motion(187310261, 17.39843750, 60.80078125) -[2618628.233] {Default Queue} wl_pointer#2121.motion(187310261, 17.39843750, 60.80078125) -[2618628.237] {Default Queue} wl_pointer#2153.motion(187310261, 17.39843750, 60.80078125) -[2618628.241] {Default Queue} wl_pointer#2185.motion(187310261, 17.39843750, 60.80078125) -[2618628.246] {Default Queue} wl_pointer#2217.motion(187310261, 17.39843750, 60.80078125) -[2618628.250] {Default Queue} wl_pointer#2249.motion(187310261, 17.39843750, 60.80078125) -[2618628.254] {Default Queue} wl_pointer#2281.motion(187310261, 17.39843750, 60.80078125) -[2618628.259] {Default Queue} wl_pointer#2313.motion(187310261, 17.39843750, 60.80078125) -[2618628.263] {Default Queue} wl_pointer#2345.motion(187310261, 17.39843750, 60.80078125) -[2618628.268] {Default Queue} wl_pointer#2377.motion(187310261, 17.39843750, 60.80078125) -[2618628.272] {Default Queue} wl_pointer#2409.motion(187310261, 17.39843750, 60.80078125) -[2618628.276] {Default Queue} wl_pointer#2441.motion(187310261, 17.39843750, 60.80078125) -[2618628.281] {Default Queue} wl_pointer#2473.motion(187310261, 17.39843750, 60.80078125) -[2618628.285] {Default Queue} wl_pointer#2498.motion(187310261, 17.39843750, 60.80078125) -[2618628.296] {Default Queue} -> wl_buffer#3677.destroy() -[2618628.301] {Default Queue} -> wl_buffer#3678.destroy() -[2618628.305] {Default Queue} -> wl_shm_pool#3675.destroy() -[2618628.309] {Default Queue} -> wl_shm_pool#3676.destroy() -[2618628.314] {Default Queue} -> wl_surface#3674.destroy() -[2618628.351] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3682, fd 581, 640) -[2618628.360] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 582, 640) -[2618628.367] {Default Queue} -> wl_shm_pool#3682.create_buffer(new id wl_buffer#3684, 0, 10, 16, 40, 0) -[2618628.371] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) -[2618628.379] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3671) -[2618628.384] {Default Queue} -> wl_surface#3671.attach(wl_buffer#3684, 0, 0) -[2618628.388] {Default Queue} -> wl_surface#3671.commit() -[2618628.394] {Default Queue} -> wl_surface#3671.attach(wl_buffer#3684, 0, 0) -[2618628.398] {Default Queue} -> wl_surface#3671.commit() -[2618628.402] {Default Queue} wl_pointer#2537.motion(187310261, 17.39843750, 60.80078125) -[2618628.406] {Default Queue} wl_pointer#2569.motion(187310261, 17.39843750, 60.80078125) -[2618628.411] {Default Queue} wl_pointer#2601.motion(187310261, 17.39843750, 60.80078125) -[2618628.415] {Default Queue} wl_pointer#2633.motion(187310261, 17.39843750, 60.80078125) -[2618628.419] {Default Queue} wl_pointer#2665.motion(187310261, 17.39843750, 60.80078125) -[2618628.424] {Default Queue} wl_pointer#2697.motion(187310261, 17.39843750, 60.80078125) -[2618628.428] {Default Queue} wl_pointer#2729.motion(187310261, 17.39843750, 60.80078125) -[2618628.432] {Default Queue} wl_pointer#2761.motion(187310261, 17.39843750, 60.80078125) -[2618628.437] {Default Queue} wl_pointer#2793.motion(187310261, 17.39843750, 60.80078125) -[2618628.441] {Default Queue} wl_pointer#2825.motion(187310261, 17.39843750, 60.80078125) -[2618628.445] {Default Queue} wl_pointer#2857.motion(187310261, 17.39843750, 60.80078125) -[2618628.453] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) -[2618628.457] {Default Queue} -> wl_surface#1319.commit() -[2618628.463] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) -[2618628.467] {Default Queue} -> wl_surface#1351.commit() -[2618629.531] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) -[2618629.537] {Default Queue} -> wl_surface#1351.commit() -[2618629.548] {Default Queue} -> wl_region#1375.subtract(0, 0, 19, 48) -[2618629.552] {Default Queue} -> wl_region#1375.add(-20, -49, 19, 48) -[2618629.557] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2618629.562] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2618629.669] {Default Queue} -> wl_region#1375.subtract(0, 0, 19, 48) -[2618629.674] {Default Queue} -> wl_region#1375.add(-20, -49, 19, 48) -[2618629.678] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2618629.682] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2618629.689] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618629.693] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618629.776] {Default Queue} -> wl_region#1375.subtract(0, 0, 19, 48) -[2618629.784] {Default Queue} -> wl_region#1375.add(-20, -49, 19, 48) -[2618629.791] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2618629.797] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2618629.806] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618629.812] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618629.820] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) -[2618629.825] {Default Queue} -> wl_surface#1351.commit() -[2618629.831] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) -[2618629.835] {Default Queue} -> wl_surface#1351.commit() -[2618629.841] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) -[2618629.846] {Default Queue} -> wl_surface#1351.commit() -[2618629.852] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) -[2618629.856] {Default Queue} -> wl_surface#1383.commit() -[2618630.920] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) -[2618630.925] {Default Queue} -> wl_surface#1383.commit() -[2618630.934] {Default Queue} -> wl_region#1407.subtract(0, 0, 19, 48) -[2618630.944] {Default Queue} -> wl_region#1407.add(-20, -49, 19, 48) -[2618630.950] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2618630.954] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2618631.050] {Default Queue} -> wl_region#1407.subtract(0, 0, 19, 48) -[2618631.055] {Default Queue} -> wl_region#1407.add(-20, -49, 19, 48) -[2618631.059] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2618631.063] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2618631.069] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618631.073] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618631.147] {Default Queue} -> wl_region#1407.subtract(0, 0, 19, 48) -[2618631.152] {Default Queue} -> wl_region#1407.add(-20, -49, 19, 48) -[2618631.156] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2618631.160] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2618631.165] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618631.169] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618631.174] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) -[2618631.179] {Default Queue} -> wl_surface#1383.commit() -[2618631.183] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) -[2618631.187] {Default Queue} -> wl_surface#1383.commit() -[2618631.192] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) -[2618631.197] {Default Queue} -> wl_surface#1383.commit() -[2618631.202] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) -[2618631.207] {Default Queue} -> wl_surface#1415.commit() -[2618631.396] {Display Queue} wl_display#1.delete_id(3518) -[2618631.402] {Display Queue} wl_display#1.delete_id(3451) -[2618631.406] {Display Queue} wl_display#1.delete_id(3454) -[2618631.410] {Display Queue} wl_display#1.delete_id(3517) -[2618631.414] {Display Queue} wl_display#1.delete_id(3452) -[2618631.418] {Display Queue} wl_display#1.delete_id(3484) -[2618631.422] {Display Queue} wl_display#1.delete_id(3293) -[2618631.426] {Display Queue} wl_display#1.delete_id(3294) -[2618631.430] {Display Queue} wl_display#1.delete_id(3291) -[2618631.434] {Display Queue} wl_display#1.delete_id(3292) -[2618631.438] {Default Queue} wl_pointer#2889.motion(187310261, 17.39843750, 60.80078125) -[2618631.442] {Default Queue} wl_pointer#2921.motion(187310261, 17.39843750, 60.80078125) -[2618631.447] {Default Queue} wl_pointer#2953.motion(187310261, 17.39843750, 60.80078125) -[2618631.451] {Default Queue} wl_pointer#2985.motion(187310261, 17.39843750, 60.80078125) -[2618631.455] {Default Queue} wl_pointer#3017.motion(187310261, 17.39843750, 60.80078125) -[2618631.460] {Default Queue} wl_pointer#3049.motion(187310261, 17.39843750, 60.80078125) -[2618631.464] {Default Queue} wl_pointer#3081.motion(187310261, 17.39843750, 60.80078125) -[2618631.469] {Default Queue} wl_pointer#3113.motion(187310261, 17.39843750, 60.80078125) -[2618631.473] {Default Queue} wl_pointer#3145.motion(187310261, 17.39843750, 60.80078125) -[2618631.477] {Default Queue} wl_pointer#3177.motion(187310261, 17.39843750, 60.80078125) -[2618631.482] {Default Queue} wl_pointer#3209.motion(187310261, 17.39843750, 60.80078125) -[2618631.486] {Default Queue} wl_pointer#3241.motion(187310261, 17.39843750, 60.80078125) -[2618631.491] {Default Queue} wl_pointer#3273.motion(187310261, 17.39843750, 60.80078125) -[2618631.495] {Default Queue} wl_pointer#3305.motion(187310261, 17.39843750, 60.80078125) -[2618631.499] {Default Queue} wl_pointer#3337.motion(187310261, 17.39843750, 60.80078125) -[2618631.503] {Default Queue} wl_pointer#3369.motion(187310261, 17.39843750, 60.80078125) -[2618631.508] {Default Queue} wl_pointer#3401.motion(187310261, 17.39843750, 60.80078125) -[2618631.512] {Default Queue} wl_pointer#3433.motion(187310261, 17.39843750, 60.80078125) -[2618631.516] {Default Queue} wl_pointer#3465.motion(187310261, 17.39843750, 60.80078125) -[2618631.521] {Default Queue} wl_pointer#3497.motion(187310261, 17.39843750, 60.80078125) -[2618631.529] {Default Queue} wl_pointer#3529.motion(187310261, 17.39843750, 60.80078125) -[2618631.535] {Default Queue} wl_pointer#3561.motion(187310261, 17.39843750, 60.80078125) -[2618631.539] {Default Queue} wl_pointer#3593.motion(187310261, 17.39843750, 60.80078125) -[2618631.543] {Default Queue} wl_pointer#3625.motion(187310261, 17.39843750, 60.80078125) -[2618631.548] {Default Queue} wl_pointer#3657.motion(187310261, 17.39843750, 60.80078125) -[2618631.552] {Default Queue} wl_pointer#3695.motion(187310261, 17.39843750, 60.80078125) -[2618631.561] {Default Queue} -> wl_region#1439.subtract(0, 0, 19, 48) -[2618631.566] {Default Queue} -> wl_region#1439.add(-20, -49, 19, 48) -[2618631.570] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2618631.574] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2618631.668] {Default Queue} -> wl_region#1439.subtract(0, 0, 19, 48) -[2618631.673] {Default Queue} -> wl_region#1439.add(-20, -49, 19, 48) -[2618631.677] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2618631.682] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2618631.687] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618631.691] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618631.769] {Default Queue} -> wl_region#1439.subtract(0, 0, 19, 48) -[2618631.774] {Default Queue} -> wl_region#1439.add(-20, -49, 19, 48) -[2618631.778] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2618631.782] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2618631.787] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618631.791] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618631.798] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) -[2618631.805] {Default Queue} -> wl_surface#1415.commit() -[2618631.810] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) -[2618631.817] {Default Queue} -> wl_surface#1415.commit() -[2618631.857] {Default Queue} wl_pointer#24.motion(187310266, 18.19921875, 59.60156250) -[2618631.864] {Default Queue} wl_pointer#81.motion(187310266, 18.19921875, 59.60156250) -[2618631.870] {Default Queue} wl_pointer#105.motion(187310266, 18.19921875, 59.60156250) -[2618631.880] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618631.885] {Default Queue} wl_pointer#137.motion(187310266, 18.19921875, 59.60156250) -[2618631.889] {Default Queue} wl_pointer#169.motion(187310266, 18.19921875, 59.60156250) -[2618631.894] {Default Queue} wl_pointer#201.motion(187310266, 18.19921875, 59.60156250) -[2618631.898] {Default Queue} wl_pointer#233.motion(187310266, 18.19921875, 59.60156250) -[2618631.902] {Default Queue} wl_pointer#265.motion(187310266, 18.19921875, 59.60156250) -[2618631.906] {Default Queue} wl_pointer#297.motion(187310266, 18.19921875, 59.60156250) -[2618631.911] {Default Queue} wl_pointer#329.motion(187310266, 18.19921875, 59.60156250) -[2618631.915] {Default Queue} wl_pointer#361.motion(187310266, 18.19921875, 59.60156250) -[2618631.919] {Default Queue} wl_pointer#393.motion(187310266, 18.19921875, 59.60156250) -[2618631.924] {Default Queue} wl_pointer#425.motion(187310266, 18.19921875, 59.60156250) -[2618631.928] {Default Queue} wl_pointer#457.motion(187310266, 18.19921875, 59.60156250) -[2618631.932] {Default Queue} wl_pointer#489.motion(187310266, 18.19921875, 59.60156250) -[2618631.936] {Default Queue} wl_pointer#521.motion(187310266, 18.19921875, 59.60156250) -[2618631.941] {Default Queue} wl_pointer#553.motion(187310266, 18.19921875, 59.60156250) -[2618631.945] {Default Queue} wl_pointer#585.motion(187310266, 18.19921875, 59.60156250) -[2618631.949] {Default Queue} wl_pointer#617.motion(187310266, 18.19921875, 59.60156250) -[2618631.954] {Default Queue} wl_pointer#649.motion(187310266, 18.19921875, 59.60156250) -[2618631.958] {Default Queue} wl_pointer#681.motion(187310266, 18.19921875, 59.60156250) -[2618631.962] {Default Queue} wl_pointer#713.motion(187310266, 18.19921875, 59.60156250) -[2618631.966] {Default Queue} wl_pointer#745.motion(187310266, 18.19921875, 59.60156250) -[2618631.975] {Default Queue} wl_pointer#777.motion(187310266, 18.19921875, 59.60156250) -[2618631.982] {Default Queue} wl_pointer#809.motion(187310266, 18.19921875, 59.60156250) -[2618631.986] {Default Queue} wl_pointer#841.motion(187310266, 18.19921875, 59.60156250) -[2618631.990] {Default Queue} wl_pointer#873.motion(187310266, 18.19921875, 59.60156250) -[2618631.995] {Default Queue} wl_pointer#905.motion(187310266, 18.19921875, 59.60156250) -[2618631.999] {Default Queue} wl_pointer#937.motion(187310266, 18.19921875, 59.60156250) -[2618632.003] {Default Queue} wl_pointer#969.motion(187310266, 18.19921875, 59.60156250) -[2618632.007] {Default Queue} wl_pointer#1001.motion(187310266, 18.19921875, 59.60156250) -[2618632.012] {Default Queue} wl_pointer#1033.motion(187310266, 18.19921875, 59.60156250) -[2618632.016] {Default Queue} wl_pointer#1065.motion(187310266, 18.19921875, 59.60156250) -[2618632.020] {Default Queue} wl_pointer#1097.motion(187310266, 18.19921875, 59.60156250) -[2618632.025] {Default Queue} wl_pointer#1129.motion(187310266, 18.19921875, 59.60156250) -[2618632.029] {Default Queue} wl_pointer#1161.motion(187310266, 18.19921875, 59.60156250) -[2618632.033] {Default Queue} wl_pointer#1193.motion(187310266, 18.19921875, 59.60156250) -[2618632.037] {Default Queue} wl_pointer#1225.motion(187310266, 18.19921875, 59.60156250) -[2618632.042] {Default Queue} wl_pointer#1257.motion(187310266, 18.19921875, 59.60156250) -[2618632.046] {Default Queue} wl_pointer#1289.motion(187310266, 18.19921875, 59.60156250) -[2618632.050] {Default Queue} wl_pointer#1321.motion(187310266, 18.19921875, 59.60156250) -[2618632.054] {Default Queue} wl_pointer#1353.motion(187310266, 18.19921875, 59.60156250) -[2618632.059] {Default Queue} wl_pointer#1385.motion(187310266, 18.19921875, 59.60156250) -[2618632.063] {Default Queue} wl_pointer#1417.motion(187310266, 18.19921875, 59.60156250) -[2618632.067] {Default Queue} wl_pointer#1449.motion(187310266, 18.19921875, 59.60156250) -[2618632.071] {Default Queue} wl_pointer#1481.motion(187310266, 18.19921875, 59.60156250) -[2618632.076] {Default Queue} wl_pointer#1513.motion(187310266, 18.19921875, 59.60156250) -[2618632.080] {Default Queue} wl_pointer#1545.motion(187310266, 18.19921875, 59.60156250) -[2618632.084] {Default Queue} wl_pointer#1577.motion(187310266, 18.19921875, 59.60156250) -[2618632.089] {Default Queue} wl_pointer#1609.motion(187310266, 18.19921875, 59.60156250) -[2618632.093] {Default Queue} wl_pointer#1641.motion(187310266, 18.19921875, 59.60156250) -[2618632.097] {Default Queue} wl_pointer#1673.motion(187310266, 18.19921875, 59.60156250) -[2618632.102] {Default Queue} wl_pointer#1705.motion(187310266, 18.19921875, 59.60156250) -[2618632.106] {Default Queue} wl_pointer#1737.motion(187310266, 18.19921875, 59.60156250) -[2618632.110] {Default Queue} wl_pointer#1762.motion(187310266, 18.19921875, 59.60156250) -[2618632.114] {Default Queue} wl_pointer#1801.motion(187310266, 18.19921875, 59.60156250) -[2618632.119] {Default Queue} wl_pointer#1833.motion(187310266, 18.19921875, 59.60156250) -[2618632.123] {Default Queue} wl_pointer#1865.motion(187310266, 18.19921875, 59.60156250) -[2618632.127] {Default Queue} wl_pointer#1897.motion(187310266, 18.19921875, 59.60156250) -[2618632.132] {Default Queue} wl_pointer#1929.motion(187310266, 18.19921875, 59.60156250) -[2618632.136] {Default Queue} wl_pointer#1961.motion(187310266, 18.19921875, 59.60156250) -[2618632.140] {Default Queue} wl_pointer#1993.motion(187310266, 18.19921875, 59.60156250) -[2618632.144] {Default Queue} wl_pointer#2025.motion(187310266, 18.19921875, 59.60156250) -[2618632.149] {Default Queue} wl_pointer#2057.motion(187310266, 18.19921875, 59.60156250) -[2618632.153] {Default Queue} wl_pointer#2089.motion(187310266, 18.19921875, 59.60156250) -[2618632.157] {Default Queue} wl_pointer#2121.motion(187310266, 18.19921875, 59.60156250) -[2618632.161] {Default Queue} wl_pointer#2153.motion(187310266, 18.19921875, 59.60156250) -[2618632.166] {Default Queue} wl_pointer#2185.motion(187310266, 18.19921875, 59.60156250) -[2618632.173] {Default Queue} wl_pointer#2217.motion(187310266, 18.19921875, 59.60156250) -[2618632.179] {Default Queue} wl_pointer#2249.motion(187310266, 18.19921875, 59.60156250) -[2618632.183] {Default Queue} wl_pointer#2281.motion(187310266, 18.19921875, 59.60156250) -[2618632.187] {Default Queue} wl_pointer#2313.motion(187310266, 18.19921875, 59.60156250) -[2618632.192] {Default Queue} wl_pointer#2345.motion(187310266, 18.19921875, 59.60156250) -[2618632.196] {Default Queue} wl_pointer#2377.motion(187310266, 18.19921875, 59.60156250) -[2618632.200] {Default Queue} wl_pointer#2409.motion(187310266, 18.19921875, 59.60156250) -[2618632.205] {Default Queue} wl_pointer#2441.motion(187310266, 18.19921875, 59.60156250) -[2618632.209] {Default Queue} wl_pointer#2473.motion(187310266, 18.19921875, 59.60156250) -[2618632.213] {Default Queue} wl_pointer#2498.motion(187310266, 18.19921875, 59.60156250) -[2618632.226] {Default Queue} -> wl_buffer#3684.destroy() -[2618632.231] {Default Queue} -> wl_buffer#3681.destroy() -[2618632.235] {Default Queue} -> wl_shm_pool#3682.destroy() -[2618632.239] {Default Queue} -> wl_shm_pool#3679.destroy() -[2618632.244] {Default Queue} -> wl_surface#3671.destroy() -[2618632.283] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3292, fd 575, 640) -[2618632.294] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 578, 640) -[2618632.299] {Default Queue} -> wl_shm_pool#3292.create_buffer(new id wl_buffer#3294, 0, 10, 16, 40, 0) -[2618632.303] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) -[2618632.311] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3484) -[2618632.315] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) -[2618632.319] {Default Queue} -> wl_surface#3484.commit() -[2618632.325] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) -[2618632.329] {Default Queue} -> wl_surface#3484.commit() -[2618632.333] {Default Queue} wl_pointer#2537.motion(187310266, 18.19921875, 59.60156250) -[2618632.338] {Default Queue} wl_pointer#2569.motion(187310266, 18.19921875, 59.60156250) -[2618632.342] {Default Queue} wl_pointer#2601.motion(187310266, 18.19921875, 59.60156250) -[2618632.346] {Default Queue} wl_pointer#2633.motion(187310266, 18.19921875, 59.60156250) -[2618632.350] {Default Queue} wl_pointer#2665.motion(187310266, 18.19921875, 59.60156250) -[2618632.355] {Default Queue} wl_pointer#2697.motion(187310266, 18.19921875, 59.60156250) -[2618632.359] {Default Queue} wl_pointer#2729.motion(187310266, 18.19921875, 59.60156250) -[2618632.363] {Default Queue} wl_pointer#2761.motion(187310266, 18.19921875, 59.60156250) -[2618632.368] {Default Queue} wl_pointer#2793.motion(187310266, 18.19921875, 59.60156250) -[2618632.372] {Default Queue} wl_pointer#2825.motion(187310266, 18.19921875, 59.60156250) -[2618632.377] {Default Queue} wl_pointer#2857.motion(187310266, 18.19921875, 59.60156250) -[2618632.381] {Default Queue} wl_pointer#2889.motion(187310266, 18.19921875, 59.60156250) -[2618632.385] {Default Queue} wl_pointer#2921.motion(187310266, 18.19921875, 59.60156250) -[2618632.389] {Default Queue} wl_pointer#2953.motion(187310266, 18.19921875, 59.60156250) -[2618632.394] {Default Queue} wl_pointer#2985.motion(187310266, 18.19921875, 59.60156250) -[2618632.398] {Default Queue} wl_pointer#3017.motion(187310266, 18.19921875, 59.60156250) -[2618632.402] {Default Queue} wl_pointer#3049.motion(187310266, 18.19921875, 59.60156250) -[2618632.406] {Default Queue} wl_pointer#3081.motion(187310266, 18.19921875, 59.60156250) -[2618632.411] {Default Queue} wl_pointer#3113.motion(187310266, 18.19921875, 59.60156250) -[2618632.415] {Default Queue} wl_pointer#3145.motion(187310266, 18.19921875, 59.60156250) -[2618632.419] {Default Queue} wl_pointer#3177.motion(187310266, 18.19921875, 59.60156250) -[2618632.424] {Default Queue} wl_pointer#3209.motion(187310266, 18.19921875, 59.60156250) -[2618632.428] {Default Queue} wl_pointer#3241.motion(187310266, 18.19921875, 59.60156250) -[2618632.432] {Default Queue} wl_pointer#3273.motion(187310266, 18.19921875, 59.60156250) -[2618632.440] {Default Queue} wl_pointer#3305.motion(187310266, 18.19921875, 59.60156250) -[2618632.446] {Default Queue} wl_pointer#3337.motion(187310266, 18.19921875, 59.60156250) -[2618632.451] {Default Queue} wl_pointer#3369.motion(187310266, 18.19921875, 59.60156250) -[2618632.455] {Default Queue} wl_pointer#3401.motion(187310266, 18.19921875, 59.60156250) -[2618632.459] {Default Queue} wl_pointer#3433.motion(187310266, 18.19921875, 59.60156250) -[2618632.464] {Default Queue} wl_pointer#3465.motion(187310266, 18.19921875, 59.60156250) -[2618632.468] {Default Queue} wl_pointer#3497.motion(187310266, 18.19921875, 59.60156250) -[2618632.472] {Default Queue} wl_pointer#3529.motion(187310266, 18.19921875, 59.60156250) -[2618632.477] {Default Queue} wl_pointer#3561.motion(187310266, 18.19921875, 59.60156250) -[2618632.481] {Default Queue} wl_pointer#3593.motion(187310266, 18.19921875, 59.60156250) -[2618632.485] {Default Queue} wl_pointer#3625.motion(187310266, 18.19921875, 59.60156250) -[2618632.490] {Default Queue} wl_pointer#3657.motion(187310266, 18.19921875, 59.60156250) -[2618632.494] {Default Queue} wl_pointer#3695.motion(187310266, 18.19921875, 59.60156250) -[2618632.498] {Default Queue} wl_pointer#24.motion(187310266, 19.00000000, 58.39843750) -[2618632.502] {Default Queue} wl_pointer#81.motion(187310266, 19.00000000, 58.39843750) -[2618632.508] {Default Queue} wl_pointer#105.motion(187310266, 19.00000000, 58.39843750) -[2618632.512] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618632.516] {Default Queue} wl_pointer#137.motion(187310266, 19.00000000, 58.39843750) -[2618632.521] {Default Queue} wl_pointer#169.motion(187310266, 19.00000000, 58.39843750) -[2618632.525] {Default Queue} wl_pointer#201.motion(187310266, 19.00000000, 58.39843750) -[2618632.529] {Default Queue} wl_pointer#233.motion(187310266, 19.00000000, 58.39843750) -[2618632.534] {Default Queue} wl_pointer#265.motion(187310266, 19.00000000, 58.39843750) -[2618632.538] {Default Queue} wl_pointer#297.motion(187310266, 19.00000000, 58.39843750) -[2618632.542] {Default Queue} wl_pointer#329.motion(187310266, 19.00000000, 58.39843750) -[2618632.546] {Default Queue} wl_pointer#361.motion(187310266, 19.00000000, 58.39843750) -[2618632.551] {Default Queue} wl_pointer#393.motion(187310266, 19.00000000, 58.39843750) -[2618632.555] {Default Queue} wl_pointer#425.motion(187310266, 19.00000000, 58.39843750) -[2618632.559] {Default Queue} wl_pointer#457.motion(187310266, 19.00000000, 58.39843750) -[2618632.563] {Default Queue} wl_pointer#489.motion(187310266, 19.00000000, 58.39843750) -[2618632.568] {Default Queue} wl_pointer#521.motion(187310266, 19.00000000, 58.39843750) -[2618632.572] {Default Queue} wl_pointer#553.motion(187310266, 19.00000000, 58.39843750) -[2618632.576] {Default Queue} wl_pointer#585.motion(187310266, 19.00000000, 58.39843750) -[2618632.580] {Default Queue} wl_pointer#617.motion(187310266, 19.00000000, 58.39843750) -[2618632.585] {Default Queue} wl_pointer#649.motion(187310266, 19.00000000, 58.39843750) -[2618632.589] {Default Queue} wl_pointer#681.motion(187310266, 19.00000000, 58.39843750) -[2618632.593] {Default Queue} wl_pointer#713.motion(187310266, 19.00000000, 58.39843750) -[2618632.597] {Default Queue} wl_pointer#745.motion(187310266, 19.00000000, 58.39843750) -[2618632.602] {Default Queue} wl_pointer#777.motion(187310266, 19.00000000, 58.39843750) -[2618632.606] {Default Queue} wl_pointer#809.motion(187310266, 19.00000000, 58.39843750) -[2618632.613] {Default Queue} wl_pointer#841.motion(187310266, 19.00000000, 58.39843750) -[2618632.617] {Default Queue} wl_pointer#873.motion(187310266, 19.00000000, 58.39843750) -[2618632.622] {Default Queue} wl_pointer#905.motion(187310266, 19.00000000, 58.39843750) -[2618632.626] {Default Queue} wl_pointer#937.motion(187310266, 19.00000000, 58.39843750) -[2618632.630] {Default Queue} wl_pointer#969.motion(187310266, 19.00000000, 58.39843750) -[2618632.635] {Default Queue} wl_pointer#1001.motion(187310266, 19.00000000, 58.39843750) -[2618632.639] {Default Queue} wl_pointer#1033.motion(187310266, 19.00000000, 58.39843750) -[2618632.647] {Default Queue} wl_pointer#1065.motion(187310266, 19.00000000, 58.39843750) -[2618632.652] {Default Queue} wl_pointer#1097.motion(187310266, 19.00000000, 58.39843750) -[2618632.657] {Default Queue} wl_pointer#1129.motion(187310266, 19.00000000, 58.39843750) -[2618632.661] {Default Queue} wl_pointer#1161.motion(187310266, 19.00000000, 58.39843750) -[2618632.665] {Default Queue} wl_pointer#1193.motion(187310266, 19.00000000, 58.39843750) -[2618632.669] {Default Queue} wl_pointer#1225.motion(187310266, 19.00000000, 58.39843750) -[2618632.674] {Default Queue} wl_pointer#1257.motion(187310266, 19.00000000, 58.39843750) -[2618632.678] {Default Queue} wl_pointer#1289.motion(187310266, 19.00000000, 58.39843750) -[2618632.682] {Default Queue} wl_pointer#1321.motion(187310266, 19.00000000, 58.39843750) -[2618632.686] {Default Queue} wl_pointer#1353.motion(187310266, 19.00000000, 58.39843750) -[2618632.691] {Default Queue} wl_pointer#1385.motion(187310266, 19.00000000, 58.39843750) -[2618632.695] {Default Queue} wl_pointer#1417.motion(187310266, 19.00000000, 58.39843750) -[2618632.699] {Default Queue} wl_pointer#1449.motion(187310266, 19.00000000, 58.39843750) -[2618632.703] {Default Queue} wl_pointer#1481.motion(187310266, 19.00000000, 58.39843750) -[2618632.708] {Default Queue} wl_pointer#1513.motion(187310266, 19.00000000, 58.39843750) -[2618632.712] {Default Queue} wl_pointer#1545.motion(187310266, 19.00000000, 58.39843750) -[2618632.716] {Default Queue} wl_pointer#1577.motion(187310266, 19.00000000, 58.39843750) -[2618632.720] {Default Queue} wl_pointer#1609.motion(187310266, 19.00000000, 58.39843750) -[2618632.725] {Default Queue} wl_pointer#1641.motion(187310266, 19.00000000, 58.39843750) -[2618632.729] {Default Queue} wl_pointer#1673.motion(187310266, 19.00000000, 58.39843750) -[2618632.733] {Default Queue} wl_pointer#1705.motion(187310266, 19.00000000, 58.39843750) -[2618632.737] {Default Queue} wl_pointer#1737.motion(187310266, 19.00000000, 58.39843750) -[2618632.742] {Default Queue} wl_pointer#1762.motion(187310266, 19.00000000, 58.39843750) -[2618632.746] {Default Queue} wl_pointer#1801.motion(187310266, 19.00000000, 58.39843750) -[2618632.750] {Default Queue} wl_pointer#1833.motion(187310266, 19.00000000, 58.39843750) -[2618632.755] {Default Queue} wl_pointer#1865.motion(187310266, 19.00000000, 58.39843750) -[2618632.759] {Default Queue} wl_pointer#1897.motion(187310266, 19.00000000, 58.39843750) -[2618632.763] {Default Queue} wl_pointer#1929.motion(187310266, 19.00000000, 58.39843750) -[2618632.767] {Default Queue} wl_pointer#1961.motion(187310266, 19.00000000, 58.39843750) -[2618632.772] {Default Queue} wl_pointer#1993.motion(187310266, 19.00000000, 58.39843750) -[2618632.776] {Default Queue} wl_pointer#2025.motion(187310266, 19.00000000, 58.39843750) -[2618632.780] {Default Queue} wl_pointer#2057.motion(187310266, 19.00000000, 58.39843750) -[2618632.784] {Default Queue} wl_pointer#2089.motion(187310266, 19.00000000, 58.39843750) -[2618632.789] {Default Queue} wl_pointer#2121.motion(187310266, 19.00000000, 58.39843750) -[2618632.793] {Default Queue} wl_pointer#2153.motion(187310266, 19.00000000, 58.39843750) -[2618632.797] {Default Queue} wl_pointer#2185.motion(187310266, 19.00000000, 58.39843750) -[2618632.801] {Default Queue} wl_pointer#2217.motion(187310266, 19.00000000, 58.39843750) -[2618632.806] {Default Queue} wl_pointer#2249.motion(187310266, 19.00000000, 58.39843750) -[2618632.810] {Default Queue} wl_pointer#2281.motion(187310266, 19.00000000, 58.39843750) -[2618632.814] {Default Queue} wl_pointer#2313.motion(187310266, 19.00000000, 58.39843750) -[2618632.819] {Default Queue} wl_pointer#2345.motion(187310266, 19.00000000, 58.39843750) -[2618632.823] {Default Queue} wl_pointer#2377.motion(187310266, 19.00000000, 58.39843750) -[2618632.827] {Default Queue} wl_pointer#2409.motion(187310266, 19.00000000, 58.39843750) -[2618632.832] {Default Queue} wl_pointer#2441.motion(187310266, 19.00000000, 58.39843750) -[2618632.836] {Default Queue} wl_pointer#2473.motion(187310266, 19.00000000, 58.39843750) -[2618632.846] {Default Queue} wl_pointer#2498.motion(187310266, 19.00000000, 58.39843750) -[2618632.857] {Default Queue} -> wl_buffer#3294.destroy() -[2618632.867] {Default Queue} -> wl_buffer#3293.destroy() -[2618632.871] {Default Queue} -> wl_shm_pool#3292.destroy() -[2618632.875] {Default Queue} -> wl_shm_pool#3291.destroy() -[2618632.880] {Default Queue} -> wl_surface#3484.destroy() -[2618632.918] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3452, fd 581, 640) -[2618632.923] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3517, fd 582, 640) -[2618632.928] {Default Queue} -> wl_shm_pool#3452.create_buffer(new id wl_buffer#3454, 0, 10, 16, 40, 0) -[2618632.932] {Default Queue} -> wl_shm_pool#3517.create_buffer(new id wl_buffer#3451, 0, 10, 16, 40, 0) -[2618632.939] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3518) -[2618632.943] {Default Queue} -> wl_surface#3518.attach(wl_buffer#3454, 0, 0) -[2618632.947] {Default Queue} -> wl_surface#3518.commit() -[2618632.953] {Default Queue} -> wl_surface#3518.attach(wl_buffer#3454, 0, 0) -[2618632.957] {Default Queue} -> wl_surface#3518.commit() -[2618632.961] {Default Queue} wl_pointer#2537.motion(187310266, 19.00000000, 58.39843750) -[2618632.969] {Default Queue} wl_pointer#2569.motion(187310266, 19.00000000, 58.39843750) -[2618632.973] {Default Queue} wl_pointer#2601.motion(187310266, 19.00000000, 58.39843750) -[2618632.977] {Default Queue} wl_pointer#2633.motion(187310266, 19.00000000, 58.39843750) -[2618632.982] {Default Queue} wl_pointer#2665.motion(187310266, 19.00000000, 58.39843750) -[2618632.986] {Default Queue} wl_pointer#2697.motion(187310266, 19.00000000, 58.39843750) -[2618632.990] {Default Queue} wl_pointer#2729.motion(187310266, 19.00000000, 58.39843750) -[2618632.994] {Default Queue} wl_pointer#2761.motion(187310266, 19.00000000, 58.39843750) -[2618632.999] {Default Queue} wl_pointer#2793.motion(187310266, 19.00000000, 58.39843750) -[2618633.003] {Default Queue} wl_pointer#2825.motion(187310266, 19.00000000, 58.39843750) -[2618633.007] {Default Queue} wl_pointer#2857.motion(187310266, 19.00000000, 58.39843750) -[2618633.012] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) -[2618633.016] {Default Queue} -> wl_surface#1415.commit() -[2618634.083] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) -[2618634.093] {Default Queue} -> wl_surface#1415.commit() -[2618634.101] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) -[2618634.105] {Default Queue} -> wl_surface#1415.commit() -[2618634.112] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) -[2618634.116] {Default Queue} -> wl_surface#1255.commit() -[2618635.177] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) -[2618635.182] {Default Queue} -> wl_surface#1255.commit() -[2618635.192] {Default Queue} -> wl_region#1279.subtract(0, 0, 19, 48) -[2618635.196] {Default Queue} -> wl_region#1279.add(-20, -49, 19, 48) -[2618635.201] {Default Queue} -> wl_surface#1255.set_opaque_region(wl_region#1280) -[2618635.205] {Default Queue} -> wl_surface#1255.set_input_region(wl_region#1279) -[2618635.211] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) -[2618635.215] {Default Queue} -> wl_surface#1255.commit() -[2618635.219] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) -[2618635.223] {Default Queue} -> wl_surface#1255.commit() -[2618635.229] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) -[2618635.233] {Default Queue} -> wl_surface#1255.commit() -[2618635.238] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) -[2618635.243] {Default Queue} -> wl_surface#1031.commit() -[2618636.304] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) -[2618636.309] {Default Queue} -> wl_surface#1031.commit() -[2618636.316] {Default Queue} -> wl_region#1055.subtract(0, 0, 19, 48) -[2618636.321] {Default Queue} -> wl_region#1055.add(-20, -49, 19, 48) -[2618636.325] {Default Queue} -> wl_surface#1031.set_opaque_region(wl_region#1056) -[2618636.329] {Default Queue} -> wl_surface#1031.set_input_region(wl_region#1055) -[2618636.338] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) -[2618636.345] {Default Queue} -> wl_surface#1031.commit() -[2618636.349] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) -[2618636.353] {Default Queue} -> wl_surface#1031.commit() -[2618636.374] {Display Queue} wl_display#1.delete_id(3515) -[2618636.380] {Display Queue} wl_display#1.delete_id(3516) -[2618636.384] {Display Queue} wl_display#1.delete_id(3485) -[2618636.388] {Display Queue} wl_display#1.delete_id(3486) -[2618636.392] {Display Queue} wl_display#1.delete_id(3483) -[2618636.396] {Display Queue} wl_display#1.delete_id(91) -[2618636.400] {Display Queue} wl_display#1.delete_id(94) -[2618636.404] {Display Queue} wl_display#1.delete_id(3683) -[2618636.408] {Display Queue} wl_display#1.delete_id(92) -[2618636.412] {Display Queue} wl_display#1.delete_id(93) -[2618636.416] {Display Queue} wl_display#1.delete_id(3677) -[2618636.420] {Display Queue} wl_display#1.delete_id(3678) -[2618636.424] {Display Queue} wl_display#1.delete_id(3675) -[2618636.428] {Display Queue} wl_display#1.delete_id(3676) -[2618636.432] {Display Queue} wl_display#1.delete_id(3674) -[2618636.436] {Default Queue} wl_pointer#2889.motion(187310266, 19.00000000, 58.39843750) -[2618636.440] {Default Queue} wl_pointer#2921.motion(187310266, 19.00000000, 58.39843750) -[2618636.445] {Default Queue} wl_pointer#2953.motion(187310266, 19.00000000, 58.39843750) -[2618636.449] {Default Queue} wl_pointer#2985.motion(187310266, 19.00000000, 58.39843750) -[2618636.453] {Default Queue} wl_pointer#3017.motion(187310266, 19.00000000, 58.39843750) -[2618636.458] {Default Queue} wl_pointer#3049.motion(187310266, 19.00000000, 58.39843750) -[2618636.462] {Default Queue} wl_pointer#3081.motion(187310266, 19.00000000, 58.39843750) -[2618636.466] {Default Queue} wl_pointer#3113.motion(187310266, 19.00000000, 58.39843750) -[2618636.471] {Default Queue} wl_pointer#3145.motion(187310266, 19.00000000, 58.39843750) -[2618636.475] {Default Queue} wl_pointer#3177.motion(187310266, 19.00000000, 58.39843750) -[2618636.479] {Default Queue} wl_pointer#3209.motion(187310266, 19.00000000, 58.39843750) -[2618636.484] {Default Queue} wl_pointer#3241.motion(187310266, 19.00000000, 58.39843750) -[2618636.488] {Default Queue} wl_pointer#3273.motion(187310266, 19.00000000, 58.39843750) -[2618636.492] {Default Queue} wl_pointer#3305.motion(187310266, 19.00000000, 58.39843750) -[2618636.497] {Default Queue} wl_pointer#3337.motion(187310266, 19.00000000, 58.39843750) -[2618636.501] {Default Queue} wl_pointer#3369.motion(187310266, 19.00000000, 58.39843750) -[2618636.505] {Default Queue} wl_pointer#3401.motion(187310266, 19.00000000, 58.39843750) -[2618636.510] {Default Queue} wl_pointer#3433.motion(187310266, 19.00000000, 58.39843750) -[2618636.514] {Default Queue} wl_pointer#3465.motion(187310266, 19.00000000, 58.39843750) -[2618636.519] {Default Queue} wl_pointer#3497.motion(187310266, 19.00000000, 58.39843750) -[2618636.523] {Default Queue} wl_pointer#3529.motion(187310266, 19.00000000, 58.39843750) -[2618636.527] {Default Queue} wl_pointer#3561.motion(187310266, 19.00000000, 58.39843750) -[2618636.532] {Default Queue} wl_pointer#3593.motion(187310266, 19.00000000, 58.39843750) -[2618636.536] {Default Queue} wl_pointer#3625.motion(187310266, 19.00000000, 58.39843750) -[2618636.540] {Default Queue} wl_pointer#3657.motion(187310266, 19.00000000, 58.39843750) -[2618636.545] {Default Queue} wl_pointer#3695.motion(187310266, 19.00000000, 58.39843750) -[2618636.549] {Default Queue} wl_pointer#24.motion(187310266, 19.80078125, 56.80078125) -[2618636.553] {Default Queue} wl_pointer#81.motion(187310266, 19.80078125, 56.80078125) -[2618636.558] {Default Queue} wl_pointer#105.motion(187310266, 19.80078125, 56.80078125) -[2618636.563] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618636.567] {Default Queue} wl_pointer#137.motion(187310266, 19.80078125, 56.80078125) -[2618636.571] {Default Queue} wl_pointer#169.motion(187310266, 19.80078125, 56.80078125) -[2618636.578] {Default Queue} wl_pointer#201.motion(187310266, 19.80078125, 56.80078125) -[2618636.584] {Default Queue} wl_pointer#233.motion(187310266, 19.80078125, 56.80078125) -[2618636.588] {Default Queue} wl_pointer#265.motion(187310266, 19.80078125, 56.80078125) -[2618636.593] {Default Queue} wl_pointer#297.motion(187310266, 19.80078125, 56.80078125) -[2618636.597] {Default Queue} wl_pointer#329.motion(187310266, 19.80078125, 56.80078125) -[2618636.601] {Default Queue} wl_pointer#361.motion(187310266, 19.80078125, 56.80078125) -[2618636.606] {Default Queue} wl_pointer#393.motion(187310266, 19.80078125, 56.80078125) -[2618636.610] {Default Queue} wl_pointer#425.motion(187310266, 19.80078125, 56.80078125) -[2618636.614] {Default Queue} wl_pointer#457.motion(187310266, 19.80078125, 56.80078125) -[2618636.618] {Default Queue} wl_pointer#489.motion(187310266, 19.80078125, 56.80078125) -[2618636.623] {Default Queue} wl_pointer#521.motion(187310266, 19.80078125, 56.80078125) -[2618636.627] {Default Queue} wl_pointer#553.motion(187310266, 19.80078125, 56.80078125) -[2618636.631] {Default Queue} wl_pointer#585.motion(187310266, 19.80078125, 56.80078125) -[2618636.636] {Default Queue} wl_pointer#617.motion(187310266, 19.80078125, 56.80078125) -[2618636.640] {Default Queue} wl_pointer#649.motion(187310266, 19.80078125, 56.80078125) -[2618636.644] {Default Queue} wl_pointer#681.motion(187310266, 19.80078125, 56.80078125) -[2618636.648] {Default Queue} wl_pointer#713.motion(187310266, 19.80078125, 56.80078125) -[2618636.653] {Default Queue} wl_pointer#745.motion(187310266, 19.80078125, 56.80078125) -[2618636.657] {Default Queue} wl_pointer#777.motion(187310266, 19.80078125, 56.80078125) -[2618636.661] {Default Queue} wl_pointer#809.motion(187310266, 19.80078125, 56.80078125) -[2618636.666] {Default Queue} wl_pointer#841.motion(187310266, 19.80078125, 56.80078125) -[2618636.670] {Default Queue} wl_pointer#873.motion(187310266, 19.80078125, 56.80078125) -[2618636.674] {Default Queue} wl_pointer#905.motion(187310266, 19.80078125, 56.80078125) -[2618636.678] {Default Queue} wl_pointer#937.motion(187310266, 19.80078125, 56.80078125) -[2618636.683] {Default Queue} wl_pointer#969.motion(187310266, 19.80078125, 56.80078125) -[2618636.687] {Default Queue} wl_pointer#1001.motion(187310266, 19.80078125, 56.80078125) -[2618636.691] {Default Queue} wl_pointer#1033.motion(187310266, 19.80078125, 56.80078125) -[2618636.695] {Default Queue} wl_pointer#1065.motion(187310266, 19.80078125, 56.80078125) -[2618636.700] {Default Queue} wl_pointer#1097.motion(187310266, 19.80078125, 56.80078125) -[2618636.704] {Default Queue} wl_pointer#1129.motion(187310266, 19.80078125, 56.80078125) -[2618636.708] {Default Queue} wl_pointer#1161.motion(187310266, 19.80078125, 56.80078125) -[2618636.713] {Default Queue} wl_pointer#1193.motion(187310266, 19.80078125, 56.80078125) -[2618636.717] {Default Queue} wl_pointer#1225.motion(187310266, 19.80078125, 56.80078125) -[2618636.721] {Default Queue} wl_pointer#1257.motion(187310266, 19.80078125, 56.80078125) -[2618636.726] {Default Queue} wl_pointer#1289.motion(187310266, 19.80078125, 56.80078125) -[2618636.730] {Default Queue} wl_pointer#1321.motion(187310266, 19.80078125, 56.80078125) -[2618636.734] {Default Queue} wl_pointer#1353.motion(187310266, 19.80078125, 56.80078125) -[2618636.738] {Default Queue} wl_pointer#1385.motion(187310266, 19.80078125, 56.80078125) -[2618636.743] {Default Queue} wl_pointer#1417.motion(187310266, 19.80078125, 56.80078125) -[2618636.747] {Default Queue} wl_pointer#1449.motion(187310266, 19.80078125, 56.80078125) -[2618636.751] {Default Queue} wl_pointer#1481.motion(187310266, 19.80078125, 56.80078125) -[2618636.756] {Default Queue} wl_pointer#1513.motion(187310266, 19.80078125, 56.80078125) -[2618636.760] {Default Queue} wl_pointer#1545.motion(187310266, 19.80078125, 56.80078125) -[2618636.764] {Default Queue} wl_pointer#1577.motion(187310266, 19.80078125, 56.80078125) -[2618636.769] {Default Queue} wl_pointer#1609.motion(187310266, 19.80078125, 56.80078125) -[2618636.773] {Default Queue} wl_pointer#1641.motion(187310266, 19.80078125, 56.80078125) -[2618636.780] {Default Queue} wl_pointer#1673.motion(187310266, 19.80078125, 56.80078125) -[2618636.785] {Default Queue} wl_pointer#1705.motion(187310266, 19.80078125, 56.80078125) -[2618636.790] {Default Queue} wl_pointer#1737.motion(187310266, 19.80078125, 56.80078125) -[2618636.794] {Default Queue} wl_pointer#1762.motion(187310266, 19.80078125, 56.80078125) -[2618636.798] {Default Queue} wl_pointer#1801.motion(187310266, 19.80078125, 56.80078125) -[2618636.803] {Default Queue} wl_pointer#1833.motion(187310266, 19.80078125, 56.80078125) -[2618636.807] {Default Queue} wl_pointer#1865.motion(187310266, 19.80078125, 56.80078125) -[2618636.811] {Default Queue} wl_pointer#1897.motion(187310266, 19.80078125, 56.80078125) -[2618636.815] {Default Queue} wl_pointer#1929.motion(187310266, 19.80078125, 56.80078125) -[2618636.820] {Default Queue} wl_pointer#1961.motion(187310266, 19.80078125, 56.80078125) -[2618636.824] {Default Queue} wl_pointer#1993.motion(187310266, 19.80078125, 56.80078125) -[2618636.828] {Default Queue} wl_pointer#2025.motion(187310266, 19.80078125, 56.80078125) -[2618636.833] {Default Queue} wl_pointer#2057.motion(187310266, 19.80078125, 56.80078125) -[2618636.837] {Default Queue} wl_pointer#2089.motion(187310266, 19.80078125, 56.80078125) -[2618636.841] {Default Queue} wl_pointer#2121.motion(187310266, 19.80078125, 56.80078125) -[2618636.845] {Default Queue} wl_pointer#2153.motion(187310266, 19.80078125, 56.80078125) -[2618636.850] {Default Queue} wl_pointer#2185.motion(187310266, 19.80078125, 56.80078125) -[2618636.854] {Default Queue} wl_pointer#2217.motion(187310266, 19.80078125, 56.80078125) -[2618636.858] {Default Queue} wl_pointer#2249.motion(187310266, 19.80078125, 56.80078125) -[2618636.867] {Default Queue} wl_pointer#2281.motion(187310266, 19.80078125, 56.80078125) -[2618636.871] {Default Queue} wl_pointer#2313.motion(187310266, 19.80078125, 56.80078125) -[2618636.876] {Default Queue} wl_pointer#2345.motion(187310266, 19.80078125, 56.80078125) -[2618636.880] {Default Queue} wl_pointer#2377.motion(187310266, 19.80078125, 56.80078125) -[2618636.884] {Default Queue} wl_pointer#2409.motion(187310266, 19.80078125, 56.80078125) -[2618636.889] {Default Queue} wl_pointer#2441.motion(187310266, 19.80078125, 56.80078125) -[2618636.893] {Default Queue} wl_pointer#2473.motion(187310266, 19.80078125, 56.80078125) -[2618636.897] {Default Queue} wl_pointer#2498.motion(187310266, 19.80078125, 56.80078125) -[2618636.909] {Default Queue} -> wl_buffer#3454.destroy() -[2618636.914] {Default Queue} -> wl_buffer#3451.destroy() -[2618636.918] {Default Queue} -> wl_shm_pool#3452.destroy() -[2618636.922] {Default Queue} -> wl_shm_pool#3517.destroy() -[2618636.927] {Default Queue} -> wl_surface#3518.destroy() -[2618636.966] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3674, fd 575, 640) -[2618636.972] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3676, fd 578, 640) -[2618636.976] {Default Queue} -> wl_shm_pool#3674.create_buffer(new id wl_buffer#3675, 0, 10, 16, 40, 0) -[2618636.981] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 10, 16, 40, 0) -[2618636.988] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3677) -[2618636.992] {Default Queue} -> wl_surface#3677.attach(wl_buffer#3675, 0, 0) -[2618636.997] {Default Queue} -> wl_surface#3677.commit() -[2618637.002] {Default Queue} -> wl_surface#3677.attach(wl_buffer#3675, 0, 0) -[2618637.006] {Default Queue} -> wl_surface#3677.commit() -[2618637.011] {Default Queue} wl_pointer#2537.motion(187310266, 19.80078125, 56.80078125) -[2618637.015] {Default Queue} wl_pointer#2569.motion(187310266, 19.80078125, 56.80078125) -[2618637.019] {Default Queue} wl_pointer#2601.motion(187310266, 19.80078125, 56.80078125) -[2618637.024] {Default Queue} wl_pointer#2633.motion(187310266, 19.80078125, 56.80078125) -[2618637.028] {Default Queue} wl_pointer#2665.motion(187310266, 19.80078125, 56.80078125) -[2618637.032] {Default Queue} wl_pointer#2697.motion(187310266, 19.80078125, 56.80078125) -[2618637.037] {Default Queue} wl_pointer#2729.motion(187310266, 19.80078125, 56.80078125) -[2618637.044] {Default Queue} wl_pointer#2761.motion(187310266, 19.80078125, 56.80078125) -[2618637.050] {Default Queue} wl_pointer#2793.motion(187310266, 19.80078125, 56.80078125) -[2618637.055] {Default Queue} wl_pointer#2825.motion(187310266, 19.80078125, 56.80078125) -[2618637.059] {Default Queue} wl_pointer#2857.motion(187310266, 19.80078125, 56.80078125) -[2618637.064] {Default Queue} wl_pointer#2889.motion(187310266, 19.80078125, 56.80078125) -[2618637.068] {Default Queue} wl_pointer#2921.motion(187310266, 19.80078125, 56.80078125) -[2618637.072] {Default Queue} wl_pointer#2953.motion(187310266, 19.80078125, 56.80078125) -[2618637.077] {Default Queue} wl_pointer#2985.motion(187310266, 19.80078125, 56.80078125) -[2618637.081] {Default Queue} wl_pointer#3017.motion(187310266, 19.80078125, 56.80078125) -[2618637.085] {Default Queue} wl_pointer#3049.motion(187310266, 19.80078125, 56.80078125) -[2618637.089] {Default Queue} wl_pointer#3081.motion(187310266, 19.80078125, 56.80078125) -[2618637.094] {Default Queue} wl_pointer#3113.motion(187310266, 19.80078125, 56.80078125) -[2618637.098] {Default Queue} wl_pointer#3145.motion(187310266, 19.80078125, 56.80078125) -[2618637.102] {Default Queue} wl_pointer#3177.motion(187310266, 19.80078125, 56.80078125) -[2618637.106] {Default Queue} wl_pointer#3209.motion(187310266, 19.80078125, 56.80078125) -[2618637.111] {Default Queue} wl_pointer#3241.motion(187310266, 19.80078125, 56.80078125) -[2618637.115] {Default Queue} wl_pointer#3273.motion(187310266, 19.80078125, 56.80078125) -[2618637.120] {Default Queue} wl_pointer#3305.motion(187310266, 19.80078125, 56.80078125) -[2618637.124] {Default Queue} wl_pointer#3337.motion(187310266, 19.80078125, 56.80078125) -[2618637.128] {Default Queue} wl_pointer#3369.motion(187310266, 19.80078125, 56.80078125) -[2618637.132] {Default Queue} wl_pointer#3401.motion(187310266, 19.80078125, 56.80078125) -[2618637.137] {Default Queue} wl_pointer#3433.motion(187310266, 19.80078125, 56.80078125) -[2618637.141] {Default Queue} wl_pointer#3465.motion(187310266, 19.80078125, 56.80078125) -[2618637.146] {Default Queue} wl_pointer#3497.motion(187310266, 19.80078125, 56.80078125) -[2618637.150] {Default Queue} wl_pointer#3529.motion(187310266, 19.80078125, 56.80078125) -[2618637.154] {Default Queue} wl_pointer#3561.motion(187310266, 19.80078125, 56.80078125) -[2618637.158] {Default Queue} wl_pointer#3593.motion(187310266, 19.80078125, 56.80078125) -[2618637.163] {Default Queue} wl_pointer#3625.motion(187310266, 19.80078125, 56.80078125) -[2618637.167] {Default Queue} wl_pointer#3657.motion(187310266, 19.80078125, 56.80078125) -[2618637.171] {Default Queue} wl_pointer#3695.motion(187310266, 19.80078125, 56.80078125) -[2618637.176] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) -[2618637.180] {Default Queue} -> wl_surface#1031.commit() -[2618637.208] {Default Queue} wl_pointer#24.motion(187310271, 20.60156250, 55.60156250) -[2618637.214] {Default Queue} wl_pointer#81.motion(187310271, 20.60156250, 55.60156250) -[2618637.219] {Default Queue} wl_pointer#105.motion(187310271, 20.60156250, 55.60156250) -[2618637.223] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618637.227] {Default Queue} wl_pointer#137.motion(187310271, 20.60156250, 55.60156250) -[2618637.232] {Default Queue} wl_pointer#169.motion(187310271, 20.60156250, 55.60156250) -[2618637.236] {Default Queue} wl_pointer#201.motion(187310271, 20.60156250, 55.60156250) -[2618637.240] {Default Queue} wl_pointer#233.motion(187310271, 20.60156250, 55.60156250) -[2618637.244] {Default Queue} wl_pointer#265.motion(187310271, 20.60156250, 55.60156250) -[2618637.249] {Default Queue} wl_pointer#297.motion(187310271, 20.60156250, 55.60156250) -[2618637.253] {Default Queue} wl_pointer#329.motion(187310271, 20.60156250, 55.60156250) -[2618637.257] {Default Queue} wl_pointer#361.motion(187310271, 20.60156250, 55.60156250) -[2618637.261] {Default Queue} wl_pointer#393.motion(187310271, 20.60156250, 55.60156250) -[2618637.266] {Default Queue} wl_pointer#425.motion(187310271, 20.60156250, 55.60156250) -[2618637.273] {Default Queue} wl_pointer#457.motion(187310271, 20.60156250, 55.60156250) -[2618637.278] {Default Queue} wl_pointer#489.motion(187310271, 20.60156250, 55.60156250) -[2618637.283] {Default Queue} wl_pointer#521.motion(187310271, 20.60156250, 55.60156250) -[2618637.291] {Default Queue} wl_pointer#553.motion(187310271, 20.60156250, 55.60156250) -[2618637.295] {Default Queue} wl_pointer#585.motion(187310271, 20.60156250, 55.60156250) -[2618637.300] {Default Queue} wl_pointer#617.motion(187310271, 20.60156250, 55.60156250) -[2618637.304] {Default Queue} wl_pointer#649.motion(187310271, 20.60156250, 55.60156250) -[2618637.308] {Default Queue} wl_pointer#681.motion(187310271, 20.60156250, 55.60156250) -[2618637.312] {Default Queue} wl_pointer#713.motion(187310271, 20.60156250, 55.60156250) -[2618637.317] {Default Queue} wl_pointer#745.motion(187310271, 20.60156250, 55.60156250) -[2618637.321] {Default Queue} wl_pointer#777.motion(187310271, 20.60156250, 55.60156250) -[2618637.325] {Default Queue} wl_pointer#809.motion(187310271, 20.60156250, 55.60156250) -[2618637.329] {Default Queue} wl_pointer#841.motion(187310271, 20.60156250, 55.60156250) -[2618637.334] {Default Queue} wl_pointer#873.motion(187310271, 20.60156250, 55.60156250) -[2618637.338] {Default Queue} wl_pointer#905.motion(187310271, 20.60156250, 55.60156250) -[2618637.342] {Default Queue} wl_pointer#937.motion(187310271, 20.60156250, 55.60156250) -[2618637.346] {Default Queue} wl_pointer#969.motion(187310271, 20.60156250, 55.60156250) -[2618637.350] {Default Queue} wl_pointer#1001.motion(187310271, 20.60156250, 55.60156250) -[2618637.355] {Default Queue} wl_pointer#1033.motion(187310271, 20.60156250, 55.60156250) -[2618637.359] {Default Queue} wl_pointer#1065.motion(187310271, 20.60156250, 55.60156250) -[2618637.363] {Default Queue} wl_pointer#1097.motion(187310271, 20.60156250, 55.60156250) -[2618637.367] {Default Queue} wl_pointer#1129.motion(187310271, 20.60156250, 55.60156250) -[2618637.372] {Default Queue} wl_pointer#1161.motion(187310271, 20.60156250, 55.60156250) -[2618637.376] {Default Queue} wl_pointer#1193.motion(187310271, 20.60156250, 55.60156250) -[2618637.380] {Default Queue} wl_pointer#1225.motion(187310271, 20.60156250, 55.60156250) -[2618637.384] {Default Queue} wl_pointer#1257.motion(187310271, 20.60156250, 55.60156250) -[2618637.389] {Default Queue} wl_pointer#1289.motion(187310271, 20.60156250, 55.60156250) -[2618637.393] {Default Queue} wl_pointer#1321.motion(187310271, 20.60156250, 55.60156250) -[2618637.397] {Default Queue} wl_pointer#1353.motion(187310271, 20.60156250, 55.60156250) -[2618637.401] {Default Queue} wl_pointer#1385.motion(187310271, 20.60156250, 55.60156250) -[2618637.406] {Default Queue} wl_pointer#1417.motion(187310271, 20.60156250, 55.60156250) -[2618637.410] {Default Queue} wl_pointer#1449.motion(187310271, 20.60156250, 55.60156250) -[2618637.414] {Default Queue} wl_pointer#1481.motion(187310271, 20.60156250, 55.60156250) -[2618637.418] {Default Queue} wl_pointer#1513.motion(187310271, 20.60156250, 55.60156250) -[2618637.423] {Default Queue} wl_pointer#1545.motion(187310271, 20.60156250, 55.60156250) -[2618637.427] {Default Queue} wl_pointer#1577.motion(187310271, 20.60156250, 55.60156250) -[2618637.441] {Default Queue} wl_pointer#1609.motion(187310271, 20.60156250, 55.60156250) -[2618637.445] {Default Queue} wl_pointer#1641.motion(187310271, 20.60156250, 55.60156250) -[2618637.449] {Default Queue} wl_pointer#1673.motion(187310271, 20.60156250, 55.60156250) -[2618637.453] {Default Queue} wl_pointer#1705.motion(187310271, 20.60156250, 55.60156250) -[2618637.458] {Default Queue} wl_pointer#1737.motion(187310271, 20.60156250, 55.60156250) -[2618637.462] {Default Queue} wl_pointer#1762.motion(187310271, 20.60156250, 55.60156250) -[2618637.466] {Default Queue} wl_pointer#1801.motion(187310271, 20.60156250, 55.60156250) -[2618637.470] {Default Queue} wl_pointer#1833.motion(187310271, 20.60156250, 55.60156250) -[2618637.474] {Default Queue} wl_pointer#1865.motion(187310271, 20.60156250, 55.60156250) -[2618637.479] {Default Queue} wl_pointer#1897.motion(187310271, 20.60156250, 55.60156250) -[2618637.486] {Default Queue} wl_pointer#1929.motion(187310271, 20.60156250, 55.60156250) -[2618637.492] {Default Queue} wl_pointer#1961.motion(187310271, 20.60156250, 55.60156250) -[2618637.496] {Default Queue} wl_pointer#1993.motion(187310271, 20.60156250, 55.60156250) -[2618637.500] {Default Queue} wl_pointer#2025.motion(187310271, 20.60156250, 55.60156250) -[2618637.504] {Default Queue} wl_pointer#2057.motion(187310271, 20.60156250, 55.60156250) -[2618637.509] {Default Queue} wl_pointer#2089.motion(187310271, 20.60156250, 55.60156250) -[2618637.513] {Default Queue} wl_pointer#2121.motion(187310271, 20.60156250, 55.60156250) -[2618637.517] {Default Queue} wl_pointer#2153.motion(187310271, 20.60156250, 55.60156250) -[2618637.522] {Default Queue} wl_pointer#2185.motion(187310271, 20.60156250, 55.60156250) -[2618637.526] {Default Queue} wl_pointer#2217.motion(187310271, 20.60156250, 55.60156250) -[2618637.530] {Default Queue} wl_pointer#2249.motion(187310271, 20.60156250, 55.60156250) -[2618637.534] {Default Queue} wl_pointer#2281.motion(187310271, 20.60156250, 55.60156250) -[2618637.539] {Default Queue} wl_pointer#2313.motion(187310271, 20.60156250, 55.60156250) -[2618637.543] {Default Queue} wl_pointer#2345.motion(187310271, 20.60156250, 55.60156250) -[2618637.548] {Default Queue} wl_pointer#2377.motion(187310271, 20.60156250, 55.60156250) -[2618637.552] {Default Queue} wl_pointer#2409.motion(187310271, 20.60156250, 55.60156250) -[2618637.556] {Default Queue} wl_pointer#2441.motion(187310271, 20.60156250, 55.60156250) -[2618637.560] {Default Queue} wl_pointer#2473.motion(187310271, 20.60156250, 55.60156250) -[2618637.565] {Default Queue} wl_pointer#2498.motion(187310271, 20.60156250, 55.60156250) -[2618637.574] {Default Queue} -> wl_buffer#3675.destroy() -[2618637.579] {Default Queue} -> wl_buffer#3678.destroy() -[2618637.583] {Default Queue} -> wl_shm_pool#3674.destroy() -[2618637.587] {Default Queue} -> wl_shm_pool#3676.destroy() -[2618637.591] {Default Queue} -> wl_surface#3677.destroy() -[2618637.628] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#93, fd 575, 640) -[2618637.633] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 578, 640) -[2618637.638] {Default Queue} -> wl_shm_pool#93.create_buffer(new id wl_buffer#3683, 0, 10, 16, 40, 0) -[2618637.642] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) -[2618637.649] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#91) -[2618637.653] {Default Queue} -> wl_surface#91.attach(wl_buffer#3683, 0, 0) -[2618637.657] {Default Queue} -> wl_surface#91.commit() -[2618637.663] {Default Queue} -> wl_surface#91.attach(wl_buffer#3683, 0, 0) -[2618637.667] {Default Queue} -> wl_surface#91.commit() -[2618637.671] {Default Queue} wl_pointer#2537.motion(187310271, 20.60156250, 55.60156250) -[2618637.675] {Default Queue} wl_pointer#2569.motion(187310271, 20.60156250, 55.60156250) -[2618637.680] {Default Queue} wl_pointer#2601.motion(187310271, 20.60156250, 55.60156250) -[2618637.684] {Default Queue} wl_pointer#2633.motion(187310271, 20.60156250, 55.60156250) -[2618637.688] {Default Queue} wl_pointer#2665.motion(187310271, 20.60156250, 55.60156250) -[2618637.692] {Default Queue} wl_pointer#2697.motion(187310271, 20.60156250, 55.60156250) -[2618637.697] {Default Queue} wl_pointer#2729.motion(187310271, 20.60156250, 55.60156250) -[2618637.701] {Default Queue} wl_pointer#2761.motion(187310271, 20.60156250, 55.60156250) -[2618637.705] {Default Queue} wl_pointer#2793.motion(187310271, 20.60156250, 55.60156250) -[2618637.709] {Default Queue} wl_pointer#2825.motion(187310271, 20.60156250, 55.60156250) -[2618637.714] {Default Queue} wl_pointer#2857.motion(187310271, 20.60156250, 55.60156250) -[2618637.718] {Default Queue} wl_pointer#2889.motion(187310271, 20.60156250, 55.60156250) -[2618637.722] {Default Queue} wl_pointer#2921.motion(187310271, 20.60156250, 55.60156250) -[2618637.727] {Default Queue} wl_pointer#2953.motion(187310271, 20.60156250, 55.60156250) -[2618637.731] {Default Queue} wl_pointer#2985.motion(187310271, 20.60156250, 55.60156250) -[2618637.738] {Default Queue} wl_pointer#3017.motion(187310271, 20.60156250, 55.60156250) -[2618637.744] {Default Queue} wl_pointer#3049.motion(187310271, 20.60156250, 55.60156250) -[2618637.749] {Default Queue} wl_pointer#3081.motion(187310271, 20.60156250, 55.60156250) -[2618637.753] {Default Queue} wl_pointer#3113.motion(187310271, 20.60156250, 55.60156250) -[2618637.757] {Default Queue} wl_pointer#3145.motion(187310271, 20.60156250, 55.60156250) -[2618637.761] {Default Queue} wl_pointer#3177.motion(187310271, 20.60156250, 55.60156250) -[2618637.766] {Default Queue} wl_pointer#3209.motion(187310271, 20.60156250, 55.60156250) -[2618637.770] {Default Queue} wl_pointer#3241.motion(187310271, 20.60156250, 55.60156250) -[2618637.774] {Default Queue} wl_pointer#3273.motion(187310271, 20.60156250, 55.60156250) -[2618637.779] {Default Queue} wl_pointer#3305.motion(187310271, 20.60156250, 55.60156250) -[2618637.783] {Default Queue} wl_pointer#3337.motion(187310271, 20.60156250, 55.60156250) -[2618637.787] {Default Queue} wl_pointer#3369.motion(187310271, 20.60156250, 55.60156250) -[2618637.791] {Default Queue} wl_pointer#3401.motion(187310271, 20.60156250, 55.60156250) -[2618637.795] {Default Queue} wl_pointer#3433.motion(187310271, 20.60156250, 55.60156250) -[2618637.800] {Default Queue} wl_pointer#3465.motion(187310271, 20.60156250, 55.60156250) -[2618637.804] {Default Queue} wl_pointer#3497.motion(187310271, 20.60156250, 55.60156250) -[2618637.809] {Default Queue} wl_pointer#3529.motion(187310271, 20.60156250, 55.60156250) -[2618637.813] {Default Queue} wl_pointer#3561.motion(187310271, 20.60156250, 55.60156250) -[2618637.817] {Default Queue} wl_pointer#3593.motion(187310271, 20.60156250, 55.60156250) -[2618637.821] {Default Queue} wl_pointer#3625.motion(187310271, 20.60156250, 55.60156250) -[2618637.826] {Default Queue} wl_pointer#3657.motion(187310271, 20.60156250, 55.60156250) -[2618637.830] {Default Queue} wl_pointer#3695.motion(187310271, 20.60156250, 55.60156250) -[2618637.834] {Default Queue} wl_pointer#24.motion(187310271, 21.39843750, 54.39843750) -[2618637.838] {Default Queue} wl_pointer#81.motion(187310271, 21.39843750, 54.39843750) -[2618637.843] {Default Queue} wl_pointer#105.motion(187310271, 21.39843750, 54.39843750) -[2618637.848] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618637.852] {Default Queue} wl_pointer#137.motion(187310271, 21.39843750, 54.39843750) -[2618637.856] {Default Queue} wl_pointer#169.motion(187310271, 21.39843750, 54.39843750) -[2618637.869] {Default Queue} wl_pointer#201.motion(187310271, 21.39843750, 54.39843750) -[2618637.894] {Default Queue} wl_pointer#233.motion(187310271, 21.39843750, 54.39843750) -[2618637.898] {Default Queue} wl_pointer#265.motion(187310271, 21.39843750, 54.39843750) -[2618637.903] {Default Queue} wl_pointer#297.motion(187310271, 21.39843750, 54.39843750) -[2618637.907] {Default Queue} wl_pointer#329.motion(187310271, 21.39843750, 54.39843750) -[2618637.911] {Default Queue} wl_pointer#361.motion(187310271, 21.39843750, 54.39843750) -[2618637.915] {Default Queue} wl_pointer#393.motion(187310271, 21.39843750, 54.39843750) -[2618637.920] {Default Queue} wl_pointer#425.motion(187310271, 21.39843750, 54.39843750) -[2618637.924] {Default Queue} wl_pointer#457.motion(187310271, 21.39843750, 54.39843750) -[2618637.928] {Default Queue} wl_pointer#489.motion(187310271, 21.39843750, 54.39843750) -[2618637.933] {Default Queue} wl_pointer#521.motion(187310271, 21.39843750, 54.39843750) -[2618637.937] {Default Queue} wl_pointer#553.motion(187310271, 21.39843750, 54.39843750) -[2618637.941] {Default Queue} wl_pointer#585.motion(187310271, 21.39843750, 54.39843750) -[2618637.945] {Default Queue} wl_pointer#617.motion(187310271, 21.39843750, 54.39843750) -[2618637.950] {Default Queue} wl_pointer#649.motion(187310271, 21.39843750, 54.39843750) -[2618637.954] {Default Queue} wl_pointer#681.motion(187310271, 21.39843750, 54.39843750) -[2618637.958] {Default Queue} wl_pointer#713.motion(187310271, 21.39843750, 54.39843750) -[2618637.967] {Default Queue} wl_pointer#745.motion(187310271, 21.39843750, 54.39843750) -[2618637.975] {Default Queue} wl_pointer#777.motion(187310271, 21.39843750, 54.39843750) -[2618637.980] {Default Queue} wl_pointer#809.motion(187310271, 21.39843750, 54.39843750) -[2618637.984] {Default Queue} wl_pointer#841.motion(187310271, 21.39843750, 54.39843750) -[2618637.988] {Default Queue} wl_pointer#873.motion(187310271, 21.39843750, 54.39843750) -[2618637.992] {Default Queue} wl_pointer#905.motion(187310271, 21.39843750, 54.39843750) -[2618637.997] {Default Queue} wl_pointer#937.motion(187310271, 21.39843750, 54.39843750) -[2618638.001] {Default Queue} wl_pointer#969.motion(187310271, 21.39843750, 54.39843750) -[2618638.005] {Default Queue} wl_pointer#1001.motion(187310271, 21.39843750, 54.39843750) -[2618638.009] {Default Queue} wl_pointer#1033.motion(187310271, 21.39843750, 54.39843750) -[2618638.014] {Default Queue} wl_pointer#1065.motion(187310271, 21.39843750, 54.39843750) -[2618638.018] {Default Queue} wl_pointer#1097.motion(187310271, 21.39843750, 54.39843750) -[2618638.022] {Default Queue} wl_pointer#1129.motion(187310271, 21.39843750, 54.39843750) -[2618638.027] {Default Queue} wl_pointer#1161.motion(187310271, 21.39843750, 54.39843750) -[2618638.031] {Default Queue} wl_pointer#1193.motion(187310271, 21.39843750, 54.39843750) -[2618638.035] {Default Queue} wl_pointer#1225.motion(187310271, 21.39843750, 54.39843750) -[2618638.039] {Default Queue} wl_pointer#1257.motion(187310271, 21.39843750, 54.39843750) -[2618638.044] {Default Queue} wl_pointer#1289.motion(187310271, 21.39843750, 54.39843750) -[2618638.048] {Default Queue} wl_pointer#1321.motion(187310271, 21.39843750, 54.39843750) -[2618638.052] {Default Queue} wl_pointer#1353.motion(187310271, 21.39843750, 54.39843750) -[2618638.056] {Default Queue} wl_pointer#1385.motion(187310271, 21.39843750, 54.39843750) -[2618638.061] {Default Queue} wl_pointer#1417.motion(187310271, 21.39843750, 54.39843750) -[2618638.065] {Default Queue} wl_pointer#1449.motion(187310271, 21.39843750, 54.39843750) -[2618638.069] {Default Queue} wl_pointer#1481.motion(187310271, 21.39843750, 54.39843750) -[2618638.073] {Default Queue} wl_pointer#1513.motion(187310271, 21.39843750, 54.39843750) -[2618638.078] {Default Queue} wl_pointer#1545.motion(187310271, 21.39843750, 54.39843750) -[2618638.082] {Default Queue} wl_pointer#1577.motion(187310271, 21.39843750, 54.39843750) -[2618638.086] {Default Queue} wl_pointer#1609.motion(187310271, 21.39843750, 54.39843750) -[2618638.091] {Default Queue} wl_pointer#1641.motion(187310271, 21.39843750, 54.39843750) -[2618638.095] {Default Queue} wl_pointer#1673.motion(187310271, 21.39843750, 54.39843750) -[2618638.099] {Default Queue} wl_pointer#1705.motion(187310271, 21.39843750, 54.39843750) -[2618638.103] {Default Queue} wl_pointer#1737.motion(187310271, 21.39843750, 54.39843750) -[2618638.108] {Default Queue} wl_pointer#1762.motion(187310271, 21.39843750, 54.39843750) -[2618638.112] {Default Queue} wl_pointer#1801.motion(187310271, 21.39843750, 54.39843750) -[2618638.116] {Default Queue} wl_pointer#1833.motion(187310271, 21.39843750, 54.39843750) -[2618638.121] {Default Queue} wl_pointer#1865.motion(187310271, 21.39843750, 54.39843750) -[2618638.125] {Default Queue} wl_pointer#1897.motion(187310271, 21.39843750, 54.39843750) -[2618638.129] {Default Queue} wl_pointer#1929.motion(187310271, 21.39843750, 54.39843750) -[2618638.133] {Default Queue} wl_pointer#1961.motion(187310271, 21.39843750, 54.39843750) -[2618638.138] {Default Queue} wl_pointer#1993.motion(187310271, 21.39843750, 54.39843750) -[2618638.142] {Default Queue} wl_pointer#2025.motion(187310271, 21.39843750, 54.39843750) -[2618638.146] {Default Queue} wl_pointer#2057.motion(187310271, 21.39843750, 54.39843750) -[2618638.150] {Default Queue} wl_pointer#2089.motion(187310271, 21.39843750, 54.39843750) -[2618638.155] {Default Queue} wl_pointer#2121.motion(187310271, 21.39843750, 54.39843750) -[2618638.159] {Default Queue} wl_pointer#2153.motion(187310271, 21.39843750, 54.39843750) -[2618638.163] {Default Queue} wl_pointer#2185.motion(187310271, 21.39843750, 54.39843750) -[2618638.170] {Default Queue} wl_pointer#2217.motion(187310271, 21.39843750, 54.39843750) -[2618638.176] {Default Queue} wl_pointer#2249.motion(187310271, 21.39843750, 54.39843750) -[2618638.180] {Default Queue} wl_pointer#2281.motion(187310271, 21.39843750, 54.39843750) -[2618638.184] {Default Queue} wl_pointer#2313.motion(187310271, 21.39843750, 54.39843750) -[2618638.189] {Default Queue} wl_pointer#2345.motion(187310271, 21.39843750, 54.39843750) -[2618638.193] {Default Queue} wl_pointer#2377.motion(187310271, 21.39843750, 54.39843750) -[2618638.197] {Default Queue} wl_pointer#2409.motion(187310271, 21.39843750, 54.39843750) -[2618638.202] {Default Queue} wl_pointer#2441.motion(187310271, 21.39843750, 54.39843750) -[2618638.206] {Default Queue} wl_pointer#2473.motion(187310271, 21.39843750, 54.39843750) -[2618638.210] {Default Queue} wl_pointer#2498.motion(187310271, 21.39843750, 54.39843750) -[2618638.220] {Default Queue} -> wl_buffer#3683.destroy() -[2618638.225] {Default Queue} -> wl_buffer#94.destroy() -[2618638.229] {Default Queue} -> wl_shm_pool#93.destroy() -[2618638.233] {Default Queue} -> wl_shm_pool#92.destroy() -[2618638.238] {Default Queue} -> wl_surface#91.destroy() -[2618638.270] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3483, fd 581, 640) -[2618638.276] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3486, fd 582, 640) -[2618638.280] {Default Queue} -> wl_shm_pool#3483.create_buffer(new id wl_buffer#3485, 0, 10, 16, 40, 0) -[2618638.285] {Default Queue} -> wl_shm_pool#3486.create_buffer(new id wl_buffer#3516, 0, 10, 16, 40, 0) -[2618638.292] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3515) -[2618638.296] {Default Queue} -> wl_surface#3515.attach(wl_buffer#3485, 0, 0) -[2618638.300] {Default Queue} -> wl_surface#3515.commit() -[2618638.305] {Default Queue} -> wl_surface#3515.attach(wl_buffer#3485, 0, 0) -[2618638.309] {Default Queue} -> wl_surface#3515.commit() -[2618638.313] {Default Queue} wl_pointer#2537.motion(187310271, 21.39843750, 54.39843750) -[2618638.318] {Default Queue} wl_pointer#2569.motion(187310271, 21.39843750, 54.39843750) -[2618638.322] {Default Queue} wl_pointer#2601.motion(187310271, 21.39843750, 54.39843750) -[2618638.326] {Default Queue} wl_pointer#2633.motion(187310271, 21.39843750, 54.39843750) -[2618638.331] {Default Queue} wl_pointer#2665.motion(187310271, 21.39843750, 54.39843750) -[2618638.335] {Default Queue} wl_pointer#2697.motion(187310271, 21.39843750, 54.39843750) -[2618638.339] {Default Queue} wl_pointer#2729.motion(187310271, 21.39843750, 54.39843750) -[2618638.344] {Default Queue} wl_pointer#2761.motion(187310271, 21.39843750, 54.39843750) -[2618638.348] {Default Queue} wl_pointer#2793.motion(187310271, 21.39843750, 54.39843750) -[2618638.352] {Default Queue} wl_pointer#2825.motion(187310271, 21.39843750, 54.39843750) -[2618638.357] {Default Queue} wl_pointer#2857.motion(187310271, 21.39843750, 54.39843750) -[2618638.364] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) -[2618638.368] {Default Queue} -> wl_surface#1031.commit() -[2618638.373] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) -[2618638.378] {Default Queue} -> wl_surface#999.commit() -[2618639.442] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) -[2618639.449] {Default Queue} -> wl_surface#999.commit() -[2618639.459] {Default Queue} -> wl_region#1023.subtract(0, 0, 19, 48) -[2618639.463] {Default Queue} -> wl_region#1023.add(-20, -49, 19, 48) -[2618639.467] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) -[2618639.472] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) -[2618639.477] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) -[2618639.482] {Default Queue} -> wl_surface#999.commit() -[2618639.486] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) -[2618639.490] {Default Queue} -> wl_surface#999.commit() -[2618639.496] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) -[2618639.500] {Default Queue} -> wl_surface#999.commit() -[2618639.510] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) -[2618639.517] {Default Queue} -> wl_surface#935.commit() -[2618640.578] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) -[2618640.583] {Default Queue} -> wl_surface#935.commit() -[2618640.589] {Default Queue} -> wl_region#959.subtract(0, 0, 22, 51) -[2618640.594] {Default Queue} -> wl_region#959.add(-20, -49, 19, 48) -[2618640.598] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) -[2618640.602] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) -[2618640.607] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) -[2618640.611] {Default Queue} -> wl_surface#935.commit() -[2618640.615] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) -[2618640.619] {Default Queue} -> wl_surface#935.commit() -[2618640.624] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) -[2618640.629] {Default Queue} -> wl_surface#935.commit() -[2618640.634] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) -[2618640.638] {Default Queue} -> wl_surface#903.commit() -[2618641.396] {Display Queue} wl_display#1.delete_id(3684) -[2618641.402] {Display Queue} wl_display#1.delete_id(3681) -[2618641.406] {Display Queue} wl_display#1.delete_id(3682) -[2618641.410] {Display Queue} wl_display#1.delete_id(3679) -[2618641.414] {Display Queue} wl_display#1.delete_id(3671) -[2618641.418] {Display Queue} wl_display#1.delete_id(3294) -[2618641.422] {Display Queue} wl_display#1.delete_id(3293) -[2618641.426] {Display Queue} wl_display#1.delete_id(3292) -[2618641.429] {Display Queue} wl_display#1.delete_id(3291) -[2618641.433] {Display Queue} wl_display#1.delete_id(3484) -[2618641.437] {Default Queue} wl_pointer#2889.motion(187310271, 21.39843750, 54.39843750) -[2618641.442] {Default Queue} wl_pointer#2921.motion(187310271, 21.39843750, 54.39843750) -[2618641.446] {Default Queue} wl_pointer#2953.motion(187310271, 21.39843750, 54.39843750) -[2618641.451] {Default Queue} wl_pointer#2985.motion(187310271, 21.39843750, 54.39843750) -[2618641.455] {Default Queue} wl_pointer#3017.motion(187310271, 21.39843750, 54.39843750) -[2618641.459] {Default Queue} wl_pointer#3049.motion(187310271, 21.39843750, 54.39843750) -[2618641.464] {Default Queue} wl_pointer#3081.motion(187310271, 21.39843750, 54.39843750) -[2618641.468] {Default Queue} wl_pointer#3113.motion(187310271, 21.39843750, 54.39843750) -[2618641.473] {Default Queue} wl_pointer#3145.motion(187310271, 21.39843750, 54.39843750) -[2618641.477] {Default Queue} wl_pointer#3177.motion(187310271, 21.39843750, 54.39843750) -[2618641.481] {Default Queue} wl_pointer#3209.motion(187310271, 21.39843750, 54.39843750) -[2618641.486] {Default Queue} wl_pointer#3241.motion(187310271, 21.39843750, 54.39843750) -[2618641.490] {Default Queue} wl_pointer#3273.motion(187310271, 21.39843750, 54.39843750) -[2618641.494] {Default Queue} wl_pointer#3305.motion(187310271, 21.39843750, 54.39843750) -[2618641.498] {Default Queue} wl_pointer#3337.motion(187310271, 21.39843750, 54.39843750) -[2618641.503] {Default Queue} wl_pointer#3369.motion(187310271, 21.39843750, 54.39843750) -[2618641.507] {Default Queue} wl_pointer#3401.motion(187310271, 21.39843750, 54.39843750) -[2618641.511] {Default Queue} wl_pointer#3433.motion(187310271, 21.39843750, 54.39843750) -[2618641.516] {Default Queue} wl_pointer#3465.motion(187310271, 21.39843750, 54.39843750) -[2618641.520] {Default Queue} wl_pointer#3497.motion(187310271, 21.39843750, 54.39843750) -[2618641.525] {Default Queue} wl_pointer#3529.motion(187310271, 21.39843750, 54.39843750) -[2618641.529] {Default Queue} wl_pointer#3561.motion(187310271, 21.39843750, 54.39843750) -[2618641.533] {Default Queue} wl_pointer#3593.motion(187310271, 21.39843750, 54.39843750) -[2618641.537] {Default Queue} wl_pointer#3625.motion(187310271, 21.39843750, 54.39843750) -[2618641.542] {Default Queue} wl_pointer#3657.motion(187310271, 21.39843750, 54.39843750) -[2618641.546] {Default Queue} wl_pointer#3695.motion(187310271, 21.39843750, 54.39843750) -[2618641.555] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) -[2618641.563] {Default Queue} -> wl_region#927.add(0, 0, 2, 2) -[2618641.569] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618641.573] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618641.581] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) -[2618641.585] {Default Queue} -> wl_region#927.add(0, 0, 2, 2) -[2618641.589] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618641.593] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618641.598] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) -[2618641.603] {Default Queue} -> wl_region#927.add(0, 0, 2, 2) -[2618641.607] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618641.611] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618641.616] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) -[2618641.620] {Default Queue} -> wl_region#927.add(0, 0, 2, 2) -[2618641.624] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618641.628] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618641.635] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) -[2618641.639] {Default Queue} -> wl_region#927.add(0, 0, 2, 2) -[2618641.643] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618641.647] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618641.652] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) -[2618641.656] {Default Queue} -> wl_surface#903.commit() -[2618641.660] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) -[2618641.664] {Default Queue} -> wl_surface#903.commit() -[2618641.688] {Default Queue} wl_pointer#24.motion(187310276, 21.80078125, 53.60156250) -[2618641.693] {Default Queue} wl_pointer#81.motion(187310276, 21.80078125, 53.60156250) -[2618641.698] {Default Queue} wl_pointer#105.motion(187310276, 21.80078125, 53.60156250) -[2618641.703] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618641.707] {Default Queue} wl_pointer#137.motion(187310276, 21.80078125, 53.60156250) -[2618641.711] {Default Queue} wl_pointer#169.motion(187310276, 21.80078125, 53.60156250) -[2618641.716] {Default Queue} wl_pointer#201.motion(187310276, 21.80078125, 53.60156250) -[2618641.720] {Default Queue} wl_pointer#233.motion(187310276, 21.80078125, 53.60156250) -[2618641.724] {Default Queue} wl_pointer#265.motion(187310276, 21.80078125, 53.60156250) -[2618641.728] {Default Queue} wl_pointer#297.motion(187310276, 21.80078125, 53.60156250) -[2618641.733] {Default Queue} wl_pointer#329.motion(187310276, 21.80078125, 53.60156250) -[2618641.737] {Default Queue} wl_pointer#361.motion(187310276, 21.80078125, 53.60156250) -[2618641.741] {Default Queue} wl_pointer#393.motion(187310276, 21.80078125, 53.60156250) -[2618641.746] {Default Queue} wl_pointer#425.motion(187310276, 21.80078125, 53.60156250) -[2618641.750] {Default Queue} wl_pointer#457.motion(187310276, 21.80078125, 53.60156250) -[2618641.754] {Default Queue} wl_pointer#489.motion(187310276, 21.80078125, 53.60156250) -[2618641.759] {Default Queue} wl_pointer#521.motion(187310276, 21.80078125, 53.60156250) -[2618641.763] {Default Queue} wl_pointer#553.motion(187310276, 21.80078125, 53.60156250) -[2618641.767] {Default Queue} wl_pointer#585.motion(187310276, 21.80078125, 53.60156250) -[2618641.771] {Default Queue} wl_pointer#617.motion(187310276, 21.80078125, 53.60156250) -[2618641.776] {Default Queue} wl_pointer#649.motion(187310276, 21.80078125, 53.60156250) -[2618641.780] {Default Queue} wl_pointer#681.motion(187310276, 21.80078125, 53.60156250) -[2618641.784] {Default Queue} wl_pointer#713.motion(187310276, 21.80078125, 53.60156250) -[2618641.788] {Default Queue} wl_pointer#745.motion(187310276, 21.80078125, 53.60156250) -[2618641.793] {Default Queue} wl_pointer#777.motion(187310276, 21.80078125, 53.60156250) -[2618641.797] {Default Queue} wl_pointer#809.motion(187310276, 21.80078125, 53.60156250) -[2618641.801] {Default Queue} wl_pointer#841.motion(187310276, 21.80078125, 53.60156250) -[2618641.808] {Default Queue} wl_pointer#873.motion(187310276, 21.80078125, 53.60156250) -[2618641.814] {Default Queue} wl_pointer#905.motion(187310276, 21.80078125, 53.60156250) -[2618641.818] {Default Queue} wl_pointer#937.motion(187310276, 21.80078125, 53.60156250) -[2618641.822] {Default Queue} wl_pointer#969.motion(187310276, 21.80078125, 53.60156250) -[2618641.827] {Default Queue} wl_pointer#1001.motion(187310276, 21.80078125, 53.60156250) -[2618641.831] {Default Queue} wl_pointer#1033.motion(187310276, 21.80078125, 53.60156250) -[2618641.835] {Default Queue} wl_pointer#1065.motion(187310276, 21.80078125, 53.60156250) -[2618641.839] {Default Queue} wl_pointer#1097.motion(187310276, 21.80078125, 53.60156250) -[2618641.844] {Default Queue} wl_pointer#1129.motion(187310276, 21.80078125, 53.60156250) -[2618641.848] {Default Queue} wl_pointer#1161.motion(187310276, 21.80078125, 53.60156250) -[2618641.853] {Default Queue} wl_pointer#1193.motion(187310276, 21.80078125, 53.60156250) -[2618641.857] {Default Queue} wl_pointer#1225.motion(187310276, 21.80078125, 53.60156250) -[2618641.865] {Default Queue} wl_pointer#1257.motion(187310276, 21.80078125, 53.60156250) -[2618641.869] {Default Queue} wl_pointer#1289.motion(187310276, 21.80078125, 53.60156250) -[2618641.874] {Default Queue} wl_pointer#1321.motion(187310276, 21.80078125, 53.60156250) -[2618641.878] {Default Queue} wl_pointer#1353.motion(187310276, 21.80078125, 53.60156250) -[2618641.907] {Default Queue} wl_pointer#1385.motion(187310276, 21.80078125, 53.60156250) -[2618641.917] {Default Queue} wl_pointer#1417.motion(187310276, 21.80078125, 53.60156250) -[2618641.924] {Default Queue} wl_pointer#1449.motion(187310276, 21.80078125, 53.60156250) -[2618641.930] {Default Queue} wl_pointer#1481.motion(187310276, 21.80078125, 53.60156250) -[2618641.935] {Default Queue} wl_pointer#1513.motion(187310276, 21.80078125, 53.60156250) -[2618641.939] {Default Queue} wl_pointer#1545.motion(187310276, 21.80078125, 53.60156250) -[2618641.944] {Default Queue} wl_pointer#1577.motion(187310276, 21.80078125, 53.60156250) -[2618641.948] {Default Queue} wl_pointer#1609.motion(187310276, 21.80078125, 53.60156250) -[2618641.952] {Default Queue} wl_pointer#1641.motion(187310276, 21.80078125, 53.60156250) -[2618641.957] {Default Queue} wl_pointer#1673.motion(187310276, 21.80078125, 53.60156250) -[2618641.961] {Default Queue} wl_pointer#1705.motion(187310276, 21.80078125, 53.60156250) -[2618641.965] {Default Queue} wl_pointer#1737.motion(187310276, 21.80078125, 53.60156250) -[2618641.969] {Default Queue} wl_pointer#1762.motion(187310276, 21.80078125, 53.60156250) -[2618641.974] {Default Queue} wl_pointer#1801.motion(187310276, 21.80078125, 53.60156250) -[2618641.978] {Default Queue} wl_pointer#1833.motion(187310276, 21.80078125, 53.60156250) -[2618641.982] {Default Queue} wl_pointer#1865.motion(187310276, 21.80078125, 53.60156250) -[2618641.987] {Default Queue} wl_pointer#1897.motion(187310276, 21.80078125, 53.60156250) -[2618641.992] {Default Queue} wl_pointer#1929.motion(187310276, 21.80078125, 53.60156250) -[2618641.996] {Default Queue} wl_pointer#1961.motion(187310276, 21.80078125, 53.60156250) -[2618642.000] {Default Queue} wl_pointer#1993.motion(187310276, 21.80078125, 53.60156250) -[2618642.005] {Default Queue} wl_pointer#2025.motion(187310276, 21.80078125, 53.60156250) -[2618642.009] {Default Queue} wl_pointer#2057.motion(187310276, 21.80078125, 53.60156250) -[2618642.013] {Default Queue} wl_pointer#2089.motion(187310276, 21.80078125, 53.60156250) -[2618642.018] {Default Queue} wl_pointer#2121.motion(187310276, 21.80078125, 53.60156250) -[2618642.022] {Default Queue} wl_pointer#2153.motion(187310276, 21.80078125, 53.60156250) -[2618642.026] {Default Queue} wl_pointer#2185.motion(187310276, 21.80078125, 53.60156250) -[2618642.030] {Default Queue} wl_pointer#2217.motion(187310276, 21.80078125, 53.60156250) -[2618642.035] {Default Queue} wl_pointer#2249.motion(187310276, 21.80078125, 53.60156250) -[2618642.039] {Default Queue} wl_pointer#2281.motion(187310276, 21.80078125, 53.60156250) -[2618642.043] {Default Queue} wl_pointer#2313.motion(187310276, 21.80078125, 53.60156250) -[2618642.053] {Default Queue} wl_pointer#2345.motion(187310276, 21.80078125, 53.60156250) -[2618642.061] {Default Queue} wl_pointer#2377.motion(187310276, 21.80078125, 53.60156250) -[2618642.065] {Default Queue} wl_pointer#2409.motion(187310276, 21.80078125, 53.60156250) -[2618642.070] {Default Queue} wl_pointer#2441.motion(187310276, 21.80078125, 53.60156250) -[2618642.074] {Default Queue} wl_pointer#2473.motion(187310276, 21.80078125, 53.60156250) -[2618642.078] {Default Queue} wl_pointer#2498.motion(187310276, 21.80078125, 53.60156250) -[2618642.092] {Default Queue} -> wl_buffer#3485.destroy() -[2618642.097] {Default Queue} -> wl_buffer#3516.destroy() -[2618642.101] {Default Queue} -> wl_shm_pool#3483.destroy() -[2618642.105] {Default Queue} -> wl_shm_pool#3486.destroy() -[2618642.110] {Default Queue} -> wl_surface#3515.destroy() -[2618642.155] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3484, fd 575, 640) -[2618642.162] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 578, 640) -[2618642.167] {Default Queue} -> wl_shm_pool#3484.create_buffer(new id wl_buffer#3292, 0, 10, 16, 40, 0) -[2618642.171] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) -[2618642.179] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3294) -[2618642.185] {Default Queue} -> wl_surface#3294.attach(wl_buffer#3292, 0, 0) -[2618642.190] {Default Queue} -> wl_surface#3294.commit() -[2618642.195] {Default Queue} -> wl_surface#3294.attach(wl_buffer#3292, 0, 0) -[2618642.199] {Default Queue} -> wl_surface#3294.commit() -[2618642.204] {Default Queue} wl_pointer#2537.motion(187310276, 21.80078125, 53.60156250) -[2618642.208] {Default Queue} wl_pointer#2569.motion(187310276, 21.80078125, 53.60156250) -[2618642.213] {Default Queue} wl_pointer#2601.motion(187310276, 21.80078125, 53.60156250) -[2618642.217] {Default Queue} wl_pointer#2633.motion(187310276, 21.80078125, 53.60156250) -[2618642.222] {Default Queue} wl_pointer#2665.motion(187310276, 21.80078125, 53.60156250) -[2618642.226] {Default Queue} wl_pointer#2697.motion(187310276, 21.80078125, 53.60156250) -[2618642.230] {Default Queue} wl_pointer#2729.motion(187310276, 21.80078125, 53.60156250) -[2618642.235] {Default Queue} wl_pointer#2761.motion(187310276, 21.80078125, 53.60156250) -[2618642.239] {Default Queue} wl_pointer#2793.motion(187310276, 21.80078125, 53.60156250) -[2618642.243] {Default Queue} wl_pointer#2825.motion(187310276, 21.80078125, 53.60156250) -[2618642.248] {Default Queue} wl_pointer#2857.motion(187310276, 21.80078125, 53.60156250) -[2618642.252] {Default Queue} wl_pointer#2889.motion(187310276, 21.80078125, 53.60156250) -[2618642.257] {Default Queue} wl_pointer#2921.motion(187310276, 21.80078125, 53.60156250) -[2618642.261] {Default Queue} wl_pointer#2953.motion(187310276, 21.80078125, 53.60156250) -[2618642.265] {Default Queue} wl_pointer#2985.motion(187310276, 21.80078125, 53.60156250) -[2618642.270] {Default Queue} wl_pointer#3017.motion(187310276, 21.80078125, 53.60156250) -[2618642.274] {Default Queue} wl_pointer#3049.motion(187310276, 21.80078125, 53.60156250) -[2618642.278] {Default Queue} wl_pointer#3081.motion(187310276, 21.80078125, 53.60156250) -[2618642.282] {Default Queue} wl_pointer#3113.motion(187310276, 21.80078125, 53.60156250) -[2618642.287] {Default Queue} wl_pointer#3145.motion(187310276, 21.80078125, 53.60156250) -[2618642.291] {Default Queue} wl_pointer#3177.motion(187310276, 21.80078125, 53.60156250) -[2618642.295] {Default Queue} wl_pointer#3209.motion(187310276, 21.80078125, 53.60156250) -[2618642.300] {Default Queue} wl_pointer#3241.motion(187310276, 21.80078125, 53.60156250) -[2618642.304] {Default Queue} wl_pointer#3273.motion(187310276, 21.80078125, 53.60156250) -[2618642.308] {Default Queue} wl_pointer#3305.motion(187310276, 21.80078125, 53.60156250) -[2618642.313] {Default Queue} wl_pointer#3337.motion(187310276, 21.80078125, 53.60156250) -[2618642.317] {Default Queue} wl_pointer#3369.motion(187310276, 21.80078125, 53.60156250) -[2618642.328] {Default Queue} wl_pointer#3401.motion(187310276, 21.80078125, 53.60156250) -[2618642.337] {Default Queue} wl_pointer#3433.motion(187310276, 21.80078125, 53.60156250) -[2618642.344] {Default Queue} wl_pointer#3465.motion(187310276, 21.80078125, 53.60156250) -[2618642.350] {Default Queue} wl_pointer#3497.motion(187310276, 21.80078125, 53.60156250) -[2618642.356] {Default Queue} wl_pointer#3529.motion(187310276, 21.80078125, 53.60156250) -[2618642.361] {Default Queue} wl_pointer#3561.motion(187310276, 21.80078125, 53.60156250) -[2618642.367] {Default Queue} wl_pointer#3593.motion(187310276, 21.80078125, 53.60156250) -[2618642.373] {Default Queue} wl_pointer#3625.motion(187310276, 21.80078125, 53.60156250) -[2618642.379] {Default Queue} wl_pointer#3657.motion(187310276, 21.80078125, 53.60156250) -[2618642.384] {Default Queue} wl_pointer#3695.motion(187310276, 21.80078125, 53.60156250) -[2618642.389] {Default Queue} wl_pointer#24.motion(187310276, 22.60156250, 52.39843750) -[2618642.394] {Default Queue} wl_pointer#81.motion(187310276, 22.60156250, 52.39843750) -[2618642.399] {Default Queue} wl_pointer#105.motion(187310276, 22.60156250, 52.39843750) -[2618642.404] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618642.409] {Default Queue} wl_pointer#137.motion(187310276, 22.60156250, 52.39843750) -[2618642.413] {Default Queue} wl_pointer#169.motion(187310276, 22.60156250, 52.39843750) -[2618642.417] {Default Queue} wl_pointer#201.motion(187310276, 22.60156250, 52.39843750) -[2618642.422] {Default Queue} wl_pointer#233.motion(187310276, 22.60156250, 52.39843750) -[2618642.426] {Default Queue} wl_pointer#265.motion(187310276, 22.60156250, 52.39843750) -[2618642.430] {Default Queue} wl_pointer#297.motion(187310276, 22.60156250, 52.39843750) -[2618642.435] {Default Queue} wl_pointer#329.motion(187310276, 22.60156250, 52.39843750) -[2618642.439] {Default Queue} wl_pointer#361.motion(187310276, 22.60156250, 52.39843750) -[2618642.443] {Default Queue} wl_pointer#393.motion(187310276, 22.60156250, 52.39843750) -[2618642.448] {Default Queue} wl_pointer#425.motion(187310276, 22.60156250, 52.39843750) -[2618642.452] {Default Queue} wl_pointer#457.motion(187310276, 22.60156250, 52.39843750) -[2618642.456] {Default Queue} wl_pointer#489.motion(187310276, 22.60156250, 52.39843750) -[2618642.461] {Default Queue} wl_pointer#521.motion(187310276, 22.60156250, 52.39843750) -[2618642.465] {Default Queue} wl_pointer#553.motion(187310276, 22.60156250, 52.39843750) -[2618642.469] {Default Queue} wl_pointer#585.motion(187310276, 22.60156250, 52.39843750) -[2618642.474] {Default Queue} wl_pointer#617.motion(187310276, 22.60156250, 52.39843750) -[2618642.478] {Default Queue} wl_pointer#649.motion(187310276, 22.60156250, 52.39843750) -[2618642.483] {Default Queue} wl_pointer#681.motion(187310276, 22.60156250, 52.39843750) -[2618642.489] {Default Queue} wl_pointer#713.motion(187310276, 22.60156250, 52.39843750) -[2618642.495] {Default Queue} wl_pointer#745.motion(187310276, 22.60156250, 52.39843750) -[2618642.500] {Default Queue} wl_pointer#777.motion(187310276, 22.60156250, 52.39843750) -[2618642.505] {Default Queue} wl_pointer#809.motion(187310276, 22.60156250, 52.39843750) -[2618642.509] {Default Queue} wl_pointer#841.motion(187310276, 22.60156250, 52.39843750) -[2618642.513] {Default Queue} wl_pointer#873.motion(187310276, 22.60156250, 52.39843750) -[2618642.518] {Default Queue} wl_pointer#905.motion(187310276, 22.60156250, 52.39843750) -[2618642.522] {Default Queue} wl_pointer#937.motion(187310276, 22.60156250, 52.39843750) -[2618642.526] {Default Queue} wl_pointer#969.motion(187310276, 22.60156250, 52.39843750) -[2618642.531] {Default Queue} wl_pointer#1001.motion(187310276, 22.60156250, 52.39843750) -[2618642.535] {Default Queue} wl_pointer#1033.motion(187310276, 22.60156250, 52.39843750) -[2618642.539] {Default Queue} wl_pointer#1065.motion(187310276, 22.60156250, 52.39843750) -[2618642.544] {Default Queue} wl_pointer#1097.motion(187310276, 22.60156250, 52.39843750) -[2618642.548] {Default Queue} wl_pointer#1129.motion(187310276, 22.60156250, 52.39843750) -[2618642.556] {Default Queue} wl_pointer#1161.motion(187310276, 22.60156250, 52.39843750) -[2618642.562] {Default Queue} wl_pointer#1193.motion(187310276, 22.60156250, 52.39843750) -[2618642.568] {Default Queue} wl_pointer#1225.motion(187310276, 22.60156250, 52.39843750) -[2618642.574] {Default Queue} wl_pointer#1257.motion(187310276, 22.60156250, 52.39843750) -[2618642.580] {Default Queue} wl_pointer#1289.motion(187310276, 22.60156250, 52.39843750) -[2618642.586] {Default Queue} wl_pointer#1321.motion(187310276, 22.60156250, 52.39843750) -[2618642.591] {Default Queue} wl_pointer#1353.motion(187310276, 22.60156250, 52.39843750) -[2618642.597] {Default Queue} wl_pointer#1385.motion(187310276, 22.60156250, 52.39843750) -[2618642.602] {Default Queue} wl_pointer#1417.motion(187310276, 22.60156250, 52.39843750) -[2618642.608] {Default Queue} wl_pointer#1449.motion(187310276, 22.60156250, 52.39843750) -[2618642.614] {Default Queue} wl_pointer#1481.motion(187310276, 22.60156250, 52.39843750) -[2618642.619] {Default Queue} wl_pointer#1513.motion(187310276, 22.60156250, 52.39843750) -[2618642.625] {Default Queue} wl_pointer#1545.motion(187310276, 22.60156250, 52.39843750) -[2618642.643] {Default Queue} wl_pointer#1577.motion(187310276, 22.60156250, 52.39843750) -[2618642.648] {Default Queue} wl_pointer#1609.motion(187310276, 22.60156250, 52.39843750) -[2618642.653] {Default Queue} wl_pointer#1641.motion(187310276, 22.60156250, 52.39843750) -[2618642.657] {Default Queue} wl_pointer#1673.motion(187310276, 22.60156250, 52.39843750) -[2618642.661] {Default Queue} wl_pointer#1705.motion(187310276, 22.60156250, 52.39843750) -[2618642.666] {Default Queue} wl_pointer#1737.motion(187310276, 22.60156250, 52.39843750) -[2618642.670] {Default Queue} wl_pointer#1762.motion(187310276, 22.60156250, 52.39843750) -[2618642.674] {Default Queue} wl_pointer#1801.motion(187310276, 22.60156250, 52.39843750) -[2618642.679] {Default Queue} wl_pointer#1833.motion(187310276, 22.60156250, 52.39843750) -[2618642.683] {Default Queue} wl_pointer#1865.motion(187310276, 22.60156250, 52.39843750) -[2618642.687] {Default Queue} wl_pointer#1897.motion(187310276, 22.60156250, 52.39843750) -[2618642.692] {Default Queue} wl_pointer#1929.motion(187310276, 22.60156250, 52.39843750) -[2618642.696] {Default Queue} wl_pointer#1961.motion(187310276, 22.60156250, 52.39843750) -[2618642.700] {Default Queue} wl_pointer#1993.motion(187310276, 22.60156250, 52.39843750) -[2618642.704] {Default Queue} wl_pointer#2025.motion(187310276, 22.60156250, 52.39843750) -[2618642.709] {Default Queue} wl_pointer#2057.motion(187310276, 22.60156250, 52.39843750) -[2618642.713] {Default Queue} wl_pointer#2089.motion(187310276, 22.60156250, 52.39843750) -[2618642.717] {Default Queue} wl_pointer#2121.motion(187310276, 22.60156250, 52.39843750) -[2618642.722] {Default Queue} wl_pointer#2153.motion(187310276, 22.60156250, 52.39843750) -[2618642.726] {Default Queue} wl_pointer#2185.motion(187310276, 22.60156250, 52.39843750) -[2618642.730] {Default Queue} wl_pointer#2217.motion(187310276, 22.60156250, 52.39843750) -[2618642.734] {Default Queue} wl_pointer#2249.motion(187310276, 22.60156250, 52.39843750) -[2618642.739] {Default Queue} wl_pointer#2281.motion(187310276, 22.60156250, 52.39843750) -[2618642.743] {Default Queue} wl_pointer#2313.motion(187310276, 22.60156250, 52.39843750) -[2618642.748] {Default Queue} wl_pointer#2345.motion(187310276, 22.60156250, 52.39843750) -[2618642.752] {Default Queue} wl_pointer#2377.motion(187310276, 22.60156250, 52.39843750) -[2618642.756] {Default Queue} wl_pointer#2409.motion(187310276, 22.60156250, 52.39843750) -[2618642.761] {Default Queue} wl_pointer#2441.motion(187310276, 22.60156250, 52.39843750) -[2618642.765] {Default Queue} wl_pointer#2473.motion(187310276, 22.60156250, 52.39843750) -[2618642.769] {Default Queue} wl_pointer#2498.motion(187310276, 22.60156250, 52.39843750) -[2618642.781] {Default Queue} -> wl_buffer#3292.destroy() -[2618642.786] {Default Queue} -> wl_buffer#3293.destroy() -[2618642.790] {Default Queue} -> wl_shm_pool#3484.destroy() -[2618642.794] {Default Queue} -> wl_shm_pool#3291.destroy() -[2618642.803] {Default Queue} -> wl_surface#3294.destroy() -[2618642.844] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3671, fd 581, 640) -[2618642.849] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 582, 640) -[2618642.854] {Default Queue} -> wl_shm_pool#3671.create_buffer(new id wl_buffer#3682, 0, 10, 16, 40, 0) -[2618642.858] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) -[2618642.872] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3684) -[2618642.876] {Default Queue} -> wl_surface#3684.attach(wl_buffer#3682, 0, 0) -[2618642.880] {Default Queue} -> wl_surface#3684.commit() -[2618642.886] {Default Queue} -> wl_surface#3684.attach(wl_buffer#3682, 0, 0) -[2618642.890] {Default Queue} -> wl_surface#3684.commit() -[2618642.894] {Default Queue} wl_pointer#2537.motion(187310276, 22.60156250, 52.39843750) -[2618642.899] {Default Queue} wl_pointer#2569.motion(187310276, 22.60156250, 52.39843750) -[2618642.903] {Default Queue} wl_pointer#2601.motion(187310276, 22.60156250, 52.39843750) -[2618642.907] {Default Queue} wl_pointer#2633.motion(187310276, 22.60156250, 52.39843750) -[2618642.912] {Default Queue} wl_pointer#2665.motion(187310276, 22.60156250, 52.39843750) -[2618642.916] {Default Queue} wl_pointer#2697.motion(187310276, 22.60156250, 52.39843750) -[2618642.920] {Default Queue} wl_pointer#2729.motion(187310276, 22.60156250, 52.39843750) -[2618642.925] {Default Queue} wl_pointer#2761.motion(187310276, 22.60156250, 52.39843750) -[2618642.929] {Default Queue} wl_pointer#2793.motion(187310276, 22.60156250, 52.39843750) -[2618642.933] {Default Queue} wl_pointer#2825.motion(187310276, 22.60156250, 52.39843750) -[2618642.938] {Default Queue} wl_pointer#2857.motion(187310276, 22.60156250, 52.39843750) -[2618642.942] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) -[2618642.946] {Default Queue} -> wl_surface#903.commit() -[2618644.011] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) -[2618644.016] {Default Queue} -> wl_surface#903.commit() -[2618644.023] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) -[2618644.027] {Default Queue} -> wl_surface#903.commit() -[2618644.033] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) -[2618644.037] {Default Queue} -> wl_surface#1511.commit() -[2618645.099] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) -[2618645.105] {Default Queue} -> wl_surface#1511.commit() -[2618645.115] {Default Queue} -> wl_region#1535.subtract(0, 0, 19, 48) -[2618645.120] {Default Queue} -> wl_region#1535.add(-20, -49, 19, 48) -[2618645.125] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2618645.129] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2618645.234] {Default Queue} -> wl_region#1535.subtract(0, 0, 19, 48) -[2618645.239] {Default Queue} -> wl_region#1535.add(-20, -49, 19, 48) -[2618645.243] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2618645.248] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2618645.254] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618645.258] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618645.331] {Default Queue} -> wl_region#1535.subtract(0, 0, 19, 48) -[2618645.336] {Default Queue} -> wl_region#1535.add(-20, -49, 19, 48) -[2618645.340] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2618645.344] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2618645.349] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618645.353] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618645.358] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) -[2618645.362] {Default Queue} -> wl_surface#1511.commit() -[2618645.367] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) -[2618645.371] {Default Queue} -> wl_surface#1511.commit() -[2618645.377] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) -[2618645.386] {Default Queue} -> wl_surface#1511.commit() -[2618645.395] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) -[2618645.399] {Default Queue} -> wl_surface#1575.commit() -[2618646.384] {Display Queue} wl_display#1.delete_id(3454) -[2618646.390] {Display Queue} wl_display#1.delete_id(3451) -[2618646.394] {Display Queue} wl_display#1.delete_id(3452) -[2618646.398] {Display Queue} wl_display#1.delete_id(3517) -[2618646.402] {Display Queue} wl_display#1.delete_id(3518) -[2618646.406] {Display Queue} wl_display#1.delete_id(3675) -[2618646.410] {Display Queue} wl_display#1.delete_id(3678) -[2618646.414] {Display Queue} wl_display#1.delete_id(3674) -[2618646.418] {Display Queue} wl_display#1.delete_id(3676) -[2618646.422] {Display Queue} wl_display#1.delete_id(3677) -[2618646.426] {Display Queue} wl_display#1.delete_id(3683) -[2618646.430] {Display Queue} wl_display#1.delete_id(94) -[2618646.433] {Display Queue} wl_display#1.delete_id(93) -[2618646.437] {Display Queue} wl_display#1.delete_id(92) -[2618646.441] {Display Queue} wl_display#1.delete_id(91) -[2618646.445] {Default Queue} wl_pointer#2889.motion(187310276, 22.60156250, 52.39843750) -[2618646.450] {Default Queue} wl_pointer#2921.motion(187310276, 22.60156250, 52.39843750) -[2618646.455] {Default Queue} wl_pointer#2953.motion(187310276, 22.60156250, 52.39843750) -[2618646.459] {Default Queue} wl_pointer#2985.motion(187310276, 22.60156250, 52.39843750) -[2618646.463] {Default Queue} wl_pointer#3017.motion(187310276, 22.60156250, 52.39843750) -[2618646.468] {Default Queue} wl_pointer#3049.motion(187310276, 22.60156250, 52.39843750) -[2618646.472] {Default Queue} wl_pointer#3081.motion(187310276, 22.60156250, 52.39843750) -[2618646.476] {Default Queue} wl_pointer#3113.motion(187310276, 22.60156250, 52.39843750) -[2618646.480] {Default Queue} wl_pointer#3145.motion(187310276, 22.60156250, 52.39843750) -[2618646.485] {Default Queue} wl_pointer#3177.motion(187310276, 22.60156250, 52.39843750) -[2618646.489] {Default Queue} wl_pointer#3209.motion(187310276, 22.60156250, 52.39843750) -[2618646.493] {Default Queue} wl_pointer#3241.motion(187310276, 22.60156250, 52.39843750) -[2618646.498] {Default Queue} wl_pointer#3273.motion(187310276, 22.60156250, 52.39843750) -[2618646.502] {Default Queue} wl_pointer#3305.motion(187310276, 22.60156250, 52.39843750) -[2618646.506] {Default Queue} wl_pointer#3337.motion(187310276, 22.60156250, 52.39843750) -[2618646.511] {Default Queue} wl_pointer#3369.motion(187310276, 22.60156250, 52.39843750) -[2618646.515] {Default Queue} wl_pointer#3401.motion(187310276, 22.60156250, 52.39843750) -[2618646.519] {Default Queue} wl_pointer#3433.motion(187310276, 22.60156250, 52.39843750) -[2618646.524] {Default Queue} wl_pointer#3465.motion(187310276, 22.60156250, 52.39843750) -[2618646.528] {Default Queue} wl_pointer#3497.motion(187310276, 22.60156250, 52.39843750) -[2618646.532] {Default Queue} wl_pointer#3529.motion(187310276, 22.60156250, 52.39843750) -[2618646.537] {Default Queue} wl_pointer#3561.motion(187310276, 22.60156250, 52.39843750) -[2618646.541] {Default Queue} wl_pointer#3593.motion(187310276, 22.60156250, 52.39843750) -[2618646.545] {Default Queue} wl_pointer#3625.motion(187310276, 22.60156250, 52.39843750) -[2618646.550] {Default Queue} wl_pointer#3657.motion(187310276, 22.60156250, 52.39843750) -[2618646.554] {Default Queue} wl_pointer#3695.motion(187310276, 22.60156250, 52.39843750) -[2618646.558] {Default Queue} wl_pointer#24.motion(187310276, 23.00000000, 51.19921875) -[2618646.562] {Default Queue} wl_pointer#81.motion(187310276, 23.00000000, 51.19921875) -[2618646.568] {Default Queue} wl_pointer#105.motion(187310276, 23.00000000, 51.19921875) -[2618646.572] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618646.577] {Default Queue} wl_pointer#137.motion(187310276, 23.00000000, 51.19921875) -[2618646.581] {Default Queue} wl_pointer#169.motion(187310276, 23.00000000, 51.19921875) -[2618646.585] {Default Queue} wl_pointer#201.motion(187310276, 23.00000000, 51.19921875) -[2618646.590] {Default Queue} wl_pointer#233.motion(187310276, 23.00000000, 51.19921875) -[2618646.597] {Default Queue} wl_pointer#265.motion(187310276, 23.00000000, 51.19921875) -[2618646.603] {Default Queue} wl_pointer#297.motion(187310276, 23.00000000, 51.19921875) -[2618646.607] {Default Queue} wl_pointer#329.motion(187310276, 23.00000000, 51.19921875) -[2618646.612] {Default Queue} wl_pointer#361.motion(187310276, 23.00000000, 51.19921875) -[2618646.616] {Default Queue} wl_pointer#393.motion(187310276, 23.00000000, 51.19921875) -[2618646.620] {Default Queue} wl_pointer#425.motion(187310276, 23.00000000, 51.19921875) -[2618646.625] {Default Queue} wl_pointer#457.motion(187310276, 23.00000000, 51.19921875) -[2618646.629] {Default Queue} wl_pointer#489.motion(187310276, 23.00000000, 51.19921875) -[2618646.633] {Default Queue} wl_pointer#521.motion(187310276, 23.00000000, 51.19921875) -[2618646.638] {Default Queue} wl_pointer#553.motion(187310276, 23.00000000, 51.19921875) -[2618646.642] {Default Queue} wl_pointer#585.motion(187310276, 23.00000000, 51.19921875) -[2618646.646] {Default Queue} wl_pointer#617.motion(187310276, 23.00000000, 51.19921875) -[2618646.650] {Default Queue} wl_pointer#649.motion(187310276, 23.00000000, 51.19921875) -[2618646.655] {Default Queue} wl_pointer#681.motion(187310276, 23.00000000, 51.19921875) -[2618646.659] {Default Queue} wl_pointer#713.motion(187310276, 23.00000000, 51.19921875) -[2618646.663] {Default Queue} wl_pointer#745.motion(187310276, 23.00000000, 51.19921875) -[2618646.667] {Default Queue} wl_pointer#777.motion(187310276, 23.00000000, 51.19921875) -[2618646.672] {Default Queue} wl_pointer#809.motion(187310276, 23.00000000, 51.19921875) -[2618646.676] {Default Queue} wl_pointer#841.motion(187310276, 23.00000000, 51.19921875) -[2618646.680] {Default Queue} wl_pointer#873.motion(187310276, 23.00000000, 51.19921875) -[2618646.684] {Default Queue} wl_pointer#905.motion(187310276, 23.00000000, 51.19921875) -[2618646.689] {Default Queue} wl_pointer#937.motion(187310276, 23.00000000, 51.19921875) -[2618646.711] {Default Queue} wl_pointer#969.motion(187310276, 23.00000000, 51.19921875) -[2618646.715] {Default Queue} wl_pointer#1001.motion(187310276, 23.00000000, 51.19921875) -[2618646.726] {Default Queue} wl_pointer#1033.motion(187310276, 23.00000000, 51.19921875) -[2618646.731] {Default Queue} wl_pointer#1065.motion(187310276, 23.00000000, 51.19921875) -[2618646.736] {Default Queue} wl_pointer#1097.motion(187310276, 23.00000000, 51.19921875) -[2618646.741] {Default Queue} wl_pointer#1129.motion(187310276, 23.00000000, 51.19921875) -[2618646.752] {Default Queue} wl_pointer#1161.motion(187310276, 23.00000000, 51.19921875) -[2618646.761] {Default Queue} wl_pointer#1193.motion(187310276, 23.00000000, 51.19921875) -[2618646.768] {Default Queue} wl_pointer#1225.motion(187310276, 23.00000000, 51.19921875) -[2618646.774] {Default Queue} wl_pointer#1257.motion(187310276, 23.00000000, 51.19921875) -[2618646.779] {Default Queue} wl_pointer#1289.motion(187310276, 23.00000000, 51.19921875) -[2618646.783] {Default Queue} wl_pointer#1321.motion(187310276, 23.00000000, 51.19921875) -[2618646.788] {Default Queue} wl_pointer#1353.motion(187310276, 23.00000000, 51.19921875) -[2618646.792] {Default Queue} wl_pointer#1385.motion(187310276, 23.00000000, 51.19921875) -[2618646.796] {Default Queue} wl_pointer#1417.motion(187310276, 23.00000000, 51.19921875) -[2618646.801] {Default Queue} wl_pointer#1449.motion(187310276, 23.00000000, 51.19921875) -[2618646.805] {Default Queue} wl_pointer#1481.motion(187310276, 23.00000000, 51.19921875) -[2618646.809] {Default Queue} wl_pointer#1513.motion(187310276, 23.00000000, 51.19921875) -[2618646.814] {Default Queue} wl_pointer#1545.motion(187310276, 23.00000000, 51.19921875) -[2618646.818] {Default Queue} wl_pointer#1577.motion(187310276, 23.00000000, 51.19921875) -[2618646.823] {Default Queue} wl_pointer#1609.motion(187310276, 23.00000000, 51.19921875) -[2618646.827] {Default Queue} wl_pointer#1641.motion(187310276, 23.00000000, 51.19921875) -[2618646.831] {Default Queue} wl_pointer#1673.motion(187310276, 23.00000000, 51.19921875) -[2618646.836] {Default Queue} wl_pointer#1705.motion(187310276, 23.00000000, 51.19921875) -[2618646.846] {Default Queue} wl_pointer#1737.motion(187310276, 23.00000000, 51.19921875) -[2618646.853] {Default Queue} wl_pointer#1762.motion(187310276, 23.00000000, 51.19921875) -[2618646.857] {Default Queue} wl_pointer#1801.motion(187310276, 23.00000000, 51.19921875) -[2618646.868] {Default Queue} wl_pointer#1833.motion(187310276, 23.00000000, 51.19921875) -[2618646.872] {Default Queue} wl_pointer#1865.motion(187310276, 23.00000000, 51.19921875) -[2618646.877] {Default Queue} wl_pointer#1897.motion(187310276, 23.00000000, 51.19921875) -[2618646.881] {Default Queue} wl_pointer#1929.motion(187310276, 23.00000000, 51.19921875) -[2618646.885] {Default Queue} wl_pointer#1961.motion(187310276, 23.00000000, 51.19921875) -[2618646.890] {Default Queue} wl_pointer#1993.motion(187310276, 23.00000000, 51.19921875) -[2618646.894] {Default Queue} wl_pointer#2025.motion(187310276, 23.00000000, 51.19921875) -[2618646.898] {Default Queue} wl_pointer#2057.motion(187310276, 23.00000000, 51.19921875) -[2618646.902] {Default Queue} wl_pointer#2089.motion(187310276, 23.00000000, 51.19921875) -[2618646.907] {Default Queue} wl_pointer#2121.motion(187310276, 23.00000000, 51.19921875) -[2618646.911] {Default Queue} wl_pointer#2153.motion(187310276, 23.00000000, 51.19921875) -[2618646.915] {Default Queue} wl_pointer#2185.motion(187310276, 23.00000000, 51.19921875) -[2618646.920] {Default Queue} wl_pointer#2217.motion(187310276, 23.00000000, 51.19921875) -[2618646.924] {Default Queue} wl_pointer#2249.motion(187310276, 23.00000000, 51.19921875) -[2618646.928] {Default Queue} wl_pointer#2281.motion(187310276, 23.00000000, 51.19921875) -[2618646.932] {Default Queue} wl_pointer#2313.motion(187310276, 23.00000000, 51.19921875) -[2618646.937] {Default Queue} wl_pointer#2345.motion(187310276, 23.00000000, 51.19921875) -[2618646.942] {Default Queue} wl_pointer#2377.motion(187310276, 23.00000000, 51.19921875) -[2618646.946] {Default Queue} wl_pointer#2409.motion(187310276, 23.00000000, 51.19921875) -[2618646.950] {Default Queue} wl_pointer#2441.motion(187310276, 23.00000000, 51.19921875) -[2618646.954] {Default Queue} wl_pointer#2473.motion(187310276, 23.00000000, 51.19921875) -[2618646.959] {Default Queue} wl_pointer#2498.motion(187310276, 23.00000000, 51.19921875) -[2618646.972] {Default Queue} -> wl_buffer#3682.destroy() -[2618646.977] {Default Queue} -> wl_buffer#3681.destroy() -[2618646.981] {Default Queue} -> wl_shm_pool#3671.destroy() -[2618646.985] {Default Queue} -> wl_shm_pool#3679.destroy() -[2618646.990] {Default Queue} -> wl_surface#3684.destroy() -[2618647.030] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#91, fd 575, 640) -[2618647.037] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 578, 640) -[2618647.042] {Default Queue} -> wl_shm_pool#91.create_buffer(new id wl_buffer#93, 0, 10, 16, 40, 0) -[2618647.047] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) -[2618647.054] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3683) -[2618647.058] {Default Queue} -> wl_surface#3683.attach(wl_buffer#93, 0, 0) -[2618647.063] {Default Queue} -> wl_surface#3683.commit() -[2618647.068] {Default Queue} -> wl_surface#3683.attach(wl_buffer#93, 0, 0) -[2618647.072] {Default Queue} -> wl_surface#3683.commit() -[2618647.077] {Default Queue} wl_pointer#2537.motion(187310276, 23.00000000, 51.19921875) -[2618647.081] {Default Queue} wl_pointer#2569.motion(187310276, 23.00000000, 51.19921875) -[2618647.086] {Default Queue} wl_pointer#2601.motion(187310276, 23.00000000, 51.19921875) -[2618647.090] {Default Queue} wl_pointer#2633.motion(187310276, 23.00000000, 51.19921875) -[2618647.094] {Default Queue} wl_pointer#2665.motion(187310276, 23.00000000, 51.19921875) -[2618647.099] {Default Queue} wl_pointer#2697.motion(187310276, 23.00000000, 51.19921875) -[2618647.103] {Default Queue} wl_pointer#2729.motion(187310276, 23.00000000, 51.19921875) -[2618647.107] {Default Queue} wl_pointer#2761.motion(187310276, 23.00000000, 51.19921875) -[2618647.111] {Default Queue} wl_pointer#2793.motion(187310276, 23.00000000, 51.19921875) -[2618647.119] {Default Queue} wl_pointer#2825.motion(187310276, 23.00000000, 51.19921875) -[2618647.125] {Default Queue} wl_pointer#2857.motion(187310276, 23.00000000, 51.19921875) -[2618647.130] {Default Queue} wl_pointer#2889.motion(187310276, 23.00000000, 51.19921875) -[2618647.134] {Default Queue} wl_pointer#2921.motion(187310276, 23.00000000, 51.19921875) -[2618647.138] {Default Queue} wl_pointer#2953.motion(187310276, 23.00000000, 51.19921875) -[2618647.143] {Default Queue} wl_pointer#2985.motion(187310276, 23.00000000, 51.19921875) -[2618647.147] {Default Queue} wl_pointer#3017.motion(187310276, 23.00000000, 51.19921875) -[2618647.151] {Default Queue} wl_pointer#3049.motion(187310276, 23.00000000, 51.19921875) -[2618647.156] {Default Queue} wl_pointer#3081.motion(187310276, 23.00000000, 51.19921875) -[2618647.160] {Default Queue} wl_pointer#3113.motion(187310276, 23.00000000, 51.19921875) -[2618647.164] {Default Queue} wl_pointer#3145.motion(187310276, 23.00000000, 51.19921875) -[2618647.169] {Default Queue} wl_pointer#3177.motion(187310276, 23.00000000, 51.19921875) -[2618647.173] {Default Queue} wl_pointer#3209.motion(187310276, 23.00000000, 51.19921875) -[2618647.177] {Default Queue} wl_pointer#3241.motion(187310276, 23.00000000, 51.19921875) -[2618647.182] {Default Queue} wl_pointer#3273.motion(187310276, 23.00000000, 51.19921875) -[2618647.186] {Default Queue} wl_pointer#3305.motion(187310276, 23.00000000, 51.19921875) -[2618647.190] {Default Queue} wl_pointer#3337.motion(187310276, 23.00000000, 51.19921875) -[2618647.195] {Default Queue} wl_pointer#3369.motion(187310276, 23.00000000, 51.19921875) -[2618647.199] {Default Queue} wl_pointer#3401.motion(187310276, 23.00000000, 51.19921875) -[2618647.203] {Default Queue} wl_pointer#3433.motion(187310276, 23.00000000, 51.19921875) -[2618647.208] {Default Queue} wl_pointer#3465.motion(187310276, 23.00000000, 51.19921875) -[2618647.212] {Default Queue} wl_pointer#3497.motion(187310276, 23.00000000, 51.19921875) -[2618647.216] {Default Queue} wl_pointer#3529.motion(187310276, 23.00000000, 51.19921875) -[2618647.221] {Default Queue} wl_pointer#3561.motion(187310276, 23.00000000, 51.19921875) -[2618647.225] {Default Queue} wl_pointer#3593.motion(187310276, 23.00000000, 51.19921875) -[2618647.229] {Default Queue} wl_pointer#3625.motion(187310276, 23.00000000, 51.19921875) -[2618647.234] {Default Queue} wl_pointer#3657.motion(187310276, 23.00000000, 51.19921875) -[2618647.238] {Default Queue} wl_pointer#3695.motion(187310276, 23.00000000, 51.19921875) -[2618647.248] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618647.252] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618647.257] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618647.261] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618647.270] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618647.275] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618647.279] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618647.283] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618647.288] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618647.292] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618647.296] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618647.300] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618647.305] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618647.313] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618647.318] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618647.322] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618647.326] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618647.330] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618647.335] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618647.338] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618647.394] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618647.401] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618647.405] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618647.409] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618647.416] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618647.420] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618647.431] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618647.435] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618647.439] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618647.443] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618647.448] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618647.453] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618647.457] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618647.461] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618647.465] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618647.470] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618647.474] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618647.478] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618647.482] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618647.487] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618647.491] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618647.495] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618647.501] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618647.505] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618647.510] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618647.513] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618647.518] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618647.522] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618647.526] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618647.530] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618647.535] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618647.539] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618647.543] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618647.547] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618647.552] {Default Queue} -> wl_region#1599.subtract(0, 0, 19, 48) -[2618647.556] {Default Queue} -> wl_region#1599.add(-20, -49, 19, 48) -[2618647.560] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618647.564] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618647.569] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) -[2618647.573] {Default Queue} -> wl_surface#1575.commit() -[2618647.577] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) -[2618647.581] {Default Queue} -> wl_surface#1575.commit() -[2618647.607] {Default Queue} wl_pointer#24.motion(187310281, 23.39843750, 50.39843750) -[2618647.612] {Default Queue} wl_pointer#81.motion(187310281, 23.39843750, 50.39843750) -[2618647.617] {Default Queue} wl_pointer#105.motion(187310281, 23.39843750, 50.39843750) -[2618647.622] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618647.626] {Default Queue} wl_pointer#137.motion(187310281, 23.39843750, 50.39843750) -[2618647.634] {Default Queue} wl_pointer#169.motion(187310281, 23.39843750, 50.39843750) -[2618647.639] {Default Queue} wl_pointer#201.motion(187310281, 23.39843750, 50.39843750) -[2618647.643] {Default Queue} wl_pointer#233.motion(187310281, 23.39843750, 50.39843750) -[2618647.647] {Default Queue} wl_pointer#265.motion(187310281, 23.39843750, 50.39843750) -[2618647.651] {Default Queue} wl_pointer#297.motion(187310281, 23.39843750, 50.39843750) -[2618647.659] {Default Queue} wl_pointer#329.motion(187310281, 23.39843750, 50.39843750) -[2618647.665] {Default Queue} wl_pointer#361.motion(187310281, 23.39843750, 50.39843750) -[2618647.669] {Default Queue} wl_pointer#393.motion(187310281, 23.39843750, 50.39843750) -[2618647.673] {Default Queue} wl_pointer#425.motion(187310281, 23.39843750, 50.39843750) -[2618647.678] {Default Queue} wl_pointer#457.motion(187310281, 23.39843750, 50.39843750) -[2618647.682] {Default Queue} wl_pointer#489.motion(187310281, 23.39843750, 50.39843750) -[2618647.686] {Default Queue} wl_pointer#521.motion(187310281, 23.39843750, 50.39843750) -[2618647.690] {Default Queue} wl_pointer#553.motion(187310281, 23.39843750, 50.39843750) -[2618647.695] {Default Queue} wl_pointer#585.motion(187310281, 23.39843750, 50.39843750) -[2618647.699] {Default Queue} wl_pointer#617.motion(187310281, 23.39843750, 50.39843750) -[2618647.703] {Default Queue} wl_pointer#649.motion(187310281, 23.39843750, 50.39843750) -[2618647.707] {Default Queue} wl_pointer#681.motion(187310281, 23.39843750, 50.39843750) -[2618647.712] {Default Queue} wl_pointer#713.motion(187310281, 23.39843750, 50.39843750) -[2618647.716] {Default Queue} wl_pointer#745.motion(187310281, 23.39843750, 50.39843750) -[2618647.720] {Default Queue} wl_pointer#777.motion(187310281, 23.39843750, 50.39843750) -[2618647.725] {Default Queue} wl_pointer#809.motion(187310281, 23.39843750, 50.39843750) -[2618647.729] {Default Queue} wl_pointer#841.motion(187310281, 23.39843750, 50.39843750) -[2618647.733] {Default Queue} wl_pointer#873.motion(187310281, 23.39843750, 50.39843750) -[2618647.737] {Default Queue} wl_pointer#905.motion(187310281, 23.39843750, 50.39843750) -[2618647.742] {Default Queue} wl_pointer#937.motion(187310281, 23.39843750, 50.39843750) -[2618647.746] {Default Queue} wl_pointer#969.motion(187310281, 23.39843750, 50.39843750) -[2618647.750] {Default Queue} wl_pointer#1001.motion(187310281, 23.39843750, 50.39843750) -[2618647.754] {Default Queue} wl_pointer#1033.motion(187310281, 23.39843750, 50.39843750) -[2618647.759] {Default Queue} wl_pointer#1065.motion(187310281, 23.39843750, 50.39843750) -[2618647.763] {Default Queue} wl_pointer#1097.motion(187310281, 23.39843750, 50.39843750) -[2618647.767] {Default Queue} wl_pointer#1129.motion(187310281, 23.39843750, 50.39843750) -[2618647.772] {Default Queue} wl_pointer#1161.motion(187310281, 23.39843750, 50.39843750) -[2618647.776] {Default Queue} wl_pointer#1193.motion(187310281, 23.39843750, 50.39843750) -[2618647.780] {Default Queue} wl_pointer#1225.motion(187310281, 23.39843750, 50.39843750) -[2618647.784] {Default Queue} wl_pointer#1257.motion(187310281, 23.39843750, 50.39843750) -[2618647.789] {Default Queue} wl_pointer#1289.motion(187310281, 23.39843750, 50.39843750) -[2618647.793] {Default Queue} wl_pointer#1321.motion(187310281, 23.39843750, 50.39843750) -[2618647.797] {Default Queue} wl_pointer#1353.motion(187310281, 23.39843750, 50.39843750) -[2618647.801] {Default Queue} wl_pointer#1385.motion(187310281, 23.39843750, 50.39843750) -[2618647.806] {Default Queue} wl_pointer#1417.motion(187310281, 23.39843750, 50.39843750) -[2618647.810] {Default Queue} wl_pointer#1449.motion(187310281, 23.39843750, 50.39843750) -[2618647.814] {Default Queue} wl_pointer#1481.motion(187310281, 23.39843750, 50.39843750) -[2618647.819] {Default Queue} wl_pointer#1513.motion(187310281, 23.39843750, 50.39843750) -[2618647.823] {Default Queue} wl_pointer#1545.motion(187310281, 23.39843750, 50.39843750) -[2618647.827] {Default Queue} wl_pointer#1577.motion(187310281, 23.39843750, 50.39843750) -[2618647.831] {Default Queue} wl_pointer#1609.motion(187310281, 23.39843750, 50.39843750) -[2618647.836] {Default Queue} wl_pointer#1641.motion(187310281, 23.39843750, 50.39843750) -[2618647.840] {Default Queue} wl_pointer#1673.motion(187310281, 23.39843750, 50.39843750) -[2618647.844] {Default Queue} wl_pointer#1705.motion(187310281, 23.39843750, 50.39843750) -[2618647.849] {Default Queue} wl_pointer#1737.motion(187310281, 23.39843750, 50.39843750) -[2618647.853] {Default Queue} wl_pointer#1762.motion(187310281, 23.39843750, 50.39843750) -[2618647.872] {Default Queue} wl_pointer#1801.motion(187310281, 23.39843750, 50.39843750) -[2618647.878] {Default Queue} wl_pointer#1833.motion(187310281, 23.39843750, 50.39843750) -[2618647.882] {Default Queue} wl_pointer#1865.motion(187310281, 23.39843750, 50.39843750) -[2618647.886] {Default Queue} wl_pointer#1897.motion(187310281, 23.39843750, 50.39843750) -[2618647.891] {Default Queue} wl_pointer#1929.motion(187310281, 23.39843750, 50.39843750) -[2618647.895] {Default Queue} wl_pointer#1961.motion(187310281, 23.39843750, 50.39843750) -[2618647.899] {Default Queue} wl_pointer#1993.motion(187310281, 23.39843750, 50.39843750) -[2618647.903] {Default Queue} wl_pointer#2025.motion(187310281, 23.39843750, 50.39843750) -[2618647.908] {Default Queue} wl_pointer#2057.motion(187310281, 23.39843750, 50.39843750) -[2618647.912] {Default Queue} wl_pointer#2089.motion(187310281, 23.39843750, 50.39843750) -[2618647.916] {Default Queue} wl_pointer#2121.motion(187310281, 23.39843750, 50.39843750) -[2618647.921] {Default Queue} wl_pointer#2153.motion(187310281, 23.39843750, 50.39843750) -[2618647.925] {Default Queue} wl_pointer#2185.motion(187310281, 23.39843750, 50.39843750) -[2618647.929] {Default Queue} wl_pointer#2217.motion(187310281, 23.39843750, 50.39843750) -[2618647.933] {Default Queue} wl_pointer#2249.motion(187310281, 23.39843750, 50.39843750) -[2618647.938] {Default Queue} wl_pointer#2281.motion(187310281, 23.39843750, 50.39843750) -[2618647.942] {Default Queue} wl_pointer#2313.motion(187310281, 23.39843750, 50.39843750) -[2618647.946] {Default Queue} wl_pointer#2345.motion(187310281, 23.39843750, 50.39843750) -[2618647.951] {Default Queue} wl_pointer#2377.motion(187310281, 23.39843750, 50.39843750) -[2618647.955] {Default Queue} wl_pointer#2409.motion(187310281, 23.39843750, 50.39843750) -[2618647.959] {Default Queue} wl_pointer#2441.motion(187310281, 23.39843750, 50.39843750) -[2618647.964] {Default Queue} wl_pointer#2473.motion(187310281, 23.39843750, 50.39843750) -[2618647.968] {Default Queue} wl_pointer#2498.motion(187310281, 23.39843750, 50.39843750) -[2618647.982] {Default Queue} -> wl_buffer#93.destroy() -[2618647.987] {Default Queue} -> wl_buffer#94.destroy() -[2618647.991] {Default Queue} -> wl_shm_pool#91.destroy() -[2618647.995] {Default Queue} -> wl_shm_pool#92.destroy() -[2618648.000] {Default Queue} -> wl_surface#3683.destroy() -[2618648.036] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3677, fd 581, 640) -[2618648.042] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3676, fd 582, 640) -[2618648.046] {Default Queue} -> wl_shm_pool#3677.create_buffer(new id wl_buffer#3674, 0, 10, 16, 40, 0) -[2618648.051] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 10, 16, 40, 0) -[2618648.058] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3675) -[2618648.062] {Default Queue} -> wl_surface#3675.attach(wl_buffer#3674, 0, 0) -[2618648.067] {Default Queue} -> wl_surface#3675.commit() -[2618648.072] {Default Queue} -> wl_surface#3675.attach(wl_buffer#3674, 0, 0) -[2618648.076] {Default Queue} -> wl_surface#3675.commit() -[2618648.080] {Default Queue} wl_pointer#2537.motion(187310281, 23.39843750, 50.39843750) -[2618648.085] {Default Queue} wl_pointer#2569.motion(187310281, 23.39843750, 50.39843750) -[2618648.089] {Default Queue} wl_pointer#2601.motion(187310281, 23.39843750, 50.39843750) -[2618648.093] {Default Queue} wl_pointer#2633.motion(187310281, 23.39843750, 50.39843750) -[2618648.098] {Default Queue} wl_pointer#2665.motion(187310281, 23.39843750, 50.39843750) -[2618648.102] {Default Queue} wl_pointer#2697.motion(187310281, 23.39843750, 50.39843750) -[2618648.106] {Default Queue} wl_pointer#2729.motion(187310281, 23.39843750, 50.39843750) -[2618648.110] {Default Queue} wl_pointer#2761.motion(187310281, 23.39843750, 50.39843750) -[2618648.115] {Default Queue} wl_pointer#2793.motion(187310281, 23.39843750, 50.39843750) -[2618648.119] {Default Queue} wl_pointer#2825.motion(187310281, 23.39843750, 50.39843750) -[2618648.127] {Default Queue} wl_pointer#2857.motion(187310281, 23.39843750, 50.39843750) -[2618648.133] {Default Queue} wl_pointer#2889.motion(187310281, 23.39843750, 50.39843750) -[2618648.137] {Default Queue} wl_pointer#2921.motion(187310281, 23.39843750, 50.39843750) -[2618648.141] {Default Queue} wl_pointer#2953.motion(187310281, 23.39843750, 50.39843750) -[2618648.146] {Default Queue} wl_pointer#2985.motion(187310281, 23.39843750, 50.39843750) -[2618648.150] {Default Queue} wl_pointer#3017.motion(187310281, 23.39843750, 50.39843750) -[2618648.154] {Default Queue} wl_pointer#3049.motion(187310281, 23.39843750, 50.39843750) -[2618648.158] {Default Queue} wl_pointer#3081.motion(187310281, 23.39843750, 50.39843750) -[2618648.163] {Default Queue} wl_pointer#3113.motion(187310281, 23.39843750, 50.39843750) -[2618648.167] {Default Queue} wl_pointer#3145.motion(187310281, 23.39843750, 50.39843750) -[2618648.171] {Default Queue} wl_pointer#3177.motion(187310281, 23.39843750, 50.39843750) -[2618648.176] {Default Queue} wl_pointer#3209.motion(187310281, 23.39843750, 50.39843750) -[2618648.180] {Default Queue} wl_pointer#3241.motion(187310281, 23.39843750, 50.39843750) -[2618648.184] {Default Queue} wl_pointer#3273.motion(187310281, 23.39843750, 50.39843750) -[2618648.188] {Default Queue} wl_pointer#3305.motion(187310281, 23.39843750, 50.39843750) -[2618648.193] {Default Queue} wl_pointer#3337.motion(187310281, 23.39843750, 50.39843750) -[2618648.197] {Default Queue} wl_pointer#3369.motion(187310281, 23.39843750, 50.39843750) -[2618648.201] {Default Queue} wl_pointer#3401.motion(187310281, 23.39843750, 50.39843750) -[2618648.205] {Default Queue} wl_pointer#3433.motion(187310281, 23.39843750, 50.39843750) -[2618648.210] {Default Queue} wl_pointer#3465.motion(187310281, 23.39843750, 50.39843750) -[2618648.214] {Default Queue} wl_pointer#3497.motion(187310281, 23.39843750, 50.39843750) -[2618648.219] {Default Queue} wl_pointer#3529.motion(187310281, 23.39843750, 50.39843750) -[2618648.223] {Default Queue} wl_pointer#3561.motion(187310281, 23.39843750, 50.39843750) -[2618648.227] {Default Queue} wl_pointer#3593.motion(187310281, 23.39843750, 50.39843750) -[2618648.231] {Default Queue} wl_pointer#3625.motion(187310281, 23.39843750, 50.39843750) -[2618648.236] {Default Queue} wl_pointer#3657.motion(187310281, 23.39843750, 50.39843750) -[2618648.240] {Default Queue} wl_pointer#3695.motion(187310281, 23.39843750, 50.39843750) -[2618648.244] {Default Queue} wl_pointer#24.motion(187310281, 23.39843750, 49.19921875) -[2618648.248] {Default Queue} wl_pointer#81.motion(187310281, 23.39843750, 49.19921875) -[2618648.253] {Default Queue} wl_pointer#105.motion(187310281, 23.39843750, 49.19921875) -[2618648.258] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618648.262] {Default Queue} wl_pointer#137.motion(187310281, 23.39843750, 49.19921875) -[2618648.266] {Default Queue} wl_pointer#169.motion(187310281, 23.39843750, 49.19921875) -[2618648.271] {Default Queue} wl_pointer#201.motion(187310281, 23.39843750, 49.19921875) -[2618648.275] {Default Queue} wl_pointer#233.motion(187310281, 23.39843750, 49.19921875) -[2618648.279] {Default Queue} wl_pointer#265.motion(187310281, 23.39843750, 49.19921875) -[2618648.283] {Default Queue} wl_pointer#297.motion(187310281, 23.39843750, 49.19921875) -[2618648.288] {Default Queue} wl_pointer#329.motion(187310281, 23.39843750, 49.19921875) -[2618648.292] {Default Queue} wl_pointer#361.motion(187310281, 23.39843750, 49.19921875) -[2618648.296] {Default Queue} wl_pointer#393.motion(187310281, 23.39843750, 49.19921875) -[2618648.300] {Default Queue} wl_pointer#425.motion(187310281, 23.39843750, 49.19921875) -[2618648.305] {Default Queue} wl_pointer#457.motion(187310281, 23.39843750, 49.19921875) -[2618648.309] {Default Queue} wl_pointer#489.motion(187310281, 23.39843750, 49.19921875) -[2618648.313] {Default Queue} wl_pointer#521.motion(187310281, 23.39843750, 49.19921875) -[2618648.317] {Default Queue} wl_pointer#553.motion(187310281, 23.39843750, 49.19921875) -[2618648.322] {Default Queue} wl_pointer#585.motion(187310281, 23.39843750, 49.19921875) -[2618648.329] {Default Queue} wl_pointer#617.motion(187310281, 23.39843750, 49.19921875) -[2618648.334] {Default Queue} wl_pointer#649.motion(187310281, 23.39843750, 49.19921875) -[2618648.339] {Default Queue} wl_pointer#681.motion(187310281, 23.39843750, 49.19921875) -[2618648.343] {Default Queue} wl_pointer#713.motion(187310281, 23.39843750, 49.19921875) -[2618648.347] {Default Queue} wl_pointer#745.motion(187310281, 23.39843750, 49.19921875) -[2618648.352] {Default Queue} wl_pointer#777.motion(187310281, 23.39843750, 49.19921875) -[2618648.356] {Default Queue} wl_pointer#809.motion(187310281, 23.39843750, 49.19921875) -[2618648.360] {Default Queue} wl_pointer#841.motion(187310281, 23.39843750, 49.19921875) -[2618648.364] {Default Queue} wl_pointer#873.motion(187310281, 23.39843750, 49.19921875) -[2618648.369] {Default Queue} wl_pointer#905.motion(187310281, 23.39843750, 49.19921875) -[2618648.373] {Default Queue} wl_pointer#937.motion(187310281, 23.39843750, 49.19921875) -[2618648.377] {Default Queue} wl_pointer#969.motion(187310281, 23.39843750, 49.19921875) -[2618648.381] {Default Queue} wl_pointer#1001.motion(187310281, 23.39843750, 49.19921875) -[2618648.386] {Default Queue} wl_pointer#1033.motion(187310281, 23.39843750, 49.19921875) -[2618648.390] {Default Queue} wl_pointer#1065.motion(187310281, 23.39843750, 49.19921875) -[2618648.394] {Default Queue} wl_pointer#1097.motion(187310281, 23.39843750, 49.19921875) -[2618648.399] {Default Queue} wl_pointer#1129.motion(187310281, 23.39843750, 49.19921875) -[2618648.403] {Default Queue} wl_pointer#1161.motion(187310281, 23.39843750, 49.19921875) -[2618648.407] {Default Queue} wl_pointer#1193.motion(187310281, 23.39843750, 49.19921875) -[2618648.412] {Default Queue} wl_pointer#1225.motion(187310281, 23.39843750, 49.19921875) -[2618648.416] {Default Queue} wl_pointer#1257.motion(187310281, 23.39843750, 49.19921875) -[2618648.420] {Default Queue} wl_pointer#1289.motion(187310281, 23.39843750, 49.19921875) -[2618648.424] {Default Queue} wl_pointer#1321.motion(187310281, 23.39843750, 49.19921875) -[2618648.429] {Default Queue} wl_pointer#1353.motion(187310281, 23.39843750, 49.19921875) -[2618648.433] {Default Queue} wl_pointer#1385.motion(187310281, 23.39843750, 49.19921875) -[2618648.437] {Default Queue} wl_pointer#1417.motion(187310281, 23.39843750, 49.19921875) -[2618648.441] {Default Queue} wl_pointer#1449.motion(187310281, 23.39843750, 49.19921875) -[2618648.446] {Default Queue} wl_pointer#1481.motion(187310281, 23.39843750, 49.19921875) -[2618648.450] {Default Queue} wl_pointer#1513.motion(187310281, 23.39843750, 49.19921875) -[2618648.454] {Default Queue} wl_pointer#1545.motion(187310281, 23.39843750, 49.19921875) -[2618648.459] {Default Queue} wl_pointer#1577.motion(187310281, 23.39843750, 49.19921875) -[2618648.463] {Default Queue} wl_pointer#1609.motion(187310281, 23.39843750, 49.19921875) -[2618648.467] {Default Queue} wl_pointer#1641.motion(187310281, 23.39843750, 49.19921875) -[2618648.472] {Default Queue} wl_pointer#1673.motion(187310281, 23.39843750, 49.19921875) -[2618648.476] {Default Queue} wl_pointer#1705.motion(187310281, 23.39843750, 49.19921875) -[2618648.480] {Default Queue} wl_pointer#1737.motion(187310281, 23.39843750, 49.19921875) -[2618648.484] {Default Queue} wl_pointer#1762.motion(187310281, 23.39843750, 49.19921875) -[2618648.488] {Default Queue} wl_pointer#1801.motion(187310281, 23.39843750, 49.19921875) -[2618648.493] {Default Queue} wl_pointer#1833.motion(187310281, 23.39843750, 49.19921875) -[2618648.497] {Default Queue} wl_pointer#1865.motion(187310281, 23.39843750, 49.19921875) -[2618648.501] {Default Queue} wl_pointer#1897.motion(187310281, 23.39843750, 49.19921875) -[2618648.505] {Default Queue} wl_pointer#1929.motion(187310281, 23.39843750, 49.19921875) -[2618648.510] {Default Queue} wl_pointer#1961.motion(187310281, 23.39843750, 49.19921875) -[2618648.514] {Default Queue} wl_pointer#1993.motion(187310281, 23.39843750, 49.19921875) -[2618648.518] {Default Queue} wl_pointer#2025.motion(187310281, 23.39843750, 49.19921875) -[2618648.522] {Default Queue} wl_pointer#2057.motion(187310281, 23.39843750, 49.19921875) -[2618648.529] {Default Queue} wl_pointer#2089.motion(187310281, 23.39843750, 49.19921875) -[2618648.535] {Default Queue} wl_pointer#2121.motion(187310281, 23.39843750, 49.19921875) -[2618648.539] {Default Queue} wl_pointer#2153.motion(187310281, 23.39843750, 49.19921875) -[2618648.543] {Default Queue} wl_pointer#2185.motion(187310281, 23.39843750, 49.19921875) -[2618648.548] {Default Queue} wl_pointer#2217.motion(187310281, 23.39843750, 49.19921875) -[2618648.552] {Default Queue} wl_pointer#2249.motion(187310281, 23.39843750, 49.19921875) -[2618648.556] {Default Queue} wl_pointer#2281.motion(187310281, 23.39843750, 49.19921875) -[2618648.560] {Default Queue} wl_pointer#2313.motion(187310281, 23.39843750, 49.19921875) -[2618648.565] {Default Queue} wl_pointer#2345.motion(187310281, 23.39843750, 49.19921875) -[2618648.569] {Default Queue} wl_pointer#2377.motion(187310281, 23.39843750, 49.19921875) -[2618648.573] {Default Queue} wl_pointer#2409.motion(187310281, 23.39843750, 49.19921875) -[2618648.578] {Default Queue} wl_pointer#2441.motion(187310281, 23.39843750, 49.19921875) -[2618648.582] {Default Queue} wl_pointer#2473.motion(187310281, 23.39843750, 49.19921875) -[2618648.586] {Default Queue} wl_pointer#2498.motion(187310281, 23.39843750, 49.19921875) -[2618648.596] {Default Queue} -> wl_buffer#3674.destroy() -[2618648.600] {Default Queue} -> wl_buffer#3678.destroy() -[2618648.604] {Default Queue} -> wl_shm_pool#3677.destroy() -[2618648.608] {Default Queue} -> wl_shm_pool#3676.destroy() -[2618648.613] {Default Queue} -> wl_surface#3675.destroy() -[2618648.666] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3518, fd 583, 640) -[2618648.672] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3517, fd 584, 640) -[2618648.676] {Default Queue} -> wl_shm_pool#3518.create_buffer(new id wl_buffer#3452, 0, 10, 16, 40, 0) -[2618648.681] {Default Queue} -> wl_shm_pool#3517.create_buffer(new id wl_buffer#3451, 0, 10, 16, 40, 0) -[2618648.688] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3454) -[2618648.692] {Default Queue} -> wl_surface#3454.attach(wl_buffer#3452, 0, 0) -[2618648.696] {Default Queue} -> wl_surface#3454.commit() -[2618648.701] {Default Queue} -> wl_surface#3454.attach(wl_buffer#3452, 0, 0) -[2618648.705] {Default Queue} -> wl_surface#3454.commit() -[2618648.710] {Default Queue} wl_pointer#2537.motion(187310281, 23.39843750, 49.19921875) -[2618648.714] {Default Queue} wl_pointer#2569.motion(187310281, 23.39843750, 49.19921875) -[2618648.719] {Default Queue} wl_pointer#2601.motion(187310281, 23.39843750, 49.19921875) -[2618648.723] {Default Queue} wl_pointer#2633.motion(187310281, 23.39843750, 49.19921875) -[2618648.727] {Default Queue} wl_pointer#2665.motion(187310281, 23.39843750, 49.19921875) -[2618648.732] {Default Queue} wl_pointer#2697.motion(187310281, 23.39843750, 49.19921875) -[2618648.736] {Default Queue} wl_pointer#2729.motion(187310281, 23.39843750, 49.19921875) -[2618648.740] {Default Queue} wl_pointer#2761.motion(187310281, 23.39843750, 49.19921875) -[2618648.744] {Default Queue} wl_pointer#2793.motion(187310281, 23.39843750, 49.19921875) -[2618648.749] {Default Queue} wl_pointer#2825.motion(187310281, 23.39843750, 49.19921875) -[2618648.753] {Default Queue} wl_pointer#2857.motion(187310281, 23.39843750, 49.19921875) -[2618648.758] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) -[2618648.762] {Default Queue} -> wl_surface#1575.commit() -[2618649.828] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) -[2618649.834] {Default Queue} -> wl_surface#1575.commit() -[2618649.841] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) -[2618649.845] {Default Queue} -> wl_surface#1575.commit() -[2618649.851] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) -[2618649.855] {Default Queue} -> wl_surface#1543.commit() -[2618650.919] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) -[2618650.924] {Default Queue} -> wl_surface#1543.commit() -[2618650.933] {Default Queue} -> wl_region#1567.subtract(0, 0, 19, 48) -[2618650.942] {Default Queue} -> wl_region#1567.add(-20, -49, 19, 48) -[2618650.948] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) -[2618650.953] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) -[2618650.958] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) -[2618650.963] {Default Queue} -> wl_surface#1543.commit() -[2618650.967] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) -[2618650.971] {Default Queue} -> wl_surface#1543.commit() -[2618650.976] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) -[2618650.980] {Default Queue} -> wl_surface#1543.commit() -[2618650.986] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) -[2618650.991] {Default Queue} -> wl_surface#1479.commit() -[2618651.368] {Display Queue} wl_display#1.delete_id(3485) -[2618651.374] {Display Queue} wl_display#1.delete_id(3516) -[2618651.378] {Display Queue} wl_display#1.delete_id(3483) -[2618651.382] {Display Queue} wl_display#1.delete_id(3486) -[2618651.386] {Display Queue} wl_display#1.delete_id(3515) -[2618651.390] {Display Queue} wl_display#1.delete_id(3292) -[2618651.394] {Display Queue} wl_display#1.delete_id(3293) -[2618651.398] {Display Queue} wl_display#1.delete_id(3484) -[2618651.401] {Display Queue} wl_display#1.delete_id(3291) -[2618651.405] {Display Queue} wl_display#1.delete_id(3294) -[2618651.409] {Default Queue} wl_pointer#2889.motion(187310281, 23.39843750, 49.19921875) -[2618651.414] {Default Queue} wl_pointer#2921.motion(187310281, 23.39843750, 49.19921875) -[2618651.418] {Default Queue} wl_pointer#2953.motion(187310281, 23.39843750, 49.19921875) -[2618651.423] {Default Queue} wl_pointer#2985.motion(187310281, 23.39843750, 49.19921875) -[2618651.427] {Default Queue} wl_pointer#3017.motion(187310281, 23.39843750, 49.19921875) -[2618651.431] {Default Queue} wl_pointer#3049.motion(187310281, 23.39843750, 49.19921875) -[2618651.436] {Default Queue} wl_pointer#3081.motion(187310281, 23.39843750, 49.19921875) -[2618651.440] {Default Queue} wl_pointer#3113.motion(187310281, 23.39843750, 49.19921875) -[2618651.444] {Default Queue} wl_pointer#3145.motion(187310281, 23.39843750, 49.19921875) -[2618651.449] {Default Queue} wl_pointer#3177.motion(187310281, 23.39843750, 49.19921875) -[2618651.453] {Default Queue} wl_pointer#3209.motion(187310281, 23.39843750, 49.19921875) -[2618651.458] {Default Queue} wl_pointer#3241.motion(187310281, 23.39843750, 49.19921875) -[2618651.462] {Default Queue} wl_pointer#3273.motion(187310281, 23.39843750, 49.19921875) -[2618651.466] {Default Queue} wl_pointer#3305.motion(187310281, 23.39843750, 49.19921875) -[2618651.470] {Default Queue} wl_pointer#3337.motion(187310281, 23.39843750, 49.19921875) -[2618651.475] {Default Queue} wl_pointer#3369.motion(187310281, 23.39843750, 49.19921875) -[2618651.479] {Default Queue} wl_pointer#3401.motion(187310281, 23.39843750, 49.19921875) -[2618651.483] {Default Queue} wl_pointer#3433.motion(187310281, 23.39843750, 49.19921875) -[2618651.488] {Default Queue} wl_pointer#3465.motion(187310281, 23.39843750, 49.19921875) -[2618651.492] {Default Queue} wl_pointer#3497.motion(187310281, 23.39843750, 49.19921875) -[2618651.497] {Default Queue} wl_pointer#3529.motion(187310281, 23.39843750, 49.19921875) -[2618651.501] {Default Queue} wl_pointer#3561.motion(187310281, 23.39843750, 49.19921875) -[2618651.505] {Default Queue} wl_pointer#3593.motion(187310281, 23.39843750, 49.19921875) -[2618651.510] {Default Queue} wl_pointer#3625.motion(187310281, 23.39843750, 49.19921875) -[2618651.514] {Default Queue} wl_pointer#3657.motion(187310281, 23.39843750, 49.19921875) -[2618651.518] {Default Queue} wl_pointer#3695.motion(187310281, 23.39843750, 49.19921875) -[2618651.525] {Default Queue} -> wl_region#1503.subtract(0, 0, 22, 51) -[2618651.529] {Default Queue} -> wl_region#1503.add(-20, -49, 19, 48) -[2618651.534] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) -[2618651.538] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) -[2618651.542] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) -[2618651.550] {Default Queue} -> wl_surface#1479.commit() -[2618651.555] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) -[2618651.560] {Default Queue} -> wl_surface#1479.commit() -[2618651.583] {Default Queue} wl_pointer#24.motion(187310286, 23.80078125, 48.39843750) -[2618651.588] {Default Queue} wl_pointer#81.motion(187310286, 23.80078125, 48.39843750) -[2618651.593] {Default Queue} wl_pointer#105.motion(187310286, 23.80078125, 48.39843750) -[2618651.598] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618651.602] {Default Queue} wl_pointer#137.motion(187310286, 23.80078125, 48.39843750) -[2618651.607] {Default Queue} wl_pointer#169.motion(187310286, 23.80078125, 48.39843750) -[2618651.611] {Default Queue} wl_pointer#201.motion(187310286, 23.80078125, 48.39843750) -[2618651.615] {Default Queue} wl_pointer#233.motion(187310286, 23.80078125, 48.39843750) -[2618651.620] {Default Queue} wl_pointer#265.motion(187310286, 23.80078125, 48.39843750) -[2618651.624] {Default Queue} wl_pointer#297.motion(187310286, 23.80078125, 48.39843750) -[2618651.628] {Default Queue} wl_pointer#329.motion(187310286, 23.80078125, 48.39843750) -[2618651.632] {Default Queue} wl_pointer#361.motion(187310286, 23.80078125, 48.39843750) -[2618651.637] {Default Queue} wl_pointer#393.motion(187310286, 23.80078125, 48.39843750) -[2618651.641] {Default Queue} wl_pointer#425.motion(187310286, 23.80078125, 48.39843750) -[2618651.645] {Default Queue} wl_pointer#457.motion(187310286, 23.80078125, 48.39843750) -[2618651.649] {Default Queue} wl_pointer#489.motion(187310286, 23.80078125, 48.39843750) -[2618651.653] {Default Queue} wl_pointer#521.motion(187310286, 23.80078125, 48.39843750) -[2618651.658] {Default Queue} wl_pointer#553.motion(187310286, 23.80078125, 48.39843750) -[2618651.662] {Default Queue} wl_pointer#585.motion(187310286, 23.80078125, 48.39843750) -[2618651.666] {Default Queue} wl_pointer#617.motion(187310286, 23.80078125, 48.39843750) -[2618651.671] {Default Queue} wl_pointer#649.motion(187310286, 23.80078125, 48.39843750) -[2618651.675] {Default Queue} wl_pointer#681.motion(187310286, 23.80078125, 48.39843750) -[2618651.679] {Default Queue} wl_pointer#713.motion(187310286, 23.80078125, 48.39843750) -[2618651.683] {Default Queue} wl_pointer#745.motion(187310286, 23.80078125, 48.39843750) -[2618651.687] {Default Queue} wl_pointer#777.motion(187310286, 23.80078125, 48.39843750) -[2618651.692] {Default Queue} wl_pointer#809.motion(187310286, 23.80078125, 48.39843750) -[2618651.696] {Default Queue} wl_pointer#841.motion(187310286, 23.80078125, 48.39843750) -[2618651.700] {Default Queue} wl_pointer#873.motion(187310286, 23.80078125, 48.39843750) -[2618651.704] {Default Queue} wl_pointer#905.motion(187310286, 23.80078125, 48.39843750) -[2618651.709] {Default Queue} wl_pointer#937.motion(187310286, 23.80078125, 48.39843750) -[2618651.713] {Default Queue} wl_pointer#969.motion(187310286, 23.80078125, 48.39843750) -[2618651.717] {Default Queue} wl_pointer#1001.motion(187310286, 23.80078125, 48.39843750) -[2618651.721] {Default Queue} wl_pointer#1033.motion(187310286, 23.80078125, 48.39843750) -[2618651.726] {Default Queue} wl_pointer#1065.motion(187310286, 23.80078125, 48.39843750) -[2618651.730] {Default Queue} wl_pointer#1097.motion(187310286, 23.80078125, 48.39843750) -[2618651.734] {Default Queue} wl_pointer#1129.motion(187310286, 23.80078125, 48.39843750) -[2618651.738] {Default Queue} wl_pointer#1161.motion(187310286, 23.80078125, 48.39843750) -[2618651.743] {Default Queue} wl_pointer#1193.motion(187310286, 23.80078125, 48.39843750) -[2618651.747] {Default Queue} wl_pointer#1225.motion(187310286, 23.80078125, 48.39843750) -[2618651.751] {Default Queue} wl_pointer#1257.motion(187310286, 23.80078125, 48.39843750) -[2618651.756] {Default Queue} wl_pointer#1289.motion(187310286, 23.80078125, 48.39843750) -[2618651.760] {Default Queue} wl_pointer#1321.motion(187310286, 23.80078125, 48.39843750) -[2618651.764] {Default Queue} wl_pointer#1353.motion(187310286, 23.80078125, 48.39843750) -[2618651.768] {Default Queue} wl_pointer#1385.motion(187310286, 23.80078125, 48.39843750) -[2618651.776] {Default Queue} wl_pointer#1417.motion(187310286, 23.80078125, 48.39843750) -[2618651.781] {Default Queue} wl_pointer#1449.motion(187310286, 23.80078125, 48.39843750) -[2618651.786] {Default Queue} wl_pointer#1481.motion(187310286, 23.80078125, 48.39843750) -[2618651.790] {Default Queue} wl_pointer#1513.motion(187310286, 23.80078125, 48.39843750) -[2618651.794] {Default Queue} wl_pointer#1545.motion(187310286, 23.80078125, 48.39843750) -[2618651.798] {Default Queue} wl_pointer#1577.motion(187310286, 23.80078125, 48.39843750) -[2618651.803] {Default Queue} wl_pointer#1609.motion(187310286, 23.80078125, 48.39843750) -[2618651.807] {Default Queue} wl_pointer#1641.motion(187310286, 23.80078125, 48.39843750) -[2618651.811] {Default Queue} wl_pointer#1673.motion(187310286, 23.80078125, 48.39843750) -[2618651.815] {Default Queue} wl_pointer#1705.motion(187310286, 23.80078125, 48.39843750) -[2618651.820] {Default Queue} wl_pointer#1737.motion(187310286, 23.80078125, 48.39843750) -[2618651.824] {Default Queue} wl_pointer#1762.motion(187310286, 23.80078125, 48.39843750) -[2618651.828] {Default Queue} wl_pointer#1801.motion(187310286, 23.80078125, 48.39843750) -[2618651.832] {Default Queue} wl_pointer#1833.motion(187310286, 23.80078125, 48.39843750) -[2618651.837] {Default Queue} wl_pointer#1865.motion(187310286, 23.80078125, 48.39843750) -[2618651.841] {Default Queue} wl_pointer#1897.motion(187310286, 23.80078125, 48.39843750) -[2618651.845] {Default Queue} wl_pointer#1929.motion(187310286, 23.80078125, 48.39843750) -[2618651.850] {Default Queue} wl_pointer#1961.motion(187310286, 23.80078125, 48.39843750) -[2618651.854] {Default Queue} wl_pointer#1993.motion(187310286, 23.80078125, 48.39843750) -[2618651.858] {Default Queue} wl_pointer#2025.motion(187310286, 23.80078125, 48.39843750) -[2618651.866] {Default Queue} wl_pointer#2057.motion(187310286, 23.80078125, 48.39843750) -[2618651.870] {Default Queue} wl_pointer#2089.motion(187310286, 23.80078125, 48.39843750) -[2618651.874] {Default Queue} wl_pointer#2121.motion(187310286, 23.80078125, 48.39843750) -[2618651.879] {Default Queue} wl_pointer#2153.motion(187310286, 23.80078125, 48.39843750) -[2618651.883] {Default Queue} wl_pointer#2185.motion(187310286, 23.80078125, 48.39843750) -[2618651.887] {Default Queue} wl_pointer#2217.motion(187310286, 23.80078125, 48.39843750) -[2618651.891] {Default Queue} wl_pointer#2249.motion(187310286, 23.80078125, 48.39843750) -[2618651.896] {Default Queue} wl_pointer#2281.motion(187310286, 23.80078125, 48.39843750) -[2618651.900] {Default Queue} wl_pointer#2313.motion(187310286, 23.80078125, 48.39843750) -[2618651.904] {Default Queue} wl_pointer#2345.motion(187310286, 23.80078125, 48.39843750) -[2618651.909] {Default Queue} wl_pointer#2377.motion(187310286, 23.80078125, 48.39843750) -[2618651.913] {Default Queue} wl_pointer#2409.motion(187310286, 23.80078125, 48.39843750) -[2618651.917] {Default Queue} wl_pointer#2441.motion(187310286, 23.80078125, 48.39843750) -[2618651.922] {Default Queue} wl_pointer#2473.motion(187310286, 23.80078125, 48.39843750) -[2618651.926] {Default Queue} wl_pointer#2498.motion(187310286, 23.80078125, 48.39843750) -[2618651.937] {Default Queue} -> wl_buffer#3452.destroy() -[2618651.942] {Default Queue} -> wl_buffer#3451.destroy() -[2618651.946] {Default Queue} -> wl_shm_pool#3518.destroy() -[2618651.950] {Default Queue} -> wl_shm_pool#3517.destroy() -[2618651.955] {Default Queue} -> wl_surface#3454.destroy() -[2618651.992] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3294, fd 575, 640) -[2618651.998] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 578, 640) -[2618652.003] {Default Queue} -> wl_shm_pool#3294.create_buffer(new id wl_buffer#3484, 0, 10, 16, 40, 0) -[2618652.007] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) -[2618652.015] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3292) -[2618652.019] {Default Queue} -> wl_surface#3292.attach(wl_buffer#3484, 0, 0) -[2618652.027] {Default Queue} -> wl_surface#3292.commit() -[2618652.034] {Default Queue} -> wl_surface#3292.attach(wl_buffer#3484, 0, 0) -[2618652.038] {Default Queue} -> wl_surface#3292.commit() -[2618652.042] {Default Queue} wl_pointer#2537.motion(187310286, 23.80078125, 48.39843750) -[2618652.047] {Default Queue} wl_pointer#2569.motion(187310286, 23.80078125, 48.39843750) -[2618652.051] {Default Queue} wl_pointer#2601.motion(187310286, 23.80078125, 48.39843750) -[2618652.056] {Default Queue} wl_pointer#2633.motion(187310286, 23.80078125, 48.39843750) -[2618652.060] {Default Queue} wl_pointer#2665.motion(187310286, 23.80078125, 48.39843750) -[2618652.064] {Default Queue} wl_pointer#2697.motion(187310286, 23.80078125, 48.39843750) -[2618652.069] {Default Queue} wl_pointer#2729.motion(187310286, 23.80078125, 48.39843750) -[2618652.073] {Default Queue} wl_pointer#2761.motion(187310286, 23.80078125, 48.39843750) -[2618652.077] {Default Queue} wl_pointer#2793.motion(187310286, 23.80078125, 48.39843750) -[2618652.082] {Default Queue} wl_pointer#2825.motion(187310286, 23.80078125, 48.39843750) -[2618652.086] {Default Queue} wl_pointer#2857.motion(187310286, 23.80078125, 48.39843750) -[2618652.090] {Default Queue} wl_pointer#2889.motion(187310286, 23.80078125, 48.39843750) -[2618652.095] {Default Queue} wl_pointer#2921.motion(187310286, 23.80078125, 48.39843750) -[2618652.099] {Default Queue} wl_pointer#2953.motion(187310286, 23.80078125, 48.39843750) -[2618652.103] {Default Queue} wl_pointer#2985.motion(187310286, 23.80078125, 48.39843750) -[2618652.108] {Default Queue} wl_pointer#3017.motion(187310286, 23.80078125, 48.39843750) -[2618652.112] {Default Queue} wl_pointer#3049.motion(187310286, 23.80078125, 48.39843750) -[2618652.116] {Default Queue} wl_pointer#3081.motion(187310286, 23.80078125, 48.39843750) -[2618652.120] {Default Queue} wl_pointer#3113.motion(187310286, 23.80078125, 48.39843750) -[2618652.125] {Default Queue} wl_pointer#3145.motion(187310286, 23.80078125, 48.39843750) -[2618652.129] {Default Queue} wl_pointer#3177.motion(187310286, 23.80078125, 48.39843750) -[2618652.133] {Default Queue} wl_pointer#3209.motion(187310286, 23.80078125, 48.39843750) -[2618652.138] {Default Queue} wl_pointer#3241.motion(187310286, 23.80078125, 48.39843750) -[2618652.142] {Default Queue} wl_pointer#3273.motion(187310286, 23.80078125, 48.39843750) -[2618652.146] {Default Queue} wl_pointer#3305.motion(187310286, 23.80078125, 48.39843750) -[2618652.151] {Default Queue} wl_pointer#3337.motion(187310286, 23.80078125, 48.39843750) -[2618652.155] {Default Queue} wl_pointer#3369.motion(187310286, 23.80078125, 48.39843750) -[2618652.159] {Default Queue} wl_pointer#3401.motion(187310286, 23.80078125, 48.39843750) -[2618652.164] {Default Queue} wl_pointer#3433.motion(187310286, 23.80078125, 48.39843750) -[2618652.168] {Default Queue} wl_pointer#3465.motion(187310286, 23.80078125, 48.39843750) -[2618652.172] {Default Queue} wl_pointer#3497.motion(187310286, 23.80078125, 48.39843750) -[2618652.177] {Default Queue} wl_pointer#3529.motion(187310286, 23.80078125, 48.39843750) -[2618652.181] {Default Queue} wl_pointer#3561.motion(187310286, 23.80078125, 48.39843750) -[2618652.185] {Default Queue} wl_pointer#3593.motion(187310286, 23.80078125, 48.39843750) -[2618652.190] {Default Queue} wl_pointer#3625.motion(187310286, 23.80078125, 48.39843750) -[2618652.194] {Default Queue} wl_pointer#3657.motion(187310286, 23.80078125, 48.39843750) -[2618652.198] {Default Queue} wl_pointer#3695.motion(187310286, 23.80078125, 48.39843750) -[2618652.202] {Default Queue} wl_pointer#24.motion(187310286, 24.19921875, 46.80078125) -[2618652.207] {Default Queue} wl_pointer#81.motion(187310286, 24.19921875, 46.80078125) -[2618652.212] {Default Queue} wl_pointer#105.motion(187310286, 24.19921875, 46.80078125) -[2618652.216] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618652.220] {Default Queue} wl_pointer#137.motion(187310286, 24.19921875, 46.80078125) -[2618652.225] {Default Queue} wl_pointer#169.motion(187310286, 24.19921875, 46.80078125) -[2618652.229] {Default Queue} wl_pointer#201.motion(187310286, 24.19921875, 46.80078125) -[2618652.236] {Default Queue} wl_pointer#233.motion(187310286, 24.19921875, 46.80078125) -[2618652.242] {Default Queue} wl_pointer#265.motion(187310286, 24.19921875, 46.80078125) -[2618652.246] {Default Queue} wl_pointer#297.motion(187310286, 24.19921875, 46.80078125) -[2618652.250] {Default Queue} wl_pointer#329.motion(187310286, 24.19921875, 46.80078125) -[2618652.255] {Default Queue} wl_pointer#361.motion(187310286, 24.19921875, 46.80078125) -[2618652.259] {Default Queue} wl_pointer#393.motion(187310286, 24.19921875, 46.80078125) -[2618652.263] {Default Queue} wl_pointer#425.motion(187310286, 24.19921875, 46.80078125) -[2618652.268] {Default Queue} wl_pointer#457.motion(187310286, 24.19921875, 46.80078125) -[2618652.272] {Default Queue} wl_pointer#489.motion(187310286, 24.19921875, 46.80078125) -[2618652.276] {Default Queue} wl_pointer#521.motion(187310286, 24.19921875, 46.80078125) -[2618652.280] {Default Queue} wl_pointer#553.motion(187310286, 24.19921875, 46.80078125) -[2618652.285] {Default Queue} wl_pointer#585.motion(187310286, 24.19921875, 46.80078125) -[2618652.289] {Default Queue} wl_pointer#617.motion(187310286, 24.19921875, 46.80078125) -[2618652.293] {Default Queue} wl_pointer#649.motion(187310286, 24.19921875, 46.80078125) -[2618652.298] {Default Queue} wl_pointer#681.motion(187310286, 24.19921875, 46.80078125) -[2618652.302] {Default Queue} wl_pointer#713.motion(187310286, 24.19921875, 46.80078125) -[2618652.312] {Default Queue} wl_pointer#745.motion(187310286, 24.19921875, 46.80078125) -[2618652.316] {Default Queue} wl_pointer#777.motion(187310286, 24.19921875, 46.80078125) -[2618652.320] {Default Queue} wl_pointer#809.motion(187310286, 24.19921875, 46.80078125) -[2618652.325] {Default Queue} wl_pointer#841.motion(187310286, 24.19921875, 46.80078125) -[2618652.329] {Default Queue} wl_pointer#873.motion(187310286, 24.19921875, 46.80078125) -[2618652.333] {Default Queue} wl_pointer#905.motion(187310286, 24.19921875, 46.80078125) -[2618652.337] {Default Queue} wl_pointer#937.motion(187310286, 24.19921875, 46.80078125) -[2618652.342] {Default Queue} wl_pointer#969.motion(187310286, 24.19921875, 46.80078125) -[2618652.346] {Default Queue} wl_pointer#1001.motion(187310286, 24.19921875, 46.80078125) -[2618652.350] {Default Queue} wl_pointer#1033.motion(187310286, 24.19921875, 46.80078125) -[2618652.354] {Default Queue} wl_pointer#1065.motion(187310286, 24.19921875, 46.80078125) -[2618652.359] {Default Queue} wl_pointer#1097.motion(187310286, 24.19921875, 46.80078125) -[2618652.363] {Default Queue} wl_pointer#1129.motion(187310286, 24.19921875, 46.80078125) -[2618652.367] {Default Queue} wl_pointer#1161.motion(187310286, 24.19921875, 46.80078125) -[2618652.372] {Default Queue} wl_pointer#1193.motion(187310286, 24.19921875, 46.80078125) -[2618652.376] {Default Queue} wl_pointer#1225.motion(187310286, 24.19921875, 46.80078125) -[2618652.380] {Default Queue} wl_pointer#1257.motion(187310286, 24.19921875, 46.80078125) -[2618652.384] {Default Queue} wl_pointer#1289.motion(187310286, 24.19921875, 46.80078125) -[2618652.389] {Default Queue} wl_pointer#1321.motion(187310286, 24.19921875, 46.80078125) -[2618652.393] {Default Queue} wl_pointer#1353.motion(187310286, 24.19921875, 46.80078125) -[2618652.397] {Default Queue} wl_pointer#1385.motion(187310286, 24.19921875, 46.80078125) -[2618652.401] {Default Queue} wl_pointer#1417.motion(187310286, 24.19921875, 46.80078125) -[2618652.406] {Default Queue} wl_pointer#1449.motion(187310286, 24.19921875, 46.80078125) -[2618652.410] {Default Queue} wl_pointer#1481.motion(187310286, 24.19921875, 46.80078125) -[2618652.414] {Default Queue} wl_pointer#1513.motion(187310286, 24.19921875, 46.80078125) -[2618652.419] {Default Queue} wl_pointer#1545.motion(187310286, 24.19921875, 46.80078125) -[2618652.423] {Default Queue} wl_pointer#1577.motion(187310286, 24.19921875, 46.80078125) -[2618652.427] {Default Queue} wl_pointer#1609.motion(187310286, 24.19921875, 46.80078125) -[2618652.432] {Default Queue} wl_pointer#1641.motion(187310286, 24.19921875, 46.80078125) -[2618652.436] {Default Queue} wl_pointer#1673.motion(187310286, 24.19921875, 46.80078125) -[2618652.443] {Default Queue} wl_pointer#1705.motion(187310286, 24.19921875, 46.80078125) -[2618652.449] {Default Queue} wl_pointer#1737.motion(187310286, 24.19921875, 46.80078125) -[2618652.453] {Default Queue} wl_pointer#1762.motion(187310286, 24.19921875, 46.80078125) -[2618652.457] {Default Queue} wl_pointer#1801.motion(187310286, 24.19921875, 46.80078125) -[2618652.461] {Default Queue} wl_pointer#1833.motion(187310286, 24.19921875, 46.80078125) -[2618652.466] {Default Queue} wl_pointer#1865.motion(187310286, 24.19921875, 46.80078125) -[2618652.470] {Default Queue} wl_pointer#1897.motion(187310286, 24.19921875, 46.80078125) -[2618652.474] {Default Queue} wl_pointer#1929.motion(187310286, 24.19921875, 46.80078125) -[2618652.478] {Default Queue} wl_pointer#1961.motion(187310286, 24.19921875, 46.80078125) -[2618652.483] {Default Queue} wl_pointer#1993.motion(187310286, 24.19921875, 46.80078125) -[2618652.487] {Default Queue} wl_pointer#2025.motion(187310286, 24.19921875, 46.80078125) -[2618652.491] {Default Queue} wl_pointer#2057.motion(187310286, 24.19921875, 46.80078125) -[2618652.496] {Default Queue} wl_pointer#2089.motion(187310286, 24.19921875, 46.80078125) -[2618652.500] {Default Queue} wl_pointer#2121.motion(187310286, 24.19921875, 46.80078125) -[2618652.504] {Default Queue} wl_pointer#2153.motion(187310286, 24.19921875, 46.80078125) -[2618652.508] {Default Queue} wl_pointer#2185.motion(187310286, 24.19921875, 46.80078125) -[2618652.513] {Default Queue} wl_pointer#2217.motion(187310286, 24.19921875, 46.80078125) -[2618652.517] {Default Queue} wl_pointer#2249.motion(187310286, 24.19921875, 46.80078125) -[2618652.521] {Default Queue} wl_pointer#2281.motion(187310286, 24.19921875, 46.80078125) -[2618652.525] {Default Queue} wl_pointer#2313.motion(187310286, 24.19921875, 46.80078125) -[2618652.530] {Default Queue} wl_pointer#2345.motion(187310286, 24.19921875, 46.80078125) -[2618652.534] {Default Queue} wl_pointer#2377.motion(187310286, 24.19921875, 46.80078125) -[2618652.538] {Default Queue} wl_pointer#2409.motion(187310286, 24.19921875, 46.80078125) -[2618652.543] {Default Queue} wl_pointer#2441.motion(187310286, 24.19921875, 46.80078125) -[2618652.547] {Default Queue} wl_pointer#2473.motion(187310286, 24.19921875, 46.80078125) -[2618652.551] {Default Queue} wl_pointer#2498.motion(187310286, 24.19921875, 46.80078125) -[2618652.561] {Default Queue} -> wl_buffer#3484.destroy() -[2618652.566] {Default Queue} -> wl_buffer#3293.destroy() -[2618652.570] {Default Queue} -> wl_shm_pool#3294.destroy() -[2618652.574] {Default Queue} -> wl_shm_pool#3291.destroy() -[2618652.579] {Default Queue} -> wl_surface#3292.destroy() -[2618652.611] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3515, fd 581, 640) -[2618652.616] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3486, fd 582, 640) -[2618652.621] {Default Queue} -> wl_shm_pool#3515.create_buffer(new id wl_buffer#3483, 0, 10, 16, 40, 0) -[2618652.625] {Default Queue} -> wl_shm_pool#3486.create_buffer(new id wl_buffer#3516, 0, 10, 16, 40, 0) -[2618652.635] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3485) -[2618652.639] {Default Queue} -> wl_surface#3485.attach(wl_buffer#3483, 0, 0) -[2618652.643] {Default Queue} -> wl_surface#3485.commit() -[2618652.649] {Default Queue} -> wl_surface#3485.attach(wl_buffer#3483, 0, 0) -[2618652.653] {Default Queue} -> wl_surface#3485.commit() -[2618652.657] {Default Queue} wl_pointer#2537.motion(187310286, 24.19921875, 46.80078125) -[2618652.661] {Default Queue} wl_pointer#2569.motion(187310286, 24.19921875, 46.80078125) -[2618652.666] {Default Queue} wl_pointer#2601.motion(187310286, 24.19921875, 46.80078125) -[2618652.670] {Default Queue} wl_pointer#2633.motion(187310286, 24.19921875, 46.80078125) -[2618652.675] {Default Queue} wl_pointer#2665.motion(187310286, 24.19921875, 46.80078125) -[2618652.679] {Default Queue} wl_pointer#2697.motion(187310286, 24.19921875, 46.80078125) -[2618652.683] {Default Queue} wl_pointer#2729.motion(187310286, 24.19921875, 46.80078125) -[2618652.691] {Default Queue} wl_pointer#2761.motion(187310286, 24.19921875, 46.80078125) -[2618652.697] {Default Queue} wl_pointer#2793.motion(187310286, 24.19921875, 46.80078125) -[2618652.701] {Default Queue} wl_pointer#2825.motion(187310286, 24.19921875, 46.80078125) -[2618652.706] {Default Queue} wl_pointer#2857.motion(187310286, 24.19921875, 46.80078125) -[2618652.710] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) -[2618652.714] {Default Queue} -> wl_surface#1479.commit() -[2618653.778] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) -[2618653.784] {Default Queue} -> wl_surface#1479.commit() -[2618653.790] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) -[2618653.794] {Default Queue} -> wl_surface#1479.commit() -[2618653.800] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) -[2618653.804] {Default Queue} -> wl_surface#1447.commit() -[2618654.859] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) -[2618654.875] {Default Queue} -> wl_surface#1447.commit() -[2618654.888] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) -[2618654.894] {Default Queue} -> wl_region#1471.add(0, 0, 2, 2) -[2618654.898] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618654.903] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618654.910] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) -[2618654.915] {Default Queue} -> wl_region#1471.add(0, 0, 2, 2) -[2618654.919] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618654.923] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618654.928] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) -[2618654.933] {Default Queue} -> wl_region#1471.add(0, 0, 2, 2) -[2618654.937] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618654.941] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618654.946] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) -[2618654.950] {Default Queue} -> wl_region#1471.add(0, 0, 2, 2) -[2618654.954] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618654.958] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618654.965] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) -[2618654.969] {Default Queue} -> wl_region#1471.add(0, 0, 2, 2) -[2618654.974] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618654.978] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618654.982] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) -[2618654.987] {Default Queue} -> wl_surface#1447.commit() -[2618654.991] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) -[2618654.995] {Default Queue} -> wl_surface#1447.commit() -[2618655.001] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) -[2618655.006] {Default Queue} -> wl_surface#1447.commit() -[2618655.012] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) -[2618655.016] {Default Queue} -> wl_surface#1671.commit() -[2618656.079] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) -[2618656.085] {Default Queue} -> wl_surface#1671.commit() -[2618656.092] {Default Queue} -> wl_region#1695.subtract(0, 0, 19, 48) -[2618656.097] {Default Queue} -> wl_region#1695.add(-20, -49, 19, 48) -[2618656.101] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2618656.106] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2618656.172] {Default Queue} -> wl_region#1695.subtract(0, 0, 19, 48) -[2618656.177] {Default Queue} -> wl_region#1695.add(-20, -49, 19, 48) -[2618656.182] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2618656.186] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2618656.192] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618656.197] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618656.240] {Default Queue} -> wl_region#1695.subtract(0, 0, 19, 48) -[2618656.250] {Default Queue} -> wl_region#1695.add(-20, -49, 19, 48) -[2618656.257] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2618656.261] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2618656.266] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618656.270] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618656.275] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) -[2618656.280] {Default Queue} -> wl_surface#1671.commit() -[2618656.284] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) -[2618656.288] {Default Queue} -> wl_surface#1671.commit() -[2618656.294] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) -[2618656.298] {Default Queue} -> wl_surface#1671.commit() -[2618656.304] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) -[2618656.308] {Default Queue} -> wl_surface#1735.commit() -[2618656.375] {Display Queue} wl_display#1.delete_id(3682) -[2618656.381] {Display Queue} wl_display#1.delete_id(3681) -[2618656.385] {Display Queue} wl_display#1.delete_id(3671) -[2618656.389] {Display Queue} wl_display#1.delete_id(3679) -[2618656.393] {Display Queue} wl_display#1.delete_id(3684) -[2618656.397] {Display Queue} wl_display#1.delete_id(93) -[2618656.401] {Display Queue} wl_display#1.delete_id(94) -[2618656.405] {Display Queue} wl_display#1.delete_id(91) -[2618656.409] {Display Queue} wl_display#1.delete_id(92) -[2618656.413] {Display Queue} wl_display#1.delete_id(3683) -[2618656.417] {Display Queue} wl_display#1.delete_id(3674) -[2618656.421] {Display Queue} wl_display#1.delete_id(3678) -[2618656.425] {Display Queue} wl_display#1.delete_id(3677) -[2618656.429] {Display Queue} wl_display#1.delete_id(3676) -[2618656.433] {Display Queue} wl_display#1.delete_id(3675) -[2618656.437] {Default Queue} wl_pointer#2889.motion(187310286, 24.19921875, 46.80078125) -[2618656.442] {Default Queue} wl_pointer#2921.motion(187310286, 24.19921875, 46.80078125) -[2618656.446] {Default Queue} wl_pointer#2953.motion(187310286, 24.19921875, 46.80078125) -[2618656.451] {Default Queue} wl_pointer#2985.motion(187310286, 24.19921875, 46.80078125) -[2618656.455] {Default Queue} wl_pointer#3017.motion(187310286, 24.19921875, 46.80078125) -[2618656.459] {Default Queue} wl_pointer#3049.motion(187310286, 24.19921875, 46.80078125) -[2618656.463] {Default Queue} wl_pointer#3081.motion(187310286, 24.19921875, 46.80078125) -[2618656.468] {Default Queue} wl_pointer#3113.motion(187310286, 24.19921875, 46.80078125) -[2618656.472] {Default Queue} wl_pointer#3145.motion(187310286, 24.19921875, 46.80078125) -[2618656.476] {Default Queue} wl_pointer#3177.motion(187310286, 24.19921875, 46.80078125) -[2618656.481] {Default Queue} wl_pointer#3209.motion(187310286, 24.19921875, 46.80078125) -[2618656.485] {Default Queue} wl_pointer#3241.motion(187310286, 24.19921875, 46.80078125) -[2618656.489] {Default Queue} wl_pointer#3273.motion(187310286, 24.19921875, 46.80078125) -[2618656.494] {Default Queue} wl_pointer#3305.motion(187310286, 24.19921875, 46.80078125) -[2618656.498] {Default Queue} wl_pointer#3337.motion(187310286, 24.19921875, 46.80078125) -[2618656.502] {Default Queue} wl_pointer#3369.motion(187310286, 24.19921875, 46.80078125) -[2618656.506] {Default Queue} wl_pointer#3401.motion(187310286, 24.19921875, 46.80078125) -[2618656.511] {Default Queue} wl_pointer#3433.motion(187310286, 24.19921875, 46.80078125) -[2618656.515] {Default Queue} wl_pointer#3465.motion(187310286, 24.19921875, 46.80078125) -[2618656.520] {Default Queue} wl_pointer#3497.motion(187310286, 24.19921875, 46.80078125) -[2618656.524] {Default Queue} wl_pointer#3529.motion(187310286, 24.19921875, 46.80078125) -[2618656.528] {Default Queue} wl_pointer#3561.motion(187310286, 24.19921875, 46.80078125) -[2618656.532] {Default Queue} wl_pointer#3593.motion(187310286, 24.19921875, 46.80078125) -[2618656.537] {Default Queue} wl_pointer#3625.motion(187310286, 24.19921875, 46.80078125) -[2618656.541] {Default Queue} wl_pointer#3657.motion(187310286, 24.19921875, 46.80078125) -[2618656.545] {Default Queue} wl_pointer#3695.motion(187310286, 24.19921875, 46.80078125) -[2618656.554] {Default Queue} wl_pointer#24.motion(187310286, 24.60156250, 46.00000000) -[2618656.560] {Default Queue} wl_pointer#81.motion(187310286, 24.60156250, 46.00000000) -[2618656.565] {Default Queue} wl_pointer#105.motion(187310286, 24.60156250, 46.00000000) -[2618656.570] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618656.575] {Default Queue} wl_pointer#137.motion(187310286, 24.60156250, 46.00000000) -[2618656.579] {Default Queue} wl_pointer#169.motion(187310286, 24.60156250, 46.00000000) -[2618656.583] {Default Queue} wl_pointer#201.motion(187310286, 24.60156250, 46.00000000) -[2618656.587] {Default Queue} wl_pointer#233.motion(187310286, 24.60156250, 46.00000000) -[2618656.592] {Default Queue} wl_pointer#265.motion(187310286, 24.60156250, 46.00000000) -[2618656.596] {Default Queue} wl_pointer#297.motion(187310286, 24.60156250, 46.00000000) -[2618656.600] {Default Queue} wl_pointer#329.motion(187310286, 24.60156250, 46.00000000) -[2618656.605] {Default Queue} wl_pointer#361.motion(187310286, 24.60156250, 46.00000000) -[2618656.609] {Default Queue} wl_pointer#393.motion(187310286, 24.60156250, 46.00000000) -[2618656.613] {Default Queue} wl_pointer#425.motion(187310286, 24.60156250, 46.00000000) -[2618656.617] {Default Queue} wl_pointer#457.motion(187310286, 24.60156250, 46.00000000) -[2618656.622] {Default Queue} wl_pointer#489.motion(187310286, 24.60156250, 46.00000000) -[2618656.626] {Default Queue} wl_pointer#521.motion(187310286, 24.60156250, 46.00000000) -[2618656.630] {Default Queue} wl_pointer#553.motion(187310286, 24.60156250, 46.00000000) -[2618656.635] {Default Queue} wl_pointer#585.motion(187310286, 24.60156250, 46.00000000) -[2618656.639] {Default Queue} wl_pointer#617.motion(187310286, 24.60156250, 46.00000000) -[2618656.643] {Default Queue} wl_pointer#649.motion(187310286, 24.60156250, 46.00000000) -[2618656.647] {Default Queue} wl_pointer#681.motion(187310286, 24.60156250, 46.00000000) -[2618656.651] {Default Queue} wl_pointer#713.motion(187310286, 24.60156250, 46.00000000) -[2618656.656] {Default Queue} wl_pointer#745.motion(187310286, 24.60156250, 46.00000000) -[2618656.660] {Default Queue} wl_pointer#777.motion(187310286, 24.60156250, 46.00000000) -[2618656.664] {Default Queue} wl_pointer#809.motion(187310286, 24.60156250, 46.00000000) -[2618656.669] {Default Queue} wl_pointer#841.motion(187310286, 24.60156250, 46.00000000) -[2618656.673] {Default Queue} wl_pointer#873.motion(187310286, 24.60156250, 46.00000000) -[2618656.677] {Default Queue} wl_pointer#905.motion(187310286, 24.60156250, 46.00000000) -[2618656.681] {Default Queue} wl_pointer#937.motion(187310286, 24.60156250, 46.00000000) -[2618656.685] {Default Queue} wl_pointer#969.motion(187310286, 24.60156250, 46.00000000) -[2618656.690] {Default Queue} wl_pointer#1001.motion(187310286, 24.60156250, 46.00000000) -[2618656.694] {Default Queue} wl_pointer#1033.motion(187310286, 24.60156250, 46.00000000) -[2618656.698] {Default Queue} wl_pointer#1065.motion(187310286, 24.60156250, 46.00000000) -[2618656.703] {Default Queue} wl_pointer#1097.motion(187310286, 24.60156250, 46.00000000) -[2618656.707] {Default Queue} wl_pointer#1129.motion(187310286, 24.60156250, 46.00000000) -[2618656.711] {Default Queue} wl_pointer#1161.motion(187310286, 24.60156250, 46.00000000) -[2618656.715] {Default Queue} wl_pointer#1193.motion(187310286, 24.60156250, 46.00000000) -[2618656.720] {Default Queue} wl_pointer#1225.motion(187310286, 24.60156250, 46.00000000) -[2618656.724] {Default Queue} wl_pointer#1257.motion(187310286, 24.60156250, 46.00000000) -[2618656.728] {Default Queue} wl_pointer#1289.motion(187310286, 24.60156250, 46.00000000) -[2618656.732] {Default Queue} wl_pointer#1321.motion(187310286, 24.60156250, 46.00000000) -[2618656.737] {Default Queue} wl_pointer#1353.motion(187310286, 24.60156250, 46.00000000) -[2618656.741] {Default Queue} wl_pointer#1385.motion(187310286, 24.60156250, 46.00000000) -[2618656.745] {Default Queue} wl_pointer#1417.motion(187310286, 24.60156250, 46.00000000) -[2618656.750] {Default Queue} wl_pointer#1449.motion(187310286, 24.60156250, 46.00000000) -[2618656.757] {Default Queue} wl_pointer#1481.motion(187310286, 24.60156250, 46.00000000) -[2618656.763] {Default Queue} wl_pointer#1513.motion(187310286, 24.60156250, 46.00000000) -[2618656.767] {Default Queue} wl_pointer#1545.motion(187310286, 24.60156250, 46.00000000) -[2618656.771] {Default Queue} wl_pointer#1577.motion(187310286, 24.60156250, 46.00000000) -[2618656.776] {Default Queue} wl_pointer#1609.motion(187310286, 24.60156250, 46.00000000) -[2618656.780] {Default Queue} wl_pointer#1641.motion(187310286, 24.60156250, 46.00000000) -[2618656.784] {Default Queue} wl_pointer#1673.motion(187310286, 24.60156250, 46.00000000) -[2618656.788] {Default Queue} wl_pointer#1705.motion(187310286, 24.60156250, 46.00000000) -[2618656.793] {Default Queue} wl_pointer#1737.motion(187310286, 24.60156250, 46.00000000) -[2618656.797] {Default Queue} wl_pointer#1762.motion(187310286, 24.60156250, 46.00000000) -[2618656.801] {Default Queue} wl_pointer#1801.motion(187310286, 24.60156250, 46.00000000) -[2618656.805] {Default Queue} wl_pointer#1833.motion(187310286, 24.60156250, 46.00000000) -[2618656.810] {Default Queue} wl_pointer#1865.motion(187310286, 24.60156250, 46.00000000) -[2618656.814] {Default Queue} wl_pointer#1897.motion(187310286, 24.60156250, 46.00000000) -[2618656.818] {Default Queue} wl_pointer#1929.motion(187310286, 24.60156250, 46.00000000) -[2618656.823] {Default Queue} wl_pointer#1961.motion(187310286, 24.60156250, 46.00000000) -[2618656.827] {Default Queue} wl_pointer#1993.motion(187310286, 24.60156250, 46.00000000) -[2618656.831] {Default Queue} wl_pointer#2025.motion(187310286, 24.60156250, 46.00000000) -[2618656.836] {Default Queue} wl_pointer#2057.motion(187310286, 24.60156250, 46.00000000) -[2618656.840] {Default Queue} wl_pointer#2089.motion(187310286, 24.60156250, 46.00000000) -[2618656.844] {Default Queue} wl_pointer#2121.motion(187310286, 24.60156250, 46.00000000) -[2618656.848] {Default Queue} wl_pointer#2153.motion(187310286, 24.60156250, 46.00000000) -[2618656.852] {Default Queue} wl_pointer#2185.motion(187310286, 24.60156250, 46.00000000) -[2618656.857] {Default Queue} wl_pointer#2217.motion(187310286, 24.60156250, 46.00000000) -[2618656.865] {Default Queue} wl_pointer#2249.motion(187310286, 24.60156250, 46.00000000) -[2618656.869] {Default Queue} wl_pointer#2281.motion(187310286, 24.60156250, 46.00000000) -[2618656.874] {Default Queue} wl_pointer#2313.motion(187310286, 24.60156250, 46.00000000) -[2618656.878] {Default Queue} wl_pointer#2345.motion(187310286, 24.60156250, 46.00000000) -[2618656.883] {Default Queue} wl_pointer#2377.motion(187310286, 24.60156250, 46.00000000) -[2618656.887] {Default Queue} wl_pointer#2409.motion(187310286, 24.60156250, 46.00000000) -[2618656.891] {Default Queue} wl_pointer#2441.motion(187310286, 24.60156250, 46.00000000) -[2618656.896] {Default Queue} wl_pointer#2473.motion(187310286, 24.60156250, 46.00000000) -[2618656.900] {Default Queue} wl_pointer#2498.motion(187310286, 24.60156250, 46.00000000) -[2618656.912] {Default Queue} -> wl_buffer#3483.destroy() -[2618656.918] {Default Queue} -> wl_buffer#3516.destroy() -[2618656.922] {Default Queue} -> wl_shm_pool#3515.destroy() -[2618656.926] {Default Queue} -> wl_shm_pool#3486.destroy() -[2618656.931] {Default Queue} -> wl_surface#3485.destroy() -[2618656.973] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3675, fd 575, 640) -[2618656.980] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3676, fd 578, 640) -[2618656.985] {Default Queue} -> wl_shm_pool#3675.create_buffer(new id wl_buffer#3677, 0, 10, 16, 40, 0) -[2618656.990] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 10, 16, 40, 0) -[2618656.997] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3674) -[2618657.002] {Default Queue} -> wl_surface#3674.attach(wl_buffer#3677, 0, 0) -[2618657.006] {Default Queue} -> wl_surface#3674.commit() -[2618657.011] {Default Queue} -> wl_surface#3674.attach(wl_buffer#3677, 0, 0) -[2618657.016] {Default Queue} -> wl_surface#3674.commit() -[2618657.023] {Default Queue} wl_pointer#2537.motion(187310286, 24.60156250, 46.00000000) -[2618657.030] {Default Queue} wl_pointer#2569.motion(187310286, 24.60156250, 46.00000000) -[2618657.034] {Default Queue} wl_pointer#2601.motion(187310286, 24.60156250, 46.00000000) -[2618657.038] {Default Queue} wl_pointer#2633.motion(187310286, 24.60156250, 46.00000000) -[2618657.043] {Default Queue} wl_pointer#2665.motion(187310286, 24.60156250, 46.00000000) -[2618657.047] {Default Queue} wl_pointer#2697.motion(187310286, 24.60156250, 46.00000000) -[2618657.051] {Default Queue} wl_pointer#2729.motion(187310286, 24.60156250, 46.00000000) -[2618657.056] {Default Queue} wl_pointer#2761.motion(187310286, 24.60156250, 46.00000000) -[2618657.060] {Default Queue} wl_pointer#2793.motion(187310286, 24.60156250, 46.00000000) -[2618657.064] {Default Queue} wl_pointer#2825.motion(187310286, 24.60156250, 46.00000000) -[2618657.069] {Default Queue} wl_pointer#2857.motion(187310286, 24.60156250, 46.00000000) -[2618657.073] {Default Queue} wl_pointer#2889.motion(187310286, 24.60156250, 46.00000000) -[2618657.077] {Default Queue} wl_pointer#2921.motion(187310286, 24.60156250, 46.00000000) -[2618657.082] {Default Queue} wl_pointer#2953.motion(187310286, 24.60156250, 46.00000000) -[2618657.086] {Default Queue} wl_pointer#2985.motion(187310286, 24.60156250, 46.00000000) -[2618657.090] {Default Queue} wl_pointer#3017.motion(187310286, 24.60156250, 46.00000000) -[2618657.095] {Default Queue} wl_pointer#3049.motion(187310286, 24.60156250, 46.00000000) -[2618657.099] {Default Queue} wl_pointer#3081.motion(187310286, 24.60156250, 46.00000000) -[2618657.103] {Default Queue} wl_pointer#3113.motion(187310286, 24.60156250, 46.00000000) -[2618657.107] {Default Queue} wl_pointer#3145.motion(187310286, 24.60156250, 46.00000000) -[2618657.112] {Default Queue} wl_pointer#3177.motion(187310286, 24.60156250, 46.00000000) -[2618657.116] {Default Queue} wl_pointer#3209.motion(187310286, 24.60156250, 46.00000000) -[2618657.120] {Default Queue} wl_pointer#3241.motion(187310286, 24.60156250, 46.00000000) -[2618657.125] {Default Queue} wl_pointer#3273.motion(187310286, 24.60156250, 46.00000000) -[2618657.129] {Default Queue} wl_pointer#3305.motion(187310286, 24.60156250, 46.00000000) -[2618657.133] {Default Queue} wl_pointer#3337.motion(187310286, 24.60156250, 46.00000000) -[2618657.137] {Default Queue} wl_pointer#3369.motion(187310286, 24.60156250, 46.00000000) -[2618657.142] {Default Queue} wl_pointer#3401.motion(187310286, 24.60156250, 46.00000000) -[2618657.146] {Default Queue} wl_pointer#3433.motion(187310286, 24.60156250, 46.00000000) -[2618657.152] {Default Queue} wl_pointer#3465.motion(187310286, 24.60156250, 46.00000000) -[2618657.158] {Default Queue} wl_pointer#3497.motion(187310286, 24.60156250, 46.00000000) -[2618657.164] {Default Queue} wl_pointer#3529.motion(187310286, 24.60156250, 46.00000000) -[2618657.170] {Default Queue} wl_pointer#3561.motion(187310286, 24.60156250, 46.00000000) -[2618657.176] {Default Queue} wl_pointer#3593.motion(187310286, 24.60156250, 46.00000000) -[2618657.181] {Default Queue} wl_pointer#3625.motion(187310286, 24.60156250, 46.00000000) -[2618657.187] {Default Queue} wl_pointer#3657.motion(187310286, 24.60156250, 46.00000000) -[2618657.193] {Default Queue} wl_pointer#3695.motion(187310286, 24.60156250, 46.00000000) -[2618657.205] {Default Queue} -> wl_region#1759.subtract(0, 0, 19, 48) -[2618657.210] {Default Queue} -> wl_region#1759.add(-20, -49, 19, 48) -[2618657.214] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618657.218] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618657.229] {Default Queue} -> wl_region#1759.subtract(0, 0, 19, 48) -[2618657.234] {Default Queue} -> wl_region#1759.add(-20, -49, 19, 48) -[2618657.240] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618657.245] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618657.252] {Default Queue} -> wl_region#1759.subtract(0, 0, 19, 48) -[2618657.257] {Default Queue} -> wl_region#1759.add(-20, -49, 19, 48) -[2618657.265] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618657.271] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618657.276] {Default Queue} -> wl_region#1759.subtract(0, 0, 19, 48) -[2618657.280] {Default Queue} -> wl_region#1759.add(-20, -49, 19, 48) -[2618657.284] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618657.288] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618657.293] {Default Queue} -> wl_region#1759.subtract(0, 0, 19, 48) -[2618657.297] {Default Queue} -> wl_region#1759.add(-20, -49, 19, 48) -[2618657.301] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618657.305] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618657.319] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) -[2618657.324] {Default Queue} -> wl_surface#1735.commit() -[2618657.328] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) -[2618657.333] {Default Queue} -> wl_surface#1735.commit() -[2618657.358] {Default Queue} wl_pointer#24.motion(187310291, 25.00000000, 44.80078125) -[2618657.363] {Default Queue} wl_pointer#81.motion(187310291, 25.00000000, 44.80078125) -[2618657.369] {Default Queue} wl_pointer#105.motion(187310291, 25.00000000, 44.80078125) -[2618657.373] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618657.378] {Default Queue} wl_pointer#137.motion(187310291, 25.00000000, 44.80078125) -[2618657.382] {Default Queue} wl_pointer#169.motion(187310291, 25.00000000, 44.80078125) -[2618657.386] {Default Queue} wl_pointer#201.motion(187310291, 25.00000000, 44.80078125) -[2618657.390] {Default Queue} wl_pointer#233.motion(187310291, 25.00000000, 44.80078125) -[2618657.395] {Default Queue} wl_pointer#265.motion(187310291, 25.00000000, 44.80078125) -[2618657.399] {Default Queue} wl_pointer#297.motion(187310291, 25.00000000, 44.80078125) -[2618657.403] {Default Queue} wl_pointer#329.motion(187310291, 25.00000000, 44.80078125) -[2618657.407] {Default Queue} wl_pointer#361.motion(187310291, 25.00000000, 44.80078125) -[2618657.412] {Default Queue} wl_pointer#393.motion(187310291, 25.00000000, 44.80078125) -[2618657.416] {Default Queue} wl_pointer#425.motion(187310291, 25.00000000, 44.80078125) -[2618657.420] {Default Queue} wl_pointer#457.motion(187310291, 25.00000000, 44.80078125) -[2618657.424] {Default Queue} wl_pointer#489.motion(187310291, 25.00000000, 44.80078125) -[2618657.429] {Default Queue} wl_pointer#521.motion(187310291, 25.00000000, 44.80078125) -[2618657.433] {Default Queue} wl_pointer#553.motion(187310291, 25.00000000, 44.80078125) -[2618657.437] {Default Queue} wl_pointer#585.motion(187310291, 25.00000000, 44.80078125) -[2618657.441] {Default Queue} wl_pointer#617.motion(187310291, 25.00000000, 44.80078125) -[2618657.446] {Default Queue} wl_pointer#649.motion(187310291, 25.00000000, 44.80078125) -[2618657.450] {Default Queue} wl_pointer#681.motion(187310291, 25.00000000, 44.80078125) -[2618657.454] {Default Queue} wl_pointer#713.motion(187310291, 25.00000000, 44.80078125) -[2618657.459] {Default Queue} wl_pointer#745.motion(187310291, 25.00000000, 44.80078125) -[2618657.463] {Default Queue} wl_pointer#777.motion(187310291, 25.00000000, 44.80078125) -[2618657.467] {Default Queue} wl_pointer#809.motion(187310291, 25.00000000, 44.80078125) -[2618657.471] {Default Queue} wl_pointer#841.motion(187310291, 25.00000000, 44.80078125) -[2618657.475] {Default Queue} wl_pointer#873.motion(187310291, 25.00000000, 44.80078125) -[2618657.480] {Default Queue} wl_pointer#905.motion(187310291, 25.00000000, 44.80078125) -[2618657.484] {Default Queue} wl_pointer#937.motion(187310291, 25.00000000, 44.80078125) -[2618657.488] {Default Queue} wl_pointer#969.motion(187310291, 25.00000000, 44.80078125) -[2618657.492] {Default Queue} wl_pointer#1001.motion(187310291, 25.00000000, 44.80078125) -[2618657.497] {Default Queue} wl_pointer#1033.motion(187310291, 25.00000000, 44.80078125) -[2618657.501] {Default Queue} wl_pointer#1065.motion(187310291, 25.00000000, 44.80078125) -[2618657.508] {Default Queue} wl_pointer#1097.motion(187310291, 25.00000000, 44.80078125) -[2618657.514] {Default Queue} wl_pointer#1129.motion(187310291, 25.00000000, 44.80078125) -[2618657.518] {Default Queue} wl_pointer#1161.motion(187310291, 25.00000000, 44.80078125) -[2618657.523] {Default Queue} wl_pointer#1193.motion(187310291, 25.00000000, 44.80078125) -[2618657.527] {Default Queue} wl_pointer#1225.motion(187310291, 25.00000000, 44.80078125) -[2618657.531] {Default Queue} wl_pointer#1257.motion(187310291, 25.00000000, 44.80078125) -[2618657.535] {Default Queue} wl_pointer#1289.motion(187310291, 25.00000000, 44.80078125) -[2618657.540] {Default Queue} wl_pointer#1321.motion(187310291, 25.00000000, 44.80078125) -[2618657.544] {Default Queue} wl_pointer#1353.motion(187310291, 25.00000000, 44.80078125) -[2618657.548] {Default Queue} wl_pointer#1385.motion(187310291, 25.00000000, 44.80078125) -[2618657.552] {Default Queue} wl_pointer#1417.motion(187310291, 25.00000000, 44.80078125) -[2618657.557] {Default Queue} wl_pointer#1449.motion(187310291, 25.00000000, 44.80078125) -[2618657.561] {Default Queue} wl_pointer#1481.motion(187310291, 25.00000000, 44.80078125) -[2618657.565] {Default Queue} wl_pointer#1513.motion(187310291, 25.00000000, 44.80078125) -[2618657.570] {Default Queue} wl_pointer#1545.motion(187310291, 25.00000000, 44.80078125) -[2618657.574] {Default Queue} wl_pointer#1577.motion(187310291, 25.00000000, 44.80078125) -[2618657.578] {Default Queue} wl_pointer#1609.motion(187310291, 25.00000000, 44.80078125) -[2618657.582] {Default Queue} wl_pointer#1641.motion(187310291, 25.00000000, 44.80078125) -[2618657.587] {Default Queue} wl_pointer#1673.motion(187310291, 25.00000000, 44.80078125) -[2618657.591] {Default Queue} wl_pointer#1705.motion(187310291, 25.00000000, 44.80078125) -[2618657.595] {Default Queue} wl_pointer#1737.motion(187310291, 25.00000000, 44.80078125) -[2618657.599] {Default Queue} wl_pointer#1762.motion(187310291, 25.00000000, 44.80078125) -[2618657.604] {Default Queue} wl_pointer#1801.motion(187310291, 25.00000000, 44.80078125) -[2618657.608] {Default Queue} wl_pointer#1833.motion(187310291, 25.00000000, 44.80078125) -[2618657.614] {Default Queue} wl_pointer#1865.motion(187310291, 25.00000000, 44.80078125) -[2618657.619] {Default Queue} wl_pointer#1897.motion(187310291, 25.00000000, 44.80078125) -[2618657.625] {Default Queue} wl_pointer#1929.motion(187310291, 25.00000000, 44.80078125) -[2618657.631] {Default Queue} wl_pointer#1961.motion(187310291, 25.00000000, 44.80078125) -[2618657.637] {Default Queue} wl_pointer#1993.motion(187310291, 25.00000000, 44.80078125) -[2618657.642] {Default Queue} wl_pointer#2025.motion(187310291, 25.00000000, 44.80078125) -[2618657.648] {Default Queue} wl_pointer#2057.motion(187310291, 25.00000000, 44.80078125) -[2618657.652] {Default Queue} wl_pointer#2089.motion(187310291, 25.00000000, 44.80078125) -[2618657.656] {Default Queue} wl_pointer#2121.motion(187310291, 25.00000000, 44.80078125) -[2618657.661] {Default Queue} wl_pointer#2153.motion(187310291, 25.00000000, 44.80078125) -[2618657.665] {Default Queue} wl_pointer#2185.motion(187310291, 25.00000000, 44.80078125) -[2618657.669] {Default Queue} wl_pointer#2217.motion(187310291, 25.00000000, 44.80078125) -[2618657.673] {Default Queue} wl_pointer#2249.motion(187310291, 25.00000000, 44.80078125) -[2618657.678] {Default Queue} wl_pointer#2281.motion(187310291, 25.00000000, 44.80078125) -[2618657.682] {Default Queue} wl_pointer#2313.motion(187310291, 25.00000000, 44.80078125) -[2618657.686] {Default Queue} wl_pointer#2345.motion(187310291, 25.00000000, 44.80078125) -[2618657.691] {Default Queue} wl_pointer#2377.motion(187310291, 25.00000000, 44.80078125) -[2618657.695] {Default Queue} wl_pointer#2409.motion(187310291, 25.00000000, 44.80078125) -[2618657.700] {Default Queue} wl_pointer#2441.motion(187310291, 25.00000000, 44.80078125) -[2618657.704] {Default Queue} wl_pointer#2473.motion(187310291, 25.00000000, 44.80078125) -[2618657.708] {Default Queue} wl_pointer#2498.motion(187310291, 25.00000000, 44.80078125) -[2618657.720] {Default Queue} -> wl_buffer#3677.destroy() -[2618657.729] {Default Queue} -> wl_buffer#3678.destroy() -[2618657.735] {Default Queue} -> wl_shm_pool#3675.destroy() -[2618657.739] {Default Queue} -> wl_shm_pool#3676.destroy() -[2618657.744] {Default Queue} -> wl_surface#3674.destroy() -[2618657.783] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3683, fd 581, 640) -[2618657.789] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 582, 640) -[2618657.793] {Default Queue} -> wl_shm_pool#3683.create_buffer(new id wl_buffer#91, 0, 10, 16, 40, 0) -[2618657.798] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) -[2618657.805] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#93) -[2618657.810] {Default Queue} -> wl_surface#93.attach(wl_buffer#91, 0, 0) -[2618657.814] {Default Queue} -> wl_surface#93.commit() -[2618657.819] {Default Queue} -> wl_surface#93.attach(wl_buffer#91, 0, 0) -[2618657.824] {Default Queue} -> wl_surface#93.commit() -[2618657.828] {Default Queue} wl_pointer#2537.motion(187310291, 25.00000000, 44.80078125) -[2618657.832] {Default Queue} wl_pointer#2569.motion(187310291, 25.00000000, 44.80078125) -[2618657.837] {Default Queue} wl_pointer#2601.motion(187310291, 25.00000000, 44.80078125) -[2618657.841] {Default Queue} wl_pointer#2633.motion(187310291, 25.00000000, 44.80078125) -[2618657.845] {Default Queue} wl_pointer#2665.motion(187310291, 25.00000000, 44.80078125) -[2618657.850] {Default Queue} wl_pointer#2697.motion(187310291, 25.00000000, 44.80078125) -[2618657.854] {Default Queue} wl_pointer#2729.motion(187310291, 25.00000000, 44.80078125) -[2618657.858] {Default Queue} wl_pointer#2761.motion(187310291, 25.00000000, 44.80078125) -[2618657.870] {Default Queue} wl_pointer#2793.motion(187310291, 25.00000000, 44.80078125) -[2618657.874] {Default Queue} wl_pointer#2825.motion(187310291, 25.00000000, 44.80078125) -[2618657.879] {Default Queue} wl_pointer#2857.motion(187310291, 25.00000000, 44.80078125) -[2618657.883] {Default Queue} wl_pointer#2889.motion(187310291, 25.00000000, 44.80078125) -[2618657.887] {Default Queue} wl_pointer#2921.motion(187310291, 25.00000000, 44.80078125) -[2618657.892] {Default Queue} wl_pointer#2953.motion(187310291, 25.00000000, 44.80078125) -[2618657.896] {Default Queue} wl_pointer#2985.motion(187310291, 25.00000000, 44.80078125) -[2618657.900] {Default Queue} wl_pointer#3017.motion(187310291, 25.00000000, 44.80078125) -[2618657.904] {Default Queue} wl_pointer#3049.motion(187310291, 25.00000000, 44.80078125) -[2618657.909] {Default Queue} wl_pointer#3081.motion(187310291, 25.00000000, 44.80078125) -[2618657.913] {Default Queue} wl_pointer#3113.motion(187310291, 25.00000000, 44.80078125) -[2618657.917] {Default Queue} wl_pointer#3145.motion(187310291, 25.00000000, 44.80078125) -[2618657.921] {Default Queue} wl_pointer#3177.motion(187310291, 25.00000000, 44.80078125) -[2618657.926] {Default Queue} wl_pointer#3209.motion(187310291, 25.00000000, 44.80078125) -[2618657.930] {Default Queue} wl_pointer#3241.motion(187310291, 25.00000000, 44.80078125) -[2618657.935] {Default Queue} wl_pointer#3273.motion(187310291, 25.00000000, 44.80078125) -[2618657.939] {Default Queue} wl_pointer#3305.motion(187310291, 25.00000000, 44.80078125) -[2618657.943] {Default Queue} wl_pointer#3337.motion(187310291, 25.00000000, 44.80078125) -[2618657.947] {Default Queue} wl_pointer#3369.motion(187310291, 25.00000000, 44.80078125) -[2618657.952] {Default Queue} wl_pointer#3401.motion(187310291, 25.00000000, 44.80078125) -[2618657.956] {Default Queue} wl_pointer#3433.motion(187310291, 25.00000000, 44.80078125) -[2618657.960] {Default Queue} wl_pointer#3465.motion(187310291, 25.00000000, 44.80078125) -[2618657.965] {Default Queue} wl_pointer#3497.motion(187310291, 25.00000000, 44.80078125) -[2618657.969] {Default Queue} wl_pointer#3529.motion(187310291, 25.00000000, 44.80078125) -[2618657.973] {Default Queue} wl_pointer#3561.motion(187310291, 25.00000000, 44.80078125) -[2618657.978] {Default Queue} wl_pointer#3593.motion(187310291, 25.00000000, 44.80078125) -[2618657.982] {Default Queue} wl_pointer#3625.motion(187310291, 25.00000000, 44.80078125) -[2618657.989] {Default Queue} wl_pointer#3657.motion(187310291, 25.00000000, 44.80078125) -[2618657.995] {Default Queue} wl_pointer#3695.motion(187310291, 25.00000000, 44.80078125) -[2618658.000] {Default Queue} wl_pointer#24.motion(187310291, 25.00000000, 43.60156250) -[2618658.004] {Default Queue} wl_pointer#81.motion(187310291, 25.00000000, 43.60156250) -[2618658.009] {Default Queue} wl_pointer#105.motion(187310291, 25.00000000, 43.60156250) -[2618658.014] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618658.018] {Default Queue} wl_pointer#137.motion(187310291, 25.00000000, 43.60156250) -[2618658.023] {Default Queue} wl_pointer#169.motion(187310291, 25.00000000, 43.60156250) -[2618658.027] {Default Queue} wl_pointer#201.motion(187310291, 25.00000000, 43.60156250) -[2618658.031] {Default Queue} wl_pointer#233.motion(187310291, 25.00000000, 43.60156250) -[2618658.035] {Default Queue} wl_pointer#265.motion(187310291, 25.00000000, 43.60156250) -[2618658.040] {Default Queue} wl_pointer#297.motion(187310291, 25.00000000, 43.60156250) -[2618658.044] {Default Queue} wl_pointer#329.motion(187310291, 25.00000000, 43.60156250) -[2618658.048] {Default Queue} wl_pointer#361.motion(187310291, 25.00000000, 43.60156250) -[2618658.052] {Default Queue} wl_pointer#393.motion(187310291, 25.00000000, 43.60156250) -[2618658.057] {Default Queue} wl_pointer#425.motion(187310291, 25.00000000, 43.60156250) -[2618658.061] {Default Queue} wl_pointer#457.motion(187310291, 25.00000000, 43.60156250) -[2618658.065] {Default Queue} wl_pointer#489.motion(187310291, 25.00000000, 43.60156250) -[2618658.070] {Default Queue} wl_pointer#521.motion(187310291, 25.00000000, 43.60156250) -[2618658.074] {Default Queue} wl_pointer#553.motion(187310291, 25.00000000, 43.60156250) -[2618658.078] {Default Queue} wl_pointer#585.motion(187310291, 25.00000000, 43.60156250) -[2618658.083] {Default Queue} wl_pointer#617.motion(187310291, 25.00000000, 43.60156250) -[2618658.087] {Default Queue} wl_pointer#649.motion(187310291, 25.00000000, 43.60156250) -[2618658.091] {Default Queue} wl_pointer#681.motion(187310291, 25.00000000, 43.60156250) -[2618658.095] {Default Queue} wl_pointer#713.motion(187310291, 25.00000000, 43.60156250) -[2618658.100] {Default Queue} wl_pointer#745.motion(187310291, 25.00000000, 43.60156250) -[2618658.104] {Default Queue} wl_pointer#777.motion(187310291, 25.00000000, 43.60156250) -[2618658.108] {Default Queue} wl_pointer#809.motion(187310291, 25.00000000, 43.60156250) -[2618658.112] {Default Queue} wl_pointer#841.motion(187310291, 25.00000000, 43.60156250) -[2618658.117] {Default Queue} wl_pointer#873.motion(187310291, 25.00000000, 43.60156250) -[2618658.121] {Default Queue} wl_pointer#905.motion(187310291, 25.00000000, 43.60156250) -[2618658.125] {Default Queue} wl_pointer#937.motion(187310291, 25.00000000, 43.60156250) -[2618658.129] {Default Queue} wl_pointer#969.motion(187310291, 25.00000000, 43.60156250) -[2618658.134] {Default Queue} wl_pointer#1001.motion(187310291, 25.00000000, 43.60156250) -[2618658.138] {Default Queue} wl_pointer#1033.motion(187310291, 25.00000000, 43.60156250) -[2618658.142] {Default Queue} wl_pointer#1065.motion(187310291, 25.00000000, 43.60156250) -[2618658.147] {Default Queue} wl_pointer#1097.motion(187310291, 25.00000000, 43.60156250) -[2618658.151] {Default Queue} wl_pointer#1129.motion(187310291, 25.00000000, 43.60156250) -[2618658.155] {Default Queue} wl_pointer#1161.motion(187310291, 25.00000000, 43.60156250) -[2618658.159] {Default Queue} wl_pointer#1193.motion(187310291, 25.00000000, 43.60156250) -[2618658.164] {Default Queue} wl_pointer#1225.motion(187310291, 25.00000000, 43.60156250) -[2618658.168] {Default Queue} wl_pointer#1257.motion(187310291, 25.00000000, 43.60156250) -[2618658.172] {Default Queue} wl_pointer#1289.motion(187310291, 25.00000000, 43.60156250) -[2618658.177] {Default Queue} wl_pointer#1321.motion(187310291, 25.00000000, 43.60156250) -[2618658.181] {Default Queue} wl_pointer#1353.motion(187310291, 25.00000000, 43.60156250) -[2618658.185] {Default Queue} wl_pointer#1385.motion(187310291, 25.00000000, 43.60156250) -[2618658.192] {Default Queue} wl_pointer#1417.motion(187310291, 25.00000000, 43.60156250) -[2618658.198] {Default Queue} wl_pointer#1449.motion(187310291, 25.00000000, 43.60156250) -[2618658.202] {Default Queue} wl_pointer#1481.motion(187310291, 25.00000000, 43.60156250) -[2618658.206] {Default Queue} wl_pointer#1513.motion(187310291, 25.00000000, 43.60156250) -[2618658.211] {Default Queue} wl_pointer#1545.motion(187310291, 25.00000000, 43.60156250) -[2618658.215] {Default Queue} wl_pointer#1577.motion(187310291, 25.00000000, 43.60156250) -[2618658.219] {Default Queue} wl_pointer#1609.motion(187310291, 25.00000000, 43.60156250) -[2618658.224] {Default Queue} wl_pointer#1641.motion(187310291, 25.00000000, 43.60156250) -[2618658.228] {Default Queue} wl_pointer#1673.motion(187310291, 25.00000000, 43.60156250) -[2618658.232] {Default Queue} wl_pointer#1705.motion(187310291, 25.00000000, 43.60156250) -[2618658.236] {Default Queue} wl_pointer#1737.motion(187310291, 25.00000000, 43.60156250) -[2618658.241] {Default Queue} wl_pointer#1762.motion(187310291, 25.00000000, 43.60156250) -[2618658.245] {Default Queue} wl_pointer#1801.motion(187310291, 25.00000000, 43.60156250) -[2618658.249] {Default Queue} wl_pointer#1833.motion(187310291, 25.00000000, 43.60156250) -[2618658.254] {Default Queue} wl_pointer#1865.motion(187310291, 25.00000000, 43.60156250) -[2618658.258] {Default Queue} wl_pointer#1897.motion(187310291, 25.00000000, 43.60156250) -[2618658.262] {Default Queue} wl_pointer#1929.motion(187310291, 25.00000000, 43.60156250) -[2618658.266] {Default Queue} wl_pointer#1961.motion(187310291, 25.00000000, 43.60156250) -[2618658.271] {Default Queue} wl_pointer#1993.motion(187310291, 25.00000000, 43.60156250) -[2618658.275] {Default Queue} wl_pointer#2025.motion(187310291, 25.00000000, 43.60156250) -[2618658.279] {Default Queue} wl_pointer#2057.motion(187310291, 25.00000000, 43.60156250) -[2618658.283] {Default Queue} wl_pointer#2089.motion(187310291, 25.00000000, 43.60156250) -[2618658.288] {Default Queue} wl_pointer#2121.motion(187310291, 25.00000000, 43.60156250) -[2618658.292] {Default Queue} wl_pointer#2153.motion(187310291, 25.00000000, 43.60156250) -[2618658.296] {Default Queue} wl_pointer#2185.motion(187310291, 25.00000000, 43.60156250) -[2618658.300] {Default Queue} wl_pointer#2217.motion(187310291, 25.00000000, 43.60156250) -[2618658.305] {Default Queue} wl_pointer#2249.motion(187310291, 25.00000000, 43.60156250) -[2618658.309] {Default Queue} wl_pointer#2281.motion(187310291, 25.00000000, 43.60156250) -[2618658.313] {Default Queue} wl_pointer#2313.motion(187310291, 25.00000000, 43.60156250) -[2618658.318] {Default Queue} wl_pointer#2345.motion(187310291, 25.00000000, 43.60156250) -[2618658.322] {Default Queue} wl_pointer#2377.motion(187310291, 25.00000000, 43.60156250) -[2618658.326] {Default Queue} wl_pointer#2409.motion(187310291, 25.00000000, 43.60156250) -[2618658.331] {Default Queue} wl_pointer#2441.motion(187310291, 25.00000000, 43.60156250) -[2618658.335] {Default Queue} wl_pointer#2473.motion(187310291, 25.00000000, 43.60156250) -[2618658.339] {Default Queue} wl_pointer#2498.motion(187310291, 25.00000000, 43.60156250) -[2618658.349] {Default Queue} -> wl_buffer#91.destroy() -[2618658.353] {Default Queue} -> wl_buffer#94.destroy() -[2618658.357] {Default Queue} -> wl_shm_pool#3683.destroy() -[2618658.361] {Default Queue} -> wl_shm_pool#92.destroy() -[2618658.366] {Default Queue} -> wl_surface#93.destroy() -[2618658.398] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3684, fd 583, 640) -[2618658.403] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 584, 640) -[2618658.408] {Default Queue} -> wl_shm_pool#3684.create_buffer(new id wl_buffer#3671, 0, 10, 16, 40, 0) -[2618658.413] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) -[2618658.420] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3682) -[2618658.424] {Default Queue} -> wl_surface#3682.attach(wl_buffer#3671, 0, 0) -[2618658.428] {Default Queue} -> wl_surface#3682.commit() -[2618658.436] {Default Queue} -> wl_surface#3682.attach(wl_buffer#3671, 0, 0) -[2618658.442] {Default Queue} -> wl_surface#3682.commit() -[2618658.446] {Default Queue} wl_pointer#2537.motion(187310291, 25.00000000, 43.60156250) -[2618658.451] {Default Queue} wl_pointer#2569.motion(187310291, 25.00000000, 43.60156250) -[2618658.455] {Default Queue} wl_pointer#2601.motion(187310291, 25.00000000, 43.60156250) -[2618658.460] {Default Queue} wl_pointer#2633.motion(187310291, 25.00000000, 43.60156250) -[2618658.464] {Default Queue} wl_pointer#2665.motion(187310291, 25.00000000, 43.60156250) -[2618658.468] {Default Queue} wl_pointer#2697.motion(187310291, 25.00000000, 43.60156250) -[2618658.473] {Default Queue} wl_pointer#2729.motion(187310291, 25.00000000, 43.60156250) -[2618658.477] {Default Queue} wl_pointer#2761.motion(187310291, 25.00000000, 43.60156250) -[2618658.481] {Default Queue} wl_pointer#2793.motion(187310291, 25.00000000, 43.60156250) -[2618658.486] {Default Queue} wl_pointer#2825.motion(187310291, 25.00000000, 43.60156250) -[2618658.490] {Default Queue} wl_pointer#2857.motion(187310291, 25.00000000, 43.60156250) -[2618658.495] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) -[2618658.499] {Default Queue} -> wl_surface#1735.commit() -[2618659.566] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) -[2618659.572] {Default Queue} -> wl_surface#1735.commit() -[2618659.578] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) -[2618659.582] {Default Queue} -> wl_surface#1735.commit() -[2618659.588] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) -[2618659.592] {Default Queue} -> wl_surface#1703.commit() -[2618660.653] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) -[2618660.658] {Default Queue} -> wl_surface#1703.commit() -[2618660.667] {Default Queue} -> wl_region#1727.subtract(0, 0, 19, 48) -[2618660.671] {Default Queue} -> wl_region#1727.add(-20, -49, 19, 48) -[2618660.676] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) -[2618660.680] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) -[2618660.685] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) -[2618660.690] {Default Queue} -> wl_surface#1703.commit() -[2618660.694] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) -[2618660.698] {Default Queue} -> wl_surface#1703.commit() -[2618660.703] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) -[2618660.707] {Default Queue} -> wl_surface#1703.commit() -[2618660.713] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) -[2618660.717] {Default Queue} -> wl_surface#1639.commit() -[2618661.407] {Display Queue} wl_display#1.delete_id(3452) -[2618661.413] {Display Queue} wl_display#1.delete_id(3451) -[2618661.417] {Display Queue} wl_display#1.delete_id(3518) -[2618661.421] {Display Queue} wl_display#1.delete_id(3517) -[2618661.425] {Display Queue} wl_display#1.delete_id(3454) -[2618661.429] {Display Queue} wl_display#1.delete_id(3484) -[2618661.433] {Display Queue} wl_display#1.delete_id(3293) -[2618661.436] {Display Queue} wl_display#1.delete_id(3294) -[2618661.440] {Display Queue} wl_display#1.delete_id(3291) -[2618661.444] {Display Queue} wl_display#1.delete_id(3292) -[2618661.448] {Default Queue} wl_pointer#2889.motion(187310291, 25.00000000, 43.60156250) -[2618661.453] {Default Queue} wl_pointer#2921.motion(187310291, 25.00000000, 43.60156250) -[2618661.457] {Default Queue} wl_pointer#2953.motion(187310291, 25.00000000, 43.60156250) -[2618661.462] {Default Queue} wl_pointer#2985.motion(187310291, 25.00000000, 43.60156250) -[2618661.466] {Default Queue} wl_pointer#3017.motion(187310291, 25.00000000, 43.60156250) -[2618661.470] {Default Queue} wl_pointer#3049.motion(187310291, 25.00000000, 43.60156250) -[2618661.474] {Default Queue} wl_pointer#3081.motion(187310291, 25.00000000, 43.60156250) -[2618661.479] {Default Queue} wl_pointer#3113.motion(187310291, 25.00000000, 43.60156250) -[2618661.483] {Default Queue} wl_pointer#3145.motion(187310291, 25.00000000, 43.60156250) -[2618661.492] {Default Queue} wl_pointer#3177.motion(187310291, 25.00000000, 43.60156250) -[2618661.499] {Default Queue} wl_pointer#3209.motion(187310291, 25.00000000, 43.60156250) -[2618661.504] {Default Queue} wl_pointer#3241.motion(187310291, 25.00000000, 43.60156250) -[2618661.508] {Default Queue} wl_pointer#3273.motion(187310291, 25.00000000, 43.60156250) -[2618661.512] {Default Queue} wl_pointer#3305.motion(187310291, 25.00000000, 43.60156250) -[2618661.516] {Default Queue} wl_pointer#3337.motion(187310291, 25.00000000, 43.60156250) -[2618661.521] {Default Queue} wl_pointer#3369.motion(187310291, 25.00000000, 43.60156250) -[2618661.525] {Default Queue} wl_pointer#3401.motion(187310291, 25.00000000, 43.60156250) -[2618661.529] {Default Queue} wl_pointer#3433.motion(187310291, 25.00000000, 43.60156250) -[2618661.534] {Default Queue} wl_pointer#3465.motion(187310291, 25.00000000, 43.60156250) -[2618661.538] {Default Queue} wl_pointer#3497.motion(187310291, 25.00000000, 43.60156250) -[2618661.542] {Default Queue} wl_pointer#3529.motion(187310291, 25.00000000, 43.60156250) -[2618661.547] {Default Queue} wl_pointer#3561.motion(187310291, 25.00000000, 43.60156250) -[2618661.551] {Default Queue} wl_pointer#3593.motion(187310291, 25.00000000, 43.60156250) -[2618661.555] {Default Queue} wl_pointer#3625.motion(187310291, 25.00000000, 43.60156250) -[2618661.560] {Default Queue} wl_pointer#3657.motion(187310291, 25.00000000, 43.60156250) -[2618661.564] {Default Queue} wl_pointer#3695.motion(187310291, 25.00000000, 43.60156250) -[2618661.571] {Default Queue} -> wl_region#1663.subtract(0, 0, 22, 51) -[2618661.575] {Default Queue} -> wl_region#1663.add(-20, -49, 19, 48) -[2618661.579] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) -[2618661.583] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) -[2618661.589] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) -[2618661.594] {Default Queue} -> wl_surface#1639.commit() -[2618661.598] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) -[2618661.602] {Default Queue} -> wl_surface#1639.commit() -[2618661.625] {Default Queue} wl_pointer#24.motion(187310296, 25.39843750, 42.00000000) -[2618661.630] {Default Queue} wl_pointer#81.motion(187310296, 25.39843750, 42.00000000) -[2618661.635] {Default Queue} wl_pointer#105.motion(187310296, 25.39843750, 42.00000000) -[2618661.640] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618661.644] {Default Queue} wl_pointer#137.motion(187310296, 25.39843750, 42.00000000) -[2618661.648] {Default Queue} wl_pointer#169.motion(187310296, 25.39843750, 42.00000000) -[2618661.653] {Default Queue} wl_pointer#201.motion(187310296, 25.39843750, 42.00000000) -[2618661.657] {Default Queue} wl_pointer#233.motion(187310296, 25.39843750, 42.00000000) -[2618661.661] {Default Queue} wl_pointer#265.motion(187310296, 25.39843750, 42.00000000) -[2618661.665] {Default Queue} wl_pointer#297.motion(187310296, 25.39843750, 42.00000000) -[2618661.670] {Default Queue} wl_pointer#329.motion(187310296, 25.39843750, 42.00000000) -[2618661.674] {Default Queue} wl_pointer#361.motion(187310296, 25.39843750, 42.00000000) -[2618661.678] {Default Queue} wl_pointer#393.motion(187310296, 25.39843750, 42.00000000) -[2618661.682] {Default Queue} wl_pointer#425.motion(187310296, 25.39843750, 42.00000000) -[2618661.686] {Default Queue} wl_pointer#457.motion(187310296, 25.39843750, 42.00000000) -[2618661.691] {Default Queue} wl_pointer#489.motion(187310296, 25.39843750, 42.00000000) -[2618661.695] {Default Queue} wl_pointer#521.motion(187310296, 25.39843750, 42.00000000) -[2618661.699] {Default Queue} wl_pointer#553.motion(187310296, 25.39843750, 42.00000000) -[2618661.704] {Default Queue} wl_pointer#585.motion(187310296, 25.39843750, 42.00000000) -[2618661.708] {Default Queue} wl_pointer#617.motion(187310296, 25.39843750, 42.00000000) -[2618661.712] {Default Queue} wl_pointer#649.motion(187310296, 25.39843750, 42.00000000) -[2618661.716] {Default Queue} wl_pointer#681.motion(187310296, 25.39843750, 42.00000000) -[2618661.724] {Default Queue} wl_pointer#713.motion(187310296, 25.39843750, 42.00000000) -[2618661.730] {Default Queue} wl_pointer#745.motion(187310296, 25.39843750, 42.00000000) -[2618661.734] {Default Queue} wl_pointer#777.motion(187310296, 25.39843750, 42.00000000) -[2618661.738] {Default Queue} wl_pointer#809.motion(187310296, 25.39843750, 42.00000000) -[2618661.743] {Default Queue} wl_pointer#841.motion(187310296, 25.39843750, 42.00000000) -[2618661.747] {Default Queue} wl_pointer#873.motion(187310296, 25.39843750, 42.00000000) -[2618661.751] {Default Queue} wl_pointer#905.motion(187310296, 25.39843750, 42.00000000) -[2618661.755] {Default Queue} wl_pointer#937.motion(187310296, 25.39843750, 42.00000000) -[2618661.760] {Default Queue} wl_pointer#969.motion(187310296, 25.39843750, 42.00000000) -[2618661.764] {Default Queue} wl_pointer#1001.motion(187310296, 25.39843750, 42.00000000) -[2618661.768] {Default Queue} wl_pointer#1033.motion(187310296, 25.39843750, 42.00000000) -[2618661.773] {Default Queue} wl_pointer#1065.motion(187310296, 25.39843750, 42.00000000) -[2618661.777] {Default Queue} wl_pointer#1097.motion(187310296, 25.39843750, 42.00000000) -[2618661.781] {Default Queue} wl_pointer#1129.motion(187310296, 25.39843750, 42.00000000) -[2618661.785] {Default Queue} wl_pointer#1161.motion(187310296, 25.39843750, 42.00000000) -[2618661.790] {Default Queue} wl_pointer#1193.motion(187310296, 25.39843750, 42.00000000) -[2618661.794] {Default Queue} wl_pointer#1225.motion(187310296, 25.39843750, 42.00000000) -[2618661.798] {Default Queue} wl_pointer#1257.motion(187310296, 25.39843750, 42.00000000) -[2618661.803] {Default Queue} wl_pointer#1289.motion(187310296, 25.39843750, 42.00000000) -[2618661.807] {Default Queue} wl_pointer#1321.motion(187310296, 25.39843750, 42.00000000) -[2618661.812] {Default Queue} wl_pointer#1353.motion(187310296, 25.39843750, 42.00000000) -[2618661.816] {Default Queue} wl_pointer#1385.motion(187310296, 25.39843750, 42.00000000) -[2618661.820] {Default Queue} wl_pointer#1417.motion(187310296, 25.39843750, 42.00000000) -[2618661.824] {Default Queue} wl_pointer#1449.motion(187310296, 25.39843750, 42.00000000) -[2618661.829] {Default Queue} wl_pointer#1481.motion(187310296, 25.39843750, 42.00000000) -[2618661.833] {Default Queue} wl_pointer#1513.motion(187310296, 25.39843750, 42.00000000) -[2618661.837] {Default Queue} wl_pointer#1545.motion(187310296, 25.39843750, 42.00000000) -[2618661.842] {Default Queue} wl_pointer#1577.motion(187310296, 25.39843750, 42.00000000) -[2618661.846] {Default Queue} wl_pointer#1609.motion(187310296, 25.39843750, 42.00000000) -[2618661.850] {Default Queue} wl_pointer#1641.motion(187310296, 25.39843750, 42.00000000) -[2618661.854] {Default Queue} wl_pointer#1673.motion(187310296, 25.39843750, 42.00000000) -[2618661.859] {Default Queue} wl_pointer#1705.motion(187310296, 25.39843750, 42.00000000) -[2618661.864] {Default Queue} wl_pointer#1737.motion(187310296, 25.39843750, 42.00000000) -[2618661.868] {Default Queue} wl_pointer#1762.motion(187310296, 25.39843750, 42.00000000) -[2618661.877] {Default Queue} wl_pointer#1801.motion(187310296, 25.39843750, 42.00000000) -[2618661.881] {Default Queue} wl_pointer#1833.motion(187310296, 25.39843750, 42.00000000) -[2618661.886] {Default Queue} wl_pointer#1865.motion(187310296, 25.39843750, 42.00000000) -[2618661.890] {Default Queue} wl_pointer#1897.motion(187310296, 25.39843750, 42.00000000) -[2618661.894] {Default Queue} wl_pointer#1929.motion(187310296, 25.39843750, 42.00000000) -[2618661.899] {Default Queue} wl_pointer#1961.motion(187310296, 25.39843750, 42.00000000) -[2618661.903] {Default Queue} wl_pointer#1993.motion(187310296, 25.39843750, 42.00000000) -[2618661.907] {Default Queue} wl_pointer#2025.motion(187310296, 25.39843750, 42.00000000) -[2618661.912] {Default Queue} wl_pointer#2057.motion(187310296, 25.39843750, 42.00000000) -[2618661.916] {Default Queue} wl_pointer#2089.motion(187310296, 25.39843750, 42.00000000) -[2618661.920] {Default Queue} wl_pointer#2121.motion(187310296, 25.39843750, 42.00000000) -[2618661.924] {Default Queue} wl_pointer#2153.motion(187310296, 25.39843750, 42.00000000) -[2618661.932] {Default Queue} wl_pointer#2185.motion(187310296, 25.39843750, 42.00000000) -[2618661.937] {Default Queue} wl_pointer#2217.motion(187310296, 25.39843750, 42.00000000) -[2618661.942] {Default Queue} wl_pointer#2249.motion(187310296, 25.39843750, 42.00000000) -[2618661.946] {Default Queue} wl_pointer#2281.motion(187310296, 25.39843750, 42.00000000) -[2618661.950] {Default Queue} wl_pointer#2313.motion(187310296, 25.39843750, 42.00000000) -[2618661.955] {Default Queue} wl_pointer#2345.motion(187310296, 25.39843750, 42.00000000) -[2618661.959] {Default Queue} wl_pointer#2377.motion(187310296, 25.39843750, 42.00000000) -[2618661.963] {Default Queue} wl_pointer#2409.motion(187310296, 25.39843750, 42.00000000) -[2618661.968] {Default Queue} wl_pointer#2441.motion(187310296, 25.39843750, 42.00000000) -[2618661.972] {Default Queue} wl_pointer#2473.motion(187310296, 25.39843750, 42.00000000) -[2618661.976] {Default Queue} wl_pointer#2498.motion(187310296, 25.39843750, 42.00000000) -[2618661.988] {Default Queue} -> wl_buffer#3671.destroy() -[2618661.993] {Default Queue} -> wl_buffer#3681.destroy() -[2618661.997] {Default Queue} -> wl_shm_pool#3684.destroy() -[2618662.001] {Default Queue} -> wl_shm_pool#3679.destroy() -[2618662.006] {Default Queue} -> wl_surface#3682.destroy() -[2618662.045] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3292, fd 575, 640) -[2618662.051] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 578, 640) -[2618662.055] {Default Queue} -> wl_shm_pool#3292.create_buffer(new id wl_buffer#3294, 0, 10, 16, 40, 0) -[2618662.060] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) -[2618662.067] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3484) -[2618662.071] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) -[2618662.075] {Default Queue} -> wl_surface#3484.commit() -[2618662.081] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) -[2618662.085] {Default Queue} -> wl_surface#3484.commit() -[2618662.089] {Default Queue} wl_pointer#2537.motion(187310296, 25.39843750, 42.00000000) -[2618662.094] {Default Queue} wl_pointer#2569.motion(187310296, 25.39843750, 42.00000000) -[2618662.098] {Default Queue} wl_pointer#2601.motion(187310296, 25.39843750, 42.00000000) -[2618662.102] {Default Queue} wl_pointer#2633.motion(187310296, 25.39843750, 42.00000000) -[2618662.107] {Default Queue} wl_pointer#2665.motion(187310296, 25.39843750, 42.00000000) -[2618662.111] {Default Queue} wl_pointer#2697.motion(187310296, 25.39843750, 42.00000000) -[2618662.115] {Default Queue} wl_pointer#2729.motion(187310296, 25.39843750, 42.00000000) -[2618662.119] {Default Queue} wl_pointer#2761.motion(187310296, 25.39843750, 42.00000000) -[2618662.124] {Default Queue} wl_pointer#2793.motion(187310296, 25.39843750, 42.00000000) -[2618662.128] {Default Queue} wl_pointer#2825.motion(187310296, 25.39843750, 42.00000000) -[2618662.133] {Default Queue} wl_pointer#2857.motion(187310296, 25.39843750, 42.00000000) -[2618662.137] {Default Queue} wl_pointer#2889.motion(187310296, 25.39843750, 42.00000000) -[2618662.141] {Default Queue} wl_pointer#2921.motion(187310296, 25.39843750, 42.00000000) -[2618662.145] {Default Queue} wl_pointer#2953.motion(187310296, 25.39843750, 42.00000000) -[2618662.150] {Default Queue} wl_pointer#2985.motion(187310296, 25.39843750, 42.00000000) -[2618662.154] {Default Queue} wl_pointer#3017.motion(187310296, 25.39843750, 42.00000000) -[2618662.158] {Default Queue} wl_pointer#3049.motion(187310296, 25.39843750, 42.00000000) -[2618662.162] {Default Queue} wl_pointer#3081.motion(187310296, 25.39843750, 42.00000000) -[2618662.167] {Default Queue} wl_pointer#3113.motion(187310296, 25.39843750, 42.00000000) -[2618662.171] {Default Queue} wl_pointer#3145.motion(187310296, 25.39843750, 42.00000000) -[2618662.175] {Default Queue} wl_pointer#3177.motion(187310296, 25.39843750, 42.00000000) -[2618662.180] {Default Queue} wl_pointer#3209.motion(187310296, 25.39843750, 42.00000000) -[2618662.184] {Default Queue} wl_pointer#3241.motion(187310296, 25.39843750, 42.00000000) -[2618662.191] {Default Queue} wl_pointer#3273.motion(187310296, 25.39843750, 42.00000000) -[2618662.197] {Default Queue} wl_pointer#3305.motion(187310296, 25.39843750, 42.00000000) -[2618662.202] {Default Queue} wl_pointer#3337.motion(187310296, 25.39843750, 42.00000000) -[2618662.206] {Default Queue} wl_pointer#3369.motion(187310296, 25.39843750, 42.00000000) -[2618662.211] {Default Queue} wl_pointer#3401.motion(187310296, 25.39843750, 42.00000000) -[2618662.215] {Default Queue} wl_pointer#3433.motion(187310296, 25.39843750, 42.00000000) -[2618662.219] {Default Queue} wl_pointer#3465.motion(187310296, 25.39843750, 42.00000000) -[2618662.224] {Default Queue} wl_pointer#3497.motion(187310296, 25.39843750, 42.00000000) -[2618662.228] {Default Queue} wl_pointer#3529.motion(187310296, 25.39843750, 42.00000000) -[2618662.232] {Default Queue} wl_pointer#3561.motion(187310296, 25.39843750, 42.00000000) -[2618662.237] {Default Queue} wl_pointer#3593.motion(187310296, 25.39843750, 42.00000000) -[2618662.241] {Default Queue} wl_pointer#3625.motion(187310296, 25.39843750, 42.00000000) -[2618662.245] {Default Queue} wl_pointer#3657.motion(187310296, 25.39843750, 42.00000000) -[2618662.250] {Default Queue} wl_pointer#3695.motion(187310296, 25.39843750, 42.00000000) -[2618662.254] {Default Queue} wl_pointer#24.motion(187310296, 25.39843750, 40.80078125) -[2618662.258] {Default Queue} wl_pointer#81.motion(187310296, 25.39843750, 40.80078125) -[2618662.264] {Default Queue} wl_pointer#105.motion(187310296, 25.39843750, 40.80078125) -[2618662.271] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618662.276] {Default Queue} wl_pointer#137.motion(187310296, 25.39843750, 40.80078125) -[2618662.282] {Default Queue} wl_pointer#169.motion(187310296, 25.39843750, 40.80078125) -[2618662.288] {Default Queue} wl_pointer#201.motion(187310296, 25.39843750, 40.80078125) -[2618662.294] {Default Queue} wl_pointer#233.motion(187310296, 25.39843750, 40.80078125) -[2618662.300] {Default Queue} wl_pointer#265.motion(187310296, 25.39843750, 40.80078125) -[2618662.305] {Default Queue} wl_pointer#297.motion(187310296, 25.39843750, 40.80078125) -[2618662.311] {Default Queue} wl_pointer#329.motion(187310296, 25.39843750, 40.80078125) -[2618662.316] {Default Queue} wl_pointer#361.motion(187310296, 25.39843750, 40.80078125) -[2618662.320] {Default Queue} wl_pointer#393.motion(187310296, 25.39843750, 40.80078125) -[2618662.325] {Default Queue} wl_pointer#425.motion(187310296, 25.39843750, 40.80078125) -[2618662.329] {Default Queue} wl_pointer#457.motion(187310296, 25.39843750, 40.80078125) -[2618662.333] {Default Queue} wl_pointer#489.motion(187310296, 25.39843750, 40.80078125) -[2618662.338] {Default Queue} wl_pointer#521.motion(187310296, 25.39843750, 40.80078125) -[2618662.342] {Default Queue} wl_pointer#553.motion(187310296, 25.39843750, 40.80078125) -[2618662.346] {Default Queue} wl_pointer#585.motion(187310296, 25.39843750, 40.80078125) -[2618662.351] {Default Queue} wl_pointer#617.motion(187310296, 25.39843750, 40.80078125) -[2618662.355] {Default Queue} wl_pointer#649.motion(187310296, 25.39843750, 40.80078125) -[2618662.359] {Default Queue} wl_pointer#681.motion(187310296, 25.39843750, 40.80078125) -[2618662.363] {Default Queue} wl_pointer#713.motion(187310296, 25.39843750, 40.80078125) -[2618662.368] {Default Queue} wl_pointer#745.motion(187310296, 25.39843750, 40.80078125) -[2618662.372] {Default Queue} wl_pointer#777.motion(187310296, 25.39843750, 40.80078125) -[2618662.376] {Default Queue} wl_pointer#809.motion(187310296, 25.39843750, 40.80078125) -[2618662.380] {Default Queue} wl_pointer#841.motion(187310296, 25.39843750, 40.80078125) -[2618662.385] {Default Queue} wl_pointer#873.motion(187310296, 25.39843750, 40.80078125) -[2618662.389] {Default Queue} wl_pointer#905.motion(187310296, 25.39843750, 40.80078125) -[2618662.393] {Default Queue} wl_pointer#937.motion(187310296, 25.39843750, 40.80078125) -[2618662.398] {Default Queue} wl_pointer#969.motion(187310296, 25.39843750, 40.80078125) -[2618662.402] {Default Queue} wl_pointer#1001.motion(187310296, 25.39843750, 40.80078125) -[2618662.407] {Default Queue} wl_pointer#1033.motion(187310296, 25.39843750, 40.80078125) -[2618662.413] {Default Queue} wl_pointer#1065.motion(187310296, 25.39843750, 40.80078125) -[2618662.418] {Default Queue} wl_pointer#1097.motion(187310296, 25.39843750, 40.80078125) -[2618662.422] {Default Queue} wl_pointer#1129.motion(187310296, 25.39843750, 40.80078125) -[2618662.426] {Default Queue} wl_pointer#1161.motion(187310296, 25.39843750, 40.80078125) -[2618662.431] {Default Queue} wl_pointer#1193.motion(187310296, 25.39843750, 40.80078125) -[2618662.435] {Default Queue} wl_pointer#1225.motion(187310296, 25.39843750, 40.80078125) -[2618662.439] {Default Queue} wl_pointer#1257.motion(187310296, 25.39843750, 40.80078125) -[2618662.443] {Default Queue} wl_pointer#1289.motion(187310296, 25.39843750, 40.80078125) -[2618662.448] {Default Queue} wl_pointer#1321.motion(187310296, 25.39843750, 40.80078125) -[2618662.452] {Default Queue} wl_pointer#1353.motion(187310296, 25.39843750, 40.80078125) -[2618662.456] {Default Queue} wl_pointer#1385.motion(187310296, 25.39843750, 40.80078125) -[2618662.461] {Default Queue} wl_pointer#1417.motion(187310296, 25.39843750, 40.80078125) -[2618662.465] {Default Queue} wl_pointer#1449.motion(187310296, 25.39843750, 40.80078125) -[2618662.469] {Default Queue} wl_pointer#1481.motion(187310296, 25.39843750, 40.80078125) -[2618662.473] {Default Queue} wl_pointer#1513.motion(187310296, 25.39843750, 40.80078125) -[2618662.478] {Default Queue} wl_pointer#1545.motion(187310296, 25.39843750, 40.80078125) -[2618662.482] {Default Queue} wl_pointer#1577.motion(187310296, 25.39843750, 40.80078125) -[2618662.486] {Default Queue} wl_pointer#1609.motion(187310296, 25.39843750, 40.80078125) -[2618662.491] {Default Queue} wl_pointer#1641.motion(187310296, 25.39843750, 40.80078125) -[2618662.495] {Default Queue} wl_pointer#1673.motion(187310296, 25.39843750, 40.80078125) -[2618662.499] {Default Queue} wl_pointer#1705.motion(187310296, 25.39843750, 40.80078125) -[2618662.503] {Default Queue} wl_pointer#1737.motion(187310296, 25.39843750, 40.80078125) -[2618662.508] {Default Queue} wl_pointer#1762.motion(187310296, 25.39843750, 40.80078125) -[2618662.512] {Default Queue} wl_pointer#1801.motion(187310296, 25.39843750, 40.80078125) -[2618662.516] {Default Queue} wl_pointer#1833.motion(187310296, 25.39843750, 40.80078125) -[2618662.521] {Default Queue} wl_pointer#1865.motion(187310296, 25.39843750, 40.80078125) -[2618662.525] {Default Queue} wl_pointer#1897.motion(187310296, 25.39843750, 40.80078125) -[2618662.529] {Default Queue} wl_pointer#1929.motion(187310296, 25.39843750, 40.80078125) -[2618662.533] {Default Queue} wl_pointer#1961.motion(187310296, 25.39843750, 40.80078125) -[2618662.538] {Default Queue} wl_pointer#1993.motion(187310296, 25.39843750, 40.80078125) -[2618662.542] {Default Queue} wl_pointer#2025.motion(187310296, 25.39843750, 40.80078125) -[2618662.546] {Default Queue} wl_pointer#2057.motion(187310296, 25.39843750, 40.80078125) -[2618662.550] {Default Queue} wl_pointer#2089.motion(187310296, 25.39843750, 40.80078125) -[2618662.555] {Default Queue} wl_pointer#2121.motion(187310296, 25.39843750, 40.80078125) -[2618662.559] {Default Queue} wl_pointer#2153.motion(187310296, 25.39843750, 40.80078125) -[2618662.563] {Default Queue} wl_pointer#2185.motion(187310296, 25.39843750, 40.80078125) -[2618662.567] {Default Queue} wl_pointer#2217.motion(187310296, 25.39843750, 40.80078125) -[2618662.572] {Default Queue} wl_pointer#2249.motion(187310296, 25.39843750, 40.80078125) -[2618662.576] {Default Queue} wl_pointer#2281.motion(187310296, 25.39843750, 40.80078125) -[2618662.580] {Default Queue} wl_pointer#2313.motion(187310296, 25.39843750, 40.80078125) -[2618662.585] {Default Queue} wl_pointer#2345.motion(187310296, 25.39843750, 40.80078125) -[2618662.589] {Default Queue} wl_pointer#2377.motion(187310296, 25.39843750, 40.80078125) -[2618662.593] {Default Queue} wl_pointer#2409.motion(187310296, 25.39843750, 40.80078125) -[2618662.597] {Default Queue} wl_pointer#2441.motion(187310296, 25.39843750, 40.80078125) -[2618662.604] {Default Queue} wl_pointer#2473.motion(187310296, 25.39843750, 40.80078125) -[2618662.610] {Default Queue} wl_pointer#2498.motion(187310296, 25.39843750, 40.80078125) -[2618662.622] {Default Queue} -> wl_buffer#3294.destroy() -[2618662.628] {Default Queue} -> wl_buffer#3293.destroy() -[2618662.633] {Default Queue} -> wl_shm_pool#3292.destroy() -[2618662.638] {Default Queue} -> wl_shm_pool#3291.destroy() -[2618662.644] {Default Queue} -> wl_surface#3484.destroy() -[2618662.684] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3454, fd 581, 640) -[2618662.690] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3517, fd 582, 640) -[2618662.695] {Default Queue} -> wl_shm_pool#3454.create_buffer(new id wl_buffer#3518, 0, 10, 16, 40, 0) -[2618662.699] {Default Queue} -> wl_shm_pool#3517.create_buffer(new id wl_buffer#3451, 0, 10, 16, 40, 0) -[2618662.707] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3452) -[2618662.711] {Default Queue} -> wl_surface#3452.attach(wl_buffer#3518, 0, 0) -[2618662.715] {Default Queue} -> wl_surface#3452.commit() -[2618662.721] {Default Queue} -> wl_surface#3452.attach(wl_buffer#3518, 0, 0) -[2618662.725] {Default Queue} -> wl_surface#3452.commit() -[2618662.730] {Default Queue} wl_pointer#2537.motion(187310296, 25.39843750, 40.80078125) -[2618662.734] {Default Queue} wl_pointer#2569.motion(187310296, 25.39843750, 40.80078125) -[2618662.739] {Default Queue} wl_pointer#2601.motion(187310296, 25.39843750, 40.80078125) -[2618662.743] {Default Queue} wl_pointer#2633.motion(187310296, 25.39843750, 40.80078125) -[2618662.747] {Default Queue} wl_pointer#2665.motion(187310296, 25.39843750, 40.80078125) -[2618662.752] {Default Queue} wl_pointer#2697.motion(187310296, 25.39843750, 40.80078125) -[2618662.756] {Default Queue} wl_pointer#2729.motion(187310296, 25.39843750, 40.80078125) -[2618662.760] {Default Queue} wl_pointer#2761.motion(187310296, 25.39843750, 40.80078125) -[2618662.764] {Default Queue} wl_pointer#2793.motion(187310296, 25.39843750, 40.80078125) -[2618662.769] {Default Queue} wl_pointer#2825.motion(187310296, 25.39843750, 40.80078125) -[2618662.773] {Default Queue} wl_pointer#2857.motion(187310296, 25.39843750, 40.80078125) -[2618662.778] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) -[2618662.782] {Default Queue} -> wl_surface#1639.commit() -[2618663.848] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) -[2618663.853] {Default Queue} -> wl_surface#1639.commit() -[2618663.859] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) -[2618663.868] {Default Queue} -> wl_surface#1639.commit() -[2618663.874] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) -[2618663.878] {Default Queue} -> wl_surface#1607.commit() -[2618664.940] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) -[2618664.945] {Default Queue} -> wl_surface#1607.commit() -[2618664.956] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) -[2618664.961] {Default Queue} -> wl_region#1631.add(0, 0, 2, 2) -[2618664.966] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618664.970] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618664.978] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) -[2618664.982] {Default Queue} -> wl_region#1631.add(0, 0, 2, 2) -[2618664.986] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618664.990] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618664.996] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) -[2618665.000] {Default Queue} -> wl_region#1631.add(0, 0, 2, 2) -[2618665.004] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618665.008] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618665.013] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) -[2618665.018] {Default Queue} -> wl_region#1631.add(0, 0, 2, 2) -[2618665.022] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618665.030] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618665.039] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) -[2618665.044] {Default Queue} -> wl_region#1631.add(0, 0, 2, 2) -[2618665.048] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618665.052] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618665.056] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) -[2618665.060] {Default Queue} -> wl_surface#1607.commit() -[2618665.064] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) -[2618665.068] {Default Queue} -> wl_surface#1607.commit() -[2618665.074] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) -[2618665.078] {Default Queue} -> wl_surface#1607.commit() -[2618665.085] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) -[2618665.089] {Default Queue} -> wl_surface#1831.commit() -[2618666.151] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) -[2618666.156] {Default Queue} -> wl_surface#1831.commit() -[2618666.165] {Default Queue} -> wl_region#1855.subtract(0, 0, 19, 48) -[2618666.170] {Default Queue} -> wl_region#1855.add(-20, -49, 19, 48) -[2618666.174] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2618666.178] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2618666.262] {Default Queue} -> wl_region#1855.subtract(0, 0, 19, 48) -[2618666.266] {Default Queue} -> wl_region#1855.add(-20, -49, 19, 48) -[2618666.271] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2618666.275] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2618666.281] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618666.286] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618666.338] {Default Queue} -> wl_region#1855.subtract(0, 0, 19, 48) -[2618666.343] {Default Queue} -> wl_region#1855.add(-20, -49, 19, 48) -[2618666.347] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2618666.351] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2618666.356] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618666.360] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618666.365] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) -[2618666.369] {Default Queue} -> wl_surface#1831.commit() -[2618666.373] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) -[2618666.377] {Default Queue} -> wl_surface#1831.commit() -[2618666.389] {Display Queue} wl_display#1.delete_id(3483) -[2618666.394] {Display Queue} wl_display#1.delete_id(3516) -[2618666.398] {Display Queue} wl_display#1.delete_id(3515) -[2618666.402] {Display Queue} wl_display#1.delete_id(3486) -[2618666.406] {Display Queue} wl_display#1.delete_id(3485) -[2618666.410] {Display Queue} wl_display#1.delete_id(3677) -[2618666.414] {Display Queue} wl_display#1.delete_id(3678) -[2618666.418] {Display Queue} wl_display#1.delete_id(3675) -[2618666.422] {Display Queue} wl_display#1.delete_id(3676) -[2618666.426] {Display Queue} wl_display#1.delete_id(3674) -[2618666.430] {Display Queue} wl_display#1.delete_id(91) -[2618666.434] {Display Queue} wl_display#1.delete_id(94) -[2618666.438] {Display Queue} wl_display#1.delete_id(3683) -[2618666.442] {Display Queue} wl_display#1.delete_id(92) -[2618666.446] {Display Queue} wl_display#1.delete_id(93) -[2618666.449] {Default Queue} wl_pointer#2889.motion(187310296, 25.39843750, 40.80078125) -[2618666.454] {Default Queue} wl_pointer#2921.motion(187310296, 25.39843750, 40.80078125) -[2618666.459] {Default Queue} wl_pointer#2953.motion(187310296, 25.39843750, 40.80078125) -[2618666.463] {Default Queue} wl_pointer#2985.motion(187310296, 25.39843750, 40.80078125) -[2618666.467] {Default Queue} wl_pointer#3017.motion(187310296, 25.39843750, 40.80078125) -[2618666.471] {Default Queue} wl_pointer#3049.motion(187310296, 25.39843750, 40.80078125) -[2618666.476] {Default Queue} wl_pointer#3081.motion(187310296, 25.39843750, 40.80078125) -[2618666.480] {Default Queue} wl_pointer#3113.motion(187310296, 25.39843750, 40.80078125) -[2618666.488] {Default Queue} wl_pointer#3145.motion(187310296, 25.39843750, 40.80078125) -[2618666.495] {Default Queue} wl_pointer#3177.motion(187310296, 25.39843750, 40.80078125) -[2618666.499] {Default Queue} wl_pointer#3209.motion(187310296, 25.39843750, 40.80078125) -[2618666.504] {Default Queue} wl_pointer#3241.motion(187310296, 25.39843750, 40.80078125) -[2618666.508] {Default Queue} wl_pointer#3273.motion(187310296, 25.39843750, 40.80078125) -[2618666.512] {Default Queue} wl_pointer#3305.motion(187310296, 25.39843750, 40.80078125) -[2618666.517] {Default Queue} wl_pointer#3337.motion(187310296, 25.39843750, 40.80078125) -[2618666.521] {Default Queue} wl_pointer#3369.motion(187310296, 25.39843750, 40.80078125) -[2618666.525] {Default Queue} wl_pointer#3401.motion(187310296, 25.39843750, 40.80078125) -[2618666.529] {Default Queue} wl_pointer#3433.motion(187310296, 25.39843750, 40.80078125) -[2618666.534] {Default Queue} wl_pointer#3465.motion(187310296, 25.39843750, 40.80078125) -[2618666.538] {Default Queue} wl_pointer#3497.motion(187310296, 25.39843750, 40.80078125) -[2618666.542] {Default Queue} wl_pointer#3529.motion(187310296, 25.39843750, 40.80078125) -[2618666.547] {Default Queue} wl_pointer#3561.motion(187310296, 25.39843750, 40.80078125) -[2618666.551] {Default Queue} wl_pointer#3593.motion(187310296, 25.39843750, 40.80078125) -[2618666.555] {Default Queue} wl_pointer#3625.motion(187310296, 25.39843750, 40.80078125) -[2618666.560] {Default Queue} wl_pointer#3657.motion(187310296, 25.39843750, 40.80078125) -[2618666.564] {Default Queue} wl_pointer#3695.motion(187310296, 25.39843750, 40.80078125) -[2618666.568] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) -[2618666.572] {Default Queue} -> wl_surface#1831.commit() -[2618666.598] {Default Queue} wl_pointer#24.motion(187310301, 25.39843750, 39.60156250) -[2618666.603] {Default Queue} wl_pointer#81.motion(187310301, 25.39843750, 39.60156250) -[2618666.609] {Default Queue} wl_pointer#105.motion(187310301, 25.39843750, 39.60156250) -[2618666.613] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618666.618] {Default Queue} wl_pointer#137.motion(187310301, 25.39843750, 39.60156250) -[2618666.622] {Default Queue} wl_pointer#169.motion(187310301, 25.39843750, 39.60156250) -[2618666.626] {Default Queue} wl_pointer#201.motion(187310301, 25.39843750, 39.60156250) -[2618666.631] {Default Queue} wl_pointer#233.motion(187310301, 25.39843750, 39.60156250) -[2618666.635] {Default Queue} wl_pointer#265.motion(187310301, 25.39843750, 39.60156250) -[2618666.639] {Default Queue} wl_pointer#297.motion(187310301, 25.39843750, 39.60156250) -[2618666.643] {Default Queue} wl_pointer#329.motion(187310301, 25.39843750, 39.60156250) -[2618666.648] {Default Queue} wl_pointer#361.motion(187310301, 25.39843750, 39.60156250) -[2618666.652] {Default Queue} wl_pointer#393.motion(187310301, 25.39843750, 39.60156250) -[2618666.656] {Default Queue} wl_pointer#425.motion(187310301, 25.39843750, 39.60156250) -[2618666.660] {Default Queue} wl_pointer#457.motion(187310301, 25.39843750, 39.60156250) -[2618666.665] {Default Queue} wl_pointer#489.motion(187310301, 25.39843750, 39.60156250) -[2618666.669] {Default Queue} wl_pointer#521.motion(187310301, 25.39843750, 39.60156250) -[2618666.673] {Default Queue} wl_pointer#553.motion(187310301, 25.39843750, 39.60156250) -[2618666.677] {Default Queue} wl_pointer#585.motion(187310301, 25.39843750, 39.60156250) -[2618666.682] {Default Queue} wl_pointer#617.motion(187310301, 25.39843750, 39.60156250) -[2618666.686] {Default Queue} wl_pointer#649.motion(187310301, 25.39843750, 39.60156250) -[2618666.690] {Default Queue} wl_pointer#681.motion(187310301, 25.39843750, 39.60156250) -[2618666.695] {Default Queue} wl_pointer#713.motion(187310301, 25.39843750, 39.60156250) -[2618666.699] {Default Queue} wl_pointer#745.motion(187310301, 25.39843750, 39.60156250) -[2618666.703] {Default Queue} wl_pointer#777.motion(187310301, 25.39843750, 39.60156250) -[2618666.707] {Default Queue} wl_pointer#809.motion(187310301, 25.39843750, 39.60156250) -[2618666.715] {Default Queue} wl_pointer#841.motion(187310301, 25.39843750, 39.60156250) -[2618666.721] {Default Queue} wl_pointer#873.motion(187310301, 25.39843750, 39.60156250) -[2618666.725] {Default Queue} wl_pointer#905.motion(187310301, 25.39843750, 39.60156250) -[2618666.729] {Default Queue} wl_pointer#937.motion(187310301, 25.39843750, 39.60156250) -[2618666.733] {Default Queue} wl_pointer#969.motion(187310301, 25.39843750, 39.60156250) -[2618666.738] {Default Queue} wl_pointer#1001.motion(187310301, 25.39843750, 39.60156250) -[2618666.742] {Default Queue} wl_pointer#1033.motion(187310301, 25.39843750, 39.60156250) -[2618666.746] {Default Queue} wl_pointer#1065.motion(187310301, 25.39843750, 39.60156250) -[2618666.750] {Default Queue} wl_pointer#1097.motion(187310301, 25.39843750, 39.60156250) -[2618666.755] {Default Queue} wl_pointer#1129.motion(187310301, 25.39843750, 39.60156250) -[2618666.759] {Default Queue} wl_pointer#1161.motion(187310301, 25.39843750, 39.60156250) -[2618666.763] {Default Queue} wl_pointer#1193.motion(187310301, 25.39843750, 39.60156250) -[2618666.768] {Default Queue} wl_pointer#1225.motion(187310301, 25.39843750, 39.60156250) -[2618666.772] {Default Queue} wl_pointer#1257.motion(187310301, 25.39843750, 39.60156250) -[2618666.776] {Default Queue} wl_pointer#1289.motion(187310301, 25.39843750, 39.60156250) -[2618666.781] {Default Queue} wl_pointer#1321.motion(187310301, 25.39843750, 39.60156250) -[2618666.785] {Default Queue} wl_pointer#1353.motion(187310301, 25.39843750, 39.60156250) -[2618666.789] {Default Queue} wl_pointer#1385.motion(187310301, 25.39843750, 39.60156250) -[2618666.793] {Default Queue} wl_pointer#1417.motion(187310301, 25.39843750, 39.60156250) -[2618666.798] {Default Queue} wl_pointer#1449.motion(187310301, 25.39843750, 39.60156250) -[2618666.802] {Default Queue} wl_pointer#1481.motion(187310301, 25.39843750, 39.60156250) -[2618666.806] {Default Queue} wl_pointer#1513.motion(187310301, 25.39843750, 39.60156250) -[2618666.810] {Default Queue} wl_pointer#1545.motion(187310301, 25.39843750, 39.60156250) -[2618666.815] {Default Queue} wl_pointer#1577.motion(187310301, 25.39843750, 39.60156250) -[2618666.819] {Default Queue} wl_pointer#1609.motion(187310301, 25.39843750, 39.60156250) -[2618666.823] {Default Queue} wl_pointer#1641.motion(187310301, 25.39843750, 39.60156250) -[2618666.827] {Default Queue} wl_pointer#1673.motion(187310301, 25.39843750, 39.60156250) -[2618666.832] {Default Queue} wl_pointer#1705.motion(187310301, 25.39843750, 39.60156250) -[2618666.836] {Default Queue} wl_pointer#1737.motion(187310301, 25.39843750, 39.60156250) -[2618666.840] {Default Queue} wl_pointer#1762.motion(187310301, 25.39843750, 39.60156250) -[2618666.845] {Default Queue} wl_pointer#1801.motion(187310301, 25.39843750, 39.60156250) -[2618666.849] {Default Queue} wl_pointer#1833.motion(187310301, 25.39843750, 39.60156250) -[2618666.853] {Default Queue} wl_pointer#1865.motion(187310301, 25.39843750, 39.60156250) -[2618666.857] {Default Queue} wl_pointer#1897.motion(187310301, 25.39843750, 39.60156250) -[2618666.862] {Default Queue} wl_pointer#1929.motion(187310301, 25.39843750, 39.60156250) -[2618666.867] {Default Queue} wl_pointer#1961.motion(187310301, 25.39843750, 39.60156250) -[2618666.877] {Default Queue} wl_pointer#1993.motion(187310301, 25.39843750, 39.60156250) -[2618666.882] {Default Queue} wl_pointer#2025.motion(187310301, 25.39843750, 39.60156250) -[2618666.886] {Default Queue} wl_pointer#2057.motion(187310301, 25.39843750, 39.60156250) -[2618666.890] {Default Queue} wl_pointer#2089.motion(187310301, 25.39843750, 39.60156250) -[2618666.895] {Default Queue} wl_pointer#2121.motion(187310301, 25.39843750, 39.60156250) -[2618666.899] {Default Queue} wl_pointer#2153.motion(187310301, 25.39843750, 39.60156250) -[2618666.903] {Default Queue} wl_pointer#2185.motion(187310301, 25.39843750, 39.60156250) -[2618666.908] {Default Queue} wl_pointer#2217.motion(187310301, 25.39843750, 39.60156250) -[2618666.912] {Default Queue} wl_pointer#2249.motion(187310301, 25.39843750, 39.60156250) -[2618666.916] {Default Queue} wl_pointer#2281.motion(187310301, 25.39843750, 39.60156250) -[2618666.923] {Default Queue} wl_pointer#2313.motion(187310301, 25.39843750, 39.60156250) -[2618666.929] {Default Queue} wl_pointer#2345.motion(187310301, 25.39843750, 39.60156250) -[2618666.934] {Default Queue} wl_pointer#2377.motion(187310301, 25.39843750, 39.60156250) -[2618666.938] {Default Queue} wl_pointer#2409.motion(187310301, 25.39843750, 39.60156250) -[2618666.943] {Default Queue} wl_pointer#2441.motion(187310301, 25.39843750, 39.60156250) -[2618666.947] {Default Queue} wl_pointer#2473.motion(187310301, 25.39843750, 39.60156250) -[2618666.951] {Default Queue} wl_pointer#2498.motion(187310301, 25.39843750, 39.60156250) -[2618666.963] {Default Queue} -> wl_buffer#3518.destroy() -[2618666.968] {Default Queue} -> wl_buffer#3451.destroy() -[2618666.972] {Default Queue} -> wl_shm_pool#3454.destroy() -[2618666.976] {Default Queue} -> wl_shm_pool#3517.destroy() -[2618666.981] {Default Queue} -> wl_surface#3452.destroy() -[2618667.031] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#93, fd 575, 640) -[2618667.037] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 578, 640) -[2618667.041] {Default Queue} -> wl_shm_pool#93.create_buffer(new id wl_buffer#3683, 0, 10, 16, 40, 0) -[2618667.046] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) -[2618667.053] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#91) -[2618667.057] {Default Queue} -> wl_surface#91.attach(wl_buffer#3683, 0, 0) -[2618667.062] {Default Queue} -> wl_surface#91.commit() -[2618667.067] {Default Queue} -> wl_surface#91.attach(wl_buffer#3683, 0, 0) -[2618667.071] {Default Queue} -> wl_surface#91.commit() -[2618667.075] {Default Queue} wl_pointer#2537.motion(187310301, 25.39843750, 39.60156250) -[2618667.080] {Default Queue} wl_pointer#2569.motion(187310301, 25.39843750, 39.60156250) -[2618667.084] {Default Queue} wl_pointer#2601.motion(187310301, 25.39843750, 39.60156250) -[2618667.089] {Default Queue} wl_pointer#2633.motion(187310301, 25.39843750, 39.60156250) -[2618667.093] {Default Queue} wl_pointer#2665.motion(187310301, 25.39843750, 39.60156250) -[2618667.097] {Default Queue} wl_pointer#2697.motion(187310301, 25.39843750, 39.60156250) -[2618667.102] {Default Queue} wl_pointer#2729.motion(187310301, 25.39843750, 39.60156250) -[2618667.106] {Default Queue} wl_pointer#2761.motion(187310301, 25.39843750, 39.60156250) -[2618667.110] {Default Queue} wl_pointer#2793.motion(187310301, 25.39843750, 39.60156250) -[2618667.115] {Default Queue} wl_pointer#2825.motion(187310301, 25.39843750, 39.60156250) -[2618667.119] {Default Queue} wl_pointer#2857.motion(187310301, 25.39843750, 39.60156250) -[2618667.123] {Default Queue} wl_pointer#2889.motion(187310301, 25.39843750, 39.60156250) -[2618667.128] {Default Queue} wl_pointer#2921.motion(187310301, 25.39843750, 39.60156250) -[2618667.132] {Default Queue} wl_pointer#2953.motion(187310301, 25.39843750, 39.60156250) -[2618667.136] {Default Queue} wl_pointer#2985.motion(187310301, 25.39843750, 39.60156250) -[2618667.140] {Default Queue} wl_pointer#3017.motion(187310301, 25.39843750, 39.60156250) -[2618667.145] {Default Queue} wl_pointer#3049.motion(187310301, 25.39843750, 39.60156250) -[2618667.149] {Default Queue} wl_pointer#3081.motion(187310301, 25.39843750, 39.60156250) -[2618667.153] {Default Queue} wl_pointer#3113.motion(187310301, 25.39843750, 39.60156250) -[2618667.157] {Default Queue} wl_pointer#3145.motion(187310301, 25.39843750, 39.60156250) -[2618667.162] {Default Queue} wl_pointer#3177.motion(187310301, 25.39843750, 39.60156250) -[2618667.166] {Default Queue} wl_pointer#3209.motion(187310301, 25.39843750, 39.60156250) -[2618667.170] {Default Queue} wl_pointer#3241.motion(187310301, 25.39843750, 39.60156250) -[2618667.175] {Default Queue} wl_pointer#3273.motion(187310301, 25.39843750, 39.60156250) -[2618667.179] {Default Queue} wl_pointer#3305.motion(187310301, 25.39843750, 39.60156250) -[2618667.184] {Default Queue} wl_pointer#3337.motion(187310301, 25.39843750, 39.60156250) -[2618667.188] {Default Queue} wl_pointer#3369.motion(187310301, 25.39843750, 39.60156250) -[2618667.193] {Default Queue} wl_pointer#3401.motion(187310301, 25.39843750, 39.60156250) -[2618667.200] {Default Queue} wl_pointer#3433.motion(187310301, 25.39843750, 39.60156250) -[2618667.204] {Default Queue} wl_pointer#3465.motion(187310301, 25.39843750, 39.60156250) -[2618667.210] {Default Queue} wl_pointer#3497.motion(187310301, 25.39843750, 39.60156250) -[2618667.216] {Default Queue} wl_pointer#3529.motion(187310301, 25.39843750, 39.60156250) -[2618667.222] {Default Queue} wl_pointer#3561.motion(187310301, 25.39843750, 39.60156250) -[2618667.228] {Default Queue} wl_pointer#3593.motion(187310301, 25.39843750, 39.60156250) -[2618667.233] {Default Queue} wl_pointer#3625.motion(187310301, 25.39843750, 39.60156250) -[2618667.239] {Default Queue} wl_pointer#3657.motion(187310301, 25.39843750, 39.60156250) -[2618667.245] {Default Queue} wl_pointer#3695.motion(187310301, 25.39843750, 39.60156250) -[2618667.251] {Default Queue} wl_pointer#24.motion(187310301, 25.39843750, 38.00000000) -[2618667.257] {Default Queue} wl_pointer#81.motion(187310301, 25.39843750, 38.00000000) -[2618667.262] {Default Queue} wl_pointer#105.motion(187310301, 25.39843750, 38.00000000) -[2618667.267] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618667.271] {Default Queue} wl_pointer#137.motion(187310301, 25.39843750, 38.00000000) -[2618667.275] {Default Queue} wl_pointer#169.motion(187310301, 25.39843750, 38.00000000) -[2618667.280] {Default Queue} wl_pointer#201.motion(187310301, 25.39843750, 38.00000000) -[2618667.284] {Default Queue} wl_pointer#233.motion(187310301, 25.39843750, 38.00000000) -[2618667.289] {Default Queue} wl_pointer#265.motion(187310301, 25.39843750, 38.00000000) -[2618667.295] {Default Queue} wl_pointer#297.motion(187310301, 25.39843750, 38.00000000) -[2618667.301] {Default Queue} wl_pointer#329.motion(187310301, 25.39843750, 38.00000000) -[2618667.307] {Default Queue} wl_pointer#361.motion(187310301, 25.39843750, 38.00000000) -[2618667.313] {Default Queue} wl_pointer#393.motion(187310301, 25.39843750, 38.00000000) -[2618667.319] {Default Queue} wl_pointer#425.motion(187310301, 25.39843750, 38.00000000) -[2618667.324] {Default Queue} wl_pointer#457.motion(187310301, 25.39843750, 38.00000000) -[2618667.328] {Default Queue} wl_pointer#489.motion(187310301, 25.39843750, 38.00000000) -[2618667.332] {Default Queue} wl_pointer#521.motion(187310301, 25.39843750, 38.00000000) -[2618667.337] {Default Queue} wl_pointer#553.motion(187310301, 25.39843750, 38.00000000) -[2618667.341] {Default Queue} wl_pointer#585.motion(187310301, 25.39843750, 38.00000000) -[2618667.345] {Default Queue} wl_pointer#617.motion(187310301, 25.39843750, 38.00000000) -[2618667.350] {Default Queue} wl_pointer#649.motion(187310301, 25.39843750, 38.00000000) -[2618667.354] {Default Queue} wl_pointer#681.motion(187310301, 25.39843750, 38.00000000) -[2618667.358] {Default Queue} wl_pointer#713.motion(187310301, 25.39843750, 38.00000000) -[2618667.362] {Default Queue} wl_pointer#745.motion(187310301, 25.39843750, 38.00000000) -[2618667.367] {Default Queue} wl_pointer#777.motion(187310301, 25.39843750, 38.00000000) -[2618667.371] {Default Queue} wl_pointer#809.motion(187310301, 25.39843750, 38.00000000) -[2618667.375] {Default Queue} wl_pointer#841.motion(187310301, 25.39843750, 38.00000000) -[2618667.380] {Default Queue} wl_pointer#873.motion(187310301, 25.39843750, 38.00000000) -[2618667.384] {Default Queue} wl_pointer#905.motion(187310301, 25.39843750, 38.00000000) -[2618667.388] {Default Queue} wl_pointer#937.motion(187310301, 25.39843750, 38.00000000) -[2618667.393] {Default Queue} wl_pointer#969.motion(187310301, 25.39843750, 38.00000000) -[2618667.397] {Default Queue} wl_pointer#1001.motion(187310301, 25.39843750, 38.00000000) -[2618667.401] {Default Queue} wl_pointer#1033.motion(187310301, 25.39843750, 38.00000000) -[2618667.405] {Default Queue} wl_pointer#1065.motion(187310301, 25.39843750, 38.00000000) -[2618667.410] {Default Queue} wl_pointer#1097.motion(187310301, 25.39843750, 38.00000000) -[2618667.417] {Default Queue} wl_pointer#1129.motion(187310301, 25.39843750, 38.00000000) -[2618667.423] {Default Queue} wl_pointer#1161.motion(187310301, 25.39843750, 38.00000000) -[2618667.428] {Default Queue} wl_pointer#1193.motion(187310301, 25.39843750, 38.00000000) -[2618667.432] {Default Queue} wl_pointer#1225.motion(187310301, 25.39843750, 38.00000000) -[2618667.436] {Default Queue} wl_pointer#1257.motion(187310301, 25.39843750, 38.00000000) -[2618667.440] {Default Queue} wl_pointer#1289.motion(187310301, 25.39843750, 38.00000000) -[2618667.445] {Default Queue} wl_pointer#1321.motion(187310301, 25.39843750, 38.00000000) -[2618667.449] {Default Queue} wl_pointer#1353.motion(187310301, 25.39843750, 38.00000000) -[2618667.453] {Default Queue} wl_pointer#1385.motion(187310301, 25.39843750, 38.00000000) -[2618667.458] {Default Queue} wl_pointer#1417.motion(187310301, 25.39843750, 38.00000000) -[2618667.462] {Default Queue} wl_pointer#1449.motion(187310301, 25.39843750, 38.00000000) -[2618667.466] {Default Queue} wl_pointer#1481.motion(187310301, 25.39843750, 38.00000000) -[2618667.470] {Default Queue} wl_pointer#1513.motion(187310301, 25.39843750, 38.00000000) -[2618667.475] {Default Queue} wl_pointer#1545.motion(187310301, 25.39843750, 38.00000000) -[2618667.479] {Default Queue} wl_pointer#1577.motion(187310301, 25.39843750, 38.00000000) -[2618667.483] {Default Queue} wl_pointer#1609.motion(187310301, 25.39843750, 38.00000000) -[2618667.488] {Default Queue} wl_pointer#1641.motion(187310301, 25.39843750, 38.00000000) -[2618667.492] {Default Queue} wl_pointer#1673.motion(187310301, 25.39843750, 38.00000000) -[2618667.496] {Default Queue} wl_pointer#1705.motion(187310301, 25.39843750, 38.00000000) -[2618667.500] {Default Queue} wl_pointer#1737.motion(187310301, 25.39843750, 38.00000000) -[2618667.505] {Default Queue} wl_pointer#1762.motion(187310301, 25.39843750, 38.00000000) -[2618667.509] {Default Queue} wl_pointer#1801.motion(187310301, 25.39843750, 38.00000000) -[2618667.513] {Default Queue} wl_pointer#1833.motion(187310301, 25.39843750, 38.00000000) -[2618667.518] {Default Queue} wl_pointer#1865.motion(187310301, 25.39843750, 38.00000000) -[2618667.522] {Default Queue} wl_pointer#1897.motion(187310301, 25.39843750, 38.00000000) -[2618667.526] {Default Queue} wl_pointer#1929.motion(187310301, 25.39843750, 38.00000000) -[2618667.531] {Default Queue} wl_pointer#1961.motion(187310301, 25.39843750, 38.00000000) -[2618667.535] {Default Queue} wl_pointer#1993.motion(187310301, 25.39843750, 38.00000000) -[2618667.539] {Default Queue} wl_pointer#2025.motion(187310301, 25.39843750, 38.00000000) -[2618667.544] {Default Queue} wl_pointer#2057.motion(187310301, 25.39843750, 38.00000000) -[2618667.548] {Default Queue} wl_pointer#2089.motion(187310301, 25.39843750, 38.00000000) -[2618667.552] {Default Queue} wl_pointer#2121.motion(187310301, 25.39843750, 38.00000000) -[2618667.556] {Default Queue} wl_pointer#2153.motion(187310301, 25.39843750, 38.00000000) -[2618667.561] {Default Queue} wl_pointer#2185.motion(187310301, 25.39843750, 38.00000000) -[2618667.565] {Default Queue} wl_pointer#2217.motion(187310301, 25.39843750, 38.00000000) -[2618667.569] {Default Queue} wl_pointer#2249.motion(187310301, 25.39843750, 38.00000000) -[2618667.574] {Default Queue} wl_pointer#2281.motion(187310301, 25.39843750, 38.00000000) -[2618667.578] {Default Queue} wl_pointer#2313.motion(187310301, 25.39843750, 38.00000000) -[2618667.582] {Default Queue} wl_pointer#2345.motion(187310301, 25.39843750, 38.00000000) -[2618667.587] {Default Queue} wl_pointer#2377.motion(187310301, 25.39843750, 38.00000000) -[2618667.591] {Default Queue} wl_pointer#2409.motion(187310301, 25.39843750, 38.00000000) -[2618667.595] {Default Queue} wl_pointer#2441.motion(187310301, 25.39843750, 38.00000000) -[2618667.600] {Default Queue} wl_pointer#2473.motion(187310301, 25.39843750, 38.00000000) -[2618667.604] {Default Queue} wl_pointer#2498.motion(187310301, 25.39843750, 38.00000000) -[2618667.615] {Default Queue} -> wl_buffer#3683.destroy() -[2618667.620] {Default Queue} -> wl_buffer#94.destroy() -[2618667.624] {Default Queue} -> wl_shm_pool#93.destroy() -[2618667.630] {Default Queue} -> wl_shm_pool#92.destroy() -[2618667.638] {Default Queue} -> wl_surface#91.destroy() -[2618667.683] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3674, fd 581, 640) -[2618667.690] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3676, fd 582, 640) -[2618667.695] {Default Queue} -> wl_shm_pool#3674.create_buffer(new id wl_buffer#3675, 0, 10, 16, 40, 0) -[2618667.699] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 10, 16, 40, 0) -[2618667.706] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3677) -[2618667.711] {Default Queue} -> wl_surface#3677.attach(wl_buffer#3675, 0, 0) -[2618667.715] {Default Queue} -> wl_surface#3677.commit() -[2618667.720] {Default Queue} -> wl_surface#3677.attach(wl_buffer#3675, 0, 0) -[2618667.725] {Default Queue} -> wl_surface#3677.commit() -[2618667.729] {Default Queue} wl_pointer#2537.motion(187310301, 25.39843750, 38.00000000) -[2618667.734] {Default Queue} wl_pointer#2569.motion(187310301, 25.39843750, 38.00000000) -[2618667.738] {Default Queue} wl_pointer#2601.motion(187310301, 25.39843750, 38.00000000) -[2618667.742] {Default Queue} wl_pointer#2633.motion(187310301, 25.39843750, 38.00000000) -[2618667.747] {Default Queue} wl_pointer#2665.motion(187310301, 25.39843750, 38.00000000) -[2618667.751] {Default Queue} wl_pointer#2697.motion(187310301, 25.39843750, 38.00000000) -[2618667.755] {Default Queue} wl_pointer#2729.motion(187310301, 25.39843750, 38.00000000) -[2618667.760] {Default Queue} wl_pointer#2761.motion(187310301, 25.39843750, 38.00000000) -[2618667.764] {Default Queue} wl_pointer#2793.motion(187310301, 25.39843750, 38.00000000) -[2618667.768] {Default Queue} wl_pointer#2825.motion(187310301, 25.39843750, 38.00000000) -[2618667.773] {Default Queue} wl_pointer#2857.motion(187310301, 25.39843750, 38.00000000) -[2618667.780] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) -[2618667.784] {Default Queue} -> wl_surface#1831.commit() -[2618667.790] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) -[2618667.795] {Default Queue} -> wl_surface#1895.commit() -[2618668.860] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) -[2618668.873] {Default Queue} -> wl_surface#1895.commit() -[2618668.885] {Default Queue} -> wl_region#1919.subtract(0, 0, 19, 48) -[2618668.889] {Default Queue} -> wl_region#1919.add(-20, -49, 19, 48) -[2618668.893] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) -[2618668.898] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) -[2618668.905] {Default Queue} -> wl_region#1919.subtract(0, 0, 19, 48) -[2618668.911] {Default Queue} -> wl_region#1919.add(-20, -49, 19, 48) -[2618668.915] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) -[2618668.919] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) -[2618668.930] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618668.936] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618668.941] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) -[2618668.945] {Default Queue} -> wl_surface#1895.commit() -[2618668.949] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) -[2618668.953] {Default Queue} -> wl_surface#1895.commit() -[2618668.959] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) -[2618668.963] {Default Queue} -> wl_surface#1895.commit() -[2618668.969] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) -[2618668.973] {Default Queue} -> wl_surface#1863.commit() -[2618670.035] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) -[2618670.040] {Default Queue} -> wl_surface#1863.commit() -[2618670.047] {Default Queue} -> wl_region#1887.subtract(0, 0, 19, 48) -[2618670.052] {Default Queue} -> wl_region#1887.add(-20, -49, 19, 48) -[2618670.057] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) -[2618670.061] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) -[2618670.070] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) -[2618670.077] {Default Queue} -> wl_surface#1863.commit() -[2618670.081] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) -[2618670.085] {Default Queue} -> wl_surface#1863.commit() -[2618670.091] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) -[2618670.095] {Default Queue} -> wl_surface#1863.commit() -[2618670.101] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) -[2618670.105] {Default Queue} -> wl_surface#1799.commit() -[2618671.166] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) -[2618671.172] {Default Queue} -> wl_surface#1799.commit() -[2618671.178] {Default Queue} -> wl_region#1823.subtract(0, 0, 22, 51) -[2618671.182] {Default Queue} -> wl_region#1823.add(-20, -49, 19, 48) -[2618671.186] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) -[2618671.190] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) -[2618671.195] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) -[2618671.199] {Default Queue} -> wl_surface#1799.commit() -[2618671.203] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) -[2618671.207] {Default Queue} -> wl_surface#1799.commit() -[2618671.228] {Display Queue} wl_display#1.delete_id(3671) -[2618671.233] {Display Queue} wl_display#1.delete_id(3681) -[2618671.237] {Display Queue} wl_display#1.delete_id(3684) -[2618671.241] {Display Queue} wl_display#1.delete_id(3679) -[2618671.245] {Display Queue} wl_display#1.delete_id(3682) -[2618671.249] {Display Queue} wl_display#1.delete_id(3294) -[2618671.253] {Display Queue} wl_display#1.delete_id(3293) -[2618671.257] {Display Queue} wl_display#1.delete_id(3292) -[2618671.261] {Display Queue} wl_display#1.delete_id(3291) -[2618671.265] {Display Queue} wl_display#1.delete_id(3484) -[2618671.269] {Default Queue} wl_pointer#2889.motion(187310301, 25.39843750, 38.00000000) -[2618671.273] {Default Queue} wl_pointer#2921.motion(187310301, 25.39843750, 38.00000000) -[2618671.278] {Default Queue} wl_pointer#2953.motion(187310301, 25.39843750, 38.00000000) -[2618671.282] {Default Queue} wl_pointer#2985.motion(187310301, 25.39843750, 38.00000000) -[2618671.286] {Default Queue} wl_pointer#3017.motion(187310301, 25.39843750, 38.00000000) -[2618671.291] {Default Queue} wl_pointer#3049.motion(187310301, 25.39843750, 38.00000000) -[2618671.295] {Default Queue} wl_pointer#3081.motion(187310301, 25.39843750, 38.00000000) -[2618671.299] {Default Queue} wl_pointer#3113.motion(187310301, 25.39843750, 38.00000000) -[2618671.304] {Default Queue} wl_pointer#3145.motion(187310301, 25.39843750, 38.00000000) -[2618671.308] {Default Queue} wl_pointer#3177.motion(187310301, 25.39843750, 38.00000000) -[2618671.312] {Default Queue} wl_pointer#3209.motion(187310301, 25.39843750, 38.00000000) -[2618671.317] {Default Queue} wl_pointer#3241.motion(187310301, 25.39843750, 38.00000000) -[2618671.321] {Default Queue} wl_pointer#3273.motion(187310301, 25.39843750, 38.00000000) -[2618671.325] {Default Queue} wl_pointer#3305.motion(187310301, 25.39843750, 38.00000000) -[2618671.330] {Default Queue} wl_pointer#3337.motion(187310301, 25.39843750, 38.00000000) -[2618671.334] {Default Queue} wl_pointer#3369.motion(187310301, 25.39843750, 38.00000000) -[2618671.338] {Default Queue} wl_pointer#3401.motion(187310301, 25.39843750, 38.00000000) -[2618671.342] {Default Queue} wl_pointer#3433.motion(187310301, 25.39843750, 38.00000000) -[2618671.347] {Default Queue} wl_pointer#3465.motion(187310301, 25.39843750, 38.00000000) -[2618671.351] {Default Queue} wl_pointer#3497.motion(187310301, 25.39843750, 38.00000000) -[2618671.355] {Default Queue} wl_pointer#3529.motion(187310301, 25.39843750, 38.00000000) -[2618671.360] {Default Queue} wl_pointer#3561.motion(187310301, 25.39843750, 38.00000000) -[2618671.364] {Default Queue} wl_pointer#3593.motion(187310301, 25.39843750, 38.00000000) -[2618671.368] {Default Queue} wl_pointer#3625.motion(187310301, 25.39843750, 38.00000000) -[2618671.373] {Default Queue} wl_pointer#3657.motion(187310301, 25.39843750, 38.00000000) -[2618671.380] {Default Queue} wl_pointer#3695.motion(187310301, 25.39843750, 38.00000000) -[2618671.386] {Default Queue} wl_pointer#24.motion(187310301, 25.39843750, 36.00000000) -[2618671.390] {Default Queue} wl_pointer#81.motion(187310301, 25.39843750, 36.00000000) -[2618671.395] {Default Queue} wl_pointer#105.motion(187310301, 25.39843750, 36.00000000) -[2618671.400] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618671.404] {Default Queue} wl_pointer#137.motion(187310301, 25.39843750, 36.00000000) -[2618671.409] {Default Queue} wl_pointer#169.motion(187310301, 25.39843750, 36.00000000) -[2618671.413] {Default Queue} wl_pointer#201.motion(187310301, 25.39843750, 36.00000000) -[2618671.417] {Default Queue} wl_pointer#233.motion(187310301, 25.39843750, 36.00000000) -[2618671.422] {Default Queue} wl_pointer#265.motion(187310301, 25.39843750, 36.00000000) -[2618671.426] {Default Queue} wl_pointer#297.motion(187310301, 25.39843750, 36.00000000) -[2618671.430] {Default Queue} wl_pointer#329.motion(187310301, 25.39843750, 36.00000000) -[2618671.434] {Default Queue} wl_pointer#361.motion(187310301, 25.39843750, 36.00000000) -[2618671.439] {Default Queue} wl_pointer#393.motion(187310301, 25.39843750, 36.00000000) -[2618671.443] {Default Queue} wl_pointer#425.motion(187310301, 25.39843750, 36.00000000) -[2618671.447] {Default Queue} wl_pointer#457.motion(187310301, 25.39843750, 36.00000000) -[2618671.451] {Default Queue} wl_pointer#489.motion(187310301, 25.39843750, 36.00000000) -[2618671.456] {Default Queue} wl_pointer#521.motion(187310301, 25.39843750, 36.00000000) -[2618671.460] {Default Queue} wl_pointer#553.motion(187310301, 25.39843750, 36.00000000) -[2618671.464] {Default Queue} wl_pointer#585.motion(187310301, 25.39843750, 36.00000000) -[2618671.468] {Default Queue} wl_pointer#617.motion(187310301, 25.39843750, 36.00000000) -[2618671.473] {Default Queue} wl_pointer#649.motion(187310301, 25.39843750, 36.00000000) -[2618671.477] {Default Queue} wl_pointer#681.motion(187310301, 25.39843750, 36.00000000) -[2618671.481] {Default Queue} wl_pointer#713.motion(187310301, 25.39843750, 36.00000000) -[2618671.485] {Default Queue} wl_pointer#745.motion(187310301, 25.39843750, 36.00000000) -[2618671.490] {Default Queue} wl_pointer#777.motion(187310301, 25.39843750, 36.00000000) -[2618671.494] {Default Queue} wl_pointer#809.motion(187310301, 25.39843750, 36.00000000) -[2618671.498] {Default Queue} wl_pointer#841.motion(187310301, 25.39843750, 36.00000000) -[2618671.503] {Default Queue} wl_pointer#873.motion(187310301, 25.39843750, 36.00000000) -[2618671.507] {Default Queue} wl_pointer#905.motion(187310301, 25.39843750, 36.00000000) -[2618671.511] {Default Queue} wl_pointer#937.motion(187310301, 25.39843750, 36.00000000) -[2618671.515] {Default Queue} wl_pointer#969.motion(187310301, 25.39843750, 36.00000000) -[2618671.520] {Default Queue} wl_pointer#1001.motion(187310301, 25.39843750, 36.00000000) -[2618671.524] {Default Queue} wl_pointer#1033.motion(187310301, 25.39843750, 36.00000000) -[2618671.528] {Default Queue} wl_pointer#1065.motion(187310301, 25.39843750, 36.00000000) -[2618671.533] {Default Queue} wl_pointer#1097.motion(187310301, 25.39843750, 36.00000000) -[2618671.537] {Default Queue} wl_pointer#1129.motion(187310301, 25.39843750, 36.00000000) -[2618671.541] {Default Queue} wl_pointer#1161.motion(187310301, 25.39843750, 36.00000000) -[2618671.546] {Default Queue} wl_pointer#1193.motion(187310301, 25.39843750, 36.00000000) -[2618671.550] {Default Queue} wl_pointer#1225.motion(187310301, 25.39843750, 36.00000000) -[2618671.554] {Default Queue} wl_pointer#1257.motion(187310301, 25.39843750, 36.00000000) -[2618671.558] {Default Queue} wl_pointer#1289.motion(187310301, 25.39843750, 36.00000000) -[2618671.563] {Default Queue} wl_pointer#1321.motion(187310301, 25.39843750, 36.00000000) -[2618671.567] {Default Queue} wl_pointer#1353.motion(187310301, 25.39843750, 36.00000000) -[2618671.571] {Default Queue} wl_pointer#1385.motion(187310301, 25.39843750, 36.00000000) -[2618671.576] {Default Queue} wl_pointer#1417.motion(187310301, 25.39843750, 36.00000000) -[2618671.583] {Default Queue} wl_pointer#1449.motion(187310301, 25.39843750, 36.00000000) -[2618671.589] {Default Queue} wl_pointer#1481.motion(187310301, 25.39843750, 36.00000000) -[2618671.593] {Default Queue} wl_pointer#1513.motion(187310301, 25.39843750, 36.00000000) -[2618671.597] {Default Queue} wl_pointer#1545.motion(187310301, 25.39843750, 36.00000000) -[2618671.601] {Default Queue} wl_pointer#1577.motion(187310301, 25.39843750, 36.00000000) -[2618671.606] {Default Queue} wl_pointer#1609.motion(187310301, 25.39843750, 36.00000000) -[2618671.610] {Default Queue} wl_pointer#1641.motion(187310301, 25.39843750, 36.00000000) -[2618671.614] {Default Queue} wl_pointer#1673.motion(187310301, 25.39843750, 36.00000000) -[2618671.619] {Default Queue} wl_pointer#1705.motion(187310301, 25.39843750, 36.00000000) -[2618671.623] {Default Queue} wl_pointer#1737.motion(187310301, 25.39843750, 36.00000000) -[2618671.627] {Default Queue} wl_pointer#1762.motion(187310301, 25.39843750, 36.00000000) -[2618671.632] {Default Queue} wl_pointer#1801.motion(187310301, 25.39843750, 36.00000000) -[2618671.636] {Default Queue} wl_pointer#1833.motion(187310301, 25.39843750, 36.00000000) -[2618671.640] {Default Queue} wl_pointer#1865.motion(187310301, 25.39843750, 36.00000000) -[2618671.644] {Default Queue} wl_pointer#1897.motion(187310301, 25.39843750, 36.00000000) -[2618671.649] {Default Queue} wl_pointer#1929.motion(187310301, 25.39843750, 36.00000000) -[2618671.653] {Default Queue} wl_pointer#1961.motion(187310301, 25.39843750, 36.00000000) -[2618671.657] {Default Queue} wl_pointer#1993.motion(187310301, 25.39843750, 36.00000000) -[2618671.661] {Default Queue} wl_pointer#2025.motion(187310301, 25.39843750, 36.00000000) -[2618671.666] {Default Queue} wl_pointer#2057.motion(187310301, 25.39843750, 36.00000000) -[2618671.670] {Default Queue} wl_pointer#2089.motion(187310301, 25.39843750, 36.00000000) -[2618671.674] {Default Queue} wl_pointer#2121.motion(187310301, 25.39843750, 36.00000000) -[2618671.678] {Default Queue} wl_pointer#2153.motion(187310301, 25.39843750, 36.00000000) -[2618671.683] {Default Queue} wl_pointer#2185.motion(187310301, 25.39843750, 36.00000000) -[2618671.687] {Default Queue} wl_pointer#2217.motion(187310301, 25.39843750, 36.00000000) -[2618671.691] {Default Queue} wl_pointer#2249.motion(187310301, 25.39843750, 36.00000000) -[2618671.696] {Default Queue} wl_pointer#2281.motion(187310301, 25.39843750, 36.00000000) -[2618671.700] {Default Queue} wl_pointer#2313.motion(187310301, 25.39843750, 36.00000000) -[2618671.704] {Default Queue} wl_pointer#2345.motion(187310301, 25.39843750, 36.00000000) -[2618671.709] {Default Queue} wl_pointer#2377.motion(187310301, 25.39843750, 36.00000000) -[2618671.713] {Default Queue} wl_pointer#2409.motion(187310301, 25.39843750, 36.00000000) -[2618671.718] {Default Queue} wl_pointer#2441.motion(187310301, 25.39843750, 36.00000000) -[2618671.722] {Default Queue} wl_pointer#2473.motion(187310301, 25.39843750, 36.00000000) -[2618671.726] {Default Queue} wl_pointer#2498.motion(187310301, 25.39843750, 36.00000000) -[2618671.738] {Default Queue} -> wl_buffer#3675.destroy() -[2618671.744] {Default Queue} -> wl_buffer#3678.destroy() -[2618671.748] {Default Queue} -> wl_shm_pool#3674.destroy() -[2618671.752] {Default Queue} -> wl_shm_pool#3676.destroy() -[2618671.757] {Default Queue} -> wl_surface#3677.destroy() -[2618671.796] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3484, fd 575, 640) -[2618671.802] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 578, 640) -[2618671.807] {Default Queue} -> wl_shm_pool#3484.create_buffer(new id wl_buffer#3292, 0, 10, 16, 40, 0) -[2618671.811] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) -[2618671.819] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3294) -[2618671.823] {Default Queue} -> wl_surface#3294.attach(wl_buffer#3292, 0, 0) -[2618671.827] {Default Queue} -> wl_surface#3294.commit() -[2618671.832] {Default Queue} -> wl_surface#3294.attach(wl_buffer#3292, 0, 0) -[2618671.840] {Default Queue} -> wl_surface#3294.commit() -[2618671.846] {Default Queue} wl_pointer#2537.motion(187310301, 25.39843750, 36.00000000) -[2618671.850] {Default Queue} wl_pointer#2569.motion(187310301, 25.39843750, 36.00000000) -[2618671.855] {Default Queue} wl_pointer#2601.motion(187310301, 25.39843750, 36.00000000) -[2618671.859] {Default Queue} wl_pointer#2633.motion(187310301, 25.39843750, 36.00000000) -[2618671.864] {Default Queue} wl_pointer#2665.motion(187310301, 25.39843750, 36.00000000) -[2618671.869] {Default Queue} wl_pointer#2697.motion(187310301, 25.39843750, 36.00000000) -[2618671.879] {Default Queue} wl_pointer#2729.motion(187310301, 25.39843750, 36.00000000) -[2618671.883] {Default Queue} wl_pointer#2761.motion(187310301, 25.39843750, 36.00000000) -[2618671.888] {Default Queue} wl_pointer#2793.motion(187310301, 25.39843750, 36.00000000) -[2618671.892] {Default Queue} wl_pointer#2825.motion(187310301, 25.39843750, 36.00000000) -[2618671.897] {Default Queue} wl_pointer#2857.motion(187310301, 25.39843750, 36.00000000) -[2618671.901] {Default Queue} wl_pointer#2889.motion(187310301, 25.39843750, 36.00000000) -[2618671.905] {Default Queue} wl_pointer#2921.motion(187310301, 25.39843750, 36.00000000) -[2618671.910] {Default Queue} wl_pointer#2953.motion(187310301, 25.39843750, 36.00000000) -[2618671.914] {Default Queue} wl_pointer#2985.motion(187310301, 25.39843750, 36.00000000) -[2618671.918] {Default Queue} wl_pointer#3017.motion(187310301, 25.39843750, 36.00000000) -[2618671.923] {Default Queue} wl_pointer#3049.motion(187310301, 25.39843750, 36.00000000) -[2618671.927] {Default Queue} wl_pointer#3081.motion(187310301, 25.39843750, 36.00000000) -[2618671.931] {Default Queue} wl_pointer#3113.motion(187310301, 25.39843750, 36.00000000) -[2618671.935] {Default Queue} wl_pointer#3145.motion(187310301, 25.39843750, 36.00000000) -[2618671.940] {Default Queue} wl_pointer#3177.motion(187310301, 25.39843750, 36.00000000) -[2618671.944] {Default Queue} wl_pointer#3209.motion(187310301, 25.39843750, 36.00000000) -[2618671.948] {Default Queue} wl_pointer#3241.motion(187310301, 25.39843750, 36.00000000) -[2618671.953] {Default Queue} wl_pointer#3273.motion(187310301, 25.39843750, 36.00000000) -[2618671.957] {Default Queue} wl_pointer#3305.motion(187310301, 25.39843750, 36.00000000) -[2618671.961] {Default Queue} wl_pointer#3337.motion(187310301, 25.39843750, 36.00000000) -[2618671.966] {Default Queue} wl_pointer#3369.motion(187310301, 25.39843750, 36.00000000) -[2618671.970] {Default Queue} wl_pointer#3401.motion(187310301, 25.39843750, 36.00000000) -[2618671.974] {Default Queue} wl_pointer#3433.motion(187310301, 25.39843750, 36.00000000) -[2618671.979] {Default Queue} wl_pointer#3465.motion(187310301, 25.39843750, 36.00000000) -[2618671.983] {Default Queue} wl_pointer#3497.motion(187310301, 25.39843750, 36.00000000) -[2618671.987] {Default Queue} wl_pointer#3529.motion(187310301, 25.39843750, 36.00000000) -[2618671.992] {Default Queue} wl_pointer#3561.motion(187310301, 25.39843750, 36.00000000) -[2618671.996] {Default Queue} wl_pointer#3593.motion(187310301, 25.39843750, 36.00000000) -[2618672.000] {Default Queue} wl_pointer#3625.motion(187310301, 25.39843750, 36.00000000) -[2618672.005] {Default Queue} wl_pointer#3657.motion(187310301, 25.39843750, 36.00000000) -[2618672.009] {Default Queue} wl_pointer#3695.motion(187310301, 25.39843750, 36.00000000) -[2618672.013] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) -[2618672.017] {Default Queue} -> wl_surface#1799.commit() -[2618672.050] {Default Queue} wl_pointer#24.motion(187310306, 25.39843750, 34.39843750) -[2618672.057] {Default Queue} wl_pointer#81.motion(187310306, 25.39843750, 34.39843750) -[2618672.064] {Default Queue} wl_pointer#105.motion(187310306, 25.39843750, 34.39843750) -[2618672.070] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618672.076] {Default Queue} wl_pointer#137.motion(187310306, 25.39843750, 34.39843750) -[2618672.082] {Default Queue} wl_pointer#169.motion(187310306, 25.39843750, 34.39843750) -[2618672.088] {Default Queue} wl_pointer#201.motion(187310306, 25.39843750, 34.39843750) -[2618672.096] {Default Queue} wl_pointer#233.motion(187310306, 25.39843750, 34.39843750) -[2618672.103] {Default Queue} wl_pointer#265.motion(187310306, 25.39843750, 34.39843750) -[2618672.107] {Default Queue} wl_pointer#297.motion(187310306, 25.39843750, 34.39843750) -[2618672.111] {Default Queue} wl_pointer#329.motion(187310306, 25.39843750, 34.39843750) -[2618672.116] {Default Queue} wl_pointer#361.motion(187310306, 25.39843750, 34.39843750) -[2618672.120] {Default Queue} wl_pointer#393.motion(187310306, 25.39843750, 34.39843750) -[2618672.124] {Default Queue} wl_pointer#425.motion(187310306, 25.39843750, 34.39843750) -[2618672.129] {Default Queue} wl_pointer#457.motion(187310306, 25.39843750, 34.39843750) -[2618672.133] {Default Queue} wl_pointer#489.motion(187310306, 25.39843750, 34.39843750) -[2618672.137] {Default Queue} wl_pointer#521.motion(187310306, 25.39843750, 34.39843750) -[2618672.141] {Default Queue} wl_pointer#553.motion(187310306, 25.39843750, 34.39843750) -[2618672.146] {Default Queue} wl_pointer#585.motion(187310306, 25.39843750, 34.39843750) -[2618672.150] {Default Queue} wl_pointer#617.motion(187310306, 25.39843750, 34.39843750) -[2618672.154] {Default Queue} wl_pointer#649.motion(187310306, 25.39843750, 34.39843750) -[2618672.158] {Default Queue} wl_pointer#681.motion(187310306, 25.39843750, 34.39843750) -[2618672.163] {Default Queue} wl_pointer#713.motion(187310306, 25.39843750, 34.39843750) -[2618672.167] {Default Queue} wl_pointer#745.motion(187310306, 25.39843750, 34.39843750) -[2618672.171] {Default Queue} wl_pointer#777.motion(187310306, 25.39843750, 34.39843750) -[2618672.175] {Default Queue} wl_pointer#809.motion(187310306, 25.39843750, 34.39843750) -[2618672.180] {Default Queue} wl_pointer#841.motion(187310306, 25.39843750, 34.39843750) -[2618672.184] {Default Queue} wl_pointer#873.motion(187310306, 25.39843750, 34.39843750) -[2618672.188] {Default Queue} wl_pointer#905.motion(187310306, 25.39843750, 34.39843750) -[2618672.192] {Default Queue} wl_pointer#937.motion(187310306, 25.39843750, 34.39843750) -[2618672.196] {Default Queue} wl_pointer#969.motion(187310306, 25.39843750, 34.39843750) -[2618672.201] {Default Queue} wl_pointer#1001.motion(187310306, 25.39843750, 34.39843750) -[2618672.205] {Default Queue} wl_pointer#1033.motion(187310306, 25.39843750, 34.39843750) -[2618672.209] {Default Queue} wl_pointer#1065.motion(187310306, 25.39843750, 34.39843750) -[2618672.214] {Default Queue} wl_pointer#1097.motion(187310306, 25.39843750, 34.39843750) -[2618672.218] {Default Queue} wl_pointer#1129.motion(187310306, 25.39843750, 34.39843750) -[2618672.222] {Default Queue} wl_pointer#1161.motion(187310306, 25.39843750, 34.39843750) -[2618672.226] {Default Queue} wl_pointer#1193.motion(187310306, 25.39843750, 34.39843750) -[2618672.231] {Default Queue} wl_pointer#1225.motion(187310306, 25.39843750, 34.39843750) -[2618672.235] {Default Queue} wl_pointer#1257.motion(187310306, 25.39843750, 34.39843750) -[2618672.239] {Default Queue} wl_pointer#1289.motion(187310306, 25.39843750, 34.39843750) -[2618672.243] {Default Queue} wl_pointer#1321.motion(187310306, 25.39843750, 34.39843750) -[2618672.248] {Default Queue} wl_pointer#1353.motion(187310306, 25.39843750, 34.39843750) -[2618672.252] {Default Queue} wl_pointer#1385.motion(187310306, 25.39843750, 34.39843750) -[2618672.256] {Default Queue} wl_pointer#1417.motion(187310306, 25.39843750, 34.39843750) -[2618672.261] {Default Queue} wl_pointer#1449.motion(187310306, 25.39843750, 34.39843750) -[2618672.265] {Default Queue} wl_pointer#1481.motion(187310306, 25.39843750, 34.39843750) -[2618672.269] {Default Queue} wl_pointer#1513.motion(187310306, 25.39843750, 34.39843750) -[2618672.273] {Default Queue} wl_pointer#1545.motion(187310306, 25.39843750, 34.39843750) -[2618672.278] {Default Queue} wl_pointer#1577.motion(187310306, 25.39843750, 34.39843750) -[2618672.282] {Default Queue} wl_pointer#1609.motion(187310306, 25.39843750, 34.39843750) -[2618672.286] {Default Queue} wl_pointer#1641.motion(187310306, 25.39843750, 34.39843750) -[2618672.290] {Default Queue} wl_pointer#1673.motion(187310306, 25.39843750, 34.39843750) -[2618672.298] {Default Queue} wl_pointer#1705.motion(187310306, 25.39843750, 34.39843750) -[2618672.304] {Default Queue} wl_pointer#1737.motion(187310306, 25.39843750, 34.39843750) -[2618672.308] {Default Queue} wl_pointer#1762.motion(187310306, 25.39843750, 34.39843750) -[2618672.313] {Default Queue} wl_pointer#1801.motion(187310306, 25.39843750, 34.39843750) -[2618672.317] {Default Queue} wl_pointer#1833.motion(187310306, 25.39843750, 34.39843750) -[2618672.321] {Default Queue} wl_pointer#1865.motion(187310306, 25.39843750, 34.39843750) -[2618672.326] {Default Queue} wl_pointer#1897.motion(187310306, 25.39843750, 34.39843750) -[2618672.330] {Default Queue} wl_pointer#1929.motion(187310306, 25.39843750, 34.39843750) -[2618672.334] {Default Queue} wl_pointer#1961.motion(187310306, 25.39843750, 34.39843750) -[2618672.338] {Default Queue} wl_pointer#1993.motion(187310306, 25.39843750, 34.39843750) -[2618672.343] {Default Queue} wl_pointer#2025.motion(187310306, 25.39843750, 34.39843750) -[2618672.347] {Default Queue} wl_pointer#2057.motion(187310306, 25.39843750, 34.39843750) -[2618672.351] {Default Queue} wl_pointer#2089.motion(187310306, 25.39843750, 34.39843750) -[2618672.355] {Default Queue} wl_pointer#2121.motion(187310306, 25.39843750, 34.39843750) -[2618672.360] {Default Queue} wl_pointer#2153.motion(187310306, 25.39843750, 34.39843750) -[2618672.364] {Default Queue} wl_pointer#2185.motion(187310306, 25.39843750, 34.39843750) -[2618672.368] {Default Queue} wl_pointer#2217.motion(187310306, 25.39843750, 34.39843750) -[2618672.372] {Default Queue} wl_pointer#2249.motion(187310306, 25.39843750, 34.39843750) -[2618672.377] {Default Queue} wl_pointer#2281.motion(187310306, 25.39843750, 34.39843750) -[2618672.381] {Default Queue} wl_pointer#2313.motion(187310306, 25.39843750, 34.39843750) -[2618672.385] {Default Queue} wl_pointer#2345.motion(187310306, 25.39843750, 34.39843750) -[2618672.390] {Default Queue} wl_pointer#2377.motion(187310306, 25.39843750, 34.39843750) -[2618672.394] {Default Queue} wl_pointer#2409.motion(187310306, 25.39843750, 34.39843750) -[2618672.398] {Default Queue} wl_pointer#2441.motion(187310306, 25.39843750, 34.39843750) -[2618672.403] {Default Queue} wl_pointer#2473.motion(187310306, 25.39843750, 34.39843750) -[2618672.407] {Default Queue} wl_pointer#2498.motion(187310306, 25.39843750, 34.39843750) -[2618672.418] {Default Queue} -> wl_buffer#3292.destroy() -[2618672.425] {Default Queue} -> wl_buffer#3293.destroy() -[2618672.429] {Default Queue} -> wl_shm_pool#3484.destroy() -[2618672.433] {Default Queue} -> wl_shm_pool#3291.destroy() -[2618672.438] {Default Queue} -> wl_surface#3294.destroy() -[2618672.474] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3682, fd 575, 640) -[2618672.480] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 578, 640) -[2618672.485] {Default Queue} -> wl_shm_pool#3682.create_buffer(new id wl_buffer#3684, 0, 10, 16, 40, 0) -[2618672.489] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) -[2618672.496] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3671) -[2618672.500] {Default Queue} -> wl_surface#3671.attach(wl_buffer#3684, 0, 0) -[2618672.505] {Default Queue} -> wl_surface#3671.commit() -[2618672.510] {Default Queue} -> wl_surface#3671.attach(wl_buffer#3684, 0, 0) -[2618672.514] {Default Queue} -> wl_surface#3671.commit() -[2618672.518] {Default Queue} wl_pointer#2537.motion(187310306, 25.39843750, 34.39843750) -[2618672.523] {Default Queue} wl_pointer#2569.motion(187310306, 25.39843750, 34.39843750) -[2618672.527] {Default Queue} wl_pointer#2601.motion(187310306, 25.39843750, 34.39843750) -[2618672.531] {Default Queue} wl_pointer#2633.motion(187310306, 25.39843750, 34.39843750) -[2618672.535] {Default Queue} wl_pointer#2665.motion(187310306, 25.39843750, 34.39843750) -[2618672.540] {Default Queue} wl_pointer#2697.motion(187310306, 25.39843750, 34.39843750) -[2618672.544] {Default Queue} wl_pointer#2729.motion(187310306, 25.39843750, 34.39843750) -[2618672.551] {Default Queue} wl_pointer#2761.motion(187310306, 25.39843750, 34.39843750) -[2618672.557] {Default Queue} wl_pointer#2793.motion(187310306, 25.39843750, 34.39843750) -[2618672.561] {Default Queue} wl_pointer#2825.motion(187310306, 25.39843750, 34.39843750) -[2618672.566] {Default Queue} wl_pointer#2857.motion(187310306, 25.39843750, 34.39843750) -[2618672.570] {Default Queue} wl_pointer#2889.motion(187310306, 25.39843750, 34.39843750) -[2618672.574] {Default Queue} wl_pointer#2921.motion(187310306, 25.39843750, 34.39843750) -[2618672.579] {Default Queue} wl_pointer#2953.motion(187310306, 25.39843750, 34.39843750) -[2618672.583] {Default Queue} wl_pointer#2985.motion(187310306, 25.39843750, 34.39843750) -[2618672.587] {Default Queue} wl_pointer#3017.motion(187310306, 25.39843750, 34.39843750) -[2618672.592] {Default Queue} wl_pointer#3049.motion(187310306, 25.39843750, 34.39843750) -[2618672.596] {Default Queue} wl_pointer#3081.motion(187310306, 25.39843750, 34.39843750) -[2618672.600] {Default Queue} wl_pointer#3113.motion(187310306, 25.39843750, 34.39843750) -[2618672.604] {Default Queue} wl_pointer#3145.motion(187310306, 25.39843750, 34.39843750) -[2618672.608] {Default Queue} wl_pointer#3177.motion(187310306, 25.39843750, 34.39843750) -[2618672.613] {Default Queue} wl_pointer#3209.motion(187310306, 25.39843750, 34.39843750) -[2618672.617] {Default Queue} wl_pointer#3241.motion(187310306, 25.39843750, 34.39843750) -[2618672.621] {Default Queue} wl_pointer#3273.motion(187310306, 25.39843750, 34.39843750) -[2618672.626] {Default Queue} wl_pointer#3305.motion(187310306, 25.39843750, 34.39843750) -[2618672.630] {Default Queue} wl_pointer#3337.motion(187310306, 25.39843750, 34.39843750) -[2618672.635] {Default Queue} wl_pointer#3369.motion(187310306, 25.39843750, 34.39843750) -[2618672.641] {Default Queue} wl_pointer#3401.motion(187310306, 25.39843750, 34.39843750) -[2618672.647] {Default Queue} wl_pointer#3433.motion(187310306, 25.39843750, 34.39843750) -[2618672.653] {Default Queue} wl_pointer#3465.motion(187310306, 25.39843750, 34.39843750) -[2618672.658] {Default Queue} wl_pointer#3497.motion(187310306, 25.39843750, 34.39843750) -[2618672.664] {Default Queue} wl_pointer#3529.motion(187310306, 25.39843750, 34.39843750) -[2618672.670] {Default Queue} wl_pointer#3561.motion(187310306, 25.39843750, 34.39843750) -[2618672.675] {Default Queue} wl_pointer#3593.motion(187310306, 25.39843750, 34.39843750) -[2618672.680] {Default Queue} wl_pointer#3625.motion(187310306, 25.39843750, 34.39843750) -[2618672.684] {Default Queue} wl_pointer#3657.motion(187310306, 25.39843750, 34.39843750) -[2618672.689] {Default Queue} wl_pointer#3695.motion(187310306, 25.39843750, 34.39843750) -[2618672.693] {Default Queue} wl_pointer#24.motion(187310306, 25.39843750, 32.80078125) -[2618672.697] {Default Queue} wl_pointer#81.motion(187310306, 25.39843750, 32.80078125) -[2618672.702] {Default Queue} wl_pointer#105.motion(187310306, 25.39843750, 32.80078125) -[2618672.707] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618672.711] {Default Queue} wl_pointer#137.motion(187310306, 25.39843750, 32.80078125) -[2618672.715] {Default Queue} wl_pointer#169.motion(187310306, 25.39843750, 32.80078125) -[2618672.720] {Default Queue} wl_pointer#201.motion(187310306, 25.39843750, 32.80078125) -[2618672.724] {Default Queue} wl_pointer#233.motion(187310306, 25.39843750, 32.80078125) -[2618672.728] {Default Queue} wl_pointer#265.motion(187310306, 25.39843750, 32.80078125) -[2618672.733] {Default Queue} wl_pointer#297.motion(187310306, 25.39843750, 32.80078125) -[2618672.737] {Default Queue} wl_pointer#329.motion(187310306, 25.39843750, 32.80078125) -[2618672.741] {Default Queue} wl_pointer#361.motion(187310306, 25.39843750, 32.80078125) -[2618672.746] {Default Queue} wl_pointer#393.motion(187310306, 25.39843750, 32.80078125) -[2618672.750] {Default Queue} wl_pointer#425.motion(187310306, 25.39843750, 32.80078125) -[2618672.754] {Default Queue} wl_pointer#457.motion(187310306, 25.39843750, 32.80078125) -[2618672.758] {Default Queue} wl_pointer#489.motion(187310306, 25.39843750, 32.80078125) -[2618672.768] {Default Queue} wl_pointer#521.motion(187310306, 25.39843750, 32.80078125) -[2618672.774] {Default Queue} wl_pointer#553.motion(187310306, 25.39843750, 32.80078125) -[2618672.778] {Default Queue} wl_pointer#585.motion(187310306, 25.39843750, 32.80078125) -[2618672.782] {Default Queue} wl_pointer#617.motion(187310306, 25.39843750, 32.80078125) -[2618672.787] {Default Queue} wl_pointer#649.motion(187310306, 25.39843750, 32.80078125) -[2618672.791] {Default Queue} wl_pointer#681.motion(187310306, 25.39843750, 32.80078125) -[2618672.795] {Default Queue} wl_pointer#713.motion(187310306, 25.39843750, 32.80078125) -[2618672.799] {Default Queue} wl_pointer#745.motion(187310306, 25.39843750, 32.80078125) -[2618672.804] {Default Queue} wl_pointer#777.motion(187310306, 25.39843750, 32.80078125) -[2618672.808] {Default Queue} wl_pointer#809.motion(187310306, 25.39843750, 32.80078125) -[2618672.812] {Default Queue} wl_pointer#841.motion(187310306, 25.39843750, 32.80078125) -[2618672.817] {Default Queue} wl_pointer#873.motion(187310306, 25.39843750, 32.80078125) -[2618672.821] {Default Queue} wl_pointer#905.motion(187310306, 25.39843750, 32.80078125) -[2618672.825] {Default Queue} wl_pointer#937.motion(187310306, 25.39843750, 32.80078125) -[2618672.829] {Default Queue} wl_pointer#969.motion(187310306, 25.39843750, 32.80078125) -[2618672.833] {Default Queue} wl_pointer#1001.motion(187310306, 25.39843750, 32.80078125) -[2618672.838] {Default Queue} wl_pointer#1033.motion(187310306, 25.39843750, 32.80078125) -[2618672.842] {Default Queue} wl_pointer#1065.motion(187310306, 25.39843750, 32.80078125) -[2618672.846] {Default Queue} wl_pointer#1097.motion(187310306, 25.39843750, 32.80078125) -[2618672.851] {Default Queue} wl_pointer#1129.motion(187310306, 25.39843750, 32.80078125) -[2618672.855] {Default Queue} wl_pointer#1161.motion(187310306, 25.39843750, 32.80078125) -[2618672.859] {Default Queue} wl_pointer#1193.motion(187310306, 25.39843750, 32.80078125) -[2618672.864] {Default Queue} wl_pointer#1225.motion(187310306, 25.39843750, 32.80078125) -[2618672.868] {Default Queue} wl_pointer#1257.motion(187310306, 25.39843750, 32.80078125) -[2618672.876] {Default Queue} wl_pointer#1289.motion(187310306, 25.39843750, 32.80078125) -[2618672.881] {Default Queue} wl_pointer#1321.motion(187310306, 25.39843750, 32.80078125) -[2618672.885] {Default Queue} wl_pointer#1353.motion(187310306, 25.39843750, 32.80078125) -[2618672.889] {Default Queue} wl_pointer#1385.motion(187310306, 25.39843750, 32.80078125) -[2618672.894] {Default Queue} wl_pointer#1417.motion(187310306, 25.39843750, 32.80078125) -[2618672.898] {Default Queue} wl_pointer#1449.motion(187310306, 25.39843750, 32.80078125) -[2618672.902] {Default Queue} wl_pointer#1481.motion(187310306, 25.39843750, 32.80078125) -[2618672.906] {Default Queue} wl_pointer#1513.motion(187310306, 25.39843750, 32.80078125) -[2618672.911] {Default Queue} wl_pointer#1545.motion(187310306, 25.39843750, 32.80078125) -[2618672.915] {Default Queue} wl_pointer#1577.motion(187310306, 25.39843750, 32.80078125) -[2618672.919] {Default Queue} wl_pointer#1609.motion(187310306, 25.39843750, 32.80078125) -[2618672.923] {Default Queue} wl_pointer#1641.motion(187310306, 25.39843750, 32.80078125) -[2618672.928] {Default Queue} wl_pointer#1673.motion(187310306, 25.39843750, 32.80078125) -[2618672.932] {Default Queue} wl_pointer#1705.motion(187310306, 25.39843750, 32.80078125) -[2618672.936] {Default Queue} wl_pointer#1737.motion(187310306, 25.39843750, 32.80078125) -[2618672.940] {Default Queue} wl_pointer#1762.motion(187310306, 25.39843750, 32.80078125) -[2618672.945] {Default Queue} wl_pointer#1801.motion(187310306, 25.39843750, 32.80078125) -[2618672.949] {Default Queue} wl_pointer#1833.motion(187310306, 25.39843750, 32.80078125) -[2618672.953] {Default Queue} wl_pointer#1865.motion(187310306, 25.39843750, 32.80078125) -[2618672.958] {Default Queue} wl_pointer#1897.motion(187310306, 25.39843750, 32.80078125) -[2618672.962] {Default Queue} wl_pointer#1929.motion(187310306, 25.39843750, 32.80078125) -[2618672.966] {Default Queue} wl_pointer#1961.motion(187310306, 25.39843750, 32.80078125) -[2618672.973] {Default Queue} wl_pointer#1993.motion(187310306, 25.39843750, 32.80078125) -[2618672.979] {Default Queue} wl_pointer#2025.motion(187310306, 25.39843750, 32.80078125) -[2618672.983] {Default Queue} wl_pointer#2057.motion(187310306, 25.39843750, 32.80078125) -[2618672.987] {Default Queue} wl_pointer#2089.motion(187310306, 25.39843750, 32.80078125) -[2618672.992] {Default Queue} wl_pointer#2121.motion(187310306, 25.39843750, 32.80078125) -[2618672.996] {Default Queue} wl_pointer#2153.motion(187310306, 25.39843750, 32.80078125) -[2618673.000] {Default Queue} wl_pointer#2185.motion(187310306, 25.39843750, 32.80078125) -[2618673.004] {Default Queue} wl_pointer#2217.motion(187310306, 25.39843750, 32.80078125) -[2618673.009] {Default Queue} wl_pointer#2249.motion(187310306, 25.39843750, 32.80078125) -[2618673.013] {Default Queue} wl_pointer#2281.motion(187310306, 25.39843750, 32.80078125) -[2618673.018] {Default Queue} wl_pointer#2313.motion(187310306, 25.39843750, 32.80078125) -[2618673.022] {Default Queue} wl_pointer#2345.motion(187310306, 25.39843750, 32.80078125) -[2618673.026] {Default Queue} wl_pointer#2377.motion(187310306, 25.39843750, 32.80078125) -[2618673.031] {Default Queue} wl_pointer#2409.motion(187310306, 25.39843750, 32.80078125) -[2618673.035] {Default Queue} wl_pointer#2441.motion(187310306, 25.39843750, 32.80078125) -[2618673.039] {Default Queue} wl_pointer#2473.motion(187310306, 25.39843750, 32.80078125) -[2618673.044] {Default Queue} wl_pointer#2498.motion(187310306, 25.39843750, 32.80078125) -[2618673.054] {Default Queue} -> wl_buffer#3684.destroy() -[2618673.059] {Default Queue} -> wl_buffer#3681.destroy() -[2618673.063] {Default Queue} -> wl_shm_pool#3682.destroy() -[2618673.067] {Default Queue} -> wl_shm_pool#3679.destroy() -[2618673.072] {Default Queue} -> wl_surface#3671.destroy() -[2618673.110] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3485, fd 581, 640) -[2618673.116] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3486, fd 582, 640) -[2618673.121] {Default Queue} -> wl_shm_pool#3485.create_buffer(new id wl_buffer#3515, 0, 10, 16, 40, 0) -[2618673.125] {Default Queue} -> wl_shm_pool#3486.create_buffer(new id wl_buffer#3516, 0, 10, 16, 40, 0) -[2618673.132] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3483) -[2618673.136] {Default Queue} -> wl_surface#3483.attach(wl_buffer#3515, 0, 0) -[2618673.141] {Default Queue} -> wl_surface#3483.commit() -[2618673.146] {Default Queue} -> wl_surface#3483.attach(wl_buffer#3515, 0, 0) -[2618673.150] {Default Queue} -> wl_surface#3483.commit() -[2618673.154] {Default Queue} wl_pointer#2537.motion(187310306, 25.39843750, 32.80078125) -[2618673.159] {Default Queue} wl_pointer#2569.motion(187310306, 25.39843750, 32.80078125) -[2618673.163] {Default Queue} wl_pointer#2601.motion(187310306, 25.39843750, 32.80078125) -[2618673.167] {Default Queue} wl_pointer#2633.motion(187310306, 25.39843750, 32.80078125) -[2618673.172] {Default Queue} wl_pointer#2665.motion(187310306, 25.39843750, 32.80078125) -[2618673.176] {Default Queue} wl_pointer#2697.motion(187310306, 25.39843750, 32.80078125) -[2618673.180] {Default Queue} wl_pointer#2729.motion(187310306, 25.39843750, 32.80078125) -[2618673.185] {Default Queue} wl_pointer#2761.motion(187310306, 25.39843750, 32.80078125) -[2618673.189] {Default Queue} wl_pointer#2793.motion(187310306, 25.39843750, 32.80078125) -[2618673.193] {Default Queue} wl_pointer#2825.motion(187310306, 25.39843750, 32.80078125) -[2618673.198] {Default Queue} wl_pointer#2857.motion(187310306, 25.39843750, 32.80078125) -[2618673.205] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) -[2618673.209] {Default Queue} -> wl_surface#1799.commit() -[2618673.215] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) -[2618673.219] {Default Queue} -> wl_surface#1772.commit() -[2618674.283] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) -[2618674.289] {Default Queue} -> wl_surface#1772.commit() -[2618674.299] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) -[2618674.308] {Default Queue} -> wl_region#1791.add(0, 0, 2, 2) -[2618674.314] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618674.319] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618674.326] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) -[2618674.330] {Default Queue} -> wl_region#1791.add(0, 0, 2, 2) -[2618674.334] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618674.338] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618674.344] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) -[2618674.348] {Default Queue} -> wl_region#1791.add(0, 0, 2, 2) -[2618674.352] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618674.356] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618674.361] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) -[2618674.365] {Default Queue} -> wl_region#1791.add(0, 0, 2, 2) -[2618674.370] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618674.373] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618674.380] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) -[2618674.384] {Default Queue} -> wl_region#1791.add(0, 0, 2, 2) -[2618674.388] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618674.392] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618674.397] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) -[2618674.401] {Default Queue} -> wl_surface#1772.commit() -[2618674.405] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) -[2618674.409] {Default Queue} -> wl_surface#1772.commit() -[2618674.415] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) -[2618674.419] {Default Queue} -> wl_surface#1772.commit() -[2618674.425] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) -[2618674.429] {Default Queue} -> wl_surface#1991.commit() -[2618675.491] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) -[2618675.496] {Default Queue} -> wl_surface#1991.commit() -[2618675.504] {Default Queue} -> wl_region#2015.subtract(0, 0, 19, 48) -[2618675.508] {Default Queue} -> wl_region#2015.add(-20, -49, 19, 48) -[2618675.513] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2618675.517] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2618675.583] {Default Queue} -> wl_region#2015.subtract(0, 0, 19, 48) -[2618675.588] {Default Queue} -> wl_region#2015.add(-20, -49, 19, 48) -[2618675.592] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2618675.597] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2618675.602] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618675.607] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618675.650] {Default Queue} -> wl_region#2015.subtract(0, 0, 19, 48) -[2618675.655] {Default Queue} -> wl_region#2015.add(-20, -49, 19, 48) -[2618675.659] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2618675.663] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2618675.668] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618675.672] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618675.677] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) -[2618675.682] {Default Queue} -> wl_surface#1991.commit() -[2618675.686] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) -[2618675.690] {Default Queue} -> wl_surface#1991.commit() -[2618675.696] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) -[2618675.700] {Default Queue} -> wl_surface#1991.commit() -[2618675.706] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) -[2618675.710] {Default Queue} -> wl_surface#2055.commit() -[2618676.393] {Display Queue} wl_display#1.delete_id(3518) -[2618676.399] {Display Queue} wl_display#1.delete_id(3451) -[2618676.403] {Display Queue} wl_display#1.delete_id(3454) -[2618676.410] {Display Queue} wl_display#1.delete_id(3517) -[2618676.416] {Display Queue} wl_display#1.delete_id(3452) -[2618676.420] {Display Queue} wl_display#1.delete_id(3683) -[2618676.424] {Display Queue} wl_display#1.delete_id(94) -[2618676.428] {Display Queue} wl_display#1.delete_id(93) -[2618676.432] {Display Queue} wl_display#1.delete_id(92) -[2618676.436] {Display Queue} wl_display#1.delete_id(91) -[2618676.440] {Default Queue} wl_pointer#2889.motion(187310306, 25.39843750, 32.80078125) -[2618676.445] {Default Queue} wl_pointer#2921.motion(187310306, 25.39843750, 32.80078125) -[2618676.449] {Default Queue} wl_pointer#2953.motion(187310306, 25.39843750, 32.80078125) -[2618676.453] {Default Queue} wl_pointer#2985.motion(187310306, 25.39843750, 32.80078125) -[2618676.458] {Default Queue} wl_pointer#3017.motion(187310306, 25.39843750, 32.80078125) -[2618676.462] {Default Queue} wl_pointer#3049.motion(187310306, 25.39843750, 32.80078125) -[2618676.467] {Default Queue} wl_pointer#3081.motion(187310306, 25.39843750, 32.80078125) -[2618676.471] {Default Queue} wl_pointer#3113.motion(187310306, 25.39843750, 32.80078125) -[2618676.475] {Default Queue} wl_pointer#3145.motion(187310306, 25.39843750, 32.80078125) -[2618676.480] {Default Queue} wl_pointer#3177.motion(187310306, 25.39843750, 32.80078125) -[2618676.484] {Default Queue} wl_pointer#3209.motion(187310306, 25.39843750, 32.80078125) -[2618676.488] {Default Queue} wl_pointer#3241.motion(187310306, 25.39843750, 32.80078125) -[2618676.493] {Default Queue} wl_pointer#3273.motion(187310306, 25.39843750, 32.80078125) -[2618676.497] {Default Queue} wl_pointer#3305.motion(187310306, 25.39843750, 32.80078125) -[2618676.501] {Default Queue} wl_pointer#3337.motion(187310306, 25.39843750, 32.80078125) -[2618676.506] {Default Queue} wl_pointer#3369.motion(187310306, 25.39843750, 32.80078125) -[2618676.510] {Default Queue} wl_pointer#3401.motion(187310306, 25.39843750, 32.80078125) -[2618676.514] {Default Queue} wl_pointer#3433.motion(187310306, 25.39843750, 32.80078125) -[2618676.519] {Default Queue} wl_pointer#3465.motion(187310306, 25.39843750, 32.80078125) -[2618676.523] {Default Queue} wl_pointer#3497.motion(187310306, 25.39843750, 32.80078125) -[2618676.527] {Default Queue} wl_pointer#3529.motion(187310306, 25.39843750, 32.80078125) -[2618676.532] {Default Queue} wl_pointer#3561.motion(187310306, 25.39843750, 32.80078125) -[2618676.536] {Default Queue} wl_pointer#3593.motion(187310306, 25.39843750, 32.80078125) -[2618676.540] {Default Queue} wl_pointer#3625.motion(187310306, 25.39843750, 32.80078125) -[2618676.544] {Default Queue} wl_pointer#3657.motion(187310306, 25.39843750, 32.80078125) -[2618676.549] {Default Queue} wl_pointer#3695.motion(187310306, 25.39843750, 32.80078125) -[2618676.557] {Default Queue} -> wl_region#2079.subtract(0, 0, 19, 48) -[2618676.562] {Default Queue} -> wl_region#2079.add(-20, -49, 19, 48) -[2618676.566] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618676.570] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618676.648] {Default Queue} -> wl_region#2079.subtract(0, 0, 19, 48) -[2618676.653] {Default Queue} -> wl_region#2079.add(-20, -49, 19, 48) -[2618676.657] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618676.661] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618676.666] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618676.671] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618676.850] {Default Queue} -> wl_region#2079.subtract(0, 0, 19, 48) -[2618676.855] {Default Queue} -> wl_region#2079.add(-20, -49, 19, 48) -[2618676.859] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618676.869] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618676.874] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618676.879] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618676.945] {Default Queue} -> wl_region#2079.subtract(0, 0, 19, 48) -[2618676.950] {Default Queue} -> wl_region#2079.add(-20, -49, 19, 48) -[2618676.957] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618676.963] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618676.968] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618676.973] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618677.130] {Default Queue} -> wl_region#2079.subtract(0, 0, 19, 48) -[2618677.135] {Default Queue} -> wl_region#2079.add(-20, -49, 19, 48) -[2618677.139] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618677.143] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618677.148] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618677.152] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618677.157] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) -[2618677.162] {Default Queue} -> wl_surface#2055.commit() -[2618677.166] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) -[2618677.170] {Default Queue} -> wl_surface#2055.commit() -[2618677.194] {Default Queue} wl_pointer#24.motion(187310311, 25.00000000, 31.19921875) -[2618677.199] {Default Queue} wl_pointer#81.motion(187310311, 25.00000000, 31.19921875) -[2618677.205] {Default Queue} wl_pointer#105.motion(187310311, 25.00000000, 31.19921875) -[2618677.209] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618677.214] {Default Queue} wl_pointer#137.motion(187310311, 25.00000000, 31.19921875) -[2618677.218] {Default Queue} wl_pointer#169.motion(187310311, 25.00000000, 31.19921875) -[2618677.222] {Default Queue} wl_pointer#201.motion(187310311, 25.00000000, 31.19921875) -[2618677.227] {Default Queue} wl_pointer#233.motion(187310311, 25.00000000, 31.19921875) -[2618677.233] {Default Queue} wl_pointer#265.motion(187310311, 25.00000000, 31.19921875) -[2618677.239] {Default Queue} wl_pointer#297.motion(187310311, 25.00000000, 31.19921875) -[2618677.245] {Default Queue} wl_pointer#329.motion(187310311, 25.00000000, 31.19921875) -[2618677.251] {Default Queue} wl_pointer#361.motion(187310311, 25.00000000, 31.19921875) -[2618677.256] {Default Queue} wl_pointer#393.motion(187310311, 25.00000000, 31.19921875) -[2618677.262] {Default Queue} wl_pointer#425.motion(187310311, 25.00000000, 31.19921875) -[2618677.268] {Default Queue} wl_pointer#457.motion(187310311, 25.00000000, 31.19921875) -[2618677.274] {Default Queue} wl_pointer#489.motion(187310311, 25.00000000, 31.19921875) -[2618677.279] {Default Queue} wl_pointer#521.motion(187310311, 25.00000000, 31.19921875) -[2618677.283] {Default Queue} wl_pointer#553.motion(187310311, 25.00000000, 31.19921875) -[2618677.287] {Default Queue} wl_pointer#585.motion(187310311, 25.00000000, 31.19921875) -[2618677.292] {Default Queue} wl_pointer#617.motion(187310311, 25.00000000, 31.19921875) -[2618677.296] {Default Queue} wl_pointer#649.motion(187310311, 25.00000000, 31.19921875) -[2618677.300] {Default Queue} wl_pointer#681.motion(187310311, 25.00000000, 31.19921875) -[2618677.304] {Default Queue} wl_pointer#713.motion(187310311, 25.00000000, 31.19921875) -[2618677.309] {Default Queue} wl_pointer#745.motion(187310311, 25.00000000, 31.19921875) -[2618677.314] {Default Queue} wl_pointer#777.motion(187310311, 25.00000000, 31.19921875) -[2618677.320] {Default Queue} wl_pointer#809.motion(187310311, 25.00000000, 31.19921875) -[2618677.325] {Default Queue} wl_pointer#841.motion(187310311, 25.00000000, 31.19921875) -[2618677.330] {Default Queue} wl_pointer#873.motion(187310311, 25.00000000, 31.19921875) -[2618677.335] {Default Queue} wl_pointer#905.motion(187310311, 25.00000000, 31.19921875) -[2618677.340] {Default Queue} wl_pointer#937.motion(187310311, 25.00000000, 31.19921875) -[2618677.346] {Default Queue} wl_pointer#969.motion(187310311, 25.00000000, 31.19921875) -[2618677.351] {Default Queue} wl_pointer#1001.motion(187310311, 25.00000000, 31.19921875) -[2618677.356] {Default Queue} wl_pointer#1033.motion(187310311, 25.00000000, 31.19921875) -[2618677.361] {Default Queue} wl_pointer#1065.motion(187310311, 25.00000000, 31.19921875) -[2618677.366] {Default Queue} wl_pointer#1097.motion(187310311, 25.00000000, 31.19921875) -[2618677.376] {Default Queue} wl_pointer#1129.motion(187310311, 25.00000000, 31.19921875) -[2618677.383] {Default Queue} wl_pointer#1161.motion(187310311, 25.00000000, 31.19921875) -[2618677.389] {Default Queue} wl_pointer#1193.motion(187310311, 25.00000000, 31.19921875) -[2618677.394] {Default Queue} wl_pointer#1225.motion(187310311, 25.00000000, 31.19921875) -[2618677.399] {Default Queue} wl_pointer#1257.motion(187310311, 25.00000000, 31.19921875) -[2618677.404] {Default Queue} wl_pointer#1289.motion(187310311, 25.00000000, 31.19921875) -[2618677.410] {Default Queue} wl_pointer#1321.motion(187310311, 25.00000000, 31.19921875) -[2618677.416] {Default Queue} wl_pointer#1353.motion(187310311, 25.00000000, 31.19921875) -[2618677.421] {Default Queue} wl_pointer#1385.motion(187310311, 25.00000000, 31.19921875) -[2618677.427] {Default Queue} wl_pointer#1417.motion(187310311, 25.00000000, 31.19921875) -[2618677.433] {Default Queue} wl_pointer#1449.motion(187310311, 25.00000000, 31.19921875) -[2618677.439] {Default Queue} wl_pointer#1481.motion(187310311, 25.00000000, 31.19921875) -[2618677.443] {Default Queue} wl_pointer#1513.motion(187310311, 25.00000000, 31.19921875) -[2618677.448] {Default Queue} wl_pointer#1545.motion(187310311, 25.00000000, 31.19921875) -[2618677.452] {Default Queue} wl_pointer#1577.motion(187310311, 25.00000000, 31.19921875) -[2618677.456] {Default Queue} wl_pointer#1609.motion(187310311, 25.00000000, 31.19921875) -[2618677.461] {Default Queue} wl_pointer#1641.motion(187310311, 25.00000000, 31.19921875) -[2618677.465] {Default Queue} wl_pointer#1673.motion(187310311, 25.00000000, 31.19921875) -[2618677.469] {Default Queue} wl_pointer#1705.motion(187310311, 25.00000000, 31.19921875) -[2618677.473] {Default Queue} wl_pointer#1737.motion(187310311, 25.00000000, 31.19921875) -[2618677.478] {Default Queue} wl_pointer#1762.motion(187310311, 25.00000000, 31.19921875) -[2618677.482] {Default Queue} wl_pointer#1801.motion(187310311, 25.00000000, 31.19921875) -[2618677.486] {Default Queue} wl_pointer#1833.motion(187310311, 25.00000000, 31.19921875) -[2618677.490] {Default Queue} wl_pointer#1865.motion(187310311, 25.00000000, 31.19921875) -[2618677.495] {Default Queue} wl_pointer#1897.motion(187310311, 25.00000000, 31.19921875) -[2618677.499] {Default Queue} wl_pointer#1929.motion(187310311, 25.00000000, 31.19921875) -[2618677.503] {Default Queue} wl_pointer#1961.motion(187310311, 25.00000000, 31.19921875) -[2618677.507] {Default Queue} wl_pointer#1993.motion(187310311, 25.00000000, 31.19921875) -[2618677.512] {Default Queue} wl_pointer#2025.motion(187310311, 25.00000000, 31.19921875) -[2618677.516] {Default Queue} wl_pointer#2057.motion(187310311, 25.00000000, 31.19921875) -[2618677.520] {Default Queue} wl_pointer#2089.motion(187310311, 25.00000000, 31.19921875) -[2618677.524] {Default Queue} wl_pointer#2121.motion(187310311, 25.00000000, 31.19921875) -[2618677.529] {Default Queue} wl_pointer#2153.motion(187310311, 25.00000000, 31.19921875) -[2618677.533] {Default Queue} wl_pointer#2185.motion(187310311, 25.00000000, 31.19921875) -[2618677.537] {Default Queue} wl_pointer#2217.motion(187310311, 25.00000000, 31.19921875) -[2618677.541] {Default Queue} wl_pointer#2249.motion(187310311, 25.00000000, 31.19921875) -[2618677.546] {Default Queue} wl_pointer#2281.motion(187310311, 25.00000000, 31.19921875) -[2618677.550] {Default Queue} wl_pointer#2313.motion(187310311, 25.00000000, 31.19921875) -[2618677.555] {Default Queue} wl_pointer#2345.motion(187310311, 25.00000000, 31.19921875) -[2618677.559] {Default Queue} wl_pointer#2377.motion(187310311, 25.00000000, 31.19921875) -[2618677.564] {Default Queue} wl_pointer#2409.motion(187310311, 25.00000000, 31.19921875) -[2618677.568] {Default Queue} wl_pointer#2441.motion(187310311, 25.00000000, 31.19921875) -[2618677.572] {Default Queue} wl_pointer#2473.motion(187310311, 25.00000000, 31.19921875) -[2618677.576] {Default Queue} wl_pointer#2498.motion(187310311, 25.00000000, 31.19921875) -[2618677.589] {Default Queue} -> wl_buffer#3515.destroy() -[2618677.594] {Default Queue} -> wl_buffer#3516.destroy() -[2618677.602] {Default Queue} -> wl_shm_pool#3485.destroy() -[2618677.608] {Default Queue} -> wl_shm_pool#3486.destroy() -[2618677.613] {Default Queue} -> wl_surface#3483.destroy() -[2618677.653] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#91, fd 575, 640) -[2618677.660] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 578, 640) -[2618677.665] {Default Queue} -> wl_shm_pool#91.create_buffer(new id wl_buffer#93, 0, 10, 16, 40, 0) -[2618677.669] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) -[2618677.677] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3683) -[2618677.681] {Default Queue} -> wl_surface#3683.attach(wl_buffer#93, 0, 0) -[2618677.686] {Default Queue} -> wl_surface#3683.commit() -[2618677.691] {Default Queue} -> wl_surface#3683.attach(wl_buffer#93, 0, 0) -[2618677.695] {Default Queue} -> wl_surface#3683.commit() -[2618677.699] {Default Queue} wl_pointer#2537.motion(187310311, 25.00000000, 31.19921875) -[2618677.704] {Default Queue} wl_pointer#2569.motion(187310311, 25.00000000, 31.19921875) -[2618677.708] {Default Queue} wl_pointer#2601.motion(187310311, 25.00000000, 31.19921875) -[2618677.712] {Default Queue} wl_pointer#2633.motion(187310311, 25.00000000, 31.19921875) -[2618677.717] {Default Queue} wl_pointer#2665.motion(187310311, 25.00000000, 31.19921875) -[2618677.721] {Default Queue} wl_pointer#2697.motion(187310311, 25.00000000, 31.19921875) -[2618677.725] {Default Queue} wl_pointer#2729.motion(187310311, 25.00000000, 31.19921875) -[2618677.729] {Default Queue} wl_pointer#2761.motion(187310311, 25.00000000, 31.19921875) -[2618677.734] {Default Queue} wl_pointer#2793.motion(187310311, 25.00000000, 31.19921875) -[2618677.738] {Default Queue} wl_pointer#2825.motion(187310311, 25.00000000, 31.19921875) -[2618677.742] {Default Queue} wl_pointer#2857.motion(187310311, 25.00000000, 31.19921875) -[2618677.747] {Default Queue} wl_pointer#2889.motion(187310311, 25.00000000, 31.19921875) -[2618677.751] {Default Queue} wl_pointer#2921.motion(187310311, 25.00000000, 31.19921875) -[2618677.755] {Default Queue} wl_pointer#2953.motion(187310311, 25.00000000, 31.19921875) -[2618677.760] {Default Queue} wl_pointer#2985.motion(187310311, 25.00000000, 31.19921875) -[2618677.764] {Default Queue} wl_pointer#3017.motion(187310311, 25.00000000, 31.19921875) -[2618677.768] {Default Queue} wl_pointer#3049.motion(187310311, 25.00000000, 31.19921875) -[2618677.772] {Default Queue} wl_pointer#3081.motion(187310311, 25.00000000, 31.19921875) -[2618677.777] {Default Queue} wl_pointer#3113.motion(187310311, 25.00000000, 31.19921875) -[2618677.781] {Default Queue} wl_pointer#3145.motion(187310311, 25.00000000, 31.19921875) -[2618677.785] {Default Queue} wl_pointer#3177.motion(187310311, 25.00000000, 31.19921875) -[2618677.790] {Default Queue} wl_pointer#3209.motion(187310311, 25.00000000, 31.19921875) -[2618677.794] {Default Queue} wl_pointer#3241.motion(187310311, 25.00000000, 31.19921875) -[2618677.798] {Default Queue} wl_pointer#3273.motion(187310311, 25.00000000, 31.19921875) -[2618677.803] {Default Queue} wl_pointer#3305.motion(187310311, 25.00000000, 31.19921875) -[2618677.807] {Default Queue} wl_pointer#3337.motion(187310311, 25.00000000, 31.19921875) -[2618677.811] {Default Queue} wl_pointer#3369.motion(187310311, 25.00000000, 31.19921875) -[2618677.815] {Default Queue} wl_pointer#3401.motion(187310311, 25.00000000, 31.19921875) -[2618677.820] {Default Queue} wl_pointer#3433.motion(187310311, 25.00000000, 31.19921875) -[2618677.824] {Default Queue} wl_pointer#3465.motion(187310311, 25.00000000, 31.19921875) -[2618677.828] {Default Queue} wl_pointer#3497.motion(187310311, 25.00000000, 31.19921875) -[2618677.833] {Default Queue} wl_pointer#3529.motion(187310311, 25.00000000, 31.19921875) -[2618677.837] {Default Queue} wl_pointer#3561.motion(187310311, 25.00000000, 31.19921875) -[2618677.841] {Default Queue} wl_pointer#3593.motion(187310311, 25.00000000, 31.19921875) -[2618677.846] {Default Queue} wl_pointer#3625.motion(187310311, 25.00000000, 31.19921875) -[2618677.853] {Default Queue} wl_pointer#3657.motion(187310311, 25.00000000, 31.19921875) -[2618677.859] {Default Queue} wl_pointer#3695.motion(187310311, 25.00000000, 31.19921875) -[2618677.870] {Default Queue} wl_pointer#24.motion(187310311, 24.60156250, 29.19921875) -[2618677.874] {Default Queue} wl_pointer#81.motion(187310311, 24.60156250, 29.19921875) -[2618677.902] {Default Queue} wl_pointer#105.motion(187310311, 24.60156250, 29.19921875) -[2618677.911] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618677.917] {Default Queue} wl_pointer#137.motion(187310311, 24.60156250, 29.19921875) -[2618677.922] {Default Queue} wl_pointer#169.motion(187310311, 24.60156250, 29.19921875) -[2618677.926] {Default Queue} wl_pointer#201.motion(187310311, 24.60156250, 29.19921875) -[2618677.931] {Default Queue} wl_pointer#233.motion(187310311, 24.60156250, 29.19921875) -[2618677.935] {Default Queue} wl_pointer#265.motion(187310311, 24.60156250, 29.19921875) -[2618677.940] {Default Queue} wl_pointer#297.motion(187310311, 24.60156250, 29.19921875) -[2618677.944] {Default Queue} wl_pointer#329.motion(187310311, 24.60156250, 29.19921875) -[2618677.948] {Default Queue} wl_pointer#361.motion(187310311, 24.60156250, 29.19921875) -[2618677.954] {Default Queue} wl_pointer#393.motion(187310311, 24.60156250, 29.19921875) -[2618677.959] {Default Queue} wl_pointer#425.motion(187310311, 24.60156250, 29.19921875) -[2618677.965] {Default Queue} wl_pointer#457.motion(187310311, 24.60156250, 29.19921875) -[2618677.971] {Default Queue} wl_pointer#489.motion(187310311, 24.60156250, 29.19921875) -[2618677.977] {Default Queue} wl_pointer#521.motion(187310311, 24.60156250, 29.19921875) -[2618677.983] {Default Queue} wl_pointer#553.motion(187310311, 24.60156250, 29.19921875) -[2618677.989] {Default Queue} wl_pointer#585.motion(187310311, 24.60156250, 29.19921875) -[2618677.995] {Default Queue} wl_pointer#617.motion(187310311, 24.60156250, 29.19921875) -[2618678.001] {Default Queue} wl_pointer#649.motion(187310311, 24.60156250, 29.19921875) -[2618678.007] {Default Queue} wl_pointer#681.motion(187310311, 24.60156250, 29.19921875) -[2618678.013] {Default Queue} wl_pointer#713.motion(187310311, 24.60156250, 29.19921875) -[2618678.019] {Default Queue} wl_pointer#745.motion(187310311, 24.60156250, 29.19921875) -[2618678.025] {Default Queue} wl_pointer#777.motion(187310311, 24.60156250, 29.19921875) -[2618678.031] {Default Queue} wl_pointer#809.motion(187310311, 24.60156250, 29.19921875) -[2618678.037] {Default Queue} wl_pointer#841.motion(187310311, 24.60156250, 29.19921875) -[2618678.043] {Default Queue} wl_pointer#873.motion(187310311, 24.60156250, 29.19921875) -[2618678.048] {Default Queue} wl_pointer#905.motion(187310311, 24.60156250, 29.19921875) -[2618678.052] {Default Queue} wl_pointer#937.motion(187310311, 24.60156250, 29.19921875) -[2618678.057] {Default Queue} wl_pointer#969.motion(187310311, 24.60156250, 29.19921875) -[2618678.061] {Default Queue} wl_pointer#1001.motion(187310311, 24.60156250, 29.19921875) -[2618678.065] {Default Queue} wl_pointer#1033.motion(187310311, 24.60156250, 29.19921875) -[2618678.070] {Default Queue} wl_pointer#1065.motion(187310311, 24.60156250, 29.19921875) -[2618678.074] {Default Queue} wl_pointer#1097.motion(187310311, 24.60156250, 29.19921875) -[2618678.078] {Default Queue} wl_pointer#1129.motion(187310311, 24.60156250, 29.19921875) -[2618678.082] {Default Queue} wl_pointer#1161.motion(187310311, 24.60156250, 29.19921875) -[2618678.087] {Default Queue} wl_pointer#1193.motion(187310311, 24.60156250, 29.19921875) -[2618678.091] {Default Queue} wl_pointer#1225.motion(187310311, 24.60156250, 29.19921875) -[2618678.095] {Default Queue} wl_pointer#1257.motion(187310311, 24.60156250, 29.19921875) -[2618678.099] {Default Queue} wl_pointer#1289.motion(187310311, 24.60156250, 29.19921875) -[2618678.104] {Default Queue} wl_pointer#1321.motion(187310311, 24.60156250, 29.19921875) -[2618678.108] {Default Queue} wl_pointer#1353.motion(187310311, 24.60156250, 29.19921875) -[2618678.112] {Default Queue} wl_pointer#1385.motion(187310311, 24.60156250, 29.19921875) -[2618678.122] {Default Queue} wl_pointer#1417.motion(187310311, 24.60156250, 29.19921875) -[2618678.131] {Default Queue} wl_pointer#1449.motion(187310311, 24.60156250, 29.19921875) -[2618678.135] {Default Queue} wl_pointer#1481.motion(187310311, 24.60156250, 29.19921875) -[2618678.140] {Default Queue} wl_pointer#1513.motion(187310311, 24.60156250, 29.19921875) -[2618678.144] {Default Queue} wl_pointer#1545.motion(187310311, 24.60156250, 29.19921875) -[2618678.148] {Default Queue} wl_pointer#1577.motion(187310311, 24.60156250, 29.19921875) -[2618678.152] {Default Queue} wl_pointer#1609.motion(187310311, 24.60156250, 29.19921875) -[2618678.157] {Default Queue} wl_pointer#1641.motion(187310311, 24.60156250, 29.19921875) -[2618678.161] {Default Queue} wl_pointer#1673.motion(187310311, 24.60156250, 29.19921875) -[2618678.165] {Default Queue} wl_pointer#1705.motion(187310311, 24.60156250, 29.19921875) -[2618678.169] {Default Queue} wl_pointer#1737.motion(187310311, 24.60156250, 29.19921875) -[2618678.174] {Default Queue} wl_pointer#1762.motion(187310311, 24.60156250, 29.19921875) -[2618678.178] {Default Queue} wl_pointer#1801.motion(187310311, 24.60156250, 29.19921875) -[2618678.182] {Default Queue} wl_pointer#1833.motion(187310311, 24.60156250, 29.19921875) -[2618678.187] {Default Queue} wl_pointer#1865.motion(187310311, 24.60156250, 29.19921875) -[2618678.191] {Default Queue} wl_pointer#1897.motion(187310311, 24.60156250, 29.19921875) -[2618678.195] {Default Queue} wl_pointer#1929.motion(187310311, 24.60156250, 29.19921875) -[2618678.199] {Default Queue} wl_pointer#1961.motion(187310311, 24.60156250, 29.19921875) -[2618678.204] {Default Queue} wl_pointer#1993.motion(187310311, 24.60156250, 29.19921875) -[2618678.208] {Default Queue} wl_pointer#2025.motion(187310311, 24.60156250, 29.19921875) -[2618678.212] {Default Queue} wl_pointer#2057.motion(187310311, 24.60156250, 29.19921875) -[2618678.216] {Default Queue} wl_pointer#2089.motion(187310311, 24.60156250, 29.19921875) -[2618678.221] {Default Queue} wl_pointer#2121.motion(187310311, 24.60156250, 29.19921875) -[2618678.225] {Default Queue} wl_pointer#2153.motion(187310311, 24.60156250, 29.19921875) -[2618678.229] {Default Queue} wl_pointer#2185.motion(187310311, 24.60156250, 29.19921875) -[2618678.234] {Default Queue} wl_pointer#2217.motion(187310311, 24.60156250, 29.19921875) -[2618678.238] {Default Queue} wl_pointer#2249.motion(187310311, 24.60156250, 29.19921875) -[2618678.242] {Default Queue} wl_pointer#2281.motion(187310311, 24.60156250, 29.19921875) -[2618678.246] {Default Queue} wl_pointer#2313.motion(187310311, 24.60156250, 29.19921875) -[2618678.251] {Default Queue} wl_pointer#2345.motion(187310311, 24.60156250, 29.19921875) -[2618678.255] {Default Queue} wl_pointer#2377.motion(187310311, 24.60156250, 29.19921875) -[2618678.260] {Default Queue} wl_pointer#2409.motion(187310311, 24.60156250, 29.19921875) -[2618678.264] {Default Queue} wl_pointer#2441.motion(187310311, 24.60156250, 29.19921875) -[2618678.268] {Default Queue} wl_pointer#2473.motion(187310311, 24.60156250, 29.19921875) -[2618678.273] {Default Queue} wl_pointer#2498.motion(187310311, 24.60156250, 29.19921875) -[2618678.286] {Default Queue} -> wl_buffer#93.destroy() -[2618678.292] {Default Queue} -> wl_buffer#94.destroy() -[2618678.296] {Default Queue} -> wl_shm_pool#91.destroy() -[2618678.300] {Default Queue} -> wl_shm_pool#92.destroy() -[2618678.305] {Default Queue} -> wl_surface#3683.destroy() -[2618678.349] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3452, fd 581, 640) -[2618678.356] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3517, fd 582, 640) -[2618678.361] {Default Queue} -> wl_shm_pool#3452.create_buffer(new id wl_buffer#3454, 0, 10, 16, 40, 0) -[2618678.366] {Default Queue} -> wl_shm_pool#3517.create_buffer(new id wl_buffer#3451, 0, 10, 16, 40, 0) -[2618678.374] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3518) -[2618678.378] {Default Queue} -> wl_surface#3518.attach(wl_buffer#3454, 0, 0) -[2618678.383] {Default Queue} -> wl_surface#3518.commit() -[2618678.392] {Default Queue} -> wl_surface#3518.attach(wl_buffer#3454, 0, 0) -[2618678.399] {Default Queue} -> wl_surface#3518.commit() -[2618678.403] {Default Queue} wl_pointer#2537.motion(187310311, 24.60156250, 29.19921875) -[2618678.408] {Default Queue} wl_pointer#2569.motion(187310311, 24.60156250, 29.19921875) -[2618678.413] {Default Queue} wl_pointer#2601.motion(187310311, 24.60156250, 29.19921875) -[2618678.417] {Default Queue} wl_pointer#2633.motion(187310311, 24.60156250, 29.19921875) -[2618678.422] {Default Queue} wl_pointer#2665.motion(187310311, 24.60156250, 29.19921875) -[2618678.426] {Default Queue} wl_pointer#2697.motion(187310311, 24.60156250, 29.19921875) -[2618678.430] {Default Queue} wl_pointer#2729.motion(187310311, 24.60156250, 29.19921875) -[2618678.435] {Default Queue} wl_pointer#2761.motion(187310311, 24.60156250, 29.19921875) -[2618678.439] {Default Queue} wl_pointer#2793.motion(187310311, 24.60156250, 29.19921875) -[2618678.443] {Default Queue} wl_pointer#2825.motion(187310311, 24.60156250, 29.19921875) -[2618678.448] {Default Queue} wl_pointer#2857.motion(187310311, 24.60156250, 29.19921875) -[2618678.452] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) -[2618678.457] {Default Queue} -> wl_surface#2055.commit() -[2618679.524] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) -[2618679.532] {Default Queue} -> wl_surface#2055.commit() -[2618679.539] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) -[2618679.543] {Default Queue} -> wl_surface#2055.commit() -[2618679.549] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) -[2618679.553] {Default Queue} -> wl_surface#2023.commit() -[2618680.616] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) -[2618680.625] {Default Queue} -> wl_surface#2023.commit() -[2618680.636] {Default Queue} -> wl_region#2047.subtract(0, 0, 19, 48) -[2618680.640] {Default Queue} -> wl_region#2047.add(-20, -49, 19, 48) -[2618680.645] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) -[2618680.649] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) -[2618680.655] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) -[2618680.659] {Default Queue} -> wl_surface#2023.commit() -[2618680.663] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) -[2618680.668] {Default Queue} -> wl_surface#2023.commit() -[2618680.674] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) -[2618680.678] {Default Queue} -> wl_surface#2023.commit() -[2618680.684] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) -[2618680.688] {Default Queue} -> wl_surface#1959.commit() -[2618681.596] {Display Queue} wl_display#1.delete_id(3675) -[2618681.607] {Display Queue} wl_display#1.delete_id(3678) -[2618681.613] {Display Queue} wl_display#1.delete_id(3674) -[2618681.617] {Display Queue} wl_display#1.delete_id(3676) -[2618681.621] {Display Queue} wl_display#1.delete_id(3677) -[2618681.625] {Display Queue} wl_display#1.delete_id(3292) -[2618681.629] {Display Queue} wl_display#1.delete_id(3293) -[2618681.632] {Display Queue} wl_display#1.delete_id(3484) -[2618681.636] {Display Queue} wl_display#1.delete_id(3291) -[2618681.640] {Display Queue} wl_display#1.delete_id(3294) -[2618681.644] {Display Queue} wl_display#1.delete_id(3684) -[2618681.648] {Display Queue} wl_display#1.delete_id(3681) -[2618681.652] {Display Queue} wl_display#1.delete_id(3682) -[2618681.656] {Display Queue} wl_display#1.delete_id(3679) -[2618681.660] {Display Queue} wl_display#1.delete_id(3671) -[2618681.664] {Default Queue} wl_pointer#2889.motion(187310311, 24.60156250, 29.19921875) -[2618681.669] {Default Queue} wl_pointer#2921.motion(187310311, 24.60156250, 29.19921875) -[2618681.674] {Default Queue} wl_pointer#2953.motion(187310311, 24.60156250, 29.19921875) -[2618681.679] {Default Queue} wl_pointer#2985.motion(187310311, 24.60156250, 29.19921875) -[2618681.683] {Default Queue} wl_pointer#3017.motion(187310311, 24.60156250, 29.19921875) -[2618681.687] {Default Queue} wl_pointer#3049.motion(187310311, 24.60156250, 29.19921875) -[2618681.696] {Default Queue} wl_pointer#3081.motion(187310311, 24.60156250, 29.19921875) -[2618681.703] {Default Queue} wl_pointer#3113.motion(187310311, 24.60156250, 29.19921875) -[2618681.708] {Default Queue} wl_pointer#3145.motion(187310311, 24.60156250, 29.19921875) -[2618681.712] {Default Queue} wl_pointer#3177.motion(187310311, 24.60156250, 29.19921875) -[2618681.716] {Default Queue} wl_pointer#3209.motion(187310311, 24.60156250, 29.19921875) -[2618681.721] {Default Queue} wl_pointer#3241.motion(187310311, 24.60156250, 29.19921875) -[2618681.725] {Default Queue} wl_pointer#3273.motion(187310311, 24.60156250, 29.19921875) -[2618681.730] {Default Queue} wl_pointer#3305.motion(187310311, 24.60156250, 29.19921875) -[2618681.734] {Default Queue} wl_pointer#3337.motion(187310311, 24.60156250, 29.19921875) -[2618681.738] {Default Queue} wl_pointer#3369.motion(187310311, 24.60156250, 29.19921875) -[2618681.743] {Default Queue} wl_pointer#3401.motion(187310311, 24.60156250, 29.19921875) -[2618681.747] {Default Queue} wl_pointer#3433.motion(187310311, 24.60156250, 29.19921875) -[2618681.752] {Default Queue} wl_pointer#3465.motion(187310311, 24.60156250, 29.19921875) -[2618681.756] {Default Queue} wl_pointer#3497.motion(187310311, 24.60156250, 29.19921875) -[2618681.761] {Default Queue} wl_pointer#3529.motion(187310311, 24.60156250, 29.19921875) -[2618681.765] {Default Queue} wl_pointer#3561.motion(187310311, 24.60156250, 29.19921875) -[2618681.770] {Default Queue} wl_pointer#3593.motion(187310311, 24.60156250, 29.19921875) -[2618681.774] {Default Queue} wl_pointer#3625.motion(187310311, 24.60156250, 29.19921875) -[2618681.778] {Default Queue} wl_pointer#3657.motion(187310311, 24.60156250, 29.19921875) -[2618681.783] {Default Queue} wl_pointer#3695.motion(187310311, 24.60156250, 29.19921875) -[2618681.787] {Default Queue} wl_pointer#24.motion(187310311, 24.19921875, 26.39843750) -[2618681.791] {Default Queue} wl_pointer#81.motion(187310311, 24.19921875, 26.39843750) -[2618681.797] {Default Queue} wl_pointer#105.motion(187310311, 24.19921875, 26.39843750) -[2618681.801] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618681.806] {Default Queue} wl_pointer#137.motion(187310311, 24.19921875, 26.39843750) -[2618681.811] {Default Queue} wl_pointer#169.motion(187310311, 24.19921875, 26.39843750) -[2618681.815] {Default Queue} wl_pointer#201.motion(187310311, 24.19921875, 26.39843750) -[2618681.819] {Default Queue} wl_pointer#233.motion(187310311, 24.19921875, 26.39843750) -[2618681.824] {Default Queue} wl_pointer#265.motion(187310311, 24.19921875, 26.39843750) -[2618681.828] {Default Queue} wl_pointer#297.motion(187310311, 24.19921875, 26.39843750) -[2618681.832] {Default Queue} wl_pointer#329.motion(187310311, 24.19921875, 26.39843750) -[2618681.837] {Default Queue} wl_pointer#361.motion(187310311, 24.19921875, 26.39843750) -[2618681.841] {Default Queue} wl_pointer#393.motion(187310311, 24.19921875, 26.39843750) -[2618681.845] {Default Queue} wl_pointer#425.motion(187310311, 24.19921875, 26.39843750) -[2618681.849] {Default Queue} wl_pointer#457.motion(187310311, 24.19921875, 26.39843750) -[2618681.854] {Default Queue} wl_pointer#489.motion(187310311, 24.19921875, 26.39843750) -[2618681.858] {Default Queue} wl_pointer#521.motion(187310311, 24.19921875, 26.39843750) -[2618681.868] {Default Queue} wl_pointer#553.motion(187310311, 24.19921875, 26.39843750) -[2618681.872] {Default Queue} wl_pointer#585.motion(187310311, 24.19921875, 26.39843750) -[2618681.876] {Default Queue} wl_pointer#617.motion(187310311, 24.19921875, 26.39843750) -[2618681.881] {Default Queue} wl_pointer#649.motion(187310311, 24.19921875, 26.39843750) -[2618681.885] {Default Queue} wl_pointer#681.motion(187310311, 24.19921875, 26.39843750) -[2618681.889] {Default Queue} wl_pointer#713.motion(187310311, 24.19921875, 26.39843750) -[2618681.894] {Default Queue} wl_pointer#745.motion(187310311, 24.19921875, 26.39843750) -[2618681.898] {Default Queue} wl_pointer#777.motion(187310311, 24.19921875, 26.39843750) -[2618681.902] {Default Queue} wl_pointer#809.motion(187310311, 24.19921875, 26.39843750) -[2618681.910] {Default Queue} wl_pointer#841.motion(187310311, 24.19921875, 26.39843750) -[2618681.916] {Default Queue} wl_pointer#873.motion(187310311, 24.19921875, 26.39843750) -[2618681.920] {Default Queue} wl_pointer#905.motion(187310311, 24.19921875, 26.39843750) -[2618681.924] {Default Queue} wl_pointer#937.motion(187310311, 24.19921875, 26.39843750) -[2618681.929] {Default Queue} wl_pointer#969.motion(187310311, 24.19921875, 26.39843750) -[2618681.933] {Default Queue} wl_pointer#1001.motion(187310311, 24.19921875, 26.39843750) -[2618681.937] {Default Queue} wl_pointer#1033.motion(187310311, 24.19921875, 26.39843750) -[2618681.941] {Default Queue} wl_pointer#1065.motion(187310311, 24.19921875, 26.39843750) -[2618681.946] {Default Queue} wl_pointer#1097.motion(187310311, 24.19921875, 26.39843750) -[2618681.952] {Default Queue} wl_pointer#1129.motion(187310311, 24.19921875, 26.39843750) -[2618681.958] {Default Queue} wl_pointer#1161.motion(187310311, 24.19921875, 26.39843750) -[2618681.964] {Default Queue} wl_pointer#1193.motion(187310311, 24.19921875, 26.39843750) -[2618681.970] {Default Queue} wl_pointer#1225.motion(187310311, 24.19921875, 26.39843750) -[2618681.976] {Default Queue} wl_pointer#1257.motion(187310311, 24.19921875, 26.39843750) -[2618681.982] {Default Queue} wl_pointer#1289.motion(187310311, 24.19921875, 26.39843750) -[2618681.988] {Default Queue} wl_pointer#1321.motion(187310311, 24.19921875, 26.39843750) -[2618681.994] {Default Queue} wl_pointer#1353.motion(187310311, 24.19921875, 26.39843750) -[2618682.000] {Default Queue} wl_pointer#1385.motion(187310311, 24.19921875, 26.39843750) -[2618682.006] {Default Queue} wl_pointer#1417.motion(187310311, 24.19921875, 26.39843750) -[2618682.012] {Default Queue} wl_pointer#1449.motion(187310311, 24.19921875, 26.39843750) -[2618682.019] {Default Queue} wl_pointer#1481.motion(187310311, 24.19921875, 26.39843750) -[2618682.025] {Default Queue} wl_pointer#1513.motion(187310311, 24.19921875, 26.39843750) -[2618682.031] {Default Queue} wl_pointer#1545.motion(187310311, 24.19921875, 26.39843750) -[2618682.036] {Default Queue} wl_pointer#1577.motion(187310311, 24.19921875, 26.39843750) -[2618682.041] {Default Queue} wl_pointer#1609.motion(187310311, 24.19921875, 26.39843750) -[2618682.045] {Default Queue} wl_pointer#1641.motion(187310311, 24.19921875, 26.39843750) -[2618682.050] {Default Queue} wl_pointer#1673.motion(187310311, 24.19921875, 26.39843750) -[2618682.054] {Default Queue} wl_pointer#1705.motion(187310311, 24.19921875, 26.39843750) -[2618682.058] {Default Queue} wl_pointer#1737.motion(187310311, 24.19921875, 26.39843750) -[2618682.062] {Default Queue} wl_pointer#1762.motion(187310311, 24.19921875, 26.39843750) -[2618682.067] {Default Queue} wl_pointer#1801.motion(187310311, 24.19921875, 26.39843750) -[2618682.071] {Default Queue} wl_pointer#1833.motion(187310311, 24.19921875, 26.39843750) -[2618682.075] {Default Queue} wl_pointer#1865.motion(187310311, 24.19921875, 26.39843750) -[2618682.080] {Default Queue} wl_pointer#1897.motion(187310311, 24.19921875, 26.39843750) -[2618682.084] {Default Queue} wl_pointer#1929.motion(187310311, 24.19921875, 26.39843750) -[2618682.088] {Default Queue} wl_pointer#1961.motion(187310311, 24.19921875, 26.39843750) -[2618682.092] {Default Queue} wl_pointer#1993.motion(187310311, 24.19921875, 26.39843750) -[2618682.097] {Default Queue} wl_pointer#2025.motion(187310311, 24.19921875, 26.39843750) -[2618682.101] {Default Queue} wl_pointer#2057.motion(187310311, 24.19921875, 26.39843750) -[2618682.105] {Default Queue} wl_pointer#2089.motion(187310311, 24.19921875, 26.39843750) -[2618682.110] {Default Queue} wl_pointer#2121.motion(187310311, 24.19921875, 26.39843750) -[2618682.114] {Default Queue} wl_pointer#2153.motion(187310311, 24.19921875, 26.39843750) -[2618682.118] {Default Queue} wl_pointer#2185.motion(187310311, 24.19921875, 26.39843750) -[2618682.122] {Default Queue} wl_pointer#2217.motion(187310311, 24.19921875, 26.39843750) -[2618682.127] {Default Queue} wl_pointer#2249.motion(187310311, 24.19921875, 26.39843750) -[2618682.134] {Default Queue} wl_pointer#2281.motion(187310311, 24.19921875, 26.39843750) -[2618682.141] {Default Queue} wl_pointer#2313.motion(187310311, 24.19921875, 26.39843750) -[2618682.145] {Default Queue} wl_pointer#2345.motion(187310311, 24.19921875, 26.39843750) -[2618682.150] {Default Queue} wl_pointer#2377.motion(187310311, 24.19921875, 26.39843750) -[2618682.154] {Default Queue} wl_pointer#2409.motion(187310311, 24.19921875, 26.39843750) -[2618682.158] {Default Queue} wl_pointer#2441.motion(187310311, 24.19921875, 26.39843750) -[2618682.163] {Default Queue} wl_pointer#2473.motion(187310311, 24.19921875, 26.39843750) -[2618682.167] {Default Queue} wl_pointer#2498.motion(187310311, 24.19921875, 26.39843750) -[2618682.179] {Default Queue} -> wl_buffer#3454.destroy() -[2618682.185] {Default Queue} -> wl_buffer#3451.destroy() -[2618682.189] {Default Queue} -> wl_shm_pool#3452.destroy() -[2618682.193] {Default Queue} -> wl_shm_pool#3517.destroy() -[2618682.198] {Default Queue} -> wl_surface#3518.destroy() -[2618682.248] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3671, fd 575, 640) -[2618682.255] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 578, 640) -[2618682.260] {Default Queue} -> wl_shm_pool#3671.create_buffer(new id wl_buffer#3682, 0, 10, 16, 40, 0) -[2618682.265] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) -[2618682.273] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3684) -[2618682.277] {Default Queue} -> wl_surface#3684.attach(wl_buffer#3682, 0, 0) -[2618682.281] {Default Queue} -> wl_surface#3684.commit() -[2618682.287] {Default Queue} -> wl_surface#3684.attach(wl_buffer#3682, 0, 0) -[2618682.291] {Default Queue} -> wl_surface#3684.commit() -[2618682.295] {Default Queue} wl_pointer#2537.motion(187310311, 24.19921875, 26.39843750) -[2618682.300] {Default Queue} wl_pointer#2569.motion(187310311, 24.19921875, 26.39843750) -[2618682.304] {Default Queue} wl_pointer#2601.motion(187310311, 24.19921875, 26.39843750) -[2618682.309] {Default Queue} wl_pointer#2633.motion(187310311, 24.19921875, 26.39843750) -[2618682.313] {Default Queue} wl_pointer#2665.motion(187310311, 24.19921875, 26.39843750) -[2618682.317] {Default Queue} wl_pointer#2697.motion(187310311, 24.19921875, 26.39843750) -[2618682.322] {Default Queue} wl_pointer#2729.motion(187310311, 24.19921875, 26.39843750) -[2618682.326] {Default Queue} wl_pointer#2761.motion(187310311, 24.19921875, 26.39843750) -[2618682.330] {Default Queue} wl_pointer#2793.motion(187310311, 24.19921875, 26.39843750) -[2618682.335] {Default Queue} wl_pointer#2825.motion(187310311, 24.19921875, 26.39843750) -[2618682.339] {Default Queue} wl_pointer#2857.motion(187310311, 24.19921875, 26.39843750) -[2618682.343] {Default Queue} wl_pointer#2889.motion(187310311, 24.19921875, 26.39843750) -[2618682.348] {Default Queue} wl_pointer#2921.motion(187310311, 24.19921875, 26.39843750) -[2618682.354] {Default Queue} wl_pointer#2953.motion(187310311, 24.19921875, 26.39843750) -[2618682.360] {Default Queue} wl_pointer#2985.motion(187310311, 24.19921875, 26.39843750) -[2618682.366] {Default Queue} wl_pointer#3017.motion(187310311, 24.19921875, 26.39843750) -[2618682.372] {Default Queue} wl_pointer#3049.motion(187310311, 24.19921875, 26.39843750) -[2618682.377] {Default Queue} wl_pointer#3081.motion(187310311, 24.19921875, 26.39843750) -[2618682.383] {Default Queue} wl_pointer#3113.motion(187310311, 24.19921875, 26.39843750) -[2618682.388] {Default Queue} wl_pointer#3145.motion(187310311, 24.19921875, 26.39843750) -[2618682.394] {Default Queue} wl_pointer#3177.motion(187310311, 24.19921875, 26.39843750) -[2618682.398] {Default Queue} wl_pointer#3209.motion(187310311, 24.19921875, 26.39843750) -[2618682.402] {Default Queue} wl_pointer#3241.motion(187310311, 24.19921875, 26.39843750) -[2618682.407] {Default Queue} wl_pointer#3273.motion(187310311, 24.19921875, 26.39843750) -[2618682.413] {Default Queue} wl_pointer#3305.motion(187310311, 24.19921875, 26.39843750) -[2618682.419] {Default Queue} wl_pointer#3337.motion(187310311, 24.19921875, 26.39843750) -[2618682.428] {Default Queue} wl_pointer#3369.motion(187310311, 24.19921875, 26.39843750) -[2618682.435] {Default Queue} wl_pointer#3401.motion(187310311, 24.19921875, 26.39843750) -[2618682.439] {Default Queue} wl_pointer#3433.motion(187310311, 24.19921875, 26.39843750) -[2618682.444] {Default Queue} wl_pointer#3465.motion(187310311, 24.19921875, 26.39843750) -[2618682.448] {Default Queue} wl_pointer#3497.motion(187310311, 24.19921875, 26.39843750) -[2618682.452] {Default Queue} wl_pointer#3529.motion(187310311, 24.19921875, 26.39843750) -[2618682.457] {Default Queue} wl_pointer#3561.motion(187310311, 24.19921875, 26.39843750) -[2618682.461] {Default Queue} wl_pointer#3593.motion(187310311, 24.19921875, 26.39843750) -[2618682.465] {Default Queue} wl_pointer#3625.motion(187310311, 24.19921875, 26.39843750) -[2618682.470] {Default Queue} wl_pointer#3657.motion(187310311, 24.19921875, 26.39843750) -[2618682.474] {Default Queue} wl_pointer#3695.motion(187310311, 24.19921875, 26.39843750) -[2618682.483] {Default Queue} -> wl_region#1983.subtract(0, 0, 22, 51) -[2618682.488] {Default Queue} -> wl_region#1983.add(-20, -49, 19, 48) -[2618682.493] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) -[2618682.497] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) -[2618682.503] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) -[2618682.507] {Default Queue} -> wl_surface#1959.commit() -[2618682.511] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) -[2618682.515] {Default Queue} -> wl_surface#1959.commit() -[2618682.541] {Default Queue} wl_pointer#24.motion(187310316, 23.80078125, 24.39843750) -[2618682.546] {Default Queue} wl_pointer#81.motion(187310316, 23.80078125, 24.39843750) -[2618682.552] {Default Queue} wl_pointer#105.motion(187310316, 23.80078125, 24.39843750) -[2618682.556] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618682.561] {Default Queue} wl_pointer#137.motion(187310316, 23.80078125, 24.39843750) -[2618682.565] {Default Queue} wl_pointer#169.motion(187310316, 23.80078125, 24.39843750) -[2618682.570] {Default Queue} wl_pointer#201.motion(187310316, 23.80078125, 24.39843750) -[2618682.574] {Default Queue} wl_pointer#233.motion(187310316, 23.80078125, 24.39843750) -[2618682.578] {Default Queue} wl_pointer#265.motion(187310316, 23.80078125, 24.39843750) -[2618682.583] {Default Queue} wl_pointer#297.motion(187310316, 23.80078125, 24.39843750) -[2618682.587] {Default Queue} wl_pointer#329.motion(187310316, 23.80078125, 24.39843750) -[2618682.591] {Default Queue} wl_pointer#361.motion(187310316, 23.80078125, 24.39843750) -[2618682.595] {Default Queue} wl_pointer#393.motion(187310316, 23.80078125, 24.39843750) -[2618682.600] {Default Queue} wl_pointer#425.motion(187310316, 23.80078125, 24.39843750) -[2618682.604] {Default Queue} wl_pointer#457.motion(187310316, 23.80078125, 24.39843750) -[2618682.608] {Default Queue} wl_pointer#489.motion(187310316, 23.80078125, 24.39843750) -[2618682.613] {Default Queue} wl_pointer#521.motion(187310316, 23.80078125, 24.39843750) -[2618682.617] {Default Queue} wl_pointer#553.motion(187310316, 23.80078125, 24.39843750) -[2618682.621] {Default Queue} wl_pointer#585.motion(187310316, 23.80078125, 24.39843750) -[2618682.625] {Default Queue} wl_pointer#617.motion(187310316, 23.80078125, 24.39843750) -[2618682.630] {Default Queue} wl_pointer#649.motion(187310316, 23.80078125, 24.39843750) -[2618682.634] {Default Queue} wl_pointer#681.motion(187310316, 23.80078125, 24.39843750) -[2618682.638] {Default Queue} wl_pointer#713.motion(187310316, 23.80078125, 24.39843750) -[2618682.642] {Default Queue} wl_pointer#745.motion(187310316, 23.80078125, 24.39843750) -[2618682.648] {Default Queue} wl_pointer#777.motion(187310316, 23.80078125, 24.39843750) -[2618682.654] {Default Queue} wl_pointer#809.motion(187310316, 23.80078125, 24.39843750) -[2618682.660] {Default Queue} wl_pointer#841.motion(187310316, 23.80078125, 24.39843750) -[2618682.665] {Default Queue} wl_pointer#873.motion(187310316, 23.80078125, 24.39843750) -[2618682.676] {Default Queue} wl_pointer#905.motion(187310316, 23.80078125, 24.39843750) -[2618682.684] {Default Queue} wl_pointer#937.motion(187310316, 23.80078125, 24.39843750) -[2618682.690] {Default Queue} wl_pointer#969.motion(187310316, 23.80078125, 24.39843750) -[2618682.695] {Default Queue} wl_pointer#1001.motion(187310316, 23.80078125, 24.39843750) -[2618682.701] {Default Queue} wl_pointer#1033.motion(187310316, 23.80078125, 24.39843750) -[2618682.707] {Default Queue} wl_pointer#1065.motion(187310316, 23.80078125, 24.39843750) -[2618682.713] {Default Queue} wl_pointer#1097.motion(187310316, 23.80078125, 24.39843750) -[2618682.718] {Default Queue} wl_pointer#1129.motion(187310316, 23.80078125, 24.39843750) -[2618682.722] {Default Queue} wl_pointer#1161.motion(187310316, 23.80078125, 24.39843750) -[2618682.727] {Default Queue} wl_pointer#1193.motion(187310316, 23.80078125, 24.39843750) -[2618682.733] {Default Queue} wl_pointer#1225.motion(187310316, 23.80078125, 24.39843750) -[2618682.738] {Default Queue} wl_pointer#1257.motion(187310316, 23.80078125, 24.39843750) -[2618682.745] {Default Queue} wl_pointer#1289.motion(187310316, 23.80078125, 24.39843750) -[2618682.752] {Default Queue} wl_pointer#1321.motion(187310316, 23.80078125, 24.39843750) -[2618682.759] {Default Queue} wl_pointer#1353.motion(187310316, 23.80078125, 24.39843750) -[2618682.765] {Default Queue} wl_pointer#1385.motion(187310316, 23.80078125, 24.39843750) -[2618682.772] {Default Queue} wl_pointer#1417.motion(187310316, 23.80078125, 24.39843750) -[2618682.779] {Default Queue} wl_pointer#1449.motion(187310316, 23.80078125, 24.39843750) -[2618682.785] {Default Queue} wl_pointer#1481.motion(187310316, 23.80078125, 24.39843750) -[2618682.791] {Default Queue} wl_pointer#1513.motion(187310316, 23.80078125, 24.39843750) -[2618682.796] {Default Queue} wl_pointer#1545.motion(187310316, 23.80078125, 24.39843750) -[2618682.801] {Default Queue} wl_pointer#1577.motion(187310316, 23.80078125, 24.39843750) -[2618682.805] {Default Queue} wl_pointer#1609.motion(187310316, 23.80078125, 24.39843750) -[2618682.811] {Default Queue} wl_pointer#1641.motion(187310316, 23.80078125, 24.39843750) -[2618682.822] {Default Queue} wl_pointer#1673.motion(187310316, 23.80078125, 24.39843750) -[2618682.828] {Default Queue} wl_pointer#1705.motion(187310316, 23.80078125, 24.39843750) -[2618682.833] {Default Queue} wl_pointer#1737.motion(187310316, 23.80078125, 24.39843750) -[2618682.838] {Default Queue} wl_pointer#1762.motion(187310316, 23.80078125, 24.39843750) -[2618682.842] {Default Queue} wl_pointer#1801.motion(187310316, 23.80078125, 24.39843750) -[2618682.846] {Default Queue} wl_pointer#1833.motion(187310316, 23.80078125, 24.39843750) -[2618682.850] {Default Queue} wl_pointer#1865.motion(187310316, 23.80078125, 24.39843750) -[2618682.855] {Default Queue} wl_pointer#1897.motion(187310316, 23.80078125, 24.39843750) -[2618682.859] {Default Queue} wl_pointer#1929.motion(187310316, 23.80078125, 24.39843750) -[2618682.871] {Default Queue} wl_pointer#1961.motion(187310316, 23.80078125, 24.39843750) -[2618682.876] {Default Queue} wl_pointer#1993.motion(187310316, 23.80078125, 24.39843750) -[2618682.880] {Default Queue} wl_pointer#2025.motion(187310316, 23.80078125, 24.39843750) -[2618682.884] {Default Queue} wl_pointer#2057.motion(187310316, 23.80078125, 24.39843750) -[2618682.888] {Default Queue} wl_pointer#2089.motion(187310316, 23.80078125, 24.39843750) -[2618682.893] {Default Queue} wl_pointer#2121.motion(187310316, 23.80078125, 24.39843750) -[2618682.897] {Default Queue} wl_pointer#2153.motion(187310316, 23.80078125, 24.39843750) -[2618682.901] {Default Queue} wl_pointer#2185.motion(187310316, 23.80078125, 24.39843750) -[2618682.905] {Default Queue} wl_pointer#2217.motion(187310316, 23.80078125, 24.39843750) -[2618682.909] {Default Queue} wl_pointer#2249.motion(187310316, 23.80078125, 24.39843750) -[2618682.914] {Default Queue} wl_pointer#2281.motion(187310316, 23.80078125, 24.39843750) -[2618682.918] {Default Queue} wl_pointer#2313.motion(187310316, 23.80078125, 24.39843750) -[2618682.922] {Default Queue} wl_pointer#2345.motion(187310316, 23.80078125, 24.39843750) -[2618682.932] {Default Queue} wl_pointer#2377.motion(187310316, 23.80078125, 24.39843750) -[2618682.939] {Default Queue} wl_pointer#2409.motion(187310316, 23.80078125, 24.39843750) -[2618682.943] {Default Queue} wl_pointer#2441.motion(187310316, 23.80078125, 24.39843750) -[2618682.947] {Default Queue} wl_pointer#2473.motion(187310316, 23.80078125, 24.39843750) -[2618682.952] {Default Queue} wl_pointer#2498.motion(187310316, 23.80078125, 24.39843750) -[2618682.967] {Default Queue} -> wl_buffer#3682.destroy() -[2618682.972] {Default Queue} -> wl_buffer#3681.destroy() -[2618682.976] {Default Queue} -> wl_shm_pool#3671.destroy() -[2618682.980] {Default Queue} -> wl_shm_pool#3679.destroy() -[2618682.985] {Default Queue} -> wl_surface#3684.destroy() -[2618683.029] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3294, fd 581, 640) -[2618683.036] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 582, 640) -[2618683.041] {Default Queue} -> wl_shm_pool#3294.create_buffer(new id wl_buffer#3484, 0, 10, 16, 40, 0) -[2618683.045] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) -[2618683.053] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3292) -[2618683.057] {Default Queue} -> wl_surface#3292.attach(wl_buffer#3484, 0, 0) -[2618683.062] {Default Queue} -> wl_surface#3292.commit() -[2618683.067] {Default Queue} -> wl_surface#3292.attach(wl_buffer#3484, 0, 0) -[2618683.071] {Default Queue} -> wl_surface#3292.commit() -[2618683.075] {Default Queue} wl_pointer#2537.motion(187310316, 23.80078125, 24.39843750) -[2618683.080] {Default Queue} wl_pointer#2569.motion(187310316, 23.80078125, 24.39843750) -[2618683.085] {Default Queue} wl_pointer#2601.motion(187310316, 23.80078125, 24.39843750) -[2618683.089] {Default Queue} wl_pointer#2633.motion(187310316, 23.80078125, 24.39843750) -[2618683.093] {Default Queue} wl_pointer#2665.motion(187310316, 23.80078125, 24.39843750) -[2618683.098] {Default Queue} wl_pointer#2697.motion(187310316, 23.80078125, 24.39843750) -[2618683.102] {Default Queue} wl_pointer#2729.motion(187310316, 23.80078125, 24.39843750) -[2618683.106] {Default Queue} wl_pointer#2761.motion(187310316, 23.80078125, 24.39843750) -[2618683.110] {Default Queue} wl_pointer#2793.motion(187310316, 23.80078125, 24.39843750) -[2618683.115] {Default Queue} wl_pointer#2825.motion(187310316, 23.80078125, 24.39843750) -[2618683.119] {Default Queue} wl_pointer#2857.motion(187310316, 23.80078125, 24.39843750) -[2618683.124] {Default Queue} wl_pointer#2889.motion(187310316, 23.80078125, 24.39843750) -[2618683.128] {Default Queue} wl_pointer#2921.motion(187310316, 23.80078125, 24.39843750) -[2618683.132] {Default Queue} wl_pointer#2953.motion(187310316, 23.80078125, 24.39843750) -[2618683.136] {Default Queue} wl_pointer#2985.motion(187310316, 23.80078125, 24.39843750) -[2618683.141] {Default Queue} wl_pointer#3017.motion(187310316, 23.80078125, 24.39843750) -[2618683.145] {Default Queue} wl_pointer#3049.motion(187310316, 23.80078125, 24.39843750) -[2618683.149] {Default Queue} wl_pointer#3081.motion(187310316, 23.80078125, 24.39843750) -[2618683.153] {Default Queue} wl_pointer#3113.motion(187310316, 23.80078125, 24.39843750) -[2618683.158] {Default Queue} wl_pointer#3145.motion(187310316, 23.80078125, 24.39843750) -[2618683.162] {Default Queue} wl_pointer#3177.motion(187310316, 23.80078125, 24.39843750) -[2618683.166] {Default Queue} wl_pointer#3209.motion(187310316, 23.80078125, 24.39843750) -[2618683.171] {Default Queue} wl_pointer#3241.motion(187310316, 23.80078125, 24.39843750) -[2618683.175] {Default Queue} wl_pointer#3273.motion(187310316, 23.80078125, 24.39843750) -[2618683.179] {Default Queue} wl_pointer#3305.motion(187310316, 23.80078125, 24.39843750) -[2618683.184] {Default Queue} wl_pointer#3337.motion(187310316, 23.80078125, 24.39843750) -[2618683.188] {Default Queue} wl_pointer#3369.motion(187310316, 23.80078125, 24.39843750) -[2618683.192] {Default Queue} wl_pointer#3401.motion(187310316, 23.80078125, 24.39843750) -[2618683.196] {Default Queue} wl_pointer#3433.motion(187310316, 23.80078125, 24.39843750) -[2618683.205] {Default Queue} wl_pointer#3465.motion(187310316, 23.80078125, 24.39843750) -[2618683.211] {Default Queue} wl_pointer#3497.motion(187310316, 23.80078125, 24.39843750) -[2618683.216] {Default Queue} wl_pointer#3529.motion(187310316, 23.80078125, 24.39843750) -[2618683.220] {Default Queue} wl_pointer#3561.motion(187310316, 23.80078125, 24.39843750) -[2618683.225] {Default Queue} wl_pointer#3593.motion(187310316, 23.80078125, 24.39843750) -[2618683.229] {Default Queue} wl_pointer#3625.motion(187310316, 23.80078125, 24.39843750) -[2618683.233] {Default Queue} wl_pointer#3657.motion(187310316, 23.80078125, 24.39843750) -[2618683.238] {Default Queue} wl_pointer#3695.motion(187310316, 23.80078125, 24.39843750) -[2618683.242] {Default Queue} wl_pointer#24.motion(187310316, 23.39843750, 22.00000000) -[2618683.246] {Default Queue} wl_pointer#81.motion(187310316, 23.39843750, 22.00000000) -[2618683.251] {Default Queue} wl_pointer#105.motion(187310316, 23.39843750, 22.00000000) -[2618683.256] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618683.260] {Default Queue} wl_pointer#137.motion(187310316, 23.39843750, 22.00000000) -[2618683.265] {Default Queue} wl_pointer#169.motion(187310316, 23.39843750, 22.00000000) -[2618683.269] {Default Queue} wl_pointer#201.motion(187310316, 23.39843750, 22.00000000) -[2618683.273] {Default Queue} wl_pointer#233.motion(187310316, 23.39843750, 22.00000000) -[2618683.278] {Default Queue} wl_pointer#265.motion(187310316, 23.39843750, 22.00000000) -[2618683.282] {Default Queue} wl_pointer#297.motion(187310316, 23.39843750, 22.00000000) -[2618683.286] {Default Queue} wl_pointer#329.motion(187310316, 23.39843750, 22.00000000) -[2618683.290] {Default Queue} wl_pointer#361.motion(187310316, 23.39843750, 22.00000000) -[2618683.295] {Default Queue} wl_pointer#393.motion(187310316, 23.39843750, 22.00000000) -[2618683.299] {Default Queue} wl_pointer#425.motion(187310316, 23.39843750, 22.00000000) -[2618683.303] {Default Queue} wl_pointer#457.motion(187310316, 23.39843750, 22.00000000) -[2618683.308] {Default Queue} wl_pointer#489.motion(187310316, 23.39843750, 22.00000000) -[2618683.312] {Default Queue} wl_pointer#521.motion(187310316, 23.39843750, 22.00000000) -[2618683.316] {Default Queue} wl_pointer#553.motion(187310316, 23.39843750, 22.00000000) -[2618683.320] {Default Queue} wl_pointer#585.motion(187310316, 23.39843750, 22.00000000) -[2618683.325] {Default Queue} wl_pointer#617.motion(187310316, 23.39843750, 22.00000000) -[2618683.329] {Default Queue} wl_pointer#649.motion(187310316, 23.39843750, 22.00000000) -[2618683.333] {Default Queue} wl_pointer#681.motion(187310316, 23.39843750, 22.00000000) -[2618683.338] {Default Queue} wl_pointer#713.motion(187310316, 23.39843750, 22.00000000) -[2618683.342] {Default Queue} wl_pointer#745.motion(187310316, 23.39843750, 22.00000000) -[2618683.346] {Default Queue} wl_pointer#777.motion(187310316, 23.39843750, 22.00000000) -[2618683.351] {Default Queue} wl_pointer#809.motion(187310316, 23.39843750, 22.00000000) -[2618683.355] {Default Queue} wl_pointer#841.motion(187310316, 23.39843750, 22.00000000) -[2618683.359] {Default Queue} wl_pointer#873.motion(187310316, 23.39843750, 22.00000000) -[2618683.363] {Default Queue} wl_pointer#905.motion(187310316, 23.39843750, 22.00000000) -[2618683.368] {Default Queue} wl_pointer#937.motion(187310316, 23.39843750, 22.00000000) -[2618683.372] {Default Queue} wl_pointer#969.motion(187310316, 23.39843750, 22.00000000) -[2618683.376] {Default Queue} wl_pointer#1001.motion(187310316, 23.39843750, 22.00000000) -[2618683.380] {Default Queue} wl_pointer#1033.motion(187310316, 23.39843750, 22.00000000) -[2618683.385] {Default Queue} wl_pointer#1065.motion(187310316, 23.39843750, 22.00000000) -[2618683.389] {Default Queue} wl_pointer#1097.motion(187310316, 23.39843750, 22.00000000) -[2618683.393] {Default Queue} wl_pointer#1129.motion(187310316, 23.39843750, 22.00000000) -[2618683.398] {Default Queue} wl_pointer#1161.motion(187310316, 23.39843750, 22.00000000) -[2618683.405] {Default Queue} wl_pointer#1193.motion(187310316, 23.39843750, 22.00000000) -[2618683.410] {Default Queue} wl_pointer#1225.motion(187310316, 23.39843750, 22.00000000) -[2618683.415] {Default Queue} wl_pointer#1257.motion(187310316, 23.39843750, 22.00000000) -[2618683.419] {Default Queue} wl_pointer#1289.motion(187310316, 23.39843750, 22.00000000) -[2618683.423] {Default Queue} wl_pointer#1321.motion(187310316, 23.39843750, 22.00000000) -[2618683.428] {Default Queue} wl_pointer#1353.motion(187310316, 23.39843750, 22.00000000) -[2618683.432] {Default Queue} wl_pointer#1385.motion(187310316, 23.39843750, 22.00000000) -[2618683.436] {Default Queue} wl_pointer#1417.motion(187310316, 23.39843750, 22.00000000) -[2618683.440] {Default Queue} wl_pointer#1449.motion(187310316, 23.39843750, 22.00000000) -[2618683.445] {Default Queue} wl_pointer#1481.motion(187310316, 23.39843750, 22.00000000) -[2618683.449] {Default Queue} wl_pointer#1513.motion(187310316, 23.39843750, 22.00000000) -[2618683.453] {Default Queue} wl_pointer#1545.motion(187310316, 23.39843750, 22.00000000) -[2618683.458] {Default Queue} wl_pointer#1577.motion(187310316, 23.39843750, 22.00000000) -[2618683.462] {Default Queue} wl_pointer#1609.motion(187310316, 23.39843750, 22.00000000) -[2618683.466] {Default Queue} wl_pointer#1641.motion(187310316, 23.39843750, 22.00000000) -[2618683.470] {Default Queue} wl_pointer#1673.motion(187310316, 23.39843750, 22.00000000) -[2618683.475] {Default Queue} wl_pointer#1705.motion(187310316, 23.39843750, 22.00000000) -[2618683.479] {Default Queue} wl_pointer#1737.motion(187310316, 23.39843750, 22.00000000) -[2618683.483] {Default Queue} wl_pointer#1762.motion(187310316, 23.39843750, 22.00000000) -[2618683.488] {Default Queue} wl_pointer#1801.motion(187310316, 23.39843750, 22.00000000) -[2618683.492] {Default Queue} wl_pointer#1833.motion(187310316, 23.39843750, 22.00000000) -[2618683.496] {Default Queue} wl_pointer#1865.motion(187310316, 23.39843750, 22.00000000) -[2618683.500] {Default Queue} wl_pointer#1897.motion(187310316, 23.39843750, 22.00000000) -[2618683.505] {Default Queue} wl_pointer#1929.motion(187310316, 23.39843750, 22.00000000) -[2618683.509] {Default Queue} wl_pointer#1961.motion(187310316, 23.39843750, 22.00000000) -[2618683.513] {Default Queue} wl_pointer#1993.motion(187310316, 23.39843750, 22.00000000) -[2618683.517] {Default Queue} wl_pointer#2025.motion(187310316, 23.39843750, 22.00000000) -[2618683.522] {Default Queue} wl_pointer#2057.motion(187310316, 23.39843750, 22.00000000) -[2618683.526] {Default Queue} wl_pointer#2089.motion(187310316, 23.39843750, 22.00000000) -[2618683.530] {Default Queue} wl_pointer#2121.motion(187310316, 23.39843750, 22.00000000) -[2618683.535] {Default Queue} wl_pointer#2153.motion(187310316, 23.39843750, 22.00000000) -[2618683.539] {Default Queue} wl_pointer#2185.motion(187310316, 23.39843750, 22.00000000) -[2618683.543] {Default Queue} wl_pointer#2217.motion(187310316, 23.39843750, 22.00000000) -[2618683.547] {Default Queue} wl_pointer#2249.motion(187310316, 23.39843750, 22.00000000) -[2618683.552] {Default Queue} wl_pointer#2281.motion(187310316, 23.39843750, 22.00000000) -[2618683.556] {Default Queue} wl_pointer#2313.motion(187310316, 23.39843750, 22.00000000) -[2618683.560] {Default Queue} wl_pointer#2345.motion(187310316, 23.39843750, 22.00000000) -[2618683.565] {Default Queue} wl_pointer#2377.motion(187310316, 23.39843750, 22.00000000) -[2618683.569] {Default Queue} wl_pointer#2409.motion(187310316, 23.39843750, 22.00000000) -[2618683.573] {Default Queue} wl_pointer#2441.motion(187310316, 23.39843750, 22.00000000) -[2618683.578] {Default Queue} wl_pointer#2473.motion(187310316, 23.39843750, 22.00000000) -[2618683.582] {Default Queue} wl_pointer#2498.motion(187310316, 23.39843750, 22.00000000) -[2618683.592] {Default Queue} -> wl_buffer#3484.destroy() -[2618683.598] {Default Queue} -> wl_buffer#3293.destroy() -[2618683.602] {Default Queue} -> wl_shm_pool#3294.destroy() -[2618683.606] {Default Queue} -> wl_shm_pool#3291.destroy() -[2618683.611] {Default Queue} -> wl_surface#3292.destroy() -[2618683.643] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3677, fd 583, 640) -[2618683.651] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3676, fd 584, 640) -[2618683.657] {Default Queue} -> wl_shm_pool#3677.create_buffer(new id wl_buffer#3674, 0, 10, 16, 40, 0) -[2618683.662] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 10, 16, 40, 0) -[2618683.669] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3675) -[2618683.673] {Default Queue} -> wl_surface#3675.attach(wl_buffer#3674, 0, 0) -[2618683.677] {Default Queue} -> wl_surface#3675.commit() -[2618683.683] {Default Queue} -> wl_surface#3675.attach(wl_buffer#3674, 0, 0) -[2618683.687] {Default Queue} -> wl_surface#3675.commit() -[2618683.691] {Default Queue} wl_pointer#2537.motion(187310316, 23.39843750, 22.00000000) -[2618683.696] {Default Queue} wl_pointer#2569.motion(187310316, 23.39843750, 22.00000000) -[2618683.702] {Default Queue} wl_pointer#2601.motion(187310316, 23.39843750, 22.00000000) -[2618683.726] {Default Queue} wl_pointer#2633.motion(187310316, 23.39843750, 22.00000000) -[2618683.737] {Default Queue} wl_pointer#2665.motion(187310316, 23.39843750, 22.00000000) -[2618683.743] {Default Queue} wl_pointer#2697.motion(187310316, 23.39843750, 22.00000000) -[2618683.747] {Default Queue} wl_pointer#2729.motion(187310316, 23.39843750, 22.00000000) -[2618683.752] {Default Queue} wl_pointer#2761.motion(187310316, 23.39843750, 22.00000000) -[2618683.756] {Default Queue} wl_pointer#2793.motion(187310316, 23.39843750, 22.00000000) -[2618683.760] {Default Queue} wl_pointer#2825.motion(187310316, 23.39843750, 22.00000000) -[2618683.765] {Default Queue} wl_pointer#2857.motion(187310316, 23.39843750, 22.00000000) -[2618683.770] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) -[2618683.775] {Default Queue} -> wl_surface#1959.commit() -[2618684.843] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) -[2618684.849] {Default Queue} -> wl_surface#1959.commit() -[2618684.856] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) -[2618684.864] {Default Queue} -> wl_surface#1959.commit() -[2618684.870] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) -[2618684.874] {Default Queue} -> wl_surface#1927.commit() -[2618685.941] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) -[2618685.953] {Default Queue} -> wl_surface#1927.commit() -[2618685.969] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) -[2618685.975] {Default Queue} -> wl_region#1951.add(0, 0, 2, 2) -[2618685.980] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618685.986] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618685.995] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) -[2618686.001] {Default Queue} -> wl_region#1951.add(0, 0, 2, 2) -[2618686.006] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618686.011] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618686.018] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) -[2618686.023] {Default Queue} -> wl_region#1951.add(0, 0, 2, 2) -[2618686.029] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618686.034] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618686.041] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) -[2618686.046] {Default Queue} -> wl_region#1951.add(0, 0, 2, 2) -[2618686.051] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618686.056] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618686.064] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) -[2618686.070] {Default Queue} -> wl_region#1951.add(0, 0, 2, 2) -[2618686.075] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618686.080] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618686.086] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) -[2618686.091] {Default Queue} -> wl_surface#1927.commit() -[2618686.096] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) -[2618686.112] {Default Queue} -> wl_surface#1927.commit() -[2618686.123] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) -[2618686.129] {Default Queue} -> wl_surface#1927.commit() -[2618686.136] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) -[2618686.140] {Default Queue} -> wl_surface#871.commit() -[2618686.397] {Display Queue} wl_display#1.delete_id(3515) -[2618686.404] {Display Queue} wl_display#1.delete_id(3516) -[2618686.409] {Display Queue} wl_display#1.delete_id(3485) -[2618686.413] {Display Queue} wl_display#1.delete_id(3486) -[2618686.416] {Display Queue} wl_display#1.delete_id(3483) -[2618686.420] {Display Queue} wl_display#1.delete_id(93) -[2618686.424] {Display Queue} wl_display#1.delete_id(94) -[2618686.428] {Display Queue} wl_display#1.delete_id(91) -[2618686.432] {Display Queue} wl_display#1.delete_id(92) -[2618686.436] {Display Queue} wl_display#1.delete_id(3683) -[2618686.440] {Default Queue} wl_pointer#2889.motion(187310316, 23.39843750, 22.00000000) -[2618686.445] {Default Queue} wl_pointer#2921.motion(187310316, 23.39843750, 22.00000000) -[2618686.450] {Default Queue} wl_pointer#2953.motion(187310316, 23.39843750, 22.00000000) -[2618686.454] {Default Queue} wl_pointer#2985.motion(187310316, 23.39843750, 22.00000000) -[2618686.458] {Default Queue} wl_pointer#3017.motion(187310316, 23.39843750, 22.00000000) -[2618686.463] {Default Queue} wl_pointer#3049.motion(187310316, 23.39843750, 22.00000000) -[2618686.467] {Default Queue} wl_pointer#3081.motion(187310316, 23.39843750, 22.00000000) -[2618686.471] {Default Queue} wl_pointer#3113.motion(187310316, 23.39843750, 22.00000000) -[2618686.476] {Default Queue} wl_pointer#3145.motion(187310316, 23.39843750, 22.00000000) -[2618686.480] {Default Queue} wl_pointer#3177.motion(187310316, 23.39843750, 22.00000000) -[2618686.484] {Default Queue} wl_pointer#3209.motion(187310316, 23.39843750, 22.00000000) -[2618686.489] {Default Queue} wl_pointer#3241.motion(187310316, 23.39843750, 22.00000000) -[2618686.493] {Default Queue} wl_pointer#3273.motion(187310316, 23.39843750, 22.00000000) -[2618686.497] {Default Queue} wl_pointer#3305.motion(187310316, 23.39843750, 22.00000000) -[2618686.502] {Default Queue} wl_pointer#3337.motion(187310316, 23.39843750, 22.00000000) -[2618686.506] {Default Queue} wl_pointer#3369.motion(187310316, 23.39843750, 22.00000000) -[2618686.510] {Default Queue} wl_pointer#3401.motion(187310316, 23.39843750, 22.00000000) -[2618686.515] {Default Queue} wl_pointer#3433.motion(187310316, 23.39843750, 22.00000000) -[2618686.519] {Default Queue} wl_pointer#3465.motion(187310316, 23.39843750, 22.00000000) -[2618686.524] {Default Queue} wl_pointer#3497.motion(187310316, 23.39843750, 22.00000000) -[2618686.528] {Default Queue} wl_pointer#3529.motion(187310316, 23.39843750, 22.00000000) -[2618686.532] {Default Queue} wl_pointer#3561.motion(187310316, 23.39843750, 22.00000000) -[2618686.536] {Default Queue} wl_pointer#3593.motion(187310316, 23.39843750, 22.00000000) -[2618686.541] {Default Queue} wl_pointer#3625.motion(187310316, 23.39843750, 22.00000000) -[2618686.545] {Default Queue} wl_pointer#3657.motion(187310316, 23.39843750, 22.00000000) -[2618686.549] {Default Queue} wl_pointer#3695.motion(187310316, 23.39843750, 22.00000000) -[2618686.557] {Default Queue} -> wl_region#895.subtract(0, 0, 2, 2) -[2618686.563] {Default Queue} -> wl_region#895.add(0, 0, 2, 2) -[2618686.567] {Default Queue} -> wl_surface#871.set_opaque_region(wl_region#896) -[2618686.572] {Default Queue} -> wl_surface#871.set_input_region(wl_region#895) -[2618686.577] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) -[2618686.581] {Default Queue} -> wl_surface#871.commit() -[2618686.585] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) -[2618686.589] {Default Queue} -> wl_surface#871.commit() -[2618686.613] {Default Queue} wl_pointer#24.motion(187310321, 23.00000000, 19.60156250) -[2618686.619] {Default Queue} wl_pointer#81.motion(187310321, 23.00000000, 19.60156250) -[2618686.624] {Default Queue} wl_pointer#105.motion(187310321, 23.00000000, 19.60156250) -[2618686.632] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618686.639] {Default Queue} wl_pointer#137.motion(187310321, 23.00000000, 19.60156250) -[2618686.643] {Default Queue} wl_pointer#169.motion(187310321, 23.00000000, 19.60156250) -[2618686.648] {Default Queue} wl_pointer#201.motion(187310321, 23.00000000, 19.60156250) -[2618686.652] {Default Queue} wl_pointer#233.motion(187310321, 23.00000000, 19.60156250) -[2618686.656] {Default Queue} wl_pointer#265.motion(187310321, 23.00000000, 19.60156250) -[2618686.661] {Default Queue} wl_pointer#297.motion(187310321, 23.00000000, 19.60156250) -[2618686.665] {Default Queue} wl_pointer#329.motion(187310321, 23.00000000, 19.60156250) -[2618686.669] {Default Queue} wl_pointer#361.motion(187310321, 23.00000000, 19.60156250) -[2618686.673] {Default Queue} wl_pointer#393.motion(187310321, 23.00000000, 19.60156250) -[2618686.678] {Default Queue} wl_pointer#425.motion(187310321, 23.00000000, 19.60156250) -[2618686.682] {Default Queue} wl_pointer#457.motion(187310321, 23.00000000, 19.60156250) -[2618686.686] {Default Queue} wl_pointer#489.motion(187310321, 23.00000000, 19.60156250) -[2618686.691] {Default Queue} wl_pointer#521.motion(187310321, 23.00000000, 19.60156250) -[2618686.695] {Default Queue} wl_pointer#553.motion(187310321, 23.00000000, 19.60156250) -[2618686.700] {Default Queue} wl_pointer#585.motion(187310321, 23.00000000, 19.60156250) -[2618686.704] {Default Queue} wl_pointer#617.motion(187310321, 23.00000000, 19.60156250) -[2618686.708] {Default Queue} wl_pointer#649.motion(187310321, 23.00000000, 19.60156250) -[2618686.712] {Default Queue} wl_pointer#681.motion(187310321, 23.00000000, 19.60156250) -[2618686.717] {Default Queue} wl_pointer#713.motion(187310321, 23.00000000, 19.60156250) -[2618686.721] {Default Queue} wl_pointer#745.motion(187310321, 23.00000000, 19.60156250) -[2618686.725] {Default Queue} wl_pointer#777.motion(187310321, 23.00000000, 19.60156250) -[2618686.730] {Default Queue} wl_pointer#809.motion(187310321, 23.00000000, 19.60156250) -[2618686.734] {Default Queue} wl_pointer#841.motion(187310321, 23.00000000, 19.60156250) -[2618686.738] {Default Queue} wl_pointer#873.motion(187310321, 23.00000000, 19.60156250) -[2618686.742] {Default Queue} wl_pointer#905.motion(187310321, 23.00000000, 19.60156250) -[2618686.747] {Default Queue} wl_pointer#937.motion(187310321, 23.00000000, 19.60156250) -[2618686.751] {Default Queue} wl_pointer#969.motion(187310321, 23.00000000, 19.60156250) -[2618686.755] {Default Queue} wl_pointer#1001.motion(187310321, 23.00000000, 19.60156250) -[2618686.760] {Default Queue} wl_pointer#1033.motion(187310321, 23.00000000, 19.60156250) -[2618686.764] {Default Queue} wl_pointer#1065.motion(187310321, 23.00000000, 19.60156250) -[2618686.768] {Default Queue} wl_pointer#1097.motion(187310321, 23.00000000, 19.60156250) -[2618686.772] {Default Queue} wl_pointer#1129.motion(187310321, 23.00000000, 19.60156250) -[2618686.777] {Default Queue} wl_pointer#1161.motion(187310321, 23.00000000, 19.60156250) -[2618686.781] {Default Queue} wl_pointer#1193.motion(187310321, 23.00000000, 19.60156250) -[2618686.786] {Default Queue} wl_pointer#1225.motion(187310321, 23.00000000, 19.60156250) -[2618686.790] {Default Queue} wl_pointer#1257.motion(187310321, 23.00000000, 19.60156250) -[2618686.794] {Default Queue} wl_pointer#1289.motion(187310321, 23.00000000, 19.60156250) -[2618686.798] {Default Queue} wl_pointer#1321.motion(187310321, 23.00000000, 19.60156250) -[2618686.803] {Default Queue} wl_pointer#1353.motion(187310321, 23.00000000, 19.60156250) -[2618686.807] {Default Queue} wl_pointer#1385.motion(187310321, 23.00000000, 19.60156250) -[2618686.811] {Default Queue} wl_pointer#1417.motion(187310321, 23.00000000, 19.60156250) -[2618686.816] {Default Queue} wl_pointer#1449.motion(187310321, 23.00000000, 19.60156250) -[2618686.820] {Default Queue} wl_pointer#1481.motion(187310321, 23.00000000, 19.60156250) -[2618686.824] {Default Queue} wl_pointer#1513.motion(187310321, 23.00000000, 19.60156250) -[2618686.828] {Default Queue} wl_pointer#1545.motion(187310321, 23.00000000, 19.60156250) -[2618686.835] {Default Queue} wl_pointer#1577.motion(187310321, 23.00000000, 19.60156250) -[2618686.841] {Default Queue} wl_pointer#1609.motion(187310321, 23.00000000, 19.60156250) -[2618686.846] {Default Queue} wl_pointer#1641.motion(187310321, 23.00000000, 19.60156250) -[2618686.850] {Default Queue} wl_pointer#1673.motion(187310321, 23.00000000, 19.60156250) -[2618686.855] {Default Queue} wl_pointer#1705.motion(187310321, 23.00000000, 19.60156250) -[2618686.859] {Default Queue} wl_pointer#1737.motion(187310321, 23.00000000, 19.60156250) -[2618686.869] {Default Queue} wl_pointer#1762.motion(187310321, 23.00000000, 19.60156250) -[2618686.874] {Default Queue} wl_pointer#1801.motion(187310321, 23.00000000, 19.60156250) -[2618686.878] {Default Queue} wl_pointer#1833.motion(187310321, 23.00000000, 19.60156250) -[2618686.882] {Default Queue} wl_pointer#1865.motion(187310321, 23.00000000, 19.60156250) -[2618686.887] {Default Queue} wl_pointer#1897.motion(187310321, 23.00000000, 19.60156250) -[2618686.891] {Default Queue} wl_pointer#1929.motion(187310321, 23.00000000, 19.60156250) -[2618686.895] {Default Queue} wl_pointer#1961.motion(187310321, 23.00000000, 19.60156250) -[2618686.900] {Default Queue} wl_pointer#1993.motion(187310321, 23.00000000, 19.60156250) -[2618686.904] {Default Queue} wl_pointer#2025.motion(187310321, 23.00000000, 19.60156250) -[2618686.908] {Default Queue} wl_pointer#2057.motion(187310321, 23.00000000, 19.60156250) -[2618686.913] {Default Queue} wl_pointer#2089.motion(187310321, 23.00000000, 19.60156250) -[2618686.917] {Default Queue} wl_pointer#2121.motion(187310321, 23.00000000, 19.60156250) -[2618686.921] {Default Queue} wl_pointer#2153.motion(187310321, 23.00000000, 19.60156250) -[2618686.926] {Default Queue} wl_pointer#2185.motion(187310321, 23.00000000, 19.60156250) -[2618686.930] {Default Queue} wl_pointer#2217.motion(187310321, 23.00000000, 19.60156250) -[2618686.934] {Default Queue} wl_pointer#2249.motion(187310321, 23.00000000, 19.60156250) -[2618686.939] {Default Queue} wl_pointer#2281.motion(187310321, 23.00000000, 19.60156250) -[2618686.943] {Default Queue} wl_pointer#2313.motion(187310321, 23.00000000, 19.60156250) -[2618686.947] {Default Queue} wl_pointer#2345.motion(187310321, 23.00000000, 19.60156250) -[2618686.952] {Default Queue} wl_pointer#2377.motion(187310321, 23.00000000, 19.60156250) -[2618686.956] {Default Queue} wl_pointer#2409.motion(187310321, 23.00000000, 19.60156250) -[2618686.960] {Default Queue} wl_pointer#2441.motion(187310321, 23.00000000, 19.60156250) -[2618686.965] {Default Queue} wl_pointer#2473.motion(187310321, 23.00000000, 19.60156250) -[2618686.969] {Default Queue} wl_pointer#2498.motion(187310321, 23.00000000, 19.60156250) -[2618686.982] {Default Queue} -> wl_buffer#3674.destroy() -[2618686.986] {Default Queue} -> wl_buffer#3678.destroy() -[2618686.990] {Default Queue} -> wl_shm_pool#3677.destroy() -[2618686.994] {Default Queue} -> wl_shm_pool#3676.destroy() -[2618686.999] {Default Queue} -> wl_surface#3675.destroy() -[2618687.040] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3683, fd 575, 640) -[2618687.046] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 578, 640) -[2618687.051] {Default Queue} -> wl_shm_pool#3683.create_buffer(new id wl_buffer#91, 0, 10, 16, 40, 0) -[2618687.056] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) -[2618687.063] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#93) -[2618687.068] {Default Queue} -> wl_surface#93.attach(wl_buffer#91, 0, 0) -[2618687.072] {Default Queue} -> wl_surface#93.commit() -[2618687.077] {Default Queue} -> wl_surface#93.attach(wl_buffer#91, 0, 0) -[2618687.081] {Default Queue} -> wl_surface#93.commit() -[2618687.086] {Default Queue} wl_pointer#2537.motion(187310321, 23.00000000, 19.60156250) -[2618687.090] {Default Queue} wl_pointer#2569.motion(187310321, 23.00000000, 19.60156250) -[2618687.095] {Default Queue} wl_pointer#2601.motion(187310321, 23.00000000, 19.60156250) -[2618687.102] {Default Queue} wl_pointer#2633.motion(187310321, 23.00000000, 19.60156250) -[2618687.108] {Default Queue} wl_pointer#2665.motion(187310321, 23.00000000, 19.60156250) -[2618687.113] {Default Queue} wl_pointer#2697.motion(187310321, 23.00000000, 19.60156250) -[2618687.117] {Default Queue} wl_pointer#2729.motion(187310321, 23.00000000, 19.60156250) -[2618687.122] {Default Queue} wl_pointer#2761.motion(187310321, 23.00000000, 19.60156250) -[2618687.126] {Default Queue} wl_pointer#2793.motion(187310321, 23.00000000, 19.60156250) -[2618687.130] {Default Queue} wl_pointer#2825.motion(187310321, 23.00000000, 19.60156250) -[2618687.135] {Default Queue} wl_pointer#2857.motion(187310321, 23.00000000, 19.60156250) -[2618687.139] {Default Queue} wl_pointer#2889.motion(187310321, 23.00000000, 19.60156250) -[2618687.143] {Default Queue} wl_pointer#2921.motion(187310321, 23.00000000, 19.60156250) -[2618687.148] {Default Queue} wl_pointer#2953.motion(187310321, 23.00000000, 19.60156250) -[2618687.152] {Default Queue} wl_pointer#2985.motion(187310321, 23.00000000, 19.60156250) -[2618687.156] {Default Queue} wl_pointer#3017.motion(187310321, 23.00000000, 19.60156250) -[2618687.160] {Default Queue} wl_pointer#3049.motion(187310321, 23.00000000, 19.60156250) -[2618687.165] {Default Queue} wl_pointer#3081.motion(187310321, 23.00000000, 19.60156250) -[2618687.169] {Default Queue} wl_pointer#3113.motion(187310321, 23.00000000, 19.60156250) -[2618687.173] {Default Queue} wl_pointer#3145.motion(187310321, 23.00000000, 19.60156250) -[2618687.177] {Default Queue} wl_pointer#3177.motion(187310321, 23.00000000, 19.60156250) -[2618687.182] {Default Queue} wl_pointer#3209.motion(187310321, 23.00000000, 19.60156250) -[2618687.186] {Default Queue} wl_pointer#3241.motion(187310321, 23.00000000, 19.60156250) -[2618687.190] {Default Queue} wl_pointer#3273.motion(187310321, 23.00000000, 19.60156250) -[2618687.195] {Default Queue} wl_pointer#3305.motion(187310321, 23.00000000, 19.60156250) -[2618687.199] {Default Queue} wl_pointer#3337.motion(187310321, 23.00000000, 19.60156250) -[2618687.203] {Default Queue} wl_pointer#3369.motion(187310321, 23.00000000, 19.60156250) -[2618687.207] {Default Queue} wl_pointer#3401.motion(187310321, 23.00000000, 19.60156250) -[2618687.212] {Default Queue} wl_pointer#3433.motion(187310321, 23.00000000, 19.60156250) -[2618687.216] {Default Queue} wl_pointer#3465.motion(187310321, 23.00000000, 19.60156250) -[2618687.221] {Default Queue} wl_pointer#3497.motion(187310321, 23.00000000, 19.60156250) -[2618687.225] {Default Queue} wl_pointer#3529.motion(187310321, 23.00000000, 19.60156250) -[2618687.229] {Default Queue} wl_pointer#3561.motion(187310321, 23.00000000, 19.60156250) -[2618687.234] {Default Queue} wl_pointer#3593.motion(187310321, 23.00000000, 19.60156250) -[2618687.238] {Default Queue} wl_pointer#3625.motion(187310321, 23.00000000, 19.60156250) -[2618687.242] {Default Queue} wl_pointer#3657.motion(187310321, 23.00000000, 19.60156250) -[2618687.247] {Default Queue} wl_pointer#3695.motion(187310321, 23.00000000, 19.60156250) -[2618687.253] {Default Queue} wl_pointer#24.motion(187310321, 22.19921875, 16.39843750) -[2618687.259] {Default Queue} wl_pointer#81.motion(187310321, 22.19921875, 16.39843750) -[2618687.265] {Default Queue} wl_pointer#105.motion(187310321, 22.19921875, 16.39843750) -[2618687.272] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618687.277] {Default Queue} wl_pointer#137.motion(187310321, 22.19921875, 16.39843750) -[2618687.283] {Default Queue} wl_pointer#169.motion(187310321, 22.19921875, 16.39843750) -[2618687.289] {Default Queue} wl_pointer#201.motion(187310321, 22.19921875, 16.39843750) -[2618687.295] {Default Queue} wl_pointer#233.motion(187310321, 22.19921875, 16.39843750) -[2618687.300] {Default Queue} wl_pointer#265.motion(187310321, 22.19921875, 16.39843750) -[2618687.304] {Default Queue} wl_pointer#297.motion(187310321, 22.19921875, 16.39843750) -[2618687.308] {Default Queue} wl_pointer#329.motion(187310321, 22.19921875, 16.39843750) -[2618687.313] {Default Queue} wl_pointer#361.motion(187310321, 22.19921875, 16.39843750) -[2618687.320] {Default Queue} wl_pointer#393.motion(187310321, 22.19921875, 16.39843750) -[2618687.326] {Default Queue} wl_pointer#425.motion(187310321, 22.19921875, 16.39843750) -[2618687.330] {Default Queue} wl_pointer#457.motion(187310321, 22.19921875, 16.39843750) -[2618687.335] {Default Queue} wl_pointer#489.motion(187310321, 22.19921875, 16.39843750) -[2618687.340] {Default Queue} wl_pointer#521.motion(187310321, 22.19921875, 16.39843750) -[2618687.346] {Default Queue} wl_pointer#553.motion(187310321, 22.19921875, 16.39843750) -[2618687.352] {Default Queue} wl_pointer#585.motion(187310321, 22.19921875, 16.39843750) -[2618687.357] {Default Queue} wl_pointer#617.motion(187310321, 22.19921875, 16.39843750) -[2618687.363] {Default Queue} wl_pointer#649.motion(187310321, 22.19921875, 16.39843750) -[2618687.369] {Default Queue} wl_pointer#681.motion(187310321, 22.19921875, 16.39843750) -[2618687.373] {Default Queue} wl_pointer#713.motion(187310321, 22.19921875, 16.39843750) -[2618687.377] {Default Queue} wl_pointer#745.motion(187310321, 22.19921875, 16.39843750) -[2618687.382] {Default Queue} wl_pointer#777.motion(187310321, 22.19921875, 16.39843750) -[2618687.386] {Default Queue} wl_pointer#809.motion(187310321, 22.19921875, 16.39843750) -[2618687.390] {Default Queue} wl_pointer#841.motion(187310321, 22.19921875, 16.39843750) -[2618687.394] {Default Queue} wl_pointer#873.motion(187310321, 22.19921875, 16.39843750) -[2618687.399] {Default Queue} wl_pointer#905.motion(187310321, 22.19921875, 16.39843750) -[2618687.403] {Default Queue} wl_pointer#937.motion(187310321, 22.19921875, 16.39843750) -[2618687.407] {Default Queue} wl_pointer#969.motion(187310321, 22.19921875, 16.39843750) -[2618687.412] {Default Queue} wl_pointer#1001.motion(187310321, 22.19921875, 16.39843750) -[2618687.416] {Default Queue} wl_pointer#1033.motion(187310321, 22.19921875, 16.39843750) -[2618687.420] {Default Queue} wl_pointer#1065.motion(187310321, 22.19921875, 16.39843750) -[2618687.424] {Default Queue} wl_pointer#1097.motion(187310321, 22.19921875, 16.39843750) -[2618687.429] {Default Queue} wl_pointer#1129.motion(187310321, 22.19921875, 16.39843750) -[2618687.433] {Default Queue} wl_pointer#1161.motion(187310321, 22.19921875, 16.39843750) -[2618687.438] {Default Queue} wl_pointer#1193.motion(187310321, 22.19921875, 16.39843750) -[2618687.442] {Default Queue} wl_pointer#1225.motion(187310321, 22.19921875, 16.39843750) -[2618687.446] {Default Queue} wl_pointer#1257.motion(187310321, 22.19921875, 16.39843750) -[2618687.450] {Default Queue} wl_pointer#1289.motion(187310321, 22.19921875, 16.39843750) -[2618687.455] {Default Queue} wl_pointer#1321.motion(187310321, 22.19921875, 16.39843750) -[2618687.459] {Default Queue} wl_pointer#1353.motion(187310321, 22.19921875, 16.39843750) -[2618687.463] {Default Queue} wl_pointer#1385.motion(187310321, 22.19921875, 16.39843750) -[2618687.468] {Default Queue} wl_pointer#1417.motion(187310321, 22.19921875, 16.39843750) -[2618687.472] {Default Queue} wl_pointer#1449.motion(187310321, 22.19921875, 16.39843750) -[2618687.476] {Default Queue} wl_pointer#1481.motion(187310321, 22.19921875, 16.39843750) -[2618687.481] {Default Queue} wl_pointer#1513.motion(187310321, 22.19921875, 16.39843750) -[2618687.485] {Default Queue} wl_pointer#1545.motion(187310321, 22.19921875, 16.39843750) -[2618687.489] {Default Queue} wl_pointer#1577.motion(187310321, 22.19921875, 16.39843750) -[2618687.493] {Default Queue} wl_pointer#1609.motion(187310321, 22.19921875, 16.39843750) -[2618687.498] {Default Queue} wl_pointer#1641.motion(187310321, 22.19921875, 16.39843750) -[2618687.502] {Default Queue} wl_pointer#1673.motion(187310321, 22.19921875, 16.39843750) -[2618687.506] {Default Queue} wl_pointer#1705.motion(187310321, 22.19921875, 16.39843750) -[2618687.511] {Default Queue} wl_pointer#1737.motion(187310321, 22.19921875, 16.39843750) -[2618687.515] {Default Queue} wl_pointer#1762.motion(187310321, 22.19921875, 16.39843750) -[2618687.519] {Default Queue} wl_pointer#1801.motion(187310321, 22.19921875, 16.39843750) -[2618687.524] {Default Queue} wl_pointer#1833.motion(187310321, 22.19921875, 16.39843750) -[2618687.531] {Default Queue} wl_pointer#1865.motion(187310321, 22.19921875, 16.39843750) -[2618687.537] {Default Queue} wl_pointer#1897.motion(187310321, 22.19921875, 16.39843750) -[2618687.541] {Default Queue} wl_pointer#1929.motion(187310321, 22.19921875, 16.39843750) -[2618687.545] {Default Queue} wl_pointer#1961.motion(187310321, 22.19921875, 16.39843750) -[2618687.550] {Default Queue} wl_pointer#1993.motion(187310321, 22.19921875, 16.39843750) -[2618687.554] {Default Queue} wl_pointer#2025.motion(187310321, 22.19921875, 16.39843750) -[2618687.558] {Default Queue} wl_pointer#2057.motion(187310321, 22.19921875, 16.39843750) -[2618687.563] {Default Queue} wl_pointer#2089.motion(187310321, 22.19921875, 16.39843750) -[2618687.567] {Default Queue} wl_pointer#2121.motion(187310321, 22.19921875, 16.39843750) -[2618687.571] {Default Queue} wl_pointer#2153.motion(187310321, 22.19921875, 16.39843750) -[2618687.576] {Default Queue} wl_pointer#2185.motion(187310321, 22.19921875, 16.39843750) -[2618687.580] {Default Queue} wl_pointer#2217.motion(187310321, 22.19921875, 16.39843750) -[2618687.584] {Default Queue} wl_pointer#2249.motion(187310321, 22.19921875, 16.39843750) -[2618687.588] {Default Queue} wl_pointer#2281.motion(187310321, 22.19921875, 16.39843750) -[2618687.593] {Default Queue} wl_pointer#2313.motion(187310321, 22.19921875, 16.39843750) -[2618687.597] {Default Queue} wl_pointer#2345.motion(187310321, 22.19921875, 16.39843750) -[2618687.602] {Default Queue} wl_pointer#2377.motion(187310321, 22.19921875, 16.39843750) -[2618687.606] {Default Queue} wl_pointer#2409.motion(187310321, 22.19921875, 16.39843750) -[2618687.610] {Default Queue} wl_pointer#2441.motion(187310321, 22.19921875, 16.39843750) -[2618687.614] {Default Queue} wl_pointer#2473.motion(187310321, 22.19921875, 16.39843750) -[2618687.619] {Default Queue} wl_pointer#2498.motion(187310321, 22.19921875, 16.39843750) -[2618687.630] {Default Queue} -> wl_buffer#91.destroy() -[2618687.635] {Default Queue} -> wl_buffer#94.destroy() -[2618687.639] {Default Queue} -> wl_shm_pool#3683.destroy() -[2618687.643] {Default Queue} -> wl_shm_pool#92.destroy() -[2618687.648] {Default Queue} -> wl_surface#93.destroy() -[2618687.683] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3483, fd 581, 640) -[2618687.690] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3486, fd 582, 640) -[2618687.694] {Default Queue} -> wl_shm_pool#3483.create_buffer(new id wl_buffer#3485, 0, 10, 16, 40, 0) -[2618687.699] {Default Queue} -> wl_shm_pool#3486.create_buffer(new id wl_buffer#3516, 0, 10, 16, 40, 0) -[2618687.706] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3515) -[2618687.710] {Default Queue} -> wl_surface#3515.attach(wl_buffer#3485, 0, 0) -[2618687.715] {Default Queue} -> wl_surface#3515.commit() -[2618687.720] {Default Queue} -> wl_surface#3515.attach(wl_buffer#3485, 0, 0) -[2618687.724] {Default Queue} -> wl_surface#3515.commit() -[2618687.728] {Default Queue} wl_pointer#2537.motion(187310321, 22.19921875, 16.39843750) -[2618687.733] {Default Queue} wl_pointer#2569.motion(187310321, 22.19921875, 16.39843750) -[2618687.737] {Default Queue} wl_pointer#2601.motion(187310321, 22.19921875, 16.39843750) -[2618687.742] {Default Queue} wl_pointer#2633.motion(187310321, 22.19921875, 16.39843750) -[2618687.746] {Default Queue} wl_pointer#2665.motion(187310321, 22.19921875, 16.39843750) -[2618687.750] {Default Queue} wl_pointer#2697.motion(187310321, 22.19921875, 16.39843750) -[2618687.754] {Default Queue} wl_pointer#2729.motion(187310321, 22.19921875, 16.39843750) -[2618687.759] {Default Queue} wl_pointer#2761.motion(187310321, 22.19921875, 16.39843750) -[2618687.763] {Default Queue} wl_pointer#2793.motion(187310321, 22.19921875, 16.39843750) -[2618687.767] {Default Queue} wl_pointer#2825.motion(187310321, 22.19921875, 16.39843750) -[2618687.772] {Default Queue} wl_pointer#2857.motion(187310321, 22.19921875, 16.39843750) -[2618687.776] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) -[2618687.781] {Default Queue} -> wl_surface#871.commit() -[2618688.850] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) -[2618688.857] {Default Queue} -> wl_surface#871.commit() -[2618688.867] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) -[2618688.872] {Default Queue} -> wl_surface#871.commit() -[2618688.880] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) -[2618688.887] {Default Queue} -> wl_surface#2183.commit() -[2618689.948] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) -[2618689.953] {Default Queue} -> wl_surface#2183.commit() -[2618689.964] {Default Queue} -> wl_region#2207.subtract(0, 0, 19, 48) -[2618689.969] {Default Queue} -> wl_region#2207.add(-20, -49, 19, 48) -[2618689.973] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2618689.977] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2618690.072] {Default Queue} -> wl_region#2207.subtract(0, 0, 19, 48) -[2618690.077] {Default Queue} -> wl_region#2207.add(-20, -49, 19, 48) -[2618690.081] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2618690.086] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2618690.093] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618690.097] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618690.154] {Default Queue} -> wl_region#2207.subtract(0, 0, 19, 48) -[2618690.159] {Default Queue} -> wl_region#2207.add(-20, -49, 19, 48) -[2618690.163] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2618690.167] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2618690.172] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618690.176] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618690.181] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) -[2618690.185] {Default Queue} -> wl_surface#2183.commit() -[2618690.189] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) -[2618690.194] {Default Queue} -> wl_surface#2183.commit() -[2618690.199] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) -[2618690.204] {Default Queue} -> wl_surface#2183.commit() -[2618690.210] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618690.214] {Default Queue} -> wl_surface#2279.commit() -[2618691.276] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618691.282] {Default Queue} -> wl_surface#2279.commit() -[2618691.289] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618691.294] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618691.298] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618691.302] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618691.311] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618691.315] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618691.319] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618691.323] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618691.328] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618691.332] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618691.337] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618691.340] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618691.345] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618691.349] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618691.353] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618691.357] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618691.362] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618691.366] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618691.370] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618691.374] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618691.381] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618691.390] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618691.396] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618691.400] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618691.405] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618691.409] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618691.413] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618691.417] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618691.422] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618691.426] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618691.430] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618691.434] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618691.438] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618691.443] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618691.447] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618691.451] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618691.462] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618691.466] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618691.471] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618691.474] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618691.479] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618691.483] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618691.487] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618691.491] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618691.496] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618691.500] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618691.504] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618691.508] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618691.513] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618691.517] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618691.521] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618691.525] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618691.531] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618691.535] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618691.539] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618691.543] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618691.549] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618691.554] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618691.558] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618691.562] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618691.567] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618691.571] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618691.575] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618691.579] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618691.584] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618691.589] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618691.593] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618691.597] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618691.601] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618691.606] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618691.610] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618691.614] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618691.620] {Default Queue} -> wl_region#2303.subtract(0, 0, 33, 48) -[2618691.625] {Default Queue} -> wl_region#2303.add(-6, -49, 19, 48) -[2618691.629] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618691.636] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618691.649] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618691.654] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618691.659] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618691.663] {Default Queue} -> wl_surface#2279.commit() -[2618691.667] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618691.671] {Default Queue} -> wl_surface#2279.commit() -[2618691.677] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618691.681] {Default Queue} -> wl_surface#2279.commit() -[2618691.687] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) -[2618691.691] {Default Queue} -> wl_surface#2311.commit() -[2618691.978] {Display Queue} wl_display#1.delete_id(3454) -[2618691.984] {Display Queue} wl_display#1.delete_id(3451) -[2618691.988] {Display Queue} wl_display#1.delete_id(3452) -[2618691.992] {Display Queue} wl_display#1.delete_id(3517) -[2618691.996] {Display Queue} wl_display#1.delete_id(3518) -[2618692.000] {Display Queue} wl_display#1.delete_id(3682) -[2618692.004] {Display Queue} wl_display#1.delete_id(3681) -[2618692.008] {Display Queue} wl_display#1.delete_id(3671) -[2618692.012] {Display Queue} wl_display#1.delete_id(3679) -[2618692.016] {Display Queue} wl_display#1.delete_id(3684) -[2618692.020] {Display Queue} wl_display#1.delete_id(3484) -[2618692.024] {Display Queue} wl_display#1.delete_id(3293) -[2618692.028] {Display Queue} wl_display#1.delete_id(3294) -[2618692.032] {Display Queue} wl_display#1.delete_id(3291) -[2618692.036] {Display Queue} wl_display#1.delete_id(3292) -[2618692.040] {Default Queue} wl_pointer#2889.motion(187310321, 22.19921875, 16.39843750) -[2618692.045] {Default Queue} wl_pointer#2921.motion(187310321, 22.19921875, 16.39843750) -[2618692.049] {Default Queue} wl_pointer#2953.motion(187310321, 22.19921875, 16.39843750) -[2618692.053] {Default Queue} wl_pointer#2985.motion(187310321, 22.19921875, 16.39843750) -[2618692.058] {Default Queue} wl_pointer#3017.motion(187310321, 22.19921875, 16.39843750) -[2618692.062] {Default Queue} wl_pointer#3049.motion(187310321, 22.19921875, 16.39843750) -[2618692.066] {Default Queue} wl_pointer#3081.motion(187310321, 22.19921875, 16.39843750) -[2618692.071] {Default Queue} wl_pointer#3113.motion(187310321, 22.19921875, 16.39843750) -[2618692.075] {Default Queue} wl_pointer#3145.motion(187310321, 22.19921875, 16.39843750) -[2618692.079] {Default Queue} wl_pointer#3177.motion(187310321, 22.19921875, 16.39843750) -[2618692.084] {Default Queue} wl_pointer#3209.motion(187310321, 22.19921875, 16.39843750) -[2618692.088] {Default Queue} wl_pointer#3241.motion(187310321, 22.19921875, 16.39843750) -[2618692.093] {Default Queue} wl_pointer#3273.motion(187310321, 22.19921875, 16.39843750) -[2618692.097] {Default Queue} wl_pointer#3305.motion(187310321, 22.19921875, 16.39843750) -[2618692.101] {Default Queue} wl_pointer#3337.motion(187310321, 22.19921875, 16.39843750) -[2618692.105] {Default Queue} wl_pointer#3369.motion(187310321, 22.19921875, 16.39843750) -[2618692.110] {Default Queue} wl_pointer#3401.motion(187310321, 22.19921875, 16.39843750) -[2618692.114] {Default Queue} wl_pointer#3433.motion(187310321, 22.19921875, 16.39843750) -[2618692.119] {Default Queue} wl_pointer#3465.motion(187310321, 22.19921875, 16.39843750) -[2618692.123] {Default Queue} wl_pointer#3497.motion(187310321, 22.19921875, 16.39843750) -[2618692.128] {Default Queue} wl_pointer#3529.motion(187310321, 22.19921875, 16.39843750) -[2618692.132] {Default Queue} wl_pointer#3561.motion(187310321, 22.19921875, 16.39843750) -[2618692.136] {Default Queue} wl_pointer#3593.motion(187310321, 22.19921875, 16.39843750) -[2618692.141] {Default Queue} wl_pointer#3625.motion(187310321, 22.19921875, 16.39843750) -[2618692.145] {Default Queue} wl_pointer#3657.motion(187310321, 22.19921875, 16.39843750) -[2618692.149] {Default Queue} wl_pointer#3695.motion(187310321, 22.19921875, 16.39843750) -[2618692.154] {Default Queue} wl_pointer#24.motion(187310321, 21.80078125, 13.60156250) -[2618692.161] {Default Queue} wl_pointer#81.motion(187310321, 21.80078125, 13.60156250) -[2618692.168] {Default Queue} wl_pointer#105.motion(187310321, 21.80078125, 13.60156250) -[2618692.173] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618692.177] {Default Queue} wl_pointer#137.motion(187310321, 21.80078125, 13.60156250) -[2618692.181] {Default Queue} wl_pointer#169.motion(187310321, 21.80078125, 13.60156250) -[2618692.186] {Default Queue} wl_pointer#201.motion(187310321, 21.80078125, 13.60156250) -[2618692.190] {Default Queue} wl_pointer#233.motion(187310321, 21.80078125, 13.60156250) -[2618692.194] {Default Queue} wl_pointer#265.motion(187310321, 21.80078125, 13.60156250) -[2618692.199] {Default Queue} wl_pointer#297.motion(187310321, 21.80078125, 13.60156250) -[2618692.203] {Default Queue} wl_pointer#329.motion(187310321, 21.80078125, 13.60156250) -[2618692.207] {Default Queue} wl_pointer#361.motion(187310321, 21.80078125, 13.60156250) -[2618692.211] {Default Queue} wl_pointer#393.motion(187310321, 21.80078125, 13.60156250) -[2618692.216] {Default Queue} wl_pointer#425.motion(187310321, 21.80078125, 13.60156250) -[2618692.220] {Default Queue} wl_pointer#457.motion(187310321, 21.80078125, 13.60156250) -[2618692.224] {Default Queue} wl_pointer#489.motion(187310321, 21.80078125, 13.60156250) -[2618692.229] {Default Queue} wl_pointer#521.motion(187310321, 21.80078125, 13.60156250) -[2618692.233] {Default Queue} wl_pointer#553.motion(187310321, 21.80078125, 13.60156250) -[2618692.237] {Default Queue} wl_pointer#585.motion(187310321, 21.80078125, 13.60156250) -[2618692.242] {Default Queue} wl_pointer#617.motion(187310321, 21.80078125, 13.60156250) -[2618692.246] {Default Queue} wl_pointer#649.motion(187310321, 21.80078125, 13.60156250) -[2618692.250] {Default Queue} wl_pointer#681.motion(187310321, 21.80078125, 13.60156250) -[2618692.254] {Default Queue} wl_pointer#713.motion(187310321, 21.80078125, 13.60156250) -[2618692.259] {Default Queue} wl_pointer#745.motion(187310321, 21.80078125, 13.60156250) -[2618692.263] {Default Queue} wl_pointer#777.motion(187310321, 21.80078125, 13.60156250) -[2618692.268] {Default Queue} wl_pointer#809.motion(187310321, 21.80078125, 13.60156250) -[2618692.272] {Default Queue} wl_pointer#841.motion(187310321, 21.80078125, 13.60156250) -[2618692.276] {Default Queue} wl_pointer#873.motion(187310321, 21.80078125, 13.60156250) -[2618692.281] {Default Queue} wl_pointer#905.motion(187310321, 21.80078125, 13.60156250) -[2618692.285] {Default Queue} wl_pointer#937.motion(187310321, 21.80078125, 13.60156250) -[2618692.289] {Default Queue} wl_pointer#969.motion(187310321, 21.80078125, 13.60156250) -[2618692.293] {Default Queue} wl_pointer#1001.motion(187310321, 21.80078125, 13.60156250) -[2618692.298] {Default Queue} wl_pointer#1033.motion(187310321, 21.80078125, 13.60156250) -[2618692.303] {Default Queue} wl_pointer#1065.motion(187310321, 21.80078125, 13.60156250) -[2618692.308] {Default Queue} wl_pointer#1097.motion(187310321, 21.80078125, 13.60156250) -[2618692.314] {Default Queue} wl_pointer#1129.motion(187310321, 21.80078125, 13.60156250) -[2618692.320] {Default Queue} wl_pointer#1161.motion(187310321, 21.80078125, 13.60156250) -[2618692.326] {Default Queue} wl_pointer#1193.motion(187310321, 21.80078125, 13.60156250) -[2618692.331] {Default Queue} wl_pointer#1225.motion(187310321, 21.80078125, 13.60156250) -[2618692.338] {Default Queue} wl_pointer#1257.motion(187310321, 21.80078125, 13.60156250) -[2618692.344] {Default Queue} wl_pointer#1289.motion(187310321, 21.80078125, 13.60156250) -[2618692.350] {Default Queue} wl_pointer#1321.motion(187310321, 21.80078125, 13.60156250) -[2618692.356] {Default Queue} wl_pointer#1353.motion(187310321, 21.80078125, 13.60156250) -[2618692.362] {Default Queue} wl_pointer#1385.motion(187310321, 21.80078125, 13.60156250) -[2618692.368] {Default Queue} wl_pointer#1417.motion(187310321, 21.80078125, 13.60156250) -[2618692.373] {Default Queue} wl_pointer#1449.motion(187310321, 21.80078125, 13.60156250) -[2618692.378] {Default Queue} wl_pointer#1481.motion(187310321, 21.80078125, 13.60156250) -[2618692.385] {Default Queue} wl_pointer#1513.motion(187310321, 21.80078125, 13.60156250) -[2618692.391] {Default Queue} wl_pointer#1545.motion(187310321, 21.80078125, 13.60156250) -[2618692.396] {Default Queue} wl_pointer#1577.motion(187310321, 21.80078125, 13.60156250) -[2618692.400] {Default Queue} wl_pointer#1609.motion(187310321, 21.80078125, 13.60156250) -[2618692.404] {Default Queue} wl_pointer#1641.motion(187310321, 21.80078125, 13.60156250) -[2618692.409] {Default Queue} wl_pointer#1673.motion(187310321, 21.80078125, 13.60156250) -[2618692.413] {Default Queue} wl_pointer#1705.motion(187310321, 21.80078125, 13.60156250) -[2618692.417] {Default Queue} wl_pointer#1737.motion(187310321, 21.80078125, 13.60156250) -[2618692.422] {Default Queue} wl_pointer#1762.motion(187310321, 21.80078125, 13.60156250) -[2618692.426] {Default Queue} wl_pointer#1801.motion(187310321, 21.80078125, 13.60156250) -[2618692.430] {Default Queue} wl_pointer#1833.motion(187310321, 21.80078125, 13.60156250) -[2618692.435] {Default Queue} wl_pointer#1865.motion(187310321, 21.80078125, 13.60156250) -[2618692.439] {Default Queue} wl_pointer#1897.motion(187310321, 21.80078125, 13.60156250) -[2618692.443] {Default Queue} wl_pointer#1929.motion(187310321, 21.80078125, 13.60156250) -[2618692.448] {Default Queue} wl_pointer#1961.motion(187310321, 21.80078125, 13.60156250) -[2618692.452] {Default Queue} wl_pointer#1993.motion(187310321, 21.80078125, 13.60156250) -[2618692.456] {Default Queue} wl_pointer#2025.motion(187310321, 21.80078125, 13.60156250) -[2618692.460] {Default Queue} wl_pointer#2057.motion(187310321, 21.80078125, 13.60156250) -[2618692.465] {Default Queue} wl_pointer#2089.motion(187310321, 21.80078125, 13.60156250) -[2618692.469] {Default Queue} wl_pointer#2121.motion(187310321, 21.80078125, 13.60156250) -[2618692.473] {Default Queue} wl_pointer#2153.motion(187310321, 21.80078125, 13.60156250) -[2618692.478] {Default Queue} wl_pointer#2185.motion(187310321, 21.80078125, 13.60156250) -[2618692.482] {Default Queue} wl_pointer#2217.motion(187310321, 21.80078125, 13.60156250) -[2618692.486] {Default Queue} wl_pointer#2249.motion(187310321, 21.80078125, 13.60156250) -[2618692.490] {Default Queue} wl_pointer#2281.motion(187310321, 21.80078125, 13.60156250) -[2618692.495] {Default Queue} wl_pointer#2313.motion(187310321, 21.80078125, 13.60156250) -[2618692.499] {Default Queue} wl_pointer#2345.motion(187310321, 21.80078125, 13.60156250) -[2618692.504] {Default Queue} wl_pointer#2377.motion(187310321, 21.80078125, 13.60156250) -[2618692.508] {Default Queue} wl_pointer#2409.motion(187310321, 21.80078125, 13.60156250) -[2618692.512] {Default Queue} wl_pointer#2441.motion(187310321, 21.80078125, 13.60156250) -[2618692.517] {Default Queue} wl_pointer#2473.motion(187310321, 21.80078125, 13.60156250) -[2618692.521] {Default Queue} wl_pointer#2498.motion(187310321, 21.80078125, 13.60156250) -[2618692.532] {Default Queue} -> wl_buffer#3485.destroy() -[2618692.539] {Default Queue} -> wl_buffer#3516.destroy() -[2618692.543] {Default Queue} -> wl_shm_pool#3483.destroy() -[2618692.547] {Default Queue} -> wl_shm_pool#3486.destroy() -[2618692.552] {Default Queue} -> wl_surface#3515.destroy() -[2618692.591] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3292, fd 575, 640) -[2618692.597] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 578, 640) -[2618692.602] {Default Queue} -> wl_shm_pool#3292.create_buffer(new id wl_buffer#3294, 0, 10, 16, 40, 0) -[2618692.606] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) -[2618692.614] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3484) -[2618692.618] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) -[2618692.622] {Default Queue} -> wl_surface#3484.commit() -[2618692.628] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) -[2618692.632] {Default Queue} -> wl_surface#3484.commit() -[2618692.636] {Default Queue} wl_pointer#2537.motion(187310321, 21.80078125, 13.60156250) -[2618692.644] {Default Queue} wl_pointer#2569.motion(187310321, 21.80078125, 13.60156250) -[2618692.650] {Default Queue} wl_pointer#2601.motion(187310321, 21.80078125, 13.60156250) -[2618692.654] {Default Queue} wl_pointer#2633.motion(187310321, 21.80078125, 13.60156250) -[2618692.659] {Default Queue} wl_pointer#2665.motion(187310321, 21.80078125, 13.60156250) -[2618692.663] {Default Queue} wl_pointer#2697.motion(187310321, 21.80078125, 13.60156250) -[2618692.667] {Default Queue} wl_pointer#2729.motion(187310321, 21.80078125, 13.60156250) -[2618692.672] {Default Queue} wl_pointer#2761.motion(187310321, 21.80078125, 13.60156250) -[2618692.676] {Default Queue} wl_pointer#2793.motion(187310321, 21.80078125, 13.60156250) -[2618692.680] {Default Queue} wl_pointer#2825.motion(187310321, 21.80078125, 13.60156250) -[2618692.685] {Default Queue} wl_pointer#2857.motion(187310321, 21.80078125, 13.60156250) -[2618692.690] {Default Queue} wl_pointer#2889.motion(187310321, 21.80078125, 13.60156250) -[2618692.696] {Default Queue} wl_pointer#2921.motion(187310321, 21.80078125, 13.60156250) -[2618692.702] {Default Queue} wl_pointer#2953.motion(187310321, 21.80078125, 13.60156250) -[2618692.707] {Default Queue} wl_pointer#2985.motion(187310321, 21.80078125, 13.60156250) -[2618692.713] {Default Queue} wl_pointer#3017.motion(187310321, 21.80078125, 13.60156250) -[2618692.719] {Default Queue} wl_pointer#3049.motion(187310321, 21.80078125, 13.60156250) -[2618692.725] {Default Queue} wl_pointer#3081.motion(187310321, 21.80078125, 13.60156250) -[2618692.730] {Default Queue} wl_pointer#3113.motion(187310321, 21.80078125, 13.60156250) -[2618692.736] {Default Queue} wl_pointer#3145.motion(187310321, 21.80078125, 13.60156250) -[2618692.741] {Default Queue} wl_pointer#3177.motion(187310321, 21.80078125, 13.60156250) -[2618692.746] {Default Queue} wl_pointer#3209.motion(187310321, 21.80078125, 13.60156250) -[2618692.752] {Default Queue} wl_pointer#3241.motion(187310321, 21.80078125, 13.60156250) -[2618692.757] {Default Queue} wl_pointer#3273.motion(187310321, 21.80078125, 13.60156250) -[2618692.761] {Default Queue} wl_pointer#3305.motion(187310321, 21.80078125, 13.60156250) -[2618692.766] {Default Queue} wl_pointer#3337.motion(187310321, 21.80078125, 13.60156250) -[2618692.770] {Default Queue} wl_pointer#3369.motion(187310321, 21.80078125, 13.60156250) -[2618692.774] {Default Queue} wl_pointer#3401.motion(187310321, 21.80078125, 13.60156250) -[2618692.779] {Default Queue} wl_pointer#3433.motion(187310321, 21.80078125, 13.60156250) -[2618692.783] {Default Queue} wl_pointer#3465.motion(187310321, 21.80078125, 13.60156250) -[2618692.788] {Default Queue} wl_pointer#3497.motion(187310321, 21.80078125, 13.60156250) -[2618692.792] {Default Queue} wl_pointer#3529.motion(187310321, 21.80078125, 13.60156250) -[2618692.796] {Default Queue} wl_pointer#3561.motion(187310321, 21.80078125, 13.60156250) -[2618692.801] {Default Queue} wl_pointer#3593.motion(187310321, 21.80078125, 13.60156250) -[2618692.805] {Default Queue} wl_pointer#3625.motion(187310321, 21.80078125, 13.60156250) -[2618692.809] {Default Queue} wl_pointer#3657.motion(187310321, 21.80078125, 13.60156250) -[2618692.813] {Default Queue} wl_pointer#3695.motion(187310321, 21.80078125, 13.60156250) -[2618692.823] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618692.828] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618692.832] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618692.836] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618692.847] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618692.852] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618692.856] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618692.860] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618692.870] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618692.875] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618692.879] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618692.886] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618692.893] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618692.897] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618692.901] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618692.905] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618692.910] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618692.914] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618692.918] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618692.922] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618692.926] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618692.931] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618692.935] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618692.939] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618692.979] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618692.984] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618692.988] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618692.992] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618692.999] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618693.003] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618693.012] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618693.016] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618693.021] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618693.025] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618693.029] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618693.034] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618693.038] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618693.042] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618693.046] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618693.051] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618693.055] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618693.059] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618693.064] {Default Queue} -> wl_region#2335.subtract(0, 0, 22, 51) -[2618693.068] {Default Queue} -> wl_region#2335.add(-23, -52, 22, 31) -[2618693.072] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618693.076] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618693.081] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) -[2618693.085] {Default Queue} -> wl_surface#2311.commit() -[2618693.089] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) -[2618693.093] {Default Queue} -> wl_surface#2311.commit() -[2618693.120] {Default Queue} wl_pointer#24.motion(187310327, 21.00000000, 10.80078125) -[2618693.125] {Default Queue} wl_pointer#81.motion(187310327, 21.00000000, 10.80078125) -[2618693.132] {Default Queue} wl_pointer#105.motion(187310327, 21.00000000, 10.80078125) -[2618693.138] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618693.144] {Default Queue} wl_pointer#137.motion(187310327, 21.00000000, 10.80078125) -[2618693.149] {Default Queue} wl_pointer#169.motion(187310327, 21.00000000, 10.80078125) -[2618693.155] {Default Queue} wl_pointer#201.motion(187310327, 21.00000000, 10.80078125) -[2618693.161] {Default Queue} wl_pointer#233.motion(187310327, 21.00000000, 10.80078125) -[2618693.166] {Default Queue} wl_pointer#265.motion(187310327, 21.00000000, 10.80078125) -[2618693.172] {Default Queue} wl_pointer#297.motion(187310327, 21.00000000, 10.80078125) -[2618693.178] {Default Queue} wl_pointer#329.motion(187310327, 21.00000000, 10.80078125) -[2618693.184] {Default Queue} wl_pointer#361.motion(187310327, 21.00000000, 10.80078125) -[2618693.189] {Default Queue} wl_pointer#393.motion(187310327, 21.00000000, 10.80078125) -[2618693.197] {Default Queue} wl_pointer#425.motion(187310327, 21.00000000, 10.80078125) -[2618693.203] {Default Queue} wl_pointer#457.motion(187310327, 21.00000000, 10.80078125) -[2618693.208] {Default Queue} wl_pointer#489.motion(187310327, 21.00000000, 10.80078125) -[2618693.212] {Default Queue} wl_pointer#521.motion(187310327, 21.00000000, 10.80078125) -[2618693.216] {Default Queue} wl_pointer#553.motion(187310327, 21.00000000, 10.80078125) -[2618693.221] {Default Queue} wl_pointer#585.motion(187310327, 21.00000000, 10.80078125) -[2618693.225] {Default Queue} wl_pointer#617.motion(187310327, 21.00000000, 10.80078125) -[2618693.230] {Default Queue} wl_pointer#649.motion(187310327, 21.00000000, 10.80078125) -[2618693.234] {Default Queue} wl_pointer#681.motion(187310327, 21.00000000, 10.80078125) -[2618693.238] {Default Queue} wl_pointer#713.motion(187310327, 21.00000000, 10.80078125) -[2618693.242] {Default Queue} wl_pointer#745.motion(187310327, 21.00000000, 10.80078125) -[2618693.247] {Default Queue} wl_pointer#777.motion(187310327, 21.00000000, 10.80078125) -[2618693.251] {Default Queue} wl_pointer#809.motion(187310327, 21.00000000, 10.80078125) -[2618693.255] {Default Queue} wl_pointer#841.motion(187310327, 21.00000000, 10.80078125) -[2618693.259] {Default Queue} wl_pointer#873.motion(187310327, 21.00000000, 10.80078125) -[2618693.264] {Default Queue} wl_pointer#905.motion(187310327, 21.00000000, 10.80078125) -[2618693.268] {Default Queue} wl_pointer#937.motion(187310327, 21.00000000, 10.80078125) -[2618693.272] {Default Queue} wl_pointer#969.motion(187310327, 21.00000000, 10.80078125) -[2618693.277] {Default Queue} wl_pointer#1001.motion(187310327, 21.00000000, 10.80078125) -[2618693.281] {Default Queue} wl_pointer#1033.motion(187310327, 21.00000000, 10.80078125) -[2618693.285] {Default Queue} wl_pointer#1065.motion(187310327, 21.00000000, 10.80078125) -[2618693.290] {Default Queue} wl_pointer#1097.motion(187310327, 21.00000000, 10.80078125) -[2618693.294] {Default Queue} wl_pointer#1129.motion(187310327, 21.00000000, 10.80078125) -[2618693.298] {Default Queue} wl_pointer#1161.motion(187310327, 21.00000000, 10.80078125) -[2618693.302] {Default Queue} wl_pointer#1193.motion(187310327, 21.00000000, 10.80078125) -[2618693.307] {Default Queue} wl_pointer#1225.motion(187310327, 21.00000000, 10.80078125) -[2618693.311] {Default Queue} wl_pointer#1257.motion(187310327, 21.00000000, 10.80078125) -[2618693.315] {Default Queue} wl_pointer#1289.motion(187310327, 21.00000000, 10.80078125) -[2618693.320] {Default Queue} wl_pointer#1321.motion(187310327, 21.00000000, 10.80078125) -[2618693.324] {Default Queue} wl_pointer#1353.motion(187310327, 21.00000000, 10.80078125) -[2618693.328] {Default Queue} wl_pointer#1385.motion(187310327, 21.00000000, 10.80078125) -[2618693.332] {Default Queue} wl_pointer#1417.motion(187310327, 21.00000000, 10.80078125) -[2618693.337] {Default Queue} wl_pointer#1449.motion(187310327, 21.00000000, 10.80078125) -[2618693.341] {Default Queue} wl_pointer#1481.motion(187310327, 21.00000000, 10.80078125) -[2618693.345] {Default Queue} wl_pointer#1513.motion(187310327, 21.00000000, 10.80078125) -[2618693.349] {Default Queue} wl_pointer#1545.motion(187310327, 21.00000000, 10.80078125) -[2618693.354] {Default Queue} wl_pointer#1577.motion(187310327, 21.00000000, 10.80078125) -[2618693.358] {Default Queue} wl_pointer#1609.motion(187310327, 21.00000000, 10.80078125) -[2618693.362] {Default Queue} wl_pointer#1641.motion(187310327, 21.00000000, 10.80078125) -[2618693.367] {Default Queue} wl_pointer#1673.motion(187310327, 21.00000000, 10.80078125) -[2618693.371] {Default Queue} wl_pointer#1705.motion(187310327, 21.00000000, 10.80078125) -[2618693.376] {Default Queue} wl_pointer#1737.motion(187310327, 21.00000000, 10.80078125) -[2618693.380] {Default Queue} wl_pointer#1762.motion(187310327, 21.00000000, 10.80078125) -[2618693.384] {Default Queue} wl_pointer#1801.motion(187310327, 21.00000000, 10.80078125) -[2618693.389] {Default Queue} wl_pointer#1833.motion(187310327, 21.00000000, 10.80078125) -[2618693.393] {Default Queue} wl_pointer#1865.motion(187310327, 21.00000000, 10.80078125) -[2618693.401] {Default Queue} wl_pointer#1897.motion(187310327, 21.00000000, 10.80078125) -[2618693.406] {Default Queue} wl_pointer#1929.motion(187310327, 21.00000000, 10.80078125) -[2618693.411] {Default Queue} wl_pointer#1961.motion(187310327, 21.00000000, 10.80078125) -[2618693.415] {Default Queue} wl_pointer#1993.motion(187310327, 21.00000000, 10.80078125) -[2618693.419] {Default Queue} wl_pointer#2025.motion(187310327, 21.00000000, 10.80078125) -[2618693.423] {Default Queue} wl_pointer#2057.motion(187310327, 21.00000000, 10.80078125) -[2618693.428] {Default Queue} wl_pointer#2089.motion(187310327, 21.00000000, 10.80078125) -[2618693.432] {Default Queue} wl_pointer#2121.motion(187310327, 21.00000000, 10.80078125) -[2618693.436] {Default Queue} wl_pointer#2153.motion(187310327, 21.00000000, 10.80078125) -[2618693.441] {Default Queue} wl_pointer#2185.motion(187310327, 21.00000000, 10.80078125) -[2618693.445] {Default Queue} wl_pointer#2217.motion(187310327, 21.00000000, 10.80078125) -[2618693.449] {Default Queue} wl_pointer#2249.motion(187310327, 21.00000000, 10.80078125) -[2618693.453] {Default Queue} wl_pointer#2281.motion(187310327, 21.00000000, 10.80078125) -[2618693.458] {Default Queue} wl_pointer#2313.motion(187310327, 21.00000000, 10.80078125) -[2618693.462] {Default Queue} wl_pointer#2345.motion(187310327, 21.00000000, 10.80078125) -[2618693.467] {Default Queue} wl_pointer#2377.motion(187310327, 21.00000000, 10.80078125) -[2618693.471] {Default Queue} wl_pointer#2409.motion(187310327, 21.00000000, 10.80078125) -[2618693.475] {Default Queue} wl_pointer#2441.motion(187310327, 21.00000000, 10.80078125) -[2618693.480] {Default Queue} wl_pointer#2473.motion(187310327, 21.00000000, 10.80078125) -[2618693.484] {Default Queue} wl_pointer#2498.motion(187310327, 21.00000000, 10.80078125) -[2618693.496] {Default Queue} -> wl_buffer#3294.destroy() -[2618693.501] {Default Queue} -> wl_buffer#3293.destroy() -[2618693.505] {Default Queue} -> wl_shm_pool#3292.destroy() -[2618693.509] {Default Queue} -> wl_shm_pool#3291.destroy() -[2618693.514] {Default Queue} -> wl_surface#3484.destroy() -[2618693.554] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3684, fd 581, 640) -[2618693.561] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 582, 640) -[2618693.565] {Default Queue} -> wl_shm_pool#3684.create_buffer(new id wl_buffer#3671, 0, 10, 16, 40, 0) -[2618693.570] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) -[2618693.577] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3682) -[2618693.581] {Default Queue} -> wl_surface#3682.attach(wl_buffer#3671, 0, 0) -[2618693.586] {Default Queue} -> wl_surface#3682.commit() -[2618693.591] {Default Queue} -> wl_surface#3682.attach(wl_buffer#3671, 0, 0) -[2618693.595] {Default Queue} -> wl_surface#3682.commit() -[2618693.599] {Default Queue} wl_pointer#2537.motion(187310327, 21.00000000, 10.80078125) -[2618693.604] {Default Queue} wl_pointer#2569.motion(187310327, 21.00000000, 10.80078125) -[2618693.608] {Default Queue} wl_pointer#2601.motion(187310327, 21.00000000, 10.80078125) -[2618693.612] {Default Queue} wl_pointer#2633.motion(187310327, 21.00000000, 10.80078125) -[2618693.617] {Default Queue} wl_pointer#2665.motion(187310327, 21.00000000, 10.80078125) -[2618693.621] {Default Queue} wl_pointer#2697.motion(187310327, 21.00000000, 10.80078125) -[2618693.625] {Default Queue} wl_pointer#2729.motion(187310327, 21.00000000, 10.80078125) -[2618693.630] {Default Queue} wl_pointer#2761.motion(187310327, 21.00000000, 10.80078125) -[2618693.634] {Default Queue} wl_pointer#2793.motion(187310327, 21.00000000, 10.80078125) -[2618693.638] {Default Queue} wl_pointer#2825.motion(187310327, 21.00000000, 10.80078125) -[2618693.643] {Default Queue} wl_pointer#2857.motion(187310327, 21.00000000, 10.80078125) -[2618693.647] {Default Queue} wl_pointer#2889.motion(187310327, 21.00000000, 10.80078125) -[2618693.652] {Default Queue} wl_pointer#2921.motion(187310327, 21.00000000, 10.80078125) -[2618693.660] {Default Queue} wl_pointer#2953.motion(187310327, 21.00000000, 10.80078125) -[2618693.666] {Default Queue} wl_pointer#2985.motion(187310327, 21.00000000, 10.80078125) -[2618693.670] {Default Queue} wl_pointer#3017.motion(187310327, 21.00000000, 10.80078125) -[2618693.674] {Default Queue} wl_pointer#3049.motion(187310327, 21.00000000, 10.80078125) -[2618693.679] {Default Queue} wl_pointer#3081.motion(187310327, 21.00000000, 10.80078125) -[2618693.683] {Default Queue} wl_pointer#3113.motion(187310327, 21.00000000, 10.80078125) -[2618693.687] {Default Queue} wl_pointer#3145.motion(187310327, 21.00000000, 10.80078125) -[2618693.691] {Default Queue} wl_pointer#3177.motion(187310327, 21.00000000, 10.80078125) -[2618693.696] {Default Queue} wl_pointer#3209.motion(187310327, 21.00000000, 10.80078125) -[2618693.700] {Default Queue} wl_pointer#3241.motion(187310327, 21.00000000, 10.80078125) -[2618693.705] {Default Queue} wl_pointer#3273.motion(187310327, 21.00000000, 10.80078125) -[2618693.709] {Default Queue} wl_pointer#3305.motion(187310327, 21.00000000, 10.80078125) -[2618693.713] {Default Queue} wl_pointer#3337.motion(187310327, 21.00000000, 10.80078125) -[2618693.717] {Default Queue} wl_pointer#3369.motion(187310327, 21.00000000, 10.80078125) -[2618693.722] {Default Queue} wl_pointer#3401.motion(187310327, 21.00000000, 10.80078125) -[2618693.726] {Default Queue} wl_pointer#3433.motion(187310327, 21.00000000, 10.80078125) -[2618693.730] {Default Queue} wl_pointer#3465.motion(187310327, 21.00000000, 10.80078125) -[2618693.735] {Default Queue} wl_pointer#3497.motion(187310327, 21.00000000, 10.80078125) -[2618693.739] {Default Queue} wl_pointer#3529.motion(187310327, 21.00000000, 10.80078125) -[2618693.743] {Default Queue} wl_pointer#3561.motion(187310327, 21.00000000, 10.80078125) -[2618693.748] {Default Queue} wl_pointer#3593.motion(187310327, 21.00000000, 10.80078125) -[2618693.752] {Default Queue} wl_pointer#3625.motion(187310327, 21.00000000, 10.80078125) -[2618693.756] {Default Queue} wl_pointer#3657.motion(187310327, 21.00000000, 10.80078125) -[2618693.760] {Default Queue} wl_pointer#3695.motion(187310327, 21.00000000, 10.80078125) -[2618693.765] {Default Queue} wl_pointer#24.motion(187310327, 20.19921875, 8.00000000) -[2618693.769] {Default Queue} wl_pointer#81.motion(187310327, 20.19921875, 8.00000000) -[2618693.774] {Default Queue} wl_pointer#105.motion(187310327, 20.19921875, 8.00000000) -[2618693.778] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618693.783] {Default Queue} wl_pointer#137.motion(187310327, 20.19921875, 8.00000000) -[2618693.787] {Default Queue} wl_pointer#169.motion(187310327, 20.19921875, 8.00000000) -[2618693.791] {Default Queue} wl_pointer#201.motion(187310327, 20.19921875, 8.00000000) -[2618693.796] {Default Queue} wl_pointer#233.motion(187310327, 20.19921875, 8.00000000) -[2618693.800] {Default Queue} wl_pointer#265.motion(187310327, 20.19921875, 8.00000000) -[2618693.804] {Default Queue} wl_pointer#297.motion(187310327, 20.19921875, 8.00000000) -[2618693.809] {Default Queue} wl_pointer#329.motion(187310327, 20.19921875, 8.00000000) -[2618693.813] {Default Queue} wl_pointer#361.motion(187310327, 20.19921875, 8.00000000) -[2618693.817] {Default Queue} wl_pointer#393.motion(187310327, 20.19921875, 8.00000000) -[2618693.822] {Default Queue} wl_pointer#425.motion(187310327, 20.19921875, 8.00000000) -[2618693.826] {Default Queue} wl_pointer#457.motion(187310327, 20.19921875, 8.00000000) -[2618693.830] {Default Queue} wl_pointer#489.motion(187310327, 20.19921875, 8.00000000) -[2618693.834] {Default Queue} wl_pointer#521.motion(187310327, 20.19921875, 8.00000000) -[2618693.839] {Default Queue} wl_pointer#553.motion(187310327, 20.19921875, 8.00000000) -[2618693.843] {Default Queue} wl_pointer#585.motion(187310327, 20.19921875, 8.00000000) -[2618693.847] {Default Queue} wl_pointer#617.motion(187310327, 20.19921875, 8.00000000) -[2618693.852] {Default Queue} wl_pointer#649.motion(187310327, 20.19921875, 8.00000000) -[2618693.856] {Default Queue} wl_pointer#681.motion(187310327, 20.19921875, 8.00000000) -[2618693.870] {Default Queue} wl_pointer#713.motion(187310327, 20.19921875, 8.00000000) -[2618693.876] {Default Queue} wl_pointer#745.motion(187310327, 20.19921875, 8.00000000) -[2618693.880] {Default Queue} wl_pointer#777.motion(187310327, 20.19921875, 8.00000000) -[2618693.885] {Default Queue} wl_pointer#809.motion(187310327, 20.19921875, 8.00000000) -[2618693.889] {Default Queue} wl_pointer#841.motion(187310327, 20.19921875, 8.00000000) -[2618693.893] {Default Queue} wl_pointer#873.motion(187310327, 20.19921875, 8.00000000) -[2618693.897] {Default Queue} wl_pointer#905.motion(187310327, 20.19921875, 8.00000000) -[2618693.902] {Default Queue} wl_pointer#937.motion(187310327, 20.19921875, 8.00000000) -[2618693.906] {Default Queue} wl_pointer#969.motion(187310327, 20.19921875, 8.00000000) -[2618693.910] {Default Queue} wl_pointer#1001.motion(187310327, 20.19921875, 8.00000000) -[2618693.915] {Default Queue} wl_pointer#1033.motion(187310327, 20.19921875, 8.00000000) -[2618693.919] {Default Queue} wl_pointer#1065.motion(187310327, 20.19921875, 8.00000000) -[2618693.923] {Default Queue} wl_pointer#1097.motion(187310327, 20.19921875, 8.00000000) -[2618693.927] {Default Queue} wl_pointer#1129.motion(187310327, 20.19921875, 8.00000000) -[2618693.932] {Default Queue} wl_pointer#1161.motion(187310327, 20.19921875, 8.00000000) -[2618693.936] {Default Queue} wl_pointer#1193.motion(187310327, 20.19921875, 8.00000000) -[2618693.940] {Default Queue} wl_pointer#1225.motion(187310327, 20.19921875, 8.00000000) -[2618693.944] {Default Queue} wl_pointer#1257.motion(187310327, 20.19921875, 8.00000000) -[2618693.949] {Default Queue} wl_pointer#1289.motion(187310327, 20.19921875, 8.00000000) -[2618693.953] {Default Queue} wl_pointer#1321.motion(187310327, 20.19921875, 8.00000000) -[2618693.957] {Default Queue} wl_pointer#1353.motion(187310327, 20.19921875, 8.00000000) -[2618693.961] {Default Queue} wl_pointer#1385.motion(187310327, 20.19921875, 8.00000000) -[2618693.966] {Default Queue} wl_pointer#1417.motion(187310327, 20.19921875, 8.00000000) -[2618693.970] {Default Queue} wl_pointer#1449.motion(187310327, 20.19921875, 8.00000000) -[2618693.974] {Default Queue} wl_pointer#1481.motion(187310327, 20.19921875, 8.00000000) -[2618693.979] {Default Queue} wl_pointer#1513.motion(187310327, 20.19921875, 8.00000000) -[2618693.983] {Default Queue} wl_pointer#1545.motion(187310327, 20.19921875, 8.00000000) -[2618693.987] {Default Queue} wl_pointer#1577.motion(187310327, 20.19921875, 8.00000000) -[2618693.991] {Default Queue} wl_pointer#1609.motion(187310327, 20.19921875, 8.00000000) -[2618693.996] {Default Queue} wl_pointer#1641.motion(187310327, 20.19921875, 8.00000000) -[2618694.000] {Default Queue} wl_pointer#1673.motion(187310327, 20.19921875, 8.00000000) -[2618694.004] {Default Queue} wl_pointer#1705.motion(187310327, 20.19921875, 8.00000000) -[2618694.009] {Default Queue} wl_pointer#1737.motion(187310327, 20.19921875, 8.00000000) -[2618694.013] {Default Queue} wl_pointer#1762.motion(187310327, 20.19921875, 8.00000000) -[2618694.017] {Default Queue} wl_pointer#1801.motion(187310327, 20.19921875, 8.00000000) -[2618694.021] {Default Queue} wl_pointer#1833.motion(187310327, 20.19921875, 8.00000000) -[2618694.026] {Default Queue} wl_pointer#1865.motion(187310327, 20.19921875, 8.00000000) -[2618694.030] {Default Queue} wl_pointer#1897.motion(187310327, 20.19921875, 8.00000000) -[2618694.034] {Default Queue} wl_pointer#1929.motion(187310327, 20.19921875, 8.00000000) -[2618694.038] {Default Queue} wl_pointer#1961.motion(187310327, 20.19921875, 8.00000000) -[2618694.043] {Default Queue} wl_pointer#1993.motion(187310327, 20.19921875, 8.00000000) -[2618694.047] {Default Queue} wl_pointer#2025.motion(187310327, 20.19921875, 8.00000000) -[2618694.051] {Default Queue} wl_pointer#2057.motion(187310327, 20.19921875, 8.00000000) -[2618694.055] {Default Queue} wl_pointer#2089.motion(187310327, 20.19921875, 8.00000000) -[2618694.060] {Default Queue} wl_pointer#2121.motion(187310327, 20.19921875, 8.00000000) -[2618694.064] {Default Queue} wl_pointer#2153.motion(187310327, 20.19921875, 8.00000000) -[2618694.071] {Default Queue} wl_pointer#2185.motion(187310327, 20.19921875, 8.00000000) -[2618694.077] {Default Queue} wl_pointer#2217.motion(187310327, 20.19921875, 8.00000000) -[2618694.081] {Default Queue} wl_pointer#2249.motion(187310327, 20.19921875, 8.00000000) -[2618694.085] {Default Queue} wl_pointer#2281.motion(187310327, 20.19921875, 8.00000000) -[2618694.090] {Default Queue} wl_pointer#2313.motion(187310327, 20.19921875, 8.00000000) -[2618694.094] {Default Queue} wl_pointer#2345.motion(187310327, 20.19921875, 8.00000000) -[2618694.099] {Default Queue} wl_pointer#2377.motion(187310327, 20.19921875, 8.00000000) -[2618694.103] {Default Queue} wl_pointer#2409.motion(187310327, 20.19921875, 8.00000000) -[2618694.107] {Default Queue} wl_pointer#2441.motion(187310327, 20.19921875, 8.00000000) -[2618694.111] {Default Queue} wl_pointer#2473.motion(187310327, 20.19921875, 8.00000000) -[2618694.116] {Default Queue} wl_pointer#2498.motion(187310327, 20.19921875, 8.00000000) -[2618694.125] {Default Queue} -> wl_buffer#3671.destroy() -[2618694.130] {Default Queue} -> wl_buffer#3681.destroy() -[2618694.134] {Default Queue} -> wl_shm_pool#3684.destroy() -[2618694.138] {Default Queue} -> wl_shm_pool#3679.destroy() -[2618694.143] {Default Queue} -> wl_surface#3682.destroy() -[2618694.176] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3518, fd 583, 640) -[2618694.182] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3517, fd 584, 640) -[2618694.186] {Default Queue} -> wl_shm_pool#3518.create_buffer(new id wl_buffer#3452, 0, 10, 16, 40, 0) -[2618694.190] {Default Queue} -> wl_shm_pool#3517.create_buffer(new id wl_buffer#3451, 0, 10, 16, 40, 0) -[2618694.197] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3454) -[2618694.201] {Default Queue} -> wl_surface#3454.attach(wl_buffer#3452, 0, 0) -[2618694.206] {Default Queue} -> wl_surface#3454.commit() -[2618694.211] {Default Queue} -> wl_surface#3454.attach(wl_buffer#3452, 0, 0) -[2618694.215] {Default Queue} -> wl_surface#3454.commit() -[2618694.219] {Default Queue} wl_pointer#2537.motion(187310327, 20.19921875, 8.00000000) -[2618694.224] {Default Queue} wl_pointer#2569.motion(187310327, 20.19921875, 8.00000000) -[2618694.228] {Default Queue} wl_pointer#2601.motion(187310327, 20.19921875, 8.00000000) -[2618694.232] {Default Queue} wl_pointer#2633.motion(187310327, 20.19921875, 8.00000000) -[2618694.236] {Default Queue} wl_pointer#2665.motion(187310327, 20.19921875, 8.00000000) -[2618694.241] {Default Queue} wl_pointer#2697.motion(187310327, 20.19921875, 8.00000000) -[2618694.245] {Default Queue} wl_pointer#2729.motion(187310327, 20.19921875, 8.00000000) -[2618694.249] {Default Queue} wl_pointer#2761.motion(187310327, 20.19921875, 8.00000000) -[2618694.254] {Default Queue} wl_pointer#2793.motion(187310327, 20.19921875, 8.00000000) -[2618694.258] {Default Queue} wl_pointer#2825.motion(187310327, 20.19921875, 8.00000000) -[2618694.262] {Default Queue} wl_pointer#2857.motion(187310327, 20.19921875, 8.00000000) -[2618694.267] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) -[2618694.271] {Default Queue} -> wl_surface#2311.commit() -[2618695.338] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) -[2618695.343] {Default Queue} -> wl_surface#2311.commit() -[2618695.349] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) -[2618695.353] {Default Queue} -> wl_surface#2311.commit() -[2618695.360] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) -[2618695.364] {Default Queue} -> wl_surface#2247.commit() -[2618696.424] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) -[2618696.429] {Default Queue} -> wl_surface#2247.commit() -[2618696.438] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) -[2618696.443] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) -[2618696.447] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618696.451] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618696.462] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) -[2618696.470] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) -[2618696.477] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618696.481] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618696.486] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) -[2618696.490] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) -[2618696.494] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618696.498] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618696.503] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) -[2618696.507] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) -[2618696.511] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618696.515] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618696.520] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) -[2618696.524] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) -[2618696.528] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618696.532] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618696.616] {Default Queue} -> wl_region#2271.subtract(0, 0, 19, 48) -[2618696.621] {Default Queue} -> wl_region#2271.add(-20, -49, 19, 48) -[2618696.625] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618696.631] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618696.639] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618696.646] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618696.654] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) -[2618696.660] {Default Queue} -> wl_surface#2247.commit() -[2618696.664] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) -[2618696.668] {Default Queue} -> wl_surface#2247.commit() -[2618696.708] {Display Queue} wl_display#1.delete_id(3674) -[2618696.715] {Display Queue} wl_display#1.delete_id(3678) -[2618696.721] {Display Queue} wl_display#1.delete_id(3677) -[2618696.726] {Display Queue} wl_display#1.delete_id(3676) -[2618696.732] {Display Queue} wl_display#1.delete_id(3675) -[2618696.737] {Display Queue} wl_display#1.delete_id(91) -[2618696.742] {Display Queue} wl_display#1.delete_id(94) -[2618696.747] {Display Queue} wl_display#1.delete_id(3683) -[2618696.752] {Display Queue} wl_display#1.delete_id(92) -[2618696.756] {Display Queue} wl_display#1.delete_id(93) -[2618696.761] {Default Queue} wl_pointer#2889.motion(187310327, 20.19921875, 8.00000000) -[2618696.765] {Default Queue} wl_pointer#2921.motion(187310327, 20.19921875, 8.00000000) -[2618696.770] {Default Queue} wl_pointer#2953.motion(187310327, 20.19921875, 8.00000000) -[2618696.774] {Default Queue} wl_pointer#2985.motion(187310327, 20.19921875, 8.00000000) -[2618696.778] {Default Queue} wl_pointer#3017.motion(187310327, 20.19921875, 8.00000000) -[2618696.783] {Default Queue} wl_pointer#3049.motion(187310327, 20.19921875, 8.00000000) -[2618696.787] {Default Queue} wl_pointer#3081.motion(187310327, 20.19921875, 8.00000000) -[2618696.791] {Default Queue} wl_pointer#3113.motion(187310327, 20.19921875, 8.00000000) -[2618696.796] {Default Queue} wl_pointer#3145.motion(187310327, 20.19921875, 8.00000000) -[2618696.800] {Default Queue} wl_pointer#3177.motion(187310327, 20.19921875, 8.00000000) -[2618696.804] {Default Queue} wl_pointer#3209.motion(187310327, 20.19921875, 8.00000000) -[2618696.809] {Default Queue} wl_pointer#3241.motion(187310327, 20.19921875, 8.00000000) -[2618696.813] {Default Queue} wl_pointer#3273.motion(187310327, 20.19921875, 8.00000000) -[2618696.817] {Default Queue} wl_pointer#3305.motion(187310327, 20.19921875, 8.00000000) -[2618696.822] {Default Queue} wl_pointer#3337.motion(187310327, 20.19921875, 8.00000000) -[2618696.826] {Default Queue} wl_pointer#3369.motion(187310327, 20.19921875, 8.00000000) -[2618696.830] {Default Queue} wl_pointer#3401.motion(187310327, 20.19921875, 8.00000000) -[2618696.834] {Default Queue} wl_pointer#3433.motion(187310327, 20.19921875, 8.00000000) -[2618696.839] {Default Queue} wl_pointer#3465.motion(187310327, 20.19921875, 8.00000000) -[2618696.848] {Default Queue} wl_pointer#3497.motion(187310327, 20.19921875, 8.00000000) -[2618696.854] {Default Queue} wl_pointer#3529.motion(187310327, 20.19921875, 8.00000000) -[2618696.858] {Default Queue} wl_pointer#3561.motion(187310327, 20.19921875, 8.00000000) -[2618696.867] {Default Queue} wl_pointer#3593.motion(187310327, 20.19921875, 8.00000000) -[2618696.890] {Default Queue} wl_pointer#3625.motion(187310327, 20.19921875, 8.00000000) -[2618696.900] {Default Queue} wl_pointer#3657.motion(187310327, 20.19921875, 8.00000000) -[2618696.905] {Default Queue} wl_pointer#3695.motion(187310327, 20.19921875, 8.00000000) -[2618696.910] {Default Queue} wl_pointer#24.motion(187310327, 19.39843750, 5.19921875) -[2618696.915] {Default Queue} wl_pointer#81.motion(187310327, 19.39843750, 5.19921875) -[2618696.921] {Default Queue} wl_pointer#105.motion(187310327, 19.39843750, 5.19921875) -[2618696.926] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618696.931] {Default Queue} wl_pointer#137.motion(187310327, 19.39843750, 5.19921875) -[2618696.935] {Default Queue} wl_pointer#169.motion(187310327, 19.39843750, 5.19921875) -[2618696.940] {Default Queue} wl_pointer#201.motion(187310327, 19.39843750, 5.19921875) -[2618696.944] {Default Queue} wl_pointer#233.motion(187310327, 19.39843750, 5.19921875) -[2618696.948] {Default Queue} wl_pointer#265.motion(187310327, 19.39843750, 5.19921875) -[2618696.952] {Default Queue} wl_pointer#297.motion(187310327, 19.39843750, 5.19921875) -[2618696.957] {Default Queue} wl_pointer#329.motion(187310327, 19.39843750, 5.19921875) -[2618696.961] {Default Queue} wl_pointer#361.motion(187310327, 19.39843750, 5.19921875) -[2618696.965] {Default Queue} wl_pointer#393.motion(187310327, 19.39843750, 5.19921875) -[2618696.970] {Default Queue} wl_pointer#425.motion(187310327, 19.39843750, 5.19921875) -[2618696.974] {Default Queue} wl_pointer#457.motion(187310327, 19.39843750, 5.19921875) -[2618696.978] {Default Queue} wl_pointer#489.motion(187310327, 19.39843750, 5.19921875) -[2618696.983] {Default Queue} wl_pointer#521.motion(187310327, 19.39843750, 5.19921875) -[2618696.987] {Default Queue} wl_pointer#553.motion(187310327, 19.39843750, 5.19921875) -[2618696.991] {Default Queue} wl_pointer#585.motion(187310327, 19.39843750, 5.19921875) -[2618696.996] {Default Queue} wl_pointer#617.motion(187310327, 19.39843750, 5.19921875) -[2618697.000] {Default Queue} wl_pointer#649.motion(187310327, 19.39843750, 5.19921875) -[2618697.004] {Default Queue} wl_pointer#681.motion(187310327, 19.39843750, 5.19921875) -[2618697.009] {Default Queue} wl_pointer#713.motion(187310327, 19.39843750, 5.19921875) -[2618697.013] {Default Queue} wl_pointer#745.motion(187310327, 19.39843750, 5.19921875) -[2618697.017] {Default Queue} wl_pointer#777.motion(187310327, 19.39843750, 5.19921875) -[2618697.022] {Default Queue} wl_pointer#809.motion(187310327, 19.39843750, 5.19921875) -[2618697.026] {Default Queue} wl_pointer#841.motion(187310327, 19.39843750, 5.19921875) -[2618697.030] {Default Queue} wl_pointer#873.motion(187310327, 19.39843750, 5.19921875) -[2618697.035] {Default Queue} wl_pointer#905.motion(187310327, 19.39843750, 5.19921875) -[2618697.039] {Default Queue} wl_pointer#937.motion(187310327, 19.39843750, 5.19921875) -[2618697.043] {Default Queue} wl_pointer#969.motion(187310327, 19.39843750, 5.19921875) -[2618697.048] {Default Queue} wl_pointer#1001.motion(187310327, 19.39843750, 5.19921875) -[2618697.052] {Default Queue} wl_pointer#1033.motion(187310327, 19.39843750, 5.19921875) -[2618697.056] {Default Queue} wl_pointer#1065.motion(187310327, 19.39843750, 5.19921875) -[2618697.060] {Default Queue} wl_pointer#1097.motion(187310327, 19.39843750, 5.19921875) -[2618697.065] {Default Queue} wl_pointer#1129.motion(187310327, 19.39843750, 5.19921875) -[2618697.069] {Default Queue} wl_pointer#1161.motion(187310327, 19.39843750, 5.19921875) -[2618697.073] {Default Queue} wl_pointer#1193.motion(187310327, 19.39843750, 5.19921875) -[2618697.078] {Default Queue} wl_pointer#1225.motion(187310327, 19.39843750, 5.19921875) -[2618697.087] {Default Queue} wl_pointer#1257.motion(187310327, 19.39843750, 5.19921875) -[2618697.095] {Default Queue} wl_pointer#1289.motion(187310327, 19.39843750, 5.19921875) -[2618697.099] {Default Queue} wl_pointer#1321.motion(187310327, 19.39843750, 5.19921875) -[2618697.104] {Default Queue} wl_pointer#1353.motion(187310327, 19.39843750, 5.19921875) -[2618697.108] {Default Queue} wl_pointer#1385.motion(187310327, 19.39843750, 5.19921875) -[2618697.112] {Default Queue} wl_pointer#1417.motion(187310327, 19.39843750, 5.19921875) -[2618697.117] {Default Queue} wl_pointer#1449.motion(187310327, 19.39843750, 5.19921875) -[2618697.121] {Default Queue} wl_pointer#1481.motion(187310327, 19.39843750, 5.19921875) -[2618697.125] {Default Queue} wl_pointer#1513.motion(187310327, 19.39843750, 5.19921875) -[2618697.129] {Default Queue} wl_pointer#1545.motion(187310327, 19.39843750, 5.19921875) -[2618697.134] {Default Queue} wl_pointer#1577.motion(187310327, 19.39843750, 5.19921875) -[2618697.138] {Default Queue} wl_pointer#1609.motion(187310327, 19.39843750, 5.19921875) -[2618697.142] {Default Queue} wl_pointer#1641.motion(187310327, 19.39843750, 5.19921875) -[2618697.147] {Default Queue} wl_pointer#1673.motion(187310327, 19.39843750, 5.19921875) -[2618697.151] {Default Queue} wl_pointer#1705.motion(187310327, 19.39843750, 5.19921875) -[2618697.155] {Default Queue} wl_pointer#1737.motion(187310327, 19.39843750, 5.19921875) -[2618697.160] {Default Queue} wl_pointer#1762.motion(187310327, 19.39843750, 5.19921875) -[2618697.164] {Default Queue} wl_pointer#1801.motion(187310327, 19.39843750, 5.19921875) -[2618697.168] {Default Queue} wl_pointer#1833.motion(187310327, 19.39843750, 5.19921875) -[2618697.173] {Default Queue} wl_pointer#1865.motion(187310327, 19.39843750, 5.19921875) -[2618697.177] {Default Queue} wl_pointer#1897.motion(187310327, 19.39843750, 5.19921875) -[2618697.181] {Default Queue} wl_pointer#1929.motion(187310327, 19.39843750, 5.19921875) -[2618697.185] {Default Queue} wl_pointer#1961.motion(187310327, 19.39843750, 5.19921875) -[2618697.190] {Default Queue} wl_pointer#1993.motion(187310327, 19.39843750, 5.19921875) -[2618697.194] {Default Queue} wl_pointer#2025.motion(187310327, 19.39843750, 5.19921875) -[2618697.198] {Default Queue} wl_pointer#2057.motion(187310327, 19.39843750, 5.19921875) -[2618697.203] {Default Queue} wl_pointer#2089.motion(187310327, 19.39843750, 5.19921875) -[2618697.207] {Default Queue} wl_pointer#2121.motion(187310327, 19.39843750, 5.19921875) -[2618697.211] {Default Queue} wl_pointer#2153.motion(187310327, 19.39843750, 5.19921875) -[2618697.215] {Default Queue} wl_pointer#2185.motion(187310327, 19.39843750, 5.19921875) -[2618697.220] {Default Queue} wl_pointer#2217.motion(187310327, 19.39843750, 5.19921875) -[2618697.224] {Default Queue} wl_pointer#2249.motion(187310327, 19.39843750, 5.19921875) -[2618697.228] {Default Queue} wl_pointer#2281.motion(187310327, 19.39843750, 5.19921875) -[2618697.232] {Default Queue} wl_pointer#2313.motion(187310327, 19.39843750, 5.19921875) -[2618697.237] {Default Queue} wl_pointer#2345.motion(187310327, 19.39843750, 5.19921875) -[2618697.242] {Default Queue} wl_pointer#2377.motion(187310327, 19.39843750, 5.19921875) -[2618697.246] {Default Queue} wl_pointer#2409.motion(187310327, 19.39843750, 5.19921875) -[2618697.250] {Default Queue} wl_pointer#2441.motion(187310327, 19.39843750, 5.19921875) -[2618697.254] {Default Queue} wl_pointer#2473.motion(187310327, 19.39843750, 5.19921875) -[2618697.259] {Default Queue} wl_pointer#2498.motion(187310327, 19.39843750, 5.19921875) -[2618697.272] {Default Queue} -> wl_buffer#3452.destroy() -[2618697.277] {Default Queue} -> wl_buffer#3451.destroy() -[2618697.281] {Default Queue} -> wl_shm_pool#3518.destroy() -[2618697.285] {Default Queue} -> wl_shm_pool#3517.destroy() -[2618697.291] {Default Queue} -> wl_surface#3454.destroy() -[2618697.338] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#93, fd 575, 640) -[2618697.344] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 578, 640) -[2618697.349] {Default Queue} -> wl_shm_pool#93.create_buffer(new id wl_buffer#3683, 0, 10, 16, 40, 0) -[2618697.357] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) -[2618697.367] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#91) -[2618697.372] {Default Queue} -> wl_surface#91.attach(wl_buffer#3683, 0, 0) -[2618697.376] {Default Queue} -> wl_surface#91.commit() -[2618697.382] {Default Queue} -> wl_surface#91.attach(wl_buffer#3683, 0, 0) -[2618697.386] {Default Queue} -> wl_surface#91.commit() -[2618697.391] {Default Queue} wl_pointer#2537.motion(187310327, 19.39843750, 5.19921875) -[2618697.396] {Default Queue} wl_pointer#2569.motion(187310327, 19.39843750, 5.19921875) -[2618697.400] {Default Queue} wl_pointer#2601.motion(187310327, 19.39843750, 5.19921875) -[2618697.405] {Default Queue} wl_pointer#2633.motion(187310327, 19.39843750, 5.19921875) -[2618697.409] {Default Queue} wl_pointer#2665.motion(187310327, 19.39843750, 5.19921875) -[2618697.413] {Default Queue} wl_pointer#2697.motion(187310327, 19.39843750, 5.19921875) -[2618697.417] {Default Queue} wl_pointer#2729.motion(187310327, 19.39843750, 5.19921875) -[2618697.422] {Default Queue} wl_pointer#2761.motion(187310327, 19.39843750, 5.19921875) -[2618697.426] {Default Queue} wl_pointer#2793.motion(187310327, 19.39843750, 5.19921875) -[2618697.431] {Default Queue} wl_pointer#2825.motion(187310327, 19.39843750, 5.19921875) -[2618697.435] {Default Queue} wl_pointer#2857.motion(187310327, 19.39843750, 5.19921875) -[2618697.439] {Default Queue} wl_pointer#2889.motion(187310327, 19.39843750, 5.19921875) -[2618697.444] {Default Queue} wl_pointer#2921.motion(187310327, 19.39843750, 5.19921875) -[2618697.448] {Default Queue} wl_pointer#2953.motion(187310327, 19.39843750, 5.19921875) -[2618697.452] {Default Queue} wl_pointer#2985.motion(187310327, 19.39843750, 5.19921875) -[2618697.457] {Default Queue} wl_pointer#3017.motion(187310327, 19.39843750, 5.19921875) -[2618697.461] {Default Queue} wl_pointer#3049.motion(187310327, 19.39843750, 5.19921875) -[2618697.465] {Default Queue} wl_pointer#3081.motion(187310327, 19.39843750, 5.19921875) -[2618697.470] {Default Queue} wl_pointer#3113.motion(187310327, 19.39843750, 5.19921875) -[2618697.474] {Default Queue} wl_pointer#3145.motion(187310327, 19.39843750, 5.19921875) -[2618697.478] {Default Queue} wl_pointer#3177.motion(187310327, 19.39843750, 5.19921875) -[2618697.482] {Default Queue} wl_pointer#3209.motion(187310327, 19.39843750, 5.19921875) -[2618697.487] {Default Queue} wl_pointer#3241.motion(187310327, 19.39843750, 5.19921875) -[2618697.491] {Default Queue} wl_pointer#3273.motion(187310327, 19.39843750, 5.19921875) -[2618697.496] {Default Queue} wl_pointer#3305.motion(187310327, 19.39843750, 5.19921875) -[2618697.500] {Default Queue} wl_pointer#3337.motion(187310327, 19.39843750, 5.19921875) -[2618697.504] {Default Queue} wl_pointer#3369.motion(187310327, 19.39843750, 5.19921875) -[2618697.508] {Default Queue} wl_pointer#3401.motion(187310327, 19.39843750, 5.19921875) -[2618697.513] {Default Queue} wl_pointer#3433.motion(187310327, 19.39843750, 5.19921875) -[2618697.517] {Default Queue} wl_pointer#3465.motion(187310327, 19.39843750, 5.19921875) -[2618697.522] {Default Queue} wl_pointer#3497.motion(187310327, 19.39843750, 5.19921875) -[2618697.526] {Default Queue} wl_pointer#3529.motion(187310327, 19.39843750, 5.19921875) -[2618697.530] {Default Queue} wl_pointer#3561.motion(187310327, 19.39843750, 5.19921875) -[2618697.535] {Default Queue} wl_pointer#3593.motion(187310327, 19.39843750, 5.19921875) -[2618697.539] {Default Queue} wl_pointer#3625.motion(187310327, 19.39843750, 5.19921875) -[2618697.545] {Default Queue} wl_pointer#3657.motion(187310327, 19.39843750, 5.19921875) -[2618697.551] {Default Queue} wl_pointer#3695.motion(187310327, 19.39843750, 5.19921875) -[2618697.557] {Default Queue} wl_pointer#24.motion(187310331, 18.60156250, 2.00000000) -[2618697.563] {Default Queue} wl_pointer#81.motion(187310331, 18.60156250, 2.00000000) -[2618697.569] {Default Queue} wl_pointer#105.motion(187310331, 18.60156250, 2.00000000) -[2618697.576] {Default Queue} -> wl_pointer#105.set_cursor(626, wl_surface#101, 0, 0) -[2618697.583] {Default Queue} wl_pointer#137.motion(187310331, 18.60156250, 2.00000000) -[2618697.587] {Default Queue} wl_pointer#169.motion(187310331, 18.60156250, 2.00000000) -[2618697.591] {Default Queue} wl_pointer#201.motion(187310331, 18.60156250, 2.00000000) -[2618697.596] {Default Queue} wl_pointer#233.motion(187310331, 18.60156250, 2.00000000) -[2618697.600] {Default Queue} wl_pointer#265.motion(187310331, 18.60156250, 2.00000000) -[2618697.604] {Default Queue} wl_pointer#297.motion(187310331, 18.60156250, 2.00000000) -[2618697.608] {Default Queue} wl_pointer#329.motion(187310331, 18.60156250, 2.00000000) -[2618697.613] {Default Queue} wl_pointer#361.motion(187310331, 18.60156250, 2.00000000) -[2618697.617] {Default Queue} wl_pointer#393.motion(187310331, 18.60156250, 2.00000000) -[2618697.621] {Default Queue} wl_pointer#425.motion(187310331, 18.60156250, 2.00000000) -[2618697.626] {Default Queue} wl_pointer#457.motion(187310331, 18.60156250, 2.00000000) -[2618697.630] {Default Queue} wl_pointer#489.motion(187310331, 18.60156250, 2.00000000) -[2618697.634] {Default Queue} wl_pointer#521.motion(187310331, 18.60156250, 2.00000000) -[2618697.638] {Default Queue} wl_pointer#553.motion(187310331, 18.60156250, 2.00000000) -[2618697.642] {Default Queue} wl_pointer#585.motion(187310331, 18.60156250, 2.00000000) -[2618697.647] {Default Queue} wl_pointer#617.motion(187310331, 18.60156250, 2.00000000) -[2618697.651] {Default Queue} wl_pointer#649.motion(187310331, 18.60156250, 2.00000000) -[2618697.655] {Default Queue} wl_pointer#681.motion(187310331, 18.60156250, 2.00000000) -[2618697.659] {Default Queue} wl_pointer#713.motion(187310331, 18.60156250, 2.00000000) -[2618697.663] {Default Queue} wl_pointer#745.motion(187310331, 18.60156250, 2.00000000) -[2618697.667] {Default Queue} wl_pointer#777.motion(187310331, 18.60156250, 2.00000000) -[2618697.672] {Default Queue} wl_pointer#809.motion(187310331, 18.60156250, 2.00000000) -[2618697.676] {Default Queue} wl_pointer#841.motion(187310331, 18.60156250, 2.00000000) -[2618697.680] {Default Queue} wl_pointer#873.motion(187310331, 18.60156250, 2.00000000) -[2618697.684] {Default Queue} wl_pointer#905.motion(187310331, 18.60156250, 2.00000000) -[2618697.689] {Default Queue} wl_pointer#937.motion(187310331, 18.60156250, 2.00000000) -[2618697.693] {Default Queue} wl_pointer#969.motion(187310331, 18.60156250, 2.00000000) -[2618697.697] {Default Queue} wl_pointer#1001.motion(187310331, 18.60156250, 2.00000000) -[2618697.701] {Default Queue} wl_pointer#1033.motion(187310331, 18.60156250, 2.00000000) -[2618697.706] {Default Queue} wl_pointer#1065.motion(187310331, 18.60156250, 2.00000000) -[2618697.710] {Default Queue} wl_pointer#1097.motion(187310331, 18.60156250, 2.00000000) -[2618697.714] {Default Queue} wl_pointer#1129.motion(187310331, 18.60156250, 2.00000000) -[2618697.718] {Default Queue} wl_pointer#1161.motion(187310331, 18.60156250, 2.00000000) -[2618697.723] {Default Queue} wl_pointer#1193.motion(187310331, 18.60156250, 2.00000000) -[2618697.727] {Default Queue} wl_pointer#1225.motion(187310331, 18.60156250, 2.00000000) -[2618697.731] {Default Queue} wl_pointer#1257.motion(187310331, 18.60156250, 2.00000000) -[2618697.736] {Default Queue} wl_pointer#1289.motion(187310331, 18.60156250, 2.00000000) -[2618697.740] {Default Queue} wl_pointer#1321.motion(187310331, 18.60156250, 2.00000000) -[2618697.744] {Default Queue} wl_pointer#1353.motion(187310331, 18.60156250, 2.00000000) -[2618697.748] {Default Queue} wl_pointer#1385.motion(187310331, 18.60156250, 2.00000000) -[2618697.753] {Default Queue} wl_pointer#1417.motion(187310331, 18.60156250, 2.00000000) -[2618697.757] {Default Queue} wl_pointer#1449.motion(187310331, 18.60156250, 2.00000000) -[2618697.761] {Default Queue} wl_pointer#1481.motion(187310331, 18.60156250, 2.00000000) -[2618697.765] {Default Queue} wl_pointer#1513.motion(187310331, 18.60156250, 2.00000000) -[2618697.769] {Default Queue} wl_pointer#1545.motion(187310331, 18.60156250, 2.00000000) -[2618697.774] {Default Queue} wl_pointer#1577.motion(187310331, 18.60156250, 2.00000000) -[2618697.793] {Default Queue} wl_pointer#1609.motion(187310331, 18.60156250, 2.00000000) -[2618697.798] {Default Queue} wl_pointer#1641.motion(187310331, 18.60156250, 2.00000000) -[2618697.803] {Default Queue} wl_pointer#1673.motion(187310331, 18.60156250, 2.00000000) -[2618697.807] {Default Queue} wl_pointer#1705.motion(187310331, 18.60156250, 2.00000000) -[2618697.811] {Default Queue} wl_pointer#1737.motion(187310331, 18.60156250, 2.00000000) -[2618697.816] {Default Queue} wl_pointer#1762.motion(187310331, 18.60156250, 2.00000000) -[2618697.820] {Default Queue} wl_pointer#1801.motion(187310331, 18.60156250, 2.00000000) -[2618697.824] {Default Queue} wl_pointer#1833.motion(187310331, 18.60156250, 2.00000000) -[2618697.828] {Default Queue} wl_pointer#1865.motion(187310331, 18.60156250, 2.00000000) -[2618697.833] {Default Queue} wl_pointer#1897.motion(187310331, 18.60156250, 2.00000000) -[2618697.837] {Default Queue} wl_pointer#1929.motion(187310331, 18.60156250, 2.00000000) -[2618697.841] {Default Queue} wl_pointer#1961.motion(187310331, 18.60156250, 2.00000000) -[2618697.845] {Default Queue} wl_pointer#1993.motion(187310331, 18.60156250, 2.00000000) -[2618697.850] {Default Queue} wl_pointer#2025.motion(187310331, 18.60156250, 2.00000000) -[2618697.854] {Default Queue} wl_pointer#2057.motion(187310331, 18.60156250, 2.00000000) -[2618697.858] {Default Queue} wl_pointer#2089.motion(187310331, 18.60156250, 2.00000000) -[2618697.863] {Default Queue} wl_pointer#2121.motion(187310331, 18.60156250, 2.00000000) -[2618697.868] {Default Queue} wl_pointer#2153.motion(187310331, 18.60156250, 2.00000000) -[2618697.878] {Default Queue} wl_pointer#2185.motion(187310331, 18.60156250, 2.00000000) -[2618697.883] {Default Queue} wl_pointer#2217.motion(187310331, 18.60156250, 2.00000000) -[2618697.887] {Default Queue} wl_pointer#2249.motion(187310331, 18.60156250, 2.00000000) -[2618697.891] {Default Queue} wl_pointer#2281.motion(187310331, 18.60156250, 2.00000000) -[2618697.895] {Default Queue} wl_pointer#2313.motion(187310331, 18.60156250, 2.00000000) -[2618697.900] {Default Queue} wl_pointer#2345.motion(187310331, 18.60156250, 2.00000000) -[2618697.904] {Default Queue} wl_pointer#2377.motion(187310331, 18.60156250, 2.00000000) -[2618697.909] {Default Queue} wl_pointer#2409.motion(187310331, 18.60156250, 2.00000000) -[2618697.913] {Default Queue} wl_pointer#2441.motion(187310331, 18.60156250, 2.00000000) -[2618697.917] {Default Queue} wl_pointer#2473.motion(187310331, 18.60156250, 2.00000000) -[2618697.921] {Default Queue} wl_pointer#2498.motion(187310331, 18.60156250, 2.00000000) -[2618697.932] {Default Queue} -> wl_buffer#3683.destroy() -[2618697.938] {Default Queue} -> wl_buffer#94.destroy() -[2618697.942] {Default Queue} -> wl_shm_pool#93.destroy() -[2618697.946] {Default Queue} -> wl_shm_pool#92.destroy() -[2618697.951] {Default Queue} -> wl_surface#91.destroy() -[2618697.993] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3675, fd 581, 640) -[2618698.001] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3676, fd 582, 640) -[2618698.006] {Default Queue} -> wl_shm_pool#3675.create_buffer(new id wl_buffer#3677, 0, 10, 16, 40, 0) -[2618698.010] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 10, 16, 40, 0) -[2618698.018] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3674) -[2618698.022] {Default Queue} -> wl_surface#3674.attach(wl_buffer#3677, 0, 0) -[2618698.026] {Default Queue} -> wl_surface#3674.commit() -[2618698.032] {Default Queue} -> wl_surface#3674.attach(wl_buffer#3677, 0, 0) -[2618698.036] {Default Queue} -> wl_surface#3674.commit() -[2618698.040] {Default Queue} wl_pointer#2537.motion(187310331, 18.60156250, 2.00000000) -[2618698.045] {Default Queue} wl_pointer#2569.motion(187310331, 18.60156250, 2.00000000) -[2618698.049] {Default Queue} wl_pointer#2601.motion(187310331, 18.60156250, 2.00000000) -[2618698.054] {Default Queue} wl_pointer#2633.motion(187310331, 18.60156250, 2.00000000) -[2618698.058] {Default Queue} wl_pointer#2665.motion(187310331, 18.60156250, 2.00000000) -[2618698.066] {Default Queue} wl_pointer#2697.motion(187310331, 18.60156250, 2.00000000) -[2618698.072] {Default Queue} wl_pointer#2729.motion(187310331, 18.60156250, 2.00000000) -[2618698.076] {Default Queue} wl_pointer#2761.motion(187310331, 18.60156250, 2.00000000) -[2618698.081] {Default Queue} wl_pointer#2793.motion(187310331, 18.60156250, 2.00000000) -[2618698.085] {Default Queue} wl_pointer#2825.motion(187310331, 18.60156250, 2.00000000) -[2618698.090] {Default Queue} wl_pointer#2857.motion(187310331, 18.60156250, 2.00000000) -[2618698.094] {Default Queue} wl_pointer#2889.motion(187310331, 18.60156250, 2.00000000) -[2618698.098] {Default Queue} wl_pointer#2921.motion(187310331, 18.60156250, 2.00000000) -[2618698.103] {Default Queue} wl_pointer#2953.motion(187310331, 18.60156250, 2.00000000) -[2618698.107] {Default Queue} wl_pointer#2985.motion(187310331, 18.60156250, 2.00000000) -[2618698.111] {Default Queue} wl_pointer#3017.motion(187310331, 18.60156250, 2.00000000) -[2618698.116] {Default Queue} wl_pointer#3049.motion(187310331, 18.60156250, 2.00000000) -[2618698.120] {Default Queue} wl_pointer#3081.motion(187310331, 18.60156250, 2.00000000) -[2618698.124] {Default Queue} wl_pointer#3113.motion(187310331, 18.60156250, 2.00000000) -[2618698.128] {Default Queue} wl_pointer#3145.motion(187310331, 18.60156250, 2.00000000) -[2618698.133] {Default Queue} wl_pointer#3177.motion(187310331, 18.60156250, 2.00000000) -[2618698.137] {Default Queue} wl_pointer#3209.motion(187310331, 18.60156250, 2.00000000) -[2618698.141] {Default Queue} wl_pointer#3241.motion(187310331, 18.60156250, 2.00000000) -[2618698.146] {Default Queue} wl_pointer#3273.motion(187310331, 18.60156250, 2.00000000) -[2618698.150] {Default Queue} wl_pointer#3305.motion(187310331, 18.60156250, 2.00000000) -[2618698.154] {Default Queue} wl_pointer#3337.motion(187310331, 18.60156250, 2.00000000) -[2618698.158] {Default Queue} wl_pointer#3369.motion(187310331, 18.60156250, 2.00000000) -[2618698.163] {Default Queue} wl_pointer#3401.motion(187310331, 18.60156250, 2.00000000) -[2618698.167] {Default Queue} wl_pointer#3433.motion(187310331, 18.60156250, 2.00000000) -[2618698.172] {Default Queue} wl_pointer#3465.motion(187310331, 18.60156250, 2.00000000) -[2618698.176] {Default Queue} wl_pointer#3497.motion(187310331, 18.60156250, 2.00000000) -[2618698.180] {Default Queue} wl_pointer#3529.motion(187310331, 18.60156250, 2.00000000) -[2618698.185] {Default Queue} wl_pointer#3561.motion(187310331, 18.60156250, 2.00000000) -[2618698.189] {Default Queue} wl_pointer#3593.motion(187310331, 18.60156250, 2.00000000) -[2618698.193] {Default Queue} wl_pointer#3625.motion(187310331, 18.60156250, 2.00000000) -[2618698.198] {Default Queue} wl_pointer#3657.motion(187310331, 18.60156250, 2.00000000) -[2618698.202] {Default Queue} wl_pointer#3695.motion(187310331, 18.60156250, 2.00000000) -[2618698.206] {Default Queue} wl_pointer#24.leave(679, wl_surface#71) -[2618698.211] {Default Queue} wl_pointer#81.leave(679, wl_surface#71) -[2618698.215] {Default Queue} wl_pointer#105.leave(679, wl_surface#71) -[2618698.219] {Default Queue} wl_pointer#137.leave(679, wl_surface#71) -[2618698.223] {Default Queue} wl_pointer#169.leave(679, wl_surface#71) -[2618698.227] {Default Queue} wl_pointer#201.leave(679, wl_surface#71) -[2618698.231] {Default Queue} wl_pointer#233.leave(679, wl_surface#71) -[2618698.235] {Default Queue} wl_pointer#265.leave(679, wl_surface#71) -[2618698.239] {Default Queue} wl_pointer#297.leave(679, wl_surface#71) -[2618698.243] {Default Queue} wl_pointer#329.leave(679, wl_surface#71) -[2618698.247] {Default Queue} wl_pointer#361.leave(679, wl_surface#71) -[2618698.251] {Default Queue} wl_pointer#393.leave(679, wl_surface#71) -[2618698.255] {Default Queue} wl_pointer#425.leave(679, wl_surface#71) -[2618698.259] {Default Queue} wl_pointer#457.leave(679, wl_surface#71) -[2618698.263] {Default Queue} wl_pointer#489.leave(679, wl_surface#71) -[2618698.267] {Default Queue} wl_pointer#521.leave(679, wl_surface#71) -[2618698.271] {Default Queue} wl_pointer#553.leave(679, wl_surface#71) -[2618698.278] {Default Queue} wl_pointer#585.leave(679, wl_surface#71) -[2618698.284] {Default Queue} wl_pointer#617.leave(679, wl_surface#71) -[2618698.288] {Default Queue} wl_pointer#649.leave(679, wl_surface#71) -[2618698.292] {Default Queue} wl_pointer#681.leave(679, wl_surface#71) -[2618698.296] {Default Queue} wl_pointer#713.leave(679, wl_surface#71) -[2618698.300] {Default Queue} wl_pointer#745.leave(679, wl_surface#71) -[2618698.304] {Default Queue} wl_pointer#777.leave(679, wl_surface#71) -[2618698.308] {Default Queue} wl_pointer#809.leave(679, wl_surface#71) -[2618698.312] {Default Queue} wl_pointer#841.leave(679, wl_surface#71) -[2618698.316] {Default Queue} wl_pointer#873.leave(679, wl_surface#71) -[2618698.320] {Default Queue} wl_pointer#905.leave(679, wl_surface#71) -[2618698.324] {Default Queue} wl_pointer#937.leave(679, wl_surface#71) -[2618698.328] {Default Queue} wl_pointer#969.leave(679, wl_surface#71) -[2618698.332] {Default Queue} wl_pointer#1001.leave(679, wl_surface#71) -[2618698.336] {Default Queue} wl_pointer#1033.leave(679, wl_surface#71) -[2618698.340] {Default Queue} wl_pointer#1065.leave(679, wl_surface#71) -[2618698.344] {Default Queue} wl_pointer#1097.leave(679, wl_surface#71) -[2618698.348] {Default Queue} wl_pointer#1129.leave(679, wl_surface#71) -[2618698.352] {Default Queue} wl_pointer#1161.leave(679, wl_surface#71) -[2618698.356] {Default Queue} wl_pointer#1193.leave(679, wl_surface#71) -[2618698.360] {Default Queue} wl_pointer#1225.leave(679, wl_surface#71) -[2618698.364] {Default Queue} wl_pointer#1257.leave(679, wl_surface#71) -[2618698.368] {Default Queue} wl_pointer#1289.leave(679, wl_surface#71) -[2618698.372] {Default Queue} wl_pointer#1321.leave(679, wl_surface#71) -[2618698.376] {Default Queue} wl_pointer#1353.leave(679, wl_surface#71) -[2618698.380] {Default Queue} wl_pointer#1385.leave(679, wl_surface#71) -[2618698.384] {Default Queue} wl_pointer#1417.leave(679, wl_surface#71) -[2618698.388] {Default Queue} wl_pointer#1449.leave(679, wl_surface#71) -[2618698.392] {Default Queue} wl_pointer#1481.leave(679, wl_surface#71) -[2618698.396] {Default Queue} wl_pointer#1513.leave(679, wl_surface#71) -[2618698.400] {Default Queue} wl_pointer#1545.leave(679, wl_surface#71) -[2618698.404] {Default Queue} wl_pointer#1577.leave(679, wl_surface#71) -[2618698.408] {Default Queue} wl_pointer#1609.leave(679, wl_surface#71) -[2618698.412] {Default Queue} wl_pointer#1641.leave(679, wl_surface#71) -[2618698.416] {Default Queue} wl_pointer#1673.leave(679, wl_surface#71) -[2618698.420] {Default Queue} wl_pointer#1705.leave(679, wl_surface#71) -[2618698.424] {Default Queue} wl_pointer#1737.leave(679, wl_surface#71) -[2618698.429] {Default Queue} wl_pointer#1762.leave(679, wl_surface#71) -[2618698.433] {Default Queue} wl_pointer#1801.leave(679, wl_surface#71) -[2618698.437] {Default Queue} wl_pointer#1833.leave(679, wl_surface#71) -[2618698.441] {Default Queue} wl_pointer#1865.leave(679, wl_surface#71) -[2618698.445] {Default Queue} wl_pointer#1897.leave(679, wl_surface#71) -[2618698.449] {Default Queue} wl_pointer#1929.leave(679, wl_surface#71) -[2618698.453] {Default Queue} wl_pointer#1961.leave(679, wl_surface#71) -[2618698.457] {Default Queue} wl_pointer#1993.leave(679, wl_surface#71) -[2618698.461] {Default Queue} wl_pointer#2025.leave(679, wl_surface#71) -[2618698.465] {Default Queue} wl_pointer#2057.leave(679, wl_surface#71) -[2618698.469] {Default Queue} wl_pointer#2089.leave(679, wl_surface#71) -[2618698.473] {Default Queue} wl_pointer#2121.leave(679, wl_surface#71) -[2618698.477] {Default Queue} wl_pointer#2153.leave(679, wl_surface#71) -[2618698.481] {Default Queue} wl_pointer#2185.leave(679, wl_surface#71) -[2618698.485] {Default Queue} wl_pointer#2217.leave(679, wl_surface#71) -[2618698.489] {Default Queue} wl_pointer#2249.leave(679, wl_surface#71) -[2618698.493] {Default Queue} wl_pointer#2281.leave(679, wl_surface#71) -[2618698.497] {Default Queue} wl_pointer#2313.leave(679, wl_surface#71) -[2618698.501] {Default Queue} wl_pointer#2345.leave(679, wl_surface#71) -[2618698.505] {Default Queue} wl_pointer#2377.leave(679, wl_surface#71) -[2618698.512] {Default Queue} wl_pointer#2409.leave(679, wl_surface#71) -[2618698.517] {Default Queue} wl_pointer#2441.leave(679, wl_surface#71) -[2618698.522] {Default Queue} wl_pointer#2473.leave(679, wl_surface#71) -[2618698.526] {Default Queue} wl_pointer#2498.leave(679, wl_surface#71) -[2618698.530] {Default Queue} wl_pointer#2537.leave(679, wl_surface#71) -[2618698.534] {Default Queue} wl_pointer#2569.leave(679, wl_surface#71) -[2618698.538] {Default Queue} wl_pointer#2601.leave(679, wl_surface#71) -[2618698.542] {Default Queue} wl_pointer#2633.leave(679, wl_surface#71) -[2618698.546] {Default Queue} wl_pointer#2665.leave(679, wl_surface#71) -[2618698.550] {Default Queue} wl_pointer#2697.leave(679, wl_surface#71) -[2618698.554] {Default Queue} wl_pointer#2729.leave(679, wl_surface#71) -[2618698.558] {Default Queue} wl_pointer#2761.leave(679, wl_surface#71) -[2618698.562] {Default Queue} wl_pointer#2793.leave(679, wl_surface#71) -[2618698.566] {Default Queue} wl_pointer#2825.leave(679, wl_surface#71) -[2618698.571] {Default Queue} wl_pointer#2857.leave(679, wl_surface#71) -[2618698.576] {Default Queue} wl_pointer#2889.leave(679, wl_surface#71) -[2618698.582] {Default Queue} wl_pointer#2921.leave(679, wl_surface#71) -[2618698.587] {Default Queue} wl_pointer#2953.leave(679, wl_surface#71) -[2618698.592] {Default Queue} wl_pointer#2985.leave(679, wl_surface#71) -[2618698.597] {Default Queue} wl_pointer#3017.leave(679, wl_surface#71) -[2618698.603] {Default Queue} wl_pointer#3049.leave(679, wl_surface#71) -[2618698.622] {Default Queue} wl_pointer#3081.leave(679, wl_surface#71) -[2618698.634] {Default Queue} wl_pointer#3113.leave(679, wl_surface#71) -[2618698.640] {Default Queue} wl_pointer#3145.leave(679, wl_surface#71) -[2618698.644] {Default Queue} wl_pointer#3177.leave(679, wl_surface#71) -[2618698.648] {Default Queue} wl_pointer#3209.leave(679, wl_surface#71) -[2618698.653] {Default Queue} wl_pointer#3241.leave(679, wl_surface#71) -[2618698.657] {Default Queue} wl_pointer#3273.leave(679, wl_surface#71) -[2618698.661] {Default Queue} wl_pointer#3305.leave(679, wl_surface#71) -[2618698.665] {Default Queue} wl_pointer#3337.leave(679, wl_surface#71) -[2618698.669] {Default Queue} wl_pointer#3369.leave(679, wl_surface#71) -[2618698.673] {Default Queue} wl_pointer#3401.leave(679, wl_surface#71) -[2618698.677] {Default Queue} wl_pointer#3433.leave(679, wl_surface#71) -[2618698.681] {Default Queue} wl_pointer#3465.leave(679, wl_surface#71) -[2618698.685] {Default Queue} wl_pointer#3497.leave(679, wl_surface#71) -[2618698.689] {Default Queue} wl_pointer#3529.leave(679, wl_surface#71) -[2618698.693] {Default Queue} wl_pointer#3561.leave(679, wl_surface#71) -[2618698.697] {Default Queue} wl_pointer#3593.leave(679, wl_surface#71) -[2618698.702] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) -[2618698.707] {Default Queue} -> wl_surface#2247.commit() -[2618699.799] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) -[2618699.805] {Default Queue} -> wl_surface#2247.commit() -[2618699.812] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) -[2618699.816] {Default Queue} -> wl_surface#2247.commit() -[2618699.822] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) -[2618699.827] {Default Queue} -> wl_surface#2215.commit() -[2618700.866] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) -[2618700.873] {Default Queue} -> wl_surface#2215.commit() -[2618700.883] {Default Queue} -> wl_region#2239.subtract(0, 0, 19, 48) -[2618700.888] {Default Queue} -> wl_region#2239.add(-20, -49, 19, 48) -[2618700.893] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) -[2618700.897] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) -[2618700.903] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) -[2618700.907] {Default Queue} -> wl_surface#2215.commit() -[2618700.911] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) -[2618700.916] {Default Queue} -> wl_surface#2215.commit() -[2618700.922] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) -[2618700.932] {Default Queue} -> wl_surface#2215.commit() -[2618700.942] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) -[2618700.947] {Default Queue} -> wl_surface#2151.commit() -[2618701.207] {Display Queue} wl_display#1.delete_id(3485) -[2618701.214] {Display Queue} wl_display#1.delete_id(3516) -[2618701.218] {Display Queue} wl_display#1.delete_id(3483) -[2618701.222] {Display Queue} wl_display#1.delete_id(3486) -[2618701.226] {Display Queue} wl_display#1.delete_id(3515) -[2618701.230] {Display Queue} wl_display#1.delete_id(3294) -[2618701.234] {Display Queue} wl_display#1.delete_id(3293) -[2618701.238] {Display Queue} wl_display#1.delete_id(3292) -[2618701.242] {Display Queue} wl_display#1.delete_id(3291) -[2618701.246] {Display Queue} wl_display#1.delete_id(3484) -[2618701.250] {Display Queue} wl_display#1.delete_id(3671) -[2618701.253] {Display Queue} wl_display#1.delete_id(3681) -[2618701.257] {Display Queue} wl_display#1.delete_id(3684) -[2618701.261] {Display Queue} wl_display#1.delete_id(3679) -[2618701.265] {Display Queue} wl_display#1.delete_id(3682) -[2618701.269] {Default Queue} wl_pointer#3625.leave(679, wl_surface#71) -[2618701.274] {Default Queue} wl_pointer#3657.leave(679, wl_surface#71) -[2618701.278] {Default Queue} wl_pointer#3695.leave(679, wl_surface#71) -[2618701.287] {Default Queue} -> wl_region#2175.subtract(0, 0, 22, 51) -[2618701.292] {Default Queue} -> wl_region#2175.add(-20, -49, 19, 48) -[2618701.298] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) -[2618701.302] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) -[2618701.308] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) -[2618701.313] {Default Queue} -> wl_surface#2151.commit() -[2618701.317] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) -[2618701.321] {Default Queue} -> wl_surface#2151.commit() -[2618701.326] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) -[2618701.331] {Default Queue} -> wl_surface#2151.commit() -[2618701.336] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) -[2618701.341] {Default Queue} -> wl_surface#2119.commit() -[2618702.401] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) -[2618702.407] {Default Queue} -> wl_surface#2119.commit() -[2618702.416] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) -[2618702.421] {Default Queue} -> wl_region#2143.add(0, 0, 2, 2) -[2618702.425] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618702.429] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618702.439] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) -[2618702.448] {Default Queue} -> wl_region#2143.add(0, 0, 2, 2) -[2618702.452] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618702.456] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618702.461] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) -[2618702.466] {Default Queue} -> wl_region#2143.add(0, 0, 2, 2) -[2618702.470] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618702.474] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618702.479] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) -[2618702.483] {Default Queue} -> wl_region#2143.add(0, 0, 2, 2) -[2618702.487] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618702.491] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618702.498] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) -[2618702.502] {Default Queue} -> wl_region#2143.add(0, 0, 2, 2) -[2618702.506] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618702.510] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618702.515] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) -[2618702.519] {Default Queue} -> wl_surface#2119.commit() -[2618702.523] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) -[2618702.527] {Default Queue} -> wl_surface#2119.commit() -[2618702.537] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) -[2618702.543] {Default Queue} -> wl_surface#2119.commit() -[2618702.550] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) -[2618702.554] {Default Queue} -> wl_surface#2407.commit() -[2618703.616] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) -[2618703.621] {Default Queue} -> wl_surface#2407.commit() -[2618703.631] {Default Queue} -> wl_region#2431.subtract(0, 0, 19, 48) -[2618703.636] {Default Queue} -> wl_region#2431.add(-20, -49, 19, 48) -[2618703.640] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2618703.644] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2618703.804] {Default Queue} -> wl_region#2431.subtract(0, 0, 19, 48) -[2618703.809] {Default Queue} -> wl_region#2431.add(-20, -49, 19, 48) -[2618703.814] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2618703.818] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2618703.824] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618703.829] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618703.968] {Default Queue} -> wl_region#2431.subtract(0, 0, 19, 48) -[2618703.981] {Default Queue} -> wl_region#2431.add(-20, -49, 19, 48) -[2618703.987] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2618703.992] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2618704.002] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618704.009] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618704.017] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) -[2618704.023] {Default Queue} -> wl_surface#2407.commit() -[2618704.028] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) -[2618704.032] {Default Queue} -> wl_surface#2407.commit() -[2618704.039] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) -[2618704.043] {Default Queue} -> wl_surface#2407.commit() -[2618704.050] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) -[2618704.054] {Default Queue} -> wl_surface#2471.commit() -[2618705.119] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) -[2618705.124] {Default Queue} -> wl_surface#2471.commit() -[2618705.142] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618705.147] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618705.152] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618705.156] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618705.164] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618705.168] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618705.172] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618705.176] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618705.181] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618705.185] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618705.189] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618705.193] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618705.198] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618705.202] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618705.206] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618705.210] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618705.215] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618705.219] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618705.223] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618705.227] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618705.233] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618705.238] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618705.242] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618705.246] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618705.253] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618705.261] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618705.266] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618705.270] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618705.274] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618705.279] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618705.283] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618705.287] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618705.291] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618705.296] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618705.300] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618705.304] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618705.309] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618705.313] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618705.317] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618705.321] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618705.327] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618705.331] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618705.335] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618705.339] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618705.344] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618705.348] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618705.352] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618705.356] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618705.361] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618705.365] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618705.369] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618705.373] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618705.377] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618705.382] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618705.386] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618705.390] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618705.395] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618705.399] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618705.403] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618705.407] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618705.412] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618705.416] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618705.420] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618705.424] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618705.429] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618705.433] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618705.437] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618705.441] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618705.445] {Default Queue} -> wl_region#2495.subtract(0, 0, 19, 48) -[2618705.450] {Default Queue} -> wl_region#2495.add(-20, -49, 19, 48) -[2618705.454] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618705.458] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618705.462] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) -[2618705.466] {Default Queue} -> wl_surface#2471.commit() -[2618705.471] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) -[2618705.475] {Default Queue} -> wl_surface#2471.commit() -[2618705.480] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) -[2618705.488] {Default Queue} -> wl_surface#2471.commit() -[2618705.495] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) -[2618705.500] {Default Queue} -> wl_surface#2439.commit() -[2618706.566] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) -[2618706.578] {Default Queue} -> wl_surface#2439.commit() -[2618706.589] {Default Queue} -> wl_region#2463.subtract(0, 0, 19, 48) -[2618706.596] {Default Queue} -> wl_region#2463.add(-20, -49, 19, 48) -[2618706.602] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) -[2618706.608] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) -[2618706.615] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) -[2618706.621] {Default Queue} -> wl_surface#2439.commit() -[2618706.626] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) -[2618706.632] {Default Queue} -> wl_surface#2439.commit() -[2618706.640] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) -[2618706.646] {Default Queue} -> wl_surface#2439.commit() -[2618706.654] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) -[2618706.659] {Default Queue} -> wl_surface#2375.commit() -[2618707.726] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) -[2618707.738] {Default Queue} -> wl_surface#2375.commit() -[2618707.748] {Default Queue} -> wl_region#2399.subtract(0, 0, 22, 51) -[2618707.754] {Default Queue} -> wl_region#2399.add(-20, -49, 19, 48) -[2618707.758] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) -[2618707.763] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) -[2618707.769] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) -[2618707.774] {Default Queue} -> wl_surface#2375.commit() -[2618707.778] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) -[2618707.782] {Default Queue} -> wl_surface#2375.commit() -[2618707.789] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) -[2618707.793] {Default Queue} -> wl_surface#2375.commit() -[2618707.799] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) -[2618707.803] {Default Queue} -> wl_surface#2343.commit() -[2618708.867] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) -[2618708.873] {Default Queue} -> wl_surface#2343.commit() -[2618708.883] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) -[2618708.888] {Default Queue} -> wl_region#2367.add(0, 0, 2, 2) -[2618708.893] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618708.897] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618708.904] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) -[2618708.908] {Default Queue} -> wl_region#2367.add(0, 0, 2, 2) -[2618708.912] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618708.916] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618708.922] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) -[2618708.937] {Default Queue} -> wl_region#2367.add(0, 0, 2, 2) -[2618708.941] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618708.946] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618708.951] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) -[2618708.955] {Default Queue} -> wl_region#2367.add(0, 0, 2, 2) -[2618708.959] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618708.963] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618708.970] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) -[2618708.976] {Default Queue} -> wl_region#2367.add(0, 0, 2, 2) -[2618708.980] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618708.984] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618708.989] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) -[2618708.993] {Default Queue} -> wl_surface#2343.commit() -[2618708.997] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) -[2618709.007] {Default Queue} -> wl_surface#2343.commit() -[2618709.019] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) -[2618709.024] {Default Queue} -> wl_surface#2343.commit() -[2618709.031] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) -[2618709.035] {Default Queue} -> wl_surface#2567.commit() -[2618710.097] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) -[2618710.102] {Default Queue} -> wl_surface#2567.commit() -[2618710.112] {Default Queue} -> wl_region#2591.subtract(0, 0, 19, 48) -[2618710.118] {Default Queue} -> wl_region#2591.add(-20, -49, 19, 48) -[2618710.122] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2618710.126] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2618710.262] {Default Queue} -> wl_region#2591.subtract(0, 0, 19, 48) -[2618710.267] {Default Queue} -> wl_region#2591.add(-20, -49, 19, 48) -[2618710.271] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2618710.275] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2618710.281] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618710.286] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618710.380] {Default Queue} -> wl_region#2591.subtract(0, 0, 19, 48) -[2618710.385] {Default Queue} -> wl_region#2591.add(-20, -49, 19, 48) -[2618710.389] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2618710.393] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2618710.398] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618710.402] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618710.407] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) -[2618710.411] {Default Queue} -> wl_surface#2567.commit() -[2618710.416] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) -[2618710.420] {Default Queue} -> wl_surface#2567.commit() -[2618710.425] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) -[2618710.430] {Default Queue} -> wl_surface#2567.commit() -[2618710.436] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) -[2618710.440] {Default Queue} -> wl_surface#2631.commit() -[2618711.506] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) -[2618711.518] {Default Queue} -> wl_surface#2631.commit() -[2618711.533] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) -[2618711.540] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) -[2618711.546] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618711.552] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618711.563] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) -[2618711.569] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) -[2618711.575] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618711.580] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618711.587] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) -[2618711.593] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) -[2618711.598] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618711.604] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618711.610] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) -[2618711.616] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) -[2618711.622] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618711.627] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618711.634] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) -[2618711.639] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) -[2618711.645] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618711.650] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618711.660] {Default Queue} -> wl_region#2655.subtract(0, 0, 19, 48) -[2618711.665] {Default Queue} -> wl_region#2655.add(-20, -49, 19, 48) -[2618711.671] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618711.683] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618711.693] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) -[2618711.698] {Default Queue} -> wl_surface#2631.commit() -[2618711.704] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) -[2618711.709] {Default Queue} -> wl_surface#2631.commit() -[2618711.717] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) -[2618711.723] {Default Queue} -> wl_surface#2631.commit() -[2618711.731] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) -[2618711.738] {Default Queue} -> wl_surface#2599.commit() -[2618712.804] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) -[2618712.816] {Default Queue} -> wl_surface#2599.commit() -[2618712.827] {Default Queue} -> wl_region#2623.subtract(0, 0, 19, 48) -[2618712.832] {Default Queue} -> wl_region#2623.add(-20, -49, 19, 48) -[2618712.837] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) -[2618712.841] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) -[2618712.847] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) -[2618712.851] {Default Queue} -> wl_surface#2599.commit() -[2618712.855] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) -[2618712.859] {Default Queue} -> wl_surface#2599.commit() -[2618712.867] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) -[2618712.876] {Default Queue} -> wl_surface#2599.commit() -[2618712.882] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) -[2618712.886] {Default Queue} -> wl_surface#2535.commit() -[2618713.950] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) -[2618713.956] {Default Queue} -> wl_surface#2535.commit() -[2618713.964] {Default Queue} -> wl_region#2559.subtract(0, 0, 22, 51) -[2618713.970] {Default Queue} -> wl_region#2559.add(-20, -49, 19, 48) -[2618713.974] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) -[2618713.978] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) -[2618713.983] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) -[2618713.988] {Default Queue} -> wl_surface#2535.commit() -[2618713.992] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) -[2618713.996] {Default Queue} -> wl_surface#2535.commit() -[2618714.001] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) -[2618714.006] {Default Queue} -> wl_surface#2535.commit() -[2618714.011] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) -[2618714.016] {Default Queue} -> wl_surface#2508.commit() -[2618715.077] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) -[2618715.083] {Default Queue} -> wl_surface#2508.commit() -[2618715.092] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) -[2618715.098] {Default Queue} -> wl_region#2527.add(0, 0, 2, 2) -[2618715.102] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618715.106] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618715.113] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) -[2618715.117] {Default Queue} -> wl_region#2527.add(0, 0, 2, 2) -[2618715.122] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618715.126] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618715.131] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) -[2618715.135] {Default Queue} -> wl_region#2527.add(0, 0, 2, 2) -[2618715.139] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618715.143] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618715.148] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) -[2618715.153] {Default Queue} -> wl_region#2527.add(0, 0, 2, 2) -[2618715.157] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618715.161] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618715.167] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) -[2618715.177] {Default Queue} -> wl_region#2527.add(0, 0, 2, 2) -[2618715.184] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618715.188] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618715.192] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) -[2618715.196] {Default Queue} -> wl_surface#2508.commit() -[2618715.200] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) -[2618715.204] {Default Queue} -> wl_surface#2508.commit() -[2618715.210] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) -[2618715.214] {Default Queue} -> wl_surface#2508.commit() -[2618715.221] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) -[2618715.225] {Default Queue} -> wl_surface#2727.commit() -[2618716.286] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) -[2618716.291] {Default Queue} -> wl_surface#2727.commit() -[2618716.299] {Default Queue} -> wl_region#2751.subtract(0, 0, 19, 48) -[2618716.304] {Default Queue} -> wl_region#2751.add(-20, -49, 19, 48) -[2618716.309] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2618716.313] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2618716.445] {Default Queue} -> wl_region#2751.subtract(0, 0, 19, 48) -[2618716.455] {Default Queue} -> wl_region#2751.add(-20, -49, 19, 48) -[2618716.460] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2618716.466] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2618716.475] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618716.481] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618716.587] {Default Queue} -> wl_region#2751.subtract(0, 0, 19, 48) -[2618716.595] {Default Queue} -> wl_region#2751.add(-20, -49, 19, 48) -[2618716.601] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2618716.607] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2618716.615] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618716.620] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618716.627] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) -[2618716.633] {Default Queue} -> wl_surface#2727.commit() -[2618716.639] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) -[2618716.644] {Default Queue} -> wl_surface#2727.commit() -[2618716.653] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) -[2618716.658] {Default Queue} -> wl_surface#2727.commit() -[2618716.666] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) -[2618716.672] {Default Queue} -> wl_surface#2791.commit() -[2618717.738] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) -[2618717.750] {Default Queue} -> wl_surface#2791.commit() -[2618717.761] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618717.766] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618717.771] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618717.775] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618717.783] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618717.790] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618717.794] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618717.798] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618717.803] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618717.807] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618717.812] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618717.816] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618717.820] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618717.824] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618717.829] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618717.832] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618717.837] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618717.846] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618717.853] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618717.857] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618717.867] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618717.871] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618717.875] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618717.879] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618717.883] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618717.888] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618717.892] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618717.896] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618717.900] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618717.904] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618717.908] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618717.912] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618717.917] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618717.921] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618717.925] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618717.929] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618717.939] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618717.946] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618717.950] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618717.954] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618717.958] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618717.962] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618717.967] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618717.970] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618717.975] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618717.979] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618717.983] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618717.987] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618717.992] {Default Queue} -> wl_region#2815.subtract(0, 0, 19, 48) -[2618717.996] {Default Queue} -> wl_region#2815.add(-20, -49, 19, 48) -[2618718.000] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618718.004] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618718.009] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) -[2618718.013] {Default Queue} -> wl_surface#2791.commit() -[2618718.017] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) -[2618718.022] {Default Queue} -> wl_surface#2791.commit() -[2618718.028] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) -[2618718.032] {Default Queue} -> wl_surface#2791.commit() -[2618718.039] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) -[2618718.043] {Default Queue} -> wl_surface#2759.commit() -[2618719.105] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) -[2618719.112] {Default Queue} -> wl_surface#2759.commit() -[2618719.119] {Default Queue} -> wl_region#2783.subtract(0, 0, 19, 48) -[2618719.125] {Default Queue} -> wl_region#2783.add(-20, -49, 19, 48) -[2618719.130] {Default Queue} -> wl_surface#2759.set_opaque_region(wl_region#2784) -[2618719.134] {Default Queue} -> wl_surface#2759.set_input_region(wl_region#2783) -[2618719.139] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) -[2618719.143] {Default Queue} -> wl_surface#2759.commit() -[2618719.147] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) -[2618719.152] {Default Queue} -> wl_surface#2759.commit() -[2618719.157] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) -[2618719.165] {Default Queue} -> wl_surface#2759.commit() -[2618719.173] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) -[2618719.177] {Default Queue} -> wl_surface#2695.commit() -[2618720.239] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) -[2618720.244] {Default Queue} -> wl_surface#2695.commit() -[2618720.250] {Default Queue} -> wl_region#2719.subtract(0, 0, 22, 51) -[2618720.254] {Default Queue} -> wl_region#2719.add(-20, -49, 19, 48) -[2618720.259] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) -[2618720.263] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) -[2618720.267] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) -[2618720.272] {Default Queue} -> wl_surface#2695.commit() -[2618720.276] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) -[2618720.280] {Default Queue} -> wl_surface#2695.commit() -[2618720.285] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) -[2618720.289] {Default Queue} -> wl_surface#2695.commit() -[2618720.295] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) -[2618720.299] {Default Queue} -> wl_surface#2663.commit() -[2618721.335] {Display Queue} wl_display#1.delete_id(3452) -[2618721.347] {Display Queue} wl_display#1.delete_id(3451) -[2618721.353] {Display Queue} wl_display#1.delete_id(3518) -[2618721.358] {Display Queue} wl_display#1.delete_id(3517) -[2618721.363] {Display Queue} wl_display#1.delete_id(3454) -[2618721.369] {Display Queue} wl_display#1.delete_id(3683) -[2618721.395] {Display Queue} wl_display#1.delete_id(94) -[2618721.406] {Display Queue} wl_display#1.delete_id(93) -[2618721.412] {Display Queue} wl_display#1.delete_id(92) -[2618721.418] {Display Queue} wl_display#1.delete_id(91) -[2618721.423] {Default Queue} wl_pointer#24.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.431] {Default Queue} -> wl_pointer#24.set_cursor(690, wl_surface#41, 0, 0) -[2618721.436] {Default Queue} wl_pointer#81.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.441] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#41, 0, 0) -[2618721.446] {Default Queue} wl_pointer#105.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.450] {Default Queue} -> wl_pointer#105.set_cursor(690, wl_surface#41, 0, 0) -[2618721.454] {Default Queue} wl_pointer#137.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.459] {Default Queue} -> wl_pointer#137.set_cursor(690, wl_surface#41, 0, 0) -[2618721.463] {Default Queue} wl_pointer#169.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.467] {Default Queue} -> wl_pointer#169.set_cursor(690, wl_surface#41, 0, 0) -[2618721.471] {Default Queue} wl_pointer#201.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.476] {Default Queue} -> wl_pointer#201.set_cursor(690, wl_surface#41, 0, 0) -[2618721.480] {Default Queue} wl_pointer#233.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.484] {Default Queue} -> wl_pointer#233.set_cursor(690, wl_surface#41, 0, 0) -[2618721.489] {Default Queue} wl_pointer#265.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.493] {Default Queue} -> wl_pointer#265.set_cursor(690, wl_surface#41, 0, 0) -[2618721.497] {Default Queue} wl_pointer#297.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.502] {Default Queue} -> wl_pointer#297.set_cursor(690, wl_surface#41, 0, 0) -[2618721.506] {Default Queue} wl_pointer#329.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.510] {Default Queue} -> wl_pointer#329.set_cursor(690, wl_surface#41, 0, 0) -[2618721.514] {Default Queue} wl_pointer#361.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.519] {Default Queue} -> wl_pointer#361.set_cursor(690, wl_surface#41, 0, 0) -[2618721.523] {Default Queue} wl_pointer#393.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.527] {Default Queue} -> wl_pointer#393.set_cursor(690, wl_surface#41, 0, 0) -[2618721.531] {Default Queue} wl_pointer#425.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.541] {Default Queue} -> wl_pointer#425.set_cursor(690, wl_surface#41, 0, 0) -[2618721.548] {Default Queue} wl_pointer#457.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.552] {Default Queue} -> wl_pointer#457.set_cursor(690, wl_surface#41, 0, 0) -[2618721.557] {Default Queue} wl_pointer#489.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.561] {Default Queue} -> wl_pointer#489.set_cursor(690, wl_surface#41, 0, 0) -[2618721.565] {Default Queue} wl_pointer#521.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.570] {Default Queue} -> wl_pointer#521.set_cursor(690, wl_surface#41, 0, 0) -[2618721.574] {Default Queue} wl_pointer#553.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.578] {Default Queue} -> wl_pointer#553.set_cursor(690, wl_surface#41, 0, 0) -[2618721.582] {Default Queue} wl_pointer#585.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.587] {Default Queue} -> wl_pointer#585.set_cursor(690, wl_surface#41, 0, 0) -[2618721.591] {Default Queue} wl_pointer#617.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.595] {Default Queue} -> wl_pointer#617.set_cursor(690, wl_surface#41, 0, 0) -[2618721.599] {Default Queue} wl_pointer#649.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.604] {Default Queue} -> wl_pointer#649.set_cursor(690, wl_surface#41, 0, 0) -[2618721.608] {Default Queue} wl_pointer#681.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.612] {Default Queue} -> wl_pointer#681.set_cursor(690, wl_surface#41, 0, 0) -[2618721.616] {Default Queue} wl_pointer#713.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.621] {Default Queue} -> wl_pointer#713.set_cursor(690, wl_surface#41, 0, 0) -[2618721.625] {Default Queue} wl_pointer#745.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.630] {Default Queue} -> wl_pointer#745.set_cursor(690, wl_surface#41, 0, 0) -[2618721.634] {Default Queue} wl_pointer#777.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.638] {Default Queue} -> wl_pointer#777.set_cursor(690, wl_surface#41, 0, 0) -[2618721.643] {Default Queue} wl_pointer#809.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.647] {Default Queue} -> wl_pointer#809.set_cursor(690, wl_surface#41, 0, 0) -[2618721.651] {Default Queue} wl_pointer#841.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.655] {Default Queue} -> wl_pointer#841.set_cursor(690, wl_surface#41, 0, 0) -[2618721.660] {Default Queue} wl_pointer#873.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.664] {Default Queue} -> wl_pointer#873.set_cursor(690, wl_surface#41, 0, 0) -[2618721.668] {Default Queue} wl_pointer#905.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.672] {Default Queue} -> wl_pointer#905.set_cursor(690, wl_surface#41, 0, 0) -[2618721.676] {Default Queue} wl_pointer#937.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.681] {Default Queue} -> wl_pointer#937.set_cursor(690, wl_surface#41, 0, 0) -[2618721.685] {Default Queue} wl_pointer#969.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.689] {Default Queue} -> wl_pointer#969.set_cursor(690, wl_surface#41, 0, 0) -[2618721.694] {Default Queue} wl_pointer#1001.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.698] {Default Queue} -> wl_pointer#1001.set_cursor(690, wl_surface#41, 0, 0) -[2618721.702] {Default Queue} wl_pointer#1033.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.707] {Default Queue} -> wl_pointer#1033.set_cursor(690, wl_surface#41, 0, 0) -[2618721.711] {Default Queue} wl_pointer#1065.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.715] {Default Queue} -> wl_pointer#1065.set_cursor(690, wl_surface#41, 0, 0) -[2618721.719] {Default Queue} wl_pointer#1097.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.724] {Default Queue} -> wl_pointer#1097.set_cursor(690, wl_surface#41, 0, 0) -[2618721.728] {Default Queue} wl_pointer#1129.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.732] {Default Queue} -> wl_pointer#1129.set_cursor(690, wl_surface#41, 0, 0) -[2618721.739] {Default Queue} wl_pointer#1161.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.746] {Default Queue} -> wl_pointer#1161.set_cursor(690, wl_surface#41, 0, 0) -[2618721.750] {Default Queue} wl_pointer#1193.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.754] {Default Queue} -> wl_pointer#1193.set_cursor(690, wl_surface#41, 0, 0) -[2618721.759] {Default Queue} wl_pointer#1225.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.763] {Default Queue} -> wl_pointer#1225.set_cursor(690, wl_surface#41, 0, 0) -[2618721.767] {Default Queue} wl_pointer#1257.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.772] {Default Queue} -> wl_pointer#1257.set_cursor(690, wl_surface#41, 0, 0) -[2618721.776] {Default Queue} wl_pointer#1289.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.780] {Default Queue} -> wl_pointer#1289.set_cursor(690, wl_surface#41, 0, 0) -[2618721.784] {Default Queue} wl_pointer#1321.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.789] {Default Queue} -> wl_pointer#1321.set_cursor(690, wl_surface#41, 0, 0) -[2618721.793] {Default Queue} wl_pointer#1353.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.797] {Default Queue} -> wl_pointer#1353.set_cursor(690, wl_surface#41, 0, 0) -[2618721.802] {Default Queue} wl_pointer#1385.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.806] {Default Queue} -> wl_pointer#1385.set_cursor(690, wl_surface#41, 0, 0) -[2618721.810] {Default Queue} wl_pointer#1417.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.815] {Default Queue} -> wl_pointer#1417.set_cursor(690, wl_surface#41, 0, 0) -[2618721.819] {Default Queue} wl_pointer#1449.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.823] {Default Queue} -> wl_pointer#1449.set_cursor(690, wl_surface#41, 0, 0) -[2618721.827] {Default Queue} wl_pointer#1481.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.832] {Default Queue} -> wl_pointer#1481.set_cursor(690, wl_surface#41, 0, 0) -[2618721.836] {Default Queue} wl_pointer#1513.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.840] {Default Queue} -> wl_pointer#1513.set_cursor(690, wl_surface#41, 0, 0) -[2618721.844] {Default Queue} wl_pointer#1545.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.849] {Default Queue} -> wl_pointer#1545.set_cursor(690, wl_surface#41, 0, 0) -[2618721.853] {Default Queue} wl_pointer#1577.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.857] {Default Queue} -> wl_pointer#1577.set_cursor(690, wl_surface#41, 0, 0) -[2618721.865] {Default Queue} wl_pointer#1609.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.870] {Default Queue} -> wl_pointer#1609.set_cursor(690, wl_surface#41, 0, 0) -[2618721.874] {Default Queue} wl_pointer#1641.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.878] {Default Queue} -> wl_pointer#1641.set_cursor(690, wl_surface#41, 0, 0) -[2618721.883] {Default Queue} wl_pointer#1673.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.887] {Default Queue} -> wl_pointer#1673.set_cursor(690, wl_surface#41, 0, 0) -[2618721.891] {Default Queue} wl_pointer#1705.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.895] {Default Queue} -> wl_pointer#1705.set_cursor(690, wl_surface#41, 0, 0) -[2618721.900] {Default Queue} wl_pointer#1737.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.904] {Default Queue} -> wl_pointer#1737.set_cursor(690, wl_surface#41, 0, 0) -[2618721.908] {Default Queue} wl_pointer#1762.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.913] {Default Queue} -> wl_pointer#1762.set_cursor(690, wl_surface#41, 0, 0) -[2618721.917] {Default Queue} wl_pointer#1801.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.921] {Default Queue} -> wl_pointer#1801.set_cursor(690, wl_surface#41, 0, 0) -[2618721.925] {Default Queue} wl_pointer#1833.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.930] {Default Queue} -> wl_pointer#1833.set_cursor(690, wl_surface#41, 0, 0) -[2618721.937] {Default Queue} wl_pointer#1865.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.943] {Default Queue} -> wl_pointer#1865.set_cursor(690, wl_surface#41, 0, 0) -[2618721.947] {Default Queue} wl_pointer#1897.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.952] {Default Queue} -> wl_pointer#1897.set_cursor(690, wl_surface#41, 0, 0) -[2618721.956] {Default Queue} wl_pointer#1929.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.960] {Default Queue} -> wl_pointer#1929.set_cursor(690, wl_surface#41, 0, 0) -[2618721.964] {Default Queue} wl_pointer#1961.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.969] {Default Queue} -> wl_pointer#1961.set_cursor(690, wl_surface#41, 0, 0) -[2618721.973] {Default Queue} wl_pointer#1993.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.977] {Default Queue} -> wl_pointer#1993.set_cursor(690, wl_surface#41, 0, 0) -[2618721.982] {Default Queue} wl_pointer#2025.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.986] {Default Queue} -> wl_pointer#2025.set_cursor(690, wl_surface#41, 0, 0) -[2618721.990] {Default Queue} wl_pointer#2057.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618721.994] {Default Queue} -> wl_pointer#2057.set_cursor(690, wl_surface#41, 0, 0) -[2618721.999] {Default Queue} wl_pointer#2089.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.003] {Default Queue} -> wl_pointer#2089.set_cursor(690, wl_surface#41, 0, 0) -[2618722.008] {Default Queue} wl_pointer#2121.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.012] {Default Queue} -> wl_pointer#2121.set_cursor(690, wl_surface#41, 0, 0) -[2618722.016] {Default Queue} wl_pointer#2153.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.021] {Default Queue} -> wl_pointer#2153.set_cursor(690, wl_surface#41, 0, 0) -[2618722.025] {Default Queue} wl_pointer#2185.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.029] {Default Queue} -> wl_pointer#2185.set_cursor(690, wl_surface#41, 0, 0) -[2618722.034] {Default Queue} wl_pointer#2217.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.038] {Default Queue} -> wl_pointer#2217.set_cursor(690, wl_surface#41, 0, 0) -[2618722.043] {Default Queue} wl_pointer#2249.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.047] {Default Queue} -> wl_pointer#2249.set_cursor(690, wl_surface#41, 0, 0) -[2618722.051] {Default Queue} wl_pointer#2281.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.055] {Default Queue} -> wl_pointer#2281.set_cursor(690, wl_surface#41, 0, 0) -[2618722.060] {Default Queue} wl_pointer#2313.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.064] {Default Queue} -> wl_pointer#2313.set_cursor(690, wl_surface#41, 0, 0) -[2618722.068] {Default Queue} wl_pointer#2345.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.073] {Default Queue} -> wl_pointer#2345.set_cursor(690, wl_surface#41, 0, 0) -[2618722.077] {Default Queue} wl_pointer#2377.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.081] {Default Queue} -> wl_pointer#2377.set_cursor(690, wl_surface#41, 0, 0) -[2618722.085] {Default Queue} wl_pointer#2409.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.090] {Default Queue} -> wl_pointer#2409.set_cursor(690, wl_surface#41, 0, 0) -[2618722.094] {Default Queue} wl_pointer#2441.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.098] {Default Queue} -> wl_pointer#2441.set_cursor(690, wl_surface#41, 0, 0) -[2618722.103] {Default Queue} wl_pointer#2473.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.107] {Default Queue} -> wl_pointer#2473.set_cursor(690, wl_surface#41, 0, 0) -[2618722.111] {Default Queue} wl_pointer#2498.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.115] {Default Queue} -> wl_pointer#2498.set_cursor(690, wl_surface#41, 0, 0) -[2618722.120] {Default Queue} wl_pointer#2537.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.124] {Default Queue} -> wl_pointer#2537.set_cursor(690, wl_surface#41, 0, 0) -[2618722.128] {Default Queue} wl_pointer#2569.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.135] {Default Queue} -> wl_pointer#2569.set_cursor(690, wl_surface#41, 0, 0) -[2618722.141] {Default Queue} wl_pointer#2601.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.146] {Default Queue} -> wl_pointer#2601.set_cursor(690, wl_surface#41, 0, 0) -[2618722.150] {Default Queue} wl_pointer#2633.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.154] {Default Queue} -> wl_pointer#2633.set_cursor(690, wl_surface#41, 0, 0) -[2618722.158] {Default Queue} wl_pointer#2665.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.163] {Default Queue} -> wl_pointer#2665.set_cursor(690, wl_surface#41, 0, 0) -[2618722.167] {Default Queue} wl_pointer#2697.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.171] {Default Queue} -> wl_pointer#2697.set_cursor(690, wl_surface#41, 0, 0) -[2618722.175] {Default Queue} wl_pointer#2729.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.180] {Default Queue} -> wl_pointer#2729.set_cursor(690, wl_surface#41, 0, 0) -[2618722.184] {Default Queue} wl_pointer#2761.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.188] {Default Queue} -> wl_pointer#2761.set_cursor(690, wl_surface#41, 0, 0) -[2618722.193] {Default Queue} wl_pointer#2793.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.197] {Default Queue} -> wl_pointer#2793.set_cursor(690, wl_surface#41, 0, 0) -[2618722.201] {Default Queue} wl_pointer#2825.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.205] {Default Queue} -> wl_pointer#2825.set_cursor(690, wl_surface#41, 0, 0) -[2618722.210] {Default Queue} wl_pointer#2857.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.214] {Default Queue} -> wl_pointer#2857.set_cursor(690, wl_surface#41, 0, 0) -[2618722.218] {Default Queue} wl_pointer#2889.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.222] {Default Queue} -> wl_pointer#2889.set_cursor(690, wl_surface#41, 0, 0) -[2618722.227] {Default Queue} wl_pointer#2921.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.231] {Default Queue} -> wl_pointer#2921.set_cursor(690, wl_surface#41, 0, 0) -[2618722.235] {Default Queue} wl_pointer#2953.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.239] {Default Queue} -> wl_pointer#2953.set_cursor(690, wl_surface#41, 0, 0) -[2618722.244] {Default Queue} wl_pointer#2985.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.248] {Default Queue} -> wl_pointer#2985.set_cursor(690, wl_surface#41, 0, 0) -[2618722.252] {Default Queue} wl_pointer#3017.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.257] {Default Queue} -> wl_pointer#3017.set_cursor(690, wl_surface#41, 0, 0) -[2618722.261] {Default Queue} wl_pointer#3049.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.265] {Default Queue} -> wl_pointer#3049.set_cursor(690, wl_surface#41, 0, 0) -[2618722.270] {Default Queue} wl_pointer#3081.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.274] {Default Queue} -> wl_pointer#3081.set_cursor(690, wl_surface#41, 0, 0) -[2618722.278] {Default Queue} wl_pointer#3113.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.282] {Default Queue} -> wl_pointer#3113.set_cursor(690, wl_surface#41, 0, 0) -[2618722.287] {Default Queue} wl_pointer#3145.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.291] {Default Queue} -> wl_pointer#3145.set_cursor(690, wl_surface#41, 0, 0) -[2618722.295] {Default Queue} wl_pointer#3177.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.300] {Default Queue} -> wl_pointer#3177.set_cursor(690, wl_surface#41, 0, 0) -[2618722.304] {Default Queue} wl_pointer#3209.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.308] {Default Queue} -> wl_pointer#3209.set_cursor(690, wl_surface#41, 0, 0) -[2618722.312] {Default Queue} wl_pointer#3241.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.317] {Default Queue} -> wl_pointer#3241.set_cursor(690, wl_surface#41, 0, 0) -[2618722.321] {Default Queue} wl_pointer#3273.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.328] {Default Queue} -> wl_pointer#3273.set_cursor(690, wl_surface#41, 0, 0) -[2618722.334] {Default Queue} wl_pointer#3305.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.338] {Default Queue} -> wl_pointer#3305.set_cursor(690, wl_surface#41, 0, 0) -[2618722.342] {Default Queue} wl_pointer#3337.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.347] {Default Queue} -> wl_pointer#3337.set_cursor(690, wl_surface#41, 0, 0) -[2618722.351] {Default Queue} wl_pointer#3369.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.355] {Default Queue} -> wl_pointer#3369.set_cursor(690, wl_surface#41, 0, 0) -[2618722.360] {Default Queue} wl_pointer#3401.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.364] {Default Queue} -> wl_pointer#3401.set_cursor(690, wl_surface#41, 0, 0) -[2618722.368] {Default Queue} wl_pointer#3433.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.372] {Default Queue} -> wl_pointer#3433.set_cursor(690, wl_surface#41, 0, 0) -[2618722.377] {Default Queue} wl_pointer#3465.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.381] {Default Queue} -> wl_pointer#3465.set_cursor(690, wl_surface#41, 0, 0) -[2618722.386] {Default Queue} wl_pointer#3497.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.393] {Default Queue} -> wl_pointer#3497.set_cursor(690, wl_surface#41, 0, 0) -[2618722.398] {Default Queue} wl_pointer#3529.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.402] {Default Queue} -> wl_pointer#3529.set_cursor(690, wl_surface#41, 0, 0) -[2618722.407] {Default Queue} wl_pointer#3561.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.411] {Default Queue} -> wl_pointer#3561.set_cursor(690, wl_surface#41, 0, 0) -[2618722.415] {Default Queue} wl_pointer#3593.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.420] {Default Queue} -> wl_pointer#3593.set_cursor(690, wl_surface#41, 0, 0) -[2618722.424] {Default Queue} wl_pointer#3625.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.428] {Default Queue} -> wl_pointer#3625.set_cursor(690, wl_surface#41, 0, 0) -[2618722.432] {Default Queue} wl_pointer#3657.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.437] {Default Queue} -> wl_pointer#3657.set_cursor(690, wl_surface#41, 0, 0) -[2618722.441] {Default Queue} wl_pointer#3695.enter(690, wl_surface#43, 31.00000000, 27.80078125) -[2618722.445] {Default Queue} wl_pointer#24.motion(187310356, 30.60156250, 27.00000000) -[2618722.450] {Default Queue} wl_pointer#81.motion(187310356, 30.60156250, 27.00000000) -[2618722.456] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618722.460] {Default Queue} wl_pointer#105.motion(187310356, 30.60156250, 27.00000000) -[2618722.465] {Default Queue} wl_pointer#137.motion(187310356, 30.60156250, 27.00000000) -[2618722.469] {Default Queue} wl_pointer#169.motion(187310356, 30.60156250, 27.00000000) -[2618722.473] {Default Queue} wl_pointer#201.motion(187310356, 30.60156250, 27.00000000) -[2618722.477] {Default Queue} wl_pointer#233.motion(187310356, 30.60156250, 27.00000000) -[2618722.482] {Default Queue} wl_pointer#265.motion(187310356, 30.60156250, 27.00000000) -[2618722.486] {Default Queue} wl_pointer#297.motion(187310356, 30.60156250, 27.00000000) -[2618722.490] {Default Queue} wl_pointer#329.motion(187310356, 30.60156250, 27.00000000) -[2618722.495] {Default Queue} wl_pointer#361.motion(187310356, 30.60156250, 27.00000000) -[2618722.499] {Default Queue} wl_pointer#393.motion(187310356, 30.60156250, 27.00000000) -[2618722.504] {Default Queue} wl_pointer#425.motion(187310356, 30.60156250, 27.00000000) -[2618722.508] {Default Queue} wl_pointer#457.motion(187310356, 30.60156250, 27.00000000) -[2618722.512] {Default Queue} wl_pointer#489.motion(187310356, 30.60156250, 27.00000000) -[2618722.516] {Default Queue} wl_pointer#521.motion(187310356, 30.60156250, 27.00000000) -[2618722.521] {Default Queue} wl_pointer#553.motion(187310356, 30.60156250, 27.00000000) -[2618722.525] {Default Queue} wl_pointer#585.motion(187310356, 30.60156250, 27.00000000) -[2618722.532] {Default Queue} wl_pointer#617.motion(187310356, 30.60156250, 27.00000000) -[2618722.538] {Default Queue} wl_pointer#649.motion(187310356, 30.60156250, 27.00000000) -[2618722.543] {Default Queue} wl_pointer#681.motion(187310356, 30.60156250, 27.00000000) -[2618722.547] {Default Queue} wl_pointer#713.motion(187310356, 30.60156250, 27.00000000) -[2618722.551] {Default Queue} wl_pointer#745.motion(187310356, 30.60156250, 27.00000000) -[2618722.555] {Default Queue} wl_pointer#777.motion(187310356, 30.60156250, 27.00000000) -[2618722.560] {Default Queue} wl_pointer#809.motion(187310356, 30.60156250, 27.00000000) -[2618722.564] {Default Queue} wl_pointer#841.motion(187310356, 30.60156250, 27.00000000) -[2618722.568] {Default Queue} wl_pointer#873.motion(187310356, 30.60156250, 27.00000000) -[2618722.573] {Default Queue} wl_pointer#905.motion(187310356, 30.60156250, 27.00000000) -[2618722.577] {Default Queue} wl_pointer#937.motion(187310356, 30.60156250, 27.00000000) -[2618722.582] {Default Queue} wl_pointer#969.motion(187310356, 30.60156250, 27.00000000) -[2618722.586] {Default Queue} wl_pointer#1001.motion(187310356, 30.60156250, 27.00000000) -[2618722.590] {Default Queue} wl_pointer#1033.motion(187310356, 30.60156250, 27.00000000) -[2618722.595] {Default Queue} wl_pointer#1065.motion(187310356, 30.60156250, 27.00000000) -[2618722.599] {Default Queue} wl_pointer#1097.motion(187310356, 30.60156250, 27.00000000) -[2618722.603] {Default Queue} wl_pointer#1129.motion(187310356, 30.60156250, 27.00000000) -[2618722.607] {Default Queue} wl_pointer#1161.motion(187310356, 30.60156250, 27.00000000) -[2618722.612] {Default Queue} wl_pointer#1193.motion(187310356, 30.60156250, 27.00000000) -[2618722.616] {Default Queue} wl_pointer#1225.motion(187310356, 30.60156250, 27.00000000) -[2618722.620] {Default Queue} wl_pointer#1257.motion(187310356, 30.60156250, 27.00000000) -[2618722.625] {Default Queue} wl_pointer#1289.motion(187310356, 30.60156250, 27.00000000) -[2618722.629] {Default Queue} wl_pointer#1321.motion(187310356, 30.60156250, 27.00000000) -[2618722.633] {Default Queue} wl_pointer#1353.motion(187310356, 30.60156250, 27.00000000) -[2618722.637] {Default Queue} wl_pointer#1385.motion(187310356, 30.60156250, 27.00000000) -[2618722.642] {Default Queue} wl_pointer#1417.motion(187310356, 30.60156250, 27.00000000) -[2618722.646] {Default Queue} wl_pointer#1449.motion(187310356, 30.60156250, 27.00000000) -[2618722.650] {Default Queue} wl_pointer#1481.motion(187310356, 30.60156250, 27.00000000) -[2618722.655] {Default Queue} wl_pointer#1513.motion(187310356, 30.60156250, 27.00000000) -[2618722.659] {Default Queue} wl_pointer#1545.motion(187310356, 30.60156250, 27.00000000) -[2618722.663] {Default Queue} wl_pointer#1577.motion(187310356, 30.60156250, 27.00000000) -[2618722.668] {Default Queue} wl_pointer#1609.motion(187310356, 30.60156250, 27.00000000) -[2618722.672] {Default Queue} wl_pointer#1641.motion(187310356, 30.60156250, 27.00000000) -[2618722.676] {Default Queue} wl_pointer#1673.motion(187310356, 30.60156250, 27.00000000) -[2618722.681] {Default Queue} wl_pointer#1705.motion(187310356, 30.60156250, 27.00000000) -[2618722.685] {Default Queue} wl_pointer#1737.motion(187310356, 30.60156250, 27.00000000) -[2618722.689] {Default Queue} wl_pointer#1762.motion(187310356, 30.60156250, 27.00000000) -[2618722.693] {Default Queue} wl_pointer#1801.motion(187310356, 30.60156250, 27.00000000) -[2618722.698] {Default Queue} wl_pointer#1833.motion(187310356, 30.60156250, 27.00000000) -[2618722.702] {Default Queue} wl_pointer#1865.motion(187310356, 30.60156250, 27.00000000) -[2618722.706] {Default Queue} wl_pointer#1897.motion(187310356, 30.60156250, 27.00000000) -[2618722.713] {Default Queue} wl_pointer#1929.motion(187310356, 30.60156250, 27.00000000) -[2618722.725] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) -[2618722.730] {Default Queue} -> wl_region#2687.add(0, 0, 2, 2) -[2618722.734] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618722.738] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618722.750] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) -[2618722.756] {Default Queue} -> wl_region#2687.add(0, 0, 2, 2) -[2618722.760] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618722.764] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618722.770] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) -[2618722.774] {Default Queue} -> wl_region#2687.add(0, 0, 2, 2) -[2618722.778] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618722.782] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618722.787] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) -[2618722.791] {Default Queue} -> wl_region#2687.add(0, 0, 2, 2) -[2618722.795] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618722.799] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618722.806] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) -[2618722.810] {Default Queue} -> wl_region#2687.add(0, 0, 2, 2) -[2618722.814] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618722.818] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618722.823] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) -[2618722.827] {Default Queue} -> wl_surface#2663.commit() -[2618722.831] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) -[2618722.836] {Default Queue} -> wl_surface#2663.commit() -[2618722.842] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) -[2618722.846] {Default Queue} -> wl_surface#2663.commit() -[2618722.853] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) -[2618722.857] {Default Queue} -> wl_surface#2887.commit() -[2618723.924] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) -[2618723.930] {Default Queue} -> wl_surface#2887.commit() -[2618723.939] {Default Queue} -> wl_region#2911.subtract(0, 0, 19, 48) -[2618723.945] {Default Queue} -> wl_region#2911.add(-20, -49, 19, 48) -[2618723.949] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2618723.953] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2618724.063] {Default Queue} -> wl_region#2911.subtract(0, 0, 19, 48) -[2618724.068] {Default Queue} -> wl_region#2911.add(-20, -49, 19, 48) -[2618724.072] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2618724.076] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2618724.083] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618724.087] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618724.163] {Default Queue} -> wl_region#2911.subtract(0, 0, 19, 48) -[2618724.168] {Default Queue} -> wl_region#2911.add(-20, -49, 19, 48) -[2618724.172] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2618724.176] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2618724.181] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618724.186] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618724.207] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) -[2618724.212] {Default Queue} -> wl_surface#2887.commit() -[2618724.226] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) -[2618724.231] {Default Queue} -> wl_surface#2887.commit() -[2618724.238] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) -[2618724.242] {Default Queue} -> wl_surface#2887.commit() -[2618724.248] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) -[2618724.252] {Default Queue} -> wl_surface#2951.commit() -[2618725.314] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) -[2618725.319] {Default Queue} -> wl_surface#2951.commit() -[2618725.326] {Default Queue} -> wl_region#2975.subtract(0, 0, 19, 48) -[2618725.330] {Default Queue} -> wl_region#2975.add(-20, -49, 19, 48) -[2618725.335] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618725.339] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618725.350] {Default Queue} -> wl_region#2975.subtract(0, 0, 19, 48) -[2618725.357] {Default Queue} -> wl_region#2975.add(-20, -49, 19, 48) -[2618725.361] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618725.365] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618725.370] {Default Queue} -> wl_region#2975.subtract(0, 0, 19, 48) -[2618725.375] {Default Queue} -> wl_region#2975.add(-20, -49, 19, 48) -[2618725.379] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618725.382] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618725.387] {Default Queue} -> wl_region#2975.subtract(0, 0, 19, 48) -[2618725.391] {Default Queue} -> wl_region#2975.add(-20, -49, 19, 48) -[2618725.395] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618725.399] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618725.404] {Default Queue} -> wl_region#2975.subtract(0, 0, 19, 48) -[2618725.408] {Default Queue} -> wl_region#2975.add(-20, -49, 19, 48) -[2618725.412] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618725.416] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618725.421] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) -[2618725.425] {Default Queue} -> wl_surface#2951.commit() -[2618725.429] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) -[2618725.433] {Default Queue} -> wl_surface#2951.commit() -[2618725.439] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) -[2618725.443] {Default Queue} -> wl_surface#2951.commit() -[2618725.448] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) -[2618725.452] {Default Queue} -> wl_surface#2919.commit() -[2618726.331] {Default Queue} wl_pointer#1961.motion(187310356, 30.60156250, 27.00000000) -[2618726.338] {Default Queue} wl_pointer#1993.motion(187310356, 30.60156250, 27.00000000) -[2618726.342] {Default Queue} wl_pointer#2025.motion(187310356, 30.60156250, 27.00000000) -[2618726.347] {Default Queue} wl_pointer#2057.motion(187310356, 30.60156250, 27.00000000) -[2618726.351] {Default Queue} wl_pointer#2089.motion(187310356, 30.60156250, 27.00000000) -[2618726.355] {Default Queue} wl_pointer#2121.motion(187310356, 30.60156250, 27.00000000) -[2618726.360] {Default Queue} wl_pointer#2153.motion(187310356, 30.60156250, 27.00000000) -[2618726.364] {Default Queue} wl_pointer#2185.motion(187310356, 30.60156250, 27.00000000) -[2618726.368] {Default Queue} wl_pointer#2217.motion(187310356, 30.60156250, 27.00000000) -[2618726.373] {Default Queue} wl_pointer#2249.motion(187310356, 30.60156250, 27.00000000) -[2618726.377] {Default Queue} wl_pointer#2281.motion(187310356, 30.60156250, 27.00000000) -[2618726.381] {Default Queue} wl_pointer#2313.motion(187310356, 30.60156250, 27.00000000) -[2618726.386] {Default Queue} wl_pointer#2345.motion(187310356, 30.60156250, 27.00000000) -[2618726.390] {Default Queue} wl_pointer#2377.motion(187310356, 30.60156250, 27.00000000) -[2618726.395] {Default Queue} wl_pointer#2409.motion(187310356, 30.60156250, 27.00000000) -[2618726.399] {Default Queue} wl_pointer#2441.motion(187310356, 30.60156250, 27.00000000) -[2618726.403] {Default Queue} wl_pointer#2473.motion(187310356, 30.60156250, 27.00000000) -[2618726.407] {Default Queue} wl_pointer#2498.motion(187310356, 30.60156250, 27.00000000) -[2618726.420] {Default Queue} -> wl_buffer#3677.destroy() -[2618726.425] {Default Queue} -> wl_buffer#3678.destroy() -[2618726.430] {Default Queue} -> wl_shm_pool#3675.destroy() -[2618726.434] {Default Queue} -> wl_shm_pool#3676.destroy() -[2618726.439] {Default Queue} -> wl_surface#3674.destroy() -[2618726.482] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#91, fd 575, 640) -[2618726.488] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 578, 640) -[2618726.493] {Default Queue} -> wl_shm_pool#91.create_buffer(new id wl_buffer#93, 0, 10, 16, 40, 0) -[2618726.498] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) -[2618726.516] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3683) -[2618726.523] {Default Queue} -> wl_surface#3683.attach(wl_buffer#93, 0, 0) -[2618726.528] {Default Queue} -> wl_surface#3683.commit() -[2618726.533] {Default Queue} -> wl_surface#3683.attach(wl_buffer#93, 0, 0) -[2618726.537] {Default Queue} -> wl_surface#3683.commit() -[2618726.541] {Default Queue} wl_pointer#2537.motion(187310356, 30.60156250, 27.00000000) -[2618726.546] {Default Queue} wl_pointer#2569.motion(187310356, 30.60156250, 27.00000000) -[2618726.550] {Default Queue} wl_pointer#2601.motion(187310356, 30.60156250, 27.00000000) -[2618726.555] {Default Queue} wl_pointer#2633.motion(187310356, 30.60156250, 27.00000000) -[2618726.559] {Default Queue} wl_pointer#2665.motion(187310356, 30.60156250, 27.00000000) -[2618726.563] {Default Queue} wl_pointer#2697.motion(187310356, 30.60156250, 27.00000000) -[2618726.568] {Default Queue} wl_pointer#2729.motion(187310356, 30.60156250, 27.00000000) -[2618726.572] {Default Queue} wl_pointer#2761.motion(187310356, 30.60156250, 27.00000000) -[2618726.576] {Default Queue} wl_pointer#2793.motion(187310356, 30.60156250, 27.00000000) -[2618726.581] {Default Queue} wl_pointer#2825.motion(187310356, 30.60156250, 27.00000000) -[2618726.585] {Default Queue} wl_pointer#2857.motion(187310356, 30.60156250, 27.00000000) -[2618726.589] {Default Queue} wl_pointer#2889.motion(187310356, 30.60156250, 27.00000000) -[2618726.594] {Default Queue} wl_pointer#2921.motion(187310356, 30.60156250, 27.00000000) -[2618726.598] {Default Queue} wl_pointer#2953.motion(187310356, 30.60156250, 27.00000000) -[2618726.602] {Default Queue} wl_pointer#2985.motion(187310356, 30.60156250, 27.00000000) -[2618726.607] {Default Queue} wl_pointer#3017.motion(187310356, 30.60156250, 27.00000000) -[2618726.611] {Default Queue} wl_pointer#3049.motion(187310356, 30.60156250, 27.00000000) -[2618726.615] {Default Queue} wl_pointer#3081.motion(187310356, 30.60156250, 27.00000000) -[2618726.620] {Default Queue} wl_pointer#3113.motion(187310356, 30.60156250, 27.00000000) -[2618726.624] {Default Queue} wl_pointer#3145.motion(187310356, 30.60156250, 27.00000000) -[2618726.628] {Default Queue} wl_pointer#3177.motion(187310356, 30.60156250, 27.00000000) -[2618726.632] {Default Queue} wl_pointer#3209.motion(187310356, 30.60156250, 27.00000000) -[2618726.637] {Default Queue} wl_pointer#3241.motion(187310356, 30.60156250, 27.00000000) -[2618726.641] {Default Queue} wl_pointer#3273.motion(187310356, 30.60156250, 27.00000000) -[2618726.645] {Default Queue} wl_pointer#3305.motion(187310356, 30.60156250, 27.00000000) -[2618726.650] {Default Queue} wl_pointer#3337.motion(187310356, 30.60156250, 27.00000000) -[2618726.654] {Default Queue} wl_pointer#3369.motion(187310356, 30.60156250, 27.00000000) -[2618726.658] {Default Queue} wl_pointer#3401.motion(187310356, 30.60156250, 27.00000000) -[2618726.663] {Default Queue} wl_pointer#3433.motion(187310356, 30.60156250, 27.00000000) -[2618726.667] {Default Queue} wl_pointer#3465.motion(187310356, 30.60156250, 27.00000000) -[2618726.672] {Default Queue} wl_pointer#3497.motion(187310356, 30.60156250, 27.00000000) -[2618726.676] {Default Queue} wl_pointer#3529.motion(187310356, 30.60156250, 27.00000000) -[2618726.680] {Default Queue} wl_pointer#3561.motion(187310356, 30.60156250, 27.00000000) -[2618726.685] {Default Queue} wl_pointer#3593.motion(187310356, 30.60156250, 27.00000000) -[2618726.689] {Default Queue} wl_pointer#3625.motion(187310356, 30.60156250, 27.00000000) -[2618726.693] {Default Queue} wl_pointer#3657.motion(187310356, 30.60156250, 27.00000000) -[2618726.697] {Default Queue} wl_pointer#3695.motion(187310356, 30.60156250, 27.00000000) -[2618726.706] {Default Queue} -> wl_region#2943.subtract(0, 0, 19, 48) -[2618726.710] {Default Queue} -> wl_region#2943.add(-20, -49, 19, 48) -[2618726.715] {Default Queue} -> wl_surface#2919.set_opaque_region(wl_region#2944) -[2618726.719] {Default Queue} -> wl_surface#2919.set_input_region(wl_region#2943) -[2618726.724] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) -[2618726.733] {Default Queue} -> wl_surface#2919.commit() -[2618726.739] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) -[2618726.743] {Default Queue} -> wl_surface#2919.commit() -[2618726.768] {Default Queue} wl_pointer#24.motion(187310361, 30.60156250, 26.19921875) -[2618726.773] {Default Queue} wl_pointer#81.motion(187310361, 30.60156250, 26.19921875) -[2618726.779] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618726.783] {Default Queue} wl_pointer#105.motion(187310361, 30.60156250, 26.19921875) -[2618726.788] {Default Queue} wl_pointer#137.motion(187310361, 30.60156250, 26.19921875) -[2618726.792] {Default Queue} wl_pointer#169.motion(187310361, 30.60156250, 26.19921875) -[2618726.796] {Default Queue} wl_pointer#201.motion(187310361, 30.60156250, 26.19921875) -[2618726.800] {Default Queue} wl_pointer#233.motion(187310361, 30.60156250, 26.19921875) -[2618726.805] {Default Queue} wl_pointer#265.motion(187310361, 30.60156250, 26.19921875) -[2618726.809] {Default Queue} wl_pointer#297.motion(187310361, 30.60156250, 26.19921875) -[2618726.813] {Default Queue} wl_pointer#329.motion(187310361, 30.60156250, 26.19921875) -[2618726.818] {Default Queue} wl_pointer#361.motion(187310361, 30.60156250, 26.19921875) -[2618726.822] {Default Queue} wl_pointer#393.motion(187310361, 30.60156250, 26.19921875) -[2618726.826] {Default Queue} wl_pointer#425.motion(187310361, 30.60156250, 26.19921875) -[2618726.830] {Default Queue} wl_pointer#457.motion(187310361, 30.60156250, 26.19921875) -[2618726.835] {Default Queue} wl_pointer#489.motion(187310361, 30.60156250, 26.19921875) -[2618726.839] {Default Queue} wl_pointer#521.motion(187310361, 30.60156250, 26.19921875) -[2618726.843] {Default Queue} wl_pointer#553.motion(187310361, 30.60156250, 26.19921875) -[2618726.847] {Default Queue} wl_pointer#585.motion(187310361, 30.60156250, 26.19921875) -[2618726.852] {Default Queue} wl_pointer#617.motion(187310361, 30.60156250, 26.19921875) -[2618726.856] {Default Queue} wl_pointer#649.motion(187310361, 30.60156250, 26.19921875) -[2618726.866] {Default Queue} wl_pointer#681.motion(187310361, 30.60156250, 26.19921875) -[2618726.870] {Default Queue} wl_pointer#713.motion(187310361, 30.60156250, 26.19921875) -[2618726.874] {Default Queue} wl_pointer#745.motion(187310361, 30.60156250, 26.19921875) -[2618726.879] {Default Queue} wl_pointer#777.motion(187310361, 30.60156250, 26.19921875) -[2618726.903] {Default Queue} wl_pointer#809.motion(187310361, 30.60156250, 26.19921875) -[2618726.943] {Default Queue} wl_pointer#841.motion(187310361, 30.60156250, 26.19921875) -[2618726.964] {Default Queue} wl_pointer#873.motion(187310361, 30.60156250, 26.19921875) -[2618726.972] {Default Queue} wl_pointer#905.motion(187310361, 30.60156250, 26.19921875) -[2618726.977] {Default Queue} wl_pointer#937.motion(187310361, 30.60156250, 26.19921875) -[2618726.984] {Default Queue} wl_pointer#969.motion(187310361, 30.60156250, 26.19921875) -[2618726.989] {Default Queue} wl_pointer#1001.motion(187310361, 30.60156250, 26.19921875) -[2618726.994] {Default Queue} wl_pointer#1033.motion(187310361, 30.60156250, 26.19921875) -[2618726.999] {Default Queue} wl_pointer#1065.motion(187310361, 30.60156250, 26.19921875) -[2618727.004] {Default Queue} wl_pointer#1097.motion(187310361, 30.60156250, 26.19921875) -[2618727.009] {Default Queue} wl_pointer#1129.motion(187310361, 30.60156250, 26.19921875) -[2618727.015] {Default Queue} wl_pointer#1161.motion(187310361, 30.60156250, 26.19921875) -[2618727.020] {Default Queue} wl_pointer#1193.motion(187310361, 30.60156250, 26.19921875) -[2618727.025] {Default Queue} wl_pointer#1225.motion(187310361, 30.60156250, 26.19921875) -[2618727.030] {Default Queue} wl_pointer#1257.motion(187310361, 30.60156250, 26.19921875) -[2618727.036] {Default Queue} wl_pointer#1289.motion(187310361, 30.60156250, 26.19921875) -[2618727.041] {Default Queue} wl_pointer#1321.motion(187310361, 30.60156250, 26.19921875) -[2618727.046] {Default Queue} wl_pointer#1353.motion(187310361, 30.60156250, 26.19921875) -[2618727.051] {Default Queue} wl_pointer#1385.motion(187310361, 30.60156250, 26.19921875) -[2618727.064] {Default Queue} wl_pointer#1417.motion(187310361, 30.60156250, 26.19921875) -[2618727.073] {Default Queue} wl_pointer#1449.motion(187310361, 30.60156250, 26.19921875) -[2618727.078] {Default Queue} wl_pointer#1481.motion(187310361, 30.60156250, 26.19921875) -[2618727.083] {Default Queue} wl_pointer#1513.motion(187310361, 30.60156250, 26.19921875) -[2618727.088] {Default Queue} wl_pointer#1545.motion(187310361, 30.60156250, 26.19921875) -[2618727.093] {Default Queue} wl_pointer#1577.motion(187310361, 30.60156250, 26.19921875) -[2618727.099] {Default Queue} wl_pointer#1609.motion(187310361, 30.60156250, 26.19921875) -[2618727.105] {Default Queue} wl_pointer#1641.motion(187310361, 30.60156250, 26.19921875) -[2618727.111] {Default Queue} wl_pointer#1673.motion(187310361, 30.60156250, 26.19921875) -[2618727.117] {Default Queue} wl_pointer#1705.motion(187310361, 30.60156250, 26.19921875) -[2618727.123] {Default Queue} wl_pointer#1737.motion(187310361, 30.60156250, 26.19921875) -[2618727.129] {Default Queue} wl_pointer#1762.motion(187310361, 30.60156250, 26.19921875) -[2618727.135] {Default Queue} wl_pointer#1801.motion(187310361, 30.60156250, 26.19921875) -[2618727.141] {Default Queue} wl_pointer#1833.motion(187310361, 30.60156250, 26.19921875) -[2618727.148] {Default Queue} wl_pointer#1865.motion(187310361, 30.60156250, 26.19921875) -[2618727.154] {Default Queue} wl_pointer#1897.motion(187310361, 30.60156250, 26.19921875) -[2618727.160] {Default Queue} wl_pointer#1929.motion(187310361, 30.60156250, 26.19921875) -[2618727.166] {Default Queue} wl_pointer#1961.motion(187310361, 30.60156250, 26.19921875) -[2618727.172] {Default Queue} wl_pointer#1993.motion(187310361, 30.60156250, 26.19921875) -[2618727.178] {Default Queue} wl_pointer#2025.motion(187310361, 30.60156250, 26.19921875) -[2618727.185] {Default Queue} wl_pointer#2057.motion(187310361, 30.60156250, 26.19921875) -[2618727.191] {Default Queue} wl_pointer#2089.motion(187310361, 30.60156250, 26.19921875) -[2618727.197] {Default Queue} wl_pointer#2121.motion(187310361, 30.60156250, 26.19921875) -[2618727.203] {Default Queue} wl_pointer#2153.motion(187310361, 30.60156250, 26.19921875) -[2618727.209] {Default Queue} wl_pointer#2185.motion(187310361, 30.60156250, 26.19921875) -[2618727.215] {Default Queue} wl_pointer#2217.motion(187310361, 30.60156250, 26.19921875) -[2618727.221] {Default Queue} wl_pointer#2249.motion(187310361, 30.60156250, 26.19921875) -[2618727.227] {Default Queue} wl_pointer#2281.motion(187310361, 30.60156250, 26.19921875) -[2618727.233] {Default Queue} wl_pointer#2313.motion(187310361, 30.60156250, 26.19921875) -[2618727.240] {Default Queue} wl_pointer#2345.motion(187310361, 30.60156250, 26.19921875) -[2618727.247] {Default Queue} wl_pointer#2377.motion(187310361, 30.60156250, 26.19921875) -[2618727.253] {Default Queue} wl_pointer#2409.motion(187310361, 30.60156250, 26.19921875) -[2618727.259] {Default Queue} wl_pointer#2441.motion(187310361, 30.60156250, 26.19921875) -[2618727.265] {Default Queue} wl_pointer#2473.motion(187310361, 30.60156250, 26.19921875) -[2618727.271] {Default Queue} wl_pointer#2498.motion(187310361, 30.60156250, 26.19921875) -[2618727.292] {Default Queue} -> wl_buffer#93.destroy() -[2618727.300] {Default Queue} -> wl_buffer#94.destroy() -[2618727.306] {Default Queue} -> wl_shm_pool#91.destroy() -[2618727.311] {Default Queue} -> wl_shm_pool#92.destroy() -[2618727.318] {Default Queue} -> wl_surface#3683.destroy() -[2618727.379] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3454, fd 581, 640) -[2618727.389] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3517, fd 582, 640) -[2618727.395] {Default Queue} -> wl_shm_pool#3454.create_buffer(new id wl_buffer#3518, 0, 10, 16, 40, 0) -[2618727.402] {Default Queue} -> wl_shm_pool#3517.create_buffer(new id wl_buffer#3451, 0, 10, 16, 40, 0) -[2618727.413] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3452) -[2618727.418] {Default Queue} -> wl_surface#3452.attach(wl_buffer#3518, 0, 0) -[2618727.424] {Default Queue} -> wl_surface#3452.commit() -[2618727.446] {Default Queue} -> wl_surface#3452.attach(wl_buffer#3518, 0, 0) -[2618727.454] {Default Queue} -> wl_surface#3452.commit() -[2618727.461] {Default Queue} wl_pointer#2537.motion(187310361, 30.60156250, 26.19921875) -[2618727.467] {Default Queue} wl_pointer#2569.motion(187310361, 30.60156250, 26.19921875) -[2618727.473] {Default Queue} wl_pointer#2601.motion(187310361, 30.60156250, 26.19921875) -[2618727.479] {Default Queue} wl_pointer#2633.motion(187310361, 30.60156250, 26.19921875) -[2618727.486] {Default Queue} wl_pointer#2665.motion(187310361, 30.60156250, 26.19921875) -[2618727.491] {Default Queue} wl_pointer#2697.motion(187310361, 30.60156250, 26.19921875) -[2618727.498] {Default Queue} wl_pointer#2729.motion(187310361, 30.60156250, 26.19921875) -[2618727.504] {Default Queue} wl_pointer#2761.motion(187310361, 30.60156250, 26.19921875) -[2618727.510] {Default Queue} wl_pointer#2793.motion(187310361, 30.60156250, 26.19921875) -[2618727.516] {Default Queue} wl_pointer#2825.motion(187310361, 30.60156250, 26.19921875) -[2618727.523] {Default Queue} wl_pointer#2857.motion(187310361, 30.60156250, 26.19921875) -[2618727.529] {Default Queue} wl_pointer#2889.motion(187310361, 30.60156250, 26.19921875) -[2618727.535] {Default Queue} wl_pointer#2921.motion(187310361, 30.60156250, 26.19921875) -[2618727.541] {Default Queue} wl_pointer#2953.motion(187310361, 30.60156250, 26.19921875) -[2618727.547] {Default Queue} wl_pointer#2985.motion(187310361, 30.60156250, 26.19921875) -[2618727.553] {Default Queue} wl_pointer#3017.motion(187310361, 30.60156250, 26.19921875) -[2618727.559] {Default Queue} wl_pointer#3049.motion(187310361, 30.60156250, 26.19921875) -[2618727.564] {Default Queue} wl_pointer#3081.motion(187310361, 30.60156250, 26.19921875) -[2618727.570] {Default Queue} wl_pointer#3113.motion(187310361, 30.60156250, 26.19921875) -[2618727.576] {Default Queue} wl_pointer#3145.motion(187310361, 30.60156250, 26.19921875) -[2618727.582] {Default Queue} wl_pointer#3177.motion(187310361, 30.60156250, 26.19921875) -[2618727.588] {Default Queue} wl_pointer#3209.motion(187310361, 30.60156250, 26.19921875) -[2618727.595] {Default Queue} wl_pointer#3241.motion(187310361, 30.60156250, 26.19921875) -[2618727.601] {Default Queue} wl_pointer#3273.motion(187310361, 30.60156250, 26.19921875) -[2618727.607] {Default Queue} wl_pointer#3305.motion(187310361, 30.60156250, 26.19921875) -[2618727.615] {Default Queue} wl_pointer#3337.motion(187310361, 30.60156250, 26.19921875) -[2618727.621] {Default Queue} wl_pointer#3369.motion(187310361, 30.60156250, 26.19921875) -[2618727.627] {Default Queue} wl_pointer#3401.motion(187310361, 30.60156250, 26.19921875) -[2618727.633] {Default Queue} wl_pointer#3433.motion(187310361, 30.60156250, 26.19921875) -[2618727.640] {Default Queue} wl_pointer#3465.motion(187310361, 30.60156250, 26.19921875) -[2618727.646] {Default Queue} wl_pointer#3497.motion(187310361, 30.60156250, 26.19921875) -[2618727.652] {Default Queue} wl_pointer#3529.motion(187310361, 30.60156250, 26.19921875) -[2618727.658] {Default Queue} wl_pointer#3561.motion(187310361, 30.60156250, 26.19921875) -[2618727.664] {Default Queue} wl_pointer#3593.motion(187310361, 30.60156250, 26.19921875) -[2618727.671] {Default Queue} wl_pointer#3625.motion(187310361, 30.60156250, 26.19921875) -[2618727.677] {Default Queue} wl_pointer#3657.motion(187310361, 30.60156250, 26.19921875) -[2618727.683] {Default Queue} wl_pointer#3695.motion(187310361, 30.60156250, 26.19921875) -[2618727.688] {Default Queue} wl_pointer#24.motion(187310361, 30.19921875, 25.80078125) -[2618727.694] {Default Queue} wl_pointer#81.motion(187310361, 30.19921875, 25.80078125) -[2618727.702] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618727.708] {Default Queue} wl_pointer#105.motion(187310361, 30.19921875, 25.80078125) -[2618727.714] {Default Queue} wl_pointer#137.motion(187310361, 30.19921875, 25.80078125) -[2618727.720] {Default Queue} wl_pointer#169.motion(187310361, 30.19921875, 25.80078125) -[2618727.726] {Default Queue} wl_pointer#201.motion(187310361, 30.19921875, 25.80078125) -[2618727.736] {Default Queue} wl_pointer#233.motion(187310361, 30.19921875, 25.80078125) -[2618727.745] {Default Queue} wl_pointer#265.motion(187310361, 30.19921875, 25.80078125) -[2618727.752] {Default Queue} wl_pointer#297.motion(187310361, 30.19921875, 25.80078125) -[2618727.758] {Default Queue} wl_pointer#329.motion(187310361, 30.19921875, 25.80078125) -[2618727.764] {Default Queue} wl_pointer#361.motion(187310361, 30.19921875, 25.80078125) -[2618727.770] {Default Queue} wl_pointer#393.motion(187310361, 30.19921875, 25.80078125) -[2618727.776] {Default Queue} wl_pointer#425.motion(187310361, 30.19921875, 25.80078125) -[2618727.782] {Default Queue} wl_pointer#457.motion(187310361, 30.19921875, 25.80078125) -[2618727.788] {Default Queue} wl_pointer#489.motion(187310361, 30.19921875, 25.80078125) -[2618727.794] {Default Queue} wl_pointer#521.motion(187310361, 30.19921875, 25.80078125) -[2618727.800] {Default Queue} wl_pointer#553.motion(187310361, 30.19921875, 25.80078125) -[2618727.806] {Default Queue} wl_pointer#585.motion(187310361, 30.19921875, 25.80078125) -[2618727.812] {Default Queue} wl_pointer#617.motion(187310361, 30.19921875, 25.80078125) -[2618727.818] {Default Queue} wl_pointer#649.motion(187310361, 30.19921875, 25.80078125) -[2618727.825] {Default Queue} wl_pointer#681.motion(187310361, 30.19921875, 25.80078125) -[2618727.831] {Default Queue} wl_pointer#713.motion(187310361, 30.19921875, 25.80078125) -[2618727.836] {Default Queue} wl_pointer#745.motion(187310361, 30.19921875, 25.80078125) -[2618727.842] {Default Queue} wl_pointer#777.motion(187310361, 30.19921875, 25.80078125) -[2618727.848] {Default Queue} wl_pointer#809.motion(187310361, 30.19921875, 25.80078125) -[2618727.854] {Default Queue} wl_pointer#841.motion(187310361, 30.19921875, 25.80078125) -[2618727.860] {Default Queue} wl_pointer#873.motion(187310361, 30.19921875, 25.80078125) -[2618727.877] {Default Queue} wl_pointer#905.motion(187310361, 30.19921875, 25.80078125) -[2618727.883] {Default Queue} wl_pointer#937.motion(187310361, 30.19921875, 25.80078125) -[2618727.889] {Default Queue} wl_pointer#969.motion(187310361, 30.19921875, 25.80078125) -[2618727.894] {Default Queue} wl_pointer#1001.motion(187310361, 30.19921875, 25.80078125) -[2618727.900] {Default Queue} wl_pointer#1033.motion(187310361, 30.19921875, 25.80078125) -[2618727.906] {Default Queue} wl_pointer#1065.motion(187310361, 30.19921875, 25.80078125) -[2618727.911] {Default Queue} wl_pointer#1097.motion(187310361, 30.19921875, 25.80078125) -[2618727.917] {Default Queue} wl_pointer#1129.motion(187310361, 30.19921875, 25.80078125) -[2618727.923] {Default Queue} wl_pointer#1161.motion(187310361, 30.19921875, 25.80078125) -[2618727.929] {Default Queue} wl_pointer#1193.motion(187310361, 30.19921875, 25.80078125) -[2618727.936] {Default Queue} wl_pointer#1225.motion(187310361, 30.19921875, 25.80078125) -[2618727.941] {Default Queue} wl_pointer#1257.motion(187310361, 30.19921875, 25.80078125) -[2618727.948] {Default Queue} wl_pointer#1289.motion(187310361, 30.19921875, 25.80078125) -[2618727.953] {Default Queue} wl_pointer#1321.motion(187310361, 30.19921875, 25.80078125) -[2618727.959] {Default Queue} wl_pointer#1353.motion(187310361, 30.19921875, 25.80078125) -[2618727.965] {Default Queue} wl_pointer#1385.motion(187310361, 30.19921875, 25.80078125) -[2618727.970] {Default Queue} wl_pointer#1417.motion(187310361, 30.19921875, 25.80078125) -[2618727.976] {Default Queue} wl_pointer#1449.motion(187310361, 30.19921875, 25.80078125) -[2618727.982] {Default Queue} wl_pointer#1481.motion(187310361, 30.19921875, 25.80078125) -[2618727.988] {Default Queue} wl_pointer#1513.motion(187310361, 30.19921875, 25.80078125) -[2618727.994] {Default Queue} wl_pointer#1545.motion(187310361, 30.19921875, 25.80078125) -[2618728.000] {Default Queue} wl_pointer#1577.motion(187310361, 30.19921875, 25.80078125) -[2618728.005] {Default Queue} wl_pointer#1609.motion(187310361, 30.19921875, 25.80078125) -[2618728.011] {Default Queue} wl_pointer#1641.motion(187310361, 30.19921875, 25.80078125) -[2618728.017] {Default Queue} wl_pointer#1673.motion(187310361, 30.19921875, 25.80078125) -[2618728.026] {Default Queue} wl_pointer#1705.motion(187310361, 30.19921875, 25.80078125) -[2618728.034] {Default Queue} wl_pointer#1737.motion(187310361, 30.19921875, 25.80078125) -[2618728.040] {Default Queue} wl_pointer#1762.motion(187310361, 30.19921875, 25.80078125) -[2618728.045] {Default Queue} wl_pointer#1801.motion(187310361, 30.19921875, 25.80078125) -[2618728.051] {Default Queue} wl_pointer#1833.motion(187310361, 30.19921875, 25.80078125) -[2618728.057] {Default Queue} wl_pointer#1865.motion(187310361, 30.19921875, 25.80078125) -[2618728.062] {Default Queue} wl_pointer#1897.motion(187310361, 30.19921875, 25.80078125) -[2618728.068] {Default Queue} wl_pointer#1929.motion(187310361, 30.19921875, 25.80078125) -[2618728.074] {Default Queue} wl_pointer#1961.motion(187310361, 30.19921875, 25.80078125) -[2618728.080] {Default Queue} wl_pointer#1993.motion(187310361, 30.19921875, 25.80078125) -[2618728.085] {Default Queue} wl_pointer#2025.motion(187310361, 30.19921875, 25.80078125) -[2618728.091] {Default Queue} wl_pointer#2057.motion(187310361, 30.19921875, 25.80078125) -[2618728.096] {Default Queue} wl_pointer#2089.motion(187310361, 30.19921875, 25.80078125) -[2618728.101] {Default Queue} wl_pointer#2121.motion(187310361, 30.19921875, 25.80078125) -[2618728.105] {Default Queue} wl_pointer#2153.motion(187310361, 30.19921875, 25.80078125) -[2618728.110] {Default Queue} wl_pointer#2185.motion(187310361, 30.19921875, 25.80078125) -[2618728.114] {Default Queue} wl_pointer#2217.motion(187310361, 30.19921875, 25.80078125) -[2618728.119] {Default Queue} wl_pointer#2249.motion(187310361, 30.19921875, 25.80078125) -[2618728.124] {Default Queue} wl_pointer#2281.motion(187310361, 30.19921875, 25.80078125) -[2618728.129] {Default Queue} wl_pointer#2313.motion(187310361, 30.19921875, 25.80078125) -[2618728.133] {Default Queue} wl_pointer#2345.motion(187310361, 30.19921875, 25.80078125) -[2618728.138] {Default Queue} wl_pointer#2377.motion(187310361, 30.19921875, 25.80078125) -[2618728.143] {Default Queue} wl_pointer#2409.motion(187310361, 30.19921875, 25.80078125) -[2618728.147] {Default Queue} wl_pointer#2441.motion(187310361, 30.19921875, 25.80078125) -[2618728.152] {Default Queue} wl_pointer#2473.motion(187310361, 30.19921875, 25.80078125) -[2618728.156] {Default Queue} wl_pointer#2498.motion(187310361, 30.19921875, 25.80078125) -[2618728.166] {Default Queue} -> wl_buffer#3518.destroy() -[2618728.172] {Default Queue} -> wl_buffer#3451.destroy() -[2618728.176] {Default Queue} -> wl_shm_pool#3454.destroy() -[2618728.181] {Default Queue} -> wl_shm_pool#3517.destroy() -[2618728.186] {Default Queue} -> wl_surface#3452.destroy() -[2618728.218] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3682, fd 583, 640) -[2618728.225] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 584, 640) -[2618728.230] {Default Queue} -> wl_shm_pool#3682.create_buffer(new id wl_buffer#3684, 0, 10, 16, 40, 0) -[2618728.234] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) -[2618728.242] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3671) -[2618728.247] {Default Queue} -> wl_surface#3671.attach(wl_buffer#3684, 0, 0) -[2618728.251] {Default Queue} -> wl_surface#3671.commit() -[2618728.256] {Default Queue} -> wl_surface#3671.attach(wl_buffer#3684, 0, 0) -[2618728.261] {Default Queue} -> wl_surface#3671.commit() -[2618728.265] {Default Queue} wl_pointer#2537.motion(187310361, 30.19921875, 25.80078125) -[2618728.270] {Default Queue} wl_pointer#2569.motion(187310361, 30.19921875, 25.80078125) -[2618728.275] {Default Queue} wl_pointer#2601.motion(187310361, 30.19921875, 25.80078125) -[2618728.279] {Default Queue} wl_pointer#2633.motion(187310361, 30.19921875, 25.80078125) -[2618728.284] {Default Queue} wl_pointer#2665.motion(187310361, 30.19921875, 25.80078125) -[2618728.288] {Default Queue} wl_pointer#2697.motion(187310361, 30.19921875, 25.80078125) -[2618728.293] {Default Queue} wl_pointer#2729.motion(187310361, 30.19921875, 25.80078125) -[2618728.297] {Default Queue} wl_pointer#2761.motion(187310361, 30.19921875, 25.80078125) -[2618728.304] {Default Queue} wl_pointer#2793.motion(187310361, 30.19921875, 25.80078125) -[2618728.310] {Default Queue} wl_pointer#2825.motion(187310361, 30.19921875, 25.80078125) -[2618728.315] {Default Queue} wl_pointer#2857.motion(187310361, 30.19921875, 25.80078125) -[2618728.320] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) -[2618728.325] {Default Queue} -> wl_surface#2919.commit() -[2618729.394] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) -[2618729.400] {Default Queue} -> wl_surface#2919.commit() -[2618729.407] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) -[2618729.411] {Default Queue} -> wl_surface#2919.commit() -[2618729.418] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) -[2618729.422] {Default Queue} -> wl_surface#2855.commit() -[2618730.483] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) -[2618730.488] {Default Queue} -> wl_surface#2855.commit() -[2618730.500] {Default Queue} -> wl_region#2879.subtract(0, 0, 22, 51) -[2618730.506] {Default Queue} -> wl_region#2879.add(-20, -49, 19, 48) -[2618730.511] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) -[2618730.516] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) -[2618730.522] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) -[2618730.526] {Default Queue} -> wl_surface#2855.commit() -[2618730.531] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) -[2618730.535] {Default Queue} -> wl_surface#2855.commit() -[2618730.541] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) -[2618730.545] {Default Queue} -> wl_surface#2855.commit() -[2618730.552] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) -[2618730.556] {Default Queue} -> wl_surface#2823.commit() -[2618731.402] {Default Queue} wl_pointer#2889.motion(187310361, 30.19921875, 25.80078125) -[2618731.414] {Default Queue} wl_pointer#2921.motion(187310361, 30.19921875, 25.80078125) -[2618731.420] {Default Queue} wl_pointer#2953.motion(187310361, 30.19921875, 25.80078125) -[2618731.425] {Default Queue} wl_pointer#2985.motion(187310361, 30.19921875, 25.80078125) -[2618731.429] {Default Queue} wl_pointer#3017.motion(187310361, 30.19921875, 25.80078125) -[2618731.434] {Default Queue} wl_pointer#3049.motion(187310361, 30.19921875, 25.80078125) -[2618731.439] {Default Queue} wl_pointer#3081.motion(187310361, 30.19921875, 25.80078125) -[2618731.444] {Default Queue} wl_pointer#3113.motion(187310361, 30.19921875, 25.80078125) -[2618731.449] {Default Queue} wl_pointer#3145.motion(187310361, 30.19921875, 25.80078125) -[2618731.453] {Default Queue} wl_pointer#3177.motion(187310361, 30.19921875, 25.80078125) -[2618731.458] {Default Queue} wl_pointer#3209.motion(187310361, 30.19921875, 25.80078125) -[2618731.462] {Default Queue} wl_pointer#3241.motion(187310361, 30.19921875, 25.80078125) -[2618731.467] {Default Queue} wl_pointer#3273.motion(187310361, 30.19921875, 25.80078125) -[2618731.471] {Default Queue} wl_pointer#3305.motion(187310361, 30.19921875, 25.80078125) -[2618731.476] {Default Queue} wl_pointer#3337.motion(187310361, 30.19921875, 25.80078125) -[2618731.480] {Default Queue} wl_pointer#3369.motion(187310361, 30.19921875, 25.80078125) -[2618731.485] {Default Queue} wl_pointer#3401.motion(187310361, 30.19921875, 25.80078125) -[2618731.489] {Default Queue} wl_pointer#3433.motion(187310361, 30.19921875, 25.80078125) -[2618731.494] {Default Queue} wl_pointer#3465.motion(187310361, 30.19921875, 25.80078125) -[2618731.499] {Default Queue} wl_pointer#3497.motion(187310361, 30.19921875, 25.80078125) -[2618731.504] {Default Queue} wl_pointer#3529.motion(187310361, 30.19921875, 25.80078125) -[2618731.508] {Default Queue} wl_pointer#3561.motion(187310361, 30.19921875, 25.80078125) -[2618731.513] {Default Queue} wl_pointer#3593.motion(187310361, 30.19921875, 25.80078125) -[2618731.517] {Default Queue} wl_pointer#3625.motion(187310361, 30.19921875, 25.80078125) -[2618731.522] {Default Queue} wl_pointer#3657.motion(187310361, 30.19921875, 25.80078125) -[2618731.531] {Default Queue} wl_pointer#3695.motion(187310361, 30.19921875, 25.80078125) -[2618731.538] {Default Queue} discarded wl_surface#69.enter(wl_output#18) -[2618731.542] {Default Queue} discarded wl_surface#69.enter(wl_output#57) -[2618731.546] {Default Queue} discarded wl_surface#69.enter(wl_output#89) -[2618731.550] {Default Queue} discarded wl_surface#69.enter(wl_output#121) -[2618731.554] {Default Queue} discarded wl_surface#69.enter(wl_output#153) -[2618731.558] {Default Queue} discarded wl_surface#69.enter(wl_output#185) -[2618731.561] {Default Queue} discarded wl_surface#69.enter(wl_output#217) -[2618731.565] {Default Queue} discarded wl_surface#69.enter(wl_output#249) -[2618731.569] {Default Queue} discarded wl_surface#69.enter(wl_output#281) -[2618731.573] {Default Queue} discarded wl_surface#69.enter(wl_output#313) -[2618731.577] {Default Queue} discarded wl_surface#69.enter(wl_output#345) -[2618731.580] {Default Queue} discarded wl_surface#69.enter(wl_output#377) -[2618731.584] {Default Queue} discarded wl_surface#69.enter(wl_output#409) -[2618731.588] {Default Queue} discarded wl_surface#69.enter(wl_output#441) -[2618731.592] {Default Queue} discarded wl_surface#69.enter(wl_output#473) -[2618731.595] {Default Queue} discarded wl_surface#69.enter(wl_output#505) -[2618731.599] {Default Queue} discarded wl_surface#69.enter(wl_output#537) -[2618731.603] {Default Queue} discarded wl_surface#69.enter(wl_output#569) -[2618731.607] {Default Queue} discarded wl_surface#69.enter(wl_output#601) -[2618731.611] {Default Queue} discarded wl_surface#69.enter(wl_output#633) -[2618731.615] {Default Queue} discarded wl_surface#69.enter(wl_output#665) -[2618731.618] {Default Queue} discarded wl_surface#69.enter(wl_output#697) -[2618731.622] {Default Queue} discarded wl_surface#69.enter(wl_output#729) -[2618731.626] {Default Queue} discarded wl_surface#69.enter(wl_output#761) -[2618731.630] {Default Queue} discarded wl_surface#69.enter(wl_output#793) -[2618731.634] {Default Queue} discarded wl_surface#69.enter(wl_output#825) -[2618731.637] {Default Queue} discarded wl_surface#69.enter(wl_output#857) -[2618731.641] {Default Queue} discarded wl_surface#69.enter(wl_output#889) -[2618731.645] {Default Queue} discarded wl_surface#69.enter(wl_output#921) -[2618731.649] {Default Queue} discarded wl_surface#69.enter(wl_output#953) -[2618731.653] {Default Queue} discarded wl_surface#69.enter(wl_output#985) -[2618731.656] {Default Queue} discarded wl_surface#69.enter(wl_output#1017) -[2618731.660] {Default Queue} discarded wl_surface#69.enter(wl_output#1049) -[2618731.664] {Default Queue} discarded wl_surface#69.enter(wl_output#1081) -[2618731.668] {Default Queue} discarded wl_surface#69.enter(wl_output#1113) -[2618731.672] {Default Queue} discarded wl_surface#69.enter(wl_output#1145) -[2618731.675] {Default Queue} discarded wl_surface#69.enter(wl_output#1177) -[2618731.679] {Default Queue} discarded wl_surface#69.enter(wl_output#1209) -[2618731.683] {Default Queue} discarded wl_surface#69.enter(wl_output#1241) -[2618731.687] {Default Queue} discarded wl_surface#69.enter(wl_output#1273) -[2618731.690] {Default Queue} discarded wl_surface#69.enter(wl_output#1305) -[2618731.694] {Default Queue} discarded wl_surface#69.enter(wl_output#1337) -[2618731.698] {Default Queue} discarded wl_surface#69.enter(wl_output#1369) -[2618731.702] {Default Queue} discarded wl_surface#69.enter(wl_output#1401) -[2618731.706] {Default Queue} discarded wl_surface#69.enter(wl_output#1433) -[2618731.709] {Default Queue} discarded wl_surface#69.enter(wl_output#1465) -[2618731.713] {Default Queue} discarded wl_surface#69.enter(wl_output#1497) -[2618731.717] {Default Queue} discarded wl_surface#69.enter(wl_output#1529) -[2618731.721] {Default Queue} discarded wl_surface#69.enter(wl_output#1561) -[2618731.725] {Default Queue} discarded wl_surface#69.enter(wl_output#1593) -[2618731.728] {Default Queue} discarded wl_surface#69.enter(wl_output#1625) -[2618731.732] {Default Queue} discarded wl_surface#69.enter(wl_output#1657) -[2618731.736] {Default Queue} discarded wl_surface#69.enter(wl_output#1689) -[2618731.743] {Default Queue} discarded wl_surface#69.enter(wl_output#1721) -[2618731.748] {Default Queue} discarded wl_surface#69.enter(wl_output#1753) -[2618731.752] {Default Queue} discarded wl_surface#69.enter(wl_output#1785) -[2618731.756] {Default Queue} discarded wl_surface#69.enter(wl_output#1817) -[2618731.760] {Default Queue} discarded wl_surface#69.enter(wl_output#1849) -[2618731.764] {Default Queue} discarded wl_surface#69.enter(wl_output#1881) -[2618731.767] {Default Queue} discarded wl_surface#69.enter(wl_output#1913) -[2618731.771] {Default Queue} discarded wl_surface#69.enter(wl_output#1945) -[2618731.775] {Default Queue} discarded wl_surface#69.enter(wl_output#1977) -[2618731.779] {Default Queue} discarded wl_surface#69.enter(wl_output#2009) -[2618731.783] {Default Queue} discarded wl_surface#69.enter(wl_output#2041) -[2618731.786] {Default Queue} discarded wl_surface#69.enter(wl_output#2073) -[2618731.790] {Default Queue} discarded wl_surface#69.enter(wl_output#2105) -[2618731.794] {Default Queue} discarded wl_surface#69.enter(wl_output#2137) -[2618731.798] {Default Queue} discarded wl_surface#69.enter(wl_output#2169) -[2618731.802] {Default Queue} discarded wl_surface#69.enter(wl_output#2201) -[2618731.806] {Default Queue} discarded wl_surface#69.enter(wl_output#2233) -[2618731.809] {Default Queue} discarded wl_surface#69.enter(wl_output#2265) -[2618731.813] {Default Queue} discarded wl_surface#69.enter(wl_output#2297) -[2618731.817] {Default Queue} discarded wl_surface#69.enter(wl_output#2329) -[2618731.821] {Default Queue} discarded wl_surface#69.enter(wl_output#2361) -[2618731.825] {Default Queue} discarded wl_surface#69.enter(wl_output#2393) -[2618731.829] {Default Queue} discarded wl_surface#69.enter(wl_output#2425) -[2618731.832] {Default Queue} discarded wl_surface#69.enter(wl_output#2457) -[2618731.836] {Default Queue} discarded wl_surface#69.enter(wl_output#2489) -[2618731.840] {Default Queue} discarded wl_surface#69.enter(wl_output#2521) -[2618731.844] {Default Queue} discarded wl_surface#69.enter(wl_output#2553) -[2618731.848] {Default Queue} discarded wl_surface#69.enter(wl_output#2585) -[2618731.851] {Default Queue} discarded wl_surface#69.enter(wl_output#2617) -[2618731.855] {Default Queue} discarded wl_surface#69.enter(wl_output#2649) -[2618731.859] {Default Queue} discarded wl_surface#69.enter(wl_output#2681) -[2618731.864] {Default Queue} discarded wl_surface#69.enter(wl_output#2713) -[2618731.868] {Default Queue} discarded wl_surface#69.enter(wl_output#2745) -[2618731.876] {Default Queue} discarded wl_surface#69.enter(wl_output#2777) -[2618731.880] {Default Queue} discarded wl_surface#69.enter(wl_output#2809) -[2618731.883] {Default Queue} discarded wl_surface#69.enter(wl_output#2841) -[2618731.904] {Default Queue} discarded wl_surface#69.enter(wl_output#2873) -[2618731.920] {Default Queue} discarded wl_surface#69.enter(wl_output#2905) -[2618731.927] {Default Queue} discarded wl_surface#69.enter(wl_output#2937) -[2618731.932] {Default Queue} discarded wl_surface#69.enter(wl_output#2969) -[2618731.937] {Default Queue} discarded wl_surface#69.enter(wl_output#3001) -[2618731.942] {Default Queue} discarded wl_surface#69.enter(wl_output#3033) -[2618731.947] {Default Queue} discarded wl_surface#69.enter(wl_output#3065) -[2618731.952] {Default Queue} discarded wl_surface#69.enter(wl_output#3097) -[2618731.956] {Default Queue} discarded wl_surface#69.enter(wl_output#3129) -[2618731.961] {Default Queue} discarded wl_surface#69.enter(wl_output#3161) -[2618731.966] {Default Queue} discarded wl_surface#69.enter(wl_output#3193) -[2618731.971] {Default Queue} discarded wl_surface#69.enter(wl_output#3225) -[2618731.976] {Default Queue} discarded wl_surface#69.enter(wl_output#3257) -[2618731.980] {Default Queue} discarded wl_surface#69.enter(wl_output#3289) -[2618731.985] {Default Queue} discarded wl_surface#69.enter(wl_output#3321) -[2618731.990] {Default Queue} discarded wl_surface#69.enter(wl_output#3353) -[2618731.995] {Default Queue} discarded wl_surface#69.enter(wl_output#3385) -[2618731.999] {Default Queue} discarded wl_surface#69.enter(wl_output#3417) -[2618732.011] {Default Queue} discarded wl_surface#69.enter(wl_output#3449) -[2618732.020] {Default Queue} discarded wl_surface#69.enter(wl_output#3481) -[2618732.025] {Default Queue} discarded wl_surface#69.enter(wl_output#3513) -[2618732.030] {Default Queue} discarded wl_surface#69.enter(wl_output#3545) -[2618732.034] {Default Queue} discarded wl_surface#69.enter(wl_output#3577) -[2618732.039] {Default Queue} discarded wl_surface#69.enter(wl_output#3609) -[2618732.044] {Default Queue} discarded wl_surface#69.enter(wl_output#3641) -[2618732.049] {Default Queue} discarded wl_surface#69.enter(wl_output#3673) -[2618732.065] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) -[2618732.072] {Default Queue} -> wl_region#2847.add(0, 0, 2, 2) -[2618732.078] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618732.083] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618732.092] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) -[2618732.098] {Default Queue} -> wl_region#2847.add(0, 0, 2, 2) -[2618732.104] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618732.109] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618732.116] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) -[2618732.121] {Default Queue} -> wl_region#2847.add(0, 0, 2, 2) -[2618732.125] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618732.129] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618732.134] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) -[2618732.138] {Default Queue} -> wl_region#2847.add(0, 0, 2, 2) -[2618732.142] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618732.146] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618732.153] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) -[2618732.157] {Default Queue} -> wl_region#2847.add(0, 0, 2, 2) -[2618732.161] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618732.165] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618732.170] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) -[2618732.175] {Default Queue} -> wl_surface#2823.commit() -[2618732.179] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) -[2618732.183] {Default Queue} -> wl_surface#2823.commit() -[2618732.231] {Default Queue} wl_pointer#24.motion(187310366, 30.19921875, 25.39843750) -[2618732.240] {Default Queue} wl_pointer#81.motion(187310366, 30.19921875, 25.39843750) -[2618732.247] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618732.253] {Default Queue} wl_pointer#105.motion(187310366, 30.19921875, 25.39843750) -[2618732.258] {Default Queue} wl_pointer#137.motion(187310366, 30.19921875, 25.39843750) -[2618732.263] {Default Queue} wl_pointer#169.motion(187310366, 30.19921875, 25.39843750) -[2618732.267] {Default Queue} wl_pointer#201.motion(187310366, 30.19921875, 25.39843750) -[2618732.272] {Default Queue} wl_pointer#233.motion(187310366, 30.19921875, 25.39843750) -[2618732.276] {Default Queue} wl_pointer#265.motion(187310366, 30.19921875, 25.39843750) -[2618732.281] {Default Queue} wl_pointer#297.motion(187310366, 30.19921875, 25.39843750) -[2618732.285] {Default Queue} wl_pointer#329.motion(187310366, 30.19921875, 25.39843750) -[2618732.290] {Default Queue} wl_pointer#361.motion(187310366, 30.19921875, 25.39843750) -[2618732.294] {Default Queue} wl_pointer#393.motion(187310366, 30.19921875, 25.39843750) -[2618732.299] {Default Queue} wl_pointer#425.motion(187310366, 30.19921875, 25.39843750) -[2618732.303] {Default Queue} wl_pointer#457.motion(187310366, 30.19921875, 25.39843750) -[2618732.308] {Default Queue} wl_pointer#489.motion(187310366, 30.19921875, 25.39843750) -[2618732.315] {Default Queue} wl_pointer#521.motion(187310366, 30.19921875, 25.39843750) -[2618732.321] {Default Queue} wl_pointer#553.motion(187310366, 30.19921875, 25.39843750) -[2618732.325] {Default Queue} wl_pointer#585.motion(187310366, 30.19921875, 25.39843750) -[2618732.334] {Default Queue} wl_pointer#617.motion(187310366, 30.19921875, 25.39843750) -[2618732.341] {Default Queue} wl_pointer#649.motion(187310366, 30.19921875, 25.39843750) -[2618732.345] {Default Queue} wl_pointer#681.motion(187310366, 30.19921875, 25.39843750) -[2618732.350] {Default Queue} wl_pointer#713.motion(187310366, 30.19921875, 25.39843750) -[2618732.354] {Default Queue} wl_pointer#745.motion(187310366, 30.19921875, 25.39843750) -[2618732.359] {Default Queue} wl_pointer#777.motion(187310366, 30.19921875, 25.39843750) -[2618732.364] {Default Queue} wl_pointer#809.motion(187310366, 30.19921875, 25.39843750) -[2618732.369] {Default Queue} wl_pointer#841.motion(187310366, 30.19921875, 25.39843750) -[2618732.373] {Default Queue} wl_pointer#873.motion(187310366, 30.19921875, 25.39843750) -[2618732.378] {Default Queue} wl_pointer#905.motion(187310366, 30.19921875, 25.39843750) -[2618732.382] {Default Queue} wl_pointer#937.motion(187310366, 30.19921875, 25.39843750) -[2618732.387] {Default Queue} wl_pointer#969.motion(187310366, 30.19921875, 25.39843750) -[2618732.391] {Default Queue} wl_pointer#1001.motion(187310366, 30.19921875, 25.39843750) -[2618732.396] {Default Queue} wl_pointer#1033.motion(187310366, 30.19921875, 25.39843750) -[2618732.400] {Default Queue} wl_pointer#1065.motion(187310366, 30.19921875, 25.39843750) -[2618732.405] {Default Queue} wl_pointer#1097.motion(187310366, 30.19921875, 25.39843750) -[2618732.409] {Default Queue} wl_pointer#1129.motion(187310366, 30.19921875, 25.39843750) -[2618732.414] {Default Queue} wl_pointer#1161.motion(187310366, 30.19921875, 25.39843750) -[2618732.418] {Default Queue} wl_pointer#1193.motion(187310366, 30.19921875, 25.39843750) -[2618732.423] {Default Queue} wl_pointer#1225.motion(187310366, 30.19921875, 25.39843750) -[2618732.427] {Default Queue} wl_pointer#1257.motion(187310366, 30.19921875, 25.39843750) -[2618732.432] {Default Queue} wl_pointer#1289.motion(187310366, 30.19921875, 25.39843750) -[2618732.436] {Default Queue} wl_pointer#1321.motion(187310366, 30.19921875, 25.39843750) -[2618732.440] {Default Queue} wl_pointer#1353.motion(187310366, 30.19921875, 25.39843750) -[2618732.445] {Default Queue} wl_pointer#1385.motion(187310366, 30.19921875, 25.39843750) -[2618732.449] {Default Queue} wl_pointer#1417.motion(187310366, 30.19921875, 25.39843750) -[2618732.454] {Default Queue} wl_pointer#1449.motion(187310366, 30.19921875, 25.39843750) -[2618732.459] {Default Queue} wl_pointer#1481.motion(187310366, 30.19921875, 25.39843750) -[2618732.463] {Default Queue} wl_pointer#1513.motion(187310366, 30.19921875, 25.39843750) -[2618732.468] {Default Queue} wl_pointer#1545.motion(187310366, 30.19921875, 25.39843750) -[2618732.472] {Default Queue} wl_pointer#1577.motion(187310366, 30.19921875, 25.39843750) -[2618732.477] {Default Queue} wl_pointer#1609.motion(187310366, 30.19921875, 25.39843750) -[2618732.482] {Default Queue} wl_pointer#1641.motion(187310366, 30.19921875, 25.39843750) -[2618732.486] {Default Queue} wl_pointer#1673.motion(187310366, 30.19921875, 25.39843750) -[2618732.490] {Default Queue} wl_pointer#1705.motion(187310366, 30.19921875, 25.39843750) -[2618732.495] {Default Queue} wl_pointer#1737.motion(187310366, 30.19921875, 25.39843750) -[2618732.500] {Default Queue} wl_pointer#1762.motion(187310366, 30.19921875, 25.39843750) -[2618732.504] {Default Queue} wl_pointer#1801.motion(187310366, 30.19921875, 25.39843750) -[2618732.508] {Default Queue} wl_pointer#1833.motion(187310366, 30.19921875, 25.39843750) -[2618732.513] {Default Queue} wl_pointer#1865.motion(187310366, 30.19921875, 25.39843750) -[2618732.518] {Default Queue} wl_pointer#1897.motion(187310366, 30.19921875, 25.39843750) -[2618732.522] {Default Queue} wl_pointer#1929.motion(187310366, 30.19921875, 25.39843750) -[2618732.527] {Default Queue} wl_pointer#1961.motion(187310366, 30.19921875, 25.39843750) -[2618732.531] {Default Queue} wl_pointer#1993.motion(187310366, 30.19921875, 25.39843750) -[2618732.536] {Default Queue} wl_pointer#2025.motion(187310366, 30.19921875, 25.39843750) -[2618732.540] {Default Queue} wl_pointer#2057.motion(187310366, 30.19921875, 25.39843750) -[2618732.548] {Default Queue} wl_pointer#2089.motion(187310366, 30.19921875, 25.39843750) -[2618732.553] {Default Queue} wl_pointer#2121.motion(187310366, 30.19921875, 25.39843750) -[2618732.558] {Default Queue} wl_pointer#2153.motion(187310366, 30.19921875, 25.39843750) -[2618732.562] {Default Queue} wl_pointer#2185.motion(187310366, 30.19921875, 25.39843750) -[2618732.567] {Default Queue} wl_pointer#2217.motion(187310366, 30.19921875, 25.39843750) -[2618732.571] {Default Queue} wl_pointer#2249.motion(187310366, 30.19921875, 25.39843750) -[2618732.576] {Default Queue} wl_pointer#2281.motion(187310366, 30.19921875, 25.39843750) -[2618732.580] {Default Queue} wl_pointer#2313.motion(187310366, 30.19921875, 25.39843750) -[2618732.586] {Default Queue} wl_pointer#2345.motion(187310366, 30.19921875, 25.39843750) -[2618732.590] {Default Queue} wl_pointer#2377.motion(187310366, 30.19921875, 25.39843750) -[2618732.595] {Default Queue} wl_pointer#2409.motion(187310366, 30.19921875, 25.39843750) -[2618732.599] {Default Queue} wl_pointer#2441.motion(187310366, 30.19921875, 25.39843750) -[2618732.604] {Default Queue} wl_pointer#2473.motion(187310366, 30.19921875, 25.39843750) -[2618732.608] {Default Queue} wl_pointer#2498.motion(187310366, 30.19921875, 25.39843750) -[2618732.623] {Default Queue} -> wl_buffer#3684.destroy() -[2618732.629] {Default Queue} -> wl_buffer#3681.destroy() -[2618732.633] {Default Queue} -> wl_shm_pool#3682.destroy() -[2618732.637] {Default Queue} -> wl_shm_pool#3679.destroy() -[2618732.642] {Default Queue} -> wl_surface#3671.destroy() -[2618732.688] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3484, fd 575, 640) -[2618732.695] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 578, 640) -[2618732.700] {Default Queue} -> wl_shm_pool#3484.create_buffer(new id wl_buffer#3292, 0, 10, 16, 40, 0) -[2618732.705] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) -[2618732.713] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3294) -[2618732.717] {Default Queue} -> wl_surface#3294.attach(wl_buffer#3292, 0, 0) -[2618732.721] {Default Queue} -> wl_surface#3294.commit() -[2618732.727] {Default Queue} -> wl_surface#3294.attach(wl_buffer#3292, 0, 0) -[2618732.731] {Default Queue} -> wl_surface#3294.commit() -[2618732.735] {Default Queue} wl_pointer#2537.motion(187310366, 30.19921875, 25.39843750) -[2618732.740] {Default Queue} wl_pointer#2569.motion(187310366, 30.19921875, 25.39843750) -[2618732.745] {Default Queue} wl_pointer#2601.motion(187310366, 30.19921875, 25.39843750) -[2618732.749] {Default Queue} wl_pointer#2633.motion(187310366, 30.19921875, 25.39843750) -[2618732.754] {Default Queue} wl_pointer#2665.motion(187310366, 30.19921875, 25.39843750) -[2618732.758] {Default Queue} wl_pointer#2697.motion(187310366, 30.19921875, 25.39843750) -[2618732.763] {Default Queue} wl_pointer#2729.motion(187310366, 30.19921875, 25.39843750) -[2618732.767] {Default Queue} wl_pointer#2761.motion(187310366, 30.19921875, 25.39843750) -[2618732.772] {Default Queue} wl_pointer#2793.motion(187310366, 30.19921875, 25.39843750) -[2618732.776] {Default Queue} wl_pointer#2825.motion(187310366, 30.19921875, 25.39843750) -[2618732.781] {Default Queue} wl_pointer#2857.motion(187310366, 30.19921875, 25.39843750) -[2618732.785] {Default Queue} wl_pointer#2889.motion(187310366, 30.19921875, 25.39843750) -[2618732.789] {Default Queue} wl_pointer#2921.motion(187310366, 30.19921875, 25.39843750) -[2618732.794] {Default Queue} wl_pointer#2953.motion(187310366, 30.19921875, 25.39843750) -[2618732.798] {Default Queue} wl_pointer#2985.motion(187310366, 30.19921875, 25.39843750) -[2618732.803] {Default Queue} wl_pointer#3017.motion(187310366, 30.19921875, 25.39843750) -[2618732.807] {Default Queue} wl_pointer#3049.motion(187310366, 30.19921875, 25.39843750) -[2618732.811] {Default Queue} wl_pointer#3081.motion(187310366, 30.19921875, 25.39843750) -[2618732.816] {Default Queue} wl_pointer#3113.motion(187310366, 30.19921875, 25.39843750) -[2618732.824] {Default Queue} wl_pointer#3145.motion(187310366, 30.19921875, 25.39843750) -[2618732.830] {Default Queue} wl_pointer#3177.motion(187310366, 30.19921875, 25.39843750) -[2618732.834] {Default Queue} wl_pointer#3209.motion(187310366, 30.19921875, 25.39843750) -[2618732.838] {Default Queue} wl_pointer#3241.motion(187310366, 30.19921875, 25.39843750) -[2618732.843] {Default Queue} wl_pointer#3273.motion(187310366, 30.19921875, 25.39843750) -[2618732.847] {Default Queue} wl_pointer#3305.motion(187310366, 30.19921875, 25.39843750) -[2618732.851] {Default Queue} wl_pointer#3337.motion(187310366, 30.19921875, 25.39843750) -[2618732.856] {Default Queue} wl_pointer#3369.motion(187310366, 30.19921875, 25.39843750) -[2618732.860] {Default Queue} wl_pointer#3401.motion(187310366, 30.19921875, 25.39843750) -[2618732.866] {Default Queue} wl_pointer#3433.motion(187310366, 30.19921875, 25.39843750) -[2618732.894] {Default Queue} wl_pointer#3465.motion(187310366, 30.19921875, 25.39843750) -[2618732.904] {Default Queue} wl_pointer#3497.motion(187310366, 30.19921875, 25.39843750) -[2618732.909] {Default Queue} wl_pointer#3529.motion(187310366, 30.19921875, 25.39843750) -[2618732.913] {Default Queue} wl_pointer#3561.motion(187310366, 30.19921875, 25.39843750) -[2618732.918] {Default Queue} wl_pointer#3593.motion(187310366, 30.19921875, 25.39843750) -[2618732.922] {Default Queue} wl_pointer#3625.motion(187310366, 30.19921875, 25.39843750) -[2618732.927] {Default Queue} wl_pointer#3657.motion(187310366, 30.19921875, 25.39843750) -[2618732.931] {Default Queue} wl_pointer#3695.motion(187310366, 30.19921875, 25.39843750) -[2618732.935] {Default Queue} wl_pointer#24.motion(187310366, 29.80078125, 25.00000000) -[2618732.940] {Default Queue} wl_pointer#81.motion(187310366, 29.80078125, 25.00000000) -[2618732.946] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618732.951] {Default Queue} wl_pointer#105.motion(187310366, 29.80078125, 25.00000000) -[2618732.955] {Default Queue} wl_pointer#137.motion(187310366, 29.80078125, 25.00000000) -[2618732.959] {Default Queue} wl_pointer#169.motion(187310366, 29.80078125, 25.00000000) -[2618732.964] {Default Queue} wl_pointer#201.motion(187310366, 29.80078125, 25.00000000) -[2618732.968] {Default Queue} wl_pointer#233.motion(187310366, 29.80078125, 25.00000000) -[2618732.972] {Default Queue} wl_pointer#265.motion(187310366, 29.80078125, 25.00000000) -[2618732.977] {Default Queue} wl_pointer#297.motion(187310366, 29.80078125, 25.00000000) -[2618732.981] {Default Queue} wl_pointer#329.motion(187310366, 29.80078125, 25.00000000) -[2618732.985] {Default Queue} wl_pointer#361.motion(187310366, 29.80078125, 25.00000000) -[2618732.990] {Default Queue} wl_pointer#393.motion(187310366, 29.80078125, 25.00000000) -[2618732.994] {Default Queue} wl_pointer#425.motion(187310366, 29.80078125, 25.00000000) -[2618732.999] {Default Queue} wl_pointer#457.motion(187310366, 29.80078125, 25.00000000) -[2618733.003] {Default Queue} wl_pointer#489.motion(187310366, 29.80078125, 25.00000000) -[2618733.007] {Default Queue} wl_pointer#521.motion(187310366, 29.80078125, 25.00000000) -[2618733.011] {Default Queue} wl_pointer#553.motion(187310366, 29.80078125, 25.00000000) -[2618733.016] {Default Queue} wl_pointer#585.motion(187310366, 29.80078125, 25.00000000) -[2618733.020] {Default Queue} wl_pointer#617.motion(187310366, 29.80078125, 25.00000000) -[2618733.024] {Default Queue} wl_pointer#649.motion(187310366, 29.80078125, 25.00000000) -[2618733.029] {Default Queue} wl_pointer#681.motion(187310366, 29.80078125, 25.00000000) -[2618733.033] {Default Queue} wl_pointer#713.motion(187310366, 29.80078125, 25.00000000) -[2618733.037] {Default Queue} wl_pointer#745.motion(187310366, 29.80078125, 25.00000000) -[2618733.041] {Default Queue} wl_pointer#777.motion(187310366, 29.80078125, 25.00000000) -[2618733.046] {Default Queue} wl_pointer#809.motion(187310366, 29.80078125, 25.00000000) -[2618733.050] {Default Queue} wl_pointer#841.motion(187310366, 29.80078125, 25.00000000) -[2618733.054] {Default Queue} wl_pointer#873.motion(187310366, 29.80078125, 25.00000000) -[2618733.063] {Default Queue} wl_pointer#905.motion(187310366, 29.80078125, 25.00000000) -[2618733.071] {Default Queue} wl_pointer#937.motion(187310366, 29.80078125, 25.00000000) -[2618733.075] {Default Queue} wl_pointer#969.motion(187310366, 29.80078125, 25.00000000) -[2618733.080] {Default Queue} wl_pointer#1001.motion(187310366, 29.80078125, 25.00000000) -[2618733.084] {Default Queue} wl_pointer#1033.motion(187310366, 29.80078125, 25.00000000) -[2618733.088] {Default Queue} wl_pointer#1065.motion(187310366, 29.80078125, 25.00000000) -[2618733.093] {Default Queue} wl_pointer#1097.motion(187310366, 29.80078125, 25.00000000) -[2618733.097] {Default Queue} wl_pointer#1129.motion(187310366, 29.80078125, 25.00000000) -[2618733.101] {Default Queue} wl_pointer#1161.motion(187310366, 29.80078125, 25.00000000) -[2618733.106] {Default Queue} wl_pointer#1193.motion(187310366, 29.80078125, 25.00000000) -[2618733.110] {Default Queue} wl_pointer#1225.motion(187310366, 29.80078125, 25.00000000) -[2618733.114] {Default Queue} wl_pointer#1257.motion(187310366, 29.80078125, 25.00000000) -[2618733.119] {Default Queue} wl_pointer#1289.motion(187310366, 29.80078125, 25.00000000) -[2618733.123] {Default Queue} wl_pointer#1321.motion(187310366, 29.80078125, 25.00000000) -[2618733.127] {Default Queue} wl_pointer#1353.motion(187310366, 29.80078125, 25.00000000) -[2618733.132] {Default Queue} wl_pointer#1385.motion(187310366, 29.80078125, 25.00000000) -[2618733.136] {Default Queue} wl_pointer#1417.motion(187310366, 29.80078125, 25.00000000) -[2618733.140] {Default Queue} wl_pointer#1449.motion(187310366, 29.80078125, 25.00000000) -[2618733.145] {Default Queue} wl_pointer#1481.motion(187310366, 29.80078125, 25.00000000) -[2618733.151] {Default Queue} wl_pointer#1513.motion(187310366, 29.80078125, 25.00000000) -[2618733.157] {Default Queue} wl_pointer#1545.motion(187310366, 29.80078125, 25.00000000) -[2618733.162] {Default Queue} wl_pointer#1577.motion(187310366, 29.80078125, 25.00000000) -[2618733.166] {Default Queue} wl_pointer#1609.motion(187310366, 29.80078125, 25.00000000) -[2618733.170] {Default Queue} wl_pointer#1641.motion(187310366, 29.80078125, 25.00000000) -[2618733.175] {Default Queue} wl_pointer#1673.motion(187310366, 29.80078125, 25.00000000) -[2618733.179] {Default Queue} wl_pointer#1705.motion(187310366, 29.80078125, 25.00000000) -[2618733.183] {Default Queue} wl_pointer#1737.motion(187310366, 29.80078125, 25.00000000) -[2618733.188] {Default Queue} wl_pointer#1762.motion(187310366, 29.80078125, 25.00000000) -[2618733.192] {Default Queue} wl_pointer#1801.motion(187310366, 29.80078125, 25.00000000) -[2618733.196] {Default Queue} wl_pointer#1833.motion(187310366, 29.80078125, 25.00000000) -[2618733.200] {Default Queue} wl_pointer#1865.motion(187310366, 29.80078125, 25.00000000) -[2618733.205] {Default Queue} wl_pointer#1897.motion(187310366, 29.80078125, 25.00000000) -[2618733.209] {Default Queue} wl_pointer#1929.motion(187310366, 29.80078125, 25.00000000) -[2618733.213] {Default Queue} wl_pointer#1961.motion(187310366, 29.80078125, 25.00000000) -[2618733.218] {Default Queue} wl_pointer#1993.motion(187310366, 29.80078125, 25.00000000) -[2618733.222] {Default Queue} wl_pointer#2025.motion(187310366, 29.80078125, 25.00000000) -[2618733.226] {Default Queue} wl_pointer#2057.motion(187310366, 29.80078125, 25.00000000) -[2618733.230] {Default Queue} wl_pointer#2089.motion(187310366, 29.80078125, 25.00000000) -[2618733.235] {Default Queue} wl_pointer#2121.motion(187310366, 29.80078125, 25.00000000) -[2618733.239] {Default Queue} wl_pointer#2153.motion(187310366, 29.80078125, 25.00000000) -[2618733.243] {Default Queue} wl_pointer#2185.motion(187310366, 29.80078125, 25.00000000) -[2618733.247] {Default Queue} wl_pointer#2217.motion(187310366, 29.80078125, 25.00000000) -[2618733.252] {Default Queue} wl_pointer#2249.motion(187310366, 29.80078125, 25.00000000) -[2618733.256] {Default Queue} wl_pointer#2281.motion(187310366, 29.80078125, 25.00000000) -[2618733.260] {Default Queue} wl_pointer#2313.motion(187310366, 29.80078125, 25.00000000) -[2618733.265] {Default Queue} wl_pointer#2345.motion(187310366, 29.80078125, 25.00000000) -[2618733.273] {Default Queue} wl_pointer#2377.motion(187310366, 29.80078125, 25.00000000) -[2618733.279] {Default Queue} wl_pointer#2409.motion(187310366, 29.80078125, 25.00000000) -[2618733.284] {Default Queue} wl_pointer#2441.motion(187310366, 29.80078125, 25.00000000) -[2618733.288] {Default Queue} wl_pointer#2473.motion(187310366, 29.80078125, 25.00000000) -[2618733.294] {Default Queue} wl_pointer#2498.motion(187310366, 29.80078125, 25.00000000) -[2618733.307] {Default Queue} -> wl_buffer#3292.destroy() -[2618733.312] {Default Queue} -> wl_buffer#3293.destroy() -[2618733.317] {Default Queue} -> wl_shm_pool#3484.destroy() -[2618733.321] {Default Queue} -> wl_shm_pool#3291.destroy() -[2618733.326] {Default Queue} -> wl_surface#3294.destroy() -[2618733.368] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3515, fd 581, 640) -[2618733.374] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3486, fd 582, 640) -[2618733.379] {Default Queue} -> wl_shm_pool#3515.create_buffer(new id wl_buffer#3483, 0, 10, 16, 40, 0) -[2618733.384] {Default Queue} -> wl_shm_pool#3486.create_buffer(new id wl_buffer#3516, 0, 10, 16, 40, 0) -[2618733.391] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3485) -[2618733.396] {Default Queue} -> wl_surface#3485.attach(wl_buffer#3483, 0, 0) -[2618733.400] {Default Queue} -> wl_surface#3485.commit() -[2618733.406] {Default Queue} -> wl_surface#3485.attach(wl_buffer#3483, 0, 0) -[2618733.410] {Default Queue} -> wl_surface#3485.commit() -[2618733.414] {Default Queue} wl_pointer#2537.motion(187310366, 29.80078125, 25.00000000) -[2618733.419] {Default Queue} wl_pointer#2569.motion(187310366, 29.80078125, 25.00000000) -[2618733.424] {Default Queue} wl_pointer#2601.motion(187310366, 29.80078125, 25.00000000) -[2618733.428] {Default Queue} wl_pointer#2633.motion(187310366, 29.80078125, 25.00000000) -[2618733.432] {Default Queue} wl_pointer#2665.motion(187310366, 29.80078125, 25.00000000) -[2618733.437] {Default Queue} wl_pointer#2697.motion(187310366, 29.80078125, 25.00000000) -[2618733.441] {Default Queue} wl_pointer#2729.motion(187310366, 29.80078125, 25.00000000) -[2618733.445] {Default Queue} wl_pointer#2761.motion(187310366, 29.80078125, 25.00000000) -[2618733.449] {Default Queue} wl_pointer#2793.motion(187310366, 29.80078125, 25.00000000) -[2618733.454] {Default Queue} wl_pointer#2825.motion(187310366, 29.80078125, 25.00000000) -[2618733.458] {Default Queue} wl_pointer#2857.motion(187310366, 29.80078125, 25.00000000) -[2618733.463] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) -[2618733.467] {Default Queue} -> wl_surface#2823.commit() -[2618734.534] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) -[2618734.539] {Default Queue} -> wl_surface#2823.commit() -[2618734.546] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) -[2618734.550] {Default Queue} -> wl_surface#2823.commit() -[2618734.556] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) -[2618734.560] {Default Queue} -> wl_surface#2087.commit() -[2618735.623] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) -[2618735.628] {Default Queue} -> wl_surface#2087.commit() -[2618735.638] {Default Queue} -> wl_region#2111.subtract(0, 0, 2, 2) -[2618735.644] {Default Queue} -> wl_region#2111.add(0, 0, 2, 2) -[2618735.648] {Default Queue} -> wl_surface#2087.set_opaque_region(wl_region#2112) -[2618735.652] {Default Queue} -> wl_surface#2087.set_input_region(wl_region#2111) -[2618735.658] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) -[2618735.662] {Default Queue} -> wl_surface#2087.commit() -[2618735.666] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) -[2618735.670] {Default Queue} -> wl_surface#2087.commit() -[2618735.676] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) -[2618735.680] {Default Queue} -> wl_surface#2087.commit() -[2618735.687] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) -[2618735.692] {Default Queue} -> wl_surface#3079.commit() -[2618736.404] {Display Queue} wl_display#1.delete_id(3677) -[2618736.413] {Display Queue} wl_display#1.delete_id(3678) -[2618736.418] {Display Queue} wl_display#1.delete_id(3675) -[2618736.422] {Display Queue} wl_display#1.delete_id(3676) -[2618736.426] {Display Queue} wl_display#1.delete_id(3674) -[2618736.430] {Display Queue} wl_display#1.delete_id(93) -[2618736.434] {Display Queue} wl_display#1.delete_id(94) -[2618736.438] {Display Queue} wl_display#1.delete_id(91) -[2618736.442] {Display Queue} wl_display#1.delete_id(92) -[2618736.446] {Display Queue} wl_display#1.delete_id(3683) -[2618736.450] {Display Queue} wl_display#1.delete_id(3518) -[2618736.454] {Display Queue} wl_display#1.delete_id(3451) -[2618736.458] {Display Queue} wl_display#1.delete_id(3454) -[2618736.462] {Display Queue} wl_display#1.delete_id(3517) -[2618736.466] {Display Queue} wl_display#1.delete_id(3452) -[2618736.470] {Default Queue} wl_pointer#2889.motion(187310366, 29.80078125, 25.00000000) -[2618736.475] {Default Queue} wl_pointer#2921.motion(187310366, 29.80078125, 25.00000000) -[2618736.480] {Default Queue} wl_pointer#2953.motion(187310366, 29.80078125, 25.00000000) -[2618736.484] {Default Queue} wl_pointer#2985.motion(187310366, 29.80078125, 25.00000000) -[2618736.488] {Default Queue} wl_pointer#3017.motion(187310366, 29.80078125, 25.00000000) -[2618736.493] {Default Queue} wl_pointer#3049.motion(187310366, 29.80078125, 25.00000000) -[2618736.497] {Default Queue} wl_pointer#3081.motion(187310366, 29.80078125, 25.00000000) -[2618736.501] {Default Queue} wl_pointer#3113.motion(187310366, 29.80078125, 25.00000000) -[2618736.505] {Default Queue} wl_pointer#3145.motion(187310366, 29.80078125, 25.00000000) -[2618736.510] {Default Queue} wl_pointer#3177.motion(187310366, 29.80078125, 25.00000000) -[2618736.514] {Default Queue} wl_pointer#3209.motion(187310366, 29.80078125, 25.00000000) -[2618736.518] {Default Queue} wl_pointer#3241.motion(187310366, 29.80078125, 25.00000000) -[2618736.523] {Default Queue} wl_pointer#3273.motion(187310366, 29.80078125, 25.00000000) -[2618736.527] {Default Queue} wl_pointer#3305.motion(187310366, 29.80078125, 25.00000000) -[2618736.531] {Default Queue} wl_pointer#3337.motion(187310366, 29.80078125, 25.00000000) -[2618736.536] {Default Queue} wl_pointer#3369.motion(187310366, 29.80078125, 25.00000000) -[2618736.540] {Default Queue} wl_pointer#3401.motion(187310366, 29.80078125, 25.00000000) -[2618736.544] {Default Queue} wl_pointer#3433.motion(187310366, 29.80078125, 25.00000000) -[2618736.549] {Default Queue} wl_pointer#3465.motion(187310366, 29.80078125, 25.00000000) -[2618736.553] {Default Queue} wl_pointer#3497.motion(187310366, 29.80078125, 25.00000000) -[2618736.557] {Default Queue} wl_pointer#3529.motion(187310366, 29.80078125, 25.00000000) -[2618736.562] {Default Queue} wl_pointer#3561.motion(187310366, 29.80078125, 25.00000000) -[2618736.566] {Default Queue} wl_pointer#3593.motion(187310366, 29.80078125, 25.00000000) -[2618736.570] {Default Queue} wl_pointer#3625.motion(187310366, 29.80078125, 25.00000000) -[2618736.575] {Default Queue} wl_pointer#3657.motion(187310366, 29.80078125, 25.00000000) -[2618736.579] {Default Queue} wl_pointer#3695.motion(187310366, 29.80078125, 25.00000000) -[2618736.583] {Default Queue} wl_pointer#24.motion(187310366, 29.80078125, 24.60156250) -[2618736.587] {Default Queue} wl_pointer#81.motion(187310366, 29.80078125, 24.60156250) -[2618736.593] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618736.598] {Default Queue} wl_pointer#105.motion(187310366, 29.80078125, 24.60156250) -[2618736.602] {Default Queue} wl_pointer#137.motion(187310366, 29.80078125, 24.60156250) -[2618736.606] {Default Queue} wl_pointer#169.motion(187310366, 29.80078125, 24.60156250) -[2618736.611] {Default Queue} wl_pointer#201.motion(187310366, 29.80078125, 24.60156250) -[2618736.615] {Default Queue} wl_pointer#233.motion(187310366, 29.80078125, 24.60156250) -[2618736.619] {Default Queue} wl_pointer#265.motion(187310366, 29.80078125, 24.60156250) -[2618736.623] {Default Queue} wl_pointer#297.motion(187310366, 29.80078125, 24.60156250) -[2618736.631] {Default Queue} wl_pointer#329.motion(187310366, 29.80078125, 24.60156250) -[2618736.637] {Default Queue} wl_pointer#361.motion(187310366, 29.80078125, 24.60156250) -[2618736.641] {Default Queue} wl_pointer#393.motion(187310366, 29.80078125, 24.60156250) -[2618736.646] {Default Queue} wl_pointer#425.motion(187310366, 29.80078125, 24.60156250) -[2618736.650] {Default Queue} wl_pointer#457.motion(187310366, 29.80078125, 24.60156250) -[2618736.654] {Default Queue} wl_pointer#489.motion(187310366, 29.80078125, 24.60156250) -[2618736.658] {Default Queue} wl_pointer#521.motion(187310366, 29.80078125, 24.60156250) -[2618736.663] {Default Queue} wl_pointer#553.motion(187310366, 29.80078125, 24.60156250) -[2618736.667] {Default Queue} wl_pointer#585.motion(187310366, 29.80078125, 24.60156250) -[2618736.671] {Default Queue} wl_pointer#617.motion(187310366, 29.80078125, 24.60156250) -[2618736.675] {Default Queue} wl_pointer#649.motion(187310366, 29.80078125, 24.60156250) -[2618736.680] {Default Queue} wl_pointer#681.motion(187310366, 29.80078125, 24.60156250) -[2618736.684] {Default Queue} wl_pointer#713.motion(187310366, 29.80078125, 24.60156250) -[2618736.688] {Default Queue} wl_pointer#745.motion(187310366, 29.80078125, 24.60156250) -[2618736.693] {Default Queue} wl_pointer#777.motion(187310366, 29.80078125, 24.60156250) -[2618736.697] {Default Queue} wl_pointer#809.motion(187310366, 29.80078125, 24.60156250) -[2618736.701] {Default Queue} wl_pointer#841.motion(187310366, 29.80078125, 24.60156250) -[2618736.705] {Default Queue} wl_pointer#873.motion(187310366, 29.80078125, 24.60156250) -[2618736.710] {Default Queue} wl_pointer#905.motion(187310366, 29.80078125, 24.60156250) -[2618736.714] {Default Queue} wl_pointer#937.motion(187310366, 29.80078125, 24.60156250) -[2618736.718] {Default Queue} wl_pointer#969.motion(187310366, 29.80078125, 24.60156250) -[2618736.722] {Default Queue} wl_pointer#1001.motion(187310366, 29.80078125, 24.60156250) -[2618736.727] {Default Queue} wl_pointer#1033.motion(187310366, 29.80078125, 24.60156250) -[2618736.731] {Default Queue} wl_pointer#1065.motion(187310366, 29.80078125, 24.60156250) -[2618736.735] {Default Queue} wl_pointer#1097.motion(187310366, 29.80078125, 24.60156250) -[2618736.740] {Default Queue} wl_pointer#1129.motion(187310366, 29.80078125, 24.60156250) -[2618736.744] {Default Queue} wl_pointer#1161.motion(187310366, 29.80078125, 24.60156250) -[2618736.748] {Default Queue} wl_pointer#1193.motion(187310366, 29.80078125, 24.60156250) -[2618736.753] {Default Queue} wl_pointer#1225.motion(187310366, 29.80078125, 24.60156250) -[2618736.757] {Default Queue} wl_pointer#1257.motion(187310366, 29.80078125, 24.60156250) -[2618736.761] {Default Queue} wl_pointer#1289.motion(187310366, 29.80078125, 24.60156250) -[2618736.766] {Default Queue} wl_pointer#1321.motion(187310366, 29.80078125, 24.60156250) -[2618736.770] {Default Queue} wl_pointer#1353.motion(187310366, 29.80078125, 24.60156250) -[2618736.774] {Default Queue} wl_pointer#1385.motion(187310366, 29.80078125, 24.60156250) -[2618736.779] {Default Queue} wl_pointer#1417.motion(187310366, 29.80078125, 24.60156250) -[2618736.783] {Default Queue} wl_pointer#1449.motion(187310366, 29.80078125, 24.60156250) -[2618736.787] {Default Queue} wl_pointer#1481.motion(187310366, 29.80078125, 24.60156250) -[2618736.791] {Default Queue} wl_pointer#1513.motion(187310366, 29.80078125, 24.60156250) -[2618736.796] {Default Queue} wl_pointer#1545.motion(187310366, 29.80078125, 24.60156250) -[2618736.800] {Default Queue} wl_pointer#1577.motion(187310366, 29.80078125, 24.60156250) -[2618736.804] {Default Queue} wl_pointer#1609.motion(187310366, 29.80078125, 24.60156250) -[2618736.808] {Default Queue} wl_pointer#1641.motion(187310366, 29.80078125, 24.60156250) -[2618736.813] {Default Queue} wl_pointer#1673.motion(187310366, 29.80078125, 24.60156250) -[2618736.817] {Default Queue} wl_pointer#1705.motion(187310366, 29.80078125, 24.60156250) -[2618736.822] {Default Queue} wl_pointer#1737.motion(187310366, 29.80078125, 24.60156250) -[2618736.826] {Default Queue} wl_pointer#1762.motion(187310366, 29.80078125, 24.60156250) -[2618736.833] {Default Queue} wl_pointer#1801.motion(187310366, 29.80078125, 24.60156250) -[2618736.839] {Default Queue} wl_pointer#1833.motion(187310366, 29.80078125, 24.60156250) -[2618736.843] {Default Queue} wl_pointer#1865.motion(187310366, 29.80078125, 24.60156250) -[2618736.847] {Default Queue} wl_pointer#1897.motion(187310366, 29.80078125, 24.60156250) -[2618736.852] {Default Queue} wl_pointer#1929.motion(187310366, 29.80078125, 24.60156250) -[2618736.856] {Default Queue} wl_pointer#1961.motion(187310366, 29.80078125, 24.60156250) -[2618736.865] {Default Queue} wl_pointer#1993.motion(187310366, 29.80078125, 24.60156250) -[2618736.869] {Default Queue} wl_pointer#2025.motion(187310366, 29.80078125, 24.60156250) -[2618736.874] {Default Queue} wl_pointer#2057.motion(187310366, 29.80078125, 24.60156250) -[2618736.878] {Default Queue} wl_pointer#2089.motion(187310366, 29.80078125, 24.60156250) -[2618736.882] {Default Queue} wl_pointer#2121.motion(187310366, 29.80078125, 24.60156250) -[2618736.887] {Default Queue} wl_pointer#2153.motion(187310366, 29.80078125, 24.60156250) -[2618736.891] {Default Queue} wl_pointer#2185.motion(187310366, 29.80078125, 24.60156250) -[2618736.895] {Default Queue} wl_pointer#2217.motion(187310366, 29.80078125, 24.60156250) -[2618736.899] {Default Queue} wl_pointer#2249.motion(187310366, 29.80078125, 24.60156250) -[2618736.904] {Default Queue} wl_pointer#2281.motion(187310366, 29.80078125, 24.60156250) -[2618736.908] {Default Queue} wl_pointer#2313.motion(187310366, 29.80078125, 24.60156250) -[2618736.912] {Default Queue} wl_pointer#2345.motion(187310366, 29.80078125, 24.60156250) -[2618736.917] {Default Queue} wl_pointer#2377.motion(187310366, 29.80078125, 24.60156250) -[2618736.921] {Default Queue} wl_pointer#2409.motion(187310366, 29.80078125, 24.60156250) -[2618736.925] {Default Queue} wl_pointer#2441.motion(187310366, 29.80078125, 24.60156250) -[2618736.930] {Default Queue} wl_pointer#2473.motion(187310366, 29.80078125, 24.60156250) -[2618736.934] {Default Queue} wl_pointer#2498.motion(187310366, 29.80078125, 24.60156250) -[2618736.946] {Default Queue} -> wl_buffer#3483.destroy() -[2618736.950] {Default Queue} -> wl_buffer#3516.destroy() -[2618736.955] {Default Queue} -> wl_shm_pool#3515.destroy() -[2618736.959] {Default Queue} -> wl_shm_pool#3486.destroy() -[2618736.963] {Default Queue} -> wl_surface#3485.destroy() -[2618737.002] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3452, fd 575, 640) -[2618737.008] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3517, fd 578, 640) -[2618737.013] {Default Queue} -> wl_shm_pool#3452.create_buffer(new id wl_buffer#3454, 0, 10, 16, 40, 0) -[2618737.018] {Default Queue} -> wl_shm_pool#3517.create_buffer(new id wl_buffer#3451, 0, 10, 16, 40, 0) -[2618737.025] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3518) -[2618737.030] {Default Queue} -> wl_surface#3518.attach(wl_buffer#3454, 0, 0) -[2618737.034] {Default Queue} -> wl_surface#3518.commit() -[2618737.039] {Default Queue} -> wl_surface#3518.attach(wl_buffer#3454, 0, 0) -[2618737.043] {Default Queue} -> wl_surface#3518.commit() -[2618737.048] {Default Queue} wl_pointer#2537.motion(187310366, 29.80078125, 24.60156250) -[2618737.052] {Default Queue} wl_pointer#2569.motion(187310366, 29.80078125, 24.60156250) -[2618737.057] {Default Queue} wl_pointer#2601.motion(187310366, 29.80078125, 24.60156250) -[2618737.061] {Default Queue} wl_pointer#2633.motion(187310366, 29.80078125, 24.60156250) -[2618737.065] {Default Queue} wl_pointer#2665.motion(187310366, 29.80078125, 24.60156250) -[2618737.070] {Default Queue} wl_pointer#2697.motion(187310366, 29.80078125, 24.60156250) -[2618737.074] {Default Queue} wl_pointer#2729.motion(187310366, 29.80078125, 24.60156250) -[2618737.078] {Default Queue} wl_pointer#2761.motion(187310366, 29.80078125, 24.60156250) -[2618737.083] {Default Queue} wl_pointer#2793.motion(187310366, 29.80078125, 24.60156250) -[2618737.087] {Default Queue} wl_pointer#2825.motion(187310366, 29.80078125, 24.60156250) -[2618737.091] {Default Queue} wl_pointer#2857.motion(187310366, 29.80078125, 24.60156250) -[2618737.097] {Default Queue} wl_pointer#2889.motion(187310366, 29.80078125, 24.60156250) -[2618737.103] {Default Queue} wl_pointer#2921.motion(187310366, 29.80078125, 24.60156250) -[2618737.108] {Default Queue} wl_pointer#2953.motion(187310366, 29.80078125, 24.60156250) -[2618737.112] {Default Queue} wl_pointer#2985.motion(187310366, 29.80078125, 24.60156250) -[2618737.116] {Default Queue} wl_pointer#3017.motion(187310366, 29.80078125, 24.60156250) -[2618737.120] {Default Queue} wl_pointer#3049.motion(187310366, 29.80078125, 24.60156250) -[2618737.125] {Default Queue} wl_pointer#3081.motion(187310366, 29.80078125, 24.60156250) -[2618737.129] {Default Queue} wl_pointer#3113.motion(187310366, 29.80078125, 24.60156250) -[2618737.133] {Default Queue} wl_pointer#3145.motion(187310366, 29.80078125, 24.60156250) -[2618737.138] {Default Queue} wl_pointer#3177.motion(187310366, 29.80078125, 24.60156250) -[2618737.142] {Default Queue} wl_pointer#3209.motion(187310366, 29.80078125, 24.60156250) -[2618737.146] {Default Queue} wl_pointer#3241.motion(187310366, 29.80078125, 24.60156250) -[2618737.151] {Default Queue} wl_pointer#3273.motion(187310366, 29.80078125, 24.60156250) -[2618737.155] {Default Queue} wl_pointer#3305.motion(187310366, 29.80078125, 24.60156250) -[2618737.159] {Default Queue} wl_pointer#3337.motion(187310366, 29.80078125, 24.60156250) -[2618737.164] {Default Queue} wl_pointer#3369.motion(187310366, 29.80078125, 24.60156250) -[2618737.168] {Default Queue} wl_pointer#3401.motion(187310366, 29.80078125, 24.60156250) -[2618737.172] {Default Queue} wl_pointer#3433.motion(187310366, 29.80078125, 24.60156250) -[2618737.177] {Default Queue} wl_pointer#3465.motion(187310366, 29.80078125, 24.60156250) -[2618737.181] {Default Queue} wl_pointer#3497.motion(187310366, 29.80078125, 24.60156250) -[2618737.185] {Default Queue} wl_pointer#3529.motion(187310366, 29.80078125, 24.60156250) -[2618737.190] {Default Queue} wl_pointer#3561.motion(187310366, 29.80078125, 24.60156250) -[2618737.194] {Default Queue} wl_pointer#3593.motion(187310366, 29.80078125, 24.60156250) -[2618737.198] {Default Queue} wl_pointer#3625.motion(187310366, 29.80078125, 24.60156250) -[2618737.203] {Default Queue} wl_pointer#3657.motion(187310366, 29.80078125, 24.60156250) -[2618737.207] {Default Queue} wl_pointer#3695.motion(187310366, 29.80078125, 24.60156250) -[2618737.217] {Default Queue} -> wl_region#3103.subtract(0, 0, 19, 48) -[2618737.222] {Default Queue} -> wl_region#3103.add(-20, -49, 19, 48) -[2618737.226] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2618737.231] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2618737.325] {Default Queue} -> wl_region#3103.subtract(0, 0, 19, 48) -[2618737.330] {Default Queue} -> wl_region#3103.add(-20, -49, 19, 48) -[2618737.334] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2618737.338] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2618737.345] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618737.349] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618737.413] {Default Queue} -> wl_region#3103.subtract(0, 0, 19, 48) -[2618737.418] {Default Queue} -> wl_region#3103.add(-20, -49, 19, 48) -[2618737.422] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2618737.426] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2618737.431] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618737.435] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618737.441] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) -[2618737.445] {Default Queue} -> wl_surface#3079.commit() -[2618737.449] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) -[2618737.453] {Default Queue} -> wl_surface#3079.commit() -[2618737.459] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) -[2618737.464] {Default Queue} -> wl_surface#3079.commit() -[2618737.470] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618737.477] {Default Queue} -> wl_surface#3175.commit() -[2618738.544] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618738.549] {Default Queue} -> wl_surface#3175.commit() -[2618738.556] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618738.561] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618738.565] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618738.569] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618738.577] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618738.582] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618738.586] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618738.590] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618738.595] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618738.599] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618738.603] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618738.607] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618738.612] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618738.616] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618738.620] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618738.624] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618738.629] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618738.633] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618738.637] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618738.641] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618738.647] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618738.651] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618738.655] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618738.659] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618738.664] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618738.668] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618738.672] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618738.676] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618738.681] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618738.685] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618738.689] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618738.693] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618738.698] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618738.702] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618738.706] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618738.710] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618738.720] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618738.725] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618738.729] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618738.733] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618738.738] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618738.742] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618738.746] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618738.750] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618738.755] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618738.759] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618738.763] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618738.767] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618738.771] {Default Queue} -> wl_region#3199.subtract(0, 0, 33, 48) -[2618738.776] {Default Queue} -> wl_region#3199.add(-6, -49, 19, 48) -[2618738.780] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618738.787] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618738.793] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618738.797] {Default Queue} -> wl_surface#3175.commit() -[2618738.801] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618738.805] {Default Queue} -> wl_surface#3175.commit() -[2618738.811] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618738.815] {Default Queue} -> wl_surface#3175.commit() -[2618738.821] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) -[2618738.825] {Default Queue} -> wl_surface#3207.commit() -[2618739.866] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) -[2618739.873] {Default Queue} -> wl_surface#3207.commit() -[2618739.882] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618739.886] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618739.890] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618739.894] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618739.899] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618739.904] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618739.908] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618739.912] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618739.916] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618739.920] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618739.925] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618739.929] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618739.933] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618739.937] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618739.942] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618739.945] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618739.952] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618739.956] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618739.960] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618739.964] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618739.974] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618739.978] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618739.983] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618739.987] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618739.991] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618739.996] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.000] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.004] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.008] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.013] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.017] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.021] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.025] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.030] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.034] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.038] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.042] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.046] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.051] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.054] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.067] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.072] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.076] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.083] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.093] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.097] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.101] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.105] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.112] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.117] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.121] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.125] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.131] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.135] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.140] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.144] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.148] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.152] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.157] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.160] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.165] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.169] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.173] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.177] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.182] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.186] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.190] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.194] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.199] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.203] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.207] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.212] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.220] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.225] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.231] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.235] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.239] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.244] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.248] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.252] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.256] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.260] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.264] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.268] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.273] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.277] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.281] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.285] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.323] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.328] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.332] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.336] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.342] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618740.346] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618740.358] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.362] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.370] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.376] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.382] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.386] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.390] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.394] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.429] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.433] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.438] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.442] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.446] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618740.451] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618740.459] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.464] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.468] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.472] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.477] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.481] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.485] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.489] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.494] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.498] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.502] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.506] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.510] {Default Queue} -> wl_region#3231.subtract(0, 0, 19, 48) -[2618740.515] {Default Queue} -> wl_region#3231.add(-20, -49, 19, 48) -[2618740.519] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618740.523] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618740.527] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) -[2618740.532] {Default Queue} -> wl_surface#3207.commit() -[2618740.536] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) -[2618740.540] {Default Queue} -> wl_surface#3207.commit() -[2618740.546] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) -[2618740.550] {Default Queue} -> wl_surface#3207.commit() -[2618740.556] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) -[2618740.560] {Default Queue} -> wl_surface#3143.commit() -[2618741.392] {Display Queue} wl_display#1.delete_id(3684) -[2618741.400] {Display Queue} wl_display#1.delete_id(3681) -[2618741.404] {Display Queue} wl_display#1.delete_id(3682) -[2618741.408] {Display Queue} wl_display#1.delete_id(3679) -[2618741.412] {Display Queue} wl_display#1.delete_id(3671) -[2618741.416] {Display Queue} wl_display#1.delete_id(3292) -[2618741.420] {Display Queue} wl_display#1.delete_id(3293) -[2618741.423] {Display Queue} wl_display#1.delete_id(3484) -[2618741.427] {Display Queue} wl_display#1.delete_id(3291) -[2618741.431] {Display Queue} wl_display#1.delete_id(3294) -[2618741.435] {Default Queue} wl_pointer#24.motion(187310371, 29.80078125, 24.19921875) -[2618741.440] {Default Queue} wl_pointer#81.motion(187310371, 29.80078125, 24.19921875) -[2618741.446] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618741.451] {Default Queue} wl_pointer#105.motion(187310371, 29.80078125, 24.19921875) -[2618741.455] {Default Queue} wl_pointer#137.motion(187310371, 29.80078125, 24.19921875) -[2618741.459] {Default Queue} wl_pointer#169.motion(187310371, 29.80078125, 24.19921875) -[2618741.464] {Default Queue} wl_pointer#201.motion(187310371, 29.80078125, 24.19921875) -[2618741.468] {Default Queue} wl_pointer#233.motion(187310371, 29.80078125, 24.19921875) -[2618741.472] {Default Queue} wl_pointer#265.motion(187310371, 29.80078125, 24.19921875) -[2618741.481] {Default Queue} wl_pointer#297.motion(187310371, 29.80078125, 24.19921875) -[2618741.487] {Default Queue} wl_pointer#329.motion(187310371, 29.80078125, 24.19921875) -[2618741.491] {Default Queue} wl_pointer#361.motion(187310371, 29.80078125, 24.19921875) -[2618741.496] {Default Queue} wl_pointer#393.motion(187310371, 29.80078125, 24.19921875) -[2618741.500] {Default Queue} wl_pointer#425.motion(187310371, 29.80078125, 24.19921875) -[2618741.504] {Default Queue} wl_pointer#457.motion(187310371, 29.80078125, 24.19921875) -[2618741.508] {Default Queue} wl_pointer#489.motion(187310371, 29.80078125, 24.19921875) -[2618741.513] {Default Queue} wl_pointer#521.motion(187310371, 29.80078125, 24.19921875) -[2618741.517] {Default Queue} wl_pointer#553.motion(187310371, 29.80078125, 24.19921875) -[2618741.521] {Default Queue} wl_pointer#585.motion(187310371, 29.80078125, 24.19921875) -[2618741.525] {Default Queue} wl_pointer#617.motion(187310371, 29.80078125, 24.19921875) -[2618741.530] {Default Queue} wl_pointer#649.motion(187310371, 29.80078125, 24.19921875) -[2618741.534] {Default Queue} wl_pointer#681.motion(187310371, 29.80078125, 24.19921875) -[2618741.538] {Default Queue} wl_pointer#713.motion(187310371, 29.80078125, 24.19921875) -[2618741.542] {Default Queue} wl_pointer#745.motion(187310371, 29.80078125, 24.19921875) -[2618741.546] {Default Queue} wl_pointer#777.motion(187310371, 29.80078125, 24.19921875) -[2618741.551] {Default Queue} wl_pointer#809.motion(187310371, 29.80078125, 24.19921875) -[2618741.555] {Default Queue} wl_pointer#841.motion(187310371, 29.80078125, 24.19921875) -[2618741.559] {Default Queue} wl_pointer#873.motion(187310371, 29.80078125, 24.19921875) -[2618741.563] {Default Queue} wl_pointer#905.motion(187310371, 29.80078125, 24.19921875) -[2618741.568] {Default Queue} wl_pointer#937.motion(187310371, 29.80078125, 24.19921875) -[2618741.572] {Default Queue} wl_pointer#969.motion(187310371, 29.80078125, 24.19921875) -[2618741.576] {Default Queue} wl_pointer#1001.motion(187310371, 29.80078125, 24.19921875) -[2618741.580] {Default Queue} wl_pointer#1033.motion(187310371, 29.80078125, 24.19921875) -[2618741.585] {Default Queue} wl_pointer#1065.motion(187310371, 29.80078125, 24.19921875) -[2618741.589] {Default Queue} wl_pointer#1097.motion(187310371, 29.80078125, 24.19921875) -[2618741.593] {Default Queue} wl_pointer#1129.motion(187310371, 29.80078125, 24.19921875) -[2618741.597] {Default Queue} wl_pointer#1161.motion(187310371, 29.80078125, 24.19921875) -[2618741.602] {Default Queue} wl_pointer#1193.motion(187310371, 29.80078125, 24.19921875) -[2618741.606] {Default Queue} wl_pointer#1225.motion(187310371, 29.80078125, 24.19921875) -[2618741.610] {Default Queue} wl_pointer#1257.motion(187310371, 29.80078125, 24.19921875) -[2618741.614] {Default Queue} wl_pointer#1289.motion(187310371, 29.80078125, 24.19921875) -[2618741.619] {Default Queue} wl_pointer#1321.motion(187310371, 29.80078125, 24.19921875) -[2618741.623] {Default Queue} wl_pointer#1353.motion(187310371, 29.80078125, 24.19921875) -[2618741.627] {Default Queue} wl_pointer#1385.motion(187310371, 29.80078125, 24.19921875) -[2618741.631] {Default Queue} wl_pointer#1417.motion(187310371, 29.80078125, 24.19921875) -[2618741.635] {Default Queue} wl_pointer#1449.motion(187310371, 29.80078125, 24.19921875) -[2618741.640] {Default Queue} wl_pointer#1481.motion(187310371, 29.80078125, 24.19921875) -[2618741.644] {Default Queue} wl_pointer#1513.motion(187310371, 29.80078125, 24.19921875) -[2618741.648] {Default Queue} wl_pointer#1545.motion(187310371, 29.80078125, 24.19921875) -[2618741.653] {Default Queue} wl_pointer#1577.motion(187310371, 29.80078125, 24.19921875) -[2618741.657] {Default Queue} wl_pointer#1609.motion(187310371, 29.80078125, 24.19921875) -[2618741.661] {Default Queue} wl_pointer#1641.motion(187310371, 29.80078125, 24.19921875) -[2618741.665] {Default Queue} wl_pointer#1673.motion(187310371, 29.80078125, 24.19921875) -[2618741.670] {Default Queue} wl_pointer#1705.motion(187310371, 29.80078125, 24.19921875) -[2618741.674] {Default Queue} wl_pointer#1737.motion(187310371, 29.80078125, 24.19921875) -[2618741.681] {Default Queue} wl_pointer#1762.motion(187310371, 29.80078125, 24.19921875) -[2618741.687] {Default Queue} wl_pointer#1801.motion(187310371, 29.80078125, 24.19921875) -[2618741.691] {Default Queue} wl_pointer#1833.motion(187310371, 29.80078125, 24.19921875) -[2618741.695] {Default Queue} wl_pointer#1865.motion(187310371, 29.80078125, 24.19921875) -[2618741.700] {Default Queue} wl_pointer#1897.motion(187310371, 29.80078125, 24.19921875) -[2618741.704] {Default Queue} wl_pointer#1929.motion(187310371, 29.80078125, 24.19921875) -[2618741.708] {Default Queue} wl_pointer#1961.motion(187310371, 29.80078125, 24.19921875) -[2618741.712] {Default Queue} wl_pointer#1993.motion(187310371, 29.80078125, 24.19921875) -[2618741.716] {Default Queue} wl_pointer#2025.motion(187310371, 29.80078125, 24.19921875) -[2618741.721] {Default Queue} wl_pointer#2057.motion(187310371, 29.80078125, 24.19921875) -[2618741.725] {Default Queue} wl_pointer#2089.motion(187310371, 29.80078125, 24.19921875) -[2618741.729] {Default Queue} wl_pointer#2121.motion(187310371, 29.80078125, 24.19921875) -[2618741.733] {Default Queue} wl_pointer#2153.motion(187310371, 29.80078125, 24.19921875) -[2618741.738] {Default Queue} wl_pointer#2185.motion(187310371, 29.80078125, 24.19921875) -[2618741.742] {Default Queue} wl_pointer#2217.motion(187310371, 29.80078125, 24.19921875) -[2618741.746] {Default Queue} wl_pointer#2249.motion(187310371, 29.80078125, 24.19921875) -[2618741.750] {Default Queue} wl_pointer#2281.motion(187310371, 29.80078125, 24.19921875) -[2618741.755] {Default Queue} wl_pointer#2313.motion(187310371, 29.80078125, 24.19921875) -[2618741.759] {Default Queue} wl_pointer#2345.motion(187310371, 29.80078125, 24.19921875) -[2618741.764] {Default Queue} wl_pointer#2377.motion(187310371, 29.80078125, 24.19921875) -[2618741.768] {Default Queue} wl_pointer#2409.motion(187310371, 29.80078125, 24.19921875) -[2618741.772] {Default Queue} wl_pointer#2441.motion(187310371, 29.80078125, 24.19921875) -[2618741.776] {Default Queue} wl_pointer#2473.motion(187310371, 29.80078125, 24.19921875) -[2618741.780] {Default Queue} wl_pointer#2498.motion(187310371, 29.80078125, 24.19921875) -[2618741.793] {Default Queue} -> wl_buffer#3454.destroy() -[2618741.798] {Default Queue} -> wl_buffer#3451.destroy() -[2618741.802] {Default Queue} -> wl_shm_pool#3452.destroy() -[2618741.806] {Default Queue} -> wl_shm_pool#3517.destroy() -[2618741.811] {Default Queue} -> wl_surface#3518.destroy() -[2618741.849] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3294, fd 575, 640) -[2618741.855] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 578, 640) -[2618741.868] {Default Queue} -> wl_shm_pool#3294.create_buffer(new id wl_buffer#3484, 0, 10, 16, 40, 0) -[2618741.889] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) -[2618741.897] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3292) -[2618741.901] {Default Queue} -> wl_surface#3292.attach(wl_buffer#3484, 0, 0) -[2618741.905] {Default Queue} -> wl_surface#3292.commit() -[2618741.911] {Default Queue} -> wl_surface#3292.attach(wl_buffer#3484, 0, 0) -[2618741.915] {Default Queue} -> wl_surface#3292.commit() -[2618741.919] {Default Queue} wl_pointer#2537.motion(187310371, 29.80078125, 24.19921875) -[2618741.924] {Default Queue} wl_pointer#2569.motion(187310371, 29.80078125, 24.19921875) -[2618741.928] {Default Queue} wl_pointer#2601.motion(187310371, 29.80078125, 24.19921875) -[2618741.933] {Default Queue} wl_pointer#2633.motion(187310371, 29.80078125, 24.19921875) -[2618741.937] {Default Queue} wl_pointer#2665.motion(187310371, 29.80078125, 24.19921875) -[2618741.941] {Default Queue} wl_pointer#2697.motion(187310371, 29.80078125, 24.19921875) -[2618741.945] {Default Queue} wl_pointer#2729.motion(187310371, 29.80078125, 24.19921875) -[2618741.950] {Default Queue} wl_pointer#2761.motion(187310371, 29.80078125, 24.19921875) -[2618741.954] {Default Queue} wl_pointer#2793.motion(187310371, 29.80078125, 24.19921875) -[2618741.962] {Default Queue} wl_pointer#2825.motion(187310371, 29.80078125, 24.19921875) -[2618741.968] {Default Queue} wl_pointer#2857.motion(187310371, 29.80078125, 24.19921875) -[2618741.973] {Default Queue} wl_pointer#2889.motion(187310371, 29.80078125, 24.19921875) -[2618741.977] {Default Queue} wl_pointer#2921.motion(187310371, 29.80078125, 24.19921875) -[2618741.982] {Default Queue} wl_pointer#2953.motion(187310371, 29.80078125, 24.19921875) -[2618741.986] {Default Queue} wl_pointer#2985.motion(187310371, 29.80078125, 24.19921875) -[2618741.990] {Default Queue} wl_pointer#3017.motion(187310371, 29.80078125, 24.19921875) -[2618741.994] {Default Queue} wl_pointer#3049.motion(187310371, 29.80078125, 24.19921875) -[2618741.999] {Default Queue} wl_pointer#3081.motion(187310371, 29.80078125, 24.19921875) -[2618742.003] {Default Queue} wl_pointer#3113.motion(187310371, 29.80078125, 24.19921875) -[2618742.007] {Default Queue} wl_pointer#3145.motion(187310371, 29.80078125, 24.19921875) -[2618742.011] {Default Queue} wl_pointer#3177.motion(187310371, 29.80078125, 24.19921875) -[2618742.016] {Default Queue} wl_pointer#3209.motion(187310371, 29.80078125, 24.19921875) -[2618742.020] {Default Queue} wl_pointer#3241.motion(187310371, 29.80078125, 24.19921875) -[2618742.025] {Default Queue} wl_pointer#3273.motion(187310371, 29.80078125, 24.19921875) -[2618742.029] {Default Queue} wl_pointer#3305.motion(187310371, 29.80078125, 24.19921875) -[2618742.033] {Default Queue} wl_pointer#3337.motion(187310371, 29.80078125, 24.19921875) -[2618742.037] {Default Queue} wl_pointer#3369.motion(187310371, 29.80078125, 24.19921875) -[2618742.042] {Default Queue} wl_pointer#3401.motion(187310371, 29.80078125, 24.19921875) -[2618742.046] {Default Queue} wl_pointer#3433.motion(187310371, 29.80078125, 24.19921875) -[2618742.050] {Default Queue} wl_pointer#3465.motion(187310371, 29.80078125, 24.19921875) -[2618742.055] {Default Queue} wl_pointer#3497.motion(187310371, 29.80078125, 24.19921875) -[2618742.059] {Default Queue} wl_pointer#3529.motion(187310371, 29.80078125, 24.19921875) -[2618742.063] {Default Queue} wl_pointer#3561.motion(187310371, 29.80078125, 24.19921875) -[2618742.068] {Default Queue} wl_pointer#3593.motion(187310371, 29.80078125, 24.19921875) -[2618742.072] {Default Queue} wl_pointer#3625.motion(187310371, 29.80078125, 24.19921875) -[2618742.076] {Default Queue} wl_pointer#3657.motion(187310371, 29.80078125, 24.19921875) -[2618742.080] {Default Queue} wl_pointer#3695.motion(187310371, 29.80078125, 24.19921875) -[2618742.089] {Default Queue} -> wl_region#3167.subtract(0, 0, 19, 48) -[2618742.095] {Default Queue} -> wl_region#3167.add(-20, -49, 19, 48) -[2618742.100] {Default Queue} -> wl_surface#3143.set_opaque_region(wl_region#3168) -[2618742.104] {Default Queue} -> wl_surface#3143.set_input_region(wl_region#3167) -[2618742.109] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) -[2618742.113] {Default Queue} -> wl_surface#3143.commit() -[2618742.117] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) -[2618742.121] {Default Queue} -> wl_surface#3143.commit() -[2618742.146] {Default Queue} wl_pointer#24.motion(187310376, 29.39843750, 24.19921875) -[2618742.151] {Default Queue} wl_pointer#81.motion(187310376, 29.39843750, 24.19921875) -[2618742.156] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618742.161] {Default Queue} wl_pointer#105.motion(187310376, 29.39843750, 24.19921875) -[2618742.165] {Default Queue} wl_pointer#137.motion(187310376, 29.39843750, 24.19921875) -[2618742.169] {Default Queue} wl_pointer#169.motion(187310376, 29.39843750, 24.19921875) -[2618742.174] {Default Queue} wl_pointer#201.motion(187310376, 29.39843750, 24.19921875) -[2618742.178] {Default Queue} wl_pointer#233.motion(187310376, 29.39843750, 24.19921875) -[2618742.182] {Default Queue} wl_pointer#265.motion(187310376, 29.39843750, 24.19921875) -[2618742.187] {Default Queue} wl_pointer#297.motion(187310376, 29.39843750, 24.19921875) -[2618742.191] {Default Queue} wl_pointer#329.motion(187310376, 29.39843750, 24.19921875) -[2618742.199] {Default Queue} wl_pointer#361.motion(187310376, 29.39843750, 24.19921875) -[2618742.205] {Default Queue} wl_pointer#393.motion(187310376, 29.39843750, 24.19921875) -[2618742.210] {Default Queue} wl_pointer#425.motion(187310376, 29.39843750, 24.19921875) -[2618742.214] {Default Queue} wl_pointer#457.motion(187310376, 29.39843750, 24.19921875) -[2618742.218] {Default Queue} wl_pointer#489.motion(187310376, 29.39843750, 24.19921875) -[2618742.222] {Default Queue} wl_pointer#521.motion(187310376, 29.39843750, 24.19921875) -[2618742.227] {Default Queue} wl_pointer#553.motion(187310376, 29.39843750, 24.19921875) -[2618742.231] {Default Queue} wl_pointer#585.motion(187310376, 29.39843750, 24.19921875) -[2618742.235] {Default Queue} wl_pointer#617.motion(187310376, 29.39843750, 24.19921875) -[2618742.239] {Default Queue} wl_pointer#649.motion(187310376, 29.39843750, 24.19921875) -[2618742.244] {Default Queue} wl_pointer#681.motion(187310376, 29.39843750, 24.19921875) -[2618742.248] {Default Queue} wl_pointer#713.motion(187310376, 29.39843750, 24.19921875) -[2618742.252] {Default Queue} wl_pointer#745.motion(187310376, 29.39843750, 24.19921875) -[2618742.256] {Default Queue} wl_pointer#777.motion(187310376, 29.39843750, 24.19921875) -[2618742.261] {Default Queue} wl_pointer#809.motion(187310376, 29.39843750, 24.19921875) -[2618742.265] {Default Queue} wl_pointer#841.motion(187310376, 29.39843750, 24.19921875) -[2618742.269] {Default Queue} wl_pointer#873.motion(187310376, 29.39843750, 24.19921875) -[2618742.273] {Default Queue} wl_pointer#905.motion(187310376, 29.39843750, 24.19921875) -[2618742.278] {Default Queue} wl_pointer#937.motion(187310376, 29.39843750, 24.19921875) -[2618742.282] {Default Queue} wl_pointer#969.motion(187310376, 29.39843750, 24.19921875) -[2618742.286] {Default Queue} wl_pointer#1001.motion(187310376, 29.39843750, 24.19921875) -[2618742.291] {Default Queue} wl_pointer#1033.motion(187310376, 29.39843750, 24.19921875) -[2618742.295] {Default Queue} wl_pointer#1065.motion(187310376, 29.39843750, 24.19921875) -[2618742.299] {Default Queue} wl_pointer#1097.motion(187310376, 29.39843750, 24.19921875) -[2618742.303] {Default Queue} wl_pointer#1129.motion(187310376, 29.39843750, 24.19921875) -[2618742.308] {Default Queue} wl_pointer#1161.motion(187310376, 29.39843750, 24.19921875) -[2618742.312] {Default Queue} wl_pointer#1193.motion(187310376, 29.39843750, 24.19921875) -[2618742.316] {Default Queue} wl_pointer#1225.motion(187310376, 29.39843750, 24.19921875) -[2618742.320] {Default Queue} wl_pointer#1257.motion(187310376, 29.39843750, 24.19921875) -[2618742.325] {Default Queue} wl_pointer#1289.motion(187310376, 29.39843750, 24.19921875) -[2618742.329] {Default Queue} wl_pointer#1321.motion(187310376, 29.39843750, 24.19921875) -[2618742.333] {Default Queue} wl_pointer#1353.motion(187310376, 29.39843750, 24.19921875) -[2618742.337] {Default Queue} wl_pointer#1385.motion(187310376, 29.39843750, 24.19921875) -[2618742.342] {Default Queue} wl_pointer#1417.motion(187310376, 29.39843750, 24.19921875) -[2618742.346] {Default Queue} wl_pointer#1449.motion(187310376, 29.39843750, 24.19921875) -[2618742.350] {Default Queue} wl_pointer#1481.motion(187310376, 29.39843750, 24.19921875) -[2618742.354] {Default Queue} wl_pointer#1513.motion(187310376, 29.39843750, 24.19921875) -[2618742.359] {Default Queue} wl_pointer#1545.motion(187310376, 29.39843750, 24.19921875) -[2618742.363] {Default Queue} wl_pointer#1577.motion(187310376, 29.39843750, 24.19921875) -[2618742.367] {Default Queue} wl_pointer#1609.motion(187310376, 29.39843750, 24.19921875) -[2618742.372] {Default Queue} wl_pointer#1641.motion(187310376, 29.39843750, 24.19921875) -[2618742.376] {Default Queue} wl_pointer#1673.motion(187310376, 29.39843750, 24.19921875) -[2618742.380] {Default Queue} wl_pointer#1705.motion(187310376, 29.39843750, 24.19921875) -[2618742.385] {Default Queue} wl_pointer#1737.motion(187310376, 29.39843750, 24.19921875) -[2618742.389] {Default Queue} wl_pointer#1762.motion(187310376, 29.39843750, 24.19921875) -[2618742.393] {Default Queue} wl_pointer#1801.motion(187310376, 29.39843750, 24.19921875) -[2618742.401] {Default Queue} wl_pointer#1833.motion(187310376, 29.39843750, 24.19921875) -[2618742.407] {Default Queue} wl_pointer#1865.motion(187310376, 29.39843750, 24.19921875) -[2618742.411] {Default Queue} wl_pointer#1897.motion(187310376, 29.39843750, 24.19921875) -[2618742.416] {Default Queue} wl_pointer#1929.motion(187310376, 29.39843750, 24.19921875) -[2618742.420] {Default Queue} wl_pointer#1961.motion(187310376, 29.39843750, 24.19921875) -[2618742.424] {Default Queue} wl_pointer#1993.motion(187310376, 29.39843750, 24.19921875) -[2618742.429] {Default Queue} wl_pointer#2025.motion(187310376, 29.39843750, 24.19921875) -[2618742.433] {Default Queue} wl_pointer#2057.motion(187310376, 29.39843750, 24.19921875) -[2618742.437] {Default Queue} wl_pointer#2089.motion(187310376, 29.39843750, 24.19921875) -[2618742.441] {Default Queue} wl_pointer#2121.motion(187310376, 29.39843750, 24.19921875) -[2618742.446] {Default Queue} wl_pointer#2153.motion(187310376, 29.39843750, 24.19921875) -[2618742.450] {Default Queue} wl_pointer#2185.motion(187310376, 29.39843750, 24.19921875) -[2618742.454] {Default Queue} wl_pointer#2217.motion(187310376, 29.39843750, 24.19921875) -[2618742.459] {Default Queue} wl_pointer#2249.motion(187310376, 29.39843750, 24.19921875) -[2618742.463] {Default Queue} wl_pointer#2281.motion(187310376, 29.39843750, 24.19921875) -[2618742.467] {Default Queue} wl_pointer#2313.motion(187310376, 29.39843750, 24.19921875) -[2618742.471] {Default Queue} wl_pointer#2345.motion(187310376, 29.39843750, 24.19921875) -[2618742.476] {Default Queue} wl_pointer#2377.motion(187310376, 29.39843750, 24.19921875) -[2618742.480] {Default Queue} wl_pointer#2409.motion(187310376, 29.39843750, 24.19921875) -[2618742.484] {Default Queue} wl_pointer#2441.motion(187310376, 29.39843750, 24.19921875) -[2618742.489] {Default Queue} wl_pointer#2473.motion(187310376, 29.39843750, 24.19921875) -[2618742.493] {Default Queue} wl_pointer#2498.motion(187310376, 29.39843750, 24.19921875) -[2618742.503] {Default Queue} -> wl_buffer#3484.destroy() -[2618742.508] {Default Queue} -> wl_buffer#3293.destroy() -[2618742.513] {Default Queue} -> wl_shm_pool#3294.destroy() -[2618742.517] {Default Queue} -> wl_shm_pool#3291.destroy() -[2618742.522] {Default Queue} -> wl_surface#3292.destroy() -[2618742.556] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3671, fd 581, 640) -[2618742.562] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 582, 640) -[2618742.566] {Default Queue} -> wl_shm_pool#3671.create_buffer(new id wl_buffer#3682, 0, 10, 16, 40, 0) -[2618742.571] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) -[2618742.578] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3684) -[2618742.582] {Default Queue} -> wl_surface#3684.attach(wl_buffer#3682, 0, 0) -[2618742.586] {Default Queue} -> wl_surface#3684.commit() -[2618742.592] {Default Queue} -> wl_surface#3684.attach(wl_buffer#3682, 0, 0) -[2618742.596] {Default Queue} -> wl_surface#3684.commit() -[2618742.600] {Default Queue} wl_pointer#2537.motion(187310376, 29.39843750, 24.19921875) -[2618742.604] {Default Queue} wl_pointer#2569.motion(187310376, 29.39843750, 24.19921875) -[2618742.609] {Default Queue} wl_pointer#2601.motion(187310376, 29.39843750, 24.19921875) -[2618742.613] {Default Queue} wl_pointer#2633.motion(187310376, 29.39843750, 24.19921875) -[2618742.617] {Default Queue} wl_pointer#2665.motion(187310376, 29.39843750, 24.19921875) -[2618742.622] {Default Queue} wl_pointer#2697.motion(187310376, 29.39843750, 24.19921875) -[2618742.626] {Default Queue} wl_pointer#2729.motion(187310376, 29.39843750, 24.19921875) -[2618742.630] {Default Queue} wl_pointer#2761.motion(187310376, 29.39843750, 24.19921875) -[2618742.634] {Default Queue} wl_pointer#2793.motion(187310376, 29.39843750, 24.19921875) -[2618742.639] {Default Queue} wl_pointer#2825.motion(187310376, 29.39843750, 24.19921875) -[2618742.643] {Default Queue} wl_pointer#2857.motion(187310376, 29.39843750, 24.19921875) -[2618742.647] {Default Queue} wl_pointer#2889.motion(187310376, 29.39843750, 24.19921875) -[2618742.655] {Default Queue} wl_pointer#2921.motion(187310376, 29.39843750, 24.19921875) -[2618742.661] {Default Queue} wl_pointer#2953.motion(187310376, 29.39843750, 24.19921875) -[2618742.665] {Default Queue} wl_pointer#2985.motion(187310376, 29.39843750, 24.19921875) -[2618742.670] {Default Queue} wl_pointer#3017.motion(187310376, 29.39843750, 24.19921875) -[2618742.674] {Default Queue} wl_pointer#3049.motion(187310376, 29.39843750, 24.19921875) -[2618742.678] {Default Queue} wl_pointer#3081.motion(187310376, 29.39843750, 24.19921875) -[2618742.682] {Default Queue} wl_pointer#3113.motion(187310376, 29.39843750, 24.19921875) -[2618742.687] {Default Queue} wl_pointer#3145.motion(187310376, 29.39843750, 24.19921875) -[2618742.691] {Default Queue} wl_pointer#3177.motion(187310376, 29.39843750, 24.19921875) -[2618742.695] {Default Queue} wl_pointer#3209.motion(187310376, 29.39843750, 24.19921875) -[2618742.700] {Default Queue} wl_pointer#3241.motion(187310376, 29.39843750, 24.19921875) -[2618742.704] {Default Queue} wl_pointer#3273.motion(187310376, 29.39843750, 24.19921875) -[2618742.708] {Default Queue} wl_pointer#3305.motion(187310376, 29.39843750, 24.19921875) -[2618742.713] {Default Queue} wl_pointer#3337.motion(187310376, 29.39843750, 24.19921875) -[2618742.717] {Default Queue} wl_pointer#3369.motion(187310376, 29.39843750, 24.19921875) -[2618742.722] {Default Queue} wl_pointer#3401.motion(187310376, 29.39843750, 24.19921875) -[2618742.743] {Default Queue} wl_pointer#3433.motion(187310376, 29.39843750, 24.19921875) -[2618742.753] {Default Queue} wl_pointer#3465.motion(187310376, 29.39843750, 24.19921875) -[2618742.758] {Default Queue} wl_pointer#3497.motion(187310376, 29.39843750, 24.19921875) -[2618742.762] {Default Queue} wl_pointer#3529.motion(187310376, 29.39843750, 24.19921875) -[2618742.767] {Default Queue} wl_pointer#3561.motion(187310376, 29.39843750, 24.19921875) -[2618742.771] {Default Queue} wl_pointer#3593.motion(187310376, 29.39843750, 24.19921875) -[2618742.776] {Default Queue} wl_pointer#3625.motion(187310376, 29.39843750, 24.19921875) -[2618742.780] {Default Queue} wl_pointer#3657.motion(187310376, 29.39843750, 24.19921875) -[2618742.787] {Default Queue} wl_pointer#3695.motion(187310376, 29.39843750, 24.19921875) -[2618742.791] {Default Queue} wl_pointer#24.motion(187310376, 29.39843750, 23.80078125) -[2618742.795] {Default Queue} wl_pointer#81.motion(187310376, 29.39843750, 23.80078125) -[2618742.801] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618742.806] {Default Queue} wl_pointer#105.motion(187310376, 29.39843750, 23.80078125) -[2618742.811] {Default Queue} wl_pointer#137.motion(187310376, 29.39843750, 23.80078125) -[2618742.815] {Default Queue} wl_pointer#169.motion(187310376, 29.39843750, 23.80078125) -[2618742.819] {Default Queue} wl_pointer#201.motion(187310376, 29.39843750, 23.80078125) -[2618742.823] {Default Queue} wl_pointer#233.motion(187310376, 29.39843750, 23.80078125) -[2618742.828] {Default Queue} wl_pointer#265.motion(187310376, 29.39843750, 23.80078125) -[2618742.832] {Default Queue} wl_pointer#297.motion(187310376, 29.39843750, 23.80078125) -[2618742.836] {Default Queue} wl_pointer#329.motion(187310376, 29.39843750, 23.80078125) -[2618742.841] {Default Queue} wl_pointer#361.motion(187310376, 29.39843750, 23.80078125) -[2618742.845] {Default Queue} wl_pointer#393.motion(187310376, 29.39843750, 23.80078125) -[2618742.849] {Default Queue} wl_pointer#425.motion(187310376, 29.39843750, 23.80078125) -[2618742.854] {Default Queue} wl_pointer#457.motion(187310376, 29.39843750, 23.80078125) -[2618742.858] {Default Queue} wl_pointer#489.motion(187310376, 29.39843750, 23.80078125) -[2618742.866] {Default Queue} wl_pointer#521.motion(187310376, 29.39843750, 23.80078125) -[2618742.871] {Default Queue} wl_pointer#553.motion(187310376, 29.39843750, 23.80078125) -[2618742.875] {Default Queue} wl_pointer#585.motion(187310376, 29.39843750, 23.80078125) -[2618742.879] {Default Queue} wl_pointer#617.motion(187310376, 29.39843750, 23.80078125) -[2618742.888] {Default Queue} wl_pointer#649.motion(187310376, 29.39843750, 23.80078125) -[2618742.895] {Default Queue} wl_pointer#681.motion(187310376, 29.39843750, 23.80078125) -[2618742.899] {Default Queue} wl_pointer#713.motion(187310376, 29.39843750, 23.80078125) -[2618742.903] {Default Queue} wl_pointer#745.motion(187310376, 29.39843750, 23.80078125) -[2618742.908] {Default Queue} wl_pointer#777.motion(187310376, 29.39843750, 23.80078125) -[2618742.912] {Default Queue} wl_pointer#809.motion(187310376, 29.39843750, 23.80078125) -[2618742.916] {Default Queue} wl_pointer#841.motion(187310376, 29.39843750, 23.80078125) -[2618742.921] {Default Queue} wl_pointer#873.motion(187310376, 29.39843750, 23.80078125) -[2618742.925] {Default Queue} wl_pointer#905.motion(187310376, 29.39843750, 23.80078125) -[2618742.929] {Default Queue} wl_pointer#937.motion(187310376, 29.39843750, 23.80078125) -[2618742.933] {Default Queue} wl_pointer#969.motion(187310376, 29.39843750, 23.80078125) -[2618742.938] {Default Queue} wl_pointer#1001.motion(187310376, 29.39843750, 23.80078125) -[2618742.942] {Default Queue} wl_pointer#1033.motion(187310376, 29.39843750, 23.80078125) -[2618742.946] {Default Queue} wl_pointer#1065.motion(187310376, 29.39843750, 23.80078125) -[2618742.951] {Default Queue} wl_pointer#1097.motion(187310376, 29.39843750, 23.80078125) -[2618742.955] {Default Queue} wl_pointer#1129.motion(187310376, 29.39843750, 23.80078125) -[2618742.959] {Default Queue} wl_pointer#1161.motion(187310376, 29.39843750, 23.80078125) -[2618742.963] {Default Queue} wl_pointer#1193.motion(187310376, 29.39843750, 23.80078125) -[2618742.968] {Default Queue} wl_pointer#1225.motion(187310376, 29.39843750, 23.80078125) -[2618742.972] {Default Queue} wl_pointer#1257.motion(187310376, 29.39843750, 23.80078125) -[2618742.976] {Default Queue} wl_pointer#1289.motion(187310376, 29.39843750, 23.80078125) -[2618742.981] {Default Queue} wl_pointer#1321.motion(187310376, 29.39843750, 23.80078125) -[2618742.985] {Default Queue} wl_pointer#1353.motion(187310376, 29.39843750, 23.80078125) -[2618742.989] {Default Queue} wl_pointer#1385.motion(187310376, 29.39843750, 23.80078125) -[2618742.994] {Default Queue} wl_pointer#1417.motion(187310376, 29.39843750, 23.80078125) -[2618742.998] {Default Queue} wl_pointer#1449.motion(187310376, 29.39843750, 23.80078125) -[2618743.002] {Default Queue} wl_pointer#1481.motion(187310376, 29.39843750, 23.80078125) -[2618743.006] {Default Queue} wl_pointer#1513.motion(187310376, 29.39843750, 23.80078125) -[2618743.011] {Default Queue} wl_pointer#1545.motion(187310376, 29.39843750, 23.80078125) -[2618743.015] {Default Queue} wl_pointer#1577.motion(187310376, 29.39843750, 23.80078125) -[2618743.019] {Default Queue} wl_pointer#1609.motion(187310376, 29.39843750, 23.80078125) -[2618743.024] {Default Queue} wl_pointer#1641.motion(187310376, 29.39843750, 23.80078125) -[2618743.028] {Default Queue} wl_pointer#1673.motion(187310376, 29.39843750, 23.80078125) -[2618743.032] {Default Queue} wl_pointer#1705.motion(187310376, 29.39843750, 23.80078125) -[2618743.037] {Default Queue} wl_pointer#1737.motion(187310376, 29.39843750, 23.80078125) -[2618743.041] {Default Queue} wl_pointer#1762.motion(187310376, 29.39843750, 23.80078125) -[2618743.045] {Default Queue} wl_pointer#1801.motion(187310376, 29.39843750, 23.80078125) -[2618743.050] {Default Queue} wl_pointer#1833.motion(187310376, 29.39843750, 23.80078125) -[2618743.054] {Default Queue} wl_pointer#1865.motion(187310376, 29.39843750, 23.80078125) -[2618743.058] {Default Queue} wl_pointer#1897.motion(187310376, 29.39843750, 23.80078125) -[2618743.063] {Default Queue} wl_pointer#1929.motion(187310376, 29.39843750, 23.80078125) -[2618743.067] {Default Queue} wl_pointer#1961.motion(187310376, 29.39843750, 23.80078125) -[2618743.071] {Default Queue} wl_pointer#1993.motion(187310376, 29.39843750, 23.80078125) -[2618743.076] {Default Queue} wl_pointer#2025.motion(187310376, 29.39843750, 23.80078125) -[2618743.080] {Default Queue} wl_pointer#2057.motion(187310376, 29.39843750, 23.80078125) -[2618743.084] {Default Queue} wl_pointer#2089.motion(187310376, 29.39843750, 23.80078125) -[2618743.091] {Default Queue} wl_pointer#2121.motion(187310376, 29.39843750, 23.80078125) -[2618743.097] {Default Queue} wl_pointer#2153.motion(187310376, 29.39843750, 23.80078125) -[2618743.102] {Default Queue} wl_pointer#2185.motion(187310376, 29.39843750, 23.80078125) -[2618743.106] {Default Queue} wl_pointer#2217.motion(187310376, 29.39843750, 23.80078125) -[2618743.110] {Default Queue} wl_pointer#2249.motion(187310376, 29.39843750, 23.80078125) -[2618743.114] {Default Queue} wl_pointer#2281.motion(187310376, 29.39843750, 23.80078125) -[2618743.119] {Default Queue} wl_pointer#2313.motion(187310376, 29.39843750, 23.80078125) -[2618743.123] {Default Queue} wl_pointer#2345.motion(187310376, 29.39843750, 23.80078125) -[2618743.128] {Default Queue} wl_pointer#2377.motion(187310376, 29.39843750, 23.80078125) -[2618743.132] {Default Queue} wl_pointer#2409.motion(187310376, 29.39843750, 23.80078125) -[2618743.136] {Default Queue} wl_pointer#2441.motion(187310376, 29.39843750, 23.80078125) -[2618743.140] {Default Queue} wl_pointer#2473.motion(187310376, 29.39843750, 23.80078125) -[2618743.147] {Default Queue} wl_pointer#2498.motion(187310376, 29.39843750, 23.80078125) -[2618743.159] {Default Queue} -> wl_buffer#3682.destroy() -[2618743.165] {Default Queue} -> wl_buffer#3681.destroy() -[2618743.169] {Default Queue} -> wl_shm_pool#3671.destroy() -[2618743.173] {Default Queue} -> wl_shm_pool#3679.destroy() -[2618743.178] {Default Queue} -> wl_surface#3684.destroy() -[2618743.218] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3683, fd 583, 640) -[2618743.224] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 584, 640) -[2618743.230] {Default Queue} -> wl_shm_pool#3683.create_buffer(new id wl_buffer#91, 0, 10, 16, 40, 0) -[2618743.235] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) -[2618743.243] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#93) -[2618743.247] {Default Queue} -> wl_surface#93.attach(wl_buffer#91, 0, 0) -[2618743.252] {Default Queue} -> wl_surface#93.commit() -[2618743.257] {Default Queue} -> wl_surface#93.attach(wl_buffer#91, 0, 0) -[2618743.261] {Default Queue} -> wl_surface#93.commit() -[2618743.266] {Default Queue} wl_pointer#2537.motion(187310376, 29.39843750, 23.80078125) -[2618743.271] {Default Queue} wl_pointer#2569.motion(187310376, 29.39843750, 23.80078125) -[2618743.275] {Default Queue} wl_pointer#2601.motion(187310376, 29.39843750, 23.80078125) -[2618743.279] {Default Queue} wl_pointer#2633.motion(187310376, 29.39843750, 23.80078125) -[2618743.284] {Default Queue} wl_pointer#2665.motion(187310376, 29.39843750, 23.80078125) -[2618743.288] {Default Queue} wl_pointer#2697.motion(187310376, 29.39843750, 23.80078125) -[2618743.292] {Default Queue} wl_pointer#2729.motion(187310376, 29.39843750, 23.80078125) -[2618743.297] {Default Queue} wl_pointer#2761.motion(187310376, 29.39843750, 23.80078125) -[2618743.301] {Default Queue} wl_pointer#2793.motion(187310376, 29.39843750, 23.80078125) -[2618743.305] {Default Queue} wl_pointer#2825.motion(187310376, 29.39843750, 23.80078125) -[2618743.310] {Default Queue} wl_pointer#2857.motion(187310376, 29.39843750, 23.80078125) -[2618743.315] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) -[2618743.319] {Default Queue} -> wl_surface#3143.commit() -[2618744.385] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) -[2618744.391] {Default Queue} -> wl_surface#3143.commit() -[2618744.397] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) -[2618744.401] {Default Queue} -> wl_surface#3143.commit() -[2618744.407] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) -[2618744.411] {Default Queue} -> wl_surface#3111.commit() -[2618745.473] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) -[2618745.478] {Default Queue} -> wl_surface#3111.commit() -[2618745.486] {Default Queue} -> wl_region#3135.subtract(0, 0, 19, 48) -[2618745.491] {Default Queue} -> wl_region#3135.add(-20, -49, 19, 48) -[2618745.496] {Default Queue} -> wl_surface#3111.set_opaque_region(wl_region#3136) -[2618745.504] {Default Queue} -> wl_surface#3111.set_input_region(wl_region#3135) -[2618745.512] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) -[2618745.516] {Default Queue} -> wl_surface#3111.commit() -[2618745.520] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) -[2618745.524] {Default Queue} -> wl_surface#3111.commit() -[2618745.546] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) -[2618745.551] {Default Queue} -> wl_surface#3111.commit() -[2618745.567] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) -[2618745.571] {Default Queue} -> wl_surface#3047.commit() -[2618746.280] {Display Queue} wl_display#1.delete_id(3483) -[2618746.286] {Display Queue} wl_display#1.delete_id(3516) -[2618746.290] {Display Queue} wl_display#1.delete_id(3515) -[2618746.294] {Display Queue} wl_display#1.delete_id(3486) -[2618746.298] {Display Queue} wl_display#1.delete_id(3485) -[2618746.302] {Default Queue} wl_pointer#2889.motion(187310376, 29.39843750, 23.80078125) -[2618746.307] {Default Queue} wl_pointer#2921.motion(187310376, 29.39843750, 23.80078125) -[2618746.312] {Default Queue} wl_pointer#2953.motion(187310376, 29.39843750, 23.80078125) -[2618746.316] {Default Queue} wl_pointer#2985.motion(187310376, 29.39843750, 23.80078125) -[2618746.320] {Default Queue} wl_pointer#3017.motion(187310376, 29.39843750, 23.80078125) -[2618746.325] {Default Queue} wl_pointer#3049.motion(187310376, 29.39843750, 23.80078125) -[2618746.329] {Default Queue} wl_pointer#3081.motion(187310376, 29.39843750, 23.80078125) -[2618746.333] {Default Queue} wl_pointer#3113.motion(187310376, 29.39843750, 23.80078125) -[2618746.338] {Default Queue} wl_pointer#3145.motion(187310376, 29.39843750, 23.80078125) -[2618746.342] {Default Queue} wl_pointer#3177.motion(187310376, 29.39843750, 23.80078125) -[2618746.347] {Default Queue} wl_pointer#3209.motion(187310376, 29.39843750, 23.80078125) -[2618746.351] {Default Queue} wl_pointer#3241.motion(187310376, 29.39843750, 23.80078125) -[2618746.355] {Default Queue} wl_pointer#3273.motion(187310376, 29.39843750, 23.80078125) -[2618746.360] {Default Queue} wl_pointer#3305.motion(187310376, 29.39843750, 23.80078125) -[2618746.364] {Default Queue} wl_pointer#3337.motion(187310376, 29.39843750, 23.80078125) -[2618746.368] {Default Queue} wl_pointer#3369.motion(187310376, 29.39843750, 23.80078125) -[2618746.373] {Default Queue} wl_pointer#3401.motion(187310376, 29.39843750, 23.80078125) -[2618746.377] {Default Queue} wl_pointer#3433.motion(187310376, 29.39843750, 23.80078125) -[2618746.381] {Default Queue} wl_pointer#3465.motion(187310376, 29.39843750, 23.80078125) -[2618746.386] {Default Queue} wl_pointer#3497.motion(187310376, 29.39843750, 23.80078125) -[2618746.390] {Default Queue} wl_pointer#3529.motion(187310376, 29.39843750, 23.80078125) -[2618746.394] {Default Queue} wl_pointer#3561.motion(187310376, 29.39843750, 23.80078125) -[2618746.399] {Default Queue} wl_pointer#3593.motion(187310376, 29.39843750, 23.80078125) -[2618746.403] {Default Queue} wl_pointer#3625.motion(187310376, 29.39843750, 23.80078125) -[2618746.407] {Default Queue} wl_pointer#3657.motion(187310376, 29.39843750, 23.80078125) -[2618746.412] {Default Queue} wl_pointer#3695.motion(187310376, 29.39843750, 23.80078125) -[2618746.420] {Default Queue} -> wl_region#3071.subtract(0, 0, 22, 51) -[2618746.424] {Default Queue} -> wl_region#3071.add(-20, -49, 19, 48) -[2618746.429] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) -[2618746.433] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) -[2618746.438] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) -[2618746.442] {Default Queue} -> wl_surface#3047.commit() -[2618746.446] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) -[2618746.450] {Default Queue} -> wl_surface#3047.commit() -[2618746.456] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) -[2618746.460] {Default Queue} -> wl_surface#3047.commit() -[2618746.465] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) -[2618746.474] {Default Queue} -> wl_surface#3015.commit() -[2618747.536] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) -[2618747.542] {Default Queue} -> wl_surface#3015.commit() -[2618747.551] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) -[2618747.556] {Default Queue} -> wl_region#3039.add(0, 0, 2, 2) -[2618747.560] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618747.564] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618747.571] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) -[2618747.576] {Default Queue} -> wl_region#3039.add(0, 0, 2, 2) -[2618747.580] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618747.584] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618747.589] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) -[2618747.593] {Default Queue} -> wl_region#3039.add(0, 0, 2, 2) -[2618747.597] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618747.601] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618747.607] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) -[2618747.611] {Default Queue} -> wl_region#3039.add(0, 0, 2, 2) -[2618747.615] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618747.619] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618747.625] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) -[2618747.630] {Default Queue} -> wl_region#3039.add(0, 0, 2, 2) -[2618747.634] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618747.638] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618747.642] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) -[2618747.647] {Default Queue} -> wl_surface#3015.commit() -[2618747.651] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) -[2618747.655] {Default Queue} -> wl_surface#3015.commit() -[2618747.660] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) -[2618747.665] {Default Queue} -> wl_surface#3015.commit() -[2618747.671] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) -[2618747.675] {Default Queue} -> wl_surface#3303.commit() -[2618748.736] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) -[2618748.741] {Default Queue} -> wl_surface#3303.commit() -[2618748.749] {Default Queue} -> wl_region#3327.subtract(0, 0, 19, 48) -[2618748.754] {Default Queue} -> wl_region#3327.add(-20, -49, 19, 48) -[2618748.758] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2618748.762] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2618748.883] {Default Queue} -> wl_region#3327.subtract(0, 0, 19, 48) -[2618748.889] {Default Queue} -> wl_region#3327.add(-20, -49, 19, 48) -[2618748.893] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2618748.897] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2618748.904] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618748.908] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618748.974] {Default Queue} -> wl_region#3327.subtract(0, 0, 19, 48) -[2618748.979] {Default Queue} -> wl_region#3327.add(-20, -49, 19, 48) -[2618748.983] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2618748.987] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2618748.992] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618748.997] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618749.002] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) -[2618749.006] {Default Queue} -> wl_surface#3303.commit() -[2618749.010] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) -[2618749.014] {Default Queue} -> wl_surface#3303.commit() -[2618749.021] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) -[2618749.025] {Default Queue} -> wl_surface#3303.commit() -[2618749.031] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) -[2618749.040] {Default Queue} -> wl_surface#3399.commit() -[2618750.103] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) -[2618750.109] {Default Queue} -> wl_surface#3399.commit() -[2618750.116] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618750.120] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618750.125] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618750.129] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618750.137] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618750.142] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618750.147] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618750.151] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618750.155] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618750.160] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618750.164] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618750.168] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618750.172] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618750.177] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618750.181] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618750.185] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618750.189] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618750.194] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618750.198] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618750.202] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618750.208] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618750.212] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618750.216] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618750.220] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618750.224] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618750.229] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618750.233] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618750.237] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618750.241] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618750.246] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618750.250] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618750.254] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618750.258] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618750.262] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618750.266] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618750.271] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618750.281] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618750.285] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618750.289] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618750.293] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618750.298] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618750.302] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618750.306] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618750.310] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618750.314] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618750.319] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618750.323] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618750.327] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618750.331] {Default Queue} -> wl_region#3423.subtract(0, 0, 22, 48) -[2618750.336] {Default Queue} -> wl_region#3423.add(-6, -49, 8, 48) -[2618750.340] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618750.347] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618750.353] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) -[2618750.357] {Default Queue} -> wl_surface#3399.commit() -[2618750.361] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) -[2618750.366] {Default Queue} -> wl_surface#3399.commit() -[2618750.371] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) -[2618750.375] {Default Queue} -> wl_surface#3399.commit() -[2618750.381] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) -[2618750.385] {Default Queue} -> wl_surface#3431.commit() -[2618751.447] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) -[2618751.453] {Default Queue} -> wl_surface#3431.commit() -[2618751.461] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618751.466] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618751.471] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618751.475] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618751.483] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618751.487] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618751.491] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618751.495] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618751.500] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618751.504] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618751.508] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618751.512] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618751.517] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618751.521] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618751.525] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618751.529] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618751.534] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618751.538] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618751.542] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618751.546] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618751.552] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618751.557] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618751.561] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618751.565] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618751.569] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618751.574] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618751.578] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618751.582] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618751.586] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618751.590] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618751.595] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618751.599] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618751.603] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618751.607] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618751.611] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618751.615] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618751.625] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618751.630] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618751.634] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618751.638] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618751.642] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618751.647] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618751.651] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618751.658] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618751.665] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618751.669] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618751.673] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618751.677] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618751.682] {Default Queue} -> wl_region#3455.subtract(0, 0, 19, 51) -[2618751.686] {Default Queue} -> wl_region#3455.add(-20, -35, 19, 37) -[2618751.690] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618751.694] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618751.699] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) -[2618751.703] {Default Queue} -> wl_surface#3431.commit() -[2618751.707] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) -[2618751.711] {Default Queue} -> wl_surface#3431.commit() -[2618751.717] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) -[2618751.721] {Default Queue} -> wl_surface#3431.commit() -[2618751.732] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2618751.737] {Default Queue} -> wl_surface#3527.commit() -[2618752.799] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2618752.807] {Default Queue} -> wl_surface#3527.commit() -[2618752.817] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) -[2618752.822] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) -[2618752.826] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618752.830] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618752.839] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) -[2618752.843] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) -[2618752.847] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618752.851] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618752.856] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) -[2618752.864] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) -[2618752.868] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618752.872] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618752.877] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) -[2618752.881] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) -[2618752.885] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618752.889] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618752.894] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) -[2618752.898] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) -[2618752.902] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618752.906] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618752.940] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) -[2618752.945] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) -[2618752.949] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618752.953] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618752.967] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618752.972] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618753.034] {Default Queue} -> wl_region#3551.subtract(0, 0, 192, 192) -[2618753.039] {Default Queue} -> wl_region#3551.add(-23, -52, 0, 0) -[2618753.044] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618753.048] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618753.053] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618753.058] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618753.064] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2618753.069] {Default Queue} -> wl_surface#3527.commit() -[2618753.074] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2618753.082] {Default Queue} -> wl_surface#3527.commit() -[2618753.091] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2618753.096] {Default Queue} -> wl_surface#3527.commit() -[2618753.131] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2618753.136] {Default Queue} -> wl_surface#3495.commit() -[2618754.204] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2618754.212] {Default Queue} -> wl_surface#3495.commit() -[2618754.222] {Default Queue} -> wl_region#3519.subtract(0, 0, 19, 48) -[2618754.227] {Default Queue} -> wl_region#3519.add(-20, -49, 19, 48) -[2618754.231] {Default Queue} -> wl_surface#3495.set_opaque_region(wl_region#3520) -[2618754.235] {Default Queue} -> wl_surface#3495.set_input_region(wl_region#3519) -[2618754.245] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2618754.251] {Default Queue} -> wl_surface#3495.commit() -[2618754.259] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2618754.263] {Default Queue} -> wl_surface#3495.commit() -[2618754.274] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2618754.278] {Default Queue} -> wl_surface#3495.commit() -[2618754.284] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) -[2618754.288] {Default Queue} -> wl_surface#3463.commit() -[2618755.350] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) -[2618755.355] {Default Queue} -> wl_surface#3463.commit() -[2618755.361] {Default Queue} -> wl_region#3487.subtract(0, 0, 19, 48) -[2618755.365] {Default Queue} -> wl_region#3487.add(-20, -49, 19, 48) -[2618755.369] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) -[2618755.373] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) -[2618755.378] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) -[2618755.382] {Default Queue} -> wl_surface#3463.commit() -[2618755.386] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) -[2618755.390] {Default Queue} -> wl_surface#3463.commit() -[2618755.396] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) -[2618755.400] {Default Queue} -> wl_surface#3463.commit() -[2618755.406] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) -[2618755.410] {Default Queue} -> wl_surface#3367.commit() -[2618756.356] {Display Queue} wl_display#1.delete_id(3454) -[2618756.363] {Display Queue} wl_display#1.delete_id(3451) -[2618756.368] {Display Queue} wl_display#1.delete_id(3452) -[2618756.372] {Display Queue} wl_display#1.delete_id(3517) -[2618756.376] {Display Queue} wl_display#1.delete_id(3518) -[2618756.380] {Display Queue} wl_display#1.delete_id(3484) -[2618756.384] {Display Queue} wl_display#1.delete_id(3293) -[2618756.388] {Display Queue} wl_display#1.delete_id(3294) -[2618756.392] {Display Queue} wl_display#1.delete_id(3291) -[2618756.396] {Display Queue} wl_display#1.delete_id(3292) -[2618756.400] {Display Queue} wl_display#1.delete_id(3682) -[2618756.403] {Display Queue} wl_display#1.delete_id(3681) -[2618756.407] {Display Queue} wl_display#1.delete_id(3671) -[2618756.411] {Display Queue} wl_display#1.delete_id(3679) -[2618756.415] {Display Queue} wl_display#1.delete_id(3684) -[2618756.419] {Default Queue} wl_pointer#24.motion(187310386, 29.39843750, 23.39843750) -[2618756.424] {Default Queue} wl_pointer#81.motion(187310386, 29.39843750, 23.39843750) -[2618756.430] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618756.435] {Default Queue} wl_pointer#105.motion(187310386, 29.39843750, 23.39843750) -[2618756.439] {Default Queue} wl_pointer#137.motion(187310386, 29.39843750, 23.39843750) -[2618756.444] {Default Queue} wl_pointer#169.motion(187310386, 29.39843750, 23.39843750) -[2618756.448] {Default Queue} wl_pointer#201.motion(187310386, 29.39843750, 23.39843750) -[2618756.452] {Default Queue} wl_pointer#233.motion(187310386, 29.39843750, 23.39843750) -[2618756.456] {Default Queue} wl_pointer#265.motion(187310386, 29.39843750, 23.39843750) -[2618756.461] {Default Queue} wl_pointer#297.motion(187310386, 29.39843750, 23.39843750) -[2618756.469] {Default Queue} wl_pointer#329.motion(187310386, 29.39843750, 23.39843750) -[2618756.476] {Default Queue} wl_pointer#361.motion(187310386, 29.39843750, 23.39843750) -[2618756.480] {Default Queue} wl_pointer#393.motion(187310386, 29.39843750, 23.39843750) -[2618756.484] {Default Queue} wl_pointer#425.motion(187310386, 29.39843750, 23.39843750) -[2618756.489] {Default Queue} wl_pointer#457.motion(187310386, 29.39843750, 23.39843750) -[2618756.493] {Default Queue} wl_pointer#489.motion(187310386, 29.39843750, 23.39843750) -[2618756.497] {Default Queue} wl_pointer#521.motion(187310386, 29.39843750, 23.39843750) -[2618756.501] {Default Queue} wl_pointer#553.motion(187310386, 29.39843750, 23.39843750) -[2618756.506] {Default Queue} wl_pointer#585.motion(187310386, 29.39843750, 23.39843750) -[2618756.510] {Default Queue} wl_pointer#617.motion(187310386, 29.39843750, 23.39843750) -[2618756.514] {Default Queue} wl_pointer#649.motion(187310386, 29.39843750, 23.39843750) -[2618756.519] {Default Queue} wl_pointer#681.motion(187310386, 29.39843750, 23.39843750) -[2618756.523] {Default Queue} wl_pointer#713.motion(187310386, 29.39843750, 23.39843750) -[2618756.527] {Default Queue} wl_pointer#745.motion(187310386, 29.39843750, 23.39843750) -[2618756.532] {Default Queue} wl_pointer#777.motion(187310386, 29.39843750, 23.39843750) -[2618756.536] {Default Queue} wl_pointer#809.motion(187310386, 29.39843750, 23.39843750) -[2618756.540] {Default Queue} wl_pointer#841.motion(187310386, 29.39843750, 23.39843750) -[2618756.544] {Default Queue} wl_pointer#873.motion(187310386, 29.39843750, 23.39843750) -[2618756.549] {Default Queue} wl_pointer#905.motion(187310386, 29.39843750, 23.39843750) -[2618756.553] {Default Queue} wl_pointer#937.motion(187310386, 29.39843750, 23.39843750) -[2618756.557] {Default Queue} wl_pointer#969.motion(187310386, 29.39843750, 23.39843750) -[2618756.561] {Default Queue} wl_pointer#1001.motion(187310386, 29.39843750, 23.39843750) -[2618756.566] {Default Queue} wl_pointer#1033.motion(187310386, 29.39843750, 23.39843750) -[2618756.570] {Default Queue} wl_pointer#1065.motion(187310386, 29.39843750, 23.39843750) -[2618756.574] {Default Queue} wl_pointer#1097.motion(187310386, 29.39843750, 23.39843750) -[2618756.578] {Default Queue} wl_pointer#1129.motion(187310386, 29.39843750, 23.39843750) -[2618756.583] {Default Queue} wl_pointer#1161.motion(187310386, 29.39843750, 23.39843750) -[2618756.587] {Default Queue} wl_pointer#1193.motion(187310386, 29.39843750, 23.39843750) -[2618756.591] {Default Queue} wl_pointer#1225.motion(187310386, 29.39843750, 23.39843750) -[2618756.595] {Default Queue} wl_pointer#1257.motion(187310386, 29.39843750, 23.39843750) -[2618756.600] {Default Queue} wl_pointer#1289.motion(187310386, 29.39843750, 23.39843750) -[2618756.604] {Default Queue} wl_pointer#1321.motion(187310386, 29.39843750, 23.39843750) -[2618756.608] {Default Queue} wl_pointer#1353.motion(187310386, 29.39843750, 23.39843750) -[2618756.612] {Default Queue} wl_pointer#1385.motion(187310386, 29.39843750, 23.39843750) -[2618756.617] {Default Queue} wl_pointer#1417.motion(187310386, 29.39843750, 23.39843750) -[2618756.621] {Default Queue} wl_pointer#1449.motion(187310386, 29.39843750, 23.39843750) -[2618756.625] {Default Queue} wl_pointer#1481.motion(187310386, 29.39843750, 23.39843750) -[2618756.629] {Default Queue} wl_pointer#1513.motion(187310386, 29.39843750, 23.39843750) -[2618756.634] {Default Queue} wl_pointer#1545.motion(187310386, 29.39843750, 23.39843750) -[2618756.638] {Default Queue} wl_pointer#1577.motion(187310386, 29.39843750, 23.39843750) -[2618756.642] {Default Queue} wl_pointer#1609.motion(187310386, 29.39843750, 23.39843750) -[2618756.647] {Default Queue} wl_pointer#1641.motion(187310386, 29.39843750, 23.39843750) -[2618756.651] {Default Queue} wl_pointer#1673.motion(187310386, 29.39843750, 23.39843750) -[2618756.655] {Default Queue} wl_pointer#1705.motion(187310386, 29.39843750, 23.39843750) -[2618756.659] {Default Queue} wl_pointer#1737.motion(187310386, 29.39843750, 23.39843750) -[2618756.664] {Default Queue} wl_pointer#1762.motion(187310386, 29.39843750, 23.39843750) -[2618756.673] {Default Queue} wl_pointer#1801.motion(187310386, 29.39843750, 23.39843750) -[2618756.678] {Default Queue} wl_pointer#1833.motion(187310386, 29.39843750, 23.39843750) -[2618756.683] {Default Queue} wl_pointer#1865.motion(187310386, 29.39843750, 23.39843750) -[2618756.687] {Default Queue} wl_pointer#1897.motion(187310386, 29.39843750, 23.39843750) -[2618756.691] {Default Queue} wl_pointer#1929.motion(187310386, 29.39843750, 23.39843750) -[2618756.696] {Default Queue} wl_pointer#1961.motion(187310386, 29.39843750, 23.39843750) -[2618756.700] {Default Queue} wl_pointer#1993.motion(187310386, 29.39843750, 23.39843750) -[2618756.704] {Default Queue} wl_pointer#2025.motion(187310386, 29.39843750, 23.39843750) -[2618756.708] {Default Queue} wl_pointer#2057.motion(187310386, 29.39843750, 23.39843750) -[2618756.712] {Default Queue} wl_pointer#2089.motion(187310386, 29.39843750, 23.39843750) -[2618756.717] {Default Queue} wl_pointer#2121.motion(187310386, 29.39843750, 23.39843750) -[2618756.721] {Default Queue} wl_pointer#2153.motion(187310386, 29.39843750, 23.39843750) -[2618756.725] {Default Queue} wl_pointer#2185.motion(187310386, 29.39843750, 23.39843750) -[2618756.730] {Default Queue} wl_pointer#2217.motion(187310386, 29.39843750, 23.39843750) -[2618756.734] {Default Queue} wl_pointer#2249.motion(187310386, 29.39843750, 23.39843750) -[2618756.738] {Default Queue} wl_pointer#2281.motion(187310386, 29.39843750, 23.39843750) -[2618756.742] {Default Queue} wl_pointer#2313.motion(187310386, 29.39843750, 23.39843750) -[2618756.747] {Default Queue} wl_pointer#2345.motion(187310386, 29.39843750, 23.39843750) -[2618756.751] {Default Queue} wl_pointer#2377.motion(187310386, 29.39843750, 23.39843750) -[2618756.756] {Default Queue} wl_pointer#2409.motion(187310386, 29.39843750, 23.39843750) -[2618756.760] {Default Queue} wl_pointer#2441.motion(187310386, 29.39843750, 23.39843750) -[2618756.764] {Default Queue} wl_pointer#2473.motion(187310386, 29.39843750, 23.39843750) -[2618756.769] {Default Queue} wl_pointer#2498.motion(187310386, 29.39843750, 23.39843750) -[2618756.781] {Default Queue} -> wl_buffer#91.destroy() -[2618756.786] {Default Queue} -> wl_buffer#94.destroy() -[2618756.790] {Default Queue} -> wl_shm_pool#3683.destroy() -[2618756.794] {Default Queue} -> wl_shm_pool#92.destroy() -[2618756.799] {Default Queue} -> wl_surface#93.destroy() -[2618756.843] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3684, fd 575, 640) -[2618756.849] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 578, 640) -[2618756.853] {Default Queue} -> wl_shm_pool#3684.create_buffer(new id wl_buffer#3671, 0, 10, 16, 40, 0) -[2618756.858] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) -[2618756.867] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3682) -[2618756.878] {Default Queue} -> wl_surface#3682.attach(wl_buffer#3671, 0, 0) -[2618756.882] {Default Queue} -> wl_surface#3682.commit() -[2618756.888] {Default Queue} -> wl_surface#3682.attach(wl_buffer#3671, 0, 0) -[2618756.892] {Default Queue} -> wl_surface#3682.commit() -[2618756.896] {Default Queue} wl_pointer#2537.motion(187310386, 29.39843750, 23.39843750) -[2618756.901] {Default Queue} wl_pointer#2569.motion(187310386, 29.39843750, 23.39843750) -[2618756.905] {Default Queue} wl_pointer#2601.motion(187310386, 29.39843750, 23.39843750) -[2618756.910] {Default Queue} wl_pointer#2633.motion(187310386, 29.39843750, 23.39843750) -[2618756.914] {Default Queue} wl_pointer#2665.motion(187310386, 29.39843750, 23.39843750) -[2618756.918] {Default Queue} wl_pointer#2697.motion(187310386, 29.39843750, 23.39843750) -[2618756.922] {Default Queue} wl_pointer#2729.motion(187310386, 29.39843750, 23.39843750) -[2618756.927] {Default Queue} wl_pointer#2761.motion(187310386, 29.39843750, 23.39843750) -[2618756.931] {Default Queue} wl_pointer#2793.motion(187310386, 29.39843750, 23.39843750) -[2618756.935] {Default Queue} wl_pointer#2825.motion(187310386, 29.39843750, 23.39843750) -[2618756.944] {Default Queue} wl_pointer#2857.motion(187310386, 29.39843750, 23.39843750) -[2618756.951] {Default Queue} wl_pointer#2889.motion(187310386, 29.39843750, 23.39843750) -[2618756.955] {Default Queue} wl_pointer#2921.motion(187310386, 29.39843750, 23.39843750) -[2618756.959] {Default Queue} wl_pointer#2953.motion(187310386, 29.39843750, 23.39843750) -[2618756.963] {Default Queue} wl_pointer#2985.motion(187310386, 29.39843750, 23.39843750) -[2618756.968] {Default Queue} wl_pointer#3017.motion(187310386, 29.39843750, 23.39843750) -[2618756.972] {Default Queue} wl_pointer#3049.motion(187310386, 29.39843750, 23.39843750) -[2618756.976] {Default Queue} wl_pointer#3081.motion(187310386, 29.39843750, 23.39843750) -[2618756.981] {Default Queue} wl_pointer#3113.motion(187310386, 29.39843750, 23.39843750) -[2618756.985] {Default Queue} wl_pointer#3145.motion(187310386, 29.39843750, 23.39843750) -[2618756.989] {Default Queue} wl_pointer#3177.motion(187310386, 29.39843750, 23.39843750) -[2618756.994] {Default Queue} wl_pointer#3209.motion(187310386, 29.39843750, 23.39843750) -[2618756.998] {Default Queue} wl_pointer#3241.motion(187310386, 29.39843750, 23.39843750) -[2618757.002] {Default Queue} wl_pointer#3273.motion(187310386, 29.39843750, 23.39843750) -[2618757.007] {Default Queue} wl_pointer#3305.motion(187310386, 29.39843750, 23.39843750) -[2618757.011] {Default Queue} wl_pointer#3337.motion(187310386, 29.39843750, 23.39843750) -[2618757.015] {Default Queue} wl_pointer#3369.motion(187310386, 29.39843750, 23.39843750) -[2618757.020] {Default Queue} wl_pointer#3401.motion(187310386, 29.39843750, 23.39843750) -[2618757.024] {Default Queue} wl_pointer#3433.motion(187310386, 29.39843750, 23.39843750) -[2618757.028] {Default Queue} wl_pointer#3465.motion(187310386, 29.39843750, 23.39843750) -[2618757.033] {Default Queue} wl_pointer#3497.motion(187310386, 29.39843750, 23.39843750) -[2618757.037] {Default Queue} wl_pointer#3529.motion(187310386, 29.39843750, 23.39843750) -[2618757.042] {Default Queue} wl_pointer#3561.motion(187310386, 29.39843750, 23.39843750) -[2618757.046] {Default Queue} wl_pointer#3593.motion(187310386, 29.39843750, 23.39843750) -[2618757.050] {Default Queue} wl_pointer#3625.motion(187310386, 29.39843750, 23.39843750) -[2618757.054] {Default Queue} wl_pointer#3657.motion(187310386, 29.39843750, 23.39843750) -[2618757.059] {Default Queue} wl_pointer#3695.motion(187310386, 29.39843750, 23.39843750) -[2618757.067] {Default Queue} -> wl_region#3391.subtract(0, 0, 19, 48) -[2618757.073] {Default Queue} -> wl_region#3391.add(-20, -49, 19, 48) -[2618757.077] {Default Queue} -> wl_surface#3367.set_opaque_region(wl_region#3392) -[2618757.081] {Default Queue} -> wl_surface#3367.set_input_region(wl_region#3391) -[2618757.087] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) -[2618757.091] {Default Queue} -> wl_surface#3367.commit() -[2618757.095] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) -[2618757.099] {Default Queue} -> wl_surface#3367.commit() -[2618757.124] {Default Queue} wl_pointer#24.motion(187310391, 29.00000000, 23.39843750) -[2618757.129] {Default Queue} wl_pointer#81.motion(187310391, 29.00000000, 23.39843750) -[2618757.134] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618757.139] {Default Queue} wl_pointer#105.motion(187310391, 29.00000000, 23.39843750) -[2618757.143] {Default Queue} wl_pointer#137.motion(187310391, 29.00000000, 23.39843750) -[2618757.148] {Default Queue} wl_pointer#169.motion(187310391, 29.00000000, 23.39843750) -[2618757.152] {Default Queue} wl_pointer#201.motion(187310391, 29.00000000, 23.39843750) -[2618757.156] {Default Queue} wl_pointer#233.motion(187310391, 29.00000000, 23.39843750) -[2618757.160] {Default Queue} wl_pointer#265.motion(187310391, 29.00000000, 23.39843750) -[2618757.165] {Default Queue} wl_pointer#297.motion(187310391, 29.00000000, 23.39843750) -[2618757.169] {Default Queue} wl_pointer#329.motion(187310391, 29.00000000, 23.39843750) -[2618757.173] {Default Queue} wl_pointer#361.motion(187310391, 29.00000000, 23.39843750) -[2618757.177] {Default Queue} wl_pointer#393.motion(187310391, 29.00000000, 23.39843750) -[2618757.184] {Default Queue} wl_pointer#425.motion(187310391, 29.00000000, 23.39843750) -[2618757.190] {Default Queue} wl_pointer#457.motion(187310391, 29.00000000, 23.39843750) -[2618757.194] {Default Queue} wl_pointer#489.motion(187310391, 29.00000000, 23.39843750) -[2618757.199] {Default Queue} wl_pointer#521.motion(187310391, 29.00000000, 23.39843750) -[2618757.203] {Default Queue} wl_pointer#553.motion(187310391, 29.00000000, 23.39843750) -[2618757.207] {Default Queue} wl_pointer#585.motion(187310391, 29.00000000, 23.39843750) -[2618757.211] {Default Queue} wl_pointer#617.motion(187310391, 29.00000000, 23.39843750) -[2618757.216] {Default Queue} wl_pointer#649.motion(187310391, 29.00000000, 23.39843750) -[2618757.220] {Default Queue} wl_pointer#681.motion(187310391, 29.00000000, 23.39843750) -[2618757.224] {Default Queue} wl_pointer#713.motion(187310391, 29.00000000, 23.39843750) -[2618757.228] {Default Queue} wl_pointer#745.motion(187310391, 29.00000000, 23.39843750) -[2618757.233] {Default Queue} wl_pointer#777.motion(187310391, 29.00000000, 23.39843750) -[2618757.237] {Default Queue} wl_pointer#809.motion(187310391, 29.00000000, 23.39843750) -[2618757.241] {Default Queue} wl_pointer#841.motion(187310391, 29.00000000, 23.39843750) -[2618757.245] {Default Queue} wl_pointer#873.motion(187310391, 29.00000000, 23.39843750) -[2618757.250] {Default Queue} wl_pointer#905.motion(187310391, 29.00000000, 23.39843750) -[2618757.254] {Default Queue} wl_pointer#937.motion(187310391, 29.00000000, 23.39843750) -[2618757.258] {Default Queue} wl_pointer#969.motion(187310391, 29.00000000, 23.39843750) -[2618757.262] {Default Queue} wl_pointer#1001.motion(187310391, 29.00000000, 23.39843750) -[2618757.267] {Default Queue} wl_pointer#1033.motion(187310391, 29.00000000, 23.39843750) -[2618757.271] {Default Queue} wl_pointer#1065.motion(187310391, 29.00000000, 23.39843750) -[2618757.275] {Default Queue} wl_pointer#1097.motion(187310391, 29.00000000, 23.39843750) -[2618757.280] {Default Queue} wl_pointer#1129.motion(187310391, 29.00000000, 23.39843750) -[2618757.284] {Default Queue} wl_pointer#1161.motion(187310391, 29.00000000, 23.39843750) -[2618757.288] {Default Queue} wl_pointer#1193.motion(187310391, 29.00000000, 23.39843750) -[2618757.292] {Default Queue} wl_pointer#1225.motion(187310391, 29.00000000, 23.39843750) -[2618757.297] {Default Queue} wl_pointer#1257.motion(187310391, 29.00000000, 23.39843750) -[2618757.301] {Default Queue} wl_pointer#1289.motion(187310391, 29.00000000, 23.39843750) -[2618757.305] {Default Queue} wl_pointer#1321.motion(187310391, 29.00000000, 23.39843750) -[2618757.310] {Default Queue} wl_pointer#1353.motion(187310391, 29.00000000, 23.39843750) -[2618757.314] {Default Queue} wl_pointer#1385.motion(187310391, 29.00000000, 23.39843750) -[2618757.318] {Default Queue} wl_pointer#1417.motion(187310391, 29.00000000, 23.39843750) -[2618757.323] {Default Queue} wl_pointer#1449.motion(187310391, 29.00000000, 23.39843750) -[2618757.327] {Default Queue} wl_pointer#1481.motion(187310391, 29.00000000, 23.39843750) -[2618757.331] {Default Queue} wl_pointer#1513.motion(187310391, 29.00000000, 23.39843750) -[2618757.335] {Default Queue} wl_pointer#1545.motion(187310391, 29.00000000, 23.39843750) -[2618757.340] {Default Queue} wl_pointer#1577.motion(187310391, 29.00000000, 23.39843750) -[2618757.344] {Default Queue} wl_pointer#1609.motion(187310391, 29.00000000, 23.39843750) -[2618757.348] {Default Queue} wl_pointer#1641.motion(187310391, 29.00000000, 23.39843750) -[2618757.352] {Default Queue} wl_pointer#1673.motion(187310391, 29.00000000, 23.39843750) -[2618757.357] {Default Queue} wl_pointer#1705.motion(187310391, 29.00000000, 23.39843750) -[2618757.361] {Default Queue} wl_pointer#1737.motion(187310391, 29.00000000, 23.39843750) -[2618757.365] {Default Queue} wl_pointer#1762.motion(187310391, 29.00000000, 23.39843750) -[2618757.369] {Default Queue} wl_pointer#1801.motion(187310391, 29.00000000, 23.39843750) -[2618757.374] {Default Queue} wl_pointer#1833.motion(187310391, 29.00000000, 23.39843750) -[2618757.381] {Default Queue} wl_pointer#1865.motion(187310391, 29.00000000, 23.39843750) -[2618757.386] {Default Queue} wl_pointer#1897.motion(187310391, 29.00000000, 23.39843750) -[2618757.391] {Default Queue} wl_pointer#1929.motion(187310391, 29.00000000, 23.39843750) -[2618757.395] {Default Queue} wl_pointer#1961.motion(187310391, 29.00000000, 23.39843750) -[2618757.399] {Default Queue} wl_pointer#1993.motion(187310391, 29.00000000, 23.39843750) -[2618757.404] {Default Queue} wl_pointer#2025.motion(187310391, 29.00000000, 23.39843750) -[2618757.408] {Default Queue} wl_pointer#2057.motion(187310391, 29.00000000, 23.39843750) -[2618757.412] {Default Queue} wl_pointer#2089.motion(187310391, 29.00000000, 23.39843750) -[2618757.416] {Default Queue} wl_pointer#2121.motion(187310391, 29.00000000, 23.39843750) -[2618757.421] {Default Queue} wl_pointer#2153.motion(187310391, 29.00000000, 23.39843750) -[2618757.425] {Default Queue} wl_pointer#2185.motion(187310391, 29.00000000, 23.39843750) -[2618757.429] {Default Queue} wl_pointer#2217.motion(187310391, 29.00000000, 23.39843750) -[2618757.433] {Default Queue} wl_pointer#2249.motion(187310391, 29.00000000, 23.39843750) -[2618757.438] {Default Queue} wl_pointer#2281.motion(187310391, 29.00000000, 23.39843750) -[2618757.442] {Default Queue} wl_pointer#2313.motion(187310391, 29.00000000, 23.39843750) -[2618757.446] {Default Queue} wl_pointer#2345.motion(187310391, 29.00000000, 23.39843750) -[2618757.455] {Default Queue} wl_pointer#2377.motion(187310391, 29.00000000, 23.39843750) -[2618757.459] {Default Queue} wl_pointer#2409.motion(187310391, 29.00000000, 23.39843750) -[2618757.464] {Default Queue} wl_pointer#2441.motion(187310391, 29.00000000, 23.39843750) -[2618757.468] {Default Queue} wl_pointer#2473.motion(187310391, 29.00000000, 23.39843750) -[2618757.472] {Default Queue} wl_pointer#2498.motion(187310391, 29.00000000, 23.39843750) -[2618757.483] {Default Queue} -> wl_buffer#3671.destroy() -[2618757.487] {Default Queue} -> wl_buffer#3681.destroy() -[2618757.491] {Default Queue} -> wl_shm_pool#3684.destroy() -[2618757.495] {Default Queue} -> wl_shm_pool#3679.destroy() -[2618757.500] {Default Queue} -> wl_surface#3682.destroy() -[2618757.535] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3292, fd 581, 640) -[2618757.541] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 582, 640) -[2618757.545] {Default Queue} -> wl_shm_pool#3292.create_buffer(new id wl_buffer#3294, 0, 10, 16, 40, 0) -[2618757.550] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) -[2618757.557] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3484) -[2618757.561] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) -[2618757.566] {Default Queue} -> wl_surface#3484.commit() -[2618757.571] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) -[2618757.575] {Default Queue} -> wl_surface#3484.commit() -[2618757.579] {Default Queue} wl_pointer#2537.motion(187310391, 29.00000000, 23.39843750) -[2618757.584] {Default Queue} wl_pointer#2569.motion(187310391, 29.00000000, 23.39843750) -[2618757.588] {Default Queue} wl_pointer#2601.motion(187310391, 29.00000000, 23.39843750) -[2618757.593] {Default Queue} wl_pointer#2633.motion(187310391, 29.00000000, 23.39843750) -[2618757.597] {Default Queue} wl_pointer#2665.motion(187310391, 29.00000000, 23.39843750) -[2618757.601] {Default Queue} wl_pointer#2697.motion(187310391, 29.00000000, 23.39843750) -[2618757.605] {Default Queue} wl_pointer#2729.motion(187310391, 29.00000000, 23.39843750) -[2618757.610] {Default Queue} wl_pointer#2761.motion(187310391, 29.00000000, 23.39843750) -[2618757.614] {Default Queue} wl_pointer#2793.motion(187310391, 29.00000000, 23.39843750) -[2618757.618] {Default Queue} wl_pointer#2825.motion(187310391, 29.00000000, 23.39843750) -[2618757.623] {Default Queue} wl_pointer#2857.motion(187310391, 29.00000000, 23.39843750) -[2618757.627] {Default Queue} wl_pointer#2889.motion(187310391, 29.00000000, 23.39843750) -[2618757.631] {Default Queue} wl_pointer#2921.motion(187310391, 29.00000000, 23.39843750) -[2618757.639] {Default Queue} wl_pointer#2953.motion(187310391, 29.00000000, 23.39843750) -[2618757.645] {Default Queue} wl_pointer#2985.motion(187310391, 29.00000000, 23.39843750) -[2618757.649] {Default Queue} wl_pointer#3017.motion(187310391, 29.00000000, 23.39843750) -[2618757.654] {Default Queue} wl_pointer#3049.motion(187310391, 29.00000000, 23.39843750) -[2618757.658] {Default Queue} wl_pointer#3081.motion(187310391, 29.00000000, 23.39843750) -[2618757.662] {Default Queue} wl_pointer#3113.motion(187310391, 29.00000000, 23.39843750) -[2618757.666] {Default Queue} wl_pointer#3145.motion(187310391, 29.00000000, 23.39843750) -[2618757.671] {Default Queue} wl_pointer#3177.motion(187310391, 29.00000000, 23.39843750) -[2618757.675] {Default Queue} wl_pointer#3209.motion(187310391, 29.00000000, 23.39843750) -[2618757.679] {Default Queue} wl_pointer#3241.motion(187310391, 29.00000000, 23.39843750) -[2618757.684] {Default Queue} wl_pointer#3273.motion(187310391, 29.00000000, 23.39843750) -[2618757.688] {Default Queue} wl_pointer#3305.motion(187310391, 29.00000000, 23.39843750) -[2618757.692] {Default Queue} wl_pointer#3337.motion(187310391, 29.00000000, 23.39843750) -[2618757.697] {Default Queue} wl_pointer#3369.motion(187310391, 29.00000000, 23.39843750) -[2618757.701] {Default Queue} wl_pointer#3401.motion(187310391, 29.00000000, 23.39843750) -[2618757.705] {Default Queue} wl_pointer#3433.motion(187310391, 29.00000000, 23.39843750) -[2618757.710] {Default Queue} wl_pointer#3465.motion(187310391, 29.00000000, 23.39843750) -[2618757.714] {Default Queue} wl_pointer#3497.motion(187310391, 29.00000000, 23.39843750) -[2618757.718] {Default Queue} wl_pointer#3529.motion(187310391, 29.00000000, 23.39843750) -[2618757.723] {Default Queue} wl_pointer#3561.motion(187310391, 29.00000000, 23.39843750) -[2618757.727] {Default Queue} wl_pointer#3593.motion(187310391, 29.00000000, 23.39843750) -[2618757.731] {Default Queue} wl_pointer#3625.motion(187310391, 29.00000000, 23.39843750) -[2618757.735] {Default Queue} wl_pointer#3657.motion(187310391, 29.00000000, 23.39843750) -[2618757.740] {Default Queue} wl_pointer#3695.motion(187310391, 29.00000000, 23.39843750) -[2618757.744] {Default Queue} wl_pointer#24.motion(187310391, 29.00000000, 23.00000000) -[2618757.748] {Default Queue} wl_pointer#81.motion(187310391, 29.00000000, 23.00000000) -[2618757.753] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618757.758] {Default Queue} wl_pointer#105.motion(187310391, 29.00000000, 23.00000000) -[2618757.762] {Default Queue} wl_pointer#137.motion(187310391, 29.00000000, 23.00000000) -[2618757.766] {Default Queue} wl_pointer#169.motion(187310391, 29.00000000, 23.00000000) -[2618757.770] {Default Queue} wl_pointer#201.motion(187310391, 29.00000000, 23.00000000) -[2618757.775] {Default Queue} wl_pointer#233.motion(187310391, 29.00000000, 23.00000000) -[2618757.779] {Default Queue} wl_pointer#265.motion(187310391, 29.00000000, 23.00000000) -[2618757.783] {Default Queue} wl_pointer#297.motion(187310391, 29.00000000, 23.00000000) -[2618757.787] {Default Queue} wl_pointer#329.motion(187310391, 29.00000000, 23.00000000) -[2618757.795] {Default Queue} wl_pointer#361.motion(187310391, 29.00000000, 23.00000000) -[2618757.799] {Default Queue} wl_pointer#393.motion(187310391, 29.00000000, 23.00000000) -[2618757.804] {Default Queue} wl_pointer#425.motion(187310391, 29.00000000, 23.00000000) -[2618757.808] {Default Queue} wl_pointer#457.motion(187310391, 29.00000000, 23.00000000) -[2618757.812] {Default Queue} wl_pointer#489.motion(187310391, 29.00000000, 23.00000000) -[2618757.819] {Default Queue} wl_pointer#521.motion(187310391, 29.00000000, 23.00000000) -[2618757.824] {Default Queue} wl_pointer#553.motion(187310391, 29.00000000, 23.00000000) -[2618757.828] {Default Queue} wl_pointer#585.motion(187310391, 29.00000000, 23.00000000) -[2618757.832] {Default Queue} wl_pointer#617.motion(187310391, 29.00000000, 23.00000000) -[2618757.836] {Default Queue} wl_pointer#649.motion(187310391, 29.00000000, 23.00000000) -[2618757.841] {Default Queue} wl_pointer#681.motion(187310391, 29.00000000, 23.00000000) -[2618757.848] {Default Queue} wl_pointer#713.motion(187310391, 29.00000000, 23.00000000) -[2618757.854] {Default Queue} wl_pointer#745.motion(187310391, 29.00000000, 23.00000000) -[2618757.858] {Default Queue} wl_pointer#777.motion(187310391, 29.00000000, 23.00000000) -[2618757.870] {Default Queue} wl_pointer#809.motion(187310391, 29.00000000, 23.00000000) -[2618757.875] {Default Queue} wl_pointer#841.motion(187310391, 29.00000000, 23.00000000) -[2618757.879] {Default Queue} wl_pointer#873.motion(187310391, 29.00000000, 23.00000000) -[2618757.883] {Default Queue} wl_pointer#905.motion(187310391, 29.00000000, 23.00000000) -[2618757.888] {Default Queue} wl_pointer#937.motion(187310391, 29.00000000, 23.00000000) -[2618757.892] {Default Queue} wl_pointer#969.motion(187310391, 29.00000000, 23.00000000) -[2618757.896] {Default Queue} wl_pointer#1001.motion(187310391, 29.00000000, 23.00000000) -[2618757.900] {Default Queue} wl_pointer#1033.motion(187310391, 29.00000000, 23.00000000) -[2618757.905] {Default Queue} wl_pointer#1065.motion(187310391, 29.00000000, 23.00000000) -[2618757.909] {Default Queue} wl_pointer#1097.motion(187310391, 29.00000000, 23.00000000) -[2618757.913] {Default Queue} wl_pointer#1129.motion(187310391, 29.00000000, 23.00000000) -[2618757.918] {Default Queue} wl_pointer#1161.motion(187310391, 29.00000000, 23.00000000) -[2618757.922] {Default Queue} wl_pointer#1193.motion(187310391, 29.00000000, 23.00000000) -[2618757.926] {Default Queue} wl_pointer#1225.motion(187310391, 29.00000000, 23.00000000) -[2618757.930] {Default Queue} wl_pointer#1257.motion(187310391, 29.00000000, 23.00000000) -[2618757.935] {Default Queue} wl_pointer#1289.motion(187310391, 29.00000000, 23.00000000) -[2618757.939] {Default Queue} wl_pointer#1321.motion(187310391, 29.00000000, 23.00000000) -[2618757.943] {Default Queue} wl_pointer#1353.motion(187310391, 29.00000000, 23.00000000) -[2618757.948] {Default Queue} wl_pointer#1385.motion(187310391, 29.00000000, 23.00000000) -[2618757.952] {Default Queue} wl_pointer#1417.motion(187310391, 29.00000000, 23.00000000) -[2618757.956] {Default Queue} wl_pointer#1449.motion(187310391, 29.00000000, 23.00000000) -[2618757.960] {Default Queue} wl_pointer#1481.motion(187310391, 29.00000000, 23.00000000) -[2618757.965] {Default Queue} wl_pointer#1513.motion(187310391, 29.00000000, 23.00000000) -[2618757.969] {Default Queue} wl_pointer#1545.motion(187310391, 29.00000000, 23.00000000) -[2618757.973] {Default Queue} wl_pointer#1577.motion(187310391, 29.00000000, 23.00000000) -[2618757.978] {Default Queue} wl_pointer#1609.motion(187310391, 29.00000000, 23.00000000) -[2618757.982] {Default Queue} wl_pointer#1641.motion(187310391, 29.00000000, 23.00000000) -[2618757.986] {Default Queue} wl_pointer#1673.motion(187310391, 29.00000000, 23.00000000) -[2618757.990] {Default Queue} wl_pointer#1705.motion(187310391, 29.00000000, 23.00000000) -[2618757.995] {Default Queue} wl_pointer#1737.motion(187310391, 29.00000000, 23.00000000) -[2618757.999] {Default Queue} wl_pointer#1762.motion(187310391, 29.00000000, 23.00000000) -[2618758.003] {Default Queue} wl_pointer#1801.motion(187310391, 29.00000000, 23.00000000) -[2618758.007] {Default Queue} wl_pointer#1833.motion(187310391, 29.00000000, 23.00000000) -[2618758.012] {Default Queue} wl_pointer#1865.motion(187310391, 29.00000000, 23.00000000) -[2618758.016] {Default Queue} wl_pointer#1897.motion(187310391, 29.00000000, 23.00000000) -[2618758.020] {Default Queue} wl_pointer#1929.motion(187310391, 29.00000000, 23.00000000) -[2618758.024] {Default Queue} wl_pointer#1961.motion(187310391, 29.00000000, 23.00000000) -[2618758.029] {Default Queue} wl_pointer#1993.motion(187310391, 29.00000000, 23.00000000) -[2618758.033] {Default Queue} wl_pointer#2025.motion(187310391, 29.00000000, 23.00000000) -[2618758.037] {Default Queue} wl_pointer#2057.motion(187310391, 29.00000000, 23.00000000) -[2618758.042] {Default Queue} wl_pointer#2089.motion(187310391, 29.00000000, 23.00000000) -[2618758.046] {Default Queue} wl_pointer#2121.motion(187310391, 29.00000000, 23.00000000) -[2618758.053] {Default Queue} wl_pointer#2153.motion(187310391, 29.00000000, 23.00000000) -[2618758.059] {Default Queue} wl_pointer#2185.motion(187310391, 29.00000000, 23.00000000) -[2618758.063] {Default Queue} wl_pointer#2217.motion(187310391, 29.00000000, 23.00000000) -[2618758.067] {Default Queue} wl_pointer#2249.motion(187310391, 29.00000000, 23.00000000) -[2618758.071] {Default Queue} wl_pointer#2281.motion(187310391, 29.00000000, 23.00000000) -[2618758.076] {Default Queue} wl_pointer#2313.motion(187310391, 29.00000000, 23.00000000) -[2618758.080] {Default Queue} wl_pointer#2345.motion(187310391, 29.00000000, 23.00000000) -[2618758.085] {Default Queue} wl_pointer#2377.motion(187310391, 29.00000000, 23.00000000) -[2618758.089] {Default Queue} wl_pointer#2409.motion(187310391, 29.00000000, 23.00000000) -[2618758.093] {Default Queue} wl_pointer#2441.motion(187310391, 29.00000000, 23.00000000) -[2618758.097] {Default Queue} wl_pointer#2473.motion(187310391, 29.00000000, 23.00000000) -[2618758.102] {Default Queue} wl_pointer#2498.motion(187310391, 29.00000000, 23.00000000) -[2618758.112] {Default Queue} -> wl_buffer#3294.destroy() -[2618758.116] {Default Queue} -> wl_buffer#3293.destroy() -[2618758.120] {Default Queue} -> wl_shm_pool#3292.destroy() -[2618758.124] {Default Queue} -> wl_shm_pool#3291.destroy() -[2618758.129] {Default Queue} -> wl_surface#3484.destroy() -[2618758.161] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3518, fd 583, 640) -[2618758.169] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3517, fd 584, 640) -[2618758.174] {Default Queue} -> wl_shm_pool#3518.create_buffer(new id wl_buffer#3452, 0, 10, 16, 40, 0) -[2618758.178] {Default Queue} -> wl_shm_pool#3517.create_buffer(new id wl_buffer#3451, 0, 10, 16, 40, 0) -[2618758.185] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3454) -[2618758.189] {Default Queue} -> wl_surface#3454.attach(wl_buffer#3452, 0, 0) -[2618758.193] {Default Queue} -> wl_surface#3454.commit() -[2618758.199] {Default Queue} -> wl_surface#3454.attach(wl_buffer#3452, 0, 0) -[2618758.203] {Default Queue} -> wl_surface#3454.commit() -[2618758.207] {Default Queue} wl_pointer#2537.motion(187310391, 29.00000000, 23.00000000) -[2618758.211] {Default Queue} wl_pointer#2569.motion(187310391, 29.00000000, 23.00000000) -[2618758.216] {Default Queue} wl_pointer#2601.motion(187310391, 29.00000000, 23.00000000) -[2618758.220] {Default Queue} wl_pointer#2633.motion(187310391, 29.00000000, 23.00000000) -[2618758.224] {Default Queue} wl_pointer#2665.motion(187310391, 29.00000000, 23.00000000) -[2618758.229] {Default Queue} wl_pointer#2697.motion(187310391, 29.00000000, 23.00000000) -[2618758.233] {Default Queue} wl_pointer#2729.motion(187310391, 29.00000000, 23.00000000) -[2618758.237] {Default Queue} wl_pointer#2761.motion(187310391, 29.00000000, 23.00000000) -[2618758.241] {Default Queue} wl_pointer#2793.motion(187310391, 29.00000000, 23.00000000) -[2618758.246] {Default Queue} wl_pointer#2825.motion(187310391, 29.00000000, 23.00000000) -[2618758.250] {Default Queue} wl_pointer#2857.motion(187310391, 29.00000000, 23.00000000) -[2618758.255] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) -[2618758.259] {Default Queue} -> wl_surface#3367.commit() -[2618759.328] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) -[2618759.341] {Default Queue} -> wl_surface#3367.commit() -[2618759.350] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) -[2618759.355] {Default Queue} -> wl_surface#3367.commit() -[2618759.362] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) -[2618759.366] {Default Queue} -> wl_surface#3335.commit() -[2618760.431] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) -[2618760.444] {Default Queue} -> wl_surface#3335.commit() -[2618760.455] {Default Queue} -> wl_region#3359.subtract(0, 0, 19, 48) -[2618760.460] {Default Queue} -> wl_region#3359.add(-20, -49, 19, 48) -[2618760.465] {Default Queue} -> wl_surface#3335.set_opaque_region(wl_region#3360) -[2618760.469] {Default Queue} -> wl_surface#3335.set_input_region(wl_region#3359) -[2618760.480] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) -[2618760.487] {Default Queue} -> wl_surface#3335.commit() -[2618760.492] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) -[2618760.496] {Default Queue} -> wl_surface#3335.commit() -[2618760.503] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) -[2618760.507] {Default Queue} -> wl_surface#3335.commit() -[2618760.513] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) -[2618760.517] {Default Queue} -> wl_surface#3271.commit() -[2618761.289] {Default Queue} wl_pointer#2889.motion(187310391, 29.00000000, 23.00000000) -[2618761.306] {Default Queue} wl_pointer#2921.motion(187310391, 29.00000000, 23.00000000) -[2618761.312] {Default Queue} wl_pointer#2953.motion(187310391, 29.00000000, 23.00000000) -[2618761.317] {Default Queue} wl_pointer#2985.motion(187310391, 29.00000000, 23.00000000) -[2618761.321] {Default Queue} wl_pointer#3017.motion(187310391, 29.00000000, 23.00000000) -[2618761.326] {Default Queue} wl_pointer#3049.motion(187310391, 29.00000000, 23.00000000) -[2618761.330] {Default Queue} wl_pointer#3081.motion(187310391, 29.00000000, 23.00000000) -[2618761.334] {Default Queue} wl_pointer#3113.motion(187310391, 29.00000000, 23.00000000) -[2618761.339] {Default Queue} wl_pointer#3145.motion(187310391, 29.00000000, 23.00000000) -[2618761.343] {Default Queue} wl_pointer#3177.motion(187310391, 29.00000000, 23.00000000) -[2618761.347] {Default Queue} wl_pointer#3209.motion(187310391, 29.00000000, 23.00000000) -[2618761.352] {Default Queue} wl_pointer#3241.motion(187310391, 29.00000000, 23.00000000) -[2618761.356] {Default Queue} wl_pointer#3273.motion(187310391, 29.00000000, 23.00000000) -[2618761.360] {Default Queue} wl_pointer#3305.motion(187310391, 29.00000000, 23.00000000) -[2618761.365] {Default Queue} wl_pointer#3337.motion(187310391, 29.00000000, 23.00000000) -[2618761.369] {Default Queue} wl_pointer#3369.motion(187310391, 29.00000000, 23.00000000) -[2618761.373] {Default Queue} wl_pointer#3401.motion(187310391, 29.00000000, 23.00000000) -[2618761.378] {Default Queue} wl_pointer#3433.motion(187310391, 29.00000000, 23.00000000) -[2618761.382] {Default Queue} wl_pointer#3465.motion(187310391, 29.00000000, 23.00000000) -[2618761.386] {Default Queue} wl_pointer#3497.motion(187310391, 29.00000000, 23.00000000) -[2618761.391] {Default Queue} wl_pointer#3529.motion(187310391, 29.00000000, 23.00000000) -[2618761.395] {Default Queue} wl_pointer#3561.motion(187310391, 29.00000000, 23.00000000) -[2618761.399] {Default Queue} wl_pointer#3593.motion(187310391, 29.00000000, 23.00000000) -[2618761.403] {Default Queue} wl_pointer#3625.motion(187310391, 29.00000000, 23.00000000) -[2618761.408] {Default Queue} wl_pointer#3657.motion(187310391, 29.00000000, 23.00000000) -[2618761.412] {Default Queue} wl_pointer#3695.motion(187310391, 29.00000000, 23.00000000) -[2618761.421] {Default Queue} -> wl_region#3295.subtract(0, 0, 22, 51) -[2618761.428] {Default Queue} -> wl_region#3295.add(-20, -49, 19, 48) -[2618761.432] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) -[2618761.437] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) -[2618761.443] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) -[2618761.447] {Default Queue} -> wl_surface#3271.commit() -[2618761.452] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) -[2618761.456] {Default Queue} -> wl_surface#3271.commit() -[2618761.462] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) -[2618761.467] {Default Queue} -> wl_surface#3271.commit() -[2618761.473] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) -[2618761.477] {Default Queue} -> wl_surface#3239.commit() -[2618762.539] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) -[2618762.545] {Default Queue} -> wl_surface#3239.commit() -[2618762.555] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) -[2618762.559] {Default Queue} -> wl_region#3263.add(0, 0, 2, 2) -[2618762.563] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618762.572] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618762.588] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) -[2618762.594] {Default Queue} -> wl_region#3263.add(0, 0, 2, 2) -[2618762.598] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618762.602] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618762.607] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) -[2618762.612] {Default Queue} -> wl_region#3263.add(0, 0, 2, 2) -[2618762.616] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618762.620] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618762.625] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) -[2618762.629] {Default Queue} -> wl_region#3263.add(0, 0, 2, 2) -[2618762.633] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618762.637] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618762.644] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) -[2618762.648] {Default Queue} -> wl_region#3263.add(0, 0, 2, 2) -[2618762.652] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618762.656] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618762.661] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) -[2618762.665] {Default Queue} -> wl_surface#3239.commit() -[2618762.669] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) -[2618762.673] {Default Queue} -> wl_surface#3239.commit() -[2618762.679] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) -[2618762.683] {Default Queue} -> wl_surface#3239.commit() -[2618762.689] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) -[2618762.693] {Default Queue} -> wl_surface#3559.commit() -[2618763.756] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) -[2618763.763] {Default Queue} -> wl_surface#3559.commit() -[2618763.771] {Default Queue} -> wl_region#3583.subtract(0, 0, 2, 2) -[2618763.775] {Default Queue} -> wl_region#3583.add(0, 0, 2, 2) -[2618763.780] {Default Queue} -> wl_surface#3559.set_opaque_region(wl_region#3584) -[2618763.784] {Default Queue} -> wl_surface#3559.set_input_region(wl_region#3583) -[2618763.789] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) -[2618763.793] {Default Queue} -> wl_surface#3559.commit() -[2618763.797] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) -[2618763.801] {Default Queue} -> wl_surface#3559.commit() -[2618763.807] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) -[2618763.811] {Default Queue} -> wl_surface#3559.commit() -[2618763.817] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) -[2618763.821] {Default Queue} -> wl_surface#3591.commit() -[2618764.867] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) -[2618764.873] {Default Queue} -> wl_surface#3591.commit() -[2618764.879] {Default Queue} -> wl_region#3615.subtract(0, 0, 2, 2) -[2618764.884] {Default Queue} -> wl_region#3615.add(0, 0, 2, 2) -[2618764.888] {Default Queue} -> wl_surface#3591.set_opaque_region(wl_region#3616) -[2618764.892] {Default Queue} -> wl_surface#3591.set_input_region(wl_region#3615) -[2618764.897] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) -[2618764.901] {Default Queue} -> wl_surface#3591.commit() -[2618764.905] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) -[2618764.909] {Default Queue} -> wl_surface#3591.commit() -[2618764.915] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) -[2618764.919] {Default Queue} -> wl_surface#3591.commit() -[2618764.925] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) -[2618764.929] {Default Queue} -> wl_surface#3623.commit() -[2618765.992] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) -[2618765.997] {Default Queue} -> wl_surface#3623.commit() -[2618766.004] {Default Queue} -> wl_region#3647.subtract(0, 0, 2, 2) -[2618766.013] {Default Queue} -> wl_region#3647.add(0, 0, 2, 2) -[2618766.020] {Default Queue} -> wl_surface#3623.set_opaque_region(wl_region#3648) -[2618766.024] {Default Queue} -> wl_surface#3623.set_input_region(wl_region#3647) -[2618766.029] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) -[2618766.033] {Default Queue} -> wl_surface#3623.commit() -[2618766.037] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) -[2618766.041] {Default Queue} -> wl_surface#3623.commit() -[2618766.047] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) -[2618766.051] {Default Queue} -> wl_surface#3623.commit() -[2618766.057] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) -[2618766.062] {Default Queue} -> wl_surface#2983.commit() -[2618766.595] {Display Queue} wl_display#1.delete_id(91) -[2618766.603] {Display Queue} wl_display#1.delete_id(94) -[2618766.608] {Display Queue} wl_display#1.delete_id(3683) -[2618766.612] {Display Queue} wl_display#1.delete_id(92) -[2618766.616] {Display Queue} wl_display#1.delete_id(93) -[2618766.620] {Display Queue} wl_display#1.delete_id(3671) -[2618766.624] {Display Queue} wl_display#1.delete_id(3681) -[2618766.627] {Display Queue} wl_display#1.delete_id(3684) -[2618766.631] {Display Queue} wl_display#1.delete_id(3679) -[2618766.635] {Display Queue} wl_display#1.delete_id(3682) -[2618766.639] {Display Queue} wl_display#1.delete_id(3294) -[2618766.643] {Display Queue} wl_display#1.delete_id(3293) -[2618766.647] {Display Queue} wl_display#1.delete_id(3292) -[2618766.651] {Display Queue} wl_display#1.delete_id(3291) -[2618766.655] {Display Queue} wl_display#1.delete_id(3484) -[2618766.659] {Default Queue} wl_pointer#24.motion(187310396, 29.00000000, 22.60156250) -[2618766.664] {Default Queue} wl_pointer#81.motion(187310396, 29.00000000, 22.60156250) -[2618766.670] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618766.675] {Default Queue} wl_pointer#105.motion(187310396, 29.00000000, 22.60156250) -[2618766.679] {Default Queue} wl_pointer#137.motion(187310396, 29.00000000, 22.60156250) -[2618766.684] {Default Queue} wl_pointer#169.motion(187310396, 29.00000000, 22.60156250) -[2618766.688] {Default Queue} wl_pointer#201.motion(187310396, 29.00000000, 22.60156250) -[2618766.692] {Default Queue} wl_pointer#233.motion(187310396, 29.00000000, 22.60156250) -[2618766.697] {Default Queue} wl_pointer#265.motion(187310396, 29.00000000, 22.60156250) -[2618766.701] {Default Queue} wl_pointer#297.motion(187310396, 29.00000000, 22.60156250) -[2618766.705] {Default Queue} wl_pointer#329.motion(187310396, 29.00000000, 22.60156250) -[2618766.710] {Default Queue} wl_pointer#361.motion(187310396, 29.00000000, 22.60156250) -[2618766.714] {Default Queue} wl_pointer#393.motion(187310396, 29.00000000, 22.60156250) -[2618766.718] {Default Queue} wl_pointer#425.motion(187310396, 29.00000000, 22.60156250) -[2618766.723] {Default Queue} wl_pointer#457.motion(187310396, 29.00000000, 22.60156250) -[2618766.727] {Default Queue} wl_pointer#489.motion(187310396, 29.00000000, 22.60156250) -[2618766.731] {Default Queue} wl_pointer#521.motion(187310396, 29.00000000, 22.60156250) -[2618766.736] {Default Queue} wl_pointer#553.motion(187310396, 29.00000000, 22.60156250) -[2618766.740] {Default Queue} wl_pointer#585.motion(187310396, 29.00000000, 22.60156250) -[2618766.745] {Default Queue} wl_pointer#617.motion(187310396, 29.00000000, 22.60156250) -[2618766.749] {Default Queue} wl_pointer#649.motion(187310396, 29.00000000, 22.60156250) -[2618766.753] {Default Queue} wl_pointer#681.motion(187310396, 29.00000000, 22.60156250) -[2618766.757] {Default Queue} wl_pointer#713.motion(187310396, 29.00000000, 22.60156250) -[2618766.762] {Default Queue} wl_pointer#745.motion(187310396, 29.00000000, 22.60156250) -[2618766.766] {Default Queue} wl_pointer#777.motion(187310396, 29.00000000, 22.60156250) -[2618766.770] {Default Queue} wl_pointer#809.motion(187310396, 29.00000000, 22.60156250) -[2618766.774] {Default Queue} wl_pointer#841.motion(187310396, 29.00000000, 22.60156250) -[2618766.779] {Default Queue} wl_pointer#873.motion(187310396, 29.00000000, 22.60156250) -[2618766.787] {Default Queue} wl_pointer#905.motion(187310396, 29.00000000, 22.60156250) -[2618766.793] {Default Queue} wl_pointer#937.motion(187310396, 29.00000000, 22.60156250) -[2618766.797] {Default Queue} wl_pointer#969.motion(187310396, 29.00000000, 22.60156250) -[2618766.801] {Default Queue} wl_pointer#1001.motion(187310396, 29.00000000, 22.60156250) -[2618766.806] {Default Queue} wl_pointer#1033.motion(187310396, 29.00000000, 22.60156250) -[2618766.810] {Default Queue} wl_pointer#1065.motion(187310396, 29.00000000, 22.60156250) -[2618766.814] {Default Queue} wl_pointer#1097.motion(187310396, 29.00000000, 22.60156250) -[2618766.819] {Default Queue} wl_pointer#1129.motion(187310396, 29.00000000, 22.60156250) -[2618766.823] {Default Queue} wl_pointer#1161.motion(187310396, 29.00000000, 22.60156250) -[2618766.827] {Default Queue} wl_pointer#1193.motion(187310396, 29.00000000, 22.60156250) -[2618766.832] {Default Queue} wl_pointer#1225.motion(187310396, 29.00000000, 22.60156250) -[2618766.836] {Default Queue} wl_pointer#1257.motion(187310396, 29.00000000, 22.60156250) -[2618766.840] {Default Queue} wl_pointer#1289.motion(187310396, 29.00000000, 22.60156250) -[2618766.844] {Default Queue} wl_pointer#1321.motion(187310396, 29.00000000, 22.60156250) -[2618766.849] {Default Queue} wl_pointer#1353.motion(187310396, 29.00000000, 22.60156250) -[2618766.854] {Default Queue} wl_pointer#1385.motion(187310396, 29.00000000, 22.60156250) -[2618766.858] {Default Queue} wl_pointer#1417.motion(187310396, 29.00000000, 22.60156250) -[2618766.866] {Default Queue} wl_pointer#1449.motion(187310396, 29.00000000, 22.60156250) -[2618766.871] {Default Queue} wl_pointer#1481.motion(187310396, 29.00000000, 22.60156250) -[2618766.875] {Default Queue} wl_pointer#1513.motion(187310396, 29.00000000, 22.60156250) -[2618766.879] {Default Queue} wl_pointer#1545.motion(187310396, 29.00000000, 22.60156250) -[2618766.883] {Default Queue} wl_pointer#1577.motion(187310396, 29.00000000, 22.60156250) -[2618766.888] {Default Queue} wl_pointer#1609.motion(187310396, 29.00000000, 22.60156250) -[2618766.892] {Default Queue} wl_pointer#1641.motion(187310396, 29.00000000, 22.60156250) -[2618766.896] {Default Queue} wl_pointer#1673.motion(187310396, 29.00000000, 22.60156250) -[2618766.901] {Default Queue} wl_pointer#1705.motion(187310396, 29.00000000, 22.60156250) -[2618766.905] {Default Queue} wl_pointer#1737.motion(187310396, 29.00000000, 22.60156250) -[2618766.909] {Default Queue} wl_pointer#1762.motion(187310396, 29.00000000, 22.60156250) -[2618766.914] {Default Queue} wl_pointer#1801.motion(187310396, 29.00000000, 22.60156250) -[2618766.918] {Default Queue} wl_pointer#1833.motion(187310396, 29.00000000, 22.60156250) -[2618766.922] {Default Queue} wl_pointer#1865.motion(187310396, 29.00000000, 22.60156250) -[2618766.926] {Default Queue} wl_pointer#1897.motion(187310396, 29.00000000, 22.60156250) -[2618766.931] {Default Queue} wl_pointer#1929.motion(187310396, 29.00000000, 22.60156250) -[2618766.935] {Default Queue} wl_pointer#1961.motion(187310396, 29.00000000, 22.60156250) -[2618766.940] {Default Queue} wl_pointer#1993.motion(187310396, 29.00000000, 22.60156250) -[2618766.944] {Default Queue} wl_pointer#2025.motion(187310396, 29.00000000, 22.60156250) -[2618766.948] {Default Queue} wl_pointer#2057.motion(187310396, 29.00000000, 22.60156250) -[2618766.952] {Default Queue} wl_pointer#2089.motion(187310396, 29.00000000, 22.60156250) -[2618766.957] {Default Queue} wl_pointer#2121.motion(187310396, 29.00000000, 22.60156250) -[2618766.961] {Default Queue} wl_pointer#2153.motion(187310396, 29.00000000, 22.60156250) -[2618766.965] {Default Queue} wl_pointer#2185.motion(187310396, 29.00000000, 22.60156250) -[2618766.970] {Default Queue} wl_pointer#2217.motion(187310396, 29.00000000, 22.60156250) -[2618766.974] {Default Queue} wl_pointer#2249.motion(187310396, 29.00000000, 22.60156250) -[2618766.979] {Default Queue} wl_pointer#2281.motion(187310396, 29.00000000, 22.60156250) -[2618766.983] {Default Queue} wl_pointer#2313.motion(187310396, 29.00000000, 22.60156250) -[2618766.990] {Default Queue} wl_pointer#2345.motion(187310396, 29.00000000, 22.60156250) -[2618766.996] {Default Queue} wl_pointer#2377.motion(187310396, 29.00000000, 22.60156250) -[2618767.001] {Default Queue} wl_pointer#2409.motion(187310396, 29.00000000, 22.60156250) -[2618767.005] {Default Queue} wl_pointer#2441.motion(187310396, 29.00000000, 22.60156250) -[2618767.009] {Default Queue} wl_pointer#2473.motion(187310396, 29.00000000, 22.60156250) -[2618767.013] {Default Queue} wl_pointer#2498.motion(187310396, 29.00000000, 22.60156250) -[2618767.028] {Default Queue} -> wl_buffer#3452.destroy() -[2618767.035] {Default Queue} -> wl_buffer#3451.destroy() -[2618767.039] {Default Queue} -> wl_shm_pool#3518.destroy() -[2618767.043] {Default Queue} -> wl_shm_pool#3517.destroy() -[2618767.048] {Default Queue} -> wl_surface#3454.destroy() -[2618767.097] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3484, fd 575, 640) -[2618767.103] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 578, 640) -[2618767.108] {Default Queue} -> wl_shm_pool#3484.create_buffer(new id wl_buffer#3292, 0, 10, 16, 40, 0) -[2618767.113] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) -[2618767.122] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3294) -[2618767.126] {Default Queue} -> wl_surface#3294.attach(wl_buffer#3292, 0, 0) -[2618767.130] {Default Queue} -> wl_surface#3294.commit() -[2618767.136] {Default Queue} -> wl_surface#3294.attach(wl_buffer#3292, 0, 0) -[2618767.140] {Default Queue} -> wl_surface#3294.commit() -[2618767.144] {Default Queue} wl_pointer#2537.motion(187310396, 29.00000000, 22.60156250) -[2618767.149] {Default Queue} wl_pointer#2569.motion(187310396, 29.00000000, 22.60156250) -[2618767.153] {Default Queue} wl_pointer#2601.motion(187310396, 29.00000000, 22.60156250) -[2618767.158] {Default Queue} wl_pointer#2633.motion(187310396, 29.00000000, 22.60156250) -[2618767.162] {Default Queue} wl_pointer#2665.motion(187310396, 29.00000000, 22.60156250) -[2618767.166] {Default Queue} wl_pointer#2697.motion(187310396, 29.00000000, 22.60156250) -[2618767.171] {Default Queue} wl_pointer#2729.motion(187310396, 29.00000000, 22.60156250) -[2618767.175] {Default Queue} wl_pointer#2761.motion(187310396, 29.00000000, 22.60156250) -[2618767.179] {Default Queue} wl_pointer#2793.motion(187310396, 29.00000000, 22.60156250) -[2618767.184] {Default Queue} wl_pointer#2825.motion(187310396, 29.00000000, 22.60156250) -[2618767.188] {Default Queue} wl_pointer#2857.motion(187310396, 29.00000000, 22.60156250) -[2618767.192] {Default Queue} wl_pointer#2889.motion(187310396, 29.00000000, 22.60156250) -[2618767.197] {Default Queue} wl_pointer#2921.motion(187310396, 29.00000000, 22.60156250) -[2618767.201] {Default Queue} wl_pointer#2953.motion(187310396, 29.00000000, 22.60156250) -[2618767.205] {Default Queue} wl_pointer#2985.motion(187310396, 29.00000000, 22.60156250) -[2618767.210] {Default Queue} wl_pointer#3017.motion(187310396, 29.00000000, 22.60156250) -[2618767.214] {Default Queue} wl_pointer#3049.motion(187310396, 29.00000000, 22.60156250) -[2618767.218] {Default Queue} wl_pointer#3081.motion(187310396, 29.00000000, 22.60156250) -[2618767.222] {Default Queue} wl_pointer#3113.motion(187310396, 29.00000000, 22.60156250) -[2618767.227] {Default Queue} wl_pointer#3145.motion(187310396, 29.00000000, 22.60156250) -[2618767.231] {Default Queue} wl_pointer#3177.motion(187310396, 29.00000000, 22.60156250) -[2618767.235] {Default Queue} wl_pointer#3209.motion(187310396, 29.00000000, 22.60156250) -[2618767.240] {Default Queue} wl_pointer#3241.motion(187310396, 29.00000000, 22.60156250) -[2618767.244] {Default Queue} wl_pointer#3273.motion(187310396, 29.00000000, 22.60156250) -[2618767.248] {Default Queue} wl_pointer#3305.motion(187310396, 29.00000000, 22.60156250) -[2618767.253] {Default Queue} wl_pointer#3337.motion(187310396, 29.00000000, 22.60156250) -[2618767.257] {Default Queue} wl_pointer#3369.motion(187310396, 29.00000000, 22.60156250) -[2618767.261] {Default Queue} wl_pointer#3401.motion(187310396, 29.00000000, 22.60156250) -[2618767.270] {Default Queue} wl_pointer#3433.motion(187310396, 29.00000000, 22.60156250) -[2618767.277] {Default Queue} wl_pointer#3465.motion(187310396, 29.00000000, 22.60156250) -[2618767.281] {Default Queue} wl_pointer#3497.motion(187310396, 29.00000000, 22.60156250) -[2618767.285] {Default Queue} wl_pointer#3529.motion(187310396, 29.00000000, 22.60156250) -[2618767.290] {Default Queue} wl_pointer#3561.motion(187310396, 29.00000000, 22.60156250) -[2618767.294] {Default Queue} wl_pointer#3593.motion(187310396, 29.00000000, 22.60156250) -[2618767.298] {Default Queue} wl_pointer#3625.motion(187310396, 29.00000000, 22.60156250) -[2618767.303] {Default Queue} wl_pointer#3657.motion(187310396, 29.00000000, 22.60156250) -[2618767.307] {Default Queue} wl_pointer#3695.motion(187310396, 29.00000000, 22.60156250) -[2618767.315] {Default Queue} -> wl_region#3007.subtract(0, 0, 2, 2) -[2618767.320] {Default Queue} -> wl_region#3007.add(0, 0, 2, 2) -[2618767.325] {Default Queue} -> wl_surface#2983.set_opaque_region(wl_region#3008) -[2618767.329] {Default Queue} -> wl_surface#2983.set_input_region(wl_region#3007) -[2618767.334] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) -[2618767.338] {Default Queue} -> wl_surface#2983.commit() -[2618767.342] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) -[2618767.346] {Default Queue} -> wl_surface#2983.commit() -[2618767.372] {Default Queue} wl_pointer#24.motion(187310401, 29.00000000, 22.19921875) -[2618767.377] {Default Queue} wl_pointer#81.motion(187310401, 29.00000000, 22.19921875) -[2618767.382] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618767.387] {Default Queue} wl_pointer#105.motion(187310401, 29.00000000, 22.19921875) -[2618767.391] {Default Queue} wl_pointer#137.motion(187310401, 29.00000000, 22.19921875) -[2618767.395] {Default Queue} wl_pointer#169.motion(187310401, 29.00000000, 22.19921875) -[2618767.400] {Default Queue} wl_pointer#201.motion(187310401, 29.00000000, 22.19921875) -[2618767.404] {Default Queue} wl_pointer#233.motion(187310401, 29.00000000, 22.19921875) -[2618767.408] {Default Queue} wl_pointer#265.motion(187310401, 29.00000000, 22.19921875) -[2618767.412] {Default Queue} wl_pointer#297.motion(187310401, 29.00000000, 22.19921875) -[2618767.417] {Default Queue} wl_pointer#329.motion(187310401, 29.00000000, 22.19921875) -[2618767.421] {Default Queue} wl_pointer#361.motion(187310401, 29.00000000, 22.19921875) -[2618767.425] {Default Queue} wl_pointer#393.motion(187310401, 29.00000000, 22.19921875) -[2618767.429] {Default Queue} wl_pointer#425.motion(187310401, 29.00000000, 22.19921875) -[2618767.433] {Default Queue} wl_pointer#457.motion(187310401, 29.00000000, 22.19921875) -[2618767.438] {Default Queue} wl_pointer#489.motion(187310401, 29.00000000, 22.19921875) -[2618767.442] {Default Queue} wl_pointer#521.motion(187310401, 29.00000000, 22.19921875) -[2618767.446] {Default Queue} wl_pointer#553.motion(187310401, 29.00000000, 22.19921875) -[2618767.450] {Default Queue} wl_pointer#585.motion(187310401, 29.00000000, 22.19921875) -[2618767.455] {Default Queue} wl_pointer#617.motion(187310401, 29.00000000, 22.19921875) -[2618767.459] {Default Queue} wl_pointer#649.motion(187310401, 29.00000000, 22.19921875) -[2618767.464] {Default Queue} wl_pointer#681.motion(187310401, 29.00000000, 22.19921875) -[2618767.468] {Default Queue} wl_pointer#713.motion(187310401, 29.00000000, 22.19921875) -[2618767.472] {Default Queue} wl_pointer#745.motion(187310401, 29.00000000, 22.19921875) -[2618767.476] {Default Queue} wl_pointer#777.motion(187310401, 29.00000000, 22.19921875) -[2618767.481] {Default Queue} wl_pointer#809.motion(187310401, 29.00000000, 22.19921875) -[2618767.485] {Default Queue} wl_pointer#841.motion(187310401, 29.00000000, 22.19921875) -[2618767.489] {Default Queue} wl_pointer#873.motion(187310401, 29.00000000, 22.19921875) -[2618767.493] {Default Queue} wl_pointer#905.motion(187310401, 29.00000000, 22.19921875) -[2618767.498] {Default Queue} wl_pointer#937.motion(187310401, 29.00000000, 22.19921875) -[2618767.505] {Default Queue} wl_pointer#969.motion(187310401, 29.00000000, 22.19921875) -[2618767.511] {Default Queue} wl_pointer#1001.motion(187310401, 29.00000000, 22.19921875) -[2618767.515] {Default Queue} wl_pointer#1033.motion(187310401, 29.00000000, 22.19921875) -[2618767.520] {Default Queue} wl_pointer#1065.motion(187310401, 29.00000000, 22.19921875) -[2618767.524] {Default Queue} wl_pointer#1097.motion(187310401, 29.00000000, 22.19921875) -[2618767.528] {Default Queue} wl_pointer#1129.motion(187310401, 29.00000000, 22.19921875) -[2618767.533] {Default Queue} wl_pointer#1161.motion(187310401, 29.00000000, 22.19921875) -[2618767.537] {Default Queue} wl_pointer#1193.motion(187310401, 29.00000000, 22.19921875) -[2618767.541] {Default Queue} wl_pointer#1225.motion(187310401, 29.00000000, 22.19921875) -[2618767.545] {Default Queue} wl_pointer#1257.motion(187310401, 29.00000000, 22.19921875) -[2618767.549] {Default Queue} wl_pointer#1289.motion(187310401, 29.00000000, 22.19921875) -[2618767.554] {Default Queue} wl_pointer#1321.motion(187310401, 29.00000000, 22.19921875) -[2618767.558] {Default Queue} wl_pointer#1353.motion(187310401, 29.00000000, 22.19921875) -[2618767.562] {Default Queue} wl_pointer#1385.motion(187310401, 29.00000000, 22.19921875) -[2618767.566] {Default Queue} wl_pointer#1417.motion(187310401, 29.00000000, 22.19921875) -[2618767.571] {Default Queue} wl_pointer#1449.motion(187310401, 29.00000000, 22.19921875) -[2618767.575] {Default Queue} wl_pointer#1481.motion(187310401, 29.00000000, 22.19921875) -[2618767.579] {Default Queue} wl_pointer#1513.motion(187310401, 29.00000000, 22.19921875) -[2618767.583] {Default Queue} wl_pointer#1545.motion(187310401, 29.00000000, 22.19921875) -[2618767.588] {Default Queue} wl_pointer#1577.motion(187310401, 29.00000000, 22.19921875) -[2618767.592] {Default Queue} wl_pointer#1609.motion(187310401, 29.00000000, 22.19921875) -[2618767.596] {Default Queue} wl_pointer#1641.motion(187310401, 29.00000000, 22.19921875) -[2618767.600] {Default Queue} wl_pointer#1673.motion(187310401, 29.00000000, 22.19921875) -[2618767.605] {Default Queue} wl_pointer#1705.motion(187310401, 29.00000000, 22.19921875) -[2618767.609] {Default Queue} wl_pointer#1737.motion(187310401, 29.00000000, 22.19921875) -[2618767.613] {Default Queue} wl_pointer#1762.motion(187310401, 29.00000000, 22.19921875) -[2618767.617] {Default Queue} wl_pointer#1801.motion(187310401, 29.00000000, 22.19921875) -[2618767.622] {Default Queue} wl_pointer#1833.motion(187310401, 29.00000000, 22.19921875) -[2618767.626] {Default Queue} wl_pointer#1865.motion(187310401, 29.00000000, 22.19921875) -[2618767.630] {Default Queue} wl_pointer#1897.motion(187310401, 29.00000000, 22.19921875) -[2618767.634] {Default Queue} wl_pointer#1929.motion(187310401, 29.00000000, 22.19921875) -[2618767.639] {Default Queue} wl_pointer#1961.motion(187310401, 29.00000000, 22.19921875) -[2618767.643] {Default Queue} wl_pointer#1993.motion(187310401, 29.00000000, 22.19921875) -[2618767.647] {Default Queue} wl_pointer#2025.motion(187310401, 29.00000000, 22.19921875) -[2618767.651] {Default Queue} wl_pointer#2057.motion(187310401, 29.00000000, 22.19921875) -[2618767.656] {Default Queue} wl_pointer#2089.motion(187310401, 29.00000000, 22.19921875) -[2618767.660] {Default Queue} wl_pointer#2121.motion(187310401, 29.00000000, 22.19921875) -[2618767.664] {Default Queue} wl_pointer#2153.motion(187310401, 29.00000000, 22.19921875) -[2618767.669] {Default Queue} wl_pointer#2185.motion(187310401, 29.00000000, 22.19921875) -[2618767.673] {Default Queue} wl_pointer#2217.motion(187310401, 29.00000000, 22.19921875) -[2618767.677] {Default Queue} wl_pointer#2249.motion(187310401, 29.00000000, 22.19921875) -[2618767.682] {Default Queue} wl_pointer#2281.motion(187310401, 29.00000000, 22.19921875) -[2618767.686] {Default Queue} wl_pointer#2313.motion(187310401, 29.00000000, 22.19921875) -[2618767.690] {Default Queue} wl_pointer#2345.motion(187310401, 29.00000000, 22.19921875) -[2618767.695] {Default Queue} wl_pointer#2377.motion(187310401, 29.00000000, 22.19921875) -[2618767.699] {Default Queue} wl_pointer#2409.motion(187310401, 29.00000000, 22.19921875) -[2618767.706] {Default Queue} wl_pointer#2441.motion(187310401, 29.00000000, 22.19921875) -[2618767.711] {Default Queue} wl_pointer#2473.motion(187310401, 29.00000000, 22.19921875) -[2618767.716] {Default Queue} wl_pointer#2498.motion(187310401, 29.00000000, 22.19921875) -[2618767.726] {Default Queue} -> wl_buffer#3292.destroy() -[2618767.731] {Default Queue} -> wl_buffer#3293.destroy() -[2618767.735] {Default Queue} -> wl_shm_pool#3484.destroy() -[2618767.739] {Default Queue} -> wl_shm_pool#3291.destroy() -[2618767.744] {Default Queue} -> wl_surface#3294.destroy() -[2618767.783] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3682, fd 581, 640) -[2618767.791] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 582, 640) -[2618767.797] {Default Queue} -> wl_shm_pool#3682.create_buffer(new id wl_buffer#3684, 0, 10, 16, 40, 0) -[2618767.803] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) -[2618767.813] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3671) -[2618767.818] {Default Queue} -> wl_surface#3671.attach(wl_buffer#3684, 0, 0) -[2618767.824] {Default Queue} -> wl_surface#3671.commit() -[2618767.831] {Default Queue} -> wl_surface#3671.attach(wl_buffer#3684, 0, 0) -[2618767.837] {Default Queue} -> wl_surface#3671.commit() -[2618767.842] {Default Queue} wl_pointer#2537.motion(187310401, 29.00000000, 22.19921875) -[2618767.848] {Default Queue} wl_pointer#2569.motion(187310401, 29.00000000, 22.19921875) -[2618767.852] {Default Queue} wl_pointer#2601.motion(187310401, 29.00000000, 22.19921875) -[2618767.857] {Default Queue} wl_pointer#2633.motion(187310401, 29.00000000, 22.19921875) -[2618767.867] {Default Queue} wl_pointer#2665.motion(187310401, 29.00000000, 22.19921875) -[2618767.872] {Default Queue} wl_pointer#2697.motion(187310401, 29.00000000, 22.19921875) -[2618767.876] {Default Queue} wl_pointer#2729.motion(187310401, 29.00000000, 22.19921875) -[2618767.880] {Default Queue} wl_pointer#2761.motion(187310401, 29.00000000, 22.19921875) -[2618767.885] {Default Queue} wl_pointer#2793.motion(187310401, 29.00000000, 22.19921875) -[2618767.889] {Default Queue} wl_pointer#2825.motion(187310401, 29.00000000, 22.19921875) -[2618767.893] {Default Queue} wl_pointer#2857.motion(187310401, 29.00000000, 22.19921875) -[2618767.898] {Default Queue} wl_pointer#2889.motion(187310401, 29.00000000, 22.19921875) -[2618767.902] {Default Queue} wl_pointer#2921.motion(187310401, 29.00000000, 22.19921875) -[2618767.906] {Default Queue} wl_pointer#2953.motion(187310401, 29.00000000, 22.19921875) -[2618767.910] {Default Queue} wl_pointer#2985.motion(187310401, 29.00000000, 22.19921875) -[2618767.915] {Default Queue} wl_pointer#3017.motion(187310401, 29.00000000, 22.19921875) -[2618767.919] {Default Queue} wl_pointer#3049.motion(187310401, 29.00000000, 22.19921875) -[2618767.923] {Default Queue} wl_pointer#3081.motion(187310401, 29.00000000, 22.19921875) -[2618767.927] {Default Queue} wl_pointer#3113.motion(187310401, 29.00000000, 22.19921875) -[2618767.932] {Default Queue} wl_pointer#3145.motion(187310401, 29.00000000, 22.19921875) -[2618767.936] {Default Queue} wl_pointer#3177.motion(187310401, 29.00000000, 22.19921875) -[2618767.940] {Default Queue} wl_pointer#3209.motion(187310401, 29.00000000, 22.19921875) -[2618767.945] {Default Queue} wl_pointer#3241.motion(187310401, 29.00000000, 22.19921875) -[2618767.949] {Default Queue} wl_pointer#3273.motion(187310401, 29.00000000, 22.19921875) -[2618767.953] {Default Queue} wl_pointer#3305.motion(187310401, 29.00000000, 22.19921875) -[2618767.957] {Default Queue} wl_pointer#3337.motion(187310401, 29.00000000, 22.19921875) -[2618767.961] {Default Queue} wl_pointer#3369.motion(187310401, 29.00000000, 22.19921875) -[2618767.966] {Default Queue} wl_pointer#3401.motion(187310401, 29.00000000, 22.19921875) -[2618767.970] {Default Queue} wl_pointer#3433.motion(187310401, 29.00000000, 22.19921875) -[2618767.974] {Default Queue} wl_pointer#3465.motion(187310401, 29.00000000, 22.19921875) -[2618767.983] {Default Queue} wl_pointer#3497.motion(187310401, 29.00000000, 22.19921875) -[2618767.990] {Default Queue} wl_pointer#3529.motion(187310401, 29.00000000, 22.19921875) -[2618767.996] {Default Queue} wl_pointer#3561.motion(187310401, 29.00000000, 22.19921875) -[2618768.002] {Default Queue} wl_pointer#3593.motion(187310401, 29.00000000, 22.19921875) -[2618768.008] {Default Queue} wl_pointer#3625.motion(187310401, 29.00000000, 22.19921875) -[2618768.013] {Default Queue} wl_pointer#3657.motion(187310401, 29.00000000, 22.19921875) -[2618768.017] {Default Queue} wl_pointer#3695.motion(187310401, 29.00000000, 22.19921875) -[2618768.022] {Default Queue} wl_pointer#24.motion(187310401, 29.00000000, 21.80078125) -[2618768.028] {Default Queue} wl_pointer#81.motion(187310401, 29.00000000, 21.80078125) -[2618768.035] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618768.041] {Default Queue} wl_pointer#105.motion(187310401, 29.00000000, 21.80078125) -[2618768.047] {Default Queue} wl_pointer#137.motion(187310401, 29.00000000, 21.80078125) -[2618768.052] {Default Queue} wl_pointer#169.motion(187310401, 29.00000000, 21.80078125) -[2618768.057] {Default Queue} wl_pointer#201.motion(187310401, 29.00000000, 21.80078125) -[2618768.061] {Default Queue} wl_pointer#233.motion(187310401, 29.00000000, 21.80078125) -[2618768.065] {Default Queue} wl_pointer#265.motion(187310401, 29.00000000, 21.80078125) -[2618768.070] {Default Queue} wl_pointer#297.motion(187310401, 29.00000000, 21.80078125) -[2618768.074] {Default Queue} wl_pointer#329.motion(187310401, 29.00000000, 21.80078125) -[2618768.078] {Default Queue} wl_pointer#361.motion(187310401, 29.00000000, 21.80078125) -[2618768.082] {Default Queue} wl_pointer#393.motion(187310401, 29.00000000, 21.80078125) -[2618768.087] {Default Queue} wl_pointer#425.motion(187310401, 29.00000000, 21.80078125) -[2618768.091] {Default Queue} wl_pointer#457.motion(187310401, 29.00000000, 21.80078125) -[2618768.095] {Default Queue} wl_pointer#489.motion(187310401, 29.00000000, 21.80078125) -[2618768.099] {Default Queue} wl_pointer#521.motion(187310401, 29.00000000, 21.80078125) -[2618768.104] {Default Queue} wl_pointer#553.motion(187310401, 29.00000000, 21.80078125) -[2618768.108] {Default Queue} wl_pointer#585.motion(187310401, 29.00000000, 21.80078125) -[2618768.112] {Default Queue} wl_pointer#617.motion(187310401, 29.00000000, 21.80078125) -[2618768.116] {Default Queue} wl_pointer#649.motion(187310401, 29.00000000, 21.80078125) -[2618768.121] {Default Queue} wl_pointer#681.motion(187310401, 29.00000000, 21.80078125) -[2618768.125] {Default Queue} wl_pointer#713.motion(187310401, 29.00000000, 21.80078125) -[2618768.129] {Default Queue} wl_pointer#745.motion(187310401, 29.00000000, 21.80078125) -[2618768.133] {Default Queue} wl_pointer#777.motion(187310401, 29.00000000, 21.80078125) -[2618768.138] {Default Queue} wl_pointer#809.motion(187310401, 29.00000000, 21.80078125) -[2618768.142] {Default Queue} wl_pointer#841.motion(187310401, 29.00000000, 21.80078125) -[2618768.146] {Default Queue} wl_pointer#873.motion(187310401, 29.00000000, 21.80078125) -[2618768.151] {Default Queue} wl_pointer#905.motion(187310401, 29.00000000, 21.80078125) -[2618768.155] {Default Queue} wl_pointer#937.motion(187310401, 29.00000000, 21.80078125) -[2618768.159] {Default Queue} wl_pointer#969.motion(187310401, 29.00000000, 21.80078125) -[2618768.163] {Default Queue} wl_pointer#1001.motion(187310401, 29.00000000, 21.80078125) -[2618768.168] {Default Queue} wl_pointer#1033.motion(187310401, 29.00000000, 21.80078125) -[2618768.172] {Default Queue} wl_pointer#1065.motion(187310401, 29.00000000, 21.80078125) -[2618768.176] {Default Queue} wl_pointer#1097.motion(187310401, 29.00000000, 21.80078125) -[2618768.181] {Default Queue} wl_pointer#1129.motion(187310401, 29.00000000, 21.80078125) -[2618768.185] {Default Queue} wl_pointer#1161.motion(187310401, 29.00000000, 21.80078125) -[2618768.189] {Default Queue} wl_pointer#1193.motion(187310401, 29.00000000, 21.80078125) -[2618768.193] {Default Queue} wl_pointer#1225.motion(187310401, 29.00000000, 21.80078125) -[2618768.200] {Default Queue} wl_pointer#1257.motion(187310401, 29.00000000, 21.80078125) -[2618768.206] {Default Queue} wl_pointer#1289.motion(187310401, 29.00000000, 21.80078125) -[2618768.211] {Default Queue} wl_pointer#1321.motion(187310401, 29.00000000, 21.80078125) -[2618768.215] {Default Queue} wl_pointer#1353.motion(187310401, 29.00000000, 21.80078125) -[2618768.219] {Default Queue} wl_pointer#1385.motion(187310401, 29.00000000, 21.80078125) -[2618768.224] {Default Queue} wl_pointer#1417.motion(187310401, 29.00000000, 21.80078125) -[2618768.228] {Default Queue} wl_pointer#1449.motion(187310401, 29.00000000, 21.80078125) -[2618768.232] {Default Queue} wl_pointer#1481.motion(187310401, 29.00000000, 21.80078125) -[2618768.236] {Default Queue} wl_pointer#1513.motion(187310401, 29.00000000, 21.80078125) -[2618768.241] {Default Queue} wl_pointer#1545.motion(187310401, 29.00000000, 21.80078125) -[2618768.245] {Default Queue} wl_pointer#1577.motion(187310401, 29.00000000, 21.80078125) -[2618768.249] {Default Queue} wl_pointer#1609.motion(187310401, 29.00000000, 21.80078125) -[2618768.254] {Default Queue} wl_pointer#1641.motion(187310401, 29.00000000, 21.80078125) -[2618768.258] {Default Queue} wl_pointer#1673.motion(187310401, 29.00000000, 21.80078125) -[2618768.262] {Default Queue} wl_pointer#1705.motion(187310401, 29.00000000, 21.80078125) -[2618768.267] {Default Queue} wl_pointer#1737.motion(187310401, 29.00000000, 21.80078125) -[2618768.271] {Default Queue} wl_pointer#1762.motion(187310401, 29.00000000, 21.80078125) -[2618768.275] {Default Queue} wl_pointer#1801.motion(187310401, 29.00000000, 21.80078125) -[2618768.279] {Default Queue} wl_pointer#1833.motion(187310401, 29.00000000, 21.80078125) -[2618768.284] {Default Queue} wl_pointer#1865.motion(187310401, 29.00000000, 21.80078125) -[2618768.288] {Default Queue} wl_pointer#1897.motion(187310401, 29.00000000, 21.80078125) -[2618768.292] {Default Queue} wl_pointer#1929.motion(187310401, 29.00000000, 21.80078125) -[2618768.297] {Default Queue} wl_pointer#1961.motion(187310401, 29.00000000, 21.80078125) -[2618768.301] {Default Queue} wl_pointer#1993.motion(187310401, 29.00000000, 21.80078125) -[2618768.305] {Default Queue} wl_pointer#2025.motion(187310401, 29.00000000, 21.80078125) -[2618768.309] {Default Queue} wl_pointer#2057.motion(187310401, 29.00000000, 21.80078125) -[2618768.314] {Default Queue} wl_pointer#2089.motion(187310401, 29.00000000, 21.80078125) -[2618768.318] {Default Queue} wl_pointer#2121.motion(187310401, 29.00000000, 21.80078125) -[2618768.322] {Default Queue} wl_pointer#2153.motion(187310401, 29.00000000, 21.80078125) -[2618768.326] {Default Queue} wl_pointer#2185.motion(187310401, 29.00000000, 21.80078125) -[2618768.331] {Default Queue} wl_pointer#2217.motion(187310401, 29.00000000, 21.80078125) -[2618768.335] {Default Queue} wl_pointer#2249.motion(187310401, 29.00000000, 21.80078125) -[2618768.339] {Default Queue} wl_pointer#2281.motion(187310401, 29.00000000, 21.80078125) -[2618768.343] {Default Queue} wl_pointer#2313.motion(187310401, 29.00000000, 21.80078125) -[2618768.348] {Default Queue} wl_pointer#2345.motion(187310401, 29.00000000, 21.80078125) -[2618768.352] {Default Queue} wl_pointer#2377.motion(187310401, 29.00000000, 21.80078125) -[2618768.356] {Default Queue} wl_pointer#2409.motion(187310401, 29.00000000, 21.80078125) -[2618768.361] {Default Queue} wl_pointer#2441.motion(187310401, 29.00000000, 21.80078125) -[2618768.365] {Default Queue} wl_pointer#2473.motion(187310401, 29.00000000, 21.80078125) -[2618768.369] {Default Queue} wl_pointer#2498.motion(187310401, 29.00000000, 21.80078125) -[2618768.381] {Default Queue} -> wl_buffer#3684.destroy() -[2618768.387] {Default Queue} -> wl_buffer#3681.destroy() -[2618768.391] {Default Queue} -> wl_shm_pool#3682.destroy() -[2618768.395] {Default Queue} -> wl_shm_pool#3679.destroy() -[2618768.401] {Default Queue} -> wl_surface#3671.destroy() -[2618768.449] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#93, fd 583, 640) -[2618768.455] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 584, 640) -[2618768.463] {Default Queue} -> wl_shm_pool#93.create_buffer(new id wl_buffer#3683, 0, 10, 16, 40, 0) -[2618768.469] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) -[2618768.476] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#91) -[2618768.481] {Default Queue} -> wl_surface#91.attach(wl_buffer#3683, 0, 0) -[2618768.485] {Default Queue} -> wl_surface#91.commit() -[2618768.490] {Default Queue} -> wl_surface#91.attach(wl_buffer#3683, 0, 0) -[2618768.494] {Default Queue} -> wl_surface#91.commit() -[2618768.498] {Default Queue} wl_pointer#2537.motion(187310401, 29.00000000, 21.80078125) -[2618768.503] {Default Queue} wl_pointer#2569.motion(187310401, 29.00000000, 21.80078125) -[2618768.507] {Default Queue} wl_pointer#2601.motion(187310401, 29.00000000, 21.80078125) -[2618768.512] {Default Queue} wl_pointer#2633.motion(187310401, 29.00000000, 21.80078125) -[2618768.516] {Default Queue} wl_pointer#2665.motion(187310401, 29.00000000, 21.80078125) -[2618768.520] {Default Queue} wl_pointer#2697.motion(187310401, 29.00000000, 21.80078125) -[2618768.524] {Default Queue} wl_pointer#2729.motion(187310401, 29.00000000, 21.80078125) -[2618768.529] {Default Queue} wl_pointer#2761.motion(187310401, 29.00000000, 21.80078125) -[2618768.533] {Default Queue} wl_pointer#2793.motion(187310401, 29.00000000, 21.80078125) -[2618768.537] {Default Queue} wl_pointer#2825.motion(187310401, 29.00000000, 21.80078125) -[2618768.542] {Default Queue} wl_pointer#2857.motion(187310401, 29.00000000, 21.80078125) -[2618768.546] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) -[2618768.550] {Default Queue} -> wl_surface#2983.commit() -[2618769.617] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) -[2618769.623] {Default Queue} -> wl_surface#2983.commit() -[2618769.629] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) -[2618769.633] {Default Queue} -> wl_surface#2983.commit() -[2618769.830] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) -[2618769.836] {Default Queue} -> wl_surface#71.commit() -[2618770.911] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) -[2618770.917] {Default Queue} -> wl_surface#71.commit() -[2618770.950] {Default Queue} -> wl_region#95.subtract(0, 0, 596, 718) -[2618770.956] {Default Queue} -> wl_region#95.add(0, 0, 576, 669) -[2618770.960] {Default Queue} -> wl_surface#71.set_opaque_region(wl_region#96) -[2618770.965] {Default Queue} -> wl_surface#71.set_input_region(wl_region#95) -[2618771.021] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) -[2618771.027] {Default Queue} -> wl_surface#71.commit() -[2618771.059] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) -[2618771.065] {Default Queue} -> wl_surface#71.commit() -[2618771.099] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) -[2618771.105] {Default Queue} -> wl_surface#71.commit() -[2618771.245] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) -[2618771.252] {Default Queue} -> wl_surface#3.commit() -[2618771.409] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) -[2618771.415] {Default Queue} -> wl_surface#19.commit() -[2618772.323] {Default Queue} wl_pointer#2889.motion(187310401, 29.00000000, 21.80078125) -[2618772.333] {Default Queue} wl_pointer#2921.motion(187310401, 29.00000000, 21.80078125) -[2618772.338] {Default Queue} wl_pointer#2953.motion(187310401, 29.00000000, 21.80078125) -[2618772.342] {Default Queue} wl_pointer#2985.motion(187310401, 29.00000000, 21.80078125) -[2618772.347] {Default Queue} wl_pointer#3017.motion(187310401, 29.00000000, 21.80078125) -[2618772.351] {Default Queue} wl_pointer#3049.motion(187310401, 29.00000000, 21.80078125) -[2618772.355] {Default Queue} wl_pointer#3081.motion(187310401, 29.00000000, 21.80078125) -[2618772.360] {Default Queue} wl_pointer#3113.motion(187310401, 29.00000000, 21.80078125) -[2618772.364] {Default Queue} wl_pointer#3145.motion(187310401, 29.00000000, 21.80078125) -[2618772.368] {Default Queue} wl_pointer#3177.motion(187310401, 29.00000000, 21.80078125) -[2618772.379] {Default Queue} wl_pointer#3209.motion(187310401, 29.00000000, 21.80078125) -[2618772.386] {Default Queue} wl_pointer#3241.motion(187310401, 29.00000000, 21.80078125) -[2618772.390] {Default Queue} wl_pointer#3273.motion(187310401, 29.00000000, 21.80078125) -[2618772.395] {Default Queue} wl_pointer#3305.motion(187310401, 29.00000000, 21.80078125) -[2618772.399] {Default Queue} wl_pointer#3337.motion(187310401, 29.00000000, 21.80078125) -[2618772.403] {Default Queue} wl_pointer#3369.motion(187310401, 29.00000000, 21.80078125) -[2618772.407] {Default Queue} wl_pointer#3401.motion(187310401, 29.00000000, 21.80078125) -[2618772.412] {Default Queue} wl_pointer#3433.motion(187310401, 29.00000000, 21.80078125) -[2618772.417] {Default Queue} wl_pointer#3465.motion(187310401, 29.00000000, 21.80078125) -[2618772.421] {Default Queue} wl_pointer#3497.motion(187310401, 29.00000000, 21.80078125) -[2618772.426] {Default Queue} wl_pointer#3529.motion(187310401, 29.00000000, 21.80078125) -[2618772.430] {Default Queue} wl_pointer#3561.motion(187310401, 29.00000000, 21.80078125) -[2618772.434] {Default Queue} wl_pointer#3593.motion(187310401, 29.00000000, 21.80078125) -[2618772.439] {Default Queue} wl_pointer#3625.motion(187310401, 29.00000000, 21.80078125) -[2618772.443] {Default Queue} wl_pointer#3657.motion(187310401, 29.00000000, 21.80078125) -[2618772.447] {Default Queue} wl_pointer#3695.motion(187310401, 29.00000000, 21.80078125) -[2618772.451] {Default Queue} wl_pointer#24.motion(187310401, 29.00000000, 21.39843750) -[2618772.456] {Default Queue} wl_pointer#81.motion(187310401, 29.00000000, 21.39843750) -[2618772.461] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618772.466] {Default Queue} wl_pointer#105.motion(187310401, 29.00000000, 21.39843750) -[2618772.470] {Default Queue} wl_pointer#137.motion(187310401, 29.00000000, 21.39843750) -[2618772.474] {Default Queue} wl_pointer#169.motion(187310401, 29.00000000, 21.39843750) -[2618772.479] {Default Queue} wl_pointer#201.motion(187310401, 29.00000000, 21.39843750) -[2618772.483] {Default Queue} wl_pointer#233.motion(187310401, 29.00000000, 21.39843750) -[2618772.487] {Default Queue} wl_pointer#265.motion(187310401, 29.00000000, 21.39843750) -[2618772.491] {Default Queue} wl_pointer#297.motion(187310401, 29.00000000, 21.39843750) -[2618772.496] {Default Queue} wl_pointer#329.motion(187310401, 29.00000000, 21.39843750) -[2618772.500] {Default Queue} wl_pointer#361.motion(187310401, 29.00000000, 21.39843750) -[2618772.504] {Default Queue} wl_pointer#393.motion(187310401, 29.00000000, 21.39843750) -[2618772.509] {Default Queue} wl_pointer#425.motion(187310401, 29.00000000, 21.39843750) -[2618772.513] {Default Queue} wl_pointer#457.motion(187310401, 29.00000000, 21.39843750) -[2618772.517] {Default Queue} wl_pointer#489.motion(187310401, 29.00000000, 21.39843750) -[2618772.522] {Default Queue} wl_pointer#521.motion(187310401, 29.00000000, 21.39843750) -[2618772.526] {Default Queue} wl_pointer#553.motion(187310401, 29.00000000, 21.39843750) -[2618772.530] {Default Queue} wl_pointer#585.motion(187310401, 29.00000000, 21.39843750) -[2618772.535] {Default Queue} wl_pointer#617.motion(187310401, 29.00000000, 21.39843750) -[2618772.539] {Default Queue} wl_pointer#649.motion(187310401, 29.00000000, 21.39843750) -[2618772.543] {Default Queue} wl_pointer#681.motion(187310401, 29.00000000, 21.39843750) -[2618772.547] {Default Queue} wl_pointer#713.motion(187310401, 29.00000000, 21.39843750) -[2618772.552] {Default Queue} wl_pointer#745.motion(187310401, 29.00000000, 21.39843750) -[2618772.556] {Default Queue} wl_pointer#777.motion(187310401, 29.00000000, 21.39843750) -[2618772.560] {Default Queue} wl_pointer#809.motion(187310401, 29.00000000, 21.39843750) -[2618772.565] {Default Queue} wl_pointer#841.motion(187310401, 29.00000000, 21.39843750) -[2618772.569] {Default Queue} wl_pointer#873.motion(187310401, 29.00000000, 21.39843750) -[2618772.573] {Default Queue} wl_pointer#905.motion(187310401, 29.00000000, 21.39843750) -[2618772.577] {Default Queue} wl_pointer#937.motion(187310401, 29.00000000, 21.39843750) -[2618772.585] {Default Queue} wl_pointer#969.motion(187310401, 29.00000000, 21.39843750) -[2618772.590] {Default Queue} wl_pointer#1001.motion(187310401, 29.00000000, 21.39843750) -[2618772.595] {Default Queue} wl_pointer#1033.motion(187310401, 29.00000000, 21.39843750) -[2618772.599] {Default Queue} wl_pointer#1065.motion(187310401, 29.00000000, 21.39843750) -[2618772.603] {Default Queue} wl_pointer#1097.motion(187310401, 29.00000000, 21.39843750) -[2618772.608] {Default Queue} wl_pointer#1129.motion(187310401, 29.00000000, 21.39843750) -[2618772.612] {Default Queue} wl_pointer#1161.motion(187310401, 29.00000000, 21.39843750) -[2618772.616] {Default Queue} wl_pointer#1193.motion(187310401, 29.00000000, 21.39843750) -[2618772.621] {Default Queue} wl_pointer#1225.motion(187310401, 29.00000000, 21.39843750) -[2618772.625] {Default Queue} wl_pointer#1257.motion(187310401, 29.00000000, 21.39843750) -[2618772.629] {Default Queue} wl_pointer#1289.motion(187310401, 29.00000000, 21.39843750) -[2618772.633] {Default Queue} wl_pointer#1321.motion(187310401, 29.00000000, 21.39843750) -[2618772.638] {Default Queue} wl_pointer#1353.motion(187310401, 29.00000000, 21.39843750) -[2618772.642] {Default Queue} wl_pointer#1385.motion(187310401, 29.00000000, 21.39843750) -[2618772.646] {Default Queue} wl_pointer#1417.motion(187310401, 29.00000000, 21.39843750) -[2618772.651] {Default Queue} wl_pointer#1449.motion(187310401, 29.00000000, 21.39843750) -[2618772.655] {Default Queue} wl_pointer#1481.motion(187310401, 29.00000000, 21.39843750) -[2618772.659] {Default Queue} wl_pointer#1513.motion(187310401, 29.00000000, 21.39843750) -[2618772.664] {Default Queue} wl_pointer#1545.motion(187310401, 29.00000000, 21.39843750) -[2618772.668] {Default Queue} wl_pointer#1577.motion(187310401, 29.00000000, 21.39843750) -[2618772.672] {Default Queue} wl_pointer#1609.motion(187310401, 29.00000000, 21.39843750) -[2618772.677] {Default Queue} wl_pointer#1641.motion(187310401, 29.00000000, 21.39843750) -[2618772.681] {Default Queue} wl_pointer#1673.motion(187310401, 29.00000000, 21.39843750) -[2618772.685] {Default Queue} wl_pointer#1705.motion(187310401, 29.00000000, 21.39843750) -[2618772.690] {Default Queue} wl_pointer#1737.motion(187310401, 29.00000000, 21.39843750) -[2618772.694] {Default Queue} wl_pointer#1762.motion(187310401, 29.00000000, 21.39843750) -[2618772.698] {Default Queue} wl_pointer#1801.motion(187310401, 29.00000000, 21.39843750) -[2618772.703] {Default Queue} wl_pointer#1833.motion(187310401, 29.00000000, 21.39843750) -[2618772.707] {Default Queue} wl_pointer#1865.motion(187310401, 29.00000000, 21.39843750) -[2618772.711] {Default Queue} wl_pointer#1897.motion(187310401, 29.00000000, 21.39843750) -[2618772.715] {Default Queue} wl_pointer#1929.motion(187310401, 29.00000000, 21.39843750) -[2618772.720] {Default Queue} wl_pointer#1961.motion(187310401, 29.00000000, 21.39843750) -[2618772.724] {Default Queue} wl_pointer#1993.motion(187310401, 29.00000000, 21.39843750) -[2618772.729] {Default Queue} wl_pointer#2025.motion(187310401, 29.00000000, 21.39843750) -[2618772.733] {Default Queue} wl_pointer#2057.motion(187310401, 29.00000000, 21.39843750) -[2618772.738] {Default Queue} wl_pointer#2089.motion(187310401, 29.00000000, 21.39843750) -[2618772.742] {Default Queue} wl_pointer#2121.motion(187310401, 29.00000000, 21.39843750) -[2618772.746] {Default Queue} wl_pointer#2153.motion(187310401, 29.00000000, 21.39843750) -[2618772.750] {Default Queue} wl_pointer#2185.motion(187310401, 29.00000000, 21.39843750) -[2618772.755] {Default Queue} wl_pointer#2217.motion(187310401, 29.00000000, 21.39843750) -[2618772.759] {Default Queue} wl_pointer#2249.motion(187310401, 29.00000000, 21.39843750) -[2618772.763] {Default Queue} wl_pointer#2281.motion(187310401, 29.00000000, 21.39843750) -[2618772.768] {Default Queue} wl_pointer#2313.motion(187310401, 29.00000000, 21.39843750) -[2618772.773] {Default Queue} wl_pointer#2345.motion(187310401, 29.00000000, 21.39843750) -[2618772.778] {Default Queue} wl_pointer#2377.motion(187310401, 29.00000000, 21.39843750) -[2618772.783] {Default Queue} wl_pointer#2409.motion(187310401, 29.00000000, 21.39843750) -[2618772.793] {Default Queue} wl_pointer#2441.motion(187310401, 29.00000000, 21.39843750) -[2618772.800] {Default Queue} wl_pointer#2473.motion(187310401, 29.00000000, 21.39843750) -[2618772.806] {Default Queue} wl_pointer#2498.motion(187310401, 29.00000000, 21.39843750) -[2618772.822] {Default Queue} -> wl_buffer#3683.destroy() -[2618772.828] {Default Queue} -> wl_buffer#94.destroy() -[2618772.834] {Default Queue} -> wl_shm_pool#93.destroy() -[2618772.839] {Default Queue} -> wl_shm_pool#92.destroy() -[2618772.846] {Default Queue} -> wl_surface#91.destroy() -[2618772.897] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3485, fd 575, 640) -[2618772.904] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3486, fd 578, 640) -[2618772.908] {Default Queue} -> wl_shm_pool#3485.create_buffer(new id wl_buffer#3515, 0, 10, 16, 40, 0) -[2618772.913] {Default Queue} -> wl_shm_pool#3486.create_buffer(new id wl_buffer#3516, 0, 10, 16, 40, 0) -[2618772.921] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3483) -[2618772.925] {Default Queue} -> wl_surface#3483.attach(wl_buffer#3515, 0, 0) -[2618772.929] {Default Queue} -> wl_surface#3483.commit() -[2618772.935] {Default Queue} -> wl_surface#3483.attach(wl_buffer#3515, 0, 0) -[2618772.939] {Default Queue} -> wl_surface#3483.commit() -[2618772.943] {Default Queue} wl_pointer#2537.motion(187310401, 29.00000000, 21.39843750) -[2618772.948] {Default Queue} wl_pointer#2569.motion(187310401, 29.00000000, 21.39843750) -[2618772.953] {Default Queue} wl_pointer#2601.motion(187310401, 29.00000000, 21.39843750) -[2618772.957] {Default Queue} wl_pointer#2633.motion(187310401, 29.00000000, 21.39843750) -[2618772.961] {Default Queue} wl_pointer#2665.motion(187310401, 29.00000000, 21.39843750) -[2618772.966] {Default Queue} wl_pointer#2697.motion(187310401, 29.00000000, 21.39843750) -[2618772.970] {Default Queue} wl_pointer#2729.motion(187310401, 29.00000000, 21.39843750) -[2618772.974] {Default Queue} wl_pointer#2761.motion(187310401, 29.00000000, 21.39843750) -[2618772.979] {Default Queue} wl_pointer#2793.motion(187310401, 29.00000000, 21.39843750) -[2618772.983] {Default Queue} wl_pointer#2825.motion(187310401, 29.00000000, 21.39843750) -[2618772.988] {Default Queue} wl_pointer#2857.motion(187310401, 29.00000000, 21.39843750) -[2618772.992] {Default Queue} wl_pointer#2889.motion(187310401, 29.00000000, 21.39843750) -[2618772.996] {Default Queue} wl_pointer#2921.motion(187310401, 29.00000000, 21.39843750) -[2618773.001] {Default Queue} wl_pointer#2953.motion(187310401, 29.00000000, 21.39843750) -[2618773.005] {Default Queue} wl_pointer#2985.motion(187310401, 29.00000000, 21.39843750) -[2618773.009] {Default Queue} wl_pointer#3017.motion(187310401, 29.00000000, 21.39843750) -[2618773.013] {Default Queue} wl_pointer#3049.motion(187310401, 29.00000000, 21.39843750) -[2618773.018] {Default Queue} wl_pointer#3081.motion(187310401, 29.00000000, 21.39843750) -[2618773.022] {Default Queue} wl_pointer#3113.motion(187310401, 29.00000000, 21.39843750) -[2618773.026] {Default Queue} wl_pointer#3145.motion(187310401, 29.00000000, 21.39843750) -[2618773.031] {Default Queue} wl_pointer#3177.motion(187310401, 29.00000000, 21.39843750) -[2618773.035] {Default Queue} wl_pointer#3209.motion(187310401, 29.00000000, 21.39843750) -[2618773.040] {Default Queue} wl_pointer#3241.motion(187310401, 29.00000000, 21.39843750) -[2618773.044] {Default Queue} wl_pointer#3273.motion(187310401, 29.00000000, 21.39843750) -[2618773.048] {Default Queue} wl_pointer#3305.motion(187310401, 29.00000000, 21.39843750) -[2618773.053] {Default Queue} wl_pointer#3337.motion(187310401, 29.00000000, 21.39843750) -[2618773.057] {Default Queue} wl_pointer#3369.motion(187310401, 29.00000000, 21.39843750) -[2618773.062] {Default Queue} wl_pointer#3401.motion(187310401, 29.00000000, 21.39843750) -[2618773.066] {Default Queue} wl_pointer#3433.motion(187310401, 29.00000000, 21.39843750) -[2618773.071] {Default Queue} wl_pointer#3465.motion(187310401, 29.00000000, 21.39843750) -[2618773.076] {Default Queue} wl_pointer#3497.motion(187310401, 29.00000000, 21.39843750) -[2618773.085] {Default Queue} wl_pointer#3529.motion(187310401, 29.00000000, 21.39843750) -[2618773.092] {Default Queue} wl_pointer#3561.motion(187310401, 29.00000000, 21.39843750) -[2618773.096] {Default Queue} wl_pointer#3593.motion(187310401, 29.00000000, 21.39843750) -[2618773.101] {Default Queue} wl_pointer#3625.motion(187310401, 29.00000000, 21.39843750) -[2618773.105] {Default Queue} wl_pointer#3657.motion(187310401, 29.00000000, 21.39843750) -[2618773.109] {Default Queue} wl_pointer#3695.motion(187310401, 29.00000000, 21.39843750) -[2618775.092] {Default Queue} -> wl_surface#3.damage(0, 0, 616, 738) -[2618775.100] {Default Queue} -> wl_surface#3.damage(0, 0, 616, 738) -[2618775.149] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) -[2618775.155] {Default Queue} -> wl_surface#19.commit() -[2618775.233] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) -[2618775.240] {Default Queue} -> wl_surface#19.commit() -[2618775.286] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) -[2618775.292] {Default Queue} -> wl_surface#3.commit() -[2618775.329] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) -[2618775.335] {Default Queue} -> wl_surface#3.commit() -[2618775.367] {Default Queue} wl_pointer#24.motion(187310407, 29.00000000, 21.00000000) -[2618775.372] {Default Queue} wl_pointer#81.motion(187310407, 29.00000000, 21.00000000) -[2618775.378] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618775.382] {Default Queue} wl_pointer#105.motion(187310407, 29.00000000, 21.00000000) -[2618775.387] {Default Queue} wl_pointer#137.motion(187310407, 29.00000000, 21.00000000) -[2618775.391] {Default Queue} wl_pointer#169.motion(187310407, 29.00000000, 21.00000000) -[2618775.395] {Default Queue} wl_pointer#201.motion(187310407, 29.00000000, 21.00000000) -[2618775.399] {Default Queue} wl_pointer#233.motion(187310407, 29.00000000, 21.00000000) -[2618775.404] {Default Queue} wl_pointer#265.motion(187310407, 29.00000000, 21.00000000) -[2618775.408] {Default Queue} wl_pointer#297.motion(187310407, 29.00000000, 21.00000000) -[2618775.412] {Default Queue} wl_pointer#329.motion(187310407, 29.00000000, 21.00000000) -[2618775.417] {Default Queue} wl_pointer#361.motion(187310407, 29.00000000, 21.00000000) -[2618775.421] {Default Queue} wl_pointer#393.motion(187310407, 29.00000000, 21.00000000) -[2618775.425] {Default Queue} wl_pointer#425.motion(187310407, 29.00000000, 21.00000000) -[2618775.430] {Default Queue} wl_pointer#457.motion(187310407, 29.00000000, 21.00000000) -[2618775.434] {Default Queue} wl_pointer#489.motion(187310407, 29.00000000, 21.00000000) -[2618775.438] {Default Queue} wl_pointer#521.motion(187310407, 29.00000000, 21.00000000) -[2618775.442] {Default Queue} wl_pointer#553.motion(187310407, 29.00000000, 21.00000000) -[2618775.447] {Default Queue} wl_pointer#585.motion(187310407, 29.00000000, 21.00000000) -[2618775.451] {Default Queue} wl_pointer#617.motion(187310407, 29.00000000, 21.00000000) -[2618775.455] {Default Queue} wl_pointer#649.motion(187310407, 29.00000000, 21.00000000) -[2618775.460] {Default Queue} wl_pointer#681.motion(187310407, 29.00000000, 21.00000000) -[2618775.464] {Default Queue} wl_pointer#713.motion(187310407, 29.00000000, 21.00000000) -[2618775.468] {Default Queue} wl_pointer#745.motion(187310407, 29.00000000, 21.00000000) -[2618775.473] {Default Queue} wl_pointer#777.motion(187310407, 29.00000000, 21.00000000) -[2618775.477] {Default Queue} wl_pointer#809.motion(187310407, 29.00000000, 21.00000000) -[2618775.481] {Default Queue} wl_pointer#841.motion(187310407, 29.00000000, 21.00000000) -[2618775.485] {Default Queue} wl_pointer#873.motion(187310407, 29.00000000, 21.00000000) -[2618775.490] {Default Queue} wl_pointer#905.motion(187310407, 29.00000000, 21.00000000) -[2618775.494] {Default Queue} wl_pointer#937.motion(187310407, 29.00000000, 21.00000000) -[2618775.498] {Default Queue} wl_pointer#969.motion(187310407, 29.00000000, 21.00000000) -[2618775.502] {Default Queue} wl_pointer#1001.motion(187310407, 29.00000000, 21.00000000) -[2618775.512] {Default Queue} wl_pointer#1033.motion(187310407, 29.00000000, 21.00000000) -[2618775.518] {Default Queue} wl_pointer#1065.motion(187310407, 29.00000000, 21.00000000) -[2618775.522] {Default Queue} wl_pointer#1097.motion(187310407, 29.00000000, 21.00000000) -[2618775.527] {Default Queue} wl_pointer#1129.motion(187310407, 29.00000000, 21.00000000) -[2618775.531] {Default Queue} wl_pointer#1161.motion(187310407, 29.00000000, 21.00000000) -[2618775.535] {Default Queue} wl_pointer#1193.motion(187310407, 29.00000000, 21.00000000) -[2618775.540] {Default Queue} wl_pointer#1225.motion(187310407, 29.00000000, 21.00000000) -[2618775.544] {Default Queue} wl_pointer#1257.motion(187310407, 29.00000000, 21.00000000) -[2618775.548] {Default Queue} wl_pointer#1289.motion(187310407, 29.00000000, 21.00000000) -[2618775.552] {Default Queue} wl_pointer#1321.motion(187310407, 29.00000000, 21.00000000) -[2618775.557] {Default Queue} wl_pointer#1353.motion(187310407, 29.00000000, 21.00000000) -[2618775.561] {Default Queue} wl_pointer#1385.motion(187310407, 29.00000000, 21.00000000) -[2618775.565] {Default Queue} wl_pointer#1417.motion(187310407, 29.00000000, 21.00000000) -[2618775.570] {Default Queue} wl_pointer#1449.motion(187310407, 29.00000000, 21.00000000) -[2618775.574] {Default Queue} wl_pointer#1481.motion(187310407, 29.00000000, 21.00000000) -[2618775.578] {Default Queue} wl_pointer#1513.motion(187310407, 29.00000000, 21.00000000) -[2618775.583] {Default Queue} wl_pointer#1545.motion(187310407, 29.00000000, 21.00000000) -[2618775.587] {Default Queue} wl_pointer#1577.motion(187310407, 29.00000000, 21.00000000) -[2618775.591] {Default Queue} wl_pointer#1609.motion(187310407, 29.00000000, 21.00000000) -[2618775.595] {Default Queue} wl_pointer#1641.motion(187310407, 29.00000000, 21.00000000) -[2618775.600] {Default Queue} wl_pointer#1673.motion(187310407, 29.00000000, 21.00000000) -[2618775.604] {Default Queue} wl_pointer#1705.motion(187310407, 29.00000000, 21.00000000) -[2618775.608] {Default Queue} wl_pointer#1737.motion(187310407, 29.00000000, 21.00000000) -[2618775.613] {Default Queue} wl_pointer#1762.motion(187310407, 29.00000000, 21.00000000) -[2618775.617] {Default Queue} wl_pointer#1801.motion(187310407, 29.00000000, 21.00000000) -[2618775.621] {Default Queue} wl_pointer#1833.motion(187310407, 29.00000000, 21.00000000) -[2618775.625] {Default Queue} wl_pointer#1865.motion(187310407, 29.00000000, 21.00000000) -[2618775.630] {Default Queue} wl_pointer#1897.motion(187310407, 29.00000000, 21.00000000) -[2618775.634] {Default Queue} wl_pointer#1929.motion(187310407, 29.00000000, 21.00000000) -[2618775.638] {Default Queue} wl_pointer#1961.motion(187310407, 29.00000000, 21.00000000) -[2618775.642] {Default Queue} wl_pointer#1993.motion(187310407, 29.00000000, 21.00000000) -[2618775.647] {Default Queue} wl_pointer#2025.motion(187310407, 29.00000000, 21.00000000) -[2618775.651] {Default Queue} wl_pointer#2057.motion(187310407, 29.00000000, 21.00000000) -[2618775.655] {Default Queue} wl_pointer#2089.motion(187310407, 29.00000000, 21.00000000) -[2618775.659] {Default Queue} wl_pointer#2121.motion(187310407, 29.00000000, 21.00000000) -[2618775.664] {Default Queue} wl_pointer#2153.motion(187310407, 29.00000000, 21.00000000) -[2618775.668] {Default Queue} wl_pointer#2185.motion(187310407, 29.00000000, 21.00000000) -[2618775.672] {Default Queue} wl_pointer#2217.motion(187310407, 29.00000000, 21.00000000) -[2618775.677] {Default Queue} wl_pointer#2249.motion(187310407, 29.00000000, 21.00000000) -[2618775.681] {Default Queue} wl_pointer#2281.motion(187310407, 29.00000000, 21.00000000) -[2618775.685] {Default Queue} wl_pointer#2313.motion(187310407, 29.00000000, 21.00000000) -[2618775.690] {Default Queue} wl_pointer#2345.motion(187310407, 29.00000000, 21.00000000) -[2618775.694] {Default Queue} wl_pointer#2377.motion(187310407, 29.00000000, 21.00000000) -[2618775.698] {Default Queue} wl_pointer#2409.motion(187310407, 29.00000000, 21.00000000) -[2618775.703] {Default Queue} wl_pointer#2441.motion(187310407, 29.00000000, 21.00000000) -[2618775.707] {Default Queue} wl_pointer#2473.motion(187310407, 29.00000000, 21.00000000) -[2618775.714] {Default Queue} wl_pointer#2498.motion(187310407, 29.00000000, 21.00000000) -[2618775.728] {Default Queue} -> wl_buffer#3515.destroy() -[2618775.733] {Default Queue} -> wl_buffer#3516.destroy() -[2618775.737] {Default Queue} -> wl_shm_pool#3485.destroy() -[2618775.741] {Default Queue} -> wl_shm_pool#3486.destroy() -[2618775.746] {Default Queue} -> wl_surface#3483.destroy() -[2618775.784] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3674, fd 581, 640) -[2618775.790] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3676, fd 582, 640) -[2618775.794] {Default Queue} -> wl_shm_pool#3674.create_buffer(new id wl_buffer#3675, 0, 10, 16, 40, 0) -[2618775.799] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 10, 16, 40, 0) -[2618775.806] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3677) -[2618775.810] {Default Queue} -> wl_surface#3677.attach(wl_buffer#3675, 0, 0) -[2618775.815] {Default Queue} -> wl_surface#3677.commit() -[2618775.820] {Default Queue} -> wl_surface#3677.attach(wl_buffer#3675, 0, 0) -[2618775.824] {Default Queue} -> wl_surface#3677.commit() -[2618775.828] {Default Queue} wl_pointer#2537.motion(187310407, 29.00000000, 21.00000000) -[2618775.833] {Default Queue} wl_pointer#2569.motion(187310407, 29.00000000, 21.00000000) -[2618775.837] {Default Queue} wl_pointer#2601.motion(187310407, 29.00000000, 21.00000000) -[2618775.841] {Default Queue} wl_pointer#2633.motion(187310407, 29.00000000, 21.00000000) -[2618775.846] {Default Queue} wl_pointer#2665.motion(187310407, 29.00000000, 21.00000000) -[2618775.850] {Default Queue} wl_pointer#2697.motion(187310407, 29.00000000, 21.00000000) -[2618775.854] {Default Queue} wl_pointer#2729.motion(187310407, 29.00000000, 21.00000000) -[2618775.859] {Default Queue} wl_pointer#2761.motion(187310407, 29.00000000, 21.00000000) -[2618775.868] {Default Queue} wl_pointer#2793.motion(187310407, 29.00000000, 21.00000000) -[2618775.872] {Default Queue} wl_pointer#2825.motion(187310407, 29.00000000, 21.00000000) -[2618775.877] {Default Queue} wl_pointer#2857.motion(187310407, 29.00000000, 21.00000000) -[2618775.881] {Default Queue} wl_pointer#2889.motion(187310407, 29.00000000, 21.00000000) -[2618775.885] {Default Queue} wl_pointer#2921.motion(187310407, 29.00000000, 21.00000000) -[2618775.890] {Default Queue} wl_pointer#2953.motion(187310407, 29.00000000, 21.00000000) -[2618775.894] {Default Queue} wl_pointer#2985.motion(187310407, 29.00000000, 21.00000000) -[2618775.898] {Default Queue} wl_pointer#3017.motion(187310407, 29.00000000, 21.00000000) -[2618775.903] {Default Queue} wl_pointer#3049.motion(187310407, 29.00000000, 21.00000000) -[2618775.907] {Default Queue} wl_pointer#3081.motion(187310407, 29.00000000, 21.00000000) -[2618775.911] {Default Queue} wl_pointer#3113.motion(187310407, 29.00000000, 21.00000000) -[2618775.915] {Default Queue} wl_pointer#3145.motion(187310407, 29.00000000, 21.00000000) -[2618775.920] {Default Queue} wl_pointer#3177.motion(187310407, 29.00000000, 21.00000000) -[2618775.924] {Default Queue} wl_pointer#3209.motion(187310407, 29.00000000, 21.00000000) -[2618775.929] {Default Queue} wl_pointer#3241.motion(187310407, 29.00000000, 21.00000000) -[2618775.933] {Default Queue} wl_pointer#3273.motion(187310407, 29.00000000, 21.00000000) -[2618775.937] {Default Queue} wl_pointer#3305.motion(187310407, 29.00000000, 21.00000000) -[2618775.941] {Default Queue} wl_pointer#3337.motion(187310407, 29.00000000, 21.00000000) -[2618775.946] {Default Queue} wl_pointer#3369.motion(187310407, 29.00000000, 21.00000000) -[2618775.950] {Default Queue} wl_pointer#3401.motion(187310407, 29.00000000, 21.00000000) -[2618775.954] {Default Queue} wl_pointer#3433.motion(187310407, 29.00000000, 21.00000000) -[2618775.959] {Default Queue} wl_pointer#3465.motion(187310407, 29.00000000, 21.00000000) -[2618775.963] {Default Queue} wl_pointer#3497.motion(187310407, 29.00000000, 21.00000000) -[2618775.968] {Default Queue} wl_pointer#3529.motion(187310407, 29.00000000, 21.00000000) -[2618775.975] {Default Queue} wl_pointer#3561.motion(187310407, 29.00000000, 21.00000000) -[2618775.981] {Default Queue} wl_pointer#3593.motion(187310407, 29.00000000, 21.00000000) -[2618775.986] {Default Queue} wl_pointer#3625.motion(187310407, 29.00000000, 21.00000000) -[2618775.990] {Default Queue} wl_pointer#3657.motion(187310407, 29.00000000, 21.00000000) -[2618775.994] {Default Queue} wl_pointer#3695.motion(187310407, 29.00000000, 21.00000000) -[2618775.998] {Default Queue} wl_pointer#24.motion(187310407, 29.00000000, 20.60156250) -[2618776.003] {Default Queue} wl_pointer#81.motion(187310407, 29.00000000, 20.60156250) -[2618776.008] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618776.012] {Default Queue} wl_pointer#105.motion(187310407, 29.00000000, 20.60156250) -[2618776.017] {Default Queue} wl_pointer#137.motion(187310407, 29.00000000, 20.60156250) -[2618776.021] {Default Queue} wl_pointer#169.motion(187310407, 29.00000000, 20.60156250) -[2618776.025] {Default Queue} wl_pointer#201.motion(187310407, 29.00000000, 20.60156250) -[2618776.029] {Default Queue} wl_pointer#233.motion(187310407, 29.00000000, 20.60156250) -[2618776.034] {Default Queue} wl_pointer#265.motion(187310407, 29.00000000, 20.60156250) -[2618776.038] {Default Queue} wl_pointer#297.motion(187310407, 29.00000000, 20.60156250) -[2618776.042] {Default Queue} wl_pointer#329.motion(187310407, 29.00000000, 20.60156250) -[2618776.047] {Default Queue} wl_pointer#361.motion(187310407, 29.00000000, 20.60156250) -[2618776.051] {Default Queue} wl_pointer#393.motion(187310407, 29.00000000, 20.60156250) -[2618776.055] {Default Queue} wl_pointer#425.motion(187310407, 29.00000000, 20.60156250) -[2618776.060] {Default Queue} wl_pointer#457.motion(187310407, 29.00000000, 20.60156250) -[2618776.064] {Default Queue} wl_pointer#489.motion(187310407, 29.00000000, 20.60156250) -[2618776.068] {Default Queue} wl_pointer#521.motion(187310407, 29.00000000, 20.60156250) -[2618776.072] {Default Queue} wl_pointer#553.motion(187310407, 29.00000000, 20.60156250) -[2618776.077] {Default Queue} wl_pointer#585.motion(187310407, 29.00000000, 20.60156250) -[2618776.081] {Default Queue} wl_pointer#617.motion(187310407, 29.00000000, 20.60156250) -[2618776.085] {Default Queue} wl_pointer#649.motion(187310407, 29.00000000, 20.60156250) -[2618776.090] {Default Queue} wl_pointer#681.motion(187310407, 29.00000000, 20.60156250) -[2618776.094] {Default Queue} wl_pointer#713.motion(187310407, 29.00000000, 20.60156250) -[2618776.098] {Default Queue} wl_pointer#745.motion(187310407, 29.00000000, 20.60156250) -[2618776.102] {Default Queue} wl_pointer#777.motion(187310407, 29.00000000, 20.60156250) -[2618776.107] {Default Queue} wl_pointer#809.motion(187310407, 29.00000000, 20.60156250) -[2618776.111] {Default Queue} wl_pointer#841.motion(187310407, 29.00000000, 20.60156250) -[2618776.115] {Default Queue} wl_pointer#873.motion(187310407, 29.00000000, 20.60156250) -[2618776.120] {Default Queue} wl_pointer#905.motion(187310407, 29.00000000, 20.60156250) -[2618776.124] {Default Queue} wl_pointer#937.motion(187310407, 29.00000000, 20.60156250) -[2618776.128] {Default Queue} wl_pointer#969.motion(187310407, 29.00000000, 20.60156250) -[2618776.132] {Default Queue} wl_pointer#1001.motion(187310407, 29.00000000, 20.60156250) -[2618776.137] {Default Queue} wl_pointer#1033.motion(187310407, 29.00000000, 20.60156250) -[2618776.141] {Default Queue} wl_pointer#1065.motion(187310407, 29.00000000, 20.60156250) -[2618776.145] {Default Queue} wl_pointer#1097.motion(187310407, 29.00000000, 20.60156250) -[2618776.150] {Default Queue} wl_pointer#1129.motion(187310407, 29.00000000, 20.60156250) -[2618776.154] {Default Queue} wl_pointer#1161.motion(187310407, 29.00000000, 20.60156250) -[2618776.158] {Default Queue} wl_pointer#1193.motion(187310407, 29.00000000, 20.60156250) -[2618776.162] {Default Queue} wl_pointer#1225.motion(187310407, 29.00000000, 20.60156250) -[2618776.167] {Default Queue} wl_pointer#1257.motion(187310407, 29.00000000, 20.60156250) -[2618776.171] {Default Queue} wl_pointer#1289.motion(187310407, 29.00000000, 20.60156250) -[2618776.178] {Default Queue} wl_pointer#1321.motion(187310407, 29.00000000, 20.60156250) -[2618776.184] {Default Queue} wl_pointer#1353.motion(187310407, 29.00000000, 20.60156250) -[2618776.188] {Default Queue} wl_pointer#1385.motion(187310407, 29.00000000, 20.60156250) -[2618776.193] {Default Queue} wl_pointer#1417.motion(187310407, 29.00000000, 20.60156250) -[2618776.197] {Default Queue} wl_pointer#1449.motion(187310407, 29.00000000, 20.60156250) -[2618776.201] {Default Queue} wl_pointer#1481.motion(187310407, 29.00000000, 20.60156250) -[2618776.205] {Default Queue} wl_pointer#1513.motion(187310407, 29.00000000, 20.60156250) -[2618776.210] {Default Queue} wl_pointer#1545.motion(187310407, 29.00000000, 20.60156250) -[2618776.214] {Default Queue} wl_pointer#1577.motion(187310407, 29.00000000, 20.60156250) -[2618776.218] {Default Queue} wl_pointer#1609.motion(187310407, 29.00000000, 20.60156250) -[2618776.222] {Default Queue} wl_pointer#1641.motion(187310407, 29.00000000, 20.60156250) -[2618776.227] {Default Queue} wl_pointer#1673.motion(187310407, 29.00000000, 20.60156250) -[2618776.231] {Default Queue} wl_pointer#1705.motion(187310407, 29.00000000, 20.60156250) -[2618776.235] {Default Queue} wl_pointer#1737.motion(187310407, 29.00000000, 20.60156250) -[2618776.240] {Default Queue} wl_pointer#1762.motion(187310407, 29.00000000, 20.60156250) -[2618776.244] {Default Queue} wl_pointer#1801.motion(187310407, 29.00000000, 20.60156250) -[2618776.248] {Default Queue} wl_pointer#1833.motion(187310407, 29.00000000, 20.60156250) -[2618776.252] {Default Queue} wl_pointer#1865.motion(187310407, 29.00000000, 20.60156250) -[2618776.257] {Default Queue} wl_pointer#1897.motion(187310407, 29.00000000, 20.60156250) -[2618776.261] {Default Queue} wl_pointer#1929.motion(187310407, 29.00000000, 20.60156250) -[2618776.265] {Default Queue} wl_pointer#1961.motion(187310407, 29.00000000, 20.60156250) -[2618776.270] {Default Queue} wl_pointer#1993.motion(187310407, 29.00000000, 20.60156250) -[2618776.274] {Default Queue} wl_pointer#2025.motion(187310407, 29.00000000, 20.60156250) -[2618776.278] {Default Queue} wl_pointer#2057.motion(187310407, 29.00000000, 20.60156250) -[2618776.283] {Default Queue} wl_pointer#2089.motion(187310407, 29.00000000, 20.60156250) -[2618776.287] {Default Queue} wl_pointer#2121.motion(187310407, 29.00000000, 20.60156250) -[2618776.291] {Default Queue} wl_pointer#2153.motion(187310407, 29.00000000, 20.60156250) -[2618776.295] {Default Queue} wl_pointer#2185.motion(187310407, 29.00000000, 20.60156250) -[2618776.300] {Default Queue} wl_pointer#2217.motion(187310407, 29.00000000, 20.60156250) -[2618776.304] {Default Queue} wl_pointer#2249.motion(187310407, 29.00000000, 20.60156250) -[2618776.308] {Default Queue} wl_pointer#2281.motion(187310407, 29.00000000, 20.60156250) -[2618776.313] {Default Queue} wl_pointer#2313.motion(187310407, 29.00000000, 20.60156250) -[2618776.317] {Default Queue} wl_pointer#2345.motion(187310407, 29.00000000, 20.60156250) -[2618776.322] {Default Queue} wl_pointer#2377.motion(187310407, 29.00000000, 20.60156250) -[2618776.326] {Default Queue} wl_pointer#2409.motion(187310407, 29.00000000, 20.60156250) -[2618776.330] {Default Queue} wl_pointer#2441.motion(187310407, 29.00000000, 20.60156250) -[2618776.334] {Default Queue} wl_pointer#2473.motion(187310407, 29.00000000, 20.60156250) -[2618776.339] {Default Queue} wl_pointer#2498.motion(187310407, 29.00000000, 20.60156250) -[2618776.349] {Default Queue} -> wl_buffer#3675.destroy() -[2618776.356] {Default Queue} -> wl_buffer#3678.destroy() -[2618776.360] {Default Queue} -> wl_shm_pool#3674.destroy() -[2618776.364] {Default Queue} -> wl_shm_pool#3676.destroy() -[2618776.368] {Default Queue} -> wl_surface#3677.destroy() -[2618776.399] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2506, fd 583, 640) -[2618776.405] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2503, fd 584, 640) -[2618776.410] {Default Queue} -> wl_shm_pool#2506.create_buffer(new id wl_buffer#2502, 0, 10, 16, 40, 0) -[2618776.414] {Default Queue} -> wl_shm_pool#2503.create_buffer(new id wl_buffer#2505, 0, 10, 16, 40, 0) -[2618776.427] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#2504) -[2618776.435] {Default Queue} -> wl_surface#2504.attach(wl_buffer#2502, 0, 0) -[2618776.441] {Default Queue} -> wl_surface#2504.commit() -[2618776.446] {Default Queue} -> wl_surface#2504.attach(wl_buffer#2502, 0, 0) -[2618776.451] {Default Queue} -> wl_surface#2504.commit() -[2618776.455] {Default Queue} wl_pointer#2537.motion(187310407, 29.00000000, 20.60156250) -[2618776.460] {Default Queue} wl_pointer#2569.motion(187310407, 29.00000000, 20.60156250) -[2618776.465] {Default Queue} wl_pointer#2601.motion(187310407, 29.00000000, 20.60156250) -[2618776.469] {Default Queue} wl_pointer#2633.motion(187310407, 29.00000000, 20.60156250) -[2618776.473] {Default Queue} wl_pointer#2665.motion(187310407, 29.00000000, 20.60156250) -[2618776.478] {Default Queue} wl_pointer#2697.motion(187310407, 29.00000000, 20.60156250) -[2618776.482] {Default Queue} wl_pointer#2729.motion(187310407, 29.00000000, 20.60156250) -[2618776.486] {Default Queue} wl_pointer#2761.motion(187310407, 29.00000000, 20.60156250) -[2618776.490] {Default Queue} wl_pointer#2793.motion(187310407, 29.00000000, 20.60156250) -[2618776.495] {Default Queue} wl_pointer#2825.motion(187310407, 29.00000000, 20.60156250) -[2618776.499] {Default Queue} wl_pointer#2857.motion(187310407, 29.00000000, 20.60156250) -[2618776.539] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) -[2618776.546] {Default Queue} -> wl_surface#3.commit() -[2618776.587] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) -[2618776.594] {Default Queue} -> wl_surface#19.commit() -[2618776.640] {Display Queue} wl_display#1.delete_id(3452) -[2618776.646] {Display Queue} wl_display#1.delete_id(3451) -[2618776.650] {Display Queue} wl_display#1.delete_id(3518) -[2618776.654] {Display Queue} wl_display#1.delete_id(3517) -[2618776.658] {Display Queue} wl_display#1.delete_id(3454) -[2618776.662] {Display Queue} wl_display#1.delete_id(3292) -[2618776.665] {Display Queue} wl_display#1.delete_id(3293) -[2618776.669] {Display Queue} wl_display#1.delete_id(3484) -[2618776.673] {Display Queue} wl_display#1.delete_id(3291) -[2618776.677] {Display Queue} wl_display#1.delete_id(3294) -[2618776.681] {Display Queue} wl_display#1.delete_id(3684) -[2618776.685] {Display Queue} wl_display#1.delete_id(3681) -[2618776.689] {Display Queue} wl_display#1.delete_id(3682) -[2618776.693] {Display Queue} wl_display#1.delete_id(3679) -[2618776.697] {Display Queue} wl_display#1.delete_id(3671) -[2618776.701] {Default Queue} wl_pointer#2889.motion(187310407, 29.00000000, 20.60156250) -[2618776.705] {Default Queue} wl_pointer#2921.motion(187310407, 29.00000000, 20.60156250) -[2618776.709] {Default Queue} wl_pointer#2953.motion(187310407, 29.00000000, 20.60156250) -[2618776.714] {Default Queue} wl_pointer#2985.motion(187310407, 29.00000000, 20.60156250) -[2618776.718] {Default Queue} wl_pointer#3017.motion(187310407, 29.00000000, 20.60156250) -[2618776.722] {Default Queue} wl_pointer#3049.motion(187310407, 29.00000000, 20.60156250) -[2618776.727] {Default Queue} wl_pointer#3081.motion(187310407, 29.00000000, 20.60156250) -[2618776.731] {Default Queue} wl_pointer#3113.motion(187310407, 29.00000000, 20.60156250) -[2618776.735] {Default Queue} wl_pointer#3145.motion(187310407, 29.00000000, 20.60156250) -[2618776.740] {Default Queue} wl_pointer#3177.motion(187310407, 29.00000000, 20.60156250) -[2618776.744] {Default Queue} wl_pointer#3209.motion(187310407, 29.00000000, 20.60156250) -[2618776.748] {Default Queue} wl_pointer#3241.motion(187310407, 29.00000000, 20.60156250) -[2618776.753] {Default Queue} wl_pointer#3273.motion(187310407, 29.00000000, 20.60156250) -[2618776.757] {Default Queue} wl_pointer#3305.motion(187310407, 29.00000000, 20.60156250) -[2618776.761] {Default Queue} wl_pointer#3337.motion(187310407, 29.00000000, 20.60156250) -[2618776.765] {Default Queue} wl_pointer#3369.motion(187310407, 29.00000000, 20.60156250) -[2618776.770] {Default Queue} wl_pointer#3401.motion(187310407, 29.00000000, 20.60156250) -[2618776.774] {Default Queue} wl_pointer#3433.motion(187310407, 29.00000000, 20.60156250) -[2618776.785] {Default Queue} wl_pointer#3465.motion(187310407, 29.00000000, 20.60156250) -[2618776.791] {Default Queue} wl_pointer#3497.motion(187310407, 29.00000000, 20.60156250) -[2618776.796] {Default Queue} wl_pointer#3529.motion(187310407, 29.00000000, 20.60156250) -[2618776.800] {Default Queue} wl_pointer#3561.motion(187310407, 29.00000000, 20.60156250) -[2618776.804] {Default Queue} wl_pointer#3593.motion(187310407, 29.00000000, 20.60156250) -[2618776.809] {Default Queue} wl_pointer#3625.motion(187310407, 29.00000000, 20.60156250) -[2618776.813] {Default Queue} wl_pointer#3657.motion(187310407, 29.00000000, 20.60156250) -[2618776.817] {Default Queue} wl_pointer#3695.motion(187310407, 29.00000000, 20.60156250) -[2618776.821] {Default Queue} wl_pointer#24.motion(187310407, 29.00000000, 20.19921875) -[2618776.825] {Default Queue} wl_pointer#81.motion(187310407, 29.00000000, 20.19921875) -[2618776.831] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618776.835] {Default Queue} wl_pointer#105.motion(187310407, 29.00000000, 20.19921875) -[2618776.839] {Default Queue} wl_pointer#137.motion(187310407, 29.00000000, 20.19921875) -[2618776.843] {Default Queue} wl_pointer#169.motion(187310407, 29.00000000, 20.19921875) -[2618776.848] {Default Queue} wl_pointer#201.motion(187310407, 29.00000000, 20.19921875) -[2618776.852] {Default Queue} wl_pointer#233.motion(187310407, 29.00000000, 20.19921875) -[2618776.856] {Default Queue} wl_pointer#265.motion(187310407, 29.00000000, 20.19921875) -[2618776.868] {Default Queue} wl_pointer#297.motion(187310407, 29.00000000, 20.19921875) -[2618776.874] {Default Queue} wl_pointer#329.motion(187310407, 29.00000000, 20.19921875) -[2618776.878] {Default Queue} wl_pointer#361.motion(187310407, 29.00000000, 20.19921875) -[2618776.883] {Default Queue} wl_pointer#393.motion(187310407, 29.00000000, 20.19921875) -[2618776.887] {Default Queue} wl_pointer#425.motion(187310407, 29.00000000, 20.19921875) -[2618776.891] {Default Queue} wl_pointer#457.motion(187310407, 29.00000000, 20.19921875) -[2618776.895] {Default Queue} wl_pointer#489.motion(187310407, 29.00000000, 20.19921875) -[2618776.900] {Default Queue} wl_pointer#521.motion(187310407, 29.00000000, 20.19921875) -[2618776.904] {Default Queue} wl_pointer#553.motion(187310407, 29.00000000, 20.19921875) -[2618776.908] {Default Queue} wl_pointer#585.motion(187310407, 29.00000000, 20.19921875) -[2618776.913] {Default Queue} wl_pointer#617.motion(187310407, 29.00000000, 20.19921875) -[2618776.917] {Default Queue} wl_pointer#649.motion(187310407, 29.00000000, 20.19921875) -[2618776.921] {Default Queue} wl_pointer#681.motion(187310407, 29.00000000, 20.19921875) -[2618776.925] {Default Queue} wl_pointer#713.motion(187310407, 29.00000000, 20.19921875) -[2618776.930] {Default Queue} wl_pointer#745.motion(187310407, 29.00000000, 20.19921875) -[2618776.934] {Default Queue} wl_pointer#777.motion(187310407, 29.00000000, 20.19921875) -[2618776.939] {Default Queue} wl_pointer#809.motion(187310407, 29.00000000, 20.19921875) -[2618776.943] {Default Queue} wl_pointer#841.motion(187310407, 29.00000000, 20.19921875) -[2618776.947] {Default Queue} wl_pointer#873.motion(187310407, 29.00000000, 20.19921875) -[2618776.951] {Default Queue} wl_pointer#905.motion(187310407, 29.00000000, 20.19921875) -[2618776.956] {Default Queue} wl_pointer#937.motion(187310407, 29.00000000, 20.19921875) -[2618776.960] {Default Queue} wl_pointer#969.motion(187310407, 29.00000000, 20.19921875) -[2618776.964] {Default Queue} wl_pointer#1001.motion(187310407, 29.00000000, 20.19921875) -[2618776.968] {Default Queue} wl_pointer#1033.motion(187310407, 29.00000000, 20.19921875) -[2618776.973] {Default Queue} wl_pointer#1065.motion(187310407, 29.00000000, 20.19921875) -[2618776.977] {Default Queue} wl_pointer#1097.motion(187310407, 29.00000000, 20.19921875) -[2618776.981] {Default Queue} wl_pointer#1129.motion(187310407, 29.00000000, 20.19921875) -[2618776.985] {Default Queue} wl_pointer#1161.motion(187310407, 29.00000000, 20.19921875) -[2618776.993] {Default Queue} wl_pointer#1193.motion(187310407, 29.00000000, 20.19921875) -[2618776.999] {Default Queue} wl_pointer#1225.motion(187310407, 29.00000000, 20.19921875) -[2618777.003] {Default Queue} wl_pointer#1257.motion(187310407, 29.00000000, 20.19921875) -[2618777.007] {Default Queue} wl_pointer#1289.motion(187310407, 29.00000000, 20.19921875) -[2618777.012] {Default Queue} wl_pointer#1321.motion(187310407, 29.00000000, 20.19921875) -[2618777.016] {Default Queue} wl_pointer#1353.motion(187310407, 29.00000000, 20.19921875) -[2618777.020] {Default Queue} wl_pointer#1385.motion(187310407, 29.00000000, 20.19921875) -[2618777.024] {Default Queue} wl_pointer#1417.motion(187310407, 29.00000000, 20.19921875) -[2618777.029] {Default Queue} wl_pointer#1449.motion(187310407, 29.00000000, 20.19921875) -[2618777.033] {Default Queue} wl_pointer#1481.motion(187310407, 29.00000000, 20.19921875) -[2618777.037] {Default Queue} wl_pointer#1513.motion(187310407, 29.00000000, 20.19921875) -[2618777.041] {Default Queue} wl_pointer#1545.motion(187310407, 29.00000000, 20.19921875) -[2618777.046] {Default Queue} wl_pointer#1577.motion(187310407, 29.00000000, 20.19921875) -[2618777.050] {Default Queue} wl_pointer#1609.motion(187310407, 29.00000000, 20.19921875) -[2618777.054] {Default Queue} wl_pointer#1641.motion(187310407, 29.00000000, 20.19921875) -[2618777.058] {Default Queue} wl_pointer#1673.motion(187310407, 29.00000000, 20.19921875) -[2618777.063] {Default Queue} wl_pointer#1705.motion(187310407, 29.00000000, 20.19921875) -[2618777.067] {Default Queue} wl_pointer#1737.motion(187310407, 29.00000000, 20.19921875) -[2618777.071] {Default Queue} wl_pointer#1762.motion(187310407, 29.00000000, 20.19921875) -[2618777.076] {Default Queue} wl_pointer#1801.motion(187310407, 29.00000000, 20.19921875) -[2618777.080] {Default Queue} wl_pointer#1833.motion(187310407, 29.00000000, 20.19921875) -[2618777.084] {Default Queue} wl_pointer#1865.motion(187310407, 29.00000000, 20.19921875) -[2618777.088] {Default Queue} wl_pointer#1897.motion(187310407, 29.00000000, 20.19921875) -[2618777.093] {Default Queue} wl_pointer#1929.motion(187310407, 29.00000000, 20.19921875) -[2618777.097] {Default Queue} wl_pointer#1961.motion(187310407, 29.00000000, 20.19921875) -[2618777.101] {Default Queue} wl_pointer#1993.motion(187310407, 29.00000000, 20.19921875) -[2618777.106] {Default Queue} wl_pointer#2025.motion(187310407, 29.00000000, 20.19921875) -[2618777.110] {Default Queue} wl_pointer#2057.motion(187310407, 29.00000000, 20.19921875) -[2618777.114] {Default Queue} wl_pointer#2089.motion(187310407, 29.00000000, 20.19921875) -[2618777.118] {Default Queue} wl_pointer#2121.motion(187310407, 29.00000000, 20.19921875) -[2618777.123] {Default Queue} wl_pointer#2153.motion(187310407, 29.00000000, 20.19921875) -[2618777.127] {Default Queue} wl_pointer#2185.motion(187310407, 29.00000000, 20.19921875) -[2618777.131] {Default Queue} wl_pointer#2217.motion(187310407, 29.00000000, 20.19921875) -[2618777.136] {Default Queue} wl_pointer#2249.motion(187310407, 29.00000000, 20.19921875) -[2618777.140] {Default Queue} wl_pointer#2281.motion(187310407, 29.00000000, 20.19921875) -[2618777.144] {Default Queue} wl_pointer#2313.motion(187310407, 29.00000000, 20.19921875) -[2618777.149] {Default Queue} wl_pointer#2345.motion(187310407, 29.00000000, 20.19921875) -[2618777.153] {Default Queue} wl_pointer#2377.motion(187310407, 29.00000000, 20.19921875) -[2618777.157] {Default Queue} wl_pointer#2409.motion(187310407, 29.00000000, 20.19921875) -[2618777.162] {Default Queue} wl_pointer#2441.motion(187310407, 29.00000000, 20.19921875) -[2618777.166] {Default Queue} wl_pointer#2473.motion(187310407, 29.00000000, 20.19921875) -[2618777.170] {Default Queue} wl_pointer#2498.motion(187310407, 29.00000000, 20.19921875) -[2618777.181] {Default Queue} -> wl_buffer#2502.destroy() -[2618777.186] {Default Queue} -> wl_buffer#2505.destroy() -[2618777.190] {Default Queue} -> wl_shm_pool#2506.destroy() -[2618777.194] {Default Queue} -> wl_shm_pool#2503.destroy() -[2618777.199] {Default Queue} -> wl_surface#2504.destroy() -[2618777.234] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3671, fd 575, 640) -[2618777.243] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 578, 640) -[2618777.249] {Default Queue} -> wl_shm_pool#3671.create_buffer(new id wl_buffer#3682, 0, 10, 16, 40, 0) -[2618777.254] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) -[2618777.260] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3684) -[2618777.265] {Default Queue} -> wl_surface#3684.attach(wl_buffer#3682, 0, 0) -[2618777.269] {Default Queue} -> wl_surface#3684.commit() -[2618777.274] {Default Queue} -> wl_surface#3684.attach(wl_buffer#3682, 0, 0) -[2618777.278] {Default Queue} -> wl_surface#3684.commit() -[2618777.283] {Default Queue} wl_pointer#2537.motion(187310407, 29.00000000, 20.19921875) -[2618777.287] {Default Queue} wl_pointer#2569.motion(187310407, 29.00000000, 20.19921875) -[2618777.291] {Default Queue} wl_pointer#2601.motion(187310407, 29.00000000, 20.19921875) -[2618777.296] {Default Queue} wl_pointer#2633.motion(187310407, 29.00000000, 20.19921875) -[2618777.300] {Default Queue} wl_pointer#2665.motion(187310407, 29.00000000, 20.19921875) -[2618777.304] {Default Queue} wl_pointer#2697.motion(187310407, 29.00000000, 20.19921875) -[2618777.309] {Default Queue} wl_pointer#2729.motion(187310407, 29.00000000, 20.19921875) -[2618777.313] {Default Queue} wl_pointer#2761.motion(187310407, 29.00000000, 20.19921875) -[2618777.317] {Default Queue} wl_pointer#2793.motion(187310407, 29.00000000, 20.19921875) -[2618777.322] {Default Queue} wl_pointer#2825.motion(187310407, 29.00000000, 20.19921875) -[2618777.326] {Default Queue} wl_pointer#2857.motion(187310407, 29.00000000, 20.19921875) -[2618777.331] {Default Queue} wl_pointer#2889.motion(187310407, 29.00000000, 20.19921875) -[2618777.335] {Default Queue} wl_pointer#2921.motion(187310407, 29.00000000, 20.19921875) -[2618777.339] {Default Queue} wl_pointer#2953.motion(187310407, 29.00000000, 20.19921875) -[2618777.343] {Default Queue} wl_pointer#2985.motion(187310407, 29.00000000, 20.19921875) -[2618777.348] {Default Queue} wl_pointer#3017.motion(187310407, 29.00000000, 20.19921875) -[2618777.352] {Default Queue} wl_pointer#3049.motion(187310407, 29.00000000, 20.19921875) -[2618777.356] {Default Queue} wl_pointer#3081.motion(187310407, 29.00000000, 20.19921875) -[2618777.361] {Default Queue} wl_pointer#3113.motion(187310407, 29.00000000, 20.19921875) -[2618777.365] {Default Queue} wl_pointer#3145.motion(187310407, 29.00000000, 20.19921875) -[2618777.369] {Default Queue} wl_pointer#3177.motion(187310407, 29.00000000, 20.19921875) -[2618777.373] {Default Queue} wl_pointer#3209.motion(187310407, 29.00000000, 20.19921875) -[2618777.378] {Default Queue} wl_pointer#3241.motion(187310407, 29.00000000, 20.19921875) -[2618777.382] {Default Queue} wl_pointer#3273.motion(187310407, 29.00000000, 20.19921875) -[2618777.387] {Default Queue} wl_pointer#3305.motion(187310407, 29.00000000, 20.19921875) -[2618777.391] {Default Queue} wl_pointer#3337.motion(187310407, 29.00000000, 20.19921875) -[2618777.395] {Default Queue} wl_pointer#3369.motion(187310407, 29.00000000, 20.19921875) -[2618777.399] {Default Queue} wl_pointer#3401.motion(187310407, 29.00000000, 20.19921875) -[2618777.403] {Default Queue} wl_pointer#3433.motion(187310407, 29.00000000, 20.19921875) -[2618777.408] {Default Queue} wl_pointer#3465.motion(187310407, 29.00000000, 20.19921875) -[2618777.412] {Default Queue} wl_pointer#3497.motion(187310407, 29.00000000, 20.19921875) -[2618777.417] {Default Queue} wl_pointer#3529.motion(187310407, 29.00000000, 20.19921875) -[2618777.421] {Default Queue} wl_pointer#3561.motion(187310407, 29.00000000, 20.19921875) -[2618777.425] {Default Queue} wl_pointer#3593.motion(187310407, 29.00000000, 20.19921875) -[2618777.430] {Default Queue} wl_pointer#3625.motion(187310407, 29.00000000, 20.19921875) -[2618777.434] {Default Queue} wl_pointer#3657.motion(187310407, 29.00000000, 20.19921875) -[2618777.438] {Default Queue} wl_pointer#3695.motion(187310407, 29.00000000, 20.19921875) -[2618777.442] {Default Queue} wl_pointer#24.motion(187310411, 29.00000000, 19.80078125) -[2618777.451] {Default Queue} wl_pointer#81.motion(187310411, 29.00000000, 19.80078125) -[2618777.457] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618777.462] {Default Queue} wl_pointer#105.motion(187310411, 29.00000000, 19.80078125) -[2618777.466] {Default Queue} wl_pointer#137.motion(187310411, 29.00000000, 19.80078125) -[2618777.470] {Default Queue} wl_pointer#169.motion(187310411, 29.00000000, 19.80078125) -[2618777.475] {Default Queue} wl_pointer#201.motion(187310411, 29.00000000, 19.80078125) -[2618777.479] {Default Queue} wl_pointer#233.motion(187310411, 29.00000000, 19.80078125) -[2618777.483] {Default Queue} wl_pointer#265.motion(187310411, 29.00000000, 19.80078125) -[2618777.488] {Default Queue} wl_pointer#297.motion(187310411, 29.00000000, 19.80078125) -[2618777.492] {Default Queue} wl_pointer#329.motion(187310411, 29.00000000, 19.80078125) -[2618777.496] {Default Queue} wl_pointer#361.motion(187310411, 29.00000000, 19.80078125) -[2618777.500] {Default Queue} wl_pointer#393.motion(187310411, 29.00000000, 19.80078125) -[2618777.505] {Default Queue} wl_pointer#425.motion(187310411, 29.00000000, 19.80078125) -[2618777.509] {Default Queue} wl_pointer#457.motion(187310411, 29.00000000, 19.80078125) -[2618777.513] {Default Queue} wl_pointer#489.motion(187310411, 29.00000000, 19.80078125) -[2618777.518] {Default Queue} wl_pointer#521.motion(187310411, 29.00000000, 19.80078125) -[2618777.522] {Default Queue} wl_pointer#553.motion(187310411, 29.00000000, 19.80078125) -[2618777.526] {Default Queue} wl_pointer#585.motion(187310411, 29.00000000, 19.80078125) -[2618777.530] {Default Queue} wl_pointer#617.motion(187310411, 29.00000000, 19.80078125) -[2618777.535] {Default Queue} wl_pointer#649.motion(187310411, 29.00000000, 19.80078125) -[2618777.539] {Default Queue} wl_pointer#681.motion(187310411, 29.00000000, 19.80078125) -[2618777.543] {Default Queue} wl_pointer#713.motion(187310411, 29.00000000, 19.80078125) -[2618777.548] {Default Queue} wl_pointer#745.motion(187310411, 29.00000000, 19.80078125) -[2618777.552] {Default Queue} wl_pointer#777.motion(187310411, 29.00000000, 19.80078125) -[2618777.556] {Default Queue} wl_pointer#809.motion(187310411, 29.00000000, 19.80078125) -[2618777.560] {Default Queue} wl_pointer#841.motion(187310411, 29.00000000, 19.80078125) -[2618777.565] {Default Queue} wl_pointer#873.motion(187310411, 29.00000000, 19.80078125) -[2618777.569] {Default Queue} wl_pointer#905.motion(187310411, 29.00000000, 19.80078125) -[2618777.573] {Default Queue} wl_pointer#937.motion(187310411, 29.00000000, 19.80078125) -[2618777.577] {Default Queue} wl_pointer#969.motion(187310411, 29.00000000, 19.80078125) -[2618777.582] {Default Queue} wl_pointer#1001.motion(187310411, 29.00000000, 19.80078125) -[2618777.586] {Default Queue} wl_pointer#1033.motion(187310411, 29.00000000, 19.80078125) -[2618777.590] {Default Queue} wl_pointer#1065.motion(187310411, 29.00000000, 19.80078125) -[2618777.595] {Default Queue} wl_pointer#1097.motion(187310411, 29.00000000, 19.80078125) -[2618777.599] {Default Queue} wl_pointer#1129.motion(187310411, 29.00000000, 19.80078125) -[2618777.603] {Default Queue} wl_pointer#1161.motion(187310411, 29.00000000, 19.80078125) -[2618777.608] {Default Queue} wl_pointer#1193.motion(187310411, 29.00000000, 19.80078125) -[2618777.612] {Default Queue} wl_pointer#1225.motion(187310411, 29.00000000, 19.80078125) -[2618777.616] {Default Queue} wl_pointer#1257.motion(187310411, 29.00000000, 19.80078125) -[2618777.620] {Default Queue} wl_pointer#1289.motion(187310411, 29.00000000, 19.80078125) -[2618777.625] {Default Queue} wl_pointer#1321.motion(187310411, 29.00000000, 19.80078125) -[2618777.629] {Default Queue} wl_pointer#1353.motion(187310411, 29.00000000, 19.80078125) -[2618777.633] {Default Queue} wl_pointer#1385.motion(187310411, 29.00000000, 19.80078125) -[2618777.637] {Default Queue} wl_pointer#1417.motion(187310411, 29.00000000, 19.80078125) -[2618777.642] {Default Queue} wl_pointer#1449.motion(187310411, 29.00000000, 19.80078125) -[2618777.649] {Default Queue} wl_pointer#1481.motion(187310411, 29.00000000, 19.80078125) -[2618777.654] {Default Queue} wl_pointer#1513.motion(187310411, 29.00000000, 19.80078125) -[2618777.659] {Default Queue} wl_pointer#1545.motion(187310411, 29.00000000, 19.80078125) -[2618777.663] {Default Queue} wl_pointer#1577.motion(187310411, 29.00000000, 19.80078125) -[2618777.668] {Default Queue} wl_pointer#1609.motion(187310411, 29.00000000, 19.80078125) -[2618777.672] {Default Queue} wl_pointer#1641.motion(187310411, 29.00000000, 19.80078125) -[2618777.676] {Default Queue} wl_pointer#1673.motion(187310411, 29.00000000, 19.80078125) -[2618777.680] {Default Queue} wl_pointer#1705.motion(187310411, 29.00000000, 19.80078125) -[2618777.685] {Default Queue} wl_pointer#1737.motion(187310411, 29.00000000, 19.80078125) -[2618777.689] {Default Queue} wl_pointer#1762.motion(187310411, 29.00000000, 19.80078125) -[2618777.693] {Default Queue} wl_pointer#1801.motion(187310411, 29.00000000, 19.80078125) -[2618777.698] {Default Queue} wl_pointer#1833.motion(187310411, 29.00000000, 19.80078125) -[2618777.702] {Default Queue} wl_pointer#1865.motion(187310411, 29.00000000, 19.80078125) -[2618777.706] {Default Queue} wl_pointer#1897.motion(187310411, 29.00000000, 19.80078125) -[2618777.710] {Default Queue} wl_pointer#1929.motion(187310411, 29.00000000, 19.80078125) -[2618777.715] {Default Queue} wl_pointer#1961.motion(187310411, 29.00000000, 19.80078125) -[2618777.719] {Default Queue} wl_pointer#1993.motion(187310411, 29.00000000, 19.80078125) -[2618777.723] {Default Queue} wl_pointer#2025.motion(187310411, 29.00000000, 19.80078125) -[2618777.727] {Default Queue} wl_pointer#2057.motion(187310411, 29.00000000, 19.80078125) -[2618777.732] {Default Queue} wl_pointer#2089.motion(187310411, 29.00000000, 19.80078125) -[2618777.736] {Default Queue} wl_pointer#2121.motion(187310411, 29.00000000, 19.80078125) -[2618777.740] {Default Queue} wl_pointer#2153.motion(187310411, 29.00000000, 19.80078125) -[2618777.745] {Default Queue} wl_pointer#2185.motion(187310411, 29.00000000, 19.80078125) -[2618777.749] {Default Queue} wl_pointer#2217.motion(187310411, 29.00000000, 19.80078125) -[2618777.753] {Default Queue} wl_pointer#2249.motion(187310411, 29.00000000, 19.80078125) -[2618777.757] {Default Queue} wl_pointer#2281.motion(187310411, 29.00000000, 19.80078125) -[2618777.762] {Default Queue} wl_pointer#2313.motion(187310411, 29.00000000, 19.80078125) -[2618777.766] {Default Queue} wl_pointer#2345.motion(187310411, 29.00000000, 19.80078125) -[2618777.772] {Default Queue} wl_pointer#2377.motion(187310411, 29.00000000, 19.80078125) -[2618777.777] {Default Queue} wl_pointer#2409.motion(187310411, 29.00000000, 19.80078125) -[2618777.783] {Default Queue} wl_pointer#2441.motion(187310411, 29.00000000, 19.80078125) -[2618777.789] {Default Queue} wl_pointer#2473.motion(187310411, 29.00000000, 19.80078125) -[2618777.794] {Default Queue} wl_pointer#2498.motion(187310411, 29.00000000, 19.80078125) -[2618777.808] {Default Queue} -> wl_buffer#3682.destroy() -[2618777.814] {Default Queue} -> wl_buffer#3681.destroy() -[2618777.819] {Default Queue} -> wl_shm_pool#3671.destroy() -[2618777.825] {Default Queue} -> wl_shm_pool#3679.destroy() -[2618777.831] {Default Queue} -> wl_surface#3684.destroy() -[2618777.875] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3294, fd 581, 640) -[2618777.882] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 582, 640) -[2618777.887] {Default Queue} -> wl_shm_pool#3294.create_buffer(new id wl_buffer#3484, 0, 10, 16, 40, 0) -[2618777.891] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) -[2618777.899] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3292) -[2618777.903] {Default Queue} -> wl_surface#3292.attach(wl_buffer#3484, 0, 0) -[2618777.907] {Default Queue} -> wl_surface#3292.commit() -[2618777.913] {Default Queue} -> wl_surface#3292.attach(wl_buffer#3484, 0, 0) -[2618777.917] {Default Queue} -> wl_surface#3292.commit() -[2618777.921] {Default Queue} wl_pointer#2537.motion(187310411, 29.00000000, 19.80078125) -[2618777.930] {Default Queue} wl_pointer#2569.motion(187310411, 29.00000000, 19.80078125) -[2618777.937] {Default Queue} wl_pointer#2601.motion(187310411, 29.00000000, 19.80078125) -[2618777.941] {Default Queue} wl_pointer#2633.motion(187310411, 29.00000000, 19.80078125) -[2618777.945] {Default Queue} wl_pointer#2665.motion(187310411, 29.00000000, 19.80078125) -[2618777.949] {Default Queue} wl_pointer#2697.motion(187310411, 29.00000000, 19.80078125) -[2618777.954] {Default Queue} wl_pointer#2729.motion(187310411, 29.00000000, 19.80078125) -[2618777.958] {Default Queue} wl_pointer#2761.motion(187310411, 29.00000000, 19.80078125) -[2618777.962] {Default Queue} wl_pointer#2793.motion(187310411, 29.00000000, 19.80078125) -[2618777.966] {Default Queue} wl_pointer#2825.motion(187310411, 29.00000000, 19.80078125) -[2618777.971] {Default Queue} wl_pointer#2857.motion(187310411, 29.00000000, 19.80078125) -[2618777.975] {Default Queue} wl_pointer#2889.motion(187310411, 29.00000000, 19.80078125) -[2618777.980] {Default Queue} wl_pointer#2921.motion(187310411, 29.00000000, 19.80078125) -[2618777.984] {Default Queue} wl_pointer#2953.motion(187310411, 29.00000000, 19.80078125) -[2618777.989] {Default Queue} wl_pointer#2985.motion(187310411, 29.00000000, 19.80078125) -[2618777.993] {Default Queue} wl_pointer#3017.motion(187310411, 29.00000000, 19.80078125) -[2618777.997] {Default Queue} wl_pointer#3049.motion(187310411, 29.00000000, 19.80078125) -[2618778.002] {Default Queue} wl_pointer#3081.motion(187310411, 29.00000000, 19.80078125) -[2618778.008] {Default Queue} wl_pointer#3113.motion(187310411, 29.00000000, 19.80078125) -[2618778.014] {Default Queue} wl_pointer#3145.motion(187310411, 29.00000000, 19.80078125) -[2618778.020] {Default Queue} wl_pointer#3177.motion(187310411, 29.00000000, 19.80078125) -[2618778.026] {Default Queue} wl_pointer#3209.motion(187310411, 29.00000000, 19.80078125) -[2618778.031] {Default Queue} wl_pointer#3241.motion(187310411, 29.00000000, 19.80078125) -[2618778.036] {Default Queue} wl_pointer#3273.motion(187310411, 29.00000000, 19.80078125) -[2618778.042] {Default Queue} wl_pointer#3305.motion(187310411, 29.00000000, 19.80078125) -[2618778.048] {Default Queue} wl_pointer#3337.motion(187310411, 29.00000000, 19.80078125) -[2618778.054] {Default Queue} wl_pointer#3369.motion(187310411, 29.00000000, 19.80078125) -[2618778.059] {Default Queue} wl_pointer#3401.motion(187310411, 29.00000000, 19.80078125) -[2618778.063] {Default Queue} wl_pointer#3433.motion(187310411, 29.00000000, 19.80078125) -[2618778.068] {Default Queue} wl_pointer#3465.motion(187310411, 29.00000000, 19.80078125) -[2618778.073] {Default Queue} wl_pointer#3497.motion(187310411, 29.00000000, 19.80078125) -[2618778.077] {Default Queue} wl_pointer#3529.motion(187310411, 29.00000000, 19.80078125) -[2618778.081] {Default Queue} wl_pointer#3561.motion(187310411, 29.00000000, 19.80078125) -[2618778.085] {Default Queue} wl_pointer#3593.motion(187310411, 29.00000000, 19.80078125) -[2618778.090] {Default Queue} wl_pointer#3625.motion(187310411, 29.00000000, 19.80078125) -[2618778.094] {Default Queue} wl_pointer#3657.motion(187310411, 29.00000000, 19.80078125) -[2618778.098] {Default Queue} wl_pointer#3695.motion(187310411, 29.00000000, 19.80078125) -[2618778.103] {Default Queue} wl_pointer#24.motion(187310411, 29.00000000, 19.39843750) -[2618778.107] {Default Queue} wl_pointer#81.motion(187310411, 29.00000000, 19.39843750) -[2618778.112] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618778.117] {Default Queue} wl_pointer#105.motion(187310411, 29.00000000, 19.39843750) -[2618778.121] {Default Queue} wl_pointer#137.motion(187310411, 29.00000000, 19.39843750) -[2618778.125] {Default Queue} wl_pointer#169.motion(187310411, 29.00000000, 19.39843750) -[2618778.130] {Default Queue} wl_pointer#201.motion(187310411, 29.00000000, 19.39843750) -[2618778.134] {Default Queue} wl_pointer#233.motion(187310411, 29.00000000, 19.39843750) -[2618778.138] {Default Queue} wl_pointer#265.motion(187310411, 29.00000000, 19.39843750) -[2618778.142] {Default Queue} wl_pointer#297.motion(187310411, 29.00000000, 19.39843750) -[2618778.150] {Default Queue} wl_pointer#329.motion(187310411, 29.00000000, 19.39843750) -[2618778.156] {Default Queue} wl_pointer#361.motion(187310411, 29.00000000, 19.39843750) -[2618778.160] {Default Queue} wl_pointer#393.motion(187310411, 29.00000000, 19.39843750) -[2618778.165] {Default Queue} wl_pointer#425.motion(187310411, 29.00000000, 19.39843750) -[2618778.169] {Default Queue} wl_pointer#457.motion(187310411, 29.00000000, 19.39843750) -[2618778.173] {Default Queue} wl_pointer#489.motion(187310411, 29.00000000, 19.39843750) -[2618778.178] {Default Queue} wl_pointer#521.motion(187310411, 29.00000000, 19.39843750) -[2618778.182] {Default Queue} wl_pointer#553.motion(187310411, 29.00000000, 19.39843750) -[2618778.186] {Default Queue} wl_pointer#585.motion(187310411, 29.00000000, 19.39843750) -[2618778.190] {Default Queue} wl_pointer#617.motion(187310411, 29.00000000, 19.39843750) -[2618778.195] {Default Queue} wl_pointer#649.motion(187310411, 29.00000000, 19.39843750) -[2618778.199] {Default Queue} wl_pointer#681.motion(187310411, 29.00000000, 19.39843750) -[2618778.203] {Default Queue} wl_pointer#713.motion(187310411, 29.00000000, 19.39843750) -[2618778.208] {Default Queue} wl_pointer#745.motion(187310411, 29.00000000, 19.39843750) -[2618778.212] {Default Queue} wl_pointer#777.motion(187310411, 29.00000000, 19.39843750) -[2618778.216] {Default Queue} wl_pointer#809.motion(187310411, 29.00000000, 19.39843750) -[2618778.220] {Default Queue} wl_pointer#841.motion(187310411, 29.00000000, 19.39843750) -[2618778.225] {Default Queue} wl_pointer#873.motion(187310411, 29.00000000, 19.39843750) -[2618778.229] {Default Queue} wl_pointer#905.motion(187310411, 29.00000000, 19.39843750) -[2618778.233] {Default Queue} wl_pointer#937.motion(187310411, 29.00000000, 19.39843750) -[2618778.238] {Default Queue} wl_pointer#969.motion(187310411, 29.00000000, 19.39843750) -[2618778.242] {Default Queue} wl_pointer#1001.motion(187310411, 29.00000000, 19.39843750) -[2618778.246] {Default Queue} wl_pointer#1033.motion(187310411, 29.00000000, 19.39843750) -[2618778.250] {Default Queue} wl_pointer#1065.motion(187310411, 29.00000000, 19.39843750) -[2618778.255] {Default Queue} wl_pointer#1097.motion(187310411, 29.00000000, 19.39843750) -[2618778.259] {Default Queue} wl_pointer#1129.motion(187310411, 29.00000000, 19.39843750) -[2618778.263] {Default Queue} wl_pointer#1161.motion(187310411, 29.00000000, 19.39843750) -[2618778.267] {Default Queue} wl_pointer#1193.motion(187310411, 29.00000000, 19.39843750) -[2618778.272] {Default Queue} wl_pointer#1225.motion(187310411, 29.00000000, 19.39843750) -[2618778.276] {Default Queue} wl_pointer#1257.motion(187310411, 29.00000000, 19.39843750) -[2618778.280] {Default Queue} wl_pointer#1289.motion(187310411, 29.00000000, 19.39843750) -[2618778.285] {Default Queue} wl_pointer#1321.motion(187310411, 29.00000000, 19.39843750) -[2618778.289] {Default Queue} wl_pointer#1353.motion(187310411, 29.00000000, 19.39843750) -[2618778.293] {Default Queue} wl_pointer#1385.motion(187310411, 29.00000000, 19.39843750) -[2618778.297] {Default Queue} wl_pointer#1417.motion(187310411, 29.00000000, 19.39843750) -[2618778.301] {Default Queue} wl_pointer#1449.motion(187310411, 29.00000000, 19.39843750) -[2618778.306] {Default Queue} wl_pointer#1481.motion(187310411, 29.00000000, 19.39843750) -[2618778.310] {Default Queue} wl_pointer#1513.motion(187310411, 29.00000000, 19.39843750) -[2618778.314] {Default Queue} wl_pointer#1545.motion(187310411, 29.00000000, 19.39843750) -[2618778.319] {Default Queue} wl_pointer#1577.motion(187310411, 29.00000000, 19.39843750) -[2618778.323] {Default Queue} wl_pointer#1609.motion(187310411, 29.00000000, 19.39843750) -[2618778.327] {Default Queue} wl_pointer#1641.motion(187310411, 29.00000000, 19.39843750) -[2618778.331] {Default Queue} wl_pointer#1673.motion(187310411, 29.00000000, 19.39843750) -[2618778.336] {Default Queue} wl_pointer#1705.motion(187310411, 29.00000000, 19.39843750) -[2618778.340] {Default Queue} wl_pointer#1737.motion(187310411, 29.00000000, 19.39843750) -[2618778.344] {Default Queue} wl_pointer#1762.motion(187310411, 29.00000000, 19.39843750) -[2618778.349] {Default Queue} wl_pointer#1801.motion(187310411, 29.00000000, 19.39843750) -[2618778.355] {Default Queue} wl_pointer#1833.motion(187310411, 29.00000000, 19.39843750) -[2618778.359] {Default Queue} wl_pointer#1865.motion(187310411, 29.00000000, 19.39843750) -[2618778.364] {Default Queue} wl_pointer#1897.motion(187310411, 29.00000000, 19.39843750) -[2618778.368] {Default Queue} wl_pointer#1929.motion(187310411, 29.00000000, 19.39843750) -[2618778.372] {Default Queue} wl_pointer#1961.motion(187310411, 29.00000000, 19.39843750) -[2618778.376] {Default Queue} wl_pointer#1993.motion(187310411, 29.00000000, 19.39843750) -[2618778.381] {Default Queue} wl_pointer#2025.motion(187310411, 29.00000000, 19.39843750) -[2618778.385] {Default Queue} wl_pointer#2057.motion(187310411, 29.00000000, 19.39843750) -[2618778.389] {Default Queue} wl_pointer#2089.motion(187310411, 29.00000000, 19.39843750) -[2618778.394] {Default Queue} wl_pointer#2121.motion(187310411, 29.00000000, 19.39843750) -[2618778.398] {Default Queue} wl_pointer#2153.motion(187310411, 29.00000000, 19.39843750) -[2618778.402] {Default Queue} wl_pointer#2185.motion(187310411, 29.00000000, 19.39843750) -[2618778.406] {Default Queue} wl_pointer#2217.motion(187310411, 29.00000000, 19.39843750) -[2618778.411] {Default Queue} wl_pointer#2249.motion(187310411, 29.00000000, 19.39843750) -[2618778.415] {Default Queue} wl_pointer#2281.motion(187310411, 29.00000000, 19.39843750) -[2618778.419] {Default Queue} wl_pointer#2313.motion(187310411, 29.00000000, 19.39843750) -[2618778.424] {Default Queue} wl_pointer#2345.motion(187310411, 29.00000000, 19.39843750) -[2618778.428] {Default Queue} wl_pointer#2377.motion(187310411, 29.00000000, 19.39843750) -[2618778.432] {Default Queue} wl_pointer#2409.motion(187310411, 29.00000000, 19.39843750) -[2618778.437] {Default Queue} wl_pointer#2441.motion(187310411, 29.00000000, 19.39843750) -[2618778.441] {Default Queue} wl_pointer#2473.motion(187310411, 29.00000000, 19.39843750) -[2618778.445] {Default Queue} wl_pointer#2498.motion(187310411, 29.00000000, 19.39843750) -[2618778.456] {Default Queue} -> wl_buffer#3484.destroy() -[2618778.460] {Default Queue} -> wl_buffer#3293.destroy() -[2618778.464] {Default Queue} -> wl_shm_pool#3294.destroy() -[2618778.468] {Default Queue} -> wl_shm_pool#3291.destroy() -[2618778.473] {Default Queue} -> wl_surface#3292.destroy() -[2618778.510] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3454, fd 583, 640) -[2618778.516] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3517, fd 584, 640) -[2618778.520] {Default Queue} -> wl_shm_pool#3454.create_buffer(new id wl_buffer#3518, 0, 10, 16, 40, 0) -[2618778.525] {Default Queue} -> wl_shm_pool#3517.create_buffer(new id wl_buffer#3451, 0, 10, 16, 40, 0) -[2618778.532] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3452) -[2618778.536] {Default Queue} -> wl_surface#3452.attach(wl_buffer#3518, 0, 0) -[2618778.540] {Default Queue} -> wl_surface#3452.commit() -[2618778.545] {Default Queue} -> wl_surface#3452.attach(wl_buffer#3518, 0, 0) -[2618778.549] {Default Queue} -> wl_surface#3452.commit() -[2618778.553] {Default Queue} wl_pointer#2537.motion(187310411, 29.00000000, 19.39843750) -[2618778.558] {Default Queue} wl_pointer#2569.motion(187310411, 29.00000000, 19.39843750) -[2618778.562] {Default Queue} wl_pointer#2601.motion(187310411, 29.00000000, 19.39843750) -[2618778.567] {Default Queue} wl_pointer#2633.motion(187310411, 29.00000000, 19.39843750) -[2618778.571] {Default Queue} wl_pointer#2665.motion(187310411, 29.00000000, 19.39843750) -[2618778.575] {Default Queue} wl_pointer#2697.motion(187310411, 29.00000000, 19.39843750) -[2618778.579] {Default Queue} wl_pointer#2729.motion(187310411, 29.00000000, 19.39843750) -[2618778.584] {Default Queue} wl_pointer#2761.motion(187310411, 29.00000000, 19.39843750) -[2618778.588] {Default Queue} wl_pointer#2793.motion(187310411, 29.00000000, 19.39843750) -[2618778.592] {Default Queue} wl_pointer#2825.motion(187310411, 29.00000000, 19.39843750) -[2618778.603] {Default Queue} wl_pointer#2857.motion(187310411, 29.00000000, 19.39843750) -[2618778.653] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) -[2618778.659] {Default Queue} -> wl_surface#3.commit() -[2618778.702] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) -[2618778.708] {Default Queue} -> wl_surface#19.commit() -[2618778.720] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2618778.724] {Default Queue} -> wl_surface#43.commit() -[2618778.731] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) -[2618778.735] {Default Queue} -> wl_surface#199.commit() -[2618778.741] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) -[2618778.745] {Default Queue} -> wl_surface#263.commit() -[2618778.751] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) -[2618778.756] {Default Queue} -> wl_surface#231.commit() -[2618778.761] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) -[2618778.765] {Default Queue} -> wl_surface#167.commit() -[2618778.771] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) -[2618778.775] {Default Queue} -> wl_surface#135.commit() -[2618778.780] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) -[2618778.785] {Default Queue} -> wl_surface#295.commit() -[2618778.791] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) -[2618778.795] {Default Queue} -> wl_surface#391.commit() -[2618778.802] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) -[2618778.806] {Default Queue} -> wl_surface#519.commit() -[2618778.811] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) -[2618778.816] {Default Queue} -> wl_surface#551.commit() -[2618778.821] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) -[2618778.825] {Default Queue} -> wl_surface#583.commit() -[2618778.831] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) -[2618778.835] {Default Queue} -> wl_surface#615.commit() -[2618778.841] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) -[2618778.845] {Default Queue} -> wl_surface#647.commit() -[2618778.850] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) -[2618778.854] {Default Queue} -> wl_surface#487.commit() -[2618778.866] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) -[2618778.870] {Default Queue} -> wl_surface#711.commit() -[2618778.875] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) -[2618778.879] {Default Queue} -> wl_surface#743.commit() -[2618778.885] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) -[2618778.889] {Default Queue} -> wl_surface#775.commit() -[2618778.895] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) -[2618778.899] {Default Queue} -> wl_surface#807.commit() -[2618778.905] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) -[2618778.912] {Default Queue} -> wl_surface#839.commit() -[2618778.920] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) -[2618778.924] {Default Queue} -> wl_surface#679.commit() -[2618778.930] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) -[2618778.934] {Default Queue} -> wl_surface#455.commit() -[2618778.940] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) -[2618778.944] {Default Queue} -> wl_surface#423.commit() -[2618778.949] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) -[2618778.954] {Default Queue} -> wl_surface#359.commit() -[2618778.959] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) -[2618778.963] {Default Queue} -> wl_surface#327.commit() -[2618778.969] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) -[2618778.973] {Default Queue} -> wl_surface#103.commit() -[2618778.979] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) -[2618778.983] {Default Queue} -> wl_surface#967.commit() -[2618778.989] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) -[2618778.994] {Default Queue} -> wl_surface#1095.commit() -[2618779.000] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) -[2618779.007] {Default Queue} -> wl_surface#1127.commit() -[2618779.015] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) -[2618779.019] {Default Queue} -> wl_surface#1159.commit() -[2618779.025] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) -[2618779.029] {Default Queue} -> wl_surface#1191.commit() -[2618779.034] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) -[2618779.039] {Default Queue} -> wl_surface#1223.commit() -[2618779.044] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) -[2618779.048] {Default Queue} -> wl_surface#1063.commit() -[2618779.054] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) -[2618779.058] {Default Queue} -> wl_surface#1287.commit() -[2618779.064] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) -[2618779.068] {Default Queue} -> wl_surface#1319.commit() -[2618779.074] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) -[2618779.078] {Default Queue} -> wl_surface#1351.commit() -[2618779.083] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) -[2618779.088] {Default Queue} -> wl_surface#1383.commit() -[2618779.093] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) -[2618779.098] {Default Queue} -> wl_surface#1415.commit() -[2618779.104] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) -[2618779.108] {Default Queue} -> wl_surface#1255.commit() -[2618779.113] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) -[2618779.118] {Default Queue} -> wl_surface#1031.commit() -[2618779.123] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) -[2618779.127] {Default Queue} -> wl_surface#999.commit() -[2618779.133] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) -[2618779.137] {Default Queue} -> wl_surface#935.commit() -[2618779.143] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) -[2618779.147] {Default Queue} -> wl_surface#903.commit() -[2618779.153] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) -[2618779.157] {Default Queue} -> wl_surface#1511.commit() -[2618779.163] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) -[2618779.168] {Default Queue} -> wl_surface#1575.commit() -[2618779.173] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) -[2618779.178] {Default Queue} -> wl_surface#1543.commit() -[2618779.183] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) -[2618779.188] {Default Queue} -> wl_surface#1479.commit() -[2618779.193] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) -[2618779.198] {Default Queue} -> wl_surface#1447.commit() -[2618779.204] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) -[2618779.208] {Default Queue} -> wl_surface#1671.commit() -[2618779.214] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) -[2618779.218] {Default Queue} -> wl_surface#1735.commit() -[2618779.224] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) -[2618779.228] {Default Queue} -> wl_surface#1703.commit() -[2618779.233] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) -[2618779.238] {Default Queue} -> wl_surface#1639.commit() -[2618779.243] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) -[2618779.247] {Default Queue} -> wl_surface#1607.commit() -[2618779.253] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) -[2618779.258] {Default Queue} -> wl_surface#1831.commit() -[2618779.264] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) -[2618779.268] {Default Queue} -> wl_surface#1895.commit() -[2618779.274] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) -[2618779.278] {Default Queue} -> wl_surface#1863.commit() -[2618779.284] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) -[2618779.288] {Default Queue} -> wl_surface#1799.commit() -[2618779.293] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) -[2618779.298] {Default Queue} -> wl_surface#1772.commit() -[2618779.304] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) -[2618779.311] {Default Queue} -> wl_surface#1991.commit() -[2618779.318] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) -[2618779.323] {Default Queue} -> wl_surface#2055.commit() -[2618779.332] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) -[2618779.337] {Default Queue} -> wl_surface#2023.commit() -[2618779.342] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) -[2618779.346] {Default Queue} -> wl_surface#1959.commit() -[2618779.352] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) -[2618779.356] {Default Queue} -> wl_surface#1927.commit() -[2618779.362] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) -[2618779.366] {Default Queue} -> wl_surface#871.commit() -[2618779.372] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) -[2618779.377] {Default Queue} -> wl_surface#2183.commit() -[2618779.382] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618779.387] {Default Queue} -> wl_surface#2279.commit() -[2618779.392] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) -[2618779.397] {Default Queue} -> wl_surface#2311.commit() -[2618779.402] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) -[2618779.406] {Default Queue} -> wl_surface#2247.commit() -[2618779.412] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) -[2618779.416] {Default Queue} -> wl_surface#2215.commit() -[2618779.422] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) -[2618779.426] {Default Queue} -> wl_surface#2151.commit() -[2618779.431] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) -[2618779.435] {Default Queue} -> wl_surface#2119.commit() -[2618779.441] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) -[2618779.445] {Default Queue} -> wl_surface#2407.commit() -[2618779.451] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) -[2618779.455] {Default Queue} -> wl_surface#2471.commit() -[2618779.461] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) -[2618779.465] {Default Queue} -> wl_surface#2439.commit() -[2618779.470] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) -[2618779.475] {Default Queue} -> wl_surface#2375.commit() -[2618779.480] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) -[2618779.485] {Default Queue} -> wl_surface#2343.commit() -[2618779.490] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) -[2618779.495] {Default Queue} -> wl_surface#2567.commit() -[2618779.500] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) -[2618779.504] {Default Queue} -> wl_surface#2631.commit() -[2618779.510] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) -[2618779.514] {Default Queue} -> wl_surface#2599.commit() -[2618779.520] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) -[2618779.524] {Default Queue} -> wl_surface#2535.commit() -[2618779.529] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) -[2618779.534] {Default Queue} -> wl_surface#2508.commit() -[2618779.539] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) -[2618779.544] {Default Queue} -> wl_surface#2727.commit() -[2618779.549] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) -[2618779.553] {Default Queue} -> wl_surface#2791.commit() -[2618779.559] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) -[2618779.563] {Default Queue} -> wl_surface#2759.commit() -[2618779.569] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) -[2618779.573] {Default Queue} -> wl_surface#2695.commit() -[2618779.578] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) -[2618779.582] {Default Queue} -> wl_surface#2663.commit() -[2618779.588] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) -[2618779.593] {Default Queue} -> wl_surface#2887.commit() -[2618779.598] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) -[2618779.603] {Default Queue} -> wl_surface#2951.commit() -[2618779.611] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) -[2618779.616] {Default Queue} -> wl_surface#2919.commit() -[2618779.622] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) -[2618779.626] {Default Queue} -> wl_surface#2855.commit() -[2618779.632] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) -[2618779.636] {Default Queue} -> wl_surface#2823.commit() -[2618779.642] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) -[2618779.646] {Default Queue} -> wl_surface#2087.commit() -[2618779.652] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) -[2618779.656] {Default Queue} -> wl_surface#3079.commit() -[2618779.662] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618779.666] {Default Queue} -> wl_surface#3175.commit() -[2618779.671] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) -[2618779.676] {Default Queue} -> wl_surface#3207.commit() -[2618779.681] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) -[2618779.685] {Default Queue} -> wl_surface#3143.commit() -[2618779.691] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) -[2618779.695] {Default Queue} -> wl_surface#3111.commit() -[2618779.701] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) -[2618779.705] {Default Queue} -> wl_surface#3047.commit() -[2618779.710] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) -[2618779.715] {Default Queue} -> wl_surface#3015.commit() -[2618779.720] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) -[2618779.725] {Default Queue} -> wl_surface#3303.commit() -[2618779.730] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) -[2618779.734] {Default Queue} -> wl_surface#3399.commit() -[2618779.740] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) -[2618779.744] {Default Queue} -> wl_surface#3431.commit() -[2618779.754] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2618779.758] {Default Queue} -> wl_surface#3527.commit() -[2618779.778] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2618779.783] {Default Queue} -> wl_surface#3495.commit() -[2618779.789] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) -[2618779.793] {Default Queue} -> wl_surface#3463.commit() -[2618779.799] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) -[2618779.803] {Default Queue} -> wl_surface#3367.commit() -[2618779.808] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) -[2618779.813] {Default Queue} -> wl_surface#3335.commit() -[2618779.818] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) -[2618779.822] {Default Queue} -> wl_surface#3271.commit() -[2618779.828] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) -[2618779.832] {Default Queue} -> wl_surface#3239.commit() -[2618779.837] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) -[2618779.841] {Default Queue} -> wl_surface#3559.commit() -[2618779.847] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) -[2618779.851] {Default Queue} -> wl_surface#3591.commit() -[2618779.857] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) -[2618779.862] {Default Queue} -> wl_surface#3623.commit() -[2618779.868] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) -[2618779.876] {Default Queue} -> wl_surface#2983.commit() -[2618779.934] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) -[2618779.941] {Default Queue} -> wl_surface#71.commit() -[2618779.989] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) -[2618779.995] {Default Queue} -> wl_surface#3.commit() -[2618780.058] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) -[2618780.072] {Default Queue} -> wl_surface#19.commit() -[2618780.083] {Default Queue} -> wl_region#127.subtract(0, 0, 2, 2) -[2618780.088] {Default Queue} -> wl_subsurface#122.set_position(0, 0) -[2618780.092] {Default Queue} -> wl_region#127.subtract(0, 0, 2, 2) -[2618780.097] {Default Queue} -> wl_region#127.add(0, 0, 2, 2) -[2618780.108] {Default Queue} -> wl_surface#103.set_opaque_region(wl_region#128) -[2618780.115] {Default Queue} -> wl_surface#103.set_input_region(wl_region#127) -[2618780.120] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618780.125] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618780.138] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) -[2618780.143] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) -[2618780.147] {Default Queue} -> wl_surface#135.damage(0, 0, 2, 2) -[2618780.152] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) -[2618780.156] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618780.160] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618780.165] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618780.169] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618780.173] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618780.177] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618780.181] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2618780.185] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618780.190] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618780.194] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618780.198] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618780.202] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618780.207] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2618780.211] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2618780.215] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) -[2618780.219] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) -[2618780.223] {Default Queue} -> wl_surface#327.damage(0, 0, 2, 2) -[2618780.227] {Default Queue} -> wl_surface#103.damage(0, 0, 2, 2) -[2618780.238] {Default Queue} -> wl_region#127.subtract(0, 0, 2, 2) -[2618780.242] {Default Queue} -> wl_region#127.add(0, 0, 2, 2) -[2618780.246] {Default Queue} -> wl_surface#103.set_opaque_region(wl_region#128) -[2618780.250] {Default Queue} -> wl_surface#103.set_input_region(wl_region#127) -[2618780.256] {Default Queue} -> wl_surface#103.attach(wl_buffer#125, 0, 0) -[2618780.261] {Default Queue} -> wl_surface#103.commit() -[2618780.266] {Default Queue} -> wl_region#895.subtract(0, 0, 2, 2) -[2618780.271] {Default Queue} -> wl_subsurface#890.set_position(0, 167) -[2618780.275] {Default Queue} -> wl_region#895.subtract(0, 0, 2, 169) -[2618780.279] {Default Queue} -> wl_region#895.add(0, 0, 2, 2) -[2618780.283] {Default Queue} -> wl_surface#871.set_opaque_region(wl_region#896) -[2618780.287] {Default Queue} -> wl_surface#871.set_input_region(wl_region#895) -[2618780.292] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618780.296] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) -[2618780.300] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) -[2618780.304] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) -[2618780.309] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) -[2618780.313] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) -[2618780.317] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2618780.321] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618780.325] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618780.330] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618780.334] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618780.338] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618780.342] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618780.346] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2618780.350] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) -[2618780.354] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) -[2618780.358] {Default Queue} -> wl_surface#903.damage(0, 0, 2, 2) -[2618780.362] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618780.367] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618780.371] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) -[2618780.375] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) -[2618780.392] {Default Queue} -> wl_surface#1447.damage(0, 0, 2, 2) -[2618780.398] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618780.402] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) -[2618780.406] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) -[2618780.411] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) -[2618780.415] {Default Queue} -> wl_surface#1607.damage(0, 0, 2, 2) -[2618780.419] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618780.423] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618780.427] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) -[2618780.432] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) -[2618780.436] {Default Queue} -> wl_surface#1772.damage(0, 0, 2, 2) -[2618780.440] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618780.444] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618780.448] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) -[2618780.452] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) -[2618780.457] {Default Queue} -> wl_surface#1927.damage(0, 0, 2, 2) -[2618780.461] {Default Queue} -> wl_surface#871.damage(0, 0, 2, 2) -[2618780.466] {Default Queue} -> wl_region#895.subtract(0, 0, 22, 218) -[2618780.471] {Default Queue} -> wl_region#895.add(-20, -49, 22, 51) -[2618780.475] {Default Queue} -> wl_surface#871.set_opaque_region(wl_region#896) -[2618780.479] {Default Queue} -> wl_surface#871.set_input_region(wl_region#895) -[2618780.484] {Default Queue} -> wl_surface#871.attach(wl_buffer#893, 0, 0) -[2618780.488] {Default Queue} -> wl_surface#871.commit() -[2618780.493] {Default Queue} -> wl_region#2111.subtract(0, 0, 2, 2) -[2618780.497] {Default Queue} -> wl_subsurface#2106.set_position(0, 334) -[2618780.501] {Default Queue} -> wl_region#2111.subtract(0, 0, 2, 336) -[2618780.506] {Default Queue} -> wl_region#2111.add(0, 0, 2, 2) -[2618780.510] {Default Queue} -> wl_surface#2087.set_opaque_region(wl_region#2112) -[2618780.514] {Default Queue} -> wl_surface#2087.set_input_region(wl_region#2111) -[2618780.518] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618780.522] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618780.527] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618780.531] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618780.535] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) -[2618780.539] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) -[2618780.543] {Default Queue} -> wl_surface#2119.damage(0, 0, 2, 2) -[2618780.548] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618780.552] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) -[2618780.556] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) -[2618780.560] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) -[2618780.565] {Default Queue} -> wl_surface#2343.damage(0, 0, 2, 2) -[2618780.569] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618780.573] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) -[2618780.577] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) -[2618780.581] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) -[2618780.585] {Default Queue} -> wl_surface#2508.damage(0, 0, 2, 2) -[2618780.590] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618780.594] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) -[2618780.598] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) -[2618780.602] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) -[2618780.606] {Default Queue} -> wl_surface#2663.damage(0, 0, 2, 2) -[2618780.611] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618780.615] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) -[2618780.619] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) -[2618780.623] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) -[2618780.627] {Default Queue} -> wl_surface#2823.damage(0, 0, 2, 2) -[2618780.632] {Default Queue} -> wl_surface#2087.damage(0, 0, 2, 2) -[2618780.638] {Default Queue} -> wl_region#2111.subtract(0, 0, 22, 385) -[2618780.645] {Default Queue} -> wl_region#2111.add(-20, -49, 22, 51) -[2618780.651] {Default Queue} -> wl_surface#2087.set_opaque_region(wl_region#2112) -[2618780.655] {Default Queue} -> wl_surface#2087.set_input_region(wl_region#2111) -[2618780.659] {Default Queue} -> wl_surface#2087.attach(wl_buffer#2109, 0, 0) -[2618780.664] {Default Queue} -> wl_surface#2087.commit() -[2618780.669] {Default Queue} -> wl_region#3007.subtract(0, 0, 2, 2) -[2618780.673] {Default Queue} -> wl_subsurface#3002.set_position(0, 501) -[2618780.677] {Default Queue} -> wl_region#3007.subtract(0, 0, 2, 503) -[2618780.682] {Default Queue} -> wl_region#3007.add(0, 0, 2, 2) -[2618780.686] {Default Queue} -> wl_surface#2983.set_opaque_region(wl_region#3008) -[2618780.690] {Default Queue} -> wl_surface#2983.set_input_region(wl_region#3007) -[2618780.694] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618780.698] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618780.703] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618780.707] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) -[2618780.711] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) -[2618780.715] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) -[2618780.719] {Default Queue} -> wl_surface#3015.damage(0, 0, 2, 2) -[2618780.723] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618780.728] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2618780.732] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2618780.736] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618780.740] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) -[2618780.745] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) -[2618780.749] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) -[2618780.753] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) -[2618780.757] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) -[2618780.761] {Default Queue} -> wl_surface#3239.damage(0, 0, 2, 2) -[2618780.765] {Default Queue} -> wl_surface#3559.damage(0, 0, 2, 2) -[2618780.769] {Default Queue} -> wl_surface#3591.damage(0, 0, 2, 2) -[2618780.774] {Default Queue} -> wl_surface#3623.damage(0, 0, 2, 2) -[2618780.778] {Default Queue} -> wl_surface#2983.damage(0, 0, 2, 2) -[2618780.783] {Default Queue} -> wl_region#3007.subtract(0, 0, 22, 552) -[2618780.787] {Default Queue} -> wl_region#3007.add(-20, -49, 22, 51) -[2618780.791] {Default Queue} -> wl_surface#2983.set_opaque_region(wl_region#3008) -[2618780.795] {Default Queue} -> wl_surface#2983.set_input_region(wl_region#3007) -[2618780.800] {Default Queue} -> wl_surface#2983.attach(wl_buffer#3005, 0, 0) -[2618780.804] {Default Queue} -> wl_surface#2983.commit() -[2618780.812] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) -[2618780.817] {Default Queue} -> wl_subsurface#154.set_position(0, 0) -[2618780.821] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) -[2618780.825] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) -[2618780.829] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618780.833] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618780.837] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618780.841] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618780.845] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) -[2618780.849] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) -[2618780.853] {Default Queue} -> wl_surface#135.damage(0, 0, 2, 2) -[2618780.863] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) -[2618780.867] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) -[2618780.876] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618780.880] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618780.889] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) -[2618780.893] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) -[2618780.898] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618780.902] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618780.910] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) -[2618780.915] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) -[2618780.920] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618780.924] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618780.929] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) -[2618780.933] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) -[2618780.937] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618780.941] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618780.948] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) -[2618780.952] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) -[2618780.956] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618780.960] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618780.965] {Default Queue} -> wl_surface#135.attach(wl_buffer#157, 0, 0) -[2618780.969] {Default Queue} -> wl_surface#135.commit() -[2618780.974] {Default Queue} -> wl_region#319.subtract(0, 0, 2, 2) -[2618780.978] {Default Queue} -> wl_subsurface#314.set_position(115, 0) -[2618780.983] {Default Queue} -> wl_region#319.subtract(0, 0, 117, 2) -[2618780.987] {Default Queue} -> wl_region#319.add(0, 0, 2, 2) -[2618780.991] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618780.995] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618781.002] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) -[2618781.009] {Default Queue} -> wl_region#319.subtract(0, 0, 137, 51) -[2618781.013] {Default Queue} -> wl_region#319.add(-20, -49, 22, 51) -[2618781.017] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618781.021] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618781.359] {Default Queue} -> wl_region#319.subtract(0, 0, 137, 51) -[2618781.366] {Default Queue} -> wl_region#319.add(-20, -49, 22, 51) -[2618781.371] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618781.375] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618781.384] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) -[2618781.389] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) -[2618781.684] {Default Queue} -> wl_region#319.subtract(0, 0, 137, 51) -[2618781.692] {Default Queue} -> wl_region#319.add(-20, -49, 22, 51) -[2618781.697] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618781.701] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618781.711] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) -[2618781.715] {Default Queue} -> wl_surface#295.damage(0, 0, 2, 2) -[2618781.720] {Default Queue} -> wl_surface#295.attach(wl_buffer#317, 0, 0) -[2618781.725] {Default Queue} -> wl_surface#295.commit() -[2618781.731] {Default Queue} -> wl_region#351.subtract(0, 0, 2, 2) -[2618781.735] {Default Queue} -> wl_subsurface#346.set_position(460, 0) -[2618781.739] {Default Queue} -> wl_region#351.subtract(0, 0, 462, 2) -[2618781.743] {Default Queue} -> wl_region#351.add(0, 0, 2, 2) -[2618781.748] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618781.752] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618781.756] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618781.760] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618781.764] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618781.769] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618781.773] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618781.777] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618781.781] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2618781.785] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618781.789] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618781.794] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618781.798] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618781.802] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618781.810] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2618781.817] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2618781.821] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) -[2618781.825] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) -[2618781.829] {Default Queue} -> wl_surface#327.damage(0, 0, 2, 2) -[2618781.838] {Default Queue} -> wl_region#351.subtract(0, 0, 482, 51) -[2618781.842] {Default Queue} -> wl_region#351.add(-20, -49, 22, 51) -[2618781.847] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618781.851] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618781.857] {Default Queue} -> wl_region#351.subtract(0, 0, 482, 51) -[2618781.867] {Default Queue} -> wl_region#351.add(-20, -49, 22, 51) -[2618781.872] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618781.876] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618781.881] {Default Queue} -> wl_region#351.subtract(0, 0, 482, 51) -[2618781.886] {Default Queue} -> wl_region#351.add(-20, -49, 22, 51) -[2618781.890] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618781.894] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618781.899] {Default Queue} -> wl_region#351.subtract(0, 0, 482, 51) -[2618781.903] {Default Queue} -> wl_region#351.add(-20, -49, 22, 51) -[2618781.907] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618781.911] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618781.918] {Default Queue} -> wl_region#351.subtract(0, 0, 482, 51) -[2618781.922] {Default Queue} -> wl_region#351.add(-20, -49, 22, 51) -[2618781.926] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618781.930] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618781.934] {Default Queue} -> wl_surface#327.attach(wl_buffer#349, 0, 0) -[2618781.939] {Default Queue} -> wl_surface#327.commit() -[2618781.948] {Default Queue} -> wl_region#223.subtract(0, 0, 2, 2) -[2618781.952] {Default Queue} -> wl_subsurface#218.set_position(0, 0) -[2618781.956] {Default Queue} -> wl_region#223.subtract(0, 0, 19, 48) -[2618781.960] {Default Queue} -> wl_region#223.add(-20, -49, 19, 48) -[2618781.964] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618781.968] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618781.972] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618781.979] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 51) -[2618781.984] {Default Queue} -> wl_region#223.add(-20, -49, 22, 51) -[2618781.988] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618781.992] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618782.067] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 51) -[2618782.072] {Default Queue} -> wl_region#223.add(-20, -49, 22, 51) -[2618782.076] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618782.081] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618782.087] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618782.091] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618782.141] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 51) -[2618782.146] {Default Queue} -> wl_region#223.add(-20, -49, 22, 51) -[2618782.150] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618782.154] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618782.159] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618782.163] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 2) -[2618782.168] {Default Queue} -> wl_surface#199.attach(wl_buffer#221, 0, 0) -[2618782.173] {Default Queue} -> wl_surface#199.commit() -[2618782.178] {Default Queue} -> wl_region#255.subtract(0, 0, 2, 2) -[2618782.183] {Default Queue} -> wl_subsurface#250.set_position(0, 20) -[2618782.187] {Default Queue} -> wl_region#255.subtract(0, 0, 19, 68) -[2618782.191] {Default Queue} -> wl_region#255.add(-20, -49, 19, 48) -[2618782.198] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) -[2618782.204] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) -[2618782.208] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618782.213] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) -[2618782.219] {Default Queue} -> wl_region#255.subtract(0, 0, 25, 54) -[2618782.223] {Default Queue} -> wl_region#255.add(-23, -52, 25, 34) -[2618782.227] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) -[2618782.231] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) -[2618782.236] {Default Queue} -> wl_surface#231.attach(wl_buffer#253, 0, 0) -[2618782.240] {Default Queue} -> wl_surface#231.commit() -[2618782.248] {Default Queue} -> wl_region#415.subtract(0, 0, 2, 2) -[2618782.253] {Default Queue} -> wl_subsurface#410.set_position(0, 0) -[2618782.257] {Default Queue} -> wl_region#415.subtract(0, 0, 19, 48) -[2618782.261] {Default Queue} -> wl_region#415.add(-20, -49, 19, 48) -[2618782.265] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618782.269] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618782.273] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618782.281] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 51) -[2618782.285] {Default Queue} -> wl_region#415.add(-480, -49, 482, 51) -[2618782.289] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618782.293] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618782.392] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 51) -[2618782.399] {Default Queue} -> wl_region#415.add(-480, -49, 482, 51) -[2618782.404] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618782.408] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618782.415] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618782.421] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618782.500] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 51) -[2618782.506] {Default Queue} -> wl_region#415.add(-480, -49, 482, 51) -[2618782.510] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618782.515] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618782.521] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618782.525] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 2) -[2618782.530] {Default Queue} -> wl_surface#391.attach(wl_buffer#413, 0, 0) -[2618782.534] {Default Queue} -> wl_surface#391.commit() -[2618782.540] {Default Queue} -> wl_region#447.subtract(0, 0, 2, 2) -[2618782.544] {Default Queue} -> wl_subsurface#442.set_position(0, 20) -[2618782.548] {Default Queue} -> wl_region#447.subtract(0, 0, 19, 68) -[2618782.552] {Default Queue} -> wl_region#447.add(-20, -49, 19, 48) -[2618782.556] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) -[2618782.560] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) -[2618782.565] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618782.569] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618782.573] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618782.577] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618782.581] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618782.585] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2618782.591] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618782.596] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618782.601] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618782.606] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618782.610] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618782.614] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2618782.618] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2618782.622] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) -[2618782.629] {Default Queue} -> wl_region#447.subtract(0, 0, 485, 54) -[2618782.637] {Default Queue} -> wl_region#447.add(-483, -52, 485, 34) -[2618782.644] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) -[2618782.648] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) -[2618782.652] {Default Queue} -> wl_surface#423.attach(wl_buffer#445, 0, 0) -[2618782.657] {Default Queue} -> wl_surface#423.commit() -[2618782.664] {Default Queue} -> wl_region#511.subtract(0, 0, 2, 2) -[2618782.669] {Default Queue} -> wl_subsurface#506.set_position(0, 0) -[2618782.673] {Default Queue} -> wl_region#511.subtract(0, 0, 19, 48) -[2618782.678] {Default Queue} -> wl_region#511.add(-20, -49, 19, 48) -[2618782.682] {Default Queue} -> wl_surface#487.set_opaque_region(wl_region#512) -[2618782.686] {Default Queue} -> wl_surface#487.set_input_region(wl_region#511) -[2618782.692] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618782.698] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618782.702] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618782.706] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618782.710] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618782.715] {Default Queue} -> wl_surface#487.damage(0, 0, 2, 2) -[2618782.722] {Default Queue} -> wl_region#511.subtract(0, 0, 485, 34) -[2618782.728] {Default Queue} -> wl_region#511.add(-483, -52, 485, 34) -[2618782.734] {Default Queue} -> wl_surface#487.set_opaque_region(wl_region#512) -[2618782.738] {Default Queue} -> wl_surface#487.set_input_region(wl_region#511) -[2618782.743] {Default Queue} -> wl_surface#487.attach(wl_buffer#509, 0, 0) -[2618782.748] {Default Queue} -> wl_surface#487.commit() -[2618782.753] {Default Queue} -> wl_region#703.subtract(0, 0, 2, 2) -[2618782.757] {Default Queue} -> wl_subsurface#698.set_position(18, 0) -[2618782.761] {Default Queue} -> wl_region#703.subtract(0, 0, 37, 48) -[2618782.766] {Default Queue} -> wl_region#703.add(-20, -49, 19, 48) -[2618782.771] {Default Queue} -> wl_surface#679.set_opaque_region(wl_region#704) -[2618782.777] {Default Queue} -> wl_surface#679.set_input_region(wl_region#703) -[2618782.781] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618782.785] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618782.790] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618782.796] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618782.801] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618782.805] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2618782.811] {Default Queue} -> wl_region#703.subtract(0, 0, 485, 54) -[2618782.817] {Default Queue} -> wl_region#703.add(-483, -72, 467, 54) -[2618782.822] {Default Queue} -> wl_surface#679.set_opaque_region(wl_region#704) -[2618782.827] {Default Queue} -> wl_surface#679.set_input_region(wl_region#703) -[2618782.831] {Default Queue} -> wl_surface#679.attach(wl_buffer#701, 0, 0) -[2618782.835] {Default Queue} -> wl_surface#679.commit() -[2618782.844] {Default Queue} -> wl_region#543.subtract(0, 0, 2, 2) -[2618782.848] {Default Queue} -> wl_subsurface#538.set_position(0, 0) -[2618782.852] {Default Queue} -> wl_region#543.subtract(0, 0, 19, 48) -[2618782.856] {Default Queue} -> wl_region#543.add(-20, -49, 19, 48) -[2618782.866] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618782.870] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618782.874] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618782.881] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618782.885] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618782.889] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618782.893] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618782.900] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618782.907] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618782.912] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618782.916] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618782.923] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618782.932] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618782.938] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618782.942] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618782.950] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618782.955] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618782.959] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618782.963] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618782.968] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618782.972] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618782.976] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618782.980] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618782.985] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618782.990] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618782.994] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618782.998] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618783.002] {Default Queue} -> wl_surface#519.attach(wl_buffer#541, 0, 0) -[2618783.007] {Default Queue} -> wl_surface#519.commit() -[2618783.012] {Default Queue} -> wl_region#575.subtract(0, 0, 2, 2) -[2618783.016] {Default Queue} -> wl_subsurface#570.set_position(0, 0) -[2618783.020] {Default Queue} -> wl_region#575.subtract(0, 0, 19, 48) -[2618783.025] {Default Queue} -> wl_region#575.add(-20, -49, 19, 48) -[2618783.029] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618783.033] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618783.037] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618783.043] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618783.048] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618783.052] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618783.056] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618783.061] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618783.066] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618783.070] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618783.074] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618783.080] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618783.085] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618783.089] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618783.093] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618783.097] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618783.102] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618783.106] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618783.111] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618783.117] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618783.122] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618783.127] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618783.133] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618783.139] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618783.144] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618783.149] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618783.154] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618783.161] {Default Queue} -> wl_surface#551.attach(wl_buffer#573, 0, 0) -[2618783.166] {Default Queue} -> wl_surface#551.commit() -[2618783.172] {Default Queue} -> wl_region#607.subtract(0, 0, 2, 2) -[2618783.177] {Default Queue} -> wl_subsurface#602.set_position(0, 0) -[2618783.182] {Default Queue} -> wl_region#607.subtract(0, 0, 19, 48) -[2618783.187] {Default Queue} -> wl_region#607.add(-20, -49, 19, 48) -[2618783.196] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618783.205] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618783.209] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618783.217] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618783.222] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618783.227] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618783.232] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618783.239] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618783.244] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618783.249] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618783.254] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618783.262] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618783.268] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618783.272] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618783.276] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618783.281] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618783.285] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618783.290] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618783.294] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618783.298] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618783.303] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618783.307] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618783.311] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618783.316] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618783.321] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618783.325] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618783.329] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618783.334] {Default Queue} -> wl_surface#583.attach(wl_buffer#605, 0, 0) -[2618783.338] {Default Queue} -> wl_surface#583.commit() -[2618783.345] {Default Queue} -> wl_region#639.subtract(0, 0, 2, 2) -[2618783.351] {Default Queue} -> wl_subsurface#634.set_position(0, 0) -[2618783.356] {Default Queue} -> wl_region#639.subtract(0, 0, 19, 48) -[2618783.361] {Default Queue} -> wl_region#639.add(-20, -49, 19, 48) -[2618783.367] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618783.372] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618783.377] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618783.386] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618783.393] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618783.397] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618783.401] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618783.407] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618783.411] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618783.415] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618783.419] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618783.426] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618783.430] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618783.434] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618783.438] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618783.443] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618783.447] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618783.451] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618783.455] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618783.460] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618783.464] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618783.472] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618783.478] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618783.483] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618783.487] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618783.491] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618783.495] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618783.500] {Default Queue} -> wl_surface#615.attach(wl_buffer#637, 0, 0) -[2618783.505] {Default Queue} -> wl_surface#615.commit() -[2618783.510] {Default Queue} -> wl_region#671.subtract(0, 0, 2, 2) -[2618783.514] {Default Queue} -> wl_subsurface#666.set_position(0, 0) -[2618783.518] {Default Queue} -> wl_region#671.subtract(0, 0, 19, 48) -[2618783.522] {Default Queue} -> wl_region#671.add(-20, -49, 19, 48) -[2618783.526] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618783.530] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618783.535] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618783.541] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618783.546] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618783.550] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618783.554] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618783.559] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618783.564] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618783.568] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618783.572] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618783.579] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618783.583] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618783.587] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618783.591] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618783.596] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618783.600] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618783.604] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618783.608] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618783.613] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618783.617] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618783.621] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618783.625] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618783.630] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618783.635] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618783.639] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618783.643] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618783.648] {Default Queue} -> wl_surface#647.attach(wl_buffer#669, 0, 0) -[2618783.652] {Default Queue} -> wl_surface#647.commit() -[2618783.665] {Default Queue} -> wl_region#735.subtract(0, 0, 2, 2) -[2618783.671] {Default Queue} -> wl_subsurface#730.set_position(0, 0) -[2618783.675] {Default Queue} -> wl_region#735.subtract(0, 0, 19, 48) -[2618783.679] {Default Queue} -> wl_region#735.add(-20, -49, 19, 48) -[2618783.683] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2618783.687] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2618783.691] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618783.700] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) -[2618783.705] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) -[2618783.709] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2618783.713] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2618783.827] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) -[2618783.832] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) -[2618783.836] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2618783.846] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2618783.853] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618783.858] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618783.938] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) -[2618783.943] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) -[2618783.947] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2618783.951] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2618783.957] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618783.961] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618783.966] {Default Queue} -> wl_surface#711.attach(wl_buffer#733, 0, 0) -[2618783.970] {Default Queue} -> wl_surface#711.commit() -[2618783.976] {Default Queue} -> wl_region#767.subtract(0, 0, 2, 2) -[2618783.980] {Default Queue} -> wl_subsurface#762.set_position(0, 0) -[2618783.984] {Default Queue} -> wl_region#767.subtract(0, 0, 19, 48) -[2618783.989] {Default Queue} -> wl_region#767.add(-20, -49, 19, 48) -[2618783.993] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2618783.997] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2618784.001] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618784.008] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) -[2618784.012] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) -[2618784.017] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2618784.021] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2618784.115] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) -[2618784.119] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) -[2618784.124] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2618784.128] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2618784.133] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618784.137] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618784.211] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) -[2618784.216] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) -[2618784.220] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2618784.224] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2618784.229] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618784.233] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618784.238] {Default Queue} -> wl_surface#743.attach(wl_buffer#765, 0, 0) -[2618784.242] {Default Queue} -> wl_surface#743.commit() -[2618784.248] {Default Queue} -> wl_region#799.subtract(0, 0, 2, 2) -[2618784.252] {Default Queue} -> wl_subsurface#794.set_position(0, 0) -[2618784.257] {Default Queue} -> wl_region#799.subtract(0, 0, 19, 48) -[2618784.261] {Default Queue} -> wl_region#799.add(-20, -49, 19, 48) -[2618784.265] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2618784.269] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2618784.273] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618784.282] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) -[2618784.286] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) -[2618784.290] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2618784.294] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2618784.385] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) -[2618784.391] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) -[2618784.395] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2618784.399] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2618784.404] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618784.408] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618784.482] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) -[2618784.487] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) -[2618784.495] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2618784.501] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2618784.505] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618784.510] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618784.515] {Default Queue} -> wl_surface#775.attach(wl_buffer#797, 0, 0) -[2618784.519] {Default Queue} -> wl_surface#775.commit() -[2618784.525] {Default Queue} -> wl_region#831.subtract(0, 0, 2, 2) -[2618784.530] {Default Queue} -> wl_subsurface#826.set_position(0, 0) -[2618784.538] {Default Queue} -> wl_region#831.subtract(0, 0, 19, 48) -[2618784.543] {Default Queue} -> wl_region#831.add(-20, -49, 19, 48) -[2618784.547] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2618784.551] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2618784.555] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618784.564] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) -[2618784.568] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) -[2618784.572] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2618784.576] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2618784.665] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) -[2618784.670] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) -[2618784.675] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2618784.678] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2618784.683] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618784.688] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618784.760] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) -[2618784.764] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) -[2618784.768] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2618784.772] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2618784.777] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618784.781] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618784.786] {Default Queue} -> wl_surface#807.attach(wl_buffer#829, 0, 0) -[2618784.791] {Default Queue} -> wl_surface#807.commit() -[2618784.796] {Default Queue} -> wl_region#863.subtract(0, 0, 2, 2) -[2618784.800] {Default Queue} -> wl_subsurface#858.set_position(0, 0) -[2618784.804] {Default Queue} -> wl_region#863.subtract(0, 0, 19, 48) -[2618784.808] {Default Queue} -> wl_region#863.add(-20, -49, 19, 48) -[2618784.812] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2618784.816] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2618784.820] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618784.828] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) -[2618784.832] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) -[2618784.836] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2618784.840] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2618784.935] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) -[2618784.940] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) -[2618784.944] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2618784.948] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2618784.953] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618784.957] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618785.030] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) -[2618785.035] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) -[2618785.039] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2618785.043] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2618785.048] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618785.052] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618785.057] {Default Queue} -> wl_surface#839.attach(wl_buffer#861, 0, 0) -[2618785.062] {Default Queue} -> wl_surface#839.commit() -[2618785.075] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) -[2618785.081] {Default Queue} -> wl_subsurface#922.set_position(0, 0) -[2618785.086] {Default Queue} -> wl_region#927.subtract(0, 0, 2, 2) -[2618785.090] {Default Queue} -> wl_region#927.add(0, 0, 2, 2) -[2618785.094] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618785.098] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618785.103] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618785.107] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) -[2618785.112] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) -[2618785.116] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) -[2618785.120] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) -[2618785.124] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) -[2618785.129] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2618785.133] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618785.137] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618785.141] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618785.145] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618785.150] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618785.154] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618785.158] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2618785.162] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) -[2618785.166] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) -[2618785.170] {Default Queue} -> wl_surface#903.damage(0, 0, 2, 2) -[2618785.179] {Default Queue} -> wl_region#927.subtract(0, 0, 22, 51) -[2618785.183] {Default Queue} -> wl_region#927.add(-20, -49, 22, 51) -[2618785.187] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618785.191] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618785.198] {Default Queue} -> wl_region#927.subtract(0, 0, 22, 51) -[2618785.202] {Default Queue} -> wl_region#927.add(-20, -49, 22, 51) -[2618785.207] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618785.211] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618785.216] {Default Queue} -> wl_region#927.subtract(0, 0, 22, 51) -[2618785.221] {Default Queue} -> wl_region#927.add(-20, -49, 22, 51) -[2618785.225] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618785.229] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618785.234] {Default Queue} -> wl_region#927.subtract(0, 0, 22, 51) -[2618785.238] {Default Queue} -> wl_region#927.add(-20, -49, 22, 51) -[2618785.243] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618785.246] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618785.253] {Default Queue} -> wl_region#927.subtract(0, 0, 22, 51) -[2618785.257] {Default Queue} -> wl_region#927.add(-20, -49, 22, 51) -[2618785.261] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618785.265] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618785.270] {Default Queue} -> wl_surface#903.attach(wl_buffer#925, 0, 0) -[2618785.274] {Default Queue} -> wl_surface#903.commit() -[2618785.280] {Default Queue} -> wl_region#1471.subtract(0, 0, 2, 2) -[2618785.284] {Default Queue} -> wl_subsurface#1466.set_position(115, 0) -[2618785.288] {Default Queue} -> wl_region#1471.subtract(0, 0, 117, 2) -[2618785.292] {Default Queue} -> wl_region#1471.add(0, 0, 2, 2) -[2618785.296] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618785.300] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618785.304] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618785.309] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618785.314] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) -[2618785.318] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) -[2618785.322] {Default Queue} -> wl_surface#1447.damage(0, 0, 2, 2) -[2618785.330] {Default Queue} -> wl_region#1471.subtract(0, 0, 137, 218) -[2618785.338] {Default Queue} -> wl_region#1471.add(-20, -216, 22, 218) -[2618785.343] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618785.347] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618785.353] {Default Queue} -> wl_region#1471.subtract(0, 0, 137, 218) -[2618785.357] {Default Queue} -> wl_region#1471.add(-20, -216, 22, 218) -[2618785.361] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618785.365] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618785.370] {Default Queue} -> wl_region#1471.subtract(0, 0, 137, 218) -[2618785.374] {Default Queue} -> wl_region#1471.add(-20, -216, 22, 218) -[2618785.378] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618785.382] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618785.387] {Default Queue} -> wl_region#1471.subtract(0, 0, 137, 218) -[2618785.391] {Default Queue} -> wl_region#1471.add(-20, -216, 22, 218) -[2618785.395] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618785.400] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618785.409] {Default Queue} -> wl_region#1471.subtract(0, 0, 137, 218) -[2618785.439] {Default Queue} -> wl_region#1471.add(-20, -216, 22, 218) -[2618785.447] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618785.453] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618785.461] {Default Queue} -> wl_surface#1447.attach(wl_buffer#1469, 0, 0) -[2618785.469] {Default Queue} -> wl_surface#1447.commit() -[2618785.477] {Default Queue} -> wl_region#1631.subtract(0, 0, 2, 2) -[2618785.482] {Default Queue} -> wl_subsurface#1626.set_position(230, 0) -[2618785.486] {Default Queue} -> wl_region#1631.subtract(0, 0, 232, 2) -[2618785.491] {Default Queue} -> wl_region#1631.add(0, 0, 2, 2) -[2618785.495] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618785.499] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618785.504] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618785.508] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) -[2618785.512] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) -[2618785.516] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) -[2618785.520] {Default Queue} -> wl_surface#1607.damage(0, 0, 2, 2) -[2618785.531] {Default Queue} -> wl_region#1631.subtract(0, 0, 252, 218) -[2618785.536] {Default Queue} -> wl_region#1631.add(-20, -216, 22, 218) -[2618785.540] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618785.545] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618785.552] {Default Queue} -> wl_region#1631.subtract(0, 0, 252, 218) -[2618785.556] {Default Queue} -> wl_region#1631.add(-20, -216, 22, 218) -[2618785.560] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618785.564] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618785.570] {Default Queue} -> wl_region#1631.subtract(0, 0, 252, 218) -[2618785.574] {Default Queue} -> wl_region#1631.add(-20, -216, 22, 218) -[2618785.578] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618785.582] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618785.587] {Default Queue} -> wl_region#1631.subtract(0, 0, 252, 218) -[2618785.592] {Default Queue} -> wl_region#1631.add(-20, -216, 22, 218) -[2618785.596] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618785.600] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618785.607] {Default Queue} -> wl_region#1631.subtract(0, 0, 252, 218) -[2618785.611] {Default Queue} -> wl_region#1631.add(-20, -216, 22, 218) -[2618785.615] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618785.619] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618785.624] {Default Queue} -> wl_surface#1607.attach(wl_buffer#1629, 0, 0) -[2618785.633] {Default Queue} -> wl_surface#1607.commit() -[2618785.644] {Default Queue} -> wl_region#1791.subtract(0, 0, 2, 2) -[2618785.649] {Default Queue} -> wl_subsurface#1786.set_position(345, 0) -[2618785.653] {Default Queue} -> wl_region#1791.subtract(0, 0, 347, 2) -[2618785.657] {Default Queue} -> wl_region#1791.add(0, 0, 2, 2) -[2618785.661] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618785.665] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618785.670] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618785.674] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618785.679] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) -[2618785.683] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) -[2618785.687] {Default Queue} -> wl_surface#1772.damage(0, 0, 2, 2) -[2618785.694] {Default Queue} -> wl_region#1791.subtract(0, 0, 367, 218) -[2618785.699] {Default Queue} -> wl_region#1791.add(-20, -216, 22, 218) -[2618785.703] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618785.707] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618785.712] {Default Queue} -> wl_region#1791.subtract(0, 0, 367, 218) -[2618785.716] {Default Queue} -> wl_region#1791.add(-20, -216, 22, 218) -[2618785.722] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618785.727] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618785.734] {Default Queue} -> wl_region#1791.subtract(0, 0, 367, 218) -[2618785.741] {Default Queue} -> wl_region#1791.add(-20, -216, 22, 218) -[2618785.746] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618785.750] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618785.755] {Default Queue} -> wl_region#1791.subtract(0, 0, 367, 218) -[2618785.759] {Default Queue} -> wl_region#1791.add(-20, -216, 22, 218) -[2618785.764] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618785.768] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618785.774] {Default Queue} -> wl_region#1791.subtract(0, 0, 367, 218) -[2618785.778] {Default Queue} -> wl_region#1791.add(-20, -216, 22, 218) -[2618785.782] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618785.786] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618785.791] {Default Queue} -> wl_surface#1772.attach(wl_buffer#1789, 0, 0) -[2618785.795] {Default Queue} -> wl_surface#1772.commit() -[2618785.800] {Default Queue} -> wl_region#1951.subtract(0, 0, 2, 2) -[2618785.804] {Default Queue} -> wl_subsurface#1946.set_position(460, 0) -[2618785.808] {Default Queue} -> wl_region#1951.subtract(0, 0, 462, 2) -[2618785.812] {Default Queue} -> wl_region#1951.add(0, 0, 2, 2) -[2618785.816] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618785.821] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618785.825] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618785.829] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618785.833] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) -[2618785.838] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) -[2618785.842] {Default Queue} -> wl_surface#1927.damage(0, 0, 2, 2) -[2618785.851] {Default Queue} -> wl_region#1951.subtract(0, 0, 482, 218) -[2618785.855] {Default Queue} -> wl_region#1951.add(-20, -216, 22, 218) -[2618785.859] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618785.864] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618785.883] {Default Queue} -> wl_region#1951.subtract(0, 0, 482, 218) -[2618785.889] {Default Queue} -> wl_region#1951.add(-20, -216, 22, 218) -[2618785.893] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618785.897] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618785.903] {Default Queue} -> wl_region#1951.subtract(0, 0, 482, 218) -[2618785.910] {Default Queue} -> wl_region#1951.add(-20, -216, 22, 218) -[2618785.921] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618785.926] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618785.931] {Default Queue} -> wl_region#1951.subtract(0, 0, 482, 218) -[2618785.935] {Default Queue} -> wl_region#1951.add(-20, -216, 22, 218) -[2618785.939] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618785.943] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618785.950] {Default Queue} -> wl_region#1951.subtract(0, 0, 482, 218) -[2618785.954] {Default Queue} -> wl_region#1951.add(-20, -216, 22, 218) -[2618785.958] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618785.962] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618785.967] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1949, 0, 0) -[2618785.971] {Default Queue} -> wl_surface#1927.commit() -[2618785.979] {Default Queue} -> wl_region#991.subtract(0, 0, 2, 2) -[2618785.984] {Default Queue} -> wl_subsurface#986.set_position(0, 0) -[2618785.988] {Default Queue} -> wl_region#991.subtract(0, 0, 19, 48) -[2618785.992] {Default Queue} -> wl_region#991.add(-20, -49, 19, 48) -[2618785.996] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2618786.000] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2618786.004] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618786.012] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 218) -[2618786.016] {Default Queue} -> wl_region#991.add(-20, -216, 22, 218) -[2618786.020] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2618786.024] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2618786.117] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 218) -[2618786.124] {Default Queue} -> wl_region#991.add(-20, -216, 22, 218) -[2618786.129] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2618786.135] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2618786.144] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618786.150] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618786.234] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 218) -[2618786.241] {Default Queue} -> wl_region#991.add(-20, -216, 22, 218) -[2618786.247] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2618786.252] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2618786.261] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618786.267] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 2) -[2618786.273] {Default Queue} -> wl_surface#967.attach(wl_buffer#989, 0, 0) -[2618786.277] {Default Queue} -> wl_surface#967.commit() -[2618786.284] {Default Queue} -> wl_region#1023.subtract(0, 0, 2, 2) -[2618786.289] {Default Queue} -> wl_subsurface#1018.set_position(0, 20) -[2618786.294] {Default Queue} -> wl_region#1023.subtract(0, 0, 19, 68) -[2618786.299] {Default Queue} -> wl_region#1023.add(-20, -49, 19, 48) -[2618786.305] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) -[2618786.328] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) -[2618786.337] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) -[2618786.342] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) -[2618786.347] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) -[2618786.351] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) -[2618786.356] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) -[2618786.360] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2618786.364] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618786.368] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618786.372] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618786.377] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618786.381] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618786.385] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618786.394] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2618786.401] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) -[2618786.411] {Default Queue} -> wl_region#1023.subtract(0, 0, 25, 221) -[2618786.415] {Default Queue} -> wl_region#1023.add(-23, -219, 25, 201) -[2618786.420] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) -[2618786.424] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) -[2618786.430] {Default Queue} -> wl_surface#999.attach(wl_buffer#1021, 0, 0) -[2618786.434] {Default Queue} -> wl_surface#999.commit() -[2618786.443] {Default Queue} -> wl_region#1087.subtract(0, 0, 2, 2) -[2618786.448] {Default Queue} -> wl_subsurface#1082.set_position(0, 0) -[2618786.452] {Default Queue} -> wl_region#1087.subtract(0, 0, 19, 48) -[2618786.456] {Default Queue} -> wl_region#1087.add(-20, -49, 19, 48) -[2618786.461] {Default Queue} -> wl_surface#1063.set_opaque_region(wl_region#1088) -[2618786.466] {Default Queue} -> wl_surface#1063.set_input_region(wl_region#1087) -[2618786.470] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) -[2618786.474] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) -[2618786.478] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) -[2618786.482] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) -[2618786.486] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) -[2618786.491] {Default Queue} -> wl_surface#1063.damage(0, 0, 2, 2) -[2618786.497] {Default Queue} -> wl_region#1087.subtract(0, 0, 25, 201) -[2618786.501] {Default Queue} -> wl_region#1087.add(-23, -219, 25, 201) -[2618786.506] {Default Queue} -> wl_surface#1063.set_opaque_region(wl_region#1088) -[2618786.510] {Default Queue} -> wl_surface#1063.set_input_region(wl_region#1087) -[2618786.514] {Default Queue} -> wl_surface#1063.attach(wl_buffer#1085, 0, 0) -[2618786.519] {Default Queue} -> wl_surface#1063.commit() -[2618786.524] {Default Queue} -> wl_region#1279.subtract(0, 0, 2, 2) -[2618786.528] {Default Queue} -> wl_subsurface#1274.set_position(18, 0) -[2618786.533] {Default Queue} -> wl_region#1279.subtract(0, 0, 37, 48) -[2618786.537] {Default Queue} -> wl_region#1279.add(-20, -49, 19, 48) -[2618786.541] {Default Queue} -> wl_surface#1255.set_opaque_region(wl_region#1280) -[2618786.545] {Default Queue} -> wl_surface#1255.set_input_region(wl_region#1279) -[2618786.549] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618786.553] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618786.557] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618786.561] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618786.566] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618786.570] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618786.576] {Default Queue} -> wl_region#1279.subtract(0, 0, 25, 221) -[2618786.581] {Default Queue} -> wl_region#1279.add(-23, -239, 7, 221) -[2618786.585] {Default Queue} -> wl_surface#1255.set_opaque_region(wl_region#1280) -[2618786.589] {Default Queue} -> wl_surface#1255.set_input_region(wl_region#1279) -[2618786.593] {Default Queue} -> wl_surface#1255.attach(wl_buffer#1277, 0, 0) -[2618786.598] {Default Queue} -> wl_surface#1255.commit() -[2618786.607] {Default Queue} -> wl_region#1119.subtract(0, 0, 2, 2) -[2618786.611] {Default Queue} -> wl_subsurface#1114.set_position(0, 0) -[2618786.616] {Default Queue} -> wl_region#1119.subtract(0, 0, 19, 48) -[2618786.620] {Default Queue} -> wl_region#1119.add(-20, -49, 19, 48) -[2618786.624] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618786.628] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618786.632] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) -[2618786.638] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) -[2618786.643] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) -[2618786.647] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618786.651] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618786.658] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) -[2618786.665] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) -[2618786.671] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618786.675] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618786.680] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) -[2618786.685] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) -[2618786.689] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618786.693] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618786.698] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) -[2618786.702] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) -[2618786.706] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618786.710] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618786.715] {Default Queue} -> wl_surface#1095.attach(wl_buffer#1117, 0, 0) -[2618786.719] {Default Queue} -> wl_surface#1095.commit() -[2618786.724] {Default Queue} -> wl_region#1151.subtract(0, 0, 2, 2) -[2618786.728] {Default Queue} -> wl_subsurface#1146.set_position(0, 0) -[2618786.732] {Default Queue} -> wl_region#1151.subtract(0, 0, 19, 48) -[2618786.736] {Default Queue} -> wl_region#1151.add(-20, -49, 19, 48) -[2618786.740] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618786.744] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618786.748] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) -[2618786.754] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) -[2618786.759] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) -[2618786.763] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618786.767] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618786.773] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) -[2618786.778] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) -[2618786.782] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618786.786] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618786.790] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) -[2618786.795] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) -[2618786.799] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618786.803] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618786.807] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) -[2618786.811] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) -[2618786.816] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618786.820] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618786.824] {Default Queue} -> wl_surface#1127.attach(wl_buffer#1149, 0, 0) -[2618786.828] {Default Queue} -> wl_surface#1127.commit() -[2618786.834] {Default Queue} -> wl_region#1183.subtract(0, 0, 2, 2) -[2618786.838] {Default Queue} -> wl_subsurface#1178.set_position(0, 0) -[2618786.842] {Default Queue} -> wl_region#1183.subtract(0, 0, 19, 48) -[2618786.846] {Default Queue} -> wl_region#1183.add(-20, -49, 19, 48) -[2618786.851] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618786.854] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618786.858] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) -[2618786.870] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) -[2618786.874] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) -[2618786.878] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618786.882] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618786.889] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) -[2618786.893] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) -[2618786.897] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618786.901] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618786.908] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) -[2618786.914] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) -[2618786.918] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618786.922] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618786.927] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) -[2618786.931] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) -[2618786.935] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618786.939] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618786.944] {Default Queue} -> wl_surface#1159.attach(wl_buffer#1181, 0, 0) -[2618786.948] {Default Queue} -> wl_surface#1159.commit() -[2618786.953] {Default Queue} -> wl_region#1215.subtract(0, 0, 2, 2) -[2618786.957] {Default Queue} -> wl_subsurface#1210.set_position(0, 0) -[2618786.961] {Default Queue} -> wl_region#1215.subtract(0, 0, 19, 48) -[2618786.965] {Default Queue} -> wl_region#1215.add(-20, -49, 19, 48) -[2618786.969] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618786.973] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618786.978] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) -[2618786.984] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) -[2618786.988] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) -[2618786.992] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618786.996] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618787.003] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) -[2618787.007] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) -[2618787.011] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618787.015] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618787.020] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) -[2618787.024] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) -[2618787.028] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618787.032] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618787.037] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) -[2618787.041] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) -[2618787.045] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618787.049] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618787.053] {Default Queue} -> wl_surface#1191.attach(wl_buffer#1213, 0, 0) -[2618787.057] {Default Queue} -> wl_surface#1191.commit() -[2618787.062] {Default Queue} -> wl_region#1247.subtract(0, 0, 2, 2) -[2618787.067] {Default Queue} -> wl_subsurface#1242.set_position(0, 0) -[2618787.071] {Default Queue} -> wl_region#1247.subtract(0, 0, 19, 48) -[2618787.075] {Default Queue} -> wl_region#1247.add(-20, -49, 19, 48) -[2618787.079] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618787.083] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618787.087] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) -[2618787.093] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) -[2618787.097] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) -[2618787.101] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618787.105] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618787.112] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) -[2618787.116] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) -[2618787.120] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618787.124] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618787.129] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) -[2618787.133] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) -[2618787.137] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618787.145] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618787.155] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) -[2618787.160] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) -[2618787.164] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618787.168] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618787.173] {Default Queue} -> wl_surface#1223.attach(wl_buffer#1245, 0, 0) -[2618787.177] {Default Queue} -> wl_surface#1223.commit() -[2618787.186] {Default Queue} -> wl_region#1311.subtract(0, 0, 2, 2) -[2618787.191] {Default Queue} -> wl_subsurface#1306.set_position(0, 0) -[2618787.195] {Default Queue} -> wl_region#1311.subtract(0, 0, 19, 48) -[2618787.199] {Default Queue} -> wl_region#1311.add(-20, -49, 19, 48) -[2618787.203] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2618787.207] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2618787.211] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618787.219] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) -[2618787.223] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) -[2618787.228] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2618787.232] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2618787.351] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) -[2618787.357] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) -[2618787.362] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2618787.366] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2618787.373] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618787.378] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618787.492] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) -[2618787.497] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) -[2618787.502] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2618787.506] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2618787.511] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618787.515] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618787.520] {Default Queue} -> wl_surface#1287.attach(wl_buffer#1309, 0, 0) -[2618787.525] {Default Queue} -> wl_surface#1287.commit() -[2618787.531] {Default Queue} -> wl_region#1343.subtract(0, 0, 2, 2) -[2618787.535] {Default Queue} -> wl_subsurface#1338.set_position(0, 0) -[2618787.539] {Default Queue} -> wl_region#1343.subtract(0, 0, 19, 48) -[2618787.544] {Default Queue} -> wl_region#1343.add(-20, -49, 19, 48) -[2618787.548] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2618787.552] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2618787.556] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618787.565] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) -[2618787.569] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) -[2618787.574] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2618787.578] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2618787.672] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) -[2618787.676] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) -[2618787.681] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2618787.685] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2618787.690] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618787.694] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618787.768] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) -[2618787.773] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) -[2618787.777] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2618787.781] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2618787.786] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618787.790] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618787.800] {Default Queue} -> wl_surface#1319.attach(wl_buffer#1341, 0, 0) -[2618787.806] {Default Queue} -> wl_surface#1319.commit() -[2618787.812] {Default Queue} -> wl_region#1375.subtract(0, 0, 2, 2) -[2618787.816] {Default Queue} -> wl_subsurface#1370.set_position(0, 0) -[2618787.823] {Default Queue} -> wl_region#1375.subtract(0, 0, 19, 48) -[2618787.827] {Default Queue} -> wl_region#1375.add(-20, -49, 19, 48) -[2618787.831] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2618787.836] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2618787.840] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618787.847] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) -[2618787.851] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) -[2618787.855] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2618787.859] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2618787.956] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) -[2618787.961] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) -[2618787.965] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2618787.969] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2618787.974] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618787.979] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618788.061] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) -[2618788.066] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) -[2618788.070] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2618788.074] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2618788.080] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618788.084] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618788.089] {Default Queue} -> wl_surface#1351.attach(wl_buffer#1373, 0, 0) -[2618788.094] {Default Queue} -> wl_surface#1351.commit() -[2618788.099] {Default Queue} -> wl_region#1407.subtract(0, 0, 2, 2) -[2618788.103] {Default Queue} -> wl_subsurface#1402.set_position(0, 0) -[2618788.107] {Default Queue} -> wl_region#1407.subtract(0, 0, 19, 48) -[2618788.112] {Default Queue} -> wl_region#1407.add(-20, -49, 19, 48) -[2618788.116] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2618788.120] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2618788.124] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618788.132] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) -[2618788.136] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) -[2618788.141] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2618788.145] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2618788.280] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) -[2618788.288] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) -[2618788.294] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2618788.299] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2618788.304] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618788.309] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618788.386] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) -[2618788.391] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) -[2618788.396] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2618788.400] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2618788.405] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618788.409] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618788.415] {Default Queue} -> wl_surface#1383.attach(wl_buffer#1405, 0, 0) -[2618788.419] {Default Queue} -> wl_surface#1383.commit() -[2618788.425] {Default Queue} -> wl_region#1439.subtract(0, 0, 2, 2) -[2618788.429] {Default Queue} -> wl_subsurface#1434.set_position(0, 0) -[2618788.433] {Default Queue} -> wl_region#1439.subtract(0, 0, 19, 48) -[2618788.448] {Default Queue} -> wl_region#1439.add(-20, -49, 19, 48) -[2618788.457] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2618788.461] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2618788.465] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618788.474] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) -[2618788.479] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) -[2618788.483] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2618788.487] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2618788.580] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) -[2618788.585] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) -[2618788.589] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2618788.593] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2618788.598] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618788.603] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618788.688] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) -[2618788.693] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) -[2618788.697] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2618788.701] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2618788.706] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618788.710] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618788.715] {Default Queue} -> wl_surface#1415.attach(wl_buffer#1437, 0, 0) -[2618788.719] {Default Queue} -> wl_surface#1415.commit() -[2618788.728] {Default Queue} -> wl_region#1535.subtract(0, 0, 2, 2) -[2618788.733] {Default Queue} -> wl_subsurface#1530.set_position(0, 0) -[2618788.737] {Default Queue} -> wl_region#1535.subtract(0, 0, 19, 48) -[2618788.741] {Default Queue} -> wl_region#1535.add(-20, -49, 19, 48) -[2618788.745] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2618788.749] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2618788.753] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618788.761] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 218) -[2618788.766] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 218) -[2618788.770] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2618788.774] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2618788.871] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 218) -[2618788.876] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 218) -[2618788.900] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2618788.905] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2618788.911] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618788.916] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618789.030] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 218) -[2618789.044] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 218) -[2618789.050] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2618789.055] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2618789.065] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618789.070] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 2) -[2618789.076] {Default Queue} -> wl_surface#1511.attach(wl_buffer#1533, 0, 0) -[2618789.081] {Default Queue} -> wl_surface#1511.commit() -[2618789.087] {Default Queue} -> wl_region#1567.subtract(0, 0, 2, 2) -[2618789.092] {Default Queue} -> wl_subsurface#1562.set_position(0, 20) -[2618789.096] {Default Queue} -> wl_region#1567.subtract(0, 0, 19, 68) -[2618789.100] {Default Queue} -> wl_region#1567.add(-20, -49, 19, 48) -[2618789.105] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) -[2618789.109] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) -[2618789.113] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618789.117] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) -[2618789.130] {Default Queue} -> wl_region#1567.subtract(0, 0, 140, 221) -[2618789.138] {Default Queue} -> wl_region#1567.add(-138, -219, 140, 201) -[2618789.143] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) -[2618789.147] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) -[2618789.152] {Default Queue} -> wl_surface#1543.attach(wl_buffer#1565, 0, 0) -[2618789.157] {Default Queue} -> wl_surface#1543.commit() -[2618789.166] {Default Queue} -> wl_region#1695.subtract(0, 0, 2, 2) -[2618789.170] {Default Queue} -> wl_subsurface#1690.set_position(0, 0) -[2618789.174] {Default Queue} -> wl_region#1695.subtract(0, 0, 19, 48) -[2618789.179] {Default Queue} -> wl_region#1695.add(-20, -49, 19, 48) -[2618789.183] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2618789.187] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2618789.191] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618789.199] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 218) -[2618789.203] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 218) -[2618789.207] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2618789.211] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2618789.269] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 218) -[2618789.274] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 218) -[2618789.279] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2618789.283] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2618789.288] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618789.293] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618789.333] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 218) -[2618789.338] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 218) -[2618789.342] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2618789.346] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2618789.351] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618789.356] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 2) -[2618789.361] {Default Queue} -> wl_surface#1671.attach(wl_buffer#1693, 0, 0) -[2618789.365] {Default Queue} -> wl_surface#1671.commit() -[2618789.370] {Default Queue} -> wl_region#1727.subtract(0, 0, 2, 2) -[2618789.375] {Default Queue} -> wl_subsurface#1722.set_position(0, 20) -[2618789.379] {Default Queue} -> wl_region#1727.subtract(0, 0, 19, 68) -[2618789.383] {Default Queue} -> wl_region#1727.add(-20, -49, 19, 48) -[2618789.388] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) -[2618789.392] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) -[2618789.396] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) -[2618789.400] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) -[2618789.406] {Default Queue} -> wl_region#1727.subtract(0, 0, 255, 221) -[2618789.410] {Default Queue} -> wl_region#1727.add(-253, -219, 255, 201) -[2618789.414] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) -[2618789.418] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) -[2618789.423] {Default Queue} -> wl_surface#1703.attach(wl_buffer#1725, 0, 0) -[2618789.428] {Default Queue} -> wl_surface#1703.commit() -[2618789.436] {Default Queue} -> wl_region#1855.subtract(0, 0, 2, 2) -[2618789.440] {Default Queue} -> wl_subsurface#1850.set_position(0, 0) -[2618789.444] {Default Queue} -> wl_region#1855.subtract(0, 0, 19, 48) -[2618789.448] {Default Queue} -> wl_region#1855.add(-20, -49, 19, 48) -[2618789.452] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2618789.456] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2618789.460] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618789.472] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 218) -[2618789.477] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 218) -[2618789.484] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2618789.490] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2618789.562] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 218) -[2618789.567] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 218) -[2618789.571] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2618789.575] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2618789.581] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618789.585] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618789.634] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 218) -[2618789.639] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 218) -[2618789.643] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2618789.647] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2618789.652] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618789.657] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 2) -[2618789.662] {Default Queue} -> wl_surface#1831.attach(wl_buffer#1853, 0, 0) -[2618789.666] {Default Queue} -> wl_surface#1831.commit() -[2618789.671] {Default Queue} -> wl_region#1887.subtract(0, 0, 2, 2) -[2618789.676] {Default Queue} -> wl_subsurface#1882.set_position(0, 20) -[2618789.680] {Default Queue} -> wl_region#1887.subtract(0, 0, 19, 68) -[2618789.684] {Default Queue} -> wl_region#1887.add(-20, -49, 19, 48) -[2618789.688] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) -[2618789.692] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) -[2618789.696] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618789.700] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) -[2618789.707] {Default Queue} -> wl_region#1887.subtract(0, 0, 370, 221) -[2618789.711] {Default Queue} -> wl_region#1887.add(-368, -219, 370, 201) -[2618789.715] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) -[2618789.719] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) -[2618789.724] {Default Queue} -> wl_surface#1863.attach(wl_buffer#1885, 0, 0) -[2618789.728] {Default Queue} -> wl_surface#1863.commit() -[2618789.737] {Default Queue} -> wl_region#2015.subtract(0, 0, 2, 2) -[2618789.741] {Default Queue} -> wl_subsurface#2010.set_position(0, 0) -[2618789.745] {Default Queue} -> wl_region#2015.subtract(0, 0, 19, 48) -[2618789.749] {Default Queue} -> wl_region#2015.add(-20, -49, 19, 48) -[2618789.753] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2618789.757] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2618789.761] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618789.768] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 218) -[2618789.773] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 218) -[2618789.777] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2618789.781] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2618789.834] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 218) -[2618789.839] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 218) -[2618789.843] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2618789.847] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2618789.852] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618789.856] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618789.905] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 218) -[2618789.910] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 218) -[2618789.914] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2618789.918] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2618789.923] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618789.927] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 2) -[2618789.932] {Default Queue} -> wl_surface#1991.attach(wl_buffer#2013, 0, 0) -[2618789.936] {Default Queue} -> wl_surface#1991.commit() -[2618789.945] {Default Queue} -> wl_region#2047.subtract(0, 0, 2, 2) -[2618789.951] {Default Queue} -> wl_subsurface#2042.set_position(0, 20) -[2618789.955] {Default Queue} -> wl_region#2047.subtract(0, 0, 19, 68) -[2618789.959] {Default Queue} -> wl_region#2047.add(-20, -49, 19, 48) -[2618789.963] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) -[2618789.967] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) -[2618789.971] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618789.975] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) -[2618789.981] {Default Queue} -> wl_region#2047.subtract(0, 0, 485, 221) -[2618789.985] {Default Queue} -> wl_region#2047.add(-483, -219, 485, 201) -[2618789.990] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) -[2618789.993] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) -[2618789.998] {Default Queue} -> wl_surface#2023.attach(wl_buffer#2045, 0, 0) -[2618790.002] {Default Queue} -> wl_surface#2023.commit() -[2618790.013] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) -[2618790.017] {Default Queue} -> wl_subsurface#2138.set_position(0, 0) -[2618790.022] {Default Queue} -> wl_region#2143.subtract(0, 0, 2, 2) -[2618790.026] {Default Queue} -> wl_region#2143.add(0, 0, 2, 2) -[2618790.030] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618790.034] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618790.038] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618790.043] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618790.047] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618790.051] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618790.055] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) -[2618790.059] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) -[2618790.064] {Default Queue} -> wl_surface#2119.damage(0, 0, 2, 2) -[2618790.071] {Default Queue} -> wl_region#2143.subtract(0, 0, 22, 51) -[2618790.076] {Default Queue} -> wl_region#2143.add(-20, -49, 22, 51) -[2618790.080] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618790.084] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618790.091] {Default Queue} -> wl_region#2143.subtract(0, 0, 22, 51) -[2618790.096] {Default Queue} -> wl_region#2143.add(-20, -49, 22, 51) -[2618790.100] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618790.104] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618790.110] {Default Queue} -> wl_region#2143.subtract(0, 0, 22, 51) -[2618790.114] {Default Queue} -> wl_region#2143.add(-20, -49, 22, 51) -[2618790.118] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618790.122] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618790.127] {Default Queue} -> wl_region#2143.subtract(0, 0, 22, 51) -[2618790.131] {Default Queue} -> wl_region#2143.add(-20, -49, 22, 51) -[2618790.135] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618790.139] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618790.146] {Default Queue} -> wl_region#2143.subtract(0, 0, 22, 51) -[2618790.150] {Default Queue} -> wl_region#2143.add(-20, -49, 22, 51) -[2618790.154] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618790.158] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618790.164] {Default Queue} -> wl_surface#2119.attach(wl_buffer#2141, 0, 0) -[2618790.169] {Default Queue} -> wl_surface#2119.commit() -[2618790.174] {Default Queue} -> wl_region#2367.subtract(0, 0, 2, 2) -[2618790.178] {Default Queue} -> wl_subsurface#2362.set_position(115, 0) -[2618790.182] {Default Queue} -> wl_region#2367.subtract(0, 0, 117, 2) -[2618790.186] {Default Queue} -> wl_region#2367.add(0, 0, 2, 2) -[2618790.190] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618790.194] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618790.202] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618790.208] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) -[2618790.212] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) -[2618790.217] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) -[2618790.221] {Default Queue} -> wl_surface#2343.damage(0, 0, 2, 2) -[2618790.228] {Default Queue} -> wl_region#2367.subtract(0, 0, 137, 385) -[2618790.232] {Default Queue} -> wl_region#2367.add(-20, -383, 22, 385) -[2618790.236] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618790.240] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618790.246] {Default Queue} -> wl_region#2367.subtract(0, 0, 137, 385) -[2618790.250] {Default Queue} -> wl_region#2367.add(-20, -383, 22, 385) -[2618790.254] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618790.258] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618790.263] {Default Queue} -> wl_region#2367.subtract(0, 0, 137, 385) -[2618790.267] {Default Queue} -> wl_region#2367.add(-20, -383, 22, 385) -[2618790.271] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618790.275] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618790.280] {Default Queue} -> wl_region#2367.subtract(0, 0, 137, 385) -[2618790.284] {Default Queue} -> wl_region#2367.add(-20, -383, 22, 385) -[2618790.288] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618790.292] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618790.299] {Default Queue} -> wl_region#2367.subtract(0, 0, 137, 385) -[2618790.303] {Default Queue} -> wl_region#2367.add(-20, -383, 22, 385) -[2618790.307] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618790.311] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618790.315] {Default Queue} -> wl_surface#2343.attach(wl_buffer#2365, 0, 0) -[2618790.319] {Default Queue} -> wl_surface#2343.commit() -[2618790.324] {Default Queue} -> wl_region#2527.subtract(0, 0, 2, 2) -[2618790.329] {Default Queue} -> wl_subsurface#2522.set_position(230, 0) -[2618790.333] {Default Queue} -> wl_region#2527.subtract(0, 0, 232, 2) -[2618790.337] {Default Queue} -> wl_region#2527.add(0, 0, 2, 2) -[2618790.341] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618790.345] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618790.349] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618790.354] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) -[2618790.358] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) -[2618790.362] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) -[2618790.367] {Default Queue} -> wl_surface#2508.damage(0, 0, 2, 2) -[2618790.374] {Default Queue} -> wl_region#2527.subtract(0, 0, 252, 385) -[2618790.379] {Default Queue} -> wl_region#2527.add(-20, -383, 22, 385) -[2618790.383] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618790.387] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618790.392] {Default Queue} -> wl_region#2527.subtract(0, 0, 252, 385) -[2618790.397] {Default Queue} -> wl_region#2527.add(-20, -383, 22, 385) -[2618790.401] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618790.405] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618790.410] {Default Queue} -> wl_region#2527.subtract(0, 0, 252, 385) -[2618790.414] {Default Queue} -> wl_region#2527.add(-20, -383, 22, 385) -[2618790.418] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618790.422] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618790.427] {Default Queue} -> wl_region#2527.subtract(0, 0, 252, 385) -[2618790.431] {Default Queue} -> wl_region#2527.add(-20, -383, 22, 385) -[2618790.435] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618790.439] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618790.448] {Default Queue} -> wl_region#2527.subtract(0, 0, 252, 385) -[2618790.453] {Default Queue} -> wl_region#2527.add(-20, -383, 22, 385) -[2618790.458] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618790.462] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618790.466] {Default Queue} -> wl_surface#2508.attach(wl_buffer#2525, 0, 0) -[2618790.470] {Default Queue} -> wl_surface#2508.commit() -[2618790.475] {Default Queue} -> wl_region#2687.subtract(0, 0, 2, 2) -[2618790.479] {Default Queue} -> wl_subsurface#2682.set_position(345, 0) -[2618790.483] {Default Queue} -> wl_region#2687.subtract(0, 0, 347, 2) -[2618790.487] {Default Queue} -> wl_region#2687.add(0, 0, 2, 2) -[2618790.492] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618790.496] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618790.500] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618790.505] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) -[2618790.509] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) -[2618790.513] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) -[2618790.517] {Default Queue} -> wl_surface#2663.damage(0, 0, 2, 2) -[2618790.524] {Default Queue} -> wl_region#2687.subtract(0, 0, 367, 385) -[2618790.529] {Default Queue} -> wl_region#2687.add(-20, -383, 22, 385) -[2618790.534] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618790.538] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618790.543] {Default Queue} -> wl_region#2687.subtract(0, 0, 367, 385) -[2618790.547] {Default Queue} -> wl_region#2687.add(-20, -383, 22, 385) -[2618790.551] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618790.555] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618790.560] {Default Queue} -> wl_region#2687.subtract(0, 0, 367, 385) -[2618790.564] {Default Queue} -> wl_region#2687.add(-20, -383, 22, 385) -[2618790.568] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618790.572] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618790.577] {Default Queue} -> wl_region#2687.subtract(0, 0, 367, 385) -[2618790.581] {Default Queue} -> wl_region#2687.add(-20, -383, 22, 385) -[2618790.585] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618790.589] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618790.595] {Default Queue} -> wl_region#2687.subtract(0, 0, 367, 385) -[2618790.599] {Default Queue} -> wl_region#2687.add(-20, -383, 22, 385) -[2618790.604] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618790.608] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618790.612] {Default Queue} -> wl_surface#2663.attach(wl_buffer#2685, 0, 0) -[2618790.616] {Default Queue} -> wl_surface#2663.commit() -[2618790.621] {Default Queue} -> wl_region#2847.subtract(0, 0, 2, 2) -[2618790.626] {Default Queue} -> wl_subsurface#2842.set_position(460, 0) -[2618790.630] {Default Queue} -> wl_region#2847.subtract(0, 0, 462, 2) -[2618790.634] {Default Queue} -> wl_region#2847.add(0, 0, 2, 2) -[2618790.638] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618790.642] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618790.646] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618790.651] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) -[2618790.655] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) -[2618790.659] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) -[2618790.663] {Default Queue} -> wl_surface#2823.damage(0, 0, 2, 2) -[2618790.674] {Default Queue} -> wl_region#2847.subtract(0, 0, 482, 385) -[2618790.679] {Default Queue} -> wl_region#2847.add(-20, -383, 22, 385) -[2618790.683] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618790.687] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618790.695] {Default Queue} -> wl_region#2847.subtract(0, 0, 482, 385) -[2618790.701] {Default Queue} -> wl_region#2847.add(-20, -383, 22, 385) -[2618790.705] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618790.709] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618790.714] {Default Queue} -> wl_region#2847.subtract(0, 0, 482, 385) -[2618790.718] {Default Queue} -> wl_region#2847.add(-20, -383, 22, 385) -[2618790.722] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618790.726] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618790.731] {Default Queue} -> wl_region#2847.subtract(0, 0, 482, 385) -[2618790.735] {Default Queue} -> wl_region#2847.add(-20, -383, 22, 385) -[2618790.739] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618790.743] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618790.749] {Default Queue} -> wl_region#2847.subtract(0, 0, 482, 385) -[2618790.754] {Default Queue} -> wl_region#2847.add(-20, -383, 22, 385) -[2618790.758] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618790.762] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618790.766] {Default Queue} -> wl_surface#2823.attach(wl_buffer#2845, 0, 0) -[2618790.770] {Default Queue} -> wl_surface#2823.commit() -[2618790.779] {Default Queue} -> wl_region#2207.subtract(0, 0, 2, 2) -[2618790.783] {Default Queue} -> wl_subsurface#2202.set_position(0, 0) -[2618790.787] {Default Queue} -> wl_region#2207.subtract(0, 0, 19, 48) -[2618790.792] {Default Queue} -> wl_region#2207.add(-20, -49, 19, 48) -[2618790.796] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2618790.800] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2618790.804] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618790.811] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 385) -[2618790.815] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 385) -[2618790.820] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2618790.823] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2618790.969] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 385) -[2618791.174] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 385) -[2618791.183] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2618791.188] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2618791.199] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618791.256] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618791.435] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 385) -[2618791.445] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 385) -[2618791.450] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2618791.454] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2618791.463] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618791.469] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 2) -[2618791.474] {Default Queue} -> wl_surface#2183.attach(wl_buffer#2205, 0, 0) -[2618791.479] {Default Queue} -> wl_surface#2183.commit() -[2618791.485] {Default Queue} -> wl_region#2239.subtract(0, 0, 2, 2) -[2618791.489] {Default Queue} -> wl_subsurface#2234.set_position(0, 20) -[2618791.493] {Default Queue} -> wl_region#2239.subtract(0, 0, 19, 68) -[2618791.497] {Default Queue} -> wl_region#2239.add(-20, -49, 19, 48) -[2618791.502] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) -[2618791.506] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) -[2618791.510] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618791.514] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618791.518] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618791.522] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) -[2618791.529] {Default Queue} -> wl_region#2239.subtract(0, 0, 25, 388) -[2618791.539] {Default Queue} -> wl_region#2239.add(-23, -386, 25, 368) -[2618791.546] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) -[2618791.550] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) -[2618791.555] {Default Queue} -> wl_surface#2215.attach(wl_buffer#2237, 0, 0) -[2618791.560] {Default Queue} -> wl_surface#2215.commit() -[2618791.569] {Default Queue} -> wl_region#2431.subtract(0, 0, 2, 2) -[2618791.574] {Default Queue} -> wl_subsurface#2426.set_position(0, 0) -[2618791.578] {Default Queue} -> wl_region#2431.subtract(0, 0, 19, 48) -[2618791.582] {Default Queue} -> wl_region#2431.add(-20, -49, 19, 48) -[2618791.587] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2618791.591] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2618791.595] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618791.602] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 385) -[2618791.607] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 385) -[2618791.611] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2618791.615] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2618791.729] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 385) -[2618791.735] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 385) -[2618791.739] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2618791.743] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2618791.749] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618791.753] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618791.838] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 385) -[2618791.843] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 385) -[2618791.847] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2618791.851] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2618791.857] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618791.869] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 2) -[2618791.874] {Default Queue} -> wl_surface#2407.attach(wl_buffer#2429, 0, 0) -[2618791.878] {Default Queue} -> wl_surface#2407.commit() -[2618791.883] {Default Queue} -> wl_region#2463.subtract(0, 0, 2, 2) -[2618791.888] {Default Queue} -> wl_subsurface#2458.set_position(0, 20) -[2618791.892] {Default Queue} -> wl_region#2463.subtract(0, 0, 19, 68) -[2618791.896] {Default Queue} -> wl_region#2463.add(-20, -49, 19, 48) -[2618791.900] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) -[2618791.904] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) -[2618791.908] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) -[2618791.913] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) -[2618791.919] {Default Queue} -> wl_region#2463.subtract(0, 0, 140, 388) -[2618791.923] {Default Queue} -> wl_region#2463.add(-138, -386, 140, 368) -[2618791.928] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) -[2618791.931] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) -[2618791.936] {Default Queue} -> wl_surface#2439.attach(wl_buffer#2461, 0, 0) -[2618791.940] {Default Queue} -> wl_surface#2439.commit() -[2618791.949] {Default Queue} -> wl_region#2591.subtract(0, 0, 2, 2) -[2618791.954] {Default Queue} -> wl_subsurface#2586.set_position(0, 0) -[2618792.045] {Default Queue} -> wl_region#2591.subtract(0, 0, 19, 48) -[2618792.051] {Default Queue} -> wl_region#2591.add(-20, -49, 19, 48) -[2618792.056] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2618792.060] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2618792.064] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618792.074] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 385) -[2618792.079] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 385) -[2618792.083] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2618792.087] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2618792.221] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 385) -[2618792.230] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 385) -[2618792.236] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2618792.242] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2618792.252] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618792.258] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618792.397] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 385) -[2618792.405] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 385) -[2618792.409] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2618792.414] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2618792.421] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618792.425] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 2) -[2618792.431] {Default Queue} -> wl_surface#2567.attach(wl_buffer#2589, 0, 0) -[2618792.436] {Default Queue} -> wl_surface#2567.commit() -[2618792.442] {Default Queue} -> wl_region#2623.subtract(0, 0, 2, 2) -[2618792.446] {Default Queue} -> wl_subsurface#2618.set_position(0, 20) -[2618792.450] {Default Queue} -> wl_region#2623.subtract(0, 0, 19, 68) -[2618792.455] {Default Queue} -> wl_region#2623.add(-20, -49, 19, 48) -[2618792.459] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) -[2618792.463] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) -[2618792.467] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) -[2618792.471] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) -[2618792.479] {Default Queue} -> wl_region#2623.subtract(0, 0, 255, 388) -[2618792.483] {Default Queue} -> wl_region#2623.add(-253, -386, 255, 368) -[2618792.487] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) -[2618792.491] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) -[2618792.496] {Default Queue} -> wl_surface#2599.attach(wl_buffer#2621, 0, 0) -[2618792.501] {Default Queue} -> wl_surface#2599.commit() -[2618792.509] {Default Queue} -> wl_region#2751.subtract(0, 0, 2, 2) -[2618792.514] {Default Queue} -> wl_subsurface#2746.set_position(0, 0) -[2618792.518] {Default Queue} -> wl_region#2751.subtract(0, 0, 19, 48) -[2618792.522] {Default Queue} -> wl_region#2751.add(-20, -49, 19, 48) -[2618792.526] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2618792.530] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2618792.534] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618792.542] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 385) -[2618792.546] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 385) -[2618792.551] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2618792.555] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2618792.636] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 385) -[2618792.641] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 385) -[2618792.645] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2618792.649] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2618792.654] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618792.659] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618792.722] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 385) -[2618792.726] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 385) -[2618792.731] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2618792.735] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2618792.740] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618792.744] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 2) -[2618792.749] {Default Queue} -> wl_surface#2727.attach(wl_buffer#2749, 0, 0) -[2618792.753] {Default Queue} -> wl_surface#2727.commit() -[2618792.758] {Default Queue} -> wl_region#2783.subtract(0, 0, 2, 2) -[2618792.763] {Default Queue} -> wl_subsurface#2778.set_position(0, 20) -[2618792.769] {Default Queue} -> wl_region#2783.subtract(0, 0, 19, 68) -[2618792.776] {Default Queue} -> wl_region#2783.add(-20, -49, 19, 48) -[2618792.780] {Default Queue} -> wl_surface#2759.set_opaque_region(wl_region#2784) -[2618792.784] {Default Queue} -> wl_surface#2759.set_input_region(wl_region#2783) -[2618792.789] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) -[2618792.793] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) -[2618792.799] {Default Queue} -> wl_region#2783.subtract(0, 0, 370, 388) -[2618792.804] {Default Queue} -> wl_region#2783.add(-368, -386, 370, 368) -[2618792.808] {Default Queue} -> wl_surface#2759.set_opaque_region(wl_region#2784) -[2618792.812] {Default Queue} -> wl_surface#2759.set_input_region(wl_region#2783) -[2618792.817] {Default Queue} -> wl_surface#2759.attach(wl_buffer#2781, 0, 0) -[2618792.821] {Default Queue} -> wl_surface#2759.commit() -[2618792.830] {Default Queue} -> wl_region#2911.subtract(0, 0, 2, 2) -[2618792.834] {Default Queue} -> wl_subsurface#2906.set_position(0, 0) -[2618792.838] {Default Queue} -> wl_region#2911.subtract(0, 0, 19, 48) -[2618792.842] {Default Queue} -> wl_region#2911.add(-20, -49, 19, 48) -[2618792.846] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2618792.887] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2618792.892] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618792.900] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 385) -[2618792.904] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 385) -[2618792.908] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2618792.912] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2618793.007] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 385) -[2618793.012] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 385) -[2618793.017] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2618793.021] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2618793.027] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618793.031] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618793.102] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 385) -[2618793.106] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 385) -[2618793.110] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2618793.115] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2618793.120] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618793.124] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 2) -[2618793.129] {Default Queue} -> wl_surface#2887.attach(wl_buffer#2909, 0, 0) -[2618793.133] {Default Queue} -> wl_surface#2887.commit() -[2618793.138] {Default Queue} -> wl_region#2943.subtract(0, 0, 2, 2) -[2618793.143] {Default Queue} -> wl_subsurface#2938.set_position(0, 20) -[2618793.147] {Default Queue} -> wl_region#2943.subtract(0, 0, 19, 68) -[2618793.151] {Default Queue} -> wl_region#2943.add(-20, -49, 19, 48) -[2618793.155] {Default Queue} -> wl_surface#2919.set_opaque_region(wl_region#2944) -[2618793.159] {Default Queue} -> wl_surface#2919.set_input_region(wl_region#2943) -[2618793.163] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) -[2618793.167] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) -[2618793.173] {Default Queue} -> wl_region#2943.subtract(0, 0, 485, 388) -[2618793.178] {Default Queue} -> wl_region#2943.add(-483, -386, 485, 368) -[2618793.182] {Default Queue} -> wl_surface#2919.set_opaque_region(wl_region#2944) -[2618793.190] {Default Queue} -> wl_surface#2919.set_input_region(wl_region#2943) -[2618793.196] {Default Queue} -> wl_surface#2919.attach(wl_buffer#2941, 0, 0) -[2618793.200] {Default Queue} -> wl_surface#2919.commit() -[2618793.210] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) -[2618793.215] {Default Queue} -> wl_subsurface#3034.set_position(0, 0) -[2618793.219] {Default Queue} -> wl_region#3039.subtract(0, 0, 2, 2) -[2618793.226] {Default Queue} -> wl_region#3039.add(0, 0, 2, 2) -[2618793.233] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618793.237] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618793.242] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618793.247] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618793.251] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618793.256] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) -[2618793.260] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) -[2618793.264] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) -[2618793.268] {Default Queue} -> wl_surface#3015.damage(0, 0, 2, 2) -[2618793.277] {Default Queue} -> wl_region#3039.subtract(0, 0, 22, 51) -[2618793.281] {Default Queue} -> wl_region#3039.add(-20, -49, 22, 51) -[2618793.286] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618793.290] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618793.296] {Default Queue} -> wl_region#3039.subtract(0, 0, 22, 51) -[2618793.300] {Default Queue} -> wl_region#3039.add(-20, -49, 22, 51) -[2618793.304] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618793.308] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618793.314] {Default Queue} -> wl_region#3039.subtract(0, 0, 22, 51) -[2618793.318] {Default Queue} -> wl_region#3039.add(-20, -49, 22, 51) -[2618793.322] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618793.326] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618793.331] {Default Queue} -> wl_region#3039.subtract(0, 0, 22, 51) -[2618793.335] {Default Queue} -> wl_region#3039.add(-20, -49, 22, 51) -[2618793.339] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618793.343] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618793.350] {Default Queue} -> wl_region#3039.subtract(0, 0, 22, 51) -[2618793.354] {Default Queue} -> wl_region#3039.add(-20, -49, 22, 51) -[2618793.358] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618793.362] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618793.366] {Default Queue} -> wl_surface#3015.attach(wl_buffer#3037, 0, 0) -[2618793.371] {Default Queue} -> wl_surface#3015.commit() -[2618793.376] {Default Queue} -> wl_region#3263.subtract(0, 0, 2, 2) -[2618793.381] {Default Queue} -> wl_subsurface#3258.set_position(115, 0) -[2618793.385] {Default Queue} -> wl_region#3263.subtract(0, 0, 117, 2) -[2618793.389] {Default Queue} -> wl_region#3263.add(0, 0, 2, 2) -[2618793.393] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618793.397] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618793.402] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618793.407] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2618793.412] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2618793.417] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618793.422] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) -[2618793.426] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) -[2618793.430] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) -[2618793.434] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) -[2618793.438] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) -[2618793.442] {Default Queue} -> wl_surface#3239.damage(0, 0, 2, 2) -[2618793.451] {Default Queue} -> wl_region#3263.subtract(0, 0, 137, 552) -[2618793.455] {Default Queue} -> wl_region#3263.add(-20, -550, 22, 552) -[2618793.460] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618793.464] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618793.469] {Default Queue} -> wl_region#3263.subtract(0, 0, 137, 552) -[2618793.473] {Default Queue} -> wl_region#3263.add(-20, -550, 22, 552) -[2618793.477] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618793.484] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618793.491] {Default Queue} -> wl_region#3263.subtract(0, 0, 137, 552) -[2618793.495] {Default Queue} -> wl_region#3263.add(-20, -550, 22, 552) -[2618793.499] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618793.503] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618793.508] {Default Queue} -> wl_region#3263.subtract(0, 0, 137, 552) -[2618793.512] {Default Queue} -> wl_region#3263.add(-20, -550, 22, 552) -[2618793.516] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618793.520] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618793.527] {Default Queue} -> wl_region#3263.subtract(0, 0, 137, 552) -[2618793.531] {Default Queue} -> wl_region#3263.add(-20, -550, 22, 552) -[2618793.535] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618793.539] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618793.544] {Default Queue} -> wl_surface#3239.attach(wl_buffer#3261, 0, 0) -[2618793.548] {Default Queue} -> wl_surface#3239.commit() -[2618793.553] {Default Queue} -> wl_region#3583.subtract(0, 0, 2, 2) -[2618793.558] {Default Queue} -> wl_subsurface#3578.set_position(230, 0) -[2618793.562] {Default Queue} -> wl_region#3583.subtract(0, 0, 232, 2) -[2618793.566] {Default Queue} -> wl_region#3583.add(0, 0, 2, 2) -[2618793.571] {Default Queue} -> wl_surface#3559.set_opaque_region(wl_region#3584) -[2618793.575] {Default Queue} -> wl_surface#3559.set_input_region(wl_region#3583) -[2618793.579] {Default Queue} -> wl_surface#3559.damage(0, 0, 2, 2) -[2618793.586] {Default Queue} -> wl_region#3583.subtract(0, 0, 252, 552) -[2618793.590] {Default Queue} -> wl_region#3583.add(-20, -550, 22, 552) -[2618793.594] {Default Queue} -> wl_surface#3559.set_opaque_region(wl_region#3584) -[2618793.598] {Default Queue} -> wl_surface#3559.set_input_region(wl_region#3583) -[2618793.660] {Default Queue} -> wl_surface#3559.attach(wl_buffer#3581, 0, 0) -[2618793.665] {Default Queue} -> wl_surface#3559.commit() -[2618793.671] {Default Queue} -> wl_region#3615.subtract(0, 0, 2, 2) -[2618793.676] {Default Queue} -> wl_subsurface#3610.set_position(345, 0) -[2618793.680] {Default Queue} -> wl_region#3615.subtract(0, 0, 347, 2) -[2618793.684] {Default Queue} -> wl_region#3615.add(0, 0, 2, 2) -[2618793.689] {Default Queue} -> wl_surface#3591.set_opaque_region(wl_region#3616) -[2618793.693] {Default Queue} -> wl_surface#3591.set_input_region(wl_region#3615) -[2618793.697] {Default Queue} -> wl_surface#3591.damage(0, 0, 2, 2) -[2618793.704] {Default Queue} -> wl_region#3615.subtract(0, 0, 367, 552) -[2618793.709] {Default Queue} -> wl_region#3615.add(-20, -550, 22, 552) -[2618793.713] {Default Queue} -> wl_surface#3591.set_opaque_region(wl_region#3616) -[2618793.717] {Default Queue} -> wl_surface#3591.set_input_region(wl_region#3615) -[2618793.721] {Default Queue} -> wl_surface#3591.attach(wl_buffer#3613, 0, 0) -[2618793.726] {Default Queue} -> wl_surface#3591.commit() -[2618793.731] {Default Queue} -> wl_region#3647.subtract(0, 0, 2, 2) -[2618793.735] {Default Queue} -> wl_subsurface#3642.set_position(460, 0) -[2618793.739] {Default Queue} -> wl_region#3647.subtract(0, 0, 462, 2) -[2618793.743] {Default Queue} -> wl_region#3647.add(0, 0, 2, 2) -[2618793.747] {Default Queue} -> wl_surface#3623.set_opaque_region(wl_region#3648) -[2618793.751] {Default Queue} -> wl_surface#3623.set_input_region(wl_region#3647) -[2618793.755] {Default Queue} -> wl_surface#3623.damage(0, 0, 2, 2) -[2618793.762] {Default Queue} -> wl_region#3647.subtract(0, 0, 482, 552) -[2618793.766] {Default Queue} -> wl_region#3647.add(-20, -550, 22, 552) -[2618793.770] {Default Queue} -> wl_surface#3623.set_opaque_region(wl_region#3648) -[2618793.774] {Default Queue} -> wl_surface#3623.set_input_region(wl_region#3647) -[2618793.779] {Default Queue} -> wl_surface#3623.attach(wl_buffer#3645, 0, 0) -[2618793.783] {Default Queue} -> wl_surface#3623.commit() -[2618793.792] {Default Queue} -> wl_region#3103.subtract(0, 0, 2, 2) -[2618793.800] {Default Queue} -> wl_subsurface#3098.set_position(0, 0) -[2618793.806] {Default Queue} -> wl_region#3103.subtract(0, 0, 19, 48) -[2618793.811] {Default Queue} -> wl_region#3103.add(-20, -49, 19, 48) -[2618793.815] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2618793.819] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2618793.823] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618793.832] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 552) -[2618793.836] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 552) -[2618793.840] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2618793.844] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2618794.045] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 552) -[2618794.055] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 552) -[2618794.060] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2618794.064] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2618794.073] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618794.078] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618794.146] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 552) -[2618794.151] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 552) -[2618794.155] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2618794.159] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2618794.165] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618794.169] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 2) -[2618794.175] {Default Queue} -> wl_surface#3079.attach(wl_buffer#3101, 0, 0) -[2618794.179] {Default Queue} -> wl_surface#3079.commit() -[2618794.185] {Default Queue} -> wl_region#3135.subtract(0, 0, 2, 2) -[2618794.189] {Default Queue} -> wl_subsurface#3130.set_position(0, 20) -[2618794.194] {Default Queue} -> wl_region#3135.subtract(0, 0, 19, 68) -[2618794.198] {Default Queue} -> wl_region#3135.add(-20, -49, 19, 48) -[2618794.202] {Default Queue} -> wl_surface#3111.set_opaque_region(wl_region#3136) -[2618794.206] {Default Queue} -> wl_surface#3111.set_input_region(wl_region#3135) -[2618794.210] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618794.214] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618794.219] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) -[2618794.223] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) -[2618794.229] {Default Queue} -> wl_region#3135.subtract(0, 0, 25, 555) -[2618794.234] {Default Queue} -> wl_region#3135.add(-23, -553, 25, 535) -[2618794.238] {Default Queue} -> wl_surface#3111.set_opaque_region(wl_region#3136) -[2618794.242] {Default Queue} -> wl_surface#3111.set_input_region(wl_region#3135) -[2618794.247] {Default Queue} -> wl_surface#3111.attach(wl_buffer#3133, 0, 0) -[2618794.251] {Default Queue} -> wl_surface#3111.commit() -[2618794.260] {Default Queue} -> wl_region#3327.subtract(0, 0, 2, 2) -[2618794.264] {Default Queue} -> wl_subsurface#3322.set_position(0, 0) -[2618794.268] {Default Queue} -> wl_region#3327.subtract(0, 0, 19, 48) -[2618794.273] {Default Queue} -> wl_region#3327.add(-20, -49, 19, 48) -[2618794.277] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2618794.281] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2618794.285] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618794.293] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 552) -[2618794.297] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 552) -[2618794.302] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2618794.306] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2618794.381] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 552) -[2618794.385] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 552) -[2618794.390] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2618794.398] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2618794.406] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618794.410] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618794.470] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 552) -[2618794.475] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 552) -[2618794.479] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2618794.483] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2618794.488] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618794.492] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 2) -[2618794.497] {Default Queue} -> wl_surface#3303.attach(wl_buffer#3325, 0, 0) -[2618794.501] {Default Queue} -> wl_surface#3303.commit() -[2618794.507] {Default Queue} -> wl_region#3359.subtract(0, 0, 2, 2) -[2618794.511] {Default Queue} -> wl_subsurface#3354.set_position(0, 20) -[2618794.515] {Default Queue} -> wl_region#3359.subtract(0, 0, 19, 68) -[2618794.519] {Default Queue} -> wl_region#3359.add(-20, -49, 19, 48) -[2618794.523] {Default Queue} -> wl_surface#3335.set_opaque_region(wl_region#3360) -[2618794.527] {Default Queue} -> wl_surface#3335.set_input_region(wl_region#3359) -[2618794.532] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2618794.536] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2618794.540] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618794.544] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) -[2618794.548] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) -[2618794.552] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) -[2618794.556] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) -[2618794.562] {Default Queue} -> wl_region#3359.subtract(0, 0, 140, 555) -[2618794.567] {Default Queue} -> wl_region#3359.add(-138, -553, 140, 535) -[2618794.571] {Default Queue} -> wl_surface#3335.set_opaque_region(wl_region#3360) -[2618794.575] {Default Queue} -> wl_surface#3335.set_input_region(wl_region#3359) -[2618794.580] {Default Queue} -> wl_surface#3335.attach(wl_buffer#3357, 0, 0) -[2618794.584] {Default Queue} -> wl_surface#3335.commit() -[2618794.662] {Display Queue} wl_display#1.delete_id(3683) -[2618794.668] {Display Queue} wl_display#1.delete_id(94) -[2618794.673] {Display Queue} wl_display#1.delete_id(93) -[2618794.677] {Display Queue} wl_display#1.delete_id(92) -[2618794.681] {Display Queue} wl_display#1.delete_id(91) -[2618794.685] {Display Queue} wl_display#1.delete_id(3515) -[2618794.689] {Display Queue} wl_display#1.delete_id(3516) -[2618794.692] {Display Queue} wl_display#1.delete_id(3485) -[2618794.696] {Display Queue} wl_display#1.delete_id(3486) -[2618794.700] {Display Queue} wl_display#1.delete_id(3483) -[2618794.704] {Display Queue} wl_display#1.delete_id(3675) -[2618794.708] {Display Queue} wl_display#1.delete_id(3678) -[2618794.712] {Display Queue} wl_display#1.delete_id(3674) -[2618794.716] {Display Queue} wl_display#1.delete_id(3676) -[2618794.720] {Display Queue} wl_display#1.delete_id(3677) -[2618794.724] {Display Queue} wl_display#1.delete_id(2502) -[2618794.728] {Display Queue} wl_display#1.delete_id(2505) -[2618794.732] {Display Queue} wl_display#1.delete_id(2506) -[2618794.736] {Display Queue} wl_display#1.delete_id(2503) -[2618794.740] {Display Queue} wl_display#1.delete_id(2504) -[2618794.743] {Display Queue} wl_display#1.delete_id(3682) -[2618794.747] {Display Queue} wl_display#1.delete_id(3681) -[2618794.751] {Display Queue} wl_display#1.delete_id(3671) -[2618794.755] {Display Queue} wl_display#1.delete_id(3679) -[2618794.759] {Display Queue} wl_display#1.delete_id(3684) -[2618794.763] {Display Queue} wl_display#1.delete_id(3484) -[2618794.767] {Display Queue} wl_display#1.delete_id(3293) -[2618794.771] {Display Queue} wl_display#1.delete_id(3294) -[2618794.775] {Display Queue} wl_display#1.delete_id(3291) -[2618794.779] {Display Queue} wl_display#1.delete_id(3292) -[2618794.782] {Default Queue} wl_pointer#2889.motion(187310411, 29.00000000, 19.39843750) -[2618794.788] {Default Queue} wl_pointer#2921.motion(187310411, 29.00000000, 19.39843750) -[2618794.797] {Default Queue} wl_pointer#2953.motion(187310411, 29.00000000, 19.39843750) -[2618794.803] {Default Queue} wl_pointer#2985.motion(187310411, 29.00000000, 19.39843750) -[2618794.808] {Default Queue} wl_pointer#3017.motion(187310411, 29.00000000, 19.39843750) -[2618794.812] {Default Queue} wl_pointer#3049.motion(187310411, 29.00000000, 19.39843750) -[2618794.817] {Default Queue} wl_pointer#3081.motion(187310411, 29.00000000, 19.39843750) -[2618794.821] {Default Queue} wl_pointer#3113.motion(187310411, 29.00000000, 19.39843750) -[2618794.826] {Default Queue} wl_pointer#3145.motion(187310411, 29.00000000, 19.39843750) -[2618794.830] {Default Queue} wl_pointer#3177.motion(187310411, 29.00000000, 19.39843750) -[2618794.834] {Default Queue} wl_pointer#3209.motion(187310411, 29.00000000, 19.39843750) -[2618794.839] {Default Queue} wl_pointer#3241.motion(187310411, 29.00000000, 19.39843750) -[2618794.843] {Default Queue} wl_pointer#3273.motion(187310411, 29.00000000, 19.39843750) -[2618794.848] {Default Queue} wl_pointer#3305.motion(187310411, 29.00000000, 19.39843750) -[2618794.852] {Default Queue} wl_pointer#3337.motion(187310411, 29.00000000, 19.39843750) -[2618794.856] {Default Queue} wl_pointer#3369.motion(187310411, 29.00000000, 19.39843750) -[2618794.866] {Default Queue} wl_pointer#3401.motion(187310411, 29.00000000, 19.39843750) -[2618794.871] {Default Queue} wl_pointer#3433.motion(187310411, 29.00000000, 19.39843750) -[2618794.876] {Default Queue} wl_pointer#3465.motion(187310411, 29.00000000, 19.39843750) -[2618794.881] {Default Queue} wl_pointer#3497.motion(187310411, 29.00000000, 19.39843750) -[2618794.885] {Default Queue} wl_pointer#3529.motion(187310411, 29.00000000, 19.39843750) -[2618794.890] {Default Queue} wl_pointer#3561.motion(187310411, 29.00000000, 19.39843750) -[2618794.894] {Default Queue} wl_pointer#3593.motion(187310411, 29.00000000, 19.39843750) -[2618794.898] {Default Queue} wl_pointer#3625.motion(187310411, 29.00000000, 19.39843750) -[2618794.903] {Default Queue} wl_pointer#3657.motion(187310411, 29.00000000, 19.39843750) -[2618794.907] {Default Queue} wl_pointer#3695.motion(187310411, 29.00000000, 19.39843750) -[2618794.911] {Default Queue} wl_pointer#24.motion(187310416, 29.00000000, 19.00000000) -[2618794.916] {Default Queue} wl_pointer#81.motion(187310416, 29.00000000, 19.00000000) -[2618794.921] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618794.926] {Default Queue} wl_pointer#105.motion(187310416, 29.00000000, 19.00000000) -[2618794.930] {Default Queue} wl_pointer#137.motion(187310416, 29.00000000, 19.00000000) -[2618794.935] {Default Queue} wl_pointer#169.motion(187310416, 29.00000000, 19.00000000) -[2618794.939] {Default Queue} wl_pointer#201.motion(187310416, 29.00000000, 19.00000000) -[2618794.944] {Default Queue} wl_pointer#233.motion(187310416, 29.00000000, 19.00000000) -[2618794.949] {Default Queue} wl_pointer#265.motion(187310416, 29.00000000, 19.00000000) -[2618794.954] {Default Queue} wl_pointer#297.motion(187310416, 29.00000000, 19.00000000) -[2618794.958] {Default Queue} wl_pointer#329.motion(187310416, 29.00000000, 19.00000000) -[2618794.962] {Default Queue} wl_pointer#361.motion(187310416, 29.00000000, 19.00000000) -[2618794.967] {Default Queue} wl_pointer#393.motion(187310416, 29.00000000, 19.00000000) -[2618794.971] {Default Queue} wl_pointer#425.motion(187310416, 29.00000000, 19.00000000) -[2618794.976] {Default Queue} wl_pointer#457.motion(187310416, 29.00000000, 19.00000000) -[2618794.980] {Default Queue} wl_pointer#489.motion(187310416, 29.00000000, 19.00000000) -[2618794.985] {Default Queue} wl_pointer#521.motion(187310416, 29.00000000, 19.00000000) -[2618794.989] {Default Queue} wl_pointer#553.motion(187310416, 29.00000000, 19.00000000) -[2618794.994] {Default Queue} wl_pointer#585.motion(187310416, 29.00000000, 19.00000000) -[2618794.998] {Default Queue} wl_pointer#617.motion(187310416, 29.00000000, 19.00000000) -[2618795.003] {Default Queue} wl_pointer#649.motion(187310416, 29.00000000, 19.00000000) -[2618795.012] {Default Queue} wl_pointer#681.motion(187310416, 29.00000000, 19.00000000) -[2618795.018] {Default Queue} wl_pointer#713.motion(187310416, 29.00000000, 19.00000000) -[2618795.022] {Default Queue} wl_pointer#745.motion(187310416, 29.00000000, 19.00000000) -[2618795.027] {Default Queue} wl_pointer#777.motion(187310416, 29.00000000, 19.00000000) -[2618795.032] {Default Queue} wl_pointer#809.motion(187310416, 29.00000000, 19.00000000) -[2618795.036] {Default Queue} wl_pointer#841.motion(187310416, 29.00000000, 19.00000000) -[2618795.041] {Default Queue} wl_pointer#873.motion(187310416, 29.00000000, 19.00000000) -[2618795.045] {Default Queue} wl_pointer#905.motion(187310416, 29.00000000, 19.00000000) -[2618795.049] {Default Queue} wl_pointer#937.motion(187310416, 29.00000000, 19.00000000) -[2618795.054] {Default Queue} wl_pointer#969.motion(187310416, 29.00000000, 19.00000000) -[2618795.058] {Default Queue} wl_pointer#1001.motion(187310416, 29.00000000, 19.00000000) -[2618795.062] {Default Queue} wl_pointer#1033.motion(187310416, 29.00000000, 19.00000000) -[2618795.067] {Default Queue} wl_pointer#1065.motion(187310416, 29.00000000, 19.00000000) -[2618795.071] {Default Queue} wl_pointer#1097.motion(187310416, 29.00000000, 19.00000000) -[2618795.075] {Default Queue} wl_pointer#1129.motion(187310416, 29.00000000, 19.00000000) -[2618795.080] {Default Queue} wl_pointer#1161.motion(187310416, 29.00000000, 19.00000000) -[2618795.084] {Default Queue} wl_pointer#1193.motion(187310416, 29.00000000, 19.00000000) -[2618795.089] {Default Queue} wl_pointer#1225.motion(187310416, 29.00000000, 19.00000000) -[2618795.093] {Default Queue} wl_pointer#1257.motion(187310416, 29.00000000, 19.00000000) -[2618795.098] {Default Queue} wl_pointer#1289.motion(187310416, 29.00000000, 19.00000000) -[2618795.102] {Default Queue} wl_pointer#1321.motion(187310416, 29.00000000, 19.00000000) -[2618795.106] {Default Queue} wl_pointer#1353.motion(187310416, 29.00000000, 19.00000000) -[2618795.110] {Default Queue} wl_pointer#1385.motion(187310416, 29.00000000, 19.00000000) -[2618795.115] {Default Queue} wl_pointer#1417.motion(187310416, 29.00000000, 19.00000000) -[2618795.119] {Default Queue} wl_pointer#1449.motion(187310416, 29.00000000, 19.00000000) -[2618795.123] {Default Queue} wl_pointer#1481.motion(187310416, 29.00000000, 19.00000000) -[2618795.128] {Default Queue} wl_pointer#1513.motion(187310416, 29.00000000, 19.00000000) -[2618795.132] {Default Queue} wl_pointer#1545.motion(187310416, 29.00000000, 19.00000000) -[2618795.137] {Default Queue} wl_pointer#1577.motion(187310416, 29.00000000, 19.00000000) -[2618795.141] {Default Queue} wl_pointer#1609.motion(187310416, 29.00000000, 19.00000000) -[2618795.146] {Default Queue} wl_pointer#1641.motion(187310416, 29.00000000, 19.00000000) -[2618795.150] {Default Queue} wl_pointer#1673.motion(187310416, 29.00000000, 19.00000000) -[2618795.155] {Default Queue} wl_pointer#1705.motion(187310416, 29.00000000, 19.00000000) -[2618795.160] {Default Queue} wl_pointer#1737.motion(187310416, 29.00000000, 19.00000000) -[2618795.164] {Default Queue} wl_pointer#1762.motion(187310416, 29.00000000, 19.00000000) -[2618795.168] {Default Queue} wl_pointer#1801.motion(187310416, 29.00000000, 19.00000000) -[2618795.173] {Default Queue} wl_pointer#1833.motion(187310416, 29.00000000, 19.00000000) -[2618795.178] {Default Queue} wl_pointer#1865.motion(187310416, 29.00000000, 19.00000000) -[2618795.182] {Default Queue} wl_pointer#1897.motion(187310416, 29.00000000, 19.00000000) -[2618795.186] {Default Queue} wl_pointer#1929.motion(187310416, 29.00000000, 19.00000000) -[2618795.191] {Default Queue} wl_pointer#1961.motion(187310416, 29.00000000, 19.00000000) -[2618795.196] {Default Queue} wl_pointer#1993.motion(187310416, 29.00000000, 19.00000000) -[2618795.200] {Default Queue} wl_pointer#2025.motion(187310416, 29.00000000, 19.00000000) -[2618795.204] {Default Queue} wl_pointer#2057.motion(187310416, 29.00000000, 19.00000000) -[2618795.209] {Default Queue} wl_pointer#2089.motion(187310416, 29.00000000, 19.00000000) -[2618795.213] {Default Queue} wl_pointer#2121.motion(187310416, 29.00000000, 19.00000000) -[2618795.220] {Default Queue} wl_pointer#2153.motion(187310416, 29.00000000, 19.00000000) -[2618795.226] {Default Queue} wl_pointer#2185.motion(187310416, 29.00000000, 19.00000000) -[2618795.230] {Default Queue} wl_pointer#2217.motion(187310416, 29.00000000, 19.00000000) -[2618795.235] {Default Queue} wl_pointer#2249.motion(187310416, 29.00000000, 19.00000000) -[2618795.239] {Default Queue} wl_pointer#2281.motion(187310416, 29.00000000, 19.00000000) -[2618795.243] {Default Queue} wl_pointer#2313.motion(187310416, 29.00000000, 19.00000000) -[2618795.248] {Default Queue} wl_pointer#2345.motion(187310416, 29.00000000, 19.00000000) -[2618795.253] {Default Queue} wl_pointer#2377.motion(187310416, 29.00000000, 19.00000000) -[2618795.258] {Default Queue} wl_pointer#2409.motion(187310416, 29.00000000, 19.00000000) -[2618795.262] {Default Queue} wl_pointer#2441.motion(187310416, 29.00000000, 19.00000000) -[2618795.267] {Default Queue} wl_pointer#2473.motion(187310416, 29.00000000, 19.00000000) -[2618795.271] {Default Queue} wl_pointer#2498.motion(187310416, 29.00000000, 19.00000000) -[2618795.287] {Default Queue} -> wl_buffer#3518.destroy() -[2618795.293] {Default Queue} -> wl_buffer#3451.destroy() -[2618795.297] {Default Queue} -> wl_shm_pool#3454.destroy() -[2618795.301] {Default Queue} -> wl_shm_pool#3517.destroy() -[2618795.306] {Default Queue} -> wl_surface#3452.destroy() -[2618795.363] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3292, fd 575, 640) -[2618795.369] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3291, fd 578, 640) -[2618795.374] {Default Queue} -> wl_shm_pool#3292.create_buffer(new id wl_buffer#3294, 0, 10, 16, 40, 0) -[2618795.379] {Default Queue} -> wl_shm_pool#3291.create_buffer(new id wl_buffer#3293, 0, 10, 16, 40, 0) -[2618795.388] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3484) -[2618795.393] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) -[2618795.397] {Default Queue} -> wl_surface#3484.commit() -[2618795.403] {Default Queue} -> wl_surface#3484.attach(wl_buffer#3294, 0, 0) -[2618795.407] {Default Queue} -> wl_surface#3484.commit() -[2618795.411] {Default Queue} wl_pointer#2537.motion(187310416, 29.00000000, 19.00000000) -[2618795.416] {Default Queue} wl_pointer#2569.motion(187310416, 29.00000000, 19.00000000) -[2618795.421] {Default Queue} wl_pointer#2601.motion(187310416, 29.00000000, 19.00000000) -[2618795.425] {Default Queue} wl_pointer#2633.motion(187310416, 29.00000000, 19.00000000) -[2618795.429] {Default Queue} wl_pointer#2665.motion(187310416, 29.00000000, 19.00000000) -[2618795.434] {Default Queue} wl_pointer#2697.motion(187310416, 29.00000000, 19.00000000) -[2618795.438] {Default Queue} wl_pointer#2729.motion(187310416, 29.00000000, 19.00000000) -[2618795.442] {Default Queue} wl_pointer#2761.motion(187310416, 29.00000000, 19.00000000) -[2618795.447] {Default Queue} wl_pointer#2793.motion(187310416, 29.00000000, 19.00000000) -[2618795.451] {Default Queue} wl_pointer#2825.motion(187310416, 29.00000000, 19.00000000) -[2618795.456] {Default Queue} wl_pointer#2857.motion(187310416, 29.00000000, 19.00000000) -[2618795.461] {Default Queue} wl_pointer#2889.motion(187310416, 29.00000000, 19.00000000) -[2618795.465] {Default Queue} wl_pointer#2921.motion(187310416, 29.00000000, 19.00000000) -[2618795.469] {Default Queue} wl_pointer#2953.motion(187310416, 29.00000000, 19.00000000) -[2618795.473] {Default Queue} wl_pointer#2985.motion(187310416, 29.00000000, 19.00000000) -[2618795.478] {Default Queue} wl_pointer#3017.motion(187310416, 29.00000000, 19.00000000) -[2618795.482] {Default Queue} wl_pointer#3049.motion(187310416, 29.00000000, 19.00000000) -[2618795.486] {Default Queue} wl_pointer#3081.motion(187310416, 29.00000000, 19.00000000) -[2618795.490] {Default Queue} wl_pointer#3113.motion(187310416, 29.00000000, 19.00000000) -[2618795.495] {Default Queue} wl_pointer#3145.motion(187310416, 29.00000000, 19.00000000) -[2618795.499] {Default Queue} wl_pointer#3177.motion(187310416, 29.00000000, 19.00000000) -[2618795.503] {Default Queue} wl_pointer#3209.motion(187310416, 29.00000000, 19.00000000) -[2618795.511] {Default Queue} wl_pointer#3241.motion(187310416, 29.00000000, 19.00000000) -[2618795.517] {Default Queue} wl_pointer#3273.motion(187310416, 29.00000000, 19.00000000) -[2618795.522] {Default Queue} wl_pointer#3305.motion(187310416, 29.00000000, 19.00000000) -[2618795.526] {Default Queue} wl_pointer#3337.motion(187310416, 29.00000000, 19.00000000) -[2618795.530] {Default Queue} wl_pointer#3369.motion(187310416, 29.00000000, 19.00000000) -[2618795.534] {Default Queue} wl_pointer#3401.motion(187310416, 29.00000000, 19.00000000) -[2618795.539] {Default Queue} wl_pointer#3433.motion(187310416, 29.00000000, 19.00000000) -[2618795.543] {Default Queue} wl_pointer#3465.motion(187310416, 29.00000000, 19.00000000) -[2618795.548] {Default Queue} wl_pointer#3497.motion(187310416, 29.00000000, 19.00000000) -[2618795.552] {Default Queue} wl_pointer#3529.motion(187310416, 29.00000000, 19.00000000) -[2618795.557] {Default Queue} wl_pointer#3561.motion(187310416, 29.00000000, 19.00000000) -[2618795.561] {Default Queue} wl_pointer#3593.motion(187310416, 29.00000000, 19.00000000) -[2618795.565] {Default Queue} wl_pointer#3625.motion(187310416, 29.00000000, 19.00000000) -[2618795.569] {Default Queue} wl_pointer#3657.motion(187310416, 29.00000000, 19.00000000) -[2618795.574] {Default Queue} wl_pointer#3695.motion(187310416, 29.00000000, 19.00000000) -[2618795.578] {Default Queue} wl_pointer#24.motion(187310416, 29.00000000, 18.19921875) -[2618795.582] {Default Queue} wl_pointer#81.motion(187310416, 29.00000000, 18.19921875) -[2618795.587] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618795.592] {Default Queue} wl_pointer#105.motion(187310416, 29.00000000, 18.19921875) -[2618795.596] {Default Queue} wl_pointer#137.motion(187310416, 29.00000000, 18.19921875) -[2618795.600] {Default Queue} wl_pointer#169.motion(187310416, 29.00000000, 18.19921875) -[2618795.605] {Default Queue} wl_pointer#201.motion(187310416, 29.00000000, 18.19921875) -[2618795.609] {Default Queue} wl_pointer#233.motion(187310416, 29.00000000, 18.19921875) -[2618795.614] {Default Queue} wl_pointer#265.motion(187310416, 29.00000000, 18.19921875) -[2618795.618] {Default Queue} wl_pointer#297.motion(187310416, 29.00000000, 18.19921875) -[2618795.622] {Default Queue} wl_pointer#329.motion(187310416, 29.00000000, 18.19921875) -[2618795.626] {Default Queue} wl_pointer#361.motion(187310416, 29.00000000, 18.19921875) -[2618795.631] {Default Queue} wl_pointer#393.motion(187310416, 29.00000000, 18.19921875) -[2618795.635] {Default Queue} wl_pointer#425.motion(187310416, 29.00000000, 18.19921875) -[2618795.639] {Default Queue} wl_pointer#457.motion(187310416, 29.00000000, 18.19921875) -[2618795.643] {Default Queue} wl_pointer#489.motion(187310416, 29.00000000, 18.19921875) -[2618795.648] {Default Queue} wl_pointer#521.motion(187310416, 29.00000000, 18.19921875) -[2618795.652] {Default Queue} wl_pointer#553.motion(187310416, 29.00000000, 18.19921875) -[2618795.656] {Default Queue} wl_pointer#585.motion(187310416, 29.00000000, 18.19921875) -[2618795.661] {Default Queue} wl_pointer#617.motion(187310416, 29.00000000, 18.19921875) -[2618795.665] {Default Queue} wl_pointer#649.motion(187310416, 29.00000000, 18.19921875) -[2618795.669] {Default Queue} wl_pointer#681.motion(187310416, 29.00000000, 18.19921875) -[2618795.673] {Default Queue} wl_pointer#713.motion(187310416, 29.00000000, 18.19921875) -[2618795.677] {Default Queue} wl_pointer#745.motion(187310416, 29.00000000, 18.19921875) -[2618795.682] {Default Queue} wl_pointer#777.motion(187310416, 29.00000000, 18.19921875) -[2618795.686] {Default Queue} wl_pointer#809.motion(187310416, 29.00000000, 18.19921875) -[2618795.690] {Default Queue} wl_pointer#841.motion(187310416, 29.00000000, 18.19921875) -[2618795.695] {Default Queue} wl_pointer#873.motion(187310416, 29.00000000, 18.19921875) -[2618795.699] {Default Queue} wl_pointer#905.motion(187310416, 29.00000000, 18.19921875) -[2618795.703] {Default Queue} wl_pointer#937.motion(187310416, 29.00000000, 18.19921875) -[2618795.707] {Default Queue} wl_pointer#969.motion(187310416, 29.00000000, 18.19921875) -[2618795.715] {Default Queue} wl_pointer#1001.motion(187310416, 29.00000000, 18.19921875) -[2618795.720] {Default Queue} wl_pointer#1033.motion(187310416, 29.00000000, 18.19921875) -[2618795.725] {Default Queue} wl_pointer#1065.motion(187310416, 29.00000000, 18.19921875) -[2618795.729] {Default Queue} wl_pointer#1097.motion(187310416, 29.00000000, 18.19921875) -[2618795.733] {Default Queue} wl_pointer#1129.motion(187310416, 29.00000000, 18.19921875) -[2618795.738] {Default Queue} wl_pointer#1161.motion(187310416, 29.00000000, 18.19921875) -[2618795.742] {Default Queue} wl_pointer#1193.motion(187310416, 29.00000000, 18.19921875) -[2618795.746] {Default Queue} wl_pointer#1225.motion(187310416, 29.00000000, 18.19921875) -[2618795.750] {Default Queue} wl_pointer#1257.motion(187310416, 29.00000000, 18.19921875) -[2618795.755] {Default Queue} wl_pointer#1289.motion(187310416, 29.00000000, 18.19921875) -[2618795.759] {Default Queue} wl_pointer#1321.motion(187310416, 29.00000000, 18.19921875) -[2618795.763] {Default Queue} wl_pointer#1353.motion(187310416, 29.00000000, 18.19921875) -[2618795.767] {Default Queue} wl_pointer#1385.motion(187310416, 29.00000000, 18.19921875) -[2618795.772] {Default Queue} wl_pointer#1417.motion(187310416, 29.00000000, 18.19921875) -[2618795.776] {Default Queue} wl_pointer#1449.motion(187310416, 29.00000000, 18.19921875) -[2618795.780] {Default Queue} wl_pointer#1481.motion(187310416, 29.00000000, 18.19921875) -[2618795.784] {Default Queue} wl_pointer#1513.motion(187310416, 29.00000000, 18.19921875) -[2618795.789] {Default Queue} wl_pointer#1545.motion(187310416, 29.00000000, 18.19921875) -[2618795.793] {Default Queue} wl_pointer#1577.motion(187310416, 29.00000000, 18.19921875) -[2618795.797] {Default Queue} wl_pointer#1609.motion(187310416, 29.00000000, 18.19921875) -[2618795.802] {Default Queue} wl_pointer#1641.motion(187310416, 29.00000000, 18.19921875) -[2618795.806] {Default Queue} wl_pointer#1673.motion(187310416, 29.00000000, 18.19921875) -[2618795.810] {Default Queue} wl_pointer#1705.motion(187310416, 29.00000000, 18.19921875) -[2618795.814] {Default Queue} wl_pointer#1737.motion(187310416, 29.00000000, 18.19921875) -[2618795.819] {Default Queue} wl_pointer#1762.motion(187310416, 29.00000000, 18.19921875) -[2618795.823] {Default Queue} wl_pointer#1801.motion(187310416, 29.00000000, 18.19921875) -[2618795.827] {Default Queue} wl_pointer#1833.motion(187310416, 29.00000000, 18.19921875) -[2618795.831] {Default Queue} wl_pointer#1865.motion(187310416, 29.00000000, 18.19921875) -[2618795.836] {Default Queue} wl_pointer#1897.motion(187310416, 29.00000000, 18.19921875) -[2618795.840] {Default Queue} wl_pointer#1929.motion(187310416, 29.00000000, 18.19921875) -[2618795.844] {Default Queue} wl_pointer#1961.motion(187310416, 29.00000000, 18.19921875) -[2618795.848] {Default Queue} wl_pointer#1993.motion(187310416, 29.00000000, 18.19921875) -[2618795.853] {Default Queue} wl_pointer#2025.motion(187310416, 29.00000000, 18.19921875) -[2618795.857] {Default Queue} wl_pointer#2057.motion(187310416, 29.00000000, 18.19921875) -[2618795.862] {Default Queue} wl_pointer#2089.motion(187310416, 29.00000000, 18.19921875) -[2618795.866] {Default Queue} wl_pointer#2121.motion(187310416, 29.00000000, 18.19921875) -[2618795.875] {Default Queue} wl_pointer#2153.motion(187310416, 29.00000000, 18.19921875) -[2618795.879] {Default Queue} wl_pointer#2185.motion(187310416, 29.00000000, 18.19921875) -[2618795.884] {Default Queue} wl_pointer#2217.motion(187310416, 29.00000000, 18.19921875) -[2618795.888] {Default Queue} wl_pointer#2249.motion(187310416, 29.00000000, 18.19921875) -[2618795.892] {Default Queue} wl_pointer#2281.motion(187310416, 29.00000000, 18.19921875) -[2618795.896] {Default Queue} wl_pointer#2313.motion(187310416, 29.00000000, 18.19921875) -[2618795.901] {Default Queue} wl_pointer#2345.motion(187310416, 29.00000000, 18.19921875) -[2618795.905] {Default Queue} wl_pointer#2377.motion(187310416, 29.00000000, 18.19921875) -[2618795.909] {Default Queue} wl_pointer#2409.motion(187310416, 29.00000000, 18.19921875) -[2618795.925] {Default Queue} wl_pointer#2441.motion(187310416, 29.00000000, 18.19921875) -[2618795.931] {Default Queue} wl_pointer#2473.motion(187310416, 29.00000000, 18.19921875) -[2618795.935] {Default Queue} wl_pointer#2498.motion(187310416, 29.00000000, 18.19921875) -[2618795.945] {Default Queue} -> wl_buffer#3294.destroy() -[2618795.950] {Default Queue} -> wl_buffer#3293.destroy() -[2618795.954] {Default Queue} -> wl_shm_pool#3292.destroy() -[2618795.958] {Default Queue} -> wl_shm_pool#3291.destroy() -[2618795.963] {Default Queue} -> wl_surface#3484.destroy() -[2618796.002] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3684, fd 575, 640) -[2618796.008] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3679, fd 578, 640) -[2618796.012] {Default Queue} -> wl_shm_pool#3684.create_buffer(new id wl_buffer#3671, 0, 10, 16, 40, 0) -[2618796.017] {Default Queue} -> wl_shm_pool#3679.create_buffer(new id wl_buffer#3681, 0, 10, 16, 40, 0) -[2618796.238] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3682) -[2618796.245] {Default Queue} -> wl_surface#3682.attach(wl_buffer#3671, 0, 0) -[2618796.293] {Default Queue} -> wl_surface#3682.commit() -[2618796.301] {Default Queue} -> wl_surface#3682.attach(wl_buffer#3671, 0, 0) -[2618796.306] {Default Queue} -> wl_surface#3682.commit() -[2618796.333] {Default Queue} wl_pointer#2537.motion(187310416, 29.00000000, 18.19921875) -[2618796.338] {Default Queue} wl_pointer#2569.motion(187310416, 29.00000000, 18.19921875) -[2618796.387] {Default Queue} wl_pointer#2601.motion(187310416, 29.00000000, 18.19921875) -[2618796.393] {Default Queue} wl_pointer#2633.motion(187310416, 29.00000000, 18.19921875) -[2618796.397] {Default Queue} wl_pointer#2665.motion(187310416, 29.00000000, 18.19921875) -[2618796.442] {Default Queue} wl_pointer#2697.motion(187310416, 29.00000000, 18.19921875) -[2618796.447] {Default Queue} wl_pointer#2729.motion(187310416, 29.00000000, 18.19921875) -[2618796.451] {Default Queue} wl_pointer#2761.motion(187310416, 29.00000000, 18.19921875) -[2618796.456] {Default Queue} wl_pointer#2793.motion(187310416, 29.00000000, 18.19921875) -[2618796.460] {Default Queue} wl_pointer#2825.motion(187310416, 29.00000000, 18.19921875) -[2618796.465] {Default Queue} wl_pointer#2857.motion(187310416, 29.00000000, 18.19921875) -[2618796.469] {Default Queue} wl_pointer#2889.motion(187310416, 29.00000000, 18.19921875) -[2618796.474] {Default Queue} wl_pointer#2921.motion(187310416, 29.00000000, 18.19921875) -[2618796.478] {Default Queue} wl_pointer#2953.motion(187310416, 29.00000000, 18.19921875) -[2618796.482] {Default Queue} wl_pointer#2985.motion(187310416, 29.00000000, 18.19921875) -[2618796.487] {Default Queue} wl_pointer#3017.motion(187310416, 29.00000000, 18.19921875) -[2618796.491] {Default Queue} wl_pointer#3049.motion(187310416, 29.00000000, 18.19921875) -[2618796.495] {Default Queue} wl_pointer#3081.motion(187310416, 29.00000000, 18.19921875) -[2618796.500] {Default Queue} wl_pointer#3113.motion(187310416, 29.00000000, 18.19921875) -[2618796.504] {Default Queue} wl_pointer#3145.motion(187310416, 29.00000000, 18.19921875) -[2618796.509] {Default Queue} wl_pointer#3177.motion(187310416, 29.00000000, 18.19921875) -[2618796.513] {Default Queue} wl_pointer#3209.motion(187310416, 29.00000000, 18.19921875) -[2618796.517] {Default Queue} wl_pointer#3241.motion(187310416, 29.00000000, 18.19921875) -[2618796.522] {Default Queue} wl_pointer#3273.motion(187310416, 29.00000000, 18.19921875) -[2618796.526] {Default Queue} wl_pointer#3305.motion(187310416, 29.00000000, 18.19921875) -[2618796.530] {Default Queue} wl_pointer#3337.motion(187310416, 29.00000000, 18.19921875) -[2618796.535] {Default Queue} wl_pointer#3369.motion(187310416, 29.00000000, 18.19921875) -[2618796.539] {Default Queue} wl_pointer#3401.motion(187310416, 29.00000000, 18.19921875) -[2618796.543] {Default Queue} wl_pointer#3433.motion(187310416, 29.00000000, 18.19921875) -[2618796.548] {Default Queue} wl_pointer#3465.motion(187310416, 29.00000000, 18.19921875) -[2618796.552] {Default Queue} wl_pointer#3497.motion(187310416, 29.00000000, 18.19921875) -[2618796.561] {Default Queue} wl_pointer#3529.motion(187310416, 29.00000000, 18.19921875) -[2618796.568] {Default Queue} wl_pointer#3561.motion(187310416, 29.00000000, 18.19921875) -[2618796.572] {Default Queue} wl_pointer#3593.motion(187310416, 29.00000000, 18.19921875) -[2618796.577] {Default Queue} wl_pointer#3625.motion(187310416, 29.00000000, 18.19921875) -[2618796.581] {Default Queue} wl_pointer#3657.motion(187310416, 29.00000000, 18.19921875) -[2618796.585] {Default Queue} wl_pointer#3695.motion(187310416, 29.00000000, 18.19921875) -[2618796.590] {Default Queue} wl_pointer#24.motion(187310421, 29.00000000, 17.80078125) -[2618796.594] {Default Queue} wl_pointer#81.motion(187310421, 29.00000000, 17.80078125) -[2618796.600] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618796.604] {Default Queue} wl_pointer#105.motion(187310421, 29.00000000, 17.80078125) -[2618796.609] {Default Queue} wl_pointer#137.motion(187310421, 29.00000000, 17.80078125) -[2618796.613] {Default Queue} wl_pointer#169.motion(187310421, 29.00000000, 17.80078125) -[2618796.617] {Default Queue} wl_pointer#201.motion(187310421, 29.00000000, 17.80078125) -[2618796.622] {Default Queue} wl_pointer#233.motion(187310421, 29.00000000, 17.80078125) -[2618796.626] {Default Queue} wl_pointer#265.motion(187310421, 29.00000000, 17.80078125) -[2618796.630] {Default Queue} wl_pointer#297.motion(187310421, 29.00000000, 17.80078125) -[2618796.635] {Default Queue} wl_pointer#329.motion(187310421, 29.00000000, 17.80078125) -[2618796.639] {Default Queue} wl_pointer#361.motion(187310421, 29.00000000, 17.80078125) -[2618796.643] {Default Queue} wl_pointer#393.motion(187310421, 29.00000000, 17.80078125) -[2618796.647] {Default Queue} wl_pointer#425.motion(187310421, 29.00000000, 17.80078125) -[2618796.652] {Default Queue} wl_pointer#457.motion(187310421, 29.00000000, 17.80078125) -[2618796.656] {Default Queue} wl_pointer#489.motion(187310421, 29.00000000, 17.80078125) -[2618796.660] {Default Queue} wl_pointer#521.motion(187310421, 29.00000000, 17.80078125) -[2618796.664] {Default Queue} wl_pointer#553.motion(187310421, 29.00000000, 17.80078125) -[2618796.669] {Default Queue} wl_pointer#585.motion(187310421, 29.00000000, 17.80078125) -[2618796.673] {Default Queue} wl_pointer#617.motion(187310421, 29.00000000, 17.80078125) -[2618796.677] {Default Queue} wl_pointer#649.motion(187310421, 29.00000000, 17.80078125) -[2618796.682] {Default Queue} wl_pointer#681.motion(187310421, 29.00000000, 17.80078125) -[2618796.686] {Default Queue} wl_pointer#713.motion(187310421, 29.00000000, 17.80078125) -[2618796.691] {Default Queue} wl_pointer#745.motion(187310421, 29.00000000, 17.80078125) -[2618796.695] {Default Queue} wl_pointer#777.motion(187310421, 29.00000000, 17.80078125) -[2618796.699] {Default Queue} wl_pointer#809.motion(187310421, 29.00000000, 17.80078125) -[2618796.704] {Default Queue} wl_pointer#841.motion(187310421, 29.00000000, 17.80078125) -[2618796.708] {Default Queue} wl_pointer#873.motion(187310421, 29.00000000, 17.80078125) -[2618796.712] {Default Queue} wl_pointer#905.motion(187310421, 29.00000000, 17.80078125) -[2618796.717] {Default Queue} wl_pointer#937.motion(187310421, 29.00000000, 17.80078125) -[2618796.721] {Default Queue} wl_pointer#969.motion(187310421, 29.00000000, 17.80078125) -[2618796.725] {Default Queue} wl_pointer#1001.motion(187310421, 29.00000000, 17.80078125) -[2618796.730] {Default Queue} wl_pointer#1033.motion(187310421, 29.00000000, 17.80078125) -[2618796.734] {Default Queue} wl_pointer#1065.motion(187310421, 29.00000000, 17.80078125) -[2618796.738] {Default Queue} wl_pointer#1097.motion(187310421, 29.00000000, 17.80078125) -[2618796.742] {Default Queue} wl_pointer#1129.motion(187310421, 29.00000000, 17.80078125) -[2618796.747] {Default Queue} wl_pointer#1161.motion(187310421, 29.00000000, 17.80078125) -[2618796.751] {Default Queue} wl_pointer#1193.motion(187310421, 29.00000000, 17.80078125) -[2618796.755] {Default Queue} wl_pointer#1225.motion(187310421, 29.00000000, 17.80078125) -[2618796.760] {Default Queue} wl_pointer#1257.motion(187310421, 29.00000000, 17.80078125) -[2618796.767] {Default Queue} wl_pointer#1289.motion(187310421, 29.00000000, 17.80078125) -[2618796.773] {Default Queue} wl_pointer#1321.motion(187310421, 29.00000000, 17.80078125) -[2618796.777] {Default Queue} wl_pointer#1353.motion(187310421, 29.00000000, 17.80078125) -[2618796.781] {Default Queue} wl_pointer#1385.motion(187310421, 29.00000000, 17.80078125) -[2618796.786] {Default Queue} wl_pointer#1417.motion(187310421, 29.00000000, 17.80078125) -[2618796.790] {Default Queue} wl_pointer#1449.motion(187310421, 29.00000000, 17.80078125) -[2618796.794] {Default Queue} wl_pointer#1481.motion(187310421, 29.00000000, 17.80078125) -[2618796.799] {Default Queue} wl_pointer#1513.motion(187310421, 29.00000000, 17.80078125) -[2618796.803] {Default Queue} wl_pointer#1545.motion(187310421, 29.00000000, 17.80078125) -[2618796.808] {Default Queue} wl_pointer#1577.motion(187310421, 29.00000000, 17.80078125) -[2618796.812] {Default Queue} wl_pointer#1609.motion(187310421, 29.00000000, 17.80078125) -[2618796.816] {Default Queue} wl_pointer#1641.motion(187310421, 29.00000000, 17.80078125) -[2618796.820] {Default Queue} wl_pointer#1673.motion(187310421, 29.00000000, 17.80078125) -[2618796.825] {Default Queue} wl_pointer#1705.motion(187310421, 29.00000000, 17.80078125) -[2618796.829] {Default Queue} wl_pointer#1737.motion(187310421, 29.00000000, 17.80078125) -[2618796.833] {Default Queue} wl_pointer#1762.motion(187310421, 29.00000000, 17.80078125) -[2618796.838] {Default Queue} wl_pointer#1801.motion(187310421, 29.00000000, 17.80078125) -[2618796.842] {Default Queue} wl_pointer#1833.motion(187310421, 29.00000000, 17.80078125) -[2618796.846] {Default Queue} wl_pointer#1865.motion(187310421, 29.00000000, 17.80078125) -[2618796.851] {Default Queue} wl_pointer#1897.motion(187310421, 29.00000000, 17.80078125) -[2618796.855] {Default Queue} wl_pointer#1929.motion(187310421, 29.00000000, 17.80078125) -[2618796.859] {Default Queue} wl_pointer#1961.motion(187310421, 29.00000000, 17.80078125) -[2618796.870] {Default Queue} wl_pointer#1993.motion(187310421, 29.00000000, 17.80078125) -[2618796.876] {Default Queue} wl_pointer#2025.motion(187310421, 29.00000000, 17.80078125) -[2618796.881] {Default Queue} wl_pointer#2057.motion(187310421, 29.00000000, 17.80078125) -[2618796.887] {Default Queue} wl_pointer#2089.motion(187310421, 29.00000000, 17.80078125) -[2618796.891] {Default Queue} wl_pointer#2121.motion(187310421, 29.00000000, 17.80078125) -[2618796.896] {Default Queue} wl_pointer#2153.motion(187310421, 29.00000000, 17.80078125) -[2618796.900] {Default Queue} wl_pointer#2185.motion(187310421, 29.00000000, 17.80078125) -[2618796.904] {Default Queue} wl_pointer#2217.motion(187310421, 29.00000000, 17.80078125) -[2618796.909] {Default Queue} wl_pointer#2249.motion(187310421, 29.00000000, 17.80078125) -[2618796.913] {Default Queue} wl_pointer#2281.motion(187310421, 29.00000000, 17.80078125) -[2618796.917] {Default Queue} wl_pointer#2313.motion(187310421, 29.00000000, 17.80078125) -[2618796.922] {Default Queue} wl_pointer#2345.motion(187310421, 29.00000000, 17.80078125) -[2618796.926] {Default Queue} wl_pointer#2377.motion(187310421, 29.00000000, 17.80078125) -[2618796.931] {Default Queue} wl_pointer#2409.motion(187310421, 29.00000000, 17.80078125) -[2618796.935] {Default Queue} wl_pointer#2441.motion(187310421, 29.00000000, 17.80078125) -[2618796.939] {Default Queue} wl_pointer#2473.motion(187310421, 29.00000000, 17.80078125) -[2618796.944] {Default Queue} wl_pointer#2498.motion(187310421, 29.00000000, 17.80078125) -[2618796.956] {Default Queue} -> wl_buffer#3671.destroy() -[2618796.961] {Default Queue} -> wl_buffer#3681.destroy() -[2618796.965] {Default Queue} -> wl_shm_pool#3684.destroy() -[2618796.969] {Default Queue} -> wl_shm_pool#3679.destroy() -[2618796.974] {Default Queue} -> wl_surface#3682.destroy() -[2618797.016] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2504, fd 581, 640) -[2618797.022] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2503, fd 582, 640) -[2618797.027] {Default Queue} -> wl_shm_pool#2504.create_buffer(new id wl_buffer#2506, 0, 10, 16, 40, 0) -[2618797.035] {Default Queue} -> wl_shm_pool#2503.create_buffer(new id wl_buffer#2505, 0, 10, 16, 40, 0) -[2618797.045] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#2502) -[2618797.049] {Default Queue} -> wl_surface#2502.attach(wl_buffer#2506, 0, 0) -[2618797.054] {Default Queue} -> wl_surface#2502.commit() -[2618797.059] {Default Queue} -> wl_surface#2502.attach(wl_buffer#2506, 0, 0) -[2618797.063] {Default Queue} -> wl_surface#2502.commit() -[2618797.068] {Default Queue} wl_pointer#2537.motion(187310421, 29.00000000, 17.80078125) -[2618797.073] {Default Queue} wl_pointer#2569.motion(187310421, 29.00000000, 17.80078125) -[2618797.077] {Default Queue} wl_pointer#2601.motion(187310421, 29.00000000, 17.80078125) -[2618797.081] {Default Queue} wl_pointer#2633.motion(187310421, 29.00000000, 17.80078125) -[2618797.086] {Default Queue} wl_pointer#2665.motion(187310421, 29.00000000, 17.80078125) -[2618797.090] {Default Queue} wl_pointer#2697.motion(187310421, 29.00000000, 17.80078125) -[2618797.094] {Default Queue} wl_pointer#2729.motion(187310421, 29.00000000, 17.80078125) -[2618797.099] {Default Queue} wl_pointer#2761.motion(187310421, 29.00000000, 17.80078125) -[2618797.103] {Default Queue} wl_pointer#2793.motion(187310421, 29.00000000, 17.80078125) -[2618797.107] {Default Queue} wl_pointer#2825.motion(187310421, 29.00000000, 17.80078125) -[2618797.112] {Default Queue} wl_pointer#2857.motion(187310421, 29.00000000, 17.80078125) -[2618797.116] {Default Queue} wl_pointer#2889.motion(187310421, 29.00000000, 17.80078125) -[2618797.120] {Default Queue} wl_pointer#2921.motion(187310421, 29.00000000, 17.80078125) -[2618797.125] {Default Queue} wl_pointer#2953.motion(187310421, 29.00000000, 17.80078125) -[2618797.129] {Default Queue} wl_pointer#2985.motion(187310421, 29.00000000, 17.80078125) -[2618797.133] {Default Queue} wl_pointer#3017.motion(187310421, 29.00000000, 17.80078125) -[2618797.138] {Default Queue} wl_pointer#3049.motion(187310421, 29.00000000, 17.80078125) -[2618797.142] {Default Queue} wl_pointer#3081.motion(187310421, 29.00000000, 17.80078125) -[2618797.146] {Default Queue} wl_pointer#3113.motion(187310421, 29.00000000, 17.80078125) -[2618797.150] {Default Queue} wl_pointer#3145.motion(187310421, 29.00000000, 17.80078125) -[2618797.155] {Default Queue} wl_pointer#3177.motion(187310421, 29.00000000, 17.80078125) -[2618797.159] {Default Queue} wl_pointer#3209.motion(187310421, 29.00000000, 17.80078125) -[2618797.163] {Default Queue} wl_pointer#3241.motion(187310421, 29.00000000, 17.80078125) -[2618797.168] {Default Queue} wl_pointer#3273.motion(187310421, 29.00000000, 17.80078125) -[2618797.172] {Default Queue} wl_pointer#3305.motion(187310421, 29.00000000, 17.80078125) -[2618797.176] {Default Queue} wl_pointer#3337.motion(187310421, 29.00000000, 17.80078125) -[2618797.181] {Default Queue} wl_pointer#3369.motion(187310421, 29.00000000, 17.80078125) -[2618797.185] {Default Queue} wl_pointer#3401.motion(187310421, 29.00000000, 17.80078125) -[2618797.189] {Default Queue} wl_pointer#3433.motion(187310421, 29.00000000, 17.80078125) -[2618797.194] {Default Queue} wl_pointer#3465.motion(187310421, 29.00000000, 17.80078125) -[2618797.198] {Default Queue} wl_pointer#3497.motion(187310421, 29.00000000, 17.80078125) -[2618797.202] {Default Queue} wl_pointer#3529.motion(187310421, 29.00000000, 17.80078125) -[2618797.207] {Default Queue} wl_pointer#3561.motion(187310421, 29.00000000, 17.80078125) -[2618797.211] {Default Queue} wl_pointer#3593.motion(187310421, 29.00000000, 17.80078125) -[2618797.215] {Default Queue} wl_pointer#3625.motion(187310421, 29.00000000, 17.80078125) -[2618797.219] {Default Queue} wl_pointer#3657.motion(187310421, 29.00000000, 17.80078125) -[2618797.224] {Default Queue} wl_pointer#3695.motion(187310421, 29.00000000, 17.80078125) -[2618797.228] {Default Queue} wl_pointer#24.motion(187310421, 29.00000000, 17.39843750) -[2618797.232] {Default Queue} wl_pointer#81.motion(187310421, 29.00000000, 17.39843750) -[2618797.237] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618797.245] {Default Queue} wl_pointer#105.motion(187310421, 29.00000000, 17.39843750) -[2618797.250] {Default Queue} wl_pointer#137.motion(187310421, 29.00000000, 17.39843750) -[2618797.257] {Default Queue} wl_pointer#169.motion(187310421, 29.00000000, 17.39843750) -[2618797.263] {Default Queue} wl_pointer#201.motion(187310421, 29.00000000, 17.39843750) -[2618797.268] {Default Queue} wl_pointer#233.motion(187310421, 29.00000000, 17.39843750) -[2618797.272] {Default Queue} wl_pointer#265.motion(187310421, 29.00000000, 17.39843750) -[2618797.276] {Default Queue} wl_pointer#297.motion(187310421, 29.00000000, 17.39843750) -[2618797.280] {Default Queue} wl_pointer#329.motion(187310421, 29.00000000, 17.39843750) -[2618797.285] {Default Queue} wl_pointer#361.motion(187310421, 29.00000000, 17.39843750) -[2618797.289] {Default Queue} wl_pointer#393.motion(187310421, 29.00000000, 17.39843750) -[2618797.293] {Default Queue} wl_pointer#425.motion(187310421, 29.00000000, 17.39843750) -[2618797.298] {Default Queue} wl_pointer#457.motion(187310421, 29.00000000, 17.39843750) -[2618797.302] {Default Queue} wl_pointer#489.motion(187310421, 29.00000000, 17.39843750) -[2618797.306] {Default Queue} wl_pointer#521.motion(187310421, 29.00000000, 17.39843750) -[2618797.310] {Default Queue} wl_pointer#553.motion(187310421, 29.00000000, 17.39843750) -[2618797.315] {Default Queue} wl_pointer#585.motion(187310421, 29.00000000, 17.39843750) -[2618797.319] {Default Queue} wl_pointer#617.motion(187310421, 29.00000000, 17.39843750) -[2618797.323] {Default Queue} wl_pointer#649.motion(187310421, 29.00000000, 17.39843750) -[2618797.327] {Default Queue} wl_pointer#681.motion(187310421, 29.00000000, 17.39843750) -[2618797.332] {Default Queue} wl_pointer#713.motion(187310421, 29.00000000, 17.39843750) -[2618797.336] {Default Queue} wl_pointer#745.motion(187310421, 29.00000000, 17.39843750) -[2618797.340] {Default Queue} wl_pointer#777.motion(187310421, 29.00000000, 17.39843750) -[2618797.345] {Default Queue} wl_pointer#809.motion(187310421, 29.00000000, 17.39843750) -[2618797.349] {Default Queue} wl_pointer#841.motion(187310421, 29.00000000, 17.39843750) -[2618797.353] {Default Queue} wl_pointer#873.motion(187310421, 29.00000000, 17.39843750) -[2618797.358] {Default Queue} wl_pointer#905.motion(187310421, 29.00000000, 17.39843750) -[2618797.362] {Default Queue} wl_pointer#937.motion(187310421, 29.00000000, 17.39843750) -[2618797.366] {Default Queue} wl_pointer#969.motion(187310421, 29.00000000, 17.39843750) -[2618797.370] {Default Queue} wl_pointer#1001.motion(187310421, 29.00000000, 17.39843750) -[2618797.375] {Default Queue} wl_pointer#1033.motion(187310421, 29.00000000, 17.39843750) -[2618797.379] {Default Queue} wl_pointer#1065.motion(187310421, 29.00000000, 17.39843750) -[2618797.383] {Default Queue} wl_pointer#1097.motion(187310421, 29.00000000, 17.39843750) -[2618797.387] {Default Queue} wl_pointer#1129.motion(187310421, 29.00000000, 17.39843750) -[2618797.392] {Default Queue} wl_pointer#1161.motion(187310421, 29.00000000, 17.39843750) -[2618797.396] {Default Queue} wl_pointer#1193.motion(187310421, 29.00000000, 17.39843750) -[2618797.400] {Default Queue} wl_pointer#1225.motion(187310421, 29.00000000, 17.39843750) -[2618797.405] {Default Queue} wl_pointer#1257.motion(187310421, 29.00000000, 17.39843750) -[2618797.409] {Default Queue} wl_pointer#1289.motion(187310421, 29.00000000, 17.39843750) -[2618797.414] {Default Queue} wl_pointer#1321.motion(187310421, 29.00000000, 17.39843750) -[2618797.418] {Default Queue} wl_pointer#1353.motion(187310421, 29.00000000, 17.39843750) -[2618797.422] {Default Queue} wl_pointer#1385.motion(187310421, 29.00000000, 17.39843750) -[2618797.426] {Default Queue} wl_pointer#1417.motion(187310421, 29.00000000, 17.39843750) -[2618797.431] {Default Queue} wl_pointer#1449.motion(187310421, 29.00000000, 17.39843750) -[2618797.435] {Default Queue} wl_pointer#1481.motion(187310421, 29.00000000, 17.39843750) -[2618797.439] {Default Queue} wl_pointer#1513.motion(187310421, 29.00000000, 17.39843750) -[2618797.443] {Default Queue} wl_pointer#1545.motion(187310421, 29.00000000, 17.39843750) -[2618797.450] {Default Queue} wl_pointer#1577.motion(187310421, 29.00000000, 17.39843750) -[2618797.482] {Default Queue} wl_pointer#1609.motion(187310421, 29.00000000, 17.39843750) -[2618797.488] {Default Queue} wl_pointer#1641.motion(187310421, 29.00000000, 17.39843750) -[2618797.492] {Default Queue} wl_pointer#1673.motion(187310421, 29.00000000, 17.39843750) -[2618797.497] {Default Queue} wl_pointer#1705.motion(187310421, 29.00000000, 17.39843750) -[2618797.501] {Default Queue} wl_pointer#1737.motion(187310421, 29.00000000, 17.39843750) -[2618797.505] {Default Queue} wl_pointer#1762.motion(187310421, 29.00000000, 17.39843750) -[2618797.509] {Default Queue} wl_pointer#1801.motion(187310421, 29.00000000, 17.39843750) -[2618797.514] {Default Queue} wl_pointer#1833.motion(187310421, 29.00000000, 17.39843750) -[2618797.518] {Default Queue} wl_pointer#1865.motion(187310421, 29.00000000, 17.39843750) -[2618797.522] {Default Queue} wl_pointer#1897.motion(187310421, 29.00000000, 17.39843750) -[2618797.527] {Default Queue} wl_pointer#1929.motion(187310421, 29.00000000, 17.39843750) -[2618797.531] {Default Queue} wl_pointer#1961.motion(187310421, 29.00000000, 17.39843750) -[2618797.535] {Default Queue} wl_pointer#1993.motion(187310421, 29.00000000, 17.39843750) -[2618797.539] {Default Queue} wl_pointer#2025.motion(187310421, 29.00000000, 17.39843750) -[2618797.544] {Default Queue} wl_pointer#2057.motion(187310421, 29.00000000, 17.39843750) -[2618797.548] {Default Queue} wl_pointer#2089.motion(187310421, 29.00000000, 17.39843750) -[2618797.552] {Default Queue} wl_pointer#2121.motion(187310421, 29.00000000, 17.39843750) -[2618797.556] {Default Queue} wl_pointer#2153.motion(187310421, 29.00000000, 17.39843750) -[2618797.560] {Default Queue} wl_pointer#2185.motion(187310421, 29.00000000, 17.39843750) -[2618797.565] {Default Queue} wl_pointer#2217.motion(187310421, 29.00000000, 17.39843750) -[2618797.569] {Default Queue} wl_pointer#2249.motion(187310421, 29.00000000, 17.39843750) -[2618797.573] {Default Queue} wl_pointer#2281.motion(187310421, 29.00000000, 17.39843750) -[2618797.578] {Default Queue} wl_pointer#2313.motion(187310421, 29.00000000, 17.39843750) -[2618797.582] {Default Queue} wl_pointer#2345.motion(187310421, 29.00000000, 17.39843750) -[2618797.587] {Default Queue} wl_pointer#2377.motion(187310421, 29.00000000, 17.39843750) -[2618797.591] {Default Queue} wl_pointer#2409.motion(187310421, 29.00000000, 17.39843750) -[2618797.595] {Default Queue} wl_pointer#2441.motion(187310421, 29.00000000, 17.39843750) -[2618797.600] {Default Queue} wl_pointer#2473.motion(187310421, 29.00000000, 17.39843750) -[2618797.604] {Default Queue} wl_pointer#2498.motion(187310421, 29.00000000, 17.39843750) -[2618797.615] {Default Queue} -> wl_buffer#2506.destroy() -[2618797.621] {Default Queue} -> wl_buffer#2505.destroy() -[2618797.625] {Default Queue} -> wl_shm_pool#2504.destroy() -[2618797.629] {Default Queue} -> wl_shm_pool#2503.destroy() -[2618797.634] {Default Queue} -> wl_surface#2502.destroy() -[2618797.670] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3677, fd 583, 640) -[2618797.676] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3676, fd 584, 640) -[2618797.680] {Default Queue} -> wl_shm_pool#3677.create_buffer(new id wl_buffer#3674, 0, 10, 16, 40, 0) -[2618797.685] {Default Queue} -> wl_shm_pool#3676.create_buffer(new id wl_buffer#3678, 0, 10, 16, 40, 0) -[2618797.692] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3675) -[2618797.696] {Default Queue} -> wl_surface#3675.attach(wl_buffer#3674, 0, 0) -[2618797.701] {Default Queue} -> wl_surface#3675.commit() -[2618797.706] {Default Queue} -> wl_surface#3675.attach(wl_buffer#3674, 0, 0) -[2618797.710] {Default Queue} -> wl_surface#3675.commit() -[2618797.714] {Default Queue} wl_pointer#2537.motion(187310421, 29.00000000, 17.39843750) -[2618797.719] {Default Queue} wl_pointer#2569.motion(187310421, 29.00000000, 17.39843750) -[2618797.723] {Default Queue} wl_pointer#2601.motion(187310421, 29.00000000, 17.39843750) -[2618797.731] {Default Queue} wl_pointer#2633.motion(187310421, 29.00000000, 17.39843750) -[2618797.738] {Default Queue} wl_pointer#2665.motion(187310421, 29.00000000, 17.39843750) -[2618797.742] {Default Queue} wl_pointer#2697.motion(187310421, 29.00000000, 17.39843750) -[2618797.746] {Default Queue} wl_pointer#2729.motion(187310421, 29.00000000, 17.39843750) -[2618797.751] {Default Queue} wl_pointer#2761.motion(187310421, 29.00000000, 17.39843750) -[2618797.755] {Default Queue} wl_pointer#2793.motion(187310421, 29.00000000, 17.39843750) -[2618797.759] {Default Queue} wl_pointer#2825.motion(187310421, 29.00000000, 17.39843750) -[2618797.764] {Default Queue} wl_pointer#2857.motion(187310421, 29.00000000, 17.39843750) -[2618797.768] {Default Queue} wl_pointer#2889.motion(187310421, 29.00000000, 17.39843750) -[2618797.772] {Default Queue} wl_pointer#2921.motion(187310421, 29.00000000, 17.39843750) -[2618797.777] {Default Queue} wl_pointer#2953.motion(187310421, 29.00000000, 17.39843750) -[2618797.781] {Default Queue} wl_pointer#2985.motion(187310421, 29.00000000, 17.39843750) -[2618797.785] {Default Queue} wl_pointer#3017.motion(187310421, 29.00000000, 17.39843750) -[2618797.789] {Default Queue} wl_pointer#3049.motion(187310421, 29.00000000, 17.39843750) -[2618797.794] {Default Queue} wl_pointer#3081.motion(187310421, 29.00000000, 17.39843750) -[2618797.798] {Default Queue} wl_pointer#3113.motion(187310421, 29.00000000, 17.39843750) -[2618797.802] {Default Queue} wl_pointer#3145.motion(187310421, 29.00000000, 17.39843750) -[2618797.807] {Default Queue} wl_pointer#3177.motion(187310421, 29.00000000, 17.39843750) -[2618797.811] {Default Queue} wl_pointer#3209.motion(187310421, 29.00000000, 17.39843750) -[2618797.815] {Default Queue} wl_pointer#3241.motion(187310421, 29.00000000, 17.39843750) -[2618797.820] {Default Queue} wl_pointer#3273.motion(187310421, 29.00000000, 17.39843750) -[2618797.824] {Default Queue} wl_pointer#3305.motion(187310421, 29.00000000, 17.39843750) -[2618797.829] {Default Queue} wl_pointer#3337.motion(187310421, 29.00000000, 17.39843750) -[2618797.833] {Default Queue} wl_pointer#3369.motion(187310421, 29.00000000, 17.39843750) -[2618797.837] {Default Queue} wl_pointer#3401.motion(187310421, 29.00000000, 17.39843750) -[2618797.899] {Default Queue} wl_pointer#3433.motion(187310421, 29.00000000, 17.39843750) -[2618797.911] {Default Queue} wl_pointer#3465.motion(187310421, 29.00000000, 17.39843750) -[2618797.916] {Default Queue} wl_pointer#3497.motion(187310421, 29.00000000, 17.39843750) -[2618797.921] {Default Queue} wl_pointer#3529.motion(187310421, 29.00000000, 17.39843750) -[2618797.926] {Default Queue} wl_pointer#3561.motion(187310421, 29.00000000, 17.39843750) -[2618797.930] {Default Queue} wl_pointer#3593.motion(187310421, 29.00000000, 17.39843750) -[2618797.935] {Default Queue} wl_pointer#3625.motion(187310421, 29.00000000, 17.39843750) -[2618797.939] {Default Queue} wl_pointer#3657.motion(187310421, 29.00000000, 17.39843750) -[2618797.943] {Default Queue} wl_pointer#3695.motion(187310421, 29.00000000, 17.39843750) -[2618797.947] {Default Queue} wl_pointer#24.motion(187310421, 29.00000000, 17.00000000) -[2618797.952] {Default Queue} wl_pointer#81.motion(187310421, 29.00000000, 17.00000000) -[2618797.958] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618797.962] {Default Queue} wl_pointer#105.motion(187310421, 29.00000000, 17.00000000) -[2618797.968] {Default Queue} wl_pointer#137.motion(187310421, 29.00000000, 17.00000000) -[2618797.972] {Default Queue} wl_pointer#169.motion(187310421, 29.00000000, 17.00000000) -[2618797.977] {Default Queue} wl_pointer#201.motion(187310421, 29.00000000, 17.00000000) -[2618797.981] {Default Queue} wl_pointer#233.motion(187310421, 29.00000000, 17.00000000) -[2618797.985] {Default Queue} wl_pointer#265.motion(187310421, 29.00000000, 17.00000000) -[2618797.989] {Default Queue} wl_pointer#297.motion(187310421, 29.00000000, 17.00000000) -[2618797.994] {Default Queue} wl_pointer#329.motion(187310421, 29.00000000, 17.00000000) -[2618797.998] {Default Queue} wl_pointer#361.motion(187310421, 29.00000000, 17.00000000) -[2618798.010] {Default Queue} wl_pointer#393.motion(187310421, 29.00000000, 17.00000000) -[2618798.019] {Default Queue} wl_pointer#425.motion(187310421, 29.00000000, 17.00000000) -[2618798.025] {Default Queue} wl_pointer#457.motion(187310421, 29.00000000, 17.00000000) -[2618798.031] {Default Queue} wl_pointer#489.motion(187310421, 29.00000000, 17.00000000) -[2618798.037] {Default Queue} wl_pointer#521.motion(187310421, 29.00000000, 17.00000000) -[2618798.042] {Default Queue} wl_pointer#553.motion(187310421, 29.00000000, 17.00000000) -[2618798.046] {Default Queue} wl_pointer#585.motion(187310421, 29.00000000, 17.00000000) -[2618798.051] {Default Queue} wl_pointer#617.motion(187310421, 29.00000000, 17.00000000) -[2618798.055] {Default Queue} wl_pointer#649.motion(187310421, 29.00000000, 17.00000000) -[2618798.060] {Default Queue} wl_pointer#681.motion(187310421, 29.00000000, 17.00000000) -[2618798.066] {Default Queue} wl_pointer#713.motion(187310421, 29.00000000, 17.00000000) -[2618798.071] {Default Queue} wl_pointer#745.motion(187310421, 29.00000000, 17.00000000) -[2618798.077] {Default Queue} wl_pointer#777.motion(187310421, 29.00000000, 17.00000000) -[2618798.083] {Default Queue} wl_pointer#809.motion(187310421, 29.00000000, 17.00000000) -[2618798.088] {Default Queue} wl_pointer#841.motion(187310421, 29.00000000, 17.00000000) -[2618798.093] {Default Queue} wl_pointer#873.motion(187310421, 29.00000000, 17.00000000) -[2618798.098] {Default Queue} wl_pointer#905.motion(187310421, 29.00000000, 17.00000000) -[2618798.104] {Default Queue} wl_pointer#937.motion(187310421, 29.00000000, 17.00000000) -[2618798.110] {Default Queue} wl_pointer#969.motion(187310421, 29.00000000, 17.00000000) -[2618798.116] {Default Queue} wl_pointer#1001.motion(187310421, 29.00000000, 17.00000000) -[2618798.121] {Default Queue} wl_pointer#1033.motion(187310421, 29.00000000, 17.00000000) -[2618798.125] {Default Queue} wl_pointer#1065.motion(187310421, 29.00000000, 17.00000000) -[2618798.130] {Default Queue} wl_pointer#1097.motion(187310421, 29.00000000, 17.00000000) -[2618798.134] {Default Queue} wl_pointer#1129.motion(187310421, 29.00000000, 17.00000000) -[2618798.138] {Default Queue} wl_pointer#1161.motion(187310421, 29.00000000, 17.00000000) -[2618798.143] {Default Queue} wl_pointer#1193.motion(187310421, 29.00000000, 17.00000000) -[2618798.147] {Default Queue} wl_pointer#1225.motion(187310421, 29.00000000, 17.00000000) -[2618798.151] {Default Queue} wl_pointer#1257.motion(187310421, 29.00000000, 17.00000000) -[2618798.155] {Default Queue} wl_pointer#1289.motion(187310421, 29.00000000, 17.00000000) -[2618798.160] {Default Queue} wl_pointer#1321.motion(187310421, 29.00000000, 17.00000000) -[2618798.164] {Default Queue} wl_pointer#1353.motion(187310421, 29.00000000, 17.00000000) -[2618798.168] {Default Queue} wl_pointer#1385.motion(187310421, 29.00000000, 17.00000000) -[2618798.172] {Default Queue} wl_pointer#1417.motion(187310421, 29.00000000, 17.00000000) -[2618798.177] {Default Queue} wl_pointer#1449.motion(187310421, 29.00000000, 17.00000000) -[2618798.181] {Default Queue} wl_pointer#1481.motion(187310421, 29.00000000, 17.00000000) -[2618798.185] {Default Queue} wl_pointer#1513.motion(187310421, 29.00000000, 17.00000000) -[2618798.189] {Default Queue} wl_pointer#1545.motion(187310421, 29.00000000, 17.00000000) -[2618798.193] {Default Queue} wl_pointer#1577.motion(187310421, 29.00000000, 17.00000000) -[2618798.198] {Default Queue} wl_pointer#1609.motion(187310421, 29.00000000, 17.00000000) -[2618798.202] {Default Queue} wl_pointer#1641.motion(187310421, 29.00000000, 17.00000000) -[2618798.206] {Default Queue} wl_pointer#1673.motion(187310421, 29.00000000, 17.00000000) -[2618798.210] {Default Queue} wl_pointer#1705.motion(187310421, 29.00000000, 17.00000000) -[2618798.215] {Default Queue} wl_pointer#1737.motion(187310421, 29.00000000, 17.00000000) -[2618798.219] {Default Queue} wl_pointer#1762.motion(187310421, 29.00000000, 17.00000000) -[2618798.223] {Default Queue} wl_pointer#1801.motion(187310421, 29.00000000, 17.00000000) -[2618798.227] {Default Queue} wl_pointer#1833.motion(187310421, 29.00000000, 17.00000000) -[2618798.235] {Default Queue} wl_pointer#1865.motion(187310421, 29.00000000, 17.00000000) -[2618798.241] {Default Queue} wl_pointer#1897.motion(187310421, 29.00000000, 17.00000000) -[2618798.246] {Default Queue} wl_pointer#1929.motion(187310421, 29.00000000, 17.00000000) -[2618798.250] {Default Queue} wl_pointer#1961.motion(187310421, 29.00000000, 17.00000000) -[2618798.254] {Default Queue} wl_pointer#1993.motion(187310421, 29.00000000, 17.00000000) -[2618798.259] {Default Queue} wl_pointer#2025.motion(187310421, 29.00000000, 17.00000000) -[2618798.263] {Default Queue} wl_pointer#2057.motion(187310421, 29.00000000, 17.00000000) -[2618798.267] {Default Queue} wl_pointer#2089.motion(187310421, 29.00000000, 17.00000000) -[2618798.271] {Default Queue} wl_pointer#2121.motion(187310421, 29.00000000, 17.00000000) -[2618798.275] {Default Queue} wl_pointer#2153.motion(187310421, 29.00000000, 17.00000000) -[2618798.280] {Default Queue} wl_pointer#2185.motion(187310421, 29.00000000, 17.00000000) -[2618798.284] {Default Queue} wl_pointer#2217.motion(187310421, 29.00000000, 17.00000000) -[2618798.288] {Default Queue} wl_pointer#2249.motion(187310421, 29.00000000, 17.00000000) -[2618798.292] {Default Queue} wl_pointer#2281.motion(187310421, 29.00000000, 17.00000000) -[2618798.297] {Default Queue} wl_pointer#2313.motion(187310421, 29.00000000, 17.00000000) -[2618798.301] {Default Queue} wl_pointer#2345.motion(187310421, 29.00000000, 17.00000000) -[2618798.306] {Default Queue} wl_pointer#2377.motion(187310421, 29.00000000, 17.00000000) -[2618798.310] {Default Queue} wl_pointer#2409.motion(187310421, 29.00000000, 17.00000000) -[2618798.314] {Default Queue} wl_pointer#2441.motion(187310421, 29.00000000, 17.00000000) -[2618798.318] {Default Queue} wl_pointer#2473.motion(187310421, 29.00000000, 17.00000000) -[2618798.323] {Default Queue} wl_pointer#2498.motion(187310421, 29.00000000, 17.00000000) -[2618798.336] {Default Queue} -> wl_buffer#3674.destroy() -[2618798.342] {Default Queue} -> wl_buffer#3678.destroy() -[2618798.346] {Default Queue} -> wl_shm_pool#3677.destroy() -[2618798.350] {Default Queue} -> wl_shm_pool#3676.destroy() -[2618798.355] {Default Queue} -> wl_surface#3675.destroy() -[2618798.401] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3483, fd 585, 640) -[2618798.407] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3486, fd 586, 640) -[2618798.412] {Default Queue} -> wl_shm_pool#3483.create_buffer(new id wl_buffer#3485, 0, 10, 16, 40, 0) -[2618798.416] {Default Queue} -> wl_shm_pool#3486.create_buffer(new id wl_buffer#3516, 0, 10, 16, 40, 0) -[2618798.424] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3515) -[2618798.429] {Default Queue} -> wl_surface#3515.attach(wl_buffer#3485, 0, 0) -[2618798.433] {Default Queue} -> wl_surface#3515.commit() -[2618798.438] {Default Queue} -> wl_surface#3515.attach(wl_buffer#3485, 0, 0) -[2618798.442] {Default Queue} -> wl_surface#3515.commit() -[2618798.447] {Default Queue} wl_pointer#2537.motion(187310421, 29.00000000, 17.00000000) -[2618798.451] {Default Queue} wl_pointer#2569.motion(187310421, 29.00000000, 17.00000000) -[2618798.456] {Default Queue} wl_pointer#2601.motion(187310421, 29.00000000, 17.00000000) -[2618798.460] {Default Queue} wl_pointer#2633.motion(187310421, 29.00000000, 17.00000000) -[2618798.464] {Default Queue} wl_pointer#2665.motion(187310421, 29.00000000, 17.00000000) -[2618798.469] {Default Queue} wl_pointer#2697.motion(187310421, 29.00000000, 17.00000000) -[2618798.473] {Default Queue} wl_pointer#2729.motion(187310421, 29.00000000, 17.00000000) -[2618798.477] {Default Queue} wl_pointer#2761.motion(187310421, 29.00000000, 17.00000000) -[2618798.481] {Default Queue} wl_pointer#2793.motion(187310421, 29.00000000, 17.00000000) -[2618798.486] {Default Queue} wl_pointer#2825.motion(187310421, 29.00000000, 17.00000000) -[2618798.490] {Default Queue} wl_pointer#2857.motion(187310421, 29.00000000, 17.00000000) -[2618798.495] {Default Queue} wl_pointer#2889.motion(187310421, 29.00000000, 17.00000000) -[2618798.503] {Default Queue} wl_pointer#2921.motion(187310421, 29.00000000, 17.00000000) -[2618798.509] {Default Queue} wl_pointer#2953.motion(187310421, 29.00000000, 17.00000000) -[2618798.513] {Default Queue} wl_pointer#2985.motion(187310421, 29.00000000, 17.00000000) -[2618798.518] {Default Queue} wl_pointer#3017.motion(187310421, 29.00000000, 17.00000000) -[2618798.522] {Default Queue} wl_pointer#3049.motion(187310421, 29.00000000, 17.00000000) -[2618798.526] {Default Queue} wl_pointer#3081.motion(187310421, 29.00000000, 17.00000000) -[2618798.531] {Default Queue} wl_pointer#3113.motion(187310421, 29.00000000, 17.00000000) -[2618798.535] {Default Queue} wl_pointer#3145.motion(187310421, 29.00000000, 17.00000000) -[2618798.539] {Default Queue} wl_pointer#3177.motion(187310421, 29.00000000, 17.00000000) -[2618798.543] {Default Queue} wl_pointer#3209.motion(187310421, 29.00000000, 17.00000000) -[2618798.548] {Default Queue} wl_pointer#3241.motion(187310421, 29.00000000, 17.00000000) -[2618798.552] {Default Queue} wl_pointer#3273.motion(187310421, 29.00000000, 17.00000000) -[2618798.556] {Default Queue} wl_pointer#3305.motion(187310421, 29.00000000, 17.00000000) -[2618798.560] {Default Queue} wl_pointer#3337.motion(187310421, 29.00000000, 17.00000000) -[2618798.564] {Default Queue} wl_pointer#3369.motion(187310421, 29.00000000, 17.00000000) -[2618798.569] {Default Queue} wl_pointer#3401.motion(187310421, 29.00000000, 17.00000000) -[2618798.573] {Default Queue} wl_pointer#3433.motion(187310421, 29.00000000, 17.00000000) -[2618798.577] {Default Queue} wl_pointer#3465.motion(187310421, 29.00000000, 17.00000000) -[2618798.582] {Default Queue} wl_pointer#3497.motion(187310421, 29.00000000, 17.00000000) -[2618798.586] {Default Queue} wl_pointer#3529.motion(187310421, 29.00000000, 17.00000000) -[2618798.590] {Default Queue} wl_pointer#3561.motion(187310421, 29.00000000, 17.00000000) -[2618798.594] {Default Queue} wl_pointer#3593.motion(187310421, 29.00000000, 17.00000000) -[2618798.599] {Default Queue} wl_pointer#3625.motion(187310421, 29.00000000, 17.00000000) -[2618798.603] {Default Queue} wl_pointer#3657.motion(187310421, 29.00000000, 17.00000000) -[2618798.608] {Default Queue} wl_pointer#3695.motion(187310421, 29.00000000, 17.00000000) -[2618798.619] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2618798.623] {Default Queue} -> wl_surface#43.commit() -[2618798.670] {Default Queue} wl_pointer#24.motion(187310426, 29.00000000, 16.60156250) -[2618798.675] {Default Queue} wl_pointer#81.motion(187310426, 29.00000000, 16.60156250) -[2618798.680] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618798.685] {Default Queue} wl_pointer#105.motion(187310426, 29.00000000, 16.60156250) -[2618798.689] {Default Queue} wl_pointer#137.motion(187310426, 29.00000000, 16.60156250) -[2618798.693] {Default Queue} wl_pointer#169.motion(187310426, 29.00000000, 16.60156250) -[2618798.698] {Default Queue} wl_pointer#201.motion(187310426, 29.00000000, 16.60156250) -[2618798.702] {Default Queue} wl_pointer#233.motion(187310426, 29.00000000, 16.60156250) -[2618798.706] {Default Queue} wl_pointer#265.motion(187310426, 29.00000000, 16.60156250) -[2618798.710] {Default Queue} wl_pointer#297.motion(187310426, 29.00000000, 16.60156250) -[2618798.714] {Default Queue} wl_pointer#329.motion(187310426, 29.00000000, 16.60156250) -[2618798.719] {Default Queue} wl_pointer#361.motion(187310426, 29.00000000, 16.60156250) -[2618798.723] {Default Queue} wl_pointer#393.motion(187310426, 29.00000000, 16.60156250) -[2618798.727] {Default Queue} wl_pointer#425.motion(187310426, 29.00000000, 16.60156250) -[2618798.731] {Default Queue} wl_pointer#457.motion(187310426, 29.00000000, 16.60156250) -[2618798.736] {Default Queue} wl_pointer#489.motion(187310426, 29.00000000, 16.60156250) -[2618798.740] {Default Queue} wl_pointer#521.motion(187310426, 29.00000000, 16.60156250) -[2618798.744] {Default Queue} wl_pointer#553.motion(187310426, 29.00000000, 16.60156250) -[2618798.748] {Default Queue} wl_pointer#585.motion(187310426, 29.00000000, 16.60156250) -[2618798.753] {Default Queue} wl_pointer#617.motion(187310426, 29.00000000, 16.60156250) -[2618798.760] {Default Queue} wl_pointer#649.motion(187310426, 29.00000000, 16.60156250) -[2618798.766] {Default Queue} wl_pointer#681.motion(187310426, 29.00000000, 16.60156250) -[2618798.770] {Default Queue} wl_pointer#713.motion(187310426, 29.00000000, 16.60156250) -[2618798.774] {Default Queue} wl_pointer#745.motion(187310426, 29.00000000, 16.60156250) -[2618798.779] {Default Queue} wl_pointer#777.motion(187310426, 29.00000000, 16.60156250) -[2618798.783] {Default Queue} wl_pointer#809.motion(187310426, 29.00000000, 16.60156250) -[2618798.787] {Default Queue} wl_pointer#841.motion(187310426, 29.00000000, 16.60156250) -[2618798.791] {Default Queue} wl_pointer#873.motion(187310426, 29.00000000, 16.60156250) -[2618798.795] {Default Queue} wl_pointer#905.motion(187310426, 29.00000000, 16.60156250) -[2618798.800] {Default Queue} wl_pointer#937.motion(187310426, 29.00000000, 16.60156250) -[2618798.804] {Default Queue} wl_pointer#969.motion(187310426, 29.00000000, 16.60156250) -[2618798.808] {Default Queue} wl_pointer#1001.motion(187310426, 29.00000000, 16.60156250) -[2618798.813] {Default Queue} wl_pointer#1033.motion(187310426, 29.00000000, 16.60156250) -[2618798.817] {Default Queue} wl_pointer#1065.motion(187310426, 29.00000000, 16.60156250) -[2618798.821] {Default Queue} wl_pointer#1097.motion(187310426, 29.00000000, 16.60156250) -[2618798.825] {Default Queue} wl_pointer#1129.motion(187310426, 29.00000000, 16.60156250) -[2618798.830] {Default Queue} wl_pointer#1161.motion(187310426, 29.00000000, 16.60156250) -[2618798.834] {Default Queue} wl_pointer#1193.motion(187310426, 29.00000000, 16.60156250) -[2618798.838] {Default Queue} wl_pointer#1225.motion(187310426, 29.00000000, 16.60156250) -[2618798.842] {Default Queue} wl_pointer#1257.motion(187310426, 29.00000000, 16.60156250) -[2618798.846] {Default Queue} wl_pointer#1289.motion(187310426, 29.00000000, 16.60156250) -[2618798.851] {Default Queue} wl_pointer#1321.motion(187310426, 29.00000000, 16.60156250) -[2618798.855] {Default Queue} wl_pointer#1353.motion(187310426, 29.00000000, 16.60156250) -[2618798.859] {Default Queue} wl_pointer#1385.motion(187310426, 29.00000000, 16.60156250) -[2618798.894] {Default Queue} wl_pointer#1417.motion(187310426, 29.00000000, 16.60156250) -[2618798.918] {Default Queue} wl_pointer#1449.motion(187310426, 29.00000000, 16.60156250) -[2618798.926] {Default Queue} wl_pointer#1481.motion(187310426, 29.00000000, 16.60156250) -[2618798.931] {Default Queue} wl_pointer#1513.motion(187310426, 29.00000000, 16.60156250) -[2618798.936] {Default Queue} wl_pointer#1545.motion(187310426, 29.00000000, 16.60156250) -[2618798.940] {Default Queue} wl_pointer#1577.motion(187310426, 29.00000000, 16.60156250) -[2618798.946] {Default Queue} wl_pointer#1609.motion(187310426, 29.00000000, 16.60156250) -[2618798.951] {Default Queue} wl_pointer#1641.motion(187310426, 29.00000000, 16.60156250) -[2618798.957] {Default Queue} wl_pointer#1673.motion(187310426, 29.00000000, 16.60156250) -[2618798.963] {Default Queue} wl_pointer#1705.motion(187310426, 29.00000000, 16.60156250) -[2618798.968] {Default Queue} wl_pointer#1737.motion(187310426, 29.00000000, 16.60156250) -[2618798.973] {Default Queue} wl_pointer#1762.motion(187310426, 29.00000000, 16.60156250) -[2618798.978] {Default Queue} wl_pointer#1801.motion(187310426, 29.00000000, 16.60156250) -[2618798.982] {Default Queue} wl_pointer#1833.motion(187310426, 29.00000000, 16.60156250) -[2618798.987] {Default Queue} wl_pointer#1865.motion(187310426, 29.00000000, 16.60156250) -[2618798.993] {Default Queue} wl_pointer#1897.motion(187310426, 29.00000000, 16.60156250) -[2618798.998] {Default Queue} wl_pointer#1929.motion(187310426, 29.00000000, 16.60156250) -[2618799.002] {Default Queue} wl_pointer#1961.motion(187310426, 29.00000000, 16.60156250) -[2618799.007] {Default Queue} wl_pointer#1993.motion(187310426, 29.00000000, 16.60156250) -[2618799.012] {Default Queue} wl_pointer#2025.motion(187310426, 29.00000000, 16.60156250) -[2618799.017] {Default Queue} wl_pointer#2057.motion(187310426, 29.00000000, 16.60156250) -[2618799.028] {Default Queue} wl_pointer#2089.motion(187310426, 29.00000000, 16.60156250) -[2618799.037] {Default Queue} wl_pointer#2121.motion(187310426, 29.00000000, 16.60156250) -[2618799.042] {Default Queue} wl_pointer#2153.motion(187310426, 29.00000000, 16.60156250) -[2618799.047] {Default Queue} wl_pointer#2185.motion(187310426, 29.00000000, 16.60156250) -[2618799.052] {Default Queue} wl_pointer#2217.motion(187310426, 29.00000000, 16.60156250) -[2618799.057] {Default Queue} wl_pointer#2249.motion(187310426, 29.00000000, 16.60156250) -[2618799.062] {Default Queue} wl_pointer#2281.motion(187310426, 29.00000000, 16.60156250) -[2618799.067] {Default Queue} wl_pointer#2313.motion(187310426, 29.00000000, 16.60156250) -[2618799.072] {Default Queue} wl_pointer#2345.motion(187310426, 29.00000000, 16.60156250) -[2618799.077] {Default Queue} wl_pointer#2377.motion(187310426, 29.00000000, 16.60156250) -[2618799.083] {Default Queue} wl_pointer#2409.motion(187310426, 29.00000000, 16.60156250) -[2618799.087] {Default Queue} wl_pointer#2441.motion(187310426, 29.00000000, 16.60156250) -[2618799.092] {Default Queue} wl_pointer#2473.motion(187310426, 29.00000000, 16.60156250) -[2618799.097] {Default Queue} wl_pointer#2498.motion(187310426, 29.00000000, 16.60156250) -[2618799.113] {Default Queue} -> wl_buffer#3485.destroy() -[2618799.121] {Default Queue} -> wl_buffer#3516.destroy() -[2618799.127] {Default Queue} -> wl_shm_pool#3483.destroy() -[2618799.131] {Default Queue} -> wl_shm_pool#3486.destroy() -[2618799.138] {Default Queue} -> wl_surface#3515.destroy() -[2618799.183] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#91, fd 587, 640) -[2618799.190] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#92, fd 588, 640) -[2618799.195] {Default Queue} -> wl_shm_pool#91.create_buffer(new id wl_buffer#93, 0, 10, 16, 40, 0) -[2618799.200] {Default Queue} -> wl_shm_pool#92.create_buffer(new id wl_buffer#94, 0, 10, 16, 40, 0) -[2618799.208] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3683) -[2618799.213] {Default Queue} -> wl_surface#3683.attach(wl_buffer#93, 0, 0) -[2618799.218] {Default Queue} -> wl_surface#3683.commit() -[2618799.223] {Default Queue} -> wl_surface#3683.attach(wl_buffer#93, 0, 0) -[2618799.228] {Default Queue} -> wl_surface#3683.commit() -[2618799.232] {Default Queue} wl_pointer#2537.motion(187310426, 29.00000000, 16.60156250) -[2618799.238] {Default Queue} wl_pointer#2569.motion(187310426, 29.00000000, 16.60156250) -[2618799.242] {Default Queue} wl_pointer#2601.motion(187310426, 29.00000000, 16.60156250) -[2618799.247] {Default Queue} wl_pointer#2633.motion(187310426, 29.00000000, 16.60156250) -[2618799.252] {Default Queue} wl_pointer#2665.motion(187310426, 29.00000000, 16.60156250) -[2618799.257] {Default Queue} wl_pointer#2697.motion(187310426, 29.00000000, 16.60156250) -[2618799.261] {Default Queue} wl_pointer#2729.motion(187310426, 29.00000000, 16.60156250) -[2618799.266] {Default Queue} wl_pointer#2761.motion(187310426, 29.00000000, 16.60156250) -[2618799.271] {Default Queue} wl_pointer#2793.motion(187310426, 29.00000000, 16.60156250) -[2618799.276] {Default Queue} wl_pointer#2825.motion(187310426, 29.00000000, 16.60156250) -[2618799.281] {Default Queue} wl_pointer#2857.motion(187310426, 29.00000000, 16.60156250) -[2618799.286] {Default Queue} wl_pointer#2889.motion(187310426, 29.00000000, 16.60156250) -[2618799.291] {Default Queue} wl_pointer#2921.motion(187310426, 29.00000000, 16.60156250) -[2618799.296] {Default Queue} wl_pointer#2953.motion(187310426, 29.00000000, 16.60156250) -[2618799.301] {Default Queue} wl_pointer#2985.motion(187310426, 29.00000000, 16.60156250) -[2618799.306] {Default Queue} wl_pointer#3017.motion(187310426, 29.00000000, 16.60156250) -[2618799.311] {Default Queue} wl_pointer#3049.motion(187310426, 29.00000000, 16.60156250) -[2618799.316] {Default Queue} wl_pointer#3081.motion(187310426, 29.00000000, 16.60156250) -[2618799.322] {Default Queue} wl_pointer#3113.motion(187310426, 29.00000000, 16.60156250) -[2618799.327] {Default Queue} wl_pointer#3145.motion(187310426, 29.00000000, 16.60156250) -[2618799.337] {Default Queue} wl_pointer#3177.motion(187310426, 29.00000000, 16.60156250) -[2618799.344] {Default Queue} wl_pointer#3209.motion(187310426, 29.00000000, 16.60156250) -[2618799.350] {Default Queue} wl_pointer#3241.motion(187310426, 29.00000000, 16.60156250) -[2618799.355] {Default Queue} wl_pointer#3273.motion(187310426, 29.00000000, 16.60156250) -[2618799.360] {Default Queue} wl_pointer#3305.motion(187310426, 29.00000000, 16.60156250) -[2618799.365] {Default Queue} wl_pointer#3337.motion(187310426, 29.00000000, 16.60156250) -[2618799.370] {Default Queue} wl_pointer#3369.motion(187310426, 29.00000000, 16.60156250) -[2618799.374] {Default Queue} wl_pointer#3401.motion(187310426, 29.00000000, 16.60156250) -[2618799.379] {Default Queue} wl_pointer#3433.motion(187310426, 29.00000000, 16.60156250) -[2618799.384] {Default Queue} wl_pointer#3465.motion(187310426, 29.00000000, 16.60156250) -[2618799.390] {Default Queue} wl_pointer#3497.motion(187310426, 29.00000000, 16.60156250) -[2618799.395] {Default Queue} wl_pointer#3529.motion(187310426, 29.00000000, 16.60156250) -[2618799.400] {Default Queue} wl_pointer#3561.motion(187310426, 29.00000000, 16.60156250) -[2618799.404] {Default Queue} wl_pointer#3593.motion(187310426, 29.00000000, 16.60156250) -[2618799.409] {Default Queue} wl_pointer#3625.motion(187310426, 29.00000000, 16.60156250) -[2618799.414] {Default Queue} wl_pointer#3657.motion(187310426, 29.00000000, 16.60156250) -[2618799.419] {Default Queue} wl_pointer#3695.motion(187310426, 29.00000000, 16.60156250) -[2618799.423] {Default Queue} wl_pointer#24.motion(187310431, 29.00000000, 16.19921875) -[2618799.428] {Default Queue} wl_pointer#81.motion(187310431, 29.00000000, 16.19921875) -[2618799.434] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618799.439] {Default Queue} wl_pointer#105.motion(187310431, 29.00000000, 16.19921875) -[2618799.447] {Default Queue} wl_pointer#137.motion(187310431, 29.00000000, 16.19921875) -[2618799.454] {Default Queue} wl_pointer#169.motion(187310431, 29.00000000, 16.19921875) -[2618799.458] {Default Queue} wl_pointer#201.motion(187310431, 29.00000000, 16.19921875) -[2618799.464] {Default Queue} wl_pointer#233.motion(187310431, 29.00000000, 16.19921875) -[2618799.469] {Default Queue} wl_pointer#265.motion(187310431, 29.00000000, 16.19921875) -[2618799.474] {Default Queue} wl_pointer#297.motion(187310431, 29.00000000, 16.19921875) -[2618799.478] {Default Queue} wl_pointer#329.motion(187310431, 29.00000000, 16.19921875) -[2618799.483] {Default Queue} wl_pointer#361.motion(187310431, 29.00000000, 16.19921875) -[2618799.488] {Default Queue} wl_pointer#393.motion(187310431, 29.00000000, 16.19921875) -[2618799.493] {Default Queue} wl_pointer#425.motion(187310431, 29.00000000, 16.19921875) -[2618799.498] {Default Queue} wl_pointer#457.motion(187310431, 29.00000000, 16.19921875) -[2618799.503] {Default Queue} wl_pointer#489.motion(187310431, 29.00000000, 16.19921875) -[2618799.507] {Default Queue} wl_pointer#521.motion(187310431, 29.00000000, 16.19921875) -[2618799.512] {Default Queue} wl_pointer#553.motion(187310431, 29.00000000, 16.19921875) -[2618799.517] {Default Queue} wl_pointer#585.motion(187310431, 29.00000000, 16.19921875) -[2618799.521] {Default Queue} wl_pointer#617.motion(187310431, 29.00000000, 16.19921875) -[2618799.526] {Default Queue} wl_pointer#649.motion(187310431, 29.00000000, 16.19921875) -[2618799.532] {Default Queue} wl_pointer#681.motion(187310431, 29.00000000, 16.19921875) -[2618799.537] {Default Queue} wl_pointer#713.motion(187310431, 29.00000000, 16.19921875) -[2618799.541] {Default Queue} wl_pointer#745.motion(187310431, 29.00000000, 16.19921875) -[2618799.546] {Default Queue} wl_pointer#777.motion(187310431, 29.00000000, 16.19921875) -[2618799.551] {Default Queue} wl_pointer#809.motion(187310431, 29.00000000, 16.19921875) -[2618799.556] {Default Queue} wl_pointer#841.motion(187310431, 29.00000000, 16.19921875) -[2618799.561] {Default Queue} wl_pointer#873.motion(187310431, 29.00000000, 16.19921875) -[2618799.566] {Default Queue} wl_pointer#905.motion(187310431, 29.00000000, 16.19921875) -[2618799.573] {Default Queue} wl_pointer#937.motion(187310431, 29.00000000, 16.19921875) -[2618799.580] {Default Queue} wl_pointer#969.motion(187310431, 29.00000000, 16.19921875) -[2618799.584] {Default Queue} wl_pointer#1001.motion(187310431, 29.00000000, 16.19921875) -[2618799.589] {Default Queue} wl_pointer#1033.motion(187310431, 29.00000000, 16.19921875) -[2618799.594] {Default Queue} wl_pointer#1065.motion(187310431, 29.00000000, 16.19921875) -[2618799.599] {Default Queue} wl_pointer#1097.motion(187310431, 29.00000000, 16.19921875) -[2618799.604] {Default Queue} wl_pointer#1129.motion(187310431, 29.00000000, 16.19921875) -[2618799.608] {Default Queue} wl_pointer#1161.motion(187310431, 29.00000000, 16.19921875) -[2618799.613] {Default Queue} wl_pointer#1193.motion(187310431, 29.00000000, 16.19921875) -[2618799.618] {Default Queue} wl_pointer#1225.motion(187310431, 29.00000000, 16.19921875) -[2618799.623] {Default Queue} wl_pointer#1257.motion(187310431, 29.00000000, 16.19921875) -[2618799.627] {Default Queue} wl_pointer#1289.motion(187310431, 29.00000000, 16.19921875) -[2618799.632] {Default Queue} wl_pointer#1321.motion(187310431, 29.00000000, 16.19921875) -[2618799.637] {Default Queue} wl_pointer#1353.motion(187310431, 29.00000000, 16.19921875) -[2618799.641] {Default Queue} wl_pointer#1385.motion(187310431, 29.00000000, 16.19921875) -[2618799.646] {Default Queue} wl_pointer#1417.motion(187310431, 29.00000000, 16.19921875) -[2618799.651] {Default Queue} wl_pointer#1449.motion(187310431, 29.00000000, 16.19921875) -[2618799.655] {Default Queue} wl_pointer#1481.motion(187310431, 29.00000000, 16.19921875) -[2618799.660] {Default Queue} wl_pointer#1513.motion(187310431, 29.00000000, 16.19921875) -[2618799.664] {Default Queue} wl_pointer#1545.motion(187310431, 29.00000000, 16.19921875) -[2618799.669] {Default Queue} wl_pointer#1577.motion(187310431, 29.00000000, 16.19921875) -[2618799.673] {Default Queue} wl_pointer#1609.motion(187310431, 29.00000000, 16.19921875) -[2618799.677] {Default Queue} wl_pointer#1641.motion(187310431, 29.00000000, 16.19921875) -[2618799.682] {Default Queue} wl_pointer#1673.motion(187310431, 29.00000000, 16.19921875) -[2618799.686] {Default Queue} wl_pointer#1705.motion(187310431, 29.00000000, 16.19921875) -[2618799.691] {Default Queue} wl_pointer#1737.motion(187310431, 29.00000000, 16.19921875) -[2618799.696] {Default Queue} wl_pointer#1762.motion(187310431, 29.00000000, 16.19921875) -[2618799.701] {Default Queue} wl_pointer#1801.motion(187310431, 29.00000000, 16.19921875) -[2618799.705] {Default Queue} wl_pointer#1833.motion(187310431, 29.00000000, 16.19921875) -[2618799.710] {Default Queue} wl_pointer#1865.motion(187310431, 29.00000000, 16.19921875) -[2618799.714] {Default Queue} wl_pointer#1897.motion(187310431, 29.00000000, 16.19921875) -[2618799.718] {Default Queue} wl_pointer#1929.motion(187310431, 29.00000000, 16.19921875) -[2618799.723] {Default Queue} wl_pointer#1961.motion(187310431, 29.00000000, 16.19921875) -[2618799.728] {Default Queue} wl_pointer#1993.motion(187310431, 29.00000000, 16.19921875) -[2618799.732] {Default Queue} wl_pointer#2025.motion(187310431, 29.00000000, 16.19921875) -[2618799.736] {Default Queue} wl_pointer#2057.motion(187310431, 29.00000000, 16.19921875) -[2618799.741] {Default Queue} wl_pointer#2089.motion(187310431, 29.00000000, 16.19921875) -[2618799.745] {Default Queue} wl_pointer#2121.motion(187310431, 29.00000000, 16.19921875) -[2618799.750] {Default Queue} wl_pointer#2153.motion(187310431, 29.00000000, 16.19921875) -[2618799.754] {Default Queue} wl_pointer#2185.motion(187310431, 29.00000000, 16.19921875) -[2618799.759] {Default Queue} wl_pointer#2217.motion(187310431, 29.00000000, 16.19921875) -[2618799.763] {Default Queue} wl_pointer#2249.motion(187310431, 29.00000000, 16.19921875) -[2618799.768] {Default Queue} wl_pointer#2281.motion(187310431, 29.00000000, 16.19921875) -[2618799.773] {Default Queue} wl_pointer#2313.motion(187310431, 29.00000000, 16.19921875) -[2618799.778] {Default Queue} wl_pointer#2345.motion(187310431, 29.00000000, 16.19921875) -[2618799.786] {Default Queue} wl_pointer#2377.motion(187310431, 29.00000000, 16.19921875) -[2618799.792] {Default Queue} wl_pointer#2409.motion(187310431, 29.00000000, 16.19921875) -[2618799.796] {Default Queue} wl_pointer#2441.motion(187310431, 29.00000000, 16.19921875) -[2618799.801] {Default Queue} wl_pointer#2473.motion(187310431, 29.00000000, 16.19921875) -[2618799.805] {Default Queue} wl_pointer#2498.motion(187310431, 29.00000000, 16.19921875) -[2618799.815] {Default Queue} -> wl_buffer#93.destroy() -[2618799.822] {Default Queue} -> wl_buffer#94.destroy() -[2618799.826] {Default Queue} -> wl_shm_pool#91.destroy() -[2618799.830] {Default Queue} -> wl_shm_pool#92.destroy() -[2618799.836] {Default Queue} -> wl_surface#3683.destroy() -[2618799.875] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3453, fd 589, 640) -[2618799.883] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3420, fd 590, 640) -[2618799.887] {Default Queue} -> wl_shm_pool#3453.create_buffer(new id wl_buffer#3419, 0, 10, 16, 40, 0) -[2618799.892] {Default Queue} -> wl_shm_pool#3420.create_buffer(new id wl_buffer#3422, 0, 10, 16, 40, 0) -[2618799.899] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3421) -[2618799.904] {Default Queue} -> wl_surface#3421.attach(wl_buffer#3419, 0, 0) -[2618799.909] {Default Queue} -> wl_surface#3421.commit() -[2618799.914] {Default Queue} -> wl_surface#3421.attach(wl_buffer#3419, 0, 0) -[2618799.918] {Default Queue} -> wl_surface#3421.commit() -[2618799.923] {Default Queue} wl_pointer#2537.motion(187310431, 29.00000000, 16.19921875) -[2618799.927] {Default Queue} wl_pointer#2569.motion(187310431, 29.00000000, 16.19921875) -[2618799.932] {Default Queue} wl_pointer#2601.motion(187310431, 29.00000000, 16.19921875) -[2618799.937] {Default Queue} wl_pointer#2633.motion(187310431, 29.00000000, 16.19921875) -[2618799.941] {Default Queue} wl_pointer#2665.motion(187310431, 29.00000000, 16.19921875) -[2618799.946] {Default Queue} wl_pointer#2697.motion(187310431, 29.00000000, 16.19921875) -[2618799.950] {Default Queue} wl_pointer#2729.motion(187310431, 29.00000000, 16.19921875) -[2618799.954] {Default Queue} wl_pointer#2761.motion(187310431, 29.00000000, 16.19921875) -[2618799.959] {Default Queue} wl_pointer#2793.motion(187310431, 29.00000000, 16.19921875) -[2618799.963] {Default Queue} wl_pointer#2825.motion(187310431, 29.00000000, 16.19921875) -[2618799.968] {Default Queue} wl_pointer#2857.motion(187310431, 29.00000000, 16.19921875) -[2618799.973] {Default Queue} wl_pointer#2889.motion(187310431, 29.00000000, 16.19921875) -[2618799.977] {Default Queue} wl_pointer#2921.motion(187310431, 29.00000000, 16.19921875) -[2618799.982] {Default Queue} wl_pointer#2953.motion(187310431, 29.00000000, 16.19921875) -[2618799.986] {Default Queue} wl_pointer#2985.motion(187310431, 29.00000000, 16.19921875) -[2618799.990] {Default Queue} wl_pointer#3017.motion(187310431, 29.00000000, 16.19921875) -[2618799.995] {Default Queue} wl_pointer#3049.motion(187310431, 29.00000000, 16.19921875) -[2618799.999] {Default Queue} wl_pointer#3081.motion(187310431, 29.00000000, 16.19921875) -[2618800.004] {Default Queue} wl_pointer#3113.motion(187310431, 29.00000000, 16.19921875) -[2618800.008] {Default Queue} wl_pointer#3145.motion(187310431, 29.00000000, 16.19921875) -[2618800.013] {Default Queue} wl_pointer#3177.motion(187310431, 29.00000000, 16.19921875) -[2618800.017] {Default Queue} wl_pointer#3209.motion(187310431, 29.00000000, 16.19921875) -[2618800.022] {Default Queue} wl_pointer#3241.motion(187310431, 29.00000000, 16.19921875) -[2618800.026] {Default Queue} wl_pointer#3273.motion(187310431, 29.00000000, 16.19921875) -[2618800.031] {Default Queue} wl_pointer#3305.motion(187310431, 29.00000000, 16.19921875) -[2618800.036] {Default Queue} wl_pointer#3337.motion(187310431, 29.00000000, 16.19921875) -[2618800.040] {Default Queue} wl_pointer#3369.motion(187310431, 29.00000000, 16.19921875) -[2618800.044] {Default Queue} wl_pointer#3401.motion(187310431, 29.00000000, 16.19921875) -[2618800.048] {Default Queue} wl_pointer#3433.motion(187310431, 29.00000000, 16.19921875) -[2618800.056] {Default Queue} wl_pointer#3465.motion(187310431, 29.00000000, 16.19921875) -[2618800.063] {Default Queue} wl_pointer#3497.motion(187310431, 29.00000000, 16.19921875) -[2618800.068] {Default Queue} wl_pointer#3529.motion(187310431, 29.00000000, 16.19921875) -[2618800.072] {Default Queue} wl_pointer#3561.motion(187310431, 29.00000000, 16.19921875) -[2618800.077] {Default Queue} wl_pointer#3593.motion(187310431, 29.00000000, 16.19921875) -[2618800.082] {Default Queue} wl_pointer#3625.motion(187310431, 29.00000000, 16.19921875) -[2618800.086] {Default Queue} wl_pointer#3657.motion(187310431, 29.00000000, 16.19921875) -[2618800.092] {Default Queue} wl_pointer#3695.motion(187310431, 29.00000000, 16.19921875) -[2618800.096] {Default Queue} wl_pointer#24.motion(187310431, 29.00000000, 15.80078125) -[2618800.101] {Default Queue} wl_pointer#81.motion(187310431, 29.00000000, 15.80078125) -[2618800.106] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618800.111] {Default Queue} wl_pointer#105.motion(187310431, 29.00000000, 15.80078125) -[2618800.116] {Default Queue} wl_pointer#137.motion(187310431, 29.00000000, 15.80078125) -[2618800.120] {Default Queue} wl_pointer#169.motion(187310431, 29.00000000, 15.80078125) -[2618800.124] {Default Queue} wl_pointer#201.motion(187310431, 29.00000000, 15.80078125) -[2618800.129] {Default Queue} wl_pointer#233.motion(187310431, 29.00000000, 15.80078125) -[2618800.133] {Default Queue} wl_pointer#265.motion(187310431, 29.00000000, 15.80078125) -[2618800.138] {Default Queue} wl_pointer#297.motion(187310431, 29.00000000, 15.80078125) -[2618800.142] {Default Queue} wl_pointer#329.motion(187310431, 29.00000000, 15.80078125) -[2618800.146] {Default Queue} wl_pointer#361.motion(187310431, 29.00000000, 15.80078125) -[2618800.151] {Default Queue} wl_pointer#393.motion(187310431, 29.00000000, 15.80078125) -[2618800.155] {Default Queue} wl_pointer#425.motion(187310431, 29.00000000, 15.80078125) -[2618800.160] {Default Queue} wl_pointer#457.motion(187310431, 29.00000000, 15.80078125) -[2618800.165] {Default Queue} wl_pointer#489.motion(187310431, 29.00000000, 15.80078125) -[2618800.169] {Default Queue} wl_pointer#521.motion(187310431, 29.00000000, 15.80078125) -[2618800.174] {Default Queue} wl_pointer#553.motion(187310431, 29.00000000, 15.80078125) -[2618800.179] {Default Queue} wl_pointer#585.motion(187310431, 29.00000000, 15.80078125) -[2618800.183] {Default Queue} wl_pointer#617.motion(187310431, 29.00000000, 15.80078125) -[2618800.188] {Default Queue} wl_pointer#649.motion(187310431, 29.00000000, 15.80078125) -[2618800.192] {Default Queue} wl_pointer#681.motion(187310431, 29.00000000, 15.80078125) -[2618800.197] {Default Queue} wl_pointer#713.motion(187310431, 29.00000000, 15.80078125) -[2618800.201] {Default Queue} wl_pointer#745.motion(187310431, 29.00000000, 15.80078125) -[2618800.205] {Default Queue} wl_pointer#777.motion(187310431, 29.00000000, 15.80078125) -[2618800.210] {Default Queue} wl_pointer#809.motion(187310431, 29.00000000, 15.80078125) -[2618800.214] {Default Queue} wl_pointer#841.motion(187310431, 29.00000000, 15.80078125) -[2618800.219] {Default Queue} wl_pointer#873.motion(187310431, 29.00000000, 15.80078125) -[2618800.224] {Default Queue} wl_pointer#905.motion(187310431, 29.00000000, 15.80078125) -[2618800.230] {Default Queue} wl_pointer#937.motion(187310431, 29.00000000, 15.80078125) -[2618800.235] {Default Queue} wl_pointer#969.motion(187310431, 29.00000000, 15.80078125) -[2618800.240] {Default Queue} wl_pointer#1001.motion(187310431, 29.00000000, 15.80078125) -[2618800.244] {Default Queue} wl_pointer#1033.motion(187310431, 29.00000000, 15.80078125) -[2618800.248] {Default Queue} wl_pointer#1065.motion(187310431, 29.00000000, 15.80078125) -[2618800.253] {Default Queue} wl_pointer#1097.motion(187310431, 29.00000000, 15.80078125) -[2618800.257] {Default Queue} wl_pointer#1129.motion(187310431, 29.00000000, 15.80078125) -[2618800.262] {Default Queue} wl_pointer#1161.motion(187310431, 29.00000000, 15.80078125) -[2618800.266] {Default Queue} wl_pointer#1193.motion(187310431, 29.00000000, 15.80078125) -[2618800.273] {Default Queue} wl_pointer#1225.motion(187310431, 29.00000000, 15.80078125) -[2618800.280] {Default Queue} wl_pointer#1257.motion(187310431, 29.00000000, 15.80078125) -[2618800.284] {Default Queue} wl_pointer#1289.motion(187310431, 29.00000000, 15.80078125) -[2618800.289] {Default Queue} wl_pointer#1321.motion(187310431, 29.00000000, 15.80078125) -[2618800.293] {Default Queue} wl_pointer#1353.motion(187310431, 29.00000000, 15.80078125) -[2618800.297] {Default Queue} wl_pointer#1385.motion(187310431, 29.00000000, 15.80078125) -[2618800.302] {Default Queue} wl_pointer#1417.motion(187310431, 29.00000000, 15.80078125) -[2618800.306] {Default Queue} wl_pointer#1449.motion(187310431, 29.00000000, 15.80078125) -[2618800.310] {Default Queue} wl_pointer#1481.motion(187310431, 29.00000000, 15.80078125) -[2618800.315] {Default Queue} wl_pointer#1513.motion(187310431, 29.00000000, 15.80078125) -[2618800.319] {Default Queue} wl_pointer#1545.motion(187310431, 29.00000000, 15.80078125) -[2618800.323] {Default Queue} wl_pointer#1577.motion(187310431, 29.00000000, 15.80078125) -[2618800.328] {Default Queue} wl_pointer#1609.motion(187310431, 29.00000000, 15.80078125) -[2618800.332] {Default Queue} wl_pointer#1641.motion(187310431, 29.00000000, 15.80078125) -[2618800.337] {Default Queue} wl_pointer#1673.motion(187310431, 29.00000000, 15.80078125) -[2618800.341] {Default Queue} wl_pointer#1705.motion(187310431, 29.00000000, 15.80078125) -[2618800.345] {Default Queue} wl_pointer#1737.motion(187310431, 29.00000000, 15.80078125) -[2618800.350] {Default Queue} wl_pointer#1762.motion(187310431, 29.00000000, 15.80078125) -[2618800.355] {Default Queue} wl_pointer#1801.motion(187310431, 29.00000000, 15.80078125) -[2618800.359] {Default Queue} wl_pointer#1833.motion(187310431, 29.00000000, 15.80078125) -[2618800.363] {Default Queue} wl_pointer#1865.motion(187310431, 29.00000000, 15.80078125) -[2618800.368] {Default Queue} wl_pointer#1897.motion(187310431, 29.00000000, 15.80078125) -[2618800.372] {Default Queue} wl_pointer#1929.motion(187310431, 29.00000000, 15.80078125) -[2618800.377] {Default Queue} wl_pointer#1961.motion(187310431, 29.00000000, 15.80078125) -[2618800.381] {Default Queue} wl_pointer#1993.motion(187310431, 29.00000000, 15.80078125) -[2618800.386] {Default Queue} wl_pointer#2025.motion(187310431, 29.00000000, 15.80078125) -[2618800.390] {Default Queue} wl_pointer#2057.motion(187310431, 29.00000000, 15.80078125) -[2618800.395] {Default Queue} wl_pointer#2089.motion(187310431, 29.00000000, 15.80078125) -[2618800.399] {Default Queue} wl_pointer#2121.motion(187310431, 29.00000000, 15.80078125) -[2618800.404] {Default Queue} wl_pointer#2153.motion(187310431, 29.00000000, 15.80078125) -[2618800.408] {Default Queue} wl_pointer#2185.motion(187310431, 29.00000000, 15.80078125) -[2618800.412] {Default Queue} wl_pointer#2217.motion(187310431, 29.00000000, 15.80078125) -[2618800.417] {Default Queue} wl_pointer#2249.motion(187310431, 29.00000000, 15.80078125) -[2618800.421] {Default Queue} wl_pointer#2281.motion(187310431, 29.00000000, 15.80078125) -[2618800.426] {Default Queue} wl_pointer#2313.motion(187310431, 29.00000000, 15.80078125) -[2618800.430] {Default Queue} wl_pointer#2345.motion(187310431, 29.00000000, 15.80078125) -[2618800.435] {Default Queue} wl_pointer#2377.motion(187310431, 29.00000000, 15.80078125) -[2618800.439] {Default Queue} wl_pointer#2409.motion(187310431, 29.00000000, 15.80078125) -[2618800.444] {Default Queue} wl_pointer#2441.motion(187310431, 29.00000000, 15.80078125) -[2618800.449] {Default Queue} wl_pointer#2473.motion(187310431, 29.00000000, 15.80078125) -[2618800.453] {Default Queue} wl_pointer#2498.motion(187310431, 29.00000000, 15.80078125) -[2618800.463] {Default Queue} -> wl_buffer#3419.destroy() -[2618800.468] {Default Queue} -> wl_buffer#3422.destroy() -[2618800.474] {Default Queue} -> wl_shm_pool#3453.destroy() -[2618800.478] {Default Queue} -> wl_shm_pool#3420.destroy() -[2618800.484] {Default Queue} -> wl_surface#3421.destroy() -[2618800.515] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3068, fd 591, 640) -[2618800.524] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3067, fd 592, 640) -[2618800.530] {Default Queue} -> wl_shm_pool#3068.create_buffer(new id wl_buffer#3070, 0, 10, 16, 40, 0) -[2618800.535] {Default Queue} -> wl_shm_pool#3067.create_buffer(new id wl_buffer#3069, 0, 10, 16, 40, 0) -[2618800.542] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3228) -[2618800.546] {Default Queue} -> wl_surface#3228.attach(wl_buffer#3070, 0, 0) -[2618800.551] {Default Queue} -> wl_surface#3228.commit() -[2618800.556] {Default Queue} -> wl_surface#3228.attach(wl_buffer#3070, 0, 0) -[2618800.561] {Default Queue} -> wl_surface#3228.commit() -[2618800.565] {Default Queue} wl_pointer#2537.motion(187310431, 29.00000000, 15.80078125) -[2618800.570] {Default Queue} wl_pointer#2569.motion(187310431, 29.00000000, 15.80078125) -[2618800.574] {Default Queue} wl_pointer#2601.motion(187310431, 29.00000000, 15.80078125) -[2618800.578] {Default Queue} wl_pointer#2633.motion(187310431, 29.00000000, 15.80078125) -[2618800.583] {Default Queue} wl_pointer#2665.motion(187310431, 29.00000000, 15.80078125) -[2618800.587] {Default Queue} wl_pointer#2697.motion(187310431, 29.00000000, 15.80078125) -[2618800.592] {Default Queue} wl_pointer#2729.motion(187310431, 29.00000000, 15.80078125) -[2618800.596] {Default Queue} wl_pointer#2761.motion(187310431, 29.00000000, 15.80078125) -[2618800.601] {Default Queue} wl_pointer#2793.motion(187310431, 29.00000000, 15.80078125) -[2618800.606] {Default Queue} wl_pointer#2825.motion(187310431, 29.00000000, 15.80078125) -[2618800.610] {Default Queue} wl_pointer#2857.motion(187310431, 29.00000000, 15.80078125) -[2618800.624] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2618800.630] {Default Queue} -> wl_surface#43.commit() -[2618801.371] {Default Queue} wl_pointer#2889.motion(187310431, 29.00000000, 15.80078125) -[2618801.392] {Default Queue} wl_pointer#2921.motion(187310431, 29.00000000, 15.80078125) -[2618801.399] {Default Queue} wl_pointer#2953.motion(187310431, 29.00000000, 15.80078125) -[2618801.404] {Default Queue} wl_pointer#2985.motion(187310431, 29.00000000, 15.80078125) -[2618801.408] {Default Queue} wl_pointer#3017.motion(187310431, 29.00000000, 15.80078125) -[2618801.413] {Default Queue} wl_pointer#3049.motion(187310431, 29.00000000, 15.80078125) -[2618801.417] {Default Queue} wl_pointer#3081.motion(187310431, 29.00000000, 15.80078125) -[2618801.422] {Default Queue} wl_pointer#3113.motion(187310431, 29.00000000, 15.80078125) -[2618801.427] {Default Queue} wl_pointer#3145.motion(187310431, 29.00000000, 15.80078125) -[2618801.432] {Default Queue} wl_pointer#3177.motion(187310431, 29.00000000, 15.80078125) -[2618801.436] {Default Queue} wl_pointer#3209.motion(187310431, 29.00000000, 15.80078125) -[2618801.441] {Default Queue} wl_pointer#3241.motion(187310431, 29.00000000, 15.80078125) -[2618801.446] {Default Queue} wl_pointer#3273.motion(187310431, 29.00000000, 15.80078125) -[2618801.450] {Default Queue} wl_pointer#3305.motion(187310431, 29.00000000, 15.80078125) -[2618801.455] {Default Queue} wl_pointer#3337.motion(187310431, 29.00000000, 15.80078125) -[2618801.459] {Default Queue} wl_pointer#3369.motion(187310431, 29.00000000, 15.80078125) -[2618801.467] {Default Queue} wl_pointer#3401.motion(187310431, 29.00000000, 15.80078125) -[2618801.472] {Default Queue} wl_pointer#3433.motion(187310431, 29.00000000, 15.80078125) -[2618801.476] {Default Queue} wl_pointer#3465.motion(187310431, 29.00000000, 15.80078125) -[2618801.482] {Default Queue} wl_pointer#3497.motion(187310431, 29.00000000, 15.80078125) -[2618801.486] {Default Queue} wl_pointer#3529.motion(187310431, 29.00000000, 15.80078125) -[2618801.491] {Default Queue} wl_pointer#3561.motion(187310431, 29.00000000, 15.80078125) -[2618801.495] {Default Queue} wl_pointer#3593.motion(187310431, 29.00000000, 15.80078125) -[2618801.500] {Default Queue} wl_pointer#3625.motion(187310431, 29.00000000, 15.80078125) -[2618801.504] {Default Queue} wl_pointer#3657.motion(187310431, 29.00000000, 15.80078125) -[2618801.509] {Default Queue} wl_pointer#3695.motion(187310431, 29.00000000, 15.80078125) -[2618801.532] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2618801.541] {Default Queue} -> wl_surface#43.commit() -[2618801.548] {Default Queue} -> wl_region#223.subtract(0, 0, 2, 20) -[2618801.553] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 51) -[2618801.558] {Default Queue} -> wl_region#223.add(-20, -49, 22, 51) -[2618801.562] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618801.567] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618801.571] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2618801.588] {Default Queue} -> wl_buffer#221.destroy() -[2618801.594] {Default Queue} -> wl_buffer#222.destroy() -[2618801.598] {Default Queue} -> wl_shm_pool#219.destroy() -[2618801.602] {Default Queue} -> wl_shm_pool#220.destroy() -[2618801.668] {Default Queue} -> wl_shm#207.create_pool(new id wl_shm_pool#3227, fd 575, 160) -[2618801.677] {Default Queue} -> wl_shm#207.create_pool(new id wl_shm_pool#3230, fd 578, 160) -[2618801.683] {Default Queue} -> wl_shm_pool#3227.create_buffer(new id wl_buffer#3229, 0, 2, 20, 8, 0) -[2618801.688] {Default Queue} -> wl_shm_pool#3230.create_buffer(new id wl_buffer#2876, 0, 2, 20, 8, 0) -[2618801.695] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) -[2618801.700] {Default Queue} -> wl_surface#199.commit() -[2618801.705] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) -[2618801.710] {Default Queue} -> wl_surface#199.commit() -[2618801.723] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 51) -[2618801.728] {Default Queue} -> wl_region#223.add(-20, -49, 22, 51) -[2618801.732] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618801.736] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618801.818] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 51) -[2618801.823] {Default Queue} -> wl_region#223.add(-20, -49, 22, 51) -[2618801.827] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618801.831] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618801.838] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2618801.842] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2618801.902] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 51) -[2618801.907] {Default Queue} -> wl_region#223.add(-20, -49, 22, 51) -[2618801.911] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618801.915] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618801.922] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2618801.926] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2618801.931] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) -[2618801.936] {Default Queue} -> wl_surface#199.commit() -[2618801.942] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) -[2618801.946] {Default Queue} -> wl_surface#199.commit() -[2618803.016] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) -[2618803.029] {Default Queue} -> wl_surface#199.commit() -[2618803.041] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 51) -[2618803.047] {Default Queue} -> wl_region#223.add(-20, -49, 22, 51) -[2618803.052] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618803.056] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618803.127] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 51) -[2618803.132] {Default Queue} -> wl_region#223.add(-20, -49, 22, 51) -[2618803.136] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618803.140] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618803.146] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2618803.151] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2618803.201] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 51) -[2618803.205] {Default Queue} -> wl_region#223.add(-20, -49, 22, 51) -[2618803.210] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618803.218] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618803.227] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2618803.232] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2618803.237] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) -[2618803.241] {Default Queue} -> wl_surface#199.commit() -[2618803.245] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) -[2618803.249] {Default Queue} -> wl_surface#199.commit() -[2618803.256] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) -[2618803.261] {Default Queue} -> wl_surface#199.commit() -[2618803.271] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) -[2618803.275] {Default Queue} -> wl_surface#263.commit() -[2618804.338] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) -[2618804.344] {Default Queue} -> wl_surface#263.commit() -[2618804.352] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 34) -[2618804.358] {Default Queue} -> wl_region#287.add(-23, -52, 25, 34) -[2618804.362] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618804.366] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618804.374] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 34) -[2618804.378] {Default Queue} -> wl_region#287.add(-23, -52, 25, 34) -[2618804.382] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618804.386] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618804.391] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 34) -[2618804.396] {Default Queue} -> wl_region#287.add(-23, -52, 25, 34) -[2618804.400] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618804.404] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618804.408] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 34) -[2618804.412] {Default Queue} -> wl_region#287.add(-23, -52, 25, 34) -[2618804.417] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618804.420] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618804.425] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 34) -[2618804.429] {Default Queue} -> wl_region#287.add(-23, -52, 25, 34) -[2618804.433] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618804.437] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618804.516] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 34) -[2618804.520] {Default Queue} -> wl_region#287.add(-23, -52, 25, 34) -[2618804.525] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618804.529] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618804.534] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618804.538] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618804.543] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) -[2618804.547] {Default Queue} -> wl_surface#263.commit() -[2618804.551] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) -[2618804.555] {Default Queue} -> wl_surface#263.commit() -[2618804.561] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) -[2618804.565] {Default Queue} -> wl_surface#263.commit() -[2618804.569] {Default Queue} -> wl_region#255.subtract(0, 0, 2, 2) -[2618804.576] {Default Queue} -> wl_region#287.subtract(0, 0, 2, 2) -[2618804.580] {Default Queue} -> wl_subsurface#282.set_position(1, 1) -[2618804.584] {Default Queue} -> wl_region#287.subtract(0, 0, 26, 35) -[2618804.588] {Default Queue} -> wl_region#287.add(-23, -52, 25, 34) -[2618804.592] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618804.596] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618804.600] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618804.607] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) -[2618804.611] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) -[2618804.615] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618804.619] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618804.629] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) -[2618804.635] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) -[2618804.640] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618804.644] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618804.648] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) -[2618804.653] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) -[2618804.657] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618804.660] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618804.665] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) -[2618804.669] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) -[2618804.673] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618804.677] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618804.682] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) -[2618804.686] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) -[2618804.690] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618804.694] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618804.756] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) -[2618804.760] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) -[2618804.765] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618804.768] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618804.773] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618804.777] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618804.782] {Default Queue} -> wl_surface#263.attach(wl_buffer#285, 0, 0) -[2618804.786] {Default Queue} -> wl_surface#263.commit() -[2618804.793] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) -[2618804.797] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) -[2618804.801] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618804.805] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618804.811] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) -[2618804.815] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) -[2618804.819] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618804.823] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618804.828] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) -[2618804.832] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) -[2618804.836] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618804.840] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618804.845] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) -[2618804.849] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) -[2618804.853] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618804.857] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618804.865] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) -[2618804.869] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) -[2618804.873] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618804.877] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618804.936] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) -[2618804.941] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) -[2618804.945] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618804.949] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618804.954] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618804.958] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618804.963] {Default Queue} -> wl_region#255.subtract(0, 0, 25, 54) -[2618804.968] {Default Queue} -> wl_region#255.add(-23, -52, 25, 34) -[2618804.972] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) -[2618804.976] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) -[2618804.983] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618804.989] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) -[2618805.008] {Default Queue} -> wl_buffer#253.destroy() -[2618805.013] {Default Queue} -> wl_buffer#254.destroy() -[2618805.017] {Default Queue} -> wl_shm_pool#251.destroy() -[2618805.021] {Default Queue} -> wl_shm_pool#252.destroy() -[2618805.063] {Default Queue} -> wl_shm#239.create_pool(new id wl_shm_pool#2875, fd 575, 16) -[2618805.070] {Default Queue} -> wl_shm#239.create_pool(new id wl_shm_pool#2878, fd 578, 16) -[2618805.074] {Default Queue} -> wl_shm_pool#2875.create_buffer(new id wl_buffer#2877, 0, 2, 2, 8, 0) -[2618805.079] {Default Queue} -> wl_shm_pool#2878.create_buffer(new id wl_buffer#2716, 0, 2, 2, 8, 0) -[2618805.086] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) -[2618805.090] {Default Queue} -> wl_surface#231.commit() -[2618805.096] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) -[2618805.100] {Default Queue} -> wl_surface#231.commit() -[2618805.107] {Default Queue} -> wl_region#255.subtract(0, 0, 25, 54) -[2618805.113] {Default Queue} -> wl_region#255.add(-23, -52, 25, 34) -[2618805.118] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) -[2618805.122] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) -[2618805.126] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) -[2618805.131] {Default Queue} -> wl_surface#231.commit() -[2618805.137] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) -[2618805.141] {Default Queue} -> wl_surface#231.commit() -[2618806.205] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) -[2618806.211] {Default Queue} -> wl_surface#231.commit() -[2618806.216] {Default Queue} -> wl_region#255.subtract(0, 0, 25, 54) -[2618806.220] {Default Queue} -> wl_region#255.add(-23, -52, 25, 34) -[2618806.224] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) -[2618806.228] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) -[2618806.233] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) -[2618806.237] {Default Queue} -> wl_surface#231.commit() -[2618806.241] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) -[2618806.245] {Default Queue} -> wl_surface#231.commit() -[2618806.250] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) -[2618806.254] {Default Queue} -> wl_surface#231.commit() -[2618806.260] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) -[2618806.264] {Default Queue} -> wl_surface#167.commit() -[2618806.542] {Default Queue} wl_pointer#24.motion(187310436, 29.00000000, 15.39843750) -[2618806.549] {Default Queue} wl_pointer#81.motion(187310436, 29.00000000, 15.39843750) -[2618806.555] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618806.559] {Default Queue} wl_pointer#105.motion(187310436, 29.00000000, 15.39843750) -[2618806.564] {Default Queue} wl_pointer#137.motion(187310436, 29.00000000, 15.39843750) -[2618806.568] {Default Queue} wl_pointer#169.motion(187310436, 29.00000000, 15.39843750) -[2618806.572] {Default Queue} wl_pointer#201.motion(187310436, 29.00000000, 15.39843750) -[2618806.576] {Default Queue} wl_pointer#233.motion(187310436, 29.00000000, 15.39843750) -[2618806.581] {Default Queue} wl_pointer#265.motion(187310436, 29.00000000, 15.39843750) -[2618806.585] {Default Queue} wl_pointer#297.motion(187310436, 29.00000000, 15.39843750) -[2618806.589] {Default Queue} wl_pointer#329.motion(187310436, 29.00000000, 15.39843750) -[2618806.594] {Default Queue} wl_pointer#361.motion(187310436, 29.00000000, 15.39843750) -[2618806.598] {Default Queue} wl_pointer#393.motion(187310436, 29.00000000, 15.39843750) -[2618806.602] {Default Queue} wl_pointer#425.motion(187310436, 29.00000000, 15.39843750) -[2618806.607] {Default Queue} wl_pointer#457.motion(187310436, 29.00000000, 15.39843750) -[2618806.611] {Default Queue} wl_pointer#489.motion(187310436, 29.00000000, 15.39843750) -[2618806.615] {Default Queue} wl_pointer#521.motion(187310436, 29.00000000, 15.39843750) -[2618806.624] {Default Queue} wl_pointer#553.motion(187310436, 29.00000000, 15.39843750) -[2618806.630] {Default Queue} wl_pointer#585.motion(187310436, 29.00000000, 15.39843750) -[2618806.635] {Default Queue} wl_pointer#617.motion(187310436, 29.00000000, 15.39843750) -[2618806.639] {Default Queue} wl_pointer#649.motion(187310436, 29.00000000, 15.39843750) -[2618806.644] {Default Queue} wl_pointer#681.motion(187310436, 29.00000000, 15.39843750) -[2618806.649] {Default Queue} wl_pointer#713.motion(187310436, 29.00000000, 15.39843750) -[2618806.653] {Default Queue} wl_pointer#745.motion(187310436, 29.00000000, 15.39843750) -[2618806.658] {Default Queue} wl_pointer#777.motion(187310436, 29.00000000, 15.39843750) -[2618806.662] {Default Queue} wl_pointer#809.motion(187310436, 29.00000000, 15.39843750) -[2618806.666] {Default Queue} wl_pointer#841.motion(187310436, 29.00000000, 15.39843750) -[2618806.671] {Default Queue} wl_pointer#873.motion(187310436, 29.00000000, 15.39843750) -[2618806.675] {Default Queue} wl_pointer#905.motion(187310436, 29.00000000, 15.39843750) -[2618806.679] {Default Queue} wl_pointer#937.motion(187310436, 29.00000000, 15.39843750) -[2618806.684] {Default Queue} wl_pointer#969.motion(187310436, 29.00000000, 15.39843750) -[2618806.688] {Default Queue} wl_pointer#1001.motion(187310436, 29.00000000, 15.39843750) -[2618806.692] {Default Queue} wl_pointer#1033.motion(187310436, 29.00000000, 15.39843750) -[2618806.697] {Default Queue} wl_pointer#1065.motion(187310436, 29.00000000, 15.39843750) -[2618806.701] {Default Queue} wl_pointer#1097.motion(187310436, 29.00000000, 15.39843750) -[2618806.705] {Default Queue} wl_pointer#1129.motion(187310436, 29.00000000, 15.39843750) -[2618806.710] {Default Queue} wl_pointer#1161.motion(187310436, 29.00000000, 15.39843750) -[2618806.714] {Default Queue} wl_pointer#1193.motion(187310436, 29.00000000, 15.39843750) -[2618806.719] {Default Queue} wl_pointer#1225.motion(187310436, 29.00000000, 15.39843750) -[2618806.723] {Default Queue} wl_pointer#1257.motion(187310436, 29.00000000, 15.39843750) -[2618806.727] {Default Queue} wl_pointer#1289.motion(187310436, 29.00000000, 15.39843750) -[2618806.732] {Default Queue} wl_pointer#1321.motion(187310436, 29.00000000, 15.39843750) -[2618806.736] {Default Queue} wl_pointer#1353.motion(187310436, 29.00000000, 15.39843750) -[2618806.741] {Default Queue} wl_pointer#1385.motion(187310436, 29.00000000, 15.39843750) -[2618806.745] {Default Queue} wl_pointer#1417.motion(187310436, 29.00000000, 15.39843750) -[2618806.750] {Default Queue} wl_pointer#1449.motion(187310436, 29.00000000, 15.39843750) -[2618806.754] {Default Queue} wl_pointer#1481.motion(187310436, 29.00000000, 15.39843750) -[2618806.758] {Default Queue} wl_pointer#1513.motion(187310436, 29.00000000, 15.39843750) -[2618806.763] {Default Queue} wl_pointer#1545.motion(187310436, 29.00000000, 15.39843750) -[2618806.767] {Default Queue} wl_pointer#1577.motion(187310436, 29.00000000, 15.39843750) -[2618806.772] {Default Queue} wl_pointer#1609.motion(187310436, 29.00000000, 15.39843750) -[2618806.776] {Default Queue} wl_pointer#1641.motion(187310436, 29.00000000, 15.39843750) -[2618806.781] {Default Queue} wl_pointer#1673.motion(187310436, 29.00000000, 15.39843750) -[2618806.785] {Default Queue} wl_pointer#1705.motion(187310436, 29.00000000, 15.39843750) -[2618806.790] {Default Queue} wl_pointer#1737.motion(187310436, 29.00000000, 15.39843750) -[2618806.794] {Default Queue} wl_pointer#1762.motion(187310436, 29.00000000, 15.39843750) -[2618806.798] {Default Queue} wl_pointer#1801.motion(187310436, 29.00000000, 15.39843750) -[2618806.803] {Default Queue} wl_pointer#1833.motion(187310436, 29.00000000, 15.39843750) -[2618806.807] {Default Queue} wl_pointer#1865.motion(187310436, 29.00000000, 15.39843750) -[2618806.812] {Default Queue} wl_pointer#1897.motion(187310436, 29.00000000, 15.39843750) -[2618806.816] {Default Queue} wl_pointer#1929.motion(187310436, 29.00000000, 15.39843750) -[2618806.821] {Default Queue} wl_pointer#1961.motion(187310436, 29.00000000, 15.39843750) -[2618806.825] {Default Queue} wl_pointer#1993.motion(187310436, 29.00000000, 15.39843750) -[2618806.833] {Default Queue} wl_pointer#2025.motion(187310436, 29.00000000, 15.39843750) -[2618806.839] {Default Queue} wl_pointer#2057.motion(187310436, 29.00000000, 15.39843750) -[2618806.843] {Default Queue} wl_pointer#2089.motion(187310436, 29.00000000, 15.39843750) -[2618806.848] {Default Queue} wl_pointer#2121.motion(187310436, 29.00000000, 15.39843750) -[2618806.852] {Default Queue} wl_pointer#2153.motion(187310436, 29.00000000, 15.39843750) -[2618806.856] {Default Queue} wl_pointer#2185.motion(187310436, 29.00000000, 15.39843750) -[2618806.862] {Default Queue} wl_pointer#2217.motion(187310436, 29.00000000, 15.39843750) -[2618806.867] {Default Queue} wl_pointer#2249.motion(187310436, 29.00000000, 15.39843750) -[2618806.877] {Default Queue} wl_pointer#2281.motion(187310436, 29.00000000, 15.39843750) -[2618806.882] {Default Queue} wl_pointer#2313.motion(187310436, 29.00000000, 15.39843750) -[2618806.889] {Default Queue} wl_pointer#2345.motion(187310436, 29.00000000, 15.39843750) -[2618806.895] {Default Queue} wl_pointer#2377.motion(187310436, 29.00000000, 15.39843750) -[2618806.899] {Default Queue} wl_pointer#2409.motion(187310436, 29.00000000, 15.39843750) -[2618806.904] {Default Queue} wl_pointer#2441.motion(187310436, 29.00000000, 15.39843750) -[2618806.908] {Default Queue} wl_pointer#2473.motion(187310436, 29.00000000, 15.39843750) -[2618806.912] {Default Queue} wl_pointer#2498.motion(187310436, 29.00000000, 15.39843750) -[2618806.926] {Default Queue} -> wl_buffer#3070.destroy() -[2618806.930] {Default Queue} -> wl_buffer#3069.destroy() -[2618806.934] {Default Queue} -> wl_shm_pool#3068.destroy() -[2618806.938] {Default Queue} -> wl_shm_pool#3067.destroy() -[2618806.945] {Default Queue} -> wl_surface#3228.destroy() -[2618806.981] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2715, fd 575, 640) -[2618806.988] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2718, fd 578, 640) -[2618806.992] {Default Queue} -> wl_shm_pool#2715.create_buffer(new id wl_buffer#2717, 0, 10, 16, 40, 0) -[2618806.997] {Default Queue} -> wl_shm_pool#2718.create_buffer(new id wl_buffer#2556, 0, 10, 16, 40, 0) -[2618807.004] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#2555) -[2618807.009] {Default Queue} -> wl_surface#2555.attach(wl_buffer#2717, 0, 0) -[2618807.013] {Default Queue} -> wl_surface#2555.commit() -[2618807.018] {Default Queue} -> wl_surface#2555.attach(wl_buffer#2717, 0, 0) -[2618807.022] {Default Queue} -> wl_surface#2555.commit() -[2618807.027] {Default Queue} wl_pointer#2537.motion(187310436, 29.00000000, 15.39843750) -[2618807.031] {Default Queue} wl_pointer#2569.motion(187310436, 29.00000000, 15.39843750) -[2618807.036] {Default Queue} wl_pointer#2601.motion(187310436, 29.00000000, 15.39843750) -[2618807.040] {Default Queue} wl_pointer#2633.motion(187310436, 29.00000000, 15.39843750) -[2618807.045] {Default Queue} wl_pointer#2665.motion(187310436, 29.00000000, 15.39843750) -[2618807.049] {Default Queue} wl_pointer#2697.motion(187310436, 29.00000000, 15.39843750) -[2618807.053] {Default Queue} wl_pointer#2729.motion(187310436, 29.00000000, 15.39843750) -[2618807.058] {Default Queue} wl_pointer#2761.motion(187310436, 29.00000000, 15.39843750) -[2618807.062] {Default Queue} wl_pointer#2793.motion(187310436, 29.00000000, 15.39843750) -[2618807.067] {Default Queue} wl_pointer#2825.motion(187310436, 29.00000000, 15.39843750) -[2618807.071] {Default Queue} wl_pointer#2857.motion(187310436, 29.00000000, 15.39843750) -[2618807.076] {Default Queue} wl_pointer#2889.motion(187310436, 29.00000000, 15.39843750) -[2618807.080] {Default Queue} wl_pointer#2921.motion(187310436, 29.00000000, 15.39843750) -[2618807.084] {Default Queue} wl_pointer#2953.motion(187310436, 29.00000000, 15.39843750) -[2618807.088] {Default Queue} wl_pointer#2985.motion(187310436, 29.00000000, 15.39843750) -[2618807.092] {Default Queue} wl_pointer#3017.motion(187310436, 29.00000000, 15.39843750) -[2618807.097] {Default Queue} wl_pointer#3049.motion(187310436, 29.00000000, 15.39843750) -[2618807.104] {Default Queue} wl_pointer#3081.motion(187310436, 29.00000000, 15.39843750) -[2618807.110] {Default Queue} wl_pointer#3113.motion(187310436, 29.00000000, 15.39843750) -[2618807.114] {Default Queue} wl_pointer#3145.motion(187310436, 29.00000000, 15.39843750) -[2618807.119] {Default Queue} wl_pointer#3177.motion(187310436, 29.00000000, 15.39843750) -[2618807.123] {Default Queue} wl_pointer#3209.motion(187310436, 29.00000000, 15.39843750) -[2618807.127] {Default Queue} wl_pointer#3241.motion(187310436, 29.00000000, 15.39843750) -[2618807.131] {Default Queue} wl_pointer#3273.motion(187310436, 29.00000000, 15.39843750) -[2618807.136] {Default Queue} wl_pointer#3305.motion(187310436, 29.00000000, 15.39843750) -[2618807.140] {Default Queue} wl_pointer#3337.motion(187310436, 29.00000000, 15.39843750) -[2618807.144] {Default Queue} wl_pointer#3369.motion(187310436, 29.00000000, 15.39843750) -[2618807.148] {Default Queue} wl_pointer#3401.motion(187310436, 29.00000000, 15.39843750) -[2618807.152] {Default Queue} wl_pointer#3433.motion(187310436, 29.00000000, 15.39843750) -[2618807.157] {Default Queue} wl_pointer#3465.motion(187310436, 29.00000000, 15.39843750) -[2618807.161] {Default Queue} wl_pointer#3497.motion(187310436, 29.00000000, 15.39843750) -[2618807.165] {Default Queue} wl_pointer#3529.motion(187310436, 29.00000000, 15.39843750) -[2618807.170] {Default Queue} wl_pointer#3561.motion(187310436, 29.00000000, 15.39843750) -[2618807.174] {Default Queue} wl_pointer#3593.motion(187310436, 29.00000000, 15.39843750) -[2618807.178] {Default Queue} wl_pointer#3625.motion(187310436, 29.00000000, 15.39843750) -[2618807.182] {Default Queue} wl_pointer#3657.motion(187310436, 29.00000000, 15.39843750) -[2618807.186] {Default Queue} wl_pointer#3695.motion(187310436, 29.00000000, 15.39843750) -[2618807.194] {Default Queue} -> wl_region#191.subtract(0, 0, 25, 54) -[2618807.199] {Default Queue} -> wl_region#191.add(-20, -49, 22, 51) -[2618807.203] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) -[2618807.207] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) -[2618807.213] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) -[2618807.217] {Default Queue} -> wl_surface#167.commit() -[2618807.221] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) -[2618807.225] {Default Queue} -> wl_surface#167.commit() -[2618807.231] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) -[2618807.236] {Default Queue} -> wl_surface#167.commit() -[2618807.240] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) -[2618807.247] {Default Queue} -> wl_region#191.subtract(0, 0, 2, 2) -[2618807.251] {Default Queue} -> wl_subsurface#186.set_position(3, 3) -[2618807.255] {Default Queue} -> wl_region#191.subtract(0, 0, 25, 54) -[2618807.259] {Default Queue} -> wl_region#191.add(-20, -49, 22, 51) -[2618807.264] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) -[2618807.267] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) -[2618807.271] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2618807.276] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618807.280] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) -[2618807.284] {Default Queue} -> wl_surface#167.damage(0, 0, 2, 2) -[2618807.289] {Default Queue} -> wl_region#191.subtract(0, 0, 25, 54) -[2618807.293] {Default Queue} -> wl_region#191.add(-20, -49, 22, 51) -[2618807.297] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) -[2618807.301] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) -[2618807.306] {Default Queue} -> wl_surface#167.attach(wl_buffer#3692, 0, 0) -[2618807.310] {Default Queue} -> wl_surface#167.commit() -[2618807.315] {Default Queue} -> wl_region#191.subtract(0, 0, 132, 213) -[2618807.319] {Default Queue} -> wl_region#191.add(-20, -49, 129, 210) -[2618807.323] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) -[2618807.327] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) -[2618807.331] {Default Queue} -> wl_region#159.subtract(0, 0, 2, 2) -[2618807.339] {Default Queue} -> wl_region#159.add(0, 0, 2, 2) -[2618807.344] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618807.348] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618807.352] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2618807.356] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618807.360] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) -[2618807.364] {Default Queue} -> wl_surface#167.damage(0, 0, 109, 161) -[2618807.368] {Default Queue} -> wl_surface#135.damage(0, 0, 115, 167) -[2618807.380] {Default Queue} -> wl_buffer#157.destroy() -[2618807.384] {Default Queue} -> wl_buffer#158.destroy() -[2618807.388] {Default Queue} -> wl_shm_pool#155.destroy() -[2618807.392] {Default Queue} -> wl_shm_pool#156.destroy() -[2618807.468] {Default Queue} -> wl_shm#143.create_pool(new id wl_shm_pool#2558, fd 581, 76820) -[2618807.474] {Default Queue} -> wl_shm#143.create_pool(new id wl_shm_pool#2557, fd 582, 76820) -[2618807.479] {Default Queue} -> wl_shm_pool#2558.create_buffer(new id wl_buffer#2396, 0, 115, 167, 460, 0) -[2618807.484] {Default Queue} -> wl_shm_pool#2557.create_buffer(new id wl_buffer#2395, 0, 115, 167, 460, 0) -[2618807.512] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) -[2618807.517] {Default Queue} -> wl_surface#135.commit() -[2618807.540] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) -[2618807.544] {Default Queue} -> wl_surface#135.commit() -[2618807.554] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) -[2618807.559] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) -[2618807.563] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618807.567] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618807.575] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) -[2618807.580] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) -[2618807.584] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618807.588] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618807.594] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) -[2618807.598] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) -[2618807.602] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618807.606] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618807.612] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) -[2618807.616] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) -[2618807.620] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618807.624] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618807.631] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) -[2618807.635] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) -[2618807.639] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618807.643] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618807.650] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) -[2618807.654] {Default Queue} -> wl_surface#135.commit() -[2618807.661] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) -[2618807.665] {Default Queue} -> wl_surface#135.commit() -[2618808.732] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) -[2618808.738] {Default Queue} -> wl_surface#135.commit() -[2618808.746] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) -[2618808.752] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) -[2618808.756] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618808.760] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618808.767] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) -[2618808.773] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) -[2618808.778] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618808.783] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618808.788] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) -[2618808.797] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) -[2618808.804] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618808.808] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618808.813] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) -[2618808.818] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) -[2618808.822] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618808.826] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618808.832] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) -[2618808.836] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) -[2618808.840] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618808.844] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618808.851] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) -[2618808.856] {Default Queue} -> wl_surface#135.commit() -[2618808.862] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) -[2618808.866] {Default Queue} -> wl_surface#135.commit() -[2618808.876] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) -[2618808.880] {Default Queue} -> wl_surface#135.commit() -[2618808.884] {Default Queue} -> wl_region#319.subtract(0, 0, 345, 167) -[2618808.889] {Default Queue} -> wl_region#319.subtract(0, 0, 137, 51) -[2618808.893] {Default Queue} -> wl_region#319.add(-20, -49, 22, 51) -[2618808.897] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618808.901] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618808.905] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) -[2618808.918] {Default Queue} -> wl_buffer#317.destroy() -[2618808.923] {Default Queue} -> wl_buffer#318.destroy() -[2618808.927] {Default Queue} -> wl_shm_pool#315.destroy() -[2618808.931] {Default Queue} -> wl_shm_pool#316.destroy() -[2618809.173] {Default Queue} -> wl_shm#303.create_pool(new id wl_shm_pool#2398, fd 575, 230460) -[2618809.181] {Default Queue} -> wl_shm#303.create_pool(new id wl_shm_pool#2397, fd 578, 230460) -[2618809.185] {Default Queue} -> wl_shm_pool#2398.create_buffer(new id wl_buffer#2172, 0, 345, 167, 1380, 0) -[2618809.190] {Default Queue} -> wl_shm_pool#2397.create_buffer(new id wl_buffer#2171, 0, 345, 167, 1380, 0) -[2618809.250] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) -[2618809.255] {Default Queue} -> wl_surface#295.commit() -[2618809.315] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) -[2618809.319] {Default Queue} -> wl_surface#295.commit() -[2618809.332] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) -[2618809.337] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) -[2618809.341] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618809.345] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618809.641] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) -[2618809.646] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) -[2618809.650] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618809.654] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618809.666] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) -[2618809.670] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) -[2618809.929] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) -[2618809.938] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) -[2618809.944] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618809.950] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618809.967] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) -[2618809.973] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) -[2618809.987] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) -[2618809.993] {Default Queue} -> wl_surface#295.commit() -[2618810.005] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) -[2618810.016] {Default Queue} -> wl_surface#295.commit() -[2618811.091] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) -[2618811.097] {Default Queue} -> wl_surface#295.commit() -[2618811.111] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) -[2618811.117] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) -[2618811.123] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618811.128] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618811.435] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) -[2618811.442] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) -[2618811.446] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618811.450] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618811.462] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) -[2618811.466] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) -[2618811.703] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) -[2618811.708] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) -[2618811.712] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618811.716] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618811.725] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) -[2618811.729] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) -[2618811.739] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) -[2618811.743] {Default Queue} -> wl_surface#295.commit() -[2618811.751] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) -[2618811.755] {Default Queue} -> wl_surface#295.commit() -[2618811.777] {Default Queue} wl_pointer#24.motion(187310441, 29.00000000, 15.00000000) -[2618811.783] {Default Queue} wl_pointer#81.motion(187310441, 29.00000000, 15.00000000) -[2618811.789] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618811.793] {Default Queue} wl_pointer#105.motion(187310441, 29.00000000, 15.00000000) -[2618811.797] {Default Queue} wl_pointer#137.motion(187310441, 29.00000000, 15.00000000) -[2618811.802] {Default Queue} wl_pointer#169.motion(187310441, 29.00000000, 15.00000000) -[2618811.806] {Default Queue} wl_pointer#201.motion(187310441, 29.00000000, 15.00000000) -[2618811.810] {Default Queue} wl_pointer#233.motion(187310441, 29.00000000, 15.00000000) -[2618811.814] {Default Queue} wl_pointer#265.motion(187310441, 29.00000000, 15.00000000) -[2618811.818] {Default Queue} wl_pointer#297.motion(187310441, 29.00000000, 15.00000000) -[2618811.822] {Default Queue} wl_pointer#329.motion(187310441, 29.00000000, 15.00000000) -[2618811.827] {Default Queue} wl_pointer#361.motion(187310441, 29.00000000, 15.00000000) -[2618811.831] {Default Queue} wl_pointer#393.motion(187310441, 29.00000000, 15.00000000) -[2618811.835] {Default Queue} wl_pointer#425.motion(187310441, 29.00000000, 15.00000000) -[2618811.839] {Default Queue} wl_pointer#457.motion(187310441, 29.00000000, 15.00000000) -[2618811.843] {Default Queue} wl_pointer#489.motion(187310441, 29.00000000, 15.00000000) -[2618811.847] {Default Queue} wl_pointer#521.motion(187310441, 29.00000000, 15.00000000) -[2618811.852] {Default Queue} wl_pointer#553.motion(187310441, 29.00000000, 15.00000000) -[2618811.856] {Default Queue} wl_pointer#585.motion(187310441, 29.00000000, 15.00000000) -[2618811.865] {Default Queue} wl_pointer#617.motion(187310441, 29.00000000, 15.00000000) -[2618811.869] {Default Queue} wl_pointer#649.motion(187310441, 29.00000000, 15.00000000) -[2618811.874] {Default Queue} wl_pointer#681.motion(187310441, 29.00000000, 15.00000000) -[2618811.878] {Default Queue} wl_pointer#713.motion(187310441, 29.00000000, 15.00000000) -[2618811.882] {Default Queue} wl_pointer#745.motion(187310441, 29.00000000, 15.00000000) -[2618811.886] {Default Queue} wl_pointer#777.motion(187310441, 29.00000000, 15.00000000) -[2618811.890] {Default Queue} wl_pointer#809.motion(187310441, 29.00000000, 15.00000000) -[2618811.894] {Default Queue} wl_pointer#841.motion(187310441, 29.00000000, 15.00000000) -[2618811.898] {Default Queue} wl_pointer#873.motion(187310441, 29.00000000, 15.00000000) -[2618811.907] {Default Queue} wl_pointer#905.motion(187310441, 29.00000000, 15.00000000) -[2618811.913] {Default Queue} wl_pointer#937.motion(187310441, 29.00000000, 15.00000000) -[2618811.918] {Default Queue} wl_pointer#969.motion(187310441, 29.00000000, 15.00000000) -[2618811.922] {Default Queue} wl_pointer#1001.motion(187310441, 29.00000000, 15.00000000) -[2618811.926] {Default Queue} wl_pointer#1033.motion(187310441, 29.00000000, 15.00000000) -[2618811.930] {Default Queue} wl_pointer#1065.motion(187310441, 29.00000000, 15.00000000) -[2618811.934] {Default Queue} wl_pointer#1097.motion(187310441, 29.00000000, 15.00000000) -[2618811.939] {Default Queue} wl_pointer#1129.motion(187310441, 29.00000000, 15.00000000) -[2618811.943] {Default Queue} wl_pointer#1161.motion(187310441, 29.00000000, 15.00000000) -[2618811.947] {Default Queue} wl_pointer#1193.motion(187310441, 29.00000000, 15.00000000) -[2618811.951] {Default Queue} wl_pointer#1225.motion(187310441, 29.00000000, 15.00000000) -[2618811.955] {Default Queue} wl_pointer#1257.motion(187310441, 29.00000000, 15.00000000) -[2618811.959] {Default Queue} wl_pointer#1289.motion(187310441, 29.00000000, 15.00000000) -[2618811.964] {Default Queue} wl_pointer#1321.motion(187310441, 29.00000000, 15.00000000) -[2618811.968] {Default Queue} wl_pointer#1353.motion(187310441, 29.00000000, 15.00000000) -[2618811.972] {Default Queue} wl_pointer#1385.motion(187310441, 29.00000000, 15.00000000) -[2618811.976] {Default Queue} wl_pointer#1417.motion(187310441, 29.00000000, 15.00000000) -[2618811.980] {Default Queue} wl_pointer#1449.motion(187310441, 29.00000000, 15.00000000) -[2618811.984] {Default Queue} wl_pointer#1481.motion(187310441, 29.00000000, 15.00000000) -[2618811.989] {Default Queue} wl_pointer#1513.motion(187310441, 29.00000000, 15.00000000) -[2618811.993] {Default Queue} wl_pointer#1545.motion(187310441, 29.00000000, 15.00000000) -[2618811.997] {Default Queue} wl_pointer#1577.motion(187310441, 29.00000000, 15.00000000) -[2618812.001] {Default Queue} wl_pointer#1609.motion(187310441, 29.00000000, 15.00000000) -[2618812.005] {Default Queue} wl_pointer#1641.motion(187310441, 29.00000000, 15.00000000) -[2618812.010] {Default Queue} wl_pointer#1673.motion(187310441, 29.00000000, 15.00000000) -[2618812.014] {Default Queue} wl_pointer#1705.motion(187310441, 29.00000000, 15.00000000) -[2618812.018] {Default Queue} wl_pointer#1737.motion(187310441, 29.00000000, 15.00000000) -[2618812.023] {Default Queue} wl_pointer#1762.motion(187310441, 29.00000000, 15.00000000) -[2618812.027] {Default Queue} wl_pointer#1801.motion(187310441, 29.00000000, 15.00000000) -[2618812.031] {Default Queue} wl_pointer#1833.motion(187310441, 29.00000000, 15.00000000) -[2618812.035] {Default Queue} wl_pointer#1865.motion(187310441, 29.00000000, 15.00000000) -[2618812.039] {Default Queue} wl_pointer#1897.motion(187310441, 29.00000000, 15.00000000) -[2618812.043] {Default Queue} wl_pointer#1929.motion(187310441, 29.00000000, 15.00000000) -[2618812.048] {Default Queue} wl_pointer#1961.motion(187310441, 29.00000000, 15.00000000) -[2618812.052] {Default Queue} wl_pointer#1993.motion(187310441, 29.00000000, 15.00000000) -[2618812.056] {Default Queue} wl_pointer#2025.motion(187310441, 29.00000000, 15.00000000) -[2618812.060] {Default Queue} wl_pointer#2057.motion(187310441, 29.00000000, 15.00000000) -[2618812.064] {Default Queue} wl_pointer#2089.motion(187310441, 29.00000000, 15.00000000) -[2618812.069] {Default Queue} wl_pointer#2121.motion(187310441, 29.00000000, 15.00000000) -[2618812.073] {Default Queue} wl_pointer#2153.motion(187310441, 29.00000000, 15.00000000) -[2618812.077] {Default Queue} wl_pointer#2185.motion(187310441, 29.00000000, 15.00000000) -[2618812.082] {Default Queue} wl_pointer#2217.motion(187310441, 29.00000000, 15.00000000) -[2618812.086] {Default Queue} wl_pointer#2249.motion(187310441, 29.00000000, 15.00000000) -[2618812.090] {Default Queue} wl_pointer#2281.motion(187310441, 29.00000000, 15.00000000) -[2618812.094] {Default Queue} wl_pointer#2313.motion(187310441, 29.00000000, 15.00000000) -[2618812.102] {Default Queue} wl_pointer#2345.motion(187310441, 29.00000000, 15.00000000) -[2618812.107] {Default Queue} wl_pointer#2377.motion(187310441, 29.00000000, 15.00000000) -[2618812.112] {Default Queue} wl_pointer#2409.motion(187310441, 29.00000000, 15.00000000) -[2618812.116] {Default Queue} wl_pointer#2441.motion(187310441, 29.00000000, 15.00000000) -[2618812.120] {Default Queue} wl_pointer#2473.motion(187310441, 29.00000000, 15.00000000) -[2618812.124] {Default Queue} wl_pointer#2498.motion(187310441, 29.00000000, 15.00000000) -[2618812.137] {Default Queue} -> wl_buffer#2717.destroy() -[2618812.142] {Default Queue} -> wl_buffer#2556.destroy() -[2618812.146] {Default Queue} -> wl_shm_pool#2715.destroy() -[2618812.150] {Default Queue} -> wl_shm_pool#2718.destroy() -[2618812.155] {Default Queue} -> wl_surface#2555.destroy() -[2618812.195] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2174, fd 575, 640) -[2618812.202] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2173, fd 578, 640) -[2618812.208] {Default Queue} -> wl_shm_pool#2174.create_buffer(new id wl_buffer#2332, 0, 10, 16, 40, 0) -[2618812.213] {Default Queue} -> wl_shm_pool#2173.create_buffer(new id wl_buffer#2331, 0, 10, 16, 40, 0) -[2618812.220] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#2334) -[2618812.225] {Default Queue} -> wl_surface#2334.attach(wl_buffer#2332, 0, 0) -[2618812.229] {Default Queue} -> wl_surface#2334.commit() -[2618812.235] {Default Queue} -> wl_surface#2334.attach(wl_buffer#2332, 0, 0) -[2618812.239] {Default Queue} -> wl_surface#2334.commit() -[2618812.243] {Default Queue} wl_pointer#2537.motion(187310441, 29.00000000, 15.00000000) -[2618812.248] {Default Queue} wl_pointer#2569.motion(187310441, 29.00000000, 15.00000000) -[2618812.252] {Default Queue} wl_pointer#2601.motion(187310441, 29.00000000, 15.00000000) -[2618812.257] {Default Queue} wl_pointer#2633.motion(187310441, 29.00000000, 15.00000000) -[2618812.261] {Default Queue} wl_pointer#2665.motion(187310441, 29.00000000, 15.00000000) -[2618812.265] {Default Queue} wl_pointer#2697.motion(187310441, 29.00000000, 15.00000000) -[2618812.269] {Default Queue} wl_pointer#2729.motion(187310441, 29.00000000, 15.00000000) -[2618812.273] {Default Queue} wl_pointer#2761.motion(187310441, 29.00000000, 15.00000000) -[2618812.278] {Default Queue} wl_pointer#2793.motion(187310441, 29.00000000, 15.00000000) -[2618812.282] {Default Queue} wl_pointer#2825.motion(187310441, 29.00000000, 15.00000000) -[2618812.286] {Default Queue} wl_pointer#2857.motion(187310441, 29.00000000, 15.00000000) -[2618812.291] {Default Queue} wl_pointer#2889.motion(187310441, 29.00000000, 15.00000000) -[2618812.295] {Default Queue} wl_pointer#2921.motion(187310441, 29.00000000, 15.00000000) -[2618812.299] {Default Queue} wl_pointer#2953.motion(187310441, 29.00000000, 15.00000000) -[2618812.303] {Default Queue} wl_pointer#2985.motion(187310441, 29.00000000, 15.00000000) -[2618812.307] {Default Queue} wl_pointer#3017.motion(187310441, 29.00000000, 15.00000000) -[2618812.312] {Default Queue} wl_pointer#3049.motion(187310441, 29.00000000, 15.00000000) -[2618812.316] {Default Queue} wl_pointer#3081.motion(187310441, 29.00000000, 15.00000000) -[2618812.320] {Default Queue} wl_pointer#3113.motion(187310441, 29.00000000, 15.00000000) -[2618812.324] {Default Queue} wl_pointer#3145.motion(187310441, 29.00000000, 15.00000000) -[2618812.328] {Default Queue} wl_pointer#3177.motion(187310441, 29.00000000, 15.00000000) -[2618812.332] {Default Queue} wl_pointer#3209.motion(187310441, 29.00000000, 15.00000000) -[2618812.337] {Default Queue} wl_pointer#3241.motion(187310441, 29.00000000, 15.00000000) -[2618812.341] {Default Queue} wl_pointer#3273.motion(187310441, 29.00000000, 15.00000000) -[2618812.345] {Default Queue} wl_pointer#3305.motion(187310441, 29.00000000, 15.00000000) -[2618812.349] {Default Queue} wl_pointer#3337.motion(187310441, 29.00000000, 15.00000000) -[2618812.354] {Default Queue} wl_pointer#3369.motion(187310441, 29.00000000, 15.00000000) -[2618812.358] {Default Queue} wl_pointer#3401.motion(187310441, 29.00000000, 15.00000000) -[2618812.365] {Default Queue} wl_pointer#3433.motion(187310441, 29.00000000, 15.00000000) -[2618812.371] {Default Queue} wl_pointer#3465.motion(187310441, 29.00000000, 15.00000000) -[2618812.376] {Default Queue} wl_pointer#3497.motion(187310441, 29.00000000, 15.00000000) -[2618812.380] {Default Queue} wl_pointer#3529.motion(187310441, 29.00000000, 15.00000000) -[2618812.384] {Default Queue} wl_pointer#3561.motion(187310441, 29.00000000, 15.00000000) -[2618812.388] {Default Queue} wl_pointer#3593.motion(187310441, 29.00000000, 15.00000000) -[2618812.393] {Default Queue} wl_pointer#3625.motion(187310441, 29.00000000, 15.00000000) -[2618812.397] {Default Queue} wl_pointer#3657.motion(187310441, 29.00000000, 15.00000000) -[2618812.401] {Default Queue} wl_pointer#3695.motion(187310441, 29.00000000, 15.00000000) -[2618812.410] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) -[2618812.416] {Default Queue} -> wl_surface#295.commit() -[2618813.485] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) -[2618813.491] {Default Queue} -> wl_surface#295.commit() -[2618813.500] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) -[2618813.505] {Default Queue} -> wl_surface#295.commit() -[2618813.510] {Default Queue} -> wl_region#415.subtract(0, 0, 2, 20) -[2618813.514] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 51) -[2618813.519] {Default Queue} -> wl_region#415.add(-480, -49, 482, 51) -[2618813.523] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618813.527] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618813.531] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2618813.544] {Default Queue} -> wl_buffer#413.destroy() -[2618813.549] {Default Queue} -> wl_buffer#414.destroy() -[2618813.553] {Default Queue} -> wl_shm_pool#411.destroy() -[2618813.557] {Default Queue} -> wl_shm_pool#412.destroy() -[2618813.599] {Default Queue} -> wl_shm#399.create_pool(new id wl_shm_pool#2333, fd 575, 160) -[2618813.605] {Default Queue} -> wl_shm#399.create_pool(new id wl_shm_pool#1980, fd 578, 160) -[2618813.609] {Default Queue} -> wl_shm_pool#2333.create_buffer(new id wl_buffer#1979, 0, 2, 20, 8, 0) -[2618813.614] {Default Queue} -> wl_shm_pool#1980.create_buffer(new id wl_buffer#1982, 0, 2, 20, 8, 0) -[2618813.620] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) -[2618813.625] {Default Queue} -> wl_surface#391.commit() -[2618813.630] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) -[2618813.634] {Default Queue} -> wl_surface#391.commit() -[2618813.644] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 51) -[2618813.649] {Default Queue} -> wl_region#415.add(-480, -49, 482, 51) -[2618813.653] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618813.657] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618813.751] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 51) -[2618813.756] {Default Queue} -> wl_region#415.add(-480, -49, 482, 51) -[2618813.760] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618813.764] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618813.770] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2618813.774] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2618813.838] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 51) -[2618813.842] {Default Queue} -> wl_region#415.add(-480, -49, 482, 51) -[2618813.847] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618813.851] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618813.857] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2618813.865] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2618813.870] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) -[2618813.875] {Default Queue} -> wl_surface#391.commit() -[2618813.881] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) -[2618813.885] {Default Queue} -> wl_surface#391.commit() -[2618814.954] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) -[2618814.962] {Default Queue} -> wl_surface#391.commit() -[2618814.970] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 51) -[2618814.974] {Default Queue} -> wl_region#415.add(-480, -49, 482, 51) -[2618814.978] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618814.982] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618815.059] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 51) -[2618815.063] {Default Queue} -> wl_region#415.add(-480, -49, 482, 51) -[2618815.068] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618815.072] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618815.077] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2618815.082] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2618815.197] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 51) -[2618815.209] {Default Queue} -> wl_region#415.add(-480, -49, 482, 51) -[2618815.215] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618815.221] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618815.231] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2618815.236] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2618815.242] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) -[2618815.246] {Default Queue} -> wl_surface#391.commit() -[2618815.250] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) -[2618815.255] {Default Queue} -> wl_surface#391.commit() -[2618815.262] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) -[2618815.266] {Default Queue} -> wl_surface#391.commit() -[2618815.271] {Default Queue} -> wl_region#543.subtract(0, 0, 2, 2) -[2618815.276] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618815.280] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618815.284] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618815.289] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618815.293] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618815.297] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618815.311] {Default Queue} -> wl_buffer#541.destroy() -[2618815.317] {Default Queue} -> wl_buffer#542.destroy() -[2618815.321] {Default Queue} -> wl_shm_pool#539.destroy() -[2618815.325] {Default Queue} -> wl_shm_pool#540.destroy() -[2618815.372] {Default Queue} -> wl_shm#527.create_pool(new id wl_shm_pool#1981, fd 575, 16) -[2618815.378] {Default Queue} -> wl_shm#527.create_pool(new id wl_shm_pool#1820, fd 578, 16) -[2618815.383] {Default Queue} -> wl_shm_pool#1981.create_buffer(new id wl_buffer#1819, 0, 2, 2, 8, 0) -[2618815.388] {Default Queue} -> wl_shm_pool#1820.create_buffer(new id wl_buffer#1822, 0, 2, 2, 8, 0) -[2618815.394] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) -[2618815.399] {Default Queue} -> wl_surface#519.commit() -[2618815.404] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) -[2618815.408] {Default Queue} -> wl_surface#519.commit() -[2618815.417] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618815.421] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618815.425] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618815.430] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618815.436] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618815.440] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618815.444] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618815.448] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618815.457] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618815.461] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618815.465] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618815.469] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618815.474] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618815.482] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618815.489] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618815.493] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618815.498] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618815.502] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618815.506] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618815.510] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618815.515] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618815.519] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618815.523] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618815.527] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618815.531] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) -[2618815.535] {Default Queue} -> wl_surface#519.commit() -[2618815.541] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) -[2618815.545] {Default Queue} -> wl_surface#519.commit() -[2618816.610] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) -[2618816.615] {Default Queue} -> wl_surface#519.commit() -[2618816.621] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618816.625] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618816.629] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618816.633] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618816.638] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618816.642] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618816.647] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618816.650] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618816.657] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618816.661] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618816.665] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618816.669] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618816.674] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618816.678] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618816.682] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618816.686] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618816.691] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618816.695] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618816.699] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618816.703] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618816.707] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618816.712] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618816.716] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618816.719] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618816.724] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) -[2618816.728] {Default Queue} -> wl_surface#519.commit() -[2618816.732] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) -[2618816.736] {Default Queue} -> wl_surface#519.commit() -[2618816.742] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) -[2618816.746] {Default Queue} -> wl_surface#519.commit() -[2618816.750] {Default Queue} -> wl_region#575.subtract(0, 0, 2, 2) -[2618816.754] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618816.758] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618816.762] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618816.766] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618816.770] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618816.774] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618816.787] {Default Queue} -> wl_buffer#573.destroy() -[2618816.795] {Default Queue} -> wl_buffer#574.destroy() -[2618816.801] {Default Queue} -> wl_shm_pool#571.destroy() -[2618816.805] {Default Queue} -> wl_shm_pool#572.destroy() -[2618816.843] {Default Queue} -> wl_shm#559.create_pool(new id wl_shm_pool#1821, fd 575, 16) -[2618816.849] {Default Queue} -> wl_shm#559.create_pool(new id wl_shm_pool#1660, fd 578, 16) -[2618816.853] {Default Queue} -> wl_shm_pool#1821.create_buffer(new id wl_buffer#1659, 0, 2, 2, 8, 0) -[2618816.858] {Default Queue} -> wl_shm_pool#1660.create_buffer(new id wl_buffer#1662, 0, 2, 2, 8, 0) -[2618816.870] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) -[2618816.875] {Default Queue} -> wl_surface#551.commit() -[2618816.880] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) -[2618816.884] {Default Queue} -> wl_surface#551.commit() -[2618816.892] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618816.896] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618816.904] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618816.908] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618816.914] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618816.918] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618816.922] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618816.926] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618816.933] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618816.937] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618816.941] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618816.945] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618816.950] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618816.954] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618816.958] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618816.961] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618816.966] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618816.970] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618816.974] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618816.978] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618816.982] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618816.986] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618816.990] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618816.994] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618816.999] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) -[2618817.003] {Default Queue} -> wl_surface#551.commit() -[2618817.009] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) -[2618817.013] {Default Queue} -> wl_surface#551.commit() -[2618818.077] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) -[2618818.084] {Default Queue} -> wl_surface#551.commit() -[2618818.091] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618818.095] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618818.099] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618818.103] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618818.109] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618818.113] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618818.117] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618818.121] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618818.128] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618818.132] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618818.136] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618818.140] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618818.145] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618818.153] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618818.160] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618818.163] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618818.168] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618818.173] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618818.177] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618818.180] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618818.185] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618818.189] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618818.193] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618818.197] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618818.201] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) -[2618818.205] {Default Queue} -> wl_surface#551.commit() -[2618818.209] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) -[2618818.213] {Default Queue} -> wl_surface#551.commit() -[2618818.219] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) -[2618818.223] {Default Queue} -> wl_surface#551.commit() -[2618818.227] {Default Queue} -> wl_region#607.subtract(0, 0, 2, 2) -[2618818.232] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618818.236] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618818.240] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618818.244] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618818.248] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618818.252] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618818.265] {Default Queue} -> wl_buffer#605.destroy() -[2618818.270] {Default Queue} -> wl_buffer#606.destroy() -[2618818.274] {Default Queue} -> wl_shm_pool#603.destroy() -[2618818.278] {Default Queue} -> wl_shm_pool#604.destroy() -[2618818.316] {Default Queue} -> wl_shm#591.create_pool(new id wl_shm_pool#1661, fd 575, 16) -[2618818.322] {Default Queue} -> wl_shm#591.create_pool(new id wl_shm_pool#1500, fd 578, 16) -[2618818.326] {Default Queue} -> wl_shm_pool#1661.create_buffer(new id wl_buffer#1499, 0, 2, 2, 8, 0) -[2618818.331] {Default Queue} -> wl_shm_pool#1500.create_buffer(new id wl_buffer#1502, 0, 2, 2, 8, 0) -[2618818.337] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) -[2618818.341] {Default Queue} -> wl_surface#583.commit() -[2618818.346] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) -[2618818.351] {Default Queue} -> wl_surface#583.commit() -[2618818.358] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618818.363] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618818.367] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618818.371] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618818.377] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618818.381] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618818.385] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618818.389] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618818.395] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618818.400] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618818.404] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618818.407] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618818.412] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618818.416] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618818.420] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618818.424] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618818.428] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618818.432] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618818.436] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618818.443] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618818.450] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618818.454] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618818.458] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618818.461] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618818.466] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) -[2618818.470] {Default Queue} -> wl_surface#583.commit() -[2618818.476] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) -[2618818.480] {Default Queue} -> wl_surface#583.commit() -[2618819.543] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) -[2618819.549] {Default Queue} -> wl_surface#583.commit() -[2618819.555] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618819.559] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618819.563] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618819.567] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618819.572] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618819.576] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618819.580] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618819.584] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618819.591] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618819.595] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618819.599] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618819.603] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618819.607] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618819.611] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618819.615] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618819.619] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618819.624] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618819.628] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618819.632] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618819.636] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618819.640] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618819.644] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618819.648] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618819.652] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618819.657] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) -[2618819.661] {Default Queue} -> wl_surface#583.commit() -[2618819.664] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) -[2618819.668] {Default Queue} -> wl_surface#583.commit() -[2618819.674] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) -[2618819.678] {Default Queue} -> wl_surface#583.commit() -[2618819.682] {Default Queue} -> wl_region#639.subtract(0, 0, 2, 2) -[2618819.686] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618819.690] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618819.694] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618819.698] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618819.702] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618819.706] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618819.718] {Default Queue} -> wl_buffer#637.destroy() -[2618819.723] {Default Queue} -> wl_buffer#638.destroy() -[2618819.727] {Default Queue} -> wl_shm_pool#635.destroy() -[2618819.731] {Default Queue} -> wl_shm_pool#636.destroy() -[2618819.774] {Default Queue} -> wl_shm#623.create_pool(new id wl_shm_pool#1501, fd 575, 16) -[2618819.780] {Default Queue} -> wl_shm#623.create_pool(new id wl_shm_pool#956, fd 578, 16) -[2618819.784] {Default Queue} -> wl_shm_pool#1501.create_buffer(new id wl_buffer#955, 0, 2, 2, 8, 0) -[2618819.792] {Default Queue} -> wl_shm_pool#956.create_buffer(new id wl_buffer#958, 0, 2, 2, 8, 0) -[2618819.801] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) -[2618819.805] {Default Queue} -> wl_surface#615.commit() -[2618819.810] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) -[2618819.814] {Default Queue} -> wl_surface#615.commit() -[2618819.821] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618819.825] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618819.829] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618819.833] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618819.839] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618819.843] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618819.847] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618819.851] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618819.858] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618819.865] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618819.870] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618819.873] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618819.878] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618819.882] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618819.886] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618819.890] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618819.894] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618819.899] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618819.903] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618819.907] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618819.911] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618819.915] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618819.919] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618819.923] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618819.927] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) -[2618819.931] {Default Queue} -> wl_surface#615.commit() -[2618819.937] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) -[2618819.941] {Default Queue} -> wl_surface#615.commit() -[2618821.005] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) -[2618821.011] {Default Queue} -> wl_surface#615.commit() -[2618821.017] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618821.021] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618821.025] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618821.029] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618821.035] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618821.039] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618821.043] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618821.047] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618821.054] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618821.058] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618821.062] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618821.066] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618821.070] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618821.075] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618821.079] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618821.082] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618821.087] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618821.091] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618821.095] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618821.103] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618821.109] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618821.113] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618821.117] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618821.121] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618821.126] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) -[2618821.130] {Default Queue} -> wl_surface#615.commit() -[2618821.134] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) -[2618821.138] {Default Queue} -> wl_surface#615.commit() -[2618821.143] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) -[2618821.147] {Default Queue} -> wl_surface#615.commit() -[2618821.152] {Default Queue} -> wl_region#671.subtract(0, 0, 2, 2) -[2618821.156] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618821.160] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618821.164] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618821.168] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618821.172] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618821.176] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618821.188] {Default Queue} -> wl_buffer#669.destroy() -[2618821.193] {Default Queue} -> wl_buffer#670.destroy() -[2618821.197] {Default Queue} -> wl_shm_pool#667.destroy() -[2618821.201] {Default Queue} -> wl_shm_pool#668.destroy() -[2618821.238] {Default Queue} -> wl_shm#655.create_pool(new id wl_shm_pool#957, fd 575, 16) -[2618821.244] {Default Queue} -> wl_shm#655.create_pool(new id wl_shm_pool#380, fd 578, 16) -[2618821.249] {Default Queue} -> wl_shm_pool#957.create_buffer(new id wl_buffer#379, 0, 2, 2, 8, 0) -[2618821.253] {Default Queue} -> wl_shm_pool#380.create_buffer(new id wl_buffer#382, 0, 2, 2, 8, 0) -[2618821.260] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) -[2618821.264] {Default Queue} -> wl_surface#647.commit() -[2618821.269] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) -[2618821.273] {Default Queue} -> wl_surface#647.commit() -[2618821.280] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618821.284] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618821.288] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618821.292] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618821.297] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618821.302] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618821.306] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618821.310] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618821.316] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618821.320] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618821.324] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618821.328] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618821.333] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618821.337] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618821.341] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618821.345] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618821.349] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618821.353] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618821.357] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618821.361] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618821.366] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618821.370] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618821.374] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618821.378] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618821.382] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) -[2618821.389] {Default Queue} -> wl_surface#647.commit() -[2618821.397] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) -[2618821.401] {Default Queue} -> wl_surface#647.commit() -[2618822.464] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) -[2618822.469] {Default Queue} -> wl_surface#647.commit() -[2618822.474] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618822.478] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618822.483] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618822.486] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618822.492] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618822.496] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618822.500] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618822.504] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618822.510] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618822.514] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618822.518] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618822.522] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618822.527] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618822.531] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618822.535] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618822.539] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618822.543] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618822.547] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618822.551] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618822.555] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618822.560] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618822.564] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618822.568] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618822.572] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618822.576] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) -[2618822.580] {Default Queue} -> wl_surface#647.commit() -[2618822.584] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) -[2618822.588] {Default Queue} -> wl_surface#647.commit() -[2618822.593] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) -[2618822.598] {Default Queue} -> wl_surface#647.commit() -[2618822.602] {Default Queue} -> wl_region#511.subtract(0, 0, 16, 2) -[2618822.608] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618822.612] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618822.616] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618822.620] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618822.625] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618822.629] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618822.633] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618822.637] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618822.643] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618822.647] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618822.651] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618822.655] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618822.660] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618822.664] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618822.668] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618822.672] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618822.676] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618822.680] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618822.684] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618822.693] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618822.699] {Default Queue} -> wl_region#543.subtract(0, 0, 485, 34) -[2618822.703] {Default Queue} -> wl_region#543.add(-483, -52, 485, 34) -[2618822.707] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618822.711] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618822.716] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618822.720] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618822.724] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618822.728] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618822.734] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618822.738] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618822.742] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618822.746] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618822.752] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618822.756] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618822.760] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618822.764] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618822.768] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618822.773] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618822.777] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618822.780] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618822.785] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618822.789] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618822.793] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618822.797] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618822.801] {Default Queue} -> wl_region#575.subtract(0, 0, 485, 34) -[2618822.805] {Default Queue} -> wl_region#575.add(-483, -52, 485, 34) -[2618822.814] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2618822.818] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2618822.823] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618822.827] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618822.831] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618822.835] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618822.840] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618822.844] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618822.848] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618822.852] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618822.858] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618822.867] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618822.872] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618822.875] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618822.880] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618822.884] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618822.888] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618822.892] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618822.896] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618822.929] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618822.942] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618822.948] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618822.960] {Default Queue} -> wl_region#607.subtract(0, 0, 485, 34) -[2618822.966] {Default Queue} -> wl_region#607.add(-483, -52, 485, 34) -[2618822.971] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2618822.976] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2618822.993] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618823.002] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618823.007] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618823.011] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618823.019] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618823.024] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618823.030] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618823.034] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618823.043] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618823.049] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618823.053] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618823.057] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618823.063] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618823.067] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618823.071] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618823.075] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618823.081] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618823.086] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618823.090] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618823.094] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618823.102] {Default Queue} -> wl_region#639.subtract(0, 0, 485, 34) -[2618823.106] {Default Queue} -> wl_region#639.add(-483, -52, 485, 34) -[2618823.110] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2618823.114] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2618823.121] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618823.125] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618823.129] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618823.133] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618823.140] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618823.144] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618823.148] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618823.152] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618823.159] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618823.164] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618823.168] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618823.172] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618823.177] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618823.181] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618823.185] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618823.189] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618823.194] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618823.198] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618823.203] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618823.207] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618823.212] {Default Queue} -> wl_region#671.subtract(0, 0, 485, 34) -[2618823.216] {Default Queue} -> wl_region#671.add(-483, -52, 485, 34) -[2618823.220] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2618823.224] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2618823.229] {Default Queue} -> wl_surface#487.damage(0, 0, 16, 2) -[2618823.234] {Default Queue} -> wl_region#511.subtract(0, 0, 485, 34) -[2618823.238] {Default Queue} -> wl_region#511.add(-483, -52, 485, 34) -[2618823.244] {Default Queue} -> wl_surface#487.set_opaque_region(wl_region#512) -[2618823.248] {Default Queue} -> wl_surface#487.set_input_region(wl_region#511) -[2618823.252] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618823.260] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618823.266] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618823.270] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618823.275] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618823.279] {Default Queue} -> wl_surface#487.damage(0, 0, 16, 2) -[2618823.299] {Default Queue} -> wl_buffer#509.destroy() -[2618823.305] {Default Queue} -> wl_buffer#510.destroy() -[2618823.310] {Default Queue} -> wl_shm_pool#507.destroy() -[2618823.314] {Default Queue} -> wl_shm_pool#508.destroy() -[2618823.362] {Default Queue} -> wl_shm#495.create_pool(new id wl_shm_pool#381, fd 575, 128) -[2618823.370] {Default Queue} -> wl_shm#495.create_pool(new id wl_shm_pool#3770, fd 578, 128) -[2618823.375] {Default Queue} -> wl_shm_pool#381.create_buffer(new id wl_buffer#3771, 0, 16, 2, 64, 0) -[2618823.380] {Default Queue} -> wl_shm_pool#3770.create_buffer(new id wl_buffer#3772, 0, 16, 2, 64, 0) -[2618823.390] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) -[2618823.396] {Default Queue} -> wl_surface#487.commit() -[2618823.402] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) -[2618823.406] {Default Queue} -> wl_surface#487.commit() -[2618823.418] {Default Queue} -> wl_region#511.subtract(0, 0, 485, 34) -[2618823.424] {Default Queue} -> wl_region#511.add(-483, -52, 485, 34) -[2618823.430] {Default Queue} -> wl_surface#487.set_opaque_region(wl_region#512) -[2618823.434] {Default Queue} -> wl_surface#487.set_input_region(wl_region#511) -[2618823.439] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) -[2618823.443] {Default Queue} -> wl_surface#487.commit() -[2618823.451] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) -[2618823.455] {Default Queue} -> wl_surface#487.commit() -[2618824.521] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) -[2618824.527] {Default Queue} -> wl_surface#487.commit() -[2618824.532] {Default Queue} -> wl_region#511.subtract(0, 0, 485, 34) -[2618824.537] {Default Queue} -> wl_region#511.add(-483, -52, 485, 34) -[2618824.541] {Default Queue} -> wl_surface#487.set_opaque_region(wl_region#512) -[2618824.545] {Default Queue} -> wl_surface#487.set_input_region(wl_region#511) -[2618824.550] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) -[2618824.554] {Default Queue} -> wl_surface#487.commit() -[2618824.558] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) -[2618824.562] {Default Queue} -> wl_surface#487.commit() -[2618824.568] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) -[2618824.572] {Default Queue} -> wl_surface#487.commit() -[2618824.577] {Default Queue} -> wl_region#735.subtract(0, 0, 2, 2) -[2618824.582] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) -[2618824.586] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) -[2618824.590] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2618824.594] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2618824.598] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618824.611] {Default Queue} -> wl_buffer#733.destroy() -[2618824.616] {Default Queue} -> wl_buffer#734.destroy() -[2618824.620] {Default Queue} -> wl_shm_pool#731.destroy() -[2618824.624] {Default Queue} -> wl_shm_pool#732.destroy() -[2618824.660] {Default Queue} -> wl_shm#719.create_pool(new id wl_shm_pool#3773, fd 575, 16) -[2618824.666] {Default Queue} -> wl_shm#719.create_pool(new id wl_shm_pool#3774, fd 578, 16) -[2618824.671] {Default Queue} -> wl_shm_pool#3773.create_buffer(new id wl_buffer#3775, 0, 2, 2, 8, 0) -[2618824.676] {Default Queue} -> wl_shm_pool#3774.create_buffer(new id wl_buffer#3776, 0, 2, 2, 8, 0) -[2618824.682] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) -[2618824.686] {Default Queue} -> wl_surface#711.commit() -[2618824.692] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) -[2618824.696] {Default Queue} -> wl_surface#711.commit() -[2618824.705] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) -[2618824.714] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) -[2618824.721] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2618824.725] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2618824.849] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) -[2618824.855] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) -[2618824.859] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2618824.871] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2618824.879] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618824.884] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618824.962] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) -[2618824.967] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) -[2618824.971] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2618824.975] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2618824.980] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618824.985] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618824.990] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) -[2618824.994] {Default Queue} -> wl_surface#711.commit() -[2618825.000] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) -[2618825.005] {Default Queue} -> wl_surface#711.commit() -[2618826.070] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) -[2618826.076] {Default Queue} -> wl_surface#711.commit() -[2618826.083] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) -[2618826.088] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) -[2618826.092] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2618826.096] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2618826.179] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) -[2618826.184] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) -[2618826.188] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2618826.192] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2618826.198] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618826.202] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618826.268] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) -[2618826.274] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) -[2618826.278] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2618826.282] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2618826.287] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618826.291] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618826.296] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) -[2618826.300] {Default Queue} -> wl_surface#711.commit() -[2618826.304] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) -[2618826.308] {Default Queue} -> wl_surface#711.commit() -[2618826.314] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) -[2618826.318] {Default Queue} -> wl_surface#711.commit() -[2618826.323] {Default Queue} -> wl_region#767.subtract(0, 0, 2, 2) -[2618826.328] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) -[2618826.332] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) -[2618826.336] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2618826.342] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2618826.347] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618826.362] {Default Queue} -> wl_buffer#765.destroy() -[2618826.369] {Default Queue} -> wl_buffer#766.destroy() -[2618826.374] {Default Queue} -> wl_shm_pool#763.destroy() -[2618826.379] {Default Queue} -> wl_shm_pool#764.destroy() -[2618826.427] {Default Queue} -> wl_shm#751.create_pool(new id wl_shm_pool#3777, fd 575, 16) -[2618826.435] {Default Queue} -> wl_shm#751.create_pool(new id wl_shm_pool#3778, fd 578, 16) -[2618826.441] {Default Queue} -> wl_shm_pool#3777.create_buffer(new id wl_buffer#3779, 0, 2, 2, 8, 0) -[2618826.451] {Default Queue} -> wl_shm_pool#3778.create_buffer(new id wl_buffer#3780, 0, 2, 2, 8, 0) -[2618826.463] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) -[2618826.468] {Default Queue} -> wl_surface#743.commit() -[2618826.475] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) -[2618826.480] {Default Queue} -> wl_surface#743.commit() -[2618826.490] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) -[2618826.496] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) -[2618826.501] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2618826.506] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2618826.623] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) -[2618826.630] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) -[2618826.636] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2618826.641] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2618826.648] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618826.653] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618826.744] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) -[2618826.750] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) -[2618826.755] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2618826.760] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2618826.767] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618826.772] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618826.778] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) -[2618826.784] {Default Queue} -> wl_surface#743.commit() -[2618826.833] {Default Queue} wl_pointer#24.motion(187310456, 29.00000000, 14.60156250) -[2618826.842] {Default Queue} wl_pointer#81.motion(187310456, 29.00000000, 14.60156250) -[2618826.850] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618826.856] {Default Queue} wl_pointer#105.motion(187310456, 29.00000000, 14.60156250) -[2618826.870] {Default Queue} wl_pointer#137.motion(187310456, 29.00000000, 14.60156250) -[2618826.875] {Default Queue} wl_pointer#169.motion(187310456, 29.00000000, 14.60156250) -[2618826.881] {Default Queue} wl_pointer#201.motion(187310456, 29.00000000, 14.60156250) -[2618826.886] {Default Queue} wl_pointer#233.motion(187310456, 29.00000000, 14.60156250) -[2618826.891] {Default Queue} wl_pointer#265.motion(187310456, 29.00000000, 14.60156250) -[2618826.897] {Default Queue} wl_pointer#297.motion(187310456, 29.00000000, 14.60156250) -[2618826.902] {Default Queue} wl_pointer#329.motion(187310456, 29.00000000, 14.60156250) -[2618826.908] {Default Queue} wl_pointer#361.motion(187310456, 29.00000000, 14.60156250) -[2618826.913] {Default Queue} wl_pointer#393.motion(187310456, 29.00000000, 14.60156250) -[2618826.919] {Default Queue} wl_pointer#425.motion(187310456, 29.00000000, 14.60156250) -[2618826.924] {Default Queue} wl_pointer#457.motion(187310456, 29.00000000, 14.60156250) -[2618826.930] {Default Queue} wl_pointer#489.motion(187310456, 29.00000000, 14.60156250) -[2618826.935] {Default Queue} wl_pointer#521.motion(187310456, 29.00000000, 14.60156250) -[2618826.940] {Default Queue} wl_pointer#553.motion(187310456, 29.00000000, 14.60156250) -[2618826.946] {Default Queue} wl_pointer#585.motion(187310456, 29.00000000, 14.60156250) -[2618826.951] {Default Queue} wl_pointer#617.motion(187310456, 29.00000000, 14.60156250) -[2618826.956] {Default Queue} wl_pointer#649.motion(187310456, 29.00000000, 14.60156250) -[2618826.962] {Default Queue} wl_pointer#681.motion(187310456, 29.00000000, 14.60156250) -[2618826.967] {Default Queue} wl_pointer#713.motion(187310456, 29.00000000, 14.60156250) -[2618826.973] {Default Queue} wl_pointer#745.motion(187310456, 29.00000000, 14.60156250) -[2618826.978] {Default Queue} wl_pointer#777.motion(187310456, 29.00000000, 14.60156250) -[2618826.983] {Default Queue} wl_pointer#809.motion(187310456, 29.00000000, 14.60156250) -[2618826.988] {Default Queue} wl_pointer#841.motion(187310456, 29.00000000, 14.60156250) -[2618826.998] {Default Queue} wl_pointer#873.motion(187310456, 29.00000000, 14.60156250) -[2618827.006] {Default Queue} wl_pointer#905.motion(187310456, 29.00000000, 14.60156250) -[2618827.012] {Default Queue} wl_pointer#937.motion(187310456, 29.00000000, 14.60156250) -[2618827.017] {Default Queue} wl_pointer#969.motion(187310456, 29.00000000, 14.60156250) -[2618827.022] {Default Queue} wl_pointer#1001.motion(187310456, 29.00000000, 14.60156250) -[2618827.028] {Default Queue} wl_pointer#1033.motion(187310456, 29.00000000, 14.60156250) -[2618827.033] {Default Queue} wl_pointer#1065.motion(187310456, 29.00000000, 14.60156250) -[2618827.039] {Default Queue} wl_pointer#1097.motion(187310456, 29.00000000, 14.60156250) -[2618827.044] {Default Queue} wl_pointer#1129.motion(187310456, 29.00000000, 14.60156250) -[2618827.050] {Default Queue} wl_pointer#1161.motion(187310456, 29.00000000, 14.60156250) -[2618827.055] {Default Queue} wl_pointer#1193.motion(187310456, 29.00000000, 14.60156250) -[2618827.061] {Default Queue} wl_pointer#1225.motion(187310456, 29.00000000, 14.60156250) -[2618827.066] {Default Queue} wl_pointer#1257.motion(187310456, 29.00000000, 14.60156250) -[2618827.072] {Default Queue} wl_pointer#1289.motion(187310456, 29.00000000, 14.60156250) -[2618827.077] {Default Queue} wl_pointer#1321.motion(187310456, 29.00000000, 14.60156250) -[2618827.083] {Default Queue} wl_pointer#1353.motion(187310456, 29.00000000, 14.60156250) -[2618827.088] {Default Queue} wl_pointer#1385.motion(187310456, 29.00000000, 14.60156250) -[2618827.094] {Default Queue} wl_pointer#1417.motion(187310456, 29.00000000, 14.60156250) -[2618827.099] {Default Queue} wl_pointer#1449.motion(187310456, 29.00000000, 14.60156250) -[2618827.104] {Default Queue} wl_pointer#1481.motion(187310456, 29.00000000, 14.60156250) -[2618827.110] {Default Queue} wl_pointer#1513.motion(187310456, 29.00000000, 14.60156250) -[2618827.116] {Default Queue} wl_pointer#1545.motion(187310456, 29.00000000, 14.60156250) -[2618827.121] {Default Queue} wl_pointer#1577.motion(187310456, 29.00000000, 14.60156250) -[2618827.127] {Default Queue} wl_pointer#1609.motion(187310456, 29.00000000, 14.60156250) -[2618827.132] {Default Queue} wl_pointer#1641.motion(187310456, 29.00000000, 14.60156250) -[2618827.137] {Default Queue} wl_pointer#1673.motion(187310456, 29.00000000, 14.60156250) -[2618827.143] {Default Queue} wl_pointer#1705.motion(187310456, 29.00000000, 14.60156250) -[2618827.148] {Default Queue} wl_pointer#1737.motion(187310456, 29.00000000, 14.60156250) -[2618827.154] {Default Queue} wl_pointer#1762.motion(187310456, 29.00000000, 14.60156250) -[2618827.159] {Default Queue} wl_pointer#1801.motion(187310456, 29.00000000, 14.60156250) -[2618827.164] {Default Queue} wl_pointer#1833.motion(187310456, 29.00000000, 14.60156250) -[2618827.170] {Default Queue} wl_pointer#1865.motion(187310456, 29.00000000, 14.60156250) -[2618827.175] {Default Queue} wl_pointer#1897.motion(187310456, 29.00000000, 14.60156250) -[2618827.181] {Default Queue} wl_pointer#1929.motion(187310456, 29.00000000, 14.60156250) -[2618827.186] {Default Queue} wl_pointer#1961.motion(187310456, 29.00000000, 14.60156250) -[2618827.192] {Default Queue} wl_pointer#1993.motion(187310456, 29.00000000, 14.60156250) -[2618827.197] {Default Queue} wl_pointer#2025.motion(187310456, 29.00000000, 14.60156250) -[2618827.203] {Default Queue} wl_pointer#2057.motion(187310456, 29.00000000, 14.60156250) -[2618827.208] {Default Queue} wl_pointer#2089.motion(187310456, 29.00000000, 14.60156250) -[2618827.214] {Default Queue} wl_pointer#2121.motion(187310456, 29.00000000, 14.60156250) -[2618827.219] {Default Queue} wl_pointer#2153.motion(187310456, 29.00000000, 14.60156250) -[2618827.225] {Default Queue} wl_pointer#2185.motion(187310456, 29.00000000, 14.60156250) -[2618827.231] {Default Queue} wl_pointer#2217.motion(187310456, 29.00000000, 14.60156250) -[2618827.236] {Default Queue} wl_pointer#2249.motion(187310456, 29.00000000, 14.60156250) -[2618827.242] {Default Queue} wl_pointer#2281.motion(187310456, 29.00000000, 14.60156250) -[2618827.251] {Default Queue} wl_pointer#2313.motion(187310456, 29.00000000, 14.60156250) -[2618827.258] {Default Queue} wl_pointer#2345.motion(187310456, 29.00000000, 14.60156250) -[2618827.264] {Default Queue} wl_pointer#2377.motion(187310456, 29.00000000, 14.60156250) -[2618827.270] {Default Queue} wl_pointer#2409.motion(187310456, 29.00000000, 14.60156250) -[2618827.275] {Default Queue} wl_pointer#2441.motion(187310456, 29.00000000, 14.60156250) -[2618827.281] {Default Queue} wl_pointer#2473.motion(187310456, 29.00000000, 14.60156250) -[2618827.286] {Default Queue} wl_pointer#2498.motion(187310456, 29.00000000, 14.60156250) -[2618827.299] {Default Queue} -> wl_buffer#2332.destroy() -[2618827.305] {Default Queue} -> wl_buffer#2331.destroy() -[2618827.309] {Default Queue} -> wl_shm_pool#2174.destroy() -[2618827.314] {Default Queue} -> wl_shm_pool#2173.destroy() -[2618827.319] {Default Queue} -> wl_surface#2334.destroy() -[2618827.358] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3781, fd 581, 640) -[2618827.365] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3782, fd 582, 640) -[2618827.370] {Default Queue} -> wl_shm_pool#3781.create_buffer(new id wl_buffer#3783, 0, 10, 16, 40, 0) -[2618827.374] {Default Queue} -> wl_shm_pool#3782.create_buffer(new id wl_buffer#3784, 0, 10, 16, 40, 0) -[2618827.382] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3785) -[2618827.386] {Default Queue} -> wl_surface#3785.attach(wl_buffer#3783, 0, 0) -[2618827.390] {Default Queue} -> wl_surface#3785.commit() -[2618827.395] {Default Queue} -> wl_surface#3785.attach(wl_buffer#3783, 0, 0) -[2618827.400] {Default Queue} -> wl_surface#3785.commit() -[2618827.404] {Default Queue} wl_pointer#2537.motion(187310456, 29.00000000, 14.60156250) -[2618827.409] {Default Queue} wl_pointer#2569.motion(187310456, 29.00000000, 14.60156250) -[2618827.413] {Default Queue} wl_pointer#2601.motion(187310456, 29.00000000, 14.60156250) -[2618827.418] {Default Queue} wl_pointer#2633.motion(187310456, 29.00000000, 14.60156250) -[2618827.422] {Default Queue} wl_pointer#2665.motion(187310456, 29.00000000, 14.60156250) -[2618827.427] {Default Queue} wl_pointer#2697.motion(187310456, 29.00000000, 14.60156250) -[2618827.432] {Default Queue} wl_pointer#2729.motion(187310456, 29.00000000, 14.60156250) -[2618827.436] {Default Queue} wl_pointer#2761.motion(187310456, 29.00000000, 14.60156250) -[2618827.441] {Default Queue} wl_pointer#2793.motion(187310456, 29.00000000, 14.60156250) -[2618827.446] {Default Queue} wl_pointer#2825.motion(187310456, 29.00000000, 14.60156250) -[2618827.451] {Default Queue} wl_pointer#2857.motion(187310456, 29.00000000, 14.60156250) -[2618827.455] {Default Queue} wl_pointer#2889.motion(187310456, 29.00000000, 14.60156250) -[2618827.459] {Default Queue} wl_pointer#2921.motion(187310456, 29.00000000, 14.60156250) -[2618827.464] {Default Queue} wl_pointer#2953.motion(187310456, 29.00000000, 14.60156250) -[2618827.469] {Default Queue} wl_pointer#2985.motion(187310456, 29.00000000, 14.60156250) -[2618827.474] {Default Queue} wl_pointer#3017.motion(187310456, 29.00000000, 14.60156250) -[2618827.478] {Default Queue} wl_pointer#3049.motion(187310456, 29.00000000, 14.60156250) -[2618827.482] {Default Queue} wl_pointer#3081.motion(187310456, 29.00000000, 14.60156250) -[2618827.487] {Default Queue} wl_pointer#3113.motion(187310456, 29.00000000, 14.60156250) -[2618827.492] {Default Queue} wl_pointer#3145.motion(187310456, 29.00000000, 14.60156250) -[2618827.496] {Default Queue} wl_pointer#3177.motion(187310456, 29.00000000, 14.60156250) -[2618827.501] {Default Queue} wl_pointer#3209.motion(187310456, 29.00000000, 14.60156250) -[2618827.505] {Default Queue} wl_pointer#3241.motion(187310456, 29.00000000, 14.60156250) -[2618827.510] {Default Queue} wl_pointer#3273.motion(187310456, 29.00000000, 14.60156250) -[2618827.515] {Default Queue} wl_pointer#3305.motion(187310456, 29.00000000, 14.60156250) -[2618827.519] {Default Queue} wl_pointer#3337.motion(187310456, 29.00000000, 14.60156250) -[2618827.524] {Default Queue} wl_pointer#3369.motion(187310456, 29.00000000, 14.60156250) -[2618827.531] {Default Queue} wl_pointer#3401.motion(187310456, 29.00000000, 14.60156250) -[2618827.537] {Default Queue} wl_pointer#3433.motion(187310456, 29.00000000, 14.60156250) -[2618827.543] {Default Queue} wl_pointer#3465.motion(187310456, 29.00000000, 14.60156250) -[2618827.549] {Default Queue} wl_pointer#3497.motion(187310456, 29.00000000, 14.60156250) -[2618827.554] {Default Queue} wl_pointer#3529.motion(187310456, 29.00000000, 14.60156250) -[2618827.558] {Default Queue} wl_pointer#3561.motion(187310456, 29.00000000, 14.60156250) -[2618827.563] {Default Queue} wl_pointer#3593.motion(187310456, 29.00000000, 14.60156250) -[2618827.567] {Default Queue} wl_pointer#3625.motion(187310456, 29.00000000, 14.60156250) -[2618827.572] {Default Queue} wl_pointer#3657.motion(187310456, 29.00000000, 14.60156250) -[2618827.577] {Default Queue} wl_pointer#3695.motion(187310456, 29.00000000, 14.60156250) -[2618827.581] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) -[2618827.586] {Default Queue} -> wl_surface#743.commit() -[2618828.651] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) -[2618828.657] {Default Queue} -> wl_surface#743.commit() -[2618828.665] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) -[2618828.670] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) -[2618828.674] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2618828.679] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2618828.773] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) -[2618828.779] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) -[2618828.783] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2618828.788] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2618828.794] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618828.798] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618828.870] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) -[2618828.878] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) -[2618828.882] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2618828.886] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2618828.891] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618828.895] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618828.901] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) -[2618828.905] {Default Queue} -> wl_surface#743.commit() -[2618828.909] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) -[2618828.913] {Default Queue} -> wl_surface#743.commit() -[2618828.919] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) -[2618828.923] {Default Queue} -> wl_surface#743.commit() -[2618828.928] {Default Queue} -> wl_region#799.subtract(0, 0, 2, 2) -[2618828.932] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) -[2618828.936] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) -[2618828.940] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2618828.944] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2618828.949] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618828.961] {Default Queue} -> wl_buffer#797.destroy() -[2618828.967] {Default Queue} -> wl_buffer#798.destroy() -[2618828.971] {Default Queue} -> wl_shm_pool#795.destroy() -[2618828.975] {Default Queue} -> wl_shm_pool#796.destroy() -[2618829.014] {Default Queue} -> wl_shm#783.create_pool(new id wl_shm_pool#3786, fd 575, 16) -[2618829.021] {Default Queue} -> wl_shm#783.create_pool(new id wl_shm_pool#3787, fd 578, 16) -[2618829.026] {Default Queue} -> wl_shm_pool#3786.create_buffer(new id wl_buffer#3788, 0, 2, 2, 8, 0) -[2618829.030] {Default Queue} -> wl_shm_pool#3787.create_buffer(new id wl_buffer#3789, 0, 2, 2, 8, 0) -[2618829.037] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) -[2618829.041] {Default Queue} -> wl_surface#775.commit() -[2618829.047] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) -[2618829.054] {Default Queue} -> wl_surface#775.commit() -[2618829.066] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) -[2618829.071] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) -[2618829.075] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2618829.079] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2618829.173] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) -[2618829.178] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) -[2618829.183] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2618829.187] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2618829.192] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618829.197] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618829.272] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) -[2618829.277] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) -[2618829.282] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2618829.286] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2618829.290] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618829.294] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618829.299] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) -[2618829.304] {Default Queue} -> wl_surface#775.commit() -[2618829.310] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) -[2618829.314] {Default Queue} -> wl_surface#775.commit() -[2618830.378] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) -[2618830.384] {Default Queue} -> wl_surface#775.commit() -[2618830.391] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) -[2618830.395] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) -[2618830.399] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2618830.404] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2618830.489] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) -[2618830.494] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) -[2618830.499] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2618830.503] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2618830.508] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618830.512] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618830.584] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) -[2618830.589] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) -[2618830.594] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2618830.598] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2618830.602] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618830.607] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618830.612] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) -[2618830.616] {Default Queue} -> wl_surface#775.commit() -[2618830.620] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) -[2618830.624] {Default Queue} -> wl_surface#775.commit() -[2618830.630] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) -[2618830.634] {Default Queue} -> wl_surface#775.commit() -[2618830.638] {Default Queue} -> wl_region#831.subtract(0, 0, 2, 2) -[2618830.643] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) -[2618830.647] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) -[2618830.651] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2618830.655] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2618830.659] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618830.671] {Default Queue} -> wl_buffer#829.destroy() -[2618830.676] {Default Queue} -> wl_buffer#830.destroy() -[2618830.680] {Default Queue} -> wl_shm_pool#827.destroy() -[2618830.684] {Default Queue} -> wl_shm_pool#828.destroy() -[2618830.722] {Default Queue} -> wl_shm#815.create_pool(new id wl_shm_pool#3790, fd 575, 16) -[2618830.728] {Default Queue} -> wl_shm#815.create_pool(new id wl_shm_pool#3791, fd 578, 16) -[2618830.736] {Default Queue} -> wl_shm_pool#3790.create_buffer(new id wl_buffer#3792, 0, 2, 2, 8, 0) -[2618830.742] {Default Queue} -> wl_shm_pool#3791.create_buffer(new id wl_buffer#3793, 0, 2, 2, 8, 0) -[2618830.749] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) -[2618830.754] {Default Queue} -> wl_surface#807.commit() -[2618830.759] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) -[2618830.764] {Default Queue} -> wl_surface#807.commit() -[2618830.772] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) -[2618830.776] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) -[2618830.781] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2618830.785] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2618830.880] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) -[2618830.886] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) -[2618830.891] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2618830.895] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2618830.901] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618830.905] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618830.975] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) -[2618830.980] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) -[2618830.984] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2618830.988] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2618830.993] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618830.998] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618831.003] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) -[2618831.007] {Default Queue} -> wl_surface#807.commit() -[2618831.013] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) -[2618831.017] {Default Queue} -> wl_surface#807.commit() -[2618832.082] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) -[2618832.087] {Default Queue} -> wl_surface#807.commit() -[2618832.094] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) -[2618832.099] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) -[2618832.103] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2618832.107] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2618832.190] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) -[2618832.195] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) -[2618832.199] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2618832.204] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2618832.208] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618832.213] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618832.283] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) -[2618832.288] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) -[2618832.292] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2618832.297] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2618832.301] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618832.306] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618832.311] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) -[2618832.315] {Default Queue} -> wl_surface#807.commit() -[2618832.319] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) -[2618832.323] {Default Queue} -> wl_surface#807.commit() -[2618832.329] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) -[2618832.333] {Default Queue} -> wl_surface#807.commit() -[2618832.337] {Default Queue} -> wl_region#863.subtract(0, 0, 2, 2) -[2618832.342] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) -[2618832.346] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) -[2618832.350] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2618832.355] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2618832.362] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618832.383] {Default Queue} -> wl_buffer#861.destroy() -[2618832.389] {Default Queue} -> wl_buffer#862.destroy() -[2618832.393] {Default Queue} -> wl_shm_pool#859.destroy() -[2618832.397] {Default Queue} -> wl_shm_pool#860.destroy() -[2618832.435] {Default Queue} -> wl_shm#847.create_pool(new id wl_shm_pool#3794, fd 575, 16) -[2618832.441] {Default Queue} -> wl_shm#847.create_pool(new id wl_shm_pool#3795, fd 578, 16) -[2618832.446] {Default Queue} -> wl_shm_pool#3794.create_buffer(new id wl_buffer#3796, 0, 2, 2, 8, 0) -[2618832.450] {Default Queue} -> wl_shm_pool#3795.create_buffer(new id wl_buffer#3797, 0, 2, 2, 8, 0) -[2618832.457] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) -[2618832.461] {Default Queue} -> wl_surface#839.commit() -[2618832.466] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) -[2618832.471] {Default Queue} -> wl_surface#839.commit() -[2618832.480] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) -[2618832.485] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) -[2618832.490] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2618832.494] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2618832.584] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) -[2618832.589] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) -[2618832.594] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2618832.598] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2618832.603] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618832.608] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618832.677] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) -[2618832.683] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) -[2618832.687] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2618832.691] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2618832.696] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618832.701] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618832.706] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) -[2618832.710] {Default Queue} -> wl_surface#839.commit() -[2618832.716] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) -[2618832.721] {Default Queue} -> wl_surface#839.commit() -[2618833.784] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) -[2618833.790] {Default Queue} -> wl_surface#839.commit() -[2618833.797] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) -[2618833.801] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) -[2618833.805] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2618833.809] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2618833.895] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) -[2618833.901] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) -[2618833.905] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2618833.909] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2618833.914] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618833.918] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618833.989] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) -[2618833.995] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) -[2618833.999] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2618834.003] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2618834.008] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618834.012] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618834.017] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) -[2618834.021] {Default Queue} -> wl_surface#839.commit() -[2618834.026] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) -[2618834.030] {Default Queue} -> wl_surface#839.commit() -[2618834.036] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) -[2618834.044] {Default Queue} -> wl_surface#839.commit() -[2618834.050] {Default Queue} -> wl_region#703.subtract(0, 0, 2, 2) -[2618834.057] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) -[2618834.061] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) -[2618834.066] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2618834.069] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2618834.149] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) -[2618834.155] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) -[2618834.159] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2618834.163] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2618834.168] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618834.172] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618834.238] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 54) -[2618834.244] {Default Queue} -> wl_region#735.add(-483, -72, 467, 54) -[2618834.248] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2618834.252] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2618834.257] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618834.261] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618834.267] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) -[2618834.271] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) -[2618834.275] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2618834.279] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2618834.360] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) -[2618834.365] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) -[2618834.370] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2618834.374] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2618834.378] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618834.383] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618834.452] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 54) -[2618834.457] {Default Queue} -> wl_region#767.add(-483, -72, 467, 54) -[2618834.461] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2618834.466] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2618834.470] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618834.474] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618834.481] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) -[2618834.485] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) -[2618834.489] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2618834.493] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2618834.575] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) -[2618834.580] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) -[2618834.584] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2618834.588] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2618834.593] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618834.597] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618834.668] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 54) -[2618834.673] {Default Queue} -> wl_region#799.add(-483, -72, 467, 54) -[2618834.677] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2618834.682] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2618834.686] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618834.690] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618834.697] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) -[2618834.701] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) -[2618834.705] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2618834.709] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2618834.789] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) -[2618834.797] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) -[2618834.802] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2618834.806] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2618834.811] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618834.815] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618834.889] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 54) -[2618834.894] {Default Queue} -> wl_region#831.add(-483, -72, 467, 54) -[2618834.899] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2618834.903] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2618834.908] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618834.912] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618834.919] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) -[2618834.923] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) -[2618834.927] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2618834.931] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2618835.011] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) -[2618835.016] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) -[2618835.021] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2618835.025] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2618835.029] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618835.034] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618835.103] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 54) -[2618835.108] {Default Queue} -> wl_region#863.add(-483, -72, 467, 54) -[2618835.113] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2618835.117] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2618835.121] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618835.125] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618835.130] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2618835.135] {Default Queue} -> wl_region#703.subtract(0, 0, 485, 54) -[2618835.139] {Default Queue} -> wl_region#703.add(-483, -72, 467, 54) -[2618835.143] {Default Queue} -> wl_surface#679.set_opaque_region(wl_region#704) -[2618835.147] {Default Queue} -> wl_surface#679.set_input_region(wl_region#703) -[2618835.151] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618835.155] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618835.159] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618835.163] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618835.167] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618835.172] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2618835.184] {Default Queue} -> wl_buffer#701.destroy() -[2618835.189] {Default Queue} -> wl_buffer#702.destroy() -[2618835.193] {Default Queue} -> wl_shm_pool#699.destroy() -[2618835.197] {Default Queue} -> wl_shm_pool#700.destroy() -[2618835.235] {Default Queue} -> wl_shm#687.create_pool(new id wl_shm_pool#3798, fd 575, 16) -[2618835.241] {Default Queue} -> wl_shm#687.create_pool(new id wl_shm_pool#3799, fd 578, 16) -[2618835.246] {Default Queue} -> wl_shm_pool#3798.create_buffer(new id wl_buffer#3800, 0, 2, 2, 8, 0) -[2618835.250] {Default Queue} -> wl_shm_pool#3799.create_buffer(new id wl_buffer#3801, 0, 2, 2, 8, 0) -[2618835.258] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) -[2618835.263] {Default Queue} -> wl_surface#679.commit() -[2618835.268] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) -[2618835.272] {Default Queue} -> wl_surface#679.commit() -[2618835.279] {Default Queue} -> wl_region#703.subtract(0, 0, 485, 54) -[2618835.285] {Default Queue} -> wl_region#703.add(-483, -72, 467, 54) -[2618835.289] {Default Queue} -> wl_surface#679.set_opaque_region(wl_region#704) -[2618835.293] {Default Queue} -> wl_surface#679.set_input_region(wl_region#703) -[2618835.298] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) -[2618835.302] {Default Queue} -> wl_surface#679.commit() -[2618835.312] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) -[2618835.319] {Default Queue} -> wl_surface#679.commit() -[2618836.383] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) -[2618836.389] {Default Queue} -> wl_surface#679.commit() -[2618836.395] {Default Queue} -> wl_region#703.subtract(0, 0, 485, 54) -[2618836.399] {Default Queue} -> wl_region#703.add(-483, -72, 467, 54) -[2618836.403] {Default Queue} -> wl_surface#679.set_opaque_region(wl_region#704) -[2618836.407] {Default Queue} -> wl_surface#679.set_input_region(wl_region#703) -[2618836.411] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) -[2618836.415] {Default Queue} -> wl_surface#679.commit() -[2618836.419] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) -[2618836.423] {Default Queue} -> wl_surface#679.commit() -[2618836.429] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) -[2618836.433] {Default Queue} -> wl_surface#679.commit() -[2618836.438] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) -[2618836.443] {Default Queue} -> wl_surface#455.commit() -[2618837.503] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) -[2618837.509] {Default Queue} -> wl_surface#455.commit() -[2618837.515] {Default Queue} -> wl_region#479.subtract(0, 0, 485, 34) -[2618837.519] {Default Queue} -> wl_region#479.add(-483, -52, 485, 34) -[2618837.523] {Default Queue} -> wl_surface#455.set_opaque_region(wl_region#480) -[2618837.527] {Default Queue} -> wl_surface#455.set_input_region(wl_region#479) -[2618837.532] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) -[2618837.536] {Default Queue} -> wl_surface#455.commit() -[2618837.540] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) -[2618837.544] {Default Queue} -> wl_surface#455.commit() -[2618837.549] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) -[2618837.554] {Default Queue} -> wl_surface#455.commit() -[2618837.558] {Default Queue} -> wl_region#447.subtract(0, 0, 2, 2) -[2618837.564] {Default Queue} -> wl_region#479.subtract(0, 0, 2, 2) -[2618837.568] {Default Queue} -> wl_subsurface#474.set_position(1, 1) -[2618837.572] {Default Queue} -> wl_region#479.subtract(0, 0, 486, 35) -[2618837.576] {Default Queue} -> wl_region#479.add(-483, -52, 485, 34) -[2618837.580] {Default Queue} -> wl_surface#455.set_opaque_region(wl_region#480) -[2618837.584] {Default Queue} -> wl_surface#455.set_input_region(wl_region#479) -[2618837.589] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618837.593] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618837.597] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618837.602] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618837.606] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618837.611] {Default Queue} -> wl_surface#487.damage(0, 0, 16, 2) -[2618837.615] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618837.619] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618837.623] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618837.627] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618837.632] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618837.636] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2618837.640] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2618837.645] {Default Queue} -> wl_region#479.subtract(0, 0, 485, 54) -[2618837.649] {Default Queue} -> wl_region#479.add(-483, -72, 484, 53) -[2618837.653] {Default Queue} -> wl_surface#455.set_opaque_region(wl_region#480) -[2618837.657] {Default Queue} -> wl_surface#455.set_input_region(wl_region#479) -[2618837.662] {Default Queue} -> wl_surface#455.attach(wl_buffer#477, 0, 0) -[2618837.666] {Default Queue} -> wl_surface#455.commit() -[2618837.671] {Default Queue} -> wl_region#479.subtract(0, 0, 485, 54) -[2618837.676] {Default Queue} -> wl_region#479.add(-483, -72, 484, 53) -[2618837.679] {Default Queue} -> wl_surface#455.set_opaque_region(wl_region#480) -[2618837.683] {Default Queue} -> wl_surface#455.set_input_region(wl_region#479) -[2618837.691] {Default Queue} -> wl_region#447.subtract(0, 0, 485, 54) -[2618837.697] {Default Queue} -> wl_region#447.add(-483, -52, 485, 34) -[2618837.701] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) -[2618837.705] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) -[2618837.709] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618837.713] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618837.717] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618837.721] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618837.725] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618837.729] {Default Queue} -> wl_surface#487.damage(0, 0, 16, 2) -[2618837.733] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618837.737] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618837.741] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618837.745] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618837.749] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618837.753] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2618837.758] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2618837.761] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) -[2618837.778] {Default Queue} -> wl_buffer#445.destroy() -[2618837.784] {Default Queue} -> wl_buffer#446.destroy() -[2618837.788] {Default Queue} -> wl_shm_pool#443.destroy() -[2618837.792] {Default Queue} -> wl_shm_pool#444.destroy() -[2618837.830] {Default Queue} -> wl_shm#431.create_pool(new id wl_shm_pool#3802, fd 575, 16) -[2618837.836] {Default Queue} -> wl_shm#431.create_pool(new id wl_shm_pool#3803, fd 578, 16) -[2618837.840] {Default Queue} -> wl_shm_pool#3802.create_buffer(new id wl_buffer#3804, 0, 2, 2, 8, 0) -[2618837.845] {Default Queue} -> wl_shm_pool#3803.create_buffer(new id wl_buffer#3805, 0, 2, 2, 8, 0) -[2618837.852] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) -[2618837.856] {Default Queue} -> wl_surface#423.commit() -[2618837.867] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) -[2618837.871] {Default Queue} -> wl_surface#423.commit() -[2618837.878] {Default Queue} -> wl_region#447.subtract(0, 0, 485, 54) -[2618837.882] {Default Queue} -> wl_region#447.add(-483, -52, 485, 34) -[2618837.886] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) -[2618837.890] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) -[2618837.895] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) -[2618837.899] {Default Queue} -> wl_surface#423.commit() -[2618837.905] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) -[2618837.909] {Default Queue} -> wl_surface#423.commit() -[2618838.974] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) -[2618838.979] {Default Queue} -> wl_surface#423.commit() -[2618838.985] {Default Queue} -> wl_region#447.subtract(0, 0, 485, 54) -[2618838.989] {Default Queue} -> wl_region#447.add(-483, -52, 485, 34) -[2618838.993] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) -[2618838.997] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) -[2618839.001] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) -[2618839.006] {Default Queue} -> wl_surface#423.commit() -[2618839.010] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) -[2618839.013] {Default Queue} -> wl_surface#423.commit() -[2618839.019] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) -[2618839.023] {Default Queue} -> wl_surface#423.commit() -[2618839.029] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) -[2618839.033] {Default Queue} -> wl_surface#359.commit() -[2618840.093] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) -[2618840.098] {Default Queue} -> wl_surface#359.commit() -[2618840.104] {Default Queue} -> wl_region#383.subtract(0, 0, 485, 54) -[2618840.108] {Default Queue} -> wl_region#383.add(-480, -49, 482, 51) -[2618840.113] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) -[2618840.120] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) -[2618840.127] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) -[2618840.131] {Default Queue} -> wl_surface#359.commit() -[2618840.135] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) -[2618840.139] {Default Queue} -> wl_surface#359.commit() -[2618840.145] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) -[2618840.149] {Default Queue} -> wl_surface#359.commit() -[2618840.154] {Default Queue} -> wl_region#351.subtract(0, 0, 115, 167) -[2618840.160] {Default Queue} -> wl_region#383.subtract(0, 0, 2, 2) -[2618840.165] {Default Queue} -> wl_subsurface#378.set_position(3, 3) -[2618840.169] {Default Queue} -> wl_region#383.subtract(0, 0, 485, 54) -[2618840.173] {Default Queue} -> wl_region#383.add(-480, -49, 482, 51) -[2618840.177] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) -[2618840.181] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) -[2618840.185] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2618840.189] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618840.193] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618840.197] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618840.202] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618840.207] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618840.211] {Default Queue} -> wl_surface#487.damage(0, 0, 16, 2) -[2618840.215] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618840.219] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618840.223] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618840.227] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618840.231] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618840.235] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2618840.239] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2618840.243] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) -[2618840.247] {Default Queue} -> wl_surface#359.damage(0, 0, 2, 2) -[2618840.252] {Default Queue} -> wl_region#383.subtract(0, 0, 485, 54) -[2618840.257] {Default Queue} -> wl_region#383.add(-480, -49, 482, 51) -[2618840.261] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) -[2618840.265] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) -[2618840.269] {Default Queue} -> wl_surface#359.attach(wl_buffer#190, 0, 0) -[2618840.273] {Default Queue} -> wl_surface#359.commit() -[2618840.278] {Default Queue} -> wl_region#383.subtract(0, 0, 592, 213) -[2618840.283] {Default Queue} -> wl_region#383.add(-480, -49, 589, 210) -[2618840.287] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) -[2618840.290] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) -[2618840.295] {Default Queue} -> wl_region#351.subtract(0, 0, 482, 51) -[2618840.299] {Default Queue} -> wl_region#351.add(-20, -49, 22, 51) -[2618840.303] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618840.307] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618840.311] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2618840.315] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618840.319] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618840.323] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618840.327] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618840.332] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618840.336] {Default Queue} -> wl_surface#487.damage(0, 0, 16, 2) -[2618840.339] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618840.344] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618840.348] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618840.352] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618840.356] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618840.360] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2618840.367] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2618840.372] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) -[2618840.376] {Default Queue} -> wl_surface#359.damage(0, 0, 109, 161) -[2618840.381] {Default Queue} -> wl_surface#327.damage(0, 0, 115, 167) -[2618840.395] {Default Queue} -> wl_buffer#349.destroy() -[2618840.402] {Default Queue} -> wl_buffer#350.destroy() -[2618840.406] {Default Queue} -> wl_shm_pool#347.destroy() -[2618840.410] {Default Queue} -> wl_shm_pool#348.destroy() -[2618840.503] {Default Queue} -> wl_shm#335.create_pool(new id wl_shm_pool#3806, fd 575, 76820) -[2618840.511] {Default Queue} -> wl_shm#335.create_pool(new id wl_shm_pool#3807, fd 578, 76820) -[2618840.517] {Default Queue} -> wl_shm_pool#3806.create_buffer(new id wl_buffer#3808, 0, 115, 167, 460, 0) -[2618840.522] {Default Queue} -> wl_shm_pool#3807.create_buffer(new id wl_buffer#3809, 0, 115, 167, 460, 0) -[2618840.551] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) -[2618840.558] {Default Queue} -> wl_surface#327.commit() -[2618840.584] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) -[2618840.590] {Default Queue} -> wl_surface#327.commit() -[2618840.602] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) -[2618840.608] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) -[2618840.614] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618840.619] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618840.632] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) -[2618840.637] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) -[2618840.642] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618840.647] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618840.655] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) -[2618840.660] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) -[2618840.665] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618840.670] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618840.677] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) -[2618840.683] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) -[2618840.688] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618840.693] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618840.701] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) -[2618840.706] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) -[2618840.712] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618840.716] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618840.725] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) -[2618840.730] {Default Queue} -> wl_surface#327.commit() -[2618840.739] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) -[2618840.745] {Default Queue} -> wl_surface#327.commit() -[2618841.812] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) -[2618841.818] {Default Queue} -> wl_surface#327.commit() -[2618841.826] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) -[2618841.831] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) -[2618841.835] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618841.839] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618841.845] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) -[2618841.849] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) -[2618841.853] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618841.857] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618841.866] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) -[2618841.871] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) -[2618841.875] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618841.878] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618841.884] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) -[2618841.892] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) -[2618841.899] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618841.903] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618841.909] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) -[2618841.913] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) -[2618841.917] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618841.921] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618841.928] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) -[2618841.932] {Default Queue} -> wl_surface#327.commit() -[2618841.937] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) -[2618841.941] {Default Queue} -> wl_surface#327.commit() -[2618841.948] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) -[2618841.952] {Default Queue} -> wl_surface#327.commit() -[2618841.956] {Default Queue} -> wl_region#127.subtract(0, 0, 576, 167) -[2618841.963] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) -[2618841.968] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) -[2618841.972] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618841.976] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618841.984] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) -[2618841.988] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) -[2618841.992] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618841.997] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618842.002] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) -[2618842.006] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) -[2618842.011] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618842.015] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618842.020] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) -[2618842.024] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) -[2618842.029] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618842.032] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618842.039] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) -[2618842.043] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) -[2618842.047] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618842.051] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618842.068] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) -[2618842.073] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) -[2618842.077] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618842.081] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618842.395] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) -[2618842.400] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) -[2618842.405] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618842.409] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618842.422] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) -[2618842.427] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) -[2618842.653] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) -[2618842.659] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) -[2618842.663] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618842.667] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618842.676] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) -[2618842.681] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) -[2618842.687] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) -[2618842.692] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) -[2618842.696] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618842.700] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618842.710] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) -[2618842.717] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) -[2618842.721] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618842.725] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618842.731] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) -[2618842.735] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) -[2618842.739] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618842.743] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618842.749] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) -[2618842.753] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) -[2618842.757] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618842.761] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618842.767] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) -[2618842.772] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) -[2618842.776] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2618842.780] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2618842.787] {Default Queue} -> wl_surface#103.damage(0, 0, 576, 167) -[2618842.792] {Default Queue} -> wl_region#127.subtract(0, 0, 2, 2) -[2618842.796] {Default Queue} -> wl_region#127.add(0, 0, 2, 2) -[2618842.800] {Default Queue} -> wl_surface#103.set_opaque_region(wl_region#128) -[2618842.804] {Default Queue} -> wl_surface#103.set_input_region(wl_region#127) -[2618842.808] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2618842.813] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618842.817] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) -[2618842.821] {Default Queue} -> wl_surface#167.damage(0, 0, 109, 161) -[2618842.826] {Default Queue} -> wl_surface#135.damage(0, 0, 115, 167) -[2618842.830] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) -[2618842.834] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2618842.838] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2618842.842] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2618842.847] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2618842.851] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2618842.856] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2618842.860] {Default Queue} -> wl_surface#487.damage(0, 0, 16, 2) -[2618842.871] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2618842.875] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2618842.880] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2618842.884] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2618842.888] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2618842.892] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2618842.896] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2618842.900] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) -[2618842.905] {Default Queue} -> wl_surface#359.damage(0, 0, 109, 161) -[2618842.909] {Default Queue} -> wl_surface#327.damage(0, 0, 115, 167) -[2618842.913] {Default Queue} -> wl_surface#103.damage(0, 0, 576, 167) -[2618842.926] {Default Queue} -> wl_buffer#125.destroy() -[2618842.931] {Default Queue} -> wl_buffer#126.destroy() -[2618842.935] {Default Queue} -> wl_shm_pool#123.destroy() -[2618842.939] {Default Queue} -> wl_shm_pool#124.destroy() -[2618843.219] {Default Queue} -> wl_shm#111.create_pool(new id wl_shm_pool#3810, fd 575, 384768) -[2618843.228] {Default Queue} -> wl_shm#111.create_pool(new id wl_shm_pool#3811, fd 578, 384768) -[2618843.232] {Default Queue} -> wl_shm_pool#3810.create_buffer(new id wl_buffer#3812, 0, 576, 167, 2304, 0) -[2618843.237] {Default Queue} -> wl_shm_pool#3811.create_buffer(new id wl_buffer#3813, 0, 576, 167, 2304, 0) -[2618843.346] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) -[2618843.352] {Default Queue} -> wl_surface#103.commit() -[2618843.469] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) -[2618843.479] {Default Queue} -> wl_surface#103.commit() -[2618843.496] {Default Queue} -> wl_region#127.subtract(0, 0, 576, 167) -[2618843.501] {Default Queue} -> wl_region#127.add(0, 0, 576, 167) -[2618843.506] {Default Queue} -> wl_surface#103.set_opaque_region(wl_region#128) -[2618843.510] {Default Queue} -> wl_surface#103.set_input_region(wl_region#127) -[2618843.533] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) -[2618843.539] {Default Queue} -> wl_surface#103.commit() -[2618843.565] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) -[2618843.570] {Default Queue} -> wl_surface#103.commit() -[2618844.643] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) -[2618844.650] {Default Queue} -> wl_surface#103.commit() -[2618844.661] {Default Queue} -> wl_region#127.subtract(0, 0, 576, 167) -[2618844.666] {Default Queue} -> wl_region#127.add(0, 0, 576, 167) -[2618844.671] {Default Queue} -> wl_surface#103.set_opaque_region(wl_region#128) -[2618844.675] {Default Queue} -> wl_surface#103.set_input_region(wl_region#127) -[2618844.692] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) -[2618844.698] {Default Queue} -> wl_surface#103.commit() -[2618844.708] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) -[2618844.714] {Default Queue} -> wl_surface#103.commit() -[2618844.726] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) -[2618844.732] {Default Queue} -> wl_surface#103.commit() -[2618844.737] {Default Queue} -> wl_region#991.subtract(0, 0, 2, 20) -[2618844.742] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 218) -[2618844.746] {Default Queue} -> wl_region#991.add(-20, -216, 22, 218) -[2618844.751] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2618844.755] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2618844.759] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2618844.774] {Default Queue} -> wl_buffer#989.destroy() -[2618844.780] {Default Queue} -> wl_buffer#990.destroy() -[2618844.784] {Default Queue} -> wl_shm_pool#987.destroy() -[2618844.788] {Default Queue} -> wl_shm_pool#988.destroy() -[2618844.825] {Default Queue} -> wl_shm#975.create_pool(new id wl_shm_pool#3814, fd 575, 160) -[2618844.831] {Default Queue} -> wl_shm#975.create_pool(new id wl_shm_pool#3815, fd 578, 160) -[2618844.836] {Default Queue} -> wl_shm_pool#3814.create_buffer(new id wl_buffer#3816, 0, 2, 20, 8, 0) -[2618844.840] {Default Queue} -> wl_shm_pool#3815.create_buffer(new id wl_buffer#3817, 0, 2, 20, 8, 0) -[2618844.847] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) -[2618844.851] {Default Queue} -> wl_surface#967.commit() -[2618844.856] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) -[2618844.861] {Default Queue} -> wl_surface#967.commit() -[2618844.869] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 218) -[2618844.879] {Default Queue} -> wl_region#991.add(-20, -216, 22, 218) -[2618844.883] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2618844.887] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2618844.983] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 218) -[2618844.988] {Default Queue} -> wl_region#991.add(-20, -216, 22, 218) -[2618844.992] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2618844.996] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2618845.002] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2618845.006] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2618845.070] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 218) -[2618845.075] {Default Queue} -> wl_region#991.add(-20, -216, 22, 218) -[2618845.080] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2618845.084] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2618845.090] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2618845.094] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2618845.099] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) -[2618845.107] {Default Queue} -> wl_surface#967.commit() -[2618845.116] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) -[2618845.120] {Default Queue} -> wl_surface#967.commit() -[2618846.184] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) -[2618846.190] {Default Queue} -> wl_surface#967.commit() -[2618846.197] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 218) -[2618846.202] {Default Queue} -> wl_region#991.add(-20, -216, 22, 218) -[2618846.207] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2618846.211] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2618846.286] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 218) -[2618846.291] {Default Queue} -> wl_region#991.add(-20, -216, 22, 218) -[2618846.295] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2618846.299] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2618846.304] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2618846.309] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2618846.369] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 218) -[2618846.374] {Default Queue} -> wl_region#991.add(-20, -216, 22, 218) -[2618846.378] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2618846.382] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2618846.387] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2618846.392] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2618846.396] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) -[2618846.400] {Default Queue} -> wl_surface#967.commit() -[2618846.404] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) -[2618846.408] {Default Queue} -> wl_surface#967.commit() -[2618846.414] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) -[2618846.418] {Default Queue} -> wl_surface#967.commit() -[2618846.423] {Default Queue} -> wl_region#1119.subtract(0, 0, 2, 2) -[2618846.428] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) -[2618846.432] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) -[2618846.436] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618846.439] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618846.444] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) -[2618846.457] {Default Queue} -> wl_buffer#1117.destroy() -[2618846.462] {Default Queue} -> wl_buffer#1118.destroy() -[2618846.466] {Default Queue} -> wl_shm_pool#1115.destroy() -[2618846.470] {Default Queue} -> wl_shm_pool#1116.destroy() -[2618846.508] {Default Queue} -> wl_shm#1103.create_pool(new id wl_shm_pool#3818, fd 575, 16) -[2618846.514] {Default Queue} -> wl_shm#1103.create_pool(new id wl_shm_pool#3819, fd 578, 16) -[2618846.519] {Default Queue} -> wl_shm_pool#3818.create_buffer(new id wl_buffer#3820, 0, 2, 2, 8, 0) -[2618846.523] {Default Queue} -> wl_shm_pool#3819.create_buffer(new id wl_buffer#3821, 0, 2, 2, 8, 0) -[2618846.530] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) -[2618846.535] {Default Queue} -> wl_surface#1095.commit() -[2618846.540] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) -[2618846.544] {Default Queue} -> wl_surface#1095.commit() -[2618846.553] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) -[2618846.558] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) -[2618846.562] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618846.566] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618846.574] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) -[2618846.579] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) -[2618846.584] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618846.588] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618846.593] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) -[2618846.597] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) -[2618846.605] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618846.611] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618846.616] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) -[2618846.620] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) -[2618846.624] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618846.628] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618846.633] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) -[2618846.637] {Default Queue} -> wl_surface#1095.commit() -[2618846.643] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) -[2618846.647] {Default Queue} -> wl_surface#1095.commit() -[2618847.718] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) -[2618847.733] {Default Queue} -> wl_surface#1095.commit() -[2618847.745] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) -[2618847.751] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) -[2618847.756] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618847.760] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618847.771] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) -[2618847.775] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) -[2618847.780] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618847.784] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618847.789] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) -[2618847.793] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) -[2618847.797] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618847.802] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618847.806] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) -[2618847.811] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) -[2618847.815] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618847.819] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618847.824] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) -[2618847.828] {Default Queue} -> wl_surface#1095.commit() -[2618847.832] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) -[2618847.837] {Default Queue} -> wl_surface#1095.commit() -[2618847.844] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) -[2618847.848] {Default Queue} -> wl_surface#1095.commit() -[2618847.853] {Default Queue} -> wl_region#1151.subtract(0, 0, 2, 2) -[2618847.857] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) -[2618847.863] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) -[2618847.869] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618847.882] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618847.886] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) -[2618847.903] {Default Queue} -> wl_buffer#1149.destroy() -[2618847.909] {Default Queue} -> wl_buffer#1150.destroy() -[2618847.913] {Default Queue} -> wl_shm_pool#1147.destroy() -[2618847.918] {Default Queue} -> wl_shm_pool#1148.destroy() -[2618847.975] {Default Queue} -> wl_shm#1135.create_pool(new id wl_shm_pool#3822, fd 575, 16) -[2618847.986] {Default Queue} -> wl_shm#1135.create_pool(new id wl_shm_pool#3823, fd 578, 16) -[2618847.993] {Default Queue} -> wl_shm_pool#3822.create_buffer(new id wl_buffer#3824, 0, 2, 2, 8, 0) -[2618847.998] {Default Queue} -> wl_shm_pool#3823.create_buffer(new id wl_buffer#3825, 0, 2, 2, 8, 0) -[2618848.005] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) -[2618848.010] {Default Queue} -> wl_surface#1127.commit() -[2618848.016] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) -[2618848.020] {Default Queue} -> wl_surface#1127.commit() -[2618848.030] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) -[2618848.035] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) -[2618848.045] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618848.053] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618848.062] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) -[2618848.066] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) -[2618848.070] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618848.074] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618848.079] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) -[2618848.084] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) -[2618848.088] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618848.093] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618848.097] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) -[2618848.102] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) -[2618848.106] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618848.110] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618848.114] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) -[2618848.118] {Default Queue} -> wl_surface#1127.commit() -[2618848.125] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) -[2618848.129] {Default Queue} -> wl_surface#1127.commit() -[2618849.201] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) -[2618849.217] {Default Queue} -> wl_surface#1127.commit() -[2618849.227] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) -[2618849.232] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) -[2618849.237] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618849.241] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618849.249] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) -[2618849.253] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) -[2618849.257] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618849.261] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618849.266] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) -[2618849.270] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) -[2618849.274] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618849.278] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618849.283] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) -[2618849.287] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) -[2618849.291] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618849.295] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618849.299] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) -[2618849.304] {Default Queue} -> wl_surface#1127.commit() -[2618849.308] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) -[2618849.312] {Default Queue} -> wl_surface#1127.commit() -[2618849.318] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) -[2618849.322] {Default Queue} -> wl_surface#1127.commit() -[2618849.327] {Default Queue} -> wl_region#1183.subtract(0, 0, 2, 2) -[2618849.331] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) -[2618849.335] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) -[2618849.339] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618849.343] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618849.347] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) -[2618849.361] {Default Queue} -> wl_buffer#1181.destroy() -[2618849.369] {Default Queue} -> wl_buffer#1182.destroy() -[2618849.374] {Default Queue} -> wl_shm_pool#1179.destroy() -[2618849.378] {Default Queue} -> wl_shm_pool#1180.destroy() -[2618849.422] {Default Queue} -> wl_shm#1167.create_pool(new id wl_shm_pool#3826, fd 575, 16) -[2618849.429] {Default Queue} -> wl_shm#1167.create_pool(new id wl_shm_pool#3827, fd 578, 16) -[2618849.433] {Default Queue} -> wl_shm_pool#3826.create_buffer(new id wl_buffer#3828, 0, 2, 2, 8, 0) -[2618849.441] {Default Queue} -> wl_shm_pool#3827.create_buffer(new id wl_buffer#3829, 0, 2, 2, 8, 0) -[2618849.451] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) -[2618849.456] {Default Queue} -> wl_surface#1159.commit() -[2618849.461] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) -[2618849.465] {Default Queue} -> wl_surface#1159.commit() -[2618849.472] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) -[2618849.478] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) -[2618849.483] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618849.487] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618849.494] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) -[2618849.498] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) -[2618849.503] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618849.506] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618849.511] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) -[2618849.515] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) -[2618849.519] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618849.523] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618849.527] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) -[2618849.532] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) -[2618849.535] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618849.539] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618849.544] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) -[2618849.548] {Default Queue} -> wl_surface#1159.commit() -[2618849.554] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) -[2618849.558] {Default Queue} -> wl_surface#1159.commit() -[2618850.628] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) -[2618850.641] {Default Queue} -> wl_surface#1159.commit() -[2618850.651] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) -[2618850.656] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) -[2618850.660] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618850.665] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618850.675] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) -[2618850.679] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) -[2618850.683] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618850.687] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618850.692] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) -[2618850.696] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) -[2618850.700] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618850.704] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618850.708] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) -[2618850.712] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) -[2618850.716] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618850.720] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618850.724] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) -[2618850.729] {Default Queue} -> wl_surface#1159.commit() -[2618850.732] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) -[2618850.736] {Default Queue} -> wl_surface#1159.commit() -[2618850.743] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) -[2618850.747] {Default Queue} -> wl_surface#1159.commit() -[2618850.751] {Default Queue} -> wl_region#1215.subtract(0, 0, 2, 2) -[2618850.756] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) -[2618850.760] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) -[2618850.764] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618850.772] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618850.779] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) -[2618850.793] {Default Queue} -> wl_buffer#1213.destroy() -[2618850.798] {Default Queue} -> wl_buffer#1214.destroy() -[2618850.802] {Default Queue} -> wl_shm_pool#1211.destroy() -[2618850.806] {Default Queue} -> wl_shm_pool#1212.destroy() -[2618850.848] {Default Queue} -> wl_shm#1199.create_pool(new id wl_shm_pool#3830, fd 575, 16) -[2618850.855] {Default Queue} -> wl_shm#1199.create_pool(new id wl_shm_pool#3831, fd 578, 16) -[2618850.860] {Default Queue} -> wl_shm_pool#3830.create_buffer(new id wl_buffer#3832, 0, 2, 2, 8, 0) -[2618850.871] {Default Queue} -> wl_shm_pool#3831.create_buffer(new id wl_buffer#3833, 0, 2, 2, 8, 0) -[2618850.878] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) -[2618850.883] {Default Queue} -> wl_surface#1191.commit() -[2618850.888] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) -[2618850.892] {Default Queue} -> wl_surface#1191.commit() -[2618850.900] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) -[2618850.904] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) -[2618850.908] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618850.912] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618850.919] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) -[2618850.924] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) -[2618850.928] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618850.931] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618850.936] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) -[2618850.940] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) -[2618850.945] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618850.948] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618850.953] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) -[2618850.957] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) -[2618850.961] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618850.965] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618850.970] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) -[2618850.974] {Default Queue} -> wl_surface#1191.commit() -[2618850.980] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) -[2618850.984] {Default Queue} -> wl_surface#1191.commit() -[2618852.050] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) -[2618852.064] {Default Queue} -> wl_surface#1191.commit() -[2618852.074] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) -[2618852.079] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) -[2618852.083] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618852.088] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618852.096] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) -[2618852.100] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) -[2618852.104] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618852.108] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618852.112] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) -[2618852.117] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) -[2618852.121] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618852.125] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618852.129] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) -[2618852.133] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) -[2618852.137] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618852.141] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618852.146] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) -[2618852.150] {Default Queue} -> wl_surface#1191.commit() -[2618852.158] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) -[2618852.165] {Default Queue} -> wl_surface#1191.commit() -[2618852.172] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) -[2618852.176] {Default Queue} -> wl_surface#1191.commit() -[2618852.180] {Default Queue} -> wl_region#1247.subtract(0, 0, 2, 2) -[2618852.185] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) -[2618852.189] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) -[2618852.195] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618852.205] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618852.213] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) -[2618852.227] {Default Queue} -> wl_buffer#1245.destroy() -[2618852.233] {Default Queue} -> wl_buffer#1246.destroy() -[2618852.237] {Default Queue} -> wl_shm_pool#1243.destroy() -[2618852.241] {Default Queue} -> wl_shm_pool#1244.destroy() -[2618852.285] {Default Queue} -> wl_shm#1231.create_pool(new id wl_shm_pool#3834, fd 575, 16) -[2618852.292] {Default Queue} -> wl_shm#1231.create_pool(new id wl_shm_pool#3835, fd 578, 16) -[2618852.297] {Default Queue} -> wl_shm_pool#3834.create_buffer(new id wl_buffer#3836, 0, 2, 2, 8, 0) -[2618852.301] {Default Queue} -> wl_shm_pool#3835.create_buffer(new id wl_buffer#3837, 0, 2, 2, 8, 0) -[2618852.308] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) -[2618852.312] {Default Queue} -> wl_surface#1223.commit() -[2618852.317] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) -[2618852.322] {Default Queue} -> wl_surface#1223.commit() -[2618852.333] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) -[2618852.338] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) -[2618852.342] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618852.346] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618852.354] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) -[2618852.358] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) -[2618852.362] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618852.366] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618852.371] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) -[2618852.375] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) -[2618852.379] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618852.382] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618852.387] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) -[2618852.391] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) -[2618852.395] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618852.399] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618852.403] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) -[2618852.407] {Default Queue} -> wl_surface#1223.commit() -[2618852.414] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) -[2618852.418] {Default Queue} -> wl_surface#1223.commit() -[2618853.485] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) -[2618853.498] {Default Queue} -> wl_surface#1223.commit() -[2618853.507] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) -[2618853.512] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) -[2618853.517] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618853.521] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618853.529] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) -[2618853.534] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) -[2618853.539] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618853.544] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618853.548] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) -[2618853.553] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) -[2618853.561] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618853.567] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618853.572] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) -[2618853.576] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) -[2618853.580] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618853.584] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618853.589] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) -[2618853.593] {Default Queue} -> wl_surface#1223.commit() -[2618853.597] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) -[2618853.601] {Default Queue} -> wl_surface#1223.commit() -[2618853.608] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) -[2618853.612] {Default Queue} -> wl_surface#1223.commit() -[2618853.616] {Default Queue} -> wl_region#1087.subtract(0, 0, 16, 2) -[2618853.623] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) -[2618853.629] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) -[2618853.645] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618853.652] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618853.665] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) -[2618853.673] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) -[2618853.679] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618853.684] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618853.690] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) -[2618853.694] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) -[2618853.698] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618853.702] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618853.706] {Default Queue} -> wl_region#1119.subtract(0, 0, 25, 201) -[2618853.710] {Default Queue} -> wl_region#1119.add(-23, -219, 25, 201) -[2618853.714] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2618853.718] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2618853.724] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) -[2618853.728] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) -[2618853.732] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618853.736] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618853.745] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) -[2618853.749] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) -[2618853.753] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618853.757] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618853.762] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) -[2618853.766] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) -[2618853.770] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618853.774] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618853.779] {Default Queue} -> wl_region#1151.subtract(0, 0, 25, 201) -[2618853.783] {Default Queue} -> wl_region#1151.add(-23, -219, 25, 201) -[2618853.787] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2618853.791] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2618853.797] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) -[2618853.801] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) -[2618853.805] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618853.808] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618853.814] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) -[2618853.818] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) -[2618853.823] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618853.826] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618853.835] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) -[2618853.842] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) -[2618853.846] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618853.850] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618853.854] {Default Queue} -> wl_region#1183.subtract(0, 0, 25, 201) -[2618853.858] {Default Queue} -> wl_region#1183.add(-23, -219, 25, 201) -[2618853.863] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2618853.867] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2618853.878] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) -[2618853.883] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) -[2618853.887] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618853.891] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618853.898] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) -[2618853.902] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) -[2618853.906] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618853.910] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618853.915] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) -[2618853.920] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) -[2618853.924] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618853.928] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618853.933] {Default Queue} -> wl_region#1215.subtract(0, 0, 25, 201) -[2618853.937] {Default Queue} -> wl_region#1215.add(-23, -219, 25, 201) -[2618853.941] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2618853.944] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2618853.949] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) -[2618853.954] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) -[2618853.958] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618853.961] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618853.967] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) -[2618853.971] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) -[2618853.975] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618853.979] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618853.984] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) -[2618853.988] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) -[2618853.991] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618853.995] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618854.000] {Default Queue} -> wl_region#1247.subtract(0, 0, 25, 201) -[2618854.004] {Default Queue} -> wl_region#1247.add(-23, -219, 25, 201) -[2618854.008] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2618854.012] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2618854.017] {Default Queue} -> wl_surface#1063.damage(0, 0, 16, 2) -[2618854.021] {Default Queue} -> wl_region#1087.subtract(0, 0, 25, 201) -[2618854.025] {Default Queue} -> wl_region#1087.add(-23, -219, 25, 201) -[2618854.029] {Default Queue} -> wl_surface#1063.set_opaque_region(wl_region#1088) -[2618854.033] {Default Queue} -> wl_surface#1063.set_input_region(wl_region#1087) -[2618854.037] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) -[2618854.041] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) -[2618854.045] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) -[2618854.049] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) -[2618854.053] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) -[2618854.057] {Default Queue} -> wl_surface#1063.damage(0, 0, 16, 2) -[2618854.071] {Default Queue} -> wl_buffer#1085.destroy() -[2618854.076] {Default Queue} -> wl_buffer#1086.destroy() -[2618854.080] {Default Queue} -> wl_shm_pool#1083.destroy() -[2618854.087] {Default Queue} -> wl_shm_pool#1084.destroy() -[2618854.131] {Default Queue} -> wl_shm#1071.create_pool(new id wl_shm_pool#3838, fd 575, 128) -[2618854.137] {Default Queue} -> wl_shm#1071.create_pool(new id wl_shm_pool#3839, fd 578, 128) -[2618854.142] {Default Queue} -> wl_shm_pool#3838.create_buffer(new id wl_buffer#3840, 0, 16, 2, 64, 0) -[2618854.147] {Default Queue} -> wl_shm_pool#3839.create_buffer(new id wl_buffer#3841, 0, 16, 2, 64, 0) -[2618854.154] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) -[2618854.158] {Default Queue} -> wl_surface#1063.commit() -[2618854.163] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) -[2618854.168] {Default Queue} -> wl_surface#1063.commit() -[2618854.176] {Default Queue} -> wl_region#1087.subtract(0, 0, 25, 201) -[2618854.180] {Default Queue} -> wl_region#1087.add(-23, -219, 25, 201) -[2618854.184] {Default Queue} -> wl_surface#1063.set_opaque_region(wl_region#1088) -[2618854.188] {Default Queue} -> wl_surface#1063.set_input_region(wl_region#1087) -[2618854.193] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) -[2618854.197] {Default Queue} -> wl_surface#1063.commit() -[2618854.204] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) -[2618854.208] {Default Queue} -> wl_surface#1063.commit() -[2618855.277] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) -[2618855.290] {Default Queue} -> wl_surface#1063.commit() -[2618855.300] {Default Queue} -> wl_region#1087.subtract(0, 0, 25, 201) -[2618855.304] {Default Queue} -> wl_region#1087.add(-23, -219, 25, 201) -[2618855.309] {Default Queue} -> wl_surface#1063.set_opaque_region(wl_region#1088) -[2618855.313] {Default Queue} -> wl_surface#1063.set_input_region(wl_region#1087) -[2618855.318] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) -[2618855.323] {Default Queue} -> wl_surface#1063.commit() -[2618855.327] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) -[2618855.331] {Default Queue} -> wl_surface#1063.commit() -[2618855.337] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) -[2618855.342] {Default Queue} -> wl_surface#1063.commit() -[2618855.347] {Default Queue} -> wl_region#1311.subtract(0, 0, 2, 2) -[2618855.351] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) -[2618855.355] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) -[2618855.360] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2618855.364] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2618855.368] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618855.386] {Default Queue} -> wl_buffer#1309.destroy() -[2618855.391] {Default Queue} -> wl_buffer#1310.destroy() -[2618855.395] {Default Queue} -> wl_shm_pool#1307.destroy() -[2618855.399] {Default Queue} -> wl_shm_pool#1308.destroy() -[2618855.441] {Default Queue} -> wl_shm#1295.create_pool(new id wl_shm_pool#3842, fd 575, 16) -[2618855.448] {Default Queue} -> wl_shm#1295.create_pool(new id wl_shm_pool#3843, fd 578, 16) -[2618855.453] {Default Queue} -> wl_shm_pool#3842.create_buffer(new id wl_buffer#3844, 0, 2, 2, 8, 0) -[2618855.457] {Default Queue} -> wl_shm_pool#3843.create_buffer(new id wl_buffer#3845, 0, 2, 2, 8, 0) -[2618855.464] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) -[2618855.468] {Default Queue} -> wl_surface#1287.commit() -[2618855.473] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) -[2618855.477] {Default Queue} -> wl_surface#1287.commit() -[2618855.486] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) -[2618855.491] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) -[2618855.495] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2618855.499] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2618855.610] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) -[2618855.615] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) -[2618855.619] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2618855.628] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2618855.637] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618855.641] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618855.749] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) -[2618855.760] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) -[2618855.765] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2618855.770] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2618855.779] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618855.783] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618855.788] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) -[2618855.793] {Default Queue} -> wl_surface#1287.commit() -[2618855.799] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) -[2618855.804] {Default Queue} -> wl_surface#1287.commit() -[2618856.873] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) -[2618856.886] {Default Queue} -> wl_surface#1287.commit() -[2618856.897] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) -[2618856.902] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) -[2618856.907] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2618856.911] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2618857.013] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) -[2618857.019] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) -[2618857.024] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2618857.028] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2618857.034] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618857.038] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618857.110] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) -[2618857.115] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) -[2618857.120] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2618857.124] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2618857.129] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618857.133] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618857.138] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) -[2618857.142] {Default Queue} -> wl_surface#1287.commit() -[2618857.146] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) -[2618857.150] {Default Queue} -> wl_surface#1287.commit() -[2618857.159] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) -[2618857.163] {Default Queue} -> wl_surface#1287.commit() -[2618857.167] {Default Queue} -> wl_region#1343.subtract(0, 0, 2, 2) -[2618857.172] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) -[2618857.176] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) -[2618857.180] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2618857.184] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2618857.188] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618857.204] {Default Queue} -> wl_buffer#1341.destroy() -[2618857.209] {Default Queue} -> wl_buffer#1342.destroy() -[2618857.213] {Default Queue} -> wl_shm_pool#1339.destroy() -[2618857.217] {Default Queue} -> wl_shm_pool#1340.destroy() -[2618857.264] {Default Queue} -> wl_shm#1327.create_pool(new id wl_shm_pool#3846, fd 575, 16) -[2618857.279] {Default Queue} -> wl_shm#1327.create_pool(new id wl_shm_pool#3847, fd 578, 16) -[2618857.287] {Default Queue} -> wl_shm_pool#3846.create_buffer(new id wl_buffer#3848, 0, 2, 2, 8, 0) -[2618857.297] {Default Queue} -> wl_shm_pool#3847.create_buffer(new id wl_buffer#3849, 0, 2, 2, 8, 0) -[2618857.308] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) -[2618857.315] {Default Queue} -> wl_surface#1319.commit() -[2618857.321] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) -[2618857.325] {Default Queue} -> wl_surface#1319.commit() -[2618857.335] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) -[2618857.345] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) -[2618857.352] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2618857.357] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2618857.452] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) -[2618857.457] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) -[2618857.462] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2618857.466] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2618857.472] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618857.476] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618857.549] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) -[2618857.555] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) -[2618857.559] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2618857.563] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2618857.568] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618857.573] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618857.578] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) -[2618857.583] {Default Queue} -> wl_surface#1319.commit() -[2618857.589] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) -[2618857.593] {Default Queue} -> wl_surface#1319.commit() -[2618858.628] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) -[2618858.642] {Default Queue} -> wl_surface#1319.commit() -[2618858.653] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) -[2618858.659] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) -[2618858.663] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2618858.668] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2618858.778] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) -[2618858.783] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) -[2618858.788] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2618858.792] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2618858.799] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618858.803] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618858.885] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) -[2618858.890] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) -[2618858.894] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2618858.898] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2618858.903] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618858.907] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618858.912] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) -[2618858.916] {Default Queue} -> wl_surface#1319.commit() -[2618858.920] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) -[2618858.924] {Default Queue} -> wl_surface#1319.commit() -[2618858.930] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) -[2618858.934] {Default Queue} -> wl_surface#1319.commit() -[2618858.939] {Default Queue} -> wl_region#1375.subtract(0, 0, 2, 2) -[2618858.943] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) -[2618858.947] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) -[2618858.951] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2618858.955] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2618858.959] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618858.973] {Default Queue} -> wl_buffer#1373.destroy() -[2618858.978] {Default Queue} -> wl_buffer#1374.destroy() -[2618858.982] {Default Queue} -> wl_shm_pool#1371.destroy() -[2618858.986] {Default Queue} -> wl_shm_pool#1372.destroy() -[2618859.029] {Default Queue} -> wl_shm#1359.create_pool(new id wl_shm_pool#3850, fd 575, 16) -[2618859.036] {Default Queue} -> wl_shm#1359.create_pool(new id wl_shm_pool#3851, fd 578, 16) -[2618859.045] {Default Queue} -> wl_shm_pool#3850.create_buffer(new id wl_buffer#3852, 0, 2, 2, 8, 0) -[2618859.053] {Default Queue} -> wl_shm_pool#3851.create_buffer(new id wl_buffer#3853, 0, 2, 2, 8, 0) -[2618859.059] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) -[2618859.064] {Default Queue} -> wl_surface#1351.commit() -[2618859.069] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) -[2618859.073] {Default Queue} -> wl_surface#1351.commit() -[2618859.082] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) -[2618859.087] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) -[2618859.091] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2618859.095] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2618859.193] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) -[2618859.199] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) -[2618859.203] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2618859.207] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2618859.212] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618859.217] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618859.332] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) -[2618859.347] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) -[2618859.353] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2618859.357] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2618859.365] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618859.370] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618859.376] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) -[2618859.380] {Default Queue} -> wl_surface#1351.commit() -[2618859.387] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) -[2618859.391] {Default Queue} -> wl_surface#1351.commit() -[2618860.458] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) -[2618860.470] {Default Queue} -> wl_surface#1351.commit() -[2618860.480] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) -[2618860.485] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) -[2618860.490] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2618860.494] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2618860.587] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) -[2618860.593] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) -[2618860.597] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2618860.601] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2618860.607] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618860.611] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618860.690] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) -[2618860.695] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) -[2618860.699] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2618860.703] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2618860.708] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618860.712] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618860.717] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) -[2618860.721] {Default Queue} -> wl_surface#1351.commit() -[2618860.725] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) -[2618860.730] {Default Queue} -> wl_surface#1351.commit() -[2618860.736] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) -[2618860.740] {Default Queue} -> wl_surface#1351.commit() -[2618860.745] {Default Queue} -> wl_region#1407.subtract(0, 0, 2, 2) -[2618860.749] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) -[2618860.753] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) -[2618860.758] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2618860.762] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2618860.770] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618860.788] {Default Queue} -> wl_buffer#1405.destroy() -[2618860.793] {Default Queue} -> wl_buffer#1406.destroy() -[2618860.797] {Default Queue} -> wl_shm_pool#1403.destroy() -[2618860.801] {Default Queue} -> wl_shm_pool#1404.destroy() -[2618860.842] {Default Queue} -> wl_shm#1391.create_pool(new id wl_shm_pool#3854, fd 575, 16) -[2618860.849] {Default Queue} -> wl_shm#1391.create_pool(new id wl_shm_pool#3855, fd 578, 16) -[2618860.854] {Default Queue} -> wl_shm_pool#3854.create_buffer(new id wl_buffer#3856, 0, 2, 2, 8, 0) -[2618860.858] {Default Queue} -> wl_shm_pool#3855.create_buffer(new id wl_buffer#3857, 0, 2, 2, 8, 0) -[2618860.874] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) -[2618860.878] {Default Queue} -> wl_surface#1383.commit() -[2618860.884] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) -[2618860.888] {Default Queue} -> wl_surface#1383.commit() -[2618860.897] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) -[2618860.901] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) -[2618860.906] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2618860.910] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2618861.002] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) -[2618861.009] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) -[2618861.013] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2618861.017] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2618861.023] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618861.027] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618861.097] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) -[2618861.102] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) -[2618861.106] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2618861.110] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2618861.115] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618861.119] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618861.124] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) -[2618861.128] {Default Queue} -> wl_surface#1383.commit() -[2618861.134] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) -[2618861.138] {Default Queue} -> wl_surface#1383.commit() -[2618862.205] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) -[2618862.219] {Default Queue} -> wl_surface#1383.commit() -[2618862.230] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) -[2618862.235] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) -[2618862.239] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2618862.243] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2618862.351] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) -[2618862.361] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) -[2618862.367] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2618862.371] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2618862.378] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618862.383] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618862.452] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) -[2618862.458] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) -[2618862.462] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2618862.466] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2618862.471] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618862.476] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618862.481] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) -[2618862.485] {Default Queue} -> wl_surface#1383.commit() -[2618862.489] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) -[2618862.493] {Default Queue} -> wl_surface#1383.commit() -[2618862.504] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) -[2618862.511] {Default Queue} -> wl_surface#1383.commit() -[2618862.515] {Default Queue} -> wl_region#1439.subtract(0, 0, 2, 2) -[2618862.520] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) -[2618862.524] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) -[2618862.528] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2618862.532] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2618862.536] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618862.549] {Default Queue} -> wl_buffer#1437.destroy() -[2618862.554] {Default Queue} -> wl_buffer#1438.destroy() -[2618862.558] {Default Queue} -> wl_shm_pool#1435.destroy() -[2618862.563] {Default Queue} -> wl_shm_pool#1436.destroy() -[2618862.605] {Default Queue} -> wl_shm#1423.create_pool(new id wl_shm_pool#3858, fd 575, 16) -[2618862.612] {Default Queue} -> wl_shm#1423.create_pool(new id wl_shm_pool#3859, fd 578, 16) -[2618862.617] {Default Queue} -> wl_shm_pool#3858.create_buffer(new id wl_buffer#3860, 0, 2, 2, 8, 0) -[2618862.621] {Default Queue} -> wl_shm_pool#3859.create_buffer(new id wl_buffer#3861, 0, 2, 2, 8, 0) -[2618862.628] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) -[2618862.632] {Default Queue} -> wl_surface#1415.commit() -[2618862.637] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) -[2618862.641] {Default Queue} -> wl_surface#1415.commit() -[2618862.651] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) -[2618862.656] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) -[2618862.660] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2618862.665] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2618862.755] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) -[2618862.760] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) -[2618862.764] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2618862.769] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2618862.774] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618862.778] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618862.853] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) -[2618862.857] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) -[2618862.868] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2618862.873] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2618862.877] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618862.882] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618862.887] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) -[2618862.891] {Default Queue} -> wl_surface#1415.commit() -[2618862.897] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) -[2618862.901] {Default Queue} -> wl_surface#1415.commit() -[2618863.970] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) -[2618863.983] {Default Queue} -> wl_surface#1415.commit() -[2618863.993] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) -[2618863.999] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) -[2618864.004] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2618864.008] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2618864.103] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) -[2618864.108] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) -[2618864.112] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2618864.116] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2618864.122] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618864.126] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618864.198] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) -[2618864.203] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) -[2618864.207] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2618864.215] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2618864.223] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618864.227] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618864.232] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) -[2618864.236] {Default Queue} -> wl_surface#1415.commit() -[2618864.240] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) -[2618864.244] {Default Queue} -> wl_surface#1415.commit() -[2618864.251] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) -[2618864.255] {Default Queue} -> wl_surface#1415.commit() -[2618864.259] {Default Queue} -> wl_region#1279.subtract(0, 0, 2, 2) -[2618864.266] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) -[2618864.270] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) -[2618864.274] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2618864.278] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2618864.357] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) -[2618864.362] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) -[2618864.366] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2618864.370] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2618864.375] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618864.379] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618864.462] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 221) -[2618864.473] {Default Queue} -> wl_region#1311.add(-23, -239, 7, 221) -[2618864.478] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2618864.482] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2618864.489] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618864.494] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618864.501] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) -[2618864.505] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) -[2618864.509] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2618864.513] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2618864.597] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) -[2618864.602] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) -[2618864.606] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2618864.610] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2618864.615] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618864.619] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618864.689] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 221) -[2618864.694] {Default Queue} -> wl_region#1343.add(-23, -239, 7, 221) -[2618864.699] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2618864.703] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2618864.707] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618864.711] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618864.718] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) -[2618864.722] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) -[2618864.726] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2618864.730] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2618864.814] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) -[2618864.820] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) -[2618864.824] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2618864.829] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2618864.833] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618864.837] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618864.915] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 221) -[2618864.920] {Default Queue} -> wl_region#1375.add(-23, -239, 7, 221) -[2618864.925] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2618864.938] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2618864.945] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618864.949] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618864.956] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) -[2618864.960] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) -[2618864.964] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2618864.968] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2618865.048] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) -[2618865.053] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) -[2618865.057] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2618865.061] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2618865.066] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618865.071] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618865.139] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 221) -[2618865.144] {Default Queue} -> wl_region#1407.add(-23, -239, 7, 221) -[2618865.149] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2618865.152] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2618865.157] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618865.161] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618865.168] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) -[2618865.172] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) -[2618865.176] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2618865.180] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2618865.260] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) -[2618865.267] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) -[2618865.271] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2618865.275] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2618865.281] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618865.285] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618865.353] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 221) -[2618865.360] {Default Queue} -> wl_region#1439.add(-23, -239, 7, 221) -[2618865.371] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2618865.380] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2618865.390] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618865.399] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618865.408] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618865.414] {Default Queue} -> wl_region#1279.subtract(0, 0, 25, 221) -[2618865.420] {Default Queue} -> wl_region#1279.add(-23, -239, 7, 221) -[2618865.424] {Default Queue} -> wl_surface#1255.set_opaque_region(wl_region#1280) -[2618865.428] {Default Queue} -> wl_surface#1255.set_input_region(wl_region#1279) -[2618865.432] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618865.436] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618865.440] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618865.444] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618865.449] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618865.456] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618865.478] {Default Queue} -> wl_buffer#1277.destroy() -[2618865.484] {Default Queue} -> wl_buffer#1278.destroy() -[2618865.489] {Default Queue} -> wl_shm_pool#1275.destroy() -[2618865.493] {Default Queue} -> wl_shm_pool#1276.destroy() -[2618865.536] {Default Queue} -> wl_shm#1263.create_pool(new id wl_shm_pool#3862, fd 575, 16) -[2618865.543] {Default Queue} -> wl_shm#1263.create_pool(new id wl_shm_pool#3863, fd 578, 16) -[2618865.548] {Default Queue} -> wl_shm_pool#3862.create_buffer(new id wl_buffer#3864, 0, 2, 2, 8, 0) -[2618865.552] {Default Queue} -> wl_shm_pool#3863.create_buffer(new id wl_buffer#3865, 0, 2, 2, 8, 0) -[2618865.563] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) -[2618865.570] {Default Queue} -> wl_surface#1255.commit() -[2618865.575] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) -[2618865.579] {Default Queue} -> wl_surface#1255.commit() -[2618865.588] {Default Queue} -> wl_region#1279.subtract(0, 0, 25, 221) -[2618865.593] {Default Queue} -> wl_region#1279.add(-23, -239, 7, 221) -[2618865.599] {Default Queue} -> wl_surface#1255.set_opaque_region(wl_region#1280) -[2618865.603] {Default Queue} -> wl_surface#1255.set_input_region(wl_region#1279) -[2618865.608] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) -[2618865.612] {Default Queue} -> wl_surface#1255.commit() -[2618865.618] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) -[2618865.622] {Default Queue} -> wl_surface#1255.commit() -[2618866.690] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) -[2618866.703] {Default Queue} -> wl_surface#1255.commit() -[2618866.713] {Default Queue} -> wl_region#1279.subtract(0, 0, 25, 221) -[2618866.719] {Default Queue} -> wl_region#1279.add(-23, -239, 7, 221) -[2618866.724] {Default Queue} -> wl_surface#1255.set_opaque_region(wl_region#1280) -[2618866.728] {Default Queue} -> wl_surface#1255.set_input_region(wl_region#1279) -[2618866.733] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) -[2618866.737] {Default Queue} -> wl_surface#1255.commit() -[2618866.741] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) -[2618866.745] {Default Queue} -> wl_surface#1255.commit() -[2618866.752] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) -[2618866.756] {Default Queue} -> wl_surface#1255.commit() -[2618866.763] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) -[2618866.768] {Default Queue} -> wl_surface#1031.commit() -[2618867.836] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) -[2618867.851] {Default Queue} -> wl_surface#1031.commit() -[2618867.866] {Default Queue} -> wl_region#1055.subtract(0, 0, 25, 201) -[2618867.871] {Default Queue} -> wl_region#1055.add(-23, -219, 25, 201) -[2618867.875] {Default Queue} -> wl_surface#1031.set_opaque_region(wl_region#1056) -[2618867.880] {Default Queue} -> wl_surface#1031.set_input_region(wl_region#1055) -[2618867.885] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) -[2618867.889] {Default Queue} -> wl_surface#1031.commit() -[2618867.893] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) -[2618867.897] {Default Queue} -> wl_surface#1031.commit() -[2618867.903] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) -[2618867.907] {Default Queue} -> wl_surface#1031.commit() -[2618867.911] {Default Queue} -> wl_region#1023.subtract(0, 0, 2, 2) -[2618867.917] {Default Queue} -> wl_region#1055.subtract(0, 0, 2, 2) -[2618867.922] {Default Queue} -> wl_subsurface#1050.set_position(1, 1) -[2618867.926] {Default Queue} -> wl_region#1055.subtract(0, 0, 26, 202) -[2618867.930] {Default Queue} -> wl_region#1055.add(-23, -219, 25, 201) -[2618867.934] {Default Queue} -> wl_surface#1031.set_opaque_region(wl_region#1056) -[2618867.938] {Default Queue} -> wl_surface#1031.set_input_region(wl_region#1055) -[2618867.942] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) -[2618867.946] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) -[2618867.950] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) -[2618867.954] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) -[2618867.958] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) -[2618867.962] {Default Queue} -> wl_surface#1063.damage(0, 0, 16, 2) -[2618867.967] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618867.971] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618867.975] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618867.979] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618867.983] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618867.986] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618867.997] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2618868.004] {Default Queue} -> wl_region#1055.subtract(0, 0, 25, 221) -[2618868.008] {Default Queue} -> wl_region#1055.add(-23, -239, 24, 220) -[2618868.012] {Default Queue} -> wl_surface#1031.set_opaque_region(wl_region#1056) -[2618868.016] {Default Queue} -> wl_surface#1031.set_input_region(wl_region#1055) -[2618868.021] {Default Queue} -> wl_surface#1031.attach(wl_buffer#1053, 0, 0) -[2618868.025] {Default Queue} -> wl_surface#1031.commit() -[2618868.031] {Default Queue} -> wl_region#1055.subtract(0, 0, 25, 221) -[2618868.035] {Default Queue} -> wl_region#1055.add(-23, -239, 24, 220) -[2618868.039] {Default Queue} -> wl_surface#1031.set_opaque_region(wl_region#1056) -[2618868.043] {Default Queue} -> wl_surface#1031.set_input_region(wl_region#1055) -[2618868.047] {Default Queue} -> wl_region#1023.subtract(0, 0, 25, 221) -[2618868.051] {Default Queue} -> wl_region#1023.add(-23, -219, 25, 201) -[2618868.055] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) -[2618868.061] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) -[2618868.071] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) -[2618868.079] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) -[2618868.084] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) -[2618868.088] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) -[2618868.092] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) -[2618868.096] {Default Queue} -> wl_surface#1063.damage(0, 0, 16, 2) -[2618868.100] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618868.104] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618868.108] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618868.112] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618868.116] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618868.121] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618868.125] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2618868.128] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) -[2618868.143] {Default Queue} -> wl_buffer#1021.destroy() -[2618868.148] {Default Queue} -> wl_buffer#1022.destroy() -[2618868.152] {Default Queue} -> wl_shm_pool#1019.destroy() -[2618868.156] {Default Queue} -> wl_shm_pool#1020.destroy() -[2618868.199] {Default Queue} -> wl_shm#1007.create_pool(new id wl_shm_pool#3866, fd 575, 16) -[2618868.206] {Default Queue} -> wl_shm#1007.create_pool(new id wl_shm_pool#3867, fd 578, 16) -[2618868.211] {Default Queue} -> wl_shm_pool#3866.create_buffer(new id wl_buffer#3868, 0, 2, 2, 8, 0) -[2618868.215] {Default Queue} -> wl_shm_pool#3867.create_buffer(new id wl_buffer#3869, 0, 2, 2, 8, 0) -[2618868.223] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) -[2618868.227] {Default Queue} -> wl_surface#999.commit() -[2618868.232] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) -[2618868.237] {Default Queue} -> wl_surface#999.commit() -[2618868.245] {Default Queue} -> wl_region#1023.subtract(0, 0, 25, 221) -[2618868.250] {Default Queue} -> wl_region#1023.add(-23, -219, 25, 201) -[2618868.254] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) -[2618868.258] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) -[2618868.264] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) -[2618868.268] {Default Queue} -> wl_surface#999.commit() -[2618868.274] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) -[2618868.278] {Default Queue} -> wl_surface#999.commit() -[2618869.344] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) -[2618869.356] {Default Queue} -> wl_surface#999.commit() -[2618869.365] {Default Queue} -> wl_region#1023.subtract(0, 0, 25, 221) -[2618869.370] {Default Queue} -> wl_region#1023.add(-23, -219, 25, 201) -[2618869.374] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) -[2618869.379] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) -[2618869.384] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) -[2618869.393] {Default Queue} -> wl_surface#999.commit() -[2618869.400] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) -[2618869.404] {Default Queue} -> wl_surface#999.commit() -[2618869.411] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) -[2618869.421] {Default Queue} -> wl_surface#999.commit() -[2618869.436] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) -[2618869.445] {Default Queue} -> wl_surface#935.commit() -[2618870.513] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) -[2618870.525] {Default Queue} -> wl_surface#935.commit() -[2618870.535] {Default Queue} -> wl_region#959.subtract(0, 0, 25, 221) -[2618870.540] {Default Queue} -> wl_region#959.add(-20, -216, 22, 218) -[2618870.544] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) -[2618870.548] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) -[2618870.554] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) -[2618870.559] {Default Queue} -> wl_surface#935.commit() -[2618870.563] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) -[2618870.566] {Default Queue} -> wl_surface#935.commit() -[2618870.573] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) -[2618870.577] {Default Queue} -> wl_surface#935.commit() -[2618870.581] {Default Queue} -> wl_region#927.subtract(0, 0, 115, 167) -[2618870.588] {Default Queue} -> wl_region#959.subtract(0, 0, 2, 2) -[2618870.593] {Default Queue} -> wl_subsurface#954.set_position(3, 3) -[2618870.597] {Default Queue} -> wl_region#959.subtract(0, 0, 25, 221) -[2618870.601] {Default Queue} -> wl_region#959.add(-20, -216, 22, 218) -[2618870.605] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) -[2618870.608] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) -[2618870.613] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2618870.617] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) -[2618870.621] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) -[2618870.625] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) -[2618870.629] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) -[2618870.633] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) -[2618870.637] {Default Queue} -> wl_surface#1063.damage(0, 0, 16, 2) -[2618870.641] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618870.645] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618870.649] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618870.653] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618870.657] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618870.661] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618870.665] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2618870.669] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) -[2618870.673] {Default Queue} -> wl_surface#935.damage(0, 0, 2, 2) -[2618870.679] {Default Queue} -> wl_region#959.subtract(0, 0, 25, 221) -[2618870.683] {Default Queue} -> wl_region#959.add(-20, -216, 22, 218) -[2618870.687] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) -[2618870.691] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) -[2618870.695] {Default Queue} -> wl_surface#935.attach(wl_buffer#62, 0, 0) -[2618870.699] {Default Queue} -> wl_surface#935.commit() -[2618870.704] {Default Queue} -> wl_region#959.subtract(0, 0, 132, 380) -[2618870.708] {Default Queue} -> wl_region#959.add(-20, -216, 129, 377) -[2618870.712] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) -[2618870.716] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) -[2618870.721] {Default Queue} -> wl_region#927.subtract(0, 0, 22, 51) -[2618870.724] {Default Queue} -> wl_region#927.add(-20, -49, 22, 51) -[2618870.729] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618870.732] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618870.736] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2618870.746] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) -[2618870.756] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) -[2618870.760] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) -[2618870.764] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) -[2618870.768] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) -[2618870.772] {Default Queue} -> wl_surface#1063.damage(0, 0, 16, 2) -[2618870.776] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618870.780] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618870.784] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618870.788] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618870.791] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618870.795] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618870.800] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2618870.804] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) -[2618870.808] {Default Queue} -> wl_surface#935.damage(0, 0, 109, 161) -[2618870.812] {Default Queue} -> wl_surface#903.damage(0, 0, 115, 167) -[2618870.824] {Default Queue} -> wl_buffer#925.destroy() -[2618870.830] {Default Queue} -> wl_buffer#926.destroy() -[2618870.834] {Default Queue} -> wl_shm_pool#923.destroy() -[2618870.838] {Default Queue} -> wl_shm_pool#924.destroy() -[2618870.932] {Default Queue} -> wl_shm#911.create_pool(new id wl_shm_pool#3870, fd 575, 76820) -[2618870.940] {Default Queue} -> wl_shm#911.create_pool(new id wl_shm_pool#3871, fd 578, 76820) -[2618870.944] {Default Queue} -> wl_shm_pool#3870.create_buffer(new id wl_buffer#3872, 0, 115, 167, 460, 0) -[2618870.949] {Default Queue} -> wl_shm_pool#3871.create_buffer(new id wl_buffer#3873, 0, 115, 167, 460, 0) -[2618870.973] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) -[2618870.978] {Default Queue} -> wl_surface#903.commit() -[2618871.000] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) -[2618871.005] {Default Queue} -> wl_surface#903.commit() -[2618871.015] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) -[2618871.020] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) -[2618871.025] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618871.029] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618871.037] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) -[2618871.041] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) -[2618871.046] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618871.050] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618871.056] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) -[2618871.060] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) -[2618871.064] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618871.068] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618871.073] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) -[2618871.078] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) -[2618871.082] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618871.086] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618871.093] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) -[2618871.097] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) -[2618871.101] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618871.104] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618871.111] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) -[2618871.115] {Default Queue} -> wl_surface#903.commit() -[2618871.123] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) -[2618871.127] {Default Queue} -> wl_surface#903.commit() -[2618872.197] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) -[2618872.209] {Default Queue} -> wl_surface#903.commit() -[2618872.222] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) -[2618872.227] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) -[2618872.236] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618872.243] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618872.251] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) -[2618872.255] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) -[2618872.260] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618872.263] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618872.269] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) -[2618872.273] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) -[2618872.278] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618872.282] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618872.287] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) -[2618872.291] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) -[2618872.297] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618872.300] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618872.307] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) -[2618872.313] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) -[2618872.324] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618872.332] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618872.341] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) -[2618872.347] {Default Queue} -> wl_surface#903.commit() -[2618872.352] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) -[2618872.356] {Default Queue} -> wl_surface#903.commit() -[2618872.364] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) -[2618872.368] {Default Queue} -> wl_surface#903.commit() -[2618872.373] {Default Queue} -> wl_region#1535.subtract(0, 0, 2, 20) -[2618872.378] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 218) -[2618872.382] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 218) -[2618872.387] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2618872.392] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2618872.401] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2618872.415] {Default Queue} -> wl_buffer#1533.destroy() -[2618872.421] {Default Queue} -> wl_buffer#1534.destroy() -[2618872.425] {Default Queue} -> wl_shm_pool#1531.destroy() -[2618872.430] {Default Queue} -> wl_shm_pool#1532.destroy() -[2618872.477] {Default Queue} -> wl_shm#1519.create_pool(new id wl_shm_pool#3874, fd 575, 160) -[2618872.483] {Default Queue} -> wl_shm#1519.create_pool(new id wl_shm_pool#3875, fd 578, 160) -[2618872.488] {Default Queue} -> wl_shm_pool#3874.create_buffer(new id wl_buffer#3876, 0, 2, 20, 8, 0) -[2618872.492] {Default Queue} -> wl_shm_pool#3875.create_buffer(new id wl_buffer#3877, 0, 2, 20, 8, 0) -[2618872.499] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) -[2618872.503] {Default Queue} -> wl_surface#1511.commit() -[2618872.508] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) -[2618872.512] {Default Queue} -> wl_surface#1511.commit() -[2618872.521] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 218) -[2618872.526] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 218) -[2618872.530] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2618872.534] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2618872.630] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 218) -[2618872.635] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 218) -[2618872.639] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2618872.643] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2618872.649] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2618872.653] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2618872.723] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 218) -[2618872.728] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 218) -[2618872.737] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2618872.743] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2618872.750] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2618872.754] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2618872.759] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) -[2618872.763] {Default Queue} -> wl_surface#1511.commit() -[2618872.769] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) -[2618872.773] {Default Queue} -> wl_surface#1511.commit() -[2618873.844] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) -[2618873.856] {Default Queue} -> wl_surface#1511.commit() -[2618873.875] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 218) -[2618873.881] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 218) -[2618873.891] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2618873.900] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2618873.998] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 218) -[2618874.004] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 218) -[2618874.009] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2618874.013] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2618874.019] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2618874.024] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2618874.088] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 218) -[2618874.093] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 218) -[2618874.098] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2618874.101] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2618874.108] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2618874.112] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2618874.117] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) -[2618874.121] {Default Queue} -> wl_surface#1511.commit() -[2618874.125] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) -[2618874.129] {Default Queue} -> wl_surface#1511.commit() -[2618874.135] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) -[2618874.139] {Default Queue} -> wl_surface#1511.commit() -[2618874.145] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) -[2618874.150] {Default Queue} -> wl_surface#1575.commit() -[2618875.213] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) -[2618875.223] {Default Queue} -> wl_surface#1575.commit() -[2618875.233] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) -[2618875.238] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) -[2618875.243] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.247] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.254] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) -[2618875.258] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) -[2618875.262] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.266] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.271] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) -[2618875.275] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) -[2618875.279] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.282] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.287] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) -[2618875.291] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) -[2618875.295] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.299] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.304] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) -[2618875.308] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) -[2618875.312] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.320] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.372] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) -[2618875.377] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) -[2618875.381] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.385] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.391] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618875.395] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618875.404] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) -[2618875.409] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) -[2618875.413] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.417] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.422] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) -[2618875.426] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) -[2618875.430] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.434] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.438] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) -[2618875.442] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) -[2618875.446] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.450] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.455] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) -[2618875.459] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) -[2618875.463] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.466] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.474] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) -[2618875.478] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) -[2618875.482] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.486] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.491] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) -[2618875.501] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) -[2618875.511] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.518] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.527] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) -[2618875.533] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) -[2618875.539] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.545] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.550] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 201) -[2618875.554] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) -[2618875.559] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.562] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.567] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) -[2618875.572] {Default Queue} -> wl_surface#1575.commit() -[2618875.575] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) -[2618875.579] {Default Queue} -> wl_surface#1575.commit() -[2618875.586] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) -[2618875.590] {Default Queue} -> wl_surface#1575.commit() -[2618875.594] {Default Queue} -> wl_region#1567.subtract(0, 0, 2, 2) -[2618875.600] {Default Queue} -> wl_region#1599.subtract(0, 0, 2, 2) -[2618875.604] {Default Queue} -> wl_subsurface#1594.set_position(1, -11) -[2618875.608] {Default Queue} -> wl_region#1599.subtract(0, 0, 141, 212) -[2618875.612] {Default Queue} -> wl_region#1599.add(-138, -219, 140, 201) -[2618875.616] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.620] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.623] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618875.635] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618875.642] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618875.646] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.650] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.656] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618875.661] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618875.665] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.668] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.673] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618875.677] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618875.681] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.685] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.689] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618875.693] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618875.697] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.701] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.705] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618875.709] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618875.713] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.717] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.761] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618875.767] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618875.772] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.776] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.782] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618875.786] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618875.795] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618875.800] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618875.804] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.808] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.812] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618875.816] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618875.820] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.824] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.829] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618875.833] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618875.837] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.840] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.845] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618875.849] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618875.853] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.857] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.869] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618875.874] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618875.878] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.882] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.886] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618875.890] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618875.894] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.898] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.902] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618875.907] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618875.925] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.937] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.946] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618875.952] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618875.958] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.963] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.969] {Default Queue} -> wl_surface#1575.attach(wl_buffer#1597, 0, 0) -[2618875.973] {Default Queue} -> wl_surface#1575.commit() -[2618875.980] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618875.984] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618875.988] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618875.992] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618875.999] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618876.003] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618876.007] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618876.011] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618876.015] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618876.019] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618876.023] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618876.027] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618876.031] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618876.035] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618876.039] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618876.043] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618876.047] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618876.052] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618876.055] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618876.059] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618876.100] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618876.105] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618876.109] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618876.113] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618876.119] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618876.123] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618876.132] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618876.137] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618876.141] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618876.145] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618876.150] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618876.154] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618876.158] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618876.161] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618876.166] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618876.170] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618876.174] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618876.178] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618876.183] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618876.187] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618876.191] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618876.195] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618876.201] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618876.205] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618876.212] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618876.218] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618876.223] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618876.227] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618876.231] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618876.235] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618876.239] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618876.243] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618876.247] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618876.251] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618876.256] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2618876.260] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2618876.264] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2618876.267] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2618876.271] {Default Queue} -> wl_region#1567.subtract(0, 0, 140, 221) -[2618876.276] {Default Queue} -> wl_region#1567.add(-138, -219, 140, 201) -[2618876.280] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) -[2618876.284] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) -[2618876.288] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618876.291] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) -[2618876.305] {Default Queue} -> wl_buffer#1565.destroy() -[2618876.310] {Default Queue} -> wl_buffer#1566.destroy() -[2618876.315] {Default Queue} -> wl_shm_pool#1563.destroy() -[2618876.319] {Default Queue} -> wl_shm_pool#1564.destroy() -[2618876.360] {Default Queue} -> wl_shm#1551.create_pool(new id wl_shm_pool#3878, fd 575, 16) -[2618876.366] {Default Queue} -> wl_shm#1551.create_pool(new id wl_shm_pool#3879, fd 578, 16) -[2618876.371] {Default Queue} -> wl_shm_pool#3878.create_buffer(new id wl_buffer#3880, 0, 2, 2, 8, 0) -[2618876.375] {Default Queue} -> wl_shm_pool#3879.create_buffer(new id wl_buffer#3881, 0, 2, 2, 8, 0) -[2618876.382] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) -[2618876.386] {Default Queue} -> wl_surface#1543.commit() -[2618876.391] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) -[2618876.395] {Default Queue} -> wl_surface#1543.commit() -[2618876.402] {Default Queue} -> wl_region#1567.subtract(0, 0, 140, 221) -[2618876.406] {Default Queue} -> wl_region#1567.add(-138, -219, 140, 201) -[2618876.410] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) -[2618876.415] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) -[2618876.419] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) -[2618876.423] {Default Queue} -> wl_surface#1543.commit() -[2618876.430] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) -[2618876.434] {Default Queue} -> wl_surface#1543.commit() -[2618877.498] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) -[2618877.504] {Default Queue} -> wl_surface#1543.commit() -[2618877.509] {Default Queue} -> wl_region#1567.subtract(0, 0, 140, 221) -[2618877.514] {Default Queue} -> wl_region#1567.add(-138, -219, 140, 201) -[2618877.519] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) -[2618877.527] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) -[2618877.539] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) -[2618877.546] {Default Queue} -> wl_surface#1543.commit() -[2618877.552] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) -[2618877.558] {Default Queue} -> wl_surface#1543.commit() -[2618877.567] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) -[2618877.573] {Default Queue} -> wl_surface#1543.commit() -[2618877.580] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) -[2618877.585] {Default Queue} -> wl_surface#1479.commit() -[2618878.650] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) -[2618878.666] {Default Queue} -> wl_surface#1479.commit() -[2618878.677] {Default Queue} -> wl_region#1503.subtract(0, 0, 140, 221) -[2618878.682] {Default Queue} -> wl_region#1503.add(-135, -216, 137, 218) -[2618878.686] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) -[2618878.690] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) -[2618878.696] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) -[2618878.700] {Default Queue} -> wl_surface#1479.commit() -[2618878.704] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) -[2618878.708] {Default Queue} -> wl_surface#1479.commit() -[2618878.714] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) -[2618878.718] {Default Queue} -> wl_surface#1479.commit() -[2618878.722] {Default Queue} -> wl_region#1471.subtract(0, 0, 115, 167) -[2618878.728] {Default Queue} -> wl_region#1503.subtract(0, 0, 2, 2) -[2618878.733] {Default Queue} -> wl_subsurface#1498.set_position(3, 3) -[2618878.737] {Default Queue} -> wl_region#1503.subtract(0, 0, 140, 221) -[2618878.741] {Default Queue} -> wl_region#1503.add(-135, -216, 137, 218) -[2618878.745] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) -[2618878.749] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) -[2618878.753] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2618878.757] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618878.761] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) -[2618878.765] {Default Queue} -> wl_surface#1479.damage(0, 0, 2, 2) -[2618878.770] {Default Queue} -> wl_region#1503.subtract(0, 0, 140, 221) -[2618878.774] {Default Queue} -> wl_region#1503.add(-135, -216, 137, 218) -[2618878.778] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) -[2618878.782] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) -[2618878.786] {Default Queue} -> wl_surface#1479.attach(wl_buffer#3700, 0, 0) -[2618878.790] {Default Queue} -> wl_surface#1479.commit() -[2618878.795] {Default Queue} -> wl_region#1503.subtract(0, 0, 247, 380) -[2618878.799] {Default Queue} -> wl_region#1503.add(-135, -216, 244, 377) -[2618878.803] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) -[2618878.807] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) -[2618878.812] {Default Queue} -> wl_region#1471.subtract(0, 0, 137, 218) -[2618878.816] {Default Queue} -> wl_region#1471.add(-20, -216, 22, 218) -[2618878.820] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618878.823] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618878.827] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2618878.832] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618878.836] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) -[2618878.839] {Default Queue} -> wl_surface#1479.damage(0, 0, 109, 161) -[2618878.843] {Default Queue} -> wl_surface#1447.damage(0, 0, 115, 167) -[2618878.860] {Default Queue} -> wl_buffer#1469.destroy() -[2618878.873] {Default Queue} -> wl_buffer#1470.destroy() -[2618878.877] {Default Queue} -> wl_shm_pool#1467.destroy() -[2618878.880] {Default Queue} -> wl_shm_pool#1468.destroy() -[2618878.965] {Default Queue} -> wl_shm#1455.create_pool(new id wl_shm_pool#3882, fd 575, 76820) -[2618878.972] {Default Queue} -> wl_shm#1455.create_pool(new id wl_shm_pool#3883, fd 578, 76820) -[2618878.976] {Default Queue} -> wl_shm_pool#3882.create_buffer(new id wl_buffer#3884, 0, 115, 167, 460, 0) -[2618878.981] {Default Queue} -> wl_shm_pool#3883.create_buffer(new id wl_buffer#3885, 0, 115, 167, 460, 0) -[2618879.004] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) -[2618879.009] {Default Queue} -> wl_surface#1447.commit() -[2618879.031] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) -[2618879.036] {Default Queue} -> wl_surface#1447.commit() -[2618879.044] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) -[2618879.053] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) -[2618879.059] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618879.063] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618879.071] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) -[2618879.075] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) -[2618879.079] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618879.083] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618879.088] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) -[2618879.092] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) -[2618879.096] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618879.100] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618879.105] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) -[2618879.109] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) -[2618879.113] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618879.117] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618879.123] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) -[2618879.128] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) -[2618879.132] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618879.136] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618879.142] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) -[2618879.146] {Default Queue} -> wl_surface#1447.commit() -[2618879.153] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) -[2618879.160] {Default Queue} -> wl_surface#1447.commit() -[2618880.228] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) -[2618880.239] {Default Queue} -> wl_surface#1447.commit() -[2618880.251] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) -[2618880.256] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) -[2618880.260] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618880.265] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618880.272] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) -[2618880.277] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) -[2618880.281] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618880.285] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618880.290] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) -[2618880.294] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) -[2618880.298] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618880.302] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618880.307] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) -[2618880.311] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) -[2618880.316] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618880.320] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618880.326] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) -[2618880.330] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) -[2618880.334] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618880.337] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618880.344] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) -[2618880.348] {Default Queue} -> wl_surface#1447.commit() -[2618880.353] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) -[2618880.358] {Default Queue} -> wl_surface#1447.commit() -[2618880.365] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) -[2618880.370] {Default Queue} -> wl_surface#1447.commit() -[2618880.374] {Default Queue} -> wl_region#1695.subtract(0, 0, 2, 20) -[2618880.378] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 218) -[2618880.383] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 218) -[2618880.391] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2618880.397] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2618880.401] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2618880.415] {Default Queue} -> wl_buffer#1693.destroy() -[2618880.420] {Default Queue} -> wl_buffer#1694.destroy() -[2618880.424] {Default Queue} -> wl_shm_pool#1691.destroy() -[2618880.428] {Default Queue} -> wl_shm_pool#1692.destroy() -[2618880.468] {Default Queue} -> wl_shm#1679.create_pool(new id wl_shm_pool#3886, fd 575, 160) -[2618880.474] {Default Queue} -> wl_shm#1679.create_pool(new id wl_shm_pool#3887, fd 578, 160) -[2618880.479] {Default Queue} -> wl_shm_pool#3886.create_buffer(new id wl_buffer#3888, 0, 2, 20, 8, 0) -[2618880.483] {Default Queue} -> wl_shm_pool#3887.create_buffer(new id wl_buffer#3889, 0, 2, 20, 8, 0) -[2618880.490] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) -[2618880.494] {Default Queue} -> wl_surface#1671.commit() -[2618880.499] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) -[2618880.503] {Default Queue} -> wl_surface#1671.commit() -[2618880.512] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 218) -[2618880.517] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 218) -[2618880.521] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2618880.525] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2618880.585] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 218) -[2618880.590] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 218) -[2618880.594] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2618880.598] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2618880.604] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2618880.608] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2618880.648] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 218) -[2618880.653] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 218) -[2618880.657] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2618880.661] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2618880.667] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2618880.671] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2618880.675] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) -[2618880.679] {Default Queue} -> wl_surface#1671.commit() -[2618880.685] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) -[2618880.690] {Default Queue} -> wl_surface#1671.commit() -[2618881.755] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) -[2618881.772] {Default Queue} -> wl_surface#1671.commit() -[2618881.788] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 218) -[2618881.793] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 218) -[2618881.798] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2618881.802] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2618881.854] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 218) -[2618881.859] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 218) -[2618881.867] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2618881.871] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2618881.877] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2618881.881] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2618881.918] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 218) -[2618881.923] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 218) -[2618881.927] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2618881.931] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2618881.937] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2618881.941] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2618881.946] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) -[2618881.955] {Default Queue} -> wl_surface#1671.commit() -[2618881.962] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) -[2618881.966] {Default Queue} -> wl_surface#1671.commit() -[2618881.972] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) -[2618881.977] {Default Queue} -> wl_surface#1671.commit() -[2618881.987] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) -[2618882.000] {Default Queue} -> wl_surface#1735.commit() -[2618883.068] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) -[2618883.080] {Default Queue} -> wl_surface#1735.commit() -[2618883.091] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 201) -[2618883.097] {Default Queue} -> wl_region#1759.add(-253, -219, 255, 201) -[2618883.101] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618883.105] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618883.114] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 201) -[2618883.120] {Default Queue} -> wl_region#1759.add(-253, -219, 255, 201) -[2618883.124] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618883.128] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618883.133] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 201) -[2618883.137] {Default Queue} -> wl_region#1759.add(-253, -219, 255, 201) -[2618883.141] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618883.145] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618883.150] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 201) -[2618883.154] {Default Queue} -> wl_region#1759.add(-253, -219, 255, 201) -[2618883.158] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618883.162] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618883.166] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 201) -[2618883.170] {Default Queue} -> wl_region#1759.add(-253, -219, 255, 201) -[2618883.174] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618883.178] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618883.192] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) -[2618883.197] {Default Queue} -> wl_surface#1735.commit() -[2618883.201] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) -[2618883.206] {Default Queue} -> wl_surface#1735.commit() -[2618883.212] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) -[2618883.216] {Default Queue} -> wl_surface#1735.commit() -[2618883.220] {Default Queue} -> wl_region#1727.subtract(0, 0, 2, 2) -[2618883.226] {Default Queue} -> wl_region#1759.subtract(0, 0, 2, 2) -[2618883.231] {Default Queue} -> wl_subsurface#1754.set_position(1, -11) -[2618883.235] {Default Queue} -> wl_region#1759.subtract(0, 0, 256, 212) -[2618883.239] {Default Queue} -> wl_region#1759.add(-253, -219, 255, 201) -[2618883.243] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618883.247] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618883.251] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) -[2618883.257] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 232) -[2618883.261] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 221) -[2618883.265] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618883.269] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618883.275] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 232) -[2618883.279] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 221) -[2618883.284] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618883.287] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618883.292] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 232) -[2618883.297] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 221) -[2618883.301] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618883.309] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618883.316] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 232) -[2618883.320] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 221) -[2618883.325] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618883.329] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618883.335] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 232) -[2618883.340] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 221) -[2618883.345] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618883.350] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618883.360] {Default Queue} -> wl_surface#1735.attach(wl_buffer#1757, 0, 0) -[2618883.365] {Default Queue} -> wl_surface#1735.commit() -[2618883.371] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 232) -[2618883.376] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 221) -[2618883.379] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618883.383] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618883.390] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 232) -[2618883.394] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 221) -[2618883.398] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618883.402] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618883.407] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 232) -[2618883.411] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 221) -[2618883.416] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618883.421] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618883.427] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 232) -[2618883.432] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 221) -[2618883.437] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618883.442] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618883.448] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 232) -[2618883.453] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 221) -[2618883.458] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2618883.462] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2618883.469] {Default Queue} -> wl_region#1727.subtract(0, 0, 255, 221) -[2618883.474] {Default Queue} -> wl_region#1727.add(-253, -219, 255, 201) -[2618883.478] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) -[2618883.482] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) -[2618883.486] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) -[2618883.490] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) -[2618883.502] {Default Queue} -> wl_buffer#1725.destroy() -[2618883.508] {Default Queue} -> wl_buffer#1726.destroy() -[2618883.512] {Default Queue} -> wl_shm_pool#1723.destroy() -[2618883.516] {Default Queue} -> wl_shm_pool#1724.destroy() -[2618883.557] {Default Queue} -> wl_shm#1711.create_pool(new id wl_shm_pool#3890, fd 575, 16) -[2618883.564] {Default Queue} -> wl_shm#1711.create_pool(new id wl_shm_pool#3891, fd 578, 16) -[2618883.568] {Default Queue} -> wl_shm_pool#3890.create_buffer(new id wl_buffer#3892, 0, 2, 2, 8, 0) -[2618883.572] {Default Queue} -> wl_shm_pool#3891.create_buffer(new id wl_buffer#3893, 0, 2, 2, 8, 0) -[2618883.579] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) -[2618883.583] {Default Queue} -> wl_surface#1703.commit() -[2618883.588] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) -[2618883.592] {Default Queue} -> wl_surface#1703.commit() -[2618883.601] {Default Queue} -> wl_region#1727.subtract(0, 0, 255, 221) -[2618883.614] {Default Queue} -> wl_region#1727.add(-253, -219, 255, 201) -[2618883.621] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) -[2618883.628] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) -[2618883.643] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) -[2618883.653] {Default Queue} -> wl_surface#1703.commit() -[2618883.660] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) -[2618883.666] {Default Queue} -> wl_surface#1703.commit() -[2618884.736] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) -[2618884.749] {Default Queue} -> wl_surface#1703.commit() -[2618884.759] {Default Queue} -> wl_region#1727.subtract(0, 0, 255, 221) -[2618884.764] {Default Queue} -> wl_region#1727.add(-253, -219, 255, 201) -[2618884.768] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) -[2618884.773] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) -[2618884.778] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) -[2618884.783] {Default Queue} -> wl_surface#1703.commit() -[2618884.787] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) -[2618884.792] {Default Queue} -> wl_surface#1703.commit() -[2618884.800] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) -[2618884.804] {Default Queue} -> wl_surface#1703.commit() -[2618884.810] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) -[2618884.814] {Default Queue} -> wl_surface#1639.commit() -[2618885.870] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) -[2618885.883] {Default Queue} -> wl_surface#1639.commit() -[2618885.892] {Default Queue} -> wl_region#1663.subtract(0, 0, 255, 221) -[2618885.897] {Default Queue} -> wl_region#1663.add(-250, -216, 252, 218) -[2618885.902] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) -[2618885.906] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) -[2618885.912] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) -[2618885.916] {Default Queue} -> wl_surface#1639.commit() -[2618885.920] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) -[2618885.925] {Default Queue} -> wl_surface#1639.commit() -[2618885.932] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) -[2618885.935] {Default Queue} -> wl_surface#1639.commit() -[2618885.940] {Default Queue} -> wl_region#1631.subtract(0, 0, 115, 167) -[2618885.946] {Default Queue} -> wl_region#1663.subtract(0, 0, 2, 2) -[2618885.951] {Default Queue} -> wl_subsurface#1658.set_position(3, 3) -[2618885.955] {Default Queue} -> wl_region#1663.subtract(0, 0, 255, 221) -[2618885.959] {Default Queue} -> wl_region#1663.add(-250, -216, 252, 218) -[2618885.963] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) -[2618885.967] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) -[2618885.971] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2618885.975] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) -[2618885.979] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) -[2618885.983] {Default Queue} -> wl_surface#1639.damage(0, 0, 2, 2) -[2618885.988] {Default Queue} -> wl_region#1663.subtract(0, 0, 255, 221) -[2618885.993] {Default Queue} -> wl_region#1663.add(-250, -216, 252, 218) -[2618885.996] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) -[2618886.000] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) -[2618886.007] {Default Queue} -> wl_surface#1639.attach(wl_buffer#3704, 0, 0) -[2618886.011] {Default Queue} -> wl_surface#1639.commit() -[2618886.016] {Default Queue} -> wl_region#1663.subtract(0, 0, 362, 380) -[2618886.020] {Default Queue} -> wl_region#1663.add(-250, -216, 359, 377) -[2618886.024] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) -[2618886.028] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) -[2618886.032] {Default Queue} -> wl_region#1631.subtract(0, 0, 252, 218) -[2618886.036] {Default Queue} -> wl_region#1631.add(-20, -216, 22, 218) -[2618886.041] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618886.045] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618886.048] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2618886.057] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) -[2618886.064] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) -[2618886.068] {Default Queue} -> wl_surface#1639.damage(0, 0, 109, 161) -[2618886.072] {Default Queue} -> wl_surface#1607.damage(0, 0, 115, 167) -[2618886.086] {Default Queue} -> wl_buffer#1629.destroy() -[2618886.092] {Default Queue} -> wl_buffer#1630.destroy() -[2618886.096] {Default Queue} -> wl_shm_pool#1627.destroy() -[2618886.100] {Default Queue} -> wl_shm_pool#1628.destroy() -[2618886.187] {Default Queue} -> wl_shm#1615.create_pool(new id wl_shm_pool#3894, fd 575, 76820) -[2618886.194] {Default Queue} -> wl_shm#1615.create_pool(new id wl_shm_pool#3895, fd 578, 76820) -[2618886.199] {Default Queue} -> wl_shm_pool#3894.create_buffer(new id wl_buffer#3896, 0, 115, 167, 460, 0) -[2618886.203] {Default Queue} -> wl_shm_pool#3895.create_buffer(new id wl_buffer#3897, 0, 115, 167, 460, 0) -[2618886.226] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) -[2618886.231] {Default Queue} -> wl_surface#1607.commit() -[2618886.253] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) -[2618886.259] {Default Queue} -> wl_surface#1607.commit() -[2618886.268] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) -[2618886.272] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) -[2618886.276] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618886.280] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618886.288] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) -[2618886.292] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) -[2618886.296] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618886.300] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618886.306] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) -[2618886.310] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) -[2618886.314] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618886.318] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618886.324] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) -[2618886.328] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) -[2618886.332] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618886.336] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618886.342] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) -[2618886.346] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) -[2618886.350] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618886.354] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618886.360] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) -[2618886.365] {Default Queue} -> wl_surface#1607.commit() -[2618886.372] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) -[2618886.376] {Default Queue} -> wl_surface#1607.commit() -[2618887.447] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) -[2618887.461] {Default Queue} -> wl_surface#1607.commit() -[2618887.474] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) -[2618887.480] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) -[2618887.485] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618887.489] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618887.497] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) -[2618887.501] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) -[2618887.505] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618887.509] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618887.514] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) -[2618887.519] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) -[2618887.523] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618887.531] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618887.540] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) -[2618887.544] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) -[2618887.548] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618887.552] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618887.558] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) -[2618887.562] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) -[2618887.566] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618887.570] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618887.577] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) -[2618887.582] {Default Queue} -> wl_surface#1607.commit() -[2618887.587] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) -[2618887.591] {Default Queue} -> wl_surface#1607.commit() -[2618887.599] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) -[2618887.603] {Default Queue} -> wl_surface#1607.commit() -[2618887.608] {Default Queue} -> wl_region#1855.subtract(0, 0, 2, 20) -[2618887.613] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 218) -[2618887.617] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 218) -[2618887.622] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2618887.625] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2618887.629] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2618887.646] {Default Queue} -> wl_buffer#1853.destroy() -[2618887.651] {Default Queue} -> wl_buffer#1854.destroy() -[2618887.656] {Default Queue} -> wl_shm_pool#1851.destroy() -[2618887.660] {Default Queue} -> wl_shm_pool#1852.destroy() -[2618887.704] {Default Queue} -> wl_shm#1839.create_pool(new id wl_shm_pool#3898, fd 575, 160) -[2618887.710] {Default Queue} -> wl_shm#1839.create_pool(new id wl_shm_pool#3899, fd 578, 160) -[2618887.716] {Default Queue} -> wl_shm_pool#3898.create_buffer(new id wl_buffer#3900, 0, 2, 20, 8, 0) -[2618887.721] {Default Queue} -> wl_shm_pool#3899.create_buffer(new id wl_buffer#3901, 0, 2, 20, 8, 0) -[2618887.727] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) -[2618887.732] {Default Queue} -> wl_surface#1831.commit() -[2618887.737] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) -[2618887.741] {Default Queue} -> wl_surface#1831.commit() -[2618887.750] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 218) -[2618887.755] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 218) -[2618887.759] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2618887.763] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2618887.839] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 218) -[2618887.844] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 218) -[2618887.848] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2618887.852] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2618887.858] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2618887.863] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2618887.919] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 218) -[2618887.925] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 218) -[2618887.929] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2618887.932] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2618887.939] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2618887.943] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2618887.948] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) -[2618887.952] {Default Queue} -> wl_surface#1831.commit() -[2618887.958] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) -[2618887.962] {Default Queue} -> wl_surface#1831.commit() -[2618889.031] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) -[2618889.048] {Default Queue} -> wl_surface#1831.commit() -[2618889.062] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 218) -[2618889.067] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 218) -[2618889.072] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2618889.076] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2618889.151] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 218) -[2618889.156] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 218) -[2618889.161] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2618889.165] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2618889.170] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2618889.174] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2618889.224] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 218) -[2618889.229] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 218) -[2618889.233] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2618889.237] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2618889.243] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2618889.247] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2618889.252] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) -[2618889.256] {Default Queue} -> wl_surface#1831.commit() -[2618889.261] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) -[2618889.265] {Default Queue} -> wl_surface#1831.commit() -[2618889.271] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) -[2618889.275] {Default Queue} -> wl_surface#1831.commit() -[2618889.282] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) -[2618889.286] {Default Queue} -> wl_surface#1895.commit() -[2618890.350] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) -[2618890.363] {Default Queue} -> wl_surface#1895.commit() -[2618890.374] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 201) -[2618890.379] {Default Queue} -> wl_region#1919.add(-368, -219, 370, 201) -[2618890.383] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) -[2618890.388] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) -[2618890.395] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 201) -[2618890.399] {Default Queue} -> wl_region#1919.add(-368, -219, 370, 201) -[2618890.403] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) -[2618890.407] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) -[2618890.416] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618890.421] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618890.425] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) -[2618890.429] {Default Queue} -> wl_surface#1895.commit() -[2618890.433] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) -[2618890.437] {Default Queue} -> wl_surface#1895.commit() -[2618890.444] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) -[2618890.448] {Default Queue} -> wl_surface#1895.commit() -[2618890.452] {Default Queue} -> wl_region#1887.subtract(0, 0, 2, 2) -[2618890.458] {Default Queue} -> wl_region#1919.subtract(0, 0, 2, 2) -[2618890.462] {Default Queue} -> wl_subsurface#1914.set_position(1, 1) -[2618890.466] {Default Queue} -> wl_region#1919.subtract(0, 0, 371, 202) -[2618890.470] {Default Queue} -> wl_region#1919.add(-368, -219, 370, 201) -[2618890.474] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) -[2618890.478] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) -[2618890.482] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618890.487] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 221) -[2618890.491] {Default Queue} -> wl_region#1919.add(-368, -239, 369, 220) -[2618890.495] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) -[2618890.499] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) -[2618890.504] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 221) -[2618890.512] {Default Queue} -> wl_region#1919.add(-368, -239, 369, 220) -[2618890.519] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) -[2618890.523] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) -[2618890.529] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618890.533] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618890.537] {Default Queue} -> wl_surface#1895.attach(wl_buffer#1917, 0, 0) -[2618890.541] {Default Queue} -> wl_surface#1895.commit() -[2618890.546] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 221) -[2618890.550] {Default Queue} -> wl_region#1919.add(-368, -239, 369, 220) -[2618890.554] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) -[2618890.558] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) -[2618890.562] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 221) -[2618890.566] {Default Queue} -> wl_region#1919.add(-368, -239, 369, 220) -[2618890.570] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) -[2618890.574] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) -[2618890.579] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618890.583] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618890.587] {Default Queue} -> wl_region#1887.subtract(0, 0, 370, 221) -[2618890.591] {Default Queue} -> wl_region#1887.add(-368, -219, 370, 201) -[2618890.595] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) -[2618890.599] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) -[2618890.603] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618890.607] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) -[2618890.622] {Default Queue} -> wl_buffer#1885.destroy() -[2618890.627] {Default Queue} -> wl_buffer#1886.destroy() -[2618890.631] {Default Queue} -> wl_shm_pool#1883.destroy() -[2618890.635] {Default Queue} -> wl_shm_pool#1884.destroy() -[2618890.677] {Default Queue} -> wl_shm#1871.create_pool(new id wl_shm_pool#3902, fd 575, 16) -[2618890.683] {Default Queue} -> wl_shm#1871.create_pool(new id wl_shm_pool#3903, fd 578, 16) -[2618890.688] {Default Queue} -> wl_shm_pool#3902.create_buffer(new id wl_buffer#3904, 0, 2, 2, 8, 0) -[2618890.692] {Default Queue} -> wl_shm_pool#3903.create_buffer(new id wl_buffer#3905, 0, 2, 2, 8, 0) -[2618890.699] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) -[2618890.703] {Default Queue} -> wl_surface#1863.commit() -[2618890.708] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) -[2618890.712] {Default Queue} -> wl_surface#1863.commit() -[2618890.719] {Default Queue} -> wl_region#1887.subtract(0, 0, 370, 221) -[2618890.726] {Default Queue} -> wl_region#1887.add(-368, -219, 370, 201) -[2618890.730] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) -[2618890.734] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) -[2618890.739] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) -[2618890.743] {Default Queue} -> wl_surface#1863.commit() -[2618890.749] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) -[2618890.753] {Default Queue} -> wl_surface#1863.commit() -[2618891.820] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) -[2618891.832] {Default Queue} -> wl_surface#1863.commit() -[2618891.842] {Default Queue} -> wl_region#1887.subtract(0, 0, 370, 221) -[2618891.849] {Default Queue} -> wl_region#1887.add(-368, -219, 370, 201) -[2618891.853] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) -[2618891.857] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) -[2618891.868] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) -[2618891.872] {Default Queue} -> wl_surface#1863.commit() -[2618891.876] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) -[2618891.880] {Default Queue} -> wl_surface#1863.commit() -[2618891.886] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) -[2618891.896] {Default Queue} -> wl_surface#1863.commit() -[2618891.905] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) -[2618891.910] {Default Queue} -> wl_surface#1799.commit() -[2618892.976] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) -[2618892.989] {Default Queue} -> wl_surface#1799.commit() -[2618892.999] {Default Queue} -> wl_region#1823.subtract(0, 0, 370, 221) -[2618893.006] {Default Queue} -> wl_region#1823.add(-365, -216, 367, 218) -[2618893.010] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) -[2618893.014] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) -[2618893.021] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) -[2618893.025] {Default Queue} -> wl_surface#1799.commit() -[2618893.029] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) -[2618893.033] {Default Queue} -> wl_surface#1799.commit() -[2618893.039] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) -[2618893.043] {Default Queue} -> wl_surface#1799.commit() -[2618893.047] {Default Queue} -> wl_region#1791.subtract(0, 0, 115, 167) -[2618893.054] {Default Queue} -> wl_region#1823.subtract(0, 0, 2, 2) -[2618893.058] {Default Queue} -> wl_subsurface#1818.set_position(3, 3) -[2618893.062] {Default Queue} -> wl_region#1823.subtract(0, 0, 370, 221) -[2618893.065] {Default Queue} -> wl_region#1823.add(-365, -216, 367, 218) -[2618893.069] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) -[2618893.073] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) -[2618893.077] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2618893.081] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618893.085] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) -[2618893.089] {Default Queue} -> wl_surface#1799.damage(0, 0, 2, 2) -[2618893.094] {Default Queue} -> wl_region#1823.subtract(0, 0, 370, 221) -[2618893.098] {Default Queue} -> wl_region#1823.add(-365, -216, 367, 218) -[2618893.102] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) -[2618893.106] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) -[2618893.110] {Default Queue} -> wl_surface#1799.attach(wl_buffer#3708, 0, 0) -[2618893.114] {Default Queue} -> wl_surface#1799.commit() -[2618893.119] {Default Queue} -> wl_region#1823.subtract(0, 0, 477, 380) -[2618893.124] {Default Queue} -> wl_region#1823.add(-365, -216, 474, 377) -[2618893.128] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) -[2618893.131] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) -[2618893.136] {Default Queue} -> wl_region#1791.subtract(0, 0, 367, 218) -[2618893.140] {Default Queue} -> wl_region#1791.add(-20, -216, 22, 218) -[2618893.144] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618893.148] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618893.152] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2618893.156] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618893.160] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) -[2618893.164] {Default Queue} -> wl_surface#1799.damage(0, 0, 109, 161) -[2618893.168] {Default Queue} -> wl_surface#1772.damage(0, 0, 115, 167) -[2618893.182] {Default Queue} -> wl_buffer#1789.destroy() -[2618893.188] {Default Queue} -> wl_buffer#1790.destroy() -[2618893.192] {Default Queue} -> wl_shm_pool#1787.destroy() -[2618893.196] {Default Queue} -> wl_shm_pool#1788.destroy() -[2618893.286] {Default Queue} -> wl_shm#1775.create_pool(new id wl_shm_pool#3906, fd 575, 76820) -[2618893.293] {Default Queue} -> wl_shm#1775.create_pool(new id wl_shm_pool#3907, fd 578, 76820) -[2618893.298] {Default Queue} -> wl_shm_pool#3906.create_buffer(new id wl_buffer#3908, 0, 115, 167, 460, 0) -[2618893.303] {Default Queue} -> wl_shm_pool#3907.create_buffer(new id wl_buffer#3909, 0, 115, 167, 460, 0) -[2618893.325] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) -[2618893.331] {Default Queue} -> wl_surface#1772.commit() -[2618893.356] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) -[2618893.363] {Default Queue} -> wl_surface#1772.commit() -[2618893.373] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) -[2618893.377] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) -[2618893.382] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618893.386] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618893.394] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) -[2618893.398] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) -[2618893.402] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618893.407] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618893.413] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) -[2618893.416] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) -[2618893.421] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618893.425] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618893.430] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) -[2618893.434] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) -[2618893.439] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618893.442] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618893.449] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) -[2618893.453] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) -[2618893.457] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618893.461] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618893.468] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) -[2618893.472] {Default Queue} -> wl_surface#1772.commit() -[2618893.479] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) -[2618893.483] {Default Queue} -> wl_surface#1772.commit() -[2618894.552] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) -[2618894.565] {Default Queue} -> wl_surface#1772.commit() -[2618894.579] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) -[2618894.591] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) -[2618894.598] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618894.602] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618894.611] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) -[2618894.617] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) -[2618894.621] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618894.625] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618894.630] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) -[2618894.635] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) -[2618894.639] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618894.643] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618894.648] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) -[2618894.652] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) -[2618894.656] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618894.660] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618894.667] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) -[2618894.671] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) -[2618894.676] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618894.680] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618894.687] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) -[2618894.691] {Default Queue} -> wl_surface#1772.commit() -[2618894.696] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) -[2618894.701] {Default Queue} -> wl_surface#1772.commit() -[2618894.708] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) -[2618894.713] {Default Queue} -> wl_surface#1772.commit() -[2618894.723] {Default Queue} -> wl_region#2015.subtract(0, 0, 2, 20) -[2618894.729] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 218) -[2618894.734] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 218) -[2618894.738] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2618894.742] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2618894.746] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2618894.759] {Default Queue} -> wl_buffer#2013.destroy() -[2618894.764] {Default Queue} -> wl_buffer#2014.destroy() -[2618894.768] {Default Queue} -> wl_shm_pool#2011.destroy() -[2618894.772] {Default Queue} -> wl_shm_pool#2012.destroy() -[2618894.813] {Default Queue} -> wl_shm#1999.create_pool(new id wl_shm_pool#3910, fd 575, 160) -[2618894.822] {Default Queue} -> wl_shm#1999.create_pool(new id wl_shm_pool#3911, fd 578, 160) -[2618894.826] {Default Queue} -> wl_shm_pool#3910.create_buffer(new id wl_buffer#3912, 0, 2, 20, 8, 0) -[2618894.831] {Default Queue} -> wl_shm_pool#3911.create_buffer(new id wl_buffer#3913, 0, 2, 20, 8, 0) -[2618894.838] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) -[2618894.842] {Default Queue} -> wl_surface#1991.commit() -[2618894.847] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) -[2618894.851] {Default Queue} -> wl_surface#1991.commit() -[2618894.866] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 218) -[2618894.871] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 218) -[2618894.875] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2618894.879] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2618894.941] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 218) -[2618894.947] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 218) -[2618894.951] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2618894.955] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2618894.961] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2618894.965] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2618895.006] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 218) -[2618895.011] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 218) -[2618895.015] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2618895.019] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2618895.025] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2618895.029] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2618895.034] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) -[2618895.038] {Default Queue} -> wl_surface#1991.commit() -[2618895.044] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) -[2618895.048] {Default Queue} -> wl_surface#1991.commit() -[2618896.115] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) -[2618896.129] {Default Queue} -> wl_surface#1991.commit() -[2618896.141] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 218) -[2618896.145] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 218) -[2618896.150] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2618896.154] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2618896.210] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 218) -[2618896.215] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 218) -[2618896.219] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2618896.223] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2618896.229] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2618896.233] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2618896.271] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 218) -[2618896.276] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 218) -[2618896.280] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2618896.283] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2618896.294] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2618896.300] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2618896.305] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) -[2618896.309] {Default Queue} -> wl_surface#1991.commit() -[2618896.313] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) -[2618896.317] {Default Queue} -> wl_surface#1991.commit() -[2618896.324] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) -[2618896.328] {Default Queue} -> wl_surface#1991.commit() -[2618896.334] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) -[2618896.338] {Default Queue} -> wl_surface#2055.commit() -[2618896.692] {Display Queue} wl_display#1.delete_id(3518) -[2618896.716] {Display Queue} wl_display#1.delete_id(3451) -[2618896.723] {Display Queue} wl_display#1.delete_id(3454) -[2618896.730] {Display Queue} wl_display#1.delete_id(3517) -[2618896.735] {Display Queue} wl_display#1.delete_id(3452) -[2618896.741] {Display Queue} wl_display#1.delete_id(3294) -[2618896.746] {Display Queue} wl_display#1.delete_id(3293) -[2618896.752] {Display Queue} wl_display#1.delete_id(3292) -[2618896.757] {Display Queue} wl_display#1.delete_id(3291) -[2618896.763] {Display Queue} wl_display#1.delete_id(3484) -[2618896.768] {Display Queue} wl_display#1.delete_id(3671) -[2618896.774] {Display Queue} wl_display#1.delete_id(3681) -[2618896.780] {Display Queue} wl_display#1.delete_id(3684) -[2618896.785] {Display Queue} wl_display#1.delete_id(3679) -[2618896.791] {Display Queue} wl_display#1.delete_id(3682) -[2618896.796] {Display Queue} wl_display#1.delete_id(2506) -[2618896.802] {Display Queue} wl_display#1.delete_id(2505) -[2618896.807] {Display Queue} wl_display#1.delete_id(2504) -[2618896.812] {Display Queue} wl_display#1.delete_id(2503) -[2618896.818] {Display Queue} wl_display#1.delete_id(2502) -[2618896.823] {Display Queue} wl_display#1.delete_id(3674) -[2618896.829] {Display Queue} wl_display#1.delete_id(3678) -[2618896.834] {Display Queue} wl_display#1.delete_id(3677) -[2618896.840] {Display Queue} wl_display#1.delete_id(3676) -[2618896.845] {Display Queue} wl_display#1.delete_id(3675) -[2618896.851] {Display Queue} wl_display#1.delete_id(3485) -[2618896.856] {Display Queue} wl_display#1.delete_id(3516) -[2618896.869] {Display Queue} wl_display#1.delete_id(3483) -[2618896.875] {Display Queue} wl_display#1.delete_id(3486) -[2618896.880] {Display Queue} wl_display#1.delete_id(3515) -[2618896.886] {Display Queue} wl_display#1.delete_id(93) -[2618896.891] {Display Queue} wl_display#1.delete_id(94) -[2618896.897] {Display Queue} wl_display#1.delete_id(91) -[2618896.902] {Display Queue} wl_display#1.delete_id(92) -[2618896.907] {Display Queue} wl_display#1.delete_id(3683) -[2618896.913] {Display Queue} wl_display#1.delete_id(3419) -[2618896.918] {Display Queue} wl_display#1.delete_id(3422) -[2618896.924] {Display Queue} wl_display#1.delete_id(3453) -[2618896.929] {Display Queue} wl_display#1.delete_id(3420) -[2618896.935] {Display Queue} wl_display#1.delete_id(3421) -[2618896.940] {Display Queue} wl_display#1.delete_id(221) -[2618896.946] {Display Queue} wl_display#1.delete_id(222) -[2618896.951] {Display Queue} wl_display#1.delete_id(219) -[2618896.956] {Display Queue} wl_display#1.delete_id(220) -[2618896.962] {Display Queue} wl_display#1.delete_id(253) -[2618896.967] {Display Queue} wl_display#1.delete_id(254) -[2618896.973] {Display Queue} wl_display#1.delete_id(251) -[2618896.978] {Display Queue} wl_display#1.delete_id(252) -[2618896.984] {Display Queue} wl_display#1.delete_id(3070) -[2618896.989] {Display Queue} wl_display#1.delete_id(3069) -[2618896.994] {Display Queue} wl_display#1.delete_id(3068) -[2618897.000] {Display Queue} wl_display#1.delete_id(3067) -[2618897.005] {Display Queue} wl_display#1.delete_id(3228) -[2618897.011] {Display Queue} wl_display#1.delete_id(157) -[2618897.017] {Display Queue} wl_display#1.delete_id(158) -[2618897.022] {Display Queue} wl_display#1.delete_id(155) -[2618897.027] {Display Queue} wl_display#1.delete_id(156) -[2618897.041] {Display Queue} wl_display#1.delete_id(317) -[2618897.053] {Display Queue} wl_display#1.delete_id(318) -[2618897.058] {Display Queue} wl_display#1.delete_id(315) -[2618897.064] {Display Queue} wl_display#1.delete_id(316) -[2618897.069] {Display Queue} wl_display#1.delete_id(2717) -[2618897.075] {Display Queue} wl_display#1.delete_id(2556) -[2618897.080] {Display Queue} wl_display#1.delete_id(2715) -[2618897.086] {Display Queue} wl_display#1.delete_id(2718) -[2618897.091] {Display Queue} wl_display#1.delete_id(2555) -[2618897.097] {Display Queue} wl_display#1.delete_id(413) -[2618897.102] {Display Queue} wl_display#1.delete_id(414) -[2618897.107] {Display Queue} wl_display#1.delete_id(411) -[2618897.113] {Display Queue} wl_display#1.delete_id(412) -[2618897.118] {Display Queue} wl_display#1.delete_id(541) -[2618897.124] {Display Queue} wl_display#1.delete_id(542) -[2618897.129] {Display Queue} wl_display#1.delete_id(539) -[2618897.135] {Display Queue} wl_display#1.delete_id(540) -[2618897.140] {Display Queue} wl_display#1.delete_id(573) -[2618897.145] {Display Queue} wl_display#1.delete_id(574) -[2618897.151] {Display Queue} wl_display#1.delete_id(571) -[2618897.156] {Display Queue} wl_display#1.delete_id(572) -[2618897.162] {Display Queue} wl_display#1.delete_id(605) -[2618897.167] {Display Queue} wl_display#1.delete_id(606) -[2618897.172] {Display Queue} wl_display#1.delete_id(603) -[2618897.178] {Display Queue} wl_display#1.delete_id(604) -[2618897.183] {Display Queue} wl_display#1.delete_id(637) -[2618897.188] {Display Queue} wl_display#1.delete_id(638) -[2618897.194] {Display Queue} wl_display#1.delete_id(635) -[2618897.199] {Display Queue} wl_display#1.delete_id(636) -[2618897.205] {Display Queue} wl_display#1.delete_id(669) -[2618897.210] {Display Queue} wl_display#1.delete_id(670) -[2618897.216] {Display Queue} wl_display#1.delete_id(667) -[2618897.221] {Display Queue} wl_display#1.delete_id(668) -[2618897.227] {Display Queue} wl_display#1.delete_id(509) -[2618897.232] {Display Queue} wl_display#1.delete_id(510) -[2618897.237] {Display Queue} wl_display#1.delete_id(507) -[2618897.243] {Display Queue} wl_display#1.delete_id(508) -[2618897.248] {Display Queue} wl_display#1.delete_id(733) -[2618897.254] {Display Queue} wl_display#1.delete_id(734) -[2618897.259] {Display Queue} wl_display#1.delete_id(731) -[2618897.264] {Display Queue} wl_display#1.delete_id(732) -[2618897.270] {Display Queue} wl_display#1.delete_id(765) -[2618897.275] {Display Queue} wl_display#1.delete_id(766) -[2618897.281] {Display Queue} wl_display#1.delete_id(763) -[2618897.286] {Display Queue} wl_display#1.delete_id(764) -[2618897.291] {Display Queue} wl_display#1.delete_id(2332) -[2618897.297] {Display Queue} wl_display#1.delete_id(2331) -[2618897.302] {Display Queue} wl_display#1.delete_id(2174) -[2618897.308] {Display Queue} wl_display#1.delete_id(2173) -[2618897.313] {Display Queue} wl_display#1.delete_id(2334) -[2618897.319] {Display Queue} wl_display#1.delete_id(797) -[2618897.324] {Display Queue} wl_display#1.delete_id(798) -[2618897.329] {Display Queue} wl_display#1.delete_id(795) -[2618897.335] {Display Queue} wl_display#1.delete_id(796) -[2618897.340] {Display Queue} wl_display#1.delete_id(829) -[2618897.346] {Display Queue} wl_display#1.delete_id(830) -[2618897.351] {Display Queue} wl_display#1.delete_id(827) -[2618897.357] {Display Queue} wl_display#1.delete_id(828) -[2618897.362] {Display Queue} wl_display#1.delete_id(861) -[2618897.368] {Display Queue} wl_display#1.delete_id(862) -[2618897.373] {Display Queue} wl_display#1.delete_id(859) -[2618897.379] {Display Queue} wl_display#1.delete_id(860) -[2618897.384] {Display Queue} wl_display#1.delete_id(701) -[2618897.390] {Display Queue} wl_display#1.delete_id(702) -[2618897.395] {Display Queue} wl_display#1.delete_id(699) -[2618897.401] {Display Queue} wl_display#1.delete_id(700) -[2618897.406] {Display Queue} wl_display#1.delete_id(445) -[2618897.411] {Display Queue} wl_display#1.delete_id(446) -[2618897.417] {Display Queue} wl_display#1.delete_id(443) -[2618897.422] {Display Queue} wl_display#1.delete_id(444) -[2618897.426] {Display Queue} wl_display#1.delete_id(349) -[2618897.442] {Display Queue} wl_display#1.delete_id(350) -[2618897.447] {Display Queue} wl_display#1.delete_id(347) -[2618897.450] {Display Queue} wl_display#1.delete_id(348) -[2618897.454] {Display Queue} wl_display#1.delete_id(125) -[2618897.458] {Display Queue} wl_display#1.delete_id(126) -[2618897.461] {Display Queue} wl_display#1.delete_id(123) -[2618897.465] {Display Queue} wl_display#1.delete_id(124) -[2618897.469] {Display Queue} wl_display#1.delete_id(989) -[2618897.472] {Display Queue} wl_display#1.delete_id(990) -[2618897.476] {Display Queue} wl_display#1.delete_id(987) -[2618897.480] {Display Queue} wl_display#1.delete_id(988) -[2618897.483] {Display Queue} wl_display#1.delete_id(1117) -[2618897.487] {Display Queue} wl_display#1.delete_id(1118) -[2618897.490] {Display Queue} wl_display#1.delete_id(1115) -[2618897.494] {Display Queue} wl_display#1.delete_id(1116) -[2618897.498] {Display Queue} wl_display#1.delete_id(1149) -[2618897.501] {Display Queue} wl_display#1.delete_id(1150) -[2618897.505] {Display Queue} wl_display#1.delete_id(1147) -[2618897.509] {Display Queue} wl_display#1.delete_id(1148) -[2618897.512] {Display Queue} wl_display#1.delete_id(1181) -[2618897.516] {Display Queue} wl_display#1.delete_id(1182) -[2618897.520] {Display Queue} wl_display#1.delete_id(1179) -[2618897.523] {Display Queue} wl_display#1.delete_id(1180) -[2618897.527] {Display Queue} wl_display#1.delete_id(1213) -[2618897.531] {Display Queue} wl_display#1.delete_id(1214) -[2618897.535] {Display Queue} wl_display#1.delete_id(1211) -[2618897.538] {Display Queue} wl_display#1.delete_id(1212) -[2618897.542] {Display Queue} wl_display#1.delete_id(1245) -[2618897.546] {Display Queue} wl_display#1.delete_id(1246) -[2618897.549] {Display Queue} wl_display#1.delete_id(1243) -[2618897.553] {Display Queue} wl_display#1.delete_id(1244) -[2618897.556] {Display Queue} wl_display#1.delete_id(1085) -[2618897.560] {Display Queue} wl_display#1.delete_id(1086) -[2618897.564] {Display Queue} wl_display#1.delete_id(1083) -[2618897.567] {Display Queue} wl_display#1.delete_id(1084) -[2618897.571] {Display Queue} wl_display#1.delete_id(1309) -[2618897.574] {Display Queue} wl_display#1.delete_id(1310) -[2618897.578] {Display Queue} wl_display#1.delete_id(1307) -[2618897.582] {Display Queue} wl_display#1.delete_id(1308) -[2618897.585] {Display Queue} wl_display#1.delete_id(1341) -[2618897.589] {Display Queue} wl_display#1.delete_id(1342) -[2618897.593] {Display Queue} wl_display#1.delete_id(1339) -[2618897.596] {Display Queue} wl_display#1.delete_id(1340) -[2618897.600] {Display Queue} wl_display#1.delete_id(1373) -[2618897.604] {Display Queue} wl_display#1.delete_id(1374) -[2618897.607] {Display Queue} wl_display#1.delete_id(1371) -[2618897.611] {Display Queue} wl_display#1.delete_id(1372) -[2618897.614] {Display Queue} wl_display#1.delete_id(1405) -[2618897.618] {Display Queue} wl_display#1.delete_id(1406) -[2618897.622] {Display Queue} wl_display#1.delete_id(1403) -[2618897.626] {Display Queue} wl_display#1.delete_id(1404) -[2618897.629] {Display Queue} wl_display#1.delete_id(1437) -[2618897.633] {Display Queue} wl_display#1.delete_id(1438) -[2618897.636] {Display Queue} wl_display#1.delete_id(1435) -[2618897.640] {Display Queue} wl_display#1.delete_id(1436) -[2618897.644] {Display Queue} wl_display#1.delete_id(1277) -[2618897.647] {Display Queue} wl_display#1.delete_id(1278) -[2618897.651] {Display Queue} wl_display#1.delete_id(1275) -[2618897.655] {Display Queue} wl_display#1.delete_id(1276) -[2618897.658] {Display Queue} wl_display#1.delete_id(1021) -[2618897.662] {Display Queue} wl_display#1.delete_id(1022) -[2618897.666] {Display Queue} wl_display#1.delete_id(1019) -[2618897.670] {Display Queue} wl_display#1.delete_id(1020) -[2618897.673] {Default Queue} wl_pointer#24.motion(187310531, 29.00000000, 15.00000000) -[2618897.681] {Default Queue} wl_pointer#81.motion(187310531, 29.00000000, 15.00000000) -[2618897.688] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618897.694] {Default Queue} wl_pointer#105.motion(187310531, 29.00000000, 15.00000000) -[2618897.699] {Default Queue} wl_pointer#137.motion(187310531, 29.00000000, 15.00000000) -[2618897.705] {Default Queue} wl_pointer#169.motion(187310531, 29.00000000, 15.00000000) -[2618897.712] {Default Queue} wl_pointer#201.motion(187310531, 29.00000000, 15.00000000) -[2618897.717] {Default Queue} wl_pointer#233.motion(187310531, 29.00000000, 15.00000000) -[2618897.721] {Default Queue} wl_pointer#265.motion(187310531, 29.00000000, 15.00000000) -[2618897.725] {Default Queue} wl_pointer#297.motion(187310531, 29.00000000, 15.00000000) -[2618897.730] {Default Queue} wl_pointer#329.motion(187310531, 29.00000000, 15.00000000) -[2618897.734] {Default Queue} wl_pointer#361.motion(187310531, 29.00000000, 15.00000000) -[2618897.738] {Default Queue} wl_pointer#393.motion(187310531, 29.00000000, 15.00000000) -[2618897.743] {Default Queue} wl_pointer#425.motion(187310531, 29.00000000, 15.00000000) -[2618897.748] {Default Queue} wl_pointer#457.motion(187310531, 29.00000000, 15.00000000) -[2618897.752] {Default Queue} wl_pointer#489.motion(187310531, 29.00000000, 15.00000000) -[2618897.756] {Default Queue} wl_pointer#521.motion(187310531, 29.00000000, 15.00000000) -[2618897.761] {Default Queue} wl_pointer#553.motion(187310531, 29.00000000, 15.00000000) -[2618897.766] {Default Queue} wl_pointer#585.motion(187310531, 29.00000000, 15.00000000) -[2618897.770] {Default Queue} wl_pointer#617.motion(187310531, 29.00000000, 15.00000000) -[2618897.775] {Default Queue} wl_pointer#649.motion(187310531, 29.00000000, 15.00000000) -[2618897.779] {Default Queue} wl_pointer#681.motion(187310531, 29.00000000, 15.00000000) -[2618897.784] {Default Queue} wl_pointer#713.motion(187310531, 29.00000000, 15.00000000) -[2618897.788] {Default Queue} wl_pointer#745.motion(187310531, 29.00000000, 15.00000000) -[2618897.793] {Default Queue} wl_pointer#777.motion(187310531, 29.00000000, 15.00000000) -[2618897.797] {Default Queue} wl_pointer#809.motion(187310531, 29.00000000, 15.00000000) -[2618897.802] {Default Queue} wl_pointer#841.motion(187310531, 29.00000000, 15.00000000) -[2618897.807] {Default Queue} wl_pointer#873.motion(187310531, 29.00000000, 15.00000000) -[2618897.811] {Default Queue} wl_pointer#905.motion(187310531, 29.00000000, 15.00000000) -[2618897.816] {Default Queue} wl_pointer#937.motion(187310531, 29.00000000, 15.00000000) -[2618897.820] {Default Queue} wl_pointer#969.motion(187310531, 29.00000000, 15.00000000) -[2618897.824] {Default Queue} wl_pointer#1001.motion(187310531, 29.00000000, 15.00000000) -[2618897.829] {Default Queue} wl_pointer#1033.motion(187310531, 29.00000000, 15.00000000) -[2618897.834] {Default Queue} wl_pointer#1065.motion(187310531, 29.00000000, 15.00000000) -[2618897.838] {Default Queue} wl_pointer#1097.motion(187310531, 29.00000000, 15.00000000) -[2618897.843] {Default Queue} wl_pointer#1129.motion(187310531, 29.00000000, 15.00000000) -[2618897.847] {Default Queue} wl_pointer#1161.motion(187310531, 29.00000000, 15.00000000) -[2618897.851] {Default Queue} wl_pointer#1193.motion(187310531, 29.00000000, 15.00000000) -[2618897.856] {Default Queue} wl_pointer#1225.motion(187310531, 29.00000000, 15.00000000) -[2618897.866] {Default Queue} wl_pointer#1257.motion(187310531, 29.00000000, 15.00000000) -[2618897.871] {Default Queue} wl_pointer#1289.motion(187310531, 29.00000000, 15.00000000) -[2618897.875] {Default Queue} wl_pointer#1321.motion(187310531, 29.00000000, 15.00000000) -[2618897.880] {Default Queue} wl_pointer#1353.motion(187310531, 29.00000000, 15.00000000) -[2618897.884] {Default Queue} wl_pointer#1385.motion(187310531, 29.00000000, 15.00000000) -[2618897.888] {Default Queue} wl_pointer#1417.motion(187310531, 29.00000000, 15.00000000) -[2618897.893] {Default Queue} wl_pointer#1449.motion(187310531, 29.00000000, 15.00000000) -[2618897.897] {Default Queue} wl_pointer#1481.motion(187310531, 29.00000000, 15.00000000) -[2618897.902] {Default Queue} wl_pointer#1513.motion(187310531, 29.00000000, 15.00000000) -[2618897.906] {Default Queue} wl_pointer#1545.motion(187310531, 29.00000000, 15.00000000) -[2618897.911] {Default Queue} wl_pointer#1577.motion(187310531, 29.00000000, 15.00000000) -[2618897.918] {Default Queue} wl_pointer#1609.motion(187310531, 29.00000000, 15.00000000) -[2618897.924] {Default Queue} wl_pointer#1641.motion(187310531, 29.00000000, 15.00000000) -[2618897.928] {Default Queue} wl_pointer#1673.motion(187310531, 29.00000000, 15.00000000) -[2618897.932] {Default Queue} wl_pointer#1705.motion(187310531, 29.00000000, 15.00000000) -[2618897.937] {Default Queue} wl_pointer#1737.motion(187310531, 29.00000000, 15.00000000) -[2618897.941] {Default Queue} wl_pointer#1762.motion(187310531, 29.00000000, 15.00000000) -[2618897.946] {Default Queue} wl_pointer#1801.motion(187310531, 29.00000000, 15.00000000) -[2618897.950] {Default Queue} wl_pointer#1833.motion(187310531, 29.00000000, 15.00000000) -[2618897.954] {Default Queue} wl_pointer#1865.motion(187310531, 29.00000000, 15.00000000) -[2618897.959] {Default Queue} wl_pointer#1897.motion(187310531, 29.00000000, 15.00000000) -[2618897.963] {Default Queue} wl_pointer#1929.motion(187310531, 29.00000000, 15.00000000) -[2618897.968] {Default Queue} wl_pointer#1961.motion(187310531, 29.00000000, 15.00000000) -[2618897.972] {Default Queue} wl_pointer#1993.motion(187310531, 29.00000000, 15.00000000) -[2618897.976] {Default Queue} wl_pointer#2025.motion(187310531, 29.00000000, 15.00000000) -[2618897.980] {Default Queue} wl_pointer#2057.motion(187310531, 29.00000000, 15.00000000) -[2618897.985] {Default Queue} wl_pointer#2089.motion(187310531, 29.00000000, 15.00000000) -[2618897.989] {Default Queue} wl_pointer#2121.motion(187310531, 29.00000000, 15.00000000) -[2618897.994] {Default Queue} wl_pointer#2153.motion(187310531, 29.00000000, 15.00000000) -[2618897.999] {Default Queue} wl_pointer#2185.motion(187310531, 29.00000000, 15.00000000) -[2618898.003] {Default Queue} wl_pointer#2217.motion(187310531, 29.00000000, 15.00000000) -[2618898.008] {Default Queue} wl_pointer#2249.motion(187310531, 29.00000000, 15.00000000) -[2618898.013] {Default Queue} wl_pointer#2281.motion(187310531, 29.00000000, 15.00000000) -[2618898.018] {Default Queue} wl_pointer#2313.motion(187310531, 29.00000000, 15.00000000) -[2618898.023] {Default Queue} wl_pointer#2345.motion(187310531, 29.00000000, 15.00000000) -[2618898.028] {Default Queue} wl_pointer#2377.motion(187310531, 29.00000000, 15.00000000) -[2618898.032] {Default Queue} wl_pointer#2409.motion(187310531, 29.00000000, 15.00000000) -[2618898.036] {Default Queue} wl_pointer#2441.motion(187310531, 29.00000000, 15.00000000) -[2618898.041] {Default Queue} wl_pointer#2473.motion(187310531, 29.00000000, 15.00000000) -[2618898.046] {Default Queue} wl_pointer#2498.motion(187310531, 29.00000000, 15.00000000) -[2618898.063] {Default Queue} -> wl_buffer#3783.destroy() -[2618898.069] {Default Queue} -> wl_buffer#3784.destroy() -[2618898.073] {Default Queue} -> wl_shm_pool#3781.destroy() -[2618898.077] {Default Queue} -> wl_shm_pool#3782.destroy() -[2618898.082] {Default Queue} -> wl_surface#3785.destroy() -[2618898.137] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#1020, fd 575, 640) -[2618898.145] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#1019, fd 578, 640) -[2618898.150] {Default Queue} -> wl_shm_pool#1020.create_buffer(new id wl_buffer#1022, 0, 10, 16, 40, 0) -[2618898.156] {Default Queue} -> wl_shm_pool#1019.create_buffer(new id wl_buffer#1021, 0, 10, 16, 40, 0) -[2618898.165] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#1276) -[2618898.170] {Default Queue} -> wl_surface#1276.attach(wl_buffer#1022, 0, 0) -[2618898.174] {Default Queue} -> wl_surface#1276.commit() -[2618898.179] {Default Queue} -> wl_surface#1276.attach(wl_buffer#1022, 0, 0) -[2618898.183] {Default Queue} -> wl_surface#1276.commit() -[2618898.187] {Default Queue} wl_pointer#2537.motion(187310531, 29.00000000, 15.00000000) -[2618898.193] {Default Queue} wl_pointer#2569.motion(187310531, 29.00000000, 15.00000000) -[2618898.197] {Default Queue} wl_pointer#2601.motion(187310531, 29.00000000, 15.00000000) -[2618898.202] {Default Queue} wl_pointer#2633.motion(187310531, 29.00000000, 15.00000000) -[2618898.206] {Default Queue} wl_pointer#2665.motion(187310531, 29.00000000, 15.00000000) -[2618898.215] {Default Queue} wl_pointer#2697.motion(187310531, 29.00000000, 15.00000000) -[2618898.221] {Default Queue} wl_pointer#2729.motion(187310531, 29.00000000, 15.00000000) -[2618898.226] {Default Queue} wl_pointer#2761.motion(187310531, 29.00000000, 15.00000000) -[2618898.230] {Default Queue} wl_pointer#2793.motion(187310531, 29.00000000, 15.00000000) -[2618898.235] {Default Queue} wl_pointer#2825.motion(187310531, 29.00000000, 15.00000000) -[2618898.240] {Default Queue} wl_pointer#2857.motion(187310531, 29.00000000, 15.00000000) -[2618898.245] {Default Queue} wl_pointer#2889.motion(187310531, 29.00000000, 15.00000000) -[2618898.262] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 201) -[2618898.267] {Default Queue} -> wl_region#2079.add(-483, -219, 485, 201) -[2618898.272] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618898.276] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618898.385] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 201) -[2618898.390] {Default Queue} -> wl_region#2079.add(-483, -219, 485, 201) -[2618898.394] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618898.398] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618898.408] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618898.412] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618898.594] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 201) -[2618898.599] {Default Queue} -> wl_region#2079.add(-483, -219, 485, 201) -[2618898.603] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618898.607] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618898.612] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618898.616] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618898.677] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 201) -[2618898.682] {Default Queue} -> wl_region#2079.add(-483, -219, 485, 201) -[2618898.686] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618898.690] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618898.694] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618898.698] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618898.840] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 201) -[2618898.844] {Default Queue} -> wl_region#2079.add(-483, -219, 485, 201) -[2618898.848] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618898.852] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618898.856] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618898.860] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618898.870] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) -[2618898.874] {Default Queue} -> wl_surface#2055.commit() -[2618898.878] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) -[2618898.882] {Default Queue} -> wl_surface#2055.commit() -[2618898.889] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) -[2618898.892] {Default Queue} -> wl_surface#2055.commit() -[2618898.897] {Default Queue} -> wl_region#2047.subtract(0, 0, 2, 2) -[2618898.903] {Default Queue} -> wl_region#2079.subtract(0, 0, 2, 2) -[2618898.907] {Default Queue} -> wl_subsurface#2074.set_position(1, 1) -[2618898.911] {Default Queue} -> wl_region#2079.subtract(0, 0, 486, 202) -[2618898.915] {Default Queue} -> wl_region#2079.add(-483, -219, 485, 201) -[2618898.918] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618898.922] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618898.926] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618898.932] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 221) -[2618898.936] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 220) -[2618898.940] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618898.944] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618899.007] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 221) -[2618899.014] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 220) -[2618899.017] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618899.021] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618899.026] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618899.030] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618899.168] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 221) -[2618899.172] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 220) -[2618899.176] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618899.180] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618899.184] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618899.188] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618899.244] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 221) -[2618899.248] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 220) -[2618899.252] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618899.256] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618899.260] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618899.264] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618899.399] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 221) -[2618899.403] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 220) -[2618899.407] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618899.411] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618899.415] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618899.419] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618899.424] {Default Queue} -> wl_surface#2055.attach(wl_buffer#2077, 0, 0) -[2618899.428] {Default Queue} -> wl_surface#2055.commit() -[2618899.433] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 221) -[2618899.437] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 220) -[2618899.441] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618899.445] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618899.501] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 221) -[2618899.506] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 220) -[2618899.510] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618899.514] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618899.518] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618899.522] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618899.657] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 221) -[2618899.662] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 220) -[2618899.666] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618899.669] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618899.674] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618899.678] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618899.733] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 221) -[2618899.737] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 220) -[2618899.741] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618899.745] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618899.749] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618899.753] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618899.893] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 221) -[2618899.897] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 220) -[2618899.901] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2618899.905] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2618899.910] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618899.914] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618899.921] {Default Queue} -> wl_region#2047.subtract(0, 0, 485, 221) -[2618899.927] {Default Queue} -> wl_region#2047.add(-483, -219, 485, 201) -[2618899.931] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) -[2618899.934] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) -[2618899.938] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618899.942] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) -[2618899.955] {Default Queue} -> wl_buffer#2045.destroy() -[2618899.960] {Default Queue} -> wl_buffer#2046.destroy() -[2618899.964] {Default Queue} -> wl_shm_pool#2043.destroy() -[2618899.968] {Default Queue} -> wl_shm_pool#2044.destroy() -[2618900.007] {Default Queue} -> wl_shm#2031.create_pool(new id wl_shm_pool#1275, fd 581, 16) -[2618900.013] {Default Queue} -> wl_shm#2031.create_pool(new id wl_shm_pool#1278, fd 582, 16) -[2618900.018] {Default Queue} -> wl_shm_pool#1275.create_buffer(new id wl_buffer#1277, 0, 2, 2, 8, 0) -[2618900.022] {Default Queue} -> wl_shm_pool#1278.create_buffer(new id wl_buffer#1436, 0, 2, 2, 8, 0) -[2618900.028] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) -[2618900.032] {Default Queue} -> wl_surface#2023.commit() -[2618900.037] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) -[2618900.041] {Default Queue} -> wl_surface#2023.commit() -[2618900.049] {Default Queue} -> wl_region#2047.subtract(0, 0, 485, 221) -[2618900.053] {Default Queue} -> wl_region#2047.add(-483, -219, 485, 201) -[2618900.057] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) -[2618900.061] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) -[2618900.065] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) -[2618900.069] {Default Queue} -> wl_surface#2023.commit() -[2618900.075] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) -[2618900.079] {Default Queue} -> wl_surface#2023.commit() -[2618901.144] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) -[2618901.150] {Default Queue} -> wl_surface#2023.commit() -[2618901.155] {Default Queue} -> wl_region#2047.subtract(0, 0, 485, 221) -[2618901.159] {Default Queue} -> wl_region#2047.add(-483, -219, 485, 201) -[2618901.163] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) -[2618901.167] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) -[2618901.171] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) -[2618901.175] {Default Queue} -> wl_surface#2023.commit() -[2618901.179] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) -[2618901.183] {Default Queue} -> wl_surface#2023.commit() -[2618901.188] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) -[2618901.192] {Default Queue} -> wl_surface#2023.commit() -[2618901.197] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) -[2618901.201] {Default Queue} -> wl_surface#1959.commit() -[2618901.468] {Display Queue} wl_display#1.delete_id(925) -[2618901.474] {Display Queue} wl_display#1.delete_id(926) -[2618901.478] {Display Queue} wl_display#1.delete_id(923) -[2618901.481] {Display Queue} wl_display#1.delete_id(924) -[2618901.485] {Display Queue} wl_display#1.delete_id(1533) -[2618901.489] {Display Queue} wl_display#1.delete_id(1534) -[2618901.492] {Display Queue} wl_display#1.delete_id(1531) -[2618901.496] {Display Queue} wl_display#1.delete_id(1532) -[2618901.500] {Default Queue} wl_pointer#2921.motion(187310531, 29.00000000, 15.00000000) -[2618901.505] {Default Queue} wl_pointer#2953.motion(187310531, 29.00000000, 15.00000000) -[2618901.510] {Default Queue} wl_pointer#2985.motion(187310531, 29.00000000, 15.00000000) -[2618901.514] {Default Queue} wl_pointer#3017.motion(187310531, 29.00000000, 15.00000000) -[2618901.519] {Default Queue} wl_pointer#3049.motion(187310531, 29.00000000, 15.00000000) -[2618901.523] {Default Queue} wl_pointer#3081.motion(187310531, 29.00000000, 15.00000000) -[2618901.529] {Default Queue} wl_pointer#3113.motion(187310531, 29.00000000, 15.00000000) -[2618901.533] {Default Queue} wl_pointer#3145.motion(187310531, 29.00000000, 15.00000000) -[2618901.542] {Default Queue} wl_pointer#3177.motion(187310531, 29.00000000, 15.00000000) -[2618901.549] {Default Queue} wl_pointer#3209.motion(187310531, 29.00000000, 15.00000000) -[2618901.554] {Default Queue} wl_pointer#3241.motion(187310531, 29.00000000, 15.00000000) -[2618901.558] {Default Queue} wl_pointer#3273.motion(187310531, 29.00000000, 15.00000000) -[2618901.563] {Default Queue} wl_pointer#3305.motion(187310531, 29.00000000, 15.00000000) -[2618901.568] {Default Queue} wl_pointer#3337.motion(187310531, 29.00000000, 15.00000000) -[2618901.572] {Default Queue} wl_pointer#3369.motion(187310531, 29.00000000, 15.00000000) -[2618901.576] {Default Queue} wl_pointer#3401.motion(187310531, 29.00000000, 15.00000000) -[2618901.581] {Default Queue} wl_pointer#3433.motion(187310531, 29.00000000, 15.00000000) -[2618901.586] {Default Queue} wl_pointer#3465.motion(187310531, 29.00000000, 15.00000000) -[2618901.591] {Default Queue} wl_pointer#3497.motion(187310531, 29.00000000, 15.00000000) -[2618901.596] {Default Queue} wl_pointer#3529.motion(187310531, 29.00000000, 15.00000000) -[2618901.600] {Default Queue} wl_pointer#3561.motion(187310531, 29.00000000, 15.00000000) -[2618901.605] {Default Queue} wl_pointer#3593.motion(187310531, 29.00000000, 15.00000000) -[2618901.609] {Default Queue} wl_pointer#3625.motion(187310531, 29.00000000, 15.00000000) -[2618901.614] {Default Queue} wl_pointer#3657.motion(187310531, 29.00000000, 15.00000000) -[2618901.619] {Default Queue} wl_pointer#3695.motion(187310531, 29.00000000, 15.00000000) -[2618901.625] {Default Queue} -> wl_region#1983.subtract(0, 0, 485, 221) -[2618901.629] {Default Queue} -> wl_region#1983.add(-480, -216, 482, 218) -[2618901.633] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) -[2618901.637] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) -[2618901.642] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) -[2618901.646] {Default Queue} -> wl_surface#1959.commit() -[2618901.650] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) -[2618901.654] {Default Queue} -> wl_surface#1959.commit() -[2618901.659] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) -[2618901.663] {Default Queue} -> wl_surface#1959.commit() -[2618901.667] {Default Queue} -> wl_region#1951.subtract(0, 0, 115, 167) -[2618901.673] {Default Queue} -> wl_region#1983.subtract(0, 0, 2, 2) -[2618901.678] {Default Queue} -> wl_subsurface#1978.set_position(3, 3) -[2618901.681] {Default Queue} -> wl_region#1983.subtract(0, 0, 485, 221) -[2618901.685] {Default Queue} -> wl_region#1983.add(-480, -216, 482, 218) -[2618901.689] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) -[2618901.693] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) -[2618901.697] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2618901.701] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618901.705] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) -[2618901.709] {Default Queue} -> wl_surface#1959.damage(0, 0, 2, 2) -[2618901.714] {Default Queue} -> wl_region#1983.subtract(0, 0, 485, 221) -[2618901.718] {Default Queue} -> wl_region#1983.add(-480, -216, 482, 218) -[2618901.722] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) -[2618901.725] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) -[2618901.730] {Default Queue} -> wl_surface#1959.attach(wl_buffer#3712, 0, 0) -[2618901.734] {Default Queue} -> wl_surface#1959.commit() -[2618901.738] {Default Queue} -> wl_region#1983.subtract(0, 0, 592, 380) -[2618901.742] {Default Queue} -> wl_region#1983.add(-480, -216, 589, 377) -[2618901.746] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) -[2618901.750] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) -[2618901.754] {Default Queue} -> wl_region#1951.subtract(0, 0, 482, 218) -[2618901.758] {Default Queue} -> wl_region#1951.add(-20, -216, 22, 218) -[2618901.762] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618901.769] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618901.774] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2618901.778] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618901.782] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) -[2618901.785] {Default Queue} -> wl_surface#1959.damage(0, 0, 109, 161) -[2618901.789] {Default Queue} -> wl_surface#1927.damage(0, 0, 115, 167) -[2618901.808] {Default Queue} -> wl_buffer#1949.destroy() -[2618901.812] {Default Queue} -> wl_buffer#1950.destroy() -[2618901.817] {Default Queue} -> wl_shm_pool#1947.destroy() -[2618901.820] {Default Queue} -> wl_shm_pool#1948.destroy() -[2618901.915] {Default Queue} -> wl_shm#1935.create_pool(new id wl_shm_pool#1532, fd 575, 76820) -[2618901.922] {Default Queue} -> wl_shm#1935.create_pool(new id wl_shm_pool#1531, fd 578, 76820) -[2618901.926] {Default Queue} -> wl_shm_pool#1532.create_buffer(new id wl_buffer#1534, 0, 115, 167, 460, 0) -[2618901.930] {Default Queue} -> wl_shm_pool#1531.create_buffer(new id wl_buffer#1533, 0, 115, 167, 460, 0) -[2618901.953] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) -[2618901.958] {Default Queue} -> wl_surface#1927.commit() -[2618901.979] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) -[2618901.984] {Default Queue} -> wl_surface#1927.commit() -[2618901.994] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) -[2618901.998] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) -[2618902.002] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618902.005] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618902.016] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) -[2618902.020] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) -[2618902.024] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618902.028] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618902.033] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) -[2618902.037] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) -[2618902.041] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618902.045] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618902.050] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) -[2618902.054] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) -[2618902.058] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618902.062] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618902.068] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) -[2618902.072] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) -[2618902.076] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618902.080] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618902.086] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) -[2618902.090] {Default Queue} -> wl_surface#1927.commit() -[2618902.097] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) -[2618902.101] {Default Queue} -> wl_surface#1927.commit() -[2618903.167] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) -[2618903.172] {Default Queue} -> wl_surface#1927.commit() -[2618903.181] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) -[2618903.186] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) -[2618903.190] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618903.193] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618903.199] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) -[2618903.203] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) -[2618903.207] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618903.211] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618903.216] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) -[2618903.223] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) -[2618903.229] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618903.233] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618903.238] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) -[2618903.242] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) -[2618903.246] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618903.250] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618903.256] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) -[2618903.260] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) -[2618903.263] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618903.267] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618903.274] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) -[2618903.277] {Default Queue} -> wl_surface#1927.commit() -[2618903.282] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) -[2618903.286] {Default Queue} -> wl_surface#1927.commit() -[2618903.293] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) -[2618903.296] {Default Queue} -> wl_surface#1927.commit() -[2618903.301] {Default Queue} -> wl_region#895.subtract(0, 0, 576, 167) -[2618903.308] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) -[2618903.312] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) -[2618903.316] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618903.319] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618903.326] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) -[2618903.330] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) -[2618903.334] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618903.338] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618903.343] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) -[2618903.347] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) -[2618903.351] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618903.354] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618903.360] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) -[2618903.364] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) -[2618903.368] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618903.371] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618903.378] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) -[2618903.382] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) -[2618903.386] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2618903.389] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2618903.406] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) -[2618903.410] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) -[2618903.414] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618903.418] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618903.426] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) -[2618903.429] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) -[2618903.433] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618903.437] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618903.442] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) -[2618903.446] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) -[2618903.450] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618903.454] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618903.459] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) -[2618903.463] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) -[2618903.467] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618903.474] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618903.482] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) -[2618903.486] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) -[2618903.489] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2618903.493] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2618903.510] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) -[2618903.514] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) -[2618903.518] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618903.522] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618903.529] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) -[2618903.533] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) -[2618903.537] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618903.540] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618903.546] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) -[2618903.550] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) -[2618903.554] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618903.557] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618903.563] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) -[2618903.567] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) -[2618903.570] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618903.574] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618903.580] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) -[2618903.584] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) -[2618903.588] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2618903.591] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2618903.607] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) -[2618903.611] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) -[2618903.615] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618903.619] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618903.626] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) -[2618903.630] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) -[2618903.634] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618903.637] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618903.643] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) -[2618903.647] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) -[2618903.651] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618903.654] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618903.660] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) -[2618903.664] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) -[2618903.668] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618903.671] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618903.678] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) -[2618903.682] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) -[2618903.686] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2618903.689] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2618903.704] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) -[2618903.708] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) -[2618903.712] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618903.716] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618903.721] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) -[2618903.725] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) -[2618903.729] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618903.735] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618903.741] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) -[2618903.745] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) -[2618903.749] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618903.753] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618903.757] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) -[2618903.761] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) -[2618903.765] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618903.769] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618903.775] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) -[2618903.779] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) -[2618903.782] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2618903.786] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2618903.792] {Default Queue} -> wl_surface#871.damage(0, 0, 576, 167) -[2618903.796] {Default Queue} -> wl_region#895.subtract(0, 0, 22, 218) -[2618903.799] {Default Queue} -> wl_region#895.add(-20, -49, 22, 51) -[2618903.803] {Default Queue} -> wl_surface#871.set_opaque_region(wl_region#896) -[2618903.807] {Default Queue} -> wl_surface#871.set_input_region(wl_region#895) -[2618903.811] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2618903.816] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) -[2618903.820] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) -[2618903.824] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) -[2618903.828] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) -[2618903.832] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) -[2618903.836] {Default Queue} -> wl_surface#1063.damage(0, 0, 16, 2) -[2618903.840] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2618903.844] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2618903.848] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2618903.852] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2618903.856] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2618903.859] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2618903.868] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2618903.872] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) -[2618903.876] {Default Queue} -> wl_surface#935.damage(0, 0, 109, 161) -[2618903.880] {Default Queue} -> wl_surface#903.damage(0, 0, 115, 167) -[2618903.884] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2618903.888] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2618903.892] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) -[2618903.896] {Default Queue} -> wl_surface#1479.damage(0, 0, 109, 161) -[2618903.900] {Default Queue} -> wl_surface#1447.damage(0, 0, 115, 167) -[2618903.904] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2618903.908] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) -[2618903.913] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) -[2618903.916] {Default Queue} -> wl_surface#1639.damage(0, 0, 109, 161) -[2618903.920] {Default Queue} -> wl_surface#1607.damage(0, 0, 115, 167) -[2618903.924] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2618903.929] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2618903.933] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) -[2618903.936] {Default Queue} -> wl_surface#1799.damage(0, 0, 109, 161) -[2618903.940] {Default Queue} -> wl_surface#1772.damage(0, 0, 115, 167) -[2618903.944] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2618903.948] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2618903.952] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) -[2618903.956] {Default Queue} -> wl_surface#1959.damage(0, 0, 109, 161) -[2618903.960] {Default Queue} -> wl_surface#1927.damage(0, 0, 115, 167) -[2618903.964] {Default Queue} -> wl_surface#871.damage(0, 0, 576, 167) -[2618903.976] {Default Queue} -> wl_buffer#893.destroy() -[2618903.984] {Default Queue} -> wl_buffer#894.destroy() -[2618903.989] {Default Queue} -> wl_shm_pool#891.destroy() -[2618903.993] {Default Queue} -> wl_shm_pool#892.destroy() -[2618904.254] {Default Queue} -> wl_shm#879.create_pool(new id wl_shm_pool#924, fd 575, 384768) -[2618904.261] {Default Queue} -> wl_shm#879.create_pool(new id wl_shm_pool#923, fd 578, 384768) -[2618904.265] {Default Queue} -> wl_shm_pool#924.create_buffer(new id wl_buffer#926, 0, 576, 167, 2304, 0) -[2618904.270] {Default Queue} -> wl_shm_pool#923.create_buffer(new id wl_buffer#925, 0, 576, 167, 2304, 0) -[2618904.361] {Default Queue} -> wl_surface#871.attach(wl_buffer#926, 0, 0) -[2618904.366] {Default Queue} -> wl_surface#871.commit() -[2618904.461] {Default Queue} -> wl_surface#871.attach(wl_buffer#926, 0, 0) -[2618904.466] {Default Queue} -> wl_surface#871.commit() -[2618904.478] {Default Queue} -> wl_region#895.subtract(0, 0, 596, 383) -[2618904.483] {Default Queue} -> wl_region#895.add(-20, -49, 596, 216) -[2618904.487] {Default Queue} -> wl_surface#871.set_opaque_region(wl_region#896) -[2618904.491] {Default Queue} -> wl_surface#871.set_input_region(wl_region#895) -[2618904.507] {Default Queue} -> wl_surface#871.attach(wl_buffer#926, 0, 0) -[2618904.511] {Default Queue} -> wl_surface#871.commit() -[2618904.523] {Default Queue} -> wl_surface#871.attach(wl_buffer#926, 0, 0) -[2618904.528] {Default Queue} -> wl_surface#871.commit() -[2618905.599] {Default Queue} -> wl_surface#871.attach(wl_buffer#926, 0, 0) -[2618905.606] {Default Queue} -> wl_surface#871.commit() -[2618905.617] {Default Queue} -> wl_region#895.subtract(0, 0, 596, 383) -[2618905.621] {Default Queue} -> wl_region#895.add(-20, -49, 596, 216) -[2618905.625] {Default Queue} -> wl_surface#871.set_opaque_region(wl_region#896) -[2618905.629] {Default Queue} -> wl_surface#871.set_input_region(wl_region#895) -[2618905.645] {Default Queue} -> wl_surface#871.attach(wl_buffer#926, 0, 0) -[2618905.649] {Default Queue} -> wl_surface#871.commit() -[2618905.659] {Default Queue} -> wl_surface#871.attach(wl_buffer#926, 0, 0) -[2618905.664] {Default Queue} -> wl_surface#871.commit() -[2618905.675] {Default Queue} -> wl_surface#871.attach(wl_buffer#926, 0, 0) -[2618905.680] {Default Queue} -> wl_surface#871.commit() -[2618905.685] {Default Queue} -> wl_region#2207.subtract(0, 0, 2, 20) -[2618905.690] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 385) -[2618905.694] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 385) -[2618905.697] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2618905.701] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2618905.705] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2618905.717] {Default Queue} -> wl_buffer#2205.destroy() -[2618905.722] {Default Queue} -> wl_buffer#2206.destroy() -[2618905.725] {Default Queue} -> wl_shm_pool#2203.destroy() -[2618905.729] {Default Queue} -> wl_shm_pool#2204.destroy() -[2618905.765] {Default Queue} -> wl_shm#2191.create_pool(new id wl_shm_pool#1435, fd 575, 160) -[2618905.771] {Default Queue} -> wl_shm#2191.create_pool(new id wl_shm_pool#1438, fd 578, 160) -[2618905.775] {Default Queue} -> wl_shm_pool#1435.create_buffer(new id wl_buffer#1437, 0, 2, 20, 8, 0) -[2618905.780] {Default Queue} -> wl_shm_pool#1438.create_buffer(new id wl_buffer#1404, 0, 2, 20, 8, 0) -[2618905.786] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) -[2618905.790] {Default Queue} -> wl_surface#2183.commit() -[2618905.795] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) -[2618905.799] {Default Queue} -> wl_surface#2183.commit() -[2618905.807] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 385) -[2618905.811] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 385) -[2618905.815] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2618905.819] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2618905.900] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 385) -[2618905.905] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 385) -[2618905.912] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2618905.918] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2618905.924] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2618905.928] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2618905.978] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 385) -[2618905.983] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 385) -[2618905.987] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2618905.990] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2618905.998] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2618906.002] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2618906.006] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) -[2618906.010] {Default Queue} -> wl_surface#2183.commit() -[2618906.016] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) -[2618906.020] {Default Queue} -> wl_surface#2183.commit() -[2618907.084] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) -[2618907.089] {Default Queue} -> wl_surface#2183.commit() -[2618907.095] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 385) -[2618907.099] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 385) -[2618907.103] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2618907.107] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2618907.163] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 385) -[2618907.168] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 385) -[2618907.172] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2618907.176] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2618907.181] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2618907.185] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2618907.232] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 385) -[2618907.236] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 385) -[2618907.240] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2618907.244] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2618907.249] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2618907.253] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2618907.257] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) -[2618907.261] {Default Queue} -> wl_surface#2183.commit() -[2618907.265] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) -[2618907.269] {Default Queue} -> wl_surface#2183.commit() -[2618907.274] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) -[2618907.278] {Default Queue} -> wl_surface#2183.commit() -[2618907.284] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618907.288] {Default Queue} -> wl_surface#2279.commit() -[2618908.348] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618908.353] {Default Queue} -> wl_surface#2279.commit() -[2618908.361] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) -[2618908.365] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) -[2618908.369] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618908.373] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618908.381] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) -[2618908.385] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) -[2618908.389] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618908.392] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618908.397] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) -[2618908.401] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) -[2618908.405] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618908.408] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618908.413] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) -[2618908.420] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) -[2618908.426] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618908.430] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618908.435] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) -[2618908.439] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) -[2618908.443] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618908.446] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618908.453] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) -[2618908.458] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) -[2618908.462] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618908.465] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618908.470] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) -[2618908.474] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) -[2618908.478] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618908.482] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618908.487] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) -[2618908.491] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) -[2618908.495] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618908.499] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618908.503] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) -[2618908.507] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) -[2618908.511] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618908.514] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618908.524] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) -[2618908.529] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) -[2618908.533] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618908.536] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618908.541] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) -[2618908.545] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) -[2618908.549] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618908.552] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618908.557] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) -[2618908.561] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) -[2618908.565] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618908.568] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618908.573] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) -[2618908.577] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) -[2618908.581] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618908.584] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618908.589] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) -[2618908.593] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) -[2618908.597] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618908.600] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618908.606] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) -[2618908.610] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) -[2618908.614] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618908.618] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618908.624] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) -[2618908.628] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) -[2618908.632] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618908.635] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618908.640] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) -[2618908.647] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) -[2618908.652] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618908.656] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618908.660] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) -[2618908.664] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) -[2618908.668] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618908.671] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618908.678] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) -[2618908.682] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) -[2618908.685] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618908.689] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618908.697] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618908.701] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618908.705] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618908.709] {Default Queue} -> wl_surface#2279.commit() -[2618908.713] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618908.717] {Default Queue} -> wl_surface#2279.commit() -[2618908.723] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618908.727] {Default Queue} -> wl_surface#2279.commit() -[2618908.732] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) -[2618908.736] {Default Queue} -> wl_surface#2311.commit() -[2618909.797] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) -[2618909.802] {Default Queue} -> wl_surface#2311.commit() -[2618909.808] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618909.814] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) -[2618909.817] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618909.821] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618909.831] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618909.835] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) -[2618909.839] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618909.842] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618909.847] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618909.851] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) -[2618909.855] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618909.859] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618909.867] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618909.871] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) -[2618909.875] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618909.879] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618909.883] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618909.887] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) -[2618909.891] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618909.895] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618909.899] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618909.903] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) -[2618909.907] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618909.911] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618909.945] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618909.950] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) -[2618909.954] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618909.957] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618909.963] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618909.967] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618909.974] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618909.982] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) -[2618909.987] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618909.991] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618909.996] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618910.000] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) -[2618910.004] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618910.007] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618910.012] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618910.016] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) -[2618910.020] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618910.024] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618910.029] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618910.033] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) -[2618910.036] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618910.040] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618910.045] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) -[2618910.049] {Default Queue} -> wl_surface#2311.commit() -[2618910.052] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) -[2618910.056] {Default Queue} -> wl_surface#2311.commit() -[2618910.062] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) -[2618910.065] {Default Queue} -> wl_surface#2311.commit() -[2618910.071] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) -[2618910.075] {Default Queue} -> wl_surface#2247.commit() -[2618911.136] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) -[2618911.141] {Default Queue} -> wl_surface#2247.commit() -[2618911.149] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 368) -[2618911.153] {Default Queue} -> wl_region#2271.add(-23, -386, 25, 368) -[2618911.157] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618911.160] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618911.170] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 368) -[2618911.174] {Default Queue} -> wl_region#2271.add(-23, -386, 25, 368) -[2618911.177] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618911.181] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618911.186] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 368) -[2618911.190] {Default Queue} -> wl_region#2271.add(-23, -386, 25, 368) -[2618911.194] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618911.197] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618911.201] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 368) -[2618911.205] {Default Queue} -> wl_region#2271.add(-23, -386, 25, 368) -[2618911.209] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618911.213] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618911.217] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 368) -[2618911.221] {Default Queue} -> wl_region#2271.add(-23, -386, 25, 368) -[2618911.225] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618911.229] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618911.302] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 368) -[2618911.307] {Default Queue} -> wl_region#2271.add(-23, -386, 25, 368) -[2618911.311] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618911.314] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618911.320] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618911.324] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618911.329] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) -[2618911.333] {Default Queue} -> wl_surface#2247.commit() -[2618911.336] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) -[2618911.348] {Default Queue} -> wl_surface#2247.commit() -[2618911.356] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) -[2618911.359] {Default Queue} -> wl_surface#2247.commit() -[2618911.363] {Default Queue} -> wl_region#2239.subtract(0, 0, 2, 2) -[2618911.369] {Default Queue} -> wl_region#2271.subtract(0, 0, 2, 2) -[2618911.373] {Default Queue} -> wl_subsurface#2266.set_position(1, 1) -[2618911.377] {Default Queue} -> wl_region#2271.subtract(0, 0, 26, 369) -[2618911.381] {Default Queue} -> wl_region#2271.add(-23, -386, 25, 368) -[2618911.385] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618911.388] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618911.392] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618911.396] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618911.400] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618911.405] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) -[2618911.409] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) -[2618911.413] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618911.417] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618911.424] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) -[2618911.429] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) -[2618911.432] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618911.436] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618911.440] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) -[2618911.444] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) -[2618911.448] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618911.452] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618911.456] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) -[2618911.460] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) -[2618911.464] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618911.468] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618911.472] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) -[2618911.476] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) -[2618911.480] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618911.483] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618911.542] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) -[2618911.547] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) -[2618911.551] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618911.554] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618911.559] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618911.563] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618911.568] {Default Queue} -> wl_surface#2247.attach(wl_buffer#2269, 0, 0) -[2618911.572] {Default Queue} -> wl_surface#2247.commit() -[2618911.578] {Default Queue} -> wl_region#2303.subtract(0, 0, 16, 2) -[2618911.582] {Default Queue} -> wl_subsurface#2298.set_position(-14, 0) -[2618911.586] {Default Queue} -> wl_region#2303.subtract(0, 0, 39, 368) -[2618911.590] {Default Queue} -> wl_region#2303.add(-9, -386, 25, 368) -[2618911.594] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618911.598] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618911.601] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618911.607] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) -[2618911.611] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) -[2618911.615] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618911.618] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618911.624] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) -[2618911.629] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) -[2618911.632] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618911.639] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618911.645] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) -[2618911.649] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) -[2618911.652] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618911.656] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618911.660] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) -[2618911.664] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) -[2618911.668] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618911.672] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618911.676] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) -[2618911.680] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) -[2618911.684] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618911.687] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618911.693] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) -[2618911.697] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) -[2618911.701] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618911.705] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618911.709] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) -[2618911.713] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) -[2618911.717] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618911.720] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618911.725] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) -[2618911.729] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) -[2618911.732] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618911.736] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618911.740] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) -[2618911.744] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) -[2618911.748] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618911.752] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618911.761] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) -[2618911.766] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) -[2618911.770] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618911.773] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618911.777] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) -[2618911.781] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) -[2618911.785] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618911.789] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618911.793] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) -[2618911.797] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) -[2618911.801] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618911.804] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618911.809] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) -[2618911.813] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) -[2618911.816] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618911.820] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618911.825] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) -[2618911.829] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) -[2618911.833] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618911.837] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618911.843] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) -[2618911.847] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) -[2618911.850] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618911.857] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618911.866] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) -[2618911.870] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) -[2618911.874] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618911.877] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618911.881] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) -[2618911.885] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) -[2618911.889] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618911.893] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618911.897] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) -[2618911.901] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) -[2618911.905] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618911.908] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618911.914] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 387) -[2618911.918] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 387) -[2618911.922] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2618911.925] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2618911.931] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618911.935] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618911.940] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618911.944] {Default Queue} -> wl_surface#2279.commit() -[2618911.949] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2618911.953] {Default Queue} -> wl_surface#2279.commit() -[2618911.957] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 2) -[2618911.961] {Default Queue} -> wl_subsurface#2330.set_position(0, 20) -[2618911.964] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618911.968] {Default Queue} -> wl_region#2335.add(-23, -406, 25, 368) -[2618911.972] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618911.976] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618911.980] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618911.985] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618911.989] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) -[2618911.993] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618911.996] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618912.005] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618912.009] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) -[2618912.013] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618912.017] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618912.021] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618912.025] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) -[2618912.029] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618912.032] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618912.037] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618912.040] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) -[2618912.044] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618912.048] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618912.052] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618912.056] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) -[2618912.060] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618912.064] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618912.068] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618912.072] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) -[2618912.076] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618912.082] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618912.112] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618912.116] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) -[2618912.120] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618912.124] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618912.129] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618912.133] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618912.140] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618912.145] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) -[2618912.149] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618912.153] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618912.157] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618912.161] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) -[2618912.165] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618912.168] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618912.173] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618912.177] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) -[2618912.181] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618912.184] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618912.188] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2618912.192] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) -[2618912.196] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2618912.200] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2618912.204] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3716, 0, 0) -[2618912.208] {Default Queue} -> wl_surface#2311.commit() -[2618912.214] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618912.218] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618912.223] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) -[2618912.227] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) -[2618912.231] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618912.235] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618912.242] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) -[2618912.247] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) -[2618912.251] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618912.258] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618912.262] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) -[2618912.266] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) -[2618912.270] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618912.274] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618912.278] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) -[2618912.282] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) -[2618912.286] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618912.289] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618912.294] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) -[2618912.298] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) -[2618912.301] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618912.305] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618912.364] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) -[2618912.368] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) -[2618912.372] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2618912.376] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2618912.380] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618912.384] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618912.389] {Default Queue} -> wl_region#2239.subtract(0, 0, 25, 388) -[2618912.396] {Default Queue} -> wl_region#2239.add(-23, -386, 25, 368) -[2618912.402] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) -[2618912.405] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) -[2618912.409] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618912.413] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618912.417] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618912.421] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) -[2618912.434] {Default Queue} -> wl_buffer#2237.destroy() -[2618912.439] {Default Queue} -> wl_buffer#2238.destroy() -[2618912.443] {Default Queue} -> wl_shm_pool#2235.destroy() -[2618912.446] {Default Queue} -> wl_shm_pool#2236.destroy() -[2618912.486] {Default Queue} -> wl_shm#2223.create_pool(new id wl_shm_pool#1403, fd 575, 16) -[2618912.492] {Default Queue} -> wl_shm#2223.create_pool(new id wl_shm_pool#1406, fd 578, 16) -[2618912.496] {Default Queue} -> wl_shm_pool#1403.create_buffer(new id wl_buffer#1405, 0, 2, 2, 8, 0) -[2618912.501] {Default Queue} -> wl_shm_pool#1406.create_buffer(new id wl_buffer#1372, 0, 2, 2, 8, 0) -[2618912.507] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) -[2618912.511] {Default Queue} -> wl_surface#2215.commit() -[2618912.516] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) -[2618912.520] {Default Queue} -> wl_surface#2215.commit() -[2618912.527] {Default Queue} -> wl_region#2239.subtract(0, 0, 25, 388) -[2618912.531] {Default Queue} -> wl_region#2239.add(-23, -386, 25, 368) -[2618912.535] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) -[2618912.539] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) -[2618912.543] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) -[2618912.547] {Default Queue} -> wl_surface#2215.commit() -[2618912.553] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) -[2618912.557] {Default Queue} -> wl_surface#2215.commit() -[2618913.620] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) -[2618913.626] {Default Queue} -> wl_surface#2215.commit() -[2618913.631] {Default Queue} -> wl_region#2239.subtract(0, 0, 25, 388) -[2618913.635] {Default Queue} -> wl_region#2239.add(-23, -386, 25, 368) -[2618913.639] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) -[2618913.643] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) -[2618913.647] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) -[2618913.651] {Default Queue} -> wl_surface#2215.commit() -[2618913.655] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) -[2618913.659] {Default Queue} -> wl_surface#2215.commit() -[2618913.664] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) -[2618913.668] {Default Queue} -> wl_surface#2215.commit() -[2618913.674] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) -[2618913.678] {Default Queue} -> wl_surface#2151.commit() -[2618914.738] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) -[2618914.743] {Default Queue} -> wl_surface#2151.commit() -[2618914.749] {Default Queue} -> wl_region#2175.subtract(0, 0, 25, 388) -[2618914.753] {Default Queue} -> wl_region#2175.add(-20, -383, 22, 385) -[2618914.757] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) -[2618914.760] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) -[2618914.766] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) -[2618914.770] {Default Queue} -> wl_surface#2151.commit() -[2618914.773] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) -[2618914.777] {Default Queue} -> wl_surface#2151.commit() -[2618914.782] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) -[2618914.786] {Default Queue} -> wl_surface#2151.commit() -[2618914.790] {Default Queue} -> wl_region#2143.subtract(0, 0, 115, 167) -[2618914.796] {Default Queue} -> wl_region#2175.subtract(0, 0, 2, 2) -[2618914.800] {Default Queue} -> wl_subsurface#2170.set_position(3, 3) -[2618914.808] {Default Queue} -> wl_region#2175.subtract(0, 0, 25, 388) -[2618914.814] {Default Queue} -> wl_region#2175.add(-20, -383, 22, 385) -[2618914.818] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) -[2618914.822] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) -[2618914.825] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2618914.829] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618914.833] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618914.837] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618914.841] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) -[2618914.845] {Default Queue} -> wl_surface#2151.damage(0, 0, 2, 2) -[2618914.850] {Default Queue} -> wl_region#2175.subtract(0, 0, 25, 388) -[2618914.854] {Default Queue} -> wl_region#2175.add(-20, -383, 22, 385) -[2618914.858] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) -[2618914.867] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) -[2618914.871] {Default Queue} -> wl_surface#2151.attach(wl_buffer#3720, 0, 0) -[2618914.875] {Default Queue} -> wl_surface#2151.commit() -[2618914.879] {Default Queue} -> wl_region#2175.subtract(0, 0, 132, 547) -[2618914.883] {Default Queue} -> wl_region#2175.add(-20, -383, 129, 544) -[2618914.887] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) -[2618914.891] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) -[2618914.895] {Default Queue} -> wl_region#2143.subtract(0, 0, 22, 51) -[2618914.899] {Default Queue} -> wl_region#2143.add(-20, -49, 22, 51) -[2618914.903] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618914.906] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618914.910] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2618914.914] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618914.918] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618914.922] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618914.926] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) -[2618914.930] {Default Queue} -> wl_surface#2151.damage(0, 0, 109, 161) -[2618914.933] {Default Queue} -> wl_surface#2119.damage(0, 0, 115, 167) -[2618914.945] {Default Queue} -> wl_buffer#2141.destroy() -[2618914.950] {Default Queue} -> wl_buffer#2142.destroy() -[2618914.953] {Default Queue} -> wl_shm_pool#2139.destroy() -[2618914.957] {Default Queue} -> wl_shm_pool#2140.destroy() -[2618915.034] {Default Queue} -> wl_shm#2127.create_pool(new id wl_shm_pool#1371, fd 575, 76820) -[2618915.040] {Default Queue} -> wl_shm#2127.create_pool(new id wl_shm_pool#1374, fd 578, 76820) -[2618915.044] {Default Queue} -> wl_shm_pool#1371.create_buffer(new id wl_buffer#1373, 0, 115, 167, 460, 0) -[2618915.049] {Default Queue} -> wl_shm_pool#1374.create_buffer(new id wl_buffer#1340, 0, 115, 167, 460, 0) -[2618915.072] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) -[2618915.076] {Default Queue} -> wl_surface#2119.commit() -[2618915.097] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) -[2618915.101] {Default Queue} -> wl_surface#2119.commit() -[2618915.110] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) -[2618915.115] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) -[2618915.119] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618915.122] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618915.130] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) -[2618915.134] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) -[2618915.137] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618915.141] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618915.147] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) -[2618915.151] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) -[2618915.154] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618915.161] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618915.169] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) -[2618915.173] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) -[2618915.176] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618915.180] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618915.186] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) -[2618915.190] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) -[2618915.194] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618915.198] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618915.204] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) -[2618915.208] {Default Queue} -> wl_surface#2119.commit() -[2618915.215] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) -[2618915.219] {Default Queue} -> wl_surface#2119.commit() -[2618916.283] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) -[2618916.289] {Default Queue} -> wl_surface#2119.commit() -[2618916.296] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) -[2618916.301] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) -[2618916.304] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618916.308] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618916.314] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) -[2618916.318] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) -[2618916.322] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618916.325] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618916.330] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) -[2618916.334] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) -[2618916.338] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618916.342] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618916.347] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) -[2618916.351] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) -[2618916.355] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618916.358] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618916.364] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) -[2618916.368] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) -[2618916.372] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618916.376] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618916.382] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) -[2618916.386] {Default Queue} -> wl_surface#2119.commit() -[2618916.391] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) -[2618916.394] {Default Queue} -> wl_surface#2119.commit() -[2618916.401] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) -[2618916.405] {Default Queue} -> wl_surface#2119.commit() -[2618916.409] {Default Queue} -> wl_region#2431.subtract(0, 0, 2, 20) -[2618916.413] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 385) -[2618916.417] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 385) -[2618916.421] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2618916.424] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2618916.428] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2618916.443] {Default Queue} -> wl_buffer#2429.destroy() -[2618916.448] {Default Queue} -> wl_buffer#2430.destroy() -[2618916.452] {Default Queue} -> wl_shm_pool#2427.destroy() -[2618916.456] {Default Queue} -> wl_shm_pool#2428.destroy() -[2618916.494] {Default Queue} -> wl_shm#2415.create_pool(new id wl_shm_pool#1339, fd 575, 160) -[2618916.499] {Default Queue} -> wl_shm#2415.create_pool(new id wl_shm_pool#1342, fd 578, 160) -[2618916.503] {Default Queue} -> wl_shm_pool#1339.create_buffer(new id wl_buffer#1341, 0, 2, 20, 8, 0) -[2618916.511] {Default Queue} -> wl_shm_pool#1342.create_buffer(new id wl_buffer#1308, 0, 2, 20, 8, 0) -[2618916.519] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) -[2618916.523] {Default Queue} -> wl_surface#2407.commit() -[2618916.528] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) -[2618916.532] {Default Queue} -> wl_surface#2407.commit() -[2618916.541] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 385) -[2618916.546] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 385) -[2618916.550] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2618916.554] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2618916.672] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 385) -[2618916.676] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 385) -[2618916.680] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2618916.684] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2618916.690] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2618916.694] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2618916.775] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 385) -[2618916.780] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 385) -[2618916.784] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2618916.788] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2618916.793] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2618916.797] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2618916.802] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) -[2618916.806] {Default Queue} -> wl_surface#2407.commit() -[2618916.812] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) -[2618916.816] {Default Queue} -> wl_surface#2407.commit() -[2618917.867] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) -[2618917.872] {Default Queue} -> wl_surface#2407.commit() -[2618917.879] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 385) -[2618917.885] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 385) -[2618917.889] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2618917.893] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2618917.985] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 385) -[2618917.989] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 385) -[2618917.993] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2618917.997] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2618918.002] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2618918.006] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2618918.081] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 385) -[2618918.086] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 385) -[2618918.090] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2618918.093] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2618918.099] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2618918.103] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2618918.107] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) -[2618918.111] {Default Queue} -> wl_surface#2407.commit() -[2618918.115] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) -[2618918.119] {Default Queue} -> wl_surface#2407.commit() -[2618918.124] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) -[2618918.128] {Default Queue} -> wl_surface#2407.commit() -[2618918.135] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) -[2618918.138] {Default Queue} -> wl_surface#2471.commit() -[2618919.199] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) -[2618919.204] {Default Queue} -> wl_surface#2471.commit() -[2618919.217] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) -[2618919.221] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) -[2618919.229] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.235] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.241] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) -[2618919.245] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) -[2618919.249] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.253] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.257] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) -[2618919.261] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) -[2618919.265] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.268] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.273] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) -[2618919.277] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) -[2618919.281] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.284] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.289] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) -[2618919.293] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) -[2618919.296] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.300] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.305] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) -[2618919.309] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) -[2618919.313] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.317] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.321] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) -[2618919.325] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) -[2618919.329] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.332] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.337] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) -[2618919.341] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) -[2618919.345] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.348] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.353] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) -[2618919.357] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) -[2618919.360] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.364] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.369] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) -[2618919.373] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) -[2618919.377] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.380] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.386] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) -[2618919.390] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) -[2618919.394] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.397] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.401] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) -[2618919.405] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) -[2618919.409] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.413] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.417] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) -[2618919.421] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) -[2618919.425] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.428] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.433] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) -[2618919.437] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) -[2618919.443] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.448] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.453] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) -[2618919.457] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) -[2618919.461] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.465] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.469] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) -[2618919.473] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) -[2618919.477] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.481] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.485] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) -[2618919.489] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) -[2618919.493] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.496] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.501] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 368) -[2618919.505] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) -[2618919.508] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.512] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.516] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) -[2618919.520] {Default Queue} -> wl_surface#2471.commit() -[2618919.524] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) -[2618919.528] {Default Queue} -> wl_surface#2471.commit() -[2618919.533] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) -[2618919.537] {Default Queue} -> wl_surface#2471.commit() -[2618919.541] {Default Queue} -> wl_region#2463.subtract(0, 0, 2, 2) -[2618919.546] {Default Queue} -> wl_region#2495.subtract(0, 0, 2, 2) -[2618919.550] {Default Queue} -> wl_subsurface#2490.set_position(1, -11) -[2618919.554] {Default Queue} -> wl_region#2495.subtract(0, 0, 141, 379) -[2618919.558] {Default Queue} -> wl_region#2495.add(-138, -386, 140, 368) -[2618919.562] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.565] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.569] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) -[2618919.579] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618919.583] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618919.587] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.590] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.596] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618919.600] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618919.604] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.607] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.612] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618919.616] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618919.619] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.623] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.627] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618919.631] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618919.635] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.638] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.643] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618919.646] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618919.650] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.654] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.659] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618919.666] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618919.671] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.675] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.679] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618919.683] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618919.687] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.691] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.695] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618919.699] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618919.703] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.706] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.711] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618919.715] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618919.718] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.722] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.727] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618919.731] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618919.734] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.738] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.743] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618919.747] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618919.751] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.755] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.759] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618919.763] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618919.767] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.770] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.775] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618919.779] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618919.782] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.786] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.790] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618919.794] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618919.798] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.801] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.806] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618919.810] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618919.814] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.818] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.822] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618919.826] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618919.830] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.833] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.837] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618919.841] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618919.845] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.849] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.853] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618919.857] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618919.866] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.895] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.917] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2493, 0, 0) -[2618919.926] {Default Queue} -> wl_surface#2471.commit() -[2618919.948] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618919.954] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618919.959] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.963] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.971] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618919.975] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618919.979] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.983] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618919.988] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618919.992] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618919.996] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618919.999] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618920.004] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618920.008] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618920.012] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618920.016] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618920.021] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618920.025] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618920.029] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618920.033] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618920.040] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618920.044] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618920.048] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618920.051] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618920.057] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618920.061] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618920.065] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618920.069] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618920.073] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618920.078] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618920.081] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618920.085] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618920.090] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618920.094] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618920.098] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618920.101] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618920.106] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618920.111] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618920.115] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618920.119] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618920.125] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618920.129] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618920.133] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618920.136] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618920.141] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618920.145] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618920.149] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618920.153] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618920.157] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618920.161] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618920.166] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618920.173] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618920.179] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618920.183] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618920.187] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618920.191] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618920.197] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618920.201] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618920.205] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618920.208] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618920.213] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618920.218] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618920.222] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618920.225] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618920.230] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618920.234] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618920.238] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618920.246] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618920.252] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2618920.256] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2618920.260] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2618920.264] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2618920.268] {Default Queue} -> wl_region#2463.subtract(0, 0, 140, 388) -[2618920.272] {Default Queue} -> wl_region#2463.add(-138, -386, 140, 368) -[2618920.276] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) -[2618920.280] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) -[2618920.284] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) -[2618920.288] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) -[2618920.301] {Default Queue} -> wl_buffer#2461.destroy() -[2618920.306] {Default Queue} -> wl_buffer#2462.destroy() -[2618920.311] {Default Queue} -> wl_shm_pool#2459.destroy() -[2618920.315] {Default Queue} -> wl_shm_pool#2460.destroy() -[2618920.359] {Default Queue} -> wl_shm#2447.create_pool(new id wl_shm_pool#1307, fd 575, 16) -[2618920.366] {Default Queue} -> wl_shm#2447.create_pool(new id wl_shm_pool#1310, fd 578, 16) -[2618920.371] {Default Queue} -> wl_shm_pool#1307.create_buffer(new id wl_buffer#1309, 0, 2, 2, 8, 0) -[2618920.376] {Default Queue} -> wl_shm_pool#1310.create_buffer(new id wl_buffer#1084, 0, 2, 2, 8, 0) -[2618920.384] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) -[2618920.388] {Default Queue} -> wl_surface#2439.commit() -[2618920.393] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) -[2618920.397] {Default Queue} -> wl_surface#2439.commit() -[2618920.405] {Default Queue} -> wl_region#2463.subtract(0, 0, 140, 388) -[2618920.409] {Default Queue} -> wl_region#2463.add(-138, -386, 140, 368) -[2618920.413] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) -[2618920.418] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) -[2618920.422] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) -[2618920.426] {Default Queue} -> wl_surface#2439.commit() -[2618920.433] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) -[2618920.437] {Default Queue} -> wl_surface#2439.commit() -[2618921.504] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) -[2618921.517] {Default Queue} -> wl_surface#2439.commit() -[2618921.528] {Default Queue} -> wl_region#2463.subtract(0, 0, 140, 388) -[2618921.532] {Default Queue} -> wl_region#2463.add(-138, -386, 140, 368) -[2618921.537] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) -[2618921.541] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) -[2618921.550] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) -[2618921.557] {Default Queue} -> wl_surface#2439.commit() -[2618921.561] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) -[2618921.565] {Default Queue} -> wl_surface#2439.commit() -[2618921.572] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) -[2618921.576] {Default Queue} -> wl_surface#2439.commit() -[2618921.582] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) -[2618921.586] {Default Queue} -> wl_surface#2375.commit() -[2618922.651] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) -[2618922.664] {Default Queue} -> wl_surface#2375.commit() -[2618922.674] {Default Queue} -> wl_region#2399.subtract(0, 0, 140, 388) -[2618922.679] {Default Queue} -> wl_region#2399.add(-135, -383, 137, 385) -[2618922.683] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) -[2618922.687] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) -[2618922.693] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) -[2618922.697] {Default Queue} -> wl_surface#2375.commit() -[2618922.701] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) -[2618922.705] {Default Queue} -> wl_surface#2375.commit() -[2618922.711] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) -[2618922.715] {Default Queue} -> wl_surface#2375.commit() -[2618922.720] {Default Queue} -> wl_region#2367.subtract(0, 0, 115, 167) -[2618922.727] {Default Queue} -> wl_region#2399.subtract(0, 0, 2, 2) -[2618922.731] {Default Queue} -> wl_subsurface#2394.set_position(3, 3) -[2618922.735] {Default Queue} -> wl_region#2399.subtract(0, 0, 140, 388) -[2618922.739] {Default Queue} -> wl_region#2399.add(-135, -383, 137, 385) -[2618922.743] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) -[2618922.747] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) -[2618922.751] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2618922.756] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) -[2618922.760] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) -[2618922.764] {Default Queue} -> wl_surface#2375.damage(0, 0, 2, 2) -[2618922.770] {Default Queue} -> wl_region#2399.subtract(0, 0, 140, 388) -[2618922.774] {Default Queue} -> wl_region#2399.add(-135, -383, 137, 385) -[2618922.778] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) -[2618922.782] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) -[2618922.786] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3724, 0, 0) -[2618922.790] {Default Queue} -> wl_surface#2375.commit() -[2618922.795] {Default Queue} -> wl_region#2399.subtract(0, 0, 247, 547) -[2618922.799] {Default Queue} -> wl_region#2399.add(-135, -383, 244, 544) -[2618922.803] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) -[2618922.808] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) -[2618922.812] {Default Queue} -> wl_region#2367.subtract(0, 0, 137, 385) -[2618922.816] {Default Queue} -> wl_region#2367.add(-20, -383, 22, 385) -[2618922.820] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618922.824] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618922.828] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2618922.832] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) -[2618922.836] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) -[2618922.840] {Default Queue} -> wl_surface#2375.damage(0, 0, 109, 161) -[2618922.844] {Default Queue} -> wl_surface#2343.damage(0, 0, 115, 167) -[2618922.857] {Default Queue} -> wl_buffer#2365.destroy() -[2618922.867] {Default Queue} -> wl_buffer#2366.destroy() -[2618922.871] {Default Queue} -> wl_shm_pool#2363.destroy() -[2618922.875] {Default Queue} -> wl_shm_pool#2364.destroy() -[2618922.982] {Default Queue} -> wl_shm#2351.create_pool(new id wl_shm_pool#1083, fd 575, 76820) -[2618922.989] {Default Queue} -> wl_shm#2351.create_pool(new id wl_shm_pool#1086, fd 578, 76820) -[2618922.998] {Default Queue} -> wl_shm_pool#1083.create_buffer(new id wl_buffer#1085, 0, 115, 167, 460, 0) -[2618923.005] {Default Queue} -> wl_shm_pool#1086.create_buffer(new id wl_buffer#1244, 0, 115, 167, 460, 0) -[2618923.029] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) -[2618923.034] {Default Queue} -> wl_surface#2343.commit() -[2618923.056] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) -[2618923.061] {Default Queue} -> wl_surface#2343.commit() -[2618923.071] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) -[2618923.075] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) -[2618923.079] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618923.083] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618923.093] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) -[2618923.097] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) -[2618923.102] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618923.106] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618923.112] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) -[2618923.116] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) -[2618923.120] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618923.124] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618923.130] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) -[2618923.134] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) -[2618923.137] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618923.141] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618923.148] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) -[2618923.152] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) -[2618923.156] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618923.159] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618923.166] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) -[2618923.170] {Default Queue} -> wl_surface#2343.commit() -[2618923.178] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) -[2618923.183] {Default Queue} -> wl_surface#2343.commit() -[2618924.252] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) -[2618924.265] {Default Queue} -> wl_surface#2343.commit() -[2618924.278] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) -[2618924.283] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) -[2618924.288] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618924.293] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618924.300] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) -[2618924.304] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) -[2618924.308] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618924.312] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618924.318] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) -[2618924.322] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) -[2618924.326] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618924.330] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618924.335] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) -[2618924.339] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) -[2618924.343] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618924.347] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618924.353] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) -[2618924.357] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) -[2618924.361] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618924.365] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618924.376] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) -[2618924.384] {Default Queue} -> wl_surface#2343.commit() -[2618924.389] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) -[2618924.393] {Default Queue} -> wl_surface#2343.commit() -[2618924.401] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) -[2618924.405] {Default Queue} -> wl_surface#2343.commit() -[2618924.410] {Default Queue} -> wl_region#2591.subtract(0, 0, 2, 20) -[2618924.415] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 385) -[2618924.419] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 385) -[2618924.423] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2618924.427] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2618924.431] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2618924.444] {Default Queue} -> wl_buffer#2589.destroy() -[2618924.450] {Default Queue} -> wl_buffer#2590.destroy() -[2618924.454] {Default Queue} -> wl_shm_pool#2587.destroy() -[2618924.458] {Default Queue} -> wl_shm_pool#2588.destroy() -[2618924.501] {Default Queue} -> wl_shm#2575.create_pool(new id wl_shm_pool#1243, fd 575, 160) -[2618924.508] {Default Queue} -> wl_shm#2575.create_pool(new id wl_shm_pool#1246, fd 578, 160) -[2618924.512] {Default Queue} -> wl_shm_pool#1243.create_buffer(new id wl_buffer#1245, 0, 2, 20, 8, 0) -[2618924.517] {Default Queue} -> wl_shm_pool#1246.create_buffer(new id wl_buffer#1212, 0, 2, 20, 8, 0) -[2618924.524] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) -[2618924.528] {Default Queue} -> wl_surface#2567.commit() -[2618924.534] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) -[2618924.538] {Default Queue} -> wl_surface#2567.commit() -[2618924.546] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 385) -[2618924.550] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 385) -[2618924.554] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2618924.558] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2618924.690] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 385) -[2618924.695] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 385) -[2618924.699] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2618924.703] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2618924.712] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2618924.716] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2618924.802] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 385) -[2618924.808] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 385) -[2618924.812] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2618924.816] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2618924.822] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2618924.826] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2618924.831] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) -[2618924.835] {Default Queue} -> wl_surface#2567.commit() -[2618924.841] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) -[2618924.845] {Default Queue} -> wl_surface#2567.commit() -[2618925.868] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) -[2618925.880] {Default Queue} -> wl_surface#2567.commit() -[2618925.891] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 385) -[2618925.897] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 385) -[2618925.901] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2618925.905] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2618926.016] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 385) -[2618926.022] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 385) -[2618926.026] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2618926.030] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2618926.035] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2618926.044] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2618926.128] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 385) -[2618926.133] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 385) -[2618926.138] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2618926.142] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2618926.148] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2618926.152] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2618926.157] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) -[2618926.161] {Default Queue} -> wl_surface#2567.commit() -[2618926.165] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) -[2618926.169] {Default Queue} -> wl_surface#2567.commit() -[2618926.176] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) -[2618926.180] {Default Queue} -> wl_surface#2567.commit() -[2618926.186] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) -[2618926.190] {Default Queue} -> wl_surface#2631.commit() -[2618927.252] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) -[2618927.258] {Default Queue} -> wl_surface#2631.commit() -[2618927.267] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 368) -[2618927.271] {Default Queue} -> wl_region#2655.add(-253, -386, 255, 368) -[2618927.277] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618927.281] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618927.288] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 368) -[2618927.292] {Default Queue} -> wl_region#2655.add(-253, -386, 255, 368) -[2618927.296] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618927.300] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618927.305] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 368) -[2618927.309] {Default Queue} -> wl_region#2655.add(-253, -386, 255, 368) -[2618927.313] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618927.316] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618927.321] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 368) -[2618927.325] {Default Queue} -> wl_region#2655.add(-253, -386, 255, 368) -[2618927.329] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618927.333] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618927.338] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 368) -[2618927.342] {Default Queue} -> wl_region#2655.add(-253, -386, 255, 368) -[2618927.346] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618927.350] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618927.356] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 368) -[2618927.360] {Default Queue} -> wl_region#2655.add(-253, -386, 255, 368) -[2618927.364] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618927.367] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618927.372] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) -[2618927.376] {Default Queue} -> wl_surface#2631.commit() -[2618927.380] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) -[2618927.384] {Default Queue} -> wl_surface#2631.commit() -[2618927.389] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) -[2618927.393] {Default Queue} -> wl_surface#2631.commit() -[2618927.398] {Default Queue} -> wl_region#2623.subtract(0, 0, 2, 2) -[2618927.403] {Default Queue} -> wl_region#2655.subtract(0, 0, 2, 2) -[2618927.408] {Default Queue} -> wl_subsurface#2650.set_position(1, -11) -[2618927.412] {Default Queue} -> wl_region#2655.subtract(0, 0, 256, 379) -[2618927.416] {Default Queue} -> wl_region#2655.add(-253, -386, 255, 368) -[2618927.420] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618927.424] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618927.432] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) -[2618927.440] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) -[2618927.444] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) -[2618927.448] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618927.452] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618927.458] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) -[2618927.462] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) -[2618927.466] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618927.470] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618927.475] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) -[2618927.478] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) -[2618927.483] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618927.486] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618927.491] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) -[2618927.495] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) -[2618927.500] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618927.505] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618927.512] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) -[2618927.518] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) -[2618927.524] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618927.529] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618927.538] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) -[2618927.546] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) -[2618927.552] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618927.557] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618927.564] {Default Queue} -> wl_surface#2631.attach(wl_buffer#2653, 0, 0) -[2618927.572] {Default Queue} -> wl_surface#2631.commit() -[2618927.582] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) -[2618927.588] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) -[2618927.594] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618927.599] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618927.608] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) -[2618927.615] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) -[2618927.620] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618927.626] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618927.634] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) -[2618927.640] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) -[2618927.646] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618927.651] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618927.658] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) -[2618927.664] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) -[2618927.670] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618927.676] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618927.683] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) -[2618927.689] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) -[2618927.695] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618927.700] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618927.709] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) -[2618927.716] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) -[2618927.722] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2618927.728] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2618927.734] {Default Queue} -> wl_region#2623.subtract(0, 0, 255, 388) -[2618927.741] {Default Queue} -> wl_region#2623.add(-253, -386, 255, 368) -[2618927.751] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) -[2618927.760] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) -[2618927.766] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) -[2618927.772] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) -[2618927.791] {Default Queue} -> wl_buffer#2621.destroy() -[2618927.799] {Default Queue} -> wl_buffer#2622.destroy() -[2618927.805] {Default Queue} -> wl_shm_pool#2619.destroy() -[2618927.812] {Default Queue} -> wl_shm_pool#2620.destroy() -[2618927.887] {Default Queue} -> wl_shm#2607.create_pool(new id wl_shm_pool#1211, fd 575, 16) -[2618927.897] {Default Queue} -> wl_shm#2607.create_pool(new id wl_shm_pool#1214, fd 578, 16) -[2618927.903] {Default Queue} -> wl_shm_pool#1211.create_buffer(new id wl_buffer#1213, 0, 2, 2, 8, 0) -[2618927.910] {Default Queue} -> wl_shm_pool#1214.create_buffer(new id wl_buffer#1180, 0, 2, 2, 8, 0) -[2618927.920] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) -[2618927.926] {Default Queue} -> wl_surface#2599.commit() -[2618927.934] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) -[2618927.942] {Default Queue} -> wl_surface#2599.commit() -[2618927.953] {Default Queue} -> wl_region#2623.subtract(0, 0, 255, 388) -[2618927.959] {Default Queue} -> wl_region#2623.add(-253, -386, 255, 368) -[2618927.965] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) -[2618927.971] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) -[2618927.978] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) -[2618927.984] {Default Queue} -> wl_surface#2599.commit() -[2618927.992] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) -[2618927.999] {Default Queue} -> wl_surface#2599.commit() -[2618929.068] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) -[2618929.073] {Default Queue} -> wl_surface#2599.commit() -[2618929.079] {Default Queue} -> wl_region#2623.subtract(0, 0, 255, 388) -[2618929.083] {Default Queue} -> wl_region#2623.add(-253, -386, 255, 368) -[2618929.087] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) -[2618929.091] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) -[2618929.095] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) -[2618929.099] {Default Queue} -> wl_surface#2599.commit() -[2618929.103] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) -[2618929.107] {Default Queue} -> wl_surface#2599.commit() -[2618929.113] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) -[2618929.116] {Default Queue} -> wl_surface#2599.commit() -[2618929.122] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) -[2618929.126] {Default Queue} -> wl_surface#2535.commit() -[2618930.186] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) -[2618930.192] {Default Queue} -> wl_surface#2535.commit() -[2618930.198] {Default Queue} -> wl_region#2559.subtract(0, 0, 255, 388) -[2618930.202] {Default Queue} -> wl_region#2559.add(-250, -383, 252, 385) -[2618930.206] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) -[2618930.210] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) -[2618930.215] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) -[2618930.219] {Default Queue} -> wl_surface#2535.commit() -[2618930.223] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) -[2618930.227] {Default Queue} -> wl_surface#2535.commit() -[2618930.232] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) -[2618930.236] {Default Queue} -> wl_surface#2535.commit() -[2618930.240] {Default Queue} -> wl_region#2527.subtract(0, 0, 115, 167) -[2618930.246] {Default Queue} -> wl_region#2559.subtract(0, 0, 2, 2) -[2618930.250] {Default Queue} -> wl_subsurface#2554.set_position(3, 3) -[2618930.254] {Default Queue} -> wl_region#2559.subtract(0, 0, 255, 388) -[2618930.258] {Default Queue} -> wl_region#2559.add(-250, -383, 252, 385) -[2618930.266] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) -[2618930.273] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) -[2618930.277] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2618930.281] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) -[2618930.285] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) -[2618930.288] {Default Queue} -> wl_surface#2535.damage(0, 0, 2, 2) -[2618930.294] {Default Queue} -> wl_region#2559.subtract(0, 0, 255, 388) -[2618930.298] {Default Queue} -> wl_region#2559.add(-250, -383, 252, 385) -[2618930.302] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) -[2618930.305] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) -[2618930.310] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3728, 0, 0) -[2618930.314] {Default Queue} -> wl_surface#2535.commit() -[2618930.318] {Default Queue} -> wl_region#2559.subtract(0, 0, 362, 547) -[2618930.322] {Default Queue} -> wl_region#2559.add(-250, -383, 359, 544) -[2618930.326] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) -[2618930.330] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) -[2618930.334] {Default Queue} -> wl_region#2527.subtract(0, 0, 252, 385) -[2618930.338] {Default Queue} -> wl_region#2527.add(-20, -383, 22, 385) -[2618930.342] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618930.346] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618930.350] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2618930.354] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) -[2618930.358] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) -[2618930.362] {Default Queue} -> wl_surface#2535.damage(0, 0, 109, 161) -[2618930.366] {Default Queue} -> wl_surface#2508.damage(0, 0, 115, 167) -[2618930.378] {Default Queue} -> wl_buffer#2525.destroy() -[2618930.384] {Default Queue} -> wl_buffer#2526.destroy() -[2618930.387] {Default Queue} -> wl_shm_pool#2523.destroy() -[2618930.392] {Default Queue} -> wl_shm_pool#2524.destroy() -[2618930.466] {Default Queue} -> wl_shm#2511.create_pool(new id wl_shm_pool#1179, fd 575, 76820) -[2618930.473] {Default Queue} -> wl_shm#2511.create_pool(new id wl_shm_pool#1182, fd 578, 76820) -[2618930.478] {Default Queue} -> wl_shm_pool#1179.create_buffer(new id wl_buffer#1181, 0, 115, 167, 460, 0) -[2618930.482] {Default Queue} -> wl_shm_pool#1182.create_buffer(new id wl_buffer#1148, 0, 115, 167, 460, 0) -[2618930.504] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) -[2618930.509] {Default Queue} -> wl_surface#2508.commit() -[2618930.531] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) -[2618930.536] {Default Queue} -> wl_surface#2508.commit() -[2618930.544] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) -[2618930.550] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) -[2618930.554] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618930.558] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618930.565] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) -[2618930.569] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) -[2618930.573] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618930.577] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618930.582] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) -[2618930.586] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) -[2618930.590] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618930.594] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618930.599] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) -[2618930.603] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) -[2618930.607] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618930.611] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618930.617] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) -[2618930.625] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) -[2618930.631] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618930.635] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618930.642] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) -[2618930.646] {Default Queue} -> wl_surface#2508.commit() -[2618930.653] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) -[2618930.658] {Default Queue} -> wl_surface#2508.commit() -[2618931.724] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) -[2618931.729] {Default Queue} -> wl_surface#2508.commit() -[2618931.737] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) -[2618931.741] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) -[2618931.745] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618931.749] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618931.755] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) -[2618931.759] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) -[2618931.763] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618931.767] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618931.773] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) -[2618931.776] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) -[2618931.780] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618931.784] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618931.789] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) -[2618931.793] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) -[2618931.798] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618931.801] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618931.807] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) -[2618931.811] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) -[2618931.815] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618931.819] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618931.826] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) -[2618931.830] {Default Queue} -> wl_surface#2508.commit() -[2618931.835] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) -[2618931.840] {Default Queue} -> wl_surface#2508.commit() -[2618931.846] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) -[2618931.850] {Default Queue} -> wl_surface#2508.commit() -[2618931.855] {Default Queue} -> wl_region#2751.subtract(0, 0, 2, 20) -[2618931.859] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 385) -[2618931.864] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 385) -[2618931.868] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2618931.876] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2618931.880] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) -[2618931.893] {Default Queue} -> wl_buffer#2749.destroy() -[2618931.898] {Default Queue} -> wl_buffer#2750.destroy() -[2618931.902] {Default Queue} -> wl_shm_pool#2747.destroy() -[2618931.906] {Default Queue} -> wl_shm_pool#2748.destroy() -[2618931.942] {Default Queue} -> wl_shm#2735.create_pool(new id wl_shm_pool#1147, fd 575, 160) -[2618931.949] {Default Queue} -> wl_shm#2735.create_pool(new id wl_shm_pool#1150, fd 578, 160) -[2618931.953] {Default Queue} -> wl_shm_pool#1147.create_buffer(new id wl_buffer#1149, 0, 2, 20, 8, 0) -[2618931.958] {Default Queue} -> wl_shm_pool#1150.create_buffer(new id wl_buffer#1116, 0, 2, 20, 8, 0) -[2618931.964] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) -[2618931.968] {Default Queue} -> wl_surface#2727.commit() -[2618931.973] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) -[2618931.977] {Default Queue} -> wl_surface#2727.commit() -[2618931.986] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 385) -[2618931.995] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 385) -[2618932.001] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2618932.005] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2618932.094] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 385) -[2618932.099] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 385) -[2618932.103] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2618932.108] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2618932.114] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) -[2618932.118] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) -[2618932.179] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 385) -[2618932.184] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 385) -[2618932.188] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2618932.192] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2618932.198] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) -[2618932.202] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) -[2618932.206] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) -[2618932.210] {Default Queue} -> wl_surface#2727.commit() -[2618932.216] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) -[2618932.220] {Default Queue} -> wl_surface#2727.commit() -[2618933.285] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) -[2618933.291] {Default Queue} -> wl_surface#2727.commit() -[2618933.297] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 385) -[2618933.302] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 385) -[2618933.306] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2618933.310] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2618933.381] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 385) -[2618933.386] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 385) -[2618933.390] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2618933.394] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2618933.399] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) -[2618933.403] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) -[2618933.460] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 385) -[2618933.465] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 385) -[2618933.469] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2618933.473] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2618933.478] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) -[2618933.482] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) -[2618933.487] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) -[2618933.491] {Default Queue} -> wl_surface#2727.commit() -[2618933.495] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) -[2618933.499] {Default Queue} -> wl_surface#2727.commit() -[2618933.504] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) -[2618933.508] {Default Queue} -> wl_surface#2727.commit() -[2618933.514] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) -[2618933.518] {Default Queue} -> wl_surface#2791.commit() -[2618934.578] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) -[2618934.583] {Default Queue} -> wl_surface#2791.commit() -[2618934.590] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) -[2618934.594] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) -[2618934.599] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618934.603] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618934.609] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) -[2618934.613] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) -[2618934.617] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618934.624] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618934.631] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) -[2618934.635] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) -[2618934.639] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618934.643] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618934.647] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) -[2618934.651] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) -[2618934.655] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618934.659] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618934.664] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) -[2618934.668] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) -[2618934.672] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618934.676] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618934.682] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) -[2618934.686] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) -[2618934.690] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618934.694] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618934.699] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) -[2618934.703] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) -[2618934.707] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618934.711] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618934.716] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) -[2618934.720] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) -[2618934.724] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618934.728] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618934.732] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) -[2618934.736] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) -[2618934.740] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618934.744] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618934.754] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) -[2618934.759] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) -[2618934.763] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618934.767] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618934.771] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) -[2618934.775] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) -[2618934.779] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618934.783] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618934.787] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) -[2618934.791] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) -[2618934.795] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618934.799] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618934.803] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 368) -[2618934.807] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) -[2618934.811] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618934.815] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618934.820] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) -[2618934.824] {Default Queue} -> wl_surface#2791.commit() -[2618934.828] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) -[2618934.832] {Default Queue} -> wl_surface#2791.commit() -[2618934.837] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) -[2618934.841] {Default Queue} -> wl_surface#2791.commit() -[2618934.845] {Default Queue} -> wl_region#2783.subtract(0, 0, 2, 2) -[2618934.850] {Default Queue} -> wl_region#2815.subtract(0, 0, 2, 2) -[2618934.857] {Default Queue} -> wl_subsurface#2810.set_position(1, -7) -[2618934.863] {Default Queue} -> wl_region#2815.subtract(0, 0, 371, 375) -[2618934.867] {Default Queue} -> wl_region#2815.add(-368, -386, 370, 368) -[2618934.874] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618934.878] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618934.882] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) -[2618934.888] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618934.892] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618934.896] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618934.899] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618934.905] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618934.909] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618934.913] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618934.917] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618934.921] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618934.925] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618934.929] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618934.933] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618934.937] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618934.942] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618934.945] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618934.950] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618934.954] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618934.958] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618934.962] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618934.966] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618934.971] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618934.975] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618934.979] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618934.983] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618934.988] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618934.992] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618934.996] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618935.000] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618935.005] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618935.008] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618935.012] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618935.016] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618935.020] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618935.025] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618935.029] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618935.033] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618935.041] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618935.045] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618935.049] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618935.053] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618935.057] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618935.062] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618935.065] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618935.069] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618935.073] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618935.077] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618935.085] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618935.090] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618935.095] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618935.099] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618935.103] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618935.107] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618935.111] {Default Queue} -> wl_surface#2791.attach(wl_buffer#2813, 0, 0) -[2618935.115] {Default Queue} -> wl_surface#2791.commit() -[2618935.120] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618935.124] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618935.128] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618935.132] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618935.138] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618935.142] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618935.146] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618935.150] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618935.154] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618935.158] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618935.162] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618935.166] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618935.171] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618935.175] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618935.179] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618935.183] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618935.187] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618935.191] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618935.195] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618935.199] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618935.204] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618935.208] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618935.212] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618935.216] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618935.220] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618935.224] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618935.228] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618935.231] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618935.236] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618935.240] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618935.245] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618935.249] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618935.253] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618935.257] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618935.261] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618935.264] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618935.273] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618935.277] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618935.281] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618935.285] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618935.289] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618935.293] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618935.297] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618935.301] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618935.308] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618935.314] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618935.318] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618935.321] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618935.326] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2618935.330] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2618935.334] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2618935.338] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2618935.342] {Default Queue} -> wl_region#2783.subtract(0, 0, 370, 388) -[2618935.346] {Default Queue} -> wl_region#2783.add(-368, -386, 370, 368) -[2618935.350] {Default Queue} -> wl_surface#2759.set_opaque_region(wl_region#2784) -[2618935.354] {Default Queue} -> wl_surface#2759.set_input_region(wl_region#2783) -[2618935.359] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) -[2618935.363] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) -[2618935.382] {Default Queue} -> wl_buffer#2781.destroy() -[2618935.387] {Default Queue} -> wl_buffer#2782.destroy() -[2618935.391] {Default Queue} -> wl_shm_pool#2779.destroy() -[2618935.395] {Default Queue} -> wl_shm_pool#2780.destroy() -[2618935.433] {Default Queue} -> wl_shm#2767.create_pool(new id wl_shm_pool#1115, fd 575, 16) -[2618935.439] {Default Queue} -> wl_shm#2767.create_pool(new id wl_shm_pool#1118, fd 578, 16) -[2618935.443] {Default Queue} -> wl_shm_pool#1115.create_buffer(new id wl_buffer#1117, 0, 2, 2, 8, 0) -[2618935.448] {Default Queue} -> wl_shm_pool#1118.create_buffer(new id wl_buffer#988, 0, 2, 2, 8, 0) -[2618935.454] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) -[2618935.458] {Default Queue} -> wl_surface#2759.commit() -[2618935.463] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) -[2618935.467] {Default Queue} -> wl_surface#2759.commit() -[2618935.474] {Default Queue} -> wl_region#2783.subtract(0, 0, 370, 388) -[2618935.478] {Default Queue} -> wl_region#2783.add(-368, -386, 370, 368) -[2618935.482] {Default Queue} -> wl_surface#2759.set_opaque_region(wl_region#2784) -[2618935.486] {Default Queue} -> wl_surface#2759.set_input_region(wl_region#2783) -[2618935.490] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) -[2618935.494] {Default Queue} -> wl_surface#2759.commit() -[2618935.500] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) -[2618935.504] {Default Queue} -> wl_surface#2759.commit() -[2618936.567] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) -[2618936.574] {Default Queue} -> wl_surface#2759.commit() -[2618936.579] {Default Queue} -> wl_region#2783.subtract(0, 0, 370, 388) -[2618936.583] {Default Queue} -> wl_region#2783.add(-368, -386, 370, 368) -[2618936.587] {Default Queue} -> wl_surface#2759.set_opaque_region(wl_region#2784) -[2618936.591] {Default Queue} -> wl_surface#2759.set_input_region(wl_region#2783) -[2618936.595] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) -[2618936.599] {Default Queue} -> wl_surface#2759.commit() -[2618936.603] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) -[2618936.607] {Default Queue} -> wl_surface#2759.commit() -[2618936.612] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) -[2618936.616] {Default Queue} -> wl_surface#2759.commit() -[2618936.621] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) -[2618936.626] {Default Queue} -> wl_surface#2695.commit() -[2618937.687] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) -[2618937.692] {Default Queue} -> wl_surface#2695.commit() -[2618937.698] {Default Queue} -> wl_region#2719.subtract(0, 0, 370, 388) -[2618937.702] {Default Queue} -> wl_region#2719.add(-365, -383, 367, 385) -[2618937.706] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) -[2618937.711] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) -[2618937.715] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) -[2618937.723] {Default Queue} -> wl_surface#2695.commit() -[2618937.729] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) -[2618937.733] {Default Queue} -> wl_surface#2695.commit() -[2618937.738] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) -[2618937.742] {Default Queue} -> wl_surface#2695.commit() -[2618937.746] {Default Queue} -> wl_region#2687.subtract(0, 0, 115, 167) -[2618937.753] {Default Queue} -> wl_region#2719.subtract(0, 0, 2, 2) -[2618937.757] {Default Queue} -> wl_subsurface#2714.set_position(3, 3) -[2618937.761] {Default Queue} -> wl_region#2719.subtract(0, 0, 370, 388) -[2618937.766] {Default Queue} -> wl_region#2719.add(-365, -383, 367, 385) -[2618937.770] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) -[2618937.773] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) -[2618937.778] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) -[2618937.782] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) -[2618937.786] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) -[2618937.790] {Default Queue} -> wl_surface#2695.damage(0, 0, 2, 2) -[2618937.795] {Default Queue} -> wl_region#2719.subtract(0, 0, 370, 388) -[2618937.799] {Default Queue} -> wl_region#2719.add(-365, -383, 367, 385) -[2618937.803] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) -[2618937.806] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) -[2618937.811] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3732, 0, 0) -[2618937.815] {Default Queue} -> wl_surface#2695.commit() -[2618937.819] {Default Queue} -> wl_region#2719.subtract(0, 0, 477, 547) -[2618937.823] {Default Queue} -> wl_region#2719.add(-365, -383, 474, 544) -[2618937.827] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) -[2618937.831] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) -[2618937.835] {Default Queue} -> wl_region#2687.subtract(0, 0, 367, 385) -[2618937.840] {Default Queue} -> wl_region#2687.add(-20, -383, 22, 385) -[2618937.844] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618937.847] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618937.851] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) -[2618937.855] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) -[2618937.859] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) -[2618937.868] {Default Queue} -> wl_surface#2695.damage(0, 0, 109, 161) -[2618937.872] {Default Queue} -> wl_surface#2663.damage(0, 0, 115, 167) -[2618937.884] {Default Queue} -> wl_buffer#2685.destroy() -[2618937.889] {Default Queue} -> wl_buffer#2686.destroy() -[2618937.893] {Default Queue} -> wl_shm_pool#2683.destroy() -[2618937.897] {Default Queue} -> wl_shm_pool#2684.destroy() -[2618937.989] {Default Queue} -> wl_shm#2671.create_pool(new id wl_shm_pool#987, fd 575, 76820) -[2618937.996] {Default Queue} -> wl_shm#2671.create_pool(new id wl_shm_pool#990, fd 578, 76820) -[2618938.000] {Default Queue} -> wl_shm_pool#987.create_buffer(new id wl_buffer#989, 0, 115, 167, 460, 0) -[2618938.005] {Default Queue} -> wl_shm_pool#990.create_buffer(new id wl_buffer#124, 0, 115, 167, 460, 0) -[2618938.027] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) -[2618938.032] {Default Queue} -> wl_surface#2663.commit() -[2618938.054] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) -[2618938.059] {Default Queue} -> wl_surface#2663.commit() -[2618938.068] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) -[2618938.072] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) -[2618938.076] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618938.080] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618938.088] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) -[2618938.092] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) -[2618938.096] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618938.100] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618938.109] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) -[2618938.114] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) -[2618938.118] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618938.122] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618938.127] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) -[2618938.131] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) -[2618938.135] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618938.139] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618938.145] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) -[2618938.149] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) -[2618938.153] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618938.157] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618938.164] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) -[2618938.168] {Default Queue} -> wl_surface#2663.commit() -[2618938.175] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) -[2618938.181] {Default Queue} -> wl_surface#2663.commit() -[2618939.246] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) -[2618939.251] {Default Queue} -> wl_surface#2663.commit() -[2618939.259] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) -[2618939.263] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) -[2618939.267] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618939.271] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618939.276] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) -[2618939.280] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) -[2618939.284] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618939.288] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618939.293] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) -[2618939.297] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) -[2618939.301] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618939.305] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618939.310] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) -[2618939.314] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) -[2618939.319] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618939.323] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618939.328] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) -[2618939.333] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) -[2618939.336] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618939.340] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618939.347] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) -[2618939.351] {Default Queue} -> wl_surface#2663.commit() -[2618939.356] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) -[2618939.360] {Default Queue} -> wl_surface#2663.commit() -[2618939.366] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) -[2618939.370] {Default Queue} -> wl_surface#2663.commit() -[2618939.375] {Default Queue} -> wl_region#2911.subtract(0, 0, 2, 20) -[2618939.379] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 385) -[2618939.383] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 385) -[2618939.387] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2618939.391] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2618939.394] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) -[2618939.408] {Default Queue} -> wl_buffer#2909.destroy() -[2618939.414] {Default Queue} -> wl_buffer#2910.destroy() -[2618939.418] {Default Queue} -> wl_shm_pool#2907.destroy() -[2618939.422] {Default Queue} -> wl_shm_pool#2908.destroy() -[2618939.463] {Default Queue} -> wl_shm#2895.create_pool(new id wl_shm_pool#123, fd 575, 160) -[2618939.471] {Default Queue} -> wl_shm#2895.create_pool(new id wl_shm_pool#126, fd 578, 160) -[2618939.475] {Default Queue} -> wl_shm_pool#123.create_buffer(new id wl_buffer#125, 0, 2, 20, 8, 0) -[2618939.480] {Default Queue} -> wl_shm_pool#126.create_buffer(new id wl_buffer#348, 0, 2, 20, 8, 0) -[2618939.487] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) -[2618939.491] {Default Queue} -> wl_surface#2887.commit() -[2618939.496] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) -[2618939.500] {Default Queue} -> wl_surface#2887.commit() -[2618939.508] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 385) -[2618939.512] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 385) -[2618939.517] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2618939.520] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2618939.619] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 385) -[2618939.624] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 385) -[2618939.628] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2618939.632] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2618939.638] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) -[2618939.642] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) -[2618939.710] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 385) -[2618939.715] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 385) -[2618939.719] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2618939.723] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2618939.729] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) -[2618939.733] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) -[2618939.738] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) -[2618939.742] {Default Queue} -> wl_surface#2887.commit() -[2618939.747] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) -[2618939.752] {Default Queue} -> wl_surface#2887.commit() -[2618940.815] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) -[2618940.820] {Default Queue} -> wl_surface#2887.commit() -[2618940.827] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 385) -[2618940.831] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 385) -[2618940.835] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2618940.839] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2618940.922] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 385) -[2618940.928] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 385) -[2618940.931] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2618940.936] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2618940.941] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) -[2618940.945] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) -[2618941.009] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 385) -[2618941.014] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 385) -[2618941.018] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2618941.022] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2618941.027] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) -[2618941.032] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) -[2618941.036] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) -[2618941.040] {Default Queue} -> wl_surface#2887.commit() -[2618941.044] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) -[2618941.048] {Default Queue} -> wl_surface#2887.commit() -[2618941.056] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) -[2618941.060] {Default Queue} -> wl_surface#2887.commit() -[2618941.066] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) -[2618941.070] {Default Queue} -> wl_surface#2951.commit() -[2618942.135] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) -[2618942.142] {Default Queue} -> wl_surface#2951.commit() -[2618942.148] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 368) -[2618942.153] {Default Queue} -> wl_region#2975.add(-483, -386, 485, 368) -[2618942.157] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618942.160] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618942.167] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 368) -[2618942.171] {Default Queue} -> wl_region#2975.add(-483, -386, 485, 368) -[2618942.175] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618942.179] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618942.184] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 368) -[2618942.188] {Default Queue} -> wl_region#2975.add(-483, -386, 485, 368) -[2618942.192] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618942.195] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618942.200] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 368) -[2618942.204] {Default Queue} -> wl_region#2975.add(-483, -386, 485, 368) -[2618942.208] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618942.211] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618942.216] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 368) -[2618942.220] {Default Queue} -> wl_region#2975.add(-483, -386, 485, 368) -[2618942.224] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618942.227] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618942.232] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) -[2618942.236] {Default Queue} -> wl_surface#2951.commit() -[2618942.239] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) -[2618942.243] {Default Queue} -> wl_surface#2951.commit() -[2618942.248] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) -[2618942.252] {Default Queue} -> wl_surface#2951.commit() -[2618942.256] {Default Queue} -> wl_region#2943.subtract(0, 0, 2, 2) -[2618942.262] {Default Queue} -> wl_region#2975.subtract(0, 0, 2, 2) -[2618942.266] {Default Queue} -> wl_subsurface#2970.set_position(1, 1) -[2618942.270] {Default Queue} -> wl_region#2975.subtract(0, 0, 486, 369) -[2618942.274] {Default Queue} -> wl_region#2975.add(-483, -386, 485, 368) -[2618942.278] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618942.281] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618942.285] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) -[2618942.290] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 388) -[2618942.294] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 387) -[2618942.298] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618942.302] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618942.307] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 388) -[2618942.312] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 387) -[2618942.316] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618942.320] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618942.324] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 388) -[2618942.328] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 387) -[2618942.332] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618942.336] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618942.341] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 388) -[2618942.345] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 387) -[2618942.349] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618942.352] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618942.357] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 388) -[2618942.361] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 387) -[2618942.368] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618942.373] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618942.377] {Default Queue} -> wl_surface#2951.attach(wl_buffer#2973, 0, 0) -[2618942.381] {Default Queue} -> wl_surface#2951.commit() -[2618942.386] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 388) -[2618942.390] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 387) -[2618942.394] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618942.398] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618942.403] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 388) -[2618942.407] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 387) -[2618942.410] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618942.414] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618942.418] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 388) -[2618942.422] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 387) -[2618942.426] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618942.430] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618942.434] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 388) -[2618942.438] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 387) -[2618942.442] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618942.446] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618942.451] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 388) -[2618942.455] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 387) -[2618942.459] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2618942.463] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2618942.467] {Default Queue} -> wl_region#2943.subtract(0, 0, 485, 388) -[2618942.471] {Default Queue} -> wl_region#2943.add(-483, -386, 485, 368) -[2618942.476] {Default Queue} -> wl_surface#2919.set_opaque_region(wl_region#2944) -[2618942.479] {Default Queue} -> wl_surface#2919.set_input_region(wl_region#2943) -[2618942.483] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) -[2618942.488] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) -[2618942.500] {Default Queue} -> wl_buffer#2941.destroy() -[2618942.504] {Default Queue} -> wl_buffer#2942.destroy() -[2618942.508] {Default Queue} -> wl_shm_pool#2939.destroy() -[2618942.512] {Default Queue} -> wl_shm_pool#2940.destroy() -[2618942.549] {Default Queue} -> wl_shm#2927.create_pool(new id wl_shm_pool#347, fd 575, 16) -[2618942.555] {Default Queue} -> wl_shm#2927.create_pool(new id wl_shm_pool#350, fd 578, 16) -[2618942.559] {Default Queue} -> wl_shm_pool#347.create_buffer(new id wl_buffer#349, 0, 2, 2, 8, 0) -[2618942.564] {Default Queue} -> wl_shm_pool#350.create_buffer(new id wl_buffer#444, 0, 2, 2, 8, 0) -[2618942.570] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) -[2618942.574] {Default Queue} -> wl_surface#2919.commit() -[2618942.580] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) -[2618942.584] {Default Queue} -> wl_surface#2919.commit() -[2618942.590] {Default Queue} -> wl_region#2943.subtract(0, 0, 485, 388) -[2618942.594] {Default Queue} -> wl_region#2943.add(-483, -386, 485, 368) -[2618942.598] {Default Queue} -> wl_surface#2919.set_opaque_region(wl_region#2944) -[2618942.602] {Default Queue} -> wl_surface#2919.set_input_region(wl_region#2943) -[2618942.606] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) -[2618942.610] {Default Queue} -> wl_surface#2919.commit() -[2618942.616] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) -[2618942.620] {Default Queue} -> wl_surface#2919.commit() -[2618943.682] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) -[2618943.689] {Default Queue} -> wl_surface#2919.commit() -[2618943.694] {Default Queue} -> wl_region#2943.subtract(0, 0, 485, 388) -[2618943.702] {Default Queue} -> wl_region#2943.add(-483, -386, 485, 368) -[2618943.709] {Default Queue} -> wl_surface#2919.set_opaque_region(wl_region#2944) -[2618943.713] {Default Queue} -> wl_surface#2919.set_input_region(wl_region#2943) -[2618943.717] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) -[2618943.721] {Default Queue} -> wl_surface#2919.commit() -[2618943.725] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) -[2618943.729] {Default Queue} -> wl_surface#2919.commit() -[2618943.735] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) -[2618943.739] {Default Queue} -> wl_surface#2919.commit() -[2618943.744] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) -[2618943.749] {Default Queue} -> wl_surface#2855.commit() -[2618944.809] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) -[2618944.814] {Default Queue} -> wl_surface#2855.commit() -[2618944.820] {Default Queue} -> wl_region#2879.subtract(0, 0, 485, 388) -[2618944.824] {Default Queue} -> wl_region#2879.add(-480, -383, 482, 385) -[2618944.828] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) -[2618944.832] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) -[2618944.837] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) -[2618944.841] {Default Queue} -> wl_surface#2855.commit() -[2618944.844] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) -[2618944.848] {Default Queue} -> wl_surface#2855.commit() -[2618944.853] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) -[2618944.857] {Default Queue} -> wl_surface#2855.commit() -[2618944.865] {Default Queue} -> wl_region#2847.subtract(0, 0, 115, 167) -[2618944.871] {Default Queue} -> wl_region#2879.subtract(0, 0, 2, 2) -[2618944.876] {Default Queue} -> wl_subsurface#2874.set_position(3, 3) -[2618944.879] {Default Queue} -> wl_region#2879.subtract(0, 0, 485, 388) -[2618944.883] {Default Queue} -> wl_region#2879.add(-480, -383, 482, 385) -[2618944.887] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) -[2618944.891] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) -[2618944.895] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) -[2618944.899] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) -[2618944.903] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) -[2618944.907] {Default Queue} -> wl_surface#2855.damage(0, 0, 2, 2) -[2618944.912] {Default Queue} -> wl_region#2879.subtract(0, 0, 485, 388) -[2618944.916] {Default Queue} -> wl_region#2879.add(-480, -383, 482, 385) -[2618944.920] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) -[2618944.924] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) -[2618944.928] {Default Queue} -> wl_surface#2855.attach(wl_buffer#3736, 0, 0) -[2618944.932] {Default Queue} -> wl_surface#2855.commit() -[2618944.937] {Default Queue} -> wl_region#2879.subtract(0, 0, 592, 547) -[2618944.941] {Default Queue} -> wl_region#2879.add(-480, -383, 589, 544) -[2618944.944] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) -[2618944.948] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) -[2618944.952] {Default Queue} -> wl_region#2847.subtract(0, 0, 482, 385) -[2618944.956] {Default Queue} -> wl_region#2847.add(-20, -383, 22, 385) -[2618944.960] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618944.965] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618944.969] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) -[2618944.973] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) -[2618944.977] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) -[2618944.981] {Default Queue} -> wl_surface#2855.damage(0, 0, 109, 161) -[2618944.985] {Default Queue} -> wl_surface#2823.damage(0, 0, 115, 167) -[2618944.997] {Default Queue} -> wl_buffer#2845.destroy() -[2618945.003] {Default Queue} -> wl_buffer#2846.destroy() -[2618945.007] {Default Queue} -> wl_shm_pool#2843.destroy() -[2618945.011] {Default Queue} -> wl_shm_pool#2844.destroy() -[2618945.086] {Default Queue} -> wl_shm#2831.create_pool(new id wl_shm_pool#443, fd 575, 76820) -[2618945.094] {Default Queue} -> wl_shm#2831.create_pool(new id wl_shm_pool#446, fd 578, 76820) -[2618945.100] {Default Queue} -> wl_shm_pool#443.create_buffer(new id wl_buffer#445, 0, 115, 167, 460, 0) -[2618945.104] {Default Queue} -> wl_shm_pool#446.create_buffer(new id wl_buffer#700, 0, 115, 167, 460, 0) -[2618945.127] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) -[2618945.132] {Default Queue} -> wl_surface#2823.commit() -[2618945.155] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) -[2618945.160] {Default Queue} -> wl_surface#2823.commit() -[2618945.169] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) -[2618945.174] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) -[2618945.178] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618945.182] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618945.189] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) -[2618945.193] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) -[2618945.197] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618945.202] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618945.207] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) -[2618945.211] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) -[2618945.215] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618945.219] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618945.224] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) -[2618945.228] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) -[2618945.232] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618945.236] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618945.242] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) -[2618945.246] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) -[2618945.250] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618945.254] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618945.261] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) -[2618945.265] {Default Queue} -> wl_surface#2823.commit() -[2618945.272] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) -[2618945.276] {Default Queue} -> wl_surface#2823.commit() -[2618946.340] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) -[2618946.346] {Default Queue} -> wl_surface#2823.commit() -[2618946.353] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) -[2618946.357] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) -[2618946.361] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618946.365] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618946.371] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) -[2618946.375] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) -[2618946.378] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618946.382] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618946.387] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) -[2618946.391] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) -[2618946.395] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618946.399] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618946.404] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) -[2618946.408] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) -[2618946.412] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618946.415] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618946.421] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) -[2618946.425] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) -[2618946.433] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618946.439] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618946.445] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) -[2618946.450] {Default Queue} -> wl_surface#2823.commit() -[2618946.455] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) -[2618946.458] {Default Queue} -> wl_surface#2823.commit() -[2618946.465] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) -[2618946.469] {Default Queue} -> wl_surface#2823.commit() -[2618946.473] {Default Queue} -> wl_region#2111.subtract(0, 0, 576, 167) -[2618946.480] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) -[2618946.484] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) -[2618946.488] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618946.491] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618946.498] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) -[2618946.502] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) -[2618946.506] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618946.510] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618946.516] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) -[2618946.520] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) -[2618946.524] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618946.528] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618946.533] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) -[2618946.537] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) -[2618946.541] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618946.544] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618946.551] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) -[2618946.555] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) -[2618946.559] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2618946.563] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2618946.578] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) -[2618946.583] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) -[2618946.587] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618946.591] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618946.597] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) -[2618946.601] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) -[2618946.605] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618946.609] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618946.614] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) -[2618946.618] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) -[2618946.622] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618946.626] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618946.631] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) -[2618946.635] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) -[2618946.639] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618946.642] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618946.649] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) -[2618946.653] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) -[2618946.657] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2618946.661] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2618946.668] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) -[2618946.673] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) -[2618946.677] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618946.680] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618946.689] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) -[2618946.694] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) -[2618946.698] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618946.702] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618946.707] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) -[2618946.711] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) -[2618946.715] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618946.719] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618946.724] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) -[2618946.728] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) -[2618946.732] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618946.735] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618946.742] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) -[2618946.746] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) -[2618946.749] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2618946.753] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2618946.761] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) -[2618946.765] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) -[2618946.769] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618946.773] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618946.778] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) -[2618946.782] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) -[2618946.786] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618946.790] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618946.795] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) -[2618946.799] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) -[2618946.803] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618946.807] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618946.812] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) -[2618946.816] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) -[2618946.820] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618946.824] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618946.830] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) -[2618946.834] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) -[2618946.838] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2618946.842] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2618946.850] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) -[2618946.855] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) -[2618946.859] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618946.863] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618946.869] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) -[2618946.879] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) -[2618946.883] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618946.886] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618946.891] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) -[2618946.895] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) -[2618946.899] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618946.903] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618946.908] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) -[2618946.912] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) -[2618946.916] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618946.920] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618946.929] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) -[2618946.934] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) -[2618946.939] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2618946.943] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2618946.949] {Default Queue} -> wl_surface#2087.damage(0, 0, 576, 167) -[2618946.953] {Default Queue} -> wl_region#2111.subtract(0, 0, 22, 385) -[2618946.957] {Default Queue} -> wl_region#2111.add(-20, -49, 22, 51) -[2618946.961] {Default Queue} -> wl_surface#2087.set_opaque_region(wl_region#2112) -[2618946.964] {Default Queue} -> wl_surface#2087.set_input_region(wl_region#2111) -[2618946.969] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2618946.974] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2618946.978] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2618946.982] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2618946.986] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) -[2618946.990] {Default Queue} -> wl_surface#2151.damage(0, 0, 109, 161) -[2618946.994] {Default Queue} -> wl_surface#2119.damage(0, 0, 115, 167) -[2618946.998] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2618947.002] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) -[2618947.006] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) -[2618947.010] {Default Queue} -> wl_surface#2375.damage(0, 0, 109, 161) -[2618947.015] {Default Queue} -> wl_surface#2343.damage(0, 0, 115, 167) -[2618947.020] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2618947.024] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) -[2618947.028] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) -[2618947.032] {Default Queue} -> wl_surface#2535.damage(0, 0, 109, 161) -[2618947.036] {Default Queue} -> wl_surface#2508.damage(0, 0, 115, 167) -[2618947.040] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) -[2618947.044] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) -[2618947.048] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) -[2618947.052] {Default Queue} -> wl_surface#2695.damage(0, 0, 109, 161) -[2618947.056] {Default Queue} -> wl_surface#2663.damage(0, 0, 115, 167) -[2618947.060] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) -[2618947.064] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) -[2618947.068] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) -[2618947.072] {Default Queue} -> wl_surface#2855.damage(0, 0, 109, 161) -[2618947.076] {Default Queue} -> wl_surface#2823.damage(0, 0, 115, 167) -[2618947.079] {Default Queue} -> wl_surface#2087.damage(0, 0, 576, 167) -[2618947.091] {Default Queue} -> wl_buffer#2109.destroy() -[2618947.097] {Default Queue} -> wl_buffer#2110.destroy() -[2618947.101] {Default Queue} -> wl_shm_pool#2107.destroy() -[2618947.105] {Default Queue} -> wl_shm_pool#2108.destroy() -[2618947.342] {Default Queue} -> wl_shm#2095.create_pool(new id wl_shm_pool#699, fd 575, 384768) -[2618947.350] {Default Queue} -> wl_shm#2095.create_pool(new id wl_shm_pool#702, fd 578, 384768) -[2618947.354] {Default Queue} -> wl_shm_pool#699.create_buffer(new id wl_buffer#701, 0, 576, 167, 2304, 0) -[2618947.359] {Default Queue} -> wl_shm_pool#702.create_buffer(new id wl_buffer#860, 0, 576, 167, 2304, 0) -[2618947.454] {Default Queue} -> wl_surface#2087.attach(wl_buffer#701, 0, 0) -[2618947.459] {Default Queue} -> wl_surface#2087.commit() -[2618947.559] {Default Queue} -> wl_surface#2087.attach(wl_buffer#701, 0, 0) -[2618947.565] {Default Queue} -> wl_surface#2087.commit() -[2618947.578] {Default Queue} -> wl_region#2111.subtract(0, 0, 596, 550) -[2618947.583] {Default Queue} -> wl_region#2111.add(-20, -49, 596, 216) -[2618947.587] {Default Queue} -> wl_surface#2087.set_opaque_region(wl_region#2112) -[2618947.591] {Default Queue} -> wl_surface#2087.set_input_region(wl_region#2111) -[2618947.611] {Default Queue} -> wl_surface#2087.attach(wl_buffer#701, 0, 0) -[2618947.616] {Default Queue} -> wl_surface#2087.commit() -[2618947.676] {Display Queue} wl_display#1.delete_id(1565) -[2618947.684] {Display Queue} wl_display#1.delete_id(1566) -[2618947.688] {Display Queue} wl_display#1.delete_id(1563) -[2618947.692] {Display Queue} wl_display#1.delete_id(1564) -[2618947.696] {Display Queue} wl_display#1.delete_id(1469) -[2618947.699] {Display Queue} wl_display#1.delete_id(1470) -[2618947.703] {Display Queue} wl_display#1.delete_id(1467) -[2618947.707] {Display Queue} wl_display#1.delete_id(1468) -[2618947.710] {Display Queue} wl_display#1.delete_id(1693) -[2618947.715] {Display Queue} wl_display#1.delete_id(1694) -[2618947.718] {Display Queue} wl_display#1.delete_id(1691) -[2618947.722] {Display Queue} wl_display#1.delete_id(1692) -[2618947.726] {Display Queue} wl_display#1.delete_id(1725) -[2618947.730] {Display Queue} wl_display#1.delete_id(1726) -[2618947.734] {Display Queue} wl_display#1.delete_id(1723) -[2618947.738] {Display Queue} wl_display#1.delete_id(1724) -[2618947.742] {Display Queue} wl_display#1.delete_id(1629) -[2618947.745] {Display Queue} wl_display#1.delete_id(1630) -[2618947.750] {Display Queue} wl_display#1.delete_id(1627) -[2618947.754] {Display Queue} wl_display#1.delete_id(1628) -[2618947.757] {Display Queue} wl_display#1.delete_id(1853) -[2618947.761] {Display Queue} wl_display#1.delete_id(1854) -[2618947.765] {Display Queue} wl_display#1.delete_id(1851) -[2618947.768] {Display Queue} wl_display#1.delete_id(1852) -[2618947.772] {Display Queue} wl_display#1.delete_id(1885) -[2618947.776] {Display Queue} wl_display#1.delete_id(1886) -[2618947.780] {Display Queue} wl_display#1.delete_id(1883) -[2618947.784] {Display Queue} wl_display#1.delete_id(1884) -[2618947.788] {Display Queue} wl_display#1.delete_id(1789) -[2618947.791] {Display Queue} wl_display#1.delete_id(1790) -[2618947.795] {Display Queue} wl_display#1.delete_id(1787) -[2618947.799] {Display Queue} wl_display#1.delete_id(1788) -[2618947.802] {Display Queue} wl_display#1.delete_id(2013) -[2618947.807] {Display Queue} wl_display#1.delete_id(2014) -[2618947.810] {Display Queue} wl_display#1.delete_id(2011) -[2618947.814] {Display Queue} wl_display#1.delete_id(2012) -[2618947.818] {Display Queue} wl_display#1.delete_id(3783) -[2618947.821] {Display Queue} wl_display#1.delete_id(3784) -[2618947.825] {Display Queue} wl_display#1.delete_id(3781) -[2618947.830] {Display Queue} wl_display#1.delete_id(3782) -[2618947.833] {Display Queue} wl_display#1.delete_id(3785) -[2618947.837] {Display Queue} wl_display#1.delete_id(2045) -[2618947.841] {Display Queue} wl_display#1.delete_id(2046) -[2618947.844] {Display Queue} wl_display#1.delete_id(2043) -[2618947.848] {Display Queue} wl_display#1.delete_id(2044) -[2618947.852] {Display Queue} wl_display#1.delete_id(1949) -[2618947.856] {Display Queue} wl_display#1.delete_id(1950) -[2618947.859] {Display Queue} wl_display#1.delete_id(1947) -[2618947.868] {Display Queue} wl_display#1.delete_id(1948) -[2618947.892] {Display Queue} wl_display#1.delete_id(893) -[2618947.902] {Display Queue} wl_display#1.delete_id(894) -[2618947.908] {Display Queue} wl_display#1.delete_id(891) -[2618947.912] {Display Queue} wl_display#1.delete_id(892) -[2618947.916] {Display Queue} wl_display#1.delete_id(2205) -[2618947.920] {Display Queue} wl_display#1.delete_id(2206) -[2618947.924] {Display Queue} wl_display#1.delete_id(2203) -[2618947.930] {Display Queue} wl_display#1.delete_id(2204) -[2618947.933] {Display Queue} wl_display#1.delete_id(2237) -[2618947.937] {Display Queue} wl_display#1.delete_id(2238) -[2618947.941] {Display Queue} wl_display#1.delete_id(2235) -[2618947.945] {Display Queue} wl_display#1.delete_id(2236) -[2618947.949] {Display Queue} wl_display#1.delete_id(2141) -[2618947.953] {Display Queue} wl_display#1.delete_id(2142) -[2618947.957] {Display Queue} wl_display#1.delete_id(2139) -[2618947.961] {Display Queue} wl_display#1.delete_id(2140) -[2618947.965] {Display Queue} wl_display#1.delete_id(2429) -[2618947.968] {Display Queue} wl_display#1.delete_id(2430) -[2618947.972] {Display Queue} wl_display#1.delete_id(2427) -[2618947.976] {Display Queue} wl_display#1.delete_id(2428) -[2618947.980] {Default Queue} wl_pointer#24.motion(187310577, 28.60156250, 15.00000000) -[2618947.992] {Default Queue} wl_pointer#81.motion(187310577, 28.60156250, 15.00000000) -[2618948.006] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618948.011] {Default Queue} wl_pointer#105.motion(187310577, 28.60156250, 15.00000000) -[2618948.016] {Default Queue} wl_pointer#137.motion(187310577, 28.60156250, 15.00000000) -[2618948.021] {Default Queue} wl_pointer#169.motion(187310577, 28.60156250, 15.00000000) -[2618948.025] {Default Queue} wl_pointer#201.motion(187310577, 28.60156250, 15.00000000) -[2618948.029] {Default Queue} wl_pointer#233.motion(187310577, 28.60156250, 15.00000000) -[2618948.034] {Default Queue} wl_pointer#265.motion(187310577, 28.60156250, 15.00000000) -[2618948.038] {Default Queue} wl_pointer#297.motion(187310577, 28.60156250, 15.00000000) -[2618948.043] {Default Queue} wl_pointer#329.motion(187310577, 28.60156250, 15.00000000) -[2618948.047] {Default Queue} wl_pointer#361.motion(187310577, 28.60156250, 15.00000000) -[2618948.052] {Default Queue} wl_pointer#393.motion(187310577, 28.60156250, 15.00000000) -[2618948.056] {Default Queue} wl_pointer#425.motion(187310577, 28.60156250, 15.00000000) -[2618948.061] {Default Queue} wl_pointer#457.motion(187310577, 28.60156250, 15.00000000) -[2618948.065] {Default Queue} wl_pointer#489.motion(187310577, 28.60156250, 15.00000000) -[2618948.069] {Default Queue} wl_pointer#521.motion(187310577, 28.60156250, 15.00000000) -[2618948.074] {Default Queue} wl_pointer#553.motion(187310577, 28.60156250, 15.00000000) -[2618948.079] {Default Queue} wl_pointer#585.motion(187310577, 28.60156250, 15.00000000) -[2618948.084] {Default Queue} wl_pointer#617.motion(187310577, 28.60156250, 15.00000000) -[2618948.088] {Default Queue} wl_pointer#649.motion(187310577, 28.60156250, 15.00000000) -[2618948.093] {Default Queue} wl_pointer#681.motion(187310577, 28.60156250, 15.00000000) -[2618948.097] {Default Queue} wl_pointer#713.motion(187310577, 28.60156250, 15.00000000) -[2618948.102] {Default Queue} wl_pointer#745.motion(187310577, 28.60156250, 15.00000000) -[2618948.106] {Default Queue} wl_pointer#777.motion(187310577, 28.60156250, 15.00000000) -[2618948.111] {Default Queue} wl_pointer#809.motion(187310577, 28.60156250, 15.00000000) -[2618948.115] {Default Queue} wl_pointer#841.motion(187310577, 28.60156250, 15.00000000) -[2618948.120] {Default Queue} wl_pointer#873.motion(187310577, 28.60156250, 15.00000000) -[2618948.124] {Default Queue} wl_pointer#905.motion(187310577, 28.60156250, 15.00000000) -[2618948.128] {Default Queue} wl_pointer#937.motion(187310577, 28.60156250, 15.00000000) -[2618948.133] {Default Queue} wl_pointer#969.motion(187310577, 28.60156250, 15.00000000) -[2618948.138] {Default Queue} wl_pointer#1001.motion(187310577, 28.60156250, 15.00000000) -[2618948.142] {Default Queue} wl_pointer#1033.motion(187310577, 28.60156250, 15.00000000) -[2618948.147] {Default Queue} wl_pointer#1065.motion(187310577, 28.60156250, 15.00000000) -[2618948.151] {Default Queue} wl_pointer#1097.motion(187310577, 28.60156250, 15.00000000) -[2618948.156] {Default Queue} wl_pointer#1129.motion(187310577, 28.60156250, 15.00000000) -[2618948.160] {Default Queue} wl_pointer#1161.motion(187310577, 28.60156250, 15.00000000) -[2618948.164] {Default Queue} wl_pointer#1193.motion(187310577, 28.60156250, 15.00000000) -[2618948.169] {Default Queue} wl_pointer#1225.motion(187310577, 28.60156250, 15.00000000) -[2618948.173] {Default Queue} wl_pointer#1257.motion(187310577, 28.60156250, 15.00000000) -[2618948.178] {Default Queue} wl_pointer#1289.motion(187310577, 28.60156250, 15.00000000) -[2618948.182] {Default Queue} wl_pointer#1321.motion(187310577, 28.60156250, 15.00000000) -[2618948.187] {Default Queue} wl_pointer#1353.motion(187310577, 28.60156250, 15.00000000) -[2618948.191] {Default Queue} wl_pointer#1385.motion(187310577, 28.60156250, 15.00000000) -[2618948.195] {Default Queue} wl_pointer#1417.motion(187310577, 28.60156250, 15.00000000) -[2618948.200] {Default Queue} wl_pointer#1449.motion(187310577, 28.60156250, 15.00000000) -[2618948.204] {Default Queue} wl_pointer#1481.motion(187310577, 28.60156250, 15.00000000) -[2618948.211] {Default Queue} wl_pointer#1513.motion(187310577, 28.60156250, 15.00000000) -[2618948.218] {Default Queue} wl_pointer#1545.motion(187310577, 28.60156250, 15.00000000) -[2618948.222] {Default Queue} wl_pointer#1577.motion(187310577, 28.60156250, 15.00000000) -[2618948.226] {Default Queue} wl_pointer#1609.motion(187310577, 28.60156250, 15.00000000) -[2618948.231] {Default Queue} wl_pointer#1641.motion(187310577, 28.60156250, 15.00000000) -[2618948.236] {Default Queue} wl_pointer#1673.motion(187310577, 28.60156250, 15.00000000) -[2618948.241] {Default Queue} wl_pointer#1705.motion(187310577, 28.60156250, 15.00000000) -[2618948.245] {Default Queue} wl_pointer#1737.motion(187310577, 28.60156250, 15.00000000) -[2618948.249] {Default Queue} wl_pointer#1762.motion(187310577, 28.60156250, 15.00000000) -[2618948.254] {Default Queue} wl_pointer#1801.motion(187310577, 28.60156250, 15.00000000) -[2618948.259] {Default Queue} wl_pointer#1833.motion(187310577, 28.60156250, 15.00000000) -[2618948.263] {Default Queue} wl_pointer#1865.motion(187310577, 28.60156250, 15.00000000) -[2618948.268] {Default Queue} wl_pointer#1897.motion(187310577, 28.60156250, 15.00000000) -[2618948.272] {Default Queue} wl_pointer#1929.motion(187310577, 28.60156250, 15.00000000) -[2618948.276] {Default Queue} wl_pointer#1961.motion(187310577, 28.60156250, 15.00000000) -[2618948.281] {Default Queue} wl_pointer#1993.motion(187310577, 28.60156250, 15.00000000) -[2618948.285] {Default Queue} wl_pointer#2025.motion(187310577, 28.60156250, 15.00000000) -[2618948.290] {Default Queue} wl_pointer#2057.motion(187310577, 28.60156250, 15.00000000) -[2618948.294] {Default Queue} wl_pointer#2089.motion(187310577, 28.60156250, 15.00000000) -[2618948.299] {Default Queue} wl_pointer#2121.motion(187310577, 28.60156250, 15.00000000) -[2618948.303] {Default Queue} wl_pointer#2153.motion(187310577, 28.60156250, 15.00000000) -[2618948.307] {Default Queue} wl_pointer#2185.motion(187310577, 28.60156250, 15.00000000) -[2618948.312] {Default Queue} wl_pointer#2217.motion(187310577, 28.60156250, 15.00000000) -[2618948.317] {Default Queue} wl_pointer#2249.motion(187310577, 28.60156250, 15.00000000) -[2618948.322] {Default Queue} wl_pointer#2281.motion(187310577, 28.60156250, 15.00000000) -[2618948.326] {Default Queue} wl_pointer#2313.motion(187310577, 28.60156250, 15.00000000) -[2618948.331] {Default Queue} wl_pointer#2345.motion(187310577, 28.60156250, 15.00000000) -[2618948.337] {Default Queue} wl_pointer#2377.motion(187310577, 28.60156250, 15.00000000) -[2618948.341] {Default Queue} wl_pointer#2409.motion(187310577, 28.60156250, 15.00000000) -[2618948.347] {Default Queue} wl_pointer#2441.motion(187310577, 28.60156250, 15.00000000) -[2618948.351] {Default Queue} wl_pointer#2473.motion(187310577, 28.60156250, 15.00000000) -[2618948.355] {Default Queue} wl_pointer#2498.motion(187310577, 28.60156250, 15.00000000) -[2618948.371] {Default Queue} -> wl_buffer#1022.destroy() -[2618948.377] {Default Queue} -> wl_buffer#1021.destroy() -[2618948.381] {Default Queue} -> wl_shm_pool#1020.destroy() -[2618948.385] {Default Queue} -> wl_shm_pool#1019.destroy() -[2618948.389] {Default Queue} -> wl_surface#1276.destroy() -[2618948.432] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2428, fd 581, 640) -[2618948.439] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2427, fd 582, 640) -[2618948.444] {Default Queue} -> wl_shm_pool#2428.create_buffer(new id wl_buffer#2430, 0, 10, 16, 40, 0) -[2618948.449] {Default Queue} -> wl_shm_pool#2427.create_buffer(new id wl_buffer#2429, 0, 10, 16, 40, 0) -[2618948.456] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#2140) -[2618948.461] {Default Queue} -> wl_surface#2140.attach(wl_buffer#2430, 0, 0) -[2618948.465] {Default Queue} -> wl_surface#2140.commit() -[2618948.470] {Default Queue} -> wl_surface#2140.attach(wl_buffer#2430, 0, 0) -[2618948.475] {Default Queue} -> wl_surface#2140.commit() -[2618948.479] {Default Queue} wl_pointer#2537.motion(187310577, 28.60156250, 15.00000000) -[2618948.487] {Default Queue} wl_pointer#2569.motion(187310577, 28.60156250, 15.00000000) -[2618948.493] {Default Queue} wl_pointer#2601.motion(187310577, 28.60156250, 15.00000000) -[2618948.498] {Default Queue} wl_pointer#2633.motion(187310577, 28.60156250, 15.00000000) -[2618948.502] {Default Queue} wl_pointer#2665.motion(187310577, 28.60156250, 15.00000000) -[2618948.506] {Default Queue} wl_pointer#2697.motion(187310577, 28.60156250, 15.00000000) -[2618948.511] {Default Queue} wl_pointer#2729.motion(187310577, 28.60156250, 15.00000000) -[2618948.515] {Default Queue} wl_pointer#2761.motion(187310577, 28.60156250, 15.00000000) -[2618948.519] {Default Queue} wl_pointer#2793.motion(187310577, 28.60156250, 15.00000000) -[2618948.524] {Default Queue} wl_pointer#2825.motion(187310577, 28.60156250, 15.00000000) -[2618948.528] {Default Queue} wl_pointer#2857.motion(187310577, 28.60156250, 15.00000000) -[2618948.533] {Default Queue} wl_pointer#2889.motion(187310577, 28.60156250, 15.00000000) -[2618948.537] {Default Queue} wl_pointer#2921.motion(187310577, 28.60156250, 15.00000000) -[2618948.541] {Default Queue} wl_pointer#2953.motion(187310577, 28.60156250, 15.00000000) -[2618948.546] {Default Queue} wl_pointer#2985.motion(187310577, 28.60156250, 15.00000000) -[2618948.550] {Default Queue} wl_pointer#3017.motion(187310577, 28.60156250, 15.00000000) -[2618948.555] {Default Queue} wl_pointer#3049.motion(187310577, 28.60156250, 15.00000000) -[2618948.559] {Default Queue} wl_pointer#3081.motion(187310577, 28.60156250, 15.00000000) -[2618948.564] {Default Queue} wl_pointer#3113.motion(187310577, 28.60156250, 15.00000000) -[2618948.568] {Default Queue} wl_pointer#3145.motion(187310577, 28.60156250, 15.00000000) -[2618948.573] {Default Queue} wl_pointer#3177.motion(187310577, 28.60156250, 15.00000000) -[2618948.577] {Default Queue} wl_pointer#3209.motion(187310577, 28.60156250, 15.00000000) -[2618948.582] {Default Queue} wl_pointer#3241.motion(187310577, 28.60156250, 15.00000000) -[2618948.586] {Default Queue} wl_pointer#3273.motion(187310577, 28.60156250, 15.00000000) -[2618948.591] {Default Queue} wl_pointer#3305.motion(187310577, 28.60156250, 15.00000000) -[2618948.595] {Default Queue} wl_pointer#3337.motion(187310577, 28.60156250, 15.00000000) -[2618948.599] {Default Queue} wl_pointer#3369.motion(187310577, 28.60156250, 15.00000000) -[2618948.604] {Default Queue} wl_pointer#3401.motion(187310577, 28.60156250, 15.00000000) -[2618948.608] {Default Queue} wl_pointer#3433.motion(187310577, 28.60156250, 15.00000000) -[2618948.613] {Default Queue} wl_pointer#3465.motion(187310577, 28.60156250, 15.00000000) -[2618948.618] {Default Queue} wl_pointer#3497.motion(187310577, 28.60156250, 15.00000000) -[2618948.622] {Default Queue} wl_pointer#3529.motion(187310577, 28.60156250, 15.00000000) -[2618948.626] {Default Queue} wl_pointer#3561.motion(187310577, 28.60156250, 15.00000000) -[2618948.631] {Default Queue} wl_pointer#3593.motion(187310577, 28.60156250, 15.00000000) -[2618948.635] {Default Queue} wl_pointer#3625.motion(187310577, 28.60156250, 15.00000000) -[2618948.639] {Default Queue} wl_pointer#3657.motion(187310577, 28.60156250, 15.00000000) -[2618948.644] {Default Queue} wl_pointer#3695.motion(187310577, 28.60156250, 15.00000000) -[2618948.660] {Default Queue} -> wl_surface#2087.attach(wl_buffer#701, 0, 0) -[2618948.666] {Default Queue} -> wl_surface#2087.commit() -[2618949.721] {Default Queue} -> wl_surface#2087.attach(wl_buffer#701, 0, 0) -[2618949.734] {Default Queue} -> wl_surface#2087.commit() -[2618949.751] {Default Queue} -> wl_region#2111.subtract(0, 0, 596, 550) -[2618949.756] {Default Queue} -> wl_region#2111.add(-20, -49, 596, 216) -[2618949.762] {Default Queue} -> wl_surface#2087.set_opaque_region(wl_region#2112) -[2618949.766] {Default Queue} -> wl_surface#2087.set_input_region(wl_region#2111) -[2618949.783] {Default Queue} -> wl_surface#2087.attach(wl_buffer#701, 0, 0) -[2618949.788] {Default Queue} -> wl_surface#2087.commit() -[2618949.799] {Default Queue} -> wl_surface#2087.attach(wl_buffer#701, 0, 0) -[2618949.804] {Default Queue} -> wl_surface#2087.commit() -[2618949.822] {Default Queue} -> wl_surface#2087.attach(wl_buffer#701, 0, 0) -[2618949.831] {Default Queue} -> wl_surface#2087.commit() -[2618949.836] {Default Queue} -> wl_region#3103.subtract(0, 0, 2, 20) -[2618949.841] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 552) -[2618949.845] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 552) -[2618949.849] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2618949.853] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2618949.857] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) -[2618949.881] {Default Queue} -> wl_buffer#3101.destroy() -[2618949.901] {Default Queue} -> wl_buffer#3102.destroy() -[2618949.906] {Default Queue} -> wl_shm_pool#3099.destroy() -[2618949.910] {Default Queue} -> wl_shm_pool#3100.destroy() -[2618949.954] {Default Queue} -> wl_shm#3087.create_pool(new id wl_shm_pool#2139, fd 575, 160) -[2618949.963] {Default Queue} -> wl_shm#3087.create_pool(new id wl_shm_pool#2142, fd 578, 160) -[2618949.968] {Default Queue} -> wl_shm_pool#2139.create_buffer(new id wl_buffer#2141, 0, 2, 20, 8, 0) -[2618949.972] {Default Queue} -> wl_shm_pool#2142.create_buffer(new id wl_buffer#2236, 0, 2, 20, 8, 0) -[2618949.979] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) -[2618949.984] {Default Queue} -> wl_surface#3079.commit() -[2618949.989] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) -[2618949.993] {Default Queue} -> wl_surface#3079.commit() -[2618950.003] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 552) -[2618950.007] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 552) -[2618950.011] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2618950.016] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2618950.102] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 552) -[2618950.107] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 552) -[2618950.111] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2618950.115] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2618950.121] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) -[2618950.125] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) -[2618950.185] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 552) -[2618950.190] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 552) -[2618950.195] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2618950.199] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2618950.205] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) -[2618950.210] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) -[2618950.215] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) -[2618950.220] {Default Queue} -> wl_surface#3079.commit() -[2618950.227] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) -[2618950.231] {Default Queue} -> wl_surface#3079.commit() -[2618951.298] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) -[2618951.316] {Default Queue} -> wl_surface#3079.commit() -[2618951.331] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 552) -[2618951.340] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 552) -[2618951.347] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2618951.353] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2618951.432] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 552) -[2618951.438] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 552) -[2618951.442] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2618951.446] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2618951.452] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) -[2618951.456] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) -[2618951.513] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 552) -[2618951.518] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 552) -[2618951.522] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2618951.531] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2618951.540] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) -[2618951.544] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) -[2618951.549] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) -[2618951.553] {Default Queue} -> wl_surface#3079.commit() -[2618951.557] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) -[2618951.561] {Default Queue} -> wl_surface#3079.commit() -[2618951.567] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) -[2618951.571] {Default Queue} -> wl_surface#3079.commit() -[2618951.578] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618951.582] {Default Queue} -> wl_surface#3175.commit() -[2618952.646] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618952.658] {Default Queue} -> wl_surface#3175.commit() -[2618952.668] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) -[2618952.673] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) -[2618952.678] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618952.682] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618952.691] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) -[2618952.695] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) -[2618952.699] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618952.703] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618952.708] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) -[2618952.712] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) -[2618952.716] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618952.720] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618952.724] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) -[2618952.729] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) -[2618952.734] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618952.737] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618952.742] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) -[2618952.746] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) -[2618952.750] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618952.753] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618952.760] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) -[2618952.764] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) -[2618952.768] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618952.772] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618952.776] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) -[2618952.780] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) -[2618952.784] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618952.788] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618952.793] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) -[2618952.797] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) -[2618952.801] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618952.804] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618952.810] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) -[2618952.820] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) -[2618952.829] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618952.833] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618952.846] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) -[2618952.852] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) -[2618952.856] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618952.860] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618952.875] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) -[2618952.882] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) -[2618952.886] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618952.889] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618952.894] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) -[2618952.898] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) -[2618952.902] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618952.906] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618952.910] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) -[2618952.914] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) -[2618952.918] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618952.922] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618952.927] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618952.931] {Default Queue} -> wl_surface#3175.commit() -[2618952.935] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618952.939] {Default Queue} -> wl_surface#3175.commit() -[2618952.946] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618952.950] {Default Queue} -> wl_surface#3175.commit() -[2618952.956] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) -[2618952.960] {Default Queue} -> wl_surface#3207.commit() -[2618954.025] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) -[2618954.038] {Default Queue} -> wl_surface#3207.commit() -[2618954.050] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.055] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.060] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.064] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.070] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.074] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.078] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.082] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.087] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.091] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.095] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.099] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.103] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.107] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.111] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.115] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.121] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.126] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.130] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.134] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.143] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.147] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.151] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.155] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.159] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.164] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.168] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.171] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.176] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.180] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.184] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.188] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.197] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.203] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.207] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.211] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.215] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.219] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.223] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.227] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.240] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.247] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.251] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.255] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.262] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.266] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.269] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.273] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.280] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.284] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.288] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.292] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.298] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.302] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.306] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.310] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.315] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.318] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.322] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.326] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.331] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.335] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.339] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.342] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.347] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.351] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.356] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.359] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.364] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.368] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.372] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.375] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.382] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.386] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.390] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.394] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.398] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.402] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.406] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.410] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.414] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.418] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.422] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.426] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.434] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.439] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.444] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.447] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.502] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.515] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.520] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.525] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.533] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618954.537] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618954.551] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.564] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.572] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.578] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.590] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.598] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.603] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.607] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.645] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.650] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.654] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.658] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.664] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618954.668] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618954.677] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.681] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.685] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.689] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.694] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.698] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.702] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.706] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.711] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.714] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.718] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.722] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.727] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618954.731] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618954.735] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618954.738] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618954.743] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) -[2618954.747] {Default Queue} -> wl_surface#3207.commit() -[2618954.751] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) -[2618954.755] {Default Queue} -> wl_surface#3207.commit() -[2618954.762] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) -[2618954.766] {Default Queue} -> wl_surface#3207.commit() -[2618954.772] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) -[2618954.776] {Default Queue} -> wl_surface#3143.commit() -[2618955.842] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) -[2618955.854] {Default Queue} -> wl_surface#3143.commit() -[2618955.870] {Default Queue} -> wl_region#3167.subtract(0, 0, 25, 535) -[2618955.875] {Default Queue} -> wl_region#3167.add(-23, -553, 25, 535) -[2618955.879] {Default Queue} -> wl_surface#3143.set_opaque_region(wl_region#3168) -[2618955.883] {Default Queue} -> wl_surface#3143.set_input_region(wl_region#3167) -[2618955.893] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) -[2618955.899] {Default Queue} -> wl_surface#3143.commit() -[2618955.904] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) -[2618955.908] {Default Queue} -> wl_surface#3143.commit() -[2618955.914] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) -[2618955.918] {Default Queue} -> wl_surface#3143.commit() -[2618955.922] {Default Queue} -> wl_region#3135.subtract(0, 0, 2, 2) -[2618955.928] {Default Queue} -> wl_region#3167.subtract(0, 0, 2, 2) -[2618955.932] {Default Queue} -> wl_subsurface#3162.set_position(1, 1) -[2618955.936] {Default Queue} -> wl_region#3167.subtract(0, 0, 26, 536) -[2618955.940] {Default Queue} -> wl_region#3167.add(-23, -553, 25, 535) -[2618955.944] {Default Queue} -> wl_surface#3143.set_opaque_region(wl_region#3168) -[2618955.948] {Default Queue} -> wl_surface#3143.set_input_region(wl_region#3167) -[2618955.952] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618955.957] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618955.960] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) -[2618955.966] {Default Queue} -> wl_region#3167.subtract(0, 0, 25, 555) -[2618955.970] {Default Queue} -> wl_region#3167.add(-23, -573, 24, 554) -[2618955.974] {Default Queue} -> wl_surface#3143.set_opaque_region(wl_region#3168) -[2618955.977] {Default Queue} -> wl_surface#3143.set_input_region(wl_region#3167) -[2618955.982] {Default Queue} -> wl_surface#3143.attach(wl_buffer#3165, 0, 0) -[2618955.987] {Default Queue} -> wl_surface#3143.commit() -[2618955.992] {Default Queue} -> wl_region#3199.subtract(0, 0, 16, 2) -[2618955.998] {Default Queue} -> wl_subsurface#3194.set_position(-14, 0) -[2618956.009] {Default Queue} -> wl_region#3199.subtract(0, 0, 39, 535) -[2618956.015] {Default Queue} -> wl_region#3199.add(-9, -553, 25, 535) -[2618956.020] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618956.024] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618956.028] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618956.036] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) -[2618956.040] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) -[2618956.044] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618956.048] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618956.055] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) -[2618956.059] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) -[2618956.063] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618956.067] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618956.071] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) -[2618956.076] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) -[2618956.079] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618956.083] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618956.088] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) -[2618956.091] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) -[2618956.095] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618956.099] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618956.103] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) -[2618956.107] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) -[2618956.112] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618956.115] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618956.121] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) -[2618956.125] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) -[2618956.129] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618956.132] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618956.137] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) -[2618956.141] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) -[2618956.149] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618956.155] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618956.160] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) -[2618956.164] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) -[2618956.168] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618956.172] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618956.176] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) -[2618956.181] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) -[2618956.184] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618956.188] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618956.198] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) -[2618956.202] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) -[2618956.206] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618956.210] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618956.214] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) -[2618956.218] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) -[2618956.222] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618956.226] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618956.231] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) -[2618956.235] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) -[2618956.239] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618956.242] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618956.247] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 554) -[2618956.251] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 554) -[2618956.255] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2618956.259] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2618956.263] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618956.267] {Default Queue} -> wl_surface#3175.commit() -[2618956.274] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2618956.278] {Default Queue} -> wl_surface#3175.commit() -[2618956.282] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2618956.287] {Default Queue} -> wl_subsurface#3226.set_position(0, 0) -[2618956.291] {Default Queue} -> wl_region#3231.subtract(0, 0, 25, 535) -[2618956.295] {Default Queue} -> wl_region#3231.add(-23, -553, 25, 535) -[2618956.299] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.303] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.307] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618956.314] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.318] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.322] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.326] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.331] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.335] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.339] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.342] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.347] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.351] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.355] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.359] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.363] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.367] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.371] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.375] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.384] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.390] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.394] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.398] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.407] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.412] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.416] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.420] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.425] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.429] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.433] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.437] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.441] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.445] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.449] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.452] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.457] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.461] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.465] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.469] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.474] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.478] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.482] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.487] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.508] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.520] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.527] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.533] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.542] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.547] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.551] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.555] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.562] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.566] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.570] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.574] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.586] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.599] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.606] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.612] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.619] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.625] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.630] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.634] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.638] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.642] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.646] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.650] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.655] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.659] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.662] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.666] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.675] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.681] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.686] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.690] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.696] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.700] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.704] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.708] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.712] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.716] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.720] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.724] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.728] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.732] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.736] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.740] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.744] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.748] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.753] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.756] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.791] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.796] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.800] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.804] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.810] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618956.814] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618956.825] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.830] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.835] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.838] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.844] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.848] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.853] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.856] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.893] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.898] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.902] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.906] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.910] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618956.915] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618956.923] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.927] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.931] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.935] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.939] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.944] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.947] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.951] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.955] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.959] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.963] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.967] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.972] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2618956.979] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2618956.984] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2618956.988] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2618956.993] {Default Queue} -> wl_surface#3207.attach(wl_buffer#3740, 0, 0) -[2618956.997] {Default Queue} -> wl_surface#3207.commit() -[2618957.003] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618957.008] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618957.013] {Default Queue} -> wl_region#3167.subtract(0, 0, 25, 555) -[2618957.022] {Default Queue} -> wl_region#3167.add(-23, -573, 24, 554) -[2618957.027] {Default Queue} -> wl_surface#3143.set_opaque_region(wl_region#3168) -[2618957.031] {Default Queue} -> wl_surface#3143.set_input_region(wl_region#3167) -[2618957.036] {Default Queue} -> wl_region#3135.subtract(0, 0, 25, 555) -[2618957.040] {Default Queue} -> wl_region#3135.add(-23, -553, 25, 535) -[2618957.044] {Default Queue} -> wl_surface#3111.set_opaque_region(wl_region#3136) -[2618957.048] {Default Queue} -> wl_surface#3111.set_input_region(wl_region#3135) -[2618957.052] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618957.057] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618957.063] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) -[2618957.074] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) -[2618957.090] {Default Queue} -> wl_buffer#3133.destroy() -[2618957.095] {Default Queue} -> wl_buffer#3134.destroy() -[2618957.100] {Default Queue} -> wl_shm_pool#3131.destroy() -[2618957.104] {Default Queue} -> wl_shm_pool#3132.destroy() -[2618957.160] {Default Queue} -> wl_shm#3119.create_pool(new id wl_shm_pool#2235, fd 575, 16) -[2618957.176] {Default Queue} -> wl_shm#3119.create_pool(new id wl_shm_pool#2238, fd 578, 16) -[2618957.183] {Default Queue} -> wl_shm_pool#2235.create_buffer(new id wl_buffer#2237, 0, 2, 2, 8, 0) -[2618957.189] {Default Queue} -> wl_shm_pool#2238.create_buffer(new id wl_buffer#2204, 0, 2, 2, 8, 0) -[2618957.196] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) -[2618957.201] {Default Queue} -> wl_surface#3111.commit() -[2618957.206] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) -[2618957.210] {Default Queue} -> wl_surface#3111.commit() -[2618957.218] {Default Queue} -> wl_region#3135.subtract(0, 0, 25, 555) -[2618957.223] {Default Queue} -> wl_region#3135.add(-23, -553, 25, 535) -[2618957.227] {Default Queue} -> wl_surface#3111.set_opaque_region(wl_region#3136) -[2618957.232] {Default Queue} -> wl_surface#3111.set_input_region(wl_region#3135) -[2618957.237] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) -[2618957.241] {Default Queue} -> wl_surface#3111.commit() -[2618957.247] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) -[2618957.252] {Default Queue} -> wl_surface#3111.commit() -[2618958.317] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) -[2618958.328] {Default Queue} -> wl_surface#3111.commit() -[2618958.336] {Default Queue} -> wl_region#3135.subtract(0, 0, 25, 555) -[2618958.343] {Default Queue} -> wl_region#3135.add(-23, -553, 25, 535) -[2618958.347] {Default Queue} -> wl_surface#3111.set_opaque_region(wl_region#3136) -[2618958.351] {Default Queue} -> wl_surface#3111.set_input_region(wl_region#3135) -[2618958.356] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) -[2618958.361] {Default Queue} -> wl_surface#3111.commit() -[2618958.364] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) -[2618958.368] {Default Queue} -> wl_surface#3111.commit() -[2618958.374] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) -[2618958.378] {Default Queue} -> wl_surface#3111.commit() -[2618958.385] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) -[2618958.389] {Default Queue} -> wl_surface#3047.commit() -[2618959.453] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) -[2618959.465] {Default Queue} -> wl_surface#3047.commit() -[2618959.479] {Default Queue} -> wl_region#3071.subtract(0, 0, 25, 555) -[2618959.486] {Default Queue} -> wl_region#3071.add(-20, -550, 22, 552) -[2618959.490] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) -[2618959.494] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) -[2618959.500] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) -[2618959.504] {Default Queue} -> wl_surface#3047.commit() -[2618959.508] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) -[2618959.512] {Default Queue} -> wl_surface#3047.commit() -[2618959.518] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) -[2618959.522] {Default Queue} -> wl_surface#3047.commit() -[2618959.526] {Default Queue} -> wl_region#3039.subtract(0, 0, 115, 167) -[2618959.533] {Default Queue} -> wl_region#3071.subtract(0, 0, 2, 2) -[2618959.537] {Default Queue} -> wl_subsurface#3066.set_position(3, 3) -[2618959.541] {Default Queue} -> wl_region#3071.subtract(0, 0, 25, 555) -[2618959.545] {Default Queue} -> wl_region#3071.add(-20, -550, 22, 552) -[2618959.549] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) -[2618959.553] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) -[2618959.557] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) -[2618959.561] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618959.565] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618959.569] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) -[2618959.573] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) -[2618959.577] {Default Queue} -> wl_surface#3047.damage(0, 0, 2, 2) -[2618959.582] {Default Queue} -> wl_region#3071.subtract(0, 0, 25, 555) -[2618959.587] {Default Queue} -> wl_region#3071.add(-20, -550, 22, 552) -[2618959.591] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) -[2618959.595] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) -[2618959.599] {Default Queue} -> wl_surface#3047.attach(wl_buffer#3744, 0, 0) -[2618959.603] {Default Queue} -> wl_surface#3047.commit() -[2618959.608] {Default Queue} -> wl_region#3071.subtract(0, 0, 132, 714) -[2618959.613] {Default Queue} -> wl_region#3071.add(-20, -550, 129, 711) -[2618959.617] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) -[2618959.620] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) -[2618959.625] {Default Queue} -> wl_region#3039.subtract(0, 0, 22, 51) -[2618959.629] {Default Queue} -> wl_region#3039.add(-20, -49, 22, 51) -[2618959.633] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618959.637] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618959.641] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) -[2618959.645] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618959.649] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618959.653] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) -[2618959.657] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) -[2618959.661] {Default Queue} -> wl_surface#3047.damage(0, 0, 109, 161) -[2618959.665] {Default Queue} -> wl_surface#3015.damage(0, 0, 115, 167) -[2618959.678] {Default Queue} -> wl_buffer#3037.destroy() -[2618959.683] {Default Queue} -> wl_buffer#3038.destroy() -[2618959.687] {Default Queue} -> wl_shm_pool#3035.destroy() -[2618959.691] {Default Queue} -> wl_shm_pool#3036.destroy() -[2618959.774] {Default Queue} -> wl_shm#3023.create_pool(new id wl_shm_pool#2203, fd 575, 76820) -[2618959.781] {Default Queue} -> wl_shm#3023.create_pool(new id wl_shm_pool#2206, fd 578, 76820) -[2618959.786] {Default Queue} -> wl_shm_pool#2203.create_buffer(new id wl_buffer#2205, 0, 115, 167, 460, 0) -[2618959.791] {Default Queue} -> wl_shm_pool#2206.create_buffer(new id wl_buffer#892, 0, 115, 167, 460, 0) -[2618959.814] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) -[2618959.819] {Default Queue} -> wl_surface#3015.commit() -[2618959.842] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) -[2618959.850] {Default Queue} -> wl_surface#3015.commit() -[2618959.861] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) -[2618959.866] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) -[2618959.874] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618959.879] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618959.887] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) -[2618959.891] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) -[2618959.895] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618959.899] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618959.905] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) -[2618959.909] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) -[2618959.913] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618959.917] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618959.922] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) -[2618959.926] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) -[2618959.930] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618959.934] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618959.940] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) -[2618959.945] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) -[2618959.948] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618959.952] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618959.960] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) -[2618959.964] {Default Queue} -> wl_surface#3015.commit() -[2618959.971] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) -[2618959.975] {Default Queue} -> wl_surface#3015.commit() -[2618961.045] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) -[2618961.057] {Default Queue} -> wl_surface#3015.commit() -[2618961.069] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) -[2618961.076] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) -[2618961.080] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618961.084] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618961.092] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) -[2618961.097] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) -[2618961.101] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618961.104] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618961.110] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) -[2618961.114] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) -[2618961.118] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618961.122] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618961.127] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) -[2618961.132] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) -[2618961.136] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618961.140] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618961.146] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) -[2618961.150] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) -[2618961.154] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618961.158] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618961.165] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) -[2618961.169] {Default Queue} -> wl_surface#3015.commit() -[2618961.174] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) -[2618961.178] {Default Queue} -> wl_surface#3015.commit() -[2618961.187] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) -[2618961.199] {Default Queue} -> wl_surface#3015.commit() -[2618961.208] {Default Queue} -> wl_region#3327.subtract(0, 0, 2, 20) -[2618961.223] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 552) -[2618961.233] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 552) -[2618961.240] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2618961.245] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2618961.250] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) -[2618961.264] {Default Queue} -> wl_buffer#3325.destroy() -[2618961.270] {Default Queue} -> wl_buffer#3326.destroy() -[2618961.274] {Default Queue} -> wl_shm_pool#3323.destroy() -[2618961.278] {Default Queue} -> wl_shm_pool#3324.destroy() -[2618961.319] {Default Queue} -> wl_shm#3311.create_pool(new id wl_shm_pool#891, fd 575, 160) -[2618961.326] {Default Queue} -> wl_shm#3311.create_pool(new id wl_shm_pool#894, fd 578, 160) -[2618961.330] {Default Queue} -> wl_shm_pool#891.create_buffer(new id wl_buffer#893, 0, 2, 20, 8, 0) -[2618961.334] {Default Queue} -> wl_shm_pool#894.create_buffer(new id wl_buffer#1948, 0, 2, 20, 8, 0) -[2618961.341] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) -[2618961.346] {Default Queue} -> wl_surface#3303.commit() -[2618961.351] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) -[2618961.355] {Default Queue} -> wl_surface#3303.commit() -[2618961.364] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 552) -[2618961.369] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 552) -[2618961.373] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2618961.377] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2618961.469] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 552) -[2618961.474] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 552) -[2618961.479] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2618961.482] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2618961.488] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) -[2618961.492] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) -[2618961.554] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 552) -[2618961.559] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 552) -[2618961.563] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2618961.567] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2618961.573] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) -[2618961.577] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) -[2618961.581] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) -[2618961.586] {Default Queue} -> wl_surface#3303.commit() -[2618961.592] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) -[2618961.596] {Default Queue} -> wl_surface#3303.commit() -[2618962.668] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) -[2618962.684] {Default Queue} -> wl_surface#3303.commit() -[2618962.699] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 552) -[2618962.704] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 552) -[2618962.709] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2618962.713] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2618962.792] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 552) -[2618962.797] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 552) -[2618962.801] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2618962.805] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2618962.811] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) -[2618962.815] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) -[2618962.882] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 552) -[2618962.888] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 552) -[2618962.892] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2618962.896] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2618962.903] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) -[2618962.912] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) -[2618962.920] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) -[2618962.925] {Default Queue} -> wl_surface#3303.commit() -[2618962.929] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) -[2618962.933] {Default Queue} -> wl_surface#3303.commit() -[2618962.939] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) -[2618962.943] {Default Queue} -> wl_surface#3303.commit() -[2618962.950] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) -[2618962.954] {Default Queue} -> wl_surface#3399.commit() -[2618964.019] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) -[2618964.030] {Default Queue} -> wl_surface#3399.commit() -[2618964.041] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) -[2618964.046] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) -[2618964.050] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618964.055] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618964.063] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) -[2618964.067] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) -[2618964.071] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618964.075] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618964.080] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) -[2618964.084] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) -[2618964.089] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618964.092] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618964.097] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) -[2618964.101] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) -[2618964.105] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618964.108] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618964.113] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) -[2618964.117] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) -[2618964.121] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618964.126] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618964.134] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) -[2618964.138] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) -[2618964.142] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618964.145] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618964.150] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) -[2618964.154] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) -[2618964.158] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618964.162] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618964.167] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) -[2618964.171] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) -[2618964.175] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618964.178] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618964.183] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) -[2618964.187] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) -[2618964.190] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618964.194] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618964.204] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) -[2618964.209] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) -[2618964.213] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618964.217] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618964.221] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) -[2618964.225] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) -[2618964.229] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618964.237] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618964.244] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) -[2618964.248] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) -[2618964.252] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618964.256] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618964.261] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) -[2618964.265] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) -[2618964.268] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618964.272] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618964.277] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) -[2618964.281] {Default Queue} -> wl_surface#3399.commit() -[2618964.285] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) -[2618964.289] {Default Queue} -> wl_surface#3399.commit() -[2618964.295] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) -[2618964.300] {Default Queue} -> wl_surface#3399.commit() -[2618964.306] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) -[2618964.310] {Default Queue} -> wl_surface#3431.commit() -[2618965.374] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) -[2618965.386] {Default Queue} -> wl_surface#3431.commit() -[2618965.396] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) -[2618965.401] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) -[2618965.405] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618965.409] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618965.418] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) -[2618965.422] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) -[2618965.426] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618965.430] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618965.435] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) -[2618965.439] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) -[2618965.443] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618965.447] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618965.451] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) -[2618965.455] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) -[2618965.459] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618965.463] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618965.467] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) -[2618965.471] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) -[2618965.475] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618965.479] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618965.485] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) -[2618965.490] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) -[2618965.494] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618965.498] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618965.502] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) -[2618965.506] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) -[2618965.510] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618965.514] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618965.518] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) -[2618965.522] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) -[2618965.526] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618965.530] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618965.534] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) -[2618965.538] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) -[2618965.547] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618965.553] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618965.563] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) -[2618965.567] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) -[2618965.571] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618965.574] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618965.579] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) -[2618965.583] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) -[2618965.587] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618965.590] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618965.595] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) -[2618965.599] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) -[2618965.603] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618965.606] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618965.611] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) -[2618965.615] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) -[2618965.619] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618965.623] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618965.627] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) -[2618965.631] {Default Queue} -> wl_surface#3431.commit() -[2618965.635] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) -[2618965.639] {Default Queue} -> wl_surface#3431.commit() -[2618965.645] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) -[2618965.649] {Default Queue} -> wl_surface#3431.commit() -[2618965.662] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2618965.667] {Default Queue} -> wl_surface#3527.commit() -[2618966.736] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2618966.749] {Default Queue} -> wl_surface#3527.commit() -[2618966.760] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 555) -[2618966.765] {Default Queue} -> wl_region#3551.add(-138, -573, 76, 491) -[2618966.770] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618966.774] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618966.784] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 555) -[2618966.789] {Default Queue} -> wl_region#3551.add(-138, -573, 76, 491) -[2618966.793] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618966.797] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618966.803] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 555) -[2618966.807] {Default Queue} -> wl_region#3551.add(-138, -573, 76, 491) -[2618966.811] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618966.815] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618966.819] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 555) -[2618966.823] {Default Queue} -> wl_region#3551.add(-138, -573, 76, 491) -[2618966.827] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618966.831] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618966.835] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 555) -[2618966.839] {Default Queue} -> wl_region#3551.add(-138, -573, 76, 491) -[2618966.843] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618966.847] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618966.881] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 555) -[2618966.887] {Default Queue} -> wl_region#3551.add(-138, -573, 76, 491) -[2618966.891] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618966.895] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618966.908] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618966.917] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618966.981] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 555) -[2618966.986] {Default Queue} -> wl_region#3551.add(-138, -573, 76, 491) -[2618966.990] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2618966.994] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2618966.999] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618967.003] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618967.011] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2618967.015] {Default Queue} -> wl_surface#3527.commit() -[2618967.020] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2618967.024] {Default Queue} -> wl_surface#3527.commit() -[2618967.031] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2618967.035] {Default Queue} -> wl_surface#3527.commit() -[2618967.062] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2618967.067] {Default Queue} -> wl_surface#3495.commit() -[2618967.595] {Display Queue} wl_display#1.delete_id(2461) -[2618967.612] {Display Queue} wl_display#1.delete_id(2462) -[2618967.617] {Display Queue} wl_display#1.delete_id(2459) -[2618967.622] {Display Queue} wl_display#1.delete_id(2460) -[2618967.627] {Display Queue} wl_display#1.delete_id(2365) -[2618967.630] {Display Queue} wl_display#1.delete_id(2366) -[2618967.634] {Display Queue} wl_display#1.delete_id(2363) -[2618967.638] {Display Queue} wl_display#1.delete_id(2364) -[2618967.642] {Display Queue} wl_display#1.delete_id(2589) -[2618967.646] {Display Queue} wl_display#1.delete_id(2590) -[2618967.649] {Display Queue} wl_display#1.delete_id(2587) -[2618967.653] {Display Queue} wl_display#1.delete_id(2588) -[2618967.657] {Display Queue} wl_display#1.delete_id(2621) -[2618967.661] {Display Queue} wl_display#1.delete_id(2622) -[2618967.665] {Display Queue} wl_display#1.delete_id(2619) -[2618967.669] {Display Queue} wl_display#1.delete_id(2620) -[2618967.673] {Display Queue} wl_display#1.delete_id(2525) -[2618967.677] {Display Queue} wl_display#1.delete_id(2526) -[2618967.680] {Display Queue} wl_display#1.delete_id(2523) -[2618967.684] {Display Queue} wl_display#1.delete_id(2524) -[2618967.688] {Display Queue} wl_display#1.delete_id(2749) -[2618967.691] {Display Queue} wl_display#1.delete_id(2750) -[2618967.695] {Display Queue} wl_display#1.delete_id(2747) -[2618967.699] {Display Queue} wl_display#1.delete_id(2748) -[2618967.702] {Display Queue} wl_display#1.delete_id(2781) -[2618967.706] {Display Queue} wl_display#1.delete_id(2782) -[2618967.710] {Display Queue} wl_display#1.delete_id(2779) -[2618967.714] {Display Queue} wl_display#1.delete_id(2780) -[2618967.717] {Display Queue} wl_display#1.delete_id(2685) -[2618967.721] {Display Queue} wl_display#1.delete_id(2686) -[2618967.725] {Display Queue} wl_display#1.delete_id(2683) -[2618967.728] {Display Queue} wl_display#1.delete_id(2684) -[2618967.732] {Default Queue} wl_pointer#24.motion(187310596, 28.60156250, 15.39843750) -[2618967.738] {Default Queue} wl_pointer#81.motion(187310596, 28.60156250, 15.39843750) -[2618967.746] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618967.751] {Default Queue} wl_pointer#105.motion(187310596, 28.60156250, 15.39843750) -[2618967.757] {Default Queue} wl_pointer#137.motion(187310596, 28.60156250, 15.39843750) -[2618967.762] {Default Queue} wl_pointer#169.motion(187310596, 28.60156250, 15.39843750) -[2618967.767] {Default Queue} wl_pointer#201.motion(187310596, 28.60156250, 15.39843750) -[2618967.771] {Default Queue} wl_pointer#233.motion(187310596, 28.60156250, 15.39843750) -[2618967.776] {Default Queue} wl_pointer#265.motion(187310596, 28.60156250, 15.39843750) -[2618967.780] {Default Queue} wl_pointer#297.motion(187310596, 28.60156250, 15.39843750) -[2618967.785] {Default Queue} wl_pointer#329.motion(187310596, 28.60156250, 15.39843750) -[2618967.790] {Default Queue} wl_pointer#361.motion(187310596, 28.60156250, 15.39843750) -[2618967.794] {Default Queue} wl_pointer#393.motion(187310596, 28.60156250, 15.39843750) -[2618967.805] {Default Queue} wl_pointer#425.motion(187310596, 28.60156250, 15.39843750) -[2618967.817] {Default Queue} wl_pointer#457.motion(187310596, 28.60156250, 15.39843750) -[2618967.822] {Default Queue} wl_pointer#489.motion(187310596, 28.60156250, 15.39843750) -[2618967.827] {Default Queue} wl_pointer#521.motion(187310596, 28.60156250, 15.39843750) -[2618967.831] {Default Queue} wl_pointer#553.motion(187310596, 28.60156250, 15.39843750) -[2618967.836] {Default Queue} wl_pointer#585.motion(187310596, 28.60156250, 15.39843750) -[2618967.840] {Default Queue} wl_pointer#617.motion(187310596, 28.60156250, 15.39843750) -[2618967.845] {Default Queue} wl_pointer#649.motion(187310596, 28.60156250, 15.39843750) -[2618967.849] {Default Queue} wl_pointer#681.motion(187310596, 28.60156250, 15.39843750) -[2618967.854] {Default Queue} wl_pointer#713.motion(187310596, 28.60156250, 15.39843750) -[2618967.858] {Default Queue} wl_pointer#745.motion(187310596, 28.60156250, 15.39843750) -[2618967.869] {Default Queue} wl_pointer#777.motion(187310596, 28.60156250, 15.39843750) -[2618967.873] {Default Queue} wl_pointer#809.motion(187310596, 28.60156250, 15.39843750) -[2618967.877] {Default Queue} wl_pointer#841.motion(187310596, 28.60156250, 15.39843750) -[2618967.882] {Default Queue} wl_pointer#873.motion(187310596, 28.60156250, 15.39843750) -[2618967.886] {Default Queue} wl_pointer#905.motion(187310596, 28.60156250, 15.39843750) -[2618967.891] {Default Queue} wl_pointer#937.motion(187310596, 28.60156250, 15.39843750) -[2618967.895] {Default Queue} wl_pointer#969.motion(187310596, 28.60156250, 15.39843750) -[2618967.900] {Default Queue} wl_pointer#1001.motion(187310596, 28.60156250, 15.39843750) -[2618967.904] {Default Queue} wl_pointer#1033.motion(187310596, 28.60156250, 15.39843750) -[2618967.909] {Default Queue} wl_pointer#1065.motion(187310596, 28.60156250, 15.39843750) -[2618967.913] {Default Queue} wl_pointer#1097.motion(187310596, 28.60156250, 15.39843750) -[2618967.917] {Default Queue} wl_pointer#1129.motion(187310596, 28.60156250, 15.39843750) -[2618967.922] {Default Queue} wl_pointer#1161.motion(187310596, 28.60156250, 15.39843750) -[2618967.927] {Default Queue} wl_pointer#1193.motion(187310596, 28.60156250, 15.39843750) -[2618967.932] {Default Queue} wl_pointer#1225.motion(187310596, 28.60156250, 15.39843750) -[2618967.936] {Default Queue} wl_pointer#1257.motion(187310596, 28.60156250, 15.39843750) -[2618967.941] {Default Queue} wl_pointer#1289.motion(187310596, 28.60156250, 15.39843750) -[2618967.945] {Default Queue} wl_pointer#1321.motion(187310596, 28.60156250, 15.39843750) -[2618967.950] {Default Queue} wl_pointer#1353.motion(187310596, 28.60156250, 15.39843750) -[2618967.954] {Default Queue} wl_pointer#1385.motion(187310596, 28.60156250, 15.39843750) -[2618967.959] {Default Queue} wl_pointer#1417.motion(187310596, 28.60156250, 15.39843750) -[2618967.964] {Default Queue} wl_pointer#1449.motion(187310596, 28.60156250, 15.39843750) -[2618967.968] {Default Queue} wl_pointer#1481.motion(187310596, 28.60156250, 15.39843750) -[2618967.972] {Default Queue} wl_pointer#1513.motion(187310596, 28.60156250, 15.39843750) -[2618967.977] {Default Queue} wl_pointer#1545.motion(187310596, 28.60156250, 15.39843750) -[2618967.981] {Default Queue} wl_pointer#1577.motion(187310596, 28.60156250, 15.39843750) -[2618967.986] {Default Queue} wl_pointer#1609.motion(187310596, 28.60156250, 15.39843750) -[2618967.990] {Default Queue} wl_pointer#1641.motion(187310596, 28.60156250, 15.39843750) -[2618967.995] {Default Queue} wl_pointer#1673.motion(187310596, 28.60156250, 15.39843750) -[2618968.000] {Default Queue} wl_pointer#1705.motion(187310596, 28.60156250, 15.39843750) -[2618968.004] {Default Queue} wl_pointer#1737.motion(187310596, 28.60156250, 15.39843750) -[2618968.008] {Default Queue} wl_pointer#1762.motion(187310596, 28.60156250, 15.39843750) -[2618968.013] {Default Queue} wl_pointer#1801.motion(187310596, 28.60156250, 15.39843750) -[2618968.018] {Default Queue} wl_pointer#1833.motion(187310596, 28.60156250, 15.39843750) -[2618968.026] {Default Queue} wl_pointer#1865.motion(187310596, 28.60156250, 15.39843750) -[2618968.032] {Default Queue} wl_pointer#1897.motion(187310596, 28.60156250, 15.39843750) -[2618968.036] {Default Queue} wl_pointer#1929.motion(187310596, 28.60156250, 15.39843750) -[2618968.041] {Default Queue} wl_pointer#1961.motion(187310596, 28.60156250, 15.39843750) -[2618968.045] {Default Queue} wl_pointer#1993.motion(187310596, 28.60156250, 15.39843750) -[2618968.050] {Default Queue} wl_pointer#2025.motion(187310596, 28.60156250, 15.39843750) -[2618968.055] {Default Queue} wl_pointer#2057.motion(187310596, 28.60156250, 15.39843750) -[2618968.059] {Default Queue} wl_pointer#2089.motion(187310596, 28.60156250, 15.39843750) -[2618968.064] {Default Queue} wl_pointer#2121.motion(187310596, 28.60156250, 15.39843750) -[2618968.068] {Default Queue} wl_pointer#2153.motion(187310596, 28.60156250, 15.39843750) -[2618968.075] {Default Queue} wl_pointer#2185.motion(187310596, 28.60156250, 15.39843750) -[2618968.079] {Default Queue} wl_pointer#2217.motion(187310596, 28.60156250, 15.39843750) -[2618968.083] {Default Queue} wl_pointer#2249.motion(187310596, 28.60156250, 15.39843750) -[2618968.088] {Default Queue} wl_pointer#2281.motion(187310596, 28.60156250, 15.39843750) -[2618968.092] {Default Queue} wl_pointer#2313.motion(187310596, 28.60156250, 15.39843750) -[2618968.097] {Default Queue} wl_pointer#2345.motion(187310596, 28.60156250, 15.39843750) -[2618968.102] {Default Queue} wl_pointer#2377.motion(187310596, 28.60156250, 15.39843750) -[2618968.106] {Default Queue} wl_pointer#2409.motion(187310596, 28.60156250, 15.39843750) -[2618968.111] {Default Queue} wl_pointer#2441.motion(187310596, 28.60156250, 15.39843750) -[2618968.115] {Default Queue} wl_pointer#2473.motion(187310596, 28.60156250, 15.39843750) -[2618968.119] {Default Queue} wl_pointer#2498.motion(187310596, 28.60156250, 15.39843750) -[2618968.137] {Default Queue} -> wl_buffer#2430.destroy() -[2618968.144] {Default Queue} -> wl_buffer#2429.destroy() -[2618968.148] {Default Queue} -> wl_shm_pool#2428.destroy() -[2618968.152] {Default Queue} -> wl_shm_pool#2427.destroy() -[2618968.157] {Default Queue} -> wl_surface#2140.destroy() -[2618968.204] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2684, fd 575, 640) -[2618968.210] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2683, fd 578, 640) -[2618968.214] {Default Queue} -> wl_shm_pool#2684.create_buffer(new id wl_buffer#2686, 0, 10, 16, 40, 0) -[2618968.219] {Default Queue} -> wl_shm_pool#2683.create_buffer(new id wl_buffer#2685, 0, 10, 16, 40, 0) -[2618968.227] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#2780) -[2618968.231] {Default Queue} -> wl_surface#2780.attach(wl_buffer#2686, 0, 0) -[2618968.235] {Default Queue} -> wl_surface#2780.commit() -[2618968.240] {Default Queue} -> wl_surface#2780.attach(wl_buffer#2686, 0, 0) -[2618968.244] {Default Queue} -> wl_surface#2780.commit() -[2618968.248] {Default Queue} wl_pointer#2537.motion(187310596, 28.60156250, 15.39843750) -[2618968.253] {Default Queue} wl_pointer#2569.motion(187310596, 28.60156250, 15.39843750) -[2618968.257] {Default Queue} wl_pointer#2601.motion(187310596, 28.60156250, 15.39843750) -[2618968.262] {Default Queue} wl_pointer#2633.motion(187310596, 28.60156250, 15.39843750) -[2618968.266] {Default Queue} wl_pointer#2665.motion(187310596, 28.60156250, 15.39843750) -[2618968.271] {Default Queue} wl_pointer#2697.motion(187310596, 28.60156250, 15.39843750) -[2618968.275] {Default Queue} wl_pointer#2729.motion(187310596, 28.60156250, 15.39843750) -[2618968.280] {Default Queue} wl_pointer#2761.motion(187310596, 28.60156250, 15.39843750) -[2618968.284] {Default Queue} wl_pointer#2793.motion(187310596, 28.60156250, 15.39843750) -[2618968.288] {Default Queue} wl_pointer#2825.motion(187310596, 28.60156250, 15.39843750) -[2618968.293] {Default Queue} wl_pointer#2857.motion(187310596, 28.60156250, 15.39843750) -[2618968.298] {Default Queue} wl_pointer#2889.motion(187310596, 28.60156250, 15.39843750) -[2618968.302] {Default Queue} wl_pointer#2921.motion(187310596, 28.60156250, 15.39843750) -[2618968.310] {Default Queue} wl_pointer#2953.motion(187310596, 28.60156250, 15.39843750) -[2618968.316] {Default Queue} wl_pointer#2985.motion(187310596, 28.60156250, 15.39843750) -[2618968.320] {Default Queue} wl_pointer#3017.motion(187310596, 28.60156250, 15.39843750) -[2618968.324] {Default Queue} wl_pointer#3049.motion(187310596, 28.60156250, 15.39843750) -[2618968.329] {Default Queue} wl_pointer#3081.motion(187310596, 28.60156250, 15.39843750) -[2618968.333] {Default Queue} wl_pointer#3113.motion(187310596, 28.60156250, 15.39843750) -[2618968.337] {Default Queue} wl_pointer#3145.motion(187310596, 28.60156250, 15.39843750) -[2618968.342] {Default Queue} wl_pointer#3177.motion(187310596, 28.60156250, 15.39843750) -[2618968.346] {Default Queue} wl_pointer#3209.motion(187310596, 28.60156250, 15.39843750) -[2618968.350] {Default Queue} wl_pointer#3241.motion(187310596, 28.60156250, 15.39843750) -[2618968.355] {Default Queue} wl_pointer#3273.motion(187310596, 28.60156250, 15.39843750) -[2618968.359] {Default Queue} wl_pointer#3305.motion(187310596, 28.60156250, 15.39843750) -[2618968.364] {Default Queue} wl_pointer#3337.motion(187310596, 28.60156250, 15.39843750) -[2618968.368] {Default Queue} wl_pointer#3369.motion(187310596, 28.60156250, 15.39843750) -[2618968.372] {Default Queue} wl_pointer#3401.motion(187310596, 28.60156250, 15.39843750) -[2618968.377] {Default Queue} wl_pointer#3433.motion(187310596, 28.60156250, 15.39843750) -[2618968.381] {Default Queue} wl_pointer#3465.motion(187310596, 28.60156250, 15.39843750) -[2618968.386] {Default Queue} wl_pointer#3497.motion(187310596, 28.60156250, 15.39843750) -[2618968.391] {Default Queue} wl_pointer#3529.motion(187310596, 28.60156250, 15.39843750) -[2618968.395] {Default Queue} wl_pointer#3561.motion(187310596, 28.60156250, 15.39843750) -[2618968.400] {Default Queue} wl_pointer#3593.motion(187310596, 28.60156250, 15.39843750) -[2618968.404] {Default Queue} wl_pointer#3625.motion(187310596, 28.60156250, 15.39843750) -[2618968.409] {Default Queue} wl_pointer#3657.motion(187310596, 28.60156250, 15.39843750) -[2618968.413] {Default Queue} wl_pointer#3695.motion(187310596, 28.60156250, 15.39843750) -[2618968.426] {Default Queue} -> wl_region#3519.subtract(0, 0, 140, 535) -[2618968.430] {Default Queue} -> wl_region#3519.add(-138, -553, 140, 535) -[2618968.435] {Default Queue} -> wl_surface#3495.set_opaque_region(wl_region#3520) -[2618968.439] {Default Queue} -> wl_surface#3495.set_input_region(wl_region#3519) -[2618968.493] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2618968.498] {Default Queue} -> wl_surface#3495.commit() -[2618968.506] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2618968.510] {Default Queue} -> wl_surface#3495.commit() -[2618968.520] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2618968.525] {Default Queue} -> wl_surface#3495.commit() -[2618968.531] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) -[2618968.535] {Default Queue} -> wl_surface#3463.commit() -[2618969.599] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) -[2618969.607] {Default Queue} -> wl_surface#3463.commit() -[2618969.616] {Default Queue} -> wl_region#3487.subtract(0, 0, 140, 535) -[2618969.620] {Default Queue} -> wl_region#3487.add(-138, -553, 140, 535) -[2618969.624] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) -[2618969.628] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) -[2618969.633] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) -[2618969.637] {Default Queue} -> wl_surface#3463.commit() -[2618969.641] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) -[2618969.644] {Default Queue} -> wl_surface#3463.commit() -[2618969.650] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) -[2618969.654] {Default Queue} -> wl_surface#3463.commit() -[2618969.660] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) -[2618969.664] {Default Queue} -> wl_surface#3367.commit() -[2618970.725] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) -[2618970.735] {Default Queue} -> wl_surface#3367.commit() -[2618970.746] {Default Queue} -> wl_region#3391.subtract(0, 0, 140, 535) -[2618970.750] {Default Queue} -> wl_region#3391.add(-138, -553, 140, 535) -[2618970.754] {Default Queue} -> wl_surface#3367.set_opaque_region(wl_region#3392) -[2618970.758] {Default Queue} -> wl_surface#3367.set_input_region(wl_region#3391) -[2618970.762] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) -[2618970.785] {Default Queue} -> wl_surface#3367.commit() -[2618970.789] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) -[2618970.793] {Default Queue} -> wl_surface#3367.commit() -[2618970.798] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) -[2618970.802] {Default Queue} -> wl_surface#3367.commit() -[2618970.806] {Default Queue} -> wl_region#3359.subtract(0, 0, 2, 2) -[2618970.812] {Default Queue} -> wl_region#3391.subtract(0, 0, 2, 2) -[2618970.817] {Default Queue} -> wl_subsurface#3386.set_position(1, 1) -[2618970.821] {Default Queue} -> wl_region#3391.subtract(0, 0, 141, 536) -[2618970.825] {Default Queue} -> wl_region#3391.add(-138, -553, 140, 535) -[2618970.829] {Default Queue} -> wl_surface#3367.set_opaque_region(wl_region#3392) -[2618970.832] {Default Queue} -> wl_surface#3367.set_input_region(wl_region#3391) -[2618970.836] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2618970.840] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2618970.845] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618970.849] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) -[2618970.853] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) -[2618970.857] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) -[2618970.866] {Default Queue} -> wl_region#3391.subtract(0, 0, 140, 555) -[2618970.870] {Default Queue} -> wl_region#3391.add(-138, -573, 139, 554) -[2618970.874] {Default Queue} -> wl_surface#3367.set_opaque_region(wl_region#3392) -[2618970.878] {Default Queue} -> wl_surface#3367.set_input_region(wl_region#3391) -[2618970.882] {Default Queue} -> wl_surface#3367.attach(wl_buffer#3389, 0, 0) -[2618970.886] {Default Queue} -> wl_surface#3367.commit() -[2618970.891] {Default Queue} -> wl_region#3423.subtract(0, 0, 2, 2) -[2618970.895] {Default Queue} -> wl_subsurface#3418.set_position(-14, 0) -[2618970.899] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 535) -[2618970.902] {Default Queue} -> wl_region#3423.add(-124, -553, 126, 535) -[2618970.906] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618970.910] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618970.914] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2618970.921] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618970.925] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618970.929] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618970.933] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618970.944] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618970.948] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618970.952] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618970.956] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618970.961] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618970.965] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618970.969] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618970.972] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618970.977] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618970.981] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618970.985] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618970.989] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618970.994] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.001] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.006] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.010] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.016] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.020] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.024] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.028] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.032] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.036] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.040] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.044] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.049] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.053] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.057] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.060] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.065] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.069] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.072] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.076] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.086] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.090] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.094] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.098] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.102] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.106] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.110] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.114] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.119] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.123] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.126] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.130] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.134] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.138] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.142] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.146] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.150] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) -[2618971.154] {Default Queue} -> wl_surface#3399.commit() -[2618971.159] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 2) -[2618971.163] {Default Queue} -> wl_subsurface#3450.set_position(0, -14) -[2618971.166] {Default Queue} -> wl_region#3455.subtract(0, 0, 140, 549) -[2618971.170] {Default Queue} -> wl_region#3455.add(-138, -539, 140, 535) -[2618971.174] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.178] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.182] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2618971.188] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.192] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.196] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.199] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.206] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.210] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.213] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.217] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.224] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.230] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.233] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.237] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.241] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.245] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.249] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.253] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.258] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.262] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.266] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.269] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.275] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.279] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.283] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.286] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.291] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.295] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.298] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.302] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.306] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.310] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.314] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.318] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.322] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.326] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.330] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.334] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.343] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.347] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.351] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.355] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.359] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.363] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.367] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.371] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.375] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.379] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.383] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.387] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.392] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.396] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.400] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.403] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.407] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) -[2618971.411] {Default Queue} -> wl_surface#3431.commit() -[2618971.416] {Default Queue} -> wl_region#3487.subtract(0, 0, 2, 2) -[2618971.420] {Default Queue} -> wl_subsurface#3482.set_position(0, 0) -[2618971.423] {Default Queue} -> wl_region#3487.subtract(0, 0, 140, 535) -[2618971.427] {Default Queue} -> wl_region#3487.add(-138, -553, 140, 535) -[2618971.431] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) -[2618971.435] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) -[2618971.438] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618971.445] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) -[2618971.450] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) -[2618971.455] {Default Queue} -> wl_region#3487.subtract(0, 0, 139, 554) -[2618971.459] {Default Queue} -> wl_region#3487.add(-138, -573, 139, 554) -[2618971.463] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) -[2618971.467] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) -[2618971.471] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) -[2618971.475] {Default Queue} -> wl_surface#3463.commit() -[2618971.479] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2618971.484] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2618971.488] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2618971.492] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2618971.496] {Default Queue} -> wl_region#3423.subtract(0, 0, 2, 2) -[2618971.500] {Default Queue} -> wl_subsurface#3418.set_position(-14, 0) -[2618971.504] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.508] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.511] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.515] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.519] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2618971.524] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.528] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.532] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.536] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.542] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.546] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.549] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.553] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.557] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.561] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.565] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.569] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.573] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.577] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.581] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.585] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.589] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.593] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.597] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.600] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.606] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.610] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.614] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.617] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.622] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.625] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.629] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.633] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.638] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.642] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.646] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.650] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.654] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.658] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.664] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.669] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.678] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.683] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.687] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.690] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.695] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.699] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.702] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.706] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.710] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.714] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.721] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.725] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.730] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2618971.734] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2618971.738] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2618971.768] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2618971.783] {Default Queue} -> wl_surface#3399.attach(wl_buffer#3748, 0, 0) -[2618971.789] {Default Queue} -> wl_surface#3399.commit() -[2618971.796] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 2) -[2618971.801] {Default Queue} -> wl_subsurface#3450.set_position(0, -14) -[2618971.805] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.810] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.814] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.818] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.822] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2618971.832] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.837] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.842] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.846] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.854] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.858] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.869] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.873] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.879] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.883] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.887] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.891] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.896] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.900] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.904] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.908] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.913] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.917] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.921] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.926] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.932] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.936] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.940] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.944] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.948] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.958] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.966] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.970] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.974] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.978] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.982] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618971.985] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618971.990] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618971.994] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618971.998] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618972.001] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618972.011] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618972.016] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618972.020] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618972.024] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618972.028] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618972.032] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618972.036] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618972.040] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618972.045] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618972.049] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618972.053] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618972.056] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618972.061] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2618972.066] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2618972.070] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2618972.074] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2618972.079] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3752, 0, 0) -[2618972.083] {Default Queue} -> wl_surface#3431.commit() -[2618972.088] {Default Queue} -> wl_region#3487.subtract(0, 0, 2, 2) -[2618972.092] {Default Queue} -> wl_subsurface#3482.set_position(0, 0) -[2618972.096] {Default Queue} -> wl_region#3487.subtract(0, 0, 139, 554) -[2618972.100] {Default Queue} -> wl_region#3487.add(-138, -573, 139, 554) -[2618972.104] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) -[2618972.108] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) -[2618972.112] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618972.116] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) -[2618972.121] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) -[2618972.127] {Default Queue} -> wl_region#3487.subtract(0, 0, 139, 554) -[2618972.131] {Default Queue} -> wl_region#3487.add(-138, -573, 139, 554) -[2618972.135] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) -[2618972.139] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) -[2618972.143] {Default Queue} -> wl_surface#3463.attach(wl_buffer#3760, 0, 0) -[2618972.147] {Default Queue} -> wl_surface#3463.commit() -[2618972.152] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2618972.157] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2618972.161] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2618972.166] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2618972.172] {Default Queue} -> wl_region#3391.subtract(0, 0, 140, 555) -[2618972.176] {Default Queue} -> wl_region#3391.add(-138, -573, 139, 554) -[2618972.180] {Default Queue} -> wl_surface#3367.set_opaque_region(wl_region#3392) -[2618972.184] {Default Queue} -> wl_surface#3367.set_input_region(wl_region#3391) -[2618972.189] {Default Queue} -> wl_region#3359.subtract(0, 0, 140, 555) -[2618972.193] {Default Queue} -> wl_region#3359.add(-138, -553, 140, 535) -[2618972.202] {Default Queue} -> wl_surface#3335.set_opaque_region(wl_region#3360) -[2618972.207] {Default Queue} -> wl_surface#3335.set_input_region(wl_region#3359) -[2618972.211] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2618972.215] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2618972.220] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618972.224] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) -[2618972.228] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) -[2618972.234] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) -[2618972.238] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) -[2618972.252] {Default Queue} -> wl_buffer#3357.destroy() -[2618972.257] {Default Queue} -> wl_buffer#3358.destroy() -[2618972.262] {Default Queue} -> wl_shm_pool#3355.destroy() -[2618972.266] {Default Queue} -> wl_shm_pool#3356.destroy() -[2618972.309] {Default Queue} -> wl_shm#3343.create_pool(new id wl_shm_pool#2779, fd 575, 16) -[2618972.316] {Default Queue} -> wl_shm#3343.create_pool(new id wl_shm_pool#2782, fd 578, 16) -[2618972.321] {Default Queue} -> wl_shm_pool#2779.create_buffer(new id wl_buffer#2781, 0, 2, 2, 8, 0) -[2618972.325] {Default Queue} -> wl_shm_pool#2782.create_buffer(new id wl_buffer#2748, 0, 2, 2, 8, 0) -[2618972.332] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) -[2618972.336] {Default Queue} -> wl_surface#3335.commit() -[2618972.341] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) -[2618972.346] {Default Queue} -> wl_surface#3335.commit() -[2618972.353] {Default Queue} -> wl_region#3359.subtract(0, 0, 140, 555) -[2618972.357] {Default Queue} -> wl_region#3359.add(-138, -553, 140, 535) -[2618972.361] {Default Queue} -> wl_surface#3335.set_opaque_region(wl_region#3360) -[2618972.365] {Default Queue} -> wl_surface#3335.set_input_region(wl_region#3359) -[2618972.370] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) -[2618972.374] {Default Queue} -> wl_surface#3335.commit() -[2618972.380] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) -[2618972.385] {Default Queue} -> wl_surface#3335.commit() -[2618973.454] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) -[2618973.467] {Default Queue} -> wl_surface#3335.commit() -[2618973.477] {Default Queue} -> wl_region#3359.subtract(0, 0, 140, 555) -[2618973.482] {Default Queue} -> wl_region#3359.add(-138, -553, 140, 535) -[2618973.486] {Default Queue} -> wl_surface#3335.set_opaque_region(wl_region#3360) -[2618973.491] {Default Queue} -> wl_surface#3335.set_input_region(wl_region#3359) -[2618973.496] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) -[2618973.500] {Default Queue} -> wl_surface#3335.commit() -[2618973.504] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) -[2618973.508] {Default Queue} -> wl_surface#3335.commit() -[2618973.515] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) -[2618973.519] {Default Queue} -> wl_surface#3335.commit() -[2618973.525] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) -[2618973.529] {Default Queue} -> wl_surface#3271.commit() -[2618974.593] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) -[2618974.605] {Default Queue} -> wl_surface#3271.commit() -[2618974.615] {Default Queue} -> wl_region#3295.subtract(0, 0, 140, 555) -[2618974.620] {Default Queue} -> wl_region#3295.add(-135, -550, 137, 552) -[2618974.625] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) -[2618974.629] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) -[2618974.635] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) -[2618974.641] {Default Queue} -> wl_surface#3271.commit() -[2618974.645] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) -[2618974.649] {Default Queue} -> wl_surface#3271.commit() -[2618974.656] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) -[2618974.660] {Default Queue} -> wl_surface#3271.commit() -[2618974.664] {Default Queue} -> wl_region#3263.subtract(0, 0, 115, 167) -[2618974.681] {Default Queue} -> wl_region#3295.subtract(0, 0, 2, 2) -[2618974.688] {Default Queue} -> wl_subsurface#3290.set_position(3, 3) -[2618974.693] {Default Queue} -> wl_region#3295.subtract(0, 0, 140, 555) -[2618974.697] {Default Queue} -> wl_region#3295.add(-135, -550, 137, 552) -[2618974.701] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) -[2618974.705] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) -[2618974.709] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) -[2618974.713] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2618974.717] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2618974.722] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618974.726] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) -[2618974.729] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) -[2618974.733] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) -[2618974.737] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) -[2618974.741] {Default Queue} -> wl_surface#3271.damage(0, 0, 2, 2) -[2618974.746] {Default Queue} -> wl_region#3295.subtract(0, 0, 140, 555) -[2618974.751] {Default Queue} -> wl_region#3295.add(-135, -550, 137, 552) -[2618974.755] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) -[2618974.759] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) -[2618974.763] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3764, 0, 0) -[2618974.767] {Default Queue} -> wl_surface#3271.commit() -[2618974.772] {Default Queue} -> wl_region#3295.subtract(0, 0, 247, 714) -[2618974.776] {Default Queue} -> wl_region#3295.add(-135, -550, 244, 711) -[2618974.780] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) -[2618974.784] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) -[2618974.788] {Default Queue} -> wl_region#3263.subtract(0, 0, 137, 552) -[2618974.792] {Default Queue} -> wl_region#3263.add(-20, -550, 22, 552) -[2618974.796] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618974.800] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618974.804] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) -[2618974.808] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2618974.812] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2618974.816] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618974.820] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) -[2618974.824] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) -[2618974.829] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) -[2618974.833] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) -[2618974.837] {Default Queue} -> wl_surface#3271.damage(0, 0, 109, 161) -[2618974.841] {Default Queue} -> wl_surface#3239.damage(0, 0, 115, 167) -[2618974.857] {Default Queue} -> wl_buffer#3261.destroy() -[2618974.867] {Default Queue} -> wl_buffer#3262.destroy() -[2618974.888] {Default Queue} -> wl_shm_pool#3259.destroy() -[2618974.900] {Default Queue} -> wl_shm_pool#3260.destroy() -[2618974.988] {Default Queue} -> wl_shm#3247.create_pool(new id wl_shm_pool#2747, fd 575, 76820) -[2618974.996] {Default Queue} -> wl_shm#3247.create_pool(new id wl_shm_pool#2750, fd 578, 76820) -[2618975.001] {Default Queue} -> wl_shm_pool#2747.create_buffer(new id wl_buffer#2749, 0, 115, 167, 460, 0) -[2618975.006] {Default Queue} -> wl_shm_pool#2750.create_buffer(new id wl_buffer#2524, 0, 115, 167, 460, 0) -[2618975.029] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) -[2618975.034] {Default Queue} -> wl_surface#3239.commit() -[2618975.056] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) -[2618975.061] {Default Queue} -> wl_surface#3239.commit() -[2618975.072] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) -[2618975.077] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) -[2618975.082] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618975.090] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618975.101] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) -[2618975.105] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) -[2618975.110] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618975.116] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618975.134] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) -[2618975.143] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) -[2618975.149] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618975.155] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618975.165] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) -[2618975.171] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) -[2618975.176] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618975.180] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618975.187] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) -[2618975.192] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) -[2618975.196] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618975.199] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618975.208] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) -[2618975.212] {Default Queue} -> wl_surface#3239.commit() -[2618975.220] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) -[2618975.224] {Default Queue} -> wl_surface#3239.commit() -[2618976.281] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) -[2618976.293] {Default Queue} -> wl_surface#3239.commit() -[2618976.306] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) -[2618976.311] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) -[2618976.315] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618976.319] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618976.327] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) -[2618976.331] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) -[2618976.336] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618976.339] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618976.345] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) -[2618976.349] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) -[2618976.353] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618976.357] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618976.363] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) -[2618976.367] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) -[2618976.371] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618976.375] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618976.381] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) -[2618976.386] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) -[2618976.390] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618976.393] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618976.400] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) -[2618976.404] {Default Queue} -> wl_surface#3239.commit() -[2618976.409] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) -[2618976.413] {Default Queue} -> wl_surface#3239.commit() -[2618976.421] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) -[2618976.425] {Default Queue} -> wl_surface#3239.commit() -[2618976.430] {Default Queue} -> wl_region#3583.subtract(0, 0, 115, 167) -[2618976.434] {Default Queue} -> wl_region#3583.subtract(0, 0, 252, 552) -[2618976.438] {Default Queue} -> wl_region#3583.add(-20, -550, 22, 552) -[2618976.442] {Default Queue} -> wl_surface#3559.set_opaque_region(wl_region#3584) -[2618976.446] {Default Queue} -> wl_surface#3559.set_input_region(wl_region#3583) -[2618976.454] {Default Queue} -> wl_surface#3559.damage(0, 0, 115, 167) -[2618976.470] {Default Queue} -> wl_buffer#3581.destroy() -[2618976.475] {Default Queue} -> wl_buffer#3582.destroy() -[2618976.479] {Default Queue} -> wl_shm_pool#3579.destroy() -[2618976.483] {Default Queue} -> wl_shm_pool#3580.destroy() -[2618976.563] {Default Queue} -> wl_shm#3567.create_pool(new id wl_shm_pool#2523, fd 575, 76820) -[2618976.570] {Default Queue} -> wl_shm#3567.create_pool(new id wl_shm_pool#2526, fd 578, 76820) -[2618976.574] {Default Queue} -> wl_shm_pool#2523.create_buffer(new id wl_buffer#2525, 0, 115, 167, 460, 0) -[2618976.579] {Default Queue} -> wl_shm_pool#2526.create_buffer(new id wl_buffer#2620, 0, 115, 167, 460, 0) -[2618976.602] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) -[2618976.607] {Default Queue} -> wl_surface#3559.commit() -[2618976.628] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) -[2618976.633] {Default Queue} -> wl_surface#3559.commit() -[2618976.641] {Default Queue} -> wl_region#3583.subtract(0, 0, 365, 717) -[2618976.646] {Default Queue} -> wl_region#3583.add(-20, -550, 135, 717) -[2618976.650] {Default Queue} -> wl_surface#3559.set_opaque_region(wl_region#3584) -[2618976.654] {Default Queue} -> wl_surface#3559.set_input_region(wl_region#3583) -[2618976.661] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) -[2618976.665] {Default Queue} -> wl_surface#3559.commit() -[2618976.672] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) -[2618976.676] {Default Queue} -> wl_surface#3559.commit() -[2618977.373] {Display Queue} wl_display#1.delete_id(2909) -[2618977.387] {Display Queue} wl_display#1.delete_id(2910) -[2618977.392] {Display Queue} wl_display#1.delete_id(2907) -[2618977.396] {Display Queue} wl_display#1.delete_id(2908) -[2618977.400] {Display Queue} wl_display#1.delete_id(2941) -[2618977.404] {Display Queue} wl_display#1.delete_id(2942) -[2618977.408] {Display Queue} wl_display#1.delete_id(2939) -[2618977.412] {Display Queue} wl_display#1.delete_id(2940) -[2618977.416] {Display Queue} wl_display#1.delete_id(2845) -[2618977.419] {Display Queue} wl_display#1.delete_id(2846) -[2618977.423] {Display Queue} wl_display#1.delete_id(2843) -[2618977.427] {Display Queue} wl_display#1.delete_id(2844) -[2618977.430] {Default Queue} wl_pointer#24.motion(187310607, 28.19921875, 15.39843750) -[2618977.436] {Default Queue} wl_pointer#81.motion(187310607, 28.19921875, 15.39843750) -[2618977.442] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618977.447] {Default Queue} wl_pointer#105.motion(187310607, 28.19921875, 15.39843750) -[2618977.452] {Default Queue} wl_pointer#137.motion(187310607, 28.19921875, 15.39843750) -[2618977.456] {Default Queue} wl_pointer#169.motion(187310607, 28.19921875, 15.39843750) -[2618977.460] {Default Queue} wl_pointer#201.motion(187310607, 28.19921875, 15.39843750) -[2618977.464] {Default Queue} wl_pointer#233.motion(187310607, 28.19921875, 15.39843750) -[2618977.468] {Default Queue} wl_pointer#265.motion(187310607, 28.19921875, 15.39843750) -[2618977.473] {Default Queue} wl_pointer#297.motion(187310607, 28.19921875, 15.39843750) -[2618977.477] {Default Queue} wl_pointer#329.motion(187310607, 28.19921875, 15.39843750) -[2618977.481] {Default Queue} wl_pointer#361.motion(187310607, 28.19921875, 15.39843750) -[2618977.485] {Default Queue} wl_pointer#393.motion(187310607, 28.19921875, 15.39843750) -[2618977.489] {Default Queue} wl_pointer#425.motion(187310607, 28.19921875, 15.39843750) -[2618977.493] {Default Queue} wl_pointer#457.motion(187310607, 28.19921875, 15.39843750) -[2618977.497] {Default Queue} wl_pointer#489.motion(187310607, 28.19921875, 15.39843750) -[2618977.501] {Default Queue} wl_pointer#521.motion(187310607, 28.19921875, 15.39843750) -[2618977.505] {Default Queue} wl_pointer#553.motion(187310607, 28.19921875, 15.39843750) -[2618977.510] {Default Queue} wl_pointer#585.motion(187310607, 28.19921875, 15.39843750) -[2618977.514] {Default Queue} wl_pointer#617.motion(187310607, 28.19921875, 15.39843750) -[2618977.523] {Default Queue} wl_pointer#649.motion(187310607, 28.19921875, 15.39843750) -[2618977.531] {Default Queue} wl_pointer#681.motion(187310607, 28.19921875, 15.39843750) -[2618977.535] {Default Queue} wl_pointer#713.motion(187310607, 28.19921875, 15.39843750) -[2618977.539] {Default Queue} wl_pointer#745.motion(187310607, 28.19921875, 15.39843750) -[2618977.543] {Default Queue} wl_pointer#777.motion(187310607, 28.19921875, 15.39843750) -[2618977.547] {Default Queue} wl_pointer#809.motion(187310607, 28.19921875, 15.39843750) -[2618977.551] {Default Queue} wl_pointer#841.motion(187310607, 28.19921875, 15.39843750) -[2618977.555] {Default Queue} wl_pointer#873.motion(187310607, 28.19921875, 15.39843750) -[2618977.559] {Default Queue} wl_pointer#905.motion(187310607, 28.19921875, 15.39843750) -[2618977.563] {Default Queue} wl_pointer#937.motion(187310607, 28.19921875, 15.39843750) -[2618977.567] {Default Queue} wl_pointer#969.motion(187310607, 28.19921875, 15.39843750) -[2618977.572] {Default Queue} wl_pointer#1001.motion(187310607, 28.19921875, 15.39843750) -[2618977.576] {Default Queue} wl_pointer#1033.motion(187310607, 28.19921875, 15.39843750) -[2618977.580] {Default Queue} wl_pointer#1065.motion(187310607, 28.19921875, 15.39843750) -[2618977.584] {Default Queue} wl_pointer#1097.motion(187310607, 28.19921875, 15.39843750) -[2618977.588] {Default Queue} wl_pointer#1129.motion(187310607, 28.19921875, 15.39843750) -[2618977.592] {Default Queue} wl_pointer#1161.motion(187310607, 28.19921875, 15.39843750) -[2618977.596] {Default Queue} wl_pointer#1193.motion(187310607, 28.19921875, 15.39843750) -[2618977.600] {Default Queue} wl_pointer#1225.motion(187310607, 28.19921875, 15.39843750) -[2618977.604] {Default Queue} wl_pointer#1257.motion(187310607, 28.19921875, 15.39843750) -[2618977.608] {Default Queue} wl_pointer#1289.motion(187310607, 28.19921875, 15.39843750) -[2618977.612] {Default Queue} wl_pointer#1321.motion(187310607, 28.19921875, 15.39843750) -[2618977.616] {Default Queue} wl_pointer#1353.motion(187310607, 28.19921875, 15.39843750) -[2618977.620] {Default Queue} wl_pointer#1385.motion(187310607, 28.19921875, 15.39843750) -[2618977.624] {Default Queue} wl_pointer#1417.motion(187310607, 28.19921875, 15.39843750) -[2618977.628] {Default Queue} wl_pointer#1449.motion(187310607, 28.19921875, 15.39843750) -[2618977.632] {Default Queue} wl_pointer#1481.motion(187310607, 28.19921875, 15.39843750) -[2618977.636] {Default Queue} wl_pointer#1513.motion(187310607, 28.19921875, 15.39843750) -[2618977.640] {Default Queue} wl_pointer#1545.motion(187310607, 28.19921875, 15.39843750) -[2618977.644] {Default Queue} wl_pointer#1577.motion(187310607, 28.19921875, 15.39843750) -[2618977.648] {Default Queue} wl_pointer#1609.motion(187310607, 28.19921875, 15.39843750) -[2618977.651] {Default Queue} wl_pointer#1641.motion(187310607, 28.19921875, 15.39843750) -[2618977.655] {Default Queue} wl_pointer#1673.motion(187310607, 28.19921875, 15.39843750) -[2618977.659] {Default Queue} wl_pointer#1705.motion(187310607, 28.19921875, 15.39843750) -[2618977.663] {Default Queue} wl_pointer#1737.motion(187310607, 28.19921875, 15.39843750) -[2618977.667] {Default Queue} wl_pointer#1762.motion(187310607, 28.19921875, 15.39843750) -[2618977.671] {Default Queue} wl_pointer#1801.motion(187310607, 28.19921875, 15.39843750) -[2618977.675] {Default Queue} wl_pointer#1833.motion(187310607, 28.19921875, 15.39843750) -[2618977.679] {Default Queue} wl_pointer#1865.motion(187310607, 28.19921875, 15.39843750) -[2618977.683] {Default Queue} wl_pointer#1897.motion(187310607, 28.19921875, 15.39843750) -[2618977.687] {Default Queue} wl_pointer#1929.motion(187310607, 28.19921875, 15.39843750) -[2618977.691] {Default Queue} wl_pointer#1961.motion(187310607, 28.19921875, 15.39843750) -[2618977.695] {Default Queue} wl_pointer#1993.motion(187310607, 28.19921875, 15.39843750) -[2618977.699] {Default Queue} wl_pointer#2025.motion(187310607, 28.19921875, 15.39843750) -[2618977.703] {Default Queue} wl_pointer#2057.motion(187310607, 28.19921875, 15.39843750) -[2618977.707] {Default Queue} wl_pointer#2089.motion(187310607, 28.19921875, 15.39843750) -[2618977.715] {Default Queue} wl_pointer#2121.motion(187310607, 28.19921875, 15.39843750) -[2618977.721] {Default Queue} wl_pointer#2153.motion(187310607, 28.19921875, 15.39843750) -[2618977.725] {Default Queue} wl_pointer#2185.motion(187310607, 28.19921875, 15.39843750) -[2618977.729] {Default Queue} wl_pointer#2217.motion(187310607, 28.19921875, 15.39843750) -[2618977.733] {Default Queue} wl_pointer#2249.motion(187310607, 28.19921875, 15.39843750) -[2618977.737] {Default Queue} wl_pointer#2281.motion(187310607, 28.19921875, 15.39843750) -[2618977.741] {Default Queue} wl_pointer#2313.motion(187310607, 28.19921875, 15.39843750) -[2618977.746] {Default Queue} wl_pointer#2345.motion(187310607, 28.19921875, 15.39843750) -[2618977.750] {Default Queue} wl_pointer#2377.motion(187310607, 28.19921875, 15.39843750) -[2618977.754] {Default Queue} wl_pointer#2409.motion(187310607, 28.19921875, 15.39843750) -[2618977.758] {Default Queue} wl_pointer#2441.motion(187310607, 28.19921875, 15.39843750) -[2618977.762] {Default Queue} wl_pointer#2473.motion(187310607, 28.19921875, 15.39843750) -[2618977.766] {Default Queue} wl_pointer#2498.motion(187310607, 28.19921875, 15.39843750) -[2618977.780] {Default Queue} -> wl_buffer#2686.destroy() -[2618977.785] {Default Queue} -> wl_buffer#2685.destroy() -[2618977.789] {Default Queue} -> wl_shm_pool#2684.destroy() -[2618977.793] {Default Queue} -> wl_shm_pool#2683.destroy() -[2618977.798] {Default Queue} -> wl_surface#2780.destroy() -[2618977.852] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2844, fd 575, 640) -[2618977.858] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2843, fd 578, 640) -[2618977.870] {Default Queue} -> wl_shm_pool#2844.create_buffer(new id wl_buffer#2846, 0, 10, 16, 40, 0) -[2618977.875] {Default Queue} -> wl_shm_pool#2843.create_buffer(new id wl_buffer#2845, 0, 10, 16, 40, 0) -[2618977.883] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#2940) -[2618977.887] {Default Queue} -> wl_surface#2940.attach(wl_buffer#2846, 0, 0) -[2618977.891] {Default Queue} -> wl_surface#2940.commit() -[2618977.896] {Default Queue} -> wl_surface#2940.attach(wl_buffer#2846, 0, 0) -[2618977.900] {Default Queue} -> wl_surface#2940.commit() -[2618977.904] {Default Queue} wl_pointer#2537.motion(187310607, 28.19921875, 15.39843750) -[2618977.909] {Default Queue} wl_pointer#2569.motion(187310607, 28.19921875, 15.39843750) -[2618977.913] {Default Queue} wl_pointer#2601.motion(187310607, 28.19921875, 15.39843750) -[2618977.917] {Default Queue} wl_pointer#2633.motion(187310607, 28.19921875, 15.39843750) -[2618977.921] {Default Queue} wl_pointer#2665.motion(187310607, 28.19921875, 15.39843750) -[2618977.925] {Default Queue} wl_pointer#2697.motion(187310607, 28.19921875, 15.39843750) -[2618977.929] {Default Queue} wl_pointer#2729.motion(187310607, 28.19921875, 15.39843750) -[2618977.934] {Default Queue} wl_pointer#2761.motion(187310607, 28.19921875, 15.39843750) -[2618977.938] {Default Queue} wl_pointer#2793.motion(187310607, 28.19921875, 15.39843750) -[2618977.941] {Default Queue} wl_pointer#2825.motion(187310607, 28.19921875, 15.39843750) -[2618977.946] {Default Queue} wl_pointer#2857.motion(187310607, 28.19921875, 15.39843750) -[2618977.950] {Default Queue} wl_pointer#2889.motion(187310607, 28.19921875, 15.39843750) -[2618977.954] {Default Queue} wl_pointer#2921.motion(187310607, 28.19921875, 15.39843750) -[2618977.958] {Default Queue} wl_pointer#2953.motion(187310607, 28.19921875, 15.39843750) -[2618977.963] {Default Queue} wl_pointer#2985.motion(187310607, 28.19921875, 15.39843750) -[2618977.967] {Default Queue} wl_pointer#3017.motion(187310607, 28.19921875, 15.39843750) -[2618977.971] {Default Queue} wl_pointer#3049.motion(187310607, 28.19921875, 15.39843750) -[2618977.975] {Default Queue} wl_pointer#3081.motion(187310607, 28.19921875, 15.39843750) -[2618977.979] {Default Queue} wl_pointer#3113.motion(187310607, 28.19921875, 15.39843750) -[2618977.983] {Default Queue} wl_pointer#3145.motion(187310607, 28.19921875, 15.39843750) -[2618977.990] {Default Queue} wl_pointer#3177.motion(187310607, 28.19921875, 15.39843750) -[2618977.996] {Default Queue} wl_pointer#3209.motion(187310607, 28.19921875, 15.39843750) -[2618978.000] {Default Queue} wl_pointer#3241.motion(187310607, 28.19921875, 15.39843750) -[2618978.004] {Default Queue} wl_pointer#3273.motion(187310607, 28.19921875, 15.39843750) -[2618978.009] {Default Queue} wl_pointer#3305.motion(187310607, 28.19921875, 15.39843750) -[2618978.013] {Default Queue} wl_pointer#3337.motion(187310607, 28.19921875, 15.39843750) -[2618978.018] {Default Queue} wl_pointer#3369.motion(187310607, 28.19921875, 15.39843750) -[2618978.022] {Default Queue} wl_pointer#3401.motion(187310607, 28.19921875, 15.39843750) -[2618978.027] {Default Queue} wl_pointer#3433.motion(187310607, 28.19921875, 15.39843750) -[2618978.033] {Default Queue} wl_pointer#3465.motion(187310607, 28.19921875, 15.39843750) -[2618978.039] {Default Queue} wl_pointer#3497.motion(187310607, 28.19921875, 15.39843750) -[2618978.046] {Default Queue} wl_pointer#3529.motion(187310607, 28.19921875, 15.39843750) -[2618978.052] {Default Queue} wl_pointer#3561.motion(187310607, 28.19921875, 15.39843750) -[2618978.056] {Default Queue} wl_pointer#3593.motion(187310607, 28.19921875, 15.39843750) -[2618978.060] {Default Queue} wl_pointer#3625.motion(187310607, 28.19921875, 15.39843750) -[2618978.064] {Default Queue} wl_pointer#3657.motion(187310607, 28.19921875, 15.39843750) -[2618978.068] {Default Queue} wl_pointer#3695.motion(187310607, 28.19921875, 15.39843750) -[2618978.091] {Default Queue} -> wl_region#3583.subtract(0, 0, 365, 717) -[2618978.096] {Default Queue} -> wl_region#3583.add(-20, -550, 135, 717) -[2618978.101] {Default Queue} -> wl_surface#3559.set_opaque_region(wl_region#3584) -[2618978.105] {Default Queue} -> wl_surface#3559.set_input_region(wl_region#3583) -[2618978.126] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) -[2618978.131] {Default Queue} -> wl_surface#3559.commit() -[2618978.136] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) -[2618978.140] {Default Queue} -> wl_surface#3559.commit() -[2618978.229] {Display Queue} wl_display#1.delete_id(2109) -[2618978.237] {Display Queue} wl_display#1.delete_id(2110) -[2618978.240] {Display Queue} wl_display#1.delete_id(2107) -[2618978.244] {Display Queue} wl_display#1.delete_id(2108) -[2618978.248] {Display Queue} wl_display#1.delete_id(1022) -[2618978.252] {Display Queue} wl_display#1.delete_id(1021) -[2618978.255] {Display Queue} wl_display#1.delete_id(1020) -[2618978.259] {Display Queue} wl_display#1.delete_id(1019) -[2618978.262] {Display Queue} wl_display#1.delete_id(1276) -[2618978.266] {Display Queue} wl_display#1.delete_id(3101) -[2618978.270] {Display Queue} wl_display#1.delete_id(3102) -[2618978.274] {Display Queue} wl_display#1.delete_id(3099) -[2618978.278] {Display Queue} wl_display#1.delete_id(3100) -[2618978.281] {Default Queue} wl_pointer#24.motion(187310612, 28.19921875, 15.00000000) -[2618978.286] {Default Queue} wl_pointer#81.motion(187310612, 28.19921875, 15.00000000) -[2618978.291] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618978.296] {Default Queue} wl_pointer#105.motion(187310612, 28.19921875, 15.00000000) -[2618978.300] {Default Queue} wl_pointer#137.motion(187310612, 28.19921875, 15.00000000) -[2618978.304] {Default Queue} wl_pointer#169.motion(187310612, 28.19921875, 15.00000000) -[2618978.308] {Default Queue} wl_pointer#201.motion(187310612, 28.19921875, 15.00000000) -[2618978.312] {Default Queue} wl_pointer#233.motion(187310612, 28.19921875, 15.00000000) -[2618978.316] {Default Queue} wl_pointer#265.motion(187310612, 28.19921875, 15.00000000) -[2618978.320] {Default Queue} wl_pointer#297.motion(187310612, 28.19921875, 15.00000000) -[2618978.324] {Default Queue} wl_pointer#329.motion(187310612, 28.19921875, 15.00000000) -[2618978.328] {Default Queue} wl_pointer#361.motion(187310612, 28.19921875, 15.00000000) -[2618978.332] {Default Queue} wl_pointer#393.motion(187310612, 28.19921875, 15.00000000) -[2618978.336] {Default Queue} wl_pointer#425.motion(187310612, 28.19921875, 15.00000000) -[2618978.344] {Default Queue} wl_pointer#457.motion(187310612, 28.19921875, 15.00000000) -[2618978.350] {Default Queue} wl_pointer#489.motion(187310612, 28.19921875, 15.00000000) -[2618978.354] {Default Queue} wl_pointer#521.motion(187310612, 28.19921875, 15.00000000) -[2618978.358] {Default Queue} wl_pointer#553.motion(187310612, 28.19921875, 15.00000000) -[2618978.362] {Default Queue} wl_pointer#585.motion(187310612, 28.19921875, 15.00000000) -[2618978.366] {Default Queue} wl_pointer#617.motion(187310612, 28.19921875, 15.00000000) -[2618978.370] {Default Queue} wl_pointer#649.motion(187310612, 28.19921875, 15.00000000) -[2618978.374] {Default Queue} wl_pointer#681.motion(187310612, 28.19921875, 15.00000000) -[2618978.378] {Default Queue} wl_pointer#713.motion(187310612, 28.19921875, 15.00000000) -[2618978.382] {Default Queue} wl_pointer#745.motion(187310612, 28.19921875, 15.00000000) -[2618978.385] {Default Queue} wl_pointer#777.motion(187310612, 28.19921875, 15.00000000) -[2618978.389] {Default Queue} wl_pointer#809.motion(187310612, 28.19921875, 15.00000000) -[2618978.394] {Default Queue} wl_pointer#841.motion(187310612, 28.19921875, 15.00000000) -[2618978.398] {Default Queue} wl_pointer#873.motion(187310612, 28.19921875, 15.00000000) -[2618978.402] {Default Queue} wl_pointer#905.motion(187310612, 28.19921875, 15.00000000) -[2618978.406] {Default Queue} wl_pointer#937.motion(187310612, 28.19921875, 15.00000000) -[2618978.409] {Default Queue} wl_pointer#969.motion(187310612, 28.19921875, 15.00000000) -[2618978.413] {Default Queue} wl_pointer#1001.motion(187310612, 28.19921875, 15.00000000) -[2618978.417] {Default Queue} wl_pointer#1033.motion(187310612, 28.19921875, 15.00000000) -[2618978.422] {Default Queue} wl_pointer#1065.motion(187310612, 28.19921875, 15.00000000) -[2618978.425] {Default Queue} wl_pointer#1097.motion(187310612, 28.19921875, 15.00000000) -[2618978.429] {Default Queue} wl_pointer#1129.motion(187310612, 28.19921875, 15.00000000) -[2618978.433] {Default Queue} wl_pointer#1161.motion(187310612, 28.19921875, 15.00000000) -[2618978.437] {Default Queue} wl_pointer#1193.motion(187310612, 28.19921875, 15.00000000) -[2618978.441] {Default Queue} wl_pointer#1225.motion(187310612, 28.19921875, 15.00000000) -[2618978.445] {Default Queue} wl_pointer#1257.motion(187310612, 28.19921875, 15.00000000) -[2618978.449] {Default Queue} wl_pointer#1289.motion(187310612, 28.19921875, 15.00000000) -[2618978.453] {Default Queue} wl_pointer#1321.motion(187310612, 28.19921875, 15.00000000) -[2618978.457] {Default Queue} wl_pointer#1353.motion(187310612, 28.19921875, 15.00000000) -[2618978.461] {Default Queue} wl_pointer#1385.motion(187310612, 28.19921875, 15.00000000) -[2618978.465] {Default Queue} wl_pointer#1417.motion(187310612, 28.19921875, 15.00000000) -[2618978.469] {Default Queue} wl_pointer#1449.motion(187310612, 28.19921875, 15.00000000) -[2618978.473] {Default Queue} wl_pointer#1481.motion(187310612, 28.19921875, 15.00000000) -[2618978.477] {Default Queue} wl_pointer#1513.motion(187310612, 28.19921875, 15.00000000) -[2618978.481] {Default Queue} wl_pointer#1545.motion(187310612, 28.19921875, 15.00000000) -[2618978.485] {Default Queue} wl_pointer#1577.motion(187310612, 28.19921875, 15.00000000) -[2618978.489] {Default Queue} wl_pointer#1609.motion(187310612, 28.19921875, 15.00000000) -[2618978.493] {Default Queue} wl_pointer#1641.motion(187310612, 28.19921875, 15.00000000) -[2618978.497] {Default Queue} wl_pointer#1673.motion(187310612, 28.19921875, 15.00000000) -[2618978.501] {Default Queue} wl_pointer#1705.motion(187310612, 28.19921875, 15.00000000) -[2618978.505] {Default Queue} wl_pointer#1737.motion(187310612, 28.19921875, 15.00000000) -[2618978.509] {Default Queue} wl_pointer#1762.motion(187310612, 28.19921875, 15.00000000) -[2618978.513] {Default Queue} wl_pointer#1801.motion(187310612, 28.19921875, 15.00000000) -[2618978.517] {Default Queue} wl_pointer#1833.motion(187310612, 28.19921875, 15.00000000) -[2618978.520] {Default Queue} wl_pointer#1865.motion(187310612, 28.19921875, 15.00000000) -[2618978.524] {Default Queue} wl_pointer#1897.motion(187310612, 28.19921875, 15.00000000) -[2618978.532] {Default Queue} wl_pointer#1929.motion(187310612, 28.19921875, 15.00000000) -[2618978.537] {Default Queue} wl_pointer#1961.motion(187310612, 28.19921875, 15.00000000) -[2618978.541] {Default Queue} wl_pointer#1993.motion(187310612, 28.19921875, 15.00000000) -[2618978.545] {Default Queue} wl_pointer#2025.motion(187310612, 28.19921875, 15.00000000) -[2618978.549] {Default Queue} wl_pointer#2057.motion(187310612, 28.19921875, 15.00000000) -[2618978.553] {Default Queue} wl_pointer#2089.motion(187310612, 28.19921875, 15.00000000) -[2618978.557] {Default Queue} wl_pointer#2121.motion(187310612, 28.19921875, 15.00000000) -[2618978.561] {Default Queue} wl_pointer#2153.motion(187310612, 28.19921875, 15.00000000) -[2618978.565] {Default Queue} wl_pointer#2185.motion(187310612, 28.19921875, 15.00000000) -[2618978.568] {Default Queue} wl_pointer#2217.motion(187310612, 28.19921875, 15.00000000) -[2618978.572] {Default Queue} wl_pointer#2249.motion(187310612, 28.19921875, 15.00000000) -[2618978.576] {Default Queue} wl_pointer#2281.motion(187310612, 28.19921875, 15.00000000) -[2618978.580] {Default Queue} wl_pointer#2313.motion(187310612, 28.19921875, 15.00000000) -[2618978.584] {Default Queue} wl_pointer#2345.motion(187310612, 28.19921875, 15.00000000) -[2618978.588] {Default Queue} wl_pointer#2377.motion(187310612, 28.19921875, 15.00000000) -[2618978.592] {Default Queue} wl_pointer#2409.motion(187310612, 28.19921875, 15.00000000) -[2618978.596] {Default Queue} wl_pointer#2441.motion(187310612, 28.19921875, 15.00000000) -[2618978.600] {Default Queue} wl_pointer#2473.motion(187310612, 28.19921875, 15.00000000) -[2618978.604] {Default Queue} wl_pointer#2498.motion(187310612, 28.19921875, 15.00000000) -[2618978.616] {Default Queue} -> wl_buffer#2846.destroy() -[2618978.621] {Default Queue} -> wl_buffer#2845.destroy() -[2618978.625] {Default Queue} -> wl_shm_pool#2844.destroy() -[2618978.629] {Default Queue} -> wl_shm_pool#2843.destroy() -[2618978.633] {Default Queue} -> wl_surface#2940.destroy() -[2618978.671] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3100, fd 581, 640) -[2618978.676] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3099, fd 582, 640) -[2618978.681] {Default Queue} -> wl_shm_pool#3100.create_buffer(new id wl_buffer#3102, 0, 10, 16, 40, 0) -[2618978.685] {Default Queue} -> wl_shm_pool#3099.create_buffer(new id wl_buffer#3101, 0, 10, 16, 40, 0) -[2618978.692] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#1276) -[2618978.696] {Default Queue} -> wl_surface#1276.attach(wl_buffer#3102, 0, 0) -[2618978.700] {Default Queue} -> wl_surface#1276.commit() -[2618978.705] {Default Queue} -> wl_surface#1276.attach(wl_buffer#3102, 0, 0) -[2618978.709] {Default Queue} -> wl_surface#1276.commit() -[2618978.713] {Default Queue} wl_pointer#2537.motion(187310612, 28.19921875, 15.00000000) -[2618978.717] {Default Queue} wl_pointer#2569.motion(187310612, 28.19921875, 15.00000000) -[2618978.721] {Default Queue} wl_pointer#2601.motion(187310612, 28.19921875, 15.00000000) -[2618978.725] {Default Queue} wl_pointer#2633.motion(187310612, 28.19921875, 15.00000000) -[2618978.729] {Default Queue} wl_pointer#2665.motion(187310612, 28.19921875, 15.00000000) -[2618978.733] {Default Queue} wl_pointer#2697.motion(187310612, 28.19921875, 15.00000000) -[2618978.737] {Default Queue} wl_pointer#2729.motion(187310612, 28.19921875, 15.00000000) -[2618978.741] {Default Queue} wl_pointer#2761.motion(187310612, 28.19921875, 15.00000000) -[2618978.745] {Default Queue} wl_pointer#2793.motion(187310612, 28.19921875, 15.00000000) -[2618978.749] {Default Queue} wl_pointer#2825.motion(187310612, 28.19921875, 15.00000000) -[2618978.753] {Default Queue} wl_pointer#2857.motion(187310612, 28.19921875, 15.00000000) -[2618978.757] {Default Queue} wl_pointer#2889.motion(187310612, 28.19921875, 15.00000000) -[2618978.761] {Default Queue} wl_pointer#2921.motion(187310612, 28.19921875, 15.00000000) -[2618978.765] {Default Queue} wl_pointer#2953.motion(187310612, 28.19921875, 15.00000000) -[2618978.773] {Default Queue} wl_pointer#2985.motion(187310612, 28.19921875, 15.00000000) -[2618978.779] {Default Queue} wl_pointer#3017.motion(187310612, 28.19921875, 15.00000000) -[2618978.783] {Default Queue} wl_pointer#3049.motion(187310612, 28.19921875, 15.00000000) -[2618978.787] {Default Queue} wl_pointer#3081.motion(187310612, 28.19921875, 15.00000000) -[2618978.790] {Default Queue} wl_pointer#3113.motion(187310612, 28.19921875, 15.00000000) -[2618978.794] {Default Queue} wl_pointer#3145.motion(187310612, 28.19921875, 15.00000000) -[2618978.798] {Default Queue} wl_pointer#3177.motion(187310612, 28.19921875, 15.00000000) -[2618978.802] {Default Queue} wl_pointer#3209.motion(187310612, 28.19921875, 15.00000000) -[2618978.807] {Default Queue} wl_pointer#3241.motion(187310612, 28.19921875, 15.00000000) -[2618978.811] {Default Queue} wl_pointer#3273.motion(187310612, 28.19921875, 15.00000000) -[2618978.815] {Default Queue} wl_pointer#3305.motion(187310612, 28.19921875, 15.00000000) -[2618978.818] {Default Queue} wl_pointer#3337.motion(187310612, 28.19921875, 15.00000000) -[2618978.822] {Default Queue} wl_pointer#3369.motion(187310612, 28.19921875, 15.00000000) -[2618978.826] {Default Queue} wl_pointer#3401.motion(187310612, 28.19921875, 15.00000000) -[2618978.830] {Default Queue} wl_pointer#3433.motion(187310612, 28.19921875, 15.00000000) -[2618978.834] {Default Queue} wl_pointer#3465.motion(187310612, 28.19921875, 15.00000000) -[2618978.839] {Default Queue} wl_pointer#3497.motion(187310612, 28.19921875, 15.00000000) -[2618978.843] {Default Queue} wl_pointer#3529.motion(187310612, 28.19921875, 15.00000000) -[2618978.847] {Default Queue} wl_pointer#3561.motion(187310612, 28.19921875, 15.00000000) -[2618978.850] {Default Queue} wl_pointer#3593.motion(187310612, 28.19921875, 15.00000000) -[2618978.854] {Default Queue} wl_pointer#3625.motion(187310612, 28.19921875, 15.00000000) -[2618978.858] {Default Queue} wl_pointer#3657.motion(187310612, 28.19921875, 15.00000000) -[2618978.869] {Default Queue} wl_pointer#3695.motion(187310612, 28.19921875, 15.00000000) -[2618978.874] {Default Queue} wl_pointer#24.motion(187310613, 27.80078125, 15.00000000) -[2618978.878] {Default Queue} wl_pointer#81.motion(187310613, 27.80078125, 15.00000000) -[2618978.883] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618978.887] {Default Queue} wl_pointer#105.motion(187310613, 27.80078125, 15.00000000) -[2618978.891] {Default Queue} wl_pointer#137.motion(187310613, 27.80078125, 15.00000000) -[2618978.895] {Default Queue} wl_pointer#169.motion(187310613, 27.80078125, 15.00000000) -[2618978.899] {Default Queue} wl_pointer#201.motion(187310613, 27.80078125, 15.00000000) -[2618978.903] {Default Queue} wl_pointer#233.motion(187310613, 27.80078125, 15.00000000) -[2618978.907] {Default Queue} wl_pointer#265.motion(187310613, 27.80078125, 15.00000000) -[2618978.911] {Default Queue} wl_pointer#297.motion(187310613, 27.80078125, 15.00000000) -[2618978.915] {Default Queue} wl_pointer#329.motion(187310613, 27.80078125, 15.00000000) -[2618978.919] {Default Queue} wl_pointer#361.motion(187310613, 27.80078125, 15.00000000) -[2618978.922] {Default Queue} wl_pointer#393.motion(187310613, 27.80078125, 15.00000000) -[2618978.926] {Default Queue} wl_pointer#425.motion(187310613, 27.80078125, 15.00000000) -[2618978.930] {Default Queue} wl_pointer#457.motion(187310613, 27.80078125, 15.00000000) -[2618978.934] {Default Queue} wl_pointer#489.motion(187310613, 27.80078125, 15.00000000) -[2618978.938] {Default Queue} wl_pointer#521.motion(187310613, 27.80078125, 15.00000000) -[2618978.942] {Default Queue} wl_pointer#553.motion(187310613, 27.80078125, 15.00000000) -[2618978.946] {Default Queue} wl_pointer#585.motion(187310613, 27.80078125, 15.00000000) -[2618978.950] {Default Queue} wl_pointer#617.motion(187310613, 27.80078125, 15.00000000) -[2618978.954] {Default Queue} wl_pointer#649.motion(187310613, 27.80078125, 15.00000000) -[2618978.958] {Default Queue} wl_pointer#681.motion(187310613, 27.80078125, 15.00000000) -[2618978.962] {Default Queue} wl_pointer#713.motion(187310613, 27.80078125, 15.00000000) -[2618978.969] {Default Queue} wl_pointer#745.motion(187310613, 27.80078125, 15.00000000) -[2618978.974] {Default Queue} wl_pointer#777.motion(187310613, 27.80078125, 15.00000000) -[2618978.978] {Default Queue} wl_pointer#809.motion(187310613, 27.80078125, 15.00000000) -[2618978.982] {Default Queue} wl_pointer#841.motion(187310613, 27.80078125, 15.00000000) -[2618978.986] {Default Queue} wl_pointer#873.motion(187310613, 27.80078125, 15.00000000) -[2618978.990] {Default Queue} wl_pointer#905.motion(187310613, 27.80078125, 15.00000000) -[2618978.994] {Default Queue} wl_pointer#937.motion(187310613, 27.80078125, 15.00000000) -[2618978.997] {Default Queue} wl_pointer#969.motion(187310613, 27.80078125, 15.00000000) -[2618979.001] {Default Queue} wl_pointer#1001.motion(187310613, 27.80078125, 15.00000000) -[2618979.005] {Default Queue} wl_pointer#1033.motion(187310613, 27.80078125, 15.00000000) -[2618979.009] {Default Queue} wl_pointer#1065.motion(187310613, 27.80078125, 15.00000000) -[2618979.013] {Default Queue} wl_pointer#1097.motion(187310613, 27.80078125, 15.00000000) -[2618979.017] {Default Queue} wl_pointer#1129.motion(187310613, 27.80078125, 15.00000000) -[2618979.021] {Default Queue} wl_pointer#1161.motion(187310613, 27.80078125, 15.00000000) -[2618979.025] {Default Queue} wl_pointer#1193.motion(187310613, 27.80078125, 15.00000000) -[2618979.029] {Default Queue} wl_pointer#1225.motion(187310613, 27.80078125, 15.00000000) -[2618979.033] {Default Queue} wl_pointer#1257.motion(187310613, 27.80078125, 15.00000000) -[2618979.037] {Default Queue} wl_pointer#1289.motion(187310613, 27.80078125, 15.00000000) -[2618979.041] {Default Queue} wl_pointer#1321.motion(187310613, 27.80078125, 15.00000000) -[2618979.045] {Default Queue} wl_pointer#1353.motion(187310613, 27.80078125, 15.00000000) -[2618979.049] {Default Queue} wl_pointer#1385.motion(187310613, 27.80078125, 15.00000000) -[2618979.053] {Default Queue} wl_pointer#1417.motion(187310613, 27.80078125, 15.00000000) -[2618979.057] {Default Queue} wl_pointer#1449.motion(187310613, 27.80078125, 15.00000000) -[2618979.061] {Default Queue} wl_pointer#1481.motion(187310613, 27.80078125, 15.00000000) -[2618979.065] {Default Queue} wl_pointer#1513.motion(187310613, 27.80078125, 15.00000000) -[2618979.069] {Default Queue} wl_pointer#1545.motion(187310613, 27.80078125, 15.00000000) -[2618979.073] {Default Queue} wl_pointer#1577.motion(187310613, 27.80078125, 15.00000000) -[2618979.077] {Default Queue} wl_pointer#1609.motion(187310613, 27.80078125, 15.00000000) -[2618979.081] {Default Queue} wl_pointer#1641.motion(187310613, 27.80078125, 15.00000000) -[2618979.085] {Default Queue} wl_pointer#1673.motion(187310613, 27.80078125, 15.00000000) -[2618979.089] {Default Queue} wl_pointer#1705.motion(187310613, 27.80078125, 15.00000000) -[2618979.092] {Default Queue} wl_pointer#1737.motion(187310613, 27.80078125, 15.00000000) -[2618979.096] {Default Queue} wl_pointer#1762.motion(187310613, 27.80078125, 15.00000000) -[2618979.100] {Default Queue} wl_pointer#1801.motion(187310613, 27.80078125, 15.00000000) -[2618979.104] {Default Queue} wl_pointer#1833.motion(187310613, 27.80078125, 15.00000000) -[2618979.108] {Default Queue} wl_pointer#1865.motion(187310613, 27.80078125, 15.00000000) -[2618979.112] {Default Queue} wl_pointer#1897.motion(187310613, 27.80078125, 15.00000000) -[2618979.116] {Default Queue} wl_pointer#1929.motion(187310613, 27.80078125, 15.00000000) -[2618979.120] {Default Queue} wl_pointer#1961.motion(187310613, 27.80078125, 15.00000000) -[2618979.124] {Default Queue} wl_pointer#1993.motion(187310613, 27.80078125, 15.00000000) -[2618979.128] {Default Queue} wl_pointer#2025.motion(187310613, 27.80078125, 15.00000000) -[2618979.132] {Default Queue} wl_pointer#2057.motion(187310613, 27.80078125, 15.00000000) -[2618979.136] {Default Queue} wl_pointer#2089.motion(187310613, 27.80078125, 15.00000000) -[2618979.140] {Default Queue} wl_pointer#2121.motion(187310613, 27.80078125, 15.00000000) -[2618979.144] {Default Queue} wl_pointer#2153.motion(187310613, 27.80078125, 15.00000000) -[2618979.148] {Default Queue} wl_pointer#2185.motion(187310613, 27.80078125, 15.00000000) -[2618979.155] {Default Queue} wl_pointer#2217.motion(187310613, 27.80078125, 15.00000000) -[2618979.160] {Default Queue} wl_pointer#2249.motion(187310613, 27.80078125, 15.00000000) -[2618979.164] {Default Queue} wl_pointer#2281.motion(187310613, 27.80078125, 15.00000000) -[2618979.168] {Default Queue} wl_pointer#2313.motion(187310613, 27.80078125, 15.00000000) -[2618979.172] {Default Queue} wl_pointer#2345.motion(187310613, 27.80078125, 15.00000000) -[2618979.176] {Default Queue} wl_pointer#2377.motion(187310613, 27.80078125, 15.00000000) -[2618979.180] {Default Queue} wl_pointer#2409.motion(187310613, 27.80078125, 15.00000000) -[2618979.184] {Default Queue} wl_pointer#2441.motion(187310613, 27.80078125, 15.00000000) -[2618979.187] {Default Queue} wl_pointer#2473.motion(187310613, 27.80078125, 15.00000000) -[2618979.191] {Default Queue} wl_pointer#2498.motion(187310613, 27.80078125, 15.00000000) -[2618979.201] {Default Queue} -> wl_buffer#3102.destroy() -[2618979.205] {Default Queue} -> wl_buffer#3101.destroy() -[2618979.209] {Default Queue} -> wl_shm_pool#3100.destroy() -[2618979.213] {Default Queue} -> wl_shm_pool#3099.destroy() -[2618979.217] {Default Queue} -> wl_surface#1276.destroy() -[2618979.247] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#1019, fd 583, 640) -[2618979.253] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#1020, fd 584, 640) -[2618979.257] {Default Queue} -> wl_shm_pool#1019.create_buffer(new id wl_buffer#1021, 0, 10, 16, 40, 0) -[2618979.262] {Default Queue} -> wl_shm_pool#1020.create_buffer(new id wl_buffer#1022, 0, 10, 16, 40, 0) -[2618979.268] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#2108) -[2618979.272] {Default Queue} -> wl_surface#2108.attach(wl_buffer#1021, 0, 0) -[2618979.285] {Default Queue} -> wl_surface#2108.commit() -[2618979.290] {Default Queue} -> wl_surface#2108.attach(wl_buffer#1021, 0, 0) -[2618979.293] {Default Queue} -> wl_surface#2108.commit() -[2618979.298] {Default Queue} wl_pointer#2537.motion(187310613, 27.80078125, 15.00000000) -[2618979.302] {Default Queue} wl_pointer#2569.motion(187310613, 27.80078125, 15.00000000) -[2618979.306] {Default Queue} wl_pointer#2601.motion(187310613, 27.80078125, 15.00000000) -[2618979.310] {Default Queue} wl_pointer#2633.motion(187310613, 27.80078125, 15.00000000) -[2618979.316] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) -[2618979.320] {Default Queue} -> wl_surface#3559.commit() -[2618980.388] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) -[2618980.393] {Default Queue} -> wl_surface#3559.commit() -[2618980.400] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) -[2618980.404] {Default Queue} -> wl_surface#3559.commit() -[2618980.408] {Default Queue} -> wl_region#3615.subtract(0, 0, 115, 167) -[2618980.413] {Default Queue} -> wl_region#3615.subtract(0, 0, 367, 552) -[2618980.417] {Default Queue} -> wl_region#3615.add(-20, -550, 22, 552) -[2618980.421] {Default Queue} -> wl_surface#3591.set_opaque_region(wl_region#3616) -[2618980.425] {Default Queue} -> wl_surface#3591.set_input_region(wl_region#3615) -[2618980.429] {Default Queue} -> wl_surface#3591.damage(0, 0, 115, 167) -[2618980.446] {Default Queue} -> wl_buffer#3613.destroy() -[2618980.450] {Default Queue} -> wl_buffer#3614.destroy() -[2618980.454] {Default Queue} -> wl_shm_pool#3611.destroy() -[2618980.458] {Default Queue} -> wl_shm_pool#3612.destroy() -[2618980.543] {Default Queue} -> wl_shm#3599.create_pool(new id wl_shm_pool#2107, fd 575, 76820) -[2618980.549] {Default Queue} -> wl_shm#3599.create_pool(new id wl_shm_pool#2110, fd 578, 76820) -[2618980.553] {Default Queue} -> wl_shm_pool#2107.create_buffer(new id wl_buffer#2109, 0, 115, 167, 460, 0) -[2618980.557] {Default Queue} -> wl_shm_pool#2110.create_buffer(new id wl_buffer#2939, 0, 115, 167, 460, 0) -[2618980.580] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) -[2618980.585] {Default Queue} -> wl_surface#3591.commit() -[2618980.606] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) -[2618980.613] {Default Queue} -> wl_surface#3591.commit() -[2618980.625] {Default Queue} -> wl_region#3615.subtract(0, 0, 480, 717) -[2618980.631] {Default Queue} -> wl_region#3615.add(-20, -550, 135, 717) -[2618980.635] {Default Queue} -> wl_surface#3591.set_opaque_region(wl_region#3616) -[2618980.638] {Default Queue} -> wl_surface#3591.set_input_region(wl_region#3615) -[2618980.645] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) -[2618980.649] {Default Queue} -> wl_surface#3591.commit() -[2618980.656] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) -[2618980.660] {Default Queue} -> wl_surface#3591.commit() -[2618981.724] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) -[2618981.731] {Default Queue} -> wl_surface#3591.commit() -[2618981.739] {Default Queue} -> wl_region#3615.subtract(0, 0, 480, 717) -[2618981.744] {Default Queue} -> wl_region#3615.add(-20, -550, 135, 717) -[2618981.750] {Default Queue} -> wl_surface#3591.set_opaque_region(wl_region#3616) -[2618981.755] {Default Queue} -> wl_surface#3591.set_input_region(wl_region#3615) -[2618981.764] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) -[2618981.770] {Default Queue} -> wl_surface#3591.commit() -[2618981.776] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) -[2618981.780] {Default Queue} -> wl_surface#3591.commit() -[2618981.786] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) -[2618981.790] {Default Queue} -> wl_surface#3591.commit() -[2618981.795] {Default Queue} -> wl_region#3647.subtract(0, 0, 115, 167) -[2618981.800] {Default Queue} -> wl_region#3647.subtract(0, 0, 482, 552) -[2618981.805] {Default Queue} -> wl_region#3647.add(-20, -550, 22, 552) -[2618981.810] {Default Queue} -> wl_surface#3623.set_opaque_region(wl_region#3648) -[2618981.814] {Default Queue} -> wl_surface#3623.set_input_region(wl_region#3647) -[2618981.818] {Default Queue} -> wl_surface#3623.damage(0, 0, 115, 167) -[2618981.830] {Default Queue} -> wl_buffer#3645.destroy() -[2618981.835] {Default Queue} -> wl_buffer#3646.destroy() -[2618981.838] {Default Queue} -> wl_shm_pool#3643.destroy() -[2618981.842] {Default Queue} -> wl_shm_pool#3644.destroy() -[2618981.939] {Default Queue} -> wl_shm#3631.create_pool(new id wl_shm_pool#2942, fd 575, 76820) -[2618981.945] {Default Queue} -> wl_shm#3631.create_pool(new id wl_shm_pool#2941, fd 578, 76820) -[2618981.949] {Default Queue} -> wl_shm_pool#2942.create_buffer(new id wl_buffer#2908, 0, 115, 167, 460, 0) -[2618981.954] {Default Queue} -> wl_shm_pool#2941.create_buffer(new id wl_buffer#2907, 0, 115, 167, 460, 0) -[2618981.976] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) -[2618981.980] {Default Queue} -> wl_surface#3623.commit() -[2618982.002] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) -[2618982.006] {Default Queue} -> wl_surface#3623.commit() -[2618982.015] {Default Queue} -> wl_region#3647.subtract(0, 0, 595, 717) -[2618982.019] {Default Queue} -> wl_region#3647.add(-20, -550, 135, 717) -[2618982.024] {Default Queue} -> wl_surface#3623.set_opaque_region(wl_region#3648) -[2618982.027] {Default Queue} -> wl_surface#3623.set_input_region(wl_region#3647) -[2618982.034] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) -[2618982.038] {Default Queue} -> wl_surface#3623.commit() -[2618982.049] {Default Queue} wl_pointer#2665.motion(187310613, 27.80078125, 15.00000000) -[2618982.054] {Default Queue} wl_pointer#2697.motion(187310613, 27.80078125, 15.00000000) -[2618982.059] {Default Queue} wl_pointer#2729.motion(187310613, 27.80078125, 15.00000000) -[2618982.063] {Default Queue} wl_pointer#2761.motion(187310613, 27.80078125, 15.00000000) -[2618982.067] {Default Queue} wl_pointer#2793.motion(187310613, 27.80078125, 15.00000000) -[2618982.071] {Default Queue} wl_pointer#2825.motion(187310613, 27.80078125, 15.00000000) -[2618982.075] {Default Queue} wl_pointer#2857.motion(187310613, 27.80078125, 15.00000000) -[2618982.079] {Default Queue} wl_pointer#2889.motion(187310613, 27.80078125, 15.00000000) -[2618982.087] {Default Queue} wl_pointer#2921.motion(187310613, 27.80078125, 15.00000000) -[2618982.093] {Default Queue} wl_pointer#2953.motion(187310613, 27.80078125, 15.00000000) -[2618982.097] {Default Queue} wl_pointer#2985.motion(187310613, 27.80078125, 15.00000000) -[2618982.101] {Default Queue} wl_pointer#3017.motion(187310613, 27.80078125, 15.00000000) -[2618982.105] {Default Queue} wl_pointer#3049.motion(187310613, 27.80078125, 15.00000000) -[2618982.109] {Default Queue} wl_pointer#3081.motion(187310613, 27.80078125, 15.00000000) -[2618982.113] {Default Queue} wl_pointer#3113.motion(187310613, 27.80078125, 15.00000000) -[2618982.117] {Default Queue} wl_pointer#3145.motion(187310613, 27.80078125, 15.00000000) -[2618982.121] {Default Queue} wl_pointer#3177.motion(187310613, 27.80078125, 15.00000000) -[2618982.125] {Default Queue} wl_pointer#3209.motion(187310613, 27.80078125, 15.00000000) -[2618982.129] {Default Queue} wl_pointer#3241.motion(187310613, 27.80078125, 15.00000000) -[2618982.133] {Default Queue} wl_pointer#3273.motion(187310613, 27.80078125, 15.00000000) -[2618982.137] {Default Queue} wl_pointer#3305.motion(187310613, 27.80078125, 15.00000000) -[2618982.141] {Default Queue} wl_pointer#3337.motion(187310613, 27.80078125, 15.00000000) -[2618982.145] {Default Queue} wl_pointer#3369.motion(187310613, 27.80078125, 15.00000000) -[2618982.149] {Default Queue} wl_pointer#3401.motion(187310613, 27.80078125, 15.00000000) -[2618982.153] {Default Queue} wl_pointer#3433.motion(187310613, 27.80078125, 15.00000000) -[2618982.157] {Default Queue} wl_pointer#3465.motion(187310613, 27.80078125, 15.00000000) -[2618982.161] {Default Queue} wl_pointer#3497.motion(187310613, 27.80078125, 15.00000000) -[2618982.165] {Default Queue} wl_pointer#3529.motion(187310613, 27.80078125, 15.00000000) -[2618982.169] {Default Queue} wl_pointer#3561.motion(187310613, 27.80078125, 15.00000000) -[2618982.173] {Default Queue} wl_pointer#3593.motion(187310613, 27.80078125, 15.00000000) -[2618982.177] {Default Queue} wl_pointer#3625.motion(187310613, 27.80078125, 15.00000000) -[2618982.181] {Default Queue} wl_pointer#3657.motion(187310613, 27.80078125, 15.00000000) -[2618982.185] {Default Queue} wl_pointer#3695.motion(187310613, 27.80078125, 15.00000000) -[2618982.190] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) -[2618982.194] {Default Queue} -> wl_surface#3623.commit() -[2618983.258] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) -[2618983.265] {Default Queue} -> wl_surface#3623.commit() -[2618983.274] {Default Queue} -> wl_region#3647.subtract(0, 0, 595, 717) -[2618983.279] {Default Queue} -> wl_region#3647.add(-20, -550, 135, 717) -[2618983.283] {Default Queue} -> wl_surface#3623.set_opaque_region(wl_region#3648) -[2618983.287] {Default Queue} -> wl_surface#3623.set_input_region(wl_region#3647) -[2618983.293] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) -[2618983.298] {Default Queue} -> wl_surface#3623.commit() -[2618983.303] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) -[2618983.307] {Default Queue} -> wl_surface#3623.commit() -[2618983.314] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) -[2618983.317] {Default Queue} -> wl_surface#3623.commit() -[2618983.322] {Default Queue} -> wl_region#3007.subtract(0, 0, 576, 167) -[2618983.329] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) -[2618983.333] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) -[2618983.337] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618983.341] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618983.352] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) -[2618983.356] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) -[2618983.360] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618983.364] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618983.370] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) -[2618983.374] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) -[2618983.382] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618983.387] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618983.394] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) -[2618983.398] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) -[2618983.402] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618983.405] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618983.413] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) -[2618983.417] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) -[2618983.421] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2618983.424] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2618983.442] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) -[2618983.446] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) -[2618983.450] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618983.454] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618983.462] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) -[2618983.466] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) -[2618983.470] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618983.473] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618983.479] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) -[2618983.483] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) -[2618983.486] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618983.490] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618983.496] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) -[2618983.500] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) -[2618983.504] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618983.508] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618983.515] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) -[2618983.519] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) -[2618983.523] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2618983.526] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2618983.544] {Default Queue} -> wl_region#3583.subtract(0, 0, 365, 717) -[2618983.548] {Default Queue} -> wl_region#3583.add(-20, -550, 135, 717) -[2618983.552] {Default Queue} -> wl_surface#3559.set_opaque_region(wl_region#3584) -[2618983.556] {Default Queue} -> wl_surface#3559.set_input_region(wl_region#3583) -[2618983.562] {Default Queue} -> wl_region#3615.subtract(0, 0, 480, 717) -[2618983.566] {Default Queue} -> wl_region#3615.add(-20, -550, 135, 717) -[2618983.569] {Default Queue} -> wl_surface#3591.set_opaque_region(wl_region#3616) -[2618983.573] {Default Queue} -> wl_surface#3591.set_input_region(wl_region#3615) -[2618983.579] {Default Queue} -> wl_region#3647.subtract(0, 0, 595, 717) -[2618983.583] {Default Queue} -> wl_region#3647.add(-20, -550, 135, 717) -[2618983.587] {Default Queue} -> wl_surface#3623.set_opaque_region(wl_region#3648) -[2618983.590] {Default Queue} -> wl_surface#3623.set_input_region(wl_region#3647) -[2618983.596] {Default Queue} -> wl_surface#2983.damage(0, 0, 576, 167) -[2618983.600] {Default Queue} -> wl_region#3007.subtract(0, 0, 22, 552) -[2618983.604] {Default Queue} -> wl_region#3007.add(-20, -49, 22, 51) -[2618983.607] {Default Queue} -> wl_surface#2983.set_opaque_region(wl_region#3008) -[2618983.611] {Default Queue} -> wl_surface#2983.set_input_region(wl_region#3007) -[2618983.615] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) -[2618983.620] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2618983.626] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2618983.631] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) -[2618983.636] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) -[2618983.640] {Default Queue} -> wl_surface#3047.damage(0, 0, 109, 161) -[2618983.647] {Default Queue} -> wl_surface#3015.damage(0, 0, 115, 167) -[2618983.653] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) -[2618983.658] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2618983.662] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2618983.666] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2618983.670] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) -[2618983.674] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) -[2618983.678] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) -[2618983.682] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) -[2618983.686] {Default Queue} -> wl_surface#3271.damage(0, 0, 109, 161) -[2618983.690] {Default Queue} -> wl_surface#3239.damage(0, 0, 115, 167) -[2618983.693] {Default Queue} -> wl_surface#3559.damage(0, 0, 115, 167) -[2618983.697] {Default Queue} -> wl_surface#3591.damage(0, 0, 115, 167) -[2618983.701] {Default Queue} -> wl_surface#3623.damage(0, 0, 115, 167) -[2618983.705] {Default Queue} -> wl_surface#2983.damage(0, 0, 576, 167) -[2618983.717] {Default Queue} -> wl_buffer#3005.destroy() -[2618983.721] {Default Queue} -> wl_buffer#3006.destroy() -[2618983.725] {Default Queue} -> wl_shm_pool#3003.destroy() -[2618983.729] {Default Queue} -> wl_shm_pool#3004.destroy() -[2618984.050] {Default Queue} -> wl_shm#2991.create_pool(new id wl_shm_pool#2910, fd 575, 384768) -[2618984.060] {Default Queue} -> wl_shm#2991.create_pool(new id wl_shm_pool#2909, fd 578, 384768) -[2618984.065] {Default Queue} -> wl_shm_pool#2910.create_buffer(new id wl_buffer#2619, 0, 576, 167, 2304, 0) -[2618984.070] {Default Queue} -> wl_shm_pool#2909.create_buffer(new id wl_buffer#2622, 0, 576, 167, 2304, 0) -[2618984.161] {Default Queue} -> wl_surface#2983.attach(wl_buffer#2619, 0, 0) -[2618984.166] {Default Queue} -> wl_surface#2983.commit() -[2618984.261] {Default Queue} -> wl_surface#2983.attach(wl_buffer#2619, 0, 0) -[2618984.266] {Default Queue} -> wl_surface#2983.commit() -[2618984.279] {Default Queue} -> wl_region#3007.subtract(0, 0, 596, 717) -[2618984.284] {Default Queue} -> wl_region#3007.add(-20, -49, 596, 216) -[2618984.296] {Default Queue} -> wl_surface#2983.set_opaque_region(wl_region#3008) -[2618984.300] {Default Queue} -> wl_surface#2983.set_input_region(wl_region#3007) -[2618984.316] {Default Queue} -> wl_surface#2983.attach(wl_buffer#2619, 0, 0) -[2618984.322] {Default Queue} -> wl_surface#2983.commit() -[2618984.334] {Default Queue} -> wl_surface#2983.attach(wl_buffer#2619, 0, 0) -[2618984.339] {Default Queue} -> wl_surface#2983.commit() -[2618985.410] {Default Queue} -> wl_surface#2983.attach(wl_buffer#2619, 0, 0) -[2618985.416] {Default Queue} -> wl_surface#2983.commit() -[2618985.427] {Default Queue} -> wl_region#3007.subtract(0, 0, 596, 717) -[2618985.431] {Default Queue} -> wl_region#3007.add(-20, -49, 596, 216) -[2618985.435] {Default Queue} -> wl_surface#2983.set_opaque_region(wl_region#3008) -[2618985.439] {Default Queue} -> wl_surface#2983.set_input_region(wl_region#3007) -[2618985.454] {Default Queue} -> wl_surface#2983.attach(wl_buffer#2619, 0, 0) -[2618985.459] {Default Queue} -> wl_surface#2983.commit() -[2618985.469] {Default Queue} -> wl_surface#2983.attach(wl_buffer#2619, 0, 0) -[2618985.474] {Default Queue} -> wl_surface#2983.commit() -[2618985.486] {Default Queue} -> wl_surface#2983.attach(wl_buffer#2619, 0, 0) -[2618985.490] {Default Queue} -> wl_surface#2983.commit() -[2618985.621] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) -[2618985.627] {Default Queue} -> wl_surface#71.commit() -[2618986.738] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) -[2618986.746] {Default Queue} -> wl_surface#71.commit() -[2618986.775] {Default Queue} -> wl_region#95.subtract(0, 0, 596, 718) -[2618986.781] {Default Queue} -> wl_region#95.add(0, 0, 576, 669) -[2618986.785] {Default Queue} -> wl_surface#71.set_opaque_region(wl_region#96) -[2618986.789] {Default Queue} -> wl_surface#71.set_input_region(wl_region#95) -[2618986.841] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) -[2618986.851] {Default Queue} -> wl_surface#71.commit() -[2618986.892] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) -[2618986.898] {Default Queue} -> wl_surface#71.commit() -[2618986.929] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) -[2618986.935] {Default Queue} -> wl_surface#71.commit() -[2618987.097] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) -[2618987.103] {Default Queue} -> wl_surface#3.commit() -[2618987.299] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) -[2618987.305] {Default Queue} -> wl_surface#19.commit() -[2618987.317] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2618987.321] {Default Queue} -> wl_surface#43.commit() -[2618987.327] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) -[2618987.331] {Default Queue} -> wl_surface#199.commit() -[2618987.338] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2618987.341] {Default Queue} -> wl_surface#43.commit() -[2618987.347] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) -[2618987.351] {Default Queue} -> wl_surface#199.commit() -[2618988.413] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) -[2618988.419] {Default Queue} -> wl_surface#199.commit() -[2618988.433] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 69) -[2618988.438] {Default Queue} -> wl_region#223.add(-20, -49, 22, 69) -[2618988.442] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618988.446] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618988.552] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 69) -[2618988.557] {Default Queue} -> wl_region#223.add(-20, -49, 22, 69) -[2618988.561] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618988.565] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618988.578] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2618988.582] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2618988.632] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 69) -[2618988.637] {Default Queue} -> wl_region#223.add(-20, -49, 22, 69) -[2618988.641] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618988.645] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618988.650] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2618988.654] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2618988.659] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) -[2618988.663] {Default Queue} -> wl_surface#199.commit() -[2618988.667] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) -[2618988.671] {Default Queue} -> wl_surface#199.commit() -[2618988.676] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) -[2618988.680] {Default Queue} -> wl_surface#199.commit() -[2618988.684] {Default Queue} -> wl_region#287.subtract(0, 0, 2, 2) -[2618988.689] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 54) -[2618988.693] {Default Queue} -> wl_region#287.add(-23, -72, 24, 53) -[2618988.697] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618988.700] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618988.704] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618988.718] {Default Queue} -> wl_buffer#285.destroy() -[2618988.723] {Default Queue} -> wl_buffer#286.destroy() -[2618988.727] {Default Queue} -> wl_shm_pool#283.destroy() -[2618988.730] {Default Queue} -> wl_shm_pool#284.destroy() -[2618988.778] {Default Queue} -> wl_shm#271.create_pool(new id wl_shm_pool#2621, fd 575, 16) -[2618988.784] {Default Queue} -> wl_shm#271.create_pool(new id wl_shm_pool#2588, fd 578, 16) -[2618988.788] {Default Queue} -> wl_shm_pool#2621.create_buffer(new id wl_buffer#2587, 0, 2, 2, 8, 0) -[2618988.793] {Default Queue} -> wl_shm_pool#2588.create_buffer(new id wl_buffer#2590, 0, 2, 2, 8, 0) -[2618988.799] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) -[2618988.803] {Default Queue} -> wl_surface#263.commit() -[2618988.812] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) -[2618988.819] {Default Queue} -> wl_surface#263.commit() -[2618988.828] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) -[2618988.832] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) -[2618988.836] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618988.840] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618988.847] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) -[2618988.851] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) -[2618988.855] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618988.859] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618988.873] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) -[2618988.878] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) -[2618988.882] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618988.885] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618988.890] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) -[2618988.894] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) -[2618988.898] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618988.902] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618988.907] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) -[2618988.911] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) -[2618988.915] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618988.918] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618988.997] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) -[2618989.002] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) -[2618989.006] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618989.010] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618989.020] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618989.024] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618989.029] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) -[2618989.033] {Default Queue} -> wl_surface#263.commit() -[2618989.039] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) -[2618989.042] {Default Queue} -> wl_surface#263.commit() -[2618990.107] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) -[2618990.115] {Default Queue} -> wl_surface#263.commit() -[2618990.124] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) -[2618990.128] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) -[2618990.132] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618990.136] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618990.143] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) -[2618990.147] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) -[2618990.151] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618990.155] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618990.161] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) -[2618990.165] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) -[2618990.168] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618990.172] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618990.177] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) -[2618990.181] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) -[2618990.185] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618990.188] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618990.193] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) -[2618990.197] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) -[2618990.201] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618990.204] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618990.271] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) -[2618990.279] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) -[2618990.285] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2618990.289] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2618990.295] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618990.299] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618990.304] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) -[2618990.308] {Default Queue} -> wl_surface#263.commit() -[2618990.312] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) -[2618990.315] {Default Queue} -> wl_surface#263.commit() -[2618990.321] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) -[2618990.325] {Default Queue} -> wl_surface#263.commit() -[2618990.331] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) -[2618990.334] {Default Queue} -> wl_surface#231.commit() -[2618991.396] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) -[2618991.404] {Default Queue} -> wl_surface#231.commit() -[2618991.411] {Default Queue} -> wl_region#255.subtract(0, 0, 25, 74) -[2618991.415] {Default Queue} -> wl_region#255.add(-23, -52, 25, 54) -[2618991.419] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) -[2618991.423] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) -[2618991.428] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) -[2618991.432] {Default Queue} -> wl_surface#231.commit() -[2618991.436] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) -[2618991.440] {Default Queue} -> wl_surface#231.commit() -[2618991.445] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) -[2618991.449] {Default Queue} -> wl_surface#231.commit() -[2618991.453] {Default Queue} -> wl_region#191.subtract(0, 0, 109, 161) -[2618991.459] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 69) -[2618991.463] {Default Queue} -> wl_region#223.add(-20, -49, 22, 69) -[2618991.467] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618991.470] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618991.533] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 69) -[2618991.539] {Default Queue} -> wl_region#223.add(-20, -49, 22, 69) -[2618991.543] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618991.547] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618991.553] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2618991.557] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2618991.627] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 69) -[2618991.637] {Default Queue} -> wl_region#223.add(-20, -49, 22, 69) -[2618991.644] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2618991.649] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2618991.659] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2618991.665] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2618991.673] {Default Queue} -> wl_region#255.subtract(0, 0, 25, 74) -[2618991.677] {Default Queue} -> wl_region#255.add(-23, -52, 25, 54) -[2618991.682] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) -[2618991.687] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) -[2618991.693] {Default Queue} -> wl_surface#167.damage(0, 0, 109, 161) -[2618991.698] {Default Queue} -> wl_region#191.subtract(0, 0, 132, 213) -[2618991.704] {Default Queue} -> wl_region#191.add(-20, -49, 129, 210) -[2618991.708] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) -[2618991.712] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) -[2618991.716] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2618991.719] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2618991.723] {Default Queue} -> wl_surface#231.damage(0, 0, 2, 2) -[2618991.728] {Default Queue} -> wl_surface#167.damage(0, 0, 109, 161) -[2618991.744] {Default Queue} -> wl_buffer#3692.destroy() -[2618991.751] {Default Queue} -> wl_buffer#3693.destroy() -[2618991.761] {Default Queue} -> wl_shm_pool#3690.destroy() -[2618991.768] {Default Queue} -> wl_shm_pool#3691.destroy() -[2618991.853] {Default Queue} -> wl_shm#175.create_pool(new id wl_shm_pool#2589, fd 575, 70196) -[2618991.867] {Default Queue} -> wl_shm#175.create_pool(new id wl_shm_pool#2364, fd 578, 70196) -[2618991.872] {Default Queue} -> wl_shm_pool#2589.create_buffer(new id wl_buffer#2363, 0, 109, 161, 436, 0) -[2618991.877] {Default Queue} -> wl_shm_pool#2364.create_buffer(new id wl_buffer#2366, 0, 109, 161, 436, 0) -[2618991.899] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) -[2618991.903] {Default Queue} -> wl_surface#167.commit() -[2618991.924] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) -[2618991.929] {Default Queue} -> wl_surface#167.commit() -[2618991.938] {Default Queue} -> wl_region#191.subtract(0, 0, 132, 213) -[2618991.943] {Default Queue} -> wl_region#191.add(-20, -49, 129, 210) -[2618991.947] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) -[2618991.951] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) -[2618991.958] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) -[2618991.962] {Default Queue} -> wl_surface#167.commit() -[2618991.998] {Display Queue} wl_display#1.delete_id(3133) -[2618992.003] {Display Queue} wl_display#1.delete_id(3134) -[2618992.007] {Display Queue} wl_display#1.delete_id(3131) -[2618992.012] {Display Queue} wl_display#1.delete_id(3132) -[2618992.016] {Display Queue} wl_display#1.delete_id(3037) -[2618992.019] {Display Queue} wl_display#1.delete_id(3038) -[2618992.023] {Display Queue} wl_display#1.delete_id(3035) -[2618992.027] {Display Queue} wl_display#1.delete_id(3036) -[2618992.031] {Default Queue} wl_pointer#24.motion(187310621, 27.39843750, 14.60156250) -[2618992.037] {Default Queue} wl_pointer#81.motion(187310621, 27.39843750, 14.60156250) -[2618992.043] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618992.048] {Default Queue} wl_pointer#105.motion(187310621, 27.39843750, 14.60156250) -[2618992.052] {Default Queue} wl_pointer#137.motion(187310621, 27.39843750, 14.60156250) -[2618992.056] {Default Queue} wl_pointer#169.motion(187310621, 27.39843750, 14.60156250) -[2618992.061] {Default Queue} wl_pointer#201.motion(187310621, 27.39843750, 14.60156250) -[2618992.065] {Default Queue} wl_pointer#233.motion(187310621, 27.39843750, 14.60156250) -[2618992.069] {Default Queue} wl_pointer#265.motion(187310621, 27.39843750, 14.60156250) -[2618992.073] {Default Queue} wl_pointer#297.motion(187310621, 27.39843750, 14.60156250) -[2618992.077] {Default Queue} wl_pointer#329.motion(187310621, 27.39843750, 14.60156250) -[2618992.081] {Default Queue} wl_pointer#361.motion(187310621, 27.39843750, 14.60156250) -[2618992.086] {Default Queue} wl_pointer#393.motion(187310621, 27.39843750, 14.60156250) -[2618992.091] {Default Queue} wl_pointer#425.motion(187310621, 27.39843750, 14.60156250) -[2618992.095] {Default Queue} wl_pointer#457.motion(187310621, 27.39843750, 14.60156250) -[2618992.099] {Default Queue} wl_pointer#489.motion(187310621, 27.39843750, 14.60156250) -[2618992.104] {Default Queue} wl_pointer#521.motion(187310621, 27.39843750, 14.60156250) -[2618992.108] {Default Queue} wl_pointer#553.motion(187310621, 27.39843750, 14.60156250) -[2618992.113] {Default Queue} wl_pointer#585.motion(187310621, 27.39843750, 14.60156250) -[2618992.118] {Default Queue} wl_pointer#617.motion(187310621, 27.39843750, 14.60156250) -[2618992.122] {Default Queue} wl_pointer#649.motion(187310621, 27.39843750, 14.60156250) -[2618992.126] {Default Queue} wl_pointer#681.motion(187310621, 27.39843750, 14.60156250) -[2618992.130] {Default Queue} wl_pointer#713.motion(187310621, 27.39843750, 14.60156250) -[2618992.135] {Default Queue} wl_pointer#745.motion(187310621, 27.39843750, 14.60156250) -[2618992.139] {Default Queue} wl_pointer#777.motion(187310621, 27.39843750, 14.60156250) -[2618992.144] {Default Queue} wl_pointer#809.motion(187310621, 27.39843750, 14.60156250) -[2618992.149] {Default Queue} wl_pointer#841.motion(187310621, 27.39843750, 14.60156250) -[2618992.157] {Default Queue} wl_pointer#873.motion(187310621, 27.39843750, 14.60156250) -[2618992.164] {Default Queue} wl_pointer#905.motion(187310621, 27.39843750, 14.60156250) -[2618992.168] {Default Queue} wl_pointer#937.motion(187310621, 27.39843750, 14.60156250) -[2618992.173] {Default Queue} wl_pointer#969.motion(187310621, 27.39843750, 14.60156250) -[2618992.178] {Default Queue} wl_pointer#1001.motion(187310621, 27.39843750, 14.60156250) -[2618992.182] {Default Queue} wl_pointer#1033.motion(187310621, 27.39843750, 14.60156250) -[2618992.187] {Default Queue} wl_pointer#1065.motion(187310621, 27.39843750, 14.60156250) -[2618992.192] {Default Queue} wl_pointer#1097.motion(187310621, 27.39843750, 14.60156250) -[2618992.196] {Default Queue} wl_pointer#1129.motion(187310621, 27.39843750, 14.60156250) -[2618992.201] {Default Queue} wl_pointer#1161.motion(187310621, 27.39843750, 14.60156250) -[2618992.205] {Default Queue} wl_pointer#1193.motion(187310621, 27.39843750, 14.60156250) -[2618992.209] {Default Queue} wl_pointer#1225.motion(187310621, 27.39843750, 14.60156250) -[2618992.214] {Default Queue} wl_pointer#1257.motion(187310621, 27.39843750, 14.60156250) -[2618992.218] {Default Queue} wl_pointer#1289.motion(187310621, 27.39843750, 14.60156250) -[2618992.224] {Default Queue} wl_pointer#1321.motion(187310621, 27.39843750, 14.60156250) -[2618992.229] {Default Queue} wl_pointer#1353.motion(187310621, 27.39843750, 14.60156250) -[2618992.233] {Default Queue} wl_pointer#1385.motion(187310621, 27.39843750, 14.60156250) -[2618992.238] {Default Queue} wl_pointer#1417.motion(187310621, 27.39843750, 14.60156250) -[2618992.242] {Default Queue} wl_pointer#1449.motion(187310621, 27.39843750, 14.60156250) -[2618992.246] {Default Queue} wl_pointer#1481.motion(187310621, 27.39843750, 14.60156250) -[2618992.251] {Default Queue} wl_pointer#1513.motion(187310621, 27.39843750, 14.60156250) -[2618992.256] {Default Queue} wl_pointer#1545.motion(187310621, 27.39843750, 14.60156250) -[2618992.260] {Default Queue} wl_pointer#1577.motion(187310621, 27.39843750, 14.60156250) -[2618992.265] {Default Queue} wl_pointer#1609.motion(187310621, 27.39843750, 14.60156250) -[2618992.270] {Default Queue} wl_pointer#1641.motion(187310621, 27.39843750, 14.60156250) -[2618992.275] {Default Queue} wl_pointer#1673.motion(187310621, 27.39843750, 14.60156250) -[2618992.279] {Default Queue} wl_pointer#1705.motion(187310621, 27.39843750, 14.60156250) -[2618992.283] {Default Queue} wl_pointer#1737.motion(187310621, 27.39843750, 14.60156250) -[2618992.288] {Default Queue} wl_pointer#1762.motion(187310621, 27.39843750, 14.60156250) -[2618992.294] {Default Queue} wl_pointer#1801.motion(187310621, 27.39843750, 14.60156250) -[2618992.298] {Default Queue} wl_pointer#1833.motion(187310621, 27.39843750, 14.60156250) -[2618992.303] {Default Queue} wl_pointer#1865.motion(187310621, 27.39843750, 14.60156250) -[2618992.307] {Default Queue} wl_pointer#1897.motion(187310621, 27.39843750, 14.60156250) -[2618992.312] {Default Queue} wl_pointer#1929.motion(187310621, 27.39843750, 14.60156250) -[2618992.317] {Default Queue} wl_pointer#1961.motion(187310621, 27.39843750, 14.60156250) -[2618992.321] {Default Queue} wl_pointer#1993.motion(187310621, 27.39843750, 14.60156250) -[2618992.326] {Default Queue} wl_pointer#2025.motion(187310621, 27.39843750, 14.60156250) -[2618992.330] {Default Queue} wl_pointer#2057.motion(187310621, 27.39843750, 14.60156250) -[2618992.336] {Default Queue} wl_pointer#2089.motion(187310621, 27.39843750, 14.60156250) -[2618992.340] {Default Queue} wl_pointer#2121.motion(187310621, 27.39843750, 14.60156250) -[2618992.345] {Default Queue} wl_pointer#2153.motion(187310621, 27.39843750, 14.60156250) -[2618992.349] {Default Queue} wl_pointer#2185.motion(187310621, 27.39843750, 14.60156250) -[2618992.355] {Default Queue} wl_pointer#2217.motion(187310621, 27.39843750, 14.60156250) -[2618992.360] {Default Queue} wl_pointer#2249.motion(187310621, 27.39843750, 14.60156250) -[2618992.364] {Default Queue} wl_pointer#2281.motion(187310621, 27.39843750, 14.60156250) -[2618992.375] {Default Queue} wl_pointer#2313.motion(187310621, 27.39843750, 14.60156250) -[2618992.383] {Default Queue} wl_pointer#2345.motion(187310621, 27.39843750, 14.60156250) -[2618992.388] {Default Queue} wl_pointer#2377.motion(187310621, 27.39843750, 14.60156250) -[2618992.392] {Default Queue} wl_pointer#2409.motion(187310621, 27.39843750, 14.60156250) -[2618992.397] {Default Queue} wl_pointer#2441.motion(187310621, 27.39843750, 14.60156250) -[2618992.402] {Default Queue} wl_pointer#2473.motion(187310621, 27.39843750, 14.60156250) -[2618992.406] {Default Queue} wl_pointer#2498.motion(187310621, 27.39843750, 14.60156250) -[2618992.418] {Default Queue} -> wl_buffer#1021.destroy() -[2618992.424] {Default Queue} -> wl_buffer#1022.destroy() -[2618992.428] {Default Queue} -> wl_shm_pool#1019.destroy() -[2618992.431] {Default Queue} -> wl_shm_pool#1020.destroy() -[2618992.436] {Default Queue} -> wl_surface#2108.destroy() -[2618992.473] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3036, fd 581, 640) -[2618992.479] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3035, fd 582, 640) -[2618992.483] {Default Queue} -> wl_shm_pool#3036.create_buffer(new id wl_buffer#3038, 0, 10, 16, 40, 0) -[2618992.488] {Default Queue} -> wl_shm_pool#3035.create_buffer(new id wl_buffer#3037, 0, 10, 16, 40, 0) -[2618992.497] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3132) -[2618992.503] {Default Queue} -> wl_surface#3132.attach(wl_buffer#3038, 0, 0) -[2618992.508] {Default Queue} -> wl_surface#3132.commit() -[2618992.515] {Default Queue} -> wl_surface#3132.attach(wl_buffer#3038, 0, 0) -[2618992.521] {Default Queue} -> wl_surface#3132.commit() -[2618992.525] {Default Queue} wl_pointer#2537.motion(187310621, 27.39843750, 14.60156250) -[2618992.531] {Default Queue} wl_pointer#2569.motion(187310621, 27.39843750, 14.60156250) -[2618992.536] {Default Queue} wl_pointer#2601.motion(187310621, 27.39843750, 14.60156250) -[2618992.540] {Default Queue} wl_pointer#2633.motion(187310621, 27.39843750, 14.60156250) -[2618992.545] {Default Queue} wl_pointer#2665.motion(187310621, 27.39843750, 14.60156250) -[2618992.550] {Default Queue} wl_pointer#2697.motion(187310621, 27.39843750, 14.60156250) -[2618992.554] {Default Queue} wl_pointer#2729.motion(187310621, 27.39843750, 14.60156250) -[2618992.559] {Default Queue} wl_pointer#2761.motion(187310621, 27.39843750, 14.60156250) -[2618992.564] {Default Queue} wl_pointer#2793.motion(187310621, 27.39843750, 14.60156250) -[2618992.568] {Default Queue} wl_pointer#2825.motion(187310621, 27.39843750, 14.60156250) -[2618992.574] {Default Queue} wl_pointer#2857.motion(187310621, 27.39843750, 14.60156250) -[2618992.579] {Default Queue} wl_pointer#2889.motion(187310621, 27.39843750, 14.60156250) -[2618992.583] {Default Queue} wl_pointer#2921.motion(187310621, 27.39843750, 14.60156250) -[2618992.587] {Default Queue} wl_pointer#2953.motion(187310621, 27.39843750, 14.60156250) -[2618992.591] {Default Queue} wl_pointer#2985.motion(187310621, 27.39843750, 14.60156250) -[2618992.596] {Default Queue} wl_pointer#3017.motion(187310621, 27.39843750, 14.60156250) -[2618992.600] {Default Queue} wl_pointer#3049.motion(187310621, 27.39843750, 14.60156250) -[2618992.605] {Default Queue} wl_pointer#3081.motion(187310621, 27.39843750, 14.60156250) -[2618992.610] {Default Queue} wl_pointer#3113.motion(187310621, 27.39843750, 14.60156250) -[2618992.614] {Default Queue} wl_pointer#3145.motion(187310621, 27.39843750, 14.60156250) -[2618992.620] {Default Queue} wl_pointer#3177.motion(187310621, 27.39843750, 14.60156250) -[2618992.624] {Default Queue} wl_pointer#3209.motion(187310621, 27.39843750, 14.60156250) -[2618992.629] {Default Queue} wl_pointer#3241.motion(187310621, 27.39843750, 14.60156250) -[2618992.633] {Default Queue} wl_pointer#3273.motion(187310621, 27.39843750, 14.60156250) -[2618992.638] {Default Queue} wl_pointer#3305.motion(187310621, 27.39843750, 14.60156250) -[2618992.642] {Default Queue} wl_pointer#3337.motion(187310621, 27.39843750, 14.60156250) -[2618992.646] {Default Queue} wl_pointer#3369.motion(187310621, 27.39843750, 14.60156250) -[2618992.655] {Default Queue} wl_pointer#3401.motion(187310621, 27.39843750, 14.60156250) -[2618992.662] {Default Queue} wl_pointer#3433.motion(187310621, 27.39843750, 14.60156250) -[2618992.667] {Default Queue} wl_pointer#3465.motion(187310621, 27.39843750, 14.60156250) -[2618992.672] {Default Queue} wl_pointer#3497.motion(187310621, 27.39843750, 14.60156250) -[2618992.676] {Default Queue} wl_pointer#3529.motion(187310621, 27.39843750, 14.60156250) -[2618992.681] {Default Queue} wl_pointer#3561.motion(187310621, 27.39843750, 14.60156250) -[2618992.685] {Default Queue} wl_pointer#3593.motion(187310621, 27.39843750, 14.60156250) -[2618992.689] {Default Queue} wl_pointer#3625.motion(187310621, 27.39843750, 14.60156250) -[2618992.694] {Default Queue} wl_pointer#3657.motion(187310621, 27.39843750, 14.60156250) -[2618992.698] {Default Queue} wl_pointer#3695.motion(187310621, 27.39843750, 14.60156250) -[2618992.704] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) -[2618992.708] {Default Queue} -> wl_surface#167.commit() -[2618993.775] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) -[2618993.785] {Default Queue} -> wl_surface#167.commit() -[2618993.796] {Default Queue} -> wl_region#191.subtract(0, 0, 132, 213) -[2618993.800] {Default Queue} -> wl_region#191.add(-20, -49, 129, 210) -[2618993.804] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) -[2618993.808] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) -[2618993.815] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) -[2618993.819] {Default Queue} -> wl_surface#167.commit() -[2618993.824] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) -[2618993.828] {Default Queue} -> wl_surface#167.commit() -[2618993.835] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) -[2618993.842] {Default Queue} -> wl_surface#167.commit() -[2618993.853] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) -[2618993.858] {Default Queue} -> wl_surface#135.commit() -[2618994.926] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) -[2618994.931] {Default Queue} -> wl_surface#135.commit() -[2618994.942] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) -[2618994.947] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) -[2618994.951] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618994.955] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618994.963] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) -[2618994.967] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) -[2618994.971] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618994.974] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618994.980] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) -[2618994.984] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) -[2618994.988] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618994.992] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618994.998] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) -[2618995.002] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) -[2618995.006] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618995.010] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618995.016] {Default Queue} -> wl_region#159.subtract(0, 0, 115, 167) -[2618995.020] {Default Queue} -> wl_region#159.add(0, 0, 115, 167) -[2618995.024] {Default Queue} -> wl_surface#135.set_opaque_region(wl_region#160) -[2618995.028] {Default Queue} -> wl_surface#135.set_input_region(wl_region#159) -[2618995.035] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) -[2618995.039] {Default Queue} -> wl_surface#135.commit() -[2618995.044] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) -[2618995.048] {Default Queue} -> wl_surface#135.commit() -[2618995.054] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) -[2618995.058] {Default Queue} -> wl_surface#135.commit() -[2618995.085] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) -[2618995.092] {Default Queue} -> wl_surface#295.commit() -[2618996.158] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) -[2618996.165] {Default Queue} -> wl_surface#295.commit() -[2618996.180] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) -[2618996.188] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) -[2618996.192] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618996.196] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618996.483] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) -[2618996.494] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) -[2618996.501] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618996.507] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618996.521] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) -[2618996.526] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) -[2618996.784] {Default Queue} -> wl_region#319.subtract(0, 0, 480, 216) -[2618996.791] {Default Queue} -> wl_region#319.add(-20, -49, 365, 216) -[2618996.795] {Default Queue} -> wl_surface#295.set_opaque_region(wl_region#320) -[2618996.799] {Default Queue} -> wl_surface#295.set_input_region(wl_region#319) -[2618996.810] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) -[2618996.818] {Default Queue} -> wl_surface#295.damage(0, 0, 345, 167) -[2618996.827] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) -[2618996.833] {Default Queue} -> wl_surface#295.commit() -[2618996.840] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) -[2618996.845] {Default Queue} -> wl_surface#295.commit() -[2618996.855] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) -[2618996.859] {Default Queue} -> wl_surface#295.commit() -[2618996.872] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) -[2618996.876] {Default Queue} -> wl_surface#391.commit() -[2618997.294] {Display Queue} wl_display#1.delete_id(3325) -[2618997.300] {Display Queue} wl_display#1.delete_id(3326) -[2618997.304] {Display Queue} wl_display#1.delete_id(3323) -[2618997.308] {Display Queue} wl_display#1.delete_id(3324) -[2618997.312] {Display Queue} wl_display#1.delete_id(2430) -[2618997.316] {Display Queue} wl_display#1.delete_id(2429) -[2618997.319] {Display Queue} wl_display#1.delete_id(2428) -[2618997.323] {Display Queue} wl_display#1.delete_id(2427) -[2618997.327] {Display Queue} wl_display#1.delete_id(2140) -[2618997.331] {Default Queue} wl_pointer#24.motion(187310631, 27.00000000, 14.19921875) -[2618997.336] {Default Queue} wl_pointer#81.motion(187310631, 27.00000000, 14.19921875) -[2618997.341] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618997.346] {Default Queue} wl_pointer#105.motion(187310631, 27.00000000, 14.19921875) -[2618997.350] {Default Queue} wl_pointer#137.motion(187310631, 27.00000000, 14.19921875) -[2618997.355] {Default Queue} wl_pointer#169.motion(187310631, 27.00000000, 14.19921875) -[2618997.361] {Default Queue} wl_pointer#201.motion(187310631, 27.00000000, 14.19921875) -[2618997.367] {Default Queue} wl_pointer#233.motion(187310631, 27.00000000, 14.19921875) -[2618997.374] {Default Queue} wl_pointer#265.motion(187310631, 27.00000000, 14.19921875) -[2618997.381] {Default Queue} wl_pointer#297.motion(187310631, 27.00000000, 14.19921875) -[2618997.388] {Default Queue} wl_pointer#329.motion(187310631, 27.00000000, 14.19921875) -[2618997.394] {Default Queue} wl_pointer#361.motion(187310631, 27.00000000, 14.19921875) -[2618997.400] {Default Queue} wl_pointer#393.motion(187310631, 27.00000000, 14.19921875) -[2618997.406] {Default Queue} wl_pointer#425.motion(187310631, 27.00000000, 14.19921875) -[2618997.412] {Default Queue} wl_pointer#457.motion(187310631, 27.00000000, 14.19921875) -[2618997.416] {Default Queue} wl_pointer#489.motion(187310631, 27.00000000, 14.19921875) -[2618997.420] {Default Queue} wl_pointer#521.motion(187310631, 27.00000000, 14.19921875) -[2618997.430] {Default Queue} wl_pointer#553.motion(187310631, 27.00000000, 14.19921875) -[2618997.437] {Default Queue} wl_pointer#585.motion(187310631, 27.00000000, 14.19921875) -[2618997.441] {Default Queue} wl_pointer#617.motion(187310631, 27.00000000, 14.19921875) -[2618997.445] {Default Queue} wl_pointer#649.motion(187310631, 27.00000000, 14.19921875) -[2618997.450] {Default Queue} wl_pointer#681.motion(187310631, 27.00000000, 14.19921875) -[2618997.453] {Default Queue} wl_pointer#713.motion(187310631, 27.00000000, 14.19921875) -[2618997.457] {Default Queue} wl_pointer#745.motion(187310631, 27.00000000, 14.19921875) -[2618997.462] {Default Queue} wl_pointer#777.motion(187310631, 27.00000000, 14.19921875) -[2618997.466] {Default Queue} wl_pointer#809.motion(187310631, 27.00000000, 14.19921875) -[2618997.470] {Default Queue} wl_pointer#841.motion(187310631, 27.00000000, 14.19921875) -[2618997.474] {Default Queue} wl_pointer#873.motion(187310631, 27.00000000, 14.19921875) -[2618997.478] {Default Queue} wl_pointer#905.motion(187310631, 27.00000000, 14.19921875) -[2618997.483] {Default Queue} wl_pointer#937.motion(187310631, 27.00000000, 14.19921875) -[2618997.487] {Default Queue} wl_pointer#969.motion(187310631, 27.00000000, 14.19921875) -[2618997.491] {Default Queue} wl_pointer#1001.motion(187310631, 27.00000000, 14.19921875) -[2618997.495] {Default Queue} wl_pointer#1033.motion(187310631, 27.00000000, 14.19921875) -[2618997.499] {Default Queue} wl_pointer#1065.motion(187310631, 27.00000000, 14.19921875) -[2618997.503] {Default Queue} wl_pointer#1097.motion(187310631, 27.00000000, 14.19921875) -[2618997.507] {Default Queue} wl_pointer#1129.motion(187310631, 27.00000000, 14.19921875) -[2618997.511] {Default Queue} wl_pointer#1161.motion(187310631, 27.00000000, 14.19921875) -[2618997.515] {Default Queue} wl_pointer#1193.motion(187310631, 27.00000000, 14.19921875) -[2618997.519] {Default Queue} wl_pointer#1225.motion(187310631, 27.00000000, 14.19921875) -[2618997.523] {Default Queue} wl_pointer#1257.motion(187310631, 27.00000000, 14.19921875) -[2618997.527] {Default Queue} wl_pointer#1289.motion(187310631, 27.00000000, 14.19921875) -[2618997.531] {Default Queue} wl_pointer#1321.motion(187310631, 27.00000000, 14.19921875) -[2618997.536] {Default Queue} wl_pointer#1353.motion(187310631, 27.00000000, 14.19921875) -[2618997.540] {Default Queue} wl_pointer#1385.motion(187310631, 27.00000000, 14.19921875) -[2618997.544] {Default Queue} wl_pointer#1417.motion(187310631, 27.00000000, 14.19921875) -[2618997.548] {Default Queue} wl_pointer#1449.motion(187310631, 27.00000000, 14.19921875) -[2618997.552] {Default Queue} wl_pointer#1481.motion(187310631, 27.00000000, 14.19921875) -[2618997.556] {Default Queue} wl_pointer#1513.motion(187310631, 27.00000000, 14.19921875) -[2618997.560] {Default Queue} wl_pointer#1545.motion(187310631, 27.00000000, 14.19921875) -[2618997.564] {Default Queue} wl_pointer#1577.motion(187310631, 27.00000000, 14.19921875) -[2618997.569] {Default Queue} wl_pointer#1609.motion(187310631, 27.00000000, 14.19921875) -[2618997.573] {Default Queue} wl_pointer#1641.motion(187310631, 27.00000000, 14.19921875) -[2618997.577] {Default Queue} wl_pointer#1673.motion(187310631, 27.00000000, 14.19921875) -[2618997.581] {Default Queue} wl_pointer#1705.motion(187310631, 27.00000000, 14.19921875) -[2618997.585] {Default Queue} wl_pointer#1737.motion(187310631, 27.00000000, 14.19921875) -[2618997.589] {Default Queue} wl_pointer#1762.motion(187310631, 27.00000000, 14.19921875) -[2618997.593] {Default Queue} wl_pointer#1801.motion(187310631, 27.00000000, 14.19921875) -[2618997.597] {Default Queue} wl_pointer#1833.motion(187310631, 27.00000000, 14.19921875) -[2618997.601] {Default Queue} wl_pointer#1865.motion(187310631, 27.00000000, 14.19921875) -[2618997.605] {Default Queue} wl_pointer#1897.motion(187310631, 27.00000000, 14.19921875) -[2618997.609] {Default Queue} wl_pointer#1929.motion(187310631, 27.00000000, 14.19921875) -[2618997.613] {Default Queue} wl_pointer#1961.motion(187310631, 27.00000000, 14.19921875) -[2618997.618] {Default Queue} wl_pointer#1993.motion(187310631, 27.00000000, 14.19921875) -[2618997.625] {Default Queue} wl_pointer#2025.motion(187310631, 27.00000000, 14.19921875) -[2618997.630] {Default Queue} wl_pointer#2057.motion(187310631, 27.00000000, 14.19921875) -[2618997.634] {Default Queue} wl_pointer#2089.motion(187310631, 27.00000000, 14.19921875) -[2618997.638] {Default Queue} wl_pointer#2121.motion(187310631, 27.00000000, 14.19921875) -[2618997.643] {Default Queue} wl_pointer#2153.motion(187310631, 27.00000000, 14.19921875) -[2618997.647] {Default Queue} wl_pointer#2185.motion(187310631, 27.00000000, 14.19921875) -[2618997.651] {Default Queue} wl_pointer#2217.motion(187310631, 27.00000000, 14.19921875) -[2618997.655] {Default Queue} wl_pointer#2249.motion(187310631, 27.00000000, 14.19921875) -[2618997.659] {Default Queue} wl_pointer#2281.motion(187310631, 27.00000000, 14.19921875) -[2618997.663] {Default Queue} wl_pointer#2313.motion(187310631, 27.00000000, 14.19921875) -[2618997.668] {Default Queue} wl_pointer#2345.motion(187310631, 27.00000000, 14.19921875) -[2618997.672] {Default Queue} wl_pointer#2377.motion(187310631, 27.00000000, 14.19921875) -[2618997.676] {Default Queue} wl_pointer#2409.motion(187310631, 27.00000000, 14.19921875) -[2618997.680] {Default Queue} wl_pointer#2441.motion(187310631, 27.00000000, 14.19921875) -[2618997.684] {Default Queue} wl_pointer#2473.motion(187310631, 27.00000000, 14.19921875) -[2618997.688] {Default Queue} wl_pointer#2498.motion(187310631, 27.00000000, 14.19921875) -[2618997.700] {Default Queue} -> wl_buffer#3038.destroy() -[2618997.706] {Default Queue} -> wl_buffer#3037.destroy() -[2618997.710] {Default Queue} -> wl_shm_pool#3036.destroy() -[2618997.714] {Default Queue} -> wl_shm_pool#3035.destroy() -[2618997.719] {Default Queue} -> wl_surface#3132.destroy() -[2618997.758] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2140, fd 575, 640) -[2618997.764] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2427, fd 578, 640) -[2618997.769] {Default Queue} -> wl_shm_pool#2140.create_buffer(new id wl_buffer#2428, 0, 10, 16, 40, 0) -[2618997.773] {Default Queue} -> wl_shm_pool#2427.create_buffer(new id wl_buffer#2429, 0, 10, 16, 40, 0) -[2618997.781] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#2430) -[2618997.785] {Default Queue} -> wl_surface#2430.attach(wl_buffer#2428, 0, 0) -[2618997.789] {Default Queue} -> wl_surface#2430.commit() -[2618997.795] {Default Queue} -> wl_surface#2430.attach(wl_buffer#2428, 0, 0) -[2618997.798] {Default Queue} -> wl_surface#2430.commit() -[2618997.802] {Default Queue} wl_pointer#2537.motion(187310631, 27.00000000, 14.19921875) -[2618997.807] {Default Queue} wl_pointer#2569.motion(187310631, 27.00000000, 14.19921875) -[2618997.811] {Default Queue} wl_pointer#2601.motion(187310631, 27.00000000, 14.19921875) -[2618997.815] {Default Queue} wl_pointer#2633.motion(187310631, 27.00000000, 14.19921875) -[2618997.819] {Default Queue} wl_pointer#2665.motion(187310631, 27.00000000, 14.19921875) -[2618997.823] {Default Queue} wl_pointer#2697.motion(187310631, 27.00000000, 14.19921875) -[2618997.827] {Default Queue} wl_pointer#2729.motion(187310631, 27.00000000, 14.19921875) -[2618997.831] {Default Queue} wl_pointer#2761.motion(187310631, 27.00000000, 14.19921875) -[2618997.836] {Default Queue} wl_pointer#2793.motion(187310631, 27.00000000, 14.19921875) -[2618997.840] {Default Queue} wl_pointer#2825.motion(187310631, 27.00000000, 14.19921875) -[2618997.844] {Default Queue} wl_pointer#2857.motion(187310631, 27.00000000, 14.19921875) -[2618997.848] {Default Queue} wl_pointer#2889.motion(187310631, 27.00000000, 14.19921875) -[2618997.853] {Default Queue} wl_pointer#2921.motion(187310631, 27.00000000, 14.19921875) -[2618997.857] {Default Queue} wl_pointer#2953.motion(187310631, 27.00000000, 14.19921875) -[2618997.862] {Default Queue} wl_pointer#2985.motion(187310631, 27.00000000, 14.19921875) -[2618997.866] {Default Queue} wl_pointer#3017.motion(187310631, 27.00000000, 14.19921875) -[2618997.875] {Default Queue} wl_pointer#3049.motion(187310631, 27.00000000, 14.19921875) -[2618997.880] {Default Queue} wl_pointer#3081.motion(187310631, 27.00000000, 14.19921875) -[2618997.888] {Default Queue} wl_pointer#3113.motion(187310631, 27.00000000, 14.19921875) -[2618997.894] {Default Queue} wl_pointer#3145.motion(187310631, 27.00000000, 14.19921875) -[2618997.898] {Default Queue} wl_pointer#3177.motion(187310631, 27.00000000, 14.19921875) -[2618997.902] {Default Queue} wl_pointer#3209.motion(187310631, 27.00000000, 14.19921875) -[2618997.907] {Default Queue} wl_pointer#3241.motion(187310631, 27.00000000, 14.19921875) -[2618997.911] {Default Queue} wl_pointer#3273.motion(187310631, 27.00000000, 14.19921875) -[2618997.916] {Default Queue} wl_pointer#3305.motion(187310631, 27.00000000, 14.19921875) -[2618997.920] {Default Queue} wl_pointer#3337.motion(187310631, 27.00000000, 14.19921875) -[2618997.924] {Default Queue} wl_pointer#3369.motion(187310631, 27.00000000, 14.19921875) -[2618997.928] {Default Queue} wl_pointer#3401.motion(187310631, 27.00000000, 14.19921875) -[2618997.932] {Default Queue} wl_pointer#3433.motion(187310631, 27.00000000, 14.19921875) -[2618997.937] {Default Queue} wl_pointer#3465.motion(187310631, 27.00000000, 14.19921875) -[2618997.941] {Default Queue} wl_pointer#3497.motion(187310631, 27.00000000, 14.19921875) -[2618997.945] {Default Queue} wl_pointer#3529.motion(187310631, 27.00000000, 14.19921875) -[2618997.949] {Default Queue} wl_pointer#3561.motion(187310631, 27.00000000, 14.19921875) -[2618997.953] {Default Queue} wl_pointer#3593.motion(187310631, 27.00000000, 14.19921875) -[2618997.957] {Default Queue} wl_pointer#3625.motion(187310631, 27.00000000, 14.19921875) -[2618997.961] {Default Queue} wl_pointer#3657.motion(187310631, 27.00000000, 14.19921875) -[2618997.967] {Default Queue} wl_pointer#3695.motion(187310631, 27.00000000, 14.19921875) -[2618997.971] {Default Queue} wl_pointer#24.motion(187310632, 26.60156250, 14.19921875) -[2618997.975] {Default Queue} wl_pointer#81.motion(187310632, 26.60156250, 14.19921875) -[2618997.980] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2618997.985] {Default Queue} wl_pointer#105.motion(187310632, 26.60156250, 14.19921875) -[2618997.989] {Default Queue} wl_pointer#137.motion(187310632, 26.60156250, 14.19921875) -[2618997.993] {Default Queue} wl_pointer#169.motion(187310632, 26.60156250, 14.19921875) -[2618997.997] {Default Queue} wl_pointer#201.motion(187310632, 26.60156250, 14.19921875) -[2618998.001] {Default Queue} wl_pointer#233.motion(187310632, 26.60156250, 14.19921875) -[2618998.006] {Default Queue} wl_pointer#265.motion(187310632, 26.60156250, 14.19921875) -[2618998.010] {Default Queue} wl_pointer#297.motion(187310632, 26.60156250, 14.19921875) -[2618998.014] {Default Queue} wl_pointer#329.motion(187310632, 26.60156250, 14.19921875) -[2618998.018] {Default Queue} wl_pointer#361.motion(187310632, 26.60156250, 14.19921875) -[2618998.022] {Default Queue} wl_pointer#393.motion(187310632, 26.60156250, 14.19921875) -[2618998.026] {Default Queue} wl_pointer#425.motion(187310632, 26.60156250, 14.19921875) -[2618998.031] {Default Queue} wl_pointer#457.motion(187310632, 26.60156250, 14.19921875) -[2618998.035] {Default Queue} wl_pointer#489.motion(187310632, 26.60156250, 14.19921875) -[2618998.039] {Default Queue} wl_pointer#521.motion(187310632, 26.60156250, 14.19921875) -[2618998.043] {Default Queue} wl_pointer#553.motion(187310632, 26.60156250, 14.19921875) -[2618998.047] {Default Queue} wl_pointer#585.motion(187310632, 26.60156250, 14.19921875) -[2618998.051] {Default Queue} wl_pointer#617.motion(187310632, 26.60156250, 14.19921875) -[2618998.055] {Default Queue} wl_pointer#649.motion(187310632, 26.60156250, 14.19921875) -[2618998.059] {Default Queue} wl_pointer#681.motion(187310632, 26.60156250, 14.19921875) -[2618998.064] {Default Queue} wl_pointer#713.motion(187310632, 26.60156250, 14.19921875) -[2618998.068] {Default Queue} wl_pointer#745.motion(187310632, 26.60156250, 14.19921875) -[2618998.072] {Default Queue} wl_pointer#777.motion(187310632, 26.60156250, 14.19921875) -[2618998.076] {Default Queue} wl_pointer#809.motion(187310632, 26.60156250, 14.19921875) -[2618998.084] {Default Queue} wl_pointer#841.motion(187310632, 26.60156250, 14.19921875) -[2618998.089] {Default Queue} wl_pointer#873.motion(187310632, 26.60156250, 14.19921875) -[2618998.093] {Default Queue} wl_pointer#905.motion(187310632, 26.60156250, 14.19921875) -[2618998.098] {Default Queue} wl_pointer#937.motion(187310632, 26.60156250, 14.19921875) -[2618998.102] {Default Queue} wl_pointer#969.motion(187310632, 26.60156250, 14.19921875) -[2618998.106] {Default Queue} wl_pointer#1001.motion(187310632, 26.60156250, 14.19921875) -[2618998.110] {Default Queue} wl_pointer#1033.motion(187310632, 26.60156250, 14.19921875) -[2618998.115] {Default Queue} wl_pointer#1065.motion(187310632, 26.60156250, 14.19921875) -[2618998.119] {Default Queue} wl_pointer#1097.motion(187310632, 26.60156250, 14.19921875) -[2618998.124] {Default Queue} wl_pointer#1129.motion(187310632, 26.60156250, 14.19921875) -[2618998.128] {Default Queue} wl_pointer#1161.motion(187310632, 26.60156250, 14.19921875) -[2618998.132] {Default Queue} wl_pointer#1193.motion(187310632, 26.60156250, 14.19921875) -[2618998.136] {Default Queue} wl_pointer#1225.motion(187310632, 26.60156250, 14.19921875) -[2618998.140] {Default Queue} wl_pointer#1257.motion(187310632, 26.60156250, 14.19921875) -[2618998.144] {Default Queue} wl_pointer#1289.motion(187310632, 26.60156250, 14.19921875) -[2618998.148] {Default Queue} wl_pointer#1321.motion(187310632, 26.60156250, 14.19921875) -[2618998.153] {Default Queue} wl_pointer#1353.motion(187310632, 26.60156250, 14.19921875) -[2618998.157] {Default Queue} wl_pointer#1385.motion(187310632, 26.60156250, 14.19921875) -[2618998.162] {Default Queue} wl_pointer#1417.motion(187310632, 26.60156250, 14.19921875) -[2618998.166] {Default Queue} wl_pointer#1449.motion(187310632, 26.60156250, 14.19921875) -[2618998.170] {Default Queue} wl_pointer#1481.motion(187310632, 26.60156250, 14.19921875) -[2618998.174] {Default Queue} wl_pointer#1513.motion(187310632, 26.60156250, 14.19921875) -[2618998.178] {Default Queue} wl_pointer#1545.motion(187310632, 26.60156250, 14.19921875) -[2618998.182] {Default Queue} wl_pointer#1577.motion(187310632, 26.60156250, 14.19921875) -[2618998.187] {Default Queue} wl_pointer#1609.motion(187310632, 26.60156250, 14.19921875) -[2618998.191] {Default Queue} wl_pointer#1641.motion(187310632, 26.60156250, 14.19921875) -[2618998.195] {Default Queue} wl_pointer#1673.motion(187310632, 26.60156250, 14.19921875) -[2618998.199] {Default Queue} wl_pointer#1705.motion(187310632, 26.60156250, 14.19921875) -[2618998.203] {Default Queue} wl_pointer#1737.motion(187310632, 26.60156250, 14.19921875) -[2618998.208] {Default Queue} wl_pointer#1762.motion(187310632, 26.60156250, 14.19921875) -[2618998.212] {Default Queue} wl_pointer#1801.motion(187310632, 26.60156250, 14.19921875) -[2618998.271] {Default Queue} wl_pointer#1833.motion(187310632, 26.60156250, 14.19921875) -[2618998.277] {Default Queue} wl_pointer#1865.motion(187310632, 26.60156250, 14.19921875) -[2618998.281] {Default Queue} wl_pointer#1897.motion(187310632, 26.60156250, 14.19921875) -[2618998.285] {Default Queue} wl_pointer#1929.motion(187310632, 26.60156250, 14.19921875) -[2618998.289] {Default Queue} wl_pointer#1961.motion(187310632, 26.60156250, 14.19921875) -[2618998.293] {Default Queue} wl_pointer#1993.motion(187310632, 26.60156250, 14.19921875) -[2618998.297] {Default Queue} wl_pointer#2025.motion(187310632, 26.60156250, 14.19921875) -[2618998.302] {Default Queue} wl_pointer#2057.motion(187310632, 26.60156250, 14.19921875) -[2618998.306] {Default Queue} wl_pointer#2089.motion(187310632, 26.60156250, 14.19921875) -[2618998.310] {Default Queue} wl_pointer#2121.motion(187310632, 26.60156250, 14.19921875) -[2618998.314] {Default Queue} wl_pointer#2153.motion(187310632, 26.60156250, 14.19921875) -[2618998.318] {Default Queue} wl_pointer#2185.motion(187310632, 26.60156250, 14.19921875) -[2618998.322] {Default Queue} wl_pointer#2217.motion(187310632, 26.60156250, 14.19921875) -[2618998.327] {Default Queue} wl_pointer#2249.motion(187310632, 26.60156250, 14.19921875) -[2618998.331] {Default Queue} wl_pointer#2281.motion(187310632, 26.60156250, 14.19921875) -[2618998.338] {Default Queue} wl_pointer#2313.motion(187310632, 26.60156250, 14.19921875) -[2618998.343] {Default Queue} wl_pointer#2345.motion(187310632, 26.60156250, 14.19921875) -[2618998.348] {Default Queue} wl_pointer#2377.motion(187310632, 26.60156250, 14.19921875) -[2618998.352] {Default Queue} wl_pointer#2409.motion(187310632, 26.60156250, 14.19921875) -[2618998.356] {Default Queue} wl_pointer#2441.motion(187310632, 26.60156250, 14.19921875) -[2618998.360] {Default Queue} wl_pointer#2473.motion(187310632, 26.60156250, 14.19921875) -[2618998.364] {Default Queue} wl_pointer#2498.motion(187310632, 26.60156250, 14.19921875) -[2618998.375] {Default Queue} -> wl_buffer#2428.destroy() -[2618998.382] {Default Queue} -> wl_buffer#2429.destroy() -[2618998.387] {Default Queue} -> wl_shm_pool#2140.destroy() -[2618998.398] {Default Queue} -> wl_shm_pool#2427.destroy() -[2618998.406] {Default Queue} -> wl_surface#2430.destroy() -[2618998.450] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3324, fd 581, 640) -[2618998.459] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3323, fd 582, 640) -[2618998.465] {Default Queue} -> wl_shm_pool#3324.create_buffer(new id wl_buffer#3326, 0, 10, 16, 40, 0) -[2618998.471] {Default Queue} -> wl_shm_pool#3323.create_buffer(new id wl_buffer#3325, 0, 10, 16, 40, 0) -[2618998.480] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3131) -[2618998.484] {Default Queue} -> wl_surface#3131.attach(wl_buffer#3326, 0, 0) -[2618998.490] {Default Queue} -> wl_surface#3131.commit() -[2618998.496] {Default Queue} -> wl_surface#3131.attach(wl_buffer#3326, 0, 0) -[2618998.502] {Default Queue} -> wl_surface#3131.commit() -[2618998.507] {Default Queue} wl_pointer#2537.motion(187310632, 26.60156250, 14.19921875) -[2618998.513] {Default Queue} wl_pointer#2569.motion(187310632, 26.60156250, 14.19921875) -[2618998.517] {Default Queue} wl_pointer#2601.motion(187310632, 26.60156250, 14.19921875) -[2618998.521] {Default Queue} wl_pointer#2633.motion(187310632, 26.60156250, 14.19921875) -[2618998.525] {Default Queue} wl_pointer#2665.motion(187310632, 26.60156250, 14.19921875) -[2618998.530] {Default Queue} wl_pointer#2697.motion(187310632, 26.60156250, 14.19921875) -[2618998.542] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 69) -[2618998.546] {Default Queue} -> wl_region#415.add(-480, -49, 482, 69) -[2618998.551] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618998.555] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618998.653] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 69) -[2618998.659] {Default Queue} -> wl_region#415.add(-480, -49, 482, 69) -[2618998.663] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618998.667] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618998.674] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2618998.679] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2618998.743] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 69) -[2618998.748] {Default Queue} -> wl_region#415.add(-480, -49, 482, 69) -[2618998.753] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2618998.757] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2618998.762] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2618998.766] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2618998.771] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) -[2618998.775] {Default Queue} -> wl_surface#391.commit() -[2618998.779] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) -[2618998.783] {Default Queue} -> wl_surface#391.commit() -[2618998.789] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) -[2618998.793] {Default Queue} -> wl_surface#391.commit() -[2618998.800] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) -[2618998.804] {Default Queue} -> wl_surface#519.commit() -[2618999.867] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) -[2618999.879] {Default Queue} -> wl_surface#519.commit() -[2618999.891] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) -[2618999.895] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) -[2618999.900] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618999.903] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618999.911] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) -[2618999.915] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) -[2618999.919] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618999.923] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618999.931] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) -[2618999.937] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) -[2618999.941] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618999.945] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618999.952] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) -[2618999.957] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) -[2618999.961] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618999.965] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618999.970] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) -[2618999.974] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) -[2618999.978] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618999.982] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2618999.988] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) -[2618999.992] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) -[2618999.996] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2618999.999] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2619000.004] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) -[2619000.009] {Default Queue} -> wl_surface#519.commit() -[2619000.012] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) -[2619000.016] {Default Queue} -> wl_surface#519.commit() -[2619000.022] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) -[2619000.026] {Default Queue} -> wl_surface#519.commit() -[2619000.032] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) -[2619000.036] {Default Queue} -> wl_surface#551.commit() -[2619001.097] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) -[2619001.102] {Default Queue} -> wl_surface#551.commit() -[2619001.108] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) -[2619001.113] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) -[2619001.117] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2619001.120] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2619001.126] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) -[2619001.130] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) -[2619001.134] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2619001.138] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2619001.145] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) -[2619001.149] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) -[2619001.153] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2619001.156] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2619001.161] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) -[2619001.166] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) -[2619001.169] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2619001.173] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2619001.178] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) -[2619001.182] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) -[2619001.186] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2619001.190] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2619001.199] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) -[2619001.205] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) -[2619001.209] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2619001.213] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2619001.218] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) -[2619001.222] {Default Queue} -> wl_surface#551.commit() -[2619001.226] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) -[2619001.230] {Default Queue} -> wl_surface#551.commit() -[2619001.235] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) -[2619001.239] {Default Queue} -> wl_surface#551.commit() -[2619001.244] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) -[2619001.248] {Default Queue} -> wl_surface#583.commit() -[2619002.309] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) -[2619002.315] {Default Queue} -> wl_surface#583.commit() -[2619002.322] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) -[2619002.327] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) -[2619002.331] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2619002.335] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2619002.341] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) -[2619002.345] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) -[2619002.349] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2619002.353] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2619002.359] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) -[2619002.364] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) -[2619002.368] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2619002.371] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2619002.377] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) -[2619002.381] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) -[2619002.385] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2619002.389] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2619002.393] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) -[2619002.397] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) -[2619002.401] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2619002.405] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2619002.409] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) -[2619002.413] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) -[2619002.417] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2619002.421] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2619002.426] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) -[2619002.429] {Default Queue} -> wl_surface#583.commit() -[2619002.433] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) -[2619002.437] {Default Queue} -> wl_surface#583.commit() -[2619002.444] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) -[2619002.455] {Default Queue} -> wl_surface#583.commit() -[2619002.465] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) -[2619002.471] {Default Queue} -> wl_surface#615.commit() -[2619002.692] {Default Queue} wl_pointer#2729.motion(187310632, 26.60156250, 14.19921875) -[2619002.700] {Default Queue} wl_pointer#2761.motion(187310632, 26.60156250, 14.19921875) -[2619002.706] {Default Queue} wl_pointer#2793.motion(187310632, 26.60156250, 14.19921875) -[2619002.710] {Default Queue} wl_pointer#2825.motion(187310632, 26.60156250, 14.19921875) -[2619002.714] {Default Queue} wl_pointer#2857.motion(187310632, 26.60156250, 14.19921875) -[2619002.718] {Default Queue} wl_pointer#2889.motion(187310632, 26.60156250, 14.19921875) -[2619002.722] {Default Queue} wl_pointer#2921.motion(187310632, 26.60156250, 14.19921875) -[2619002.726] {Default Queue} wl_pointer#2953.motion(187310632, 26.60156250, 14.19921875) -[2619002.735] {Default Queue} wl_pointer#2985.motion(187310632, 26.60156250, 14.19921875) -[2619002.743] {Default Queue} wl_pointer#3017.motion(187310632, 26.60156250, 14.19921875) -[2619002.747] {Default Queue} wl_pointer#3049.motion(187310632, 26.60156250, 14.19921875) -[2619002.751] {Default Queue} wl_pointer#3081.motion(187310632, 26.60156250, 14.19921875) -[2619002.755] {Default Queue} wl_pointer#3113.motion(187310632, 26.60156250, 14.19921875) -[2619002.759] {Default Queue} wl_pointer#3145.motion(187310632, 26.60156250, 14.19921875) -[2619002.764] {Default Queue} wl_pointer#3177.motion(187310632, 26.60156250, 14.19921875) -[2619002.768] {Default Queue} wl_pointer#3209.motion(187310632, 26.60156250, 14.19921875) -[2619002.772] {Default Queue} wl_pointer#3241.motion(187310632, 26.60156250, 14.19921875) -[2619002.776] {Default Queue} wl_pointer#3273.motion(187310632, 26.60156250, 14.19921875) -[2619002.780] {Default Queue} wl_pointer#3305.motion(187310632, 26.60156250, 14.19921875) -[2619002.784] {Default Queue} wl_pointer#3337.motion(187310632, 26.60156250, 14.19921875) -[2619002.788] {Default Queue} wl_pointer#3369.motion(187310632, 26.60156250, 14.19921875) -[2619002.793] {Default Queue} wl_pointer#3401.motion(187310632, 26.60156250, 14.19921875) -[2619002.797] {Default Queue} wl_pointer#3433.motion(187310632, 26.60156250, 14.19921875) -[2619002.801] {Default Queue} wl_pointer#3465.motion(187310632, 26.60156250, 14.19921875) -[2619002.806] {Default Queue} wl_pointer#3497.motion(187310632, 26.60156250, 14.19921875) -[2619002.810] {Default Queue} wl_pointer#3529.motion(187310632, 26.60156250, 14.19921875) -[2619002.814] {Default Queue} wl_pointer#3561.motion(187310632, 26.60156250, 14.19921875) -[2619002.818] {Default Queue} wl_pointer#3593.motion(187310632, 26.60156250, 14.19921875) -[2619002.822] {Default Queue} wl_pointer#3625.motion(187310632, 26.60156250, 14.19921875) -[2619002.826] {Default Queue} wl_pointer#3657.motion(187310632, 26.60156250, 14.19921875) -[2619002.830] {Default Queue} wl_pointer#3695.motion(187310632, 26.60156250, 14.19921875) -[2619002.839] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) -[2619002.845] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) -[2619002.849] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2619002.854] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2619002.866] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) -[2619002.871] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) -[2619002.875] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2619002.901] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2619002.915] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) -[2619002.921] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) -[2619002.927] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2619002.931] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2619002.938] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) -[2619002.942] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) -[2619002.947] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2619002.951] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2619002.956] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) -[2619002.961] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) -[2619002.965] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2619002.969] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2619002.974] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) -[2619002.979] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) -[2619002.983] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2619002.987] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2619002.992] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) -[2619002.997] {Default Queue} -> wl_surface#615.commit() -[2619003.001] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) -[2619003.010] {Default Queue} -> wl_surface#615.commit() -[2619003.020] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) -[2619003.026] {Default Queue} -> wl_surface#615.commit() -[2619003.032] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) -[2619003.036] {Default Queue} -> wl_surface#647.commit() -[2619004.101] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) -[2619004.107] {Default Queue} -> wl_surface#647.commit() -[2619004.115] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) -[2619004.119] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) -[2619004.123] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2619004.128] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2619004.134] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) -[2619004.138] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) -[2619004.142] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2619004.146] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2619004.153] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) -[2619004.157] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) -[2619004.162] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2619004.165] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2619004.171] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) -[2619004.175] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) -[2619004.179] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2619004.182] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2619004.187] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) -[2619004.192] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) -[2619004.196] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2619004.199] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2619004.204] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) -[2619004.208] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) -[2619004.212] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2619004.216] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2619004.221] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) -[2619004.225] {Default Queue} -> wl_surface#647.commit() -[2619004.229] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) -[2619004.233] {Default Queue} -> wl_surface#647.commit() -[2619004.238] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) -[2619004.242] {Default Queue} -> wl_surface#647.commit() -[2619004.248] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) -[2619004.252] {Default Queue} -> wl_surface#487.commit() -[2619005.315] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) -[2619005.320] {Default Queue} -> wl_surface#487.commit() -[2619005.326] {Default Queue} -> wl_region#511.subtract(0, 0, 484, 73) -[2619005.330] {Default Queue} -> wl_region#511.add(-483, -72, 484, 73) -[2619005.334] {Default Queue} -> wl_surface#487.set_opaque_region(wl_region#512) -[2619005.338] {Default Queue} -> wl_surface#487.set_input_region(wl_region#511) -[2619005.342] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) -[2619005.346] {Default Queue} -> wl_surface#487.commit() -[2619005.350] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) -[2619005.354] {Default Queue} -> wl_surface#487.commit() -[2619005.360] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) -[2619005.364] {Default Queue} -> wl_surface#487.commit() -[2619005.369] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) -[2619005.373] {Default Queue} -> wl_surface#711.commit() -[2619006.433] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) -[2619006.439] {Default Queue} -> wl_surface#711.commit() -[2619006.446] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 74) -[2619006.450] {Default Queue} -> wl_region#735.add(-484, -73, 467, 74) -[2619006.457] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2619006.463] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2619006.571] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 74) -[2619006.577] {Default Queue} -> wl_region#735.add(-484, -73, 467, 74) -[2619006.581] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2619006.585] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2619006.590] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2619006.595] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2619006.678] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 74) -[2619006.685] {Default Queue} -> wl_region#735.add(-484, -73, 467, 74) -[2619006.692] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2619006.698] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2619006.705] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2619006.711] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2619006.718] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) -[2619006.724] {Default Queue} -> wl_surface#711.commit() -[2619006.730] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) -[2619006.736] {Default Queue} -> wl_surface#711.commit() -[2619006.744] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) -[2619006.750] {Default Queue} -> wl_surface#711.commit() -[2619006.758] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) -[2619006.764] {Default Queue} -> wl_surface#743.commit() -[2619007.563] {Display Queue} wl_display#1.delete_id(3357) -[2619007.574] {Display Queue} wl_display#1.delete_id(3358) -[2619007.580] {Display Queue} wl_display#1.delete_id(3355) -[2619007.586] {Display Queue} wl_display#1.delete_id(3356) -[2619007.592] {Display Queue} wl_display#1.delete_id(3261) -[2619007.597] {Display Queue} wl_display#1.delete_id(3262) -[2619007.603] {Display Queue} wl_display#1.delete_id(3259) -[2619007.608] {Display Queue} wl_display#1.delete_id(3260) -[2619007.614] {Display Queue} wl_display#1.delete_id(3581) -[2619007.620] {Display Queue} wl_display#1.delete_id(3582) -[2619007.625] {Display Queue} wl_display#1.delete_id(3579) -[2619007.631] {Display Queue} wl_display#1.delete_id(3580) -[2619007.636] {Display Queue} wl_display#1.delete_id(2686) -[2619007.640] {Display Queue} wl_display#1.delete_id(2685) -[2619007.643] {Display Queue} wl_display#1.delete_id(2684) -[2619007.647] {Display Queue} wl_display#1.delete_id(2683) -[2619007.651] {Display Queue} wl_display#1.delete_id(2780) -[2619007.655] {Display Queue} wl_display#1.delete_id(2846) -[2619007.659] {Display Queue} wl_display#1.delete_id(2845) -[2619007.663] {Display Queue} wl_display#1.delete_id(2844) -[2619007.666] {Display Queue} wl_display#1.delete_id(2843) -[2619007.670] {Display Queue} wl_display#1.delete_id(2940) -[2619007.674] {Display Queue} wl_display#1.delete_id(3102) -[2619007.678] {Display Queue} wl_display#1.delete_id(3101) -[2619007.682] {Display Queue} wl_display#1.delete_id(3100) -[2619007.685] {Display Queue} wl_display#1.delete_id(3099) -[2619007.689] {Display Queue} wl_display#1.delete_id(1276) -[2619007.693] {Display Queue} wl_display#1.delete_id(3613) -[2619007.696] {Display Queue} wl_display#1.delete_id(3614) -[2619007.700] {Display Queue} wl_display#1.delete_id(3611) -[2619007.704] {Display Queue} wl_display#1.delete_id(3612) -[2619007.708] {Display Queue} wl_display#1.delete_id(3645) -[2619007.712] {Display Queue} wl_display#1.delete_id(3646) -[2619007.715] {Display Queue} wl_display#1.delete_id(3643) -[2619007.719] {Display Queue} wl_display#1.delete_id(3644) -[2619007.723] {Default Queue} wl_pointer#24.motion(187310641, 26.19921875, 13.80078125) -[2619007.727] {Default Queue} wl_pointer#81.motion(187310641, 26.19921875, 13.80078125) -[2619007.733] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619007.737] {Default Queue} wl_pointer#105.motion(187310641, 26.19921875, 13.80078125) -[2619007.742] {Default Queue} wl_pointer#137.motion(187310641, 26.19921875, 13.80078125) -[2619007.751] {Default Queue} wl_pointer#169.motion(187310641, 26.19921875, 13.80078125) -[2619007.757] {Default Queue} wl_pointer#201.motion(187310641, 26.19921875, 13.80078125) -[2619007.762] {Default Queue} wl_pointer#233.motion(187310641, 26.19921875, 13.80078125) -[2619007.766] {Default Queue} wl_pointer#265.motion(187310641, 26.19921875, 13.80078125) -[2619007.770] {Default Queue} wl_pointer#297.motion(187310641, 26.19921875, 13.80078125) -[2619007.774] {Default Queue} wl_pointer#329.motion(187310641, 26.19921875, 13.80078125) -[2619007.778] {Default Queue} wl_pointer#361.motion(187310641, 26.19921875, 13.80078125) -[2619007.782] {Default Queue} wl_pointer#393.motion(187310641, 26.19921875, 13.80078125) -[2619007.786] {Default Queue} wl_pointer#425.motion(187310641, 26.19921875, 13.80078125) -[2619007.790] {Default Queue} wl_pointer#457.motion(187310641, 26.19921875, 13.80078125) -[2619007.794] {Default Queue} wl_pointer#489.motion(187310641, 26.19921875, 13.80078125) -[2619007.798] {Default Queue} wl_pointer#521.motion(187310641, 26.19921875, 13.80078125) -[2619007.802] {Default Queue} wl_pointer#553.motion(187310641, 26.19921875, 13.80078125) -[2619007.806] {Default Queue} wl_pointer#585.motion(187310641, 26.19921875, 13.80078125) -[2619007.810] {Default Queue} wl_pointer#617.motion(187310641, 26.19921875, 13.80078125) -[2619007.815] {Default Queue} wl_pointer#649.motion(187310641, 26.19921875, 13.80078125) -[2619007.818] {Default Queue} wl_pointer#681.motion(187310641, 26.19921875, 13.80078125) -[2619007.822] {Default Queue} wl_pointer#713.motion(187310641, 26.19921875, 13.80078125) -[2619007.827] {Default Queue} wl_pointer#745.motion(187310641, 26.19921875, 13.80078125) -[2619007.831] {Default Queue} wl_pointer#777.motion(187310641, 26.19921875, 13.80078125) -[2619007.835] {Default Queue} wl_pointer#809.motion(187310641, 26.19921875, 13.80078125) -[2619007.839] {Default Queue} wl_pointer#841.motion(187310641, 26.19921875, 13.80078125) -[2619007.843] {Default Queue} wl_pointer#873.motion(187310641, 26.19921875, 13.80078125) -[2619007.847] {Default Queue} wl_pointer#905.motion(187310641, 26.19921875, 13.80078125) -[2619007.852] {Default Queue} wl_pointer#937.motion(187310641, 26.19921875, 13.80078125) -[2619007.856] {Default Queue} wl_pointer#969.motion(187310641, 26.19921875, 13.80078125) -[2619007.867] {Default Queue} wl_pointer#1001.motion(187310641, 26.19921875, 13.80078125) -[2619007.871] {Default Queue} wl_pointer#1033.motion(187310641, 26.19921875, 13.80078125) -[2619007.876] {Default Queue} wl_pointer#1065.motion(187310641, 26.19921875, 13.80078125) -[2619007.880] {Default Queue} wl_pointer#1097.motion(187310641, 26.19921875, 13.80078125) -[2619007.884] {Default Queue} wl_pointer#1129.motion(187310641, 26.19921875, 13.80078125) -[2619007.888] {Default Queue} wl_pointer#1161.motion(187310641, 26.19921875, 13.80078125) -[2619007.892] {Default Queue} wl_pointer#1193.motion(187310641, 26.19921875, 13.80078125) -[2619007.896] {Default Queue} wl_pointer#1225.motion(187310641, 26.19921875, 13.80078125) -[2619007.901] {Default Queue} wl_pointer#1257.motion(187310641, 26.19921875, 13.80078125) -[2619007.904] {Default Queue} wl_pointer#1289.motion(187310641, 26.19921875, 13.80078125) -[2619007.909] {Default Queue} wl_pointer#1321.motion(187310641, 26.19921875, 13.80078125) -[2619007.913] {Default Queue} wl_pointer#1353.motion(187310641, 26.19921875, 13.80078125) -[2619007.917] {Default Queue} wl_pointer#1385.motion(187310641, 26.19921875, 13.80078125) -[2619007.921] {Default Queue} wl_pointer#1417.motion(187310641, 26.19921875, 13.80078125) -[2619007.925] {Default Queue} wl_pointer#1449.motion(187310641, 26.19921875, 13.80078125) -[2619007.929] {Default Queue} wl_pointer#1481.motion(187310641, 26.19921875, 13.80078125) -[2619007.934] {Default Queue} wl_pointer#1513.motion(187310641, 26.19921875, 13.80078125) -[2619007.938] {Default Queue} wl_pointer#1545.motion(187310641, 26.19921875, 13.80078125) -[2619007.942] {Default Queue} wl_pointer#1577.motion(187310641, 26.19921875, 13.80078125) -[2619007.946] {Default Queue} wl_pointer#1609.motion(187310641, 26.19921875, 13.80078125) -[2619007.954] {Default Queue} wl_pointer#1641.motion(187310641, 26.19921875, 13.80078125) -[2619007.959] {Default Queue} wl_pointer#1673.motion(187310641, 26.19921875, 13.80078125) -[2619007.963] {Default Queue} wl_pointer#1705.motion(187310641, 26.19921875, 13.80078125) -[2619007.968] {Default Queue} wl_pointer#1737.motion(187310641, 26.19921875, 13.80078125) -[2619007.972] {Default Queue} wl_pointer#1762.motion(187310641, 26.19921875, 13.80078125) -[2619007.976] {Default Queue} wl_pointer#1801.motion(187310641, 26.19921875, 13.80078125) -[2619007.980] {Default Queue} wl_pointer#1833.motion(187310641, 26.19921875, 13.80078125) -[2619007.984] {Default Queue} wl_pointer#1865.motion(187310641, 26.19921875, 13.80078125) -[2619007.988] {Default Queue} wl_pointer#1897.motion(187310641, 26.19921875, 13.80078125) -[2619007.992] {Default Queue} wl_pointer#1929.motion(187310641, 26.19921875, 13.80078125) -[2619007.997] {Default Queue} wl_pointer#1961.motion(187310641, 26.19921875, 13.80078125) -[2619008.001] {Default Queue} wl_pointer#1993.motion(187310641, 26.19921875, 13.80078125) -[2619008.005] {Default Queue} wl_pointer#2025.motion(187310641, 26.19921875, 13.80078125) -[2619008.009] {Default Queue} wl_pointer#2057.motion(187310641, 26.19921875, 13.80078125) -[2619008.013] {Default Queue} wl_pointer#2089.motion(187310641, 26.19921875, 13.80078125) -[2619008.017] {Default Queue} wl_pointer#2121.motion(187310641, 26.19921875, 13.80078125) -[2619008.021] {Default Queue} wl_pointer#2153.motion(187310641, 26.19921875, 13.80078125) -[2619008.025] {Default Queue} wl_pointer#2185.motion(187310641, 26.19921875, 13.80078125) -[2619008.029] {Default Queue} wl_pointer#2217.motion(187310641, 26.19921875, 13.80078125) -[2619008.033] {Default Queue} wl_pointer#2249.motion(187310641, 26.19921875, 13.80078125) -[2619008.037] {Default Queue} wl_pointer#2281.motion(187310641, 26.19921875, 13.80078125) -[2619008.041] {Default Queue} wl_pointer#2313.motion(187310641, 26.19921875, 13.80078125) -[2619008.046] {Default Queue} wl_pointer#2345.motion(187310641, 26.19921875, 13.80078125) -[2619008.050] {Default Queue} wl_pointer#2377.motion(187310641, 26.19921875, 13.80078125) -[2619008.054] {Default Queue} wl_pointer#2409.motion(187310641, 26.19921875, 13.80078125) -[2619008.058] {Default Queue} wl_pointer#2441.motion(187310641, 26.19921875, 13.80078125) -[2619008.062] {Default Queue} wl_pointer#2473.motion(187310641, 26.19921875, 13.80078125) -[2619008.066] {Default Queue} wl_pointer#2498.motion(187310641, 26.19921875, 13.80078125) -[2619008.081] {Default Queue} -> wl_buffer#3326.destroy() -[2619008.087] {Default Queue} -> wl_buffer#3325.destroy() -[2619008.091] {Default Queue} -> wl_shm_pool#3324.destroy() -[2619008.095] {Default Queue} -> wl_shm_pool#3323.destroy() -[2619008.100] {Default Queue} -> wl_surface#3131.destroy() -[2619008.144] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3644, fd 575, 640) -[2619008.151] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3643, fd 578, 640) -[2619008.156] {Default Queue} -> wl_shm_pool#3644.create_buffer(new id wl_buffer#3646, 0, 10, 16, 40, 0) -[2619008.161] {Default Queue} -> wl_shm_pool#3643.create_buffer(new id wl_buffer#3645, 0, 10, 16, 40, 0) -[2619008.168] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3612) -[2619008.172] {Default Queue} -> wl_surface#3612.attach(wl_buffer#3646, 0, 0) -[2619008.177] {Default Queue} -> wl_surface#3612.commit() -[2619008.182] {Default Queue} -> wl_surface#3612.attach(wl_buffer#3646, 0, 0) -[2619008.186] {Default Queue} -> wl_surface#3612.commit() -[2619008.190] {Default Queue} wl_pointer#2537.motion(187310641, 26.19921875, 13.80078125) -[2619008.194] {Default Queue} wl_pointer#2569.motion(187310641, 26.19921875, 13.80078125) -[2619008.198] {Default Queue} wl_pointer#2601.motion(187310641, 26.19921875, 13.80078125) -[2619008.203] {Default Queue} wl_pointer#2633.motion(187310641, 26.19921875, 13.80078125) -[2619008.207] {Default Queue} wl_pointer#2665.motion(187310641, 26.19921875, 13.80078125) -[2619008.214] {Default Queue} wl_pointer#2697.motion(187310641, 26.19921875, 13.80078125) -[2619008.221] {Default Queue} wl_pointer#2729.motion(187310641, 26.19921875, 13.80078125) -[2619008.226] {Default Queue} wl_pointer#2761.motion(187310641, 26.19921875, 13.80078125) -[2619008.230] {Default Queue} wl_pointer#2793.motion(187310641, 26.19921875, 13.80078125) -[2619008.234] {Default Queue} wl_pointer#2825.motion(187310641, 26.19921875, 13.80078125) -[2619008.239] {Default Queue} wl_pointer#2857.motion(187310641, 26.19921875, 13.80078125) -[2619008.243] {Default Queue} wl_pointer#2889.motion(187310641, 26.19921875, 13.80078125) -[2619008.247] {Default Queue} wl_pointer#2921.motion(187310641, 26.19921875, 13.80078125) -[2619008.251] {Default Queue} wl_pointer#2953.motion(187310641, 26.19921875, 13.80078125) -[2619008.255] {Default Queue} wl_pointer#2985.motion(187310641, 26.19921875, 13.80078125) -[2619008.259] {Default Queue} wl_pointer#3017.motion(187310641, 26.19921875, 13.80078125) -[2619008.264] {Default Queue} wl_pointer#3049.motion(187310641, 26.19921875, 13.80078125) -[2619008.268] {Default Queue} wl_pointer#3081.motion(187310641, 26.19921875, 13.80078125) -[2619008.272] {Default Queue} wl_pointer#3113.motion(187310641, 26.19921875, 13.80078125) -[2619008.276] {Default Queue} wl_pointer#3145.motion(187310641, 26.19921875, 13.80078125) -[2619008.281] {Default Queue} wl_pointer#3177.motion(187310641, 26.19921875, 13.80078125) -[2619008.285] {Default Queue} wl_pointer#3209.motion(187310641, 26.19921875, 13.80078125) -[2619008.289] {Default Queue} wl_pointer#3241.motion(187310641, 26.19921875, 13.80078125) -[2619008.293] {Default Queue} wl_pointer#3273.motion(187310641, 26.19921875, 13.80078125) -[2619008.298] {Default Queue} wl_pointer#3305.motion(187310641, 26.19921875, 13.80078125) -[2619008.302] {Default Queue} wl_pointer#3337.motion(187310641, 26.19921875, 13.80078125) -[2619008.306] {Default Queue} wl_pointer#3369.motion(187310641, 26.19921875, 13.80078125) -[2619008.310] {Default Queue} wl_pointer#3401.motion(187310641, 26.19921875, 13.80078125) -[2619008.314] {Default Queue} wl_pointer#3433.motion(187310641, 26.19921875, 13.80078125) -[2619008.318] {Default Queue} wl_pointer#3465.motion(187310641, 26.19921875, 13.80078125) -[2619008.322] {Default Queue} wl_pointer#3497.motion(187310641, 26.19921875, 13.80078125) -[2619008.327] {Default Queue} wl_pointer#3529.motion(187310641, 26.19921875, 13.80078125) -[2619008.331] {Default Queue} wl_pointer#3561.motion(187310641, 26.19921875, 13.80078125) -[2619008.335] {Default Queue} wl_pointer#3593.motion(187310641, 26.19921875, 13.80078125) -[2619008.339] {Default Queue} wl_pointer#3625.motion(187310641, 26.19921875, 13.80078125) -[2619008.343] {Default Queue} wl_pointer#3657.motion(187310641, 26.19921875, 13.80078125) -[2619008.347] {Default Queue} wl_pointer#3695.motion(187310641, 26.19921875, 13.80078125) -[2619008.351] {Default Queue} wl_pointer#24.motion(187310642, 25.80078125, 13.80078125) -[2619008.355] {Default Queue} wl_pointer#81.motion(187310642, 25.80078125, 13.80078125) -[2619008.360] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619008.365] {Default Queue} wl_pointer#105.motion(187310642, 25.80078125, 13.80078125) -[2619008.369] {Default Queue} wl_pointer#137.motion(187310642, 25.80078125, 13.80078125) -[2619008.373] {Default Queue} wl_pointer#169.motion(187310642, 25.80078125, 13.80078125) -[2619008.377] {Default Queue} wl_pointer#201.motion(187310642, 25.80078125, 13.80078125) -[2619008.382] {Default Queue} wl_pointer#233.motion(187310642, 25.80078125, 13.80078125) -[2619008.386] {Default Queue} wl_pointer#265.motion(187310642, 25.80078125, 13.80078125) -[2619008.390] {Default Queue} wl_pointer#297.motion(187310642, 25.80078125, 13.80078125) -[2619008.394] {Default Queue} wl_pointer#329.motion(187310642, 25.80078125, 13.80078125) -[2619008.399] {Default Queue} wl_pointer#361.motion(187310642, 25.80078125, 13.80078125) -[2619008.403] {Default Queue} wl_pointer#393.motion(187310642, 25.80078125, 13.80078125) -[2619008.407] {Default Queue} wl_pointer#425.motion(187310642, 25.80078125, 13.80078125) -[2619008.414] {Default Queue} wl_pointer#457.motion(187310642, 25.80078125, 13.80078125) -[2619008.419] {Default Queue} wl_pointer#489.motion(187310642, 25.80078125, 13.80078125) -[2619008.424] {Default Queue} wl_pointer#521.motion(187310642, 25.80078125, 13.80078125) -[2619008.428] {Default Queue} wl_pointer#553.motion(187310642, 25.80078125, 13.80078125) -[2619008.432] {Default Queue} wl_pointer#585.motion(187310642, 25.80078125, 13.80078125) -[2619008.437] {Default Queue} wl_pointer#617.motion(187310642, 25.80078125, 13.80078125) -[2619008.441] {Default Queue} wl_pointer#649.motion(187310642, 25.80078125, 13.80078125) -[2619008.446] {Default Queue} wl_pointer#681.motion(187310642, 25.80078125, 13.80078125) -[2619008.450] {Default Queue} wl_pointer#713.motion(187310642, 25.80078125, 13.80078125) -[2619008.454] {Default Queue} wl_pointer#745.motion(187310642, 25.80078125, 13.80078125) -[2619008.458] {Default Queue} wl_pointer#777.motion(187310642, 25.80078125, 13.80078125) -[2619008.462] {Default Queue} wl_pointer#809.motion(187310642, 25.80078125, 13.80078125) -[2619008.466] {Default Queue} wl_pointer#841.motion(187310642, 25.80078125, 13.80078125) -[2619008.470] {Default Queue} wl_pointer#873.motion(187310642, 25.80078125, 13.80078125) -[2619008.474] {Default Queue} wl_pointer#905.motion(187310642, 25.80078125, 13.80078125) -[2619008.478] {Default Queue} wl_pointer#937.motion(187310642, 25.80078125, 13.80078125) -[2619008.482] {Default Queue} wl_pointer#969.motion(187310642, 25.80078125, 13.80078125) -[2619008.486] {Default Queue} wl_pointer#1001.motion(187310642, 25.80078125, 13.80078125) -[2619008.490] {Default Queue} wl_pointer#1033.motion(187310642, 25.80078125, 13.80078125) -[2619008.494] {Default Queue} wl_pointer#1065.motion(187310642, 25.80078125, 13.80078125) -[2619008.498] {Default Queue} wl_pointer#1097.motion(187310642, 25.80078125, 13.80078125) -[2619008.502] {Default Queue} wl_pointer#1129.motion(187310642, 25.80078125, 13.80078125) -[2619008.507] {Default Queue} wl_pointer#1161.motion(187310642, 25.80078125, 13.80078125) -[2619008.511] {Default Queue} wl_pointer#1193.motion(187310642, 25.80078125, 13.80078125) -[2619008.515] {Default Queue} wl_pointer#1225.motion(187310642, 25.80078125, 13.80078125) -[2619008.519] {Default Queue} wl_pointer#1257.motion(187310642, 25.80078125, 13.80078125) -[2619008.523] {Default Queue} wl_pointer#1289.motion(187310642, 25.80078125, 13.80078125) -[2619008.527] {Default Queue} wl_pointer#1321.motion(187310642, 25.80078125, 13.80078125) -[2619008.531] {Default Queue} wl_pointer#1353.motion(187310642, 25.80078125, 13.80078125) -[2619008.535] {Default Queue} wl_pointer#1385.motion(187310642, 25.80078125, 13.80078125) -[2619008.539] {Default Queue} wl_pointer#1417.motion(187310642, 25.80078125, 13.80078125) -[2619008.543] {Default Queue} wl_pointer#1449.motion(187310642, 25.80078125, 13.80078125) -[2619008.547] {Default Queue} wl_pointer#1481.motion(187310642, 25.80078125, 13.80078125) -[2619008.551] {Default Queue} wl_pointer#1513.motion(187310642, 25.80078125, 13.80078125) -[2619008.555] {Default Queue} wl_pointer#1545.motion(187310642, 25.80078125, 13.80078125) -[2619008.560] {Default Queue} wl_pointer#1577.motion(187310642, 25.80078125, 13.80078125) -[2619008.564] {Default Queue} wl_pointer#1609.motion(187310642, 25.80078125, 13.80078125) -[2619008.568] {Default Queue} wl_pointer#1641.motion(187310642, 25.80078125, 13.80078125) -[2619008.572] {Default Queue} wl_pointer#1673.motion(187310642, 25.80078125, 13.80078125) -[2619008.576] {Default Queue} wl_pointer#1705.motion(187310642, 25.80078125, 13.80078125) -[2619008.580] {Default Queue} wl_pointer#1737.motion(187310642, 25.80078125, 13.80078125) -[2619008.585] {Default Queue} wl_pointer#1762.motion(187310642, 25.80078125, 13.80078125) -[2619008.590] {Default Queue} wl_pointer#1801.motion(187310642, 25.80078125, 13.80078125) -[2619008.594] {Default Queue} wl_pointer#1833.motion(187310642, 25.80078125, 13.80078125) -[2619008.599] {Default Queue} wl_pointer#1865.motion(187310642, 25.80078125, 13.80078125) -[2619008.603] {Default Queue} wl_pointer#1897.motion(187310642, 25.80078125, 13.80078125) -[2619008.610] {Default Queue} wl_pointer#1929.motion(187310642, 25.80078125, 13.80078125) -[2619008.616] {Default Queue} wl_pointer#1961.motion(187310642, 25.80078125, 13.80078125) -[2619008.620] {Default Queue} wl_pointer#1993.motion(187310642, 25.80078125, 13.80078125) -[2619008.624] {Default Queue} wl_pointer#2025.motion(187310642, 25.80078125, 13.80078125) -[2619008.628] {Default Queue} wl_pointer#2057.motion(187310642, 25.80078125, 13.80078125) -[2619008.632] {Default Queue} wl_pointer#2089.motion(187310642, 25.80078125, 13.80078125) -[2619008.636] {Default Queue} wl_pointer#2121.motion(187310642, 25.80078125, 13.80078125) -[2619008.640] {Default Queue} wl_pointer#2153.motion(187310642, 25.80078125, 13.80078125) -[2619008.645] {Default Queue} wl_pointer#2185.motion(187310642, 25.80078125, 13.80078125) -[2619008.655] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 74) -[2619008.659] {Default Queue} -> wl_region#767.add(-484, -73, 467, 74) -[2619008.664] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2619008.668] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2619008.764] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 74) -[2619008.770] {Default Queue} -> wl_region#767.add(-484, -73, 467, 74) -[2619008.774] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2619008.778] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2619008.784] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2619008.789] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2619008.869] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 74) -[2619008.874] {Default Queue} -> wl_region#767.add(-484, -73, 467, 74) -[2619008.878] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2619008.882] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2619008.887] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2619008.891] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2619008.896] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) -[2619008.900] {Default Queue} -> wl_surface#743.commit() -[2619008.904] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) -[2619008.908] {Default Queue} -> wl_surface#743.commit() -[2619008.915] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) -[2619008.918] {Default Queue} -> wl_surface#743.commit() -[2619008.924] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) -[2619008.928] {Default Queue} -> wl_surface#775.commit() -[2619009.993] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) -[2619009.999] {Default Queue} -> wl_surface#775.commit() -[2619010.008] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 74) -[2619010.012] {Default Queue} -> wl_region#799.add(-484, -73, 467, 74) -[2619010.016] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2619010.020] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2619010.108] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 74) -[2619010.113] {Default Queue} -> wl_region#799.add(-484, -73, 467, 74) -[2619010.117] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2619010.121] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2619010.126] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2619010.130] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2619010.200] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 74) -[2619010.205] {Default Queue} -> wl_region#799.add(-484, -73, 467, 74) -[2619010.210] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2619010.214] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2619010.218] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2619010.222] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2619010.227] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) -[2619010.231] {Default Queue} -> wl_surface#775.commit() -[2619010.235] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) -[2619010.241] {Default Queue} -> wl_surface#775.commit() -[2619010.249] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) -[2619010.253] {Default Queue} -> wl_surface#775.commit() -[2619010.258] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) -[2619010.262] {Default Queue} -> wl_surface#807.commit() -[2619011.324] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) -[2619011.329] {Default Queue} -> wl_surface#807.commit() -[2619011.336] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 74) -[2619011.340] {Default Queue} -> wl_region#831.add(-484, -73, 467, 74) -[2619011.344] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2619011.348] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2619011.431] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 74) -[2619011.436] {Default Queue} -> wl_region#831.add(-484, -73, 467, 74) -[2619011.440] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2619011.444] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2619011.449] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2619011.453] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2619011.520] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 74) -[2619011.525] {Default Queue} -> wl_region#831.add(-484, -73, 467, 74) -[2619011.529] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2619011.533] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2619011.538] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2619011.542] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2619011.547] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) -[2619011.551] {Default Queue} -> wl_surface#807.commit() -[2619011.555] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) -[2619011.559] {Default Queue} -> wl_surface#807.commit() -[2619011.564] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) -[2619011.568] {Default Queue} -> wl_surface#807.commit() -[2619011.573] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) -[2619011.577] {Default Queue} -> wl_surface#839.commit() -[2619011.689] {Default Queue} wl_pointer#2217.motion(187310642, 25.80078125, 13.80078125) -[2619011.695] {Default Queue} wl_pointer#2249.motion(187310642, 25.80078125, 13.80078125) -[2619011.700] {Default Queue} wl_pointer#2281.motion(187310642, 25.80078125, 13.80078125) -[2619011.705] {Default Queue} wl_pointer#2313.motion(187310642, 25.80078125, 13.80078125) -[2619011.709] {Default Queue} wl_pointer#2345.motion(187310642, 25.80078125, 13.80078125) -[2619011.713] {Default Queue} wl_pointer#2377.motion(187310642, 25.80078125, 13.80078125) -[2619011.717] {Default Queue} wl_pointer#2409.motion(187310642, 25.80078125, 13.80078125) -[2619011.721] {Default Queue} wl_pointer#2441.motion(187310642, 25.80078125, 13.80078125) -[2619011.725] {Default Queue} wl_pointer#2473.motion(187310642, 25.80078125, 13.80078125) -[2619011.729] {Default Queue} wl_pointer#2498.motion(187310642, 25.80078125, 13.80078125) -[2619011.741] {Default Queue} -> wl_buffer#3646.destroy() -[2619011.746] {Default Queue} -> wl_buffer#3645.destroy() -[2619011.750] {Default Queue} -> wl_shm_pool#3644.destroy() -[2619011.754] {Default Queue} -> wl_shm_pool#3643.destroy() -[2619011.758] {Default Queue} -> wl_surface#3612.destroy() -[2619011.795] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3611, fd 575, 640) -[2619011.801] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3614, fd 578, 640) -[2619011.806] {Default Queue} -> wl_shm_pool#3611.create_buffer(new id wl_buffer#3613, 0, 10, 16, 40, 0) -[2619011.810] {Default Queue} -> wl_shm_pool#3614.create_buffer(new id wl_buffer#1276, 0, 10, 16, 40, 0) -[2619011.817] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3099) -[2619011.821] {Default Queue} -> wl_surface#3099.attach(wl_buffer#3613, 0, 0) -[2619011.825] {Default Queue} -> wl_surface#3099.commit() -[2619011.833] {Default Queue} -> wl_surface#3099.attach(wl_buffer#3613, 0, 0) -[2619011.839] {Default Queue} -> wl_surface#3099.commit() -[2619011.844] {Default Queue} wl_pointer#2537.motion(187310642, 25.80078125, 13.80078125) -[2619011.848] {Default Queue} wl_pointer#2569.motion(187310642, 25.80078125, 13.80078125) -[2619011.852] {Default Queue} wl_pointer#2601.motion(187310642, 25.80078125, 13.80078125) -[2619011.856] {Default Queue} wl_pointer#2633.motion(187310642, 25.80078125, 13.80078125) -[2619011.867] {Default Queue} wl_pointer#2665.motion(187310642, 25.80078125, 13.80078125) -[2619011.871] {Default Queue} wl_pointer#2697.motion(187310642, 25.80078125, 13.80078125) -[2619011.875] {Default Queue} wl_pointer#2729.motion(187310642, 25.80078125, 13.80078125) -[2619011.879] {Default Queue} wl_pointer#2761.motion(187310642, 25.80078125, 13.80078125) -[2619011.884] {Default Queue} wl_pointer#2793.motion(187310642, 25.80078125, 13.80078125) -[2619011.888] {Default Queue} wl_pointer#2825.motion(187310642, 25.80078125, 13.80078125) -[2619011.892] {Default Queue} wl_pointer#2857.motion(187310642, 25.80078125, 13.80078125) -[2619011.896] {Default Queue} wl_pointer#2889.motion(187310642, 25.80078125, 13.80078125) -[2619011.900] {Default Queue} wl_pointer#2921.motion(187310642, 25.80078125, 13.80078125) -[2619011.904] {Default Queue} wl_pointer#2953.motion(187310642, 25.80078125, 13.80078125) -[2619011.908] {Default Queue} wl_pointer#2985.motion(187310642, 25.80078125, 13.80078125) -[2619011.913] {Default Queue} wl_pointer#3017.motion(187310642, 25.80078125, 13.80078125) -[2619011.917] {Default Queue} wl_pointer#3049.motion(187310642, 25.80078125, 13.80078125) -[2619011.921] {Default Queue} wl_pointer#3081.motion(187310642, 25.80078125, 13.80078125) -[2619011.926] {Default Queue} wl_pointer#3113.motion(187310642, 25.80078125, 13.80078125) -[2619011.930] {Default Queue} wl_pointer#3145.motion(187310642, 25.80078125, 13.80078125) -[2619011.934] {Default Queue} wl_pointer#3177.motion(187310642, 25.80078125, 13.80078125) -[2619011.938] {Default Queue} wl_pointer#3209.motion(187310642, 25.80078125, 13.80078125) -[2619011.942] {Default Queue} wl_pointer#3241.motion(187310642, 25.80078125, 13.80078125) -[2619011.946] {Default Queue} wl_pointer#3273.motion(187310642, 25.80078125, 13.80078125) -[2619011.950] {Default Queue} wl_pointer#3305.motion(187310642, 25.80078125, 13.80078125) -[2619011.954] {Default Queue} wl_pointer#3337.motion(187310642, 25.80078125, 13.80078125) -[2619011.959] {Default Queue} wl_pointer#3369.motion(187310642, 25.80078125, 13.80078125) -[2619011.963] {Default Queue} wl_pointer#3401.motion(187310642, 25.80078125, 13.80078125) -[2619011.967] {Default Queue} wl_pointer#3433.motion(187310642, 25.80078125, 13.80078125) -[2619011.971] {Default Queue} wl_pointer#3465.motion(187310642, 25.80078125, 13.80078125) -[2619011.975] {Default Queue} wl_pointer#3497.motion(187310642, 25.80078125, 13.80078125) -[2619011.980] {Default Queue} wl_pointer#3529.motion(187310642, 25.80078125, 13.80078125) -[2619011.984] {Default Queue} wl_pointer#3561.motion(187310642, 25.80078125, 13.80078125) -[2619011.988] {Default Queue} wl_pointer#3593.motion(187310642, 25.80078125, 13.80078125) -[2619011.992] {Default Queue} wl_pointer#3625.motion(187310642, 25.80078125, 13.80078125) -[2619011.996] {Default Queue} wl_pointer#3657.motion(187310642, 25.80078125, 13.80078125) -[2619012.000] {Default Queue} wl_pointer#3695.motion(187310642, 25.80078125, 13.80078125) -[2619012.010] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 74) -[2619012.014] {Default Queue} -> wl_region#863.add(-484, -73, 467, 74) -[2619012.019] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2619012.022] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2619012.114] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 74) -[2619012.119] {Default Queue} -> wl_region#863.add(-484, -73, 467, 74) -[2619012.123] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2619012.127] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2619012.136] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2619012.142] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2619012.211] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 74) -[2619012.216] {Default Queue} -> wl_region#863.add(-484, -73, 467, 74) -[2619012.220] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2619012.224] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2619012.230] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2619012.236] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2619012.243] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) -[2619012.248] {Default Queue} -> wl_surface#839.commit() -[2619012.252] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) -[2619012.256] {Default Queue} -> wl_surface#839.commit() -[2619012.262] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) -[2619012.266] {Default Queue} -> wl_surface#839.commit() -[2619012.272] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) -[2619012.277] {Default Queue} -> wl_surface#679.commit() -[2619013.339] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) -[2619013.346] {Default Queue} -> wl_surface#679.commit() -[2619013.353] {Default Queue} -> wl_region#703.subtract(0, 0, 485, 74) -[2619013.357] {Default Queue} -> wl_region#703.add(-484, -73, 467, 74) -[2619013.361] {Default Queue} -> wl_surface#679.set_opaque_region(wl_region#704) -[2619013.365] {Default Queue} -> wl_surface#679.set_input_region(wl_region#703) -[2619013.370] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) -[2619013.374] {Default Queue} -> wl_surface#679.commit() -[2619013.378] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) -[2619013.382] {Default Queue} -> wl_surface#679.commit() -[2619013.387] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) -[2619013.392] {Default Queue} -> wl_surface#679.commit() -[2619013.397] {Default Queue} -> wl_region#479.subtract(0, 0, 2, 2) -[2619013.402] {Default Queue} -> wl_region#511.subtract(0, 0, 484, 73) -[2619013.406] {Default Queue} -> wl_region#511.add(-483, -72, 484, 73) -[2619013.410] {Default Queue} -> wl_surface#487.set_opaque_region(wl_region#512) -[2619013.414] {Default Queue} -> wl_surface#487.set_input_region(wl_region#511) -[2619013.421] {Default Queue} -> wl_region#703.subtract(0, 0, 485, 74) -[2619013.425] {Default Queue} -> wl_region#703.add(-484, -73, 467, 74) -[2619013.428] {Default Queue} -> wl_surface#679.set_opaque_region(wl_region#704) -[2619013.432] {Default Queue} -> wl_surface#679.set_input_region(wl_region#703) -[2619013.437] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2619013.441] {Default Queue} -> wl_region#479.subtract(0, 0, 485, 54) -[2619013.445] {Default Queue} -> wl_region#479.add(-483, -72, 484, 53) -[2619013.449] {Default Queue} -> wl_surface#455.set_opaque_region(wl_region#480) -[2619013.453] {Default Queue} -> wl_surface#455.set_input_region(wl_region#479) -[2619013.457] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2619013.461] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2619013.465] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2619013.469] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2619013.473] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2619013.476] {Default Queue} -> wl_surface#487.damage(0, 0, 16, 2) -[2619013.481] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2619013.485] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2619013.489] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2619013.493] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2619013.497] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2619013.501] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2619013.505] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2619013.520] {Default Queue} -> wl_buffer#477.destroy() -[2619013.526] {Default Queue} -> wl_buffer#478.destroy() -[2619013.530] {Default Queue} -> wl_shm_pool#475.destroy() -[2619013.537] {Default Queue} -> wl_shm_pool#476.destroy() -[2619013.580] {Default Queue} -> wl_shm#463.create_pool(new id wl_shm_pool#3100, fd 575, 16) -[2619013.586] {Default Queue} -> wl_shm#463.create_pool(new id wl_shm_pool#3101, fd 578, 16) -[2619013.591] {Default Queue} -> wl_shm_pool#3100.create_buffer(new id wl_buffer#3102, 0, 2, 2, 8, 0) -[2619013.595] {Default Queue} -> wl_shm_pool#3101.create_buffer(new id wl_buffer#2940, 0, 2, 2, 8, 0) -[2619013.602] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) -[2619013.606] {Default Queue} -> wl_surface#455.commit() -[2619013.611] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) -[2619013.615] {Default Queue} -> wl_surface#455.commit() -[2619013.622] {Default Queue} -> wl_region#479.subtract(0, 0, 485, 74) -[2619013.626] {Default Queue} -> wl_region#479.add(-483, -72, 484, 73) -[2619013.630] {Default Queue} -> wl_surface#455.set_opaque_region(wl_region#480) -[2619013.634] {Default Queue} -> wl_surface#455.set_input_region(wl_region#479) -[2619013.639] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) -[2619013.643] {Default Queue} -> wl_surface#455.commit() -[2619013.648] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) -[2619013.653] {Default Queue} -> wl_surface#455.commit() -[2619014.716] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) -[2619014.722] {Default Queue} -> wl_surface#455.commit() -[2619014.727] {Default Queue} -> wl_region#479.subtract(0, 0, 485, 74) -[2619014.731] {Default Queue} -> wl_region#479.add(-483, -72, 484, 73) -[2619014.735] {Default Queue} -> wl_surface#455.set_opaque_region(wl_region#480) -[2619014.739] {Default Queue} -> wl_surface#455.set_input_region(wl_region#479) -[2619014.743] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) -[2619014.747] {Default Queue} -> wl_surface#455.commit() -[2619014.751] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) -[2619014.755] {Default Queue} -> wl_surface#455.commit() -[2619014.760] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) -[2619014.764] {Default Queue} -> wl_surface#455.commit() -[2619014.770] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) -[2619014.774] {Default Queue} -> wl_surface#423.commit() -[2619015.835] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) -[2619015.840] {Default Queue} -> wl_surface#423.commit() -[2619015.846] {Default Queue} -> wl_region#447.subtract(0, 0, 485, 74) -[2619015.850] {Default Queue} -> wl_region#447.add(-483, -52, 485, 54) -[2619015.854] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) -[2619015.858] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) -[2619015.867] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) -[2619015.870] {Default Queue} -> wl_surface#423.commit() -[2619015.874] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) -[2619015.878] {Default Queue} -> wl_surface#423.commit() -[2619015.883] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) -[2619015.887] {Default Queue} -> wl_surface#423.commit() -[2619015.891] {Default Queue} -> wl_region#383.subtract(0, 0, 109, 161) -[2619015.898] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 69) -[2619015.902] {Default Queue} -> wl_region#415.add(-480, -49, 482, 69) -[2619015.906] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2619015.910] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2619015.986] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 69) -[2619015.991] {Default Queue} -> wl_region#415.add(-480, -49, 482, 69) -[2619015.995] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2619015.999] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2619016.006] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2619016.010] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2619016.069] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 69) -[2619016.074] {Default Queue} -> wl_region#415.add(-480, -49, 482, 69) -[2619016.082] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2619016.088] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2619016.094] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2619016.098] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2619016.103] {Default Queue} -> wl_region#447.subtract(0, 0, 485, 74) -[2619016.108] {Default Queue} -> wl_region#447.add(-483, -52, 485, 54) -[2619016.112] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) -[2619016.116] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) -[2619016.121] {Default Queue} -> wl_surface#359.damage(0, 0, 109, 161) -[2619016.125] {Default Queue} -> wl_region#383.subtract(0, 0, 592, 213) -[2619016.129] {Default Queue} -> wl_region#383.add(-480, -49, 589, 210) -[2619016.133] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) -[2619016.137] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) -[2619016.140] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2619016.145] {Default Queue} -> wl_surface#519.damage(0, 0, 2, 2) -[2619016.149] {Default Queue} -> wl_surface#551.damage(0, 0, 2, 2) -[2619016.153] {Default Queue} -> wl_surface#583.damage(0, 0, 2, 2) -[2619016.157] {Default Queue} -> wl_surface#615.damage(0, 0, 2, 2) -[2619016.161] {Default Queue} -> wl_surface#647.damage(0, 0, 2, 2) -[2619016.165] {Default Queue} -> wl_surface#487.damage(0, 0, 16, 2) -[2619016.169] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2619016.173] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2619016.177] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2619016.181] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2619016.185] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2619016.189] {Default Queue} -> wl_surface#679.damage(0, 0, 2, 2) -[2619016.193] {Default Queue} -> wl_surface#455.damage(0, 0, 2, 2) -[2619016.197] {Default Queue} -> wl_surface#423.damage(0, 0, 2, 2) -[2619016.201] {Default Queue} -> wl_surface#359.damage(0, 0, 109, 161) -[2619016.214] {Default Queue} -> wl_buffer#190.destroy() -[2619016.219] {Default Queue} -> wl_buffer#189.destroy() -[2619016.223] {Default Queue} -> wl_shm_pool#188.destroy() -[2619016.227] {Default Queue} -> wl_shm_pool#187.destroy() -[2619016.308] {Default Queue} -> wl_shm#367.create_pool(new id wl_shm_pool#2843, fd 575, 70196) -[2619016.315] {Default Queue} -> wl_shm#367.create_pool(new id wl_shm_pool#2844, fd 578, 70196) -[2619016.319] {Default Queue} -> wl_shm_pool#2843.create_buffer(new id wl_buffer#2845, 0, 109, 161, 436, 0) -[2619016.324] {Default Queue} -> wl_shm_pool#2844.create_buffer(new id wl_buffer#2846, 0, 109, 161, 436, 0) -[2619016.345] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) -[2619016.350] {Default Queue} -> wl_surface#359.commit() -[2619016.371] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) -[2619016.375] {Default Queue} -> wl_surface#359.commit() -[2619016.383] {Default Queue} -> wl_region#383.subtract(0, 0, 592, 213) -[2619016.388] {Default Queue} -> wl_region#383.add(-480, -49, 589, 210) -[2619016.392] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) -[2619016.396] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) -[2619016.403] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) -[2619016.407] {Default Queue} -> wl_surface#359.commit() -[2619016.414] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) -[2619016.420] {Default Queue} -> wl_surface#359.commit() -[2619017.484] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) -[2619017.489] {Default Queue} -> wl_surface#359.commit() -[2619017.496] {Default Queue} -> wl_region#383.subtract(0, 0, 592, 213) -[2619017.500] {Default Queue} -> wl_region#383.add(-480, -49, 589, 210) -[2619017.504] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) -[2619017.508] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) -[2619017.514] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) -[2619017.522] {Default Queue} -> wl_surface#359.commit() -[2619017.530] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) -[2619017.534] {Default Queue} -> wl_surface#359.commit() -[2619017.540] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) -[2619017.544] {Default Queue} -> wl_surface#359.commit() -[2619017.556] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) -[2619017.561] {Default Queue} -> wl_surface#327.commit() -[2619018.625] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) -[2619018.630] {Default Queue} -> wl_surface#327.commit() -[2619018.644] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) -[2619018.649] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) -[2619018.653] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2619018.657] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2619018.665] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) -[2619018.669] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) -[2619018.674] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2619018.678] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2619018.684] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) -[2619018.688] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) -[2619018.692] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2619018.695] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2619018.701] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) -[2619018.705] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) -[2619018.709] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2619018.713] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2619018.720] {Default Queue} -> wl_region#351.subtract(0, 0, 595, 216) -[2619018.724] {Default Queue} -> wl_region#351.add(-20, -49, 135, 216) -[2619018.728] {Default Queue} -> wl_surface#327.set_opaque_region(wl_region#352) -[2619018.732] {Default Queue} -> wl_surface#327.set_input_region(wl_region#351) -[2619018.739] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) -[2619018.743] {Default Queue} -> wl_surface#327.commit() -[2619018.748] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) -[2619018.752] {Default Queue} -> wl_surface#327.commit() -[2619018.758] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) -[2619018.762] {Default Queue} -> wl_surface#327.commit() -[2619018.810] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) -[2619018.815] {Default Queue} -> wl_surface#103.commit() -[2619019.873] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) -[2619019.880] {Default Queue} -> wl_surface#103.commit() -[2619019.948] {Default Queue} -> wl_region#127.subtract(0, 0, 576, 167) -[2619019.965] {Default Queue} -> wl_region#127.add(0, 0, 576, 167) -[2619019.971] {Default Queue} -> wl_surface#103.set_opaque_region(wl_region#128) -[2619019.975] {Default Queue} -> wl_surface#103.set_input_region(wl_region#127) -[2619020.069] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) -[2619020.075] {Default Queue} -> wl_surface#103.commit() -[2619020.088] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) -[2619020.093] {Default Queue} -> wl_surface#103.commit() -[2619020.109] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) -[2619020.115] {Default Queue} -> wl_surface#103.commit() -[2619020.123] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) -[2619020.127] {Default Queue} -> wl_surface#967.commit() -[2619021.192] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) -[2619021.204] {Default Queue} -> wl_surface#967.commit() -[2619021.217] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 236) -[2619021.222] {Default Queue} -> wl_region#991.add(-20, -216, 22, 236) -[2619021.226] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2619021.231] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2619021.343] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 236) -[2619021.353] {Default Queue} -> wl_region#991.add(-20, -216, 22, 236) -[2619021.357] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2619021.361] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2619021.369] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2619021.375] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2619021.444] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 236) -[2619021.449] {Default Queue} -> wl_region#991.add(-20, -216, 22, 236) -[2619021.453] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2619021.456] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2619021.462] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2619021.466] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2619021.471] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) -[2619021.475] {Default Queue} -> wl_surface#967.commit() -[2619021.479] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) -[2619021.483] {Default Queue} -> wl_surface#967.commit() -[2619021.489] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) -[2619021.493] {Default Queue} -> wl_surface#967.commit() -[2619021.500] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) -[2619021.504] {Default Queue} -> wl_surface#1095.commit() -[2619022.567] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) -[2619022.573] {Default Queue} -> wl_surface#1095.commit() -[2619022.581] {Default Queue} -> wl_region#1119.subtract(0, 0, 24, 240) -[2619022.585] {Default Queue} -> wl_region#1119.add(-23, -239, 24, 240) -[2619022.589] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2619022.593] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2619022.601] {Default Queue} -> wl_region#1119.subtract(0, 0, 24, 240) -[2619022.606] {Default Queue} -> wl_region#1119.add(-23, -239, 24, 240) -[2619022.609] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2619022.613] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2619022.622] {Default Queue} -> wl_region#1119.subtract(0, 0, 24, 240) -[2619022.626] {Default Queue} -> wl_region#1119.add(-23, -239, 24, 240) -[2619022.629] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2619022.633] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2619022.638] {Default Queue} -> wl_region#1119.subtract(0, 0, 24, 240) -[2619022.642] {Default Queue} -> wl_region#1119.add(-23, -239, 24, 240) -[2619022.646] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2619022.649] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2619022.653] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) -[2619022.657] {Default Queue} -> wl_surface#1095.commit() -[2619022.661] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) -[2619022.665] {Default Queue} -> wl_surface#1095.commit() -[2619022.670] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) -[2619022.674] {Default Queue} -> wl_surface#1095.commit() -[2619022.680] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) -[2619022.683] {Default Queue} -> wl_surface#1127.commit() -[2619023.748] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) -[2619023.760] {Default Queue} -> wl_surface#1127.commit() -[2619023.770] {Default Queue} -> wl_region#1151.subtract(0, 0, 24, 240) -[2619023.774] {Default Queue} -> wl_region#1151.add(-23, -239, 24, 240) -[2619023.779] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2619023.782] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2619023.791] {Default Queue} -> wl_region#1151.subtract(0, 0, 24, 240) -[2619023.796] {Default Queue} -> wl_region#1151.add(-23, -239, 24, 240) -[2619023.800] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2619023.808] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2619023.817] {Default Queue} -> wl_region#1151.subtract(0, 0, 24, 240) -[2619023.822] {Default Queue} -> wl_region#1151.add(-23, -239, 24, 240) -[2619023.825] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2619023.829] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2619023.834] {Default Queue} -> wl_region#1151.subtract(0, 0, 24, 240) -[2619023.838] {Default Queue} -> wl_region#1151.add(-23, -239, 24, 240) -[2619023.842] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2619023.846] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2619023.850] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) -[2619023.854] {Default Queue} -> wl_surface#1127.commit() -[2619023.857] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) -[2619023.869] {Default Queue} -> wl_surface#1127.commit() -[2619023.875] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) -[2619023.879] {Default Queue} -> wl_surface#1127.commit() -[2619023.885] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) -[2619023.889] {Default Queue} -> wl_surface#1159.commit() -[2619024.953] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) -[2619024.964] {Default Queue} -> wl_surface#1159.commit() -[2619024.974] {Default Queue} -> wl_region#1183.subtract(0, 0, 24, 240) -[2619024.978] {Default Queue} -> wl_region#1183.add(-23, -239, 24, 240) -[2619024.983] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2619024.987] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2619024.995] {Default Queue} -> wl_region#1183.subtract(0, 0, 24, 240) -[2619025.000] {Default Queue} -> wl_region#1183.add(-23, -239, 24, 240) -[2619025.004] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2619025.007] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2619025.014] {Default Queue} -> wl_region#1183.subtract(0, 0, 24, 240) -[2619025.018] {Default Queue} -> wl_region#1183.add(-23, -239, 24, 240) -[2619025.022] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2619025.025] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2619025.030] {Default Queue} -> wl_region#1183.subtract(0, 0, 24, 240) -[2619025.034] {Default Queue} -> wl_region#1183.add(-23, -239, 24, 240) -[2619025.037] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2619025.041] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2619025.045] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) -[2619025.049] {Default Queue} -> wl_surface#1159.commit() -[2619025.053] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) -[2619025.057] {Default Queue} -> wl_surface#1159.commit() -[2619025.063] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) -[2619025.067] {Default Queue} -> wl_surface#1159.commit() -[2619025.072] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) -[2619025.076] {Default Queue} -> wl_surface#1191.commit() -[2619026.138] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) -[2619026.143] {Default Queue} -> wl_surface#1191.commit() -[2619026.149] {Default Queue} -> wl_region#1215.subtract(0, 0, 24, 240) -[2619026.153] {Default Queue} -> wl_region#1215.add(-23, -239, 24, 240) -[2619026.157] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2619026.161] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2619026.167] {Default Queue} -> wl_region#1215.subtract(0, 0, 24, 240) -[2619026.171] {Default Queue} -> wl_region#1215.add(-23, -239, 24, 240) -[2619026.175] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2619026.179] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2619026.184] {Default Queue} -> wl_region#1215.subtract(0, 0, 24, 240) -[2619026.188] {Default Queue} -> wl_region#1215.add(-23, -239, 24, 240) -[2619026.196] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2619026.202] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2619026.207] {Default Queue} -> wl_region#1215.subtract(0, 0, 24, 240) -[2619026.211] {Default Queue} -> wl_region#1215.add(-23, -239, 24, 240) -[2619026.215] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2619026.218] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2619026.222] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) -[2619026.226] {Default Queue} -> wl_surface#1191.commit() -[2619026.230] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) -[2619026.234] {Default Queue} -> wl_surface#1191.commit() -[2619026.239] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) -[2619026.243] {Default Queue} -> wl_surface#1191.commit() -[2619026.248] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) -[2619026.252] {Default Queue} -> wl_surface#1223.commit() -[2619027.315] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) -[2619027.327] {Default Queue} -> wl_surface#1223.commit() -[2619027.337] {Default Queue} -> wl_region#1247.subtract(0, 0, 24, 240) -[2619027.341] {Default Queue} -> wl_region#1247.add(-23, -239, 24, 240) -[2619027.345] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2619027.349] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2619027.358] {Default Queue} -> wl_region#1247.subtract(0, 0, 24, 240) -[2619027.362] {Default Queue} -> wl_region#1247.add(-23, -239, 24, 240) -[2619027.366] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2619027.370] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2619027.376] {Default Queue} -> wl_region#1247.subtract(0, 0, 24, 240) -[2619027.380] {Default Queue} -> wl_region#1247.add(-23, -239, 24, 240) -[2619027.384] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2619027.387] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2619027.392] {Default Queue} -> wl_region#1247.subtract(0, 0, 24, 240) -[2619027.396] {Default Queue} -> wl_region#1247.add(-23, -239, 24, 240) -[2619027.400] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2619027.403] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2619027.407] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) -[2619027.411] {Default Queue} -> wl_surface#1223.commit() -[2619027.415] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) -[2619027.419] {Default Queue} -> wl_surface#1223.commit() -[2619027.425] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) -[2619027.429] {Default Queue} -> wl_surface#1223.commit() -[2619027.435] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) -[2619027.439] {Default Queue} -> wl_surface#1063.commit() -[2619027.493] {Display Queue} wl_display#1.delete_id(3005) -[2619027.506] {Display Queue} wl_display#1.delete_id(3006) -[2619027.513] {Display Queue} wl_display#1.delete_id(3003) -[2619027.519] {Display Queue} wl_display#1.delete_id(3004) -[2619027.524] {Display Queue} wl_display#1.delete_id(285) -[2619027.530] {Display Queue} wl_display#1.delete_id(286) -[2619027.536] {Display Queue} wl_display#1.delete_id(283) -[2619027.542] {Display Queue} wl_display#1.delete_id(284) -[2619027.548] {Display Queue} wl_display#1.delete_id(3692) -[2619027.554] {Display Queue} wl_display#1.delete_id(3693) -[2619027.559] {Display Queue} wl_display#1.delete_id(3690) -[2619027.565] {Display Queue} wl_display#1.delete_id(3691) -[2619027.570] {Display Queue} wl_display#1.delete_id(1021) -[2619027.576] {Display Queue} wl_display#1.delete_id(1022) -[2619027.582] {Display Queue} wl_display#1.delete_id(1019) -[2619027.587] {Display Queue} wl_display#1.delete_id(1020) -[2619027.593] {Display Queue} wl_display#1.delete_id(2108) -[2619027.599] {Display Queue} wl_display#1.delete_id(3038) -[2619027.604] {Display Queue} wl_display#1.delete_id(3037) -[2619027.616] {Display Queue} wl_display#1.delete_id(3036) -[2619027.626] {Display Queue} wl_display#1.delete_id(3035) -[2619027.632] {Display Queue} wl_display#1.delete_id(3132) -[2619027.638] {Display Queue} wl_display#1.delete_id(2428) -[2619027.643] {Display Queue} wl_display#1.delete_id(2429) -[2619027.649] {Display Queue} wl_display#1.delete_id(2140) -[2619027.654] {Display Queue} wl_display#1.delete_id(2427) -[2619027.660] {Display Queue} wl_display#1.delete_id(2430) -[2619027.666] {Display Queue} wl_display#1.delete_id(3326) -[2619027.671] {Display Queue} wl_display#1.delete_id(3325) -[2619027.677] {Display Queue} wl_display#1.delete_id(3324) -[2619027.683] {Display Queue} wl_display#1.delete_id(3323) -[2619027.688] {Display Queue} wl_display#1.delete_id(3131) -[2619027.695] {Default Queue} wl_pointer#24.motion(187310657, 25.39843750, 13.80078125) -[2619027.702] {Default Queue} wl_pointer#81.motion(187310657, 25.39843750, 13.80078125) -[2619027.710] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619027.717] {Default Queue} wl_pointer#105.motion(187310657, 25.39843750, 13.80078125) -[2619027.724] {Default Queue} wl_pointer#137.motion(187310657, 25.39843750, 13.80078125) -[2619027.730] {Default Queue} wl_pointer#169.motion(187310657, 25.39843750, 13.80078125) -[2619027.737] {Default Queue} wl_pointer#201.motion(187310657, 25.39843750, 13.80078125) -[2619027.743] {Default Queue} wl_pointer#233.motion(187310657, 25.39843750, 13.80078125) -[2619027.749] {Default Queue} wl_pointer#265.motion(187310657, 25.39843750, 13.80078125) -[2619027.755] {Default Queue} wl_pointer#297.motion(187310657, 25.39843750, 13.80078125) -[2619027.762] {Default Queue} wl_pointer#329.motion(187310657, 25.39843750, 13.80078125) -[2619027.768] {Default Queue} wl_pointer#361.motion(187310657, 25.39843750, 13.80078125) -[2619027.774] {Default Queue} wl_pointer#393.motion(187310657, 25.39843750, 13.80078125) -[2619027.780] {Default Queue} wl_pointer#425.motion(187310657, 25.39843750, 13.80078125) -[2619027.786] {Default Queue} wl_pointer#457.motion(187310657, 25.39843750, 13.80078125) -[2619027.792] {Default Queue} wl_pointer#489.motion(187310657, 25.39843750, 13.80078125) -[2619027.798] {Default Queue} wl_pointer#521.motion(187310657, 25.39843750, 13.80078125) -[2619027.804] {Default Queue} wl_pointer#553.motion(187310657, 25.39843750, 13.80078125) -[2619027.810] {Default Queue} wl_pointer#585.motion(187310657, 25.39843750, 13.80078125) -[2619027.816] {Default Queue} wl_pointer#617.motion(187310657, 25.39843750, 13.80078125) -[2619027.822] {Default Queue} wl_pointer#649.motion(187310657, 25.39843750, 13.80078125) -[2619027.828] {Default Queue} wl_pointer#681.motion(187310657, 25.39843750, 13.80078125) -[2619027.834] {Default Queue} wl_pointer#713.motion(187310657, 25.39843750, 13.80078125) -[2619027.840] {Default Queue} wl_pointer#745.motion(187310657, 25.39843750, 13.80078125) -[2619027.846] {Default Queue} wl_pointer#777.motion(187310657, 25.39843750, 13.80078125) -[2619027.852] {Default Queue} wl_pointer#809.motion(187310657, 25.39843750, 13.80078125) -[2619027.858] {Default Queue} wl_pointer#841.motion(187310657, 25.39843750, 13.80078125) -[2619027.873] {Default Queue} wl_pointer#873.motion(187310657, 25.39843750, 13.80078125) -[2619027.879] {Default Queue} wl_pointer#905.motion(187310657, 25.39843750, 13.80078125) -[2619027.885] {Default Queue} wl_pointer#937.motion(187310657, 25.39843750, 13.80078125) -[2619027.892] {Default Queue} wl_pointer#969.motion(187310657, 25.39843750, 13.80078125) -[2619027.898] {Default Queue} wl_pointer#1001.motion(187310657, 25.39843750, 13.80078125) -[2619027.904] {Default Queue} wl_pointer#1033.motion(187310657, 25.39843750, 13.80078125) -[2619027.911] {Default Queue} wl_pointer#1065.motion(187310657, 25.39843750, 13.80078125) -[2619027.917] {Default Queue} wl_pointer#1097.motion(187310657, 25.39843750, 13.80078125) -[2619027.923] {Default Queue} wl_pointer#1129.motion(187310657, 25.39843750, 13.80078125) -[2619027.929] {Default Queue} wl_pointer#1161.motion(187310657, 25.39843750, 13.80078125) -[2619027.936] {Default Queue} wl_pointer#1193.motion(187310657, 25.39843750, 13.80078125) -[2619027.947] {Default Queue} wl_pointer#1225.motion(187310657, 25.39843750, 13.80078125) -[2619027.957] {Default Queue} wl_pointer#1257.motion(187310657, 25.39843750, 13.80078125) -[2619027.963] {Default Queue} wl_pointer#1289.motion(187310657, 25.39843750, 13.80078125) -[2619027.969] {Default Queue} wl_pointer#1321.motion(187310657, 25.39843750, 13.80078125) -[2619027.975] {Default Queue} wl_pointer#1353.motion(187310657, 25.39843750, 13.80078125) -[2619027.981] {Default Queue} wl_pointer#1385.motion(187310657, 25.39843750, 13.80078125) -[2619027.987] {Default Queue} wl_pointer#1417.motion(187310657, 25.39843750, 13.80078125) -[2619027.993] {Default Queue} wl_pointer#1449.motion(187310657, 25.39843750, 13.80078125) -[2619028.000] {Default Queue} wl_pointer#1481.motion(187310657, 25.39843750, 13.80078125) -[2619028.006] {Default Queue} wl_pointer#1513.motion(187310657, 25.39843750, 13.80078125) -[2619028.012] {Default Queue} wl_pointer#1545.motion(187310657, 25.39843750, 13.80078125) -[2619028.018] {Default Queue} wl_pointer#1577.motion(187310657, 25.39843750, 13.80078125) -[2619028.024] {Default Queue} wl_pointer#1609.motion(187310657, 25.39843750, 13.80078125) -[2619028.030] {Default Queue} wl_pointer#1641.motion(187310657, 25.39843750, 13.80078125) -[2619028.036] {Default Queue} wl_pointer#1673.motion(187310657, 25.39843750, 13.80078125) -[2619028.042] {Default Queue} wl_pointer#1705.motion(187310657, 25.39843750, 13.80078125) -[2619028.049] {Default Queue} wl_pointer#1737.motion(187310657, 25.39843750, 13.80078125) -[2619028.055] {Default Queue} wl_pointer#1762.motion(187310657, 25.39843750, 13.80078125) -[2619028.061] {Default Queue} wl_pointer#1801.motion(187310657, 25.39843750, 13.80078125) -[2619028.067] {Default Queue} wl_pointer#1833.motion(187310657, 25.39843750, 13.80078125) -[2619028.073] {Default Queue} wl_pointer#1865.motion(187310657, 25.39843750, 13.80078125) -[2619028.079] {Default Queue} wl_pointer#1897.motion(187310657, 25.39843750, 13.80078125) -[2619028.085] {Default Queue} wl_pointer#1929.motion(187310657, 25.39843750, 13.80078125) -[2619028.091] {Default Queue} wl_pointer#1961.motion(187310657, 25.39843750, 13.80078125) -[2619028.098] {Default Queue} wl_pointer#1993.motion(187310657, 25.39843750, 13.80078125) -[2619028.104] {Default Queue} wl_pointer#2025.motion(187310657, 25.39843750, 13.80078125) -[2619028.110] {Default Queue} wl_pointer#2057.motion(187310657, 25.39843750, 13.80078125) -[2619028.116] {Default Queue} wl_pointer#2089.motion(187310657, 25.39843750, 13.80078125) -[2619028.122] {Default Queue} wl_pointer#2121.motion(187310657, 25.39843750, 13.80078125) -[2619028.128] {Default Queue} wl_pointer#2153.motion(187310657, 25.39843750, 13.80078125) -[2619028.134] {Default Queue} wl_pointer#2185.motion(187310657, 25.39843750, 13.80078125) -[2619028.140] {Default Queue} wl_pointer#2217.motion(187310657, 25.39843750, 13.80078125) -[2619028.146] {Default Queue} wl_pointer#2249.motion(187310657, 25.39843750, 13.80078125) -[2619028.153] {Default Queue} wl_pointer#2281.motion(187310657, 25.39843750, 13.80078125) -[2619028.159] {Default Queue} wl_pointer#2313.motion(187310657, 25.39843750, 13.80078125) -[2619028.165] {Default Queue} wl_pointer#2345.motion(187310657, 25.39843750, 13.80078125) -[2619028.172] {Default Queue} wl_pointer#2377.motion(187310657, 25.39843750, 13.80078125) -[2619028.178] {Default Queue} wl_pointer#2409.motion(187310657, 25.39843750, 13.80078125) -[2619028.184] {Default Queue} wl_pointer#2441.motion(187310657, 25.39843750, 13.80078125) -[2619028.190] {Default Queue} wl_pointer#2473.motion(187310657, 25.39843750, 13.80078125) -[2619028.196] {Default Queue} wl_pointer#2498.motion(187310657, 25.39843750, 13.80078125) -[2619028.214] {Default Queue} -> wl_buffer#3613.destroy() -[2619028.222] {Default Queue} -> wl_buffer#1276.destroy() -[2619028.230] {Default Queue} -> wl_shm_pool#3611.destroy() -[2619028.237] {Default Queue} -> wl_shm_pool#3614.destroy() -[2619028.247] {Default Queue} -> wl_surface#3099.destroy() -[2619028.307] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3131, fd 575, 640) -[2619028.334] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3323, fd 578, 640) -[2619028.344] {Default Queue} -> wl_shm_pool#3131.create_buffer(new id wl_buffer#3324, 0, 10, 16, 40, 0) -[2619028.351] {Default Queue} -> wl_shm_pool#3323.create_buffer(new id wl_buffer#3325, 0, 10, 16, 40, 0) -[2619028.361] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3326) -[2619028.368] {Default Queue} -> wl_surface#3326.attach(wl_buffer#3324, 0, 0) -[2619028.374] {Default Queue} -> wl_surface#3326.commit() -[2619028.382] {Default Queue} -> wl_surface#3326.attach(wl_buffer#3324, 0, 0) -[2619028.387] {Default Queue} -> wl_surface#3326.commit() -[2619028.394] {Default Queue} wl_pointer#2537.motion(187310657, 25.39843750, 13.80078125) -[2619028.401] {Default Queue} wl_pointer#2569.motion(187310657, 25.39843750, 13.80078125) -[2619028.408] {Default Queue} wl_pointer#2601.motion(187310657, 25.39843750, 13.80078125) -[2619028.414] {Default Queue} wl_pointer#2633.motion(187310657, 25.39843750, 13.80078125) -[2619028.420] {Default Queue} wl_pointer#2665.motion(187310657, 25.39843750, 13.80078125) -[2619028.426] {Default Queue} wl_pointer#2697.motion(187310657, 25.39843750, 13.80078125) -[2619028.432] {Default Queue} wl_pointer#2729.motion(187310657, 25.39843750, 13.80078125) -[2619028.438] {Default Queue} wl_pointer#2761.motion(187310657, 25.39843750, 13.80078125) -[2619028.444] {Default Queue} wl_pointer#2793.motion(187310657, 25.39843750, 13.80078125) -[2619028.450] {Default Queue} wl_pointer#2825.motion(187310657, 25.39843750, 13.80078125) -[2619028.457] {Default Queue} wl_pointer#2857.motion(187310657, 25.39843750, 13.80078125) -[2619028.463] {Default Queue} wl_pointer#2889.motion(187310657, 25.39843750, 13.80078125) -[2619028.469] {Default Queue} wl_pointer#2921.motion(187310657, 25.39843750, 13.80078125) -[2619028.475] {Default Queue} wl_pointer#2953.motion(187310657, 25.39843750, 13.80078125) -[2619028.481] {Default Queue} wl_pointer#2985.motion(187310657, 25.39843750, 13.80078125) -[2619028.487] {Default Queue} wl_pointer#3017.motion(187310657, 25.39843750, 13.80078125) -[2619028.493] {Default Queue} wl_pointer#3049.motion(187310657, 25.39843750, 13.80078125) -[2619028.499] {Default Queue} wl_pointer#3081.motion(187310657, 25.39843750, 13.80078125) -[2619028.505] {Default Queue} wl_pointer#3113.motion(187310657, 25.39843750, 13.80078125) -[2619028.511] {Default Queue} wl_pointer#3145.motion(187310657, 25.39843750, 13.80078125) -[2619028.517] {Default Queue} wl_pointer#3177.motion(187310657, 25.39843750, 13.80078125) -[2619028.523] {Default Queue} wl_pointer#3209.motion(187310657, 25.39843750, 13.80078125) -[2619028.529] {Default Queue} wl_pointer#3241.motion(187310657, 25.39843750, 13.80078125) -[2619028.536] {Default Queue} wl_pointer#3273.motion(187310657, 25.39843750, 13.80078125) -[2619028.542] {Default Queue} wl_pointer#3305.motion(187310657, 25.39843750, 13.80078125) -[2619028.548] {Default Queue} wl_pointer#3337.motion(187310657, 25.39843750, 13.80078125) -[2619028.554] {Default Queue} wl_pointer#3369.motion(187310657, 25.39843750, 13.80078125) -[2619028.560] {Default Queue} wl_pointer#3401.motion(187310657, 25.39843750, 13.80078125) -[2619028.566] {Default Queue} wl_pointer#3433.motion(187310657, 25.39843750, 13.80078125) -[2619028.572] {Default Queue} wl_pointer#3465.motion(187310657, 25.39843750, 13.80078125) -[2619028.579] {Default Queue} wl_pointer#3497.motion(187310657, 25.39843750, 13.80078125) -[2619028.585] {Default Queue} wl_pointer#3529.motion(187310657, 25.39843750, 13.80078125) -[2619028.591] {Default Queue} wl_pointer#3561.motion(187310657, 25.39843750, 13.80078125) -[2619028.597] {Default Queue} wl_pointer#3593.motion(187310657, 25.39843750, 13.80078125) -[2619028.603] {Default Queue} wl_pointer#3625.motion(187310657, 25.39843750, 13.80078125) -[2619028.609] {Default Queue} wl_pointer#3657.motion(187310657, 25.39843750, 13.80078125) -[2619028.615] {Default Queue} wl_pointer#3695.motion(187310657, 25.39843750, 13.80078125) -[2619028.629] {Default Queue} -> wl_region#1087.subtract(0, 0, 24, 240) -[2619028.640] {Default Queue} -> wl_region#1087.add(-23, -239, 24, 240) -[2619028.649] {Default Queue} -> wl_surface#1063.set_opaque_region(wl_region#1088) -[2619028.654] {Default Queue} -> wl_surface#1063.set_input_region(wl_region#1087) -[2619028.663] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) -[2619028.669] {Default Queue} -> wl_surface#1063.commit() -[2619028.675] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) -[2619028.679] {Default Queue} -> wl_surface#1063.commit() -[2619028.685] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) -[2619028.689] {Default Queue} -> wl_surface#1063.commit() -[2619028.695] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) -[2619028.699] {Default Queue} -> wl_surface#1287.commit() -[2619029.763] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) -[2619029.768] {Default Queue} -> wl_surface#1287.commit() -[2619029.777] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 241) -[2619029.781] {Default Queue} -> wl_region#1311.add(-24, -240, 7, 241) -[2619029.785] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2619029.789] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2619029.901] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 241) -[2619029.906] {Default Queue} -> wl_region#1311.add(-24, -240, 7, 241) -[2619029.910] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2619029.915] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2619029.920] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2619029.924] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2619029.996] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 241) -[2619030.001] {Default Queue} -> wl_region#1311.add(-24, -240, 7, 241) -[2619030.005] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2619030.009] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2619030.014] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2619030.018] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2619030.023] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) -[2619030.027] {Default Queue} -> wl_surface#1287.commit() -[2619030.030] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) -[2619030.034] {Default Queue} -> wl_surface#1287.commit() -[2619030.040] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) -[2619030.044] {Default Queue} -> wl_surface#1287.commit() -[2619030.050] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) -[2619030.054] {Default Queue} -> wl_surface#1319.commit() -[2619031.115] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) -[2619031.120] {Default Queue} -> wl_surface#1319.commit() -[2619031.128] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 241) -[2619031.133] {Default Queue} -> wl_region#1343.add(-24, -240, 7, 241) -[2619031.137] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2619031.140] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2619031.229] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 241) -[2619031.234] {Default Queue} -> wl_region#1343.add(-24, -240, 7, 241) -[2619031.238] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2619031.242] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2619031.247] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2619031.251] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2619031.320] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 241) -[2619031.325] {Default Queue} -> wl_region#1343.add(-24, -240, 7, 241) -[2619031.329] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2619031.333] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2619031.338] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2619031.343] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2619031.347] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) -[2619031.355] {Default Queue} -> wl_surface#1319.commit() -[2619031.360] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) -[2619031.364] {Default Queue} -> wl_surface#1319.commit() -[2619031.370] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) -[2619031.374] {Default Queue} -> wl_surface#1319.commit() -[2619031.380] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) -[2619031.384] {Default Queue} -> wl_surface#1351.commit() -[2619031.834] {Display Queue} wl_display#1.delete_id(3646) -[2619031.839] {Display Queue} wl_display#1.delete_id(3645) -[2619031.843] {Display Queue} wl_display#1.delete_id(3644) -[2619031.847] {Display Queue} wl_display#1.delete_id(3643) -[2619031.851] {Display Queue} wl_display#1.delete_id(3612) -[2619031.855] {Display Queue} wl_display#1.delete_id(477) -[2619031.859] {Display Queue} wl_display#1.delete_id(478) -[2619031.863] {Display Queue} wl_display#1.delete_id(475) -[2619031.867] {Display Queue} wl_display#1.delete_id(476) -[2619031.873] {Display Queue} wl_display#1.delete_id(190) -[2619031.877] {Display Queue} wl_display#1.delete_id(189) -[2619031.880] {Display Queue} wl_display#1.delete_id(188) -[2619031.884] {Display Queue} wl_display#1.delete_id(187) -[2619031.888] {Default Queue} wl_pointer#24.motion(187310662, 25.00000000, 13.80078125) -[2619031.892] {Default Queue} wl_pointer#81.motion(187310662, 25.00000000, 13.80078125) -[2619031.898] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619031.902] {Default Queue} wl_pointer#105.motion(187310662, 25.00000000, 13.80078125) -[2619031.906] {Default Queue} wl_pointer#137.motion(187310662, 25.00000000, 13.80078125) -[2619031.910] {Default Queue} wl_pointer#169.motion(187310662, 25.00000000, 13.80078125) -[2619031.914] {Default Queue} wl_pointer#201.motion(187310662, 25.00000000, 13.80078125) -[2619031.918] {Default Queue} wl_pointer#233.motion(187310662, 25.00000000, 13.80078125) -[2619031.922] {Default Queue} wl_pointer#265.motion(187310662, 25.00000000, 13.80078125) -[2619031.927] {Default Queue} wl_pointer#297.motion(187310662, 25.00000000, 13.80078125) -[2619031.931] {Default Queue} wl_pointer#329.motion(187310662, 25.00000000, 13.80078125) -[2619031.935] {Default Queue} wl_pointer#361.motion(187310662, 25.00000000, 13.80078125) -[2619031.939] {Default Queue} wl_pointer#393.motion(187310662, 25.00000000, 13.80078125) -[2619031.943] {Default Queue} wl_pointer#425.motion(187310662, 25.00000000, 13.80078125) -[2619031.947] {Default Queue} wl_pointer#457.motion(187310662, 25.00000000, 13.80078125) -[2619031.951] {Default Queue} wl_pointer#489.motion(187310662, 25.00000000, 13.80078125) -[2619031.955] {Default Queue} wl_pointer#521.motion(187310662, 25.00000000, 13.80078125) -[2619031.959] {Default Queue} wl_pointer#553.motion(187310662, 25.00000000, 13.80078125) -[2619031.963] {Default Queue} wl_pointer#585.motion(187310662, 25.00000000, 13.80078125) -[2619031.967] {Default Queue} wl_pointer#617.motion(187310662, 25.00000000, 13.80078125) -[2619031.971] {Default Queue} wl_pointer#649.motion(187310662, 25.00000000, 13.80078125) -[2619031.975] {Default Queue} wl_pointer#681.motion(187310662, 25.00000000, 13.80078125) -[2619031.979] {Default Queue} wl_pointer#713.motion(187310662, 25.00000000, 13.80078125) -[2619031.983] {Default Queue} wl_pointer#745.motion(187310662, 25.00000000, 13.80078125) -[2619031.987] {Default Queue} wl_pointer#777.motion(187310662, 25.00000000, 13.80078125) -[2619031.991] {Default Queue} wl_pointer#809.motion(187310662, 25.00000000, 13.80078125) -[2619031.995] {Default Queue} wl_pointer#841.motion(187310662, 25.00000000, 13.80078125) -[2619031.999] {Default Queue} wl_pointer#873.motion(187310662, 25.00000000, 13.80078125) -[2619032.003] {Default Queue} wl_pointer#905.motion(187310662, 25.00000000, 13.80078125) -[2619032.007] {Default Queue} wl_pointer#937.motion(187310662, 25.00000000, 13.80078125) -[2619032.011] {Default Queue} wl_pointer#969.motion(187310662, 25.00000000, 13.80078125) -[2619032.015] {Default Queue} wl_pointer#1001.motion(187310662, 25.00000000, 13.80078125) -[2619032.022] {Default Queue} wl_pointer#1033.motion(187310662, 25.00000000, 13.80078125) -[2619032.028] {Default Queue} wl_pointer#1065.motion(187310662, 25.00000000, 13.80078125) -[2619032.032] {Default Queue} wl_pointer#1097.motion(187310662, 25.00000000, 13.80078125) -[2619032.036] {Default Queue} wl_pointer#1129.motion(187310662, 25.00000000, 13.80078125) -[2619032.040] {Default Queue} wl_pointer#1161.motion(187310662, 25.00000000, 13.80078125) -[2619032.044] {Default Queue} wl_pointer#1193.motion(187310662, 25.00000000, 13.80078125) -[2619032.048] {Default Queue} wl_pointer#1225.motion(187310662, 25.00000000, 13.80078125) -[2619032.052] {Default Queue} wl_pointer#1257.motion(187310662, 25.00000000, 13.80078125) -[2619032.056] {Default Queue} wl_pointer#1289.motion(187310662, 25.00000000, 13.80078125) -[2619032.060] {Default Queue} wl_pointer#1321.motion(187310662, 25.00000000, 13.80078125) -[2619032.064] {Default Queue} wl_pointer#1353.motion(187310662, 25.00000000, 13.80078125) -[2619032.068] {Default Queue} wl_pointer#1385.motion(187310662, 25.00000000, 13.80078125) -[2619032.073] {Default Queue} wl_pointer#1417.motion(187310662, 25.00000000, 13.80078125) -[2619032.076] {Default Queue} wl_pointer#1449.motion(187310662, 25.00000000, 13.80078125) -[2619032.080] {Default Queue} wl_pointer#1481.motion(187310662, 25.00000000, 13.80078125) -[2619032.085] {Default Queue} wl_pointer#1513.motion(187310662, 25.00000000, 13.80078125) -[2619032.088] {Default Queue} wl_pointer#1545.motion(187310662, 25.00000000, 13.80078125) -[2619032.093] {Default Queue} wl_pointer#1577.motion(187310662, 25.00000000, 13.80078125) -[2619032.097] {Default Queue} wl_pointer#1609.motion(187310662, 25.00000000, 13.80078125) -[2619032.101] {Default Queue} wl_pointer#1641.motion(187310662, 25.00000000, 13.80078125) -[2619032.105] {Default Queue} wl_pointer#1673.motion(187310662, 25.00000000, 13.80078125) -[2619032.109] {Default Queue} wl_pointer#1705.motion(187310662, 25.00000000, 13.80078125) -[2619032.113] {Default Queue} wl_pointer#1737.motion(187310662, 25.00000000, 13.80078125) -[2619032.117] {Default Queue} wl_pointer#1762.motion(187310662, 25.00000000, 13.80078125) -[2619032.122] {Default Queue} wl_pointer#1801.motion(187310662, 25.00000000, 13.80078125) -[2619032.125] {Default Queue} wl_pointer#1833.motion(187310662, 25.00000000, 13.80078125) -[2619032.130] {Default Queue} wl_pointer#1865.motion(187310662, 25.00000000, 13.80078125) -[2619032.134] {Default Queue} wl_pointer#1897.motion(187310662, 25.00000000, 13.80078125) -[2619032.138] {Default Queue} wl_pointer#1929.motion(187310662, 25.00000000, 13.80078125) -[2619032.142] {Default Queue} wl_pointer#1961.motion(187310662, 25.00000000, 13.80078125) -[2619032.146] {Default Queue} wl_pointer#1993.motion(187310662, 25.00000000, 13.80078125) -[2619032.150] {Default Queue} wl_pointer#2025.motion(187310662, 25.00000000, 13.80078125) -[2619032.154] {Default Queue} wl_pointer#2057.motion(187310662, 25.00000000, 13.80078125) -[2619032.158] {Default Queue} wl_pointer#2089.motion(187310662, 25.00000000, 13.80078125) -[2619032.162] {Default Queue} wl_pointer#2121.motion(187310662, 25.00000000, 13.80078125) -[2619032.166] {Default Queue} wl_pointer#2153.motion(187310662, 25.00000000, 13.80078125) -[2619032.170] {Default Queue} wl_pointer#2185.motion(187310662, 25.00000000, 13.80078125) -[2619032.174] {Default Queue} wl_pointer#2217.motion(187310662, 25.00000000, 13.80078125) -[2619032.178] {Default Queue} wl_pointer#2249.motion(187310662, 25.00000000, 13.80078125) -[2619032.182] {Default Queue} wl_pointer#2281.motion(187310662, 25.00000000, 13.80078125) -[2619032.186] {Default Queue} wl_pointer#2313.motion(187310662, 25.00000000, 13.80078125) -[2619032.191] {Default Queue} wl_pointer#2345.motion(187310662, 25.00000000, 13.80078125) -[2619032.195] {Default Queue} wl_pointer#2377.motion(187310662, 25.00000000, 13.80078125) -[2619032.199] {Default Queue} wl_pointer#2409.motion(187310662, 25.00000000, 13.80078125) -[2619032.203] {Default Queue} wl_pointer#2441.motion(187310662, 25.00000000, 13.80078125) -[2619032.210] {Default Queue} wl_pointer#2473.motion(187310662, 25.00000000, 13.80078125) -[2619032.216] {Default Queue} wl_pointer#2498.motion(187310662, 25.00000000, 13.80078125) -[2619032.227] {Default Queue} -> wl_buffer#3324.destroy() -[2619032.233] {Default Queue} -> wl_buffer#3325.destroy() -[2619032.237] {Default Queue} -> wl_shm_pool#3131.destroy() -[2619032.241] {Default Queue} -> wl_shm_pool#3323.destroy() -[2619032.246] {Default Queue} -> wl_surface#3326.destroy() -[2619032.283] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#187, fd 575, 640) -[2619032.289] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#188, fd 578, 640) -[2619032.293] {Default Queue} -> wl_shm_pool#187.create_buffer(new id wl_buffer#189, 0, 10, 16, 40, 0) -[2619032.297] {Default Queue} -> wl_shm_pool#188.create_buffer(new id wl_buffer#190, 0, 10, 16, 40, 0) -[2619032.304] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#476) -[2619032.309] {Default Queue} -> wl_surface#476.attach(wl_buffer#189, 0, 0) -[2619032.313] {Default Queue} -> wl_surface#476.commit() -[2619032.318] {Default Queue} -> wl_surface#476.attach(wl_buffer#189, 0, 0) -[2619032.322] {Default Queue} -> wl_surface#476.commit() -[2619032.326] {Default Queue} wl_pointer#2537.motion(187310662, 25.00000000, 13.80078125) -[2619032.331] {Default Queue} wl_pointer#2569.motion(187310662, 25.00000000, 13.80078125) -[2619032.335] {Default Queue} wl_pointer#2601.motion(187310662, 25.00000000, 13.80078125) -[2619032.339] {Default Queue} wl_pointer#2633.motion(187310662, 25.00000000, 13.80078125) -[2619032.343] {Default Queue} wl_pointer#2665.motion(187310662, 25.00000000, 13.80078125) -[2619032.347] {Default Queue} wl_pointer#2697.motion(187310662, 25.00000000, 13.80078125) -[2619032.351] {Default Queue} wl_pointer#2729.motion(187310662, 25.00000000, 13.80078125) -[2619032.355] {Default Queue} wl_pointer#2761.motion(187310662, 25.00000000, 13.80078125) -[2619032.360] {Default Queue} wl_pointer#2793.motion(187310662, 25.00000000, 13.80078125) -[2619032.364] {Default Queue} wl_pointer#2825.motion(187310662, 25.00000000, 13.80078125) -[2619032.368] {Default Queue} wl_pointer#2857.motion(187310662, 25.00000000, 13.80078125) -[2619032.372] {Default Queue} wl_pointer#2889.motion(187310662, 25.00000000, 13.80078125) -[2619032.376] {Default Queue} wl_pointer#2921.motion(187310662, 25.00000000, 13.80078125) -[2619032.380] {Default Queue} wl_pointer#2953.motion(187310662, 25.00000000, 13.80078125) -[2619032.384] {Default Queue} wl_pointer#2985.motion(187310662, 25.00000000, 13.80078125) -[2619032.388] {Default Queue} wl_pointer#3017.motion(187310662, 25.00000000, 13.80078125) -[2619032.392] {Default Queue} wl_pointer#3049.motion(187310662, 25.00000000, 13.80078125) -[2619032.397] {Default Queue} wl_pointer#3081.motion(187310662, 25.00000000, 13.80078125) -[2619032.401] {Default Queue} wl_pointer#3113.motion(187310662, 25.00000000, 13.80078125) -[2619032.405] {Default Queue} wl_pointer#3145.motion(187310662, 25.00000000, 13.80078125) -[2619032.409] {Default Queue} wl_pointer#3177.motion(187310662, 25.00000000, 13.80078125) -[2619032.414] {Default Queue} wl_pointer#3209.motion(187310662, 25.00000000, 13.80078125) -[2619032.418] {Default Queue} wl_pointer#3241.motion(187310662, 25.00000000, 13.80078125) -[2619032.422] {Default Queue} wl_pointer#3273.motion(187310662, 25.00000000, 13.80078125) -[2619032.426] {Default Queue} wl_pointer#3305.motion(187310662, 25.00000000, 13.80078125) -[2619032.430] {Default Queue} wl_pointer#3337.motion(187310662, 25.00000000, 13.80078125) -[2619032.434] {Default Queue} wl_pointer#3369.motion(187310662, 25.00000000, 13.80078125) -[2619032.438] {Default Queue} wl_pointer#3401.motion(187310662, 25.00000000, 13.80078125) -[2619032.442] {Default Queue} wl_pointer#3433.motion(187310662, 25.00000000, 13.80078125) -[2619032.446] {Default Queue} wl_pointer#3465.motion(187310662, 25.00000000, 13.80078125) -[2619032.450] {Default Queue} wl_pointer#3497.motion(187310662, 25.00000000, 13.80078125) -[2619032.455] {Default Queue} wl_pointer#3529.motion(187310662, 25.00000000, 13.80078125) -[2619032.463] {Default Queue} wl_pointer#3561.motion(187310662, 25.00000000, 13.80078125) -[2619032.469] {Default Queue} wl_pointer#3593.motion(187310662, 25.00000000, 13.80078125) -[2619032.473] {Default Queue} wl_pointer#3625.motion(187310662, 25.00000000, 13.80078125) -[2619032.477] {Default Queue} wl_pointer#3657.motion(187310662, 25.00000000, 13.80078125) -[2619032.481] {Default Queue} wl_pointer#3695.motion(187310662, 25.00000000, 13.80078125) -[2619032.490] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 241) -[2619032.495] {Default Queue} -> wl_region#1375.add(-24, -240, 7, 241) -[2619032.499] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2619032.503] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2619032.601] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 241) -[2619032.606] {Default Queue} -> wl_region#1375.add(-24, -240, 7, 241) -[2619032.610] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2619032.614] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2619032.619] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2619032.624] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2619032.700] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 241) -[2619032.705] {Default Queue} -> wl_region#1375.add(-24, -240, 7, 241) -[2619032.709] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2619032.713] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2619032.717] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2619032.722] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2619032.727] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) -[2619032.731] {Default Queue} -> wl_surface#1351.commit() -[2619032.735] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) -[2619032.738] {Default Queue} -> wl_surface#1351.commit() -[2619032.744] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) -[2619032.749] {Default Queue} -> wl_surface#1351.commit() -[2619032.755] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) -[2619032.760] {Default Queue} -> wl_surface#1383.commit() -[2619033.824] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) -[2619033.829] {Default Queue} -> wl_surface#1383.commit() -[2619033.837] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 241) -[2619033.841] {Default Queue} -> wl_region#1407.add(-24, -240, 7, 241) -[2619033.845] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2619033.849] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2619033.943] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 241) -[2619033.948] {Default Queue} -> wl_region#1407.add(-24, -240, 7, 241) -[2619033.952] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2619033.956] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2619033.961] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2619033.965] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2619034.035] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 241) -[2619034.041] {Default Queue} -> wl_region#1407.add(-24, -240, 7, 241) -[2619034.045] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2619034.049] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2619034.053] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2619034.058] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2619034.063] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) -[2619034.067] {Default Queue} -> wl_surface#1383.commit() -[2619034.071] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) -[2619034.074] {Default Queue} -> wl_surface#1383.commit() -[2619034.080] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) -[2619034.084] {Default Queue} -> wl_surface#1383.commit() -[2619034.089] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) -[2619034.094] {Default Queue} -> wl_surface#1415.commit() -[2619035.159] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) -[2619035.167] {Default Queue} -> wl_surface#1415.commit() -[2619035.176] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 241) -[2619035.180] {Default Queue} -> wl_region#1439.add(-24, -240, 7, 241) -[2619035.185] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2619035.188] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2619035.278] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 241) -[2619035.283] {Default Queue} -> wl_region#1439.add(-24, -240, 7, 241) -[2619035.287] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2619035.291] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2619035.297] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2619035.301] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2619035.371] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 241) -[2619035.377] {Default Queue} -> wl_region#1439.add(-24, -240, 7, 241) -[2619035.381] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2619035.385] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2619035.389] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2619035.394] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2619035.399] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) -[2619035.403] {Default Queue} -> wl_surface#1415.commit() -[2619035.406] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) -[2619035.410] {Default Queue} -> wl_surface#1415.commit() -[2619035.416] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) -[2619035.420] {Default Queue} -> wl_surface#1415.commit() -[2619035.426] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) -[2619035.430] {Default Queue} -> wl_surface#1255.commit() -[2619036.491] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) -[2619036.496] {Default Queue} -> wl_surface#1255.commit() -[2619036.502] {Default Queue} -> wl_region#1279.subtract(0, 0, 25, 241) -[2619036.506] {Default Queue} -> wl_region#1279.add(-24, -240, 7, 241) -[2619036.510] {Default Queue} -> wl_surface#1255.set_opaque_region(wl_region#1280) -[2619036.514] {Default Queue} -> wl_surface#1255.set_input_region(wl_region#1279) -[2619036.518] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) -[2619036.522] {Default Queue} -> wl_surface#1255.commit() -[2619036.526] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) -[2619036.530] {Default Queue} -> wl_surface#1255.commit() -[2619036.535] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) -[2619036.539] {Default Queue} -> wl_surface#1255.commit() -[2619036.543] {Default Queue} -> wl_region#1055.subtract(0, 0, 2, 2) -[2619036.548] {Default Queue} -> wl_region#1087.subtract(0, 0, 24, 240) -[2619036.553] {Default Queue} -> wl_region#1087.add(-23, -239, 24, 240) -[2619036.557] {Default Queue} -> wl_surface#1063.set_opaque_region(wl_region#1088) -[2619036.560] {Default Queue} -> wl_surface#1063.set_input_region(wl_region#1087) -[2619036.566] {Default Queue} -> wl_region#1279.subtract(0, 0, 25, 241) -[2619036.570] {Default Queue} -> wl_region#1279.add(-24, -240, 7, 241) -[2619036.574] {Default Queue} -> wl_surface#1255.set_opaque_region(wl_region#1280) -[2619036.578] {Default Queue} -> wl_surface#1255.set_input_region(wl_region#1279) -[2619036.582] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2619036.586] {Default Queue} -> wl_region#1055.subtract(0, 0, 25, 221) -[2619036.590] {Default Queue} -> wl_region#1055.add(-23, -239, 24, 220) -[2619036.594] {Default Queue} -> wl_surface#1031.set_opaque_region(wl_region#1056) -[2619036.598] {Default Queue} -> wl_surface#1031.set_input_region(wl_region#1055) -[2619036.602] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) -[2619036.606] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) -[2619036.610] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) -[2619036.614] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) -[2619036.622] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) -[2619036.628] {Default Queue} -> wl_surface#1063.damage(0, 0, 16, 2) -[2619036.632] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2619036.636] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2619036.640] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2619036.644] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2619036.648] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2619036.652] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2619036.656] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2619036.668] {Default Queue} -> wl_buffer#1053.destroy() -[2619036.674] {Default Queue} -> wl_buffer#1054.destroy() -[2619036.678] {Default Queue} -> wl_shm_pool#1051.destroy() -[2619036.682] {Default Queue} -> wl_shm_pool#1052.destroy() -[2619036.722] {Default Queue} -> wl_shm#1039.create_pool(new id wl_shm_pool#475, fd 575, 16) -[2619036.731] {Default Queue} -> wl_shm#1039.create_pool(new id wl_shm_pool#478, fd 578, 16) -[2619036.738] {Default Queue} -> wl_shm_pool#475.create_buffer(new id wl_buffer#477, 0, 2, 2, 8, 0) -[2619036.745] {Default Queue} -> wl_shm_pool#478.create_buffer(new id wl_buffer#3612, 0, 2, 2, 8, 0) -[2619036.755] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) -[2619036.762] {Default Queue} -> wl_surface#1031.commit() -[2619036.770] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) -[2619036.776] {Default Queue} -> wl_surface#1031.commit() -[2619036.786] {Default Queue} -> wl_region#1055.subtract(0, 0, 25, 241) -[2619036.792] {Default Queue} -> wl_region#1055.add(-23, -239, 24, 240) -[2619036.798] {Default Queue} -> wl_surface#1031.set_opaque_region(wl_region#1056) -[2619036.804] {Default Queue} -> wl_surface#1031.set_input_region(wl_region#1055) -[2619036.810] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) -[2619036.816] {Default Queue} -> wl_surface#1031.commit() -[2619036.825] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) -[2619036.832] {Default Queue} -> wl_surface#1031.commit() -[2619037.867] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) -[2619037.872] {Default Queue} -> wl_surface#1031.commit() -[2619037.877] {Default Queue} -> wl_region#1055.subtract(0, 0, 25, 241) -[2619037.881] {Default Queue} -> wl_region#1055.add(-23, -239, 24, 240) -[2619037.885] {Default Queue} -> wl_surface#1031.set_opaque_region(wl_region#1056) -[2619037.889] {Default Queue} -> wl_surface#1031.set_input_region(wl_region#1055) -[2619037.894] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) -[2619037.898] {Default Queue} -> wl_surface#1031.commit() -[2619037.902] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) -[2619037.906] {Default Queue} -> wl_surface#1031.commit() -[2619037.911] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) -[2619037.915] {Default Queue} -> wl_surface#1031.commit() -[2619037.920] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) -[2619037.924] {Default Queue} -> wl_surface#999.commit() -[2619038.985] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) -[2619038.990] {Default Queue} -> wl_surface#999.commit() -[2619038.996] {Default Queue} -> wl_region#1023.subtract(0, 0, 25, 241) -[2619039.000] {Default Queue} -> wl_region#1023.add(-23, -219, 25, 221) -[2619039.004] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) -[2619039.008] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) -[2619039.012] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) -[2619039.017] {Default Queue} -> wl_surface#999.commit() -[2619039.020] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) -[2619039.025] {Default Queue} -> wl_surface#999.commit() -[2619039.030] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) -[2619039.034] {Default Queue} -> wl_surface#999.commit() -[2619039.038] {Default Queue} -> wl_region#959.subtract(0, 0, 109, 161) -[2619039.048] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 236) -[2619039.055] {Default Queue} -> wl_region#991.add(-20, -216, 22, 236) -[2619039.059] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2619039.063] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2619039.146] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 236) -[2619039.151] {Default Queue} -> wl_region#991.add(-20, -216, 22, 236) -[2619039.155] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2619039.159] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2619039.166] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2619039.170] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2619039.230] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 236) -[2619039.235] {Default Queue} -> wl_region#991.add(-20, -216, 22, 236) -[2619039.239] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2619039.243] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2619039.249] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2619039.253] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2619039.258] {Default Queue} -> wl_region#1023.subtract(0, 0, 25, 241) -[2619039.262] {Default Queue} -> wl_region#1023.add(-23, -219, 25, 221) -[2619039.266] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) -[2619039.270] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) -[2619039.274] {Default Queue} -> wl_surface#935.damage(0, 0, 109, 161) -[2619039.278] {Default Queue} -> wl_region#959.subtract(0, 0, 132, 380) -[2619039.282] {Default Queue} -> wl_region#959.add(-20, -216, 129, 377) -[2619039.286] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) -[2619039.290] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) -[2619039.294] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2619039.298] {Default Queue} -> wl_surface#1095.damage(0, 0, 2, 2) -[2619039.302] {Default Queue} -> wl_surface#1127.damage(0, 0, 2, 2) -[2619039.306] {Default Queue} -> wl_surface#1159.damage(0, 0, 2, 2) -[2619039.310] {Default Queue} -> wl_surface#1191.damage(0, 0, 2, 2) -[2619039.314] {Default Queue} -> wl_surface#1223.damage(0, 0, 2, 2) -[2619039.318] {Default Queue} -> wl_surface#1063.damage(0, 0, 16, 2) -[2619039.322] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2619039.326] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2619039.330] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2619039.334] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2619039.338] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2619039.342] {Default Queue} -> wl_surface#1255.damage(0, 0, 2, 2) -[2619039.346] {Default Queue} -> wl_surface#1031.damage(0, 0, 2, 2) -[2619039.349] {Default Queue} -> wl_surface#999.damage(0, 0, 2, 2) -[2619039.353] {Default Queue} -> wl_surface#935.damage(0, 0, 109, 161) -[2619039.366] {Default Queue} -> wl_buffer#62.destroy() -[2619039.371] {Default Queue} -> wl_buffer#61.destroy() -[2619039.376] {Default Queue} -> wl_shm_pool#60.destroy() -[2619039.380] {Default Queue} -> wl_shm_pool#59.destroy() -[2619039.455] {Default Queue} -> wl_shm#943.create_pool(new id wl_shm_pool#3643, fd 575, 70196) -[2619039.462] {Default Queue} -> wl_shm#943.create_pool(new id wl_shm_pool#3644, fd 578, 70196) -[2619039.466] {Default Queue} -> wl_shm_pool#3643.create_buffer(new id wl_buffer#3645, 0, 109, 161, 436, 0) -[2619039.470] {Default Queue} -> wl_shm_pool#3644.create_buffer(new id wl_buffer#3646, 0, 109, 161, 436, 0) -[2619039.492] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) -[2619039.497] {Default Queue} -> wl_surface#935.commit() -[2619039.517] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) -[2619039.525] {Default Queue} -> wl_surface#935.commit() -[2619039.535] {Default Queue} -> wl_region#959.subtract(0, 0, 132, 380) -[2619039.541] {Default Queue} -> wl_region#959.add(-20, -216, 129, 377) -[2619039.546] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) -[2619039.554] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) -[2619039.563] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) -[2619039.567] {Default Queue} -> wl_surface#935.commit() -[2619039.574] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) -[2619039.578] {Default Queue} -> wl_surface#935.commit() -[2619040.643] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) -[2619040.648] {Default Queue} -> wl_surface#935.commit() -[2619040.655] {Default Queue} -> wl_region#959.subtract(0, 0, 132, 380) -[2619040.659] {Default Queue} -> wl_region#959.add(-20, -216, 129, 377) -[2619040.663] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) -[2619040.667] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) -[2619040.673] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) -[2619040.677] {Default Queue} -> wl_surface#935.commit() -[2619040.682] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) -[2619040.686] {Default Queue} -> wl_surface#935.commit() -[2619040.693] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) -[2619040.697] {Default Queue} -> wl_surface#935.commit() -[2619040.708] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) -[2619040.712] {Default Queue} -> wl_surface#903.commit() -[2619041.732] {Display Queue} wl_display#1.delete_id(3613) -[2619041.738] {Display Queue} wl_display#1.delete_id(1276) -[2619041.742] {Display Queue} wl_display#1.delete_id(3611) -[2619041.745] {Display Queue} wl_display#1.delete_id(3614) -[2619041.749] {Display Queue} wl_display#1.delete_id(3099) -[2619041.753] {Display Queue} wl_display#1.delete_id(3324) -[2619041.757] {Display Queue} wl_display#1.delete_id(3325) -[2619041.760] {Display Queue} wl_display#1.delete_id(3131) -[2619041.764] {Display Queue} wl_display#1.delete_id(3323) -[2619041.768] {Display Queue} wl_display#1.delete_id(3326) -[2619041.772] {Default Queue} wl_pointer#24.motion(187310671, 24.60156250, 13.80078125) -[2619041.776] {Default Queue} wl_pointer#81.motion(187310671, 24.60156250, 13.80078125) -[2619041.782] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619041.786] {Default Queue} wl_pointer#105.motion(187310671, 24.60156250, 13.80078125) -[2619041.791] {Default Queue} wl_pointer#137.motion(187310671, 24.60156250, 13.80078125) -[2619041.795] {Default Queue} wl_pointer#169.motion(187310671, 24.60156250, 13.80078125) -[2619041.799] {Default Queue} wl_pointer#201.motion(187310671, 24.60156250, 13.80078125) -[2619041.803] {Default Queue} wl_pointer#233.motion(187310671, 24.60156250, 13.80078125) -[2619041.807] {Default Queue} wl_pointer#265.motion(187310671, 24.60156250, 13.80078125) -[2619041.811] {Default Queue} wl_pointer#297.motion(187310671, 24.60156250, 13.80078125) -[2619041.816] {Default Queue} wl_pointer#329.motion(187310671, 24.60156250, 13.80078125) -[2619041.820] {Default Queue} wl_pointer#361.motion(187310671, 24.60156250, 13.80078125) -[2619041.824] {Default Queue} wl_pointer#393.motion(187310671, 24.60156250, 13.80078125) -[2619041.828] {Default Queue} wl_pointer#425.motion(187310671, 24.60156250, 13.80078125) -[2619041.832] {Default Queue} wl_pointer#457.motion(187310671, 24.60156250, 13.80078125) -[2619041.836] {Default Queue} wl_pointer#489.motion(187310671, 24.60156250, 13.80078125) -[2619041.840] {Default Queue} wl_pointer#521.motion(187310671, 24.60156250, 13.80078125) -[2619041.844] {Default Queue} wl_pointer#553.motion(187310671, 24.60156250, 13.80078125) -[2619041.848] {Default Queue} wl_pointer#585.motion(187310671, 24.60156250, 13.80078125) -[2619041.853] {Default Queue} wl_pointer#617.motion(187310671, 24.60156250, 13.80078125) -[2619041.857] {Default Queue} wl_pointer#649.motion(187310671, 24.60156250, 13.80078125) -[2619041.865] {Default Queue} wl_pointer#681.motion(187310671, 24.60156250, 13.80078125) -[2619041.869] {Default Queue} wl_pointer#713.motion(187310671, 24.60156250, 13.80078125) -[2619041.873] {Default Queue} wl_pointer#745.motion(187310671, 24.60156250, 13.80078125) -[2619041.881] {Default Queue} wl_pointer#777.motion(187310671, 24.60156250, 13.80078125) -[2619041.887] {Default Queue} wl_pointer#809.motion(187310671, 24.60156250, 13.80078125) -[2619041.891] {Default Queue} wl_pointer#841.motion(187310671, 24.60156250, 13.80078125) -[2619041.895] {Default Queue} wl_pointer#873.motion(187310671, 24.60156250, 13.80078125) -[2619041.899] {Default Queue} wl_pointer#905.motion(187310671, 24.60156250, 13.80078125) -[2619041.903] {Default Queue} wl_pointer#937.motion(187310671, 24.60156250, 13.80078125) -[2619041.907] {Default Queue} wl_pointer#969.motion(187310671, 24.60156250, 13.80078125) -[2619041.911] {Default Queue} wl_pointer#1001.motion(187310671, 24.60156250, 13.80078125) -[2619041.915] {Default Queue} wl_pointer#1033.motion(187310671, 24.60156250, 13.80078125) -[2619041.919] {Default Queue} wl_pointer#1065.motion(187310671, 24.60156250, 13.80078125) -[2619041.923] {Default Queue} wl_pointer#1097.motion(187310671, 24.60156250, 13.80078125) -[2619041.927] {Default Queue} wl_pointer#1129.motion(187310671, 24.60156250, 13.80078125) -[2619041.931] {Default Queue} wl_pointer#1161.motion(187310671, 24.60156250, 13.80078125) -[2619041.935] {Default Queue} wl_pointer#1193.motion(187310671, 24.60156250, 13.80078125) -[2619041.940] {Default Queue} wl_pointer#1225.motion(187310671, 24.60156250, 13.80078125) -[2619041.944] {Default Queue} wl_pointer#1257.motion(187310671, 24.60156250, 13.80078125) -[2619041.948] {Default Queue} wl_pointer#1289.motion(187310671, 24.60156250, 13.80078125) -[2619041.952] {Default Queue} wl_pointer#1321.motion(187310671, 24.60156250, 13.80078125) -[2619041.956] {Default Queue} wl_pointer#1353.motion(187310671, 24.60156250, 13.80078125) -[2619041.960] {Default Queue} wl_pointer#1385.motion(187310671, 24.60156250, 13.80078125) -[2619041.964] {Default Queue} wl_pointer#1417.motion(187310671, 24.60156250, 13.80078125) -[2619041.968] {Default Queue} wl_pointer#1449.motion(187310671, 24.60156250, 13.80078125) -[2619041.972] {Default Queue} wl_pointer#1481.motion(187310671, 24.60156250, 13.80078125) -[2619041.976] {Default Queue} wl_pointer#1513.motion(187310671, 24.60156250, 13.80078125) -[2619041.980] {Default Queue} wl_pointer#1545.motion(187310671, 24.60156250, 13.80078125) -[2619041.984] {Default Queue} wl_pointer#1577.motion(187310671, 24.60156250, 13.80078125) -[2619041.988] {Default Queue} wl_pointer#1609.motion(187310671, 24.60156250, 13.80078125) -[2619041.992] {Default Queue} wl_pointer#1641.motion(187310671, 24.60156250, 13.80078125) -[2619041.996] {Default Queue} wl_pointer#1673.motion(187310671, 24.60156250, 13.80078125) -[2619042.000] {Default Queue} wl_pointer#1705.motion(187310671, 24.60156250, 13.80078125) -[2619042.004] {Default Queue} wl_pointer#1737.motion(187310671, 24.60156250, 13.80078125) -[2619042.009] {Default Queue} wl_pointer#1762.motion(187310671, 24.60156250, 13.80078125) -[2619042.013] {Default Queue} wl_pointer#1801.motion(187310671, 24.60156250, 13.80078125) -[2619042.017] {Default Queue} wl_pointer#1833.motion(187310671, 24.60156250, 13.80078125) -[2619042.021] {Default Queue} wl_pointer#1865.motion(187310671, 24.60156250, 13.80078125) -[2619042.025] {Default Queue} wl_pointer#1897.motion(187310671, 24.60156250, 13.80078125) -[2619042.029] {Default Queue} wl_pointer#1929.motion(187310671, 24.60156250, 13.80078125) -[2619042.033] {Default Queue} wl_pointer#1961.motion(187310671, 24.60156250, 13.80078125) -[2619042.037] {Default Queue} wl_pointer#1993.motion(187310671, 24.60156250, 13.80078125) -[2619042.041] {Default Queue} wl_pointer#2025.motion(187310671, 24.60156250, 13.80078125) -[2619042.045] {Default Queue} wl_pointer#2057.motion(187310671, 24.60156250, 13.80078125) -[2619042.049] {Default Queue} wl_pointer#2089.motion(187310671, 24.60156250, 13.80078125) -[2619042.053] {Default Queue} wl_pointer#2121.motion(187310671, 24.60156250, 13.80078125) -[2619042.057] {Default Queue} wl_pointer#2153.motion(187310671, 24.60156250, 13.80078125) -[2619042.061] {Default Queue} wl_pointer#2185.motion(187310671, 24.60156250, 13.80078125) -[2619042.065] {Default Queue} wl_pointer#2217.motion(187310671, 24.60156250, 13.80078125) -[2619042.073] {Default Queue} wl_pointer#2249.motion(187310671, 24.60156250, 13.80078125) -[2619042.078] {Default Queue} wl_pointer#2281.motion(187310671, 24.60156250, 13.80078125) -[2619042.082] {Default Queue} wl_pointer#2313.motion(187310671, 24.60156250, 13.80078125) -[2619042.086] {Default Queue} wl_pointer#2345.motion(187310671, 24.60156250, 13.80078125) -[2619042.091] {Default Queue} wl_pointer#2377.motion(187310671, 24.60156250, 13.80078125) -[2619042.095] {Default Queue} wl_pointer#2409.motion(187310671, 24.60156250, 13.80078125) -[2619042.099] {Default Queue} wl_pointer#2441.motion(187310671, 24.60156250, 13.80078125) -[2619042.103] {Default Queue} wl_pointer#2473.motion(187310671, 24.60156250, 13.80078125) -[2619042.107] {Default Queue} wl_pointer#2498.motion(187310671, 24.60156250, 13.80078125) -[2619042.119] {Default Queue} -> wl_buffer#189.destroy() -[2619042.123] {Default Queue} -> wl_buffer#190.destroy() -[2619042.127] {Default Queue} -> wl_shm_pool#187.destroy() -[2619042.131] {Default Queue} -> wl_shm_pool#188.destroy() -[2619042.136] {Default Queue} -> wl_surface#476.destroy() -[2619042.170] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3326, fd 575, 640) -[2619042.176] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3323, fd 578, 640) -[2619042.180] {Default Queue} -> wl_shm_pool#3326.create_buffer(new id wl_buffer#3131, 0, 10, 16, 40, 0) -[2619042.185] {Default Queue} -> wl_shm_pool#3323.create_buffer(new id wl_buffer#3325, 0, 10, 16, 40, 0) -[2619042.192] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3324) -[2619042.196] {Default Queue} -> wl_surface#3324.attach(wl_buffer#3131, 0, 0) -[2619042.200] {Default Queue} -> wl_surface#3324.commit() -[2619042.205] {Default Queue} -> wl_surface#3324.attach(wl_buffer#3131, 0, 0) -[2619042.209] {Default Queue} -> wl_surface#3324.commit() -[2619042.213] {Default Queue} wl_pointer#2537.motion(187310671, 24.60156250, 13.80078125) -[2619042.217] {Default Queue} wl_pointer#2569.motion(187310671, 24.60156250, 13.80078125) -[2619042.221] {Default Queue} wl_pointer#2601.motion(187310671, 24.60156250, 13.80078125) -[2619042.225] {Default Queue} wl_pointer#2633.motion(187310671, 24.60156250, 13.80078125) -[2619042.229] {Default Queue} wl_pointer#2665.motion(187310671, 24.60156250, 13.80078125) -[2619042.233] {Default Queue} wl_pointer#2697.motion(187310671, 24.60156250, 13.80078125) -[2619042.238] {Default Queue} wl_pointer#2729.motion(187310671, 24.60156250, 13.80078125) -[2619042.242] {Default Queue} wl_pointer#2761.motion(187310671, 24.60156250, 13.80078125) -[2619042.246] {Default Queue} wl_pointer#2793.motion(187310671, 24.60156250, 13.80078125) -[2619042.250] {Default Queue} wl_pointer#2825.motion(187310671, 24.60156250, 13.80078125) -[2619042.254] {Default Queue} wl_pointer#2857.motion(187310671, 24.60156250, 13.80078125) -[2619042.258] {Default Queue} wl_pointer#2889.motion(187310671, 24.60156250, 13.80078125) -[2619042.262] {Default Queue} wl_pointer#2921.motion(187310671, 24.60156250, 13.80078125) -[2619042.266] {Default Queue} wl_pointer#2953.motion(187310671, 24.60156250, 13.80078125) -[2619042.270] {Default Queue} wl_pointer#2985.motion(187310671, 24.60156250, 13.80078125) -[2619042.274] {Default Queue} wl_pointer#3017.motion(187310671, 24.60156250, 13.80078125) -[2619042.278] {Default Queue} wl_pointer#3049.motion(187310671, 24.60156250, 13.80078125) -[2619042.282] {Default Queue} wl_pointer#3081.motion(187310671, 24.60156250, 13.80078125) -[2619042.286] {Default Queue} wl_pointer#3113.motion(187310671, 24.60156250, 13.80078125) -[2619042.290] {Default Queue} wl_pointer#3145.motion(187310671, 24.60156250, 13.80078125) -[2619042.294] {Default Queue} wl_pointer#3177.motion(187310671, 24.60156250, 13.80078125) -[2619042.299] {Default Queue} wl_pointer#3209.motion(187310671, 24.60156250, 13.80078125) -[2619042.303] {Default Queue} wl_pointer#3241.motion(187310671, 24.60156250, 13.80078125) -[2619042.307] {Default Queue} wl_pointer#3273.motion(187310671, 24.60156250, 13.80078125) -[2619042.311] {Default Queue} wl_pointer#3305.motion(187310671, 24.60156250, 13.80078125) -[2619042.317] {Default Queue} wl_pointer#3337.motion(187310671, 24.60156250, 13.80078125) -[2619042.323] {Default Queue} wl_pointer#3369.motion(187310671, 24.60156250, 13.80078125) -[2619042.327] {Default Queue} wl_pointer#3401.motion(187310671, 24.60156250, 13.80078125) -[2619042.331] {Default Queue} wl_pointer#3433.motion(187310671, 24.60156250, 13.80078125) -[2619042.335] {Default Queue} wl_pointer#3465.motion(187310671, 24.60156250, 13.80078125) -[2619042.340] {Default Queue} wl_pointer#3497.motion(187310671, 24.60156250, 13.80078125) -[2619042.344] {Default Queue} wl_pointer#3529.motion(187310671, 24.60156250, 13.80078125) -[2619042.348] {Default Queue} wl_pointer#3561.motion(187310671, 24.60156250, 13.80078125) -[2619042.352] {Default Queue} wl_pointer#3593.motion(187310671, 24.60156250, 13.80078125) -[2619042.356] {Default Queue} wl_pointer#3625.motion(187310671, 24.60156250, 13.80078125) -[2619042.360] {Default Queue} wl_pointer#3657.motion(187310671, 24.60156250, 13.80078125) -[2619042.364] {Default Queue} wl_pointer#3695.motion(187310671, 24.60156250, 13.80078125) -[2619042.376] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) -[2619042.381] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) -[2619042.385] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2619042.389] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2619042.397] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) -[2619042.402] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) -[2619042.406] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2619042.410] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2619042.415] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) -[2619042.419] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) -[2619042.423] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2619042.427] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2619042.433] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) -[2619042.437] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) -[2619042.441] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2619042.445] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2619042.451] {Default Queue} -> wl_region#927.subtract(0, 0, 135, 216) -[2619042.455] {Default Queue} -> wl_region#927.add(-20, -49, 135, 216) -[2619042.459] {Default Queue} -> wl_surface#903.set_opaque_region(wl_region#928) -[2619042.463] {Default Queue} -> wl_surface#903.set_input_region(wl_region#927) -[2619042.470] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) -[2619042.474] {Default Queue} -> wl_surface#903.commit() -[2619042.479] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) -[2619042.483] {Default Queue} -> wl_surface#903.commit() -[2619042.490] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) -[2619042.494] {Default Queue} -> wl_surface#903.commit() -[2619042.500] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) -[2619042.504] {Default Queue} -> wl_surface#1511.commit() -[2619043.567] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) -[2619043.572] {Default Queue} -> wl_surface#1511.commit() -[2619043.581] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 236) -[2619043.585] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 236) -[2619043.589] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2619043.593] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2619043.686] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 236) -[2619043.691] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 236) -[2619043.695] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2619043.699] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2619043.706] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2619043.713] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2619043.783] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 236) -[2619043.790] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 236) -[2619043.795] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2619043.798] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2619043.804] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2619043.808] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2619043.813] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) -[2619043.817] {Default Queue} -> wl_surface#1511.commit() -[2619043.821] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) -[2619043.825] {Default Queue} -> wl_surface#1511.commit() -[2619043.830] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) -[2619043.834] {Default Queue} -> wl_surface#1511.commit() -[2619043.839] {Default Queue} -> wl_region#1599.subtract(0, 0, 2, 2) -[2619043.843] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 232) -[2619043.847] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 221) -[2619043.851] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619043.854] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619043.858] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2619043.900] {Default Queue} -> wl_buffer#1597.destroy() -[2619043.914] {Default Queue} -> wl_buffer#1598.destroy() -[2619043.919] {Default Queue} -> wl_shm_pool#1595.destroy() -[2619043.923] {Default Queue} -> wl_shm_pool#1596.destroy() -[2619043.973] {Default Queue} -> wl_shm#1583.create_pool(new id wl_shm_pool#3099, fd 575, 16) -[2619043.980] {Default Queue} -> wl_shm#1583.create_pool(new id wl_shm_pool#3614, fd 578, 16) -[2619043.984] {Default Queue} -> wl_shm_pool#3099.create_buffer(new id wl_buffer#3611, 0, 2, 2, 8, 0) -[2619043.990] {Default Queue} -> wl_shm_pool#3614.create_buffer(new id wl_buffer#1276, 0, 2, 2, 8, 0) -[2619043.997] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) -[2619044.001] {Default Queue} -> wl_surface#1575.commit() -[2619044.007] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) -[2619044.011] {Default Queue} -> wl_surface#1575.commit() -[2619044.023] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619044.027] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619044.032] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619044.035] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619044.044] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619044.048] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619044.052] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619044.056] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619044.065] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619044.069] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619044.073] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619044.077] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619044.082] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619044.086] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619044.090] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619044.094] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619044.099] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619044.103] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619044.107] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619044.111] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619044.166] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619044.170] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619044.174] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619044.182] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619044.191] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2619044.196] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2619044.204] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619044.209] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619044.212] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619044.216] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619044.221] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619044.225] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619044.229] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619044.232] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619044.237] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619044.241] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619044.245] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619044.249] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619044.253] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619044.257] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619044.261] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619044.265] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619044.272] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619044.276] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619044.280] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619044.283] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619044.288] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619044.292] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619044.296] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619044.299] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619044.304] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619044.308] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619044.312] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619044.315] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619044.321] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619044.325] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619044.328] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619044.332] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619044.337] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) -[2619044.341] {Default Queue} -> wl_surface#1575.commit() -[2619044.348] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) -[2619044.352] {Default Queue} -> wl_surface#1575.commit() -[2619045.420] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) -[2619045.432] {Default Queue} -> wl_surface#1575.commit() -[2619045.443] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619045.448] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619045.452] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619045.456] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619045.463] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619045.469] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619045.473] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619045.476] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619045.483] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619045.487] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619045.491] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619045.494] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619045.504] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619045.510] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619045.514] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619045.518] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619045.523] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619045.527] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619045.531] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619045.534] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619045.581] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619045.586] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619045.589] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619045.593] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619045.599] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2619045.603] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2619045.612] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619045.616] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619045.619] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619045.623] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619045.628] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619045.632] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619045.635] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619045.639] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619045.644] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619045.648] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619045.652] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619045.655] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619045.661] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619045.664] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619045.668] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619045.672] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619045.678] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619045.682] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619045.686] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619045.689] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619045.694] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619045.698] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619045.702] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619045.705] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619045.710] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619045.713] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619045.717] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619045.721] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619045.726] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619045.730] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619045.734] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619045.738] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619045.742] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) -[2619045.746] {Default Queue} -> wl_surface#1575.commit() -[2619045.750] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) -[2619045.754] {Default Queue} -> wl_surface#1575.commit() -[2619045.760] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) -[2619045.764] {Default Queue} -> wl_surface#1575.commit() -[2619045.770] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) -[2619045.777] {Default Queue} -> wl_surface#1543.commit() -[2619046.844] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) -[2619046.856] {Default Queue} -> wl_surface#1543.commit() -[2619046.873] {Default Queue} -> wl_region#1567.subtract(0, 0, 140, 241) -[2619046.878] {Default Queue} -> wl_region#1567.add(-138, -219, 140, 221) -[2619046.882] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) -[2619046.885] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) -[2619046.891] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) -[2619046.895] {Default Queue} -> wl_surface#1543.commit() -[2619046.899] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) -[2619046.903] {Default Queue} -> wl_surface#1543.commit() -[2619046.909] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) -[2619046.913] {Default Queue} -> wl_surface#1543.commit() -[2619046.918] {Default Queue} -> wl_region#1503.subtract(0, 0, 109, 161) -[2619046.925] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 236) -[2619046.929] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 236) -[2619046.933] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2619046.937] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2619047.037] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 236) -[2619047.042] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 236) -[2619047.046] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2619047.050] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2619047.057] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2619047.061] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2619047.135] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 236) -[2619047.140] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 236) -[2619047.144] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2619047.147] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2619047.153] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2619047.157] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2619047.162] {Default Queue} -> wl_region#1567.subtract(0, 0, 140, 241) -[2619047.166] {Default Queue} -> wl_region#1567.add(-138, -219, 140, 221) -[2619047.170] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) -[2619047.173] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) -[2619047.178] {Default Queue} -> wl_surface#1479.damage(0, 0, 109, 161) -[2619047.182] {Default Queue} -> wl_region#1503.subtract(0, 0, 247, 380) -[2619047.186] {Default Queue} -> wl_region#1503.add(-135, -216, 244, 377) -[2619047.189] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) -[2619047.193] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) -[2619047.197] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2619047.201] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2619047.205] {Default Queue} -> wl_surface#1543.damage(0, 0, 2, 2) -[2619047.208] {Default Queue} -> wl_surface#1479.damage(0, 0, 109, 161) -[2619047.222] {Default Queue} -> wl_buffer#3700.destroy() -[2619047.227] {Default Queue} -> wl_buffer#3701.destroy() -[2619047.231] {Default Queue} -> wl_shm_pool#3698.destroy() -[2619047.234] {Default Queue} -> wl_shm_pool#3699.destroy() -[2619047.319] {Default Queue} -> wl_shm#1487.create_pool(new id wl_shm_pool#3613, fd 575, 70196) -[2619047.327] {Default Queue} -> wl_shm#1487.create_pool(new id wl_shm_pool#2430, fd 578, 70196) -[2619047.331] {Default Queue} -> wl_shm_pool#3613.create_buffer(new id wl_buffer#2427, 0, 109, 161, 436, 0) -[2619047.336] {Default Queue} -> wl_shm_pool#2430.create_buffer(new id wl_buffer#2140, 0, 109, 161, 436, 0) -[2619047.357] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) -[2619047.361] {Default Queue} -> wl_surface#1479.commit() -[2619047.382] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) -[2619047.390] {Default Queue} -> wl_surface#1479.commit() -[2619047.401] {Default Queue} -> wl_region#1503.subtract(0, 0, 247, 380) -[2619047.405] {Default Queue} -> wl_region#1503.add(-135, -216, 244, 377) -[2619047.409] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) -[2619047.413] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) -[2619047.419] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) -[2619047.423] {Default Queue} -> wl_surface#1479.commit() -[2619047.431] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) -[2619047.434] {Default Queue} -> wl_surface#1479.commit() -[2619048.505] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) -[2619048.517] {Default Queue} -> wl_surface#1479.commit() -[2619048.529] {Default Queue} -> wl_region#1503.subtract(0, 0, 247, 380) -[2619048.535] {Default Queue} -> wl_region#1503.add(-135, -216, 244, 377) -[2619048.539] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) -[2619048.543] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) -[2619048.550] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) -[2619048.554] {Default Queue} -> wl_surface#1479.commit() -[2619048.559] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) -[2619048.562] {Default Queue} -> wl_surface#1479.commit() -[2619048.570] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) -[2619048.574] {Default Queue} -> wl_surface#1479.commit() -[2619048.589] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) -[2619048.593] {Default Queue} -> wl_surface#1447.commit() -[2619049.658] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) -[2619049.663] {Default Queue} -> wl_surface#1447.commit() -[2619049.673] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) -[2619049.677] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) -[2619049.681] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2619049.685] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2619049.693] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) -[2619049.697] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) -[2619049.701] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2619049.704] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2619049.710] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) -[2619049.714] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) -[2619049.718] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2619049.721] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2619049.727] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) -[2619049.731] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) -[2619049.735] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2619049.738] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2619049.744] {Default Queue} -> wl_region#1471.subtract(0, 0, 250, 383) -[2619049.748] {Default Queue} -> wl_region#1471.add(-20, -216, 135, 383) -[2619049.752] {Default Queue} -> wl_surface#1447.set_opaque_region(wl_region#1472) -[2619049.756] {Default Queue} -> wl_surface#1447.set_input_region(wl_region#1471) -[2619049.763] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) -[2619049.767] {Default Queue} -> wl_surface#1447.commit() -[2619049.772] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) -[2619049.775] {Default Queue} -> wl_surface#1447.commit() -[2619049.782] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) -[2619049.789] {Default Queue} -> wl_surface#1447.commit() -[2619049.795] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) -[2619049.800] {Default Queue} -> wl_surface#1671.commit() -[2619050.863] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) -[2619050.878] {Default Queue} -> wl_surface#1671.commit() -[2619050.890] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 236) -[2619050.900] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 236) -[2619050.907] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2619050.911] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2619050.974] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 236) -[2619050.978] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 236) -[2619050.982] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2619050.986] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2619050.993] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2619050.997] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2619051.037] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 236) -[2619051.041] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 236) -[2619051.045] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2619051.049] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2619051.054] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2619051.058] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2619051.063] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) -[2619051.067] {Default Queue} -> wl_surface#1671.commit() -[2619051.070] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) -[2619051.074] {Default Queue} -> wl_surface#1671.commit() -[2619051.080] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) -[2619051.086] {Default Queue} -> wl_surface#1671.commit() -[2619051.090] {Default Queue} -> wl_region#1759.subtract(0, 0, 2, 2) -[2619051.095] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 232) -[2619051.099] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 221) -[2619051.102] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2619051.106] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2619051.110] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) -[2619051.124] {Default Queue} -> wl_buffer#1757.destroy() -[2619051.129] {Default Queue} -> wl_buffer#1758.destroy() -[2619051.133] {Default Queue} -> wl_shm_pool#1755.destroy() -[2619051.136] {Default Queue} -> wl_shm_pool#1756.destroy() -[2619051.181] {Default Queue} -> wl_shm#1743.create_pool(new id wl_shm_pool#2429, fd 575, 16) -[2619051.186] {Default Queue} -> wl_shm#1743.create_pool(new id wl_shm_pool#2428, fd 578, 16) -[2619051.191] {Default Queue} -> wl_shm_pool#2429.create_buffer(new id wl_buffer#3132, 0, 2, 2, 8, 0) -[2619051.195] {Default Queue} -> wl_shm_pool#2428.create_buffer(new id wl_buffer#3035, 0, 2, 2, 8, 0) -[2619051.202] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) -[2619051.206] {Default Queue} -> wl_surface#1735.commit() -[2619051.211] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) -[2619051.215] {Default Queue} -> wl_surface#1735.commit() -[2619051.223] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) -[2619051.227] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) -[2619051.231] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2619051.235] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2619051.242] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) -[2619051.246] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) -[2619051.250] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2619051.253] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2619051.260] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) -[2619051.264] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) -[2619051.267] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2619051.271] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2619051.276] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) -[2619051.280] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) -[2619051.290] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2619051.295] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2619051.301] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) -[2619051.305] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) -[2619051.308] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2619051.312] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2619051.324] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) -[2619051.329] {Default Queue} -> wl_surface#1735.commit() -[2619051.334] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) -[2619051.338] {Default Queue} -> wl_surface#1735.commit() -[2619051.938] {Display Queue} wl_display#1.delete_id(1053) -[2619051.951] {Display Queue} wl_display#1.delete_id(1054) -[2619051.957] {Display Queue} wl_display#1.delete_id(1051) -[2619051.963] {Display Queue} wl_display#1.delete_id(1052) -[2619051.969] {Display Queue} wl_display#1.delete_id(62) -[2619051.975] {Display Queue} wl_display#1.delete_id(61) -[2619051.981] {Display Queue} wl_display#1.delete_id(60) -[2619051.987] {Display Queue} wl_display#1.delete_id(59) -[2619051.993] {Display Queue} wl_display#1.delete_id(189) -[2619051.999] {Display Queue} wl_display#1.delete_id(190) -[2619052.004] {Display Queue} wl_display#1.delete_id(187) -[2619052.010] {Display Queue} wl_display#1.delete_id(188) -[2619052.016] {Display Queue} wl_display#1.delete_id(476) -[2619052.021] {Display Queue} wl_display#1.delete_id(1597) -[2619052.027] {Display Queue} wl_display#1.delete_id(1598) -[2619052.033] {Display Queue} wl_display#1.delete_id(1595) -[2619052.038] {Display Queue} wl_display#1.delete_id(1596) -[2619052.044] {Default Queue} wl_pointer#24.motion(187310681, 24.19921875, 13.80078125) -[2619052.051] {Default Queue} wl_pointer#81.motion(187310681, 24.19921875, 13.80078125) -[2619052.060] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619052.070] {Default Queue} wl_pointer#105.motion(187310681, 24.19921875, 13.80078125) -[2619052.079] {Default Queue} wl_pointer#137.motion(187310681, 24.19921875, 13.80078125) -[2619052.090] {Default Queue} wl_pointer#169.motion(187310681, 24.19921875, 13.80078125) -[2619052.096] {Default Queue} wl_pointer#201.motion(187310681, 24.19921875, 13.80078125) -[2619052.102] {Default Queue} wl_pointer#233.motion(187310681, 24.19921875, 13.80078125) -[2619052.109] {Default Queue} wl_pointer#265.motion(187310681, 24.19921875, 13.80078125) -[2619052.115] {Default Queue} wl_pointer#297.motion(187310681, 24.19921875, 13.80078125) -[2619052.121] {Default Queue} wl_pointer#329.motion(187310681, 24.19921875, 13.80078125) -[2619052.127] {Default Queue} wl_pointer#361.motion(187310681, 24.19921875, 13.80078125) -[2619052.133] {Default Queue} wl_pointer#393.motion(187310681, 24.19921875, 13.80078125) -[2619052.139] {Default Queue} wl_pointer#425.motion(187310681, 24.19921875, 13.80078125) -[2619052.145] {Default Queue} wl_pointer#457.motion(187310681, 24.19921875, 13.80078125) -[2619052.151] {Default Queue} wl_pointer#489.motion(187310681, 24.19921875, 13.80078125) -[2619052.157] {Default Queue} wl_pointer#521.motion(187310681, 24.19921875, 13.80078125) -[2619052.164] {Default Queue} wl_pointer#553.motion(187310681, 24.19921875, 13.80078125) -[2619052.170] {Default Queue} wl_pointer#585.motion(187310681, 24.19921875, 13.80078125) -[2619052.176] {Default Queue} wl_pointer#617.motion(187310681, 24.19921875, 13.80078125) -[2619052.182] {Default Queue} wl_pointer#649.motion(187310681, 24.19921875, 13.80078125) -[2619052.188] {Default Queue} wl_pointer#681.motion(187310681, 24.19921875, 13.80078125) -[2619052.194] {Default Queue} wl_pointer#713.motion(187310681, 24.19921875, 13.80078125) -[2619052.200] {Default Queue} wl_pointer#745.motion(187310681, 24.19921875, 13.80078125) -[2619052.206] {Default Queue} wl_pointer#777.motion(187310681, 24.19921875, 13.80078125) -[2619052.213] {Default Queue} wl_pointer#809.motion(187310681, 24.19921875, 13.80078125) -[2619052.219] {Default Queue} wl_pointer#841.motion(187310681, 24.19921875, 13.80078125) -[2619052.231] {Default Queue} wl_pointer#873.motion(187310681, 24.19921875, 13.80078125) -[2619052.241] {Default Queue} wl_pointer#905.motion(187310681, 24.19921875, 13.80078125) -[2619052.247] {Default Queue} wl_pointer#937.motion(187310681, 24.19921875, 13.80078125) -[2619052.254] {Default Queue} wl_pointer#969.motion(187310681, 24.19921875, 13.80078125) -[2619052.260] {Default Queue} wl_pointer#1001.motion(187310681, 24.19921875, 13.80078125) -[2619052.266] {Default Queue} wl_pointer#1033.motion(187310681, 24.19921875, 13.80078125) -[2619052.272] {Default Queue} wl_pointer#1065.motion(187310681, 24.19921875, 13.80078125) -[2619052.278] {Default Queue} wl_pointer#1097.motion(187310681, 24.19921875, 13.80078125) -[2619052.284] {Default Queue} wl_pointer#1129.motion(187310681, 24.19921875, 13.80078125) -[2619052.290] {Default Queue} wl_pointer#1161.motion(187310681, 24.19921875, 13.80078125) -[2619052.296] {Default Queue} wl_pointer#1193.motion(187310681, 24.19921875, 13.80078125) -[2619052.302] {Default Queue} wl_pointer#1225.motion(187310681, 24.19921875, 13.80078125) -[2619052.308] {Default Queue} wl_pointer#1257.motion(187310681, 24.19921875, 13.80078125) -[2619052.314] {Default Queue} wl_pointer#1289.motion(187310681, 24.19921875, 13.80078125) -[2619052.320] {Default Queue} wl_pointer#1321.motion(187310681, 24.19921875, 13.80078125) -[2619052.326] {Default Queue} wl_pointer#1353.motion(187310681, 24.19921875, 13.80078125) -[2619052.332] {Default Queue} wl_pointer#1385.motion(187310681, 24.19921875, 13.80078125) -[2619052.338] {Default Queue} wl_pointer#1417.motion(187310681, 24.19921875, 13.80078125) -[2619052.344] {Default Queue} wl_pointer#1449.motion(187310681, 24.19921875, 13.80078125) -[2619052.350] {Default Queue} wl_pointer#1481.motion(187310681, 24.19921875, 13.80078125) -[2619052.356] {Default Queue} wl_pointer#1513.motion(187310681, 24.19921875, 13.80078125) -[2619052.363] {Default Queue} wl_pointer#1545.motion(187310681, 24.19921875, 13.80078125) -[2619052.369] {Default Queue} wl_pointer#1577.motion(187310681, 24.19921875, 13.80078125) -[2619052.375] {Default Queue} wl_pointer#1609.motion(187310681, 24.19921875, 13.80078125) -[2619052.382] {Default Queue} wl_pointer#1641.motion(187310681, 24.19921875, 13.80078125) -[2619052.388] {Default Queue} wl_pointer#1673.motion(187310681, 24.19921875, 13.80078125) -[2619052.394] {Default Queue} wl_pointer#1705.motion(187310681, 24.19921875, 13.80078125) -[2619052.400] {Default Queue} wl_pointer#1737.motion(187310681, 24.19921875, 13.80078125) -[2619052.406] {Default Queue} wl_pointer#1762.motion(187310681, 24.19921875, 13.80078125) -[2619052.413] {Default Queue} wl_pointer#1801.motion(187310681, 24.19921875, 13.80078125) -[2619052.419] {Default Queue} wl_pointer#1833.motion(187310681, 24.19921875, 13.80078125) -[2619052.425] {Default Queue} wl_pointer#1865.motion(187310681, 24.19921875, 13.80078125) -[2619052.431] {Default Queue} wl_pointer#1897.motion(187310681, 24.19921875, 13.80078125) -[2619052.437] {Default Queue} wl_pointer#1929.motion(187310681, 24.19921875, 13.80078125) -[2619052.443] {Default Queue} wl_pointer#1961.motion(187310681, 24.19921875, 13.80078125) -[2619052.449] {Default Queue} wl_pointer#1993.motion(187310681, 24.19921875, 13.80078125) -[2619052.455] {Default Queue} wl_pointer#2025.motion(187310681, 24.19921875, 13.80078125) -[2619052.462] {Default Queue} wl_pointer#2057.motion(187310681, 24.19921875, 13.80078125) -[2619052.468] {Default Queue} wl_pointer#2089.motion(187310681, 24.19921875, 13.80078125) -[2619052.474] {Default Queue} wl_pointer#2121.motion(187310681, 24.19921875, 13.80078125) -[2619052.480] {Default Queue} wl_pointer#2153.motion(187310681, 24.19921875, 13.80078125) -[2619052.486] {Default Queue} wl_pointer#2185.motion(187310681, 24.19921875, 13.80078125) -[2619052.492] {Default Queue} wl_pointer#2217.motion(187310681, 24.19921875, 13.80078125) -[2619052.498] {Default Queue} wl_pointer#2249.motion(187310681, 24.19921875, 13.80078125) -[2619052.504] {Default Queue} wl_pointer#2281.motion(187310681, 24.19921875, 13.80078125) -[2619052.515] {Default Queue} wl_pointer#2313.motion(187310681, 24.19921875, 13.80078125) -[2619052.524] {Default Queue} wl_pointer#2345.motion(187310681, 24.19921875, 13.80078125) -[2619052.530] {Default Queue} wl_pointer#2377.motion(187310681, 24.19921875, 13.80078125) -[2619052.536] {Default Queue} wl_pointer#2409.motion(187310681, 24.19921875, 13.80078125) -[2619052.542] {Default Queue} wl_pointer#2441.motion(187310681, 24.19921875, 13.80078125) -[2619052.549] {Default Queue} wl_pointer#2473.motion(187310681, 24.19921875, 13.80078125) -[2619052.555] {Default Queue} wl_pointer#2498.motion(187310681, 24.19921875, 13.80078125) -[2619052.572] {Default Queue} -> wl_buffer#3131.destroy() -[2619052.579] {Default Queue} -> wl_buffer#3325.destroy() -[2619052.585] {Default Queue} -> wl_shm_pool#3326.destroy() -[2619052.591] {Default Queue} -> wl_shm_pool#3323.destroy() -[2619052.598] {Default Queue} -> wl_surface#3324.destroy() -[2619052.652] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#1596, fd 575, 640) -[2619052.662] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#1595, fd 578, 640) -[2619052.668] {Default Queue} -> wl_shm_pool#1596.create_buffer(new id wl_buffer#1598, 0, 10, 16, 40, 0) -[2619052.675] {Default Queue} -> wl_shm_pool#1595.create_buffer(new id wl_buffer#1597, 0, 10, 16, 40, 0) -[2619052.685] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#476) -[2619052.692] {Default Queue} -> wl_surface#476.attach(wl_buffer#1598, 0, 0) -[2619052.698] {Default Queue} -> wl_surface#476.commit() -[2619052.706] {Default Queue} -> wl_surface#476.attach(wl_buffer#1598, 0, 0) -[2619052.712] {Default Queue} -> wl_surface#476.commit() -[2619052.718] {Default Queue} wl_pointer#2537.motion(187310681, 24.19921875, 13.80078125) -[2619052.724] {Default Queue} wl_pointer#2569.motion(187310681, 24.19921875, 13.80078125) -[2619052.729] {Default Queue} wl_pointer#2601.motion(187310681, 24.19921875, 13.80078125) -[2619052.733] {Default Queue} wl_pointer#2633.motion(187310681, 24.19921875, 13.80078125) -[2619052.737] {Default Queue} wl_pointer#2665.motion(187310681, 24.19921875, 13.80078125) -[2619052.741] {Default Queue} wl_pointer#2697.motion(187310681, 24.19921875, 13.80078125) -[2619052.745] {Default Queue} wl_pointer#2729.motion(187310681, 24.19921875, 13.80078125) -[2619052.749] {Default Queue} wl_pointer#2761.motion(187310681, 24.19921875, 13.80078125) -[2619052.753] {Default Queue} wl_pointer#2793.motion(187310681, 24.19921875, 13.80078125) -[2619052.757] {Default Queue} wl_pointer#2825.motion(187310681, 24.19921875, 13.80078125) -[2619052.761] {Default Queue} wl_pointer#2857.motion(187310681, 24.19921875, 13.80078125) -[2619052.766] {Default Queue} wl_pointer#2889.motion(187310681, 24.19921875, 13.80078125) -[2619052.770] {Default Queue} wl_pointer#2921.motion(187310681, 24.19921875, 13.80078125) -[2619052.774] {Default Queue} wl_pointer#2953.motion(187310681, 24.19921875, 13.80078125) -[2619052.778] {Default Queue} wl_pointer#2985.motion(187310681, 24.19921875, 13.80078125) -[2619052.782] {Default Queue} wl_pointer#3017.motion(187310681, 24.19921875, 13.80078125) -[2619052.786] {Default Queue} wl_pointer#3049.motion(187310681, 24.19921875, 13.80078125) -[2619052.790] {Default Queue} wl_pointer#3081.motion(187310681, 24.19921875, 13.80078125) -[2619052.794] {Default Queue} wl_pointer#3113.motion(187310681, 24.19921875, 13.80078125) -[2619052.798] {Default Queue} wl_pointer#3145.motion(187310681, 24.19921875, 13.80078125) -[2619052.802] {Default Queue} wl_pointer#3177.motion(187310681, 24.19921875, 13.80078125) -[2619052.806] {Default Queue} wl_pointer#3209.motion(187310681, 24.19921875, 13.80078125) -[2619052.810] {Default Queue} wl_pointer#3241.motion(187310681, 24.19921875, 13.80078125) -[2619052.815] {Default Queue} wl_pointer#3273.motion(187310681, 24.19921875, 13.80078125) -[2619052.819] {Default Queue} wl_pointer#3305.motion(187310681, 24.19921875, 13.80078125) -[2619052.824] {Default Queue} wl_pointer#3337.motion(187310681, 24.19921875, 13.80078125) -[2619052.828] {Default Queue} wl_pointer#3369.motion(187310681, 24.19921875, 13.80078125) -[2619052.834] {Default Queue} wl_pointer#3401.motion(187310681, 24.19921875, 13.80078125) -[2619052.840] {Default Queue} wl_pointer#3433.motion(187310681, 24.19921875, 13.80078125) -[2619052.845] {Default Queue} wl_pointer#3465.motion(187310681, 24.19921875, 13.80078125) -[2619052.849] {Default Queue} wl_pointer#3497.motion(187310681, 24.19921875, 13.80078125) -[2619052.853] {Default Queue} wl_pointer#3529.motion(187310681, 24.19921875, 13.80078125) -[2619052.857] {Default Queue} wl_pointer#3561.motion(187310681, 24.19921875, 13.80078125) -[2619052.869] {Default Queue} wl_pointer#3593.motion(187310681, 24.19921875, 13.80078125) -[2619052.891] {Default Queue} wl_pointer#3625.motion(187310681, 24.19921875, 13.80078125) -[2619052.895] {Default Queue} wl_pointer#3657.motion(187310681, 24.19921875, 13.80078125) -[2619052.900] {Default Queue} wl_pointer#3695.motion(187310681, 24.19921875, 13.80078125) -[2619052.912] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) -[2619052.917] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) -[2619052.921] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2619052.925] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2619052.933] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) -[2619052.937] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) -[2619052.941] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2619052.945] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2619052.953] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) -[2619052.957] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) -[2619052.961] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2619052.965] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2619052.970] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) -[2619052.974] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) -[2619052.978] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2619052.982] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2619052.988] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) -[2619052.992] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) -[2619052.997] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2619053.000] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2619053.015] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) -[2619053.020] {Default Queue} -> wl_surface#1735.commit() -[2619053.024] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) -[2619053.028] {Default Queue} -> wl_surface#1735.commit() -[2619053.034] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) -[2619053.038] {Default Queue} -> wl_surface#1735.commit() -[2619053.044] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) -[2619053.048] {Default Queue} -> wl_surface#1703.commit() -[2619054.112] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) -[2619054.118] {Default Queue} -> wl_surface#1703.commit() -[2619054.124] {Default Queue} -> wl_region#1727.subtract(0, 0, 255, 241) -[2619054.129] {Default Queue} -> wl_region#1727.add(-253, -219, 255, 221) -[2619054.133] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) -[2619054.137] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) -[2619054.142] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) -[2619054.146] {Default Queue} -> wl_surface#1703.commit() -[2619054.150] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) -[2619054.154] {Default Queue} -> wl_surface#1703.commit() -[2619054.159] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) -[2619054.164] {Default Queue} -> wl_surface#1703.commit() -[2619054.168] {Default Queue} -> wl_region#1663.subtract(0, 0, 109, 161) -[2619054.175] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 236) -[2619054.179] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 236) -[2619054.188] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2619054.194] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2619054.256] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 236) -[2619054.261] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 236) -[2619054.265] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2619054.269] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2619054.276] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2619054.281] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2619054.320] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 236) -[2619054.326] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 236) -[2619054.330] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2619054.334] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2619054.339] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2619054.343] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2619054.349] {Default Queue} -> wl_region#1727.subtract(0, 0, 255, 241) -[2619054.353] {Default Queue} -> wl_region#1727.add(-253, -219, 255, 221) -[2619054.357] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) -[2619054.361] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) -[2619054.366] {Default Queue} -> wl_surface#1639.damage(0, 0, 109, 161) -[2619054.370] {Default Queue} -> wl_region#1663.subtract(0, 0, 362, 380) -[2619054.374] {Default Queue} -> wl_region#1663.add(-250, -216, 359, 377) -[2619054.378] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) -[2619054.382] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) -[2619054.386] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2619054.391] {Default Queue} -> wl_surface#1735.damage(0, 0, 2, 2) -[2619054.395] {Default Queue} -> wl_surface#1703.damage(0, 0, 2, 2) -[2619054.399] {Default Queue} -> wl_surface#1639.damage(0, 0, 109, 161) -[2619054.412] {Default Queue} -> wl_buffer#3704.destroy() -[2619054.418] {Default Queue} -> wl_buffer#3705.destroy() -[2619054.421] {Default Queue} -> wl_shm_pool#3702.destroy() -[2619054.425] {Default Queue} -> wl_shm_pool#3703.destroy() -[2619054.508] {Default Queue} -> wl_shm#1647.create_pool(new id wl_shm_pool#188, fd 575, 70196) -[2619054.515] {Default Queue} -> wl_shm#1647.create_pool(new id wl_shm_pool#187, fd 578, 70196) -[2619054.520] {Default Queue} -> wl_shm_pool#188.create_buffer(new id wl_buffer#190, 0, 109, 161, 436, 0) -[2619054.524] {Default Queue} -> wl_shm_pool#187.create_buffer(new id wl_buffer#189, 0, 109, 161, 436, 0) -[2619054.546] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) -[2619054.551] {Default Queue} -> wl_surface#1639.commit() -[2619054.571] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) -[2619054.576] {Default Queue} -> wl_surface#1639.commit() -[2619054.584] {Default Queue} -> wl_region#1663.subtract(0, 0, 362, 380) -[2619054.589] {Default Queue} -> wl_region#1663.add(-250, -216, 359, 377) -[2619054.593] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) -[2619054.597] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) -[2619054.604] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) -[2619054.608] {Default Queue} -> wl_surface#1639.commit() -[2619054.615] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) -[2619054.619] {Default Queue} -> wl_surface#1639.commit() -[2619055.684] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) -[2619055.690] {Default Queue} -> wl_surface#1639.commit() -[2619055.697] {Default Queue} -> wl_region#1663.subtract(0, 0, 362, 380) -[2619055.701] {Default Queue} -> wl_region#1663.add(-250, -216, 359, 377) -[2619055.705] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) -[2619055.709] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) -[2619055.716] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) -[2619055.724] {Default Queue} -> wl_surface#1639.commit() -[2619055.731] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) -[2619055.735] {Default Queue} -> wl_surface#1639.commit() -[2619055.742] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) -[2619055.746] {Default Queue} -> wl_surface#1639.commit() -[2619055.757] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) -[2619055.762] {Default Queue} -> wl_surface#1607.commit() -[2619056.824] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) -[2619056.829] {Default Queue} -> wl_surface#1607.commit() -[2619056.838] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) -[2619056.843] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) -[2619056.847] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2619056.851] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2619056.859] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) -[2619056.869] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) -[2619056.873] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2619056.877] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2619056.882] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) -[2619056.886] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) -[2619056.891] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2619056.894] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2619056.900] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) -[2619056.904] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) -[2619056.908] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2619056.912] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2619056.918] {Default Queue} -> wl_region#1631.subtract(0, 0, 365, 383) -[2619056.923] {Default Queue} -> wl_region#1631.add(-20, -216, 135, 383) -[2619056.927] {Default Queue} -> wl_surface#1607.set_opaque_region(wl_region#1632) -[2619056.930] {Default Queue} -> wl_surface#1607.set_input_region(wl_region#1631) -[2619056.937] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) -[2619056.941] {Default Queue} -> wl_surface#1607.commit() -[2619056.946] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) -[2619056.950] {Default Queue} -> wl_surface#1607.commit() -[2619056.957] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) -[2619056.961] {Default Queue} -> wl_surface#1607.commit() -[2619056.967] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) -[2619056.971] {Default Queue} -> wl_surface#1831.commit() -[2619058.032] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) -[2619058.037] {Default Queue} -> wl_surface#1831.commit() -[2619058.045] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 236) -[2619058.050] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 236) -[2619058.054] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2619058.057] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2619058.133] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 236) -[2619058.138] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 236) -[2619058.142] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2619058.146] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2619058.152] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2619058.157] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2619058.204] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 236) -[2619058.211] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 236) -[2619058.214] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2619058.218] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2619058.223] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2619058.231] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2619058.238] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) -[2619058.242] {Default Queue} -> wl_surface#1831.commit() -[2619058.246] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) -[2619058.250] {Default Queue} -> wl_surface#1831.commit() -[2619058.255] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) -[2619058.259] {Default Queue} -> wl_surface#1831.commit() -[2619058.264] {Default Queue} -> wl_region#1919.subtract(0, 0, 2, 2) -[2619058.268] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 221) -[2619058.272] {Default Queue} -> wl_region#1919.add(-368, -239, 369, 220) -[2619058.276] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) -[2619058.280] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) -[2619058.284] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2619058.298] {Default Queue} -> wl_buffer#1917.destroy() -[2619058.304] {Default Queue} -> wl_buffer#1918.destroy() -[2619058.308] {Default Queue} -> wl_shm_pool#1915.destroy() -[2619058.312] {Default Queue} -> wl_shm_pool#1916.destroy() -[2619058.351] {Default Queue} -> wl_shm#1903.create_pool(new id wl_shm_pool#59, fd 575, 16) -[2619058.358] {Default Queue} -> wl_shm#1903.create_pool(new id wl_shm_pool#60, fd 578, 16) -[2619058.362] {Default Queue} -> wl_shm_pool#59.create_buffer(new id wl_buffer#61, 0, 2, 2, 8, 0) -[2619058.367] {Default Queue} -> wl_shm_pool#60.create_buffer(new id wl_buffer#62, 0, 2, 2, 8, 0) -[2619058.374] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) -[2619058.378] {Default Queue} -> wl_surface#1895.commit() -[2619058.383] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) -[2619058.387] {Default Queue} -> wl_surface#1895.commit() -[2619058.395] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 241) -[2619058.400] {Default Queue} -> wl_region#1919.add(-368, -239, 369, 240) -[2619058.404] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) -[2619058.408] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) -[2619058.414] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 241) -[2619058.418] {Default Queue} -> wl_region#1919.add(-368, -239, 369, 240) -[2619058.422] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) -[2619058.426] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) -[2619058.436] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2619058.441] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2619058.445] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) -[2619058.449] {Default Queue} -> wl_surface#1895.commit() -[2619058.455] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) -[2619058.459] {Default Queue} -> wl_surface#1895.commit() -[2619059.521] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) -[2619059.527] {Default Queue} -> wl_surface#1895.commit() -[2619059.532] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 241) -[2619059.536] {Default Queue} -> wl_region#1919.add(-368, -239, 369, 240) -[2619059.540] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) -[2619059.544] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) -[2619059.549] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 241) -[2619059.553] {Default Queue} -> wl_region#1919.add(-368, -239, 369, 240) -[2619059.557] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) -[2619059.561] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) -[2619059.567] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2619059.571] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2619059.575] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) -[2619059.579] {Default Queue} -> wl_surface#1895.commit() -[2619059.583] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) -[2619059.587] {Default Queue} -> wl_surface#1895.commit() -[2619059.592] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) -[2619059.600] {Default Queue} -> wl_surface#1895.commit() -[2619059.607] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) -[2619059.611] {Default Queue} -> wl_surface#1863.commit() -[2619060.675] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) -[2619060.684] {Default Queue} -> wl_surface#1863.commit() -[2619060.694] {Default Queue} -> wl_region#1887.subtract(0, 0, 370, 241) -[2619060.701] {Default Queue} -> wl_region#1887.add(-368, -219, 370, 221) -[2619060.707] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) -[2619060.713] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) -[2619060.721] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) -[2619060.727] {Default Queue} -> wl_surface#1863.commit() -[2619060.733] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) -[2619060.738] {Default Queue} -> wl_surface#1863.commit() -[2619060.747] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) -[2619060.752] {Default Queue} -> wl_surface#1863.commit() -[2619060.756] {Default Queue} -> wl_region#1823.subtract(0, 0, 109, 161) -[2619060.762] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 236) -[2619060.767] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 236) -[2619060.771] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2619060.775] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2619060.840] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 236) -[2619060.845] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 236) -[2619060.849] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2619060.853] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2619060.859] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2619060.869] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2619060.914] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 236) -[2619060.919] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 236) -[2619060.923] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2619060.927] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2619060.933] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2619060.937] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2619060.942] {Default Queue} -> wl_region#1887.subtract(0, 0, 370, 241) -[2619060.946] {Default Queue} -> wl_region#1887.add(-368, -219, 370, 221) -[2619060.950] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) -[2619060.954] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) -[2619060.959] {Default Queue} -> wl_surface#1799.damage(0, 0, 109, 161) -[2619060.963] {Default Queue} -> wl_region#1823.subtract(0, 0, 477, 380) -[2619060.967] {Default Queue} -> wl_region#1823.add(-365, -216, 474, 377) -[2619060.971] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) -[2619060.975] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) -[2619060.979] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2619060.983] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2619060.987] {Default Queue} -> wl_surface#1863.damage(0, 0, 2, 2) -[2619060.991] {Default Queue} -> wl_surface#1799.damage(0, 0, 109, 161) -[2619061.003] {Default Queue} -> wl_buffer#3708.destroy() -[2619061.008] {Default Queue} -> wl_buffer#3709.destroy() -[2619061.012] {Default Queue} -> wl_shm_pool#3706.destroy() -[2619061.016] {Default Queue} -> wl_shm_pool#3707.destroy() -[2619061.102] {Default Queue} -> wl_shm#1807.create_pool(new id wl_shm_pool#1052, fd 575, 70196) -[2619061.109] {Default Queue} -> wl_shm#1807.create_pool(new id wl_shm_pool#1051, fd 578, 70196) -[2619061.113] {Default Queue} -> wl_shm_pool#1052.create_buffer(new id wl_buffer#1054, 0, 109, 161, 436, 0) -[2619061.118] {Default Queue} -> wl_shm_pool#1051.create_buffer(new id wl_buffer#1053, 0, 109, 161, 436, 0) -[2619061.139] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) -[2619061.147] {Default Queue} -> wl_surface#1799.commit() -[2619061.170] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) -[2619061.175] {Default Queue} -> wl_surface#1799.commit() -[2619061.183] {Default Queue} -> wl_region#1823.subtract(0, 0, 477, 380) -[2619061.187] {Default Queue} -> wl_region#1823.add(-365, -216, 474, 377) -[2619061.191] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) -[2619061.195] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) -[2619061.201] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) -[2619061.205] {Default Queue} -> wl_surface#1799.commit() -[2619061.213] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) -[2619061.217] {Default Queue} -> wl_surface#1799.commit() -[2619062.284] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) -[2619062.294] {Default Queue} -> wl_surface#1799.commit() -[2619062.304] {Default Queue} -> wl_region#1823.subtract(0, 0, 477, 380) -[2619062.309] {Default Queue} -> wl_region#1823.add(-365, -216, 474, 377) -[2619062.313] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) -[2619062.318] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) -[2619062.325] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) -[2619062.329] {Default Queue} -> wl_surface#1799.commit() -[2619062.334] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) -[2619062.338] {Default Queue} -> wl_surface#1799.commit() -[2619062.345] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) -[2619062.352] {Default Queue} -> wl_surface#1799.commit() -[2619062.366] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) -[2619062.370] {Default Queue} -> wl_surface#1772.commit() -[2619062.555] {Display Queue} wl_display#1.delete_id(3700) -[2619062.562] {Display Queue} wl_display#1.delete_id(3701) -[2619062.566] {Display Queue} wl_display#1.delete_id(3698) -[2619062.570] {Display Queue} wl_display#1.delete_id(3699) -[2619062.574] {Display Queue} wl_display#1.delete_id(1757) -[2619062.578] {Display Queue} wl_display#1.delete_id(1758) -[2619062.582] {Display Queue} wl_display#1.delete_id(1755) -[2619062.585] {Display Queue} wl_display#1.delete_id(1756) -[2619062.589] {Display Queue} wl_display#1.delete_id(3131) -[2619062.593] {Display Queue} wl_display#1.delete_id(3325) -[2619062.597] {Display Queue} wl_display#1.delete_id(3326) -[2619062.601] {Display Queue} wl_display#1.delete_id(3323) -[2619062.606] {Display Queue} wl_display#1.delete_id(3324) -[2619062.609] {Display Queue} wl_display#1.delete_id(3704) -[2619062.613] {Display Queue} wl_display#1.delete_id(3705) -[2619062.617] {Display Queue} wl_display#1.delete_id(3702) -[2619062.621] {Display Queue} wl_display#1.delete_id(3703) -[2619062.625] {Default Queue} wl_pointer#24.motion(187310697, 23.80078125, 13.80078125) -[2619062.630] {Default Queue} wl_pointer#81.motion(187310697, 23.80078125, 13.80078125) -[2619062.636] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619062.640] {Default Queue} wl_pointer#105.motion(187310697, 23.80078125, 13.80078125) -[2619062.645] {Default Queue} wl_pointer#137.motion(187310697, 23.80078125, 13.80078125) -[2619062.649] {Default Queue} wl_pointer#169.motion(187310697, 23.80078125, 13.80078125) -[2619062.653] {Default Queue} wl_pointer#201.motion(187310697, 23.80078125, 13.80078125) -[2619062.657] {Default Queue} wl_pointer#233.motion(187310697, 23.80078125, 13.80078125) -[2619062.661] {Default Queue} wl_pointer#265.motion(187310697, 23.80078125, 13.80078125) -[2619062.665] {Default Queue} wl_pointer#297.motion(187310697, 23.80078125, 13.80078125) -[2619062.670] {Default Queue} wl_pointer#329.motion(187310697, 23.80078125, 13.80078125) -[2619062.674] {Default Queue} wl_pointer#361.motion(187310697, 23.80078125, 13.80078125) -[2619062.678] {Default Queue} wl_pointer#393.motion(187310697, 23.80078125, 13.80078125) -[2619062.682] {Default Queue} wl_pointer#425.motion(187310697, 23.80078125, 13.80078125) -[2619062.686] {Default Queue} wl_pointer#457.motion(187310697, 23.80078125, 13.80078125) -[2619062.695] {Default Queue} wl_pointer#489.motion(187310697, 23.80078125, 13.80078125) -[2619062.701] {Default Queue} wl_pointer#521.motion(187310697, 23.80078125, 13.80078125) -[2619062.705] {Default Queue} wl_pointer#553.motion(187310697, 23.80078125, 13.80078125) -[2619062.710] {Default Queue} wl_pointer#585.motion(187310697, 23.80078125, 13.80078125) -[2619062.714] {Default Queue} wl_pointer#617.motion(187310697, 23.80078125, 13.80078125) -[2619062.719] {Default Queue} wl_pointer#649.motion(187310697, 23.80078125, 13.80078125) -[2619062.723] {Default Queue} wl_pointer#681.motion(187310697, 23.80078125, 13.80078125) -[2619062.728] {Default Queue} wl_pointer#713.motion(187310697, 23.80078125, 13.80078125) -[2619062.734] {Default Queue} wl_pointer#745.motion(187310697, 23.80078125, 13.80078125) -[2619062.739] {Default Queue} wl_pointer#777.motion(187310697, 23.80078125, 13.80078125) -[2619062.746] {Default Queue} wl_pointer#809.motion(187310697, 23.80078125, 13.80078125) -[2619062.752] {Default Queue} wl_pointer#841.motion(187310697, 23.80078125, 13.80078125) -[2619062.757] {Default Queue} wl_pointer#873.motion(187310697, 23.80078125, 13.80078125) -[2619062.762] {Default Queue} wl_pointer#905.motion(187310697, 23.80078125, 13.80078125) -[2619062.766] {Default Queue} wl_pointer#937.motion(187310697, 23.80078125, 13.80078125) -[2619062.770] {Default Queue} wl_pointer#969.motion(187310697, 23.80078125, 13.80078125) -[2619062.774] {Default Queue} wl_pointer#1001.motion(187310697, 23.80078125, 13.80078125) -[2619062.778] {Default Queue} wl_pointer#1033.motion(187310697, 23.80078125, 13.80078125) -[2619062.783] {Default Queue} wl_pointer#1065.motion(187310697, 23.80078125, 13.80078125) -[2619062.787] {Default Queue} wl_pointer#1097.motion(187310697, 23.80078125, 13.80078125) -[2619062.791] {Default Queue} wl_pointer#1129.motion(187310697, 23.80078125, 13.80078125) -[2619062.796] {Default Queue} wl_pointer#1161.motion(187310697, 23.80078125, 13.80078125) -[2619062.800] {Default Queue} wl_pointer#1193.motion(187310697, 23.80078125, 13.80078125) -[2619062.804] {Default Queue} wl_pointer#1225.motion(187310697, 23.80078125, 13.80078125) -[2619062.808] {Default Queue} wl_pointer#1257.motion(187310697, 23.80078125, 13.80078125) -[2619062.812] {Default Queue} wl_pointer#1289.motion(187310697, 23.80078125, 13.80078125) -[2619062.816] {Default Queue} wl_pointer#1321.motion(187310697, 23.80078125, 13.80078125) -[2619062.820] {Default Queue} wl_pointer#1353.motion(187310697, 23.80078125, 13.80078125) -[2619062.824] {Default Queue} wl_pointer#1385.motion(187310697, 23.80078125, 13.80078125) -[2619062.828] {Default Queue} wl_pointer#1417.motion(187310697, 23.80078125, 13.80078125) -[2619062.833] {Default Queue} wl_pointer#1449.motion(187310697, 23.80078125, 13.80078125) -[2619062.837] {Default Queue} wl_pointer#1481.motion(187310697, 23.80078125, 13.80078125) -[2619062.841] {Default Queue} wl_pointer#1513.motion(187310697, 23.80078125, 13.80078125) -[2619062.845] {Default Queue} wl_pointer#1545.motion(187310697, 23.80078125, 13.80078125) -[2619062.850] {Default Queue} wl_pointer#1577.motion(187310697, 23.80078125, 13.80078125) -[2619062.854] {Default Queue} wl_pointer#1609.motion(187310697, 23.80078125, 13.80078125) -[2619062.858] {Default Queue} wl_pointer#1641.motion(187310697, 23.80078125, 13.80078125) -[2619062.869] {Default Queue} wl_pointer#1673.motion(187310697, 23.80078125, 13.80078125) -[2619062.873] {Default Queue} wl_pointer#1705.motion(187310697, 23.80078125, 13.80078125) -[2619062.877] {Default Queue} wl_pointer#1737.motion(187310697, 23.80078125, 13.80078125) -[2619062.882] {Default Queue} wl_pointer#1762.motion(187310697, 23.80078125, 13.80078125) -[2619062.886] {Default Queue} wl_pointer#1801.motion(187310697, 23.80078125, 13.80078125) -[2619062.890] {Default Queue} wl_pointer#1833.motion(187310697, 23.80078125, 13.80078125) -[2619062.894] {Default Queue} wl_pointer#1865.motion(187310697, 23.80078125, 13.80078125) -[2619062.898] {Default Queue} wl_pointer#1897.motion(187310697, 23.80078125, 13.80078125) -[2619062.908] {Default Queue} wl_pointer#1929.motion(187310697, 23.80078125, 13.80078125) -[2619062.914] {Default Queue} wl_pointer#1961.motion(187310697, 23.80078125, 13.80078125) -[2619062.919] {Default Queue} wl_pointer#1993.motion(187310697, 23.80078125, 13.80078125) -[2619062.924] {Default Queue} wl_pointer#2025.motion(187310697, 23.80078125, 13.80078125) -[2619062.928] {Default Queue} wl_pointer#2057.motion(187310697, 23.80078125, 13.80078125) -[2619062.932] {Default Queue} wl_pointer#2089.motion(187310697, 23.80078125, 13.80078125) -[2619062.936] {Default Queue} wl_pointer#2121.motion(187310697, 23.80078125, 13.80078125) -[2619062.940] {Default Queue} wl_pointer#2153.motion(187310697, 23.80078125, 13.80078125) -[2619062.944] {Default Queue} wl_pointer#2185.motion(187310697, 23.80078125, 13.80078125) -[2619062.949] {Default Queue} wl_pointer#2217.motion(187310697, 23.80078125, 13.80078125) -[2619062.953] {Default Queue} wl_pointer#2249.motion(187310697, 23.80078125, 13.80078125) -[2619062.957] {Default Queue} wl_pointer#2281.motion(187310697, 23.80078125, 13.80078125) -[2619062.961] {Default Queue} wl_pointer#2313.motion(187310697, 23.80078125, 13.80078125) -[2619062.965] {Default Queue} wl_pointer#2345.motion(187310697, 23.80078125, 13.80078125) -[2619062.970] {Default Queue} wl_pointer#2377.motion(187310697, 23.80078125, 13.80078125) -[2619062.974] {Default Queue} wl_pointer#2409.motion(187310697, 23.80078125, 13.80078125) -[2619062.978] {Default Queue} wl_pointer#2441.motion(187310697, 23.80078125, 13.80078125) -[2619062.982] {Default Queue} wl_pointer#2473.motion(187310697, 23.80078125, 13.80078125) -[2619062.986] {Default Queue} wl_pointer#2498.motion(187310697, 23.80078125, 13.80078125) -[2619062.999] {Default Queue} -> wl_buffer#1598.destroy() -[2619063.004] {Default Queue} -> wl_buffer#1597.destroy() -[2619063.008] {Default Queue} -> wl_shm_pool#1596.destroy() -[2619063.012] {Default Queue} -> wl_shm_pool#1595.destroy() -[2619063.017] {Default Queue} -> wl_surface#476.destroy() -[2619063.054] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3703, fd 575, 640) -[2619063.060] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3702, fd 578, 640) -[2619063.065] {Default Queue} -> wl_shm_pool#3703.create_buffer(new id wl_buffer#3705, 0, 10, 16, 40, 0) -[2619063.069] {Default Queue} -> wl_shm_pool#3702.create_buffer(new id wl_buffer#3704, 0, 10, 16, 40, 0) -[2619063.077] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3324) -[2619063.081] {Default Queue} -> wl_surface#3324.attach(wl_buffer#3705, 0, 0) -[2619063.085] {Default Queue} -> wl_surface#3324.commit() -[2619063.090] {Default Queue} -> wl_surface#3324.attach(wl_buffer#3705, 0, 0) -[2619063.094] {Default Queue} -> wl_surface#3324.commit() -[2619063.098] {Default Queue} wl_pointer#2537.motion(187310697, 23.80078125, 13.80078125) -[2619063.102] {Default Queue} wl_pointer#2569.motion(187310697, 23.80078125, 13.80078125) -[2619063.107] {Default Queue} wl_pointer#2601.motion(187310697, 23.80078125, 13.80078125) -[2619063.111] {Default Queue} wl_pointer#2633.motion(187310697, 23.80078125, 13.80078125) -[2619063.115] {Default Queue} wl_pointer#2665.motion(187310697, 23.80078125, 13.80078125) -[2619063.119] {Default Queue} wl_pointer#2697.motion(187310697, 23.80078125, 13.80078125) -[2619063.123] {Default Queue} wl_pointer#2729.motion(187310697, 23.80078125, 13.80078125) -[2619063.128] {Default Queue} wl_pointer#2761.motion(187310697, 23.80078125, 13.80078125) -[2619063.132] {Default Queue} wl_pointer#2793.motion(187310697, 23.80078125, 13.80078125) -[2619063.136] {Default Queue} wl_pointer#2825.motion(187310697, 23.80078125, 13.80078125) -[2619063.141] {Default Queue} wl_pointer#2857.motion(187310697, 23.80078125, 13.80078125) -[2619063.145] {Default Queue} wl_pointer#2889.motion(187310697, 23.80078125, 13.80078125) -[2619063.149] {Default Queue} wl_pointer#2921.motion(187310697, 23.80078125, 13.80078125) -[2619063.153] {Default Queue} wl_pointer#2953.motion(187310697, 23.80078125, 13.80078125) -[2619063.157] {Default Queue} wl_pointer#2985.motion(187310697, 23.80078125, 13.80078125) -[2619063.165] {Default Queue} wl_pointer#3017.motion(187310697, 23.80078125, 13.80078125) -[2619063.171] {Default Queue} wl_pointer#3049.motion(187310697, 23.80078125, 13.80078125) -[2619063.175] {Default Queue} wl_pointer#3081.motion(187310697, 23.80078125, 13.80078125) -[2619063.179] {Default Queue} wl_pointer#3113.motion(187310697, 23.80078125, 13.80078125) -[2619063.183] {Default Queue} wl_pointer#3145.motion(187310697, 23.80078125, 13.80078125) -[2619063.187] {Default Queue} wl_pointer#3177.motion(187310697, 23.80078125, 13.80078125) -[2619063.191] {Default Queue} wl_pointer#3209.motion(187310697, 23.80078125, 13.80078125) -[2619063.195] {Default Queue} wl_pointer#3241.motion(187310697, 23.80078125, 13.80078125) -[2619063.200] {Default Queue} wl_pointer#3273.motion(187310697, 23.80078125, 13.80078125) -[2619063.204] {Default Queue} wl_pointer#3305.motion(187310697, 23.80078125, 13.80078125) -[2619063.208] {Default Queue} wl_pointer#3337.motion(187310697, 23.80078125, 13.80078125) -[2619063.212] {Default Queue} wl_pointer#3369.motion(187310697, 23.80078125, 13.80078125) -[2619063.216] {Default Queue} wl_pointer#3401.motion(187310697, 23.80078125, 13.80078125) -[2619063.220] {Default Queue} wl_pointer#3433.motion(187310697, 23.80078125, 13.80078125) -[2619063.224] {Default Queue} wl_pointer#3465.motion(187310697, 23.80078125, 13.80078125) -[2619063.229] {Default Queue} wl_pointer#3497.motion(187310697, 23.80078125, 13.80078125) -[2619063.233] {Default Queue} wl_pointer#3529.motion(187310697, 23.80078125, 13.80078125) -[2619063.237] {Default Queue} wl_pointer#3561.motion(187310697, 23.80078125, 13.80078125) -[2619063.242] {Default Queue} wl_pointer#3593.motion(187310697, 23.80078125, 13.80078125) -[2619063.246] {Default Queue} wl_pointer#3625.motion(187310697, 23.80078125, 13.80078125) -[2619063.250] {Default Queue} wl_pointer#3657.motion(187310697, 23.80078125, 13.80078125) -[2619063.254] {Default Queue} wl_pointer#3695.motion(187310697, 23.80078125, 13.80078125) -[2619063.258] {Default Queue} wl_pointer#24.motion(187310697, 23.80078125, 14.19921875) -[2619063.262] {Default Queue} wl_pointer#81.motion(187310697, 23.80078125, 14.19921875) -[2619063.267] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619063.271] {Default Queue} wl_pointer#105.motion(187310697, 23.80078125, 14.19921875) -[2619063.275] {Default Queue} wl_pointer#137.motion(187310697, 23.80078125, 14.19921875) -[2619063.280] {Default Queue} wl_pointer#169.motion(187310697, 23.80078125, 14.19921875) -[2619063.284] {Default Queue} wl_pointer#201.motion(187310697, 23.80078125, 14.19921875) -[2619063.288] {Default Queue} wl_pointer#233.motion(187310697, 23.80078125, 14.19921875) -[2619063.292] {Default Queue} wl_pointer#265.motion(187310697, 23.80078125, 14.19921875) -[2619063.296] {Default Queue} wl_pointer#297.motion(187310697, 23.80078125, 14.19921875) -[2619063.300] {Default Queue} wl_pointer#329.motion(187310697, 23.80078125, 14.19921875) -[2619063.304] {Default Queue} wl_pointer#361.motion(187310697, 23.80078125, 14.19921875) -[2619063.308] {Default Queue} wl_pointer#393.motion(187310697, 23.80078125, 14.19921875) -[2619063.312] {Default Queue} wl_pointer#425.motion(187310697, 23.80078125, 14.19921875) -[2619063.316] {Default Queue} wl_pointer#457.motion(187310697, 23.80078125, 14.19921875) -[2619063.320] {Default Queue} wl_pointer#489.motion(187310697, 23.80078125, 14.19921875) -[2619063.324] {Default Queue} wl_pointer#521.motion(187310697, 23.80078125, 14.19921875) -[2619063.329] {Default Queue} wl_pointer#553.motion(187310697, 23.80078125, 14.19921875) -[2619063.333] {Default Queue} wl_pointer#585.motion(187310697, 23.80078125, 14.19921875) -[2619063.337] {Default Queue} wl_pointer#617.motion(187310697, 23.80078125, 14.19921875) -[2619063.341] {Default Queue} wl_pointer#649.motion(187310697, 23.80078125, 14.19921875) -[2619063.345] {Default Queue} wl_pointer#681.motion(187310697, 23.80078125, 14.19921875) -[2619063.349] {Default Queue} wl_pointer#713.motion(187310697, 23.80078125, 14.19921875) -[2619063.353] {Default Queue} wl_pointer#745.motion(187310697, 23.80078125, 14.19921875) -[2619063.360] {Default Queue} wl_pointer#777.motion(187310697, 23.80078125, 14.19921875) -[2619063.365] {Default Queue} wl_pointer#809.motion(187310697, 23.80078125, 14.19921875) -[2619063.369] {Default Queue} wl_pointer#841.motion(187310697, 23.80078125, 14.19921875) -[2619063.373] {Default Queue} wl_pointer#873.motion(187310697, 23.80078125, 14.19921875) -[2619063.377] {Default Queue} wl_pointer#905.motion(187310697, 23.80078125, 14.19921875) -[2619063.382] {Default Queue} wl_pointer#937.motion(187310697, 23.80078125, 14.19921875) -[2619063.386] {Default Queue} wl_pointer#969.motion(187310697, 23.80078125, 14.19921875) -[2619063.391] {Default Queue} wl_pointer#1001.motion(187310697, 23.80078125, 14.19921875) -[2619063.395] {Default Queue} wl_pointer#1033.motion(187310697, 23.80078125, 14.19921875) -[2619063.399] {Default Queue} wl_pointer#1065.motion(187310697, 23.80078125, 14.19921875) -[2619063.403] {Default Queue} wl_pointer#1097.motion(187310697, 23.80078125, 14.19921875) -[2619063.407] {Default Queue} wl_pointer#1129.motion(187310697, 23.80078125, 14.19921875) -[2619063.411] {Default Queue} wl_pointer#1161.motion(187310697, 23.80078125, 14.19921875) -[2619063.415] {Default Queue} wl_pointer#1193.motion(187310697, 23.80078125, 14.19921875) -[2619063.419] {Default Queue} wl_pointer#1225.motion(187310697, 23.80078125, 14.19921875) -[2619063.423] {Default Queue} wl_pointer#1257.motion(187310697, 23.80078125, 14.19921875) -[2619063.427] {Default Queue} wl_pointer#1289.motion(187310697, 23.80078125, 14.19921875) -[2619063.431] {Default Queue} wl_pointer#1321.motion(187310697, 23.80078125, 14.19921875) -[2619063.436] {Default Queue} wl_pointer#1353.motion(187310697, 23.80078125, 14.19921875) -[2619063.440] {Default Queue} wl_pointer#1385.motion(187310697, 23.80078125, 14.19921875) -[2619063.445] {Default Queue} wl_pointer#1417.motion(187310697, 23.80078125, 14.19921875) -[2619063.448] {Default Queue} wl_pointer#1449.motion(187310697, 23.80078125, 14.19921875) -[2619063.452] {Default Queue} wl_pointer#1481.motion(187310697, 23.80078125, 14.19921875) -[2619063.457] {Default Queue} wl_pointer#1513.motion(187310697, 23.80078125, 14.19921875) -[2619063.461] {Default Queue} wl_pointer#1545.motion(187310697, 23.80078125, 14.19921875) -[2619063.465] {Default Queue} wl_pointer#1577.motion(187310697, 23.80078125, 14.19921875) -[2619063.469] {Default Queue} wl_pointer#1609.motion(187310697, 23.80078125, 14.19921875) -[2619063.473] {Default Queue} wl_pointer#1641.motion(187310697, 23.80078125, 14.19921875) -[2619063.477] {Default Queue} wl_pointer#1673.motion(187310697, 23.80078125, 14.19921875) -[2619063.481] {Default Queue} wl_pointer#1705.motion(187310697, 23.80078125, 14.19921875) -[2619063.485] {Default Queue} wl_pointer#1737.motion(187310697, 23.80078125, 14.19921875) -[2619063.489] {Default Queue} wl_pointer#1762.motion(187310697, 23.80078125, 14.19921875) -[2619063.493] {Default Queue} wl_pointer#1801.motion(187310697, 23.80078125, 14.19921875) -[2619063.497] {Default Queue} wl_pointer#1833.motion(187310697, 23.80078125, 14.19921875) -[2619063.501] {Default Queue} wl_pointer#1865.motion(187310697, 23.80078125, 14.19921875) -[2619063.505] {Default Queue} wl_pointer#1897.motion(187310697, 23.80078125, 14.19921875) -[2619063.509] {Default Queue} wl_pointer#1929.motion(187310697, 23.80078125, 14.19921875) -[2619063.513] {Default Queue} wl_pointer#1961.motion(187310697, 23.80078125, 14.19921875) -[2619063.517] {Default Queue} wl_pointer#1993.motion(187310697, 23.80078125, 14.19921875) -[2619063.521] {Default Queue} wl_pointer#2025.motion(187310697, 23.80078125, 14.19921875) -[2619063.525] {Default Queue} wl_pointer#2057.motion(187310697, 23.80078125, 14.19921875) -[2619063.530] {Default Queue} wl_pointer#2089.motion(187310697, 23.80078125, 14.19921875) -[2619063.533] {Default Queue} wl_pointer#2121.motion(187310697, 23.80078125, 14.19921875) -[2619063.537] {Default Queue} wl_pointer#2153.motion(187310697, 23.80078125, 14.19921875) -[2619063.542] {Default Queue} wl_pointer#2185.motion(187310697, 23.80078125, 14.19921875) -[2619063.548] {Default Queue} wl_pointer#2217.motion(187310697, 23.80078125, 14.19921875) -[2619063.554] {Default Queue} wl_pointer#2249.motion(187310697, 23.80078125, 14.19921875) -[2619063.558] {Default Queue} wl_pointer#2281.motion(187310697, 23.80078125, 14.19921875) -[2619063.562] {Default Queue} wl_pointer#2313.motion(187310697, 23.80078125, 14.19921875) -[2619063.566] {Default Queue} wl_pointer#2345.motion(187310697, 23.80078125, 14.19921875) -[2619063.570] {Default Queue} wl_pointer#2377.motion(187310697, 23.80078125, 14.19921875) -[2619063.574] {Default Queue} wl_pointer#2409.motion(187310697, 23.80078125, 14.19921875) -[2619063.578] {Default Queue} wl_pointer#2441.motion(187310697, 23.80078125, 14.19921875) -[2619063.583] {Default Queue} wl_pointer#2473.motion(187310697, 23.80078125, 14.19921875) -[2619063.587] {Default Queue} wl_pointer#2498.motion(187310697, 23.80078125, 14.19921875) -[2619063.596] {Default Queue} -> wl_buffer#3705.destroy() -[2619063.602] {Default Queue} -> wl_buffer#3704.destroy() -[2619063.606] {Default Queue} -> wl_shm_pool#3703.destroy() -[2619063.609] {Default Queue} -> wl_shm_pool#3702.destroy() -[2619063.614] {Default Queue} -> wl_surface#3324.destroy() -[2619063.647] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3323, fd 581, 640) -[2619063.653] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3326, fd 582, 640) -[2619063.657] {Default Queue} -> wl_shm_pool#3323.create_buffer(new id wl_buffer#3325, 0, 10, 16, 40, 0) -[2619063.661] {Default Queue} -> wl_shm_pool#3326.create_buffer(new id wl_buffer#3131, 0, 10, 16, 40, 0) -[2619063.668] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#1756) -[2619063.672] {Default Queue} -> wl_surface#1756.attach(wl_buffer#3325, 0, 0) -[2619063.676] {Default Queue} -> wl_surface#1756.commit() -[2619063.681] {Default Queue} -> wl_surface#1756.attach(wl_buffer#3325, 0, 0) -[2619063.685] {Default Queue} -> wl_surface#1756.commit() -[2619063.689] {Default Queue} wl_pointer#2537.motion(187310697, 23.80078125, 14.19921875) -[2619063.701] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) -[2619063.707] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) -[2619063.711] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2619063.715] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2619063.723] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) -[2619063.728] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) -[2619063.732] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2619063.735] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2619063.741] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) -[2619063.745] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) -[2619063.749] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2619063.753] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2619063.758] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) -[2619063.762] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) -[2619063.766] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2619063.770] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2619063.777] {Default Queue} -> wl_region#1791.subtract(0, 0, 480, 383) -[2619063.781] {Default Queue} -> wl_region#1791.add(-20, -216, 135, 383) -[2619063.785] {Default Queue} -> wl_surface#1772.set_opaque_region(wl_region#1792) -[2619063.788] {Default Queue} -> wl_surface#1772.set_input_region(wl_region#1791) -[2619063.795] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) -[2619063.799] {Default Queue} -> wl_surface#1772.commit() -[2619063.804] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) -[2619063.808] {Default Queue} -> wl_surface#1772.commit() -[2619063.815] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) -[2619063.819] {Default Queue} -> wl_surface#1772.commit() -[2619063.826] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) -[2619063.833] {Default Queue} -> wl_surface#1991.commit() -[2619064.868] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) -[2619064.875] {Default Queue} -> wl_surface#1991.commit() -[2619064.884] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 236) -[2619064.888] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 236) -[2619064.892] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2619064.896] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2619064.960] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 236) -[2619064.965] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 236) -[2619064.969] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2619064.974] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2619064.981] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2619064.985] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2619065.025] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 236) -[2619065.030] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 236) -[2619065.035] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2619065.039] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2619065.044] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2619065.048] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2619065.053] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) -[2619065.057] {Default Queue} -> wl_surface#1991.commit() -[2619065.061] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) -[2619065.065] {Default Queue} -> wl_surface#1991.commit() -[2619065.071] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) -[2619065.075] {Default Queue} -> wl_surface#1991.commit() -[2619065.079] {Default Queue} -> wl_region#2079.subtract(0, 0, 2, 2) -[2619065.084] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 221) -[2619065.088] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 220) -[2619065.092] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2619065.096] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2619065.100] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619065.113] {Default Queue} -> wl_buffer#2077.destroy() -[2619065.119] {Default Queue} -> wl_buffer#2078.destroy() -[2619065.123] {Default Queue} -> wl_shm_pool#2075.destroy() -[2619065.127] {Default Queue} -> wl_shm_pool#2076.destroy() -[2619065.170] {Default Queue} -> wl_shm#2063.create_pool(new id wl_shm_pool#1755, fd 575, 16) -[2619065.177] {Default Queue} -> wl_shm#2063.create_pool(new id wl_shm_pool#1758, fd 578, 16) -[2619065.182] {Default Queue} -> wl_shm_pool#1755.create_buffer(new id wl_buffer#1757, 0, 2, 2, 8, 0) -[2619065.187] {Default Queue} -> wl_shm_pool#1758.create_buffer(new id wl_buffer#3699, 0, 2, 2, 8, 0) -[2619065.193] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) -[2619065.197] {Default Queue} -> wl_surface#2055.commit() -[2619065.202] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) -[2619065.206] {Default Queue} -> wl_surface#2055.commit() -[2619065.214] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) -[2619065.218] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) -[2619065.222] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2619065.226] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2619065.302] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) -[2619065.309] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) -[2619065.315] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2619065.322] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2619065.331] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619065.335] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619065.499] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) -[2619065.505] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) -[2619065.514] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2619065.520] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2619065.525] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619065.530] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619065.597] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) -[2619065.602] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) -[2619065.606] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2619065.611] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2619065.616] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619065.621] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619065.758] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) -[2619065.764] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) -[2619065.768] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2619065.772] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2619065.777] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619065.781] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619065.786] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) -[2619065.790] {Default Queue} -> wl_surface#2055.commit() -[2619065.796] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) -[2619065.800] {Default Queue} -> wl_surface#2055.commit() -[2619066.865] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) -[2619066.873] {Default Queue} -> wl_surface#2055.commit() -[2619066.879] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) -[2619066.884] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) -[2619066.888] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2619066.891] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2619066.950] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) -[2619066.956] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) -[2619066.960] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2619066.964] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2619066.969] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619066.973] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619067.118] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) -[2619067.124] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) -[2619067.128] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2619067.132] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2619067.137] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619067.142] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619067.201] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) -[2619067.205] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) -[2619067.210] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2619067.214] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2619067.219] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619067.223] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619067.363] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) -[2619067.368] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) -[2619067.372] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2619067.376] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2619067.381] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619067.385] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619067.390] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) -[2619067.394] {Default Queue} -> wl_surface#2055.commit() -[2619067.397] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) -[2619067.401] {Default Queue} -> wl_surface#2055.commit() -[2619067.427] {Display Queue} wl_display#1.delete_id(1917) -[2619067.434] {Display Queue} wl_display#1.delete_id(1918) -[2619067.438] {Display Queue} wl_display#1.delete_id(1915) -[2619067.442] {Display Queue} wl_display#1.delete_id(1916) -[2619067.446] {Display Queue} wl_display#1.delete_id(3708) -[2619067.450] {Display Queue} wl_display#1.delete_id(3709) -[2619067.454] {Display Queue} wl_display#1.delete_id(3706) -[2619067.458] {Display Queue} wl_display#1.delete_id(3707) -[2619067.462] {Default Queue} wl_pointer#2569.motion(187310697, 23.80078125, 14.19921875) -[2619067.466] {Default Queue} wl_pointer#2601.motion(187310697, 23.80078125, 14.19921875) -[2619067.471] {Default Queue} wl_pointer#2633.motion(187310697, 23.80078125, 14.19921875) -[2619067.475] {Default Queue} wl_pointer#2665.motion(187310697, 23.80078125, 14.19921875) -[2619067.480] {Default Queue} wl_pointer#2697.motion(187310697, 23.80078125, 14.19921875) -[2619067.484] {Default Queue} wl_pointer#2729.motion(187310697, 23.80078125, 14.19921875) -[2619067.488] {Default Queue} wl_pointer#2761.motion(187310697, 23.80078125, 14.19921875) -[2619067.492] {Default Queue} wl_pointer#2793.motion(187310697, 23.80078125, 14.19921875) -[2619067.496] {Default Queue} wl_pointer#2825.motion(187310697, 23.80078125, 14.19921875) -[2619067.500] {Default Queue} wl_pointer#2857.motion(187310697, 23.80078125, 14.19921875) -[2619067.505] {Default Queue} wl_pointer#2889.motion(187310697, 23.80078125, 14.19921875) -[2619067.509] {Default Queue} wl_pointer#2921.motion(187310697, 23.80078125, 14.19921875) -[2619067.513] {Default Queue} wl_pointer#2953.motion(187310697, 23.80078125, 14.19921875) -[2619067.517] {Default Queue} wl_pointer#2985.motion(187310697, 23.80078125, 14.19921875) -[2619067.521] {Default Queue} wl_pointer#3017.motion(187310697, 23.80078125, 14.19921875) -[2619067.525] {Default Queue} wl_pointer#3049.motion(187310697, 23.80078125, 14.19921875) -[2619067.529] {Default Queue} wl_pointer#3081.motion(187310697, 23.80078125, 14.19921875) -[2619067.533] {Default Queue} wl_pointer#3113.motion(187310697, 23.80078125, 14.19921875) -[2619067.537] {Default Queue} wl_pointer#3145.motion(187310697, 23.80078125, 14.19921875) -[2619067.541] {Default Queue} wl_pointer#3177.motion(187310697, 23.80078125, 14.19921875) -[2619067.545] {Default Queue} wl_pointer#3209.motion(187310697, 23.80078125, 14.19921875) -[2619067.549] {Default Queue} wl_pointer#3241.motion(187310697, 23.80078125, 14.19921875) -[2619067.553] {Default Queue} wl_pointer#3273.motion(187310697, 23.80078125, 14.19921875) -[2619067.558] {Default Queue} wl_pointer#3305.motion(187310697, 23.80078125, 14.19921875) -[2619067.562] {Default Queue} wl_pointer#3337.motion(187310697, 23.80078125, 14.19921875) -[2619067.566] {Default Queue} wl_pointer#3369.motion(187310697, 23.80078125, 14.19921875) -[2619067.570] {Default Queue} wl_pointer#3401.motion(187310697, 23.80078125, 14.19921875) -[2619067.574] {Default Queue} wl_pointer#3433.motion(187310697, 23.80078125, 14.19921875) -[2619067.578] {Default Queue} wl_pointer#3465.motion(187310697, 23.80078125, 14.19921875) -[2619067.583] {Default Queue} wl_pointer#3497.motion(187310697, 23.80078125, 14.19921875) -[2619067.587] {Default Queue} wl_pointer#3529.motion(187310697, 23.80078125, 14.19921875) -[2619067.591] {Default Queue} wl_pointer#3561.motion(187310697, 23.80078125, 14.19921875) -[2619067.595] {Default Queue} wl_pointer#3593.motion(187310697, 23.80078125, 14.19921875) -[2619067.599] {Default Queue} wl_pointer#3625.motion(187310697, 23.80078125, 14.19921875) -[2619067.603] {Default Queue} wl_pointer#3657.motion(187310697, 23.80078125, 14.19921875) -[2619067.607] {Default Queue} wl_pointer#3695.motion(187310697, 23.80078125, 14.19921875) -[2619067.611] {Default Queue} wl_pointer#24.motion(187310697, 23.39843750, 14.19921875) -[2619067.615] {Default Queue} wl_pointer#81.motion(187310697, 23.39843750, 14.19921875) -[2619067.620] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619067.625] {Default Queue} wl_pointer#105.motion(187310697, 23.39843750, 14.19921875) -[2619067.629] {Default Queue} wl_pointer#137.motion(187310697, 23.39843750, 14.19921875) -[2619067.639] {Default Queue} wl_pointer#169.motion(187310697, 23.39843750, 14.19921875) -[2619067.645] {Default Queue} wl_pointer#201.motion(187310697, 23.39843750, 14.19921875) -[2619067.649] {Default Queue} wl_pointer#233.motion(187310697, 23.39843750, 14.19921875) -[2619067.653] {Default Queue} wl_pointer#265.motion(187310697, 23.39843750, 14.19921875) -[2619067.657] {Default Queue} wl_pointer#297.motion(187310697, 23.39843750, 14.19921875) -[2619067.661] {Default Queue} wl_pointer#329.motion(187310697, 23.39843750, 14.19921875) -[2619067.665] {Default Queue} wl_pointer#361.motion(187310697, 23.39843750, 14.19921875) -[2619067.669] {Default Queue} wl_pointer#393.motion(187310697, 23.39843750, 14.19921875) -[2619067.674] {Default Queue} wl_pointer#425.motion(187310697, 23.39843750, 14.19921875) -[2619067.678] {Default Queue} wl_pointer#457.motion(187310697, 23.39843750, 14.19921875) -[2619067.682] {Default Queue} wl_pointer#489.motion(187310697, 23.39843750, 14.19921875) -[2619067.686] {Default Queue} wl_pointer#521.motion(187310697, 23.39843750, 14.19921875) -[2619067.690] {Default Queue} wl_pointer#553.motion(187310697, 23.39843750, 14.19921875) -[2619067.694] {Default Queue} wl_pointer#585.motion(187310697, 23.39843750, 14.19921875) -[2619067.698] {Default Queue} wl_pointer#617.motion(187310697, 23.39843750, 14.19921875) -[2619067.702] {Default Queue} wl_pointer#649.motion(187310697, 23.39843750, 14.19921875) -[2619067.706] {Default Queue} wl_pointer#681.motion(187310697, 23.39843750, 14.19921875) -[2619067.710] {Default Queue} wl_pointer#713.motion(187310697, 23.39843750, 14.19921875) -[2619067.715] {Default Queue} wl_pointer#745.motion(187310697, 23.39843750, 14.19921875) -[2619067.719] {Default Queue} wl_pointer#777.motion(187310697, 23.39843750, 14.19921875) -[2619067.723] {Default Queue} wl_pointer#809.motion(187310697, 23.39843750, 14.19921875) -[2619067.727] {Default Queue} wl_pointer#841.motion(187310697, 23.39843750, 14.19921875) -[2619067.731] {Default Queue} wl_pointer#873.motion(187310697, 23.39843750, 14.19921875) -[2619067.735] {Default Queue} wl_pointer#905.motion(187310697, 23.39843750, 14.19921875) -[2619067.739] {Default Queue} wl_pointer#937.motion(187310697, 23.39843750, 14.19921875) -[2619067.743] {Default Queue} wl_pointer#969.motion(187310697, 23.39843750, 14.19921875) -[2619067.748] {Default Queue} wl_pointer#1001.motion(187310697, 23.39843750, 14.19921875) -[2619067.752] {Default Queue} wl_pointer#1033.motion(187310697, 23.39843750, 14.19921875) -[2619067.756] {Default Queue} wl_pointer#1065.motion(187310697, 23.39843750, 14.19921875) -[2619067.760] {Default Queue} wl_pointer#1097.motion(187310697, 23.39843750, 14.19921875) -[2619067.764] {Default Queue} wl_pointer#1129.motion(187310697, 23.39843750, 14.19921875) -[2619067.768] {Default Queue} wl_pointer#1161.motion(187310697, 23.39843750, 14.19921875) -[2619067.772] {Default Queue} wl_pointer#1193.motion(187310697, 23.39843750, 14.19921875) -[2619067.776] {Default Queue} wl_pointer#1225.motion(187310697, 23.39843750, 14.19921875) -[2619067.780] {Default Queue} wl_pointer#1257.motion(187310697, 23.39843750, 14.19921875) -[2619067.784] {Default Queue} wl_pointer#1289.motion(187310697, 23.39843750, 14.19921875) -[2619067.789] {Default Queue} wl_pointer#1321.motion(187310697, 23.39843750, 14.19921875) -[2619067.792] {Default Queue} wl_pointer#1353.motion(187310697, 23.39843750, 14.19921875) -[2619067.797] {Default Queue} wl_pointer#1385.motion(187310697, 23.39843750, 14.19921875) -[2619067.801] {Default Queue} wl_pointer#1417.motion(187310697, 23.39843750, 14.19921875) -[2619067.805] {Default Queue} wl_pointer#1449.motion(187310697, 23.39843750, 14.19921875) -[2619067.809] {Default Queue} wl_pointer#1481.motion(187310697, 23.39843750, 14.19921875) -[2619067.813] {Default Queue} wl_pointer#1513.motion(187310697, 23.39843750, 14.19921875) -[2619067.817] {Default Queue} wl_pointer#1545.motion(187310697, 23.39843750, 14.19921875) -[2619067.821] {Default Queue} wl_pointer#1577.motion(187310697, 23.39843750, 14.19921875) -[2619067.825] {Default Queue} wl_pointer#1609.motion(187310697, 23.39843750, 14.19921875) -[2619067.840] {Default Queue} wl_pointer#1641.motion(187310697, 23.39843750, 14.19921875) -[2619067.845] {Default Queue} wl_pointer#1673.motion(187310697, 23.39843750, 14.19921875) -[2619067.850] {Default Queue} wl_pointer#1705.motion(187310697, 23.39843750, 14.19921875) -[2619067.854] {Default Queue} wl_pointer#1737.motion(187310697, 23.39843750, 14.19921875) -[2619067.858] {Default Queue} wl_pointer#1762.motion(187310697, 23.39843750, 14.19921875) -[2619067.899] {Default Queue} wl_pointer#1801.motion(187310697, 23.39843750, 14.19921875) -[2619067.910] {Default Queue} wl_pointer#1833.motion(187310697, 23.39843750, 14.19921875) -[2619067.916] {Default Queue} wl_pointer#1865.motion(187310697, 23.39843750, 14.19921875) -[2619067.920] {Default Queue} wl_pointer#1897.motion(187310697, 23.39843750, 14.19921875) -[2619067.925] {Default Queue} wl_pointer#1929.motion(187310697, 23.39843750, 14.19921875) -[2619067.930] {Default Queue} wl_pointer#1961.motion(187310697, 23.39843750, 14.19921875) -[2619067.935] {Default Queue} wl_pointer#1993.motion(187310697, 23.39843750, 14.19921875) -[2619067.939] {Default Queue} wl_pointer#2025.motion(187310697, 23.39843750, 14.19921875) -[2619067.943] {Default Queue} wl_pointer#2057.motion(187310697, 23.39843750, 14.19921875) -[2619067.948] {Default Queue} wl_pointer#2089.motion(187310697, 23.39843750, 14.19921875) -[2619067.952] {Default Queue} wl_pointer#2121.motion(187310697, 23.39843750, 14.19921875) -[2619067.957] {Default Queue} wl_pointer#2153.motion(187310697, 23.39843750, 14.19921875) -[2619067.961] {Default Queue} wl_pointer#2185.motion(187310697, 23.39843750, 14.19921875) -[2619067.966] {Default Queue} wl_pointer#2217.motion(187310697, 23.39843750, 14.19921875) -[2619067.970] {Default Queue} wl_pointer#2249.motion(187310697, 23.39843750, 14.19921875) -[2619067.975] {Default Queue} wl_pointer#2281.motion(187310697, 23.39843750, 14.19921875) -[2619067.980] {Default Queue} wl_pointer#2313.motion(187310697, 23.39843750, 14.19921875) -[2619067.985] {Default Queue} wl_pointer#2345.motion(187310697, 23.39843750, 14.19921875) -[2619067.990] {Default Queue} wl_pointer#2377.motion(187310697, 23.39843750, 14.19921875) -[2619067.994] {Default Queue} wl_pointer#2409.motion(187310697, 23.39843750, 14.19921875) -[2619067.999] {Default Queue} wl_pointer#2441.motion(187310697, 23.39843750, 14.19921875) -[2619068.004] {Default Queue} wl_pointer#2473.motion(187310697, 23.39843750, 14.19921875) -[2619068.008] {Default Queue} wl_pointer#2498.motion(187310697, 23.39843750, 14.19921875) -[2619068.023] {Default Queue} -> wl_buffer#3325.destroy() -[2619068.028] {Default Queue} -> wl_buffer#3131.destroy() -[2619068.033] {Default Queue} -> wl_shm_pool#3323.destroy() -[2619068.037] {Default Queue} -> wl_shm_pool#3326.destroy() -[2619068.042] {Default Queue} -> wl_surface#1756.destroy() -[2619068.083] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3707, fd 575, 640) -[2619068.090] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3706, fd 578, 640) -[2619068.094] {Default Queue} -> wl_shm_pool#3707.create_buffer(new id wl_buffer#3709, 0, 10, 16, 40, 0) -[2619068.099] {Default Queue} -> wl_shm_pool#3706.create_buffer(new id wl_buffer#3708, 0, 10, 16, 40, 0) -[2619068.107] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#1916) -[2619068.111] {Default Queue} -> wl_surface#1916.attach(wl_buffer#3709, 0, 0) -[2619068.116] {Default Queue} -> wl_surface#1916.commit() -[2619068.121] {Default Queue} -> wl_surface#1916.attach(wl_buffer#3709, 0, 0) -[2619068.125] {Default Queue} -> wl_surface#1916.commit() -[2619068.129] {Default Queue} wl_pointer#2537.motion(187310697, 23.39843750, 14.19921875) -[2619068.135] {Default Queue} wl_pointer#2569.motion(187310697, 23.39843750, 14.19921875) -[2619068.140] {Default Queue} wl_pointer#2601.motion(187310697, 23.39843750, 14.19921875) -[2619068.144] {Default Queue} wl_pointer#2633.motion(187310697, 23.39843750, 14.19921875) -[2619068.149] {Default Queue} wl_pointer#2665.motion(187310697, 23.39843750, 14.19921875) -[2619068.157] {Default Queue} wl_pointer#2697.motion(187310697, 23.39843750, 14.19921875) -[2619068.165] {Default Queue} wl_pointer#2729.motion(187310697, 23.39843750, 14.19921875) -[2619068.170] {Default Queue} wl_pointer#2761.motion(187310697, 23.39843750, 14.19921875) -[2619068.174] {Default Queue} wl_pointer#2793.motion(187310697, 23.39843750, 14.19921875) -[2619068.179] {Default Queue} wl_pointer#2825.motion(187310697, 23.39843750, 14.19921875) -[2619068.183] {Default Queue} wl_pointer#2857.motion(187310697, 23.39843750, 14.19921875) -[2619068.188] {Default Queue} wl_pointer#2889.motion(187310697, 23.39843750, 14.19921875) -[2619068.192] {Default Queue} wl_pointer#2921.motion(187310697, 23.39843750, 14.19921875) -[2619068.197] {Default Queue} wl_pointer#2953.motion(187310697, 23.39843750, 14.19921875) -[2619068.202] {Default Queue} wl_pointer#2985.motion(187310697, 23.39843750, 14.19921875) -[2619068.206] {Default Queue} wl_pointer#3017.motion(187310697, 23.39843750, 14.19921875) -[2619068.210] {Default Queue} wl_pointer#3049.motion(187310697, 23.39843750, 14.19921875) -[2619068.215] {Default Queue} wl_pointer#3081.motion(187310697, 23.39843750, 14.19921875) -[2619068.219] {Default Queue} wl_pointer#3113.motion(187310697, 23.39843750, 14.19921875) -[2619068.223] {Default Queue} wl_pointer#3145.motion(187310697, 23.39843750, 14.19921875) -[2619068.228] {Default Queue} wl_pointer#3177.motion(187310697, 23.39843750, 14.19921875) -[2619068.233] {Default Queue} wl_pointer#3209.motion(187310697, 23.39843750, 14.19921875) -[2619068.237] {Default Queue} wl_pointer#3241.motion(187310697, 23.39843750, 14.19921875) -[2619068.242] {Default Queue} wl_pointer#3273.motion(187310697, 23.39843750, 14.19921875) -[2619068.246] {Default Queue} wl_pointer#3305.motion(187310697, 23.39843750, 14.19921875) -[2619068.251] {Default Queue} wl_pointer#3337.motion(187310697, 23.39843750, 14.19921875) -[2619068.255] {Default Queue} wl_pointer#3369.motion(187310697, 23.39843750, 14.19921875) -[2619068.260] {Default Queue} wl_pointer#3401.motion(187310697, 23.39843750, 14.19921875) -[2619068.264] {Default Queue} wl_pointer#3433.motion(187310697, 23.39843750, 14.19921875) -[2619068.269] {Default Queue} wl_pointer#3465.motion(187310697, 23.39843750, 14.19921875) -[2619068.273] {Default Queue} wl_pointer#3497.motion(187310697, 23.39843750, 14.19921875) -[2619068.278] {Default Queue} wl_pointer#3529.motion(187310697, 23.39843750, 14.19921875) -[2619068.282] {Default Queue} wl_pointer#3561.motion(187310697, 23.39843750, 14.19921875) -[2619068.287] {Default Queue} wl_pointer#3593.motion(187310697, 23.39843750, 14.19921875) -[2619068.291] {Default Queue} wl_pointer#3625.motion(187310697, 23.39843750, 14.19921875) -[2619068.296] {Default Queue} wl_pointer#3657.motion(187310697, 23.39843750, 14.19921875) -[2619068.300] {Default Queue} wl_pointer#3695.motion(187310697, 23.39843750, 14.19921875) -[2619068.304] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) -[2619068.308] {Default Queue} -> wl_surface#2055.commit() -[2619069.373] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) -[2619069.379] {Default Queue} -> wl_surface#2055.commit() -[2619069.385] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) -[2619069.389] {Default Queue} -> wl_surface#2055.commit() -[2619069.394] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) -[2619069.398] {Default Queue} -> wl_surface#2023.commit() -[2619070.459] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) -[2619070.463] {Default Queue} -> wl_surface#2023.commit() -[2619070.473] {Default Queue} -> wl_region#2047.subtract(0, 0, 485, 241) -[2619070.478] {Default Queue} -> wl_region#2047.add(-483, -219, 485, 221) -[2619070.482] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) -[2619070.486] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) -[2619070.492] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) -[2619070.496] {Default Queue} -> wl_surface#2023.commit() -[2619070.500] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) -[2619070.507] {Default Queue} -> wl_surface#2023.commit() -[2619070.515] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) -[2619070.519] {Default Queue} -> wl_surface#2023.commit() -[2619070.523] {Default Queue} -> wl_region#1983.subtract(0, 0, 109, 161) -[2619070.530] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 236) -[2619070.534] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 236) -[2619070.538] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2619070.542] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2619070.609] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 236) -[2619070.614] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 236) -[2619070.618] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2619070.622] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2619070.629] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2619070.634] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2619070.676] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 236) -[2619070.681] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 236) -[2619070.685] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2619070.689] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2619070.694] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2619070.698] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2619070.704] {Default Queue} -> wl_region#2047.subtract(0, 0, 485, 241) -[2619070.708] {Default Queue} -> wl_region#2047.add(-483, -219, 485, 221) -[2619070.711] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) -[2619070.715] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) -[2619070.720] {Default Queue} -> wl_surface#1959.damage(0, 0, 109, 161) -[2619070.724] {Default Queue} -> wl_region#1983.subtract(0, 0, 592, 380) -[2619070.727] {Default Queue} -> wl_region#1983.add(-480, -216, 589, 377) -[2619070.731] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) -[2619070.735] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) -[2619070.739] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2619070.743] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619070.747] {Default Queue} -> wl_surface#2023.damage(0, 0, 2, 2) -[2619070.750] {Default Queue} -> wl_surface#1959.damage(0, 0, 109, 161) -[2619070.767] {Default Queue} -> wl_buffer#3712.destroy() -[2619070.772] {Default Queue} -> wl_buffer#3713.destroy() -[2619070.776] {Default Queue} -> wl_shm_pool#3710.destroy() -[2619070.780] {Default Queue} -> wl_shm_pool#3711.destroy() -[2619070.860] {Default Queue} -> wl_shm#1967.create_pool(new id wl_shm_pool#1915, fd 575, 70196) -[2619070.874] {Default Queue} -> wl_shm#1967.create_pool(new id wl_shm_pool#1918, fd 578, 70196) -[2619070.878] {Default Queue} -> wl_shm_pool#1915.create_buffer(new id wl_buffer#1917, 0, 109, 161, 436, 0) -[2619070.882] {Default Queue} -> wl_shm_pool#1918.create_buffer(new id wl_buffer#3698, 0, 109, 161, 436, 0) -[2619070.905] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) -[2619070.909] {Default Queue} -> wl_surface#1959.commit() -[2619070.930] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) -[2619070.935] {Default Queue} -> wl_surface#1959.commit() -[2619070.943] {Default Queue} -> wl_region#1983.subtract(0, 0, 592, 380) -[2619070.947] {Default Queue} -> wl_region#1983.add(-480, -216, 589, 377) -[2619070.951] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) -[2619070.955] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) -[2619070.961] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) -[2619070.965] {Default Queue} -> wl_surface#1959.commit() -[2619070.972] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) -[2619070.976] {Default Queue} -> wl_surface#1959.commit() -[2619072.041] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) -[2619072.050] {Default Queue} -> wl_surface#1959.commit() -[2619072.058] {Default Queue} -> wl_region#1983.subtract(0, 0, 592, 380) -[2619072.063] {Default Queue} -> wl_region#1983.add(-480, -216, 589, 377) -[2619072.067] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) -[2619072.070] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) -[2619072.076] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) -[2619072.080] {Default Queue} -> wl_surface#1959.commit() -[2619072.085] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) -[2619072.089] {Default Queue} -> wl_surface#1959.commit() -[2619072.095] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) -[2619072.099] {Default Queue} -> wl_surface#1959.commit() -[2619072.110] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) -[2619072.114] {Default Queue} -> wl_surface#1927.commit() -[2619072.322] {Display Queue} wl_display#1.delete_id(1598) -[2619072.338] {Display Queue} wl_display#1.delete_id(1597) -[2619072.343] {Display Queue} wl_display#1.delete_id(1596) -[2619072.348] {Display Queue} wl_display#1.delete_id(1595) -[2619072.352] {Display Queue} wl_display#1.delete_id(476) -[2619072.356] {Display Queue} wl_display#1.delete_id(3705) -[2619072.359] {Display Queue} wl_display#1.delete_id(3704) -[2619072.363] {Display Queue} wl_display#1.delete_id(3703) -[2619072.368] {Display Queue} wl_display#1.delete_id(3702) -[2619072.371] {Display Queue} wl_display#1.delete_id(3324) -[2619072.375] {Display Queue} wl_display#1.delete_id(2077) -[2619072.380] {Display Queue} wl_display#1.delete_id(2078) -[2619072.384] {Display Queue} wl_display#1.delete_id(2075) -[2619072.387] {Display Queue} wl_display#1.delete_id(2076) -[2619072.391] {Default Queue} wl_pointer#24.motion(187310702, 23.00000000, 14.19921875) -[2619072.397] {Default Queue} wl_pointer#81.motion(187310702, 23.00000000, 14.19921875) -[2619072.404] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619072.409] {Default Queue} wl_pointer#105.motion(187310702, 23.00000000, 14.19921875) -[2619072.414] {Default Queue} wl_pointer#137.motion(187310702, 23.00000000, 14.19921875) -[2619072.419] {Default Queue} wl_pointer#169.motion(187310702, 23.00000000, 14.19921875) -[2619072.423] {Default Queue} wl_pointer#201.motion(187310702, 23.00000000, 14.19921875) -[2619072.428] {Default Queue} wl_pointer#233.motion(187310702, 23.00000000, 14.19921875) -[2619072.433] {Default Queue} wl_pointer#265.motion(187310702, 23.00000000, 14.19921875) -[2619072.437] {Default Queue} wl_pointer#297.motion(187310702, 23.00000000, 14.19921875) -[2619072.441] {Default Queue} wl_pointer#329.motion(187310702, 23.00000000, 14.19921875) -[2619072.445] {Default Queue} wl_pointer#361.motion(187310702, 23.00000000, 14.19921875) -[2619072.449] {Default Queue} wl_pointer#393.motion(187310702, 23.00000000, 14.19921875) -[2619072.453] {Default Queue} wl_pointer#425.motion(187310702, 23.00000000, 14.19921875) -[2619072.458] {Default Queue} wl_pointer#457.motion(187310702, 23.00000000, 14.19921875) -[2619072.462] {Default Queue} wl_pointer#489.motion(187310702, 23.00000000, 14.19921875) -[2619072.466] {Default Queue} wl_pointer#521.motion(187310702, 23.00000000, 14.19921875) -[2619072.470] {Default Queue} wl_pointer#553.motion(187310702, 23.00000000, 14.19921875) -[2619072.474] {Default Queue} wl_pointer#585.motion(187310702, 23.00000000, 14.19921875) -[2619072.478] {Default Queue} wl_pointer#617.motion(187310702, 23.00000000, 14.19921875) -[2619072.482] {Default Queue} wl_pointer#649.motion(187310702, 23.00000000, 14.19921875) -[2619072.487] {Default Queue} wl_pointer#681.motion(187310702, 23.00000000, 14.19921875) -[2619072.491] {Default Queue} wl_pointer#713.motion(187310702, 23.00000000, 14.19921875) -[2619072.495] {Default Queue} wl_pointer#745.motion(187310702, 23.00000000, 14.19921875) -[2619072.499] {Default Queue} wl_pointer#777.motion(187310702, 23.00000000, 14.19921875) -[2619072.504] {Default Queue} wl_pointer#809.motion(187310702, 23.00000000, 14.19921875) -[2619072.508] {Default Queue} wl_pointer#841.motion(187310702, 23.00000000, 14.19921875) -[2619072.520] {Default Queue} wl_pointer#873.motion(187310702, 23.00000000, 14.19921875) -[2619072.528] {Default Queue} wl_pointer#905.motion(187310702, 23.00000000, 14.19921875) -[2619072.533] {Default Queue} wl_pointer#937.motion(187310702, 23.00000000, 14.19921875) -[2619072.537] {Default Queue} wl_pointer#969.motion(187310702, 23.00000000, 14.19921875) -[2619072.541] {Default Queue} wl_pointer#1001.motion(187310702, 23.00000000, 14.19921875) -[2619072.545] {Default Queue} wl_pointer#1033.motion(187310702, 23.00000000, 14.19921875) -[2619072.549] {Default Queue} wl_pointer#1065.motion(187310702, 23.00000000, 14.19921875) -[2619072.553] {Default Queue} wl_pointer#1097.motion(187310702, 23.00000000, 14.19921875) -[2619072.557] {Default Queue} wl_pointer#1129.motion(187310702, 23.00000000, 14.19921875) -[2619072.561] {Default Queue} wl_pointer#1161.motion(187310702, 23.00000000, 14.19921875) -[2619072.565] {Default Queue} wl_pointer#1193.motion(187310702, 23.00000000, 14.19921875) -[2619072.570] {Default Queue} wl_pointer#1225.motion(187310702, 23.00000000, 14.19921875) -[2619072.573] {Default Queue} wl_pointer#1257.motion(187310702, 23.00000000, 14.19921875) -[2619072.577] {Default Queue} wl_pointer#1289.motion(187310702, 23.00000000, 14.19921875) -[2619072.582] {Default Queue} wl_pointer#1321.motion(187310702, 23.00000000, 14.19921875) -[2619072.586] {Default Queue} wl_pointer#1353.motion(187310702, 23.00000000, 14.19921875) -[2619072.590] {Default Queue} wl_pointer#1385.motion(187310702, 23.00000000, 14.19921875) -[2619072.594] {Default Queue} wl_pointer#1417.motion(187310702, 23.00000000, 14.19921875) -[2619072.599] {Default Queue} wl_pointer#1449.motion(187310702, 23.00000000, 14.19921875) -[2619072.603] {Default Queue} wl_pointer#1481.motion(187310702, 23.00000000, 14.19921875) -[2619072.607] {Default Queue} wl_pointer#1513.motion(187310702, 23.00000000, 14.19921875) -[2619072.611] {Default Queue} wl_pointer#1545.motion(187310702, 23.00000000, 14.19921875) -[2619072.615] {Default Queue} wl_pointer#1577.motion(187310702, 23.00000000, 14.19921875) -[2619072.620] {Default Queue} wl_pointer#1609.motion(187310702, 23.00000000, 14.19921875) -[2619072.624] {Default Queue} wl_pointer#1641.motion(187310702, 23.00000000, 14.19921875) -[2619072.628] {Default Queue} wl_pointer#1673.motion(187310702, 23.00000000, 14.19921875) -[2619072.632] {Default Queue} wl_pointer#1705.motion(187310702, 23.00000000, 14.19921875) -[2619072.636] {Default Queue} wl_pointer#1737.motion(187310702, 23.00000000, 14.19921875) -[2619072.641] {Default Queue} wl_pointer#1762.motion(187310702, 23.00000000, 14.19921875) -[2619072.645] {Default Queue} wl_pointer#1801.motion(187310702, 23.00000000, 14.19921875) -[2619072.649] {Default Queue} wl_pointer#1833.motion(187310702, 23.00000000, 14.19921875) -[2619072.654] {Default Queue} wl_pointer#1865.motion(187310702, 23.00000000, 14.19921875) -[2619072.658] {Default Queue} wl_pointer#1897.motion(187310702, 23.00000000, 14.19921875) -[2619072.662] {Default Queue} wl_pointer#1929.motion(187310702, 23.00000000, 14.19921875) -[2619072.666] {Default Queue} wl_pointer#1961.motion(187310702, 23.00000000, 14.19921875) -[2619072.671] {Default Queue} wl_pointer#1993.motion(187310702, 23.00000000, 14.19921875) -[2619072.675] {Default Queue} wl_pointer#2025.motion(187310702, 23.00000000, 14.19921875) -[2619072.679] {Default Queue} wl_pointer#2057.motion(187310702, 23.00000000, 14.19921875) -[2619072.683] {Default Queue} wl_pointer#2089.motion(187310702, 23.00000000, 14.19921875) -[2619072.688] {Default Queue} wl_pointer#2121.motion(187310702, 23.00000000, 14.19921875) -[2619072.692] {Default Queue} wl_pointer#2153.motion(187310702, 23.00000000, 14.19921875) -[2619072.697] {Default Queue} wl_pointer#2185.motion(187310702, 23.00000000, 14.19921875) -[2619072.701] {Default Queue} wl_pointer#2217.motion(187310702, 23.00000000, 14.19921875) -[2619072.705] {Default Queue} wl_pointer#2249.motion(187310702, 23.00000000, 14.19921875) -[2619072.709] {Default Queue} wl_pointer#2281.motion(187310702, 23.00000000, 14.19921875) -[2619072.716] {Default Queue} wl_pointer#2313.motion(187310702, 23.00000000, 14.19921875) -[2619072.723] {Default Queue} wl_pointer#2345.motion(187310702, 23.00000000, 14.19921875) -[2619072.727] {Default Queue} wl_pointer#2377.motion(187310702, 23.00000000, 14.19921875) -[2619072.732] {Default Queue} wl_pointer#2409.motion(187310702, 23.00000000, 14.19921875) -[2619072.736] {Default Queue} wl_pointer#2441.motion(187310702, 23.00000000, 14.19921875) -[2619072.740] {Default Queue} wl_pointer#2473.motion(187310702, 23.00000000, 14.19921875) -[2619072.744] {Default Queue} wl_pointer#2498.motion(187310702, 23.00000000, 14.19921875) -[2619072.759] {Default Queue} -> wl_buffer#3709.destroy() -[2619072.765] {Default Queue} -> wl_buffer#3708.destroy() -[2619072.769] {Default Queue} -> wl_shm_pool#3707.destroy() -[2619072.773] {Default Queue} -> wl_shm_pool#3706.destroy() -[2619072.778] {Default Queue} -> wl_surface#1916.destroy() -[2619072.821] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2076, fd 575, 640) -[2619072.828] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2075, fd 578, 640) -[2619072.833] {Default Queue} -> wl_shm_pool#2076.create_buffer(new id wl_buffer#2078, 0, 10, 16, 40, 0) -[2619072.837] {Default Queue} -> wl_shm_pool#2075.create_buffer(new id wl_buffer#2077, 0, 10, 16, 40, 0) -[2619072.845] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3324) -[2619072.849] {Default Queue} -> wl_surface#3324.attach(wl_buffer#2078, 0, 0) -[2619072.854] {Default Queue} -> wl_surface#3324.commit() -[2619072.859] {Default Queue} -> wl_surface#3324.attach(wl_buffer#2078, 0, 0) -[2619072.869] {Default Queue} -> wl_surface#3324.commit() -[2619072.873] {Default Queue} wl_pointer#2537.motion(187310702, 23.00000000, 14.19921875) -[2619072.878] {Default Queue} wl_pointer#2569.motion(187310702, 23.00000000, 14.19921875) -[2619072.883] {Default Queue} wl_pointer#2601.motion(187310702, 23.00000000, 14.19921875) -[2619072.887] {Default Queue} wl_pointer#2633.motion(187310702, 23.00000000, 14.19921875) -[2619072.891] {Default Queue} wl_pointer#2665.motion(187310702, 23.00000000, 14.19921875) -[2619072.895] {Default Queue} wl_pointer#2697.motion(187310702, 23.00000000, 14.19921875) -[2619072.900] {Default Queue} wl_pointer#2729.motion(187310702, 23.00000000, 14.19921875) -[2619072.904] {Default Queue} wl_pointer#2761.motion(187310702, 23.00000000, 14.19921875) -[2619072.908] {Default Queue} wl_pointer#2793.motion(187310702, 23.00000000, 14.19921875) -[2619072.913] {Default Queue} wl_pointer#2825.motion(187310702, 23.00000000, 14.19921875) -[2619072.917] {Default Queue} wl_pointer#2857.motion(187310702, 23.00000000, 14.19921875) -[2619072.921] {Default Queue} wl_pointer#2889.motion(187310702, 23.00000000, 14.19921875) -[2619072.926] {Default Queue} wl_pointer#2921.motion(187310702, 23.00000000, 14.19921875) -[2619072.930] {Default Queue} wl_pointer#2953.motion(187310702, 23.00000000, 14.19921875) -[2619072.934] {Default Queue} wl_pointer#2985.motion(187310702, 23.00000000, 14.19921875) -[2619072.939] {Default Queue} wl_pointer#3017.motion(187310702, 23.00000000, 14.19921875) -[2619072.943] {Default Queue} wl_pointer#3049.motion(187310702, 23.00000000, 14.19921875) -[2619072.947] {Default Queue} wl_pointer#3081.motion(187310702, 23.00000000, 14.19921875) -[2619072.952] {Default Queue} wl_pointer#3113.motion(187310702, 23.00000000, 14.19921875) -[2619072.956] {Default Queue} wl_pointer#3145.motion(187310702, 23.00000000, 14.19921875) -[2619072.961] {Default Queue} wl_pointer#3177.motion(187310702, 23.00000000, 14.19921875) -[2619072.966] {Default Queue} wl_pointer#3209.motion(187310702, 23.00000000, 14.19921875) -[2619072.971] {Default Queue} wl_pointer#3241.motion(187310702, 23.00000000, 14.19921875) -[2619072.975] {Default Queue} wl_pointer#3273.motion(187310702, 23.00000000, 14.19921875) -[2619072.980] {Default Queue} wl_pointer#3305.motion(187310702, 23.00000000, 14.19921875) -[2619072.984] {Default Queue} wl_pointer#3337.motion(187310702, 23.00000000, 14.19921875) -[2619072.988] {Default Queue} wl_pointer#3369.motion(187310702, 23.00000000, 14.19921875) -[2619072.996] {Default Queue} wl_pointer#3401.motion(187310702, 23.00000000, 14.19921875) -[2619073.002] {Default Queue} wl_pointer#3433.motion(187310702, 23.00000000, 14.19921875) -[2619073.007] {Default Queue} wl_pointer#3465.motion(187310702, 23.00000000, 14.19921875) -[2619073.012] {Default Queue} wl_pointer#3497.motion(187310702, 23.00000000, 14.19921875) -[2619073.017] {Default Queue} wl_pointer#3529.motion(187310702, 23.00000000, 14.19921875) -[2619073.022] {Default Queue} wl_pointer#3561.motion(187310702, 23.00000000, 14.19921875) -[2619073.026] {Default Queue} wl_pointer#3593.motion(187310702, 23.00000000, 14.19921875) -[2619073.030] {Default Queue} wl_pointer#3625.motion(187310702, 23.00000000, 14.19921875) -[2619073.035] {Default Queue} wl_pointer#3657.motion(187310702, 23.00000000, 14.19921875) -[2619073.039] {Default Queue} wl_pointer#3695.motion(187310702, 23.00000000, 14.19921875) -[2619073.062] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) -[2619073.067] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) -[2619073.072] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2619073.077] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2619073.085] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) -[2619073.090] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) -[2619073.094] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2619073.098] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2619073.104] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) -[2619073.108] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) -[2619073.112] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2619073.116] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2619073.121] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) -[2619073.125] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) -[2619073.129] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2619073.134] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2619073.141] {Default Queue} -> wl_region#1951.subtract(0, 0, 595, 383) -[2619073.144] {Default Queue} -> wl_region#1951.add(-20, -216, 135, 383) -[2619073.149] {Default Queue} -> wl_surface#1927.set_opaque_region(wl_region#1952) -[2619073.153] {Default Queue} -> wl_surface#1927.set_input_region(wl_region#1951) -[2619073.165] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) -[2619073.170] {Default Queue} -> wl_surface#1927.commit() -[2619073.175] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) -[2619073.179] {Default Queue} -> wl_surface#1927.commit() -[2619073.187] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) -[2619073.191] {Default Queue} -> wl_surface#1927.commit() -[2619073.240] {Default Queue} -> wl_surface#871.attach(wl_buffer#926, 0, 0) -[2619073.246] {Default Queue} -> wl_surface#871.commit() -[2619073.254] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) -[2619073.259] {Default Queue} -> wl_surface#2183.commit() -[2619074.326] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) -[2619074.339] {Default Queue} -> wl_surface#2183.commit() -[2619074.352] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 403) -[2619074.358] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 403) -[2619074.362] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2619074.366] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2619074.454] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 403) -[2619074.460] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 403) -[2619074.464] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2619074.468] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2619074.476] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2619074.480] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2619074.538] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 403) -[2619074.546] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 403) -[2619074.550] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2619074.555] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2619074.560] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2619074.565] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2619074.569] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) -[2619074.574] {Default Queue} -> wl_surface#2183.commit() -[2619074.578] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) -[2619074.582] {Default Queue} -> wl_surface#2183.commit() -[2619074.589] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) -[2619074.592] {Default Queue} -> wl_surface#2183.commit() -[2619074.599] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2619074.603] {Default Queue} -> wl_surface#2279.commit() -[2619075.666] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2619075.671] {Default Queue} -> wl_surface#2279.commit() -[2619075.679] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619075.685] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619075.689] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619075.693] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619075.702] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619075.706] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619075.710] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619075.713] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619075.720] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619075.725] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619075.729] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619075.733] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619075.738] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619075.742] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619075.746] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619075.750] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619075.756] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619075.760] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619075.764] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619075.767] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619075.775] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619075.779] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619075.783] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619075.787] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619075.792] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619075.796] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619075.800] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619075.804] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619075.808] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619075.812] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619075.816] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619075.820] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619075.825] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619075.829] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619075.833] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619075.837] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619075.847] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619075.852] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619075.859] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619075.866] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619075.874] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619075.878] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619075.882] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619075.886] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619075.892] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619075.896] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619075.900] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619075.904] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619075.909] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619075.913] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619075.917] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619075.920] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619075.925] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619075.930] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619075.934] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619075.937] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619075.944] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619075.948] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619075.952] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619075.956] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619075.960] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619075.964] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619075.968] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619075.972] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619075.976] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619075.980] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619075.984] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619075.988] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619075.992] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619075.996] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619076.000] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619076.004] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619076.010] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619076.015] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619076.019] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619076.022] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619076.029] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2619076.033] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2619076.038] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2619076.042] {Default Queue} -> wl_surface#2279.commit() -[2619076.046] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2619076.050] {Default Queue} -> wl_surface#2279.commit() -[2619076.056] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2619076.060] {Default Queue} -> wl_surface#2279.commit() -[2619076.064] {Default Queue} -> wl_region#2335.subtract(0, 0, 2, 2) -[2619076.069] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 388) -[2619076.073] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 368) -[2619076.077] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619076.081] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619076.085] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2619076.099] {Default Queue} -> wl_buffer#3716.destroy() -[2619076.104] {Default Queue} -> wl_buffer#3717.destroy() -[2619076.112] {Default Queue} -> wl_shm_pool#3714.destroy() -[2619076.117] {Default Queue} -> wl_shm_pool#3715.destroy() -[2619076.166] {Default Queue} -> wl_shm#2319.create_pool(new id wl_shm_pool#3702, fd 575, 16) -[2619076.172] {Default Queue} -> wl_shm#2319.create_pool(new id wl_shm_pool#3703, fd 578, 16) -[2619076.177] {Default Queue} -> wl_shm_pool#3702.create_buffer(new id wl_buffer#3704, 0, 2, 2, 8, 0) -[2619076.181] {Default Queue} -> wl_shm_pool#3703.create_buffer(new id wl_buffer#3705, 0, 2, 2, 8, 0) -[2619076.188] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) -[2619076.192] {Default Queue} -> wl_surface#2311.commit() -[2619076.197] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) -[2619076.201] {Default Queue} -> wl_surface#2311.commit() -[2619076.208] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619076.213] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619076.218] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619076.223] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619076.237] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619076.243] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619076.249] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619076.252] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619076.257] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619076.261] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619076.265] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619076.269] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619076.274] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619076.279] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619076.284] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619076.288] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619076.292] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619076.297] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619076.302] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619076.305] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619076.310] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619076.314] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619076.318] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619076.322] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619076.358] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619076.363] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619076.367] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619076.371] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619076.376] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2619076.381] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2619076.389] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619076.393] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619076.397] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619076.401] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619076.406] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619076.410] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619076.414] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619076.417] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619076.422] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619076.426] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619076.430] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619076.434] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619076.438] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619076.446] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619076.452] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619076.456] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619076.461] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) -[2619076.466] {Default Queue} -> wl_surface#2311.commit() -[2619076.472] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) -[2619076.476] {Default Queue} -> wl_surface#2311.commit() -[2619076.829] {Display Queue} wl_display#1.delete_id(3325) -[2619076.836] {Display Queue} wl_display#1.delete_id(3131) -[2619076.841] {Display Queue} wl_display#1.delete_id(3323) -[2619076.845] {Display Queue} wl_display#1.delete_id(3326) -[2619076.849] {Display Queue} wl_display#1.delete_id(1756) -[2619076.853] {Display Queue} wl_display#1.delete_id(3712) -[2619076.856] {Display Queue} wl_display#1.delete_id(3713) -[2619076.860] {Display Queue} wl_display#1.delete_id(3710) -[2619076.865] {Display Queue} wl_display#1.delete_id(3711) -[2619076.869] {Default Queue} wl_pointer#24.motion(187310707, 22.60156250, 14.19921875) -[2619076.877] {Default Queue} wl_pointer#81.motion(187310707, 22.60156250, 14.19921875) -[2619076.883] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619076.888] {Default Queue} wl_pointer#105.motion(187310707, 22.60156250, 14.19921875) -[2619076.892] {Default Queue} wl_pointer#137.motion(187310707, 22.60156250, 14.19921875) -[2619076.896] {Default Queue} wl_pointer#169.motion(187310707, 22.60156250, 14.19921875) -[2619076.901] {Default Queue} wl_pointer#201.motion(187310707, 22.60156250, 14.19921875) -[2619076.905] {Default Queue} wl_pointer#233.motion(187310707, 22.60156250, 14.19921875) -[2619076.909] {Default Queue} wl_pointer#265.motion(187310707, 22.60156250, 14.19921875) -[2619076.913] {Default Queue} wl_pointer#297.motion(187310707, 22.60156250, 14.19921875) -[2619076.917] {Default Queue} wl_pointer#329.motion(187310707, 22.60156250, 14.19921875) -[2619076.921] {Default Queue} wl_pointer#361.motion(187310707, 22.60156250, 14.19921875) -[2619076.926] {Default Queue} wl_pointer#393.motion(187310707, 22.60156250, 14.19921875) -[2619076.930] {Default Queue} wl_pointer#425.motion(187310707, 22.60156250, 14.19921875) -[2619076.934] {Default Queue} wl_pointer#457.motion(187310707, 22.60156250, 14.19921875) -[2619076.939] {Default Queue} wl_pointer#489.motion(187310707, 22.60156250, 14.19921875) -[2619076.943] {Default Queue} wl_pointer#521.motion(187310707, 22.60156250, 14.19921875) -[2619076.947] {Default Queue} wl_pointer#553.motion(187310707, 22.60156250, 14.19921875) -[2619076.951] {Default Queue} wl_pointer#585.motion(187310707, 22.60156250, 14.19921875) -[2619076.955] {Default Queue} wl_pointer#617.motion(187310707, 22.60156250, 14.19921875) -[2619076.959] {Default Queue} wl_pointer#649.motion(187310707, 22.60156250, 14.19921875) -[2619076.963] {Default Queue} wl_pointer#681.motion(187310707, 22.60156250, 14.19921875) -[2619076.967] {Default Queue} wl_pointer#713.motion(187310707, 22.60156250, 14.19921875) -[2619076.971] {Default Queue} wl_pointer#745.motion(187310707, 22.60156250, 14.19921875) -[2619076.975] {Default Queue} wl_pointer#777.motion(187310707, 22.60156250, 14.19921875) -[2619076.979] {Default Queue} wl_pointer#809.motion(187310707, 22.60156250, 14.19921875) -[2619076.983] {Default Queue} wl_pointer#841.motion(187310707, 22.60156250, 14.19921875) -[2619076.987] {Default Queue} wl_pointer#873.motion(187310707, 22.60156250, 14.19921875) -[2619076.991] {Default Queue} wl_pointer#905.motion(187310707, 22.60156250, 14.19921875) -[2619076.995] {Default Queue} wl_pointer#937.motion(187310707, 22.60156250, 14.19921875) -[2619076.999] {Default Queue} wl_pointer#969.motion(187310707, 22.60156250, 14.19921875) -[2619077.003] {Default Queue} wl_pointer#1001.motion(187310707, 22.60156250, 14.19921875) -[2619077.008] {Default Queue} wl_pointer#1033.motion(187310707, 22.60156250, 14.19921875) -[2619077.012] {Default Queue} wl_pointer#1065.motion(187310707, 22.60156250, 14.19921875) -[2619077.028] {Default Queue} wl_pointer#1097.motion(187310707, 22.60156250, 14.19921875) -[2619077.034] {Default Queue} wl_pointer#1129.motion(187310707, 22.60156250, 14.19921875) -[2619077.039] {Default Queue} wl_pointer#1161.motion(187310707, 22.60156250, 14.19921875) -[2619077.043] {Default Queue} wl_pointer#1193.motion(187310707, 22.60156250, 14.19921875) -[2619077.047] {Default Queue} wl_pointer#1225.motion(187310707, 22.60156250, 14.19921875) -[2619077.051] {Default Queue} wl_pointer#1257.motion(187310707, 22.60156250, 14.19921875) -[2619077.055] {Default Queue} wl_pointer#1289.motion(187310707, 22.60156250, 14.19921875) -[2619077.059] {Default Queue} wl_pointer#1321.motion(187310707, 22.60156250, 14.19921875) -[2619077.063] {Default Queue} wl_pointer#1353.motion(187310707, 22.60156250, 14.19921875) -[2619077.067] {Default Queue} wl_pointer#1385.motion(187310707, 22.60156250, 14.19921875) -[2619077.071] {Default Queue} wl_pointer#1417.motion(187310707, 22.60156250, 14.19921875) -[2619077.075] {Default Queue} wl_pointer#1449.motion(187310707, 22.60156250, 14.19921875) -[2619077.079] {Default Queue} wl_pointer#1481.motion(187310707, 22.60156250, 14.19921875) -[2619077.083] {Default Queue} wl_pointer#1513.motion(187310707, 22.60156250, 14.19921875) -[2619077.087] {Default Queue} wl_pointer#1545.motion(187310707, 22.60156250, 14.19921875) -[2619077.091] {Default Queue} wl_pointer#1577.motion(187310707, 22.60156250, 14.19921875) -[2619077.095] {Default Queue} wl_pointer#1609.motion(187310707, 22.60156250, 14.19921875) -[2619077.099] {Default Queue} wl_pointer#1641.motion(187310707, 22.60156250, 14.19921875) -[2619077.103] {Default Queue} wl_pointer#1673.motion(187310707, 22.60156250, 14.19921875) -[2619077.108] {Default Queue} wl_pointer#1705.motion(187310707, 22.60156250, 14.19921875) -[2619077.112] {Default Queue} wl_pointer#1737.motion(187310707, 22.60156250, 14.19921875) -[2619077.116] {Default Queue} wl_pointer#1762.motion(187310707, 22.60156250, 14.19921875) -[2619077.120] {Default Queue} wl_pointer#1801.motion(187310707, 22.60156250, 14.19921875) -[2619077.124] {Default Queue} wl_pointer#1833.motion(187310707, 22.60156250, 14.19921875) -[2619077.128] {Default Queue} wl_pointer#1865.motion(187310707, 22.60156250, 14.19921875) -[2619077.132] {Default Queue} wl_pointer#1897.motion(187310707, 22.60156250, 14.19921875) -[2619077.136] {Default Queue} wl_pointer#1929.motion(187310707, 22.60156250, 14.19921875) -[2619077.140] {Default Queue} wl_pointer#1961.motion(187310707, 22.60156250, 14.19921875) -[2619077.144] {Default Queue} wl_pointer#1993.motion(187310707, 22.60156250, 14.19921875) -[2619077.148] {Default Queue} wl_pointer#2025.motion(187310707, 22.60156250, 14.19921875) -[2619077.153] {Default Queue} wl_pointer#2057.motion(187310707, 22.60156250, 14.19921875) -[2619077.157] {Default Queue} wl_pointer#2089.motion(187310707, 22.60156250, 14.19921875) -[2619077.161] {Default Queue} wl_pointer#2121.motion(187310707, 22.60156250, 14.19921875) -[2619077.165] {Default Queue} wl_pointer#2153.motion(187310707, 22.60156250, 14.19921875) -[2619077.169] {Default Queue} wl_pointer#2185.motion(187310707, 22.60156250, 14.19921875) -[2619077.173] {Default Queue} wl_pointer#2217.motion(187310707, 22.60156250, 14.19921875) -[2619077.177] {Default Queue} wl_pointer#2249.motion(187310707, 22.60156250, 14.19921875) -[2619077.181] {Default Queue} wl_pointer#2281.motion(187310707, 22.60156250, 14.19921875) -[2619077.185] {Default Queue} wl_pointer#2313.motion(187310707, 22.60156250, 14.19921875) -[2619077.189] {Default Queue} wl_pointer#2345.motion(187310707, 22.60156250, 14.19921875) -[2619077.194] {Default Queue} wl_pointer#2377.motion(187310707, 22.60156250, 14.19921875) -[2619077.198] {Default Queue} wl_pointer#2409.motion(187310707, 22.60156250, 14.19921875) -[2619077.202] {Default Queue} wl_pointer#2441.motion(187310707, 22.60156250, 14.19921875) -[2619077.206] {Default Queue} wl_pointer#2473.motion(187310707, 22.60156250, 14.19921875) -[2619077.210] {Default Queue} wl_pointer#2498.motion(187310707, 22.60156250, 14.19921875) -[2619077.222] {Default Queue} -> wl_buffer#2078.destroy() -[2619077.231] {Default Queue} -> wl_buffer#2077.destroy() -[2619077.236] {Default Queue} -> wl_shm_pool#2076.destroy() -[2619077.240] {Default Queue} -> wl_shm_pool#2075.destroy() -[2619077.245] {Default Queue} -> wl_surface#3324.destroy() -[2619077.283] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3711, fd 575, 640) -[2619077.289] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3710, fd 578, 640) -[2619077.294] {Default Queue} -> wl_shm_pool#3711.create_buffer(new id wl_buffer#3713, 0, 10, 16, 40, 0) -[2619077.298] {Default Queue} -> wl_shm_pool#3710.create_buffer(new id wl_buffer#3712, 0, 10, 16, 40, 0) -[2619077.306] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#1756) -[2619077.310] {Default Queue} -> wl_surface#1756.attach(wl_buffer#3713, 0, 0) -[2619077.314] {Default Queue} -> wl_surface#1756.commit() -[2619077.319] {Default Queue} -> wl_surface#1756.attach(wl_buffer#3713, 0, 0) -[2619077.323] {Default Queue} -> wl_surface#1756.commit() -[2619077.327] {Default Queue} wl_pointer#2537.motion(187310707, 22.60156250, 14.19921875) -[2619077.332] {Default Queue} wl_pointer#2569.motion(187310707, 22.60156250, 14.19921875) -[2619077.336] {Default Queue} wl_pointer#2601.motion(187310707, 22.60156250, 14.19921875) -[2619077.340] {Default Queue} wl_pointer#2633.motion(187310707, 22.60156250, 14.19921875) -[2619077.344] {Default Queue} wl_pointer#2665.motion(187310707, 22.60156250, 14.19921875) -[2619077.348] {Default Queue} wl_pointer#2697.motion(187310707, 22.60156250, 14.19921875) -[2619077.352] {Default Queue} wl_pointer#2729.motion(187310707, 22.60156250, 14.19921875) -[2619077.356] {Default Queue} wl_pointer#2761.motion(187310707, 22.60156250, 14.19921875) -[2619077.360] {Default Queue} wl_pointer#2793.motion(187310707, 22.60156250, 14.19921875) -[2619077.364] {Default Queue} wl_pointer#2825.motion(187310707, 22.60156250, 14.19921875) -[2619077.369] {Default Queue} wl_pointer#2857.motion(187310707, 22.60156250, 14.19921875) -[2619077.373] {Default Queue} wl_pointer#2889.motion(187310707, 22.60156250, 14.19921875) -[2619077.377] {Default Queue} wl_pointer#2921.motion(187310707, 22.60156250, 14.19921875) -[2619077.381] {Default Queue} wl_pointer#2953.motion(187310707, 22.60156250, 14.19921875) -[2619077.385] {Default Queue} wl_pointer#2985.motion(187310707, 22.60156250, 14.19921875) -[2619077.389] {Default Queue} wl_pointer#3017.motion(187310707, 22.60156250, 14.19921875) -[2619077.394] {Default Queue} wl_pointer#3049.motion(187310707, 22.60156250, 14.19921875) -[2619077.398] {Default Queue} wl_pointer#3081.motion(187310707, 22.60156250, 14.19921875) -[2619077.402] {Default Queue} wl_pointer#3113.motion(187310707, 22.60156250, 14.19921875) -[2619077.406] {Default Queue} wl_pointer#3145.motion(187310707, 22.60156250, 14.19921875) -[2619077.410] {Default Queue} wl_pointer#3177.motion(187310707, 22.60156250, 14.19921875) -[2619077.414] {Default Queue} wl_pointer#3209.motion(187310707, 22.60156250, 14.19921875) -[2619077.418] {Default Queue} wl_pointer#3241.motion(187310707, 22.60156250, 14.19921875) -[2619077.423] {Default Queue} wl_pointer#3273.motion(187310707, 22.60156250, 14.19921875) -[2619077.427] {Default Queue} wl_pointer#3305.motion(187310707, 22.60156250, 14.19921875) -[2619077.431] {Default Queue} wl_pointer#3337.motion(187310707, 22.60156250, 14.19921875) -[2619077.435] {Default Queue} wl_pointer#3369.motion(187310707, 22.60156250, 14.19921875) -[2619077.440] {Default Queue} wl_pointer#3401.motion(187310707, 22.60156250, 14.19921875) -[2619077.444] {Default Queue} wl_pointer#3433.motion(187310707, 22.60156250, 14.19921875) -[2619077.448] {Default Queue} wl_pointer#3465.motion(187310707, 22.60156250, 14.19921875) -[2619077.452] {Default Queue} wl_pointer#3497.motion(187310707, 22.60156250, 14.19921875) -[2619077.456] {Default Queue} wl_pointer#3529.motion(187310707, 22.60156250, 14.19921875) -[2619077.460] {Default Queue} wl_pointer#3561.motion(187310707, 22.60156250, 14.19921875) -[2619077.464] {Default Queue} wl_pointer#3593.motion(187310707, 22.60156250, 14.19921875) -[2619077.471] {Default Queue} wl_pointer#3625.motion(187310707, 22.60156250, 14.19921875) -[2619077.477] {Default Queue} wl_pointer#3657.motion(187310707, 22.60156250, 14.19921875) -[2619077.481] {Default Queue} wl_pointer#3695.motion(187310707, 22.60156250, 14.19921875) -[2619077.489] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619077.494] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619077.498] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619077.502] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619077.512] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619077.517] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619077.521] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619077.525] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619077.530] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619077.534] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619077.538] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619077.542] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619077.546] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619077.551] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619077.556] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619077.560] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619077.564] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619077.568] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619077.572] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619077.576] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619077.580] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619077.584] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619077.588] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619077.592] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619077.626] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619077.633] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619077.639] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619077.644] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619077.650] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2619077.654] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2619077.662] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619077.666] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619077.670] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619077.674] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619077.679] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619077.683] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619077.687] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619077.691] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619077.696] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619077.700] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619077.704] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619077.707] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619077.712] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619077.716] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619077.720] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619077.723] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619077.728] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) -[2619077.732] {Default Queue} -> wl_surface#2311.commit() -[2619077.736] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) -[2619077.743] {Default Queue} -> wl_surface#2311.commit() -[2619077.751] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) -[2619077.755] {Default Queue} -> wl_surface#2311.commit() -[2619077.759] {Default Queue} -> wl_region#2271.subtract(0, 0, 2, 2) -[2619077.765] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619077.769] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619077.773] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619077.777] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619077.784] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619077.789] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619077.792] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619077.796] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619077.802] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619077.806] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619077.810] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619077.814] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619077.819] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619077.824] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619077.828] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619077.831] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619077.837] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619077.841] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619077.845] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619077.848] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619077.855] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619077.860] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619077.870] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619077.873] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619077.878] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619077.883] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619077.887] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619077.890] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619077.895] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619077.899] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619077.903] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619077.907] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619077.911] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619077.915] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619077.919] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619077.923] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619077.933] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619077.937] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619077.941] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619077.945] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619077.949] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619077.954] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619077.958] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619077.961] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619077.967] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619077.971] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619077.975] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619077.979] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619077.985] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619077.989] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619077.996] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619078.001] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619078.007] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619078.011] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619078.015] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619078.019] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619078.028] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619078.033] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619078.037] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619078.041] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619078.047] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619078.051] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619078.055] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619078.059] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619078.064] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619078.068] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619078.072] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619078.075] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619078.080] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619078.084] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619078.088] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619078.093] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619078.101] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619078.105] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619078.110] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619078.114] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619078.120] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2619078.125] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2619078.130] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619078.134] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619078.138] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619078.142] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619078.146] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 388) -[2619078.150] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 387) -[2619078.154] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2619078.158] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2619078.163] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2619078.167] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2619078.170] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2619078.185] {Default Queue} -> wl_buffer#2269.destroy() -[2619078.190] {Default Queue} -> wl_buffer#2270.destroy() -[2619078.195] {Default Queue} -> wl_shm_pool#2267.destroy() -[2619078.199] {Default Queue} -> wl_shm_pool#2268.destroy() -[2619078.239] {Default Queue} -> wl_shm#2255.create_pool(new id wl_shm_pool#3326, fd 581, 16) -[2619078.246] {Default Queue} -> wl_shm#2255.create_pool(new id wl_shm_pool#3323, fd 582, 16) -[2619078.251] {Default Queue} -> wl_shm_pool#3326.create_buffer(new id wl_buffer#3131, 0, 2, 2, 8, 0) -[2619078.255] {Default Queue} -> wl_shm_pool#3323.create_buffer(new id wl_buffer#3325, 0, 2, 2, 8, 0) -[2619078.262] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) -[2619078.266] {Default Queue} -> wl_surface#2247.commit() -[2619078.271] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) -[2619078.275] {Default Queue} -> wl_surface#2247.commit() -[2619078.282] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) -[2619078.286] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) -[2619078.294] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2619078.300] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2619078.309] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) -[2619078.314] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) -[2619078.318] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2619078.322] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2619078.327] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) -[2619078.331] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) -[2619078.336] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2619078.340] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2619078.345] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) -[2619078.349] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) -[2619078.353] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2619078.357] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2619078.362] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) -[2619078.366] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) -[2619078.370] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2619078.374] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2619078.453] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) -[2619078.458] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) -[2619078.462] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2619078.466] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2619078.471] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2619078.476] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2619078.481] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) -[2619078.485] {Default Queue} -> wl_surface#2247.commit() -[2619078.491] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) -[2619078.496] {Default Queue} -> wl_surface#2247.commit() -[2619079.560] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) -[2619079.566] {Default Queue} -> wl_surface#2247.commit() -[2619079.573] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) -[2619079.579] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) -[2619079.583] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2619079.587] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2619079.595] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) -[2619079.599] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) -[2619079.603] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2619079.607] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2619079.612] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) -[2619079.616] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) -[2619079.620] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2619079.624] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2619079.629] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) -[2619079.633] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) -[2619079.637] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2619079.640] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2619079.645] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) -[2619079.649] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) -[2619079.653] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2619079.657] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2619079.719] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) -[2619079.725] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) -[2619079.729] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2619079.737] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2619079.744] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2619079.748] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2619079.753] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) -[2619079.757] {Default Queue} -> wl_surface#2247.commit() -[2619079.761] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) -[2619079.765] {Default Queue} -> wl_surface#2247.commit() -[2619079.771] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) -[2619079.775] {Default Queue} -> wl_surface#2247.commit() -[2619079.780] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) -[2619079.784] {Default Queue} -> wl_surface#2215.commit() -[2619080.845] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) -[2619080.851] {Default Queue} -> wl_surface#2215.commit() -[2619080.857] {Default Queue} -> wl_region#2239.subtract(0, 0, 25, 408) -[2619080.866] {Default Queue} -> wl_region#2239.add(-23, -386, 25, 388) -[2619080.870] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) -[2619080.874] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) -[2619080.879] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) -[2619080.883] {Default Queue} -> wl_surface#2215.commit() -[2619080.887] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) -[2619080.890] {Default Queue} -> wl_surface#2215.commit() -[2619080.896] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) -[2619080.900] {Default Queue} -> wl_surface#2215.commit() -[2619080.904] {Default Queue} -> wl_region#2175.subtract(0, 0, 109, 161) -[2619080.910] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 403) -[2619080.914] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 403) -[2619080.918] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2619080.922] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2619080.991] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 403) -[2619080.996] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 403) -[2619081.000] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2619081.004] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2619081.010] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2619081.015] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2619081.063] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 403) -[2619081.068] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 403) -[2619081.072] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2619081.076] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2619081.082] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2619081.086] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2619081.092] {Default Queue} -> wl_region#2239.subtract(0, 0, 25, 408) -[2619081.096] {Default Queue} -> wl_region#2239.add(-23, -386, 25, 388) -[2619081.100] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) -[2619081.104] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) -[2619081.108] {Default Queue} -> wl_surface#2151.damage(0, 0, 109, 161) -[2619081.112] {Default Queue} -> wl_region#2175.subtract(0, 0, 132, 547) -[2619081.117] {Default Queue} -> wl_region#2175.add(-20, -383, 129, 544) -[2619081.120] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) -[2619081.124] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) -[2619081.128] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2619081.132] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2619081.136] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2619081.141] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2619081.145] {Default Queue} -> wl_surface#2215.damage(0, 0, 2, 2) -[2619081.149] {Default Queue} -> wl_surface#2151.damage(0, 0, 109, 161) -[2619081.164] {Default Queue} -> wl_buffer#3720.destroy() -[2619081.174] {Default Queue} -> wl_buffer#3721.destroy() -[2619081.181] {Default Queue} -> wl_shm_pool#3718.destroy() -[2619081.185] {Default Queue} -> wl_shm_pool#3719.destroy() -[2619081.266] {Default Queue} -> wl_shm#2159.create_pool(new id wl_shm_pool#476, fd 575, 70196) -[2619081.275] {Default Queue} -> wl_shm#2159.create_pool(new id wl_shm_pool#1595, fd 578, 70196) -[2619081.281] {Default Queue} -> wl_shm_pool#476.create_buffer(new id wl_buffer#1596, 0, 109, 161, 436, 0) -[2619081.286] {Default Queue} -> wl_shm_pool#1595.create_buffer(new id wl_buffer#1597, 0, 109, 161, 436, 0) -[2619081.310] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) -[2619081.315] {Default Queue} -> wl_surface#2151.commit() -[2619081.338] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) -[2619081.343] {Default Queue} -> wl_surface#2151.commit() -[2619081.352] {Default Queue} -> wl_region#2175.subtract(0, 0, 132, 547) -[2619081.357] {Default Queue} -> wl_region#2175.add(-20, -383, 129, 544) -[2619081.361] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) -[2619081.365] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) -[2619081.372] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) -[2619081.376] {Default Queue} -> wl_surface#2151.commit() -[2619081.383] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) -[2619081.387] {Default Queue} -> wl_surface#2151.commit() -[2619082.383] {Display Queue} wl_display#1.delete_id(3709) -[2619082.391] {Display Queue} wl_display#1.delete_id(3708) -[2619082.395] {Display Queue} wl_display#1.delete_id(3707) -[2619082.399] {Display Queue} wl_display#1.delete_id(3706) -[2619082.403] {Display Queue} wl_display#1.delete_id(1916) -[2619082.407] {Display Queue} wl_display#1.delete_id(3716) -[2619082.411] {Display Queue} wl_display#1.delete_id(3717) -[2619082.415] {Display Queue} wl_display#1.delete_id(3714) -[2619082.419] {Display Queue} wl_display#1.delete_id(3715) -[2619082.423] {Default Queue} wl_pointer#24.motion(187310711, 22.19921875, 14.19921875) -[2619082.428] {Default Queue} wl_pointer#81.motion(187310711, 22.19921875, 14.19921875) -[2619082.433] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619082.438] {Default Queue} wl_pointer#105.motion(187310711, 22.19921875, 14.19921875) -[2619082.442] {Default Queue} wl_pointer#137.motion(187310711, 22.19921875, 14.19921875) -[2619082.446] {Default Queue} wl_pointer#169.motion(187310711, 22.19921875, 14.19921875) -[2619082.451] {Default Queue} wl_pointer#201.motion(187310711, 22.19921875, 14.19921875) -[2619082.455] {Default Queue} wl_pointer#233.motion(187310711, 22.19921875, 14.19921875) -[2619082.459] {Default Queue} wl_pointer#265.motion(187310711, 22.19921875, 14.19921875) -[2619082.464] {Default Queue} wl_pointer#297.motion(187310711, 22.19921875, 14.19921875) -[2619082.468] {Default Queue} wl_pointer#329.motion(187310711, 22.19921875, 14.19921875) -[2619082.472] {Default Queue} wl_pointer#361.motion(187310711, 22.19921875, 14.19921875) -[2619082.476] {Default Queue} wl_pointer#393.motion(187310711, 22.19921875, 14.19921875) -[2619082.480] {Default Queue} wl_pointer#425.motion(187310711, 22.19921875, 14.19921875) -[2619082.484] {Default Queue} wl_pointer#457.motion(187310711, 22.19921875, 14.19921875) -[2619082.488] {Default Queue} wl_pointer#489.motion(187310711, 22.19921875, 14.19921875) -[2619082.492] {Default Queue} wl_pointer#521.motion(187310711, 22.19921875, 14.19921875) -[2619082.496] {Default Queue} wl_pointer#553.motion(187310711, 22.19921875, 14.19921875) -[2619082.500] {Default Queue} wl_pointer#585.motion(187310711, 22.19921875, 14.19921875) -[2619082.504] {Default Queue} wl_pointer#617.motion(187310711, 22.19921875, 14.19921875) -[2619082.508] {Default Queue} wl_pointer#649.motion(187310711, 22.19921875, 14.19921875) -[2619082.512] {Default Queue} wl_pointer#681.motion(187310711, 22.19921875, 14.19921875) -[2619082.516] {Default Queue} wl_pointer#713.motion(187310711, 22.19921875, 14.19921875) -[2619082.520] {Default Queue} wl_pointer#745.motion(187310711, 22.19921875, 14.19921875) -[2619082.528] {Default Queue} wl_pointer#777.motion(187310711, 22.19921875, 14.19921875) -[2619082.535] {Default Queue} wl_pointer#809.motion(187310711, 22.19921875, 14.19921875) -[2619082.539] {Default Queue} wl_pointer#841.motion(187310711, 22.19921875, 14.19921875) -[2619082.543] {Default Queue} wl_pointer#873.motion(187310711, 22.19921875, 14.19921875) -[2619082.547] {Default Queue} wl_pointer#905.motion(187310711, 22.19921875, 14.19921875) -[2619082.551] {Default Queue} wl_pointer#937.motion(187310711, 22.19921875, 14.19921875) -[2619082.556] {Default Queue} wl_pointer#969.motion(187310711, 22.19921875, 14.19921875) -[2619082.562] {Default Queue} wl_pointer#1001.motion(187310711, 22.19921875, 14.19921875) -[2619082.567] {Default Queue} wl_pointer#1033.motion(187310711, 22.19921875, 14.19921875) -[2619082.572] {Default Queue} wl_pointer#1065.motion(187310711, 22.19921875, 14.19921875) -[2619082.576] {Default Queue} wl_pointer#1097.motion(187310711, 22.19921875, 14.19921875) -[2619082.580] {Default Queue} wl_pointer#1129.motion(187310711, 22.19921875, 14.19921875) -[2619082.584] {Default Queue} wl_pointer#1161.motion(187310711, 22.19921875, 14.19921875) -[2619082.589] {Default Queue} wl_pointer#1193.motion(187310711, 22.19921875, 14.19921875) -[2619082.593] {Default Queue} wl_pointer#1225.motion(187310711, 22.19921875, 14.19921875) -[2619082.597] {Default Queue} wl_pointer#1257.motion(187310711, 22.19921875, 14.19921875) -[2619082.601] {Default Queue} wl_pointer#1289.motion(187310711, 22.19921875, 14.19921875) -[2619082.605] {Default Queue} wl_pointer#1321.motion(187310711, 22.19921875, 14.19921875) -[2619082.609] {Default Queue} wl_pointer#1353.motion(187310711, 22.19921875, 14.19921875) -[2619082.613] {Default Queue} wl_pointer#1385.motion(187310711, 22.19921875, 14.19921875) -[2619082.617] {Default Queue} wl_pointer#1417.motion(187310711, 22.19921875, 14.19921875) -[2619082.621] {Default Queue} wl_pointer#1449.motion(187310711, 22.19921875, 14.19921875) -[2619082.625] {Default Queue} wl_pointer#1481.motion(187310711, 22.19921875, 14.19921875) -[2619082.630] {Default Queue} wl_pointer#1513.motion(187310711, 22.19921875, 14.19921875) -[2619082.634] {Default Queue} wl_pointer#1545.motion(187310711, 22.19921875, 14.19921875) -[2619082.638] {Default Queue} wl_pointer#1577.motion(187310711, 22.19921875, 14.19921875) -[2619082.642] {Default Queue} wl_pointer#1609.motion(187310711, 22.19921875, 14.19921875) -[2619082.646] {Default Queue} wl_pointer#1641.motion(187310711, 22.19921875, 14.19921875) -[2619082.650] {Default Queue} wl_pointer#1673.motion(187310711, 22.19921875, 14.19921875) -[2619082.655] {Default Queue} wl_pointer#1705.motion(187310711, 22.19921875, 14.19921875) -[2619082.658] {Default Queue} wl_pointer#1737.motion(187310711, 22.19921875, 14.19921875) -[2619082.663] {Default Queue} wl_pointer#1762.motion(187310711, 22.19921875, 14.19921875) -[2619082.667] {Default Queue} wl_pointer#1801.motion(187310711, 22.19921875, 14.19921875) -[2619082.671] {Default Queue} wl_pointer#1833.motion(187310711, 22.19921875, 14.19921875) -[2619082.675] {Default Queue} wl_pointer#1865.motion(187310711, 22.19921875, 14.19921875) -[2619082.679] {Default Queue} wl_pointer#1897.motion(187310711, 22.19921875, 14.19921875) -[2619082.683] {Default Queue} wl_pointer#1929.motion(187310711, 22.19921875, 14.19921875) -[2619082.687] {Default Queue} wl_pointer#1961.motion(187310711, 22.19921875, 14.19921875) -[2619082.692] {Default Queue} wl_pointer#1993.motion(187310711, 22.19921875, 14.19921875) -[2619082.696] {Default Queue} wl_pointer#2025.motion(187310711, 22.19921875, 14.19921875) -[2619082.700] {Default Queue} wl_pointer#2057.motion(187310711, 22.19921875, 14.19921875) -[2619082.704] {Default Queue} wl_pointer#2089.motion(187310711, 22.19921875, 14.19921875) -[2619082.708] {Default Queue} wl_pointer#2121.motion(187310711, 22.19921875, 14.19921875) -[2619082.712] {Default Queue} wl_pointer#2153.motion(187310711, 22.19921875, 14.19921875) -[2619082.716] {Default Queue} wl_pointer#2185.motion(187310711, 22.19921875, 14.19921875) -[2619082.724] {Default Queue} wl_pointer#2217.motion(187310711, 22.19921875, 14.19921875) -[2619082.729] {Default Queue} wl_pointer#2249.motion(187310711, 22.19921875, 14.19921875) -[2619082.734] {Default Queue} wl_pointer#2281.motion(187310711, 22.19921875, 14.19921875) -[2619082.738] {Default Queue} wl_pointer#2313.motion(187310711, 22.19921875, 14.19921875) -[2619082.742] {Default Queue} wl_pointer#2345.motion(187310711, 22.19921875, 14.19921875) -[2619082.747] {Default Queue} wl_pointer#2377.motion(187310711, 22.19921875, 14.19921875) -[2619082.751] {Default Queue} wl_pointer#2409.motion(187310711, 22.19921875, 14.19921875) -[2619082.755] {Default Queue} wl_pointer#2441.motion(187310711, 22.19921875, 14.19921875) -[2619082.759] {Default Queue} wl_pointer#2473.motion(187310711, 22.19921875, 14.19921875) -[2619082.764] {Default Queue} wl_pointer#2498.motion(187310711, 22.19921875, 14.19921875) -[2619082.776] {Default Queue} -> wl_buffer#3713.destroy() -[2619082.781] {Default Queue} -> wl_buffer#3712.destroy() -[2619082.785] {Default Queue} -> wl_shm_pool#3711.destroy() -[2619082.789] {Default Queue} -> wl_shm_pool#3710.destroy() -[2619082.793] {Default Queue} -> wl_surface#1756.destroy() -[2619082.831] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3715, fd 575, 640) -[2619082.838] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3714, fd 578, 640) -[2619082.843] {Default Queue} -> wl_shm_pool#3715.create_buffer(new id wl_buffer#3717, 0, 10, 16, 40, 0) -[2619082.848] {Default Queue} -> wl_shm_pool#3714.create_buffer(new id wl_buffer#3716, 0, 10, 16, 40, 0) -[2619082.854] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#1916) -[2619082.858] {Default Queue} -> wl_surface#1916.attach(wl_buffer#3717, 0, 0) -[2619082.872] {Default Queue} -> wl_surface#1916.commit() -[2619082.877] {Default Queue} -> wl_surface#1916.attach(wl_buffer#3717, 0, 0) -[2619082.883] {Default Queue} -> wl_surface#1916.commit() -[2619082.888] {Default Queue} wl_pointer#2537.motion(187310711, 22.19921875, 14.19921875) -[2619082.893] {Default Queue} wl_pointer#2569.motion(187310711, 22.19921875, 14.19921875) -[2619082.898] {Default Queue} wl_pointer#2601.motion(187310711, 22.19921875, 14.19921875) -[2619082.902] {Default Queue} wl_pointer#2633.motion(187310711, 22.19921875, 14.19921875) -[2619082.906] {Default Queue} wl_pointer#2665.motion(187310711, 22.19921875, 14.19921875) -[2619082.910] {Default Queue} wl_pointer#2697.motion(187310711, 22.19921875, 14.19921875) -[2619082.914] {Default Queue} wl_pointer#2729.motion(187310711, 22.19921875, 14.19921875) -[2619082.918] {Default Queue} wl_pointer#2761.motion(187310711, 22.19921875, 14.19921875) -[2619082.923] {Default Queue} wl_pointer#2793.motion(187310711, 22.19921875, 14.19921875) -[2619082.927] {Default Queue} wl_pointer#2825.motion(187310711, 22.19921875, 14.19921875) -[2619082.931] {Default Queue} wl_pointer#2857.motion(187310711, 22.19921875, 14.19921875) -[2619082.935] {Default Queue} wl_pointer#2889.motion(187310711, 22.19921875, 14.19921875) -[2619082.939] {Default Queue} wl_pointer#2921.motion(187310711, 22.19921875, 14.19921875) -[2619082.943] {Default Queue} wl_pointer#2953.motion(187310711, 22.19921875, 14.19921875) -[2619082.947] {Default Queue} wl_pointer#2985.motion(187310711, 22.19921875, 14.19921875) -[2619082.951] {Default Queue} wl_pointer#3017.motion(187310711, 22.19921875, 14.19921875) -[2619082.955] {Default Queue} wl_pointer#3049.motion(187310711, 22.19921875, 14.19921875) -[2619082.959] {Default Queue} wl_pointer#3081.motion(187310711, 22.19921875, 14.19921875) -[2619082.963] {Default Queue} wl_pointer#3113.motion(187310711, 22.19921875, 14.19921875) -[2619082.967] {Default Queue} wl_pointer#3145.motion(187310711, 22.19921875, 14.19921875) -[2619082.971] {Default Queue} wl_pointer#3177.motion(187310711, 22.19921875, 14.19921875) -[2619082.976] {Default Queue} wl_pointer#3209.motion(187310711, 22.19921875, 14.19921875) -[2619082.980] {Default Queue} wl_pointer#3241.motion(187310711, 22.19921875, 14.19921875) -[2619082.984] {Default Queue} wl_pointer#3273.motion(187310711, 22.19921875, 14.19921875) -[2619082.991] {Default Queue} wl_pointer#3305.motion(187310711, 22.19921875, 14.19921875) -[2619082.997] {Default Queue} wl_pointer#3337.motion(187310711, 22.19921875, 14.19921875) -[2619083.001] {Default Queue} wl_pointer#3369.motion(187310711, 22.19921875, 14.19921875) -[2619083.005] {Default Queue} wl_pointer#3401.motion(187310711, 22.19921875, 14.19921875) -[2619083.009] {Default Queue} wl_pointer#3433.motion(187310711, 22.19921875, 14.19921875) -[2619083.014] {Default Queue} wl_pointer#3465.motion(187310711, 22.19921875, 14.19921875) -[2619083.018] {Default Queue} wl_pointer#3497.motion(187310711, 22.19921875, 14.19921875) -[2619083.023] {Default Queue} wl_pointer#3529.motion(187310711, 22.19921875, 14.19921875) -[2619083.027] {Default Queue} wl_pointer#3561.motion(187310711, 22.19921875, 14.19921875) -[2619083.031] {Default Queue} wl_pointer#3593.motion(187310711, 22.19921875, 14.19921875) -[2619083.035] {Default Queue} wl_pointer#3625.motion(187310711, 22.19921875, 14.19921875) -[2619083.039] {Default Queue} wl_pointer#3657.motion(187310711, 22.19921875, 14.19921875) -[2619083.043] {Default Queue} wl_pointer#3695.motion(187310711, 22.19921875, 14.19921875) -[2619083.053] {Default Queue} -> wl_region#2175.subtract(0, 0, 132, 547) -[2619083.057] {Default Queue} -> wl_region#2175.add(-20, -383, 129, 544) -[2619083.061] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) -[2619083.065] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) -[2619083.072] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) -[2619083.077] {Default Queue} -> wl_surface#2151.commit() -[2619083.082] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) -[2619083.086] {Default Queue} -> wl_surface#2151.commit() -[2619083.113] {Default Queue} wl_pointer#24.motion(187310717, 21.80078125, 14.19921875) -[2619083.119] {Default Queue} wl_pointer#81.motion(187310717, 21.80078125, 14.19921875) -[2619083.124] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619083.128] {Default Queue} wl_pointer#105.motion(187310717, 21.80078125, 14.19921875) -[2619083.133] {Default Queue} wl_pointer#137.motion(187310717, 21.80078125, 14.19921875) -[2619083.137] {Default Queue} wl_pointer#169.motion(187310717, 21.80078125, 14.19921875) -[2619083.141] {Default Queue} wl_pointer#201.motion(187310717, 21.80078125, 14.19921875) -[2619083.145] {Default Queue} wl_pointer#233.motion(187310717, 21.80078125, 14.19921875) -[2619083.149] {Default Queue} wl_pointer#265.motion(187310717, 21.80078125, 14.19921875) -[2619083.153] {Default Queue} wl_pointer#297.motion(187310717, 21.80078125, 14.19921875) -[2619083.157] {Default Queue} wl_pointer#329.motion(187310717, 21.80078125, 14.19921875) -[2619083.161] {Default Queue} wl_pointer#361.motion(187310717, 21.80078125, 14.19921875) -[2619083.165] {Default Queue} wl_pointer#393.motion(187310717, 21.80078125, 14.19921875) -[2619083.169] {Default Queue} wl_pointer#425.motion(187310717, 21.80078125, 14.19921875) -[2619083.173] {Default Queue} wl_pointer#457.motion(187310717, 21.80078125, 14.19921875) -[2619083.177] {Default Queue} wl_pointer#489.motion(187310717, 21.80078125, 14.19921875) -[2619083.181] {Default Queue} wl_pointer#521.motion(187310717, 21.80078125, 14.19921875) -[2619083.185] {Default Queue} wl_pointer#553.motion(187310717, 21.80078125, 14.19921875) -[2619083.189] {Default Queue} wl_pointer#585.motion(187310717, 21.80078125, 14.19921875) -[2619083.193] {Default Queue} wl_pointer#617.motion(187310717, 21.80078125, 14.19921875) -[2619083.198] {Default Queue} wl_pointer#649.motion(187310717, 21.80078125, 14.19921875) -[2619083.202] {Default Queue} wl_pointer#681.motion(187310717, 21.80078125, 14.19921875) -[2619083.206] {Default Queue} wl_pointer#713.motion(187310717, 21.80078125, 14.19921875) -[2619083.210] {Default Queue} wl_pointer#745.motion(187310717, 21.80078125, 14.19921875) -[2619083.214] {Default Queue} wl_pointer#777.motion(187310717, 21.80078125, 14.19921875) -[2619083.218] {Default Queue} wl_pointer#809.motion(187310717, 21.80078125, 14.19921875) -[2619083.225] {Default Queue} wl_pointer#841.motion(187310717, 21.80078125, 14.19921875) -[2619083.231] {Default Queue} wl_pointer#873.motion(187310717, 21.80078125, 14.19921875) -[2619083.235] {Default Queue} wl_pointer#905.motion(187310717, 21.80078125, 14.19921875) -[2619083.239] {Default Queue} wl_pointer#937.motion(187310717, 21.80078125, 14.19921875) -[2619083.243] {Default Queue} wl_pointer#969.motion(187310717, 21.80078125, 14.19921875) -[2619083.247] {Default Queue} wl_pointer#1001.motion(187310717, 21.80078125, 14.19921875) -[2619083.251] {Default Queue} wl_pointer#1033.motion(187310717, 21.80078125, 14.19921875) -[2619083.255] {Default Queue} wl_pointer#1065.motion(187310717, 21.80078125, 14.19921875) -[2619083.260] {Default Queue} wl_pointer#1097.motion(187310717, 21.80078125, 14.19921875) -[2619083.264] {Default Queue} wl_pointer#1129.motion(187310717, 21.80078125, 14.19921875) -[2619083.268] {Default Queue} wl_pointer#1161.motion(187310717, 21.80078125, 14.19921875) -[2619083.272] {Default Queue} wl_pointer#1193.motion(187310717, 21.80078125, 14.19921875) -[2619083.276] {Default Queue} wl_pointer#1225.motion(187310717, 21.80078125, 14.19921875) -[2619083.281] {Default Queue} wl_pointer#1257.motion(187310717, 21.80078125, 14.19921875) -[2619083.285] {Default Queue} wl_pointer#1289.motion(187310717, 21.80078125, 14.19921875) -[2619083.290] {Default Queue} wl_pointer#1321.motion(187310717, 21.80078125, 14.19921875) -[2619083.296] {Default Queue} wl_pointer#1353.motion(187310717, 21.80078125, 14.19921875) -[2619083.301] {Default Queue} wl_pointer#1385.motion(187310717, 21.80078125, 14.19921875) -[2619083.306] {Default Queue} wl_pointer#1417.motion(187310717, 21.80078125, 14.19921875) -[2619083.310] {Default Queue} wl_pointer#1449.motion(187310717, 21.80078125, 14.19921875) -[2619083.314] {Default Queue} wl_pointer#1481.motion(187310717, 21.80078125, 14.19921875) -[2619083.319] {Default Queue} wl_pointer#1513.motion(187310717, 21.80078125, 14.19921875) -[2619083.323] {Default Queue} wl_pointer#1545.motion(187310717, 21.80078125, 14.19921875) -[2619083.327] {Default Queue} wl_pointer#1577.motion(187310717, 21.80078125, 14.19921875) -[2619083.331] {Default Queue} wl_pointer#1609.motion(187310717, 21.80078125, 14.19921875) -[2619083.336] {Default Queue} wl_pointer#1641.motion(187310717, 21.80078125, 14.19921875) -[2619083.340] {Default Queue} wl_pointer#1673.motion(187310717, 21.80078125, 14.19921875) -[2619083.344] {Default Queue} wl_pointer#1705.motion(187310717, 21.80078125, 14.19921875) -[2619083.348] {Default Queue} wl_pointer#1737.motion(187310717, 21.80078125, 14.19921875) -[2619083.352] {Default Queue} wl_pointer#1762.motion(187310717, 21.80078125, 14.19921875) -[2619083.356] {Default Queue} wl_pointer#1801.motion(187310717, 21.80078125, 14.19921875) -[2619083.360] {Default Queue} wl_pointer#1833.motion(187310717, 21.80078125, 14.19921875) -[2619083.364] {Default Queue} wl_pointer#1865.motion(187310717, 21.80078125, 14.19921875) -[2619083.368] {Default Queue} wl_pointer#1897.motion(187310717, 21.80078125, 14.19921875) -[2619083.373] {Default Queue} wl_pointer#1929.motion(187310717, 21.80078125, 14.19921875) -[2619083.376] {Default Queue} wl_pointer#1961.motion(187310717, 21.80078125, 14.19921875) -[2619083.381] {Default Queue} wl_pointer#1993.motion(187310717, 21.80078125, 14.19921875) -[2619083.385] {Default Queue} wl_pointer#2025.motion(187310717, 21.80078125, 14.19921875) -[2619083.389] {Default Queue} wl_pointer#2057.motion(187310717, 21.80078125, 14.19921875) -[2619083.393] {Default Queue} wl_pointer#2089.motion(187310717, 21.80078125, 14.19921875) -[2619083.397] {Default Queue} wl_pointer#2121.motion(187310717, 21.80078125, 14.19921875) -[2619083.401] {Default Queue} wl_pointer#2153.motion(187310717, 21.80078125, 14.19921875) -[2619083.405] {Default Queue} wl_pointer#2185.motion(187310717, 21.80078125, 14.19921875) -[2619083.409] {Default Queue} wl_pointer#2217.motion(187310717, 21.80078125, 14.19921875) -[2619083.413] {Default Queue} wl_pointer#2249.motion(187310717, 21.80078125, 14.19921875) -[2619083.418] {Default Queue} wl_pointer#2281.motion(187310717, 21.80078125, 14.19921875) -[2619083.425] {Default Queue} wl_pointer#2313.motion(187310717, 21.80078125, 14.19921875) -[2619083.430] {Default Queue} wl_pointer#2345.motion(187310717, 21.80078125, 14.19921875) -[2619083.434] {Default Queue} wl_pointer#2377.motion(187310717, 21.80078125, 14.19921875) -[2619083.438] {Default Queue} wl_pointer#2409.motion(187310717, 21.80078125, 14.19921875) -[2619083.443] {Default Queue} wl_pointer#2441.motion(187310717, 21.80078125, 14.19921875) -[2619083.447] {Default Queue} wl_pointer#2473.motion(187310717, 21.80078125, 14.19921875) -[2619083.451] {Default Queue} wl_pointer#2498.motion(187310717, 21.80078125, 14.19921875) -[2619083.462] {Default Queue} -> wl_buffer#3717.destroy() -[2619083.467] {Default Queue} -> wl_buffer#3716.destroy() -[2619083.471] {Default Queue} -> wl_shm_pool#3715.destroy() -[2619083.475] {Default Queue} -> wl_shm_pool#3714.destroy() -[2619083.481] {Default Queue} -> wl_surface#1916.destroy() -[2619083.518] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3706, fd 581, 640) -[2619083.525] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3707, fd 582, 640) -[2619083.530] {Default Queue} -> wl_shm_pool#3706.create_buffer(new id wl_buffer#3708, 0, 10, 16, 40, 0) -[2619083.535] {Default Queue} -> wl_shm_pool#3707.create_buffer(new id wl_buffer#3709, 0, 10, 16, 40, 0) -[2619083.542] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#1598) -[2619083.546] {Default Queue} -> wl_surface#1598.attach(wl_buffer#3708, 0, 0) -[2619083.550] {Default Queue} -> wl_surface#1598.commit() -[2619083.555] {Default Queue} -> wl_surface#1598.attach(wl_buffer#3708, 0, 0) -[2619083.559] {Default Queue} -> wl_surface#1598.commit() -[2619083.563] {Default Queue} wl_pointer#2537.motion(187310717, 21.80078125, 14.19921875) -[2619083.568] {Default Queue} wl_pointer#2569.motion(187310717, 21.80078125, 14.19921875) -[2619083.572] {Default Queue} wl_pointer#2601.motion(187310717, 21.80078125, 14.19921875) -[2619083.576] {Default Queue} wl_pointer#2633.motion(187310717, 21.80078125, 14.19921875) -[2619083.580] {Default Queue} wl_pointer#2665.motion(187310717, 21.80078125, 14.19921875) -[2619083.584] {Default Queue} wl_pointer#2697.motion(187310717, 21.80078125, 14.19921875) -[2619083.588] {Default Queue} wl_pointer#2729.motion(187310717, 21.80078125, 14.19921875) -[2619083.593] {Default Queue} wl_pointer#2761.motion(187310717, 21.80078125, 14.19921875) -[2619083.597] {Default Queue} wl_pointer#2793.motion(187310717, 21.80078125, 14.19921875) -[2619083.601] {Default Queue} wl_pointer#2825.motion(187310717, 21.80078125, 14.19921875) -[2619083.606] {Default Queue} wl_pointer#2857.motion(187310717, 21.80078125, 14.19921875) -[2619083.610] {Default Queue} wl_pointer#2889.motion(187310717, 21.80078125, 14.19921875) -[2619083.614] {Default Queue} wl_pointer#2921.motion(187310717, 21.80078125, 14.19921875) -[2619083.618] {Default Queue} wl_pointer#2953.motion(187310717, 21.80078125, 14.19921875) -[2619083.622] {Default Queue} wl_pointer#2985.motion(187310717, 21.80078125, 14.19921875) -[2619083.626] {Default Queue} wl_pointer#3017.motion(187310717, 21.80078125, 14.19921875) -[2619083.630] {Default Queue} wl_pointer#3049.motion(187310717, 21.80078125, 14.19921875) -[2619083.635] {Default Queue} wl_pointer#3081.motion(187310717, 21.80078125, 14.19921875) -[2619083.639] {Default Queue} wl_pointer#3113.motion(187310717, 21.80078125, 14.19921875) -[2619083.643] {Default Queue} wl_pointer#3145.motion(187310717, 21.80078125, 14.19921875) -[2619083.647] {Default Queue} wl_pointer#3177.motion(187310717, 21.80078125, 14.19921875) -[2619083.651] {Default Queue} wl_pointer#3209.motion(187310717, 21.80078125, 14.19921875) -[2619083.655] {Default Queue} wl_pointer#3241.motion(187310717, 21.80078125, 14.19921875) -[2619083.659] {Default Queue} wl_pointer#3273.motion(187310717, 21.80078125, 14.19921875) -[2619083.663] {Default Queue} wl_pointer#3305.motion(187310717, 21.80078125, 14.19921875) -[2619083.668] {Default Queue} wl_pointer#3337.motion(187310717, 21.80078125, 14.19921875) -[2619083.679] {Default Queue} wl_pointer#3369.motion(187310717, 21.80078125, 14.19921875) -[2619083.687] {Default Queue} wl_pointer#3401.motion(187310717, 21.80078125, 14.19921875) -[2619083.691] {Default Queue} wl_pointer#3433.motion(187310717, 21.80078125, 14.19921875) -[2619083.695] {Default Queue} wl_pointer#3465.motion(187310717, 21.80078125, 14.19921875) -[2619083.701] {Default Queue} wl_pointer#3497.motion(187310717, 21.80078125, 14.19921875) -[2619083.706] {Default Queue} wl_pointer#3529.motion(187310717, 21.80078125, 14.19921875) -[2619083.712] {Default Queue} wl_pointer#3561.motion(187310717, 21.80078125, 14.19921875) -[2619083.718] {Default Queue} wl_pointer#3593.motion(187310717, 21.80078125, 14.19921875) -[2619083.723] {Default Queue} wl_pointer#3625.motion(187310717, 21.80078125, 14.19921875) -[2619083.729] {Default Queue} wl_pointer#3657.motion(187310717, 21.80078125, 14.19921875) -[2619083.734] {Default Queue} wl_pointer#3695.motion(187310717, 21.80078125, 14.19921875) -[2619083.738] {Default Queue} wl_pointer#24.motion(187310717, 21.39843750, 14.19921875) -[2619083.742] {Default Queue} wl_pointer#81.motion(187310717, 21.39843750, 14.19921875) -[2619083.747] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619083.752] {Default Queue} wl_pointer#105.motion(187310717, 21.39843750, 14.19921875) -[2619083.756] {Default Queue} wl_pointer#137.motion(187310717, 21.39843750, 14.19921875) -[2619083.760] {Default Queue} wl_pointer#169.motion(187310717, 21.39843750, 14.19921875) -[2619083.764] {Default Queue} wl_pointer#201.motion(187310717, 21.39843750, 14.19921875) -[2619083.768] {Default Queue} wl_pointer#233.motion(187310717, 21.39843750, 14.19921875) -[2619083.772] {Default Queue} wl_pointer#265.motion(187310717, 21.39843750, 14.19921875) -[2619083.776] {Default Queue} wl_pointer#297.motion(187310717, 21.39843750, 14.19921875) -[2619083.780] {Default Queue} wl_pointer#329.motion(187310717, 21.39843750, 14.19921875) -[2619083.784] {Default Queue} wl_pointer#361.motion(187310717, 21.39843750, 14.19921875) -[2619083.788] {Default Queue} wl_pointer#393.motion(187310717, 21.39843750, 14.19921875) -[2619083.792] {Default Queue} wl_pointer#425.motion(187310717, 21.39843750, 14.19921875) -[2619083.796] {Default Queue} wl_pointer#457.motion(187310717, 21.39843750, 14.19921875) -[2619083.801] {Default Queue} wl_pointer#489.motion(187310717, 21.39843750, 14.19921875) -[2619083.805] {Default Queue} wl_pointer#521.motion(187310717, 21.39843750, 14.19921875) -[2619083.809] {Default Queue} wl_pointer#553.motion(187310717, 21.39843750, 14.19921875) -[2619083.813] {Default Queue} wl_pointer#585.motion(187310717, 21.39843750, 14.19921875) -[2619083.817] {Default Queue} wl_pointer#617.motion(187310717, 21.39843750, 14.19921875) -[2619083.821] {Default Queue} wl_pointer#649.motion(187310717, 21.39843750, 14.19921875) -[2619083.825] {Default Queue} wl_pointer#681.motion(187310717, 21.39843750, 14.19921875) -[2619083.829] {Default Queue} wl_pointer#713.motion(187310717, 21.39843750, 14.19921875) -[2619083.833] {Default Queue} wl_pointer#745.motion(187310717, 21.39843750, 14.19921875) -[2619083.837] {Default Queue} wl_pointer#777.motion(187310717, 21.39843750, 14.19921875) -[2619083.841] {Default Queue} wl_pointer#809.motion(187310717, 21.39843750, 14.19921875) -[2619083.845] {Default Queue} wl_pointer#841.motion(187310717, 21.39843750, 14.19921875) -[2619083.849] {Default Queue} wl_pointer#873.motion(187310717, 21.39843750, 14.19921875) -[2619083.853] {Default Queue} wl_pointer#905.motion(187310717, 21.39843750, 14.19921875) -[2619083.857] {Default Queue} wl_pointer#937.motion(187310717, 21.39843750, 14.19921875) -[2619083.862] {Default Queue} wl_pointer#969.motion(187310717, 21.39843750, 14.19921875) -[2619083.866] {Default Queue} wl_pointer#1001.motion(187310717, 21.39843750, 14.19921875) -[2619083.874] {Default Queue} wl_pointer#1033.motion(187310717, 21.39843750, 14.19921875) -[2619083.878] {Default Queue} wl_pointer#1065.motion(187310717, 21.39843750, 14.19921875) -[2619083.882] {Default Queue} wl_pointer#1097.motion(187310717, 21.39843750, 14.19921875) -[2619083.891] {Default Queue} wl_pointer#1129.motion(187310717, 21.39843750, 14.19921875) -[2619083.897] {Default Queue} wl_pointer#1161.motion(187310717, 21.39843750, 14.19921875) -[2619083.902] {Default Queue} wl_pointer#1193.motion(187310717, 21.39843750, 14.19921875) -[2619083.906] {Default Queue} wl_pointer#1225.motion(187310717, 21.39843750, 14.19921875) -[2619083.911] {Default Queue} wl_pointer#1257.motion(187310717, 21.39843750, 14.19921875) -[2619083.916] {Default Queue} wl_pointer#1289.motion(187310717, 21.39843750, 14.19921875) -[2619083.921] {Default Queue} wl_pointer#1321.motion(187310717, 21.39843750, 14.19921875) -[2619083.926] {Default Queue} wl_pointer#1353.motion(187310717, 21.39843750, 14.19921875) -[2619083.930] {Default Queue} wl_pointer#1385.motion(187310717, 21.39843750, 14.19921875) -[2619083.933] {Default Queue} wl_pointer#1417.motion(187310717, 21.39843750, 14.19921875) -[2619083.939] {Default Queue} wl_pointer#1449.motion(187310717, 21.39843750, 14.19921875) -[2619083.945] {Default Queue} wl_pointer#1481.motion(187310717, 21.39843750, 14.19921875) -[2619083.950] {Default Queue} wl_pointer#1513.motion(187310717, 21.39843750, 14.19921875) -[2619083.956] {Default Queue} wl_pointer#1545.motion(187310717, 21.39843750, 14.19921875) -[2619083.961] {Default Queue} wl_pointer#1577.motion(187310717, 21.39843750, 14.19921875) -[2619083.965] {Default Queue} wl_pointer#1609.motion(187310717, 21.39843750, 14.19921875) -[2619083.969] {Default Queue} wl_pointer#1641.motion(187310717, 21.39843750, 14.19921875) -[2619083.973] {Default Queue} wl_pointer#1673.motion(187310717, 21.39843750, 14.19921875) -[2619083.977] {Default Queue} wl_pointer#1705.motion(187310717, 21.39843750, 14.19921875) -[2619083.982] {Default Queue} wl_pointer#1737.motion(187310717, 21.39843750, 14.19921875) -[2619083.987] {Default Queue} wl_pointer#1762.motion(187310717, 21.39843750, 14.19921875) -[2619083.993] {Default Queue} wl_pointer#1801.motion(187310717, 21.39843750, 14.19921875) -[2619083.998] {Default Queue} wl_pointer#1833.motion(187310717, 21.39843750, 14.19921875) -[2619084.004] {Default Queue} wl_pointer#1865.motion(187310717, 21.39843750, 14.19921875) -[2619084.009] {Default Queue} wl_pointer#1897.motion(187310717, 21.39843750, 14.19921875) -[2619084.014] {Default Queue} wl_pointer#1929.motion(187310717, 21.39843750, 14.19921875) -[2619084.018] {Default Queue} wl_pointer#1961.motion(187310717, 21.39843750, 14.19921875) -[2619084.022] {Default Queue} wl_pointer#1993.motion(187310717, 21.39843750, 14.19921875) -[2619084.028] {Default Queue} wl_pointer#2025.motion(187310717, 21.39843750, 14.19921875) -[2619084.033] {Default Queue} wl_pointer#2057.motion(187310717, 21.39843750, 14.19921875) -[2619084.038] {Default Queue} wl_pointer#2089.motion(187310717, 21.39843750, 14.19921875) -[2619084.043] {Default Queue} wl_pointer#2121.motion(187310717, 21.39843750, 14.19921875) -[2619084.049] {Default Queue} wl_pointer#2153.motion(187310717, 21.39843750, 14.19921875) -[2619084.055] {Default Queue} wl_pointer#2185.motion(187310717, 21.39843750, 14.19921875) -[2619084.061] {Default Queue} wl_pointer#2217.motion(187310717, 21.39843750, 14.19921875) -[2619084.065] {Default Queue} wl_pointer#2249.motion(187310717, 21.39843750, 14.19921875) -[2619084.069] {Default Queue} wl_pointer#2281.motion(187310717, 21.39843750, 14.19921875) -[2619084.073] {Default Queue} wl_pointer#2313.motion(187310717, 21.39843750, 14.19921875) -[2619084.078] {Default Queue} wl_pointer#2345.motion(187310717, 21.39843750, 14.19921875) -[2619084.082] {Default Queue} wl_pointer#2377.motion(187310717, 21.39843750, 14.19921875) -[2619084.086] {Default Queue} wl_pointer#2409.motion(187310717, 21.39843750, 14.19921875) -[2619084.090] {Default Queue} wl_pointer#2441.motion(187310717, 21.39843750, 14.19921875) -[2619084.094] {Default Queue} wl_pointer#2473.motion(187310717, 21.39843750, 14.19921875) -[2619084.099] {Default Queue} wl_pointer#2498.motion(187310717, 21.39843750, 14.19921875) -[2619084.125] {Default Queue} -> wl_buffer#3708.destroy() -[2619084.138] {Default Queue} -> wl_buffer#3709.destroy() -[2619084.143] {Default Queue} -> wl_shm_pool#3706.destroy() -[2619084.152] {Default Queue} -> wl_shm_pool#3707.destroy() -[2619084.160] {Default Queue} -> wl_surface#1598.destroy() -[2619084.201] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3701, fd 583, 640) -[2619084.208] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3700, fd 584, 640) -[2619084.213] {Default Queue} -> wl_shm_pool#3701.create_buffer(new id wl_buffer#3036, 0, 10, 16, 40, 0) -[2619084.217] {Default Queue} -> wl_shm_pool#3700.create_buffer(new id wl_buffer#3037, 0, 10, 16, 40, 0) -[2619084.225] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3038) -[2619084.230] {Default Queue} -> wl_surface#3038.attach(wl_buffer#3036, 0, 0) -[2619084.234] {Default Queue} -> wl_surface#3038.commit() -[2619084.240] {Default Queue} -> wl_surface#3038.attach(wl_buffer#3036, 0, 0) -[2619084.244] {Default Queue} -> wl_surface#3038.commit() -[2619084.248] {Default Queue} wl_pointer#2537.motion(187310717, 21.39843750, 14.19921875) -[2619084.254] {Default Queue} wl_pointer#2569.motion(187310717, 21.39843750, 14.19921875) -[2619084.258] {Default Queue} wl_pointer#2601.motion(187310717, 21.39843750, 14.19921875) -[2619084.263] {Default Queue} wl_pointer#2633.motion(187310717, 21.39843750, 14.19921875) -[2619084.267] {Default Queue} wl_pointer#2665.motion(187310717, 21.39843750, 14.19921875) -[2619084.271] {Default Queue} wl_pointer#2697.motion(187310717, 21.39843750, 14.19921875) -[2619084.275] {Default Queue} wl_pointer#2729.motion(187310717, 21.39843750, 14.19921875) -[2619084.280] {Default Queue} wl_pointer#2761.motion(187310717, 21.39843750, 14.19921875) -[2619084.283] {Default Queue} wl_pointer#2793.motion(187310717, 21.39843750, 14.19921875) -[2619084.288] {Default Queue} wl_pointer#2825.motion(187310717, 21.39843750, 14.19921875) -[2619084.292] {Default Queue} wl_pointer#2857.motion(187310717, 21.39843750, 14.19921875) -[2619084.298] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) -[2619084.302] {Default Queue} -> wl_surface#2151.commit() -[2619085.370] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) -[2619085.378] {Default Queue} -> wl_surface#2151.commit() -[2619085.385] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) -[2619085.389] {Default Queue} -> wl_surface#2151.commit() -[2619085.400] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) -[2619085.404] {Default Queue} -> wl_surface#2119.commit() -[2619086.467] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) -[2619086.473] {Default Queue} -> wl_surface#2119.commit() -[2619086.487] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) -[2619086.491] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) -[2619086.496] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2619086.500] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2619086.507] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) -[2619086.512] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) -[2619086.516] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2619086.519] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2619086.525] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) -[2619086.529] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) -[2619086.533] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2619086.537] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2619086.542] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) -[2619086.546] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) -[2619086.550] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2619086.554] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2619086.560] {Default Queue} -> wl_region#2143.subtract(0, 0, 135, 216) -[2619086.564] {Default Queue} -> wl_region#2143.add(-20, -49, 135, 216) -[2619086.568] {Default Queue} -> wl_surface#2119.set_opaque_region(wl_region#2144) -[2619086.575] {Default Queue} -> wl_surface#2119.set_input_region(wl_region#2143) -[2619086.584] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) -[2619086.589] {Default Queue} -> wl_surface#2119.commit() -[2619086.593] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) -[2619086.597] {Default Queue} -> wl_surface#2119.commit() -[2619086.604] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) -[2619086.607] {Default Queue} -> wl_surface#2119.commit() -[2619086.613] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) -[2619086.617] {Default Queue} -> wl_surface#2407.commit() -[2619087.678] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) -[2619087.687] {Default Queue} -> wl_surface#2407.commit() -[2619087.698] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 403) -[2619087.702] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 403) -[2619087.706] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2619087.710] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2619087.831] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 403) -[2619087.836] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 403) -[2619087.840] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2619087.844] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2619087.852] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2619087.856] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2619087.948] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 403) -[2619087.953] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 403) -[2619087.957] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2619087.961] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2619087.966] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2619087.970] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2619087.975] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) -[2619087.979] {Default Queue} -> wl_surface#2407.commit() -[2619087.983] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) -[2619087.987] {Default Queue} -> wl_surface#2407.commit() -[2619087.999] {Display Queue} wl_display#1.delete_id(2078) -[2619088.004] {Display Queue} wl_display#1.delete_id(2077) -[2619088.008] {Display Queue} wl_display#1.delete_id(2076) -[2619088.012] {Display Queue} wl_display#1.delete_id(2075) -[2619088.015] {Display Queue} wl_display#1.delete_id(3324) -[2619088.019] {Display Queue} wl_display#1.delete_id(2269) -[2619088.023] {Display Queue} wl_display#1.delete_id(2270) -[2619088.026] {Display Queue} wl_display#1.delete_id(2267) -[2619088.030] {Display Queue} wl_display#1.delete_id(2268) -[2619088.034] {Default Queue} wl_pointer#2889.motion(187310717, 21.39843750, 14.19921875) -[2619088.038] {Default Queue} wl_pointer#2921.motion(187310717, 21.39843750, 14.19921875) -[2619088.042] {Default Queue} wl_pointer#2953.motion(187310717, 21.39843750, 14.19921875) -[2619088.046] {Default Queue} wl_pointer#2985.motion(187310717, 21.39843750, 14.19921875) -[2619088.050] {Default Queue} wl_pointer#3017.motion(187310717, 21.39843750, 14.19921875) -[2619088.054] {Default Queue} wl_pointer#3049.motion(187310717, 21.39843750, 14.19921875) -[2619088.058] {Default Queue} wl_pointer#3081.motion(187310717, 21.39843750, 14.19921875) -[2619088.062] {Default Queue} wl_pointer#3113.motion(187310717, 21.39843750, 14.19921875) -[2619088.066] {Default Queue} wl_pointer#3145.motion(187310717, 21.39843750, 14.19921875) -[2619088.070] {Default Queue} wl_pointer#3177.motion(187310717, 21.39843750, 14.19921875) -[2619088.074] {Default Queue} wl_pointer#3209.motion(187310717, 21.39843750, 14.19921875) -[2619088.078] {Default Queue} wl_pointer#3241.motion(187310717, 21.39843750, 14.19921875) -[2619088.082] {Default Queue} wl_pointer#3273.motion(187310717, 21.39843750, 14.19921875) -[2619088.086] {Default Queue} wl_pointer#3305.motion(187310717, 21.39843750, 14.19921875) -[2619088.090] {Default Queue} wl_pointer#3337.motion(187310717, 21.39843750, 14.19921875) -[2619088.098] {Default Queue} wl_pointer#3369.motion(187310717, 21.39843750, 14.19921875) -[2619088.105] {Default Queue} wl_pointer#3401.motion(187310717, 21.39843750, 14.19921875) -[2619088.109] {Default Queue} wl_pointer#3433.motion(187310717, 21.39843750, 14.19921875) -[2619088.113] {Default Queue} wl_pointer#3465.motion(187310717, 21.39843750, 14.19921875) -[2619088.117] {Default Queue} wl_pointer#3497.motion(187310717, 21.39843750, 14.19921875) -[2619088.121] {Default Queue} wl_pointer#3529.motion(187310717, 21.39843750, 14.19921875) -[2619088.125] {Default Queue} wl_pointer#3561.motion(187310717, 21.39843750, 14.19921875) -[2619088.129] {Default Queue} wl_pointer#3593.motion(187310717, 21.39843750, 14.19921875) -[2619088.133] {Default Queue} wl_pointer#3625.motion(187310717, 21.39843750, 14.19921875) -[2619088.137] {Default Queue} wl_pointer#3657.motion(187310717, 21.39843750, 14.19921875) -[2619088.141] {Default Queue} wl_pointer#3695.motion(187310717, 21.39843750, 14.19921875) -[2619088.145] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) -[2619088.149] {Default Queue} -> wl_surface#2407.commit() -[2619089.210] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) -[2619089.216] {Default Queue} -> wl_surface#2407.commit() -[2619089.221] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) -[2619089.225] {Default Queue} -> wl_surface#2407.commit() -[2619089.229] {Default Queue} -> wl_region#2495.subtract(0, 0, 2, 2) -[2619089.234] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 399) -[2619089.238] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 388) -[2619089.242] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619089.245] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619089.249] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) -[2619089.265] {Default Queue} -> wl_buffer#2493.destroy() -[2619089.270] {Default Queue} -> wl_buffer#2494.destroy() -[2619089.274] {Default Queue} -> wl_shm_pool#2491.destroy() -[2619089.278] {Default Queue} -> wl_shm_pool#2492.destroy() -[2619089.321] {Default Queue} -> wl_shm#2479.create_pool(new id wl_shm_pool#2268, fd 575, 16) -[2619089.327] {Default Queue} -> wl_shm#2479.create_pool(new id wl_shm_pool#2267, fd 578, 16) -[2619089.331] {Default Queue} -> wl_shm_pool#2268.create_buffer(new id wl_buffer#2270, 0, 2, 2, 8, 0) -[2619089.336] {Default Queue} -> wl_shm_pool#2267.create_buffer(new id wl_buffer#2269, 0, 2, 2, 8, 0) -[2619089.342] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) -[2619089.346] {Default Queue} -> wl_surface#2471.commit() -[2619089.351] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) -[2619089.355] {Default Queue} -> wl_surface#2471.commit() -[2619089.373] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619089.378] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619089.382] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619089.386] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619089.393] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619089.397] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619089.401] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619089.405] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619089.411] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619089.415] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619089.418] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619089.422] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619089.431] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619089.435] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619089.439] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619089.443] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619089.471] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619089.478] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619089.481] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619089.485] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619089.491] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619089.495] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619089.499] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619089.503] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619089.507] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619089.511] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619089.515] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619089.519] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619089.524] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619089.528] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619089.531] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619089.535] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619089.539] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619089.543] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619089.547] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619089.551] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619089.556] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619089.560] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619089.563] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619089.567] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619089.573] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619089.577] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619089.581] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619089.584] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619089.589] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619089.593] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619089.597] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619089.601] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619089.606] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619089.610] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619089.613] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619089.617] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619089.622] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619089.626] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619089.630] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619089.633] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619089.639] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619089.643] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619089.647] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619089.650] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619089.656] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619089.660] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619089.663] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619089.667] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619089.671] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619089.675] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619089.679] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619089.683] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619089.690] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619089.695] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619089.699] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619089.703] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619089.707] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) -[2619089.711] {Default Queue} -> wl_surface#2471.commit() -[2619089.717] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) -[2619089.721] {Default Queue} -> wl_surface#2471.commit() -[2619090.784] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) -[2619090.790] {Default Queue} -> wl_surface#2471.commit() -[2619090.802] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619090.806] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619090.810] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619090.814] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619090.820] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619090.824] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619090.828] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619090.831] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619090.837] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619090.841] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619090.844] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619090.848] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619090.853] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619090.857] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619090.864] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619090.868] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619090.873] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619090.877] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619090.882] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619090.886] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619090.894] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619090.898] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619090.903] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619090.908] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619090.913] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619090.917] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619090.921] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619090.925] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619090.930] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619090.933] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619090.937] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619090.941] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619090.945] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619090.949] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619090.953] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619090.957] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619090.962] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619090.966] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619090.970] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619090.973] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619090.979] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619090.983] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619090.987] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619090.994] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619091.001] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619091.005] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619091.009] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619091.012] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619091.017] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619091.021] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619091.025] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619091.028] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619091.033] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619091.037] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619091.041] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619091.044] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619091.050] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619091.054] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619091.058] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619091.061] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619091.066] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619091.070] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619091.073] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619091.077] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619091.081] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619091.085] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619091.089] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619091.093] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619091.097] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619091.101] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619091.105] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619091.108] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619091.112] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) -[2619091.116] {Default Queue} -> wl_surface#2471.commit() -[2619091.120] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) -[2619091.124] {Default Queue} -> wl_surface#2471.commit() -[2619091.129] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) -[2619091.133] {Default Queue} -> wl_surface#2471.commit() -[2619091.139] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) -[2619091.143] {Default Queue} -> wl_surface#2439.commit() -[2619091.869] {Display Queue} wl_display#1.delete_id(3720) -[2619091.875] {Display Queue} wl_display#1.delete_id(3721) -[2619091.879] {Display Queue} wl_display#1.delete_id(3718) -[2619091.883] {Display Queue} wl_display#1.delete_id(3719) -[2619091.887] {Display Queue} wl_display#1.delete_id(3713) -[2619091.890] {Display Queue} wl_display#1.delete_id(3712) -[2619091.894] {Display Queue} wl_display#1.delete_id(3711) -[2619091.898] {Display Queue} wl_display#1.delete_id(3710) -[2619091.901] {Display Queue} wl_display#1.delete_id(1756) -[2619091.905] {Display Queue} wl_display#1.delete_id(3717) -[2619091.909] {Display Queue} wl_display#1.delete_id(3716) -[2619091.913] {Display Queue} wl_display#1.delete_id(3715) -[2619091.916] {Display Queue} wl_display#1.delete_id(3714) -[2619091.920] {Display Queue} wl_display#1.delete_id(1916) -[2619091.924] {Display Queue} wl_display#1.delete_id(3708) -[2619091.927] {Display Queue} wl_display#1.delete_id(3709) -[2619091.931] {Display Queue} wl_display#1.delete_id(3706) -[2619091.935] {Display Queue} wl_display#1.delete_id(3707) -[2619091.939] {Display Queue} wl_display#1.delete_id(1598) -[2619091.942] {Default Queue} wl_pointer#24.motion(187310722, 21.00000000, 14.19921875) -[2619091.951] {Default Queue} wl_pointer#81.motion(187310722, 21.00000000, 14.19921875) -[2619091.958] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619091.963] {Default Queue} wl_pointer#105.motion(187310722, 21.00000000, 14.19921875) -[2619091.967] {Default Queue} wl_pointer#137.motion(187310722, 21.00000000, 14.19921875) -[2619091.971] {Default Queue} wl_pointer#169.motion(187310722, 21.00000000, 14.19921875) -[2619091.975] {Default Queue} wl_pointer#201.motion(187310722, 21.00000000, 14.19921875) -[2619091.979] {Default Queue} wl_pointer#233.motion(187310722, 21.00000000, 14.19921875) -[2619091.983] {Default Queue} wl_pointer#265.motion(187310722, 21.00000000, 14.19921875) -[2619091.988] {Default Queue} wl_pointer#297.motion(187310722, 21.00000000, 14.19921875) -[2619091.992] {Default Queue} wl_pointer#329.motion(187310722, 21.00000000, 14.19921875) -[2619091.996] {Default Queue} wl_pointer#361.motion(187310722, 21.00000000, 14.19921875) -[2619092.000] {Default Queue} wl_pointer#393.motion(187310722, 21.00000000, 14.19921875) -[2619092.004] {Default Queue} wl_pointer#425.motion(187310722, 21.00000000, 14.19921875) -[2619092.008] {Default Queue} wl_pointer#457.motion(187310722, 21.00000000, 14.19921875) -[2619092.013] {Default Queue} wl_pointer#489.motion(187310722, 21.00000000, 14.19921875) -[2619092.017] {Default Queue} wl_pointer#521.motion(187310722, 21.00000000, 14.19921875) -[2619092.021] {Default Queue} wl_pointer#553.motion(187310722, 21.00000000, 14.19921875) -[2619092.026] {Default Queue} wl_pointer#585.motion(187310722, 21.00000000, 14.19921875) -[2619092.030] {Default Queue} wl_pointer#617.motion(187310722, 21.00000000, 14.19921875) -[2619092.034] {Default Queue} wl_pointer#649.motion(187310722, 21.00000000, 14.19921875) -[2619092.038] {Default Queue} wl_pointer#681.motion(187310722, 21.00000000, 14.19921875) -[2619092.043] {Default Queue} wl_pointer#713.motion(187310722, 21.00000000, 14.19921875) -[2619092.048] {Default Queue} wl_pointer#745.motion(187310722, 21.00000000, 14.19921875) -[2619092.053] {Default Queue} wl_pointer#777.motion(187310722, 21.00000000, 14.19921875) -[2619092.058] {Default Queue} wl_pointer#809.motion(187310722, 21.00000000, 14.19921875) -[2619092.064] {Default Queue} wl_pointer#841.motion(187310722, 21.00000000, 14.19921875) -[2619092.069] {Default Queue} wl_pointer#873.motion(187310722, 21.00000000, 14.19921875) -[2619092.074] {Default Queue} wl_pointer#905.motion(187310722, 21.00000000, 14.19921875) -[2619092.079] {Default Queue} wl_pointer#937.motion(187310722, 21.00000000, 14.19921875) -[2619092.084] {Default Queue} wl_pointer#969.motion(187310722, 21.00000000, 14.19921875) -[2619092.091] {Default Queue} wl_pointer#1001.motion(187310722, 21.00000000, 14.19921875) -[2619092.096] {Default Queue} wl_pointer#1033.motion(187310722, 21.00000000, 14.19921875) -[2619092.102] {Default Queue} wl_pointer#1065.motion(187310722, 21.00000000, 14.19921875) -[2619092.107] {Default Queue} wl_pointer#1097.motion(187310722, 21.00000000, 14.19921875) -[2619092.113] {Default Queue} wl_pointer#1129.motion(187310722, 21.00000000, 14.19921875) -[2619092.118] {Default Queue} wl_pointer#1161.motion(187310722, 21.00000000, 14.19921875) -[2619092.123] {Default Queue} wl_pointer#1193.motion(187310722, 21.00000000, 14.19921875) -[2619092.128] {Default Queue} wl_pointer#1225.motion(187310722, 21.00000000, 14.19921875) -[2619092.132] {Default Queue} wl_pointer#1257.motion(187310722, 21.00000000, 14.19921875) -[2619092.137] {Default Queue} wl_pointer#1289.motion(187310722, 21.00000000, 14.19921875) -[2619092.142] {Default Queue} wl_pointer#1321.motion(187310722, 21.00000000, 14.19921875) -[2619092.147] {Default Queue} wl_pointer#1353.motion(187310722, 21.00000000, 14.19921875) -[2619092.152] {Default Queue} wl_pointer#1385.motion(187310722, 21.00000000, 14.19921875) -[2619092.158] {Default Queue} wl_pointer#1417.motion(187310722, 21.00000000, 14.19921875) -[2619092.163] {Default Queue} wl_pointer#1449.motion(187310722, 21.00000000, 14.19921875) -[2619092.168] {Default Queue} wl_pointer#1481.motion(187310722, 21.00000000, 14.19921875) -[2619092.178] {Default Queue} wl_pointer#1513.motion(187310722, 21.00000000, 14.19921875) -[2619092.186] {Default Queue} wl_pointer#1545.motion(187310722, 21.00000000, 14.19921875) -[2619092.191] {Default Queue} wl_pointer#1577.motion(187310722, 21.00000000, 14.19921875) -[2619092.196] {Default Queue} wl_pointer#1609.motion(187310722, 21.00000000, 14.19921875) -[2619092.200] {Default Queue} wl_pointer#1641.motion(187310722, 21.00000000, 14.19921875) -[2619092.205] {Default Queue} wl_pointer#1673.motion(187310722, 21.00000000, 14.19921875) -[2619092.228] {Default Queue} wl_pointer#1705.motion(187310722, 21.00000000, 14.19921875) -[2619092.232] {Default Queue} wl_pointer#1737.motion(187310722, 21.00000000, 14.19921875) -[2619092.236] {Default Queue} wl_pointer#1762.motion(187310722, 21.00000000, 14.19921875) -[2619092.251] {Default Queue} wl_pointer#1801.motion(187310722, 21.00000000, 14.19921875) -[2619092.257] {Default Queue} wl_pointer#1833.motion(187310722, 21.00000000, 14.19921875) -[2619092.263] {Default Queue} wl_pointer#1865.motion(187310722, 21.00000000, 14.19921875) -[2619092.268] {Default Queue} wl_pointer#1897.motion(187310722, 21.00000000, 14.19921875) -[2619092.274] {Default Queue} wl_pointer#1929.motion(187310722, 21.00000000, 14.19921875) -[2619092.279] {Default Queue} wl_pointer#1961.motion(187310722, 21.00000000, 14.19921875) -[2619092.285] {Default Queue} wl_pointer#1993.motion(187310722, 21.00000000, 14.19921875) -[2619092.291] {Default Queue} wl_pointer#2025.motion(187310722, 21.00000000, 14.19921875) -[2619092.296] {Default Queue} wl_pointer#2057.motion(187310722, 21.00000000, 14.19921875) -[2619092.301] {Default Queue} wl_pointer#2089.motion(187310722, 21.00000000, 14.19921875) -[2619092.306] {Default Queue} wl_pointer#2121.motion(187310722, 21.00000000, 14.19921875) -[2619092.310] {Default Queue} wl_pointer#2153.motion(187310722, 21.00000000, 14.19921875) -[2619092.314] {Default Queue} wl_pointer#2185.motion(187310722, 21.00000000, 14.19921875) -[2619092.318] {Default Queue} wl_pointer#2217.motion(187310722, 21.00000000, 14.19921875) -[2619092.322] {Default Queue} wl_pointer#2249.motion(187310722, 21.00000000, 14.19921875) -[2619092.326] {Default Queue} wl_pointer#2281.motion(187310722, 21.00000000, 14.19921875) -[2619092.330] {Default Queue} wl_pointer#2313.motion(187310722, 21.00000000, 14.19921875) -[2619092.335] {Default Queue} wl_pointer#2345.motion(187310722, 21.00000000, 14.19921875) -[2619092.339] {Default Queue} wl_pointer#2377.motion(187310722, 21.00000000, 14.19921875) -[2619092.343] {Default Queue} wl_pointer#2409.motion(187310722, 21.00000000, 14.19921875) -[2619092.347] {Default Queue} wl_pointer#2441.motion(187310722, 21.00000000, 14.19921875) -[2619092.351] {Default Queue} wl_pointer#2473.motion(187310722, 21.00000000, 14.19921875) -[2619092.355] {Default Queue} wl_pointer#2498.motion(187310722, 21.00000000, 14.19921875) -[2619092.367] {Default Queue} -> wl_buffer#3036.destroy() -[2619092.372] {Default Queue} -> wl_buffer#3037.destroy() -[2619092.376] {Default Queue} -> wl_shm_pool#3701.destroy() -[2619092.380] {Default Queue} -> wl_shm_pool#3700.destroy() -[2619092.384] {Default Queue} -> wl_surface#3038.destroy() -[2619092.423] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#1598, fd 575, 640) -[2619092.429] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3707, fd 578, 640) -[2619092.433] {Default Queue} -> wl_shm_pool#1598.create_buffer(new id wl_buffer#3706, 0, 10, 16, 40, 0) -[2619092.438] {Default Queue} -> wl_shm_pool#3707.create_buffer(new id wl_buffer#3709, 0, 10, 16, 40, 0) -[2619092.445] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3708) -[2619092.449] {Default Queue} -> wl_surface#3708.attach(wl_buffer#3706, 0, 0) -[2619092.453] {Default Queue} -> wl_surface#3708.commit() -[2619092.458] {Default Queue} -> wl_surface#3708.attach(wl_buffer#3706, 0, 0) -[2619092.462] {Default Queue} -> wl_surface#3708.commit() -[2619092.466] {Default Queue} wl_pointer#2537.motion(187310722, 21.00000000, 14.19921875) -[2619092.470] {Default Queue} wl_pointer#2569.motion(187310722, 21.00000000, 14.19921875) -[2619092.478] {Default Queue} wl_pointer#2601.motion(187310722, 21.00000000, 14.19921875) -[2619092.485] {Default Queue} wl_pointer#2633.motion(187310722, 21.00000000, 14.19921875) -[2619092.489] {Default Queue} wl_pointer#2665.motion(187310722, 21.00000000, 14.19921875) -[2619092.493] {Default Queue} wl_pointer#2697.motion(187310722, 21.00000000, 14.19921875) -[2619092.497] {Default Queue} wl_pointer#2729.motion(187310722, 21.00000000, 14.19921875) -[2619092.501] {Default Queue} wl_pointer#2761.motion(187310722, 21.00000000, 14.19921875) -[2619092.505] {Default Queue} wl_pointer#2793.motion(187310722, 21.00000000, 14.19921875) -[2619092.510] {Default Queue} wl_pointer#2825.motion(187310722, 21.00000000, 14.19921875) -[2619092.514] {Default Queue} wl_pointer#2857.motion(187310722, 21.00000000, 14.19921875) -[2619092.518] {Default Queue} wl_pointer#2889.motion(187310722, 21.00000000, 14.19921875) -[2619092.522] {Default Queue} wl_pointer#2921.motion(187310722, 21.00000000, 14.19921875) -[2619092.526] {Default Queue} wl_pointer#2953.motion(187310722, 21.00000000, 14.19921875) -[2619092.530] {Default Queue} wl_pointer#2985.motion(187310722, 21.00000000, 14.19921875) -[2619092.534] {Default Queue} wl_pointer#3017.motion(187310722, 21.00000000, 14.19921875) -[2619092.538] {Default Queue} wl_pointer#3049.motion(187310722, 21.00000000, 14.19921875) -[2619092.542] {Default Queue} wl_pointer#3081.motion(187310722, 21.00000000, 14.19921875) -[2619092.547] {Default Queue} wl_pointer#3113.motion(187310722, 21.00000000, 14.19921875) -[2619092.551] {Default Queue} wl_pointer#3145.motion(187310722, 21.00000000, 14.19921875) -[2619092.555] {Default Queue} wl_pointer#3177.motion(187310722, 21.00000000, 14.19921875) -[2619092.559] {Default Queue} wl_pointer#3209.motion(187310722, 21.00000000, 14.19921875) -[2619092.563] {Default Queue} wl_pointer#3241.motion(187310722, 21.00000000, 14.19921875) -[2619092.567] {Default Queue} wl_pointer#3273.motion(187310722, 21.00000000, 14.19921875) -[2619092.571] {Default Queue} wl_pointer#3305.motion(187310722, 21.00000000, 14.19921875) -[2619092.575] {Default Queue} wl_pointer#3337.motion(187310722, 21.00000000, 14.19921875) -[2619092.579] {Default Queue} wl_pointer#3369.motion(187310722, 21.00000000, 14.19921875) -[2619092.583] {Default Queue} wl_pointer#3401.motion(187310722, 21.00000000, 14.19921875) -[2619092.587] {Default Queue} wl_pointer#3433.motion(187310722, 21.00000000, 14.19921875) -[2619092.591] {Default Queue} wl_pointer#3465.motion(187310722, 21.00000000, 14.19921875) -[2619092.595] {Default Queue} wl_pointer#3497.motion(187310722, 21.00000000, 14.19921875) -[2619092.599] {Default Queue} wl_pointer#3529.motion(187310722, 21.00000000, 14.19921875) -[2619092.603] {Default Queue} wl_pointer#3561.motion(187310722, 21.00000000, 14.19921875) -[2619092.607] {Default Queue} wl_pointer#3593.motion(187310722, 21.00000000, 14.19921875) -[2619092.611] {Default Queue} wl_pointer#3625.motion(187310722, 21.00000000, 14.19921875) -[2619092.615] {Default Queue} wl_pointer#3657.motion(187310722, 21.00000000, 14.19921875) -[2619092.619] {Default Queue} wl_pointer#3695.motion(187310722, 21.00000000, 14.19921875) -[2619092.628] {Default Queue} -> wl_region#2463.subtract(0, 0, 140, 408) -[2619092.632] {Default Queue} -> wl_region#2463.add(-138, -386, 140, 388) -[2619092.636] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) -[2619092.640] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) -[2619092.646] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) -[2619092.650] {Default Queue} -> wl_surface#2439.commit() -[2619092.653] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) -[2619092.657] {Default Queue} -> wl_surface#2439.commit() -[2619092.663] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) -[2619092.667] {Default Queue} -> wl_surface#2439.commit() -[2619092.671] {Default Queue} -> wl_region#2399.subtract(0, 0, 109, 161) -[2619092.678] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 403) -[2619092.682] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 403) -[2619092.689] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2619092.694] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2619092.806] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 403) -[2619092.810] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 403) -[2619092.814] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2619092.818] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2619092.825] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2619092.829] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2619092.916] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 403) -[2619092.921] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 403) -[2619092.925] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2619092.929] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2619092.934] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2619092.938] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2619092.944] {Default Queue} -> wl_region#2463.subtract(0, 0, 140, 408) -[2619092.948] {Default Queue} -> wl_region#2463.add(-138, -386, 140, 388) -[2619092.952] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) -[2619092.956] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) -[2619092.961] {Default Queue} -> wl_surface#2375.damage(0, 0, 109, 161) -[2619092.965] {Default Queue} -> wl_region#2399.subtract(0, 0, 247, 547) -[2619092.968] {Default Queue} -> wl_region#2399.add(-135, -383, 244, 544) -[2619092.972] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) -[2619092.976] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) -[2619092.980] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2619092.984] {Default Queue} -> wl_surface#2471.damage(0, 0, 2, 2) -[2619092.988] {Default Queue} -> wl_surface#2439.damage(0, 0, 2, 2) -[2619092.991] {Default Queue} -> wl_surface#2375.damage(0, 0, 109, 161) -[2619093.004] {Default Queue} -> wl_buffer#3724.destroy() -[2619093.009] {Default Queue} -> wl_buffer#3725.destroy() -[2619093.013] {Default Queue} -> wl_shm_pool#3722.destroy() -[2619093.017] {Default Queue} -> wl_shm_pool#3723.destroy() -[2619093.111] {Default Queue} -> wl_shm#2383.create_pool(new id wl_shm_pool#1916, fd 581, 70196) -[2619093.117] {Default Queue} -> wl_shm#2383.create_pool(new id wl_shm_pool#3714, fd 582, 70196) -[2619093.122] {Default Queue} -> wl_shm_pool#1916.create_buffer(new id wl_buffer#3715, 0, 109, 161, 436, 0) -[2619093.126] {Default Queue} -> wl_shm_pool#3714.create_buffer(new id wl_buffer#3716, 0, 109, 161, 436, 0) -[2619093.148] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) -[2619093.153] {Default Queue} -> wl_surface#2375.commit() -[2619093.174] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) -[2619093.179] {Default Queue} -> wl_surface#2375.commit() -[2619093.187] {Default Queue} -> wl_region#2399.subtract(0, 0, 247, 547) -[2619093.191] {Default Queue} -> wl_region#2399.add(-135, -383, 244, 544) -[2619093.195] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) -[2619093.199] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) -[2619093.206] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) -[2619093.210] {Default Queue} -> wl_surface#2375.commit() -[2619093.217] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) -[2619093.221] {Default Queue} -> wl_surface#2375.commit() -[2619094.288] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) -[2619094.295] {Default Queue} -> wl_surface#2375.commit() -[2619094.304] {Default Queue} -> wl_region#2399.subtract(0, 0, 247, 547) -[2619094.308] {Default Queue} -> wl_region#2399.add(-135, -383, 244, 544) -[2619094.312] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) -[2619094.316] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) -[2619094.327] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) -[2619094.333] {Default Queue} -> wl_surface#2375.commit() -[2619094.338] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) -[2619094.342] {Default Queue} -> wl_surface#2375.commit() -[2619094.349] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) -[2619094.353] {Default Queue} -> wl_surface#2375.commit() -[2619094.366] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) -[2619094.371] {Default Queue} -> wl_surface#2343.commit() -[2619095.434] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) -[2619095.440] {Default Queue} -> wl_surface#2343.commit() -[2619095.456] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) -[2619095.461] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) -[2619095.465] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2619095.469] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2619095.477] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) -[2619095.481] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) -[2619095.484] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2619095.488] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2619095.494] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) -[2619095.498] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) -[2619095.501] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2619095.505] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2619095.510] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) -[2619095.514] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) -[2619095.518] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2619095.522] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2619095.528] {Default Queue} -> wl_region#2367.subtract(0, 0, 250, 550) -[2619095.532] {Default Queue} -> wl_region#2367.add(-20, -383, 135, 550) -[2619095.536] {Default Queue} -> wl_surface#2343.set_opaque_region(wl_region#2368) -[2619095.540] {Default Queue} -> wl_surface#2343.set_input_region(wl_region#2367) -[2619095.546] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) -[2619095.550] {Default Queue} -> wl_surface#2343.commit() -[2619095.555] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) -[2619095.561] {Default Queue} -> wl_surface#2343.commit() -[2619095.568] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) -[2619095.572] {Default Queue} -> wl_surface#2343.commit() -[2619095.579] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) -[2619095.582] {Default Queue} -> wl_surface#2567.commit() -[2619096.644] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) -[2619096.649] {Default Queue} -> wl_surface#2567.commit() -[2619096.657] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 403) -[2619096.661] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 403) -[2619096.665] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2619096.669] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2619096.792] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 403) -[2619096.797] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 403) -[2619096.800] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2619096.804] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2619096.811] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2619096.815] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2619096.923] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 403) -[2619096.936] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 403) -[2619096.943] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2619096.948] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2619096.960] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2619096.970] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2619096.981] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) -[2619096.987] {Default Queue} -> wl_surface#2567.commit() -[2619096.992] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) -[2619096.997] {Default Queue} -> wl_surface#2567.commit() -[2619097.006] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) -[2619097.011] {Default Queue} -> wl_surface#2567.commit() -[2619097.016] {Default Queue} -> wl_region#2655.subtract(0, 0, 2, 2) -[2619097.022] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 399) -[2619097.027] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 388) -[2619097.032] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2619097.038] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2619097.042] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) -[2619097.059] {Default Queue} -> wl_buffer#2653.destroy() -[2619097.064] {Default Queue} -> wl_buffer#2654.destroy() -[2619097.069] {Default Queue} -> wl_shm_pool#2651.destroy() -[2619097.074] {Default Queue} -> wl_shm_pool#2652.destroy() -[2619097.121] {Default Queue} -> wl_shm#2639.create_pool(new id wl_shm_pool#3717, fd 575, 16) -[2619097.128] {Default Queue} -> wl_shm#2639.create_pool(new id wl_shm_pool#1756, fd 578, 16) -[2619097.134] {Default Queue} -> wl_shm_pool#3717.create_buffer(new id wl_buffer#3710, 0, 2, 2, 8, 0) -[2619097.140] {Default Queue} -> wl_shm_pool#1756.create_buffer(new id wl_buffer#3711, 0, 2, 2, 8, 0) -[2619097.148] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) -[2619097.153] {Default Queue} -> wl_surface#2631.commit() -[2619097.160] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) -[2619097.165] {Default Queue} -> wl_surface#2631.commit() -[2619097.177] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) -[2619097.183] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) -[2619097.189] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2619097.194] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2619097.203] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) -[2619097.208] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) -[2619097.213] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2619097.218] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2619097.227] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) -[2619097.232] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) -[2619097.237] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2619097.242] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2619097.249] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) -[2619097.254] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) -[2619097.259] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2619097.264] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2619097.271] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) -[2619097.276] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) -[2619097.281] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2619097.286] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2619097.295] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) -[2619097.300] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) -[2619097.305] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2619097.310] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2619097.316] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) -[2619097.321] {Default Queue} -> wl_surface#2631.commit() -[2619097.328] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) -[2619097.333] {Default Queue} -> wl_surface#2631.commit() -[2619097.592] {Display Queue} wl_display#1.delete_id(2493) -[2619097.601] {Display Queue} wl_display#1.delete_id(2494) -[2619097.610] {Display Queue} wl_display#1.delete_id(2491) -[2619097.614] {Display Queue} wl_display#1.delete_id(2492) -[2619097.619] {Default Queue} wl_pointer#24.motion(187310726, 20.60156250, 14.60156250) -[2619097.625] {Default Queue} wl_pointer#81.motion(187310726, 20.60156250, 14.60156250) -[2619097.633] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619097.638] {Default Queue} wl_pointer#105.motion(187310726, 20.60156250, 14.60156250) -[2619097.644] {Default Queue} wl_pointer#137.motion(187310726, 20.60156250, 14.60156250) -[2619097.649] {Default Queue} wl_pointer#169.motion(187310726, 20.60156250, 14.60156250) -[2619097.654] {Default Queue} wl_pointer#201.motion(187310726, 20.60156250, 14.60156250) -[2619097.659] {Default Queue} wl_pointer#233.motion(187310726, 20.60156250, 14.60156250) -[2619097.665] {Default Queue} wl_pointer#265.motion(187310726, 20.60156250, 14.60156250) -[2619097.670] {Default Queue} wl_pointer#297.motion(187310726, 20.60156250, 14.60156250) -[2619097.675] {Default Queue} wl_pointer#329.motion(187310726, 20.60156250, 14.60156250) -[2619097.680] {Default Queue} wl_pointer#361.motion(187310726, 20.60156250, 14.60156250) -[2619097.686] {Default Queue} wl_pointer#393.motion(187310726, 20.60156250, 14.60156250) -[2619097.691] {Default Queue} wl_pointer#425.motion(187310726, 20.60156250, 14.60156250) -[2619097.696] {Default Queue} wl_pointer#457.motion(187310726, 20.60156250, 14.60156250) -[2619097.702] {Default Queue} wl_pointer#489.motion(187310726, 20.60156250, 14.60156250) -[2619097.707] {Default Queue} wl_pointer#521.motion(187310726, 20.60156250, 14.60156250) -[2619097.712] {Default Queue} wl_pointer#553.motion(187310726, 20.60156250, 14.60156250) -[2619097.717] {Default Queue} wl_pointer#585.motion(187310726, 20.60156250, 14.60156250) -[2619097.723] {Default Queue} wl_pointer#617.motion(187310726, 20.60156250, 14.60156250) -[2619097.728] {Default Queue} wl_pointer#649.motion(187310726, 20.60156250, 14.60156250) -[2619097.734] {Default Queue} wl_pointer#681.motion(187310726, 20.60156250, 14.60156250) -[2619097.739] {Default Queue} wl_pointer#713.motion(187310726, 20.60156250, 14.60156250) -[2619097.744] {Default Queue} wl_pointer#745.motion(187310726, 20.60156250, 14.60156250) -[2619097.750] {Default Queue} wl_pointer#777.motion(187310726, 20.60156250, 14.60156250) -[2619097.755] {Default Queue} wl_pointer#809.motion(187310726, 20.60156250, 14.60156250) -[2619097.761] {Default Queue} wl_pointer#841.motion(187310726, 20.60156250, 14.60156250) -[2619097.766] {Default Queue} wl_pointer#873.motion(187310726, 20.60156250, 14.60156250) -[2619097.771] {Default Queue} wl_pointer#905.motion(187310726, 20.60156250, 14.60156250) -[2619097.777] {Default Queue} wl_pointer#937.motion(187310726, 20.60156250, 14.60156250) -[2619097.782] {Default Queue} wl_pointer#969.motion(187310726, 20.60156250, 14.60156250) -[2619097.788] {Default Queue} wl_pointer#1001.motion(187310726, 20.60156250, 14.60156250) -[2619097.793] {Default Queue} wl_pointer#1033.motion(187310726, 20.60156250, 14.60156250) -[2619097.799] {Default Queue} wl_pointer#1065.motion(187310726, 20.60156250, 14.60156250) -[2619097.804] {Default Queue} wl_pointer#1097.motion(187310726, 20.60156250, 14.60156250) -[2619097.809] {Default Queue} wl_pointer#1129.motion(187310726, 20.60156250, 14.60156250) -[2619097.815] {Default Queue} wl_pointer#1161.motion(187310726, 20.60156250, 14.60156250) -[2619097.820] {Default Queue} wl_pointer#1193.motion(187310726, 20.60156250, 14.60156250) -[2619097.825] {Default Queue} wl_pointer#1225.motion(187310726, 20.60156250, 14.60156250) -[2619097.831] {Default Queue} wl_pointer#1257.motion(187310726, 20.60156250, 14.60156250) -[2619097.836] {Default Queue} wl_pointer#1289.motion(187310726, 20.60156250, 14.60156250) -[2619097.842] {Default Queue} wl_pointer#1321.motion(187310726, 20.60156250, 14.60156250) -[2619097.847] {Default Queue} wl_pointer#1353.motion(187310726, 20.60156250, 14.60156250) -[2619097.852] {Default Queue} wl_pointer#1385.motion(187310726, 20.60156250, 14.60156250) -[2619097.862] {Default Queue} wl_pointer#1417.motion(187310726, 20.60156250, 14.60156250) -[2619097.869] {Default Queue} wl_pointer#1449.motion(187310726, 20.60156250, 14.60156250) -[2619097.879] {Default Queue} wl_pointer#1481.motion(187310726, 20.60156250, 14.60156250) -[2619097.884] {Default Queue} wl_pointer#1513.motion(187310726, 20.60156250, 14.60156250) -[2619097.890] {Default Queue} wl_pointer#1545.motion(187310726, 20.60156250, 14.60156250) -[2619097.895] {Default Queue} wl_pointer#1577.motion(187310726, 20.60156250, 14.60156250) -[2619097.901] {Default Queue} wl_pointer#1609.motion(187310726, 20.60156250, 14.60156250) -[2619097.906] {Default Queue} wl_pointer#1641.motion(187310726, 20.60156250, 14.60156250) -[2619097.911] {Default Queue} wl_pointer#1673.motion(187310726, 20.60156250, 14.60156250) -[2619097.916] {Default Queue} wl_pointer#1705.motion(187310726, 20.60156250, 14.60156250) -[2619097.922] {Default Queue} wl_pointer#1737.motion(187310726, 20.60156250, 14.60156250) -[2619097.927] {Default Queue} wl_pointer#1762.motion(187310726, 20.60156250, 14.60156250) -[2619097.932] {Default Queue} wl_pointer#1801.motion(187310726, 20.60156250, 14.60156250) -[2619097.938] {Default Queue} wl_pointer#1833.motion(187310726, 20.60156250, 14.60156250) -[2619097.943] {Default Queue} wl_pointer#1865.motion(187310726, 20.60156250, 14.60156250) -[2619097.949] {Default Queue} wl_pointer#1897.motion(187310726, 20.60156250, 14.60156250) -[2619097.954] {Default Queue} wl_pointer#1929.motion(187310726, 20.60156250, 14.60156250) -[2619097.959] {Default Queue} wl_pointer#1961.motion(187310726, 20.60156250, 14.60156250) -[2619097.965] {Default Queue} wl_pointer#1993.motion(187310726, 20.60156250, 14.60156250) -[2619097.970] {Default Queue} wl_pointer#2025.motion(187310726, 20.60156250, 14.60156250) -[2619097.976] {Default Queue} wl_pointer#2057.motion(187310726, 20.60156250, 14.60156250) -[2619097.981] {Default Queue} wl_pointer#2089.motion(187310726, 20.60156250, 14.60156250) -[2619097.986] {Default Queue} wl_pointer#2121.motion(187310726, 20.60156250, 14.60156250) -[2619097.992] {Default Queue} wl_pointer#2153.motion(187310726, 20.60156250, 14.60156250) -[2619097.997] {Default Queue} wl_pointer#2185.motion(187310726, 20.60156250, 14.60156250) -[2619098.003] {Default Queue} wl_pointer#2217.motion(187310726, 20.60156250, 14.60156250) -[2619098.008] {Default Queue} wl_pointer#2249.motion(187310726, 20.60156250, 14.60156250) -[2619098.013] {Default Queue} wl_pointer#2281.motion(187310726, 20.60156250, 14.60156250) -[2619098.019] {Default Queue} wl_pointer#2313.motion(187310726, 20.60156250, 14.60156250) -[2619098.024] {Default Queue} wl_pointer#2345.motion(187310726, 20.60156250, 14.60156250) -[2619098.030] {Default Queue} wl_pointer#2377.motion(187310726, 20.60156250, 14.60156250) -[2619098.035] {Default Queue} wl_pointer#2409.motion(187310726, 20.60156250, 14.60156250) -[2619098.040] {Default Queue} wl_pointer#2441.motion(187310726, 20.60156250, 14.60156250) -[2619098.046] {Default Queue} wl_pointer#2473.motion(187310726, 20.60156250, 14.60156250) -[2619098.051] {Default Queue} wl_pointer#2498.motion(187310726, 20.60156250, 14.60156250) -[2619098.066] {Default Queue} -> wl_buffer#3706.destroy() -[2619098.071] {Default Queue} -> wl_buffer#3709.destroy() -[2619098.076] {Default Queue} -> wl_shm_pool#1598.destroy() -[2619098.081] {Default Queue} -> wl_shm_pool#3707.destroy() -[2619098.087] {Default Queue} -> wl_surface#3708.destroy() -[2619098.129] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2492, fd 575, 640) -[2619098.135] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2491, fd 578, 640) -[2619098.141] {Default Queue} -> wl_shm_pool#2492.create_buffer(new id wl_buffer#2494, 0, 10, 16, 40, 0) -[2619098.147] {Default Queue} -> wl_shm_pool#2491.create_buffer(new id wl_buffer#2493, 0, 10, 16, 40, 0) -[2619098.156] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3712) -[2619098.161] {Default Queue} -> wl_surface#3712.attach(wl_buffer#2494, 0, 0) -[2619098.166] {Default Queue} -> wl_surface#3712.commit() -[2619098.176] {Default Queue} -> wl_surface#3712.attach(wl_buffer#2494, 0, 0) -[2619098.184] {Default Queue} -> wl_surface#3712.commit() -[2619098.189] {Default Queue} wl_pointer#2537.motion(187310726, 20.60156250, 14.60156250) -[2619098.195] {Default Queue} wl_pointer#2569.motion(187310726, 20.60156250, 14.60156250) -[2619098.201] {Default Queue} wl_pointer#2601.motion(187310726, 20.60156250, 14.60156250) -[2619098.206] {Default Queue} wl_pointer#2633.motion(187310726, 20.60156250, 14.60156250) -[2619098.211] {Default Queue} wl_pointer#2665.motion(187310726, 20.60156250, 14.60156250) -[2619098.217] {Default Queue} wl_pointer#2697.motion(187310726, 20.60156250, 14.60156250) -[2619098.222] {Default Queue} wl_pointer#2729.motion(187310726, 20.60156250, 14.60156250) -[2619098.227] {Default Queue} wl_pointer#2761.motion(187310726, 20.60156250, 14.60156250) -[2619098.233] {Default Queue} wl_pointer#2793.motion(187310726, 20.60156250, 14.60156250) -[2619098.238] {Default Queue} wl_pointer#2825.motion(187310726, 20.60156250, 14.60156250) -[2619098.244] {Default Queue} wl_pointer#2857.motion(187310726, 20.60156250, 14.60156250) -[2619098.249] {Default Queue} wl_pointer#2889.motion(187310726, 20.60156250, 14.60156250) -[2619098.254] {Default Queue} wl_pointer#2921.motion(187310726, 20.60156250, 14.60156250) -[2619098.260] {Default Queue} wl_pointer#2953.motion(187310726, 20.60156250, 14.60156250) -[2619098.265] {Default Queue} wl_pointer#2985.motion(187310726, 20.60156250, 14.60156250) -[2619098.270] {Default Queue} wl_pointer#3017.motion(187310726, 20.60156250, 14.60156250) -[2619098.275] {Default Queue} wl_pointer#3049.motion(187310726, 20.60156250, 14.60156250) -[2619098.281] {Default Queue} wl_pointer#3081.motion(187310726, 20.60156250, 14.60156250) -[2619098.286] {Default Queue} wl_pointer#3113.motion(187310726, 20.60156250, 14.60156250) -[2619098.291] {Default Queue} wl_pointer#3145.motion(187310726, 20.60156250, 14.60156250) -[2619098.297] {Default Queue} wl_pointer#3177.motion(187310726, 20.60156250, 14.60156250) -[2619098.302] {Default Queue} wl_pointer#3209.motion(187310726, 20.60156250, 14.60156250) -[2619098.307] {Default Queue} wl_pointer#3241.motion(187310726, 20.60156250, 14.60156250) -[2619098.313] {Default Queue} wl_pointer#3273.motion(187310726, 20.60156250, 14.60156250) -[2619098.318] {Default Queue} wl_pointer#3305.motion(187310726, 20.60156250, 14.60156250) -[2619098.323] {Default Queue} wl_pointer#3337.motion(187310726, 20.60156250, 14.60156250) -[2619098.329] {Default Queue} wl_pointer#3369.motion(187310726, 20.60156250, 14.60156250) -[2619098.334] {Default Queue} wl_pointer#3401.motion(187310726, 20.60156250, 14.60156250) -[2619098.339] {Default Queue} wl_pointer#3433.motion(187310726, 20.60156250, 14.60156250) -[2619098.345] {Default Queue} wl_pointer#3465.motion(187310726, 20.60156250, 14.60156250) -[2619098.350] {Default Queue} wl_pointer#3497.motion(187310726, 20.60156250, 14.60156250) -[2619098.355] {Default Queue} wl_pointer#3529.motion(187310726, 20.60156250, 14.60156250) -[2619098.361] {Default Queue} wl_pointer#3561.motion(187310726, 20.60156250, 14.60156250) -[2619098.366] {Default Queue} wl_pointer#3593.motion(187310726, 20.60156250, 14.60156250) -[2619098.371] {Default Queue} wl_pointer#3625.motion(187310726, 20.60156250, 14.60156250) -[2619098.377] {Default Queue} wl_pointer#3657.motion(187310726, 20.60156250, 14.60156250) -[2619098.382] {Default Queue} wl_pointer#3695.motion(187310726, 20.60156250, 14.60156250) -[2619098.393] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) -[2619098.399] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) -[2619098.404] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2619098.409] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2619098.418] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) -[2619098.423] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) -[2619098.428] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2619098.433] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2619098.444] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) -[2619098.451] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) -[2619098.456] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2619098.461] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2619098.468] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) -[2619098.473] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) -[2619098.478] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2619098.483] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2619098.489] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) -[2619098.494] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) -[2619098.499] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2619098.504] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2619098.513] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) -[2619098.518] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) -[2619098.523] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2619098.528] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2619098.534] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) -[2619098.539] {Default Queue} -> wl_surface#2631.commit() -[2619098.544] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) -[2619098.549] {Default Queue} -> wl_surface#2631.commit() -[2619098.557] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) -[2619098.562] {Default Queue} -> wl_surface#2631.commit() -[2619098.569] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) -[2619098.574] {Default Queue} -> wl_surface#2599.commit() -[2619099.639] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) -[2619099.644] {Default Queue} -> wl_surface#2599.commit() -[2619099.654] {Default Queue} -> wl_region#2623.subtract(0, 0, 255, 408) -[2619099.659] {Default Queue} -> wl_region#2623.add(-253, -386, 255, 388) -[2619099.664] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) -[2619099.669] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) -[2619099.675] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) -[2619099.680] {Default Queue} -> wl_surface#2599.commit() -[2619099.685] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) -[2619099.690] {Default Queue} -> wl_surface#2599.commit() -[2619099.697] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) -[2619099.702] {Default Queue} -> wl_surface#2599.commit() -[2619099.708] {Default Queue} -> wl_region#2559.subtract(0, 0, 109, 161) -[2619099.715] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 403) -[2619099.721] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 403) -[2619099.726] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2619099.730] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2619099.867] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 403) -[2619099.872] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 403) -[2619099.898] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2619099.909] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2619099.920] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2619099.925] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2619100.046] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 403) -[2619100.052] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 403) -[2619100.056] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2619100.060] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2619100.066] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2619100.070] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2619100.076] {Default Queue} -> wl_region#2623.subtract(0, 0, 255, 408) -[2619100.080] {Default Queue} -> wl_region#2623.add(-253, -386, 255, 388) -[2619100.089] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) -[2619100.098] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) -[2619100.103] {Default Queue} -> wl_surface#2535.damage(0, 0, 109, 161) -[2619100.107] {Default Queue} -> wl_region#2559.subtract(0, 0, 362, 547) -[2619100.111] {Default Queue} -> wl_region#2559.add(-250, -383, 359, 544) -[2619100.115] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) -[2619100.119] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) -[2619100.122] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2619100.126] {Default Queue} -> wl_surface#2631.damage(0, 0, 2, 2) -[2619100.130] {Default Queue} -> wl_surface#2599.damage(0, 0, 2, 2) -[2619100.134] {Default Queue} -> wl_surface#2535.damage(0, 0, 109, 161) -[2619100.148] {Default Queue} -> wl_buffer#3728.destroy() -[2619100.153] {Default Queue} -> wl_buffer#3729.destroy() -[2619100.157] {Default Queue} -> wl_shm_pool#3726.destroy() -[2619100.160] {Default Queue} -> wl_shm_pool#3727.destroy() -[2619100.247] {Default Queue} -> wl_shm#2543.create_pool(new id wl_shm_pool#3713, fd 575, 70196) -[2619100.253] {Default Queue} -> wl_shm#2543.create_pool(new id wl_shm_pool#3719, fd 578, 70196) -[2619100.258] {Default Queue} -> wl_shm_pool#3713.create_buffer(new id wl_buffer#3718, 0, 109, 161, 436, 0) -[2619100.262] {Default Queue} -> wl_shm_pool#3719.create_buffer(new id wl_buffer#3721, 0, 109, 161, 436, 0) -[2619100.284] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3718, 0, 0) -[2619100.289] {Default Queue} -> wl_surface#2535.commit() -[2619100.309] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3718, 0, 0) -[2619100.313] {Default Queue} -> wl_surface#2535.commit() -[2619100.321] {Default Queue} -> wl_region#2559.subtract(0, 0, 362, 547) -[2619100.326] {Default Queue} -> wl_region#2559.add(-250, -383, 359, 544) -[2619100.330] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) -[2619100.333] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) -[2619100.340] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3718, 0, 0) -[2619100.344] {Default Queue} -> wl_surface#2535.commit() -[2619100.351] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3718, 0, 0) -[2619100.355] {Default Queue} -> wl_surface#2535.commit() -[2619101.421] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3718, 0, 0) -[2619101.428] {Default Queue} -> wl_surface#2535.commit() -[2619101.436] {Default Queue} -> wl_region#2559.subtract(0, 0, 362, 547) -[2619101.441] {Default Queue} -> wl_region#2559.add(-250, -383, 359, 544) -[2619101.445] {Default Queue} -> wl_surface#2535.set_opaque_region(wl_region#2560) -[2619101.449] {Default Queue} -> wl_surface#2535.set_input_region(wl_region#2559) -[2619101.455] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3718, 0, 0) -[2619101.459] {Default Queue} -> wl_surface#2535.commit() -[2619101.464] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3718, 0, 0) -[2619101.467] {Default Queue} -> wl_surface#2535.commit() -[2619101.474] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3718, 0, 0) -[2619101.478] {Default Queue} -> wl_surface#2535.commit() -[2619101.489] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) -[2619101.493] {Default Queue} -> wl_surface#2508.commit() -[2619101.974] {Display Queue} wl_display#1.delete_id(3036) -[2619101.987] {Display Queue} wl_display#1.delete_id(3037) -[2619101.992] {Display Queue} wl_display#1.delete_id(3701) -[2619101.997] {Display Queue} wl_display#1.delete_id(3700) -[2619102.002] {Display Queue} wl_display#1.delete_id(3038) -[2619102.007] {Display Queue} wl_display#1.delete_id(3724) -[2619102.012] {Display Queue} wl_display#1.delete_id(3725) -[2619102.016] {Display Queue} wl_display#1.delete_id(3722) -[2619102.021] {Display Queue} wl_display#1.delete_id(3723) -[2619102.026] {Display Queue} wl_display#1.delete_id(2653) -[2619102.031] {Display Queue} wl_display#1.delete_id(2654) -[2619102.035] {Display Queue} wl_display#1.delete_id(2651) -[2619102.047] {Display Queue} wl_display#1.delete_id(2652) -[2619102.055] {Default Queue} wl_pointer#24.motion(187310732, 20.19921875, 14.60156250) -[2619102.061] {Default Queue} wl_pointer#81.motion(187310732, 20.19921875, 14.60156250) -[2619102.069] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619102.075] {Default Queue} wl_pointer#105.motion(187310732, 20.19921875, 14.60156250) -[2619102.081] {Default Queue} wl_pointer#137.motion(187310732, 20.19921875, 14.60156250) -[2619102.086] {Default Queue} wl_pointer#169.motion(187310732, 20.19921875, 14.60156250) -[2619102.092] {Default Queue} wl_pointer#201.motion(187310732, 20.19921875, 14.60156250) -[2619102.098] {Default Queue} wl_pointer#233.motion(187310732, 20.19921875, 14.60156250) -[2619102.103] {Default Queue} wl_pointer#265.motion(187310732, 20.19921875, 14.60156250) -[2619102.109] {Default Queue} wl_pointer#297.motion(187310732, 20.19921875, 14.60156250) -[2619102.115] {Default Queue} wl_pointer#329.motion(187310732, 20.19921875, 14.60156250) -[2619102.120] {Default Queue} wl_pointer#361.motion(187310732, 20.19921875, 14.60156250) -[2619102.126] {Default Queue} wl_pointer#393.motion(187310732, 20.19921875, 14.60156250) -[2619102.131] {Default Queue} wl_pointer#425.motion(187310732, 20.19921875, 14.60156250) -[2619102.136] {Default Queue} wl_pointer#457.motion(187310732, 20.19921875, 14.60156250) -[2619102.141] {Default Queue} wl_pointer#489.motion(187310732, 20.19921875, 14.60156250) -[2619102.147] {Default Queue} wl_pointer#521.motion(187310732, 20.19921875, 14.60156250) -[2619102.177] {Default Queue} wl_pointer#553.motion(187310732, 20.19921875, 14.60156250) -[2619102.186] {Default Queue} wl_pointer#585.motion(187310732, 20.19921875, 14.60156250) -[2619102.193] {Default Queue} wl_pointer#617.motion(187310732, 20.19921875, 14.60156250) -[2619102.199] {Default Queue} wl_pointer#649.motion(187310732, 20.19921875, 14.60156250) -[2619102.205] {Default Queue} wl_pointer#681.motion(187310732, 20.19921875, 14.60156250) -[2619102.211] {Default Queue} wl_pointer#713.motion(187310732, 20.19921875, 14.60156250) -[2619102.217] {Default Queue} wl_pointer#745.motion(187310732, 20.19921875, 14.60156250) -[2619102.223] {Default Queue} wl_pointer#777.motion(187310732, 20.19921875, 14.60156250) -[2619102.229] {Default Queue} wl_pointer#809.motion(187310732, 20.19921875, 14.60156250) -[2619102.235] {Default Queue} wl_pointer#841.motion(187310732, 20.19921875, 14.60156250) -[2619102.241] {Default Queue} wl_pointer#873.motion(187310732, 20.19921875, 14.60156250) -[2619102.247] {Default Queue} wl_pointer#905.motion(187310732, 20.19921875, 14.60156250) -[2619102.253] {Default Queue} wl_pointer#937.motion(187310732, 20.19921875, 14.60156250) -[2619102.259] {Default Queue} wl_pointer#969.motion(187310732, 20.19921875, 14.60156250) -[2619102.266] {Default Queue} wl_pointer#1001.motion(187310732, 20.19921875, 14.60156250) -[2619102.273] {Default Queue} wl_pointer#1033.motion(187310732, 20.19921875, 14.60156250) -[2619102.279] {Default Queue} wl_pointer#1065.motion(187310732, 20.19921875, 14.60156250) -[2619102.284] {Default Queue} wl_pointer#1097.motion(187310732, 20.19921875, 14.60156250) -[2619102.290] {Default Queue} wl_pointer#1129.motion(187310732, 20.19921875, 14.60156250) -[2619102.297] {Default Queue} wl_pointer#1161.motion(187310732, 20.19921875, 14.60156250) -[2619102.303] {Default Queue} wl_pointer#1193.motion(187310732, 20.19921875, 14.60156250) -[2619102.309] {Default Queue} wl_pointer#1225.motion(187310732, 20.19921875, 14.60156250) -[2619102.314] {Default Queue} wl_pointer#1257.motion(187310732, 20.19921875, 14.60156250) -[2619102.321] {Default Queue} wl_pointer#1289.motion(187310732, 20.19921875, 14.60156250) -[2619102.327] {Default Queue} wl_pointer#1321.motion(187310732, 20.19921875, 14.60156250) -[2619102.333] {Default Queue} wl_pointer#1353.motion(187310732, 20.19921875, 14.60156250) -[2619102.339] {Default Queue} wl_pointer#1385.motion(187310732, 20.19921875, 14.60156250) -[2619102.345] {Default Queue} wl_pointer#1417.motion(187310732, 20.19921875, 14.60156250) -[2619102.358] {Default Queue} wl_pointer#1449.motion(187310732, 20.19921875, 14.60156250) -[2619102.367] {Default Queue} wl_pointer#1481.motion(187310732, 20.19921875, 14.60156250) -[2619102.373] {Default Queue} wl_pointer#1513.motion(187310732, 20.19921875, 14.60156250) -[2619102.379] {Default Queue} wl_pointer#1545.motion(187310732, 20.19921875, 14.60156250) -[2619102.385] {Default Queue} wl_pointer#1577.motion(187310732, 20.19921875, 14.60156250) -[2619102.391] {Default Queue} wl_pointer#1609.motion(187310732, 20.19921875, 14.60156250) -[2619102.397] {Default Queue} wl_pointer#1641.motion(187310732, 20.19921875, 14.60156250) -[2619102.403] {Default Queue} wl_pointer#1673.motion(187310732, 20.19921875, 14.60156250) -[2619102.409] {Default Queue} wl_pointer#1705.motion(187310732, 20.19921875, 14.60156250) -[2619102.415] {Default Queue} wl_pointer#1737.motion(187310732, 20.19921875, 14.60156250) -[2619102.421] {Default Queue} wl_pointer#1762.motion(187310732, 20.19921875, 14.60156250) -[2619102.427] {Default Queue} wl_pointer#1801.motion(187310732, 20.19921875, 14.60156250) -[2619102.433] {Default Queue} wl_pointer#1833.motion(187310732, 20.19921875, 14.60156250) -[2619102.439] {Default Queue} wl_pointer#1865.motion(187310732, 20.19921875, 14.60156250) -[2619102.444] {Default Queue} wl_pointer#1897.motion(187310732, 20.19921875, 14.60156250) -[2619102.450] {Default Queue} wl_pointer#1929.motion(187310732, 20.19921875, 14.60156250) -[2619102.456] {Default Queue} wl_pointer#1961.motion(187310732, 20.19921875, 14.60156250) -[2619102.462] {Default Queue} wl_pointer#1993.motion(187310732, 20.19921875, 14.60156250) -[2619102.468] {Default Queue} wl_pointer#2025.motion(187310732, 20.19921875, 14.60156250) -[2619102.474] {Default Queue} wl_pointer#2057.motion(187310732, 20.19921875, 14.60156250) -[2619102.481] {Default Queue} wl_pointer#2089.motion(187310732, 20.19921875, 14.60156250) -[2619102.487] {Default Queue} wl_pointer#2121.motion(187310732, 20.19921875, 14.60156250) -[2619102.492] {Default Queue} wl_pointer#2153.motion(187310732, 20.19921875, 14.60156250) -[2619102.498] {Default Queue} wl_pointer#2185.motion(187310732, 20.19921875, 14.60156250) -[2619102.505] {Default Queue} wl_pointer#2217.motion(187310732, 20.19921875, 14.60156250) -[2619102.511] {Default Queue} wl_pointer#2249.motion(187310732, 20.19921875, 14.60156250) -[2619102.516] {Default Queue} wl_pointer#2281.motion(187310732, 20.19921875, 14.60156250) -[2619102.522] {Default Queue} wl_pointer#2313.motion(187310732, 20.19921875, 14.60156250) -[2619102.532] {Default Queue} wl_pointer#2345.motion(187310732, 20.19921875, 14.60156250) -[2619102.539] {Default Queue} wl_pointer#2377.motion(187310732, 20.19921875, 14.60156250) -[2619102.545] {Default Queue} wl_pointer#2409.motion(187310732, 20.19921875, 14.60156250) -[2619102.551] {Default Queue} wl_pointer#2441.motion(187310732, 20.19921875, 14.60156250) -[2619102.556] {Default Queue} wl_pointer#2473.motion(187310732, 20.19921875, 14.60156250) -[2619102.562] {Default Queue} wl_pointer#2498.motion(187310732, 20.19921875, 14.60156250) -[2619102.580] {Default Queue} -> wl_buffer#2494.destroy() -[2619102.588] {Default Queue} -> wl_buffer#2493.destroy() -[2619102.594] {Default Queue} -> wl_shm_pool#2492.destroy() -[2619102.599] {Default Queue} -> wl_shm_pool#2491.destroy() -[2619102.606] {Default Queue} -> wl_surface#3712.destroy() -[2619102.667] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2652, fd 575, 640) -[2619102.676] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2651, fd 578, 640) -[2619102.683] {Default Queue} -> wl_shm_pool#2652.create_buffer(new id wl_buffer#2654, 0, 10, 16, 40, 0) -[2619102.689] {Default Queue} -> wl_shm_pool#2651.create_buffer(new id wl_buffer#2653, 0, 10, 16, 40, 0) -[2619102.700] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3723) -[2619102.707] {Default Queue} -> wl_surface#3723.attach(wl_buffer#2654, 0, 0) -[2619102.713] {Default Queue} -> wl_surface#3723.commit() -[2619102.720] {Default Queue} -> wl_surface#3723.attach(wl_buffer#2654, 0, 0) -[2619102.726] {Default Queue} -> wl_surface#3723.commit() -[2619102.737] {Default Queue} wl_pointer#2537.motion(187310732, 20.19921875, 14.60156250) -[2619102.746] {Default Queue} wl_pointer#2569.motion(187310732, 20.19921875, 14.60156250) -[2619102.752] {Default Queue} wl_pointer#2601.motion(187310732, 20.19921875, 14.60156250) -[2619102.758] {Default Queue} wl_pointer#2633.motion(187310732, 20.19921875, 14.60156250) -[2619102.764] {Default Queue} wl_pointer#2665.motion(187310732, 20.19921875, 14.60156250) -[2619102.774] {Default Queue} wl_pointer#2697.motion(187310732, 20.19921875, 14.60156250) -[2619102.780] {Default Queue} wl_pointer#2729.motion(187310732, 20.19921875, 14.60156250) -[2619102.786] {Default Queue} wl_pointer#2761.motion(187310732, 20.19921875, 14.60156250) -[2619102.795] {Default Queue} wl_pointer#2793.motion(187310732, 20.19921875, 14.60156250) -[2619102.801] {Default Queue} wl_pointer#2825.motion(187310732, 20.19921875, 14.60156250) -[2619102.807] {Default Queue} wl_pointer#2857.motion(187310732, 20.19921875, 14.60156250) -[2619102.813] {Default Queue} wl_pointer#2889.motion(187310732, 20.19921875, 14.60156250) -[2619102.819] {Default Queue} wl_pointer#2921.motion(187310732, 20.19921875, 14.60156250) -[2619102.824] {Default Queue} wl_pointer#2953.motion(187310732, 20.19921875, 14.60156250) -[2619102.828] {Default Queue} wl_pointer#2985.motion(187310732, 20.19921875, 14.60156250) -[2619102.832] {Default Queue} wl_pointer#3017.motion(187310732, 20.19921875, 14.60156250) -[2619102.836] {Default Queue} wl_pointer#3049.motion(187310732, 20.19921875, 14.60156250) -[2619102.840] {Default Queue} wl_pointer#3081.motion(187310732, 20.19921875, 14.60156250) -[2619102.844] {Default Queue} wl_pointer#3113.motion(187310732, 20.19921875, 14.60156250) -[2619102.848] {Default Queue} wl_pointer#3145.motion(187310732, 20.19921875, 14.60156250) -[2619102.851] {Default Queue} wl_pointer#3177.motion(187310732, 20.19921875, 14.60156250) -[2619102.855] {Default Queue} wl_pointer#3209.motion(187310732, 20.19921875, 14.60156250) -[2619102.860] {Default Queue} wl_pointer#3241.motion(187310732, 20.19921875, 14.60156250) -[2619102.865] {Default Queue} wl_pointer#3273.motion(187310732, 20.19921875, 14.60156250) -[2619102.869] {Default Queue} wl_pointer#3305.motion(187310732, 20.19921875, 14.60156250) -[2619102.896] {Default Queue} wl_pointer#3337.motion(187310732, 20.19921875, 14.60156250) -[2619102.901] {Default Queue} wl_pointer#3369.motion(187310732, 20.19921875, 14.60156250) -[2619102.905] {Default Queue} wl_pointer#3401.motion(187310732, 20.19921875, 14.60156250) -[2619102.919] {Default Queue} wl_pointer#3433.motion(187310732, 20.19921875, 14.60156250) -[2619102.923] {Default Queue} wl_pointer#3465.motion(187310732, 20.19921875, 14.60156250) -[2619102.927] {Default Queue} wl_pointer#3497.motion(187310732, 20.19921875, 14.60156250) -[2619102.931] {Default Queue} wl_pointer#3529.motion(187310732, 20.19921875, 14.60156250) -[2619102.935] {Default Queue} wl_pointer#3561.motion(187310732, 20.19921875, 14.60156250) -[2619102.939] {Default Queue} wl_pointer#3593.motion(187310732, 20.19921875, 14.60156250) -[2619102.943] {Default Queue} wl_pointer#3625.motion(187310732, 20.19921875, 14.60156250) -[2619102.947] {Default Queue} wl_pointer#3657.motion(187310732, 20.19921875, 14.60156250) -[2619102.951] {Default Queue} wl_pointer#3695.motion(187310732, 20.19921875, 14.60156250) -[2619102.970] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) -[2619102.975] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) -[2619102.979] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2619102.983] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2619102.991] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) -[2619102.995] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) -[2619102.999] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2619103.002] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2619103.008] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) -[2619103.012] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) -[2619103.020] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2619103.026] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2619103.031] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) -[2619103.035] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) -[2619103.039] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2619103.043] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2619103.049] {Default Queue} -> wl_region#2527.subtract(0, 0, 365, 550) -[2619103.053] {Default Queue} -> wl_region#2527.add(-20, -383, 135, 550) -[2619103.057] {Default Queue} -> wl_surface#2508.set_opaque_region(wl_region#2528) -[2619103.060] {Default Queue} -> wl_surface#2508.set_input_region(wl_region#2527) -[2619103.067] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) -[2619103.072] {Default Queue} -> wl_surface#2508.commit() -[2619103.077] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) -[2619103.081] {Default Queue} -> wl_surface#2508.commit() -[2619103.089] {Default Queue} -> wl_surface#2508.attach(wl_buffer#1181, 0, 0) -[2619103.093] {Default Queue} -> wl_surface#2508.commit() -[2619103.099] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) -[2619103.103] {Default Queue} -> wl_surface#2727.commit() -[2619104.167] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) -[2619104.173] {Default Queue} -> wl_surface#2727.commit() -[2619104.182] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 403) -[2619104.186] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 403) -[2619104.190] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2619104.194] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2619104.282] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 403) -[2619104.287] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 403) -[2619104.291] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2619104.294] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2619104.301] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) -[2619104.306] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) -[2619104.368] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 403) -[2619104.373] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 403) -[2619104.377] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2619104.381] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2619104.386] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) -[2619104.390] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) -[2619104.394] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) -[2619104.398] {Default Queue} -> wl_surface#2727.commit() -[2619104.402] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) -[2619104.406] {Default Queue} -> wl_surface#2727.commit() -[2619104.411] {Default Queue} -> wl_surface#2727.attach(wl_buffer#1149, 0, 0) -[2619104.415] {Default Queue} -> wl_surface#2727.commit() -[2619104.419] {Default Queue} -> wl_region#2815.subtract(0, 0, 2, 2) -[2619104.424] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 395) -[2619104.427] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 388) -[2619104.431] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619104.435] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619104.439] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) -[2619104.452] {Default Queue} -> wl_buffer#2813.destroy() -[2619104.457] {Default Queue} -> wl_buffer#2814.destroy() -[2619104.461] {Default Queue} -> wl_shm_pool#2811.destroy() -[2619104.465] {Default Queue} -> wl_shm_pool#2812.destroy() -[2619104.524] {Default Queue} -> wl_shm#2799.create_pool(new id wl_shm_pool#3722, fd 575, 16) -[2619104.530] {Default Queue} -> wl_shm#2799.create_pool(new id wl_shm_pool#3725, fd 578, 16) -[2619104.534] {Default Queue} -> wl_shm_pool#3722.create_buffer(new id wl_buffer#3724, 0, 2, 2, 8, 0) -[2619104.542] {Default Queue} -> wl_shm_pool#3725.create_buffer(new id wl_buffer#3038, 0, 2, 2, 8, 0) -[2619104.551] {Default Queue} -> wl_surface#2791.attach(wl_buffer#3724, 0, 0) -[2619104.555] {Default Queue} -> wl_surface#2791.commit() -[2619104.560] {Default Queue} -> wl_surface#2791.attach(wl_buffer#3724, 0, 0) -[2619104.563] {Default Queue} -> wl_surface#2791.commit() -[2619104.571] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619104.576] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619104.580] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619104.583] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619104.591] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619104.595] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619104.599] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619104.602] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619104.609] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619104.613] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619104.617] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619104.620] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619104.625] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619104.629] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619104.633] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619104.637] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619104.642] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619104.646] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619104.650] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619104.653] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619104.660] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619104.664] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619104.668] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619104.672] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619104.677] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619104.681] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619104.685] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619104.688] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619104.694] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619104.698] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619104.702] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619104.706] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619104.711] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619104.715] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619104.719] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619104.723] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619104.733] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619104.737] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619104.741] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619104.745] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619104.750] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619104.753] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619104.757] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619104.761] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619104.766] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619104.770] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619104.774] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619104.780] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619104.787] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619104.791] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619104.795] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619104.798] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619104.803] {Default Queue} -> wl_surface#2791.attach(wl_buffer#3724, 0, 0) -[2619104.807] {Default Queue} -> wl_surface#2791.commit() -[2619104.813] {Default Queue} -> wl_surface#2791.attach(wl_buffer#3724, 0, 0) -[2619104.817] {Default Queue} -> wl_surface#2791.commit() -[2619105.867] {Default Queue} -> wl_surface#2791.attach(wl_buffer#3724, 0, 0) -[2619105.872] {Default Queue} -> wl_surface#2791.commit() -[2619105.880] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619105.885] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619105.889] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619105.893] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619105.899] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619105.903] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619105.907] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619105.911] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619105.916] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619105.920] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619105.924] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619105.928] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619105.933] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619105.937] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619105.941] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619105.944] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619105.949] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619105.953] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619105.957] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619105.960] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619105.967] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619105.971] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619105.975] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619105.979] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619105.984] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619105.988] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619105.992] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619105.995] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619106.000] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619106.004] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619106.008] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619106.012] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619106.017] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619106.021] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619106.025] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619106.028] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619106.038] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619106.043] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619106.047] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619106.051] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619106.055] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619106.062] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619106.068] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619106.071] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619106.077] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619106.081] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619106.084] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619106.088] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619106.093] {Default Queue} -> wl_region#2815.subtract(0, 0, 370, 408) -[2619106.097] {Default Queue} -> wl_region#2815.add(-368, -399, 369, 401) -[2619106.101] {Default Queue} -> wl_surface#2791.set_opaque_region(wl_region#2816) -[2619106.105] {Default Queue} -> wl_surface#2791.set_input_region(wl_region#2815) -[2619106.110] {Default Queue} -> wl_surface#2791.attach(wl_buffer#3724, 0, 0) -[2619106.114] {Default Queue} -> wl_surface#2791.commit() -[2619106.117] {Default Queue} -> wl_surface#2791.attach(wl_buffer#3724, 0, 0) -[2619106.121] {Default Queue} -> wl_surface#2791.commit() -[2619106.127] {Default Queue} -> wl_surface#2791.attach(wl_buffer#3724, 0, 0) -[2619106.131] {Default Queue} -> wl_surface#2791.commit() -[2619106.136] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) -[2619106.140] {Default Queue} -> wl_surface#2759.commit() -[2619106.885] {Display Queue} wl_display#1.delete_id(3706) -[2619106.891] {Display Queue} wl_display#1.delete_id(3709) -[2619106.895] {Display Queue} wl_display#1.delete_id(1598) -[2619106.899] {Display Queue} wl_display#1.delete_id(3707) -[2619106.903] {Display Queue} wl_display#1.delete_id(3708) -[2619106.906] {Display Queue} wl_display#1.delete_id(3728) -[2619106.910] {Display Queue} wl_display#1.delete_id(3729) -[2619106.914] {Display Queue} wl_display#1.delete_id(3726) -[2619106.917] {Display Queue} wl_display#1.delete_id(3727) -[2619106.921] {Default Queue} wl_pointer#24.motion(187310737, 20.19921875, 15.00000000) -[2619106.926] {Default Queue} wl_pointer#81.motion(187310737, 20.19921875, 15.00000000) -[2619106.931] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619106.936] {Default Queue} wl_pointer#105.motion(187310737, 20.19921875, 15.00000000) -[2619106.940] {Default Queue} wl_pointer#137.motion(187310737, 20.19921875, 15.00000000) -[2619106.944] {Default Queue} wl_pointer#169.motion(187310737, 20.19921875, 15.00000000) -[2619106.948] {Default Queue} wl_pointer#201.motion(187310737, 20.19921875, 15.00000000) -[2619106.952] {Default Queue} wl_pointer#233.motion(187310737, 20.19921875, 15.00000000) -[2619106.956] {Default Queue} wl_pointer#265.motion(187310737, 20.19921875, 15.00000000) -[2619106.960] {Default Queue} wl_pointer#297.motion(187310737, 20.19921875, 15.00000000) -[2619106.964] {Default Queue} wl_pointer#329.motion(187310737, 20.19921875, 15.00000000) -[2619106.968] {Default Queue} wl_pointer#361.motion(187310737, 20.19921875, 15.00000000) -[2619106.972] {Default Queue} wl_pointer#393.motion(187310737, 20.19921875, 15.00000000) -[2619106.975] {Default Queue} wl_pointer#425.motion(187310737, 20.19921875, 15.00000000) -[2619106.979] {Default Queue} wl_pointer#457.motion(187310737, 20.19921875, 15.00000000) -[2619106.983] {Default Queue} wl_pointer#489.motion(187310737, 20.19921875, 15.00000000) -[2619106.987] {Default Queue} wl_pointer#521.motion(187310737, 20.19921875, 15.00000000) -[2619106.991] {Default Queue} wl_pointer#553.motion(187310737, 20.19921875, 15.00000000) -[2619106.996] {Default Queue} wl_pointer#585.motion(187310737, 20.19921875, 15.00000000) -[2619107.000] {Default Queue} wl_pointer#617.motion(187310737, 20.19921875, 15.00000000) -[2619107.004] {Default Queue} wl_pointer#649.motion(187310737, 20.19921875, 15.00000000) -[2619107.008] {Default Queue} wl_pointer#681.motion(187310737, 20.19921875, 15.00000000) -[2619107.012] {Default Queue} wl_pointer#713.motion(187310737, 20.19921875, 15.00000000) -[2619107.016] {Default Queue} wl_pointer#745.motion(187310737, 20.19921875, 15.00000000) -[2619107.023] {Default Queue} wl_pointer#777.motion(187310737, 20.19921875, 15.00000000) -[2619107.029] {Default Queue} wl_pointer#809.motion(187310737, 20.19921875, 15.00000000) -[2619107.033] {Default Queue} wl_pointer#841.motion(187310737, 20.19921875, 15.00000000) -[2619107.037] {Default Queue} wl_pointer#873.motion(187310737, 20.19921875, 15.00000000) -[2619107.041] {Default Queue} wl_pointer#905.motion(187310737, 20.19921875, 15.00000000) -[2619107.045] {Default Queue} wl_pointer#937.motion(187310737, 20.19921875, 15.00000000) -[2619107.048] {Default Queue} wl_pointer#969.motion(187310737, 20.19921875, 15.00000000) -[2619107.052] {Default Queue} wl_pointer#1001.motion(187310737, 20.19921875, 15.00000000) -[2619107.056] {Default Queue} wl_pointer#1033.motion(187310737, 20.19921875, 15.00000000) -[2619107.060] {Default Queue} wl_pointer#1065.motion(187310737, 20.19921875, 15.00000000) -[2619107.064] {Default Queue} wl_pointer#1097.motion(187310737, 20.19921875, 15.00000000) -[2619107.068] {Default Queue} wl_pointer#1129.motion(187310737, 20.19921875, 15.00000000) -[2619107.072] {Default Queue} wl_pointer#1161.motion(187310737, 20.19921875, 15.00000000) -[2619107.076] {Default Queue} wl_pointer#1193.motion(187310737, 20.19921875, 15.00000000) -[2619107.080] {Default Queue} wl_pointer#1225.motion(187310737, 20.19921875, 15.00000000) -[2619107.084] {Default Queue} wl_pointer#1257.motion(187310737, 20.19921875, 15.00000000) -[2619107.088] {Default Queue} wl_pointer#1289.motion(187310737, 20.19921875, 15.00000000) -[2619107.092] {Default Queue} wl_pointer#1321.motion(187310737, 20.19921875, 15.00000000) -[2619107.096] {Default Queue} wl_pointer#1353.motion(187310737, 20.19921875, 15.00000000) -[2619107.100] {Default Queue} wl_pointer#1385.motion(187310737, 20.19921875, 15.00000000) -[2619107.104] {Default Queue} wl_pointer#1417.motion(187310737, 20.19921875, 15.00000000) -[2619107.108] {Default Queue} wl_pointer#1449.motion(187310737, 20.19921875, 15.00000000) -[2619107.112] {Default Queue} wl_pointer#1481.motion(187310737, 20.19921875, 15.00000000) -[2619107.116] {Default Queue} wl_pointer#1513.motion(187310737, 20.19921875, 15.00000000) -[2619107.120] {Default Queue} wl_pointer#1545.motion(187310737, 20.19921875, 15.00000000) -[2619107.124] {Default Queue} wl_pointer#1577.motion(187310737, 20.19921875, 15.00000000) -[2619107.128] {Default Queue} wl_pointer#1609.motion(187310737, 20.19921875, 15.00000000) -[2619107.132] {Default Queue} wl_pointer#1641.motion(187310737, 20.19921875, 15.00000000) -[2619107.136] {Default Queue} wl_pointer#1673.motion(187310737, 20.19921875, 15.00000000) -[2619107.139] {Default Queue} wl_pointer#1705.motion(187310737, 20.19921875, 15.00000000) -[2619107.143] {Default Queue} wl_pointer#1737.motion(187310737, 20.19921875, 15.00000000) -[2619107.147] {Default Queue} wl_pointer#1762.motion(187310737, 20.19921875, 15.00000000) -[2619107.151] {Default Queue} wl_pointer#1801.motion(187310737, 20.19921875, 15.00000000) -[2619107.155] {Default Queue} wl_pointer#1833.motion(187310737, 20.19921875, 15.00000000) -[2619107.159] {Default Queue} wl_pointer#1865.motion(187310737, 20.19921875, 15.00000000) -[2619107.163] {Default Queue} wl_pointer#1897.motion(187310737, 20.19921875, 15.00000000) -[2619107.167] {Default Queue} wl_pointer#1929.motion(187310737, 20.19921875, 15.00000000) -[2619107.171] {Default Queue} wl_pointer#1961.motion(187310737, 20.19921875, 15.00000000) -[2619107.175] {Default Queue} wl_pointer#1993.motion(187310737, 20.19921875, 15.00000000) -[2619107.179] {Default Queue} wl_pointer#2025.motion(187310737, 20.19921875, 15.00000000) -[2619107.183] {Default Queue} wl_pointer#2057.motion(187310737, 20.19921875, 15.00000000) -[2619107.187] {Default Queue} wl_pointer#2089.motion(187310737, 20.19921875, 15.00000000) -[2619107.191] {Default Queue} wl_pointer#2121.motion(187310737, 20.19921875, 15.00000000) -[2619107.194] {Default Queue} wl_pointer#2153.motion(187310737, 20.19921875, 15.00000000) -[2619107.198] {Default Queue} wl_pointer#2185.motion(187310737, 20.19921875, 15.00000000) -[2619107.202] {Default Queue} wl_pointer#2217.motion(187310737, 20.19921875, 15.00000000) -[2619107.209] {Default Queue} wl_pointer#2249.motion(187310737, 20.19921875, 15.00000000) -[2619107.214] {Default Queue} wl_pointer#2281.motion(187310737, 20.19921875, 15.00000000) -[2619107.218] {Default Queue} wl_pointer#2313.motion(187310737, 20.19921875, 15.00000000) -[2619107.223] {Default Queue} wl_pointer#2345.motion(187310737, 20.19921875, 15.00000000) -[2619107.227] {Default Queue} wl_pointer#2377.motion(187310737, 20.19921875, 15.00000000) -[2619107.231] {Default Queue} wl_pointer#2409.motion(187310737, 20.19921875, 15.00000000) -[2619107.235] {Default Queue} wl_pointer#2441.motion(187310737, 20.19921875, 15.00000000) -[2619107.239] {Default Queue} wl_pointer#2473.motion(187310737, 20.19921875, 15.00000000) -[2619107.242] {Default Queue} wl_pointer#2498.motion(187310737, 20.19921875, 15.00000000) -[2619107.254] {Default Queue} -> wl_buffer#2654.destroy() -[2619107.258] {Default Queue} -> wl_buffer#2653.destroy() -[2619107.262] {Default Queue} -> wl_shm_pool#2652.destroy() -[2619107.266] {Default Queue} -> wl_shm_pool#2651.destroy() -[2619107.270] {Default Queue} -> wl_surface#3723.destroy() -[2619107.326] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3727, fd 575, 640) -[2619107.336] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3726, fd 578, 640) -[2619107.340] {Default Queue} -> wl_shm_pool#3727.create_buffer(new id wl_buffer#3729, 0, 10, 16, 40, 0) -[2619107.345] {Default Queue} -> wl_shm_pool#3726.create_buffer(new id wl_buffer#3728, 0, 10, 16, 40, 0) -[2619107.352] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3708) -[2619107.356] {Default Queue} -> wl_surface#3708.attach(wl_buffer#3729, 0, 0) -[2619107.360] {Default Queue} -> wl_surface#3708.commit() -[2619107.366] {Default Queue} -> wl_surface#3708.attach(wl_buffer#3729, 0, 0) -[2619107.370] {Default Queue} -> wl_surface#3708.commit() -[2619107.374] {Default Queue} wl_pointer#2537.motion(187310737, 20.19921875, 15.00000000) -[2619107.379] {Default Queue} wl_pointer#2569.motion(187310737, 20.19921875, 15.00000000) -[2619107.384] {Default Queue} wl_pointer#2601.motion(187310737, 20.19921875, 15.00000000) -[2619107.388] {Default Queue} wl_pointer#2633.motion(187310737, 20.19921875, 15.00000000) -[2619107.392] {Default Queue} wl_pointer#2665.motion(187310737, 20.19921875, 15.00000000) -[2619107.396] {Default Queue} wl_pointer#2697.motion(187310737, 20.19921875, 15.00000000) -[2619107.400] {Default Queue} wl_pointer#2729.motion(187310737, 20.19921875, 15.00000000) -[2619107.404] {Default Queue} wl_pointer#2761.motion(187310737, 20.19921875, 15.00000000) -[2619107.408] {Default Queue} wl_pointer#2793.motion(187310737, 20.19921875, 15.00000000) -[2619107.412] {Default Queue} wl_pointer#2825.motion(187310737, 20.19921875, 15.00000000) -[2619107.416] {Default Queue} wl_pointer#2857.motion(187310737, 20.19921875, 15.00000000) -[2619107.420] {Default Queue} wl_pointer#2889.motion(187310737, 20.19921875, 15.00000000) -[2619107.424] {Default Queue} wl_pointer#2921.motion(187310737, 20.19921875, 15.00000000) -[2619107.428] {Default Queue} wl_pointer#2953.motion(187310737, 20.19921875, 15.00000000) -[2619107.432] {Default Queue} wl_pointer#2985.motion(187310737, 20.19921875, 15.00000000) -[2619107.436] {Default Queue} wl_pointer#3017.motion(187310737, 20.19921875, 15.00000000) -[2619107.440] {Default Queue} wl_pointer#3049.motion(187310737, 20.19921875, 15.00000000) -[2619107.444] {Default Queue} wl_pointer#3081.motion(187310737, 20.19921875, 15.00000000) -[2619107.448] {Default Queue} wl_pointer#3113.motion(187310737, 20.19921875, 15.00000000) -[2619107.452] {Default Queue} wl_pointer#3145.motion(187310737, 20.19921875, 15.00000000) -[2619107.456] {Default Queue} wl_pointer#3177.motion(187310737, 20.19921875, 15.00000000) -[2619107.460] {Default Queue} wl_pointer#3209.motion(187310737, 20.19921875, 15.00000000) -[2619107.464] {Default Queue} wl_pointer#3241.motion(187310737, 20.19921875, 15.00000000) -[2619107.468] {Default Queue} wl_pointer#3273.motion(187310737, 20.19921875, 15.00000000) -[2619107.472] {Default Queue} wl_pointer#3305.motion(187310737, 20.19921875, 15.00000000) -[2619107.480] {Default Queue} wl_pointer#3337.motion(187310737, 20.19921875, 15.00000000) -[2619107.488] {Default Queue} wl_pointer#3369.motion(187310737, 20.19921875, 15.00000000) -[2619107.492] {Default Queue} wl_pointer#3401.motion(187310737, 20.19921875, 15.00000000) -[2619107.496] {Default Queue} wl_pointer#3433.motion(187310737, 20.19921875, 15.00000000) -[2619107.501] {Default Queue} wl_pointer#3465.motion(187310737, 20.19921875, 15.00000000) -[2619107.505] {Default Queue} wl_pointer#3497.motion(187310737, 20.19921875, 15.00000000) -[2619107.509] {Default Queue} wl_pointer#3529.motion(187310737, 20.19921875, 15.00000000) -[2619107.513] {Default Queue} wl_pointer#3561.motion(187310737, 20.19921875, 15.00000000) -[2619107.517] {Default Queue} wl_pointer#3593.motion(187310737, 20.19921875, 15.00000000) -[2619107.521] {Default Queue} wl_pointer#3625.motion(187310737, 20.19921875, 15.00000000) -[2619107.525] {Default Queue} wl_pointer#3657.motion(187310737, 20.19921875, 15.00000000) -[2619107.529] {Default Queue} wl_pointer#3695.motion(187310737, 20.19921875, 15.00000000) -[2619107.537] {Default Queue} -> wl_region#2783.subtract(0, 0, 370, 408) -[2619107.541] {Default Queue} -> wl_region#2783.add(-368, -386, 370, 388) -[2619107.545] {Default Queue} -> wl_surface#2759.set_opaque_region(wl_region#2784) -[2619107.549] {Default Queue} -> wl_surface#2759.set_input_region(wl_region#2783) -[2619107.555] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) -[2619107.559] {Default Queue} -> wl_surface#2759.commit() -[2619107.563] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) -[2619107.567] {Default Queue} -> wl_surface#2759.commit() -[2619107.573] {Default Queue} -> wl_surface#2759.attach(wl_buffer#1117, 0, 0) -[2619107.577] {Default Queue} -> wl_surface#2759.commit() -[2619107.581] {Default Queue} -> wl_region#2719.subtract(0, 0, 109, 161) -[2619107.587] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 403) -[2619107.591] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 403) -[2619107.595] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2619107.598] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2619107.687] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 403) -[2619107.691] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 403) -[2619107.695] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2619107.699] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2619107.706] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) -[2619107.710] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) -[2619107.771] {Default Queue} -> wl_region#2751.subtract(0, 0, 367, 403) -[2619107.775] {Default Queue} -> wl_region#2751.add(-365, -383, 367, 403) -[2619107.779] {Default Queue} -> wl_surface#2727.set_opaque_region(wl_region#2752) -[2619107.783] {Default Queue} -> wl_surface#2727.set_input_region(wl_region#2751) -[2619107.788] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) -[2619107.792] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) -[2619107.797] {Default Queue} -> wl_region#2783.subtract(0, 0, 370, 408) -[2619107.801] {Default Queue} -> wl_region#2783.add(-368, -386, 370, 388) -[2619107.805] {Default Queue} -> wl_surface#2759.set_opaque_region(wl_region#2784) -[2619107.809] {Default Queue} -> wl_surface#2759.set_input_region(wl_region#2783) -[2619107.813] {Default Queue} -> wl_surface#2695.damage(0, 0, 109, 161) -[2619107.817] {Default Queue} -> wl_region#2719.subtract(0, 0, 477, 547) -[2619107.821] {Default Queue} -> wl_region#2719.add(-365, -383, 474, 544) -[2619107.825] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) -[2619107.829] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) -[2619107.833] {Default Queue} -> wl_surface#2727.damage(0, 0, 2, 20) -[2619107.836] {Default Queue} -> wl_surface#2791.damage(0, 0, 2, 2) -[2619107.840] {Default Queue} -> wl_surface#2759.damage(0, 0, 2, 2) -[2619107.847] {Default Queue} -> wl_surface#2695.damage(0, 0, 109, 161) -[2619107.868] {Default Queue} -> wl_buffer#3732.destroy() -[2619107.873] {Default Queue} -> wl_buffer#3733.destroy() -[2619107.877] {Default Queue} -> wl_shm_pool#3730.destroy() -[2619107.881] {Default Queue} -> wl_shm_pool#3731.destroy() -[2619107.959] {Default Queue} -> wl_shm#2703.create_pool(new id wl_shm_pool#3707, fd 581, 70196) -[2619107.965] {Default Queue} -> wl_shm#2703.create_pool(new id wl_shm_pool#1598, fd 582, 70196) -[2619107.969] {Default Queue} -> wl_shm_pool#3707.create_buffer(new id wl_buffer#3709, 0, 109, 161, 436, 0) -[2619107.974] {Default Queue} -> wl_shm_pool#1598.create_buffer(new id wl_buffer#3706, 0, 109, 161, 436, 0) -[2619107.995] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3709, 0, 0) -[2619107.999] {Default Queue} -> wl_surface#2695.commit() -[2619108.019] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3709, 0, 0) -[2619108.024] {Default Queue} -> wl_surface#2695.commit() -[2619108.032] {Default Queue} -> wl_region#2719.subtract(0, 0, 477, 547) -[2619108.036] {Default Queue} -> wl_region#2719.add(-365, -383, 474, 544) -[2619108.040] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) -[2619108.043] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) -[2619108.050] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3709, 0, 0) -[2619108.054] {Default Queue} -> wl_surface#2695.commit() -[2619108.061] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3709, 0, 0) -[2619108.065] {Default Queue} -> wl_surface#2695.commit() -[2619109.132] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3709, 0, 0) -[2619109.137] {Default Queue} -> wl_surface#2695.commit() -[2619109.144] {Default Queue} -> wl_region#2719.subtract(0, 0, 477, 547) -[2619109.148] {Default Queue} -> wl_region#2719.add(-365, -383, 474, 544) -[2619109.152] {Default Queue} -> wl_surface#2695.set_opaque_region(wl_region#2720) -[2619109.155] {Default Queue} -> wl_surface#2695.set_input_region(wl_region#2719) -[2619109.162] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3709, 0, 0) -[2619109.165] {Default Queue} -> wl_surface#2695.commit() -[2619109.170] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3709, 0, 0) -[2619109.174] {Default Queue} -> wl_surface#2695.commit() -[2619109.180] {Default Queue} -> wl_surface#2695.attach(wl_buffer#3709, 0, 0) -[2619109.184] {Default Queue} -> wl_surface#2695.commit() -[2619109.199] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) -[2619109.203] {Default Queue} -> wl_surface#2663.commit() -[2619110.266] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) -[2619110.270] {Default Queue} -> wl_surface#2663.commit() -[2619110.284] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) -[2619110.288] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) -[2619110.292] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2619110.296] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2619110.304] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) -[2619110.308] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) -[2619110.311] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2619110.315] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2619110.321] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) -[2619110.325] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) -[2619110.329] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2619110.332] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2619110.338] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) -[2619110.342] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) -[2619110.345] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2619110.349] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2619110.355] {Default Queue} -> wl_region#2687.subtract(0, 0, 480, 550) -[2619110.359] {Default Queue} -> wl_region#2687.add(-20, -383, 135, 550) -[2619110.367] {Default Queue} -> wl_surface#2663.set_opaque_region(wl_region#2688) -[2619110.373] {Default Queue} -> wl_surface#2663.set_input_region(wl_region#2687) -[2619110.380] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) -[2619110.385] {Default Queue} -> wl_surface#2663.commit() -[2619110.390] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) -[2619110.394] {Default Queue} -> wl_surface#2663.commit() -[2619110.400] {Default Queue} -> wl_surface#2663.attach(wl_buffer#989, 0, 0) -[2619110.404] {Default Queue} -> wl_surface#2663.commit() -[2619110.410] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) -[2619110.414] {Default Queue} -> wl_surface#2887.commit() -[2619111.474] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) -[2619111.479] {Default Queue} -> wl_surface#2887.commit() -[2619111.487] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 403) -[2619111.491] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 403) -[2619111.495] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2619111.499] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2619111.594] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 403) -[2619111.599] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 403) -[2619111.603] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2619111.606] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2619111.613] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) -[2619111.617] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) -[2619111.684] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 403) -[2619111.688] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 403) -[2619111.692] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2619111.696] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2619111.701] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) -[2619111.705] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) -[2619111.709] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) -[2619111.713] {Default Queue} -> wl_surface#2887.commit() -[2619111.717] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) -[2619111.721] {Default Queue} -> wl_surface#2887.commit() -[2619111.726] {Default Queue} -> wl_surface#2887.attach(wl_buffer#125, 0, 0) -[2619111.730] {Default Queue} -> wl_surface#2887.commit() -[2619111.734] {Default Queue} -> wl_region#2975.subtract(0, 0, 2, 2) -[2619111.739] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 388) -[2619111.742] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 387) -[2619111.746] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2619111.750] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2619111.754] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) -[2619111.766] {Default Queue} -> wl_buffer#2973.destroy() -[2619111.771] {Default Queue} -> wl_buffer#2974.destroy() -[2619111.774] {Default Queue} -> wl_shm_pool#2971.destroy() -[2619111.778] {Default Queue} -> wl_shm_pool#2972.destroy() -[2619111.818] {Default Queue} -> wl_shm#2959.create_pool(new id wl_shm_pool#3700, fd 575, 16) -[2619111.823] {Default Queue} -> wl_shm#2959.create_pool(new id wl_shm_pool#3701, fd 578, 16) -[2619111.827] {Default Queue} -> wl_shm_pool#3700.create_buffer(new id wl_buffer#3037, 0, 2, 2, 8, 0) -[2619111.832] {Default Queue} -> wl_shm_pool#3701.create_buffer(new id wl_buffer#3036, 0, 2, 2, 8, 0) -[2619111.838] {Default Queue} -> wl_surface#2951.attach(wl_buffer#3037, 0, 0) -[2619111.842] {Default Queue} -> wl_surface#2951.commit() -[2619111.847] {Default Queue} -> wl_surface#2951.attach(wl_buffer#3037, 0, 0) -[2619111.850] {Default Queue} -> wl_surface#2951.commit() -[2619111.858] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 408) -[2619111.863] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 407) -[2619111.867] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2619111.881] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2619111.890] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 408) -[2619111.895] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 407) -[2619111.898] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2619111.902] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2619111.908] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 408) -[2619111.912] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 407) -[2619111.916] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2619111.920] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2619111.924] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 408) -[2619111.928] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 407) -[2619111.932] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2619111.935] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2619111.940] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 408) -[2619111.944] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 407) -[2619111.948] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2619111.952] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2619111.956] {Default Queue} -> wl_surface#2951.attach(wl_buffer#3037, 0, 0) -[2619111.960] {Default Queue} -> wl_surface#2951.commit() -[2619111.978] {Display Queue} wl_display#1.delete_id(2494) -[2619111.984] {Display Queue} wl_display#1.delete_id(2493) -[2619111.987] {Display Queue} wl_display#1.delete_id(2492) -[2619111.991] {Display Queue} wl_display#1.delete_id(2491) -[2619111.995] {Display Queue} wl_display#1.delete_id(3712) -[2619111.998] {Display Queue} wl_display#1.delete_id(2813) -[2619112.002] {Display Queue} wl_display#1.delete_id(2814) -[2619112.006] {Display Queue} wl_display#1.delete_id(2811) -[2619112.009] {Display Queue} wl_display#1.delete_id(2812) -[2619112.013] {Default Queue} wl_pointer#24.motion(187310742, 19.80078125, 15.00000000) -[2619112.018] {Default Queue} wl_pointer#81.motion(187310742, 19.80078125, 15.00000000) -[2619112.023] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619112.027] {Default Queue} wl_pointer#105.motion(187310742, 19.80078125, 15.00000000) -[2619112.031] {Default Queue} wl_pointer#137.motion(187310742, 19.80078125, 15.00000000) -[2619112.035] {Default Queue} wl_pointer#169.motion(187310742, 19.80078125, 15.00000000) -[2619112.039] {Default Queue} wl_pointer#201.motion(187310742, 19.80078125, 15.00000000) -[2619112.043] {Default Queue} wl_pointer#233.motion(187310742, 19.80078125, 15.00000000) -[2619112.047] {Default Queue} wl_pointer#265.motion(187310742, 19.80078125, 15.00000000) -[2619112.051] {Default Queue} wl_pointer#297.motion(187310742, 19.80078125, 15.00000000) -[2619112.055] {Default Queue} wl_pointer#329.motion(187310742, 19.80078125, 15.00000000) -[2619112.059] {Default Queue} wl_pointer#361.motion(187310742, 19.80078125, 15.00000000) -[2619112.063] {Default Queue} wl_pointer#393.motion(187310742, 19.80078125, 15.00000000) -[2619112.067] {Default Queue} wl_pointer#425.motion(187310742, 19.80078125, 15.00000000) -[2619112.071] {Default Queue} wl_pointer#457.motion(187310742, 19.80078125, 15.00000000) -[2619112.074] {Default Queue} wl_pointer#489.motion(187310742, 19.80078125, 15.00000000) -[2619112.078] {Default Queue} wl_pointer#521.motion(187310742, 19.80078125, 15.00000000) -[2619112.082] {Default Queue} wl_pointer#553.motion(187310742, 19.80078125, 15.00000000) -[2619112.086] {Default Queue} wl_pointer#585.motion(187310742, 19.80078125, 15.00000000) -[2619112.090] {Default Queue} wl_pointer#617.motion(187310742, 19.80078125, 15.00000000) -[2619112.094] {Default Queue} wl_pointer#649.motion(187310742, 19.80078125, 15.00000000) -[2619112.098] {Default Queue} wl_pointer#681.motion(187310742, 19.80078125, 15.00000000) -[2619112.102] {Default Queue} wl_pointer#713.motion(187310742, 19.80078125, 15.00000000) -[2619112.109] {Default Queue} wl_pointer#745.motion(187310742, 19.80078125, 15.00000000) -[2619112.114] {Default Queue} wl_pointer#777.motion(187310742, 19.80078125, 15.00000000) -[2619112.118] {Default Queue} wl_pointer#809.motion(187310742, 19.80078125, 15.00000000) -[2619112.122] {Default Queue} wl_pointer#841.motion(187310742, 19.80078125, 15.00000000) -[2619112.126] {Default Queue} wl_pointer#873.motion(187310742, 19.80078125, 15.00000000) -[2619112.130] {Default Queue} wl_pointer#905.motion(187310742, 19.80078125, 15.00000000) -[2619112.134] {Default Queue} wl_pointer#937.motion(187310742, 19.80078125, 15.00000000) -[2619112.138] {Default Queue} wl_pointer#969.motion(187310742, 19.80078125, 15.00000000) -[2619112.142] {Default Queue} wl_pointer#1001.motion(187310742, 19.80078125, 15.00000000) -[2619112.146] {Default Queue} wl_pointer#1033.motion(187310742, 19.80078125, 15.00000000) -[2619112.150] {Default Queue} wl_pointer#1065.motion(187310742, 19.80078125, 15.00000000) -[2619112.154] {Default Queue} wl_pointer#1097.motion(187310742, 19.80078125, 15.00000000) -[2619112.158] {Default Queue} wl_pointer#1129.motion(187310742, 19.80078125, 15.00000000) -[2619112.162] {Default Queue} wl_pointer#1161.motion(187310742, 19.80078125, 15.00000000) -[2619112.165] {Default Queue} wl_pointer#1193.motion(187310742, 19.80078125, 15.00000000) -[2619112.169] {Default Queue} wl_pointer#1225.motion(187310742, 19.80078125, 15.00000000) -[2619112.173] {Default Queue} wl_pointer#1257.motion(187310742, 19.80078125, 15.00000000) -[2619112.177] {Default Queue} wl_pointer#1289.motion(187310742, 19.80078125, 15.00000000) -[2619112.181] {Default Queue} wl_pointer#1321.motion(187310742, 19.80078125, 15.00000000) -[2619112.185] {Default Queue} wl_pointer#1353.motion(187310742, 19.80078125, 15.00000000) -[2619112.189] {Default Queue} wl_pointer#1385.motion(187310742, 19.80078125, 15.00000000) -[2619112.193] {Default Queue} wl_pointer#1417.motion(187310742, 19.80078125, 15.00000000) -[2619112.197] {Default Queue} wl_pointer#1449.motion(187310742, 19.80078125, 15.00000000) -[2619112.201] {Default Queue} wl_pointer#1481.motion(187310742, 19.80078125, 15.00000000) -[2619112.205] {Default Queue} wl_pointer#1513.motion(187310742, 19.80078125, 15.00000000) -[2619112.209] {Default Queue} wl_pointer#1545.motion(187310742, 19.80078125, 15.00000000) -[2619112.213] {Default Queue} wl_pointer#1577.motion(187310742, 19.80078125, 15.00000000) -[2619112.217] {Default Queue} wl_pointer#1609.motion(187310742, 19.80078125, 15.00000000) -[2619112.221] {Default Queue} wl_pointer#1641.motion(187310742, 19.80078125, 15.00000000) -[2619112.225] {Default Queue} wl_pointer#1673.motion(187310742, 19.80078125, 15.00000000) -[2619112.229] {Default Queue} wl_pointer#1705.motion(187310742, 19.80078125, 15.00000000) -[2619112.233] {Default Queue} wl_pointer#1737.motion(187310742, 19.80078125, 15.00000000) -[2619112.236] {Default Queue} wl_pointer#1762.motion(187310742, 19.80078125, 15.00000000) -[2619112.240] {Default Queue} wl_pointer#1801.motion(187310742, 19.80078125, 15.00000000) -[2619112.244] {Default Queue} wl_pointer#1833.motion(187310742, 19.80078125, 15.00000000) -[2619112.248] {Default Queue} wl_pointer#1865.motion(187310742, 19.80078125, 15.00000000) -[2619112.252] {Default Queue} wl_pointer#1897.motion(187310742, 19.80078125, 15.00000000) -[2619112.256] {Default Queue} wl_pointer#1929.motion(187310742, 19.80078125, 15.00000000) -[2619112.260] {Default Queue} wl_pointer#1961.motion(187310742, 19.80078125, 15.00000000) -[2619112.264] {Default Queue} wl_pointer#1993.motion(187310742, 19.80078125, 15.00000000) -[2619112.268] {Default Queue} wl_pointer#2025.motion(187310742, 19.80078125, 15.00000000) -[2619112.272] {Default Queue} wl_pointer#2057.motion(187310742, 19.80078125, 15.00000000) -[2619112.276] {Default Queue} wl_pointer#2089.motion(187310742, 19.80078125, 15.00000000) -[2619112.280] {Default Queue} wl_pointer#2121.motion(187310742, 19.80078125, 15.00000000) -[2619112.284] {Default Queue} wl_pointer#2153.motion(187310742, 19.80078125, 15.00000000) -[2619112.288] {Default Queue} wl_pointer#2185.motion(187310742, 19.80078125, 15.00000000) -[2619112.295] {Default Queue} wl_pointer#2217.motion(187310742, 19.80078125, 15.00000000) -[2619112.300] {Default Queue} wl_pointer#2249.motion(187310742, 19.80078125, 15.00000000) -[2619112.304] {Default Queue} wl_pointer#2281.motion(187310742, 19.80078125, 15.00000000) -[2619112.308] {Default Queue} wl_pointer#2313.motion(187310742, 19.80078125, 15.00000000) -[2619112.312] {Default Queue} wl_pointer#2345.motion(187310742, 19.80078125, 15.00000000) -[2619112.316] {Default Queue} wl_pointer#2377.motion(187310742, 19.80078125, 15.00000000) -[2619112.320] {Default Queue} wl_pointer#2409.motion(187310742, 19.80078125, 15.00000000) -[2619112.324] {Default Queue} wl_pointer#2441.motion(187310742, 19.80078125, 15.00000000) -[2619112.328] {Default Queue} wl_pointer#2473.motion(187310742, 19.80078125, 15.00000000) -[2619112.332] {Default Queue} wl_pointer#2498.motion(187310742, 19.80078125, 15.00000000) -[2619112.343] {Default Queue} -> wl_buffer#3729.destroy() -[2619112.348] {Default Queue} -> wl_buffer#3728.destroy() -[2619112.352] {Default Queue} -> wl_shm_pool#3727.destroy() -[2619112.356] {Default Queue} -> wl_shm_pool#3726.destroy() -[2619112.361] {Default Queue} -> wl_surface#3708.destroy() -[2619112.392] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2812, fd 581, 640) -[2619112.398] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#2811, fd 582, 640) -[2619112.402] {Default Queue} -> wl_shm_pool#2812.create_buffer(new id wl_buffer#2814, 0, 10, 16, 40, 0) -[2619112.406] {Default Queue} -> wl_shm_pool#2811.create_buffer(new id wl_buffer#2813, 0, 10, 16, 40, 0) -[2619112.413] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3712) -[2619112.417] {Default Queue} -> wl_surface#3712.attach(wl_buffer#2814, 0, 0) -[2619112.421] {Default Queue} -> wl_surface#3712.commit() -[2619112.425] {Default Queue} -> wl_surface#3712.attach(wl_buffer#2814, 0, 0) -[2619112.429] {Default Queue} -> wl_surface#3712.commit() -[2619112.433] {Default Queue} wl_pointer#2537.motion(187310742, 19.80078125, 15.00000000) -[2619112.437] {Default Queue} wl_pointer#2569.motion(187310742, 19.80078125, 15.00000000) -[2619112.441] {Default Queue} wl_pointer#2601.motion(187310742, 19.80078125, 15.00000000) -[2619112.445] {Default Queue} wl_pointer#2633.motion(187310742, 19.80078125, 15.00000000) -[2619112.449] {Default Queue} wl_pointer#2665.motion(187310742, 19.80078125, 15.00000000) -[2619112.453] {Default Queue} wl_pointer#2697.motion(187310742, 19.80078125, 15.00000000) -[2619112.457] {Default Queue} wl_pointer#2729.motion(187310742, 19.80078125, 15.00000000) -[2619112.461] {Default Queue} wl_pointer#2761.motion(187310742, 19.80078125, 15.00000000) -[2619112.465] {Default Queue} wl_pointer#2793.motion(187310742, 19.80078125, 15.00000000) -[2619112.469] {Default Queue} wl_pointer#2825.motion(187310742, 19.80078125, 15.00000000) -[2619112.473] {Default Queue} wl_pointer#2857.motion(187310742, 19.80078125, 15.00000000) -[2619112.477] {Default Queue} wl_pointer#2889.motion(187310742, 19.80078125, 15.00000000) -[2619112.481] {Default Queue} wl_pointer#2921.motion(187310742, 19.80078125, 15.00000000) -[2619112.485] {Default Queue} wl_pointer#2953.motion(187310742, 19.80078125, 15.00000000) -[2619112.489] {Default Queue} wl_pointer#2985.motion(187310742, 19.80078125, 15.00000000) -[2619112.493] {Default Queue} wl_pointer#3017.motion(187310742, 19.80078125, 15.00000000) -[2619112.497] {Default Queue} wl_pointer#3049.motion(187310742, 19.80078125, 15.00000000) -[2619112.501] {Default Queue} wl_pointer#3081.motion(187310742, 19.80078125, 15.00000000) -[2619112.505] {Default Queue} wl_pointer#3113.motion(187310742, 19.80078125, 15.00000000) -[2619112.509] {Default Queue} wl_pointer#3145.motion(187310742, 19.80078125, 15.00000000) -[2619112.513] {Default Queue} wl_pointer#3177.motion(187310742, 19.80078125, 15.00000000) -[2619112.517] {Default Queue} wl_pointer#3209.motion(187310742, 19.80078125, 15.00000000) -[2619112.521] {Default Queue} wl_pointer#3241.motion(187310742, 19.80078125, 15.00000000) -[2619112.525] {Default Queue} wl_pointer#3273.motion(187310742, 19.80078125, 15.00000000) -[2619112.533] {Default Queue} wl_pointer#3305.motion(187310742, 19.80078125, 15.00000000) -[2619112.539] {Default Queue} wl_pointer#3337.motion(187310742, 19.80078125, 15.00000000) -[2619112.543] {Default Queue} wl_pointer#3369.motion(187310742, 19.80078125, 15.00000000) -[2619112.547] {Default Queue} wl_pointer#3401.motion(187310742, 19.80078125, 15.00000000) -[2619112.551] {Default Queue} wl_pointer#3433.motion(187310742, 19.80078125, 15.00000000) -[2619112.555] {Default Queue} wl_pointer#3465.motion(187310742, 19.80078125, 15.00000000) -[2619112.559] {Default Queue} wl_pointer#3497.motion(187310742, 19.80078125, 15.00000000) -[2619112.563] {Default Queue} wl_pointer#3529.motion(187310742, 19.80078125, 15.00000000) -[2619112.567] {Default Queue} wl_pointer#3561.motion(187310742, 19.80078125, 15.00000000) -[2619112.571] {Default Queue} wl_pointer#3593.motion(187310742, 19.80078125, 15.00000000) -[2619112.575] {Default Queue} wl_pointer#3625.motion(187310742, 19.80078125, 15.00000000) -[2619112.579] {Default Queue} wl_pointer#3657.motion(187310742, 19.80078125, 15.00000000) -[2619112.583] {Default Queue} wl_pointer#3695.motion(187310742, 19.80078125, 15.00000000) -[2619112.587] {Default Queue} -> wl_surface#2951.attach(wl_buffer#3037, 0, 0) -[2619112.591] {Default Queue} -> wl_surface#2951.commit() -[2619113.654] {Default Queue} -> wl_surface#2951.attach(wl_buffer#3037, 0, 0) -[2619113.659] {Default Queue} -> wl_surface#2951.commit() -[2619113.666] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 408) -[2619113.670] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 407) -[2619113.674] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2619113.678] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2619113.684] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 408) -[2619113.688] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 407) -[2619113.692] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2619113.696] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2619113.701] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 408) -[2619113.705] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 407) -[2619113.709] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2619113.713] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2619113.717] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 408) -[2619113.721] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 407) -[2619113.725] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2619113.728] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2619113.733] {Default Queue} -> wl_region#2975.subtract(0, 0, 485, 408) -[2619113.737] {Default Queue} -> wl_region#2975.add(-483, -406, 484, 407) -[2619113.740] {Default Queue} -> wl_surface#2951.set_opaque_region(wl_region#2976) -[2619113.744] {Default Queue} -> wl_surface#2951.set_input_region(wl_region#2975) -[2619113.749] {Default Queue} -> wl_surface#2951.attach(wl_buffer#3037, 0, 0) -[2619113.753] {Default Queue} -> wl_surface#2951.commit() -[2619113.756] {Default Queue} -> wl_surface#2951.attach(wl_buffer#3037, 0, 0) -[2619113.760] {Default Queue} -> wl_surface#2951.commit() -[2619113.766] {Default Queue} -> wl_surface#2951.attach(wl_buffer#3037, 0, 0) -[2619113.770] {Default Queue} -> wl_surface#2951.commit() -[2619113.775] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) -[2619113.779] {Default Queue} -> wl_surface#2919.commit() -[2619114.840] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) -[2619114.844] {Default Queue} -> wl_surface#2919.commit() -[2619114.850] {Default Queue} -> wl_region#2943.subtract(0, 0, 485, 408) -[2619114.854] {Default Queue} -> wl_region#2943.add(-483, -386, 485, 388) -[2619114.858] {Default Queue} -> wl_surface#2919.set_opaque_region(wl_region#2944) -[2619114.862] {Default Queue} -> wl_surface#2919.set_input_region(wl_region#2943) -[2619114.870] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) -[2619114.878] {Default Queue} -> wl_surface#2919.commit() -[2619114.882] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) -[2619114.886] {Default Queue} -> wl_surface#2919.commit() -[2619114.891] {Default Queue} -> wl_surface#2919.attach(wl_buffer#349, 0, 0) -[2619114.895] {Default Queue} -> wl_surface#2919.commit() -[2619114.899] {Default Queue} -> wl_region#2879.subtract(0, 0, 109, 161) -[2619114.905] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 403) -[2619114.909] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 403) -[2619114.913] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2619114.916] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2619115.000] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 403) -[2619115.004] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 403) -[2619115.008] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2619115.012] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2619115.019] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) -[2619115.023] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) -[2619115.088] {Default Queue} -> wl_region#2911.subtract(0, 0, 482, 403) -[2619115.093] {Default Queue} -> wl_region#2911.add(-480, -383, 482, 403) -[2619115.096] {Default Queue} -> wl_surface#2887.set_opaque_region(wl_region#2912) -[2619115.100] {Default Queue} -> wl_surface#2887.set_input_region(wl_region#2911) -[2619115.105] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) -[2619115.109] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) -[2619115.115] {Default Queue} -> wl_region#2943.subtract(0, 0, 485, 408) -[2619115.119] {Default Queue} -> wl_region#2943.add(-483, -386, 485, 388) -[2619115.122] {Default Queue} -> wl_surface#2919.set_opaque_region(wl_region#2944) -[2619115.126] {Default Queue} -> wl_surface#2919.set_input_region(wl_region#2943) -[2619115.130] {Default Queue} -> wl_surface#2855.damage(0, 0, 109, 161) -[2619115.134] {Default Queue} -> wl_region#2879.subtract(0, 0, 592, 547) -[2619115.138] {Default Queue} -> wl_region#2879.add(-480, -383, 589, 544) -[2619115.142] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) -[2619115.146] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) -[2619115.149] {Default Queue} -> wl_surface#2887.damage(0, 0, 2, 20) -[2619115.153] {Default Queue} -> wl_surface#2951.damage(0, 0, 2, 2) -[2619115.157] {Default Queue} -> wl_surface#2919.damage(0, 0, 2, 2) -[2619115.161] {Default Queue} -> wl_surface#2855.damage(0, 0, 109, 161) -[2619115.174] {Default Queue} -> wl_buffer#3736.destroy() -[2619115.179] {Default Queue} -> wl_buffer#3737.destroy() -[2619115.183] {Default Queue} -> wl_shm_pool#3734.destroy() -[2619115.186] {Default Queue} -> wl_shm_pool#3735.destroy() -[2619115.260] {Default Queue} -> wl_shm#2863.create_pool(new id wl_shm_pool#2491, fd 575, 70196) -[2619115.265] {Default Queue} -> wl_shm#2863.create_pool(new id wl_shm_pool#2492, fd 578, 70196) -[2619115.270] {Default Queue} -> wl_shm_pool#2491.create_buffer(new id wl_buffer#2493, 0, 109, 161, 436, 0) -[2619115.274] {Default Queue} -> wl_shm_pool#2492.create_buffer(new id wl_buffer#2494, 0, 109, 161, 436, 0) -[2619115.295] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2493, 0, 0) -[2619115.299] {Default Queue} -> wl_surface#2855.commit() -[2619115.319] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2493, 0, 0) -[2619115.324] {Default Queue} -> wl_surface#2855.commit() -[2619115.331] {Default Queue} -> wl_region#2879.subtract(0, 0, 592, 547) -[2619115.335] {Default Queue} -> wl_region#2879.add(-480, -383, 589, 544) -[2619115.339] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) -[2619115.343] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) -[2619115.349] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2493, 0, 0) -[2619115.353] {Default Queue} -> wl_surface#2855.commit() -[2619115.364] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2493, 0, 0) -[2619115.370] {Default Queue} -> wl_surface#2855.commit() -[2619116.435] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2493, 0, 0) -[2619116.439] {Default Queue} -> wl_surface#2855.commit() -[2619116.446] {Default Queue} -> wl_region#2879.subtract(0, 0, 592, 547) -[2619116.452] {Default Queue} -> wl_region#2879.add(-480, -383, 589, 544) -[2619116.456] {Default Queue} -> wl_surface#2855.set_opaque_region(wl_region#2880) -[2619116.459] {Default Queue} -> wl_surface#2855.set_input_region(wl_region#2879) -[2619116.466] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2493, 0, 0) -[2619116.470] {Default Queue} -> wl_surface#2855.commit() -[2619116.474] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2493, 0, 0) -[2619116.478] {Default Queue} -> wl_surface#2855.commit() -[2619116.484] {Default Queue} -> wl_surface#2855.attach(wl_buffer#2493, 0, 0) -[2619116.488] {Default Queue} -> wl_surface#2855.commit() -[2619116.499] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) -[2619116.503] {Default Queue} -> wl_surface#2823.commit() -[2619117.047] {Display Queue} wl_display#1.delete_id(2654) -[2619117.052] {Display Queue} wl_display#1.delete_id(2653) -[2619117.056] {Display Queue} wl_display#1.delete_id(2652) -[2619117.059] {Display Queue} wl_display#1.delete_id(2651) -[2619117.063] {Display Queue} wl_display#1.delete_id(3723) -[2619117.067] {Display Queue} wl_display#1.delete_id(3732) -[2619117.070] {Display Queue} wl_display#1.delete_id(3733) -[2619117.074] {Display Queue} wl_display#1.delete_id(3730) -[2619117.078] {Display Queue} wl_display#1.delete_id(3731) -[2619117.081] {Default Queue} wl_pointer#24.motion(187310747, 19.80078125, 15.39843750) -[2619117.086] {Default Queue} wl_pointer#81.motion(187310747, 19.80078125, 15.39843750) -[2619117.091] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619117.095] {Default Queue} wl_pointer#105.motion(187310747, 19.80078125, 15.39843750) -[2619117.099] {Default Queue} wl_pointer#137.motion(187310747, 19.80078125, 15.39843750) -[2619117.103] {Default Queue} wl_pointer#169.motion(187310747, 19.80078125, 15.39843750) -[2619117.107] {Default Queue} wl_pointer#201.motion(187310747, 19.80078125, 15.39843750) -[2619117.111] {Default Queue} wl_pointer#233.motion(187310747, 19.80078125, 15.39843750) -[2619117.115] {Default Queue} wl_pointer#265.motion(187310747, 19.80078125, 15.39843750) -[2619117.119] {Default Queue} wl_pointer#297.motion(187310747, 19.80078125, 15.39843750) -[2619117.123] {Default Queue} wl_pointer#329.motion(187310747, 19.80078125, 15.39843750) -[2619117.127] {Default Queue} wl_pointer#361.motion(187310747, 19.80078125, 15.39843750) -[2619117.130] {Default Queue} wl_pointer#393.motion(187310747, 19.80078125, 15.39843750) -[2619117.134] {Default Queue} wl_pointer#425.motion(187310747, 19.80078125, 15.39843750) -[2619117.138] {Default Queue} wl_pointer#457.motion(187310747, 19.80078125, 15.39843750) -[2619117.142] {Default Queue} wl_pointer#489.motion(187310747, 19.80078125, 15.39843750) -[2619117.146] {Default Queue} wl_pointer#521.motion(187310747, 19.80078125, 15.39843750) -[2619117.150] {Default Queue} wl_pointer#553.motion(187310747, 19.80078125, 15.39843750) -[2619117.154] {Default Queue} wl_pointer#585.motion(187310747, 19.80078125, 15.39843750) -[2619117.158] {Default Queue} wl_pointer#617.motion(187310747, 19.80078125, 15.39843750) -[2619117.162] {Default Queue} wl_pointer#649.motion(187310747, 19.80078125, 15.39843750) -[2619117.166] {Default Queue} wl_pointer#681.motion(187310747, 19.80078125, 15.39843750) -[2619117.170] {Default Queue} wl_pointer#713.motion(187310747, 19.80078125, 15.39843750) -[2619117.174] {Default Queue} wl_pointer#745.motion(187310747, 19.80078125, 15.39843750) -[2619117.178] {Default Queue} wl_pointer#777.motion(187310747, 19.80078125, 15.39843750) -[2619117.182] {Default Queue} wl_pointer#809.motion(187310747, 19.80078125, 15.39843750) -[2619117.186] {Default Queue} wl_pointer#841.motion(187310747, 19.80078125, 15.39843750) -[2619117.190] {Default Queue} wl_pointer#873.motion(187310747, 19.80078125, 15.39843750) -[2619117.197] {Default Queue} wl_pointer#905.motion(187310747, 19.80078125, 15.39843750) -[2619117.202] {Default Queue} wl_pointer#937.motion(187310747, 19.80078125, 15.39843750) -[2619117.206] {Default Queue} wl_pointer#969.motion(187310747, 19.80078125, 15.39843750) -[2619117.210] {Default Queue} wl_pointer#1001.motion(187310747, 19.80078125, 15.39843750) -[2619117.214] {Default Queue} wl_pointer#1033.motion(187310747, 19.80078125, 15.39843750) -[2619117.218] {Default Queue} wl_pointer#1065.motion(187310747, 19.80078125, 15.39843750) -[2619117.222] {Default Queue} wl_pointer#1097.motion(187310747, 19.80078125, 15.39843750) -[2619117.226] {Default Queue} wl_pointer#1129.motion(187310747, 19.80078125, 15.39843750) -[2619117.230] {Default Queue} wl_pointer#1161.motion(187310747, 19.80078125, 15.39843750) -[2619117.234] {Default Queue} wl_pointer#1193.motion(187310747, 19.80078125, 15.39843750) -[2619117.238] {Default Queue} wl_pointer#1225.motion(187310747, 19.80078125, 15.39843750) -[2619117.242] {Default Queue} wl_pointer#1257.motion(187310747, 19.80078125, 15.39843750) -[2619117.246] {Default Queue} wl_pointer#1289.motion(187310747, 19.80078125, 15.39843750) -[2619117.250] {Default Queue} wl_pointer#1321.motion(187310747, 19.80078125, 15.39843750) -[2619117.253] {Default Queue} wl_pointer#1353.motion(187310747, 19.80078125, 15.39843750) -[2619117.257] {Default Queue} wl_pointer#1385.motion(187310747, 19.80078125, 15.39843750) -[2619117.261] {Default Queue} wl_pointer#1417.motion(187310747, 19.80078125, 15.39843750) -[2619117.265] {Default Queue} wl_pointer#1449.motion(187310747, 19.80078125, 15.39843750) -[2619117.269] {Default Queue} wl_pointer#1481.motion(187310747, 19.80078125, 15.39843750) -[2619117.273] {Default Queue} wl_pointer#1513.motion(187310747, 19.80078125, 15.39843750) -[2619117.277] {Default Queue} wl_pointer#1545.motion(187310747, 19.80078125, 15.39843750) -[2619117.281] {Default Queue} wl_pointer#1577.motion(187310747, 19.80078125, 15.39843750) -[2619117.285] {Default Queue} wl_pointer#1609.motion(187310747, 19.80078125, 15.39843750) -[2619117.289] {Default Queue} wl_pointer#1641.motion(187310747, 19.80078125, 15.39843750) -[2619117.293] {Default Queue} wl_pointer#1673.motion(187310747, 19.80078125, 15.39843750) -[2619117.296] {Default Queue} wl_pointer#1705.motion(187310747, 19.80078125, 15.39843750) -[2619117.300] {Default Queue} wl_pointer#1737.motion(187310747, 19.80078125, 15.39843750) -[2619117.304] {Default Queue} wl_pointer#1762.motion(187310747, 19.80078125, 15.39843750) -[2619117.308] {Default Queue} wl_pointer#1801.motion(187310747, 19.80078125, 15.39843750) -[2619117.312] {Default Queue} wl_pointer#1833.motion(187310747, 19.80078125, 15.39843750) -[2619117.316] {Default Queue} wl_pointer#1865.motion(187310747, 19.80078125, 15.39843750) -[2619117.320] {Default Queue} wl_pointer#1897.motion(187310747, 19.80078125, 15.39843750) -[2619117.324] {Default Queue} wl_pointer#1929.motion(187310747, 19.80078125, 15.39843750) -[2619117.328] {Default Queue} wl_pointer#1961.motion(187310747, 19.80078125, 15.39843750) -[2619117.332] {Default Queue} wl_pointer#1993.motion(187310747, 19.80078125, 15.39843750) -[2619117.336] {Default Queue} wl_pointer#2025.motion(187310747, 19.80078125, 15.39843750) -[2619117.339] {Default Queue} wl_pointer#2057.motion(187310747, 19.80078125, 15.39843750) -[2619117.343] {Default Queue} wl_pointer#2089.motion(187310747, 19.80078125, 15.39843750) -[2619117.347] {Default Queue} wl_pointer#2121.motion(187310747, 19.80078125, 15.39843750) -[2619117.351] {Default Queue} wl_pointer#2153.motion(187310747, 19.80078125, 15.39843750) -[2619117.355] {Default Queue} wl_pointer#2185.motion(187310747, 19.80078125, 15.39843750) -[2619117.359] {Default Queue} wl_pointer#2217.motion(187310747, 19.80078125, 15.39843750) -[2619117.363] {Default Queue} wl_pointer#2249.motion(187310747, 19.80078125, 15.39843750) -[2619117.367] {Default Queue} wl_pointer#2281.motion(187310747, 19.80078125, 15.39843750) -[2619117.371] {Default Queue} wl_pointer#2313.motion(187310747, 19.80078125, 15.39843750) -[2619117.377] {Default Queue} wl_pointer#2345.motion(187310747, 19.80078125, 15.39843750) -[2619117.383] {Default Queue} wl_pointer#2377.motion(187310747, 19.80078125, 15.39843750) -[2619117.387] {Default Queue} wl_pointer#2409.motion(187310747, 19.80078125, 15.39843750) -[2619117.391] {Default Queue} wl_pointer#2441.motion(187310747, 19.80078125, 15.39843750) -[2619117.395] {Default Queue} wl_pointer#2473.motion(187310747, 19.80078125, 15.39843750) -[2619117.398] {Default Queue} wl_pointer#2498.motion(187310747, 19.80078125, 15.39843750) -[2619117.409] {Default Queue} -> wl_buffer#2814.destroy() -[2619117.413] {Default Queue} -> wl_buffer#2813.destroy() -[2619117.417] {Default Queue} -> wl_shm_pool#2812.destroy() -[2619117.420] {Default Queue} -> wl_shm_pool#2811.destroy() -[2619117.425] {Default Queue} -> wl_surface#3712.destroy() -[2619117.457] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3731, fd 575, 640) -[2619117.463] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3730, fd 578, 640) -[2619117.467] {Default Queue} -> wl_shm_pool#3731.create_buffer(new id wl_buffer#3733, 0, 10, 16, 40, 0) -[2619117.472] {Default Queue} -> wl_shm_pool#3730.create_buffer(new id wl_buffer#3732, 0, 10, 16, 40, 0) -[2619117.478] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3723) -[2619117.482] {Default Queue} -> wl_surface#3723.attach(wl_buffer#3733, 0, 0) -[2619117.486] {Default Queue} -> wl_surface#3723.commit() -[2619117.491] {Default Queue} -> wl_surface#3723.attach(wl_buffer#3733, 0, 0) -[2619117.495] {Default Queue} -> wl_surface#3723.commit() -[2619117.499] {Default Queue} wl_pointer#2537.motion(187310747, 19.80078125, 15.39843750) -[2619117.503] {Default Queue} wl_pointer#2569.motion(187310747, 19.80078125, 15.39843750) -[2619117.507] {Default Queue} wl_pointer#2601.motion(187310747, 19.80078125, 15.39843750) -[2619117.511] {Default Queue} wl_pointer#2633.motion(187310747, 19.80078125, 15.39843750) -[2619117.515] {Default Queue} wl_pointer#2665.motion(187310747, 19.80078125, 15.39843750) -[2619117.519] {Default Queue} wl_pointer#2697.motion(187310747, 19.80078125, 15.39843750) -[2619117.523] {Default Queue} wl_pointer#2729.motion(187310747, 19.80078125, 15.39843750) -[2619117.526] {Default Queue} wl_pointer#2761.motion(187310747, 19.80078125, 15.39843750) -[2619117.530] {Default Queue} wl_pointer#2793.motion(187310747, 19.80078125, 15.39843750) -[2619117.534] {Default Queue} wl_pointer#2825.motion(187310747, 19.80078125, 15.39843750) -[2619117.538] {Default Queue} wl_pointer#2857.motion(187310747, 19.80078125, 15.39843750) -[2619117.542] {Default Queue} wl_pointer#2889.motion(187310747, 19.80078125, 15.39843750) -[2619117.546] {Default Queue} wl_pointer#2921.motion(187310747, 19.80078125, 15.39843750) -[2619117.550] {Default Queue} wl_pointer#2953.motion(187310747, 19.80078125, 15.39843750) -[2619117.554] {Default Queue} wl_pointer#2985.motion(187310747, 19.80078125, 15.39843750) -[2619117.558] {Default Queue} wl_pointer#3017.motion(187310747, 19.80078125, 15.39843750) -[2619117.562] {Default Queue} wl_pointer#3049.motion(187310747, 19.80078125, 15.39843750) -[2619117.566] {Default Queue} wl_pointer#3081.motion(187310747, 19.80078125, 15.39843750) -[2619117.570] {Default Queue} wl_pointer#3113.motion(187310747, 19.80078125, 15.39843750) -[2619117.574] {Default Queue} wl_pointer#3145.motion(187310747, 19.80078125, 15.39843750) -[2619117.578] {Default Queue} wl_pointer#3177.motion(187310747, 19.80078125, 15.39843750) -[2619117.582] {Default Queue} wl_pointer#3209.motion(187310747, 19.80078125, 15.39843750) -[2619117.586] {Default Queue} wl_pointer#3241.motion(187310747, 19.80078125, 15.39843750) -[2619117.590] {Default Queue} wl_pointer#3273.motion(187310747, 19.80078125, 15.39843750) -[2619117.594] {Default Queue} wl_pointer#3305.motion(187310747, 19.80078125, 15.39843750) -[2619117.598] {Default Queue} wl_pointer#3337.motion(187310747, 19.80078125, 15.39843750) -[2619117.602] {Default Queue} wl_pointer#3369.motion(187310747, 19.80078125, 15.39843750) -[2619117.606] {Default Queue} wl_pointer#3401.motion(187310747, 19.80078125, 15.39843750) -[2619117.613] {Default Queue} wl_pointer#3433.motion(187310747, 19.80078125, 15.39843750) -[2619117.619] {Default Queue} wl_pointer#3465.motion(187310747, 19.80078125, 15.39843750) -[2619117.623] {Default Queue} wl_pointer#3497.motion(187310747, 19.80078125, 15.39843750) -[2619117.627] {Default Queue} wl_pointer#3529.motion(187310747, 19.80078125, 15.39843750) -[2619117.631] {Default Queue} wl_pointer#3561.motion(187310747, 19.80078125, 15.39843750) -[2619117.635] {Default Queue} wl_pointer#3593.motion(187310747, 19.80078125, 15.39843750) -[2619117.639] {Default Queue} wl_pointer#3625.motion(187310747, 19.80078125, 15.39843750) -[2619117.643] {Default Queue} wl_pointer#3657.motion(187310747, 19.80078125, 15.39843750) -[2619117.647] {Default Queue} wl_pointer#3695.motion(187310747, 19.80078125, 15.39843750) -[2619117.662] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) -[2619117.667] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) -[2619117.671] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2619117.674] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2619117.682] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) -[2619117.686] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) -[2619117.689] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2619117.693] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2619117.699] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) -[2619117.703] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) -[2619117.706] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2619117.710] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2619117.715] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) -[2619117.719] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) -[2619117.723] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2619117.727] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2619117.733] {Default Queue} -> wl_region#2847.subtract(0, 0, 595, 550) -[2619117.737] {Default Queue} -> wl_region#2847.add(-20, -383, 135, 550) -[2619117.741] {Default Queue} -> wl_surface#2823.set_opaque_region(wl_region#2848) -[2619117.744] {Default Queue} -> wl_surface#2823.set_input_region(wl_region#2847) -[2619117.751] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) -[2619117.755] {Default Queue} -> wl_surface#2823.commit() -[2619117.760] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) -[2619117.764] {Default Queue} -> wl_surface#2823.commit() -[2619117.770] {Default Queue} -> wl_surface#2823.attach(wl_buffer#445, 0, 0) -[2619117.774] {Default Queue} -> wl_surface#2823.commit() -[2619117.812] {Default Queue} -> wl_surface#2087.attach(wl_buffer#701, 0, 0) -[2619117.817] {Default Queue} -> wl_surface#2087.commit() -[2619117.824] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) -[2619117.828] {Default Queue} -> wl_surface#3079.commit() -[2619118.867] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) -[2619118.873] {Default Queue} -> wl_surface#3079.commit() -[2619118.886] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 570) -[2619118.891] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 570) -[2619118.896] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2619118.899] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2619118.984] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 570) -[2619118.989] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 570) -[2619118.993] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2619118.997] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2619119.004] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) -[2619119.008] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) -[2619119.066] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 570) -[2619119.074] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 570) -[2619119.080] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2619119.084] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2619119.089] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) -[2619119.093] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) -[2619119.098] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) -[2619119.102] {Default Queue} -> wl_surface#3079.commit() -[2619119.106] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) -[2619119.110] {Default Queue} -> wl_surface#3079.commit() -[2619119.115] {Default Queue} -> wl_surface#3079.attach(wl_buffer#2141, 0, 0) -[2619119.119] {Default Queue} -> wl_surface#3079.commit() -[2619119.125] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2619119.129] {Default Queue} -> wl_surface#3175.commit() -[2619120.190] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2619120.195] {Default Queue} -> wl_surface#3175.commit() -[2619120.202] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619120.206] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619120.210] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619120.214] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619120.222] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619120.226] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619120.230] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619120.233] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619120.239] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619120.243] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619120.247] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619120.251] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619120.255] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619120.259] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619120.263] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619120.267] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619120.272] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619120.276] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619120.280] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619120.283] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619120.290] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619120.294] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619120.297] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619120.301] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619120.305] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619120.309] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619120.313] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619120.317] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619120.321] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619120.325] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619120.329] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619120.333] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619120.337] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619120.341] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619120.345] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619120.349] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619120.358] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619120.363] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619120.367] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619120.374] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619120.380] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619120.384] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619120.387] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619120.391] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619120.396] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619120.400] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619120.404] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619120.408] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619120.413] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619120.417] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619120.420] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619120.424] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619120.428] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2619120.432] {Default Queue} -> wl_surface#3175.commit() -[2619120.436] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2619120.439] {Default Queue} -> wl_surface#3175.commit() -[2619120.445] {Default Queue} -> wl_surface#3175.attach(wl_buffer#3197, 0, 0) -[2619120.449] {Default Queue} -> wl_surface#3175.commit() -[2619120.453] {Default Queue} -> wl_region#3231.subtract(0, 0, 2, 2) -[2619120.457] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 554) -[2619120.461] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 554) -[2619120.465] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.469] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619120.473] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2619120.485] {Default Queue} -> wl_buffer#3740.destroy() -[2619120.490] {Default Queue} -> wl_buffer#3741.destroy() -[2619120.493] {Default Queue} -> wl_shm_pool#3738.destroy() -[2619120.497] {Default Queue} -> wl_shm_pool#3739.destroy() -[2619120.537] {Default Queue} -> wl_shm#3215.create_pool(new id wl_shm_pool#2651, fd 575, 16) -[2619120.543] {Default Queue} -> wl_shm#3215.create_pool(new id wl_shm_pool#2652, fd 578, 16) -[2619120.547] {Default Queue} -> wl_shm_pool#2651.create_buffer(new id wl_buffer#2653, 0, 2, 2, 8, 0) -[2619120.551] {Default Queue} -> wl_shm_pool#2652.create_buffer(new id wl_buffer#2654, 0, 2, 2, 8, 0) -[2619120.558] {Default Queue} -> wl_surface#3207.attach(wl_buffer#2653, 0, 0) -[2619120.562] {Default Queue} -> wl_surface#3207.commit() -[2619120.566] {Default Queue} -> wl_surface#3207.attach(wl_buffer#2653, 0, 0) -[2619120.570] {Default Queue} -> wl_surface#3207.commit() -[2619120.579] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619120.583] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619120.587] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.591] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619120.597] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619120.601] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619120.605] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.608] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619120.613] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619120.617] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619120.621] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.624] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619120.629] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619120.633] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619120.637] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.640] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619120.647] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619120.654] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619120.660] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.663] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619120.673] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619120.677] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619120.681] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.684] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619120.689] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619120.693] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619120.697] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.700] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619120.705] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619120.709] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619120.713] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.716] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619120.721] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619120.725] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619120.728] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.732] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619120.737] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619120.741] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619120.744] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.748] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619120.761] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619120.765] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619120.769] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.773] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619120.780] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619120.784] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619120.788] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.791] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619120.798] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619120.802] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619120.806] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.809] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619120.815] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619120.820] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619120.823] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.827] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619120.831] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619120.835] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619120.839] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.843] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619120.848] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619120.852] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619120.856] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.859] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619120.868] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619120.872] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619120.876] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.880] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619120.884] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619120.890] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619120.896] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.899] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619120.905] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619120.909] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619120.913] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.917] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619120.921] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619120.925] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619120.929] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.932] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619120.937] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619120.940] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619120.944] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.948] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619120.952] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619120.956] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619120.960] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619120.964] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619121.001] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619121.005] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619121.009] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619121.013] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619121.019] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2619121.023] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2619121.033] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619121.037] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619121.041] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619121.045] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619121.051] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619121.054] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619121.058] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619121.062] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619121.093] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619121.098] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619121.102] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619121.105] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619121.110] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2619121.114] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2619121.121] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619121.126] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619121.129] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619121.133] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619121.139] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619121.143] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619121.147] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619121.151] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619121.155] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619121.159] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619121.163] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619121.166] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619121.171] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619121.175] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619121.181] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619121.187] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619121.191] {Default Queue} -> wl_surface#3207.attach(wl_buffer#2653, 0, 0) -[2619121.195] {Default Queue} -> wl_surface#3207.commit() -[2619121.201] {Default Queue} -> wl_surface#3207.attach(wl_buffer#2653, 0, 0) -[2619121.205] {Default Queue} -> wl_surface#3207.commit() -[2619122.269] {Default Queue} -> wl_surface#3207.attach(wl_buffer#2653, 0, 0) -[2619122.274] {Default Queue} -> wl_surface#3207.commit() -[2619122.281] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.285] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.289] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.293] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.298] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.302] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.306] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.310] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.314] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.318] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.322] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.326] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.330] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.334] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.338] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.342] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.348] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.352] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.356] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.359] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.368] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.372] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.376] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.380] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.384] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.388] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.392] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.396] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.400] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.404] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.408] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.411] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.416] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.420] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.423] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.427] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.431] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.435] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.439] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.443] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.454] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.458] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.462] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.466] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.471] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.478] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.484] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.487] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.494] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.498] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.502] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.505] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.511] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.515] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.519] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.523] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.527] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.531] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.535] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.538] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.543] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.547] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.550] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.554] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.558] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.562] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.566] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.570] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.574] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.578] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.582] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.585] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.591] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.595] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.599] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.602] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.607] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.610] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.614] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.618] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.622] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.626] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.630] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.634] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.638] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.642] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.646] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.650] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.679] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.684] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.687] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.691] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.696] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2619122.700] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2619122.710] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.715] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.718] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.722] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.730] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.736] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.740] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.743] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.769] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.774] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.778] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.781] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.786] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2619122.790] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2619122.797] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.803] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.806] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.810] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.815] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.819] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.823] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.826] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.831] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.835] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.838] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.842] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.846] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619122.850] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619122.854] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619122.858] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619122.863] {Default Queue} -> wl_surface#3207.attach(wl_buffer#2653, 0, 0) -[2619122.867] {Default Queue} -> wl_surface#3207.commit() -[2619122.874] {Default Queue} -> wl_surface#3207.attach(wl_buffer#2653, 0, 0) -[2619122.879] {Default Queue} -> wl_surface#3207.commit() -[2619122.885] {Default Queue} -> wl_surface#3207.attach(wl_buffer#2653, 0, 0) -[2619122.888] {Default Queue} -> wl_surface#3207.commit() -[2619122.892] {Default Queue} -> wl_region#3167.subtract(0, 0, 2, 2) -[2619122.898] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619122.902] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619122.906] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619122.909] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619122.915] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619122.919] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619122.923] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619122.927] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619122.932] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619122.936] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619122.940] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619122.943] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619122.948] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619122.952] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619122.955] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619122.959] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619122.964] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619122.968] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619122.972] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619122.975] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619122.984] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619122.989] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619122.993] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619122.997] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619123.001] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619123.005] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619123.009] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619123.013] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619123.017] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619123.021] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619123.025] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619123.029] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619123.033] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619123.037] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619123.041] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619123.044] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619123.053] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619123.057] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619123.061] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619123.065] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619123.069] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619123.073] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619123.077] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619123.080] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619123.085] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619123.089] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619123.093] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619123.097] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619123.102] {Default Queue} -> wl_region#3199.subtract(0, 0, 38, 574) -[2619123.106] {Default Queue} -> wl_region#3199.add(-9, -573, 24, 574) -[2619123.109] {Default Queue} -> wl_surface#3175.set_opaque_region(wl_region#3200) -[2619123.113] {Default Queue} -> wl_surface#3175.set_input_region(wl_region#3199) -[2619123.120] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619123.124] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619123.128] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619123.131] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619123.136] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619123.140] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619123.144] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619123.147] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619123.152] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619123.156] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619123.159] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619123.163] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619123.167] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619123.171] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619123.175] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619123.179] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619123.185] {Default Queue} -> wl_region#3231.subtract(0, 0, 24, 574) -[2619123.189] {Default Queue} -> wl_region#3231.add(-23, -573, 24, 574) -[2619123.193] {Default Queue} -> wl_surface#3207.set_opaque_region(wl_region#3232) -[2619123.196] {Default Queue} -> wl_surface#3207.set_input_region(wl_region#3231) -[2619123.200] {Default Queue} -> wl_region#3167.subtract(0, 0, 25, 555) -[2619123.205] {Default Queue} -> wl_region#3167.add(-23, -573, 24, 554) -[2619123.211] {Default Queue} -> wl_surface#3143.set_opaque_region(wl_region#3168) -[2619123.214] {Default Queue} -> wl_surface#3143.set_input_region(wl_region#3167) -[2619123.218] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2619123.222] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2619123.226] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) -[2619123.240] {Default Queue} -> wl_buffer#3165.destroy() -[2619123.245] {Default Queue} -> wl_buffer#3166.destroy() -[2619123.249] {Default Queue} -> wl_shm_pool#3163.destroy() -[2619123.253] {Default Queue} -> wl_shm_pool#3164.destroy() -[2619123.292] {Default Queue} -> wl_shm#3151.create_pool(new id wl_shm_pool#3720, fd 575, 16) -[2619123.297] {Default Queue} -> wl_shm#3151.create_pool(new id wl_shm_pool#3324, fd 578, 16) -[2619123.301] {Default Queue} -> wl_shm_pool#3720.create_buffer(new id wl_buffer#2075, 0, 2, 2, 8, 0) -[2619123.306] {Default Queue} -> wl_shm_pool#3324.create_buffer(new id wl_buffer#2076, 0, 2, 2, 8, 0) -[2619123.312] {Default Queue} -> wl_surface#3143.attach(wl_buffer#2075, 0, 0) -[2619123.316] {Default Queue} -> wl_surface#3143.commit() -[2619123.321] {Default Queue} -> wl_surface#3143.attach(wl_buffer#2075, 0, 0) -[2619123.325] {Default Queue} -> wl_surface#3143.commit() -[2619123.331] {Default Queue} -> wl_region#3167.subtract(0, 0, 25, 575) -[2619123.335] {Default Queue} -> wl_region#3167.add(-23, -573, 24, 574) -[2619123.339] {Default Queue} -> wl_surface#3143.set_opaque_region(wl_region#3168) -[2619123.343] {Default Queue} -> wl_surface#3143.set_input_region(wl_region#3167) -[2619123.347] {Default Queue} -> wl_surface#3143.attach(wl_buffer#2075, 0, 0) -[2619123.357] {Default Queue} -> wl_surface#3143.commit() -[2619123.363] {Default Queue} -> wl_surface#3143.attach(wl_buffer#2075, 0, 0) -[2619123.367] {Default Queue} -> wl_surface#3143.commit() -[2619124.428] {Default Queue} -> wl_surface#3143.attach(wl_buffer#2075, 0, 0) -[2619124.433] {Default Queue} -> wl_surface#3143.commit() -[2619124.438] {Default Queue} -> wl_region#3167.subtract(0, 0, 25, 575) -[2619124.442] {Default Queue} -> wl_region#3167.add(-23, -573, 24, 574) -[2619124.445] {Default Queue} -> wl_surface#3143.set_opaque_region(wl_region#3168) -[2619124.449] {Default Queue} -> wl_surface#3143.set_input_region(wl_region#3167) -[2619124.453] {Default Queue} -> wl_surface#3143.attach(wl_buffer#2075, 0, 0) -[2619124.457] {Default Queue} -> wl_surface#3143.commit() -[2619124.461] {Default Queue} -> wl_surface#3143.attach(wl_buffer#2075, 0, 0) -[2619124.465] {Default Queue} -> wl_surface#3143.commit() -[2619124.470] {Default Queue} -> wl_surface#3143.attach(wl_buffer#2075, 0, 0) -[2619124.474] {Default Queue} -> wl_surface#3143.commit() -[2619124.479] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) -[2619124.483] {Default Queue} -> wl_surface#3111.commit() -[2619125.542] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) -[2619125.547] {Default Queue} -> wl_surface#3111.commit() -[2619125.552] {Default Queue} -> wl_region#3135.subtract(0, 0, 25, 575) -[2619125.556] {Default Queue} -> wl_region#3135.add(-23, -553, 25, 555) -[2619125.560] {Default Queue} -> wl_surface#3111.set_opaque_region(wl_region#3136) -[2619125.564] {Default Queue} -> wl_surface#3111.set_input_region(wl_region#3135) -[2619125.568] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) -[2619125.572] {Default Queue} -> wl_surface#3111.commit() -[2619125.576] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) -[2619125.580] {Default Queue} -> wl_surface#3111.commit() -[2619125.585] {Default Queue} -> wl_surface#3111.attach(wl_buffer#2237, 0, 0) -[2619125.589] {Default Queue} -> wl_surface#3111.commit() -[2619125.593] {Default Queue} -> wl_region#3071.subtract(0, 0, 109, 161) -[2619125.599] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 570) -[2619125.603] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 570) -[2619125.613] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2619125.619] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2619125.696] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 570) -[2619125.701] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 570) -[2619125.705] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2619125.708] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2619125.715] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) -[2619125.719] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) -[2619125.776] {Default Queue} -> wl_region#3103.subtract(0, 0, 22, 570) -[2619125.780] {Default Queue} -> wl_region#3103.add(-20, -550, 22, 570) -[2619125.784] {Default Queue} -> wl_surface#3079.set_opaque_region(wl_region#3104) -[2619125.788] {Default Queue} -> wl_surface#3079.set_input_region(wl_region#3103) -[2619125.793] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) -[2619125.797] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) -[2619125.802] {Default Queue} -> wl_region#3135.subtract(0, 0, 25, 575) -[2619125.806] {Default Queue} -> wl_region#3135.add(-23, -553, 25, 555) -[2619125.810] {Default Queue} -> wl_surface#3111.set_opaque_region(wl_region#3136) -[2619125.814] {Default Queue} -> wl_surface#3111.set_input_region(wl_region#3135) -[2619125.819] {Default Queue} -> wl_surface#3047.damage(0, 0, 109, 161) -[2619125.823] {Default Queue} -> wl_region#3071.subtract(0, 0, 132, 714) -[2619125.826] {Default Queue} -> wl_region#3071.add(-20, -550, 129, 711) -[2619125.830] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) -[2619125.834] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) -[2619125.838] {Default Queue} -> wl_surface#3079.damage(0, 0, 2, 20) -[2619125.842] {Default Queue} -> wl_surface#3175.damage(0, 0, 16, 2) -[2619125.845] {Default Queue} -> wl_surface#3207.damage(0, 0, 2, 2) -[2619125.849] {Default Queue} -> wl_surface#3143.damage(0, 0, 2, 2) -[2619125.853] {Default Queue} -> wl_surface#3111.damage(0, 0, 2, 2) -[2619125.857] {Default Queue} -> wl_surface#3047.damage(0, 0, 109, 161) -[2619125.874] {Default Queue} -> wl_buffer#3744.destroy() -[2619125.879] {Default Queue} -> wl_buffer#3745.destroy() -[2619125.882] {Default Queue} -> wl_shm_pool#3742.destroy() -[2619125.886] {Default Queue} -> wl_shm_pool#3743.destroy() -[2619125.963] {Default Queue} -> wl_shm#3055.create_pool(new id wl_shm_pool#2077, fd 575, 70196) -[2619125.969] {Default Queue} -> wl_shm#3055.create_pool(new id wl_shm_pool#2078, fd 578, 70196) -[2619125.973] {Default Queue} -> wl_shm_pool#2077.create_buffer(new id wl_buffer#2108, 0, 109, 161, 436, 0) -[2619125.977] {Default Queue} -> wl_shm_pool#2078.create_buffer(new id wl_buffer#1020, 0, 109, 161, 436, 0) -[2619125.999] {Default Queue} -> wl_surface#3047.attach(wl_buffer#2108, 0, 0) -[2619126.003] {Default Queue} -> wl_surface#3047.commit() -[2619126.023] {Default Queue} -> wl_surface#3047.attach(wl_buffer#2108, 0, 0) -[2619126.028] {Default Queue} -> wl_surface#3047.commit() -[2619126.035] {Default Queue} -> wl_region#3071.subtract(0, 0, 132, 714) -[2619126.039] {Default Queue} -> wl_region#3071.add(-20, -550, 129, 711) -[2619126.043] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) -[2619126.047] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) -[2619126.053] {Default Queue} -> wl_surface#3047.attach(wl_buffer#2108, 0, 0) -[2619126.057] {Default Queue} -> wl_surface#3047.commit() -[2619126.064] {Default Queue} -> wl_surface#3047.attach(wl_buffer#2108, 0, 0) -[2619126.068] {Default Queue} -> wl_surface#3047.commit() -[2619126.984] {Display Queue} wl_display#1.delete_id(2973) -[2619126.989] {Display Queue} wl_display#1.delete_id(2974) -[2619126.993] {Display Queue} wl_display#1.delete_id(2971) -[2619126.997] {Display Queue} wl_display#1.delete_id(2972) -[2619127.000] {Display Queue} wl_display#1.delete_id(3729) -[2619127.004] {Display Queue} wl_display#1.delete_id(3728) -[2619127.008] {Display Queue} wl_display#1.delete_id(3727) -[2619127.015] {Display Queue} wl_display#1.delete_id(3726) -[2619127.021] {Display Queue} wl_display#1.delete_id(3708) -[2619127.024] {Display Queue} wl_display#1.delete_id(3736) -[2619127.028] {Display Queue} wl_display#1.delete_id(3737) -[2619127.032] {Display Queue} wl_display#1.delete_id(3734) -[2619127.035] {Display Queue} wl_display#1.delete_id(3735) -[2619127.039] {Display Queue} wl_display#1.delete_id(2814) -[2619127.043] {Display Queue} wl_display#1.delete_id(2813) -[2619127.046] {Display Queue} wl_display#1.delete_id(2812) -[2619127.050] {Display Queue} wl_display#1.delete_id(2811) -[2619127.054] {Display Queue} wl_display#1.delete_id(3712) -[2619127.057] {Display Queue} wl_display#1.delete_id(3740) -[2619127.061] {Display Queue} wl_display#1.delete_id(3741) -[2619127.065] {Display Queue} wl_display#1.delete_id(3738) -[2619127.068] {Display Queue} wl_display#1.delete_id(3739) -[2619127.072] {Default Queue} wl_pointer#24.motion(187310757, 19.80078125, 15.80078125) -[2619127.077] {Default Queue} wl_pointer#81.motion(187310757, 19.80078125, 15.80078125) -[2619127.082] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619127.086] {Default Queue} wl_pointer#105.motion(187310757, 19.80078125, 15.80078125) -[2619127.090] {Default Queue} wl_pointer#137.motion(187310757, 19.80078125, 15.80078125) -[2619127.094] {Default Queue} wl_pointer#169.motion(187310757, 19.80078125, 15.80078125) -[2619127.098] {Default Queue} wl_pointer#201.motion(187310757, 19.80078125, 15.80078125) -[2619127.102] {Default Queue} wl_pointer#233.motion(187310757, 19.80078125, 15.80078125) -[2619127.106] {Default Queue} wl_pointer#265.motion(187310757, 19.80078125, 15.80078125) -[2619127.110] {Default Queue} wl_pointer#297.motion(187310757, 19.80078125, 15.80078125) -[2619127.114] {Default Queue} wl_pointer#329.motion(187310757, 19.80078125, 15.80078125) -[2619127.118] {Default Queue} wl_pointer#361.motion(187310757, 19.80078125, 15.80078125) -[2619127.122] {Default Queue} wl_pointer#393.motion(187310757, 19.80078125, 15.80078125) -[2619127.126] {Default Queue} wl_pointer#425.motion(187310757, 19.80078125, 15.80078125) -[2619127.130] {Default Queue} wl_pointer#457.motion(187310757, 19.80078125, 15.80078125) -[2619127.133] {Default Queue} wl_pointer#489.motion(187310757, 19.80078125, 15.80078125) -[2619127.137] {Default Queue} wl_pointer#521.motion(187310757, 19.80078125, 15.80078125) -[2619127.141] {Default Queue} wl_pointer#553.motion(187310757, 19.80078125, 15.80078125) -[2619127.145] {Default Queue} wl_pointer#585.motion(187310757, 19.80078125, 15.80078125) -[2619127.149] {Default Queue} wl_pointer#617.motion(187310757, 19.80078125, 15.80078125) -[2619127.153] {Default Queue} wl_pointer#649.motion(187310757, 19.80078125, 15.80078125) -[2619127.157] {Default Queue} wl_pointer#681.motion(187310757, 19.80078125, 15.80078125) -[2619127.161] {Default Queue} wl_pointer#713.motion(187310757, 19.80078125, 15.80078125) -[2619127.165] {Default Queue} wl_pointer#745.motion(187310757, 19.80078125, 15.80078125) -[2619127.169] {Default Queue} wl_pointer#777.motion(187310757, 19.80078125, 15.80078125) -[2619127.173] {Default Queue} wl_pointer#809.motion(187310757, 19.80078125, 15.80078125) -[2619127.177] {Default Queue} wl_pointer#841.motion(187310757, 19.80078125, 15.80078125) -[2619127.181] {Default Queue} wl_pointer#873.motion(187310757, 19.80078125, 15.80078125) -[2619127.185] {Default Queue} wl_pointer#905.motion(187310757, 19.80078125, 15.80078125) -[2619127.189] {Default Queue} wl_pointer#937.motion(187310757, 19.80078125, 15.80078125) -[2619127.193] {Default Queue} wl_pointer#969.motion(187310757, 19.80078125, 15.80078125) -[2619127.197] {Default Queue} wl_pointer#1001.motion(187310757, 19.80078125, 15.80078125) -[2619127.201] {Default Queue} wl_pointer#1033.motion(187310757, 19.80078125, 15.80078125) -[2619127.205] {Default Queue} wl_pointer#1065.motion(187310757, 19.80078125, 15.80078125) -[2619127.209] {Default Queue} wl_pointer#1097.motion(187310757, 19.80078125, 15.80078125) -[2619127.212] {Default Queue} wl_pointer#1129.motion(187310757, 19.80078125, 15.80078125) -[2619127.219] {Default Queue} wl_pointer#1161.motion(187310757, 19.80078125, 15.80078125) -[2619127.225] {Default Queue} wl_pointer#1193.motion(187310757, 19.80078125, 15.80078125) -[2619127.228] {Default Queue} wl_pointer#1225.motion(187310757, 19.80078125, 15.80078125) -[2619127.232] {Default Queue} wl_pointer#1257.motion(187310757, 19.80078125, 15.80078125) -[2619127.236] {Default Queue} wl_pointer#1289.motion(187310757, 19.80078125, 15.80078125) -[2619127.240] {Default Queue} wl_pointer#1321.motion(187310757, 19.80078125, 15.80078125) -[2619127.244] {Default Queue} wl_pointer#1353.motion(187310757, 19.80078125, 15.80078125) -[2619127.248] {Default Queue} wl_pointer#1385.motion(187310757, 19.80078125, 15.80078125) -[2619127.252] {Default Queue} wl_pointer#1417.motion(187310757, 19.80078125, 15.80078125) -[2619127.256] {Default Queue} wl_pointer#1449.motion(187310757, 19.80078125, 15.80078125) -[2619127.260] {Default Queue} wl_pointer#1481.motion(187310757, 19.80078125, 15.80078125) -[2619127.264] {Default Queue} wl_pointer#1513.motion(187310757, 19.80078125, 15.80078125) -[2619127.268] {Default Queue} wl_pointer#1545.motion(187310757, 19.80078125, 15.80078125) -[2619127.272] {Default Queue} wl_pointer#1577.motion(187310757, 19.80078125, 15.80078125) -[2619127.276] {Default Queue} wl_pointer#1609.motion(187310757, 19.80078125, 15.80078125) -[2619127.280] {Default Queue} wl_pointer#1641.motion(187310757, 19.80078125, 15.80078125) -[2619127.283] {Default Queue} wl_pointer#1673.motion(187310757, 19.80078125, 15.80078125) -[2619127.287] {Default Queue} wl_pointer#1705.motion(187310757, 19.80078125, 15.80078125) -[2619127.291] {Default Queue} wl_pointer#1737.motion(187310757, 19.80078125, 15.80078125) -[2619127.295] {Default Queue} wl_pointer#1762.motion(187310757, 19.80078125, 15.80078125) -[2619127.299] {Default Queue} wl_pointer#1801.motion(187310757, 19.80078125, 15.80078125) -[2619127.303] {Default Queue} wl_pointer#1833.motion(187310757, 19.80078125, 15.80078125) -[2619127.307] {Default Queue} wl_pointer#1865.motion(187310757, 19.80078125, 15.80078125) -[2619127.311] {Default Queue} wl_pointer#1897.motion(187310757, 19.80078125, 15.80078125) -[2619127.315] {Default Queue} wl_pointer#1929.motion(187310757, 19.80078125, 15.80078125) -[2619127.319] {Default Queue} wl_pointer#1961.motion(187310757, 19.80078125, 15.80078125) -[2619127.323] {Default Queue} wl_pointer#1993.motion(187310757, 19.80078125, 15.80078125) -[2619127.327] {Default Queue} wl_pointer#2025.motion(187310757, 19.80078125, 15.80078125) -[2619127.331] {Default Queue} wl_pointer#2057.motion(187310757, 19.80078125, 15.80078125) -[2619127.335] {Default Queue} wl_pointer#2089.motion(187310757, 19.80078125, 15.80078125) -[2619127.339] {Default Queue} wl_pointer#2121.motion(187310757, 19.80078125, 15.80078125) -[2619127.343] {Default Queue} wl_pointer#2153.motion(187310757, 19.80078125, 15.80078125) -[2619127.346] {Default Queue} wl_pointer#2185.motion(187310757, 19.80078125, 15.80078125) -[2619127.350] {Default Queue} wl_pointer#2217.motion(187310757, 19.80078125, 15.80078125) -[2619127.354] {Default Queue} wl_pointer#2249.motion(187310757, 19.80078125, 15.80078125) -[2619127.358] {Default Queue} wl_pointer#2281.motion(187310757, 19.80078125, 15.80078125) -[2619127.362] {Default Queue} wl_pointer#2313.motion(187310757, 19.80078125, 15.80078125) -[2619127.366] {Default Queue} wl_pointer#2345.motion(187310757, 19.80078125, 15.80078125) -[2619127.371] {Default Queue} wl_pointer#2377.motion(187310757, 19.80078125, 15.80078125) -[2619127.374] {Default Queue} wl_pointer#2409.motion(187310757, 19.80078125, 15.80078125) -[2619127.378] {Default Queue} wl_pointer#2441.motion(187310757, 19.80078125, 15.80078125) -[2619127.382] {Default Queue} wl_pointer#2473.motion(187310757, 19.80078125, 15.80078125) -[2619127.386] {Default Queue} wl_pointer#2498.motion(187310757, 19.80078125, 15.80078125) -[2619127.397] {Default Queue} -> wl_buffer#3733.destroy() -[2619127.402] {Default Queue} -> wl_buffer#3732.destroy() -[2619127.405] {Default Queue} -> wl_shm_pool#3731.destroy() -[2619127.409] {Default Queue} -> wl_shm_pool#3730.destroy() -[2619127.416] {Default Queue} -> wl_surface#3723.destroy() -[2619127.458] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3739, fd 575, 640) -[2619127.464] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3738, fd 578, 640) -[2619127.468] {Default Queue} -> wl_shm_pool#3739.create_buffer(new id wl_buffer#3741, 0, 10, 16, 40, 0) -[2619127.472] {Default Queue} -> wl_shm_pool#3738.create_buffer(new id wl_buffer#3740, 0, 10, 16, 40, 0) -[2619127.479] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3712) -[2619127.483] {Default Queue} -> wl_surface#3712.attach(wl_buffer#3741, 0, 0) -[2619127.487] {Default Queue} -> wl_surface#3712.commit() -[2619127.492] {Default Queue} -> wl_surface#3712.attach(wl_buffer#3741, 0, 0) -[2619127.496] {Default Queue} -> wl_surface#3712.commit() -[2619127.500] {Default Queue} wl_pointer#2537.motion(187310757, 19.80078125, 15.80078125) -[2619127.504] {Default Queue} wl_pointer#2569.motion(187310757, 19.80078125, 15.80078125) -[2619127.508] {Default Queue} wl_pointer#2601.motion(187310757, 19.80078125, 15.80078125) -[2619127.512] {Default Queue} wl_pointer#2633.motion(187310757, 19.80078125, 15.80078125) -[2619127.516] {Default Queue} wl_pointer#2665.motion(187310757, 19.80078125, 15.80078125) -[2619127.520] {Default Queue} wl_pointer#2697.motion(187310757, 19.80078125, 15.80078125) -[2619127.524] {Default Queue} wl_pointer#2729.motion(187310757, 19.80078125, 15.80078125) -[2619127.528] {Default Queue} wl_pointer#2761.motion(187310757, 19.80078125, 15.80078125) -[2619127.532] {Default Queue} wl_pointer#2793.motion(187310757, 19.80078125, 15.80078125) -[2619127.536] {Default Queue} wl_pointer#2825.motion(187310757, 19.80078125, 15.80078125) -[2619127.540] {Default Queue} wl_pointer#2857.motion(187310757, 19.80078125, 15.80078125) -[2619127.544] {Default Queue} wl_pointer#2889.motion(187310757, 19.80078125, 15.80078125) -[2619127.548] {Default Queue} wl_pointer#2921.motion(187310757, 19.80078125, 15.80078125) -[2619127.552] {Default Queue} wl_pointer#2953.motion(187310757, 19.80078125, 15.80078125) -[2619127.556] {Default Queue} wl_pointer#2985.motion(187310757, 19.80078125, 15.80078125) -[2619127.559] {Default Queue} wl_pointer#3017.motion(187310757, 19.80078125, 15.80078125) -[2619127.563] {Default Queue} wl_pointer#3049.motion(187310757, 19.80078125, 15.80078125) -[2619127.567] {Default Queue} wl_pointer#3081.motion(187310757, 19.80078125, 15.80078125) -[2619127.571] {Default Queue} wl_pointer#3113.motion(187310757, 19.80078125, 15.80078125) -[2619127.575] {Default Queue} wl_pointer#3145.motion(187310757, 19.80078125, 15.80078125) -[2619127.579] {Default Queue} wl_pointer#3177.motion(187310757, 19.80078125, 15.80078125) -[2619127.583] {Default Queue} wl_pointer#3209.motion(187310757, 19.80078125, 15.80078125) -[2619127.587] {Default Queue} wl_pointer#3241.motion(187310757, 19.80078125, 15.80078125) -[2619127.591] {Default Queue} wl_pointer#3273.motion(187310757, 19.80078125, 15.80078125) -[2619127.595] {Default Queue} wl_pointer#3305.motion(187310757, 19.80078125, 15.80078125) -[2619127.599] {Default Queue} wl_pointer#3337.motion(187310757, 19.80078125, 15.80078125) -[2619127.603] {Default Queue} wl_pointer#3369.motion(187310757, 19.80078125, 15.80078125) -[2619127.607] {Default Queue} wl_pointer#3401.motion(187310757, 19.80078125, 15.80078125) -[2619127.611] {Default Queue} wl_pointer#3433.motion(187310757, 19.80078125, 15.80078125) -[2619127.615] {Default Queue} wl_pointer#3465.motion(187310757, 19.80078125, 15.80078125) -[2619127.619] {Default Queue} wl_pointer#3497.motion(187310757, 19.80078125, 15.80078125) -[2619127.623] {Default Queue} wl_pointer#3529.motion(187310757, 19.80078125, 15.80078125) -[2619127.627] {Default Queue} wl_pointer#3561.motion(187310757, 19.80078125, 15.80078125) -[2619127.631] {Default Queue} wl_pointer#3593.motion(187310757, 19.80078125, 15.80078125) -[2619127.635] {Default Queue} wl_pointer#3625.motion(187310757, 19.80078125, 15.80078125) -[2619127.639] {Default Queue} wl_pointer#3657.motion(187310757, 19.80078125, 15.80078125) -[2619127.645] {Default Queue} wl_pointer#3695.motion(187310757, 19.80078125, 15.80078125) -[2619127.656] {Default Queue} -> wl_region#3071.subtract(0, 0, 132, 714) -[2619127.660] {Default Queue} -> wl_region#3071.add(-20, -550, 129, 711) -[2619127.664] {Default Queue} -> wl_surface#3047.set_opaque_region(wl_region#3072) -[2619127.667] {Default Queue} -> wl_surface#3047.set_input_region(wl_region#3071) -[2619127.674] {Default Queue} -> wl_surface#3047.attach(wl_buffer#2108, 0, 0) -[2619127.679] {Default Queue} -> wl_surface#3047.commit() -[2619127.684] {Default Queue} -> wl_surface#3047.attach(wl_buffer#2108, 0, 0) -[2619127.688] {Default Queue} -> wl_surface#3047.commit() -[2619127.694] {Default Queue} -> wl_surface#3047.attach(wl_buffer#2108, 0, 0) -[2619127.698] {Default Queue} -> wl_surface#3047.commit() -[2619127.711] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) -[2619127.715] {Default Queue} -> wl_surface#3015.commit() -[2619128.779] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) -[2619128.784] {Default Queue} -> wl_surface#3015.commit() -[2619128.792] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) -[2619128.797] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) -[2619128.801] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2619128.804] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2619128.812] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) -[2619128.816] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) -[2619128.820] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2619128.823] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2619128.829] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) -[2619128.833] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) -[2619128.837] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2619128.840] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2619128.846] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) -[2619128.849] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) -[2619128.853] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2619128.857] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2619128.864] {Default Queue} -> wl_region#3039.subtract(0, 0, 135, 216) -[2619128.868] {Default Queue} -> wl_region#3039.add(-20, -49, 135, 216) -[2619128.874] {Default Queue} -> wl_surface#3015.set_opaque_region(wl_region#3040) -[2619128.878] {Default Queue} -> wl_surface#3015.set_input_region(wl_region#3039) -[2619128.884] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) -[2619128.888] {Default Queue} -> wl_surface#3015.commit() -[2619128.893] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) -[2619128.897] {Default Queue} -> wl_surface#3015.commit() -[2619128.903] {Default Queue} -> wl_surface#3015.attach(wl_buffer#2205, 0, 0) -[2619128.907] {Default Queue} -> wl_surface#3015.commit() -[2619128.913] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) -[2619128.916] {Default Queue} -> wl_surface#3303.commit() -[2619129.977] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) -[2619129.982] {Default Queue} -> wl_surface#3303.commit() -[2619129.989] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 570) -[2619129.994] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 570) -[2619129.998] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2619130.002] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2619130.087] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 570) -[2619130.091] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 570) -[2619130.095] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2619130.099] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2619130.106] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) -[2619130.110] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) -[2619130.171] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 570) -[2619130.177] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 570) -[2619130.181] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2619130.185] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2619130.190] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) -[2619130.194] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) -[2619130.199] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) -[2619130.203] {Default Queue} -> wl_surface#3303.commit() -[2619130.206] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) -[2619130.210] {Default Queue} -> wl_surface#3303.commit() -[2619130.216] {Default Queue} -> wl_surface#3303.attach(wl_buffer#893, 0, 0) -[2619130.219] {Default Queue} -> wl_surface#3303.commit() -[2619130.224] {Default Queue} -> wl_region#3423.subtract(0, 0, 2, 2) -[2619130.228] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 554) -[2619130.232] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 554) -[2619130.236] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619130.240] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619130.243] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2619130.256] {Default Queue} -> wl_buffer#3748.destroy() -[2619130.261] {Default Queue} -> wl_buffer#3749.destroy() -[2619130.265] {Default Queue} -> wl_shm_pool#3746.destroy() -[2619130.268] {Default Queue} -> wl_shm_pool#3747.destroy() -[2619130.305] {Default Queue} -> wl_shm#3407.create_pool(new id wl_shm_pool#2811, fd 575, 16) -[2619130.310] {Default Queue} -> wl_shm#3407.create_pool(new id wl_shm_pool#2812, fd 578, 16) -[2619130.315] {Default Queue} -> wl_shm_pool#2811.create_buffer(new id wl_buffer#2813, 0, 2, 2, 8, 0) -[2619130.319] {Default Queue} -> wl_shm_pool#2812.create_buffer(new id wl_buffer#2814, 0, 2, 2, 8, 0) -[2619130.326] {Default Queue} -> wl_surface#3399.attach(wl_buffer#2813, 0, 0) -[2619130.330] {Default Queue} -> wl_surface#3399.commit() -[2619130.335] {Default Queue} -> wl_surface#3399.attach(wl_buffer#2813, 0, 0) -[2619130.339] {Default Queue} -> wl_surface#3399.commit() -[2619130.347] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619130.351] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619130.355] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619130.359] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619130.366] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619130.370] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619130.374] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619130.377] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619130.384] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619130.387] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619130.391] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619130.395] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619130.400] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619130.404] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619130.408] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619130.411] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619130.416] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619130.420] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619130.424] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619130.428] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619130.434] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619130.438] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619130.441] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619130.448] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619130.455] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619130.459] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619130.463] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619130.466] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619130.472] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619130.475] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619130.479] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619130.483] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619130.488] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619130.492] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619130.496] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619130.499] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619130.510] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619130.513] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619130.517] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619130.521] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619130.525] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619130.529] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619130.533] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619130.537] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619130.542] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619130.546] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619130.549] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619130.553] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619130.558] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619130.562] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619130.565] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619130.569] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619130.574] {Default Queue} -> wl_surface#3399.attach(wl_buffer#2813, 0, 0) -[2619130.578] {Default Queue} -> wl_surface#3399.commit() -[2619130.583] {Default Queue} -> wl_surface#3399.attach(wl_buffer#2813, 0, 0) -[2619130.587] {Default Queue} -> wl_surface#3399.commit() -[2619131.649] {Default Queue} -> wl_surface#3399.attach(wl_buffer#2813, 0, 0) -[2619131.654] {Default Queue} -> wl_surface#3399.commit() -[2619131.660] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619131.664] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619131.668] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619131.672] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619131.678] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619131.682] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619131.686] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619131.690] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619131.695] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619131.699] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619131.702] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619131.706] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619131.711] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619131.715] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619131.719] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619131.722] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619131.727] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619131.731] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619131.738] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619131.743] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619131.749] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619131.753] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619131.757] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619131.760] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619131.765] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619131.769] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619131.773] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619131.776] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619131.781] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619131.785] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619131.789] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619131.792] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619131.797] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619131.801] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619131.805] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619131.809] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619131.818] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619131.822] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619131.826] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619131.830] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619131.834] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619131.838] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619131.842] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619131.846] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619131.850] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619131.854] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619131.858] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619131.862] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619131.867] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619131.875] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619131.878] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619131.882] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619131.887] {Default Queue} -> wl_surface#3399.attach(wl_buffer#2813, 0, 0) -[2619131.891] {Default Queue} -> wl_surface#3399.commit() -[2619131.894] {Default Queue} -> wl_surface#3399.attach(wl_buffer#2813, 0, 0) -[2619131.898] {Default Queue} -> wl_surface#3399.commit() -[2619131.903] {Default Queue} -> wl_surface#3399.attach(wl_buffer#2813, 0, 0) -[2619131.907] {Default Queue} -> wl_surface#3399.commit() -[2619131.911] {Default Queue} -> wl_region#3455.subtract(0, 0, 2, 2) -[2619131.915] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 568) -[2619131.919] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 554) -[2619131.923] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619131.927] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619131.930] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2619131.942] {Default Queue} -> wl_buffer#3752.destroy() -[2619131.946] {Default Queue} -> wl_buffer#3753.destroy() -[2619131.950] {Default Queue} -> wl_shm_pool#3750.destroy() -[2619131.954] {Default Queue} -> wl_shm_pool#3751.destroy() -[2619131.989] {Default Queue} -> wl_shm#3439.create_pool(new id wl_shm_pool#3735, fd 575, 16) -[2619131.995] {Default Queue} -> wl_shm#3439.create_pool(new id wl_shm_pool#3734, fd 578, 16) -[2619131.999] {Default Queue} -> wl_shm_pool#3735.create_buffer(new id wl_buffer#3737, 0, 2, 2, 8, 0) -[2619132.006] {Default Queue} -> wl_shm_pool#3734.create_buffer(new id wl_buffer#3736, 0, 2, 2, 8, 0) -[2619132.014] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3737, 0, 0) -[2619132.018] {Default Queue} -> wl_surface#3431.commit() -[2619132.023] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3737, 0, 0) -[2619132.027] {Default Queue} -> wl_surface#3431.commit() -[2619132.034] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619132.038] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619132.041] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619132.045] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619132.052] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619132.056] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619132.059] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619132.063] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619132.069] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619132.073] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619132.076] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619132.080] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619132.085] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619132.089] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619132.093] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619132.097] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619132.101] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619132.105] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619132.109] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619132.113] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619132.119] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619132.123] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619132.127] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619132.130] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619132.136] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619132.140] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619132.143] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619132.147] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619132.152] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619132.156] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619132.160] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619132.163] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619132.168] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619132.172] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619132.176] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619132.180] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619132.190] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619132.194] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619132.198] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619132.201] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619132.206] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619132.210] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619132.213] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619132.217] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619132.222] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619132.226] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619132.230] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619132.237] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619132.243] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619132.247] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619132.251] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619132.254] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619132.260] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3737, 0, 0) -[2619132.264] {Default Queue} -> wl_surface#3431.commit() -[2619132.281] {Default Queue} wl_pointer#24.motion(187310762, 19.39843750, 15.80078125) -[2619132.286] {Default Queue} wl_pointer#81.motion(187310762, 19.39843750, 15.80078125) -[2619132.291] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619132.295] {Default Queue} wl_pointer#105.motion(187310762, 19.39843750, 15.80078125) -[2619132.299] {Default Queue} wl_pointer#137.motion(187310762, 19.39843750, 15.80078125) -[2619132.303] {Default Queue} wl_pointer#169.motion(187310762, 19.39843750, 15.80078125) -[2619132.307] {Default Queue} wl_pointer#201.motion(187310762, 19.39843750, 15.80078125) -[2619132.311] {Default Queue} wl_pointer#233.motion(187310762, 19.39843750, 15.80078125) -[2619132.315] {Default Queue} wl_pointer#265.motion(187310762, 19.39843750, 15.80078125) -[2619132.319] {Default Queue} wl_pointer#297.motion(187310762, 19.39843750, 15.80078125) -[2619132.323] {Default Queue} wl_pointer#329.motion(187310762, 19.39843750, 15.80078125) -[2619132.327] {Default Queue} wl_pointer#361.motion(187310762, 19.39843750, 15.80078125) -[2619132.331] {Default Queue} wl_pointer#393.motion(187310762, 19.39843750, 15.80078125) -[2619132.335] {Default Queue} wl_pointer#425.motion(187310762, 19.39843750, 15.80078125) -[2619132.339] {Default Queue} wl_pointer#457.motion(187310762, 19.39843750, 15.80078125) -[2619132.343] {Default Queue} wl_pointer#489.motion(187310762, 19.39843750, 15.80078125) -[2619132.347] {Default Queue} wl_pointer#521.motion(187310762, 19.39843750, 15.80078125) -[2619132.351] {Default Queue} wl_pointer#553.motion(187310762, 19.39843750, 15.80078125) -[2619132.355] {Default Queue} wl_pointer#585.motion(187310762, 19.39843750, 15.80078125) -[2619132.359] {Default Queue} wl_pointer#617.motion(187310762, 19.39843750, 15.80078125) -[2619132.363] {Default Queue} wl_pointer#649.motion(187310762, 19.39843750, 15.80078125) -[2619132.367] {Default Queue} wl_pointer#681.motion(187310762, 19.39843750, 15.80078125) -[2619132.371] {Default Queue} wl_pointer#713.motion(187310762, 19.39843750, 15.80078125) -[2619132.375] {Default Queue} wl_pointer#745.motion(187310762, 19.39843750, 15.80078125) -[2619132.379] {Default Queue} wl_pointer#777.motion(187310762, 19.39843750, 15.80078125) -[2619132.382] {Default Queue} wl_pointer#809.motion(187310762, 19.39843750, 15.80078125) -[2619132.386] {Default Queue} wl_pointer#841.motion(187310762, 19.39843750, 15.80078125) -[2619132.390] {Default Queue} wl_pointer#873.motion(187310762, 19.39843750, 15.80078125) -[2619132.394] {Default Queue} wl_pointer#905.motion(187310762, 19.39843750, 15.80078125) -[2619132.398] {Default Queue} wl_pointer#937.motion(187310762, 19.39843750, 15.80078125) -[2619132.402] {Default Queue} wl_pointer#969.motion(187310762, 19.39843750, 15.80078125) -[2619132.406] {Default Queue} wl_pointer#1001.motion(187310762, 19.39843750, 15.80078125) -[2619132.410] {Default Queue} wl_pointer#1033.motion(187310762, 19.39843750, 15.80078125) -[2619132.414] {Default Queue} wl_pointer#1065.motion(187310762, 19.39843750, 15.80078125) -[2619132.418] {Default Queue} wl_pointer#1097.motion(187310762, 19.39843750, 15.80078125) -[2619132.422] {Default Queue} wl_pointer#1129.motion(187310762, 19.39843750, 15.80078125) -[2619132.426] {Default Queue} wl_pointer#1161.motion(187310762, 19.39843750, 15.80078125) -[2619132.430] {Default Queue} wl_pointer#1193.motion(187310762, 19.39843750, 15.80078125) -[2619132.434] {Default Queue} wl_pointer#1225.motion(187310762, 19.39843750, 15.80078125) -[2619132.438] {Default Queue} wl_pointer#1257.motion(187310762, 19.39843750, 15.80078125) -[2619132.444] {Default Queue} wl_pointer#1289.motion(187310762, 19.39843750, 15.80078125) -[2619132.450] {Default Queue} wl_pointer#1321.motion(187310762, 19.39843750, 15.80078125) -[2619132.454] {Default Queue} wl_pointer#1353.motion(187310762, 19.39843750, 15.80078125) -[2619132.458] {Default Queue} wl_pointer#1385.motion(187310762, 19.39843750, 15.80078125) -[2619132.462] {Default Queue} wl_pointer#1417.motion(187310762, 19.39843750, 15.80078125) -[2619132.465] {Default Queue} wl_pointer#1449.motion(187310762, 19.39843750, 15.80078125) -[2619132.469] {Default Queue} wl_pointer#1481.motion(187310762, 19.39843750, 15.80078125) -[2619132.473] {Default Queue} wl_pointer#1513.motion(187310762, 19.39843750, 15.80078125) -[2619132.477] {Default Queue} wl_pointer#1545.motion(187310762, 19.39843750, 15.80078125) -[2619132.481] {Default Queue} wl_pointer#1577.motion(187310762, 19.39843750, 15.80078125) -[2619132.485] {Default Queue} wl_pointer#1609.motion(187310762, 19.39843750, 15.80078125) -[2619132.489] {Default Queue} wl_pointer#1641.motion(187310762, 19.39843750, 15.80078125) -[2619132.493] {Default Queue} wl_pointer#1673.motion(187310762, 19.39843750, 15.80078125) -[2619132.497] {Default Queue} wl_pointer#1705.motion(187310762, 19.39843750, 15.80078125) -[2619132.501] {Default Queue} wl_pointer#1737.motion(187310762, 19.39843750, 15.80078125) -[2619132.505] {Default Queue} wl_pointer#1762.motion(187310762, 19.39843750, 15.80078125) -[2619132.509] {Default Queue} wl_pointer#1801.motion(187310762, 19.39843750, 15.80078125) -[2619132.513] {Default Queue} wl_pointer#1833.motion(187310762, 19.39843750, 15.80078125) -[2619132.517] {Default Queue} wl_pointer#1865.motion(187310762, 19.39843750, 15.80078125) -[2619132.521] {Default Queue} wl_pointer#1897.motion(187310762, 19.39843750, 15.80078125) -[2619132.524] {Default Queue} wl_pointer#1929.motion(187310762, 19.39843750, 15.80078125) -[2619132.528] {Default Queue} wl_pointer#1961.motion(187310762, 19.39843750, 15.80078125) -[2619132.532] {Default Queue} wl_pointer#1993.motion(187310762, 19.39843750, 15.80078125) -[2619132.536] {Default Queue} wl_pointer#2025.motion(187310762, 19.39843750, 15.80078125) -[2619132.540] {Default Queue} wl_pointer#2057.motion(187310762, 19.39843750, 15.80078125) -[2619132.544] {Default Queue} wl_pointer#2089.motion(187310762, 19.39843750, 15.80078125) -[2619132.548] {Default Queue} wl_pointer#2121.motion(187310762, 19.39843750, 15.80078125) -[2619132.552] {Default Queue} wl_pointer#2153.motion(187310762, 19.39843750, 15.80078125) -[2619132.556] {Default Queue} wl_pointer#2185.motion(187310762, 19.39843750, 15.80078125) -[2619132.560] {Default Queue} wl_pointer#2217.motion(187310762, 19.39843750, 15.80078125) -[2619132.564] {Default Queue} wl_pointer#2249.motion(187310762, 19.39843750, 15.80078125) -[2619132.568] {Default Queue} wl_pointer#2281.motion(187310762, 19.39843750, 15.80078125) -[2619132.572] {Default Queue} wl_pointer#2313.motion(187310762, 19.39843750, 15.80078125) -[2619132.576] {Default Queue} wl_pointer#2345.motion(187310762, 19.39843750, 15.80078125) -[2619132.580] {Default Queue} wl_pointer#2377.motion(187310762, 19.39843750, 15.80078125) -[2619132.584] {Default Queue} wl_pointer#2409.motion(187310762, 19.39843750, 15.80078125) -[2619132.588] {Default Queue} wl_pointer#2441.motion(187310762, 19.39843750, 15.80078125) -[2619132.592] {Default Queue} wl_pointer#2473.motion(187310762, 19.39843750, 15.80078125) -[2619132.596] {Default Queue} wl_pointer#2498.motion(187310762, 19.39843750, 15.80078125) -[2619132.606] {Default Queue} -> wl_buffer#3741.destroy() -[2619132.610] {Default Queue} -> wl_buffer#3740.destroy() -[2619132.613] {Default Queue} -> wl_shm_pool#3739.destroy() -[2619132.617] {Default Queue} -> wl_shm_pool#3738.destroy() -[2619132.622] {Default Queue} -> wl_surface#3712.destroy() -[2619132.652] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3708, fd 581, 640) -[2619132.658] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3726, fd 582, 640) -[2619132.662] {Default Queue} -> wl_shm_pool#3708.create_buffer(new id wl_buffer#3727, 0, 10, 16, 40, 0) -[2619132.669] {Default Queue} -> wl_shm_pool#3726.create_buffer(new id wl_buffer#3728, 0, 10, 16, 40, 0) -[2619132.677] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3729) -[2619132.681] {Default Queue} -> wl_surface#3729.attach(wl_buffer#3727, 0, 0) -[2619132.685] {Default Queue} -> wl_surface#3729.commit() -[2619132.689] {Default Queue} -> wl_surface#3729.attach(wl_buffer#3727, 0, 0) -[2619132.693] {Default Queue} -> wl_surface#3729.commit() -[2619132.697] {Default Queue} wl_pointer#2537.motion(187310762, 19.39843750, 15.80078125) -[2619132.701] {Default Queue} wl_pointer#2569.motion(187310762, 19.39843750, 15.80078125) -[2619132.705] {Default Queue} wl_pointer#2601.motion(187310762, 19.39843750, 15.80078125) -[2619132.709] {Default Queue} wl_pointer#2633.motion(187310762, 19.39843750, 15.80078125) -[2619132.713] {Default Queue} wl_pointer#2665.motion(187310762, 19.39843750, 15.80078125) -[2619132.717] {Default Queue} wl_pointer#2697.motion(187310762, 19.39843750, 15.80078125) -[2619132.721] {Default Queue} wl_pointer#2729.motion(187310762, 19.39843750, 15.80078125) -[2619132.725] {Default Queue} wl_pointer#2761.motion(187310762, 19.39843750, 15.80078125) -[2619132.729] {Default Queue} wl_pointer#2793.motion(187310762, 19.39843750, 15.80078125) -[2619132.733] {Default Queue} wl_pointer#2825.motion(187310762, 19.39843750, 15.80078125) -[2619132.737] {Default Queue} wl_pointer#2857.motion(187310762, 19.39843750, 15.80078125) -[2619132.741] {Default Queue} wl_pointer#2889.motion(187310762, 19.39843750, 15.80078125) -[2619132.745] {Default Queue} wl_pointer#2921.motion(187310762, 19.39843750, 15.80078125) -[2619132.749] {Default Queue} wl_pointer#2953.motion(187310762, 19.39843750, 15.80078125) -[2619132.753] {Default Queue} wl_pointer#2985.motion(187310762, 19.39843750, 15.80078125) -[2619132.756] {Default Queue} wl_pointer#3017.motion(187310762, 19.39843750, 15.80078125) -[2619132.760] {Default Queue} wl_pointer#3049.motion(187310762, 19.39843750, 15.80078125) -[2619132.764] {Default Queue} wl_pointer#3081.motion(187310762, 19.39843750, 15.80078125) -[2619132.768] {Default Queue} wl_pointer#3113.motion(187310762, 19.39843750, 15.80078125) -[2619132.772] {Default Queue} wl_pointer#3145.motion(187310762, 19.39843750, 15.80078125) -[2619132.776] {Default Queue} wl_pointer#3177.motion(187310762, 19.39843750, 15.80078125) -[2619132.780] {Default Queue} wl_pointer#3209.motion(187310762, 19.39843750, 15.80078125) -[2619132.784] {Default Queue} wl_pointer#3241.motion(187310762, 19.39843750, 15.80078125) -[2619132.788] {Default Queue} wl_pointer#3273.motion(187310762, 19.39843750, 15.80078125) -[2619132.792] {Default Queue} wl_pointer#3305.motion(187310762, 19.39843750, 15.80078125) -[2619132.796] {Default Queue} wl_pointer#3337.motion(187310762, 19.39843750, 15.80078125) -[2619132.800] {Default Queue} wl_pointer#3369.motion(187310762, 19.39843750, 15.80078125) -[2619132.804] {Default Queue} wl_pointer#3401.motion(187310762, 19.39843750, 15.80078125) -[2619132.808] {Default Queue} wl_pointer#3433.motion(187310762, 19.39843750, 15.80078125) -[2619132.812] {Default Queue} wl_pointer#3465.motion(187310762, 19.39843750, 15.80078125) -[2619132.816] {Default Queue} wl_pointer#3497.motion(187310762, 19.39843750, 15.80078125) -[2619132.820] {Default Queue} wl_pointer#3529.motion(187310762, 19.39843750, 15.80078125) -[2619132.824] {Default Queue} wl_pointer#3561.motion(187310762, 19.39843750, 15.80078125) -[2619132.828] {Default Queue} wl_pointer#3593.motion(187310762, 19.39843750, 15.80078125) -[2619132.832] {Default Queue} wl_pointer#3625.motion(187310762, 19.39843750, 15.80078125) -[2619132.836] {Default Queue} wl_pointer#3657.motion(187310762, 19.39843750, 15.80078125) -[2619132.839] {Default Queue} wl_pointer#3695.motion(187310762, 19.39843750, 15.80078125) -[2619132.843] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3737, 0, 0) -[2619132.847] {Default Queue} -> wl_surface#3431.commit() -[2619133.869] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3737, 0, 0) -[2619133.875] {Default Queue} -> wl_surface#3431.commit() -[2619133.886] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619133.892] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619133.896] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619133.899] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619133.906] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619133.912] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619133.916] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619133.919] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619133.926] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619133.930] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619133.933] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619133.937] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619133.942] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619133.946] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619133.950] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619133.953] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619133.958] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619133.962] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619133.966] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619133.969] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619133.976] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619133.980] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619133.983] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619133.987] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619133.992] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619133.996] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619134.000] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619134.004] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619134.009] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619134.013] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619134.016] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619134.020] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619134.025] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619134.029] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619134.033] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619134.037] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619134.046] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619134.051] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619134.055] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619134.058] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619134.063] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619134.067] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619134.070] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619134.074] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619134.079] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619134.083] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619134.087] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619134.091] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619134.096] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619134.100] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619134.104] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619134.107] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619134.117] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3737, 0, 0) -[2619134.122] {Default Queue} -> wl_surface#3431.commit() -[2619134.126] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3737, 0, 0) -[2619134.130] {Default Queue} -> wl_surface#3431.commit() -[2619134.135] {Default Queue} -> wl_surface#3431.attach(wl_buffer#3737, 0, 0) -[2619134.139] {Default Queue} -> wl_surface#3431.commit() -[2619134.152] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2619134.156] {Default Queue} -> wl_surface#3527.commit() -[2619135.217] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2619135.222] {Default Queue} -> wl_surface#3527.commit() -[2619135.230] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 575) -[2619135.236] {Default Queue} -> wl_region#3551.add(-139, -574, 76, 511) -[2619135.240] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2619135.243] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2619135.251] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 575) -[2619135.255] {Default Queue} -> wl_region#3551.add(-139, -574, 76, 511) -[2619135.259] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2619135.263] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2619135.267] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 575) -[2619135.271] {Default Queue} -> wl_region#3551.add(-139, -574, 76, 511) -[2619135.275] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2619135.279] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2619135.283] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 575) -[2619135.287] {Default Queue} -> wl_region#3551.add(-139, -574, 76, 511) -[2619135.291] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2619135.294] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2619135.299] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 575) -[2619135.303] {Default Queue} -> wl_region#3551.add(-139, -574, 76, 511) -[2619135.307] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2619135.310] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2619135.330] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 575) -[2619135.334] {Default Queue} -> wl_region#3551.add(-139, -574, 76, 511) -[2619135.338] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2619135.342] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2619135.367] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2619135.371] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2619135.430] {Default Queue} -> wl_region#3551.subtract(0, 0, 140, 575) -[2619135.434] {Default Queue} -> wl_region#3551.add(-139, -574, 76, 511) -[2619135.438] {Default Queue} -> wl_surface#3527.set_opaque_region(wl_region#3552) -[2619135.442] {Default Queue} -> wl_surface#3527.set_input_region(wl_region#3551) -[2619135.452] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2619135.456] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2619135.462] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2619135.466] {Default Queue} -> wl_surface#3527.commit() -[2619135.471] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2619135.475] {Default Queue} -> wl_surface#3527.commit() -[2619135.481] {Default Queue} -> wl_surface#3527.attach(wl_buffer#3549, 0, 0) -[2619135.485] {Default Queue} -> wl_surface#3527.commit() -[2619135.506] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2619135.511] {Default Queue} -> wl_surface#3495.commit() -[2619136.577] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2619136.582] {Default Queue} -> wl_surface#3495.commit() -[2619136.588] {Default Queue} -> wl_region#3519.subtract(0, 0, 139, 574) -[2619136.593] {Default Queue} -> wl_region#3519.add(-138, -573, 139, 574) -[2619136.597] {Default Queue} -> wl_surface#3495.set_opaque_region(wl_region#3520) -[2619136.604] {Default Queue} -> wl_surface#3495.set_input_region(wl_region#3519) -[2619136.615] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2619136.619] {Default Queue} -> wl_surface#3495.commit() -[2619136.627] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2619136.631] {Default Queue} -> wl_surface#3495.commit() -[2619136.640] {Default Queue} -> wl_surface#3495.attach(wl_buffer#3756, 0, 0) -[2619136.644] {Default Queue} -> wl_surface#3495.commit() -[2619136.648] {Default Queue} -> wl_region#3487.subtract(0, 0, 2, 2) -[2619136.653] {Default Queue} -> wl_region#3519.subtract(0, 0, 139, 574) -[2619136.657] {Default Queue} -> wl_region#3519.add(-138, -573, 139, 574) -[2619136.661] {Default Queue} -> wl_surface#3495.set_opaque_region(wl_region#3520) -[2619136.665] {Default Queue} -> wl_surface#3495.set_input_region(wl_region#3519) -[2619136.669] {Default Queue} -> wl_region#3487.subtract(0, 0, 139, 554) -[2619136.673] {Default Queue} -> wl_region#3487.add(-138, -573, 139, 554) -[2619136.677] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) -[2619136.681] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) -[2619136.685] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2619136.689] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) -[2619136.692] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) -[2619136.704] {Default Queue} -> wl_buffer#3760.destroy() -[2619136.709] {Default Queue} -> wl_buffer#3761.destroy() -[2619136.713] {Default Queue} -> wl_shm_pool#3758.destroy() -[2619136.717] {Default Queue} -> wl_shm_pool#3759.destroy() -[2619136.754] {Default Queue} -> wl_shm#3471.create_pool(new id wl_shm_pool#2972, fd 575, 16) -[2619136.759] {Default Queue} -> wl_shm#3471.create_pool(new id wl_shm_pool#2971, fd 578, 16) -[2619136.764] {Default Queue} -> wl_shm_pool#2972.create_buffer(new id wl_buffer#2974, 0, 2, 2, 8, 0) -[2619136.768] {Default Queue} -> wl_shm_pool#2971.create_buffer(new id wl_buffer#2973, 0, 2, 2, 8, 0) -[2619136.774] {Default Queue} -> wl_surface#3463.attach(wl_buffer#2974, 0, 0) -[2619136.778] {Default Queue} -> wl_surface#3463.commit() -[2619136.783] {Default Queue} -> wl_surface#3463.attach(wl_buffer#2974, 0, 0) -[2619136.787] {Default Queue} -> wl_surface#3463.commit() -[2619136.793] {Default Queue} -> wl_region#3487.subtract(0, 0, 139, 574) -[2619136.797] {Default Queue} -> wl_region#3487.add(-138, -573, 139, 574) -[2619136.801] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) -[2619136.805] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) -[2619136.809] {Default Queue} -> wl_surface#3463.attach(wl_buffer#2974, 0, 0) -[2619136.813] {Default Queue} -> wl_surface#3463.commit() -[2619136.818] {Default Queue} -> wl_surface#3463.attach(wl_buffer#2974, 0, 0) -[2619136.822] {Default Queue} -> wl_surface#3463.commit() -[2619137.866] {Default Queue} -> wl_surface#3463.attach(wl_buffer#2974, 0, 0) -[2619137.871] {Default Queue} -> wl_surface#3463.commit() -[2619137.876] {Default Queue} -> wl_region#3487.subtract(0, 0, 139, 574) -[2619137.903] {Default Queue} -> wl_region#3487.add(-138, -573, 139, 574) -[2619137.909] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) -[2619137.914] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) -[2619137.921] {Default Queue} -> wl_surface#3463.attach(wl_buffer#2974, 0, 0) -[2619137.925] {Default Queue} -> wl_surface#3463.commit() -[2619137.929] {Default Queue} -> wl_surface#3463.attach(wl_buffer#2974, 0, 0) -[2619137.934] {Default Queue} -> wl_surface#3463.commit() -[2619137.940] {Default Queue} -> wl_surface#3463.attach(wl_buffer#2974, 0, 0) -[2619137.944] {Default Queue} -> wl_surface#3463.commit() -[2619137.948] {Default Queue} -> wl_region#3391.subtract(0, 0, 2, 2) -[2619137.956] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619137.960] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619137.964] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619137.973] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619137.983] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619137.988] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619137.992] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619137.995] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619138.002] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619138.006] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619138.010] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619138.014] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619138.019] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619138.023] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619138.027] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619138.030] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619138.035] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619138.039] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619138.043] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619138.046] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619138.053] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619138.056] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619138.060] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619138.064] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619138.069] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619138.073] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619138.077] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619138.080] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619138.085] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619138.089] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619138.093] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619138.097] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619138.102] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619138.106] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619138.110] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619138.113] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619138.123] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619138.127] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619138.131] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619138.135] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619138.139] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619138.143] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619138.147] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619138.150] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619138.155] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619138.159] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619138.163] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619138.167] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619138.171] {Default Queue} -> wl_region#3423.subtract(0, 0, 140, 574) -[2619138.175] {Default Queue} -> wl_region#3423.add(-124, -573, 126, 574) -[2619138.179] {Default Queue} -> wl_surface#3399.set_opaque_region(wl_region#3424) -[2619138.183] {Default Queue} -> wl_surface#3399.set_input_region(wl_region#3423) -[2619138.189] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619138.193] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619138.196] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619138.204] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619138.212] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619138.216] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619138.220] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619138.224] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619138.229] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619138.233] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619138.237] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619138.240] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619138.245] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619138.249] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619138.253] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619138.257] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619138.262] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619138.265] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619138.269] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619138.273] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619138.279] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619138.283] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619138.287] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619138.290] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619138.296] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619138.300] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619138.303] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619138.307] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619138.312] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619138.316] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619138.320] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619138.323] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619138.328] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619138.332] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619138.336] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619138.340] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619138.350] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619138.354] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619138.358] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619138.361] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619138.366] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619138.370] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619138.373] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619138.377] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619138.382] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619138.386] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619138.390] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619138.393] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619138.398] {Default Queue} -> wl_region#3455.subtract(0, 0, 139, 575) -[2619138.402] {Default Queue} -> wl_region#3455.add(-138, -559, 139, 561) -[2619138.406] {Default Queue} -> wl_surface#3431.set_opaque_region(wl_region#3456) -[2619138.410] {Default Queue} -> wl_surface#3431.set_input_region(wl_region#3455) -[2619138.416] {Default Queue} -> wl_region#3487.subtract(0, 0, 139, 574) -[2619138.420] {Default Queue} -> wl_region#3487.add(-138, -573, 139, 574) -[2619138.424] {Default Queue} -> wl_surface#3463.set_opaque_region(wl_region#3488) -[2619138.430] {Default Queue} -> wl_surface#3463.set_input_region(wl_region#3487) -[2619138.436] {Default Queue} -> wl_region#3391.subtract(0, 0, 140, 555) -[2619138.440] {Default Queue} -> wl_region#3391.add(-138, -573, 139, 554) -[2619138.444] {Default Queue} -> wl_surface#3367.set_opaque_region(wl_region#3392) -[2619138.448] {Default Queue} -> wl_surface#3367.set_input_region(wl_region#3391) -[2619138.451] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2619138.455] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2619138.459] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2619138.463] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) -[2619138.467] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) -[2619138.471] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) -[2619138.487] {Default Queue} -> wl_buffer#3389.destroy() -[2619138.492] {Default Queue} -> wl_buffer#3390.destroy() -[2619138.496] {Default Queue} -> wl_shm_pool#3387.destroy() -[2619138.500] {Default Queue} -> wl_shm_pool#3388.destroy() -[2619138.543] {Default Queue} -> wl_shm#3375.create_pool(new id wl_shm_pool#1019, fd 575, 16) -[2619138.549] {Default Queue} -> wl_shm#3375.create_pool(new id wl_shm_pool#1022, fd 578, 16) -[2619138.553] {Default Queue} -> wl_shm_pool#1019.create_buffer(new id wl_buffer#1021, 0, 2, 2, 8, 0) -[2619138.558] {Default Queue} -> wl_shm_pool#1022.create_buffer(new id wl_buffer#3691, 0, 2, 2, 8, 0) -[2619138.565] {Default Queue} -> wl_surface#3367.attach(wl_buffer#1021, 0, 0) -[2619138.569] {Default Queue} -> wl_surface#3367.commit() -[2619138.574] {Default Queue} -> wl_surface#3367.attach(wl_buffer#1021, 0, 0) -[2619138.578] {Default Queue} -> wl_surface#3367.commit() -[2619138.584] {Default Queue} -> wl_region#3391.subtract(0, 0, 140, 575) -[2619138.589] {Default Queue} -> wl_region#3391.add(-138, -573, 139, 574) -[2619138.593] {Default Queue} -> wl_surface#3367.set_opaque_region(wl_region#3392) -[2619138.597] {Default Queue} -> wl_surface#3367.set_input_region(wl_region#3391) -[2619138.601] {Default Queue} -> wl_surface#3367.attach(wl_buffer#1021, 0, 0) -[2619138.605] {Default Queue} -> wl_surface#3367.commit() -[2619138.611] {Default Queue} -> wl_surface#3367.attach(wl_buffer#1021, 0, 0) -[2619138.615] {Default Queue} -> wl_surface#3367.commit() -[2619139.680] {Default Queue} -> wl_surface#3367.attach(wl_buffer#1021, 0, 0) -[2619139.689] {Default Queue} -> wl_surface#3367.commit() -[2619139.697] {Default Queue} -> wl_region#3391.subtract(0, 0, 140, 575) -[2619139.703] {Default Queue} -> wl_region#3391.add(-138, -573, 139, 574) -[2619139.709] {Default Queue} -> wl_surface#3367.set_opaque_region(wl_region#3392) -[2619139.714] {Default Queue} -> wl_surface#3367.set_input_region(wl_region#3391) -[2619139.720] {Default Queue} -> wl_surface#3367.attach(wl_buffer#1021, 0, 0) -[2619139.725] {Default Queue} -> wl_surface#3367.commit() -[2619139.729] {Default Queue} -> wl_surface#3367.attach(wl_buffer#1021, 0, 0) -[2619139.732] {Default Queue} -> wl_surface#3367.commit() -[2619139.738] {Default Queue} -> wl_surface#3367.attach(wl_buffer#1021, 0, 0) -[2619139.742] {Default Queue} -> wl_surface#3367.commit() -[2619139.747] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) -[2619139.751] {Default Queue} -> wl_surface#3335.commit() -[2619140.816] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) -[2619140.831] {Default Queue} -> wl_surface#3335.commit() -[2619140.844] {Default Queue} -> wl_region#3359.subtract(0, 0, 140, 575) -[2619140.851] {Default Queue} -> wl_region#3359.add(-138, -553, 140, 555) -[2619140.857] {Default Queue} -> wl_surface#3335.set_opaque_region(wl_region#3360) -[2619140.871] {Default Queue} -> wl_surface#3335.set_input_region(wl_region#3359) -[2619140.879] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) -[2619140.885] {Default Queue} -> wl_surface#3335.commit() -[2619140.891] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) -[2619140.897] {Default Queue} -> wl_surface#3335.commit() -[2619140.916] {Default Queue} -> wl_surface#3335.attach(wl_buffer#2781, 0, 0) -[2619140.923] {Default Queue} -> wl_surface#3335.commit() -[2619140.927] {Default Queue} -> wl_region#3295.subtract(0, 0, 109, 161) -[2619140.933] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 570) -[2619140.937] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 570) -[2619140.941] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2619140.944] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2619141.033] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 570) -[2619141.038] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 570) -[2619141.042] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2619141.046] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2619141.052] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) -[2619141.056] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) -[2619141.116] {Default Queue} -> wl_region#3327.subtract(0, 0, 137, 570) -[2619141.121] {Default Queue} -> wl_region#3327.add(-135, -550, 137, 570) -[2619141.125] {Default Queue} -> wl_surface#3303.set_opaque_region(wl_region#3328) -[2619141.128] {Default Queue} -> wl_surface#3303.set_input_region(wl_region#3327) -[2619141.134] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) -[2619141.138] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) -[2619141.143] {Default Queue} -> wl_region#3359.subtract(0, 0, 140, 575) -[2619141.147] {Default Queue} -> wl_region#3359.add(-138, -553, 140, 555) -[2619141.151] {Default Queue} -> wl_surface#3335.set_opaque_region(wl_region#3360) -[2619141.155] {Default Queue} -> wl_surface#3335.set_input_region(wl_region#3359) -[2619141.159] {Default Queue} -> wl_surface#3271.damage(0, 0, 109, 161) -[2619141.163] {Default Queue} -> wl_region#3295.subtract(0, 0, 247, 714) -[2619141.167] {Default Queue} -> wl_region#3295.add(-135, -550, 244, 711) -[2619141.171] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) -[2619141.174] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) -[2619141.178] {Default Queue} -> wl_surface#3303.damage(0, 0, 2, 20) -[2619141.182] {Default Queue} -> wl_surface#3399.damage(0, 0, 2, 2) -[2619141.186] {Default Queue} -> wl_surface#3431.damage(0, 0, 2, 2) -[2619141.190] {Default Queue} -> wl_surface#3527.damage(0, 0, 128, 128) -[2619141.194] {Default Queue} -> wl_surface#3495.damage(0, 0, 256, 256) -[2619141.198] {Default Queue} -> wl_surface#3463.damage(0, 0, 2, 2) -[2619141.201] {Default Queue} -> wl_surface#3367.damage(0, 0, 2, 2) -[2619141.205] {Default Queue} -> wl_surface#3335.damage(0, 0, 2, 2) -[2619141.209] {Default Queue} -> wl_surface#3271.damage(0, 0, 109, 161) -[2619141.222] {Default Queue} -> wl_buffer#3764.destroy() -[2619141.227] {Default Queue} -> wl_buffer#3765.destroy() -[2619141.231] {Default Queue} -> wl_shm_pool#3762.destroy() -[2619141.234] {Default Queue} -> wl_shm_pool#3763.destroy() -[2619141.310] {Default Queue} -> wl_shm#3279.create_pool(new id wl_shm_pool#3690, fd 575, 70196) -[2619141.317] {Default Queue} -> wl_shm#3279.create_pool(new id wl_shm_pool#3693, fd 578, 70196) -[2619141.321] {Default Queue} -> wl_shm_pool#3690.create_buffer(new id wl_buffer#3692, 0, 109, 161, 436, 0) -[2619141.325] {Default Queue} -> wl_shm_pool#3693.create_buffer(new id wl_buffer#284, 0, 109, 161, 436, 0) -[2619141.347] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3692, 0, 0) -[2619141.351] {Default Queue} -> wl_surface#3271.commit() -[2619141.371] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3692, 0, 0) -[2619141.375] {Default Queue} -> wl_surface#3271.commit() -[2619141.383] {Default Queue} -> wl_region#3295.subtract(0, 0, 247, 714) -[2619141.387] {Default Queue} -> wl_region#3295.add(-135, -550, 244, 711) -[2619141.391] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) -[2619141.395] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) -[2619141.401] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3692, 0, 0) -[2619141.409] {Default Queue} -> wl_surface#3271.commit() -[2619141.418] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3692, 0, 0) -[2619141.422] {Default Queue} -> wl_surface#3271.commit() -[2619142.490] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3692, 0, 0) -[2619142.501] {Default Queue} -> wl_surface#3271.commit() -[2619142.512] {Default Queue} -> wl_region#3295.subtract(0, 0, 247, 714) -[2619142.516] {Default Queue} -> wl_region#3295.add(-135, -550, 244, 711) -[2619142.520] {Default Queue} -> wl_surface#3271.set_opaque_region(wl_region#3296) -[2619142.524] {Default Queue} -> wl_surface#3271.set_input_region(wl_region#3295) -[2619142.531] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3692, 0, 0) -[2619142.536] {Default Queue} -> wl_surface#3271.commit() -[2619142.541] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3692, 0, 0) -[2619142.545] {Default Queue} -> wl_surface#3271.commit() -[2619142.552] {Default Queue} -> wl_surface#3271.attach(wl_buffer#3692, 0, 0) -[2619142.556] {Default Queue} -> wl_surface#3271.commit() -[2619142.568] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) -[2619142.573] {Default Queue} -> wl_surface#3239.commit() -[2619143.635] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) -[2619143.640] {Default Queue} -> wl_surface#3239.commit() -[2619143.649] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) -[2619143.654] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) -[2619143.658] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2619143.662] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2619143.669] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) -[2619143.673] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) -[2619143.677] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2619143.681] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2619143.686] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) -[2619143.690] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) -[2619143.694] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2619143.698] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2619143.703] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) -[2619143.707] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) -[2619143.712] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2619143.717] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2619143.726] {Default Queue} -> wl_region#3263.subtract(0, 0, 250, 717) -[2619143.732] {Default Queue} -> wl_region#3263.add(-20, -550, 135, 717) -[2619143.737] {Default Queue} -> wl_surface#3239.set_opaque_region(wl_region#3264) -[2619143.743] {Default Queue} -> wl_surface#3239.set_input_region(wl_region#3263) -[2619143.753] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) -[2619143.760] {Default Queue} -> wl_surface#3239.commit() -[2619143.767] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) -[2619143.772] {Default Queue} -> wl_surface#3239.commit() -[2619143.780] {Default Queue} -> wl_surface#3239.attach(wl_buffer#2749, 0, 0) -[2619143.783] {Default Queue} -> wl_surface#3239.commit() -[2619143.796] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) -[2619143.801] {Default Queue} -> wl_surface#3559.commit() -[2619144.863] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) -[2619144.868] {Default Queue} -> wl_surface#3559.commit() -[2619144.880] {Default Queue} -> wl_region#3583.subtract(0, 0, 365, 717) -[2619144.884] {Default Queue} -> wl_region#3583.add(-20, -550, 135, 717) -[2619144.888] {Default Queue} -> wl_surface#3559.set_opaque_region(wl_region#3584) -[2619144.892] {Default Queue} -> wl_surface#3559.set_input_region(wl_region#3583) -[2619144.898] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) -[2619144.904] {Default Queue} -> wl_surface#3559.commit() -[2619144.913] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) -[2619144.919] {Default Queue} -> wl_surface#3559.commit() -[2619144.926] {Default Queue} -> wl_surface#3559.attach(wl_buffer#2525, 0, 0) -[2619144.929] {Default Queue} -> wl_surface#3559.commit() -[2619144.940] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) -[2619144.945] {Default Queue} -> wl_surface#3591.commit() -[2619146.007] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) -[2619146.014] {Default Queue} -> wl_surface#3591.commit() -[2619146.023] {Default Queue} -> wl_region#3615.subtract(0, 0, 480, 717) -[2619146.027] {Default Queue} -> wl_region#3615.add(-20, -550, 135, 717) -[2619146.032] {Default Queue} -> wl_surface#3591.set_opaque_region(wl_region#3616) -[2619146.040] {Default Queue} -> wl_surface#3591.set_input_region(wl_region#3615) -[2619146.053] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) -[2619146.059] {Default Queue} -> wl_surface#3591.commit() -[2619146.064] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) -[2619146.068] {Default Queue} -> wl_surface#3591.commit() -[2619146.075] {Default Queue} -> wl_surface#3591.attach(wl_buffer#2109, 0, 0) -[2619146.079] {Default Queue} -> wl_surface#3591.commit() -[2619146.090] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) -[2619146.094] {Default Queue} -> wl_surface#3623.commit() -[2619147.158] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) -[2619147.162] {Default Queue} -> wl_surface#3623.commit() -[2619147.171] {Default Queue} -> wl_region#3647.subtract(0, 0, 595, 717) -[2619147.176] {Default Queue} -> wl_region#3647.add(-20, -550, 135, 717) -[2619147.180] {Default Queue} -> wl_surface#3623.set_opaque_region(wl_region#3648) -[2619147.184] {Default Queue} -> wl_surface#3623.set_input_region(wl_region#3647) -[2619147.190] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) -[2619147.194] {Default Queue} -> wl_surface#3623.commit() -[2619147.199] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) -[2619147.203] {Default Queue} -> wl_surface#3623.commit() -[2619147.209] {Default Queue} -> wl_surface#3623.attach(wl_buffer#2908, 0, 0) -[2619147.215] {Default Queue} -> wl_surface#3623.commit() -[2619147.246] {Default Queue} -> wl_surface#2983.attach(wl_buffer#2619, 0, 0) -[2619147.251] {Default Queue} -> wl_surface#2983.commit() -[2619147.383] {Default Queue} -> wl_surface#71.attach(wl_buffer#3768, 0, 0) -[2619147.389] {Default Queue} -> wl_surface#71.commit() -[2619147.419] {Display Queue} wl_display#1.delete_id(3165) -[2619147.425] {Display Queue} wl_display#1.delete_id(3166) -[2619147.429] {Display Queue} wl_display#1.delete_id(3163) -[2619147.432] {Display Queue} wl_display#1.delete_id(3164) -[2619147.436] {Display Queue} wl_display#1.delete_id(3744) -[2619147.440] {Display Queue} wl_display#1.delete_id(3745) -[2619147.443] {Display Queue} wl_display#1.delete_id(3742) -[2619147.447] {Display Queue} wl_display#1.delete_id(3743) -[2619147.451] {Display Queue} wl_display#1.delete_id(3733) -[2619147.454] {Display Queue} wl_display#1.delete_id(3732) -[2619147.458] {Display Queue} wl_display#1.delete_id(3731) -[2619147.462] {Display Queue} wl_display#1.delete_id(3730) -[2619147.465] {Display Queue} wl_display#1.delete_id(3723) -[2619147.469] {Display Queue} wl_display#1.delete_id(3748) -[2619147.473] {Display Queue} wl_display#1.delete_id(3749) -[2619147.476] {Display Queue} wl_display#1.delete_id(3746) -[2619147.480] {Display Queue} wl_display#1.delete_id(3747) -[2619147.483] {Display Queue} wl_display#1.delete_id(3752) -[2619147.487] {Display Queue} wl_display#1.delete_id(3753) -[2619147.490] {Display Queue} wl_display#1.delete_id(3750) -[2619147.494] {Display Queue} wl_display#1.delete_id(3751) -[2619147.498] {Display Queue} wl_display#1.delete_id(3741) -[2619147.501] {Display Queue} wl_display#1.delete_id(3740) -[2619147.505] {Display Queue} wl_display#1.delete_id(3739) -[2619147.509] {Display Queue} wl_display#1.delete_id(3738) -[2619147.512] {Display Queue} wl_display#1.delete_id(3712) -[2619147.521] {Display Queue} wl_display#1.delete_id(3760) -[2619147.528] {Display Queue} wl_display#1.delete_id(3761) -[2619147.531] {Display Queue} wl_display#1.delete_id(3758) -[2619147.535] {Display Queue} wl_display#1.delete_id(3759) -[2619147.539] {Default Queue} wl_pointer#24.motion(187310777, 19.00000000, 15.80078125) -[2619147.543] {Default Queue} wl_pointer#81.motion(187310777, 19.00000000, 15.80078125) -[2619147.549] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619147.553] {Default Queue} wl_pointer#105.motion(187310777, 19.00000000, 15.80078125) -[2619147.557] {Default Queue} wl_pointer#137.motion(187310777, 19.00000000, 15.80078125) -[2619147.561] {Default Queue} wl_pointer#169.motion(187310777, 19.00000000, 15.80078125) -[2619147.565] {Default Queue} wl_pointer#201.motion(187310777, 19.00000000, 15.80078125) -[2619147.569] {Default Queue} wl_pointer#233.motion(187310777, 19.00000000, 15.80078125) -[2619147.573] {Default Queue} wl_pointer#265.motion(187310777, 19.00000000, 15.80078125) -[2619147.577] {Default Queue} wl_pointer#297.motion(187310777, 19.00000000, 15.80078125) -[2619147.581] {Default Queue} wl_pointer#329.motion(187310777, 19.00000000, 15.80078125) -[2619147.585] {Default Queue} wl_pointer#361.motion(187310777, 19.00000000, 15.80078125) -[2619147.589] {Default Queue} wl_pointer#393.motion(187310777, 19.00000000, 15.80078125) -[2619147.593] {Default Queue} wl_pointer#425.motion(187310777, 19.00000000, 15.80078125) -[2619147.597] {Default Queue} wl_pointer#457.motion(187310777, 19.00000000, 15.80078125) -[2619147.601] {Default Queue} wl_pointer#489.motion(187310777, 19.00000000, 15.80078125) -[2619147.605] {Default Queue} wl_pointer#521.motion(187310777, 19.00000000, 15.80078125) -[2619147.609] {Default Queue} wl_pointer#553.motion(187310777, 19.00000000, 15.80078125) -[2619147.613] {Default Queue} wl_pointer#585.motion(187310777, 19.00000000, 15.80078125) -[2619147.617] {Default Queue} wl_pointer#617.motion(187310777, 19.00000000, 15.80078125) -[2619147.621] {Default Queue} wl_pointer#649.motion(187310777, 19.00000000, 15.80078125) -[2619147.625] {Default Queue} wl_pointer#681.motion(187310777, 19.00000000, 15.80078125) -[2619147.629] {Default Queue} wl_pointer#713.motion(187310777, 19.00000000, 15.80078125) -[2619147.632] {Default Queue} wl_pointer#745.motion(187310777, 19.00000000, 15.80078125) -[2619147.636] {Default Queue} wl_pointer#777.motion(187310777, 19.00000000, 15.80078125) -[2619147.641] {Default Queue} wl_pointer#809.motion(187310777, 19.00000000, 15.80078125) -[2619147.645] {Default Queue} wl_pointer#841.motion(187310777, 19.00000000, 15.80078125) -[2619147.649] {Default Queue} wl_pointer#873.motion(187310777, 19.00000000, 15.80078125) -[2619147.653] {Default Queue} wl_pointer#905.motion(187310777, 19.00000000, 15.80078125) -[2619147.656] {Default Queue} wl_pointer#937.motion(187310777, 19.00000000, 15.80078125) -[2619147.660] {Default Queue} wl_pointer#969.motion(187310777, 19.00000000, 15.80078125) -[2619147.664] {Default Queue} wl_pointer#1001.motion(187310777, 19.00000000, 15.80078125) -[2619147.668] {Default Queue} wl_pointer#1033.motion(187310777, 19.00000000, 15.80078125) -[2619147.672] {Default Queue} wl_pointer#1065.motion(187310777, 19.00000000, 15.80078125) -[2619147.676] {Default Queue} wl_pointer#1097.motion(187310777, 19.00000000, 15.80078125) -[2619147.680] {Default Queue} wl_pointer#1129.motion(187310777, 19.00000000, 15.80078125) -[2619147.684] {Default Queue} wl_pointer#1161.motion(187310777, 19.00000000, 15.80078125) -[2619147.688] {Default Queue} wl_pointer#1193.motion(187310777, 19.00000000, 15.80078125) -[2619147.692] {Default Queue} wl_pointer#1225.motion(187310777, 19.00000000, 15.80078125) -[2619147.696] {Default Queue} wl_pointer#1257.motion(187310777, 19.00000000, 15.80078125) -[2619147.700] {Default Queue} wl_pointer#1289.motion(187310777, 19.00000000, 15.80078125) -[2619147.704] {Default Queue} wl_pointer#1321.motion(187310777, 19.00000000, 15.80078125) -[2619147.707] {Default Queue} wl_pointer#1353.motion(187310777, 19.00000000, 15.80078125) -[2619147.711] {Default Queue} wl_pointer#1385.motion(187310777, 19.00000000, 15.80078125) -[2619147.718] {Default Queue} wl_pointer#1417.motion(187310777, 19.00000000, 15.80078125) -[2619147.724] {Default Queue} wl_pointer#1449.motion(187310777, 19.00000000, 15.80078125) -[2619147.728] {Default Queue} wl_pointer#1481.motion(187310777, 19.00000000, 15.80078125) -[2619147.731] {Default Queue} wl_pointer#1513.motion(187310777, 19.00000000, 15.80078125) -[2619147.735] {Default Queue} wl_pointer#1545.motion(187310777, 19.00000000, 15.80078125) -[2619147.739] {Default Queue} wl_pointer#1577.motion(187310777, 19.00000000, 15.80078125) -[2619147.743] {Default Queue} wl_pointer#1609.motion(187310777, 19.00000000, 15.80078125) -[2619147.747] {Default Queue} wl_pointer#1641.motion(187310777, 19.00000000, 15.80078125) -[2619147.751] {Default Queue} wl_pointer#1673.motion(187310777, 19.00000000, 15.80078125) -[2619147.755] {Default Queue} wl_pointer#1705.motion(187310777, 19.00000000, 15.80078125) -[2619147.759] {Default Queue} wl_pointer#1737.motion(187310777, 19.00000000, 15.80078125) -[2619147.764] {Default Queue} wl_pointer#1762.motion(187310777, 19.00000000, 15.80078125) -[2619147.769] {Default Queue} wl_pointer#1801.motion(187310777, 19.00000000, 15.80078125) -[2619147.775] {Default Queue} wl_pointer#1833.motion(187310777, 19.00000000, 15.80078125) -[2619147.782] {Default Queue} wl_pointer#1865.motion(187310777, 19.00000000, 15.80078125) -[2619147.788] {Default Queue} wl_pointer#1897.motion(187310777, 19.00000000, 15.80078125) -[2619147.794] {Default Queue} wl_pointer#1929.motion(187310777, 19.00000000, 15.80078125) -[2619147.800] {Default Queue} wl_pointer#1961.motion(187310777, 19.00000000, 15.80078125) -[2619147.806] {Default Queue} wl_pointer#1993.motion(187310777, 19.00000000, 15.80078125) -[2619147.812] {Default Queue} wl_pointer#2025.motion(187310777, 19.00000000, 15.80078125) -[2619147.818] {Default Queue} wl_pointer#2057.motion(187310777, 19.00000000, 15.80078125) -[2619147.823] {Default Queue} wl_pointer#2089.motion(187310777, 19.00000000, 15.80078125) -[2619147.827] {Default Queue} wl_pointer#2121.motion(187310777, 19.00000000, 15.80078125) -[2619147.831] {Default Queue} wl_pointer#2153.motion(187310777, 19.00000000, 15.80078125) -[2619147.834] {Default Queue} wl_pointer#2185.motion(187310777, 19.00000000, 15.80078125) -[2619147.838] {Default Queue} wl_pointer#2217.motion(187310777, 19.00000000, 15.80078125) -[2619147.842] {Default Queue} wl_pointer#2249.motion(187310777, 19.00000000, 15.80078125) -[2619147.846] {Default Queue} wl_pointer#2281.motion(187310777, 19.00000000, 15.80078125) -[2619147.850] {Default Queue} wl_pointer#2313.motion(187310777, 19.00000000, 15.80078125) -[2619147.855] {Default Queue} wl_pointer#2345.motion(187310777, 19.00000000, 15.80078125) -[2619147.859] {Default Queue} wl_pointer#2377.motion(187310777, 19.00000000, 15.80078125) -[2619147.864] {Default Queue} wl_pointer#2409.motion(187310777, 19.00000000, 15.80078125) -[2619147.868] {Default Queue} wl_pointer#2441.motion(187310777, 19.00000000, 15.80078125) -[2619147.875] {Default Queue} wl_pointer#2473.motion(187310777, 19.00000000, 15.80078125) -[2619147.879] {Default Queue} wl_pointer#2498.motion(187310777, 19.00000000, 15.80078125) -[2619147.891] {Default Queue} -> wl_buffer#3727.destroy() -[2619147.896] {Default Queue} -> wl_buffer#3728.destroy() -[2619147.900] {Default Queue} -> wl_shm_pool#3708.destroy() -[2619147.904] {Default Queue} -> wl_shm_pool#3726.destroy() -[2619147.909] {Default Queue} -> wl_surface#3729.destroy() -[2619147.949] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3759, fd 575, 640) -[2619147.955] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3758, fd 578, 640) -[2619147.959] {Default Queue} -> wl_shm_pool#3759.create_buffer(new id wl_buffer#3761, 0, 10, 16, 40, 0) -[2619147.963] {Default Queue} -> wl_shm_pool#3758.create_buffer(new id wl_buffer#3760, 0, 10, 16, 40, 0) -[2619147.971] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3712) -[2619147.975] {Default Queue} -> wl_surface#3712.attach(wl_buffer#3761, 0, 0) -[2619147.979] {Default Queue} -> wl_surface#3712.commit() -[2619147.987] {Default Queue} -> wl_surface#3712.attach(wl_buffer#3761, 0, 0) -[2619147.993] {Default Queue} -> wl_surface#3712.commit() -[2619147.997] {Default Queue} wl_pointer#2537.motion(187310777, 19.00000000, 15.80078125) -[2619148.001] {Default Queue} wl_pointer#2569.motion(187310777, 19.00000000, 15.80078125) -[2619148.006] {Default Queue} wl_pointer#2601.motion(187310777, 19.00000000, 15.80078125) -[2619148.010] {Default Queue} wl_pointer#2633.motion(187310777, 19.00000000, 15.80078125) -[2619148.014] {Default Queue} wl_pointer#2665.motion(187310777, 19.00000000, 15.80078125) -[2619148.018] {Default Queue} wl_pointer#2697.motion(187310777, 19.00000000, 15.80078125) -[2619148.022] {Default Queue} wl_pointer#2729.motion(187310777, 19.00000000, 15.80078125) -[2619148.026] {Default Queue} wl_pointer#2761.motion(187310777, 19.00000000, 15.80078125) -[2619148.030] {Default Queue} wl_pointer#2793.motion(187310777, 19.00000000, 15.80078125) -[2619148.034] {Default Queue} wl_pointer#2825.motion(187310777, 19.00000000, 15.80078125) -[2619148.038] {Default Queue} wl_pointer#2857.motion(187310777, 19.00000000, 15.80078125) -[2619148.042] {Default Queue} wl_pointer#2889.motion(187310777, 19.00000000, 15.80078125) -[2619148.046] {Default Queue} wl_pointer#2921.motion(187310777, 19.00000000, 15.80078125) -[2619148.050] {Default Queue} wl_pointer#2953.motion(187310777, 19.00000000, 15.80078125) -[2619148.055] {Default Queue} wl_pointer#2985.motion(187310777, 19.00000000, 15.80078125) -[2619148.060] {Default Queue} wl_pointer#3017.motion(187310777, 19.00000000, 15.80078125) -[2619148.069] {Default Queue} wl_pointer#3049.motion(187310777, 19.00000000, 15.80078125) -[2619148.078] {Default Queue} wl_pointer#3081.motion(187310777, 19.00000000, 15.80078125) -[2619148.083] {Default Queue} wl_pointer#3113.motion(187310777, 19.00000000, 15.80078125) -[2619148.087] {Default Queue} wl_pointer#3145.motion(187310777, 19.00000000, 15.80078125) -[2619148.091] {Default Queue} wl_pointer#3177.motion(187310777, 19.00000000, 15.80078125) -[2619148.095] {Default Queue} wl_pointer#3209.motion(187310777, 19.00000000, 15.80078125) -[2619148.099] {Default Queue} wl_pointer#3241.motion(187310777, 19.00000000, 15.80078125) -[2619148.103] {Default Queue} wl_pointer#3273.motion(187310777, 19.00000000, 15.80078125) -[2619148.107] {Default Queue} wl_pointer#3305.motion(187310777, 19.00000000, 15.80078125) -[2619148.111] {Default Queue} wl_pointer#3337.motion(187310777, 19.00000000, 15.80078125) -[2619148.115] {Default Queue} wl_pointer#3369.motion(187310777, 19.00000000, 15.80078125) -[2619148.119] {Default Queue} wl_pointer#3401.motion(187310777, 19.00000000, 15.80078125) -[2619148.123] {Default Queue} wl_pointer#3433.motion(187310777, 19.00000000, 15.80078125) -[2619148.127] {Default Queue} wl_pointer#3465.motion(187310777, 19.00000000, 15.80078125) -[2619148.131] {Default Queue} wl_pointer#3497.motion(187310777, 19.00000000, 15.80078125) -[2619148.135] {Default Queue} wl_pointer#3529.motion(187310777, 19.00000000, 15.80078125) -[2619148.139] {Default Queue} wl_pointer#3561.motion(187310777, 19.00000000, 15.80078125) -[2619148.143] {Default Queue} wl_pointer#3593.motion(187310777, 19.00000000, 15.80078125) -[2619148.147] {Default Queue} wl_pointer#3625.motion(187310777, 19.00000000, 15.80078125) -[2619148.151] {Default Queue} wl_pointer#3657.motion(187310777, 19.00000000, 15.80078125) -[2619148.155] {Default Queue} wl_pointer#3695.motion(187310777, 19.00000000, 15.80078125) -[2619148.361] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) -[2619148.368] {Default Queue} -> wl_surface#3.commit() -[2619148.647] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) -[2619148.654] {Default Queue} -> wl_surface#19.commit() -[2619149.789] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) -[2619149.796] {Default Queue} -> wl_surface#3.commit() -[2619149.879] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) -[2619149.886] {Default Queue} -> wl_surface#19.commit() -[2619149.933] {Default Queue} -> wl_surface#3.attach(wl_buffer#78, 0, 0) -[2619149.943] {Default Queue} -> wl_surface#3.commit() -[2619149.984] {Default Queue} -> wl_surface#19.attach(wl_buffer#74, 0, 0) -[2619149.990] {Default Queue} -> wl_surface#19.commit() -[2619150.001] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2619150.006] {Default Queue} -> wl_surface#43.commit() -[2619150.012] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) -[2619150.016] {Default Queue} -> wl_surface#199.commit() -[2619150.023] {Default Queue} -> wl_surface#43.attach(wl_buffer#3688, 0, 0) -[2619150.028] {Default Queue} -> wl_surface#43.commit() -[2619150.040] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) -[2619150.047] {Default Queue} -> wl_surface#199.commit() -[2619151.110] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) -[2619151.116] {Default Queue} -> wl_surface#199.commit() -[2619151.127] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 69) -[2619151.131] {Default Queue} -> wl_region#223.add(-20, -49, 22, 69) -[2619151.136] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2619151.139] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2619151.215] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 69) -[2619151.219] {Default Queue} -> wl_region#223.add(-20, -49, 22, 69) -[2619151.223] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2619151.227] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2619151.234] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2619151.238] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2619151.288] {Default Queue} -> wl_region#223.subtract(0, 0, 22, 69) -[2619151.292] {Default Queue} -> wl_region#223.add(-20, -49, 22, 69) -[2619151.296] {Default Queue} -> wl_surface#199.set_opaque_region(wl_region#224) -[2619151.300] {Default Queue} -> wl_surface#199.set_input_region(wl_region#223) -[2619151.305] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2619151.309] {Default Queue} -> wl_surface#199.damage(0, 0, 2, 20) -[2619151.314] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) -[2619151.318] {Default Queue} -> wl_surface#199.commit() -[2619151.322] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) -[2619151.326] {Default Queue} -> wl_surface#199.commit() -[2619151.331] {Default Queue} -> wl_surface#199.attach(wl_buffer#3229, 0, 0) -[2619151.335] {Default Queue} -> wl_surface#199.commit() -[2619151.341] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) -[2619151.345] {Default Queue} -> wl_surface#263.commit() -[2619152.410] {Display Queue} wl_display#1.delete_id(3389) -[2619152.424] {Display Queue} wl_display#1.delete_id(3390) -[2619152.429] {Display Queue} wl_display#1.delete_id(3387) -[2619152.433] {Display Queue} wl_display#1.delete_id(3388) -[2619152.437] {Display Queue} wl_display#1.delete_id(3764) -[2619152.440] {Display Queue} wl_display#1.delete_id(3765) -[2619152.444] {Display Queue} wl_display#1.delete_id(3762) -[2619152.447] {Display Queue} wl_display#1.delete_id(3763) -[2619152.451] {Default Queue} wl_pointer#24.motion(187310782, 18.60156250, 15.80078125) -[2619152.456] {Default Queue} wl_pointer#81.motion(187310782, 18.60156250, 15.80078125) -[2619152.462] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619152.466] {Default Queue} wl_pointer#105.motion(187310782, 18.60156250, 15.80078125) -[2619152.470] {Default Queue} wl_pointer#137.motion(187310782, 18.60156250, 15.80078125) -[2619152.474] {Default Queue} wl_pointer#169.motion(187310782, 18.60156250, 15.80078125) -[2619152.479] {Default Queue} wl_pointer#201.motion(187310782, 18.60156250, 15.80078125) -[2619152.483] {Default Queue} wl_pointer#233.motion(187310782, 18.60156250, 15.80078125) -[2619152.487] {Default Queue} wl_pointer#265.motion(187310782, 18.60156250, 15.80078125) -[2619152.491] {Default Queue} wl_pointer#297.motion(187310782, 18.60156250, 15.80078125) -[2619152.495] {Default Queue} wl_pointer#329.motion(187310782, 18.60156250, 15.80078125) -[2619152.498] {Default Queue} wl_pointer#361.motion(187310782, 18.60156250, 15.80078125) -[2619152.507] {Default Queue} wl_pointer#393.motion(187310782, 18.60156250, 15.80078125) -[2619152.516] {Default Queue} wl_pointer#425.motion(187310782, 18.60156250, 15.80078125) -[2619152.520] {Default Queue} wl_pointer#457.motion(187310782, 18.60156250, 15.80078125) -[2619152.524] {Default Queue} wl_pointer#489.motion(187310782, 18.60156250, 15.80078125) -[2619152.528] {Default Queue} wl_pointer#521.motion(187310782, 18.60156250, 15.80078125) -[2619152.532] {Default Queue} wl_pointer#553.motion(187310782, 18.60156250, 15.80078125) -[2619152.536] {Default Queue} wl_pointer#585.motion(187310782, 18.60156250, 15.80078125) -[2619152.540] {Default Queue} wl_pointer#617.motion(187310782, 18.60156250, 15.80078125) -[2619152.544] {Default Queue} wl_pointer#649.motion(187310782, 18.60156250, 15.80078125) -[2619152.548] {Default Queue} wl_pointer#681.motion(187310782, 18.60156250, 15.80078125) -[2619152.552] {Default Queue} wl_pointer#713.motion(187310782, 18.60156250, 15.80078125) -[2619152.556] {Default Queue} wl_pointer#745.motion(187310782, 18.60156250, 15.80078125) -[2619152.560] {Default Queue} wl_pointer#777.motion(187310782, 18.60156250, 15.80078125) -[2619152.564] {Default Queue} wl_pointer#809.motion(187310782, 18.60156250, 15.80078125) -[2619152.568] {Default Queue} wl_pointer#841.motion(187310782, 18.60156250, 15.80078125) -[2619152.571] {Default Queue} wl_pointer#873.motion(187310782, 18.60156250, 15.80078125) -[2619152.575] {Default Queue} wl_pointer#905.motion(187310782, 18.60156250, 15.80078125) -[2619152.579] {Default Queue} wl_pointer#937.motion(187310782, 18.60156250, 15.80078125) -[2619152.583] {Default Queue} wl_pointer#969.motion(187310782, 18.60156250, 15.80078125) -[2619152.587] {Default Queue} wl_pointer#1001.motion(187310782, 18.60156250, 15.80078125) -[2619152.591] {Default Queue} wl_pointer#1033.motion(187310782, 18.60156250, 15.80078125) -[2619152.595] {Default Queue} wl_pointer#1065.motion(187310782, 18.60156250, 15.80078125) -[2619152.599] {Default Queue} wl_pointer#1097.motion(187310782, 18.60156250, 15.80078125) -[2619152.603] {Default Queue} wl_pointer#1129.motion(187310782, 18.60156250, 15.80078125) -[2619152.607] {Default Queue} wl_pointer#1161.motion(187310782, 18.60156250, 15.80078125) -[2619152.610] {Default Queue} wl_pointer#1193.motion(187310782, 18.60156250, 15.80078125) -[2619152.614] {Default Queue} wl_pointer#1225.motion(187310782, 18.60156250, 15.80078125) -[2619152.618] {Default Queue} wl_pointer#1257.motion(187310782, 18.60156250, 15.80078125) -[2619152.622] {Default Queue} wl_pointer#1289.motion(187310782, 18.60156250, 15.80078125) -[2619152.626] {Default Queue} wl_pointer#1321.motion(187310782, 18.60156250, 15.80078125) -[2619152.630] {Default Queue} wl_pointer#1353.motion(187310782, 18.60156250, 15.80078125) -[2619152.634] {Default Queue} wl_pointer#1385.motion(187310782, 18.60156250, 15.80078125) -[2619152.638] {Default Queue} wl_pointer#1417.motion(187310782, 18.60156250, 15.80078125) -[2619152.642] {Default Queue} wl_pointer#1449.motion(187310782, 18.60156250, 15.80078125) -[2619152.645] {Default Queue} wl_pointer#1481.motion(187310782, 18.60156250, 15.80078125) -[2619152.649] {Default Queue} wl_pointer#1513.motion(187310782, 18.60156250, 15.80078125) -[2619152.653] {Default Queue} wl_pointer#1545.motion(187310782, 18.60156250, 15.80078125) -[2619152.657] {Default Queue} wl_pointer#1577.motion(187310782, 18.60156250, 15.80078125) -[2619152.661] {Default Queue} wl_pointer#1609.motion(187310782, 18.60156250, 15.80078125) -[2619152.665] {Default Queue} wl_pointer#1641.motion(187310782, 18.60156250, 15.80078125) -[2619152.669] {Default Queue} wl_pointer#1673.motion(187310782, 18.60156250, 15.80078125) -[2619152.673] {Default Queue} wl_pointer#1705.motion(187310782, 18.60156250, 15.80078125) -[2619152.677] {Default Queue} wl_pointer#1737.motion(187310782, 18.60156250, 15.80078125) -[2619152.681] {Default Queue} wl_pointer#1762.motion(187310782, 18.60156250, 15.80078125) -[2619152.685] {Default Queue} wl_pointer#1801.motion(187310782, 18.60156250, 15.80078125) -[2619152.689] {Default Queue} wl_pointer#1833.motion(187310782, 18.60156250, 15.80078125) -[2619152.696] {Default Queue} wl_pointer#1865.motion(187310782, 18.60156250, 15.80078125) -[2619152.701] {Default Queue} wl_pointer#1897.motion(187310782, 18.60156250, 15.80078125) -[2619152.705] {Default Queue} wl_pointer#1929.motion(187310782, 18.60156250, 15.80078125) -[2619152.709] {Default Queue} wl_pointer#1961.motion(187310782, 18.60156250, 15.80078125) -[2619152.713] {Default Queue} wl_pointer#1993.motion(187310782, 18.60156250, 15.80078125) -[2619152.717] {Default Queue} wl_pointer#2025.motion(187310782, 18.60156250, 15.80078125) -[2619152.721] {Default Queue} wl_pointer#2057.motion(187310782, 18.60156250, 15.80078125) -[2619152.725] {Default Queue} wl_pointer#2089.motion(187310782, 18.60156250, 15.80078125) -[2619152.729] {Default Queue} wl_pointer#2121.motion(187310782, 18.60156250, 15.80078125) -[2619152.732] {Default Queue} wl_pointer#2153.motion(187310782, 18.60156250, 15.80078125) -[2619152.736] {Default Queue} wl_pointer#2185.motion(187310782, 18.60156250, 15.80078125) -[2619152.740] {Default Queue} wl_pointer#2217.motion(187310782, 18.60156250, 15.80078125) -[2619152.744] {Default Queue} wl_pointer#2249.motion(187310782, 18.60156250, 15.80078125) -[2619152.748] {Default Queue} wl_pointer#2281.motion(187310782, 18.60156250, 15.80078125) -[2619152.752] {Default Queue} wl_pointer#2313.motion(187310782, 18.60156250, 15.80078125) -[2619152.756] {Default Queue} wl_pointer#2345.motion(187310782, 18.60156250, 15.80078125) -[2619152.760] {Default Queue} wl_pointer#2377.motion(187310782, 18.60156250, 15.80078125) -[2619152.764] {Default Queue} wl_pointer#2409.motion(187310782, 18.60156250, 15.80078125) -[2619152.769] {Default Queue} wl_pointer#2441.motion(187310782, 18.60156250, 15.80078125) -[2619152.772] {Default Queue} wl_pointer#2473.motion(187310782, 18.60156250, 15.80078125) -[2619152.776] {Default Queue} wl_pointer#2498.motion(187310782, 18.60156250, 15.80078125) -[2619152.789] {Default Queue} -> wl_buffer#3761.destroy() -[2619152.794] {Default Queue} -> wl_buffer#3760.destroy() -[2619152.798] {Default Queue} -> wl_shm_pool#3759.destroy() -[2619152.801] {Default Queue} -> wl_shm_pool#3758.destroy() -[2619152.806] {Default Queue} -> wl_surface#3712.destroy() -[2619152.845] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3763, fd 575, 640) -[2619152.851] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3762, fd 578, 640) -[2619152.855] {Default Queue} -> wl_shm_pool#3763.create_buffer(new id wl_buffer#3765, 0, 10, 16, 40, 0) -[2619152.860] {Default Queue} -> wl_shm_pool#3762.create_buffer(new id wl_buffer#3764, 0, 10, 16, 40, 0) -[2619152.874] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3388) -[2619152.878] {Default Queue} -> wl_surface#3388.attach(wl_buffer#3765, 0, 0) -[2619152.882] {Default Queue} -> wl_surface#3388.commit() -[2619152.887] {Default Queue} -> wl_surface#3388.attach(wl_buffer#3765, 0, 0) -[2619152.891] {Default Queue} -> wl_surface#3388.commit() -[2619152.895] {Default Queue} wl_pointer#2537.motion(187310782, 18.60156250, 15.80078125) -[2619152.899] {Default Queue} wl_pointer#2569.motion(187310782, 18.60156250, 15.80078125) -[2619152.903] {Default Queue} wl_pointer#2601.motion(187310782, 18.60156250, 15.80078125) -[2619152.907] {Default Queue} wl_pointer#2633.motion(187310782, 18.60156250, 15.80078125) -[2619152.911] {Default Queue} wl_pointer#2665.motion(187310782, 18.60156250, 15.80078125) -[2619152.915] {Default Queue} wl_pointer#2697.motion(187310782, 18.60156250, 15.80078125) -[2619152.919] {Default Queue} wl_pointer#2729.motion(187310782, 18.60156250, 15.80078125) -[2619152.923] {Default Queue} wl_pointer#2761.motion(187310782, 18.60156250, 15.80078125) -[2619152.927] {Default Queue} wl_pointer#2793.motion(187310782, 18.60156250, 15.80078125) -[2619152.931] {Default Queue} wl_pointer#2825.motion(187310782, 18.60156250, 15.80078125) -[2619152.936] {Default Queue} wl_pointer#2857.motion(187310782, 18.60156250, 15.80078125) -[2619152.940] {Default Queue} wl_pointer#2889.motion(187310782, 18.60156250, 15.80078125) -[2619152.947] {Default Queue} wl_pointer#2921.motion(187310782, 18.60156250, 15.80078125) -[2619152.952] {Default Queue} wl_pointer#2953.motion(187310782, 18.60156250, 15.80078125) -[2619152.956] {Default Queue} wl_pointer#2985.motion(187310782, 18.60156250, 15.80078125) -[2619152.960] {Default Queue} wl_pointer#3017.motion(187310782, 18.60156250, 15.80078125) -[2619152.964] {Default Queue} wl_pointer#3049.motion(187310782, 18.60156250, 15.80078125) -[2619152.968] {Default Queue} wl_pointer#3081.motion(187310782, 18.60156250, 15.80078125) -[2619152.972] {Default Queue} wl_pointer#3113.motion(187310782, 18.60156250, 15.80078125) -[2619152.976] {Default Queue} wl_pointer#3145.motion(187310782, 18.60156250, 15.80078125) -[2619152.980] {Default Queue} wl_pointer#3177.motion(187310782, 18.60156250, 15.80078125) -[2619152.984] {Default Queue} wl_pointer#3209.motion(187310782, 18.60156250, 15.80078125) -[2619152.988] {Default Queue} wl_pointer#3241.motion(187310782, 18.60156250, 15.80078125) -[2619152.992] {Default Queue} wl_pointer#3273.motion(187310782, 18.60156250, 15.80078125) -[2619152.996] {Default Queue} wl_pointer#3305.motion(187310782, 18.60156250, 15.80078125) -[2619153.000] {Default Queue} wl_pointer#3337.motion(187310782, 18.60156250, 15.80078125) -[2619153.004] {Default Queue} wl_pointer#3369.motion(187310782, 18.60156250, 15.80078125) -[2619153.008] {Default Queue} wl_pointer#3401.motion(187310782, 18.60156250, 15.80078125) -[2619153.012] {Default Queue} wl_pointer#3433.motion(187310782, 18.60156250, 15.80078125) -[2619153.016] {Default Queue} wl_pointer#3465.motion(187310782, 18.60156250, 15.80078125) -[2619153.020] {Default Queue} wl_pointer#3497.motion(187310782, 18.60156250, 15.80078125) -[2619153.024] {Default Queue} wl_pointer#3529.motion(187310782, 18.60156250, 15.80078125) -[2619153.028] {Default Queue} wl_pointer#3561.motion(187310782, 18.60156250, 15.80078125) -[2619153.032] {Default Queue} wl_pointer#3593.motion(187310782, 18.60156250, 15.80078125) -[2619153.036] {Default Queue} wl_pointer#3625.motion(187310782, 18.60156250, 15.80078125) -[2619153.041] {Default Queue} wl_pointer#3657.motion(187310782, 18.60156250, 15.80078125) -[2619153.044] {Default Queue} wl_pointer#3695.motion(187310782, 18.60156250, 15.80078125) -[2619153.056] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) -[2619153.062] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) -[2619153.066] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2619153.070] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2619153.078] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) -[2619153.082] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) -[2619153.086] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2619153.090] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2619153.097] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) -[2619153.101] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) -[2619153.105] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2619153.109] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2619153.113] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) -[2619153.117] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) -[2619153.121] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2619153.125] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2619153.129] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) -[2619153.133] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) -[2619153.137] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2619153.141] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2619153.220] {Default Queue} -> wl_region#287.subtract(0, 0, 25, 74) -[2619153.225] {Default Queue} -> wl_region#287.add(-23, -72, 24, 73) -[2619153.229] {Default Queue} -> wl_surface#263.set_opaque_region(wl_region#288) -[2619153.233] {Default Queue} -> wl_surface#263.set_input_region(wl_region#287) -[2619153.244] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2619153.250] {Default Queue} -> wl_surface#263.damage(0, 0, 2, 2) -[2619153.255] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) -[2619153.259] {Default Queue} -> wl_surface#263.commit() -[2619153.263] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) -[2619153.266] {Default Queue} -> wl_surface#263.commit() -[2619153.273] {Default Queue} -> wl_surface#263.attach(wl_buffer#2587, 0, 0) -[2619153.276] {Default Queue} -> wl_surface#263.commit() -[2619153.283] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) -[2619153.287] {Default Queue} -> wl_surface#231.commit() -[2619154.351] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) -[2619154.358] {Default Queue} -> wl_surface#231.commit() -[2619154.366] {Default Queue} -> wl_region#255.subtract(0, 0, 25, 74) -[2619154.371] {Default Queue} -> wl_region#255.add(-23, -52, 25, 54) -[2619154.375] {Default Queue} -> wl_surface#231.set_opaque_region(wl_region#256) -[2619154.378] {Default Queue} -> wl_surface#231.set_input_region(wl_region#255) -[2619154.383] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) -[2619154.387] {Default Queue} -> wl_surface#231.commit() -[2619154.391] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) -[2619154.395] {Default Queue} -> wl_surface#231.commit() -[2619154.400] {Default Queue} -> wl_surface#231.attach(wl_buffer#2877, 0, 0) -[2619154.404] {Default Queue} -> wl_surface#231.commit() -[2619154.417] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) -[2619154.421] {Default Queue} -> wl_surface#167.commit() -[2619155.483] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) -[2619155.488] {Default Queue} -> wl_surface#167.commit() -[2619155.495] {Default Queue} -> wl_region#191.subtract(0, 0, 132, 213) -[2619155.499] {Default Queue} -> wl_region#191.add(-20, -49, 129, 210) -[2619155.502] {Default Queue} -> wl_surface#167.set_opaque_region(wl_region#192) -[2619155.506] {Default Queue} -> wl_surface#167.set_input_region(wl_region#191) -[2619155.513] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) -[2619155.520] {Default Queue} -> wl_surface#167.commit() -[2619155.525] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) -[2619155.529] {Default Queue} -> wl_surface#167.commit() -[2619155.535] {Default Queue} -> wl_surface#167.attach(wl_buffer#2363, 0, 0) -[2619155.539] {Default Queue} -> wl_surface#167.commit() -[2619155.550] {Default Queue} -> wl_surface#135.attach(wl_buffer#2396, 0, 0) -[2619155.554] {Default Queue} -> wl_surface#135.commit() -[2619155.574] {Default Queue} -> wl_surface#295.attach(wl_buffer#2172, 0, 0) -[2619155.579] {Default Queue} -> wl_surface#295.commit() -[2619155.585] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) -[2619155.589] {Default Queue} -> wl_surface#391.commit() -[2619156.651] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) -[2619156.662] {Default Queue} -> wl_surface#391.commit() -[2619156.673] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 69) -[2619156.680] {Default Queue} -> wl_region#415.add(-480, -49, 482, 69) -[2619156.684] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2619156.688] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2619156.780] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 69) -[2619156.785] {Default Queue} -> wl_region#415.add(-480, -49, 482, 69) -[2619156.789] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2619156.793] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2619156.799] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2619156.803] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2619156.872] {Default Queue} -> wl_region#415.subtract(0, 0, 482, 69) -[2619156.877] {Default Queue} -> wl_region#415.add(-480, -49, 482, 69) -[2619156.893] {Default Queue} -> wl_surface#391.set_opaque_region(wl_region#416) -[2619156.898] {Default Queue} -> wl_surface#391.set_input_region(wl_region#415) -[2619156.911] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2619156.920] {Default Queue} -> wl_surface#391.damage(0, 0, 2, 20) -[2619156.926] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) -[2619156.931] {Default Queue} -> wl_surface#391.commit() -[2619156.935] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) -[2619156.938] {Default Queue} -> wl_surface#391.commit() -[2619156.945] {Default Queue} -> wl_surface#391.attach(wl_buffer#1979, 0, 0) -[2619156.949] {Default Queue} -> wl_surface#391.commit() -[2619156.955] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) -[2619156.959] {Default Queue} -> wl_surface#519.commit() -[2619157.014] {Display Queue} wl_display#1.delete_id(3727) -[2619157.022] {Display Queue} wl_display#1.delete_id(3728) -[2619157.025] {Display Queue} wl_display#1.delete_id(3708) -[2619157.029] {Display Queue} wl_display#1.delete_id(3726) -[2619157.033] {Display Queue} wl_display#1.delete_id(3729) -[2619157.037] {Default Queue} wl_pointer#24.motion(187310787, 18.19921875, 15.80078125) -[2619157.041] {Default Queue} wl_pointer#81.motion(187310787, 18.19921875, 15.80078125) -[2619157.046] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619157.051] {Default Queue} wl_pointer#105.motion(187310787, 18.19921875, 15.80078125) -[2619157.055] {Default Queue} wl_pointer#137.motion(187310787, 18.19921875, 15.80078125) -[2619157.059] {Default Queue} wl_pointer#169.motion(187310787, 18.19921875, 15.80078125) -[2619157.063] {Default Queue} wl_pointer#201.motion(187310787, 18.19921875, 15.80078125) -[2619157.067] {Default Queue} wl_pointer#233.motion(187310787, 18.19921875, 15.80078125) -[2619157.071] {Default Queue} wl_pointer#265.motion(187310787, 18.19921875, 15.80078125) -[2619157.075] {Default Queue} wl_pointer#297.motion(187310787, 18.19921875, 15.80078125) -[2619157.079] {Default Queue} wl_pointer#329.motion(187310787, 18.19921875, 15.80078125) -[2619157.083] {Default Queue} wl_pointer#361.motion(187310787, 18.19921875, 15.80078125) -[2619157.087] {Default Queue} wl_pointer#393.motion(187310787, 18.19921875, 15.80078125) -[2619157.091] {Default Queue} wl_pointer#425.motion(187310787, 18.19921875, 15.80078125) -[2619157.095] {Default Queue} wl_pointer#457.motion(187310787, 18.19921875, 15.80078125) -[2619157.099] {Default Queue} wl_pointer#489.motion(187310787, 18.19921875, 15.80078125) -[2619157.103] {Default Queue} wl_pointer#521.motion(187310787, 18.19921875, 15.80078125) -[2619157.107] {Default Queue} wl_pointer#553.motion(187310787, 18.19921875, 15.80078125) -[2619157.111] {Default Queue} wl_pointer#585.motion(187310787, 18.19921875, 15.80078125) -[2619157.115] {Default Queue} wl_pointer#617.motion(187310787, 18.19921875, 15.80078125) -[2619157.119] {Default Queue} wl_pointer#649.motion(187310787, 18.19921875, 15.80078125) -[2619157.123] {Default Queue} wl_pointer#681.motion(187310787, 18.19921875, 15.80078125) -[2619157.126] {Default Queue} wl_pointer#713.motion(187310787, 18.19921875, 15.80078125) -[2619157.130] {Default Queue} wl_pointer#745.motion(187310787, 18.19921875, 15.80078125) -[2619157.134] {Default Queue} wl_pointer#777.motion(187310787, 18.19921875, 15.80078125) -[2619157.138] {Default Queue} wl_pointer#809.motion(187310787, 18.19921875, 15.80078125) -[2619157.142] {Default Queue} wl_pointer#841.motion(187310787, 18.19921875, 15.80078125) -[2619157.146] {Default Queue} wl_pointer#873.motion(187310787, 18.19921875, 15.80078125) -[2619157.150] {Default Queue} wl_pointer#905.motion(187310787, 18.19921875, 15.80078125) -[2619157.154] {Default Queue} wl_pointer#937.motion(187310787, 18.19921875, 15.80078125) -[2619157.158] {Default Queue} wl_pointer#969.motion(187310787, 18.19921875, 15.80078125) -[2619157.162] {Default Queue} wl_pointer#1001.motion(187310787, 18.19921875, 15.80078125) -[2619157.166] {Default Queue} wl_pointer#1033.motion(187310787, 18.19921875, 15.80078125) -[2619157.170] {Default Queue} wl_pointer#1065.motion(187310787, 18.19921875, 15.80078125) -[2619157.174] {Default Queue} wl_pointer#1097.motion(187310787, 18.19921875, 15.80078125) -[2619157.183] {Default Queue} wl_pointer#1129.motion(187310787, 18.19921875, 15.80078125) -[2619157.188] {Default Queue} wl_pointer#1161.motion(187310787, 18.19921875, 15.80078125) -[2619157.192] {Default Queue} wl_pointer#1193.motion(187310787, 18.19921875, 15.80078125) -[2619157.196] {Default Queue} wl_pointer#1225.motion(187310787, 18.19921875, 15.80078125) -[2619157.200] {Default Queue} wl_pointer#1257.motion(187310787, 18.19921875, 15.80078125) -[2619157.204] {Default Queue} wl_pointer#1289.motion(187310787, 18.19921875, 15.80078125) -[2619157.208] {Default Queue} wl_pointer#1321.motion(187310787, 18.19921875, 15.80078125) -[2619157.212] {Default Queue} wl_pointer#1353.motion(187310787, 18.19921875, 15.80078125) -[2619157.216] {Default Queue} wl_pointer#1385.motion(187310787, 18.19921875, 15.80078125) -[2619157.220] {Default Queue} wl_pointer#1417.motion(187310787, 18.19921875, 15.80078125) -[2619157.224] {Default Queue} wl_pointer#1449.motion(187310787, 18.19921875, 15.80078125) -[2619157.228] {Default Queue} wl_pointer#1481.motion(187310787, 18.19921875, 15.80078125) -[2619157.232] {Default Queue} wl_pointer#1513.motion(187310787, 18.19921875, 15.80078125) -[2619157.236] {Default Queue} wl_pointer#1545.motion(187310787, 18.19921875, 15.80078125) -[2619157.240] {Default Queue} wl_pointer#1577.motion(187310787, 18.19921875, 15.80078125) -[2619157.244] {Default Queue} wl_pointer#1609.motion(187310787, 18.19921875, 15.80078125) -[2619157.248] {Default Queue} wl_pointer#1641.motion(187310787, 18.19921875, 15.80078125) -[2619157.252] {Default Queue} wl_pointer#1673.motion(187310787, 18.19921875, 15.80078125) -[2619157.256] {Default Queue} wl_pointer#1705.motion(187310787, 18.19921875, 15.80078125) -[2619157.260] {Default Queue} wl_pointer#1737.motion(187310787, 18.19921875, 15.80078125) -[2619157.263] {Default Queue} wl_pointer#1762.motion(187310787, 18.19921875, 15.80078125) -[2619157.267] {Default Queue} wl_pointer#1801.motion(187310787, 18.19921875, 15.80078125) -[2619157.271] {Default Queue} wl_pointer#1833.motion(187310787, 18.19921875, 15.80078125) -[2619157.275] {Default Queue} wl_pointer#1865.motion(187310787, 18.19921875, 15.80078125) -[2619157.279] {Default Queue} wl_pointer#1897.motion(187310787, 18.19921875, 15.80078125) -[2619157.283] {Default Queue} wl_pointer#1929.motion(187310787, 18.19921875, 15.80078125) -[2619157.287] {Default Queue} wl_pointer#1961.motion(187310787, 18.19921875, 15.80078125) -[2619157.291] {Default Queue} wl_pointer#1993.motion(187310787, 18.19921875, 15.80078125) -[2619157.295] {Default Queue} wl_pointer#2025.motion(187310787, 18.19921875, 15.80078125) -[2619157.299] {Default Queue} wl_pointer#2057.motion(187310787, 18.19921875, 15.80078125) -[2619157.303] {Default Queue} wl_pointer#2089.motion(187310787, 18.19921875, 15.80078125) -[2619157.307] {Default Queue} wl_pointer#2121.motion(187310787, 18.19921875, 15.80078125) -[2619157.311] {Default Queue} wl_pointer#2153.motion(187310787, 18.19921875, 15.80078125) -[2619157.315] {Default Queue} wl_pointer#2185.motion(187310787, 18.19921875, 15.80078125) -[2619157.319] {Default Queue} wl_pointer#2217.motion(187310787, 18.19921875, 15.80078125) -[2619157.322] {Default Queue} wl_pointer#2249.motion(187310787, 18.19921875, 15.80078125) -[2619157.326] {Default Queue} wl_pointer#2281.motion(187310787, 18.19921875, 15.80078125) -[2619157.330] {Default Queue} wl_pointer#2313.motion(187310787, 18.19921875, 15.80078125) -[2619157.335] {Default Queue} wl_pointer#2345.motion(187310787, 18.19921875, 15.80078125) -[2619157.339] {Default Queue} wl_pointer#2377.motion(187310787, 18.19921875, 15.80078125) -[2619157.343] {Default Queue} wl_pointer#2409.motion(187310787, 18.19921875, 15.80078125) -[2619157.347] {Default Queue} wl_pointer#2441.motion(187310787, 18.19921875, 15.80078125) -[2619157.351] {Default Queue} wl_pointer#2473.motion(187310787, 18.19921875, 15.80078125) -[2619157.355] {Default Queue} wl_pointer#2498.motion(187310787, 18.19921875, 15.80078125) -[2619157.367] {Default Queue} -> wl_buffer#3765.destroy() -[2619157.371] {Default Queue} -> wl_buffer#3764.destroy() -[2619157.379] {Default Queue} -> wl_shm_pool#3763.destroy() -[2619157.384] {Default Queue} -> wl_shm_pool#3762.destroy() -[2619157.389] {Default Queue} -> wl_surface#3388.destroy() -[2619157.436] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3729, fd 575, 640) -[2619157.442] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3726, fd 578, 640) -[2619157.446] {Default Queue} -> wl_shm_pool#3729.create_buffer(new id wl_buffer#3708, 0, 10, 16, 40, 0) -[2619157.451] {Default Queue} -> wl_shm_pool#3726.create_buffer(new id wl_buffer#3728, 0, 10, 16, 40, 0) -[2619157.458] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3727) -[2619157.462] {Default Queue} -> wl_surface#3727.attach(wl_buffer#3708, 0, 0) -[2619157.466] {Default Queue} -> wl_surface#3727.commit() -[2619157.471] {Default Queue} -> wl_surface#3727.attach(wl_buffer#3708, 0, 0) -[2619157.475] {Default Queue} -> wl_surface#3727.commit() -[2619157.479] {Default Queue} wl_pointer#2537.motion(187310787, 18.19921875, 15.80078125) -[2619157.483] {Default Queue} wl_pointer#2569.motion(187310787, 18.19921875, 15.80078125) -[2619157.487] {Default Queue} wl_pointer#2601.motion(187310787, 18.19921875, 15.80078125) -[2619157.491] {Default Queue} wl_pointer#2633.motion(187310787, 18.19921875, 15.80078125) -[2619157.495] {Default Queue} wl_pointer#2665.motion(187310787, 18.19921875, 15.80078125) -[2619157.499] {Default Queue} wl_pointer#2697.motion(187310787, 18.19921875, 15.80078125) -[2619157.503] {Default Queue} wl_pointer#2729.motion(187310787, 18.19921875, 15.80078125) -[2619157.507] {Default Queue} wl_pointer#2761.motion(187310787, 18.19921875, 15.80078125) -[2619157.511] {Default Queue} wl_pointer#2793.motion(187310787, 18.19921875, 15.80078125) -[2619157.514] {Default Queue} wl_pointer#2825.motion(187310787, 18.19921875, 15.80078125) -[2619157.519] {Default Queue} wl_pointer#2857.motion(187310787, 18.19921875, 15.80078125) -[2619157.523] {Default Queue} wl_pointer#2889.motion(187310787, 18.19921875, 15.80078125) -[2619157.527] {Default Queue} wl_pointer#2921.motion(187310787, 18.19921875, 15.80078125) -[2619157.531] {Default Queue} wl_pointer#2953.motion(187310787, 18.19921875, 15.80078125) -[2619157.534] {Default Queue} wl_pointer#2985.motion(187310787, 18.19921875, 15.80078125) -[2619157.538] {Default Queue} wl_pointer#3017.motion(187310787, 18.19921875, 15.80078125) -[2619157.542] {Default Queue} wl_pointer#3049.motion(187310787, 18.19921875, 15.80078125) -[2619157.546] {Default Queue} wl_pointer#3081.motion(187310787, 18.19921875, 15.80078125) -[2619157.550] {Default Queue} wl_pointer#3113.motion(187310787, 18.19921875, 15.80078125) -[2619157.554] {Default Queue} wl_pointer#3145.motion(187310787, 18.19921875, 15.80078125) -[2619157.558] {Default Queue} wl_pointer#3177.motion(187310787, 18.19921875, 15.80078125) -[2619157.562] {Default Queue} wl_pointer#3209.motion(187310787, 18.19921875, 15.80078125) -[2619157.567] {Default Queue} wl_pointer#3241.motion(187310787, 18.19921875, 15.80078125) -[2619157.571] {Default Queue} wl_pointer#3273.motion(187310787, 18.19921875, 15.80078125) -[2619157.575] {Default Queue} wl_pointer#3305.motion(187310787, 18.19921875, 15.80078125) -[2619157.579] {Default Queue} wl_pointer#3337.motion(187310787, 18.19921875, 15.80078125) -[2619157.583] {Default Queue} wl_pointer#3369.motion(187310787, 18.19921875, 15.80078125) -[2619157.587] {Default Queue} wl_pointer#3401.motion(187310787, 18.19921875, 15.80078125) -[2619157.591] {Default Queue} wl_pointer#3433.motion(187310787, 18.19921875, 15.80078125) -[2619157.595] {Default Queue} wl_pointer#3465.motion(187310787, 18.19921875, 15.80078125) -[2619157.599] {Default Queue} wl_pointer#3497.motion(187310787, 18.19921875, 15.80078125) -[2619157.603] {Default Queue} wl_pointer#3529.motion(187310787, 18.19921875, 15.80078125) -[2619157.607] {Default Queue} wl_pointer#3561.motion(187310787, 18.19921875, 15.80078125) -[2619157.611] {Default Queue} wl_pointer#3593.motion(187310787, 18.19921875, 15.80078125) -[2619157.615] {Default Queue} wl_pointer#3625.motion(187310787, 18.19921875, 15.80078125) -[2619157.622] {Default Queue} wl_pointer#3657.motion(187310787, 18.19921875, 15.80078125) -[2619157.627] {Default Queue} wl_pointer#3695.motion(187310787, 18.19921875, 15.80078125) -[2619157.637] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) -[2619157.642] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) -[2619157.646] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2619157.650] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2619157.656] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) -[2619157.660] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) -[2619157.664] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2619157.668] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2619157.675] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) -[2619157.679] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) -[2619157.683] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2619157.687] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2619157.693] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) -[2619157.697] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) -[2619157.701] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2619157.705] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2619157.710] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) -[2619157.714] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) -[2619157.718] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2619157.721] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2619157.726] {Default Queue} -> wl_region#543.subtract(0, 0, 484, 73) -[2619157.730] {Default Queue} -> wl_region#543.add(-483, -72, 484, 73) -[2619157.734] {Default Queue} -> wl_surface#519.set_opaque_region(wl_region#544) -[2619157.737] {Default Queue} -> wl_surface#519.set_input_region(wl_region#543) -[2619157.742] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) -[2619157.746] {Default Queue} -> wl_surface#519.commit() -[2619157.750] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) -[2619157.754] {Default Queue} -> wl_surface#519.commit() -[2619157.759] {Default Queue} -> wl_surface#519.attach(wl_buffer#1819, 0, 0) -[2619157.763] {Default Queue} -> wl_surface#519.commit() -[2619157.769] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) -[2619157.773] {Default Queue} -> wl_surface#551.commit() -[2619158.838] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) -[2619158.848] {Default Queue} -> wl_surface#551.commit() -[2619158.859] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) -[2619158.870] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) -[2619158.874] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2619158.878] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2619158.884] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) -[2619158.888] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) -[2619158.892] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2619158.896] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2619158.903] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) -[2619158.907] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) -[2619158.911] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2619158.915] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2619158.921] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) -[2619158.925] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) -[2619158.929] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2619158.932] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2619158.937] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) -[2619158.941] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) -[2619158.945] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2619158.953] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2619158.960] {Default Queue} -> wl_region#575.subtract(0, 0, 484, 73) -[2619158.964] {Default Queue} -> wl_region#575.add(-483, -72, 484, 73) -[2619158.968] {Default Queue} -> wl_surface#551.set_opaque_region(wl_region#576) -[2619158.971] {Default Queue} -> wl_surface#551.set_input_region(wl_region#575) -[2619158.976] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) -[2619158.980] {Default Queue} -> wl_surface#551.commit() -[2619158.984] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) -[2619158.988] {Default Queue} -> wl_surface#551.commit() -[2619158.994] {Default Queue} -> wl_surface#551.attach(wl_buffer#1659, 0, 0) -[2619158.998] {Default Queue} -> wl_surface#551.commit() -[2619159.003] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) -[2619159.007] {Default Queue} -> wl_surface#583.commit() -[2619160.069] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) -[2619160.077] {Default Queue} -> wl_surface#583.commit() -[2619160.086] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) -[2619160.091] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) -[2619160.095] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2619160.099] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2619160.105] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) -[2619160.109] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) -[2619160.113] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2619160.117] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2619160.123] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) -[2619160.127] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) -[2619160.131] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2619160.135] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2619160.141] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) -[2619160.145] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) -[2619160.148] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2619160.152] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2619160.157] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) -[2619160.161] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) -[2619160.164] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2619160.168] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2619160.173] {Default Queue} -> wl_region#607.subtract(0, 0, 484, 73) -[2619160.177] {Default Queue} -> wl_region#607.add(-483, -72, 484, 73) -[2619160.181] {Default Queue} -> wl_surface#583.set_opaque_region(wl_region#608) -[2619160.185] {Default Queue} -> wl_surface#583.set_input_region(wl_region#607) -[2619160.189] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) -[2619160.193] {Default Queue} -> wl_surface#583.commit() -[2619160.197] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) -[2619160.201] {Default Queue} -> wl_surface#583.commit() -[2619160.206] {Default Queue} -> wl_surface#583.attach(wl_buffer#1499, 0, 0) -[2619160.210] {Default Queue} -> wl_surface#583.commit() -[2619160.216] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) -[2619160.220] {Default Queue} -> wl_surface#615.commit() -[2619161.281] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) -[2619161.286] {Default Queue} -> wl_surface#615.commit() -[2619161.293] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) -[2619161.297] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) -[2619161.301] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2619161.305] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2619161.311] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) -[2619161.315] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) -[2619161.323] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2619161.329] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2619161.336] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) -[2619161.340] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) -[2619161.344] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2619161.347] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2619161.352] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) -[2619161.356] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) -[2619161.360] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2619161.364] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2619161.368] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) -[2619161.372] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) -[2619161.376] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2619161.379] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2619161.384] {Default Queue} -> wl_region#639.subtract(0, 0, 484, 73) -[2619161.388] {Default Queue} -> wl_region#639.add(-483, -72, 484, 73) -[2619161.392] {Default Queue} -> wl_surface#615.set_opaque_region(wl_region#640) -[2619161.395] {Default Queue} -> wl_surface#615.set_input_region(wl_region#639) -[2619161.400] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) -[2619161.404] {Default Queue} -> wl_surface#615.commit() -[2619161.408] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) -[2619161.411] {Default Queue} -> wl_surface#615.commit() -[2619161.417] {Default Queue} -> wl_surface#615.attach(wl_buffer#955, 0, 0) -[2619161.421] {Default Queue} -> wl_surface#615.commit() -[2619161.426] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) -[2619161.430] {Default Queue} -> wl_surface#647.commit() -[2619162.494] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) -[2619162.505] {Default Queue} -> wl_surface#647.commit() -[2619162.516] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) -[2619162.520] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) -[2619162.524] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2619162.528] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2619162.535] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) -[2619162.541] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) -[2619162.545] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2619162.548] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2619162.555] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) -[2619162.559] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) -[2619162.563] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2619162.567] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2619162.573] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) -[2619162.577] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) -[2619162.581] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2619162.585] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2619162.589] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) -[2619162.593] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) -[2619162.597] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2619162.601] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2619162.606] {Default Queue} -> wl_region#671.subtract(0, 0, 484, 73) -[2619162.610] {Default Queue} -> wl_region#671.add(-483, -72, 484, 73) -[2619162.613] {Default Queue} -> wl_surface#647.set_opaque_region(wl_region#672) -[2619162.617] {Default Queue} -> wl_surface#647.set_input_region(wl_region#671) -[2619162.622] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) -[2619162.626] {Default Queue} -> wl_surface#647.commit() -[2619162.629] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) -[2619162.638] {Default Queue} -> wl_surface#647.commit() -[2619162.673] {Display Queue} wl_display#1.delete_id(3761) -[2619162.680] {Display Queue} wl_display#1.delete_id(3760) -[2619162.686] {Display Queue} wl_display#1.delete_id(3759) -[2619162.691] {Display Queue} wl_display#1.delete_id(3758) -[2619162.696] {Display Queue} wl_display#1.delete_id(3712) -[2619162.701] {Default Queue} wl_pointer#24.motion(187310797, 17.80078125, 15.80078125) -[2619162.707] {Default Queue} wl_pointer#81.motion(187310797, 17.80078125, 15.80078125) -[2619162.714] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619162.720] {Default Queue} wl_pointer#105.motion(187310797, 17.80078125, 15.80078125) -[2619162.726] {Default Queue} wl_pointer#137.motion(187310797, 17.80078125, 15.80078125) -[2619162.732] {Default Queue} wl_pointer#169.motion(187310797, 17.80078125, 15.80078125) -[2619162.738] {Default Queue} wl_pointer#201.motion(187310797, 17.80078125, 15.80078125) -[2619162.744] {Default Queue} wl_pointer#233.motion(187310797, 17.80078125, 15.80078125) -[2619162.750] {Default Queue} wl_pointer#265.motion(187310797, 17.80078125, 15.80078125) -[2619162.756] {Default Queue} wl_pointer#297.motion(187310797, 17.80078125, 15.80078125) -[2619162.762] {Default Queue} wl_pointer#329.motion(187310797, 17.80078125, 15.80078125) -[2619162.767] {Default Queue} wl_pointer#361.motion(187310797, 17.80078125, 15.80078125) -[2619162.773] {Default Queue} wl_pointer#393.motion(187310797, 17.80078125, 15.80078125) -[2619162.779] {Default Queue} wl_pointer#425.motion(187310797, 17.80078125, 15.80078125) -[2619162.785] {Default Queue} wl_pointer#457.motion(187310797, 17.80078125, 15.80078125) -[2619162.791] {Default Queue} wl_pointer#489.motion(187310797, 17.80078125, 15.80078125) -[2619162.796] {Default Queue} wl_pointer#521.motion(187310797, 17.80078125, 15.80078125) -[2619162.802] {Default Queue} wl_pointer#553.motion(187310797, 17.80078125, 15.80078125) -[2619162.806] {Default Queue} wl_pointer#585.motion(187310797, 17.80078125, 15.80078125) -[2619162.810] {Default Queue} wl_pointer#617.motion(187310797, 17.80078125, 15.80078125) -[2619162.814] {Default Queue} wl_pointer#649.motion(187310797, 17.80078125, 15.80078125) -[2619162.818] {Default Queue} wl_pointer#681.motion(187310797, 17.80078125, 15.80078125) -[2619162.822] {Default Queue} wl_pointer#713.motion(187310797, 17.80078125, 15.80078125) -[2619162.826] {Default Queue} wl_pointer#745.motion(187310797, 17.80078125, 15.80078125) -[2619162.830] {Default Queue} wl_pointer#777.motion(187310797, 17.80078125, 15.80078125) -[2619162.834] {Default Queue} wl_pointer#809.motion(187310797, 17.80078125, 15.80078125) -[2619162.838] {Default Queue} wl_pointer#841.motion(187310797, 17.80078125, 15.80078125) -[2619162.842] {Default Queue} wl_pointer#873.motion(187310797, 17.80078125, 15.80078125) -[2619162.846] {Default Queue} wl_pointer#905.motion(187310797, 17.80078125, 15.80078125) -[2619162.850] {Default Queue} wl_pointer#937.motion(187310797, 17.80078125, 15.80078125) -[2619162.854] {Default Queue} wl_pointer#969.motion(187310797, 17.80078125, 15.80078125) -[2619162.858] {Default Queue} wl_pointer#1001.motion(187310797, 17.80078125, 15.80078125) -[2619162.867] {Default Queue} wl_pointer#1033.motion(187310797, 17.80078125, 15.80078125) -[2619162.871] {Default Queue} wl_pointer#1065.motion(187310797, 17.80078125, 15.80078125) -[2619162.875] {Default Queue} wl_pointer#1097.motion(187310797, 17.80078125, 15.80078125) -[2619162.879] {Default Queue} wl_pointer#1129.motion(187310797, 17.80078125, 15.80078125) -[2619162.883] {Default Queue} wl_pointer#1161.motion(187310797, 17.80078125, 15.80078125) -[2619162.887] {Default Queue} wl_pointer#1193.motion(187310797, 17.80078125, 15.80078125) -[2619162.891] {Default Queue} wl_pointer#1225.motion(187310797, 17.80078125, 15.80078125) -[2619162.895] {Default Queue} wl_pointer#1257.motion(187310797, 17.80078125, 15.80078125) -[2619162.899] {Default Queue} wl_pointer#1289.motion(187310797, 17.80078125, 15.80078125) -[2619162.903] {Default Queue} wl_pointer#1321.motion(187310797, 17.80078125, 15.80078125) -[2619162.910] {Default Queue} wl_pointer#1353.motion(187310797, 17.80078125, 15.80078125) -[2619162.916] {Default Queue} wl_pointer#1385.motion(187310797, 17.80078125, 15.80078125) -[2619162.920] {Default Queue} wl_pointer#1417.motion(187310797, 17.80078125, 15.80078125) -[2619162.924] {Default Queue} wl_pointer#1449.motion(187310797, 17.80078125, 15.80078125) -[2619162.928] {Default Queue} wl_pointer#1481.motion(187310797, 17.80078125, 15.80078125) -[2619162.932] {Default Queue} wl_pointer#1513.motion(187310797, 17.80078125, 15.80078125) -[2619162.936] {Default Queue} wl_pointer#1545.motion(187310797, 17.80078125, 15.80078125) -[2619162.940] {Default Queue} wl_pointer#1577.motion(187310797, 17.80078125, 15.80078125) -[2619162.944] {Default Queue} wl_pointer#1609.motion(187310797, 17.80078125, 15.80078125) -[2619162.948] {Default Queue} wl_pointer#1641.motion(187310797, 17.80078125, 15.80078125) -[2619162.952] {Default Queue} wl_pointer#1673.motion(187310797, 17.80078125, 15.80078125) -[2619162.956] {Default Queue} wl_pointer#1705.motion(187310797, 17.80078125, 15.80078125) -[2619162.960] {Default Queue} wl_pointer#1737.motion(187310797, 17.80078125, 15.80078125) -[2619162.964] {Default Queue} wl_pointer#1762.motion(187310797, 17.80078125, 15.80078125) -[2619162.968] {Default Queue} wl_pointer#1801.motion(187310797, 17.80078125, 15.80078125) -[2619162.972] {Default Queue} wl_pointer#1833.motion(187310797, 17.80078125, 15.80078125) -[2619162.976] {Default Queue} wl_pointer#1865.motion(187310797, 17.80078125, 15.80078125) -[2619162.980] {Default Queue} wl_pointer#1897.motion(187310797, 17.80078125, 15.80078125) -[2619162.984] {Default Queue} wl_pointer#1929.motion(187310797, 17.80078125, 15.80078125) -[2619162.988] {Default Queue} wl_pointer#1961.motion(187310797, 17.80078125, 15.80078125) -[2619162.992] {Default Queue} wl_pointer#1993.motion(187310797, 17.80078125, 15.80078125) -[2619162.996] {Default Queue} wl_pointer#2025.motion(187310797, 17.80078125, 15.80078125) -[2619163.000] {Default Queue} wl_pointer#2057.motion(187310797, 17.80078125, 15.80078125) -[2619163.004] {Default Queue} wl_pointer#2089.motion(187310797, 17.80078125, 15.80078125) -[2619163.008] {Default Queue} wl_pointer#2121.motion(187310797, 17.80078125, 15.80078125) -[2619163.012] {Default Queue} wl_pointer#2153.motion(187310797, 17.80078125, 15.80078125) -[2619163.016] {Default Queue} wl_pointer#2185.motion(187310797, 17.80078125, 15.80078125) -[2619163.020] {Default Queue} wl_pointer#2217.motion(187310797, 17.80078125, 15.80078125) -[2619163.024] {Default Queue} wl_pointer#2249.motion(187310797, 17.80078125, 15.80078125) -[2619163.028] {Default Queue} wl_pointer#2281.motion(187310797, 17.80078125, 15.80078125) -[2619163.032] {Default Queue} wl_pointer#2313.motion(187310797, 17.80078125, 15.80078125) -[2619163.036] {Default Queue} wl_pointer#2345.motion(187310797, 17.80078125, 15.80078125) -[2619163.041] {Default Queue} wl_pointer#2377.motion(187310797, 17.80078125, 15.80078125) -[2619163.045] {Default Queue} wl_pointer#2409.motion(187310797, 17.80078125, 15.80078125) -[2619163.049] {Default Queue} wl_pointer#2441.motion(187310797, 17.80078125, 15.80078125) -[2619163.053] {Default Queue} wl_pointer#2473.motion(187310797, 17.80078125, 15.80078125) -[2619163.057] {Default Queue} wl_pointer#2498.motion(187310797, 17.80078125, 15.80078125) -[2619163.069] {Default Queue} -> wl_buffer#3708.destroy() -[2619163.074] {Default Queue} -> wl_buffer#3728.destroy() -[2619163.078] {Default Queue} -> wl_shm_pool#3729.destroy() -[2619163.082] {Default Queue} -> wl_shm_pool#3726.destroy() -[2619163.087] {Default Queue} -> wl_surface#3727.destroy() -[2619163.134] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3712, fd 575, 640) -[2619163.141] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3758, fd 578, 640) -[2619163.145] {Default Queue} -> wl_shm_pool#3712.create_buffer(new id wl_buffer#3759, 0, 10, 16, 40, 0) -[2619163.149] {Default Queue} -> wl_shm_pool#3758.create_buffer(new id wl_buffer#3760, 0, 10, 16, 40, 0) -[2619163.157] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3761) -[2619163.164] {Default Queue} -> wl_surface#3761.attach(wl_buffer#3759, 0, 0) -[2619163.170] {Default Queue} -> wl_surface#3761.commit() -[2619163.175] {Default Queue} -> wl_surface#3761.attach(wl_buffer#3759, 0, 0) -[2619163.179] {Default Queue} -> wl_surface#3761.commit() -[2619163.183] {Default Queue} wl_pointer#2537.motion(187310797, 17.80078125, 15.80078125) -[2619163.187] {Default Queue} wl_pointer#2569.motion(187310797, 17.80078125, 15.80078125) -[2619163.191] {Default Queue} wl_pointer#2601.motion(187310797, 17.80078125, 15.80078125) -[2619163.195] {Default Queue} wl_pointer#2633.motion(187310797, 17.80078125, 15.80078125) -[2619163.199] {Default Queue} wl_pointer#2665.motion(187310797, 17.80078125, 15.80078125) -[2619163.203] {Default Queue} wl_pointer#2697.motion(187310797, 17.80078125, 15.80078125) -[2619163.207] {Default Queue} wl_pointer#2729.motion(187310797, 17.80078125, 15.80078125) -[2619163.211] {Default Queue} wl_pointer#2761.motion(187310797, 17.80078125, 15.80078125) -[2619163.215] {Default Queue} wl_pointer#2793.motion(187310797, 17.80078125, 15.80078125) -[2619163.219] {Default Queue} wl_pointer#2825.motion(187310797, 17.80078125, 15.80078125) -[2619163.223] {Default Queue} wl_pointer#2857.motion(187310797, 17.80078125, 15.80078125) -[2619163.228] {Default Queue} wl_pointer#2889.motion(187310797, 17.80078125, 15.80078125) -[2619163.232] {Default Queue} wl_pointer#2921.motion(187310797, 17.80078125, 15.80078125) -[2619163.236] {Default Queue} wl_pointer#2953.motion(187310797, 17.80078125, 15.80078125) -[2619163.240] {Default Queue} wl_pointer#2985.motion(187310797, 17.80078125, 15.80078125) -[2619163.244] {Default Queue} wl_pointer#3017.motion(187310797, 17.80078125, 15.80078125) -[2619163.248] {Default Queue} wl_pointer#3049.motion(187310797, 17.80078125, 15.80078125) -[2619163.252] {Default Queue} wl_pointer#3081.motion(187310797, 17.80078125, 15.80078125) -[2619163.256] {Default Queue} wl_pointer#3113.motion(187310797, 17.80078125, 15.80078125) -[2619163.260] {Default Queue} wl_pointer#3145.motion(187310797, 17.80078125, 15.80078125) -[2619163.264] {Default Queue} wl_pointer#3177.motion(187310797, 17.80078125, 15.80078125) -[2619163.268] {Default Queue} wl_pointer#3209.motion(187310797, 17.80078125, 15.80078125) -[2619163.272] {Default Queue} wl_pointer#3241.motion(187310797, 17.80078125, 15.80078125) -[2619163.276] {Default Queue} wl_pointer#3273.motion(187310797, 17.80078125, 15.80078125) -[2619163.280] {Default Queue} wl_pointer#3305.motion(187310797, 17.80078125, 15.80078125) -[2619163.284] {Default Queue} wl_pointer#3337.motion(187310797, 17.80078125, 15.80078125) -[2619163.288] {Default Queue} wl_pointer#3369.motion(187310797, 17.80078125, 15.80078125) -[2619163.292] {Default Queue} wl_pointer#3401.motion(187310797, 17.80078125, 15.80078125) -[2619163.296] {Default Queue} wl_pointer#3433.motion(187310797, 17.80078125, 15.80078125) -[2619163.300] {Default Queue} wl_pointer#3465.motion(187310797, 17.80078125, 15.80078125) -[2619163.304] {Default Queue} wl_pointer#3497.motion(187310797, 17.80078125, 15.80078125) -[2619163.308] {Default Queue} wl_pointer#3529.motion(187310797, 17.80078125, 15.80078125) -[2619163.312] {Default Queue} wl_pointer#3561.motion(187310797, 17.80078125, 15.80078125) -[2619163.316] {Default Queue} wl_pointer#3593.motion(187310797, 17.80078125, 15.80078125) -[2619163.320] {Default Queue} wl_pointer#3625.motion(187310797, 17.80078125, 15.80078125) -[2619163.325] {Default Queue} wl_pointer#3657.motion(187310797, 17.80078125, 15.80078125) -[2619163.329] {Default Queue} wl_pointer#3695.motion(187310797, 17.80078125, 15.80078125) -[2619163.332] {Default Queue} wl_pointer#24.motion(187310797, 17.80078125, 16.19921875) -[2619163.336] {Default Queue} wl_pointer#81.motion(187310797, 17.80078125, 16.19921875) -[2619163.341] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619163.346] {Default Queue} wl_pointer#105.motion(187310797, 17.80078125, 16.19921875) -[2619163.350] {Default Queue} wl_pointer#137.motion(187310797, 17.80078125, 16.19921875) -[2619163.356] {Default Queue} wl_pointer#169.motion(187310797, 17.80078125, 16.19921875) -[2619163.362] {Default Queue} wl_pointer#201.motion(187310797, 17.80078125, 16.19921875) -[2619163.366] {Default Queue} wl_pointer#233.motion(187310797, 17.80078125, 16.19921875) -[2619163.370] {Default Queue} wl_pointer#265.motion(187310797, 17.80078125, 16.19921875) -[2619163.373] {Default Queue} wl_pointer#297.motion(187310797, 17.80078125, 16.19921875) -[2619163.377] {Default Queue} wl_pointer#329.motion(187310797, 17.80078125, 16.19921875) -[2619163.381] {Default Queue} wl_pointer#361.motion(187310797, 17.80078125, 16.19921875) -[2619163.385] {Default Queue} wl_pointer#393.motion(187310797, 17.80078125, 16.19921875) -[2619163.389] {Default Queue} wl_pointer#425.motion(187310797, 17.80078125, 16.19921875) -[2619163.393] {Default Queue} wl_pointer#457.motion(187310797, 17.80078125, 16.19921875) -[2619163.397] {Default Queue} wl_pointer#489.motion(187310797, 17.80078125, 16.19921875) -[2619163.401] {Default Queue} wl_pointer#521.motion(187310797, 17.80078125, 16.19921875) -[2619163.405] {Default Queue} wl_pointer#553.motion(187310797, 17.80078125, 16.19921875) -[2619163.409] {Default Queue} wl_pointer#585.motion(187310797, 17.80078125, 16.19921875) -[2619163.413] {Default Queue} wl_pointer#617.motion(187310797, 17.80078125, 16.19921875) -[2619163.417] {Default Queue} wl_pointer#649.motion(187310797, 17.80078125, 16.19921875) -[2619163.421] {Default Queue} wl_pointer#681.motion(187310797, 17.80078125, 16.19921875) -[2619163.425] {Default Queue} wl_pointer#713.motion(187310797, 17.80078125, 16.19921875) -[2619163.429] {Default Queue} wl_pointer#745.motion(187310797, 17.80078125, 16.19921875) -[2619163.433] {Default Queue} wl_pointer#777.motion(187310797, 17.80078125, 16.19921875) -[2619163.437] {Default Queue} wl_pointer#809.motion(187310797, 17.80078125, 16.19921875) -[2619163.441] {Default Queue} wl_pointer#841.motion(187310797, 17.80078125, 16.19921875) -[2619163.445] {Default Queue} wl_pointer#873.motion(187310797, 17.80078125, 16.19921875) -[2619163.448] {Default Queue} wl_pointer#905.motion(187310797, 17.80078125, 16.19921875) -[2619163.452] {Default Queue} wl_pointer#937.motion(187310797, 17.80078125, 16.19921875) -[2619163.456] {Default Queue} wl_pointer#969.motion(187310797, 17.80078125, 16.19921875) -[2619163.461] {Default Queue} wl_pointer#1001.motion(187310797, 17.80078125, 16.19921875) -[2619163.467] {Default Queue} wl_pointer#1033.motion(187310797, 17.80078125, 16.19921875) -[2619163.473] {Default Queue} wl_pointer#1065.motion(187310797, 17.80078125, 16.19921875) -[2619163.478] {Default Queue} wl_pointer#1097.motion(187310797, 17.80078125, 16.19921875) -[2619163.483] {Default Queue} wl_pointer#1129.motion(187310797, 17.80078125, 16.19921875) -[2619163.489] {Default Queue} wl_pointer#1161.motion(187310797, 17.80078125, 16.19921875) -[2619163.494] {Default Queue} wl_pointer#1193.motion(187310797, 17.80078125, 16.19921875) -[2619163.499] {Default Queue} wl_pointer#1225.motion(187310797, 17.80078125, 16.19921875) -[2619163.504] {Default Queue} wl_pointer#1257.motion(187310797, 17.80078125, 16.19921875) -[2619163.510] {Default Queue} wl_pointer#1289.motion(187310797, 17.80078125, 16.19921875) -[2619163.515] {Default Queue} wl_pointer#1321.motion(187310797, 17.80078125, 16.19921875) -[2619163.520] {Default Queue} wl_pointer#1353.motion(187310797, 17.80078125, 16.19921875) -[2619163.525] {Default Queue} wl_pointer#1385.motion(187310797, 17.80078125, 16.19921875) -[2619163.530] {Default Queue} wl_pointer#1417.motion(187310797, 17.80078125, 16.19921875) -[2619163.536] {Default Queue} wl_pointer#1449.motion(187310797, 17.80078125, 16.19921875) -[2619163.541] {Default Queue} wl_pointer#1481.motion(187310797, 17.80078125, 16.19921875) -[2619163.546] {Default Queue} wl_pointer#1513.motion(187310797, 17.80078125, 16.19921875) -[2619163.551] {Default Queue} wl_pointer#1545.motion(187310797, 17.80078125, 16.19921875) -[2619163.556] {Default Queue} wl_pointer#1577.motion(187310797, 17.80078125, 16.19921875) -[2619163.561] {Default Queue} wl_pointer#1609.motion(187310797, 17.80078125, 16.19921875) -[2619163.571] {Default Queue} wl_pointer#1641.motion(187310797, 17.80078125, 16.19921875) -[2619163.580] {Default Queue} wl_pointer#1673.motion(187310797, 17.80078125, 16.19921875) -[2619163.586] {Default Queue} wl_pointer#1705.motion(187310797, 17.80078125, 16.19921875) -[2619163.592] {Default Queue} wl_pointer#1737.motion(187310797, 17.80078125, 16.19921875) -[2619163.598] {Default Queue} wl_pointer#1762.motion(187310797, 17.80078125, 16.19921875) -[2619163.604] {Default Queue} wl_pointer#1801.motion(187310797, 17.80078125, 16.19921875) -[2619163.610] {Default Queue} wl_pointer#1833.motion(187310797, 17.80078125, 16.19921875) -[2619163.615] {Default Queue} wl_pointer#1865.motion(187310797, 17.80078125, 16.19921875) -[2619163.621] {Default Queue} wl_pointer#1897.motion(187310797, 17.80078125, 16.19921875) -[2619163.627] {Default Queue} wl_pointer#1929.motion(187310797, 17.80078125, 16.19921875) -[2619163.633] {Default Queue} wl_pointer#1961.motion(187310797, 17.80078125, 16.19921875) -[2619163.638] {Default Queue} wl_pointer#1993.motion(187310797, 17.80078125, 16.19921875) -[2619163.644] {Default Queue} wl_pointer#2025.motion(187310797, 17.80078125, 16.19921875) -[2619163.649] {Default Queue} wl_pointer#2057.motion(187310797, 17.80078125, 16.19921875) -[2619163.654] {Default Queue} wl_pointer#2089.motion(187310797, 17.80078125, 16.19921875) -[2619163.658] {Default Queue} wl_pointer#2121.motion(187310797, 17.80078125, 16.19921875) -[2619163.662] {Default Queue} wl_pointer#2153.motion(187310797, 17.80078125, 16.19921875) -[2619163.666] {Default Queue} wl_pointer#2185.motion(187310797, 17.80078125, 16.19921875) -[2619163.670] {Default Queue} wl_pointer#2217.motion(187310797, 17.80078125, 16.19921875) -[2619163.674] {Default Queue} wl_pointer#2249.motion(187310797, 17.80078125, 16.19921875) -[2619163.678] {Default Queue} wl_pointer#2281.motion(187310797, 17.80078125, 16.19921875) -[2619163.682] {Default Queue} wl_pointer#2313.motion(187310797, 17.80078125, 16.19921875) -[2619163.686] {Default Queue} wl_pointer#2345.motion(187310797, 17.80078125, 16.19921875) -[2619163.690] {Default Queue} wl_pointer#2377.motion(187310797, 17.80078125, 16.19921875) -[2619163.694] {Default Queue} wl_pointer#2409.motion(187310797, 17.80078125, 16.19921875) -[2619163.698] {Default Queue} wl_pointer#2441.motion(187310797, 17.80078125, 16.19921875) -[2619163.702] {Default Queue} wl_pointer#2473.motion(187310797, 17.80078125, 16.19921875) -[2619163.706] {Default Queue} wl_pointer#2498.motion(187310797, 17.80078125, 16.19921875) -[2619163.717] {Default Queue} -> wl_buffer#3759.destroy() -[2619163.722] {Default Queue} -> wl_buffer#3760.destroy() -[2619163.726] {Default Queue} -> wl_shm_pool#3712.destroy() -[2619163.729] {Default Queue} -> wl_shm_pool#3758.destroy() -[2619163.734] {Default Queue} -> wl_surface#3761.destroy() -[2619163.770] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3387, fd 581, 640) -[2619163.775] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3390, fd 582, 640) -[2619163.779] {Default Queue} -> wl_shm_pool#3387.create_buffer(new id wl_buffer#3389, 0, 10, 16, 40, 0) -[2619163.784] {Default Queue} -> wl_shm_pool#3390.create_buffer(new id wl_buffer#3738, 0, 10, 16, 40, 0) -[2619163.791] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3739) -[2619163.795] {Default Queue} -> wl_surface#3739.attach(wl_buffer#3389, 0, 0) -[2619163.799] {Default Queue} -> wl_surface#3739.commit() -[2619163.804] {Default Queue} -> wl_surface#3739.attach(wl_buffer#3389, 0, 0) -[2619163.807] {Default Queue} -> wl_surface#3739.commit() -[2619163.811] {Default Queue} wl_pointer#2537.motion(187310797, 17.80078125, 16.19921875) -[2619163.815] {Default Queue} wl_pointer#2569.motion(187310797, 17.80078125, 16.19921875) -[2619163.819] {Default Queue} wl_pointer#2601.motion(187310797, 17.80078125, 16.19921875) -[2619163.823] {Default Queue} wl_pointer#2633.motion(187310797, 17.80078125, 16.19921875) -[2619163.827] {Default Queue} wl_pointer#2665.motion(187310797, 17.80078125, 16.19921875) -[2619163.831] {Default Queue} wl_pointer#2697.motion(187310797, 17.80078125, 16.19921875) -[2619163.839] {Default Queue} wl_pointer#2729.motion(187310797, 17.80078125, 16.19921875) -[2619163.845] {Default Queue} wl_pointer#2761.motion(187310797, 17.80078125, 16.19921875) -[2619163.849] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) -[2619163.853] {Default Queue} -> wl_surface#647.commit() -[2619164.923] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) -[2619164.930] {Default Queue} -> wl_surface#647.commit() -[2619164.936] {Default Queue} -> wl_surface#647.attach(wl_buffer#379, 0, 0) -[2619164.940] {Default Queue} -> wl_surface#647.commit() -[2619164.946] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) -[2619164.950] {Default Queue} -> wl_surface#487.commit() -[2619166.013] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) -[2619166.021] {Default Queue} -> wl_surface#487.commit() -[2619166.035] {Default Queue} -> wl_region#511.subtract(0, 0, 484, 73) -[2619166.041] {Default Queue} -> wl_region#511.add(-483, -72, 484, 73) -[2619166.046] {Default Queue} -> wl_surface#487.set_opaque_region(wl_region#512) -[2619166.050] {Default Queue} -> wl_surface#487.set_input_region(wl_region#511) -[2619166.055] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) -[2619166.059] {Default Queue} -> wl_surface#487.commit() -[2619166.063] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) -[2619166.067] {Default Queue} -> wl_surface#487.commit() -[2619166.072] {Default Queue} -> wl_surface#487.attach(wl_buffer#3771, 0, 0) -[2619166.076] {Default Queue} -> wl_surface#487.commit() -[2619166.082] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) -[2619166.086] {Default Queue} -> wl_surface#711.commit() -[2619167.143] {Display Queue} wl_display#1.delete_id(3765) -[2619167.155] {Display Queue} wl_display#1.delete_id(3764) -[2619167.160] {Display Queue} wl_display#1.delete_id(3763) -[2619167.164] {Display Queue} wl_display#1.delete_id(3762) -[2619167.167] {Display Queue} wl_display#1.delete_id(3388) -[2619167.171] {Default Queue} wl_pointer#2793.motion(187310797, 17.80078125, 16.19921875) -[2619167.176] {Default Queue} wl_pointer#2825.motion(187310797, 17.80078125, 16.19921875) -[2619167.181] {Default Queue} wl_pointer#2857.motion(187310797, 17.80078125, 16.19921875) -[2619167.185] {Default Queue} wl_pointer#2889.motion(187310797, 17.80078125, 16.19921875) -[2619167.189] {Default Queue} wl_pointer#2921.motion(187310797, 17.80078125, 16.19921875) -[2619167.193] {Default Queue} wl_pointer#2953.motion(187310797, 17.80078125, 16.19921875) -[2619167.197] {Default Queue} wl_pointer#2985.motion(187310797, 17.80078125, 16.19921875) -[2619167.201] {Default Queue} wl_pointer#3017.motion(187310797, 17.80078125, 16.19921875) -[2619167.205] {Default Queue} wl_pointer#3049.motion(187310797, 17.80078125, 16.19921875) -[2619167.209] {Default Queue} wl_pointer#3081.motion(187310797, 17.80078125, 16.19921875) -[2619167.213] {Default Queue} wl_pointer#3113.motion(187310797, 17.80078125, 16.19921875) -[2619167.217] {Default Queue} wl_pointer#3145.motion(187310797, 17.80078125, 16.19921875) -[2619167.221] {Default Queue} wl_pointer#3177.motion(187310797, 17.80078125, 16.19921875) -[2619167.225] {Default Queue} wl_pointer#3209.motion(187310797, 17.80078125, 16.19921875) -[2619167.229] {Default Queue} wl_pointer#3241.motion(187310797, 17.80078125, 16.19921875) -[2619167.233] {Default Queue} wl_pointer#3273.motion(187310797, 17.80078125, 16.19921875) -[2619167.237] {Default Queue} wl_pointer#3305.motion(187310797, 17.80078125, 16.19921875) -[2619167.241] {Default Queue} wl_pointer#3337.motion(187310797, 17.80078125, 16.19921875) -[2619167.245] {Default Queue} wl_pointer#3369.motion(187310797, 17.80078125, 16.19921875) -[2619167.249] {Default Queue} wl_pointer#3401.motion(187310797, 17.80078125, 16.19921875) -[2619167.253] {Default Queue} wl_pointer#3433.motion(187310797, 17.80078125, 16.19921875) -[2619167.257] {Default Queue} wl_pointer#3465.motion(187310797, 17.80078125, 16.19921875) -[2619167.261] {Default Queue} wl_pointer#3497.motion(187310797, 17.80078125, 16.19921875) -[2619167.271] {Default Queue} wl_pointer#3529.motion(187310797, 17.80078125, 16.19921875) -[2619167.278] {Default Queue} wl_pointer#3561.motion(187310797, 17.80078125, 16.19921875) -[2619167.282] {Default Queue} wl_pointer#3593.motion(187310797, 17.80078125, 16.19921875) -[2619167.286] {Default Queue} wl_pointer#3625.motion(187310797, 17.80078125, 16.19921875) -[2619167.290] {Default Queue} wl_pointer#3657.motion(187310797, 17.80078125, 16.19921875) -[2619167.294] {Default Queue} wl_pointer#3695.motion(187310797, 17.80078125, 16.19921875) -[2619167.305] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 74) -[2619167.310] {Default Queue} -> wl_region#735.add(-484, -73, 467, 74) -[2619167.314] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2619167.318] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2619167.431] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 74) -[2619167.436] {Default Queue} -> wl_region#735.add(-484, -73, 467, 74) -[2619167.440] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2619167.444] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2619167.451] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2619167.455] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2619167.527] {Default Queue} -> wl_region#735.subtract(0, 0, 467, 74) -[2619167.531] {Default Queue} -> wl_region#735.add(-484, -73, 467, 74) -[2619167.535] {Default Queue} -> wl_surface#711.set_opaque_region(wl_region#736) -[2619167.539] {Default Queue} -> wl_surface#711.set_input_region(wl_region#735) -[2619167.544] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2619167.548] {Default Queue} -> wl_surface#711.damage(0, 0, 2, 2) -[2619167.553] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) -[2619167.557] {Default Queue} -> wl_surface#711.commit() -[2619167.561] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) -[2619167.565] {Default Queue} -> wl_surface#711.commit() -[2619167.570] {Default Queue} -> wl_surface#711.attach(wl_buffer#3775, 0, 0) -[2619167.575] {Default Queue} -> wl_surface#711.commit() -[2619167.581] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) -[2619167.584] {Default Queue} -> wl_surface#743.commit() -[2619168.646] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) -[2619168.653] {Default Queue} -> wl_surface#743.commit() -[2619168.662] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 74) -[2619168.667] {Default Queue} -> wl_region#767.add(-484, -73, 467, 74) -[2619168.671] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2619168.675] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2619168.768] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 74) -[2619168.773] {Default Queue} -> wl_region#767.add(-484, -73, 467, 74) -[2619168.777] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2619168.781] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2619168.786] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2619168.790] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2619168.858] {Default Queue} -> wl_region#767.subtract(0, 0, 467, 74) -[2619168.869] {Default Queue} -> wl_region#767.add(-484, -73, 467, 74) -[2619168.873] {Default Queue} -> wl_surface#743.set_opaque_region(wl_region#768) -[2619168.877] {Default Queue} -> wl_surface#743.set_input_region(wl_region#767) -[2619168.882] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2619168.886] {Default Queue} -> wl_surface#743.damage(0, 0, 2, 2) -[2619168.891] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) -[2619168.895] {Default Queue} -> wl_surface#743.commit() -[2619168.898] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) -[2619168.902] {Default Queue} -> wl_surface#743.commit() -[2619168.908] {Default Queue} -> wl_surface#743.attach(wl_buffer#3779, 0, 0) -[2619168.912] {Default Queue} -> wl_surface#743.commit() -[2619168.917] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) -[2619168.927] {Default Queue} -> wl_surface#775.commit() -[2619169.991] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) -[2619170.001] {Default Queue} -> wl_surface#775.commit() -[2619170.012] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 74) -[2619170.017] {Default Queue} -> wl_region#799.add(-484, -73, 467, 74) -[2619170.021] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2619170.025] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2619170.131] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 74) -[2619170.137] {Default Queue} -> wl_region#799.add(-484, -73, 467, 74) -[2619170.141] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2619170.145] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2619170.151] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2619170.155] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2619170.228] {Default Queue} -> wl_region#799.subtract(0, 0, 467, 74) -[2619170.232] {Default Queue} -> wl_region#799.add(-484, -73, 467, 74) -[2619170.236] {Default Queue} -> wl_surface#775.set_opaque_region(wl_region#800) -[2619170.240] {Default Queue} -> wl_surface#775.set_input_region(wl_region#799) -[2619170.245] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2619170.249] {Default Queue} -> wl_surface#775.damage(0, 0, 2, 2) -[2619170.253] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) -[2619170.257] {Default Queue} -> wl_surface#775.commit() -[2619170.261] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) -[2619170.265] {Default Queue} -> wl_surface#775.commit() -[2619170.271] {Default Queue} -> wl_surface#775.attach(wl_buffer#3788, 0, 0) -[2619170.275] {Default Queue} -> wl_surface#775.commit() -[2619170.281] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) -[2619170.284] {Default Queue} -> wl_surface#807.commit() -[2619171.346] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) -[2619171.351] {Default Queue} -> wl_surface#807.commit() -[2619171.361] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 74) -[2619171.366] {Default Queue} -> wl_region#831.add(-484, -73, 467, 74) -[2619171.370] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2619171.374] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2619171.459] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 74) -[2619171.463] {Default Queue} -> wl_region#831.add(-484, -73, 467, 74) -[2619171.467] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2619171.471] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2619171.476] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2619171.480] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2619171.548] {Default Queue} -> wl_region#831.subtract(0, 0, 467, 74) -[2619171.552] {Default Queue} -> wl_region#831.add(-484, -73, 467, 74) -[2619171.556] {Default Queue} -> wl_surface#807.set_opaque_region(wl_region#832) -[2619171.560] {Default Queue} -> wl_surface#807.set_input_region(wl_region#831) -[2619171.565] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2619171.569] {Default Queue} -> wl_surface#807.damage(0, 0, 2, 2) -[2619171.573] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) -[2619171.577] {Default Queue} -> wl_surface#807.commit() -[2619171.581] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) -[2619171.585] {Default Queue} -> wl_surface#807.commit() -[2619171.590] {Default Queue} -> wl_surface#807.attach(wl_buffer#3792, 0, 0) -[2619171.594] {Default Queue} -> wl_surface#807.commit() -[2619171.599] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) -[2619171.603] {Default Queue} -> wl_surface#839.commit() -[2619172.663] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) -[2619172.669] {Default Queue} -> wl_surface#839.commit() -[2619172.678] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 74) -[2619172.683] {Default Queue} -> wl_region#863.add(-484, -73, 467, 74) -[2619172.692] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2619172.698] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2619172.788] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 74) -[2619172.792] {Default Queue} -> wl_region#863.add(-484, -73, 467, 74) -[2619172.796] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2619172.800] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2619172.805] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2619172.809] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2619172.882] {Default Queue} -> wl_region#863.subtract(0, 0, 467, 74) -[2619172.887] {Default Queue} -> wl_region#863.add(-484, -73, 467, 74) -[2619172.891] {Default Queue} -> wl_surface#839.set_opaque_region(wl_region#864) -[2619172.895] {Default Queue} -> wl_surface#839.set_input_region(wl_region#863) -[2619172.900] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2619172.904] {Default Queue} -> wl_surface#839.damage(0, 0, 2, 2) -[2619172.908] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) -[2619172.912] {Default Queue} -> wl_surface#839.commit() -[2619172.916] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) -[2619172.920] {Default Queue} -> wl_surface#839.commit() -[2619172.925] {Default Queue} -> wl_surface#839.attach(wl_buffer#3796, 0, 0) -[2619172.929] {Default Queue} -> wl_surface#839.commit() -[2619172.935] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) -[2619172.939] {Default Queue} -> wl_surface#679.commit() -[2619174.000] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) -[2619174.005] {Default Queue} -> wl_surface#679.commit() -[2619174.011] {Default Queue} -> wl_region#703.subtract(0, 0, 485, 74) -[2619174.015] {Default Queue} -> wl_region#703.add(-484, -73, 467, 74) -[2619174.019] {Default Queue} -> wl_surface#679.set_opaque_region(wl_region#704) -[2619174.023] {Default Queue} -> wl_surface#679.set_input_region(wl_region#703) -[2619174.027] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) -[2619174.031] {Default Queue} -> wl_surface#679.commit() -[2619174.035] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) -[2619174.038] {Default Queue} -> wl_surface#679.commit() -[2619174.044] {Default Queue} -> wl_surface#679.attach(wl_buffer#3800, 0, 0) -[2619174.047] {Default Queue} -> wl_surface#679.commit() -[2619174.053] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) -[2619174.057] {Default Queue} -> wl_surface#455.commit() -[2619175.116] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) -[2619175.121] {Default Queue} -> wl_surface#455.commit() -[2619175.129] {Default Queue} -> wl_region#479.subtract(0, 0, 485, 74) -[2619175.134] {Default Queue} -> wl_region#479.add(-483, -72, 484, 73) -[2619175.138] {Default Queue} -> wl_surface#455.set_opaque_region(wl_region#480) -[2619175.141] {Default Queue} -> wl_surface#455.set_input_region(wl_region#479) -[2619175.146] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) -[2619175.150] {Default Queue} -> wl_surface#455.commit() -[2619175.153] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) -[2619175.157] {Default Queue} -> wl_surface#455.commit() -[2619175.162] {Default Queue} -> wl_surface#455.attach(wl_buffer#3102, 0, 0) -[2619175.166] {Default Queue} -> wl_surface#455.commit() -[2619175.172] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) -[2619175.176] {Default Queue} -> wl_surface#423.commit() -[2619176.236] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) -[2619176.240] {Default Queue} -> wl_surface#423.commit() -[2619176.246] {Default Queue} -> wl_region#447.subtract(0, 0, 485, 74) -[2619176.250] {Default Queue} -> wl_region#447.add(-483, -52, 485, 54) -[2619176.254] {Default Queue} -> wl_surface#423.set_opaque_region(wl_region#448) -[2619176.258] {Default Queue} -> wl_surface#423.set_input_region(wl_region#447) -[2619176.262] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) -[2619176.270] {Default Queue} -> wl_surface#423.commit() -[2619176.276] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) -[2619176.279] {Default Queue} -> wl_surface#423.commit() -[2619176.285] {Default Queue} -> wl_surface#423.attach(wl_buffer#3804, 0, 0) -[2619176.288] {Default Queue} -> wl_surface#423.commit() -[2619176.307] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) -[2619176.312] {Default Queue} -> wl_surface#359.commit() -[2619177.063] {Display Queue} wl_display#1.delete_id(3708) -[2619177.070] {Display Queue} wl_display#1.delete_id(3728) -[2619177.074] {Display Queue} wl_display#1.delete_id(3729) -[2619177.077] {Display Queue} wl_display#1.delete_id(3726) -[2619177.081] {Display Queue} wl_display#1.delete_id(3727) -[2619177.085] {Display Queue} wl_display#1.delete_id(3759) -[2619177.088] {Display Queue} wl_display#1.delete_id(3760) -[2619177.092] {Display Queue} wl_display#1.delete_id(3712) -[2619177.095] {Display Queue} wl_display#1.delete_id(3758) -[2619177.099] {Display Queue} wl_display#1.delete_id(3761) -[2619177.103] {Default Queue} wl_pointer#24.motion(187310807, 17.39843750, 16.19921875) -[2619177.107] {Default Queue} wl_pointer#81.motion(187310807, 17.39843750, 16.19921875) -[2619177.113] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619177.117] {Default Queue} wl_pointer#105.motion(187310807, 17.39843750, 16.19921875) -[2619177.121] {Default Queue} wl_pointer#137.motion(187310807, 17.39843750, 16.19921875) -[2619177.125] {Default Queue} wl_pointer#169.motion(187310807, 17.39843750, 16.19921875) -[2619177.129] {Default Queue} wl_pointer#201.motion(187310807, 17.39843750, 16.19921875) -[2619177.133] {Default Queue} wl_pointer#233.motion(187310807, 17.39843750, 16.19921875) -[2619177.137] {Default Queue} wl_pointer#265.motion(187310807, 17.39843750, 16.19921875) -[2619177.141] {Default Queue} wl_pointer#297.motion(187310807, 17.39843750, 16.19921875) -[2619177.145] {Default Queue} wl_pointer#329.motion(187310807, 17.39843750, 16.19921875) -[2619177.149] {Default Queue} wl_pointer#361.motion(187310807, 17.39843750, 16.19921875) -[2619177.153] {Default Queue} wl_pointer#393.motion(187310807, 17.39843750, 16.19921875) -[2619177.157] {Default Queue} wl_pointer#425.motion(187310807, 17.39843750, 16.19921875) -[2619177.161] {Default Queue} wl_pointer#457.motion(187310807, 17.39843750, 16.19921875) -[2619177.165] {Default Queue} wl_pointer#489.motion(187310807, 17.39843750, 16.19921875) -[2619177.169] {Default Queue} wl_pointer#521.motion(187310807, 17.39843750, 16.19921875) -[2619177.172] {Default Queue} wl_pointer#553.motion(187310807, 17.39843750, 16.19921875) -[2619177.176] {Default Queue} wl_pointer#585.motion(187310807, 17.39843750, 16.19921875) -[2619177.180] {Default Queue} wl_pointer#617.motion(187310807, 17.39843750, 16.19921875) -[2619177.184] {Default Queue} wl_pointer#649.motion(187310807, 17.39843750, 16.19921875) -[2619177.188] {Default Queue} wl_pointer#681.motion(187310807, 17.39843750, 16.19921875) -[2619177.192] {Default Queue} wl_pointer#713.motion(187310807, 17.39843750, 16.19921875) -[2619177.196] {Default Queue} wl_pointer#745.motion(187310807, 17.39843750, 16.19921875) -[2619177.200] {Default Queue} wl_pointer#777.motion(187310807, 17.39843750, 16.19921875) -[2619177.204] {Default Queue} wl_pointer#809.motion(187310807, 17.39843750, 16.19921875) -[2619177.208] {Default Queue} wl_pointer#841.motion(187310807, 17.39843750, 16.19921875) -[2619177.212] {Default Queue} wl_pointer#873.motion(187310807, 17.39843750, 16.19921875) -[2619177.216] {Default Queue} wl_pointer#905.motion(187310807, 17.39843750, 16.19921875) -[2619177.219] {Default Queue} wl_pointer#937.motion(187310807, 17.39843750, 16.19921875) -[2619177.223] {Default Queue} wl_pointer#969.motion(187310807, 17.39843750, 16.19921875) -[2619177.227] {Default Queue} wl_pointer#1001.motion(187310807, 17.39843750, 16.19921875) -[2619177.231] {Default Queue} wl_pointer#1033.motion(187310807, 17.39843750, 16.19921875) -[2619177.235] {Default Queue} wl_pointer#1065.motion(187310807, 17.39843750, 16.19921875) -[2619177.242] {Default Queue} wl_pointer#1097.motion(187310807, 17.39843750, 16.19921875) -[2619177.248] {Default Queue} wl_pointer#1129.motion(187310807, 17.39843750, 16.19921875) -[2619177.252] {Default Queue} wl_pointer#1161.motion(187310807, 17.39843750, 16.19921875) -[2619177.256] {Default Queue} wl_pointer#1193.motion(187310807, 17.39843750, 16.19921875) -[2619177.260] {Default Queue} wl_pointer#1225.motion(187310807, 17.39843750, 16.19921875) -[2619177.264] {Default Queue} wl_pointer#1257.motion(187310807, 17.39843750, 16.19921875) -[2619177.268] {Default Queue} wl_pointer#1289.motion(187310807, 17.39843750, 16.19921875) -[2619177.272] {Default Queue} wl_pointer#1321.motion(187310807, 17.39843750, 16.19921875) -[2619177.276] {Default Queue} wl_pointer#1353.motion(187310807, 17.39843750, 16.19921875) -[2619177.279] {Default Queue} wl_pointer#1385.motion(187310807, 17.39843750, 16.19921875) -[2619177.283] {Default Queue} wl_pointer#1417.motion(187310807, 17.39843750, 16.19921875) -[2619177.287] {Default Queue} wl_pointer#1449.motion(187310807, 17.39843750, 16.19921875) -[2619177.291] {Default Queue} wl_pointer#1481.motion(187310807, 17.39843750, 16.19921875) -[2619177.295] {Default Queue} wl_pointer#1513.motion(187310807, 17.39843750, 16.19921875) -[2619177.299] {Default Queue} wl_pointer#1545.motion(187310807, 17.39843750, 16.19921875) -[2619177.303] {Default Queue} wl_pointer#1577.motion(187310807, 17.39843750, 16.19921875) -[2619177.307] {Default Queue} wl_pointer#1609.motion(187310807, 17.39843750, 16.19921875) -[2619177.311] {Default Queue} wl_pointer#1641.motion(187310807, 17.39843750, 16.19921875) -[2619177.315] {Default Queue} wl_pointer#1673.motion(187310807, 17.39843750, 16.19921875) -[2619177.319] {Default Queue} wl_pointer#1705.motion(187310807, 17.39843750, 16.19921875) -[2619177.323] {Default Queue} wl_pointer#1737.motion(187310807, 17.39843750, 16.19921875) -[2619177.327] {Default Queue} wl_pointer#1762.motion(187310807, 17.39843750, 16.19921875) -[2619177.331] {Default Queue} wl_pointer#1801.motion(187310807, 17.39843750, 16.19921875) -[2619177.335] {Default Queue} wl_pointer#1833.motion(187310807, 17.39843750, 16.19921875) -[2619177.339] {Default Queue} wl_pointer#1865.motion(187310807, 17.39843750, 16.19921875) -[2619177.343] {Default Queue} wl_pointer#1897.motion(187310807, 17.39843750, 16.19921875) -[2619177.347] {Default Queue} wl_pointer#1929.motion(187310807, 17.39843750, 16.19921875) -[2619177.351] {Default Queue} wl_pointer#1961.motion(187310807, 17.39843750, 16.19921875) -[2619177.354] {Default Queue} wl_pointer#1993.motion(187310807, 17.39843750, 16.19921875) -[2619177.358] {Default Queue} wl_pointer#2025.motion(187310807, 17.39843750, 16.19921875) -[2619177.362] {Default Queue} wl_pointer#2057.motion(187310807, 17.39843750, 16.19921875) -[2619177.366] {Default Queue} wl_pointer#2089.motion(187310807, 17.39843750, 16.19921875) -[2619177.370] {Default Queue} wl_pointer#2121.motion(187310807, 17.39843750, 16.19921875) -[2619177.374] {Default Queue} wl_pointer#2153.motion(187310807, 17.39843750, 16.19921875) -[2619177.378] {Default Queue} wl_pointer#2185.motion(187310807, 17.39843750, 16.19921875) -[2619177.382] {Default Queue} wl_pointer#2217.motion(187310807, 17.39843750, 16.19921875) -[2619177.386] {Default Queue} wl_pointer#2249.motion(187310807, 17.39843750, 16.19921875) -[2619177.390] {Default Queue} wl_pointer#2281.motion(187310807, 17.39843750, 16.19921875) -[2619177.394] {Default Queue} wl_pointer#2313.motion(187310807, 17.39843750, 16.19921875) -[2619177.398] {Default Queue} wl_pointer#2345.motion(187310807, 17.39843750, 16.19921875) -[2619177.402] {Default Queue} wl_pointer#2377.motion(187310807, 17.39843750, 16.19921875) -[2619177.406] {Default Queue} wl_pointer#2409.motion(187310807, 17.39843750, 16.19921875) -[2619177.410] {Default Queue} wl_pointer#2441.motion(187310807, 17.39843750, 16.19921875) -[2619177.414] {Default Queue} wl_pointer#2473.motion(187310807, 17.39843750, 16.19921875) -[2619177.418] {Default Queue} wl_pointer#2498.motion(187310807, 17.39843750, 16.19921875) -[2619177.430] {Default Queue} -> wl_buffer#3389.destroy() -[2619177.438] {Default Queue} -> wl_buffer#3738.destroy() -[2619177.443] {Default Queue} -> wl_shm_pool#3387.destroy() -[2619177.447] {Default Queue} -> wl_shm_pool#3390.destroy() -[2619177.452] {Default Queue} -> wl_surface#3739.destroy() -[2619177.490] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3761, fd 575, 640) -[2619177.497] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3758, fd 578, 640) -[2619177.503] {Default Queue} -> wl_shm_pool#3761.create_buffer(new id wl_buffer#3712, 0, 10, 16, 40, 0) -[2619177.509] {Default Queue} -> wl_shm_pool#3758.create_buffer(new id wl_buffer#3760, 0, 10, 16, 40, 0) -[2619177.516] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3759) -[2619177.520] {Default Queue} -> wl_surface#3759.attach(wl_buffer#3712, 0, 0) -[2619177.524] {Default Queue} -> wl_surface#3759.commit() -[2619177.529] {Default Queue} -> wl_surface#3759.attach(wl_buffer#3712, 0, 0) -[2619177.533] {Default Queue} -> wl_surface#3759.commit() -[2619177.537] {Default Queue} wl_pointer#2537.motion(187310807, 17.39843750, 16.19921875) -[2619177.542] {Default Queue} wl_pointer#2569.motion(187310807, 17.39843750, 16.19921875) -[2619177.546] {Default Queue} wl_pointer#2601.motion(187310807, 17.39843750, 16.19921875) -[2619177.550] {Default Queue} wl_pointer#2633.motion(187310807, 17.39843750, 16.19921875) -[2619177.554] {Default Queue} wl_pointer#2665.motion(187310807, 17.39843750, 16.19921875) -[2619177.558] {Default Queue} wl_pointer#2697.motion(187310807, 17.39843750, 16.19921875) -[2619177.562] {Default Queue} wl_pointer#2729.motion(187310807, 17.39843750, 16.19921875) -[2619177.567] {Default Queue} wl_pointer#2761.motion(187310807, 17.39843750, 16.19921875) -[2619177.572] {Default Queue} wl_pointer#2793.motion(187310807, 17.39843750, 16.19921875) -[2619177.577] {Default Queue} wl_pointer#2825.motion(187310807, 17.39843750, 16.19921875) -[2619177.582] {Default Queue} wl_pointer#2857.motion(187310807, 17.39843750, 16.19921875) -[2619177.586] {Default Queue} wl_pointer#2889.motion(187310807, 17.39843750, 16.19921875) -[2619177.590] {Default Queue} wl_pointer#2921.motion(187310807, 17.39843750, 16.19921875) -[2619177.594] {Default Queue} wl_pointer#2953.motion(187310807, 17.39843750, 16.19921875) -[2619177.598] {Default Queue} wl_pointer#2985.motion(187310807, 17.39843750, 16.19921875) -[2619177.602] {Default Queue} wl_pointer#3017.motion(187310807, 17.39843750, 16.19921875) -[2619177.606] {Default Queue} wl_pointer#3049.motion(187310807, 17.39843750, 16.19921875) -[2619177.609] {Default Queue} wl_pointer#3081.motion(187310807, 17.39843750, 16.19921875) -[2619177.613] {Default Queue} wl_pointer#3113.motion(187310807, 17.39843750, 16.19921875) -[2619177.617] {Default Queue} wl_pointer#3145.motion(187310807, 17.39843750, 16.19921875) -[2619177.621] {Default Queue} wl_pointer#3177.motion(187310807, 17.39843750, 16.19921875) -[2619177.625] {Default Queue} wl_pointer#3209.motion(187310807, 17.39843750, 16.19921875) -[2619177.629] {Default Queue} wl_pointer#3241.motion(187310807, 17.39843750, 16.19921875) -[2619177.633] {Default Queue} wl_pointer#3273.motion(187310807, 17.39843750, 16.19921875) -[2619177.637] {Default Queue} wl_pointer#3305.motion(187310807, 17.39843750, 16.19921875) -[2619177.641] {Default Queue} wl_pointer#3337.motion(187310807, 17.39843750, 16.19921875) -[2619177.645] {Default Queue} wl_pointer#3369.motion(187310807, 17.39843750, 16.19921875) -[2619177.649] {Default Queue} wl_pointer#3401.motion(187310807, 17.39843750, 16.19921875) -[2619177.653] {Default Queue} wl_pointer#3433.motion(187310807, 17.39843750, 16.19921875) -[2619177.657] {Default Queue} wl_pointer#3465.motion(187310807, 17.39843750, 16.19921875) -[2619177.661] {Default Queue} wl_pointer#3497.motion(187310807, 17.39843750, 16.19921875) -[2619177.665] {Default Queue} wl_pointer#3529.motion(187310807, 17.39843750, 16.19921875) -[2619177.669] {Default Queue} wl_pointer#3561.motion(187310807, 17.39843750, 16.19921875) -[2619177.673] {Default Queue} wl_pointer#3593.motion(187310807, 17.39843750, 16.19921875) -[2619177.677] {Default Queue} wl_pointer#3625.motion(187310807, 17.39843750, 16.19921875) -[2619177.684] {Default Queue} wl_pointer#3657.motion(187310807, 17.39843750, 16.19921875) -[2619177.690] {Default Queue} wl_pointer#3695.motion(187310807, 17.39843750, 16.19921875) -[2619177.700] {Default Queue} -> wl_region#383.subtract(0, 0, 592, 213) -[2619177.705] {Default Queue} -> wl_region#383.add(-480, -49, 589, 210) -[2619177.709] {Default Queue} -> wl_surface#359.set_opaque_region(wl_region#384) -[2619177.713] {Default Queue} -> wl_surface#359.set_input_region(wl_region#383) -[2619177.720] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) -[2619177.724] {Default Queue} -> wl_surface#359.commit() -[2619177.729] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) -[2619177.733] {Default Queue} -> wl_surface#359.commit() -[2619177.740] {Default Queue} -> wl_surface#359.attach(wl_buffer#2845, 0, 0) -[2619177.744] {Default Queue} -> wl_surface#359.commit() -[2619177.755] {Default Queue} -> wl_surface#327.attach(wl_buffer#3808, 0, 0) -[2619177.760] {Default Queue} -> wl_surface#327.commit() -[2619177.803] {Default Queue} -> wl_surface#103.attach(wl_buffer#3812, 0, 0) -[2619177.808] {Default Queue} -> wl_surface#103.commit() -[2619177.815] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) -[2619177.819] {Default Queue} -> wl_surface#967.commit() -[2619178.867] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) -[2619178.872] {Default Queue} -> wl_surface#967.commit() -[2619178.881] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 236) -[2619178.886] {Default Queue} -> wl_region#991.add(-20, -216, 22, 236) -[2619178.890] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2619178.893] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2619178.987] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 236) -[2619178.992] {Default Queue} -> wl_region#991.add(-20, -216, 22, 236) -[2619178.996] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2619179.000] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2619179.007] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2619179.011] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2619179.078] {Default Queue} -> wl_region#991.subtract(0, 0, 22, 236) -[2619179.082] {Default Queue} -> wl_region#991.add(-20, -216, 22, 236) -[2619179.086] {Default Queue} -> wl_surface#967.set_opaque_region(wl_region#992) -[2619179.090] {Default Queue} -> wl_surface#967.set_input_region(wl_region#991) -[2619179.095] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2619179.099] {Default Queue} -> wl_surface#967.damage(0, 0, 2, 20) -[2619179.104] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) -[2619179.107] {Default Queue} -> wl_surface#967.commit() -[2619179.111] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) -[2619179.115] {Default Queue} -> wl_surface#967.commit() -[2619179.121] {Default Queue} -> wl_surface#967.attach(wl_buffer#3816, 0, 0) -[2619179.124] {Default Queue} -> wl_surface#967.commit() -[2619179.131] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) -[2619179.135] {Default Queue} -> wl_surface#1095.commit() -[2619180.195] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) -[2619180.200] {Default Queue} -> wl_surface#1095.commit() -[2619180.208] {Default Queue} -> wl_region#1119.subtract(0, 0, 24, 240) -[2619180.212] {Default Queue} -> wl_region#1119.add(-23, -239, 24, 240) -[2619180.216] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2619180.220] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2619180.228] {Default Queue} -> wl_region#1119.subtract(0, 0, 24, 240) -[2619180.233] {Default Queue} -> wl_region#1119.add(-23, -239, 24, 240) -[2619180.236] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2619180.240] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2619180.247] {Default Queue} -> wl_region#1119.subtract(0, 0, 24, 240) -[2619180.256] {Default Queue} -> wl_region#1119.add(-23, -239, 24, 240) -[2619180.262] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2619180.265] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2619180.270] {Default Queue} -> wl_region#1119.subtract(0, 0, 24, 240) -[2619180.274] {Default Queue} -> wl_region#1119.add(-23, -239, 24, 240) -[2619180.278] {Default Queue} -> wl_surface#1095.set_opaque_region(wl_region#1120) -[2619180.281] {Default Queue} -> wl_surface#1095.set_input_region(wl_region#1119) -[2619180.285] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) -[2619180.289] {Default Queue} -> wl_surface#1095.commit() -[2619180.293] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) -[2619180.297] {Default Queue} -> wl_surface#1095.commit() -[2619180.302] {Default Queue} -> wl_surface#1095.attach(wl_buffer#3820, 0, 0) -[2619180.306] {Default Queue} -> wl_surface#1095.commit() -[2619180.311] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) -[2619180.315] {Default Queue} -> wl_surface#1127.commit() -[2619181.375] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) -[2619181.380] {Default Queue} -> wl_surface#1127.commit() -[2619181.386] {Default Queue} -> wl_region#1151.subtract(0, 0, 24, 240) -[2619181.390] {Default Queue} -> wl_region#1151.add(-23, -239, 24, 240) -[2619181.394] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2619181.398] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2619181.404] {Default Queue} -> wl_region#1151.subtract(0, 0, 24, 240) -[2619181.408] {Default Queue} -> wl_region#1151.add(-23, -239, 24, 240) -[2619181.412] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2619181.416] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2619181.421] {Default Queue} -> wl_region#1151.subtract(0, 0, 24, 240) -[2619181.425] {Default Queue} -> wl_region#1151.add(-23, -239, 24, 240) -[2619181.428] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2619181.432] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2619181.436] {Default Queue} -> wl_region#1151.subtract(0, 0, 24, 240) -[2619181.440] {Default Queue} -> wl_region#1151.add(-23, -239, 24, 240) -[2619181.444] {Default Queue} -> wl_surface#1127.set_opaque_region(wl_region#1152) -[2619181.448] {Default Queue} -> wl_surface#1127.set_input_region(wl_region#1151) -[2619181.452] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) -[2619181.456] {Default Queue} -> wl_surface#1127.commit() -[2619181.459] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) -[2619181.463] {Default Queue} -> wl_surface#1127.commit() -[2619181.468] {Default Queue} -> wl_surface#1127.attach(wl_buffer#3824, 0, 0) -[2619181.472] {Default Queue} -> wl_surface#1127.commit() -[2619181.477] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) -[2619181.481] {Default Queue} -> wl_surface#1159.commit() -[2619182.233] {Default Queue} wl_pointer#24.motion(187310812, 17.39843750, 16.60156250) -[2619182.240] {Default Queue} wl_pointer#81.motion(187310812, 17.39843750, 16.60156250) -[2619182.245] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619182.249] {Default Queue} wl_pointer#105.motion(187310812, 17.39843750, 16.60156250) -[2619182.253] {Default Queue} wl_pointer#137.motion(187310812, 17.39843750, 16.60156250) -[2619182.257] {Default Queue} wl_pointer#169.motion(187310812, 17.39843750, 16.60156250) -[2619182.261] {Default Queue} wl_pointer#201.motion(187310812, 17.39843750, 16.60156250) -[2619182.265] {Default Queue} wl_pointer#233.motion(187310812, 17.39843750, 16.60156250) -[2619182.269] {Default Queue} wl_pointer#265.motion(187310812, 17.39843750, 16.60156250) -[2619182.273] {Default Queue} wl_pointer#297.motion(187310812, 17.39843750, 16.60156250) -[2619182.277] {Default Queue} wl_pointer#329.motion(187310812, 17.39843750, 16.60156250) -[2619182.280] {Default Queue} wl_pointer#361.motion(187310812, 17.39843750, 16.60156250) -[2619182.288] {Default Queue} wl_pointer#393.motion(187310812, 17.39843750, 16.60156250) -[2619182.294] {Default Queue} wl_pointer#425.motion(187310812, 17.39843750, 16.60156250) -[2619182.298] {Default Queue} wl_pointer#457.motion(187310812, 17.39843750, 16.60156250) -[2619182.302] {Default Queue} wl_pointer#489.motion(187310812, 17.39843750, 16.60156250) -[2619182.306] {Default Queue} wl_pointer#521.motion(187310812, 17.39843750, 16.60156250) -[2619182.310] {Default Queue} wl_pointer#553.motion(187310812, 17.39843750, 16.60156250) -[2619182.314] {Default Queue} wl_pointer#585.motion(187310812, 17.39843750, 16.60156250) -[2619182.318] {Default Queue} wl_pointer#617.motion(187310812, 17.39843750, 16.60156250) -[2619182.321] {Default Queue} wl_pointer#649.motion(187310812, 17.39843750, 16.60156250) -[2619182.325] {Default Queue} wl_pointer#681.motion(187310812, 17.39843750, 16.60156250) -[2619182.329] {Default Queue} wl_pointer#713.motion(187310812, 17.39843750, 16.60156250) -[2619182.333] {Default Queue} wl_pointer#745.motion(187310812, 17.39843750, 16.60156250) -[2619182.337] {Default Queue} wl_pointer#777.motion(187310812, 17.39843750, 16.60156250) -[2619182.341] {Default Queue} wl_pointer#809.motion(187310812, 17.39843750, 16.60156250) -[2619182.345] {Default Queue} wl_pointer#841.motion(187310812, 17.39843750, 16.60156250) -[2619182.349] {Default Queue} wl_pointer#873.motion(187310812, 17.39843750, 16.60156250) -[2619182.353] {Default Queue} wl_pointer#905.motion(187310812, 17.39843750, 16.60156250) -[2619182.357] {Default Queue} wl_pointer#937.motion(187310812, 17.39843750, 16.60156250) -[2619182.361] {Default Queue} wl_pointer#969.motion(187310812, 17.39843750, 16.60156250) -[2619182.364] {Default Queue} wl_pointer#1001.motion(187310812, 17.39843750, 16.60156250) -[2619182.368] {Default Queue} wl_pointer#1033.motion(187310812, 17.39843750, 16.60156250) -[2619182.372] {Default Queue} wl_pointer#1065.motion(187310812, 17.39843750, 16.60156250) -[2619182.376] {Default Queue} wl_pointer#1097.motion(187310812, 17.39843750, 16.60156250) -[2619182.380] {Default Queue} wl_pointer#1129.motion(187310812, 17.39843750, 16.60156250) -[2619182.384] {Default Queue} wl_pointer#1161.motion(187310812, 17.39843750, 16.60156250) -[2619182.388] {Default Queue} wl_pointer#1193.motion(187310812, 17.39843750, 16.60156250) -[2619182.392] {Default Queue} wl_pointer#1225.motion(187310812, 17.39843750, 16.60156250) -[2619182.396] {Default Queue} wl_pointer#1257.motion(187310812, 17.39843750, 16.60156250) -[2619182.400] {Default Queue} wl_pointer#1289.motion(187310812, 17.39843750, 16.60156250) -[2619182.404] {Default Queue} wl_pointer#1321.motion(187310812, 17.39843750, 16.60156250) -[2619182.407] {Default Queue} wl_pointer#1353.motion(187310812, 17.39843750, 16.60156250) -[2619182.411] {Default Queue} wl_pointer#1385.motion(187310812, 17.39843750, 16.60156250) -[2619182.415] {Default Queue} wl_pointer#1417.motion(187310812, 17.39843750, 16.60156250) -[2619182.419] {Default Queue} wl_pointer#1449.motion(187310812, 17.39843750, 16.60156250) -[2619182.423] {Default Queue} wl_pointer#1481.motion(187310812, 17.39843750, 16.60156250) -[2619182.427] {Default Queue} wl_pointer#1513.motion(187310812, 17.39843750, 16.60156250) -[2619182.431] {Default Queue} wl_pointer#1545.motion(187310812, 17.39843750, 16.60156250) -[2619182.435] {Default Queue} wl_pointer#1577.motion(187310812, 17.39843750, 16.60156250) -[2619182.439] {Default Queue} wl_pointer#1609.motion(187310812, 17.39843750, 16.60156250) -[2619182.443] {Default Queue} wl_pointer#1641.motion(187310812, 17.39843750, 16.60156250) -[2619182.447] {Default Queue} wl_pointer#1673.motion(187310812, 17.39843750, 16.60156250) -[2619182.450] {Default Queue} wl_pointer#1705.motion(187310812, 17.39843750, 16.60156250) -[2619182.454] {Default Queue} wl_pointer#1737.motion(187310812, 17.39843750, 16.60156250) -[2619182.458] {Default Queue} wl_pointer#1762.motion(187310812, 17.39843750, 16.60156250) -[2619182.462] {Default Queue} wl_pointer#1801.motion(187310812, 17.39843750, 16.60156250) -[2619182.466] {Default Queue} wl_pointer#1833.motion(187310812, 17.39843750, 16.60156250) -[2619182.473] {Default Queue} wl_pointer#1865.motion(187310812, 17.39843750, 16.60156250) -[2619182.478] {Default Queue} wl_pointer#1897.motion(187310812, 17.39843750, 16.60156250) -[2619182.482] {Default Queue} wl_pointer#1929.motion(187310812, 17.39843750, 16.60156250) -[2619182.486] {Default Queue} wl_pointer#1961.motion(187310812, 17.39843750, 16.60156250) -[2619182.490] {Default Queue} wl_pointer#1993.motion(187310812, 17.39843750, 16.60156250) -[2619182.494] {Default Queue} wl_pointer#2025.motion(187310812, 17.39843750, 16.60156250) -[2619182.498] {Default Queue} wl_pointer#2057.motion(187310812, 17.39843750, 16.60156250) -[2619182.502] {Default Queue} wl_pointer#2089.motion(187310812, 17.39843750, 16.60156250) -[2619182.506] {Default Queue} wl_pointer#2121.motion(187310812, 17.39843750, 16.60156250) -[2619182.510] {Default Queue} wl_pointer#2153.motion(187310812, 17.39843750, 16.60156250) -[2619182.514] {Default Queue} wl_pointer#2185.motion(187310812, 17.39843750, 16.60156250) -[2619182.518] {Default Queue} wl_pointer#2217.motion(187310812, 17.39843750, 16.60156250) -[2619182.521] {Default Queue} wl_pointer#2249.motion(187310812, 17.39843750, 16.60156250) -[2619182.525] {Default Queue} wl_pointer#2281.motion(187310812, 17.39843750, 16.60156250) -[2619182.529] {Default Queue} wl_pointer#2313.motion(187310812, 17.39843750, 16.60156250) -[2619182.533] {Default Queue} wl_pointer#2345.motion(187310812, 17.39843750, 16.60156250) -[2619182.538] {Default Queue} wl_pointer#2377.motion(187310812, 17.39843750, 16.60156250) -[2619182.541] {Default Queue} wl_pointer#2409.motion(187310812, 17.39843750, 16.60156250) -[2619182.545] {Default Queue} wl_pointer#2441.motion(187310812, 17.39843750, 16.60156250) -[2619182.549] {Default Queue} wl_pointer#2473.motion(187310812, 17.39843750, 16.60156250) -[2619182.553] {Default Queue} wl_pointer#2498.motion(187310812, 17.39843750, 16.60156250) -[2619182.565] {Default Queue} -> wl_buffer#3712.destroy() -[2619182.570] {Default Queue} -> wl_buffer#3760.destroy() -[2619182.573] {Default Queue} -> wl_shm_pool#3761.destroy() -[2619182.577] {Default Queue} -> wl_shm_pool#3758.destroy() -[2619182.582] {Default Queue} -> wl_surface#3759.destroy() -[2619182.618] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3727, fd 575, 640) -[2619182.623] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3726, fd 578, 640) -[2619182.628] {Default Queue} -> wl_shm_pool#3727.create_buffer(new id wl_buffer#3729, 0, 10, 16, 40, 0) -[2619182.632] {Default Queue} -> wl_shm_pool#3726.create_buffer(new id wl_buffer#3728, 0, 10, 16, 40, 0) -[2619182.639] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3708) -[2619182.643] {Default Queue} -> wl_surface#3708.attach(wl_buffer#3729, 0, 0) -[2619182.647] {Default Queue} -> wl_surface#3708.commit() -[2619182.652] {Default Queue} -> wl_surface#3708.attach(wl_buffer#3729, 0, 0) -[2619182.656] {Default Queue} -> wl_surface#3708.commit() -[2619182.660] {Default Queue} wl_pointer#2537.motion(187310812, 17.39843750, 16.60156250) -[2619182.664] {Default Queue} wl_pointer#2569.motion(187310812, 17.39843750, 16.60156250) -[2619182.668] {Default Queue} wl_pointer#2601.motion(187310812, 17.39843750, 16.60156250) -[2619182.672] {Default Queue} wl_pointer#2633.motion(187310812, 17.39843750, 16.60156250) -[2619182.676] {Default Queue} wl_pointer#2665.motion(187310812, 17.39843750, 16.60156250) -[2619182.680] {Default Queue} wl_pointer#2697.motion(187310812, 17.39843750, 16.60156250) -[2619182.684] {Default Queue} wl_pointer#2729.motion(187310812, 17.39843750, 16.60156250) -[2619182.688] {Default Queue} wl_pointer#2761.motion(187310812, 17.39843750, 16.60156250) -[2619182.692] {Default Queue} wl_pointer#2793.motion(187310812, 17.39843750, 16.60156250) -[2619182.696] {Default Queue} wl_pointer#2825.motion(187310812, 17.39843750, 16.60156250) -[2619182.700] {Default Queue} wl_pointer#2857.motion(187310812, 17.39843750, 16.60156250) -[2619182.704] {Default Queue} wl_pointer#2889.motion(187310812, 17.39843750, 16.60156250) -[2619182.708] {Default Queue} wl_pointer#2921.motion(187310812, 17.39843750, 16.60156250) -[2619182.715] {Default Queue} wl_pointer#2953.motion(187310812, 17.39843750, 16.60156250) -[2619182.720] {Default Queue} wl_pointer#2985.motion(187310812, 17.39843750, 16.60156250) -[2619182.724] {Default Queue} wl_pointer#3017.motion(187310812, 17.39843750, 16.60156250) -[2619182.728] {Default Queue} wl_pointer#3049.motion(187310812, 17.39843750, 16.60156250) -[2619182.732] {Default Queue} wl_pointer#3081.motion(187310812, 17.39843750, 16.60156250) -[2619182.736] {Default Queue} wl_pointer#3113.motion(187310812, 17.39843750, 16.60156250) -[2619182.740] {Default Queue} wl_pointer#3145.motion(187310812, 17.39843750, 16.60156250) -[2619182.744] {Default Queue} wl_pointer#3177.motion(187310812, 17.39843750, 16.60156250) -[2619182.748] {Default Queue} wl_pointer#3209.motion(187310812, 17.39843750, 16.60156250) -[2619182.752] {Default Queue} wl_pointer#3241.motion(187310812, 17.39843750, 16.60156250) -[2619182.756] {Default Queue} wl_pointer#3273.motion(187310812, 17.39843750, 16.60156250) -[2619182.760] {Default Queue} wl_pointer#3305.motion(187310812, 17.39843750, 16.60156250) -[2619182.764] {Default Queue} wl_pointer#3337.motion(187310812, 17.39843750, 16.60156250) -[2619182.768] {Default Queue} wl_pointer#3369.motion(187310812, 17.39843750, 16.60156250) -[2619182.772] {Default Queue} wl_pointer#3401.motion(187310812, 17.39843750, 16.60156250) -[2619182.776] {Default Queue} wl_pointer#3433.motion(187310812, 17.39843750, 16.60156250) -[2619182.780] {Default Queue} wl_pointer#3465.motion(187310812, 17.39843750, 16.60156250) -[2619182.785] {Default Queue} wl_pointer#3497.motion(187310812, 17.39843750, 16.60156250) -[2619182.788] {Default Queue} wl_pointer#3529.motion(187310812, 17.39843750, 16.60156250) -[2619182.792] {Default Queue} wl_pointer#3561.motion(187310812, 17.39843750, 16.60156250) -[2619182.796] {Default Queue} wl_pointer#3593.motion(187310812, 17.39843750, 16.60156250) -[2619182.800] {Default Queue} wl_pointer#3625.motion(187310812, 17.39843750, 16.60156250) -[2619182.804] {Default Queue} wl_pointer#3657.motion(187310812, 17.39843750, 16.60156250) -[2619182.808] {Default Queue} wl_pointer#3695.motion(187310812, 17.39843750, 16.60156250) -[2619182.817] {Default Queue} -> wl_region#1183.subtract(0, 0, 24, 240) -[2619182.822] {Default Queue} -> wl_region#1183.add(-23, -239, 24, 240) -[2619182.826] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2619182.830] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2619182.837] {Default Queue} -> wl_region#1183.subtract(0, 0, 24, 240) -[2619182.841] {Default Queue} -> wl_region#1183.add(-23, -239, 24, 240) -[2619182.845] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2619182.849] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2619182.855] {Default Queue} -> wl_region#1183.subtract(0, 0, 24, 240) -[2619182.859] {Default Queue} -> wl_region#1183.add(-23, -239, 24, 240) -[2619182.867] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2619182.871] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2619182.875] {Default Queue} -> wl_region#1183.subtract(0, 0, 24, 240) -[2619182.879] {Default Queue} -> wl_region#1183.add(-23, -239, 24, 240) -[2619182.883] {Default Queue} -> wl_surface#1159.set_opaque_region(wl_region#1184) -[2619182.887] {Default Queue} -> wl_surface#1159.set_input_region(wl_region#1183) -[2619182.891] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) -[2619182.894] {Default Queue} -> wl_surface#1159.commit() -[2619182.898] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) -[2619182.902] {Default Queue} -> wl_surface#1159.commit() -[2619182.909] {Default Queue} -> wl_surface#1159.attach(wl_buffer#3828, 0, 0) -[2619182.914] {Default Queue} -> wl_surface#1159.commit() -[2619182.921] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) -[2619182.925] {Default Queue} -> wl_surface#1191.commit() -[2619183.989] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) -[2619183.997] {Default Queue} -> wl_surface#1191.commit() -[2619184.006] {Default Queue} -> wl_region#1215.subtract(0, 0, 24, 240) -[2619184.010] {Default Queue} -> wl_region#1215.add(-23, -239, 24, 240) -[2619184.014] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2619184.017] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2619184.024] {Default Queue} -> wl_region#1215.subtract(0, 0, 24, 240) -[2619184.028] {Default Queue} -> wl_region#1215.add(-23, -239, 24, 240) -[2619184.032] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2619184.036] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2619184.041] {Default Queue} -> wl_region#1215.subtract(0, 0, 24, 240) -[2619184.045] {Default Queue} -> wl_region#1215.add(-23, -239, 24, 240) -[2619184.049] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2619184.053] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2619184.057] {Default Queue} -> wl_region#1215.subtract(0, 0, 24, 240) -[2619184.061] {Default Queue} -> wl_region#1215.add(-23, -239, 24, 240) -[2619184.065] {Default Queue} -> wl_surface#1191.set_opaque_region(wl_region#1216) -[2619184.069] {Default Queue} -> wl_surface#1191.set_input_region(wl_region#1215) -[2619184.073] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) -[2619184.076] {Default Queue} -> wl_surface#1191.commit() -[2619184.080] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) -[2619184.084] {Default Queue} -> wl_surface#1191.commit() -[2619184.089] {Default Queue} -> wl_surface#1191.attach(wl_buffer#3832, 0, 0) -[2619184.093] {Default Queue} -> wl_surface#1191.commit() -[2619184.098] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) -[2619184.102] {Default Queue} -> wl_surface#1223.commit() -[2619185.163] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) -[2619185.172] {Default Queue} -> wl_surface#1223.commit() -[2619185.181] {Default Queue} -> wl_region#1247.subtract(0, 0, 24, 240) -[2619185.186] {Default Queue} -> wl_region#1247.add(-23, -239, 24, 240) -[2619185.192] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2619185.197] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2619185.206] {Default Queue} -> wl_region#1247.subtract(0, 0, 24, 240) -[2619185.210] {Default Queue} -> wl_region#1247.add(-23, -239, 24, 240) -[2619185.214] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2619185.218] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2619185.224] {Default Queue} -> wl_region#1247.subtract(0, 0, 24, 240) -[2619185.228] {Default Queue} -> wl_region#1247.add(-23, -239, 24, 240) -[2619185.232] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2619185.235] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2619185.240] {Default Queue} -> wl_region#1247.subtract(0, 0, 24, 240) -[2619185.244] {Default Queue} -> wl_region#1247.add(-23, -239, 24, 240) -[2619185.248] {Default Queue} -> wl_surface#1223.set_opaque_region(wl_region#1248) -[2619185.251] {Default Queue} -> wl_surface#1223.set_input_region(wl_region#1247) -[2619185.255] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) -[2619185.259] {Default Queue} -> wl_surface#1223.commit() -[2619185.263] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) -[2619185.267] {Default Queue} -> wl_surface#1223.commit() -[2619185.273] {Default Queue} -> wl_surface#1223.attach(wl_buffer#3836, 0, 0) -[2619185.277] {Default Queue} -> wl_surface#1223.commit() -[2619185.282] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) -[2619185.286] {Default Queue} -> wl_surface#1063.commit() -[2619186.348] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) -[2619186.352] {Default Queue} -> wl_surface#1063.commit() -[2619186.358] {Default Queue} -> wl_region#1087.subtract(0, 0, 24, 240) -[2619186.362] {Default Queue} -> wl_region#1087.add(-23, -239, 24, 240) -[2619186.370] {Default Queue} -> wl_surface#1063.set_opaque_region(wl_region#1088) -[2619186.377] {Default Queue} -> wl_surface#1063.set_input_region(wl_region#1087) -[2619186.381] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) -[2619186.385] {Default Queue} -> wl_surface#1063.commit() -[2619186.389] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) -[2619186.393] {Default Queue} -> wl_surface#1063.commit() -[2619186.398] {Default Queue} -> wl_surface#1063.attach(wl_buffer#3840, 0, 0) -[2619186.402] {Default Queue} -> wl_surface#1063.commit() -[2619186.407] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) -[2619186.411] {Default Queue} -> wl_surface#1287.commit() -[2619187.471] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) -[2619187.476] {Default Queue} -> wl_surface#1287.commit() -[2619187.485] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 241) -[2619187.489] {Default Queue} -> wl_region#1311.add(-24, -240, 7, 241) -[2619187.493] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2619187.497] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2619187.599] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 241) -[2619187.604] {Default Queue} -> wl_region#1311.add(-24, -240, 7, 241) -[2619187.608] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2619187.611] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2619187.617] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2619187.621] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2619187.692] {Default Queue} -> wl_region#1311.subtract(0, 0, 7, 241) -[2619187.697] {Default Queue} -> wl_region#1311.add(-24, -240, 7, 241) -[2619187.701] {Default Queue} -> wl_surface#1287.set_opaque_region(wl_region#1312) -[2619187.704] {Default Queue} -> wl_surface#1287.set_input_region(wl_region#1311) -[2619187.710] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2619187.715] {Default Queue} -> wl_surface#1287.damage(0, 0, 2, 2) -[2619187.721] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) -[2619187.726] {Default Queue} -> wl_surface#1287.commit() -[2619187.731] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) -[2619187.736] {Default Queue} -> wl_surface#1287.commit() -[2619187.742] {Default Queue} -> wl_surface#1287.attach(wl_buffer#3844, 0, 0) -[2619187.746] {Default Queue} -> wl_surface#1287.commit() -[2619187.751] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) -[2619187.754] {Default Queue} -> wl_surface#1319.commit() -[2619188.816] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) -[2619188.821] {Default Queue} -> wl_surface#1319.commit() -[2619188.832] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 241) -[2619188.836] {Default Queue} -> wl_region#1343.add(-24, -240, 7, 241) -[2619188.840] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2619188.844] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2619188.942] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 241) -[2619188.947] {Default Queue} -> wl_region#1343.add(-24, -240, 7, 241) -[2619188.951] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2619188.955] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2619188.960] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2619188.964] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2619189.035] {Default Queue} -> wl_region#1343.subtract(0, 0, 7, 241) -[2619189.039] {Default Queue} -> wl_region#1343.add(-24, -240, 7, 241) -[2619189.043] {Default Queue} -> wl_surface#1319.set_opaque_region(wl_region#1344) -[2619189.047] {Default Queue} -> wl_surface#1319.set_input_region(wl_region#1343) -[2619189.052] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2619189.056] {Default Queue} -> wl_surface#1319.damage(0, 0, 2, 2) -[2619189.060] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) -[2619189.064] {Default Queue} -> wl_surface#1319.commit() -[2619189.075] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) -[2619189.081] {Default Queue} -> wl_surface#1319.commit() -[2619189.087] {Default Queue} -> wl_surface#1319.attach(wl_buffer#3848, 0, 0) -[2619189.091] {Default Queue} -> wl_surface#1319.commit() -[2619189.097] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) -[2619189.101] {Default Queue} -> wl_surface#1351.commit() -[2619190.162] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) -[2619190.166] {Default Queue} -> wl_surface#1351.commit() -[2619190.174] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 241) -[2619190.178] {Default Queue} -> wl_region#1375.add(-24, -240, 7, 241) -[2619190.182] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2619190.186] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2619190.276] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 241) -[2619190.281] {Default Queue} -> wl_region#1375.add(-24, -240, 7, 241) -[2619190.285] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2619190.288] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2619190.293] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2619190.297] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2619190.368] {Default Queue} -> wl_region#1375.subtract(0, 0, 7, 241) -[2619190.372] {Default Queue} -> wl_region#1375.add(-24, -240, 7, 241) -[2619190.376] {Default Queue} -> wl_surface#1351.set_opaque_region(wl_region#1376) -[2619190.380] {Default Queue} -> wl_surface#1351.set_input_region(wl_region#1375) -[2619190.385] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2619190.388] {Default Queue} -> wl_surface#1351.damage(0, 0, 2, 2) -[2619190.393] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) -[2619190.397] {Default Queue} -> wl_surface#1351.commit() -[2619190.401] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) -[2619190.405] {Default Queue} -> wl_surface#1351.commit() -[2619190.410] {Default Queue} -> wl_surface#1351.attach(wl_buffer#3852, 0, 0) -[2619190.414] {Default Queue} -> wl_surface#1351.commit() -[2619190.419] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) -[2619190.423] {Default Queue} -> wl_surface#1383.commit() -[2619191.483] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) -[2619191.488] {Default Queue} -> wl_surface#1383.commit() -[2619191.495] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 241) -[2619191.499] {Default Queue} -> wl_region#1407.add(-24, -240, 7, 241) -[2619191.503] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2619191.507] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2619191.590] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 241) -[2619191.595] {Default Queue} -> wl_region#1407.add(-24, -240, 7, 241) -[2619191.598] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2619191.602] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2619191.607] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2619191.611] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2619191.679] {Default Queue} -> wl_region#1407.subtract(0, 0, 7, 241) -[2619191.684] {Default Queue} -> wl_region#1407.add(-24, -240, 7, 241) -[2619191.688] {Default Queue} -> wl_surface#1383.set_opaque_region(wl_region#1408) -[2619191.692] {Default Queue} -> wl_surface#1383.set_input_region(wl_region#1407) -[2619191.696] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2619191.700] {Default Queue} -> wl_surface#1383.damage(0, 0, 2, 2) -[2619191.705] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) -[2619191.709] {Default Queue} -> wl_surface#1383.commit() -[2619191.713] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) -[2619191.716] {Default Queue} -> wl_surface#1383.commit() -[2619191.722] {Default Queue} -> wl_surface#1383.attach(wl_buffer#3856, 0, 0) -[2619191.725] {Default Queue} -> wl_surface#1383.commit() -[2619191.735] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) -[2619191.742] {Default Queue} -> wl_surface#1415.commit() -[2619192.805] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) -[2619192.814] {Default Queue} -> wl_surface#1415.commit() -[2619192.826] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 241) -[2619192.830] {Default Queue} -> wl_region#1439.add(-24, -240, 7, 241) -[2619192.834] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2619192.838] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2619192.938] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 241) -[2619192.943] {Default Queue} -> wl_region#1439.add(-24, -240, 7, 241) -[2619192.947] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2619192.950] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2619192.956] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2619192.960] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2619193.031] {Default Queue} -> wl_region#1439.subtract(0, 0, 7, 241) -[2619193.036] {Default Queue} -> wl_region#1439.add(-24, -240, 7, 241) -[2619193.040] {Default Queue} -> wl_surface#1415.set_opaque_region(wl_region#1440) -[2619193.044] {Default Queue} -> wl_surface#1415.set_input_region(wl_region#1439) -[2619193.048] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2619193.052] {Default Queue} -> wl_surface#1415.damage(0, 0, 2, 2) -[2619193.057] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) -[2619193.061] {Default Queue} -> wl_surface#1415.commit() -[2619193.065] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) -[2619193.068] {Default Queue} -> wl_surface#1415.commit() -[2619193.074] {Default Queue} -> wl_surface#1415.attach(wl_buffer#3860, 0, 0) -[2619193.078] {Default Queue} -> wl_surface#1415.commit() -[2619193.084] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) -[2619193.088] {Default Queue} -> wl_surface#1255.commit() -[2619194.149] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) -[2619194.155] {Default Queue} -> wl_surface#1255.commit() -[2619194.162] {Default Queue} -> wl_region#1279.subtract(0, 0, 25, 241) -[2619194.167] {Default Queue} -> wl_region#1279.add(-24, -240, 7, 241) -[2619194.171] {Default Queue} -> wl_surface#1255.set_opaque_region(wl_region#1280) -[2619194.175] {Default Queue} -> wl_surface#1255.set_input_region(wl_region#1279) -[2619194.179] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) -[2619194.183] {Default Queue} -> wl_surface#1255.commit() -[2619194.187] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) -[2619194.191] {Default Queue} -> wl_surface#1255.commit() -[2619194.196] {Default Queue} -> wl_surface#1255.attach(wl_buffer#3864, 0, 0) -[2619194.200] {Default Queue} -> wl_surface#1255.commit() -[2619194.206] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) -[2619194.210] {Default Queue} -> wl_surface#1031.commit() -[2619195.270] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) -[2619195.274] {Default Queue} -> wl_surface#1031.commit() -[2619195.281] {Default Queue} -> wl_region#1055.subtract(0, 0, 25, 241) -[2619195.285] {Default Queue} -> wl_region#1055.add(-23, -239, 24, 240) -[2619195.289] {Default Queue} -> wl_surface#1031.set_opaque_region(wl_region#1056) -[2619195.293] {Default Queue} -> wl_surface#1031.set_input_region(wl_region#1055) -[2619195.297] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) -[2619195.301] {Default Queue} -> wl_surface#1031.commit() -[2619195.305] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) -[2619195.309] {Default Queue} -> wl_surface#1031.commit() -[2619195.314] {Default Queue} -> wl_surface#1031.attach(wl_buffer#477, 0, 0) -[2619195.318] {Default Queue} -> wl_surface#1031.commit() -[2619195.323] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) -[2619195.327] {Default Queue} -> wl_surface#999.commit() -[2619196.387] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) -[2619196.396] {Default Queue} -> wl_surface#999.commit() -[2619196.404] {Default Queue} -> wl_region#1023.subtract(0, 0, 25, 241) -[2619196.408] {Default Queue} -> wl_region#1023.add(-23, -219, 25, 221) -[2619196.412] {Default Queue} -> wl_surface#999.set_opaque_region(wl_region#1024) -[2619196.416] {Default Queue} -> wl_surface#999.set_input_region(wl_region#1023) -[2619196.420] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) -[2619196.424] {Default Queue} -> wl_surface#999.commit() -[2619196.428] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) -[2619196.432] {Default Queue} -> wl_surface#999.commit() -[2619196.437] {Default Queue} -> wl_surface#999.attach(wl_buffer#3868, 0, 0) -[2619196.441] {Default Queue} -> wl_surface#999.commit() -[2619196.452] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) -[2619196.456] {Default Queue} -> wl_surface#935.commit() -[2619197.517] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) -[2619197.521] {Default Queue} -> wl_surface#935.commit() -[2619197.528] {Default Queue} -> wl_region#959.subtract(0, 0, 132, 380) -[2619197.532] {Default Queue} -> wl_region#959.add(-20, -216, 129, 377) -[2619197.536] {Default Queue} -> wl_surface#935.set_opaque_region(wl_region#960) -[2619197.540] {Default Queue} -> wl_surface#935.set_input_region(wl_region#959) -[2619197.546] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) -[2619197.550] {Default Queue} -> wl_surface#935.commit() -[2619197.555] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) -[2619197.558] {Default Queue} -> wl_surface#935.commit() -[2619197.565] {Default Queue} -> wl_surface#935.attach(wl_buffer#3645, 0, 0) -[2619197.568] {Default Queue} -> wl_surface#935.commit() -[2619197.580] {Default Queue} -> wl_surface#903.attach(wl_buffer#3872, 0, 0) -[2619197.585] {Default Queue} -> wl_surface#903.commit() -[2619197.591] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) -[2619197.595] {Default Queue} -> wl_surface#1511.commit() -[2619198.655] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) -[2619198.660] {Default Queue} -> wl_surface#1511.commit() -[2619198.671] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 236) -[2619198.675] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 236) -[2619198.679] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2619198.682] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2619198.772] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 236) -[2619198.777] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 236) -[2619198.781] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2619198.785] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2619198.795] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2619198.799] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2619198.870] {Default Queue} -> wl_region#1535.subtract(0, 0, 137, 236) -[2619198.874] {Default Queue} -> wl_region#1535.add(-135, -216, 137, 236) -[2619198.878] {Default Queue} -> wl_surface#1511.set_opaque_region(wl_region#1536) -[2619198.882] {Default Queue} -> wl_surface#1511.set_input_region(wl_region#1535) -[2619198.887] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2619198.891] {Default Queue} -> wl_surface#1511.damage(0, 0, 2, 20) -[2619198.896] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) -[2619198.902] {Default Queue} -> wl_surface#1511.commit() -[2619198.907] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) -[2619198.912] {Default Queue} -> wl_surface#1511.commit() -[2619198.918] {Default Queue} -> wl_surface#1511.attach(wl_buffer#3876, 0, 0) -[2619198.922] {Default Queue} -> wl_surface#1511.commit() -[2619198.928] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) -[2619198.932] {Default Queue} -> wl_surface#1575.commit() -[2619200.001] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) -[2619200.016] {Default Queue} -> wl_surface#1575.commit() -[2619200.039] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619200.049] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619200.055] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619200.060] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619200.071] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619200.077] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619200.082] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619200.087] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619200.099] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619200.105] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619200.110] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619200.114] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619200.122] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619200.127] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619200.133] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619200.137] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619200.144] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619200.149] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619200.154] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619200.159] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619200.220] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619200.225] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619200.231] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619200.236] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619200.243] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2619200.249] {Default Queue} -> wl_surface#1575.damage(0, 0, 2, 2) -[2619200.262] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619200.267] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619200.272] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619200.277] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619200.283] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619200.289] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619200.294] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619200.299] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619200.304] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619200.309] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619200.315] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619200.319] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619200.325] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619200.330] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619200.335] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619200.340] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619200.350] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619200.356] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619200.361] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619200.366] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619200.372] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619200.377] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619200.382] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619200.387] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619200.392] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619200.397] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619200.407] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619200.415] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619200.422] {Default Queue} -> wl_region#1599.subtract(0, 0, 140, 241) -[2619200.427] {Default Queue} -> wl_region#1599.add(-138, -228, 139, 230) -[2619200.432] {Default Queue} -> wl_surface#1575.set_opaque_region(wl_region#1600) -[2619200.437] {Default Queue} -> wl_surface#1575.set_input_region(wl_region#1599) -[2619200.443] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) -[2619200.449] {Default Queue} -> wl_surface#1575.commit() -[2619200.454] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) -[2619200.459] {Default Queue} -> wl_surface#1575.commit() -[2619200.467] {Default Queue} -> wl_surface#1575.attach(wl_buffer#3611, 0, 0) -[2619200.472] {Default Queue} -> wl_surface#1575.commit() -[2619200.480] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) -[2619200.485] {Default Queue} -> wl_surface#1543.commit() -[2619201.550] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) -[2619201.557] {Default Queue} -> wl_surface#1543.commit() -[2619201.568] {Default Queue} -> wl_region#1567.subtract(0, 0, 140, 241) -[2619201.573] {Default Queue} -> wl_region#1567.add(-138, -219, 140, 221) -[2619201.578] {Default Queue} -> wl_surface#1543.set_opaque_region(wl_region#1568) -[2619201.583] {Default Queue} -> wl_surface#1543.set_input_region(wl_region#1567) -[2619201.589] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) -[2619201.594] {Default Queue} -> wl_surface#1543.commit() -[2619201.599] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) -[2619201.604] {Default Queue} -> wl_surface#1543.commit() -[2619201.611] {Default Queue} -> wl_surface#1543.attach(wl_buffer#3880, 0, 0) -[2619201.616] {Default Queue} -> wl_surface#1543.commit() -[2619201.635] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) -[2619201.641] {Default Queue} -> wl_surface#1479.commit() -[2619202.705] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) -[2619202.710] {Default Queue} -> wl_surface#1479.commit() -[2619202.728] {Default Queue} -> wl_region#1503.subtract(0, 0, 247, 380) -[2619202.734] {Default Queue} -> wl_region#1503.add(-135, -216, 244, 377) -[2619202.739] {Default Queue} -> wl_surface#1479.set_opaque_region(wl_region#1504) -[2619202.744] {Default Queue} -> wl_surface#1479.set_input_region(wl_region#1503) -[2619202.756] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) -[2619202.761] {Default Queue} -> wl_surface#1479.commit() -[2619202.767] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) -[2619202.772] {Default Queue} -> wl_surface#1479.commit() -[2619202.780] {Default Queue} -> wl_surface#1479.attach(wl_buffer#2427, 0, 0) -[2619202.785] {Default Queue} -> wl_surface#1479.commit() -[2619202.806] {Default Queue} -> wl_surface#1447.attach(wl_buffer#3884, 0, 0) -[2619202.811] {Default Queue} -> wl_surface#1447.commit() -[2619202.820] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) -[2619202.825] {Default Queue} -> wl_surface#1671.commit() -[2619203.869] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) -[2619203.875] {Default Queue} -> wl_surface#1671.commit() -[2619203.889] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 236) -[2619203.895] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 236) -[2619203.900] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2619203.905] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2619203.972] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 236) -[2619203.977] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 236) -[2619203.983] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2619203.988] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2619203.996] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2619204.002] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2619204.057] {Default Queue} -> wl_region#1695.subtract(0, 0, 252, 236) -[2619204.064] {Default Queue} -> wl_region#1695.add(-250, -216, 252, 236) -[2619204.070] {Default Queue} -> wl_surface#1671.set_opaque_region(wl_region#1696) -[2619204.074] {Default Queue} -> wl_surface#1671.set_input_region(wl_region#1695) -[2619204.082] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2619204.087] {Default Queue} -> wl_surface#1671.damage(0, 0, 2, 20) -[2619204.093] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) -[2619204.098] {Default Queue} -> wl_surface#1671.commit() -[2619204.103] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) -[2619204.108] {Default Queue} -> wl_surface#1671.commit() -[2619204.115] {Default Queue} -> wl_surface#1671.attach(wl_buffer#3888, 0, 0) -[2619204.120] {Default Queue} -> wl_surface#1671.commit() -[2619204.128] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) -[2619204.133] {Default Queue} -> wl_surface#1735.commit() -[2619205.196] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) -[2619205.203] {Default Queue} -> wl_surface#1735.commit() -[2619205.216] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) -[2619205.223] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) -[2619205.229] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2619205.234] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2619205.244] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) -[2619205.249] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) -[2619205.254] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2619205.259] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2619205.267] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) -[2619205.272] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) -[2619205.277] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2619205.282] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2619205.289] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) -[2619205.294] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) -[2619205.299] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2619205.304] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2619205.311] {Default Queue} -> wl_region#1759.subtract(0, 0, 255, 241) -[2619205.316] {Default Queue} -> wl_region#1759.add(-253, -228, 254, 230) -[2619205.321] {Default Queue} -> wl_surface#1735.set_opaque_region(wl_region#1760) -[2619205.326] {Default Queue} -> wl_surface#1735.set_input_region(wl_region#1759) -[2619205.342] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) -[2619205.348] {Default Queue} -> wl_surface#1735.commit() -[2619205.353] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) -[2619205.358] {Default Queue} -> wl_surface#1735.commit() -[2619205.365] {Default Queue} -> wl_surface#1735.attach(wl_buffer#3132, 0, 0) -[2619205.370] {Default Queue} -> wl_surface#1735.commit() -[2619205.377] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) -[2619205.382] {Default Queue} -> wl_surface#1703.commit() -[2619206.444] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) -[2619206.450] {Default Queue} -> wl_surface#1703.commit() -[2619206.458] {Default Queue} -> wl_region#1727.subtract(0, 0, 255, 241) -[2619206.463] {Default Queue} -> wl_region#1727.add(-253, -219, 255, 221) -[2619206.468] {Default Queue} -> wl_surface#1703.set_opaque_region(wl_region#1728) -[2619206.473] {Default Queue} -> wl_surface#1703.set_input_region(wl_region#1727) -[2619206.479] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) -[2619206.484] {Default Queue} -> wl_surface#1703.commit() -[2619206.489] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) -[2619206.494] {Default Queue} -> wl_surface#1703.commit() -[2619206.501] {Default Queue} -> wl_surface#1703.attach(wl_buffer#3892, 0, 0) -[2619206.510] {Default Queue} -> wl_surface#1703.commit() -[2619206.525] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) -[2619206.532] {Default Queue} -> wl_surface#1639.commit() -[2619207.599] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) -[2619207.604] {Default Queue} -> wl_surface#1639.commit() -[2619207.614] {Default Queue} -> wl_region#1663.subtract(0, 0, 362, 380) -[2619207.619] {Default Queue} -> wl_region#1663.add(-250, -216, 359, 377) -[2619207.624] {Default Queue} -> wl_surface#1639.set_opaque_region(wl_region#1664) -[2619207.629] {Default Queue} -> wl_surface#1639.set_input_region(wl_region#1663) -[2619207.637] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) -[2619207.642] {Default Queue} -> wl_surface#1639.commit() -[2619207.648] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) -[2619207.653] {Default Queue} -> wl_surface#1639.commit() -[2619207.661] {Default Queue} -> wl_surface#1639.attach(wl_buffer#190, 0, 0) -[2619207.666] {Default Queue} -> wl_surface#1639.commit() -[2619207.679] {Default Queue} -> wl_surface#1607.attach(wl_buffer#3896, 0, 0) -[2619207.684] {Default Queue} -> wl_surface#1607.commit() -[2619207.692] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) -[2619207.697] {Default Queue} -> wl_surface#1831.commit() -[2619208.760] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) -[2619208.765] {Default Queue} -> wl_surface#1831.commit() -[2619208.779] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 236) -[2619208.784] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 236) -[2619208.789] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2619208.794] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2619208.878] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 236) -[2619208.883] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 236) -[2619208.889] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2619208.893] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2619208.902] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2619208.907] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2619208.967] {Default Queue} -> wl_region#1855.subtract(0, 0, 367, 236) -[2619208.972] {Default Queue} -> wl_region#1855.add(-365, -216, 367, 236) -[2619208.978] {Default Queue} -> wl_surface#1831.set_opaque_region(wl_region#1856) -[2619208.982] {Default Queue} -> wl_surface#1831.set_input_region(wl_region#1855) -[2619208.990] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2619208.995] {Default Queue} -> wl_surface#1831.damage(0, 0, 2, 20) -[2619209.001] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) -[2619209.006] {Default Queue} -> wl_surface#1831.commit() -[2619209.011] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) -[2619209.016] {Default Queue} -> wl_surface#1831.commit() -[2619209.024] {Default Queue} -> wl_surface#1831.attach(wl_buffer#3900, 0, 0) -[2619209.029] {Default Queue} -> wl_surface#1831.commit() -[2619209.037] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) -[2619209.042] {Default Queue} -> wl_surface#1895.commit() -[2619210.105] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) -[2619210.111] {Default Queue} -> wl_surface#1895.commit() -[2619210.123] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 241) -[2619210.130] {Default Queue} -> wl_region#1919.add(-368, -239, 369, 240) -[2619210.135] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) -[2619210.140] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) -[2619210.148] {Default Queue} -> wl_region#1919.subtract(0, 0, 370, 241) -[2619210.153] {Default Queue} -> wl_region#1919.add(-368, -239, 369, 240) -[2619210.158] {Default Queue} -> wl_surface#1895.set_opaque_region(wl_region#1920) -[2619210.163] {Default Queue} -> wl_surface#1895.set_input_region(wl_region#1919) -[2619210.174] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2619210.180] {Default Queue} -> wl_surface#1895.damage(0, 0, 2, 2) -[2619210.190] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) -[2619210.197] {Default Queue} -> wl_surface#1895.commit() -[2619210.202] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) -[2619210.207] {Default Queue} -> wl_surface#1895.commit() -[2619210.215] {Default Queue} -> wl_surface#1895.attach(wl_buffer#61, 0, 0) -[2619210.220] {Default Queue} -> wl_surface#1895.commit() -[2619210.227] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) -[2619210.232] {Default Queue} -> wl_surface#1863.commit() -[2619211.294] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) -[2619211.299] {Default Queue} -> wl_surface#1863.commit() -[2619211.308] {Default Queue} -> wl_region#1887.subtract(0, 0, 370, 241) -[2619211.313] {Default Queue} -> wl_region#1887.add(-368, -219, 370, 221) -[2619211.318] {Default Queue} -> wl_surface#1863.set_opaque_region(wl_region#1888) -[2619211.323] {Default Queue} -> wl_surface#1863.set_input_region(wl_region#1887) -[2619211.329] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) -[2619211.335] {Default Queue} -> wl_surface#1863.commit() -[2619211.339] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) -[2619211.344] {Default Queue} -> wl_surface#1863.commit() -[2619211.351] {Default Queue} -> wl_surface#1863.attach(wl_buffer#3904, 0, 0) -[2619211.356] {Default Queue} -> wl_surface#1863.commit() -[2619211.367] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) -[2619211.372] {Default Queue} -> wl_surface#1799.commit() -[2619212.438] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) -[2619212.444] {Default Queue} -> wl_surface#1799.commit() -[2619212.456] {Default Queue} -> wl_region#1823.subtract(0, 0, 477, 380) -[2619212.463] {Default Queue} -> wl_region#1823.add(-365, -216, 474, 377) -[2619212.468] {Default Queue} -> wl_surface#1799.set_opaque_region(wl_region#1824) -[2619212.473] {Default Queue} -> wl_surface#1799.set_input_region(wl_region#1823) -[2619212.482] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) -[2619212.487] {Default Queue} -> wl_surface#1799.commit() -[2619212.493] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) -[2619212.498] {Default Queue} -> wl_surface#1799.commit() -[2619212.506] {Default Queue} -> wl_surface#1799.attach(wl_buffer#1054, 0, 0) -[2619212.511] {Default Queue} -> wl_surface#1799.commit() -[2619212.525] {Default Queue} -> wl_surface#1772.attach(wl_buffer#3908, 0, 0) -[2619212.530] {Default Queue} -> wl_surface#1772.commit() -[2619212.537] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) -[2619212.543] {Default Queue} -> wl_surface#1991.commit() -[2619213.605] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) -[2619213.610] {Default Queue} -> wl_surface#1991.commit() -[2619213.622] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 236) -[2619213.628] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 236) -[2619213.633] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2619213.638] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2619213.704] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 236) -[2619213.709] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 236) -[2619213.715] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2619213.719] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2619213.728] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2619213.733] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2619213.780] {Default Queue} -> wl_region#2015.subtract(0, 0, 482, 236) -[2619213.785] {Default Queue} -> wl_region#2015.add(-480, -216, 482, 236) -[2619213.790] {Default Queue} -> wl_surface#1991.set_opaque_region(wl_region#2016) -[2619213.795] {Default Queue} -> wl_surface#1991.set_input_region(wl_region#2015) -[2619213.802] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2619213.807] {Default Queue} -> wl_surface#1991.damage(0, 0, 2, 20) -[2619213.820] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) -[2619213.827] {Default Queue} -> wl_surface#1991.commit() -[2619213.832] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) -[2619213.837] {Default Queue} -> wl_surface#1991.commit() -[2619213.845] {Default Queue} -> wl_surface#1991.attach(wl_buffer#3912, 0, 0) -[2619213.850] {Default Queue} -> wl_surface#1991.commit() -[2619213.857] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) -[2619213.875] {Default Queue} -> wl_surface#2055.commit() -[2619214.938] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) -[2619214.944] {Default Queue} -> wl_surface#2055.commit() -[2619214.957] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) -[2619214.963] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) -[2619214.968] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2619214.973] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2619215.057] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) -[2619215.062] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) -[2619215.067] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2619215.072] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2619215.080] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619215.085] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619215.253] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) -[2619215.258] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) -[2619215.264] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2619215.268] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2619215.275] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619215.280] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619215.349] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) -[2619215.354] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) -[2619215.359] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2619215.364] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2619215.371] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619215.376] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619215.530] {Default Queue} -> wl_region#2079.subtract(0, 0, 485, 241) -[2619215.535] {Default Queue} -> wl_region#2079.add(-483, -239, 484, 240) -[2619215.540] {Default Queue} -> wl_surface#2055.set_opaque_region(wl_region#2080) -[2619215.545] {Default Queue} -> wl_surface#2055.set_input_region(wl_region#2079) -[2619215.551] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619215.557] {Default Queue} -> wl_surface#2055.damage(0, 0, 2, 2) -[2619215.563] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) -[2619215.568] {Default Queue} -> wl_surface#2055.commit() -[2619215.573] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) -[2619215.578] {Default Queue} -> wl_surface#2055.commit() -[2619215.586] {Default Queue} -> wl_surface#2055.attach(wl_buffer#1757, 0, 0) -[2619215.591] {Default Queue} -> wl_surface#2055.commit() -[2619215.598] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) -[2619215.603] {Default Queue} -> wl_surface#2023.commit() -[2619216.665] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) -[2619216.670] {Default Queue} -> wl_surface#2023.commit() -[2619216.679] {Default Queue} -> wl_region#2047.subtract(0, 0, 485, 241) -[2619216.684] {Default Queue} -> wl_region#2047.add(-483, -219, 485, 221) -[2619216.689] {Default Queue} -> wl_surface#2023.set_opaque_region(wl_region#2048) -[2619216.694] {Default Queue} -> wl_surface#2023.set_input_region(wl_region#2047) -[2619216.700] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) -[2619216.705] {Default Queue} -> wl_surface#2023.commit() -[2619216.710] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) -[2619216.715] {Default Queue} -> wl_surface#2023.commit() -[2619216.726] {Default Queue} -> wl_surface#2023.attach(wl_buffer#1277, 0, 0) -[2619216.734] {Default Queue} -> wl_surface#2023.commit() -[2619216.751] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) -[2619216.756] {Default Queue} -> wl_surface#1959.commit() -[2619217.820] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) -[2619217.825] {Default Queue} -> wl_surface#1959.commit() -[2619217.842] {Default Queue} -> wl_region#1983.subtract(0, 0, 592, 380) -[2619217.848] {Default Queue} -> wl_region#1983.add(-480, -216, 589, 377) -[2619217.853] {Default Queue} -> wl_surface#1959.set_opaque_region(wl_region#1984) -[2619217.858] {Default Queue} -> wl_surface#1959.set_input_region(wl_region#1983) -[2619217.870] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) -[2619217.875] {Default Queue} -> wl_surface#1959.commit() -[2619217.880] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) -[2619217.885] {Default Queue} -> wl_surface#1959.commit() -[2619217.893] {Default Queue} -> wl_surface#1959.attach(wl_buffer#1917, 0, 0) -[2619217.898] {Default Queue} -> wl_surface#1959.commit() -[2619217.912] {Default Queue} -> wl_surface#1927.attach(wl_buffer#1534, 0, 0) -[2619217.917] {Default Queue} -> wl_surface#1927.commit() -[2619217.955] {Default Queue} -> wl_surface#871.attach(wl_buffer#926, 0, 0) -[2619217.961] {Default Queue} -> wl_surface#871.commit() -[2619217.969] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) -[2619217.974] {Default Queue} -> wl_surface#2183.commit() -[2619219.036] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) -[2619219.042] {Default Queue} -> wl_surface#2183.commit() -[2619219.056] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 403) -[2619219.061] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 403) -[2619219.066] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2619219.071] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2619219.153] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 403) -[2619219.158] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 403) -[2619219.163] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2619219.168] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2619219.176] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2619219.182] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2619219.239] {Default Queue} -> wl_region#2207.subtract(0, 0, 22, 403) -[2619219.244] {Default Queue} -> wl_region#2207.add(-20, -383, 22, 403) -[2619219.249] {Default Queue} -> wl_surface#2183.set_opaque_region(wl_region#2208) -[2619219.254] {Default Queue} -> wl_surface#2183.set_input_region(wl_region#2207) -[2619219.261] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2619219.266] {Default Queue} -> wl_surface#2183.damage(0, 0, 2, 20) -[2619219.272] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) -[2619219.278] {Default Queue} -> wl_surface#2183.commit() -[2619219.282] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) -[2619219.287] {Default Queue} -> wl_surface#2183.commit() -[2619219.294] {Default Queue} -> wl_surface#2183.attach(wl_buffer#1437, 0, 0) -[2619219.299] {Default Queue} -> wl_surface#2183.commit() -[2619219.307] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2619219.313] {Default Queue} -> wl_surface#2279.commit() -[2619220.375] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2619220.381] {Default Queue} -> wl_surface#2279.commit() -[2619220.393] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619220.398] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619220.404] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619220.409] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619220.420] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619220.425] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619220.435] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619220.442] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619220.450] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619220.455] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619220.460] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619220.465] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619220.471] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619220.477] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619220.482] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619220.486] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619220.494] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619220.499] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619220.504] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619220.509] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619220.518] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619220.523] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619220.528] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619220.533] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619220.538] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619220.543] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619220.549] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619220.554] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619220.560] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619220.566] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619220.571] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619220.575] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619220.581] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619220.586] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619220.591] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619220.596] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619220.610] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619220.617] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619220.622] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619220.627] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619220.633] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619220.638] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619220.643] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619220.648] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619220.655] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619220.660] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619220.665] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619220.670] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619220.677] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619220.682] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619220.687] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619220.692] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619220.699] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619220.704] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619220.709] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619220.714] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619220.723] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619220.728] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619220.733] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619220.741] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619220.749] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619220.754] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619220.759] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619220.764] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619220.770] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619220.775] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619220.780] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619220.784] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619220.790] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619220.795] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619220.800] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619220.805] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619220.813] {Default Queue} -> wl_region#2303.subtract(0, 0, 38, 407) -[2619220.818] {Default Queue} -> wl_region#2303.add(-9, -406, 24, 407) -[2619220.823] {Default Queue} -> wl_surface#2279.set_opaque_region(wl_region#2304) -[2619220.828] {Default Queue} -> wl_surface#2279.set_input_region(wl_region#2303) -[2619220.837] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2619220.842] {Default Queue} -> wl_surface#2279.damage(0, 0, 16, 2) -[2619220.848] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2619220.853] {Default Queue} -> wl_surface#2279.commit() -[2619220.858] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2619220.864] {Default Queue} -> wl_surface#2279.commit() -[2619220.877] {Default Queue} -> wl_surface#2279.attach(wl_buffer#2301, 0, 0) -[2619220.883] {Default Queue} -> wl_surface#2279.commit() -[2619220.914] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) -[2619220.925] {Default Queue} -> wl_surface#2311.commit() -[2619221.995] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) -[2619222.010] {Default Queue} -> wl_surface#2311.commit() -[2619222.023] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619222.029] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619222.036] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619222.040] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619222.054] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619222.060] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619222.066] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619222.071] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619222.078] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619222.083] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619222.088] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619222.093] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619222.099] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619222.103] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619222.109] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619222.113] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619222.120] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619222.125] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619222.131] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619222.136] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619222.142] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619222.147] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619222.153] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619222.157] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619222.198] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619222.207] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619222.214] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619222.218] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619222.225] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2619222.229] {Default Queue} -> wl_surface#2311.damage(0, 0, 2, 2) -[2619222.237] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619222.241] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619222.245] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619222.248] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619222.253] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619222.257] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619222.261] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619222.265] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619222.269] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619222.273] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619222.277] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619222.281] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619222.285] {Default Queue} -> wl_region#2335.subtract(0, 0, 25, 408) -[2619222.289] {Default Queue} -> wl_region#2335.add(-24, -407, 25, 388) -[2619222.293] {Default Queue} -> wl_surface#2311.set_opaque_region(wl_region#2336) -[2619222.297] {Default Queue} -> wl_surface#2311.set_input_region(wl_region#2335) -[2619222.301] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) -[2619222.305] {Default Queue} -> wl_surface#2311.commit() -[2619222.309] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) -[2619222.313] {Default Queue} -> wl_surface#2311.commit() -[2619222.356] {Display Queue} wl_display#1.delete_id(3389) -[2619222.362] {Display Queue} wl_display#1.delete_id(3738) -[2619222.366] {Display Queue} wl_display#1.delete_id(3387) -[2619222.370] {Display Queue} wl_display#1.delete_id(3390) -[2619222.373] {Display Queue} wl_display#1.delete_id(3739) -[2619222.377] {Display Queue} wl_display#1.delete_id(3712) -[2619222.381] {Display Queue} wl_display#1.delete_id(3760) -[2619222.384] {Display Queue} wl_display#1.delete_id(3761) -[2619222.388] {Display Queue} wl_display#1.delete_id(3758) -[2619222.391] {Display Queue} wl_display#1.delete_id(3759) -[2619222.395] {Default Queue} wl_pointer#24.motion(187310852, 17.00000000, 16.60156250) -[2619222.400] {Default Queue} wl_pointer#81.motion(187310852, 17.00000000, 16.60156250) -[2619222.406] {Default Queue} -> wl_pointer#81.set_cursor(690, wl_surface#69, 0, 0) -[2619222.411] {Default Queue} wl_pointer#105.motion(187310852, 17.00000000, 16.60156250) -[2619222.415] {Default Queue} wl_pointer#137.motion(187310852, 17.00000000, 16.60156250) -[2619222.419] {Default Queue} wl_pointer#169.motion(187310852, 17.00000000, 16.60156250) -[2619222.423] {Default Queue} wl_pointer#201.motion(187310852, 17.00000000, 16.60156250) -[2619222.427] {Default Queue} wl_pointer#233.motion(187310852, 17.00000000, 16.60156250) -[2619222.432] {Default Queue} wl_pointer#265.motion(187310852, 17.00000000, 16.60156250) -[2619222.436] {Default Queue} wl_pointer#297.motion(187310852, 17.00000000, 16.60156250) -[2619222.441] {Default Queue} wl_pointer#329.motion(187310852, 17.00000000, 16.60156250) -[2619222.445] {Default Queue} wl_pointer#361.motion(187310852, 17.00000000, 16.60156250) -[2619222.449] {Default Queue} wl_pointer#393.motion(187310852, 17.00000000, 16.60156250) -[2619222.454] {Default Queue} wl_pointer#425.motion(187310852, 17.00000000, 16.60156250) -[2619222.458] {Default Queue} wl_pointer#457.motion(187310852, 17.00000000, 16.60156250) -[2619222.463] {Default Queue} wl_pointer#489.motion(187310852, 17.00000000, 16.60156250) -[2619222.467] {Default Queue} wl_pointer#521.motion(187310852, 17.00000000, 16.60156250) -[2619222.472] {Default Queue} wl_pointer#553.motion(187310852, 17.00000000, 16.60156250) -[2619222.480] {Default Queue} wl_pointer#585.motion(187310852, 17.00000000, 16.60156250) -[2619222.486] {Default Queue} wl_pointer#617.motion(187310852, 17.00000000, 16.60156250) -[2619222.491] {Default Queue} wl_pointer#649.motion(187310852, 17.00000000, 16.60156250) -[2619222.495] {Default Queue} wl_pointer#681.motion(187310852, 17.00000000, 16.60156250) -[2619222.500] {Default Queue} wl_pointer#713.motion(187310852, 17.00000000, 16.60156250) -[2619222.504] {Default Queue} wl_pointer#745.motion(187310852, 17.00000000, 16.60156250) -[2619222.508] {Default Queue} wl_pointer#777.motion(187310852, 17.00000000, 16.60156250) -[2619222.512] {Default Queue} wl_pointer#809.motion(187310852, 17.00000000, 16.60156250) -[2619222.517] {Default Queue} wl_pointer#841.motion(187310852, 17.00000000, 16.60156250) -[2619222.521] {Default Queue} wl_pointer#873.motion(187310852, 17.00000000, 16.60156250) -[2619222.525] {Default Queue} wl_pointer#905.motion(187310852, 17.00000000, 16.60156250) -[2619222.530] {Default Queue} wl_pointer#937.motion(187310852, 17.00000000, 16.60156250) -[2619222.534] {Default Queue} wl_pointer#969.motion(187310852, 17.00000000, 16.60156250) -[2619222.538] {Default Queue} wl_pointer#1001.motion(187310852, 17.00000000, 16.60156250) -[2619222.542] {Default Queue} wl_pointer#1033.motion(187310852, 17.00000000, 16.60156250) -[2619222.546] {Default Queue} wl_pointer#1065.motion(187310852, 17.00000000, 16.60156250) -[2619222.550] {Default Queue} wl_pointer#1097.motion(187310852, 17.00000000, 16.60156250) -[2619222.554] {Default Queue} wl_pointer#1129.motion(187310852, 17.00000000, 16.60156250) -[2619222.559] {Default Queue} wl_pointer#1161.motion(187310852, 17.00000000, 16.60156250) -[2619222.563] {Default Queue} wl_pointer#1193.motion(187310852, 17.00000000, 16.60156250) -[2619222.568] {Default Queue} wl_pointer#1225.motion(187310852, 17.00000000, 16.60156250) -[2619222.572] {Default Queue} wl_pointer#1257.motion(187310852, 17.00000000, 16.60156250) -[2619222.576] {Default Queue} wl_pointer#1289.motion(187310852, 17.00000000, 16.60156250) -[2619222.581] {Default Queue} wl_pointer#1321.motion(187310852, 17.00000000, 16.60156250) -[2619222.585] {Default Queue} wl_pointer#1353.motion(187310852, 17.00000000, 16.60156250) -[2619222.589] {Default Queue} wl_pointer#1385.motion(187310852, 17.00000000, 16.60156250) -[2619222.593] {Default Queue} wl_pointer#1417.motion(187310852, 17.00000000, 16.60156250) -[2619222.597] {Default Queue} wl_pointer#1449.motion(187310852, 17.00000000, 16.60156250) -[2619222.602] {Default Queue} wl_pointer#1481.motion(187310852, 17.00000000, 16.60156250) -[2619222.606] {Default Queue} wl_pointer#1513.motion(187310852, 17.00000000, 16.60156250) -[2619222.610] {Default Queue} wl_pointer#1545.motion(187310852, 17.00000000, 16.60156250) -[2619222.614] {Default Queue} wl_pointer#1577.motion(187310852, 17.00000000, 16.60156250) -[2619222.617] {Default Queue} wl_pointer#1609.motion(187310852, 17.00000000, 16.60156250) -[2619222.621] {Default Queue} wl_pointer#1641.motion(187310852, 17.00000000, 16.60156250) -[2619222.625] {Default Queue} wl_pointer#1673.motion(187310852, 17.00000000, 16.60156250) -[2619222.629] {Default Queue} wl_pointer#1705.motion(187310852, 17.00000000, 16.60156250) -[2619222.633] {Default Queue} wl_pointer#1737.motion(187310852, 17.00000000, 16.60156250) -[2619222.637] {Default Queue} wl_pointer#1762.motion(187310852, 17.00000000, 16.60156250) -[2619222.641] {Default Queue} wl_pointer#1801.motion(187310852, 17.00000000, 16.60156250) -[2619222.645] {Default Queue} wl_pointer#1833.motion(187310852, 17.00000000, 16.60156250) -[2619222.649] {Default Queue} wl_pointer#1865.motion(187310852, 17.00000000, 16.60156250) -[2619222.653] {Default Queue} wl_pointer#1897.motion(187310852, 17.00000000, 16.60156250) -[2619222.657] {Default Queue} wl_pointer#1929.motion(187310852, 17.00000000, 16.60156250) -[2619222.661] {Default Queue} wl_pointer#1961.motion(187310852, 17.00000000, 16.60156250) -[2619222.665] {Default Queue} wl_pointer#1993.motion(187310852, 17.00000000, 16.60156250) -[2619222.669] {Default Queue} wl_pointer#2025.motion(187310852, 17.00000000, 16.60156250) -[2619222.676] {Default Queue} wl_pointer#2057.motion(187310852, 17.00000000, 16.60156250) -[2619222.681] {Default Queue} wl_pointer#2089.motion(187310852, 17.00000000, 16.60156250) -[2619222.685] {Default Queue} wl_pointer#2121.motion(187310852, 17.00000000, 16.60156250) -[2619222.689] {Default Queue} wl_pointer#2153.motion(187310852, 17.00000000, 16.60156250) -[2619222.693] {Default Queue} wl_pointer#2185.motion(187310852, 17.00000000, 16.60156250) -[2619222.697] {Default Queue} wl_pointer#2217.motion(187310852, 17.00000000, 16.60156250) -[2619222.701] {Default Queue} wl_pointer#2249.motion(187310852, 17.00000000, 16.60156250) -[2619222.706] {Default Queue} wl_pointer#2281.motion(187310852, 17.00000000, 16.60156250) -[2619222.710] {Default Queue} wl_pointer#2313.motion(187310852, 17.00000000, 16.60156250) -[2619222.714] {Default Queue} wl_pointer#2345.motion(187310852, 17.00000000, 16.60156250) -[2619222.718] {Default Queue} wl_pointer#2377.motion(187310852, 17.00000000, 16.60156250) -[2619222.723] {Default Queue} wl_pointer#2409.motion(187310852, 17.00000000, 16.60156250) -[2619222.727] {Default Queue} wl_pointer#2441.motion(187310852, 17.00000000, 16.60156250) -[2619222.732] {Default Queue} wl_pointer#2473.motion(187310852, 17.00000000, 16.60156250) -[2619222.736] {Default Queue} wl_pointer#2498.motion(187310852, 17.00000000, 16.60156250) -[2619222.753] {Default Queue} -> wl_buffer#3729.destroy() -[2619222.757] {Default Queue} -> wl_buffer#3728.destroy() -[2619222.761] {Default Queue} -> wl_shm_pool#3727.destroy() -[2619222.765] {Default Queue} -> wl_shm_pool#3726.destroy() -[2619222.770] {Default Queue} -> wl_surface#3708.destroy() -[2619222.825] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3759, fd 575, 640) -[2619222.832] {Default Queue} -> wl_shm#2481.create_pool(new id wl_shm_pool#3758, fd 578, 640) -[2619222.836] {Default Queue} -> wl_shm_pool#3759.create_buffer(new id wl_buffer#3761, 0, 10, 16, 40, 0) -[2619222.841] {Default Queue} -> wl_shm_pool#3758.create_buffer(new id wl_buffer#3760, 0, 10, 16, 40, 0) -[2619222.849] {Default Queue} -> wl_compositor#2476.create_surface(new id wl_surface#3712) -[2619222.854] {Default Queue} -> wl_surface#3712.attach(wl_buffer#3761, 0, 0) -[2619222.859] {Default Queue} -> wl_surface#3712.commit() -[2619222.870] {Default Queue} -> wl_surface#3712.attach(wl_buffer#3761, 0, 0) -[2619222.874] {Default Queue} -> wl_surface#3712.commit() -[2619222.878] {Default Queue} wl_pointer#2537.motion(187310852, 17.00000000, 16.60156250) -[2619222.883] {Default Queue} wl_pointer#2569.motion(187310852, 17.00000000, 16.60156250) -[2619222.887] {Default Queue} wl_pointer#2601.motion(187310852, 17.00000000, 16.60156250) -[2619222.891] {Default Queue} wl_pointer#2633.motion(187310852, 17.00000000, 16.60156250) -[2619222.896] {Default Queue} wl_pointer#2665.motion(187310852, 17.00000000, 16.60156250) -[2619222.900] {Default Queue} wl_pointer#2697.motion(187310852, 17.00000000, 16.60156250) -[2619222.904] {Default Queue} wl_pointer#2729.motion(187310852, 17.00000000, 16.60156250) -[2619222.909] {Default Queue} wl_pointer#2761.motion(187310852, 17.00000000, 16.60156250) -[2619222.913] {Default Queue} wl_pointer#2793.motion(187310852, 17.00000000, 16.60156250) -[2619222.918] {Default Queue} wl_pointer#2825.motion(187310852, 17.00000000, 16.60156250) -[2619222.923] {Default Queue} wl_pointer#2857.motion(187310852, 17.00000000, 16.60156250) -[2619222.927] {Default Queue} wl_pointer#2889.motion(187310852, 17.00000000, 16.60156250) -[2619222.931] {Default Queue} wl_pointer#2921.motion(187310852, 17.00000000, 16.60156250) -[2619222.936] {Default Queue} wl_pointer#2953.motion(187310852, 17.00000000, 16.60156250) -[2619222.940] {Default Queue} wl_pointer#2985.motion(187310852, 17.00000000, 16.60156250) -[2619222.945] {Default Queue} wl_pointer#3017.motion(187310852, 17.00000000, 16.60156250) -[2619222.949] {Default Queue} wl_pointer#3049.motion(187310852, 17.00000000, 16.60156250) -[2619222.953] {Default Queue} wl_pointer#3081.motion(187310852, 17.00000000, 16.60156250) -[2619222.961] {Default Queue} wl_pointer#3113.motion(187310852, 17.00000000, 16.60156250) -[2619222.967] {Default Queue} wl_pointer#3145.motion(187310852, 17.00000000, 16.60156250) -[2619222.972] {Default Queue} wl_pointer#3177.motion(187310852, 17.00000000, 16.60156250) -[2619222.976] {Default Queue} wl_pointer#3209.motion(187310852, 17.00000000, 16.60156250) -[2619222.981] {Default Queue} wl_pointer#3241.motion(187310852, 17.00000000, 16.60156250) -[2619222.985] {Default Queue} wl_pointer#3273.motion(187310852, 17.00000000, 16.60156250) -[2619222.989] {Default Queue} wl_pointer#3305.motion(187310852, 17.00000000, 16.60156250) -[2619222.994] {Default Queue} wl_pointer#3337.motion(187310852, 17.00000000, 16.60156250) -[2619222.998] {Default Queue} wl_pointer#3369.motion(187310852, 17.00000000, 16.60156250) -[2619223.003] {Default Queue} wl_pointer#3401.motion(187310852, 17.00000000, 16.60156250) -[2619223.007] {Default Queue} wl_pointer#3433.motion(187310852, 17.00000000, 16.60156250) -[2619223.012] {Default Queue} wl_pointer#3465.motion(187310852, 17.00000000, 16.60156250) -[2619223.017] {Default Queue} wl_pointer#3497.motion(187310852, 17.00000000, 16.60156250) -[2619223.021] {Default Queue} wl_pointer#3529.motion(187310852, 17.00000000, 16.60156250) -[2619223.025] {Default Queue} wl_pointer#3561.motion(187310852, 17.00000000, 16.60156250) -[2619223.029] {Default Queue} wl_pointer#3593.motion(187310852, 17.00000000, 16.60156250) -[2619223.034] {Default Queue} wl_pointer#3625.motion(187310852, 17.00000000, 16.60156250) -[2619223.038] {Default Queue} wl_pointer#3657.motion(187310852, 17.00000000, 16.60156250) -[2619223.043] {Default Queue} wl_pointer#3695.motion(187310852, 17.00000000, 16.60156250) -[2619223.047] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) -[2619223.050] {Default Queue} -> wl_surface#2311.commit() -[2619224.117] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) -[2619224.129] {Default Queue} -> wl_surface#2311.commit() -[2619224.137] {Default Queue} -> wl_surface#2311.attach(wl_buffer#3704, 0, 0) -[2619224.141] {Default Queue} -> wl_surface#2311.commit() -[2619224.147] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) -[2619224.151] {Default Queue} -> wl_surface#2247.commit() -[2619225.214] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) -[2619225.220] {Default Queue} -> wl_surface#2247.commit() -[2619225.230] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) -[2619225.235] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) -[2619225.239] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2619225.243] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2619225.254] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) -[2619225.258] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) -[2619225.262] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2619225.266] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2619225.272] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) -[2619225.276] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) -[2619225.280] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2619225.283] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2619225.288] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) -[2619225.292] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) -[2619225.296] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2619225.300] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2619225.304] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) -[2619225.308] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) -[2619225.312] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2619225.315] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2619225.395] {Default Queue} -> wl_region#2271.subtract(0, 0, 25, 408) -[2619225.399] {Default Queue} -> wl_region#2271.add(-23, -406, 24, 407) -[2619225.408] {Default Queue} -> wl_surface#2247.set_opaque_region(wl_region#2272) -[2619225.414] {Default Queue} -> wl_surface#2247.set_input_region(wl_region#2271) -[2619225.420] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2619225.424] {Default Queue} -> wl_surface#2247.damage(0, 0, 2, 2) -[2619225.429] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) -[2619225.433] {Default Queue} -> wl_surface#2247.commit() -[2619225.437] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) -[2619225.441] {Default Queue} -> wl_surface#2247.commit() -[2619225.447] {Default Queue} -> wl_surface#2247.attach(wl_buffer#3131, 0, 0) -[2619225.451] {Default Queue} -> wl_surface#2247.commit() -[2619225.456] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) -[2619225.460] {Default Queue} -> wl_surface#2215.commit() -[2619226.523] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) -[2619226.535] {Default Queue} -> wl_surface#2215.commit() -[2619226.546] {Default Queue} -> wl_region#2239.subtract(0, 0, 25, 408) -[2619226.550] {Default Queue} -> wl_region#2239.add(-23, -386, 25, 388) -[2619226.555] {Default Queue} -> wl_surface#2215.set_opaque_region(wl_region#2240) -[2619226.559] {Default Queue} -> wl_surface#2215.set_input_region(wl_region#2239) -[2619226.564] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) -[2619226.568] {Default Queue} -> wl_surface#2215.commit() -[2619226.571] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) -[2619226.575] {Default Queue} -> wl_surface#2215.commit() -[2619226.582] {Default Queue} -> wl_surface#2215.attach(wl_buffer#1405, 0, 0) -[2619226.587] {Default Queue} -> wl_surface#2215.commit() -[2619226.598] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) -[2619226.602] {Default Queue} -> wl_surface#2151.commit() -[2619227.674] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) -[2619227.685] {Default Queue} -> wl_surface#2151.commit() -[2619227.697] {Default Queue} -> wl_region#2175.subtract(0, 0, 132, 547) -[2619227.702] {Default Queue} -> wl_region#2175.add(-20, -383, 129, 544) -[2619227.707] {Default Queue} -> wl_surface#2151.set_opaque_region(wl_region#2176) -[2619227.711] {Default Queue} -> wl_surface#2151.set_input_region(wl_region#2175) -[2619227.717] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) -[2619227.722] {Default Queue} -> wl_surface#2151.commit() -[2619227.726] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) -[2619227.730] {Default Queue} -> wl_surface#2151.commit() -[2619227.737] {Default Queue} -> wl_surface#2151.attach(wl_buffer#1596, 0, 0) -[2619227.741] {Default Queue} -> wl_surface#2151.commit() -[2619227.753] {Default Queue} -> wl_surface#2119.attach(wl_buffer#1373, 0, 0) -[2619227.757] {Default Queue} -> wl_surface#2119.commit() -[2619227.763] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) -[2619227.767] {Default Queue} -> wl_surface#2407.commit() -[2619228.829] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) -[2619228.835] {Default Queue} -> wl_surface#2407.commit() -[2619228.846] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 403) -[2619228.851] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 403) -[2619228.855] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2619228.858] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2619228.980] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 403) -[2619228.985] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 403) -[2619228.989] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2619228.993] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2619229.000] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2619229.004] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2619229.088] {Default Queue} -> wl_region#2431.subtract(0, 0, 137, 403) -[2619229.092] {Default Queue} -> wl_region#2431.add(-135, -383, 137, 403) -[2619229.101] {Default Queue} -> wl_surface#2407.set_opaque_region(wl_region#2432) -[2619229.108] {Default Queue} -> wl_surface#2407.set_input_region(wl_region#2431) -[2619229.113] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2619229.117] {Default Queue} -> wl_surface#2407.damage(0, 0, 2, 20) -[2619229.122] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) -[2619229.126] {Default Queue} -> wl_surface#2407.commit() -[2619229.130] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) -[2619229.133] {Default Queue} -> wl_surface#2407.commit() -[2619229.139] {Default Queue} -> wl_surface#2407.attach(wl_buffer#1341, 0, 0) -[2619229.143] {Default Queue} -> wl_surface#2407.commit() -[2619229.149] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) -[2619229.153] {Default Queue} -> wl_surface#2471.commit() -[2619230.215] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) -[2619230.225] {Default Queue} -> wl_surface#2471.commit() -[2619230.243] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619230.248] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619230.252] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619230.256] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619230.264] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619230.268] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619230.271] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619230.275] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619230.281] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619230.285] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619230.289] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619230.293] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619230.298] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619230.302] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619230.306] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619230.309] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619230.315] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619230.319] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619230.322] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619230.326] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619230.332] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619230.336] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619230.340] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619230.343] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619230.348] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619230.352] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619230.355] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619230.360] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619230.365] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619230.369] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619230.374] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619230.377] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619230.382] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619230.386] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619230.390] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619230.394] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619230.398] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619230.402] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619230.406] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619230.410] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619230.420] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619230.427] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619230.431] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619230.434] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619230.439] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619230.443] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619230.447] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619230.451] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619230.455] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619230.459] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619230.463] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619230.467] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619230.471] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619230.475] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619230.479] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619230.482] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619230.488] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619230.492] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619230.496] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619230.499] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619230.504] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619230.508] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619230.512] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619230.516] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619230.520] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619230.524] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619230.528] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619230.531] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619230.536] {Default Queue} -> wl_region#2495.subtract(0, 0, 140, 408) -[2619230.540] {Default Queue} -> wl_region#2495.add(-138, -395, 139, 397) -[2619230.543] {Default Queue} -> wl_surface#2471.set_opaque_region(wl_region#2496) -[2619230.547] {Default Queue} -> wl_surface#2471.set_input_region(wl_region#2495) -[2619230.551] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) -[2619230.555] {Default Queue} -> wl_surface#2471.commit() -[2619230.559] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) -[2619230.563] {Default Queue} -> wl_surface#2471.commit() -[2619230.569] {Default Queue} -> wl_surface#2471.attach(wl_buffer#2270, 0, 0) -[2619230.573] {Default Queue} -> wl_surface#2471.commit() -[2619230.579] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) -[2619230.583] {Default Queue} -> wl_surface#2439.commit() -[2619231.645] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) -[2619231.651] {Default Queue} -> wl_surface#2439.commit() -[2619231.659] {Default Queue} -> wl_region#2463.subtract(0, 0, 140, 408) -[2619231.663] {Default Queue} -> wl_region#2463.add(-138, -386, 140, 388) -[2619231.668] {Default Queue} -> wl_surface#2439.set_opaque_region(wl_region#2464) -[2619231.671] {Default Queue} -> wl_surface#2439.set_input_region(wl_region#2463) -[2619231.676] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) -[2619231.680] {Default Queue} -> wl_surface#2439.commit() -[2619231.683] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) -[2619231.687] {Default Queue} -> wl_surface#2439.commit() -[2619231.693] {Default Queue} -> wl_surface#2439.attach(wl_buffer#1309, 0, 0) -[2619231.697] {Default Queue} -> wl_surface#2439.commit() -[2619231.706] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) -[2619231.714] {Default Queue} -> wl_surface#2375.commit() -[2619232.781] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) -[2619232.791] {Default Queue} -> wl_surface#2375.commit() -[2619232.802] {Default Queue} -> wl_region#2399.subtract(0, 0, 247, 547) -[2619232.806] {Default Queue} -> wl_region#2399.add(-135, -383, 244, 544) -[2619232.811] {Default Queue} -> wl_surface#2375.set_opaque_region(wl_region#2400) -[2619232.817] {Default Queue} -> wl_surface#2375.set_input_region(wl_region#2399) -[2619232.827] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) -[2619232.833] {Default Queue} -> wl_surface#2375.commit() -[2619232.841] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) -[2619232.847] {Default Queue} -> wl_surface#2375.commit() -[2619232.856] {Default Queue} -> wl_surface#2375.attach(wl_buffer#3715, 0, 0) -[2619232.867] {Default Queue} -> wl_surface#2375.commit() -[2619232.880] {Default Queue} -> wl_surface#2343.attach(wl_buffer#1085, 0, 0) -[2619232.884] {Default Queue} -> wl_surface#2343.commit() -[2619232.890] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) -[2619232.895] {Default Queue} -> wl_surface#2567.commit() -[2619233.957] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) -[2619233.961] {Default Queue} -> wl_surface#2567.commit() -[2619233.971] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 403) -[2619233.976] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 403) -[2619233.980] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2619233.983] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2619234.108] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 403) -[2619234.112] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 403) -[2619234.116] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2619234.120] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2619234.127] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2619234.131] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2619234.219] {Default Queue} -> wl_region#2591.subtract(0, 0, 252, 403) -[2619234.223] {Default Queue} -> wl_region#2591.add(-250, -383, 252, 403) -[2619234.227] {Default Queue} -> wl_surface#2567.set_opaque_region(wl_region#2592) -[2619234.231] {Default Queue} -> wl_surface#2567.set_input_region(wl_region#2591) -[2619234.236] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2619234.240] {Default Queue} -> wl_surface#2567.damage(0, 0, 2, 20) -[2619234.245] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) -[2619234.249] {Default Queue} -> wl_surface#2567.commit() -[2619234.252] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) -[2619234.256] {Default Queue} -> wl_surface#2567.commit() -[2619234.261] {Default Queue} -> wl_surface#2567.attach(wl_buffer#1245, 0, 0) -[2619234.265] {Default Queue} -> wl_surface#2567.commit() -[2619234.271] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) -[2619234.275] {Default Queue} -> wl_surface#2631.commit() -[2619235.336] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) -[2619235.344] {Default Queue} -> wl_surface#2631.commit() -[2619235.354] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) -[2619235.358] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) -[2619235.362] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2619235.366] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2619235.373] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) -[2619235.377] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) -[2619235.381] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2619235.385] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2619235.392] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) -[2619235.396] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) -[2619235.399] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2619235.408] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2619235.416] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) -[2619235.420] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) -[2619235.423] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2619235.427] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2619235.432] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) -[2619235.436] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) -[2619235.440] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2619235.444] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2619235.450] {Default Queue} -> wl_region#2655.subtract(0, 0, 255, 408) -[2619235.454] {Default Queue} -> wl_region#2655.add(-253, -395, 254, 397) -[2619235.458] {Default Queue} -> wl_surface#2631.set_opaque_region(wl_region#2656) -[2619235.461] {Default Queue} -> wl_surface#2631.set_input_region(wl_region#2655) -[2619235.466] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) -[2619235.470] {Default Queue} -> wl_surface#2631.commit() -[2619235.473] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) -[2619235.477] {Default Queue} -> wl_surface#2631.commit() -[2619235.483] {Default Queue} -> wl_surface#2631.attach(wl_buffer#3710, 0, 0) -[2619235.487] {Default Queue} -> wl_surface#2631.commit() -[2619235.492] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) -[2619235.496] {Default Queue} -> wl_surface#2599.commit() -[2619236.559] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) -[2619236.569] {Default Queue} -> wl_surface#2599.commit() -[2619236.578] {Default Queue} -> wl_region#2623.subtract(0, 0, 255, 408) -[2619236.582] {Default Queue} -> wl_region#2623.add(-253, -386, 255, 388) -[2619236.586] {Default Queue} -> wl_surface#2599.set_opaque_region(wl_region#2624) -[2619236.590] {Default Queue} -> wl_surface#2599.set_input_region(wl_region#2623) -[2619236.595] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) -[2619236.599] {Default Queue} -> wl_surface#2599.commit() -[2619236.603] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) -[2619236.607] {Default Queue} -> wl_surface#2599.commit() -[2619236.612] {Default Queue} -> wl_surface#2599.attach(wl_buffer#1213, 0, 0) -[2619236.616] {Default Queue} -> wl_surface#2599.commit() -[2619236.627] {Default Queue} -> wl_surface#2535.attach(wl_buffer#3718, 0, 0) -[2619236.631] {Default Queue} -> wl_surface#2535.commit() -[2619237.145] {Display Queue} wl_display#1.delete_id(3729) -[2619237.156] {Display Queue} wl_display#1.delete_id(3728) -[2619237.160] {Display Queue} wl_display#1.delete_id(3727) -[2619237.164] {Display Queue} wl_display#1.delete_id(3726) -[2619237.168] {Display Queue} wl_display#1.delete_id(3708) -[2619237.172] {Default Queue} wl_pointer#24.button(762, 187310867, 272, 1) -[2619237.177] {Default Queue} wl_pointer#81.button(762, 187310867, 272, 1) -[2619237.202] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3708) -[2619237.207] {Default Queue} -> wl_display#1.sync(new id wl_callback#3726) -[2619237.211] {Default Queue} wl_pointer#105.button(762, 187310867, 272, 1) -[2619237.216] {Default Queue} wl_pointer#137.button(762, 187310867, 272, 1) -[2619237.220] {Default Queue} wl_pointer#169.button(762, 187310867, 272, 1) -[2619237.224] {Default Queue} wl_pointer#201.button(762, 187310867, 272, 1) -[2619237.228] {Default Queue} wl_pointer#233.button(762, 187310867, 272, 1) -[2619237.232] {Default Queue} wl_pointer#265.button(762, 187310867, 272, 1) -[2619237.236] {Default Queue} wl_pointer#297.button(762, 187310867, 272, 1) -[2619237.240] {Default Queue} wl_pointer#329.button(762, 187310867, 272, 1) -[2619237.244] {Default Queue} wl_pointer#361.button(762, 187310867, 272, 1) -[2619237.248] {Default Queue} wl_pointer#393.button(762, 187310867, 272, 1) -[2619237.252] {Default Queue} wl_pointer#425.button(762, 187310867, 272, 1) -[2619237.255] {Default Queue} wl_pointer#457.button(762, 187310867, 272, 1) -[2619237.271] {Default Queue} wl_pointer#489.button(762, 187310867, 272, 1) -[2619237.278] {Default Queue} wl_pointer#521.button(762, 187310867, 272, 1) -[2619237.282] {Default Queue} wl_pointer#553.button(762, 187310867, 272, 1) -[2619237.285] {Default Queue} wl_pointer#585.button(762, 187310867, 272, 1) -[2619237.289] {Default Queue} wl_pointer#617.button(762, 187310867, 272, 1) -[2619237.293] {Default Queue} wl_pointer#649.button(762, 187310867, 272, 1) -[2619237.297] {Default Queue} wl_pointer#681.button(762, 187310867, 272, 1) -[2619237.301] {Default Queue} wl_pointer#713.button(762, 187310867, 272, 1) -[2619237.305] {Default Queue} wl_pointer#745.button(762, 187310867, 272, 1) -[2619237.309] {Default Queue} wl_pointer#777.button(762, 187310867, 272, 1) -[2619237.313] {Default Queue} wl_pointer#809.button(762, 187310867, 272, 1) -[2619237.317] {Default Queue} wl_pointer#841.button(762, 187310867, 272, 1) -[2619237.321] {Default Queue} wl_pointer#873.button(762, 187310867, 272, 1) -[2619237.325] {Default Queue} wl_pointer#905.button(762, 187310867, 272, 1) -[2619237.329] {Default Queue} wl_pointer#937.button(762, 187310867, 272, 1) -[2619237.333] {Default Queue} wl_pointer#969.button(762, 187310867, 272, 1) -[2619237.336] {Default Queue} wl_pointer#1001.button(762, 187310867, 272, 1) -[2619237.340] {Default Queue} wl_pointer#1033.button(762, 187310867, 272, 1) -[2619237.344] {Default Queue} wl_pointer#1065.button(762, 187310867, 272, 1) -[2619237.348] {Default Queue} wl_pointer#1097.button(762, 187310867, 272, 1) -[2619237.352] {Default Queue} wl_pointer#1129.button(762, 187310867, 272, 1) -[2619237.356] {Default Queue} wl_pointer#1161.button(762, 187310867, 272, 1) -[2619237.360] {Default Queue} wl_pointer#1193.button(762, 187310867, 272, 1) -[2619237.363] {Default Queue} wl_pointer#1225.button(762, 187310867, 272, 1) -[2619237.367] {Default Queue} wl_pointer#1257.button(762, 187310867, 272, 1) -[2619237.371] {Default Queue} wl_pointer#1289.button(762, 187310867, 272, 1) -[2619237.375] {Default Queue} wl_pointer#1321.button(762, 187310867, 272, 1) -[2619237.379] {Default Queue} wl_pointer#1353.button(762, 187310867, 272, 1) -[2619237.383] {Default Queue} wl_pointer#1385.button(762, 187310867, 272, 1) -[2619237.387] {Default Queue} wl_pointer#1417.button(762, 187310867, 272, 1) -[2619237.390] {Default Queue} wl_pointer#1449.button(762, 187310867, 272, 1) -[2619237.394] {Default Queue} wl_pointer#1481.button(762, 187310867, 272, 1) -[2619237.398] {Default Queue} wl_pointer#1513.button(762, 187310867, 272, 1) -[2619237.402] {Default Queue} wl_pointer#1545.button(762, 187310867, 272, 1) -[2619237.406] {Default Queue} wl_pointer#1577.button(762, 187310867, 272, 1) -[2619237.410] {Default Queue} wl_pointer#1609.button(762, 187310867, 272, 1) -[2619237.413] {Default Queue} wl_pointer#1641.button(762, 187310867, 272, 1) -[2619237.417] {Default Queue} wl_pointer#1673.button(762, 187310867, 272, 1) -[2619237.421] {Default Queue} wl_pointer#1705.button(762, 187310867, 272, 1) -[2619237.425] {Default Queue} wl_pointer#1737.button(762, 187310867, 272, 1) -[2619237.429] {Default Queue} wl_pointer#1762.button(762, 187310867, 272, 1) -[2619237.433] {Default Queue} wl_pointer#1801.button(762, 187310867, 272, 1) -[2619237.437] {Default Queue} wl_pointer#1833.button(762, 187310867, 272, 1) -[2619237.440] {Default Queue} wl_pointer#1865.button(762, 187310867, 272, 1) -[2619237.444] {Default Queue} wl_pointer#1897.button(762, 187310867, 272, 1) -[2619237.448] {Default Queue} wl_pointer#1929.button(762, 187310867, 272, 1) -[2619237.452] {Default Queue} wl_pointer#1961.button(762, 187310867, 272, 1) -[2619237.456] {Default Queue} wl_pointer#1993.button(762, 187310867, 272, 1) -[2619237.459] {Default Queue} wl_pointer#2025.button(762, 187310867, 272, 1) -[2619237.463] {Default Queue} wl_pointer#2057.button(762, 187310867, 272, 1) -[2619237.467] {Default Queue} wl_pointer#2089.button(762, 187310867, 272, 1) -[2619237.471] {Default Queue} wl_pointer#2121.button(762, 187310867, 272, 1) -[2619237.475] {Default Queue} wl_pointer#2153.button(762, 187310867, 272, 1) -[2619237.482] {Default Queue} wl_pointer#2185.button(762, 187310867, 272, 1) -[2619237.487] {Default Queue} wl_pointer#2217.button(762, 187310867, 272, 1) -[2619237.491] {Default Queue} wl_pointer#2249.button(762, 187310867, 272, 1) -[2619237.495] {Default Queue} wl_pointer#2281.button(762, 187310867, 272, 1) -[2619237.499] {Default Queue} wl_pointer#2313.button(762, 187310867, 272, 1) -[2619237.502] {Default Queue} wl_pointer#2345.button(762, 187310867, 272, 1) -[2619237.506] {Default Queue} wl_pointer#2377.button(762, 187310867, 272, 1) -[2619237.510] {Default Queue} wl_pointer#2409.button(762, 187310867, 272, 1) -[2619237.514] {Default Queue} wl_pointer#2441.button(762, 187310867, 272, 1) -[2619237.518] {Default Queue} wl_pointer#2473.button(762, 187310867, 272, 1) -[2619237.522] {Default Queue} wl_pointer#2498.button(762, 187310867, 272, 1) -[2619237.526] {Default Queue} wl_pointer#2537.button(762, 187310867, 272, 1) -[2619237.529] {Default Queue} wl_pointer#2569.button(762, 187310867, 272, 1) -[2619237.533] {Default Queue} wl_pointer#2601.button(762, 187310867, 272, 1) -[2619237.537] {Default Queue} wl_pointer#2633.button(762, 187310867, 272, 1) -[2619237.541] {Default Queue} wl_pointer#2665.button(762, 187310867, 272, 1) -[2619237.545] {Default Queue} wl_pointer#2697.button(762, 187310867, 272, 1) -[2619237.549] {Default Queue} wl_pointer#2729.button(762, 187310867, 272, 1) -[2619237.553] {Default Queue} wl_pointer#2761.button(762, 187310867, 272, 1) -[2619237.556] {Default Queue} wl_pointer#2793.button(762, 187310867, 272, 1) -[2619237.560] {Default Queue} wl_pointer#2825.button(762, 187310867, 272, 1) -[2619237.564] {Default Queue} wl_pointer#2857.button(762, 187310867, 272, 1) -[2619237.568] {Default Queue} wl_pointer#2889.button(762, 187310867, 272, 1) -[2619237.572] {Default Queue} wl_pointer#2921.button(762, 187310867, 272, 1) -[2619237.576] {Default Queue} wl_pointer#2953.button(762, 187310867, 272, 1) -[2619237.580] {Default Queue} wl_pointer#2985.button(762, 187310867, 272, 1) -[2619237.584] {Default Queue} wl_pointer#3017.button(762, 187310867, 272, 1) -[2619237.588] {Default Queue} wl_pointer#3049.button(762, 187310867, 272, 1) -[2619237.592] {Default Queue} wl_pointer#3081.button(762, 187310867, 272, 1) -[2619237.596] {Default Queue} wl_pointer#3113.button(762, 187310867, 272, 1) -[2619237.600] {Default Queue} wl_pointer#3145.button(762, 187310867, 272, 1) -[2619237.604] {Default Queue} wl_pointer#3177.button(762, 187310867, 272, 1) -[2619237.607] {Default Queue} wl_pointer#3209.button(762, 187310867, 272, 1) -[2619237.611] {Default Queue} wl_pointer#3241.button(762, 187310867, 272, 1) -[2619237.615] {Default Queue} wl_pointer#3273.button(762, 187310867, 272, 1) -[2619237.619] {Default Queue} wl_pointer#3305.button(762, 187310867, 272, 1) -[2619237.623] {Default Queue} wl_pointer#3337.button(762, 187310867, 272, 1) -[2619237.627] {Default Queue} wl_pointer#3369.button(762, 187310867, 272, 1) -[2619237.631] {Default Queue} wl_pointer#3401.button(762, 187310867, 272, 1) -[2619237.635] {Default Queue} wl_pointer#3433.button(762, 187310867, 272, 1) -[2619237.638] {Default Queue} wl_pointer#3465.button(762, 187310867, 272, 1) -[2619237.642] {Default Queue} wl_pointer#3497.button(762, 187310867, 272, 1) -[2619237.646] {Default Queue} wl_pointer#3529.button(762, 187310867, 272, 1) -[2619237.650] {Default Queue} wl_pointer#3561.button(762, 187310867, 272, 1) -[2619237.654] {Default Queue} wl_pointer#3593.button(762, 187310867, 272, 1) -[2619237.658] {Default Queue} wl_pointer#3625.button(762, 187310867, 272, 1) -[2619237.662] {Default Queue} wl_pointer#3657.button(762, 187310867, 272, 1) -[2619237.666] {Default Queue} wl_pointer#3695.button(762, 187310867, 272, 1) -[2619242.199] {Display Queue} wl_display#1.delete_id(3726) -[2619242.210] {Default Queue} wl_registry#3708.global(1, "wl_compositor", 6) -[2619242.216] {Default Queue} -> wl_registry#3708.bind(1, "wl_compositor", 1, new id [unknown]#3727) -[2619242.221] {Default Queue} wl_registry#3708.global(2, "wl_subcompositor", 1) -[2619242.225] {Default Queue} -> wl_registry#3708.bind(2, "wl_subcompositor", 1, new id [unknown]#3728) -[2619242.234] {Default Queue} wl_registry#3708.global(3, "xdg_wm_base", 6) -[2619242.241] {Default Queue} -> wl_registry#3708.bind(3, "xdg_wm_base", 1, new id [unknown]#3729) -[2619242.246] {Default Queue} wl_registry#3708.global(6, "zwlr_layer_shell_v1", 5) -[2619242.250] {Default Queue} wl_registry#3708.global(7, "ext_session_lock_manager_v1", 1) -[2619242.254] {Default Queue} wl_registry#3708.global(8, "wl_shm", 2) -[2619242.258] {Default Queue} -> wl_registry#3708.bind(8, "wl_shm", 1, new id [unknown]#3739) -[2619242.262] {Default Queue} -> wl_registry#3708.bind(8, "wl_shm", 1, new id [unknown]#3390) -[2619242.266] {Default Queue} -> wl_registry#3708.bind(8, "wl_shm", 1, new id [unknown]#3387) -[2619242.270] {Default Queue} wl_registry#3708.global(9, "zxdg_output_manager_v1", 3) -[2619242.274] {Default Queue} wl_registry#3708.global(10, "wp_fractional_scale_manager_v1", 1) -[2619242.278] {Default Queue} wl_registry#3708.global(11, "zwp_tablet_manager_v2", 1) -[2619242.282] {Default Queue} wl_registry#3708.global(12, "zwp_pointer_gestures_v1", 3) -[2619242.286] {Default Queue} wl_registry#3708.global(13, "zwp_relative_pointer_manager_v1", 1) -[2619242.290] {Default Queue} -> wl_registry#3708.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3738) -[2619242.294] {Default Queue} wl_registry#3708.global(14, "zwp_pointer_constraints_v1", 1) -[2619242.299] {Default Queue} -> wl_registry#3708.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3389) -[2619242.303] {Default Queue} wl_registry#3708.global(15, "ext_idle_notifier_v1", 2) -[2619242.307] {Default Queue} wl_registry#3708.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2619242.311] {Default Queue} wl_registry#3708.global(17, "wl_data_device_manager", 3) -[2619242.315] {Default Queue} -> wl_registry#3708.bind(17, "wl_data_device_manager", 2, new id [unknown]#3388) -[2619242.320] {Default Queue} -> wl_data_device_manager#3388.create_data_source(new id wl_data_source#3762) -[2619242.324] {Default Queue} -> wl_data_source#3762.offer("text/plain") -[2619242.328] {Default Queue} -> wl_data_source#3762.offer("text/plain;charset=utf-8") -[2619242.332] {Default Queue} -> wl_data_source#3762.offer("TEXT") -[2619242.336] {Default Queue} -> wl_data_source#3762.offer("STRING") -[2619242.339] {Default Queue} -> wl_data_source#3762.offer("UTF8_STRING") -[2619242.343] {Default Queue} wl_registry#3708.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2619242.348] {Default Queue} -> wl_registry#3708.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#3763) -[2619242.355] {Default Queue} -> zwp_primary_selection_device_manager_v1#3763.create_source(new id zwp_primary_selection_source_v1#3764) -[2619242.362] {Default Queue} -> zwp_primary_selection_source_v1#3764.offer("text/plain") -[2619242.366] {Default Queue} -> zwp_primary_selection_source_v1#3764.offer("text/plain;charset=utf-8") -[2619242.370] {Default Queue} -> zwp_primary_selection_source_v1#3764.offer("TEXT") -[2619242.374] {Default Queue} -> zwp_primary_selection_source_v1#3764.offer("STRING") -[2619242.377] {Default Queue} -> zwp_primary_selection_source_v1#3764.offer("UTF8_STRING") -[2619242.381] {Default Queue} wl_registry#3708.global(19, "zwlr_data_control_manager_v1", 2) -[2619242.385] {Default Queue} wl_registry#3708.global(20, "ext_data_control_manager_v1", 1) -[2619242.389] {Default Queue} wl_registry#3708.global(21, "wp_presentation", 2) -[2619242.393] {Default Queue} wl_registry#3708.global(22, "wp_security_context_manager_v1", 1) -[2619242.397] {Default Queue} wl_registry#3708.global(23, "zwp_text_input_manager_v3", 1) -[2619242.401] {Default Queue} wl_registry#3708.global(24, "zwp_input_method_manager_v2", 1) -[2619242.405] {Default Queue} wl_registry#3708.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2619242.409] {Default Queue} wl_registry#3708.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2619242.413] {Default Queue} wl_registry#3708.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2619242.417] {Default Queue} wl_registry#3708.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2619242.424] {Default Queue} wl_registry#3708.global(29, "ext_workspace_manager_v1", 1) -[2619242.429] {Default Queue} wl_registry#3708.global(30, "zwlr_output_manager_v1", 4) -[2619242.433] {Default Queue} wl_registry#3708.global(31, "zwlr_screencopy_manager_v1", 3) -[2619242.437] {Default Queue} wl_registry#3708.global(32, "wp_viewporter", 1) -[2619242.441] {Default Queue} wl_registry#3708.global(33, "zxdg_exporter_v2", 1) -[2619242.445] {Default Queue} wl_registry#3708.global(34, "zxdg_importer_v2", 1) -[2619242.449] {Default Queue} wl_registry#3708.global(36, "xdg_activation_v1", 1) -[2619242.452] {Default Queue} wl_registry#3708.global(37, "mutter_x11_interop", 1) -[2619242.456] {Default Queue} wl_registry#3708.global(38, "wl_seat", 9) -[2619242.460] {Default Queue} -> wl_registry#3708.bind(38, "wl_seat", 1, new id [unknown]#3765) -[2619242.465] {Default Queue} wl_registry#3708.global(39, "wp_cursor_shape_manager_v1", 2) -[2619242.468] {Default Queue} wl_registry#3708.global(40, "wl_output", 4) -[2619242.472] {Default Queue} -> wl_registry#3708.bind(40, "wl_output", 1, new id [unknown]#3740) -[2619242.477] {Default Queue} wl_callback#3726.done(0) -[2619242.481] {Default Queue} -> wl_compositor#44.create_surface(new id wl_surface#3726) -[2619242.485] {Default Queue} -> wl_subcompositor#3728.get_subsurface(new id wl_subsurface#3741, wl_surface#3726, wl_surface#43) -[2619242.492] {Default Queue} -> wl_subsurface#3741.set_desync() -[2619242.497] {Default Queue} -> wl_subsurface#3741.set_position(0, 29) -[2619242.501] {Default Queue} -> wl_subsurface#3741.place_above(wl_surface#43) -[2619242.544] {Default Queue} -> wl_shm#3739.create_pool(new id wl_shm_pool#3751, fd 581, 16) -[2619242.550] {Default Queue} -> wl_shm#3739.create_pool(new id wl_shm_pool#3750, fd 582, 16) -[2619242.555] {Default Queue} -> wl_shm_pool#3751.create_buffer(new id wl_buffer#3753, 0, 2, 2, 8, 0) -[2619242.559] {Default Queue} -> wl_shm_pool#3750.create_buffer(new id wl_buffer#3752, 0, 2, 2, 8, 0) -[2619242.567] {Default Queue} -> wl_surface#3726.attach(wl_buffer#3753, 0, 0) -[2619242.571] {Default Queue} -> wl_surface#3726.commit() -[2619242.576] {Default Queue} -> wl_surface#3726.attach(wl_buffer#3753, 0, 0) -[2619242.580] {Default Queue} -> wl_surface#3726.commit() -[2619242.584] {Default Queue} -> wl_compositor#3727.create_region(new id wl_region#3747) -[2619242.588] {Default Queue} -> wl_compositor#3727.create_region(new id wl_region#3746) -[2619242.592] {Default Queue} -> wl_region#3747.subtract(0, 0, 2, 31) -[2619242.596] {Default Queue} -> wl_region#3747.add(0, 0, 0, 0) -[2619242.600] {Default Queue} -> wl_surface#3726.set_opaque_region(wl_region#3746) -[2619242.604] {Default Queue} -> wl_surface#3726.set_input_region(wl_region#3747) -[2619242.608] {Default Queue} -> wl_surface#3726.damage(0, 0, 2, 2) -[2619242.612] {Default Queue} -> wl_surface#43.damage(0, 0, 616, 29) -[2619242.619] {Default Queue} -> wl_surface#3726.attach(wl_buffer#3753, 0, 0) -[2619242.623] {Default Queue} -> wl_surface#3726.commit() -[2619242.653] {Default Queue} -> wl_shm#3387.create_pool(new id wl_shm_pool#3749, fd 585, 640) -[2619242.659] {Default Queue} -> wl_shm#3387.create_pool(new id wl_shm_pool#3748, fd 586, 640) -[2619242.663] {Default Queue} -> wl_shm_pool#3749.create_buffer(new id wl_buffer#3723, 0, 10, 16, 40, 0) -[2619242.667] {Default Queue} -> wl_shm_pool#3748.create_buffer(new id wl_buffer#3730, 0, 10, 16, 40, 0) -[2619242.675] {Default Queue} -> wl_compositor#3727.create_surface(new id wl_surface#3731) -[2619242.679] {Default Queue} -> wl_surface#3731.attach(wl_buffer#3723, 0, 0) -[2619242.683] {Default Queue} -> wl_surface#3731.commit() -[2619242.689] {Default Queue} -> wl_surface#3731.attach(wl_buffer#3723, 0, 0) -[2619242.694] {Default Queue} -> wl_surface#3731.commit() -[2619242.779] {Default Queue} -> wl_buffer#3753.destroy() -[2619242.785] {Default Queue} -> wl_buffer#3752.destroy() -[2619242.789] {Default Queue} -> wl_shm_pool#3751.destroy() -[2619242.793] {Default Queue} -> wl_shm_pool#3750.destroy() -[2619242.804] {Default Queue} -> wl_subsurface#3741.destroy() -[2619242.819] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#3732) -[2619242.824] {Default Queue} -> wl_display#1.sync(new id wl_callback#3733) -[2619247.192] {Display Queue} wl_display#1.delete_id(3753) -[2619247.203] {Display Queue} wl_display#1.delete_id(3752) -[2619247.207] {Display Queue} wl_display#1.delete_id(3751) -[2619247.211] {Display Queue} wl_display#1.delete_id(3750) -[2619247.215] {Display Queue} wl_display#1.delete_id(3741) -[2619247.219] {Default Queue} discarded wl_shm#3739.format(875709016) -[2619247.223] {Default Queue} discarded wl_shm#3739.format(1) -[2619247.226] {Default Queue} discarded wl_shm#3739.format(0) -[2619247.230] {Default Queue} discarded wl_shm#3739.format(875708993) -[2619247.234] {Default Queue} discarded wl_shm#3390.format(875709016) -[2619247.238] {Default Queue} discarded wl_shm#3390.format(1) -[2619247.241] {Default Queue} discarded wl_shm#3390.format(0) -[2619247.245] {Default Queue} discarded wl_shm#3390.format(875708993) -[2619247.249] {Default Queue} discarded wl_shm#3387.format(875709016) -[2619247.252] {Default Queue} discarded wl_shm#3387.format(1) -[2619247.256] {Default Queue} discarded wl_shm#3387.format(0) -[2619247.259] {Default Queue} discarded wl_shm#3387.format(875708993) -[2619247.263] {Default Queue} wl_seat#3765.capabilities(7) -[2619247.267] {Default Queue} -> wl_seat#3765.get_keyboard(new id wl_keyboard#3741) -[2619247.271] {Default Queue} -> wl_seat#3765.get_pointer(new id wl_pointer#3750) -[2619247.275] {Default Queue} -> wl_data_device_manager#3388.get_data_device(new id wl_data_device#3751, wl_seat#3765) -[2619247.280] {Default Queue} -> zwp_primary_selection_device_manager_v1#3763.get_device(new id zwp_primary_selection_device_v1#3752, wl_seat#3765) -[2619247.288] {Default Queue} wl_output#3740.geometry(0, 0, 0, 0, 0, "Smithay", "Winit", 6) -[2619247.293] {Default Queue} wl_output#3740.mode(3, 1280, 800, 60000) -[2619247.297] {Default Queue} discarded wl_surface#2727.enter(wl_output#3740) -[2619247.301] {Default Queue} discarded wl_surface#3.enter(wl_output#3740) -[2619247.304] {Default Queue} discarded wl_surface#999.enter(wl_output#3740) -[2619247.308] {Default Queue} discarded wl_surface#3079.enter(wl_output#3740) -[2619247.312] {Default Queue} discarded wl_surface#1191.enter(wl_output#3740) -[2619247.315] {Default Queue} discarded wl_surface#1159.enter(wl_output#3740) -[2619247.319] {Default Queue} discarded wl_surface#1703.enter(wl_output#3740) -[2619247.322] {Default Queue} discarded wl_surface#2215.enter(wl_output#3740) -[2619247.326] {Default Queue} discarded wl_surface#423.enter(wl_output#3740) -[2619247.329] {Default Queue} discarded wl_surface#1447.enter(wl_output#3740) -[2619247.333] {Default Queue} discarded wl_surface#3527.enter(wl_output#3740) -[2619247.336] {Default Queue} discarded wl_surface#3047.enter(wl_output#3740) -[2619247.340] {Default Queue} discarded wl_surface#2023.enter(wl_output#3740) -[2619247.343] {Default Queue} discarded wl_surface#1639.enter(wl_output#3740) -[2619247.347] {Default Queue} discarded wl_surface#1319.enter(wl_output#3740) -[2619247.350] {Default Queue} discarded wl_surface#1127.enter(wl_output#3740) -[2619247.354] {Default Queue} discarded wl_surface#2151.enter(wl_output#3740) -[2619247.357] {Default Queue} discarded wl_surface#2375.enter(wl_output#3740) -[2619247.361] {Default Queue} discarded wl_surface#2695.enter(wl_output#3740) -[2619247.364] {Default Queue} discarded wl_surface#2919.enter(wl_output#3740) -[2619247.368] {Default Queue} discarded wl_surface#1063.enter(wl_output#3740) -[2619247.372] {Default Queue} discarded wl_surface#455.enter(wl_output#3740) -[2619247.375] {Default Queue} discarded wl_surface#1575.enter(wl_output#3740) -[2619247.379] {Default Queue} discarded wl_surface#1799.enter(wl_output#3740) -[2619247.382] {Default Queue} discarded wl_surface#1415.enter(wl_output#3740) -[2619247.386] {Default Queue} discarded wl_surface#2439.enter(wl_output#3740) -[2619247.389] {Default Queue} discarded wl_surface#2279.enter(wl_output#3740) -[2619247.393] {Default Queue} discarded wl_surface#3591.enter(wl_output#3740) -[2619247.404] {Default Queue} discarded wl_surface#1831.enter(wl_output#3740) -[2619247.410] {Default Queue} discarded wl_surface#903.enter(wl_output#3740) -[2619247.413] {Default Queue} discarded wl_surface#2663.enter(wl_output#3740) -[2619247.417] {Default Queue} discarded wl_surface#775.enter(wl_output#3740) -[2619247.421] {Default Queue} discarded wl_surface#1991.enter(wl_output#3740) -[2619247.424] {Default Queue} discarded wl_surface#1543.enter(wl_output#3740) -[2619247.428] {Default Queue} discarded wl_surface#135.enter(wl_output#3740) -[2619247.431] {Default Queue} discarded wl_surface#3623.enter(wl_output#3740) -[2619247.435] {Default Queue} discarded wl_surface#1287.enter(wl_output#3740) -[2619247.438] {Default Queue} discarded wl_surface#3399.enter(wl_output#3740) -[2619247.442] {Default Queue} discarded wl_surface#1031.enter(wl_output#3740) -[2619247.445] {Default Queue} discarded wl_surface#615.enter(wl_output#3740) -[2619247.449] {Default Queue} discarded wl_surface#3111.enter(wl_output#3740) -[2619247.452] {Default Queue} discarded wl_surface#231.enter(wl_output#3740) -[2619247.456] {Default Queue} discarded wl_surface#2343.enter(wl_output#3740) -[2619247.459] {Default Queue} discarded wl_surface#3655.enter(wl_output#3740) -[2619247.463] {Default Queue} discarded wl_surface#1863.enter(wl_output#3740) -[2619247.466] {Default Queue} discarded wl_surface#359.enter(wl_output#3740) -[2619247.470] {Default Queue} discarded wl_surface#2983.enter(wl_output#3740) -[2619247.473] {Default Queue} discarded wl_surface#583.enter(wl_output#3740) -[2619247.477] {Default Queue} discarded wl_surface#743.enter(wl_output#3740) -[2619247.480] {Default Queue} discarded wl_surface#3143.enter(wl_output#3740) -[2619247.484] {Default Queue} discarded wl_surface#2535.enter(wl_output#3740) -[2619247.487] {Default Queue} discarded wl_surface#3367.enter(wl_output#3740) -[2619247.491] {Default Queue} discarded wl_surface#967.enter(wl_output#3740) -[2619247.494] {Default Queue} discarded wl_surface#103.enter(wl_output#3740) -[2619247.498] {Default Queue} discarded wl_surface#3271.enter(wl_output#3740) -[2619247.501] {Default Queue} discarded wl_surface#327.enter(wl_output#3740) -[2619247.505] {Default Queue} discarded wl_surface#43.enter(wl_output#3740) -[2619247.508] {Default Queue} discarded wl_surface#2247.enter(wl_output#3740) -[2619247.512] {Default Queue} discarded wl_surface#807.enter(wl_output#3740) -[2619247.515] {Default Queue} discarded wl_surface#19.enter(wl_output#3740) -[2619247.519] {Default Queue} discarded wl_surface#2951.enter(wl_output#3740) -[2619247.522] {Default Queue} discarded wl_surface#101.enter(wl_output#3740) -[2619247.526] {Default Queue} discarded wl_surface#1511.enter(wl_output#3740) -[2619247.529] {Default Queue} discarded wl_surface#199.enter(wl_output#3740) -[2619247.533] {Default Queue} discarded wl_surface#3463.enter(wl_output#3740) -[2619247.536] {Default Queue} discarded wl_surface#3559.enter(wl_output#3740) -[2619247.540] {Default Queue} discarded wl_surface#3495.enter(wl_output#3740) -[2619247.543] {Default Queue} discarded wl_surface#391.enter(wl_output#3740) -[2619247.547] {Default Queue} discarded wl_surface#935.enter(wl_output#3740) -[2619247.550] {Default Queue} discarded wl_surface#2823.enter(wl_output#3740) -[2619247.554] {Default Queue} discarded wl_surface#3015.enter(wl_output#3740) -[2619247.557] {Default Queue} discarded wl_surface#1671.enter(wl_output#3740) -[2619247.561] {Default Queue} discarded wl_surface#1351.enter(wl_output#3740) -[2619247.564] {Default Queue} discarded wl_surface#711.enter(wl_output#3740) -[2619247.568] {Default Queue} discarded wl_surface#3175.enter(wl_output#3740) -[2619247.571] {Default Queue} discarded wl_surface#3431.enter(wl_output#3740) -[2619247.575] {Default Queue} discarded wl_surface#1223.enter(wl_output#3740) -[2619247.578] {Default Queue} discarded wl_surface#1927.enter(wl_output#3740) -[2619247.582] {Default Queue} discarded wl_surface#871.enter(wl_output#3740) -[2619247.585] {Default Queue} discarded wl_surface#1895.enter(wl_output#3740) -[2619247.589] {Default Queue} discarded wl_surface#263.enter(wl_output#3740) -[2619247.595] {Default Queue} discarded wl_surface#551.enter(wl_output#3740) -[2619247.600] {Default Queue} discarded wl_surface#1735.enter(wl_output#3740) -[2619247.604] {Default Queue} discarded wl_surface#1479.enter(wl_output#3740) -[2619247.607] {Default Queue} discarded wl_surface#1772.enter(wl_output#3740) -[2619247.611] {Default Queue} discarded wl_surface#2599.enter(wl_output#3740) -[2619247.614] {Default Queue} discarded wl_surface#2631.enter(wl_output#3740) -[2619247.618] {Default Queue} discarded wl_surface#1959.enter(wl_output#3740) -[2619247.621] {Default Queue} discarded wl_surface#647.enter(wl_output#3740) -[2619247.625] {Default Queue} discarded wl_surface#2055.enter(wl_output#3740) -[2619247.628] {Default Queue} discarded wl_surface#2508.enter(wl_output#3740) -[2619247.632] {Default Queue} discarded wl_surface#71.enter(wl_output#3740) -[2619247.635] {Default Queue} discarded wl_surface#2759.enter(wl_output#3740) -[2619247.639] {Default Queue} discarded wl_surface#2791.enter(wl_output#3740) -[2619247.642] {Default Queue} discarded wl_surface#2887.enter(wl_output#3740) -[2619247.646] {Default Queue} discarded wl_surface#2183.enter(wl_output#3740) -[2619247.649] {Default Queue} discarded wl_surface#2567.enter(wl_output#3740) -[2619247.653] {Default Queue} discarded wl_surface#69.enter(wl_output#3740) -[2619247.656] {Default Queue} discarded wl_surface#839.enter(wl_output#3740) -[2619247.660] {Default Queue} discarded wl_surface#1607.enter(wl_output#3740) -[2619247.663] {Default Queue} discarded wl_surface#1095.enter(wl_output#3740) -[2619247.667] {Default Queue} discarded wl_surface#1383.enter(wl_output#3740) -[2619247.670] {Default Queue} discarded wl_surface#487.enter(wl_output#3740) -[2619247.674] {Default Queue} discarded wl_surface#2311.enter(wl_output#3740) -[2619247.677] {Default Queue} discarded wl_surface#519.enter(wl_output#3740) -[2619247.681] {Default Queue} discarded wl_surface#3335.enter(wl_output#3740) -[2619247.684] {Default Queue} discarded wl_surface#3239.enter(wl_output#3740) -[2619247.688] {Default Queue} discarded wl_surface#2087.enter(wl_output#3740) -[2619247.691] {Default Queue} discarded wl_surface#2471.enter(wl_output#3740) -[2619247.695] {Default Queue} discarded wl_surface#295.enter(wl_output#3740) -[2619247.698] {Default Queue} discarded wl_surface#167.enter(wl_output#3740) -[2619247.702] {Default Queue} discarded wl_surface#1255.enter(wl_output#3740) -[2619247.705] {Default Queue} discarded wl_surface#2855.enter(wl_output#3740) -[2619247.709] {Default Queue} discarded wl_surface#3303.enter(wl_output#3740) -[2619247.712] {Default Queue} discarded wl_surface#679.enter(wl_output#3740) -[2619247.716] {Default Queue} discarded wl_surface#2407.enter(wl_output#3740) -[2619247.720] {Default Queue} discarded wl_surface#3207.enter(wl_output#3740) -[2619247.723] {Default Queue} discarded wl_surface#2119.enter(wl_output#3740) -[2619247.736] {Display Queue} wl_display#1.delete_id(3733) -[2619247.740] {Default Queue} wl_registry#3732.global(1, "wl_compositor", 6) -[2619247.745] {Default Queue} -> wl_registry#3732.bind(1, "wl_compositor", 1, new id [unknown]#3753) -[2619247.749] {Default Queue} wl_registry#3732.global(2, "wl_subcompositor", 1) -[2619247.753] {Default Queue} wl_registry#3732.global(3, "xdg_wm_base", 6) -[2619247.758] {Default Queue} -> wl_registry#3732.bind(3, "xdg_wm_base", 1, new id [unknown]#3743) -[2619247.762] {Default Queue} wl_registry#3732.global(6, "zwlr_layer_shell_v1", 5) -[2619247.766] {Default Queue} wl_registry#3732.global(7, "ext_session_lock_manager_v1", 1) -[2619247.770] {Default Queue} wl_registry#3732.global(8, "wl_shm", 2) -[2619247.774] {Default Queue} -> wl_registry#3732.bind(8, "wl_shm", 1, new id [unknown]#3742) -[2619247.778] {Default Queue} -> wl_registry#3732.bind(8, "wl_shm", 1, new id [unknown]#3745) -[2619247.782] {Default Queue} -> wl_registry#3732.bind(8, "wl_shm", 1, new id [unknown]#3744) -[2619247.786] {Default Queue} wl_registry#3732.global(9, "zxdg_output_manager_v1", 3) -[2619247.790] {Default Queue} wl_registry#3732.global(10, "wp_fractional_scale_manager_v1", 1) -[2619247.796] {Default Queue} wl_registry#3732.global(11, "zwp_tablet_manager_v2", 1) -[2619247.801] {Default Queue} wl_registry#3732.global(12, "zwp_pointer_gestures_v1", 3) -[2619247.805] {Default Queue} wl_registry#3732.global(13, "zwp_relative_pointer_manager_v1", 1) -[2619247.810] {Default Queue} -> wl_registry#3732.bind(13, "zwp_relative_pointer_manager_v1", 1, new id [unknown]#3164) -[2619247.814] {Default Queue} wl_registry#3732.global(14, "zwp_pointer_constraints_v1", 1) -[2619247.818] {Default Queue} -> wl_registry#3732.bind(14, "zwp_pointer_constraints_v1", 1, new id [unknown]#3163) -[2619247.822] {Default Queue} wl_registry#3732.global(15, "ext_idle_notifier_v1", 2) -[2619247.826] {Default Queue} wl_registry#3732.global(16, "zwp_idle_inhibit_manager_v1", 1) -[2619247.830] {Default Queue} wl_registry#3732.global(17, "wl_data_device_manager", 3) -[2619247.834] {Default Queue} -> wl_registry#3732.bind(17, "wl_data_device_manager", 2, new id [unknown]#3166) -[2619247.838] {Default Queue} -> wl_data_device_manager#3166.create_data_source(new id wl_data_source#3165) -[2619247.842] {Default Queue} -> wl_data_source#3165.offer("text/plain") -[2619247.846] {Default Queue} -> wl_data_source#3165.offer("text/plain;charset=utf-8") -[2619247.849] {Default Queue} -> wl_data_source#3165.offer("TEXT") -[2619247.853] {Default Queue} -> wl_data_source#3165.offer("STRING") -[2619247.857] {Default Queue} -> wl_data_source#3165.offer("UTF8_STRING") -[2619247.867] {Default Queue} -> wl_data_device_manager#3166.get_data_device(new id wl_data_device#283, wl_seat#3765) -[2619247.872] {Default Queue} wl_registry#3732.global(18, "zwp_primary_selection_device_manager_v1", 1) -[2619247.877] {Default Queue} -> wl_registry#3732.bind(18, "zwp_primary_selection_device_manager_v1", 1, new id [unknown]#286) -[2619247.881] {Default Queue} -> zwp_primary_selection_device_manager_v1#286.create_source(new id zwp_primary_selection_source_v1#285) -[2619247.888] {Default Queue} -> zwp_primary_selection_source_v1#285.offer("text/plain") -[2619247.892] {Default Queue} -> zwp_primary_selection_source_v1#285.offer("text/plain;charset=utf-8") -[2619247.895] {Default Queue} -> zwp_primary_selection_source_v1#285.offer("TEXT") -[2619247.899] {Default Queue} -> zwp_primary_selection_source_v1#285.offer("STRING") -[2619247.903] {Default Queue} -> zwp_primary_selection_source_v1#285.offer("UTF8_STRING") -[2619247.907] {Default Queue} -> zwp_primary_selection_device_manager_v1#286.get_device(new id zwp_primary_selection_device_v1#3004, wl_seat#3765) -[2619247.913] {Default Queue} wl_registry#3732.global(19, "zwlr_data_control_manager_v1", 2) -[2619247.917] {Default Queue} wl_registry#3732.global(20, "ext_data_control_manager_v1", 1) -[2619247.922] {Default Queue} wl_registry#3732.global(21, "wp_presentation", 2) -[2619247.926] {Default Queue} wl_registry#3732.global(22, "wp_security_context_manager_v1", 1) -[2619247.929] {Default Queue} wl_registry#3732.global(23, "zwp_text_input_manager_v3", 1) -[2619247.933] {Default Queue} wl_registry#3732.global(24, "zwp_input_method_manager_v2", 1) -[2619247.937] {Default Queue} wl_registry#3732.global(25, "zwp_keyboard_shortcuts_inhibit_manager_v1", 1) -[2619247.941] {Default Queue} wl_registry#3732.global(26, "zwp_virtual_keyboard_manager_v1", 1) -[2619247.945] {Default Queue} wl_registry#3732.global(27, "zwlr_virtual_pointer_manager_v1", 2) -[2619247.949] {Default Queue} wl_registry#3732.global(28, "zwlr_foreign_toplevel_manager_v1", 3) -[2619247.953] {Default Queue} wl_registry#3732.global(29, "ext_workspace_manager_v1", 1) -[2619247.957] {Default Queue} wl_registry#3732.global(30, "zwlr_output_manager_v1", 4) -[2619247.961] {Default Queue} wl_registry#3732.global(31, "zwlr_screencopy_manager_v1", 3) -[2619247.965] {Default Queue} wl_registry#3732.global(32, "wp_viewporter", 1) -[2619247.969] {Default Queue} wl_registry#3732.global(33, "zxdg_exporter_v2", 1) -[2619247.972] {Default Queue} wl_registry#3732.global(34, "zxdg_importer_v2", 1) -[2619247.976] {Default Queue} wl_registry#3732.global(36, "xdg_activation_v1", 1) -[2619247.983] {Default Queue} wl_registry#3732.global(37, "mutter_x11_interop", 1) -[2619247.988] {Default Queue} wl_registry#3732.global(38, "wl_seat", 9) -[2619247.992] {Default Queue} -> wl_registry#3732.bind(38, "wl_seat", 1, new id [unknown]#3003) -[2619247.996] {Default Queue} wl_registry#3732.global(39, "wp_cursor_shape_manager_v1", 2) -[2619248.000] {Default Queue} wl_registry#3732.global(40, "wl_output", 4) -[2619248.005] {Default Queue} -> wl_registry#3732.bind(40, "wl_output", 1, new id [unknown]#3006) -[2619248.009] {Default Queue} wl_callback#3733.done(0) -[2619248.013] {Default Queue} -> xdg_wm_base#3743.create_positioner(new id xdg_positioner#3733) -[2619248.017] {Default Queue} -> xdg_positioner#3733.set_size(2, 2) -[2619248.021] {Default Queue} -> xdg_positioner#3733.set_anchor_rect(3, 41, 2, 2) -[2619248.025] {Default Queue} -> wl_compositor#3753.create_surface(new id wl_surface#3005) -[2619248.029] {Default Queue} -> xdg_wm_base#3743.get_xdg_surface(new id xdg_surface#2780, wl_surface#3005) -[2619248.033] {Default Queue} -> xdg_surface#2780.get_popup(new id xdg_popup#2683, xdg_surface#21, xdg_positioner#3733) -[2619248.038] {Default Queue} -> wl_surface#3005.commit() -[2619248.049] {Default Queue} wl_keyboard#3741.keymap(1, fd 575, 68213) -[2619248.054] {Default Queue} wl_keyboard#3741.enter(566, wl_surface#19, array[0]) -[2619248.058] {Default Queue} wl_keyboard#3741.modifiers(566, 0, 0, 16, 0) -⚠️ warning: Error detected on fd 0 -error detected on stdin From 0b7f8d3f6731a7767dc7459239901c98d1fffd40 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Mon, 4 May 2026 15:25:16 -0500 Subject: [PATCH 657/836] wayland: only update cursor coord if its on the currentlyHeldWidget OR if there is no currentlyHeldW --- src/backend/wayland.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/backend/wayland.c b/src/backend/wayland.c index 57fd0adc4..a8f22d19f 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -615,14 +615,13 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time WAYLAND_EVENT_OP_START(self); while(topmost_parent->wayland.parent) topmost_parent = topmost_parent->wayland.parent; - if(currentlyHeldWidget) { + if(currentlyHeldWidget == self || !currentlyHeldWidget) { self->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); self->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); p.point = self->wayland.cur_mouse_pos; MwLLDispatch(self, move, &p); - MwLLDispatch(currentlyHeldWidget, down, &p); - } - + } + if(self->wayland.framebuffer.surface) { inArea |= self->wayland.framebuffer.surface == curSurface; } From 8eacf36c6ad61d80c6deeedc142cbeb9ea1ff084 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 4 May 2026 20:46:34 -0700 Subject: [PATCH 658/836] wayland: misc fixes --- include/Mw/LowLevel/Wayland.h | 1 + src/backend/wayland.c | 45 ++++++++++++++++++++++------------- 2 files changed, 29 insertions(+), 17 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 1a23f2a91..ab036ec3f 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -527,6 +527,7 @@ struct _MwLLWayland { MwI32 ox, oy; MwU32 ww, wh; /* Window position */ MwPoint cur_mouse_pos; /* Currently known mouse position */ + MwLL currentlyHeldWidget; int resizing; int setting_wh; diff --git a/src/backend/wayland.c b/src/backend/wayland.c index a8f22d19f..fdd2fc125 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland.c @@ -556,8 +556,6 @@ static void xdg_borderless_step(MwLL self, MwMouse p, MwU32 serial) { }; } -static MwLL currentlyHeldWidget = NULL; - static void relative_pointer_motion(void* data, struct zwp_relative_pointer_v1* pointer, uint32_t timeHi, @@ -607,7 +605,8 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time MwLL self = data; MwLL topmost_parent = self; MwMouse p; - MwBool inArea = MwFALSE; + MwBool inArea = MwFALSE; + MwLL currentlyHeldWidget = NULL; (void)time; (void)wl_pointer; @@ -615,13 +614,15 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time WAYLAND_EVENT_OP_START(self); while(topmost_parent->wayland.parent) topmost_parent = topmost_parent->wayland.parent; - if(currentlyHeldWidget == self || !currentlyHeldWidget) { + currentlyHeldWidget = topmost_parent->wayland.currentlyHeldWidget; + + if(currentlyHeldWidget == self) { self->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); self->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); p.point = self->wayland.cur_mouse_pos; MwLLDispatch(self, move, &p); - } - + } + if(self->wayland.framebuffer.surface) { inArea |= self->wayland.framebuffer.surface == curSurface; } @@ -630,6 +631,10 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time inArea |= self->wayland.backbuffer.surface == curSurface; } if(inArea) { + self->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); + self->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); + p.point = self->wayland.cur_mouse_pos; + MwLLDispatch(self, move, &p); wl_pointer_set_cursor(self->wayland.pointer, self->wayland.pointer_serial, self->wayland.cursor.surface, 0, 0); } WAYLAND_EVENT_OP_END(self); @@ -639,7 +644,8 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 serial, MwU32 time, MwU32 button, MwU32 state) { MwLL self = data; MwMouse p; - MwBool inArea = MwFALSE; + MwBool inArea = MwFALSE; + MwLL topmost_parent = self; (void)wl_pointer; (void)serial; @@ -648,6 +654,7 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri WAYLAND_EVENT_OP_START(self); p.point = self->wayland.cur_mouse_pos; + while(topmost_parent->wayland.parent) topmost_parent = topmost_parent->wayland.parent; if(self->wayland.framebuffer.surface) { inArea |= self->wayland.framebuffer.surface == curSurface; @@ -672,13 +679,13 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri switch(state) { case WL_POINTER_BUTTON_STATE_PRESSED: MwLLDispatch(self, down, &p); - currentlyHeldWidget = self; + topmost_parent->wayland.currentlyHeldWidget = self; break; case WL_POINTER_BUTTON_STATE_RELEASED: - if(currentlyHeldWidget != NULL) { - MwLLDispatch(currentlyHeldWidget, up, &p); - currentlyHeldWidget = NULL; + if(topmost_parent->wayland.currentlyHeldWidget != NULL) { + MwLLDispatch(topmost_parent->wayland.currentlyHeldWidget, up, &p); + topmost_parent->wayland.currentlyHeldWidget = NULL; } else { MwLLDispatch(self, up, &p); } @@ -1433,14 +1440,16 @@ static void region_setup(MwLL handle) { return; } - // wl_region_add(handle->wayland.o_region, 0, 0, width, height); + if(!handle->wayland.parent) + wl_region_add(handle->wayland.o_region, 0, 0, width, height); if(handle->wayland.type == MwLL_WAYLAND_POPUP) { wl_region_add(handle->wayland.region, 0, 0, width + abs(handle->wayland.x), height + abs(handle->wayland.y)); } else { wl_region_subtract(handle->wayland.region, 0, 0, width + abs(handle->wayland.x), height + abs(handle->wayland.y)); wl_region_add(handle->wayland.region, handle->wayland.clipping_rect.x, handle->wayland.clipping_rect.y, handle->wayland.clipping_rect.width, handle->wayland.clipping_rect.height); - // wl_region_add(handle->wayland.region, 0, 0, width, height); + if(!handle->wayland.parent) + wl_region_add(handle->wayland.region, 0, 0, width, height); } if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { @@ -2044,9 +2053,9 @@ static void MwLLDestroyImpl(MwLL handle) { free(handle); - if(currentlyHeldWidget == handle) { - currentlyHeldWidget = NULL; - } + // if(topmost_parent->wayland.currentlyHeldWidget == handle) { + // topmost_parent->wayland.currentlyHeldWidget = NULL; + // } } static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h) { @@ -2742,7 +2751,9 @@ static void MwLLMakeToolWindowImpl(MwLL handle) { } static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { + MwLL topmost_parent = handle; WIDGET_CHECK(handle); + while(topmost_parent->wayland.parent) topmost_parent = topmost_parent->wayland.parent; *point = handle->wayland.cur_mouse_pos; } @@ -2810,7 +2821,7 @@ static void MwLLEndStateChangeImpl(MwLL handle) { wl_subsurface_place_above(child->wayland.sublevel->subsurface, handle->wayland.framebuffer.surface); MwLLEndStateChangeImpl(w->children[i]->lowlevel); - currentlyHeldWidget = NULL; + topmost_parent->wayland.currentlyHeldWidget = NULL; } } } From d49e50f95afae26e402392db0cbaf5b3783008f2 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 4 May 2026 21:07:39 -0700 Subject: [PATCH 659/836] wayland: split wayland.c into four files --- CMakeLists.txt | 11 +- include/Mw/LowLevel/Wayland.h | 52 + pl/rules.pl | 5 +- pl/utils.pl | 4 +- src/backend/wayland/buffer.c | 116 +++ src/backend/wayland/interfaces.c | 1106 ++++++++++++++++++++ src/backend/wayland/region.c | 36 + src/backend/{ => wayland}/wayland.c | 1459 ++------------------------- 8 files changed, 1411 insertions(+), 1378 deletions(-) create mode 100644 src/backend/wayland/buffer.c create mode 100644 src/backend/wayland/interfaces.c create mode 100644 src/backend/wayland/region.c rename src/backend/{ => wayland}/wayland.c (51%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6099d2cb0..a67a319fc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -145,7 +145,7 @@ endif() if(MW_USE_WAYLAND) function(scan_wayland_protocol_core) execute_process( - COMMAND wayland-scanner private-code /usr/share/wayland/wayland.xml ${CMAKE_CURRENT_SOURCE_DIR}/src/backend/wayland-core-protocol.c + COMMAND wayland-scanner private-code /usr/share/wayland/wayland.xml ${CMAKE_CURRENT_SOURCE_DIR}/src/backend/wayland/wayland-core-protocol.c OUTPUT_VARIABLE WAYLAND_SCANNER_OUTPUT ERROR_VARIABLE WAYLAND_SCANNER_ERROR ECHO_OUTPUT_VARIABLE @@ -155,7 +155,7 @@ if(MW_USE_WAYLAND) target_sources( Mw PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/src/backend/wayland-core-protocol.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/backend/wayland/wayland-core-protocol.c ) execute_process( COMMAND wayland-scanner client-header /usr/share/wayland/wayland.xml ${CMAKE_CURRENT_SOURCE_DIR}/include/Mw/LowLevel/Wayland/wayland-core-protocol.h @@ -169,7 +169,7 @@ if(MW_USE_WAYLAND) endfunction() function(scan_wayland_protocol tier proto ver) - SET(proto_c ${CMAKE_CURRENT_SOURCE_DIR}/src/backend/wayland-${proto}-protocol.c) + SET(proto_c ${CMAKE_CURRENT_SOURCE_DIR}/src/backend/wayland/wayland-${proto}-protocol.c) execute_process( COMMAND wayland-scanner private-code /usr/share/wayland-protocols/${tier}/${proto}/${proto}${ver}.xml ${proto_c} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} @@ -217,7 +217,10 @@ if(MW_USE_WAYLAND) target_sources( Mw PRIVATE - src/backend/wayland.c + src/backend/wayland/wayland.c + src/backend/wayland/buffer.c + src/backend/wayland/interfaces.c + src/backend/wayland/region.c ) target_compile_definitions( Mw diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index ab036ec3f..fdcc0a2f1 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -573,4 +573,56 @@ struct _MwLLWaylandPixmap { cairo_surface_t* cs; }; +/* Setup the framebuffer with the saved width/height */ +void MwLLWaylandFramebufferSetup(struct _MwLLWayland* wayland); +/* Destroy the framebuffer */ +void MwLLWaylandFramebufferDestroy(struct _MwLLWayland* handle); + +/* Setup the framebuffer with the saved width/height */ +void MwLLWaylandBackbufferSetup(struct _MwLLWayland* wayland); +/* Destroy the backbuffer */ +void MwLLWaylandBackbufferDestroy(struct _MwLLWayland* handle); + +void MwLLWaylandBufferSetup(struct _MwLLWaylandShmBuffer* buffer, MwU32 width, MwU32 height); +void MwLLWaylandBufferUpdate(MwLL self, struct _MwLLWaylandShmBuffer* buffer); +void MwLLWaylandBufferDestroy(struct _MwLLWaylandShmBuffer* buffer); + +void MwLLWaylandRegionSetup(MwLL handle); +void MwLLWaylandRegionInvalidate(MwLL handle); + +void MwLLWaylandHangUntilConfigured(MwLL handle); + +MwBool MwLLWaylandWidgetIsDestroyed(MwLL self); +void MwLLWaylandWidgetUndestroy(MwLL self); + +/* Function for setting up the callbacks/structs that will be registered upon the relevant interfaces being found. */ +void MwLLWaylandSetupCallbacks(struct _MwLLWayland* wayland); + +void MwLLWaylandClipboardRead(wl_clipboard_device_context_t* ctx, int clipboard_type); + +/* Flush Wayland events */ +void MwLLWaylandFlush(MwLL handle); + +/* Standard procedure before event callbacks in Wayland */ +#define WAYLAND_EVENT_OP_START(self) \ + if(MwLLWaylandWidgetIsDestroyed(self)) { \ + return; \ + } + +/* Footer for WAYLAND_EVENT_OP_START */ +#define WAYLAND_EVENT_OP_END(self) + +#define WIDGET_CHECK(handle) \ + if(!handle->wayland.valid) { \ + return; \ + } + +/* the two decoration manager constructs */ +typedef struct zxdg_decoration_manager_v1_context { + struct zxdg_decoration_manager_v1* manager; + struct zxdg_toplevel_decoration_v1* decoration; +} zxdg_decoration_manager_v1_context_t; + +extern struct zwp_relative_pointer_v1_listener MwLLWaylandRelativePointerListener; + #endif diff --git a/pl/rules.pl b/pl/rules.pl index 04f7ba55e..ecb45ec5e 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -46,7 +46,10 @@ if (grep(/^classicmacos$/, @backends)) { if (grep(/^wayland$/, @backends)) { add_cflags("-DUSE_WAYLAND"); - new_object("src/backend/wayland.c"); + new_object("src/backend/wayland/wayland.c"); + new_object("src/backend/wayland/buffer.c"); + new_object("src/backend/wayland/interfaces.c"); + new_object("src/backend/wayland/region.c"); if (param_get("opengl")) { add_cflags("-DWAYLAND_LOAD_OPENGL"); diff --git a/pl/utils.pl b/pl/utils.pl index 70750cba8..a86cbbea9 100644 --- a/pl/utils.pl +++ b/pl/utils.pl @@ -66,7 +66,7 @@ sub use_backend { } sub scan_wayland_protocol_core { - my $proto_c = "src/backend/wayland-core-protocol.c"; + my $proto_c = "src/backend/wayland/wayland-core-protocol.c"; if ( system( @@ -98,7 +98,7 @@ sub scan_wayland_protocol { my $proto = $_[1]; my $ver = $_[2]; - my $proto_c = "src/backend/wayland-${proto}-protocol.c"; + my $proto_c = "src/backend/wayland/wayland-${proto}-protocol.c"; if ( system( diff --git a/src/backend/wayland/buffer.c b/src/backend/wayland/buffer.c new file mode 100644 index 000000000..a37fd34b3 --- /dev/null +++ b/src/backend/wayland/buffer.c @@ -0,0 +1,116 @@ +#include +#include + +void MwLLWaylandFramebufferSetup(struct _MwLLWayland* wayland) { + MwLLWaylandBufferSetup(&wayland->framebuffer, wayland->ww, wayland->wh); + + wayland->front_cs = cairo_image_surface_create_for_data(wayland->framebuffer.buf_back, CAIRO_FORMAT_ARGB32, wayland->ww, wayland->wh, 4 * wayland->ww); + wayland->front_cairo = cairo_create(wayland->front_cs); + + memset(wayland->framebuffer.buf_back, 0, wayland->framebuffer.buf_size); + if(wayland->configured) + wl_surface_attach(wayland->framebuffer.surface, wayland->framebuffer.shm_buffer, 0, 0); + wl_surface_commit(wayland->framebuffer.surface); + + MwLLWaylandHangUntilConfigured((MwLL)wayland); + MwLLWaylandBufferUpdate((MwLL)wayland, &wayland->framebuffer); +}; +void MwLLWaylandFramebufferDestroy(struct _MwLLWayland* wayland) { + MwLLWaylandBufferDestroy(&wayland->framebuffer); + cairo_destroy(wayland->front_cairo); + cairo_surface_destroy(wayland->front_cs); +}; + +void MwLLWaylandBackbufferSetup(struct _MwLLWayland* wayland) { + if(wayland->type != MwLL_WAYLAND_TOPLEVEL) { + return; + } + MwU32 w = wayland->ww; + MwU32 h = wayland->wh; + if(!wayland->has_decorations) { + w += (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT); + h += (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM); + } + MwLLWaylandBufferSetup(&wayland->backbuffer, w, h); + + wayland->back_cs = cairo_image_surface_create_for_data(wayland->backbuffer.buf_back, CAIRO_FORMAT_ARGB32, w, h, 4 * w); + wayland->back_cairo = cairo_create(wayland->back_cs); + + memset(wayland->backbuffer.buf_back, 255, wayland->backbuffer.buf_size); + if(wayland->configured) + wl_surface_attach(wayland->backbuffer.surface, wayland->backbuffer.shm_buffer, 0, 0); + wl_surface_commit(wayland->backbuffer.surface); + MwLLWaylandHangUntilConfigured((MwLL)wayland); + MwLLWaylandBufferUpdate((MwLL)wayland, &wayland->backbuffer); +}; +void MwLLWaylandBackbufferDestroy(struct _MwLLWayland* wayland) { + MwLLWaylandBufferDestroy(&wayland->backbuffer); + cairo_destroy(wayland->back_cairo); + cairo_surface_destroy(wayland->back_cs); +}; + +void MwLLWaylandBufferSetup(struct _MwLLWaylandShmBuffer* buffer, MwU32 width, MwU32 height) { + int stride = width * 4; + char temp_name[] = "/tmp/milsko-wl-shm-XXXXXX"; + char temp_name_back[] = "/tmp/milsko-wl-shm-back-XXXXXX"; + + buffer->buf_size = width * height * 4; + + buffer->fd = mkstemp(temp_name); + buffer->fd_back = mkstemp(temp_name_back); + + unlink(temp_name); + unlink(temp_name_back); + + if(posix_fallocate(buffer->fd, 0, buffer->buf_size) != 0) { + printf("failure setting up wl_shm: could not fallocate. %s.\n", strerror(errno)); + close(buffer->fd); + return; + } + if(posix_fallocate(buffer->fd_back, 0, buffer->buf_size) != 0) { + printf("failure setting up wl_shm: could not fallocate. %s.\n", strerror(errno)); + close(buffer->fd_back); + return; + } + if(ftruncate(buffer->fd, buffer->buf_size) != 0) { + printf("failure setting up wl_shm: could not truncate. %s.\n", strerror(errno)); + close(buffer->fd); + return; + } + if(ftruncate(buffer->fd_back, buffer->buf_size) != 0) { + printf("failure setting up wl_shm: could not truncate. %s.\n", strerror(errno)); + close(buffer->fd_back); + return; + } + + buffer->buf = mmap(NULL, buffer->buf_size, PROT_WRITE, MAP_SHARED, buffer->fd, 0); + buffer->buf_back = mmap(NULL, buffer->buf_size, PROT_WRITE, MAP_SHARED, buffer->fd_back, 0); + + fsync(buffer->fd); + fsync(buffer->fd_back); + + if(!(buffer->shm_pool = wl_shm_create_pool(buffer->shm, buffer->fd, buffer->buf_size))) { + printf("failure setting up wl_shm: could not create pool.\n"); + } + if(!(buffer->shm_pool_back = wl_shm_create_pool(buffer->shm, buffer->fd_back, buffer->buf_size))) { + printf("failure setting up wl_shm: could not create pool.\n"); + } + buffer->shm_buffer = wl_shm_pool_create_buffer(buffer->shm_pool, 0, width, height, stride, WL_SHM_FORMAT_ARGB8888); + buffer->shm_buffer_back = wl_shm_pool_create_buffer(buffer->shm_pool_back, 0, width, height, stride, WL_SHM_FORMAT_ARGB8888); + buffer->setup = MwTRUE; +} + +void MwLLWaylandBufferDestroy(struct _MwLLWaylandShmBuffer* buffer) { + if(!buffer->setup) { + return; + } + if(buffer->buf) munmap(buffer->buf, buffer->buf_size); + if(buffer->buf_back) munmap(buffer->buf_back, buffer->buf_size); + if(buffer->shm_buffer) wl_buffer_destroy(buffer->shm_buffer); + if(buffer->shm_buffer_back) wl_buffer_destroy(buffer->shm_buffer_back); + if(buffer->shm_pool) wl_shm_pool_destroy(buffer->shm_pool); + if(buffer->shm_pool_back) wl_shm_pool_destroy(buffer->shm_pool_back); + close(buffer->fd); + close(buffer->fd_back); + buffer->setup = MwFALSE; +} diff --git a/src/backend/wayland/interfaces.c b/src/backend/wayland/interfaces.c new file mode 100644 index 000000000..ef2bd50b6 --- /dev/null +++ b/src/backend/wayland/interfaces.c @@ -0,0 +1,1106 @@ +#include +#include +#include "../../../external/stb_ds.h" + +/* TODO: find out what FreeBSD and such wants us to include */ +#ifdef __FreeBSD__ +/* XXX: Untested (nishi) */ +#include +#else +#include +#include +#endif + +#include + +static void setup_clipboard(MwLL self, struct wl_seat* wl_seat); +static void setup_zwp_clipboard(MwLL self, struct wl_seat* wl_seat); + +/* Recursively dispatch a move event to a widget and its children */ +static void recursive_dispatch_move(MwLL handle, MwMouse* p) { + MwWidget h = (MwWidget)handle->common.user; + if(h) { + int i; + for(i = 0; i < arrlen(h->children); i++) { + MwLLDispatch(h->children[i]->lowlevel, move, p); + if(arrlen(h->children[i]->children) > 0) { + recursive_dispatch_move(h->children[i]->lowlevel, p); + } + } + } +}; + +/* `wl_registry.global` callback */ +static void new_protocol(void* data, struct wl_registry* registry, + MwU32 name, const char* interface, + MwU32 version) { + MwLL self = data; + (void)version; + (void)registry; + + WAYLAND_EVENT_OP_START(self); + + wayland_protocol_callback_table_t* cb = shget(self->wayland.wl_protocol_setup_map, interface); + if(cb != NULL) { + shput(self->wayland.wl_protocol_map, interface, cb->setup(name, data)); + /* we don't care for adding this protocol, we just use it to know if the compositor will let us have transparent surfaces */ + } else if(strcmp(interface, "wp_alpha_modifier_v1") == 0) { + self->common.supports_transparency = MwTRUE; + } else { + // printf("unknown interface %s\n", interface); + } + + WAYLAND_EVENT_OP_END(self); +}; + +/* `wl_registry.global_remove` callback */ +static void protocol_removed(void* data, + struct wl_registry* registry, + MwU32 name) { + (void)data; + (void)registry; + (void)name; + printf("%d destroyed\n", name); +}; + +static void wl_offer(void* data, + struct wl_data_offer* wl_data_offer, + const char* mime_type) { + wl_clipboard_device_context_t* self = data; + wl_data_offer_accept(wl_data_offer, self->ll->wayland.clipboard_serial, mime_type); +}; + +struct wl_data_offer_listener offer_listener = { + .offer = wl_offer, +}; + +static void wl_data_device_data_offer(void* data, + struct wl_data_device* wl_data_device, + struct wl_data_offer* offer) { + wl_clipboard_device_context_t* self = data; + (void)wl_data_device; + + wl_data_offer_add_listener(offer, &offer_listener, data); + + self->offer.wl = offer; +}; + +static void wl_data_device_enter(void* data, + struct wl_data_device* wl_data_device, + uint32_t serial, + struct wl_surface* surface, + wl_fixed_t x, + wl_fixed_t y, + struct wl_data_offer* id) { + MwLL self = data; + (void)wl_data_device; + (void)surface; + (void)x; + (void)y; + (void)id; + + WAYLAND_EVENT_OP_START(self); + + self->wayland.clipboard_serial = serial; + + WAYLAND_EVENT_OP_END(self); +}; +static void wl_data_device_leave(void* data, + struct wl_data_device* wl_data_device) { + MwLL self = data; + + WAYLAND_EVENT_OP_START(self); + wl_data_device_destroy(wl_data_device); + WAYLAND_EVENT_OP_END(self); +}; +static void wl_data_device_motion(void* data, + struct wl_data_device* wl_data_device, + uint32_t time, + wl_fixed_t x, + wl_fixed_t y) { + (void)data; + (void)wl_data_device; + (void)time; + (void)x; + (void)y; +}; +static void wl_data_device_drop(void* data, + struct wl_data_device* wl_data_device) { + (void)data; + (void)wl_data_device; +}; + +static void wl_data_device_selection(void* data, + struct wl_data_device* wl_data_device, + struct wl_data_offer* id) { + (void)data; + (void)wl_data_device; + (void)id; +}; + +struct wl_data_device_listener wl_data_device_listener = { + .data_offer = wl_data_device_data_offer, + .enter = wl_data_device_enter, + .leave = wl_data_device_leave, + .motion = wl_data_device_motion, + .drop = wl_data_device_drop, + .selection = wl_data_device_selection, +}; + +static void zwp_primary_selection_device_v1_data_offer(void* data, + struct zwp_primary_selection_device_v1* zwp_primary_selection_device_v1, + struct zwp_primary_selection_offer_v1* offer) { + wl_clipboard_device_context_t* self = data; + (void)zwp_primary_selection_device_v1; + + self->offer.zwp = offer; +}; + +static void zwp_primary_selection_device_v1_selection(void* data, + struct zwp_primary_selection_device_v1* zwp_primary_selection_device_v1, + struct zwp_primary_selection_offer_v1* id) { + (void)data; + (void)zwp_primary_selection_device_v1; + (void)id; +}; + +struct zwp_primary_selection_device_v1_listener zwp_primary_selection_device_v1_listener = { + .data_offer = zwp_primary_selection_device_v1_data_offer, + .selection = zwp_primary_selection_device_v1_selection, +}; + +void MwLLWaylandClipboardRead(wl_clipboard_device_context_t* ctx, int clipboard_type) { + int fds[2]; + fd_set set; + char* buf = NULL; + struct timeval timeout; + int rc = 0; + + if(pipe(fds) != 0) { + return; + } + + FD_ZERO(&set); + FD_SET(fds[0], &set); + timeout.tv_sec = 0; + timeout.tv_usec = 100; + + if(clipboard_type == MwCLIPBOARD_PRIMARY && ctx->offer.zwp) { + zwp_primary_selection_offer_v1_receive(ctx->offer.zwp, "text/plain", fds[1]); + } else if(ctx->offer.wl) { + wl_data_offer_receive(ctx->offer.wl, "text/plain", fds[1]); + } + close(fds[1]); + + MwLLWaylandFlush(ctx->ll); + wl_display_roundtrip(ctx->ll->wayland.display); + + while(MwTRUE) { + rc = select(fds[0] + 1, &set, NULL, NULL, &timeout); + if(rc <= 0) { + break; + } else { + char b; + ssize_t n = read(fds[0], &b, sizeof(b)); + if(n <= 0) { + break; + } + arrpush(buf, b); + } + } + arrpush(buf, 0); + close(fds[0]); + + MwLLDispatch(ctx->ll, clipboard, buf); + arrfree(buf); + + ctx->ll->wayland.events_pending = 1; +} + +static void wl_data_source_listener_target(void* data, + struct wl_data_source* wl_data_source, + const char* mime_type) { + (void)data; + (void)wl_data_source; + (void)mime_type; +}; +static void wl_data_source_listener_send(void* data, + struct wl_data_source* wl_data_source, + const char* mime_type, + int32_t fd) { + MwLL self = data; + (void)wl_data_source; + (void)mime_type; + + WAYLAND_EVENT_OP_START(self); + if(self->wayland.clipboard_buffer != NULL) { + write(fd, self->wayland.clipboard_buffer, strlen(self->wayland.clipboard_buffer)); + close(fd); + } + WAYLAND_EVENT_OP_END(self); +}; +static void wl_data_source_listener_cancelled(void* data, + struct wl_data_source* wl_data_source); + +struct wl_data_source_listener wl_data_source_listener = { + .target = wl_data_source_listener_target, + .send = wl_data_source_listener_send, + .cancelled = wl_data_source_listener_cancelled, +}; + +static void wl_data_source_listener_cancelled(void* data, + struct wl_data_source* wl_data_source) { + MwLL self = data; + + WAYLAND_EVENT_OP_START(self); + + if(wl_data_source) + wl_data_source_destroy(wl_data_source); + + self->wayland.clipboard_source.wl = wl_data_device_manager_create_data_source(self->wayland.clipboard_manager.wl); + + wl_data_source_offer(self->wayland.clipboard_source.wl, "text/plain"); + wl_data_source_offer(self->wayland.clipboard_source.wl, "text/plain;charset=utf-8"); + wl_data_source_offer(self->wayland.clipboard_source.wl, "TEXT"); + wl_data_source_offer(self->wayland.clipboard_source.wl, "STRING"); + wl_data_source_offer(self->wayland.clipboard_source.wl, "UTF8_STRING"); + + wl_data_source_add_listener(self->wayland.clipboard_source.wl, &wl_data_source_listener, self); + + WAYLAND_EVENT_OP_END(self); +}; + +static void zwp_primary_selection_source_v1_send(void* data, + struct zwp_primary_selection_source_v1* wl_data_source, + const char* mime_type, + int32_t fd) { + MwLL self = data; + (void)wl_data_source; + (void)mime_type; + + WAYLAND_EVENT_OP_START(self); + + if(self->wayland.clipboard_buffer != NULL) { + write(fd, self->wayland.clipboard_buffer, strlen(self->wayland.clipboard_buffer)); + close(fd); + } + + WAYLAND_EVENT_OP_END(self); +}; +static void zwp_primary_selection_source_v1_cancelled(void* data, + struct zwp_primary_selection_source_v1* wl_data_source) { + MwLL self = data; + (void)wl_data_source; + + WAYLAND_EVENT_OP_START(self); + + zwp_primary_selection_source_v1_destroy(self->wayland.clipboard_source.zwp); + + self->wayland.clipboard_source.zwp = zwp_primary_selection_device_manager_v1_create_source(self->wayland.clipboard_manager.zwp); + + zwp_primary_selection_source_v1_offer(self->wayland.clipboard_source.zwp, "text/plain"); + zwp_primary_selection_source_v1_offer(self->wayland.clipboard_source.zwp, "text/plain;charset=utf-8"); + zwp_primary_selection_source_v1_offer(self->wayland.clipboard_source.zwp, "TEXT"); + zwp_primary_selection_source_v1_offer(self->wayland.clipboard_source.zwp, "STRING"); + zwp_primary_selection_source_v1_offer(self->wayland.clipboard_source.zwp, "UTF8_STRING"); + + WAYLAND_EVENT_OP_END(self); +}; + +struct zwp_primary_selection_source_v1_listener zwp_primary_selection_source_v1_listener = { + .send = zwp_primary_selection_source_v1_send, + .cancelled = zwp_primary_selection_source_v1_cancelled, +}; + +/* wl_data_device_manager setup function */ +static wayland_protocol_t* wl_data_device_manager_setup(MwU32 name, struct _MwLLWayland* wayland) { + wayland->clipboard_manager.wl = wl_registry_bind(wayland->registry, name, &wl_data_device_manager_interface, 2); + + wayland->clipboard_source.wl = wl_data_device_manager_create_data_source(wayland->clipboard_manager.wl); + + wl_data_source_offer(wayland->clipboard_source.wl, "text/plain"); + wl_data_source_offer(wayland->clipboard_source.wl, "text/plain;charset=utf-8"); + wl_data_source_offer(wayland->clipboard_source.wl, "TEXT"); + wl_data_source_offer(wayland->clipboard_source.wl, "STRING"); + wl_data_source_offer(wayland->clipboard_source.wl, "UTF8_STRING"); + + wl_data_source_add_listener(wayland->clipboard_source.wl, &wl_data_source_listener, wayland); + + if(wayland->pointer_seat) { + setup_clipboard((MwLL)wayland, wayland->pointer_seat); + } + + return NULL; +} + +static void wl_data_device_manager_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)data; + if(wayland->clipboard_manager.wl != NULL) { + wl_data_device_manager_destroy(wayland->clipboard_manager.wl); + wayland->clipboard_manager.wl = NULL; + } + if(wayland->clipboard_source.wl) { + // wl_data_source_destroy(wayland->clipboard_source.wl); + wayland->clipboard_source.wl = NULL; + } +} + +/* zwp_primary_selection_device_manager_v1 setup function */ +static wayland_protocol_t* zwp_primary_selection_device_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { + wayland->clipboard_manager.zwp = wl_registry_bind(wayland->registry, name, &zwp_primary_selection_device_manager_v1_interface, 1); + + wayland->clipboard_source.zwp = zwp_primary_selection_device_manager_v1_create_source(wayland->clipboard_manager.zwp); + + zwp_primary_selection_source_v1_offer(wayland->clipboard_source.zwp, "text/plain"); + zwp_primary_selection_source_v1_offer(wayland->clipboard_source.zwp, "text/plain;charset=utf-8"); + zwp_primary_selection_source_v1_offer(wayland->clipboard_source.zwp, "TEXT"); + zwp_primary_selection_source_v1_offer(wayland->clipboard_source.zwp, "STRING"); + zwp_primary_selection_source_v1_offer(wayland->clipboard_source.zwp, "UTF8_STRING"); + + zwp_primary_selection_source_v1_add_listener(wayland->clipboard_source.zwp, &zwp_primary_selection_source_v1_listener, wayland); + + wayland->supports_zwp = MwTRUE; + + if(wayland->pointer_seat) { + setup_zwp_clipboard((MwLL)wayland, wayland->pointer_seat); + } + + return NULL; +} + +static void zwp_primary_selection_device_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)wayland; + (void)data; +} + +/* zwp_primary_selection_device_manager_v1 setup function */ +static wayland_protocol_t* zwp_pointer_constraints_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { + wayland->pointer_constraints = wl_registry_bind(wayland->registry, name, &zwp_pointer_constraints_v1_interface, 1); + return NULL; +} + +static void zwp_pointer_constraints_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)wayland; + (void)data; +} + +static struct wl_surface* curSurface = NULL; + +/* `wl_pointer.enter` callback */ +static void pointer_enter(void* data, struct wl_pointer* wl_pointer, MwU32 serial, + struct wl_surface* surface, wl_fixed_t surface_x, + wl_fixed_t surface_y) { + MwLL self = data; + MwLL topmost_parent = self; + + (void)surface_x; + (void)surface_y; + (void)wl_pointer; + + WAYLAND_EVENT_OP_START(self); + while(topmost_parent->wayland.parent) topmost_parent = topmost_parent->wayland.parent; + + curSurface = surface; + + self->wayland.pointer_serial = serial; + + wl_pointer_set_cursor(self->wayland.pointer, self->wayland.pointer_serial, topmost_parent->wayland.cursor.surface, 0, 0); + + WAYLAND_EVENT_OP_END(self); +}; + +/* `wl_pointer.leave` callback */ +static void pointer_leave(void* data, struct wl_pointer* wl_pointer, MwU32 serial, + struct wl_surface* surface) { + MwLL self = data; + (void)wl_pointer; + (void)serial; + (void)surface; + WAYLAND_EVENT_OP_START(self); + curSurface = NULL; + WAYLAND_EVENT_OP_END(self); +}; + +static void xdg_borderless_step(MwLL self, MwMouse p, MwU32 serial) { + if(self->wayland.type == MwLL_WAYLAND_TOPLEVEL && self->wayland.backbuffer.surface == curSurface) { + if(p.point.y >= (self->wayland.wh + CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM) - 5) { + if(p.point.x >= (self->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT) - 5) { + xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_BOTTOM_RIGHT); + } else { + xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_BOTTOM); + } + } else if(p.point.y <= 5) { + if(p.point.x >= (self->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT) - 5) { + xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_TOP_RIGHT); + } else { + xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_TOP); + } + } else if(p.point.x >= (self->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT) - 5) { + xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_RIGHT); + } else if(p.point.x <= 5) { + xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_LEFT); + } else if(p.point.y <= CSD_BORDER_FRAME_TOP) { + xdg_toplevel_move(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial); + } + }; +} + +static void relative_pointer_motion(void* data, + struct zwp_relative_pointer_v1* pointer, + uint32_t timeHi, + uint32_t timeLo, + wl_fixed_t dx, + wl_fixed_t dy, + wl_fixed_t dxUnaccel, + wl_fixed_t dyUnaccel) { + MwLL self = data; + MwMouse p; + + (void)pointer; + (void)timeHi; + (void)timeLo; + (void)dx; + (void)dy; + + WAYLAND_EVENT_OP_START(self); + + p.point.x = wl_fixed_to_int(dxUnaccel); + p.point.y = wl_fixed_to_int(dyUnaccel); + + recursive_dispatch_move(self, &p); + if(self->wayland.locked_pointer) zwp_locked_pointer_v1_set_cursor_position_hint(self->wayland.locked_pointer, 0, CSD_BORDER_FRAME_TOP); + + WAYLAND_EVENT_OP_END(self); +} + +struct zwp_relative_pointer_v1_listener MwLLWaylandRelativePointerListener = + { + relative_pointer_motion}; + +/* zwp_primary_selection_device_manager_v1 setup function */ +static wayland_protocol_t* zwp_relative_pointer_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { + wayland->relative_pointer_manager = wl_registry_bind(wayland->registry, name, &zwp_relative_pointer_manager_v1_interface, 1); + return NULL; +} + +static void zwp_relative_pointer_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)wayland; + (void)data; +} + +/* `wl_pointer.motion` callback */ +static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time, + wl_fixed_t surface_x, wl_fixed_t surface_y) { + MwLL self = data; + MwLL topmost_parent = self; + MwMouse p; + MwBool inArea = MwFALSE; + MwLL currentlyHeldWidget = NULL; + + (void)time; + (void)wl_pointer; + + WAYLAND_EVENT_OP_START(self); + while(topmost_parent->wayland.parent) topmost_parent = topmost_parent->wayland.parent; + + currentlyHeldWidget = topmost_parent->wayland.currentlyHeldWidget; + + if(currentlyHeldWidget == self) { + self->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); + self->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); + p.point = self->wayland.cur_mouse_pos; + MwLLDispatch(self, move, &p); + } + + if(self->wayland.framebuffer.surface) { + inArea |= self->wayland.framebuffer.surface == curSurface; + } + + if(self->wayland.backbuffer.surface) { + inArea |= self->wayland.backbuffer.surface == curSurface; + } + if(inArea) { + self->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); + self->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); + p.point = self->wayland.cur_mouse_pos; + MwLLDispatch(self, move, &p); + wl_pointer_set_cursor(self->wayland.pointer, self->wayland.pointer_serial, self->wayland.cursor.surface, 0, 0); + } + WAYLAND_EVENT_OP_END(self); +}; + +/* `wl_pointer.button` callback */ +static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 serial, MwU32 time, MwU32 button, MwU32 state) { + MwLL self = data; + MwMouse p; + MwBool inArea = MwFALSE; + MwLL topmost_parent = self; + + (void)wl_pointer; + (void)serial; + (void)time; + + WAYLAND_EVENT_OP_START(self); + + p.point = self->wayland.cur_mouse_pos; + while(topmost_parent->wayland.parent) topmost_parent = topmost_parent->wayland.parent; + + if(self->wayland.framebuffer.surface) { + inArea |= self->wayland.framebuffer.surface == curSurface; + } + if(self->wayland.backbuffer.surface) { + inArea |= self->wayland.backbuffer.surface == curSurface; + } + if(inArea) { + switch(button) { + case BTN_LEFT: + p.button = MwMOUSE_LEFT; + break; + case BTN_MIDDLE: + p.button = MwMOUSE_MIDDLE; + break; + case BTN_RIGHT: + p.button = MwMOUSE_RIGHT; + break; + } + self->wayland.held_down = state == WL_POINTER_BUTTON_STATE_PRESSED; + + switch(state) { + case WL_POINTER_BUTTON_STATE_PRESSED: + MwLLDispatch(self, down, &p); + topmost_parent->wayland.currentlyHeldWidget = self; + + break; + case WL_POINTER_BUTTON_STATE_RELEASED: + if(topmost_parent->wayland.currentlyHeldWidget != NULL) { + MwLLDispatch(topmost_parent->wayland.currentlyHeldWidget, up, &p); + topmost_parent->wayland.currentlyHeldWidget = NULL; + } else { + MwLLDispatch(self, up, &p); + } + break; + } + } + + if(!self->wayland.has_decorations) { + xdg_borderless_step(self, p, serial); + } + + WAYLAND_EVENT_OP_END(self); +}; + +/* `wl_pointer.axis` callback */ +static void pointer_axis(void* data, struct wl_pointer* wl_pointer, MwU32 time, + MwU32 axis, wl_fixed_t value) { + (void)data; + (void)wl_pointer; + (void)time; + (void)axis; + (void)value; +}; + +struct wl_pointer_listener pointer_listener = { + .enter = pointer_enter, + .leave = pointer_leave, + .motion = pointer_motion, + .button = pointer_button, + .axis = pointer_axis, +}; + +/* `wl_keyboard.keymap` callback */ +static void keyboard_keymap(void* data, + struct wl_keyboard* wl_keyboard, + MwU32 format, + int32_t fd, + MwU32 size) { + MwLL self = data; + (void)wl_keyboard; + + if(self->wayland.type == MwLL_WAYLAND_TOPLEVEL) { + assert(format == WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1); + + char* map_shm = (char*)mmap(NULL, size, PROT_READ, MAP_SHARED, fd, 0); + assert(map_shm != MAP_FAILED); + + struct xkb_keymap* xkb_keymap = xkb_keymap_new_from_string( + self->wayland.xkb_context, map_shm, XKB_KEYMAP_FORMAT_TEXT_V1, + XKB_KEYMAP_COMPILE_NO_FLAGS); + munmap(map_shm, size); + close(fd); + + struct xkb_state* xkb_state = xkb_state_new(xkb_keymap); + + self->wayland.xkb_keymap = xkb_keymap; + self->wayland.xkb_state = xkb_state; + } else { + self->wayland.xkb_keymap = self->wayland.parent->wayland.xkb_keymap; + self->wayland.xkb_state = self->wayland.parent->wayland.xkb_state; + } +}; + +/* `wl_keyboard.enter` callback */ +static void keyboard_enter(void* data, + struct wl_keyboard* wl_keyboard, + MwU32 serial, + struct wl_surface* surface, + struct wl_array* keys) { + MwLL self = data; + (void)wl_keyboard; + (void)surface; + (void)keys; + + WAYLAND_EVENT_OP_START(self); + + self->wayland.keyboard_serial = serial; + + MwLLDispatch(self, focus_in, NULL); + + WAYLAND_EVENT_OP_END(self); +}; + +/* `wl_keyboard.leave` callback */ +static void keyboard_leave(void* data, + struct wl_keyboard* wl_keyboard, + MwU32 serial, + struct wl_surface* surface) { + MwLL self = data; + (void)wl_keyboard; + (void)serial; + (void)surface; + + WAYLAND_EVENT_OP_START(self); + + MwLLDispatch(self, focus_out, NULL); + + WAYLAND_EVENT_OP_END(self); +}; + +/* `wl_keyboard.key` callback */ +static void keyboard_key(void* data, + struct wl_keyboard* wl_keyboard, + MwU32 serial, + MwU32 time, + MwU32 key, + MwU32 state) { + MwLL self = data; + MwBool inArea = 0; + + (void)wl_keyboard; + (void)serial; + (void)time; + + WAYLAND_EVENT_OP_START(self); + + if(self->wayland.framebuffer.surface) { + inArea |= self->wayland.framebuffer.surface == curSurface; + } + + if(self->wayland.backbuffer.surface) { + inArea |= self->wayland.backbuffer.surface == curSurface; + } + if(inArea) { + xkb_layout_index_t layout; + MwU32 levels; + xkb_level_index_t level = 0; + const xkb_keysym_t* syms_out; + MwU32 keycode = key + 8; + MwU64 syms_num; + int i; + + if(!self->wayland.xkb_keymap) { + WAYLAND_EVENT_OP_END(self); + return; + } + + layout = xkb_state_key_get_layout(self->wayland.xkb_state, keycode); + levels = + xkb_keymap_num_levels_for_key(self->wayland.xkb_keymap, keycode, layout); + + if((((self->wayland.mod_state & 1) == 1) || ((self->wayland.mod_state & 2) == 2)) && levels >= 2) { + level = 1; + } else if(levels >= 1) { + level = 0; + } + syms_num = xkb_keymap_key_get_syms_by_level(self->wayland.xkb_keymap, keycode, layout, level, &syms_out); + if(syms_out == NULL) { + WAYLAND_EVENT_OP_END(self); + return; + } + + for(i = 0; i < syms_num; i++) { + int sym = syms_out[i]; + int key = -1; + + switch(sym) { + case XKB_KEY_BackSpace: + key = MwKEY_BACKSPACE; + break; + case XKB_KEY_Left: + key = MwKEY_LEFT; + break; + case XKB_KEY_Right: + key = MwKEY_RIGHT; + break; + case XKB_KEY_Up: + key = MwKEY_UP; + break; + case XKB_KEY_Down: + key = MwKEY_DOWN; + break; + case XKB_KEY_Return: + key = MwKEY_ENTER; + break; + case XKB_KEY_Escape: + key = MwKEY_ESCAPE; + break; + case XKB_KEY_Shift_L: + key = MwKEY_LEFTSHIFT; + break; + case XKB_KEY_Shift_R: + key = MwKEY_RIGHTSHIFT; + break; + case XKB_KEY_Alt_L: + case XKB_KEY_Alt_R: + key = MwKEY_ALT; + break; + case XKB_KEY_Control_L: + case XKB_KEY_Control_R: + key = MwKEY_CONTROL; + break; + default: + if(MwStringIsKeyUTF8(sym)) { + key = sym; + } + } + + if((self->wayland.mod_state & 4) == 4) { + key |= MwKEY_CONTROL_FLAG; + } + if((self->wayland.mod_state & 8) == 8) { + key |= MwKEY_ALT_FLAG; + } + + if(key != -1) { + if(state == WL_KEYBOARD_KEY_STATE_PRESSED) { + MwLLDispatch(self, key, &key); + } else { + MwLLDispatch(self, key_released, &key); + } + } + } + } + + if(!MwWaylandAlwaysRender) { + MwLLDispatch(self, draw, NULL); + } + + WAYLAND_EVENT_OP_END(self); +}; + +/* `wl_keyboard.modifiers` callback */ +static void keyboard_modifiers(void* data, + struct wl_keyboard* wl_keyboard, + MwU32 serial, + MwU32 mods_depressed, + MwU32 mods_latched, + MwU32 mods_locked, + MwU32 group) { + MwLL self = data; + (void)wl_keyboard; + (void)serial; + (void)group; + (void)mods_latched; + + WAYLAND_EVENT_OP_START(self); + + self->wayland.mod_state = 0; + self->wayland.mod_state |= mods_depressed; + self->wayland.mod_state |= mods_locked; + + WAYLAND_EVENT_OP_END(self); +}; + +static void setup_zwp_clipboard(MwLL self, struct wl_seat* wl_seat) { + wl_clipboard_device_context_t* device_ctx_zwp = NULL; + device_ctx_zwp = malloc(sizeof(wl_clipboard_device_context_t)); + memset(device_ctx_zwp, 0, sizeof(wl_clipboard_device_context_t)); + device_ctx_zwp->device.zwp = zwp_primary_selection_device_manager_v1_get_device(self->wayland.clipboard_manager.zwp, wl_seat); + device_ctx_zwp->ll = self; + zwp_primary_selection_device_v1_add_listener(device_ctx_zwp->device.zwp, &zwp_primary_selection_device_v1_listener, device_ctx_zwp); + arrpush(self->wayland.clipboard_devices_zwp, device_ctx_zwp); +} +static void setup_clipboard(MwLL self, struct wl_seat* wl_seat) { + wl_clipboard_device_context_t* device_ctx_wl = malloc(sizeof(wl_clipboard_device_context_t)); + memset(device_ctx_wl, 0, sizeof(wl_clipboard_device_context_t)); + + device_ctx_wl->device.wl = wl_data_device_manager_get_data_device(self->wayland.clipboard_manager.wl, wl_seat); + device_ctx_wl->ll = self; + + wl_data_device_add_listener(device_ctx_wl->device.wl, &wl_data_device_listener, device_ctx_wl); + arrpush(self->wayland.clipboard_devices_wl, device_ctx_wl); +}; + +struct wl_keyboard_listener keyboard_listener = { + .keymap = keyboard_keymap, + .enter = keyboard_enter, + .leave = keyboard_leave, + .key = keyboard_key, + .modifiers = keyboard_modifiers, +}; + +/* `wl_seat.name` callback */ +static void +wl_seat_name(void* data, struct wl_seat* wl_seat, const char* name) { + (void)data; + (void)wl_seat; + (void)name; +}; + +/* `wl_seat.capabilities` callback */ +static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat, + MwU32 capabilities) { + MwLL self = data; + + WAYLAND_EVENT_OP_START(self); + + if(capabilities & WL_SEAT_CAPABILITY_KEYBOARD) { + self->wayland.keyboard = wl_seat_get_keyboard(wl_seat); + wl_keyboard_add_listener(self->wayland.keyboard, &keyboard_listener, data); + } + if(capabilities & WL_SEAT_CAPABILITY_POINTER) { + self->wayland.pointer_seat = wl_seat; + self->wayland.pointer = wl_seat_get_pointer(wl_seat); + wl_pointer_add_listener(self->wayland.pointer, &pointer_listener, data); + } + WAYLAND_EVENT_OP_END(self); + + if(self->wayland.clipboard_manager.wl) + setup_clipboard(self, self->wayland.pointer_seat); + if(self->wayland.clipboard_manager.zwp) + setup_zwp_clipboard(self, self->wayland.pointer_seat); +}; + +static void output_geometry(void* data, + struct wl_output* wl_output, + int32_t x, + int32_t y, + int32_t physical_width, + int32_t physical_height, + int32_t subpixel, + const char* make, + const char* model, + int32_t transform) { + (void)data; + (void)wl_output; + (void)x; + (void)y; + (void)physical_width; + (void)physical_height; + (void)subpixel; + (void)make; + (void)model; + (void)transform; +}; +static void output_mode(void* data, + struct wl_output* wl_output, + uint32_t flags, + int32_t width, + int32_t height, + int32_t refresh) { + MwLL self = data; + (void)wl_output; + (void)flags; + (void)refresh; + self->wayland.mw = width; + self->wayland.mh = height; +}; + +struct wl_output_listener output_listener = { + .geometry = output_geometry, + .mode = output_mode, +}; + +/* `xdg_wm_base.ping` callback */ +void xdg_wm_base_ping(void* data, + struct xdg_wm_base* xdg_wm_base, + MwU32 serial) { + (void)data; + xdg_wm_base_pong(xdg_wm_base, serial); +}; + +/* wl_seat setup function */ +static wayland_protocol_t* wl_seat_setup(MwU32 name, MwLL ll) { + wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); + proto->listener = malloc(sizeof(struct wl_seat_listener)); + + ((struct wl_seat_listener*)proto->listener)->name = wl_seat_name; + ((struct wl_seat_listener*)proto->listener)->capabilities = wl_seat_capabilities; + + wl_seat_add_listener(wl_registry_bind(ll->wayland.registry, name, &wl_seat_interface, 1), proto->listener, ll); + + return proto; +} + +static void wl_seat_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)wayland; + free(data->listener); +} + +/* wl_output setup function */ +static wayland_protocol_t* wl_output_setup(MwU32 name, MwLL ll) { + ll->wayland.output = wl_registry_bind(ll->wayland.registry, name, &wl_output_interface, 1); + wl_output_add_listener(ll->wayland.output, &output_listener, ll); + + return NULL; +} + +static void wl_output_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)wayland; + (void)data; +} + +/* wl_compositor setup function */ +static wayland_protocol_t* wl_compositor_setup(MwU32 name, struct _MwLLWayland* wayland) { + wayland->compositor = wl_registry_bind(wayland->registry, name, &wl_compositor_interface, 1); + + return NULL; +} + +static void wl_compositor_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)wayland; + (void)data; +} + +/* wl_subcompositor setup function */ +static wayland_protocol_t* wl_subcompositor_setup(MwU32 name, struct _MwLLWayland* wayland) { + if(wayland->type == MwLL_WAYLAND_TOPLEVEL) { + wayland->toplevel->scompositor = wl_registry_bind(wayland->registry, name, &wl_subcompositor_interface, 1); + } else { + wayland->sublevel->subcompositor = wl_registry_bind(wayland->registry, name, &wl_subcompositor_interface, 1); + } + + return NULL; +} + +static void wl_subcompositor_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)data; + wl_subcompositor_destroy(wayland->sublevel->subcompositor); +} + +/* xdg_wm_base setup function */ +static wayland_protocol_t* xdg_wm_base_setup(MwU32 name, struct _MwLLWayland* wayland) { + wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); + proto->listener = malloc(sizeof(struct xdg_wm_base_listener)); + + ((struct xdg_wm_base_listener*)proto->listener)->ping = xdg_wm_base_ping; + + proto->context = wl_registry_bind(wayland->registry, name, &xdg_wm_base_interface, 1); + xdg_wm_base_add_listener(proto->context, proto->listener, wayland); + + return proto; +} + +static void xdg_wm_base_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)wayland; + free(data->listener); +} + +/* xdg_wm_base setup function */ +static wayland_protocol_t* wp_viewporter_setup(MwU32 name, struct _MwLLWayland* wayland) { + wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); + proto->context = wl_registry_bind(wayland->registry, name, &wp_viewporter_interface, 1); + + return proto; +} + +static void wp_viewporter_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)wayland; + (void)data; +} + +/* zxdg_decoration_manager_v1 setup function */ +static wayland_protocol_t* zxdg_decoration_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { + wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); + zxdg_decoration_manager_v1_context_t* ctx = malloc(sizeof(zxdg_decoration_manager_v1_context_t)); + proto->listener = NULL; + + ctx->manager = wl_registry_bind(wayland->registry, name, &zxdg_decoration_manager_v1_interface, 1); + ; + + proto->context = ctx; + + return proto; +} + +static void zxdg_decoration_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)wayland; + (void)data; +} + +/* wl_shm setup function */ +static wayland_protocol_t* wl_shm_setup(MwU32 name, struct _MwLLWayland* wayland) { + wayland->framebuffer.shm = wl_registry_bind(wayland->registry, name, &wl_shm_interface, 1); + wayland->backbuffer.shm = wl_registry_bind(wayland->registry, name, &wl_shm_interface, 1); + wayland->cursor.shm = wl_registry_bind(wayland->registry, name, &wl_shm_interface, 1); + + return NULL; +} + +static void wl_shm_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)wayland; + (void)data; +} + +static wayland_protocol_t* xdg_toplevel_icon_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { + wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); + + proto->context = wl_registry_bind(wayland->registry, name, &xdg_toplevel_icon_manager_v1_interface, 1); + proto->listener = NULL; + + return proto; +} + +static void xdg_toplevel_icon_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)wayland; + free(data->listener); +} + +/* Function for setting up the callbacks/structs that will be registered upon the relevant interfaces being found. */ +void MwLLWaylandSetupCallbacks(struct _MwLLWayland* wayland) { +/* Convience macro for adding the interface functions to the setup map */ +#define WL_INTERFACE(interface) \ + do { \ + wayland_protocol_callback_table_t* cb = malloc(sizeof(wayland_protocol_callback_table_t)); \ + cb->setup = (wl_setup_func*)interface##_setup; \ + cb->destroy = (wl_destroy_func*)interface##_interface_destroy; \ + shput(wayland->wl_protocol_setup_map, interface##_interface.name, cb); \ + } while(0); + + wayland->registry_listener.global = new_protocol; + wayland->registry_listener.global_remove = protocol_removed; + wayland->wl_protocol_setup_map = NULL; + wayland->wl_protocol_map = NULL; + + sh_new_arena(wayland->wl_protocol_map); + sh_new_arena(wayland->wl_protocol_setup_map); + + WL_INTERFACE(wl_shm); + WL_INTERFACE(wl_compositor); + WL_INTERFACE(wl_seat); + WL_INTERFACE(wl_output); + WL_INTERFACE(wl_data_device_manager); + WL_INTERFACE(zwp_primary_selection_device_manager_v1); + WL_INTERFACE(zwp_pointer_constraints_v1); + WL_INTERFACE(zwp_relative_pointer_manager_v1); + WL_INTERFACE(xdg_wm_base); + if(wayland->type == MwLL_WAYLAND_TOPLEVEL) { + WL_INTERFACE(wp_viewporter); + WL_INTERFACE(zxdg_decoration_manager_v1); + WL_INTERFACE(xdg_toplevel_icon_manager_v1); + WL_INTERFACE(wl_subcompositor); + } else if(wayland->type == MwLL_WAYLAND_POPUP) { + } else { + WL_INTERFACE(wl_subcompositor); + } +#undef WL_INTERFACE +} diff --git a/src/backend/wayland/region.c b/src/backend/wayland/region.c new file mode 100644 index 000000000..4527d8e6d --- /dev/null +++ b/src/backend/wayland/region.c @@ -0,0 +1,36 @@ +#include + +void MwLLWaylandRegionInvalidate(MwLL handle) { + if(!handle->wayland.configured) { + return; + } + wl_region_subtract(handle->wayland.region, 0, 0, handle->wayland.ww, handle->wayland.wh); +} +void MwLLWaylandRegionSetup(MwLL handle) { + MwLL parent = handle->wayland.parent; + int width = (handle->wayland.clipping_rect.width == 0) ? handle->wayland.ww : handle->wayland.clipping_rect.width; + int height = (handle->wayland.clipping_rect.height == 0) ? handle->wayland.wh : handle->wayland.clipping_rect.height; + + if(!handle->wayland.configured) { + return; + } + + if(!handle->wayland.parent) + wl_region_add(handle->wayland.o_region, 0, 0, width, height); + + if(handle->wayland.type == MwLL_WAYLAND_POPUP) { + wl_region_add(handle->wayland.region, 0, 0, width + abs(handle->wayland.x), height + abs(handle->wayland.y)); + } else { + wl_region_subtract(handle->wayland.region, 0, 0, width + abs(handle->wayland.x), height + abs(handle->wayland.y)); + wl_region_add(handle->wayland.region, handle->wayland.clipping_rect.x, handle->wayland.clipping_rect.y, handle->wayland.clipping_rect.width, handle->wayland.clipping_rect.height); + if(!handle->wayland.parent) + wl_region_add(handle->wayland.region, 0, 0, width, height); + } + + if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { + wl_surface_set_opaque_region(handle->wayland.backbuffer.surface, handle->wayland.o_region); + wl_surface_set_input_region(handle->wayland.backbuffer.surface, handle->wayland.region); + } + wl_surface_set_opaque_region(handle->wayland.framebuffer.surface, handle->wayland.o_region); + wl_surface_set_input_region(handle->wayland.framebuffer.surface, handle->wayland.region); +} diff --git a/src/backend/wayland.c b/src/backend/wayland/wayland.c similarity index 51% rename from src/backend/wayland.c rename to src/backend/wayland/wayland.c index fdd2fc125..3697c44ce 100644 --- a/src/backend/wayland.c +++ b/src/backend/wayland/wayland.c @@ -3,25 +3,20 @@ #include #include -#include "../../external/stb_ds.h" - -/* TODO: find out what FreeBSD and such wants us to include */ -#ifdef __FreeBSD__ -/* XXX: Untested (nishi) */ -#include -#else -#include -#include -#endif +#include "../../../external/stb_ds.h" wayland_call_table_t wl_call_tbl; MwBool MwWaylandAlwaysRender = MwFALSE; static pthread_mutex_t destroyedWidgetsTableMutex; -/* So Wayland, bless its soul; it keeps using callbacks LONG after they should not only be destroyed but the widget doesn't even exist anymore. Naturally, this causes use after free. so we fight fire with fire in the worst code i've ever written: by storing the freed pointers here, we disallow wayland from ever using them again. if something else is created that takes this slot, we remove it from the table. */ +/* + * So Wayland, bless its soul; it keeps using callbacks LONG after they should not only be destroyed but the widget doesn't even exist anymore. Naturally, this causes use after free. so we fight fire with fire in the worst code i've ever written: by storing the freed pointers here, we disallow wayland from ever using them again. if something else is created that takes this slot, we remove it from the table. + * + * TODO(IOI): FUCKING NO???? FIX THIS. + */ static MwLL* destroyedWidgetsTable; -static MwBool is_destroyed(MwLL self) { +MwBool MwLLWaylandWidgetIsDestroyed(MwLL self) { int i; pthread_mutex_lock(&destroyedWidgetsTableMutex); for(i = 0; i < arrlen(destroyedWidgetsTable); i++) { @@ -33,7 +28,7 @@ static MwBool is_destroyed(MwLL self) { pthread_mutex_unlock(&destroyedWidgetsTableMutex); return MwFALSE; } -static void undestroy(MwLL self) { +void MwLLWaylandWidgetUndestroy(MwLL self) { int i; pthread_mutex_lock(&destroyedWidgetsTableMutex); for(i = 0; i < arrlen(destroyedWidgetsTable); i++) { @@ -46,80 +41,33 @@ static void undestroy(MwLL self) { return; } -#define WIDGET_CHECK(handle) \ - if(!handle->wayland.valid) { \ - /*printf("[WARNING] Operation on invalid widget at line %d\n", __LINE__);*/ \ - return; \ +static int event_loop(MwLL handle); + +/* Recursively dispatch a resize event to a widget and its children */ +static void recursive_dispatch_resize(MwLL handle) { + MwWidget h = (MwWidget)handle->common.user; + if(h) { + int i; + for(i = 0; i < arrlen(h->children); i++) { + MwDispatch(h->children[i], resize); + if(arrlen(h->children[i]->children) > 0) { + recursive_dispatch_resize(h->children[i]->lowlevel); + } + } } - -/* Standard procedure before event callbacks in Wayland */ -#define WAYLAND_EVENT_OP_START(self) \ - if(is_destroyed(self)) { \ - /*printf("[WARNING] Operation on invalid widget at line %d\n", __LINE__);*/ \ - return; \ - } - -/* Footer for WAYLAND_EVENT_OP_START */ -#define WAYLAND_EVENT_OP_END(self) - -/* Setup the framebuffer with the saved width/height */ -static void framebuffer_setup(struct _MwLLWayland* wayland); -/* Destroy the framebuffer */ -static void framebuffer_destroy(struct _MwLLWayland* handle); - -/* Setup the framebuffer with the saved width/height */ -static void backbuffer_setup(struct _MwLLWayland* wayland); -/* Destroy the backbuffer */ -static void backbuffer_destroy(struct _MwLLWayland* handle); - -static void buffer_destroy(struct _MwLLWaylandShmBuffer* buffer); - -static void region_setup(MwLL handle); -static void region_invalidate(MwLL handle); -static void update_buffer(MwLL self, struct _MwLLWaylandShmBuffer* buffer); - -static void setup_clipboard(MwLL self, struct wl_seat* wl_seat); -static void setup_zwp_clipboard(MwLL self, struct wl_seat* wl_seat); -static int event_loop(MwLL handle); - -/* Get the registered interface from r, or NULL if it doesn't currently have it. */ -#define WAYLAND_GET_INTERFACE(handle, inter) shget(handle.wl_protocol_map, inter##_interface.name) - -/* `wl_registry.global` callback */ -static void new_protocol(void* data, struct wl_registry* registry, - MwU32 name, const char* interface, - MwU32 version) { - MwLL self = data; - (void)version; - (void)registry; - - WAYLAND_EVENT_OP_START(self); - - wayland_protocol_callback_table_t* cb = shget(self->wayland.wl_protocol_setup_map, interface); - if(cb != NULL) { - shput(self->wayland.wl_protocol_map, interface, cb->setup(name, data)); - /* we don't care for adding this protocol, we just use it to know if the compositor will let us have transparent surfaces */ - } else if(strcmp(interface, "wp_alpha_modifier_v1") == 0) { - self->common.supports_transparency = MwTRUE; - } else { - // printf("unknown interface %s\n", interface); - } - - WAYLAND_EVENT_OP_END(self); }; -/* `wl_registry.global_remove` callback */ -static void protocol_removed(void* data, - struct wl_registry* registry, - MwU32 name) { - (void)data; - (void)registry; - (void)name; - printf("%d destroyed\n", name); -}; +static void recursive_render(MwLL handle) { + int i; + WIDGET_CHECK(handle); + + for(i = 0; i < arrlen(((MwWidget)handle->common.user)->children); i++) recursive_render(((MwWidget)handle->common.user)->children[i]->lowlevel); + + MwLLForceRender(handle); +} /* Flush Wayland events */ -static void wl_flush(MwLL handle) { +void MwLLWaylandFlush(MwLL handle) { struct pollfd pfd; int rc; @@ -137,1022 +85,8 @@ static void wl_flush(MwLL handle) { } } -/* Recursively dispatch a resize event to a widget and its children */ -static void recursive_dispatch_resize(MwLL handle) { - MwWidget h = (MwWidget)handle->common.user; - if(h) { - int i; - for(i = 0; i < arrlen(h->children); i++) { - MwDispatch(h->children[i], resize); - if(arrlen(h->children[i]->children) > 0) { - recursive_dispatch_resize(h->children[i]->lowlevel); - } - } - } -}; - -/* Recursively dispatch a move event to a widget and its children */ -static void recursive_dispatch_move(MwLL handle, MwMouse* p) { - MwWidget h = (MwWidget)handle->common.user; - if(h) { - int i; - for(i = 0; i < arrlen(h->children); i++) { - MwLLDispatch(h->children[i]->lowlevel, move, p); - if(arrlen(h->children[i]->children) > 0) { - recursive_dispatch_move(h->children[i]->lowlevel, p); - } - } - } -}; - -static void recursive_render(MwLL handle) { - int i; - WIDGET_CHECK(handle); - - for(i = 0; i < arrlen(((MwWidget)handle->common.user)->children); i++) recursive_render(((MwWidget)handle->common.user)->children[i]->lowlevel); - - MwLLForceRender(handle); -} - -static void wl_offer(void* data, - struct wl_data_offer* wl_data_offer, - const char* mime_type) { - wl_clipboard_device_context_t* self = data; - wl_data_offer_accept(wl_data_offer, self->ll->wayland.clipboard_serial, mime_type); -}; - -struct wl_data_offer_listener offer_listener = { - .offer = wl_offer, -}; - -static void wl_data_device_data_offer(void* data, - struct wl_data_device* wl_data_device, - struct wl_data_offer* offer) { - wl_clipboard_device_context_t* self = data; - (void)wl_data_device; - - wl_data_offer_add_listener(offer, &offer_listener, data); - - self->offer.wl = offer; -}; - -static void wl_data_device_enter(void* data, - struct wl_data_device* wl_data_device, - uint32_t serial, - struct wl_surface* surface, - wl_fixed_t x, - wl_fixed_t y, - struct wl_data_offer* id) { - MwLL self = data; - (void)wl_data_device; - (void)surface; - (void)x; - (void)y; - (void)id; - - WAYLAND_EVENT_OP_START(self); - - self->wayland.clipboard_serial = serial; - - WAYLAND_EVENT_OP_END(self); -}; -static void wl_data_device_leave(void* data, - struct wl_data_device* wl_data_device) { - MwLL self = data; - - WAYLAND_EVENT_OP_START(self); - wl_data_device_destroy(wl_data_device); - WAYLAND_EVENT_OP_END(self); -}; -static void wl_data_device_motion(void* data, - struct wl_data_device* wl_data_device, - uint32_t time, - wl_fixed_t x, - wl_fixed_t y) { - (void)data; - (void)wl_data_device; - (void)time; - (void)x; - (void)y; -}; -static void wl_data_device_drop(void* data, - struct wl_data_device* wl_data_device) { - (void)data; - (void)wl_data_device; -}; - -static void wl_data_device_selection(void* data, - struct wl_data_device* wl_data_device, - struct wl_data_offer* id) { - (void)data; - (void)wl_data_device; - (void)id; -}; - -struct wl_data_device_listener wl_data_device_listener = { - .data_offer = wl_data_device_data_offer, - .enter = wl_data_device_enter, - .leave = wl_data_device_leave, - .motion = wl_data_device_motion, - .drop = wl_data_device_drop, - .selection = wl_data_device_selection, -}; - -static void zwp_primary_selection_device_v1_data_offer(void* data, - struct zwp_primary_selection_device_v1* zwp_primary_selection_device_v1, - struct zwp_primary_selection_offer_v1* offer) { - wl_clipboard_device_context_t* self = data; - (void)zwp_primary_selection_device_v1; - - self->offer.zwp = offer; -}; - -static void zwp_primary_selection_device_v1_selection(void* data, - struct zwp_primary_selection_device_v1* zwp_primary_selection_device_v1, - struct zwp_primary_selection_offer_v1* id) { - (void)data; - (void)zwp_primary_selection_device_v1; - (void)id; -}; - -struct zwp_primary_selection_device_v1_listener zwp_primary_selection_device_v1_listener = { - .data_offer = zwp_primary_selection_device_v1_data_offer, - .selection = zwp_primary_selection_device_v1_selection, -}; - -static void wl_clipboard_read(wl_clipboard_device_context_t* ctx, int clipboard_type) { - int fds[2]; - fd_set set; - char* buf = NULL; - struct timeval timeout; - int rc = 0; - - if(pipe(fds) != 0) { - return; - } - - FD_ZERO(&set); - FD_SET(fds[0], &set); - timeout.tv_sec = 0; - timeout.tv_usec = 100; - - if(clipboard_type == MwCLIPBOARD_PRIMARY && ctx->offer.zwp) { - zwp_primary_selection_offer_v1_receive(ctx->offer.zwp, "text/plain", fds[1]); - } else if(ctx->offer.wl) { - wl_data_offer_receive(ctx->offer.wl, "text/plain", fds[1]); - } - close(fds[1]); - - wl_flush(ctx->ll); - wl_display_roundtrip(ctx->ll->wayland.display); - - while(MwTRUE) { - rc = select(fds[0] + 1, &set, NULL, NULL, &timeout); - if(rc <= 0) { - break; - } else { - char b; - ssize_t n = read(fds[0], &b, sizeof(b)); - if(n <= 0) { - break; - } - arrpush(buf, b); - } - } - arrpush(buf, 0); - close(fds[0]); - - MwLLDispatch(ctx->ll, clipboard, buf); - arrfree(buf); - - ctx->ll->wayland.events_pending = 1; -} - -static void wl_data_source_listener_target(void* data, - struct wl_data_source* wl_data_source, - const char* mime_type) { - (void)data; - (void)wl_data_source; - (void)mime_type; -}; -static void wl_data_source_listener_send(void* data, - struct wl_data_source* wl_data_source, - const char* mime_type, - int32_t fd) { - MwLL self = data; - (void)wl_data_source; - (void)mime_type; - - WAYLAND_EVENT_OP_START(self); - if(self->wayland.clipboard_buffer != NULL) { - write(fd, self->wayland.clipboard_buffer, strlen(self->wayland.clipboard_buffer)); - close(fd); - } - WAYLAND_EVENT_OP_END(self); -}; -static void wl_data_source_listener_cancelled(void* data, - struct wl_data_source* wl_data_source); - -struct wl_data_source_listener wl_data_source_listener = { - .target = wl_data_source_listener_target, - .send = wl_data_source_listener_send, - .cancelled = wl_data_source_listener_cancelled, -}; - -static void wl_data_source_listener_cancelled(void* data, - struct wl_data_source* wl_data_source) { - MwLL self = data; - - WAYLAND_EVENT_OP_START(self); - - if(wl_data_source) - wl_data_source_destroy(wl_data_source); - - self->wayland.clipboard_source.wl = wl_data_device_manager_create_data_source(self->wayland.clipboard_manager.wl); - - wl_data_source_offer(self->wayland.clipboard_source.wl, "text/plain"); - wl_data_source_offer(self->wayland.clipboard_source.wl, "text/plain;charset=utf-8"); - wl_data_source_offer(self->wayland.clipboard_source.wl, "TEXT"); - wl_data_source_offer(self->wayland.clipboard_source.wl, "STRING"); - wl_data_source_offer(self->wayland.clipboard_source.wl, "UTF8_STRING"); - - wl_data_source_add_listener(self->wayland.clipboard_source.wl, &wl_data_source_listener, self); - - WAYLAND_EVENT_OP_END(self); -}; - -static void zwp_primary_selection_source_v1_send(void* data, - struct zwp_primary_selection_source_v1* wl_data_source, - const char* mime_type, - int32_t fd) { - MwLL self = data; - (void)wl_data_source; - (void)mime_type; - - WAYLAND_EVENT_OP_START(self); - - if(self->wayland.clipboard_buffer != NULL) { - write(fd, self->wayland.clipboard_buffer, strlen(self->wayland.clipboard_buffer)); - close(fd); - } - - WAYLAND_EVENT_OP_END(self); -}; -static void zwp_primary_selection_source_v1_cancelled(void* data, - struct zwp_primary_selection_source_v1* wl_data_source) { - MwLL self = data; - (void)wl_data_source; - - WAYLAND_EVENT_OP_START(self); - - zwp_primary_selection_source_v1_destroy(self->wayland.clipboard_source.zwp); - - self->wayland.clipboard_source.zwp = zwp_primary_selection_device_manager_v1_create_source(self->wayland.clipboard_manager.zwp); - - zwp_primary_selection_source_v1_offer(self->wayland.clipboard_source.zwp, "text/plain"); - zwp_primary_selection_source_v1_offer(self->wayland.clipboard_source.zwp, "text/plain;charset=utf-8"); - zwp_primary_selection_source_v1_offer(self->wayland.clipboard_source.zwp, "TEXT"); - zwp_primary_selection_source_v1_offer(self->wayland.clipboard_source.zwp, "STRING"); - zwp_primary_selection_source_v1_offer(self->wayland.clipboard_source.zwp, "UTF8_STRING"); - - WAYLAND_EVENT_OP_END(self); -}; - -struct zwp_primary_selection_source_v1_listener zwp_primary_selection_source_v1_listener = { - .send = zwp_primary_selection_source_v1_send, - .cancelled = zwp_primary_selection_source_v1_cancelled, -}; - -/* wl_data_device_manager setup function */ -static wayland_protocol_t* wl_data_device_manager_setup(MwU32 name, struct _MwLLWayland* wayland) { - wayland->clipboard_manager.wl = wl_registry_bind(wayland->registry, name, &wl_data_device_manager_interface, 2); - - wayland->clipboard_source.wl = wl_data_device_manager_create_data_source(wayland->clipboard_manager.wl); - - wl_data_source_offer(wayland->clipboard_source.wl, "text/plain"); - wl_data_source_offer(wayland->clipboard_source.wl, "text/plain;charset=utf-8"); - wl_data_source_offer(wayland->clipboard_source.wl, "TEXT"); - wl_data_source_offer(wayland->clipboard_source.wl, "STRING"); - wl_data_source_offer(wayland->clipboard_source.wl, "UTF8_STRING"); - - wl_data_source_add_listener(wayland->clipboard_source.wl, &wl_data_source_listener, wayland); - - if(wayland->pointer_seat) { - setup_clipboard((MwLL)wayland, wayland->pointer_seat); - } - - return NULL; -} - -static void wl_data_device_manager_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - (void)data; - if(wayland->clipboard_manager.wl != NULL) { - wl_data_device_manager_destroy(wayland->clipboard_manager.wl); - wayland->clipboard_manager.wl = NULL; - } - if(wayland->clipboard_source.wl) { - // wl_data_source_destroy(wayland->clipboard_source.wl); - wayland->clipboard_source.wl = NULL; - } -} - -/* zwp_primary_selection_device_manager_v1 setup function */ -static wayland_protocol_t* zwp_primary_selection_device_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { - wayland->clipboard_manager.zwp = wl_registry_bind(wayland->registry, name, &zwp_primary_selection_device_manager_v1_interface, 1); - - wayland->clipboard_source.zwp = zwp_primary_selection_device_manager_v1_create_source(wayland->clipboard_manager.zwp); - - zwp_primary_selection_source_v1_offer(wayland->clipboard_source.zwp, "text/plain"); - zwp_primary_selection_source_v1_offer(wayland->clipboard_source.zwp, "text/plain;charset=utf-8"); - zwp_primary_selection_source_v1_offer(wayland->clipboard_source.zwp, "TEXT"); - zwp_primary_selection_source_v1_offer(wayland->clipboard_source.zwp, "STRING"); - zwp_primary_selection_source_v1_offer(wayland->clipboard_source.zwp, "UTF8_STRING"); - - zwp_primary_selection_source_v1_add_listener(wayland->clipboard_source.zwp, &zwp_primary_selection_source_v1_listener, wayland); - - wayland->supports_zwp = MwTRUE; - - if(wayland->pointer_seat) { - setup_zwp_clipboard((MwLL)wayland, wayland->pointer_seat); - } - - return NULL; -} - -static void zwp_primary_selection_device_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - (void)wayland; - (void)data; -} - -/* zwp_primary_selection_device_manager_v1 setup function */ -static wayland_protocol_t* zwp_pointer_constraints_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { - wayland->pointer_constraints = wl_registry_bind(wayland->registry, name, &zwp_pointer_constraints_v1_interface, 1); - return NULL; -} - -static void zwp_pointer_constraints_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - (void)wayland; - (void)data; -} - -static struct wl_surface* curSurface = NULL; - -/* `wl_pointer.enter` callback */ -static void pointer_enter(void* data, struct wl_pointer* wl_pointer, MwU32 serial, - struct wl_surface* surface, wl_fixed_t surface_x, - wl_fixed_t surface_y) { - MwLL self = data; - MwLL topmost_parent = self; - - (void)surface_x; - (void)surface_y; - (void)wl_pointer; - - WAYLAND_EVENT_OP_START(self); - while(topmost_parent->wayland.parent) topmost_parent = topmost_parent->wayland.parent; - - curSurface = surface; - - self->wayland.pointer_serial = serial; - - wl_pointer_set_cursor(self->wayland.pointer, self->wayland.pointer_serial, topmost_parent->wayland.cursor.surface, 0, 0); - - WAYLAND_EVENT_OP_END(self); -}; - -/* `wl_pointer.leave` callback */ -static void pointer_leave(void* data, struct wl_pointer* wl_pointer, MwU32 serial, - struct wl_surface* surface) { - MwLL self = data; - (void)wl_pointer; - (void)serial; - (void)surface; - WAYLAND_EVENT_OP_START(self); - curSurface = NULL; - WAYLAND_EVENT_OP_END(self); -}; - -static void xdg_borderless_step(MwLL self, MwMouse p, MwU32 serial) { - if(self->wayland.type == MwLL_WAYLAND_TOPLEVEL && self->wayland.backbuffer.surface == curSurface) { - if(p.point.y >= (self->wayland.wh + CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM) - 5) { - if(p.point.x >= (self->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT) - 5) { - xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_BOTTOM_RIGHT); - } else { - xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_BOTTOM); - } - } else if(p.point.y <= 5) { - if(p.point.x >= (self->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT) - 5) { - xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_TOP_RIGHT); - } else { - xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_TOP); - } - } else if(p.point.x >= (self->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT) - 5) { - xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_RIGHT); - } else if(p.point.x <= 5) { - xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_LEFT); - } else if(p.point.y <= CSD_BORDER_FRAME_TOP) { - xdg_toplevel_move(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial); - } - }; -} - -static void relative_pointer_motion(void* data, - struct zwp_relative_pointer_v1* pointer, - uint32_t timeHi, - uint32_t timeLo, - wl_fixed_t dx, - wl_fixed_t dy, - wl_fixed_t dxUnaccel, - wl_fixed_t dyUnaccel) { - MwLL self = data; - MwMouse p; - - (void)pointer; - (void)timeHi; - (void)timeLo; - (void)dx; - (void)dy; - - WAYLAND_EVENT_OP_START(self); - - p.point.x = wl_fixed_to_int(dxUnaccel); - p.point.y = wl_fixed_to_int(dyUnaccel); - - recursive_dispatch_move(self, &p); - if(self->wayland.locked_pointer) zwp_locked_pointer_v1_set_cursor_position_hint(self->wayland.locked_pointer, 0, CSD_BORDER_FRAME_TOP); - - WAYLAND_EVENT_OP_END(self); -} - -struct zwp_relative_pointer_v1_listener relative_pointer_listener = - { - relative_pointer_motion}; - -/* zwp_primary_selection_device_manager_v1 setup function */ -static wayland_protocol_t* zwp_relative_pointer_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { - wayland->relative_pointer_manager = wl_registry_bind(wayland->registry, name, &zwp_relative_pointer_manager_v1_interface, 1); - return NULL; -} - -static void zwp_relative_pointer_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - (void)wayland; - (void)data; -} - -/* `wl_pointer.motion` callback */ -static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time, - wl_fixed_t surface_x, wl_fixed_t surface_y) { - MwLL self = data; - MwLL topmost_parent = self; - MwMouse p; - MwBool inArea = MwFALSE; - MwLL currentlyHeldWidget = NULL; - - (void)time; - (void)wl_pointer; - - WAYLAND_EVENT_OP_START(self); - while(topmost_parent->wayland.parent) topmost_parent = topmost_parent->wayland.parent; - - currentlyHeldWidget = topmost_parent->wayland.currentlyHeldWidget; - - if(currentlyHeldWidget == self) { - self->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); - self->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); - p.point = self->wayland.cur_mouse_pos; - MwLLDispatch(self, move, &p); - } - - if(self->wayland.framebuffer.surface) { - inArea |= self->wayland.framebuffer.surface == curSurface; - } - - if(self->wayland.backbuffer.surface) { - inArea |= self->wayland.backbuffer.surface == curSurface; - } - if(inArea) { - self->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); - self->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); - p.point = self->wayland.cur_mouse_pos; - MwLLDispatch(self, move, &p); - wl_pointer_set_cursor(self->wayland.pointer, self->wayland.pointer_serial, self->wayland.cursor.surface, 0, 0); - } - WAYLAND_EVENT_OP_END(self); -}; - -/* `wl_pointer.button` callback */ -static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 serial, MwU32 time, MwU32 button, MwU32 state) { - MwLL self = data; - MwMouse p; - MwBool inArea = MwFALSE; - MwLL topmost_parent = self; - - (void)wl_pointer; - (void)serial; - (void)time; - - WAYLAND_EVENT_OP_START(self); - - p.point = self->wayland.cur_mouse_pos; - while(topmost_parent->wayland.parent) topmost_parent = topmost_parent->wayland.parent; - - if(self->wayland.framebuffer.surface) { - inArea |= self->wayland.framebuffer.surface == curSurface; - } - if(self->wayland.backbuffer.surface) { - inArea |= self->wayland.backbuffer.surface == curSurface; - } - if(inArea) { - switch(button) { - case BTN_LEFT: - p.button = MwMOUSE_LEFT; - break; - case BTN_MIDDLE: - p.button = MwMOUSE_MIDDLE; - break; - case BTN_RIGHT: - p.button = MwMOUSE_RIGHT; - break; - } - self->wayland.held_down = state == WL_POINTER_BUTTON_STATE_PRESSED; - - switch(state) { - case WL_POINTER_BUTTON_STATE_PRESSED: - MwLLDispatch(self, down, &p); - topmost_parent->wayland.currentlyHeldWidget = self; - - break; - case WL_POINTER_BUTTON_STATE_RELEASED: - if(topmost_parent->wayland.currentlyHeldWidget != NULL) { - MwLLDispatch(topmost_parent->wayland.currentlyHeldWidget, up, &p); - topmost_parent->wayland.currentlyHeldWidget = NULL; - } else { - MwLLDispatch(self, up, &p); - } - break; - } - } - - if(!self->wayland.has_decorations) { - xdg_borderless_step(self, p, serial); - } - - WAYLAND_EVENT_OP_END(self); -}; - -/* `wl_pointer.axis` callback */ -static void pointer_axis(void* data, struct wl_pointer* wl_pointer, MwU32 time, - MwU32 axis, wl_fixed_t value) { - (void)data; - (void)wl_pointer; - (void)time; - (void)axis; - (void)value; -}; - -struct wl_pointer_listener pointer_listener = { - .enter = pointer_enter, - .leave = pointer_leave, - .motion = pointer_motion, - .button = pointer_button, - .axis = pointer_axis, -}; - -/* `wl_keyboard.keymap` callback */ -static void keyboard_keymap(void* data, - struct wl_keyboard* wl_keyboard, - MwU32 format, - int32_t fd, - MwU32 size) { - MwLL self = data; - (void)wl_keyboard; - - if(self->wayland.type == MwLL_WAYLAND_TOPLEVEL) { - assert(format == WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1); - - char* map_shm = (char*)mmap(NULL, size, PROT_READ, MAP_SHARED, fd, 0); - assert(map_shm != MAP_FAILED); - - struct xkb_keymap* xkb_keymap = xkb_keymap_new_from_string( - self->wayland.xkb_context, map_shm, XKB_KEYMAP_FORMAT_TEXT_V1, - XKB_KEYMAP_COMPILE_NO_FLAGS); - munmap(map_shm, size); - close(fd); - - struct xkb_state* xkb_state = xkb_state_new(xkb_keymap); - - self->wayland.xkb_keymap = xkb_keymap; - self->wayland.xkb_state = xkb_state; - } else { - self->wayland.xkb_keymap = self->wayland.parent->wayland.xkb_keymap; - self->wayland.xkb_state = self->wayland.parent->wayland.xkb_state; - } -}; - -/* `wl_keyboard.enter` callback */ -static void keyboard_enter(void* data, - struct wl_keyboard* wl_keyboard, - MwU32 serial, - struct wl_surface* surface, - struct wl_array* keys) { - MwLL self = data; - (void)wl_keyboard; - (void)surface; - (void)keys; - - WAYLAND_EVENT_OP_START(self); - - self->wayland.keyboard_serial = serial; - - MwLLDispatch(self, focus_in, NULL); - - WAYLAND_EVENT_OP_END(self); -}; - -/* `wl_keyboard.leave` callback */ -static void keyboard_leave(void* data, - struct wl_keyboard* wl_keyboard, - MwU32 serial, - struct wl_surface* surface) { - MwLL self = data; - (void)wl_keyboard; - (void)serial; - (void)surface; - - WAYLAND_EVENT_OP_START(self); - - MwLLDispatch(self, focus_out, NULL); - - WAYLAND_EVENT_OP_END(self); -}; - -/* `wl_keyboard.key` callback */ -static void keyboard_key(void* data, - struct wl_keyboard* wl_keyboard, - MwU32 serial, - MwU32 time, - MwU32 key, - MwU32 state) { - MwLL self = data; - MwBool inArea = 0; - - (void)wl_keyboard; - (void)serial; - (void)time; - - WAYLAND_EVENT_OP_START(self); - - if(self->wayland.framebuffer.surface) { - inArea |= self->wayland.framebuffer.surface == curSurface; - } - - if(self->wayland.backbuffer.surface) { - inArea |= self->wayland.backbuffer.surface == curSurface; - } - if(inArea) { - xkb_layout_index_t layout; - MwU32 levels; - xkb_level_index_t level = 0; - const xkb_keysym_t* syms_out; - MwU32 keycode = key + 8; - MwU64 syms_num; - int i; - - if(!self->wayland.xkb_keymap) { - WAYLAND_EVENT_OP_END(self); - return; - } - - layout = xkb_state_key_get_layout(self->wayland.xkb_state, keycode); - levels = - xkb_keymap_num_levels_for_key(self->wayland.xkb_keymap, keycode, layout); - - if((((self->wayland.mod_state & 1) == 1) || ((self->wayland.mod_state & 2) == 2)) && levels >= 2) { - level = 1; - } else if(levels >= 1) { - level = 0; - } - syms_num = xkb_keymap_key_get_syms_by_level(self->wayland.xkb_keymap, keycode, layout, level, &syms_out); - if(syms_out == NULL) { - WAYLAND_EVENT_OP_END(self); - return; - } - - for(i = 0; i < syms_num; i++) { - int sym = syms_out[i]; - int key = -1; - - switch(sym) { - case XKB_KEY_BackSpace: - key = MwKEY_BACKSPACE; - break; - case XKB_KEY_Left: - key = MwKEY_LEFT; - break; - case XKB_KEY_Right: - key = MwKEY_RIGHT; - break; - case XKB_KEY_Up: - key = MwKEY_UP; - break; - case XKB_KEY_Down: - key = MwKEY_DOWN; - break; - case XKB_KEY_Return: - key = MwKEY_ENTER; - break; - case XKB_KEY_Escape: - key = MwKEY_ESCAPE; - break; - case XKB_KEY_Shift_L: - key = MwKEY_LEFTSHIFT; - break; - case XKB_KEY_Shift_R: - key = MwKEY_RIGHTSHIFT; - break; - case XKB_KEY_Alt_L: - case XKB_KEY_Alt_R: - key = MwKEY_ALT; - break; - case XKB_KEY_Control_L: - case XKB_KEY_Control_R: - key = MwKEY_CONTROL; - break; - default: - if(MwStringIsKeyUTF8(sym)) { - key = sym; - } - } - - if((self->wayland.mod_state & 4) == 4) { - key |= MwKEY_CONTROL_FLAG; - } - if((self->wayland.mod_state & 8) == 8) { - key |= MwKEY_ALT_FLAG; - } - - if(key != -1) { - if(state == WL_KEYBOARD_KEY_STATE_PRESSED) { - MwLLDispatch(self, key, &key); - } else { - MwLLDispatch(self, key_released, &key); - } - } - } - } - - if(!MwWaylandAlwaysRender) { - MwLLDispatch(self, draw, NULL); - } - - WAYLAND_EVENT_OP_END(self); -}; - -/* `wl_keyboard.modifiers` callback */ -static void keyboard_modifiers(void* data, - struct wl_keyboard* wl_keyboard, - MwU32 serial, - MwU32 mods_depressed, - MwU32 mods_latched, - MwU32 mods_locked, - MwU32 group) { - MwLL self = data; - (void)wl_keyboard; - (void)serial; - (void)group; - (void)mods_latched; - - WAYLAND_EVENT_OP_START(self); - - self->wayland.mod_state = 0; - self->wayland.mod_state |= mods_depressed; - self->wayland.mod_state |= mods_locked; - - WAYLAND_EVENT_OP_END(self); -}; - -static void setup_zwp_clipboard(MwLL self, struct wl_seat* wl_seat) { - wl_clipboard_device_context_t* device_ctx_zwp = NULL; - device_ctx_zwp = malloc(sizeof(wl_clipboard_device_context_t)); - memset(device_ctx_zwp, 0, sizeof(wl_clipboard_device_context_t)); - device_ctx_zwp->device.zwp = zwp_primary_selection_device_manager_v1_get_device(self->wayland.clipboard_manager.zwp, wl_seat); - device_ctx_zwp->ll = self; - zwp_primary_selection_device_v1_add_listener(device_ctx_zwp->device.zwp, &zwp_primary_selection_device_v1_listener, device_ctx_zwp); - arrpush(self->wayland.clipboard_devices_zwp, device_ctx_zwp); -} -static void setup_clipboard(MwLL self, struct wl_seat* wl_seat) { - wl_clipboard_device_context_t* device_ctx_wl = malloc(sizeof(wl_clipboard_device_context_t)); - memset(device_ctx_wl, 0, sizeof(wl_clipboard_device_context_t)); - - device_ctx_wl->device.wl = wl_data_device_manager_get_data_device(self->wayland.clipboard_manager.wl, wl_seat); - device_ctx_wl->ll = self; - - wl_data_device_add_listener(device_ctx_wl->device.wl, &wl_data_device_listener, device_ctx_wl); - arrpush(self->wayland.clipboard_devices_wl, device_ctx_wl); -}; - -struct wl_keyboard_listener keyboard_listener = { - .keymap = keyboard_keymap, - .enter = keyboard_enter, - .leave = keyboard_leave, - .key = keyboard_key, - .modifiers = keyboard_modifiers, -}; - -/* `wl_seat.name` callback */ -static void -wl_seat_name(void* data, struct wl_seat* wl_seat, const char* name) { - (void)data; - (void)wl_seat; - (void)name; -}; - -/* `wl_seat.capabilities` callback */ -static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat, - MwU32 capabilities) { - MwLL self = data; - - WAYLAND_EVENT_OP_START(self); - - if(capabilities & WL_SEAT_CAPABILITY_KEYBOARD) { - self->wayland.keyboard = wl_seat_get_keyboard(wl_seat); - wl_keyboard_add_listener(self->wayland.keyboard, &keyboard_listener, data); - } - if(capabilities & WL_SEAT_CAPABILITY_POINTER) { - self->wayland.pointer_seat = wl_seat; - self->wayland.pointer = wl_seat_get_pointer(wl_seat); - wl_pointer_add_listener(self->wayland.pointer, &pointer_listener, data); - } - WAYLAND_EVENT_OP_END(self); - - if(self->wayland.clipboard_manager.wl) - setup_clipboard(self, self->wayland.pointer_seat); - if(self->wayland.clipboard_manager.zwp) - setup_zwp_clipboard(self, self->wayland.pointer_seat); -}; - -static void output_geometry(void* data, - struct wl_output* wl_output, - int32_t x, - int32_t y, - int32_t physical_width, - int32_t physical_height, - int32_t subpixel, - const char* make, - const char* model, - int32_t transform) { - (void)data; - (void)wl_output; - (void)x; - (void)y; - (void)physical_width; - (void)physical_height; - (void)subpixel; - (void)make; - (void)model; - (void)transform; -}; -static void output_mode(void* data, - struct wl_output* wl_output, - uint32_t flags, - int32_t width, - int32_t height, - int32_t refresh) { - MwLL self = data; - (void)wl_output; - (void)flags; - (void)refresh; - self->wayland.mw = width; - self->wayland.mh = height; -}; - -struct wl_output_listener output_listener = { - .geometry = output_geometry, - .mode = output_mode, -}; - -/* `xdg_wm_base.ping` callback */ -void xdg_wm_base_ping(void* data, - struct xdg_wm_base* xdg_wm_base, - MwU32 serial) { - (void)data; - xdg_wm_base_pong(xdg_wm_base, serial); -}; - -/* wl_seat setup function */ -static wayland_protocol_t* wl_seat_setup(MwU32 name, MwLL ll) { - wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); - proto->listener = malloc(sizeof(struct wl_seat_listener)); - - ((struct wl_seat_listener*)proto->listener)->name = wl_seat_name; - ((struct wl_seat_listener*)proto->listener)->capabilities = wl_seat_capabilities; - - wl_seat_add_listener(wl_registry_bind(ll->wayland.registry, name, &wl_seat_interface, 1), proto->listener, ll); - - return proto; -} - -static void wl_seat_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - (void)wayland; - free(data->listener); -} - -/* wl_output setup function */ -static wayland_protocol_t* wl_output_setup(MwU32 name, MwLL ll) { - ll->wayland.output = wl_registry_bind(ll->wayland.registry, name, &wl_output_interface, 1); - wl_output_add_listener(ll->wayland.output, &output_listener, ll); - - return NULL; -} - -static void wl_output_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - (void)wayland; - (void)data; -} - -/* wl_compositor setup function */ -static wayland_protocol_t* wl_compositor_setup(MwU32 name, struct _MwLLWayland* wayland) { - wayland->compositor = wl_registry_bind(wayland->registry, name, &wl_compositor_interface, 1); - - return NULL; -} - -static void wl_compositor_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - (void)wayland; - (void)data; -} - -/* wl_subcompositor setup function */ -static wayland_protocol_t* wl_subcompositor_setup(MwU32 name, struct _MwLLWayland* wayland) { - if(wayland->type == MwLL_WAYLAND_TOPLEVEL) { - wayland->toplevel->scompositor = wl_registry_bind(wayland->registry, name, &wl_subcompositor_interface, 1); - } else { - wayland->sublevel->subcompositor = wl_registry_bind(wayland->registry, name, &wl_subcompositor_interface, 1); - } - - return NULL; -} - -static void wl_subcompositor_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - (void)data; - wl_subcompositor_destroy(wayland->sublevel->subcompositor); -} - -/* xdg_wm_base setup function */ -static wayland_protocol_t* xdg_wm_base_setup(MwU32 name, struct _MwLLWayland* wayland) { - wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); - proto->listener = malloc(sizeof(struct xdg_wm_base_listener)); - - ((struct xdg_wm_base_listener*)proto->listener)->ping = xdg_wm_base_ping; - - proto->context = wl_registry_bind(wayland->registry, name, &xdg_wm_base_interface, 1); - xdg_wm_base_add_listener(proto->context, proto->listener, wayland); - - return proto; -} - -static void xdg_wm_base_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - (void)wayland; - free(data->listener); -} - -/* xdg_wm_base setup function */ -static wayland_protocol_t* wp_viewporter_setup(MwU32 name, struct _MwLLWayland* wayland) { - wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); - proto->context = wl_registry_bind(wayland->registry, name, &wp_viewporter_interface, 1); - - return proto; -} - -static void wp_viewporter_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - (void)wayland; - (void)data; -} - -/* the two decoration manager constructs */ -typedef struct zxdg_decoration_manager_v1_context { - struct zxdg_decoration_manager_v1* manager; - struct zxdg_toplevel_decoration_v1* decoration; -} zxdg_decoration_manager_v1_context_t; - -/* zxdg_decoration_manager_v1 setup function */ -static wayland_protocol_t* zxdg_decoration_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { - wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); - zxdg_decoration_manager_v1_context_t* ctx = malloc(sizeof(zxdg_decoration_manager_v1_context_t)); - proto->listener = NULL; - - ctx->manager = wl_registry_bind(wayland->registry, name, &zxdg_decoration_manager_v1_interface, 1); - ; - - proto->context = ctx; - - return proto; -} - -static void zxdg_decoration_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - (void)wayland; - (void)data; -} +/* Get the registered interface from r, or NULL if it doesn't currently have it. */ +#define WAYLAND_GET_INTERFACE(handle, inter) shget(handle.wl_protocol_map, inter##_interface.name) /* Standard Wayland event loop. */ static int event_loop(MwLL handle) { @@ -1190,9 +124,9 @@ static int event_loop(MwLL handle) { if(!poll(&fd, 1, timeout.tv_nsec)) { wl_display_cancel_read(wayland->display); - update_buffer(handle, &wayland->framebuffer); + MwLLWaylandBufferUpdate(handle, &wayland->framebuffer); if(wayland->type == MwLL_WAYLAND_TOPLEVEL) - update_buffer(handle, &wayland->backbuffer); + MwLLWaylandBufferUpdate(handle, &wayland->backbuffer); return 0; } wl_display_read_events(wayland->display); @@ -1203,7 +137,7 @@ static int event_loop(MwLL handle) { } /* make the fuck sure that we're configurd */ -static void hang_until_configured(MwLL handle) { +void MwLLWaylandHangUntilConfigured(MwLL handle) { while(!handle->wayland.configured) { if(wl_display_roundtrip(handle->wayland.display) == -1) { printf("roundtrip failed: %d\n", wl_display_get_error(handle->wayland.display)); @@ -1237,19 +171,19 @@ static void xdg_toplevel_configure(void* data, } } - region_invalidate(self); + MwLLWaylandRegionInvalidate(self); self->wayland.ww = width; self->wayland.wh = height; if(self->wayland.resizing == 0) { xdg_surface_set_window_geometry(self->wayland.toplevel->xdg_surface, 0, 0, self->wayland.ww, self->wayland.wh); - backbuffer_destroy(&self->wayland); - backbuffer_setup(&self->wayland); - framebuffer_destroy(&self->wayland); - framebuffer_setup(&self->wayland); + MwLLWaylandBackbufferDestroy(&self->wayland); + MwLLWaylandBackbufferSetup(&self->wayland); + MwLLWaylandFramebufferDestroy(&self->wayland); + MwLLWaylandFramebufferSetup(&self->wayland); - region_setup(self); + MwLLWaylandRegionSetup(self); MwLLDispatch(self, resize, NULL); recursive_dispatch_resize(self); @@ -1282,28 +216,14 @@ static void xdg_surface_configure( MwLLDispatch(self, draw, NULL); if(self->wayland.configured) { - update_buffer(self, &self->wayland.framebuffer); - update_buffer(self, &self->wayland.backbuffer); + MwLLWaylandBufferUpdate(self, &self->wayland.framebuffer); + MwLLWaylandBufferUpdate(self, &self->wayland.backbuffer); } self->wayland.configured = MwTRUE; } -/* wl_shm setup function */ -static wayland_protocol_t* wl_shm_setup(MwU32 name, struct _MwLLWayland* wayland) { - wayland->framebuffer.shm = wl_registry_bind(wayland->registry, name, &wl_shm_interface, 1); - wayland->backbuffer.shm = wl_registry_bind(wayland->registry, name, &wl_shm_interface, 1); - wayland->cursor.shm = wl_registry_bind(wayland->registry, name, &wl_shm_interface, 1); - - return NULL; -} - -static void wl_shm_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - (void)wayland; - (void)data; -} - -static void update_buffer(MwLL self, struct _MwLLWaylandShmBuffer* buffer) { +void MwLLWaylandBufferUpdate(MwLL self, struct _MwLLWaylandShmBuffer* buffer) { memcpy(buffer->buf, buffer->buf_back, buffer->buf_size); // Yes this is needed every time, it's how we fix weston. if(self->wayland.configured) @@ -1311,209 +231,6 @@ static void update_buffer(MwLL self, struct _MwLLWaylandShmBuffer* buffer) { wl_surface_commit(buffer->surface); } -static void buffer_setup(struct _MwLLWaylandShmBuffer* buffer, MwU32 width, MwU32 height) { - int stride = width * 4; - char temp_name[] = "/tmp/milsko-wl-shm-XXXXXX"; - char temp_name_back[] = "/tmp/milsko-wl-shm-back-XXXXXX"; - - buffer->buf_size = width * height * 4; - - buffer->fd = mkstemp(temp_name); - buffer->fd_back = mkstemp(temp_name_back); - - unlink(temp_name); - unlink(temp_name_back); - - if(posix_fallocate(buffer->fd, 0, buffer->buf_size) != 0) { - printf("failure setting up wl_shm: could not fallocate. %s.\n", strerror(errno)); - close(buffer->fd); - return; - } - if(posix_fallocate(buffer->fd_back, 0, buffer->buf_size) != 0) { - printf("failure setting up wl_shm: could not fallocate. %s.\n", strerror(errno)); - close(buffer->fd_back); - return; - } - if(ftruncate(buffer->fd, buffer->buf_size) != 0) { - printf("failure setting up wl_shm: could not truncate. %s.\n", strerror(errno)); - close(buffer->fd); - return; - } - if(ftruncate(buffer->fd_back, buffer->buf_size) != 0) { - printf("failure setting up wl_shm: could not truncate. %s.\n", strerror(errno)); - close(buffer->fd_back); - return; - } - - buffer->buf = mmap(NULL, buffer->buf_size, PROT_WRITE, MAP_SHARED, buffer->fd, 0); - buffer->buf_back = mmap(NULL, buffer->buf_size, PROT_WRITE, MAP_SHARED, buffer->fd_back, 0); - - fsync(buffer->fd); - fsync(buffer->fd_back); - - if(!(buffer->shm_pool = wl_shm_create_pool(buffer->shm, buffer->fd, buffer->buf_size))) { - printf("failure setting up wl_shm: could not create pool.\n"); - } - if(!(buffer->shm_pool_back = wl_shm_create_pool(buffer->shm, buffer->fd_back, buffer->buf_size))) { - printf("failure setting up wl_shm: could not create pool.\n"); - } - buffer->shm_buffer = wl_shm_pool_create_buffer(buffer->shm_pool, 0, width, height, stride, WL_SHM_FORMAT_ARGB8888); - buffer->shm_buffer_back = wl_shm_pool_create_buffer(buffer->shm_pool_back, 0, width, height, stride, WL_SHM_FORMAT_ARGB8888); - buffer->setup = MwTRUE; -} - -static void buffer_destroy(struct _MwLLWaylandShmBuffer* buffer) { - if(!buffer->setup) { - return; - } - if(buffer->buf) munmap(buffer->buf, buffer->buf_size); - if(buffer->buf_back) munmap(buffer->buf_back, buffer->buf_size); - if(buffer->shm_buffer) wl_buffer_destroy(buffer->shm_buffer); - if(buffer->shm_buffer_back) wl_buffer_destroy(buffer->shm_buffer_back); - if(buffer->shm_pool) wl_shm_pool_destroy(buffer->shm_pool); - if(buffer->shm_pool_back) wl_shm_pool_destroy(buffer->shm_pool_back); - close(buffer->fd); - close(buffer->fd_back); - buffer->setup = MwFALSE; -} - -static void framebuffer_setup(struct _MwLLWayland* wayland) { - buffer_setup(&wayland->framebuffer, wayland->ww, wayland->wh); - - wayland->front_cs = cairo_image_surface_create_for_data(wayland->framebuffer.buf_back, CAIRO_FORMAT_ARGB32, wayland->ww, wayland->wh, 4 * wayland->ww); - wayland->front_cairo = cairo_create(wayland->front_cs); - - memset(wayland->framebuffer.buf_back, 0, wayland->framebuffer.buf_size); - if(wayland->configured) - wl_surface_attach(wayland->framebuffer.surface, wayland->framebuffer.shm_buffer, 0, 0); - wl_surface_commit(wayland->framebuffer.surface); - - hang_until_configured((MwLL)wayland); - update_buffer((MwLL)wayland, &wayland->framebuffer); -}; -static void framebuffer_destroy(struct _MwLLWayland* wayland) { - buffer_destroy(&wayland->framebuffer); - cairo_destroy(wayland->front_cairo); - cairo_surface_destroy(wayland->front_cs); -}; - -static void backbuffer_setup(struct _MwLLWayland* wayland) { - if(wayland->type != MwLL_WAYLAND_TOPLEVEL) { - return; - } - MwU32 w = wayland->ww; - MwU32 h = wayland->wh; - if(!wayland->has_decorations) { - w += (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT); - h += (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM); - } - buffer_setup(&wayland->backbuffer, w, h); - - wayland->back_cs = cairo_image_surface_create_for_data(wayland->backbuffer.buf_back, CAIRO_FORMAT_ARGB32, w, h, 4 * w); - wayland->back_cairo = cairo_create(wayland->back_cs); - - memset(wayland->backbuffer.buf_back, 255, wayland->backbuffer.buf_size); - if(wayland->configured) - wl_surface_attach(wayland->backbuffer.surface, wayland->backbuffer.shm_buffer, 0, 0); - wl_surface_commit(wayland->backbuffer.surface); - hang_until_configured((MwLL)wayland); - update_buffer((MwLL)wayland, &wayland->backbuffer); -}; -static void backbuffer_destroy(struct _MwLLWayland* wayland) { - buffer_destroy(&wayland->backbuffer); - cairo_destroy(wayland->back_cairo); - cairo_surface_destroy(wayland->back_cs); -}; - -static void region_invalidate(MwLL handle) { - if(!handle->wayland.configured) { - return; - } - wl_region_subtract(handle->wayland.region, 0, 0, handle->wayland.ww, handle->wayland.wh); -} -static void region_setup(MwLL handle) { - MwLL parent = handle->wayland.parent; - int width = (handle->wayland.clipping_rect.width == 0) ? handle->wayland.ww : handle->wayland.clipping_rect.width; - int height = (handle->wayland.clipping_rect.height == 0) ? handle->wayland.wh : handle->wayland.clipping_rect.height; - - if(!handle->wayland.configured) { - return; - } - - if(!handle->wayland.parent) - wl_region_add(handle->wayland.o_region, 0, 0, width, height); - - if(handle->wayland.type == MwLL_WAYLAND_POPUP) { - wl_region_add(handle->wayland.region, 0, 0, width + abs(handle->wayland.x), height + abs(handle->wayland.y)); - } else { - wl_region_subtract(handle->wayland.region, 0, 0, width + abs(handle->wayland.x), height + abs(handle->wayland.y)); - wl_region_add(handle->wayland.region, handle->wayland.clipping_rect.x, handle->wayland.clipping_rect.y, handle->wayland.clipping_rect.width, handle->wayland.clipping_rect.height); - if(!handle->wayland.parent) - wl_region_add(handle->wayland.region, 0, 0, width, height); - } - - if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { - wl_surface_set_opaque_region(handle->wayland.backbuffer.surface, handle->wayland.o_region); - wl_surface_set_input_region(handle->wayland.backbuffer.surface, handle->wayland.region); - } - wl_surface_set_opaque_region(handle->wayland.framebuffer.surface, handle->wayland.o_region); - wl_surface_set_input_region(handle->wayland.framebuffer.surface, handle->wayland.region); -} - -static wayland_protocol_t* xdg_toplevel_icon_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { - wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); - - proto->context = wl_registry_bind(wayland->registry, name, &xdg_toplevel_icon_manager_v1_interface, 1); - proto->listener = NULL; - - return proto; -} - -static void xdg_toplevel_icon_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { - (void)wayland; - free(data->listener); -} - -/* Function for setting up the callbacks/structs that will be registered upon the relevant interfaces being found. */ -static void setup_callbacks(struct _MwLLWayland* wayland) { -/* Convience macro for adding the interface functions to the setup map */ -#define WL_INTERFACE(interface) \ - do { \ - wayland_protocol_callback_table_t* cb = malloc(sizeof(wayland_protocol_callback_table_t)); \ - cb->setup = (wl_setup_func*)interface##_setup; \ - cb->destroy = (wl_destroy_func*)interface##_interface_destroy; \ - shput(wayland->wl_protocol_setup_map, interface##_interface.name, cb); \ - } while(0); - - wayland->registry_listener.global = new_protocol; - wayland->registry_listener.global_remove = protocol_removed; - wayland->wl_protocol_setup_map = NULL; - wayland->wl_protocol_map = NULL; - - sh_new_arena(wayland->wl_protocol_map); - sh_new_arena(wayland->wl_protocol_setup_map); - - WL_INTERFACE(wl_shm); - WL_INTERFACE(wl_compositor); - WL_INTERFACE(wl_seat); - WL_INTERFACE(wl_output); - WL_INTERFACE(wl_data_device_manager); - WL_INTERFACE(zwp_primary_selection_device_manager_v1); - WL_INTERFACE(zwp_pointer_constraints_v1); - WL_INTERFACE(zwp_relative_pointer_manager_v1); - WL_INTERFACE(xdg_wm_base); - if(wayland->type == MwLL_WAYLAND_TOPLEVEL) { - WL_INTERFACE(wp_viewporter); - WL_INTERFACE(zxdg_decoration_manager_v1); - WL_INTERFACE(xdg_toplevel_icon_manager_v1); - WL_INTERFACE(wl_subcompositor); - } else if(wayland->type == MwLL_WAYLAND_POPUP) { - } else { - WL_INTERFACE(wl_subcompositor); - } -#undef WL_INTERFACE -} - /* Toplevel setup function */ static void setup_toplevel(MwLL r, int x, int y) { r->wayland.type = MwLL_WAYLAND_TOPLEVEL; @@ -1521,7 +238,7 @@ static void setup_toplevel(MwLL r, int x, int y) { r->wayland.x = x; r->wayland.y = y; - setup_callbacks(&r->wayland); + MwLLWaylandSetupCallbacks(&r->wayland); /* Connect to the Wayland compositor */ r->wayland.display = wl_display_connect(NULL); @@ -1633,7 +350,7 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { r->wayland.display = parent->wayland.display; - setup_callbacks(&r->wayland); + MwLLWaylandSetupCallbacks(&r->wayland); r->wayland.registry = wl_display_get_registry(parent->wayland.display); r->wayland.display = parent->wayland.display; @@ -1670,8 +387,8 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { /* Sublevel setup function */ static void destroy_sublevel(MwLL r) { - backbuffer_destroy(&r->wayland); - framebuffer_destroy(&r->wayland); + MwLLWaylandBackbufferDestroy(&r->wayland); + MwLLWaylandFramebufferDestroy(&r->wayland); wl_subsurface_destroy(r->wayland.sublevel->subsurface); @@ -1724,7 +441,7 @@ static void setup_popup(MwLL r, int x, int y, MwLL parent) { r->wayland.y += ceil((float)CSD_BORDER_FRAME_TOP / 2.); } - setup_callbacks(&r->wayland); + MwLLWaylandSetupCallbacks(&r->wayland); /* Connect to the Wayland compositor */ r->wayland.display = parent->wayland.display; @@ -1853,7 +570,7 @@ static void clip(MwLL handle) { handle->wayland.clipping_rect.y = cy - y; handle->wayland.clipping_rect.width = mx - cx; handle->wayland.clipping_rect.height = my - cy; - region_setup(handle); + MwLLWaylandRegionSetup(handle); cairo_reset_clip(handle->wayland.front_cairo); if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL && !handle->wayland.is_toplevel) { @@ -1890,7 +607,7 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh r->wayland.x = x; r->wayland.y = y; r->wayland.parent = parent; - if(is_destroyed(parent)) { + if(MwLLWaylandWidgetIsDestroyed(parent)) { r->wayland.valid = MwFALSE; return; } else { @@ -1921,12 +638,12 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh WIDGET_CHECK(r); - framebuffer_setup(&r->wayland); - backbuffer_setup(&r->wayland); + MwLLWaylandFramebufferSetup(&r->wayland); + MwLLWaylandBackbufferSetup(&r->wayland); r->wayland.region = wl_compositor_create_region(r->wayland.compositor); r->wayland.o_region = wl_compositor_create_region(r->wayland.compositor); - region_setup(r); + MwLLWaylandRegionSetup(r); MwLLForceRender(r); if(parent != NULL) { @@ -1964,8 +681,8 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { memset(r, 0, sizeof(*r)); MwLLCreateCommon(r); - if(is_destroyed(r)) { - undestroy(r); + if(MwLLWaylandWidgetIsDestroyed(r)) { + MwLLWaylandWidgetUndestroy(r); } r->wayland.is_toplevel = parent == NULL; @@ -1991,7 +708,7 @@ static void MwLLDestroyImpl(MwLL handle) { event_loop(handle); // wl_display_cancel_read(handle->wayland.display); - wl_flush(handle); + MwLLWaylandFlush(handle); handle->wayland.cancelEvent = MwTRUE; @@ -2012,7 +729,7 @@ static void MwLLDestroyImpl(MwLL handle) { #endif if(handle->wayland.valid) { - buffer_destroy(&handle->wayland.cursor); + MwLLWaylandBufferDestroy(&handle->wayland.cursor); wl_region_destroy(handle->wayland.region); if(handle->wayland.supports_zwp) { @@ -2021,7 +738,7 @@ static void MwLLDestroyImpl(MwLL handle) { wl_data_source_destroy(handle->wayland.clipboard_source.wl); } if(handle->wayland.icon != NULL) { - buffer_destroy(handle->wayland.icon); + MwLLWaylandBufferDestroy(handle->wayland.icon); wl_surface_destroy(handle->wayland.icon->surface); } @@ -2045,7 +762,7 @@ static void MwLLDestroyImpl(MwLL handle) { shfree(handle->wayland.wl_protocol_map); shfree(handle->wayland.wl_protocol_setup_map); - wl_flush(handle); + MwLLWaylandFlush(handle); pthread_mutex_lock(&destroyedWidgetsTableMutex); arrput(destroyedWidgetsTable, handle); @@ -2074,13 +791,13 @@ static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsign static void MwLLSetXYImpl(MwLL handle, int x, int y) { WIDGET_CHECK(handle); - region_invalidate(handle); + MwLLWaylandRegionInvalidate(handle); handle->wayland.x = x; handle->wayland.y = y; if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL) { wl_subsurface_set_position(handle->wayland.sublevel->subsurface, x, y); } - region_setup(handle); + MwLLWaylandRegionSetup(handle); if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL) recursive_render(handle); @@ -2088,7 +805,7 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { } static void actually_set_wh(MwLL handle) { - region_invalidate(handle); + MwLLWaylandRegionInvalidate(handle); if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL && handle->wayland.configured) { xdg_surface_set_window_geometry(handle->wayland.toplevel->xdg_surface, 0, 0, handle->wayland.ww, handle->wayland.wh); @@ -2102,17 +819,17 @@ static void actually_set_wh(MwLL handle) { if(handle->wayland.type == MwLL_WAYLAND_POPUP) { destroy_popup(handle); - wl_flush(handle); + MwLLWaylandFlush(handle); setup_popup(handle, handle->wayland.x, handle->wayland.y, handle->wayland.parent); } - region_setup(handle); + MwLLWaylandRegionSetup(handle); if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL) recursive_render(handle); - framebuffer_destroy(&handle->wayland); - framebuffer_setup(&handle->wayland); - backbuffer_destroy(&handle->wayland); - backbuffer_setup(&handle->wayland); + MwLLWaylandFramebufferDestroy(&handle->wayland); + MwLLWaylandFramebufferSetup(&handle->wayland); + MwLLWaylandBackbufferDestroy(&handle->wayland); + MwLLWaylandBackbufferSetup(&handle->wayland); MwLLDispatch(handle, draw, NULL); } @@ -2233,7 +950,7 @@ static void MwLLBeginDrawImpl(MwLL handle) { MwLLDestroyPixmap(p); free(px); } - update_buffer(handle, &handle->wayland.backbuffer); + MwLLWaylandBufferUpdate(handle, &handle->wayland.backbuffer); } handle->wayland.selected_cairo = handle->wayland.front_cairo; } @@ -2241,9 +958,9 @@ static void MwLLBeginDrawImpl(MwLL handle) { static void MwLLEndDrawImpl(MwLL handle) { if(handle->wayland.configured) { if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { - update_buffer(handle, &handle->wayland.backbuffer); + MwLLWaylandBufferUpdate(handle, &handle->wayland.backbuffer); } - update_buffer(handle, &handle->wayland.framebuffer); + MwLLWaylandBufferUpdate(handle, &handle->wayland.framebuffer); } } @@ -2327,7 +1044,7 @@ static int MwLLPendingImpl(MwLL handle) { }; int pending = 0; - if(is_destroyed(handle) || !handle->wayland.valid) { + if(MwLLWaylandWidgetIsDestroyed(handle) || !handle->wayland.valid) { return 0; } @@ -2378,9 +1095,9 @@ static int MwLLPendingImpl(MwLL handle) { return pending; } - update_buffer(handle, &handle->wayland.framebuffer); + MwLLWaylandBufferUpdate(handle, &handle->wayland.framebuffer); if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { - update_buffer(handle, &handle->wayland.backbuffer); + MwLLWaylandBufferUpdate(handle, &handle->wayland.backbuffer); } return handle->wayland.force_render || handle->wayland.events_pending || pending; @@ -2398,7 +1115,7 @@ static void MwLLNextEventImpl(MwLL handle) { if(handle->wayland.force_render) { MwLLDispatch(handle, draw, NULL); - if(handle->wayland.configured) update_buffer(handle, &handle->wayland.framebuffer); + if(handle->wayland.configured) MwLLWaylandBufferUpdate(handle, &handle->wayland.framebuffer); handle->wayland.force_render = 0; } if(handle->wayland.events_pending) { @@ -2514,12 +1231,12 @@ static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { } if(handle->wayland.icon->setup) { - buffer_destroy(handle->wayland.icon); + MwLLWaylandBufferDestroy(handle->wayland.icon); wl_surface_destroy(handle->wayland.icon->surface); } handle->wayland.icon->surface = wl_compositor_create_surface(handle->wayland.compositor); - buffer_setup(handle->wayland.icon, line, line); + MwLLWaylandBufferSetup(handle->wayland.icon, line, line); wl_surface_attach(handle->wayland.icon->surface, handle->wayland.icon->shm_buffer, 0, 0); wl_surface_commit(handle->wayland.icon->surface); @@ -2531,7 +1248,7 @@ static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { handle->wayland.icon->buf_back[i + 3] = 255; } - if(handle->wayland.configured) update_buffer(handle, handle->wayland.icon); + if(handle->wayland.configured) MwLLWaylandBufferUpdate(handle, handle->wayland.icon); xdg_toplevel_icon_v1_add_buffer(icon, handle->wayland.icon->shm_buffer_back, 1); @@ -2556,10 +1273,10 @@ static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { WIDGET_CHECK(handle); if(handle->wayland.cursor.setup) { - buffer_destroy(&handle->wayland.cursor); + MwLLWaylandBufferDestroy(&handle->wayland.cursor); wl_surface_destroy(handle->wayland.cursor.surface); } - buffer_setup(&handle->wayland.cursor, mask->width, mask->height); + MwLLWaylandBufferSetup(&handle->wayland.cursor, mask->width, mask->height); memset(handle->wayland.cursor.buf_back, 0, handle->wayland.cursor.buf_size); xs = -mask->x + image->x; @@ -2599,7 +1316,7 @@ static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { handle->wayland.cursor.surface = wl_compositor_create_surface(handle->wayland.compositor); wl_surface_attach(handle->wayland.cursor.surface, handle->wayland.cursor.shm_buffer, 0, 0); wl_surface_commit(handle->wayland.cursor.surface); - update_buffer(handle, &handle->wayland.cursor); + MwLLWaylandBufferUpdate(handle, &handle->wayland.cursor); } static void MwLLDetachImpl(MwLL handle, MwPoint* point) { @@ -2679,7 +1396,7 @@ static void MwLLGrabPointerImpl(MwLL handle, int toggle) { wl_surface_commit(topmost_parent->wayland.backbuffer.surface); zwp_locked_pointer_v1_set_cursor_position_hint(topmost_parent->wayland.locked_pointer, 0, CSD_BORDER_FRAME_TOP); handle->wayland.relative_pointer = zwp_relative_pointer_manager_v1_get_relative_pointer(handle->wayland.relative_pointer_manager, handle->wayland.pointer); - zwp_relative_pointer_v1_add_listener(handle->wayland.relative_pointer, &relative_pointer_listener, topmost_parent); + zwp_relative_pointer_v1_add_listener(handle->wayland.relative_pointer, &MwLLWaylandRelativePointerListener, topmost_parent); } else { if(topmost_parent->wayland.locked_pointer) { zwp_locked_pointer_v1_destroy(topmost_parent->wayland.locked_pointer); @@ -2729,7 +1446,7 @@ static void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) { if(clipboard_type == MwCLIPBOARD_PRIMARY) { if(handle->wayland.supports_zwp) { for(i = 0; i < arrlen(handle->wayland.clipboard_devices_zwp); i++) { - wl_clipboard_read( + MwLLWaylandClipboardRead( handle->wayland.clipboard_devices_zwp[i], clipboard_type); } } else { @@ -2737,7 +1454,7 @@ static void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) { } } else { for(i = 0; i < arrlen(handle->wayland.clipboard_devices_wl); i++) { - wl_clipboard_read( + MwLLWaylandClipboardRead( handle->wayland.clipboard_devices_wl[i], clipboard_type); } } @@ -2795,7 +1512,7 @@ static void MwLLEndStateChangeImpl(MwLL handle) { break; } - wl_flush(handle); + MwLLWaylandFlush(handle); widget_setup(handle, handle->wayland.parent, handle->wayland.detach_point.x, handle->wayland.detach_point.y, handle->wayland.ww, handle->wayland.wh, handle->wayland.type_to_be); @@ -2812,7 +1529,7 @@ static void MwLLEndStateChangeImpl(MwLL handle) { MwLL child = w->children[i]->lowlevel; child->wayland.sublevel->xdg_surface = handle->wayland.popup->xdg_surface; wl_subsurface_destroy(child->wayland.sublevel->subsurface); - wl_flush(handle); + MwLLWaylandFlush(handle); child->wayland.sublevel->subsurface = wl_subcompositor_get_subsurface(child->wayland.sublevel->subcompositor, child->wayland.framebuffer.surface, handle->wayland.framebuffer.surface); wl_subsurface_set_desync(child->wayland.sublevel->subsurface); @@ -2870,5 +1587,5 @@ static MwBool MwLLDoModernImpl(MwLL handle) { return MwTRUE; } -#include "call.c" +#include "../call.c" CALL(Wayland); From 1c8e301e1583b96d5e1c0ab00b090ed188ef8e13 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 4 May 2026 21:09:31 -0700 Subject: [PATCH 660/836] doc: mention one-file suggestion in BACKENDDEV.md --- doc/BACKENDDEV.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/BACKENDDEV.md b/doc/BACKENDDEV.md index 4fa2ed72d..85f61f4fb 100644 --- a/doc/BACKENDDEV.md +++ b/doc/BACKENDDEV.md @@ -11,6 +11,7 @@ The basic process of creating a new Milsko backend is - Fill out `Mw/LowLevel.h` appopriately, adding an include to your new file and the structs in the appropriate unions. These need to be guarded by a `USE_BACKENDNAME` macro which you'll define later when you modify the build system. - Creating a new impl file in `src/backend` - Backends actually return a table of function pointers that you have to implement with static functions. Your file should end with `#include "call.c"` and then `CALL(BackendName);`, and somewhere you should have the impl for `MwLLBackendNameCallInitImpl(void)`. + - Prefer to keep the backend file to one file if you can, though obviously exceptions like the Wayland backend exist because it's simply too complex to sanely stuff into one file. - Add `MwLLBackendNameCallInitImpl` to the `MwLibraryInit` impl in `src/core.c`. - Add a new enum variation to `MwLLBackends` in `Mw/Include/LowLevel.h`; your impl of `MwLLCreateImpl` will set `common.type` to this so the user can check which backend they're on (important for platforms with multiple supported backends). - Either From 37fae993b9c2ac071325758a699d57e1ec1feb45 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 4 May 2026 21:40:04 -0700 Subject: [PATCH 661/836] wayland: fix GetCursorCoordImpl somewhat --- src/backend/wayland/interfaces.c | 22 +++++++++++++--------- src/backend/wayland/wayland.c | 16 +++++++++++++++- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/src/backend/wayland/interfaces.c b/src/backend/wayland/interfaces.c index ef2bd50b6..e3828453c 100644 --- a/src/backend/wayland/interfaces.c +++ b/src/backend/wayland/interfaces.c @@ -495,6 +495,7 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time MwLL topmost_parent = self; MwMouse p; MwBool inArea = MwFALSE; + MwBool h = MwFALSE; MwLL currentlyHeldWidget = NULL; (void)time; @@ -505,11 +506,12 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time currentlyHeldWidget = topmost_parent->wayland.currentlyHeldWidget; - if(currentlyHeldWidget == self) { - self->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); - self->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); - p.point = self->wayland.cur_mouse_pos; - MwLLDispatch(self, move, &p); + if(currentlyHeldWidget) { + currentlyHeldWidget->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); + currentlyHeldWidget->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); + p.point = currentlyHeldWidget->wayland.cur_mouse_pos; + MwLLDispatch(currentlyHeldWidget, move, &p); + h = MwTRUE; } if(self->wayland.framebuffer.surface) { @@ -520,10 +522,12 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time inArea |= self->wayland.backbuffer.surface == curSurface; } if(inArea) { - self->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); - self->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); - p.point = self->wayland.cur_mouse_pos; - MwLLDispatch(self, move, &p); + if(h) { + self->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); + self->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); + p.point = self->wayland.cur_mouse_pos; + MwLLDispatch(self, move, &p); + } wl_pointer_set_cursor(self->wayland.pointer, self->wayland.pointer_serial, self->wayland.cursor.surface, 0, 0); } WAYLAND_EVENT_OP_END(self); diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 3697c44ce..971121097 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -1472,7 +1472,7 @@ static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { WIDGET_CHECK(handle); while(topmost_parent->wayland.parent) topmost_parent = topmost_parent->wayland.parent; - *point = handle->wayland.cur_mouse_pos; + *point = topmost_parent->wayland.cur_mouse_pos; } static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { @@ -1558,6 +1558,20 @@ static void MwLLSetDarkThemeImpl(MwLL handle, int toggle) { static void MwLLRaiseImpl(MwLL handle) { (void)handle; + /* WIDGET_CHECK(handle); + + if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL) { + MwLL topmost_parent = handle; + int children_num; + while(topmost_parent->wayland.parent) topmost_parent = topmost_parent->wayland.parent; + children_num = arrlen(((MwWidget)topmost_parent->common.user)->children); + + if(children_num > 1) { + printf("%d\n", children_num); + MwWidget last_child = ((MwWidget)topmost_parent->common.user)->children[children_num - 1]; + wl_subsurface_place_above(handle->wayland.sublevel->subsurface, last_child->lowlevel->wayland.framebuffer.surface); + } + }*/ } static int MwLLWaylandCallInitImpl(void) { From 89911082edd8de93248fe0537d369b4ce633c95f Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 6 May 2026 00:12:06 +0900 Subject: [PATCH 662/836] things --- examples/basic/periodic.c | 23 ++++++++--- include/Mw/Milsko.h | 23 ++++++----- include/Mw/StringDefs.h | 4 ++ include/Mw/Widget/Calendar.h | 24 +++++++++++ milsko.xml | 19 +++++++++ pl/rules.pl | 1 + src/text/text.c | 2 +- src/widget/box.c | 3 +- src/widget/calendar.c | 79 ++++++++++++++++++++++++++++++++++++ 9 files changed, 160 insertions(+), 18 deletions(-) create mode 100644 include/Mw/Widget/Calendar.h create mode 100644 src/widget/calendar.c diff --git a/examples/basic/periodic.c b/examples/basic/periodic.c index a1c36b2f3..24a886fbc 100644 --- a/examples/basic/periodic.c +++ b/examples/basic/periodic.c @@ -30,7 +30,9 @@ static void newrow(void) { for(i = n; i < Columns; i++) MwCreateWidget(MwFrameClass, "frame", boxes[row], 0, 0, 0, 0); } - boxes[++row] = MwCreateWidget(MwBoxClass, "box", box, 0, 0, 0, 0); + boxes[++row] = MwVaCreateWidget(MwBoxClass, "box", box, 0, 0, 0, 0, + MwNwaitLayout, 1, + NULL); n = 0; } @@ -224,6 +226,7 @@ int main() { box = MwVaCreateWidget(MwBoxClass, "box", window, 0, 0, 0, 0, MwNorientation, MwVERTICAL, + MwNwaitLayout, 1, NULL); newrow(); @@ -263,6 +266,10 @@ int main() { add(f); } + f = frame("Calendar", -PaddingContent, -PaddingContent, MwCalendarClass, + NULL); + add(f); + f = frame("ComboBox", -PaddingContent, 24, MwComboBoxClass, NULL); w = child(f); MwComboBoxAdd(w, -1, "Hello!"); @@ -306,21 +313,18 @@ int main() { f = frame("Separator", -PaddingContent, -PaddingContent, MwSeparatorClass, NULL); add(f); -#if 1 f = frame("SubWindow", -PaddingContent, -PaddingContent, MwViewportClass, - MwNratio, 3, + MwNratio, 2, NULL); w = child(f); MwViewportSetSize(w, 512, 512); MwVaCreateWidget(MwSubWindowClass, "swnd", MwViewportGetViewport(w), 32, 32, 256, 128, MwNtitle, "Sub window", NULL); - add(f); MwVaCreateWidget(MwSubWindowClass, "swnd", MwViewportGetViewport(w), 64, 64, 256, 128, MwNtitle, "Sub window 2", NULL); add(f); -#endif f = frame("TreeView", -PaddingContent, -PaddingContent, MwTreeViewClass, NULL); w = child(f); @@ -344,6 +348,15 @@ int main() { resize(window, NULL, NULL); + MwVaApply(box, + MwNwaitLayout, 0, + NULL); + for(i = 0; i < row; i++) { + MwVaApply(boxes[i], + MwNwaitLayout, 0, + NULL); + } + MwLoop(window); MwLLDestroyPixmap(px); diff --git a/include/Mw/Milsko.h b/include/Mw/Milsko.h index 9600b0cb4..40aebc5d4 100644 --- a/include/Mw/Milsko.h +++ b/include/Mw/Milsko.h @@ -32,25 +32,26 @@ #include #include -#include -#include -#include +#include #include -#include +#include #include +#include +#include #include #include -#include -#include -#include -#include +#include #include +#include +#include #include #include +#include #include -#include -#include -#include +#include #include +#include +#include +#include #endif diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index 67a53a42c..ccf86dcb3 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -43,6 +43,10 @@ #define MwNdarkTheme "IdarkTheme" #define MwNuseMonospace "IuseMonospace" #define MwNdarkThemeAutomatic "IdarkThemeAutomatic" +#define MwNmonth "Imonth" +#define MwNdate "Idate" +#define MwNday "Iday" +#define MwNwaitLayout "IwaitLayout" #define MwNtitle "Stitle" #define MwNtext "Stext" diff --git a/include/Mw/Widget/Calendar.h b/include/Mw/Widget/Calendar.h new file mode 100644 index 000000000..a01968fc6 --- /dev/null +++ b/include/Mw/Widget/Calendar.h @@ -0,0 +1,24 @@ +/*! + * @file Mw/Widget/Calendar.h + * @brief Calendar widget + */ +#ifndef __MW_WIDGET_CALENDAR_H__ +#define __MW_WIDGET_CALENDAR_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/*! + * @brief Calendar widget class + */ +MWDECL MwClass MwCalendarClass; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/milsko.xml b/milsko.xml index a69cf0bfd..2247af6d5 100644 --- a/milsko.xml +++ b/milsko.xml @@ -97,6 +97,10 @@ + + + + @@ -612,6 +616,7 @@ + @@ -627,6 +632,13 @@ + + + + + + + @@ -883,6 +895,13 @@ + + + + + + + diff --git a/pl/rules.pl b/pl/rules.pl index ecb45ec5e..8c0eb0f41 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -143,6 +143,7 @@ new_object("src/text/font/*.c"); new_object("src/widget/box.c"); new_object("src/widget/button.c"); +new_object("src/widget/calendar.c"); new_object("src/widget/checkbox.c"); new_object("src/widget/combobox.c"); new_object("src/widget/entry.c"); diff --git a/src/text/text.c b/src/text/text.c index cf7bf64a7..ac60ca6c9 100644 --- a/src/text/text.c +++ b/src/text/text.c @@ -74,7 +74,7 @@ void MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, if(!MwGetInteger(handle, MwNbitmapFont) && ttf <= MwFLBuildFont(0xff)) ttf = assume_ttf(handle, ttf); #endif - p.y -= MwTextHeight(handle, ttf, text) / 2 - (MwTextHeight(handle, ttf, text) / count_nl(text)) / 2; + p.y -= (MwTextHeight(handle, ttf, text) - (MwTextHeight(handle, ttf, text) / count_nl(text))) / 2; while(*input != 0) { input += MwUTF8ToUTF32(input, &cp); diff --git a/src/widget/box.c b/src/widget/box.c index 626ebad0a..e6afea688 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -15,6 +15,7 @@ static int wcreate(MwWidget handle) { MwSetInteger(handle, MwNpadding, 0); MwSetInteger(handle, MwNhasBorder, 0); MwSetInteger(handle, MwNinverted, 1); + MwSetInteger(handle, MwNwaitLayout, 0); b->layout = 0; @@ -116,7 +117,7 @@ static void children_prop_change(MwWidget handle, MwWidget child, const char* ke static void tick(MwWidget handle) { MwBox b = handle->internal; - if(b->layout) { + if(b->layout && !MwGetInteger(handle, MwNwaitLayout)) { layout(handle); b->layout = 0; diff --git a/src/widget/calendar.c b/src/widget/calendar.c new file mode 100644 index 000000000..0d92b4e06 --- /dev/null +++ b/src/widget/calendar.c @@ -0,0 +1,79 @@ +#include + +static int wcreate(MwWidget handle) { + MwSetDefault(handle); + + MwSetInteger(handle, MwNmonth, 0); + MwSetInteger(handle, MwNdate, 1); + MwSetInteger(handle, MwNday, 3); + return 0; +} + +static void draw(MwWidget handle) { + MwLLColor c = MwParseColor(handle, MwGetText(handle, MwNbackground)); + MwLLColor csb = MwParseColor(handle, MwGetText(handle, MwNsubBackground)); + MwLLColor csf = MwParseColor(handle, MwGetText(handle, MwNsubForeground)); + MwRect r, r2; + MwPoint p[4]; + int tw = 2; + int th = 6; + char buf[3]; + + r.x = 0; + r.y = 0; + r.width = MwGetInteger(handle, MwNwidth); + r.height = MwGetInteger(handle, MwNheight); + MwDrawRect(handle, &r, c); + + r2.width = 32; + r2.height = 32 - th - 1; + r2.x = (r.width - r2.width) / 2; + r2.y = (r.height - r2.height - th - 1) / 2; + MwDrawRect(handle, &r2, csb); + + p[0].x = r2.x; + p[0].y = r2.y + r2.height; + p[1].x = r2.x - tw; + p[1].y = r2.y + r2.height + th; + p[2].x = r2.x + r2.width - tw; + p[2].y = r2.y + r2.height + th; + p[3].x = r2.x + r2.width; + p[3].y = r2.y + r2.height; + MwLLPolygon(handle->lowlevel, p, 4, csb); + + p[0].x = r.width / 2; + p[0].y = r.height / 2; + sprintf(buf, "%d", MwGetInteger(handle, MwNdate)); + MwDrawText(handle, MwFLBuildFont(MwFLFlagBold), p, buf, MwALIGNMENT_CENTER, csf); + + MwLLFreeColor(csf); + MwLLFreeColor(csb); + MwLLFreeColor(c); +} + +static void prop_change(MwWidget handle, const char* key) { + if(strcmp(key, MwNmonth) == 0 || strcmp(key, MwNdate) == 0 || strcmp(key, MwNday) == 0) MwForceRender(handle); +} + +MwClassRec MwCalendarClassRec = { + wcreate, /* create */ + NULL, /* destroy */ + draw, /* draw */ + NULL, /* click */ + NULL, /* parent_resize */ + prop_change, /* prop_change */ + NULL, /* mouse_move */ + NULL, /* mouse_up */ + NULL, /* mouse_down */ + NULL, /* key */ + NULL, /* execute */ + NULL, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, /* clipboard */ + NULL, /* props_change */ + NULL, + NULL, + NULL}; +MwClass MwCalendarClass = &MwCalendarClassRec; From 4777f893c6cabbf51f31673d38d488242522ac5b Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 6 May 2026 01:51:15 +0900 Subject: [PATCH 663/836] color --- src/widget/calendar.c | 44 ++++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/src/widget/calendar.c b/src/widget/calendar.c index 0d92b4e06..887bb830b 100644 --- a/src/widget/calendar.c +++ b/src/widget/calendar.c @@ -11,12 +11,15 @@ static int wcreate(MwWidget handle) { static void draw(MwWidget handle) { MwLLColor c = MwParseColor(handle, MwGetText(handle, MwNbackground)); - MwLLColor csb = MwParseColor(handle, MwGetText(handle, MwNsubBackground)); - MwLLColor csf = MwParseColor(handle, MwGetText(handle, MwNsubForeground)); - MwRect r, r2; + MwLLColor cb = MwParseColor(handle, "#fff"); + MwLLColor cb_g = MwParseColor(handle, "#666"); + MwLLColor ct = MwParseColor(handle, "#000"); + MwRect r, r2, r3; MwPoint p[4]; - int tw = 2; - int th = 6; + int h = 64; + int pw = h / 16; /* parallelogram width */ + int ph = pw * 3; /* parallelogram height */ + int gh = h / 32; /* gray area height */ char buf[3]; r.x = 0; @@ -25,29 +28,36 @@ static void draw(MwWidget handle) { r.height = MwGetInteger(handle, MwNheight); MwDrawRect(handle, &r, c); - r2.width = 32; - r2.height = 32 - th - 1; + r2.width = h; + r2.height = h - ph - gh; r2.x = (r.width - r2.width) / 2; - r2.y = (r.height - r2.height - th - 1) / 2; - MwDrawRect(handle, &r2, csb); + r2.y = (r.height - r2.height - ph - gh) / 2; + MwDrawRect(handle, &r2, cb); + + r3.x = r2.x; + r3.y = r2.y + r2.height; + r3.width = r2.width; + r3.height = ph + gh; + MwDrawRect(handle, &r3, cb_g); p[0].x = r2.x; p[0].y = r2.y + r2.height; - p[1].x = r2.x - tw; - p[1].y = r2.y + r2.height + th; - p[2].x = r2.x + r2.width - tw; - p[2].y = r2.y + r2.height + th; + p[1].x = r2.x - pw; + p[1].y = r2.y + r2.height + ph; + p[2].x = r2.x + r2.width - pw; + p[2].y = r2.y + r2.height + ph; p[3].x = r2.x + r2.width; p[3].y = r2.y + r2.height; - MwLLPolygon(handle->lowlevel, p, 4, csb); + MwLLPolygon(handle->lowlevel, p, 4, cb); p[0].x = r.width / 2; p[0].y = r.height / 2; sprintf(buf, "%d", MwGetInteger(handle, MwNdate)); - MwDrawText(handle, MwFLBuildFont(MwFLFlagBold), p, buf, MwALIGNMENT_CENTER, csf); + MwDrawText(handle, MwFLBuildFont(MwFLFlagBold), p, buf, MwALIGNMENT_CENTER, ct); - MwLLFreeColor(csf); - MwLLFreeColor(csb); + MwLLFreeColor(ct); + MwLLFreeColor(cb_g); + MwLLFreeColor(cb); MwLLFreeColor(c); } From e835a9cd60e6a31fac948cd92f08df95af7a0a5f Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 6 May 2026 03:36:57 +0900 Subject: [PATCH 664/836] detach works --- examples/vkdemos/vulkan.c | 4 +- include/Mw/LowLevel/Haiku.h | 11 +++- src/backend/haiku.cc | 120 +++++++++++++++++++++++++++++------- src/widget/calendar.c | 16 ++--- src/widget/listbox.c | 6 +- src/widget/scrollbar.c | 6 +- 6 files changed, 123 insertions(+), 40 deletions(-) diff --git a/examples/vkdemos/vulkan.c b/examples/vkdemos/vulkan.c index 2d03030e9..9dfa311eb 100644 --- a/examples/vkdemos/vulkan.c +++ b/examples/vkdemos/vulkan.c @@ -264,8 +264,8 @@ void vulkan_setup(MwWidget handle) { swapchainCreateInfo.imageExtent = (VkExtent2D){.width = ow, .height = oh}, swapchainCreateInfo.imageArrayLayers = 1, swapchainCreateInfo.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | - VK_IMAGE_USAGE_TRANSFER_DST_BIT | - VK_IMAGE_USAGE_SAMPLED_BIT; + VK_IMAGE_USAGE_TRANSFER_DST_BIT | + VK_IMAGE_USAGE_SAMPLED_BIT; // th is how we specify no transformation. swapchainCreateInfo.preTransform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; swapchainCreateInfo.compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR; diff --git a/include/Mw/LowLevel/Haiku.h b/include/Mw/LowLevel/Haiku.h index 504295eb6..32c1c027c 100644 --- a/include/Mw/LowLevel/Haiku.h +++ b/include/Mw/LowLevel/Haiku.h @@ -21,8 +21,6 @@ class MwWindow; class MwApplication : public BApplication { public: - MwWindow* window; - MwApplication(MwRect rc, MwLL handle); ~MwApplication(); @@ -70,6 +68,7 @@ typedef BBitmap MwBBitmap; #else typedef void MwApplication; typedef void MwView; +typedef void MwWindow; typedef void MwBBitmap; #endif @@ -91,11 +90,14 @@ enum BVIEW_MW_WHAT { BVIEW_MW_LINE, BVIEW_MW_BITMAP, BVIEW_MW_RENDER, + BVIEW_MW_RAISE, BVIEW_MW_GET_MOUSE }; enum BWIN_MW_WHAT { - BWIN_MW_SET_TITLE = 0 + BWIN_MW_DESTROY = 0, + BWIN_MW_SET_TITLE, + BWIN_MW_SET_TYPE }; enum MwLLHAIKU_EVENT { @@ -135,6 +137,8 @@ union _MwLLHaikuEvent { struct _MwLLHaiku { struct _MwLLCommon common; + int type; + int x; int y; int width; @@ -142,6 +146,7 @@ struct _MwLLHaiku { MwLL parent; MwApplication* app; + MwWindow* window; MwView* view; thread_id app_thread; int force_render; diff --git a/src/backend/haiku.cc b/src/backend/haiku.cc index 03c755b2f..57914babc 100644 --- a/src/backend/haiku.cc +++ b/src/backend/haiku.cc @@ -19,18 +19,17 @@ MwApplication::MwApplication(MwRect rc, MwLL handle) rc2 = BRect(rc.x, rc.y, rc.x + rc.width - 1, rc.y + rc.height - 1); - this->window = new MwWindow(rc2, B_TITLED_WINDOW, 0); - this->window->Show(); + handle->haiku.window = new MwWindow(rc2, B_TITLED_WINDOW, 0); + handle->haiku.window->Show(); - handle->haiku.view = new MwView(handle, this->window->Bounds(), B_FOLLOW_ALL_SIDES, B_WILL_DRAW); + handle->haiku.view = new MwView(handle, handle->haiku.window->Bounds(), B_FOLLOW_ALL_SIDES, B_WILL_DRAW); - this->window->AddChild(handle->haiku.view); + handle->haiku.window->AddChild(handle->haiku.view); delete scr; } MwApplication::~MwApplication() { - delete this->window; } void MwApplication::MessageReceived(BMessage* message) { @@ -76,7 +75,35 @@ void MwView::MessageReceived(BMessage* message) { } case BVIEW_MW_DETACH: { - this->RemoveSelf(); + BRect rc; + BPoint point; + + if(message->FindPoint("view-point", &point) != B_OK) break; + + point = this->ConvertToScreen(this->ConvertFromParent(point)); + + rc.left = point.x; + rc.top = point.y; + rc.right = rc.left + this->handle->haiku.width - 1; + rc.bottom = rc.top + this->handle->haiku.height - 1; + + if(this->Parent() != NULL) { + this->RemoveSelf(); + } + + this->handle->haiku.parent = NULL; + + this->handle->haiku.window = new MwWindow(rc, B_TITLED_WINDOW, 0); + this->handle->haiku.window->Show(); + + this->MoveTo(0, 0); + this->ResizeTo(this->handle->haiku.width, this->handle->haiku.height); + this->SetResizingMode(B_FOLLOW_ALL_SIDES); + this->handle->haiku.window->AddChild(this); + + while(this->Window() != this->handle->haiku.window); + + MwLLForceRender(this->handle); break; } case BVIEW_MW_RESIZE: @@ -86,10 +113,10 @@ void MwView::MessageReceived(BMessage* message) { if(message->FindInt32("view-width", &width) != B_OK) break; if(message->FindInt32("view-height", &height) != B_OK) break; - if(this->handle->haiku.app == NULL) { + if(this->handle->haiku.window == NULL) { this->ResizeTo(width - 1, height - 1); } else { - this->Window()->ResizeTo(width - 1, height - 1); + this->handle->haiku.window->ResizeTo(width - 1, height - 1); this->ResizeTo(width - 1, height - 1); } this->Draw(BRect(0, 0, 0, 0)); @@ -178,6 +205,14 @@ void MwView::MessageReceived(BMessage* message) { this->Invalidate(); break; } + case BVIEW_MW_RAISE: + { + BView* v = this->Parent(); + + this->RemoveSelf(); + v->AddChild(this); + break; + } case BVIEW_MW_GET_MOUSE: { BPoint* p; @@ -205,7 +240,7 @@ void MwView::PostMessage(BMessage* message) { copy.AddPointer("window-view", this); - top->haiku.app->window->PostMessage(©); + top->haiku.window->PostMessage(©); } void MwView::PostMessage(uint32 command) { @@ -223,7 +258,7 @@ status_t MwView::SendMessage(BMessage* message) { copy.AddPointer("window-view", this); - return BMessenger(top->haiku.app->window).SendMessage(©, &reply); + return BMessenger(top->haiku.window).SendMessage(©, &reply); } status_t MwView::SendMessage(uint32 command) { @@ -355,6 +390,12 @@ void MwWindow::MessageReceived(BMessage* message) { } switch(message->what) { + case BVIEW_MW_DESTROY: + { + this->Quit(); + delete this; + break; + } case BWIN_MW_SET_TITLE: { const char* title; @@ -364,6 +405,19 @@ void MwWindow::MessageReceived(BMessage* message) { this->SetTitle(title); break; } + case BWIN_MW_SET_TYPE: + { + int type; + + if(message->FindInt32("window-type", &type) != B_OK) break; + + this->SetType((window_type)type); + + if(type == B_UNTYPED_WINDOW) { + this->SetLook(B_NO_BORDER_WINDOW_LOOK); + } + break; + } default: { BWindow::MessageReceived(message); @@ -443,23 +497,27 @@ MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { p->rc = mrc; p->handle = r; - r->haiku.app = NULL; - r->haiku.view = NULL; + r->haiku.app = NULL; + r->haiku.window = NULL; + r->haiku.view = NULL; r->haiku.app_thread = spawn_thread(app_thread, NULL, B_NORMAL_PRIORITY, p); resume_thread(r->haiku.app_thread); - while(r->haiku.app == NULL || r->haiku.app->window == NULL || r->haiku.view == NULL) MwTimeSleep(10); + while(r->haiku.app == NULL || r->haiku.window == NULL || r->haiku.view == NULL) MwTimeSleep(10); } else { MwLL top = r; while(top->haiku.parent != NULL) { top = top->haiku.parent; } - r->haiku.app = NULL; - r->haiku.view = new MwView(r, rc, B_FOLLOW_NONE, B_WILL_DRAW); + r->haiku.app = NULL; + r->haiku.window = NULL; + r->haiku.view = new MwView(r, rc, B_FOLLOW_NONE, B_WILL_DRAW); parent->haiku.view->AddChild(r->haiku.view); + + r->haiku.view->SendMessage(BVIEW_MW_RAISE); } r->haiku.x = x; @@ -482,6 +540,8 @@ void MwLLDestroyImpl(MwLL handle) { wait_for_thread(handle->haiku.app_thread, &exit_value); delete handle->haiku.app; + } else if(handle->haiku.window != NULL) { + handle->haiku.window->PostMessage(BWIN_MW_DESTROY); } free(handle); @@ -579,7 +639,7 @@ void MwLLSetTitleImpl(MwLL handle, const char* title) { msg.AddString("window-title", title); - handle->haiku.app->window->PostMessage(&msg); + handle->haiku.window->PostMessage(&msg); } int MwLLPendingImpl(MwLL handle) { @@ -699,7 +759,15 @@ void MwLLForceRenderImpl(MwLL handle) { void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) {} -void MwLLDetachImpl(MwLL handle, MwPoint* point) {} +void MwLLDetachImpl(MwLL handle, MwPoint* point) { + BMessage msg(BVIEW_MW_DETACH); + + msg.AddPoint("view-point", BPoint(point->x, point->y)); + + handle->haiku.view->PostMessage(&msg); + + while(handle->haiku.window == NULL); +} void MwLLShowImpl(MwLL handle, int show) { if(show) { @@ -713,13 +781,23 @@ void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) { void MwLLMakeBorderlessImpl(MwLL handle, int toggle) {} -void MwLLMakeToolWindowImpl(MwLL handle) {} +void MwLLMakeToolWindowImpl(MwLL handle) { + handle->haiku.type = B_UNTYPED_WINDOW; +} void MwLLMakePopupImpl(MwLL handle, MwLL parent) {} -void MwLLBeginStateChangeImpl(MwLL handle) {} +void MwLLBeginStateChangeImpl(MwLL handle) { + handle->haiku.type = handle->haiku.window == NULL ? B_TITLED_WINDOW : handle->haiku.window->Type(); +} -void MwLLEndStateChangeImpl(MwLL handle) {} +void MwLLEndStateChangeImpl(MwLL handle) { + BMessage msg(BWIN_MW_SET_TYPE); + + msg.AddInt32("window-type", handle->haiku.type); + + BMessenger(handle->haiku.window).SendMessage(&msg); +} void MwLLFocusImpl(MwLL handle) {} @@ -766,7 +844,7 @@ MwBool MwLLDoModernImpl(MwLL handle) { } static void MwLLRaiseImpl(MwLL handle) { - (void)handle; + handle->haiku.view->SendMessage(BVIEW_MW_RAISE); } int MwLLHaikuCallInitImpl() { diff --git a/src/widget/calendar.c b/src/widget/calendar.c index 887bb830b..84f5d4b7f 100644 --- a/src/widget/calendar.c +++ b/src/widget/calendar.c @@ -10,16 +10,16 @@ static int wcreate(MwWidget handle) { } static void draw(MwWidget handle) { - MwLLColor c = MwParseColor(handle, MwGetText(handle, MwNbackground)); - MwLLColor cb = MwParseColor(handle, "#fff"); + MwLLColor c = MwParseColor(handle, MwGetText(handle, MwNbackground)); + MwLLColor cb = MwParseColor(handle, "#fff"); MwLLColor cb_g = MwParseColor(handle, "#666"); - MwLLColor ct = MwParseColor(handle, "#000"); + MwLLColor ct = MwParseColor(handle, "#000"); MwRect r, r2, r3; MwPoint p[4]; - int h = 64; + int h = 64; int pw = h / 16; /* parallelogram width */ int ph = pw * 3; /* parallelogram height */ - int gh = h / 32; /* gray area height */ + int gh = h / 32; /* gray area height */ char buf[3]; r.x = 0; @@ -34,9 +34,9 @@ static void draw(MwWidget handle) { r2.y = (r.height - r2.height - ph - gh) / 2; MwDrawRect(handle, &r2, cb); - r3.x = r2.x; - r3.y = r2.y + r2.height; - r3.width = r2.width; + r3.x = r2.x; + r3.y = r2.y + r2.height; + r3.width = r2.width; r3.height = ph + gh; MwDrawRect(handle, &r3, cb_g); diff --git a/src/widget/listbox.c b/src/widget/listbox.c index 72fa74391..9ef2cb57f 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -420,8 +420,8 @@ static void redrawIfNeeded(MwWidget handle, int row) { static int mwListBoxSetImpl(MwWidget handle, int row, int col, const char* text) { MwListBox lb = handle->internal; MwListBoxEntry entry; - char* t = text == NULL ? NULL : MwStringDuplicate(text); - int new = 0; + char* t = text == NULL ? NULL : MwStringDuplicate(text); + int new = 0; if(row == -1) row = arrlen(lb->list); entry.name = NULL; @@ -449,7 +449,7 @@ static int mwListBoxSetImpl(MwWidget handle, int row, int col, const char* text) static void mwListBoxSetIconImpl(MwWidget handle, int index, MwLLPixmap icon) { MwListBox lb = handle->internal; MwListBoxEntry entry; - int new = 0; + int new = 0; if(index == -1) index = arrlen(lb->list); entry.name = NULL; diff --git a/src/widget/scrollbar.c b/src/widget/scrollbar.c index 98a050d9c..17f38fdc2 100644 --- a/src/widget/scrollbar.c +++ b/src/widget/scrollbar.c @@ -58,9 +58,9 @@ static void draw(MwWidget handle) { MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); MwLLColor dark = MwLightenColor(handle, base, -64, -64, -64); MwScrollBar scr = handle->internal; - int or ; - int uy, dy, ux, dx; - MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); + int or; + int uy, dy, ux, dx; + MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); r.x = 0; r.y = 0; From cc7f4f7ea83c1b2969bebe47a295aef160001a5c Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 6 May 2026 03:44:04 +0900 Subject: [PATCH 665/836] no more warnings --- src/backend/haiku.cc | 64 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 55 insertions(+), 9 deletions(-) diff --git a/src/backend/haiku.cc b/src/backend/haiku.cc index 57914babc..3bd96745e 100644 --- a/src/backend/haiku.cc +++ b/src/backend/haiku.cc @@ -354,6 +354,9 @@ void MwView::MouseUp(BPoint point) { void MwView::MouseMoved(BPoint point, uint32 transit, const BMessage* message) { MwLLHaikuEvent ev; + (void)transit; + (void)message; + ev.type = MwLLHAIKU_EVENT_MOUSEMOVED; ev.mouse.point.x = point.x; ev.mouse.point.y = point.y; @@ -576,9 +579,11 @@ void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { } void MwLLBeginDrawImpl(MwLL handle) { + (void)handle; } void MwLLEndDrawImpl(MwLL handle) { + (void)handle; } MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { @@ -590,6 +595,8 @@ MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { } void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { + (void)handle; + c->common.red = r; c->common.green = g; c->common.blue = b; @@ -697,6 +704,9 @@ void MwLLNextEventImpl(MwLL handle) { MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) { MwLLPixmap r = (MwLLPixmap)malloc(sizeof(*r)); + + (void)handle; + r->common.raw = (unsigned char*)malloc(4 * width * height); memcpy(r->common.raw, data, 4 * width * height); @@ -748,7 +758,10 @@ void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { handle->haiku.view->PostMessage(&msg); } -void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) {} +void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { + (void)handle; + (void)pixmap; +} void MwLLForceRenderImpl(MwLL handle) { if(handle->haiku.force_render) return; @@ -757,7 +770,11 @@ void MwLLForceRenderImpl(MwLL handle) { handle->haiku.view->PostMessage(BVIEW_MW_RENDER); } -void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) {} +void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { + (void)handle; + (void)image; + (void)mask; +} void MwLLDetachImpl(MwLL handle, MwPoint* point) { BMessage msg(BVIEW_MW_DETACH); @@ -777,15 +794,30 @@ void MwLLShowImpl(MwLL handle, int show) { } } -void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) {} +void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) { + (void)handle; + (void)minx; + (void)miny; + (void)maxx; + (void)maxy; +} -void MwLLMakeBorderlessImpl(MwLL handle, int toggle) {} +void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { + if(toggle){ + handle->haiku.type = B_TITLED_WINDOW; + }else{ + handle->haiku.type = B_UNTYPED_WINDOW; + } +} void MwLLMakeToolWindowImpl(MwLL handle) { handle->haiku.type = B_UNTYPED_WINDOW; } -void MwLLMakePopupImpl(MwLL handle, MwLL parent) {} +void MwLLMakePopupImpl(MwLL handle, MwLL parent) { + (void)handle; + (void)parent; +} void MwLLBeginStateChangeImpl(MwLL handle) { handle->haiku.type = handle->haiku.window == NULL ? B_TITLED_WINDOW : handle->haiku.window->Type(); @@ -799,13 +831,25 @@ void MwLLEndStateChangeImpl(MwLL handle) { BMessenger(handle->haiku.window).SendMessage(&msg); } -void MwLLFocusImpl(MwLL handle) {} +void MwLLFocusImpl(MwLL handle) { + (void)handle; +} -void MwLLGrabPointerImpl(MwLL handle, int toggle) {} +void MwLLGrabPointerImpl(MwLL handle, int toggle) { + (void)handle; + (void)toggle; +} -void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_type) {} +void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_type) { + (void)handle; + (void)text; + (void)clipboard_type; +} -void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) {} +void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) { + (void)handle; + (void)clipboard_type; +} void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { MwLL top = handle; @@ -825,6 +869,8 @@ void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { BScreen* screen = new BScreen(); + (void)handle; + if(screen->IsValid()) { rect->width = screen->Frame().Width(); rect->height = screen->Frame().Height(); From 4fdc578448f38fefa4503a03ad52971bebbe9ca5 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 6 May 2026 04:16:35 +0900 Subject: [PATCH 666/836] can compile examples now --- BorMakefile | 176 ++++++++++++++++++- NTMakefile | 176 ++++++++++++++++++- WatMakefile | 348 +++++++++++++++++++++++++++---------- examples/basic/subwindow.c | 2 +- tools/genmk.pl | 75 ++++++-- 5 files changed, 662 insertions(+), 115 deletions(-) diff --git a/BorMakefile b/BorMakefile index 19cb9d59e..3297b59de 100644 --- a/BorMakefile +++ b/BorMakefile @@ -1,10 +1,12 @@ CC = bcc32 -c LD = bcc32 -CFLAGS = -Iinclude -Iexternal\libz\include -D_MILSKO -DUSE_GDI -DUSE_STB_TRUETYPE -DUSE_STB_IMAGE -DSTBI_NO_SIMD -LDFLAGS = -tWD +MW_CFLAGS = -Iinclude -Iexternal\libz\include -D_MILSKO -DUSE_GDI -DUSE_STB_TRUETYPE -DUSE_STB_IMAGE -DSTBI_NO_SIMD +MW_LDFLAGS = -tWD +EXE_CFLAGS = -Iinclude +EXE_LDFLAGS = .SUFFIXES: .obj .c -all: src\Mw.dll +all: src\Mw.dll examples\basic\box.exe examples\basic\calculator.exe examples\basic\checkbox.exe examples\basic\clipboard.exe examples\basic\colorpicker.exe examples\basic\combobox.exe examples\basic\example.exe examples\basic\filechooser.exe examples\basic\image.exe examples\basic\listbox.exe examples\basic\messagebox.exe examples\basic\periodic.exe examples\basic\progressbar.exe examples\basic\radiobox.exe examples\basic\rotate.exe examples\basic\scrollbar.exe examples\basic\sevensegment.exe examples\basic\subwindow.exe examples\basic\treeview.exe examples\basic\viewport.exe clean: del /f /q external\libz\src\adler32.obj del /f /q external\libz\src\compress.obj @@ -72,6 +74,7 @@ clean: del /f /q src\unicode.obj del /f /q src\widget\box.obj del /f /q src\widget\button.obj + del /f /q src\widget\calendar.obj del /f /q src\widget\checkbox.obj del /f /q src\widget\combobox.obj del /f /q src\widget\entry.obj @@ -93,10 +96,171 @@ clean: del /f /q src\widget\window.obj del /f /q src\Mw.dll del /f /q src\Mw.lib + del /f /q examples\basic\box.obj + del /f /q examples\basic\calculator.obj + del /f /q examples\basic\checkbox.obj + del /f /q examples\basic\clipboard.obj + del /f /q examples\basic\colorpicker.obj + del /f /q examples\basic\combobox.obj + del /f /q examples\basic\example.obj + del /f /q examples\basic\filechooser.obj + del /f /q examples\basic\image.obj + del /f /q examples\basic\listbox.obj + del /f /q examples\basic\messagebox.obj + del /f /q examples\basic\periodic.obj + del /f /q examples\basic\progressbar.obj + del /f /q examples\basic\radiobox.obj + del /f /q examples\basic\rotate.obj + del /f /q examples\basic\scrollbar.obj + del /f /q examples\basic\sevensegment.obj + del /f /q examples\basic\subwindow.obj + del /f /q examples\basic\treeview.obj + del /f /q examples\basic\viewport.obj + del /f /q examples\basic\box.exe + del /f /q examples\basic\calculator.exe + del /f /q examples\basic\checkbox.exe + del /f /q examples\basic\clipboard.exe + del /f /q examples\basic\colorpicker.exe + del /f /q examples\basic\combobox.exe + del /f /q examples\basic\example.exe + del /f /q examples\basic\filechooser.exe + del /f /q examples\basic\image.exe + del /f /q examples\basic\listbox.exe + del /f /q examples\basic\messagebox.exe + del /f /q examples\basic\periodic.exe + del /f /q examples\basic\progressbar.exe + del /f /q examples\basic\radiobox.exe + del /f /q examples\basic\rotate.exe + del /f /q examples\basic\scrollbar.exe + del /f /q examples\basic\sevensegment.exe + del /f /q examples\basic\subwindow.exe + del /f /q examples\basic\treeview.exe + del /f /q examples\basic\viewport.exe -src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj - $(LD) $(LDFLAGS) -e$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj -lopengl32.lib -lgdi32.lib -luser32.lib -ladvapi32.lib +examples\basic\box.exe: examples\basic\box.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\box.obj -lsrc\Mw.lib + +examples\basic\box.obj: examples/basic/box.c + $(CC) $(EXE_CFLAGS) -o$@ examples/basic/box.c + +examples\basic\calculator.exe: examples\basic\calculator.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\calculator.obj -lsrc\Mw.lib + +examples\basic\calculator.obj: examples/basic/calculator.c + $(CC) $(EXE_CFLAGS) -o$@ examples/basic/calculator.c + +examples\basic\checkbox.exe: examples\basic\checkbox.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\checkbox.obj -lsrc\Mw.lib + +examples\basic\checkbox.obj: examples/basic/checkbox.c + $(CC) $(EXE_CFLAGS) -o$@ examples/basic/checkbox.c + +examples\basic\clipboard.exe: examples\basic\clipboard.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\clipboard.obj -lsrc\Mw.lib + +examples\basic\clipboard.obj: examples/basic/clipboard.c + $(CC) $(EXE_CFLAGS) -o$@ examples/basic/clipboard.c + +examples\basic\colorpicker.exe: examples\basic\colorpicker.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\colorpicker.obj -lsrc\Mw.lib + +examples\basic\colorpicker.obj: examples/basic/colorpicker.c + $(CC) $(EXE_CFLAGS) -o$@ examples/basic/colorpicker.c + +examples\basic\combobox.exe: examples\basic\combobox.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\combobox.obj -lsrc\Mw.lib + +examples\basic\combobox.obj: examples/basic/combobox.c + $(CC) $(EXE_CFLAGS) -o$@ examples/basic/combobox.c + +examples\basic\example.exe: examples\basic\example.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\example.obj -lsrc\Mw.lib + +examples\basic\example.obj: examples/basic/example.c + $(CC) $(EXE_CFLAGS) -o$@ examples/basic/example.c + +examples\basic\filechooser.exe: examples\basic\filechooser.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\filechooser.obj -lsrc\Mw.lib + +examples\basic\filechooser.obj: examples/basic/filechooser.c + $(CC) $(EXE_CFLAGS) -o$@ examples/basic/filechooser.c + +examples\basic\image.exe: examples\basic\image.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\image.obj -lsrc\Mw.lib + +examples\basic\image.obj: examples/basic/image.c + $(CC) $(EXE_CFLAGS) -o$@ examples/basic/image.c + +examples\basic\listbox.exe: examples\basic\listbox.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\listbox.obj -lsrc\Mw.lib + +examples\basic\listbox.obj: examples/basic/listbox.c + $(CC) $(EXE_CFLAGS) -o$@ examples/basic/listbox.c + +examples\basic\messagebox.exe: examples\basic\messagebox.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\messagebox.obj -lsrc\Mw.lib + +examples\basic\messagebox.obj: examples/basic/messagebox.c + $(CC) $(EXE_CFLAGS) -o$@ examples/basic/messagebox.c + +examples\basic\periodic.exe: examples\basic\periodic.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\periodic.obj -lsrc\Mw.lib + +examples\basic\periodic.obj: examples/basic/periodic.c + $(CC) $(EXE_CFLAGS) -o$@ examples/basic/periodic.c + +examples\basic\progressbar.exe: examples\basic\progressbar.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\progressbar.obj -lsrc\Mw.lib + +examples\basic\progressbar.obj: examples/basic/progressbar.c + $(CC) $(EXE_CFLAGS) -o$@ examples/basic/progressbar.c + +examples\basic\radiobox.exe: examples\basic\radiobox.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\radiobox.obj -lsrc\Mw.lib + +examples\basic\radiobox.obj: examples/basic/radiobox.c + $(CC) $(EXE_CFLAGS) -o$@ examples/basic/radiobox.c + +examples\basic\rotate.exe: examples\basic\rotate.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\rotate.obj -lsrc\Mw.lib + +examples\basic\rotate.obj: examples/basic/rotate.c + $(CC) $(EXE_CFLAGS) -o$@ examples/basic/rotate.c + +examples\basic\scrollbar.exe: examples\basic\scrollbar.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\scrollbar.obj -lsrc\Mw.lib + +examples\basic\scrollbar.obj: examples/basic/scrollbar.c + $(CC) $(EXE_CFLAGS) -o$@ examples/basic/scrollbar.c + +examples\basic\sevensegment.exe: examples\basic\sevensegment.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\sevensegment.obj -lsrc\Mw.lib + +examples\basic\sevensegment.obj: examples/basic/sevensegment.c + $(CC) $(EXE_CFLAGS) -o$@ examples/basic/sevensegment.c + +examples\basic\subwindow.exe: examples\basic\subwindow.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\subwindow.obj -lsrc\Mw.lib + +examples\basic\subwindow.obj: examples/basic/subwindow.c + $(CC) $(EXE_CFLAGS) -o$@ examples/basic/subwindow.c + +examples\basic\treeview.exe: examples\basic\treeview.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\treeview.obj -lsrc\Mw.lib + +examples\basic\treeview.obj: examples/basic/treeview.c + $(CC) $(EXE_CFLAGS) -o$@ examples/basic/treeview.c + +examples\basic\viewport.exe: examples\basic\viewport.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\viewport.obj -lsrc\Mw.lib + +examples\basic\viewport.obj: examples/basic/viewport.c + $(CC) $(EXE_CFLAGS) -o$@ examples/basic/viewport.c + + +src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj + $(LD) $(MW_LDFLAGS) -e$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj -lopengl32.lib -lgdi32.lib -luser32.lib -ladvapi32.lib implib src\Mw.lib src\Mw.dll .c.obj: - $(CC) $(CFLAGS) -o$@ $< + $(CC) $(MW_CFLAGS) -o$@ $< diff --git a/NTMakefile b/NTMakefile index ead72f4d1..eef2b5047 100644 --- a/NTMakefile +++ b/NTMakefile @@ -1,10 +1,12 @@ CC = cl /TC /c /nologo LD = link /nologo -CFLAGS = /Iinclude /Iexternal\libz\include /D_MILSKO /DUSE_GDI /DUSE_STB_TRUETYPE /DUSE_STB_IMAGE /DSTBI_NO_SIMD -LDFLAGS = /DLL +MW_CFLAGS = /Iinclude /Iexternal\libz\include /D_MILSKO /DUSE_GDI /DUSE_STB_TRUETYPE /DUSE_STB_IMAGE /DSTBI_NO_SIMD +MW_LDFLAGS = /DLL +EXE_CFLAGS = /Iinclude +EXE_LDFLAGS = .SUFFIXES: .obj .c -all: src\Mw.dll +all: src\Mw.dll examples\basic\box.exe examples\basic\calculator.exe examples\basic\checkbox.exe examples\basic\clipboard.exe examples\basic\colorpicker.exe examples\basic\combobox.exe examples\basic\example.exe examples\basic\filechooser.exe examples\basic\image.exe examples\basic\listbox.exe examples\basic\messagebox.exe examples\basic\periodic.exe examples\basic\progressbar.exe examples\basic\radiobox.exe examples\basic\rotate.exe examples\basic\scrollbar.exe examples\basic\sevensegment.exe examples\basic\subwindow.exe examples\basic\treeview.exe examples\basic\viewport.exe clean: del /f /q external\libz\src\adler32.obj del /f /q external\libz\src\compress.obj @@ -72,6 +74,7 @@ clean: del /f /q src\unicode.obj del /f /q src\widget\box.obj del /f /q src\widget\button.obj + del /f /q src\widget\calendar.obj del /f /q src\widget\checkbox.obj del /f /q src\widget\combobox.obj del /f /q src\widget\entry.obj @@ -93,10 +96,171 @@ clean: del /f /q src\widget\window.obj del /f /q src\Mw.dll del /f /q src\Mw.lib + del /f /q examples\basic\box.obj + del /f /q examples\basic\calculator.obj + del /f /q examples\basic\checkbox.obj + del /f /q examples\basic\clipboard.obj + del /f /q examples\basic\colorpicker.obj + del /f /q examples\basic\combobox.obj + del /f /q examples\basic\example.obj + del /f /q examples\basic\filechooser.obj + del /f /q examples\basic\image.obj + del /f /q examples\basic\listbox.obj + del /f /q examples\basic\messagebox.obj + del /f /q examples\basic\periodic.obj + del /f /q examples\basic\progressbar.obj + del /f /q examples\basic\radiobox.obj + del /f /q examples\basic\rotate.obj + del /f /q examples\basic\scrollbar.obj + del /f /q examples\basic\sevensegment.obj + del /f /q examples\basic\subwindow.obj + del /f /q examples\basic\treeview.obj + del /f /q examples\basic\viewport.obj + del /f /q examples\basic\box.exe + del /f /q examples\basic\calculator.exe + del /f /q examples\basic\checkbox.exe + del /f /q examples\basic\clipboard.exe + del /f /q examples\basic\colorpicker.exe + del /f /q examples\basic\combobox.exe + del /f /q examples\basic\example.exe + del /f /q examples\basic\filechooser.exe + del /f /q examples\basic\image.exe + del /f /q examples\basic\listbox.exe + del /f /q examples\basic\messagebox.exe + del /f /q examples\basic\periodic.exe + del /f /q examples\basic\progressbar.exe + del /f /q examples\basic\radiobox.exe + del /f /q examples\basic\rotate.exe + del /f /q examples\basic\scrollbar.exe + del /f /q examples\basic\sevensegment.exe + del /f /q examples\basic\subwindow.exe + del /f /q examples\basic\treeview.exe + del /f /q examples\basic\viewport.exe -src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj - $(LD) $(LDFLAGS) /OUT:$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib user32.lib advapi32.lib +examples\basic\box.exe: examples\basic\box.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\box.obj src\Mw.lib + +examples\basic\box.obj: examples/basic/box.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/box.c + +examples\basic\calculator.exe: examples\basic\calculator.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\calculator.obj src\Mw.lib + +examples\basic\calculator.obj: examples/basic/calculator.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/calculator.c + +examples\basic\checkbox.exe: examples\basic\checkbox.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\checkbox.obj src\Mw.lib + +examples\basic\checkbox.obj: examples/basic/checkbox.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/checkbox.c + +examples\basic\clipboard.exe: examples\basic\clipboard.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\clipboard.obj src\Mw.lib + +examples\basic\clipboard.obj: examples/basic/clipboard.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/clipboard.c + +examples\basic\colorpicker.exe: examples\basic\colorpicker.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\colorpicker.obj src\Mw.lib + +examples\basic\colorpicker.obj: examples/basic/colorpicker.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/colorpicker.c + +examples\basic\combobox.exe: examples\basic\combobox.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\combobox.obj src\Mw.lib + +examples\basic\combobox.obj: examples/basic/combobox.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/combobox.c + +examples\basic\example.exe: examples\basic\example.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\example.obj src\Mw.lib + +examples\basic\example.obj: examples/basic/example.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/example.c + +examples\basic\filechooser.exe: examples\basic\filechooser.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\filechooser.obj src\Mw.lib + +examples\basic\filechooser.obj: examples/basic/filechooser.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/filechooser.c + +examples\basic\image.exe: examples\basic\image.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\image.obj src\Mw.lib + +examples\basic\image.obj: examples/basic/image.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/image.c + +examples\basic\listbox.exe: examples\basic\listbox.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\listbox.obj src\Mw.lib + +examples\basic\listbox.obj: examples/basic/listbox.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/listbox.c + +examples\basic\messagebox.exe: examples\basic\messagebox.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\messagebox.obj src\Mw.lib + +examples\basic\messagebox.obj: examples/basic/messagebox.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/messagebox.c + +examples\basic\periodic.exe: examples\basic\periodic.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\periodic.obj src\Mw.lib + +examples\basic\periodic.obj: examples/basic/periodic.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/periodic.c + +examples\basic\progressbar.exe: examples\basic\progressbar.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\progressbar.obj src\Mw.lib + +examples\basic\progressbar.obj: examples/basic/progressbar.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/progressbar.c + +examples\basic\radiobox.exe: examples\basic\radiobox.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\radiobox.obj src\Mw.lib + +examples\basic\radiobox.obj: examples/basic/radiobox.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/radiobox.c + +examples\basic\rotate.exe: examples\basic\rotate.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\rotate.obj src\Mw.lib + +examples\basic\rotate.obj: examples/basic/rotate.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/rotate.c + +examples\basic\scrollbar.exe: examples\basic\scrollbar.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\scrollbar.obj src\Mw.lib + +examples\basic\scrollbar.obj: examples/basic/scrollbar.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/scrollbar.c + +examples\basic\sevensegment.exe: examples\basic\sevensegment.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\sevensegment.obj src\Mw.lib + +examples\basic\sevensegment.obj: examples/basic/sevensegment.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/sevensegment.c + +examples\basic\subwindow.exe: examples\basic\subwindow.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\subwindow.obj src\Mw.lib + +examples\basic\subwindow.obj: examples/basic/subwindow.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/subwindow.c + +examples\basic\treeview.exe: examples\basic\treeview.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\treeview.obj src\Mw.lib + +examples\basic\treeview.obj: examples/basic/treeview.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/treeview.c + +examples\basic\viewport.exe: examples\basic\viewport.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\viewport.obj src\Mw.lib + +examples\basic\viewport.obj: examples/basic/viewport.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/viewport.c + + +src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj + $(LD) $(MW_LDFLAGS) /OUT:$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib user32.lib advapi32.lib .c.obj: - $(CC) $(CFLAGS) /Fo$@ $< + $(CC) $(MW_CFLAGS) /Fo$@ $< diff --git a/WatMakefile b/WatMakefile index 9141b9bba..fca7acd0d 100644 --- a/WatMakefile +++ b/WatMakefile @@ -1,9 +1,11 @@ -CC = wcc386 -bt=nt -q -bd +CC = wcc386 -bt=nt -q LD = wlink option quiet -CFLAGS = -i=include -i=external/libz/include -d_MILSKO -dUSE_GDI -dUSE_STB_TRUETYPE -dUSE_STB_IMAGE -dSTBI_NO_SIMD -LDFLAGS = system nt_dll -all: src/Mw.dll +MW_CFLAGS = -bd -i=include -i=external/libz/include -d_MILSKO -dUSE_GDI -dUSE_STB_TRUETYPE -dUSE_STB_IMAGE -dSTBI_NO_SIMD +MW_LDFLAGS = system nt_dll +EXE_CFLAGS = -i=include +EXE_LDFLAGS = system nt +all: src/Mw.dll examples/basic/box.exe examples/basic/calculator.exe examples/basic/checkbox.exe examples/basic/clipboard.exe examples/basic/colorpicker.exe examples/basic/combobox.exe examples/basic/example.exe examples/basic/filechooser.exe examples/basic/image.exe examples/basic/listbox.exe examples/basic/messagebox.exe examples/basic/periodic.exe examples/basic/progressbar.exe examples/basic/radiobox.exe examples/basic/rotate.exe examples/basic/scrollbar.exe examples/basic/sevensegment.exe examples/basic/subwindow.exe examples/basic/treeview.exe examples/basic/viewport.exe clean: .SYMBOLIC %erase external/libz/src/adler32.obj %erase external/libz/src/compress.obj @@ -71,6 +73,7 @@ clean: .SYMBOLIC %erase src/unicode.obj %erase src/widget/box.obj %erase src/widget/button.obj + %erase src/widget/calendar.obj %erase src/widget/checkbox.obj %erase src/widget/combobox.obj %erase src/widget/entry.obj @@ -92,179 +95,342 @@ clean: .SYMBOLIC %erase src/widget/window.obj %erase src/Mw.dll %erase src/Mw.lib + %erase examples/basic/box.obj + %erase examples/basic/calculator.obj + %erase examples/basic/checkbox.obj + %erase examples/basic/clipboard.obj + %erase examples/basic/colorpicker.obj + %erase examples/basic/combobox.obj + %erase examples/basic/example.obj + %erase examples/basic/filechooser.obj + %erase examples/basic/image.obj + %erase examples/basic/listbox.obj + %erase examples/basic/messagebox.obj + %erase examples/basic/periodic.obj + %erase examples/basic/progressbar.obj + %erase examples/basic/radiobox.obj + %erase examples/basic/rotate.obj + %erase examples/basic/scrollbar.obj + %erase examples/basic/sevensegment.obj + %erase examples/basic/subwindow.obj + %erase examples/basic/treeview.obj + %erase examples/basic/viewport.obj + %erase examples/basic/box.exe + %erase examples/basic/calculator.exe + %erase examples/basic/checkbox.exe + %erase examples/basic/clipboard.exe + %erase examples/basic/colorpicker.exe + %erase examples/basic/combobox.exe + %erase examples/basic/example.exe + %erase examples/basic/filechooser.exe + %erase examples/basic/image.exe + %erase examples/basic/listbox.exe + %erase examples/basic/messagebox.exe + %erase examples/basic/periodic.exe + %erase examples/basic/progressbar.exe + %erase examples/basic/radiobox.exe + %erase examples/basic/rotate.exe + %erase examples/basic/scrollbar.exe + %erase examples/basic/sevensegment.exe + %erase examples/basic/subwindow.exe + %erase examples/basic/treeview.exe + %erase examples/basic/viewport.exe -src/Mw.dll: external/libz/src/adler32.obj external/libz/src/compress.obj external/libz/src/crc32.obj external/libz/src/deflate.obj external/libz/src/gzclose.obj external/libz/src/gzlib.obj external/libz/src/gzread.obj external/libz/src/gzwrite.obj external/libz/src/infback.obj external/libz/src/inffast.obj external/libz/src/inflate.obj external/libz/src/inftrees.obj external/libz/src/trees.obj external/libz/src/uncompr.obj external/libz/src/zutil.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/charset.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text/font/boldfont.obj src/text/font/boldmonottf.obj src/text/font/boldttf.obj src/text/font/font.obj src/text/font/monottf.obj src/text/font/ttf.obj src/text/ft2.obj src/text/stbtt.obj src/text/text.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/subwindow.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj - $(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file external/libz/src/adler32.obj file external/libz/src/compress.obj file external/libz/src/crc32.obj file external/libz/src/deflate.obj file external/libz/src/gzclose.obj file external/libz/src/gzlib.obj file external/libz/src/gzread.obj file external/libz/src/gzwrite.obj file external/libz/src/infback.obj file external/libz/src/inffast.obj file external/libz/src/inflate.obj file external/libz/src/inftrees.obj file external/libz/src/trees.obj file external/libz/src/uncompr.obj file external/libz/src/zutil.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/charset.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/font/boldfont.obj file src/text/font/boldmonottf.obj file src/text/font/boldttf.obj file src/text/font/font.obj file src/text/font/monottf.obj file src/text/font/ttf.obj file src/text/ft2.obj file src/text/stbtt.obj file src/text/text.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/subwindow.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib library advapi32.lib +examples/basic/box.exe: examples/basic/box.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/box.obj library clib3r.lib library src/Mw.lib + +examples/basic/box.obj: examples/basic/box.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/box.c + +examples/basic/calculator.exe: examples/basic/calculator.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/calculator.obj library clib3r.lib library src/Mw.lib + +examples/basic/calculator.obj: examples/basic/calculator.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/calculator.c + +examples/basic/checkbox.exe: examples/basic/checkbox.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/checkbox.obj library clib3r.lib library src/Mw.lib + +examples/basic/checkbox.obj: examples/basic/checkbox.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/checkbox.c + +examples/basic/clipboard.exe: examples/basic/clipboard.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/clipboard.obj library clib3r.lib library src/Mw.lib + +examples/basic/clipboard.obj: examples/basic/clipboard.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/clipboard.c + +examples/basic/colorpicker.exe: examples/basic/colorpicker.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/colorpicker.obj library clib3r.lib library src/Mw.lib + +examples/basic/colorpicker.obj: examples/basic/colorpicker.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/colorpicker.c + +examples/basic/combobox.exe: examples/basic/combobox.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/combobox.obj library clib3r.lib library src/Mw.lib + +examples/basic/combobox.obj: examples/basic/combobox.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/combobox.c + +examples/basic/example.exe: examples/basic/example.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/example.obj library clib3r.lib library src/Mw.lib + +examples/basic/example.obj: examples/basic/example.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/example.c + +examples/basic/filechooser.exe: examples/basic/filechooser.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/filechooser.obj library clib3r.lib library src/Mw.lib + +examples/basic/filechooser.obj: examples/basic/filechooser.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/filechooser.c + +examples/basic/image.exe: examples/basic/image.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/image.obj library clib3r.lib library src/Mw.lib + +examples/basic/image.obj: examples/basic/image.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/image.c + +examples/basic/listbox.exe: examples/basic/listbox.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/listbox.obj library clib3r.lib library src/Mw.lib + +examples/basic/listbox.obj: examples/basic/listbox.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/listbox.c + +examples/basic/messagebox.exe: examples/basic/messagebox.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/messagebox.obj library clib3r.lib library src/Mw.lib + +examples/basic/messagebox.obj: examples/basic/messagebox.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/messagebox.c + +examples/basic/periodic.exe: examples/basic/periodic.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/periodic.obj library clib3r.lib library src/Mw.lib + +examples/basic/periodic.obj: examples/basic/periodic.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/periodic.c + +examples/basic/progressbar.exe: examples/basic/progressbar.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/progressbar.obj library clib3r.lib library src/Mw.lib + +examples/basic/progressbar.obj: examples/basic/progressbar.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/progressbar.c + +examples/basic/radiobox.exe: examples/basic/radiobox.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/radiobox.obj library clib3r.lib library src/Mw.lib + +examples/basic/radiobox.obj: examples/basic/radiobox.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/radiobox.c + +examples/basic/rotate.exe: examples/basic/rotate.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/rotate.obj library clib3r.lib library src/Mw.lib + +examples/basic/rotate.obj: examples/basic/rotate.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/rotate.c + +examples/basic/scrollbar.exe: examples/basic/scrollbar.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/scrollbar.obj library clib3r.lib library src/Mw.lib + +examples/basic/scrollbar.obj: examples/basic/scrollbar.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/scrollbar.c + +examples/basic/sevensegment.exe: examples/basic/sevensegment.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/sevensegment.obj library clib3r.lib library src/Mw.lib + +examples/basic/sevensegment.obj: examples/basic/sevensegment.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/sevensegment.c + +examples/basic/subwindow.exe: examples/basic/subwindow.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/subwindow.obj library clib3r.lib library src/Mw.lib + +examples/basic/subwindow.obj: examples/basic/subwindow.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/subwindow.c + +examples/basic/treeview.exe: examples/basic/treeview.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/treeview.obj library clib3r.lib library src/Mw.lib + +examples/basic/treeview.obj: examples/basic/treeview.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/treeview.c + +examples/basic/viewport.exe: examples/basic/viewport.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/viewport.obj library clib3r.lib library src/Mw.lib + +examples/basic/viewport.obj: examples/basic/viewport.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/viewport.c + + +src/Mw.dll: external/libz/src/adler32.obj external/libz/src/compress.obj external/libz/src/crc32.obj external/libz/src/deflate.obj external/libz/src/gzclose.obj external/libz/src/gzlib.obj external/libz/src/gzread.obj external/libz/src/gzwrite.obj external/libz/src/infback.obj external/libz/src/inffast.obj external/libz/src/inflate.obj external/libz/src/inftrees.obj external/libz/src/trees.obj external/libz/src/uncompr.obj external/libz/src/zutil.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/charset.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text/font/boldfont.obj src/text/font/boldmonottf.obj src/text/font/boldttf.obj src/text/font/font.obj src/text/font/monottf.obj src/text/font/ttf.obj src/text/ft2.obj src/text/stbtt.obj src/text/text.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/calendar.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/subwindow.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj + $(LD) $(MW_LDFLAGS) option implib=src/Mw.lib name $@ file external/libz/src/adler32.obj file external/libz/src/compress.obj file external/libz/src/crc32.obj file external/libz/src/deflate.obj file external/libz/src/gzclose.obj file external/libz/src/gzlib.obj file external/libz/src/gzread.obj file external/libz/src/gzwrite.obj file external/libz/src/infback.obj file external/libz/src/inffast.obj file external/libz/src/inflate.obj file external/libz/src/inftrees.obj file external/libz/src/trees.obj file external/libz/src/uncompr.obj file external/libz/src/zutil.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/charset.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/font/boldfont.obj file src/text/font/boldmonottf.obj file src/text/font/boldttf.obj file src/text/font/font.obj file src/text/font/monottf.obj file src/text/font/ttf.obj file src/text/ft2.obj file src/text/stbtt.obj file src/text/text.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/calendar.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/subwindow.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib library advapi32.lib external/libz/src/adler32.obj: external/libz/src/adler32.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ external/libz/src/adler32.c external/libz/src/compress.obj: external/libz/src/compress.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ external/libz/src/compress.c external/libz/src/crc32.obj: external/libz/src/crc32.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ external/libz/src/crc32.c external/libz/src/deflate.obj: external/libz/src/deflate.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ external/libz/src/deflate.c external/libz/src/gzclose.obj: external/libz/src/gzclose.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ external/libz/src/gzclose.c external/libz/src/gzlib.obj: external/libz/src/gzlib.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ external/libz/src/gzlib.c external/libz/src/gzread.obj: external/libz/src/gzread.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ external/libz/src/gzread.c external/libz/src/gzwrite.obj: external/libz/src/gzwrite.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ external/libz/src/gzwrite.c external/libz/src/infback.obj: external/libz/src/infback.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ external/libz/src/infback.c external/libz/src/inffast.obj: external/libz/src/inffast.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ external/libz/src/inffast.c external/libz/src/inflate.obj: external/libz/src/inflate.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ external/libz/src/inflate.c external/libz/src/inftrees.obj: external/libz/src/inftrees.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ external/libz/src/inftrees.c external/libz/src/trees.obj: external/libz/src/trees.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ external/libz/src/trees.c external/libz/src/uncompr.obj: external/libz/src/uncompr.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ external/libz/src/uncompr.c external/libz/src/zutil.obj: external/libz/src/zutil.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ external/libz/src/zutil.c external/stb_ds.obj: external/stb_ds.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ external/stb_ds.c external/stb_image.obj: external/stb_image.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ external/stb_image.c external/stb_truetype.obj: external/stb_truetype.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ external/stb_truetype.c src/abstract/charset.obj: src/abstract/charset.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/abstract/charset.c src/abstract/directory.obj: src/abstract/directory.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/abstract/directory.c src/abstract/dynamic.obj: src/abstract/dynamic.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/abstract/dynamic.c src/abstract/time.obj: src/abstract/time.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/abstract/time.c src/backend/gdi.obj: src/backend/gdi.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/backend/gdi.c src/color.obj: src/color.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/color.c src/core.obj: src/core.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/core.c src/cursor/arrow.obj: src/cursor/arrow.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/cursor/arrow.c src/cursor/cross.obj: src/cursor/cross.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/cursor/cross.c src/cursor/default.obj: src/cursor/default.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/cursor/default.c src/cursor/hidden.obj: src/cursor/hidden.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/cursor/hidden.c src/cursor/text.obj: src/cursor/text.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/cursor/text.c src/default.obj: src/default.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/default.c src/dialog/colorpicker.obj: src/dialog/colorpicker.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/dialog/colorpicker.c src/dialog/directorychooser.obj: src/dialog/directorychooser.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/dialog/directorychooser.c src/dialog/filechooser.obj: src/dialog/filechooser.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/dialog/filechooser.c src/dialog/messagebox.obj: src/dialog/messagebox.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/dialog/messagebox.c src/draw.obj: src/draw.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/draw.c src/icon/back.obj: src/icon/back.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/icon/back.c src/icon/clock.obj: src/icon/clock.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/icon/clock.c src/icon/computer.obj: src/icon/computer.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/icon/computer.c src/icon/directory.obj: src/icon/directory.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/icon/directory.c src/icon/down.obj: src/icon/down.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/icon/down.c src/icon/error.obj: src/icon/error.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/icon/error.c src/icon/file.obj: src/icon/file.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/icon/file.c src/icon/forward.obj: src/icon/forward.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/icon/forward.c src/icon/info.obj: src/icon/info.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/icon/info.c src/icon/left.obj: src/icon/left.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/icon/left.c src/icon/news.obj: src/icon/news.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/icon/news.c src/icon/note.obj: src/icon/note.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/icon/note.c src/icon/right.obj: src/icon/right.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/icon/right.c src/icon/search.obj: src/icon/search.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/icon/search.c src/icon/up.obj: src/icon/up.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/icon/up.c src/icon/warning.obj: src/icon/warning.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/icon/warning.c src/lowlevel.obj: src/lowlevel.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/lowlevel.c src/string.obj: src/string.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/string.c src/text/font/boldfont.obj: src/text/font/boldfont.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/text/font/boldfont.c src/text/font/boldmonottf.obj: src/text/font/boldmonottf.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/text/font/boldmonottf.c src/text/font/boldttf.obj: src/text/font/boldttf.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/text/font/boldttf.c src/text/font/font.obj: src/text/font/font.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/text/font/font.c src/text/font/monottf.obj: src/text/font/monottf.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/text/font/monottf.c src/text/font/ttf.obj: src/text/font/ttf.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/text/font/ttf.c src/text/ft2.obj: src/text/ft2.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/text/ft2.c src/text/stbtt.obj: src/text/stbtt.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/text/stbtt.c src/text/text.obj: src/text/text.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/text/text.c src/unicode.obj: src/unicode.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/unicode.c src/widget/box.obj: src/widget/box.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/box.c src/widget/button.obj: src/widget/button.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/button.c +src/widget/calendar.obj: src/widget/calendar.c + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/calendar.c src/widget/checkbox.obj: src/widget/checkbox.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/checkbox.c src/widget/combobox.obj: src/widget/combobox.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/combobox.c src/widget/entry.obj: src/widget/entry.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/entry.c src/widget/frame.obj: src/widget/frame.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/frame.c src/widget/image.obj: src/widget/image.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/image.c src/widget/label.obj: src/widget/label.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/label.c src/widget/listbox.obj: src/widget/listbox.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/listbox.c src/widget/menu.obj: src/widget/menu.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/menu.c src/widget/numberentry.obj: src/widget/numberentry.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/numberentry.c src/widget/opengl.obj: src/widget/opengl.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/opengl.c src/widget/progressbar.obj: src/widget/progressbar.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/progressbar.c src/widget/radiobox.obj: src/widget/radiobox.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/radiobox.c src/widget/scrollbar.obj: src/widget/scrollbar.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/scrollbar.c src/widget/separator.obj: src/widget/separator.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/separator.c src/widget/submenu.obj: src/widget/submenu.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/submenu.c src/widget/subwindow.obj: src/widget/subwindow.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/subwindow.c src/widget/treeview.obj: src/widget/treeview.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/treeview.c src/widget/viewport.obj: src/widget/viewport.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/viewport.c src/widget/window.obj: src/widget/window.c - $(CC) $(CFLAGS) -fo=$@ $< + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/window.c diff --git a/examples/basic/subwindow.c b/examples/basic/subwindow.c index c18efdf45..9625e1831 100644 --- a/examples/basic/subwindow.c +++ b/examples/basic/subwindow.c @@ -2,7 +2,7 @@ #define Shift 16 -static void resize(MwWidget handle, void* user, void* client) { +static void MWAPI resize(MwWidget handle, void* user, void* client) { MwWidget f = MwSubWindowGetFrame(handle); MwVaApply(user, MwNwidth, MwGetInteger(f, MwNwidth), diff --git a/tools/genmk.pl b/tools/genmk.pl index ae03d9f7e..0ac29a845 100755 --- a/tools/genmk.pl +++ b/tools/genmk.pl @@ -1,5 +1,6 @@ #!/usr/bin/env perl my @cfiles = (); +my @examples = (); sub scan { opendir(DIR, $_[0]); @@ -15,6 +16,17 @@ sub scan { closedir(DIR); } +sub scan_examples { + opendir(DIR, $_[0]); + my @files = readdir(DIR); + foreach my $f (@files) { + if ($f =~ /\.c$/) { + push(@examples, $_[0] . "/" . $f); + } + } + closedir(DIR); +} + sub cobjs { my $r = ""; foreach my $f (@cfiles) { @@ -39,9 +51,12 @@ sub generate { my $del = "del /f /q"; my $out = ""; my $dllout = ""; + my $exeout = ""; my $def = ""; my $inc = ""; + my $cdll = ""; my $dll = ""; + my $exe = ""; my $prefobj = ""; my $needlibs = ""; my $lib = ""; @@ -53,6 +68,7 @@ sub generate { $link = "bcc32"; $out = "-o"; $dllout = "-e"; + $exeout = "-e"; $def = "-D"; $inc = "-I"; $dll = "-tWD"; @@ -65,18 +81,22 @@ sub generate { $link = "link /nologo"; $out = "/Fo"; $dllout = "/OUT:"; + $exeout = "/OUT:"; $def = "/D"; $inc = "/I"; $dll = "/DLL"; } elsif ($type eq "Watcom") { - $cc = "wcc386 -bt=nt -q -bd"; + $cc = "wcc386 -bt=nt -q"; $link = "wlink option quiet"; $out = "-fo="; $dllout = "name "; + $exeout = "name "; $def = "-d"; $inc = "-i="; + $cdll = "-bd"; $dll = "system nt_dll"; + $exe = "system nt"; $lib = "library "; $suffix = 0; # watcom suffix rule works kinda strange @@ -93,15 +113,23 @@ sub generate { print(OUT "LD = $link\n"); print(OUT "\n"); print(OUT -"CFLAGS = ${inc}include ${inc}external${dir}libz${dir}include ${def}_MILSKO ${def}USE_GDI ${def}USE_STB_TRUETYPE ${def}USE_STB_IMAGE ${def}STBI_NO_SIMD\n" +"MW_CFLAGS = ${cdll} ${inc}include ${inc}external${dir}libz${dir}include ${def}_MILSKO ${def}USE_GDI ${def}USE_STB_TRUETYPE ${def}USE_STB_IMAGE ${def}STBI_NO_SIMD\n" ); - print(OUT "LDFLAGS = $dll"); + print(OUT "MW_LDFLAGS = $dll\n"); + print(OUT "EXE_CFLAGS = ${inc}include\n"); + print(OUT "EXE_LDFLAGS = $exe"); print(OUT "\n"); - if ($suffix) { print(OUT ".SUFFIXES: .obj .c\n"); } - print(OUT "all: src${dir}Mw.dll\n"); + print(OUT "all: src${dir}Mw.dll"); + foreach my $f (@examples) { + $b = $f; + $b =~ s/\.c$/.exe/; + $b =~ s/\//$dir/g; + print(OUT " $b"); + } + print(OUT "\n"); print(OUT "clean: $symbolic\n"); foreach my $f (@cfiles) { my $b = $f; @@ -109,17 +137,38 @@ sub generate { $b =~ s/\//$dir/g; print(OUT " $del $b\n"); } - foreach my $f (@cxxfiles) { + print(OUT " $del src${dir}Mw.dll\n"); + print(OUT " $del src${dir}Mw.lib\n"); + foreach my $f (@examples) { my $b = $f; $b =~ s/\.c$/.obj/; $b =~ s/\//$dir/g; print(OUT " $del $b\n"); } - print(OUT " $del src${dir}Mw.dll\n"); - print(OUT " $del src${dir}Mw.lib\n"); + foreach my $f (@examples) { + $b = $f; + $b =~ s/\.c$/.exe/; + $b =~ s/\//$dir/g; + print(OUT " $del $b\n"); + } + print(OUT "\n"); + foreach my $f (@examples) { + my $b = $f; + $b =~ s/\.c$/.exe/; + $b =~ s/\//$dir/g; + my $o = $f; + $o =~ s/\.c$/.obj/; + $o =~ s/\//$dir/g; + print(OUT "$b: $o src${dir}Mw.dll\n"); + print(OUT " \$(LD) \$(EXE_LDFLAGS) $exeout\$@ $prefobj$o $needlibs ${lib}src${dir}Mw.lib\n"); + print(OUT "\n"); + print(OUT "$o: $f\n"); + print(OUT " \$(CC) \$(EXE_CFLAGS) ${out}\$@ $f\n"); + print(OUT "\n"); + } print(OUT "\n"); print(OUT "src${dir}Mw.dll: " . cobjs($dir) . "\n"); - print( OUT " \$(LD) \$(LDFLAGS) $c_dllout $dllout\$@ " + print( OUT " \$(LD) \$(MW_LDFLAGS) $c_dllout $dllout\$@ " . cobjs($dir, $prefobj) . " $needlibs ${lib}opengl32.lib ${lib}gdi32.lib ${lib}user32.lib ${lib}advapi32.lib\n" ); @@ -128,7 +177,7 @@ sub generate { if ($suffix) { print(OUT ".c.obj:\n"); - print(OUT " \$(CC) \$(CFLAGS) ${out}\$@ \$<\n"); + print(OUT " \$(CC) \$(MW_CFLAGS) ${out}\$@ \$<\n"); } else { print(OUT "\n"); @@ -136,7 +185,7 @@ sub generate { my $o = $f; $o =~ s/\.c$/.obj/; print(OUT "$o: $f\n"); - print(OUT " \$(CC) \$(CFLAGS) ${out}\$@ \$<\n"); + print(OUT " \$(CC) \$(MW_CFLAGS) ${out}\$@ $f\n"); } } close(OUT); @@ -156,6 +205,10 @@ push(@cfiles, "src/backend/gdi.c"); @cfiles = sort(@cfiles); +scan_examples("examples/basic"); + +@examples = sort(@examples); + generate("BorMakefile", "Borland"); generate("NTMakefile", "MSVC"); generate("WatMakefile", "Watcom"); From 2dd2ae3f8546f403208822d3f70d4f32ad675e02 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 6 May 2026 04:27:55 +0900 Subject: [PATCH 667/836] gldemos too --- BorMakefile | 52 +++++++++++++++++++++++++++++++++++++++++++- NTMakefile | 52 +++++++++++++++++++++++++++++++++++++++++++- WatMakefile | 52 +++++++++++++++++++++++++++++++++++++++++++- tools/genmk.pl | 19 +++++++++++++++- tools/watcom-pack.sh | 15 +++---------- 5 files changed, 174 insertions(+), 16 deletions(-) diff --git a/BorMakefile b/BorMakefile index 3297b59de..086d95bf8 100644 --- a/BorMakefile +++ b/BorMakefile @@ -6,7 +6,9 @@ MW_LDFLAGS = -tWD EXE_CFLAGS = -Iinclude EXE_LDFLAGS = .SUFFIXES: .obj .c -all: src\Mw.dll examples\basic\box.exe examples\basic\calculator.exe examples\basic\checkbox.exe examples\basic\clipboard.exe examples\basic\colorpicker.exe examples\basic\combobox.exe examples\basic\example.exe examples\basic\filechooser.exe examples\basic\image.exe examples\basic\listbox.exe examples\basic\messagebox.exe examples\basic\periodic.exe examples\basic\progressbar.exe examples\basic\radiobox.exe examples\basic\rotate.exe examples\basic\scrollbar.exe examples\basic\sevensegment.exe examples\basic\subwindow.exe examples\basic\treeview.exe examples\basic\viewport.exe +all: src\Mw.dll examples\basic\box.exe examples\basic\calculator.exe examples\basic\checkbox.exe examples\basic\clipboard.exe examples\basic\colorpicker.exe examples\basic\combobox.exe examples\basic\example.exe examples\basic\filechooser.exe examples\basic\image.exe examples\basic\listbox.exe examples\basic\messagebox.exe examples\basic\periodic.exe examples\basic\progressbar.exe examples\basic\radiobox.exe examples\basic\rotate.exe examples\basic\scrollbar.exe examples\basic\sevensegment.exe examples\basic\subwindow.exe examples\basic\treeview.exe examples\basic\viewport.exe examples\gldemos\boing.exe examples\gldemos\clock.exe examples\gldemos\cube.exe examples\gldemos\gears.exe examples\gldemos\triangle.exe examples\gldemos\tripaint.exe +lib: src\Mw.dll +examples: examples\basic\box.exe examples\basic\calculator.exe examples\basic\checkbox.exe examples\basic\clipboard.exe examples\basic\colorpicker.exe examples\basic\combobox.exe examples\basic\example.exe examples\basic\filechooser.exe examples\basic\image.exe examples\basic\listbox.exe examples\basic\messagebox.exe examples\basic\periodic.exe examples\basic\progressbar.exe examples\basic\radiobox.exe examples\basic\rotate.exe examples\basic\scrollbar.exe examples\basic\sevensegment.exe examples\basic\subwindow.exe examples\basic\treeview.exe examples\basic\viewport.exe examples\gldemos\boing.exe examples\gldemos\clock.exe examples\gldemos\cube.exe examples\gldemos\gears.exe examples\gldemos\triangle.exe examples\gldemos\tripaint.exe clean: del /f /q external\libz\src\adler32.obj del /f /q external\libz\src\compress.obj @@ -116,6 +118,12 @@ clean: del /f /q examples\basic\subwindow.obj del /f /q examples\basic\treeview.obj del /f /q examples\basic\viewport.obj + del /f /q examples\gldemos\boing.obj + del /f /q examples\gldemos\clock.obj + del /f /q examples\gldemos\cube.obj + del /f /q examples\gldemos\gears.obj + del /f /q examples\gldemos\triangle.obj + del /f /q examples\gldemos\tripaint.obj del /f /q examples\basic\box.exe del /f /q examples\basic\calculator.exe del /f /q examples\basic\checkbox.exe @@ -136,6 +144,12 @@ clean: del /f /q examples\basic\subwindow.exe del /f /q examples\basic\treeview.exe del /f /q examples\basic\viewport.exe + del /f /q examples\gldemos\boing.exe + del /f /q examples\gldemos\clock.exe + del /f /q examples\gldemos\cube.exe + del /f /q examples\gldemos\gears.exe + del /f /q examples\gldemos\triangle.exe + del /f /q examples\gldemos\tripaint.exe examples\basic\box.exe: examples\basic\box.obj src\Mw.dll $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\box.obj -lsrc\Mw.lib @@ -257,6 +271,42 @@ examples\basic\viewport.exe: examples\basic\viewport.obj src\Mw.dll examples\basic\viewport.obj: examples/basic/viewport.c $(CC) $(EXE_CFLAGS) -o$@ examples/basic/viewport.c +examples\gldemos\boing.exe: examples\gldemos\boing.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\boing.obj -lsrc\Mw.lib + +examples\gldemos\boing.obj: examples/gldemos/boing.c + $(CC) $(EXE_CFLAGS) -o$@ examples/gldemos/boing.c + +examples\gldemos\clock.exe: examples\gldemos\clock.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\clock.obj -lsrc\Mw.lib + +examples\gldemos\clock.obj: examples/gldemos/clock.c + $(CC) $(EXE_CFLAGS) -o$@ examples/gldemos/clock.c + +examples\gldemos\cube.exe: examples\gldemos\cube.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\cube.obj -lsrc\Mw.lib + +examples\gldemos\cube.obj: examples/gldemos/cube.c + $(CC) $(EXE_CFLAGS) -o$@ examples/gldemos/cube.c + +examples\gldemos\gears.exe: examples\gldemos\gears.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\gears.obj -lsrc\Mw.lib + +examples\gldemos\gears.obj: examples/gldemos/gears.c + $(CC) $(EXE_CFLAGS) -o$@ examples/gldemos/gears.c + +examples\gldemos\triangle.exe: examples\gldemos\triangle.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\triangle.obj -lsrc\Mw.lib + +examples\gldemos\triangle.obj: examples/gldemos/triangle.c + $(CC) $(EXE_CFLAGS) -o$@ examples/gldemos/triangle.c + +examples\gldemos\tripaint.exe: examples\gldemos\tripaint.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\tripaint.obj -lsrc\Mw.lib + +examples\gldemos\tripaint.obj: examples/gldemos/tripaint.c + $(CC) $(EXE_CFLAGS) -o$@ examples/gldemos/tripaint.c + src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj $(LD) $(MW_LDFLAGS) -e$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj -lopengl32.lib -lgdi32.lib -luser32.lib -ladvapi32.lib diff --git a/NTMakefile b/NTMakefile index eef2b5047..c91c9d975 100644 --- a/NTMakefile +++ b/NTMakefile @@ -6,7 +6,9 @@ MW_LDFLAGS = /DLL EXE_CFLAGS = /Iinclude EXE_LDFLAGS = .SUFFIXES: .obj .c -all: src\Mw.dll examples\basic\box.exe examples\basic\calculator.exe examples\basic\checkbox.exe examples\basic\clipboard.exe examples\basic\colorpicker.exe examples\basic\combobox.exe examples\basic\example.exe examples\basic\filechooser.exe examples\basic\image.exe examples\basic\listbox.exe examples\basic\messagebox.exe examples\basic\periodic.exe examples\basic\progressbar.exe examples\basic\radiobox.exe examples\basic\rotate.exe examples\basic\scrollbar.exe examples\basic\sevensegment.exe examples\basic\subwindow.exe examples\basic\treeview.exe examples\basic\viewport.exe +all: src\Mw.dll examples\basic\box.exe examples\basic\calculator.exe examples\basic\checkbox.exe examples\basic\clipboard.exe examples\basic\colorpicker.exe examples\basic\combobox.exe examples\basic\example.exe examples\basic\filechooser.exe examples\basic\image.exe examples\basic\listbox.exe examples\basic\messagebox.exe examples\basic\periodic.exe examples\basic\progressbar.exe examples\basic\radiobox.exe examples\basic\rotate.exe examples\basic\scrollbar.exe examples\basic\sevensegment.exe examples\basic\subwindow.exe examples\basic\treeview.exe examples\basic\viewport.exe examples\gldemos\boing.exe examples\gldemos\clock.exe examples\gldemos\cube.exe examples\gldemos\gears.exe examples\gldemos\triangle.exe examples\gldemos\tripaint.exe +lib: src\Mw.dll +examples: examples\basic\box.exe examples\basic\calculator.exe examples\basic\checkbox.exe examples\basic\clipboard.exe examples\basic\colorpicker.exe examples\basic\combobox.exe examples\basic\example.exe examples\basic\filechooser.exe examples\basic\image.exe examples\basic\listbox.exe examples\basic\messagebox.exe examples\basic\periodic.exe examples\basic\progressbar.exe examples\basic\radiobox.exe examples\basic\rotate.exe examples\basic\scrollbar.exe examples\basic\sevensegment.exe examples\basic\subwindow.exe examples\basic\treeview.exe examples\basic\viewport.exe examples\gldemos\boing.exe examples\gldemos\clock.exe examples\gldemos\cube.exe examples\gldemos\gears.exe examples\gldemos\triangle.exe examples\gldemos\tripaint.exe clean: del /f /q external\libz\src\adler32.obj del /f /q external\libz\src\compress.obj @@ -116,6 +118,12 @@ clean: del /f /q examples\basic\subwindow.obj del /f /q examples\basic\treeview.obj del /f /q examples\basic\viewport.obj + del /f /q examples\gldemos\boing.obj + del /f /q examples\gldemos\clock.obj + del /f /q examples\gldemos\cube.obj + del /f /q examples\gldemos\gears.obj + del /f /q examples\gldemos\triangle.obj + del /f /q examples\gldemos\tripaint.obj del /f /q examples\basic\box.exe del /f /q examples\basic\calculator.exe del /f /q examples\basic\checkbox.exe @@ -136,6 +144,12 @@ clean: del /f /q examples\basic\subwindow.exe del /f /q examples\basic\treeview.exe del /f /q examples\basic\viewport.exe + del /f /q examples\gldemos\boing.exe + del /f /q examples\gldemos\clock.exe + del /f /q examples\gldemos\cube.exe + del /f /q examples\gldemos\gears.exe + del /f /q examples\gldemos\triangle.exe + del /f /q examples\gldemos\tripaint.exe examples\basic\box.exe: examples\basic\box.obj src\Mw.dll $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\box.obj src\Mw.lib @@ -257,6 +271,42 @@ examples\basic\viewport.exe: examples\basic\viewport.obj src\Mw.dll examples\basic\viewport.obj: examples/basic/viewport.c $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/viewport.c +examples\gldemos\boing.exe: examples\gldemos\boing.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\gldemos\boing.obj src\Mw.lib + +examples\gldemos\boing.obj: examples/gldemos/boing.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/gldemos/boing.c + +examples\gldemos\clock.exe: examples\gldemos\clock.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\gldemos\clock.obj src\Mw.lib + +examples\gldemos\clock.obj: examples/gldemos/clock.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/gldemos/clock.c + +examples\gldemos\cube.exe: examples\gldemos\cube.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\gldemos\cube.obj src\Mw.lib + +examples\gldemos\cube.obj: examples/gldemos/cube.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/gldemos/cube.c + +examples\gldemos\gears.exe: examples\gldemos\gears.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\gldemos\gears.obj src\Mw.lib + +examples\gldemos\gears.obj: examples/gldemos/gears.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/gldemos/gears.c + +examples\gldemos\triangle.exe: examples\gldemos\triangle.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\gldemos\triangle.obj src\Mw.lib + +examples\gldemos\triangle.obj: examples/gldemos/triangle.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/gldemos/triangle.c + +examples\gldemos\tripaint.exe: examples\gldemos\tripaint.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\gldemos\tripaint.obj src\Mw.lib + +examples\gldemos\tripaint.obj: examples/gldemos/tripaint.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/gldemos/tripaint.c + src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj $(LD) $(MW_LDFLAGS) /OUT:$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib user32.lib advapi32.lib diff --git a/WatMakefile b/WatMakefile index fca7acd0d..83bfa4871 100644 --- a/WatMakefile +++ b/WatMakefile @@ -5,7 +5,9 @@ MW_CFLAGS = -bd -i=include -i=external/libz/include -d_MILSKO -dUSE_GDI -dUSE_ST MW_LDFLAGS = system nt_dll EXE_CFLAGS = -i=include EXE_LDFLAGS = system nt -all: src/Mw.dll examples/basic/box.exe examples/basic/calculator.exe examples/basic/checkbox.exe examples/basic/clipboard.exe examples/basic/colorpicker.exe examples/basic/combobox.exe examples/basic/example.exe examples/basic/filechooser.exe examples/basic/image.exe examples/basic/listbox.exe examples/basic/messagebox.exe examples/basic/periodic.exe examples/basic/progressbar.exe examples/basic/radiobox.exe examples/basic/rotate.exe examples/basic/scrollbar.exe examples/basic/sevensegment.exe examples/basic/subwindow.exe examples/basic/treeview.exe examples/basic/viewport.exe +all: src/Mw.dll examples/basic/box.exe examples/basic/calculator.exe examples/basic/checkbox.exe examples/basic/clipboard.exe examples/basic/colorpicker.exe examples/basic/combobox.exe examples/basic/example.exe examples/basic/filechooser.exe examples/basic/image.exe examples/basic/listbox.exe examples/basic/messagebox.exe examples/basic/periodic.exe examples/basic/progressbar.exe examples/basic/radiobox.exe examples/basic/rotate.exe examples/basic/scrollbar.exe examples/basic/sevensegment.exe examples/basic/subwindow.exe examples/basic/treeview.exe examples/basic/viewport.exe examples/gldemos/boing.exe examples/gldemos/clock.exe examples/gldemos/cube.exe examples/gldemos/gears.exe examples/gldemos/triangle.exe examples/gldemos/tripaint.exe +lib: src/Mw.dll +examples: examples/basic/box.exe examples/basic/calculator.exe examples/basic/checkbox.exe examples/basic/clipboard.exe examples/basic/colorpicker.exe examples/basic/combobox.exe examples/basic/example.exe examples/basic/filechooser.exe examples/basic/image.exe examples/basic/listbox.exe examples/basic/messagebox.exe examples/basic/periodic.exe examples/basic/progressbar.exe examples/basic/radiobox.exe examples/basic/rotate.exe examples/basic/scrollbar.exe examples/basic/sevensegment.exe examples/basic/subwindow.exe examples/basic/treeview.exe examples/basic/viewport.exe examples/gldemos/boing.exe examples/gldemos/clock.exe examples/gldemos/cube.exe examples/gldemos/gears.exe examples/gldemos/triangle.exe examples/gldemos/tripaint.exe clean: .SYMBOLIC %erase external/libz/src/adler32.obj %erase external/libz/src/compress.obj @@ -115,6 +117,12 @@ clean: .SYMBOLIC %erase examples/basic/subwindow.obj %erase examples/basic/treeview.obj %erase examples/basic/viewport.obj + %erase examples/gldemos/boing.obj + %erase examples/gldemos/clock.obj + %erase examples/gldemos/cube.obj + %erase examples/gldemos/gears.obj + %erase examples/gldemos/triangle.obj + %erase examples/gldemos/tripaint.obj %erase examples/basic/box.exe %erase examples/basic/calculator.exe %erase examples/basic/checkbox.exe @@ -135,6 +143,12 @@ clean: .SYMBOLIC %erase examples/basic/subwindow.exe %erase examples/basic/treeview.exe %erase examples/basic/viewport.exe + %erase examples/gldemos/boing.exe + %erase examples/gldemos/clock.exe + %erase examples/gldemos/cube.exe + %erase examples/gldemos/gears.exe + %erase examples/gldemos/triangle.exe + %erase examples/gldemos/tripaint.exe examples/basic/box.exe: examples/basic/box.obj src/Mw.dll $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/box.obj library clib3r.lib library src/Mw.lib @@ -256,6 +270,42 @@ examples/basic/viewport.exe: examples/basic/viewport.obj src/Mw.dll examples/basic/viewport.obj: examples/basic/viewport.c $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/viewport.c +examples/gldemos/boing.exe: examples/gldemos/boing.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/gldemos/boing.obj library clib3r.lib library src/Mw.lib library opengl32.lib library glu32.lib + +examples/gldemos/boing.obj: examples/gldemos/boing.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/gldemos/boing.c + +examples/gldemos/clock.exe: examples/gldemos/clock.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/gldemos/clock.obj library clib3r.lib library src/Mw.lib library opengl32.lib library glu32.lib + +examples/gldemos/clock.obj: examples/gldemos/clock.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/gldemos/clock.c + +examples/gldemos/cube.exe: examples/gldemos/cube.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/gldemos/cube.obj library clib3r.lib library src/Mw.lib library opengl32.lib library glu32.lib + +examples/gldemos/cube.obj: examples/gldemos/cube.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/gldemos/cube.c + +examples/gldemos/gears.exe: examples/gldemos/gears.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/gldemos/gears.obj library clib3r.lib library src/Mw.lib library opengl32.lib library glu32.lib + +examples/gldemos/gears.obj: examples/gldemos/gears.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/gldemos/gears.c + +examples/gldemos/triangle.exe: examples/gldemos/triangle.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/gldemos/triangle.obj library clib3r.lib library src/Mw.lib library opengl32.lib library glu32.lib + +examples/gldemos/triangle.obj: examples/gldemos/triangle.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/gldemos/triangle.c + +examples/gldemos/tripaint.exe: examples/gldemos/tripaint.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/gldemos/tripaint.obj library clib3r.lib library src/Mw.lib library opengl32.lib library glu32.lib + +examples/gldemos/tripaint.obj: examples/gldemos/tripaint.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/gldemos/tripaint.c + src/Mw.dll: external/libz/src/adler32.obj external/libz/src/compress.obj external/libz/src/crc32.obj external/libz/src/deflate.obj external/libz/src/gzclose.obj external/libz/src/gzlib.obj external/libz/src/gzread.obj external/libz/src/gzwrite.obj external/libz/src/infback.obj external/libz/src/inffast.obj external/libz/src/inflate.obj external/libz/src/inftrees.obj external/libz/src/trees.obj external/libz/src/uncompr.obj external/libz/src/zutil.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/charset.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text/font/boldfont.obj src/text/font/boldmonottf.obj src/text/font/boldttf.obj src/text/font/font.obj src/text/font/monottf.obj src/text/font/ttf.obj src/text/ft2.obj src/text/stbtt.obj src/text/text.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/calendar.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/subwindow.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj $(LD) $(MW_LDFLAGS) option implib=src/Mw.lib name $@ file external/libz/src/adler32.obj file external/libz/src/compress.obj file external/libz/src/crc32.obj file external/libz/src/deflate.obj file external/libz/src/gzclose.obj file external/libz/src/gzlib.obj file external/libz/src/gzread.obj file external/libz/src/gzwrite.obj file external/libz/src/infback.obj file external/libz/src/inffast.obj file external/libz/src/inflate.obj file external/libz/src/inftrees.obj file external/libz/src/trees.obj file external/libz/src/uncompr.obj file external/libz/src/zutil.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/charset.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/font/boldfont.obj file src/text/font/boldmonottf.obj file src/text/font/boldttf.obj file src/text/font/font.obj file src/text/font/monottf.obj file src/text/font/ttf.obj file src/text/ft2.obj file src/text/stbtt.obj file src/text/text.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/calendar.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/subwindow.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib library advapi32.lib diff --git a/tools/genmk.pl b/tools/genmk.pl index 0ac29a845..614ef27a8 100755 --- a/tools/genmk.pl +++ b/tools/genmk.pl @@ -20,6 +20,9 @@ sub scan_examples { opendir(DIR, $_[0]); my @files = readdir(DIR); foreach my $f (@files) { + if ($f =~ /^glutlayer\.c$/) { + next; + } if ($f =~ /\.c$/) { push(@examples, $_[0] . "/" . $f); } @@ -130,6 +133,15 @@ sub generate { print(OUT " $b"); } print(OUT "\n"); + print(OUT "lib: src${dir}Mw.dll\n"); + print(OUT "examples:"); + foreach my $f (@examples) { + $b = $f; + $b =~ s/\.c$/.exe/; + $b =~ s/\//$dir/g; + print(OUT " $b"); + } + print(OUT "\n"); print(OUT "clean: $symbolic\n"); foreach my $f (@cfiles) { my $b = $f; @@ -160,7 +172,11 @@ sub generate { $o =~ s/\.c$/.obj/; $o =~ s/\//$dir/g; print(OUT "$b: $o src${dir}Mw.dll\n"); - print(OUT " \$(LD) \$(EXE_LDFLAGS) $exeout\$@ $prefobj$o $needlibs ${lib}src${dir}Mw.lib\n"); + print(OUT " \$(LD) \$(EXE_LDFLAGS) $exeout\$@ $prefobj$o $needlibs ${lib}src${dir}Mw.lib"); + if($f =~ /\Q${dir}gldemos${dir}\E/){ + print(OUT " ${lib}opengl32.lib ${lib}glu32.lib"); + } + print(OUT "\n"); print(OUT "\n"); print(OUT "$o: $f\n"); print(OUT " \$(CC) \$(EXE_CFLAGS) ${out}\$@ $f\n"); @@ -206,6 +222,7 @@ push(@cfiles, "src/backend/gdi.c"); @cfiles = sort(@cfiles); scan_examples("examples/basic"); +scan_examples("examples/gldemos"); @examples = sort(@examples); diff --git a/tools/watcom-pack.sh b/tools/watcom-pack.sh index 57885e0d4..e9bfb604e 100755 --- a/tools/watcom-pack.sh +++ b/tools/watcom-pack.sh @@ -4,19 +4,10 @@ wmake -f WatMakefile rm -rf milsko mkdir -p milsko-examples cp src/Mw.dll milsko-examples/ -cd examples/basic -for i in *.c; do - owcc -bnt -I../../include ../../src/Mw.lib -o../../milsko-examples/`echo $i | cut -d. -f1`.exe $i +cp examples/basic/*.exe milsko-examples/ +for i in examples/gldemos/*.exe; do + cp $i milsko-examples/gl`echo $i | rev | cut -d/ -f1 | rev` done -cd ../.. -cd examples/gldemos -for i in *.c; do - if [ "$i" = "glutlayer.c" ]; then - continue - fi - owcc -bnt -I../../include ../../src/Mw.lib -o../../milsko-examples/gl`echo $i | cut -d. -f1`.exe $i opengl32.lib glu32.lib -done -cd ../.. rm -f milsko-examples.zip cp resource/logo/logo.png examples/picture.jpg examples/picture.png milsko-examples/ zip -rv milsko-examples.zip milsko-examples From bcc4766e5fb9e2c7f31d247d170152b382035c3c Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 6 May 2026 04:28:23 +0900 Subject: [PATCH 668/836] format --- examples/vkdemos/vulkan.c | 4 ++-- src/backend/haiku.cc | 6 +++--- src/widget/listbox.c | 6 +++--- src/widget/scrollbar.c | 6 +++--- tools/genmk.pl | 18 +++++++++++------- 5 files changed, 22 insertions(+), 18 deletions(-) diff --git a/examples/vkdemos/vulkan.c b/examples/vkdemos/vulkan.c index 9dfa311eb..2d03030e9 100644 --- a/examples/vkdemos/vulkan.c +++ b/examples/vkdemos/vulkan.c @@ -264,8 +264,8 @@ void vulkan_setup(MwWidget handle) { swapchainCreateInfo.imageExtent = (VkExtent2D){.width = ow, .height = oh}, swapchainCreateInfo.imageArrayLayers = 1, swapchainCreateInfo.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | - VK_IMAGE_USAGE_TRANSFER_DST_BIT | - VK_IMAGE_USAGE_SAMPLED_BIT; + VK_IMAGE_USAGE_TRANSFER_DST_BIT | + VK_IMAGE_USAGE_SAMPLED_BIT; // th is how we specify no transformation. swapchainCreateInfo.preTransform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; swapchainCreateInfo.compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR; diff --git a/src/backend/haiku.cc b/src/backend/haiku.cc index 3bd96745e..84ec62e10 100644 --- a/src/backend/haiku.cc +++ b/src/backend/haiku.cc @@ -703,7 +703,7 @@ void MwLLNextEventImpl(MwLL handle) { } MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) { - MwLLPixmap r = (MwLLPixmap)malloc(sizeof(*r)); + MwLLPixmap r = (MwLLPixmap)malloc(sizeof(*r)); (void)handle; @@ -803,9 +803,9 @@ void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) { } void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { - if(toggle){ + if(toggle) { handle->haiku.type = B_TITLED_WINDOW; - }else{ + } else { handle->haiku.type = B_UNTYPED_WINDOW; } } diff --git a/src/widget/listbox.c b/src/widget/listbox.c index 9ef2cb57f..72fa74391 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -420,8 +420,8 @@ static void redrawIfNeeded(MwWidget handle, int row) { static int mwListBoxSetImpl(MwWidget handle, int row, int col, const char* text) { MwListBox lb = handle->internal; MwListBoxEntry entry; - char* t = text == NULL ? NULL : MwStringDuplicate(text); - int new = 0; + char* t = text == NULL ? NULL : MwStringDuplicate(text); + int new = 0; if(row == -1) row = arrlen(lb->list); entry.name = NULL; @@ -449,7 +449,7 @@ static int mwListBoxSetImpl(MwWidget handle, int row, int col, const char* text) static void mwListBoxSetIconImpl(MwWidget handle, int index, MwLLPixmap icon) { MwListBox lb = handle->internal; MwListBoxEntry entry; - int new = 0; + int new = 0; if(index == -1) index = arrlen(lb->list); entry.name = NULL; diff --git a/src/widget/scrollbar.c b/src/widget/scrollbar.c index 17f38fdc2..98a050d9c 100644 --- a/src/widget/scrollbar.c +++ b/src/widget/scrollbar.c @@ -58,9 +58,9 @@ static void draw(MwWidget handle) { MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); MwLLColor dark = MwLightenColor(handle, base, -64, -64, -64); MwScrollBar scr = handle->internal; - int or; - int uy, dy, ux, dx; - MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); + int or ; + int uy, dy, ux, dx; + MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); r.x = 0; r.y = 0; diff --git a/tools/genmk.pl b/tools/genmk.pl index 614ef27a8..c33edb8d3 100755 --- a/tools/genmk.pl +++ b/tools/genmk.pl @@ -1,5 +1,5 @@ #!/usr/bin/env perl -my @cfiles = (); +my @cfiles = (); my @examples = (); sub scan { @@ -97,7 +97,7 @@ sub generate { $exeout = "name "; $def = "-d"; $inc = "-i="; - $cdll = "-bd"; + $cdll = "-bd"; $dll = "system nt_dll"; $exe = "system nt"; $lib = "library "; @@ -122,6 +122,7 @@ sub generate { print(OUT "EXE_CFLAGS = ${inc}include\n"); print(OUT "EXE_LDFLAGS = $exe"); print(OUT "\n"); + if ($suffix) { print(OUT ".SUFFIXES: .obj .c\n"); } @@ -172,11 +173,14 @@ sub generate { $o =~ s/\.c$/.obj/; $o =~ s/\//$dir/g; print(OUT "$b: $o src${dir}Mw.dll\n"); - print(OUT " \$(LD) \$(EXE_LDFLAGS) $exeout\$@ $prefobj$o $needlibs ${lib}src${dir}Mw.lib"); - if($f =~ /\Q${dir}gldemos${dir}\E/){ - print(OUT " ${lib}opengl32.lib ${lib}glu32.lib"); - } - print(OUT "\n"); + print(OUT +" \$(LD) \$(EXE_LDFLAGS) $exeout\$@ $prefobj$o $needlibs ${lib}src${dir}Mw.lib" + ); + + if ($f =~ /\Q${dir}gldemos${dir}\E/) { + print(OUT " ${lib}opengl32.lib ${lib}glu32.lib"); + } + print(OUT "\n"); print(OUT "\n"); print(OUT "$o: $f\n"); print(OUT " \$(CC) \$(EXE_CFLAGS) ${out}\$@ $f\n"); From 7f667189fc91cf5ee3cf48e656e77c8c777f4a34 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 6 May 2026 04:33:48 +0900 Subject: [PATCH 669/836] oops --- BorMakefile | 12 ++++++------ NTMakefile | 12 ++++++------ tools/genmk.pl | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/BorMakefile b/BorMakefile index 086d95bf8..a51c995ae 100644 --- a/BorMakefile +++ b/BorMakefile @@ -272,37 +272,37 @@ examples\basic\viewport.obj: examples/basic/viewport.c $(CC) $(EXE_CFLAGS) -o$@ examples/basic/viewport.c examples\gldemos\boing.exe: examples\gldemos\boing.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\boing.obj -lsrc\Mw.lib + $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\boing.obj -lsrc\Mw.lib -lopengl32.lib -lglu32.lib examples\gldemos\boing.obj: examples/gldemos/boing.c $(CC) $(EXE_CFLAGS) -o$@ examples/gldemos/boing.c examples\gldemos\clock.exe: examples\gldemos\clock.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\clock.obj -lsrc\Mw.lib + $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\clock.obj -lsrc\Mw.lib -lopengl32.lib -lglu32.lib examples\gldemos\clock.obj: examples/gldemos/clock.c $(CC) $(EXE_CFLAGS) -o$@ examples/gldemos/clock.c examples\gldemos\cube.exe: examples\gldemos\cube.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\cube.obj -lsrc\Mw.lib + $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\cube.obj -lsrc\Mw.lib -lopengl32.lib -lglu32.lib examples\gldemos\cube.obj: examples/gldemos/cube.c $(CC) $(EXE_CFLAGS) -o$@ examples/gldemos/cube.c examples\gldemos\gears.exe: examples\gldemos\gears.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\gears.obj -lsrc\Mw.lib + $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\gears.obj -lsrc\Mw.lib -lopengl32.lib -lglu32.lib examples\gldemos\gears.obj: examples/gldemos/gears.c $(CC) $(EXE_CFLAGS) -o$@ examples/gldemos/gears.c examples\gldemos\triangle.exe: examples\gldemos\triangle.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\triangle.obj -lsrc\Mw.lib + $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\triangle.obj -lsrc\Mw.lib -lopengl32.lib -lglu32.lib examples\gldemos\triangle.obj: examples/gldemos/triangle.c $(CC) $(EXE_CFLAGS) -o$@ examples/gldemos/triangle.c examples\gldemos\tripaint.exe: examples\gldemos\tripaint.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\tripaint.obj -lsrc\Mw.lib + $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\tripaint.obj -lsrc\Mw.lib -lopengl32.lib -lglu32.lib examples\gldemos\tripaint.obj: examples/gldemos/tripaint.c $(CC) $(EXE_CFLAGS) -o$@ examples/gldemos/tripaint.c diff --git a/NTMakefile b/NTMakefile index c91c9d975..cf57f0b1e 100644 --- a/NTMakefile +++ b/NTMakefile @@ -272,37 +272,37 @@ examples\basic\viewport.obj: examples/basic/viewport.c $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/viewport.c examples\gldemos\boing.exe: examples\gldemos\boing.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\gldemos\boing.obj src\Mw.lib + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\gldemos\boing.obj src\Mw.lib opengl32.lib glu32.lib examples\gldemos\boing.obj: examples/gldemos/boing.c $(CC) $(EXE_CFLAGS) /Fo$@ examples/gldemos/boing.c examples\gldemos\clock.exe: examples\gldemos\clock.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\gldemos\clock.obj src\Mw.lib + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\gldemos\clock.obj src\Mw.lib opengl32.lib glu32.lib examples\gldemos\clock.obj: examples/gldemos/clock.c $(CC) $(EXE_CFLAGS) /Fo$@ examples/gldemos/clock.c examples\gldemos\cube.exe: examples\gldemos\cube.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\gldemos\cube.obj src\Mw.lib + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\gldemos\cube.obj src\Mw.lib opengl32.lib glu32.lib examples\gldemos\cube.obj: examples/gldemos/cube.c $(CC) $(EXE_CFLAGS) /Fo$@ examples/gldemos/cube.c examples\gldemos\gears.exe: examples\gldemos\gears.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\gldemos\gears.obj src\Mw.lib + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\gldemos\gears.obj src\Mw.lib opengl32.lib glu32.lib examples\gldemos\gears.obj: examples/gldemos/gears.c $(CC) $(EXE_CFLAGS) /Fo$@ examples/gldemos/gears.c examples\gldemos\triangle.exe: examples\gldemos\triangle.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\gldemos\triangle.obj src\Mw.lib + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\gldemos\triangle.obj src\Mw.lib opengl32.lib glu32.lib examples\gldemos\triangle.obj: examples/gldemos/triangle.c $(CC) $(EXE_CFLAGS) /Fo$@ examples/gldemos/triangle.c examples\gldemos\tripaint.exe: examples\gldemos\tripaint.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\gldemos\tripaint.obj src\Mw.lib + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\gldemos\tripaint.obj src\Mw.lib opengl32.lib glu32.lib examples\gldemos\tripaint.obj: examples/gldemos/tripaint.c $(CC) $(EXE_CFLAGS) /Fo$@ examples/gldemos/tripaint.c diff --git a/tools/genmk.pl b/tools/genmk.pl index c33edb8d3..d0a47282b 100755 --- a/tools/genmk.pl +++ b/tools/genmk.pl @@ -177,7 +177,7 @@ sub generate { " \$(LD) \$(EXE_LDFLAGS) $exeout\$@ $prefobj$o $needlibs ${lib}src${dir}Mw.lib" ); - if ($f =~ /\Q${dir}gldemos${dir}\E/) { + if ($f =~ /gldemos/) { print(OUT " ${lib}opengl32.lib ${lib}glu32.lib"); } print(OUT "\n"); From 00c069b96acb9008e6141f1d9a80d01f859cb3ef Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 6 May 2026 04:36:34 +0900 Subject: [PATCH 670/836] test watcom too --- Jenkinsfile | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 89ca744a3..659cbf34a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -29,9 +29,8 @@ pipeline { label "built-in" } steps { - sh("rm -f *.so") + sh("git clean -dfx") sh("./configure --enable-opengl --enable-vulkan --without-vulkan-string-helper") - sh("make clean") sh("make -j4") sh("mv src/libMw.so libMw64.so") archiveArtifacts("libMw64.so") @@ -42,9 +41,8 @@ pipeline { label "built-in" } steps { - sh("rm -f *.dll *.dll.a") + sh("git clean -dfx") sh("./configure --enable-opengl --enable-stb-truetype --disable-freetype2 --cross --target=Windows --host=i686-w64-mingw32") - sh("make clean") sh("make -j4") sh("mv src/Mw.dll Mw32.dll") sh("mv src/libMw.dll.a libMw32.dll.a") @@ -56,9 +54,8 @@ pipeline { label "built-in" } steps { - sh("rm -f *.dll *.dll.a") + sh("git clean -dfx") sh("./configure --enable-opengl --enable-stb-truetype --disable-freetype2 --cross --target=Windows --host=x86_64-w64-mingw32") - sh("make clean") sh("make -j4") sh("mv src/Mw.dll Mw64.dll") sh("mv src/libMw.dll.a libMw64.dll.a") @@ -70,14 +67,33 @@ pipeline { label "2012r2" } steps { - bat("del /s *.dll *.lib") - bat("nmake -f NTMakefile clean") + bat("git clean -dfx") bat("nmake -f NTMakefile") bat("move /y src\\Mw.dll MwMSVC32.dll") bat("move /y src\\Mw.lib MwMSVC32.lib") archiveArtifacts("MwMSVC32.dll,MwMSVC32.lib") } } + stage("Build for Windows 32-bit (MSVC)") { + agent { + label "built-in" + } + environment { + WATCOM = "/usr/watcom" + INCLUDE = "/usr/watcom/h:/usr/watcom/h/nt" + PATH = "/usr/watcom/binl64:${env.PATH}" + } + steps { + sh("git clean -dfx") + sh("wmake -f WatMakefile") + sh("mv src/Mw.dll MwWat32.dll") + sh("mv src/Mw.lib MwWat32.lib") + archiveArtifacts("MwWat32.dll,MwWat32.lib") + sh("./tools/watcom-pack.sh") + sh("mv milsko-examples.zip milsko-examples-win32.zip") + archiveArtifacts("milsko-examples-win32.zip") + } + } } post { always { From 4dc670850d9e840ca883fd5693e03ce2e594f980 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 6 May 2026 04:39:53 +0900 Subject: [PATCH 671/836] fix --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 659cbf34a..6c1637e8c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -74,7 +74,7 @@ pipeline { archiveArtifacts("MwMSVC32.dll,MwMSVC32.lib") } } - stage("Build for Windows 32-bit (MSVC)") { + stage("Build for Windows 32-bit (Watcom)") { agent { label "built-in" } From 6db3d839451feffd9122ea20e468db8c1b882abc Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 6 May 2026 04:53:24 +0900 Subject: [PATCH 672/836] j --- examples/basic/subwindow.c | 1 + src/core.c | 2 +- src/widget/subwindow.c | 21 ++++++++++++++++++--- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/examples/basic/subwindow.c b/examples/basic/subwindow.c index 9625e1831..93145923d 100644 --- a/examples/basic/subwindow.c +++ b/examples/basic/subwindow.c @@ -36,6 +36,7 @@ int main() { sw = MwVaCreateWidget(MwSubWindowClass, "swnd", w, i * Shift, i * Shift, 128, 128, MwNtitle, buf, + MwNiconPixmap, px[rand() % 6], NULL); f = MwSubWindowGetFrame(sw); diff --git a/src/core.c b/src/core.c index d0341e020..d30f53894 100644 --- a/src/core.c +++ b/src/core.c @@ -622,7 +622,7 @@ void MwSetText(MwWidget handle, const char* key, const char* value) { } void MwSetVoid(MwWidget handle, const char* key, void* value) { - if(strcmp(key, MwNiconPixmap) == 0) { + if(IsFirstVisible(handle) && strcmp(key, MwNiconPixmap) == 0) { MwLLSetIcon(handle->lowlevel, value); } else if(strcmp(key, MwNsizeHints) == 0) { MwSizeHints* sz = value; diff --git a/src/widget/subwindow.c b/src/widget/subwindow.c index 9f86cd006..3a9b427f7 100644 --- a/src/widget/subwindow.c +++ b/src/widget/subwindow.c @@ -290,8 +290,10 @@ static void draw(MwWidget handle) { MwLLColor c = MwParseColor(handle, MwGetText(handle, MwNbackground)); MwLLColor tb = MwParseColor(handle, MwGetText(handle, MwNtitleBackground)); MwLLColor tf = MwParseColor(handle, MwGetText(handle, MwNtitleForeground)); - MwRect r, r2; + MwRect r, r2, r3; const char* title = MwGetText(handle, MwNtitle); + int incr = 0; + MwLLPixmap px = MwGetVoid(handle, MwNiconPixmap); r.x = 0; r.y = 0; @@ -305,9 +307,22 @@ static void draw(MwWidget handle) { r2.height = TitleHeight; MwDrawRect(handle, &r2, tb); + if(px != NULL) { + r3 = r2; + incr = (TitleHeight - ButtonSize) / 2; + + r3.x += incr; + r3.y += incr; + r3.width = ButtonSize; + r3.height = ButtonSize; + MwLLDrawPixmap(handle->lowlevel, &r3, px); + + incr += ButtonSize; + } + if(title != NULL) { MwPoint p; - p.x = r2.x + (TitleHeight - ButtonSize) / 2; + p.x = r2.x + (TitleHeight - ButtonSize) / 2 + incr; p.y = r2.y + TitleHeight / 2; handle->bgcolor = tb; MwDrawText(handle, NULL, &p, title, MwALIGNMENT_BEGINNING, tf); @@ -343,7 +358,7 @@ static void parent_resize(MwWidget handle) { } static void prop_change(MwWidget handle, const char* key) { - if(strcmp(key, MwNtitle) == 0) MwForceRender(handle); + if(strcmp(key, MwNtitle) == 0 || strcmp(key, MwNiconPixmap) == 0) MwForceRender(handle); } static MwWidget mwSubWindowGetFrameImpl(MwWidget handle) { From f45b679be30ba58604c130b803c8a5ff2e643967 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 6 May 2026 06:10:45 +0900 Subject: [PATCH 673/836] stuff --- README.txt | 2 +- examples/basic/periodic.c | 1 + include/Mw/LowLevel.h | 1 + include/Mw/StringDefs.h | 2 + include/Mw/Version.h | 6 +- milsko.xml | 4 + src/text/text.c | 17 +++- src/widget/calendar.c | 183 +++++++++++++++++++++++++++++++++++--- 8 files changed, 196 insertions(+), 20 deletions(-) diff --git a/README.txt b/README.txt index 296194fde..3a73a7413 100644 --- a/README.txt +++ b/README.txt @@ -1,5 +1,5 @@ -Greetings - Welcome to the Milsko GUI Toolkit (Version 1.0a) +Greetings - Welcome to the Milsko GUI Toolkit (Version 1.1) This document contains a brief summary of the contents of this source distributions and building instructions for Milsko GUI Toolkit. diff --git a/examples/basic/periodic.c b/examples/basic/periodic.c index 24a886fbc..3b9c9a262 100644 --- a/examples/basic/periodic.c +++ b/examples/basic/periodic.c @@ -267,6 +267,7 @@ int main() { } f = frame("Calendar", -PaddingContent, -PaddingContent, MwCalendarClass, + MwNscale, 1, NULL); add(f); diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 494e4cdcd..d35a23bcf 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -215,6 +215,7 @@ struct _MwLLTextDispatchTable { #define MwFLFlagMonospace (1 << 0) #define MwFLFlagBold (1 << 1) +#define MwFLFlagBitmap (1 << 2) #define MwFLBuildFont(x) ((MwFLFont)(void*)(size_t)(x)) #ifdef __cplusplus diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index ccf86dcb3..e33f2d313 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -43,10 +43,12 @@ #define MwNdarkTheme "IdarkTheme" #define MwNuseMonospace "IuseMonospace" #define MwNdarkThemeAutomatic "IdarkThemeAutomatic" +#define MwNyear "Iyear" #define MwNmonth "Imonth" #define MwNdate "Idate" #define MwNday "Iday" #define MwNwaitLayout "IwaitLayout" +#define MwNscale "Iscale" #define MwNtitle "Stitle" #define MwNtext "Stext" diff --git a/include/Mw/Version.h b/include/Mw/Version.h index f1c1090a9..2a121eb62 100644 --- a/include/Mw/Version.h +++ b/include/Mw/Version.h @@ -13,17 +13,17 @@ /*! * @brief Minor version */ -#define MwMINOR 0 +#define MwMINOR 1 /*! * @brief Patchlevel of version, calculated by `patchlevel_alphabet - 'a'` */ -#define MwPATCH 1 +#define MwPATCH 0 /*! * @brief Version in string */ -#define MwVERSION "1.0a" +#define MwVERSION "1.1" /*! * @brief Version in string diff --git a/milsko.xml b/milsko.xml index 2247af6d5..1dec01fc9 100644 --- a/milsko.xml +++ b/milsko.xml @@ -97,10 +97,12 @@ + + @@ -634,9 +636,11 @@ + + diff --git a/src/text/text.c b/src/text/text.c index ac60ca6c9..f2d83a286 100644 --- a/src/text/text.c +++ b/src/text/text.c @@ -42,6 +42,17 @@ static int is_bold(MwWidget handle, MwFLFont ttf) { } #ifdef TTF +static int is_bitmap(MwWidget handle, MwFLFont ttf) { + size_t u = (size_t)ttf; + int s; + + if(u & MwFLFlagBitmap) return 1; + + s = MwGetInteger(handle, MwNbitmapFont); + if(s == MwDEFAULT) return 0; + return s; +} + static int is_monospace(MwWidget handle, MwFLFont ttf) { size_t u = (size_t)ttf; int s; @@ -57,7 +68,7 @@ static int is_monospace(MwWidget handle, MwFLFont ttf) { #ifdef TTF static MwFLFont assume_ttf(MwWidget handle, MwFLFont ttf) { - if(MwGetInteger(handle, MwNbitmapFont)) return NULL; + if(is_bitmap(handle, ttf)) return NULL; if(is_monospace(handle, ttf)) return is_bold(handle, ttf) ? MwGetVoid(handle, MwNboldMonospaceFont) : MwGetVoid(handle, MwNmonospaceFont); return is_bold(handle, ttf) ? MwGetVoid(handle, MwNboldFont) : MwGetVoid(handle, MwNfont); @@ -71,7 +82,7 @@ void MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, int cp; #ifdef TTF - if(!MwGetInteger(handle, MwNbitmapFont) && ttf <= MwFLBuildFont(0xff)) ttf = assume_ttf(handle, ttf); + if(ttf <= MwFLBuildFont(0xff) && !is_bitmap(handle, ttf)) ttf = assume_ttf(handle, ttf); #endif p.y -= (MwTextHeight(handle, ttf, text) - (MwTextHeight(handle, ttf, text) / count_nl(text))) / 2; @@ -111,7 +122,7 @@ void MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, #ifdef TTF if(MwFLDrawText) - if(MwGetInteger(handle, MwNbitmapFont) || ttf == NULL || MwFLDrawText(handle, ttf, &p, line, color)) + if(is_bitmap(handle, ttf) || ttf == NULL || MwFLDrawText(handle, ttf, &p, line, color)) #endif bitmap_MwDrawText(handle, &p, line, is_bold(handle, ttf), color); diff --git a/src/widget/calendar.c b/src/widget/calendar.c index 84f5d4b7f..6e5d3b641 100644 --- a/src/widget/calendar.c +++ b/src/widget/calendar.c @@ -1,26 +1,120 @@ #include +static unsigned int font[] = { + 0x00000000, 0x00401084, 0x0000014a, 0x00afabea, 0x01fa7cbf, 0x01111111, + 0x0126c8a2, 0x00000084, 0x00821088, 0x00221082, 0x015711d5, 0x00427c84, + 0x00220000, 0x00007c00, 0x00400000, 0x00111110, 0x00e9d72e, 0x00421084, + 0x01f2222e, 0x00e8b22e, 0x008fa54c, 0x01f87c3f, 0x00e8bc2e, 0x0042221f, + 0x00e8ba2e, 0x00e87a2e, 0x00020080, 0x00220080, 0x00820888, 0x000f83e0, + 0x00222082, 0x0042222e, 0x00ead72e, 0x011fc544, 0x00f8be2f, 0x00e8862e, + 0x00f8c62f, 0x01f0fc3f, 0x0010bc3f, 0x00e8e42e, 0x0118fe31, 0x00e2108e, + 0x00e8c210, 0x01149d31, 0x01f08421, 0x0118d771, 0x011cd671, 0x00e8c62e, + 0x0010be2f, 0x01ecc62e, 0x0114be2f, 0x00f8383e, 0x0042109f, 0x00e8c631, + 0x00454631, 0x00aad6b5, 0x01151151, 0x00421151, 0x01f1111f, 0x00e1084e, + 0x01041041, 0x00e4210e, 0x00000144, 0x01f00000, 0x00000082, 0x0164a4c0, + 0x00749c20, 0x00e085c0, 0x00e4b908, 0x0060bd26, 0x0042388c, 0x00c8724c, + 0x00a51842, 0x00420080, 0x00621004, 0x00a32842, 0x00421086, 0x015ab800, + 0x00949800, 0x0064a4c0, 0x0013a4c0, 0x008724c0, 0x00108da0, 0x0064104c, + 0x00c23880, 0x0164a520, 0x00452800, 0x00aad400, 0x00a22800, 0x00111140, + 0x00e221c0, 0x00c2088c, 0x00421084, 0x00622086, 0x000022a2}; + static int wcreate(MwWidget handle) { MwSetDefault(handle); + MwSetInteger(handle, MwNyear, 1970); MwSetInteger(handle, MwNmonth, 0); MwSetInteger(handle, MwNdate, 1); MwSetInteger(handle, MwNday, 3); + MwSetInteger(handle, MwNscale, 1); return 0; } +static MwLLPixmap blit(MwWidget handle, const char* str, MwLLColor bg, MwLLColor fg, int scale) { + int i; + unsigned char* buf; + MwLLPixmap px; + int w = (5 * strlen(str) + (strlen(str) - 1)) * scale; + int h = 5 * scale; + int y, x, s; + int r, g, b; + + MwColorGet(bg, &r, &g, &b); + + buf = malloc(w * h * 4); + for(i = 0; i < w * h; i++) { + buf[4 * i + 0] = r; + buf[4 * i + 1] = g; + buf[4 * i + 2] = b; + buf[4 * i + 3] = 255; + } + + MwColorGet(fg, &r, &g, &b); + + for(y = 0; y < h; y++) { + for(i = 0; str[i] != 0; i++) { + unsigned int n = font[str[i] - 0x20]; + + n = n >> (5 * (y / scale)); + + for(x = 0; x < 5; x++) { + for(s = 0; s < scale; s++) { + if(n & 1) { + unsigned char* opx = &buf[(y * w + i * (6 * scale) + x * scale + s) * 4]; + + opx[0] = r; + opx[1] = g; + opx[2] = b; + opx[3] = 255; + } + } + + n = n >> 1; + } + } + } + + px = MwLoadRaw(handle, buf, w, h); + + free(buf); + + return px; +} + static void draw(MwWidget handle) { - MwLLColor c = MwParseColor(handle, MwGetText(handle, MwNbackground)); - MwLLColor cb = MwParseColor(handle, "#fff"); - MwLLColor cb_g = MwParseColor(handle, "#666"); - MwLLColor ct = MwParseColor(handle, "#000"); - MwRect r, r2, r3; - MwPoint p[4]; - int h = 64; - int pw = h / 16; /* parallelogram width */ - int ph = pw * 3; /* parallelogram height */ - int gh = h / 32; /* gray area height */ - char buf[3]; + MwLLColor c = MwParseColor(handle, MwGetText(handle, MwNbackground)); + MwLLColor cb = MwParseColor(handle, "#fff"); + MwLLColor cb_g = MwParseColor(handle, "#666"); + MwLLColor ct = MwParseColor(handle, "#000"); + MwRect r, r2, r3; + MwPoint p[6]; + int h = 32 * MwGetInteger(handle, MwNscale); + int pw = h / 16; /* parallelogram width */ + int ph = pw * 3; /* parallelogram height */ + int gh = h / 32; /* gray area height */ + int sh = gh * 5 + gh * 2; /* shift height for year */ + char buf[5]; + const char* months[] = { + "JAN", + "FEB", + "MAR", + "APR", + "MAY", + "JUN", + "JUL", + "AUG", + "SEP", + "OCT", + "NOV", + "DEC"}; + const char* days[] = { + "SUN", + "MON", + "TUE", + "WED", + "THU", + "FRI", + "SAT"}; + MwLLPixmap px; r.x = 0; r.y = 0; @@ -28,10 +122,38 @@ static void draw(MwWidget handle) { r.height = MwGetInteger(handle, MwNheight); MwDrawRect(handle, &r, c); + p[0].x = (r.width - h) / 2; + p[0].y = (r.height - h - sh) / 2; + p[1].x = p[0].x; + p[1].y = p[0].y + h + gh; + p[2].x = p[1].x + gh * 3; + p[2].y = p[1].y + gh * 3; + p[3].x = p[1].x + h + gh * 7; + p[3].y = p[2].y; + p[4].x = p[3].x; + p[4].y = p[0].y + gh * 7; + p[5].x = p[0].x + h; + p[5].y = p[0].y; + MwLLPolygon(handle->lowlevel, p, 6, cb_g); + + p[0].x = (r.width - h) / 2; + p[0].y = (r.height - h - sh) / 2; + p[1].x = p[0].x; + p[1].y = p[0].y + h + gh; + p[2].x = p[1].x + gh * 2; + p[2].y = p[1].y + gh * 2; + p[3].x = p[1].x + h + gh * 3; + p[3].y = p[2].y; + p[4].x = p[3].x; + p[4].y = p[0].y + gh * 3; + p[5].x = p[0].x + h; + p[5].y = p[0].y; + MwLLPolygon(handle->lowlevel, p, 6, ct); + r2.width = h; r2.height = h - ph - gh; r2.x = (r.width - r2.width) / 2; - r2.y = (r.height - r2.height - ph - gh) / 2; + r2.y = (r.height - r2.height - ph - gh - sh) / 2; MwDrawRect(handle, &r2, cb); r3.x = r2.x; @@ -40,6 +162,10 @@ static void draw(MwWidget handle) { r3.height = ph + gh; MwDrawRect(handle, &r3, cb_g); + r3.y += r3.height; + r3.height = gh; + MwDrawRect(handle, &r3, cb); + p[0].x = r2.x; p[0].y = r2.y + r2.height; p[1].x = r2.x - pw; @@ -51,10 +177,41 @@ static void draw(MwWidget handle) { MwLLPolygon(handle->lowlevel, p, 4, cb); p[0].x = r.width / 2; - p[0].y = r.height / 2; + p[0].y = (r.height - sh) / 2; sprintf(buf, "%d", MwGetInteger(handle, MwNdate)); MwDrawText(handle, MwFLBuildFont(MwFLFlagBold), p, buf, MwALIGNMENT_CENTER, ct); + r3 = r2; + + px = blit(handle, days[MwGetInteger(handle, MwNday)], cb, ct, gh); + r2 = r3; + r2.width = px->common.width; + r2.height = px->common.height; + r2.x = (r.width - r2.width) / 2; + r2.y = r2.y + gh * 2; + MwLLDrawPixmap(handle->lowlevel, &r2, px); + MwLLDestroyPixmap(px); + + px = blit(handle, months[MwGetInteger(handle, MwNmonth)], cb, ct, gh); + r2 = r3; + r2.width = px->common.width; + r2.height = px->common.height; + r2.x = (r.width - r2.width) / 2; + r2.y = r2.y + h - gh * 2 - r2.height; + MwLLDrawPixmap(handle->lowlevel, &r2, px); + MwLLDestroyPixmap(px); + + sprintf(buf, "%d", MwGetInteger(handle, MwNyear)); + + px = blit(handle, buf, c, ct, gh); + r2 = r3; + r2.width = px->common.width; + r2.height = px->common.height; + r2.x = (r.width - r2.width) / 2; + r2.y = r2.y + h + gh * 6; + MwLLDrawPixmap(handle->lowlevel, &r2, px); + MwLLDestroyPixmap(px); + MwLLFreeColor(ct); MwLLFreeColor(cb_g); MwLLFreeColor(cb); From 8a59ee840b78238cead2a94d0bffc2599f9aabeb Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 6 May 2026 06:27:16 +0900 Subject: [PATCH 674/836] update xml --- milsko.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/milsko.xml b/milsko.xml index 1dec01fc9..fe2bf028e 100644 --- a/milsko.xml +++ b/milsko.xml @@ -899,6 +899,9 @@ + + + From daced7a8974a1fb9b8b8758cf2c50ff0896226ac Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 5 May 2026 18:10:48 -0700 Subject: [PATCH 675/836] wayland: whatever it works on kde --- include/Mw/LowLevel/Wayland.h | 1 + src/backend/wayland/interfaces.c | 40 ++++++++++++++++---------------- src/backend/wayland/region.c | 1 + src/backend/wayland/wayland.c | 36 ++++++++++++++++++++++------ 4 files changed, 51 insertions(+), 27 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index fdcc0a2f1..3babbafce 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -437,6 +437,7 @@ struct _MwLLWayland { enum _MwLLWaylandType type_to_be; MwRect clipping_rect; + MwBool no; MwBool detatching; MwPoint detach_point; diff --git a/src/backend/wayland/interfaces.c b/src/backend/wayland/interfaces.c index e3828453c..b9f089b50 100644 --- a/src/backend/wayland/interfaces.c +++ b/src/backend/wayland/interfaces.c @@ -400,12 +400,12 @@ static void pointer_enter(void* data, struct wl_pointer* wl_pointer, MwU32 seria WAYLAND_EVENT_OP_START(self); while(topmost_parent->wayland.parent) topmost_parent = topmost_parent->wayland.parent; - curSurface = surface; - - self->wayland.pointer_serial = serial; - - wl_pointer_set_cursor(self->wayland.pointer, self->wayland.pointer_serial, topmost_parent->wayland.cursor.surface, 0, 0); + if(self->wayland.framebuffer.surface == surface) { + curSurface = surface; + self->wayland.pointer_serial = serial; + wl_pointer_set_cursor(self->wayland.pointer, self->wayland.pointer_serial, topmost_parent->wayland.cursor.surface, 0, 0); + } WAYLAND_EVENT_OP_END(self); }; @@ -506,14 +506,6 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time currentlyHeldWidget = topmost_parent->wayland.currentlyHeldWidget; - if(currentlyHeldWidget) { - currentlyHeldWidget->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); - currentlyHeldWidget->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); - p.point = currentlyHeldWidget->wayland.cur_mouse_pos; - MwLLDispatch(currentlyHeldWidget, move, &p); - h = MwTRUE; - } - if(self->wayland.framebuffer.surface) { inArea |= self->wayland.framebuffer.surface == curSurface; } @@ -521,15 +513,23 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time if(self->wayland.backbuffer.surface) { inArea |= self->wayland.backbuffer.surface == curSurface; } + + if(currentlyHeldWidget) { + currentlyHeldWidget->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); + currentlyHeldWidget->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); + p.point = currentlyHeldWidget->wayland.cur_mouse_pos; + MwLLDispatch(currentlyHeldWidget, down, &p); + h = MwTRUE; + } + if(inArea) { - if(h) { - self->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); - self->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); - p.point = self->wayland.cur_mouse_pos; - MwLLDispatch(self, move, &p); - } + self->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); + self->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); + p.point = self->wayland.cur_mouse_pos; + MwLLDispatch(self, move, &p); wl_pointer_set_cursor(self->wayland.pointer, self->wayland.pointer_serial, self->wayland.cursor.surface, 0, 0); } + WAYLAND_EVENT_OP_END(self); }; @@ -998,7 +998,7 @@ static wayland_protocol_t* xdg_wm_base_setup(MwU32 name, struct _MwLLWayland* wa ((struct xdg_wm_base_listener*)proto->listener)->ping = xdg_wm_base_ping; - proto->context = wl_registry_bind(wayland->registry, name, &xdg_wm_base_interface, 1); + proto->context = wl_registry_bind(wayland->registry, name, &xdg_wm_base_interface, 3); xdg_wm_base_add_listener(proto->context, proto->listener, wayland); return proto; diff --git a/src/backend/wayland/region.c b/src/backend/wayland/region.c index 4527d8e6d..8bd5337cf 100644 --- a/src/backend/wayland/region.c +++ b/src/backend/wayland/region.c @@ -23,6 +23,7 @@ void MwLLWaylandRegionSetup(MwLL handle) { } else { wl_region_subtract(handle->wayland.region, 0, 0, width + abs(handle->wayland.x), height + abs(handle->wayland.y)); wl_region_add(handle->wayland.region, handle->wayland.clipping_rect.x, handle->wayland.clipping_rect.y, handle->wayland.clipping_rect.width, handle->wayland.clipping_rect.height); + if(!handle->wayland.parent) wl_region_add(handle->wayland.region, 0, 0, width, height); } diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 971121097..f3fc3498d 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -225,10 +225,12 @@ static void xdg_surface_configure( void MwLLWaylandBufferUpdate(MwLL self, struct _MwLLWaylandShmBuffer* buffer) { memcpy(buffer->buf, buffer->buf_back, buffer->buf_size); - // Yes this is needed every time, it's how we fix weston. - if(self->wayland.configured) - wl_surface_attach(buffer->surface, buffer->shm_buffer, 0, 0); - wl_surface_commit(buffer->surface); + if(buffer->surface) { + // Yes this is needed every time, it's how we fix weston. + if(self->wayland.configured) + wl_surface_attach(buffer->surface, buffer->shm_buffer, 0, 0); + wl_surface_commit(buffer->surface); + } } /* Toplevel setup function */ @@ -418,9 +420,19 @@ static void popup_done(void* data, (void)xdg_popup; }; +static void popup_repositioned(void* data, + struct xdg_popup* xdg_popup, + uint32_t token) { + MwLL self = data; + + xdg_surface_ack_configure(self->wayland.popup->xdg_surface, token); +}; + struct xdg_popup_listener popup_listener = { - .configure = popup_configure, - .popup_done = popup_done, + .configure = popup_configure, + .popup_done = popup_done, + .repositioned = popup_repositioned, + }; /* Popup setup function */ @@ -483,6 +495,8 @@ static void setup_popup(MwLL r, int x, int y, MwLL parent) { xdg_surface, r->wayland.popup->xdg_positioner); + uint32_t ver = wl_proxy_get_version((struct wl_proxy*)r->wayland.popup->xdg_popup); + xdg_popup_add_listener(r->wayland.popup->xdg_popup, &popup_listener, r); r->wayland.popup->xdg_surface_listener.configure = xdg_surface_configure; @@ -797,9 +811,16 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL) { wl_subsurface_set_position(handle->wayland.sublevel->subsurface, x, y); } + + if(handle->wayland.type == MwLL_WAYLAND_POPUP) { + xdg_positioner_set_anchor_rect(handle->wayland.popup->xdg_positioner, handle->wayland.parent->wayland.x, handle->wayland.parent->wayland.y, handle->wayland.ww, handle->wayland.wh); + xdg_positioner_set_offset(handle->wayland.popup->xdg_positioner, x, y); + xdg_popup_reposition(handle->wayland.popup->xdg_popup, handle->wayland.popup->xdg_positioner, 0); + xdg_surface_set_window_geometry(handle->wayland.popup->xdg_surface, 0, 0, handle->wayland.ww, handle->wayland.wh); + } MwLLWaylandRegionSetup(handle); - if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL) recursive_render(handle); + if(handle->wayland.type != MwLL_WAYLAND_TOPLEVEL) recursive_render(handle); MwLLDispatch(handle, draw, NULL); } @@ -1469,6 +1490,7 @@ static void MwLLMakeToolWindowImpl(MwLL handle) { static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { MwLL topmost_parent = handle; + WIDGET_CHECK(handle); while(topmost_parent->wayland.parent) topmost_parent = topmost_parent->wayland.parent; From 5c74e6551680bc951a5e53ea62ed1ce5f150d2af Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 5 May 2026 18:30:09 -0700 Subject: [PATCH 676/836] wayland: yeah this is just fucked --- include/Mw/LowLevel/Wayland.h | 2 ++ src/backend/wayland/interfaces.c | 15 ++++++--------- src/widget/subwindow.c | 4 ++++ 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 3babbafce..d6474bbb1 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -562,6 +562,8 @@ struct _MwLLWayland { cairo_t* back_cairo; /* The cairo to actually use for draw operations. Typically is front_cairo, but MwLLBeginDraw can change this to the back_cairo so it can be used to draw window decorations. */ cairo_t* selected_cairo; + + MwBool is_subwindow; }; struct _MwLLWaylandColor { diff --git a/src/backend/wayland/interfaces.c b/src/backend/wayland/interfaces.c index b9f089b50..427be52c5 100644 --- a/src/backend/wayland/interfaces.c +++ b/src/backend/wayland/interfaces.c @@ -495,7 +495,6 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time MwLL topmost_parent = self; MwMouse p; MwBool inArea = MwFALSE; - MwBool h = MwFALSE; MwLL currentlyHeldWidget = NULL; (void)time; @@ -514,20 +513,18 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time inArea |= self->wayland.backbuffer.surface == curSurface; } - if(currentlyHeldWidget) { - currentlyHeldWidget->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); - currentlyHeldWidget->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); - p.point = currentlyHeldWidget->wayland.cur_mouse_pos; - MwLLDispatch(currentlyHeldWidget, down, &p); - h = MwTRUE; - } - if(inArea) { self->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); self->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); p.point = self->wayland.cur_mouse_pos; MwLLDispatch(self, move, &p); + wl_pointer_set_cursor(self->wayland.pointer, self->wayland.pointer_serial, self->wayland.cursor.surface, 0, 0); + } else if(currentlyHeldWidget == self) { + currentlyHeldWidget->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); + currentlyHeldWidget->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); + p.point = currentlyHeldWidget->wayland.cur_mouse_pos; + MwLLDispatch(currentlyHeldWidget, move, &p); } WAYLAND_EVENT_OP_END(self); diff --git a/src/widget/subwindow.c b/src/widget/subwindow.c index 3a9b427f7..a8dcbb936 100644 --- a/src/widget/subwindow.c +++ b/src/widget/subwindow.c @@ -279,6 +279,10 @@ static int wcreate(MwWidget handle) { MwSetDefault(handle); + if(handle->lowlevel->common.type == MwLLBackendWayland) { + handle->lowlevel->wayland.is_subwindow = MwTRUE; + } + return 0; } From 0550e74b9838d755aa09c88a7e9e423e733399ed Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 5 May 2026 18:34:06 -0700 Subject: [PATCH 677/836] fix --- include/Mw/LowLevel/Wayland.h | 1 - src/widget/subwindow.c | 3 --- 2 files changed, 4 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index d6474bbb1..0916e244c 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -563,7 +563,6 @@ struct _MwLLWayland { /* The cairo to actually use for draw operations. Typically is front_cairo, but MwLLBeginDraw can change this to the back_cairo so it can be used to draw window decorations. */ cairo_t* selected_cairo; - MwBool is_subwindow; }; struct _MwLLWaylandColor { diff --git a/src/widget/subwindow.c b/src/widget/subwindow.c index a8dcbb936..e2ad237ee 100644 --- a/src/widget/subwindow.c +++ b/src/widget/subwindow.c @@ -279,9 +279,6 @@ static int wcreate(MwWidget handle) { MwSetDefault(handle); - if(handle->lowlevel->common.type == MwLLBackendWayland) { - handle->lowlevel->wayland.is_subwindow = MwTRUE; - } return 0; } From 801c5e03d47e4a7fc2b940f1e4ca596b62c1ecff Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 5 May 2026 19:04:19 -0700 Subject: [PATCH 678/836] fix opengl wayland flicklering --- src/backend/wayland/interfaces.c | 6 +++++- src/backend/wayland/wayland.c | 5 ----- src/core.c | 1 + 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/backend/wayland/interfaces.c b/src/backend/wayland/interfaces.c index 427be52c5..d7565fd24 100644 --- a/src/backend/wayland/interfaces.c +++ b/src/backend/wayland/interfaces.c @@ -783,7 +783,11 @@ static void keyboard_key(void* data, if(key != -1) { if(state == WL_KEYBOARD_KEY_STATE_PRESSED) { - MwLLDispatch(self, key, &key); + MwLL topmost_parent = self; + while(topmost_parent->wayland.parent) { + MwLLDispatch(topmost_parent, key, &key); + topmost_parent = topmost_parent->wayland.parent; + } } else { MwLLDispatch(self, key_released, &key); } diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index f3fc3498d..449e34301 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -1108,11 +1108,6 @@ static int MwLLPendingImpl(MwLL handle) { if((pending = wl_display_dispatch_pending(handle->wayland.display)) < 0) { wl_display_cancel_read(handle->wayland.display); } - } - - if(MwWaylandAlwaysRender) { - handle->wayland.did_event_loop_early = MwTRUE; - event_loop(handle); return pending; } diff --git a/src/core.c b/src/core.c index d30f53894..2a7b5797b 100644 --- a/src/core.c +++ b/src/core.c @@ -870,6 +870,7 @@ void MwDispatchUserHandler(MwWidget handle, const char* key, void* handler_data) int ind = shgeti(handle->handler, key); int p = handle->prop_event; int i; + if(ind == -1) return; if(handle->destroyed) return; From ee5e04c64e7361b5ac0f53794be5a814dac735a5 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 5 May 2026 19:19:58 -0700 Subject: [PATCH 679/836] wayland: apply full region to 1st-level children --- src/backend/wayland/region.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/backend/wayland/region.c b/src/backend/wayland/region.c index 8bd5337cf..207fa5922 100644 --- a/src/backend/wayland/region.c +++ b/src/backend/wayland/region.c @@ -26,6 +26,11 @@ void MwLLWaylandRegionSetup(MwLL handle) { if(!handle->wayland.parent) wl_region_add(handle->wayland.region, 0, 0, width, height); + else { + if(!handle->wayland.parent->wayland.parent) { + wl_region_add(handle->wayland.region, 0, 0, width, height); + } + } } if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { From 97778752ec6bc1c355fcd1a3074766dd87de7908 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 5 May 2026 23:57:07 -0700 Subject: [PATCH 680/836] wayland: have the opengl widget use gbm instead of wl_egl, removing its need for MwWaylandAlwaysRender --- src/widget/opengl.c | 206 +++++++++++++++++++++++++++++++++----------- 1 file changed, 154 insertions(+), 52 deletions(-) diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 53374b811..2012a4753 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -1,3 +1,4 @@ +#include #ifndef __APPLE__ #include @@ -55,16 +56,23 @@ typedef struct x11opengl { #ifdef USE_WAYLAND #include #include +#include +typedef void* EGLLabelKHR; typedef struct waylandopengl { - EGLNativeWindowType egl_window_native; EGLDisplay egl_display; EGLContext egl_context; EGLSurface egl_surface; EGLConfig egl_config; + struct gbm_device* gbm; + struct gbm_surface* gbm_surface; + struct gbm_bo* previous_bo; + int drm_fd; + MwLLPixmap frontbuffer; + MwU8* frontbuffer_data; void* gllib; - void* wlgllib; + void* gbmlib; EGLBoolean (*eglGetConfigs)(EGLDisplay display, EGLConfig* configs, EGLint config_size, @@ -88,21 +96,35 @@ typedef struct waylandopengl { EGLint (*eglGetError)(void); EGLBoolean (*eglBindAPI)(EGLenum api); EGLDisplay (*eglGetDisplay)(NativeDisplayType native_display); - EGLSurface (*eglCreateWindowSurface)(EGLDisplay display, - EGLConfig config, - NativeWindowType native_window, - EGLint const* attrib_list); + EGLDisplay (*eglGetPlatformDisplay)(EGLenum platform, void* native_display, const EGLAttrib* attrib_list); + EGLSurface (*eglCreatePlatformWindowSurface)(EGLDisplay display, + EGLConfig config, + void* native_window, + EGLint const* attrib_list); EGLBoolean (*eglChooseConfig)(EGLDisplay display, EGLint const* attrib_list, EGLConfig* configs, EGLint config_size, EGLint* num_config); + EGLBoolean (*eglGetConfigAttrib)(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint* value); struct wl_egl_window* (*wl_egl_window_create)(struct wl_surface* surface, int width, int height); void (*wl_egl_window_resize)(struct wl_egl_window* egl_window, int width, int height, int dx, int dy); + struct gbm_device* (*gbm_create_device)(int fd); + struct gbm_surface* (*gbm_surface_create)(struct gbm_device* gbm, uint32_t width, uint32_t height, uint32_t format, uint32_t flags); + + struct gbm_bo* (*gbm_surface_lock_front_buffer)(struct gbm_surface* surface); + union gbm_bo_handle (*gbm_bo_get_handle)(struct gbm_bo* bo); + uint32_t (*gbm_bo_get_stride)(struct gbm_bo* bo); + uint32_t (*gbm_bo_get_width)(struct gbm_bo* bo); + uint32_t (*gbm_bo_get_height)(struct gbm_bo* bo); + void (*gbm_surface_release_buffer)(struct gbm_surface* surface, struct gbm_bo* bo); + void* (*gbm_bo_map)(struct gbm_bo* bo, uint32_t x, uint32_t y, uint32_t width, uint32_t height, uint32_t flags, uint32_t* stride, void** map_data); + void (*gbm_bo_unmap)(struct gbm_bo* bo, void* map_data); + } waylandopengl_t; #endif @@ -190,6 +212,7 @@ static int wcreate(MwWidget handle) { #ifdef USE_WAYLAND if(handle->lowlevel->common.type == MwLLBackendWayland) { EGLint numConfigs; + EGLint numConfigsMatched; EGLint majorVersion; EGLint minorVersion; EGLContext context; @@ -197,7 +220,7 @@ static int wcreate(MwWidget handle) { EGLint fbAttribs[] = {EGL_SURFACE_TYPE, EGL_WINDOW_BIT, EGL_RENDERABLE_TYPE, - EGL_OPENGL_ES2_BIT, + EGL_OPENGL_BIT, EGL_RED_SIZE, 8, EGL_GREEN_SIZE, @@ -206,8 +229,6 @@ static int wcreate(MwWidget handle) { 8, EGL_DEPTH_SIZE, 24, - EGL_RENDERABLE_TYPE, - EGL_OPENGL_BIT, EGL_NONE}; EGLint contextAttribs[] = {EGL_CONTEXT_CLIENT_VERSION, 1, @@ -217,17 +238,18 @@ static int wcreate(MwWidget handle) { 1, EGL_NONE}; EGLDisplay display; - waylandopengl_t* o = r = malloc(sizeof(*o)); - MwWaylandAlwaysRender = MwTRUE; + waylandopengl_t* o = r = malloc(sizeof(*o)); + int gbm_format = 0; + memset(o, 0, sizeof(waylandopengl_t)); o->gllib = MwDynamicOpen("libEGL.so"); if(!o->gllib) { printf("Could not load OpenGL widget under Wayland! libEGL.so missing.\n"); return 1; } - o->wlgllib = MwDynamicOpen("libwayland-egl.so"); - if(!o->gllib) { - printf("Could not load OpenGL widget under Wayland! libwayland-egl.so missing.\n"); + o->gbmlib = MwDynamicOpen("libgbm.so"); + if(!o->gbmlib) { + printf("Could not load OpenGL widget under Wayland! libgbm.so missing.\n"); return 1; } #define EGL_FUNC(x) \ @@ -236,8 +258,8 @@ static int wcreate(MwWidget handle) { printf("Could not load OpenGL widget under Wayland! " #x " missing.\n"); \ return 1; \ }; -#define WAYLAND_EGL_FUNC(x) \ - o->x = MwDynamicSymbol(o->wlgllib, #x); \ +#define GBM_FUNC(x) \ + o->x = MwDynamicSymbol(o->gbmlib, #x); \ if(!o->x) { \ printf("Could not load OpenGL widget under Wayland! " #x " missing.\n"); \ return 1; \ @@ -252,10 +274,20 @@ static int wcreate(MwWidget handle) { EGL_FUNC(eglGetError) EGL_FUNC(eglBindAPI) EGL_FUNC(eglGetDisplay) - EGL_FUNC(eglCreateWindowSurface) + EGL_FUNC(eglCreatePlatformWindowSurface) EGL_FUNC(eglChooseConfig) - WAYLAND_EGL_FUNC(wl_egl_window_create) - WAYLAND_EGL_FUNC(wl_egl_window_resize) + EGL_FUNC(eglGetPlatformDisplay) + EGL_FUNC(eglGetConfigAttrib) + GBM_FUNC(gbm_create_device) + GBM_FUNC(gbm_surface_create) + GBM_FUNC(gbm_surface_lock_front_buffer) + GBM_FUNC(gbm_bo_get_handle) + GBM_FUNC(gbm_bo_get_stride) + GBM_FUNC(gbm_bo_get_width) + GBM_FUNC(gbm_bo_get_height) + GBM_FUNC(gbm_surface_release_buffer) + GBM_FUNC(gbm_bo_map) + GBM_FUNC(gbm_bo_unmap) #define eglGetConfigs o->eglGetConfigs #define eglInitialize o->eglInitialize @@ -269,54 +301,55 @@ static int wcreate(MwWidget handle) { #define eglBindAPI o->eglBindAPI #define eglGetDisplay o->eglGetDisplay #define wl_egl_window_resize o->wl_egl_window_resize -#define eglCreateWindowSurface o->eglCreateWindowSurface +#define eglCreatePlatformWindowSurface o->eglCreatePlatformWindowSurface #define eglChooseConfig o->eglChooseConfig +#define eglGetPlatformDisplay o->eglGetPlatformDisplay - display = - eglGetDisplay((EGLNativeDisplayType)handle->lowlevel->wayland.display); + o->drm_fd = open("/dev/dri/renderD128", O_RDWR); + assert(o->drm_fd > 0); + o->gbm = o->gbm_create_device(o->drm_fd); + assert(o->gbm != NULL); + + display = eglGetPlatformDisplay(0x31D7, o->gbm, NULL); if(display == EGL_NO_DISPLAY) { printf("ERROR: eglGetDisplay, %0X\n", eglGetError()); return 1; } + /* Initialize EGL */ if(!eglInitialize(display, &majorVersion, &minorVersion)) { printf("ERROR: eglInitialize, %0X\n", eglGetError()); return 1; } + eglBindAPI(EGL_OPENGL_API); + /* Get configs */ - if((eglGetConfigs(display, NULL, 0, &numConfigs) != EGL_TRUE) || - (numConfigs == 0)) { + if((eglGetConfigs(display, NULL, 0, &numConfigs) != EGL_TRUE)) { printf("ERROR: eglGetConfigs, %0X\n", eglGetError()); return 1; } + EGLConfig egl_configs[1024]; /* Choose config */ - if((eglChooseConfig(display, fbAttribs, &o->egl_config, 1, &numConfigs) != - EGL_TRUE) || - (numConfigs != 1)) { + if((eglChooseConfig(display, fbAttribs, egl_configs, numConfigs, &numConfigsMatched) != + EGL_TRUE)) { printf("ERROR: eglChooseConfig, %0X\n", eglGetError()); return 1; } - o->egl_window_native = (EGLNativeWindowType)wl_egl_window_create( - handle->lowlevel->wayland.framebuffer.surface, - handle->lowlevel->wayland.ww, handle->lowlevel->wayland.wh); - if(!o->egl_window_native) { - printf("ERROR: wl_egl_window_create, EGL_NO_SURFACE\n"); - return 1; + for(int i = 0; i < numConfigsMatched; i++) { + if(o->eglGetConfigAttrib(display, egl_configs[i], + EGL_NATIVE_VISUAL_ID, + &gbm_format) == EGL_FALSE) { + printf("ERROR: eglGetConfigAttrib, %0X\n", eglGetError()); + } else { + if(gbm_format == GBM_FORMAT_ARGB8888) { + o->egl_config = egl_configs[i]; + } + } } - /* Create a surface */ - surface = eglCreateWindowSurface(display, o->egl_config, - o->egl_window_native, NULL); - if(surface == EGL_NO_SURFACE) { - printf("ERROR: eglCreateWindowSurface, %0X\n", eglGetError()); - return 1; - } - - eglBindAPI(EGL_OPENGL_API); - /* Create a GL context */ context = eglCreateContext(display, o->egl_config, EGL_NO_CONTEXT, contextAttribs); @@ -325,10 +358,26 @@ static int wcreate(MwWidget handle) { return 1; } + o->gbm_surface = o->gbm_surface_create(o->gbm, handle->lowlevel->wayland.ww, handle->lowlevel->wayland.wh, GBM_FORMAT_ARGB8888, GBM_BO_USE_LINEAR | GBM_BO_USE_RENDERING); + + /* Create a surface */ + surface = eglCreatePlatformWindowSurface(display, o->egl_config, + o->gbm_surface, NULL); + if(surface == EGL_NO_SURFACE) { + printf("ERROR: eglCreatePlatformWindowSurface, %0X\n", eglGetError()); + return 1; + } + if(!eglMakeCurrent(display, surface, surface, context)) { printf("ERROR: eglMakeCurrent (setup): %0X\n", eglGetError()); } - eglSwapInterval(o->egl_display, 0); + + o->frontbuffer_data = malloc(handle->lowlevel->wayland.ww * handle->lowlevel->wayland.wh * 4); + memset(o->frontbuffer_data, 255, handle->lowlevel->wayland.ww * handle->lowlevel->wayland.wh * 4); + + o->frontbuffer = MwLoadRaw(handle, o->frontbuffer_data, handle->lowlevel->wayland.ww, handle->lowlevel->wayland.wh); + + MwVaApply(handle, MwNpixmap, o->frontbuffer, NULL); o->egl_display = display; o->egl_surface = surface; @@ -466,10 +515,44 @@ static void mwOpenGLSwapBufferImpl(MwWidget handle) { eglSwapInterval(o->egl_display, 0); if(!eglSwapBuffers(o->egl_display, o->egl_surface)) { printf("ERROR: eglSwapBuffers, %0X\n", eglGetError()); - }; - wl_egl_window_resize((struct wl_egl_window*)o->egl_window_native, - handle->lowlevel->wayland.ww, - handle->lowlevel->wayland.wh, 0, 0); + } + struct gbm_bo* bo = o->gbm_surface_lock_front_buffer(o->gbm_surface); + if(bo) { + void* gbmBoMapData = NULL; // Needed for unmapping if gbm_bo_map is used + MwU32 width = o->gbm_bo_get_width(bo); + MwU32 height = o->gbm_bo_get_height(bo); + MwU32 stride = o->gbm_bo_get_stride(bo); + void* map = o->gbm_bo_map(bo, 0, 0, width, height, GBM_BO_TRANSFER_READ, &stride, &gbmBoMapData); + MwU32 size = height * stride; + + if(map) { + for(int y = 0; y < height; y++) { + const MwU8* row = map + y * stride; + for(int x = 0; x < width; x++) { + /* Memory layout per pixel: [B][G][R][A] */ + MwU8 b = row[x * 4 + 0]; + MwU8 g = row[x * 4 + 1]; + MwU8 r = row[x * 4 + 2]; + + int out = (y * width + x) * 4; + o->frontbuffer_data[out + 0] = r; + o->frontbuffer_data[out + 1] = g; + o->frontbuffer_data[out + 2] = b; + o->frontbuffer_data[out + 3] = 255; + } + } + + MwPixmapReloadRaw( + o->frontbuffer, o->frontbuffer_data); + } + o->gbm_bo_unmap(bo, gbmBoMapData); + } + if(o->previous_bo) { + o->gbm_surface_release_buffer(o->gbm_surface, o->previous_bo); + } + o->previous_bo = bo; + + MwForceRender(handle); } #endif } @@ -512,9 +595,28 @@ static void func_handler(MwWidget handle, const char* name, void* out, } } -MwClassRec MwOpenGLClassRec = {wcreate, /* create */ - destroy, /* destroy */ - NULL, /* draw */ +static void frontbuffer_draw(MwWidget handle) { +#ifdef USE_WAYLAND + if(handle->lowlevel->common.type == MwLLBackendWayland) { + waylandopengl_t* o = handle->internal; + MwRect r; + r.x = 0; + r.y = 0; + r.width = handle->lowlevel->wayland.ww; + r.height = handle->lowlevel->wayland.wh; + MwLLDrawPixmap(handle->lowlevel, &r, o->frontbuffer); + } + +#endif +} + +MwClassRec MwOpenGLClassRec = {wcreate, /* create */ + destroy, /* destroy */ +#ifdef USE_WAYLAND + frontbuffer_draw, /* draw */ +#else + NULL, /* draw */ +#endif NULL, /* click */ NULL, /* parent_resize */ NULL, /* prop_change */ @@ -530,7 +632,7 @@ MwClassRec MwOpenGLClassRec = {wcreate, /* create */ NULL, /* clipboard */ NULL, /* props_change */ NULL, NULL, NULL}; -MwClass MwOpenGLClass = &MwOpenGLClassRec; +MwClass MwOpenGLClass = &MwOpenGLClassRec; #else MWDECL MwClass MwOpenGLClass; From 38d1cb72894e314532d6a7bd81e0a03de9ecbdcc Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 6 May 2026 00:01:55 -0700 Subject: [PATCH 681/836] wayland: guard sys/mman.h --- examples/gldemos/tripaint.c | 11 ++++++----- src/widget/opengl.c | 7 +++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/examples/gldemos/tripaint.c b/examples/gldemos/tripaint.c index 069315a07..11eaffd50 100644 --- a/examples/gldemos/tripaint.c +++ b/examples/gldemos/tripaint.c @@ -108,13 +108,14 @@ static void MWAPI mouse_move(MwWidget handle, void* user, void* call) { int main() { MwSizeHints hints; - MwWidget window; + MwWidget window, viewport; MwLibraryInit(); - window = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 640, 480, - MwNtitle, "tripaint", - NULL); + window = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 640, 480, + MwNtitle, "tripaint", + NULL); + viewport = MwCreateWidget(MwViewportClass, "viewport", window, 5, 5, 630, 470 - 16 - 5); hints.min_width = hints.max_width = 640; hints.min_height = hints.max_height = 480; @@ -126,7 +127,7 @@ int main() { t = malloc(sizeof(*t)); - opengl = MwCreateWidget(MwOpenGLClass, "opengl", window, 0, 0, 640, 460); + opengl = MwCreateWidget(MwOpenGLClass, "opengl", viewport, 0, 0, 1024, 768); MwAddUserHandler(window, MwNtickHandler, tick, NULL); MwAddUserHandler(opengl, MwNtickHandler, tick, NULL); diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 2012a4753..5269d62ce 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -1,4 +1,3 @@ -#include #ifndef __APPLE__ #include @@ -56,6 +55,7 @@ typedef struct x11opengl { #ifdef USE_WAYLAND #include #include +#include #include typedef void* EGLLabelKHR; @@ -595,8 +595,8 @@ static void func_handler(MwWidget handle, const char* name, void* out, } } -static void frontbuffer_draw(MwWidget handle) { #ifdef USE_WAYLAND +static void frontbuffer_draw(MwWidget handle) { if(handle->lowlevel->common.type == MwLLBackendWayland) { waylandopengl_t* o = handle->internal; MwRect r; @@ -606,9 +606,8 @@ static void frontbuffer_draw(MwWidget handle) { r.height = handle->lowlevel->wayland.wh; MwLLDrawPixmap(handle->lowlevel, &r, o->frontbuffer); } - -#endif } +#endif MwClassRec MwOpenGLClassRec = {wcreate, /* create */ destroy, /* destroy */ From 232763a3e3e213640d291c04f5652a041ffd223e Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 6 May 2026 16:15:55 +0900 Subject: [PATCH 682/836] ugh --- src/backend/wayland/interfaces.c | 11 +++++++---- src/widget/calendar.c | 4 +++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/backend/wayland/interfaces.c b/src/backend/wayland/interfaces.c index d7565fd24..903e38bef 100644 --- a/src/backend/wayland/interfaces.c +++ b/src/backend/wayland/interfaces.c @@ -513,16 +513,19 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time inArea |= self->wayland.backbuffer.surface == curSurface; } + self->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); + self->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); + if(currentlyHeldWidget != NULL){ + currentlyHeldWidget->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); + currentlyHeldWidget->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); + } + if(inArea) { - self->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); - self->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); p.point = self->wayland.cur_mouse_pos; MwLLDispatch(self, move, &p); wl_pointer_set_cursor(self->wayland.pointer, self->wayland.pointer_serial, self->wayland.cursor.surface, 0, 0); } else if(currentlyHeldWidget == self) { - currentlyHeldWidget->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); - currentlyHeldWidget->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); p.point = currentlyHeldWidget->wayland.cur_mouse_pos; MwLLDispatch(currentlyHeldWidget, move, &p); } diff --git a/src/widget/calendar.c b/src/widget/calendar.c index 6e5d3b641..a46c0f3ea 100644 --- a/src/widget/calendar.c +++ b/src/widget/calendar.c @@ -82,6 +82,7 @@ static MwLLPixmap blit(MwWidget handle, const char* str, MwLLColor bg, MwLLColor static void draw(MwWidget handle) { MwLLColor c = MwParseColor(handle, MwGetText(handle, MwNbackground)); + MwLLColor cf = MwParseColor(handle, MwGetText(handle, MwNforeground)); MwLLColor cb = MwParseColor(handle, "#fff"); MwLLColor cb_g = MwParseColor(handle, "#666"); MwLLColor ct = MwParseColor(handle, "#000"); @@ -203,7 +204,7 @@ static void draw(MwWidget handle) { sprintf(buf, "%d", MwGetInteger(handle, MwNyear)); - px = blit(handle, buf, c, ct, gh); + px = blit(handle, buf, c, cf, gh); r2 = r3; r2.width = px->common.width; r2.height = px->common.height; @@ -212,6 +213,7 @@ static void draw(MwWidget handle) { MwLLDrawPixmap(handle->lowlevel, &r2, px); MwLLDestroyPixmap(px); + MwLLFreeColor(cf); MwLLFreeColor(ct); MwLLFreeColor(cb_g); MwLLFreeColor(cb); From 2c3cb787d42322092623eaf0014a9c2e50773d1b Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 6 May 2026 00:29:51 -0700 Subject: [PATCH 683/836] wayland: implement resizing for new opengl gbm --- src/widget/opengl.c | 57 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 52 insertions(+), 5 deletions(-) diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 5269d62ce..763efa403 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -107,6 +107,7 @@ typedef struct waylandopengl { EGLint config_size, EGLint* num_config); EGLBoolean (*eglGetConfigAttrib)(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint* value); + EGLBoolean (*eglDestroySurface)(EGLDisplay dpy, EGLSurface surface); struct wl_egl_window* (*wl_egl_window_create)(struct wl_surface* surface, int width, int height); @@ -115,6 +116,7 @@ typedef struct waylandopengl { int dx, int dy); struct gbm_device* (*gbm_create_device)(int fd); struct gbm_surface* (*gbm_surface_create)(struct gbm_device* gbm, uint32_t width, uint32_t height, uint32_t format, uint32_t flags); + void (*gbm_surface_destroy)(struct gbm_surface* surface); struct gbm_bo* (*gbm_surface_lock_front_buffer)(struct gbm_surface* surface); union gbm_bo_handle (*gbm_bo_get_handle)(struct gbm_bo* bo); @@ -278,8 +280,10 @@ static int wcreate(MwWidget handle) { EGL_FUNC(eglChooseConfig) EGL_FUNC(eglGetPlatformDisplay) EGL_FUNC(eglGetConfigAttrib) + EGL_FUNC(eglDestroySurface) GBM_FUNC(gbm_create_device) GBM_FUNC(gbm_surface_create) + GBM_FUNC(gbm_surface_destroy) GBM_FUNC(gbm_surface_lock_front_buffer) GBM_FUNC(gbm_bo_get_handle) GBM_FUNC(gbm_bo_get_stride) @@ -302,6 +306,7 @@ static int wcreate(MwWidget handle) { #define eglGetDisplay o->eglGetDisplay #define wl_egl_window_resize o->wl_egl_window_resize #define eglCreatePlatformWindowSurface o->eglCreatePlatformWindowSurface +#define eglDestroySurface o->eglDestroySurface #define eglChooseConfig o->eglChooseConfig #define eglGetPlatformDisplay o->eglGetPlatformDisplay @@ -607,6 +612,44 @@ static void frontbuffer_draw(MwWidget handle) { MwLLDrawPixmap(handle->lowlevel, &r, o->frontbuffer); } } +static void frontbuffer_resize(MwWidget handle) { + if(handle->lowlevel->common.type == MwLLBackendWayland) { + waylandopengl_t* o = handle->internal; + if(o->frontbuffer_data) { + free(o->frontbuffer_data); + } + if(o->frontbuffer) { + MwLLDestroyPixmap(o->frontbuffer); + } + if(o->gbm_surface) { + o->gbm_surface_destroy(o->gbm_surface); + } + if(o->egl_surface) { + eglDestroySurface(o->egl_display, o->egl_surface); + } + + o->gbm_surface = o->gbm_surface_create(o->gbm, handle->lowlevel->wayland.ww, handle->lowlevel->wayland.wh, GBM_FORMAT_ARGB8888, GBM_BO_USE_LINEAR | GBM_BO_USE_RENDERING); + + /* Create a surface */ + o->egl_surface = eglCreatePlatformWindowSurface(o->egl_display, o->egl_config, + o->gbm_surface, NULL); + if(o->egl_surface == EGL_NO_SURFACE) { + printf("ERROR: eglCreatePlatformWindowSurface, %0X\n", eglGetError()); + } else { + } + + if(!eglMakeCurrent(o->egl_display, o->egl_surface, o->egl_surface, o->egl_context)) { + printf("ERROR: eglMakeCurrent (setup): %0X\n", eglGetError()); + } + + o->frontbuffer_data = malloc(handle->lowlevel->wayland.ww * handle->lowlevel->wayland.wh * 4); + memset(o->frontbuffer_data, 255, handle->lowlevel->wayland.ww * handle->lowlevel->wayland.wh * 4); + + o->frontbuffer = MwLoadRaw(handle, o->frontbuffer_data, handle->lowlevel->wayland.ww, handle->lowlevel->wayland.wh); + + MwVaApply(handle, MwNpixmap, o->frontbuffer, NULL); + } +} #endif MwClassRec MwOpenGLClassRec = {wcreate, /* create */ @@ -625,11 +668,15 @@ MwClassRec MwOpenGLClassRec = {wcreate, /* create */ NULL, /* key */ func_handler, /* execute */ NULL, /* tick */ - NULL, /* resize */ - NULL, /* children_update */ - NULL, /* children_prop_change */ - NULL, /* clipboard */ - NULL, /* props_change */ +#ifdef USE_WAYLAND + frontbuffer_resize, /* resize */ +#else + NULL, /* resize */ +#endif + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, /* clipboard */ + NULL, /* props_change */ NULL, NULL, NULL}; MwClass MwOpenGLClass = &MwOpenGLClassRec; #else From 786ed04e69e17d74f5979fdc578496dfc96e844d Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 6 May 2026 00:56:35 -0700 Subject: [PATCH 684/836] wayland: downgrade xdg_wm_base back to 1 --- src/backend/wayland/interfaces.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/backend/wayland/interfaces.c b/src/backend/wayland/interfaces.c index 903e38bef..8561798f7 100644 --- a/src/backend/wayland/interfaces.c +++ b/src/backend/wayland/interfaces.c @@ -515,18 +515,18 @@ static void pointer_motion(void* data, struct wl_pointer* wl_pointer, MwU32 time self->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); self->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); - if(currentlyHeldWidget != NULL){ + if(currentlyHeldWidget != NULL) { currentlyHeldWidget->wayland.cur_mouse_pos.x = wl_fixed_to_int(surface_x); currentlyHeldWidget->wayland.cur_mouse_pos.y = wl_fixed_to_int(surface_y); } if(inArea) { - p.point = self->wayland.cur_mouse_pos; + p.point = self->wayland.cur_mouse_pos; MwLLDispatch(self, move, &p); wl_pointer_set_cursor(self->wayland.pointer, self->wayland.pointer_serial, self->wayland.cursor.surface, 0, 0); } else if(currentlyHeldWidget == self) { - p.point = currentlyHeldWidget->wayland.cur_mouse_pos; + p.point = currentlyHeldWidget->wayland.cur_mouse_pos; MwLLDispatch(currentlyHeldWidget, move, &p); } @@ -1002,7 +1002,7 @@ static wayland_protocol_t* xdg_wm_base_setup(MwU32 name, struct _MwLLWayland* wa ((struct xdg_wm_base_listener*)proto->listener)->ping = xdg_wm_base_ping; - proto->context = wl_registry_bind(wayland->registry, name, &xdg_wm_base_interface, 3); + proto->context = wl_registry_bind(wayland->registry, name, &xdg_wm_base_interface, 1); xdg_wm_base_add_listener(proto->context, proto->listener, wayland); return proto; From 3ead7afbcf42439adce12dba73dcaaa761327d47 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 6 May 2026 03:07:25 -0500 Subject: [PATCH 685/836] justify wayland's use of gbm in a comment --- src/widget/opengl.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 763efa403..bb62c0f96 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -57,8 +57,10 @@ typedef struct x11opengl { #include #include #include -typedef void* EGLLabelKHR; +/* +Note that for Wayland we create a GBM buffer manually and handle blitting it ourselves instead of using wayland-egl. Doing this allows us greater freedom over event handling; wayland-egl constantly pumps events, making us have to add a weird exception to wayland.c to make this work. Doing this also allows us to clip the OpenGL widget, something that was harder (impossible) with egl wayland. +*/ typedef struct waylandopengl { EGLDisplay egl_display; EGLContext egl_context; From fdb27599b6f974cdd516b6080a77504c8e2ad53f Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 6 May 2026 17:56:50 +0900 Subject: [PATCH 686/836] wsl fix --- src/backend/wayland/wayland.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 449e34301..7bd497cf6 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -1601,6 +1601,12 @@ static int MwLLWaylandCallInitImpl(void) { loadWayland |= (getenv("WAYLAND_DISPLAY") != NULL); } +#ifdef MW_OPENGL + if(getenv("WSLENV") || getenv("WSL_DISTRO_NAME")){ + loadWayland = 0; + } +#endif + if(loadWayland) { if(wayland_load_funcs()) { return 1; From 44996a484a37b2ca6f37cec83674c754d5b98fb3 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 6 May 2026 18:23:27 -0700 Subject: [PATCH 687/836] fix cmake --- CMakeLists.txt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a67a319fc..ac7f7a7e5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,7 +60,7 @@ endif() if(MW_TRY_OPENGL) find_package(OpenGL) - if(OpenGL_FOUND and NOT APPLE) + if(OpenGL_FOUND AND NOT APPLE) set(MW_BUILD_OPENGL ON) message(STATUS "OpenGL widget has been enabled") else() @@ -130,15 +130,18 @@ endif() if(MW_USE_FREETYPE2) find_package(Freetype) if(Freetype_FOUND) + message(STATUS "FreeType2 found") target_compile_definitions( Mw PRIVATE USE_FREETYPE2 ) - list(APPEND INCLUDE_DIRS ${FT2_INCLUDE_DIRS}) - list(APPEND LIBRARY_DIRS ${FT2_LIBRARY_DIRS}) - list(APPEND LIBRARIES ${FT2_LIBRARIES}) + list(APPEND INCLUDE_DIRS ${FREETYPE_INCLUDE_DIRS}) + list(APPEND LIBRARY_DIRS ${FREETYPE_LIBRARY_DIRS}) + list(APPEND LIBRARIES ${FREETYPE_LIBRARIES}) + else() + message(WARNING "FreeType2 not found") endif() endif() From 6eefe44f6f6cb6b538d0bcc143701d1e19e77c5d Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 7 May 2026 15:59:48 +0900 Subject: [PATCH 688/836] update --- vms/build.com | 338 ++++++++++++++++++++++++++------------------------ vms/clean.com | 69 ++++++----- 2 files changed, 214 insertions(+), 193 deletions(-) diff --git a/vms/build.com b/vms/build.com index 06467b321..944918f4a 100644 --- a/vms/build.com +++ b/vms/build.com @@ -3,26 +3,6 @@ $ then $ write sys$output "CC [.src]color.obj" $ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]color.obj [.src]color.c $ endif -$ if f$search("[.src]draw.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src]draw.obj" -$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]draw.obj [.src]draw.c -$ endif -$ if f$search("[.src]lowlevel.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src]lowlevel.obj" -$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]lowlevel.obj [.src]lowlevel.c -$ endif -$ if f$search("[.src]string.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src]string.obj" -$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]string.obj [.src]string.c -$ endif -$ if f$search("[.src]unicode.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src]unicode.obj" -$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]unicode.obj [.src]unicode.c -$ endif $ if f$search("[.src]core.obj;*") .eqs. "" $ then $ write sys$output "CC [.src]core.obj" @@ -33,10 +13,25 @@ $ then $ write sys$output "CC [.src]default.obj" $ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]default.obj [.src]default.c $ endif -$ if f$search("[.src.cursor]hidden.obj;*") .eqs. "" +$ if f$search("[.src]draw.obj;*") .eqs. "" $ then -$ write sys$output "CC [.src.cursor]hidden.obj" -$ cc /include_directory=("./include","./src/cursor") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.cursor]hidden.obj [.src.cursor]hidden.c +$ write sys$output "CC [.src]draw.obj" +$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]draw.obj [.src]draw.c +$ endif +$ if f$search("[.src]string.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src]string.obj" +$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]string.obj [.src]string.c +$ endif +$ if f$search("[.src]lowlevel.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src]lowlevel.obj" +$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]lowlevel.obj [.src]lowlevel.c +$ endif +$ if f$search("[.src]unicode.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src]unicode.obj" +$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]unicode.obj [.src]unicode.c $ endif $ if f$search("[.src.cursor]arrow.obj;*") .eqs. "" $ then @@ -48,40 +43,80 @@ $ then $ write sys$output "CC [.src.cursor]cross.obj" $ cc /include_directory=("./include","./src/cursor") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.cursor]cross.obj [.src.cursor]cross.c $ endif -$ if f$search("[.src.cursor]text.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.cursor]text.obj" -$ cc /include_directory=("./include","./src/cursor") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.cursor]text.obj [.src.cursor]text.c -$ endif $ if f$search("[.src.cursor]default.obj;*") .eqs. "" $ then $ write sys$output "CC [.src.cursor]default.obj" $ cc /include_directory=("./include","./src/cursor") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.cursor]default.obj [.src.cursor]default.c $ endif -$ if f$search("[.src.widget]menu.obj;*") .eqs. "" +$ if f$search("[.src.cursor]hidden.obj;*") .eqs. "" $ then -$ write sys$output "CC [.src.widget]menu.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]menu.obj [.src.widget]menu.c +$ write sys$output "CC [.src.cursor]hidden.obj" +$ cc /include_directory=("./include","./src/cursor") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.cursor]hidden.obj [.src.cursor]hidden.c +$ endif +$ if f$search("[.src.cursor]text.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.cursor]text.obj" +$ cc /include_directory=("./include","./src/cursor") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.cursor]text.obj [.src.cursor]text.c +$ endif +$ if f$search("[.src.widget]box.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]box.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]box.obj [.src.widget]box.c +$ endif +$ if f$search("[.src.widget]button.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]button.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]button.obj [.src.widget]button.c +$ endif +$ if f$search("[.src.widget]checkbox.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]checkbox.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]checkbox.obj [.src.widget]checkbox.c +$ endif +$ if f$search("[.src.widget]combobox.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]combobox.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]combobox.obj [.src.widget]combobox.c +$ endif +$ if f$search("[.src.widget]entry.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]entry.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]entry.obj [.src.widget]entry.c +$ endif +$ if f$search("[.src.widget]frame.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]frame.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]frame.obj [.src.widget]frame.c $ endif $ if f$search("[.src.widget]image.obj;*") .eqs. "" $ then $ write sys$output "CC [.src.widget]image.obj" $ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]image.obj [.src.widget]image.c $ endif -$ if f$search("[.src.widget]viewport.obj;*") .eqs. "" +$ if f$search("[.src.widget]label.obj;*") .eqs. "" $ then -$ write sys$output "CC [.src.widget]viewport.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]viewport.obj [.src.widget]viewport.c +$ write sys$output "CC [.src.widget]label.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]label.obj [.src.widget]label.c $ endif -$ if f$search("[.src.widget]treeview.obj;*") .eqs. "" +$ if f$search("[.src.widget]listbox.obj;*") .eqs. "" $ then -$ write sys$output "CC [.src.widget]treeview.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]treeview.obj [.src.widget]treeview.c +$ write sys$output "CC [.src.widget]listbox.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]listbox.obj [.src.widget]listbox.c $ endif -$ if f$search("[.src.widget]button.obj;*") .eqs. "" +$ if f$search("[.src.widget]menu.obj;*") .eqs. "" $ then -$ write sys$output "CC [.src.widget]button.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]button.obj [.src.widget]button.c +$ write sys$output "CC [.src.widget]menu.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]menu.obj [.src.widget]menu.c +$ endif +$ if f$search("[.src.widget]numberentry.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]numberentry.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]numberentry.obj [.src.widget]numberentry.c +$ endif +$ if f$search("[.src.widget]progressbar.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]progressbar.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]progressbar.obj [.src.widget]progressbar.c $ endif $ if f$search("[.src.widget]radiobox.obj;*") .eqs. "" $ then @@ -93,65 +128,45 @@ $ then $ write sys$output "CC [.src.widget]scrollbar.obj" $ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]scrollbar.obj [.src.widget]scrollbar.c $ endif -$ if f$search("[.src.widget]progressbar.obj;*") .eqs. "" +$ if f$search("[.src.widget]separator.obj;*") .eqs. "" $ then -$ write sys$output "CC [.src.widget]progressbar.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]progressbar.obj [.src.widget]progressbar.c +$ write sys$output "CC [.src.widget]separator.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]separator.obj [.src.widget]separator.c $ endif $ if f$search("[.src.widget]submenu.obj;*") .eqs. "" $ then $ write sys$output "CC [.src.widget]submenu.obj" $ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]submenu.obj [.src.widget]submenu.c $ endif -$ if f$search("[.src.widget]checkbox.obj;*") .eqs. "" +$ if f$search("[.src.widget]treeview.obj;*") .eqs. "" $ then -$ write sys$output "CC [.src.widget]checkbox.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]checkbox.obj [.src.widget]checkbox.c +$ write sys$output "CC [.src.widget]treeview.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]treeview.obj [.src.widget]treeview.c $ endif -$ if f$search("[.src.widget]entry.obj;*") .eqs. "" +$ if f$search("[.src.widget]viewport.obj;*") .eqs. "" $ then -$ write sys$output "CC [.src.widget]entry.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]entry.obj [.src.widget]entry.c +$ write sys$output "CC [.src.widget]viewport.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]viewport.obj [.src.widget]viewport.c $ endif $ if f$search("[.src.widget]window.obj;*") .eqs. "" $ then $ write sys$output "CC [.src.widget]window.obj" $ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]window.obj [.src.widget]window.c $ endif -$ if f$search("[.src.widget]label.obj;*") .eqs. "" +$ if f$search("[.src.widget]subwindow.obj;*") .eqs. "" $ then -$ write sys$output "CC [.src.widget]label.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]label.obj [.src.widget]label.c +$ write sys$output "CC [.src.widget]subwindow.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]subwindow.obj [.src.widget]subwindow.c $ endif -$ if f$search("[.src.widget]separator.obj;*") .eqs. "" +$ if f$search("[.src.widget]calendar.obj;*") .eqs. "" $ then -$ write sys$output "CC [.src.widget]separator.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]separator.obj [.src.widget]separator.c +$ write sys$output "CC [.src.widget]calendar.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]calendar.obj [.src.widget]calendar.c $ endif -$ if f$search("[.src.widget]combobox.obj;*") .eqs. "" +$ if f$search("[.src.dialog]colorpicker.obj;*") .eqs. "" $ then -$ write sys$output "CC [.src.widget]combobox.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]combobox.obj [.src.widget]combobox.c -$ endif -$ if f$search("[.src.widget]numberentry.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]numberentry.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]numberentry.obj [.src.widget]numberentry.c -$ endif -$ if f$search("[.src.widget]frame.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]frame.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]frame.obj [.src.widget]frame.c -$ endif -$ if f$search("[.src.widget]listbox.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]listbox.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]listbox.obj [.src.widget]listbox.c -$ endif -$ if f$search("[.src.widget]box.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]box.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]box.obj [.src.widget]box.c +$ write sys$output "CC [.src.dialog]colorpicker.obj" +$ cc /include_directory=("./include","./src/dialog") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.dialog]colorpicker.obj [.src.dialog]colorpicker.c $ endif $ if f$search("[.src.dialog]directorychooser.obj;*") .eqs. "" $ then @@ -168,81 +183,71 @@ $ then $ write sys$output "CC [.src.dialog]messagebox.obj" $ cc /include_directory=("./include","./src/dialog") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.dialog]messagebox.obj [.src.dialog]messagebox.c $ endif -$ if f$search("[.src.dialog]colorpicker.obj;*") .eqs. "" +$ if f$search("[.src.icon]back.obj;*") .eqs. "" $ then -$ write sys$output "CC [.src.dialog]colorpicker.obj" -$ cc /include_directory=("./include","./src/dialog") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.dialog]colorpicker.obj [.src.dialog]colorpicker.c -$ endif -$ if f$search("[.src.icon]right.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]right.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]right.obj [.src.icon]right.c -$ endif -$ if f$search("[.src.icon]info.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]info.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]info.obj [.src.icon]info.c -$ endif -$ if f$search("[.src.icon]computer.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]computer.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]computer.obj [.src.icon]computer.c -$ endif -$ if f$search("[.src.icon]forward.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]forward.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]forward.obj [.src.icon]forward.c -$ endif -$ if f$search("[.src.icon]left.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]left.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]left.obj [.src.icon]left.c +$ write sys$output "CC [.src.icon]back.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]back.obj [.src.icon]back.c $ endif $ if f$search("[.src.icon]clock.obj;*") .eqs. "" $ then $ write sys$output "CC [.src.icon]clock.obj" $ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]clock.obj [.src.icon]clock.c $ endif -$ if f$search("[.src.icon]warning.obj;*") .eqs. "" +$ if f$search("[.src.icon]computer.obj;*") .eqs. "" $ then -$ write sys$output "CC [.src.icon]warning.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]warning.obj [.src.icon]warning.c +$ write sys$output "CC [.src.icon]computer.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]computer.obj [.src.icon]computer.c $ endif $ if f$search("[.src.icon]directory.obj;*") .eqs. "" $ then $ write sys$output "CC [.src.icon]directory.obj" $ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]directory.obj [.src.icon]directory.c $ endif -$ if f$search("[.src.icon]file.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]file.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]file.obj [.src.icon]file.c -$ endif -$ if f$search("[.src.icon]back.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]back.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]back.obj [.src.icon]back.c -$ endif $ if f$search("[.src.icon]down.obj;*") .eqs. "" $ then $ write sys$output "CC [.src.icon]down.obj" $ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]down.obj [.src.icon]down.c $ endif -$ if f$search("[.src.icon]news.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]news.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]news.obj [.src.icon]news.c -$ endif $ if f$search("[.src.icon]error.obj;*") .eqs. "" $ then $ write sys$output "CC [.src.icon]error.obj" $ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]error.obj [.src.icon]error.c $ endif +$ if f$search("[.src.icon]file.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.icon]file.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]file.obj [.src.icon]file.c +$ endif +$ if f$search("[.src.icon]forward.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.icon]forward.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]forward.obj [.src.icon]forward.c +$ endif +$ if f$search("[.src.icon]info.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.icon]info.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]info.obj [.src.icon]info.c +$ endif +$ if f$search("[.src.icon]left.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.icon]left.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]left.obj [.src.icon]left.c +$ endif +$ if f$search("[.src.icon]news.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.icon]news.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]news.obj [.src.icon]news.c +$ endif $ if f$search("[.src.icon]note.obj;*") .eqs. "" $ then $ write sys$output "CC [.src.icon]note.obj" $ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]note.obj [.src.icon]note.c $ endif +$ if f$search("[.src.icon]right.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.icon]right.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]right.obj [.src.icon]right.c +$ endif $ if f$search("[.src.icon]search.obj;*") .eqs. "" $ then $ write sys$output "CC [.src.icon]search.obj" @@ -253,10 +258,10 @@ $ then $ write sys$output "CC [.src.icon]up.obj" $ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]up.obj [.src.icon]up.c $ endif -$ if f$search("[.src.abstract]time.obj;*") .eqs. "" +$ if f$search("[.src.icon]warning.obj;*") .eqs. "" $ then -$ write sys$output "CC [.src.abstract]time.obj" -$ cc /include_directory=("./include","./src/abstract") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.abstract]time.obj [.src.abstract]time.c +$ write sys$output "CC [.src.icon]warning.obj" +$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]warning.obj [.src.icon]warning.c $ endif $ if f$search("[.src.abstract]directory.obj;*") .eqs. "" $ then @@ -268,6 +273,16 @@ $ then $ write sys$output "CC [.src.abstract]dynamic.obj" $ cc /include_directory=("./include","./src/abstract") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.abstract]dynamic.obj [.src.abstract]dynamic.c $ endif +$ if f$search("[.src.abstract]time.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.abstract]time.obj" +$ cc /include_directory=("./include","./src/abstract") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.abstract]time.obj [.src.abstract]time.c +$ endif +$ if f$search("[.src.abstract]charset.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.abstract]charset.obj" +$ cc /include_directory=("./include","./src/abstract") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.abstract]charset.obj [.src.abstract]charset.c +$ endif $ if f$search("[.external]stb_ds.obj;*") .eqs. "" $ then $ write sys$output "CC [.external]stb_ds.obj" @@ -283,59 +298,62 @@ $ then $ write sys$output "LINK [.src]MwSHR.exe" $ OPEN /WRITE LINK_OPT LINK.OPT $ WRITE LINK_OPT "[.src]color.obj" -$ WRITE LINK_OPT "[.src]draw.obj" -$ WRITE LINK_OPT "[.src]lowlevel.obj" -$ WRITE LINK_OPT "[.src]string.obj" -$ WRITE LINK_OPT "[.src]unicode.obj" $ WRITE LINK_OPT "[.src]core.obj" $ WRITE LINK_OPT "[.src]default.obj" -$ WRITE LINK_OPT "[.src.cursor]hidden.obj" +$ WRITE LINK_OPT "[.src]draw.obj" +$ WRITE LINK_OPT "[.src]string.obj" +$ WRITE LINK_OPT "[.src]lowlevel.obj" +$ WRITE LINK_OPT "[.src]unicode.obj" $ WRITE LINK_OPT "[.src.cursor]arrow.obj" $ WRITE LINK_OPT "[.src.cursor]cross.obj" -$ WRITE LINK_OPT "[.src.cursor]text.obj" $ WRITE LINK_OPT "[.src.cursor]default.obj" -$ WRITE LINK_OPT "[.src.widget]menu.obj" -$ WRITE LINK_OPT "[.src.widget]image.obj" -$ WRITE LINK_OPT "[.src.widget]viewport.obj" -$ WRITE LINK_OPT "[.src.widget]treeview.obj" +$ WRITE LINK_OPT "[.src.cursor]hidden.obj" +$ WRITE LINK_OPT "[.src.cursor]text.obj" +$ WRITE LINK_OPT "[.src.widget]box.obj" $ WRITE LINK_OPT "[.src.widget]button.obj" +$ WRITE LINK_OPT "[.src.widget]checkbox.obj" +$ WRITE LINK_OPT "[.src.widget]combobox.obj" +$ WRITE LINK_OPT "[.src.widget]entry.obj" +$ WRITE LINK_OPT "[.src.widget]frame.obj" +$ WRITE LINK_OPT "[.src.widget]image.obj" +$ WRITE LINK_OPT "[.src.widget]label.obj" +$ WRITE LINK_OPT "[.src.widget]listbox.obj" +$ WRITE LINK_OPT "[.src.widget]menu.obj" +$ WRITE LINK_OPT "[.src.widget]numberentry.obj" +$ WRITE LINK_OPT "[.src.widget]progressbar.obj" $ WRITE LINK_OPT "[.src.widget]radiobox.obj" $ WRITE LINK_OPT "[.src.widget]scrollbar.obj" -$ WRITE LINK_OPT "[.src.widget]progressbar.obj" -$ WRITE LINK_OPT "[.src.widget]submenu.obj" -$ WRITE LINK_OPT "[.src.widget]checkbox.obj" -$ WRITE LINK_OPT "[.src.widget]entry.obj" -$ WRITE LINK_OPT "[.src.widget]window.obj" -$ WRITE LINK_OPT "[.src.widget]label.obj" $ WRITE LINK_OPT "[.src.widget]separator.obj" -$ WRITE LINK_OPT "[.src.widget]combobox.obj" -$ WRITE LINK_OPT "[.src.widget]numberentry.obj" -$ WRITE LINK_OPT "[.src.widget]frame.obj" -$ WRITE LINK_OPT "[.src.widget]listbox.obj" -$ WRITE LINK_OPT "[.src.widget]box.obj" +$ WRITE LINK_OPT "[.src.widget]submenu.obj" +$ WRITE LINK_OPT "[.src.widget]treeview.obj" +$ WRITE LINK_OPT "[.src.widget]viewport.obj" +$ WRITE LINK_OPT "[.src.widget]window.obj" +$ WRITE LINK_OPT "[.src.widget]subwindow.obj" +$ WRITE LINK_OPT "[.src.widget]calendar.obj" +$ WRITE LINK_OPT "[.src.dialog]colorpicker.obj" $ WRITE LINK_OPT "[.src.dialog]directorychooser.obj" $ WRITE LINK_OPT "[.src.dialog]filechooser.obj" $ WRITE LINK_OPT "[.src.dialog]messagebox.obj" -$ WRITE LINK_OPT "[.src.dialog]colorpicker.obj" -$ WRITE LINK_OPT "[.src.icon]right.obj" -$ WRITE LINK_OPT "[.src.icon]info.obj" -$ WRITE LINK_OPT "[.src.icon]computer.obj" -$ WRITE LINK_OPT "[.src.icon]forward.obj" -$ WRITE LINK_OPT "[.src.icon]left.obj" -$ WRITE LINK_OPT "[.src.icon]clock.obj" -$ WRITE LINK_OPT "[.src.icon]warning.obj" -$ WRITE LINK_OPT "[.src.icon]directory.obj" -$ WRITE LINK_OPT "[.src.icon]file.obj" $ WRITE LINK_OPT "[.src.icon]back.obj" +$ WRITE LINK_OPT "[.src.icon]clock.obj" +$ WRITE LINK_OPT "[.src.icon]computer.obj" +$ WRITE LINK_OPT "[.src.icon]directory.obj" $ WRITE LINK_OPT "[.src.icon]down.obj" -$ WRITE LINK_OPT "[.src.icon]news.obj" $ WRITE LINK_OPT "[.src.icon]error.obj" +$ WRITE LINK_OPT "[.src.icon]file.obj" +$ WRITE LINK_OPT "[.src.icon]forward.obj" +$ WRITE LINK_OPT "[.src.icon]info.obj" +$ WRITE LINK_OPT "[.src.icon]left.obj" +$ WRITE LINK_OPT "[.src.icon]news.obj" $ WRITE LINK_OPT "[.src.icon]note.obj" +$ WRITE LINK_OPT "[.src.icon]right.obj" $ WRITE LINK_OPT "[.src.icon]search.obj" $ WRITE LINK_OPT "[.src.icon]up.obj" -$ WRITE LINK_OPT "[.src.abstract]time.obj" +$ WRITE LINK_OPT "[.src.icon]warning.obj" $ WRITE LINK_OPT "[.src.abstract]directory.obj" $ WRITE LINK_OPT "[.src.abstract]dynamic.obj" +$ WRITE LINK_OPT "[.src.abstract]time.obj" +$ WRITE LINK_OPT "[.src.abstract]charset.obj" $ WRITE LINK_OPT "[.external]stb_ds.obj" $ WRITE LINK_OPT "[.src.backend]x11.obj" $ WRITE LINK_OPT "SYS$LIBRARY:DECW$XLIBSHR/SHARE" diff --git a/vms/clean.com b/vms/clean.com index 45b54d4bb..da1ffb383 100644 --- a/vms/clean.com +++ b/vms/clean.com @@ -1,57 +1,60 @@ $ if f$search("[.src]color.obj") .nes. "" then delete [.src]color.obj;* -$ if f$search("[.src]draw.obj") .nes. "" then delete [.src]draw.obj;* -$ if f$search("[.src]lowlevel.obj") .nes. "" then delete [.src]lowlevel.obj;* -$ if f$search("[.src]string.obj") .nes. "" then delete [.src]string.obj;* -$ if f$search("[.src]unicode.obj") .nes. "" then delete [.src]unicode.obj;* $ if f$search("[.src]core.obj") .nes. "" then delete [.src]core.obj;* $ if f$search("[.src]default.obj") .nes. "" then delete [.src]default.obj;* -$ if f$search("[.src.cursor]hidden.obj") .nes. "" then delete [.src.cursor]hidden.obj;* +$ if f$search("[.src]draw.obj") .nes. "" then delete [.src]draw.obj;* +$ if f$search("[.src]string.obj") .nes. "" then delete [.src]string.obj;* +$ if f$search("[.src]lowlevel.obj") .nes. "" then delete [.src]lowlevel.obj;* +$ if f$search("[.src]unicode.obj") .nes. "" then delete [.src]unicode.obj;* $ if f$search("[.src.cursor]arrow.obj") .nes. "" then delete [.src.cursor]arrow.obj;* $ if f$search("[.src.cursor]cross.obj") .nes. "" then delete [.src.cursor]cross.obj;* -$ if f$search("[.src.cursor]text.obj") .nes. "" then delete [.src.cursor]text.obj;* $ if f$search("[.src.cursor]default.obj") .nes. "" then delete [.src.cursor]default.obj;* -$ if f$search("[.src.widget]menu.obj") .nes. "" then delete [.src.widget]menu.obj;* -$ if f$search("[.src.widget]image.obj") .nes. "" then delete [.src.widget]image.obj;* -$ if f$search("[.src.widget]viewport.obj") .nes. "" then delete [.src.widget]viewport.obj;* -$ if f$search("[.src.widget]treeview.obj") .nes. "" then delete [.src.widget]treeview.obj;* +$ if f$search("[.src.cursor]hidden.obj") .nes. "" then delete [.src.cursor]hidden.obj;* +$ if f$search("[.src.cursor]text.obj") .nes. "" then delete [.src.cursor]text.obj;* +$ if f$search("[.src.widget]box.obj") .nes. "" then delete [.src.widget]box.obj;* $ if f$search("[.src.widget]button.obj") .nes. "" then delete [.src.widget]button.obj;* +$ if f$search("[.src.widget]checkbox.obj") .nes. "" then delete [.src.widget]checkbox.obj;* +$ if f$search("[.src.widget]combobox.obj") .nes. "" then delete [.src.widget]combobox.obj;* +$ if f$search("[.src.widget]entry.obj") .nes. "" then delete [.src.widget]entry.obj;* +$ if f$search("[.src.widget]frame.obj") .nes. "" then delete [.src.widget]frame.obj;* +$ if f$search("[.src.widget]image.obj") .nes. "" then delete [.src.widget]image.obj;* +$ if f$search("[.src.widget]label.obj") .nes. "" then delete [.src.widget]label.obj;* +$ if f$search("[.src.widget]listbox.obj") .nes. "" then delete [.src.widget]listbox.obj;* +$ if f$search("[.src.widget]menu.obj") .nes. "" then delete [.src.widget]menu.obj;* +$ if f$search("[.src.widget]numberentry.obj") .nes. "" then delete [.src.widget]numberentry.obj;* +$ if f$search("[.src.widget]progressbar.obj") .nes. "" then delete [.src.widget]progressbar.obj;* $ if f$search("[.src.widget]radiobox.obj") .nes. "" then delete [.src.widget]radiobox.obj;* $ if f$search("[.src.widget]scrollbar.obj") .nes. "" then delete [.src.widget]scrollbar.obj;* -$ if f$search("[.src.widget]progressbar.obj") .nes. "" then delete [.src.widget]progressbar.obj;* -$ if f$search("[.src.widget]submenu.obj") .nes. "" then delete [.src.widget]submenu.obj;* -$ if f$search("[.src.widget]checkbox.obj") .nes. "" then delete [.src.widget]checkbox.obj;* -$ if f$search("[.src.widget]entry.obj") .nes. "" then delete [.src.widget]entry.obj;* -$ if f$search("[.src.widget]window.obj") .nes. "" then delete [.src.widget]window.obj;* -$ if f$search("[.src.widget]label.obj") .nes. "" then delete [.src.widget]label.obj;* $ if f$search("[.src.widget]separator.obj") .nes. "" then delete [.src.widget]separator.obj;* -$ if f$search("[.src.widget]combobox.obj") .nes. "" then delete [.src.widget]combobox.obj;* -$ if f$search("[.src.widget]numberentry.obj") .nes. "" then delete [.src.widget]numberentry.obj;* -$ if f$search("[.src.widget]frame.obj") .nes. "" then delete [.src.widget]frame.obj;* -$ if f$search("[.src.widget]listbox.obj") .nes. "" then delete [.src.widget]listbox.obj;* -$ if f$search("[.src.widget]box.obj") .nes. "" then delete [.src.widget]box.obj;* +$ if f$search("[.src.widget]submenu.obj") .nes. "" then delete [.src.widget]submenu.obj;* +$ if f$search("[.src.widget]treeview.obj") .nes. "" then delete [.src.widget]treeview.obj;* +$ if f$search("[.src.widget]viewport.obj") .nes. "" then delete [.src.widget]viewport.obj;* +$ if f$search("[.src.widget]window.obj") .nes. "" then delete [.src.widget]window.obj;* +$ if f$search("[.src.widget]subwindow.obj") .nes. "" then delete [.src.widget]subwindow.obj;* +$ if f$search("[.src.widget]calendar.obj") .nes. "" then delete [.src.widget]calendar.obj;* +$ if f$search("[.src.dialog]colorpicker.obj") .nes. "" then delete [.src.dialog]colorpicker.obj;* $ if f$search("[.src.dialog]directorychooser.obj") .nes. "" then delete [.src.dialog]directorychooser.obj;* $ if f$search("[.src.dialog]filechooser.obj") .nes. "" then delete [.src.dialog]filechooser.obj;* $ if f$search("[.src.dialog]messagebox.obj") .nes. "" then delete [.src.dialog]messagebox.obj;* -$ if f$search("[.src.dialog]colorpicker.obj") .nes. "" then delete [.src.dialog]colorpicker.obj;* -$ if f$search("[.src.icon]right.obj") .nes. "" then delete [.src.icon]right.obj;* -$ if f$search("[.src.icon]info.obj") .nes. "" then delete [.src.icon]info.obj;* -$ if f$search("[.src.icon]computer.obj") .nes. "" then delete [.src.icon]computer.obj;* -$ if f$search("[.src.icon]forward.obj") .nes. "" then delete [.src.icon]forward.obj;* -$ if f$search("[.src.icon]left.obj") .nes. "" then delete [.src.icon]left.obj;* -$ if f$search("[.src.icon]clock.obj") .nes. "" then delete [.src.icon]clock.obj;* -$ if f$search("[.src.icon]warning.obj") .nes. "" then delete [.src.icon]warning.obj;* -$ if f$search("[.src.icon]directory.obj") .nes. "" then delete [.src.icon]directory.obj;* -$ if f$search("[.src.icon]file.obj") .nes. "" then delete [.src.icon]file.obj;* $ if f$search("[.src.icon]back.obj") .nes. "" then delete [.src.icon]back.obj;* +$ if f$search("[.src.icon]clock.obj") .nes. "" then delete [.src.icon]clock.obj;* +$ if f$search("[.src.icon]computer.obj") .nes. "" then delete [.src.icon]computer.obj;* +$ if f$search("[.src.icon]directory.obj") .nes. "" then delete [.src.icon]directory.obj;* $ if f$search("[.src.icon]down.obj") .nes. "" then delete [.src.icon]down.obj;* -$ if f$search("[.src.icon]news.obj") .nes. "" then delete [.src.icon]news.obj;* $ if f$search("[.src.icon]error.obj") .nes. "" then delete [.src.icon]error.obj;* +$ if f$search("[.src.icon]file.obj") .nes. "" then delete [.src.icon]file.obj;* +$ if f$search("[.src.icon]forward.obj") .nes. "" then delete [.src.icon]forward.obj;* +$ if f$search("[.src.icon]info.obj") .nes. "" then delete [.src.icon]info.obj;* +$ if f$search("[.src.icon]left.obj") .nes. "" then delete [.src.icon]left.obj;* +$ if f$search("[.src.icon]news.obj") .nes. "" then delete [.src.icon]news.obj;* $ if f$search("[.src.icon]note.obj") .nes. "" then delete [.src.icon]note.obj;* +$ if f$search("[.src.icon]right.obj") .nes. "" then delete [.src.icon]right.obj;* $ if f$search("[.src.icon]search.obj") .nes. "" then delete [.src.icon]search.obj;* $ if f$search("[.src.icon]up.obj") .nes. "" then delete [.src.icon]up.obj;* -$ if f$search("[.src.abstract]time.obj") .nes. "" then delete [.src.abstract]time.obj;* +$ if f$search("[.src.icon]warning.obj") .nes. "" then delete [.src.icon]warning.obj;* $ if f$search("[.src.abstract]directory.obj") .nes. "" then delete [.src.abstract]directory.obj;* $ if f$search("[.src.abstract]dynamic.obj") .nes. "" then delete [.src.abstract]dynamic.obj;* +$ if f$search("[.src.abstract]time.obj") .nes. "" then delete [.src.abstract]time.obj;* +$ if f$search("[.src.abstract]charset.obj") .nes. "" then delete [.src.abstract]charset.obj;* $ if f$search("[.external]stb_ds.obj") .nes. "" then delete [.external]stb_ds.obj;* $ if f$search("[.src.backend]x11.obj") .nes. "" then delete [.src.backend]x11.obj;* $ if f$search("[.src]MwSHR.exe") .nes. "" then delete [.src]MwSHR.exe;* From 1c2cd6e8753f92c9e6a9e94b4646ac25320c527e Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 7 May 2026 18:30:24 +0900 Subject: [PATCH 689/836] tab widget --- examples/basic/periodic.c | 9 ++ include/Mw/Draw.h | 1 - include/Mw/LowLevel.h | 2 + include/Mw/LowLevel/Wayland.h | 1 - include/Mw/LowLevel/X11.h | 2 +- include/Mw/Milsko.h | 1 + include/Mw/TypeDefs.h | 6 + include/Mw/Widget/Tab.h | 49 +++++++ milsko.xml | 26 ++++ pl/rules.pl | 1 + src/backend/call.c | 2 + src/backend/classicmacos.c | 5 + src/backend/cocoa.m | 5 + src/backend/gdi.c | 5 + src/backend/haiku.cc | 81 ++++++----- src/backend/wayland/wayland.c | 17 ++- src/backend/x11.c | 18 +++ src/lowlevel.c | 2 + src/widget/opengl.c | 2 +- src/widget/subwindow.c | 3 - src/widget/tab.c | 264 ++++++++++++++++++++++++++++++++++ 21 files changed, 451 insertions(+), 51 deletions(-) create mode 100644 include/Mw/Widget/Tab.h create mode 100644 src/widget/tab.c diff --git a/examples/basic/periodic.c b/examples/basic/periodic.c index 3b9c9a262..c3ef154a8 100644 --- a/examples/basic/periodic.c +++ b/examples/basic/periodic.c @@ -327,6 +327,15 @@ int main() { NULL); add(f); + f = frame("Tab", -PaddingContent, -PaddingContent, MwTabClass, + MwNratio, 2, + NULL); + w = child(f); + MwSetText(MwTabAdd(w, "ABC"), MwNbackground, "#f00"); + MwSetText(MwTabAdd(w, "DEF"), MwNbackground, "#0f0"); + MwSetText(MwTabAdd(w, "GHI"), MwNbackground, "#00f"); + add(f); + f = frame("TreeView", -PaddingContent, -PaddingContent, MwTreeViewClass, NULL); w = child(f); v = MwTreeViewAdd(w, NULL, NULL, "abc"); diff --git a/include/Mw/Draw.h b/include/Mw/Draw.h index a9148f5b1..901379b0b 100644 --- a/include/Mw/Draw.h +++ b/include/Mw/Draw.h @@ -93,7 +93,6 @@ MWDECL void MWAPI MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, * @param border Border width * @param diff Difference (set this to 0 if you don't know what this does) * @param same Same as dark color - * @param rounded Rounded or not * @warning `rect` gets changed to the area of rectangle inside */ MWDECL void MWAPI MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border, int diff, int same); diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index d35a23bcf..2ba2265f5 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -331,6 +331,8 @@ MWDECL MwBool (*MwLLDoModern)(MwLL handle); MWDECL void (*MwLLRaise)(MwLL handle); +MWDECL void (*MwLLClip)(MwLL handle, MwRect* rect); + /* font renderer */ MWDECL void MwFLSetup(void); diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 0916e244c..3babbafce 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -562,7 +562,6 @@ struct _MwLLWayland { cairo_t* back_cairo; /* The cairo to actually use for draw operations. Typically is front_cairo, but MwLLBeginDraw can change this to the back_cairo so it can be used to draw window decorations. */ cairo_t* selected_cairo; - }; struct _MwLLWaylandColor { diff --git a/include/Mw/LowLevel/X11.h b/include/Mw/LowLevel/X11.h index 305a24ae1..e1b74169c 100644 --- a/include/Mw/LowLevel/X11.h +++ b/include/Mw/LowLevel/X11.h @@ -43,7 +43,7 @@ struct _MwLLX11 { XIC xic; long clipboard_time; - int clipboard_pending; /* 1 if UTF8_STRING, 2 if COMPOUNd_TEXT, 3 if TEXT, 4 if STRING, otherwise 0 */ + int clipboard_pending; /* 1 if UTF8_STRING, 2 if COMPOUND_TEXT, 3 if TEXT, 4 if STRING, otherwise 0 */ int top; int toplevel; diff --git a/include/Mw/Milsko.h b/include/Mw/Milsko.h index 40aebc5d4..d2e29bcbb 100644 --- a/include/Mw/Milsko.h +++ b/include/Mw/Milsko.h @@ -50,6 +50,7 @@ #include #include #include +#include #include #include #include diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index 6d5c1fa27..ef061066d 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -28,6 +28,7 @@ typedef struct _MwTreeViewEntry MwTreeViewEntry; typedef struct _MwDirectoryEntry MwDirectoryEntry; typedef struct _MwBox* MwBox; typedef struct _MwSubWindow* MwSubWindow; +typedef struct _MwTab* MwTab; typedef struct _MwMouse MwMouse; #ifdef _MILSKO typedef struct _MwWidget* MwWidget; @@ -224,6 +225,11 @@ struct _MwSubWindow { MwPoint base; }; +struct _MwTab { + MwWidget* frames; + char** names; +}; + struct _MwMouse { MwPoint point; int button; diff --git a/include/Mw/Widget/Tab.h b/include/Mw/Widget/Tab.h new file mode 100644 index 000000000..ea30023e5 --- /dev/null +++ b/include/Mw/Widget/Tab.h @@ -0,0 +1,49 @@ +/*! + * @file Mw/Widget/Tab.h + * @brief Tab widget + */ +#ifndef __MW_WIDGET_TAB_H__ +#define __MW_WIDGET_TAB_H__ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/*! + * @brief Tab widget class + */ +MWDECL MwClass MwTabClass; + +/*! + * @brief Adds a tab + * @param handle Widget + * @param name Tab name + * @return Frame + */ +MwInline MwWidget MwTabAdd(MwWidget handle, const char* name) { + MwWidget out; + MwVaWidgetExecute(handle, "mwTabAdd", &out, name); + return out; +} + +/*! + * @brief Gets a tab frame + * @param handle Widget + * @param name Tab name + * @return Frame + */ +MwInline MwWidget MwTabGetFrame(MwWidget handle, const char* name) { + MwWidget out; + MwVaWidgetExecute(handle, "mwTabGetFrame", &out, name); + return out; +} + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/milsko.xml b/milsko.xml index fe2bf028e..6d50088cb 100644 --- a/milsko.xml +++ b/milsko.xml @@ -910,6 +910,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pl/rules.pl b/pl/rules.pl index 8c0eb0f41..ef9637417 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -159,6 +159,7 @@ new_object("src/widget/scrollbar.c"); new_object("src/widget/separator.c"); new_object("src/widget/submenu.c"); new_object("src/widget/subwindow.c"); +new_object("src/widget/tab.c"); new_object("src/widget/treeview.c"); new_object("src/widget/viewport.c"); new_object("src/widget/window.c"); diff --git a/src/backend/call.c b/src/backend/call.c index 122e26097..f84247f7d 100644 --- a/src/backend/call.c +++ b/src/backend/call.c @@ -59,5 +59,7 @@ MwLLDoModern = MwLLDoModernImpl; \ \ MwLLRaise = MwLLRaiseImpl; \ +\ + MwLLClip = MwLLClipImpl; \ return 0; \ } diff --git a/src/backend/classicmacos.c b/src/backend/classicmacos.c index 4b09cd154..fb2549ea7 100644 --- a/src/backend/classicmacos.c +++ b/src/backend/classicmacos.c @@ -355,6 +355,11 @@ static void MwLLRaiseImpl(MwLL handle) { (void)handle; } +static void MwLLClipImpl(MwLL handle, MwRect* rect) { + (void)handle; + (void)rect; +} + static int MwLLClassicMacOSCallInitImpl(void) { InitGraf(&qd.thePort); InitFonts(); diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index e1951c96a..e07eb6411 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1168,6 +1168,11 @@ static void MwLLRaiseImpl(MwLL handle) { (void)handle; } +static void MwLLClipImpl(MwLL handle, MwRect* rect) { + (void)handle; + (void)rect; +} + static int MwLLCocoaCallInitImpl(void) { #ifndef __APPLE__ printf("Using GNUStep Backend\n"); diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 239ea4d53..42ed787c7 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -882,6 +882,11 @@ static void MwLLRaiseImpl(MwLL handle) { SetWindowPos(handle->gdi.hWnd, NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); } +static void MwLLClipImpl(MwLL handle, MwRect* rect) { + (void)handle; + (void)rect; +} + static int MwLLGDICallInitImpl(void) { void* ntdll; diff --git a/src/backend/haiku.cc b/src/backend/haiku.cc index 84ec62e10..8c4f8bf13 100644 --- a/src/backend/haiku.cc +++ b/src/backend/haiku.cc @@ -471,7 +471,7 @@ static int32 app_thread(void* data) { return 0; } -MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { +static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { MwLL r = (MwLL)malloc(sizeof(*r)); MwRect mrc; BRect rc = BRect(x, y, x + width - 1, y + height - 1); @@ -531,7 +531,7 @@ MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { return r; } -void MwLLDestroyImpl(MwLL handle) { +static void MwLLDestroyImpl(MwLL handle) { MwLLDestroyCommon(handle); handle->haiku.view->PostMessage(BVIEW_MW_DESTROY); @@ -550,7 +550,7 @@ void MwLLDestroyImpl(MwLL handle) { free(handle); } -void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { +static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { int i; BMessage msg(BVIEW_MW_POLYGON); @@ -564,7 +564,7 @@ void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor c handle->haiku.view->PostMessage(&msg); } -void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { +static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { int i; BMessage msg(BVIEW_MW_LINE); @@ -578,15 +578,15 @@ void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { handle->haiku.view->PostMessage(&msg); } -void MwLLBeginDrawImpl(MwLL handle) { +static void MwLLBeginDrawImpl(MwLL handle) { (void)handle; } -void MwLLEndDrawImpl(MwLL handle) { +static void MwLLEndDrawImpl(MwLL handle) { (void)handle; } -MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { +static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { MwLLColor c = (MwLLColor)malloc(sizeof(*c)); MwLLColorUpdate(handle, c, r, g, b); @@ -594,7 +594,7 @@ MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { return c; } -void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { +static void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { (void)handle; c->common.red = r; @@ -602,18 +602,18 @@ void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { c->common.blue = b; } -void MwLLFreeColorImpl(MwLLColor color) { +static void MwLLFreeColorImpl(MwLLColor color) { free(color); } -void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h) { +static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h) { *x = handle->haiku.x; *y = handle->haiku.y; *w = handle->haiku.width; *h = handle->haiku.height; } -void MwLLSetXYImpl(MwLL handle, int x, int y) { +static void MwLLSetXYImpl(MwLL handle, int x, int y) { BMessage msg(BVIEW_MW_MOVE); handle->haiku.x = x; @@ -625,7 +625,7 @@ void MwLLSetXYImpl(MwLL handle, int x, int y) { handle->haiku.view->PostMessage(&msg); } -void MwLLSetWHImpl(MwLL handle, int w, int h) { +static void MwLLSetWHImpl(MwLL handle, int w, int h) { BMessage msg(BVIEW_MW_RESIZE); handle->haiku.width = w; @@ -639,7 +639,7 @@ void MwLLSetWHImpl(MwLL handle, int w, int h) { MwLLDispatch(handle, resize, NULL); } -void MwLLSetTitleImpl(MwLL handle, const char* title) { +static void MwLLSetTitleImpl(MwLL handle, const char* title) { BMessage msg(BWIN_MW_SET_TITLE); if(handle->haiku.app == NULL) return; @@ -649,7 +649,7 @@ void MwLLSetTitleImpl(MwLL handle, const char* title) { handle->haiku.window->PostMessage(&msg); } -int MwLLPendingImpl(MwLL handle) { +static int MwLLPendingImpl(MwLL handle) { handle->haiku.view->locker->Lock(); if(arrlen(handle->haiku.events) > 0) { handle->haiku.view->locker->Unlock(); @@ -660,7 +660,7 @@ int MwLLPendingImpl(MwLL handle) { return 0; } -void MwLLNextEventImpl(MwLL handle) { +static void MwLLNextEventImpl(MwLL handle) { int rendered = 0; handle->haiku.view->locker->Lock(); @@ -702,7 +702,7 @@ void MwLLNextEventImpl(MwLL handle) { if(rendered) handle->haiku.force_render = 0; } -MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) { +static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) { MwLLPixmap r = (MwLLPixmap)malloc(sizeof(*r)); (void)handle; @@ -721,7 +721,7 @@ MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int return r; } -void MwLLPixmapUpdateImpl(MwLLPixmap pixmap) { +static void MwLLPixmapUpdateImpl(MwLLPixmap pixmap) { uint32* px = (uint32*)malloc(4 * pixmap->common.width * pixmap->common.height); int i; @@ -740,13 +740,13 @@ void MwLLPixmapUpdateImpl(MwLLPixmap pixmap) { free(px); } -void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { +static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { free(pixmap->common.raw); free(pixmap); } -void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { +static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { BRect rc; BMessage msg(BVIEW_MW_BITMAP); @@ -758,25 +758,25 @@ void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { handle->haiku.view->PostMessage(&msg); } -void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { +static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { (void)handle; (void)pixmap; } -void MwLLForceRenderImpl(MwLL handle) { +static void MwLLForceRenderImpl(MwLL handle) { if(handle->haiku.force_render) return; handle->haiku.force_render = 1; handle->haiku.view->PostMessage(BVIEW_MW_RENDER); } -void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { +static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) { (void)handle; (void)image; (void)mask; } -void MwLLDetachImpl(MwLL handle, MwPoint* point) { +static void MwLLDetachImpl(MwLL handle, MwPoint* point) { BMessage msg(BVIEW_MW_DETACH); msg.AddPoint("view-point", BPoint(point->x, point->y)); @@ -786,7 +786,7 @@ void MwLLDetachImpl(MwLL handle, MwPoint* point) { while(handle->haiku.window == NULL); } -void MwLLShowImpl(MwLL handle, int show) { +static void MwLLShowImpl(MwLL handle, int show) { if(show) { handle->haiku.view->PostMessage(BVIEW_MW_SHOW); } else { @@ -794,7 +794,7 @@ void MwLLShowImpl(MwLL handle, int show) { } } -void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) { +static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) { (void)handle; (void)minx; (void)miny; @@ -802,7 +802,7 @@ void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) { (void)maxy; } -void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { +static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { if(toggle) { handle->haiku.type = B_TITLED_WINDOW; } else { @@ -810,20 +810,20 @@ void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { } } -void MwLLMakeToolWindowImpl(MwLL handle) { +static void MwLLMakeToolWindowImpl(MwLL handle) { handle->haiku.type = B_UNTYPED_WINDOW; } -void MwLLMakePopupImpl(MwLL handle, MwLL parent) { +static void MwLLMakePopupImpl(MwLL handle, MwLL parent) { (void)handle; (void)parent; } -void MwLLBeginStateChangeImpl(MwLL handle) { +static void MwLLBeginStateChangeImpl(MwLL handle) { handle->haiku.type = handle->haiku.window == NULL ? B_TITLED_WINDOW : handle->haiku.window->Type(); } -void MwLLEndStateChangeImpl(MwLL handle) { +static void MwLLEndStateChangeImpl(MwLL handle) { BMessage msg(BWIN_MW_SET_TYPE); msg.AddInt32("window-type", handle->haiku.type); @@ -831,27 +831,27 @@ void MwLLEndStateChangeImpl(MwLL handle) { BMessenger(handle->haiku.window).SendMessage(&msg); } -void MwLLFocusImpl(MwLL handle) { +static void MwLLFocusImpl(MwLL handle) { (void)handle; } -void MwLLGrabPointerImpl(MwLL handle, int toggle) { +static void MwLLGrabPointerImpl(MwLL handle, int toggle) { (void)handle; (void)toggle; } -void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_type) { +static void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_type) { (void)handle; (void)text; (void)clipboard_type; } -void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) { +static void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) { (void)handle; (void)clipboard_type; } -void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { +static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { MwLL top = handle; BMessage msg(BVIEW_MW_GET_MOUSE); BPoint p; @@ -866,7 +866,7 @@ void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { point->y = p.y; } -void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { +static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { BScreen* screen = new BScreen(); (void)handle; @@ -879,12 +879,12 @@ void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { delete screen; } -void MwLLSetDarkThemeImpl(MwLL handle, int toggle) { +static void MwLLSetDarkThemeImpl(MwLL handle, int toggle) { (void)handle; (void)toggle; } -MwBool MwLLDoModernImpl(MwLL handle) { +static MwBool MwLLDoModernImpl(MwLL handle) { (void)handle; return MwTRUE; } @@ -893,6 +893,11 @@ static void MwLLRaiseImpl(MwLL handle) { handle->haiku.view->SendMessage(BVIEW_MW_RAISE); } +static void MwLLClipImpl(MwLL handle, MwRect* rect) { + (void)handle; + (void)rect; +} + int MwLLHaikuCallInitImpl() { return 0; } diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 7bd497cf6..e6d6c69dc 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -1573,6 +1573,11 @@ static void MwLLSetDarkThemeImpl(MwLL handle, int toggle) { (void)toggle; } +static MwBool MwLLDoModernImpl(MwLL handle) { + (void)handle; + return MwTRUE; +} + static void MwLLRaiseImpl(MwLL handle) { (void)handle; /* WIDGET_CHECK(handle); @@ -1591,6 +1596,11 @@ static void MwLLRaiseImpl(MwLL handle) { }*/ } +static void MwLLClipImpl(MwLL handle, MwRect* rect) { + (void)handle; + (void)rect; +} + static int MwLLWaylandCallInitImpl(void) { #ifdef __linux__ MwBool loadWayland = MwFALSE; @@ -1602,7 +1612,7 @@ static int MwLLWaylandCallInitImpl(void) { } #ifdef MW_OPENGL - if(getenv("WSLENV") || getenv("WSL_DISTRO_NAME")){ + if(getenv("WSLENV") || getenv("WSL_DISTRO_NAME")) { loadWayland = 0; } #endif @@ -1619,10 +1629,5 @@ static int MwLLWaylandCallInitImpl(void) { return 1; } -static MwBool MwLLDoModernImpl(MwLL handle) { - (void)handle; - return MwTRUE; -} - #include "../call.c" CALL(Wayland); diff --git a/src/backend/x11.c b/src/backend/x11.c index 29af5d656..79ce4295c 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -65,6 +65,7 @@ static struct symtbl { Status (*XSendEvent)(Display*, Window, Bool, long, XEvent*); int (*XSetClipMask)(Display*, GC, Pixmap); int (*XSetClipOrigin)(Display*, GC, int, int); + int (*XSetClipRectangles)(Display*, GC, int, int, XRectangle[], int, int); int (*XSetForeground)(Display*, GC, unsigned long); int (*XSetGraphicsExposures)(Display*, GC, Bool); int (*XSetInputFocus)(Display*, Window, int, Time); @@ -178,6 +179,7 @@ static struct symtbl { #define XReparentWindow xsymtbl.XReparentWindow #define XCreatePixmap xsymtbl.XCreatePixmap #define XSetClipOrigin xsymtbl.XSetClipOrigin +#define XSetClipRectangles xsymtbl.XSetClipRectangles #define XCloseIM xsymtbl.XCloseIM #define XQueryTree xsymtbl.XQueryTree #define XPending xsymtbl.XPending @@ -1381,6 +1383,21 @@ static void MwLLRaiseImpl(MwLL handle) { XRaiseWindow(handle->x11.display, handle->x11.window); } +static void MwLLClipImpl(MwLL handle, MwRect* rect) { + if(rect == NULL) { + XSetClipMask(handle->x11.display, handle->x11.gc, None); + } else { + XRectangle rc; + + rc.x = 0; + rc.y = 0; + rc.width = rect->width; + rc.height = rect->height; + + XSetClipRectangles(handle->x11.display, handle->x11.gc, rect->x, rect->y, &rc, 1, Unsorted); + } +} + static int MwLLX11CallInitImpl(void) { MwBool loadX11 = MwFALSE; if(getenv("MILSKO_BACKEND")) { @@ -1460,6 +1477,7 @@ static int MwLLX11CallInitImpl(void) { X11_FUNC_LOAD(XSendEvent); X11_FUNC_LOAD(XSetClipMask); X11_FUNC_LOAD(XSetClipOrigin); + X11_FUNC_LOAD(XSetClipRectangles); X11_FUNC_LOAD(XSetForeground); X11_FUNC_LOAD(XSetGraphicsExposures); X11_FUNC_LOAD(XSetInputFocus); diff --git a/src/lowlevel.c b/src/lowlevel.c index ea07510d3..bc9e55b7c 100644 --- a/src/lowlevel.c +++ b/src/lowlevel.c @@ -57,6 +57,8 @@ MwBool (*MwLLDoModern)(MwLL handle) = NULL; void (*MwLLRaise)(MwLL handle) = NULL; +void (*MwLLClip)(MwLL handle, MwRect* rect) = NULL; + void MwLLCreateCommon(MwLL handle) { handle->common.handler = malloc(sizeof(*handle->common.handler)); memset(handle->common.handler, 0, sizeof(*handle->common.handler)); diff --git a/src/widget/opengl.c b/src/widget/opengl.c index bb62c0f96..13eda0ee8 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -58,7 +58,7 @@ typedef struct x11opengl { #include #include -/* +/* Note that for Wayland we create a GBM buffer manually and handle blitting it ourselves instead of using wayland-egl. Doing this allows us greater freedom over event handling; wayland-egl constantly pumps events, making us have to add a weird exception to wayland.c to make this work. Doing this also allows us to clip the OpenGL widget, something that was harder (impossible) with egl wayland. */ typedef struct waylandopengl { diff --git a/src/widget/subwindow.c b/src/widget/subwindow.c index e2ad237ee..81b539218 100644 --- a/src/widget/subwindow.c +++ b/src/widget/subwindow.c @@ -263,8 +263,6 @@ static void resize(MwWidget handle) { BUTTON(close); BUTTON(maximize); BUTTON(minimize); - - MwDispatchUserHandler(handle, MwNresizeHandler, NULL); } static int wcreate(MwWidget handle) { @@ -279,7 +277,6 @@ static int wcreate(MwWidget handle) { MwSetDefault(handle); - return 0; } diff --git a/src/widget/tab.c b/src/widget/tab.c new file mode 100644 index 000000000..e9ccd6135 --- /dev/null +++ b/src/widget/tab.c @@ -0,0 +1,264 @@ +#include + +#include "../../external/stb_ds.h" + +static void resize(MwWidget handle); + +static int wcreate(MwWidget handle) { + MwTab t = malloc(sizeof(*t)); + memset(t, 0, sizeof(*t)); + + handle->internal = t; + + MwSetDefault(handle); + + MwSetInteger(handle, MwNvalue, -1); + + return 0; +} + +static void destroy(MwWidget handle) { + MwTab t = handle->internal; + int i; + + for(i = 0; i < arrlen(t->names); i++) { + free(t->names[i]); + } + + arrfree(t->names); + arrfree(t->frames); + + free(handle->internal); +} + +static int tab_width(MwWidget handle, const char* text) { + return MwTextWidth(handle, NULL, text) + 20; +} + +static int tab_height(MwWidget handle) { + return MwTextHeight(handle, NULL, "M") + 10; +} + +static void draw(MwWidget handle) { + MwTab t = handle->internal; + MwLLColor c = MwParseColor(handle, MwGetText(handle, MwNbackground)); + MwLLColor ct = MwParseColor(handle, MwGetText(handle, MwNforeground)); + MwRect r, r2; + int h = tab_height(handle); + int i; + int n; + int x = 0; + + r.x = 0; + r.y = 0; + r.width = MwGetInteger(handle, MwNwidth); + r.height = MwGetInteger(handle, MwNheight); + + MwDrawRect(handle, &r, c); + + for(n = 0; n < 2; n++) { + x = 0; + for(i = 0; i < arrlen(t->names); i++) { + int render = 0; + + if(i == MwGetInteger(handle, MwNvalue) && n == 1) { + r.y += h; + r.height -= h; + MwDrawFrame(handle, &r, c, 0); + + render = 1; + } else if(n == 0) { + render = 1; + } + + r2.x = x; + r2.y = 0; + r2.width = tab_width(handle, t->names[i]); + r2.height = tab_height(handle) + MwDefaultBorderWidth(handle); + + x += r2.width; + + if(render) { + MwPoint p; + + if(n == 1 && arrlen(t->names) > 1 && i > 0) { + MwRect r3 = r2; + + r3.y = tab_height(handle); + r3.width = r3.height = MwDefaultBorderWidth(handle); + + MwLLClip(handle->lowlevel, &r3); + + r3.x -= r3.width; + r3.y -= r3.height; + r3.width *= 2; + r3.height *= 2; + MwDrawFrame(handle, &r3, c, 1); + + MwLLClip(handle->lowlevel, NULL); + } + + if(n == 1 && arrlen(t->names) > 1 && i < (arrlen(t->names) - 1)) { + MwRect r3 = r2; + + r3.x += r2.width - MwDefaultBorderWidth(handle); + r3.y = tab_height(handle); + r3.width = r3.height = MwDefaultBorderWidth(handle); + + MwLLClip(handle->lowlevel, &r3); + + r3.y -= r3.height; + r3.width *= 2; + r3.height *= 2; + MwDrawFrame(handle, &r3, c, 1); + + MwLLClip(handle->lowlevel, NULL); + } + + if(n == 1) { + MwRect r3 = r2; + + r3.height -= MwDefaultBorderWidth(handle); + + MwLLClip(handle->lowlevel, &r3); + } + + MwDrawFrame(handle, &r2, c, 0); + + MwLLClip(handle->lowlevel, NULL); + + if(n == 1) { + MwRect r3 = r2; + + r3.y += r3.height; + r3.height = MwDefaultBorderWidth(handle); + + MwDrawRect(handle, &r3, c); + } + + p.x = r2.x + r2.width / 2; + p.y = r2.y + r2.height / 2; + MwDrawText(handle, NULL, &p, t->names[i], MwALIGNMENT_CENTER, ct); + } + } + } + + MwLLFreeColor(ct); + MwLLFreeColor(c); +} + +static void show_frame(MwWidget handle) { + MwTab t = handle->internal; + int n = MwGetInteger(handle, MwNvalue); + int i; + + for(i = 0; i < arrlen(t->frames); i++) { + if(i != n) MwLLShow(t->frames[i]->lowlevel, 0); + } + + MwLLShow(t->frames[n]->lowlevel, 1); + + resize(handle); + + MwForceRender(handle); + + MwDispatchUserHandler(handle, MwNchangedHandler, NULL); +} + +static void click(MwWidget handle) { + MwTab t = handle->internal; + int i; + int x = 0; + int h = tab_height(handle); + + for(i = 0; i < arrlen(t->names); i++) { + int w = tab_width(handle, t->names[i]); + + if(MwGetInteger(handle, MwNvalue) != i && x <= handle->mouse_point.x && handle->mouse_point.x <= (x + w) && 0 <= handle->mouse_point.y && handle->mouse_point.y <= h) { + MwSetInteger(handle, MwNvalue, i); + show_frame(handle); + } + + x += w; + } +} + +static MwWidget mwTabAddImpl(MwWidget handle, const char* name) { + MwTab t = handle->internal; + MwWidget f = MwCreateWidget(MwFrameClass, "tabframe", handle, 0, MwGetInteger(handle, MwNheight), 0, 0); + char* n = MwStringDuplicate(name); + + arrput(t->frames, f); + arrput(t->names, n); + + MwLLShow(f->lowlevel, 0); + + MwForceRender(handle); + + if(MwGetInteger(handle, MwNvalue) == -1) { + MwSetInteger(handle, MwNvalue, arrlen(t->frames) - 1); + show_frame(handle); + } + + return f; +} + +static MwWidget mwTabGetFrameImpl(MwWidget handle, const char* name) { + MwTab t = handle->internal; + int i; + + for(i = 0; i < arrlen(t->names); i++) { + if(strcmp(t->names[i], name) == 0) return t->frames[i]; + } + + return NULL; +} + +static void func_handler(MwWidget handle, const char* name, void* out, va_list va) { + if(strcmp(name, "mwTabAdd") == 0) { + const char* name = va_arg(va, const char*); + + *(MwWidget*)out = mwTabAddImpl(handle, name); + } else if(strcmp(name, "mwTabGetFrame") == 0) { + const char* name = va_arg(va, const char*); + + *(MwWidget*)out = mwTabGetFrameImpl(handle, name); + } +} + +static void resize(MwWidget handle) { + MwTab t = handle->internal; + int v = MwGetInteger(handle, MwNvalue); + + if(v == -1) return; + + MwVaApply(t->frames[v], + MwNx, MwDefaultBorderWidth(handle), + MwNy, tab_height(handle) + MwDefaultBorderWidth(handle), + MwNwidth, MwGetInteger(handle, MwNwidth) - MwDefaultBorderWidth(handle) * 2, + MwNheight, MwGetInteger(handle, MwNheight) - tab_height(handle) - MwDefaultBorderWidth(handle) * 2, + NULL); +} + +MwClassRec MwTabClassRec = { + wcreate, /* create */ + destroy, /* destroy */ + draw, /* draw */ + click, /* click */ + NULL, /* parent_resize */ + NULL, /* prop_change */ + NULL, /* mouse_move */ + NULL, /* mouse_up */ + NULL, /* mouse_down */ + NULL, /* key */ + func_handler, /* execute */ + NULL, /* tick */ + resize, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + NULL, /* clipboard */ + NULL, /* props_change */ + NULL, + NULL, + NULL}; +MwClass MwTabClass = &MwTabClassRec; From ad49a5581221728cd20fbb491578a15a0debb400 Mon Sep 17 00:00:00 2001 From: Nishi Date: Thu, 7 May 2026 18:40:14 +0900 Subject: [PATCH 690/836] gdi clipping --- BorMakefile | 5 +++-- NTMakefile | 5 +++-- WatMakefile | 7 +++++-- include/Mw/LowLevel/GDI.h | 2 ++ src/backend/gdi.c | 22 ++++++++++++++++++++-- src/widget/tab.c | 4 ++-- 6 files changed, 35 insertions(+), 10 deletions(-) diff --git a/BorMakefile b/BorMakefile index a51c995ae..19655c42a 100644 --- a/BorMakefile +++ b/BorMakefile @@ -93,6 +93,7 @@ clean: del /f /q src\widget\separator.obj del /f /q src\widget\submenu.obj del /f /q src\widget\subwindow.obj + del /f /q src\widget\tab.obj del /f /q src\widget\treeview.obj del /f /q src\widget\viewport.obj del /f /q src\widget\window.obj @@ -308,8 +309,8 @@ examples\gldemos\tripaint.obj: examples/gldemos/tripaint.c $(CC) $(EXE_CFLAGS) -o$@ examples/gldemos/tripaint.c -src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj - $(LD) $(MW_LDFLAGS) -e$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj -lopengl32.lib -lgdi32.lib -luser32.lib -ladvapi32.lib +src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj + $(LD) $(MW_LDFLAGS) -e$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj -lopengl32.lib -lgdi32.lib -luser32.lib -ladvapi32.lib implib src\Mw.lib src\Mw.dll .c.obj: diff --git a/NTMakefile b/NTMakefile index cf57f0b1e..78d3bceeb 100644 --- a/NTMakefile +++ b/NTMakefile @@ -93,6 +93,7 @@ clean: del /f /q src\widget\separator.obj del /f /q src\widget\submenu.obj del /f /q src\widget\subwindow.obj + del /f /q src\widget\tab.obj del /f /q src\widget\treeview.obj del /f /q src\widget\viewport.obj del /f /q src\widget\window.obj @@ -308,8 +309,8 @@ examples\gldemos\tripaint.obj: examples/gldemos/tripaint.c $(CC) $(EXE_CFLAGS) /Fo$@ examples/gldemos/tripaint.c -src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj - $(LD) $(MW_LDFLAGS) /OUT:$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib user32.lib advapi32.lib +src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj + $(LD) $(MW_LDFLAGS) /OUT:$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib user32.lib advapi32.lib .c.obj: diff --git a/WatMakefile b/WatMakefile index 83bfa4871..89bdc85a8 100644 --- a/WatMakefile +++ b/WatMakefile @@ -92,6 +92,7 @@ clean: .SYMBOLIC %erase src/widget/separator.obj %erase src/widget/submenu.obj %erase src/widget/subwindow.obj + %erase src/widget/tab.obj %erase src/widget/treeview.obj %erase src/widget/viewport.obj %erase src/widget/window.obj @@ -307,8 +308,8 @@ examples/gldemos/tripaint.obj: examples/gldemos/tripaint.c $(CC) $(EXE_CFLAGS) -fo=$@ examples/gldemos/tripaint.c -src/Mw.dll: external/libz/src/adler32.obj external/libz/src/compress.obj external/libz/src/crc32.obj external/libz/src/deflate.obj external/libz/src/gzclose.obj external/libz/src/gzlib.obj external/libz/src/gzread.obj external/libz/src/gzwrite.obj external/libz/src/infback.obj external/libz/src/inffast.obj external/libz/src/inflate.obj external/libz/src/inftrees.obj external/libz/src/trees.obj external/libz/src/uncompr.obj external/libz/src/zutil.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/charset.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text/font/boldfont.obj src/text/font/boldmonottf.obj src/text/font/boldttf.obj src/text/font/font.obj src/text/font/monottf.obj src/text/font/ttf.obj src/text/ft2.obj src/text/stbtt.obj src/text/text.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/calendar.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/subwindow.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj - $(LD) $(MW_LDFLAGS) option implib=src/Mw.lib name $@ file external/libz/src/adler32.obj file external/libz/src/compress.obj file external/libz/src/crc32.obj file external/libz/src/deflate.obj file external/libz/src/gzclose.obj file external/libz/src/gzlib.obj file external/libz/src/gzread.obj file external/libz/src/gzwrite.obj file external/libz/src/infback.obj file external/libz/src/inffast.obj file external/libz/src/inflate.obj file external/libz/src/inftrees.obj file external/libz/src/trees.obj file external/libz/src/uncompr.obj file external/libz/src/zutil.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/charset.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/font/boldfont.obj file src/text/font/boldmonottf.obj file src/text/font/boldttf.obj file src/text/font/font.obj file src/text/font/monottf.obj file src/text/font/ttf.obj file src/text/ft2.obj file src/text/stbtt.obj file src/text/text.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/calendar.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/subwindow.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib library advapi32.lib +src/Mw.dll: external/libz/src/adler32.obj external/libz/src/compress.obj external/libz/src/crc32.obj external/libz/src/deflate.obj external/libz/src/gzclose.obj external/libz/src/gzlib.obj external/libz/src/gzread.obj external/libz/src/gzwrite.obj external/libz/src/infback.obj external/libz/src/inffast.obj external/libz/src/inflate.obj external/libz/src/inftrees.obj external/libz/src/trees.obj external/libz/src/uncompr.obj external/libz/src/zutil.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/charset.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text/font/boldfont.obj src/text/font/boldmonottf.obj src/text/font/boldttf.obj src/text/font/font.obj src/text/font/monottf.obj src/text/font/ttf.obj src/text/ft2.obj src/text/stbtt.obj src/text/text.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/calendar.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/subwindow.obj src/widget/tab.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj + $(LD) $(MW_LDFLAGS) option implib=src/Mw.lib name $@ file external/libz/src/adler32.obj file external/libz/src/compress.obj file external/libz/src/crc32.obj file external/libz/src/deflate.obj file external/libz/src/gzclose.obj file external/libz/src/gzlib.obj file external/libz/src/gzread.obj file external/libz/src/gzwrite.obj file external/libz/src/infback.obj file external/libz/src/inffast.obj file external/libz/src/inflate.obj file external/libz/src/inftrees.obj file external/libz/src/trees.obj file external/libz/src/uncompr.obj file external/libz/src/zutil.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/charset.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/font/boldfont.obj file src/text/font/boldmonottf.obj file src/text/font/boldttf.obj file src/text/font/font.obj file src/text/font/monottf.obj file src/text/font/ttf.obj file src/text/ft2.obj file src/text/stbtt.obj file src/text/text.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/calendar.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/subwindow.obj file src/widget/tab.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib library advapi32.lib @@ -478,6 +479,8 @@ src/widget/submenu.obj: src/widget/submenu.c $(CC) $(MW_CFLAGS) -fo=$@ src/widget/submenu.c src/widget/subwindow.obj: src/widget/subwindow.c $(CC) $(MW_CFLAGS) -fo=$@ src/widget/subwindow.c +src/widget/tab.obj: src/widget/tab.c + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/tab.c src/widget/treeview.obj: src/widget/treeview.c $(CC) $(MW_CFLAGS) -fo=$@ src/widget/treeview.c src/widget/viewport.obj: src/widget/viewport.c diff --git a/include/Mw/LowLevel/GDI.h b/include/Mw/LowLevel/GDI.h index e11f8f295..d2e247350 100644 --- a/include/Mw/LowLevel/GDI.h +++ b/include/Mw/LowLevel/GDI.h @@ -23,6 +23,8 @@ struct _MwLLGDI { HCURSOR cursor; HICON icon; + HRGN clip; + int grabbed; int force_render; int get_clipboard; diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 42ed787c7..074306ec5 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -307,6 +307,8 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->gdi.cursor = NULL; r->gdi.icon = NULL; + r->gdi.clip = NULL; + u->ll = r; u->min_set = 0; u->max_set = 0; @@ -340,6 +342,8 @@ static void MwLLDestroyImpl(MwLL handle) { SetWindowLongPtr(handle->gdi.hWnd, GWLP_USERDATA, (LPARAM)NULL); DestroyWindow(handle->gdi.hWnd); + if(handle->gdi.clip != NULL) DeleteObject(handle->gdi.clip); + if(handle->gdi.cursor != NULL) DestroyCursor(handle->gdi.cursor); free(handle); @@ -883,8 +887,22 @@ static void MwLLRaiseImpl(MwLL handle) { } static void MwLLClipImpl(MwLL handle, MwRect* rect) { - (void)handle; - (void)rect; + if(rect == NULL){ + SelectClipRgn(handle->gdi.hDC, NULL); + + if(handle->gdi.clip != NULL){ + DeleteObject(handle->gdi.clip); + handle->gdi.clip = NULL; + } + }else{ + HRGN clip = CreateRectRgn(rect->x, rect->y, rect->x + rect->width, rect->y + rect->height); + + SelectClipRgn(handle->gdi.hDC, clip); + + if(handle->gdi.clip != NULL) DeleteObject(handle->gdi.clip); + + handle->gdi.clip = clip; + } } static int MwLLGDICallInitImpl(void) { diff --git a/src/widget/tab.c b/src/widget/tab.c index e9ccd6135..408b73a87 100644 --- a/src/widget/tab.c +++ b/src/widget/tab.c @@ -81,7 +81,7 @@ static void draw(MwWidget handle) { if(render) { MwPoint p; - if(n == 1 && arrlen(t->names) > 1 && i > 0) { + if(n == 1 && i > 0) { MwRect r3 = r2; r3.y = tab_height(handle); @@ -98,7 +98,7 @@ static void draw(MwWidget handle) { MwLLClip(handle->lowlevel, NULL); } - if(n == 1 && arrlen(t->names) > 1 && i < (arrlen(t->names) - 1)) { + if(n == 1 && i < (arrlen(t->names) - 1)) { MwRect r3 = r2; r3.x += r2.width - MwDefaultBorderWidth(handle); From bf5ab45f2ea859fd988386431a3cd21bb4371087 Mon Sep 17 00:00:00 2001 From: Nishi Date: Thu, 7 May 2026 18:51:42 +0900 Subject: [PATCH 691/836] wayland --- examples/basic/tab.c | 39 +++++++++++++++++++++++++++++++++++ include/Mw/LowLevel/Wayland.h | 3 +++ pl/rules.pl | 1 + src/backend/wayland/wayland.c | 13 ++++++++++-- src/default.c | 2 +- src/draw.c | 4 ++-- 6 files changed, 57 insertions(+), 5 deletions(-) create mode 100644 examples/basic/tab.c diff --git a/examples/basic/tab.c b/examples/basic/tab.c new file mode 100644 index 000000000..8b0ad4ad6 --- /dev/null +++ b/examples/basic/tab.c @@ -0,0 +1,39 @@ +#include + +MwWidget tab; + +static void MWAPI resize(MwWidget handle, void* user, void* client) { + MwVaApply(tab, + MwNwidth, MwGetInteger(handle, MwNwidth), + MwNheight, MwGetInteger(handle, MwNheight), + NULL); +} + +int main() { + MwWidget w; + int i; + MwLLPixmap px[6]; + + MwLibraryInit(); + + w = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 800, 600, + MwNtitle, "subwindow", + NULL); + + tab = MwCreateWidget(MwTabClass, "tab", w, 0, 0, 800, 600); + + for(i = 0; i < 16; i++) { + char buf[32]; + MwWidget sw, f, img; + + sprintf(buf, "Tab %d", i); + + MwTabAdd(tab, buf); + } + + MwAddUserHandler(w, MwNresizeHandler, resize, NULL); + + resize(w, NULL, NULL); + + MwLoop(w); +} diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 3babbafce..2de34d27e 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -446,6 +446,9 @@ struct _MwLLWayland { MwBool is_toplevel; + MwBool is_clipping; + MwRect clip; + /* Map of Wayland interfaces to their relevant setup functions. */ struct { char* key; diff --git a/pl/rules.pl b/pl/rules.pl index ef9637417..0c5ae4a72 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -201,6 +201,7 @@ new_example("examples/basic/calculator"); new_example("examples/basic/filechooser"); new_example("examples/basic/periodic"); new_example("examples/basic/subwindow"); +new_example("examples/basic/tab"); if (param_get("opengl")) { new_example("examples/gldemos/boing", $gl_libs); diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index e6d6c69dc..1db2c1598 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -591,6 +591,11 @@ static void clip(MwLL handle) { cairo_rectangle(handle->wayland.front_cairo, cx - x, cy - y, mx - cx, my - cy); cairo_clip(handle->wayland.front_cairo); } + + if(handle->wayland.is_clipping){ + cairo_rectangle(handle->wayland.front_cairo, handle->wayland.clip.x, handle->wayland.clip.y, handle->wayland.clip.width, handle->wayland.clip.height); + cairo_clip(handle->wayland.front_cairo); + } } } @@ -700,6 +705,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { } r->wayland.is_toplevel = parent == NULL; + r->wayland.is_clipping = 0; widget_setup(r, parent, x, y, width, height, MwLL_WAYLAND_UNKNOWN); @@ -1597,8 +1603,11 @@ static void MwLLRaiseImpl(MwLL handle) { } static void MwLLClipImpl(MwLL handle, MwRect* rect) { - (void)handle; - (void)rect; + if(rect == NULL){ + handle->wayland.is_clipping = MwFALSE; + }else{ + handle->wayland.clip = *rect; + } } static int MwLLWaylandCallInitImpl(void) { diff --git a/src/default.c b/src/default.c index a1acbd09e..8b8cf5817 100644 --- a/src/default.c +++ b/src/default.c @@ -22,7 +22,7 @@ int MwDefaultBorderWidth(MwWidget handle) { if(bw != MwDEFAULT) return bw; if(MwGetInteger(handle, MwNmodernLook)) { - return 1; + return 2; } else { return 2; } diff --git a/src/draw.c b/src/draw.c index 32c2cd30b..8145df8aa 100644 --- a/src/draw.c +++ b/src/draw.c @@ -359,13 +359,13 @@ static void MwDrawFrameEx_complex(MwWidget handle, MwRect* rect, MwLLColor color MwLLColor lighter = same ? MwLightenColor(handle, darker, 0, 0, 0) : MwLightenColor(handle, color, (ColorDiff / 2) - diff, (ColorDiff / 2) - diff, (ColorDiff / 2) - diff); MwRect r = *rect; - frame_border_complex(handle, rect, lighter, darker, invert, border, diff, same); + frame_border_complex(handle, rect, lighter, darker, invert, border / 2, diff, same); r.x += 1; r.y += 1; r.width -= 2; r.height -= 2; - frame_border_complex(handle, &r, lighter, darker, !invert, border, diff, same); + frame_border_complex(handle, &r, lighter, darker, !invert, border / 2, diff, same); MwLLFreeColor(lighter); MwLLFreeColor(darker); From fe9b08ef550e4675ff23e2f0c5aedea1575dbf76 Mon Sep 17 00:00:00 2001 From: Nishi Date: Thu, 7 May 2026 18:53:13 +0900 Subject: [PATCH 692/836] fix --- examples/basic/listbox.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/basic/listbox.c b/examples/basic/listbox.c index 2b74119c9..7c8f884cf 100644 --- a/examples/basic/listbox.c +++ b/examples/basic/listbox.c @@ -2,7 +2,7 @@ #include "../harvard.c" -MwWidget wmain; +MwWidget w_main; void MWAPI destroy(MwWidget handle, void* user, void* call) { (void)handle; @@ -18,7 +18,7 @@ void MWAPI activate(MwWidget handle, void* user, void* call) { MwStringPrintIntoBuffer(msg, 256, "You pressed: %s", MwListBoxGet(handle, *(int*)call)); - msgbox = MwMessageBox(wmain, msg, "wow", MwMB_ICONINFO | MwMB_BUTTONOK); + msgbox = MwMessageBox(w_main, msg, "wow", MwMB_ICONINFO | MwMB_BUTTONOK); MwAddUserHandler(MwMessageBoxGetChild(msgbox, MwMB_BUTTONOK), MwNactivateHandler, destroy, msgbox); } @@ -31,10 +31,10 @@ int main() { MwLibraryInit(); - wmain = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 640, 480, + w_main = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 640, 480, MwNtitle, "listbox", NULL); - lb = MwCreateWidget(MwListBoxClass, "listbox", wmain, 5, 5, 630, 470); + lb = MwCreateWidget(MwListBoxClass, "listbox", w_main, 5, 5, 630, 470); px = MwLoadIcon(lb, MwIconInfo); @@ -57,5 +57,5 @@ int main() { NULL); MwListBoxSetWidth(lb, 0, -128); - MwLoop(wmain); + MwLoop(w_main); } From 19416d7451bd39e0d378b298bbe6f46199102947 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 7 May 2026 19:40:06 +0900 Subject: [PATCH 693/836] DrawWidgetBack fix --- include/Mw/Default.h | 6 +++++ include/Mw/Draw.h | 11 ++++++++ src/backend/gdi.c | 6 ++--- src/backend/wayland/wayland.c | 6 ++--- src/default.c | 12 +++++++++ src/draw.c | 47 +++++++++++++++++++++++++++-------- src/widget/button.c | 4 +-- src/widget/checkbox.c | 2 +- src/widget/combobox.c | 2 +- src/widget/entry.c | 2 +- src/widget/menu.c | 4 +-- src/widget/numberentry.c | 4 +-- src/widget/progressbar.c | 2 +- src/widget/scrollbar.c | 4 +-- src/widget/separator.c | 2 +- src/widget/submenu.c | 4 +-- src/widget/tab.c | 4 +-- 17 files changed, 88 insertions(+), 34 deletions(-) diff --git a/include/Mw/Default.h b/include/Mw/Default.h index f20a60c68..d1fd52105 100644 --- a/include/Mw/Default.h +++ b/include/Mw/Default.h @@ -83,6 +83,12 @@ MWDECL const int MwDefaultShadow; */ MWDECL int MWAPI MwDefaultBorderWidth(MwWidget handle); +/*! + * @brief Gets default thin border width + * @param handle Widget + */ +MWAPI int MwDefaultThinBorderWidth(MwWidget handle); + #ifdef __cplusplus } #endif diff --git a/include/Mw/Draw.h b/include/Mw/Draw.h index 901379b0b..ae428990b 100644 --- a/include/Mw/Draw.h +++ b/include/Mw/Draw.h @@ -65,6 +65,17 @@ MWDECL void MWAPI MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor colo */ MWDECL void MWAPI MwDrawFrame(MwWidget handle, MwRect* rect, MwLLColor color, int invert); +/*! + * @brief Draws a frame + * @param handle Widget + * @param rect Rectangle area + * @param color Color + * @param invert Invert the 3D border color or not + * @param border Border + * @warning `rect` gets changed to the area of rectangle inside + */ +MWDECL void MWAPI MwDrawFrameWithBorder(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border); + /*! * @brief Does the DrawFrame/DrawRect combo used for drawing widget. * @param handle Widget diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 074306ec5..bbab256d4 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -887,14 +887,14 @@ static void MwLLRaiseImpl(MwLL handle) { } static void MwLLClipImpl(MwLL handle, MwRect* rect) { - if(rect == NULL){ + if(rect == NULL) { SelectClipRgn(handle->gdi.hDC, NULL); - if(handle->gdi.clip != NULL){ + if(handle->gdi.clip != NULL) { DeleteObject(handle->gdi.clip); handle->gdi.clip = NULL; } - }else{ + } else { HRGN clip = CreateRectRgn(rect->x, rect->y, rect->x + rect->width, rect->y + rect->height); SelectClipRgn(handle->gdi.hDC, clip); diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 1db2c1598..bb5a924b6 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -592,7 +592,7 @@ static void clip(MwLL handle) { cairo_clip(handle->wayland.front_cairo); } - if(handle->wayland.is_clipping){ + if(handle->wayland.is_clipping) { cairo_rectangle(handle->wayland.front_cairo, handle->wayland.clip.x, handle->wayland.clip.y, handle->wayland.clip.width, handle->wayland.clip.height); cairo_clip(handle->wayland.front_cairo); } @@ -1603,9 +1603,9 @@ static void MwLLRaiseImpl(MwLL handle) { } static void MwLLClipImpl(MwLL handle, MwRect* rect) { - if(rect == NULL){ + if(rect == NULL) { handle->wayland.is_clipping = MwFALSE; - }else{ + } else { handle->wayland.clip = *rect; } } diff --git a/src/default.c b/src/default.c index 8b8cf5817..44e4c4d6f 100644 --- a/src/default.c +++ b/src/default.c @@ -27,3 +27,15 @@ int MwDefaultBorderWidth(MwWidget handle) { return 2; } } + +int MwDefaultThinBorderWidth(MwWidget handle) { + int bw = MwGetInteger(handle, MwNborderWidth); + + if(bw != MwDEFAULT) return bw; + + if(MwGetInteger(handle, MwNmodernLook)) { + return 1; + } else { + return 2; + } +} diff --git a/src/draw.c b/src/draw.c index 8145df8aa..4d419bc54 100644 --- a/src/draw.c +++ b/src/draw.c @@ -141,23 +141,35 @@ void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color) { } void MwDrawFrame(MwWidget handle, MwRect* rect, MwLLColor color, int invert) { + MwDrawFrameWithBorder(handle, rect, color, invert, MwDefaultBorderWidth(handle)); +} + +static int translate_border(MwWidget handle, int border) { + if(border == MwDEFAULT) return MwDefaultBorderWidth(handle); + + return border; +} + +void MwDrawFrameWithBorder(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border) { int inv; + border = translate_border(handle, border); + if((inv = MwGetInteger(handle, MwNforceInverted)) != MwDEFAULT && inv) invert = 1; if(MwGetInteger(handle, MwNmodernLook)) { - MwDrawFrameEx(handle, rect, color, invert, MwDefaultBorderWidth(handle), 0, 0); + MwDrawFrameEx(handle, rect, color, invert, border, 0, 0); } else { int diff = get_color_diff(handle) / 3 * 2; - if(MwDefaultBorderWidth(handle) >= 2) { + if(border >= 2) { int i; int st = invert ? 1 : 0; for(i = st; i < st + 2; i++) { - if((i % 2) == 0) MwDrawFrameEx(handle, rect, color, invert, MwDefaultBorderWidth(handle) - 1, -diff, (handle->parent == NULL || handle->parent->lowlevel == NULL) ? 1 : 0); + if((i % 2) == 0) MwDrawFrameEx(handle, rect, color, invert, border - 1, -diff, (handle->parent == NULL || handle->parent->lowlevel == NULL) ? 1 : 0); if((i % 2) == 1) MwDrawFrameEx(handle, rect, color, invert, 1, diff, 0); } } else { - MwDrawFrameEx(handle, rect, color, invert, 1, 0, 0); + MwDrawFrameEx(handle, rect, color, invert, border, 0, 0); } } } @@ -177,7 +189,16 @@ void MwDrawWidgetBack(MwWidget handle, MwRect* rect, MwLLColor color, int invert } } - MwDrawFrame(handle, rect, color, invert); + MwDrawFrameWithBorder(handle, rect, color, invert, border); + + if(border == MwDEFAULT) { + int d = MwDefaultBorderWidth(handle) - MwDefaultThinBorderWidth(handle); + + rect->x -= d; + rect->y -= d; + rect->width += d * 2; + rect->height += d * 2; + } } if(rect->width <= 0 || rect->height <= 0) return; @@ -359,13 +380,15 @@ static void MwDrawFrameEx_complex(MwWidget handle, MwRect* rect, MwLLColor color MwLLColor lighter = same ? MwLightenColor(handle, darker, 0, 0, 0) : MwLightenColor(handle, color, (ColorDiff / 2) - diff, (ColorDiff / 2) - diff, (ColorDiff / 2) - diff); MwRect r = *rect; - frame_border_complex(handle, rect, lighter, darker, invert, border / 2, diff, same); + frame_border_complex(handle, rect, lighter, darker, invert, border == 1 ? 1 : (border / 2), diff, same); - r.x += 1; - r.y += 1; - r.width -= 2; - r.height -= 2; - frame_border_complex(handle, &r, lighter, darker, !invert, border / 2, diff, same); + if(border > 1) { + r.x += border / 2; + r.y += border / 2; + r.width -= border; + r.height -= border; + frame_border_complex(handle, &r, lighter, darker, !invert, border / 2, diff, same); + } MwLLFreeColor(lighter); MwLLFreeColor(darker); @@ -377,6 +400,8 @@ static void MwDrawFrameEx_complex(MwWidget handle, MwRect* rect, MwLLColor color } void MwDrawFrameEx(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int border, int diff, int same) { + border = translate_border(handle, border); + if(MwGetInteger(handle, MwNmodernLook)) { MwDrawFrameEx_complex(handle, rect, color, invert, border, diff, same); } else { diff --git a/src/widget/button.c b/src/widget/button.c index a73635628..51337e69d 100644 --- a/src/widget/button.c +++ b/src/widget/button.c @@ -31,12 +31,12 @@ static void draw(MwWidget handle) { if(MwGetInteger(handle, MwNflat)) { if(handle->pressed || ((inv = MwGetInteger(handle, MwNforceInverted)) != MwDEFAULT && inv)) { - MwDrawWidgetBack(handle, &r, base, handle->pressed, 1); + MwDrawWidgetBack(handle, &r, base, handle->pressed, MwDEFAULT); } else { MwDrawRect(handle, &r, base); } } else { - MwDrawWidgetBack(handle, &r, base, handle->pressed, 1); + MwDrawWidgetBack(handle, &r, base, handle->pressed, MwDEFAULT); } if(bgpx != NULL) MwLLDrawPixmap(handle->lowlevel, &r, bgpx); if(MwGetInteger(handle, MwNflat) && !(handle->pressed || ((inv = MwGetInteger(handle, MwNforceInverted)) != MwDEFAULT && inv))) { diff --git a/src/widget/checkbox.c b/src/widget/checkbox.c index 353397619..f196954d3 100644 --- a/src/widget/checkbox.c +++ b/src/widget/checkbox.c @@ -27,7 +27,7 @@ static void draw(MwWidget handle) { r.x = (MwGetInteger(handle, MwNwidth) - r.width) / 2; r.y = (MwGetInteger(handle, MwNheight) - r.height) / 2; - MwDrawWidgetBack(handle, &r, base, (handle->pressed || MwGetInteger(handle, MwNchecked)) ? 1 : 0, MwTRUE); + MwDrawWidgetBack(handle, &r, base, (handle->pressed || MwGetInteger(handle, MwNchecked)) ? 1 : 0, MwDEFAULT); if(bgpx != NULL) MwLLDrawPixmap(handle->lowlevel, &r, bgpx); if(handle->pressed || MwGetInteger(handle, MwNchecked)) { /* TODO: write check mark */ diff --git a/src/widget/combobox.c b/src/widget/combobox.c index d650dadac..79f3e332b 100644 --- a/src/widget/combobox.c +++ b/src/widget/combobox.c @@ -40,7 +40,7 @@ static void draw(MwWidget handle) { r.width = MwGetInteger(handle, MwNwidth); r.height = MwGetInteger(handle, MwNheight); - MwDrawWidgetBack(handle, &r, base, 0, 1); + MwDrawWidgetBack(handle, &r, base, 0, MwDEFAULT); rc = r; diff --git a/src/widget/entry.c b/src/widget/entry.c index 6164af673..85807688f 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -34,7 +34,7 @@ static void draw(MwWidget handle) { r.width = MwGetInteger(handle, MwNwidth) - t->right; r.height = MwGetInteger(handle, MwNheight); - MwDrawWidgetBack(handle, &r, base, 1, 1); + MwDrawWidgetBack(handle, &r, base, 1, MwDEFAULT); if(bgpx != NULL) MwLLDrawPixmap(handle->lowlevel, &r, bgpx); if(str != NULL) { int w = MwTextWidth(handle, font, "M"); diff --git a/src/widget/menu.c b/src/widget/menu.c index 25802b1cc..0422e493e 100644 --- a/src/widget/menu.c +++ b/src/widget/menu.c @@ -107,12 +107,12 @@ static void draw(MwWidget handle) { MENU_LOOP_INIT; - MwDrawWidgetBack(handle, &r, base, 0, MwTRUE); + MwDrawWidgetBack(handle, &r, base, 0, MwDEFAULT); BEGIN_MENU_LOOP; if(m->sub[i]->wsub != NULL || (in_area && handle->pressed)) { MwDrawFrame(handle, &r, base, MwFALSE); - MwDrawWidgetBack(handle, &r, base, 0, MwFALSE); + MwDrawWidgetBack(handle, &r, base, 0, 0); } MwDrawText(handle, MwFLBuildFont((m->sub[i]->wsub != NULL || (in_area && handle->pressed)) ? MwFLFlagBold : 0), &p, m->sub[i]->name + incr, MwALIGNMENT_CENTER, text); diff --git a/src/widget/numberentry.c b/src/widget/numberentry.c index 969d54403..f3a80e94c 100644 --- a/src/widget/numberentry.c +++ b/src/widget/numberentry.c @@ -33,7 +33,7 @@ static void draw(MwWidget handle) { r.y = 0; r.width = e->right; r.height = h / 2; - MwDrawWidgetBack(handle, &r, base, pr, MwTRUE); + MwDrawWidgetBack(handle, &r, base, pr, MwDEFAULT); if(r.width > r.height) { r.width = r.height; @@ -49,7 +49,7 @@ static void draw(MwWidget handle) { r.y = h / 2; r.width = e->right; r.height = h / 2; - MwDrawWidgetBack(handle, &r, base, pr, MwTRUE); + MwDrawWidgetBack(handle, &r, base, pr, MwDEFAULT); if(r.width > r.height) { r.width = r.height; diff --git a/src/widget/progressbar.c b/src/widget/progressbar.c index 5cb6f1569..3185c233b 100644 --- a/src/widget/progressbar.c +++ b/src/widget/progressbar.c @@ -26,7 +26,7 @@ static void draw(MwWidget handle) { w = MwGetInteger(handle, MwNvalue) - MwGetInteger(handle, MwNminValue); w = w / (MwGetInteger(handle, MwNmaxValue) - MwGetInteger(handle, MwNminValue)); - MwDrawWidgetBack(handle, &r, base, 1, MwTRUE); + MwDrawWidgetBack(handle, &r, base, 1, MwDEFAULT); if(bgpx != NULL) MwLLDrawPixmap(handle->lowlevel, &r, bgpx); r.x += MwDefaultBorderWidth(handle); diff --git a/src/widget/scrollbar.c b/src/widget/scrollbar.c index 98a050d9c..346f818ab 100644 --- a/src/widget/scrollbar.c +++ b/src/widget/scrollbar.c @@ -73,7 +73,7 @@ static void draw(MwWidget handle) { ux = r.height; dx = r.width - r.height; - MwDrawWidgetBack(handle, &r, dark, 1, MwTRUE); + MwDrawWidgetBack(handle, &r, dark, 1, MwDEFAULT); if(bgpx != NULL) MwLLDrawPixmap(handle->lowlevel, &r, bgpx); rt = r; @@ -131,7 +131,7 @@ static void draw(MwWidget handle) { } } - if(rbar.height >= 0) MwDrawWidgetBack(handle, &rbar, base, 0, MwTRUE); + if(rbar.height >= 0) MwDrawWidgetBack(handle, &rbar, base, 0, MwDEFAULT); MwLLFreeColor(dark); MwLLFreeColor(base); diff --git a/src/widget/separator.c b/src/widget/separator.c index 4e70ccc7b..d49873ec7 100644 --- a/src/widget/separator.c +++ b/src/widget/separator.c @@ -25,7 +25,7 @@ static void draw(MwWidget handle) { r.y = (r.height - 2) / 2; r.height = 2; } - MwDrawFrameEx(handle, &r, base, 1, 1, 0, 0); + MwDrawFrameEx(handle, &r, base, 1, MwDEFAULT, 0, 0); MwLLFreeColor(base); } diff --git a/src/widget/submenu.c b/src/widget/submenu.c index addd999c3..6bc5d550c 100644 --- a/src/widget/submenu.c +++ b/src/widget/submenu.c @@ -39,7 +39,7 @@ static void draw(MwWidget handle) { r.width = MwGetInteger(handle, MwNwidth); r.height = MwGetInteger(handle, MwNheight); - MwDrawWidgetBack(handle, &r, base, 0, MwTRUE); + MwDrawWidgetBack(handle, &r, base, 0, MwDEFAULT); if(menu != NULL) { MwPoint p; @@ -73,7 +73,7 @@ static void draw(MwWidget handle) { r.y = p.y - 3; r.width = MwGetInteger(handle, MwNwidth) - MwGetInteger(handle, MwNleftPadding); r.height = th + 3 * 2; - MwDrawWidgetBack(handle, &r, base, 0, MwTRUE); + MwDrawWidgetBack(handle, &r, base, 0, MwDEFAULT); } p.x = 5 + tw / 2 + MwGetInteger(handle, MwNleftPadding); diff --git a/src/widget/tab.c b/src/widget/tab.c index 408b73a87..9c6b98d8f 100644 --- a/src/widget/tab.c +++ b/src/widget/tab.c @@ -156,10 +156,10 @@ static void show_frame(MwWidget handle) { if(i != n) MwLLShow(t->frames[i]->lowlevel, 0); } - MwLLShow(t->frames[n]->lowlevel, 1); - resize(handle); + MwLLShow(t->frames[n]->lowlevel, 1); + MwForceRender(handle); MwDispatchUserHandler(handle, MwNchangedHandler, NULL); From 44106562365403cecbd31913bc29530ff46c1bc7 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 7 May 2026 19:42:51 +0900 Subject: [PATCH 694/836] oops --- include/Mw/Default.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/Mw/Default.h b/include/Mw/Default.h index d1fd52105..322082b28 100644 --- a/include/Mw/Default.h +++ b/include/Mw/Default.h @@ -87,7 +87,7 @@ MWDECL int MWAPI MwDefaultBorderWidth(MwWidget handle); * @brief Gets default thin border width * @param handle Widget */ -MWAPI int MwDefaultThinBorderWidth(MwWidget handle); +MWDECL int MwDefaultThinBorderWidth(MwWidget handle); #ifdef __cplusplus } From 059b287a09fe583c8624a170272dbe4d3d0e8716 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 7 May 2026 19:45:14 +0900 Subject: [PATCH 695/836] fix separator --- src/widget/separator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widget/separator.c b/src/widget/separator.c index d49873ec7..4e70ccc7b 100644 --- a/src/widget/separator.c +++ b/src/widget/separator.c @@ -25,7 +25,7 @@ static void draw(MwWidget handle) { r.y = (r.height - 2) / 2; r.height = 2; } - MwDrawFrameEx(handle, &r, base, 1, MwDEFAULT, 0, 0); + MwDrawFrameEx(handle, &r, base, 1, 1, 0, 0); MwLLFreeColor(base); } From 8cb40ce2d4cb9530c0ecfea24a5e43eed3d7dd4e Mon Sep 17 00:00:00 2001 From: Nishi Date: Thu, 7 May 2026 19:47:09 +0900 Subject: [PATCH 696/836] also works on wayland now --- src/backend/wayland/wayland.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index bb5a924b6..63f966dfe 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -1607,6 +1607,7 @@ static void MwLLClipImpl(MwLL handle, MwRect* rect) { handle->wayland.is_clipping = MwFALSE; } else { handle->wayland.clip = *rect; + handle->wayland.is_clipping = MwTRUE; } } From 37c3f9cbdc32618abb64209232d81dcc4bb432b8 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 7 May 2026 19:50:10 +0900 Subject: [PATCH 697/836] 1.2 --- BorMakefile | 12 ++++++++++-- NTMakefile | 12 ++++++++++-- README.txt | 2 +- WatMakefile | 12 ++++++++++-- examples/basic/listbox.c | 6 +++--- include/Mw/Version.h | 4 ++-- src/backend/wayland/wayland.c | 2 +- vms/build.com | 6 ++++++ vms/clean.com | 1 + 9 files changed, 44 insertions(+), 13 deletions(-) diff --git a/BorMakefile b/BorMakefile index 19655c42a..49ba8eda3 100644 --- a/BorMakefile +++ b/BorMakefile @@ -6,9 +6,9 @@ MW_LDFLAGS = -tWD EXE_CFLAGS = -Iinclude EXE_LDFLAGS = .SUFFIXES: .obj .c -all: src\Mw.dll examples\basic\box.exe examples\basic\calculator.exe examples\basic\checkbox.exe examples\basic\clipboard.exe examples\basic\colorpicker.exe examples\basic\combobox.exe examples\basic\example.exe examples\basic\filechooser.exe examples\basic\image.exe examples\basic\listbox.exe examples\basic\messagebox.exe examples\basic\periodic.exe examples\basic\progressbar.exe examples\basic\radiobox.exe examples\basic\rotate.exe examples\basic\scrollbar.exe examples\basic\sevensegment.exe examples\basic\subwindow.exe examples\basic\treeview.exe examples\basic\viewport.exe examples\gldemos\boing.exe examples\gldemos\clock.exe examples\gldemos\cube.exe examples\gldemos\gears.exe examples\gldemos\triangle.exe examples\gldemos\tripaint.exe +all: src\Mw.dll examples\basic\box.exe examples\basic\calculator.exe examples\basic\checkbox.exe examples\basic\clipboard.exe examples\basic\colorpicker.exe examples\basic\combobox.exe examples\basic\example.exe examples\basic\filechooser.exe examples\basic\image.exe examples\basic\listbox.exe examples\basic\messagebox.exe examples\basic\periodic.exe examples\basic\progressbar.exe examples\basic\radiobox.exe examples\basic\rotate.exe examples\basic\scrollbar.exe examples\basic\sevensegment.exe examples\basic\subwindow.exe examples\basic\tab.exe examples\basic\treeview.exe examples\basic\viewport.exe examples\gldemos\boing.exe examples\gldemos\clock.exe examples\gldemos\cube.exe examples\gldemos\gears.exe examples\gldemos\triangle.exe examples\gldemos\tripaint.exe lib: src\Mw.dll -examples: examples\basic\box.exe examples\basic\calculator.exe examples\basic\checkbox.exe examples\basic\clipboard.exe examples\basic\colorpicker.exe examples\basic\combobox.exe examples\basic\example.exe examples\basic\filechooser.exe examples\basic\image.exe examples\basic\listbox.exe examples\basic\messagebox.exe examples\basic\periodic.exe examples\basic\progressbar.exe examples\basic\radiobox.exe examples\basic\rotate.exe examples\basic\scrollbar.exe examples\basic\sevensegment.exe examples\basic\subwindow.exe examples\basic\treeview.exe examples\basic\viewport.exe examples\gldemos\boing.exe examples\gldemos\clock.exe examples\gldemos\cube.exe examples\gldemos\gears.exe examples\gldemos\triangle.exe examples\gldemos\tripaint.exe +examples: examples\basic\box.exe examples\basic\calculator.exe examples\basic\checkbox.exe examples\basic\clipboard.exe examples\basic\colorpicker.exe examples\basic\combobox.exe examples\basic\example.exe examples\basic\filechooser.exe examples\basic\image.exe examples\basic\listbox.exe examples\basic\messagebox.exe examples\basic\periodic.exe examples\basic\progressbar.exe examples\basic\radiobox.exe examples\basic\rotate.exe examples\basic\scrollbar.exe examples\basic\sevensegment.exe examples\basic\subwindow.exe examples\basic\tab.exe examples\basic\treeview.exe examples\basic\viewport.exe examples\gldemos\boing.exe examples\gldemos\clock.exe examples\gldemos\cube.exe examples\gldemos\gears.exe examples\gldemos\triangle.exe examples\gldemos\tripaint.exe clean: del /f /q external\libz\src\adler32.obj del /f /q external\libz\src\compress.obj @@ -117,6 +117,7 @@ clean: del /f /q examples\basic\scrollbar.obj del /f /q examples\basic\sevensegment.obj del /f /q examples\basic\subwindow.obj + del /f /q examples\basic\tab.obj del /f /q examples\basic\treeview.obj del /f /q examples\basic\viewport.obj del /f /q examples\gldemos\boing.obj @@ -143,6 +144,7 @@ clean: del /f /q examples\basic\scrollbar.exe del /f /q examples\basic\sevensegment.exe del /f /q examples\basic\subwindow.exe + del /f /q examples\basic\tab.exe del /f /q examples\basic\treeview.exe del /f /q examples\basic\viewport.exe del /f /q examples\gldemos\boing.exe @@ -260,6 +262,12 @@ examples\basic\subwindow.exe: examples\basic\subwindow.obj src\Mw.dll examples\basic\subwindow.obj: examples/basic/subwindow.c $(CC) $(EXE_CFLAGS) -o$@ examples/basic/subwindow.c +examples\basic\tab.exe: examples\basic\tab.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\tab.obj -lsrc\Mw.lib + +examples\basic\tab.obj: examples/basic/tab.c + $(CC) $(EXE_CFLAGS) -o$@ examples/basic/tab.c + examples\basic\treeview.exe: examples\basic\treeview.obj src\Mw.dll $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\treeview.obj -lsrc\Mw.lib diff --git a/NTMakefile b/NTMakefile index 78d3bceeb..c60838ece 100644 --- a/NTMakefile +++ b/NTMakefile @@ -6,9 +6,9 @@ MW_LDFLAGS = /DLL EXE_CFLAGS = /Iinclude EXE_LDFLAGS = .SUFFIXES: .obj .c -all: src\Mw.dll examples\basic\box.exe examples\basic\calculator.exe examples\basic\checkbox.exe examples\basic\clipboard.exe examples\basic\colorpicker.exe examples\basic\combobox.exe examples\basic\example.exe examples\basic\filechooser.exe examples\basic\image.exe examples\basic\listbox.exe examples\basic\messagebox.exe examples\basic\periodic.exe examples\basic\progressbar.exe examples\basic\radiobox.exe examples\basic\rotate.exe examples\basic\scrollbar.exe examples\basic\sevensegment.exe examples\basic\subwindow.exe examples\basic\treeview.exe examples\basic\viewport.exe examples\gldemos\boing.exe examples\gldemos\clock.exe examples\gldemos\cube.exe examples\gldemos\gears.exe examples\gldemos\triangle.exe examples\gldemos\tripaint.exe +all: src\Mw.dll examples\basic\box.exe examples\basic\calculator.exe examples\basic\checkbox.exe examples\basic\clipboard.exe examples\basic\colorpicker.exe examples\basic\combobox.exe examples\basic\example.exe examples\basic\filechooser.exe examples\basic\image.exe examples\basic\listbox.exe examples\basic\messagebox.exe examples\basic\periodic.exe examples\basic\progressbar.exe examples\basic\radiobox.exe examples\basic\rotate.exe examples\basic\scrollbar.exe examples\basic\sevensegment.exe examples\basic\subwindow.exe examples\basic\tab.exe examples\basic\treeview.exe examples\basic\viewport.exe examples\gldemos\boing.exe examples\gldemos\clock.exe examples\gldemos\cube.exe examples\gldemos\gears.exe examples\gldemos\triangle.exe examples\gldemos\tripaint.exe lib: src\Mw.dll -examples: examples\basic\box.exe examples\basic\calculator.exe examples\basic\checkbox.exe examples\basic\clipboard.exe examples\basic\colorpicker.exe examples\basic\combobox.exe examples\basic\example.exe examples\basic\filechooser.exe examples\basic\image.exe examples\basic\listbox.exe examples\basic\messagebox.exe examples\basic\periodic.exe examples\basic\progressbar.exe examples\basic\radiobox.exe examples\basic\rotate.exe examples\basic\scrollbar.exe examples\basic\sevensegment.exe examples\basic\subwindow.exe examples\basic\treeview.exe examples\basic\viewport.exe examples\gldemos\boing.exe examples\gldemos\clock.exe examples\gldemos\cube.exe examples\gldemos\gears.exe examples\gldemos\triangle.exe examples\gldemos\tripaint.exe +examples: examples\basic\box.exe examples\basic\calculator.exe examples\basic\checkbox.exe examples\basic\clipboard.exe examples\basic\colorpicker.exe examples\basic\combobox.exe examples\basic\example.exe examples\basic\filechooser.exe examples\basic\image.exe examples\basic\listbox.exe examples\basic\messagebox.exe examples\basic\periodic.exe examples\basic\progressbar.exe examples\basic\radiobox.exe examples\basic\rotate.exe examples\basic\scrollbar.exe examples\basic\sevensegment.exe examples\basic\subwindow.exe examples\basic\tab.exe examples\basic\treeview.exe examples\basic\viewport.exe examples\gldemos\boing.exe examples\gldemos\clock.exe examples\gldemos\cube.exe examples\gldemos\gears.exe examples\gldemos\triangle.exe examples\gldemos\tripaint.exe clean: del /f /q external\libz\src\adler32.obj del /f /q external\libz\src\compress.obj @@ -117,6 +117,7 @@ clean: del /f /q examples\basic\scrollbar.obj del /f /q examples\basic\sevensegment.obj del /f /q examples\basic\subwindow.obj + del /f /q examples\basic\tab.obj del /f /q examples\basic\treeview.obj del /f /q examples\basic\viewport.obj del /f /q examples\gldemos\boing.obj @@ -143,6 +144,7 @@ clean: del /f /q examples\basic\scrollbar.exe del /f /q examples\basic\sevensegment.exe del /f /q examples\basic\subwindow.exe + del /f /q examples\basic\tab.exe del /f /q examples\basic\treeview.exe del /f /q examples\basic\viewport.exe del /f /q examples\gldemos\boing.exe @@ -260,6 +262,12 @@ examples\basic\subwindow.exe: examples\basic\subwindow.obj src\Mw.dll examples\basic\subwindow.obj: examples/basic/subwindow.c $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/subwindow.c +examples\basic\tab.exe: examples\basic\tab.obj src\Mw.dll + $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\tab.obj src\Mw.lib + +examples\basic\tab.obj: examples/basic/tab.c + $(CC) $(EXE_CFLAGS) /Fo$@ examples/basic/tab.c + examples\basic\treeview.exe: examples\basic\treeview.obj src\Mw.dll $(LD) $(EXE_LDFLAGS) /OUT:$@ examples\basic\treeview.obj src\Mw.lib diff --git a/README.txt b/README.txt index 3a73a7413..9278f3ff4 100644 --- a/README.txt +++ b/README.txt @@ -1,5 +1,5 @@ -Greetings - Welcome to the Milsko GUI Toolkit (Version 1.1) +Greetings - Welcome to the Milsko GUI Toolkit (Version 1.2) This document contains a brief summary of the contents of this source distributions and building instructions for Milsko GUI Toolkit. diff --git a/WatMakefile b/WatMakefile index 89bdc85a8..eab9e5b8d 100644 --- a/WatMakefile +++ b/WatMakefile @@ -5,9 +5,9 @@ MW_CFLAGS = -bd -i=include -i=external/libz/include -d_MILSKO -dUSE_GDI -dUSE_ST MW_LDFLAGS = system nt_dll EXE_CFLAGS = -i=include EXE_LDFLAGS = system nt -all: src/Mw.dll examples/basic/box.exe examples/basic/calculator.exe examples/basic/checkbox.exe examples/basic/clipboard.exe examples/basic/colorpicker.exe examples/basic/combobox.exe examples/basic/example.exe examples/basic/filechooser.exe examples/basic/image.exe examples/basic/listbox.exe examples/basic/messagebox.exe examples/basic/periodic.exe examples/basic/progressbar.exe examples/basic/radiobox.exe examples/basic/rotate.exe examples/basic/scrollbar.exe examples/basic/sevensegment.exe examples/basic/subwindow.exe examples/basic/treeview.exe examples/basic/viewport.exe examples/gldemos/boing.exe examples/gldemos/clock.exe examples/gldemos/cube.exe examples/gldemos/gears.exe examples/gldemos/triangle.exe examples/gldemos/tripaint.exe +all: src/Mw.dll examples/basic/box.exe examples/basic/calculator.exe examples/basic/checkbox.exe examples/basic/clipboard.exe examples/basic/colorpicker.exe examples/basic/combobox.exe examples/basic/example.exe examples/basic/filechooser.exe examples/basic/image.exe examples/basic/listbox.exe examples/basic/messagebox.exe examples/basic/periodic.exe examples/basic/progressbar.exe examples/basic/radiobox.exe examples/basic/rotate.exe examples/basic/scrollbar.exe examples/basic/sevensegment.exe examples/basic/subwindow.exe examples/basic/tab.exe examples/basic/treeview.exe examples/basic/viewport.exe examples/gldemos/boing.exe examples/gldemos/clock.exe examples/gldemos/cube.exe examples/gldemos/gears.exe examples/gldemos/triangle.exe examples/gldemos/tripaint.exe lib: src/Mw.dll -examples: examples/basic/box.exe examples/basic/calculator.exe examples/basic/checkbox.exe examples/basic/clipboard.exe examples/basic/colorpicker.exe examples/basic/combobox.exe examples/basic/example.exe examples/basic/filechooser.exe examples/basic/image.exe examples/basic/listbox.exe examples/basic/messagebox.exe examples/basic/periodic.exe examples/basic/progressbar.exe examples/basic/radiobox.exe examples/basic/rotate.exe examples/basic/scrollbar.exe examples/basic/sevensegment.exe examples/basic/subwindow.exe examples/basic/treeview.exe examples/basic/viewport.exe examples/gldemos/boing.exe examples/gldemos/clock.exe examples/gldemos/cube.exe examples/gldemos/gears.exe examples/gldemos/triangle.exe examples/gldemos/tripaint.exe +examples: examples/basic/box.exe examples/basic/calculator.exe examples/basic/checkbox.exe examples/basic/clipboard.exe examples/basic/colorpicker.exe examples/basic/combobox.exe examples/basic/example.exe examples/basic/filechooser.exe examples/basic/image.exe examples/basic/listbox.exe examples/basic/messagebox.exe examples/basic/periodic.exe examples/basic/progressbar.exe examples/basic/radiobox.exe examples/basic/rotate.exe examples/basic/scrollbar.exe examples/basic/sevensegment.exe examples/basic/subwindow.exe examples/basic/tab.exe examples/basic/treeview.exe examples/basic/viewport.exe examples/gldemos/boing.exe examples/gldemos/clock.exe examples/gldemos/cube.exe examples/gldemos/gears.exe examples/gldemos/triangle.exe examples/gldemos/tripaint.exe clean: .SYMBOLIC %erase external/libz/src/adler32.obj %erase external/libz/src/compress.obj @@ -116,6 +116,7 @@ clean: .SYMBOLIC %erase examples/basic/scrollbar.obj %erase examples/basic/sevensegment.obj %erase examples/basic/subwindow.obj + %erase examples/basic/tab.obj %erase examples/basic/treeview.obj %erase examples/basic/viewport.obj %erase examples/gldemos/boing.obj @@ -142,6 +143,7 @@ clean: .SYMBOLIC %erase examples/basic/scrollbar.exe %erase examples/basic/sevensegment.exe %erase examples/basic/subwindow.exe + %erase examples/basic/tab.exe %erase examples/basic/treeview.exe %erase examples/basic/viewport.exe %erase examples/gldemos/boing.exe @@ -259,6 +261,12 @@ examples/basic/subwindow.exe: examples/basic/subwindow.obj src/Mw.dll examples/basic/subwindow.obj: examples/basic/subwindow.c $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/subwindow.c +examples/basic/tab.exe: examples/basic/tab.obj src/Mw.dll + $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/tab.obj library clib3r.lib library src/Mw.lib + +examples/basic/tab.obj: examples/basic/tab.c + $(CC) $(EXE_CFLAGS) -fo=$@ examples/basic/tab.c + examples/basic/treeview.exe: examples/basic/treeview.obj src/Mw.dll $(LD) $(EXE_LDFLAGS) name $@ file examples/basic/treeview.obj library clib3r.lib library src/Mw.lib diff --git a/examples/basic/listbox.c b/examples/basic/listbox.c index 7c8f884cf..0ec9fe7cd 100644 --- a/examples/basic/listbox.c +++ b/examples/basic/listbox.c @@ -32,9 +32,9 @@ int main() { MwLibraryInit(); w_main = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 640, 480, - MwNtitle, "listbox", - NULL); - lb = MwCreateWidget(MwListBoxClass, "listbox", w_main, 5, 5, 630, 470); + MwNtitle, "listbox", + NULL); + lb = MwCreateWidget(MwListBoxClass, "listbox", w_main, 5, 5, 630, 470); px = MwLoadIcon(lb, MwIconInfo); diff --git a/include/Mw/Version.h b/include/Mw/Version.h index 2a121eb62..02ca715ad 100644 --- a/include/Mw/Version.h +++ b/include/Mw/Version.h @@ -13,7 +13,7 @@ /*! * @brief Minor version */ -#define MwMINOR 1 +#define MwMINOR 2 /*! * @brief Patchlevel of version, calculated by `patchlevel_alphabet - 'a'` @@ -23,7 +23,7 @@ /*! * @brief Version in string */ -#define MwVERSION "1.1" +#define MwVERSION "1.2" /*! * @brief Version in string diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 63f966dfe..ed2516fe5 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -1606,7 +1606,7 @@ static void MwLLClipImpl(MwLL handle, MwRect* rect) { if(rect == NULL) { handle->wayland.is_clipping = MwFALSE; } else { - handle->wayland.clip = *rect; + handle->wayland.clip = *rect; handle->wayland.is_clipping = MwTRUE; } } diff --git a/vms/build.com b/vms/build.com index 944918f4a..b94143ef1 100644 --- a/vms/build.com +++ b/vms/build.com @@ -163,6 +163,11 @@ $ then $ write sys$output "CC [.src.widget]calendar.obj" $ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]calendar.obj [.src.widget]calendar.c $ endif +$ if f$search("[.src.widget]tab.obj;*") .eqs. "" +$ then +$ write sys$output "CC [.src.widget]tab.obj" +$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]tab.obj [.src.widget]tab.c +$ endif $ if f$search("[.src.dialog]colorpicker.obj;*") .eqs. "" $ then $ write sys$output "CC [.src.dialog]colorpicker.obj" @@ -330,6 +335,7 @@ $ WRITE LINK_OPT "[.src.widget]viewport.obj" $ WRITE LINK_OPT "[.src.widget]window.obj" $ WRITE LINK_OPT "[.src.widget]subwindow.obj" $ WRITE LINK_OPT "[.src.widget]calendar.obj" +$ WRITE LINK_OPT "[.src.widget]tab.obj" $ WRITE LINK_OPT "[.src.dialog]colorpicker.obj" $ WRITE LINK_OPT "[.src.dialog]directorychooser.obj" $ WRITE LINK_OPT "[.src.dialog]filechooser.obj" diff --git a/vms/clean.com b/vms/clean.com index da1ffb383..3faee1d56 100644 --- a/vms/clean.com +++ b/vms/clean.com @@ -31,6 +31,7 @@ $ if f$search("[.src.widget]viewport.obj") .nes. "" then delete [.src.widget]vie $ if f$search("[.src.widget]window.obj") .nes. "" then delete [.src.widget]window.obj;* $ if f$search("[.src.widget]subwindow.obj") .nes. "" then delete [.src.widget]subwindow.obj;* $ if f$search("[.src.widget]calendar.obj") .nes. "" then delete [.src.widget]calendar.obj;* +$ if f$search("[.src.widget]tab.obj") .nes. "" then delete [.src.widget]tab.obj;* $ if f$search("[.src.dialog]colorpicker.obj") .nes. "" then delete [.src.dialog]colorpicker.obj;* $ if f$search("[.src.dialog]directorychooser.obj") .nes. "" then delete [.src.dialog]directorychooser.obj;* $ if f$search("[.src.dialog]filechooser.obj") .nes. "" then delete [.src.dialog]filechooser.obj;* From d1143a68aca99ac6fe3939dfaa299017a9ab4246 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 7 May 2026 22:59:54 +0900 Subject: [PATCH 698/836] smoother tab --- src/widget/tab.c | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/src/widget/tab.c b/src/widget/tab.c index 9c6b98d8f..38ce7fd36 100644 --- a/src/widget/tab.c +++ b/src/widget/tab.c @@ -152,14 +152,8 @@ static void show_frame(MwWidget handle) { int n = MwGetInteger(handle, MwNvalue); int i; - for(i = 0; i < arrlen(t->frames); i++) { - if(i != n) MwLLShow(t->frames[i]->lowlevel, 0); - } - resize(handle); - MwLLShow(t->frames[n]->lowlevel, 1); - MwForceRender(handle); MwDispatchUserHandler(handle, MwNchangedHandler, NULL); @@ -185,14 +179,12 @@ static void click(MwWidget handle) { static MwWidget mwTabAddImpl(MwWidget handle, const char* name) { MwTab t = handle->internal; - MwWidget f = MwCreateWidget(MwFrameClass, "tabframe", handle, 0, MwGetInteger(handle, MwNheight), 0, 0); + MwWidget f = MwCreateWidget(MwFrameClass, "tabframe", handle, 0, MwGetInteger(handle, MwNheight), MwGetInteger(handle, MwNwidth) - MwDefaultBorderWidth(handle) * 2, MwGetInteger(handle, MwNheight) - tab_height(handle) - MwDefaultBorderWidth(handle) * 2); char* n = MwStringDuplicate(name); arrput(t->frames, f); arrput(t->names, n); - MwLLShow(f->lowlevel, 0); - MwForceRender(handle); if(MwGetInteger(handle, MwNvalue) == -1) { @@ -229,15 +221,20 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v static void resize(MwWidget handle) { MwTab t = handle->internal; int v = MwGetInteger(handle, MwNvalue); + int i; - if(v == -1) return; + for(i = 0; i < arrlen(t->frames); i++) { + int y = MwGetInteger(handle, MwNheight); - MwVaApply(t->frames[v], - MwNx, MwDefaultBorderWidth(handle), - MwNy, tab_height(handle) + MwDefaultBorderWidth(handle), - MwNwidth, MwGetInteger(handle, MwNwidth) - MwDefaultBorderWidth(handle) * 2, - MwNheight, MwGetInteger(handle, MwNheight) - tab_height(handle) - MwDefaultBorderWidth(handle) * 2, - NULL); + if(i == v) tab_height(handle) + MwDefaultBorderWidth(handle); + + MwVaApply(t->frames[i], + MwNx, MwDefaultBorderWidth(handle), + MwNy, y, + MwNwidth, MwGetInteger(handle, MwNwidth) - MwDefaultBorderWidth(handle) * 2, + MwNheight, MwGetInteger(handle, MwNheight) - tab_height(handle) - MwDefaultBorderWidth(handle) * 2, + NULL); + } } MwClassRec MwTabClassRec = { From 582582379b2d6a0d055a7aba1ab6de2e14a939ba Mon Sep 17 00:00:00 2001 From: Nishi Date: Fri, 8 May 2026 00:35:03 +0900 Subject: [PATCH 699/836] fix rendering --- src/widget/combobox.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/widget/combobox.c b/src/widget/combobox.c index 79f3e332b..e53647dde 100644 --- a/src/widget/combobox.c +++ b/src/widget/combobox.c @@ -54,15 +54,6 @@ static void draw(MwWidget handle) { MwDrawText(handle, NULL, &p, cb->list[MwGetInteger(handle, MwNvalue)], MwALIGNMENT_BEGINNING, text); } - r = rc; - r.height /= 5; - r.width = r.height * 3; - r.x = MwGetInteger(handle, MwNwidth) - MwDefaultBorderWidth(handle) - r.width - MwDefaultBorderWidth(handle) * 2; - r.y = MwDefaultBorderWidth(handle); - r.height = rc.height; - r.width += MwDefaultBorderWidth(handle) * 2; - MwDrawWidgetBack(handle, &r, base, 0, 0); - r = rc; r.width = r.height * 3 / 5; r.height = r.width - MwDefaultBorderWidth(handle) * 2; From d0a4d1f1afacedb45682dbc07f0322e30d81b2f0 Mon Sep 17 00:00:00 2001 From: Nishi Date: Fri, 8 May 2026 00:35:34 +0900 Subject: [PATCH 700/836] 1.2a --- README.txt | 2 +- include/Mw/Version.h | 6 +++--- src/widget/tab.c | 19 ++++++++++++++++--- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/README.txt b/README.txt index 9278f3ff4..a4bd83a26 100644 --- a/README.txt +++ b/README.txt @@ -1,5 +1,5 @@ -Greetings - Welcome to the Milsko GUI Toolkit (Version 1.2) +Greetings - Welcome to the Milsko GUI Toolkit (Version 1.2a) This document contains a brief summary of the contents of this source distributions and building instructions for Milsko GUI Toolkit. diff --git a/include/Mw/Version.h b/include/Mw/Version.h index 02ca715ad..ba550d3fd 100644 --- a/include/Mw/Version.h +++ b/include/Mw/Version.h @@ -16,14 +16,14 @@ #define MwMINOR 2 /*! - * @brief Patchlevel of version, calculated by `patchlevel_alphabet - 'a'` + * @brief Patchlevel of version, calculated by `patchlevel_alphabet - 'a' + 1` */ -#define MwPATCH 0 +#define MwPATCH 1 /*! * @brief Version in string */ -#define MwVERSION "1.2" +#define MwVERSION "1.2a" /*! * @brief Version in string diff --git a/src/widget/tab.c b/src/widget/tab.c index 38ce7fd36..31639740e 100644 --- a/src/widget/tab.c +++ b/src/widget/tab.c @@ -95,6 +95,21 @@ static void draw(MwWidget handle) { r3.height *= 2; MwDrawFrame(handle, &r3, c, 1); + MwLLClip(handle->lowlevel, NULL); + }else if(n == 1 && i == 0){ + MwRect r3 = r2; + + r3.y = tab_height(handle); + r3.width = r3.height = MwDefaultBorderWidth(handle); + + MwLLClip(handle->lowlevel, &r3); + + r3.x -= r3.width; + r3.y -= r3.height; + r3.width *= 2; + r3.height *= 3; + MwDrawFrame(handle, &r3, c, 1); + MwLLClip(handle->lowlevel, NULL); } @@ -149,8 +164,6 @@ static void draw(MwWidget handle) { static void show_frame(MwWidget handle) { MwTab t = handle->internal; - int n = MwGetInteger(handle, MwNvalue); - int i; resize(handle); @@ -226,7 +239,7 @@ static void resize(MwWidget handle) { for(i = 0; i < arrlen(t->frames); i++) { int y = MwGetInteger(handle, MwNheight); - if(i == v) tab_height(handle) + MwDefaultBorderWidth(handle); + if(i == v) y = tab_height(handle) + MwDefaultBorderWidth(handle); MwVaApply(t->frames[i], MwNx, MwDefaultBorderWidth(handle), From e929efb461256d19ef73bf8514828b235d51ffb2 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Fri, 8 May 2026 19:00:32 +0900 Subject: [PATCH 701/836] tab --- src/widget/tab.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/widget/tab.c b/src/widget/tab.c index 31639740e..ec9897185 100644 --- a/src/widget/tab.c +++ b/src/widget/tab.c @@ -163,8 +163,6 @@ static void draw(MwWidget handle) { } static void show_frame(MwWidget handle) { - MwTab t = handle->internal; - resize(handle); MwForceRender(handle); From 416bdaf25e29868d8c82c7a43bf5931ebe377861 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sat, 9 May 2026 02:43:32 +0900 Subject: [PATCH 702/836] use MwStringPrintIntoBuffer --- src/widget/calendar.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/widget/calendar.c b/src/widget/calendar.c index a46c0f3ea..3fa304b98 100644 --- a/src/widget/calendar.c +++ b/src/widget/calendar.c @@ -179,7 +179,7 @@ static void draw(MwWidget handle) { p[0].x = r.width / 2; p[0].y = (r.height - sh) / 2; - sprintf(buf, "%d", MwGetInteger(handle, MwNdate)); + MwStringPrintIntoBuffer(buf, 3, "%d", MwGetInteger(handle, MwNdate)); MwDrawText(handle, MwFLBuildFont(MwFLFlagBold), p, buf, MwALIGNMENT_CENTER, ct); r3 = r2; @@ -202,7 +202,7 @@ static void draw(MwWidget handle) { MwLLDrawPixmap(handle->lowlevel, &r2, px); MwLLDestroyPixmap(px); - sprintf(buf, "%d", MwGetInteger(handle, MwNyear)); + MwStringPrintIntoBuffer(buf, 5, "%d", MwGetInteger(handle, MwNyear)); px = blit(handle, buf, c, cf, gh); r2 = r3; From bb599c9fbba57548cdf25be27ea6748d947a91f9 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 10 May 2026 03:22:24 +0900 Subject: [PATCH 703/836] add icon-converter.sh --- tools/icon-converter.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100755 tools/icon-converter.sh diff --git a/tools/icon-converter.sh b/tools/icon-converter.sh new file mode 100755 index 000000000..9d968461c --- /dev/null +++ b/tools/icon-converter.sh @@ -0,0 +1,15 @@ +#!/bin/sh +if [ "x$1" = "x" -o "x$2" = "x" ]; then + echo "Usage: $0 input name" + exit 1 +fi + +GEO=`convert $1 json:- 2>/dev/null | jq -r '(.[0].image.geometry.width | tostring) + "x" + (.[0].image.geometry.height | tostring)'` +WIDTH=`echo $GEO | cut -dx -f1` +HEIGHT=`echo $GEO | cut -dx -f2` + +echo "MwU32 $2[] = {" +echo " ($WIDTH << 16) | $HEIGHT," +convert $1 txt:- 2>/dev/null | grep -oE '#[0-9a-fA-F]{8}' | sed 's/^#/ 0x/' | sed -E 's/$/,/' +echo " 0" +echo "};" From 1d4b1d4e352a0c445d08e2e0a0df7060ffd88e83 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sun, 10 May 2026 06:25:27 +0900 Subject: [PATCH 704/836] rewrite in c --- tools/Makefile | 7 +++++-- tools/icon-converter.c | 36 ++++++++++++++++++++++++++++++++++++ tools/icon-converter.sh | 15 --------------- 3 files changed, 41 insertions(+), 17 deletions(-) create mode 100644 tools/icon-converter.c delete mode 100755 tools/icon-converter.sh diff --git a/tools/Makefile b/tools/Makefile index 3bac0e660..036e36588 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -6,7 +6,7 @@ LIBS = `pkg-config --libs freetype2` .PHONY: all clean .SUFFIXES: .c .o -all: fuzzer font +all: fuzzer font icon-converter icon-converter fuzzer: fuzzer.o $(CC) -g -L../src/ -Wl,-R../src -o $@ fuzzer.o -lMw @@ -14,8 +14,11 @@ fuzzer: fuzzer.o font: font.o $(CC) $(LDFLAGS) -o $@ font.o $(LIBS) +icon-converter: icon-converter.o + $(CC) -o $@ icon-converter.o -lm + .c.o: $(CC) $(CFLAGS) -c -o $@ $< clean: - rm -f *.o font fuzzer + rm -f *.o font fuzzer icon-converter diff --git a/tools/icon-converter.c b/tools/icon-converter.c new file mode 100644 index 000000000..0a3ece82c --- /dev/null +++ b/tools/icon-converter.c @@ -0,0 +1,36 @@ +#define STB_IMAGE_IMPLEMENTATION +#include "../external/stb_image.h" + +#include + +int main(int argc, char** argv){ + unsigned char* rgba; + int width, height, bpp; + int i; + + if(argc != 3){ + printf("Usage: %s input name\n", argv[0]); + return 1; + } + + rgba = stbi_load(argv[1], &width, &height, &bpp, 4); + + printf("MwU32 %s[] = {\n", argv[2]); + printf(" (%d << 16) | %d,\n", width, height); + for(i = 0; i < width * height; i++){ + unsigned char* px = &rgba[i * 4]; + unsigned int p = 0; + int j; + + for(j = 0; j < 4; j++){ + p = p << 8; + p = p | px[j]; + } + + printf(" 0x%x,\n", p); + } + printf(" 0\n"); + printf("};\n"); + + free(rgba); +} diff --git a/tools/icon-converter.sh b/tools/icon-converter.sh deleted file mode 100755 index 9d968461c..000000000 --- a/tools/icon-converter.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -if [ "x$1" = "x" -o "x$2" = "x" ]; then - echo "Usage: $0 input name" - exit 1 -fi - -GEO=`convert $1 json:- 2>/dev/null | jq -r '(.[0].image.geometry.width | tostring) + "x" + (.[0].image.geometry.height | tostring)'` -WIDTH=`echo $GEO | cut -dx -f1` -HEIGHT=`echo $GEO | cut -dx -f2` - -echo "MwU32 $2[] = {" -echo " ($WIDTH << 16) | $HEIGHT," -convert $1 txt:- 2>/dev/null | grep -oE '#[0-9a-fA-F]{8}' | sed 's/^#/ 0x/' | sed -E 's/$/,/' -echo " 0" -echo "};" From b38c146ddf81b02cf104b041b17b6946c15e6e64 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Mon, 11 May 2026 03:55:42 +0900 Subject: [PATCH 705/836] remove debug message --- src/widget/menu.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/widget/menu.c b/src/widget/menu.c index 0422e493e..b7cd471a9 100644 --- a/src/widget/menu.c +++ b/src/widget/menu.c @@ -200,7 +200,6 @@ static void mouse_up(MwWidget handle, void* ptr) { } else if(in_area) { if(arrlen(m->sub[i]->sub) == 0) { MwDispatchUserHandler(handle, MwNmenuHandler, m->sub[i]); - printf("fired\n"); } } else if(m->sub[i]->wsub != NULL) { MwDestroyWidget(m->sub[i]->wsub); From 56544212b1a40004d2e5822a6c3fbdbd2195c1bf Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 12 May 2026 09:49:06 +0900 Subject: [PATCH 706/836] add MwTreeViewGetOpened --- include/Mw/Widget/TreeView.h | 13 +++++++++++++ src/widget/tab.c | 2 +- src/widget/treeview.c | 10 ++++++++++ tools/icon-converter.c | 16 ++++++++-------- 4 files changed, 32 insertions(+), 9 deletions(-) diff --git a/include/Mw/Widget/TreeView.h b/include/Mw/Widget/TreeView.h index b722e1405..f76f6af0a 100644 --- a/include/Mw/Widget/TreeView.h +++ b/include/Mw/Widget/TreeView.h @@ -90,6 +90,19 @@ MwInline void MwTreeViewSetOpened(MwWidget handle, void* item, int opened) { MwVaWidgetExecute(handle, "mwTreeViewSetOpened", NULL, item, opened); } +/*! + * @brief Gets the opened state of ithe item + * @param handle Widget + * @param item Item + * @return Opened or not + */ +MwInline int MwTreeViewGetOpened(MwWidget handle, void* item) { + int out; + MwVaWidgetExecute(handle, "mwTreeViewGetOpened", (void*)&out, item); + + return out; +} + #ifdef __cplusplus } #endif diff --git a/src/widget/tab.c b/src/widget/tab.c index ec9897185..11d5861e6 100644 --- a/src/widget/tab.c +++ b/src/widget/tab.c @@ -96,7 +96,7 @@ static void draw(MwWidget handle) { MwDrawFrame(handle, &r3, c, 1); MwLLClip(handle->lowlevel, NULL); - }else if(n == 1 && i == 0){ + } else if(n == 1 && i == 0) { MwRect r3 = r2; r3.y = tab_height(handle); diff --git a/src/widget/treeview.c b/src/widget/treeview.c index 9979f9c89..3486b14eb 100644 --- a/src/widget/treeview.c +++ b/src/widget/treeview.c @@ -435,6 +435,12 @@ static void mwTreeViewSetOpenedImpl(MwWidget handle, void* item, int opened) { } } +static int mwTreeViewGetOpenedImpl(MwWidget handle, void* item) { + MwTreeViewEntry* e = item; + + return e->opened; +} + static void func_handler(MwWidget handle, const char* name, void* out, va_list va) { if(strcmp(name, "mwTreeViewAdd") == 0) { void* parent = va_arg(va, void*); @@ -468,6 +474,10 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v int opened = va_arg(va, int); mwTreeViewSetOpenedImpl(handle, item, opened); } + if(strcmp(name, "mwTreeViewGetOpened") == 0) { + void* item = va_arg(va, void*); + *(int*)out = mwTreeViewGetOpenedImpl(handle, item); + } } static void tick(MwWidget handle) { diff --git a/tools/icon-converter.c b/tools/icon-converter.c index 0a3ece82c..11dc4510e 100644 --- a/tools/icon-converter.c +++ b/tools/icon-converter.c @@ -3,12 +3,12 @@ #include -int main(int argc, char** argv){ +int main(int argc, char** argv) { unsigned char* rgba; - int width, height, bpp; - int i; + int width, height, bpp; + int i; - if(argc != 3){ + if(argc != 3) { printf("Usage: %s input name\n", argv[0]); return 1; } @@ -17,12 +17,12 @@ int main(int argc, char** argv){ printf("MwU32 %s[] = {\n", argv[2]); printf(" (%d << 16) | %d,\n", width, height); - for(i = 0; i < width * height; i++){ + for(i = 0; i < width * height; i++) { unsigned char* px = &rgba[i * 4]; - unsigned int p = 0; - int j; + unsigned int p = 0; + int j; - for(j = 0; j < 4; j++){ + for(j = 0; j < 4; j++) { p = p << 8; p = p | px[j]; } From 5ff8d9a6f131296dd574e5749096d9b5d9f24618 Mon Sep 17 00:00:00 2001 From: Nishi Date: Tue, 12 May 2026 10:57:51 +0900 Subject: [PATCH 707/836] fix --- src/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core.c b/src/core.c index 2a7b5797b..f330e4933 100644 --- a/src/core.c +++ b/src/core.c @@ -172,7 +172,7 @@ static void lldarkthemehandler(MwLL handle, void* data) { int* ptr = data; int s; - if(IsFirstVisible(h) && (shgeti(h->integer, MwNdarkTheme) == -1 || ((s = MwGetInteger(h, MwNdarkThemeAutomatic)) != MwDEFAULT && s))) { + if(h->widget_class == MwWindowClass && (shgeti(h->integer, MwNdarkTheme) == -1 || ((s = MwGetInteger(h, MwNdarkThemeAutomatic)) != MwDEFAULT && s))) { if(MwGetInteger(h, MwNmodernLook)) { MwVaApply(h, MwNdarkTheme, *ptr, @@ -585,7 +585,7 @@ void MwSetInteger(MwWidget handle, const char* key, int n) { shdel(h->integer, MwNdarkThemeAutomatic); - while(h->parent != NULL && h->parent->widget_class != NULL) h = h->parent; + while(h->parent != NULL && h->parent->widget_class != MwWindowClass) h = h->parent; MwLLSetDarkTheme(h->lowlevel, n); } From 21dcb0242891f9c7e46d9fc7b1bfdda01deff405 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Wed, 13 May 2026 06:18:00 +0900 Subject: [PATCH 708/836] fix warning --- src/widget/treeview.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/widget/treeview.c b/src/widget/treeview.c index 3486b14eb..f74c2b2e0 100644 --- a/src/widget/treeview.c +++ b/src/widget/treeview.c @@ -438,6 +438,8 @@ static void mwTreeViewSetOpenedImpl(MwWidget handle, void* item, int opened) { static int mwTreeViewGetOpenedImpl(MwWidget handle, void* item) { MwTreeViewEntry* e = item; + (void)handle; + return e->opened; } From 90128dc6b28d361dd924e9eaea8ffd22f5f78022 Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 13 May 2026 14:23:02 +0900 Subject: [PATCH 709/836] fix some stuff --- include/Mw/TypeDefs.h | 1 + src/widget/menu.c | 38 ++++++++++++++++++++++---------------- src/widget/treeview.c | 2 +- 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index ef061066d..1e06371a0 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -125,6 +125,7 @@ struct _MwMenu { MwWidget wsub; MwMenu* sub; void* opaque; + int cleaned; }; struct _MwEntry { diff --git a/src/widget/menu.c b/src/widget/menu.c index b7cd471a9..7df61f245 100644 --- a/src/widget/menu.c +++ b/src/widget/menu.c @@ -98,7 +98,8 @@ static void destroy(MwWidget handle) { p2.y = p.y + th / 2 + 5; \ \ m->sub[i]->wsub = MwCreateWidget(MwSubMenuClass, "submenu", handle, 0, MwGetInteger(handle, MwNheight), 0, 0); \ - MwSubMenuAppear(m->sub[i]->wsub, m->sub[i], &p2, 0); + MwSubMenuAppear(m->sub[i]->wsub, m->sub[i], &p2, 0); \ + m->sub[i]->cleaned = 0; static void draw(MwWidget handle) { MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); @@ -139,13 +140,15 @@ static void mouse_down(MwWidget handle, void* ptr) { NEW_SUBMENU; } else if(m->sub[i]->wsub != NULL && m->sub[i]->keep) { MwDestroyWidget(m->sub[i]->wsub); - m->sub[i]->wsub = NULL; - m->sub[i]->keep = 0; + m->sub[i]->wsub = NULL; + m->sub[i]->keep = 0; + m->sub[i]->cleaned = 1; } } else if(m->sub[i]->keep && m->sub[i]->wsub != NULL) { MwDestroyWidget(m->sub[i]->wsub); - m->sub[i]->wsub = NULL; - m->sub[i]->keep = 0; + m->sub[i]->wsub = NULL; + m->sub[i]->keep = 0; + m->sub[i]->cleaned = 1; } END_MENU_LOOP; @@ -170,15 +173,16 @@ static void mouse_move(MwWidget handle) { BEGIN_MENU_LOOP; if(matched && m->sub[i]->wsub != NULL) { MwDestroyWidget(m->sub[i]->wsub); - m->sub[i]->wsub = NULL; - m->sub[i]->keep = 0; + m->sub[i]->wsub = NULL; + m->sub[i]->keep = 0; + m->sub[i]->cleaned = 0; } END_MENU_LOOP; MENU_LOOP_INIT; BEGIN_MENU_LOOP; if(matched && in_area) { - if(m->sub[i]->wsub == NULL && arrlen(m->sub[i]->sub) > 0) { + if(m->sub[i]->wsub == NULL && arrlen(m->sub[i]->sub) > 0 && !m->sub[i]->cleaned) { NEW_SUBMENU; } } @@ -203,8 +207,9 @@ static void mouse_up(MwWidget handle, void* ptr) { } } else if(m->sub[i]->wsub != NULL) { MwDestroyWidget(m->sub[i]->wsub); - m->sub[i]->wsub = NULL; - m->sub[i]->keep = 0; + m->sub[i]->wsub = NULL; + m->sub[i]->keep = 0; + m->sub[i]->cleaned = 0; } END_MENU_LOOP; @@ -212,12 +217,13 @@ static void mouse_up(MwWidget handle, void* ptr) { } static MwMenu mwMenuAddImpl(MwWidget handle, MwMenu menu, const char* name) { - MwMenu m = menu == NULL ? handle->internal : menu; - MwMenu new = malloc(sizeof(*new)); - new->name = MwStringDuplicate(name); - new->sub = NULL; - new->wsub = NULL; - new->keep = 0; + MwMenu m = menu == NULL ? handle->internal : menu; + MwMenu new = malloc(sizeof(*new)); + new->name = MwStringDuplicate(name); + new->sub = NULL; + new->wsub = NULL; + new->keep = 0; + new->cleaned = 0; arrput(m->sub, new); diff --git a/src/widget/treeview.c b/src/widget/treeview.c index f74c2b2e0..3fba309e5 100644 --- a/src/widget/treeview.c +++ b/src/widget/treeview.c @@ -106,7 +106,7 @@ static void recursion(MwWidget handle, MwTreeViewEntry* tree, MwTreeViewEntry** r.height = MwTextHeight(handle, Font, "M"); r.width = r.height * tree->pixmap->common.width / tree->pixmap->common.height; - r.x = p->x; + r.x = p->x + (MwGetInteger(handle->parent, MwNleftPadding) - r.width) / 2; r.y = p->y - MwTextHeight(handle, Font, "M") / 2; if(draw) MwLLDrawPixmap(handle->lowlevel, &r, tree->pixmap); From e448a8ed4e1bf989ef472b61ac13e161b6a1e53c Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 13 May 2026 14:41:35 +0900 Subject: [PATCH 710/836] fix --- src/core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/core.c b/src/core.c index f330e4933..4fd2645a3 100644 --- a/src/core.c +++ b/src/core.c @@ -585,9 +585,11 @@ void MwSetInteger(MwWidget handle, const char* key, int n) { shdel(h->integer, MwNdarkThemeAutomatic); - while(h->parent != NULL && h->parent->widget_class != MwWindowClass) h = h->parent; + if(h->widget_class != MwWindowClass) { + while(h->parent != NULL && h->parent->widget_class != MwWindowClass) h = h->parent; + } - MwLLSetDarkTheme(h->lowlevel, n); + if(h->lowlevel != NULL) MwLLSetDarkTheme(h->lowlevel, n); } } From 1ec68267e51f89c6ccb7574e8bf9adf999a865f8 Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 13 May 2026 14:47:48 +0900 Subject: [PATCH 711/836] forgot to update xml --- milsko.xml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/milsko.xml b/milsko.xml index 6d50088cb..8518a27ca 100644 --- a/milsko.xml +++ b/milsko.xml @@ -891,6 +891,20 @@ + + + + + + + + + + + + + + From 206dd9a0a6c54cfbdb2d68861d67c67eda4d0cae Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 13 May 2026 14:49:02 +0900 Subject: [PATCH 712/836] 1.3 --- README.txt | 2 +- include/Mw/Version.h | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.txt b/README.txt index a4bd83a26..fbf3732c7 100644 --- a/README.txt +++ b/README.txt @@ -1,5 +1,5 @@ -Greetings - Welcome to the Milsko GUI Toolkit (Version 1.2a) +Greetings - Welcome to the Milsko GUI Toolkit (Version 1.3) This document contains a brief summary of the contents of this source distributions and building instructions for Milsko GUI Toolkit. diff --git a/include/Mw/Version.h b/include/Mw/Version.h index ba550d3fd..5fb57f6b8 100644 --- a/include/Mw/Version.h +++ b/include/Mw/Version.h @@ -13,17 +13,17 @@ /*! * @brief Minor version */ -#define MwMINOR 2 +#define MwMINOR 3 /*! - * @brief Patchlevel of version, calculated by `patchlevel_alphabet - 'a' + 1` + * @brief Patchlevel of version, if patchlevel_alphabet is a or bigger, this value is calculated by `patchlevel_alphabet - 'a' + 1`. Otherwise 0 */ -#define MwPATCH 1 +#define MwPATCH 0 /*! * @brief Version in string */ -#define MwVERSION "1.2a" +#define MwVERSION "1.3" /*! * @brief Version in string From b258f1e05d26efeb02c97a398d43a9143f9b29d1 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 13 May 2026 00:05:06 -0700 Subject: [PATCH 713/836] label: replace giant if/else block in draw, just change the draw handler function when MwSetSevenSegment is called --- src/widget/label.c | 399 ++++++++++++++++++++++++--------------------- 1 file changed, 212 insertions(+), 187 deletions(-) diff --git a/src/widget/label.c b/src/widget/label.c index 64cfcbd13..0a6ee0d2d 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -122,7 +122,197 @@ static void draw_h(MwWidget handle, unsigned char* raw, int x, int y, int stride } } -static void draw(MwWidget handle) { +static void draw_seven_segment(MwWidget handle) { + MwRect r; + MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); + MwLLColor text = MwParseColor(handle, MwGetText(handle, MwNforeground)); + MwLLColor shadow = MwLightenColor(handle, base, MwDefaultShadow, MwDefaultShadow, MwDefaultShadow); + int align; + const char* str = MwGetText(handle, MwNtext); + MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); + MwLabel lab = handle->internal; + int l_one = MwGetInteger(handle, MwNlength) - (MwGetInteger(handle, MwNlength) % 2); + int s_one = (l_one * 3 / 4) - ((l_one * 3 / 4) % 2) + 1; + MwLLPixmap px; + unsigned char* raw; + int w = 0, h = s_one * 3 + l_one * 2, i; + int x = 0; + + if(str == NULL) str = ""; + + r.x = 0; + r.y = 0; + r.width = MwGetInteger(handle, MwNwidth); + r.height = MwGetInteger(handle, MwNheight); + + MwDrawRect(handle, &r, base); + if(bgpx != NULL) MwLLDrawPixmap(handle->lowlevel, &r, bgpx); + + align = MwGetInteger(handle, MwNalignment); + + /* so - this mode cannot do unicode. + * but you wouldn't show unicode on 7 segment anyways + */ + + /* L + * S <---> + * + * S + * ^ + * | + * L | + * | + * v + */ + + for(i = 0; (hmgeti(lab->segment, i) != -1) || str[i] != 0; i++) { + if(i > 0 && ((hmgeti(lab->segment, i) != -1) || str[i] != '.')) w += Spacing; + if(hmgeti(lab->segment, i) != -1 || ('0' <= str[i] && str[i] <= '9') || ('A' <= str[i] && str[i] <= 'F') || ('a' <= str[i] && str[i] <= 'f')) { + w += l_one + s_one * 2; + } else if(str[i] == ':' || str[i] == ' ') { + w += s_one; + } + } + + w++; + h++; + + raw = malloc(w * h * 4); + memset(raw, 0, w * h * 4); + + for(i = 0; (hmgeti(lab->segment, i) != -1) || str[i] != 0; i++) { + if((hmgeti(lab->segment, i) != -1) || ('0' <= str[i] && str[i] <= '9') || ('A' <= str[i] && str[i] <= 'F') || ('a' <= str[i] && str[i] <= 'f')) { + int la = 0, lb = 0, lc = 0, ld = 0, le = 0, lf = 0, lg = 0; + int j; + + /* https://en.wikipedia.org/wiki/File:7_Segment_Display_with_Labeled_Segments.svg */ + + if(hmgeti(lab->segment, i) != -1) { + unsigned char c = hmget(lab->segment, i); + + if(c & (1 << 0)) la = 1; + if(c & (1 << 1)) lb = 1; + if(c & (1 << 2)) lc = 1; + if(c & (1 << 3)) ld = 1; + if(c & (1 << 4)) le = 1; + if(c & (1 << 5)) lf = 1; + if(c & (1 << 6)) lg = 1; + } else { + if(str[i] == '0') { + la = lb = lc = ld = le = lf = 1; + } else if(str[i] == '1') { + lb = lc = 1; + } else if(str[i] == '2') { + la = lb = ld = le = lg = 1; + } else if(str[i] == '3') { + la = lb = lc = ld = lg = 1; + } else if(str[i] == '4') { + lb = lc = lf = lg = 1; + } else if(str[i] == '5') { + la = lc = ld = lf = lg = 1; + } else if(str[i] == '6') { + la = lc = ld = le = lf = lg = 1; + } else if(str[i] == '7') { + la = lb = lc = 1; + } else if(str[i] == '8') { + la = lb = lc = ld = le = lf = lg = 1; + } else if(str[i] == '9') { + la = lb = lc = ld = lf = lg = 1; + } else if(str[i] == 'A' || str[i] == 'a') { + la = lb = lc = le = lf = lg = 1; + } else if(str[i] == 'B' || str[i] == 'b') { + lc = ld = le = lf = lg = 1; + } else if(str[i] == 'C' || str[i] == 'c') { + ld = le = lg = 1; + } else if(str[i] == 'D' || str[i] == 'd') { + lb = lc = ld = le = lg = 1; + } else if(str[i] == 'E' || str[i] == 'e') { + la = ld = le = lf = lg = 1; + } else if(str[i] == 'F' || str[i] == 'f') { + la = le = lf = lg = 1; + } + } + + for(j = 1; j >= 0; j--) { + MwLLColor cl = j == 1 ? shadow : text; + + if(la) draw_h(handle, raw, x + s_one + j, j, w, cl); + if(lb) draw_v(handle, raw, x + s_one + l_one + j, s_one + j, w, cl); + if(lc) draw_v(handle, raw, x + s_one + l_one + j, s_one * 2 + l_one + j, w, cl); + if(ld) draw_h(handle, raw, x + s_one + j, s_one * 2 + l_one * 2 + j, w, cl); + if(le) draw_v(handle, raw, x + j, s_one * 2 + l_one + j, w, cl); + if(lf) draw_v(handle, raw, x + j, s_one + j, w, cl); + if(lg) draw_h(handle, raw, x + s_one + j, s_one + l_one + j, w, cl); + } + + x += l_one + s_one * 2; + } else if(str[i] == ':') { + int cy, cx; + int j; + for(j = 1; j >= 0; j--) { + MwLLColor cl = j == 1 ? shadow : text; + for(cy = 1; cy < h - 1; cy++) { + int h = s_one / 2; + int c = (l_one - h) / 2 + s_one; + + int c1 = (c <= cy && cy <= (c + h)) ? 1 : 0; + int c2 = ((s_one + l_one + c) <= cy && cy <= (s_one + l_one + c + h)) ? 1 : 0; + + if(c1 || c2) { + for(cx = x; cx < x + s_one; cx++) { + unsigned char* px = &raw[((cy + j) * w + (cx + j)) * 4]; + px[0] = cl->common.red; + px[1] = cl->common.green; + px[2] = cl->common.blue; + px[3] = 255; + } + } + } + } + x += s_one; + } else if(str[i] == ' ') { + x += s_one; + } else if(str[i] == '.') { + int cy, cx; + int j; + for(j = 1; j >= 0; j--) { + MwLLColor cl = j == 1 ? shadow : text; + for(cy = h - (s_one - 1) / 2 - 1; cy < h; cy++) { + for(cx = x - Spacing - (s_one - 1) / 2 - 1; cx < (x - Spacing); cx++) { + unsigned char* px = &raw[((cy + j) * w + (cx + j)) * 4]; + px[0] = cl->common.red; + px[1] = cl->common.green; + px[2] = cl->common.blue; + px[3] = 255; + } + } + } + continue; + } + + x += Spacing; + } + + px = MwLoadRaw(handle, raw, w, h); + + r.y = (r.height - h) / 2; + r.height = h; + if(align == MwALIGNMENT_CENTER) { + r.x = (r.width - w) / 2; + } else if(align == MwALIGNMENT_BEGINNING) { + r.x = 0; + } else if(align == MwALIGNMENT_END) { + r.x = r.width - w; + } + r.width = w; + MwLLDrawPixmap(handle->lowlevel, &r, px); + + free(raw); + + MwLLDestroyPixmap(px); +} + +static void draw_normal(MwWidget handle) { MwRect r; MwPoint p; MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); @@ -146,194 +336,27 @@ static void draw(MwWidget handle) { if(bgpx != NULL) MwLLDrawPixmap(handle->lowlevel, &r, bgpx); align = MwGetInteger(handle, MwNalignment); - if(MwGetInteger(handle, MwNsevenSegment)) { - MwLLPixmap px; - unsigned char* raw; - int w = 0, h = s_one * 3 + l_one * 2, i; - int x = 0; - /* so - this mode cannot do unicode. - * but you wouldn't show unicode on 7 segment anyways - */ + r.width -= MwGetInteger(handle, MwNleftPadding); - /* L - * S <---> - * - * S - * ^ - * | - * L | - * | - * v - */ - - for(i = 0; (hmgeti(lab->segment, i) != -1) || str[i] != 0; i++) { - if(i > 0 && ((hmgeti(lab->segment, i) != -1) || str[i] != '.')) w += Spacing; - if(hmgeti(lab->segment, i) != -1 || ('0' <= str[i] && str[i] <= '9') || ('A' <= str[i] && str[i] <= 'F') || ('a' <= str[i] && str[i] <= 'f')) { - w += l_one + s_one * 2; - } else if(str[i] == ':' || str[i] == ' ') { - w += s_one; - } - } - - w++; - h++; - - raw = malloc(w * h * 4); - memset(raw, 0, w * h * 4); - - for(i = 0; (hmgeti(lab->segment, i) != -1) || str[i] != 0; i++) { - if((hmgeti(lab->segment, i) != -1) || ('0' <= str[i] && str[i] <= '9') || ('A' <= str[i] && str[i] <= 'F') || ('a' <= str[i] && str[i] <= 'f')) { - int la = 0, lb = 0, lc = 0, ld = 0, le = 0, lf = 0, lg = 0; - int j; - - /* https://en.wikipedia.org/wiki/File:7_Segment_Display_with_Labeled_Segments.svg */ - - if(hmgeti(lab->segment, i) != -1) { - unsigned char c = hmget(lab->segment, i); - - if(c & (1 << 0)) la = 1; - if(c & (1 << 1)) lb = 1; - if(c & (1 << 2)) lc = 1; - if(c & (1 << 3)) ld = 1; - if(c & (1 << 4)) le = 1; - if(c & (1 << 5)) lf = 1; - if(c & (1 << 6)) lg = 1; - } else { - if(str[i] == '0') { - la = lb = lc = ld = le = lf = 1; - } else if(str[i] == '1') { - lb = lc = 1; - } else if(str[i] == '2') { - la = lb = ld = le = lg = 1; - } else if(str[i] == '3') { - la = lb = lc = ld = lg = 1; - } else if(str[i] == '4') { - lb = lc = lf = lg = 1; - } else if(str[i] == '5') { - la = lc = ld = lf = lg = 1; - } else if(str[i] == '6') { - la = lc = ld = le = lf = lg = 1; - } else if(str[i] == '7') { - la = lb = lc = 1; - } else if(str[i] == '8') { - la = lb = lc = ld = le = lf = lg = 1; - } else if(str[i] == '9') { - la = lb = lc = ld = lf = lg = 1; - } else if(str[i] == 'A' || str[i] == 'a') { - la = lb = lc = le = lf = lg = 1; - } else if(str[i] == 'B' || str[i] == 'b') { - lc = ld = le = lf = lg = 1; - } else if(str[i] == 'C' || str[i] == 'c') { - ld = le = lg = 1; - } else if(str[i] == 'D' || str[i] == 'd') { - lb = lc = ld = le = lg = 1; - } else if(str[i] == 'E' || str[i] == 'e') { - la = ld = le = lf = lg = 1; - } else if(str[i] == 'F' || str[i] == 'f') { - la = le = lf = lg = 1; - } - } - - for(j = 1; j >= 0; j--) { - MwLLColor cl = j == 1 ? shadow : text; - - if(la) draw_h(handle, raw, x + s_one + j, j, w, cl); - if(lb) draw_v(handle, raw, x + s_one + l_one + j, s_one + j, w, cl); - if(lc) draw_v(handle, raw, x + s_one + l_one + j, s_one * 2 + l_one + j, w, cl); - if(ld) draw_h(handle, raw, x + s_one + j, s_one * 2 + l_one * 2 + j, w, cl); - if(le) draw_v(handle, raw, x + j, s_one * 2 + l_one + j, w, cl); - if(lf) draw_v(handle, raw, x + j, s_one + j, w, cl); - if(lg) draw_h(handle, raw, x + s_one + j, s_one + l_one + j, w, cl); - } - - x += l_one + s_one * 2; - } else if(str[i] == ':') { - int cy, cx; - int j; - for(j = 1; j >= 0; j--) { - MwLLColor cl = j == 1 ? shadow : text; - for(cy = 1; cy < h - 1; cy++) { - int h = s_one / 2; - int c = (l_one - h) / 2 + s_one; - - int c1 = (c <= cy && cy <= (c + h)) ? 1 : 0; - int c2 = ((s_one + l_one + c) <= cy && cy <= (s_one + l_one + c + h)) ? 1 : 0; - - if(c1 || c2) { - for(cx = x; cx < x + s_one; cx++) { - unsigned char* px = &raw[((cy + j) * w + (cx + j)) * 4]; - px[0] = cl->common.red; - px[1] = cl->common.green; - px[2] = cl->common.blue; - px[3] = 255; - } - } - } - } - x += s_one; - } else if(str[i] == ' ') { - x += s_one; - } else if(str[i] == '.') { - int cy, cx; - int j; - for(j = 1; j >= 0; j--) { - MwLLColor cl = j == 1 ? shadow : text; - for(cy = h - (s_one - 1) / 2 - 1; cy < h; cy++) { - for(cx = x - Spacing - (s_one - 1) / 2 - 1; cx < (x - Spacing); cx++) { - unsigned char* px = &raw[((cy + j) * w + (cx + j)) * 4]; - px[0] = cl->common.red; - px[1] = cl->common.green; - px[2] = cl->common.blue; - px[3] = 255; - } - } - } - continue; - } - - x += Spacing; - } - - px = MwLoadRaw(handle, raw, w, h); - - r.y = (r.height - h) / 2; - r.height = h; - if(align == MwALIGNMENT_CENTER) { - r.x = (r.width - w) / 2; - } else if(align == MwALIGNMENT_BEGINNING) { - r.x = 0; - } else if(align == MwALIGNMENT_END) { - r.x = r.width - w; - } - r.width = w; - MwLLDrawPixmap(handle->lowlevel, &r, px); - - free(raw); - - MwLLDestroyPixmap(px); - } else { - r.width -= MwGetInteger(handle, MwNleftPadding); - - if(align == MwALIGNMENT_CENTER) { - p.x = r.width / 2; - } else if(align == MwALIGNMENT_BEGINNING) { - p.x = MwTextWidth(handle, NULL, str) / 2; - } else if(align == MwALIGNMENT_END) { - p.x = r.width - MwTextWidth(handle, NULL, str) / 2; - } - p.y = r.height / 2; - - p.x += MwGetInteger(handle, MwNleftPadding); - - p.x += 1; - p.y += 1; - MwDrawText(handle, NULL, &p, str, MwALIGNMENT_CENTER, shadow); - - p.x -= 1; - p.y -= 1; - MwDrawText(handle, NULL, &p, str, MwALIGNMENT_CENTER, text); + if(align == MwALIGNMENT_CENTER) { + p.x = r.width / 2; + } else if(align == MwALIGNMENT_BEGINNING) { + p.x = MwTextWidth(handle, NULL, str) / 2; + } else if(align == MwALIGNMENT_END) { + p.x = r.width - MwTextWidth(handle, NULL, str) / 2; } + p.y = r.height / 2; + + p.x += MwGetInteger(handle, MwNleftPadding); + + p.x += 1; + p.y += 1; + MwDrawText(handle, NULL, &p, str, MwALIGNMENT_CENTER, shadow); + + p.x -= 1; + p.y -= 1; + MwDrawText(handle, NULL, &p, str, MwALIGNMENT_CENTER, text); MwLLFreeColor(shadow); MwLLFreeColor(text); @@ -348,6 +371,8 @@ static void mwLabelSetSevenSegmentImpl(MwWidget handle, int index, unsigned char MwLabel lab = handle->internal; hmput(lab->segment, index, data); + + handle->widget_class->draw = draw_seven_segment; } static void func_handler(MwWidget handle, const char* name, void* out, va_list va) { @@ -364,7 +389,7 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v MwClassRec MwLabelClassRec = { wcreate, /* create */ destroy, /* destroy */ - draw, /* draw */ + draw_normal, /* draw */ NULL, /* click */ NULL, /* parent_resize */ prop_change, /* prop_change */ From 501e32375e3365ac4e8664342ec96c030c20f08a Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 13 May 2026 00:16:17 -0700 Subject: [PATCH 714/836] label: oops, put the function for setting draw_seven_segment in the correct place --- src/widget/label.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/widget/label.c b/src/widget/label.c index 0a6ee0d2d..d598e1b64 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -321,9 +321,7 @@ static void draw_normal(MwWidget handle) { int align; const char* str = MwGetText(handle, MwNtext); MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); - MwLabel lab = handle->internal; int l_one = MwGetInteger(handle, MwNlength) - (MwGetInteger(handle, MwNlength) % 2); - int s_one = (l_one * 3 / 4) - ((l_one * 3 / 4) % 2) + 1; if(str == NULL) str = ""; @@ -365,14 +363,19 @@ static void draw_normal(MwWidget handle) { static void prop_change(MwWidget handle, const char* key) { if(strcmp(key, MwNtext) == 0 || strcmp(key, MwNalignment) == 0 || strcmp(key, MwNsevenSegment) == 0 || strcmp(key, MwNlength) == 0 || strcmp(key, MwNleftPadding) == 0) MwForceRender(handle); + + if(strcmp(key, MwNsevenSegment) == 0) { + if(MwGetInteger(handle, MwNsevenSegment)) + handle->widget_class->draw = draw_seven_segment; + else + handle->widget_class->draw = draw_normal; + } } static void mwLabelSetSevenSegmentImpl(MwWidget handle, int index, unsigned char data) { MwLabel lab = handle->internal; hmput(lab->segment, index, data); - - handle->widget_class->draw = draw_seven_segment; } static void func_handler(MwWidget handle, const char* name, void* out, va_list va) { From 0628250631acbfd008483e28c056d183302808c1 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 13 May 2026 00:37:22 -0700 Subject: [PATCH 715/836] draw func for label should be set per widget oops --- include/Mw/TypeDefs.h | 1 + src/widget/label.c | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index 1e06371a0..6d1776af0 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -193,6 +193,7 @@ struct _MwScrollBar { struct _MwLabel { MwLabelSegment* segment; + MwHandler draw; }; struct _MwLabelSegment { diff --git a/src/widget/label.c b/src/widget/label.c index d598e1b64..10b4df714 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -361,14 +361,23 @@ static void draw_normal(MwWidget handle) { MwLLFreeColor(base); } +static void draw(MwWidget handle) { + MwLabel lab = handle->internal; + if(!lab->draw) { + lab->draw = draw_normal; + } + lab->draw(handle); +} + static void prop_change(MwWidget handle, const char* key) { if(strcmp(key, MwNtext) == 0 || strcmp(key, MwNalignment) == 0 || strcmp(key, MwNsevenSegment) == 0 || strcmp(key, MwNlength) == 0 || strcmp(key, MwNleftPadding) == 0) MwForceRender(handle); if(strcmp(key, MwNsevenSegment) == 0) { + MwLabel lab = handle->internal; if(MwGetInteger(handle, MwNsevenSegment)) - handle->widget_class->draw = draw_seven_segment; + lab->draw = draw_seven_segment; else - handle->widget_class->draw = draw_normal; + lab->draw = draw_normal; } } @@ -392,7 +401,7 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v MwClassRec MwLabelClassRec = { wcreate, /* create */ destroy, /* destroy */ - draw_normal, /* draw */ + draw, /* draw */ NULL, /* click */ NULL, /* parent_resize */ prop_change, /* prop_change */ From 32266c76563d8a41933c4ced3aaa8131039f78ab Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 14 May 2026 21:10:22 +0900 Subject: [PATCH 716/836] add table widget --- examples/basic/periodic.c | 98 ++++------------ include/Mw/Core.h | 7 ++ include/Mw/Milsko.h | 1 + include/Mw/StringDefs.h | 3 + include/Mw/TypeDefs.h | 9 +- include/Mw/Widget/Table.h | 24 ++++ milsko.xml | 13 +++ pl/rules.pl | 1 + src/core.c | 15 ++- src/widget/box.c | 32 +++--- src/widget/table.c | 228 ++++++++++++++++++++++++++++++++++++++ 11 files changed, 336 insertions(+), 95 deletions(-) create mode 100644 include/Mw/Widget/Table.h create mode 100644 src/widget/table.c diff --git a/examples/basic/periodic.c b/examples/basic/periodic.c index c3ef154a8..069395fac 100644 --- a/examples/basic/periodic.c +++ b/examples/basic/periodic.c @@ -6,16 +6,14 @@ #define Padding 20 #define PaddingContent 2 -MwWidget window, menu, box; -MwWidget boxes[32]; -int n = 0, row = -1; +MwWidget window, menu, table; MwMenu e; static void MWAPI resize(MwWidget handle, void* user, void* call) { int w = MwGetInteger(window, MwNwidth); int h = MwGetInteger(window, MwNheight); - MwVaApply(box, + MwVaApply(table, MwNx, Padding, MwNy, MwGetInteger(menu, MwNheight) + Padding, MwNwidth, w - Padding * 2, @@ -23,32 +21,6 @@ static void MWAPI resize(MwWidget handle, void* user, void* call) { NULL); } -static void newrow(void) { - if(row >= 0) { - int i; - - for(i = n; i < Columns; i++) MwCreateWidget(MwFrameClass, "frame", boxes[row], 0, 0, 0, 0); - } - - boxes[++row] = MwVaCreateWidget(MwBoxClass, "box", box, 0, 0, 0, 0, - MwNwaitLayout, 1, - NULL); - - n = 0; -} - -static void add(MwWidget w) { - int r = MwGetInteger(w, MwNratio); - - if(r == MwDEFAULT) r = 1; - - n += r; - - if(n == Columns) { - newrow(); - } -} - static void MWAPI resize_content(MwWidget handle, void* user, void* call) { MwWidget* ws = MwGetChildren(handle); if(ws != NULL) { @@ -97,14 +69,14 @@ static void MWAPI resize_frame(MwWidget handle, void* user, void* call) { } static MwWidget frame(const char* name, int width, int height, MwClass cl, ...) { - MwWidget f = MwVaCreateWidget(MwFrameClass, "frame", boxes[row], 0, 0, 0, 0, + MwWidget f = MwVaCreateWidget(MwFrameClass, "frame", table, 0, 0, 0, 0, MwNhasBorder, 1, MwNinverted, 1, NULL); - MwWidget box = MwVaCreateWidget(MwBoxClass, "box", f, 0, 0, 0, 0, + MwWidget table = MwVaCreateWidget(MwBoxClass, "table", f, 0, 0, 0, 0, MwNorientation, MwVERTICAL, NULL); - MwWidget label = MwVaCreateWidget(MwLabelClass, "label", box, 0, 0, 0, 0, + MwWidget label = MwVaCreateWidget(MwLabelClass, "label", table, 0, 0, 0, 0, MwNtext, name, MwNalignment, MwALIGNMENT_BEGINNING, MwNfixedSize, 20, @@ -112,7 +84,7 @@ static MwWidget frame(const char* name, int width, int height, MwClass cl, ...) va_list va; if(cl != NULL) { - MwWidget frame = MwCreateWidget(MwFrameClass, "frame", box, 0, 0, 0, 0); + MwWidget frame = MwCreateWidget(MwFrameClass, "frame", table, 0, 0, 0, 0); MwWidget w; va_start(va, cl); @@ -128,7 +100,8 @@ static MwWidget frame(const char* name, int width, int height, MwClass cl, ...) MwVaApply(f, "VhandledWidget", w, - MwNratio, MwGetInteger(w, MwNratio), + MwNcolumnSpan, MwGetInteger(w, MwNcolumnSpan), + MwNrowSpan, MwGetInteger(w, MwNrowSpan), NULL); } @@ -224,35 +197,32 @@ int main() { MwAddUserHandler(menu, MwNmenuHandler, menu_handler, NULL); - box = MwVaCreateWidget(MwBoxClass, "box", window, 0, 0, 0, 0, - MwNorientation, MwVERTICAL, - MwNwaitLayout, 1, - NULL); - - newrow(); + table = MwVaCreateWidget(MwTableClass, "table", window, 0, 0, 0, 0, + MwNwaitLayout, 1, + MwNcolumns, 5, + NULL); f = frame("Button", -PaddingContent, -PaddingContent, MwButtonClass, MwNtext, "Press me", NULL); - add(f); - add(MwVaCreateWidget(MwLabelClass, "label", boxes[row], 0, 0, 0, 0, - MwNbold, 1, - MwNtext, "The Periodic Table of Milsko Widgets", - MwNratio, Columns - 2, - NULL)); + MwVaCreateWidget(MwLabelClass, "label", table, 0, 0, 0, 0, + MwNbold, 1, + MwNtext, "The Periodic Table of Milsko Widgets", + MwNcolumnSpan, Columns - 2, + NULL); for(i = 0; i < 2; i++) { f = frame(i == 0 ? "CheckBox" : "RadioBox", -PaddingContent, -PaddingContent, MwBoxClass, MwNmargin, PaddingContent, NULL); w = child(f); - b = MwVaCreateWidget(MwBoxClass, "box1", w, 0, 0, 0, 0, + b = MwVaCreateWidget(MwBoxClass, "table1", w, 0, 0, 0, 0, MwNorientation, MwVERTICAL, MwNfixedSize, 16, NULL); for(j = 0; j < 5; j++) MwCreateWidget(i == 0 ? MwCheckBoxClass : MwRadioBoxClass, i == 0 ? "cb" : "rb", b, 0, 0, 0, 0); - b = MwVaCreateWidget(MwBoxClass, "box1", w, 0, 0, 0, 0, + b = MwVaCreateWidget(MwBoxClass, "table1", w, 0, 0, 0, 0, MwNorientation, MwVERTICAL, NULL); for(j = 0; j < 5; j++) { @@ -263,32 +233,25 @@ int main() { MwNalignment, MwALIGNMENT_BEGINNING, NULL); } - add(f); } f = frame("Calendar", -PaddingContent, -PaddingContent, MwCalendarClass, MwNscale, 1, NULL); - add(f); f = frame("ComboBox", -PaddingContent, 24, MwComboBoxClass, NULL); w = child(f); MwComboBoxAdd(w, -1, "Hello!"); - add(f); f = frame("Entry", -PaddingContent, 24, MwEntryClass, NULL); - add(f); f = frame("Image", -PaddingContent, -PaddingContent, MwImageClass, MwNpixmap, px, NULL); - w = child(f); - add(f); f = frame("Label", -PaddingContent, -PaddingContent, MwLabelClass, MwNtext, "Epic text\nNewline can be used too!", NULL); - add(f); f = frame("ListBox", -PaddingContent, -PaddingContent, MwListBoxClass, MwNhasHeading, 1, @@ -296,26 +259,21 @@ int main() { w = child(f); index = MwListBoxSet(w, -1, 0, "Epic title..."); index = MwListBoxSet(w, -1, 0, "Hello"); - add(f); f = frame("NumberEntry", -PaddingContent, 24, MwNumberEntryClass, NULL); - add(f); f = frame("ProgressBar", -PaddingContent, 24, MwProgressBarClass, MwNvalue, 25, NULL); - add(f); f = frame("ScrollBar", -PaddingContent, 16, MwScrollBarClass, MwNorientation, MwHORIZONTAL, NULL); - add(f); f = frame("Separator", -PaddingContent, -PaddingContent, MwSeparatorClass, NULL); - add(f); f = frame("SubWindow", -PaddingContent, -PaddingContent, MwViewportClass, - MwNratio, 2, + MwNcolumnSpan, 2, NULL); w = child(f); MwViewportSetSize(w, 512, 512); @@ -325,23 +283,20 @@ int main() { MwVaCreateWidget(MwSubWindowClass, "swnd", MwViewportGetViewport(w), 64, 64, 256, 128, MwNtitle, "Sub window 2", NULL); - add(f); f = frame("Tab", -PaddingContent, -PaddingContent, MwTabClass, - MwNratio, 2, + MwNcolumnSpan, 2, NULL); w = child(f); MwSetText(MwTabAdd(w, "ABC"), MwNbackground, "#f00"); MwSetText(MwTabAdd(w, "DEF"), MwNbackground, "#0f0"); MwSetText(MwTabAdd(w, "GHI"), MwNbackground, "#00f"); - add(f); f = frame("TreeView", -PaddingContent, -PaddingContent, MwTreeViewClass, NULL); w = child(f); v = MwTreeViewAdd(w, NULL, NULL, "abc"); v = MwTreeViewAdd(w, v, NULL, "def"); v = MwTreeViewAdd(w, v, NULL, "ghi"); - add(f); f = frame("Viewport", -PaddingContent, -PaddingContent, MwViewportClass, NULL); w = child(f); @@ -349,23 +304,14 @@ int main() { MwVaCreateWidget(MwButtonClass, "btn", MwViewportGetViewport(w), 64, 64, 128, 128, MwNtext, "Thing", NULL); - add(f); - - if(n != 0) newrow(); - if(n == 0) MwDestroyWidget(boxes[row]); MwAddUserHandler(window, MwNresizeHandler, resize, NULL); resize(window, NULL, NULL); - MwVaApply(box, + MwVaApply(table, MwNwaitLayout, 0, NULL); - for(i = 0; i < row; i++) { - MwVaApply(boxes[i], - MwNwaitLayout, 0, - NULL); - } MwLoop(window); diff --git a/include/Mw/Core.h b/include/Mw/Core.h index 80fbb97d9..61cb08550 100644 --- a/include/Mw/Core.h +++ b/include/Mw/Core.h @@ -383,6 +383,13 @@ MWDECL void* MWAPI MwGetUser(MwWidget handle); */ MWDECL void MWAPI MwFreeWidget(MwWidget handle); +/*! + * @brief Gets the frame of the widget + * @param handle Widget + * @param rect Frame + */ +MWDECL void MWAPI MwGetFrame(MwWidget handle, MwRect* rect); + #ifdef _MILSKO MWDECL void MwForceRender_Internal(MwWidget handle); MWDECL void MwForceRender2_Internal(MwWidget handle, void* ptr); diff --git a/include/Mw/Milsko.h b/include/Mw/Milsko.h index d2e29bcbb..f7b4b49be 100644 --- a/include/Mw/Milsko.h +++ b/include/Mw/Milsko.h @@ -51,6 +51,7 @@ #include #include #include +#include #include #include #include diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index e33f2d313..3a019e03f 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -49,6 +49,9 @@ #define MwNday "Iday" #define MwNwaitLayout "IwaitLayout" #define MwNscale "Iscale" +#define MwNcolumns "Icolumns" +#define MwNcolumnSpan "IcolumnSpan" +#define MwNrowSpan "IrowSpan" #define MwNtitle "Stitle" #define MwNtext "Stext" diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index 6d1776af0..8bfa8c14f 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -29,6 +29,7 @@ typedef struct _MwDirectoryEntry MwDirectoryEntry; typedef struct _MwBox* MwBox; typedef struct _MwSubWindow* MwSubWindow; typedef struct _MwTab* MwTab; +typedef struct _MwTable* MwTable; typedef struct _MwMouse MwMouse; #ifdef _MILSKO typedef struct _MwWidget* MwWidget; @@ -39,6 +40,7 @@ typedef void (*MwHandler)(MwWidget handle); typedef int (*MwHandlerWithStatus)(MwWidget handle); typedef void (*MwHandlerProps)(MwWidget handle, char** key); typedef void (*MwHandlerProp)(MwWidget handle, const char* key); +typedef void (*MwHandlerChildrenUpdate)(MwWidget handle, MwWidget child, int new); typedef void (*MwHandlerChildrenProp)(MwWidget handle, MwWidget child, const char* key); typedef void (*MwHandlerKey)(MwWidget handle, int key); typedef void (*MwHandlerMouse)(MwWidget handle, void* ptr); @@ -212,6 +214,11 @@ struct _MwBox { int layout; }; +struct _MwTable { + int layout; + MwWidget* widgets; +}; + struct _MwSubWindow { MwWidget frame; MwWidget minimize; @@ -251,7 +258,7 @@ struct _MwClass { MwHandlerExecute execute; MwHandler tick; MwHandler resize; - MwHandler children_update; + MwHandlerChildrenUpdate children_update; MwHandlerChildrenProp children_prop_change; MwHandlerClipboardReceived clipboard; MwHandlerProps props_change; diff --git a/include/Mw/Widget/Table.h b/include/Mw/Widget/Table.h new file mode 100644 index 000000000..1d39ec308 --- /dev/null +++ b/include/Mw/Widget/Table.h @@ -0,0 +1,24 @@ +/*! + * @file Mw/Widget/Table.h + * @brief Table widget + */ +#ifndef __MW_WIDGET_TABLE_H__ +#define __MW_WIDGET_TABLE_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/*! + * @brief Table widget class + */ +MWDECL MwClass MwTableClass; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/milsko.xml b/milsko.xml index 8518a27ca..837934efc 100644 --- a/milsko.xml +++ b/milsko.xml @@ -103,6 +103,9 @@ + + + @@ -924,6 +927,16 @@ + + + + + + + + + + diff --git a/pl/rules.pl b/pl/rules.pl index 0c5ae4a72..52f3c2a56 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -160,6 +160,7 @@ new_object("src/widget/separator.c"); new_object("src/widget/submenu.c"); new_object("src/widget/subwindow.c"); new_object("src/widget/tab.c"); +new_object("src/widget/table.c"); new_object("src/widget/treeview.c"); new_object("src/widget/viewport.c"); new_object("src/widget/window.c"); diff --git a/src/core.c b/src/core.c index 4fd2645a3..f1a6c3d04 100644 --- a/src/core.c +++ b/src/core.c @@ -286,7 +286,7 @@ static MwWidget MwCreateWidget_Internal(MwClass widget_class, const char* name, h->root_boldmonofont = NULL; } - if(h->parent != NULL) MwDispatch(h->parent, children_update); + if(h->parent != NULL) MwDispatch4(h->parent, children_update, h, 1); return h; } @@ -415,7 +415,7 @@ void MwDestroyWidget(MwWidget handle) { arrput(handle->parent->destroy_queue, handle); } - MwDispatch(handle->parent, children_update); + MwDispatch4(handle->parent, children_update, handle, 0); } destroy_children(handle); handle->destroyed = 1; @@ -1042,14 +1042,14 @@ void MwReparent(MwWidget handle, MwWidget new_parent) { } } - MwDispatch(handle->parent, children_update); + MwDispatch4(handle->parent, children_update, handle, 0); } handle->parent = new_parent; if(new_parent != NULL) { arrput(new_parent->children, handle); - MwDispatch(handle->parent, children_update); + MwDispatch4(handle->parent, children_update, handle, 1); } if(new_parent == NULL) { @@ -1109,4 +1109,11 @@ void* MwGetUser(MwWidget handle) { return handle->user; } +void MwGetFrame(MwWidget handle, MwRect* rect) { + rect->x = MwGetInteger(handle, MwNx); + rect->y = MwGetInteger(handle, MwNy); + rect->width = MwGetInteger(handle, MwNwidth); + rect->height = MwGetInteger(handle, MwNheight); +} + const char* MwVersionString = MwVERSION; diff --git a/src/widget/box.c b/src/widget/box.c index e6afea688..c49febb27 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -95,18 +95,7 @@ static void draw(MwWidget handle) { } static void prop_change(MwWidget handle, const char* key) { - if(strcmp(key, MwNorientation) == 0) { - MwBox b = handle->internal; - b->layout = 1; - - MwForceRender(handle); - } -} - -static void children_prop_change(MwWidget handle, MwWidget child, const char* key) { - (void)child; - - if(strcmp(key, MwNratio) == 0 || strcmp(key, MwNfixedSize) == 0) { + if(strcmp(key, MwNorientation) == 0 || strcmp(key, MwNpadding) == 0 || strcmp(key, MwNmargin) == 0) { MwBox b = handle->internal; b->layout = 1; @@ -131,13 +120,28 @@ static void resize(MwWidget handle) { MwForceRender(handle); } -static void children_update(MwWidget handle) { - MwBox b = handle->internal; +static void children_update(MwWidget handle, MwWidget child, int new) { + MwBox b = handle->internal; + + (void)child; + (void)new; + b->layout = 1; MwForceRender(handle); } +static void children_prop_change(MwWidget handle, MwWidget child, const char* key) { + (void)child; + + if(strcmp(key, MwNratio) == 0 || strcmp(key, MwNfixedSize) == 0) { + MwBox b = handle->internal; + b->layout = 1; + + MwForceRender(handle); + } +} + MwClassRec MwBoxClassRec = { wcreate, /* create */ destroy, /* destroy */ diff --git a/src/widget/table.c b/src/widget/table.c new file mode 100644 index 000000000..e28612d0d --- /dev/null +++ b/src/widget/table.c @@ -0,0 +1,228 @@ +#include + +#include "../../external/stb_ds.h" + +static int wcreate(MwWidget handle) { + MwTable t = malloc(sizeof(*t)); + memset(t, 0, sizeof(*t)); + + handle->internal = t; + + MwSetDefault(handle); + + MwSetInteger(handle, MwNcolumns, 1); + MwSetInteger(handle, MwNmargin, 0); + MwSetInteger(handle, MwNpadding, 0); + MwSetInteger(handle, MwNhasBorder, 0); + MwSetInteger(handle, MwNinverted, 1); + MwSetInteger(handle, MwNwaitLayout, 0); + + t->layout = 0; + + return 0; +} + +static void destroy(MwWidget handle) { + MwTable t = handle->internal; + + arrfree(t->widgets); + + free(t); +} + +typedef struct intkv { + int key; + int value; +} intkv_t; + +static void put_intkv(intkv_t** kv, int x, int y, int c, int r) { + int k = (x << 16) | y; + int v = (c << 16) | r; + + hmput(*kv, k, v); +} + +static int get_intkv(intkv_t* kv, int x, int y) { + int k = (x << 16) | y; + + return hmget(kv, k); +} + +#define LAYOUT_BEGIN \ + hmfree(kv); \ + hmdefault(kv, 0); \ + n = 0; \ + x = bw; \ + y = bw; \ + for(i = 0; i < arrlen(handle->children); i++) { \ + MwRect rc; \ + MwWidget hc = handle->children[i]; \ + int cs = MwGetInteger(hc, MwNcolumnSpan); \ + int rs = MwGetInteger(hc, MwNrowSpan); \ + int w, h; \ + int cy; \ + int s = MwGetInteger(handle, MwNmargin); \ + int v = n; \ +\ + if(cs == MwDEFAULT) cs = 1; \ + if(rs == MwDEFAULT) rs = 1; \ +\ + w = cs * cw + (cs - 1) * s; \ + h = rs * ch + (rs - 1) * s; \ +\ + MwGetFrame(hc, &rc); \ +\ + if(hc == child || rc.x != x || rc.y != y || rc.width != w || rc.height != h) { + +#define LAYOUT_END(label) \ + } \ +\ + put_intkv(&kv, n % c, n / c, cs, rs); \ +\ + n += cs; \ + repeat_##label :; \ + if((n % c) == 0) { \ + x = bw; \ + y += ch + s; \ + } else { \ + for(; v < n; v++) { \ + x += cw + s; \ + } \ + } \ +\ + for(cy = (n / c); cy >= 0; cy--) { \ + int v = get_intkv(kv, n % c, cy) & 0xffff; \ +\ + if(cy <= (n / c) && (n / c) <= (cy + v - 1)) { \ + v = n; \ + n += get_intkv(kv, n % c, cy) >> 16; \ + goto repeat_##label; \ + } \ + } \ + } + +static void layout_widget(MwWidget handle, MwWidget child) { + int i; + int c = MwGetInteger(handle, MwNcolumns); + int bw = (MwGetInteger(handle, MwNhasBorder) ? MwDefaultBorderWidth(handle) : 0) + MwGetInteger(handle, MwNpadding); + int m = MwGetInteger(handle, MwNmargin); + int n, x, y, cw = 0, ch = 0; + int gcs, grs; + intkv_t* kv = NULL; + + LAYOUT_BEGIN; + LAYOUT_END(1); + + gcs = (n + c - 1) / c; + grs = n % c; + cw = (MwGetInteger(handle, MwNwidth) - bw * 2 - (m * (c - 1))) / c; + ch = (MwGetInteger(handle, MwNheight) - m * (gcs - 1) - bw * 2) / gcs; + + LAYOUT_BEGIN; + MwVaApply(hc, + MwNx, x, + MwNy, y, + MwNwidth, w, + MwNheight, h, + NULL); + LAYOUT_END(2); + + hmfree(kv); +} + +static void layout(MwWidget handle) { + MwTable t = handle->internal; + int i; + + if(arrlen(t->widgets) > 0) { + for(i = 0; i < arrlen(t->widgets); i++) layout_widget(handle, t->widgets[i]); + } else { + for(i = 0; i < arrlen(handle->children[i]); i++) layout_widget(handle, handle->children[i]); + } +} + +static void draw(MwWidget handle) { + MwBoxClass->draw(handle); +} + +static void tick(MwWidget handle) { + MwTable t = handle->internal; + + if(t->layout && !MwGetInteger(handle, MwNwaitLayout)) { + layout(handle); + + t->layout = 0; + } +} + +static void prop_change(MwWidget handle, const char* key) { + if(strcmp(key, MwNcolumns) == 0 || strcmp(key, MwNpadding) == 0 || strcmp(key, MwNmargin) == 0) { + MwTable t = handle->internal; + t->layout = 1; + + MwForceRender(handle); + } +} + +static void resize(MwWidget handle) { + MwTable t = handle->internal; + t->layout = 1; + + MwForceRender(handle); +} + +static void children_update(MwWidget handle, MwWidget child, int new) { + MwTable t = handle->internal; + t->layout = 1; + + if(new) { + arrput(t->widgets, child); + } else { + int i; + + for(i = 0; i < arrlen(t->widgets); i++) { + if(t->widgets[i] == child) { + arrdel(t->widgets, i); + i = -1; + } + } + } + + MwForceRender(handle); +} + +static void children_prop_change(MwWidget handle, MwWidget child, const char* key) { + (void)child; + + if(strcmp(key, MwNcolumnSpan) == 0 || strcmp(key, MwNrowSpan) == 0) { + MwTable t = handle->internal; + t->layout = 1; + + arrput(t->widgets, child); + + MwForceRender(handle); + } +} + +MwClassRec MwTableClassRec = { + wcreate, /* create */ + destroy, /* destroy */ + draw, /* draw */ + NULL, /* click */ + NULL, /* parent_resize */ + prop_change, /* prop_change */ + NULL, /* mouse_move */ + NULL, /* mouse_up */ + NULL, /* mouse_down */ + NULL, /* key */ + NULL, /* execute */ + tick, /* tick */ + resize, /* resize */ + children_update, /* children_update */ + children_prop_change, /* children_prop_change */ + NULL, /* clipboard */ + NULL, /* props_change */ + NULL, + NULL, + NULL}; +MwClass MwTableClass = &MwTableClassRec; From 35e8e819e1dffd36dac1e66c7263f66e0f3ed535 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 14 May 2026 21:12:47 +0900 Subject: [PATCH 717/836] fix --- src/widget/box.c | 2 +- src/widget/table.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/widget/box.c b/src/widget/box.c index c49febb27..87807f407 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -95,7 +95,7 @@ static void draw(MwWidget handle) { } static void prop_change(MwWidget handle, const char* key) { - if(strcmp(key, MwNorientation) == 0 || strcmp(key, MwNpadding) == 0 || strcmp(key, MwNmargin) == 0) { + if(strcmp(key, MwNorientation) == 0 || strcmp(key, MwNhasBorder) == 0 || strcmp(key, MwNinverted) == 0 || strcmp(key, MwNpadding) == 0 || strcmp(key, MwNmargin) == 0) { MwBox b = handle->internal; b->layout = 1; diff --git a/src/widget/table.c b/src/widget/table.c index e28612d0d..d46ddb20f 100644 --- a/src/widget/table.c +++ b/src/widget/table.c @@ -156,7 +156,7 @@ static void tick(MwWidget handle) { } static void prop_change(MwWidget handle, const char* key) { - if(strcmp(key, MwNcolumns) == 0 || strcmp(key, MwNpadding) == 0 || strcmp(key, MwNmargin) == 0) { + if(strcmp(key, MwNcolumns) == 0 || strcmp(key, MwNhasBorder) == 0 || strcmp(key, MwNinverted) == 0 || strcmp(key, MwNpadding) == 0 || strcmp(key, MwNmargin) == 0) { MwTable t = handle->internal; t->layout = 1; From 4b335ad49fcd03aa3ecbfe7effb5ad2a57fd1778 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 14 May 2026 21:24:43 +0900 Subject: [PATCH 718/836] fix --- BorMakefile | 5 +++-- NTMakefile | 5 +++-- WatMakefile | 7 +++++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/BorMakefile b/BorMakefile index 49ba8eda3..8ccd517fc 100644 --- a/BorMakefile +++ b/BorMakefile @@ -94,6 +94,7 @@ clean: del /f /q src\widget\submenu.obj del /f /q src\widget\subwindow.obj del /f /q src\widget\tab.obj + del /f /q src\widget\table.obj del /f /q src\widget\treeview.obj del /f /q src\widget\viewport.obj del /f /q src\widget\window.obj @@ -317,8 +318,8 @@ examples\gldemos\tripaint.obj: examples/gldemos/tripaint.c $(CC) $(EXE_CFLAGS) -o$@ examples/gldemos/tripaint.c -src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj - $(LD) $(MW_LDFLAGS) -e$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj -lopengl32.lib -lgdi32.lib -luser32.lib -ladvapi32.lib +src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\table.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj + $(LD) $(MW_LDFLAGS) -e$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\table.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj -lopengl32.lib -lgdi32.lib -luser32.lib -ladvapi32.lib implib src\Mw.lib src\Mw.dll .c.obj: diff --git a/NTMakefile b/NTMakefile index c60838ece..62cf84b1b 100644 --- a/NTMakefile +++ b/NTMakefile @@ -94,6 +94,7 @@ clean: del /f /q src\widget\submenu.obj del /f /q src\widget\subwindow.obj del /f /q src\widget\tab.obj + del /f /q src\widget\table.obj del /f /q src\widget\treeview.obj del /f /q src\widget\viewport.obj del /f /q src\widget\window.obj @@ -317,8 +318,8 @@ examples\gldemos\tripaint.obj: examples/gldemos/tripaint.c $(CC) $(EXE_CFLAGS) /Fo$@ examples/gldemos/tripaint.c -src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj - $(LD) $(MW_LDFLAGS) /OUT:$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib user32.lib advapi32.lib +src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\table.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj + $(LD) $(MW_LDFLAGS) /OUT:$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\table.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib user32.lib advapi32.lib .c.obj: diff --git a/WatMakefile b/WatMakefile index eab9e5b8d..4e5a14a1c 100644 --- a/WatMakefile +++ b/WatMakefile @@ -93,6 +93,7 @@ clean: .SYMBOLIC %erase src/widget/submenu.obj %erase src/widget/subwindow.obj %erase src/widget/tab.obj + %erase src/widget/table.obj %erase src/widget/treeview.obj %erase src/widget/viewport.obj %erase src/widget/window.obj @@ -316,8 +317,8 @@ examples/gldemos/tripaint.obj: examples/gldemos/tripaint.c $(CC) $(EXE_CFLAGS) -fo=$@ examples/gldemos/tripaint.c -src/Mw.dll: external/libz/src/adler32.obj external/libz/src/compress.obj external/libz/src/crc32.obj external/libz/src/deflate.obj external/libz/src/gzclose.obj external/libz/src/gzlib.obj external/libz/src/gzread.obj external/libz/src/gzwrite.obj external/libz/src/infback.obj external/libz/src/inffast.obj external/libz/src/inflate.obj external/libz/src/inftrees.obj external/libz/src/trees.obj external/libz/src/uncompr.obj external/libz/src/zutil.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/charset.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text/font/boldfont.obj src/text/font/boldmonottf.obj src/text/font/boldttf.obj src/text/font/font.obj src/text/font/monottf.obj src/text/font/ttf.obj src/text/ft2.obj src/text/stbtt.obj src/text/text.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/calendar.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/subwindow.obj src/widget/tab.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj - $(LD) $(MW_LDFLAGS) option implib=src/Mw.lib name $@ file external/libz/src/adler32.obj file external/libz/src/compress.obj file external/libz/src/crc32.obj file external/libz/src/deflate.obj file external/libz/src/gzclose.obj file external/libz/src/gzlib.obj file external/libz/src/gzread.obj file external/libz/src/gzwrite.obj file external/libz/src/infback.obj file external/libz/src/inffast.obj file external/libz/src/inflate.obj file external/libz/src/inftrees.obj file external/libz/src/trees.obj file external/libz/src/uncompr.obj file external/libz/src/zutil.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/charset.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/font/boldfont.obj file src/text/font/boldmonottf.obj file src/text/font/boldttf.obj file src/text/font/font.obj file src/text/font/monottf.obj file src/text/font/ttf.obj file src/text/ft2.obj file src/text/stbtt.obj file src/text/text.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/calendar.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/subwindow.obj file src/widget/tab.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib library advapi32.lib +src/Mw.dll: external/libz/src/adler32.obj external/libz/src/compress.obj external/libz/src/crc32.obj external/libz/src/deflate.obj external/libz/src/gzclose.obj external/libz/src/gzlib.obj external/libz/src/gzread.obj external/libz/src/gzwrite.obj external/libz/src/infback.obj external/libz/src/inffast.obj external/libz/src/inflate.obj external/libz/src/inftrees.obj external/libz/src/trees.obj external/libz/src/uncompr.obj external/libz/src/zutil.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/charset.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text/font/boldfont.obj src/text/font/boldmonottf.obj src/text/font/boldttf.obj src/text/font/font.obj src/text/font/monottf.obj src/text/font/ttf.obj src/text/ft2.obj src/text/stbtt.obj src/text/text.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/calendar.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/subwindow.obj src/widget/tab.obj src/widget/table.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj + $(LD) $(MW_LDFLAGS) option implib=src/Mw.lib name $@ file external/libz/src/adler32.obj file external/libz/src/compress.obj file external/libz/src/crc32.obj file external/libz/src/deflate.obj file external/libz/src/gzclose.obj file external/libz/src/gzlib.obj file external/libz/src/gzread.obj file external/libz/src/gzwrite.obj file external/libz/src/infback.obj file external/libz/src/inffast.obj file external/libz/src/inflate.obj file external/libz/src/inftrees.obj file external/libz/src/trees.obj file external/libz/src/uncompr.obj file external/libz/src/zutil.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/charset.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/font/boldfont.obj file src/text/font/boldmonottf.obj file src/text/font/boldttf.obj file src/text/font/font.obj file src/text/font/monottf.obj file src/text/font/ttf.obj file src/text/ft2.obj file src/text/stbtt.obj file src/text/text.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/calendar.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/subwindow.obj file src/widget/tab.obj file src/widget/table.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib library advapi32.lib @@ -489,6 +490,8 @@ src/widget/subwindow.obj: src/widget/subwindow.c $(CC) $(MW_CFLAGS) -fo=$@ src/widget/subwindow.c src/widget/tab.obj: src/widget/tab.c $(CC) $(MW_CFLAGS) -fo=$@ src/widget/tab.c +src/widget/table.obj: src/widget/table.c + $(CC) $(MW_CFLAGS) -fo=$@ src/widget/table.c src/widget/treeview.obj: src/widget/treeview.c $(CC) $(MW_CFLAGS) -fo=$@ src/widget/treeview.c src/widget/viewport.obj: src/widget/viewport.c From 65115b53d64da00b461d2b76cfb084d6d57e2f3d Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Thu, 14 May 2026 21:25:16 +0900 Subject: [PATCH 719/836] remove old stuff --- .gitignore | 3 + BorMakefile | 326 -------------------------------------------- vms/build.com | 370 -------------------------------------------------- vms/clean.com | 61 --------- 4 files changed, 3 insertions(+), 757 deletions(-) delete mode 100644 BorMakefile delete mode 100644 vms/build.com delete mode 100644 vms/clean.com diff --git a/.gitignore b/.gitignore index 8535b6514..4e564952f 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,8 @@ examples/*/*.exe compile_flags.txt .cache .DS_Store +/vms +/BorMakefile *.pef *.dsk @@ -26,3 +28,4 @@ compile_flags.txt *.rsrc *.finf *.gdb + diff --git a/BorMakefile b/BorMakefile deleted file mode 100644 index 8ccd517fc..000000000 --- a/BorMakefile +++ /dev/null @@ -1,326 +0,0 @@ -CC = bcc32 -c -LD = bcc32 - -MW_CFLAGS = -Iinclude -Iexternal\libz\include -D_MILSKO -DUSE_GDI -DUSE_STB_TRUETYPE -DUSE_STB_IMAGE -DSTBI_NO_SIMD -MW_LDFLAGS = -tWD -EXE_CFLAGS = -Iinclude -EXE_LDFLAGS = -.SUFFIXES: .obj .c -all: src\Mw.dll examples\basic\box.exe examples\basic\calculator.exe examples\basic\checkbox.exe examples\basic\clipboard.exe examples\basic\colorpicker.exe examples\basic\combobox.exe examples\basic\example.exe examples\basic\filechooser.exe examples\basic\image.exe examples\basic\listbox.exe examples\basic\messagebox.exe examples\basic\periodic.exe examples\basic\progressbar.exe examples\basic\radiobox.exe examples\basic\rotate.exe examples\basic\scrollbar.exe examples\basic\sevensegment.exe examples\basic\subwindow.exe examples\basic\tab.exe examples\basic\treeview.exe examples\basic\viewport.exe examples\gldemos\boing.exe examples\gldemos\clock.exe examples\gldemos\cube.exe examples\gldemos\gears.exe examples\gldemos\triangle.exe examples\gldemos\tripaint.exe -lib: src\Mw.dll -examples: examples\basic\box.exe examples\basic\calculator.exe examples\basic\checkbox.exe examples\basic\clipboard.exe examples\basic\colorpicker.exe examples\basic\combobox.exe examples\basic\example.exe examples\basic\filechooser.exe examples\basic\image.exe examples\basic\listbox.exe examples\basic\messagebox.exe examples\basic\periodic.exe examples\basic\progressbar.exe examples\basic\radiobox.exe examples\basic\rotate.exe examples\basic\scrollbar.exe examples\basic\sevensegment.exe examples\basic\subwindow.exe examples\basic\tab.exe examples\basic\treeview.exe examples\basic\viewport.exe examples\gldemos\boing.exe examples\gldemos\clock.exe examples\gldemos\cube.exe examples\gldemos\gears.exe examples\gldemos\triangle.exe examples\gldemos\tripaint.exe -clean: - del /f /q external\libz\src\adler32.obj - del /f /q external\libz\src\compress.obj - del /f /q external\libz\src\crc32.obj - del /f /q external\libz\src\deflate.obj - del /f /q external\libz\src\gzclose.obj - del /f /q external\libz\src\gzlib.obj - del /f /q external\libz\src\gzread.obj - del /f /q external\libz\src\gzwrite.obj - del /f /q external\libz\src\infback.obj - del /f /q external\libz\src\inffast.obj - del /f /q external\libz\src\inflate.obj - del /f /q external\libz\src\inftrees.obj - del /f /q external\libz\src\trees.obj - del /f /q external\libz\src\uncompr.obj - del /f /q external\libz\src\zutil.obj - del /f /q external\stb_ds.obj - del /f /q external\stb_image.obj - del /f /q external\stb_truetype.obj - del /f /q src\abstract\charset.obj - del /f /q src\abstract\directory.obj - del /f /q src\abstract\dynamic.obj - del /f /q src\abstract\time.obj - del /f /q src\backend\gdi.obj - del /f /q src\color.obj - del /f /q src\core.obj - del /f /q src\cursor\arrow.obj - del /f /q src\cursor\cross.obj - del /f /q src\cursor\default.obj - del /f /q src\cursor\hidden.obj - del /f /q src\cursor\text.obj - del /f /q src\default.obj - del /f /q src\dialog\colorpicker.obj - del /f /q src\dialog\directorychooser.obj - del /f /q src\dialog\filechooser.obj - del /f /q src\dialog\messagebox.obj - del /f /q src\draw.obj - del /f /q src\icon\back.obj - del /f /q src\icon\clock.obj - del /f /q src\icon\computer.obj - del /f /q src\icon\directory.obj - del /f /q src\icon\down.obj - del /f /q src\icon\error.obj - del /f /q src\icon\file.obj - del /f /q src\icon\forward.obj - del /f /q src\icon\info.obj - del /f /q src\icon\left.obj - del /f /q src\icon\news.obj - del /f /q src\icon\note.obj - del /f /q src\icon\right.obj - del /f /q src\icon\search.obj - del /f /q src\icon\up.obj - del /f /q src\icon\warning.obj - del /f /q src\lowlevel.obj - del /f /q src\string.obj - del /f /q src\text\font\boldfont.obj - del /f /q src\text\font\boldmonottf.obj - del /f /q src\text\font\boldttf.obj - del /f /q src\text\font\font.obj - del /f /q src\text\font\monottf.obj - del /f /q src\text\font\ttf.obj - del /f /q src\text\ft2.obj - del /f /q src\text\stbtt.obj - del /f /q src\text\text.obj - del /f /q src\unicode.obj - del /f /q src\widget\box.obj - del /f /q src\widget\button.obj - del /f /q src\widget\calendar.obj - del /f /q src\widget\checkbox.obj - del /f /q src\widget\combobox.obj - del /f /q src\widget\entry.obj - del /f /q src\widget\frame.obj - del /f /q src\widget\image.obj - del /f /q src\widget\label.obj - del /f /q src\widget\listbox.obj - del /f /q src\widget\menu.obj - del /f /q src\widget\numberentry.obj - del /f /q src\widget\opengl.obj - del /f /q src\widget\progressbar.obj - del /f /q src\widget\radiobox.obj - del /f /q src\widget\scrollbar.obj - del /f /q src\widget\separator.obj - del /f /q src\widget\submenu.obj - del /f /q src\widget\subwindow.obj - del /f /q src\widget\tab.obj - del /f /q src\widget\table.obj - del /f /q src\widget\treeview.obj - del /f /q src\widget\viewport.obj - del /f /q src\widget\window.obj - del /f /q src\Mw.dll - del /f /q src\Mw.lib - del /f /q examples\basic\box.obj - del /f /q examples\basic\calculator.obj - del /f /q examples\basic\checkbox.obj - del /f /q examples\basic\clipboard.obj - del /f /q examples\basic\colorpicker.obj - del /f /q examples\basic\combobox.obj - del /f /q examples\basic\example.obj - del /f /q examples\basic\filechooser.obj - del /f /q examples\basic\image.obj - del /f /q examples\basic\listbox.obj - del /f /q examples\basic\messagebox.obj - del /f /q examples\basic\periodic.obj - del /f /q examples\basic\progressbar.obj - del /f /q examples\basic\radiobox.obj - del /f /q examples\basic\rotate.obj - del /f /q examples\basic\scrollbar.obj - del /f /q examples\basic\sevensegment.obj - del /f /q examples\basic\subwindow.obj - del /f /q examples\basic\tab.obj - del /f /q examples\basic\treeview.obj - del /f /q examples\basic\viewport.obj - del /f /q examples\gldemos\boing.obj - del /f /q examples\gldemos\clock.obj - del /f /q examples\gldemos\cube.obj - del /f /q examples\gldemos\gears.obj - del /f /q examples\gldemos\triangle.obj - del /f /q examples\gldemos\tripaint.obj - del /f /q examples\basic\box.exe - del /f /q examples\basic\calculator.exe - del /f /q examples\basic\checkbox.exe - del /f /q examples\basic\clipboard.exe - del /f /q examples\basic\colorpicker.exe - del /f /q examples\basic\combobox.exe - del /f /q examples\basic\example.exe - del /f /q examples\basic\filechooser.exe - del /f /q examples\basic\image.exe - del /f /q examples\basic\listbox.exe - del /f /q examples\basic\messagebox.exe - del /f /q examples\basic\periodic.exe - del /f /q examples\basic\progressbar.exe - del /f /q examples\basic\radiobox.exe - del /f /q examples\basic\rotate.exe - del /f /q examples\basic\scrollbar.exe - del /f /q examples\basic\sevensegment.exe - del /f /q examples\basic\subwindow.exe - del /f /q examples\basic\tab.exe - del /f /q examples\basic\treeview.exe - del /f /q examples\basic\viewport.exe - del /f /q examples\gldemos\boing.exe - del /f /q examples\gldemos\clock.exe - del /f /q examples\gldemos\cube.exe - del /f /q examples\gldemos\gears.exe - del /f /q examples\gldemos\triangle.exe - del /f /q examples\gldemos\tripaint.exe - -examples\basic\box.exe: examples\basic\box.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\box.obj -lsrc\Mw.lib - -examples\basic\box.obj: examples/basic/box.c - $(CC) $(EXE_CFLAGS) -o$@ examples/basic/box.c - -examples\basic\calculator.exe: examples\basic\calculator.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\calculator.obj -lsrc\Mw.lib - -examples\basic\calculator.obj: examples/basic/calculator.c - $(CC) $(EXE_CFLAGS) -o$@ examples/basic/calculator.c - -examples\basic\checkbox.exe: examples\basic\checkbox.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\checkbox.obj -lsrc\Mw.lib - -examples\basic\checkbox.obj: examples/basic/checkbox.c - $(CC) $(EXE_CFLAGS) -o$@ examples/basic/checkbox.c - -examples\basic\clipboard.exe: examples\basic\clipboard.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\clipboard.obj -lsrc\Mw.lib - -examples\basic\clipboard.obj: examples/basic/clipboard.c - $(CC) $(EXE_CFLAGS) -o$@ examples/basic/clipboard.c - -examples\basic\colorpicker.exe: examples\basic\colorpicker.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\colorpicker.obj -lsrc\Mw.lib - -examples\basic\colorpicker.obj: examples/basic/colorpicker.c - $(CC) $(EXE_CFLAGS) -o$@ examples/basic/colorpicker.c - -examples\basic\combobox.exe: examples\basic\combobox.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\combobox.obj -lsrc\Mw.lib - -examples\basic\combobox.obj: examples/basic/combobox.c - $(CC) $(EXE_CFLAGS) -o$@ examples/basic/combobox.c - -examples\basic\example.exe: examples\basic\example.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\example.obj -lsrc\Mw.lib - -examples\basic\example.obj: examples/basic/example.c - $(CC) $(EXE_CFLAGS) -o$@ examples/basic/example.c - -examples\basic\filechooser.exe: examples\basic\filechooser.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\filechooser.obj -lsrc\Mw.lib - -examples\basic\filechooser.obj: examples/basic/filechooser.c - $(CC) $(EXE_CFLAGS) -o$@ examples/basic/filechooser.c - -examples\basic\image.exe: examples\basic\image.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\image.obj -lsrc\Mw.lib - -examples\basic\image.obj: examples/basic/image.c - $(CC) $(EXE_CFLAGS) -o$@ examples/basic/image.c - -examples\basic\listbox.exe: examples\basic\listbox.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\listbox.obj -lsrc\Mw.lib - -examples\basic\listbox.obj: examples/basic/listbox.c - $(CC) $(EXE_CFLAGS) -o$@ examples/basic/listbox.c - -examples\basic\messagebox.exe: examples\basic\messagebox.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\messagebox.obj -lsrc\Mw.lib - -examples\basic\messagebox.obj: examples/basic/messagebox.c - $(CC) $(EXE_CFLAGS) -o$@ examples/basic/messagebox.c - -examples\basic\periodic.exe: examples\basic\periodic.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\periodic.obj -lsrc\Mw.lib - -examples\basic\periodic.obj: examples/basic/periodic.c - $(CC) $(EXE_CFLAGS) -o$@ examples/basic/periodic.c - -examples\basic\progressbar.exe: examples\basic\progressbar.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\progressbar.obj -lsrc\Mw.lib - -examples\basic\progressbar.obj: examples/basic/progressbar.c - $(CC) $(EXE_CFLAGS) -o$@ examples/basic/progressbar.c - -examples\basic\radiobox.exe: examples\basic\radiobox.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\radiobox.obj -lsrc\Mw.lib - -examples\basic\radiobox.obj: examples/basic/radiobox.c - $(CC) $(EXE_CFLAGS) -o$@ examples/basic/radiobox.c - -examples\basic\rotate.exe: examples\basic\rotate.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\rotate.obj -lsrc\Mw.lib - -examples\basic\rotate.obj: examples/basic/rotate.c - $(CC) $(EXE_CFLAGS) -o$@ examples/basic/rotate.c - -examples\basic\scrollbar.exe: examples\basic\scrollbar.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\scrollbar.obj -lsrc\Mw.lib - -examples\basic\scrollbar.obj: examples/basic/scrollbar.c - $(CC) $(EXE_CFLAGS) -o$@ examples/basic/scrollbar.c - -examples\basic\sevensegment.exe: examples\basic\sevensegment.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\sevensegment.obj -lsrc\Mw.lib - -examples\basic\sevensegment.obj: examples/basic/sevensegment.c - $(CC) $(EXE_CFLAGS) -o$@ examples/basic/sevensegment.c - -examples\basic\subwindow.exe: examples\basic\subwindow.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\subwindow.obj -lsrc\Mw.lib - -examples\basic\subwindow.obj: examples/basic/subwindow.c - $(CC) $(EXE_CFLAGS) -o$@ examples/basic/subwindow.c - -examples\basic\tab.exe: examples\basic\tab.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\tab.obj -lsrc\Mw.lib - -examples\basic\tab.obj: examples/basic/tab.c - $(CC) $(EXE_CFLAGS) -o$@ examples/basic/tab.c - -examples\basic\treeview.exe: examples\basic\treeview.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\treeview.obj -lsrc\Mw.lib - -examples\basic\treeview.obj: examples/basic/treeview.c - $(CC) $(EXE_CFLAGS) -o$@ examples/basic/treeview.c - -examples\basic\viewport.exe: examples\basic\viewport.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\basic\viewport.obj -lsrc\Mw.lib - -examples\basic\viewport.obj: examples/basic/viewport.c - $(CC) $(EXE_CFLAGS) -o$@ examples/basic/viewport.c - -examples\gldemos\boing.exe: examples\gldemos\boing.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\boing.obj -lsrc\Mw.lib -lopengl32.lib -lglu32.lib - -examples\gldemos\boing.obj: examples/gldemos/boing.c - $(CC) $(EXE_CFLAGS) -o$@ examples/gldemos/boing.c - -examples\gldemos\clock.exe: examples\gldemos\clock.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\clock.obj -lsrc\Mw.lib -lopengl32.lib -lglu32.lib - -examples\gldemos\clock.obj: examples/gldemos/clock.c - $(CC) $(EXE_CFLAGS) -o$@ examples/gldemos/clock.c - -examples\gldemos\cube.exe: examples\gldemos\cube.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\cube.obj -lsrc\Mw.lib -lopengl32.lib -lglu32.lib - -examples\gldemos\cube.obj: examples/gldemos/cube.c - $(CC) $(EXE_CFLAGS) -o$@ examples/gldemos/cube.c - -examples\gldemos\gears.exe: examples\gldemos\gears.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\gears.obj -lsrc\Mw.lib -lopengl32.lib -lglu32.lib - -examples\gldemos\gears.obj: examples/gldemos/gears.c - $(CC) $(EXE_CFLAGS) -o$@ examples/gldemos/gears.c - -examples\gldemos\triangle.exe: examples\gldemos\triangle.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\triangle.obj -lsrc\Mw.lib -lopengl32.lib -lglu32.lib - -examples\gldemos\triangle.obj: examples/gldemos/triangle.c - $(CC) $(EXE_CFLAGS) -o$@ examples/gldemos/triangle.c - -examples\gldemos\tripaint.exe: examples\gldemos\tripaint.obj src\Mw.dll - $(LD) $(EXE_LDFLAGS) -e$@ examples\gldemos\tripaint.obj -lsrc\Mw.lib -lopengl32.lib -lglu32.lib - -examples\gldemos\tripaint.obj: examples/gldemos/tripaint.c - $(CC) $(EXE_CFLAGS) -o$@ examples/gldemos/tripaint.c - - -src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\table.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj - $(LD) $(MW_LDFLAGS) -e$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\table.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj -lopengl32.lib -lgdi32.lib -luser32.lib -ladvapi32.lib - implib src\Mw.lib src\Mw.dll - -.c.obj: - $(CC) $(MW_CFLAGS) -o$@ $< diff --git a/vms/build.com b/vms/build.com deleted file mode 100644 index b94143ef1..000000000 --- a/vms/build.com +++ /dev/null @@ -1,370 +0,0 @@ -$ if f$search("[.src]color.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src]color.obj" -$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]color.obj [.src]color.c -$ endif -$ if f$search("[.src]core.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src]core.obj" -$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]core.obj [.src]core.c -$ endif -$ if f$search("[.src]default.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src]default.obj" -$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]default.obj [.src]default.c -$ endif -$ if f$search("[.src]draw.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src]draw.obj" -$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]draw.obj [.src]draw.c -$ endif -$ if f$search("[.src]string.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src]string.obj" -$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]string.obj [.src]string.c -$ endif -$ if f$search("[.src]lowlevel.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src]lowlevel.obj" -$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]lowlevel.obj [.src]lowlevel.c -$ endif -$ if f$search("[.src]unicode.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src]unicode.obj" -$ cc /include_directory=("./include","./src") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src]unicode.obj [.src]unicode.c -$ endif -$ if f$search("[.src.cursor]arrow.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.cursor]arrow.obj" -$ cc /include_directory=("./include","./src/cursor") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.cursor]arrow.obj [.src.cursor]arrow.c -$ endif -$ if f$search("[.src.cursor]cross.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.cursor]cross.obj" -$ cc /include_directory=("./include","./src/cursor") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.cursor]cross.obj [.src.cursor]cross.c -$ endif -$ if f$search("[.src.cursor]default.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.cursor]default.obj" -$ cc /include_directory=("./include","./src/cursor") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.cursor]default.obj [.src.cursor]default.c -$ endif -$ if f$search("[.src.cursor]hidden.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.cursor]hidden.obj" -$ cc /include_directory=("./include","./src/cursor") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.cursor]hidden.obj [.src.cursor]hidden.c -$ endif -$ if f$search("[.src.cursor]text.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.cursor]text.obj" -$ cc /include_directory=("./include","./src/cursor") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.cursor]text.obj [.src.cursor]text.c -$ endif -$ if f$search("[.src.widget]box.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]box.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]box.obj [.src.widget]box.c -$ endif -$ if f$search("[.src.widget]button.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]button.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]button.obj [.src.widget]button.c -$ endif -$ if f$search("[.src.widget]checkbox.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]checkbox.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]checkbox.obj [.src.widget]checkbox.c -$ endif -$ if f$search("[.src.widget]combobox.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]combobox.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]combobox.obj [.src.widget]combobox.c -$ endif -$ if f$search("[.src.widget]entry.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]entry.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]entry.obj [.src.widget]entry.c -$ endif -$ if f$search("[.src.widget]frame.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]frame.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]frame.obj [.src.widget]frame.c -$ endif -$ if f$search("[.src.widget]image.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]image.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]image.obj [.src.widget]image.c -$ endif -$ if f$search("[.src.widget]label.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]label.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]label.obj [.src.widget]label.c -$ endif -$ if f$search("[.src.widget]listbox.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]listbox.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]listbox.obj [.src.widget]listbox.c -$ endif -$ if f$search("[.src.widget]menu.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]menu.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]menu.obj [.src.widget]menu.c -$ endif -$ if f$search("[.src.widget]numberentry.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]numberentry.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]numberentry.obj [.src.widget]numberentry.c -$ endif -$ if f$search("[.src.widget]progressbar.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]progressbar.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]progressbar.obj [.src.widget]progressbar.c -$ endif -$ if f$search("[.src.widget]radiobox.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]radiobox.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]radiobox.obj [.src.widget]radiobox.c -$ endif -$ if f$search("[.src.widget]scrollbar.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]scrollbar.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]scrollbar.obj [.src.widget]scrollbar.c -$ endif -$ if f$search("[.src.widget]separator.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]separator.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]separator.obj [.src.widget]separator.c -$ endif -$ if f$search("[.src.widget]submenu.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]submenu.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]submenu.obj [.src.widget]submenu.c -$ endif -$ if f$search("[.src.widget]treeview.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]treeview.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]treeview.obj [.src.widget]treeview.c -$ endif -$ if f$search("[.src.widget]viewport.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]viewport.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]viewport.obj [.src.widget]viewport.c -$ endif -$ if f$search("[.src.widget]window.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]window.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]window.obj [.src.widget]window.c -$ endif -$ if f$search("[.src.widget]subwindow.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]subwindow.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]subwindow.obj [.src.widget]subwindow.c -$ endif -$ if f$search("[.src.widget]calendar.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]calendar.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]calendar.obj [.src.widget]calendar.c -$ endif -$ if f$search("[.src.widget]tab.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.widget]tab.obj" -$ cc /include_directory=("./include","./src/widget") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.widget]tab.obj [.src.widget]tab.c -$ endif -$ if f$search("[.src.dialog]colorpicker.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.dialog]colorpicker.obj" -$ cc /include_directory=("./include","./src/dialog") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.dialog]colorpicker.obj [.src.dialog]colorpicker.c -$ endif -$ if f$search("[.src.dialog]directorychooser.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.dialog]directorychooser.obj" -$ cc /include_directory=("./include","./src/dialog") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.dialog]directorychooser.obj [.src.dialog]directorychooser.c -$ endif -$ if f$search("[.src.dialog]filechooser.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.dialog]filechooser.obj" -$ cc /include_directory=("./include","./src/dialog") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.dialog]filechooser.obj [.src.dialog]filechooser.c -$ endif -$ if f$search("[.src.dialog]messagebox.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.dialog]messagebox.obj" -$ cc /include_directory=("./include","./src/dialog") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.dialog]messagebox.obj [.src.dialog]messagebox.c -$ endif -$ if f$search("[.src.icon]back.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]back.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]back.obj [.src.icon]back.c -$ endif -$ if f$search("[.src.icon]clock.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]clock.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]clock.obj [.src.icon]clock.c -$ endif -$ if f$search("[.src.icon]computer.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]computer.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]computer.obj [.src.icon]computer.c -$ endif -$ if f$search("[.src.icon]directory.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]directory.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]directory.obj [.src.icon]directory.c -$ endif -$ if f$search("[.src.icon]down.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]down.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]down.obj [.src.icon]down.c -$ endif -$ if f$search("[.src.icon]error.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]error.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]error.obj [.src.icon]error.c -$ endif -$ if f$search("[.src.icon]file.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]file.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]file.obj [.src.icon]file.c -$ endif -$ if f$search("[.src.icon]forward.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]forward.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]forward.obj [.src.icon]forward.c -$ endif -$ if f$search("[.src.icon]info.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]info.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]info.obj [.src.icon]info.c -$ endif -$ if f$search("[.src.icon]left.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]left.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]left.obj [.src.icon]left.c -$ endif -$ if f$search("[.src.icon]news.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]news.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]news.obj [.src.icon]news.c -$ endif -$ if f$search("[.src.icon]note.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]note.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]note.obj [.src.icon]note.c -$ endif -$ if f$search("[.src.icon]right.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]right.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]right.obj [.src.icon]right.c -$ endif -$ if f$search("[.src.icon]search.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]search.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]search.obj [.src.icon]search.c -$ endif -$ if f$search("[.src.icon]up.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]up.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]up.obj [.src.icon]up.c -$ endif -$ if f$search("[.src.icon]warning.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.icon]warning.obj" -$ cc /include_directory=("./include","./src/icon") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.icon]warning.obj [.src.icon]warning.c -$ endif -$ if f$search("[.src.abstract]directory.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.abstract]directory.obj" -$ cc /include_directory=("./include","./src/abstract") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.abstract]directory.obj [.src.abstract]directory.c -$ endif -$ if f$search("[.src.abstract]dynamic.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.abstract]dynamic.obj" -$ cc /include_directory=("./include","./src/abstract") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.abstract]dynamic.obj [.src.abstract]dynamic.c -$ endif -$ if f$search("[.src.abstract]time.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.abstract]time.obj" -$ cc /include_directory=("./include","./src/abstract") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.abstract]time.obj [.src.abstract]time.c -$ endif -$ if f$search("[.src.abstract]charset.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.abstract]charset.obj" -$ cc /include_directory=("./include","./src/abstract") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.abstract]charset.obj [.src.abstract]charset.c -$ endif -$ if f$search("[.external]stb_ds.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.external]stb_ds.obj" -$ cc /include_directory=("./include","./external") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.external]stb_ds.obj [.external]stb_ds.c -$ endif -$ if f$search("[.src.backend]x11.obj;*") .eqs. "" -$ then -$ write sys$output "CC [.src.backend]x11.obj" -$ cc /include_directory=("./include","./src/backend") /define=(_MILSKO,USE_X11,NO_IMAGE) /object=[.src.backend]x11.obj [.src.backend]x11.c -$ endif -$ if f$search("[.src]MwSHR.exe;*") .eqs. "" -$ then -$ write sys$output "LINK [.src]MwSHR.exe" -$ OPEN /WRITE LINK_OPT LINK.OPT -$ WRITE LINK_OPT "[.src]color.obj" -$ WRITE LINK_OPT "[.src]core.obj" -$ WRITE LINK_OPT "[.src]default.obj" -$ WRITE LINK_OPT "[.src]draw.obj" -$ WRITE LINK_OPT "[.src]string.obj" -$ WRITE LINK_OPT "[.src]lowlevel.obj" -$ WRITE LINK_OPT "[.src]unicode.obj" -$ WRITE LINK_OPT "[.src.cursor]arrow.obj" -$ WRITE LINK_OPT "[.src.cursor]cross.obj" -$ WRITE LINK_OPT "[.src.cursor]default.obj" -$ WRITE LINK_OPT "[.src.cursor]hidden.obj" -$ WRITE LINK_OPT "[.src.cursor]text.obj" -$ WRITE LINK_OPT "[.src.widget]box.obj" -$ WRITE LINK_OPT "[.src.widget]button.obj" -$ WRITE LINK_OPT "[.src.widget]checkbox.obj" -$ WRITE LINK_OPT "[.src.widget]combobox.obj" -$ WRITE LINK_OPT "[.src.widget]entry.obj" -$ WRITE LINK_OPT "[.src.widget]frame.obj" -$ WRITE LINK_OPT "[.src.widget]image.obj" -$ WRITE LINK_OPT "[.src.widget]label.obj" -$ WRITE LINK_OPT "[.src.widget]listbox.obj" -$ WRITE LINK_OPT "[.src.widget]menu.obj" -$ WRITE LINK_OPT "[.src.widget]numberentry.obj" -$ WRITE LINK_OPT "[.src.widget]progressbar.obj" -$ WRITE LINK_OPT "[.src.widget]radiobox.obj" -$ WRITE LINK_OPT "[.src.widget]scrollbar.obj" -$ WRITE LINK_OPT "[.src.widget]separator.obj" -$ WRITE LINK_OPT "[.src.widget]submenu.obj" -$ WRITE LINK_OPT "[.src.widget]treeview.obj" -$ WRITE LINK_OPT "[.src.widget]viewport.obj" -$ WRITE LINK_OPT "[.src.widget]window.obj" -$ WRITE LINK_OPT "[.src.widget]subwindow.obj" -$ WRITE LINK_OPT "[.src.widget]calendar.obj" -$ WRITE LINK_OPT "[.src.widget]tab.obj" -$ WRITE LINK_OPT "[.src.dialog]colorpicker.obj" -$ WRITE LINK_OPT "[.src.dialog]directorychooser.obj" -$ WRITE LINK_OPT "[.src.dialog]filechooser.obj" -$ WRITE LINK_OPT "[.src.dialog]messagebox.obj" -$ WRITE LINK_OPT "[.src.icon]back.obj" -$ WRITE LINK_OPT "[.src.icon]clock.obj" -$ WRITE LINK_OPT "[.src.icon]computer.obj" -$ WRITE LINK_OPT "[.src.icon]directory.obj" -$ WRITE LINK_OPT "[.src.icon]down.obj" -$ WRITE LINK_OPT "[.src.icon]error.obj" -$ WRITE LINK_OPT "[.src.icon]file.obj" -$ WRITE LINK_OPT "[.src.icon]forward.obj" -$ WRITE LINK_OPT "[.src.icon]info.obj" -$ WRITE LINK_OPT "[.src.icon]left.obj" -$ WRITE LINK_OPT "[.src.icon]news.obj" -$ WRITE LINK_OPT "[.src.icon]note.obj" -$ WRITE LINK_OPT "[.src.icon]right.obj" -$ WRITE LINK_OPT "[.src.icon]search.obj" -$ WRITE LINK_OPT "[.src.icon]up.obj" -$ WRITE LINK_OPT "[.src.icon]warning.obj" -$ WRITE LINK_OPT "[.src.abstract]directory.obj" -$ WRITE LINK_OPT "[.src.abstract]dynamic.obj" -$ WRITE LINK_OPT "[.src.abstract]time.obj" -$ WRITE LINK_OPT "[.src.abstract]charset.obj" -$ WRITE LINK_OPT "[.external]stb_ds.obj" -$ WRITE LINK_OPT "[.src.backend]x11.obj" -$ WRITE LINK_OPT "SYS$LIBRARY:DECW$XLIBSHR/SHARE" -$ WRITE LINK_OPT "SYS$LIBRARY:DPML$SHR/SHARE" -$ CLOSE LINK_OPT -$ link /SHAREABLE=[.src]MwSHR.exe LINK.OPT/options -$ DELETE LINK.OPT;* -$ endif diff --git a/vms/clean.com b/vms/clean.com deleted file mode 100644 index 3faee1d56..000000000 --- a/vms/clean.com +++ /dev/null @@ -1,61 +0,0 @@ -$ if f$search("[.src]color.obj") .nes. "" then delete [.src]color.obj;* -$ if f$search("[.src]core.obj") .nes. "" then delete [.src]core.obj;* -$ if f$search("[.src]default.obj") .nes. "" then delete [.src]default.obj;* -$ if f$search("[.src]draw.obj") .nes. "" then delete [.src]draw.obj;* -$ if f$search("[.src]string.obj") .nes. "" then delete [.src]string.obj;* -$ if f$search("[.src]lowlevel.obj") .nes. "" then delete [.src]lowlevel.obj;* -$ if f$search("[.src]unicode.obj") .nes. "" then delete [.src]unicode.obj;* -$ if f$search("[.src.cursor]arrow.obj") .nes. "" then delete [.src.cursor]arrow.obj;* -$ if f$search("[.src.cursor]cross.obj") .nes. "" then delete [.src.cursor]cross.obj;* -$ if f$search("[.src.cursor]default.obj") .nes. "" then delete [.src.cursor]default.obj;* -$ if f$search("[.src.cursor]hidden.obj") .nes. "" then delete [.src.cursor]hidden.obj;* -$ if f$search("[.src.cursor]text.obj") .nes. "" then delete [.src.cursor]text.obj;* -$ if f$search("[.src.widget]box.obj") .nes. "" then delete [.src.widget]box.obj;* -$ if f$search("[.src.widget]button.obj") .nes. "" then delete [.src.widget]button.obj;* -$ if f$search("[.src.widget]checkbox.obj") .nes. "" then delete [.src.widget]checkbox.obj;* -$ if f$search("[.src.widget]combobox.obj") .nes. "" then delete [.src.widget]combobox.obj;* -$ if f$search("[.src.widget]entry.obj") .nes. "" then delete [.src.widget]entry.obj;* -$ if f$search("[.src.widget]frame.obj") .nes. "" then delete [.src.widget]frame.obj;* -$ if f$search("[.src.widget]image.obj") .nes. "" then delete [.src.widget]image.obj;* -$ if f$search("[.src.widget]label.obj") .nes. "" then delete [.src.widget]label.obj;* -$ if f$search("[.src.widget]listbox.obj") .nes. "" then delete [.src.widget]listbox.obj;* -$ if f$search("[.src.widget]menu.obj") .nes. "" then delete [.src.widget]menu.obj;* -$ if f$search("[.src.widget]numberentry.obj") .nes. "" then delete [.src.widget]numberentry.obj;* -$ if f$search("[.src.widget]progressbar.obj") .nes. "" then delete [.src.widget]progressbar.obj;* -$ if f$search("[.src.widget]radiobox.obj") .nes. "" then delete [.src.widget]radiobox.obj;* -$ if f$search("[.src.widget]scrollbar.obj") .nes. "" then delete [.src.widget]scrollbar.obj;* -$ if f$search("[.src.widget]separator.obj") .nes. "" then delete [.src.widget]separator.obj;* -$ if f$search("[.src.widget]submenu.obj") .nes. "" then delete [.src.widget]submenu.obj;* -$ if f$search("[.src.widget]treeview.obj") .nes. "" then delete [.src.widget]treeview.obj;* -$ if f$search("[.src.widget]viewport.obj") .nes. "" then delete [.src.widget]viewport.obj;* -$ if f$search("[.src.widget]window.obj") .nes. "" then delete [.src.widget]window.obj;* -$ if f$search("[.src.widget]subwindow.obj") .nes. "" then delete [.src.widget]subwindow.obj;* -$ if f$search("[.src.widget]calendar.obj") .nes. "" then delete [.src.widget]calendar.obj;* -$ if f$search("[.src.widget]tab.obj") .nes. "" then delete [.src.widget]tab.obj;* -$ if f$search("[.src.dialog]colorpicker.obj") .nes. "" then delete [.src.dialog]colorpicker.obj;* -$ if f$search("[.src.dialog]directorychooser.obj") .nes. "" then delete [.src.dialog]directorychooser.obj;* -$ if f$search("[.src.dialog]filechooser.obj") .nes. "" then delete [.src.dialog]filechooser.obj;* -$ if f$search("[.src.dialog]messagebox.obj") .nes. "" then delete [.src.dialog]messagebox.obj;* -$ if f$search("[.src.icon]back.obj") .nes. "" then delete [.src.icon]back.obj;* -$ if f$search("[.src.icon]clock.obj") .nes. "" then delete [.src.icon]clock.obj;* -$ if f$search("[.src.icon]computer.obj") .nes. "" then delete [.src.icon]computer.obj;* -$ if f$search("[.src.icon]directory.obj") .nes. "" then delete [.src.icon]directory.obj;* -$ if f$search("[.src.icon]down.obj") .nes. "" then delete [.src.icon]down.obj;* -$ if f$search("[.src.icon]error.obj") .nes. "" then delete [.src.icon]error.obj;* -$ if f$search("[.src.icon]file.obj") .nes. "" then delete [.src.icon]file.obj;* -$ if f$search("[.src.icon]forward.obj") .nes. "" then delete [.src.icon]forward.obj;* -$ if f$search("[.src.icon]info.obj") .nes. "" then delete [.src.icon]info.obj;* -$ if f$search("[.src.icon]left.obj") .nes. "" then delete [.src.icon]left.obj;* -$ if f$search("[.src.icon]news.obj") .nes. "" then delete [.src.icon]news.obj;* -$ if f$search("[.src.icon]note.obj") .nes. "" then delete [.src.icon]note.obj;* -$ if f$search("[.src.icon]right.obj") .nes. "" then delete [.src.icon]right.obj;* -$ if f$search("[.src.icon]search.obj") .nes. "" then delete [.src.icon]search.obj;* -$ if f$search("[.src.icon]up.obj") .nes. "" then delete [.src.icon]up.obj;* -$ if f$search("[.src.icon]warning.obj") .nes. "" then delete [.src.icon]warning.obj;* -$ if f$search("[.src.abstract]directory.obj") .nes. "" then delete [.src.abstract]directory.obj;* -$ if f$search("[.src.abstract]dynamic.obj") .nes. "" then delete [.src.abstract]dynamic.obj;* -$ if f$search("[.src.abstract]time.obj") .nes. "" then delete [.src.abstract]time.obj;* -$ if f$search("[.src.abstract]charset.obj") .nes. "" then delete [.src.abstract]charset.obj;* -$ if f$search("[.external]stb_ds.obj") .nes. "" then delete [.external]stb_ds.obj;* -$ if f$search("[.src.backend]x11.obj") .nes. "" then delete [.src.backend]x11.obj;* -$ if f$search("[.src]MwSHR.exe") .nes. "" then delete [.src]MwSHR.exe;* From 276a9eeec5cdd9fbdb15f8d5d2a1198d3b74841d Mon Sep 17 00:00:00 2001 From: Nishi Date: Fri, 15 May 2026 00:25:24 +0900 Subject: [PATCH 720/836] fix warnings and sigsegv --- src/widget/label.c | 3 +-- src/widget/table.c | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/widget/label.c b/src/widget/label.c index 10b4df714..84277b256 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -6,8 +6,8 @@ static int wcreate(MwWidget handle) { MwLabel lab = malloc(sizeof(*lab)); + memset(lab, 0, sizeof(*lab)); - lab->segment = NULL; handle->internal = lab; MwSetDefault(handle); @@ -321,7 +321,6 @@ static void draw_normal(MwWidget handle) { int align; const char* str = MwGetText(handle, MwNtext); MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); - int l_one = MwGetInteger(handle, MwNlength) - (MwGetInteger(handle, MwNlength) % 2); if(str == NULL) str = ""; diff --git a/src/widget/table.c b/src/widget/table.c index d46ddb20f..ecd778ccd 100644 --- a/src/widget/table.c +++ b/src/widget/table.c @@ -107,14 +107,13 @@ static void layout_widget(MwWidget handle, MwWidget child) { int bw = (MwGetInteger(handle, MwNhasBorder) ? MwDefaultBorderWidth(handle) : 0) + MwGetInteger(handle, MwNpadding); int m = MwGetInteger(handle, MwNmargin); int n, x, y, cw = 0, ch = 0; - int gcs, grs; + int gcs; intkv_t* kv = NULL; LAYOUT_BEGIN; LAYOUT_END(1); gcs = (n + c - 1) / c; - grs = n % c; cw = (MwGetInteger(handle, MwNwidth) - bw * 2 - (m * (c - 1))) / c; ch = (MwGetInteger(handle, MwNheight) - m * (gcs - 1) - bw * 2) / gcs; From b7415dd240e5182129c041911f42729f7abdf4b4 Mon Sep 17 00:00:00 2001 From: Nishi Date: Fri, 15 May 2026 01:32:22 +0900 Subject: [PATCH 721/836] fix calling convention stuff --- NTMakefile | 2 +- WatMakefile | 2 +- configure | 2 +- include/Mw/MachDep.h | 2 +- src/core.c | 5 +++-- tools/genmk.pl | 2 +- 6 files changed, 8 insertions(+), 7 deletions(-) diff --git a/NTMakefile b/NTMakefile index 62cf84b1b..b4943e73e 100644 --- a/NTMakefile +++ b/NTMakefile @@ -1,7 +1,7 @@ CC = cl /TC /c /nologo LD = link /nologo -MW_CFLAGS = /Iinclude /Iexternal\libz\include /D_MILSKO /DUSE_GDI /DUSE_STB_TRUETYPE /DUSE_STB_IMAGE /DSTBI_NO_SIMD +MW_CFLAGS = /Iinclude /Iexternal\libz\include /D_MILSKO /D_MILSKO_BUILD /DUSE_GDI /DUSE_STB_TRUETYPE /DUSE_STB_IMAGE /DSTBI_NO_SIMD MW_LDFLAGS = /DLL EXE_CFLAGS = /Iinclude EXE_LDFLAGS = diff --git a/WatMakefile b/WatMakefile index 4e5a14a1c..bd32d9ba8 100644 --- a/WatMakefile +++ b/WatMakefile @@ -1,7 +1,7 @@ CC = wcc386 -bt=nt -q LD = wlink option quiet -MW_CFLAGS = -bd -i=include -i=external/libz/include -d_MILSKO -dUSE_GDI -dUSE_STB_TRUETYPE -dUSE_STB_IMAGE -dSTBI_NO_SIMD +MW_CFLAGS = -bd -i=include -i=external/libz/include -d_MILSKO -d_MILSKO_BUILD -dUSE_GDI -dUSE_STB_TRUETYPE -dUSE_STB_IMAGE -dSTBI_NO_SIMD MW_LDFLAGS = system nt_dll EXE_CFLAGS = -i=include EXE_LDFLAGS = system nt diff --git a/configure b/configure index bf4699a0a..0192a22c4 100755 --- a/configure +++ b/configure @@ -16,7 +16,7 @@ our $cxx = defined($ENV{CXX}) ? $ENV{CXX} : "*host*g++"; our $ar = defined($ENV{AR}) ? $ENV{AR} : "*host*ar"; our $incdir = "-I include"; our $incdir2 = ""; -our $cflags = "-fPIC -D_MILSKO -fvisibility=hidden"; +our $cflags = "-fPIC -D_MILSKO -D_MILSKO_BUILD -fvisibility=hidden"; our $libdir = ""; our $ldflags = ""; our $math = "-lm"; diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index 7fb94eb89..0415b4cd5 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -89,7 +89,7 @@ #endif /* Windows */ -#if defined(_MILSKO) && defined(_WIN32) +#if defined(_MILSKO) && defined(_MILSKO_BUILD) && defined(_WIN32) #define MWDECL extern __declspec(dllexport) #elif defined(_WIN32) #define MWDECL extern __declspec(dllimport) diff --git a/src/core.c b/src/core.c index f1a6c3d04..db81a2b2e 100644 --- a/src/core.c +++ b/src/core.c @@ -18,8 +18,8 @@ MwLLEndDraw(handle->lowlevel); \ } -static void MwVaListApply_Internal(MwWidget handle, va_list va, int only_early); -static MwWidget MwCreateWidget_Internal(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height, int do_prop, va_list prop); +static void MWAPI MwVaListApply_Internal(MwWidget handle, va_list va, int only_early); +static MwWidget MWAPI MwCreateWidget_Internal(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height, int do_prop, va_list prop); static void lldrawhandler(MwLL handle, void* data) { MwWidget h = (MwWidget)handle->common.user; @@ -850,6 +850,7 @@ static void MwVaListApply_Internal(MwWidget handle, va_list va, int only_early) for(i = 0; keys[i] != NULL; i++) { MwDispatch3(handle, prop_change, keys[i]); } + MwDispatch3(handle, props_change, keys); } diff --git a/tools/genmk.pl b/tools/genmk.pl index d0a47282b..6977df2a4 100755 --- a/tools/genmk.pl +++ b/tools/genmk.pl @@ -116,7 +116,7 @@ sub generate { print(OUT "LD = $link\n"); print(OUT "\n"); print(OUT -"MW_CFLAGS = ${cdll} ${inc}include ${inc}external${dir}libz${dir}include ${def}_MILSKO ${def}USE_GDI ${def}USE_STB_TRUETYPE ${def}USE_STB_IMAGE ${def}STBI_NO_SIMD\n" +"MW_CFLAGS = ${cdll} ${inc}include ${inc}external${dir}libz${dir}include ${def}_MILSKO ${def}_MILSKO_BUILD ${def}USE_GDI ${def}USE_STB_TRUETYPE ${def}USE_STB_IMAGE ${def}STBI_NO_SIMD\n" ); print(OUT "MW_LDFLAGS = $dll\n"); print(OUT "EXE_CFLAGS = ${inc}include\n"); From 86286a0420b0f3fd7fdc7efad507d4e1cef10631 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 20 May 2026 04:03:12 -0500 Subject: [PATCH 722/836] wayland/opengl: break after first config match, amidst other c89 fixes. --- src/widget/opengl.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 13eda0ee8..c50c3ace5 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -111,11 +111,6 @@ typedef struct waylandopengl { EGLBoolean (*eglGetConfigAttrib)(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint* value); EGLBoolean (*eglDestroySurface)(EGLDisplay dpy, EGLSurface surface); - struct wl_egl_window* (*wl_egl_window_create)(struct wl_surface* surface, - int width, int height); - void (*wl_egl_window_resize)(struct wl_egl_window* egl_window, - int width, int height, - int dx, int dy); struct gbm_device* (*gbm_create_device)(int fd); struct gbm_surface* (*gbm_surface_create)(struct gbm_device* gbm, uint32_t width, uint32_t height, uint32_t format, uint32_t flags); void (*gbm_surface_destroy)(struct gbm_surface* surface); @@ -244,6 +239,7 @@ static int wcreate(MwWidget handle) { EGLDisplay display; waylandopengl_t* o = r = malloc(sizeof(*o)); int gbm_format = 0; + EGLConfig egl_configs[1024]; memset(o, 0, sizeof(waylandopengl_t)); o->gllib = MwDynamicOpen("libEGL.so"); @@ -303,10 +299,8 @@ static int wcreate(MwWidget handle) { #define eglSwapBuffers o->eglSwapBuffers #define eglSwapInterval o->eglSwapInterval #define eglGetError o->eglGetError -#define wl_egl_window_create o->wl_egl_window_create #define eglBindAPI o->eglBindAPI #define eglGetDisplay o->eglGetDisplay -#define wl_egl_window_resize o->wl_egl_window_resize #define eglCreatePlatformWindowSurface o->eglCreatePlatformWindowSurface #define eglDestroySurface o->eglDestroySurface #define eglChooseConfig o->eglChooseConfig @@ -336,7 +330,6 @@ static int wcreate(MwWidget handle) { printf("ERROR: eglGetConfigs, %0X\n", eglGetError()); return 1; } - EGLConfig egl_configs[1024]; /* Choose config */ if((eglChooseConfig(display, fbAttribs, egl_configs, numConfigs, &numConfigsMatched) != @@ -353,6 +346,7 @@ static int wcreate(MwWidget handle) { } else { if(gbm_format == GBM_FORMAT_ARGB8888) { o->egl_config = egl_configs[i]; + break; } } } @@ -519,11 +513,12 @@ static void mwOpenGLSwapBufferImpl(MwWidget handle) { #ifdef USE_WAYLAND if(handle->lowlevel->common.type == MwLLBackendWayland) { waylandopengl_t* o = handle->internal; - eglSwapInterval(o->egl_display, 0); + struct gbm_bo* bo; + eglSwapInterval(o->egl_display, 0); if(!eglSwapBuffers(o->egl_display, o->egl_surface)) { printf("ERROR: eglSwapBuffers, %0X\n", eglGetError()); } - struct gbm_bo* bo = o->gbm_surface_lock_front_buffer(o->gbm_surface); + bo = o->gbm_surface_lock_front_buffer(o->gbm_surface); if(bo) { void* gbmBoMapData = NULL; // Needed for unmapping if gbm_bo_map is used MwU32 width = o->gbm_bo_get_width(bo); From ddca432762683856b917435c39ed2d5be12d39fe Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 20 May 2026 04:07:44 -0500 Subject: [PATCH 723/836] wayland/opengl: instead of just breaking, select the one with the lowest visual ID specifically --- src/widget/opengl.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/widget/opengl.c b/src/widget/opengl.c index c50c3ace5..8df31bffb 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -239,6 +239,9 @@ static int wcreate(MwWidget handle) { EGLDisplay display; waylandopengl_t* o = r = malloc(sizeof(*o)); int gbm_format = 0; + MwBool egl_config_type_set = MwFALSE; + int egl_config_type = 0; + int known_egl_config_type = 0; EGLConfig egl_configs[1024]; memset(o, 0, sizeof(waylandopengl_t)); @@ -344,10 +347,18 @@ static int wcreate(MwWidget handle) { &gbm_format) == EGL_FALSE) { printf("ERROR: eglGetConfigAttrib, %0X\n", eglGetError()); } else { - if(gbm_format == GBM_FORMAT_ARGB8888) { - o->egl_config = egl_configs[i]; - break; - } + if(gbm_format == GBM_FORMAT_ARGB8888) { + if(o->eglGetConfigAttrib(display, egl_configs[i], + EGL_NATIVE_VISUAL_TYPE, + &egl_config_type) == EGL_FALSE) { + printf("ERROR: eglGetConfigAttrib, %0X\n", eglGetError()); + } else { + if(egl_config_type < known_egl_config_type || !egl_config_type_set) { + o->egl_config = egl_configs[i]; + egl_config_type_set = MwTRUE; + } + } + } } } From b8229c3ee832c297cfce67f93b69d57d0c749b25 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 20 May 2026 04:09:47 -0500 Subject: [PATCH 724/836] wayland/opengl: revert "instead of just breaking, select the one with the lowest visual ID" --- src/widget/opengl.c | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/src/widget/opengl.c b/src/widget/opengl.c index 8df31bffb..bd3532bf2 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -239,9 +239,6 @@ static int wcreate(MwWidget handle) { EGLDisplay display; waylandopengl_t* o = r = malloc(sizeof(*o)); int gbm_format = 0; - MwBool egl_config_type_set = MwFALSE; - int egl_config_type = 0; - int known_egl_config_type = 0; EGLConfig egl_configs[1024]; memset(o, 0, sizeof(waylandopengl_t)); @@ -347,18 +344,10 @@ static int wcreate(MwWidget handle) { &gbm_format) == EGL_FALSE) { printf("ERROR: eglGetConfigAttrib, %0X\n", eglGetError()); } else { - if(gbm_format == GBM_FORMAT_ARGB8888) { - if(o->eglGetConfigAttrib(display, egl_configs[i], - EGL_NATIVE_VISUAL_TYPE, - &egl_config_type) == EGL_FALSE) { - printf("ERROR: eglGetConfigAttrib, %0X\n", eglGetError()); - } else { - if(egl_config_type < known_egl_config_type || !egl_config_type_set) { - o->egl_config = egl_configs[i]; - egl_config_type_set = MwTRUE; - } - } - } + if(gbm_format == GBM_FORMAT_ARGB8888) { + o->egl_config = egl_configs[i]; + break; + } } } @@ -693,4 +682,4 @@ MWDECL MwClass MwOpenGLClass; MwClass MwOpenGLClass = NULL; #endif -#endif +#endif \ No newline at end of file From 637015e4d574c553bf632e578a8cb9a76c3cf061 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 20 May 2026 02:43:22 -0700 Subject: [PATCH 725/836] rename MwWaylandAlwaysRender to MwWaylandVulkan --- include/Mw/LowLevel/Wayland.h | 7 ++++++- src/backend/wayland/interfaces.c | 2 +- src/backend/wayland/wayland.c | 8 +++++--- src/widget/vulkan.c | 2 +- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 2de34d27e..c6d397b12 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -144,7 +144,12 @@ typedef struct wayland_call_table { } wayland_call_table_t; extern wayland_call_table_t wl_call_tbl; -extern MwBool MwWaylandAlwaysRender; +#ifdef MW_VULKAN +extern MwBool MwWaylandVulkan; +#else +#define MwWaylandVulkan 0 +#endif + /* defined inline right here so that it doesn't conflict with the other macros */ MwInline int wayland_load_funcs() { #ifdef __APPLE__ diff --git a/src/backend/wayland/interfaces.c b/src/backend/wayland/interfaces.c index 8561798f7..fa64268a7 100644 --- a/src/backend/wayland/interfaces.c +++ b/src/backend/wayland/interfaces.c @@ -798,7 +798,7 @@ static void keyboard_key(void* data, } } - if(!MwWaylandAlwaysRender) { + if(!MwWaylandVulkan) { MwLLDispatch(self, draw, NULL); } diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index ed2516fe5..3d6193273 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -6,7 +6,9 @@ #include "../../../external/stb_ds.h" wayland_call_table_t wl_call_tbl; -MwBool MwWaylandAlwaysRender = MwFALSE; +#ifdef MW_VULKAN +MwBool MwWaylandVulkan = MwFALSE; +#endif static pthread_mutex_t destroyedWidgetsTableMutex; /* @@ -1100,7 +1102,7 @@ static int MwLLPendingImpl(MwLL handle) { handle->wayland.did_initial_resize = 1; } - if(!MwWaylandAlwaysRender) { + if(!MwWaylandVulkan) { wl_display_prepare_read(handle->wayland.display); if(!poll(&fd, 1, timeout.tv_nsec)) { wl_display_cancel_read(handle->wayland.display); @@ -1127,7 +1129,7 @@ static int MwLLPendingImpl(MwLL handle) { static void MwLLNextEventImpl(MwLL handle) { WIDGET_CHECK(handle); - if(!MwWaylandAlwaysRender) { + if(!MwWaylandVulkan) { if(handle->wayland.did_event_loop_early) { handle->wayland.did_event_loop_early = MwFALSE; } else { diff --git a/src/widget/vulkan.c b/src/widget/vulkan.c index 8da8ef1dc..f4c534029 100644 --- a/src/widget/vulkan.c +++ b/src/widget/vulkan.c @@ -242,7 +242,7 @@ static int vulkan_instance_setup(MwWidget handle, vulkan_t* o) { if(handle->lowlevel->common.type == MwLLBackendWayland) { arrput(o->enabledExtensions, VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME); /* take this opprutunity to set the widget to always render */ - MwWaylandAlwaysRender = MwTRUE; + MwWaylandVulkan = MwTRUE; } #endif #ifdef USE_COCOA From 6f204af3e6148b6393c4e7fcac478dad101a5c42 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 20 May 2026 14:02:41 -0700 Subject: [PATCH 726/836] wayland: fix comment --- src/backend/wayland/wayland.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 3d6193273..befc2de91 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -14,7 +14,7 @@ static pthread_mutex_t destroyedWidgetsTableMutex; /* * So Wayland, bless its soul; it keeps using callbacks LONG after they should not only be destroyed but the widget doesn't even exist anymore. Naturally, this causes use after free. so we fight fire with fire in the worst code i've ever written: by storing the freed pointers here, we disallow wayland from ever using them again. if something else is created that takes this slot, we remove it from the table. * - * TODO(IOI): FUCKING NO???? FIX THIS. + * To illustrate how bad this code is: if Israel and Palestine found out I was doing this then the Israel/Palestine conflict would be solved because both world leaders would come to the conclusion that this code is the worst thing ever. */ static MwLL* destroyedWidgetsTable; From 632f63dee8568ac2a343ccb0b876de6ae3f6173b Mon Sep 17 00:00:00 2001 From: Nishi Date: Thu, 21 May 2026 06:03:40 +0900 Subject: [PATCH 727/836] backport fix --- src/core.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/core.c b/src/core.c index db81a2b2e..b03fb4647 100644 --- a/src/core.c +++ b/src/core.c @@ -354,6 +354,7 @@ void MwFreeWidget(MwWidget handle) { for(i = 0; i < arrlen(handle->children); i++) { MwFreeWidget(handle->children[i]); + i--; } arrfree(handle->children); From 9ee96a71c44727c049ef93eeae987ab3b2698c64 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 20 May 2026 16:29:09 -0700 Subject: [PATCH 728/836] wayland: overhaul CSD, functions/looks much better. --- include/Mw/LowLevel/Wayland.h | 7 +- src/backend/wayland/interfaces.c | 21 ++++- src/backend/wayland/region.c | 4 + src/backend/wayland/wayland.c | 137 ++++++++++++++++++++++++------- 4 files changed, 135 insertions(+), 34 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index c6d397b12..247f8c30e 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -28,8 +28,8 @@ MWDECL int MwLLWaylandCallInit(void); #define CSD_BORDER_FRAME_LEFT 5 #define CSD_BORDER_FRAME_RIGHT 5 -#define CSD_BORDER_FRAME_TOP 24 -#define CSD_BORDER_FRAME_BOTTOM 5 +#define CSD_BORDER_FRAME_TOP 23 +#define CSD_BORDER_FRAME_BOTTOM 4 struct _MwLLWayland; @@ -360,6 +360,7 @@ struct _MwLLWaylandTopLevel { struct xdg_toplevel* xdg_top_level; struct xdg_toplevel_listener xdg_toplevel_listener; struct xdg_surface_listener xdg_surface_listener; + MwBool maxim_state; MwBool compositor_created; MwBool xdg_wm_base_created; @@ -555,6 +556,8 @@ struct _MwLLWayland { struct _MwLLWaylandShmBuffer cursor; struct _MwLLWaylandShmBuffer* icon; + MwLLPixmap icon_pixmap; + pthread_mutex_t eventsMutex; int cancelEvent; diff --git a/src/backend/wayland/interfaces.c b/src/backend/wayland/interfaces.c index fa64268a7..5325096b5 100644 --- a/src/backend/wayland/interfaces.c +++ b/src/backend/wayland/interfaces.c @@ -406,6 +406,10 @@ static void pointer_enter(void* data, struct wl_pointer* wl_pointer, MwU32 seria wl_pointer_set_cursor(self->wayland.pointer, self->wayland.pointer_serial, topmost_parent->wayland.cursor.surface, 0, 0); } + + if(self->wayland.backbuffer.surface == surface) { + curSurface = surface; + } WAYLAND_EVENT_OP_END(self); }; @@ -440,7 +444,22 @@ static void xdg_borderless_step(MwLL self, MwMouse p, MwU32 serial) { } else if(p.point.x <= 5) { xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_LEFT); } else if(p.point.y <= CSD_BORDER_FRAME_TOP) { - xdg_toplevel_move(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial); + if(p.point.x >= CSD_BORDER_FRAME_LEFT && p.point.x <= CSD_BORDER_FRAME_LEFT + 18) { + MwLLDispatch(self, close, NULL); + } else if(p.point.x >= (self->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT) - 21) { + xdg_toplevel_set_minimized(self->wayland.toplevel->xdg_top_level); + } else if(p.point.x >= (self->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT) - 38) { + self->wayland.toplevel->maxim_state = !self->wayland.toplevel->maxim_state; + if(self->wayland.toplevel->maxim_state == 0) { + xdg_toplevel_unset_maximized(self->wayland.toplevel->xdg_top_level); + } else { + xdg_toplevel_set_maximized(self->wayland.toplevel->xdg_top_level); + } + self->wayland.setting_wh = 1; + MwLLWaylandRegionSetup(self); + } else { + xdg_toplevel_move(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial); + } } }; } diff --git a/src/backend/wayland/region.c b/src/backend/wayland/region.c index 207fa5922..c1bab73fb 100644 --- a/src/backend/wayland/region.c +++ b/src/backend/wayland/region.c @@ -11,6 +11,10 @@ void MwLLWaylandRegionSetup(MwLL handle) { int width = (handle->wayland.clipping_rect.width == 0) ? handle->wayland.ww : handle->wayland.clipping_rect.width; int height = (handle->wayland.clipping_rect.height == 0) ? handle->wayland.wh : handle->wayland.clipping_rect.height; + if(!handle->wayland.has_decorations && handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { + width += CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT; + height += CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM; + } if(!handle->wayland.configured) { return; } diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index befc2de91..73a51cfa7 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -176,6 +176,12 @@ static void xdg_toplevel_configure(void* data, MwLLWaylandRegionInvalidate(self); self->wayland.ww = width; self->wayland.wh = height; + if(self->wayland.type == MwLL_WAYLAND_TOPLEVEL) { + if(!self->wayland.has_decorations && self->wayland.toplevel->maxim_state) { + self->wayland.ww -= CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT; + self->wayland.wh -= CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM; + } + } if(self->wayland.resizing == 0) { xdg_surface_set_window_geometry(self->wayland.toplevel->xdg_surface, 0, 0, self->wayland.ww, self->wayland.wh); @@ -885,6 +891,18 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { handle->wayland.events_pending = 1; } +typedef struct { + double r, g, b; +} float_color; +static float_color lerp_color(float_color a, float_color b, float t) { + return (float_color){ + a.r + (b.r - a.r) * t, + a.g + (b.g - a.g) * t, + a.b + (b.b - a.b) * t}; +} +const float_color one = {.2627451, .37254902, .49411765}; +const float_color two = {.05490196, .17254902, .30588235}; + static void MwLLBeginDrawImpl(MwLL handle) { WIDGET_CHECK(handle); cairo_save(handle->wayland.front_cairo); @@ -900,44 +918,90 @@ static void MwLLBeginDrawImpl(MwLL handle) { } if(!handle->wayland.has_decorations) { - int x; - MwU32 w = handle->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT; - MwU32 h = handle->wayland.wh + CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM; - cairo_set_line_width(handle->wayland.back_cairo, 4.0); - for(x = 0; x < w; x++) { - float placeholder = (float)x / (float)w; - cairo_set_source_rgb(handle->wayland.back_cairo, placeholder, 0.25, 0.25); + int y; + MwU32 w = handle->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT; + MwU32 h = handle->wayland.wh + CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM; + MwRect r; + handle->wayland.selected_cairo = handle->wayland.back_cairo; - cairo_move_to(handle->wayland.back_cairo, w - x, 0); - cairo_line_to(handle->wayland.back_cairo, w - x, CSD_BORDER_FRAME_TOP); - cairo_stroke(handle->wayland.back_cairo); +#define DO_BOX(x, y, col, w, h) \ + cairo_rectangle(handle->wayland.back_cairo, x, y, w, h); \ + cairo_set_source_rgb(handle->wayland.back_cairo, col, col, col); \ + cairo_fill(handle->wayland.back_cairo); - cairo_move_to(handle->wayland.back_cairo, x, CSD_BORDER_FRAME_TOP); - cairo_line_to(handle->wayland.back_cairo, x, h); +#define DO_LINE(off, col) \ + cairo_move_to(handle->wayland.back_cairo, off, off); \ + cairo_line_to(handle->wayland.back_cairo, off, h - (off)); \ + cairo_set_source_rgb(handle->wayland.back_cairo, col, col, col); \ + cairo_stroke(handle->wayland.back_cairo); \ + cairo_move_to(handle->wayland.back_cairo, off, off); \ + cairo_line_to(handle->wayland.back_cairo, w - (off), off); \ + cairo_set_source_rgb(handle->wayland.back_cairo, col, col, col); \ + cairo_stroke(handle->wayland.back_cairo); + + /* border */ + cairo_set_antialias(handle->wayland.back_cairo, CAIRO_ANTIALIAS_NONE); + + DO_BOX(0, 0, 0.14901961, w, h); + DO_BOX(1, 1, 0.55686275, w - 2, h - 2); + DO_BOX(2, 2, 0.82352941, w - 4, h - 4); + DO_BOX(3, 3, 0.93333333, w - 6, h - 6); + DO_BOX(4, 4, 1, w - 8, h - 8); + DO_BOX(4, 4, 0.14901961, w - CSD_BORDER_FRAME_LEFT - 4, h - CSD_BORDER_FRAME_BOTTOM - 4); + cairo_set_line_width(handle->wayland.back_cairo, 1.0); + + DO_LINE(1, 1) + DO_LINE(2, 0.93333333) + DO_LINE(3, 0.82352941) + DO_LINE(4, 0.55686275) + DO_LINE(5, 0.14901961) + + cairo_set_line_width(handle->wayland.back_cairo, 2.0); + for(y = 1; y < CSD_BORDER_FRAME_TOP - CSD_BORDER_FRAME_LEFT; y++) { + float_color c = lerp_color(one, two, (double)y / (double)(CSD_BORDER_FRAME_TOP - CSD_BORDER_FRAME_LEFT)); + + cairo_set_source_rgb(handle->wayland.back_cairo, c.r, c.g, c.b); + + cairo_move_to(handle->wayland.back_cairo, CSD_BORDER_FRAME_LEFT, y + CSD_BORDER_FRAME_LEFT); + cairo_line_to(handle->wayland.back_cairo, w - CSD_BORDER_FRAME_RIGHT, y + CSD_BORDER_FRAME_LEFT); cairo_stroke(handle->wayland.back_cairo); } - cairo_set_source_rgba(handle->wayland.back_cairo, 1, 1, 1, 0.5); - cairo_move_to(handle->wayland.back_cairo, 0, 0); - cairo_line_to(handle->wayland.back_cairo, 0, h); - cairo_stroke(handle->wayland.back_cairo); - cairo_move_to(handle->wayland.back_cairo, 0, 0); - cairo_line_to(handle->wayland.back_cairo, w, 0); - cairo_stroke(handle->wayland.back_cairo); - cairo_set_source_rgba(handle->wayland.back_cairo, 0, 0, 0, 0.5); - cairo_move_to(handle->wayland.back_cairo, 0, h); - cairo_line_to(handle->wayland.back_cairo, w, h); - cairo_stroke(handle->wayland.back_cairo); - cairo_move_to(handle->wayland.back_cairo, w, 0); - cairo_line_to(handle->wayland.back_cairo, w, h); - cairo_stroke(handle->wayland.back_cairo); + /* icon */ + r.x = CSD_BORDER_FRAME_LEFT + 1; + r.y = CSD_BORDER_FRAME_RIGHT + 1; + r.width = 15; + r.height = 15; + DO_BOX(5, 5, 1, 18, 18); + DO_BOX(6, 6, 0.35294118, 17, 17); + DO_BOX(6, 6, 0.82352941, 16, 16); + handle->wayland.selected_cairo = handle->wayland.back_cairo; + if(handle->wayland.icon_pixmap) { + MwLLDrawPixmap(handle, &r, handle->wayland.icon_pixmap); + } + /* close */ + DO_BOX(w - 19 - CSD_BORDER_FRAME_LEFT, CSD_BORDER_FRAME_BOTTOM + 1, 1, 18, 18); + DO_BOX(w - 18 - CSD_BORDER_FRAME_LEFT, CSD_BORDER_FRAME_BOTTOM + 2, 0.35294118, 17, 17); + DO_BOX(w - 18 - CSD_BORDER_FRAME_LEFT, CSD_BORDER_FRAME_BOTTOM + 2, 0.82352941, 16, 16); + DO_BOX(w - 18 - CSD_BORDER_FRAME_LEFT + 5, CSD_BORDER_FRAME_BOTTOM + 7, 0, 6, 6); + DO_BOX(w - 18 - CSD_BORDER_FRAME_LEFT + 6, CSD_BORDER_FRAME_BOTTOM + 8, 0.82352941, 4, 4); + + /* maxim */ + DO_BOX(w - 37 - CSD_BORDER_FRAME_LEFT, CSD_BORDER_FRAME_BOTTOM + 1, 1, 18, 18); + DO_BOX(w - 36 - CSD_BORDER_FRAME_LEFT, CSD_BORDER_FRAME_BOTTOM + 2, 0.35294118, 17, 17); + DO_BOX(w - 36 - CSD_BORDER_FRAME_LEFT, CSD_BORDER_FRAME_BOTTOM + 2, 0.82352941, 16, 16); + DO_BOX(w - 36 - CSD_BORDER_FRAME_LEFT + 5, CSD_BORDER_FRAME_BOTTOM + 7, 0, 6, 6); + DO_BOX(w - 36 - CSD_BORDER_FRAME_LEFT, CSD_BORDER_FRAME_BOTTOM + 9, 0.82352941, 16, 2); + DO_BOX(w - 36 - CSD_BORDER_FRAME_LEFT + 7, CSD_BORDER_FRAME_BOTTOM + 4, 0.82352941, 2, 14); + DO_BOX(w - 36 - CSD_BORDER_FRAME_LEFT + 6, CSD_BORDER_FRAME_BOTTOM + 8, 0.82352941, 4, 4); + + /* title */ if(strlen(handle->wayland.title) != 0) { int y, x; int i = 0, sx = 0, sy = 0; int tw, th; unsigned char* px; - MwRect r; MwLLPixmap p; tw = strlen(handle->wayland.title) * 7; th = 14; @@ -946,8 +1010,6 @@ static void MwLLBeginDrawImpl(MwLL handle) { memset(px, 0, tw * th * 4); - handle->wayland.selected_cairo = handle->wayland.back_cairo; - while(handle->wayland.title[i]) { int out; i += MwUTF8ToUTF32(handle->wayland.title + i, &out); @@ -970,8 +1032,8 @@ static void MwLLBeginDrawImpl(MwLL handle) { } p = MwLLCreatePixmap(handle, px, tw, th); - r.x = 5; - r.y = 5; + r.x = 24; + r.y = 5 + 2; r.width = tw; r.height = th; @@ -1156,6 +1218,8 @@ static void MwLLSetTitleImpl(MwLL handle, const char* title) { strncpy(handle->wayland.title, title, 255); MwLLBeginDraw(handle); MwLLEndDraw(handle); + + xdg_toplevel_set_min_size(handle->wayland.toplevel->xdg_top_level, (strlen(handle->wayland.title) * 8) + 64, 64); } } @@ -1279,6 +1343,17 @@ static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { xdg_toplevel_icon_manager_v1_set_icon(icon_manager, handle->wayland.toplevel->xdg_top_level, icon); } } + if(!handle->wayland.has_decorations) { + if(handle->wayland.icon_pixmap) { + MwLLDestroyPixmap(handle->wayland.icon_pixmap); + } + handle->wayland.icon_pixmap = MwLLCreatePixmap(handle, pixmap->common.raw, pixmap->common.width, pixmap->common.height); + + actually_set_wh(handle); + actually_set_wh(handle); + MwLLBeginDraw(handle); + MwLLEndDraw(handle); + } } static void MwLLForceRenderImpl(MwLL handle) { From 31df1aa72c70031418c420731837c9de5d9d3e95 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 20 May 2026 16:33:43 -0700 Subject: [PATCH 729/836] wayland: don't incl dbus --- include/Mw/LowLevel/Wayland.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 247f8c30e..acbb95a2e 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -14,7 +14,6 @@ #include #include #include -#include #ifdef __cplusplus extern "C" { From 1fe971e1df9147f781bd14b0d54c5a42c8c58b6b Mon Sep 17 00:00:00 2001 From: Nishi Date: Thu, 21 May 2026 08:43:45 +0900 Subject: [PATCH 730/836] fix --- src/core.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/core.c b/src/core.c index b03fb4647..db81a2b2e 100644 --- a/src/core.c +++ b/src/core.c @@ -354,7 +354,6 @@ void MwFreeWidget(MwWidget handle) { for(i = 0; i < arrlen(handle->children); i++) { MwFreeWidget(handle->children[i]); - i--; } arrfree(handle->children); From 2e2833f57b2fbf5bc4067eb2a8eeaa6d7a730fbc Mon Sep 17 00:00:00 2001 From: Nishi Date: Thu, 21 May 2026 10:56:12 +0900 Subject: [PATCH 731/836] color --- include/Mw/Draw.h | 6 + src/color.c | 5500 +++++++------------------------------------ src/core.c | 4 +- src/widget/label.c | 4 +- src/widget/opengl.c | 8 +- tools/color.pl | 34 +- 6 files changed, 844 insertions(+), 4712 deletions(-) diff --git a/include/Mw/Draw.h b/include/Mw/Draw.h index ae428990b..deefe0fce 100644 --- a/include/Mw/Draw.h +++ b/include/Mw/Draw.h @@ -28,6 +28,12 @@ MWDECL MwLLColor MWAPI MwParseColor(MwWidget handle, const char* text); */ MWDECL void MWAPI MwParseColorNoAllocate(const char* text, MwRGB* rgb); +/*! + * @brief Initialize color table + * @warning This is called in MwLibraryInit - you do not have to call this + */ +MWDECL void MWAPI MwColorTableInit(void); + /*! * @brief Lighten a color * @param handle Widget diff --git a/src/color.c b/src/color.c index 49c06d694..ae3667ed5 100644 --- a/src/color.c +++ b/src/color.c @@ -1,5 +1,14 @@ #include +#include "../external/stb_ds.h" + +struct color { + char* key; + MwU32 value; +}; + +static struct color* colors = NULL; + MwLLColor MwParseColorName(MwWidget handle, const char* color) { MwRGB rgb; MwParseColorNameNoAllocate(color, &rgb); @@ -7,4699 +16,800 @@ MwLLColor MwParseColorName(MwWidget handle, const char* color) { } void MwParseColorNameNoAllocate(const char* color, MwRGB* rgb) { - if(strcmp(color, "snow") == 0) { - rgb->red = 255; - rgb->green = 250; - rgb->blue = 250; - return; - } - if(strcmp(color, "ghost white") == 0) { - rgb->red = 248; - rgb->green = 248; - rgb->blue = 255; - return; - } - if(strcmp(color, "GhostWhite") == 0) { - rgb->red = 248; - rgb->green = 248; - rgb->blue = 255; - return; - } - if(strcmp(color, "white smoke") == 0) { - rgb->red = 245; - rgb->green = 245; - rgb->blue = 245; - return; - } - if(strcmp(color, "WhiteSmoke") == 0) { - rgb->red = 245; - rgb->green = 245; - rgb->blue = 245; - return; - } - if(strcmp(color, "gainsboro") == 0) { - rgb->red = 220; - rgb->green = 220; - rgb->blue = 220; - return; - } - if(strcmp(color, "floral white") == 0) { - rgb->red = 255; - rgb->green = 250; - rgb->blue = 240; - return; - } - if(strcmp(color, "FloralWhite") == 0) { - rgb->red = 255; - rgb->green = 250; - rgb->blue = 240; - return; - } - if(strcmp(color, "old lace") == 0) { - rgb->red = 253; - rgb->green = 245; - rgb->blue = 230; - return; - } - if(strcmp(color, "OldLace") == 0) { - rgb->red = 253; - rgb->green = 245; - rgb->blue = 230; - return; - } - if(strcmp(color, "linen") == 0) { - rgb->red = 250; - rgb->green = 240; - rgb->blue = 230; - return; - } - if(strcmp(color, "antique white") == 0) { - rgb->red = 250; - rgb->green = 235; - rgb->blue = 215; - return; - } - if(strcmp(color, "AntiqueWhite") == 0) { - rgb->red = 250; - rgb->green = 235; - rgb->blue = 215; - return; - } - if(strcmp(color, "papaya whip") == 0) { - rgb->red = 255; - rgb->green = 239; - rgb->blue = 213; - return; - } - if(strcmp(color, "PapayaWhip") == 0) { - rgb->red = 255; - rgb->green = 239; - rgb->blue = 213; - return; - } - if(strcmp(color, "blanched almond") == 0) { - rgb->red = 255; - rgb->green = 235; - rgb->blue = 205; - return; - } - if(strcmp(color, "BlanchedAlmond") == 0) { - rgb->red = 255; - rgb->green = 235; - rgb->blue = 205; - return; - } - if(strcmp(color, "bisque") == 0) { - rgb->red = 255; - rgb->green = 228; - rgb->blue = 196; - return; - } - if(strcmp(color, "peach puff") == 0) { - rgb->red = 255; - rgb->green = 218; - rgb->blue = 185; - return; - } - if(strcmp(color, "PeachPuff") == 0) { - rgb->red = 255; - rgb->green = 218; - rgb->blue = 185; - return; - } - if(strcmp(color, "navajo white") == 0) { - rgb->red = 255; - rgb->green = 222; - rgb->blue = 173; - return; - } - if(strcmp(color, "NavajoWhite") == 0) { - rgb->red = 255; - rgb->green = 222; - rgb->blue = 173; - return; - } - if(strcmp(color, "moccasin") == 0) { - rgb->red = 255; - rgb->green = 228; - rgb->blue = 181; - return; - } - if(strcmp(color, "cornsilk") == 0) { - rgb->red = 255; - rgb->green = 248; - rgb->blue = 220; - return; - } - if(strcmp(color, "ivory") == 0) { - rgb->red = 255; - rgb->green = 255; - rgb->blue = 240; - return; - } - if(strcmp(color, "lemon chiffon") == 0) { - rgb->red = 255; - rgb->green = 250; - rgb->blue = 205; - return; - } - if(strcmp(color, "LemonChiffon") == 0) { - rgb->red = 255; - rgb->green = 250; - rgb->blue = 205; - return; - } - if(strcmp(color, "seashell") == 0) { - rgb->red = 255; - rgb->green = 245; - rgb->blue = 238; - return; - } - if(strcmp(color, "honeydew") == 0) { - rgb->red = 240; - rgb->green = 255; - rgb->blue = 240; - return; - } - if(strcmp(color, "mint cream") == 0) { - rgb->red = 245; - rgb->green = 255; - rgb->blue = 250; - return; - } - if(strcmp(color, "MintCream") == 0) { - rgb->red = 245; - rgb->green = 255; - rgb->blue = 250; - return; - } - if(strcmp(color, "azure") == 0) { - rgb->red = 240; - rgb->green = 255; - rgb->blue = 255; - return; - } - if(strcmp(color, "alice blue") == 0) { - rgb->red = 240; - rgb->green = 248; - rgb->blue = 255; - return; - } - if(strcmp(color, "AliceBlue") == 0) { - rgb->red = 240; - rgb->green = 248; - rgb->blue = 255; - return; - } - if(strcmp(color, "lavender") == 0) { - rgb->red = 230; - rgb->green = 230; - rgb->blue = 250; - return; - } - if(strcmp(color, "lavender blush") == 0) { - rgb->red = 255; - rgb->green = 240; - rgb->blue = 245; - return; - } - if(strcmp(color, "LavenderBlush") == 0) { - rgb->red = 255; - rgb->green = 240; - rgb->blue = 245; - return; - } - if(strcmp(color, "misty rose") == 0) { - rgb->red = 255; - rgb->green = 228; - rgb->blue = 225; - return; - } - if(strcmp(color, "MistyRose") == 0) { - rgb->red = 255; - rgb->green = 228; - rgb->blue = 225; - return; - } - if(strcmp(color, "white") == 0) { - rgb->red = 255; - rgb->green = 255; - rgb->blue = 255; - return; - } - if(strcmp(color, "black") == 0) { - rgb->red = 0; - rgb->green = 0; - rgb->blue = 0; - return; - } - if(strcmp(color, "dark slate gray") == 0) { - rgb->red = 47; - rgb->green = 79; - rgb->blue = 79; - return; - } - if(strcmp(color, "DarkSlateGray") == 0) { - rgb->red = 47; - rgb->green = 79; - rgb->blue = 79; - return; - } - if(strcmp(color, "dark slate grey") == 0) { - rgb->red = 47; - rgb->green = 79; - rgb->blue = 79; - return; - } - if(strcmp(color, "DarkSlateGrey") == 0) { - rgb->red = 47; - rgb->green = 79; - rgb->blue = 79; - return; - } - if(strcmp(color, "dim gray") == 0) { - rgb->red = 105; - rgb->green = 105; - rgb->blue = 105; - return; - } - if(strcmp(color, "DimGray") == 0) { - rgb->red = 105; - rgb->green = 105; - rgb->blue = 105; - return; - } - if(strcmp(color, "dim grey") == 0) { - rgb->red = 105; - rgb->green = 105; - rgb->blue = 105; - return; - } - if(strcmp(color, "DimGrey") == 0) { - rgb->red = 105; - rgb->green = 105; - rgb->blue = 105; - return; - } - if(strcmp(color, "slate gray") == 0) { - rgb->red = 112; - rgb->green = 128; - rgb->blue = 144; - return; - } - if(strcmp(color, "SlateGray") == 0) { - rgb->red = 112; - rgb->green = 128; - rgb->blue = 144; - return; - } - if(strcmp(color, "slate grey") == 0) { - rgb->red = 112; - rgb->green = 128; - rgb->blue = 144; - return; - } - if(strcmp(color, "SlateGrey") == 0) { - rgb->red = 112; - rgb->green = 128; - rgb->blue = 144; - return; - } - if(strcmp(color, "light slate gray") == 0) { - rgb->red = 119; - rgb->green = 136; - rgb->blue = 153; - return; - } - if(strcmp(color, "LightSlateGray") == 0) { - rgb->red = 119; - rgb->green = 136; - rgb->blue = 153; - return; - } - if(strcmp(color, "light slate grey") == 0) { - rgb->red = 119; - rgb->green = 136; - rgb->blue = 153; - return; - } - if(strcmp(color, "LightSlateGrey") == 0) { - rgb->red = 119; - rgb->green = 136; - rgb->blue = 153; - return; - } - if(strcmp(color, "gray") == 0) { - rgb->red = 190; - rgb->green = 190; - rgb->blue = 190; - return; - } - if(strcmp(color, "grey") == 0) { - rgb->red = 190; - rgb->green = 190; - rgb->blue = 190; - return; - } - if(strcmp(color, "x11 gray") == 0) { - rgb->red = 190; - rgb->green = 190; - rgb->blue = 190; - return; - } - if(strcmp(color, "X11Gray") == 0) { - rgb->red = 190; - rgb->green = 190; - rgb->blue = 190; - return; - } - if(strcmp(color, "x11 grey") == 0) { - rgb->red = 190; - rgb->green = 190; - rgb->blue = 190; - return; - } - if(strcmp(color, "X11Grey") == 0) { - rgb->red = 190; - rgb->green = 190; - rgb->blue = 190; - return; - } - if(strcmp(color, "web gray") == 0) { - rgb->red = 128; - rgb->green = 128; - rgb->blue = 128; - return; - } - if(strcmp(color, "WebGray") == 0) { - rgb->red = 128; - rgb->green = 128; - rgb->blue = 128; - return; - } - if(strcmp(color, "web grey") == 0) { - rgb->red = 128; - rgb->green = 128; - rgb->blue = 128; - return; - } - if(strcmp(color, "WebGrey") == 0) { - rgb->red = 128; - rgb->green = 128; - rgb->blue = 128; - return; - } - if(strcmp(color, "light grey") == 0) { - rgb->red = 211; - rgb->green = 211; - rgb->blue = 211; - return; - } - if(strcmp(color, "LightGrey") == 0) { - rgb->red = 211; - rgb->green = 211; - rgb->blue = 211; - return; - } - if(strcmp(color, "light gray") == 0) { - rgb->red = 211; - rgb->green = 211; - rgb->blue = 211; - return; - } - if(strcmp(color, "LightGray") == 0) { - rgb->red = 211; - rgb->green = 211; - rgb->blue = 211; - return; - } - if(strcmp(color, "midnight blue") == 0) { - rgb->red = 25; - rgb->green = 25; - rgb->blue = 112; - return; - } - if(strcmp(color, "MidnightBlue") == 0) { - rgb->red = 25; - rgb->green = 25; - rgb->blue = 112; - return; - } - if(strcmp(color, "navy") == 0) { - rgb->red = 0; - rgb->green = 0; - rgb->blue = 128; - return; - } - if(strcmp(color, "navy blue") == 0) { - rgb->red = 0; - rgb->green = 0; - rgb->blue = 128; - return; - } - if(strcmp(color, "NavyBlue") == 0) { - rgb->red = 0; - rgb->green = 0; - rgb->blue = 128; - return; - } - if(strcmp(color, "cornflower blue") == 0) { - rgb->red = 100; - rgb->green = 149; - rgb->blue = 237; - return; - } - if(strcmp(color, "CornflowerBlue") == 0) { - rgb->red = 100; - rgb->green = 149; - rgb->blue = 237; - return; - } - if(strcmp(color, "dark slate blue") == 0) { - rgb->red = 72; - rgb->green = 61; - rgb->blue = 139; - return; - } - if(strcmp(color, "DarkSlateBlue") == 0) { - rgb->red = 72; - rgb->green = 61; - rgb->blue = 139; - return; - } - if(strcmp(color, "slate blue") == 0) { - rgb->red = 106; - rgb->green = 90; - rgb->blue = 205; - return; - } - if(strcmp(color, "SlateBlue") == 0) { - rgb->red = 106; - rgb->green = 90; - rgb->blue = 205; - return; - } - if(strcmp(color, "medium slate blue") == 0) { - rgb->red = 123; - rgb->green = 104; - rgb->blue = 238; - return; - } - if(strcmp(color, "MediumSlateBlue") == 0) { - rgb->red = 123; - rgb->green = 104; - rgb->blue = 238; - return; - } - if(strcmp(color, "light slate blue") == 0) { - rgb->red = 132; - rgb->green = 112; - rgb->blue = 255; - return; - } - if(strcmp(color, "LightSlateBlue") == 0) { - rgb->red = 132; - rgb->green = 112; - rgb->blue = 255; - return; - } - if(strcmp(color, "medium blue") == 0) { - rgb->red = 0; - rgb->green = 0; - rgb->blue = 205; - return; - } - if(strcmp(color, "MediumBlue") == 0) { - rgb->red = 0; - rgb->green = 0; - rgb->blue = 205; - return; - } - if(strcmp(color, "royal blue") == 0) { - rgb->red = 65; - rgb->green = 105; - rgb->blue = 225; - return; - } - if(strcmp(color, "RoyalBlue") == 0) { - rgb->red = 65; - rgb->green = 105; - rgb->blue = 225; - return; - } - if(strcmp(color, "blue") == 0) { - rgb->red = 0; - rgb->green = 0; - rgb->blue = 255; - return; - } - if(strcmp(color, "dodger blue") == 0) { - rgb->red = 30; - rgb->green = 144; - rgb->blue = 255; - return; - } - if(strcmp(color, "DodgerBlue") == 0) { - rgb->red = 30; - rgb->green = 144; - rgb->blue = 255; - return; - } - if(strcmp(color, "deep sky blue") == 0) { - rgb->red = 0; - rgb->green = 191; - rgb->blue = 255; - return; - } - if(strcmp(color, "DeepSkyBlue") == 0) { - rgb->red = 0; - rgb->green = 191; - rgb->blue = 255; - return; - } - if(strcmp(color, "sky blue") == 0) { - rgb->red = 135; - rgb->green = 206; - rgb->blue = 235; - return; - } - if(strcmp(color, "SkyBlue") == 0) { - rgb->red = 135; - rgb->green = 206; - rgb->blue = 235; - return; - } - if(strcmp(color, "light sky blue") == 0) { - rgb->red = 135; - rgb->green = 206; - rgb->blue = 250; - return; - } - if(strcmp(color, "LightSkyBlue") == 0) { - rgb->red = 135; - rgb->green = 206; - rgb->blue = 250; - return; - } - if(strcmp(color, "steel blue") == 0) { - rgb->red = 70; - rgb->green = 130; - rgb->blue = 180; - return; - } - if(strcmp(color, "SteelBlue") == 0) { - rgb->red = 70; - rgb->green = 130; - rgb->blue = 180; - return; - } - if(strcmp(color, "light steel blue") == 0) { - rgb->red = 176; - rgb->green = 196; - rgb->blue = 222; - return; - } - if(strcmp(color, "LightSteelBlue") == 0) { - rgb->red = 176; - rgb->green = 196; - rgb->blue = 222; - return; - } - if(strcmp(color, "light blue") == 0) { - rgb->red = 173; - rgb->green = 216; - rgb->blue = 230; - return; - } - if(strcmp(color, "LightBlue") == 0) { - rgb->red = 173; - rgb->green = 216; - rgb->blue = 230; - return; - } - if(strcmp(color, "powder blue") == 0) { - rgb->red = 176; - rgb->green = 224; - rgb->blue = 230; - return; - } - if(strcmp(color, "PowderBlue") == 0) { - rgb->red = 176; - rgb->green = 224; - rgb->blue = 230; - return; - } - if(strcmp(color, "pale turquoise") == 0) { - rgb->red = 175; - rgb->green = 238; - rgb->blue = 238; - return; - } - if(strcmp(color, "PaleTurquoise") == 0) { - rgb->red = 175; - rgb->green = 238; - rgb->blue = 238; - return; - } - if(strcmp(color, "dark turquoise") == 0) { - rgb->red = 0; - rgb->green = 206; - rgb->blue = 209; - return; - } - if(strcmp(color, "DarkTurquoise") == 0) { - rgb->red = 0; - rgb->green = 206; - rgb->blue = 209; - return; - } - if(strcmp(color, "medium turquoise") == 0) { - rgb->red = 72; - rgb->green = 209; - rgb->blue = 204; - return; - } - if(strcmp(color, "MediumTurquoise") == 0) { - rgb->red = 72; - rgb->green = 209; - rgb->blue = 204; - return; - } - if(strcmp(color, "turquoise") == 0) { - rgb->red = 64; - rgb->green = 224; - rgb->blue = 208; - return; - } - if(strcmp(color, "cyan") == 0) { - rgb->red = 0; - rgb->green = 255; - rgb->blue = 255; - return; - } - if(strcmp(color, "aqua") == 0) { - rgb->red = 0; - rgb->green = 255; - rgb->blue = 255; - return; - } - if(strcmp(color, "light cyan") == 0) { - rgb->red = 224; - rgb->green = 255; - rgb->blue = 255; - return; - } - if(strcmp(color, "LightCyan") == 0) { - rgb->red = 224; - rgb->green = 255; - rgb->blue = 255; - return; - } - if(strcmp(color, "cadet blue") == 0) { - rgb->red = 95; - rgb->green = 158; - rgb->blue = 160; - return; - } - if(strcmp(color, "CadetBlue") == 0) { - rgb->red = 95; - rgb->green = 158; - rgb->blue = 160; - return; - } - if(strcmp(color, "medium aquamarine") == 0) { - rgb->red = 102; - rgb->green = 205; - rgb->blue = 170; - return; - } - if(strcmp(color, "MediumAquamarine") == 0) { - rgb->red = 102; - rgb->green = 205; - rgb->blue = 170; - return; - } - if(strcmp(color, "aquamarine") == 0) { - rgb->red = 127; - rgb->green = 255; - rgb->blue = 212; - return; - } - if(strcmp(color, "dark green") == 0) { - rgb->red = 0; - rgb->green = 100; - rgb->blue = 0; - return; - } - if(strcmp(color, "DarkGreen") == 0) { - rgb->red = 0; - rgb->green = 100; - rgb->blue = 0; - return; - } - if(strcmp(color, "dark olive green") == 0) { - rgb->red = 85; - rgb->green = 107; - rgb->blue = 47; - return; - } - if(strcmp(color, "DarkOliveGreen") == 0) { - rgb->red = 85; - rgb->green = 107; - rgb->blue = 47; - return; - } - if(strcmp(color, "dark sea green") == 0) { - rgb->red = 143; - rgb->green = 188; - rgb->blue = 143; - return; - } - if(strcmp(color, "DarkSeaGreen") == 0) { - rgb->red = 143; - rgb->green = 188; - rgb->blue = 143; - return; - } - if(strcmp(color, "sea green") == 0) { - rgb->red = 46; - rgb->green = 139; - rgb->blue = 87; - return; - } - if(strcmp(color, "SeaGreen") == 0) { - rgb->red = 46; - rgb->green = 139; - rgb->blue = 87; - return; - } - if(strcmp(color, "medium sea green") == 0) { - rgb->red = 60; - rgb->green = 179; - rgb->blue = 113; - return; - } - if(strcmp(color, "MediumSeaGreen") == 0) { - rgb->red = 60; - rgb->green = 179; - rgb->blue = 113; - return; - } - if(strcmp(color, "light sea green") == 0) { - rgb->red = 32; - rgb->green = 178; - rgb->blue = 170; - return; - } - if(strcmp(color, "LightSeaGreen") == 0) { - rgb->red = 32; - rgb->green = 178; - rgb->blue = 170; - return; - } - if(strcmp(color, "pale green") == 0) { - rgb->red = 152; - rgb->green = 251; - rgb->blue = 152; - return; - } - if(strcmp(color, "PaleGreen") == 0) { - rgb->red = 152; - rgb->green = 251; - rgb->blue = 152; - return; - } - if(strcmp(color, "spring green") == 0) { - rgb->red = 0; - rgb->green = 255; - rgb->blue = 127; - return; - } - if(strcmp(color, "SpringGreen") == 0) { - rgb->red = 0; - rgb->green = 255; - rgb->blue = 127; - return; - } - if(strcmp(color, "lawn green") == 0) { - rgb->red = 124; - rgb->green = 252; - rgb->blue = 0; - return; - } - if(strcmp(color, "LawnGreen") == 0) { - rgb->red = 124; - rgb->green = 252; - rgb->blue = 0; - return; - } - if(strcmp(color, "green") == 0) { - rgb->red = 0; - rgb->green = 255; - rgb->blue = 0; - return; - } - if(strcmp(color, "lime") == 0) { - rgb->red = 0; - rgb->green = 255; - rgb->blue = 0; - return; - } - if(strcmp(color, "x11 green") == 0) { - rgb->red = 0; - rgb->green = 255; - rgb->blue = 0; - return; - } - if(strcmp(color, "X11Green") == 0) { - rgb->red = 0; - rgb->green = 255; - rgb->blue = 0; - return; - } - if(strcmp(color, "web green") == 0) { - rgb->red = 0; - rgb->green = 128; - rgb->blue = 0; - return; - } - if(strcmp(color, "WebGreen") == 0) { - rgb->red = 0; - rgb->green = 128; - rgb->blue = 0; - return; - } - if(strcmp(color, "chartreuse") == 0) { - rgb->red = 127; - rgb->green = 255; - rgb->blue = 0; - return; - } - if(strcmp(color, "medium spring green") == 0) { - rgb->red = 0; - rgb->green = 250; - rgb->blue = 154; - return; - } - if(strcmp(color, "MediumSpringGreen") == 0) { - rgb->red = 0; - rgb->green = 250; - rgb->blue = 154; - return; - } - if(strcmp(color, "green yellow") == 0) { - rgb->red = 173; - rgb->green = 255; - rgb->blue = 47; - return; - } - if(strcmp(color, "GreenYellow") == 0) { - rgb->red = 173; - rgb->green = 255; - rgb->blue = 47; - return; - } - if(strcmp(color, "lime green") == 0) { - rgb->red = 50; - rgb->green = 205; - rgb->blue = 50; - return; - } - if(strcmp(color, "LimeGreen") == 0) { - rgb->red = 50; - rgb->green = 205; - rgb->blue = 50; - return; - } - if(strcmp(color, "yellow green") == 0) { - rgb->red = 154; - rgb->green = 205; - rgb->blue = 50; - return; - } - if(strcmp(color, "YellowGreen") == 0) { - rgb->red = 154; - rgb->green = 205; - rgb->blue = 50; - return; - } - if(strcmp(color, "forest green") == 0) { - rgb->red = 34; - rgb->green = 139; - rgb->blue = 34; - return; - } - if(strcmp(color, "ForestGreen") == 0) { - rgb->red = 34; - rgb->green = 139; - rgb->blue = 34; - return; - } - if(strcmp(color, "olive drab") == 0) { - rgb->red = 107; - rgb->green = 142; - rgb->blue = 35; - return; - } - if(strcmp(color, "OliveDrab") == 0) { - rgb->red = 107; - rgb->green = 142; - rgb->blue = 35; - return; - } - if(strcmp(color, "dark khaki") == 0) { - rgb->red = 189; - rgb->green = 183; - rgb->blue = 107; - return; - } - if(strcmp(color, "DarkKhaki") == 0) { - rgb->red = 189; - rgb->green = 183; - rgb->blue = 107; - return; - } - if(strcmp(color, "khaki") == 0) { - rgb->red = 240; - rgb->green = 230; - rgb->blue = 140; - return; - } - if(strcmp(color, "pale goldenrod") == 0) { - rgb->red = 238; - rgb->green = 232; - rgb->blue = 170; - return; - } - if(strcmp(color, "PaleGoldenrod") == 0) { - rgb->red = 238; - rgb->green = 232; - rgb->blue = 170; - return; - } - if(strcmp(color, "light goldenrod yellow") == 0) { - rgb->red = 250; - rgb->green = 250; - rgb->blue = 210; - return; - } - if(strcmp(color, "LightGoldenrodYellow") == 0) { - rgb->red = 250; - rgb->green = 250; - rgb->blue = 210; - return; - } - if(strcmp(color, "light yellow") == 0) { - rgb->red = 255; - rgb->green = 255; - rgb->blue = 224; - return; - } - if(strcmp(color, "LightYellow") == 0) { - rgb->red = 255; - rgb->green = 255; - rgb->blue = 224; - return; - } - if(strcmp(color, "yellow") == 0) { - rgb->red = 255; - rgb->green = 255; - rgb->blue = 0; - return; - } - if(strcmp(color, "gold") == 0) { - rgb->red = 255; - rgb->green = 215; - rgb->blue = 0; - return; - } - if(strcmp(color, "light goldenrod") == 0) { - rgb->red = 238; - rgb->green = 221; - rgb->blue = 130; - return; - } - if(strcmp(color, "LightGoldenrod") == 0) { - rgb->red = 238; - rgb->green = 221; - rgb->blue = 130; - return; - } - if(strcmp(color, "goldenrod") == 0) { - rgb->red = 218; - rgb->green = 165; - rgb->blue = 32; - return; - } - if(strcmp(color, "dark goldenrod") == 0) { - rgb->red = 184; - rgb->green = 134; - rgb->blue = 11; - return; - } - if(strcmp(color, "DarkGoldenrod") == 0) { - rgb->red = 184; - rgb->green = 134; - rgb->blue = 11; - return; - } - if(strcmp(color, "rosy brown") == 0) { - rgb->red = 188; - rgb->green = 143; - rgb->blue = 143; - return; - } - if(strcmp(color, "RosyBrown") == 0) { - rgb->red = 188; - rgb->green = 143; - rgb->blue = 143; - return; - } - if(strcmp(color, "indian red") == 0) { - rgb->red = 205; - rgb->green = 92; - rgb->blue = 92; - return; - } - if(strcmp(color, "IndianRed") == 0) { - rgb->red = 205; - rgb->green = 92; - rgb->blue = 92; - return; - } - if(strcmp(color, "saddle brown") == 0) { - rgb->red = 139; - rgb->green = 69; - rgb->blue = 19; - return; - } - if(strcmp(color, "SaddleBrown") == 0) { - rgb->red = 139; - rgb->green = 69; - rgb->blue = 19; - return; - } - if(strcmp(color, "sienna") == 0) { - rgb->red = 160; - rgb->green = 82; - rgb->blue = 45; - return; - } - if(strcmp(color, "peru") == 0) { - rgb->red = 205; - rgb->green = 133; - rgb->blue = 63; - return; - } - if(strcmp(color, "burlywood") == 0) { - rgb->red = 222; - rgb->green = 184; - rgb->blue = 135; - return; - } - if(strcmp(color, "beige") == 0) { - rgb->red = 245; - rgb->green = 245; - rgb->blue = 220; - return; - } - if(strcmp(color, "wheat") == 0) { - rgb->red = 245; - rgb->green = 222; - rgb->blue = 179; - return; - } - if(strcmp(color, "sandy brown") == 0) { - rgb->red = 244; - rgb->green = 164; - rgb->blue = 96; - return; - } - if(strcmp(color, "SandyBrown") == 0) { - rgb->red = 244; - rgb->green = 164; - rgb->blue = 96; - return; - } - if(strcmp(color, "tan") == 0) { - rgb->red = 210; - rgb->green = 180; - rgb->blue = 140; - return; - } - if(strcmp(color, "chocolate") == 0) { - rgb->red = 210; - rgb->green = 105; - rgb->blue = 30; - return; - } - if(strcmp(color, "firebrick") == 0) { - rgb->red = 178; - rgb->green = 34; - rgb->blue = 34; - return; - } - if(strcmp(color, "brown") == 0) { - rgb->red = 165; - rgb->green = 42; - rgb->blue = 42; - return; - } - if(strcmp(color, "dark salmon") == 0) { - rgb->red = 233; - rgb->green = 150; - rgb->blue = 122; - return; - } - if(strcmp(color, "DarkSalmon") == 0) { - rgb->red = 233; - rgb->green = 150; - rgb->blue = 122; - return; - } - if(strcmp(color, "salmon") == 0) { - rgb->red = 250; - rgb->green = 128; - rgb->blue = 114; - return; - } - if(strcmp(color, "light salmon") == 0) { - rgb->red = 255; - rgb->green = 160; - rgb->blue = 122; - return; - } - if(strcmp(color, "LightSalmon") == 0) { - rgb->red = 255; - rgb->green = 160; - rgb->blue = 122; - return; - } - if(strcmp(color, "orange") == 0) { - rgb->red = 255; - rgb->green = 165; - rgb->blue = 0; - return; - } - if(strcmp(color, "dark orange") == 0) { - rgb->red = 255; - rgb->green = 140; - rgb->blue = 0; - return; - } - if(strcmp(color, "DarkOrange") == 0) { - rgb->red = 255; - rgb->green = 140; - rgb->blue = 0; - return; - } - if(strcmp(color, "coral") == 0) { - rgb->red = 255; - rgb->green = 127; - rgb->blue = 80; - return; - } - if(strcmp(color, "light coral") == 0) { - rgb->red = 240; - rgb->green = 128; - rgb->blue = 128; - return; - } - if(strcmp(color, "LightCoral") == 0) { - rgb->red = 240; - rgb->green = 128; - rgb->blue = 128; - return; - } - if(strcmp(color, "tomato") == 0) { - rgb->red = 255; - rgb->green = 99; - rgb->blue = 71; - return; - } - if(strcmp(color, "orange red") == 0) { - rgb->red = 255; - rgb->green = 69; - rgb->blue = 0; - return; - } - if(strcmp(color, "OrangeRed") == 0) { - rgb->red = 255; - rgb->green = 69; - rgb->blue = 0; - return; - } - if(strcmp(color, "red") == 0) { - rgb->red = 255; - rgb->green = 0; - rgb->blue = 0; - return; - } - if(strcmp(color, "hot pink") == 0) { - rgb->red = 255; - rgb->green = 105; - rgb->blue = 180; - return; - } - if(strcmp(color, "HotPink") == 0) { - rgb->red = 255; - rgb->green = 105; - rgb->blue = 180; - return; - } - if(strcmp(color, "deep pink") == 0) { - rgb->red = 255; - rgb->green = 20; - rgb->blue = 147; - return; - } - if(strcmp(color, "DeepPink") == 0) { - rgb->red = 255; - rgb->green = 20; - rgb->blue = 147; - return; - } - if(strcmp(color, "pink") == 0) { - rgb->red = 255; - rgb->green = 192; - rgb->blue = 203; - return; - } - if(strcmp(color, "light pink") == 0) { - rgb->red = 255; - rgb->green = 182; - rgb->blue = 193; - return; - } - if(strcmp(color, "LightPink") == 0) { - rgb->red = 255; - rgb->green = 182; - rgb->blue = 193; - return; - } - if(strcmp(color, "pale violet red") == 0) { - rgb->red = 219; - rgb->green = 112; - rgb->blue = 147; - return; - } - if(strcmp(color, "PaleVioletRed") == 0) { - rgb->red = 219; - rgb->green = 112; - rgb->blue = 147; - return; - } - if(strcmp(color, "maroon") == 0) { - rgb->red = 176; - rgb->green = 48; - rgb->blue = 96; - return; - } - if(strcmp(color, "x11 maroon") == 0) { - rgb->red = 176; - rgb->green = 48; - rgb->blue = 96; - return; - } - if(strcmp(color, "X11Maroon") == 0) { - rgb->red = 176; - rgb->green = 48; - rgb->blue = 96; - return; - } - if(strcmp(color, "web maroon") == 0) { - rgb->red = 128; - rgb->green = 0; - rgb->blue = 0; - return; - } - if(strcmp(color, "WebMaroon") == 0) { - rgb->red = 128; - rgb->green = 0; - rgb->blue = 0; - return; - } - if(strcmp(color, "medium violet red") == 0) { - rgb->red = 199; - rgb->green = 21; - rgb->blue = 133; - return; - } - if(strcmp(color, "MediumVioletRed") == 0) { - rgb->red = 199; - rgb->green = 21; - rgb->blue = 133; - return; - } - if(strcmp(color, "violet red") == 0) { - rgb->red = 208; - rgb->green = 32; - rgb->blue = 144; - return; - } - if(strcmp(color, "VioletRed") == 0) { - rgb->red = 208; - rgb->green = 32; - rgb->blue = 144; - return; - } - if(strcmp(color, "magenta") == 0) { - rgb->red = 255; - rgb->green = 0; - rgb->blue = 255; - return; - } - if(strcmp(color, "fuchsia") == 0) { - rgb->red = 255; - rgb->green = 0; - rgb->blue = 255; - return; - } - if(strcmp(color, "violet") == 0) { - rgb->red = 238; - rgb->green = 130; - rgb->blue = 238; - return; - } - if(strcmp(color, "plum") == 0) { - rgb->red = 221; - rgb->green = 160; - rgb->blue = 221; - return; - } - if(strcmp(color, "orchid") == 0) { - rgb->red = 218; - rgb->green = 112; - rgb->blue = 214; - return; - } - if(strcmp(color, "medium orchid") == 0) { - rgb->red = 186; - rgb->green = 85; - rgb->blue = 211; - return; - } - if(strcmp(color, "MediumOrchid") == 0) { - rgb->red = 186; - rgb->green = 85; - rgb->blue = 211; - return; - } - if(strcmp(color, "dark orchid") == 0) { - rgb->red = 153; - rgb->green = 50; - rgb->blue = 204; - return; - } - if(strcmp(color, "DarkOrchid") == 0) { - rgb->red = 153; - rgb->green = 50; - rgb->blue = 204; - return; - } - if(strcmp(color, "dark violet") == 0) { - rgb->red = 148; - rgb->green = 0; - rgb->blue = 211; - return; - } - if(strcmp(color, "DarkViolet") == 0) { - rgb->red = 148; - rgb->green = 0; - rgb->blue = 211; - return; - } - if(strcmp(color, "blue violet") == 0) { - rgb->red = 138; - rgb->green = 43; - rgb->blue = 226; - return; - } - if(strcmp(color, "BlueViolet") == 0) { - rgb->red = 138; - rgb->green = 43; - rgb->blue = 226; - return; - } - if(strcmp(color, "purple") == 0) { - rgb->red = 160; - rgb->green = 32; - rgb->blue = 240; - return; - } - if(strcmp(color, "x11 purple") == 0) { - rgb->red = 160; - rgb->green = 32; - rgb->blue = 240; - return; - } - if(strcmp(color, "X11Purple") == 0) { - rgb->red = 160; - rgb->green = 32; - rgb->blue = 240; - return; - } - if(strcmp(color, "web purple") == 0) { - rgb->red = 128; - rgb->green = 0; - rgb->blue = 128; - return; - } - if(strcmp(color, "WebPurple") == 0) { - rgb->red = 128; - rgb->green = 0; - rgb->blue = 128; - return; - } - if(strcmp(color, "medium purple") == 0) { - rgb->red = 147; - rgb->green = 112; - rgb->blue = 219; - return; - } - if(strcmp(color, "MediumPurple") == 0) { - rgb->red = 147; - rgb->green = 112; - rgb->blue = 219; - return; - } - if(strcmp(color, "thistle") == 0) { - rgb->red = 216; - rgb->green = 191; - rgb->blue = 216; - return; - } - if(strcmp(color, "snow1") == 0) { - rgb->red = 255; - rgb->green = 250; - rgb->blue = 250; - return; - } - if(strcmp(color, "snow2") == 0) { - rgb->red = 238; - rgb->green = 233; - rgb->blue = 233; - return; - } - if(strcmp(color, "snow3") == 0) { - rgb->red = 205; - rgb->green = 201; - rgb->blue = 201; - return; - } - if(strcmp(color, "snow4") == 0) { - rgb->red = 139; - rgb->green = 137; - rgb->blue = 137; - return; - } - if(strcmp(color, "seashell1") == 0) { - rgb->red = 255; - rgb->green = 245; - rgb->blue = 238; - return; - } - if(strcmp(color, "seashell2") == 0) { - rgb->red = 238; - rgb->green = 229; - rgb->blue = 222; - return; - } - if(strcmp(color, "seashell3") == 0) { - rgb->red = 205; - rgb->green = 197; - rgb->blue = 191; - return; - } - if(strcmp(color, "seashell4") == 0) { - rgb->red = 139; - rgb->green = 134; - rgb->blue = 130; - return; - } - if(strcmp(color, "AntiqueWhite1") == 0) { - rgb->red = 255; - rgb->green = 239; - rgb->blue = 219; - return; - } - if(strcmp(color, "AntiqueWhite2") == 0) { - rgb->red = 238; - rgb->green = 223; - rgb->blue = 204; - return; - } - if(strcmp(color, "AntiqueWhite3") == 0) { - rgb->red = 205; - rgb->green = 192; - rgb->blue = 176; - return; - } - if(strcmp(color, "AntiqueWhite4") == 0) { - rgb->red = 139; - rgb->green = 131; - rgb->blue = 120; - return; - } - if(strcmp(color, "bisque1") == 0) { - rgb->red = 255; - rgb->green = 228; - rgb->blue = 196; - return; - } - if(strcmp(color, "bisque2") == 0) { - rgb->red = 238; - rgb->green = 213; - rgb->blue = 183; - return; - } - if(strcmp(color, "bisque3") == 0) { - rgb->red = 205; - rgb->green = 183; - rgb->blue = 158; - return; - } - if(strcmp(color, "bisque4") == 0) { - rgb->red = 139; - rgb->green = 125; - rgb->blue = 107; - return; - } - if(strcmp(color, "PeachPuff1") == 0) { - rgb->red = 255; - rgb->green = 218; - rgb->blue = 185; - return; - } - if(strcmp(color, "PeachPuff2") == 0) { - rgb->red = 238; - rgb->green = 203; - rgb->blue = 173; - return; - } - if(strcmp(color, "PeachPuff3") == 0) { - rgb->red = 205; - rgb->green = 175; - rgb->blue = 149; - return; - } - if(strcmp(color, "PeachPuff4") == 0) { - rgb->red = 139; - rgb->green = 119; - rgb->blue = 101; - return; - } - if(strcmp(color, "NavajoWhite1") == 0) { - rgb->red = 255; - rgb->green = 222; - rgb->blue = 173; - return; - } - if(strcmp(color, "NavajoWhite2") == 0) { - rgb->red = 238; - rgb->green = 207; - rgb->blue = 161; - return; - } - if(strcmp(color, "NavajoWhite3") == 0) { - rgb->red = 205; - rgb->green = 179; - rgb->blue = 139; - return; - } - if(strcmp(color, "NavajoWhite4") == 0) { - rgb->red = 139; - rgb->green = 121; - rgb->blue = 94; - return; - } - if(strcmp(color, "LemonChiffon1") == 0) { - rgb->red = 255; - rgb->green = 250; - rgb->blue = 205; - return; - } - if(strcmp(color, "LemonChiffon2") == 0) { - rgb->red = 238; - rgb->green = 233; - rgb->blue = 191; - return; - } - if(strcmp(color, "LemonChiffon3") == 0) { - rgb->red = 205; - rgb->green = 201; - rgb->blue = 165; - return; - } - if(strcmp(color, "LemonChiffon4") == 0) { - rgb->red = 139; - rgb->green = 137; - rgb->blue = 112; - return; - } - if(strcmp(color, "cornsilk1") == 0) { - rgb->red = 255; - rgb->green = 248; - rgb->blue = 220; - return; - } - if(strcmp(color, "cornsilk2") == 0) { - rgb->red = 238; - rgb->green = 232; - rgb->blue = 205; - return; - } - if(strcmp(color, "cornsilk3") == 0) { - rgb->red = 205; - rgb->green = 200; - rgb->blue = 177; - return; - } - if(strcmp(color, "cornsilk4") == 0) { - rgb->red = 139; - rgb->green = 136; - rgb->blue = 120; - return; - } - if(strcmp(color, "ivory1") == 0) { - rgb->red = 255; - rgb->green = 255; - rgb->blue = 240; - return; - } - if(strcmp(color, "ivory2") == 0) { - rgb->red = 238; - rgb->green = 238; - rgb->blue = 224; - return; - } - if(strcmp(color, "ivory3") == 0) { - rgb->red = 205; - rgb->green = 205; - rgb->blue = 193; - return; - } - if(strcmp(color, "ivory4") == 0) { - rgb->red = 139; - rgb->green = 139; - rgb->blue = 131; - return; - } - if(strcmp(color, "honeydew1") == 0) { - rgb->red = 240; - rgb->green = 255; - rgb->blue = 240; - return; - } - if(strcmp(color, "honeydew2") == 0) { - rgb->red = 224; - rgb->green = 238; - rgb->blue = 224; - return; - } - if(strcmp(color, "honeydew3") == 0) { - rgb->red = 193; - rgb->green = 205; - rgb->blue = 193; - return; - } - if(strcmp(color, "honeydew4") == 0) { - rgb->red = 131; - rgb->green = 139; - rgb->blue = 131; - return; - } - if(strcmp(color, "LavenderBlush1") == 0) { - rgb->red = 255; - rgb->green = 240; - rgb->blue = 245; - return; - } - if(strcmp(color, "LavenderBlush2") == 0) { - rgb->red = 238; - rgb->green = 224; - rgb->blue = 229; - return; - } - if(strcmp(color, "LavenderBlush3") == 0) { - rgb->red = 205; - rgb->green = 193; - rgb->blue = 197; - return; - } - if(strcmp(color, "LavenderBlush4") == 0) { - rgb->red = 139; - rgb->green = 131; - rgb->blue = 134; - return; - } - if(strcmp(color, "MistyRose1") == 0) { - rgb->red = 255; - rgb->green = 228; - rgb->blue = 225; - return; - } - if(strcmp(color, "MistyRose2") == 0) { - rgb->red = 238; - rgb->green = 213; - rgb->blue = 210; - return; - } - if(strcmp(color, "MistyRose3") == 0) { - rgb->red = 205; - rgb->green = 183; - rgb->blue = 181; - return; - } - if(strcmp(color, "MistyRose4") == 0) { - rgb->red = 139; - rgb->green = 125; - rgb->blue = 123; - return; - } - if(strcmp(color, "azure1") == 0) { - rgb->red = 240; - rgb->green = 255; - rgb->blue = 255; - return; - } - if(strcmp(color, "azure2") == 0) { - rgb->red = 224; - rgb->green = 238; - rgb->blue = 238; - return; - } - if(strcmp(color, "azure3") == 0) { - rgb->red = 193; - rgb->green = 205; - rgb->blue = 205; - return; - } - if(strcmp(color, "azure4") == 0) { - rgb->red = 131; - rgb->green = 139; - rgb->blue = 139; - return; - } - if(strcmp(color, "SlateBlue1") == 0) { - rgb->red = 131; - rgb->green = 111; - rgb->blue = 255; - return; - } - if(strcmp(color, "SlateBlue2") == 0) { - rgb->red = 122; - rgb->green = 103; - rgb->blue = 238; - return; - } - if(strcmp(color, "SlateBlue3") == 0) { - rgb->red = 105; - rgb->green = 89; - rgb->blue = 205; - return; - } - if(strcmp(color, "SlateBlue4") == 0) { - rgb->red = 71; - rgb->green = 60; - rgb->blue = 139; - return; - } - if(strcmp(color, "RoyalBlue1") == 0) { - rgb->red = 72; - rgb->green = 118; - rgb->blue = 255; - return; - } - if(strcmp(color, "RoyalBlue2") == 0) { - rgb->red = 67; - rgb->green = 110; - rgb->blue = 238; - return; - } - if(strcmp(color, "RoyalBlue3") == 0) { - rgb->red = 58; - rgb->green = 95; - rgb->blue = 205; - return; - } - if(strcmp(color, "RoyalBlue4") == 0) { - rgb->red = 39; - rgb->green = 64; - rgb->blue = 139; - return; - } - if(strcmp(color, "blue1") == 0) { - rgb->red = 0; - rgb->green = 0; - rgb->blue = 255; - return; - } - if(strcmp(color, "blue2") == 0) { - rgb->red = 0; - rgb->green = 0; - rgb->blue = 238; - return; - } - if(strcmp(color, "blue3") == 0) { - rgb->red = 0; - rgb->green = 0; - rgb->blue = 205; - return; - } - if(strcmp(color, "blue4") == 0) { - rgb->red = 0; - rgb->green = 0; - rgb->blue = 139; - return; - } - if(strcmp(color, "DodgerBlue1") == 0) { - rgb->red = 30; - rgb->green = 144; - rgb->blue = 255; - return; - } - if(strcmp(color, "DodgerBlue2") == 0) { - rgb->red = 28; - rgb->green = 134; - rgb->blue = 238; - return; - } - if(strcmp(color, "DodgerBlue3") == 0) { - rgb->red = 24; - rgb->green = 116; - rgb->blue = 205; - return; - } - if(strcmp(color, "DodgerBlue4") == 0) { - rgb->red = 16; - rgb->green = 78; - rgb->blue = 139; - return; - } - if(strcmp(color, "SteelBlue1") == 0) { - rgb->red = 99; - rgb->green = 184; - rgb->blue = 255; - return; - } - if(strcmp(color, "SteelBlue2") == 0) { - rgb->red = 92; - rgb->green = 172; - rgb->blue = 238; - return; - } - if(strcmp(color, "SteelBlue3") == 0) { - rgb->red = 79; - rgb->green = 148; - rgb->blue = 205; - return; - } - if(strcmp(color, "SteelBlue4") == 0) { - rgb->red = 54; - rgb->green = 100; - rgb->blue = 139; - return; - } - if(strcmp(color, "DeepSkyBlue1") == 0) { - rgb->red = 0; - rgb->green = 191; - rgb->blue = 255; - return; - } - if(strcmp(color, "DeepSkyBlue2") == 0) { - rgb->red = 0; - rgb->green = 178; - rgb->blue = 238; - return; - } - if(strcmp(color, "DeepSkyBlue3") == 0) { - rgb->red = 0; - rgb->green = 154; - rgb->blue = 205; - return; - } - if(strcmp(color, "DeepSkyBlue4") == 0) { - rgb->red = 0; - rgb->green = 104; - rgb->blue = 139; - return; - } - if(strcmp(color, "SkyBlue1") == 0) { - rgb->red = 135; - rgb->green = 206; - rgb->blue = 255; - return; - } - if(strcmp(color, "SkyBlue2") == 0) { - rgb->red = 126; - rgb->green = 192; - rgb->blue = 238; - return; - } - if(strcmp(color, "SkyBlue3") == 0) { - rgb->red = 108; - rgb->green = 166; - rgb->blue = 205; - return; - } - if(strcmp(color, "SkyBlue4") == 0) { - rgb->red = 74; - rgb->green = 112; - rgb->blue = 139; - return; - } - if(strcmp(color, "LightSkyBlue1") == 0) { - rgb->red = 176; - rgb->green = 226; - rgb->blue = 255; - return; - } - if(strcmp(color, "LightSkyBlue2") == 0) { - rgb->red = 164; - rgb->green = 211; - rgb->blue = 238; - return; - } - if(strcmp(color, "LightSkyBlue3") == 0) { - rgb->red = 141; - rgb->green = 182; - rgb->blue = 205; - return; - } - if(strcmp(color, "LightSkyBlue4") == 0) { - rgb->red = 96; - rgb->green = 123; - rgb->blue = 139; - return; - } - if(strcmp(color, "SlateGray1") == 0) { - rgb->red = 198; - rgb->green = 226; - rgb->blue = 255; - return; - } - if(strcmp(color, "SlateGray2") == 0) { - rgb->red = 185; - rgb->green = 211; - rgb->blue = 238; - return; - } - if(strcmp(color, "SlateGray3") == 0) { - rgb->red = 159; - rgb->green = 182; - rgb->blue = 205; - return; - } - if(strcmp(color, "SlateGray4") == 0) { - rgb->red = 108; - rgb->green = 123; - rgb->blue = 139; - return; - } - if(strcmp(color, "LightSteelBlue1") == 0) { - rgb->red = 202; - rgb->green = 225; - rgb->blue = 255; - return; - } - if(strcmp(color, "LightSteelBlue2") == 0) { - rgb->red = 188; - rgb->green = 210; - rgb->blue = 238; - return; - } - if(strcmp(color, "LightSteelBlue3") == 0) { - rgb->red = 162; - rgb->green = 181; - rgb->blue = 205; - return; - } - if(strcmp(color, "LightSteelBlue4") == 0) { - rgb->red = 110; - rgb->green = 123; - rgb->blue = 139; - return; - } - if(strcmp(color, "LightBlue1") == 0) { - rgb->red = 191; - rgb->green = 239; - rgb->blue = 255; - return; - } - if(strcmp(color, "LightBlue2") == 0) { - rgb->red = 178; - rgb->green = 223; - rgb->blue = 238; - return; - } - if(strcmp(color, "LightBlue3") == 0) { - rgb->red = 154; - rgb->green = 192; - rgb->blue = 205; - return; - } - if(strcmp(color, "LightBlue4") == 0) { - rgb->red = 104; - rgb->green = 131; - rgb->blue = 139; - return; - } - if(strcmp(color, "LightCyan1") == 0) { - rgb->red = 224; - rgb->green = 255; - rgb->blue = 255; - return; - } - if(strcmp(color, "LightCyan2") == 0) { - rgb->red = 209; - rgb->green = 238; - rgb->blue = 238; - return; - } - if(strcmp(color, "LightCyan3") == 0) { - rgb->red = 180; - rgb->green = 205; - rgb->blue = 205; - return; - } - if(strcmp(color, "LightCyan4") == 0) { - rgb->red = 122; - rgb->green = 139; - rgb->blue = 139; - return; - } - if(strcmp(color, "PaleTurquoise1") == 0) { - rgb->red = 187; - rgb->green = 255; - rgb->blue = 255; - return; - } - if(strcmp(color, "PaleTurquoise2") == 0) { - rgb->red = 174; - rgb->green = 238; - rgb->blue = 238; - return; - } - if(strcmp(color, "PaleTurquoise3") == 0) { - rgb->red = 150; - rgb->green = 205; - rgb->blue = 205; - return; - } - if(strcmp(color, "PaleTurquoise4") == 0) { - rgb->red = 102; - rgb->green = 139; - rgb->blue = 139; - return; - } - if(strcmp(color, "CadetBlue1") == 0) { - rgb->red = 152; - rgb->green = 245; - rgb->blue = 255; - return; - } - if(strcmp(color, "CadetBlue2") == 0) { - rgb->red = 142; - rgb->green = 229; - rgb->blue = 238; - return; - } - if(strcmp(color, "CadetBlue3") == 0) { - rgb->red = 122; - rgb->green = 197; - rgb->blue = 205; - return; - } - if(strcmp(color, "CadetBlue4") == 0) { - rgb->red = 83; - rgb->green = 134; - rgb->blue = 139; - return; - } - if(strcmp(color, "turquoise1") == 0) { - rgb->red = 0; - rgb->green = 245; - rgb->blue = 255; - return; - } - if(strcmp(color, "turquoise2") == 0) { - rgb->red = 0; - rgb->green = 229; - rgb->blue = 238; - return; - } - if(strcmp(color, "turquoise3") == 0) { - rgb->red = 0; - rgb->green = 197; - rgb->blue = 205; - return; - } - if(strcmp(color, "turquoise4") == 0) { - rgb->red = 0; - rgb->green = 134; - rgb->blue = 139; - return; - } - if(strcmp(color, "cyan1") == 0) { - rgb->red = 0; - rgb->green = 255; - rgb->blue = 255; - return; - } - if(strcmp(color, "cyan2") == 0) { - rgb->red = 0; - rgb->green = 238; - rgb->blue = 238; - return; - } - if(strcmp(color, "cyan3") == 0) { - rgb->red = 0; - rgb->green = 205; - rgb->blue = 205; - return; - } - if(strcmp(color, "cyan4") == 0) { - rgb->red = 0; - rgb->green = 139; - rgb->blue = 139; - return; - } - if(strcmp(color, "DarkSlateGray1") == 0) { - rgb->red = 151; - rgb->green = 255; - rgb->blue = 255; - return; - } - if(strcmp(color, "DarkSlateGray2") == 0) { - rgb->red = 141; - rgb->green = 238; - rgb->blue = 238; - return; - } - if(strcmp(color, "DarkSlateGray3") == 0) { - rgb->red = 121; - rgb->green = 205; - rgb->blue = 205; - return; - } - if(strcmp(color, "DarkSlateGray4") == 0) { - rgb->red = 82; - rgb->green = 139; - rgb->blue = 139; - return; - } - if(strcmp(color, "aquamarine1") == 0) { - rgb->red = 127; - rgb->green = 255; - rgb->blue = 212; - return; - } - if(strcmp(color, "aquamarine2") == 0) { - rgb->red = 118; - rgb->green = 238; - rgb->blue = 198; - return; - } - if(strcmp(color, "aquamarine3") == 0) { - rgb->red = 102; - rgb->green = 205; - rgb->blue = 170; - return; - } - if(strcmp(color, "aquamarine4") == 0) { - rgb->red = 69; - rgb->green = 139; - rgb->blue = 116; - return; - } - if(strcmp(color, "DarkSeaGreen1") == 0) { - rgb->red = 193; - rgb->green = 255; - rgb->blue = 193; - return; - } - if(strcmp(color, "DarkSeaGreen2") == 0) { - rgb->red = 180; - rgb->green = 238; - rgb->blue = 180; - return; - } - if(strcmp(color, "DarkSeaGreen3") == 0) { - rgb->red = 155; - rgb->green = 205; - rgb->blue = 155; - return; - } - if(strcmp(color, "DarkSeaGreen4") == 0) { - rgb->red = 105; - rgb->green = 139; - rgb->blue = 105; - return; - } - if(strcmp(color, "SeaGreen1") == 0) { - rgb->red = 84; - rgb->green = 255; - rgb->blue = 159; - return; - } - if(strcmp(color, "SeaGreen2") == 0) { - rgb->red = 78; - rgb->green = 238; - rgb->blue = 148; - return; - } - if(strcmp(color, "SeaGreen3") == 0) { - rgb->red = 67; - rgb->green = 205; - rgb->blue = 128; - return; - } - if(strcmp(color, "SeaGreen4") == 0) { - rgb->red = 46; - rgb->green = 139; - rgb->blue = 87; - return; - } - if(strcmp(color, "PaleGreen1") == 0) { - rgb->red = 154; - rgb->green = 255; - rgb->blue = 154; - return; - } - if(strcmp(color, "PaleGreen2") == 0) { - rgb->red = 144; - rgb->green = 238; - rgb->blue = 144; - return; - } - if(strcmp(color, "PaleGreen3") == 0) { - rgb->red = 124; - rgb->green = 205; - rgb->blue = 124; - return; - } - if(strcmp(color, "PaleGreen4") == 0) { - rgb->red = 84; - rgb->green = 139; - rgb->blue = 84; - return; - } - if(strcmp(color, "SpringGreen1") == 0) { - rgb->red = 0; - rgb->green = 255; - rgb->blue = 127; - return; - } - if(strcmp(color, "SpringGreen2") == 0) { - rgb->red = 0; - rgb->green = 238; - rgb->blue = 118; - return; - } - if(strcmp(color, "SpringGreen3") == 0) { - rgb->red = 0; - rgb->green = 205; - rgb->blue = 102; - return; - } - if(strcmp(color, "SpringGreen4") == 0) { - rgb->red = 0; - rgb->green = 139; - rgb->blue = 69; - return; - } - if(strcmp(color, "green1") == 0) { - rgb->red = 0; - rgb->green = 255; - rgb->blue = 0; - return; - } - if(strcmp(color, "green2") == 0) { - rgb->red = 0; - rgb->green = 238; - rgb->blue = 0; - return; - } - if(strcmp(color, "green3") == 0) { - rgb->red = 0; - rgb->green = 205; - rgb->blue = 0; - return; - } - if(strcmp(color, "green4") == 0) { - rgb->red = 0; - rgb->green = 139; - rgb->blue = 0; - return; - } - if(strcmp(color, "chartreuse1") == 0) { - rgb->red = 127; - rgb->green = 255; - rgb->blue = 0; - return; - } - if(strcmp(color, "chartreuse2") == 0) { - rgb->red = 118; - rgb->green = 238; - rgb->blue = 0; - return; - } - if(strcmp(color, "chartreuse3") == 0) { - rgb->red = 102; - rgb->green = 205; - rgb->blue = 0; - return; - } - if(strcmp(color, "chartreuse4") == 0) { - rgb->red = 69; - rgb->green = 139; - rgb->blue = 0; - return; - } - if(strcmp(color, "OliveDrab1") == 0) { - rgb->red = 192; - rgb->green = 255; - rgb->blue = 62; - return; - } - if(strcmp(color, "OliveDrab2") == 0) { - rgb->red = 179; - rgb->green = 238; - rgb->blue = 58; - return; - } - if(strcmp(color, "OliveDrab3") == 0) { - rgb->red = 154; - rgb->green = 205; - rgb->blue = 50; - return; - } - if(strcmp(color, "OliveDrab4") == 0) { - rgb->red = 105; - rgb->green = 139; - rgb->blue = 34; - return; - } - if(strcmp(color, "DarkOliveGreen1") == 0) { - rgb->red = 202; - rgb->green = 255; - rgb->blue = 112; - return; - } - if(strcmp(color, "DarkOliveGreen2") == 0) { - rgb->red = 188; - rgb->green = 238; - rgb->blue = 104; - return; - } - if(strcmp(color, "DarkOliveGreen3") == 0) { - rgb->red = 162; - rgb->green = 205; - rgb->blue = 90; - return; - } - if(strcmp(color, "DarkOliveGreen4") == 0) { - rgb->red = 110; - rgb->green = 139; - rgb->blue = 61; - return; - } - if(strcmp(color, "khaki1") == 0) { - rgb->red = 255; - rgb->green = 246; - rgb->blue = 143; - return; - } - if(strcmp(color, "khaki2") == 0) { - rgb->red = 238; - rgb->green = 230; - rgb->blue = 133; - return; - } - if(strcmp(color, "khaki3") == 0) { - rgb->red = 205; - rgb->green = 198; - rgb->blue = 115; - return; - } - if(strcmp(color, "khaki4") == 0) { - rgb->red = 139; - rgb->green = 134; - rgb->blue = 78; - return; - } - if(strcmp(color, "LightGoldenrod1") == 0) { - rgb->red = 255; - rgb->green = 236; - rgb->blue = 139; - return; - } - if(strcmp(color, "LightGoldenrod2") == 0) { - rgb->red = 238; - rgb->green = 220; - rgb->blue = 130; - return; - } - if(strcmp(color, "LightGoldenrod3") == 0) { - rgb->red = 205; - rgb->green = 190; - rgb->blue = 112; - return; - } - if(strcmp(color, "LightGoldenrod4") == 0) { - rgb->red = 139; - rgb->green = 129; - rgb->blue = 76; - return; - } - if(strcmp(color, "LightYellow1") == 0) { - rgb->red = 255; - rgb->green = 255; - rgb->blue = 224; - return; - } - if(strcmp(color, "LightYellow2") == 0) { - rgb->red = 238; - rgb->green = 238; - rgb->blue = 209; - return; - } - if(strcmp(color, "LightYellow3") == 0) { - rgb->red = 205; - rgb->green = 205; - rgb->blue = 180; - return; - } - if(strcmp(color, "LightYellow4") == 0) { - rgb->red = 139; - rgb->green = 139; - rgb->blue = 122; - return; - } - if(strcmp(color, "yellow1") == 0) { - rgb->red = 255; - rgb->green = 255; - rgb->blue = 0; - return; - } - if(strcmp(color, "yellow2") == 0) { - rgb->red = 238; - rgb->green = 238; - rgb->blue = 0; - return; - } - if(strcmp(color, "yellow3") == 0) { - rgb->red = 205; - rgb->green = 205; - rgb->blue = 0; - return; - } - if(strcmp(color, "yellow4") == 0) { - rgb->red = 139; - rgb->green = 139; - rgb->blue = 0; - return; - } - if(strcmp(color, "gold1") == 0) { - rgb->red = 255; - rgb->green = 215; - rgb->blue = 0; - return; - } - if(strcmp(color, "gold2") == 0) { - rgb->red = 238; - rgb->green = 201; - rgb->blue = 0; - return; - } - if(strcmp(color, "gold3") == 0) { - rgb->red = 205; - rgb->green = 173; - rgb->blue = 0; - return; - } - if(strcmp(color, "gold4") == 0) { - rgb->red = 139; - rgb->green = 117; - rgb->blue = 0; - return; - } - if(strcmp(color, "goldenrod1") == 0) { - rgb->red = 255; - rgb->green = 193; - rgb->blue = 37; - return; - } - if(strcmp(color, "goldenrod2") == 0) { - rgb->red = 238; - rgb->green = 180; - rgb->blue = 34; - return; - } - if(strcmp(color, "goldenrod3") == 0) { - rgb->red = 205; - rgb->green = 155; - rgb->blue = 29; - return; - } - if(strcmp(color, "goldenrod4") == 0) { - rgb->red = 139; - rgb->green = 105; - rgb->blue = 20; - return; - } - if(strcmp(color, "DarkGoldenrod1") == 0) { - rgb->red = 255; - rgb->green = 185; - rgb->blue = 15; - return; - } - if(strcmp(color, "DarkGoldenrod2") == 0) { - rgb->red = 238; - rgb->green = 173; - rgb->blue = 14; - return; - } - if(strcmp(color, "DarkGoldenrod3") == 0) { - rgb->red = 205; - rgb->green = 149; - rgb->blue = 12; - return; - } - if(strcmp(color, "DarkGoldenrod4") == 0) { - rgb->red = 139; - rgb->green = 101; - rgb->blue = 8; - return; - } - if(strcmp(color, "RosyBrown1") == 0) { - rgb->red = 255; - rgb->green = 193; - rgb->blue = 193; - return; - } - if(strcmp(color, "RosyBrown2") == 0) { - rgb->red = 238; - rgb->green = 180; - rgb->blue = 180; - return; - } - if(strcmp(color, "RosyBrown3") == 0) { - rgb->red = 205; - rgb->green = 155; - rgb->blue = 155; - return; - } - if(strcmp(color, "RosyBrown4") == 0) { - rgb->red = 139; - rgb->green = 105; - rgb->blue = 105; - return; - } - if(strcmp(color, "IndianRed1") == 0) { - rgb->red = 255; - rgb->green = 106; - rgb->blue = 106; - return; - } - if(strcmp(color, "IndianRed2") == 0) { - rgb->red = 238; - rgb->green = 99; - rgb->blue = 99; - return; - } - if(strcmp(color, "IndianRed3") == 0) { - rgb->red = 205; - rgb->green = 85; - rgb->blue = 85; - return; - } - if(strcmp(color, "IndianRed4") == 0) { - rgb->red = 139; - rgb->green = 58; - rgb->blue = 58; - return; - } - if(strcmp(color, "sienna1") == 0) { - rgb->red = 255; - rgb->green = 130; - rgb->blue = 71; - return; - } - if(strcmp(color, "sienna2") == 0) { - rgb->red = 238; - rgb->green = 121; - rgb->blue = 66; - return; - } - if(strcmp(color, "sienna3") == 0) { - rgb->red = 205; - rgb->green = 104; - rgb->blue = 57; - return; - } - if(strcmp(color, "sienna4") == 0) { - rgb->red = 139; - rgb->green = 71; - rgb->blue = 38; - return; - } - if(strcmp(color, "burlywood1") == 0) { - rgb->red = 255; - rgb->green = 211; - rgb->blue = 155; - return; - } - if(strcmp(color, "burlywood2") == 0) { - rgb->red = 238; - rgb->green = 197; - rgb->blue = 145; - return; - } - if(strcmp(color, "burlywood3") == 0) { - rgb->red = 205; - rgb->green = 170; - rgb->blue = 125; - return; - } - if(strcmp(color, "burlywood4") == 0) { - rgb->red = 139; - rgb->green = 115; - rgb->blue = 85; - return; - } - if(strcmp(color, "wheat1") == 0) { - rgb->red = 255; - rgb->green = 231; - rgb->blue = 186; - return; - } - if(strcmp(color, "wheat2") == 0) { - rgb->red = 238; - rgb->green = 216; - rgb->blue = 174; - return; - } - if(strcmp(color, "wheat3") == 0) { - rgb->red = 205; - rgb->green = 186; - rgb->blue = 150; - return; - } - if(strcmp(color, "wheat4") == 0) { - rgb->red = 139; - rgb->green = 126; - rgb->blue = 102; - return; - } - if(strcmp(color, "tan1") == 0) { - rgb->red = 255; - rgb->green = 165; - rgb->blue = 79; - return; - } - if(strcmp(color, "tan2") == 0) { - rgb->red = 238; - rgb->green = 154; - rgb->blue = 73; - return; - } - if(strcmp(color, "tan3") == 0) { - rgb->red = 205; - rgb->green = 133; - rgb->blue = 63; - return; - } - if(strcmp(color, "tan4") == 0) { - rgb->red = 139; - rgb->green = 90; - rgb->blue = 43; - return; - } - if(strcmp(color, "chocolate1") == 0) { - rgb->red = 255; - rgb->green = 127; - rgb->blue = 36; - return; - } - if(strcmp(color, "chocolate2") == 0) { - rgb->red = 238; - rgb->green = 118; - rgb->blue = 33; - return; - } - if(strcmp(color, "chocolate3") == 0) { - rgb->red = 205; - rgb->green = 102; - rgb->blue = 29; - return; - } - if(strcmp(color, "chocolate4") == 0) { - rgb->red = 139; - rgb->green = 69; - rgb->blue = 19; - return; - } - if(strcmp(color, "firebrick1") == 0) { - rgb->red = 255; - rgb->green = 48; - rgb->blue = 48; - return; - } - if(strcmp(color, "firebrick2") == 0) { - rgb->red = 238; - rgb->green = 44; - rgb->blue = 44; - return; - } - if(strcmp(color, "firebrick3") == 0) { - rgb->red = 205; - rgb->green = 38; - rgb->blue = 38; - return; - } - if(strcmp(color, "firebrick4") == 0) { - rgb->red = 139; - rgb->green = 26; - rgb->blue = 26; - return; - } - if(strcmp(color, "brown1") == 0) { - rgb->red = 255; - rgb->green = 64; - rgb->blue = 64; - return; - } - if(strcmp(color, "brown2") == 0) { - rgb->red = 238; - rgb->green = 59; - rgb->blue = 59; - return; - } - if(strcmp(color, "brown3") == 0) { - rgb->red = 205; - rgb->green = 51; - rgb->blue = 51; - return; - } - if(strcmp(color, "brown4") == 0) { - rgb->red = 139; - rgb->green = 35; - rgb->blue = 35; - return; - } - if(strcmp(color, "salmon1") == 0) { - rgb->red = 255; - rgb->green = 140; - rgb->blue = 105; - return; - } - if(strcmp(color, "salmon2") == 0) { - rgb->red = 238; - rgb->green = 130; - rgb->blue = 98; - return; - } - if(strcmp(color, "salmon3") == 0) { - rgb->red = 205; - rgb->green = 112; - rgb->blue = 84; - return; - } - if(strcmp(color, "salmon4") == 0) { - rgb->red = 139; - rgb->green = 76; - rgb->blue = 57; - return; - } - if(strcmp(color, "LightSalmon1") == 0) { - rgb->red = 255; - rgb->green = 160; - rgb->blue = 122; - return; - } - if(strcmp(color, "LightSalmon2") == 0) { - rgb->red = 238; - rgb->green = 149; - rgb->blue = 114; - return; - } - if(strcmp(color, "LightSalmon3") == 0) { - rgb->red = 205; - rgb->green = 129; - rgb->blue = 98; - return; - } - if(strcmp(color, "LightSalmon4") == 0) { - rgb->red = 139; - rgb->green = 87; - rgb->blue = 66; - return; - } - if(strcmp(color, "orange1") == 0) { - rgb->red = 255; - rgb->green = 165; - rgb->blue = 0; - return; - } - if(strcmp(color, "orange2") == 0) { - rgb->red = 238; - rgb->green = 154; - rgb->blue = 0; - return; - } - if(strcmp(color, "orange3") == 0) { - rgb->red = 205; - rgb->green = 133; - rgb->blue = 0; - return; - } - if(strcmp(color, "orange4") == 0) { - rgb->red = 139; - rgb->green = 90; - rgb->blue = 0; - return; - } - if(strcmp(color, "DarkOrange1") == 0) { - rgb->red = 255; - rgb->green = 127; - rgb->blue = 0; - return; - } - if(strcmp(color, "DarkOrange2") == 0) { - rgb->red = 238; - rgb->green = 118; - rgb->blue = 0; - return; - } - if(strcmp(color, "DarkOrange3") == 0) { - rgb->red = 205; - rgb->green = 102; - rgb->blue = 0; - return; - } - if(strcmp(color, "DarkOrange4") == 0) { - rgb->red = 139; - rgb->green = 69; - rgb->blue = 0; - return; - } - if(strcmp(color, "coral1") == 0) { - rgb->red = 255; - rgb->green = 114; - rgb->blue = 86; - return; - } - if(strcmp(color, "coral2") == 0) { - rgb->red = 238; - rgb->green = 106; - rgb->blue = 80; - return; - } - if(strcmp(color, "coral3") == 0) { - rgb->red = 205; - rgb->green = 91; - rgb->blue = 69; - return; - } - if(strcmp(color, "coral4") == 0) { - rgb->red = 139; - rgb->green = 62; - rgb->blue = 47; - return; - } - if(strcmp(color, "tomato1") == 0) { - rgb->red = 255; - rgb->green = 99; - rgb->blue = 71; - return; - } - if(strcmp(color, "tomato2") == 0) { - rgb->red = 238; - rgb->green = 92; - rgb->blue = 66; - return; - } - if(strcmp(color, "tomato3") == 0) { - rgb->red = 205; - rgb->green = 79; - rgb->blue = 57; - return; - } - if(strcmp(color, "tomato4") == 0) { - rgb->red = 139; - rgb->green = 54; - rgb->blue = 38; - return; - } - if(strcmp(color, "OrangeRed1") == 0) { - rgb->red = 255; - rgb->green = 69; - rgb->blue = 0; - return; - } - if(strcmp(color, "OrangeRed2") == 0) { - rgb->red = 238; - rgb->green = 64; - rgb->blue = 0; - return; - } - if(strcmp(color, "OrangeRed3") == 0) { - rgb->red = 205; - rgb->green = 55; - rgb->blue = 0; - return; - } - if(strcmp(color, "OrangeRed4") == 0) { - rgb->red = 139; - rgb->green = 37; - rgb->blue = 0; - return; - } - if(strcmp(color, "red1") == 0) { - rgb->red = 255; - rgb->green = 0; - rgb->blue = 0; - return; - } - if(strcmp(color, "red2") == 0) { - rgb->red = 238; - rgb->green = 0; - rgb->blue = 0; - return; - } - if(strcmp(color, "red3") == 0) { - rgb->red = 205; - rgb->green = 0; - rgb->blue = 0; - return; - } - if(strcmp(color, "red4") == 0) { - rgb->red = 139; - rgb->green = 0; - rgb->blue = 0; - return; - } - if(strcmp(color, "DeepPink1") == 0) { - rgb->red = 255; - rgb->green = 20; - rgb->blue = 147; - return; - } - if(strcmp(color, "DeepPink2") == 0) { - rgb->red = 238; - rgb->green = 18; - rgb->blue = 137; - return; - } - if(strcmp(color, "DeepPink3") == 0) { - rgb->red = 205; - rgb->green = 16; - rgb->blue = 118; - return; - } - if(strcmp(color, "DeepPink4") == 0) { - rgb->red = 139; - rgb->green = 10; - rgb->blue = 80; - return; - } - if(strcmp(color, "HotPink1") == 0) { - rgb->red = 255; - rgb->green = 110; - rgb->blue = 180; - return; - } - if(strcmp(color, "HotPink2") == 0) { - rgb->red = 238; - rgb->green = 106; - rgb->blue = 167; - return; - } - if(strcmp(color, "HotPink3") == 0) { - rgb->red = 205; - rgb->green = 96; - rgb->blue = 144; - return; - } - if(strcmp(color, "HotPink4") == 0) { - rgb->red = 139; - rgb->green = 58; - rgb->blue = 98; - return; - } - if(strcmp(color, "pink1") == 0) { - rgb->red = 255; - rgb->green = 181; - rgb->blue = 197; - return; - } - if(strcmp(color, "pink2") == 0) { - rgb->red = 238; - rgb->green = 169; - rgb->blue = 184; - return; - } - if(strcmp(color, "pink3") == 0) { - rgb->red = 205; - rgb->green = 145; - rgb->blue = 158; - return; - } - if(strcmp(color, "pink4") == 0) { - rgb->red = 139; - rgb->green = 99; - rgb->blue = 108; - return; - } - if(strcmp(color, "LightPink1") == 0) { - rgb->red = 255; - rgb->green = 174; - rgb->blue = 185; - return; - } - if(strcmp(color, "LightPink2") == 0) { - rgb->red = 238; - rgb->green = 162; - rgb->blue = 173; - return; - } - if(strcmp(color, "LightPink3") == 0) { - rgb->red = 205; - rgb->green = 140; - rgb->blue = 149; - return; - } - if(strcmp(color, "LightPink4") == 0) { - rgb->red = 139; - rgb->green = 95; - rgb->blue = 101; - return; - } - if(strcmp(color, "PaleVioletRed1") == 0) { - rgb->red = 255; - rgb->green = 130; - rgb->blue = 171; - return; - } - if(strcmp(color, "PaleVioletRed2") == 0) { - rgb->red = 238; - rgb->green = 121; - rgb->blue = 159; - return; - } - if(strcmp(color, "PaleVioletRed3") == 0) { - rgb->red = 205; - rgb->green = 104; - rgb->blue = 137; - return; - } - if(strcmp(color, "PaleVioletRed4") == 0) { - rgb->red = 139; - rgb->green = 71; - rgb->blue = 93; - return; - } - if(strcmp(color, "maroon1") == 0) { - rgb->red = 255; - rgb->green = 52; - rgb->blue = 179; - return; - } - if(strcmp(color, "maroon2") == 0) { - rgb->red = 238; - rgb->green = 48; - rgb->blue = 167; - return; - } - if(strcmp(color, "maroon3") == 0) { - rgb->red = 205; - rgb->green = 41; - rgb->blue = 144; - return; - } - if(strcmp(color, "maroon4") == 0) { - rgb->red = 139; - rgb->green = 28; - rgb->blue = 98; - return; - } - if(strcmp(color, "VioletRed1") == 0) { - rgb->red = 255; - rgb->green = 62; - rgb->blue = 150; - return; - } - if(strcmp(color, "VioletRed2") == 0) { - rgb->red = 238; - rgb->green = 58; - rgb->blue = 140; - return; - } - if(strcmp(color, "VioletRed3") == 0) { - rgb->red = 205; - rgb->green = 50; - rgb->blue = 120; - return; - } - if(strcmp(color, "VioletRed4") == 0) { - rgb->red = 139; - rgb->green = 34; - rgb->blue = 82; - return; - } - if(strcmp(color, "magenta1") == 0) { - rgb->red = 255; - rgb->green = 0; - rgb->blue = 255; - return; - } - if(strcmp(color, "magenta2") == 0) { - rgb->red = 238; - rgb->green = 0; - rgb->blue = 238; - return; - } - if(strcmp(color, "magenta3") == 0) { - rgb->red = 205; - rgb->green = 0; - rgb->blue = 205; - return; - } - if(strcmp(color, "magenta4") == 0) { - rgb->red = 139; - rgb->green = 0; - rgb->blue = 139; - return; - } - if(strcmp(color, "orchid1") == 0) { - rgb->red = 255; - rgb->green = 131; - rgb->blue = 250; - return; - } - if(strcmp(color, "orchid2") == 0) { - rgb->red = 238; - rgb->green = 122; - rgb->blue = 233; - return; - } - if(strcmp(color, "orchid3") == 0) { - rgb->red = 205; - rgb->green = 105; - rgb->blue = 201; - return; - } - if(strcmp(color, "orchid4") == 0) { - rgb->red = 139; - rgb->green = 71; - rgb->blue = 137; - return; - } - if(strcmp(color, "plum1") == 0) { - rgb->red = 255; - rgb->green = 187; - rgb->blue = 255; - return; - } - if(strcmp(color, "plum2") == 0) { - rgb->red = 238; - rgb->green = 174; - rgb->blue = 238; - return; - } - if(strcmp(color, "plum3") == 0) { - rgb->red = 205; - rgb->green = 150; - rgb->blue = 205; - return; - } - if(strcmp(color, "plum4") == 0) { - rgb->red = 139; - rgb->green = 102; - rgb->blue = 139; - return; - } - if(strcmp(color, "MediumOrchid1") == 0) { - rgb->red = 224; - rgb->green = 102; - rgb->blue = 255; - return; - } - if(strcmp(color, "MediumOrchid2") == 0) { - rgb->red = 209; - rgb->green = 95; - rgb->blue = 238; - return; - } - if(strcmp(color, "MediumOrchid3") == 0) { - rgb->red = 180; - rgb->green = 82; - rgb->blue = 205; - return; - } - if(strcmp(color, "MediumOrchid4") == 0) { - rgb->red = 122; - rgb->green = 55; - rgb->blue = 139; - return; - } - if(strcmp(color, "DarkOrchid1") == 0) { - rgb->red = 191; - rgb->green = 62; - rgb->blue = 255; - return; - } - if(strcmp(color, "DarkOrchid2") == 0) { - rgb->red = 178; - rgb->green = 58; - rgb->blue = 238; - return; - } - if(strcmp(color, "DarkOrchid3") == 0) { - rgb->red = 154; - rgb->green = 50; - rgb->blue = 205; - return; - } - if(strcmp(color, "DarkOrchid4") == 0) { - rgb->red = 104; - rgb->green = 34; - rgb->blue = 139; - return; - } - if(strcmp(color, "purple1") == 0) { - rgb->red = 155; - rgb->green = 48; - rgb->blue = 255; - return; - } - if(strcmp(color, "purple2") == 0) { - rgb->red = 145; - rgb->green = 44; - rgb->blue = 238; - return; - } - if(strcmp(color, "purple3") == 0) { - rgb->red = 125; - rgb->green = 38; - rgb->blue = 205; - return; - } - if(strcmp(color, "purple4") == 0) { - rgb->red = 85; - rgb->green = 26; - rgb->blue = 139; - return; - } - if(strcmp(color, "MediumPurple1") == 0) { - rgb->red = 171; - rgb->green = 130; - rgb->blue = 255; - return; - } - if(strcmp(color, "MediumPurple2") == 0) { - rgb->red = 159; - rgb->green = 121; - rgb->blue = 238; - return; - } - if(strcmp(color, "MediumPurple3") == 0) { - rgb->red = 137; - rgb->green = 104; - rgb->blue = 205; - return; - } - if(strcmp(color, "MediumPurple4") == 0) { - rgb->red = 93; - rgb->green = 71; - rgb->blue = 139; - return; - } - if(strcmp(color, "thistle1") == 0) { - rgb->red = 255; - rgb->green = 225; - rgb->blue = 255; - return; - } - if(strcmp(color, "thistle2") == 0) { - rgb->red = 238; - rgb->green = 210; - rgb->blue = 238; - return; - } - if(strcmp(color, "thistle3") == 0) { - rgb->red = 205; - rgb->green = 181; - rgb->blue = 205; - return; - } - if(strcmp(color, "thistle4") == 0) { - rgb->red = 139; - rgb->green = 123; - rgb->blue = 139; - return; - } - if(strcmp(color, "gray0") == 0) { - rgb->red = 0; - rgb->green = 0; - rgb->blue = 0; - return; - } - if(strcmp(color, "grey0") == 0) { - rgb->red = 0; - rgb->green = 0; - rgb->blue = 0; - return; - } - if(strcmp(color, "gray1") == 0) { - rgb->red = 3; - rgb->green = 3; - rgb->blue = 3; - return; - } - if(strcmp(color, "grey1") == 0) { - rgb->red = 3; - rgb->green = 3; - rgb->blue = 3; - return; - } - if(strcmp(color, "gray2") == 0) { - rgb->red = 5; - rgb->green = 5; - rgb->blue = 5; - return; - } - if(strcmp(color, "grey2") == 0) { - rgb->red = 5; - rgb->green = 5; - rgb->blue = 5; - return; - } - if(strcmp(color, "gray3") == 0) { - rgb->red = 8; - rgb->green = 8; - rgb->blue = 8; - return; - } - if(strcmp(color, "grey3") == 0) { - rgb->red = 8; - rgb->green = 8; - rgb->blue = 8; - return; - } - if(strcmp(color, "gray4") == 0) { - rgb->red = 10; - rgb->green = 10; - rgb->blue = 10; - return; - } - if(strcmp(color, "grey4") == 0) { - rgb->red = 10; - rgb->green = 10; - rgb->blue = 10; - return; - } - if(strcmp(color, "gray5") == 0) { - rgb->red = 13; - rgb->green = 13; - rgb->blue = 13; - return; - } - if(strcmp(color, "grey5") == 0) { - rgb->red = 13; - rgb->green = 13; - rgb->blue = 13; - return; - } - if(strcmp(color, "gray6") == 0) { - rgb->red = 15; - rgb->green = 15; - rgb->blue = 15; - return; - } - if(strcmp(color, "grey6") == 0) { - rgb->red = 15; - rgb->green = 15; - rgb->blue = 15; - return; - } - if(strcmp(color, "gray7") == 0) { - rgb->red = 18; - rgb->green = 18; - rgb->blue = 18; - return; - } - if(strcmp(color, "grey7") == 0) { - rgb->red = 18; - rgb->green = 18; - rgb->blue = 18; - return; - } - if(strcmp(color, "gray8") == 0) { - rgb->red = 20; - rgb->green = 20; - rgb->blue = 20; - return; - } - if(strcmp(color, "grey8") == 0) { - rgb->red = 20; - rgb->green = 20; - rgb->blue = 20; - return; - } - if(strcmp(color, "gray9") == 0) { - rgb->red = 23; - rgb->green = 23; - rgb->blue = 23; - return; - } - if(strcmp(color, "grey9") == 0) { - rgb->red = 23; - rgb->green = 23; - rgb->blue = 23; - return; - } - if(strcmp(color, "gray10") == 0) { - rgb->red = 26; - rgb->green = 26; - rgb->blue = 26; - return; - } - if(strcmp(color, "grey10") == 0) { - rgb->red = 26; - rgb->green = 26; - rgb->blue = 26; - return; - } - if(strcmp(color, "gray11") == 0) { - rgb->red = 28; - rgb->green = 28; - rgb->blue = 28; - return; - } - if(strcmp(color, "grey11") == 0) { - rgb->red = 28; - rgb->green = 28; - rgb->blue = 28; - return; - } - if(strcmp(color, "gray12") == 0) { - rgb->red = 31; - rgb->green = 31; - rgb->blue = 31; - return; - } - if(strcmp(color, "grey12") == 0) { - rgb->red = 31; - rgb->green = 31; - rgb->blue = 31; - return; - } - if(strcmp(color, "gray13") == 0) { - rgb->red = 33; - rgb->green = 33; - rgb->blue = 33; - return; - } - if(strcmp(color, "grey13") == 0) { - rgb->red = 33; - rgb->green = 33; - rgb->blue = 33; - return; - } - if(strcmp(color, "gray14") == 0) { - rgb->red = 36; - rgb->green = 36; - rgb->blue = 36; - return; - } - if(strcmp(color, "grey14") == 0) { - rgb->red = 36; - rgb->green = 36; - rgb->blue = 36; - return; - } - if(strcmp(color, "gray15") == 0) { - rgb->red = 38; - rgb->green = 38; - rgb->blue = 38; - return; - } - if(strcmp(color, "grey15") == 0) { - rgb->red = 38; - rgb->green = 38; - rgb->blue = 38; - return; - } - if(strcmp(color, "gray16") == 0) { - rgb->red = 41; - rgb->green = 41; - rgb->blue = 41; - return; - } - if(strcmp(color, "grey16") == 0) { - rgb->red = 41; - rgb->green = 41; - rgb->blue = 41; - return; - } - if(strcmp(color, "gray17") == 0) { - rgb->red = 43; - rgb->green = 43; - rgb->blue = 43; - return; - } - if(strcmp(color, "grey17") == 0) { - rgb->red = 43; - rgb->green = 43; - rgb->blue = 43; - return; - } - if(strcmp(color, "gray18") == 0) { - rgb->red = 46; - rgb->green = 46; - rgb->blue = 46; - return; - } - if(strcmp(color, "grey18") == 0) { - rgb->red = 46; - rgb->green = 46; - rgb->blue = 46; - return; - } - if(strcmp(color, "gray19") == 0) { - rgb->red = 48; - rgb->green = 48; - rgb->blue = 48; - return; - } - if(strcmp(color, "grey19") == 0) { - rgb->red = 48; - rgb->green = 48; - rgb->blue = 48; - return; - } - if(strcmp(color, "gray20") == 0) { - rgb->red = 51; - rgb->green = 51; - rgb->blue = 51; - return; - } - if(strcmp(color, "grey20") == 0) { - rgb->red = 51; - rgb->green = 51; - rgb->blue = 51; - return; - } - if(strcmp(color, "gray21") == 0) { - rgb->red = 54; - rgb->green = 54; - rgb->blue = 54; - return; - } - if(strcmp(color, "grey21") == 0) { - rgb->red = 54; - rgb->green = 54; - rgb->blue = 54; - return; - } - if(strcmp(color, "gray22") == 0) { - rgb->red = 56; - rgb->green = 56; - rgb->blue = 56; - return; - } - if(strcmp(color, "grey22") == 0) { - rgb->red = 56; - rgb->green = 56; - rgb->blue = 56; - return; - } - if(strcmp(color, "gray23") == 0) { - rgb->red = 59; - rgb->green = 59; - rgb->blue = 59; - return; - } - if(strcmp(color, "grey23") == 0) { - rgb->red = 59; - rgb->green = 59; - rgb->blue = 59; - return; - } - if(strcmp(color, "gray24") == 0) { - rgb->red = 61; - rgb->green = 61; - rgb->blue = 61; - return; - } - if(strcmp(color, "grey24") == 0) { - rgb->red = 61; - rgb->green = 61; - rgb->blue = 61; - return; - } - if(strcmp(color, "gray25") == 0) { - rgb->red = 64; - rgb->green = 64; - rgb->blue = 64; - return; - } - if(strcmp(color, "grey25") == 0) { - rgb->red = 64; - rgb->green = 64; - rgb->blue = 64; - return; - } - if(strcmp(color, "gray26") == 0) { - rgb->red = 66; - rgb->green = 66; - rgb->blue = 66; - return; - } - if(strcmp(color, "grey26") == 0) { - rgb->red = 66; - rgb->green = 66; - rgb->blue = 66; - return; - } - if(strcmp(color, "gray27") == 0) { - rgb->red = 69; - rgb->green = 69; - rgb->blue = 69; - return; - } - if(strcmp(color, "grey27") == 0) { - rgb->red = 69; - rgb->green = 69; - rgb->blue = 69; - return; - } - if(strcmp(color, "gray28") == 0) { - rgb->red = 71; - rgb->green = 71; - rgb->blue = 71; - return; - } - if(strcmp(color, "grey28") == 0) { - rgb->red = 71; - rgb->green = 71; - rgb->blue = 71; - return; - } - if(strcmp(color, "gray29") == 0) { - rgb->red = 74; - rgb->green = 74; - rgb->blue = 74; - return; - } - if(strcmp(color, "grey29") == 0) { - rgb->red = 74; - rgb->green = 74; - rgb->blue = 74; - return; - } - if(strcmp(color, "gray30") == 0) { - rgb->red = 77; - rgb->green = 77; - rgb->blue = 77; - return; - } - if(strcmp(color, "grey30") == 0) { - rgb->red = 77; - rgb->green = 77; - rgb->blue = 77; - return; - } - if(strcmp(color, "gray31") == 0) { - rgb->red = 79; - rgb->green = 79; - rgb->blue = 79; - return; - } - if(strcmp(color, "grey31") == 0) { - rgb->red = 79; - rgb->green = 79; - rgb->blue = 79; - return; - } - if(strcmp(color, "gray32") == 0) { - rgb->red = 82; - rgb->green = 82; - rgb->blue = 82; - return; - } - if(strcmp(color, "grey32") == 0) { - rgb->red = 82; - rgb->green = 82; - rgb->blue = 82; - return; - } - if(strcmp(color, "gray33") == 0) { - rgb->red = 84; - rgb->green = 84; - rgb->blue = 84; - return; - } - if(strcmp(color, "grey33") == 0) { - rgb->red = 84; - rgb->green = 84; - rgb->blue = 84; - return; - } - if(strcmp(color, "gray34") == 0) { - rgb->red = 87; - rgb->green = 87; - rgb->blue = 87; - return; - } - if(strcmp(color, "grey34") == 0) { - rgb->red = 87; - rgb->green = 87; - rgb->blue = 87; - return; - } - if(strcmp(color, "gray35") == 0) { - rgb->red = 89; - rgb->green = 89; - rgb->blue = 89; - return; - } - if(strcmp(color, "grey35") == 0) { - rgb->red = 89; - rgb->green = 89; - rgb->blue = 89; - return; - } - if(strcmp(color, "gray36") == 0) { - rgb->red = 92; - rgb->green = 92; - rgb->blue = 92; - return; - } - if(strcmp(color, "grey36") == 0) { - rgb->red = 92; - rgb->green = 92; - rgb->blue = 92; - return; - } - if(strcmp(color, "gray37") == 0) { - rgb->red = 94; - rgb->green = 94; - rgb->blue = 94; - return; - } - if(strcmp(color, "grey37") == 0) { - rgb->red = 94; - rgb->green = 94; - rgb->blue = 94; - return; - } - if(strcmp(color, "gray38") == 0) { - rgb->red = 97; - rgb->green = 97; - rgb->blue = 97; - return; - } - if(strcmp(color, "grey38") == 0) { - rgb->red = 97; - rgb->green = 97; - rgb->blue = 97; - return; - } - if(strcmp(color, "gray39") == 0) { - rgb->red = 99; - rgb->green = 99; - rgb->blue = 99; - return; - } - if(strcmp(color, "grey39") == 0) { - rgb->red = 99; - rgb->green = 99; - rgb->blue = 99; - return; - } - if(strcmp(color, "gray40") == 0) { - rgb->red = 102; - rgb->green = 102; - rgb->blue = 102; - return; - } - if(strcmp(color, "grey40") == 0) { - rgb->red = 102; - rgb->green = 102; - rgb->blue = 102; - return; - } - if(strcmp(color, "gray41") == 0) { - rgb->red = 105; - rgb->green = 105; - rgb->blue = 105; - return; - } - if(strcmp(color, "grey41") == 0) { - rgb->red = 105; - rgb->green = 105; - rgb->blue = 105; - return; - } - if(strcmp(color, "gray42") == 0) { - rgb->red = 107; - rgb->green = 107; - rgb->blue = 107; - return; - } - if(strcmp(color, "grey42") == 0) { - rgb->red = 107; - rgb->green = 107; - rgb->blue = 107; - return; - } - if(strcmp(color, "gray43") == 0) { - rgb->red = 110; - rgb->green = 110; - rgb->blue = 110; - return; - } - if(strcmp(color, "grey43") == 0) { - rgb->red = 110; - rgb->green = 110; - rgb->blue = 110; - return; - } - if(strcmp(color, "gray44") == 0) { - rgb->red = 112; - rgb->green = 112; - rgb->blue = 112; - return; - } - if(strcmp(color, "grey44") == 0) { - rgb->red = 112; - rgb->green = 112; - rgb->blue = 112; - return; - } - if(strcmp(color, "gray45") == 0) { - rgb->red = 115; - rgb->green = 115; - rgb->blue = 115; - return; - } - if(strcmp(color, "grey45") == 0) { - rgb->red = 115; - rgb->green = 115; - rgb->blue = 115; - return; - } - if(strcmp(color, "gray46") == 0) { - rgb->red = 117; - rgb->green = 117; - rgb->blue = 117; - return; - } - if(strcmp(color, "grey46") == 0) { - rgb->red = 117; - rgb->green = 117; - rgb->blue = 117; - return; - } - if(strcmp(color, "gray47") == 0) { - rgb->red = 120; - rgb->green = 120; - rgb->blue = 120; - return; - } - if(strcmp(color, "grey47") == 0) { - rgb->red = 120; - rgb->green = 120; - rgb->blue = 120; - return; - } - if(strcmp(color, "gray48") == 0) { - rgb->red = 122; - rgb->green = 122; - rgb->blue = 122; - return; - } - if(strcmp(color, "grey48") == 0) { - rgb->red = 122; - rgb->green = 122; - rgb->blue = 122; - return; - } - if(strcmp(color, "gray49") == 0) { - rgb->red = 125; - rgb->green = 125; - rgb->blue = 125; - return; - } - if(strcmp(color, "grey49") == 0) { - rgb->red = 125; - rgb->green = 125; - rgb->blue = 125; - return; - } - if(strcmp(color, "gray50") == 0) { - rgb->red = 127; - rgb->green = 127; - rgb->blue = 127; - return; - } - if(strcmp(color, "grey50") == 0) { - rgb->red = 127; - rgb->green = 127; - rgb->blue = 127; - return; - } - if(strcmp(color, "gray51") == 0) { - rgb->red = 130; - rgb->green = 130; - rgb->blue = 130; - return; - } - if(strcmp(color, "grey51") == 0) { - rgb->red = 130; - rgb->green = 130; - rgb->blue = 130; - return; - } - if(strcmp(color, "gray52") == 0) { - rgb->red = 133; - rgb->green = 133; - rgb->blue = 133; - return; - } - if(strcmp(color, "grey52") == 0) { - rgb->red = 133; - rgb->green = 133; - rgb->blue = 133; - return; - } - if(strcmp(color, "gray53") == 0) { - rgb->red = 135; - rgb->green = 135; - rgb->blue = 135; - return; - } - if(strcmp(color, "grey53") == 0) { - rgb->red = 135; - rgb->green = 135; - rgb->blue = 135; - return; - } - if(strcmp(color, "gray54") == 0) { - rgb->red = 138; - rgb->green = 138; - rgb->blue = 138; - return; - } - if(strcmp(color, "grey54") == 0) { - rgb->red = 138; - rgb->green = 138; - rgb->blue = 138; - return; - } - if(strcmp(color, "gray55") == 0) { - rgb->red = 140; - rgb->green = 140; - rgb->blue = 140; - return; - } - if(strcmp(color, "grey55") == 0) { - rgb->red = 140; - rgb->green = 140; - rgb->blue = 140; - return; - } - if(strcmp(color, "gray56") == 0) { - rgb->red = 143; - rgb->green = 143; - rgb->blue = 143; - return; - } - if(strcmp(color, "grey56") == 0) { - rgb->red = 143; - rgb->green = 143; - rgb->blue = 143; - return; - } - if(strcmp(color, "gray57") == 0) { - rgb->red = 145; - rgb->green = 145; - rgb->blue = 145; - return; - } - if(strcmp(color, "grey57") == 0) { - rgb->red = 145; - rgb->green = 145; - rgb->blue = 145; - return; - } - if(strcmp(color, "gray58") == 0) { - rgb->red = 148; - rgb->green = 148; - rgb->blue = 148; - return; - } - if(strcmp(color, "grey58") == 0) { - rgb->red = 148; - rgb->green = 148; - rgb->blue = 148; - return; - } - if(strcmp(color, "gray59") == 0) { - rgb->red = 150; - rgb->green = 150; - rgb->blue = 150; - return; - } - if(strcmp(color, "grey59") == 0) { - rgb->red = 150; - rgb->green = 150; - rgb->blue = 150; - return; - } - if(strcmp(color, "gray60") == 0) { - rgb->red = 153; - rgb->green = 153; - rgb->blue = 153; - return; - } - if(strcmp(color, "grey60") == 0) { - rgb->red = 153; - rgb->green = 153; - rgb->blue = 153; - return; - } - if(strcmp(color, "gray61") == 0) { - rgb->red = 156; - rgb->green = 156; - rgb->blue = 156; - return; - } - if(strcmp(color, "grey61") == 0) { - rgb->red = 156; - rgb->green = 156; - rgb->blue = 156; - return; - } - if(strcmp(color, "gray62") == 0) { - rgb->red = 158; - rgb->green = 158; - rgb->blue = 158; - return; - } - if(strcmp(color, "grey62") == 0) { - rgb->red = 158; - rgb->green = 158; - rgb->blue = 158; - return; - } - if(strcmp(color, "gray63") == 0) { - rgb->red = 161; - rgb->green = 161; - rgb->blue = 161; - return; - } - if(strcmp(color, "grey63") == 0) { - rgb->red = 161; - rgb->green = 161; - rgb->blue = 161; - return; - } - if(strcmp(color, "gray64") == 0) { - rgb->red = 163; - rgb->green = 163; - rgb->blue = 163; - return; - } - if(strcmp(color, "grey64") == 0) { - rgb->red = 163; - rgb->green = 163; - rgb->blue = 163; - return; - } - if(strcmp(color, "gray65") == 0) { - rgb->red = 166; - rgb->green = 166; - rgb->blue = 166; - return; - } - if(strcmp(color, "grey65") == 0) { - rgb->red = 166; - rgb->green = 166; - rgb->blue = 166; - return; - } - if(strcmp(color, "gray66") == 0) { - rgb->red = 168; - rgb->green = 168; - rgb->blue = 168; - return; - } - if(strcmp(color, "grey66") == 0) { - rgb->red = 168; - rgb->green = 168; - rgb->blue = 168; - return; - } - if(strcmp(color, "gray67") == 0) { - rgb->red = 171; - rgb->green = 171; - rgb->blue = 171; - return; - } - if(strcmp(color, "grey67") == 0) { - rgb->red = 171; - rgb->green = 171; - rgb->blue = 171; - return; - } - if(strcmp(color, "gray68") == 0) { - rgb->red = 173; - rgb->green = 173; - rgb->blue = 173; - return; - } - if(strcmp(color, "grey68") == 0) { - rgb->red = 173; - rgb->green = 173; - rgb->blue = 173; - return; - } - if(strcmp(color, "gray69") == 0) { - rgb->red = 176; - rgb->green = 176; - rgb->blue = 176; - return; - } - if(strcmp(color, "grey69") == 0) { - rgb->red = 176; - rgb->green = 176; - rgb->blue = 176; - return; - } - if(strcmp(color, "gray70") == 0) { - rgb->red = 179; - rgb->green = 179; - rgb->blue = 179; - return; - } - if(strcmp(color, "grey70") == 0) { - rgb->red = 179; - rgb->green = 179; - rgb->blue = 179; - return; - } - if(strcmp(color, "gray71") == 0) { - rgb->red = 181; - rgb->green = 181; - rgb->blue = 181; - return; - } - if(strcmp(color, "grey71") == 0) { - rgb->red = 181; - rgb->green = 181; - rgb->blue = 181; - return; - } - if(strcmp(color, "gray72") == 0) { - rgb->red = 184; - rgb->green = 184; - rgb->blue = 184; - return; - } - if(strcmp(color, "grey72") == 0) { - rgb->red = 184; - rgb->green = 184; - rgb->blue = 184; - return; - } - if(strcmp(color, "gray73") == 0) { - rgb->red = 186; - rgb->green = 186; - rgb->blue = 186; - return; - } - if(strcmp(color, "grey73") == 0) { - rgb->red = 186; - rgb->green = 186; - rgb->blue = 186; - return; - } - if(strcmp(color, "gray74") == 0) { - rgb->red = 189; - rgb->green = 189; - rgb->blue = 189; - return; - } - if(strcmp(color, "grey74") == 0) { - rgb->red = 189; - rgb->green = 189; - rgb->blue = 189; - return; - } - if(strcmp(color, "gray75") == 0) { - rgb->red = 191; - rgb->green = 191; - rgb->blue = 191; - return; - } - if(strcmp(color, "grey75") == 0) { - rgb->red = 191; - rgb->green = 191; - rgb->blue = 191; - return; - } - if(strcmp(color, "gray76") == 0) { - rgb->red = 194; - rgb->green = 194; - rgb->blue = 194; - return; - } - if(strcmp(color, "grey76") == 0) { - rgb->red = 194; - rgb->green = 194; - rgb->blue = 194; - return; - } - if(strcmp(color, "gray77") == 0) { - rgb->red = 196; - rgb->green = 196; - rgb->blue = 196; - return; - } - if(strcmp(color, "grey77") == 0) { - rgb->red = 196; - rgb->green = 196; - rgb->blue = 196; - return; - } - if(strcmp(color, "gray78") == 0) { - rgb->red = 199; - rgb->green = 199; - rgb->blue = 199; - return; - } - if(strcmp(color, "grey78") == 0) { - rgb->red = 199; - rgb->green = 199; - rgb->blue = 199; - return; - } - if(strcmp(color, "gray79") == 0) { - rgb->red = 201; - rgb->green = 201; - rgb->blue = 201; - return; - } - if(strcmp(color, "grey79") == 0) { - rgb->red = 201; - rgb->green = 201; - rgb->blue = 201; - return; - } - if(strcmp(color, "gray80") == 0) { - rgb->red = 204; - rgb->green = 204; - rgb->blue = 204; - return; - } - if(strcmp(color, "grey80") == 0) { - rgb->red = 204; - rgb->green = 204; - rgb->blue = 204; - return; - } - if(strcmp(color, "gray81") == 0) { - rgb->red = 207; - rgb->green = 207; - rgb->blue = 207; - return; - } - if(strcmp(color, "grey81") == 0) { - rgb->red = 207; - rgb->green = 207; - rgb->blue = 207; - return; - } - if(strcmp(color, "gray82") == 0) { - rgb->red = 209; - rgb->green = 209; - rgb->blue = 209; - return; - } - if(strcmp(color, "grey82") == 0) { - rgb->red = 209; - rgb->green = 209; - rgb->blue = 209; - return; - } - if(strcmp(color, "gray83") == 0) { - rgb->red = 212; - rgb->green = 212; - rgb->blue = 212; - return; - } - if(strcmp(color, "grey83") == 0) { - rgb->red = 212; - rgb->green = 212; - rgb->blue = 212; - return; - } - if(strcmp(color, "gray84") == 0) { - rgb->red = 214; - rgb->green = 214; - rgb->blue = 214; - return; - } - if(strcmp(color, "grey84") == 0) { - rgb->red = 214; - rgb->green = 214; - rgb->blue = 214; - return; - } - if(strcmp(color, "gray85") == 0) { - rgb->red = 217; - rgb->green = 217; - rgb->blue = 217; - return; - } - if(strcmp(color, "grey85") == 0) { - rgb->red = 217; - rgb->green = 217; - rgb->blue = 217; - return; - } - if(strcmp(color, "gray86") == 0) { - rgb->red = 219; - rgb->green = 219; - rgb->blue = 219; - return; - } - if(strcmp(color, "grey86") == 0) { - rgb->red = 219; - rgb->green = 219; - rgb->blue = 219; - return; - } - if(strcmp(color, "gray87") == 0) { - rgb->red = 222; - rgb->green = 222; - rgb->blue = 222; - return; - } - if(strcmp(color, "grey87") == 0) { - rgb->red = 222; - rgb->green = 222; - rgb->blue = 222; - return; - } - if(strcmp(color, "gray88") == 0) { - rgb->red = 224; - rgb->green = 224; - rgb->blue = 224; - return; - } - if(strcmp(color, "grey88") == 0) { - rgb->red = 224; - rgb->green = 224; - rgb->blue = 224; - return; - } - if(strcmp(color, "gray89") == 0) { - rgb->red = 227; - rgb->green = 227; - rgb->blue = 227; - return; - } - if(strcmp(color, "grey89") == 0) { - rgb->red = 227; - rgb->green = 227; - rgb->blue = 227; - return; - } - if(strcmp(color, "gray90") == 0) { - rgb->red = 229; - rgb->green = 229; - rgb->blue = 229; - return; - } - if(strcmp(color, "grey90") == 0) { - rgb->red = 229; - rgb->green = 229; - rgb->blue = 229; - return; - } - if(strcmp(color, "gray91") == 0) { - rgb->red = 232; - rgb->green = 232; - rgb->blue = 232; - return; - } - if(strcmp(color, "grey91") == 0) { - rgb->red = 232; - rgb->green = 232; - rgb->blue = 232; - return; - } - if(strcmp(color, "gray92") == 0) { - rgb->red = 235; - rgb->green = 235; - rgb->blue = 235; - return; - } - if(strcmp(color, "grey92") == 0) { - rgb->red = 235; - rgb->green = 235; - rgb->blue = 235; - return; - } - if(strcmp(color, "gray93") == 0) { - rgb->red = 237; - rgb->green = 237; - rgb->blue = 237; - return; - } - if(strcmp(color, "grey93") == 0) { - rgb->red = 237; - rgb->green = 237; - rgb->blue = 237; - return; - } - if(strcmp(color, "gray94") == 0) { - rgb->red = 240; - rgb->green = 240; - rgb->blue = 240; - return; - } - if(strcmp(color, "grey94") == 0) { - rgb->red = 240; - rgb->green = 240; - rgb->blue = 240; - return; - } - if(strcmp(color, "gray95") == 0) { - rgb->red = 242; - rgb->green = 242; - rgb->blue = 242; - return; - } - if(strcmp(color, "grey95") == 0) { - rgb->red = 242; - rgb->green = 242; - rgb->blue = 242; - return; - } - if(strcmp(color, "gray96") == 0) { - rgb->red = 245; - rgb->green = 245; - rgb->blue = 245; - return; - } - if(strcmp(color, "grey96") == 0) { - rgb->red = 245; - rgb->green = 245; - rgb->blue = 245; - return; - } - if(strcmp(color, "gray97") == 0) { - rgb->red = 247; - rgb->green = 247; - rgb->blue = 247; - return; - } - if(strcmp(color, "grey97") == 0) { - rgb->red = 247; - rgb->green = 247; - rgb->blue = 247; - return; - } - if(strcmp(color, "gray98") == 0) { - rgb->red = 250; - rgb->green = 250; - rgb->blue = 250; - return; - } - if(strcmp(color, "grey98") == 0) { - rgb->red = 250; - rgb->green = 250; - rgb->blue = 250; - return; - } - if(strcmp(color, "gray99") == 0) { - rgb->red = 252; - rgb->green = 252; - rgb->blue = 252; - return; - } - if(strcmp(color, "grey99") == 0) { - rgb->red = 252; - rgb->green = 252; - rgb->blue = 252; - return; - } - if(strcmp(color, "gray100") == 0) { - rgb->red = 255; - rgb->green = 255; - rgb->blue = 255; - return; - } - if(strcmp(color, "grey100") == 0) { - rgb->red = 255; - rgb->green = 255; - rgb->blue = 255; - return; - } - if(strcmp(color, "dark grey") == 0) { - rgb->red = 169; - rgb->green = 169; - rgb->blue = 169; - return; - } - if(strcmp(color, "DarkGrey") == 0) { - rgb->red = 169; - rgb->green = 169; - rgb->blue = 169; - return; - } - if(strcmp(color, "dark gray") == 0) { - rgb->red = 169; - rgb->green = 169; - rgb->blue = 169; - return; - } - if(strcmp(color, "DarkGray") == 0) { - rgb->red = 169; - rgb->green = 169; - rgb->blue = 169; - return; - } - if(strcmp(color, "dark blue") == 0) { - rgb->red = 0; - rgb->green = 0; - rgb->blue = 139; - return; - } - if(strcmp(color, "DarkBlue") == 0) { - rgb->red = 0; - rgb->green = 0; - rgb->blue = 139; - return; - } - if(strcmp(color, "dark cyan") == 0) { - rgb->red = 0; - rgb->green = 139; - rgb->blue = 139; - return; - } - if(strcmp(color, "DarkCyan") == 0) { - rgb->red = 0; - rgb->green = 139; - rgb->blue = 139; - return; - } - if(strcmp(color, "dark magenta") == 0) { - rgb->red = 139; - rgb->green = 0; - rgb->blue = 139; - return; - } - if(strcmp(color, "DarkMagenta") == 0) { - rgb->red = 139; - rgb->green = 0; - rgb->blue = 139; - return; - } - if(strcmp(color, "dark red") == 0) { - rgb->red = 139; - rgb->green = 0; - rgb->blue = 0; - return; - } - if(strcmp(color, "DarkRed") == 0) { - rgb->red = 139; - rgb->green = 0; - rgb->blue = 0; - return; - } - if(strcmp(color, "light green") == 0) { - rgb->red = 144; - rgb->green = 238; - rgb->blue = 144; - return; - } - if(strcmp(color, "LightGreen") == 0) { - rgb->red = 144; - rgb->green = 238; - rgb->blue = 144; - return; - } - if(strcmp(color, "crimson") == 0) { - rgb->red = 220; - rgb->green = 20; - rgb->blue = 60; - return; - } - if(strcmp(color, "indigo") == 0) { - rgb->red = 75; - rgb->green = 0; - rgb->blue = 130; - return; - } - if(strcmp(color, "olive") == 0) { - rgb->red = 128; - rgb->green = 128; - rgb->blue = 0; - return; - } - if(strcmp(color, "rebecca purple") == 0) { - rgb->red = 102; - rgb->green = 51; - rgb->blue = 153; - return; - } - if(strcmp(color, "RebeccaPurple") == 0) { - rgb->red = 102; - rgb->green = 51; - rgb->blue = 153; - return; - } - if(strcmp(color, "silver") == 0) { - rgb->red = 192; - rgb->green = 192; - rgb->blue = 192; - return; - } - if(strcmp(color, "teal") == 0) { - rgb->red = 0; - rgb->green = 128; - rgb->blue = 128; - return; - } - rgb->red = 0; - rgb->green = 0; - rgb->blue = 0; + MwU32 v = shget(colors, color); + rgb->red = (v >> 16) & 0xff; + rgb->green = (v >> 8) & 0xff; + rgb->blue = (v >> 0) & 0xff; +} + +static void add_color(const char* name, int red, int green, int blue) { + MwU32 v = (red << 16) | (green << 8) | (blue << 0); + shput(colors, name, v); +} + +void MwColorTableInit(void) { + sh_new_strdup(colors); + shdefault(colors, 0); + add_color("snow", 255, 250, 250); + add_color("ghost white", 248, 248, 255); + add_color("GhostWhite", 248, 248, 255); + add_color("white smoke", 245, 245, 245); + add_color("WhiteSmoke", 245, 245, 245); + add_color("gainsboro", 220, 220, 220); + add_color("floral white", 255, 250, 240); + add_color("FloralWhite", 255, 250, 240); + add_color("old lace", 253, 245, 230); + add_color("OldLace", 253, 245, 230); + add_color("linen", 250, 240, 230); + add_color("antique white", 250, 235, 215); + add_color("AntiqueWhite", 250, 235, 215); + add_color("papaya whip", 255, 239, 213); + add_color("PapayaWhip", 255, 239, 213); + add_color("blanched almond", 255, 235, 205); + add_color("BlanchedAlmond", 255, 235, 205); + add_color("bisque", 255, 228, 196); + add_color("peach puff", 255, 218, 185); + add_color("PeachPuff", 255, 218, 185); + add_color("navajo white", 255, 222, 173); + add_color("NavajoWhite", 255, 222, 173); + add_color("moccasin", 255, 228, 181); + add_color("cornsilk", 255, 248, 220); + add_color("ivory", 255, 255, 240); + add_color("lemon chiffon", 255, 250, 205); + add_color("LemonChiffon", 255, 250, 205); + add_color("seashell", 255, 245, 238); + add_color("honeydew", 240, 255, 240); + add_color("mint cream", 245, 255, 250); + add_color("MintCream", 245, 255, 250); + add_color("azure", 240, 255, 255); + add_color("alice blue", 240, 248, 255); + add_color("AliceBlue", 240, 248, 255); + add_color("lavender", 230, 230, 250); + add_color("lavender blush", 255, 240, 245); + add_color("LavenderBlush", 255, 240, 245); + add_color("misty rose", 255, 228, 225); + add_color("MistyRose", 255, 228, 225); + add_color("white", 255, 255, 255); + add_color("black", 0, 0, 0); + add_color("dark slate gray", 47, 79, 79); + add_color("DarkSlateGray", 47, 79, 79); + add_color("dark slate grey", 47, 79, 79); + add_color("DarkSlateGrey", 47, 79, 79); + add_color("dim gray", 105, 105, 105); + add_color("DimGray", 105, 105, 105); + add_color("dim grey", 105, 105, 105); + add_color("DimGrey", 105, 105, 105); + add_color("slate gray", 112, 128, 144); + add_color("SlateGray", 112, 128, 144); + add_color("slate grey", 112, 128, 144); + add_color("SlateGrey", 112, 128, 144); + add_color("light slate gray", 119, 136, 153); + add_color("LightSlateGray", 119, 136, 153); + add_color("light slate grey", 119, 136, 153); + add_color("LightSlateGrey", 119, 136, 153); + add_color("gray", 190, 190, 190); + add_color("grey", 190, 190, 190); + add_color("x11 gray", 190, 190, 190); + add_color("X11Gray", 190, 190, 190); + add_color("x11 grey", 190, 190, 190); + add_color("X11Grey", 190, 190, 190); + add_color("web gray", 128, 128, 128); + add_color("WebGray", 128, 128, 128); + add_color("web grey", 128, 128, 128); + add_color("WebGrey", 128, 128, 128); + add_color("light grey", 211, 211, 211); + add_color("LightGrey", 211, 211, 211); + add_color("light gray", 211, 211, 211); + add_color("LightGray", 211, 211, 211); + add_color("midnight blue", 25, 25, 112); + add_color("MidnightBlue", 25, 25, 112); + add_color("navy", 0, 0, 128); + add_color("navy blue", 0, 0, 128); + add_color("NavyBlue", 0, 0, 128); + add_color("cornflower blue", 100, 149, 237); + add_color("CornflowerBlue", 100, 149, 237); + add_color("dark slate blue", 72, 61, 139); + add_color("DarkSlateBlue", 72, 61, 139); + add_color("slate blue", 106, 90, 205); + add_color("SlateBlue", 106, 90, 205); + add_color("medium slate blue", 123, 104, 238); + add_color("MediumSlateBlue", 123, 104, 238); + add_color("light slate blue", 132, 112, 255); + add_color("LightSlateBlue", 132, 112, 255); + add_color("medium blue", 0, 0, 205); + add_color("MediumBlue", 0, 0, 205); + add_color("royal blue", 65, 105, 225); + add_color("RoyalBlue", 65, 105, 225); + add_color("blue", 0, 0, 255); + add_color("dodger blue", 30, 144, 255); + add_color("DodgerBlue", 30, 144, 255); + add_color("deep sky blue", 0, 191, 255); + add_color("DeepSkyBlue", 0, 191, 255); + add_color("sky blue", 135, 206, 235); + add_color("SkyBlue", 135, 206, 235); + add_color("light sky blue", 135, 206, 250); + add_color("LightSkyBlue", 135, 206, 250); + add_color("steel blue", 70, 130, 180); + add_color("SteelBlue", 70, 130, 180); + add_color("light steel blue", 176, 196, 222); + add_color("LightSteelBlue", 176, 196, 222); + add_color("light blue", 173, 216, 230); + add_color("LightBlue", 173, 216, 230); + add_color("powder blue", 176, 224, 230); + add_color("PowderBlue", 176, 224, 230); + add_color("pale turquoise", 175, 238, 238); + add_color("PaleTurquoise", 175, 238, 238); + add_color("dark turquoise", 0, 206, 209); + add_color("DarkTurquoise", 0, 206, 209); + add_color("medium turquoise", 72, 209, 204); + add_color("MediumTurquoise", 72, 209, 204); + add_color("turquoise", 64, 224, 208); + add_color("cyan", 0, 255, 255); + add_color("aqua", 0, 255, 255); + add_color("light cyan", 224, 255, 255); + add_color("LightCyan", 224, 255, 255); + add_color("cadet blue", 95, 158, 160); + add_color("CadetBlue", 95, 158, 160); + add_color("medium aquamarine", 102, 205, 170); + add_color("MediumAquamarine", 102, 205, 170); + add_color("aquamarine", 127, 255, 212); + add_color("dark green", 0, 100, 0); + add_color("DarkGreen", 0, 100, 0); + add_color("dark olive green", 85, 107, 47); + add_color("DarkOliveGreen", 85, 107, 47); + add_color("dark sea green", 143, 188, 143); + add_color("DarkSeaGreen", 143, 188, 143); + add_color("sea green", 46, 139, 87); + add_color("SeaGreen", 46, 139, 87); + add_color("medium sea green", 60, 179, 113); + add_color("MediumSeaGreen", 60, 179, 113); + add_color("light sea green", 32, 178, 170); + add_color("LightSeaGreen", 32, 178, 170); + add_color("pale green", 152, 251, 152); + add_color("PaleGreen", 152, 251, 152); + add_color("spring green", 0, 255, 127); + add_color("SpringGreen", 0, 255, 127); + add_color("lawn green", 124, 252, 0); + add_color("LawnGreen", 124, 252, 0); + add_color("green", 0, 255, 0); + add_color("lime", 0, 255, 0); + add_color("x11 green", 0, 255, 0); + add_color("X11Green", 0, 255, 0); + add_color("web green", 0, 128, 0); + add_color("WebGreen", 0, 128, 0); + add_color("chartreuse", 127, 255, 0); + add_color("medium spring green", 0, 250, 154); + add_color("MediumSpringGreen", 0, 250, 154); + add_color("green yellow", 173, 255, 47); + add_color("GreenYellow", 173, 255, 47); + add_color("lime green", 50, 205, 50); + add_color("LimeGreen", 50, 205, 50); + add_color("yellow green", 154, 205, 50); + add_color("YellowGreen", 154, 205, 50); + add_color("forest green", 34, 139, 34); + add_color("ForestGreen", 34, 139, 34); + add_color("olive drab", 107, 142, 35); + add_color("OliveDrab", 107, 142, 35); + add_color("dark khaki", 189, 183, 107); + add_color("DarkKhaki", 189, 183, 107); + add_color("khaki", 240, 230, 140); + add_color("pale goldenrod", 238, 232, 170); + add_color("PaleGoldenrod", 238, 232, 170); + add_color("light goldenrod yellow", 250, 250, 210); + add_color("LightGoldenrodYellow", 250, 250, 210); + add_color("light yellow", 255, 255, 224); + add_color("LightYellow", 255, 255, 224); + add_color("yellow", 255, 255, 0); + add_color("gold", 255, 215, 0); + add_color("light goldenrod", 238, 221, 130); + add_color("LightGoldenrod", 238, 221, 130); + add_color("goldenrod", 218, 165, 32); + add_color("dark goldenrod", 184, 134, 11); + add_color("DarkGoldenrod", 184, 134, 11); + add_color("rosy brown", 188, 143, 143); + add_color("RosyBrown", 188, 143, 143); + add_color("indian red", 205, 92, 92); + add_color("IndianRed", 205, 92, 92); + add_color("saddle brown", 139, 69, 19); + add_color("SaddleBrown", 139, 69, 19); + add_color("sienna", 160, 82, 45); + add_color("peru", 205, 133, 63); + add_color("burlywood", 222, 184, 135); + add_color("beige", 245, 245, 220); + add_color("wheat", 245, 222, 179); + add_color("sandy brown", 244, 164, 96); + add_color("SandyBrown", 244, 164, 96); + add_color("tan", 210, 180, 140); + add_color("chocolate", 210, 105, 30); + add_color("firebrick", 178, 34, 34); + add_color("brown", 165, 42, 42); + add_color("dark salmon", 233, 150, 122); + add_color("DarkSalmon", 233, 150, 122); + add_color("salmon", 250, 128, 114); + add_color("light salmon", 255, 160, 122); + add_color("LightSalmon", 255, 160, 122); + add_color("orange", 255, 165, 0); + add_color("dark orange", 255, 140, 0); + add_color("DarkOrange", 255, 140, 0); + add_color("coral", 255, 127, 80); + add_color("light coral", 240, 128, 128); + add_color("LightCoral", 240, 128, 128); + add_color("tomato", 255, 99, 71); + add_color("orange red", 255, 69, 0); + add_color("OrangeRed", 255, 69, 0); + add_color("red", 255, 0, 0); + add_color("hot pink", 255, 105, 180); + add_color("HotPink", 255, 105, 180); + add_color("deep pink", 255, 20, 147); + add_color("DeepPink", 255, 20, 147); + add_color("pink", 255, 192, 203); + add_color("light pink", 255, 182, 193); + add_color("LightPink", 255, 182, 193); + add_color("pale violet red", 219, 112, 147); + add_color("PaleVioletRed", 219, 112, 147); + add_color("maroon", 176, 48, 96); + add_color("x11 maroon", 176, 48, 96); + add_color("X11Maroon", 176, 48, 96); + add_color("web maroon", 128, 0, 0); + add_color("WebMaroon", 128, 0, 0); + add_color("medium violet red", 199, 21, 133); + add_color("MediumVioletRed", 199, 21, 133); + add_color("violet red", 208, 32, 144); + add_color("VioletRed", 208, 32, 144); + add_color("magenta", 255, 0, 255); + add_color("fuchsia", 255, 0, 255); + add_color("violet", 238, 130, 238); + add_color("plum", 221, 160, 221); + add_color("orchid", 218, 112, 214); + add_color("medium orchid", 186, 85, 211); + add_color("MediumOrchid", 186, 85, 211); + add_color("dark orchid", 153, 50, 204); + add_color("DarkOrchid", 153, 50, 204); + add_color("dark violet", 148, 0, 211); + add_color("DarkViolet", 148, 0, 211); + add_color("blue violet", 138, 43, 226); + add_color("BlueViolet", 138, 43, 226); + add_color("purple", 160, 32, 240); + add_color("x11 purple", 160, 32, 240); + add_color("X11Purple", 160, 32, 240); + add_color("web purple", 128, 0, 128); + add_color("WebPurple", 128, 0, 128); + add_color("medium purple", 147, 112, 219); + add_color("MediumPurple", 147, 112, 219); + add_color("thistle", 216, 191, 216); + add_color("snow1", 255, 250, 250); + add_color("snow2", 238, 233, 233); + add_color("snow3", 205, 201, 201); + add_color("snow4", 139, 137, 137); + add_color("seashell1", 255, 245, 238); + add_color("seashell2", 238, 229, 222); + add_color("seashell3", 205, 197, 191); + add_color("seashell4", 139, 134, 130); + add_color("AntiqueWhite1", 255, 239, 219); + add_color("AntiqueWhite2", 238, 223, 204); + add_color("AntiqueWhite3", 205, 192, 176); + add_color("AntiqueWhite4", 139, 131, 120); + add_color("bisque1", 255, 228, 196); + add_color("bisque2", 238, 213, 183); + add_color("bisque3", 205, 183, 158); + add_color("bisque4", 139, 125, 107); + add_color("PeachPuff1", 255, 218, 185); + add_color("PeachPuff2", 238, 203, 173); + add_color("PeachPuff3", 205, 175, 149); + add_color("PeachPuff4", 139, 119, 101); + add_color("NavajoWhite1", 255, 222, 173); + add_color("NavajoWhite2", 238, 207, 161); + add_color("NavajoWhite3", 205, 179, 139); + add_color("NavajoWhite4", 139, 121, 94); + add_color("LemonChiffon1", 255, 250, 205); + add_color("LemonChiffon2", 238, 233, 191); + add_color("LemonChiffon3", 205, 201, 165); + add_color("LemonChiffon4", 139, 137, 112); + add_color("cornsilk1", 255, 248, 220); + add_color("cornsilk2", 238, 232, 205); + add_color("cornsilk3", 205, 200, 177); + add_color("cornsilk4", 139, 136, 120); + add_color("ivory1", 255, 255, 240); + add_color("ivory2", 238, 238, 224); + add_color("ivory3", 205, 205, 193); + add_color("ivory4", 139, 139, 131); + add_color("honeydew1", 240, 255, 240); + add_color("honeydew2", 224, 238, 224); + add_color("honeydew3", 193, 205, 193); + add_color("honeydew4", 131, 139, 131); + add_color("LavenderBlush1", 255, 240, 245); + add_color("LavenderBlush2", 238, 224, 229); + add_color("LavenderBlush3", 205, 193, 197); + add_color("LavenderBlush4", 139, 131, 134); + add_color("MistyRose1", 255, 228, 225); + add_color("MistyRose2", 238, 213, 210); + add_color("MistyRose3", 205, 183, 181); + add_color("MistyRose4", 139, 125, 123); + add_color("azure1", 240, 255, 255); + add_color("azure2", 224, 238, 238); + add_color("azure3", 193, 205, 205); + add_color("azure4", 131, 139, 139); + add_color("SlateBlue1", 131, 111, 255); + add_color("SlateBlue2", 122, 103, 238); + add_color("SlateBlue3", 105, 89, 205); + add_color("SlateBlue4", 71, 60, 139); + add_color("RoyalBlue1", 72, 118, 255); + add_color("RoyalBlue2", 67, 110, 238); + add_color("RoyalBlue3", 58, 95, 205); + add_color("RoyalBlue4", 39, 64, 139); + add_color("blue1", 0, 0, 255); + add_color("blue2", 0, 0, 238); + add_color("blue3", 0, 0, 205); + add_color("blue4", 0, 0, 139); + add_color("DodgerBlue1", 30, 144, 255); + add_color("DodgerBlue2", 28, 134, 238); + add_color("DodgerBlue3", 24, 116, 205); + add_color("DodgerBlue4", 16, 78, 139); + add_color("SteelBlue1", 99, 184, 255); + add_color("SteelBlue2", 92, 172, 238); + add_color("SteelBlue3", 79, 148, 205); + add_color("SteelBlue4", 54, 100, 139); + add_color("DeepSkyBlue1", 0, 191, 255); + add_color("DeepSkyBlue2", 0, 178, 238); + add_color("DeepSkyBlue3", 0, 154, 205); + add_color("DeepSkyBlue4", 0, 104, 139); + add_color("SkyBlue1", 135, 206, 255); + add_color("SkyBlue2", 126, 192, 238); + add_color("SkyBlue3", 108, 166, 205); + add_color("SkyBlue4", 74, 112, 139); + add_color("LightSkyBlue1", 176, 226, 255); + add_color("LightSkyBlue2", 164, 211, 238); + add_color("LightSkyBlue3", 141, 182, 205); + add_color("LightSkyBlue4", 96, 123, 139); + add_color("SlateGray1", 198, 226, 255); + add_color("SlateGray2", 185, 211, 238); + add_color("SlateGray3", 159, 182, 205); + add_color("SlateGray4", 108, 123, 139); + add_color("LightSteelBlue1", 202, 225, 255); + add_color("LightSteelBlue2", 188, 210, 238); + add_color("LightSteelBlue3", 162, 181, 205); + add_color("LightSteelBlue4", 110, 123, 139); + add_color("LightBlue1", 191, 239, 255); + add_color("LightBlue2", 178, 223, 238); + add_color("LightBlue3", 154, 192, 205); + add_color("LightBlue4", 104, 131, 139); + add_color("LightCyan1", 224, 255, 255); + add_color("LightCyan2", 209, 238, 238); + add_color("LightCyan3", 180, 205, 205); + add_color("LightCyan4", 122, 139, 139); + add_color("PaleTurquoise1", 187, 255, 255); + add_color("PaleTurquoise2", 174, 238, 238); + add_color("PaleTurquoise3", 150, 205, 205); + add_color("PaleTurquoise4", 102, 139, 139); + add_color("CadetBlue1", 152, 245, 255); + add_color("CadetBlue2", 142, 229, 238); + add_color("CadetBlue3", 122, 197, 205); + add_color("CadetBlue4", 83, 134, 139); + add_color("turquoise1", 0, 245, 255); + add_color("turquoise2", 0, 229, 238); + add_color("turquoise3", 0, 197, 205); + add_color("turquoise4", 0, 134, 139); + add_color("cyan1", 0, 255, 255); + add_color("cyan2", 0, 238, 238); + add_color("cyan3", 0, 205, 205); + add_color("cyan4", 0, 139, 139); + add_color("DarkSlateGray1", 151, 255, 255); + add_color("DarkSlateGray2", 141, 238, 238); + add_color("DarkSlateGray3", 121, 205, 205); + add_color("DarkSlateGray4", 82, 139, 139); + add_color("aquamarine1", 127, 255, 212); + add_color("aquamarine2", 118, 238, 198); + add_color("aquamarine3", 102, 205, 170); + add_color("aquamarine4", 69, 139, 116); + add_color("DarkSeaGreen1", 193, 255, 193); + add_color("DarkSeaGreen2", 180, 238, 180); + add_color("DarkSeaGreen3", 155, 205, 155); + add_color("DarkSeaGreen4", 105, 139, 105); + add_color("SeaGreen1", 84, 255, 159); + add_color("SeaGreen2", 78, 238, 148); + add_color("SeaGreen3", 67, 205, 128); + add_color("SeaGreen4", 46, 139, 87); + add_color("PaleGreen1", 154, 255, 154); + add_color("PaleGreen2", 144, 238, 144); + add_color("PaleGreen3", 124, 205, 124); + add_color("PaleGreen4", 84, 139, 84); + add_color("SpringGreen1", 0, 255, 127); + add_color("SpringGreen2", 0, 238, 118); + add_color("SpringGreen3", 0, 205, 102); + add_color("SpringGreen4", 0, 139, 69); + add_color("green1", 0, 255, 0); + add_color("green2", 0, 238, 0); + add_color("green3", 0, 205, 0); + add_color("green4", 0, 139, 0); + add_color("chartreuse1", 127, 255, 0); + add_color("chartreuse2", 118, 238, 0); + add_color("chartreuse3", 102, 205, 0); + add_color("chartreuse4", 69, 139, 0); + add_color("OliveDrab1", 192, 255, 62); + add_color("OliveDrab2", 179, 238, 58); + add_color("OliveDrab3", 154, 205, 50); + add_color("OliveDrab4", 105, 139, 34); + add_color("DarkOliveGreen1", 202, 255, 112); + add_color("DarkOliveGreen2", 188, 238, 104); + add_color("DarkOliveGreen3", 162, 205, 90); + add_color("DarkOliveGreen4", 110, 139, 61); + add_color("khaki1", 255, 246, 143); + add_color("khaki2", 238, 230, 133); + add_color("khaki3", 205, 198, 115); + add_color("khaki4", 139, 134, 78); + add_color("LightGoldenrod1", 255, 236, 139); + add_color("LightGoldenrod2", 238, 220, 130); + add_color("LightGoldenrod3", 205, 190, 112); + add_color("LightGoldenrod4", 139, 129, 76); + add_color("LightYellow1", 255, 255, 224); + add_color("LightYellow2", 238, 238, 209); + add_color("LightYellow3", 205, 205, 180); + add_color("LightYellow4", 139, 139, 122); + add_color("yellow1", 255, 255, 0); + add_color("yellow2", 238, 238, 0); + add_color("yellow3", 205, 205, 0); + add_color("yellow4", 139, 139, 0); + add_color("gold1", 255, 215, 0); + add_color("gold2", 238, 201, 0); + add_color("gold3", 205, 173, 0); + add_color("gold4", 139, 117, 0); + add_color("goldenrod1", 255, 193, 37); + add_color("goldenrod2", 238, 180, 34); + add_color("goldenrod3", 205, 155, 29); + add_color("goldenrod4", 139, 105, 20); + add_color("DarkGoldenrod1", 255, 185, 15); + add_color("DarkGoldenrod2", 238, 173, 14); + add_color("DarkGoldenrod3", 205, 149, 12); + add_color("DarkGoldenrod4", 139, 101, 8); + add_color("RosyBrown1", 255, 193, 193); + add_color("RosyBrown2", 238, 180, 180); + add_color("RosyBrown3", 205, 155, 155); + add_color("RosyBrown4", 139, 105, 105); + add_color("IndianRed1", 255, 106, 106); + add_color("IndianRed2", 238, 99, 99); + add_color("IndianRed3", 205, 85, 85); + add_color("IndianRed4", 139, 58, 58); + add_color("sienna1", 255, 130, 71); + add_color("sienna2", 238, 121, 66); + add_color("sienna3", 205, 104, 57); + add_color("sienna4", 139, 71, 38); + add_color("burlywood1", 255, 211, 155); + add_color("burlywood2", 238, 197, 145); + add_color("burlywood3", 205, 170, 125); + add_color("burlywood4", 139, 115, 85); + add_color("wheat1", 255, 231, 186); + add_color("wheat2", 238, 216, 174); + add_color("wheat3", 205, 186, 150); + add_color("wheat4", 139, 126, 102); + add_color("tan1", 255, 165, 79); + add_color("tan2", 238, 154, 73); + add_color("tan3", 205, 133, 63); + add_color("tan4", 139, 90, 43); + add_color("chocolate1", 255, 127, 36); + add_color("chocolate2", 238, 118, 33); + add_color("chocolate3", 205, 102, 29); + add_color("chocolate4", 139, 69, 19); + add_color("firebrick1", 255, 48, 48); + add_color("firebrick2", 238, 44, 44); + add_color("firebrick3", 205, 38, 38); + add_color("firebrick4", 139, 26, 26); + add_color("brown1", 255, 64, 64); + add_color("brown2", 238, 59, 59); + add_color("brown3", 205, 51, 51); + add_color("brown4", 139, 35, 35); + add_color("salmon1", 255, 140, 105); + add_color("salmon2", 238, 130, 98); + add_color("salmon3", 205, 112, 84); + add_color("salmon4", 139, 76, 57); + add_color("LightSalmon1", 255, 160, 122); + add_color("LightSalmon2", 238, 149, 114); + add_color("LightSalmon3", 205, 129, 98); + add_color("LightSalmon4", 139, 87, 66); + add_color("orange1", 255, 165, 0); + add_color("orange2", 238, 154, 0); + add_color("orange3", 205, 133, 0); + add_color("orange4", 139, 90, 0); + add_color("DarkOrange1", 255, 127, 0); + add_color("DarkOrange2", 238, 118, 0); + add_color("DarkOrange3", 205, 102, 0); + add_color("DarkOrange4", 139, 69, 0); + add_color("coral1", 255, 114, 86); + add_color("coral2", 238, 106, 80); + add_color("coral3", 205, 91, 69); + add_color("coral4", 139, 62, 47); + add_color("tomato1", 255, 99, 71); + add_color("tomato2", 238, 92, 66); + add_color("tomato3", 205, 79, 57); + add_color("tomato4", 139, 54, 38); + add_color("OrangeRed1", 255, 69, 0); + add_color("OrangeRed2", 238, 64, 0); + add_color("OrangeRed3", 205, 55, 0); + add_color("OrangeRed4", 139, 37, 0); + add_color("red1", 255, 0, 0); + add_color("red2", 238, 0, 0); + add_color("red3", 205, 0, 0); + add_color("red4", 139, 0, 0); + add_color("DeepPink1", 255, 20, 147); + add_color("DeepPink2", 238, 18, 137); + add_color("DeepPink3", 205, 16, 118); + add_color("DeepPink4", 139, 10, 80); + add_color("HotPink1", 255, 110, 180); + add_color("HotPink2", 238, 106, 167); + add_color("HotPink3", 205, 96, 144); + add_color("HotPink4", 139, 58, 98); + add_color("pink1", 255, 181, 197); + add_color("pink2", 238, 169, 184); + add_color("pink3", 205, 145, 158); + add_color("pink4", 139, 99, 108); + add_color("LightPink1", 255, 174, 185); + add_color("LightPink2", 238, 162, 173); + add_color("LightPink3", 205, 140, 149); + add_color("LightPink4", 139, 95, 101); + add_color("PaleVioletRed1", 255, 130, 171); + add_color("PaleVioletRed2", 238, 121, 159); + add_color("PaleVioletRed3", 205, 104, 137); + add_color("PaleVioletRed4", 139, 71, 93); + add_color("maroon1", 255, 52, 179); + add_color("maroon2", 238, 48, 167); + add_color("maroon3", 205, 41, 144); + add_color("maroon4", 139, 28, 98); + add_color("VioletRed1", 255, 62, 150); + add_color("VioletRed2", 238, 58, 140); + add_color("VioletRed3", 205, 50, 120); + add_color("VioletRed4", 139, 34, 82); + add_color("magenta1", 255, 0, 255); + add_color("magenta2", 238, 0, 238); + add_color("magenta3", 205, 0, 205); + add_color("magenta4", 139, 0, 139); + add_color("orchid1", 255, 131, 250); + add_color("orchid2", 238, 122, 233); + add_color("orchid3", 205, 105, 201); + add_color("orchid4", 139, 71, 137); + add_color("plum1", 255, 187, 255); + add_color("plum2", 238, 174, 238); + add_color("plum3", 205, 150, 205); + add_color("plum4", 139, 102, 139); + add_color("MediumOrchid1", 224, 102, 255); + add_color("MediumOrchid2", 209, 95, 238); + add_color("MediumOrchid3", 180, 82, 205); + add_color("MediumOrchid4", 122, 55, 139); + add_color("DarkOrchid1", 191, 62, 255); + add_color("DarkOrchid2", 178, 58, 238); + add_color("DarkOrchid3", 154, 50, 205); + add_color("DarkOrchid4", 104, 34, 139); + add_color("purple1", 155, 48, 255); + add_color("purple2", 145, 44, 238); + add_color("purple3", 125, 38, 205); + add_color("purple4", 85, 26, 139); + add_color("MediumPurple1", 171, 130, 255); + add_color("MediumPurple2", 159, 121, 238); + add_color("MediumPurple3", 137, 104, 205); + add_color("MediumPurple4", 93, 71, 139); + add_color("thistle1", 255, 225, 255); + add_color("thistle2", 238, 210, 238); + add_color("thistle3", 205, 181, 205); + add_color("thistle4", 139, 123, 139); + add_color("gray0", 0, 0, 0); + add_color("grey0", 0, 0, 0); + add_color("gray1", 3, 3, 3); + add_color("grey1", 3, 3, 3); + add_color("gray2", 5, 5, 5); + add_color("grey2", 5, 5, 5); + add_color("gray3", 8, 8, 8); + add_color("grey3", 8, 8, 8); + add_color("gray4", 10, 10, 10); + add_color("grey4", 10, 10, 10); + add_color("gray5", 13, 13, 13); + add_color("grey5", 13, 13, 13); + add_color("gray6", 15, 15, 15); + add_color("grey6", 15, 15, 15); + add_color("gray7", 18, 18, 18); + add_color("grey7", 18, 18, 18); + add_color("gray8", 20, 20, 20); + add_color("grey8", 20, 20, 20); + add_color("gray9", 23, 23, 23); + add_color("grey9", 23, 23, 23); + add_color("gray10", 26, 26, 26); + add_color("grey10", 26, 26, 26); + add_color("gray11", 28, 28, 28); + add_color("grey11", 28, 28, 28); + add_color("gray12", 31, 31, 31); + add_color("grey12", 31, 31, 31); + add_color("gray13", 33, 33, 33); + add_color("grey13", 33, 33, 33); + add_color("gray14", 36, 36, 36); + add_color("grey14", 36, 36, 36); + add_color("gray15", 38, 38, 38); + add_color("grey15", 38, 38, 38); + add_color("gray16", 41, 41, 41); + add_color("grey16", 41, 41, 41); + add_color("gray17", 43, 43, 43); + add_color("grey17", 43, 43, 43); + add_color("gray18", 46, 46, 46); + add_color("grey18", 46, 46, 46); + add_color("gray19", 48, 48, 48); + add_color("grey19", 48, 48, 48); + add_color("gray20", 51, 51, 51); + add_color("grey20", 51, 51, 51); + add_color("gray21", 54, 54, 54); + add_color("grey21", 54, 54, 54); + add_color("gray22", 56, 56, 56); + add_color("grey22", 56, 56, 56); + add_color("gray23", 59, 59, 59); + add_color("grey23", 59, 59, 59); + add_color("gray24", 61, 61, 61); + add_color("grey24", 61, 61, 61); + add_color("gray25", 64, 64, 64); + add_color("grey25", 64, 64, 64); + add_color("gray26", 66, 66, 66); + add_color("grey26", 66, 66, 66); + add_color("gray27", 69, 69, 69); + add_color("grey27", 69, 69, 69); + add_color("gray28", 71, 71, 71); + add_color("grey28", 71, 71, 71); + add_color("gray29", 74, 74, 74); + add_color("grey29", 74, 74, 74); + add_color("gray30", 77, 77, 77); + add_color("grey30", 77, 77, 77); + add_color("gray31", 79, 79, 79); + add_color("grey31", 79, 79, 79); + add_color("gray32", 82, 82, 82); + add_color("grey32", 82, 82, 82); + add_color("gray33", 84, 84, 84); + add_color("grey33", 84, 84, 84); + add_color("gray34", 87, 87, 87); + add_color("grey34", 87, 87, 87); + add_color("gray35", 89, 89, 89); + add_color("grey35", 89, 89, 89); + add_color("gray36", 92, 92, 92); + add_color("grey36", 92, 92, 92); + add_color("gray37", 94, 94, 94); + add_color("grey37", 94, 94, 94); + add_color("gray38", 97, 97, 97); + add_color("grey38", 97, 97, 97); + add_color("gray39", 99, 99, 99); + add_color("grey39", 99, 99, 99); + add_color("gray40", 102, 102, 102); + add_color("grey40", 102, 102, 102); + add_color("gray41", 105, 105, 105); + add_color("grey41", 105, 105, 105); + add_color("gray42", 107, 107, 107); + add_color("grey42", 107, 107, 107); + add_color("gray43", 110, 110, 110); + add_color("grey43", 110, 110, 110); + add_color("gray44", 112, 112, 112); + add_color("grey44", 112, 112, 112); + add_color("gray45", 115, 115, 115); + add_color("grey45", 115, 115, 115); + add_color("gray46", 117, 117, 117); + add_color("grey46", 117, 117, 117); + add_color("gray47", 120, 120, 120); + add_color("grey47", 120, 120, 120); + add_color("gray48", 122, 122, 122); + add_color("grey48", 122, 122, 122); + add_color("gray49", 125, 125, 125); + add_color("grey49", 125, 125, 125); + add_color("gray50", 127, 127, 127); + add_color("grey50", 127, 127, 127); + add_color("gray51", 130, 130, 130); + add_color("grey51", 130, 130, 130); + add_color("gray52", 133, 133, 133); + add_color("grey52", 133, 133, 133); + add_color("gray53", 135, 135, 135); + add_color("grey53", 135, 135, 135); + add_color("gray54", 138, 138, 138); + add_color("grey54", 138, 138, 138); + add_color("gray55", 140, 140, 140); + add_color("grey55", 140, 140, 140); + add_color("gray56", 143, 143, 143); + add_color("grey56", 143, 143, 143); + add_color("gray57", 145, 145, 145); + add_color("grey57", 145, 145, 145); + add_color("gray58", 148, 148, 148); + add_color("grey58", 148, 148, 148); + add_color("gray59", 150, 150, 150); + add_color("grey59", 150, 150, 150); + add_color("gray60", 153, 153, 153); + add_color("grey60", 153, 153, 153); + add_color("gray61", 156, 156, 156); + add_color("grey61", 156, 156, 156); + add_color("gray62", 158, 158, 158); + add_color("grey62", 158, 158, 158); + add_color("gray63", 161, 161, 161); + add_color("grey63", 161, 161, 161); + add_color("gray64", 163, 163, 163); + add_color("grey64", 163, 163, 163); + add_color("gray65", 166, 166, 166); + add_color("grey65", 166, 166, 166); + add_color("gray66", 168, 168, 168); + add_color("grey66", 168, 168, 168); + add_color("gray67", 171, 171, 171); + add_color("grey67", 171, 171, 171); + add_color("gray68", 173, 173, 173); + add_color("grey68", 173, 173, 173); + add_color("gray69", 176, 176, 176); + add_color("grey69", 176, 176, 176); + add_color("gray70", 179, 179, 179); + add_color("grey70", 179, 179, 179); + add_color("gray71", 181, 181, 181); + add_color("grey71", 181, 181, 181); + add_color("gray72", 184, 184, 184); + add_color("grey72", 184, 184, 184); + add_color("gray73", 186, 186, 186); + add_color("grey73", 186, 186, 186); + add_color("gray74", 189, 189, 189); + add_color("grey74", 189, 189, 189); + add_color("gray75", 191, 191, 191); + add_color("grey75", 191, 191, 191); + add_color("gray76", 194, 194, 194); + add_color("grey76", 194, 194, 194); + add_color("gray77", 196, 196, 196); + add_color("grey77", 196, 196, 196); + add_color("gray78", 199, 199, 199); + add_color("grey78", 199, 199, 199); + add_color("gray79", 201, 201, 201); + add_color("grey79", 201, 201, 201); + add_color("gray80", 204, 204, 204); + add_color("grey80", 204, 204, 204); + add_color("gray81", 207, 207, 207); + add_color("grey81", 207, 207, 207); + add_color("gray82", 209, 209, 209); + add_color("grey82", 209, 209, 209); + add_color("gray83", 212, 212, 212); + add_color("grey83", 212, 212, 212); + add_color("gray84", 214, 214, 214); + add_color("grey84", 214, 214, 214); + add_color("gray85", 217, 217, 217); + add_color("grey85", 217, 217, 217); + add_color("gray86", 219, 219, 219); + add_color("grey86", 219, 219, 219); + add_color("gray87", 222, 222, 222); + add_color("grey87", 222, 222, 222); + add_color("gray88", 224, 224, 224); + add_color("grey88", 224, 224, 224); + add_color("gray89", 227, 227, 227); + add_color("grey89", 227, 227, 227); + add_color("gray90", 229, 229, 229); + add_color("grey90", 229, 229, 229); + add_color("gray91", 232, 232, 232); + add_color("grey91", 232, 232, 232); + add_color("gray92", 235, 235, 235); + add_color("grey92", 235, 235, 235); + add_color("gray93", 237, 237, 237); + add_color("grey93", 237, 237, 237); + add_color("gray94", 240, 240, 240); + add_color("grey94", 240, 240, 240); + add_color("gray95", 242, 242, 242); + add_color("grey95", 242, 242, 242); + add_color("gray96", 245, 245, 245); + add_color("grey96", 245, 245, 245); + add_color("gray97", 247, 247, 247); + add_color("grey97", 247, 247, 247); + add_color("gray98", 250, 250, 250); + add_color("grey98", 250, 250, 250); + add_color("gray99", 252, 252, 252); + add_color("grey99", 252, 252, 252); + add_color("gray100", 255, 255, 255); + add_color("grey100", 255, 255, 255); + add_color("dark grey", 169, 169, 169); + add_color("DarkGrey", 169, 169, 169); + add_color("dark gray", 169, 169, 169); + add_color("DarkGray", 169, 169, 169); + add_color("dark blue", 0, 0, 139); + add_color("DarkBlue", 0, 0, 139); + add_color("dark cyan", 0, 139, 139); + add_color("DarkCyan", 0, 139, 139); + add_color("dark magenta", 139, 0, 139); + add_color("DarkMagenta", 139, 0, 139); + add_color("dark red", 139, 0, 0); + add_color("DarkRed", 139, 0, 0); + add_color("light green", 144, 238, 144); + add_color("LightGreen", 144, 238, 144); + add_color("crimson", 220, 20, 60); + add_color("indigo", 75, 0, 130); + add_color("olive", 128, 128, 0); + add_color("rebecca purple", 102, 51, 153); + add_color("RebeccaPurple", 102, 51, 153); + add_color("silver", 192, 192, 192); + add_color("teal", 0, 128, 128); } diff --git a/src/core.c b/src/core.c index db81a2b2e..0db801f9b 100644 --- a/src/core.c +++ b/src/core.c @@ -18,7 +18,7 @@ MwLLEndDraw(handle->lowlevel); \ } -static void MWAPI MwVaListApply_Internal(MwWidget handle, va_list va, int only_early); +static void MWAPI MwVaListApply_Internal(MwWidget handle, va_list va, int only_early); static MwWidget MWAPI MwCreateWidget_Internal(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height, int do_prop, va_list prop); static void lldrawhandler(MwLL handle, void* data) { @@ -998,6 +998,8 @@ int MwLibraryInit(void) { NULL}; int i; + MwColorTableInit(); + MwFLSetup(); for(i = 0; calls[i] != NULL; i++) { diff --git a/src/widget/label.c b/src/widget/label.c index 84277b256..81b04988a 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -319,8 +319,8 @@ static void draw_normal(MwWidget handle) { MwLLColor text = MwParseColor(handle, MwGetText(handle, MwNforeground)); MwLLColor shadow = MwLightenColor(handle, base, MwDefaultShadow, MwDefaultShadow, MwDefaultShadow); int align; - const char* str = MwGetText(handle, MwNtext); - MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); + const char* str = MwGetText(handle, MwNtext); + MwLLPixmap bgpx = MwGetVoid(handle, MwNbackgroundPixmap); if(str == NULL) str = ""; diff --git a/src/widget/opengl.c b/src/widget/opengl.c index bd3532bf2..db839eac1 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -239,7 +239,7 @@ static int wcreate(MwWidget handle) { EGLDisplay display; waylandopengl_t* o = r = malloc(sizeof(*o)); int gbm_format = 0; - EGLConfig egl_configs[1024]; + EGLConfig egl_configs[1024]; memset(o, 0, sizeof(waylandopengl_t)); o->gllib = MwDynamicOpen("libEGL.so"); @@ -346,7 +346,7 @@ static int wcreate(MwWidget handle) { } else { if(gbm_format == GBM_FORMAT_ARGB8888) { o->egl_config = egl_configs[i]; - break; + break; } } } @@ -513,8 +513,8 @@ static void mwOpenGLSwapBufferImpl(MwWidget handle) { #ifdef USE_WAYLAND if(handle->lowlevel->common.type == MwLLBackendWayland) { waylandopengl_t* o = handle->internal; - struct gbm_bo* bo; - eglSwapInterval(o->egl_display, 0); + struct gbm_bo* bo; + eglSwapInterval(o->egl_display, 0); if(!eglSwapBuffers(o->egl_display, o->egl_surface)) { printf("ERROR: eglSwapBuffers, %0X\n", eglGetError()); } diff --git a/tools/color.pl b/tools/color.pl index e872ead23..0e7c6bb42 100755 --- a/tools/color.pl +++ b/tools/color.pl @@ -4,6 +4,15 @@ open(OUT, ">", "src/color.c"); print(OUT "#include \n"); print(OUT "\n"); +print(OUT "#include \"../external/stb_ds.h\"\n"); +print(OUT "\n"); +print(OUT "struct color {\n"); +print(OUT " char* key;\n"); +print(OUT " MwU32 value;\n"); +print(OUT "};\n"); +print(OUT "\n"); +print(OUT "static struct color* colors = NULL;\n"); +print(OUT "\n"); print(OUT "MwLLColor MwParseColorName(MwWidget handle, const char* color){\n"); print(OUT " MwRGB rgb;\n"); print(OUT " MwParseColorNameNoAllocate(color, &rgb);\n"); @@ -13,21 +22,26 @@ print(OUT print(OUT "}\n"); print(OUT "\n"); print(OUT "void MwParseColorNameNoAllocate(const char* color, MwRGB* rgb){\n"); - +print(OUT " MwU32 v = shget(colors, color);"); +print(OUT " rgb->red = (v >> 16) & 0xff;"); +print(OUT " rgb->green = (v >> 8) & 0xff;"); +print(OUT " rgb->blue = (v >> 0) & 0xff;"); +print(OUT "}\n"); +print(OUT "\n"); +print(OUT "static void add_color(const char* name, int red, int green, int blue){\n"); +print(OUT " MwU32 v = (red << 16) | (green << 8) | (blue << 0);\n"); +print(OUT " shput(colors, name, v);\n"); +print(OUT "}\n"); +print(OUT "\n"); +print(OUT "void MwColorTableInit(void){\n"); +print(OUT " sh_new_strdup(colors);\n"); +print(OUT " shdefault(colors, 0);\n"); while (my $l = ) { $l =~ s/\r?\n$//; if ($l =~ /^[ \t]*([0-9]+)[ \t]+([0-9]+)[ \t]+([0-9]+)[ \t]+(.+)$/) { - print(OUT " if(strcmp(color, \"$4\") == 0){\n"); - print(OUT " rgb->red = $1;\n"); - print(OUT " rgb->green = $2;\n"); - print(OUT " rgb->blue = $3;\n"); - print(OUT " return;\n"); - print(OUT " }\n"); + print(OUT " add_color(\"$4\", $1, $2, $3);\n"); } } -print(OUT " rgb->red = 0;\n"); -print(OUT " rgb->green = 0;\n"); -print(OUT " rgb->blue = 0;\n"); print(OUT "}\n"); close(OUT); From 95e7db960734904e4a0ecbb9051caa46dfcaa6bf Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 21 May 2026 15:45:26 -0500 Subject: [PATCH 732/836] Mw/TypeDefs.h: new -> _new --- include/Mw/TypeDefs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index 8bfa8c14f..e9dbec0aa 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -40,7 +40,7 @@ typedef void (*MwHandler)(MwWidget handle); typedef int (*MwHandlerWithStatus)(MwWidget handle); typedef void (*MwHandlerProps)(MwWidget handle, char** key); typedef void (*MwHandlerProp)(MwWidget handle, const char* key); -typedef void (*MwHandlerChildrenUpdate)(MwWidget handle, MwWidget child, int new); +typedef void (*MwHandlerChildrenUpdate)(MwWidget handle, MwWidget child, int _new); typedef void (*MwHandlerChildrenProp)(MwWidget handle, MwWidget child, const char* key); typedef void (*MwHandlerKey)(MwWidget handle, int key); typedef void (*MwHandlerMouse)(MwWidget handle, void* ptr); From 262019b1d4ef60e8da1f270727d5767789c23ae0 Mon Sep 17 00:00:00 2001 From: Nishi Date: Fri, 22 May 2026 09:19:19 +0900 Subject: [PATCH 733/836] fix --- include/Mw/TypeDefs.h | 2 +- src/widget/box.c | 4 ++-- src/widget/tab.c | 19 +++++++++++++++++++ src/widget/table.c | 4 ++-- 4 files changed, 24 insertions(+), 5 deletions(-) diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index e9dbec0aa..fd729225f 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -40,7 +40,7 @@ typedef void (*MwHandler)(MwWidget handle); typedef int (*MwHandlerWithStatus)(MwWidget handle); typedef void (*MwHandlerProps)(MwWidget handle, char** key); typedef void (*MwHandlerProp)(MwWidget handle, const char* key); -typedef void (*MwHandlerChildrenUpdate)(MwWidget handle, MwWidget child, int _new); +typedef void (*MwHandlerChildrenUpdate)(MwWidget handle, MwWidget child, int new_child); typedef void (*MwHandlerChildrenProp)(MwWidget handle, MwWidget child, const char* key); typedef void (*MwHandlerKey)(MwWidget handle, int key); typedef void (*MwHandlerMouse)(MwWidget handle, void* ptr); diff --git a/src/widget/box.c b/src/widget/box.c index 87807f407..00b5723e7 100644 --- a/src/widget/box.c +++ b/src/widget/box.c @@ -120,11 +120,11 @@ static void resize(MwWidget handle) { MwForceRender(handle); } -static void children_update(MwWidget handle, MwWidget child, int new) { +static void children_update(MwWidget handle, MwWidget child, int new_child) { MwBox b = handle->internal; (void)child; - (void)new; + (void)new_child; b->layout = 1; diff --git a/src/widget/tab.c b/src/widget/tab.c index 11d5861e6..136a148dc 100644 --- a/src/widget/tab.c +++ b/src/widget/tab.c @@ -2,6 +2,8 @@ #include "../../external/stb_ds.h" +#define SOME_FIX + static void resize(MwWidget handle); static int wcreate(MwWidget handle) { @@ -190,7 +192,11 @@ static void click(MwWidget handle) { static MwWidget mwTabAddImpl(MwWidget handle, const char* name) { MwTab t = handle->internal; +#ifdef SOME_FIX + MwWidget f = MwCreateWidget(MwFrameClass, "tabframe", handle, MwDefaultBorderWidth(handle), tab_height(handle) + MwDefaultBorderWidth(handle), MwGetInteger(handle, MwNwidth) - MwDefaultBorderWidth(handle) * 2, MwGetInteger(handle, MwNheight) - tab_height(handle) - MwDefaultBorderWidth(handle) * 2); +#else MwWidget f = MwCreateWidget(MwFrameClass, "tabframe", handle, 0, MwGetInteger(handle, MwNheight), MwGetInteger(handle, MwNwidth) - MwDefaultBorderWidth(handle) * 2, MwGetInteger(handle, MwNheight) - tab_height(handle) - MwDefaultBorderWidth(handle) * 2); +#endif char* n = MwStringDuplicate(name); arrput(t->frames, f); @@ -202,6 +208,11 @@ static MwWidget mwTabAddImpl(MwWidget handle, const char* name) { MwSetInteger(handle, MwNvalue, arrlen(t->frames) - 1); show_frame(handle); } +#ifdef SOME_FIX + else{ + MwLLShow(f->lowlevel, 0); + } +#endif return f; } @@ -237,6 +248,9 @@ static void resize(MwWidget handle) { for(i = 0; i < arrlen(t->frames); i++) { int y = MwGetInteger(handle, MwNheight); +#ifdef SOME_FIX + MwLLShow(t->frames[i]->lowlevel, i == v); +#else if(i == v) y = tab_height(handle) + MwDefaultBorderWidth(handle); MwVaApply(t->frames[i], @@ -245,6 +259,11 @@ static void resize(MwWidget handle) { MwNwidth, MwGetInteger(handle, MwNwidth) - MwDefaultBorderWidth(handle) * 2, MwNheight, MwGetInteger(handle, MwNheight) - tab_height(handle) - MwDefaultBorderWidth(handle) * 2, NULL); + + if(i == v){ + + } +#endif } } diff --git a/src/widget/table.c b/src/widget/table.c index ecd778ccd..788d5cc81 100644 --- a/src/widget/table.c +++ b/src/widget/table.c @@ -170,11 +170,11 @@ static void resize(MwWidget handle) { MwForceRender(handle); } -static void children_update(MwWidget handle, MwWidget child, int new) { +static void children_update(MwWidget handle, MwWidget child, int new_child) { MwTable t = handle->internal; t->layout = 1; - if(new) { + if(new_child) { arrput(t->widgets, child); } else { int i; From e7506922d2c7c657d004ace99ca75ea21df1c1fd Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 21 May 2026 18:21:50 -0700 Subject: [PATCH 734/836] finalize tab fix a bit more --- src/widget/tab.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/src/widget/tab.c b/src/widget/tab.c index 136a148dc..4cd3a2add 100644 --- a/src/widget/tab.c +++ b/src/widget/tab.c @@ -2,8 +2,6 @@ #include "../../external/stb_ds.h" -#define SOME_FIX - static void resize(MwWidget handle); static int wcreate(MwWidget handle) { @@ -192,11 +190,7 @@ static void click(MwWidget handle) { static MwWidget mwTabAddImpl(MwWidget handle, const char* name) { MwTab t = handle->internal; -#ifdef SOME_FIX MwWidget f = MwCreateWidget(MwFrameClass, "tabframe", handle, MwDefaultBorderWidth(handle), tab_height(handle) + MwDefaultBorderWidth(handle), MwGetInteger(handle, MwNwidth) - MwDefaultBorderWidth(handle) * 2, MwGetInteger(handle, MwNheight) - tab_height(handle) - MwDefaultBorderWidth(handle) * 2); -#else - MwWidget f = MwCreateWidget(MwFrameClass, "tabframe", handle, 0, MwGetInteger(handle, MwNheight), MwGetInteger(handle, MwNwidth) - MwDefaultBorderWidth(handle) * 2, MwGetInteger(handle, MwNheight) - tab_height(handle) - MwDefaultBorderWidth(handle) * 2); -#endif char* n = MwStringDuplicate(name); arrput(t->frames, f); @@ -207,12 +201,9 @@ static MwWidget mwTabAddImpl(MwWidget handle, const char* name) { if(MwGetInteger(handle, MwNvalue) == -1) { MwSetInteger(handle, MwNvalue, arrlen(t->frames) - 1); show_frame(handle); - } -#ifdef SOME_FIX - else{ + } else { MwLLShow(f->lowlevel, 0); } -#endif return f; } @@ -248,9 +239,7 @@ static void resize(MwWidget handle) { for(i = 0; i < arrlen(t->frames); i++) { int y = MwGetInteger(handle, MwNheight); -#ifdef SOME_FIX MwLLShow(t->frames[i]->lowlevel, i == v); -#else if(i == v) y = tab_height(handle) + MwDefaultBorderWidth(handle); MwVaApply(t->frames[i], @@ -260,10 +249,8 @@ static void resize(MwWidget handle) { MwNheight, MwGetInteger(handle, MwNheight) - tab_height(handle) - MwDefaultBorderWidth(handle) * 2, NULL); - if(i == v){ - + if(i == v) { } -#endif } } From 3d6e08541a5e5657349279f5667c60a569585cc9 Mon Sep 17 00:00:00 2001 From: Nishi Date: Fri, 22 May 2026 14:17:40 +0900 Subject: [PATCH 735/836] fix --- src/widget/tab.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/widget/tab.c b/src/widget/tab.c index 4cd3a2add..e779bd519 100644 --- a/src/widget/tab.c +++ b/src/widget/tab.c @@ -248,9 +248,6 @@ static void resize(MwWidget handle) { MwNwidth, MwGetInteger(handle, MwNwidth) - MwDefaultBorderWidth(handle) * 2, MwNheight, MwGetInteger(handle, MwNheight) - tab_height(handle) - MwDefaultBorderWidth(handle) * 2, NULL); - - if(i == v) { - } } } From 9e165b71d4e6d358cb968fe159c3630c0af0af44 Mon Sep 17 00:00:00 2001 From: Nishi Date: Sat, 23 May 2026 03:16:33 +0900 Subject: [PATCH 736/836] add MwNiconPixmap to frame and MwTabFocus --- examples/basic/tab.c | 4 ++ include/Mw/Widget/Tab.h | 10 +++ milsko.xml | 6 ++ src/core.c | 8 +++ src/widget/tab.c | 139 ++++++++++++++++++++++++++++++++++------ 5 files changed, 147 insertions(+), 20 deletions(-) diff --git a/examples/basic/tab.c b/examples/basic/tab.c index 8b0ad4ad6..8ae16c04d 100644 --- a/examples/basic/tab.c +++ b/examples/basic/tab.c @@ -31,6 +31,10 @@ int main() { MwTabAdd(tab, buf); } + MwVaApply(MwTabGetFrame(tab, "Tab 1"), + MwNiconPixmap, MwLoadIcon(tab, MwIconWarning), + NULL); + MwAddUserHandler(w, MwNresizeHandler, resize, NULL); resize(w, NULL, NULL); diff --git a/include/Mw/Widget/Tab.h b/include/Mw/Widget/Tab.h index ea30023e5..9f80a0dfb 100644 --- a/include/Mw/Widget/Tab.h +++ b/include/Mw/Widget/Tab.h @@ -42,6 +42,16 @@ MwInline MwWidget MwTabGetFrame(MwWidget handle, const char* name) { return out; } +/*! + * @brief Focus on a tab frame + * @param handle Widget + * @param name Tab name + * @return Frame + */ +MwInline void MwTabFocus(MwWidget handle, const char* name) { + MwVaWidgetExecute(handle, "mwTabFocus", NULL, name); +} + #ifdef __cplusplus } #endif diff --git a/milsko.xml b/milsko.xml index 837934efc..a94c847ca 100644 --- a/milsko.xml +++ b/milsko.xml @@ -668,6 +668,7 @@ + @@ -961,6 +962,11 @@ + + + + + diff --git a/src/core.c b/src/core.c index 0db801f9b..c08195067 100644 --- a/src/core.c +++ b/src/core.c @@ -569,10 +569,13 @@ void MwSetInteger(MwWidget handle, const char* key, int n) { arrput(keys, NULL); MwDispatch3(handle, props_change, keys); arrfree(keys); + } + if(handle->parent != NULL && handle->parent->prop_event) { MwDispatch3(handle, prop_change, key); if(handle->parent != NULL) MwDispatch4(handle->parent, children_prop_change, handle, key); } + if(strcmp(key, MwNforceInverted) == 0) { MwForceRender(handle); } @@ -614,10 +617,13 @@ void MwSetText(MwWidget handle, const char* key, const char* value) { arrput(keys, NULL); MwDispatch3(handle, props_change, keys); arrfree(keys); + } + if(handle->parent != NULL && handle->parent->prop_event) { MwDispatch3(handle, prop_change, key); if(handle->parent != NULL) MwDispatch4(handle->parent, children_prop_change, handle, key); } + if(strcmp(key, MwNbackground) == 0 || strcmp(key, MwNforeground) == 0 || strcmp(key, MwNsubBackground) == 0 || strcmp(key, MwNsubForeground) == 0) { MwForceRender(handle); } @@ -642,7 +648,9 @@ void MwSetVoid(MwWidget handle, const char* key, void* value) { arrput(keys, NULL); MwDispatch3(handle, props_change, keys); arrfree(keys); + } + if(handle->parent != NULL && handle->parent->prop_event) { MwDispatch3(handle, prop_change, key); if(handle->parent != NULL) MwDispatch4(handle->parent, children_prop_change, handle, key); } diff --git a/src/widget/tab.c b/src/widget/tab.c index e779bd519..f8eda14b6 100644 --- a/src/widget/tab.c +++ b/src/widget/tab.c @@ -39,6 +39,23 @@ static int tab_height(MwWidget handle) { return MwTextHeight(handle, NULL, "M") + 10; } +static int icon_width(MwWidget handle, const char* text) { + MwTab t = handle->internal; + int i; + + for(i = 0; i < arrlen(t->names); i++) { + if(strcmp(t->names[i], text) == 0) { + MwLLPixmap px = MwGetVoid(t->frames[i], MwNiconPixmap); + + if(px == NULL) return 0; + + return px->common.width * tab_height(handle) / px->common.height; + } + } + + return 0; +} + static void draw(MwWidget handle) { MwTab t = handle->internal; MwLLColor c = MwParseColor(handle, MwGetText(handle, MwNbackground)); @@ -60,6 +77,7 @@ static void draw(MwWidget handle) { x = 0; for(i = 0; i < arrlen(t->names); i++) { int render = 0; + int iw = icon_width(handle, t->names[i]); if(i == MwGetInteger(handle, MwNvalue) && n == 1) { r.y += h; @@ -73,11 +91,26 @@ static void draw(MwWidget handle) { r2.x = x; r2.y = 0; - r2.width = tab_width(handle, t->names[i]); + r2.width = tab_width(handle, t->names[i]) + iw; r2.height = tab_height(handle) + MwDefaultBorderWidth(handle); x += r2.width; + if(iw > 0) { + MwLLPixmap px = MwGetVoid(t->frames[i], MwNiconPixmap); + MwRect rp; + + rp = r2; + + rp.x += 5; + rp.y += 5; + + rp.width = iw - 10; + rp.height = rp.height * (iw - 10) / iw; + + MwLLDrawPixmap(handle->lowlevel, &rp, px); + } + if(render) { MwPoint p; @@ -151,7 +184,7 @@ static void draw(MwWidget handle) { MwDrawRect(handle, &r3, c); } - p.x = r2.x + r2.width / 2; + p.x = r2.x + (r2.width + iw / 2) / 2; p.y = r2.y + r2.height / 2; MwDrawText(handle, NULL, &p, t->names[i], MwALIGNMENT_CENTER, ct); } @@ -177,7 +210,10 @@ static void click(MwWidget handle) { int h = tab_height(handle); for(i = 0; i < arrlen(t->names); i++) { - int w = tab_width(handle, t->names[i]); + int w = tab_width(handle, t->names[i]); + int iw = icon_width(handle, t->names[i]); + + w += iw; if(MwGetInteger(handle, MwNvalue) != i && x <= handle->mouse_point.x && handle->mouse_point.x <= (x + w) && 0 <= handle->mouse_point.y && handle->mouse_point.y <= h) { MwSetInteger(handle, MwNvalue, i); @@ -188,6 +224,12 @@ static void click(MwWidget handle) { } } +static void prop_change(MwWidget handle, const char* key) { + if(strcmp(key, MwNvalue) == 0) { + show_frame(handle); + } +} + static MwWidget mwTabAddImpl(MwWidget handle, const char* name) { MwTab t = handle->internal; MwWidget f = MwCreateWidget(MwFrameClass, "tabframe", handle, MwDefaultBorderWidth(handle), tab_height(handle) + MwDefaultBorderWidth(handle), MwGetInteger(handle, MwNwidth) - MwDefaultBorderWidth(handle) * 2, MwGetInteger(handle, MwNheight) - tab_height(handle) - MwDefaultBorderWidth(handle) * 2); @@ -219,6 +261,19 @@ static MwWidget mwTabGetFrameImpl(MwWidget handle, const char* name) { return NULL; } +static void mwTabFocusImpl(MwWidget handle, const char* name) { + MwTab t = handle->internal; + int i; + + for(i = 0; i < arrlen(t->names); i++) { + if(strcmp(t->names[i], name) == 0) { + MwSetInteger(handle, MwNvalue, i); + show_frame(handle); + break; + } + } +} + static void func_handler(MwWidget handle, const char* name, void* out, va_list va) { if(strcmp(name, "mwTabAdd") == 0) { const char* name = va_arg(va, const char*); @@ -228,6 +283,10 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v const char* name = va_arg(va, const char*); *(MwWidget*)out = mwTabGetFrameImpl(handle, name); + } else if(strcmp(name, "mwTabFocus") == 0) { + const char* name = va_arg(va, const char*); + + mwTabFocusImpl(handle, name); } } @@ -251,24 +310,64 @@ static void resize(MwWidget handle) { } } +static void children_update(MwWidget handle, MwWidget child, int new_child) { + MwTab t = handle->internal; + int v = MwGetInteger(handle, MwNvalue); + int c = v; + int n; + int i; + + if(new_child) return; + + for(i = 0; i < arrlen(t->frames); i++) { + if(t->frames[i] == child) { + n = i; + break; + } + } + + free(t->names[n]); + + arrdel(t->frames, n); + arrdel(t->names, n); + + if(n <= v) { + if(v > 0) v--; + + MwSetInteger(handle, MwNvalue, v); + show_frame(handle); + } else { + MwSetInteger(handle, MwNvalue, v); + show_frame(handle); + } + + MwForceRender(handle); +} + +static void children_prop_change(MwWidget handle, MwWidget child, const char* key) { + if(strcmp(key, MwNiconPixmap) == 0) { + MwForceRender(handle); + } +} + MwClassRec MwTabClassRec = { - wcreate, /* create */ - destroy, /* destroy */ - draw, /* draw */ - click, /* click */ - NULL, /* parent_resize */ - NULL, /* prop_change */ - NULL, /* mouse_move */ - NULL, /* mouse_up */ - NULL, /* mouse_down */ - NULL, /* key */ - func_handler, /* execute */ - NULL, /* tick */ - resize, /* resize */ - NULL, /* children_update */ - NULL, /* children_prop_change */ - NULL, /* clipboard */ - NULL, /* props_change */ + wcreate, /* create */ + destroy, /* destroy */ + draw, /* draw */ + click, /* click */ + NULL, /* parent_resize */ + prop_change, /* prop_change */ + NULL, /* mouse_move */ + NULL, /* mouse_up */ + NULL, /* mouse_down */ + NULL, /* key */ + func_handler, /* execute */ + NULL, /* tick */ + resize, /* resize */ + children_update, /* children_update */ + children_prop_change, /* children_prop_change */ + NULL, /* clipboard */ + NULL, /* props_change */ NULL, NULL, NULL}; From 149f99622a4bd62c7c1cc38f01b2d8bc8df97c5c Mon Sep 17 00:00:00 2001 From: IoIxD Date: Fri, 22 May 2026 11:41:08 -0700 Subject: [PATCH 737/836] add disabled widgets --- examples/basic/example.c | 23 ++++++++++++++++------- examples/basic/periodic.c | 15 +++++++++++---- include/Mw/StringDefs.h | 1 + src/backend/wayland/wayland.c | 5 ++++- src/core.c | 8 ++++++++ src/draw.c | 31 +++++++++++++++++++++++++++++-- src/text/text.c | 28 ++++++++++++++++++++++------ 7 files changed, 91 insertions(+), 20 deletions(-) diff --git a/examples/basic/example.c b/examples/basic/example.c index 9facecb21..8fe38da78 100644 --- a/examples/basic/example.c +++ b/examples/basic/example.c @@ -1,6 +1,6 @@ #include -MwWidget window, menu, button, button2, button3, button4, button5, button6; +MwWidget window, menu, button, button2, button3, button4, button5, button6, button7; void MWAPI handler(MwWidget handle, void* user_data, void* call_data) { (void)handle; @@ -51,24 +51,29 @@ void MWAPI resize(MwWidget handle, void* user_data, void* call_data) { MwVaApply(button, MwNy, 50 + mh, - MwNwidth, (w - 50 * 2) / 3, + MwNwidth, (w - 50 * 2) / 4, MwNheight, h - 125 - 50 * 3, NULL); MwVaApply(button2, - MwNx, 50 + (w - 50 * 2) / 3, + MwNx, 50 + (w - 50 * 2) / 4, MwNy, 50 + mh, - MwNwidth, (w - 50 * 2) / 3, + MwNwidth, (w - 50 * 2) / 4, MwNheight, h - 125 - 50 * 3, NULL); MwVaApply(button3, - MwNx, 50 + (w - 50 * 2) / 3 * 2, + MwNx, 50 + (w - 50 * 2) / 4 * 2, MwNy, 50 + mh, - MwNwidth, (w - 50 * 2) / 3, + MwNwidth, (w - 50 * 2) / 4, + MwNheight, h - 125 - 50 * 3, + NULL); + MwVaApply(button7, + MwNx, 50 + (w - 50 * 2) / 4 * 3, + MwNy, 50 + mh, + MwNwidth, (w - 50 * 2) / 4, MwNheight, h - 125 - 50 * 3, NULL); - MwVaApply(button4, MwNx, 50 + (w - 50 * 2) / 3 * 0, MwNy, h - 50 - 125 + mh, @@ -121,6 +126,10 @@ int main() { MwNbackground, "#66f", MwNforeground, "#000", NULL); + button7 = MwVaCreateWidget(MwButtonClass, "button", window, 250, 50, 100, 125, + MwNtext, "disabled", + MwNdisabled, 1, + NULL); MwAddUserHandler(window, MwNresizeHandler, resize, NULL); MwAddUserHandler(button, MwNactivateHandler, handler_theme, NULL); diff --git a/examples/basic/periodic.c b/examples/basic/periodic.c index 069395fac..92dab70a3 100644 --- a/examples/basic/periodic.c +++ b/examples/basic/periodic.c @@ -202,9 +202,16 @@ int main() { MwNcolumns, 5, NULL); - f = frame("Button", -PaddingContent, -PaddingContent, MwButtonClass, - MwNtext, "Press me", + f = frame("Button", -PaddingContent, -PaddingContent, MwBoxClass, + MwNorientation, MwVERTICAL, NULL); + b = MwVaCreateWidget(MwButtonClass, "btn", child(f), 0, 0, 0, 0, + MwNtext, "Press me", + NULL); + b = MwVaCreateWidget(MwButtonClass, "btn_disabled", child(f), 0, 0, 0, 0, + MwNtext, "Cannot press me", + MwNdisabled, 1, + NULL); MwVaCreateWidget(MwLabelClass, "label", table, 0, 0, 0, 0, MwNbold, 1, @@ -221,11 +228,11 @@ int main() { MwNorientation, MwVERTICAL, MwNfixedSize, 16, NULL); - for(j = 0; j < 5; j++) MwCreateWidget(i == 0 ? MwCheckBoxClass : MwRadioBoxClass, i == 0 ? "cb" : "rb", b, 0, 0, 0, 0); + for(j = 0; j < 6; j++) MwVaCreateWidget(i == 0 ? MwCheckBoxClass : MwRadioBoxClass, i == 0 ? "cb" : "rb", b, 0, 0, 0, 0, MwNdisabled, (j == 5) ? 1 : 0, NULL); b = MwVaCreateWidget(MwBoxClass, "table1", w, 0, 0, 0, 0, MwNorientation, MwVERTICAL, NULL); - for(j = 0; j < 5; j++) { + for(j = 0; j < 6; j++) { char buf[32]; sprintf(buf, "%sBox %d", i == 0 ? "Check" : "Radio", j + 1); MwVaCreateWidget(MwLabelClass, "label", b, 0, 0, 0, 0, diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index 3a019e03f..b95fe9303 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -52,6 +52,7 @@ #define MwNcolumns "Icolumns" #define MwNcolumnSpan "IcolumnSpan" #define MwNrowSpan "IrowSpan" +#define MwNdisabled "Idisabled" #define MwNtitle "Stitle" #define MwNtext "Stext" diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 73a51cfa7..89f00f1e5 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -1652,8 +1652,11 @@ static void MwLLEndStateChangeImpl(MwLL handle) { } static void MwLLSetDarkThemeImpl(MwLL handle, int toggle) { - (void)handle; (void)toggle; + + /* Not Really what's supposed to happen with this function, but take this opprutunity to do the handlers that will force everything to redraw. */ + MwLLDispatch(handle, resize, NULL); + MwLLDispatch(handle, draw, NULL); } static MwBool MwLLDoModernImpl(MwLL handle) { diff --git a/src/core.c b/src/core.c index c08195067..99b8d8bef 100644 --- a/src/core.c +++ b/src/core.c @@ -57,6 +57,7 @@ static void lldrawhandler(MwLL handle, void* data) { static void lluphandler(MwLL handle, void* data) { MwWidget h = (MwWidget)handle->common.user; MwMouse* p = data; + if(MwGetInteger(h, MwNdisabled) == 1) return; if(p->button == MwMOUSE_LEFT) h->pressed = 0; h->mouse_point.x = p->point.x; @@ -70,6 +71,7 @@ static void lluphandler(MwLL handle, void* data) { static void lldownhandler(MwLL handle, void* data) { MwWidget h = (MwWidget)handle->common.user; MwMouse* p = data; + if(MwGetInteger(h, MwNdisabled) == 1) return; if(p->button == MwMOUSE_LEFT) h->pressed = 1; h->mouse_point.x = p->point.x; @@ -124,6 +126,7 @@ static void llmovehandler(MwLL handle, void* data) { static void llkeyhandler(MwLL handle, void* data) { MwWidget h = (MwWidget)handle->common.user; int key = *(int*)data; + if(MwGetInteger(h, MwNdisabled) == 1) return; MwDispatch3(h, key, key); MwDispatchUserHandler(h, MwNkeyHandler, data); @@ -131,24 +134,28 @@ static void llkeyhandler(MwLL handle, void* data) { static void llkeyrelhandler(MwLL handle, void* data) { MwWidget h = (MwWidget)handle->common.user; + if(MwGetInteger(h, MwNdisabled) == 1) return; MwDispatchUserHandler(h, MwNkeyReleaseHandler, data); } static void llfocusinhandler(MwLL handle, void* data) { MwWidget h = (MwWidget)handle->common.user; + if(MwGetInteger(h, MwNdisabled) == 1) return; MwDispatchUserHandler(h, MwNfocusInHandler, data); } static void llfocusouthandler(MwLL handle, void* data) { MwWidget h = (MwWidget)handle->common.user; + if(MwGetInteger(h, MwNdisabled) == 1) return; MwDispatchUserHandler(h, MwNfocusOutHandler, data); } static void llclipboardhandler(MwLL handle, void* data) { MwWidget h = (MwWidget)handle->common.user; + if(MwGetInteger(h, MwNdisabled) == 1) return; MwDispatch3(h, clipboard, data); MwDispatchUserHandler(h, MwNclipboardHandler, data); @@ -691,6 +698,7 @@ int MwGetInteger(MwWidget handle, const char* key) { #endif if(strcmp(key, MwNdarkTheme) == 0) return inherit_integer(handle, key, 0); if(strcmp(key, MwNuseMonospace) == 0) return inherit_integer(handle, key, 0); + if(strcmp(key, MwNdisabled) == 0) return inherit_integer(handle, key, 0); } return shget(handle->integer, key); } diff --git a/src/draw.c b/src/draw.c index 4d419bc54..4f872cc6f 100644 --- a/src/draw.c +++ b/src/draw.c @@ -38,6 +38,18 @@ static int hex(const char* txt, int len) { return r; } +static void color_set_disabled_if_disabled(MwWidget handle, MwLLColor rgb) { + if(MwGetInteger(handle, MwNdisabled) == 1) { + MwLLColor c = handle->parent == NULL ? NULL : MwParseColor(handle->parent, MwGetText(handle->parent, MwNbackground)); + + if(c != NULL) { + rgb->common.red = rgb->common.red + (c->common.red - rgb->common.red) * 0.5; + rgb->common.green = rgb->common.green + (c->common.green - rgb->common.green) * 0.5; + rgb->common.blue = rgb->common.blue + (c->common.blue - rgb->common.blue) * 0.5; + } + } +}; + void MwParseColorNoAllocate(const char* text, MwRGB* rgb) { if(text[0] == '#' && strlen(text) == 4) { rgb->red = hex(text + 1, 1); @@ -125,6 +137,7 @@ void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color) { for(y = 0; y < rect->height; y++) { MwLLColor col = MwLightenColor(handle, color, -darken, -darken, -darken); int idx = y * 4; + color_set_disabled_if_disabled(handle, col); data[idx] = col->common.red; data[idx + 1] = col->common.green; data[idx + 2] = col->common.blue; @@ -204,6 +217,8 @@ void MwDrawWidgetBack(MwWidget handle, MwRect* rect, MwLLColor color, int invert if(rect->width <= 0 || rect->height <= 0) return; col = invert ? MwLightenColor(handle, color, -8, -8, -8) : color; + color_set_disabled_if_disabled(handle, col); + if(MwGetInteger(handle, MwNmodernLook)) { MwDrawRectFading(handle, rect, col); } else { @@ -219,6 +234,9 @@ void MwDrawDiamond(MwWidget handle, MwRect* rect, MwLLColor color, int invert) { MwLLColor darker = MwLightenColor(handle, color, -ColorDiff, -ColorDiff, -ColorDiff); MwLLColor lighter = MwLightenColor(handle, color, ColorDiff, ColorDiff, ColorDiff); MwLLColor col = invert ? MwLightenColor(handle, color, -8, -8, -8) : color; + color_set_disabled_if_disabled(handle, col); + color_set_disabled_if_disabled(handle, darker); + color_set_disabled_if_disabled(handle, lighter); p[0].x = rect->x; p[0].y = rect->y + rect->height / 2; @@ -284,8 +302,11 @@ static void MwDrawFrameEx_simple(MwWidget handle, MwRect* rect, MwLLColor color, int ColorDiff = get_color_diff(handle); MwLLColor darker = MwLightenColor(handle, color, -ColorDiff * 3 / 2 + diff, -ColorDiff * 3 / 2 + diff, -ColorDiff * 3 / 2 + diff); MwLLColor lighter = same ? MwLightenColor(handle, darker, 0, 0, 0) : MwLightenColor(handle, color, ColorDiff - diff, ColorDiff - diff, ColorDiff - diff); - p[0].x = rect->x; - p[0].y = rect->y; + color_set_disabled_if_disabled(handle, darker); + color_set_disabled_if_disabled(handle, lighter); + + p[0].x = rect->x; + p[0].y = rect->y; p[1].x = rect->x + rect->width; p[1].y = rect->y; @@ -380,6 +401,9 @@ static void MwDrawFrameEx_complex(MwWidget handle, MwRect* rect, MwLLColor color MwLLColor lighter = same ? MwLightenColor(handle, darker, 0, 0, 0) : MwLightenColor(handle, color, (ColorDiff / 2) - diff, (ColorDiff / 2) - diff, (ColorDiff / 2) - diff); MwRect r = *rect; + color_set_disabled_if_disabled(handle, darker); + color_set_disabled_if_disabled(handle, lighter); + frame_border_complex(handle, rect, lighter, darker, invert, border == 1 ? 1 : (border / 2), diff, same); if(border > 1) { @@ -416,6 +440,9 @@ void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int invert, MwLLColor darker = MwLightenColor(handle, color, -ColorDiff, -ColorDiff, -ColorDiff); MwLLColor lighter = MwLightenColor(handle, color, ColorDiff, ColorDiff, ColorDiff); MwLLColor col = invert ? MwLightenColor(handle, color, -8, -8, -8) : color; + color_set_disabled_if_disabled(handle, col); + color_set_disabled_if_disabled(handle, darker); + color_set_disabled_if_disabled(handle, lighter); double deg = 30 * ((direction == MwEAST || direction == MwWEST) ? 2 : 1); double c = cos(deg / 180 * M_PI); diff --git a/src/text/text.c b/src/text/text.c index f2d83a286..b6297e301 100644 --- a/src/text/text.c +++ b/src/text/text.c @@ -76,10 +76,22 @@ static MwFLFont assume_ttf(MwWidget handle, MwFLFont ttf) { #endif void MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, int align, MwLLColor color) { - MwPoint p = *point; - char* input = (char*)text; - char* last = input; - int cp; + MwPoint p = *point; + char* input = (char*)text; + char* last = input; + int cp; + MwLLColor fadedColor = NULL; + + if(MwGetInteger(handle, MwNdisabled) == 1) { + MwLLColor c = handle->parent == NULL ? NULL : MwParseColor(handle->parent, MwGetText(handle->parent, MwNbackground)); + + if(c != NULL) { + fadedColor = MwLLAllocColor(handle->lowlevel, color->common.red, color->common.blue, color->common.green); + fadedColor->common.red = fadedColor->common.red + (c->common.red - fadedColor->common.red) * 0.5; + fadedColor->common.green = fadedColor->common.green + (c->common.green - fadedColor->common.green) * 0.5; + fadedColor->common.blue = fadedColor->common.blue + (c->common.blue - fadedColor->common.blue) * 0.5; + } + } #ifdef TTF if(ttf <= MwFLBuildFont(0xff) && !is_bitmap(handle, ttf)) ttf = assume_ttf(handle, ttf); @@ -122,9 +134,9 @@ void MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, #ifdef TTF if(MwFLDrawText) - if(is_bitmap(handle, ttf) || ttf == NULL || MwFLDrawText(handle, ttf, &p, line, color)) + if(is_bitmap(handle, ttf) || ttf == NULL || MwFLDrawText(handle, ttf, &p, line, fadedColor ? fadedColor : color)) #endif - bitmap_MwDrawText(handle, &p, line, is_bold(handle, ttf), color); + bitmap_MwDrawText(handle, &p, line, is_bold(handle, ttf), fadedColor ? fadedColor : color); p.y += MwTextHeight(handle, ttf, line); @@ -133,6 +145,10 @@ void MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, last = input; } } + + if(fadedColor) { + MwLLFreeColor(fadedColor); + } } int MwTextWidth(MwWidget handle, MwFLFont ttf, const char* text) { From 143167761c2ef09503eb7a275bc9fe1ca43adaeb Mon Sep 17 00:00:00 2001 From: Nishi Date: Sat, 23 May 2026 03:42:23 +0900 Subject: [PATCH 738/836] fix warning --- src/widget/tab.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/widget/tab.c b/src/widget/tab.c index f8eda14b6..e5d2a3eae 100644 --- a/src/widget/tab.c +++ b/src/widget/tab.c @@ -313,7 +313,6 @@ static void resize(MwWidget handle) { static void children_update(MwWidget handle, MwWidget child, int new_child) { MwTab t = handle->internal; int v = MwGetInteger(handle, MwNvalue); - int c = v; int n; int i; @@ -345,6 +344,8 @@ static void children_update(MwWidget handle, MwWidget child, int new_child) { } static void children_prop_change(MwWidget handle, MwWidget child, const char* key) { + (void)child; + if(strcmp(key, MwNiconPixmap) == 0) { MwForceRender(handle); } From 732b47a300c371f5d57100dfc32827b940ec5617 Mon Sep 17 00:00:00 2001 From: Nishi Date: Sat, 23 May 2026 03:47:09 +0900 Subject: [PATCH 739/836] fix --- src/widget/listbox.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/widget/listbox.c b/src/widget/listbox.c index 72fa74391..bc82f0882 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -400,8 +400,8 @@ static void draw(MwWidget handle) { } static void prop_change(MwWidget handle, const char* prop) { - if(strcmp(prop, MwNleftPadding) == 0) { - MwListBox lb = handle->internal; + MwListBox lb = handle->internal; + if(strcmp(prop, MwNleftPadding) == 0 && lb->frame != NULL) { MwForceRender(lb->frame); } if(strcmp(prop, MwNhasHeading) == 0) { From f7df6df342f5e8848b6fe5a1373319d4f5e3ebb0 Mon Sep 17 00:00:00 2001 From: Nishi Date: Sat, 23 May 2026 03:49:47 +0900 Subject: [PATCH 740/836] better fix --- src/core.c | 9 ++++++--- src/widget/listbox.c | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/core.c b/src/core.c index 99b8d8bef..5ae133a5b 100644 --- a/src/core.c +++ b/src/core.c @@ -576,10 +576,11 @@ void MwSetInteger(MwWidget handle, const char* key, int n) { arrput(keys, NULL); MwDispatch3(handle, props_change, keys); arrfree(keys); + + MwDispatch3(handle, prop_change, key); } if(handle->parent != NULL && handle->parent->prop_event) { - MwDispatch3(handle, prop_change, key); if(handle->parent != NULL) MwDispatch4(handle->parent, children_prop_change, handle, key); } @@ -624,10 +625,11 @@ void MwSetText(MwWidget handle, const char* key, const char* value) { arrput(keys, NULL); MwDispatch3(handle, props_change, keys); arrfree(keys); + + MwDispatch3(handle, prop_change, key); } if(handle->parent != NULL && handle->parent->prop_event) { - MwDispatch3(handle, prop_change, key); if(handle->parent != NULL) MwDispatch4(handle->parent, children_prop_change, handle, key); } @@ -655,10 +657,11 @@ void MwSetVoid(MwWidget handle, const char* key, void* value) { arrput(keys, NULL); MwDispatch3(handle, props_change, keys); arrfree(keys); + + MwDispatch3(handle, prop_change, key); } if(handle->parent != NULL && handle->parent->prop_event) { - MwDispatch3(handle, prop_change, key); if(handle->parent != NULL) MwDispatch4(handle->parent, children_prop_change, handle, key); } } diff --git a/src/widget/listbox.c b/src/widget/listbox.c index bc82f0882..32be8875b 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -401,7 +401,7 @@ static void draw(MwWidget handle) { static void prop_change(MwWidget handle, const char* prop) { MwListBox lb = handle->internal; - if(strcmp(prop, MwNleftPadding) == 0 && lb->frame != NULL) { + if(strcmp(prop, MwNleftPadding) == 0) { MwForceRender(lb->frame); } if(strcmp(prop, MwNhasHeading) == 0) { From 3dac44ed92d7a53e10f72ad74431b28d6bcd7394 Mon Sep 17 00:00:00 2001 From: Nishi Date: Sat, 23 May 2026 03:53:13 +0900 Subject: [PATCH 741/836] use proper method --- src/draw.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/draw.c b/src/draw.c index 4f872cc6f..fe51e03b4 100644 --- a/src/draw.c +++ b/src/draw.c @@ -46,6 +46,7 @@ static void color_set_disabled_if_disabled(MwWidget handle, MwLLColor rgb) { rgb->common.red = rgb->common.red + (c->common.red - rgb->common.red) * 0.5; rgb->common.green = rgb->common.green + (c->common.green - rgb->common.green) * 0.5; rgb->common.blue = rgb->common.blue + (c->common.blue - rgb->common.blue) * 0.5; + MwLLColorUpdate(handle->lowlevel, rgb, rgb->common.red, rgb->common.green, rgb->common.blue); } } }; @@ -440,14 +441,14 @@ void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int invert, MwLLColor darker = MwLightenColor(handle, color, -ColorDiff, -ColorDiff, -ColorDiff); MwLLColor lighter = MwLightenColor(handle, color, ColorDiff, ColorDiff, ColorDiff); MwLLColor col = invert ? MwLightenColor(handle, color, -8, -8, -8) : color; - color_set_disabled_if_disabled(handle, col); - color_set_disabled_if_disabled(handle, darker); - color_set_disabled_if_disabled(handle, lighter); - double deg = 30 * ((direction == MwEAST || direction == MwWEST) ? 2 : 1); double c = cos(deg / 180 * M_PI); double s = sin(deg / 180 * M_PI); + color_set_disabled_if_disabled(handle, col); + color_set_disabled_if_disabled(handle, darker); + color_set_disabled_if_disabled(handle, lighter); + if(direction == MwNORTH) { p1[0].x = rect->x + rect->width / 2; p1[0].y = rect->y; From add02b695bb631344742c3752719e3fdc5c6ef7a Mon Sep 17 00:00:00 2001 From: Nishi Date: Sat, 23 May 2026 06:14:37 +0900 Subject: [PATCH 742/836] make label respect alignment --- src/widget/label.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/widget/label.c b/src/widget/label.c index 81b04988a..5a165e7ce 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -336,6 +336,7 @@ static void draw_normal(MwWidget handle) { r.width -= MwGetInteger(handle, MwNleftPadding); +#if 0 if(align == MwALIGNMENT_CENTER) { p.x = r.width / 2; } else if(align == MwALIGNMENT_BEGINNING) { @@ -343,17 +344,20 @@ static void draw_normal(MwWidget handle) { } else if(align == MwALIGNMENT_END) { p.x = r.width - MwTextWidth(handle, NULL, str) / 2; } +#else + p.x = 0; +#endif p.y = r.height / 2; p.x += MwGetInteger(handle, MwNleftPadding); p.x += 1; p.y += 1; - MwDrawText(handle, NULL, &p, str, MwALIGNMENT_CENTER, shadow); + MwDrawText(handle, NULL, &p, str, MwALIGNMENT_BEGINNING, shadow); p.x -= 1; p.y -= 1; - MwDrawText(handle, NULL, &p, str, MwALIGNMENT_CENTER, text); + MwDrawText(handle, NULL, &p, str, MwALIGNMENT_BEGINNING, text); MwLLFreeColor(shadow); MwLLFreeColor(text); From 314cc0da859e7bf4539e499d9143ebb03c8a4d46 Mon Sep 17 00:00:00 2001 From: Nishi Date: Sat, 23 May 2026 06:15:20 +0900 Subject: [PATCH 743/836] format --- src/core.c | 4 ++-- src/draw.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/core.c b/src/core.c index 5ae133a5b..59984a569 100644 --- a/src/core.c +++ b/src/core.c @@ -576,7 +576,7 @@ void MwSetInteger(MwWidget handle, const char* key, int n) { arrput(keys, NULL); MwDispatch3(handle, props_change, keys); arrfree(keys); - + MwDispatch3(handle, prop_change, key); } @@ -625,7 +625,7 @@ void MwSetText(MwWidget handle, const char* key, const char* value) { arrput(keys, NULL); MwDispatch3(handle, props_change, keys); arrfree(keys); - + MwDispatch3(handle, prop_change, key); } diff --git a/src/draw.c b/src/draw.c index fe51e03b4..d8cadad0b 100644 --- a/src/draw.c +++ b/src/draw.c @@ -441,9 +441,9 @@ void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int invert, MwLLColor darker = MwLightenColor(handle, color, -ColorDiff, -ColorDiff, -ColorDiff); MwLLColor lighter = MwLightenColor(handle, color, ColorDiff, ColorDiff, ColorDiff); MwLLColor col = invert ? MwLightenColor(handle, color, -8, -8, -8) : color; - double deg = 30 * ((direction == MwEAST || direction == MwWEST) ? 2 : 1); - double c = cos(deg / 180 * M_PI); - double s = sin(deg / 180 * M_PI); + double deg = 30 * ((direction == MwEAST || direction == MwWEST) ? 2 : 1); + double c = cos(deg / 180 * M_PI); + double s = sin(deg / 180 * M_PI); color_set_disabled_if_disabled(handle, col); color_set_disabled_if_disabled(handle, darker); From 6ecbe998f8adf67f7700197df5ceb91e48742135 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sat, 23 May 2026 23:32:14 -0700 Subject: [PATCH 744/836] fix wayland csd --- src/backend/wayland/interfaces.c | 24 ++++++++++++++++-------- src/backend/wayland/wayland.c | 12 ++++++------ 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/backend/wayland/interfaces.c b/src/backend/wayland/interfaces.c index 5325096b5..3b482f173 100644 --- a/src/backend/wayland/interfaces.c +++ b/src/backend/wayland/interfaces.c @@ -425,9 +425,11 @@ static void pointer_leave(void* data, struct wl_pointer* wl_pointer, MwU32 seria WAYLAND_EVENT_OP_END(self); }; -static void xdg_borderless_step(MwLL self, MwMouse p, MwU32 serial) { +static void xdg_borderless_step_mdown(MwLL self, MwMouse p, MwU32 serial) { if(self->wayland.type == MwLL_WAYLAND_TOPLEVEL && self->wayland.backbuffer.surface == curSurface) { - if(p.point.y >= (self->wayland.wh + CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM) - 5) { + if(p.point.y <= CSD_BORDER_FRAME_TOP) { + xdg_toplevel_move(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial); + } else if(p.point.y >= (self->wayland.wh + CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM) - 5) { if(p.point.x >= (self->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT) - 5) { xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_BOTTOM_RIGHT); } else { @@ -443,12 +445,15 @@ static void xdg_borderless_step(MwLL self, MwMouse p, MwU32 serial) { xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_RIGHT); } else if(p.point.x <= 5) { xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_LEFT); - } else if(p.point.y <= CSD_BORDER_FRAME_TOP) { + } + }; +} +static void xdg_borderless_step_mup(MwLL self, MwMouse p, MwU32 serial) { + if(self->wayland.type == MwLL_WAYLAND_TOPLEVEL && self->wayland.backbuffer.surface == curSurface) { + if(p.point.y <= CSD_BORDER_FRAME_TOP) { if(p.point.x >= CSD_BORDER_FRAME_LEFT && p.point.x <= CSD_BORDER_FRAME_LEFT + 18) { MwLLDispatch(self, close, NULL); } else if(p.point.x >= (self->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT) - 21) { - xdg_toplevel_set_minimized(self->wayland.toplevel->xdg_top_level); - } else if(p.point.x >= (self->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT) - 38) { self->wayland.toplevel->maxim_state = !self->wayland.toplevel->maxim_state; if(self->wayland.toplevel->maxim_state == 0) { xdg_toplevel_unset_maximized(self->wayland.toplevel->xdg_top_level); @@ -457,8 +462,8 @@ static void xdg_borderless_step(MwLL self, MwMouse p, MwU32 serial) { } self->wayland.setting_wh = 1; MwLLWaylandRegionSetup(self); - } else { - xdg_toplevel_move(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial); + } else if(p.point.x >= (self->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT) - 38) { + xdg_toplevel_set_minimized(self->wayland.toplevel->xdg_top_level); } } }; @@ -606,7 +611,10 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri } if(!self->wayland.has_decorations) { - xdg_borderless_step(self, p, serial); + if(state != WL_POINTER_BUTTON_STATE_RELEASED) + xdg_borderless_step_mdown(self, p, serial); + else + xdg_borderless_step_mup(self, p, serial); } WAYLAND_EVENT_OP_END(self); diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 89f00f1e5..99ce624c2 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -176,12 +176,12 @@ static void xdg_toplevel_configure(void* data, MwLLWaylandRegionInvalidate(self); self->wayland.ww = width; self->wayland.wh = height; - if(self->wayland.type == MwLL_WAYLAND_TOPLEVEL) { - if(!self->wayland.has_decorations && self->wayland.toplevel->maxim_state) { - self->wayland.ww -= CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT; - self->wayland.wh -= CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM; - } - } + // if(self->wayland.type == MwLL_WAYLAND_TOPLEVEL) { + // if(!self->wayland.has_decorations && self->wayland.toplevel->maxim_state) { + // self->wayland.ww -= CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT; + // self->wayland.wh -= CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM; + // } + // } if(self->wayland.resizing == 0) { xdg_surface_set_window_geometry(self->wayland.toplevel->xdg_surface, 0, 0, self->wayland.ww, self->wayland.wh); From 3727c9f587e107882d1f8905e96c8a67dd26e6c3 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sat, 23 May 2026 23:34:38 -0700 Subject: [PATCH 745/836] fix wayland csd --- src/backend/wayland/interfaces.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/backend/wayland/interfaces.c b/src/backend/wayland/interfaces.c index 3b482f173..dfc1988f1 100644 --- a/src/backend/wayland/interfaces.c +++ b/src/backend/wayland/interfaces.c @@ -427,9 +427,7 @@ static void pointer_leave(void* data, struct wl_pointer* wl_pointer, MwU32 seria static void xdg_borderless_step_mdown(MwLL self, MwMouse p, MwU32 serial) { if(self->wayland.type == MwLL_WAYLAND_TOPLEVEL && self->wayland.backbuffer.surface == curSurface) { - if(p.point.y <= CSD_BORDER_FRAME_TOP) { - xdg_toplevel_move(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial); - } else if(p.point.y >= (self->wayland.wh + CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM) - 5) { + if(p.point.y >= (self->wayland.wh + CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM) - 5) { if(p.point.x >= (self->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT) - 5) { xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_BOTTOM_RIGHT); } else { @@ -445,6 +443,13 @@ static void xdg_borderless_step_mdown(MwLL self, MwMouse p, MwU32 serial) { xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_RIGHT); } else if(p.point.x <= 5) { xdg_toplevel_resize(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial, XDG_TOPLEVEL_RESIZE_EDGE_LEFT); + } else if(p.point.y <= CSD_BORDER_FRAME_TOP) { + if(p.point.x >= CSD_BORDER_FRAME_LEFT && p.point.x <= CSD_BORDER_FRAME_LEFT + 18) { + } else if(p.point.x >= (self->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT) - 21) { + } else if(p.point.x >= (self->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT) - 38) { + } else { + xdg_toplevel_move(self->wayland.toplevel->xdg_top_level, self->wayland.pointer_seat, serial); + } } }; } From fcca66d1e427cb97c1eafa856ec65f318340db7f Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 24 May 2026 14:13:02 -0700 Subject: [PATCH 746/836] cmake builds shouldn't be linking to libraries that we dynload --- CMakeLists.txt | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ac7f7a7e5..7663578c3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -130,7 +130,7 @@ endif() if(MW_USE_FREETYPE2) find_package(Freetype) if(Freetype_FOUND) - message(STATUS "FreeType2 found") + message(STATUS "FreeType2 found") target_compile_definitions( Mw PRIVATE @@ -139,9 +139,8 @@ if(MW_USE_FREETYPE2) list(APPEND INCLUDE_DIRS ${FREETYPE_INCLUDE_DIRS}) list(APPEND LIBRARY_DIRS ${FREETYPE_LIBRARY_DIRS}) - list(APPEND LIBRARIES ${FREETYPE_LIBRARIES}) else() - message(WARNING "FreeType2 not found") + message(WARNING "FreeType2 not found") endif() endif() @@ -341,7 +340,6 @@ else() if(${X11_FOUND}) list(APPEND INCLUDE_DIRS ${X11_INCLUDE_DIRS}) list(APPEND LIBRARY_DIRS ${X11_LIBRARY_DIRS}) - list(APPEND LIBRARIES ${X11_LIBRARIES} m) target_compile_definitions( Mw PRIVATE @@ -351,7 +349,6 @@ else() if(${X11_Xrender_FOUND}) list(APPEND INCLUDE_DIRS ${XRENDER_INCLUDE_DIRS}) list(APPEND LIBRARY_DIRS ${XRENDER_LIBRARY_DIRS}) - list(APPEND LIBRARIES ${XRENDER_LIBRARIES} m) target_compile_definitions( Mw PRIVATE @@ -369,7 +366,6 @@ find_package(DBus1) if(${DBus1_FOUND}) list(APPEND INCLUDE_DIRS ${DBUS_INCLUDE_DIRS}) list(APPEND LIBRARY_DIRS ${DBUS_LIBRARY_DIRS}) - list(APPEND LIBRARIES ${DBUS_LIBRARIES}) target_compile_definitions( Mw PRIVATE From 3c1bd9956fec0d9e4675fe5fd5b60be4a46d2343 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 24 May 2026 22:18:29 -0700 Subject: [PATCH 747/836] wayland: 'focused' widgets should also have key events sent --- include/Mw/LowLevel/Wayland.h | 1 + src/backend/wayland/interfaces.c | 13 +++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index acbb95a2e..7d923d1d2 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -537,6 +537,7 @@ struct _MwLLWayland { MwU32 ww, wh; /* Window position */ MwPoint cur_mouse_pos; /* Currently known mouse position */ MwLL currentlyHeldWidget; + MwLL focusedWidget; int resizing; int setting_wh; diff --git a/src/backend/wayland/interfaces.c b/src/backend/wayland/interfaces.c index dfc1988f1..e6d6bd1cd 100644 --- a/src/backend/wayland/interfaces.c +++ b/src/backend/wayland/interfaces.c @@ -600,6 +600,9 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri switch(state) { case WL_POINTER_BUTTON_STATE_PRESSED: + if(button == BTN_LEFT) { + topmost_parent->wayland.focusedWidget = self; + } MwLLDispatch(self, down, &p); topmost_parent->wayland.currentlyHeldWidget = self; @@ -718,13 +721,16 @@ static void keyboard_key(void* data, MwU32 time, MwU32 key, MwU32 state) { - MwLL self = data; - MwBool inArea = 0; + MwLL self = data; + MwBool inArea = 0; + MwLL topmost_parent = self; (void)wl_keyboard; (void)serial; (void)time; + while(topmost_parent->wayland.parent) topmost_parent = topmost_parent->wayland.parent; + WAYLAND_EVENT_OP_START(self); if(self->wayland.framebuffer.surface) { @@ -734,6 +740,9 @@ static void keyboard_key(void* data, if(self->wayland.backbuffer.surface) { inArea |= self->wayland.backbuffer.surface == curSurface; } + + inArea |= (self == topmost_parent->wayland.focusedWidget); + if(inArea) { xkb_layout_index_t layout; MwU32 levels; From e8a4e266b3ab9f0fea8318885894c49b8d8464f3 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 24 May 2026 22:51:10 -0700 Subject: [PATCH 748/836] wayland: do keyboard repeat --- include/Mw/LowLevel/Wayland.h | 10 ++++- src/backend/wayland/interfaces.c | 63 +++++++++++++++++++++----------- src/backend/wayland/wayland.c | 16 ++++++++ 3 files changed, 66 insertions(+), 23 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 7d923d1d2..212eef997 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -346,7 +346,7 @@ typedef struct wayland_protocol { void* context; } wayland_protocol_t; -typedef wayland_protocol_t*(wl_setup_func)(MwU32, struct _MwLLWayland*); +typedef wayland_protocol_t*(wl_setup_func)(MwU32, struct _MwLLWayland*, MwU32 version); typedef void(wl_destroy_func)(struct _MwLLWayland* wayland, wayland_protocol_t* data); typedef struct wayland_protocol_callback_table { @@ -567,6 +567,14 @@ struct _MwLLWayland { MwBool moving; + MwI64 keyboard_rate; + MwI32 keyboard_delay; + int last_pressed_key; + MwBool holding_key; + MwU64 next_elapsed; + struct timespec start_time; + struct timespec end_time; + cairo_surface_t* front_cs; cairo_surface_t* back_cs; cairo_t* front_cairo; diff --git a/src/backend/wayland/interfaces.c b/src/backend/wayland/interfaces.c index e6d6bd1cd..607ce8230 100644 --- a/src/backend/wayland/interfaces.c +++ b/src/backend/wayland/interfaces.c @@ -42,7 +42,7 @@ static void new_protocol(void* data, struct wl_registry* registry, wayland_protocol_callback_table_t* cb = shget(self->wayland.wl_protocol_setup_map, interface); if(cb != NULL) { - shput(self->wayland.wl_protocol_map, interface, cb->setup(name, data)); + shput(self->wayland.wl_protocol_map, interface, cb->setup(name, data, version)); /* we don't care for adding this protocol, we just use it to know if the compositor will let us have transparent surfaces */ } else if(strcmp(interface, "wp_alpha_modifier_v1") == 0) { self->common.supports_transparency = MwTRUE; @@ -313,7 +313,7 @@ struct zwp_primary_selection_source_v1_listener zwp_primary_selection_source_v1_ }; /* wl_data_device_manager setup function */ -static wayland_protocol_t* wl_data_device_manager_setup(MwU32 name, struct _MwLLWayland* wayland) { +static wayland_protocol_t* wl_data_device_manager_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { wayland->clipboard_manager.wl = wl_registry_bind(wayland->registry, name, &wl_data_device_manager_interface, 2); wayland->clipboard_source.wl = wl_data_device_manager_create_data_source(wayland->clipboard_manager.wl); @@ -346,7 +346,7 @@ static void wl_data_device_manager_interface_destroy(struct _MwLLWayland* waylan } /* zwp_primary_selection_device_manager_v1 setup function */ -static wayland_protocol_t* zwp_primary_selection_device_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { +static wayland_protocol_t* zwp_primary_selection_device_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { wayland->clipboard_manager.zwp = wl_registry_bind(wayland->registry, name, &zwp_primary_selection_device_manager_v1_interface, 1); wayland->clipboard_source.zwp = zwp_primary_selection_device_manager_v1_create_source(wayland->clipboard_manager.zwp); @@ -374,7 +374,7 @@ static void zwp_primary_selection_device_manager_v1_interface_destroy(struct _Mw } /* zwp_primary_selection_device_manager_v1 setup function */ -static wayland_protocol_t* zwp_pointer_constraints_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { +static wayland_protocol_t* zwp_pointer_constraints_v1_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { wayland->pointer_constraints = wl_registry_bind(wayland->registry, name, &zwp_pointer_constraints_v1_interface, 1); return NULL; } @@ -507,7 +507,7 @@ struct zwp_relative_pointer_v1_listener MwLLWaylandRelativePointerListener = relative_pointer_motion}; /* zwp_primary_selection_device_manager_v1 setup function */ -static wayland_protocol_t* zwp_relative_pointer_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { +static wayland_protocol_t* zwp_relative_pointer_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { wayland->relative_pointer_manager = wl_registry_bind(wayland->registry, name, &zwp_relative_pointer_manager_v1_interface, 1); return NULL; } @@ -718,7 +718,7 @@ static void keyboard_leave(void* data, static void keyboard_key(void* data, struct wl_keyboard* wl_keyboard, MwU32 serial, - MwU32 time, + MwU32 _time, MwU32 key, MwU32 state) { MwLL self = data; @@ -727,7 +727,7 @@ static void keyboard_key(void* data, (void)wl_keyboard; (void)serial; - (void)time; + (void)_time; while(topmost_parent->wayland.parent) topmost_parent = topmost_parent->wayland.parent; @@ -832,9 +832,14 @@ static void keyboard_key(void* data, MwLLDispatch(topmost_parent, key, &key); topmost_parent = topmost_parent->wayland.parent; } + self->wayland.holding_key = MwTRUE; + self->wayland.last_pressed_key = key; } else { MwLLDispatch(self, key_released, &key); + self->wayland.holding_key = MwFALSE; } + clock_gettime(CLOCK_REALTIME, &self->wayland.start_time); + self->wayland.next_elapsed = self->wayland.keyboard_delay; } } } @@ -889,12 +894,25 @@ static void setup_clipboard(MwLL self, struct wl_seat* wl_seat) { arrpush(self->wayland.clipboard_devices_wl, device_ctx_wl); }; +static void keyboard_repeat_info(void* data, + struct wl_keyboard* wl_keyboard, + int32_t rate, + int32_t delay) { + MwLL self = data; + + (void)wl_keyboard; + + self->wayland.keyboard_rate = rate; + self->wayland.keyboard_delay = delay; +}; + struct wl_keyboard_listener keyboard_listener = { - .keymap = keyboard_keymap, - .enter = keyboard_enter, - .leave = keyboard_leave, - .key = keyboard_key, - .modifiers = keyboard_modifiers, + .keymap = keyboard_keymap, + .enter = keyboard_enter, + .leave = keyboard_leave, + .key = keyboard_key, + .modifiers = keyboard_modifiers, + .repeat_info = keyboard_repeat_info, }; /* `wl_seat.name` callback */ @@ -978,14 +996,15 @@ void xdg_wm_base_ping(void* data, }; /* wl_seat setup function */ -static wayland_protocol_t* wl_seat_setup(MwU32 name, MwLL ll) { +static wayland_protocol_t* wl_seat_setup(MwU32 name, MwLL ll, MwU32 version) { wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); + MwU32 ver = (version >= 4) ? 4 : 1; proto->listener = malloc(sizeof(struct wl_seat_listener)); ((struct wl_seat_listener*)proto->listener)->name = wl_seat_name; ((struct wl_seat_listener*)proto->listener)->capabilities = wl_seat_capabilities; - wl_seat_add_listener(wl_registry_bind(ll->wayland.registry, name, &wl_seat_interface, 1), proto->listener, ll); + wl_seat_add_listener(wl_registry_bind(ll->wayland.registry, name, &wl_seat_interface, ver), proto->listener, ll); return proto; } @@ -996,7 +1015,7 @@ static void wl_seat_interface_destroy(struct _MwLLWayland* wayland, wayland_prot } /* wl_output setup function */ -static wayland_protocol_t* wl_output_setup(MwU32 name, MwLL ll) { +static wayland_protocol_t* wl_output_setup(MwU32 name, MwLL ll, MwU32 version) { ll->wayland.output = wl_registry_bind(ll->wayland.registry, name, &wl_output_interface, 1); wl_output_add_listener(ll->wayland.output, &output_listener, ll); @@ -1009,7 +1028,7 @@ static void wl_output_interface_destroy(struct _MwLLWayland* wayland, wayland_pr } /* wl_compositor setup function */ -static wayland_protocol_t* wl_compositor_setup(MwU32 name, struct _MwLLWayland* wayland) { +static wayland_protocol_t* wl_compositor_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { wayland->compositor = wl_registry_bind(wayland->registry, name, &wl_compositor_interface, 1); return NULL; @@ -1021,7 +1040,7 @@ static void wl_compositor_interface_destroy(struct _MwLLWayland* wayland, waylan } /* wl_subcompositor setup function */ -static wayland_protocol_t* wl_subcompositor_setup(MwU32 name, struct _MwLLWayland* wayland) { +static wayland_protocol_t* wl_subcompositor_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { if(wayland->type == MwLL_WAYLAND_TOPLEVEL) { wayland->toplevel->scompositor = wl_registry_bind(wayland->registry, name, &wl_subcompositor_interface, 1); } else { @@ -1037,7 +1056,7 @@ static void wl_subcompositor_interface_destroy(struct _MwLLWayland* wayland, way } /* xdg_wm_base setup function */ -static wayland_protocol_t* xdg_wm_base_setup(MwU32 name, struct _MwLLWayland* wayland) { +static wayland_protocol_t* xdg_wm_base_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); proto->listener = malloc(sizeof(struct xdg_wm_base_listener)); @@ -1055,7 +1074,7 @@ static void xdg_wm_base_interface_destroy(struct _MwLLWayland* wayland, wayland_ } /* xdg_wm_base setup function */ -static wayland_protocol_t* wp_viewporter_setup(MwU32 name, struct _MwLLWayland* wayland) { +static wayland_protocol_t* wp_viewporter_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); proto->context = wl_registry_bind(wayland->registry, name, &wp_viewporter_interface, 1); @@ -1068,7 +1087,7 @@ static void wp_viewporter_interface_destroy(struct _MwLLWayland* wayland, waylan } /* zxdg_decoration_manager_v1 setup function */ -static wayland_protocol_t* zxdg_decoration_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { +static wayland_protocol_t* zxdg_decoration_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); zxdg_decoration_manager_v1_context_t* ctx = malloc(sizeof(zxdg_decoration_manager_v1_context_t)); proto->listener = NULL; @@ -1087,7 +1106,7 @@ static void zxdg_decoration_manager_v1_interface_destroy(struct _MwLLWayland* wa } /* wl_shm setup function */ -static wayland_protocol_t* wl_shm_setup(MwU32 name, struct _MwLLWayland* wayland) { +static wayland_protocol_t* wl_shm_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { wayland->framebuffer.shm = wl_registry_bind(wayland->registry, name, &wl_shm_interface, 1); wayland->backbuffer.shm = wl_registry_bind(wayland->registry, name, &wl_shm_interface, 1); wayland->cursor.shm = wl_registry_bind(wayland->registry, name, &wl_shm_interface, 1); @@ -1100,7 +1119,7 @@ static void wl_shm_interface_destroy(struct _MwLLWayland* wayland, wayland_proto (void)data; } -static wayland_protocol_t* xdg_toplevel_icon_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland) { +static wayland_protocol_t* xdg_toplevel_icon_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); proto->context = wl_registry_bind(wayland->registry, name, &xdg_toplevel_icon_manager_v1_interface, 1); diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 99ce624c2..939c668bd 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -1146,6 +1146,22 @@ static int MwLLPendingImpl(MwLL handle) { handle->wayland.setting_wh = 0; } + clock_gettime(CLOCK_REALTIME, &handle->wayland.end_time); + + if(handle->wayland.holding_key) { + double elapsed = ((double)(handle->wayland.end_time.tv_sec - handle->wayland.start_time.tv_sec) * 1.0e9 + + (double)(handle->wayland.end_time.tv_nsec - handle->wayland.start_time.tv_nsec)) / + 1000000.0; + if(elapsed >= handle->wayland.next_elapsed) { + MwLL topmost_parent = handle; + while(topmost_parent->wayland.parent) { + MwLLDispatch(topmost_parent, key, &handle->wayland.last_pressed_key); + topmost_parent = topmost_parent->wayland.parent; + } + handle->wayland.next_elapsed = elapsed + handle->wayland.keyboard_rate; + } + } + #ifdef USE_DBUS if(wl_call_tbl.has_dbus) { if(handle->wayland.dark_theme_detection) { From 052863dcfe0ef52da49041c8ee03da7341ab39ff Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 24 May 2026 22:54:50 -0700 Subject: [PATCH 749/836] wayland: set a default for keyboard_repeat/keyboard_rate in case a compostior doesn't send key_repeat_info --- src/backend/wayland/wayland.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 939c668bd..d8c3b2021 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -677,6 +677,10 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh MwLLForceRender(parent); } + /* If the compositor never sets the keyboard repeat info, we'll copy KDE's default of... */ + r->wayland.keyboard_delay = 600; /* starting at 600ms... */ + r->wayland.keyboard_rate = 25; /* and going every 25ms... */ + if(!r->wayland.has_decorations) { MwLLBeginDraw(r); MwLLEndDraw(r); From 884c05acb7ed4d32dd5fb420400870c7e07f373c Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 24 May 2026 23:01:48 -0700 Subject: [PATCH 750/836] wayland: oops! we have MwTimeGetTick, we should use that (even though I'm not sure if that's consistent across platforms. but it will at least compile --- include/Mw/LowLevel/Wayland.h | 14 +++++++------- src/backend/wayland/interfaces.c | 2 +- src/backend/wayland/wayland.c | 6 ++---- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 212eef997..948cf7295 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -567,13 +567,13 @@ struct _MwLLWayland { MwBool moving; - MwI64 keyboard_rate; - MwI32 keyboard_delay; - int last_pressed_key; - MwBool holding_key; - MwU64 next_elapsed; - struct timespec start_time; - struct timespec end_time; + MwI64 keyboard_rate; + MwI32 keyboard_delay; + int last_pressed_key; + MwBool holding_key; + MwU64 next_elapsed; + long start_time; + long end_time; cairo_surface_t* front_cs; cairo_surface_t* back_cs; diff --git a/src/backend/wayland/interfaces.c b/src/backend/wayland/interfaces.c index 607ce8230..f07e5af69 100644 --- a/src/backend/wayland/interfaces.c +++ b/src/backend/wayland/interfaces.c @@ -838,7 +838,7 @@ static void keyboard_key(void* data, MwLLDispatch(self, key_released, &key); self->wayland.holding_key = MwFALSE; } - clock_gettime(CLOCK_REALTIME, &self->wayland.start_time); + self->wayland.start_time = MwTimeGetTick(); self->wayland.next_elapsed = self->wayland.keyboard_delay; } } diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index d8c3b2021..dc4a83266 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -1150,12 +1150,10 @@ static int MwLLPendingImpl(MwLL handle) { handle->wayland.setting_wh = 0; } - clock_gettime(CLOCK_REALTIME, &handle->wayland.end_time); + handle->wayland.end_time = MwTimeGetTick(); if(handle->wayland.holding_key) { - double elapsed = ((double)(handle->wayland.end_time.tv_sec - handle->wayland.start_time.tv_sec) * 1.0e9 + - (double)(handle->wayland.end_time.tv_nsec - handle->wayland.start_time.tv_nsec)) / - 1000000.0; + float elapsed = ((float)(handle->wayland.end_time - (float)handle->wayland.start_time)); if(elapsed >= handle->wayland.next_elapsed) { MwLL topmost_parent = handle; while(topmost_parent->wayland.parent) { From 7d40eff3e5e946bce218ea2e96741aa94c60effb Mon Sep 17 00:00:00 2001 From: Nishi Date: Wed, 27 May 2026 15:45:54 +0900 Subject: [PATCH 751/836] fix --- src/abstract/charset.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/abstract/charset.c b/src/abstract/charset.c index 3620aa056..47cc9a21b 100644 --- a/src/abstract/charset.c +++ b/src/abstract/charset.c @@ -19,7 +19,7 @@ char* MwACPToUTF8(const char* input) { return MwStringDuplicate(input); } - wout = malloc(wbytes); + wout = malloc(wbytes + sizeof(wchar_t)); len = wbytes / sizeof(wchar_t); memset(wout, 0, wbytes); From 541499f43c71b3429353dd2611ce0edfc54d0ba0 Mon Sep 17 00:00:00 2001 From: Nishi Date: Sun, 5 Jul 2026 05:23:46 +0900 Subject: [PATCH 752/836] add RESIZE_ON_TICK and fix CMake --- CMakeLists.txt | 2 +- include/Mw/TypeDefs.h | 1 + src/core.c | 59 +++++++++++++++++++++++++++++++++++++------ 3 files changed, 53 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7663578c3..eeb15e31f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -417,7 +417,7 @@ endif() target_compile_definitions( Mw PRIVATE - _MILSKO + _MILSKO _MILSKO_BUILD ) install( diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index fd729225f..d31aeac0e 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -115,6 +115,7 @@ struct _MwWidget { int top_step; MwWidget* draw_queue; + MwWidget* resize_queue; int berserk; long last_tick; diff --git a/src/core.c b/src/core.c index 59984a569..f649a6250 100644 --- a/src/core.c +++ b/src/core.c @@ -6,6 +6,8 @@ #define PERIODIC #endif +#define RESIZE_ON_TICK + #define DRAW(handle) \ { \ MwLLBeginDraw(handle->lowlevel); \ @@ -18,6 +20,16 @@ MwLLEndDraw(handle->lowlevel); \ } +#define RESIZE(handle) \ + { \ + int RESIZE_i; \ + MwDispatchUserHandler(handle, MwNresizeHandler, NULL); \ + for(RESIZE_i = 0; RESIZE_i < arrlen(handle->children); RESIZE_i++) { \ + MwDispatch(handle->children[RESIZE_i], parent_resize); \ + } \ + MwDispatch(handle, resize); \ + } + static void MWAPI MwVaListApply_Internal(MwWidget handle, va_list va, int only_early); static MwWidget MWAPI MwCreateWidget_Internal(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height, int do_prop, va_list prop); @@ -83,16 +95,35 @@ static void lldownhandler(MwLL handle, void* data) { static void llresizehandler(MwLL handle, void* data) { MwWidget h = (MwWidget)handle->common.user; - int i; +#ifdef RESIZE_ON_TICK + MwWidget top; +#endif (void)data; - MwDispatchUserHandler(h, MwNresizeHandler, NULL); - for(i = 0; i < arrlen(h->children); i++) { - MwDispatch(h->children[i], parent_resize); - MwDispatch(h->children[i], draw); +#ifdef RESIZE_ON_TICK + top = h; + while(top != NULL) { + if(top->top_step) { + break; + } + + top = top->parent; } - MwDispatch(h, resize); + + if(top == NULL) { + RESIZE(h); /* fallback */ + } else { + int i; + + for(i = 0; i < arrlen(top->resize_queue); i++) { + if(top->resize_queue[i] == h) break; + } + if(i == arrlen(top->resize_queue)) arrput(top->resize_queue, h); + } +#else + RESIZE(h); +#endif } static void llclosehandler(MwLL handle, void* data) { @@ -226,8 +257,9 @@ static MwWidget MwCreateWidget_Internal(MwClass widget_class, const char* name, h->opaque = NULL; h->user = NULL; - h->top_step = 0; - h->draw_queue = NULL; + h->top_step = 0; + h->draw_queue = NULL; + h->resize_queue = NULL; if(parent == NULL) arrput(h->tick_list, h); @@ -393,6 +425,7 @@ void MwFreeWidget(MwWidget handle) { arrfree(handle->tick_list); arrfree(handle->draw_queue); + arrfree(handle->resize_queue); if(handle->root_font != NULL) MwFontFree(handle->root_font); if(handle->root_boldfont != NULL) MwFontFree(handle->root_boldfont); @@ -472,6 +505,16 @@ static void MwAfterStep(MwWidget handle) { } #endif +#ifdef RESIZE_ON_TICK + if(handle->top_step) { + for(i = 0; i < arrlen(handle->resize_queue); i++) { + RESIZE(handle->resize_queue[i]); + } + + arrfree(handle->resize_queue); + } +#endif + if(arrlen(handle->tick_list) > 0 && (MwTimeGetTick() - handle->last_tick) >= MwWaitMS) { for(i = 0; i < arrlen(handle->tick_list); i++) { MwDispatch(handle->tick_list[i], tick); From 1f4fddfa67f12244ba4b059440e773baec30d0ba Mon Sep 17 00:00:00 2001 From: Nishi Date: Sun, 5 Jul 2026 06:30:54 +0900 Subject: [PATCH 753/836] fix color leak --- src/draw.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/draw.c b/src/draw.c index d8cadad0b..2fd0d4756 100644 --- a/src/draw.c +++ b/src/draw.c @@ -47,6 +47,8 @@ static void color_set_disabled_if_disabled(MwWidget handle, MwLLColor rgb) { rgb->common.green = rgb->common.green + (c->common.green - rgb->common.green) * 0.5; rgb->common.blue = rgb->common.blue + (c->common.blue - rgb->common.blue) * 0.5; MwLLColorUpdate(handle->lowlevel, rgb, rgb->common.red, rgb->common.green, rgb->common.blue); + + MwLLFreeColor(c); } } }; @@ -217,7 +219,7 @@ void MwDrawWidgetBack(MwWidget handle, MwRect* rect, MwLLColor color, int invert if(rect->width <= 0 || rect->height <= 0) return; - col = invert ? MwLightenColor(handle, color, -8, -8, -8) : color; + col = invert ? MwLightenColor(handle, color, -8, -8, -8) : MwLightenColor(handle, color, 0, 0, 0); color_set_disabled_if_disabled(handle, col); if(MwGetInteger(handle, MwNmodernLook)) { @@ -225,7 +227,7 @@ void MwDrawWidgetBack(MwWidget handle, MwRect* rect, MwLLColor color, int invert } else { MwDrawRect(handle, rect, col); } - if(col != color) MwLLFreeColor(col); + MwLLFreeColor(col); } void MwDrawDiamond(MwWidget handle, MwRect* rect, MwLLColor color, int invert) { From 0826afb33469dcfa924efbbd9b936b353cab04a5 Mon Sep 17 00:00:00 2001 From: Nishi Date: Sun, 5 Jul 2026 06:51:43 +0900 Subject: [PATCH 754/836] fix color leak 2 --- src/draw.c | 9 ++++----- src/text/text.c | 2 ++ 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/draw.c b/src/draw.c index 2fd0d4756..ce86d9016 100644 --- a/src/draw.c +++ b/src/draw.c @@ -236,7 +236,7 @@ void MwDrawDiamond(MwWidget handle, MwRect* rect, MwLLColor color, int invert) { int ColorDiff = get_color_diff(handle) + (MwGetInteger(handle, MwNmodernLook) ? 48 : 0); MwLLColor darker = MwLightenColor(handle, color, -ColorDiff, -ColorDiff, -ColorDiff); MwLLColor lighter = MwLightenColor(handle, color, ColorDiff, ColorDiff, ColorDiff); - MwLLColor col = invert ? MwLightenColor(handle, color, -8, -8, -8) : color; + MwLLColor col = invert ? MwLightenColor(handle, color, -8, -8, -8) : MwLightenColor(handle, color, 0, 0, 0); color_set_disabled_if_disabled(handle, col); color_set_disabled_if_disabled(handle, darker); color_set_disabled_if_disabled(handle, lighter); @@ -295,7 +295,7 @@ void MwDrawDiamond(MwWidget handle, MwRect* rect, MwLLColor color, int invert) { MwLLPolygon(handle->lowlevel, p, 4, col); - if(col != color) MwLLFreeColor(col); + MwLLFreeColor(col); MwLLFreeColor(lighter); MwLLFreeColor(darker); } @@ -442,7 +442,7 @@ void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int ColorDiff = get_color_diff(handle); MwLLColor darker = MwLightenColor(handle, color, -ColorDiff, -ColorDiff, -ColorDiff); MwLLColor lighter = MwLightenColor(handle, color, ColorDiff, ColorDiff, ColorDiff); - MwLLColor col = invert ? MwLightenColor(handle, color, -8, -8, -8) : color; + MwLLColor col = invert ? MwLightenColor(handle, color, -8, -8, -8) : MwLightenColor(handle, color, 0, 0, 0); double deg = 30 * ((direction == MwEAST || direction == MwWEST) ? 2 : 1); double c = cos(deg / 180 * M_PI); double s = sin(deg / 180 * M_PI); @@ -650,8 +650,7 @@ void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int invert, } MwLLPolygon(handle->lowlevel, p4, 3, col); - if(color != col) MwLLFreeColor(col); - + MwLLFreeColor(col); MwLLFreeColor(lighter); MwLLFreeColor(darker); } diff --git a/src/text/text.c b/src/text/text.c index b6297e301..786089b62 100644 --- a/src/text/text.c +++ b/src/text/text.c @@ -90,6 +90,8 @@ void MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, fadedColor->common.red = fadedColor->common.red + (c->common.red - fadedColor->common.red) * 0.5; fadedColor->common.green = fadedColor->common.green + (c->common.green - fadedColor->common.green) * 0.5; fadedColor->common.blue = fadedColor->common.blue + (c->common.blue - fadedColor->common.blue) * 0.5; + + MwLLFreeColor(c); } } From d3b0996561ea92169ce73224c3d546eea22ea022 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 5 Jul 2026 00:44:54 -0700 Subject: [PATCH 755/836] wayland: fix MakeBorderless not working w CSD --- CMakeLists.txt | 3 +++ include/Mw/LowLevel/Wayland.h | 1 + src/backend/wayland/buffer.c | 2 +- src/backend/wayland/interfaces.c | 2 +- src/backend/wayland/region.c | 2 +- src/backend/wayland/wayland.c | 21 +++++++++++++-------- 6 files changed, 20 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index eeb15e31f..5f125660b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -373,6 +373,9 @@ if(${DBus1_FOUND}) ) endif() +list(APPEND LIBRARIES m) + + target_include_directories( Mw PRIVATE diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 948cf7295..e7606096d 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -466,6 +466,7 @@ struct _MwLLWayland { wayland_protocol_t* value; }* wl_protocol_map; + MwBool do_csd; MwBool has_decorations; char title[256]; diff --git a/src/backend/wayland/buffer.c b/src/backend/wayland/buffer.c index a37fd34b3..39a31dd26 100644 --- a/src/backend/wayland/buffer.c +++ b/src/backend/wayland/buffer.c @@ -27,7 +27,7 @@ void MwLLWaylandBackbufferSetup(struct _MwLLWayland* wayland) { } MwU32 w = wayland->ww; MwU32 h = wayland->wh; - if(!wayland->has_decorations) { + if(!wayland->has_decorations && wayland->do_csd) { w += (CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT); h += (CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM); } diff --git a/src/backend/wayland/interfaces.c b/src/backend/wayland/interfaces.c index f07e5af69..2de4e6740 100644 --- a/src/backend/wayland/interfaces.c +++ b/src/backend/wayland/interfaces.c @@ -618,7 +618,7 @@ static void pointer_button(void* data, struct wl_pointer* wl_pointer, MwU32 seri } } - if(!self->wayland.has_decorations) { + if(!self->wayland.has_decorations && self->wayland.do_csd) { if(state != WL_POINTER_BUTTON_STATE_RELEASED) xdg_borderless_step_mdown(self, p, serial); else diff --git a/src/backend/wayland/region.c b/src/backend/wayland/region.c index c1bab73fb..83acdbea1 100644 --- a/src/backend/wayland/region.c +++ b/src/backend/wayland/region.c @@ -11,7 +11,7 @@ void MwLLWaylandRegionSetup(MwLL handle) { int width = (handle->wayland.clipping_rect.width == 0) ? handle->wayland.ww : handle->wayland.clipping_rect.width; int height = (handle->wayland.clipping_rect.height == 0) ? handle->wayland.wh : handle->wayland.clipping_rect.height; - if(!handle->wayland.has_decorations && handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { + if(!handle->wayland.has_decorations && handle->wayland.do_csd && handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { width += CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT; height += CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM; } diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index dc4a83266..83332a0ab 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -270,6 +270,7 @@ static void setup_toplevel(MwLL r, int x, int y) { /* check now if we have decorations so that everything else can act accordingly */ if(shget(r->wayland.wl_protocol_map, zxdg_decoration_manager_v1_interface.name) != NULL) { r->wayland.has_decorations = MwTRUE; + r->wayland.do_csd = MwTRUE; } r->wayland.xkb_context = xkb_context_new(XKB_CONTEXT_NO_FLAGS); @@ -314,7 +315,7 @@ static void setup_toplevel(MwLL r, int x, int y) { zxdg_toplevel_decoration_v1_set_mode( dec->decoration, ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE); } else { - wl_subsurface_set_position(r->wayland.toplevel->ssurface, CSD_BORDER_FRAME_LEFT, CSD_BORDER_FRAME_TOP); + wl_subsurface_set_position(r->wayland.toplevel->ssurface, r->wayland.do_csd ? CSD_BORDER_FRAME_LEFT : 0, r->wayland.do_csd ? CSD_BORDER_FRAME_TOP : 0); } } @@ -456,7 +457,7 @@ static void setup_popup(MwLL r, int x, int y, MwLL parent) { while(topmost_parent->wayland.type != MwLL_WAYLAND_TOPLEVEL) { topmost_parent = topmost_parent->wayland.parent; } - if(!topmost_parent->wayland.has_decorations) { + if(!topmost_parent->wayland.has_decorations && topmost_parent->wayland.do_csd) { r->wayland.x += ceil((float)CSD_BORDER_FRAME_LEFT / 2.); r->wayland.y += ceil((float)CSD_BORDER_FRAME_TOP / 2.); } @@ -478,6 +479,7 @@ static void setup_popup(MwLL r, int x, int y, MwLL parent) { /* check now if we have decorations so that everything else can act accordingly */ if(shget(r->wayland.wl_protocol_map, zxdg_decoration_manager_v1_interface.name) != NULL) { r->wayland.has_decorations = MwTRUE; + r->wayland.do_csd = MwTRUE; } r->wayland.popup->xdg_wm_base = WAYLAND_GET_INTERFACE(r->wayland, xdg_wm_base)->context; @@ -681,7 +683,7 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh r->wayland.keyboard_delay = 600; /* starting at 600ms... */ r->wayland.keyboard_rate = 25; /* and going every 25ms... */ - if(!r->wayland.has_decorations) { + if(!r->wayland.has_decorations && r->wayland.do_csd) { MwLLBeginDraw(r); MwLLEndDraw(r); } @@ -921,7 +923,7 @@ static void MwLLBeginDrawImpl(MwLL handle) { return; } - if(!handle->wayland.has_decorations) { + if(!handle->wayland.has_decorations && handle->wayland.do_csd) { int y; MwU32 w = handle->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT; MwU32 h = handle->wayland.wh + CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM; @@ -1232,7 +1234,7 @@ static void MwLLSetTitleImpl(MwLL handle, const char* title) { if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { xdg_toplevel_set_title(handle->wayland.toplevel->xdg_top_level, title); } - if(!handle->wayland.has_decorations) { + if(!handle->wayland.has_decorations && handle->wayland.do_csd) { strncpy(handle->wayland.title, title, 255); MwLLBeginDraw(handle); MwLLEndDraw(handle); @@ -1361,7 +1363,7 @@ static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) { xdg_toplevel_icon_manager_v1_set_icon(icon_manager, handle->wayland.toplevel->xdg_top_level, icon); } } - if(!handle->wayland.has_decorations) { + if(!handle->wayland.has_decorations && handle->wayland.do_csd) { if(handle->wayland.icon_pixmap) { MwLLDestroyPixmap(handle->wayland.icon_pixmap); } @@ -1483,8 +1485,8 @@ static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int } static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { - (void)toggle; WIDGET_CHECK(handle); + printf("%d\n", toggle); if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { if(WAYLAND_GET_INTERFACE(handle->wayland, zxdg_decoration_manager_v1) != NULL) { zxdg_decoration_manager_v1_context_t* dec = WAYLAND_GET_INTERFACE(handle->wayland, zxdg_decoration_manager_v1)->context; @@ -1493,7 +1495,10 @@ static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { dec->manager, handle->wayland.toplevel->xdg_top_level); zxdg_toplevel_decoration_v1_set_mode( - dec->decoration, ZXDG_TOPLEVEL_DECORATION_V1_MODE_CLIENT_SIDE); + dec->decoration, toggle ? ZXDG_TOPLEVEL_DECORATION_V1_MODE_CLIENT_SIDE : ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE); + } else { + handle->wayland.do_csd = !toggle; + wl_subsurface_set_position(handle->wayland.toplevel->ssurface, handle->wayland.do_csd ? CSD_BORDER_FRAME_LEFT : 0, handle->wayland.do_csd ? CSD_BORDER_FRAME_TOP : 0); } } } From 5ea01c80c5b28e3a5ffcf0012e63db5cb313ce2c Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 7 Jul 2026 18:22:46 -0700 Subject: [PATCH 756/836] wayland: fix popup positioning --- src/backend/wayland/wayland.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 83332a0ab..6404d08eb 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -270,7 +270,8 @@ static void setup_toplevel(MwLL r, int x, int y) { /* check now if we have decorations so that everything else can act accordingly */ if(shget(r->wayland.wl_protocol_map, zxdg_decoration_manager_v1_interface.name) != NULL) { r->wayland.has_decorations = MwTRUE; - r->wayland.do_csd = MwTRUE; + } else { + r->wayland.do_csd = MwTRUE; } r->wayland.xkb_context = xkb_context_new(XKB_CONTEXT_NO_FLAGS); @@ -479,7 +480,8 @@ static void setup_popup(MwLL r, int x, int y, MwLL parent) { /* check now if we have decorations so that everything else can act accordingly */ if(shget(r->wayland.wl_protocol_map, zxdg_decoration_manager_v1_interface.name) != NULL) { r->wayland.has_decorations = MwTRUE; - r->wayland.do_csd = MwTRUE; + } else { + r->wayland.do_csd = MwTRUE; } r->wayland.popup->xdg_wm_base = WAYLAND_GET_INTERFACE(r->wayland, xdg_wm_base)->context; @@ -511,12 +513,6 @@ static void setup_popup(MwLL r, int x, int y, MwLL parent) { r->wayland.popup->xdg_surface_listener.configure = xdg_surface_configure; xdg_surface_add_listener(r->wayland.popup->xdg_surface, &r->wayland.popup->xdg_surface_listener, r); - - /* Perform the initial commit and wait for the first configure event */ - wl_surface_commit(r->wayland.framebuffer.surface); - while(!r->wayland.configured) { - event_loop(r); - } } /* Popup destroy function */ @@ -1443,8 +1439,12 @@ static void MwLLDetachImpl(MwLL handle, MwPoint* point) { int x = 0, y = 0; WIDGET_CHECK(handle); while(p != NULL) { - x += p->wayland.x; - y += p->wayland.y; + if(p->wayland.type != MwLL_WAYLAND_TOPLEVEL) { + x += p->wayland.x; + y += p->wayland.y; + } else { + break; + } p = p->wayland.parent; } @@ -1486,7 +1486,6 @@ static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { WIDGET_CHECK(handle); - printf("%d\n", toggle); if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { if(WAYLAND_GET_INTERFACE(handle->wayland, zxdg_decoration_manager_v1) != NULL) { zxdg_decoration_manager_v1_context_t* dec = WAYLAND_GET_INTERFACE(handle->wayland, zxdg_decoration_manager_v1)->context; From b860c26505bf0bfadcd26ce88c124112158d9398 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 7 Jul 2026 18:29:02 -0700 Subject: [PATCH 757/836] actually fix Borderless on wayland and confirm it working --- src/backend/wayland/wayland.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 6404d08eb..359fedfcc 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -1485,14 +1485,18 @@ static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int } static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { + printf("%d\n", toggle); WIDGET_CHECK(handle); if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { if(WAYLAND_GET_INTERFACE(handle->wayland, zxdg_decoration_manager_v1) != NULL) { zxdg_decoration_manager_v1_context_t* dec = WAYLAND_GET_INTERFACE(handle->wayland, zxdg_decoration_manager_v1)->context; - dec->decoration = zxdg_decoration_manager_v1_get_toplevel_decoration( - dec->manager, handle->wayland.toplevel->xdg_top_level); + if(!dec->decoration) { + dec->decoration = zxdg_decoration_manager_v1_get_toplevel_decoration( + dec->manager, handle->wayland.toplevel->xdg_top_level); + } + zxdg_toplevel_decoration_v1_unset_mode(dec->decoration); zxdg_toplevel_decoration_v1_set_mode( dec->decoration, toggle ? ZXDG_TOPLEVEL_DECORATION_V1_MODE_CLIENT_SIDE : ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE); } else { From 7dad6806c3bf76702f75f108f2e0d4ed587e8156 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 7 Jul 2026 20:47:32 -0700 Subject: [PATCH 758/836] allow tool windows without a parent; currently fake them, should use layer surfaces later --- src/backend/wayland/wayland.c | 114 +++++++++++++++++++--------------- 1 file changed, 65 insertions(+), 49 deletions(-) diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 359fedfcc..d438ac691 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -251,11 +251,13 @@ static void setup_toplevel(MwLL r, int x, int y) { MwLLWaylandSetupCallbacks(&r->wayland); /* Connect to the Wayland compositor */ - r->wayland.display = wl_display_connect(NULL); - if(r->wayland.display == NULL) { - printf("wayland: failed to create display\n"); - raise(SIGTRAP); - return; + if(!r->wayland.display) { + r->wayland.display = wl_display_connect(NULL); + if(r->wayland.display == NULL) { + printf("wayland: failed to create display\n"); + raise(SIGTRAP); + return; + } } /* Do a roundtrip to ensure all interfaces are setup. */ @@ -345,7 +347,7 @@ static void destroy_toplevel(MwLL r) { wl_registry_destroy(r->wayland.registry); - wl_display_disconnect(r->wayland.display); + // wl_display_disconnect(r->wayland.display); r->wayland.configured = MwFALSE; } @@ -449,6 +451,7 @@ struct xdg_popup_listener popup_listener = { static void setup_popup(MwLL r, int x, int y, MwLL parent) { struct xdg_surface* xdg_surface; MwLL topmost_parent = r->wayland.parent; + MwU32 ver; r->wayland.type = MwLL_WAYLAND_POPUP; r->wayland.x = x; @@ -507,7 +510,7 @@ static void setup_popup(MwLL r, int x, int y, MwLL parent) { xdg_surface, r->wayland.popup->xdg_positioner); - uint32_t ver = wl_proxy_get_version((struct wl_proxy*)r->wayland.popup->xdg_popup); + ver = wl_proxy_get_version((struct wl_proxy*)r->wayland.popup->xdg_popup); xdg_popup_add_listener(r->wayland.popup->xdg_popup, &popup_listener, r); @@ -656,7 +659,16 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh setup_sublevel(parent, r, x, y); break; case MwLL_WAYLAND_POPUP: - setup_popup(r, x, y, parent); + if(parent) { + setup_popup(r, x, y, parent); + } else { + /* + * We can't actually have a popup without a parent but this needs to be valid behavior. + * So we do a few things to "fake" a toplevel that looks like a popup. + */ + setup_toplevel(r, x, y); + MwLLMakeBorderless(r, MwTRUE); + } break; } } @@ -1485,7 +1497,6 @@ static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int } static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) { - printf("%d\n", toggle); WIDGET_CHECK(handle); if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { if(WAYLAND_GET_INTERFACE(handle->wayland, zxdg_decoration_manager_v1) != NULL) { @@ -1616,65 +1627,70 @@ static void MwLLBeginStateChangeImpl(MwLL handle) { } static void MwLLEndStateChangeImpl(MwLL handle) { + MwLL topmost_parent; WIDGET_CHECK(handle); - if(handle->wayland.detatching) { - MwLL topmost_parent = handle->wayland.parent; + topmost_parent = handle->wayland.parent; + if(topmost_parent) { while(topmost_parent->wayland.type != MwLL_WAYLAND_TOPLEVEL) { topmost_parent = topmost_parent->wayland.parent; } - switch(handle->wayland.type) { - case MwLL_WAYLAND_UNKNOWN: - break; - case MwLL_WAYLAND_TOPLEVEL: - destroy_toplevel(handle); - break; - case MwLL_WAYLAND_SUBLEVEL: - destroy_sublevel(handle); - break; - case MwLL_WAYLAND_POPUP: - destroy_popup(handle); - break; - } + } - MwLLWaylandFlush(handle); + switch(handle->wayland.type) { + case MwLL_WAYLAND_UNKNOWN: + break; + case MwLL_WAYLAND_TOPLEVEL: + destroy_toplevel(handle); + break; + case MwLL_WAYLAND_SUBLEVEL: + destroy_sublevel(handle); + break; + case MwLL_WAYLAND_POPUP: + destroy_popup(handle); + break; + } - widget_setup(handle, handle->wayland.parent, handle->wayland.detach_point.x, handle->wayland.detach_point.y, handle->wayland.ww, handle->wayland.wh, handle->wayland.type_to_be); + MwLLWaylandFlush(handle); - handle->wayland.is_toplevel = MwTRUE; + widget_setup(handle, handle->wayland.parent, handle->wayland.detach_point.x, handle->wayland.detach_point.y, handle->wayland.ww, handle->wayland.wh, handle->wayland.type_to_be); - if(!handle->wayland.parent) - handle->wayland.dark_theme_detection = MwTRUE; + handle->wayland.is_toplevel = MwTRUE; - if(handle->common.user) { - MwWidget w = handle->common.user; - int i; - for(i = 0; i < arrlen(w->children); i++) { - if(w->children[i]->lowlevel->wayland.type == MwLL_WAYLAND_SUBLEVEL) { - MwLL child = w->children[i]->lowlevel; - child->wayland.sublevel->xdg_surface = handle->wayland.popup->xdg_surface; - wl_subsurface_destroy(child->wayland.sublevel->subsurface); - MwLLWaylandFlush(handle); + if(!handle->wayland.parent) + handle->wayland.dark_theme_detection = MwTRUE; - child->wayland.sublevel->subsurface = wl_subcompositor_get_subsurface(child->wayland.sublevel->subcompositor, child->wayland.framebuffer.surface, handle->wayland.framebuffer.surface); - wl_subsurface_set_desync(child->wayland.sublevel->subsurface); - wl_subsurface_set_position(child->wayland.sublevel->subsurface, child->wayland.x, child->wayland.y); + if(handle->common.user) { + MwWidget w = handle->common.user; + int i; + for(i = 0; i < arrlen(w->children); i++) { + if(w->children[i]->lowlevel->wayland.type == MwLL_WAYLAND_SUBLEVEL) { + MwLL child = w->children[i]->lowlevel; + printf("%p\n", child->wayland.sublevel->subcompositor); + child->wayland.sublevel->xdg_surface = handle->wayland.popup->xdg_surface; + wl_subsurface_destroy(child->wayland.sublevel->subsurface); + MwLLWaylandFlush(handle); - wl_subsurface_place_above(child->wayland.sublevel->subsurface, handle->wayland.framebuffer.surface); - MwLLEndStateChangeImpl(w->children[i]->lowlevel); + child->wayland.sublevel->subsurface = wl_subcompositor_get_subsurface(child->wayland.sublevel->subcompositor, child->wayland.framebuffer.surface, handle->wayland.framebuffer.surface); + wl_subsurface_set_desync(child->wayland.sublevel->subsurface); + wl_subsurface_set_position(child->wayland.sublevel->subsurface, child->wayland.x, child->wayland.y); + wl_subsurface_place_above(child->wayland.sublevel->subsurface, handle->wayland.framebuffer.surface); + MwLLEndStateChangeImpl(w->children[i]->lowlevel); + + if(topmost_parent) { topmost_parent->wayland.currentlyHeldWidget = NULL; } } } - - recursive_render(handle); - - handle->wayland.events_pending = 1; - - handle->wayland.detatching = MwFALSE; } + + recursive_render(handle); + + handle->wayland.events_pending = 1; + + handle->wayland.detatching = MwFALSE; } static void MwLLSetDarkThemeImpl(MwLL handle, int toggle) { From a16e48edd5f42b504810bac5f79286f4ffdc112d Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 7 Jul 2026 23:04:58 -0700 Subject: [PATCH 759/836] started on layer surface --- include/Mw/LowLevel/Wayland.h | 8 + pl/rules.pl | 1 + pl/utils.pl | 32 ++ .../wayland/wlr-layer-shell-unstable-v1.xml | 451 ++++++++++++++++++ src/backend/wayland/interfaces.c | 21 +- src/backend/wayland/wayland.c | 164 ++++++- 6 files changed, 656 insertions(+), 21 deletions(-) create mode 100644 resource/wayland/wlr-layer-shell-unstable-v1.xml diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index e7606096d..c59f06337 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -339,6 +339,7 @@ MwInline int wayland_load_funcs() { #include "Wayland/pointer-constraints-client-protocol.h" #include "Wayland/relative-pointer-client-protocol.h" #include "Wayland/xdg-toplevel-icon-client-protocol.h" +#include "Wayland/wlr-layer-shell-client-protocol.h" #endif typedef struct wayland_protocol { @@ -387,6 +388,10 @@ struct _MwLLWaylandPopup { MwLL topmost_parent; }; +struct _MwLLWaylandLayerSurface { + struct zwlr_layer_surface_v1* surface; +}; + /* Shared set of anything needed for a shm buffer. */ struct _MwLLWaylandShmBuffer { struct wl_shm* shm; @@ -410,6 +415,7 @@ enum _MwLLWaylandType { MwLL_WAYLAND_TOPLEVEL, MwLL_WAYLAND_SUBLEVEL, MwLL_WAYLAND_POPUP, + MwLL_WAYLAND_LAYER_SURFACE, }; typedef struct wl_clipboard_device_context { @@ -436,6 +442,8 @@ struct _MwLLWayland { struct _MwLLWaylandSublevel* sublevel; /* Pointer for data that's only loaded if the widget is a popup */ struct _MwLLWaylandPopup* popup; + /* Pointer for data that's only loaded if the widget is a layer surface */ + struct _MwLLWaylandLayerSurface* layer_surface; }; enum _MwLLWaylandType type; diff --git a/pl/rules.pl b/pl/rules.pl index 52f3c2a56..2c8ea1bd0 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -65,6 +65,7 @@ if (grep(/^wayland$/, @backends)) { scan_wayland_protocol("unstable", "primary-selection", "-unstable-v1"); scan_wayland_protocol("unstable", "pointer-constraints", "-unstable-v1"); scan_wayland_protocol("unstable", "relative-pointer", "-unstable-v1"); + scan_wayland_protocol_from_file("wlr-layer-shell", "wlr-layer-shell-unstable-v1.xml"); $gl_libs = "-lGL -lGLU"; } diff --git a/pl/utils.pl b/pl/utils.pl index a86cbbea9..23e16f07b 100644 --- a/pl/utils.pl +++ b/pl/utils.pl @@ -125,6 +125,38 @@ sub scan_wayland_protocol { } } + +sub scan_wayland_protocol_from_file { + my $proto = $_[0]; + my $file = $_[1]; + my $proto_c = "src/backend/wayland/wayland-${proto}-protocol.c"; + + if ( + system( +"wayland-scanner private-code ./resource/wayland/${file} ${proto_c}" + ) != 0 + ) + { + print( +"^ Error on getting private code for ./resource/wayland/${file}\n" + ); + } + else { + new_object($proto_c); + } + if ( + system( +"wayland-scanner client-header ./resource/wayland/${file} include/Mw/LowLevel/Wayland/${proto}-client-protocol.h" + ) + ) + { + print( +"^ Error on getting client header for ./resource/wayland/${file}\n" + ); + } +} + + our %params = (); sub param_set { diff --git a/resource/wayland/wlr-layer-shell-unstable-v1.xml b/resource/wayland/wlr-layer-shell-unstable-v1.xml new file mode 100644 index 000000000..f9ee0ff7d --- /dev/null +++ b/resource/wayland/wlr-layer-shell-unstable-v1.xml @@ -0,0 +1,451 @@ + + + + Copyright © 2017 Drew DeVault + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this permission + notice appear in supporting documentation, and that the name of + the copyright holders not be used in advertising or publicity + pertaining to distribution of the software without specific, + written prior permission. The copyright holders make no + representations about the suitability of this software for any + purpose. It is provided "as is" without express or implied + warranty. + + THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY + SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF + THIS SOFTWARE. + + + + + Clients can use this interface to assign the surface_layer role to + wl_surfaces. Such surfaces are assigned to a "layer" of the output and + rendered with a defined z-depth respective to each other. They may also be + anchored to the edges and corners of a screen and specify input handling + semantics. This interface should be suitable for the implementation of + many desktop shell components, and a broad number of other applications + that interact with the desktop. + + + + + Create a layer surface for an existing surface. This assigns the role of + layer_surface, or raises a protocol error if another role is already + assigned. + + Creating a layer surface from a wl_surface which has a buffer attached + or committed is a client error, and any attempts by a client to attach + or manipulate a buffer prior to the first layer_surface.configure call + must also be treated as errors. + + After creating a layer_surface object and setting it up, the client + must perform an initial commit without any buffer attached. + The compositor will reply with a layer_surface.configure event. + The client must acknowledge it and is then allowed to attach a buffer + to map the surface. + + You may pass NULL for output to allow the compositor to decide which + output to use. Generally this will be the one that the user most + recently interacted with. + + Clients can specify a namespace that defines the purpose of the layer + surface. + + + + + + + + + + + + + + + + + These values indicate which layers a surface can be rendered in. They + are ordered by z depth, bottom-most first. Traditional shell surfaces + will typically be rendered between the bottom and top layers. + Fullscreen shell surfaces are typically rendered at the top layer. + Multiple surfaces can share a single layer, and ordering within a + single layer is undefined. + + + + + + + + + + + + + This request indicates that the client will not use the layer_shell + object any more. Objects that have been created through this instance + are not affected. + + + + + + + An interface that may be implemented by a wl_surface, for surfaces that + are designed to be rendered as a layer of a stacked desktop-like + environment. + + Layer surface state (layer, size, anchor, exclusive zone, + margin, interactivity) is double-buffered, and will be applied at the + time wl_surface.commit of the corresponding wl_surface is called. + + Attaching a null buffer to a layer surface unmaps it. + + Unmapping a layer_surface means that the surface cannot be shown by the + compositor until it is explicitly mapped again. The layer_surface + returns to the state it had right after layer_shell.get_layer_surface. + The client can re-map the surface by performing a commit without any + buffer attached, waiting for a configure event and handling it as usual. + + + + + Sets the size of the surface in surface-local coordinates. The + compositor will display the surface centered with respect to its + anchors. + + If you pass 0 for either value, the compositor will assign it and + inform you of the assignment in the configure event. You must set your + anchor to opposite edges in the dimensions you omit; not doing so is a + protocol error. Both values are 0 by default. + + Size is double-buffered, see wl_surface.commit. + + + + + + + + Requests that the compositor anchor the surface to the specified edges + and corners. If two orthogonal edges are specified (e.g. 'top' and + 'left'), then the anchor point will be the intersection of the edges + (e.g. the top left corner of the output); otherwise the anchor point + will be centered on that edge, or in the center if none is specified. + + Anchor is double-buffered, see wl_surface.commit. + + + + + + + Requests that the compositor avoids occluding an area with other + surfaces. The compositor's use of this information is + implementation-dependent - do not assume that this region will not + actually be occluded. + + A positive value is only meaningful if the surface is anchored to one + edge or an edge and both perpendicular edges. If the surface is not + anchored, anchored to only two perpendicular edges (a corner), anchored + to only two parallel edges or anchored to all edges, a positive value + will be treated the same as zero. + + A positive zone is the distance from the edge in surface-local + coordinates to consider exclusive. + + Surfaces that do not wish to have an exclusive zone may instead specify + how they should interact with surfaces that do. If set to zero, the + surface indicates that it would like to be moved to avoid occluding + surfaces with a positive exclusive zone. If set to -1, the surface + indicates that it would not like to be moved to accommodate for other + surfaces, and the compositor should extend it all the way to the edges + it is anchored to. + + For example, a panel might set its exclusive zone to 10, so that + maximized shell surfaces are not shown on top of it. A notification + might set its exclusive zone to 0, so that it is moved to avoid + occluding the panel, but shell surfaces are shown underneath it. A + wallpaper or lock screen might set their exclusive zone to -1, so that + they stretch below or over the panel. + + The default value is 0. + + Exclusive zone is double-buffered, see wl_surface.commit. + + + + + + + Requests that the surface be placed some distance away from the anchor + point on the output, in surface-local coordinates. Setting this value + for edges you are not anchored to has no effect. + + The exclusive zone includes the margin. + + Margin is double-buffered, see wl_surface.commit. + + + + + + + + + + Types of keyboard interaction possible for layer shell surfaces. The + rationale for this is twofold: (1) some applications are not interested + in keyboard events and not allowing them to be focused can improve the + desktop experience; (2) some applications will want to take exclusive + keyboard focus. + + + + + This value indicates that this surface is not interested in keyboard + events and the compositor should never assign it the keyboard focus. + + This is the default value, set for newly created layer shell surfaces. + + This is useful for e.g. desktop widgets that display information or + only have interaction with non-keyboard input devices. + + + + + Request exclusive keyboard focus if this surface is above the shell surface layer. + + For the top and overlay layers, the seat will always give + exclusive keyboard focus to the top-most layer which has keyboard + interactivity set to exclusive. If this layer contains multiple + surfaces with keyboard interactivity set to exclusive, the compositor + determines the one receiving keyboard events in an implementation- + defined manner. In this case, no guarantee is made when this surface + will receive keyboard focus (if ever). + + For the bottom and background layers, the compositor is allowed to use + normal focus semantics. + + This setting is mainly intended for applications that need to ensure + they receive all keyboard events, such as a lock screen or a password + prompt. + + + + + This requests the compositor to allow this surface to be focused and + unfocused by the user in an implementation-defined manner. The user + should be able to unfocus this surface even regardless of the layer + it is on. + + Typically, the compositor will want to use its normal mechanism to + manage keyboard focus between layer shell surfaces with this setting + and regular toplevels on the desktop layer (e.g. click to focus). + Nevertheless, it is possible for a compositor to require a special + interaction to focus or unfocus layer shell surfaces (e.g. requiring + a click even if focus follows the mouse normally, or providing a + keybinding to switch focus between layers). + + This setting is mainly intended for desktop shell components (e.g. + panels) that allow keyboard interaction. Using this option can allow + implementing a desktop shell that can be fully usable without the + mouse. + + + + + + + Set how keyboard events are delivered to this surface. By default, + layer shell surfaces do not receive keyboard events; this request can + be used to change this. + + This setting is inherited by child surfaces set by the get_popup + request. + + Layer surfaces receive pointer, touch, and tablet events normally. If + you do not want to receive them, set the input region on your surface + to an empty region. + + Keyboard interactivity is double-buffered, see wl_surface.commit. + + + + + + + This assigns an xdg_popup's parent to this layer_surface. This popup + should have been created via xdg_surface::get_popup with the parent set + to NULL, and this request must be invoked before committing the popup's + initial state. + + See the documentation of xdg_popup for more details about what an + xdg_popup is and how it is used. + + + + + + + When a configure event is received, if a client commits the + surface in response to the configure event, then the client + must make an ack_configure request sometime before the commit + request, passing along the serial of the configure event. + + If the client receives multiple configure events before it + can respond to one, it only has to ack the last configure event. + + A client is not required to commit immediately after sending + an ack_configure request - it may even ack_configure several times + before its next surface commit. + + A client may send multiple ack_configure requests before committing, but + only the last request sent before a commit indicates which configure + event the client really is responding to. + + + + + + + This request destroys the layer surface. + + + + + + The configure event asks the client to resize its surface. + + Clients should arrange their surface for the new states, and then send + an ack_configure request with the serial sent in this configure event at + some point before committing the new surface. + + The client is free to dismiss all but the last configure event it + received. + + The width and height arguments specify the size of the window in + surface-local coordinates. + + The size is a hint, in the sense that the client is free to ignore it if + it doesn't resize, pick a smaller size (to satisfy aspect ratio or + resize in steps of NxM pixels). If the client picks a smaller size and + is anchored to two opposite anchors (e.g. 'top' and 'bottom'), the + surface will be centered on this axis. + + If the width or height arguments are zero, it means the client should + decide its own window dimension. + + + + + + + + + The closed event is sent by the compositor when the surface will no + longer be shown. The output may have been destroyed or the user may + have asked for it to be removed. Further changes to the surface will be + ignored. The client should destroy the resource after receiving this + event, and create a new surface if they so choose. + + + + + + + + + + + + + + + + + + + + + + Change the layer that the surface is rendered on. + + Layer is double-buffered, see wl_surface.commit. + + + + + diff --git a/src/backend/wayland/interfaces.c b/src/backend/wayland/interfaces.c index 2de4e6740..0d9f6d663 100644 --- a/src/backend/wayland/interfaces.c +++ b/src/backend/wayland/interfaces.c @@ -655,7 +655,7 @@ static void keyboard_keymap(void* data, MwLL self = data; (void)wl_keyboard; - if(self->wayland.type == MwLL_WAYLAND_TOPLEVEL) { + if(self->wayland.type == MwLL_WAYLAND_TOPLEVEL || self->wayland.type == MwLL_WAYLAND_LAYER_SURFACE) { assert(format == WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1); char* map_shm = (char*)mmap(NULL, size, PROT_READ, MAP_SHARED, fd, 0); @@ -1133,6 +1133,21 @@ static void xdg_toplevel_icon_manager_v1_interface_destroy(struct _MwLLWayland* free(data->listener); } +static wayland_protocol_t* zwlr_layer_shell_v1_setup(MwU32 name, struct _MwLLWayland* wayland, wayland_protocol_t* data) { + wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); + + proto->context = wl_registry_bind(wayland->registry, name, &zwlr_layer_shell_v1_interface, 1); + proto->listener = NULL; + + return proto; +} + +static void zwlr_layer_shell_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { + (void)wayland; + + // free(data); +} + /* Function for setting up the callbacks/structs that will be registered upon the relevant interfaces being found. */ void MwLLWaylandSetupCallbacks(struct _MwLLWayland* wayland) { /* Convience macro for adding the interface functions to the setup map */ @@ -1161,12 +1176,16 @@ void MwLLWaylandSetupCallbacks(struct _MwLLWayland* wayland) { WL_INTERFACE(zwp_pointer_constraints_v1); WL_INTERFACE(zwp_relative_pointer_manager_v1); WL_INTERFACE(xdg_wm_base); + WL_INTERFACE(zwlr_layer_shell_v1); /* Only used for layer surface, but we use it always if it's turned into a tool window */ if(wayland->type == MwLL_WAYLAND_TOPLEVEL) { WL_INTERFACE(wp_viewporter); WL_INTERFACE(zxdg_decoration_manager_v1); WL_INTERFACE(xdg_toplevel_icon_manager_v1); WL_INTERFACE(wl_subcompositor); } else if(wayland->type == MwLL_WAYLAND_POPUP) { + } else if(wayland->type == MwLL_WAYLAND_LAYER_SURFACE) { + WL_INTERFACE(wp_viewporter); + WL_INTERFACE(wl_subcompositor); } else { WL_INTERFACE(wl_subcompositor); } diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index d438ac691..0eb3cafbb 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -329,14 +329,14 @@ static void destroy_toplevel(MwLL r) { zxdg_decoration_manager_v1_destroy(dec->manager); } - wl_surface_destroy(r->wayland.framebuffer.surface); - - wl_compositor_destroy(r->wayland.compositor); - xdg_surface_destroy(r->wayland.toplevel->xdg_surface); xdg_toplevel_destroy(r->wayland.toplevel->xdg_top_level); + wl_surface_destroy(r->wayland.framebuffer.surface); + + wl_compositor_destroy(r->wayland.compositor); + xkb_keymap_unref(r->wayland.xkb_keymap); xkb_state_unref(r->wayland.xkb_state); @@ -345,7 +345,7 @@ static void destroy_toplevel(MwLL r) { free(r->wayland.toplevel); - wl_registry_destroy(r->wayland.registry); + // wl_registry_destroy(r->wayland.registry); // wl_display_disconnect(r->wayland.display); @@ -451,7 +451,6 @@ struct xdg_popup_listener popup_listener = { static void setup_popup(MwLL r, int x, int y, MwLL parent) { struct xdg_surface* xdg_surface; MwLL topmost_parent = r->wayland.parent; - MwU32 ver; r->wayland.type = MwLL_WAYLAND_POPUP; r->wayland.x = x; @@ -510,8 +509,6 @@ static void setup_popup(MwLL r, int x, int y, MwLL parent) { xdg_surface, r->wayland.popup->xdg_positioner); - ver = wl_proxy_get_version((struct wl_proxy*)r->wayland.popup->xdg_popup); - xdg_popup_add_listener(r->wayland.popup->xdg_popup, &popup_listener, r); r->wayland.popup->xdg_surface_listener.configure = xdg_surface_configure; @@ -533,6 +530,120 @@ static void destroy_popup(MwLL r) { r->wayland.configured = MwFALSE; } +static void layer_shell_configure(void* data, + struct zwlr_layer_surface_v1* surface, + uint32_t serial, + uint32_t width, + uint32_t height) { + MwLL self = data; + zwlr_layer_surface_v1_ack_configure(surface, serial); + + self->wayland.x = 0; + self->wayland.y = 0; + self->wayland.ww = width; + self->wayland.wh = height; + + wl_surface_commit(self->wayland.framebuffer.surface); + + self->wayland.configured = MwTRUE; +}; + +static void layer_shell_done(void* data, + struct zwlr_layer_surface_v1* zwlr_layer_surface_v1) { + (void)data; + (void)zwlr_layer_surface_v1; + + printf("closed\n"); +}; + +static const struct zwlr_layer_surface_v1_listener layer_surface_listener = { + .configure = layer_shell_configure, + .closed = layer_shell_done, +}; + +/* Layer surface setup function */ +static void setup_layer_surface(MwLL r, int x, int y, int width, int height) { + wayland_protocol_t* layer_shell_protocol; + struct zwlr_layer_shell_v1* layer_shell; + r->wayland.type = MwLL_WAYLAND_LAYER_SURFACE; + r->wayland.layer_surface = malloc(sizeof(struct _MwLLWaylandLayerSurface)); + r->wayland.x = x; + r->wayland.y = y; + + MwLLWaylandSetupCallbacks(&r->wayland); + + /* Connect to the Wayland compositor */ + if(!r->wayland.display) { + r->wayland.display = wl_display_connect(NULL); + if(r->wayland.display == NULL) { + printf("wayland: failed to create display\n"); + raise(SIGTRAP); + return; + } + } + + /* Do a roundtrip to ensure all interfaces are setup. */ + r->wayland.registry = wl_display_get_registry(r->wayland.display); + wl_registry_add_listener(r->wayland.registry, &r->wayland.registry_listener, r); + if(wl_display_roundtrip(r->wayland.display) == -1) { + printf("roundtrip failed\n"); + raise(SIGTRAP); + return; + } + + layer_shell_protocol = WAYLAND_GET_INTERFACE(r->wayland, zwlr_layer_shell_v1); + assert(layer_shell_protocol); + + layer_shell = layer_shell_protocol->context; + + r->wayland.xkb_context = xkb_context_new(XKB_CONTEXT_NO_FLAGS); + + r->wayland.framebuffer.surface = wl_compositor_create_surface(r->wayland.compositor); + + r->wayland.layer_surface->surface = zwlr_layer_shell_v1_get_layer_surface(layer_shell, r->wayland.framebuffer.surface, NULL, 1, "milsko-surfaces"); + + zwlr_layer_surface_v1_set_size(r->wayland.layer_surface->surface, width, height); + + zwlr_layer_surface_v1_set_anchor(r->wayland.layer_surface->surface, + ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT | + ZWLR_LAYER_SURFACE_V1_ANCHOR_RIGHT | + ZWLR_LAYER_SURFACE_V1_ANCHOR_TOP); + zwlr_layer_surface_v1_set_margin(r->wayland.layer_surface->surface, + y, 0, 0, x); + + zwlr_layer_surface_v1_add_listener(r->wayland.layer_surface->surface, &layer_surface_listener, r); + + zwlr_layer_surface_v1_set_keyboard_interactivity(r->wayland.layer_surface->surface, MwTRUE); + + /* Perform the initial commit and wait for the first configure event */ + wl_surface_commit(r->wayland.framebuffer.surface); + while(!r->wayland.configured) { + event_loop(r); + } +} + +/* Toplevel destroy function */ +static void destroy_layer_surface(MwLL r) { + if(shget(r->wayland.wl_protocol_map, zxdg_decoration_manager_v1_interface.name) != NULL) { + zxdg_decoration_manager_v1_context_t* dec = WAYLAND_GET_INTERFACE(r->wayland, zxdg_decoration_manager_v1)->context; + zxdg_decoration_manager_v1_destroy(dec->manager); + } + + wl_surface_destroy(r->wayland.framebuffer.surface); + + wl_compositor_destroy(r->wayland.compositor); + + xkb_keymap_unref(r->wayland.xkb_keymap); + + xkb_state_unref(r->wayland.xkb_state); + + xkb_context_unref(r->wayland.xkb_context); + + wl_registry_destroy(r->wayland.registry); + + r->wayland.configured = MwFALSE; +} + static void clip(MwLL handle) { int i; int x, y, cx, cy, mx, my; @@ -613,7 +724,7 @@ static void wl_logger(const char* fmt, va_list args) { raise(SIGTRAP); } -static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int height, enum _MwLLWaylandType ty) { +static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int height, enum _MwLLWaylandType ty, MwBool can_do_layer_surface) { /* Wayland does not report global coordinates ever. Compositors are not even expected to have knowledge of this. */ r->common.coordinate_type = MwCOORDINATE_LOCAL; @@ -664,12 +775,19 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh } else { /* * We can't actually have a popup without a parent but this needs to be valid behavior. - * So we do a few things to "fake" a toplevel that looks like a popup. + * So we either make a wlr layer surface at this point, or just fake it with a borderless window. */ - setup_toplevel(r, x, y); - MwLLMakeBorderless(r, MwTRUE); + if(can_do_layer_surface) { + setup_layer_surface(r, x, y, width, height); + } else { + setup_toplevel(r, x, y); + MwLLMakeBorderless(r, MwTRUE); + } } break; + case MwLL_WAYLAND_LAYER_SURFACE: + setup_layer_surface(r, x, y, width, height); + break; } } @@ -729,7 +847,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->wayland.is_toplevel = parent == NULL; r->wayland.is_clipping = 0; - widget_setup(r, parent, x, y, width, height, MwLL_WAYLAND_UNKNOWN); + widget_setup(r, parent, x, y, width, height, MwLL_WAYLAND_UNKNOWN, MwFALSE); #ifdef USE_DBUS if(!parent && wl_call_tbl.has_dbus) { @@ -1627,14 +1745,18 @@ static void MwLLBeginStateChangeImpl(MwLL handle) { } static void MwLLEndStateChangeImpl(MwLL handle) { - MwLL topmost_parent; + MwLL topmost_parent; + MwBool can_do_layer_surface = MwFALSE; WIDGET_CHECK(handle); - topmost_parent = handle->wayland.parent; + topmost_parent = handle->wayland.parent; + can_do_layer_surface = (WAYLAND_GET_INTERFACE(handle->wayland, zwlr_layer_shell_v1) != NULL); - if(topmost_parent) { - while(topmost_parent->wayland.type != MwLL_WAYLAND_TOPLEVEL) { + while(topmost_parent) { + if(topmost_parent->wayland.type != MwLL_WAYLAND_TOPLEVEL) { topmost_parent = topmost_parent->wayland.parent; + } else { + break; } } @@ -1650,11 +1772,14 @@ static void MwLLEndStateChangeImpl(MwLL handle) { case MwLL_WAYLAND_POPUP: destroy_popup(handle); break; + case MwLL_WAYLAND_LAYER_SURFACE: + destroy_layer_surface(handle); + break; } MwLLWaylandFlush(handle); - widget_setup(handle, handle->wayland.parent, handle->wayland.detach_point.x, handle->wayland.detach_point.y, handle->wayland.ww, handle->wayland.wh, handle->wayland.type_to_be); + widget_setup(handle, handle->wayland.parent, handle->wayland.detach_point.x, handle->wayland.detach_point.y, handle->wayland.ww, handle->wayland.wh, handle->wayland.type_to_be, can_do_layer_surface); handle->wayland.is_toplevel = MwTRUE; @@ -1666,8 +1791,7 @@ static void MwLLEndStateChangeImpl(MwLL handle) { int i; for(i = 0; i < arrlen(w->children); i++) { if(w->children[i]->lowlevel->wayland.type == MwLL_WAYLAND_SUBLEVEL) { - MwLL child = w->children[i]->lowlevel; - printf("%p\n", child->wayland.sublevel->subcompositor); + MwLL child = w->children[i]->lowlevel; child->wayland.sublevel->xdg_surface = handle->wayland.popup->xdg_surface; wl_subsurface_destroy(child->wayland.sublevel->subsurface); MwLLWaylandFlush(handle); From 044b067f7fde1c0ddcc40f56aef90ba9bdb82580 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 9 Jul 2026 15:19:25 -0700 Subject: [PATCH 760/836] several fixes. layer surfaces now work --- src/backend/wayland/interfaces.c | 2 +- src/backend/wayland/wayland.c | 152 ++++++++++++++++++++----------- 2 files changed, 100 insertions(+), 54 deletions(-) diff --git a/src/backend/wayland/interfaces.c b/src/backend/wayland/interfaces.c index 0d9f6d663..27927728a 100644 --- a/src/backend/wayland/interfaces.c +++ b/src/backend/wayland/interfaces.c @@ -655,7 +655,7 @@ static void keyboard_keymap(void* data, MwLL self = data; (void)wl_keyboard; - if(self->wayland.type == MwLL_WAYLAND_TOPLEVEL || self->wayland.type == MwLL_WAYLAND_LAYER_SURFACE) { + if(!self->wayland.parent) { assert(format == WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1); char* map_shm = (char*)mmap(NULL, size, PROT_READ, MAP_SHARED, fd, 0); diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 0eb3cafbb..91153f65d 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -126,9 +126,11 @@ static int event_loop(MwLL handle) { if(!poll(&fd, 1, timeout.tv_nsec)) { wl_display_cancel_read(wayland->display); - MwLLWaylandBufferUpdate(handle, &wayland->framebuffer); - if(wayland->type == MwLL_WAYLAND_TOPLEVEL) - MwLLWaylandBufferUpdate(handle, &wayland->backbuffer); + if(wayland->configured) { + MwLLWaylandBufferUpdate(handle, &wayland->framebuffer); + if(wayland->type == MwLL_WAYLAND_TOPLEVEL) + MwLLWaylandBufferUpdate(handle, &wayland->backbuffer); + } return 0; } wl_display_read_events(wayland->display); @@ -304,10 +306,11 @@ static void setup_toplevel(MwLL r, int x, int y) { /* Perform the initial commit and wait for the first configure event */ wl_surface_commit(r->wayland.backbuffer.surface); wl_surface_commit(r->wayland.framebuffer.surface); - while(!r->wayland.configured) { - event_loop(r); + if(wl_display_roundtrip(r->wayland.display) == -1) { + printf("roundtrip failed\n"); + raise(SIGTRAP); + return; } - /* setup decorations if we can */ if(r->wayland.has_decorations) { zxdg_decoration_manager_v1_context_t* dec = WAYLAND_GET_INTERFACE(r->wayland, zxdg_decoration_manager_v1)->context; @@ -320,20 +323,25 @@ static void setup_toplevel(MwLL r, int x, int y) { } else { wl_subsurface_set_position(r->wayland.toplevel->ssurface, r->wayland.do_csd ? CSD_BORDER_FRAME_LEFT : 0, r->wayland.do_csd ? CSD_BORDER_FRAME_TOP : 0); } + + MwLLWaylandFramebufferSetup(&r->wayland); + MwLLWaylandBackbufferSetup(&r->wayland); } /* Toplevel destroy function */ static void destroy_toplevel(MwLL r) { if(shget(r->wayland.wl_protocol_map, zxdg_decoration_manager_v1_interface.name) != NULL) { zxdg_decoration_manager_v1_context_t* dec = WAYLAND_GET_INTERFACE(r->wayland, zxdg_decoration_manager_v1)->context; + zxdg_toplevel_decoration_v1_destroy(dec->decoration); zxdg_decoration_manager_v1_destroy(dec->manager); } - xdg_surface_destroy(r->wayland.toplevel->xdg_surface); + MwLLWaylandFramebufferDestroy(&r->wayland); + MwLLWaylandBackbufferDestroy(&r->wayland); xdg_toplevel_destroy(r->wayland.toplevel->xdg_top_level); - wl_surface_destroy(r->wayland.framebuffer.surface); + xdg_surface_destroy(r->wayland.toplevel->xdg_surface); wl_compositor_destroy(r->wayland.compositor); @@ -343,12 +351,25 @@ static void destroy_toplevel(MwLL r) { xkb_context_unref(r->wayland.xkb_context); + wl_pointer_destroy(r->wayland.pointer); + wl_keyboard_destroy(r->wayland.keyboard); + + if(r->common.user) { + MwWidget w = r->common.user; + int i; + for(i = 0; i < arrlen(w->children); i++) { + if(w->children[i]->lowlevel->wayland.type == MwLL_WAYLAND_SUBLEVEL) { + MwLL child = w->children[i]->lowlevel; + wl_subsurface_destroy(child->wayland.sublevel->subsurface); + child->wayland.sublevel->subsurface = NULL; + } + } + } + + wl_surface_destroy(r->wayland.framebuffer.surface); + free(r->wayland.toplevel); - // wl_registry_destroy(r->wayland.registry); - - // wl_display_disconnect(r->wayland.display); - r->wayland.configured = MwFALSE; } @@ -397,6 +418,9 @@ static void setup_sublevel(MwLL parent, MwLL r, int x, int y) { r->wayland.xkb_state = parent->wayland.xkb_state; r->wayland.configured = MwTRUE; + + MwLLWaylandFramebufferSetup(&r->wayland); + MwLLWaylandBackbufferSetup(&r->wayland); } /* Sublevel setup function */ @@ -449,15 +473,14 @@ struct xdg_popup_listener popup_listener = { /* Popup setup function */ static void setup_popup(MwLL r, int x, int y, MwLL parent) { - struct xdg_surface* xdg_surface; - MwLL topmost_parent = r->wayland.parent; + MwLL topmost_parent = r->wayland.parent; r->wayland.type = MwLL_WAYLAND_POPUP; r->wayland.x = x; r->wayland.y = y; r->wayland.popup = malloc(sizeof(struct _MwLLWaylandPopup)); - while(topmost_parent->wayland.type != MwLL_WAYLAND_TOPLEVEL) { + while(topmost_parent->wayland.type != MwLL_WAYLAND_TOPLEVEL && topmost_parent->wayland.type != MwLL_WAYLAND_LAYER_SURFACE) { topmost_parent = topmost_parent->wayland.parent; } if(!topmost_parent->wayland.has_decorations && topmost_parent->wayland.do_csd) { @@ -495,7 +518,6 @@ static void setup_popup(MwLL r, int x, int y, MwLL parent) { r->wayland.popup->xdg_positioner, r->wayland.x, r->wayland.y, r->wayland.ww, r->wayland.wh); - xdg_surface = topmost_parent->wayland.toplevel->xdg_surface; r->wayland.xkb_keymap = topmost_parent->wayland.xkb_keymap; r->wayland.xkb_state = topmost_parent->wayland.xkb_state; @@ -504,15 +526,30 @@ static void setup_popup(MwLL r, int x, int y, MwLL parent) { r->wayland.popup->xdg_surface = xdg_wm_base_get_xdg_surface(WAYLAND_GET_INTERFACE(r->wayland, xdg_wm_base)->context, r->wayland.framebuffer.surface); - r->wayland.popup->xdg_popup = xdg_surface_get_popup( - r->wayland.popup->xdg_surface, - xdg_surface, - r->wayland.popup->xdg_positioner); + if(topmost_parent->wayland.type == MwLL_WAYLAND_TOPLEVEL) { + r->wayland.popup->xdg_popup = xdg_surface_get_popup( + r->wayland.popup->xdg_surface, + topmost_parent->wayland.toplevel->xdg_surface, + r->wayland.popup->xdg_positioner); + } else if(topmost_parent->wayland.type == MwLL_WAYLAND_LAYER_SURFACE) { + r->wayland.popup->xdg_popup = xdg_surface_get_popup( + r->wayland.popup->xdg_surface, NULL, + r->wayland.popup->xdg_positioner); + zwlr_layer_surface_v1_get_popup(topmost_parent->wayland.layer_surface->surface, r->wayland.popup->xdg_popup); + } xdg_popup_add_listener(r->wayland.popup->xdg_popup, &popup_listener, r); r->wayland.popup->xdg_surface_listener.configure = xdg_surface_configure; xdg_surface_add_listener(r->wayland.popup->xdg_surface, &r->wayland.popup->xdg_surface_listener, r); + + if(wl_display_roundtrip(r->wayland.display) == -1) { + printf("roundtrip failed\n"); + raise(SIGTRAP); + return; + } + + MwLLWaylandFramebufferSetup(&r->wayland); } /* Popup destroy function */ @@ -538,14 +575,16 @@ static void layer_shell_configure(void* data, MwLL self = data; zwlr_layer_surface_v1_ack_configure(surface, serial); - self->wayland.x = 0; - self->wayland.y = 0; self->wayland.ww = width; self->wayland.wh = height; - wl_surface_commit(self->wayland.framebuffer.surface); - self->wayland.configured = MwTRUE; + + MwLLWaylandFramebufferSetup(&self->wayland); + MwLLWaylandRegionSetup(self); + MwLLDispatch(self, resize, NULL); + + wl_surface_commit(self->wayland.framebuffer.surface); }; static void layer_shell_done(void* data, @@ -600,25 +639,25 @@ static void setup_layer_surface(MwLL r, int x, int y, int width, int height) { r->wayland.framebuffer.surface = wl_compositor_create_surface(r->wayland.compositor); - r->wayland.layer_surface->surface = zwlr_layer_shell_v1_get_layer_surface(layer_shell, r->wayland.framebuffer.surface, NULL, 1, "milsko-surfaces"); + r->wayland.layer_surface->surface = zwlr_layer_shell_v1_get_layer_surface(layer_shell, r->wayland.framebuffer.surface, NULL, ZWLR_LAYER_SHELL_V1_LAYER_OVERLAY, "milsko-surfaces"); zwlr_layer_surface_v1_set_size(r->wayland.layer_surface->surface, width, height); - - zwlr_layer_surface_v1_set_anchor(r->wayland.layer_surface->surface, - ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT | - ZWLR_LAYER_SURFACE_V1_ANCHOR_RIGHT | - ZWLR_LAYER_SURFACE_V1_ANCHOR_TOP); zwlr_layer_surface_v1_set_margin(r->wayland.layer_surface->surface, y, 0, 0, x); + zwlr_layer_surface_v1_set_anchor(r->wayland.layer_surface->surface, ZWLR_LAYER_SURFACE_V1_ANCHOR_TOP | ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT); + zwlr_layer_surface_v1_set_exclusive_zone(r->wayland.layer_surface->surface, 1); + zwlr_layer_surface_v1_set_keyboard_interactivity( + r->wayland.layer_surface->surface, ZWLR_LAYER_SURFACE_V1_KEYBOARD_INTERACTIVITY_ON_DEMAND); zwlr_layer_surface_v1_add_listener(r->wayland.layer_surface->surface, &layer_surface_listener, r); - zwlr_layer_surface_v1_set_keyboard_interactivity(r->wayland.layer_surface->surface, MwTRUE); - /* Perform the initial commit and wait for the first configure event */ wl_surface_commit(r->wayland.framebuffer.surface); - while(!r->wayland.configured) { - event_loop(r); + + if(wl_display_roundtrip(r->wayland.display) == -1) { + printf("roundtrip failed\n"); + raise(SIGTRAP); + return; } } @@ -724,7 +763,7 @@ static void wl_logger(const char* fmt, va_list args) { raise(SIGTRAP); } -static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int height, enum _MwLLWaylandType ty, MwBool can_do_layer_surface) { +static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int height, enum _MwLLWaylandType ty) { /* Wayland does not report global coordinates ever. Compositors are not even expected to have knowledge of this. */ r->common.coordinate_type = MwCOORDINATE_LOCAL; @@ -775,14 +814,11 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh } else { /* * We can't actually have a popup without a parent but this needs to be valid behavior. - * So we either make a wlr layer surface at this point, or just fake it with a borderless window. + * If we're down this code path, though, it means we can't create a layer surface. + * So we just fake it with a borderless window. */ - if(can_do_layer_surface) { - setup_layer_surface(r, x, y, width, height); - } else { - setup_toplevel(r, x, y); - MwLLMakeBorderless(r, MwTRUE); - } + setup_toplevel(r, x, y); + MwLLMakeBorderless(r, MwTRUE); } break; case MwLL_WAYLAND_LAYER_SURFACE: @@ -793,9 +829,6 @@ static void widget_setup(MwLL r, MwLL parent, int x, int y, int width, int heigh WIDGET_CHECK(r); - MwLLWaylandFramebufferSetup(&r->wayland); - MwLLWaylandBackbufferSetup(&r->wayland); - r->wayland.region = wl_compositor_create_region(r->wayland.compositor); r->wayland.o_region = wl_compositor_create_region(r->wayland.compositor); MwLLWaylandRegionSetup(r); @@ -847,7 +880,7 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { r->wayland.is_toplevel = parent == NULL; r->wayland.is_clipping = 0; - widget_setup(r, parent, x, y, width, height, MwLL_WAYLAND_UNKNOWN, MwFALSE); + widget_setup(r, parent, x, y, width, height, MwLL_WAYLAND_UNKNOWN); #ifdef USE_DBUS if(!parent && wl_call_tbl.has_dbus) { @@ -1716,9 +1749,17 @@ static void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) { } static void MwLLMakeToolWindowImpl(MwLL handle) { + MwBool can_do_layer_surface = MwFALSE; + WIDGET_CHECK(handle); - handle->wayland.type_to_be = MwLL_WAYLAND_POPUP; + can_do_layer_surface = (WAYLAND_GET_INTERFACE(handle->wayland, zwlr_layer_shell_v1) != NULL); + + if(!handle->wayland.parent && can_do_layer_surface) { + handle->wayland.type_to_be = MwLL_WAYLAND_LAYER_SURFACE; + } else { + handle->wayland.type_to_be = MwLL_WAYLAND_POPUP; + } } static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { @@ -1745,12 +1786,10 @@ static void MwLLBeginStateChangeImpl(MwLL handle) { } static void MwLLEndStateChangeImpl(MwLL handle) { - MwLL topmost_parent; - MwBool can_do_layer_surface = MwFALSE; + MwLL topmost_parent; WIDGET_CHECK(handle); - topmost_parent = handle->wayland.parent; - can_do_layer_surface = (WAYLAND_GET_INTERFACE(handle->wayland, zwlr_layer_shell_v1) != NULL); + topmost_parent = handle->wayland.parent; while(topmost_parent) { if(topmost_parent->wayland.type != MwLL_WAYLAND_TOPLEVEL) { @@ -1777,9 +1816,15 @@ static void MwLLEndStateChangeImpl(MwLL handle) { break; } + if(wl_display_roundtrip(handle->wayland.display) == -1) { + printf("roundtrip failed\n"); + raise(SIGTRAP); + return; + } + MwLLWaylandFlush(handle); - widget_setup(handle, handle->wayland.parent, handle->wayland.detach_point.x, handle->wayland.detach_point.y, handle->wayland.ww, handle->wayland.wh, handle->wayland.type_to_be, can_do_layer_surface); + widget_setup(handle, handle->wayland.parent, handle->wayland.detach_point.x, handle->wayland.detach_point.y, handle->wayland.ww, handle->wayland.wh, handle->wayland.type_to_be); handle->wayland.is_toplevel = MwTRUE; @@ -1793,7 +1838,8 @@ static void MwLLEndStateChangeImpl(MwLL handle) { if(w->children[i]->lowlevel->wayland.type == MwLL_WAYLAND_SUBLEVEL) { MwLL child = w->children[i]->lowlevel; child->wayland.sublevel->xdg_surface = handle->wayland.popup->xdg_surface; - wl_subsurface_destroy(child->wayland.sublevel->subsurface); + if(child->wayland.sublevel->subsurface) + wl_subsurface_destroy(child->wayland.sublevel->subsurface); MwLLWaylandFlush(handle); child->wayland.sublevel->subsurface = wl_subcompositor_get_subsurface(child->wayland.sublevel->subcompositor, child->wayland.framebuffer.surface, handle->wayland.framebuffer.surface); From 070ee6025bc1567804cbab54c2a288054d27ccc0 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 9 Jul 2026 15:34:59 -0700 Subject: [PATCH 761/836] fix wayland warnings --- src/backend/wayland/interfaces.c | 26 ++++++++++++++++++++------ src/backend/wayland/region.c | 5 ++--- src/backend/wayland/wayland.c | 20 ++++++++++++++++---- 3 files changed, 38 insertions(+), 13 deletions(-) diff --git a/src/backend/wayland/interfaces.c b/src/backend/wayland/interfaces.c index 27927728a..57c30e388 100644 --- a/src/backend/wayland/interfaces.c +++ b/src/backend/wayland/interfaces.c @@ -314,6 +314,7 @@ struct zwp_primary_selection_source_v1_listener zwp_primary_selection_source_v1_ /* wl_data_device_manager setup function */ static wayland_protocol_t* wl_data_device_manager_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { + (void)version; wayland->clipboard_manager.wl = wl_registry_bind(wayland->registry, name, &wl_data_device_manager_interface, 2); wayland->clipboard_source.wl = wl_data_device_manager_create_data_source(wayland->clipboard_manager.wl); @@ -347,6 +348,7 @@ static void wl_data_device_manager_interface_destroy(struct _MwLLWayland* waylan /* zwp_primary_selection_device_manager_v1 setup function */ static wayland_protocol_t* zwp_primary_selection_device_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { + (void)version; wayland->clipboard_manager.zwp = wl_registry_bind(wayland->registry, name, &zwp_primary_selection_device_manager_v1_interface, 1); wayland->clipboard_source.zwp = zwp_primary_selection_device_manager_v1_create_source(wayland->clipboard_manager.zwp); @@ -375,6 +377,7 @@ static void zwp_primary_selection_device_manager_v1_interface_destroy(struct _Mw /* zwp_primary_selection_device_manager_v1 setup function */ static wayland_protocol_t* zwp_pointer_constraints_v1_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { + (void)version; wayland->pointer_constraints = wl_registry_bind(wayland->registry, name, &zwp_pointer_constraints_v1_interface, 1); return NULL; } @@ -454,6 +457,7 @@ static void xdg_borderless_step_mdown(MwLL self, MwMouse p, MwU32 serial) { }; } static void xdg_borderless_step_mup(MwLL self, MwMouse p, MwU32 serial) { + (void)serial; if(self->wayland.type == MwLL_WAYLAND_TOPLEVEL && self->wayland.backbuffer.surface == curSurface) { if(p.point.y <= CSD_BORDER_FRAME_TOP) { if(p.point.x >= CSD_BORDER_FRAME_LEFT && p.point.x <= CSD_BORDER_FRAME_LEFT + 18) { @@ -508,6 +512,7 @@ struct zwp_relative_pointer_v1_listener MwLLWaylandRelativePointerListener = /* zwp_primary_selection_device_manager_v1 setup function */ static wayland_protocol_t* zwp_relative_pointer_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { + (void)version; wayland->relative_pointer_manager = wl_registry_bind(wayland->registry, name, &zwp_relative_pointer_manager_v1_interface, 1); return NULL; } @@ -1016,6 +1021,7 @@ static void wl_seat_interface_destroy(struct _MwLLWayland* wayland, wayland_prot /* wl_output setup function */ static wayland_protocol_t* wl_output_setup(MwU32 name, MwLL ll, MwU32 version) { + (void)version; ll->wayland.output = wl_registry_bind(ll->wayland.registry, name, &wl_output_interface, 1); wl_output_add_listener(ll->wayland.output, &output_listener, ll); @@ -1029,6 +1035,7 @@ static void wl_output_interface_destroy(struct _MwLLWayland* wayland, wayland_pr /* wl_compositor setup function */ static wayland_protocol_t* wl_compositor_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { + (void)version; wayland->compositor = wl_registry_bind(wayland->registry, name, &wl_compositor_interface, 1); return NULL; @@ -1041,6 +1048,7 @@ static void wl_compositor_interface_destroy(struct _MwLLWayland* wayland, waylan /* wl_subcompositor setup function */ static wayland_protocol_t* wl_subcompositor_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { + (void)version; if(wayland->type == MwLL_WAYLAND_TOPLEVEL) { wayland->toplevel->scompositor = wl_registry_bind(wayland->registry, name, &wl_subcompositor_interface, 1); } else { @@ -1058,7 +1066,8 @@ static void wl_subcompositor_interface_destroy(struct _MwLLWayland* wayland, way /* xdg_wm_base setup function */ static wayland_protocol_t* xdg_wm_base_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); - proto->listener = malloc(sizeof(struct xdg_wm_base_listener)); + (void)version; + proto->listener = malloc(sizeof(struct xdg_wm_base_listener)); ((struct xdg_wm_base_listener*)proto->listener)->ping = xdg_wm_base_ping; @@ -1076,7 +1085,8 @@ static void xdg_wm_base_interface_destroy(struct _MwLLWayland* wayland, wayland_ /* xdg_wm_base setup function */ static wayland_protocol_t* wp_viewporter_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); - proto->context = wl_registry_bind(wayland->registry, name, &wp_viewporter_interface, 1); + (void)version; + proto->context = wl_registry_bind(wayland->registry, name, &wp_viewporter_interface, 1); return proto; } @@ -1090,7 +1100,8 @@ static void wp_viewporter_interface_destroy(struct _MwLLWayland* wayland, waylan static wayland_protocol_t* zxdg_decoration_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); zxdg_decoration_manager_v1_context_t* ctx = malloc(sizeof(zxdg_decoration_manager_v1_context_t)); - proto->listener = NULL; + (void)version; + proto->listener = NULL; ctx->manager = wl_registry_bind(wayland->registry, name, &zxdg_decoration_manager_v1_interface, 1); ; @@ -1107,6 +1118,7 @@ static void zxdg_decoration_manager_v1_interface_destroy(struct _MwLLWayland* wa /* wl_shm setup function */ static wayland_protocol_t* wl_shm_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { + (void)version; wayland->framebuffer.shm = wl_registry_bind(wayland->registry, name, &wl_shm_interface, 1); wayland->backbuffer.shm = wl_registry_bind(wayland->registry, name, &wl_shm_interface, 1); wayland->cursor.shm = wl_registry_bind(wayland->registry, name, &wl_shm_interface, 1); @@ -1122,6 +1134,8 @@ static void wl_shm_interface_destroy(struct _MwLLWayland* wayland, wayland_proto static wayland_protocol_t* xdg_toplevel_icon_manager_v1_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); + (void)version; + proto->context = wl_registry_bind(wayland->registry, name, &xdg_toplevel_icon_manager_v1_interface, 1); proto->listener = NULL; @@ -1133,10 +1147,10 @@ static void xdg_toplevel_icon_manager_v1_interface_destroy(struct _MwLLWayland* free(data->listener); } -static wayland_protocol_t* zwlr_layer_shell_v1_setup(MwU32 name, struct _MwLLWayland* wayland, wayland_protocol_t* data) { +static wayland_protocol_t* zwlr_layer_shell_v1_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { wayland_protocol_t* proto = malloc(sizeof(wayland_protocol_t)); - proto->context = wl_registry_bind(wayland->registry, name, &zwlr_layer_shell_v1_interface, 1); + proto->context = wl_registry_bind(wayland->registry, name, &zwlr_layer_shell_v1_interface, version); proto->listener = NULL; return proto; @@ -1145,7 +1159,7 @@ static wayland_protocol_t* zwlr_layer_shell_v1_setup(MwU32 name, struct _MwLLWay static void zwlr_layer_shell_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { (void)wayland; - // free(data); + free(data); } /* Function for setting up the callbacks/structs that will be registered upon the relevant interfaces being found. */ diff --git a/src/backend/wayland/region.c b/src/backend/wayland/region.c index 83acdbea1..4b6a5ae21 100644 --- a/src/backend/wayland/region.c +++ b/src/backend/wayland/region.c @@ -7,9 +7,8 @@ void MwLLWaylandRegionInvalidate(MwLL handle) { wl_region_subtract(handle->wayland.region, 0, 0, handle->wayland.ww, handle->wayland.wh); } void MwLLWaylandRegionSetup(MwLL handle) { - MwLL parent = handle->wayland.parent; - int width = (handle->wayland.clipping_rect.width == 0) ? handle->wayland.ww : handle->wayland.clipping_rect.width; - int height = (handle->wayland.clipping_rect.height == 0) ? handle->wayland.wh : handle->wayland.clipping_rect.height; + int width = (handle->wayland.clipping_rect.width == 0) ? handle->wayland.ww : handle->wayland.clipping_rect.width; + int height = (handle->wayland.clipping_rect.height == 0) ? handle->wayland.wh : handle->wayland.clipping_rect.height; if(!handle->wayland.has_decorations && handle->wayland.do_csd && handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { width += CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT; diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 91153f65d..749122a95 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -460,6 +460,7 @@ static void popup_repositioned(void* data, struct xdg_popup* xdg_popup, uint32_t token) { MwLL self = data; + (void)xdg_popup; xdg_surface_ack_configure(self->wayland.popup->xdg_surface, token); }; @@ -987,15 +988,26 @@ static void MwLLSetXYImpl(MwLL handle, int x, int y) { MwLLWaylandRegionInvalidate(handle); handle->wayland.x = x; handle->wayland.y = y; - if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL) { - wl_subsurface_set_position(handle->wayland.sublevel->subsurface, x, y); - } - if(handle->wayland.type == MwLL_WAYLAND_POPUP) { + switch(handle->wayland.type) { + case MwLL_WAYLAND_TOPLEVEL: + /* toplevels cannot be moved */ + break; + case MwLL_WAYLAND_SUBLEVEL: + wl_subsurface_set_position(handle->wayland.sublevel->subsurface, x, y); + break; + case MwLL_WAYLAND_POPUP: xdg_positioner_set_anchor_rect(handle->wayland.popup->xdg_positioner, handle->wayland.parent->wayland.x, handle->wayland.parent->wayland.y, handle->wayland.ww, handle->wayland.wh); xdg_positioner_set_offset(handle->wayland.popup->xdg_positioner, x, y); xdg_popup_reposition(handle->wayland.popup->xdg_popup, handle->wayland.popup->xdg_positioner, 0); xdg_surface_set_window_geometry(handle->wayland.popup->xdg_surface, 0, 0, handle->wayland.ww, handle->wayland.wh); + break; + case MwLL_WAYLAND_LAYER_SURFACE: + zwlr_layer_surface_v1_set_margin(handle->wayland.layer_surface->surface, + y, 0, 0, x); + break; + case MwLL_WAYLAND_UNKNOWN: + break; } MwLLWaylandRegionSetup(handle); From 53878b08ee256ceea78389ac24643eaef3016bcb Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 9 Jul 2026 15:55:11 -0700 Subject: [PATCH 762/836] fix cmake --- CMakeLists.txt | 28 +++++++++++++++++++++++++++- src/backend/wayland/wayland.c | 26 ++++++++++++++++---------- 2 files changed, 43 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5f125660b..6277f1239 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -197,7 +197,32 @@ if(MW_USE_WAYLAND) ) endfunction() - + function(scan_wayland_protocol_from_file proto file) + SET(proto_c ${CMAKE_CURRENT_SOURCE_DIR}/src/backend/wayland/wayland-${proto}-protocol.c) + execute_process( + COMMAND wayland-scanner private-code ${CMAKE_CURRENT_SOURCE_DIR}/resource/wayland/${file} ${proto_c} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE WAYLAND_SCANNER_OUTPUT + ERROR_VARIABLE WAYLAND_SCANNER_ERROR + ECHO_OUTPUT_VARIABLE + ECHO_ERROR_VARIABLE + COMMAND_ECHO STDOUT + ) + target_sources( + Mw + PRIVATE + ${proto_c} + ) + execute_process( + COMMAND wayland-scanner client-header ${CMAKE_CURRENT_SOURCE_DIR}/resource/wayland/${file} ${CMAKE_CURRENT_SOURCE_DIR}/include/Mw/LowLevel/Wayland/${proto}-client-protocol.h + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE WAYLAND_SCANNER_OUTPUT + ERROR_VARIABLE WAYLAND_SCANNER_ERROR + ECHO_OUTPUT_VARIABLE + ECHO_ERROR_VARIABLE + COMMAND_ECHO STDOUT + ) + endfunction() check_include_files(wayland-client.h HAVE_WL_H) check_include_files(xkbcommon/xkbcommon.h HAVE_XKBCOMMON_H) @@ -215,6 +240,7 @@ if(MW_USE_WAYLAND) scan_wayland_protocol("unstable" "primary-selection" "-unstable-v1") scan_wayland_protocol("unstable" "pointer-constraints" "-unstable-v1") scan_wayland_protocol("unstable" "relative-pointer" "-unstable-v1") + scan_wayland_protocol_from_file("wlr-layer-shell" "wlr-layer-shell-unstable-v1.xml") target_sources( Mw diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 749122a95..948a7bf01 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -234,12 +234,14 @@ static void xdg_surface_configure( } void MwLLWaylandBufferUpdate(MwLL self, struct _MwLLWaylandShmBuffer* buffer) { - memcpy(buffer->buf, buffer->buf_back, buffer->buf_size); - if(buffer->surface) { - // Yes this is needed every time, it's how we fix weston. - if(self->wayland.configured) - wl_surface_attach(buffer->surface, buffer->shm_buffer, 0, 0); - wl_surface_commit(buffer->surface); + if(self->wayland.configured) { + memcpy(buffer->buf, buffer->buf_back, buffer->buf_size); + if(buffer->surface) { + // Yes this is needed every time, it's how we fix weston. + if(self->wayland.configured) + wl_surface_attach(buffer->surface, buffer->shm_buffer, 0, 0); + wl_surface_commit(buffer->surface); + } } } @@ -306,11 +308,15 @@ static void setup_toplevel(MwLL r, int x, int y) { /* Perform the initial commit and wait for the first configure event */ wl_surface_commit(r->wayland.backbuffer.surface); wl_surface_commit(r->wayland.framebuffer.surface); - if(wl_display_roundtrip(r->wayland.display) == -1) { - printf("roundtrip failed\n"); - raise(SIGTRAP); - return; + + while(!r->wayland.configured) { + if(wl_display_roundtrip(r->wayland.display) == -1) { + printf("roundtrip failed\n"); + raise(SIGTRAP); + return; + } } + /* setup decorations if we can */ if(r->wayland.has_decorations) { zxdg_decoration_manager_v1_context_t* dec = WAYLAND_GET_INTERFACE(r->wayland, zxdg_decoration_manager_v1)->context; From 14d010f9a25022515d1b2a062543ad5dd1814d34 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 9 Jul 2026 16:00:39 -0700 Subject: [PATCH 763/836] wayland: have MwLLEndStateChange use the right x/y when not detaching --- src/backend/wayland/wayland.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 948a7bf01..2ffa1c6ba 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -1805,8 +1805,12 @@ static void MwLLBeginStateChangeImpl(MwLL handle) { static void MwLLEndStateChangeImpl(MwLL handle) { MwLL topmost_parent; + int x, y; WIDGET_CHECK(handle); + x = handle->wayland.detatching ? handle->wayland.detach_point.x : handle->wayland.x; + y = handle->wayland.detatching ? handle->wayland.detach_point.y : handle->wayland.y; + topmost_parent = handle->wayland.parent; while(topmost_parent) { @@ -1842,7 +1846,7 @@ static void MwLLEndStateChangeImpl(MwLL handle) { MwLLWaylandFlush(handle); - widget_setup(handle, handle->wayland.parent, handle->wayland.detach_point.x, handle->wayland.detach_point.y, handle->wayland.ww, handle->wayland.wh, handle->wayland.type_to_be); + widget_setup(handle, handle->wayland.parent, x, y, handle->wayland.ww, handle->wayland.wh, handle->wayland.type_to_be); handle->wayland.is_toplevel = MwTRUE; From c2bb601311d1bec227b19298c072b7447d6038d2 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 9 Jul 2026 21:45:30 -0700 Subject: [PATCH 764/836] seperate wayland's cairo functionality into a backend that can be used seperately --- CMakeLists.txt | 1 + include/Mw/LowLevel.h | 4 +- include/Mw/LowLevel/Cairo.h | 229 +++++++++++++++++++++++++++++ include/Mw/LowLevel/Wayland.h | 163 ++------------------- pl/rules.pl | 1 + src/backend/cairo.c | 266 ++++++++++++++++++++++++++++++++++ src/backend/wayland/buffer.c | 12 +- src/backend/wayland/wayland.c | 164 ++++++--------------- src/core.c | 8 +- 9 files changed, 563 insertions(+), 285 deletions(-) create mode 100644 include/Mw/LowLevel/Cairo.h create mode 100644 src/backend/cairo.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 6277f1239..2f6d8305a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -245,6 +245,7 @@ if(MW_USE_WAYLAND) target_sources( Mw PRIVATE + src/backend/cairo.c src/backend/wayland/wayland.c src/backend/wayland/buffer.c src/backend/wayland/interfaces.c diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 2ba2265f5..54f1b890c 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -132,6 +132,7 @@ union _MwLL { #endif #ifdef USE_WAYLAND struct _MwLLWayland wayland; + struct _MwLLCairo cairo; #endif #ifdef USE_COCOA struct _MwLLCocoa cocoa; @@ -153,7 +154,7 @@ union _MwLLColor { struct _MwLLGDIColor gdi; #endif #ifdef USE_WAYLAND - struct _MwLLWaylandColor wayland; + struct _MwLLCairoColor wayland; #endif #ifdef USE_COCOA struct _MwLLCocoaColor cocoa; @@ -173,6 +174,7 @@ union _MwLLPixmap { #endif #ifdef USE_WAYLAND struct _MwLLWaylandPixmap wayland; + struct _MwLLCairoPixmap cairo; /* same structure but we do this for code clarity */ #endif #ifdef USE_COCOA struct _MwLLCocoaPixmap cocoa; diff --git a/include/Mw/LowLevel/Cairo.h b/include/Mw/LowLevel/Cairo.h new file mode 100644 index 000000000..dd2cfa322 --- /dev/null +++ b/include/Mw/LowLevel/Cairo.h @@ -0,0 +1,229 @@ +/*! + * @file Mw/LowLevel/Cairo.h + * @brief Cairo Backend + * @warning This is used MEGA internally. + */ +#ifndef __MW_LOWLEVEL_CAIRO_H__ +#define __MW_LOWLEVEL_CAIRO_H__ + +#include +#include +#include +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +MWDECL int MwLLCairoCallInit(void); + +#ifdef __cplusplus +} +#endif + +#define CSD_BORDER_FRAME_LEFT 5 +#define CSD_BORDER_FRAME_RIGHT 5 +#define CSD_BORDER_FRAME_TOP 23 +#define CSD_BORDER_FRAME_BOTTOM 4 + +typedef struct cairo_call_table { + void* cairo_lib; + + void (*cairo_set_line_width)(cairo_t* cr, + double width); + void (*cairo_scale)(cairo_t* cr, + double sx, + double sy); + cairo_t* (*cairo_create)(cairo_surface_t* target); + void (*cairo_move_to)(cairo_t* cr, + double x, + double y); + + void (*cairo_rectangle)(cairo_t* cr, + double x, + double y, + double width, + double height); + void (*cairo_new_path)(cairo_t* cr); + void (*cairo_set_line_cap)(cairo_t* cr, + cairo_line_cap_t line_cap); + void (*cairo_set_source_rgba)(cairo_t* cr, + double red, + double green, + double blue, + double alpha); + void (*cairo_set_source_rgb)(cairo_t* cr, + double red, + double green, + double blue); + void (*cairo_reset_clip)(cairo_t* cr); + unsigned char* (*cairo_image_surface_get_data)(cairo_surface_t* surface); + void (*cairo_line_to)(cairo_t* cr, + double x, + double y); + cairo_status_t (*cairo_surface_write_to_png)(cairo_surface_t* surface, const char* filename); + void (*cairo_surface_destroy)(cairo_surface_t* surface); + cairo_surface_t* (*cairo_image_surface_create_for_data)(unsigned char* data, + cairo_format_t format, + int width, + int height, + int stride); + cairo_surface_t* (*cairo_image_surface_create)(cairo_format_t format, + int width, + int height); + void (*cairo_destroy)(cairo_t* cr); + cairo_pattern_t* (*cairo_get_source)(cairo_t* cr); + void (*cairo_close_path)(cairo_t* cr); + void (*cairo_paint)(cairo_t* cr); + void (*cairo_surface_flush)(cairo_surface_t* surface); + void (*cairo_clip)(cairo_t* cr); + void (*cairo_save)(cairo_t* cr); + void (*cairo_restore)(cairo_t* cr); + void (*cairo_surface_mark_dirty)(cairo_surface_t* surface); + void (*cairo_stroke)(cairo_t* cr); + void (*cairo_set_source_surface)(cairo_t* cr, + cairo_surface_t* surface, + double x, + double y); + void (*cairo_fill)(cairo_t* cr); + void (*cairo_pattern_set_filter)(cairo_pattern_t* pattern, + cairo_filter_t filter); + void (*cairo_set_antialias)(cairo_t*, cairo_antialias_t); + void (*cairo_set_operator)(cairo_t* cr, cairo_operator_t op); + +} cairo_call_table_t; + +extern cairo_call_table_t cairo_call_tbl; + +/* defined inline right here so that it doesn't conflict with the other macros */ +MwInline int cairo_load_funcs() { +#ifdef __APPLE__ + cairo_call_tbl.cairo_lib = MwDynamicOpen("libcairo.dylib"); +#else + cairo_call_tbl.cairo_lib = MwDynamicOpen("libcairo.so"); +#endif + if(!cairo_call_tbl.cairo_lib) { + printf("(libcairo not found, cannot use Wayland or Cairo backend.)\n"); + return 1; + } + +#define CAIRO_FUNC(x) \ + cairo_call_tbl.x = MwDynamicSymbol(cairo_call_tbl.cairo_lib, #x); \ + if(!cairo_call_tbl.x) { \ + printf("WARNING: Could use Wayland/Cairo backend if " #x " was not found. Do you have libcairo?\n"); \ + return 1; \ + }; + + CAIRO_FUNC(cairo_set_line_width); + CAIRO_FUNC(cairo_scale); + CAIRO_FUNC(cairo_create); + CAIRO_FUNC(cairo_move_to); + CAIRO_FUNC(cairo_rectangle); + CAIRO_FUNC(cairo_new_path); + CAIRO_FUNC(cairo_set_line_cap); + CAIRO_FUNC(cairo_set_antialias); + CAIRO_FUNC(cairo_set_source_rgba); + CAIRO_FUNC(cairo_set_source_rgb); + CAIRO_FUNC(cairo_reset_clip); + CAIRO_FUNC(cairo_image_surface_get_data); + CAIRO_FUNC(cairo_line_to); + CAIRO_FUNC(cairo_surface_write_to_png); + CAIRO_FUNC(cairo_surface_destroy); + CAIRO_FUNC(cairo_image_surface_create_for_data); + CAIRO_FUNC(cairo_image_surface_create); + CAIRO_FUNC(cairo_destroy); + CAIRO_FUNC(cairo_get_source); + CAIRO_FUNC(cairo_close_path); + CAIRO_FUNC(cairo_paint); + CAIRO_FUNC(cairo_surface_flush); + CAIRO_FUNC(cairo_clip); + CAIRO_FUNC(cairo_save); + CAIRO_FUNC(cairo_restore); + CAIRO_FUNC(cairo_surface_mark_dirty); + CAIRO_FUNC(cairo_stroke); + CAIRO_FUNC(cairo_set_source_surface); + CAIRO_FUNC(cairo_fill); + CAIRO_FUNC(cairo_set_operator); + CAIRO_FUNC(cairo_pattern_set_filter); +#undef CAIRO_FUNC + + return 0; +} + +#define cairo_set_line_width cairo_call_tbl.cairo_set_line_width +#define cairo_scale cairo_call_tbl.cairo_scale +#define cairo_create cairo_call_tbl.cairo_create +#define cairo_move_to cairo_call_tbl.cairo_move_to +#define cairo_rectangle cairo_call_tbl.cairo_rectangle +#define cairo_new_path cairo_call_tbl.cairo_new_path +#define cairo_set_line_cap cairo_call_tbl.cairo_set_line_cap +#define cairo_set_antialias cairo_call_tbl.cairo_set_antialias +#define cairo_set_source_rgba cairo_call_tbl.cairo_set_source_rgba +#define cairo_set_source_rgb cairo_call_tbl.cairo_set_source_rgb +#define cairo_reset_clip cairo_call_tbl.cairo_reset_clip +#define cairo_image_surface_get_data cairo_call_tbl.cairo_image_surface_get_data +#define cairo_line_to cairo_call_tbl.cairo_line_to +#define cairo_surface_write_to_png cairo_call_tbl.cairo_surface_write_to_png +#define cairo_surface_destroy cairo_call_tbl.cairo_surface_destroy +#define cairo_image_surface_create_for_data cairo_call_tbl.cairo_image_surface_create_for_data +#define cairo_image_surface_create cairo_call_tbl.cairo_image_surface_create +#define cairo_destroy cairo_call_tbl.cairo_destroy +#define cairo_get_source cairo_call_tbl.cairo_get_source +#define cairo_close_path cairo_call_tbl.cairo_close_path +#define cairo_paint cairo_call_tbl.cairo_paint +#define cairo_surface_flush cairo_call_tbl.cairo_surface_flush +#define cairo_clip cairo_call_tbl.cairo_clip +#define cairo_save cairo_call_tbl.cairo_save +#define cairo_restore cairo_call_tbl.cairo_restore +#define cairo_surface_mark_dirty cairo_call_tbl.cairo_surface_mark_dirty +#define cairo_stroke cairo_call_tbl.cairo_stroke +#define cairo_set_source_surface cairo_call_tbl.cairo_set_source_surface +#define cairo_fill cairo_call_tbl.cairo_fill +#define cairo_set_operator cairo_call_tbl.cairo_set_operator +#define cairo_pattern_set_filter cairo_call_tbl.cairo_pattern_set_filter + +struct _MwLLCairo { + struct _MwLLCommon common; + + cairo_surface_t* front_cs; + cairo_surface_t* back_cs; + cairo_t* front_cairo; + cairo_t* back_cairo; + /* The cairo to actually use for draw operations. Typically is front_cairo, but wayland's MwLLBeginDraw can change this to the back_cairo so it can be used to draw window decorations. */ + cairo_t* selected_cairo; + + int x; + int y; + int width; + int height; + + MwBool toplevel; + MwLL parent; +}; + +struct _MwLLCairoColor { + struct _MwLLCommonColor common; +}; + +struct _MwLLCairoPixmap { + struct _MwLLCommonPixmap common; + + cairo_surface_t* cs; +}; + +void MwLLCairoFrontSetup(struct _MwLLCairo* cairo, MwU8* data, MwU32 width, MwU32 height); +void MwLLCairoBackSetup(struct _MwLLCairo* cairo, MwU8* data, MwU32 width, MwU32 height); +void MwLLCairoFrontDestroy(struct _MwLLCairo* cairo); +void MwLLCairoBackDestroy(struct _MwLLCairo* cairo); +void MwLLCairoPolygon(struct _MwLLCairo handle, MwPoint* points, int points_count, MwLLColor color); +void MwLLCairoLine(struct _MwLLCairo handle, MwPoint* points, MwLLColor color); +MwLLPixmap MwLLCairoCreatePixmap(struct _MwLLCairo handle, unsigned char* data, int width, int height); +void MwLLCairoPixmapUpdate(MwLLPixmap handle); +void MwLLCairoDestroyPixmap(MwLLPixmap pixmap); +void MwLLCairoDrawPixmap(struct _MwLLCairo handle, MwRect* rect, MwLLPixmap pixmap); + +void MwLLCairoDestroy(struct _MwLLCairo handle); + +#endif diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index c59f06337..21bbc2853 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -11,8 +11,9 @@ #include #include +#include + #include -#include #include #ifdef __cplusplus @@ -42,7 +43,6 @@ struct _MwLLWayland; typedef struct wayland_call_table { void* lib; void* xkb_lib; - void* cairo_lib; #ifdef USE_DBUS MwLLDBusFuncTable dbus; MwBool has_dbus; @@ -79,67 +79,6 @@ typedef struct wayland_call_table { xkb_layout_index_t (*xkb_state_key_get_layout)(struct xkb_state* state, xkb_keycode_t key); void (*xkb_keymap_unref)(struct xkb_keymap* keymap); - void (*cairo_set_line_width)(cairo_t* cr, - double width); - void (*cairo_scale)(cairo_t* cr, - double sx, - double sy); - cairo_t* (*cairo_create)(cairo_surface_t* target); - void (*cairo_move_to)(cairo_t* cr, - double x, - double y); - - void (*cairo_rectangle)(cairo_t* cr, - double x, - double y, - double width, - double height); - void (*cairo_new_path)(cairo_t* cr); - void (*cairo_set_line_cap)(cairo_t* cr, - cairo_line_cap_t line_cap); - void (*cairo_set_source_rgba)(cairo_t* cr, - double red, - double green, - double blue, - double alpha); - void (*cairo_set_source_rgb)(cairo_t* cr, - double red, - double green, - double blue); - void (*cairo_reset_clip)(cairo_t* cr); - unsigned char* (*cairo_image_surface_get_data)(cairo_surface_t* surface); - void (*cairo_line_to)(cairo_t* cr, - double x, - double y); - void (*cairo_surface_destroy)(cairo_surface_t* surface); - cairo_surface_t* (*cairo_image_surface_create_for_data)(unsigned char* data, - cairo_format_t format, - int width, - int height, - int stride); - cairo_surface_t* (*cairo_image_surface_create)(cairo_format_t format, - int width, - int height); - void (*cairo_destroy)(cairo_t* cr); - cairo_pattern_t* (*cairo_get_source)(cairo_t* cr); - void (*cairo_close_path)(cairo_t* cr); - void (*cairo_paint)(cairo_t* cr); - void (*cairo_surface_flush)(cairo_surface_t* surface); - void (*cairo_clip)(cairo_t* cr); - void (*cairo_save)(cairo_t* cr); - void (*cairo_restore)(cairo_t* cr); - void (*cairo_surface_mark_dirty)(cairo_surface_t* surface); - void (*cairo_stroke)(cairo_t* cr); - void (*cairo_set_source_surface)(cairo_t* cr, - cairo_surface_t* surface, - double x, - double y); - void (*cairo_fill)(cairo_t* cr); - void (*cairo_pattern_set_filter)(cairo_pattern_t* pattern, - cairo_filter_t filter); - void (*cairo_set_antialias)(cairo_t*, cairo_antialias_t); - void (*cairo_set_operator)(cairo_t* cr, cairo_operator_t op); - } wayland_call_table_t; extern wayland_call_table_t wl_call_tbl; @@ -149,6 +88,8 @@ extern MwBool MwWaylandVulkan; #define MwWaylandVulkan 0 #endif +MWDECL MwBool MwWaylandCairoOnly; + /* defined inline right here so that it doesn't conflict with the other macros */ MwInline int wayland_load_funcs() { #ifdef __APPLE__ @@ -169,15 +110,7 @@ MwInline int wayland_load_funcs() { printf("(libxkbcommon not found, cannot use Wayland backend.)\n"); return 1; } -#ifdef __APPLE__ - wl_call_tbl.cairo_lib = MwDynamicOpen("libcairo.dylib"); -#else - wl_call_tbl.cairo_lib = MwDynamicOpen("libcairo.so"); -#endif - if(!wl_call_tbl.cairo_lib) { - printf("(libcairo not found, cannot use Wayland backend.)\n"); - return 1; - } + #define WAYLAND_FUNC(x) \ wl_call_tbl.x = MwDynamicSymbol(wl_call_tbl.lib, #x); \ if(!wl_call_tbl.x) { \ @@ -223,44 +156,9 @@ MwInline int wayland_load_funcs() { XKB_FUNC(xkb_state_key_get_layout) #undef XKB_FUNC -#define CAIRO_FUNC(x) \ - wl_call_tbl.x = MwDynamicSymbol(wl_call_tbl.cairo_lib, #x); \ - if(!wl_call_tbl.x) { \ - printf("WARNING: Could use Wayland backend if " #x " was found. Do you have libcairo?\n"); \ - return 1; \ - }; - - CAIRO_FUNC(cairo_set_line_width); - CAIRO_FUNC(cairo_scale); - CAIRO_FUNC(cairo_create); - CAIRO_FUNC(cairo_move_to); - CAIRO_FUNC(cairo_rectangle); - CAIRO_FUNC(cairo_new_path); - CAIRO_FUNC(cairo_set_line_cap); - CAIRO_FUNC(cairo_set_antialias); - CAIRO_FUNC(cairo_set_source_rgba); - CAIRO_FUNC(cairo_set_source_rgb); - CAIRO_FUNC(cairo_reset_clip); - CAIRO_FUNC(cairo_image_surface_get_data); - CAIRO_FUNC(cairo_line_to); - CAIRO_FUNC(cairo_surface_destroy); - CAIRO_FUNC(cairo_image_surface_create_for_data); - CAIRO_FUNC(cairo_image_surface_create); - CAIRO_FUNC(cairo_destroy); - CAIRO_FUNC(cairo_get_source); - CAIRO_FUNC(cairo_close_path); - CAIRO_FUNC(cairo_paint); - CAIRO_FUNC(cairo_surface_flush); - CAIRO_FUNC(cairo_clip); - CAIRO_FUNC(cairo_save); - CAIRO_FUNC(cairo_restore); - CAIRO_FUNC(cairo_surface_mark_dirty); - CAIRO_FUNC(cairo_stroke); - CAIRO_FUNC(cairo_set_source_surface); - CAIRO_FUNC(cairo_fill); - CAIRO_FUNC(cairo_set_operator); - CAIRO_FUNC(cairo_pattern_set_filter); -#undef CAIRO_FUNC + if(cairo_load_funcs() != 0) { + return 1; + } #ifdef USE_DBUS wl_call_tbl.has_dbus = MwLLDBusFuncSetup(&wl_call_tbl.dbus); @@ -297,37 +195,6 @@ MwInline int wayland_load_funcs() { #define xkb_keymap_key_get_syms_by_level wl_call_tbl.xkb_keymap_key_get_syms_by_level #define xkb_state_key_get_layout wl_call_tbl.xkb_state_key_get_layout -#define cairo_set_line_width wl_call_tbl.cairo_set_line_width -#define cairo_scale wl_call_tbl.cairo_scale -#define cairo_create wl_call_tbl.cairo_create -#define cairo_move_to wl_call_tbl.cairo_move_to -#define cairo_rectangle wl_call_tbl.cairo_rectangle -#define cairo_new_path wl_call_tbl.cairo_new_path -#define cairo_set_line_cap wl_call_tbl.cairo_set_line_cap -#define cairo_set_antialias wl_call_tbl.cairo_set_antialias -#define cairo_set_source_rgba wl_call_tbl.cairo_set_source_rgba -#define cairo_set_source_rgb wl_call_tbl.cairo_set_source_rgb -#define cairo_reset_clip wl_call_tbl.cairo_reset_clip -#define cairo_image_surface_get_data wl_call_tbl.cairo_image_surface_get_data -#define cairo_line_to wl_call_tbl.cairo_line_to -#define cairo_surface_destroy wl_call_tbl.cairo_surface_destroy -#define cairo_image_surface_create_for_data wl_call_tbl.cairo_image_surface_create_for_data -#define cairo_image_surface_create wl_call_tbl.cairo_image_surface_create -#define cairo_destroy wl_call_tbl.cairo_destroy -#define cairo_get_source wl_call_tbl.cairo_get_source -#define cairo_close_path wl_call_tbl.cairo_close_path -#define cairo_paint wl_call_tbl.cairo_paint -#define cairo_surface_flush wl_call_tbl.cairo_surface_flush -#define cairo_clip wl_call_tbl.cairo_clip -#define cairo_save wl_call_tbl.cairo_save -#define cairo_restore wl_call_tbl.cairo_restore -#define cairo_surface_mark_dirty wl_call_tbl.cairo_surface_mark_dirty -#define cairo_stroke wl_call_tbl.cairo_stroke -#define cairo_set_source_surface wl_call_tbl.cairo_set_source_surface -#define cairo_fill wl_call_tbl.cairo_fill -#define cairo_set_operator wl_call_tbl.cairo_set_operator -#define cairo_pattern_set_filter wl_call_tbl.cairo_pattern_set_filter - #ifndef WL_PROTOCOLS_DEFINED #define WL_PROTOCOLS_DEFINED #include "Wayland/wayland-core-protocol.h" @@ -434,6 +301,7 @@ typedef struct wl_clipboard_device_context { struct _MwLLWayland { struct _MwLLCommon common; + struct _MwLLCairo cairo; union { /* Pointer for data that's only loaded if the widget is a toplevel */ @@ -583,24 +451,13 @@ struct _MwLLWayland { MwU64 next_elapsed; long start_time; long end_time; - - cairo_surface_t* front_cs; - cairo_surface_t* back_cs; - cairo_t* front_cairo; - cairo_t* back_cairo; - /* The cairo to actually use for draw operations. Typically is front_cairo, but MwLLBeginDraw can change this to the back_cairo so it can be used to draw window decorations. */ - cairo_t* selected_cairo; }; struct _MwLLWaylandColor { struct _MwLLCommonColor common; }; -struct _MwLLWaylandPixmap { - struct _MwLLCommonPixmap common; - - cairo_surface_t* cs; -}; +#define _MwLLWaylandPixmap _MwLLCairoPixmap /* Setup the framebuffer with the saved width/height */ void MwLLWaylandFramebufferSetup(struct _MwLLWayland* wayland); diff --git a/pl/rules.pl b/pl/rules.pl index 2c8ea1bd0..bb6fa25ea 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -46,6 +46,7 @@ if (grep(/^classicmacos$/, @backends)) { if (grep(/^wayland$/, @backends)) { add_cflags("-DUSE_WAYLAND"); + new_object("src/backend/cairo.c"); new_object("src/backend/wayland/wayland.c"); new_object("src/backend/wayland/buffer.c"); new_object("src/backend/wayland/interfaces.c"); diff --git a/src/backend/cairo.c b/src/backend/cairo.c new file mode 100644 index 000000000..3cecc0b8b --- /dev/null +++ b/src/backend/cairo.c @@ -0,0 +1,266 @@ +#include + +#include "../../external/stb_ds.h" +#include "stb_ds.h" + +cairo_call_table_t cairo_call_tbl; + +void MwLLCairoPolygon(struct _MwLLCairo handle, MwPoint* points, int points_count, MwLLColor color) { + int i; + cairo_set_source_rgba(handle.front_cairo, color->common.red / 255.0, color->common.green / 255.0, color->common.blue / 255.0, 1.0); + cairo_new_path(handle.front_cairo); + for(i = 0; i < points_count; i++) { + if(i == 0) { + cairo_move_to(handle.front_cairo, points[i].x, points[i].y); + } else { + cairo_line_to(handle.front_cairo, points[i].x, points[i].y); + } + } + cairo_close_path(handle.front_cairo); + + cairo_set_operator(handle.front_cairo, CAIRO_OPERATOR_SOURCE); + cairo_fill(handle.front_cairo); + cairo_set_operator(handle.front_cairo, CAIRO_OPERATOR_OVER); +}; + +void MwLLCairoLine(struct _MwLLCairo handle, MwPoint* points, MwLLColor color) { + int i; + + cairo_set_antialias(handle.front_cairo, CAIRO_ANTIALIAS_NONE); + cairo_set_line_cap(handle.front_cairo, CAIRO_LINE_CAP_SQUARE); + cairo_set_source_rgba(handle.front_cairo, color->common.red / 255.0, color->common.green / 255.0, color->common.blue / 255.0, 1.0); + cairo_new_path(handle.front_cairo); + for(i = 0; i < 2; i++) { + if(i == 0) { + cairo_move_to(handle.front_cairo, points[i].x, points[i].y); + } else { + cairo_line_to(handle.front_cairo, points[i].x, points[i].y); + } + } + cairo_close_path(handle.front_cairo); + cairo_stroke(handle.front_cairo); +}; + +MwLLPixmap MwLLCairoCreatePixmap(struct _MwLLCairo handle, unsigned char* data, int width, int height) { + MwLLPixmap r = malloc(sizeof(*r)); + (void)handle; + + if(width >= INT16_MAX) width = INT16_MAX; + if(height >= INT16_MAX) height = INT16_MAX; + + r->common.width = width; + r->common.height = height; + r->common.raw = malloc(4 * width * height); + memcpy(r->common.raw, data, 4 * width * height); + + r->wayland.cs = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height); + + MwLLPixmapUpdate(r); + + return r; +} + +void MwLLCairoPixmapUpdate(MwLLPixmap r) { + int i; + unsigned char* d; + + cairo_surface_flush(r->wayland.cs); + d = cairo_image_surface_get_data(r->wayland.cs); + for(i = 0; i < r->common.width * r->common.height * 4; i += 4) { + MwU32* p = (MwU32*)&d[i]; + *p <<= 8; + *p |= r->common.raw[i + 3]; + *p <<= 8; + *p |= r->common.raw[i + 0]; + *p <<= 8; + *p |= r->common.raw[i + 1]; + *p <<= 8; + *p |= r->common.raw[i + 2]; + } + cairo_surface_mark_dirty(r->wayland.cs); +} + +void MwLLCairoDestroyPixmap(MwLLPixmap pixmap) { + cairo_surface_destroy(pixmap->wayland.cs); + free(pixmap->common.raw); + free(pixmap); +} + +void MwLLCairoDrawPixmap(struct _MwLLCairo handle, MwRect* rect, MwLLPixmap pixmap) { + cairo_t* c; + cairo_surface_t* cs; + cairo_t* selected_cairo = handle.selected_cairo ? handle.selected_cairo : handle.front_cairo; + cs = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, rect->width, rect->height); + c = cairo_create(cs); + + if(rect->width <= 0 || rect->height <= 0 || pixmap->common.width <= 0 || pixmap->common.height <= 0) return; + if(rect->width >= INT16_MAX) rect->width = INT16_MAX; + if(rect->height >= INT16_MAX) rect->height = INT16_MAX; + + cairo_scale(c, (double)rect->width / pixmap->common.width, (double)rect->height / pixmap->common.height); + + cairo_set_source_surface(c, pixmap->cairo.cs, 0, 0); + cairo_pattern_set_filter(cairo_get_source(c), CAIRO_FILTER_NEAREST); + + cairo_set_operator(handle.front_cairo, CAIRO_OPERATOR_OVER); + + cairo_paint(c); + + cairo_set_source_surface(selected_cairo, cs, rect->x, rect->y); + cairo_paint(selected_cairo); + + cairo_destroy(c); + cairo_surface_destroy(cs); +}; + +void MwLLCairoFrontSetup(struct _MwLLCairo* cairo, MwU8* data, MwU32 width, MwU32 height) { + if(data) { + cairo->front_cs = cairo_image_surface_create_for_data(data, CAIRO_FORMAT_ARGB32, width, height, width * 4); + } else { + cairo->front_cs = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height); + } + cairo->front_cairo = cairo_create(cairo->front_cs); +} + +void MwLLCairoBackSetup(struct _MwLLCairo* cairo, MwU8* data, MwU32 width, MwU32 height) { + if(data) { + cairo->back_cs = cairo_image_surface_create_for_data(data, CAIRO_FORMAT_ARGB32, width, height, width * 4); + } else { + cairo->back_cs = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height); + } + cairo->back_cairo = cairo_create(cairo->back_cs); +} + +void MwLLCairoFrontDestroy(struct _MwLLCairo* cairo) { + cairo_destroy(cairo->front_cairo); + cairo_surface_destroy(cairo->front_cs); +}; +void MwLLCairoBackDestroy(struct _MwLLCairo* cairo) { + cairo_destroy(cairo->back_cairo); + cairo_surface_destroy(cairo->back_cs); +}; + +void MwLLCairoDestroy(struct _MwLLCairo handle) { + // MwLLCairoFrontDestroy(&handle); + // MwLLCairoBackDestroy(&handle); +} + +static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { + MwLL r; + r = malloc(sizeof(*r)); + memset(r, 0, sizeof(*r)); + MwLLCreateCommon(r); + + r->cairo.width = width; + r->cairo.height = height; + r->cairo.x = x; + r->cairo.y = x; + + r->cairo.toplevel = !parent; + r->cairo.parent = parent; + + MwLLCairoFrontSetup(&r->cairo, NULL, r->cairo.width, r->cairo.height); + MwLLCairoBackSetup(&r->cairo, NULL, r->cairo.width, r->cairo.height); + + return r; +} +static void MwLLDestroyImpl(MwLL handle) { + MwLLCairoDestroy(handle->cairo); + free(handle); +} + +static void MwLLBeginDrawImpl(MwLL handle) { + handle->cairo.selected_cairo = handle->cairo.front_cairo; +} +static void MwLLEndDrawImpl(MwLL handle) { +} + +static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { + MwLLCairoPolygon(handle->cairo, points, points_count, color); +} +static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { + MwLLCairoLine(handle->cairo, points, color); +} +static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { + MwLLColor c = malloc(sizeof(*c)); + MwLLColorUpdate(handle, c, r, g, b); + return c; +} + +static void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { + (void)handle; + + c->common.red = r; + c->common.green = g; + c->common.blue = b; +} +static void MwLLGetXYWHImpl(MwLL handle, int* x, int* y, unsigned int* w, unsigned int* h) { + (void)handle; + *x = handle->cairo.x; + *y = handle->cairo.y; + *w = handle->cairo.width; + *h = handle->cairo.height; +} +static void MwLLSetXYImpl(MwLL handle, int x, int y) { + handle->cairo.x = x; + handle->cairo.y = y; +} +static void MwLLSetWHImpl(MwLL handle, int w, int h) { + handle->cairo.width = w; + handle->cairo.height = h; +} +static void MwLLFreeColorImpl(MwLLColor color) {} + +static MwBool lmao = MwFALSE; +static int MwLLPendingImpl(MwLL handle) { + lmao = !lmao; + return lmao; +} +static void MwLLNextEventImpl(MwLL handle) { + MwLLDispatch(handle, draw, NULL); +} +static void MwLLSetTitleImpl(MwLL handle, const char* title) {} +static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) { + return MwLLCairoCreatePixmap(handle->cairo, data, width, height); +} +static void MwLLPixmapUpdateImpl(MwLLPixmap r) { + MwLLCairoPixmapUpdate(r); +} +static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { + MwLLCairoPixmapUpdate(pixmap); +} + +static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { + MwLLCairoDrawPixmap(handle->cairo, rect, pixmap); +} +static void MwLLSetIconImpl(MwLL handle, MwLLPixmap pixmap) {} +static void MwLLForceRenderImpl(MwLL handle) {} +static void MwLLSetCursorImpl(MwLL handle, MwCursor* image, MwCursor* mask) {} +static void MwLLDetachImpl(MwLL handle, MwPoint* point) {} +static void MwLLShowImpl(MwLL handle, int show) {} +static void MwLLMakePopupImpl(MwLL handle, MwLL parent) {} +static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int maxy) {} +static void MwLLMakeBorderlessImpl(MwLL handle, int toggle) {} +static void MwLLFocusImpl(MwLL handle) {} +static void MwLLGrabPointerImpl(MwLL handle, int toggle) {} +static void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_type) {} +static void MwLLGetClipboardImpl(MwLL handle, int clipboard_type) {} +static void MwLLMakeToolWindowImpl(MwLL handle) {} +static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) {} +static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) {} +static void MwLLBeginStateChangeImpl(MwLL handle) {} +static void MwLLEndStateChangeImpl(MwLL handle) {} +static void MwLLSetDarkThemeImpl(MwLL handle, int toggle) {} +static MwBool MwLLDoModernImpl(MwLL handle) { + return MwFALSE; +} +static void MwLLRaiseImpl(MwLL handle) {} +static void MwLLClipImpl(MwLL handle, MwRect* rect) {} +static int MwLLCairoCallInitImpl(void) { + if(cairo_load_funcs() != 0) { + return 1; + } + return 0; +} +#include "call.c" +CALL(Cairo); diff --git a/src/backend/wayland/buffer.c b/src/backend/wayland/buffer.c index 39a31dd26..15e7e4e89 100644 --- a/src/backend/wayland/buffer.c +++ b/src/backend/wayland/buffer.c @@ -4,8 +4,7 @@ void MwLLWaylandFramebufferSetup(struct _MwLLWayland* wayland) { MwLLWaylandBufferSetup(&wayland->framebuffer, wayland->ww, wayland->wh); - wayland->front_cs = cairo_image_surface_create_for_data(wayland->framebuffer.buf_back, CAIRO_FORMAT_ARGB32, wayland->ww, wayland->wh, 4 * wayland->ww); - wayland->front_cairo = cairo_create(wayland->front_cs); + MwLLCairoFrontSetup(&wayland->cairo, wayland->framebuffer.buf_back, wayland->ww, wayland->wh); memset(wayland->framebuffer.buf_back, 0, wayland->framebuffer.buf_size); if(wayland->configured) @@ -17,8 +16,7 @@ void MwLLWaylandFramebufferSetup(struct _MwLLWayland* wayland) { }; void MwLLWaylandFramebufferDestroy(struct _MwLLWayland* wayland) { MwLLWaylandBufferDestroy(&wayland->framebuffer); - cairo_destroy(wayland->front_cairo); - cairo_surface_destroy(wayland->front_cs); + MwLLCairoFrontDestroy(&wayland->cairo); }; void MwLLWaylandBackbufferSetup(struct _MwLLWayland* wayland) { @@ -33,8 +31,7 @@ void MwLLWaylandBackbufferSetup(struct _MwLLWayland* wayland) { } MwLLWaylandBufferSetup(&wayland->backbuffer, w, h); - wayland->back_cs = cairo_image_surface_create_for_data(wayland->backbuffer.buf_back, CAIRO_FORMAT_ARGB32, w, h, 4 * w); - wayland->back_cairo = cairo_create(wayland->back_cs); + MwLLCairoBackSetup(&wayland->cairo, wayland->backbuffer.buf_back, wayland->ww, wayland->wh); memset(wayland->backbuffer.buf_back, 255, wayland->backbuffer.buf_size); if(wayland->configured) @@ -45,8 +42,7 @@ void MwLLWaylandBackbufferSetup(struct _MwLLWayland* wayland) { }; void MwLLWaylandBackbufferDestroy(struct _MwLLWayland* wayland) { MwLLWaylandBufferDestroy(&wayland->backbuffer); - cairo_destroy(wayland->back_cairo); - cairo_surface_destroy(wayland->back_cs); + MwLLCairoBackDestroy(&wayland->cairo); }; void MwLLWaylandBufferSetup(struct _MwLLWaylandShmBuffer* buffer, MwU32 width, MwU32 height) { diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 2ffa1c6ba..5faa2c640 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -10,6 +10,8 @@ wayland_call_table_t wl_call_tbl; MwBool MwWaylandVulkan = MwFALSE; #endif +MwBool MwWaylandCairoOnly = MwFALSE; + static pthread_mutex_t destroyedWidgetsTableMutex; /* * So Wayland, bless its soul; it keeps using callbacks LONG after they should not only be destroyed but the widget doesn't even exist anymore. Naturally, this causes use after free. so we fight fire with fire in the worst code i've ever written: by storing the freed pointers here, we disallow wayland from ever using them again. if something else is created that takes this slot, we remove it from the table. @@ -705,6 +707,7 @@ static void clip(MwLL handle) { toplevel = toplevel->wayland.parent; } if(toplevel) { + #define MIN(a, b) ((a) < (b) ? (a) : (b)) #define MAX(a, b) ((a) > (b) ? (a) : (b)) /* i seriously have no fucking idea how this works, do not ask me how this really works (nishi) */ @@ -752,15 +755,15 @@ static void clip(MwLL handle) { handle->wayland.clipping_rect.height = my - cy; MwLLWaylandRegionSetup(handle); - cairo_reset_clip(handle->wayland.front_cairo); + cairo_reset_clip(handle->wayland.cairo.front_cairo); if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL && !handle->wayland.is_toplevel) { - cairo_rectangle(handle->wayland.front_cairo, cx - x, cy - y, mx - cx, my - cy); - cairo_clip(handle->wayland.front_cairo); + cairo_rectangle(handle->wayland.cairo.front_cairo, cx - x, cy - y, mx - cx, my - cy); + cairo_clip(handle->wayland.cairo.front_cairo); } if(handle->wayland.is_clipping) { - cairo_rectangle(handle->wayland.front_cairo, handle->wayland.clip.x, handle->wayland.clip.y, handle->wayland.clip.width, handle->wayland.clip.height); - cairo_clip(handle->wayland.front_cairo); + cairo_rectangle(handle->wayland.cairo.front_cairo, handle->wayland.clip.x, handle->wayland.clip.y, handle->wayland.clip.width, handle->wayland.clip.height); + cairo_clip(handle->wayland.cairo.front_cairo); } } } @@ -1088,15 +1091,15 @@ const float_color two = {.05490196, .17254902, .30588235}; static void MwLLBeginDrawImpl(MwLL handle) { WIDGET_CHECK(handle); - cairo_save(handle->wayland.front_cairo); - cairo_set_source_rgba(handle->wayland.front_cairo, 0, 0, 0, 0); - cairo_set_operator(handle->wayland.front_cairo, CAIRO_OPERATOR_SOURCE); - cairo_rectangle(handle->wayland.front_cairo, 0, 0, handle->wayland.ww, handle->wayland.wh); - cairo_fill(handle->wayland.front_cairo); - cairo_restore(handle->wayland.front_cairo); + cairo_save(handle->wayland.cairo.front_cairo); + cairo_set_source_rgba(handle->wayland.cairo.front_cairo, 0, 0, 0, 0); + cairo_set_operator(handle->wayland.cairo.front_cairo, CAIRO_OPERATOR_SOURCE); + cairo_rectangle(handle->wayland.cairo.front_cairo, 0, 0, handle->wayland.ww, handle->wayland.wh); + cairo_fill(handle->wayland.cairo.front_cairo); + cairo_restore(handle->wayland.cairo.front_cairo); if(handle->wayland.type != MwLL_WAYLAND_TOPLEVEL) { - handle->wayland.selected_cairo = handle->wayland.front_cairo; + handle->wayland.cairo.selected_cairo = handle->wayland.cairo.front_cairo; return; } @@ -1105,25 +1108,25 @@ static void MwLLBeginDrawImpl(MwLL handle) { MwU32 w = handle->wayland.ww + CSD_BORDER_FRAME_LEFT + CSD_BORDER_FRAME_RIGHT; MwU32 h = handle->wayland.wh + CSD_BORDER_FRAME_TOP + CSD_BORDER_FRAME_BOTTOM; MwRect r; - handle->wayland.selected_cairo = handle->wayland.back_cairo; + handle->wayland.cairo.selected_cairo = handle->wayland.cairo.back_cairo; #define DO_BOX(x, y, col, w, h) \ - cairo_rectangle(handle->wayland.back_cairo, x, y, w, h); \ - cairo_set_source_rgb(handle->wayland.back_cairo, col, col, col); \ - cairo_fill(handle->wayland.back_cairo); + cairo_rectangle(handle->wayland.cairo.back_cairo, x, y, w, h); \ + cairo_set_source_rgb(handle->wayland.cairo.back_cairo, col, col, col); \ + cairo_fill(handle->wayland.cairo.back_cairo); #define DO_LINE(off, col) \ - cairo_move_to(handle->wayland.back_cairo, off, off); \ - cairo_line_to(handle->wayland.back_cairo, off, h - (off)); \ - cairo_set_source_rgb(handle->wayland.back_cairo, col, col, col); \ - cairo_stroke(handle->wayland.back_cairo); \ - cairo_move_to(handle->wayland.back_cairo, off, off); \ - cairo_line_to(handle->wayland.back_cairo, w - (off), off); \ - cairo_set_source_rgb(handle->wayland.back_cairo, col, col, col); \ - cairo_stroke(handle->wayland.back_cairo); + cairo_move_to(handle->wayland.cairo.back_cairo, off, off); \ + cairo_line_to(handle->wayland.cairo.back_cairo, off, h - (off)); \ + cairo_set_source_rgb(handle->wayland.cairo.back_cairo, col, col, col); \ + cairo_stroke(handle->wayland.cairo.back_cairo); \ + cairo_move_to(handle->wayland.cairo.back_cairo, off, off); \ + cairo_line_to(handle->wayland.cairo.back_cairo, w - (off), off); \ + cairo_set_source_rgb(handle->wayland.cairo.back_cairo, col, col, col); \ + cairo_stroke(handle->wayland.cairo.back_cairo); /* border */ - cairo_set_antialias(handle->wayland.back_cairo, CAIRO_ANTIALIAS_NONE); + cairo_set_antialias(handle->wayland.cairo.back_cairo, CAIRO_ANTIALIAS_NONE); DO_BOX(0, 0, 0.14901961, w, h); DO_BOX(1, 1, 0.55686275, w - 2, h - 2); @@ -1131,7 +1134,7 @@ static void MwLLBeginDrawImpl(MwLL handle) { DO_BOX(3, 3, 0.93333333, w - 6, h - 6); DO_BOX(4, 4, 1, w - 8, h - 8); DO_BOX(4, 4, 0.14901961, w - CSD_BORDER_FRAME_LEFT - 4, h - CSD_BORDER_FRAME_BOTTOM - 4); - cairo_set_line_width(handle->wayland.back_cairo, 1.0); + cairo_set_line_width(handle->wayland.cairo.back_cairo, 1.0); DO_LINE(1, 1) DO_LINE(2, 0.93333333) @@ -1139,15 +1142,15 @@ static void MwLLBeginDrawImpl(MwLL handle) { DO_LINE(4, 0.55686275) DO_LINE(5, 0.14901961) - cairo_set_line_width(handle->wayland.back_cairo, 2.0); + cairo_set_line_width(handle->wayland.cairo.back_cairo, 2.0); for(y = 1; y < CSD_BORDER_FRAME_TOP - CSD_BORDER_FRAME_LEFT; y++) { float_color c = lerp_color(one, two, (double)y / (double)(CSD_BORDER_FRAME_TOP - CSD_BORDER_FRAME_LEFT)); - cairo_set_source_rgb(handle->wayland.back_cairo, c.r, c.g, c.b); + cairo_set_source_rgb(handle->wayland.cairo.back_cairo, c.r, c.g, c.b); - cairo_move_to(handle->wayland.back_cairo, CSD_BORDER_FRAME_LEFT, y + CSD_BORDER_FRAME_LEFT); - cairo_line_to(handle->wayland.back_cairo, w - CSD_BORDER_FRAME_RIGHT, y + CSD_BORDER_FRAME_LEFT); - cairo_stroke(handle->wayland.back_cairo); + cairo_move_to(handle->wayland.cairo.back_cairo, CSD_BORDER_FRAME_LEFT, y + CSD_BORDER_FRAME_LEFT); + cairo_line_to(handle->wayland.cairo.back_cairo, w - CSD_BORDER_FRAME_RIGHT, y + CSD_BORDER_FRAME_LEFT); + cairo_stroke(handle->wayland.cairo.back_cairo); } /* icon */ @@ -1158,7 +1161,7 @@ static void MwLLBeginDrawImpl(MwLL handle) { DO_BOX(5, 5, 1, 18, 18); DO_BOX(6, 6, 0.35294118, 17, 17); DO_BOX(6, 6, 0.82352941, 16, 16); - handle->wayland.selected_cairo = handle->wayland.back_cairo; + handle->wayland.cairo.selected_cairo = handle->wayland.cairo.back_cairo; if(handle->wayland.icon_pixmap) { MwLLDrawPixmap(handle, &r, handle->wayland.icon_pixmap); } @@ -1226,7 +1229,7 @@ static void MwLLBeginDrawImpl(MwLL handle) { } MwLLWaylandBufferUpdate(handle, &handle->wayland.backbuffer); } - handle->wayland.selected_cairo = handle->wayland.front_cairo; + handle->wayland.cairo.selected_cairo = handle->wayland.cairo.front_cairo; } static void MwLLEndDrawImpl(MwLL handle) { @@ -1239,25 +1242,11 @@ static void MwLLEndDrawImpl(MwLL handle) { } static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLLColor color) { - int i; WIDGET_CHECK(handle); clip(handle); - cairo_set_source_rgba(handle->wayland.front_cairo, color->common.red / 255.0, color->common.green / 255.0, color->common.blue / 255.0, 1.0); - cairo_new_path(handle->wayland.front_cairo); - for(i = 0; i < points_count; i++) { - if(i == 0) { - cairo_move_to(handle->wayland.front_cairo, points[i].x, points[i].y); - } else { - cairo_line_to(handle->wayland.front_cairo, points[i].x, points[i].y); - } - } - cairo_close_path(handle->wayland.front_cairo); - - cairo_set_operator(handle->wayland.front_cairo, CAIRO_OPERATOR_SOURCE); - cairo_fill(handle->wayland.front_cairo); - cairo_set_operator(handle->wayland.front_cairo, CAIRO_OPERATOR_OVER); + MwLLCairoPolygon(handle->wayland.cairo, points, points_count, color); handle->wayland.events_pending = 1; } @@ -1268,19 +1257,7 @@ static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { clip(handle); - cairo_set_antialias(handle->wayland.front_cairo, CAIRO_ANTIALIAS_NONE); - cairo_set_line_cap(handle->wayland.front_cairo, CAIRO_LINE_CAP_SQUARE); - cairo_set_source_rgba(handle->wayland.front_cairo, color->common.red / 255.0, color->common.green / 255.0, color->common.blue / 255.0, 1.0); - cairo_new_path(handle->wayland.front_cairo); - for(i = 0; i < 2; i++) { - if(i == 0) { - cairo_move_to(handle->wayland.front_cairo, points[i].x, points[i].y); - } else { - cairo_line_to(handle->wayland.front_cairo, points[i].x, points[i].y); - } - } - cairo_close_path(handle->wayland.front_cairo); - cairo_stroke(handle->wayland.front_cairo); + MwLLCairoLine(handle->wayland.cairo, points, color); handle->wayland.events_pending = 1; } @@ -1421,80 +1398,23 @@ static void MwLLSetTitleImpl(MwLL handle, const char* title) { } static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int width, int height) { - MwLLPixmap r = malloc(sizeof(*r)); - (void)handle; - - if(width >= INT16_MAX) width = INT16_MAX; - if(height >= INT16_MAX) height = INT16_MAX; - - r->common.width = width; - r->common.height = height; - r->common.raw = malloc(4 * width * height); - memcpy(r->common.raw, data, 4 * width * height); - - r->wayland.cs = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height); - - MwLLPixmapUpdate(r); - - return r; + return MwLLCairoCreatePixmap(handle->wayland.cairo, data, width, height); } static void MwLLPixmapUpdateImpl(MwLLPixmap r) { - int i; - unsigned char* d; - - cairo_surface_flush(r->wayland.cs); - d = cairo_image_surface_get_data(r->wayland.cs); - for(i = 0; i < r->common.width * r->common.height * 4; i += 4) { - MwU32* p = (MwU32*)&d[i]; - *p <<= 8; - *p |= r->common.raw[i + 3]; - *p <<= 8; - *p |= r->common.raw[i + 0]; - *p <<= 8; - *p |= r->common.raw[i + 1]; - *p <<= 8; - *p |= r->common.raw[i + 2]; - } - cairo_surface_mark_dirty(r->wayland.cs); + MwLLCairoPixmapUpdate(r); } static void MwLLDestroyPixmapImpl(MwLLPixmap pixmap) { - cairo_surface_destroy(pixmap->wayland.cs); - free(pixmap->common.raw); - free(pixmap); + MwLLCairoDestroyPixmap(pixmap); } static void MwLLDrawPixmapImpl(MwLL handle, MwRect* rect, MwLLPixmap pixmap) { - cairo_t* c; - cairo_surface_t* cs; - cairo_t* selected_cairo = handle->wayland.selected_cairo ? handle->wayland.selected_cairo : handle->wayland.front_cairo; - - if(rect->width <= 0 || rect->height <= 0 || pixmap->common.width <= 0 || pixmap->common.height <= 0) return; - if(rect->width >= INT16_MAX) rect->width = INT16_MAX; - if(rect->height >= INT16_MAX) rect->height = INT16_MAX; - WIDGET_CHECK(handle); - cs = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, rect->width, rect->height); - c = cairo_create(cs); - clip(handle); - cairo_scale(c, (double)rect->width / pixmap->common.width, (double)rect->height / pixmap->common.height); - - cairo_set_source_surface(c, pixmap->wayland.cs, 0, 0); - cairo_pattern_set_filter(cairo_get_source(c), CAIRO_FILTER_NEAREST); - - cairo_set_operator(handle->wayland.front_cairo, CAIRO_OPERATOR_OVER); - - cairo_paint(c); - - cairo_set_source_surface(selected_cairo, cs, rect->x, rect->y); - cairo_paint(selected_cairo); - - cairo_destroy(c); - cairo_surface_destroy(cs); + MwLLCairoDrawPixmap(handle->wayland.cairo, rect, pixmap); MwLLForceRender(handle); wl_surface_damage(handle->wayland.framebuffer.surface, 0, 0, handle->wayland.ww, handle->wayland.wh); diff --git a/src/core.c b/src/core.c index f649a6250..2eeb401ec 100644 --- a/src/core.c +++ b/src/core.c @@ -1040,7 +1040,7 @@ typedef int (*call_t)(void); int MwLibraryInit(void) { call_t calls[] = { #ifdef USE_WAYLAND - MwLLWaylandCallInit, + NULL, /* set in a bit */ #endif #ifdef USE_X11 MwLLX11CallInit, @@ -1060,6 +1060,12 @@ int MwLibraryInit(void) { NULL}; int i; + if(MwWaylandCairoOnly) { + calls[0] = MwLLCairoCallInit; + } else { + calls[0] = MwLLWaylandCallInit; + } + MwColorTableInit(); MwFLSetup(); From 82b68c9c539cb34eaec866d655fb4ab6122ad739 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 9 Jul 2026 21:51:21 -0700 Subject: [PATCH 765/836] only do MwLibraryInit wayland/cairo if USE_WAYLAND --- src/core.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core.c b/src/core.c index 2eeb401ec..0366443e7 100644 --- a/src/core.c +++ b/src/core.c @@ -1060,11 +1060,13 @@ int MwLibraryInit(void) { NULL}; int i; +#ifdef USE_WAYLAND if(MwWaylandCairoOnly) { calls[0] = MwLLCairoCallInit; } else { calls[0] = MwLLWaylandCallInit; } +#endif MwColorTableInit(); From 1a75d6cea113fd02d4e97f27c9a4352164c5c2e1 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 9 Jul 2026 21:54:46 -0700 Subject: [PATCH 766/836] wrongful stb_ds include --- src/backend/cairo.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/backend/cairo.c b/src/backend/cairo.c index 3cecc0b8b..7b92d0069 100644 --- a/src/backend/cairo.c +++ b/src/backend/cairo.c @@ -1,7 +1,6 @@ #include #include "../../external/stb_ds.h" -#include "stb_ds.h" cairo_call_table_t cairo_call_tbl; From a4d095cabfbfd07d257f1bbed3311089537570ef Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 13 Jul 2026 14:00:32 -0700 Subject: [PATCH 767/836] wayland: fix popup positioning when CSD is active. fix CSD stride --- include/Mw/LowLevel/Wayland.h | 2 ++ include/Mw/TypeDefs.h | 2 ++ src/backend/wayland/buffer.c | 2 +- src/backend/wayland/wayland.c | 34 ++++++++++++++++++++++------------ src/widget/menu.c | 1 + 5 files changed, 28 insertions(+), 13 deletions(-) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 21bbc2853..1de48b32b 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -428,6 +428,8 @@ struct _MwLLWayland { MwBool dispatching_resize; + MwBool is_toplevel_menu; + struct _MwLLWaylandShmBuffer framebuffer; struct _MwLLWaylandShmBuffer backbuffer; struct _MwLLWaylandShmBuffer cursor; diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index d31aeac0e..b31c4b4fb 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -119,6 +119,8 @@ struct _MwWidget { int berserk; long last_tick; + + MwBool is_menu; }; #endif diff --git a/src/backend/wayland/buffer.c b/src/backend/wayland/buffer.c index 15e7e4e89..ce5659938 100644 --- a/src/backend/wayland/buffer.c +++ b/src/backend/wayland/buffer.c @@ -31,7 +31,7 @@ void MwLLWaylandBackbufferSetup(struct _MwLLWayland* wayland) { } MwLLWaylandBufferSetup(&wayland->backbuffer, w, h); - MwLLCairoBackSetup(&wayland->cairo, wayland->backbuffer.buf_back, wayland->ww, wayland->wh); + MwLLCairoBackSetup(&wayland->cairo, wayland->backbuffer.buf_back, w, h); memset(wayland->backbuffer.buf_back, 255, wayland->backbuffer.buf_size); if(wayland->configured) diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 5faa2c640..c156e04d9 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -451,7 +451,6 @@ static void popup_configure(void* data, int32_t height) { MwLL self = data; (void)xdg_popup; - self->wayland.x = x; self->wayland.y = y; self->wayland.ww = width; @@ -483,18 +482,23 @@ struct xdg_popup_listener popup_listener = { /* Popup setup function */ static void setup_popup(MwLL r, int x, int y, MwLL parent) { MwLL topmost_parent = r->wayland.parent; + r->wayland.type = MwLL_WAYLAND_POPUP; + r->wayland.x = x; + r->wayland.y = y; + r->wayland.popup = malloc(sizeof(struct _MwLLWaylandPopup)); - r->wayland.type = MwLL_WAYLAND_POPUP; - r->wayland.x = x; - r->wayland.y = y; - r->wayland.popup = malloc(sizeof(struct _MwLLWaylandPopup)); + if(parent) { + MwWidget p = parent->common.user; + while(topmost_parent->wayland.parent) { + topmost_parent = topmost_parent->wayland.parent; + } - while(topmost_parent->wayland.type != MwLL_WAYLAND_TOPLEVEL && topmost_parent->wayland.type != MwLL_WAYLAND_LAYER_SURFACE) { - topmost_parent = topmost_parent->wayland.parent; - } - if(!topmost_parent->wayland.has_decorations && topmost_parent->wayland.do_csd) { - r->wayland.x += ceil((float)CSD_BORDER_FRAME_LEFT / 2.); - r->wayland.y += ceil((float)CSD_BORDER_FRAME_TOP / 2.); + if(!topmost_parent->wayland.has_decorations && topmost_parent->wayland.do_csd) { + if(p->is_menu) { + r->wayland.x += round((float)CSD_BORDER_FRAME_LEFT / 2.); + r->wayland.y += ceil((float)CSD_BORDER_FRAME_TOP / 2.); + } + } } MwLLWaylandSetupCallbacks(&r->wayland); @@ -525,7 +529,13 @@ static void setup_popup(MwLL r, int x, int y, MwLL parent) { xdg_positioner_set_size(r->wayland.popup->xdg_positioner, r->wayland.ww, r->wayland.wh); xdg_positioner_set_anchor_rect( r->wayland.popup->xdg_positioner, - r->wayland.x, r->wayland.y, r->wayland.ww, r->wayland.wh); + topmost_parent->wayland.x, topmost_parent->wayland.y, r->wayland.ww, r->wayland.wh); + xdg_positioner_set_offset( + r->wayland.popup->xdg_positioner, + r->wayland.x, r->wayland.y); + + xdg_positioner_set_anchor(r->wayland.popup->xdg_positioner, XDG_POSITIONER_ANCHOR_NONE); + xdg_positioner_set_gravity(r->wayland.popup->xdg_positioner, XDG_POSITIONER_GRAVITY_NONE); r->wayland.xkb_keymap = topmost_parent->wayland.xkb_keymap; r->wayland.xkb_state = topmost_parent->wayland.xkb_state; diff --git a/src/widget/menu.c b/src/widget/menu.c index 7df61f245..8dd3d7a99 100644 --- a/src/widget/menu.c +++ b/src/widget/menu.c @@ -24,6 +24,7 @@ static int wcreate(MwWidget handle) { m->wsub = NULL; m->sub = NULL; handle->internal = m; + handle->is_menu = MwTRUE; MwSetDefault(handle); From 4b6eae99dcfcfd6475618add720c59948eee4637 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 13 Jul 2026 15:54:42 -0700 Subject: [PATCH 768/836] fixed some memleaks while also trying to fix popups not being destroyed correctly --- src/backend/wayland/buffer.c | 2 + src/backend/wayland/interfaces.c | 24 +++++++- src/backend/wayland/wayland.c | 95 +++++++++++++++++++------------- 3 files changed, 80 insertions(+), 41 deletions(-) diff --git a/src/backend/wayland/buffer.c b/src/backend/wayland/buffer.c index ce5659938..df1de797c 100644 --- a/src/backend/wayland/buffer.c +++ b/src/backend/wayland/buffer.c @@ -15,6 +15,7 @@ void MwLLWaylandFramebufferSetup(struct _MwLLWayland* wayland) { MwLLWaylandBufferUpdate((MwLL)wayland, &wayland->framebuffer); }; void MwLLWaylandFramebufferDestroy(struct _MwLLWayland* wayland) { + wl_surface_attach(wayland->framebuffer.surface, NULL, 0, 0); MwLLWaylandBufferDestroy(&wayland->framebuffer); MwLLCairoFrontDestroy(&wayland->cairo); }; @@ -41,6 +42,7 @@ void MwLLWaylandBackbufferSetup(struct _MwLLWayland* wayland) { MwLLWaylandBufferUpdate((MwLL)wayland, &wayland->backbuffer); }; void MwLLWaylandBackbufferDestroy(struct _MwLLWayland* wayland) { + // wl_surface_attach(wayland->backbuffer.surface, NULL, 0, 0); MwLLWaylandBufferDestroy(&wayland->backbuffer); MwLLCairoBackDestroy(&wayland->cairo); }; diff --git a/src/backend/wayland/interfaces.c b/src/backend/wayland/interfaces.c index 57c30e388..84ed4923d 100644 --- a/src/backend/wayland/interfaces.c +++ b/src/backend/wayland/interfaces.c @@ -16,6 +16,9 @@ static void setup_clipboard(MwLL self, struct wl_seat* wl_seat); static void setup_zwp_clipboard(MwLL self, struct wl_seat* wl_seat); +static void destroy_clipboard(MwLL self, struct wl_seat* wl_seat); +static void destroy_zwp_clipboard(MwLL self, struct wl_seat* wl_seat); + /* Recursively dispatch a move event to a widget and its children */ static void recursive_dispatch_move(MwLL handle, MwMouse* p) { MwWidget h = (MwWidget)handle->common.user; @@ -1017,6 +1020,7 @@ static wayland_protocol_t* wl_seat_setup(MwU32 name, MwLL ll, MwU32 version) { static void wl_seat_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { (void)wayland; free(data->listener); + free(data); } /* wl_output setup function */ @@ -1060,7 +1064,11 @@ static wayland_protocol_t* wl_subcompositor_setup(MwU32 name, struct _MwLLWaylan static void wl_subcompositor_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { (void)data; - wl_subcompositor_destroy(wayland->sublevel->subcompositor); + if(wayland->type == MwLL_WAYLAND_TOPLEVEL) { + wl_subcompositor_destroy(wayland->toplevel->scompositor); + } else { + wl_subcompositor_destroy(wayland->sublevel->subcompositor); + } } /* xdg_wm_base setup function */ @@ -1080,6 +1088,7 @@ static wayland_protocol_t* xdg_wm_base_setup(MwU32 name, struct _MwLLWayland* wa static void xdg_wm_base_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { (void)wayland; free(data->listener); + free(data); } /* xdg_wm_base setup function */ @@ -1145,6 +1154,7 @@ static wayland_protocol_t* xdg_toplevel_icon_manager_v1_setup(MwU32 name, struct static void xdg_toplevel_icon_manager_v1_interface_destroy(struct _MwLLWayland* wayland, wayland_protocol_t* data) { (void)wayland; free(data->listener); + free(data); } static wayland_protocol_t* zwlr_layer_shell_v1_setup(MwU32 name, struct _MwLLWayland* wayland, MwU32 version) { @@ -1175,8 +1185,16 @@ void MwLLWaylandSetupCallbacks(struct _MwLLWayland* wayland) { wayland->registry_listener.global = new_protocol; wayland->registry_listener.global_remove = protocol_removed; - wayland->wl_protocol_setup_map = NULL; - wayland->wl_protocol_map = NULL; + + if(wayland->wl_protocol_map) { + shfree(wayland->wl_protocol_map); + } + if(wayland->wl_protocol_setup_map) { + shfree(wayland->wl_protocol_setup_map); + } + + wayland->wl_protocol_setup_map = NULL; + wayland->wl_protocol_map = NULL; sh_new_arena(wayland->wl_protocol_map); sh_new_arena(wayland->wl_protocol_setup_map); diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index c156e04d9..278b453b0 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -573,16 +573,22 @@ static void setup_popup(MwLL r, int x, int y, MwLL parent) { /* Popup destroy function */ static void destroy_popup(MwLL r) { - xdg_popup_destroy(r->wayland.popup->xdg_popup); + + MwLLWaylandBackbufferDestroy(&r->wayland); + MwLLWaylandFramebufferDestroy(&r->wayland); xdg_surface_destroy(r->wayland.popup->xdg_surface); + xdg_popup_destroy(r->wayland.popup->xdg_popup); + xdg_positioner_destroy(r->wayland.popup->xdg_positioner); wl_surface_destroy(r->wayland.framebuffer.surface); wl_registry_destroy(r->wayland.registry); + free(r->wayland.popup); + r->wayland.configured = MwFALSE; } @@ -702,6 +708,51 @@ static void destroy_layer_surface(MwLL r) { r->wayland.configured = MwFALSE; } +static void destroy_widget(MwLL handle) { + int i; + + MwLLShow(handle, MwFALSE); + + switch(handle->wayland.type) { + case MwLL_WAYLAND_TOPLEVEL: + destroy_toplevel(handle); + break; + case MwLL_WAYLAND_SUBLEVEL: + destroy_sublevel(handle); + break; + case MwLL_WAYLAND_POPUP: + destroy_popup(handle); + break; + case MwLL_WAYLAND_LAYER_SURFACE: + destroy_layer_surface(handle); + break; + default: + printf("Handle with unknown type(%d) tried to be destroyed (%p)\n", handle->wayland.type, handle); + break; + } + + if(wl_display_roundtrip(handle->wayland.display) == -1) { + printf("roundtrip failed\n"); + raise(SIGTRAP); + return; + } + + for(i = 0; i < shlen(handle->wayland.wl_protocol_setup_map); i++) { + void* ctx = shget(handle->wayland.wl_protocol_map, handle->wayland.wl_protocol_setup_map[i].key); + + if(ctx != NULL) { + handle->wayland.wl_protocol_setup_map[i].value->destroy(&handle->wayland, ctx); + } + shdel(handle->wayland.wl_protocol_map, handle->wayland.wl_protocol_setup_map[i].value); + free(handle->wayland.wl_protocol_setup_map[i].value); + } + + shfree(handle->wayland.wl_protocol_map); + shfree(handle->wayland.wl_protocol_setup_map); + + MwLLWaylandFlush(handle); +} + static void clip(MwLL handle) { int i; int x, y, cx, cy, mx, my; @@ -955,28 +1006,11 @@ static void MwLLDestroyImpl(MwLL handle) { wl_surface_destroy(handle->wayland.icon->surface); } - if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { - destroy_toplevel(handle); - } else if(handle->wayland.type == MwLL_WAYLAND_SUBLEVEL) { - destroy_sublevel(handle); - } else if(handle->wayland.type == MwLL_WAYLAND_POPUP) { - destroy_popup(handle); - } + destroy_widget(handle); + } else { + printf("widget invalid\n"); } - for(i = 0; i < shlen(handle->wayland.wl_protocol_setup_map); i++) { - void* ctx = shget(handle->wayland.wl_protocol_map, handle->wayland.wl_protocol_setup_map[i].key); - - if(ctx != NULL) { - handle->wayland.wl_protocol_setup_map[i].value->destroy(&handle->wayland, ctx); - } - shdel(handle->wayland.wl_protocol_map, handle->wayland.wl_protocol_setup_map[i].value); - } - shfree(handle->wayland.wl_protocol_map); - shfree(handle->wayland.wl_protocol_setup_map); - - MwLLWaylandFlush(handle); - pthread_mutex_lock(&destroyedWidgetsTableMutex); arrput(destroyedWidgetsTable, handle); pthread_mutex_unlock(&destroyedWidgetsTableMutex); @@ -1049,7 +1083,7 @@ static void actually_set_wh(MwLL handle) { } if(handle->wayland.type == MwLL_WAYLAND_POPUP) { - destroy_popup(handle); + destroy_widget(handle); MwLLWaylandFlush(handle); setup_popup(handle, handle->wayland.x, handle->wayland.y, handle->wayland.parent); } @@ -1751,22 +1785,7 @@ static void MwLLEndStateChangeImpl(MwLL handle) { } } - switch(handle->wayland.type) { - case MwLL_WAYLAND_UNKNOWN: - break; - case MwLL_WAYLAND_TOPLEVEL: - destroy_toplevel(handle); - break; - case MwLL_WAYLAND_SUBLEVEL: - destroy_sublevel(handle); - break; - case MwLL_WAYLAND_POPUP: - destroy_popup(handle); - break; - case MwLL_WAYLAND_LAYER_SURFACE: - destroy_layer_surface(handle); - break; - } + destroy_widget(handle); if(wl_display_roundtrip(handle->wayland.display) == -1) { printf("roundtrip failed\n"); From 610c63228e7b2868cbe8c7b12da1191e7bdfd786 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Fri, 17 Jul 2026 07:48:06 +0900 Subject: [PATCH 769/836] have CMakeLists.txt install a pkgconfig file (+ other fixes for building with MSYS) (#27) Reviewed-on: https://forgejo.nishi.boats/pyrite-dev/milsko/pulls/27 --- CMakeLists.txt | 43 ++++++++++++++++++++++++++++++------------- resource/milsko.pc.in | 10 ++++++++++ 2 files changed, 40 insertions(+), 13 deletions(-) create mode 100644 resource/milsko.pc.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 2f6d8305a..0cb5e14bb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -296,7 +296,8 @@ if(MW_CLASSIC_THEME) ) endif() -if(CMAKE_SYSTEM_NAME STREQUAL "Windows") +message("Building Milsko for ${CMAKE_SYSTEM_NAME}") +if(CMAKE_SYSTEM_NAME STREQUAL "Windows" OR CMAKE_SYSTEM_NAME STREQUAL "MSYS") target_sources( Mw PRIVATE @@ -336,6 +337,7 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") -framework Cocoa ) elseif(CMAKE_SYSTEM_NAME MATCHES "Retro") + target_sources( Mw PRIVATE @@ -354,6 +356,7 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "Retro") CLASSIC_MAC_OS ) else() + find_package(PkgConfig) find_package(X11) pkg_check_modules(DBUS dbus-1) @@ -386,23 +389,26 @@ else() if(CMAKE_SYSTEM_NAME STREQUAL "Linux") list(APPEND LIBRARIES dl) endif() + + find_package(DBus1) + + if(${DBus1_FOUND}) + list(APPEND INCLUDE_DIRS ${DBUS_INCLUDE_DIRS}) + list(APPEND LIBRARY_DIRS ${DBUS_LIBRARY_DIRS}) + target_compile_definitions( + Mw + PRIVATE + USE_DBUS + ) + endif() endif() -find_package(DBus1) -if(${DBus1_FOUND}) - list(APPEND INCLUDE_DIRS ${DBUS_INCLUDE_DIRS}) - list(APPEND LIBRARY_DIRS ${DBUS_LIBRARY_DIRS}) - target_compile_definitions( - Mw - PRIVATE - USE_DBUS - ) + +if(UNIX) + list(APPEND LIBRARIES m) endif() -list(APPEND LIBRARIES m) - - target_include_directories( Mw PRIVATE @@ -457,6 +463,17 @@ install( ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/resource/${PROJECT_NAME}.pc.in + ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc + @ONLY + ) + +install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc + DESTINATION $ENV{MINGW_PREFIX}/${CMAKE_INSTALL_DATADIR}/pkgconfig + ) + if(MW_INSTALL_HEADERS) install( DIRECTORY include/ diff --git a/resource/milsko.pc.in b/resource/milsko.pc.in new file mode 100644 index 000000000..9cdc61e92 --- /dev/null +++ b/resource/milsko.pc.in @@ -0,0 +1,10 @@ +prefix="@CMAKE_INSTALL_PREFIX@" +includedir="@CMAKE_INSTALL_PREFIX@/include" +libdir="@CMAKE_INSTALL_PREFIX@/bin" + +Name: @PROJECT_NAME@ +Description: @PROJECT_DESCRIPTION@ +URL: @PROJECT_HOMEPAGE_URL@ +Version: @PROJECT_VERSION@ +Cflags: -I"${includedir}"/ +Libs: -L"${libdir}" -lMw From 575b8eaee1e00e45b046289f383952b227ee5fb8 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sat, 18 Jul 2026 11:39:52 +0900 Subject: [PATCH 770/836] DirectWrite support (#28) Reviewed-on: https://forgejo.nishi.boats/pyrite-dev/milsko/pulls/28 --- CMakeLists.txt | 41 +- WatMakefile | 2 +- configure | 33 +- examples/vkdemos/CMakeLists.txt | 50 +- examples/vkdemos/vulkan.c | 11 +- include/Mw/LowLevel.h | 4 + pl/rules.pl | 4 + src/core.c | 15 +- src/text/directwrite.c | 588 ++ src/text/dwrite.h | 5517 +++++++++++ src/text/dwrite_2.h | 3297 +++++++ src/text/dwrite_3.h | 15191 ++++++++++++++++++++++++++++++ src/text/font/boldmonottf.c | 2 +- src/text/font/boldttf.c | 2 +- src/text/font/monottf.c | 2 +- src/text/font/ttf.c | 2 +- src/text/text.c | 8 +- 17 files changed, 24715 insertions(+), 54 deletions(-) create mode 100644 src/text/directwrite.c create mode 100644 src/text/dwrite.h create mode 100644 src/text/dwrite_2.h create mode 100644 src/text/dwrite_3.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 0cb5e14bb..148c5f31f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,7 @@ include(GNUInstallDirs) set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}") set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) option(MW_CLASSIC_THEME "Use classic theme" OFF) option(MW_BUILD_EXAMPLES "Build examples" OFF) @@ -29,12 +30,30 @@ endif() option(MW_INSTALL_HEADERS "Install headers" ON) -if(${CMAKE_SYSTEM_NAME} STREQUAL Darwin OR ${CMAKE_SYSTEM_NAME} MATCHES Retro) +if( ${CMAKE_SYSTEM_NAME} STREQUAL Darwin + OR ${CMAKE_SYSTEM_NAME} MATCHES Retro + OR ${CMAKE_SYSTEM_NAME} MATCHES Windows) option(MW_USE_FREETYPE2 "Use FreeType 2" OFF) else() option(MW_USE_FREETYPE2 "Use FreeType 2" ON) endif() +if(${CMAKE_SYSTEM_NAME} STREQUAL Windows) + if(${CMAKE_CROSSCOMPILING}) + message(STATUS "DirectWrite support has been enabled") + option(MW_USE_DIRECTWRITE "Use DirectWrite" ON) + else() + # DirectWrite stuff can only be used on Win10+ + if(${CMAKE_SYSTEM_VERSION} GREATER_EQUAL 10) + message(STATUS "DirectWrite support has been enabled") + option(MW_USE_DIRECTWRITE "Use DirectWrite" ON) + else() + message(WARNING "DirectWrite support has been disabled (must be compiling on Win10+)") + option(MW_USE_DIRECTWRITE "Use DirectWrite" OFF) + endif() + endif() +endif() + if(${CMAKE_SYSTEM_NAME} STREQUAL Linux OR ${CMAKE_SYSTEM_NAME} STREQUAL FreeBSD) option(MW_USE_WAYLAND "Enable Wayland backend" ON) endif() @@ -69,8 +88,8 @@ if(MW_TRY_OPENGL) endif() if(MW_TRY_VULKAN) - check_include_files(vulkan/vulkan.h HAVE_VULKAN_VULKAN_H) - if(HAVE_VULKAN_VULKAN_H) + find_package(Vulkan OPTIONAL VULKAN) + if(${Vulkan_FOUND}) set(MW_BUILD_VULKAN ON) message(STATUS "Vulkan widget has been enabled") else() @@ -132,10 +151,10 @@ if(MW_USE_FREETYPE2) if(Freetype_FOUND) message(STATUS "FreeType2 found") target_compile_definitions( - Mw - PRIVATE - USE_FREETYPE2 - ) + Mw + PRIVATE + USE_FREETYPE2 + ) list(APPEND INCLUDE_DIRS ${FREETYPE_INCLUDE_DIRS}) list(APPEND LIBRARY_DIRS ${FREETYPE_LIBRARY_DIRS}) @@ -144,6 +163,14 @@ if(MW_USE_FREETYPE2) endif() endif() +if(MW_USE_DIRECTWRITE) + target_compile_definitions( + Mw + PRIVATE + USE_DIRECTWRITE + ) +endif() + if(MW_USE_WAYLAND) function(scan_wayland_protocol_core) execute_process( diff --git a/WatMakefile b/WatMakefile index bd32d9ba8..7e32bba3b 100644 --- a/WatMakefile +++ b/WatMakefile @@ -319,7 +319,7 @@ examples/gldemos/tripaint.obj: examples/gldemos/tripaint.c src/Mw.dll: external/libz/src/adler32.obj external/libz/src/compress.obj external/libz/src/crc32.obj external/libz/src/deflate.obj external/libz/src/gzclose.obj external/libz/src/gzlib.obj external/libz/src/gzread.obj external/libz/src/gzwrite.obj external/libz/src/infback.obj external/libz/src/inffast.obj external/libz/src/inflate.obj external/libz/src/inftrees.obj external/libz/src/trees.obj external/libz/src/uncompr.obj external/libz/src/zutil.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/charset.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text/font/boldfont.obj src/text/font/boldmonottf.obj src/text/font/boldttf.obj src/text/font/font.obj src/text/font/monottf.obj src/text/font/ttf.obj src/text/ft2.obj src/text/stbtt.obj src/text/text.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/calendar.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/subwindow.obj src/widget/tab.obj src/widget/table.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj $(LD) $(MW_LDFLAGS) option implib=src/Mw.lib name $@ file external/libz/src/adler32.obj file external/libz/src/compress.obj file external/libz/src/crc32.obj file external/libz/src/deflate.obj file external/libz/src/gzclose.obj file external/libz/src/gzlib.obj file external/libz/src/gzread.obj file external/libz/src/gzwrite.obj file external/libz/src/infback.obj file external/libz/src/inffast.obj file external/libz/src/inflate.obj file external/libz/src/inftrees.obj file external/libz/src/trees.obj file external/libz/src/uncompr.obj file external/libz/src/zutil.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/charset.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/font/boldfont.obj file src/text/font/boldmonottf.obj file src/text/font/boldttf.obj file src/text/font/font.obj file src/text/font/monottf.obj file src/text/font/ttf.obj file src/text/ft2.obj file src/text/stbtt.obj file src/text/text.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/calendar.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/subwindow.obj file src/widget/tab.obj file src/widget/table.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib library advapi32.lib - + external/libz/src/adler32.obj: external/libz/src/adler32.c diff --git a/configure b/configure index 0192a22c4..f24e3abbb 100755 --- a/configure +++ b/configure @@ -2,6 +2,11 @@ our $target = `uname -s`; $target =~ s/\r?\n$//; +# MSYS with MinGW gives us some other shit idk +if (index($target, "MINGW") != -1) { + $target = "Windows"; +} + foreach my $l (@ARGV) { if ($l =~ /^--.+$/) { } @@ -39,14 +44,12 @@ require("./pl/utils.pl"); param_set("classic-theme", 0); param_set("stb-image", 1); -param_set("xrender", 1); param_set("opengl", 0); param_set("vulkan", 0); param_set("vulkan-string-helper", 1); param_set("shared", 1); param_set("static", 1); param_set("examples", 1); -param_set("dbus", 1); # (option that only makes sense on x11) param_set("allow-sloppy-focus", 0); @@ -56,7 +59,8 @@ my %features = ( "stb-image" => "use stb_image, instead use libjpeg/libpng", "stb-truetype" => "use stb_truetype", "freetype2" => "use FreeType2", - "xrender" => "use XRender", + "directwrite" => "(Windows only) use DirectWrite", + "xrender" => "(X11 only) use XRender", "opengl" => "build OpenGL widget", "vulkan" => "build Vulkan widget", "vulkan-string-helper" => "use Vulkan string helper", @@ -69,7 +73,7 @@ my %features = ( ); my @features_keys = ( "1classic-theme", "1stb-image", - "1stb-truetype", "1freetype2", + "1stb-truetype", "1freetype2", "1directwrite", "1opengl", "2xrender", "1vulkan", "2vulkan-string-helper", "1shared", "1static", @@ -87,13 +91,34 @@ sub def_platform { } if($target eq "Linux" || $target eq "FreeBSD") { param_set("x11", 1); + param_set("xrender", 1); if(!param_get("tiny")){ param_set("wayland", 1); } + param_set("dbus", 1); } if($target eq "NetBSD" || $target eq "OpenBSD") { param_set("x11", 1); } + if($target eq "Windows") { + if ($^O eq "Win32") + { + require Win32; + Win32->import(); + my ( $osvername, $major, $minor, $id ) = Win32::GetOSVersion(); + + if($major >= 10) { + param_set("directwrite", 1); + } else { + param_set("directwrite", 0); + } + } else { + # assume cross compiling + param_set("directwrite", 1); + } + } else { + param_set("directwrite", 0); + } } foreach my $l (@ARGV) { diff --git a/examples/vkdemos/CMakeLists.txt b/examples/vkdemos/CMakeLists.txt index 41f832c2d..9f37e0f71 100644 --- a/examples/vkdemos/CMakeLists.txt +++ b/examples/vkdemos/CMakeLists.txt @@ -1,28 +1,30 @@ file( - GLOB - EXAMPLES_VULKAN_SOURCES - *.c + GLOB + EXAMPLES_VULKAN_SOURCES + *.c ) find_package(Vulkan) -foreach(PATH IN LISTS EXAMPLES_VULKAN_SOURCES) - get_filename_component(TARGET ${PATH} NAME_WE) - add_executable(${TARGET} MACOSX_BUNDLE ${PATH}) - target_include_directories( - ${TARGET} - PRIVATE - ${Vulkan_INCLUDE_DIR} - ) - target_link_libraries( - ${TARGET} - PRIVATE - Mw - ) - if(NOT CMAKE_SYSTEM_NAME STREQUAL "Windows") - target_link_libraries( - ${TARGET} - PRIVATE - m - ) - endif() -endforeach() +if(${Vulkan_FOUND}) + foreach(PATH IN LISTS EXAMPLES_VULKAN_SOURCES) + get_filename_component(TARGET ${PATH} NAME_WE) + add_executable(${TARGET} MACOSX_BUNDLE ${PATH}) + target_include_directories( + ${TARGET} + PRIVATE + ${Vulkan_INCLUDE_DIR} + ) + target_link_libraries( + ${TARGET} + PRIVATE + Mw + ) + if(NOT CMAKE_SYSTEM_NAME STREQUAL "Windows") + target_link_libraries( + ${TARGET} + PRIVATE + m + ) + endif() + endforeach() +endif() diff --git a/examples/vkdemos/vulkan.c b/examples/vkdemos/vulkan.c index 2d03030e9..601541529 100644 --- a/examples/vkdemos/vulkan.c +++ b/examples/vkdemos/vulkan.c @@ -1,10 +1,3 @@ - -/** - * this example is quite minimal, you may need to modify it if your graphics card is more esoteric - * - * ioixd maintains this file. nishi doesn't know vulkan at all - */ - #include #include @@ -264,8 +257,8 @@ void vulkan_setup(MwWidget handle) { swapchainCreateInfo.imageExtent = (VkExtent2D){.width = ow, .height = oh}, swapchainCreateInfo.imageArrayLayers = 1, swapchainCreateInfo.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | - VK_IMAGE_USAGE_TRANSFER_DST_BIT | - VK_IMAGE_USAGE_SAMPLED_BIT; + VK_IMAGE_USAGE_TRANSFER_DST_BIT | + VK_IMAGE_USAGE_SAMPLED_BIT; // th is how we specify no transformation. swapchainCreateInfo.preTransform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; swapchainCreateInfo.compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR; diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 54f1b890c..3ecd06587 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -344,10 +344,14 @@ MWDECL int MWFL_FT2Setup(void); #ifdef USE_STB_TRUETYPE MWDECL int MwFL_STBTTSetup(void); #endif +#ifdef USE_DIRECTWRITE +MWDECL int MWFL_DWSetup(void); +#endif MWDECL int (*MwFLDrawText)(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, MwLLColor color); MWDECL int (*MwFLTextWidth)(MwFLFont ttf, const char* text); MWDECL int (*MwFLTextHeight)(MwFLFont ttf, int count); +MWDECL int (*MwFLTextHeightWithText)(MwFLFont ttf, const char * text); MWDECL void* (*MwFLFontLoad)(unsigned char* data, unsigned int size, int px); MWDECL void (*MwFLFontFree)(void* handle); diff --git a/pl/rules.pl b/pl/rules.pl index bb6fa25ea..6f3748223 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -134,6 +134,10 @@ if (param_get("freetype2")) { } } +if (param_get("directwrite")) { + add_cflags("-DUSE_DIRECTWRITE"); +} + if (param_get("vulkan") && param_get("vulkan-string-helper")) { add_cflags("-DHAS_VK_ENUM_STRING_HELPER"); } diff --git a/src/core.c b/src/core.c index 0366443e7..c77d450e2 100644 --- a/src/core.c +++ b/src/core.c @@ -310,12 +310,19 @@ static MwWidget MwCreateWidget_Internal(MwClass widget_class, const char* name, MwAddTickList(h); } -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) if(IsFirstVisible(h)) { + font_setup: h->root_font = MwFontLoad(MwTTFData, MwTTFDataSize); h->root_boldfont = MwFontLoad(MwBoldTTFData, MwBoldTTFDataSize); h->root_monofont = MwFontLoad(MwMonospaceTTFData, MwMonospaceTTFDataSize); h->root_boldmonofont = MwFontLoad(MwBoldMonospaceTTFData, MwBoldMonospaceTTFDataSize); + if(!h->root_font) { +#ifdef USE_STB_TRUETYPE + MwFL_STBTTSetup(); + goto font_setup; +#endif + } } else #endif { @@ -732,7 +739,7 @@ int MwGetInteger(MwWidget handle, const char* key) { return MwDEFAULT; } else { if(shgeti(handle->integer, key) == -1) { -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) if(strcmp(key, MwNbitmapFont) == 0) return inherit_integer(handle, key, 0); #else if(strcmp(key, MwNbitmapFont) == 0) return inherit_integer(handle, key, 1); @@ -783,7 +790,7 @@ const char* MwGetText(MwWidget handle, const char* key) { return shget(handle->text, key); } -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) static void* inherit_void(MwWidget handle, const char* key) { void* v; @@ -799,7 +806,7 @@ void* MwGetVoid(MwWidget handle, const char* key) { if(v != NULL) return v; -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) if(strcmp(key, MwNfont) == 0 || strcmp(key, MwNboldFont) == 0 || strcmp(key, MwNmonospaceFont) == 0 || strcmp(key, MwNboldMonospaceFont) == 0) { v = inherit_void(handle, key); diff --git a/src/text/directwrite.c b/src/text/directwrite.c new file mode 100644 index 000000000..df584ac66 --- /dev/null +++ b/src/text/directwrite.c @@ -0,0 +1,588 @@ +/* + * DirectWrite Font backend + * + * This should dynamically load everything necessary and then gracefully fallback if the user isn't on Windows 10. + */ +#ifdef USE_DIRECTWRITE +#define INITGUID +#include + +#include +#include + +#ifndef WINBOOL +#define WINBOOL int +#endif + +/* dwrite is vendored because it's only mingw that gives us COBJMACRO */ +#include "dwrite.h" +#include "dwrite_3.h" + +typedef struct CustomTextRenderer { + IDWriteTextRendererVtbl* lpVtbl; + LONG refCount; + IDWriteFactory6* write_factory; + IDWriteBitmapRenderTarget* target; + int red, blue, green; + +} CustomTextRenderer; +static CustomTextRenderer* CustomTextRenderer_Create(IDWriteFactory6* write_factory, IDWriteBitmapRenderTarget* target, MwLLColor color); + +static struct dw { + HMODULE d2d1_lib; + HMODULE dwrite_lib; + + HRESULT (*D2D1CreateFactory)(D2D1_FACTORY_TYPE factoryType, const IID* const riid, const D2D1_FACTORY_OPTIONS* pFactoryOptions, void** ppIFactory); + HRESULT (*DWriteCreateFactory)(int factoryType, const IID* const iid, IUnknown** factory); + + HMODULE kernel32_lib; +} dw_table; + +struct _MwFLFont { + int px; + void* data; + MwBool valid; + + IDWriteFactory6* write_factory; + ID2D1Factory* d2dFactory; + IDWriteGdiInterop* gdiInterop; + IDWriteFontFile* file; + IDWriteFontFace* font_face; + IDWriteFontSetBuilder2* font_builder; + IDWriteFontSet* font_set; + IDWriteFontCollection1* font_collection; + IDWriteTextFormat* text_format; + + LOGFONTW logfont; + HFONT font; +}; + +static int unpack_ttf_data(WCHAR* temp_path_name, unsigned char* data, unsigned int size) { + WCHAR temp_path_dir[MAX_PATH]; + HANDLE tempFile; + int hr; + + hr = GetTempPathW(MAX_PATH, temp_path_dir); + if(hr == 0) { + printf("GetTempPathW failed for TTF, cannot use DirectWrite\n"); + return 1; + } + hr = GetTempFileNameW(temp_path_dir, TEXT(L"MILSKO"), 0, temp_path_name); + if(hr == 0) { + printf("GetTempFileName failed for TTF, cannot use DirectWrite\n"); + return 1; + } + + tempFile = CreateFileW(temp_path_name, + GENERIC_WRITE, + 0, + NULL, + CREATE_NEW, + FILE_ATTRIBUTE_NORMAL, + NULL); + if(tempFile == INVALID_HANDLE_VALUE) { + DWORD err = GetLastError(); + if(err == ERROR_FILE_EXISTS) { + tempFile = CreateFileW(temp_path_name, + GENERIC_WRITE, + 0, + NULL, + OPEN_ALWAYS, + FILE_ATTRIBUTE_NORMAL, + NULL); + if(tempFile != INVALID_HANDLE_VALUE) { + goto success; + } else { + err = GetLastError(); + } + } + printf("CreateFile failed for TTF (%ld), cannot use DirectWrite\n", err); + return 1; + } +success: + + hr = WriteFile(tempFile, data, size, NULL, NULL); + if(!hr) { + printf("WriteFile failed for TTF (%ld), cannot use DirectWrite\n", GetLastError()); + return 1; + } + + CloseHandle(tempFile); + + return 0; +} + +static void* dw_MwFontLoad(unsigned char* data, unsigned int size, int px) { + MwFLFont ttf = malloc(sizeof(*ttf)); + HRESULT hr; + WCHAR font_name[MAX_PATH]; + D2D1_FACTORY_OPTIONS d2d1_options; + + d2d1_options.debugLevel = D2D1_DEBUG_LEVEL_ERROR; + +#define INTERFACE_CHECK(x, factory) \ + do { \ + x* rsrc = NULL; \ + if(!SUCCEEDED((hr = x##_QueryInterface(factory, &IID_##x, (void**)&rsrc)))) { \ + printf("Query for interface " #x " failed (%08lX). Cannot use DirectWrite.\n", hr); \ + return NULL; \ + }; \ + } while(0); + + memset(ttf, 0, sizeof(*ttf)); + ttf->data = malloc(size); + memcpy(ttf->data, data, size); + + ttf->px = px; + + hr = dw_table.D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &IID_ID2D1Factory, &d2d1_options, (void**)&ttf->d2dFactory); + if(!SUCCEEDED(hr)) { + printf("D2D1CreateFactory failed for TTF (%08lX), cannot use DirectWrite\n", hr); + goto fail; + } + + INTERFACE_CHECK(ID2D1Factory, ttf->d2dFactory); + + hr = dw_table.DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, &IID_IDWriteFactory, (struct IUnknown**)&ttf->write_factory); + if(!SUCCEEDED(hr)) { + printf("DWriteCreateFactory failed for TTF (%08lx), cannot use DirectWrite\n", hr); + goto fail; + } + INTERFACE_CHECK(IDWriteFactory6, ttf->write_factory); + + if(unpack_ttf_data(font_name, data, size) != 0) { + goto fail; + }; + + hr = IDWriteFactory6_CreateFontFileReference(ttf->write_factory, font_name, NULL, &ttf->file); + if(!SUCCEEDED(hr)) { + printf("CreateFontFileReference failed for TTF (%08lx), cannot use DirectWrite\n", hr); + goto fail; + } + INTERFACE_CHECK(IDWriteFontFile, ttf->file); + + hr = IDWriteFactory_CreateFontFace(ttf->write_factory, DWRITE_FONT_FACE_TYPE_TRUETYPE, 1, &ttf->file, 0, DWRITE_FONT_SIMULATIONS_NONE, &ttf->font_face); + if(!SUCCEEDED(hr)) { + printf("IDWriteFactory_CreateFontFace failed for TTF (%08lx), cannot use DirectWrite\n", hr); + goto fail; + } + INTERFACE_CHECK(IDWriteFontFace, ttf->font_face); + + hr = IDWriteFactory6_CreateFontSetBuilder(ttf->write_factory, &ttf->font_builder); + if(!SUCCEEDED(hr)) { + printf("IDWriteFactory6_CreateFontSetBuilder failed for TTF (%08lx), cannot use DirectWrite\n", hr); + goto fail; + } + INTERFACE_CHECK(IDWriteFontSetBuilder2, ttf->font_builder); + + hr = IDWriteFontSetBuilder2_AddFontFile(ttf->font_builder, font_name); + if(!SUCCEEDED(hr)) { + printf("IDWriteFontSetBuilder2_AddFontFile failed for TTF (%08lx), cannot use DirectWrite\n", hr); + goto fail; + } + + hr = IDWriteFontSetBuilder_CreateFontSet(ttf->font_builder, &ttf->font_set); + if(!SUCCEEDED(hr)) { + printf("IDWriteFontSetBuilder_CreateFontSet failed for TTF (%08lx), cannot use DirectWrite\n", hr); + goto fail; + } + INTERFACE_CHECK(IDWriteFontSet, ttf->font_set); + + hr = IDWriteFactory3_CreateFontCollectionFromFontSet(ttf->write_factory, ttf->font_set, &ttf->font_collection); + if(!SUCCEEDED(hr)) { + printf("IDWriteFactory3_CreateFontCollectionFromFontSet failed for TTF (%08lx), cannot use DirectWrite\n", hr); + goto fail; + } + INTERFACE_CHECK(IDWriteFontCollection1, ttf->font_collection); + + hr = IDWriteFactory6_GetGdiInterop(ttf->write_factory, &ttf->gdiInterop); + if(!SUCCEEDED(hr)) { + printf("GetGdiInterop failed for TTF (%08lx), cannot use DirectWrite\n", hr); + goto fail; + } + INTERFACE_CHECK(IDWriteGdiInterop, ttf->gdiInterop); + + hr = IDWriteFactory_CreateTextFormat(ttf->write_factory, L"milsko font", (IDWriteFontCollection*)ttf->font_collection, DWRITE_FONT_WEIGHT_NORMAL, DWRITE_FONT_STYLE_NORMAL, DWRITE_FONT_STRETCH_NORMAL, px, L"en-US", &ttf->text_format); + if(!SUCCEEDED(hr)) { + printf("IDWriteFactory_CreateTextFormat failed for TTF (%08lx), cannot use DirectWrite\n", hr); + goto fail; + } + + ttf->valid = MwTRUE; + return ttf; + +fail: + ttf->valid = MwFALSE; + return NULL; +} + +static int dw_MwTextOffset(MwFLFont ttf, const char* text); + +static int dw_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, MwLLColor color) { + IDWriteTextLayout* text_layout; + IDWriteBitmapRenderTarget* target = NULL; + HRESULT hr; + RECT rc = {0}; + HDC memoryHDC = NULL; + DWRITE_FONT_METRICS metrics = {0}; + LONG width = 0, height = 0, offset = 0; + WCHAR* wtext = NULL; + CustomTextRenderer* texRenderer; + size_t wtext_len = MultiByteToWideChar(CP_UTF8, 0, text, -1, NULL, 0); + + wtext = malloc(wtext_len * 2); /* we get a weird buffer overflow when we try to free this later? allocate well above wtext_len then to prevent that. */ + memset(wtext, 0, wtext_len * 2); + MultiByteToWideChar(CP_UTF8, 0, text, -1, wtext, wtext_len); + + IDWriteFontFace_GetMetrics(ttf->font_face, &metrics); + + GetClientRect(handle->lowlevel->gdi.hWnd, &rc); + MapWindowPoints(handle->lowlevel->gdi.hWnd, GetParent(handle->lowlevel->gdi.hWnd), (LPPOINT)&rc, 2); + + width = MwTextWidth(handle, ttf, text); + height = MwTextHeight(handle, ttf, text); + offset = dw_MwTextOffset(ttf, text); + + hr = IDWriteFactory_CreateTextLayout(ttf->write_factory, wtext, wtext_len, ttf->text_format, width, height, &text_layout); + + IDWriteGdiInterop_CreateBitmapRenderTarget(ttf->gdiInterop, handle->lowlevel->gdi.hDC, width, height, &target); + + texRenderer = CustomTextRenderer_Create(ttf->write_factory, target, color); + + memoryHDC = IDWriteBitmapRenderTarget_GetMemoryDC(target); + + SetBkMode(handle->lowlevel->gdi.hDC, TRANSPARENT); + BitBlt(memoryHDC, 0, 0, width, height, handle->lowlevel->gdi.hDC, point->x, point->y - (height / 2), SRCCOPY); + + if(SUCCEEDED(hr)) { + IDWriteTextLayout_Draw(text_layout, target, (IDWriteTextRenderer*)texRenderer, offset, 0); + } + + BitBlt(handle->lowlevel->gdi.hDC, point->x, point->y - (height / 2), width, height, memoryHDC, 0, 0, SRCCOPY | NOMIRRORBITMAP); + + IDWriteBitmapRenderTarget_Release(target); + + free(wtext); + + return 0; +} + +static int dw_MwTextOffset(MwFLFont ttf, const char* text) { + IDWriteTextLayout* text_layout; + DWRITE_FONT_METRICS metrics = {0}; + WCHAR* wtext = NULL; + size_t wtext_len = MultiByteToWideChar(CP_UTF8, 0, text, -1, NULL, 0); + UINT32* codepoints = malloc(wtext_len * sizeof(UINT32)); + UINT16* glyphIndices = malloc(wtext_len * sizeof(UINT16)); + int i; + DWRITE_GLYPH_METRICS* gmetrics; + int tw = 0; + + wtext = malloc(wtext_len * 2); /* we get a weird buffer overflow when we try to free this later? allocate well above wtext_len then to prevent that. */ + memset(wtext, 0, wtext_len * 2); + MultiByteToWideChar(CP_UTF8, 0, text, -1, wtext, wtext_len); + + for(i = 0; i < wtext_len; i++) codepoints[i] = wtext[i]; + + IDWriteFontFace_GetMetrics(ttf->font_face, &metrics); + + IDWriteFactory_CreateTextLayout(ttf->write_factory, wtext, wtext_len, ttf->text_format, 0, 0, &text_layout); + + IDWriteFontFace_GetGlyphIndices(ttf->font_face, codepoints, wtext_len, glyphIndices); + + gmetrics = malloc(wtext_len * sizeof(DWRITE_GLYPH_METRICS)); + + IDWriteFontFace_GetDesignGlyphMetrics(ttf->font_face, glyphIndices, wtext_len, gmetrics, FALSE); + + for(i = 0; i < strlen(text); i++) { + int add = (gmetrics[i].leftSideBearing) * ((float)ttf->px / (float)metrics.designUnitsPerEm); + tw += add; + } + + free(wtext); + + return tw; +} + +static int dw_MwTextWidth(MwFLFont ttf, const char* text) { + IDWriteTextLayout* text_layout; + DWRITE_FONT_METRICS metrics = {0}; + WCHAR* wtext = NULL; + size_t wtext_len = MultiByteToWideChar(CP_UTF8, 0, text, -1, NULL, 0); + UINT32* codepoints = malloc(wtext_len * sizeof(UINT32)); + UINT16* glyphIndices = malloc(wtext_len * sizeof(UINT16)); + int i; + DWRITE_GLYPH_METRICS* gmetrics; + int tw = 0; + + wtext = malloc(wtext_len * 2); /* we get a weird buffer overflow when we try to free this later? allocate well above wtext_len then to prevent that. */ + memset(wtext, 0, wtext_len * 2); + MultiByteToWideChar(CP_UTF8, 0, text, -1, wtext, wtext_len); + + for(i = 0; i < wtext_len; i++) codepoints[i] = wtext[i]; + + IDWriteFontFace_GetMetrics(ttf->font_face, &metrics); + + IDWriteFactory_CreateTextLayout(ttf->write_factory, wtext, wtext_len, ttf->text_format, 0, 0, &text_layout); + + IDWriteFontFace_GetGlyphIndices(ttf->font_face, codepoints, wtext_len, glyphIndices); + + gmetrics = malloc(wtext_len * sizeof(DWRITE_GLYPH_METRICS)); + + IDWriteFontFace_GetDesignGlyphMetrics(ttf->font_face, glyphIndices, wtext_len, gmetrics, FALSE); + + for(i = 0; i < strlen(text); i++) { + int add = (gmetrics[i].advanceWidth + gmetrics[i].leftSideBearing) * ((float)ttf->px / (float)metrics.designUnitsPerEm); + tw += add; + } + + free(wtext); + + return tw; +} + +static int dw_MwTextHeight(MwFLFont ttf, int count) { + (void)count; + return (IDWriteTextFormat2_GetFontSize(ttf->text_format) / 72.0f) * GetDeviceCaps(GetDC(NULL), LOGPIXELSY); +} + +static void dw_MwFontFree(void* handle) { + MwFLFont ttf = handle; + + free(ttf->data); + free(ttf); +} + +/* ---- IUnknown ---- */ + +static HRESULT STDMETHODCALLTYPE CTR_QueryInterface( + IDWriteTextRenderer* iface, REFIID riid, void** ppvObject) { + if(!ppvObject) + return E_POINTER; + + if(IsEqualGUID(riid, &IID_IUnknown) || + IsEqualGUID(riid, &IID_IDWritePixelSnapping) || + IsEqualGUID(riid, &IID_IDWriteTextRenderer)) { + *ppvObject = iface; + iface->lpVtbl->AddRef(iface); + return S_OK; + } + + *ppvObject = NULL; + return E_NOINTERFACE; +} + +static ULONG STDMETHODCALLTYPE CTR_AddRef(IDWriteTextRenderer* iface) { + CustomTextRenderer* This = (CustomTextRenderer*)iface; + return InterlockedIncrement(&This->refCount); +} + +static ULONG STDMETHODCALLTYPE CTR_Release(IDWriteTextRenderer* iface) { + CustomTextRenderer* This = (CustomTextRenderer*)iface; + LONG ref = InterlockedDecrement(&This->refCount); + if(ref == 0) + HeapFree(GetProcessHeap(), 0, This); + return (ULONG)ref; +} + +/* ---- IDWritePixelSnapping (base interface, treated as "core") ---- */ + +static HRESULT STDMETHODCALLTYPE CTR_IsPixelSnappingDisabled( + IDWriteTextRenderer* iface, void* clientDrawingContext, BOOL* isDisabled) { + (void)iface; + (void)clientDrawingContext; + if(!isDisabled) + return E_POINTER; + *isDisabled = FALSE; + return S_OK; +} + +static HRESULT STDMETHODCALLTYPE CTR_GetCurrentTransform( + IDWriteTextRenderer* iface, void* clientDrawingContext, DWRITE_MATRIX* transform) { + (void)iface; + (void)clientDrawingContext; + if(!transform) + return E_POINTER; + + transform->m11 = 1.0f; + transform->m12 = 0.0f; + transform->m21 = 0.0f; + transform->m22 = 1.0f; + transform->dx = 0.0f; + transform->dy = 0.0f; + return S_OK; +} + +static HRESULT STDMETHODCALLTYPE CTR_GetPixelsPerDip( + IDWriteTextRenderer* iface, void* clientDrawingContext, FLOAT* pixelsPerDip) { + (void)iface; + (void)clientDrawingContext; + if(!pixelsPerDip) + return E_POINTER; + *pixelsPerDip = 1.0f; + return S_OK; +} + +static HRESULT STDMETHODCALLTYPE CTR_DrawGlyphRun( + IDWriteTextRenderer* iface, + void* clientDrawingContext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GLYPH_RUN const* glyphRun, + DWRITE_GLYPH_RUN_DESCRIPTION const* glyphRunDescription, + IUnknown* clientDrawingEffect) { + IDWriteRenderingParams* params; + CustomTextRenderer* This = (CustomTextRenderer*)iface; + + (void)clientDrawingContext; + (void)glyphRunDescription; + (void)clientDrawingEffect; + + IDWriteFactory6_CreateRenderingParams(This->write_factory, ¶ms); + + return IDWriteBitmapRenderTarget_DrawGlyphRun(This->target, baselineOriginX, baselineOriginY, measuringMode, glyphRun, params, RGB(This->red, This->green, This->blue), NULL); +} + +static HRESULT STDMETHODCALLTYPE CTR_DrawUnderline( + IDWriteTextRenderer* iface, + void* clientDrawingContext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_UNDERLINE const* underline, + IUnknown* clientDrawingEffect) { + (void)iface; + (void)clientDrawingContext; + (void)baselineOriginX; + (void)baselineOriginY; + (void)underline; + (void)clientDrawingEffect; + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE CTR_DrawStrikethrough( + IDWriteTextRenderer* iface, + void* clientDrawingContext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_STRIKETHROUGH const* strikethrough, + IUnknown* clientDrawingEffect) { + (void)iface; + (void)clientDrawingContext; + (void)baselineOriginX; + (void)baselineOriginY; + (void)strikethrough; + (void)clientDrawingEffect; + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE CTR_DrawInlineObject( + IDWriteTextRenderer* iface, + void* clientDrawingContext, + FLOAT originX, + FLOAT originY, + IDWriteInlineObject* inlineObject, + BOOL isSideways, + BOOL isRightToLeft, + IUnknown* clientDrawingEffect) { + (void)iface; + (void)clientDrawingContext; + (void)originX; + (void)originY; + (void)inlineObject; + (void)isSideways; + (void)isRightToLeft; + (void)clientDrawingEffect; + return E_NOTIMPL; +} + +/* ---- Vtable instance ---- */ + +static IDWriteTextRendererVtbl CTR_Vtbl = { + CTR_QueryInterface, + CTR_AddRef, + CTR_Release, + CTR_IsPixelSnappingDisabled, + CTR_GetCurrentTransform, + CTR_GetPixelsPerDip, + CTR_DrawGlyphRun, + CTR_DrawUnderline, + CTR_DrawStrikethrough, + CTR_DrawInlineObject}; + +/* ---- Constructor ---- */ + +static CustomTextRenderer* CustomTextRenderer_Create(IDWriteFactory6* write_factory, IDWriteBitmapRenderTarget* target, MwLLColor color) { + CustomTextRenderer* obj = + (CustomTextRenderer*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, + sizeof(CustomTextRenderer)); + if(!obj) + return NULL; + + obj->lpVtbl = &CTR_Vtbl; + obj->refCount = 1; + obj->write_factory = write_factory; + obj->target = target; + obj->red = color->common.red; + obj->green = color->common.green; + obj->blue = color->common.blue; + + return obj; +} + +int MWFL_DWSetup(void) { + HRESULT hr; + HANDLE ole32lib; + /* CoInitialize, to my knowledge, is avaliable on every Windows version we actually support. But as of writing, CI fails because a specific mingw won't link to it by default. I'm not gonna waste my time chancing that it will properly link to ole32 either. */ + HRESULT (*CoInitialize)(LPVOID pvReserved); + + ole32lib = LoadLibrary("Ole32.dll"); + if(!ole32lib) { + printf("ole32lib not found, cannot use DirectWrite\n"); + return 1; + } + CoInitialize = (HRESULT (*)(LPVOID pvReserved))GetProcAddress(ole32lib, "CoInitialize"); + if(!CoInitialize) { + printf("CoInitialize not found, cannot use DirectWrite\n"); + return 1; + } + + CoInitialize(NULL); + + /* Try and load DirectWrite. If it fails, return 1, signifying we default to bitmap drawing. */ + dw_table.d2d1_lib = LoadLibrary("D2d1.dll"); + if(!dw_table.d2d1_lib) { + printf("D2d1.dll not found, cannot use DirectWrite\n"); + return 1; + } + dw_table.dwrite_lib = LoadLibrary("dwrite.dll"); + if(!dw_table.dwrite_lib) { + printf("dwrite.dll not found, cannot use DirectWrite\n"); + return 1; + } + +#define D2D1_LOAD(x) \ + dw_table.x = (typeof(dw_table.x))GetProcAddress(dw_table.d2d1_lib, #x); \ + if(!dw_table.x) { \ + printf("Can't use DirectWrite, " #x " not found."); \ + return 1; \ + } + +#define DWRITE_LOAD(x) \ + dw_table.x = (typeof(dw_table.x))GetProcAddress(dw_table.dwrite_lib, #x); \ + if(!dw_table.x) { \ + printf("Can't use DirectWrite, " #x " not found."); \ + return 1; \ + } + + D2D1_LOAD(D2D1CreateFactory); + DWRITE_LOAD(DWriteCreateFactory); + + MwFLDrawText = dw_MwDrawText; + MwFLTextWidth = dw_MwTextWidth; + MwFLTextHeight = dw_MwTextHeight; + MwFLFontLoad = dw_MwFontLoad; + MwFLFontFree = dw_MwFontFree; + return 0; +} +#endif diff --git a/src/text/dwrite.h b/src/text/dwrite.h new file mode 100644 index 000000000..4872ded00 --- /dev/null +++ b/src/text/dwrite.h @@ -0,0 +1,5517 @@ +/*** Autogenerated by WIDL 11.0-rc1 from include/dwrite.idl - Do not edit ***/ + +#define COBJMACROS + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#endif + + +#ifndef __dwrite_h__ +#define __dwrite_h__ + +/* Forward declarations */ + +#ifndef __IDWriteFontFileStream_FWD_DEFINED__ +#define __IDWriteFontFileStream_FWD_DEFINED__ +typedef interface IDWriteFontFileStream IDWriteFontFileStream; +#ifdef __cplusplus +interface IDWriteFontFileStream; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFileLoader_FWD_DEFINED__ +#define __IDWriteFontFileLoader_FWD_DEFINED__ +typedef interface IDWriteFontFileLoader IDWriteFontFileLoader; +#ifdef __cplusplus +interface IDWriteFontFileLoader; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteLocalFontFileLoader_FWD_DEFINED__ +#define __IDWriteLocalFontFileLoader_FWD_DEFINED__ +typedef interface IDWriteLocalFontFileLoader IDWriteLocalFontFileLoader; +#ifdef __cplusplus +interface IDWriteLocalFontFileLoader; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFile_FWD_DEFINED__ +#define __IDWriteFontFile_FWD_DEFINED__ +typedef interface IDWriteFontFile IDWriteFontFile; +#ifdef __cplusplus +interface IDWriteFontFile; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFileEnumerator_FWD_DEFINED__ +#define __IDWriteFontFileEnumerator_FWD_DEFINED__ +typedef interface IDWriteFontFileEnumerator IDWriteFontFileEnumerator; +#ifdef __cplusplus +interface IDWriteFontFileEnumerator; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontCollectionLoader_FWD_DEFINED__ +#define __IDWriteFontCollectionLoader_FWD_DEFINED__ +typedef interface IDWriteFontCollectionLoader IDWriteFontCollectionLoader; +#ifdef __cplusplus +interface IDWriteFontCollectionLoader; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteLocalizedStrings_FWD_DEFINED__ +#define __IDWriteLocalizedStrings_FWD_DEFINED__ +typedef interface IDWriteLocalizedStrings IDWriteLocalizedStrings; +#ifdef __cplusplus +interface IDWriteLocalizedStrings; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteRenderingParams_FWD_DEFINED__ +#define __IDWriteRenderingParams_FWD_DEFINED__ +typedef interface IDWriteRenderingParams IDWriteRenderingParams; +#ifdef __cplusplus +interface IDWriteRenderingParams; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFace_FWD_DEFINED__ +#define __IDWriteFontFace_FWD_DEFINED__ +typedef interface IDWriteFontFace IDWriteFontFace; +#ifdef __cplusplus +interface IDWriteFontFace; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFont_FWD_DEFINED__ +#define __IDWriteFont_FWD_DEFINED__ +typedef interface IDWriteFont IDWriteFont; +#ifdef __cplusplus +interface IDWriteFont; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontList_FWD_DEFINED__ +#define __IDWriteFontList_FWD_DEFINED__ +typedef interface IDWriteFontList IDWriteFontList; +#ifdef __cplusplus +interface IDWriteFontList; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFamily_FWD_DEFINED__ +#define __IDWriteFontFamily_FWD_DEFINED__ +typedef interface IDWriteFontFamily IDWriteFontFamily; +#ifdef __cplusplus +interface IDWriteFontFamily; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontCollection_FWD_DEFINED__ +#define __IDWriteFontCollection_FWD_DEFINED__ +typedef interface IDWriteFontCollection IDWriteFontCollection; +#ifdef __cplusplus +interface IDWriteFontCollection; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWritePixelSnapping_FWD_DEFINED__ +#define __IDWritePixelSnapping_FWD_DEFINED__ +typedef interface IDWritePixelSnapping IDWritePixelSnapping; +#ifdef __cplusplus +interface IDWritePixelSnapping; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextRenderer_FWD_DEFINED__ +#define __IDWriteTextRenderer_FWD_DEFINED__ +typedef interface IDWriteTextRenderer IDWriteTextRenderer; +#ifdef __cplusplus +interface IDWriteTextRenderer; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteInlineObject_FWD_DEFINED__ +#define __IDWriteInlineObject_FWD_DEFINED__ +typedef interface IDWriteInlineObject IDWriteInlineObject; +#ifdef __cplusplus +interface IDWriteInlineObject; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextFormat_FWD_DEFINED__ +#define __IDWriteTextFormat_FWD_DEFINED__ +typedef interface IDWriteTextFormat IDWriteTextFormat; +#ifdef __cplusplus +interface IDWriteTextFormat; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTypography_FWD_DEFINED__ +#define __IDWriteTypography_FWD_DEFINED__ +typedef interface IDWriteTypography IDWriteTypography; +#ifdef __cplusplus +interface IDWriteTypography; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteBitmapRenderTarget_FWD_DEFINED__ +#define __IDWriteBitmapRenderTarget_FWD_DEFINED__ +typedef interface IDWriteBitmapRenderTarget IDWriteBitmapRenderTarget; +#ifdef __cplusplus +interface IDWriteBitmapRenderTarget; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteGdiInterop_FWD_DEFINED__ +#define __IDWriteGdiInterop_FWD_DEFINED__ +typedef interface IDWriteGdiInterop IDWriteGdiInterop; +#ifdef __cplusplus +interface IDWriteGdiInterop; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextLayout_FWD_DEFINED__ +#define __IDWriteTextLayout_FWD_DEFINED__ +typedef interface IDWriteTextLayout IDWriteTextLayout; +#ifdef __cplusplus +interface IDWriteTextLayout; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteNumberSubstitution_FWD_DEFINED__ +#define __IDWriteNumberSubstitution_FWD_DEFINED__ +typedef interface IDWriteNumberSubstitution IDWriteNumberSubstitution; +#ifdef __cplusplus +interface IDWriteNumberSubstitution; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextAnalysisSource_FWD_DEFINED__ +#define __IDWriteTextAnalysisSource_FWD_DEFINED__ +typedef interface IDWriteTextAnalysisSource IDWriteTextAnalysisSource; +#ifdef __cplusplus +interface IDWriteTextAnalysisSource; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextAnalysisSink_FWD_DEFINED__ +#define __IDWriteTextAnalysisSink_FWD_DEFINED__ +typedef interface IDWriteTextAnalysisSink IDWriteTextAnalysisSink; +#ifdef __cplusplus +interface IDWriteTextAnalysisSink; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextAnalyzer_FWD_DEFINED__ +#define __IDWriteTextAnalyzer_FWD_DEFINED__ +typedef interface IDWriteTextAnalyzer IDWriteTextAnalyzer; +#ifdef __cplusplus +interface IDWriteTextAnalyzer; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteGlyphRunAnalysis_FWD_DEFINED__ +#define __IDWriteGlyphRunAnalysis_FWD_DEFINED__ +typedef interface IDWriteGlyphRunAnalysis IDWriteGlyphRunAnalysis; +#ifdef __cplusplus +interface IDWriteGlyphRunAnalysis; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFactory_FWD_DEFINED__ +#define __IDWriteFactory_FWD_DEFINED__ +typedef interface IDWriteFactory IDWriteFactory; +#ifdef __cplusplus +interface IDWriteFactory; +#endif /* __cplusplus */ +#endif + +/* Headers for imported files */ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef __IDWriteFactory_FWD_DEFINED__ +#define __IDWriteFactory_FWD_DEFINED__ +typedef interface IDWriteFactory IDWriteFactory; +#ifdef __cplusplus +interface IDWriteFactory; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontCollection_FWD_DEFINED__ +#define __IDWriteFontCollection_FWD_DEFINED__ +typedef interface IDWriteFontCollection IDWriteFontCollection; +#ifdef __cplusplus +interface IDWriteFontCollection; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFamily_FWD_DEFINED__ +#define __IDWriteFontFamily_FWD_DEFINED__ +typedef interface IDWriteFontFamily IDWriteFontFamily; +#ifdef __cplusplus +interface IDWriteFontFamily; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFace_FWD_DEFINED__ +#define __IDWriteFontFace_FWD_DEFINED__ +typedef interface IDWriteFontFace IDWriteFontFace; +#ifdef __cplusplus +interface IDWriteFontFace; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteInlineObject_FWD_DEFINED__ +#define __IDWriteInlineObject_FWD_DEFINED__ +typedef interface IDWriteInlineObject IDWriteInlineObject; +#ifdef __cplusplus +interface IDWriteInlineObject; +#endif /* __cplusplus */ +#endif + +#ifndef __ID2D1SimplifiedGeometrySink_FWD_DEFINED__ +#define __ID2D1SimplifiedGeometrySink_FWD_DEFINED__ +typedef interface ID2D1SimplifiedGeometrySink ID2D1SimplifiedGeometrySink; +#ifdef __cplusplus +interface ID2D1SimplifiedGeometrySink; +#endif /* __cplusplus */ +#endif + +typedef ID2D1SimplifiedGeometrySink IDWriteGeometrySink; +#ifndef _WINDEF_ +typedef void *HMONITOR; +#endif /* _WINDEF_ */ +#ifdef WINE_NO_UNICODE_MACROS +#undef GetGlyphIndices +#endif +typedef enum DWRITE_FACTORY_TYPE { + DWRITE_FACTORY_TYPE_SHARED = 0, + DWRITE_FACTORY_TYPE_ISOLATED = 1 +} DWRITE_FACTORY_TYPE; +typedef enum DWRITE_FONT_FILE_TYPE { + DWRITE_FONT_FILE_TYPE_UNKNOWN = 0, + DWRITE_FONT_FILE_TYPE_CFF = 1, + DWRITE_FONT_FILE_TYPE_TRUETYPE = 2, + DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION = 3, + DWRITE_FONT_FILE_TYPE_TYPE1_PFM = 4, + DWRITE_FONT_FILE_TYPE_TYPE1_PFB = 5, + DWRITE_FONT_FILE_TYPE_VECTOR = 6, + DWRITE_FONT_FILE_TYPE_BITMAP = 7, + DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION = DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION +} DWRITE_FONT_FILE_TYPE; +typedef enum DWRITE_FONT_FACE_TYPE { + DWRITE_FONT_FACE_TYPE_CFF = 0, + DWRITE_FONT_FACE_TYPE_TRUETYPE = 1, + DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION = 2, + DWRITE_FONT_FACE_TYPE_TYPE1 = 3, + DWRITE_FONT_FACE_TYPE_VECTOR = 4, + DWRITE_FONT_FACE_TYPE_BITMAP = 5, + DWRITE_FONT_FACE_TYPE_UNKNOWN = 6, + DWRITE_FONT_FACE_TYPE_RAW_CFF = 7, + DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION = DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION +} DWRITE_FONT_FACE_TYPE; +typedef enum DWRITE_FONT_WEIGHT { + DWRITE_FONT_WEIGHT_THIN = 100, + DWRITE_FONT_WEIGHT_EXTRA_LIGHT = 200, + DWRITE_FONT_WEIGHT_ULTRA_LIGHT = 200, + DWRITE_FONT_WEIGHT_LIGHT = 300, + DWRITE_FONT_WEIGHT_SEMI_LIGHT = 350, + DWRITE_FONT_WEIGHT_NORMAL = 400, + DWRITE_FONT_WEIGHT_REGULAR = 400, + DWRITE_FONT_WEIGHT_MEDIUM = 500, + DWRITE_FONT_WEIGHT_DEMI_BOLD = 600, + DWRITE_FONT_WEIGHT_SEMI_BOLD = 600, + DWRITE_FONT_WEIGHT_BOLD = 700, + DWRITE_FONT_WEIGHT_EXTRA_BOLD = 800, + DWRITE_FONT_WEIGHT_ULTRA_BOLD = 800, + DWRITE_FONT_WEIGHT_BLACK = 900, + DWRITE_FONT_WEIGHT_HEAVY = 900, + DWRITE_FONT_WEIGHT_EXTRA_BLACK = 950, + DWRITE_FONT_WEIGHT_ULTRA_BLACK = 950 +} DWRITE_FONT_WEIGHT; +typedef enum DWRITE_FONT_STRETCH { + DWRITE_FONT_STRETCH_UNDEFINED = 0, + DWRITE_FONT_STRETCH_ULTRA_CONDENSED = 1, + DWRITE_FONT_STRETCH_EXTRA_CONDENSED = 2, + DWRITE_FONT_STRETCH_CONDENSED = 3, + DWRITE_FONT_STRETCH_SEMI_CONDENSED = 4, + DWRITE_FONT_STRETCH_NORMAL = 5, + DWRITE_FONT_STRETCH_MEDIUM = 5, + DWRITE_FONT_STRETCH_SEMI_EXPANDED = 6, + DWRITE_FONT_STRETCH_EXPANDED = 7, + DWRITE_FONT_STRETCH_EXTRA_EXPANDED = 8, + DWRITE_FONT_STRETCH_ULTRA_EXPANDED = 9 +} DWRITE_FONT_STRETCH; +typedef enum DWRITE_FONT_STYLE { + DWRITE_FONT_STYLE_NORMAL = 0, + DWRITE_FONT_STYLE_OBLIQUE = 1, + DWRITE_FONT_STYLE_ITALIC = 2 +} DWRITE_FONT_STYLE; +typedef enum DWRITE_INFORMATIONAL_STRING_ID { + DWRITE_INFORMATIONAL_STRING_NONE = 0, + DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE = 1, + DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS = 2, + DWRITE_INFORMATIONAL_STRING_TRADEMARK = 3, + DWRITE_INFORMATIONAL_STRING_MANUFACTURER = 4, + DWRITE_INFORMATIONAL_STRING_DESIGNER = 5, + DWRITE_INFORMATIONAL_STRING_DESIGNER_URL = 6, + DWRITE_INFORMATIONAL_STRING_DESCRIPTION = 7, + DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL = 8, + DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION = 9, + DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL = 10, + DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES = 11, + DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES = 12, + DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_FAMILY_NAMES = 13, + DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_SUBFAMILY_NAMES = 14, + DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT = 15, + DWRITE_INFORMATIONAL_STRING_FULL_NAME = 16, + DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME = 17, + DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_CID_NAME = 18, + DWRITE_INFORMATIONAL_STRING_WEIGHT_STRETCH_STYLE_FAMILY_NAME = 19, + DWRITE_INFORMATIONAL_STRING_DESIGN_SCRIPT_LANGUAGE_TAG = 20, + DWRITE_INFORMATIONAL_STRING_SUPPORTED_SCRIPT_LANGUAGE_TAG = 21, + DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES = DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_FAMILY_NAMES, + DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES = DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_SUBFAMILY_NAMES, + DWRITE_INFORMATIONAL_STRING_WWS_FAMILY_NAME = DWRITE_INFORMATIONAL_STRING_WEIGHT_STRETCH_STYLE_FAMILY_NAME +} DWRITE_INFORMATIONAL_STRING_ID; +typedef enum DWRITE_FONT_SIMULATIONS { + DWRITE_FONT_SIMULATIONS_NONE = 0, + DWRITE_FONT_SIMULATIONS_BOLD = 1, + DWRITE_FONT_SIMULATIONS_OBLIQUE = 2 +} DWRITE_FONT_SIMULATIONS; +DEFINE_ENUM_FLAG_OPERATORS(DWRITE_FONT_SIMULATIONS); +typedef enum DWRITE_PIXEL_GEOMETRY { + DWRITE_PIXEL_GEOMETRY_FLAT = 0, + DWRITE_PIXEL_GEOMETRY_RGB = 1, + DWRITE_PIXEL_GEOMETRY_BGR = 2 +} DWRITE_PIXEL_GEOMETRY; +typedef enum DWRITE_RENDERING_MODE { + DWRITE_RENDERING_MODE_DEFAULT = 0, + DWRITE_RENDERING_MODE_ALIASED = 1, + DWRITE_RENDERING_MODE_GDI_CLASSIC = 2, + DWRITE_RENDERING_MODE_GDI_NATURAL = 3, + DWRITE_RENDERING_MODE_NATURAL = 4, + DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC = 5, + DWRITE_RENDERING_MODE_OUTLINE = 6, + DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC = DWRITE_RENDERING_MODE_GDI_CLASSIC, + DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL = DWRITE_RENDERING_MODE_GDI_NATURAL, + DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL = DWRITE_RENDERING_MODE_NATURAL, + DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC = DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC +} DWRITE_RENDERING_MODE; +typedef enum DWRITE_TEXT_ALIGNMENT { + DWRITE_TEXT_ALIGNMENT_LEADING = 0, + DWRITE_TEXT_ALIGNMENT_TRAILING = 1, + DWRITE_TEXT_ALIGNMENT_CENTER = 2, + DWRITE_TEXT_ALIGNMENT_JUSTIFIED = 3 +} DWRITE_TEXT_ALIGNMENT; +typedef enum DWRITE_PARAGRAPH_ALIGNMENT { + DWRITE_PARAGRAPH_ALIGNMENT_NEAR = 0, + DWRITE_PARAGRAPH_ALIGNMENT_FAR = 1, + DWRITE_PARAGRAPH_ALIGNMENT_CENTER = 2 +} DWRITE_PARAGRAPH_ALIGNMENT; +typedef enum DWRITE_WORD_WRAPPING { + DWRITE_WORD_WRAPPING_WRAP = 0, + DWRITE_WORD_WRAPPING_NO_WRAP = 1, + DWRITE_WORD_WRAPPING_EMERGENCY_BREAK = 2, + DWRITE_WORD_WRAPPING_WHOLE_WORD = 3, + DWRITE_WORD_WRAPPING_CHARACTER = 4 +} DWRITE_WORD_WRAPPING; +typedef enum DWRITE_READING_DIRECTION { + DWRITE_READING_DIRECTION_LEFT_TO_RIGHT = 0, + DWRITE_READING_DIRECTION_RIGHT_TO_LEFT = 1, + DWRITE_READING_DIRECTION_TOP_TO_BOTTOM = 2, + DWRITE_READING_DIRECTION_BOTTOM_TO_TOP = 3 +} DWRITE_READING_DIRECTION; +typedef enum DWRITE_FLOW_DIRECTION { + DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM = 0, + DWRITE_FLOW_DIRECTION_BOTTOM_TO_TOP = 1, + DWRITE_FLOW_DIRECTION_LEFT_TO_RIGHT = 2, + DWRITE_FLOW_DIRECTION_RIGHT_TO_LEFT = 3 +} DWRITE_FLOW_DIRECTION; +typedef enum DWRITE_TRIMMING_GRANULARITY { + DWRITE_TRIMMING_GRANULARITY_NONE = 0, + DWRITE_TRIMMING_GRANULARITY_CHARACTER = 1, + DWRITE_TRIMMING_GRANULARITY_WORD = 2 +} DWRITE_TRIMMING_GRANULARITY; +typedef enum DWRITE_BREAK_CONDITION { + DWRITE_BREAK_CONDITION_NEUTRAL = 0, + DWRITE_BREAK_CONDITION_CAN_BREAK = 1, + DWRITE_BREAK_CONDITION_MAY_NOT_BREAK = 2, + DWRITE_BREAK_CONDITION_MUST_BREAK = 3 +} DWRITE_BREAK_CONDITION; +typedef enum DWRITE_LINE_SPACING_METHOD { + DWRITE_LINE_SPACING_METHOD_DEFAULT = 0, + DWRITE_LINE_SPACING_METHOD_UNIFORM = 1, + DWRITE_LINE_SPACING_METHOD_PROPORTIONAL = 2 +} DWRITE_LINE_SPACING_METHOD; +#define DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d) ( \ + ((UINT32)(UINT8)(d) << 24) | \ + ((UINT32)(UINT8)(c) << 16) | \ + ((UINT32)(UINT8)(b) << 8) | \ + (UINT32)(UINT8)(a)) +typedef enum DWRITE_FONT_FEATURE_TAG { + DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS = 0x63726661, + DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS = 0x63703263, + DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS = 0x63733263, + DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES = 0x746c6163, + DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS = 0x65736163, + DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION = 0x706d6363, + DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES = 0x67696c63, + DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING = 0x70737063, + DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH = 0x68777363, + DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING = 0x73727563, + DWRITE_FONT_FEATURE_TAG_DEFAULT = 0x746c6664, + DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES = 0x67696c64, + DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS = 0x74707865, + DWRITE_FONT_FEATURE_TAG_FRACTIONS = 0x63617266, + DWRITE_FONT_FEATURE_TAG_FULL_WIDTH = 0x64697766, + DWRITE_FONT_FEATURE_TAG_HALF_FORMS = 0x666c6168, + DWRITE_FONT_FEATURE_TAG_HALANT_FORMS = 0x6e6c6168, + DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH = 0x746c6168, + DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS = 0x74736968, + DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES = 0x616e6b68, + DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES = 0x67696c68, + DWRITE_FONT_FEATURE_TAG_HALF_WIDTH = 0x64697768, + DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS = 0x6f6a6f68, + DWRITE_FONT_FEATURE_TAG_JIS04_FORMS = 0x3430706a, + DWRITE_FONT_FEATURE_TAG_JIS78_FORMS = 0x3837706a, + DWRITE_FONT_FEATURE_TAG_JIS83_FORMS = 0x3338706a, + DWRITE_FONT_FEATURE_TAG_JIS90_FORMS = 0x3039706a, + DWRITE_FONT_FEATURE_TAG_KERNING = 0x6e72656b, + DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES = 0x6167696c, + DWRITE_FONT_FEATURE_TAG_LINING_FIGURES = 0x6d756e6c, + DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS = 0x6c636f6c, + DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING = 0x6b72616d, + DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK = 0x6b72676d, + DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING = 0x6b6d6b6d, + DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS = 0x746c616e, + DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS = 0x6b636c6e, + DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES = 0x6d756e6f, + DWRITE_FONT_FEATURE_TAG_ORDINALS = 0x6e64726f, + DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH = 0x746c6170, + DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS = 0x70616370, + DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES = 0x6d756e70, + DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS = 0x64697770, + DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS = 0x64697771, + DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES = 0x67696c72, + DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS = 0x79627572, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES = 0x746c6173, + DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS = 0x666e6973, + DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS = 0x70636d73, + DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS = 0x6c706d73, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1 = 0x31307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2 = 0x32307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3 = 0x33307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4 = 0x34307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5 = 0x35307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6 = 0x36307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7 = 0x37307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8 = 0x38307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9 = 0x39307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10 = 0x30317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11 = 0x31317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12 = 0x32317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13 = 0x33317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14 = 0x34317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15 = 0x35317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16 = 0x36317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17 = 0x37317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18 = 0x38317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19 = 0x39317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20 = 0x30327373, + DWRITE_FONT_FEATURE_TAG_SUBSCRIPT = 0x73627573, + DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT = 0x73707573, + DWRITE_FONT_FEATURE_TAG_SWASH = 0x68737773, + DWRITE_FONT_FEATURE_TAG_TITLING = 0x6c746974, + DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS = 0x6d616e74, + DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES = 0x6d756e74, + DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS = 0x64617274, + DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS = 0x64697774, + DWRITE_FONT_FEATURE_TAG_UNICASE = 0x63696e75, + DWRITE_FONT_FEATURE_TAG_VERTICAL_WRITING = 0x74726576, + DWRITE_FONT_FEATURE_TAG_VERTICAL_ALTERNATES_AND_ROTATION = 0x32747276, + DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO = 0x6f72657a +} DWRITE_FONT_FEATURE_TAG; +typedef enum DWRITE_SCRIPT_SHAPES { + DWRITE_SCRIPT_SHAPES_DEFAULT = 0, + DWRITE_SCRIPT_SHAPES_NO_VISUAL = 1 +} DWRITE_SCRIPT_SHAPES; +DEFINE_ENUM_FLAG_OPERATORS(DWRITE_SCRIPT_SHAPES); +typedef enum DWRITE_NUMBER_SUBSTITUTION_METHOD { + DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE = 0, + DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL = 1, + DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE = 2, + DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL = 3, + DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL = 4 +} DWRITE_NUMBER_SUBSTITUTION_METHOD; +#define DWRITE_ALPHA_MAX 255 +typedef enum DWRITE_TEXTURE_TYPE { + DWRITE_TEXTURE_ALIASED_1x1 = 0, + DWRITE_TEXTURE_CLEARTYPE_3x1 = 1 +} DWRITE_TEXTURE_TYPE; +typedef struct DWRITE_FONT_METRICS { + UINT16 designUnitsPerEm; + UINT16 ascent; + UINT16 descent; + INT16 lineGap; + UINT16 capHeight; + UINT16 xHeight; + INT16 underlinePosition; + UINT16 underlineThickness; + INT16 strikethroughPosition; + UINT16 strikethroughThickness; +} DWRITE_FONT_METRICS; +typedef struct DWRITE_GLYPH_METRICS { + INT32 leftSideBearing; + UINT32 advanceWidth; + INT32 rightSideBearing; + INT32 topSideBearing; + UINT32 advanceHeight; + INT32 bottomSideBearing; + INT32 verticalOriginY; +} DWRITE_GLYPH_METRICS; +typedef struct DWRITE_GLYPH_OFFSET { + FLOAT advanceOffset; + FLOAT ascenderOffset; +} DWRITE_GLYPH_OFFSET; +typedef struct DWRITE_MATRIX { + FLOAT m11; + FLOAT m12; + FLOAT m21; + FLOAT m22; + FLOAT dx; + FLOAT dy; +} DWRITE_MATRIX; +typedef struct DWRITE_TRIMMING { + DWRITE_TRIMMING_GRANULARITY granularity; + UINT32 delimiter; + UINT32 delimiterCount; +} DWRITE_TRIMMING; +#ifndef __d2d1_h__ +typedef struct DWRITE_GLYPH_RUN DWRITE_GLYPH_RUN; +#endif /* __d2d1_h__ */ +struct DWRITE_GLYPH_RUN { + IDWriteFontFace *fontFace; + FLOAT fontEmSize; + UINT32 glyphCount; + const UINT16 *glyphIndices; + const FLOAT *glyphAdvances; + const DWRITE_GLYPH_OFFSET *glyphOffsets; + WINBOOL isSideways; + UINT32 bidiLevel; +}; +#ifndef __d2d1_1_h__ +typedef struct DWRITE_GLYPH_RUN_DESCRIPTION DWRITE_GLYPH_RUN_DESCRIPTION; +#endif /* __d2d1_1_h__ */ +struct DWRITE_GLYPH_RUN_DESCRIPTION { + const WCHAR *localeName; + const WCHAR *string; + UINT32 stringLength; + const UINT16 *clusterMap; + UINT32 textPosition; +}; +typedef struct DWRITE_UNDERLINE { + FLOAT width; + FLOAT thickness; + FLOAT offset; + FLOAT runHeight; + DWRITE_READING_DIRECTION readingDirection; + DWRITE_FLOW_DIRECTION flowDirection; + const WCHAR *localeName; + DWRITE_MEASURING_MODE measuringMode; +} DWRITE_UNDERLINE; +typedef struct DWRITE_STRIKETHROUGH { + FLOAT width; + FLOAT thickness; + FLOAT offset; + DWRITE_READING_DIRECTION readingDirection; + DWRITE_FLOW_DIRECTION flowDirection; + const WCHAR *localeName; + DWRITE_MEASURING_MODE measuringMode; +} DWRITE_STRIKETHROUGH; +typedef struct DWRITE_INLINE_OBJECT_METRICS { + FLOAT width; + FLOAT height; + FLOAT baseline; + WINBOOL supportsSideways; +} DWRITE_INLINE_OBJECT_METRICS; +typedef struct DWRITE_OVERHANG_METRICS { + FLOAT left; + FLOAT top; + FLOAT right; + FLOAT bottom; +} DWRITE_OVERHANG_METRICS; +typedef struct DWRITE_FONT_FEATURE { + DWRITE_FONT_FEATURE_TAG nameTag; + UINT32 parameter; +} DWRITE_FONT_FEATURE; +typedef struct DWRITE_TEXT_RANGE { + UINT32 startPosition; + UINT32 length; +} DWRITE_TEXT_RANGE; +typedef struct DWRITE_LINE_METRICS { + UINT32 length; + UINT32 trailingWhitespaceLength; + UINT32 newlineLength; + FLOAT height; + FLOAT baseline; + WINBOOL isTrimmed; +} DWRITE_LINE_METRICS; +typedef struct DWRITE_TEXT_METRICS { + FLOAT left; + FLOAT top; + FLOAT width; + FLOAT widthIncludingTrailingWhitespace; + FLOAT height; + FLOAT layoutWidth; + FLOAT layoutHeight; + UINT32 maxBidiReorderingDepth; + UINT32 lineCount; +} DWRITE_TEXT_METRICS; +typedef struct DWRITE_CLUSTER_METRICS { + FLOAT width; + UINT16 length; + UINT16 canWrapLineAfter : 1; + UINT16 isWhitespace : 1; + UINT16 isNewline : 1; + UINT16 isSoftHyphen : 1; + UINT16 isRightToLeft : 1; + UINT16 padding : 11; +} DWRITE_CLUSTER_METRICS; +typedef struct DWRITE_HIT_TEST_METRICS { + UINT32 textPosition; + UINT32 length; + FLOAT left; + FLOAT top; + FLOAT width; + FLOAT height; + UINT32 bidiLevel; + WINBOOL isText; + WINBOOL isTrimmed; +} DWRITE_HIT_TEST_METRICS; +typedef struct DWRITE_SCRIPT_ANALYSIS { + UINT16 script; + DWRITE_SCRIPT_SHAPES shapes; +} DWRITE_SCRIPT_ANALYSIS; +typedef struct DWRITE_LINE_BREAKPOINT { + UINT8 breakConditionBefore : 2; + UINT8 breakConditionAfter : 2; + UINT8 isWhitespace : 1; + UINT8 isSoftHyphen : 1; + UINT8 padding : 2; +} DWRITE_LINE_BREAKPOINT; +typedef struct DWRITE_TYPOGRAPHIC_FEATURES { + DWRITE_FONT_FEATURE *features; + UINT32 featureCount; +} DWRITE_TYPOGRAPHIC_FEATURES; +typedef struct DWRITE_SHAPING_TEXT_PROPERTIES { + UINT16 isShapedAlone : 1; + UINT16 reserved1 : 1; + UINT16 canBreakShapingAfter : 1; + UINT16 reserved : 13; +} DWRITE_SHAPING_TEXT_PROPERTIES; +typedef struct DWRITE_SHAPING_GLYPH_PROPERTIES { + UINT16 justification : 4; + UINT16 isClusterStart : 1; + UINT16 isDiacritic : 1; + UINT16 isZeroWidthSpace : 1; + UINT16 reserved : 9; +} DWRITE_SHAPING_GLYPH_PROPERTIES; +/***************************************************************************** + * IDWriteFontFileStream interface + */ +#ifndef __IDWriteFontFileStream_INTERFACE_DEFINED__ +#define __IDWriteFontFileStream_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFileStream, 0x6d4865fe, 0x0ab8, 0x4d91, 0x8f,0x62, 0x5d,0xd6,0xbe,0x34,0xa3,0xe0); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("6d4865fe-0ab8-4d91-8f62-5dd6be34a3e0") +IDWriteFontFileStream : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE ReadFileFragment( + const void **fragment_start, + UINT64 offset, + UINT64 fragment_size, + void **fragment_context) = 0; + + virtual void STDMETHODCALLTYPE ReleaseFileFragment( + void *fragment_context) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFileSize( + UINT64 *size) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLastWriteTime( + UINT64 *last_writetime) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFileStream, 0x6d4865fe, 0x0ab8, 0x4d91, 0x8f,0x62, 0x5d,0xd6,0xbe,0x34,0xa3,0xe0) +#endif +#else +typedef struct IDWriteFontFileStreamVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFileStream *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFileStream *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFileStream *This); + + /*** IDWriteFontFileStream methods ***/ + HRESULT (STDMETHODCALLTYPE *ReadFileFragment)( + IDWriteFontFileStream *This, + const void **fragment_start, + UINT64 offset, + UINT64 fragment_size, + void **fragment_context); + + void (STDMETHODCALLTYPE *ReleaseFileFragment)( + IDWriteFontFileStream *This, + void *fragment_context); + + HRESULT (STDMETHODCALLTYPE *GetFileSize)( + IDWriteFontFileStream *This, + UINT64 *size); + + HRESULT (STDMETHODCALLTYPE *GetLastWriteTime)( + IDWriteFontFileStream *This, + UINT64 *last_writetime); + + END_INTERFACE +} IDWriteFontFileStreamVtbl; + +interface IDWriteFontFileStream { + CONST_VTBL IDWriteFontFileStreamVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFileStream_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFileStream_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFileStream methods ***/ +#define IDWriteFontFileStream_ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context) (This)->lpVtbl->ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context) +#define IDWriteFontFileStream_ReleaseFileFragment(This,fragment_context) (This)->lpVtbl->ReleaseFileFragment(This,fragment_context) +#define IDWriteFontFileStream_GetFileSize(This,size) (This)->lpVtbl->GetFileSize(This,size) +#define IDWriteFontFileStream_GetLastWriteTime(This,last_writetime) (This)->lpVtbl->GetLastWriteTime(This,last_writetime) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFileStream_QueryInterface(IDWriteFontFileStream* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFileStream_AddRef(IDWriteFontFileStream* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFileStream_Release(IDWriteFontFileStream* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFileStream methods ***/ +static inline HRESULT IDWriteFontFileStream_ReadFileFragment(IDWriteFontFileStream* This,const void **fragment_start,UINT64 offset,UINT64 fragment_size,void **fragment_context) { + return This->lpVtbl->ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context); +} +static inline void IDWriteFontFileStream_ReleaseFileFragment(IDWriteFontFileStream* This,void *fragment_context) { + This->lpVtbl->ReleaseFileFragment(This,fragment_context); +} +static inline HRESULT IDWriteFontFileStream_GetFileSize(IDWriteFontFileStream* This,UINT64 *size) { + return This->lpVtbl->GetFileSize(This,size); +} +static inline HRESULT IDWriteFontFileStream_GetLastWriteTime(IDWriteFontFileStream* This,UINT64 *last_writetime) { + return This->lpVtbl->GetLastWriteTime(This,last_writetime); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFileStream_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFileLoader interface + */ +#ifndef __IDWriteFontFileLoader_INTERFACE_DEFINED__ +#define __IDWriteFontFileLoader_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFileLoader, 0x727cad4e, 0xd6af, 0x4c9e, 0x8a,0x08, 0xd6,0x95,0xb1,0x1c,0xaa,0x49); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("727cad4e-d6af-4c9e-8a08-d695b11caa49") +IDWriteFontFileLoader : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE CreateStreamFromKey( + const void *key, + UINT32 key_size, + IDWriteFontFileStream **stream) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFileLoader, 0x727cad4e, 0xd6af, 0x4c9e, 0x8a,0x08, 0xd6,0x95,0xb1,0x1c,0xaa,0x49) +#endif +#else +typedef struct IDWriteFontFileLoaderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFileLoader *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFileLoader *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFileLoader *This); + + /*** IDWriteFontFileLoader methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateStreamFromKey)( + IDWriteFontFileLoader *This, + const void *key, + UINT32 key_size, + IDWriteFontFileStream **stream); + + END_INTERFACE +} IDWriteFontFileLoaderVtbl; + +interface IDWriteFontFileLoader { + CONST_VTBL IDWriteFontFileLoaderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFileLoader_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFileLoader methods ***/ +#define IDWriteFontFileLoader_CreateStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateStreamFromKey(This,key,key_size,stream) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFileLoader_QueryInterface(IDWriteFontFileLoader* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFileLoader_AddRef(IDWriteFontFileLoader* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFileLoader_Release(IDWriteFontFileLoader* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFileLoader methods ***/ +static inline HRESULT IDWriteFontFileLoader_CreateStreamFromKey(IDWriteFontFileLoader* This,const void *key,UINT32 key_size,IDWriteFontFileStream **stream) { + return This->lpVtbl->CreateStreamFromKey(This,key,key_size,stream); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFileLoader_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteLocalFontFileLoader interface + */ +#ifndef __IDWriteLocalFontFileLoader_INTERFACE_DEFINED__ +#define __IDWriteLocalFontFileLoader_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteLocalFontFileLoader, 0xb2d9f3ec, 0xc9fe, 0x4a11, 0xa2,0xec, 0xd8,0x62,0x08,0xf7,0xc0,0xa2); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("b2d9f3ec-c9fe-4a11-a2ec-d86208f7c0a2") +IDWriteLocalFontFileLoader : public IDWriteFontFileLoader +{ + virtual HRESULT STDMETHODCALLTYPE GetFilePathLengthFromKey( + const void *key, + UINT32 key_size, + UINT32 *length) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFilePathFromKey( + const void *key, + UINT32 key_size, + WCHAR *path, + UINT32 length) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLastWriteTimeFromKey( + const void *key, + UINT32 key_size, + FILETIME *writetime) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteLocalFontFileLoader, 0xb2d9f3ec, 0xc9fe, 0x4a11, 0xa2,0xec, 0xd8,0x62,0x08,0xf7,0xc0,0xa2) +#endif +#else +typedef struct IDWriteLocalFontFileLoaderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteLocalFontFileLoader *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteLocalFontFileLoader *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteLocalFontFileLoader *This); + + /*** IDWriteFontFileLoader methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateStreamFromKey)( + IDWriteLocalFontFileLoader *This, + const void *key, + UINT32 key_size, + IDWriteFontFileStream **stream); + + /*** IDWriteLocalFontFileLoader methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFilePathLengthFromKey)( + IDWriteLocalFontFileLoader *This, + const void *key, + UINT32 key_size, + UINT32 *length); + + HRESULT (STDMETHODCALLTYPE *GetFilePathFromKey)( + IDWriteLocalFontFileLoader *This, + const void *key, + UINT32 key_size, + WCHAR *path, + UINT32 length); + + HRESULT (STDMETHODCALLTYPE *GetLastWriteTimeFromKey)( + IDWriteLocalFontFileLoader *This, + const void *key, + UINT32 key_size, + FILETIME *writetime); + + END_INTERFACE +} IDWriteLocalFontFileLoaderVtbl; + +interface IDWriteLocalFontFileLoader { + CONST_VTBL IDWriteLocalFontFileLoaderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteLocalFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteLocalFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteLocalFontFileLoader_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFileLoader methods ***/ +#define IDWriteLocalFontFileLoader_CreateStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateStreamFromKey(This,key,key_size,stream) +/*** IDWriteLocalFontFileLoader methods ***/ +#define IDWriteLocalFontFileLoader_GetFilePathLengthFromKey(This,key,key_size,length) (This)->lpVtbl->GetFilePathLengthFromKey(This,key,key_size,length) +#define IDWriteLocalFontFileLoader_GetFilePathFromKey(This,key,key_size,path,length) (This)->lpVtbl->GetFilePathFromKey(This,key,key_size,path,length) +#define IDWriteLocalFontFileLoader_GetLastWriteTimeFromKey(This,key,key_size,writetime) (This)->lpVtbl->GetLastWriteTimeFromKey(This,key,key_size,writetime) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteLocalFontFileLoader_QueryInterface(IDWriteLocalFontFileLoader* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteLocalFontFileLoader_AddRef(IDWriteLocalFontFileLoader* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteLocalFontFileLoader_Release(IDWriteLocalFontFileLoader* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFileLoader methods ***/ +static inline HRESULT IDWriteLocalFontFileLoader_CreateStreamFromKey(IDWriteLocalFontFileLoader* This,const void *key,UINT32 key_size,IDWriteFontFileStream **stream) { + return This->lpVtbl->CreateStreamFromKey(This,key,key_size,stream); +} +/*** IDWriteLocalFontFileLoader methods ***/ +static inline HRESULT IDWriteLocalFontFileLoader_GetFilePathLengthFromKey(IDWriteLocalFontFileLoader* This,const void *key,UINT32 key_size,UINT32 *length) { + return This->lpVtbl->GetFilePathLengthFromKey(This,key,key_size,length); +} +static inline HRESULT IDWriteLocalFontFileLoader_GetFilePathFromKey(IDWriteLocalFontFileLoader* This,const void *key,UINT32 key_size,WCHAR *path,UINT32 length) { + return This->lpVtbl->GetFilePathFromKey(This,key,key_size,path,length); +} +static inline HRESULT IDWriteLocalFontFileLoader_GetLastWriteTimeFromKey(IDWriteLocalFontFileLoader* This,const void *key,UINT32 key_size,FILETIME *writetime) { + return This->lpVtbl->GetLastWriteTimeFromKey(This,key,key_size,writetime); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteLocalFontFileLoader_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFile interface + */ +#ifndef __IDWriteFontFile_INTERFACE_DEFINED__ +#define __IDWriteFontFile_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFile, 0x739d886a, 0xcef5, 0x47dc, 0x87,0x69, 0x1a,0x8b,0x41,0xbe,0xbb,0xb0); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("739d886a-cef5-47dc-8769-1a8b41bebbb0") +IDWriteFontFile : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetReferenceKey( + const void **key, + UINT32 *key_size) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLoader( + IDWriteFontFileLoader **loader) = 0; + + virtual HRESULT STDMETHODCALLTYPE Analyze( + WINBOOL *is_supported_fonttype, + DWRITE_FONT_FILE_TYPE *file_type, + DWRITE_FONT_FACE_TYPE *face_type, + UINT32 *faces_num) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFile, 0x739d886a, 0xcef5, 0x47dc, 0x87,0x69, 0x1a,0x8b,0x41,0xbe,0xbb,0xb0) +#endif +#else +typedef struct IDWriteFontFileVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFile *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFile *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFile *This); + + /*** IDWriteFontFile methods ***/ + HRESULT (STDMETHODCALLTYPE *GetReferenceKey)( + IDWriteFontFile *This, + const void **key, + UINT32 *key_size); + + HRESULT (STDMETHODCALLTYPE *GetLoader)( + IDWriteFontFile *This, + IDWriteFontFileLoader **loader); + + HRESULT (STDMETHODCALLTYPE *Analyze)( + IDWriteFontFile *This, + WINBOOL *is_supported_fonttype, + DWRITE_FONT_FILE_TYPE *file_type, + DWRITE_FONT_FACE_TYPE *face_type, + UINT32 *faces_num); + + END_INTERFACE +} IDWriteFontFileVtbl; + +interface IDWriteFontFile { + CONST_VTBL IDWriteFontFileVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFile_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFile_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFile methods ***/ +#define IDWriteFontFile_GetReferenceKey(This,key,key_size) (This)->lpVtbl->GetReferenceKey(This,key,key_size) +#define IDWriteFontFile_GetLoader(This,loader) (This)->lpVtbl->GetLoader(This,loader) +#define IDWriteFontFile_Analyze(This,is_supported_fonttype,file_type,face_type,faces_num) (This)->lpVtbl->Analyze(This,is_supported_fonttype,file_type,face_type,faces_num) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFile_QueryInterface(IDWriteFontFile* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFile_AddRef(IDWriteFontFile* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFile_Release(IDWriteFontFile* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFile methods ***/ +static inline HRESULT IDWriteFontFile_GetReferenceKey(IDWriteFontFile* This,const void **key,UINT32 *key_size) { + return This->lpVtbl->GetReferenceKey(This,key,key_size); +} +static inline HRESULT IDWriteFontFile_GetLoader(IDWriteFontFile* This,IDWriteFontFileLoader **loader) { + return This->lpVtbl->GetLoader(This,loader); +} +static inline HRESULT IDWriteFontFile_Analyze(IDWriteFontFile* This,WINBOOL *is_supported_fonttype,DWRITE_FONT_FILE_TYPE *file_type,DWRITE_FONT_FACE_TYPE *face_type,UINT32 *faces_num) { + return This->lpVtbl->Analyze(This,is_supported_fonttype,file_type,face_type,faces_num); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFile_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFileEnumerator interface + */ +#ifndef __IDWriteFontFileEnumerator_INTERFACE_DEFINED__ +#define __IDWriteFontFileEnumerator_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFileEnumerator, 0x72755049, 0x5ff7, 0x435d, 0x83,0x48, 0x4b,0xe9,0x7c,0xfa,0x6c,0x7c); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("72755049-5ff7-435d-8348-4be97cfa6c7c") +IDWriteFontFileEnumerator : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE MoveNext( + WINBOOL *has_current_file) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCurrentFontFile( + IDWriteFontFile **font_file) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFileEnumerator, 0x72755049, 0x5ff7, 0x435d, 0x83,0x48, 0x4b,0xe9,0x7c,0xfa,0x6c,0x7c) +#endif +#else +typedef struct IDWriteFontFileEnumeratorVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFileEnumerator *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFileEnumerator *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFileEnumerator *This); + + /*** IDWriteFontFileEnumerator methods ***/ + HRESULT (STDMETHODCALLTYPE *MoveNext)( + IDWriteFontFileEnumerator *This, + WINBOOL *has_current_file); + + HRESULT (STDMETHODCALLTYPE *GetCurrentFontFile)( + IDWriteFontFileEnumerator *This, + IDWriteFontFile **font_file); + + END_INTERFACE +} IDWriteFontFileEnumeratorVtbl; + +interface IDWriteFontFileEnumerator { + CONST_VTBL IDWriteFontFileEnumeratorVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFileEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFileEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFileEnumerator_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFileEnumerator methods ***/ +#define IDWriteFontFileEnumerator_MoveNext(This,has_current_file) (This)->lpVtbl->MoveNext(This,has_current_file) +#define IDWriteFontFileEnumerator_GetCurrentFontFile(This,font_file) (This)->lpVtbl->GetCurrentFontFile(This,font_file) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFileEnumerator_QueryInterface(IDWriteFontFileEnumerator* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFileEnumerator_AddRef(IDWriteFontFileEnumerator* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFileEnumerator_Release(IDWriteFontFileEnumerator* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFileEnumerator methods ***/ +static inline HRESULT IDWriteFontFileEnumerator_MoveNext(IDWriteFontFileEnumerator* This,WINBOOL *has_current_file) { + return This->lpVtbl->MoveNext(This,has_current_file); +} +static inline HRESULT IDWriteFontFileEnumerator_GetCurrentFontFile(IDWriteFontFileEnumerator* This,IDWriteFontFile **font_file) { + return This->lpVtbl->GetCurrentFontFile(This,font_file); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFileEnumerator_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontCollectionLoader interface + */ +#ifndef __IDWriteFontCollectionLoader_INTERFACE_DEFINED__ +#define __IDWriteFontCollectionLoader_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontCollectionLoader, 0xcca920e4, 0x52f0, 0x492b, 0xbf,0xa8, 0x29,0xc7,0x2e,0xe0,0xa4,0x68); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("cca920e4-52f0-492b-bfa8-29c72ee0a468") +IDWriteFontCollectionLoader : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE CreateEnumeratorFromKey( + IDWriteFactory *factory, + const void *key, + UINT32 key_size, + IDWriteFontFileEnumerator **enumerator) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontCollectionLoader, 0xcca920e4, 0x52f0, 0x492b, 0xbf,0xa8, 0x29,0xc7,0x2e,0xe0,0xa4,0x68) +#endif +#else +typedef struct IDWriteFontCollectionLoaderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontCollectionLoader *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontCollectionLoader *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontCollectionLoader *This); + + /*** IDWriteFontCollectionLoader methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateEnumeratorFromKey)( + IDWriteFontCollectionLoader *This, + IDWriteFactory *factory, + const void *key, + UINT32 key_size, + IDWriteFontFileEnumerator **enumerator); + + END_INTERFACE +} IDWriteFontCollectionLoaderVtbl; + +interface IDWriteFontCollectionLoader { + CONST_VTBL IDWriteFontCollectionLoaderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontCollectionLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontCollectionLoader_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontCollectionLoader_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontCollectionLoader methods ***/ +#define IDWriteFontCollectionLoader_CreateEnumeratorFromKey(This,factory,key,key_size,enumerator) (This)->lpVtbl->CreateEnumeratorFromKey(This,factory,key,key_size,enumerator) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontCollectionLoader_QueryInterface(IDWriteFontCollectionLoader* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontCollectionLoader_AddRef(IDWriteFontCollectionLoader* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontCollectionLoader_Release(IDWriteFontCollectionLoader* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontCollectionLoader methods ***/ +static inline HRESULT IDWriteFontCollectionLoader_CreateEnumeratorFromKey(IDWriteFontCollectionLoader* This,IDWriteFactory *factory,const void *key,UINT32 key_size,IDWriteFontFileEnumerator **enumerator) { + return This->lpVtbl->CreateEnumeratorFromKey(This,factory,key,key_size,enumerator); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontCollectionLoader_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteLocalizedStrings interface + */ +#ifndef __IDWriteLocalizedStrings_INTERFACE_DEFINED__ +#define __IDWriteLocalizedStrings_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteLocalizedStrings, 0x08256209, 0x099a, 0x4b34, 0xb8,0x6d, 0xc2,0x2b,0x11,0x0e,0x77,0x71); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("08256209-099a-4b34-b86d-c22b110e7771") +IDWriteLocalizedStrings : public IUnknown +{ + virtual UINT32 STDMETHODCALLTYPE GetCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE FindLocaleName( + const WCHAR *locale_name, + UINT32 *index, + WINBOOL *exists) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLocaleNameLength( + UINT32 index, + UINT32 *length) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLocaleName( + UINT32 index, + WCHAR *locale_name, + UINT32 size) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetStringLength( + UINT32 index, + UINT32 *length) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetString( + UINT32 index, + WCHAR *buffer, + UINT32 size) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteLocalizedStrings, 0x08256209, 0x099a, 0x4b34, 0xb8,0x6d, 0xc2,0x2b,0x11,0x0e,0x77,0x71) +#endif +#else +typedef struct IDWriteLocalizedStringsVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteLocalizedStrings *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteLocalizedStrings *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteLocalizedStrings *This); + + /*** IDWriteLocalizedStrings methods ***/ + UINT32 (STDMETHODCALLTYPE *GetCount)( + IDWriteLocalizedStrings *This); + + HRESULT (STDMETHODCALLTYPE *FindLocaleName)( + IDWriteLocalizedStrings *This, + const WCHAR *locale_name, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *GetLocaleNameLength)( + IDWriteLocalizedStrings *This, + UINT32 index, + UINT32 *length); + + HRESULT (STDMETHODCALLTYPE *GetLocaleName)( + IDWriteLocalizedStrings *This, + UINT32 index, + WCHAR *locale_name, + UINT32 size); + + HRESULT (STDMETHODCALLTYPE *GetStringLength)( + IDWriteLocalizedStrings *This, + UINT32 index, + UINT32 *length); + + HRESULT (STDMETHODCALLTYPE *GetString)( + IDWriteLocalizedStrings *This, + UINT32 index, + WCHAR *buffer, + UINT32 size); + + END_INTERFACE +} IDWriteLocalizedStringsVtbl; + +interface IDWriteLocalizedStrings { + CONST_VTBL IDWriteLocalizedStringsVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteLocalizedStrings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteLocalizedStrings_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteLocalizedStrings_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteLocalizedStrings methods ***/ +#define IDWriteLocalizedStrings_GetCount(This) (This)->lpVtbl->GetCount(This) +#define IDWriteLocalizedStrings_FindLocaleName(This,locale_name,index,exists) (This)->lpVtbl->FindLocaleName(This,locale_name,index,exists) +#define IDWriteLocalizedStrings_GetLocaleNameLength(This,index,length) (This)->lpVtbl->GetLocaleNameLength(This,index,length) +#define IDWriteLocalizedStrings_GetLocaleName(This,index,locale_name,size) (This)->lpVtbl->GetLocaleName(This,index,locale_name,size) +#define IDWriteLocalizedStrings_GetStringLength(This,index,length) (This)->lpVtbl->GetStringLength(This,index,length) +#define IDWriteLocalizedStrings_GetString(This,index,buffer,size) (This)->lpVtbl->GetString(This,index,buffer,size) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteLocalizedStrings_QueryInterface(IDWriteLocalizedStrings* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteLocalizedStrings_AddRef(IDWriteLocalizedStrings* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteLocalizedStrings_Release(IDWriteLocalizedStrings* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteLocalizedStrings methods ***/ +static inline UINT32 IDWriteLocalizedStrings_GetCount(IDWriteLocalizedStrings* This) { + return This->lpVtbl->GetCount(This); +} +static inline HRESULT IDWriteLocalizedStrings_FindLocaleName(IDWriteLocalizedStrings* This,const WCHAR *locale_name,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindLocaleName(This,locale_name,index,exists); +} +static inline HRESULT IDWriteLocalizedStrings_GetLocaleNameLength(IDWriteLocalizedStrings* This,UINT32 index,UINT32 *length) { + return This->lpVtbl->GetLocaleNameLength(This,index,length); +} +static inline HRESULT IDWriteLocalizedStrings_GetLocaleName(IDWriteLocalizedStrings* This,UINT32 index,WCHAR *locale_name,UINT32 size) { + return This->lpVtbl->GetLocaleName(This,index,locale_name,size); +} +static inline HRESULT IDWriteLocalizedStrings_GetStringLength(IDWriteLocalizedStrings* This,UINT32 index,UINT32 *length) { + return This->lpVtbl->GetStringLength(This,index,length); +} +static inline HRESULT IDWriteLocalizedStrings_GetString(IDWriteLocalizedStrings* This,UINT32 index,WCHAR *buffer,UINT32 size) { + return This->lpVtbl->GetString(This,index,buffer,size); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteLocalizedStrings_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteRenderingParams interface + */ +#ifndef __IDWriteRenderingParams_INTERFACE_DEFINED__ +#define __IDWriteRenderingParams_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteRenderingParams, 0x2f0da53a, 0x2add, 0x47cd, 0x82,0xee, 0xd9,0xec,0x34,0x68,0x8e,0x75); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("2f0da53a-2add-47cd-82ee-d9ec34688e75") +IDWriteRenderingParams : public IUnknown +{ + virtual FLOAT STDMETHODCALLTYPE GetGamma( + ) = 0; + + virtual FLOAT STDMETHODCALLTYPE GetEnhancedContrast( + ) = 0; + + virtual FLOAT STDMETHODCALLTYPE GetClearTypeLevel( + ) = 0; + + virtual DWRITE_PIXEL_GEOMETRY STDMETHODCALLTYPE GetPixelGeometry( + ) = 0; + + virtual DWRITE_RENDERING_MODE STDMETHODCALLTYPE GetRenderingMode( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteRenderingParams, 0x2f0da53a, 0x2add, 0x47cd, 0x82,0xee, 0xd9,0xec,0x34,0x68,0x8e,0x75) +#endif +#else +typedef struct IDWriteRenderingParamsVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteRenderingParams *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteRenderingParams *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteRenderingParams *This); + + /*** IDWriteRenderingParams methods ***/ + FLOAT (STDMETHODCALLTYPE *GetGamma)( + IDWriteRenderingParams *This); + + FLOAT (STDMETHODCALLTYPE *GetEnhancedContrast)( + IDWriteRenderingParams *This); + + FLOAT (STDMETHODCALLTYPE *GetClearTypeLevel)( + IDWriteRenderingParams *This); + + DWRITE_PIXEL_GEOMETRY (STDMETHODCALLTYPE *GetPixelGeometry)( + IDWriteRenderingParams *This); + + DWRITE_RENDERING_MODE (STDMETHODCALLTYPE *GetRenderingMode)( + IDWriteRenderingParams *This); + + END_INTERFACE +} IDWriteRenderingParamsVtbl; + +interface IDWriteRenderingParams { + CONST_VTBL IDWriteRenderingParamsVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteRenderingParams_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteRenderingParams_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteRenderingParams_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteRenderingParams methods ***/ +#define IDWriteRenderingParams_GetGamma(This) (This)->lpVtbl->GetGamma(This) +#define IDWriteRenderingParams_GetEnhancedContrast(This) (This)->lpVtbl->GetEnhancedContrast(This) +#define IDWriteRenderingParams_GetClearTypeLevel(This) (This)->lpVtbl->GetClearTypeLevel(This) +#define IDWriteRenderingParams_GetPixelGeometry(This) (This)->lpVtbl->GetPixelGeometry(This) +#define IDWriteRenderingParams_GetRenderingMode(This) (This)->lpVtbl->GetRenderingMode(This) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteRenderingParams_QueryInterface(IDWriteRenderingParams* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteRenderingParams_AddRef(IDWriteRenderingParams* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteRenderingParams_Release(IDWriteRenderingParams* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteRenderingParams methods ***/ +static inline FLOAT IDWriteRenderingParams_GetGamma(IDWriteRenderingParams* This) { + return This->lpVtbl->GetGamma(This); +} +static inline FLOAT IDWriteRenderingParams_GetEnhancedContrast(IDWriteRenderingParams* This) { + return This->lpVtbl->GetEnhancedContrast(This); +} +static inline FLOAT IDWriteRenderingParams_GetClearTypeLevel(IDWriteRenderingParams* This) { + return This->lpVtbl->GetClearTypeLevel(This); +} +static inline DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams_GetPixelGeometry(IDWriteRenderingParams* This) { + return This->lpVtbl->GetPixelGeometry(This); +} +static inline DWRITE_RENDERING_MODE IDWriteRenderingParams_GetRenderingMode(IDWriteRenderingParams* This) { + return This->lpVtbl->GetRenderingMode(This); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteRenderingParams_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFace interface + */ +#ifndef __IDWriteFontFace_INTERFACE_DEFINED__ +#define __IDWriteFontFace_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFace, 0x5f49804d, 0x7024, 0x4d43, 0xbf,0xa9, 0xd2,0x59,0x84,0xf5,0x38,0x49); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("5f49804d-7024-4d43-bfa9-d25984f53849") +IDWriteFontFace : public IUnknown +{ + virtual DWRITE_FONT_FACE_TYPE STDMETHODCALLTYPE GetType( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFiles( + UINT32 *number_of_files, + IDWriteFontFile **fontfiles) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetIndex( + ) = 0; + + virtual DWRITE_FONT_SIMULATIONS STDMETHODCALLTYPE GetSimulations( + ) = 0; + + virtual WINBOOL STDMETHODCALLTYPE IsSymbolFont( + ) = 0; + + virtual void STDMETHODCALLTYPE GetMetrics( + DWRITE_FONT_METRICS *metrics) = 0; + + virtual UINT16 STDMETHODCALLTYPE GetGlyphCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDesignGlyphMetrics( + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways = FALSE) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGlyphIndices( + const UINT32 *codepoints, + UINT32 count, + UINT16 *glyph_indices) = 0; + + virtual HRESULT STDMETHODCALLTYPE TryGetFontTable( + UINT32 table_tag, + const void **table_data, + UINT32 *table_size, + void **context, + WINBOOL *exists) = 0; + + virtual void STDMETHODCALLTYPE ReleaseFontTable( + void *table_context) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGlyphRunOutline( + FLOAT emSize, + const UINT16 *glyph_indices, + const FLOAT *glyph_advances, + const DWRITE_GLYPH_OFFSET *glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink *geometrysink) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode( + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *rendering_mode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGdiCompatibleMetrics( + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS *metrics) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGdiCompatibleGlyphMetrics( + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways = FALSE) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFace, 0x5f49804d, 0x7024, 0x4d43, 0xbf,0xa9, 0xd2,0x59,0x84,0xf5,0x38,0x49) +#endif +#else +typedef struct IDWriteFontFaceVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFace *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFace *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFace *This); + + /*** IDWriteFontFace methods ***/ + DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( + IDWriteFontFace *This); + + HRESULT (STDMETHODCALLTYPE *GetFiles)( + IDWriteFontFace *This, + UINT32 *number_of_files, + IDWriteFontFile **fontfiles); + + UINT32 (STDMETHODCALLTYPE *GetIndex)( + IDWriteFontFace *This); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFontFace *This); + + WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( + IDWriteFontFace *This); + + void (STDMETHODCALLTYPE *GetMetrics)( + IDWriteFontFace *This, + DWRITE_FONT_METRICS *metrics); + + UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( + IDWriteFontFace *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( + IDWriteFontFace *This, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( + IDWriteFontFace *This, + const UINT32 *codepoints, + UINT32 count, + UINT16 *glyph_indices); + + HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( + IDWriteFontFace *This, + UINT32 table_tag, + const void **table_data, + UINT32 *table_size, + void **context, + WINBOOL *exists); + + void (STDMETHODCALLTYPE *ReleaseFontTable)( + IDWriteFontFace *This, + void *table_context); + + HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( + IDWriteFontFace *This, + FLOAT emSize, + const UINT16 *glyph_indices, + const FLOAT *glyph_advances, + const DWRITE_GLYPH_OFFSET *glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink *geometrysink); + + HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( + IDWriteFontFace *This, + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( + IDWriteFontFace *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( + IDWriteFontFace *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + END_INTERFACE +} IDWriteFontFaceVtbl; + +interface IDWriteFontFace { + CONST_VTBL IDWriteFontFaceVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFace_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFace_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFace_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFace methods ***/ +#define IDWriteFontFace_GetType(This) (This)->lpVtbl->GetType(This) +#define IDWriteFontFace_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) +#define IDWriteFontFace_GetIndex(This) (This)->lpVtbl->GetIndex(This) +#define IDWriteFontFace_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +#define IDWriteFontFace_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) +#define IDWriteFontFace_GetMetrics(This,metrics) (This)->lpVtbl->GetMetrics(This,metrics) +#define IDWriteFontFace_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) +#define IDWriteFontFace_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) +#define IDWriteFontFace_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) +#define IDWriteFontFace_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) +#define IDWriteFontFace_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) +#define IDWriteFontFace_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) +#define IDWriteFontFace_GetRecommendedRenderingMode(This,emSize,pixels_per_dip,mode,params,rendering_mode) (This)->lpVtbl->GetRecommendedRenderingMode(This,emSize,pixels_per_dip,mode,params,rendering_mode) +#define IDWriteFontFace_GetGdiCompatibleMetrics(This,emSize,pixels_per_dip,transform,metrics) (This)->lpVtbl->GetGdiCompatibleMetrics(This,emSize,pixels_per_dip,transform,metrics) +#define IDWriteFontFace_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFace_QueryInterface(IDWriteFontFace* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFace_AddRef(IDWriteFontFace* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFace_Release(IDWriteFontFace* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFace methods ***/ +static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace_GetType(IDWriteFontFace* This) { + return This->lpVtbl->GetType(This); +} +static inline HRESULT IDWriteFontFace_GetFiles(IDWriteFontFace* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { + return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); +} +static inline UINT32 IDWriteFontFace_GetIndex(IDWriteFontFace* This) { + return This->lpVtbl->GetIndex(This); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace_GetSimulations(IDWriteFontFace* This) { + return This->lpVtbl->GetSimulations(This); +} +static inline WINBOOL IDWriteFontFace_IsSymbolFont(IDWriteFontFace* This) { + return This->lpVtbl->IsSymbolFont(This); +} +static inline void IDWriteFontFace_GetMetrics(IDWriteFontFace* This,DWRITE_FONT_METRICS *metrics) { + This->lpVtbl->GetMetrics(This,metrics); +} +static inline UINT16 IDWriteFontFace_GetGlyphCount(IDWriteFontFace* This) { + return This->lpVtbl->GetGlyphCount(This); +} +static inline HRESULT IDWriteFontFace_GetDesignGlyphMetrics(IDWriteFontFace* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); +} +static inline HRESULT IDWriteFontFace_GetGlyphIndices(IDWriteFontFace* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { + return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); +} +static inline HRESULT IDWriteFontFace_TryGetFontTable(IDWriteFontFace* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { + return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); +} +static inline void IDWriteFontFace_ReleaseFontTable(IDWriteFontFace* This,void *table_context) { + This->lpVtbl->ReleaseFontTable(This,table_context); +} +static inline HRESULT IDWriteFontFace_GetGlyphRunOutline(IDWriteFontFace* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) { + return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); +} +static inline HRESULT IDWriteFontFace_GetRecommendedRenderingMode(IDWriteFontFace* This,FLOAT emSize,FLOAT pixels_per_dip,DWRITE_MEASURING_MODE mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE *rendering_mode) { + return This->lpVtbl->GetRecommendedRenderingMode(This,emSize,pixels_per_dip,mode,params,rendering_mode); +} +static inline HRESULT IDWriteFontFace_GetGdiCompatibleMetrics(IDWriteFontFace* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS *metrics) { + return This->lpVtbl->GetGdiCompatibleMetrics(This,emSize,pixels_per_dip,transform,metrics); +} +static inline HRESULT IDWriteFontFace_GetGdiCompatibleGlyphMetrics(IDWriteFontFace* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFace_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFont interface + */ +#ifndef __IDWriteFont_INTERFACE_DEFINED__ +#define __IDWriteFont_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFont, 0xacd16696, 0x8c14, 0x4f5d, 0x87,0x7e, 0xfe,0x3f,0xc1,0xd3,0x27,0x37); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("acd16696-8c14-4f5d-877e-fe3fc1d32737") +IDWriteFont : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetFontFamily( + IDWriteFontFamily **family) = 0; + + virtual DWRITE_FONT_WEIGHT STDMETHODCALLTYPE GetWeight( + ) = 0; + + virtual DWRITE_FONT_STRETCH STDMETHODCALLTYPE GetStretch( + ) = 0; + + virtual DWRITE_FONT_STYLE STDMETHODCALLTYPE GetStyle( + ) = 0; + + virtual WINBOOL STDMETHODCALLTYPE IsSymbolFont( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFaceNames( + IDWriteLocalizedStrings **names) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetInformationalStrings( + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings **strings, + WINBOOL *exists) = 0; + + virtual DWRITE_FONT_SIMULATIONS STDMETHODCALLTYPE GetSimulations( + ) = 0; + + virtual void STDMETHODCALLTYPE GetMetrics( + DWRITE_FONT_METRICS *metrics) = 0; + + virtual HRESULT STDMETHODCALLTYPE HasCharacter( + UINT32 value, + WINBOOL *exists) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFace( + IDWriteFontFace **face) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFont, 0xacd16696, 0x8c14, 0x4f5d, 0x87,0x7e, 0xfe,0x3f,0xc1,0xd3,0x27,0x37) +#endif +#else +typedef struct IDWriteFontVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFont *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFont *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFont *This); + + /*** IDWriteFont methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontFamily)( + IDWriteFont *This, + IDWriteFontFamily **family); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( + IDWriteFont *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( + IDWriteFont *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( + IDWriteFont *This); + + WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( + IDWriteFont *This); + + HRESULT (STDMETHODCALLTYPE *GetFaceNames)( + IDWriteFont *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( + IDWriteFont *This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings **strings, + WINBOOL *exists); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFont *This); + + void (STDMETHODCALLTYPE *GetMetrics)( + IDWriteFont *This, + DWRITE_FONT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *HasCharacter)( + IDWriteFont *This, + UINT32 value, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFont *This, + IDWriteFontFace **face); + + END_INTERFACE +} IDWriteFontVtbl; + +interface IDWriteFont { + CONST_VTBL IDWriteFontVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFont_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFont_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFont_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFont methods ***/ +#define IDWriteFont_GetFontFamily(This,family) (This)->lpVtbl->GetFontFamily(This,family) +#define IDWriteFont_GetWeight(This) (This)->lpVtbl->GetWeight(This) +#define IDWriteFont_GetStretch(This) (This)->lpVtbl->GetStretch(This) +#define IDWriteFont_GetStyle(This) (This)->lpVtbl->GetStyle(This) +#define IDWriteFont_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) +#define IDWriteFont_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names) +#define IDWriteFont_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) +#define IDWriteFont_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +#define IDWriteFont_GetMetrics(This,metrics) (This)->lpVtbl->GetMetrics(This,metrics) +#define IDWriteFont_HasCharacter(This,value,exists) (This)->lpVtbl->HasCharacter(This,value,exists) +#define IDWriteFont_CreateFontFace(This,face) (This)->lpVtbl->CreateFontFace(This,face) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFont_QueryInterface(IDWriteFont* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFont_AddRef(IDWriteFont* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFont_Release(IDWriteFont* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFont methods ***/ +static inline HRESULT IDWriteFont_GetFontFamily(IDWriteFont* This,IDWriteFontFamily **family) { + return This->lpVtbl->GetFontFamily(This,family); +} +static inline DWRITE_FONT_WEIGHT IDWriteFont_GetWeight(IDWriteFont* This) { + return This->lpVtbl->GetWeight(This); +} +static inline DWRITE_FONT_STRETCH IDWriteFont_GetStretch(IDWriteFont* This) { + return This->lpVtbl->GetStretch(This); +} +static inline DWRITE_FONT_STYLE IDWriteFont_GetStyle(IDWriteFont* This) { + return This->lpVtbl->GetStyle(This); +} +static inline WINBOOL IDWriteFont_IsSymbolFont(IDWriteFont* This) { + return This->lpVtbl->IsSymbolFont(This); +} +static inline HRESULT IDWriteFont_GetFaceNames(IDWriteFont* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFaceNames(This,names); +} +static inline HRESULT IDWriteFont_GetInformationalStrings(IDWriteFont* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { + return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFont_GetSimulations(IDWriteFont* This) { + return This->lpVtbl->GetSimulations(This); +} +static inline void IDWriteFont_GetMetrics(IDWriteFont* This,DWRITE_FONT_METRICS *metrics) { + This->lpVtbl->GetMetrics(This,metrics); +} +static inline HRESULT IDWriteFont_HasCharacter(IDWriteFont* This,UINT32 value,WINBOOL *exists) { + return This->lpVtbl->HasCharacter(This,value,exists); +} +static inline HRESULT IDWriteFont_CreateFontFace(IDWriteFont* This,IDWriteFontFace **face) { + return This->lpVtbl->CreateFontFace(This,face); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFont_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontList interface + */ +#ifndef __IDWriteFontList_INTERFACE_DEFINED__ +#define __IDWriteFontList_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontList, 0x1a0d8438, 0x1d97, 0x4ec1, 0xae,0xf9, 0xa2,0xfb,0x86,0xed,0x6a,0xcb); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("1a0d8438-1d97-4ec1-aef9-a2fb86ed6acb") +IDWriteFontList : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetFontCollection( + IDWriteFontCollection **collection) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetFontCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFont( + UINT32 index, + IDWriteFont **font) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontList, 0x1a0d8438, 0x1d97, 0x4ec1, 0xae,0xf9, 0xa2,0xfb,0x86,0xed,0x6a,0xcb) +#endif +#else +typedef struct IDWriteFontListVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontList *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontList *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontList *This); + + /*** IDWriteFontList methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteFontList *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontCount)( + IDWriteFontList *This); + + HRESULT (STDMETHODCALLTYPE *GetFont)( + IDWriteFontList *This, + UINT32 index, + IDWriteFont **font); + + END_INTERFACE +} IDWriteFontListVtbl; + +interface IDWriteFontList { + CONST_VTBL IDWriteFontListVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontList_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontList_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontList methods ***/ +#define IDWriteFontList_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteFontList_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) +#define IDWriteFontList_GetFont(This,index,font) (This)->lpVtbl->GetFont(This,index,font) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontList_QueryInterface(IDWriteFontList* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontList_AddRef(IDWriteFontList* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontList_Release(IDWriteFontList* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontList methods ***/ +static inline HRESULT IDWriteFontList_GetFontCollection(IDWriteFontList* This,IDWriteFontCollection **collection) { + return This->lpVtbl->GetFontCollection(This,collection); +} +static inline UINT32 IDWriteFontList_GetFontCount(IDWriteFontList* This) { + return This->lpVtbl->GetFontCount(This); +} +static inline HRESULT IDWriteFontList_GetFont(IDWriteFontList* This,UINT32 index,IDWriteFont **font) { + return This->lpVtbl->GetFont(This,index,font); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontList_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFamily interface + */ +#ifndef __IDWriteFontFamily_INTERFACE_DEFINED__ +#define __IDWriteFontFamily_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFamily, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xdd); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7add") +IDWriteFontFamily : public IDWriteFontList +{ + virtual HRESULT STDMETHODCALLTYPE GetFamilyNames( + IDWriteLocalizedStrings **names) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFirstMatchingFont( + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFont **font) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontList **fonts) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFamily, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xdd) +#endif +#else +typedef struct IDWriteFontFamilyVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFamily *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFamily *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFamily *This); + + /*** IDWriteFontList methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteFontFamily *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontCount)( + IDWriteFontFamily *This); + + HRESULT (STDMETHODCALLTYPE *GetFont)( + IDWriteFontFamily *This, + UINT32 index, + IDWriteFont **font); + + /*** IDWriteFontFamily methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( + IDWriteFontFamily *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetFirstMatchingFont)( + IDWriteFontFamily *This, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFont **font); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( + IDWriteFontFamily *This, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontList **fonts); + + END_INTERFACE +} IDWriteFontFamilyVtbl; + +interface IDWriteFontFamily { + CONST_VTBL IDWriteFontFamilyVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFamily_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFamily_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFamily_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontList methods ***/ +#define IDWriteFontFamily_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteFontFamily_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) +#define IDWriteFontFamily_GetFont(This,index,font) (This)->lpVtbl->GetFont(This,index,font) +/*** IDWriteFontFamily methods ***/ +#define IDWriteFontFamily_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names) +#define IDWriteFontFamily_GetFirstMatchingFont(This,weight,stretch,style,font) (This)->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font) +#define IDWriteFontFamily_GetMatchingFonts(This,weight,stretch,style,fonts) (This)->lpVtbl->GetMatchingFonts(This,weight,stretch,style,fonts) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFamily_QueryInterface(IDWriteFontFamily* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFamily_AddRef(IDWriteFontFamily* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFamily_Release(IDWriteFontFamily* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontList methods ***/ +static inline HRESULT IDWriteFontFamily_GetFontCollection(IDWriteFontFamily* This,IDWriteFontCollection **collection) { + return This->lpVtbl->GetFontCollection(This,collection); +} +static inline UINT32 IDWriteFontFamily_GetFontCount(IDWriteFontFamily* This) { + return This->lpVtbl->GetFontCount(This); +} +static inline HRESULT IDWriteFontFamily_GetFont(IDWriteFontFamily* This,UINT32 index,IDWriteFont **font) { + return This->lpVtbl->GetFont(This,index,font); +} +/*** IDWriteFontFamily methods ***/ +static inline HRESULT IDWriteFontFamily_GetFamilyNames(IDWriteFontFamily* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFamilyNames(This,names); +} +static inline HRESULT IDWriteFontFamily_GetFirstMatchingFont(IDWriteFontFamily* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFont **font) { + return This->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font); +} +static inline HRESULT IDWriteFontFamily_GetMatchingFonts(IDWriteFontFamily* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontList **fonts) { + return This->lpVtbl->GetMatchingFonts(This,weight,stretch,style,fonts); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFamily_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontCollection interface + */ +#ifndef __IDWriteFontCollection_INTERFACE_DEFINED__ +#define __IDWriteFontCollection_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontCollection, 0xa84cee02, 0x3eea, 0x4eee, 0xa8,0x27, 0x87,0xc1,0xa0,0x2a,0x0f,0xcc); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a84cee02-3eea-4eee-a827-87c1a02a0fcc") +IDWriteFontCollection : public IUnknown +{ + virtual UINT32 STDMETHODCALLTYPE GetFontFamilyCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFamily( + UINT32 index, + IDWriteFontFamily **family) = 0; + + virtual HRESULT STDMETHODCALLTYPE FindFamilyName( + const WCHAR *name, + UINT32 *index, + WINBOOL *exists) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFromFontFace( + IDWriteFontFace *face, + IDWriteFont **font) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontCollection, 0xa84cee02, 0x3eea, 0x4eee, 0xa8,0x27, 0x87,0xc1,0xa0,0x2a,0x0f,0xcc) +#endif +#else +typedef struct IDWriteFontCollectionVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontCollection *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontCollection *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontCollection *This); + + /*** IDWriteFontCollection methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)( + IDWriteFontCollection *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamily)( + IDWriteFontCollection *This, + UINT32 index, + IDWriteFontFamily **family); + + HRESULT (STDMETHODCALLTYPE *FindFamilyName)( + IDWriteFontCollection *This, + const WCHAR *name, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)( + IDWriteFontCollection *This, + IDWriteFontFace *face, + IDWriteFont **font); + + END_INTERFACE +} IDWriteFontCollectionVtbl; + +interface IDWriteFontCollection { + CONST_VTBL IDWriteFontCollectionVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontCollection_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontCollection_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontCollection methods ***/ +#define IDWriteFontCollection_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This) +#define IDWriteFontCollection_GetFontFamily(This,index,family) (This)->lpVtbl->GetFontFamily(This,index,family) +#define IDWriteFontCollection_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists) +#define IDWriteFontCollection_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontCollection_QueryInterface(IDWriteFontCollection* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontCollection_AddRef(IDWriteFontCollection* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontCollection_Release(IDWriteFontCollection* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontCollection methods ***/ +static inline UINT32 IDWriteFontCollection_GetFontFamilyCount(IDWriteFontCollection* This) { + return This->lpVtbl->GetFontFamilyCount(This); +} +static inline HRESULT IDWriteFontCollection_GetFontFamily(IDWriteFontCollection* This,UINT32 index,IDWriteFontFamily **family) { + return This->lpVtbl->GetFontFamily(This,index,family); +} +static inline HRESULT IDWriteFontCollection_FindFamilyName(IDWriteFontCollection* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFamilyName(This,name,index,exists); +} +static inline HRESULT IDWriteFontCollection_GetFontFromFontFace(IDWriteFontCollection* This,IDWriteFontFace *face,IDWriteFont **font) { + return This->lpVtbl->GetFontFromFontFace(This,face,font); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontCollection_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWritePixelSnapping interface + */ +#ifndef __IDWritePixelSnapping_INTERFACE_DEFINED__ +#define __IDWritePixelSnapping_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWritePixelSnapping, 0xeaf3a2da, 0xecf4, 0x4d24, 0xb6,0x44, 0xb3,0x4f,0x68,0x42,0x02,0x4b); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("eaf3a2da-ecf4-4d24-b644-b34f6842024b") +IDWritePixelSnapping : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE IsPixelSnappingDisabled( + void *client_drawingcontext, + WINBOOL *disabled) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCurrentTransform( + void *client_drawingcontext, + DWRITE_MATRIX *transform) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPixelsPerDip( + void *client_drawingcontext, + FLOAT *pixels_per_dip) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWritePixelSnapping, 0xeaf3a2da, 0xecf4, 0x4d24, 0xb6,0x44, 0xb3,0x4f,0x68,0x42,0x02,0x4b) +#endif +#else +typedef struct IDWritePixelSnappingVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWritePixelSnapping *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWritePixelSnapping *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWritePixelSnapping *This); + + /*** IDWritePixelSnapping methods ***/ + HRESULT (STDMETHODCALLTYPE *IsPixelSnappingDisabled)( + IDWritePixelSnapping *This, + void *client_drawingcontext, + WINBOOL *disabled); + + HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)( + IDWritePixelSnapping *This, + void *client_drawingcontext, + DWRITE_MATRIX *transform); + + HRESULT (STDMETHODCALLTYPE *GetPixelsPerDip)( + IDWritePixelSnapping *This, + void *client_drawingcontext, + FLOAT *pixels_per_dip); + + END_INTERFACE +} IDWritePixelSnappingVtbl; + +interface IDWritePixelSnapping { + CONST_VTBL IDWritePixelSnappingVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWritePixelSnapping_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWritePixelSnapping_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWritePixelSnapping_Release(This) (This)->lpVtbl->Release(This) +/*** IDWritePixelSnapping methods ***/ +#define IDWritePixelSnapping_IsPixelSnappingDisabled(This,client_drawingcontext,disabled) (This)->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled) +#define IDWritePixelSnapping_GetCurrentTransform(This,client_drawingcontext,transform) (This)->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform) +#define IDWritePixelSnapping_GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) (This)->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWritePixelSnapping_QueryInterface(IDWritePixelSnapping* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWritePixelSnapping_AddRef(IDWritePixelSnapping* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWritePixelSnapping_Release(IDWritePixelSnapping* This) { + return This->lpVtbl->Release(This); +} +/*** IDWritePixelSnapping methods ***/ +static inline HRESULT IDWritePixelSnapping_IsPixelSnappingDisabled(IDWritePixelSnapping* This,void *client_drawingcontext,WINBOOL *disabled) { + return This->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled); +} +static inline HRESULT IDWritePixelSnapping_GetCurrentTransform(IDWritePixelSnapping* This,void *client_drawingcontext,DWRITE_MATRIX *transform) { + return This->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform); +} +static inline HRESULT IDWritePixelSnapping_GetPixelsPerDip(IDWritePixelSnapping* This,void *client_drawingcontext,FLOAT *pixels_per_dip) { + return This->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip); +} +#endif +#endif + +#endif + + +#endif /* __IDWritePixelSnapping_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextRenderer interface + */ +#ifndef __IDWriteTextRenderer_INTERFACE_DEFINED__ +#define __IDWriteTextRenderer_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextRenderer, 0xef8a8135, 0x5cc6, 0x45fe, 0x88,0x25, 0xc5,0xa0,0x72,0x4e,0xb8,0x19); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("ef8a8135-5cc6-45fe-8825-c5a0724eb819") +IDWriteTextRenderer : public IDWritePixelSnapping +{ + virtual HRESULT STDMETHODCALLTYPE DrawGlyphRun( + void *client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE mode, + const DWRITE_GLYPH_RUN *glyph_run, + const DWRITE_GLYPH_RUN_DESCRIPTION *run_descr, + IUnknown *drawing_effect) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawUnderline( + void *client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + const DWRITE_UNDERLINE *underline, + IUnknown *drawing_effect) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawStrikethrough( + void *client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + const DWRITE_STRIKETHROUGH *strikethrough, + IUnknown *drawing_effect) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawInlineObject( + void *client_drawingcontext, + FLOAT originX, + FLOAT originY, + IDWriteInlineObject *object, + WINBOOL is_sideways, + WINBOOL is_rtl, + IUnknown *drawing_effect) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextRenderer, 0xef8a8135, 0x5cc6, 0x45fe, 0x88,0x25, 0xc5,0xa0,0x72,0x4e,0xb8,0x19) +#endif +#else +typedef struct IDWriteTextRendererVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextRenderer *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextRenderer *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextRenderer *This); + + /*** IDWritePixelSnapping methods ***/ + HRESULT (STDMETHODCALLTYPE *IsPixelSnappingDisabled)( + IDWriteTextRenderer *This, + void *client_drawingcontext, + WINBOOL *disabled); + + HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)( + IDWriteTextRenderer *This, + void *client_drawingcontext, + DWRITE_MATRIX *transform); + + HRESULT (STDMETHODCALLTYPE *GetPixelsPerDip)( + IDWriteTextRenderer *This, + void *client_drawingcontext, + FLOAT *pixels_per_dip); + + /*** IDWriteTextRenderer methods ***/ + HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)( + IDWriteTextRenderer *This, + void *client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE mode, + const DWRITE_GLYPH_RUN *glyph_run, + const DWRITE_GLYPH_RUN_DESCRIPTION *run_descr, + IUnknown *drawing_effect); + + HRESULT (STDMETHODCALLTYPE *DrawUnderline)( + IDWriteTextRenderer *This, + void *client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + const DWRITE_UNDERLINE *underline, + IUnknown *drawing_effect); + + HRESULT (STDMETHODCALLTYPE *DrawStrikethrough)( + IDWriteTextRenderer *This, + void *client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + const DWRITE_STRIKETHROUGH *strikethrough, + IUnknown *drawing_effect); + + HRESULT (STDMETHODCALLTYPE *DrawInlineObject)( + IDWriteTextRenderer *This, + void *client_drawingcontext, + FLOAT originX, + FLOAT originY, + IDWriteInlineObject *object, + WINBOOL is_sideways, + WINBOOL is_rtl, + IUnknown *drawing_effect); + + END_INTERFACE +} IDWriteTextRendererVtbl; + +interface IDWriteTextRenderer { + CONST_VTBL IDWriteTextRendererVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextRenderer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextRenderer_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextRenderer_Release(This) (This)->lpVtbl->Release(This) +/*** IDWritePixelSnapping methods ***/ +#define IDWriteTextRenderer_IsPixelSnappingDisabled(This,client_drawingcontext,disabled) (This)->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled) +#define IDWriteTextRenderer_GetCurrentTransform(This,client_drawingcontext,transform) (This)->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform) +#define IDWriteTextRenderer_GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) (This)->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) +/*** IDWriteTextRenderer methods ***/ +#define IDWriteTextRenderer_DrawGlyphRun(This,client_drawingcontext,baselineOriginX,baselineOriginY,mode,glyph_run,run_descr,drawing_effect) (This)->lpVtbl->DrawGlyphRun(This,client_drawingcontext,baselineOriginX,baselineOriginY,mode,glyph_run,run_descr,drawing_effect) +#define IDWriteTextRenderer_DrawUnderline(This,client_drawingcontext,baselineOriginX,baselineOriginY,underline,drawing_effect) (This)->lpVtbl->DrawUnderline(This,client_drawingcontext,baselineOriginX,baselineOriginY,underline,drawing_effect) +#define IDWriteTextRenderer_DrawStrikethrough(This,client_drawingcontext,baselineOriginX,baselineOriginY,strikethrough,drawing_effect) (This)->lpVtbl->DrawStrikethrough(This,client_drawingcontext,baselineOriginX,baselineOriginY,strikethrough,drawing_effect) +#define IDWriteTextRenderer_DrawInlineObject(This,client_drawingcontext,originX,originY,object,is_sideways,is_rtl,drawing_effect) (This)->lpVtbl->DrawInlineObject(This,client_drawingcontext,originX,originY,object,is_sideways,is_rtl,drawing_effect) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextRenderer_QueryInterface(IDWriteTextRenderer* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextRenderer_AddRef(IDWriteTextRenderer* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextRenderer_Release(IDWriteTextRenderer* This) { + return This->lpVtbl->Release(This); +} +/*** IDWritePixelSnapping methods ***/ +static inline HRESULT IDWriteTextRenderer_IsPixelSnappingDisabled(IDWriteTextRenderer* This,void *client_drawingcontext,WINBOOL *disabled) { + return This->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled); +} +static inline HRESULT IDWriteTextRenderer_GetCurrentTransform(IDWriteTextRenderer* This,void *client_drawingcontext,DWRITE_MATRIX *transform) { + return This->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform); +} +static inline HRESULT IDWriteTextRenderer_GetPixelsPerDip(IDWriteTextRenderer* This,void *client_drawingcontext,FLOAT *pixels_per_dip) { + return This->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip); +} +/*** IDWriteTextRenderer methods ***/ +static inline HRESULT IDWriteTextRenderer_DrawGlyphRun(IDWriteTextRenderer* This,void *client_drawingcontext,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE mode,const DWRITE_GLYPH_RUN *glyph_run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_descr,IUnknown *drawing_effect) { + return This->lpVtbl->DrawGlyphRun(This,client_drawingcontext,baselineOriginX,baselineOriginY,mode,glyph_run,run_descr,drawing_effect); +} +static inline HRESULT IDWriteTextRenderer_DrawUnderline(IDWriteTextRenderer* This,void *client_drawingcontext,FLOAT baselineOriginX,FLOAT baselineOriginY,const DWRITE_UNDERLINE *underline,IUnknown *drawing_effect) { + return This->lpVtbl->DrawUnderline(This,client_drawingcontext,baselineOriginX,baselineOriginY,underline,drawing_effect); +} +static inline HRESULT IDWriteTextRenderer_DrawStrikethrough(IDWriteTextRenderer* This,void *client_drawingcontext,FLOAT baselineOriginX,FLOAT baselineOriginY,const DWRITE_STRIKETHROUGH *strikethrough,IUnknown *drawing_effect) { + return This->lpVtbl->DrawStrikethrough(This,client_drawingcontext,baselineOriginX,baselineOriginY,strikethrough,drawing_effect); +} +static inline HRESULT IDWriteTextRenderer_DrawInlineObject(IDWriteTextRenderer* This,void *client_drawingcontext,FLOAT originX,FLOAT originY,IDWriteInlineObject *object,WINBOOL is_sideways,WINBOOL is_rtl,IUnknown *drawing_effect) { + return This->lpVtbl->DrawInlineObject(This,client_drawingcontext,originX,originY,object,is_sideways,is_rtl,drawing_effect); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextRenderer_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteInlineObject interface + */ +#ifndef __IDWriteInlineObject_INTERFACE_DEFINED__ +#define __IDWriteInlineObject_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteInlineObject, 0x8339fde3, 0x106f, 0x47ab, 0x83,0x73, 0x1c,0x62,0x95,0xeb,0x10,0xb3); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("8339fde3-106f-47ab-8373-1c6295eb10b3") +IDWriteInlineObject : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Draw( + void *client_drawingontext, + IDWriteTextRenderer *renderer, + FLOAT originX, + FLOAT originY, + WINBOOL is_sideways, + WINBOOL is_rtl, + IUnknown *drawing_effect) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMetrics( + DWRITE_INLINE_OBJECT_METRICS *metrics) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetOverhangMetrics( + DWRITE_OVERHANG_METRICS *overhangs) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBreakConditions( + DWRITE_BREAK_CONDITION *condition_before, + DWRITE_BREAK_CONDITION *condition_after) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteInlineObject, 0x8339fde3, 0x106f, 0x47ab, 0x83,0x73, 0x1c,0x62,0x95,0xeb,0x10,0xb3) +#endif +#else +typedef struct IDWriteInlineObjectVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteInlineObject *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteInlineObject *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteInlineObject *This); + + /*** IDWriteInlineObject methods ***/ + HRESULT (STDMETHODCALLTYPE *Draw)( + IDWriteInlineObject *This, + void *client_drawingontext, + IDWriteTextRenderer *renderer, + FLOAT originX, + FLOAT originY, + WINBOOL is_sideways, + WINBOOL is_rtl, + IUnknown *drawing_effect); + + HRESULT (STDMETHODCALLTYPE *GetMetrics)( + IDWriteInlineObject *This, + DWRITE_INLINE_OBJECT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)( + IDWriteInlineObject *This, + DWRITE_OVERHANG_METRICS *overhangs); + + HRESULT (STDMETHODCALLTYPE *GetBreakConditions)( + IDWriteInlineObject *This, + DWRITE_BREAK_CONDITION *condition_before, + DWRITE_BREAK_CONDITION *condition_after); + + END_INTERFACE +} IDWriteInlineObjectVtbl; + +interface IDWriteInlineObject { + CONST_VTBL IDWriteInlineObjectVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteInlineObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteInlineObject_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteInlineObject_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteInlineObject methods ***/ +#define IDWriteInlineObject_Draw(This,client_drawingontext,renderer,originX,originY,is_sideways,is_rtl,drawing_effect) (This)->lpVtbl->Draw(This,client_drawingontext,renderer,originX,originY,is_sideways,is_rtl,drawing_effect) +#define IDWriteInlineObject_GetMetrics(This,metrics) (This)->lpVtbl->GetMetrics(This,metrics) +#define IDWriteInlineObject_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs) +#define IDWriteInlineObject_GetBreakConditions(This,condition_before,condition_after) (This)->lpVtbl->GetBreakConditions(This,condition_before,condition_after) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteInlineObject_QueryInterface(IDWriteInlineObject* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteInlineObject_AddRef(IDWriteInlineObject* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteInlineObject_Release(IDWriteInlineObject* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteInlineObject methods ***/ +static inline HRESULT IDWriteInlineObject_Draw(IDWriteInlineObject* This,void *client_drawingontext,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY,WINBOOL is_sideways,WINBOOL is_rtl,IUnknown *drawing_effect) { + return This->lpVtbl->Draw(This,client_drawingontext,renderer,originX,originY,is_sideways,is_rtl,drawing_effect); +} +static inline HRESULT IDWriteInlineObject_GetMetrics(IDWriteInlineObject* This,DWRITE_INLINE_OBJECT_METRICS *metrics) { + return This->lpVtbl->GetMetrics(This,metrics); +} +static inline HRESULT IDWriteInlineObject_GetOverhangMetrics(IDWriteInlineObject* This,DWRITE_OVERHANG_METRICS *overhangs) { + return This->lpVtbl->GetOverhangMetrics(This,overhangs); +} +static inline HRESULT IDWriteInlineObject_GetBreakConditions(IDWriteInlineObject* This,DWRITE_BREAK_CONDITION *condition_before,DWRITE_BREAK_CONDITION *condition_after) { + return This->lpVtbl->GetBreakConditions(This,condition_before,condition_after); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteInlineObject_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextFormat interface + */ +#ifndef __IDWriteTextFormat_INTERFACE_DEFINED__ +#define __IDWriteTextFormat_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextFormat, 0x9c906818, 0x31d7, 0x4fd3, 0xa1,0x51, 0x7c,0x5e,0x22,0x5d,0xb5,0x5a); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("9c906818-31d7-4fd3-a151-7c5e225db55a") +IDWriteTextFormat : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetTextAlignment( + DWRITE_TEXT_ALIGNMENT alignment) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetParagraphAlignment( + DWRITE_PARAGRAPH_ALIGNMENT alignment) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetWordWrapping( + DWRITE_WORD_WRAPPING wrapping) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetReadingDirection( + DWRITE_READING_DIRECTION direction) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFlowDirection( + DWRITE_FLOW_DIRECTION direction) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetIncrementalTabStop( + FLOAT tabstop) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetTrimming( + const DWRITE_TRIMMING *trimming, + IDWriteInlineObject *trimming_sign) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetLineSpacing( + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline) = 0; + + virtual DWRITE_TEXT_ALIGNMENT STDMETHODCALLTYPE GetTextAlignment( + ) = 0; + + virtual DWRITE_PARAGRAPH_ALIGNMENT STDMETHODCALLTYPE GetParagraphAlignment( + ) = 0; + + virtual DWRITE_WORD_WRAPPING STDMETHODCALLTYPE GetWordWrapping( + ) = 0; + + virtual DWRITE_READING_DIRECTION STDMETHODCALLTYPE GetReadingDirection( + ) = 0; + + virtual DWRITE_FLOW_DIRECTION STDMETHODCALLTYPE GetFlowDirection( + ) = 0; + + virtual FLOAT STDMETHODCALLTYPE GetIncrementalTabStop( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTrimming( + DWRITE_TRIMMING *options, + IDWriteInlineObject **trimming_sign) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLineSpacing( + DWRITE_LINE_SPACING_METHOD *method, + FLOAT *spacing, + FLOAT *baseline) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontCollection( + IDWriteFontCollection **collection) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetFontFamilyNameLength( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFamilyName( + WCHAR *name, + UINT32 size) = 0; + + virtual DWRITE_FONT_WEIGHT STDMETHODCALLTYPE GetFontWeight( + ) = 0; + + virtual DWRITE_FONT_STYLE STDMETHODCALLTYPE GetFontStyle( + ) = 0; + + virtual DWRITE_FONT_STRETCH STDMETHODCALLTYPE GetFontStretch( + ) = 0; + + virtual FLOAT STDMETHODCALLTYPE GetFontSize( + ) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetLocaleNameLength( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLocaleName( + WCHAR *name, + UINT32 size) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextFormat, 0x9c906818, 0x31d7, 0x4fd3, 0xa1,0x51, 0x7c,0x5e,0x22,0x5d,0xb5,0x5a) +#endif +#else +typedef struct IDWriteTextFormatVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextFormat *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextFormat *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextFormat *This); + + /*** IDWriteTextFormat methods ***/ + HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( + IDWriteTextFormat *This, + DWRITE_TEXT_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( + IDWriteTextFormat *This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( + IDWriteTextFormat *This, + DWRITE_WORD_WRAPPING wrapping); + + HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( + IDWriteTextFormat *This, + DWRITE_READING_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( + IDWriteTextFormat *This, + DWRITE_FLOW_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( + IDWriteTextFormat *This, + FLOAT tabstop); + + HRESULT (STDMETHODCALLTYPE *SetTrimming)( + IDWriteTextFormat *This, + const DWRITE_TRIMMING *trimming, + IDWriteInlineObject *trimming_sign); + + HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( + IDWriteTextFormat *This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); + + DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( + IDWriteTextFormat *This); + + DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( + IDWriteTextFormat *This); + + DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( + IDWriteTextFormat *This); + + DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( + IDWriteTextFormat *This); + + DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( + IDWriteTextFormat *This); + + FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( + IDWriteTextFormat *This); + + HRESULT (STDMETHODCALLTYPE *GetTrimming)( + IDWriteTextFormat *This, + DWRITE_TRIMMING *options, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( + IDWriteTextFormat *This, + DWRITE_LINE_SPACING_METHOD *method, + FLOAT *spacing, + FLOAT *baseline); + + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteTextFormat *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( + IDWriteTextFormat *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( + IDWriteTextFormat *This, + WCHAR *name, + UINT32 size); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( + IDWriteTextFormat *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( + IDWriteTextFormat *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( + IDWriteTextFormat *This); + + FLOAT (STDMETHODCALLTYPE *GetFontSize)( + IDWriteTextFormat *This); + + UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( + IDWriteTextFormat *This); + + HRESULT (STDMETHODCALLTYPE *GetLocaleName)( + IDWriteTextFormat *This, + WCHAR *name, + UINT32 size); + + END_INTERFACE +} IDWriteTextFormatVtbl; + +interface IDWriteTextFormat { + CONST_VTBL IDWriteTextFormatVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextFormat_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextFormat_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextFormat methods ***/ +#define IDWriteTextFormat_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) +#define IDWriteTextFormat_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) +#define IDWriteTextFormat_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) +#define IDWriteTextFormat_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) +#define IDWriteTextFormat_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) +#define IDWriteTextFormat_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) +#define IDWriteTextFormat_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) +#define IDWriteTextFormat_SetLineSpacing(This,spacing,line_spacing,baseline) (This)->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline) +#define IDWriteTextFormat_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) +#define IDWriteTextFormat_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) +#define IDWriteTextFormat_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) +#define IDWriteTextFormat_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) +#define IDWriteTextFormat_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) +#define IDWriteTextFormat_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) +#define IDWriteTextFormat_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) +#define IDWriteTextFormat_GetLineSpacing(This,method,spacing,baseline) (This)->lpVtbl->GetLineSpacing(This,method,spacing,baseline) +#define IDWriteTextFormat_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteTextFormat_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This) +#define IDWriteTextFormat_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size) +#define IDWriteTextFormat_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This) +#define IDWriteTextFormat_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This) +#define IDWriteTextFormat_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This) +#define IDWriteTextFormat_GetFontSize(This) (This)->lpVtbl->GetFontSize(This) +#define IDWriteTextFormat_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This) +#define IDWriteTextFormat_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextFormat_QueryInterface(IDWriteTextFormat* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextFormat_AddRef(IDWriteTextFormat* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextFormat_Release(IDWriteTextFormat* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextFormat methods ***/ +static inline HRESULT IDWriteTextFormat_SetTextAlignment(IDWriteTextFormat* This,DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This,alignment); +} +static inline HRESULT IDWriteTextFormat_SetParagraphAlignment(IDWriteTextFormat* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This,alignment); +} +static inline HRESULT IDWriteTextFormat_SetWordWrapping(IDWriteTextFormat* This,DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This,wrapping); +} +static inline HRESULT IDWriteTextFormat_SetReadingDirection(IDWriteTextFormat* This,DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This,direction); +} +static inline HRESULT IDWriteTextFormat_SetFlowDirection(IDWriteTextFormat* This,DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This,direction); +} +static inline HRESULT IDWriteTextFormat_SetIncrementalTabStop(IDWriteTextFormat* This,FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +} +static inline HRESULT IDWriteTextFormat_SetTrimming(IDWriteTextFormat* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { + return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +} +static inline HRESULT IDWriteTextFormat_SetLineSpacing(IDWriteTextFormat* This,DWRITE_LINE_SPACING_METHOD spacing,FLOAT line_spacing,FLOAT baseline) { + return This->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline); +} +static inline DWRITE_TEXT_ALIGNMENT IDWriteTextFormat_GetTextAlignment(IDWriteTextFormat* This) { + return This->lpVtbl->GetTextAlignment(This); +} +static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat_GetParagraphAlignment(IDWriteTextFormat* This) { + return This->lpVtbl->GetParagraphAlignment(This); +} +static inline DWRITE_WORD_WRAPPING IDWriteTextFormat_GetWordWrapping(IDWriteTextFormat* This) { + return This->lpVtbl->GetWordWrapping(This); +} +static inline DWRITE_READING_DIRECTION IDWriteTextFormat_GetReadingDirection(IDWriteTextFormat* This) { + return This->lpVtbl->GetReadingDirection(This); +} +static inline DWRITE_FLOW_DIRECTION IDWriteTextFormat_GetFlowDirection(IDWriteTextFormat* This) { + return This->lpVtbl->GetFlowDirection(This); +} +static inline FLOAT IDWriteTextFormat_GetIncrementalTabStop(IDWriteTextFormat* This) { + return This->lpVtbl->GetIncrementalTabStop(This); +} +static inline HRESULT IDWriteTextFormat_GetTrimming(IDWriteTextFormat* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->GetTrimming(This,options,trimming_sign); +} +static inline HRESULT IDWriteTextFormat_GetLineSpacing(IDWriteTextFormat* This,DWRITE_LINE_SPACING_METHOD *method,FLOAT *spacing,FLOAT *baseline) { + return This->lpVtbl->GetLineSpacing(This,method,spacing,baseline); +} +static inline HRESULT IDWriteTextFormat_GetFontCollection(IDWriteTextFormat* This,IDWriteFontCollection **collection) { + return This->lpVtbl->GetFontCollection(This,collection); +} +static inline UINT32 IDWriteTextFormat_GetFontFamilyNameLength(IDWriteTextFormat* This) { + return This->lpVtbl->GetFontFamilyNameLength(This); +} +static inline HRESULT IDWriteTextFormat_GetFontFamilyName(IDWriteTextFormat* This,WCHAR *name,UINT32 size) { + return This->lpVtbl->GetFontFamilyName(This,name,size); +} +static inline DWRITE_FONT_WEIGHT IDWriteTextFormat_GetFontWeight(IDWriteTextFormat* This) { + return This->lpVtbl->GetFontWeight(This); +} +static inline DWRITE_FONT_STYLE IDWriteTextFormat_GetFontStyle(IDWriteTextFormat* This) { + return This->lpVtbl->GetFontStyle(This); +} +static inline DWRITE_FONT_STRETCH IDWriteTextFormat_GetFontStretch(IDWriteTextFormat* This) { + return This->lpVtbl->GetFontStretch(This); +} +static inline FLOAT IDWriteTextFormat_GetFontSize(IDWriteTextFormat* This) { + return This->lpVtbl->GetFontSize(This); +} +static inline UINT32 IDWriteTextFormat_GetLocaleNameLength(IDWriteTextFormat* This) { + return This->lpVtbl->GetLocaleNameLength(This); +} +static inline HRESULT IDWriteTextFormat_GetLocaleName(IDWriteTextFormat* This,WCHAR *name,UINT32 size) { + return This->lpVtbl->GetLocaleName(This,name,size); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextFormat_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTypography interface + */ +#ifndef __IDWriteTypography_INTERFACE_DEFINED__ +#define __IDWriteTypography_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTypography, 0x55f1112b, 0x1dc2, 0x4b3c, 0x95,0x41, 0xf4,0x68,0x94,0xed,0x85,0xb6); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("55f1112b-1dc2-4b3c-9541-f46894ed85b6") +IDWriteTypography : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE AddFontFeature( + DWRITE_FONT_FEATURE feature) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetFontFeatureCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFeature( + UINT32 index, + DWRITE_FONT_FEATURE *feature) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTypography, 0x55f1112b, 0x1dc2, 0x4b3c, 0x95,0x41, 0xf4,0x68,0x94,0xed,0x85,0xb6) +#endif +#else +typedef struct IDWriteTypographyVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTypography *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTypography *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTypography *This); + + /*** IDWriteTypography methods ***/ + HRESULT (STDMETHODCALLTYPE *AddFontFeature)( + IDWriteTypography *This, + DWRITE_FONT_FEATURE feature); + + UINT32 (STDMETHODCALLTYPE *GetFontFeatureCount)( + IDWriteTypography *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFeature)( + IDWriteTypography *This, + UINT32 index, + DWRITE_FONT_FEATURE *feature); + + END_INTERFACE +} IDWriteTypographyVtbl; + +interface IDWriteTypography { + CONST_VTBL IDWriteTypographyVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTypography_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTypography_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTypography_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTypography methods ***/ +#define IDWriteTypography_AddFontFeature(This,feature) (This)->lpVtbl->AddFontFeature(This,feature) +#define IDWriteTypography_GetFontFeatureCount(This) (This)->lpVtbl->GetFontFeatureCount(This) +#define IDWriteTypography_GetFontFeature(This,index,feature) (This)->lpVtbl->GetFontFeature(This,index,feature) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTypography_QueryInterface(IDWriteTypography* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTypography_AddRef(IDWriteTypography* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTypography_Release(IDWriteTypography* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTypography methods ***/ +static inline HRESULT IDWriteTypography_AddFontFeature(IDWriteTypography* This,DWRITE_FONT_FEATURE feature) { + return This->lpVtbl->AddFontFeature(This,feature); +} +static inline UINT32 IDWriteTypography_GetFontFeatureCount(IDWriteTypography* This) { + return This->lpVtbl->GetFontFeatureCount(This); +} +static inline HRESULT IDWriteTypography_GetFontFeature(IDWriteTypography* This,UINT32 index,DWRITE_FONT_FEATURE *feature) { + return This->lpVtbl->GetFontFeature(This,index,feature); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTypography_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteBitmapRenderTarget interface + */ +#ifndef __IDWriteBitmapRenderTarget_INTERFACE_DEFINED__ +#define __IDWriteBitmapRenderTarget_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteBitmapRenderTarget, 0x5e5a32a3, 0x8dff, 0x4773, 0x9f,0xf6, 0x06,0x96,0xea,0xb7,0x72,0x67); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("5e5a32a3-8dff-4773-9ff6-0696eab77267") +IDWriteBitmapRenderTarget : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE DrawGlyphRun( + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN *glyph_run, + IDWriteRenderingParams *params, + COLORREF textColor, + RECT *blackbox_rect = 0) = 0; + + virtual HDC STDMETHODCALLTYPE GetMemoryDC( + ) = 0; + + virtual FLOAT STDMETHODCALLTYPE GetPixelsPerDip( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPixelsPerDip( + FLOAT pixels_per_dip) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCurrentTransform( + DWRITE_MATRIX *transform) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCurrentTransform( + const DWRITE_MATRIX *transform) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSize( + SIZE *size) = 0; + + virtual HRESULT STDMETHODCALLTYPE Resize( + UINT32 width, + UINT32 height) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteBitmapRenderTarget, 0x5e5a32a3, 0x8dff, 0x4773, 0x9f,0xf6, 0x06,0x96,0xea,0xb7,0x72,0x67) +#endif +#else +typedef struct IDWriteBitmapRenderTargetVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteBitmapRenderTarget *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteBitmapRenderTarget *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteBitmapRenderTarget *This); + + /*** IDWriteBitmapRenderTarget methods ***/ + HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)( + IDWriteBitmapRenderTarget *This, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN *glyph_run, + IDWriteRenderingParams *params, + COLORREF textColor, + RECT *blackbox_rect); + + HDC (STDMETHODCALLTYPE *GetMemoryDC)( + IDWriteBitmapRenderTarget *This); + + FLOAT (STDMETHODCALLTYPE *GetPixelsPerDip)( + IDWriteBitmapRenderTarget *This); + + HRESULT (STDMETHODCALLTYPE *SetPixelsPerDip)( + IDWriteBitmapRenderTarget *This, + FLOAT pixels_per_dip); + + HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)( + IDWriteBitmapRenderTarget *This, + DWRITE_MATRIX *transform); + + HRESULT (STDMETHODCALLTYPE *SetCurrentTransform)( + IDWriteBitmapRenderTarget *This, + const DWRITE_MATRIX *transform); + + HRESULT (STDMETHODCALLTYPE *GetSize)( + IDWriteBitmapRenderTarget *This, + SIZE *size); + + HRESULT (STDMETHODCALLTYPE *Resize)( + IDWriteBitmapRenderTarget *This, + UINT32 width, + UINT32 height); + + END_INTERFACE +} IDWriteBitmapRenderTargetVtbl; + +interface IDWriteBitmapRenderTarget { + CONST_VTBL IDWriteBitmapRenderTargetVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteBitmapRenderTarget_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteBitmapRenderTarget_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteBitmapRenderTarget_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteBitmapRenderTarget methods ***/ +#define IDWriteBitmapRenderTarget_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) +#define IDWriteBitmapRenderTarget_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This) +#define IDWriteBitmapRenderTarget_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This) +#define IDWriteBitmapRenderTarget_SetPixelsPerDip(This,pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This,pixels_per_dip) +#define IDWriteBitmapRenderTarget_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform) +#define IDWriteBitmapRenderTarget_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform) +#define IDWriteBitmapRenderTarget_GetSize(This,size) (This)->lpVtbl->GetSize(This,size) +#define IDWriteBitmapRenderTarget_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteBitmapRenderTarget_QueryInterface(IDWriteBitmapRenderTarget* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteBitmapRenderTarget_AddRef(IDWriteBitmapRenderTarget* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteBitmapRenderTarget_Release(IDWriteBitmapRenderTarget* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteBitmapRenderTarget methods ***/ +static inline HRESULT IDWriteBitmapRenderTarget_DrawGlyphRun(IDWriteBitmapRenderTarget* This,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *glyph_run,IDWriteRenderingParams *params,COLORREF textColor,RECT *blackbox_rect) { + return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect); +} +static inline HDC IDWriteBitmapRenderTarget_GetMemoryDC(IDWriteBitmapRenderTarget* This) { + return This->lpVtbl->GetMemoryDC(This); +} +static inline FLOAT IDWriteBitmapRenderTarget_GetPixelsPerDip(IDWriteBitmapRenderTarget* This) { + return This->lpVtbl->GetPixelsPerDip(This); +} +static inline HRESULT IDWriteBitmapRenderTarget_SetPixelsPerDip(IDWriteBitmapRenderTarget* This,FLOAT pixels_per_dip) { + return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip); +} +static inline HRESULT IDWriteBitmapRenderTarget_GetCurrentTransform(IDWriteBitmapRenderTarget* This,DWRITE_MATRIX *transform) { + return This->lpVtbl->GetCurrentTransform(This,transform); +} +static inline HRESULT IDWriteBitmapRenderTarget_SetCurrentTransform(IDWriteBitmapRenderTarget* This,const DWRITE_MATRIX *transform) { + return This->lpVtbl->SetCurrentTransform(This,transform); +} +static inline HRESULT IDWriteBitmapRenderTarget_GetSize(IDWriteBitmapRenderTarget* This,SIZE *size) { + return This->lpVtbl->GetSize(This,size); +} +static inline HRESULT IDWriteBitmapRenderTarget_Resize(IDWriteBitmapRenderTarget* This,UINT32 width,UINT32 height) { + return This->lpVtbl->Resize(This,width,height); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteBitmapRenderTarget_INTERFACE_DEFINED__ */ + +#ifndef _WINGDI_ +typedef struct tagLOGFONTW { + LONG lfHeight; + LONG lfWidth; + LONG lfEscapement; + LONG lfOrientation; + LONG lfWeight; + BYTE lfItalic; + BYTE lfUnderline; + BYTE lfStrikeOut; + BYTE lfCharSet; + BYTE lfOutPrecision; + BYTE lfClipPrecision; + BYTE lfQuality; + BYTE lfPitchAndFamily; + WCHAR lfFaceName[32]; +} LOGFONTW; +typedef struct tagLOGFONTW *PLOGFONTW; +typedef struct tagLOGFONTW *LPLOGFONTW; +#endif /* _WINGDI_ */ +/***************************************************************************** + * IDWriteGdiInterop interface + */ +#ifndef __IDWriteGdiInterop_INTERFACE_DEFINED__ +#define __IDWriteGdiInterop_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteGdiInterop, 0x1edd9491, 0x9853, 0x4299, 0x89,0x8f, 0x64,0x32,0x98,0x3b,0x6f,0x3a); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("1edd9491-9853-4299-898f-6432983b6f3a") +IDWriteGdiInterop : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE CreateFontFromLOGFONT( + const LOGFONTW *logfont, + IDWriteFont **font) = 0; + + virtual HRESULT STDMETHODCALLTYPE ConvertFontToLOGFONT( + IDWriteFont *font, + LOGFONTW *logfont, + WINBOOL *is_systemfont) = 0; + + virtual HRESULT STDMETHODCALLTYPE ConvertFontFaceToLOGFONT( + IDWriteFontFace *font, + LOGFONTW *logfont) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFaceFromHdc( + HDC hdc, + IDWriteFontFace **fontface) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateBitmapRenderTarget( + HDC hdc, + UINT32 width, + UINT32 height, + IDWriteBitmapRenderTarget **target) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteGdiInterop, 0x1edd9491, 0x9853, 0x4299, 0x89,0x8f, 0x64,0x32,0x98,0x3b,0x6f,0x3a) +#endif +#else +typedef struct IDWriteGdiInteropVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteGdiInterop *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteGdiInterop *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteGdiInterop *This); + + /*** IDWriteGdiInterop methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateFontFromLOGFONT)( + IDWriteGdiInterop *This, + const LOGFONTW *logfont, + IDWriteFont **font); + + HRESULT (STDMETHODCALLTYPE *ConvertFontToLOGFONT)( + IDWriteGdiInterop *This, + IDWriteFont *font, + LOGFONTW *logfont, + WINBOOL *is_systemfont); + + HRESULT (STDMETHODCALLTYPE *ConvertFontFaceToLOGFONT)( + IDWriteGdiInterop *This, + IDWriteFontFace *font, + LOGFONTW *logfont); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceFromHdc)( + IDWriteGdiInterop *This, + HDC hdc, + IDWriteFontFace **fontface); + + HRESULT (STDMETHODCALLTYPE *CreateBitmapRenderTarget)( + IDWriteGdiInterop *This, + HDC hdc, + UINT32 width, + UINT32 height, + IDWriteBitmapRenderTarget **target); + + END_INTERFACE +} IDWriteGdiInteropVtbl; + +interface IDWriteGdiInterop { + CONST_VTBL IDWriteGdiInteropVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteGdiInterop_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteGdiInterop_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteGdiInterop_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteGdiInterop methods ***/ +#define IDWriteGdiInterop_CreateFontFromLOGFONT(This,logfont,font) (This)->lpVtbl->CreateFontFromLOGFONT(This,logfont,font) +#define IDWriteGdiInterop_ConvertFontToLOGFONT(This,font,logfont,is_systemfont) (This)->lpVtbl->ConvertFontToLOGFONT(This,font,logfont,is_systemfont) +#define IDWriteGdiInterop_ConvertFontFaceToLOGFONT(This,font,logfont) (This)->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logfont) +#define IDWriteGdiInterop_CreateFontFaceFromHdc(This,hdc,fontface) (This)->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontface) +#define IDWriteGdiInterop_CreateBitmapRenderTarget(This,hdc,width,height,target) (This)->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,target) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteGdiInterop_QueryInterface(IDWriteGdiInterop* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteGdiInterop_AddRef(IDWriteGdiInterop* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteGdiInterop_Release(IDWriteGdiInterop* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteGdiInterop methods ***/ +static inline HRESULT IDWriteGdiInterop_CreateFontFromLOGFONT(IDWriteGdiInterop* This,const LOGFONTW *logfont,IDWriteFont **font) { + return This->lpVtbl->CreateFontFromLOGFONT(This,logfont,font); +} +static inline HRESULT IDWriteGdiInterop_ConvertFontToLOGFONT(IDWriteGdiInterop* This,IDWriteFont *font,LOGFONTW *logfont,WINBOOL *is_systemfont) { + return This->lpVtbl->ConvertFontToLOGFONT(This,font,logfont,is_systemfont); +} +static inline HRESULT IDWriteGdiInterop_ConvertFontFaceToLOGFONT(IDWriteGdiInterop* This,IDWriteFontFace *font,LOGFONTW *logfont) { + return This->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logfont); +} +static inline HRESULT IDWriteGdiInterop_CreateFontFaceFromHdc(IDWriteGdiInterop* This,HDC hdc,IDWriteFontFace **fontface) { + return This->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontface); +} +static inline HRESULT IDWriteGdiInterop_CreateBitmapRenderTarget(IDWriteGdiInterop* This,HDC hdc,UINT32 width,UINT32 height,IDWriteBitmapRenderTarget **target) { + return This->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,target); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteGdiInterop_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextLayout interface + */ +#ifndef __IDWriteTextLayout_INTERFACE_DEFINED__ +#define __IDWriteTextLayout_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextLayout, 0x53737037, 0x6d14, 0x410b, 0x9b,0xfe, 0x0b,0x18,0x2b,0xb7,0x09,0x61); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("53737037-6d14-410b-9bfe-0b182bb70961") +IDWriteTextLayout : public IDWriteTextFormat +{ + virtual HRESULT STDMETHODCALLTYPE SetMaxWidth( + FLOAT maxWidth) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetMaxHeight( + FLOAT maxHeight) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFontCollection( + IDWriteFontCollection *collection, + DWRITE_TEXT_RANGE range) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFontFamilyName( + const WCHAR *name, + DWRITE_TEXT_RANGE range) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFontWeight( + DWRITE_FONT_WEIGHT weight, + DWRITE_TEXT_RANGE range) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFontStyle( + DWRITE_FONT_STYLE style, + DWRITE_TEXT_RANGE range) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFontStretch( + DWRITE_FONT_STRETCH stretch, + DWRITE_TEXT_RANGE range) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFontSize( + FLOAT size, + DWRITE_TEXT_RANGE range) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetUnderline( + WINBOOL underline, + DWRITE_TEXT_RANGE range) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetStrikethrough( + WINBOOL strikethrough, + DWRITE_TEXT_RANGE range) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetDrawingEffect( + IUnknown *effect, + DWRITE_TEXT_RANGE range) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetInlineObject( + IDWriteInlineObject *object, + DWRITE_TEXT_RANGE range) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetTypography( + IDWriteTypography *typography, + DWRITE_TEXT_RANGE range) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetLocaleName( + const WCHAR *locale, + DWRITE_TEXT_RANGE range) = 0; + + virtual FLOAT STDMETHODCALLTYPE GetMaxWidth( + ) = 0; + + virtual FLOAT STDMETHODCALLTYPE GetMaxHeight( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontCollection( + UINT32 pos, + IDWriteFontCollection **collection, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFamilyNameLength( + UINT32 pos, + UINT32 *len, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFamilyName( + UINT32 position, + WCHAR *name, + UINT32 name_size, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontWeight( + UINT32 position, + DWRITE_FONT_WEIGHT *weight, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontStyle( + UINT32 currentPosition, + DWRITE_FONT_STYLE *style, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontStretch( + UINT32 position, + DWRITE_FONT_STRETCH *stretch, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontSize( + UINT32 position, + FLOAT *size, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetUnderline( + UINT32 position, + WINBOOL *has_underline, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetStrikethrough( + UINT32 position, + WINBOOL *has_strikethrough, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDrawingEffect( + UINT32 position, + IUnknown **effect, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetInlineObject( + UINT32 position, + IDWriteInlineObject **object, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTypography( + UINT32 position, + IDWriteTypography **typography, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLocaleNameLength( + UINT32 position, + UINT32 *length, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLocaleName( + UINT32 position, + WCHAR *name, + UINT32 name_size, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE Draw( + void *context, + IDWriteTextRenderer *renderer, + FLOAT originX, + FLOAT originY) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLineMetrics( + DWRITE_LINE_METRICS *metrics, + UINT32 max_count, + UINT32 *actual_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMetrics( + DWRITE_TEXT_METRICS *metrics) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetOverhangMetrics( + DWRITE_OVERHANG_METRICS *overhangs) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetClusterMetrics( + DWRITE_CLUSTER_METRICS *metrics, + UINT32 max_count, + UINT32 *act_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE DetermineMinWidth( + FLOAT *min_width) = 0; + + virtual HRESULT STDMETHODCALLTYPE HitTestPoint( + FLOAT pointX, + FLOAT pointY, + WINBOOL *is_trailinghit, + WINBOOL *is_inside, + DWRITE_HIT_TEST_METRICS *metrics) = 0; + + virtual HRESULT STDMETHODCALLTYPE HitTestTextPosition( + UINT32 textPosition, + WINBOOL is_trailinghit, + FLOAT *pointX, + FLOAT *pointY, + DWRITE_HIT_TEST_METRICS *metrics) = 0; + + virtual HRESULT STDMETHODCALLTYPE HitTestTextRange( + UINT32 textPosition, + UINT32 textLength, + FLOAT originX, + FLOAT originY, + DWRITE_HIT_TEST_METRICS *metrics, + UINT32 max_metricscount, + UINT32 *actual_metricscount) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextLayout, 0x53737037, 0x6d14, 0x410b, 0x9b,0xfe, 0x0b,0x18,0x2b,0xb7,0x09,0x61) +#endif +#else +typedef struct IDWriteTextLayoutVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextLayout *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextLayout *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextLayout *This); + + /*** IDWriteTextFormat methods ***/ + HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( + IDWriteTextLayout *This, + DWRITE_TEXT_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( + IDWriteTextLayout *This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( + IDWriteTextLayout *This, + DWRITE_WORD_WRAPPING wrapping); + + HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( + IDWriteTextLayout *This, + DWRITE_READING_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( + IDWriteTextLayout *This, + DWRITE_FLOW_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( + IDWriteTextLayout *This, + FLOAT tabstop); + + HRESULT (STDMETHODCALLTYPE *SetTrimming)( + IDWriteTextLayout *This, + const DWRITE_TRIMMING *trimming, + IDWriteInlineObject *trimming_sign); + + HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( + IDWriteTextLayout *This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); + + DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( + IDWriteTextLayout *This); + + DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( + IDWriteTextLayout *This); + + DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( + IDWriteTextLayout *This); + + DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( + IDWriteTextLayout *This); + + DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( + IDWriteTextLayout *This); + + FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( + IDWriteTextLayout *This); + + HRESULT (STDMETHODCALLTYPE *GetTrimming)( + IDWriteTextLayout *This, + DWRITE_TRIMMING *options, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( + IDWriteTextLayout *This, + DWRITE_LINE_SPACING_METHOD *method, + FLOAT *spacing, + FLOAT *baseline); + + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteTextLayout *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( + IDWriteTextLayout *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( + IDWriteTextLayout *This, + WCHAR *name, + UINT32 size); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( + IDWriteTextLayout *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( + IDWriteTextLayout *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( + IDWriteTextLayout *This); + + FLOAT (STDMETHODCALLTYPE *GetFontSize)( + IDWriteTextLayout *This); + + UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( + IDWriteTextLayout *This); + + HRESULT (STDMETHODCALLTYPE *GetLocaleName)( + IDWriteTextLayout *This, + WCHAR *name, + UINT32 size); + + /*** IDWriteTextLayout methods ***/ + HRESULT (STDMETHODCALLTYPE *SetMaxWidth)( + IDWriteTextLayout *This, + FLOAT maxWidth); + + HRESULT (STDMETHODCALLTYPE *SetMaxHeight)( + IDWriteTextLayout *This, + FLOAT maxHeight); + + HRESULT (STDMETHODCALLTYPE *SetFontCollection)( + IDWriteTextLayout *This, + IDWriteFontCollection *collection, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)( + IDWriteTextLayout *This, + const WCHAR *name, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontWeight)( + IDWriteTextLayout *This, + DWRITE_FONT_WEIGHT weight, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontStyle)( + IDWriteTextLayout *This, + DWRITE_FONT_STYLE style, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontStretch)( + IDWriteTextLayout *This, + DWRITE_FONT_STRETCH stretch, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontSize)( + IDWriteTextLayout *This, + FLOAT size, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetUnderline)( + IDWriteTextLayout *This, + WINBOOL underline, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetStrikethrough)( + IDWriteTextLayout *This, + WINBOOL strikethrough, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)( + IDWriteTextLayout *This, + IUnknown *effect, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetInlineObject)( + IDWriteTextLayout *This, + IDWriteInlineObject *object, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetTypography)( + IDWriteTextLayout *This, + IDWriteTypography *typography, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetLocaleName)( + IDWriteTextLayout *This, + const WCHAR *locale, + DWRITE_TEXT_RANGE range); + + FLOAT (STDMETHODCALLTYPE *GetMaxWidth)( + IDWriteTextLayout *This); + + FLOAT (STDMETHODCALLTYPE *GetMaxHeight)( + IDWriteTextLayout *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)( + IDWriteTextLayout *This, + UINT32 pos, + IDWriteFontCollection **collection, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)( + IDWriteTextLayout *This, + UINT32 pos, + UINT32 *len, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)( + IDWriteTextLayout *This, + UINT32 position, + WCHAR *name, + UINT32 name_size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)( + IDWriteTextLayout *This, + UINT32 position, + DWRITE_FONT_WEIGHT *weight, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)( + IDWriteTextLayout *This, + UINT32 currentPosition, + DWRITE_FONT_STYLE *style, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)( + IDWriteTextLayout *This, + UINT32 position, + DWRITE_FONT_STRETCH *stretch, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)( + IDWriteTextLayout *This, + UINT32 position, + FLOAT *size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetUnderline)( + IDWriteTextLayout *This, + UINT32 position, + WINBOOL *has_underline, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetStrikethrough)( + IDWriteTextLayout *This, + UINT32 position, + WINBOOL *has_strikethrough, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)( + IDWriteTextLayout *This, + UINT32 position, + IUnknown **effect, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetInlineObject)( + IDWriteTextLayout *This, + UINT32 position, + IDWriteInlineObject **object, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetTypography)( + IDWriteTextLayout *This, + UINT32 position, + IDWriteTypography **typography, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)( + IDWriteTextLayout *This, + UINT32 position, + UINT32 *length, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)( + IDWriteTextLayout *This, + UINT32 position, + WCHAR *name, + UINT32 name_size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *Draw)( + IDWriteTextLayout *This, + void *context, + IDWriteTextRenderer *renderer, + FLOAT originX, + FLOAT originY); + + HRESULT (STDMETHODCALLTYPE *GetLineMetrics)( + IDWriteTextLayout *This, + DWRITE_LINE_METRICS *metrics, + UINT32 max_count, + UINT32 *actual_count); + + HRESULT (STDMETHODCALLTYPE *GetMetrics)( + IDWriteTextLayout *This, + DWRITE_TEXT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)( + IDWriteTextLayout *This, + DWRITE_OVERHANG_METRICS *overhangs); + + HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)( + IDWriteTextLayout *This, + DWRITE_CLUSTER_METRICS *metrics, + UINT32 max_count, + UINT32 *act_count); + + HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)( + IDWriteTextLayout *This, + FLOAT *min_width); + + HRESULT (STDMETHODCALLTYPE *HitTestPoint)( + IDWriteTextLayout *This, + FLOAT pointX, + FLOAT pointY, + WINBOOL *is_trailinghit, + WINBOOL *is_inside, + DWRITE_HIT_TEST_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)( + IDWriteTextLayout *This, + UINT32 textPosition, + WINBOOL is_trailinghit, + FLOAT *pointX, + FLOAT *pointY, + DWRITE_HIT_TEST_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *HitTestTextRange)( + IDWriteTextLayout *This, + UINT32 textPosition, + UINT32 textLength, + FLOAT originX, + FLOAT originY, + DWRITE_HIT_TEST_METRICS *metrics, + UINT32 max_metricscount, + UINT32 *actual_metricscount); + + END_INTERFACE +} IDWriteTextLayoutVtbl; + +interface IDWriteTextLayout { + CONST_VTBL IDWriteTextLayoutVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextLayout_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextLayout_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextLayout_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextFormat methods ***/ +#define IDWriteTextLayout_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) +#define IDWriteTextLayout_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) +#define IDWriteTextLayout_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) +#define IDWriteTextLayout_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) +#define IDWriteTextLayout_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) +#define IDWriteTextLayout_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) +#define IDWriteTextLayout_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) +#define IDWriteTextLayout_SetLineSpacing(This,spacing,line_spacing,baseline) (This)->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline) +#define IDWriteTextLayout_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) +#define IDWriteTextLayout_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) +#define IDWriteTextLayout_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) +#define IDWriteTextLayout_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) +#define IDWriteTextLayout_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) +#define IDWriteTextLayout_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) +#define IDWriteTextLayout_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) +#define IDWriteTextLayout_GetLineSpacing(This,method,spacing,baseline) (This)->lpVtbl->GetLineSpacing(This,method,spacing,baseline) +/*** IDWriteTextLayout methods ***/ +#define IDWriteTextLayout_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth) +#define IDWriteTextLayout_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight) +#define IDWriteTextLayout_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range) +#define IDWriteTextLayout_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range) +#define IDWriteTextLayout_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range) +#define IDWriteTextLayout_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range) +#define IDWriteTextLayout_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range) +#define IDWriteTextLayout_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range) +#define IDWriteTextLayout_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range) +#define IDWriteTextLayout_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range) +#define IDWriteTextLayout_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range) +#define IDWriteTextLayout_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range) +#define IDWriteTextLayout_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range) +#define IDWriteTextLayout_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range) +#define IDWriteTextLayout_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This) +#define IDWriteTextLayout_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This) +#define IDWriteTextLayout_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range) +#define IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range) +#define IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range) +#define IDWriteTextLayout_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range) +#define IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range) +#define IDWriteTextLayout_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range) +#define IDWriteTextLayout_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range) +#define IDWriteTextLayout_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range) +#define IDWriteTextLayout_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range) +#define IDWriteTextLayout_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range) +#define IDWriteTextLayout_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range) +#define IDWriteTextLayout_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range) +#define IDWriteTextLayout_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range) +#define IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range) +#define IDWriteTextLayout_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY) +#define IDWriteTextLayout_GetLineMetrics(This,metrics,max_count,actual_count) (This)->lpVtbl->GetLineMetrics(This,metrics,max_count,actual_count) +#define IDWriteTextLayout_GetMetrics(This,metrics) (This)->lpVtbl->GetMetrics(This,metrics) +#define IDWriteTextLayout_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs) +#define IDWriteTextLayout_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count) +#define IDWriteTextLayout_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width) +#define IDWriteTextLayout_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) +#define IDWriteTextLayout_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) +#define IDWriteTextLayout_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextLayout_QueryInterface(IDWriteTextLayout* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextLayout_AddRef(IDWriteTextLayout* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextLayout_Release(IDWriteTextLayout* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextFormat methods ***/ +static inline HRESULT IDWriteTextLayout_SetTextAlignment(IDWriteTextLayout* This,DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This,alignment); +} +static inline HRESULT IDWriteTextLayout_SetParagraphAlignment(IDWriteTextLayout* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This,alignment); +} +static inline HRESULT IDWriteTextLayout_SetWordWrapping(IDWriteTextLayout* This,DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This,wrapping); +} +static inline HRESULT IDWriteTextLayout_SetReadingDirection(IDWriteTextLayout* This,DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This,direction); +} +static inline HRESULT IDWriteTextLayout_SetFlowDirection(IDWriteTextLayout* This,DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This,direction); +} +static inline HRESULT IDWriteTextLayout_SetIncrementalTabStop(IDWriteTextLayout* This,FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +} +static inline HRESULT IDWriteTextLayout_SetTrimming(IDWriteTextLayout* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { + return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +} +static inline HRESULT IDWriteTextLayout_SetLineSpacing(IDWriteTextLayout* This,DWRITE_LINE_SPACING_METHOD spacing,FLOAT line_spacing,FLOAT baseline) { + return This->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline); +} +static inline DWRITE_TEXT_ALIGNMENT IDWriteTextLayout_GetTextAlignment(IDWriteTextLayout* This) { + return This->lpVtbl->GetTextAlignment(This); +} +static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout_GetParagraphAlignment(IDWriteTextLayout* This) { + return This->lpVtbl->GetParagraphAlignment(This); +} +static inline DWRITE_WORD_WRAPPING IDWriteTextLayout_GetWordWrapping(IDWriteTextLayout* This) { + return This->lpVtbl->GetWordWrapping(This); +} +static inline DWRITE_READING_DIRECTION IDWriteTextLayout_GetReadingDirection(IDWriteTextLayout* This) { + return This->lpVtbl->GetReadingDirection(This); +} +static inline DWRITE_FLOW_DIRECTION IDWriteTextLayout_GetFlowDirection(IDWriteTextLayout* This) { + return This->lpVtbl->GetFlowDirection(This); +} +static inline FLOAT IDWriteTextLayout_GetIncrementalTabStop(IDWriteTextLayout* This) { + return This->lpVtbl->GetIncrementalTabStop(This); +} +static inline HRESULT IDWriteTextLayout_GetTrimming(IDWriteTextLayout* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->GetTrimming(This,options,trimming_sign); +} +static inline HRESULT IDWriteTextLayout_GetLineSpacing(IDWriteTextLayout* This,DWRITE_LINE_SPACING_METHOD *method,FLOAT *spacing,FLOAT *baseline) { + return This->lpVtbl->GetLineSpacing(This,method,spacing,baseline); +} +/*** IDWriteTextLayout methods ***/ +static inline HRESULT IDWriteTextLayout_SetMaxWidth(IDWriteTextLayout* This,FLOAT maxWidth) { + return This->lpVtbl->SetMaxWidth(This,maxWidth); +} +static inline HRESULT IDWriteTextLayout_SetMaxHeight(IDWriteTextLayout* This,FLOAT maxHeight) { + return This->lpVtbl->SetMaxHeight(This,maxHeight); +} +static inline HRESULT IDWriteTextLayout_SetFontCollection(IDWriteTextLayout* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontCollection(This,collection,range); +} +static inline HRESULT IDWriteTextLayout_SetFontFamilyName(IDWriteTextLayout* This,const WCHAR *name,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontFamilyName(This,name,range); +} +static inline HRESULT IDWriteTextLayout_SetFontWeight(IDWriteTextLayout* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontWeight(This,weight,range); +} +static inline HRESULT IDWriteTextLayout_SetFontStyle(IDWriteTextLayout* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStyle(This,style,range); +} +static inline HRESULT IDWriteTextLayout_SetFontStretch(IDWriteTextLayout* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStretch(This,stretch,range); +} +static inline HRESULT IDWriteTextLayout_SetFontSize(IDWriteTextLayout* This,FLOAT size,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontSize(This,size,range); +} +static inline HRESULT IDWriteTextLayout_SetUnderline(IDWriteTextLayout* This,WINBOOL underline,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetUnderline(This,underline,range); +} +static inline HRESULT IDWriteTextLayout_SetStrikethrough(IDWriteTextLayout* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetStrikethrough(This,strikethrough,range); +} +static inline HRESULT IDWriteTextLayout_SetDrawingEffect(IDWriteTextLayout* This,IUnknown *effect,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetDrawingEffect(This,effect,range); +} +static inline HRESULT IDWriteTextLayout_SetInlineObject(IDWriteTextLayout* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetInlineObject(This,object,range); +} +static inline HRESULT IDWriteTextLayout_SetTypography(IDWriteTextLayout* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetTypography(This,typography,range); +} +static inline HRESULT IDWriteTextLayout_SetLocaleName(IDWriteTextLayout* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetLocaleName(This,locale,range); +} +static inline FLOAT IDWriteTextLayout_GetMaxWidth(IDWriteTextLayout* This) { + return This->lpVtbl->GetMaxWidth(This); +} +static inline FLOAT IDWriteTextLayout_GetMaxHeight(IDWriteTextLayout* This) { + return This->lpVtbl->GetMaxHeight(This); +} +static inline HRESULT IDWriteTextLayout_GetFontCollection(IDWriteTextLayout* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range); +} +static inline HRESULT IDWriteTextLayout_GetFontFamilyNameLength(IDWriteTextLayout* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range); +} +static inline HRESULT IDWriteTextLayout_GetFontFamilyName(IDWriteTextLayout* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range); +} +static inline HRESULT IDWriteTextLayout_GetFontWeight(IDWriteTextLayout* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range); +} +static inline HRESULT IDWriteTextLayout_GetFontStyle(IDWriteTextLayout* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range); +} +static inline HRESULT IDWriteTextLayout_GetFontStretch(IDWriteTextLayout* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range); +} +static inline HRESULT IDWriteTextLayout_GetFontSize(IDWriteTextLayout* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range); +} +static inline HRESULT IDWriteTextLayout_GetUnderline(IDWriteTextLayout* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetUnderline(This,position,has_underline,range); +} +static inline HRESULT IDWriteTextLayout_GetStrikethrough(IDWriteTextLayout* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range); +} +static inline HRESULT IDWriteTextLayout_GetDrawingEffect(IDWriteTextLayout* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetDrawingEffect(This,position,effect,range); +} +static inline HRESULT IDWriteTextLayout_GetInlineObject(IDWriteTextLayout* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetInlineObject(This,position,object,range); +} +static inline HRESULT IDWriteTextLayout_GetTypography(IDWriteTextLayout* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetTypography(This,position,typography,range); +} +static inline HRESULT IDWriteTextLayout_GetLocaleNameLength(IDWriteTextLayout* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range); +} +static inline HRESULT IDWriteTextLayout_GetLocaleName(IDWriteTextLayout* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range); +} +static inline HRESULT IDWriteTextLayout_Draw(IDWriteTextLayout* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) { + return This->lpVtbl->Draw(This,context,renderer,originX,originY); +} +static inline HRESULT IDWriteTextLayout_GetLineMetrics(IDWriteTextLayout* This,DWRITE_LINE_METRICS *metrics,UINT32 max_count,UINT32 *actual_count) { + return This->lpVtbl->GetLineMetrics(This,metrics,max_count,actual_count); +} +static inline HRESULT IDWriteTextLayout_GetMetrics(IDWriteTextLayout* This,DWRITE_TEXT_METRICS *metrics) { + return This->lpVtbl->GetMetrics(This,metrics); +} +static inline HRESULT IDWriteTextLayout_GetOverhangMetrics(IDWriteTextLayout* This,DWRITE_OVERHANG_METRICS *overhangs) { + return This->lpVtbl->GetOverhangMetrics(This,overhangs); +} +static inline HRESULT IDWriteTextLayout_GetClusterMetrics(IDWriteTextLayout* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) { + return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count); +} +static inline HRESULT IDWriteTextLayout_DetermineMinWidth(IDWriteTextLayout* This,FLOAT *min_width) { + return This->lpVtbl->DetermineMinWidth(This,min_width); +} +static inline HRESULT IDWriteTextLayout_HitTestPoint(IDWriteTextLayout* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) { + return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics); +} +static inline HRESULT IDWriteTextLayout_HitTestTextPosition(IDWriteTextLayout* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) { + return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics); +} +static inline HRESULT IDWriteTextLayout_HitTestTextRange(IDWriteTextLayout* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) { + return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextLayout_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteNumberSubstitution interface + */ +#ifndef __IDWriteNumberSubstitution_INTERFACE_DEFINED__ +#define __IDWriteNumberSubstitution_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteNumberSubstitution, 0x14885cc9, 0xbab0, 0x4f90, 0xb6,0xed, 0x5c,0x36,0x6a,0x2c,0xd0,0x3d); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("14885cc9-bab0-4f90-b6ed-5c366a2cd03d") +IDWriteNumberSubstitution : public IUnknown +{ +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteNumberSubstitution, 0x14885cc9, 0xbab0, 0x4f90, 0xb6,0xed, 0x5c,0x36,0x6a,0x2c,0xd0,0x3d) +#endif +#else +typedef struct IDWriteNumberSubstitutionVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteNumberSubstitution *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteNumberSubstitution *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteNumberSubstitution *This); + + END_INTERFACE +} IDWriteNumberSubstitutionVtbl; + +interface IDWriteNumberSubstitution { + CONST_VTBL IDWriteNumberSubstitutionVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteNumberSubstitution_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteNumberSubstitution_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteNumberSubstitution_Release(This) (This)->lpVtbl->Release(This) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteNumberSubstitution_QueryInterface(IDWriteNumberSubstitution* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteNumberSubstitution_AddRef(IDWriteNumberSubstitution* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteNumberSubstitution_Release(IDWriteNumberSubstitution* This) { + return This->lpVtbl->Release(This); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteNumberSubstitution_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextAnalysisSource interface + */ +#ifndef __IDWriteTextAnalysisSource_INTERFACE_DEFINED__ +#define __IDWriteTextAnalysisSource_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextAnalysisSource, 0x688e1a58, 0x5094, 0x47c8, 0xad,0xc8, 0xfb,0xce,0xa6,0x0a,0xe9,0x2b); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("688e1a58-5094-47c8-adc8-fbcea60ae92b") +IDWriteTextAnalysisSource : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetTextAtPosition( + UINT32 position, + const WCHAR **text, + UINT32 *text_len) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTextBeforePosition( + UINT32 position, + const WCHAR **text, + UINT32 *text_len) = 0; + + virtual DWRITE_READING_DIRECTION STDMETHODCALLTYPE GetParagraphReadingDirection( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLocaleName( + UINT32 position, + UINT32 *text_len, + const WCHAR **locale) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetNumberSubstitution( + UINT32 position, + UINT32 *text_len, + IDWriteNumberSubstitution **substitution) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextAnalysisSource, 0x688e1a58, 0x5094, 0x47c8, 0xad,0xc8, 0xfb,0xce,0xa6,0x0a,0xe9,0x2b) +#endif +#else +typedef struct IDWriteTextAnalysisSourceVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextAnalysisSource *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextAnalysisSource *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextAnalysisSource *This); + + /*** IDWriteTextAnalysisSource methods ***/ + HRESULT (STDMETHODCALLTYPE *GetTextAtPosition)( + IDWriteTextAnalysisSource *This, + UINT32 position, + const WCHAR **text, + UINT32 *text_len); + + HRESULT (STDMETHODCALLTYPE *GetTextBeforePosition)( + IDWriteTextAnalysisSource *This, + UINT32 position, + const WCHAR **text, + UINT32 *text_len); + + DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetParagraphReadingDirection)( + IDWriteTextAnalysisSource *This); + + HRESULT (STDMETHODCALLTYPE *GetLocaleName)( + IDWriteTextAnalysisSource *This, + UINT32 position, + UINT32 *text_len, + const WCHAR **locale); + + HRESULT (STDMETHODCALLTYPE *GetNumberSubstitution)( + IDWriteTextAnalysisSource *This, + UINT32 position, + UINT32 *text_len, + IDWriteNumberSubstitution **substitution); + + END_INTERFACE +} IDWriteTextAnalysisSourceVtbl; + +interface IDWriteTextAnalysisSource { + CONST_VTBL IDWriteTextAnalysisSourceVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextAnalysisSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextAnalysisSource_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextAnalysisSource_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextAnalysisSource methods ***/ +#define IDWriteTextAnalysisSource_GetTextAtPosition(This,position,text,text_len) (This)->lpVtbl->GetTextAtPosition(This,position,text,text_len) +#define IDWriteTextAnalysisSource_GetTextBeforePosition(This,position,text,text_len) (This)->lpVtbl->GetTextBeforePosition(This,position,text,text_len) +#define IDWriteTextAnalysisSource_GetParagraphReadingDirection(This) (This)->lpVtbl->GetParagraphReadingDirection(This) +#define IDWriteTextAnalysisSource_GetLocaleName(This,position,text_len,locale) (This)->lpVtbl->GetLocaleName(This,position,text_len,locale) +#define IDWriteTextAnalysisSource_GetNumberSubstitution(This,position,text_len,substitution) (This)->lpVtbl->GetNumberSubstitution(This,position,text_len,substitution) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextAnalysisSource_QueryInterface(IDWriteTextAnalysisSource* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextAnalysisSource_AddRef(IDWriteTextAnalysisSource* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextAnalysisSource_Release(IDWriteTextAnalysisSource* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextAnalysisSource methods ***/ +static inline HRESULT IDWriteTextAnalysisSource_GetTextAtPosition(IDWriteTextAnalysisSource* This,UINT32 position,const WCHAR **text,UINT32 *text_len) { + return This->lpVtbl->GetTextAtPosition(This,position,text,text_len); +} +static inline HRESULT IDWriteTextAnalysisSource_GetTextBeforePosition(IDWriteTextAnalysisSource* This,UINT32 position,const WCHAR **text,UINT32 *text_len) { + return This->lpVtbl->GetTextBeforePosition(This,position,text,text_len); +} +static inline DWRITE_READING_DIRECTION IDWriteTextAnalysisSource_GetParagraphReadingDirection(IDWriteTextAnalysisSource* This) { + return This->lpVtbl->GetParagraphReadingDirection(This); +} +static inline HRESULT IDWriteTextAnalysisSource_GetLocaleName(IDWriteTextAnalysisSource* This,UINT32 position,UINT32 *text_len,const WCHAR **locale) { + return This->lpVtbl->GetLocaleName(This,position,text_len,locale); +} +static inline HRESULT IDWriteTextAnalysisSource_GetNumberSubstitution(IDWriteTextAnalysisSource* This,UINT32 position,UINT32 *text_len,IDWriteNumberSubstitution **substitution) { + return This->lpVtbl->GetNumberSubstitution(This,position,text_len,substitution); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextAnalysisSource_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextAnalysisSink interface + */ +#ifndef __IDWriteTextAnalysisSink_INTERFACE_DEFINED__ +#define __IDWriteTextAnalysisSink_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextAnalysisSink, 0x5810cd44, 0x0ca0, 0x4701, 0xb3,0xfa, 0xbe,0xc5,0x18,0x2a,0xe4,0xf6); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("5810cd44-0ca0-4701-b3fa-bec5182ae4f6") +IDWriteTextAnalysisSink : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetScriptAnalysis( + UINT32 position, + UINT32 length, + const DWRITE_SCRIPT_ANALYSIS *scriptanalysis) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetLineBreakpoints( + UINT32 position, + UINT32 length, + const DWRITE_LINE_BREAKPOINT *breakpoints) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetBidiLevel( + UINT32 position, + UINT32 length, + UINT8 explicitLevel, + UINT8 resolvedLevel) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetNumberSubstitution( + UINT32 position, + UINT32 length, + IDWriteNumberSubstitution *substitution) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextAnalysisSink, 0x5810cd44, 0x0ca0, 0x4701, 0xb3,0xfa, 0xbe,0xc5,0x18,0x2a,0xe4,0xf6) +#endif +#else +typedef struct IDWriteTextAnalysisSinkVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextAnalysisSink *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextAnalysisSink *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextAnalysisSink *This); + + /*** IDWriteTextAnalysisSink methods ***/ + HRESULT (STDMETHODCALLTYPE *SetScriptAnalysis)( + IDWriteTextAnalysisSink *This, + UINT32 position, + UINT32 length, + const DWRITE_SCRIPT_ANALYSIS *scriptanalysis); + + HRESULT (STDMETHODCALLTYPE *SetLineBreakpoints)( + IDWriteTextAnalysisSink *This, + UINT32 position, + UINT32 length, + const DWRITE_LINE_BREAKPOINT *breakpoints); + + HRESULT (STDMETHODCALLTYPE *SetBidiLevel)( + IDWriteTextAnalysisSink *This, + UINT32 position, + UINT32 length, + UINT8 explicitLevel, + UINT8 resolvedLevel); + + HRESULT (STDMETHODCALLTYPE *SetNumberSubstitution)( + IDWriteTextAnalysisSink *This, + UINT32 position, + UINT32 length, + IDWriteNumberSubstitution *substitution); + + END_INTERFACE +} IDWriteTextAnalysisSinkVtbl; + +interface IDWriteTextAnalysisSink { + CONST_VTBL IDWriteTextAnalysisSinkVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextAnalysisSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextAnalysisSink_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextAnalysisSink_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextAnalysisSink methods ***/ +#define IDWriteTextAnalysisSink_SetScriptAnalysis(This,position,length,scriptanalysis) (This)->lpVtbl->SetScriptAnalysis(This,position,length,scriptanalysis) +#define IDWriteTextAnalysisSink_SetLineBreakpoints(This,position,length,breakpoints) (This)->lpVtbl->SetLineBreakpoints(This,position,length,breakpoints) +#define IDWriteTextAnalysisSink_SetBidiLevel(This,position,length,explicitLevel,resolvedLevel) (This)->lpVtbl->SetBidiLevel(This,position,length,explicitLevel,resolvedLevel) +#define IDWriteTextAnalysisSink_SetNumberSubstitution(This,position,length,substitution) (This)->lpVtbl->SetNumberSubstitution(This,position,length,substitution) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextAnalysisSink_QueryInterface(IDWriteTextAnalysisSink* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextAnalysisSink_AddRef(IDWriteTextAnalysisSink* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextAnalysisSink_Release(IDWriteTextAnalysisSink* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextAnalysisSink methods ***/ +static inline HRESULT IDWriteTextAnalysisSink_SetScriptAnalysis(IDWriteTextAnalysisSink* This,UINT32 position,UINT32 length,const DWRITE_SCRIPT_ANALYSIS *scriptanalysis) { + return This->lpVtbl->SetScriptAnalysis(This,position,length,scriptanalysis); +} +static inline HRESULT IDWriteTextAnalysisSink_SetLineBreakpoints(IDWriteTextAnalysisSink* This,UINT32 position,UINT32 length,const DWRITE_LINE_BREAKPOINT *breakpoints) { + return This->lpVtbl->SetLineBreakpoints(This,position,length,breakpoints); +} +static inline HRESULT IDWriteTextAnalysisSink_SetBidiLevel(IDWriteTextAnalysisSink* This,UINT32 position,UINT32 length,UINT8 explicitLevel,UINT8 resolvedLevel) { + return This->lpVtbl->SetBidiLevel(This,position,length,explicitLevel,resolvedLevel); +} +static inline HRESULT IDWriteTextAnalysisSink_SetNumberSubstitution(IDWriteTextAnalysisSink* This,UINT32 position,UINT32 length,IDWriteNumberSubstitution *substitution) { + return This->lpVtbl->SetNumberSubstitution(This,position,length,substitution); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextAnalysisSink_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextAnalyzer interface + */ +#ifndef __IDWriteTextAnalyzer_INTERFACE_DEFINED__ +#define __IDWriteTextAnalyzer_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextAnalyzer, 0xb7e6163e, 0x7f46, 0x43b4, 0x84,0xb3, 0xe4,0xe6,0x24,0x9c,0x36,0x5d); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("b7e6163e-7f46-43b4-84b3-e4e6249c365d") +IDWriteTextAnalyzer : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE AnalyzeScript( + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink) = 0; + + virtual HRESULT STDMETHODCALLTYPE AnalyzeBidi( + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink) = 0; + + virtual HRESULT STDMETHODCALLTYPE AnalyzeNumberSubstitution( + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink) = 0; + + virtual HRESULT STDMETHODCALLTYPE AnalyzeLineBreakpoints( + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGlyphs( + const WCHAR *text, + UINT32 length, + IDWriteFontFace *font_face, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS *analysis, + const WCHAR *locale, + IDWriteNumberSubstitution *substitution, + const DWRITE_TYPOGRAPHIC_FEATURES **features, + const UINT32 *feature_range_len, + UINT32 feature_ranges, + UINT32 max_glyph_count, + UINT16 *clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES *text_props, + UINT16 *glyph_indices, + DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, + UINT32 *actual_glyph_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGlyphPlacements( + const WCHAR *text, + const UINT16 *clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES *props, + UINT32 text_len, + const UINT16 *glyph_indices, + const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, + UINT32 glyph_count, + IDWriteFontFace *font_face, + FLOAT fontEmSize, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS *analysis, + const WCHAR *locale, + const DWRITE_TYPOGRAPHIC_FEATURES **features, + const UINT32 *feature_range_len, + UINT32 feature_ranges, + FLOAT *glyph_advances, + DWRITE_GLYPH_OFFSET *glyph_offsets) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGdiCompatibleGlyphPlacements( + const WCHAR *text, + const UINT16 *clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES *props, + UINT32 text_len, + const UINT16 *glyph_indices, + const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, + UINT32 glyph_count, + IDWriteFontFace *font_face, + FLOAT fontEmSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS *analysis, + const WCHAR *locale, + const DWRITE_TYPOGRAPHIC_FEATURES **features, + const UINT32 *feature_range_lengths, + UINT32 feature_ranges, + FLOAT *glyph_advances, + DWRITE_GLYPH_OFFSET *glyph_offsets) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextAnalyzer, 0xb7e6163e, 0x7f46, 0x43b4, 0x84,0xb3, 0xe4,0xe6,0x24,0x9c,0x36,0x5d) +#endif +#else +typedef struct IDWriteTextAnalyzerVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextAnalyzer *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextAnalyzer *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextAnalyzer *This); + + /*** IDWriteTextAnalyzer methods ***/ + HRESULT (STDMETHODCALLTYPE *AnalyzeScript)( + IDWriteTextAnalyzer *This, + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink); + + HRESULT (STDMETHODCALLTYPE *AnalyzeBidi)( + IDWriteTextAnalyzer *This, + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink); + + HRESULT (STDMETHODCALLTYPE *AnalyzeNumberSubstitution)( + IDWriteTextAnalyzer *This, + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink); + + HRESULT (STDMETHODCALLTYPE *AnalyzeLineBreakpoints)( + IDWriteTextAnalyzer *This, + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink); + + HRESULT (STDMETHODCALLTYPE *GetGlyphs)( + IDWriteTextAnalyzer *This, + const WCHAR *text, + UINT32 length, + IDWriteFontFace *font_face, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS *analysis, + const WCHAR *locale, + IDWriteNumberSubstitution *substitution, + const DWRITE_TYPOGRAPHIC_FEATURES **features, + const UINT32 *feature_range_len, + UINT32 feature_ranges, + UINT32 max_glyph_count, + UINT16 *clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES *text_props, + UINT16 *glyph_indices, + DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, + UINT32 *actual_glyph_count); + + HRESULT (STDMETHODCALLTYPE *GetGlyphPlacements)( + IDWriteTextAnalyzer *This, + const WCHAR *text, + const UINT16 *clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES *props, + UINT32 text_len, + const UINT16 *glyph_indices, + const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, + UINT32 glyph_count, + IDWriteFontFace *font_face, + FLOAT fontEmSize, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS *analysis, + const WCHAR *locale, + const DWRITE_TYPOGRAPHIC_FEATURES **features, + const UINT32 *feature_range_len, + UINT32 feature_ranges, + FLOAT *glyph_advances, + DWRITE_GLYPH_OFFSET *glyph_offsets); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphPlacements)( + IDWriteTextAnalyzer *This, + const WCHAR *text, + const UINT16 *clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES *props, + UINT32 text_len, + const UINT16 *glyph_indices, + const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, + UINT32 glyph_count, + IDWriteFontFace *font_face, + FLOAT fontEmSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS *analysis, + const WCHAR *locale, + const DWRITE_TYPOGRAPHIC_FEATURES **features, + const UINT32 *feature_range_lengths, + UINT32 feature_ranges, + FLOAT *glyph_advances, + DWRITE_GLYPH_OFFSET *glyph_offsets); + + END_INTERFACE +} IDWriteTextAnalyzerVtbl; + +interface IDWriteTextAnalyzer { + CONST_VTBL IDWriteTextAnalyzerVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextAnalyzer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextAnalyzer_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextAnalyzer_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextAnalyzer methods ***/ +#define IDWriteTextAnalyzer_AnalyzeScript(This,source,position,length,sink) (This)->lpVtbl->AnalyzeScript(This,source,position,length,sink) +#define IDWriteTextAnalyzer_AnalyzeBidi(This,source,position,length,sink) (This)->lpVtbl->AnalyzeBidi(This,source,position,length,sink) +#define IDWriteTextAnalyzer_AnalyzeNumberSubstitution(This,source,position,length,sink) (This)->lpVtbl->AnalyzeNumberSubstitution(This,source,position,length,sink) +#define IDWriteTextAnalyzer_AnalyzeLineBreakpoints(This,source,position,length,sink) (This)->lpVtbl->AnalyzeLineBreakpoints(This,source,position,length,sink) +#define IDWriteTextAnalyzer_GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count) (This)->lpVtbl->GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count) +#define IDWriteTextAnalyzer_GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets) (This)->lpVtbl->GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets) +#define IDWriteTextAnalyzer_GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets) (This)->lpVtbl->GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextAnalyzer_QueryInterface(IDWriteTextAnalyzer* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextAnalyzer_AddRef(IDWriteTextAnalyzer* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextAnalyzer_Release(IDWriteTextAnalyzer* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextAnalyzer methods ***/ +static inline HRESULT IDWriteTextAnalyzer_AnalyzeScript(IDWriteTextAnalyzer* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { + return This->lpVtbl->AnalyzeScript(This,source,position,length,sink); +} +static inline HRESULT IDWriteTextAnalyzer_AnalyzeBidi(IDWriteTextAnalyzer* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { + return This->lpVtbl->AnalyzeBidi(This,source,position,length,sink); +} +static inline HRESULT IDWriteTextAnalyzer_AnalyzeNumberSubstitution(IDWriteTextAnalyzer* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { + return This->lpVtbl->AnalyzeNumberSubstitution(This,source,position,length,sink); +} +static inline HRESULT IDWriteTextAnalyzer_AnalyzeLineBreakpoints(IDWriteTextAnalyzer* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { + return This->lpVtbl->AnalyzeLineBreakpoints(This,source,position,length,sink); +} +static inline HRESULT IDWriteTextAnalyzer_GetGlyphs(IDWriteTextAnalyzer* This,const WCHAR *text,UINT32 length,IDWriteFontFace *font_face,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,IDWriteNumberSubstitution *substitution,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_len,UINT32 feature_ranges,UINT32 max_glyph_count,UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *text_props,UINT16 *glyph_indices,DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 *actual_glyph_count) { + return This->lpVtbl->GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count); +} +static inline HRESULT IDWriteTextAnalyzer_GetGlyphPlacements(IDWriteTextAnalyzer* This,const WCHAR *text,const UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *props,UINT32 text_len,const UINT16 *glyph_indices,const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 glyph_count,IDWriteFontFace *font_face,FLOAT fontEmSize,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_len,UINT32 feature_ranges,FLOAT *glyph_advances,DWRITE_GLYPH_OFFSET *glyph_offsets) { + return This->lpVtbl->GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets); +} +static inline HRESULT IDWriteTextAnalyzer_GetGdiCompatibleGlyphPlacements(IDWriteTextAnalyzer* This,const WCHAR *text,const UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *props,UINT32 text_len,const UINT16 *glyph_indices,const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 glyph_count,IDWriteFontFace *font_face,FLOAT fontEmSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_lengths,UINT32 feature_ranges,FLOAT *glyph_advances,DWRITE_GLYPH_OFFSET *glyph_offsets) { + return This->lpVtbl->GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextAnalyzer_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteGlyphRunAnalysis interface + */ +#ifndef __IDWriteGlyphRunAnalysis_INTERFACE_DEFINED__ +#define __IDWriteGlyphRunAnalysis_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteGlyphRunAnalysis, 0x7d97dbf7, 0xe085, 0x42d4, 0x81,0xe3, 0x6a,0x88,0x3b,0xde,0xd1,0x18); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("7d97dbf7-e085-42d4-81e3-6a883bded118") +IDWriteGlyphRunAnalysis : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetAlphaTextureBounds( + DWRITE_TEXTURE_TYPE type, + RECT *bounds) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateAlphaTexture( + DWRITE_TEXTURE_TYPE type, + const RECT *bounds, + BYTE *alphaValues, + UINT32 bufferSize) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAlphaBlendParams( + IDWriteRenderingParams *renderingParams, + FLOAT *blendGamma, + FLOAT *blendEnhancedContrast, + FLOAT *blendClearTypeLevel) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteGlyphRunAnalysis, 0x7d97dbf7, 0xe085, 0x42d4, 0x81,0xe3, 0x6a,0x88,0x3b,0xde,0xd1,0x18) +#endif +#else +typedef struct IDWriteGlyphRunAnalysisVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteGlyphRunAnalysis *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteGlyphRunAnalysis *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteGlyphRunAnalysis *This); + + /*** IDWriteGlyphRunAnalysis methods ***/ + HRESULT (STDMETHODCALLTYPE *GetAlphaTextureBounds)( + IDWriteGlyphRunAnalysis *This, + DWRITE_TEXTURE_TYPE type, + RECT *bounds); + + HRESULT (STDMETHODCALLTYPE *CreateAlphaTexture)( + IDWriteGlyphRunAnalysis *This, + DWRITE_TEXTURE_TYPE type, + const RECT *bounds, + BYTE *alphaValues, + UINT32 bufferSize); + + HRESULT (STDMETHODCALLTYPE *GetAlphaBlendParams)( + IDWriteGlyphRunAnalysis *This, + IDWriteRenderingParams *renderingParams, + FLOAT *blendGamma, + FLOAT *blendEnhancedContrast, + FLOAT *blendClearTypeLevel); + + END_INTERFACE +} IDWriteGlyphRunAnalysisVtbl; + +interface IDWriteGlyphRunAnalysis { + CONST_VTBL IDWriteGlyphRunAnalysisVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteGlyphRunAnalysis_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteGlyphRunAnalysis_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteGlyphRunAnalysis_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteGlyphRunAnalysis methods ***/ +#define IDWriteGlyphRunAnalysis_GetAlphaTextureBounds(This,type,bounds) (This)->lpVtbl->GetAlphaTextureBounds(This,type,bounds) +#define IDWriteGlyphRunAnalysis_CreateAlphaTexture(This,type,bounds,alphaValues,bufferSize) (This)->lpVtbl->CreateAlphaTexture(This,type,bounds,alphaValues,bufferSize) +#define IDWriteGlyphRunAnalysis_GetAlphaBlendParams(This,renderingParams,blendGamma,blendEnhancedContrast,blendClearTypeLevel) (This)->lpVtbl->GetAlphaBlendParams(This,renderingParams,blendGamma,blendEnhancedContrast,blendClearTypeLevel) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteGlyphRunAnalysis_QueryInterface(IDWriteGlyphRunAnalysis* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteGlyphRunAnalysis_AddRef(IDWriteGlyphRunAnalysis* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteGlyphRunAnalysis_Release(IDWriteGlyphRunAnalysis* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteGlyphRunAnalysis methods ***/ +static inline HRESULT IDWriteGlyphRunAnalysis_GetAlphaTextureBounds(IDWriteGlyphRunAnalysis* This,DWRITE_TEXTURE_TYPE type,RECT *bounds) { + return This->lpVtbl->GetAlphaTextureBounds(This,type,bounds); +} +static inline HRESULT IDWriteGlyphRunAnalysis_CreateAlphaTexture(IDWriteGlyphRunAnalysis* This,DWRITE_TEXTURE_TYPE type,const RECT *bounds,BYTE *alphaValues,UINT32 bufferSize) { + return This->lpVtbl->CreateAlphaTexture(This,type,bounds,alphaValues,bufferSize); +} +static inline HRESULT IDWriteGlyphRunAnalysis_GetAlphaBlendParams(IDWriteGlyphRunAnalysis* This,IDWriteRenderingParams *renderingParams,FLOAT *blendGamma,FLOAT *blendEnhancedContrast,FLOAT *blendClearTypeLevel) { + return This->lpVtbl->GetAlphaBlendParams(This,renderingParams,blendGamma,blendEnhancedContrast,blendClearTypeLevel); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteGlyphRunAnalysis_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFactory interface + */ +#ifndef __IDWriteFactory_INTERFACE_DEFINED__ +#define __IDWriteFactory_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFactory, 0xb859ee5a, 0xd838, 0x4b5b, 0xa2,0xe8, 0x1a,0xdc,0x7d,0x93,0xdb,0x48); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("b859ee5a-d838-4b5b-a2e8-1adc7d93db48") +IDWriteFactory : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection( + IDWriteFontCollection **collection, + WINBOOL check_for_updates = FALSE) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateCustomFontCollection( + IDWriteFontCollectionLoader *loader, + const void *key, + UINT32 key_size, + IDWriteFontCollection **collection) = 0; + + virtual HRESULT STDMETHODCALLTYPE RegisterFontCollectionLoader( + IDWriteFontCollectionLoader *loader) = 0; + + virtual HRESULT STDMETHODCALLTYPE UnregisterFontCollectionLoader( + IDWriteFontCollectionLoader *loader) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFileReference( + const WCHAR *path, + const FILETIME *writetime, + IDWriteFontFile **font_file) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateCustomFontFileReference( + const void *reference_key, + UINT32 key_size, + IDWriteFontFileLoader *loader, + IDWriteFontFile **font_file) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFace( + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile *const *font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace **font_face) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateRenderingParams( + IDWriteRenderingParams **params) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateMonitorRenderingParams( + HMONITOR monitor, + IDWriteRenderingParams **params) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams( + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams **params) = 0; + + virtual HRESULT STDMETHODCALLTYPE RegisterFontFileLoader( + IDWriteFontFileLoader *loader) = 0; + + virtual HRESULT STDMETHODCALLTYPE UnregisterFontFileLoader( + IDWriteFontFileLoader *loader) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateTextFormat( + const WCHAR *family_name, + IDWriteFontCollection *collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR *locale, + IDWriteTextFormat **format) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateTypography( + IDWriteTypography **typography) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGdiInterop( + IDWriteGdiInterop **gdi_interop) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateTextLayout( + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout **layout) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateGdiCompatibleTextLayout( + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout **layout) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateEllipsisTrimmingSign( + IDWriteTextFormat *format, + IDWriteInlineObject **trimming_sign) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateTextAnalyzer( + IDWriteTextAnalyzer **analyzer) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateNumberSubstitution( + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR *locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution **substitution) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateGlyphRunAnalysis( + const DWRITE_GLYPH_RUN *glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis **analysis) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFactory, 0xb859ee5a, 0xd838, 0x4b5b, 0xa2,0xe8, 0x1a,0xdc,0x7d,0x93,0xdb,0x48) +#endif +#else +typedef struct IDWriteFactoryVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFactory *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFactory *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFactory *This); + + /*** IDWriteFactory methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( + IDWriteFactory *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( + IDWriteFactory *This, + IDWriteFontCollectionLoader *loader, + const void *key, + UINT32 key_size, + IDWriteFontCollection **collection); + + HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( + IDWriteFactory *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( + IDWriteFactory *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( + IDWriteFactory *This, + const WCHAR *path, + const FILETIME *writetime, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( + IDWriteFactory *This, + const void *reference_key, + UINT32 key_size, + IDWriteFontFileLoader *loader, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFactory *This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile *const *font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace **font_face); + + HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( + IDWriteFactory *This, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( + IDWriteFactory *This, + HMONITOR monitor, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( + IDWriteFactory *This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( + IDWriteFactory *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( + IDWriteFactory *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( + IDWriteFactory *This, + const WCHAR *family_name, + IDWriteFontCollection *collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR *locale, + IDWriteTextFormat **format); + + HRESULT (STDMETHODCALLTYPE *CreateTypography)( + IDWriteFactory *This, + IDWriteTypography **typography); + + HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( + IDWriteFactory *This, + IDWriteGdiInterop **gdi_interop); + + HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( + IDWriteFactory *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( + IDWriteFactory *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( + IDWriteFactory *This, + IDWriteTextFormat *format, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( + IDWriteFactory *This, + IDWriteTextAnalyzer **analyzer); + + HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( + IDWriteFactory *This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR *locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution **substitution); + + HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( + IDWriteFactory *This, + const DWRITE_GLYPH_RUN *glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis **analysis); + + END_INTERFACE +} IDWriteFactoryVtbl; + +interface IDWriteFactory { + CONST_VTBL IDWriteFactoryVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFactory_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFactory methods ***/ +#define IDWriteFactory_GetSystemFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetSystemFontCollection(This,collection,check_for_updates) +#define IDWriteFactory_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) +#define IDWriteFactory_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) +#define IDWriteFactory_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) +#define IDWriteFactory_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) +#define IDWriteFactory_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) +#define IDWriteFactory_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) +#define IDWriteFactory_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) +#define IDWriteFactory_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) +#define IDWriteFactory_CreateCustomRenderingParams(This,gamma,enhancedContrast,cleartype_level,geometry,mode,params) (This)->lpVtbl->CreateCustomRenderingParams(This,gamma,enhancedContrast,cleartype_level,geometry,mode,params) +#define IDWriteFactory_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) +#define IDWriteFactory_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) +#define IDWriteFactory_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) +#define IDWriteFactory_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) +#define IDWriteFactory_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) +#define IDWriteFactory_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) +#define IDWriteFactory_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) +#define IDWriteFactory_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) +#define IDWriteFactory_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) +#define IDWriteFactory_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +#define IDWriteFactory_CreateGlyphRunAnalysis(This,glyph_run,pixels_per_dip,transform,rendering_mode,measuring_mode,baseline_x,baseline_y,analysis) (This)->lpVtbl->CreateGlyphRunAnalysis(This,glyph_run,pixels_per_dip,transform,rendering_mode,measuring_mode,baseline_x,baseline_y,analysis) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFactory_QueryInterface(IDWriteFactory* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFactory_AddRef(IDWriteFactory* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFactory_Release(IDWriteFactory* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFactory methods ***/ +static inline HRESULT IDWriteFactory_GetSystemFontCollection(IDWriteFactory* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { + return This->lpVtbl->GetSystemFontCollection(This,collection,check_for_updates); +} +static inline HRESULT IDWriteFactory_CreateCustomFontCollection(IDWriteFactory* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { + return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +} +static inline HRESULT IDWriteFactory_RegisterFontCollectionLoader(IDWriteFactory* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory_UnregisterFontCollectionLoader(IDWriteFactory* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory_CreateFontFileReference(IDWriteFactory* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +} +static inline HRESULT IDWriteFactory_CreateCustomFontFileReference(IDWriteFactory* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +} +static inline HRESULT IDWriteFactory_CreateFontFace(IDWriteFactory* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { + return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +} +static inline HRESULT IDWriteFactory_CreateRenderingParams(IDWriteFactory* This,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateRenderingParams(This,params); +} +static inline HRESULT IDWriteFactory_CreateMonitorRenderingParams(IDWriteFactory* This,HMONITOR monitor,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +} +static inline HRESULT IDWriteFactory_CreateCustomRenderingParams(IDWriteFactory* This,FLOAT gamma,FLOAT enhancedContrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY geometry,DWRITE_RENDERING_MODE mode,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateCustomRenderingParams(This,gamma,enhancedContrast,cleartype_level,geometry,mode,params); +} +static inline HRESULT IDWriteFactory_RegisterFontFileLoader(IDWriteFactory* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->RegisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory_UnregisterFontFileLoader(IDWriteFactory* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->UnregisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory_CreateTextFormat(IDWriteFactory* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) { + return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format); +} +static inline HRESULT IDWriteFactory_CreateTypography(IDWriteFactory* This,IDWriteTypography **typography) { + return This->lpVtbl->CreateTypography(This,typography); +} +static inline HRESULT IDWriteFactory_GetGdiInterop(IDWriteFactory* This,IDWriteGdiInterop **gdi_interop) { + return This->lpVtbl->GetGdiInterop(This,gdi_interop); +} +static inline HRESULT IDWriteFactory_CreateTextLayout(IDWriteFactory* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +} +static inline HRESULT IDWriteFactory_CreateGdiCompatibleTextLayout(IDWriteFactory* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +} +static inline HRESULT IDWriteFactory_CreateEllipsisTrimmingSign(IDWriteFactory* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +} +static inline HRESULT IDWriteFactory_CreateTextAnalyzer(IDWriteFactory* This,IDWriteTextAnalyzer **analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +} +static inline HRESULT IDWriteFactory_CreateNumberSubstitution(IDWriteFactory* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { + return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +} +static inline HRESULT IDWriteFactory_CreateGlyphRunAnalysis(IDWriteFactory* This,const DWRITE_GLYPH_RUN *glyph_run,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE rendering_mode,DWRITE_MEASURING_MODE measuring_mode,FLOAT baseline_x,FLOAT baseline_y,IDWriteGlyphRunAnalysis **analysis) { + return This->lpVtbl->CreateGlyphRunAnalysis(This,glyph_run,pixels_per_dip,transform,rendering_mode,measuring_mode,baseline_x,baseline_y,analysis); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFactory_INTERFACE_DEFINED__ */ + +HRESULT WINAPI DWriteCreateFactory(DWRITE_FACTORY_TYPE,REFIID,IUnknown**); +#define FACILITY_DWRITE 0x898 +#define DWRITE_ERR_BASE 0x5000 +#define MAKE_DWRITE_HR(severity, code) MAKE_HRESULT(severity, FACILITY_DWRITE, (DWRITE_ERR_BASE + code)) +#define MAKE_DWRITE_HR_ERR(code) MAKE_DWRITE_HR(SEVERITY_ERROR, code) +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __dwrite_h__ */ diff --git a/src/text/dwrite_2.h b/src/text/dwrite_2.h new file mode 100644 index 000000000..75cbd7e3b --- /dev/null +++ b/src/text/dwrite_2.h @@ -0,0 +1,3297 @@ +/*** Autogenerated by WIDL 11.0-rc1 from include/dwrite_2.idl - Do not edit ***/ + +#define COBJMACROS + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#endif + +#ifndef __dwrite_2_h__ +#define __dwrite_2_h__ + +/* Forward declarations */ + +#ifndef __IDWriteTextRenderer1_FWD_DEFINED__ +#define __IDWriteTextRenderer1_FWD_DEFINED__ +typedef interface IDWriteTextRenderer1 IDWriteTextRenderer1; +#ifdef __cplusplus +interface IDWriteTextRenderer1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFallback_FWD_DEFINED__ +#define __IDWriteFontFallback_FWD_DEFINED__ +typedef interface IDWriteFontFallback IDWriteFontFallback; +#ifdef __cplusplus +interface IDWriteFontFallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextFormat1_FWD_DEFINED__ +#define __IDWriteTextFormat1_FWD_DEFINED__ +typedef interface IDWriteTextFormat1 IDWriteTextFormat1; +#ifdef __cplusplus +interface IDWriteTextFormat1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextLayout2_FWD_DEFINED__ +#define __IDWriteTextLayout2_FWD_DEFINED__ +typedef interface IDWriteTextLayout2 IDWriteTextLayout2; +#ifdef __cplusplus +interface IDWriteTextLayout2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextAnalyzer2_FWD_DEFINED__ +#define __IDWriteTextAnalyzer2_FWD_DEFINED__ +typedef interface IDWriteTextAnalyzer2 IDWriteTextAnalyzer2; +#ifdef __cplusplus +interface IDWriteTextAnalyzer2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFallbackBuilder_FWD_DEFINED__ +#define __IDWriteFontFallbackBuilder_FWD_DEFINED__ +typedef interface IDWriteFontFallbackBuilder IDWriteFontFallbackBuilder; +#ifdef __cplusplus +interface IDWriteFontFallbackBuilder; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFont2_FWD_DEFINED__ +#define __IDWriteFont2_FWD_DEFINED__ +typedef interface IDWriteFont2 IDWriteFont2; +#ifdef __cplusplus +interface IDWriteFont2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFace2_FWD_DEFINED__ +#define __IDWriteFontFace2_FWD_DEFINED__ +typedef interface IDWriteFontFace2 IDWriteFontFace2; +#ifdef __cplusplus +interface IDWriteFontFace2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteColorGlyphRunEnumerator_FWD_DEFINED__ +#define __IDWriteColorGlyphRunEnumerator_FWD_DEFINED__ +typedef interface IDWriteColorGlyphRunEnumerator IDWriteColorGlyphRunEnumerator; +#ifdef __cplusplus +interface IDWriteColorGlyphRunEnumerator; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteRenderingParams2_FWD_DEFINED__ +#define __IDWriteRenderingParams2_FWD_DEFINED__ +typedef interface IDWriteRenderingParams2 IDWriteRenderingParams2; +#ifdef __cplusplus +interface IDWriteRenderingParams2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFactory2_FWD_DEFINED__ +#define __IDWriteFactory2_FWD_DEFINED__ +typedef interface IDWriteFactory2 IDWriteFactory2; +#ifdef __cplusplus +interface IDWriteFactory2; +#endif /* __cplusplus */ +#endif + +/* Headers for imported files */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum DWRITE_OPTICAL_ALIGNMENT { + DWRITE_OPTICAL_ALIGNMENT_NONE = 0, + DWRITE_OPTICAL_ALIGNMENT_NO_SIDE_BEARINGS = 1 +} DWRITE_OPTICAL_ALIGNMENT; +typedef enum DWRITE_GRID_FIT_MODE { + DWRITE_GRID_FIT_MODE_DEFAULT = 0, + DWRITE_GRID_FIT_MODE_DISABLED = 1, + DWRITE_GRID_FIT_MODE_ENABLED = 2 +} DWRITE_GRID_FIT_MODE; +typedef struct DWRITE_TEXT_METRICS1 { + FLOAT left; + FLOAT top; + FLOAT width; + FLOAT widthIncludingTrailingWhitespace; + FLOAT height; + FLOAT layoutWidth; + FLOAT layoutHeight; + UINT32 maxBidiReorderingDepth; + UINT32 lineCount; + FLOAT heightIncludingTrailingWhitespace; +} DWRITE_TEXT_METRICS1; +#ifndef D3DCOLORVALUE_DEFINED +typedef struct _D3DCOLORVALUE { + __C89_NAMELESS union { + FLOAT r; + FLOAT dvR; + } __C89_NAMELESSUNIONNAME1; + __C89_NAMELESS union { + FLOAT g; + FLOAT dvG; + } __C89_NAMELESSUNIONNAME2; + __C89_NAMELESS union { + FLOAT b; + FLOAT dvB; + } __C89_NAMELESSUNIONNAME3; + __C89_NAMELESS union { + FLOAT a; + FLOAT dvA; + } __C89_NAMELESSUNIONNAME4; +} D3DCOLORVALUE; +#define D3DCOLORVALUE_DEFINED +#endif +typedef D3DCOLORVALUE DWRITE_COLOR_F; +typedef struct DWRITE_COLOR_GLYPH_RUN { + DWRITE_GLYPH_RUN glyphRun; + DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription; + FLOAT baselineOriginX; + FLOAT baselineOriginY; + DWRITE_COLOR_F runColor; + UINT16 paletteIndex; +} DWRITE_COLOR_GLYPH_RUN; +/***************************************************************************** + * IDWriteTextRenderer1 interface + */ +#ifndef __IDWriteTextRenderer1_INTERFACE_DEFINED__ +#define __IDWriteTextRenderer1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextRenderer1, 0xd3e0e934, 0x22a0, 0x427e, 0xaa,0xe4, 0x7d,0x95,0x74,0xb5,0x9d,0xb1); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("d3e0e934-22a0-427e-aae4-7d9574b59db1") +IDWriteTextRenderer1 : public IDWriteTextRenderer +{ + virtual HRESULT STDMETHODCALLTYPE DrawGlyphRun( + void *context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + DWRITE_MEASURING_MODE mode, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, + IUnknown *effect) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawUnderline( + void *context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + const DWRITE_UNDERLINE *underline, + IUnknown *effect) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawStrikethrough( + void *context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + const DWRITE_STRIKETHROUGH *strikethrough, + IUnknown *effect) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawInlineObject( + void *context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + IDWriteInlineObject *inlineObject, + WINBOOL is_sideways, + WINBOOL is_rtl, + IUnknown *effect) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextRenderer1, 0xd3e0e934, 0x22a0, 0x427e, 0xaa,0xe4, 0x7d,0x95,0x74,0xb5,0x9d,0xb1) +#endif +#else +typedef struct IDWriteTextRenderer1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextRenderer1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextRenderer1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextRenderer1 *This); + + /*** IDWritePixelSnapping methods ***/ + HRESULT (STDMETHODCALLTYPE *IsPixelSnappingDisabled)( + IDWriteTextRenderer1 *This, + void *client_drawingcontext, + WINBOOL *disabled); + + HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)( + IDWriteTextRenderer1 *This, + void *client_drawingcontext, + DWRITE_MATRIX *transform); + + HRESULT (STDMETHODCALLTYPE *GetPixelsPerDip)( + IDWriteTextRenderer1 *This, + void *client_drawingcontext, + FLOAT *pixels_per_dip); + + /*** IDWriteTextRenderer methods ***/ + HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)( + IDWriteTextRenderer1 *This, + void *client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE mode, + const DWRITE_GLYPH_RUN *glyph_run, + const DWRITE_GLYPH_RUN_DESCRIPTION *run_descr, + IUnknown *drawing_effect); + + HRESULT (STDMETHODCALLTYPE *DrawUnderline)( + IDWriteTextRenderer1 *This, + void *client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + const DWRITE_UNDERLINE *underline, + IUnknown *drawing_effect); + + HRESULT (STDMETHODCALLTYPE *DrawStrikethrough)( + IDWriteTextRenderer1 *This, + void *client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + const DWRITE_STRIKETHROUGH *strikethrough, + IUnknown *drawing_effect); + + HRESULT (STDMETHODCALLTYPE *DrawInlineObject)( + IDWriteTextRenderer1 *This, + void *client_drawingcontext, + FLOAT originX, + FLOAT originY, + IDWriteInlineObject *object, + WINBOOL is_sideways, + WINBOOL is_rtl, + IUnknown *drawing_effect); + + /*** IDWriteTextRenderer1 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteTextRenderer1_DrawGlyphRun)( + IDWriteTextRenderer1 *This, + void *context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + DWRITE_MEASURING_MODE mode, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, + IUnknown *effect); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextRenderer1_DrawUnderline)( + IDWriteTextRenderer1 *This, + void *context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + const DWRITE_UNDERLINE *underline, + IUnknown *effect); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextRenderer1_DrawStrikethrough)( + IDWriteTextRenderer1 *This, + void *context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + const DWRITE_STRIKETHROUGH *strikethrough, + IUnknown *effect); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextRenderer1_DrawInlineObject)( + IDWriteTextRenderer1 *This, + void *context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + IDWriteInlineObject *inlineObject, + WINBOOL is_sideways, + WINBOOL is_rtl, + IUnknown *effect); + + END_INTERFACE +} IDWriteTextRenderer1Vtbl; + +interface IDWriteTextRenderer1 { + CONST_VTBL IDWriteTextRenderer1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextRenderer1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextRenderer1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextRenderer1_Release(This) (This)->lpVtbl->Release(This) +/*** IDWritePixelSnapping methods ***/ +#define IDWriteTextRenderer1_IsPixelSnappingDisabled(This,client_drawingcontext,disabled) (This)->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled) +#define IDWriteTextRenderer1_GetCurrentTransform(This,client_drawingcontext,transform) (This)->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform) +#define IDWriteTextRenderer1_GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) (This)->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) +/*** IDWriteTextRenderer methods ***/ +/*** IDWriteTextRenderer1 methods ***/ +#define IDWriteTextRenderer1_DrawGlyphRun(This,context,originX,originY,angle,mode,run,rundescr,effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawGlyphRun(This,context,originX,originY,angle,mode,run,rundescr,effect) +#define IDWriteTextRenderer1_DrawUnderline(This,context,originX,originY,angle,underline,effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawUnderline(This,context,originX,originY,angle,underline,effect) +#define IDWriteTextRenderer1_DrawStrikethrough(This,context,originX,originY,angle,strikethrough,effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawStrikethrough(This,context,originX,originY,angle,strikethrough,effect) +#define IDWriteTextRenderer1_DrawInlineObject(This,context,originX,originY,angle,inlineObject,is_sideways,is_rtl,effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawInlineObject(This,context,originX,originY,angle,inlineObject,is_sideways,is_rtl,effect) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextRenderer1_QueryInterface(IDWriteTextRenderer1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextRenderer1_AddRef(IDWriteTextRenderer1* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextRenderer1_Release(IDWriteTextRenderer1* This) { + return This->lpVtbl->Release(This); +} +/*** IDWritePixelSnapping methods ***/ +static inline HRESULT IDWriteTextRenderer1_IsPixelSnappingDisabled(IDWriteTextRenderer1* This,void *client_drawingcontext,WINBOOL *disabled) { + return This->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled); +} +static inline HRESULT IDWriteTextRenderer1_GetCurrentTransform(IDWriteTextRenderer1* This,void *client_drawingcontext,DWRITE_MATRIX *transform) { + return This->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform); +} +static inline HRESULT IDWriteTextRenderer1_GetPixelsPerDip(IDWriteTextRenderer1* This,void *client_drawingcontext,FLOAT *pixels_per_dip) { + return This->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip); +} +/*** IDWriteTextRenderer methods ***/ +/*** IDWriteTextRenderer1 methods ***/ +static inline HRESULT IDWriteTextRenderer1_DrawGlyphRun(IDWriteTextRenderer1* This,void *context,FLOAT originX,FLOAT originY,DWRITE_GLYPH_ORIENTATION_ANGLE angle,DWRITE_MEASURING_MODE mode,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,IUnknown *effect) { + return This->lpVtbl->IDWriteTextRenderer1_DrawGlyphRun(This,context,originX,originY,angle,mode,run,rundescr,effect); +} +static inline HRESULT IDWriteTextRenderer1_DrawUnderline(IDWriteTextRenderer1* This,void *context,FLOAT originX,FLOAT originY,DWRITE_GLYPH_ORIENTATION_ANGLE angle,const DWRITE_UNDERLINE *underline,IUnknown *effect) { + return This->lpVtbl->IDWriteTextRenderer1_DrawUnderline(This,context,originX,originY,angle,underline,effect); +} +static inline HRESULT IDWriteTextRenderer1_DrawStrikethrough(IDWriteTextRenderer1* This,void *context,FLOAT originX,FLOAT originY,DWRITE_GLYPH_ORIENTATION_ANGLE angle,const DWRITE_STRIKETHROUGH *strikethrough,IUnknown *effect) { + return This->lpVtbl->IDWriteTextRenderer1_DrawStrikethrough(This,context,originX,originY,angle,strikethrough,effect); +} +static inline HRESULT IDWriteTextRenderer1_DrawInlineObject(IDWriteTextRenderer1* This,void *context,FLOAT originX,FLOAT originY,DWRITE_GLYPH_ORIENTATION_ANGLE angle,IDWriteInlineObject *inlineObject,WINBOOL is_sideways,WINBOOL is_rtl,IUnknown *effect) { + return This->lpVtbl->IDWriteTextRenderer1_DrawInlineObject(This,context,originX,originY,angle,inlineObject,is_sideways,is_rtl,effect); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextRenderer1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFallback interface + */ +#ifndef __IDWriteFontFallback_INTERFACE_DEFINED__ +#define __IDWriteFontFallback_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFallback, 0xefa008f9, 0xf7a1, 0x48bf, 0xb0,0x5c, 0xf2,0x24,0x71,0x3c,0xc0,0xff); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("efa008f9-f7a1-48bf-b05c-f224713cc0ff") +IDWriteFontFallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE MapCharacters( + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteFontCollection *basecollection, + const WCHAR *baseFamilyName, + DWRITE_FONT_WEIGHT baseWeight, + DWRITE_FONT_STYLE baseStyle, + DWRITE_FONT_STRETCH baseStretch, + UINT32 *mappedLength, + IDWriteFont **mappedFont, + FLOAT *scale) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFallback, 0xefa008f9, 0xf7a1, 0x48bf, 0xb0,0x5c, 0xf2,0x24,0x71,0x3c,0xc0,0xff) +#endif +#else +typedef struct IDWriteFontFallbackVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFallback *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFallback *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFallback *This); + + /*** IDWriteFontFallback methods ***/ + HRESULT (STDMETHODCALLTYPE *MapCharacters)( + IDWriteFontFallback *This, + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteFontCollection *basecollection, + const WCHAR *baseFamilyName, + DWRITE_FONT_WEIGHT baseWeight, + DWRITE_FONT_STYLE baseStyle, + DWRITE_FONT_STRETCH baseStretch, + UINT32 *mappedLength, + IDWriteFont **mappedFont, + FLOAT *scale); + + END_INTERFACE +} IDWriteFontFallbackVtbl; + +interface IDWriteFontFallback { + CONST_VTBL IDWriteFontFallbackVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFallback_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFallback_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFallback methods ***/ +#define IDWriteFontFallback_MapCharacters(This,source,position,length,basecollection,baseFamilyName,baseWeight,baseStyle,baseStretch,mappedLength,mappedFont,scale) (This)->lpVtbl->MapCharacters(This,source,position,length,basecollection,baseFamilyName,baseWeight,baseStyle,baseStretch,mappedLength,mappedFont,scale) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFallback_QueryInterface(IDWriteFontFallback* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFallback_AddRef(IDWriteFontFallback* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFallback_Release(IDWriteFontFallback* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFallback methods ***/ +static inline HRESULT IDWriteFontFallback_MapCharacters(IDWriteFontFallback* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteFontCollection *basecollection,const WCHAR *baseFamilyName,DWRITE_FONT_WEIGHT baseWeight,DWRITE_FONT_STYLE baseStyle,DWRITE_FONT_STRETCH baseStretch,UINT32 *mappedLength,IDWriteFont **mappedFont,FLOAT *scale) { + return This->lpVtbl->MapCharacters(This,source,position,length,basecollection,baseFamilyName,baseWeight,baseStyle,baseStretch,mappedLength,mappedFont,scale); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFallback_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextFormat1 interface + */ +#ifndef __IDWriteTextFormat1_INTERFACE_DEFINED__ +#define __IDWriteTextFormat1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextFormat1, 0x5f174b49, 0x0d8b, 0x4cfb, 0x8b,0xca, 0xf1,0xcc,0xe9,0xd0,0x6c,0x67); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("5f174b49-0d8b-4cfb-8bca-f1cce9d06c67") +IDWriteTextFormat1 : public IDWriteTextFormat +{ + virtual HRESULT STDMETHODCALLTYPE SetVerticalGlyphOrientation( + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) = 0; + + virtual DWRITE_VERTICAL_GLYPH_ORIENTATION STDMETHODCALLTYPE GetVerticalGlyphOrientation( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetLastLineWrapping( + WINBOOL lastline_wrapping_enabled) = 0; + + virtual WINBOOL STDMETHODCALLTYPE GetLastLineWrapping( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetOpticalAlignment( + DWRITE_OPTICAL_ALIGNMENT alignment) = 0; + + virtual DWRITE_OPTICAL_ALIGNMENT STDMETHODCALLTYPE GetOpticalAlignment( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFontFallback( + IDWriteFontFallback *fallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFallback( + IDWriteFontFallback **fallback) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextFormat1, 0x5f174b49, 0x0d8b, 0x4cfb, 0x8b,0xca, 0xf1,0xcc,0xe9,0xd0,0x6c,0x67) +#endif +#else +typedef struct IDWriteTextFormat1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextFormat1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextFormat1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextFormat1 *This); + + /*** IDWriteTextFormat methods ***/ + HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( + IDWriteTextFormat1 *This, + DWRITE_TEXT_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( + IDWriteTextFormat1 *This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( + IDWriteTextFormat1 *This, + DWRITE_WORD_WRAPPING wrapping); + + HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( + IDWriteTextFormat1 *This, + DWRITE_READING_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( + IDWriteTextFormat1 *This, + DWRITE_FLOW_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( + IDWriteTextFormat1 *This, + FLOAT tabstop); + + HRESULT (STDMETHODCALLTYPE *SetTrimming)( + IDWriteTextFormat1 *This, + const DWRITE_TRIMMING *trimming, + IDWriteInlineObject *trimming_sign); + + HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( + IDWriteTextFormat1 *This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); + + DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( + IDWriteTextFormat1 *This); + + DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( + IDWriteTextFormat1 *This); + + DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( + IDWriteTextFormat1 *This); + + DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( + IDWriteTextFormat1 *This); + + DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( + IDWriteTextFormat1 *This); + + FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( + IDWriteTextFormat1 *This); + + HRESULT (STDMETHODCALLTYPE *GetTrimming)( + IDWriteTextFormat1 *This, + DWRITE_TRIMMING *options, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( + IDWriteTextFormat1 *This, + DWRITE_LINE_SPACING_METHOD *method, + FLOAT *spacing, + FLOAT *baseline); + + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteTextFormat1 *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( + IDWriteTextFormat1 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( + IDWriteTextFormat1 *This, + WCHAR *name, + UINT32 size); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( + IDWriteTextFormat1 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( + IDWriteTextFormat1 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( + IDWriteTextFormat1 *This); + + FLOAT (STDMETHODCALLTYPE *GetFontSize)( + IDWriteTextFormat1 *This); + + UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( + IDWriteTextFormat1 *This); + + HRESULT (STDMETHODCALLTYPE *GetLocaleName)( + IDWriteTextFormat1 *This, + WCHAR *name, + UINT32 size); + + /*** IDWriteTextFormat1 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)( + IDWriteTextFormat1 *This, + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); + + DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)( + IDWriteTextFormat1 *This); + + HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)( + IDWriteTextFormat1 *This, + WINBOOL lastline_wrapping_enabled); + + WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)( + IDWriteTextFormat1 *This); + + HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)( + IDWriteTextFormat1 *This, + DWRITE_OPTICAL_ALIGNMENT alignment); + + DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)( + IDWriteTextFormat1 *This); + + HRESULT (STDMETHODCALLTYPE *SetFontFallback)( + IDWriteTextFormat1 *This, + IDWriteFontFallback *fallback); + + HRESULT (STDMETHODCALLTYPE *GetFontFallback)( + IDWriteTextFormat1 *This, + IDWriteFontFallback **fallback); + + END_INTERFACE +} IDWriteTextFormat1Vtbl; + +interface IDWriteTextFormat1 { + CONST_VTBL IDWriteTextFormat1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextFormat1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextFormat1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextFormat1_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextFormat methods ***/ +#define IDWriteTextFormat1_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) +#define IDWriteTextFormat1_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) +#define IDWriteTextFormat1_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) +#define IDWriteTextFormat1_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) +#define IDWriteTextFormat1_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) +#define IDWriteTextFormat1_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) +#define IDWriteTextFormat1_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) +#define IDWriteTextFormat1_SetLineSpacing(This,spacing,line_spacing,baseline) (This)->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline) +#define IDWriteTextFormat1_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) +#define IDWriteTextFormat1_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) +#define IDWriteTextFormat1_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) +#define IDWriteTextFormat1_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) +#define IDWriteTextFormat1_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) +#define IDWriteTextFormat1_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) +#define IDWriteTextFormat1_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) +#define IDWriteTextFormat1_GetLineSpacing(This,method,spacing,baseline) (This)->lpVtbl->GetLineSpacing(This,method,spacing,baseline) +#define IDWriteTextFormat1_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteTextFormat1_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This) +#define IDWriteTextFormat1_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size) +#define IDWriteTextFormat1_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This) +#define IDWriteTextFormat1_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This) +#define IDWriteTextFormat1_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This) +#define IDWriteTextFormat1_GetFontSize(This) (This)->lpVtbl->GetFontSize(This) +#define IDWriteTextFormat1_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This) +#define IDWriteTextFormat1_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size) +/*** IDWriteTextFormat1 methods ***/ +#define IDWriteTextFormat1_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation) +#define IDWriteTextFormat1_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) +#define IDWriteTextFormat1_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled) +#define IDWriteTextFormat1_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) +#define IDWriteTextFormat1_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment) +#define IDWriteTextFormat1_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) +#define IDWriteTextFormat1_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback) +#define IDWriteTextFormat1_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextFormat1_QueryInterface(IDWriteTextFormat1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextFormat1_AddRef(IDWriteTextFormat1* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextFormat1_Release(IDWriteTextFormat1* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextFormat methods ***/ +static inline HRESULT IDWriteTextFormat1_SetTextAlignment(IDWriteTextFormat1* This,DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This,alignment); +} +static inline HRESULT IDWriteTextFormat1_SetParagraphAlignment(IDWriteTextFormat1* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This,alignment); +} +static inline HRESULT IDWriteTextFormat1_SetWordWrapping(IDWriteTextFormat1* This,DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This,wrapping); +} +static inline HRESULT IDWriteTextFormat1_SetReadingDirection(IDWriteTextFormat1* This,DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This,direction); +} +static inline HRESULT IDWriteTextFormat1_SetFlowDirection(IDWriteTextFormat1* This,DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This,direction); +} +static inline HRESULT IDWriteTextFormat1_SetIncrementalTabStop(IDWriteTextFormat1* This,FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +} +static inline HRESULT IDWriteTextFormat1_SetTrimming(IDWriteTextFormat1* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { + return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +} +static inline HRESULT IDWriteTextFormat1_SetLineSpacing(IDWriteTextFormat1* This,DWRITE_LINE_SPACING_METHOD spacing,FLOAT line_spacing,FLOAT baseline) { + return This->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline); +} +static inline DWRITE_TEXT_ALIGNMENT IDWriteTextFormat1_GetTextAlignment(IDWriteTextFormat1* This) { + return This->lpVtbl->GetTextAlignment(This); +} +static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat1_GetParagraphAlignment(IDWriteTextFormat1* This) { + return This->lpVtbl->GetParagraphAlignment(This); +} +static inline DWRITE_WORD_WRAPPING IDWriteTextFormat1_GetWordWrapping(IDWriteTextFormat1* This) { + return This->lpVtbl->GetWordWrapping(This); +} +static inline DWRITE_READING_DIRECTION IDWriteTextFormat1_GetReadingDirection(IDWriteTextFormat1* This) { + return This->lpVtbl->GetReadingDirection(This); +} +static inline DWRITE_FLOW_DIRECTION IDWriteTextFormat1_GetFlowDirection(IDWriteTextFormat1* This) { + return This->lpVtbl->GetFlowDirection(This); +} +static inline FLOAT IDWriteTextFormat1_GetIncrementalTabStop(IDWriteTextFormat1* This) { + return This->lpVtbl->GetIncrementalTabStop(This); +} +static inline HRESULT IDWriteTextFormat1_GetTrimming(IDWriteTextFormat1* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->GetTrimming(This,options,trimming_sign); +} +static inline HRESULT IDWriteTextFormat1_GetLineSpacing(IDWriteTextFormat1* This,DWRITE_LINE_SPACING_METHOD *method,FLOAT *spacing,FLOAT *baseline) { + return This->lpVtbl->GetLineSpacing(This,method,spacing,baseline); +} +static inline HRESULT IDWriteTextFormat1_GetFontCollection(IDWriteTextFormat1* This,IDWriteFontCollection **collection) { + return This->lpVtbl->GetFontCollection(This,collection); +} +static inline UINT32 IDWriteTextFormat1_GetFontFamilyNameLength(IDWriteTextFormat1* This) { + return This->lpVtbl->GetFontFamilyNameLength(This); +} +static inline HRESULT IDWriteTextFormat1_GetFontFamilyName(IDWriteTextFormat1* This,WCHAR *name,UINT32 size) { + return This->lpVtbl->GetFontFamilyName(This,name,size); +} +static inline DWRITE_FONT_WEIGHT IDWriteTextFormat1_GetFontWeight(IDWriteTextFormat1* This) { + return This->lpVtbl->GetFontWeight(This); +} +static inline DWRITE_FONT_STYLE IDWriteTextFormat1_GetFontStyle(IDWriteTextFormat1* This) { + return This->lpVtbl->GetFontStyle(This); +} +static inline DWRITE_FONT_STRETCH IDWriteTextFormat1_GetFontStretch(IDWriteTextFormat1* This) { + return This->lpVtbl->GetFontStretch(This); +} +static inline FLOAT IDWriteTextFormat1_GetFontSize(IDWriteTextFormat1* This) { + return This->lpVtbl->GetFontSize(This); +} +static inline UINT32 IDWriteTextFormat1_GetLocaleNameLength(IDWriteTextFormat1* This) { + return This->lpVtbl->GetLocaleNameLength(This); +} +static inline HRESULT IDWriteTextFormat1_GetLocaleName(IDWriteTextFormat1* This,WCHAR *name,UINT32 size) { + return This->lpVtbl->GetLocaleName(This,name,size); +} +/*** IDWriteTextFormat1 methods ***/ +static inline HRESULT IDWriteTextFormat1_SetVerticalGlyphOrientation(IDWriteTextFormat1* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { + return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation); +} +static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextFormat1_GetVerticalGlyphOrientation(IDWriteTextFormat1* This) { + return This->lpVtbl->GetVerticalGlyphOrientation(This); +} +static inline HRESULT IDWriteTextFormat1_SetLastLineWrapping(IDWriteTextFormat1* This,WINBOOL lastline_wrapping_enabled) { + return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled); +} +static inline WINBOOL IDWriteTextFormat1_GetLastLineWrapping(IDWriteTextFormat1* This) { + return This->lpVtbl->GetLastLineWrapping(This); +} +static inline HRESULT IDWriteTextFormat1_SetOpticalAlignment(IDWriteTextFormat1* This,DWRITE_OPTICAL_ALIGNMENT alignment) { + return This->lpVtbl->SetOpticalAlignment(This,alignment); +} +static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextFormat1_GetOpticalAlignment(IDWriteTextFormat1* This) { + return This->lpVtbl->GetOpticalAlignment(This); +} +static inline HRESULT IDWriteTextFormat1_SetFontFallback(IDWriteTextFormat1* This,IDWriteFontFallback *fallback) { + return This->lpVtbl->SetFontFallback(This,fallback); +} +static inline HRESULT IDWriteTextFormat1_GetFontFallback(IDWriteTextFormat1* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetFontFallback(This,fallback); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextFormat1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextLayout2 interface + */ +#ifndef __IDWriteTextLayout2_INTERFACE_DEFINED__ +#define __IDWriteTextLayout2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextLayout2, 0x1093c18f, 0x8d5e, 0x43f0, 0xb0,0x64, 0x09,0x17,0x31,0x1b,0x52,0x5e); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("1093c18f-8d5e-43f0-b064-0917311b525e") +IDWriteTextLayout2 : public IDWriteTextLayout1 +{ + virtual HRESULT STDMETHODCALLTYPE GetMetrics( + DWRITE_TEXT_METRICS1 *metrics) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVerticalGlyphOrientation( + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) = 0; + + virtual DWRITE_VERTICAL_GLYPH_ORIENTATION STDMETHODCALLTYPE GetVerticalGlyphOrientation( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetLastLineWrapping( + WINBOOL lastline_wrapping_enabled) = 0; + + virtual WINBOOL STDMETHODCALLTYPE GetLastLineWrapping( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetOpticalAlignment( + DWRITE_OPTICAL_ALIGNMENT alignment) = 0; + + virtual DWRITE_OPTICAL_ALIGNMENT STDMETHODCALLTYPE GetOpticalAlignment( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFontFallback( + IDWriteFontFallback *fallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFallback( + IDWriteFontFallback **fallback) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextLayout2, 0x1093c18f, 0x8d5e, 0x43f0, 0xb0,0x64, 0x09,0x17,0x31,0x1b,0x52,0x5e) +#endif +#else +typedef struct IDWriteTextLayout2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextLayout2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextLayout2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextLayout2 *This); + + /*** IDWriteTextFormat methods ***/ + HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( + IDWriteTextLayout2 *This, + DWRITE_TEXT_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( + IDWriteTextLayout2 *This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( + IDWriteTextLayout2 *This, + DWRITE_WORD_WRAPPING wrapping); + + HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( + IDWriteTextLayout2 *This, + DWRITE_READING_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( + IDWriteTextLayout2 *This, + DWRITE_FLOW_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( + IDWriteTextLayout2 *This, + FLOAT tabstop); + + HRESULT (STDMETHODCALLTYPE *SetTrimming)( + IDWriteTextLayout2 *This, + const DWRITE_TRIMMING *trimming, + IDWriteInlineObject *trimming_sign); + + HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( + IDWriteTextLayout2 *This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); + + DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( + IDWriteTextLayout2 *This); + + DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( + IDWriteTextLayout2 *This); + + DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( + IDWriteTextLayout2 *This); + + DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( + IDWriteTextLayout2 *This); + + DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( + IDWriteTextLayout2 *This); + + FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( + IDWriteTextLayout2 *This); + + HRESULT (STDMETHODCALLTYPE *GetTrimming)( + IDWriteTextLayout2 *This, + DWRITE_TRIMMING *options, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( + IDWriteTextLayout2 *This, + DWRITE_LINE_SPACING_METHOD *method, + FLOAT *spacing, + FLOAT *baseline); + + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteTextLayout2 *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( + IDWriteTextLayout2 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( + IDWriteTextLayout2 *This, + WCHAR *name, + UINT32 size); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( + IDWriteTextLayout2 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( + IDWriteTextLayout2 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( + IDWriteTextLayout2 *This); + + FLOAT (STDMETHODCALLTYPE *GetFontSize)( + IDWriteTextLayout2 *This); + + UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( + IDWriteTextLayout2 *This); + + HRESULT (STDMETHODCALLTYPE *GetLocaleName)( + IDWriteTextLayout2 *This, + WCHAR *name, + UINT32 size); + + /*** IDWriteTextLayout methods ***/ + HRESULT (STDMETHODCALLTYPE *SetMaxWidth)( + IDWriteTextLayout2 *This, + FLOAT maxWidth); + + HRESULT (STDMETHODCALLTYPE *SetMaxHeight)( + IDWriteTextLayout2 *This, + FLOAT maxHeight); + + HRESULT (STDMETHODCALLTYPE *SetFontCollection)( + IDWriteTextLayout2 *This, + IDWriteFontCollection *collection, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)( + IDWriteTextLayout2 *This, + const WCHAR *name, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontWeight)( + IDWriteTextLayout2 *This, + DWRITE_FONT_WEIGHT weight, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontStyle)( + IDWriteTextLayout2 *This, + DWRITE_FONT_STYLE style, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontStretch)( + IDWriteTextLayout2 *This, + DWRITE_FONT_STRETCH stretch, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontSize)( + IDWriteTextLayout2 *This, + FLOAT size, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetUnderline)( + IDWriteTextLayout2 *This, + WINBOOL underline, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetStrikethrough)( + IDWriteTextLayout2 *This, + WINBOOL strikethrough, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)( + IDWriteTextLayout2 *This, + IUnknown *effect, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetInlineObject)( + IDWriteTextLayout2 *This, + IDWriteInlineObject *object, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetTypography)( + IDWriteTextLayout2 *This, + IDWriteTypography *typography, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetLocaleName)( + IDWriteTextLayout2 *This, + const WCHAR *locale, + DWRITE_TEXT_RANGE range); + + FLOAT (STDMETHODCALLTYPE *GetMaxWidth)( + IDWriteTextLayout2 *This); + + FLOAT (STDMETHODCALLTYPE *GetMaxHeight)( + IDWriteTextLayout2 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)( + IDWriteTextLayout2 *This, + UINT32 pos, + IDWriteFontCollection **collection, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)( + IDWriteTextLayout2 *This, + UINT32 pos, + UINT32 *len, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)( + IDWriteTextLayout2 *This, + UINT32 position, + WCHAR *name, + UINT32 name_size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)( + IDWriteTextLayout2 *This, + UINT32 position, + DWRITE_FONT_WEIGHT *weight, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)( + IDWriteTextLayout2 *This, + UINT32 currentPosition, + DWRITE_FONT_STYLE *style, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)( + IDWriteTextLayout2 *This, + UINT32 position, + DWRITE_FONT_STRETCH *stretch, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)( + IDWriteTextLayout2 *This, + UINT32 position, + FLOAT *size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetUnderline)( + IDWriteTextLayout2 *This, + UINT32 position, + WINBOOL *has_underline, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetStrikethrough)( + IDWriteTextLayout2 *This, + UINT32 position, + WINBOOL *has_strikethrough, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)( + IDWriteTextLayout2 *This, + UINT32 position, + IUnknown **effect, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetInlineObject)( + IDWriteTextLayout2 *This, + UINT32 position, + IDWriteInlineObject **object, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetTypography)( + IDWriteTextLayout2 *This, + UINT32 position, + IDWriteTypography **typography, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)( + IDWriteTextLayout2 *This, + UINT32 position, + UINT32 *length, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)( + IDWriteTextLayout2 *This, + UINT32 position, + WCHAR *name, + UINT32 name_size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *Draw)( + IDWriteTextLayout2 *This, + void *context, + IDWriteTextRenderer *renderer, + FLOAT originX, + FLOAT originY); + + HRESULT (STDMETHODCALLTYPE *GetLineMetrics)( + IDWriteTextLayout2 *This, + DWRITE_LINE_METRICS *metrics, + UINT32 max_count, + UINT32 *actual_count); + + HRESULT (STDMETHODCALLTYPE *GetMetrics)( + IDWriteTextLayout2 *This, + DWRITE_TEXT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)( + IDWriteTextLayout2 *This, + DWRITE_OVERHANG_METRICS *overhangs); + + HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)( + IDWriteTextLayout2 *This, + DWRITE_CLUSTER_METRICS *metrics, + UINT32 max_count, + UINT32 *act_count); + + HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)( + IDWriteTextLayout2 *This, + FLOAT *min_width); + + HRESULT (STDMETHODCALLTYPE *HitTestPoint)( + IDWriteTextLayout2 *This, + FLOAT pointX, + FLOAT pointY, + WINBOOL *is_trailinghit, + WINBOOL *is_inside, + DWRITE_HIT_TEST_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)( + IDWriteTextLayout2 *This, + UINT32 textPosition, + WINBOOL is_trailinghit, + FLOAT *pointX, + FLOAT *pointY, + DWRITE_HIT_TEST_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *HitTestTextRange)( + IDWriteTextLayout2 *This, + UINT32 textPosition, + UINT32 textLength, + FLOAT originX, + FLOAT originY, + DWRITE_HIT_TEST_METRICS *metrics, + UINT32 max_metricscount, + UINT32 *actual_metricscount); + + /*** IDWriteTextLayout1 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetPairKerning)( + IDWriteTextLayout2 *This, + WINBOOL is_pairkerning_enabled, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *GetPairKerning)( + IDWriteTextLayout2 *This, + UINT32 position, + WINBOOL *is_pairkerning_enabled, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *SetCharacterSpacing)( + IDWriteTextLayout2 *This, + FLOAT leading_spacing, + FLOAT trailing_spacing, + FLOAT minimum_advance_width, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *GetCharacterSpacing)( + IDWriteTextLayout2 *This, + UINT32 position, + FLOAT *leading_spacing, + FLOAT *trailing_spacing, + FLOAT *minimum_advance_width, + DWRITE_TEXT_RANGE *range); + + /*** IDWriteTextLayout2 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout2_GetMetrics)( + IDWriteTextLayout2 *This, + DWRITE_TEXT_METRICS1 *metrics); + + HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)( + IDWriteTextLayout2 *This, + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); + + DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)( + IDWriteTextLayout2 *This); + + HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)( + IDWriteTextLayout2 *This, + WINBOOL lastline_wrapping_enabled); + + WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)( + IDWriteTextLayout2 *This); + + HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)( + IDWriteTextLayout2 *This, + DWRITE_OPTICAL_ALIGNMENT alignment); + + DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)( + IDWriteTextLayout2 *This); + + HRESULT (STDMETHODCALLTYPE *SetFontFallback)( + IDWriteTextLayout2 *This, + IDWriteFontFallback *fallback); + + HRESULT (STDMETHODCALLTYPE *GetFontFallback)( + IDWriteTextLayout2 *This, + IDWriteFontFallback **fallback); + + END_INTERFACE +} IDWriteTextLayout2Vtbl; + +interface IDWriteTextLayout2 { + CONST_VTBL IDWriteTextLayout2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextLayout2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextLayout2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextLayout2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextFormat methods ***/ +#define IDWriteTextLayout2_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) +#define IDWriteTextLayout2_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) +#define IDWriteTextLayout2_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) +#define IDWriteTextLayout2_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) +#define IDWriteTextLayout2_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) +#define IDWriteTextLayout2_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) +#define IDWriteTextLayout2_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) +#define IDWriteTextLayout2_SetLineSpacing(This,spacing,line_spacing,baseline) (This)->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline) +#define IDWriteTextLayout2_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) +#define IDWriteTextLayout2_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) +#define IDWriteTextLayout2_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) +#define IDWriteTextLayout2_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) +#define IDWriteTextLayout2_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) +#define IDWriteTextLayout2_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) +#define IDWriteTextLayout2_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) +#define IDWriteTextLayout2_GetLineSpacing(This,method,spacing,baseline) (This)->lpVtbl->GetLineSpacing(This,method,spacing,baseline) +/*** IDWriteTextLayout methods ***/ +#define IDWriteTextLayout2_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth) +#define IDWriteTextLayout2_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight) +#define IDWriteTextLayout2_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range) +#define IDWriteTextLayout2_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range) +#define IDWriteTextLayout2_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range) +#define IDWriteTextLayout2_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range) +#define IDWriteTextLayout2_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range) +#define IDWriteTextLayout2_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range) +#define IDWriteTextLayout2_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range) +#define IDWriteTextLayout2_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range) +#define IDWriteTextLayout2_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range) +#define IDWriteTextLayout2_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range) +#define IDWriteTextLayout2_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range) +#define IDWriteTextLayout2_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range) +#define IDWriteTextLayout2_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This) +#define IDWriteTextLayout2_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This) +#define IDWriteTextLayout2_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range) +#define IDWriteTextLayout2_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range) +#define IDWriteTextLayout2_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range) +#define IDWriteTextLayout2_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range) +#define IDWriteTextLayout2_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range) +#define IDWriteTextLayout2_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range) +#define IDWriteTextLayout2_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range) +#define IDWriteTextLayout2_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range) +#define IDWriteTextLayout2_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range) +#define IDWriteTextLayout2_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range) +#define IDWriteTextLayout2_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range) +#define IDWriteTextLayout2_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range) +#define IDWriteTextLayout2_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range) +#define IDWriteTextLayout2_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range) +#define IDWriteTextLayout2_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY) +#define IDWriteTextLayout2_GetLineMetrics(This,metrics,max_count,actual_count) (This)->lpVtbl->GetLineMetrics(This,metrics,max_count,actual_count) +#define IDWriteTextLayout2_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs) +#define IDWriteTextLayout2_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count) +#define IDWriteTextLayout2_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width) +#define IDWriteTextLayout2_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) +#define IDWriteTextLayout2_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) +#define IDWriteTextLayout2_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) +/*** IDWriteTextLayout1 methods ***/ +#define IDWriteTextLayout2_SetPairKerning(This,is_pairkerning_enabled,range) (This)->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range) +#define IDWriteTextLayout2_GetPairKerning(This,position,is_pairkerning_enabled,range) (This)->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range) +#define IDWriteTextLayout2_SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) +#define IDWriteTextLayout2_GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) +/*** IDWriteTextLayout2 methods ***/ +#define IDWriteTextLayout2_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics) +#define IDWriteTextLayout2_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation) +#define IDWriteTextLayout2_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) +#define IDWriteTextLayout2_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled) +#define IDWriteTextLayout2_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) +#define IDWriteTextLayout2_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment) +#define IDWriteTextLayout2_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) +#define IDWriteTextLayout2_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback) +#define IDWriteTextLayout2_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextLayout2_QueryInterface(IDWriteTextLayout2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextLayout2_AddRef(IDWriteTextLayout2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextLayout2_Release(IDWriteTextLayout2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextFormat methods ***/ +static inline HRESULT IDWriteTextLayout2_SetTextAlignment(IDWriteTextLayout2* This,DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This,alignment); +} +static inline HRESULT IDWriteTextLayout2_SetParagraphAlignment(IDWriteTextLayout2* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This,alignment); +} +static inline HRESULT IDWriteTextLayout2_SetWordWrapping(IDWriteTextLayout2* This,DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This,wrapping); +} +static inline HRESULT IDWriteTextLayout2_SetReadingDirection(IDWriteTextLayout2* This,DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This,direction); +} +static inline HRESULT IDWriteTextLayout2_SetFlowDirection(IDWriteTextLayout2* This,DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This,direction); +} +static inline HRESULT IDWriteTextLayout2_SetIncrementalTabStop(IDWriteTextLayout2* This,FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +} +static inline HRESULT IDWriteTextLayout2_SetTrimming(IDWriteTextLayout2* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { + return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +} +static inline HRESULT IDWriteTextLayout2_SetLineSpacing(IDWriteTextLayout2* This,DWRITE_LINE_SPACING_METHOD spacing,FLOAT line_spacing,FLOAT baseline) { + return This->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline); +} +static inline DWRITE_TEXT_ALIGNMENT IDWriteTextLayout2_GetTextAlignment(IDWriteTextLayout2* This) { + return This->lpVtbl->GetTextAlignment(This); +} +static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout2_GetParagraphAlignment(IDWriteTextLayout2* This) { + return This->lpVtbl->GetParagraphAlignment(This); +} +static inline DWRITE_WORD_WRAPPING IDWriteTextLayout2_GetWordWrapping(IDWriteTextLayout2* This) { + return This->lpVtbl->GetWordWrapping(This); +} +static inline DWRITE_READING_DIRECTION IDWriteTextLayout2_GetReadingDirection(IDWriteTextLayout2* This) { + return This->lpVtbl->GetReadingDirection(This); +} +static inline DWRITE_FLOW_DIRECTION IDWriteTextLayout2_GetFlowDirection(IDWriteTextLayout2* This) { + return This->lpVtbl->GetFlowDirection(This); +} +static inline FLOAT IDWriteTextLayout2_GetIncrementalTabStop(IDWriteTextLayout2* This) { + return This->lpVtbl->GetIncrementalTabStop(This); +} +static inline HRESULT IDWriteTextLayout2_GetTrimming(IDWriteTextLayout2* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->GetTrimming(This,options,trimming_sign); +} +static inline HRESULT IDWriteTextLayout2_GetLineSpacing(IDWriteTextLayout2* This,DWRITE_LINE_SPACING_METHOD *method,FLOAT *spacing,FLOAT *baseline) { + return This->lpVtbl->GetLineSpacing(This,method,spacing,baseline); +} +/*** IDWriteTextLayout methods ***/ +static inline HRESULT IDWriteTextLayout2_SetMaxWidth(IDWriteTextLayout2* This,FLOAT maxWidth) { + return This->lpVtbl->SetMaxWidth(This,maxWidth); +} +static inline HRESULT IDWriteTextLayout2_SetMaxHeight(IDWriteTextLayout2* This,FLOAT maxHeight) { + return This->lpVtbl->SetMaxHeight(This,maxHeight); +} +static inline HRESULT IDWriteTextLayout2_SetFontCollection(IDWriteTextLayout2* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontCollection(This,collection,range); +} +static inline HRESULT IDWriteTextLayout2_SetFontFamilyName(IDWriteTextLayout2* This,const WCHAR *name,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontFamilyName(This,name,range); +} +static inline HRESULT IDWriteTextLayout2_SetFontWeight(IDWriteTextLayout2* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontWeight(This,weight,range); +} +static inline HRESULT IDWriteTextLayout2_SetFontStyle(IDWriteTextLayout2* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStyle(This,style,range); +} +static inline HRESULT IDWriteTextLayout2_SetFontStretch(IDWriteTextLayout2* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStretch(This,stretch,range); +} +static inline HRESULT IDWriteTextLayout2_SetFontSize(IDWriteTextLayout2* This,FLOAT size,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontSize(This,size,range); +} +static inline HRESULT IDWriteTextLayout2_SetUnderline(IDWriteTextLayout2* This,WINBOOL underline,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetUnderline(This,underline,range); +} +static inline HRESULT IDWriteTextLayout2_SetStrikethrough(IDWriteTextLayout2* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetStrikethrough(This,strikethrough,range); +} +static inline HRESULT IDWriteTextLayout2_SetDrawingEffect(IDWriteTextLayout2* This,IUnknown *effect,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetDrawingEffect(This,effect,range); +} +static inline HRESULT IDWriteTextLayout2_SetInlineObject(IDWriteTextLayout2* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetInlineObject(This,object,range); +} +static inline HRESULT IDWriteTextLayout2_SetTypography(IDWriteTextLayout2* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetTypography(This,typography,range); +} +static inline HRESULT IDWriteTextLayout2_SetLocaleName(IDWriteTextLayout2* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetLocaleName(This,locale,range); +} +static inline FLOAT IDWriteTextLayout2_GetMaxWidth(IDWriteTextLayout2* This) { + return This->lpVtbl->GetMaxWidth(This); +} +static inline FLOAT IDWriteTextLayout2_GetMaxHeight(IDWriteTextLayout2* This) { + return This->lpVtbl->GetMaxHeight(This); +} +static inline HRESULT IDWriteTextLayout2_GetFontCollection(IDWriteTextLayout2* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range); +} +static inline HRESULT IDWriteTextLayout2_GetFontFamilyNameLength(IDWriteTextLayout2* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range); +} +static inline HRESULT IDWriteTextLayout2_GetFontFamilyName(IDWriteTextLayout2* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range); +} +static inline HRESULT IDWriteTextLayout2_GetFontWeight(IDWriteTextLayout2* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range); +} +static inline HRESULT IDWriteTextLayout2_GetFontStyle(IDWriteTextLayout2* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range); +} +static inline HRESULT IDWriteTextLayout2_GetFontStretch(IDWriteTextLayout2* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range); +} +static inline HRESULT IDWriteTextLayout2_GetFontSize(IDWriteTextLayout2* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range); +} +static inline HRESULT IDWriteTextLayout2_GetUnderline(IDWriteTextLayout2* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetUnderline(This,position,has_underline,range); +} +static inline HRESULT IDWriteTextLayout2_GetStrikethrough(IDWriteTextLayout2* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range); +} +static inline HRESULT IDWriteTextLayout2_GetDrawingEffect(IDWriteTextLayout2* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetDrawingEffect(This,position,effect,range); +} +static inline HRESULT IDWriteTextLayout2_GetInlineObject(IDWriteTextLayout2* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetInlineObject(This,position,object,range); +} +static inline HRESULT IDWriteTextLayout2_GetTypography(IDWriteTextLayout2* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetTypography(This,position,typography,range); +} +static inline HRESULT IDWriteTextLayout2_GetLocaleNameLength(IDWriteTextLayout2* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range); +} +static inline HRESULT IDWriteTextLayout2_GetLocaleName(IDWriteTextLayout2* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range); +} +static inline HRESULT IDWriteTextLayout2_Draw(IDWriteTextLayout2* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) { + return This->lpVtbl->Draw(This,context,renderer,originX,originY); +} +static inline HRESULT IDWriteTextLayout2_GetLineMetrics(IDWriteTextLayout2* This,DWRITE_LINE_METRICS *metrics,UINT32 max_count,UINT32 *actual_count) { + return This->lpVtbl->GetLineMetrics(This,metrics,max_count,actual_count); +} +static inline HRESULT IDWriteTextLayout2_GetOverhangMetrics(IDWriteTextLayout2* This,DWRITE_OVERHANG_METRICS *overhangs) { + return This->lpVtbl->GetOverhangMetrics(This,overhangs); +} +static inline HRESULT IDWriteTextLayout2_GetClusterMetrics(IDWriteTextLayout2* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) { + return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count); +} +static inline HRESULT IDWriteTextLayout2_DetermineMinWidth(IDWriteTextLayout2* This,FLOAT *min_width) { + return This->lpVtbl->DetermineMinWidth(This,min_width); +} +static inline HRESULT IDWriteTextLayout2_HitTestPoint(IDWriteTextLayout2* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) { + return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics); +} +static inline HRESULT IDWriteTextLayout2_HitTestTextPosition(IDWriteTextLayout2* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) { + return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics); +} +static inline HRESULT IDWriteTextLayout2_HitTestTextRange(IDWriteTextLayout2* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) { + return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount); +} +/*** IDWriteTextLayout1 methods ***/ +static inline HRESULT IDWriteTextLayout2_SetPairKerning(IDWriteTextLayout2* This,WINBOOL is_pairkerning_enabled,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range); +} +static inline HRESULT IDWriteTextLayout2_GetPairKerning(IDWriteTextLayout2* This,UINT32 position,WINBOOL *is_pairkerning_enabled,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range); +} +static inline HRESULT IDWriteTextLayout2_SetCharacterSpacing(IDWriteTextLayout2* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT minimum_advance_width,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range); +} +static inline HRESULT IDWriteTextLayout2_GetCharacterSpacing(IDWriteTextLayout2* This,UINT32 position,FLOAT *leading_spacing,FLOAT *trailing_spacing,FLOAT *minimum_advance_width,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range); +} +/*** IDWriteTextLayout2 methods ***/ +static inline HRESULT IDWriteTextLayout2_GetMetrics(IDWriteTextLayout2* This,DWRITE_TEXT_METRICS1 *metrics) { + return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics); +} +static inline HRESULT IDWriteTextLayout2_SetVerticalGlyphOrientation(IDWriteTextLayout2* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { + return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation); +} +static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextLayout2_GetVerticalGlyphOrientation(IDWriteTextLayout2* This) { + return This->lpVtbl->GetVerticalGlyphOrientation(This); +} +static inline HRESULT IDWriteTextLayout2_SetLastLineWrapping(IDWriteTextLayout2* This,WINBOOL lastline_wrapping_enabled) { + return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled); +} +static inline WINBOOL IDWriteTextLayout2_GetLastLineWrapping(IDWriteTextLayout2* This) { + return This->lpVtbl->GetLastLineWrapping(This); +} +static inline HRESULT IDWriteTextLayout2_SetOpticalAlignment(IDWriteTextLayout2* This,DWRITE_OPTICAL_ALIGNMENT alignment) { + return This->lpVtbl->SetOpticalAlignment(This,alignment); +} +static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextLayout2_GetOpticalAlignment(IDWriteTextLayout2* This) { + return This->lpVtbl->GetOpticalAlignment(This); +} +static inline HRESULT IDWriteTextLayout2_SetFontFallback(IDWriteTextLayout2* This,IDWriteFontFallback *fallback) { + return This->lpVtbl->SetFontFallback(This,fallback); +} +static inline HRESULT IDWriteTextLayout2_GetFontFallback(IDWriteTextLayout2* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetFontFallback(This,fallback); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextLayout2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextAnalyzer2 interface + */ +#ifndef __IDWriteTextAnalyzer2_INTERFACE_DEFINED__ +#define __IDWriteTextAnalyzer2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextAnalyzer2, 0x553a9ff3, 0x5693, 0x4df7, 0xb5,0x2b, 0x74,0x80,0x6f,0x7f,0x2e,0xb9); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("553a9ff3-5693-4df7-b52b-74806f7f2eb9") +IDWriteTextAnalyzer2 : public IDWriteTextAnalyzer1 +{ + virtual HRESULT STDMETHODCALLTYPE GetGlyphOrientationTransform( + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + WINBOOL is_sideways, + FLOAT originX, + FLOAT originY, + DWRITE_MATRIX *transform) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTypographicFeatures( + IDWriteFontFace *fontface, + DWRITE_SCRIPT_ANALYSIS analysis, + const WCHAR *localeName, + UINT32 max_tagcount, + UINT32 *actual_tagcount, + DWRITE_FONT_FEATURE_TAG *tags) = 0; + + virtual HRESULT STDMETHODCALLTYPE CheckTypographicFeature( + IDWriteFontFace *fontface, + DWRITE_SCRIPT_ANALYSIS analysis, + const WCHAR *localeName, + DWRITE_FONT_FEATURE_TAG feature, + UINT32 glyph_count, + const UINT16 *indices, + UINT8 *feature_applies) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextAnalyzer2, 0x553a9ff3, 0x5693, 0x4df7, 0xb5,0x2b, 0x74,0x80,0x6f,0x7f,0x2e,0xb9) +#endif +#else +typedef struct IDWriteTextAnalyzer2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextAnalyzer2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextAnalyzer2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextAnalyzer2 *This); + + /*** IDWriteTextAnalyzer methods ***/ + HRESULT (STDMETHODCALLTYPE *AnalyzeScript)( + IDWriteTextAnalyzer2 *This, + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink); + + HRESULT (STDMETHODCALLTYPE *AnalyzeBidi)( + IDWriteTextAnalyzer2 *This, + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink); + + HRESULT (STDMETHODCALLTYPE *AnalyzeNumberSubstitution)( + IDWriteTextAnalyzer2 *This, + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink); + + HRESULT (STDMETHODCALLTYPE *AnalyzeLineBreakpoints)( + IDWriteTextAnalyzer2 *This, + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink); + + HRESULT (STDMETHODCALLTYPE *GetGlyphs)( + IDWriteTextAnalyzer2 *This, + const WCHAR *text, + UINT32 length, + IDWriteFontFace *font_face, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS *analysis, + const WCHAR *locale, + IDWriteNumberSubstitution *substitution, + const DWRITE_TYPOGRAPHIC_FEATURES **features, + const UINT32 *feature_range_len, + UINT32 feature_ranges, + UINT32 max_glyph_count, + UINT16 *clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES *text_props, + UINT16 *glyph_indices, + DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, + UINT32 *actual_glyph_count); + + HRESULT (STDMETHODCALLTYPE *GetGlyphPlacements)( + IDWriteTextAnalyzer2 *This, + const WCHAR *text, + const UINT16 *clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES *props, + UINT32 text_len, + const UINT16 *glyph_indices, + const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, + UINT32 glyph_count, + IDWriteFontFace *font_face, + FLOAT fontEmSize, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS *analysis, + const WCHAR *locale, + const DWRITE_TYPOGRAPHIC_FEATURES **features, + const UINT32 *feature_range_len, + UINT32 feature_ranges, + FLOAT *glyph_advances, + DWRITE_GLYPH_OFFSET *glyph_offsets); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphPlacements)( + IDWriteTextAnalyzer2 *This, + const WCHAR *text, + const UINT16 *clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES *props, + UINT32 text_len, + const UINT16 *glyph_indices, + const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, + UINT32 glyph_count, + IDWriteFontFace *font_face, + FLOAT fontEmSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS *analysis, + const WCHAR *locale, + const DWRITE_TYPOGRAPHIC_FEATURES **features, + const UINT32 *feature_range_lengths, + UINT32 feature_ranges, + FLOAT *glyph_advances, + DWRITE_GLYPH_OFFSET *glyph_offsets); + + /*** IDWriteTextAnalyzer1 methods ***/ + HRESULT (STDMETHODCALLTYPE *ApplyCharacterSpacing)( + IDWriteTextAnalyzer2 *This, + FLOAT leading_spacing, + FLOAT trailing_spacing, + FLOAT min_advance_width, + UINT32 len, + UINT32 glyph_count, + const UINT16 *clustermap, + const FLOAT *advances, + const DWRITE_GLYPH_OFFSET *offsets, + const DWRITE_SHAPING_GLYPH_PROPERTIES *props, + FLOAT *modified_advances, + DWRITE_GLYPH_OFFSET *modified_offsets); + + HRESULT (STDMETHODCALLTYPE *GetBaseline)( + IDWriteTextAnalyzer2 *This, + IDWriteFontFace *face, + DWRITE_BASELINE baseline, + WINBOOL vertical, + WINBOOL is_simulation_allowed, + DWRITE_SCRIPT_ANALYSIS sa, + const WCHAR *localeName, + INT32 *baseline_coord, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *AnalyzeVerticalGlyphOrientation)( + IDWriteTextAnalyzer2 *This, + IDWriteTextAnalysisSource1 *source, + UINT32 text_pos, + UINT32 len, + IDWriteTextAnalysisSink1 *sink); + + HRESULT (STDMETHODCALLTYPE *GetGlyphOrientationTransform)( + IDWriteTextAnalyzer2 *This, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + WINBOOL is_sideways, + DWRITE_MATRIX *transform); + + HRESULT (STDMETHODCALLTYPE *GetScriptProperties)( + IDWriteTextAnalyzer2 *This, + DWRITE_SCRIPT_ANALYSIS sa, + DWRITE_SCRIPT_PROPERTIES *props); + + HRESULT (STDMETHODCALLTYPE *GetTextComplexity)( + IDWriteTextAnalyzer2 *This, + const WCHAR *text, + UINT32 len, + IDWriteFontFace *face, + WINBOOL *is_simple, + UINT32 *len_read, + UINT16 *indices); + + HRESULT (STDMETHODCALLTYPE *GetJustificationOpportunities)( + IDWriteTextAnalyzer2 *This, + IDWriteFontFace *face, + FLOAT font_em_size, + DWRITE_SCRIPT_ANALYSIS sa, + UINT32 length, + UINT32 glyph_count, + const WCHAR *text, + const UINT16 *clustermap, + const DWRITE_SHAPING_GLYPH_PROPERTIES *prop, + DWRITE_JUSTIFICATION_OPPORTUNITY *jo); + + HRESULT (STDMETHODCALLTYPE *JustifyGlyphAdvances)( + IDWriteTextAnalyzer2 *This, + FLOAT width, + UINT32 glyph_count, + const DWRITE_JUSTIFICATION_OPPORTUNITY *jo, + const FLOAT *advances, + const DWRITE_GLYPH_OFFSET *offsets, + FLOAT *justifiedadvances, + DWRITE_GLYPH_OFFSET *justifiedoffsets); + + HRESULT (STDMETHODCALLTYPE *GetJustifiedGlyphs)( + IDWriteTextAnalyzer2 *This, + IDWriteFontFace *face, + FLOAT font_em_size, + DWRITE_SCRIPT_ANALYSIS sa, + UINT32 length, + UINT32 glyph_count, + UINT32 max_glyphcount, + const UINT16 *clustermap, + const UINT16 *indices, + const FLOAT *advances, + const FLOAT *justifiedadvances, + const DWRITE_GLYPH_OFFSET *justifiedoffsets, + const DWRITE_SHAPING_GLYPH_PROPERTIES *prop, + UINT32 *actual_count, + UINT16 *modified_clustermap, + UINT16 *modified_indices, + FLOAT *modified_advances, + DWRITE_GLYPH_OFFSET *modified_offsets); + + /*** IDWriteTextAnalyzer2 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteTextAnalyzer2_GetGlyphOrientationTransform)( + IDWriteTextAnalyzer2 *This, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + WINBOOL is_sideways, + FLOAT originX, + FLOAT originY, + DWRITE_MATRIX *transform); + + HRESULT (STDMETHODCALLTYPE *GetTypographicFeatures)( + IDWriteTextAnalyzer2 *This, + IDWriteFontFace *fontface, + DWRITE_SCRIPT_ANALYSIS analysis, + const WCHAR *localeName, + UINT32 max_tagcount, + UINT32 *actual_tagcount, + DWRITE_FONT_FEATURE_TAG *tags); + + HRESULT (STDMETHODCALLTYPE *CheckTypographicFeature)( + IDWriteTextAnalyzer2 *This, + IDWriteFontFace *fontface, + DWRITE_SCRIPT_ANALYSIS analysis, + const WCHAR *localeName, + DWRITE_FONT_FEATURE_TAG feature, + UINT32 glyph_count, + const UINT16 *indices, + UINT8 *feature_applies); + + END_INTERFACE +} IDWriteTextAnalyzer2Vtbl; + +interface IDWriteTextAnalyzer2 { + CONST_VTBL IDWriteTextAnalyzer2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextAnalyzer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextAnalyzer2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextAnalyzer2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextAnalyzer methods ***/ +#define IDWriteTextAnalyzer2_AnalyzeScript(This,source,position,length,sink) (This)->lpVtbl->AnalyzeScript(This,source,position,length,sink) +#define IDWriteTextAnalyzer2_AnalyzeBidi(This,source,position,length,sink) (This)->lpVtbl->AnalyzeBidi(This,source,position,length,sink) +#define IDWriteTextAnalyzer2_AnalyzeNumberSubstitution(This,source,position,length,sink) (This)->lpVtbl->AnalyzeNumberSubstitution(This,source,position,length,sink) +#define IDWriteTextAnalyzer2_AnalyzeLineBreakpoints(This,source,position,length,sink) (This)->lpVtbl->AnalyzeLineBreakpoints(This,source,position,length,sink) +#define IDWriteTextAnalyzer2_GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count) (This)->lpVtbl->GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count) +#define IDWriteTextAnalyzer2_GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets) (This)->lpVtbl->GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets) +#define IDWriteTextAnalyzer2_GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets) (This)->lpVtbl->GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets) +/*** IDWriteTextAnalyzer1 methods ***/ +#define IDWriteTextAnalyzer2_ApplyCharacterSpacing(This,leading_spacing,trailing_spacing,min_advance_width,len,glyph_count,clustermap,advances,offsets,props,modified_advances,modified_offsets) (This)->lpVtbl->ApplyCharacterSpacing(This,leading_spacing,trailing_spacing,min_advance_width,len,glyph_count,clustermap,advances,offsets,props,modified_advances,modified_offsets) +#define IDWriteTextAnalyzer2_GetBaseline(This,face,baseline,vertical,is_simulation_allowed,sa,localeName,baseline_coord,exists) (This)->lpVtbl->GetBaseline(This,face,baseline,vertical,is_simulation_allowed,sa,localeName,baseline_coord,exists) +#define IDWriteTextAnalyzer2_AnalyzeVerticalGlyphOrientation(This,source,text_pos,len,sink) (This)->lpVtbl->AnalyzeVerticalGlyphOrientation(This,source,text_pos,len,sink) +#define IDWriteTextAnalyzer2_GetScriptProperties(This,sa,props) (This)->lpVtbl->GetScriptProperties(This,sa,props) +#define IDWriteTextAnalyzer2_GetTextComplexity(This,text,len,face,is_simple,len_read,indices) (This)->lpVtbl->GetTextComplexity(This,text,len,face,is_simple,len_read,indices) +#define IDWriteTextAnalyzer2_GetJustificationOpportunities(This,face,font_em_size,sa,length,glyph_count,text,clustermap,prop,jo) (This)->lpVtbl->GetJustificationOpportunities(This,face,font_em_size,sa,length,glyph_count,text,clustermap,prop,jo) +#define IDWriteTextAnalyzer2_JustifyGlyphAdvances(This,width,glyph_count,jo,advances,offsets,justifiedadvances,justifiedoffsets) (This)->lpVtbl->JustifyGlyphAdvances(This,width,glyph_count,jo,advances,offsets,justifiedadvances,justifiedoffsets) +#define IDWriteTextAnalyzer2_GetJustifiedGlyphs(This,face,font_em_size,sa,length,glyph_count,max_glyphcount,clustermap,indices,advances,justifiedadvances,justifiedoffsets,prop,actual_count,modified_clustermap,modified_indices,modified_advances,modified_offsets) (This)->lpVtbl->GetJustifiedGlyphs(This,face,font_em_size,sa,length,glyph_count,max_glyphcount,clustermap,indices,advances,justifiedadvances,justifiedoffsets,prop,actual_count,modified_clustermap,modified_indices,modified_advances,modified_offsets) +/*** IDWriteTextAnalyzer2 methods ***/ +#define IDWriteTextAnalyzer2_GetGlyphOrientationTransform(This,angle,is_sideways,originX,originY,transform) (This)->lpVtbl->IDWriteTextAnalyzer2_GetGlyphOrientationTransform(This,angle,is_sideways,originX,originY,transform) +#define IDWriteTextAnalyzer2_GetTypographicFeatures(This,fontface,analysis,localeName,max_tagcount,actual_tagcount,tags) (This)->lpVtbl->GetTypographicFeatures(This,fontface,analysis,localeName,max_tagcount,actual_tagcount,tags) +#define IDWriteTextAnalyzer2_CheckTypographicFeature(This,fontface,analysis,localeName,feature,glyph_count,indices,feature_applies) (This)->lpVtbl->CheckTypographicFeature(This,fontface,analysis,localeName,feature,glyph_count,indices,feature_applies) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextAnalyzer2_QueryInterface(IDWriteTextAnalyzer2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextAnalyzer2_AddRef(IDWriteTextAnalyzer2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextAnalyzer2_Release(IDWriteTextAnalyzer2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextAnalyzer methods ***/ +static inline HRESULT IDWriteTextAnalyzer2_AnalyzeScript(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { + return This->lpVtbl->AnalyzeScript(This,source,position,length,sink); +} +static inline HRESULT IDWriteTextAnalyzer2_AnalyzeBidi(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { + return This->lpVtbl->AnalyzeBidi(This,source,position,length,sink); +} +static inline HRESULT IDWriteTextAnalyzer2_AnalyzeNumberSubstitution(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { + return This->lpVtbl->AnalyzeNumberSubstitution(This,source,position,length,sink); +} +static inline HRESULT IDWriteTextAnalyzer2_AnalyzeLineBreakpoints(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { + return This->lpVtbl->AnalyzeLineBreakpoints(This,source,position,length,sink); +} +static inline HRESULT IDWriteTextAnalyzer2_GetGlyphs(IDWriteTextAnalyzer2* This,const WCHAR *text,UINT32 length,IDWriteFontFace *font_face,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,IDWriteNumberSubstitution *substitution,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_len,UINT32 feature_ranges,UINT32 max_glyph_count,UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *text_props,UINT16 *glyph_indices,DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 *actual_glyph_count) { + return This->lpVtbl->GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count); +} +static inline HRESULT IDWriteTextAnalyzer2_GetGlyphPlacements(IDWriteTextAnalyzer2* This,const WCHAR *text,const UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *props,UINT32 text_len,const UINT16 *glyph_indices,const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 glyph_count,IDWriteFontFace *font_face,FLOAT fontEmSize,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_len,UINT32 feature_ranges,FLOAT *glyph_advances,DWRITE_GLYPH_OFFSET *glyph_offsets) { + return This->lpVtbl->GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets); +} +static inline HRESULT IDWriteTextAnalyzer2_GetGdiCompatibleGlyphPlacements(IDWriteTextAnalyzer2* This,const WCHAR *text,const UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *props,UINT32 text_len,const UINT16 *glyph_indices,const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 glyph_count,IDWriteFontFace *font_face,FLOAT fontEmSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_lengths,UINT32 feature_ranges,FLOAT *glyph_advances,DWRITE_GLYPH_OFFSET *glyph_offsets) { + return This->lpVtbl->GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets); +} +/*** IDWriteTextAnalyzer1 methods ***/ +static inline HRESULT IDWriteTextAnalyzer2_ApplyCharacterSpacing(IDWriteTextAnalyzer2* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT min_advance_width,UINT32 len,UINT32 glyph_count,const UINT16 *clustermap,const FLOAT *advances,const DWRITE_GLYPH_OFFSET *offsets,const DWRITE_SHAPING_GLYPH_PROPERTIES *props,FLOAT *modified_advances,DWRITE_GLYPH_OFFSET *modified_offsets) { + return This->lpVtbl->ApplyCharacterSpacing(This,leading_spacing,trailing_spacing,min_advance_width,len,glyph_count,clustermap,advances,offsets,props,modified_advances,modified_offsets); +} +static inline HRESULT IDWriteTextAnalyzer2_GetBaseline(IDWriteTextAnalyzer2* This,IDWriteFontFace *face,DWRITE_BASELINE baseline,WINBOOL vertical,WINBOOL is_simulation_allowed,DWRITE_SCRIPT_ANALYSIS sa,const WCHAR *localeName,INT32 *baseline_coord,WINBOOL *exists) { + return This->lpVtbl->GetBaseline(This,face,baseline,vertical,is_simulation_allowed,sa,localeName,baseline_coord,exists); +} +static inline HRESULT IDWriteTextAnalyzer2_AnalyzeVerticalGlyphOrientation(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource1 *source,UINT32 text_pos,UINT32 len,IDWriteTextAnalysisSink1 *sink) { + return This->lpVtbl->AnalyzeVerticalGlyphOrientation(This,source,text_pos,len,sink); +} +static inline HRESULT IDWriteTextAnalyzer2_GetScriptProperties(IDWriteTextAnalyzer2* This,DWRITE_SCRIPT_ANALYSIS sa,DWRITE_SCRIPT_PROPERTIES *props) { + return This->lpVtbl->GetScriptProperties(This,sa,props); +} +static inline HRESULT IDWriteTextAnalyzer2_GetTextComplexity(IDWriteTextAnalyzer2* This,const WCHAR *text,UINT32 len,IDWriteFontFace *face,WINBOOL *is_simple,UINT32 *len_read,UINT16 *indices) { + return This->lpVtbl->GetTextComplexity(This,text,len,face,is_simple,len_read,indices); +} +static inline HRESULT IDWriteTextAnalyzer2_GetJustificationOpportunities(IDWriteTextAnalyzer2* This,IDWriteFontFace *face,FLOAT font_em_size,DWRITE_SCRIPT_ANALYSIS sa,UINT32 length,UINT32 glyph_count,const WCHAR *text,const UINT16 *clustermap,const DWRITE_SHAPING_GLYPH_PROPERTIES *prop,DWRITE_JUSTIFICATION_OPPORTUNITY *jo) { + return This->lpVtbl->GetJustificationOpportunities(This,face,font_em_size,sa,length,glyph_count,text,clustermap,prop,jo); +} +static inline HRESULT IDWriteTextAnalyzer2_JustifyGlyphAdvances(IDWriteTextAnalyzer2* This,FLOAT width,UINT32 glyph_count,const DWRITE_JUSTIFICATION_OPPORTUNITY *jo,const FLOAT *advances,const DWRITE_GLYPH_OFFSET *offsets,FLOAT *justifiedadvances,DWRITE_GLYPH_OFFSET *justifiedoffsets) { + return This->lpVtbl->JustifyGlyphAdvances(This,width,glyph_count,jo,advances,offsets,justifiedadvances,justifiedoffsets); +} +static inline HRESULT IDWriteTextAnalyzer2_GetJustifiedGlyphs(IDWriteTextAnalyzer2* This,IDWriteFontFace *face,FLOAT font_em_size,DWRITE_SCRIPT_ANALYSIS sa,UINT32 length,UINT32 glyph_count,UINT32 max_glyphcount,const UINT16 *clustermap,const UINT16 *indices,const FLOAT *advances,const FLOAT *justifiedadvances,const DWRITE_GLYPH_OFFSET *justifiedoffsets,const DWRITE_SHAPING_GLYPH_PROPERTIES *prop,UINT32 *actual_count,UINT16 *modified_clustermap,UINT16 *modified_indices,FLOAT *modified_advances,DWRITE_GLYPH_OFFSET *modified_offsets) { + return This->lpVtbl->GetJustifiedGlyphs(This,face,font_em_size,sa,length,glyph_count,max_glyphcount,clustermap,indices,advances,justifiedadvances,justifiedoffsets,prop,actual_count,modified_clustermap,modified_indices,modified_advances,modified_offsets); +} +/*** IDWriteTextAnalyzer2 methods ***/ +static inline HRESULT IDWriteTextAnalyzer2_GetGlyphOrientationTransform(IDWriteTextAnalyzer2* This,DWRITE_GLYPH_ORIENTATION_ANGLE angle,WINBOOL is_sideways,FLOAT originX,FLOAT originY,DWRITE_MATRIX *transform) { + return This->lpVtbl->IDWriteTextAnalyzer2_GetGlyphOrientationTransform(This,angle,is_sideways,originX,originY,transform); +} +static inline HRESULT IDWriteTextAnalyzer2_GetTypographicFeatures(IDWriteTextAnalyzer2* This,IDWriteFontFace *fontface,DWRITE_SCRIPT_ANALYSIS analysis,const WCHAR *localeName,UINT32 max_tagcount,UINT32 *actual_tagcount,DWRITE_FONT_FEATURE_TAG *tags) { + return This->lpVtbl->GetTypographicFeatures(This,fontface,analysis,localeName,max_tagcount,actual_tagcount,tags); +} +static inline HRESULT IDWriteTextAnalyzer2_CheckTypographicFeature(IDWriteTextAnalyzer2* This,IDWriteFontFace *fontface,DWRITE_SCRIPT_ANALYSIS analysis,const WCHAR *localeName,DWRITE_FONT_FEATURE_TAG feature,UINT32 glyph_count,const UINT16 *indices,UINT8 *feature_applies) { + return This->lpVtbl->CheckTypographicFeature(This,fontface,analysis,localeName,feature,glyph_count,indices,feature_applies); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextAnalyzer2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFallbackBuilder interface + */ +#ifndef __IDWriteFontFallbackBuilder_INTERFACE_DEFINED__ +#define __IDWriteFontFallbackBuilder_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFallbackBuilder, 0xfd882d06, 0x8aba, 0x4fb8, 0xb8,0x49, 0x8b,0xe8,0xb7,0x3e,0x14,0xde); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("fd882d06-8aba-4fb8-b849-8be8b73e14de") +IDWriteFontFallbackBuilder : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE AddMapping( + const DWRITE_UNICODE_RANGE *ranges, + UINT32 rangesCount, + const WCHAR **targetFamilyNames, + UINT32 targetFamilyNamesCount, + IDWriteFontCollection *collection = 0, + const WCHAR *localeName = 0, + const WCHAR *baseFamilyName = 0, + FLOAT scale = 1) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddMappings( + IDWriteFontFallback *fallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFallback( + IDWriteFontFallback **fallback) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFallbackBuilder, 0xfd882d06, 0x8aba, 0x4fb8, 0xb8,0x49, 0x8b,0xe8,0xb7,0x3e,0x14,0xde) +#endif +#else +typedef struct IDWriteFontFallbackBuilderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFallbackBuilder *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFallbackBuilder *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFallbackBuilder *This); + + /*** IDWriteFontFallbackBuilder methods ***/ + HRESULT (STDMETHODCALLTYPE *AddMapping)( + IDWriteFontFallbackBuilder *This, + const DWRITE_UNICODE_RANGE *ranges, + UINT32 rangesCount, + const WCHAR **targetFamilyNames, + UINT32 targetFamilyNamesCount, + IDWriteFontCollection *collection, + const WCHAR *localeName, + const WCHAR *baseFamilyName, + FLOAT scale); + + HRESULT (STDMETHODCALLTYPE *AddMappings)( + IDWriteFontFallbackBuilder *This, + IDWriteFontFallback *fallback); + + HRESULT (STDMETHODCALLTYPE *CreateFontFallback)( + IDWriteFontFallbackBuilder *This, + IDWriteFontFallback **fallback); + + END_INTERFACE +} IDWriteFontFallbackBuilderVtbl; + +interface IDWriteFontFallbackBuilder { + CONST_VTBL IDWriteFontFallbackBuilderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFallbackBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFallbackBuilder_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFallbackBuilder_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFallbackBuilder methods ***/ +#define IDWriteFontFallbackBuilder_AddMapping(This,ranges,rangesCount,targetFamilyNames,targetFamilyNamesCount,collection,localeName,baseFamilyName,scale) (This)->lpVtbl->AddMapping(This,ranges,rangesCount,targetFamilyNames,targetFamilyNamesCount,collection,localeName,baseFamilyName,scale) +#define IDWriteFontFallbackBuilder_AddMappings(This,fallback) (This)->lpVtbl->AddMappings(This,fallback) +#define IDWriteFontFallbackBuilder_CreateFontFallback(This,fallback) (This)->lpVtbl->CreateFontFallback(This,fallback) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFallbackBuilder_QueryInterface(IDWriteFontFallbackBuilder* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFallbackBuilder_AddRef(IDWriteFontFallbackBuilder* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFallbackBuilder_Release(IDWriteFontFallbackBuilder* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFallbackBuilder methods ***/ +static inline HRESULT IDWriteFontFallbackBuilder_AddMapping(IDWriteFontFallbackBuilder* This,const DWRITE_UNICODE_RANGE *ranges,UINT32 rangesCount,const WCHAR **targetFamilyNames,UINT32 targetFamilyNamesCount,IDWriteFontCollection *collection,const WCHAR *localeName,const WCHAR *baseFamilyName,FLOAT scale) { + return This->lpVtbl->AddMapping(This,ranges,rangesCount,targetFamilyNames,targetFamilyNamesCount,collection,localeName,baseFamilyName,scale); +} +static inline HRESULT IDWriteFontFallbackBuilder_AddMappings(IDWriteFontFallbackBuilder* This,IDWriteFontFallback *fallback) { + return This->lpVtbl->AddMappings(This,fallback); +} +static inline HRESULT IDWriteFontFallbackBuilder_CreateFontFallback(IDWriteFontFallbackBuilder* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->CreateFontFallback(This,fallback); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFallbackBuilder_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFont2 interface + */ +#ifndef __IDWriteFont2_INTERFACE_DEFINED__ +#define __IDWriteFont2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFont2, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("29748ed6-8c9c-4a6a-be0b-d912e8538944") +IDWriteFont2 : public IDWriteFont1 +{ + virtual WINBOOL STDMETHODCALLTYPE IsColorFont( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFont2, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44) +#endif +#else +typedef struct IDWriteFont2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFont2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFont2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFont2 *This); + + /*** IDWriteFont methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontFamily)( + IDWriteFont2 *This, + IDWriteFontFamily **family); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( + IDWriteFont2 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( + IDWriteFont2 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( + IDWriteFont2 *This); + + WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( + IDWriteFont2 *This); + + HRESULT (STDMETHODCALLTYPE *GetFaceNames)( + IDWriteFont2 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( + IDWriteFont2 *This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings **strings, + WINBOOL *exists); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFont2 *This); + + void (STDMETHODCALLTYPE *GetMetrics)( + IDWriteFont2 *This, + DWRITE_FONT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *HasCharacter)( + IDWriteFont2 *This, + UINT32 value, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFont2 *This, + IDWriteFontFace **face); + + /*** IDWriteFont1 methods ***/ + void (STDMETHODCALLTYPE *IDWriteFont1_GetMetrics)( + IDWriteFont2 *This, + DWRITE_FONT_METRICS1 *metrics); + + void (STDMETHODCALLTYPE *GetPanose)( + IDWriteFont2 *This, + DWRITE_PANOSE *panose); + + HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( + IDWriteFont2 *This, + UINT32 max_count, + DWRITE_UNICODE_RANGE *ranges, + UINT32 *count); + + WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( + IDWriteFont2 *This); + + /*** IDWriteFont2 methods ***/ + WINBOOL (STDMETHODCALLTYPE *IsColorFont)( + IDWriteFont2 *This); + + END_INTERFACE +} IDWriteFont2Vtbl; + +interface IDWriteFont2 { + CONST_VTBL IDWriteFont2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFont2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFont2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFont2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFont methods ***/ +#define IDWriteFont2_GetFontFamily(This,family) (This)->lpVtbl->GetFontFamily(This,family) +#define IDWriteFont2_GetWeight(This) (This)->lpVtbl->GetWeight(This) +#define IDWriteFont2_GetStretch(This) (This)->lpVtbl->GetStretch(This) +#define IDWriteFont2_GetStyle(This) (This)->lpVtbl->GetStyle(This) +#define IDWriteFont2_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) +#define IDWriteFont2_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names) +#define IDWriteFont2_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) +#define IDWriteFont2_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +#define IDWriteFont2_HasCharacter(This,value,exists) (This)->lpVtbl->HasCharacter(This,value,exists) +#define IDWriteFont2_CreateFontFace(This,face) (This)->lpVtbl->CreateFontFace(This,face) +/*** IDWriteFont1 methods ***/ +#define IDWriteFont2_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFont1_GetMetrics(This,metrics) +#define IDWriteFont2_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) +#define IDWriteFont2_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFont2_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) +/*** IDWriteFont2 methods ***/ +#define IDWriteFont2_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFont2_QueryInterface(IDWriteFont2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFont2_AddRef(IDWriteFont2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFont2_Release(IDWriteFont2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFont methods ***/ +static inline HRESULT IDWriteFont2_GetFontFamily(IDWriteFont2* This,IDWriteFontFamily **family) { + return This->lpVtbl->GetFontFamily(This,family); +} +static inline DWRITE_FONT_WEIGHT IDWriteFont2_GetWeight(IDWriteFont2* This) { + return This->lpVtbl->GetWeight(This); +} +static inline DWRITE_FONT_STRETCH IDWriteFont2_GetStretch(IDWriteFont2* This) { + return This->lpVtbl->GetStretch(This); +} +static inline DWRITE_FONT_STYLE IDWriteFont2_GetStyle(IDWriteFont2* This) { + return This->lpVtbl->GetStyle(This); +} +static inline WINBOOL IDWriteFont2_IsSymbolFont(IDWriteFont2* This) { + return This->lpVtbl->IsSymbolFont(This); +} +static inline HRESULT IDWriteFont2_GetFaceNames(IDWriteFont2* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFaceNames(This,names); +} +static inline HRESULT IDWriteFont2_GetInformationalStrings(IDWriteFont2* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { + return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFont2_GetSimulations(IDWriteFont2* This) { + return This->lpVtbl->GetSimulations(This); +} +static inline HRESULT IDWriteFont2_HasCharacter(IDWriteFont2* This,UINT32 value,WINBOOL *exists) { + return This->lpVtbl->HasCharacter(This,value,exists); +} +static inline HRESULT IDWriteFont2_CreateFontFace(IDWriteFont2* This,IDWriteFontFace **face) { + return This->lpVtbl->CreateFontFace(This,face); +} +/*** IDWriteFont1 methods ***/ +static inline void IDWriteFont2_GetMetrics(IDWriteFont2* This,DWRITE_FONT_METRICS1 *metrics) { + This->lpVtbl->IDWriteFont1_GetMetrics(This,metrics); +} +static inline void IDWriteFont2_GetPanose(IDWriteFont2* This,DWRITE_PANOSE *panose) { + This->lpVtbl->GetPanose(This,panose); +} +static inline HRESULT IDWriteFont2_GetUnicodeRanges(IDWriteFont2* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { + return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +} +static inline WINBOOL IDWriteFont2_IsMonospacedFont(IDWriteFont2* This) { + return This->lpVtbl->IsMonospacedFont(This); +} +/*** IDWriteFont2 methods ***/ +static inline WINBOOL IDWriteFont2_IsColorFont(IDWriteFont2* This) { + return This->lpVtbl->IsColorFont(This); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFont2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFace2 interface + */ +#ifndef __IDWriteFontFace2_INTERFACE_DEFINED__ +#define __IDWriteFontFace2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFace2, 0xd8b768ff, 0x64bc, 0x4e66, 0x98,0x2b, 0xec,0x8e,0x87,0xf6,0x93,0xf7); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("d8b768ff-64bc-4e66-982b-ec8e87f693f7") +IDWriteFontFace2 : public IDWriteFontFace1 +{ + virtual WINBOOL STDMETHODCALLTYPE IsColorFont( + ) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetColorPaletteCount( + ) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetPaletteEntryCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPaletteEntries( + UINT32 palette_index, + UINT32 first_entry_index, + UINT32 entry_count, + DWRITE_COLOR_F *entries) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode( + FLOAT fontEmSize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuringmode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *renderingmode, + DWRITE_GRID_FIT_MODE *gridfitmode) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFace2, 0xd8b768ff, 0x64bc, 0x4e66, 0x98,0x2b, 0xec,0x8e,0x87,0xf6,0x93,0xf7) +#endif +#else +typedef struct IDWriteFontFace2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFace2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFace2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFace2 *This); + + /*** IDWriteFontFace methods ***/ + DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( + IDWriteFontFace2 *This); + + HRESULT (STDMETHODCALLTYPE *GetFiles)( + IDWriteFontFace2 *This, + UINT32 *number_of_files, + IDWriteFontFile **fontfiles); + + UINT32 (STDMETHODCALLTYPE *GetIndex)( + IDWriteFontFace2 *This); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFontFace2 *This); + + WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( + IDWriteFontFace2 *This); + + void (STDMETHODCALLTYPE *GetMetrics)( + IDWriteFontFace2 *This, + DWRITE_FONT_METRICS *metrics); + + UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( + IDWriteFontFace2 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( + IDWriteFontFace2 *This, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( + IDWriteFontFace2 *This, + const UINT32 *codepoints, + UINT32 count, + UINT16 *glyph_indices); + + HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( + IDWriteFontFace2 *This, + UINT32 table_tag, + const void **table_data, + UINT32 *table_size, + void **context, + WINBOOL *exists); + + void (STDMETHODCALLTYPE *ReleaseFontTable)( + IDWriteFontFace2 *This, + void *table_context); + + HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( + IDWriteFontFace2 *This, + FLOAT emSize, + const UINT16 *glyph_indices, + const FLOAT *glyph_advances, + const DWRITE_GLYPH_OFFSET *glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink *geometrysink); + + HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( + IDWriteFontFace2 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( + IDWriteFontFace2 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( + IDWriteFontFace2 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + /*** IDWriteFontFace1 methods ***/ + void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)( + IDWriteFontFace2 *This, + DWRITE_FONT_METRICS1 *metrics); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)( + IDWriteFontFace2 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS1 *metrics); + + void (STDMETHODCALLTYPE *GetCaretMetrics)( + IDWriteFontFace2 *This, + DWRITE_CARET_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( + IDWriteFontFace2 *This, + UINT32 max_count, + DWRITE_UNICODE_RANGE *ranges, + UINT32 *count); + + WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( + IDWriteFontFace2 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)( + IDWriteFontFace2 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)( + IDWriteFontFace2 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances); + + HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)( + IDWriteFontFace2 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *adjustments); + + WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)( + IDWriteFontFace2 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)( + IDWriteFontFace2 *This, + FLOAT font_emsize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)( + IDWriteFontFace2 *This, + UINT32 glyph_count, + const UINT16 *nominal_indices, + UINT16 *vertical_indices); + + WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)( + IDWriteFontFace2 *This); + + /*** IDWriteFontFace2 methods ***/ + WINBOOL (STDMETHODCALLTYPE *IsColorFont)( + IDWriteFontFace2 *This); + + UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)( + IDWriteFontFace2 *This); + + UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)( + IDWriteFontFace2 *This); + + HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)( + IDWriteFontFace2 *This, + UINT32 palette_index, + UINT32 first_entry_index, + UINT32 entry_count, + DWRITE_COLOR_F *entries); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)( + IDWriteFontFace2 *This, + FLOAT fontEmSize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuringmode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *renderingmode, + DWRITE_GRID_FIT_MODE *gridfitmode); + + END_INTERFACE +} IDWriteFontFace2Vtbl; + +interface IDWriteFontFace2 { + CONST_VTBL IDWriteFontFace2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFace2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFace2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFace2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFace methods ***/ +#define IDWriteFontFace2_GetType(This) (This)->lpVtbl->GetType(This) +#define IDWriteFontFace2_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) +#define IDWriteFontFace2_GetIndex(This) (This)->lpVtbl->GetIndex(This) +#define IDWriteFontFace2_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +#define IDWriteFontFace2_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) +#define IDWriteFontFace2_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) +#define IDWriteFontFace2_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) +#define IDWriteFontFace2_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) +#define IDWriteFontFace2_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) +#define IDWriteFontFace2_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) +#define IDWriteFontFace2_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) +#define IDWriteFontFace2_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) +/*** IDWriteFontFace1 methods ***/ +#define IDWriteFontFace2_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics) +#define IDWriteFontFace2_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) +#define IDWriteFontFace2_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics) +#define IDWriteFontFace2_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFontFace2_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) +#define IDWriteFontFace2_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) +#define IDWriteFontFace2_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) +#define IDWriteFontFace2_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments) +#define IDWriteFontFace2_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) +#define IDWriteFontFace2_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) +#define IDWriteFontFace2_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) +/*** IDWriteFontFace2 methods ***/ +#define IDWriteFontFace2_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) +#define IDWriteFontFace2_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) +#define IDWriteFontFace2_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) +#define IDWriteFontFace2_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) +#define IDWriteFontFace2_GetRecommendedRenderingMode(This,fontEmSize,dpiX,dpiY,transform,is_sideways,threshold,measuringmode,params,renderingmode,gridfitmode) (This)->lpVtbl->IDWriteFontFace2_GetRecommendedRenderingMode(This,fontEmSize,dpiX,dpiY,transform,is_sideways,threshold,measuringmode,params,renderingmode,gridfitmode) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFace2_QueryInterface(IDWriteFontFace2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFace2_AddRef(IDWriteFontFace2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFace2_Release(IDWriteFontFace2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFace methods ***/ +static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace2_GetType(IDWriteFontFace2* This) { + return This->lpVtbl->GetType(This); +} +static inline HRESULT IDWriteFontFace2_GetFiles(IDWriteFontFace2* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { + return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); +} +static inline UINT32 IDWriteFontFace2_GetIndex(IDWriteFontFace2* This) { + return This->lpVtbl->GetIndex(This); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace2_GetSimulations(IDWriteFontFace2* This) { + return This->lpVtbl->GetSimulations(This); +} +static inline WINBOOL IDWriteFontFace2_IsSymbolFont(IDWriteFontFace2* This) { + return This->lpVtbl->IsSymbolFont(This); +} +static inline UINT16 IDWriteFontFace2_GetGlyphCount(IDWriteFontFace2* This) { + return This->lpVtbl->GetGlyphCount(This); +} +static inline HRESULT IDWriteFontFace2_GetDesignGlyphMetrics(IDWriteFontFace2* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); +} +static inline HRESULT IDWriteFontFace2_GetGlyphIndices(IDWriteFontFace2* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { + return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); +} +static inline HRESULT IDWriteFontFace2_TryGetFontTable(IDWriteFontFace2* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { + return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); +} +static inline void IDWriteFontFace2_ReleaseFontTable(IDWriteFontFace2* This,void *table_context) { + This->lpVtbl->ReleaseFontTable(This,table_context); +} +static inline HRESULT IDWriteFontFace2_GetGlyphRunOutline(IDWriteFontFace2* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) { + return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); +} +static inline HRESULT IDWriteFontFace2_GetGdiCompatibleGlyphMetrics(IDWriteFontFace2* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); +} +/*** IDWriteFontFace1 methods ***/ +static inline void IDWriteFontFace2_GetMetrics(IDWriteFontFace2* This,DWRITE_FONT_METRICS1 *metrics) { + This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace2_GetGdiCompatibleMetrics(IDWriteFontFace2* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) { + return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics); +} +static inline void IDWriteFontFace2_GetCaretMetrics(IDWriteFontFace2* This,DWRITE_CARET_METRICS *metrics) { + This->lpVtbl->GetCaretMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace2_GetUnicodeRanges(IDWriteFontFace2* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { + return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +} +static inline WINBOOL IDWriteFontFace2_IsMonospacedFont(IDWriteFontFace2* This) { + return This->lpVtbl->IsMonospacedFont(This); +} +static inline HRESULT IDWriteFontFace2_GetDesignGlyphAdvances(IDWriteFontFace2* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways); +} +static inline HRESULT IDWriteFontFace2_GetGdiCompatibleGlyphAdvances(IDWriteFontFace2* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) { + return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances); +} +static inline HRESULT IDWriteFontFace2_GetKerningPairAdjustments(IDWriteFontFace2* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) { + return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments); +} +static inline WINBOOL IDWriteFontFace2_HasKerningPairs(IDWriteFontFace2* This) { + return This->lpVtbl->HasKerningPairs(This); +} +static inline HRESULT IDWriteFontFace2_GetVerticalGlyphVariants(IDWriteFontFace2* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) { + return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices); +} +static inline WINBOOL IDWriteFontFace2_HasVerticalGlyphVariants(IDWriteFontFace2* This) { + return This->lpVtbl->HasVerticalGlyphVariants(This); +} +/*** IDWriteFontFace2 methods ***/ +static inline WINBOOL IDWriteFontFace2_IsColorFont(IDWriteFontFace2* This) { + return This->lpVtbl->IsColorFont(This); +} +static inline UINT32 IDWriteFontFace2_GetColorPaletteCount(IDWriteFontFace2* This) { + return This->lpVtbl->GetColorPaletteCount(This); +} +static inline UINT32 IDWriteFontFace2_GetPaletteEntryCount(IDWriteFontFace2* This) { + return This->lpVtbl->GetPaletteEntryCount(This); +} +static inline HRESULT IDWriteFontFace2_GetPaletteEntries(IDWriteFontFace2* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) { + return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries); +} +static inline HRESULT IDWriteFontFace2_GetRecommendedRenderingMode(IDWriteFontFace2* This,FLOAT fontEmSize,FLOAT dpiX,FLOAT dpiY,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuringmode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE *renderingmode,DWRITE_GRID_FIT_MODE *gridfitmode) { + return This->lpVtbl->IDWriteFontFace2_GetRecommendedRenderingMode(This,fontEmSize,dpiX,dpiY,transform,is_sideways,threshold,measuringmode,params,renderingmode,gridfitmode); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFace2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteColorGlyphRunEnumerator interface + */ +#ifndef __IDWriteColorGlyphRunEnumerator_INTERFACE_DEFINED__ +#define __IDWriteColorGlyphRunEnumerator_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteColorGlyphRunEnumerator, 0xd31fbe17, 0xf157, 0x41a2, 0x8d,0x24, 0xcb,0x77,0x9e,0x05,0x60,0xe8); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("d31fbe17-f157-41a2-8d24-cb779e0560e8") +IDWriteColorGlyphRunEnumerator : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE MoveNext( + WINBOOL *hasRun) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCurrentRun( + const DWRITE_COLOR_GLYPH_RUN **run) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteColorGlyphRunEnumerator, 0xd31fbe17, 0xf157, 0x41a2, 0x8d,0x24, 0xcb,0x77,0x9e,0x05,0x60,0xe8) +#endif +#else +typedef struct IDWriteColorGlyphRunEnumeratorVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteColorGlyphRunEnumerator *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteColorGlyphRunEnumerator *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteColorGlyphRunEnumerator *This); + + /*** IDWriteColorGlyphRunEnumerator methods ***/ + HRESULT (STDMETHODCALLTYPE *MoveNext)( + IDWriteColorGlyphRunEnumerator *This, + WINBOOL *hasRun); + + HRESULT (STDMETHODCALLTYPE *GetCurrentRun)( + IDWriteColorGlyphRunEnumerator *This, + const DWRITE_COLOR_GLYPH_RUN **run); + + END_INTERFACE +} IDWriteColorGlyphRunEnumeratorVtbl; + +interface IDWriteColorGlyphRunEnumerator { + CONST_VTBL IDWriteColorGlyphRunEnumeratorVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteColorGlyphRunEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteColorGlyphRunEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteColorGlyphRunEnumerator_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteColorGlyphRunEnumerator methods ***/ +#define IDWriteColorGlyphRunEnumerator_MoveNext(This,hasRun) (This)->lpVtbl->MoveNext(This,hasRun) +#define IDWriteColorGlyphRunEnumerator_GetCurrentRun(This,run) (This)->lpVtbl->GetCurrentRun(This,run) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteColorGlyphRunEnumerator_QueryInterface(IDWriteColorGlyphRunEnumerator* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteColorGlyphRunEnumerator_AddRef(IDWriteColorGlyphRunEnumerator* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteColorGlyphRunEnumerator_Release(IDWriteColorGlyphRunEnumerator* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteColorGlyphRunEnumerator methods ***/ +static inline HRESULT IDWriteColorGlyphRunEnumerator_MoveNext(IDWriteColorGlyphRunEnumerator* This,WINBOOL *hasRun) { + return This->lpVtbl->MoveNext(This,hasRun); +} +static inline HRESULT IDWriteColorGlyphRunEnumerator_GetCurrentRun(IDWriteColorGlyphRunEnumerator* This,const DWRITE_COLOR_GLYPH_RUN **run) { + return This->lpVtbl->GetCurrentRun(This,run); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteColorGlyphRunEnumerator_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteRenderingParams2 interface + */ +#ifndef __IDWriteRenderingParams2_INTERFACE_DEFINED__ +#define __IDWriteRenderingParams2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteRenderingParams2, 0xf9d711c3, 0x9777, 0x40ae, 0x87,0xe8, 0x3e,0x5a,0xf9,0xbf,0x09,0x48); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("f9d711c3-9777-40ae-87e8-3e5af9bf0948") +IDWriteRenderingParams2 : public IDWriteRenderingParams1 +{ + virtual DWRITE_GRID_FIT_MODE STDMETHODCALLTYPE GetGridFitMode( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteRenderingParams2, 0xf9d711c3, 0x9777, 0x40ae, 0x87,0xe8, 0x3e,0x5a,0xf9,0xbf,0x09,0x48) +#endif +#else +typedef struct IDWriteRenderingParams2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteRenderingParams2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteRenderingParams2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteRenderingParams2 *This); + + /*** IDWriteRenderingParams methods ***/ + FLOAT (STDMETHODCALLTYPE *GetGamma)( + IDWriteRenderingParams2 *This); + + FLOAT (STDMETHODCALLTYPE *GetEnhancedContrast)( + IDWriteRenderingParams2 *This); + + FLOAT (STDMETHODCALLTYPE *GetClearTypeLevel)( + IDWriteRenderingParams2 *This); + + DWRITE_PIXEL_GEOMETRY (STDMETHODCALLTYPE *GetPixelGeometry)( + IDWriteRenderingParams2 *This); + + DWRITE_RENDERING_MODE (STDMETHODCALLTYPE *GetRenderingMode)( + IDWriteRenderingParams2 *This); + + /*** IDWriteRenderingParams1 methods ***/ + FLOAT (STDMETHODCALLTYPE *GetGrayscaleEnhancedContrast)( + IDWriteRenderingParams2 *This); + + /*** IDWriteRenderingParams2 methods ***/ + DWRITE_GRID_FIT_MODE (STDMETHODCALLTYPE *GetGridFitMode)( + IDWriteRenderingParams2 *This); + + END_INTERFACE +} IDWriteRenderingParams2Vtbl; + +interface IDWriteRenderingParams2 { + CONST_VTBL IDWriteRenderingParams2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteRenderingParams2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteRenderingParams2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteRenderingParams2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteRenderingParams methods ***/ +#define IDWriteRenderingParams2_GetGamma(This) (This)->lpVtbl->GetGamma(This) +#define IDWriteRenderingParams2_GetEnhancedContrast(This) (This)->lpVtbl->GetEnhancedContrast(This) +#define IDWriteRenderingParams2_GetClearTypeLevel(This) (This)->lpVtbl->GetClearTypeLevel(This) +#define IDWriteRenderingParams2_GetPixelGeometry(This) (This)->lpVtbl->GetPixelGeometry(This) +#define IDWriteRenderingParams2_GetRenderingMode(This) (This)->lpVtbl->GetRenderingMode(This) +/*** IDWriteRenderingParams1 methods ***/ +#define IDWriteRenderingParams2_GetGrayscaleEnhancedContrast(This) (This)->lpVtbl->GetGrayscaleEnhancedContrast(This) +/*** IDWriteRenderingParams2 methods ***/ +#define IDWriteRenderingParams2_GetGridFitMode(This) (This)->lpVtbl->GetGridFitMode(This) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteRenderingParams2_QueryInterface(IDWriteRenderingParams2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteRenderingParams2_AddRef(IDWriteRenderingParams2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteRenderingParams2_Release(IDWriteRenderingParams2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteRenderingParams methods ***/ +static inline FLOAT IDWriteRenderingParams2_GetGamma(IDWriteRenderingParams2* This) { + return This->lpVtbl->GetGamma(This); +} +static inline FLOAT IDWriteRenderingParams2_GetEnhancedContrast(IDWriteRenderingParams2* This) { + return This->lpVtbl->GetEnhancedContrast(This); +} +static inline FLOAT IDWriteRenderingParams2_GetClearTypeLevel(IDWriteRenderingParams2* This) { + return This->lpVtbl->GetClearTypeLevel(This); +} +static inline DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams2_GetPixelGeometry(IDWriteRenderingParams2* This) { + return This->lpVtbl->GetPixelGeometry(This); +} +static inline DWRITE_RENDERING_MODE IDWriteRenderingParams2_GetRenderingMode(IDWriteRenderingParams2* This) { + return This->lpVtbl->GetRenderingMode(This); +} +/*** IDWriteRenderingParams1 methods ***/ +static inline FLOAT IDWriteRenderingParams2_GetGrayscaleEnhancedContrast(IDWriteRenderingParams2* This) { + return This->lpVtbl->GetGrayscaleEnhancedContrast(This); +} +/*** IDWriteRenderingParams2 methods ***/ +static inline DWRITE_GRID_FIT_MODE IDWriteRenderingParams2_GetGridFitMode(IDWriteRenderingParams2* This) { + return This->lpVtbl->GetGridFitMode(This); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteRenderingParams2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFactory2 interface + */ +#ifndef __IDWriteFactory2_INTERFACE_DEFINED__ +#define __IDWriteFactory2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFactory2, 0x0439fc60, 0xca44, 0x4994, 0x8d,0xee, 0x3a,0x9a,0xf7,0xb7,0x32,0xec); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("0439fc60-ca44-4994-8dee-3a9af7b732ec") +IDWriteFactory2 : public IDWriteFactory1 +{ + virtual HRESULT STDMETHODCALLTYPE GetSystemFontFallback( + IDWriteFontFallback **fallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFallbackBuilder( + IDWriteFontFallbackBuilder **fallbackbuilder) = 0; + + virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun( + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX *transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator **colorlayers) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams( + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2 **params) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateGlyphRunAnalysis( + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis **analysis) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFactory2, 0x0439fc60, 0xca44, 0x4994, 0x8d,0xee, 0x3a,0x9a,0xf7,0xb7,0x32,0xec) +#endif +#else +typedef struct IDWriteFactory2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFactory2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFactory2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFactory2 *This); + + /*** IDWriteFactory methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( + IDWriteFactory2 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( + IDWriteFactory2 *This, + IDWriteFontCollectionLoader *loader, + const void *key, + UINT32 key_size, + IDWriteFontCollection **collection); + + HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( + IDWriteFactory2 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( + IDWriteFactory2 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( + IDWriteFactory2 *This, + const WCHAR *path, + const FILETIME *writetime, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( + IDWriteFactory2 *This, + const void *reference_key, + UINT32 key_size, + IDWriteFontFileLoader *loader, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFactory2 *This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile *const *font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace **font_face); + + HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( + IDWriteFactory2 *This, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( + IDWriteFactory2 *This, + HMONITOR monitor, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( + IDWriteFactory2 *This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( + IDWriteFactory2 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( + IDWriteFactory2 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( + IDWriteFactory2 *This, + const WCHAR *family_name, + IDWriteFontCollection *collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR *locale, + IDWriteTextFormat **format); + + HRESULT (STDMETHODCALLTYPE *CreateTypography)( + IDWriteFactory2 *This, + IDWriteTypography **typography); + + HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( + IDWriteFactory2 *This, + IDWriteGdiInterop **gdi_interop); + + HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( + IDWriteFactory2 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( + IDWriteFactory2 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( + IDWriteFactory2 *This, + IDWriteTextFormat *format, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( + IDWriteFactory2 *This, + IDWriteTextAnalyzer **analyzer); + + HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( + IDWriteFactory2 *This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR *locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution **substitution); + + HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( + IDWriteFactory2 *This, + const DWRITE_GLYPH_RUN *glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( + IDWriteFactory2 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( + IDWriteFactory2 *This, + FLOAT gamma, + FLOAT enhcontrast, + FLOAT enhcontrast_grayscale, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams1 **params); + + /*** IDWriteFactory2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)( + IDWriteFactory2 *This, + IDWriteFontFallback **fallback); + + HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)( + IDWriteFactory2 *This, + IDWriteFontFallbackBuilder **fallbackbuilder); + + HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)( + IDWriteFactory2 *This, + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX *transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator **colorlayers); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)( + IDWriteFactory2 *This, + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2 **params); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)( + IDWriteFactory2 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis **analysis); + + END_INTERFACE +} IDWriteFactory2Vtbl; + +interface IDWriteFactory2 { + CONST_VTBL IDWriteFactory2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFactory2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFactory2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFactory methods ***/ +#define IDWriteFactory2_GetSystemFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetSystemFontCollection(This,collection,check_for_updates) +#define IDWriteFactory2_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) +#define IDWriteFactory2_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) +#define IDWriteFactory2_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) +#define IDWriteFactory2_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) +#define IDWriteFactory2_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) +#define IDWriteFactory2_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) +#define IDWriteFactory2_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) +#define IDWriteFactory2_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) +#define IDWriteFactory2_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) +#define IDWriteFactory2_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) +#define IDWriteFactory2_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) +#define IDWriteFactory2_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) +#define IDWriteFactory2_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) +#define IDWriteFactory2_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) +#define IDWriteFactory2_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) +#define IDWriteFactory2_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) +#define IDWriteFactory2_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) +#define IDWriteFactory2_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +/*** IDWriteFactory1 methods ***/ +#define IDWriteFactory2_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) +/*** IDWriteFactory2 methods ***/ +#define IDWriteFactory2_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback) +#define IDWriteFactory2_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder) +#define IDWriteFactory2_TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers) (This)->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers) +#define IDWriteFactory2_CreateCustomRenderingParams(This,gamma,contrast,grayscalecontrast,cleartypeLevel,pixelGeometry,renderingMode,gridFitMode,params) (This)->lpVtbl->IDWriteFactory2_CreateCustomRenderingParams(This,gamma,contrast,grayscalecontrast,cleartypeLevel,pixelGeometry,renderingMode,gridFitMode,params) +#define IDWriteFactory2_CreateGlyphRunAnalysis(This,run,transform,renderingMode,measuringMode,gridFitMode,antialiasMode,originX,originY,analysis) (This)->lpVtbl->IDWriteFactory2_CreateGlyphRunAnalysis(This,run,transform,renderingMode,measuringMode,gridFitMode,antialiasMode,originX,originY,analysis) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFactory2_QueryInterface(IDWriteFactory2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFactory2_AddRef(IDWriteFactory2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFactory2_Release(IDWriteFactory2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFactory methods ***/ +static inline HRESULT IDWriteFactory2_GetSystemFontCollection(IDWriteFactory2* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { + return This->lpVtbl->GetSystemFontCollection(This,collection,check_for_updates); +} +static inline HRESULT IDWriteFactory2_CreateCustomFontCollection(IDWriteFactory2* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { + return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +} +static inline HRESULT IDWriteFactory2_RegisterFontCollectionLoader(IDWriteFactory2* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory2_UnregisterFontCollectionLoader(IDWriteFactory2* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory2_CreateFontFileReference(IDWriteFactory2* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +} +static inline HRESULT IDWriteFactory2_CreateCustomFontFileReference(IDWriteFactory2* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +} +static inline HRESULT IDWriteFactory2_CreateFontFace(IDWriteFactory2* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { + return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +} +static inline HRESULT IDWriteFactory2_CreateRenderingParams(IDWriteFactory2* This,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateRenderingParams(This,params); +} +static inline HRESULT IDWriteFactory2_CreateMonitorRenderingParams(IDWriteFactory2* This,HMONITOR monitor,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +} +static inline HRESULT IDWriteFactory2_RegisterFontFileLoader(IDWriteFactory2* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->RegisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory2_UnregisterFontFileLoader(IDWriteFactory2* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->UnregisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory2_CreateTextFormat(IDWriteFactory2* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) { + return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format); +} +static inline HRESULT IDWriteFactory2_CreateTypography(IDWriteFactory2* This,IDWriteTypography **typography) { + return This->lpVtbl->CreateTypography(This,typography); +} +static inline HRESULT IDWriteFactory2_GetGdiInterop(IDWriteFactory2* This,IDWriteGdiInterop **gdi_interop) { + return This->lpVtbl->GetGdiInterop(This,gdi_interop); +} +static inline HRESULT IDWriteFactory2_CreateTextLayout(IDWriteFactory2* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +} +static inline HRESULT IDWriteFactory2_CreateGdiCompatibleTextLayout(IDWriteFactory2* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +} +static inline HRESULT IDWriteFactory2_CreateEllipsisTrimmingSign(IDWriteFactory2* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +} +static inline HRESULT IDWriteFactory2_CreateTextAnalyzer(IDWriteFactory2* This,IDWriteTextAnalyzer **analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +} +static inline HRESULT IDWriteFactory2_CreateNumberSubstitution(IDWriteFactory2* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { + return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +} +/*** IDWriteFactory1 methods ***/ +static inline HRESULT IDWriteFactory2_GetEudcFontCollection(IDWriteFactory2* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { + return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); +} +/*** IDWriteFactory2 methods ***/ +static inline HRESULT IDWriteFactory2_GetSystemFontFallback(IDWriteFactory2* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetSystemFontFallback(This,fallback); +} +static inline HRESULT IDWriteFactory2_CreateFontFallbackBuilder(IDWriteFactory2* This,IDWriteFontFallbackBuilder **fallbackbuilder) { + return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); +} +static inline HRESULT IDWriteFactory2_TranslateColorGlyphRun(IDWriteFactory2* This,FLOAT originX,FLOAT originY,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,DWRITE_MEASURING_MODE mode,const DWRITE_MATRIX *transform,UINT32 palette_index,IDWriteColorGlyphRunEnumerator **colorlayers) { + return This->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers); +} +static inline HRESULT IDWriteFactory2_CreateCustomRenderingParams(IDWriteFactory2* This,FLOAT gamma,FLOAT contrast,FLOAT grayscalecontrast,FLOAT cleartypeLevel,DWRITE_PIXEL_GEOMETRY pixelGeometry,DWRITE_RENDERING_MODE renderingMode,DWRITE_GRID_FIT_MODE gridFitMode,IDWriteRenderingParams2 **params) { + return This->lpVtbl->IDWriteFactory2_CreateCustomRenderingParams(This,gamma,contrast,grayscalecontrast,cleartypeLevel,pixelGeometry,renderingMode,gridFitMode,params); +} +static inline HRESULT IDWriteFactory2_CreateGlyphRunAnalysis(IDWriteFactory2* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE renderingMode,DWRITE_MEASURING_MODE measuringMode,DWRITE_GRID_FIT_MODE gridFitMode,DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,FLOAT originX,FLOAT originY,IDWriteGlyphRunAnalysis **analysis) { + return This->lpVtbl->IDWriteFactory2_CreateGlyphRunAnalysis(This,run,transform,renderingMode,measuringMode,gridFitMode,antialiasMode,originX,originY,analysis); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFactory2_INTERFACE_DEFINED__ */ + +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __dwrite_2_h__ */ diff --git a/src/text/dwrite_3.h b/src/text/dwrite_3.h new file mode 100644 index 000000000..c2b6f85ae --- /dev/null +++ b/src/text/dwrite_3.h @@ -0,0 +1,15191 @@ +/*** Autogenerated by WIDL 11.0-rc1 from include/dwrite_3.idl - Do not edit ***/ + +#define COBJMACROS + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#endif + +#ifndef __dwrite_3_h__ +#define __dwrite_3_h__ + +/* Forward declarations */ + +#ifndef __IDWriteFontDownloadListener_FWD_DEFINED__ +#define __IDWriteFontDownloadListener_FWD_DEFINED__ +typedef interface IDWriteFontDownloadListener IDWriteFontDownloadListener; +#ifdef __cplusplus +interface IDWriteFontDownloadListener; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontDownloadQueue_FWD_DEFINED__ +#define __IDWriteFontDownloadQueue_FWD_DEFINED__ +typedef interface IDWriteFontDownloadQueue IDWriteFontDownloadQueue; +#ifdef __cplusplus +interface IDWriteFontDownloadQueue; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteRenderingParams3_FWD_DEFINED__ +#define __IDWriteRenderingParams3_FWD_DEFINED__ +typedef interface IDWriteRenderingParams3 IDWriteRenderingParams3; +#ifdef __cplusplus +interface IDWriteRenderingParams3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteStringList_FWD_DEFINED__ +#define __IDWriteStringList_FWD_DEFINED__ +typedef interface IDWriteStringList IDWriteStringList; +#ifdef __cplusplus +interface IDWriteStringList; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontSet_FWD_DEFINED__ +#define __IDWriteFontSet_FWD_DEFINED__ +typedef interface IDWriteFontSet IDWriteFontSet; +#ifdef __cplusplus +interface IDWriteFontSet; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontResource_FWD_DEFINED__ +#define __IDWriteFontResource_FWD_DEFINED__ +typedef interface IDWriteFontResource IDWriteFontResource; +#ifdef __cplusplus +interface IDWriteFontResource; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontSet1_FWD_DEFINED__ +#define __IDWriteFontSet1_FWD_DEFINED__ +typedef interface IDWriteFontSet1 IDWriteFontSet1; +#ifdef __cplusplus +interface IDWriteFontSet1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFont3_FWD_DEFINED__ +#define __IDWriteFont3_FWD_DEFINED__ +typedef interface IDWriteFont3 IDWriteFont3; +#ifdef __cplusplus +interface IDWriteFont3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFamily1_FWD_DEFINED__ +#define __IDWriteFontFamily1_FWD_DEFINED__ +typedef interface IDWriteFontFamily1 IDWriteFontFamily1; +#ifdef __cplusplus +interface IDWriteFontFamily1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFamily2_FWD_DEFINED__ +#define __IDWriteFontFamily2_FWD_DEFINED__ +typedef interface IDWriteFontFamily2 IDWriteFontFamily2; +#ifdef __cplusplus +interface IDWriteFontFamily2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontCollection1_FWD_DEFINED__ +#define __IDWriteFontCollection1_FWD_DEFINED__ +typedef interface IDWriteFontCollection1 IDWriteFontCollection1; +#ifdef __cplusplus +interface IDWriteFontCollection1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontCollection2_FWD_DEFINED__ +#define __IDWriteFontCollection2_FWD_DEFINED__ +typedef interface IDWriteFontCollection2 IDWriteFontCollection2; +#ifdef __cplusplus +interface IDWriteFontCollection2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontCollection3_FWD_DEFINED__ +#define __IDWriteFontCollection3_FWD_DEFINED__ +typedef interface IDWriteFontCollection3 IDWriteFontCollection3; +#ifdef __cplusplus +interface IDWriteFontCollection3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFaceReference_FWD_DEFINED__ +#define __IDWriteFontFaceReference_FWD_DEFINED__ +typedef interface IDWriteFontFaceReference IDWriteFontFaceReference; +#ifdef __cplusplus +interface IDWriteFontFaceReference; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFaceReference1_FWD_DEFINED__ +#define __IDWriteFontFaceReference1_FWD_DEFINED__ +typedef interface IDWriteFontFaceReference1 IDWriteFontFaceReference1; +#ifdef __cplusplus +interface IDWriteFontFaceReference1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontList1_FWD_DEFINED__ +#define __IDWriteFontList1_FWD_DEFINED__ +typedef interface IDWriteFontList1 IDWriteFontList1; +#ifdef __cplusplus +interface IDWriteFontList1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontList2_FWD_DEFINED__ +#define __IDWriteFontList2_FWD_DEFINED__ +typedef interface IDWriteFontList2 IDWriteFontList2; +#ifdef __cplusplus +interface IDWriteFontList2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontSet2_FWD_DEFINED__ +#define __IDWriteFontSet2_FWD_DEFINED__ +typedef interface IDWriteFontSet2 IDWriteFontSet2; +#ifdef __cplusplus +interface IDWriteFontSet2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontSet3_FWD_DEFINED__ +#define __IDWriteFontSet3_FWD_DEFINED__ +typedef interface IDWriteFontSet3 IDWriteFontSet3; +#ifdef __cplusplus +interface IDWriteFontSet3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontSet4_FWD_DEFINED__ +#define __IDWriteFontSet4_FWD_DEFINED__ +typedef interface IDWriteFontSet4 IDWriteFontSet4; +#ifdef __cplusplus +interface IDWriteFontSet4; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFace3_FWD_DEFINED__ +#define __IDWriteFontFace3_FWD_DEFINED__ +typedef interface IDWriteFontFace3 IDWriteFontFace3; +#ifdef __cplusplus +interface IDWriteFontFace3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextFormat2_FWD_DEFINED__ +#define __IDWriteTextFormat2_FWD_DEFINED__ +typedef interface IDWriteTextFormat2 IDWriteTextFormat2; +#ifdef __cplusplus +interface IDWriteTextFormat2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextFormat3_FWD_DEFINED__ +#define __IDWriteTextFormat3_FWD_DEFINED__ +typedef interface IDWriteTextFormat3 IDWriteTextFormat3; +#ifdef __cplusplus +interface IDWriteTextFormat3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextLayout3_FWD_DEFINED__ +#define __IDWriteTextLayout3_FWD_DEFINED__ +typedef interface IDWriteTextLayout3 IDWriteTextLayout3; +#ifdef __cplusplus +interface IDWriteTextLayout3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextLayout4_FWD_DEFINED__ +#define __IDWriteTextLayout4_FWD_DEFINED__ +typedef interface IDWriteTextLayout4 IDWriteTextLayout4; +#ifdef __cplusplus +interface IDWriteTextLayout4; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFallback1_FWD_DEFINED__ +#define __IDWriteFontFallback1_FWD_DEFINED__ +typedef interface IDWriteFontFallback1 IDWriteFontFallback1; +#ifdef __cplusplus +interface IDWriteFontFallback1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteGdiInterop1_FWD_DEFINED__ +#define __IDWriteGdiInterop1_FWD_DEFINED__ +typedef interface IDWriteGdiInterop1 IDWriteGdiInterop1; +#ifdef __cplusplus +interface IDWriteGdiInterop1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontSetBuilder_FWD_DEFINED__ +#define __IDWriteFontSetBuilder_FWD_DEFINED__ +typedef interface IDWriteFontSetBuilder IDWriteFontSetBuilder; +#ifdef __cplusplus +interface IDWriteFontSetBuilder; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontSetBuilder1_FWD_DEFINED__ +#define __IDWriteFontSetBuilder1_FWD_DEFINED__ +typedef interface IDWriteFontSetBuilder1 IDWriteFontSetBuilder1; +#ifdef __cplusplus +interface IDWriteFontSetBuilder1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontSetBuilder2_FWD_DEFINED__ +#define __IDWriteFontSetBuilder2_FWD_DEFINED__ +typedef interface IDWriteFontSetBuilder2 IDWriteFontSetBuilder2; +#ifdef __cplusplus +interface IDWriteFontSetBuilder2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFactory3_FWD_DEFINED__ +#define __IDWriteFactory3_FWD_DEFINED__ +typedef interface IDWriteFactory3 IDWriteFactory3; +#ifdef __cplusplus +interface IDWriteFactory3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFace4_FWD_DEFINED__ +#define __IDWriteFontFace4_FWD_DEFINED__ +typedef interface IDWriteFontFace4 IDWriteFontFace4; +#ifdef __cplusplus +interface IDWriteFontFace4; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFace5_FWD_DEFINED__ +#define __IDWriteFontFace5_FWD_DEFINED__ +typedef interface IDWriteFontFace5 IDWriteFontFace5; +#ifdef __cplusplus +interface IDWriteFontFace5; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFace6_FWD_DEFINED__ +#define __IDWriteFontFace6_FWD_DEFINED__ +typedef interface IDWriteFontFace6 IDWriteFontFace6; +#ifdef __cplusplus +interface IDWriteFontFace6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWritePaintReader_FWD_DEFINED__ +#define __IDWritePaintReader_FWD_DEFINED__ +typedef interface IDWritePaintReader IDWritePaintReader; +#ifdef __cplusplus +interface IDWritePaintReader; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFace7_FWD_DEFINED__ +#define __IDWriteFontFace7_FWD_DEFINED__ +typedef interface IDWriteFontFace7 IDWriteFontFace7; +#ifdef __cplusplus +interface IDWriteFontFace7; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteColorGlyphRunEnumerator1_FWD_DEFINED__ +#define __IDWriteColorGlyphRunEnumerator1_FWD_DEFINED__ +typedef interface IDWriteColorGlyphRunEnumerator1 IDWriteColorGlyphRunEnumerator1; +#ifdef __cplusplus +interface IDWriteColorGlyphRunEnumerator1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFactory4_FWD_DEFINED__ +#define __IDWriteFactory4_FWD_DEFINED__ +typedef interface IDWriteFactory4 IDWriteFactory4; +#ifdef __cplusplus +interface IDWriteFactory4; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteAsyncResult_FWD_DEFINED__ +#define __IDWriteAsyncResult_FWD_DEFINED__ +typedef interface IDWriteAsyncResult IDWriteAsyncResult; +#ifdef __cplusplus +interface IDWriteAsyncResult; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteRemoteFontFileStream_FWD_DEFINED__ +#define __IDWriteRemoteFontFileStream_FWD_DEFINED__ +typedef interface IDWriteRemoteFontFileStream IDWriteRemoteFontFileStream; +#ifdef __cplusplus +interface IDWriteRemoteFontFileStream; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteRemoteFontFileLoader_FWD_DEFINED__ +#define __IDWriteRemoteFontFileLoader_FWD_DEFINED__ +typedef interface IDWriteRemoteFontFileLoader IDWriteRemoteFontFileLoader; +#ifdef __cplusplus +interface IDWriteRemoteFontFileLoader; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteInMemoryFontFileLoader_FWD_DEFINED__ +#define __IDWriteInMemoryFontFileLoader_FWD_DEFINED__ +typedef interface IDWriteInMemoryFontFileLoader IDWriteInMemoryFontFileLoader; +#ifdef __cplusplus +interface IDWriteInMemoryFontFileLoader; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFactory5_FWD_DEFINED__ +#define __IDWriteFactory5_FWD_DEFINED__ +typedef interface IDWriteFactory5 IDWriteFactory5; +#ifdef __cplusplus +interface IDWriteFactory5; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFactory6_FWD_DEFINED__ +#define __IDWriteFactory6_FWD_DEFINED__ +typedef interface IDWriteFactory6 IDWriteFactory6; +#ifdef __cplusplus +interface IDWriteFactory6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFactory7_FWD_DEFINED__ +#define __IDWriteFactory7_FWD_DEFINED__ +typedef interface IDWriteFactory7 IDWriteFactory7; +#ifdef __cplusplus +interface IDWriteFactory7; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFactory8_FWD_DEFINED__ +#define __IDWriteFactory8_FWD_DEFINED__ +typedef interface IDWriteFactory8 IDWriteFactory8; +#ifdef __cplusplus +interface IDWriteFactory8; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteBitmapRenderTarget2_FWD_DEFINED__ +#define __IDWriteBitmapRenderTarget2_FWD_DEFINED__ +typedef interface IDWriteBitmapRenderTarget2 IDWriteBitmapRenderTarget2; +#ifdef __cplusplus +interface IDWriteBitmapRenderTarget2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteBitmapRenderTarget3_FWD_DEFINED__ +#define __IDWriteBitmapRenderTarget3_FWD_DEFINED__ +typedef interface IDWriteBitmapRenderTarget3 IDWriteBitmapRenderTarget3; +#ifdef __cplusplus +interface IDWriteBitmapRenderTarget3; +#endif /* __cplusplus */ +#endif + +/* Headers for imported files */ + +#include "dwrite_2.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef __IDWriteFontFaceReference_FWD_DEFINED__ +#define __IDWriteFontFaceReference_FWD_DEFINED__ +typedef interface IDWriteFontFaceReference IDWriteFontFaceReference; +#ifdef __cplusplus +interface IDWriteFontFaceReference; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFaceReference1_FWD_DEFINED__ +#define __IDWriteFontFaceReference1_FWD_DEFINED__ +typedef interface IDWriteFontFaceReference1 IDWriteFontFaceReference1; +#ifdef __cplusplus +interface IDWriteFontFaceReference1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFace3_FWD_DEFINED__ +#define __IDWriteFontFace3_FWD_DEFINED__ +typedef interface IDWriteFontFace3 IDWriteFontFace3; +#ifdef __cplusplus +interface IDWriteFontFace3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontSet_FWD_DEFINED__ +#define __IDWriteFontSet_FWD_DEFINED__ +typedef interface IDWriteFontSet IDWriteFontSet; +#ifdef __cplusplus +interface IDWriteFontSet; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontDownloadQueue_FWD_DEFINED__ +#define __IDWriteFontDownloadQueue_FWD_DEFINED__ +typedef interface IDWriteFontDownloadQueue IDWriteFontDownloadQueue; +#ifdef __cplusplus +interface IDWriteFontDownloadQueue; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFace5_FWD_DEFINED__ +#define __IDWriteFontFace5_FWD_DEFINED__ +typedef interface IDWriteFontFace5 IDWriteFontFace5; +#ifdef __cplusplus +interface IDWriteFontFace5; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontList2_FWD_DEFINED__ +#define __IDWriteFontList2_FWD_DEFINED__ +typedef interface IDWriteFontList2 IDWriteFontList2; +#ifdef __cplusplus +interface IDWriteFontList2; +#endif /* __cplusplus */ +#endif + +#ifndef _WINGDI_ +typedef struct FONTSIGNATURE FONTSIGNATURE; +#endif /* _WINGDI_ */ +typedef struct D2D1_GRADIENT_STOP D2D1_GRADIENT_STOP; +typedef enum DWRITE_COLOR_COMPOSITE_MODE { + DWRITE_COLOR_COMPOSITE_CLEAR = 0, + DWRITE_COLOR_COMPOSITE_SRC = 1, + DWRITE_COLOR_COMPOSITE_DEST = 2, + DWRITE_COLOR_COMPOSITE_SRC_OVER = 3, + DWRITE_COLOR_COMPOSITE_DEST_OVER = 4, + DWRITE_COLOR_COMPOSITE_SRC_IN = 5, + DWRITE_COLOR_COMPOSITE_DEST_IN = 6, + DWRITE_COLOR_COMPOSITE_SRC_OUT = 7, + DWRITE_COLOR_COMPOSITE_DEST_OUT = 8, + DWRITE_COLOR_COMPOSITE_SRC_ATOP = 9, + DWRITE_COLOR_COMPOSITE_DEST_ATOP = 10, + DWRITE_COLOR_COMPOSITE_XOR = 11, + DWRITE_COLOR_COMPOSITE_PLUS = 12, + DWRITE_COLOR_COMPOSITE_SCREEN = 13, + DWRITE_COLOR_COMPOSITE_OVERLAY = 14, + DWRITE_COLOR_COMPOSITE_DARKEN = 15, + DWRITE_COLOR_COMPOSITE_LIGHTEN = 16, + DWRITE_COLOR_COMPOSITE_COLOR_DODGE = 17, + DWRITE_COLOR_COMPOSITE_COLOR_BURN = 18, + DWRITE_COLOR_COMPOSITE_HARD_LIGHT = 19, + DWRITE_COLOR_COMPOSITE_SOFT_LIGHT = 20, + DWRITE_COLOR_COMPOSITE_DIFFERENCE = 21, + DWRITE_COLOR_COMPOSITE_EXCLUSION = 22, + DWRITE_COLOR_COMPOSITE_MULTIPLY = 23, + DWRITE_COLOR_COMPOSITE_HSL_HUE = 24, + DWRITE_COLOR_COMPOSITE_HSL_SATURATION = 25, + DWRITE_COLOR_COMPOSITE_HSL_COLOR = 26, + DWRITE_COLOR_COMPOSITE_HSL_LUMINOSITY = 27 +} DWRITE_COLOR_COMPOSITE_MODE; +typedef enum DWRITE_LOCALITY { + DWRITE_LOCALITY_REMOTE = 0, + DWRITE_LOCALITY_PARTIAL = 1, + DWRITE_LOCALITY_LOCAL = 2 +} DWRITE_LOCALITY; +typedef enum DWRITE_RENDERING_MODE1 { + DWRITE_RENDERING_MODE1_DEFAULT = 0, + DWRITE_RENDERING_MODE1_ALIASED = 1, + DWRITE_RENDERING_MODE1_GDI_CLASSIC = 2, + DWRITE_RENDERING_MODE1_GDI_NATURAL = 3, + DWRITE_RENDERING_MODE1_NATURAL = 4, + DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC = 5, + DWRITE_RENDERING_MODE1_OUTLINE = 6, + DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC_DOWNSAMPLED = 7 +} DWRITE_RENDERING_MODE1; +typedef enum DWRITE_FONT_PROPERTY_ID { + DWRITE_FONT_PROPERTY_ID_NONE = 0, + DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME = 1, + DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME = 2, + DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME = 3, + DWRITE_FONT_PROPERTY_ID_FULL_NAME = 4, + DWRITE_FONT_PROPERTY_ID_WIN32_FAMILY_NAME = 5, + DWRITE_FONT_PROPERTY_ID_POSTSCRIPT_NAME = 6, + DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG = 7, + DWRITE_FONT_PROPERTY_ID_SUPPORTED_SCRIPT_LANGUAGE_TAG = 8, + DWRITE_FONT_PROPERTY_ID_SEMANTIC_TAG = 9, + DWRITE_FONT_PROPERTY_ID_WEIGHT = 10, + DWRITE_FONT_PROPERTY_ID_STRETCH = 11, + DWRITE_FONT_PROPERTY_ID_STYLE = 12, + DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME = 13, + DWRITE_FONT_PROPERTY_ID_TOTAL = DWRITE_FONT_PROPERTY_ID_STYLE + 1, + DWRITE_FONT_PROPERTY_ID_TOTAL_RS3 = DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME + 1, + DWRITE_FONT_PROPERTY_ID_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME, + DWRITE_FONT_PROPERTY_ID_PREFERRED_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME, + DWRITE_FONT_PROPERTY_ID_FACE_NAME = DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME +} DWRITE_FONT_PROPERTY_ID; +typedef struct DWRITE_FONT_PROPERTY { + DWRITE_FONT_PROPERTY_ID propertyId; + const WCHAR *propertyValue; + const WCHAR *localeName; +} DWRITE_FONT_PROPERTY; +#ifdef __cplusplus +#define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (static_cast(DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d))) +#else +#define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d)) +#endif +typedef enum DWRITE_FONT_AXIS_TAG { + DWRITE_FONT_AXIS_TAG_WEIGHT = 0x74686777, + DWRITE_FONT_AXIS_TAG_WIDTH = 0x68746477, + DWRITE_FONT_AXIS_TAG_SLANT = 0x746e6c73, + DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE = 0x7a73706f, + DWRITE_FONT_AXIS_TAG_ITALIC = 0x6c617469 +} DWRITE_FONT_AXIS_TAG; +typedef enum DWRITE_FONT_SOURCE_TYPE { + DWRITE_FONT_SOURCE_TYPE_UNKNOWN = 0, + DWRITE_FONT_SOURCE_TYPE_PER_MACHINE = 1, + DWRITE_FONT_SOURCE_TYPE_PER_USER = 2, + DWRITE_FONT_SOURCE_TYPE_APPX_PACKAGE = 3, + DWRITE_FONT_SOURCE_TYPE_REMOTE_FONT_PROVIDER = 4 +} DWRITE_FONT_SOURCE_TYPE; +typedef struct DWRITE_FONT_AXIS_VALUE { + DWRITE_FONT_AXIS_TAG axisTag; + FLOAT value; +} DWRITE_FONT_AXIS_VALUE; +typedef struct DWRITE_FONT_AXIS_RANGE { + DWRITE_FONT_AXIS_TAG axisTag; + FLOAT minValue; + FLOAT maxValue; +} DWRITE_FONT_AXIS_RANGE; +typedef enum DWRITE_AUTOMATIC_FONT_AXES { + DWRITE_AUTOMATIC_FONT_AXES_NONE = 0, + DWRITE_AUTOMATIC_FONT_AXES_OPTICAL_SIZE = 1 +} DWRITE_AUTOMATIC_FONT_AXES; +typedef enum DWRITE_FONT_AXIS_ATTRIBUTES { + DWRITE_FONT_AXIS_ATTRIBUTES_NONE = 0, + DWRITE_FONT_AXIS_ATTRIBUTES_VARIABLE = 1, + DWRITE_FONT_AXIS_ATTRIBUTES_HIDDEN = 2 +} DWRITE_FONT_AXIS_ATTRIBUTES; +typedef enum DWRITE_FONT_FAMILY_MODEL { + DWRITE_FONT_FAMILY_MODEL_TYPOGRAPHIC = 0, + DWRITE_FONT_FAMILY_MODEL_WEIGHT_STRETCH_STYLE = 1 +} DWRITE_FONT_FAMILY_MODEL; +typedef enum DWRITE_PAINT_TYPE { + DWRITE_PAINT_TYPE_NONE = 0, + DWRITE_PAINT_TYPE_LAYERS = 1, + DWRITE_PAINT_TYPE_SOLID_GLYPH = 2, + DWRITE_PAINT_TYPE_SOLID = 3, + DWRITE_PAINT_TYPE_LINEAR_GRADIENT = 4, + DWRITE_PAINT_TYPE_RADIAL_GRADIENT = 5, + DWRITE_PAINT_TYPE_SWEEP_GRADIENT = 6, + DWRITE_PAINT_TYPE_GLYPH = 7, + DWRITE_PAINT_TYPE_COLOR_GLYPH = 8, + DWRITE_PAINT_TYPE_TRANSFORM = 9, + DWRITE_PAINT_TYPE_COMPOSITE = 10 +} DWRITE_PAINT_TYPE; +#ifndef DWRITE_PAINT_FEATURE_LEVEL_DEFINED +#define DWRITE_PAINT_FEATURE_LEVEL_DEFINED +typedef enum DWRITE_PAINT_FEATURE_LEVEL { + DWRITE_PAINT_FEATURE_LEVEL_NONE = 0, + DWRITE_PAINT_FEATURE_LEVEL_COLR_V0 = 1, + DWRITE_PAINT_FEATURE_LEVEL_COLR_V1 = 2 +} DWRITE_PAINT_FEATURE_LEVEL; +#endif /* DWRITE_PAINT_FEATURE_LEVEL_DEFINED */ +typedef enum DWRITE_PAINT_ATTRIBUTES { + DWRITE_PAINT_ATTRIBUTES_NONE = 0, + DWRITE_PAINT_ATTRIBUTES_USES_PALETTE = 0x1, + DWRITE_PAINT_ATTRIBUTES_USES_TEXT_COLOR = 0x2 +} DWRITE_PAINT_ATTRIBUTES; +DEFINE_ENUM_FLAG_OPERATORS(DWRITE_PAINT_ATTRIBUTES) +typedef struct DWRITE_PAINT_COLOR { + DWRITE_COLOR_F value; + UINT16 paletteEntryIndex; + float alphaMultiplier; + DWRITE_PAINT_ATTRIBUTES colorAttributes; +} DWRITE_PAINT_COLOR; +typedef struct DWRITE_PAINT_ELEMENT { + DWRITE_PAINT_TYPE paintType; + union PAINT_UNION { + struct PAINT_LAYERS { + UINT32 childCount; + } layers; + struct PAINT_SOLID_GLYPH { + UINT32 glyphIndex; + DWRITE_PAINT_COLOR color; + } solidGlyph; + DWRITE_PAINT_COLOR solid; + struct PAINT_LINEAR_GRADIENT { + UINT32 extendMode; + UINT32 gradientStopCount; + float x0; + float y0; + float x1; + float y1; + float x2; + float y2; + } linearGradient; + struct PAINT_RADIAL_GRADIENT { + UINT32 extendMode; + UINT32 gradientStopCount; + float x0; + float y0; + float radius0; + float x1; + float y1; + float radius1; + } radialGradient; + struct PAINT_SWEEP_GRADIENT { + UINT32 extendMode; + UINT32 gradientStopCount; + float centerX; + float centerY; + float startAngle; + float endAngle; + } sweepGradient; + struct PAINT_GLYPH { + UINT32 glyphIndex; + } glyph; + struct PAINT_COLOR_GLYPH { + UINT32 glyphIndex; + D2D_RECT_F clipBox; + } colorGlyph; + DWRITE_MATRIX transform; + struct PAINT_COMPOSITE { + DWRITE_COLOR_COMPOSITE_MODE mode; + } composite; + } paint; +} DWRITE_PAINT_ELEMENT; +/***************************************************************************** + * IDWriteFontDownloadListener interface + */ +#ifndef __IDWriteFontDownloadListener_INTERFACE_DEFINED__ +#define __IDWriteFontDownloadListener_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontDownloadListener, 0xb06fe5b9, 0x43ec, 0x4393, 0x88,0x1b, 0xdb,0xe4,0xdc,0x72,0xfd,0xa7); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("b06fe5b9-43ec-4393-881b-dbe4dc72fda7") +IDWriteFontDownloadListener : public IUnknown +{ + virtual void STDMETHODCALLTYPE DownloadCompleted( + IDWriteFontDownloadQueue *queue, + IUnknown *context, + HRESULT result) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontDownloadListener, 0xb06fe5b9, 0x43ec, 0x4393, 0x88,0x1b, 0xdb,0xe4,0xdc,0x72,0xfd,0xa7) +#endif +#else +typedef struct IDWriteFontDownloadListenerVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontDownloadListener *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontDownloadListener *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontDownloadListener *This); + + /*** IDWriteFontDownloadListener methods ***/ + void (STDMETHODCALLTYPE *DownloadCompleted)( + IDWriteFontDownloadListener *This, + IDWriteFontDownloadQueue *queue, + IUnknown *context, + HRESULT result); + + END_INTERFACE +} IDWriteFontDownloadListenerVtbl; + +interface IDWriteFontDownloadListener { + CONST_VTBL IDWriteFontDownloadListenerVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontDownloadListener_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontDownloadListener_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontDownloadListener_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontDownloadListener methods ***/ +#define IDWriteFontDownloadListener_DownloadCompleted(This,queue,context,result) (This)->lpVtbl->DownloadCompleted(This,queue,context,result) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontDownloadListener_QueryInterface(IDWriteFontDownloadListener* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontDownloadListener_AddRef(IDWriteFontDownloadListener* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontDownloadListener_Release(IDWriteFontDownloadListener* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontDownloadListener methods ***/ +static inline void IDWriteFontDownloadListener_DownloadCompleted(IDWriteFontDownloadListener* This,IDWriteFontDownloadQueue *queue,IUnknown *context,HRESULT result) { + This->lpVtbl->DownloadCompleted(This,queue,context,result); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontDownloadListener_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontDownloadQueue interface + */ +#ifndef __IDWriteFontDownloadQueue_INTERFACE_DEFINED__ +#define __IDWriteFontDownloadQueue_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontDownloadQueue, 0xb71e6052, 0x5aea, 0x4fa3, 0x83,0x2e, 0xf6,0x0d,0x43,0x1f,0x7e,0x91); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("b71e6052-5aea-4fa3-832e-f60d431f7e91") +IDWriteFontDownloadQueue : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE AddListener( + IDWriteFontDownloadListener *listener, + UINT32 *token) = 0; + + virtual HRESULT STDMETHODCALLTYPE RemoveListener( + UINT32 token) = 0; + + virtual WINBOOL STDMETHODCALLTYPE IsEmpty( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE BeginDownload( + IUnknown *context) = 0; + + virtual HRESULT STDMETHODCALLTYPE CancelDownload( + ) = 0; + + virtual UINT64 STDMETHODCALLTYPE GetGenerationCount( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontDownloadQueue, 0xb71e6052, 0x5aea, 0x4fa3, 0x83,0x2e, 0xf6,0x0d,0x43,0x1f,0x7e,0x91) +#endif +#else +typedef struct IDWriteFontDownloadQueueVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontDownloadQueue *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontDownloadQueue *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontDownloadQueue *This); + + /*** IDWriteFontDownloadQueue methods ***/ + HRESULT (STDMETHODCALLTYPE *AddListener)( + IDWriteFontDownloadQueue *This, + IDWriteFontDownloadListener *listener, + UINT32 *token); + + HRESULT (STDMETHODCALLTYPE *RemoveListener)( + IDWriteFontDownloadQueue *This, + UINT32 token); + + WINBOOL (STDMETHODCALLTYPE *IsEmpty)( + IDWriteFontDownloadQueue *This); + + HRESULT (STDMETHODCALLTYPE *BeginDownload)( + IDWriteFontDownloadQueue *This, + IUnknown *context); + + HRESULT (STDMETHODCALLTYPE *CancelDownload)( + IDWriteFontDownloadQueue *This); + + UINT64 (STDMETHODCALLTYPE *GetGenerationCount)( + IDWriteFontDownloadQueue *This); + + END_INTERFACE +} IDWriteFontDownloadQueueVtbl; + +interface IDWriteFontDownloadQueue { + CONST_VTBL IDWriteFontDownloadQueueVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontDownloadQueue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontDownloadQueue_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontDownloadQueue_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontDownloadQueue methods ***/ +#define IDWriteFontDownloadQueue_AddListener(This,listener,token) (This)->lpVtbl->AddListener(This,listener,token) +#define IDWriteFontDownloadQueue_RemoveListener(This,token) (This)->lpVtbl->RemoveListener(This,token) +#define IDWriteFontDownloadQueue_IsEmpty(This) (This)->lpVtbl->IsEmpty(This) +#define IDWriteFontDownloadQueue_BeginDownload(This,context) (This)->lpVtbl->BeginDownload(This,context) +#define IDWriteFontDownloadQueue_CancelDownload(This) (This)->lpVtbl->CancelDownload(This) +#define IDWriteFontDownloadQueue_GetGenerationCount(This) (This)->lpVtbl->GetGenerationCount(This) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontDownloadQueue_QueryInterface(IDWriteFontDownloadQueue* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontDownloadQueue_AddRef(IDWriteFontDownloadQueue* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontDownloadQueue_Release(IDWriteFontDownloadQueue* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontDownloadQueue methods ***/ +static inline HRESULT IDWriteFontDownloadQueue_AddListener(IDWriteFontDownloadQueue* This,IDWriteFontDownloadListener *listener,UINT32 *token) { + return This->lpVtbl->AddListener(This,listener,token); +} +static inline HRESULT IDWriteFontDownloadQueue_RemoveListener(IDWriteFontDownloadQueue* This,UINT32 token) { + return This->lpVtbl->RemoveListener(This,token); +} +static inline WINBOOL IDWriteFontDownloadQueue_IsEmpty(IDWriteFontDownloadQueue* This) { + return This->lpVtbl->IsEmpty(This); +} +static inline HRESULT IDWriteFontDownloadQueue_BeginDownload(IDWriteFontDownloadQueue* This,IUnknown *context) { + return This->lpVtbl->BeginDownload(This,context); +} +static inline HRESULT IDWriteFontDownloadQueue_CancelDownload(IDWriteFontDownloadQueue* This) { + return This->lpVtbl->CancelDownload(This); +} +static inline UINT64 IDWriteFontDownloadQueue_GetGenerationCount(IDWriteFontDownloadQueue* This) { + return This->lpVtbl->GetGenerationCount(This); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontDownloadQueue_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteRenderingParams3 interface + */ +#ifndef __IDWriteRenderingParams3_INTERFACE_DEFINED__ +#define __IDWriteRenderingParams3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteRenderingParams3, 0xb7924baa, 0x391b, 0x412a, 0x8c,0x5c, 0xe4,0x4c,0xc2,0xd8,0x67,0xdc); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("b7924baa-391b-412a-8c5c-e44cc2d867dc") +IDWriteRenderingParams3 : public IDWriteRenderingParams2 +{ + virtual DWRITE_RENDERING_MODE1 STDMETHODCALLTYPE GetRenderingMode1( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteRenderingParams3, 0xb7924baa, 0x391b, 0x412a, 0x8c,0x5c, 0xe4,0x4c,0xc2,0xd8,0x67,0xdc) +#endif +#else +typedef struct IDWriteRenderingParams3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteRenderingParams3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteRenderingParams3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteRenderingParams3 *This); + + /*** IDWriteRenderingParams methods ***/ + FLOAT (STDMETHODCALLTYPE *GetGamma)( + IDWriteRenderingParams3 *This); + + FLOAT (STDMETHODCALLTYPE *GetEnhancedContrast)( + IDWriteRenderingParams3 *This); + + FLOAT (STDMETHODCALLTYPE *GetClearTypeLevel)( + IDWriteRenderingParams3 *This); + + DWRITE_PIXEL_GEOMETRY (STDMETHODCALLTYPE *GetPixelGeometry)( + IDWriteRenderingParams3 *This); + + DWRITE_RENDERING_MODE (STDMETHODCALLTYPE *GetRenderingMode)( + IDWriteRenderingParams3 *This); + + /*** IDWriteRenderingParams1 methods ***/ + FLOAT (STDMETHODCALLTYPE *GetGrayscaleEnhancedContrast)( + IDWriteRenderingParams3 *This); + + /*** IDWriteRenderingParams2 methods ***/ + DWRITE_GRID_FIT_MODE (STDMETHODCALLTYPE *GetGridFitMode)( + IDWriteRenderingParams3 *This); + + /*** IDWriteRenderingParams3 methods ***/ + DWRITE_RENDERING_MODE1 (STDMETHODCALLTYPE *GetRenderingMode1)( + IDWriteRenderingParams3 *This); + + END_INTERFACE +} IDWriteRenderingParams3Vtbl; + +interface IDWriteRenderingParams3 { + CONST_VTBL IDWriteRenderingParams3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteRenderingParams3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteRenderingParams3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteRenderingParams3_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteRenderingParams methods ***/ +#define IDWriteRenderingParams3_GetGamma(This) (This)->lpVtbl->GetGamma(This) +#define IDWriteRenderingParams3_GetEnhancedContrast(This) (This)->lpVtbl->GetEnhancedContrast(This) +#define IDWriteRenderingParams3_GetClearTypeLevel(This) (This)->lpVtbl->GetClearTypeLevel(This) +#define IDWriteRenderingParams3_GetPixelGeometry(This) (This)->lpVtbl->GetPixelGeometry(This) +#define IDWriteRenderingParams3_GetRenderingMode(This) (This)->lpVtbl->GetRenderingMode(This) +/*** IDWriteRenderingParams1 methods ***/ +#define IDWriteRenderingParams3_GetGrayscaleEnhancedContrast(This) (This)->lpVtbl->GetGrayscaleEnhancedContrast(This) +/*** IDWriteRenderingParams2 methods ***/ +#define IDWriteRenderingParams3_GetGridFitMode(This) (This)->lpVtbl->GetGridFitMode(This) +/*** IDWriteRenderingParams3 methods ***/ +#define IDWriteRenderingParams3_GetRenderingMode1(This) (This)->lpVtbl->GetRenderingMode1(This) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteRenderingParams3_QueryInterface(IDWriteRenderingParams3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteRenderingParams3_AddRef(IDWriteRenderingParams3* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteRenderingParams3_Release(IDWriteRenderingParams3* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteRenderingParams methods ***/ +static inline FLOAT IDWriteRenderingParams3_GetGamma(IDWriteRenderingParams3* This) { + return This->lpVtbl->GetGamma(This); +} +static inline FLOAT IDWriteRenderingParams3_GetEnhancedContrast(IDWriteRenderingParams3* This) { + return This->lpVtbl->GetEnhancedContrast(This); +} +static inline FLOAT IDWriteRenderingParams3_GetClearTypeLevel(IDWriteRenderingParams3* This) { + return This->lpVtbl->GetClearTypeLevel(This); +} +static inline DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams3_GetPixelGeometry(IDWriteRenderingParams3* This) { + return This->lpVtbl->GetPixelGeometry(This); +} +static inline DWRITE_RENDERING_MODE IDWriteRenderingParams3_GetRenderingMode(IDWriteRenderingParams3* This) { + return This->lpVtbl->GetRenderingMode(This); +} +/*** IDWriteRenderingParams1 methods ***/ +static inline FLOAT IDWriteRenderingParams3_GetGrayscaleEnhancedContrast(IDWriteRenderingParams3* This) { + return This->lpVtbl->GetGrayscaleEnhancedContrast(This); +} +/*** IDWriteRenderingParams2 methods ***/ +static inline DWRITE_GRID_FIT_MODE IDWriteRenderingParams3_GetGridFitMode(IDWriteRenderingParams3* This) { + return This->lpVtbl->GetGridFitMode(This); +} +/*** IDWriteRenderingParams3 methods ***/ +static inline DWRITE_RENDERING_MODE1 IDWriteRenderingParams3_GetRenderingMode1(IDWriteRenderingParams3* This) { + return This->lpVtbl->GetRenderingMode1(This); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteRenderingParams3_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteStringList interface + */ +#ifndef __IDWriteStringList_INTERFACE_DEFINED__ +#define __IDWriteStringList_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteStringList, 0xcfee3140, 0x1157, 0x47ca, 0x8b,0x85, 0x31,0xbf,0xcf,0x3f,0x2d,0x0e); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("cfee3140-1157-47ca-8b85-31bfcf3f2d0e") +IDWriteStringList : public IUnknown +{ + virtual UINT32 STDMETHODCALLTYPE GetCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLocaleNameLength( + UINT32 index, + UINT32 *length) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLocaleName( + UINT32 index, + WCHAR *name, + UINT32 size) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetStringLength( + UINT32 index, + UINT32 *length) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetString( + UINT32 index, + WCHAR *string, + UINT32 size) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteStringList, 0xcfee3140, 0x1157, 0x47ca, 0x8b,0x85, 0x31,0xbf,0xcf,0x3f,0x2d,0x0e) +#endif +#else +typedef struct IDWriteStringListVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteStringList *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteStringList *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteStringList *This); + + /*** IDWriteStringList methods ***/ + UINT32 (STDMETHODCALLTYPE *GetCount)( + IDWriteStringList *This); + + HRESULT (STDMETHODCALLTYPE *GetLocaleNameLength)( + IDWriteStringList *This, + UINT32 index, + UINT32 *length); + + HRESULT (STDMETHODCALLTYPE *GetLocaleName)( + IDWriteStringList *This, + UINT32 index, + WCHAR *name, + UINT32 size); + + HRESULT (STDMETHODCALLTYPE *GetStringLength)( + IDWriteStringList *This, + UINT32 index, + UINT32 *length); + + HRESULT (STDMETHODCALLTYPE *GetString)( + IDWriteStringList *This, + UINT32 index, + WCHAR *string, + UINT32 size); + + END_INTERFACE +} IDWriteStringListVtbl; + +interface IDWriteStringList { + CONST_VTBL IDWriteStringListVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteStringList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteStringList_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteStringList_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteStringList methods ***/ +#define IDWriteStringList_GetCount(This) (This)->lpVtbl->GetCount(This) +#define IDWriteStringList_GetLocaleNameLength(This,index,length) (This)->lpVtbl->GetLocaleNameLength(This,index,length) +#define IDWriteStringList_GetLocaleName(This,index,name,size) (This)->lpVtbl->GetLocaleName(This,index,name,size) +#define IDWriteStringList_GetStringLength(This,index,length) (This)->lpVtbl->GetStringLength(This,index,length) +#define IDWriteStringList_GetString(This,index,string,size) (This)->lpVtbl->GetString(This,index,string,size) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteStringList_QueryInterface(IDWriteStringList* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteStringList_AddRef(IDWriteStringList* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteStringList_Release(IDWriteStringList* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteStringList methods ***/ +static inline UINT32 IDWriteStringList_GetCount(IDWriteStringList* This) { + return This->lpVtbl->GetCount(This); +} +static inline HRESULT IDWriteStringList_GetLocaleNameLength(IDWriteStringList* This,UINT32 index,UINT32 *length) { + return This->lpVtbl->GetLocaleNameLength(This,index,length); +} +static inline HRESULT IDWriteStringList_GetLocaleName(IDWriteStringList* This,UINT32 index,WCHAR *name,UINT32 size) { + return This->lpVtbl->GetLocaleName(This,index,name,size); +} +static inline HRESULT IDWriteStringList_GetStringLength(IDWriteStringList* This,UINT32 index,UINT32 *length) { + return This->lpVtbl->GetStringLength(This,index,length); +} +static inline HRESULT IDWriteStringList_GetString(IDWriteStringList* This,UINT32 index,WCHAR *string,UINT32 size) { + return This->lpVtbl->GetString(This,index,string,size); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteStringList_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontSet interface + */ +#ifndef __IDWriteFontSet_INTERFACE_DEFINED__ +#define __IDWriteFontSet_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontSet, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6b); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("53585141-d9f8-4095-8321-d73cf6bd116b") +IDWriteFontSet : public IUnknown +{ + virtual UINT32 STDMETHODCALLTYPE GetFontCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( + UINT32 index, + IDWriteFontFaceReference **reference) = 0; + + virtual HRESULT STDMETHODCALLTYPE FindFontFaceReference( + IDWriteFontFaceReference *reference, + UINT32 *index, + WINBOOL *exists) = 0; + + virtual HRESULT STDMETHODCALLTYPE FindFontFace( + IDWriteFontFace *fontface, + UINT32 *index, + WINBOOL *exists) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPropertyValues__( + DWRITE_FONT_PROPERTY_ID id, + IDWriteStringList **values) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPropertyValues_( + DWRITE_FONT_PROPERTY_ID id, + const WCHAR *preferred_locales, + IDWriteStringList **values) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPropertyValues( + UINT32 index, + DWRITE_FONT_PROPERTY_ID id, + WINBOOL *exists, + IDWriteLocalizedStrings **values) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPropertyOccurrenceCount( + const DWRITE_FONT_PROPERTY *property, + UINT32 *count) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts_( + const WCHAR *family, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontSet **fontset) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( + const DWRITE_FONT_PROPERTY *props, + UINT32 count, + IDWriteFontSet **fontset) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontSet, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6b) +#endif +#else +typedef struct IDWriteFontSetVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontSet *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontSet *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontSet *This); + + /*** IDWriteFontSet methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontCount)( + IDWriteFontSet *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontSet *This, + UINT32 index, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)( + IDWriteFontSet *This, + IDWriteFontFaceReference *reference, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *FindFontFace)( + IDWriteFontSet *This, + IDWriteFontFace *fontface, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)( + IDWriteFontSet *This, + DWRITE_FONT_PROPERTY_ID id, + IDWriteStringList **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)( + IDWriteFontSet *This, + DWRITE_FONT_PROPERTY_ID id, + const WCHAR *preferred_locales, + IDWriteStringList **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues)( + IDWriteFontSet *This, + UINT32 index, + DWRITE_FONT_PROPERTY_ID id, + WINBOOL *exists, + IDWriteLocalizedStrings **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)( + IDWriteFontSet *This, + const DWRITE_FONT_PROPERTY *property, + UINT32 *count); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)( + IDWriteFontSet *This, + const WCHAR *family, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( + IDWriteFontSet *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 count, + IDWriteFontSet **fontset); + + END_INTERFACE +} IDWriteFontSetVtbl; + +interface IDWriteFontSet { + CONST_VTBL IDWriteFontSetVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSet_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontSet_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontSet methods ***/ +#define IDWriteFontSet_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) +#define IDWriteFontSet_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference) +#define IDWriteFontSet_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists) +#define IDWriteFontSet_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists) +#define IDWriteFontSet_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values) +#define IDWriteFontSet_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values) +#define IDWriteFontSet_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values) +#define IDWriteFontSet_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count) +#define IDWriteFontSet_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset) +#define IDWriteFontSet_GetMatchingFonts(This,props,count,fontset) (This)->lpVtbl->GetMatchingFonts(This,props,count,fontset) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontSet_QueryInterface(IDWriteFontSet* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontSet_AddRef(IDWriteFontSet* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontSet_Release(IDWriteFontSet* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontSet methods ***/ +static inline UINT32 IDWriteFontSet_GetFontCount(IDWriteFontSet* This) { + return This->lpVtbl->GetFontCount(This); +} +static inline HRESULT IDWriteFontSet_GetFontFaceReference(IDWriteFontSet* This,UINT32 index,IDWriteFontFaceReference **reference) { + return This->lpVtbl->GetFontFaceReference(This,index,reference); +} +static inline HRESULT IDWriteFontSet_FindFontFaceReference(IDWriteFontSet* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFontFaceReference(This,reference,index,exists); +} +static inline HRESULT IDWriteFontSet_FindFontFace(IDWriteFontSet* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFontFace(This,fontface,index,exists); +} +static inline HRESULT IDWriteFontSet_GetPropertyValues__(IDWriteFontSet* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) { + return This->lpVtbl->GetPropertyValues__(This,id,values); +} +static inline HRESULT IDWriteFontSet_GetPropertyValues_(IDWriteFontSet* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) { + return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values); +} +static inline HRESULT IDWriteFontSet_GetPropertyValues(IDWriteFontSet* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) { + return This->lpVtbl->GetPropertyValues(This,index,id,exists,values); +} +static inline HRESULT IDWriteFontSet_GetPropertyOccurrenceCount(IDWriteFontSet* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) { + return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count); +} +static inline HRESULT IDWriteFontSet_GetMatchingFonts_(IDWriteFontSet* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) { + return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset); +} +static inline HRESULT IDWriteFontSet_GetMatchingFonts(IDWriteFontSet* This,const DWRITE_FONT_PROPERTY *props,UINT32 count,IDWriteFontSet **fontset) { + return This->lpVtbl->GetMatchingFonts(This,props,count,fontset); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontSet_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontResource interface + */ +#ifndef __IDWriteFontResource_INTERFACE_DEFINED__ +#define __IDWriteFontResource_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontResource, 0x1f803a76, 0x6871, 0x48e8, 0x98,0x7f, 0xb9,0x75,0x55,0x1c,0x50,0xf2); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("1f803a76-6871-48e8-987f-b975551c50f2") +IDWriteFontResource : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetFontFile( + IDWriteFontFile **fontfile) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetFontFaceIndex( + ) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetFontAxisCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDefaultFontAxisValues( + DWRITE_FONT_AXIS_VALUE *values, + UINT32 num_values) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges( + DWRITE_FONT_AXIS_RANGE *ranges, + UINT32 num_ranges) = 0; + + virtual DWRITE_FONT_AXIS_ATTRIBUTES STDMETHODCALLTYPE GetFontAxisAttributes( + UINT32 axis) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAxisNames( + UINT32 axis, + IDWriteLocalizedStrings **names) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetAxisValueNameCount( + UINT32 axis) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAxisValueNames( + UINT32 axis, + UINT32 axis_value, + DWRITE_FONT_AXIS_RANGE *axis_range, + IDWriteLocalizedStrings **names) = 0; + + virtual WINBOOL STDMETHODCALLTYPE HasVariations( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFace( + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontFace5 **fontface) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference( + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontFaceReference1 **reference) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontResource, 0x1f803a76, 0x6871, 0x48e8, 0x98,0x7f, 0xb9,0x75,0x55,0x1c,0x50,0xf2) +#endif +#else +typedef struct IDWriteFontResourceVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontResource *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontResource *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontResource *This); + + /*** IDWriteFontResource methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontFile)( + IDWriteFontResource *This, + IDWriteFontFile **fontfile); + + UINT32 (STDMETHODCALLTYPE *GetFontFaceIndex)( + IDWriteFontResource *This); + + UINT32 (STDMETHODCALLTYPE *GetFontAxisCount)( + IDWriteFontResource *This); + + HRESULT (STDMETHODCALLTYPE *GetDefaultFontAxisValues)( + IDWriteFontResource *This, + DWRITE_FONT_AXIS_VALUE *values, + UINT32 num_values); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)( + IDWriteFontResource *This, + DWRITE_FONT_AXIS_RANGE *ranges, + UINT32 num_ranges); + + DWRITE_FONT_AXIS_ATTRIBUTES (STDMETHODCALLTYPE *GetFontAxisAttributes)( + IDWriteFontResource *This, + UINT32 axis); + + HRESULT (STDMETHODCALLTYPE *GetAxisNames)( + IDWriteFontResource *This, + UINT32 axis, + IDWriteLocalizedStrings **names); + + UINT32 (STDMETHODCALLTYPE *GetAxisValueNameCount)( + IDWriteFontResource *This, + UINT32 axis); + + HRESULT (STDMETHODCALLTYPE *GetAxisValueNames)( + IDWriteFontResource *This, + UINT32 axis, + UINT32 axis_value, + DWRITE_FONT_AXIS_RANGE *axis_range, + IDWriteLocalizedStrings **names); + + WINBOOL (STDMETHODCALLTYPE *HasVariations)( + IDWriteFontResource *This); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFontResource *This, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontFace5 **fontface); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)( + IDWriteFontResource *This, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontFaceReference1 **reference); + + END_INTERFACE +} IDWriteFontResourceVtbl; + +interface IDWriteFontResource { + CONST_VTBL IDWriteFontResourceVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontResource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontResource_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontResource_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontResource methods ***/ +#define IDWriteFontResource_GetFontFile(This,fontfile) (This)->lpVtbl->GetFontFile(This,fontfile) +#define IDWriteFontResource_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This) +#define IDWriteFontResource_GetFontAxisCount(This) (This)->lpVtbl->GetFontAxisCount(This) +#define IDWriteFontResource_GetDefaultFontAxisValues(This,values,num_values) (This)->lpVtbl->GetDefaultFontAxisValues(This,values,num_values) +#define IDWriteFontResource_GetFontAxisRanges(This,ranges,num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,ranges,num_ranges) +#define IDWriteFontResource_GetFontAxisAttributes(This,axis) (This)->lpVtbl->GetFontAxisAttributes(This,axis) +#define IDWriteFontResource_GetAxisNames(This,axis,names) (This)->lpVtbl->GetAxisNames(This,axis,names) +#define IDWriteFontResource_GetAxisValueNameCount(This,axis) (This)->lpVtbl->GetAxisValueNameCount(This,axis) +#define IDWriteFontResource_GetAxisValueNames(This,axis,axis_value,axis_range,names) (This)->lpVtbl->GetAxisValueNames(This,axis,axis_value,axis_range,names) +#define IDWriteFontResource_HasVariations(This) (This)->lpVtbl->HasVariations(This) +#define IDWriteFontResource_CreateFontFace(This,simulations,axis_values,num_values,fontface) (This)->lpVtbl->CreateFontFace(This,simulations,axis_values,num_values,fontface) +#define IDWriteFontResource_CreateFontFaceReference(This,simulations,axis_values,num_values,reference) (This)->lpVtbl->CreateFontFaceReference(This,simulations,axis_values,num_values,reference) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontResource_QueryInterface(IDWriteFontResource* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontResource_AddRef(IDWriteFontResource* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontResource_Release(IDWriteFontResource* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontResource methods ***/ +static inline HRESULT IDWriteFontResource_GetFontFile(IDWriteFontResource* This,IDWriteFontFile **fontfile) { + return This->lpVtbl->GetFontFile(This,fontfile); +} +static inline UINT32 IDWriteFontResource_GetFontFaceIndex(IDWriteFontResource* This) { + return This->lpVtbl->GetFontFaceIndex(This); +} +static inline UINT32 IDWriteFontResource_GetFontAxisCount(IDWriteFontResource* This) { + return This->lpVtbl->GetFontAxisCount(This); +} +static inline HRESULT IDWriteFontResource_GetDefaultFontAxisValues(IDWriteFontResource* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 num_values) { + return This->lpVtbl->GetDefaultFontAxisValues(This,values,num_values); +} +static inline HRESULT IDWriteFontResource_GetFontAxisRanges(IDWriteFontResource* This,DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges) { + return This->lpVtbl->GetFontAxisRanges(This,ranges,num_ranges); +} +static inline DWRITE_FONT_AXIS_ATTRIBUTES IDWriteFontResource_GetFontAxisAttributes(IDWriteFontResource* This,UINT32 axis) { + return This->lpVtbl->GetFontAxisAttributes(This,axis); +} +static inline HRESULT IDWriteFontResource_GetAxisNames(IDWriteFontResource* This,UINT32 axis,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetAxisNames(This,axis,names); +} +static inline UINT32 IDWriteFontResource_GetAxisValueNameCount(IDWriteFontResource* This,UINT32 axis) { + return This->lpVtbl->GetAxisValueNameCount(This,axis); +} +static inline HRESULT IDWriteFontResource_GetAxisValueNames(IDWriteFontResource* This,UINT32 axis,UINT32 axis_value,DWRITE_FONT_AXIS_RANGE *axis_range,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetAxisValueNames(This,axis,axis_value,axis_range,names); +} +static inline WINBOOL IDWriteFontResource_HasVariations(IDWriteFontResource* This) { + return This->lpVtbl->HasVariations(This); +} +static inline HRESULT IDWriteFontResource_CreateFontFace(IDWriteFontResource* This,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontFace5 **fontface) { + return This->lpVtbl->CreateFontFace(This,simulations,axis_values,num_values,fontface); +} +static inline HRESULT IDWriteFontResource_CreateFontFaceReference(IDWriteFontResource* This,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontFaceReference1 **reference) { + return This->lpVtbl->CreateFontFaceReference(This,simulations,axis_values,num_values,reference); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontResource_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontSet1 interface + */ +#ifndef __IDWriteFontSet1_INTERFACE_DEFINED__ +#define __IDWriteFontSet1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontSet1, 0x7e9fda85, 0x6c92, 0x4053, 0xbc,0x47, 0x7a,0xe3,0x53,0x0d,0xb4,0xd3); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("7e9fda85-6c92-4053-bc47-7ae3530db4d3") +IDWriteFontSet1 : public IDWriteFontSet +{ + virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( + const DWRITE_FONT_PROPERTY *property, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontSet1 **fontset) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFirstFontResources( + IDWriteFontSet1 **fontset) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts__( + const UINT32 *indices, + UINT32 num_indices, + IDWriteFontSet1 **fontset) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts_( + const DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + IDWriteFontSet1 **fontset) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts( + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties, + WINBOOL select_any_property, + IDWriteFontSet1 **fontset) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFilteredFontIndices_( + const DWRITE_FONT_AXIS_RANGE *ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + UINT32 *indices, + UINT32 num_indices, + UINT32 *actual_num_indices) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFilteredFontIndices( + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties, + WINBOOL select_any_range, + UINT32 *indices, + UINT32 num_indices, + UINT32 *actual_num_indices) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges_( + UINT32 font_index, + DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + UINT32 *actual_num_ranges) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges( + DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + UINT32 *actual_num_ranges) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( + UINT32 index, + IDWriteFontFaceReference1 **reference) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontResource( + UINT32 index, + IDWriteFontResource **resource) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFace( + UINT32 index, + IDWriteFontFace5 **fontface) = 0; + + virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality( + UINT32 index) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontSet1, 0x7e9fda85, 0x6c92, 0x4053, 0xbc,0x47, 0x7a,0xe3,0x53,0x0d,0xb4,0xd3) +#endif +#else +typedef struct IDWriteFontSet1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontSet1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontSet1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontSet1 *This); + + /*** IDWriteFontSet methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontCount)( + IDWriteFontSet1 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontSet1 *This, + UINT32 index, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)( + IDWriteFontSet1 *This, + IDWriteFontFaceReference *reference, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *FindFontFace)( + IDWriteFontSet1 *This, + IDWriteFontFace *fontface, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)( + IDWriteFontSet1 *This, + DWRITE_FONT_PROPERTY_ID id, + IDWriteStringList **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)( + IDWriteFontSet1 *This, + DWRITE_FONT_PROPERTY_ID id, + const WCHAR *preferred_locales, + IDWriteStringList **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues)( + IDWriteFontSet1 *This, + UINT32 index, + DWRITE_FONT_PROPERTY_ID id, + WINBOOL *exists, + IDWriteLocalizedStrings **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)( + IDWriteFontSet1 *This, + const DWRITE_FONT_PROPERTY *property, + UINT32 *count); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)( + IDWriteFontSet1 *This, + const WCHAR *family, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( + IDWriteFontSet1 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 count, + IDWriteFontSet **fontset); + + /*** IDWriteFontSet1 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)( + IDWriteFontSet1 *This, + const DWRITE_FONT_PROPERTY *property, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)( + IDWriteFontSet1 *This, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)( + IDWriteFontSet1 *This, + const UINT32 *indices, + UINT32 num_indices, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)( + IDWriteFontSet1 *This, + const DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)( + IDWriteFontSet1 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties, + WINBOOL select_any_property, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)( + IDWriteFontSet1 *This, + const DWRITE_FONT_AXIS_RANGE *ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + UINT32 *indices, + UINT32 num_indices, + UINT32 *actual_num_indices); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)( + IDWriteFontSet1 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties, + WINBOOL select_any_range, + UINT32 *indices, + UINT32 num_indices, + UINT32 *actual_num_indices); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)( + IDWriteFontSet1 *This, + UINT32 font_index, + DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + UINT32 *actual_num_ranges); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)( + IDWriteFontSet1 *This, + DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + UINT32 *actual_num_ranges); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)( + IDWriteFontSet1 *This, + UINT32 index, + IDWriteFontFaceReference1 **reference); + + HRESULT (STDMETHODCALLTYPE *CreateFontResource)( + IDWriteFontSet1 *This, + UINT32 index, + IDWriteFontResource **resource); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFontSet1 *This, + UINT32 index, + IDWriteFontFace5 **fontface); + + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( + IDWriteFontSet1 *This, + UINT32 index); + + END_INTERFACE +} IDWriteFontSet1Vtbl; + +interface IDWriteFontSet1 { + CONST_VTBL IDWriteFontSet1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontSet1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSet1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontSet1_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontSet methods ***/ +#define IDWriteFontSet1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) +#define IDWriteFontSet1_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists) +#define IDWriteFontSet1_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists) +#define IDWriteFontSet1_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values) +#define IDWriteFontSet1_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values) +#define IDWriteFontSet1_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values) +#define IDWriteFontSet1_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count) +#define IDWriteFontSet1_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset) +/*** IDWriteFontSet1 methods ***/ +#define IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset) +#define IDWriteFontSet1_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset) +#define IDWriteFontSet1_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset) +#define IDWriteFontSet1_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) +#define IDWriteFontSet1_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset) +#define IDWriteFontSet1_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) +#define IDWriteFontSet1_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) +#define IDWriteFontSet1_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) +#define IDWriteFontSet1_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) +#define IDWriteFontSet1_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference) +#define IDWriteFontSet1_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource) +#define IDWriteFontSet1_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface) +#define IDWriteFontSet1_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontSet1_QueryInterface(IDWriteFontSet1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontSet1_AddRef(IDWriteFontSet1* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontSet1_Release(IDWriteFontSet1* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontSet methods ***/ +static inline UINT32 IDWriteFontSet1_GetFontCount(IDWriteFontSet1* This) { + return This->lpVtbl->GetFontCount(This); +} +static inline HRESULT IDWriteFontSet1_FindFontFaceReference(IDWriteFontSet1* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFontFaceReference(This,reference,index,exists); +} +static inline HRESULT IDWriteFontSet1_FindFontFace(IDWriteFontSet1* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFontFace(This,fontface,index,exists); +} +static inline HRESULT IDWriteFontSet1_GetPropertyValues__(IDWriteFontSet1* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) { + return This->lpVtbl->GetPropertyValues__(This,id,values); +} +static inline HRESULT IDWriteFontSet1_GetPropertyValues_(IDWriteFontSet1* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) { + return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values); +} +static inline HRESULT IDWriteFontSet1_GetPropertyValues(IDWriteFontSet1* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) { + return This->lpVtbl->GetPropertyValues(This,index,id,exists,values); +} +static inline HRESULT IDWriteFontSet1_GetPropertyOccurrenceCount(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) { + return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count); +} +static inline HRESULT IDWriteFontSet1_GetMatchingFonts_(IDWriteFontSet1* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) { + return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset); +} +/*** IDWriteFontSet1 methods ***/ +static inline HRESULT IDWriteFontSet1_GetMatchingFonts(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *property,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontSet1 **fontset) { + return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset); +} +static inline HRESULT IDWriteFontSet1_GetFirstFontResources(IDWriteFontSet1* This,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFirstFontResources(This,fontset); +} +static inline HRESULT IDWriteFontSet1_GetFilteredFonts__(IDWriteFontSet1* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset); +} +static inline HRESULT IDWriteFontSet1_GetFilteredFonts_(IDWriteFontSet1* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset); +} +static inline HRESULT IDWriteFontSet1_GetFilteredFonts(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset); +} +static inline HRESULT IDWriteFontSet1_GetFilteredFontIndices_(IDWriteFontSet1* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices); +} +static inline HRESULT IDWriteFontSet1_GetFilteredFontIndices(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices); +} +static inline HRESULT IDWriteFontSet1_GetFontAxisRanges_(IDWriteFontSet1* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges); +} +static inline HRESULT IDWriteFontSet1_GetFontAxisRanges(IDWriteFontSet1* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges); +} +static inline HRESULT IDWriteFontSet1_GetFontFaceReference(IDWriteFontSet1* This,UINT32 index,IDWriteFontFaceReference1 **reference) { + return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference); +} +static inline HRESULT IDWriteFontSet1_CreateFontResource(IDWriteFontSet1* This,UINT32 index,IDWriteFontResource **resource) { + return This->lpVtbl->CreateFontResource(This,index,resource); +} +static inline HRESULT IDWriteFontSet1_CreateFontFace(IDWriteFontSet1* This,UINT32 index,IDWriteFontFace5 **fontface) { + return This->lpVtbl->CreateFontFace(This,index,fontface); +} +static inline DWRITE_LOCALITY IDWriteFontSet1_GetFontLocality(IDWriteFontSet1* This,UINT32 index) { + return This->lpVtbl->GetFontLocality(This,index); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontSet1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFont3 interface + */ +#ifndef __IDWriteFont3_INTERFACE_DEFINED__ +#define __IDWriteFont3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFont3, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("29748ed6-8c9c-4a6a-be0b-d912e8538944") +IDWriteFont3 : public IDWriteFont2 +{ + virtual HRESULT STDMETHODCALLTYPE CreateFontFace( + IDWriteFontFace3 **fontface) = 0; + + virtual WINBOOL STDMETHODCALLTYPE Equals( + IDWriteFont *font) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( + IDWriteFontFaceReference **reference) = 0; + + virtual WINBOOL STDMETHODCALLTYPE HasCharacter( + UINT32 character) = 0; + + virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFont3, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44) +#endif +#else +typedef struct IDWriteFont3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFont3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFont3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFont3 *This); + + /*** IDWriteFont methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontFamily)( + IDWriteFont3 *This, + IDWriteFontFamily **family); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( + IDWriteFont3 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( + IDWriteFont3 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( + IDWriteFont3 *This); + + WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( + IDWriteFont3 *This); + + HRESULT (STDMETHODCALLTYPE *GetFaceNames)( + IDWriteFont3 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( + IDWriteFont3 *This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings **strings, + WINBOOL *exists); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFont3 *This); + + void (STDMETHODCALLTYPE *GetMetrics)( + IDWriteFont3 *This, + DWRITE_FONT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *HasCharacter)( + IDWriteFont3 *This, + UINT32 value, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFont3 *This, + IDWriteFontFace **face); + + /*** IDWriteFont1 methods ***/ + void (STDMETHODCALLTYPE *IDWriteFont1_GetMetrics)( + IDWriteFont3 *This, + DWRITE_FONT_METRICS1 *metrics); + + void (STDMETHODCALLTYPE *GetPanose)( + IDWriteFont3 *This, + DWRITE_PANOSE *panose); + + HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( + IDWriteFont3 *This, + UINT32 max_count, + DWRITE_UNICODE_RANGE *ranges, + UINT32 *count); + + WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( + IDWriteFont3 *This); + + /*** IDWriteFont2 methods ***/ + WINBOOL (STDMETHODCALLTYPE *IsColorFont)( + IDWriteFont3 *This); + + /*** IDWriteFont3 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFont3_CreateFontFace)( + IDWriteFont3 *This, + IDWriteFontFace3 **fontface); + + WINBOOL (STDMETHODCALLTYPE *Equals)( + IDWriteFont3 *This, + IDWriteFont *font); + + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFont3 *This, + IDWriteFontFaceReference **reference); + + WINBOOL (STDMETHODCALLTYPE *IDWriteFont3_HasCharacter)( + IDWriteFont3 *This, + UINT32 character); + + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)( + IDWriteFont3 *This); + + END_INTERFACE +} IDWriteFont3Vtbl; + +interface IDWriteFont3 { + CONST_VTBL IDWriteFont3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFont3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFont3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFont3_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFont methods ***/ +#define IDWriteFont3_GetFontFamily(This,family) (This)->lpVtbl->GetFontFamily(This,family) +#define IDWriteFont3_GetWeight(This) (This)->lpVtbl->GetWeight(This) +#define IDWriteFont3_GetStretch(This) (This)->lpVtbl->GetStretch(This) +#define IDWriteFont3_GetStyle(This) (This)->lpVtbl->GetStyle(This) +#define IDWriteFont3_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) +#define IDWriteFont3_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names) +#define IDWriteFont3_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) +#define IDWriteFont3_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +/*** IDWriteFont1 methods ***/ +#define IDWriteFont3_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFont1_GetMetrics(This,metrics) +#define IDWriteFont3_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) +#define IDWriteFont3_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFont3_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) +/*** IDWriteFont2 methods ***/ +#define IDWriteFont3_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) +/*** IDWriteFont3 methods ***/ +#define IDWriteFont3_CreateFontFace(This,fontface) (This)->lpVtbl->IDWriteFont3_CreateFontFace(This,fontface) +#define IDWriteFont3_Equals(This,font) (This)->lpVtbl->Equals(This,font) +#define IDWriteFont3_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference) +#define IDWriteFont3_HasCharacter(This,character) (This)->lpVtbl->IDWriteFont3_HasCharacter(This,character) +#define IDWriteFont3_GetLocality(This) (This)->lpVtbl->GetLocality(This) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFont3_QueryInterface(IDWriteFont3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFont3_AddRef(IDWriteFont3* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFont3_Release(IDWriteFont3* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFont methods ***/ +static inline HRESULT IDWriteFont3_GetFontFamily(IDWriteFont3* This,IDWriteFontFamily **family) { + return This->lpVtbl->GetFontFamily(This,family); +} +static inline DWRITE_FONT_WEIGHT IDWriteFont3_GetWeight(IDWriteFont3* This) { + return This->lpVtbl->GetWeight(This); +} +static inline DWRITE_FONT_STRETCH IDWriteFont3_GetStretch(IDWriteFont3* This) { + return This->lpVtbl->GetStretch(This); +} +static inline DWRITE_FONT_STYLE IDWriteFont3_GetStyle(IDWriteFont3* This) { + return This->lpVtbl->GetStyle(This); +} +static inline WINBOOL IDWriteFont3_IsSymbolFont(IDWriteFont3* This) { + return This->lpVtbl->IsSymbolFont(This); +} +static inline HRESULT IDWriteFont3_GetFaceNames(IDWriteFont3* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFaceNames(This,names); +} +static inline HRESULT IDWriteFont3_GetInformationalStrings(IDWriteFont3* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { + return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFont3_GetSimulations(IDWriteFont3* This) { + return This->lpVtbl->GetSimulations(This); +} +/*** IDWriteFont1 methods ***/ +static inline void IDWriteFont3_GetMetrics(IDWriteFont3* This,DWRITE_FONT_METRICS1 *metrics) { + This->lpVtbl->IDWriteFont1_GetMetrics(This,metrics); +} +static inline void IDWriteFont3_GetPanose(IDWriteFont3* This,DWRITE_PANOSE *panose) { + This->lpVtbl->GetPanose(This,panose); +} +static inline HRESULT IDWriteFont3_GetUnicodeRanges(IDWriteFont3* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { + return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +} +static inline WINBOOL IDWriteFont3_IsMonospacedFont(IDWriteFont3* This) { + return This->lpVtbl->IsMonospacedFont(This); +} +/*** IDWriteFont2 methods ***/ +static inline WINBOOL IDWriteFont3_IsColorFont(IDWriteFont3* This) { + return This->lpVtbl->IsColorFont(This); +} +/*** IDWriteFont3 methods ***/ +static inline HRESULT IDWriteFont3_CreateFontFace(IDWriteFont3* This,IDWriteFontFace3 **fontface) { + return This->lpVtbl->IDWriteFont3_CreateFontFace(This,fontface); +} +static inline WINBOOL IDWriteFont3_Equals(IDWriteFont3* This,IDWriteFont *font) { + return This->lpVtbl->Equals(This,font); +} +static inline HRESULT IDWriteFont3_GetFontFaceReference(IDWriteFont3* This,IDWriteFontFaceReference **reference) { + return This->lpVtbl->GetFontFaceReference(This,reference); +} +static inline WINBOOL IDWriteFont3_HasCharacter(IDWriteFont3* This,UINT32 character) { + return This->lpVtbl->IDWriteFont3_HasCharacter(This,character); +} +static inline DWRITE_LOCALITY IDWriteFont3_GetLocality(IDWriteFont3* This) { + return This->lpVtbl->GetLocality(This); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFont3_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFamily1 interface + */ +#ifndef __IDWriteFontFamily1_INTERFACE_DEFINED__ +#define __IDWriteFontFamily1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFamily1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xdf); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7adf") +IDWriteFontFamily1 : public IDWriteFontFamily +{ + virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality( + UINT32 index) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFont( + UINT32 index, + IDWriteFont3 **font) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( + UINT32 index, + IDWriteFontFaceReference **reference) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFamily1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xdf) +#endif +#else +typedef struct IDWriteFontFamily1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFamily1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFamily1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFamily1 *This); + + /*** IDWriteFontList methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteFontFamily1 *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontCount)( + IDWriteFontFamily1 *This); + + HRESULT (STDMETHODCALLTYPE *GetFont)( + IDWriteFontFamily1 *This, + UINT32 index, + IDWriteFont **font); + + /*** IDWriteFontFamily methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( + IDWriteFontFamily1 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetFirstMatchingFont)( + IDWriteFontFamily1 *This, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFont **font); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( + IDWriteFontFamily1 *This, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontList **fonts); + + /*** IDWriteFontFamily1 methods ***/ + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( + IDWriteFontFamily1 *This, + UINT32 index); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFamily1_GetFont)( + IDWriteFontFamily1 *This, + UINT32 index, + IDWriteFont3 **font); + + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontFamily1 *This, + UINT32 index, + IDWriteFontFaceReference **reference); + + END_INTERFACE +} IDWriteFontFamily1Vtbl; + +interface IDWriteFontFamily1 { + CONST_VTBL IDWriteFontFamily1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFamily1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFamily1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFamily1_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontList methods ***/ +#define IDWriteFontFamily1_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteFontFamily1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) +/*** IDWriteFontFamily methods ***/ +#define IDWriteFontFamily1_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names) +#define IDWriteFontFamily1_GetFirstMatchingFont(This,weight,stretch,style,font) (This)->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font) +#define IDWriteFontFamily1_GetMatchingFonts(This,weight,stretch,style,fonts) (This)->lpVtbl->GetMatchingFonts(This,weight,stretch,style,fonts) +/*** IDWriteFontFamily1 methods ***/ +#define IDWriteFontFamily1_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) +#define IDWriteFontFamily1_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font) +#define IDWriteFontFamily1_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFamily1_QueryInterface(IDWriteFontFamily1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFamily1_AddRef(IDWriteFontFamily1* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFamily1_Release(IDWriteFontFamily1* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontList methods ***/ +static inline HRESULT IDWriteFontFamily1_GetFontCollection(IDWriteFontFamily1* This,IDWriteFontCollection **collection) { + return This->lpVtbl->GetFontCollection(This,collection); +} +static inline UINT32 IDWriteFontFamily1_GetFontCount(IDWriteFontFamily1* This) { + return This->lpVtbl->GetFontCount(This); +} +/*** IDWriteFontFamily methods ***/ +static inline HRESULT IDWriteFontFamily1_GetFamilyNames(IDWriteFontFamily1* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFamilyNames(This,names); +} +static inline HRESULT IDWriteFontFamily1_GetFirstMatchingFont(IDWriteFontFamily1* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFont **font) { + return This->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font); +} +static inline HRESULT IDWriteFontFamily1_GetMatchingFonts(IDWriteFontFamily1* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontList **fonts) { + return This->lpVtbl->GetMatchingFonts(This,weight,stretch,style,fonts); +} +/*** IDWriteFontFamily1 methods ***/ +static inline DWRITE_LOCALITY IDWriteFontFamily1_GetFontLocality(IDWriteFontFamily1* This,UINT32 index) { + return This->lpVtbl->GetFontLocality(This,index); +} +static inline HRESULT IDWriteFontFamily1_GetFont(IDWriteFontFamily1* This,UINT32 index,IDWriteFont3 **font) { + return This->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font); +} +static inline HRESULT IDWriteFontFamily1_GetFontFaceReference(IDWriteFontFamily1* This,UINT32 index,IDWriteFontFaceReference **reference) { + return This->lpVtbl->GetFontFaceReference(This,index,reference); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFamily1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFamily2 interface + */ +#ifndef __IDWriteFontFamily2_INTERFACE_DEFINED__ +#define __IDWriteFontFamily2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFamily2, 0x3ed49e77, 0xa398, 0x4261, 0xb9,0xcf, 0xc1,0x26,0xc2,0x13,0x1e,0xf3); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("3ed49e77-a398-4261-b9cf-c126c2131ef3") +IDWriteFontFamily2 : public IDWriteFontFamily1 +{ + virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontList2 **fontlist) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontSet( + IDWriteFontSet1 **fontset) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFamily2, 0x3ed49e77, 0xa398, 0x4261, 0xb9,0xcf, 0xc1,0x26,0xc2,0x13,0x1e,0xf3) +#endif +#else +typedef struct IDWriteFontFamily2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFamily2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFamily2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFamily2 *This); + + /*** IDWriteFontList methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteFontFamily2 *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontCount)( + IDWriteFontFamily2 *This); + + HRESULT (STDMETHODCALLTYPE *GetFont)( + IDWriteFontFamily2 *This, + UINT32 index, + IDWriteFont **font); + + /*** IDWriteFontFamily methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( + IDWriteFontFamily2 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetFirstMatchingFont)( + IDWriteFontFamily2 *This, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFont **font); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( + IDWriteFontFamily2 *This, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontList **fonts); + + /*** IDWriteFontFamily1 methods ***/ + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( + IDWriteFontFamily2 *This, + UINT32 index); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFamily1_GetFont)( + IDWriteFontFamily2 *This, + UINT32 index, + IDWriteFont3 **font); + + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontFamily2 *This, + UINT32 index, + IDWriteFontFaceReference **reference); + + /*** IDWriteFontFamily2 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFontFamily2_GetMatchingFonts)( + IDWriteFontFamily2 *This, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontList2 **fontlist); + + HRESULT (STDMETHODCALLTYPE *GetFontSet)( + IDWriteFontFamily2 *This, + IDWriteFontSet1 **fontset); + + END_INTERFACE +} IDWriteFontFamily2Vtbl; + +interface IDWriteFontFamily2 { + CONST_VTBL IDWriteFontFamily2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFamily2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFamily2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFamily2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontList methods ***/ +#define IDWriteFontFamily2_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteFontFamily2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) +/*** IDWriteFontFamily methods ***/ +#define IDWriteFontFamily2_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names) +#define IDWriteFontFamily2_GetFirstMatchingFont(This,weight,stretch,style,font) (This)->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font) +/*** IDWriteFontFamily1 methods ***/ +#define IDWriteFontFamily2_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) +#define IDWriteFontFamily2_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font) +#define IDWriteFontFamily2_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference) +/*** IDWriteFontFamily2 methods ***/ +#define IDWriteFontFamily2_GetMatchingFonts(This,axis_values,num_values,fontlist) (This)->lpVtbl->IDWriteFontFamily2_GetMatchingFonts(This,axis_values,num_values,fontlist) +#define IDWriteFontFamily2_GetFontSet(This,fontset) (This)->lpVtbl->GetFontSet(This,fontset) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFamily2_QueryInterface(IDWriteFontFamily2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFamily2_AddRef(IDWriteFontFamily2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFamily2_Release(IDWriteFontFamily2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontList methods ***/ +static inline HRESULT IDWriteFontFamily2_GetFontCollection(IDWriteFontFamily2* This,IDWriteFontCollection **collection) { + return This->lpVtbl->GetFontCollection(This,collection); +} +static inline UINT32 IDWriteFontFamily2_GetFontCount(IDWriteFontFamily2* This) { + return This->lpVtbl->GetFontCount(This); +} +/*** IDWriteFontFamily methods ***/ +static inline HRESULT IDWriteFontFamily2_GetFamilyNames(IDWriteFontFamily2* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFamilyNames(This,names); +} +static inline HRESULT IDWriteFontFamily2_GetFirstMatchingFont(IDWriteFontFamily2* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFont **font) { + return This->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font); +} +/*** IDWriteFontFamily1 methods ***/ +static inline DWRITE_LOCALITY IDWriteFontFamily2_GetFontLocality(IDWriteFontFamily2* This,UINT32 index) { + return This->lpVtbl->GetFontLocality(This,index); +} +static inline HRESULT IDWriteFontFamily2_GetFont(IDWriteFontFamily2* This,UINT32 index,IDWriteFont3 **font) { + return This->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font); +} +static inline HRESULT IDWriteFontFamily2_GetFontFaceReference(IDWriteFontFamily2* This,UINT32 index,IDWriteFontFaceReference **reference) { + return This->lpVtbl->GetFontFaceReference(This,index,reference); +} +/*** IDWriteFontFamily2 methods ***/ +static inline HRESULT IDWriteFontFamily2_GetMatchingFonts(IDWriteFontFamily2* This,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontList2 **fontlist) { + return This->lpVtbl->IDWriteFontFamily2_GetMatchingFonts(This,axis_values,num_values,fontlist); +} +static inline HRESULT IDWriteFontFamily2_GetFontSet(IDWriteFontFamily2* This,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFontSet(This,fontset); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFamily2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontCollection1 interface + */ +#ifndef __IDWriteFontCollection1_INTERFACE_DEFINED__ +#define __IDWriteFontCollection1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontCollection1, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6c); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("53585141-d9f8-4095-8321-d73cf6bd116c") +IDWriteFontCollection1 : public IDWriteFontCollection +{ + virtual HRESULT STDMETHODCALLTYPE GetFontSet( + IDWriteFontSet **fontset) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFamily( + UINT32 index, + IDWriteFontFamily1 **family) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontCollection1, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6c) +#endif +#else +typedef struct IDWriteFontCollection1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontCollection1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontCollection1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontCollection1 *This); + + /*** IDWriteFontCollection methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)( + IDWriteFontCollection1 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamily)( + IDWriteFontCollection1 *This, + UINT32 index, + IDWriteFontFamily **family); + + HRESULT (STDMETHODCALLTYPE *FindFamilyName)( + IDWriteFontCollection1 *This, + const WCHAR *name, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)( + IDWriteFontCollection1 *This, + IDWriteFontFace *face, + IDWriteFont **font); + + /*** IDWriteFontCollection1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontSet)( + IDWriteFontCollection1 *This, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection1_GetFontFamily)( + IDWriteFontCollection1 *This, + UINT32 index, + IDWriteFontFamily1 **family); + + END_INTERFACE +} IDWriteFontCollection1Vtbl; + +interface IDWriteFontCollection1 { + CONST_VTBL IDWriteFontCollection1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontCollection1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontCollection1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontCollection1_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontCollection methods ***/ +#define IDWriteFontCollection1_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This) +#define IDWriteFontCollection1_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists) +#define IDWriteFontCollection1_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font) +/*** IDWriteFontCollection1 methods ***/ +#define IDWriteFontCollection1_GetFontSet(This,fontset) (This)->lpVtbl->GetFontSet(This,fontset) +#define IDWriteFontCollection1_GetFontFamily(This,index,family) (This)->lpVtbl->IDWriteFontCollection1_GetFontFamily(This,index,family) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontCollection1_QueryInterface(IDWriteFontCollection1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontCollection1_AddRef(IDWriteFontCollection1* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontCollection1_Release(IDWriteFontCollection1* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontCollection methods ***/ +static inline UINT32 IDWriteFontCollection1_GetFontFamilyCount(IDWriteFontCollection1* This) { + return This->lpVtbl->GetFontFamilyCount(This); +} +static inline HRESULT IDWriteFontCollection1_FindFamilyName(IDWriteFontCollection1* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFamilyName(This,name,index,exists); +} +static inline HRESULT IDWriteFontCollection1_GetFontFromFontFace(IDWriteFontCollection1* This,IDWriteFontFace *face,IDWriteFont **font) { + return This->lpVtbl->GetFontFromFontFace(This,face,font); +} +/*** IDWriteFontCollection1 methods ***/ +static inline HRESULT IDWriteFontCollection1_GetFontSet(IDWriteFontCollection1* This,IDWriteFontSet **fontset) { + return This->lpVtbl->GetFontSet(This,fontset); +} +static inline HRESULT IDWriteFontCollection1_GetFontFamily(IDWriteFontCollection1* This,UINT32 index,IDWriteFontFamily1 **family) { + return This->lpVtbl->IDWriteFontCollection1_GetFontFamily(This,index,family); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontCollection1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontCollection2 interface + */ +#ifndef __IDWriteFontCollection2_INTERFACE_DEFINED__ +#define __IDWriteFontCollection2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontCollection2, 0x514039c6, 0x4617, 0x4064, 0xbf,0x8b, 0x92,0xea,0x83,0xe5,0x06,0xe0); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("514039c6-4617-4064-bf8b-92ea83e506e0") +IDWriteFontCollection2 : public IDWriteFontCollection1 +{ + virtual HRESULT STDMETHODCALLTYPE GetFontFamily( + UINT32 index, + IDWriteFontFamily2 **family) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( + const WCHAR *familyname, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontList2 **fontlist) = 0; + + virtual DWRITE_FONT_FAMILY_MODEL STDMETHODCALLTYPE GetFontFamilyModel( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontSet( + IDWriteFontSet1 **fontset) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontCollection2, 0x514039c6, 0x4617, 0x4064, 0xbf,0x8b, 0x92,0xea,0x83,0xe5,0x06,0xe0) +#endif +#else +typedef struct IDWriteFontCollection2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontCollection2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontCollection2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontCollection2 *This); + + /*** IDWriteFontCollection methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)( + IDWriteFontCollection2 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamily)( + IDWriteFontCollection2 *This, + UINT32 index, + IDWriteFontFamily **family); + + HRESULT (STDMETHODCALLTYPE *FindFamilyName)( + IDWriteFontCollection2 *This, + const WCHAR *name, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)( + IDWriteFontCollection2 *This, + IDWriteFontFace *face, + IDWriteFont **font); + + /*** IDWriteFontCollection1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontSet)( + IDWriteFontCollection2 *This, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection1_GetFontFamily)( + IDWriteFontCollection2 *This, + UINT32 index, + IDWriteFontFamily1 **family); + + /*** IDWriteFontCollection2 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontFamily)( + IDWriteFontCollection2 *This, + UINT32 index, + IDWriteFontFamily2 **family); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( + IDWriteFontCollection2 *This, + const WCHAR *familyname, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontList2 **fontlist); + + DWRITE_FONT_FAMILY_MODEL (STDMETHODCALLTYPE *GetFontFamilyModel)( + IDWriteFontCollection2 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontSet)( + IDWriteFontCollection2 *This, + IDWriteFontSet1 **fontset); + + END_INTERFACE +} IDWriteFontCollection2Vtbl; + +interface IDWriteFontCollection2 { + CONST_VTBL IDWriteFontCollection2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontCollection2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontCollection2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontCollection2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontCollection methods ***/ +#define IDWriteFontCollection2_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This) +#define IDWriteFontCollection2_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists) +#define IDWriteFontCollection2_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font) +/*** IDWriteFontCollection1 methods ***/ +/*** IDWriteFontCollection2 methods ***/ +#define IDWriteFontCollection2_GetFontFamily(This,index,family) (This)->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family) +#define IDWriteFontCollection2_GetMatchingFonts(This,familyname,axis_values,num_values,fontlist) (This)->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist) +#define IDWriteFontCollection2_GetFontFamilyModel(This) (This)->lpVtbl->GetFontFamilyModel(This) +#define IDWriteFontCollection2_GetFontSet(This,fontset) (This)->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontCollection2_QueryInterface(IDWriteFontCollection2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontCollection2_AddRef(IDWriteFontCollection2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontCollection2_Release(IDWriteFontCollection2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontCollection methods ***/ +static inline UINT32 IDWriteFontCollection2_GetFontFamilyCount(IDWriteFontCollection2* This) { + return This->lpVtbl->GetFontFamilyCount(This); +} +static inline HRESULT IDWriteFontCollection2_FindFamilyName(IDWriteFontCollection2* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFamilyName(This,name,index,exists); +} +static inline HRESULT IDWriteFontCollection2_GetFontFromFontFace(IDWriteFontCollection2* This,IDWriteFontFace *face,IDWriteFont **font) { + return This->lpVtbl->GetFontFromFontFace(This,face,font); +} +/*** IDWriteFontCollection1 methods ***/ +/*** IDWriteFontCollection2 methods ***/ +static inline HRESULT IDWriteFontCollection2_GetFontFamily(IDWriteFontCollection2* This,UINT32 index,IDWriteFontFamily2 **family) { + return This->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family); +} +static inline HRESULT IDWriteFontCollection2_GetMatchingFonts(IDWriteFontCollection2* This,const WCHAR *familyname,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontList2 **fontlist) { + return This->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist); +} +static inline DWRITE_FONT_FAMILY_MODEL IDWriteFontCollection2_GetFontFamilyModel(IDWriteFontCollection2* This) { + return This->lpVtbl->GetFontFamilyModel(This); +} +static inline HRESULT IDWriteFontCollection2_GetFontSet(IDWriteFontCollection2* This,IDWriteFontSet1 **fontset) { + return This->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontCollection2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontCollection3 interface + */ +#ifndef __IDWriteFontCollection3_INTERFACE_DEFINED__ +#define __IDWriteFontCollection3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontCollection3, 0xa4d055a6, 0xf9e3, 0x4e25, 0x93,0xb7, 0x9e,0x30,0x9f,0x3a,0xf8,0xe9); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a4d055a6-f9e3-4e25-93b7-9e309f3af8e9") +IDWriteFontCollection3 : public IDWriteFontCollection2 +{ + virtual HANDLE STDMETHODCALLTYPE GetExpirationEvent( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontCollection3, 0xa4d055a6, 0xf9e3, 0x4e25, 0x93,0xb7, 0x9e,0x30,0x9f,0x3a,0xf8,0xe9) +#endif +#else +typedef struct IDWriteFontCollection3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontCollection3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontCollection3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontCollection3 *This); + + /*** IDWriteFontCollection methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)( + IDWriteFontCollection3 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamily)( + IDWriteFontCollection3 *This, + UINT32 index, + IDWriteFontFamily **family); + + HRESULT (STDMETHODCALLTYPE *FindFamilyName)( + IDWriteFontCollection3 *This, + const WCHAR *name, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)( + IDWriteFontCollection3 *This, + IDWriteFontFace *face, + IDWriteFont **font); + + /*** IDWriteFontCollection1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontSet)( + IDWriteFontCollection3 *This, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection1_GetFontFamily)( + IDWriteFontCollection3 *This, + UINT32 index, + IDWriteFontFamily1 **family); + + /*** IDWriteFontCollection2 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontFamily)( + IDWriteFontCollection3 *This, + UINT32 index, + IDWriteFontFamily2 **family); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( + IDWriteFontCollection3 *This, + const WCHAR *familyname, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontList2 **fontlist); + + DWRITE_FONT_FAMILY_MODEL (STDMETHODCALLTYPE *GetFontFamilyModel)( + IDWriteFontCollection3 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontSet)( + IDWriteFontCollection3 *This, + IDWriteFontSet1 **fontset); + + /*** IDWriteFontCollection3 methods ***/ + HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)( + IDWriteFontCollection3 *This); + + END_INTERFACE +} IDWriteFontCollection3Vtbl; + +interface IDWriteFontCollection3 { + CONST_VTBL IDWriteFontCollection3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontCollection3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontCollection3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontCollection3_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontCollection methods ***/ +#define IDWriteFontCollection3_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This) +#define IDWriteFontCollection3_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists) +#define IDWriteFontCollection3_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font) +/*** IDWriteFontCollection1 methods ***/ +/*** IDWriteFontCollection2 methods ***/ +#define IDWriteFontCollection3_GetFontFamily(This,index,family) (This)->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family) +#define IDWriteFontCollection3_GetMatchingFonts(This,familyname,axis_values,num_values,fontlist) (This)->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist) +#define IDWriteFontCollection3_GetFontFamilyModel(This) (This)->lpVtbl->GetFontFamilyModel(This) +#define IDWriteFontCollection3_GetFontSet(This,fontset) (This)->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset) +/*** IDWriteFontCollection3 methods ***/ +#define IDWriteFontCollection3_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontCollection3_QueryInterface(IDWriteFontCollection3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontCollection3_AddRef(IDWriteFontCollection3* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontCollection3_Release(IDWriteFontCollection3* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontCollection methods ***/ +static inline UINT32 IDWriteFontCollection3_GetFontFamilyCount(IDWriteFontCollection3* This) { + return This->lpVtbl->GetFontFamilyCount(This); +} +static inline HRESULT IDWriteFontCollection3_FindFamilyName(IDWriteFontCollection3* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFamilyName(This,name,index,exists); +} +static inline HRESULT IDWriteFontCollection3_GetFontFromFontFace(IDWriteFontCollection3* This,IDWriteFontFace *face,IDWriteFont **font) { + return This->lpVtbl->GetFontFromFontFace(This,face,font); +} +/*** IDWriteFontCollection1 methods ***/ +/*** IDWriteFontCollection2 methods ***/ +static inline HRESULT IDWriteFontCollection3_GetFontFamily(IDWriteFontCollection3* This,UINT32 index,IDWriteFontFamily2 **family) { + return This->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family); +} +static inline HRESULT IDWriteFontCollection3_GetMatchingFonts(IDWriteFontCollection3* This,const WCHAR *familyname,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontList2 **fontlist) { + return This->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist); +} +static inline DWRITE_FONT_FAMILY_MODEL IDWriteFontCollection3_GetFontFamilyModel(IDWriteFontCollection3* This) { + return This->lpVtbl->GetFontFamilyModel(This); +} +static inline HRESULT IDWriteFontCollection3_GetFontSet(IDWriteFontCollection3* This,IDWriteFontSet1 **fontset) { + return This->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset); +} +/*** IDWriteFontCollection3 methods ***/ +static inline HANDLE IDWriteFontCollection3_GetExpirationEvent(IDWriteFontCollection3* This) { + return This->lpVtbl->GetExpirationEvent(This); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontCollection3_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFaceReference interface + */ +#ifndef __IDWriteFontFaceReference_INTERFACE_DEFINED__ +#define __IDWriteFontFaceReference_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFaceReference, 0x5e7fa7ca, 0xdde3, 0x424c, 0x89,0xf0, 0x9f,0xcd,0x6f,0xed,0x58,0xcd); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("5e7fa7ca-dde3-424c-89f0-9fcd6fed58cd") +IDWriteFontFaceReference : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE CreateFontFace( + IDWriteFontFace3 **fontface) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFaceWithSimulations( + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFace3 **fontface) = 0; + + virtual WINBOOL STDMETHODCALLTYPE Equals( + IDWriteFontFaceReference *reference) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetFontFaceIndex( + ) = 0; + + virtual DWRITE_FONT_SIMULATIONS STDMETHODCALLTYPE GetSimulations( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFile( + IDWriteFontFile **fontfile) = 0; + + virtual UINT64 STDMETHODCALLTYPE GetLocalFileSize( + ) = 0; + + virtual UINT64 STDMETHODCALLTYPE GetFileSize( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFileTime( + FILETIME *writetime) = 0; + + virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnqueueFontDownloadRequest( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnqueueCharacterDownloadRequest( + const WCHAR *chars, + UINT32 count) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnqueueGlyphDownloadRequest( + const UINT16 *glyphs, + UINT32 count) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnqueueFileFragmentDownloadRequest( + UINT64 offset, + UINT64 size) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFaceReference, 0x5e7fa7ca, 0xdde3, 0x424c, 0x89,0xf0, 0x9f,0xcd,0x6f,0xed,0x58,0xcd) +#endif +#else +typedef struct IDWriteFontFaceReferenceVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFaceReference *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFaceReference *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFaceReference *This); + + /*** IDWriteFontFaceReference methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFontFaceReference *This, + IDWriteFontFace3 **fontface); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceWithSimulations)( + IDWriteFontFaceReference *This, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFace3 **fontface); + + WINBOOL (STDMETHODCALLTYPE *Equals)( + IDWriteFontFaceReference *This, + IDWriteFontFaceReference *reference); + + UINT32 (STDMETHODCALLTYPE *GetFontFaceIndex)( + IDWriteFontFaceReference *This); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFontFaceReference *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFile)( + IDWriteFontFaceReference *This, + IDWriteFontFile **fontfile); + + UINT64 (STDMETHODCALLTYPE *GetLocalFileSize)( + IDWriteFontFaceReference *This); + + UINT64 (STDMETHODCALLTYPE *GetFileSize)( + IDWriteFontFaceReference *This); + + HRESULT (STDMETHODCALLTYPE *GetFileTime)( + IDWriteFontFaceReference *This, + FILETIME *writetime); + + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)( + IDWriteFontFaceReference *This); + + HRESULT (STDMETHODCALLTYPE *EnqueueFontDownloadRequest)( + IDWriteFontFaceReference *This); + + HRESULT (STDMETHODCALLTYPE *EnqueueCharacterDownloadRequest)( + IDWriteFontFaceReference *This, + const WCHAR *chars, + UINT32 count); + + HRESULT (STDMETHODCALLTYPE *EnqueueGlyphDownloadRequest)( + IDWriteFontFaceReference *This, + const UINT16 *glyphs, + UINT32 count); + + HRESULT (STDMETHODCALLTYPE *EnqueueFileFragmentDownloadRequest)( + IDWriteFontFaceReference *This, + UINT64 offset, + UINT64 size); + + END_INTERFACE +} IDWriteFontFaceReferenceVtbl; + +interface IDWriteFontFaceReference { + CONST_VTBL IDWriteFontFaceReferenceVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFaceReference_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFaceReference_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFaceReference_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFaceReference methods ***/ +#define IDWriteFontFaceReference_CreateFontFace(This,fontface) (This)->lpVtbl->CreateFontFace(This,fontface) +#define IDWriteFontFaceReference_CreateFontFaceWithSimulations(This,simulations,fontface) (This)->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface) +#define IDWriteFontFaceReference_Equals(This,reference) (This)->lpVtbl->Equals(This,reference) +#define IDWriteFontFaceReference_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This) +#define IDWriteFontFaceReference_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +#define IDWriteFontFaceReference_GetFontFile(This,fontfile) (This)->lpVtbl->GetFontFile(This,fontfile) +#define IDWriteFontFaceReference_GetLocalFileSize(This) (This)->lpVtbl->GetLocalFileSize(This) +#define IDWriteFontFaceReference_GetFileSize(This) (This)->lpVtbl->GetFileSize(This) +#define IDWriteFontFaceReference_GetFileTime(This,writetime) (This)->lpVtbl->GetFileTime(This,writetime) +#define IDWriteFontFaceReference_GetLocality(This) (This)->lpVtbl->GetLocality(This) +#define IDWriteFontFaceReference_EnqueueFontDownloadRequest(This) (This)->lpVtbl->EnqueueFontDownloadRequest(This) +#define IDWriteFontFaceReference_EnqueueCharacterDownloadRequest(This,chars,count) (This)->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count) +#define IDWriteFontFaceReference_EnqueueGlyphDownloadRequest(This,glyphs,count) (This)->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count) +#define IDWriteFontFaceReference_EnqueueFileFragmentDownloadRequest(This,offset,size) (This)->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFaceReference_QueryInterface(IDWriteFontFaceReference* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFaceReference_AddRef(IDWriteFontFaceReference* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFaceReference_Release(IDWriteFontFaceReference* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFaceReference methods ***/ +static inline HRESULT IDWriteFontFaceReference_CreateFontFace(IDWriteFontFaceReference* This,IDWriteFontFace3 **fontface) { + return This->lpVtbl->CreateFontFace(This,fontface); +} +static inline HRESULT IDWriteFontFaceReference_CreateFontFaceWithSimulations(IDWriteFontFaceReference* This,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFace3 **fontface) { + return This->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface); +} +static inline WINBOOL IDWriteFontFaceReference_Equals(IDWriteFontFaceReference* This,IDWriteFontFaceReference *reference) { + return This->lpVtbl->Equals(This,reference); +} +static inline UINT32 IDWriteFontFaceReference_GetFontFaceIndex(IDWriteFontFaceReference* This) { + return This->lpVtbl->GetFontFaceIndex(This); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFontFaceReference_GetSimulations(IDWriteFontFaceReference* This) { + return This->lpVtbl->GetSimulations(This); +} +static inline HRESULT IDWriteFontFaceReference_GetFontFile(IDWriteFontFaceReference* This,IDWriteFontFile **fontfile) { + return This->lpVtbl->GetFontFile(This,fontfile); +} +static inline UINT64 IDWriteFontFaceReference_GetLocalFileSize(IDWriteFontFaceReference* This) { + return This->lpVtbl->GetLocalFileSize(This); +} +static inline UINT64 IDWriteFontFaceReference_GetFileSize(IDWriteFontFaceReference* This) { + return This->lpVtbl->GetFileSize(This); +} +static inline HRESULT IDWriteFontFaceReference_GetFileTime(IDWriteFontFaceReference* This,FILETIME *writetime) { + return This->lpVtbl->GetFileTime(This,writetime); +} +static inline DWRITE_LOCALITY IDWriteFontFaceReference_GetLocality(IDWriteFontFaceReference* This) { + return This->lpVtbl->GetLocality(This); +} +static inline HRESULT IDWriteFontFaceReference_EnqueueFontDownloadRequest(IDWriteFontFaceReference* This) { + return This->lpVtbl->EnqueueFontDownloadRequest(This); +} +static inline HRESULT IDWriteFontFaceReference_EnqueueCharacterDownloadRequest(IDWriteFontFaceReference* This,const WCHAR *chars,UINT32 count) { + return This->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count); +} +static inline HRESULT IDWriteFontFaceReference_EnqueueGlyphDownloadRequest(IDWriteFontFaceReference* This,const UINT16 *glyphs,UINT32 count) { + return This->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count); +} +static inline HRESULT IDWriteFontFaceReference_EnqueueFileFragmentDownloadRequest(IDWriteFontFaceReference* This,UINT64 offset,UINT64 size) { + return This->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFaceReference_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFaceReference1 interface + */ +#ifndef __IDWriteFontFaceReference1_INTERFACE_DEFINED__ +#define __IDWriteFontFaceReference1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFaceReference1, 0xc081fe77, 0x2fd1, 0x41ac, 0xa5,0xa3, 0x34,0x98,0x3c,0x4b,0xa6,0x1a); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("c081fe77-2fd1-41ac-a5a3-34983c4ba61a") +IDWriteFontFaceReference1 : public IDWriteFontFaceReference +{ + virtual HRESULT STDMETHODCALLTYPE CreateFontFace( + IDWriteFontFace5 **fontface) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues( + DWRITE_FONT_AXIS_VALUE *values, + UINT32 num_values) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFaceReference1, 0xc081fe77, 0x2fd1, 0x41ac, 0xa5,0xa3, 0x34,0x98,0x3c,0x4b,0xa6,0x1a) +#endif +#else +typedef struct IDWriteFontFaceReference1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFaceReference1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFaceReference1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFaceReference1 *This); + + /*** IDWriteFontFaceReference methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFontFaceReference1 *This, + IDWriteFontFace3 **fontface); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceWithSimulations)( + IDWriteFontFaceReference1 *This, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFace3 **fontface); + + WINBOOL (STDMETHODCALLTYPE *Equals)( + IDWriteFontFaceReference1 *This, + IDWriteFontFaceReference *reference); + + UINT32 (STDMETHODCALLTYPE *GetFontFaceIndex)( + IDWriteFontFaceReference1 *This); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFontFaceReference1 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFile)( + IDWriteFontFaceReference1 *This, + IDWriteFontFile **fontfile); + + UINT64 (STDMETHODCALLTYPE *GetLocalFileSize)( + IDWriteFontFaceReference1 *This); + + UINT64 (STDMETHODCALLTYPE *GetFileSize)( + IDWriteFontFaceReference1 *This); + + HRESULT (STDMETHODCALLTYPE *GetFileTime)( + IDWriteFontFaceReference1 *This, + FILETIME *writetime); + + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)( + IDWriteFontFaceReference1 *This); + + HRESULT (STDMETHODCALLTYPE *EnqueueFontDownloadRequest)( + IDWriteFontFaceReference1 *This); + + HRESULT (STDMETHODCALLTYPE *EnqueueCharacterDownloadRequest)( + IDWriteFontFaceReference1 *This, + const WCHAR *chars, + UINT32 count); + + HRESULT (STDMETHODCALLTYPE *EnqueueGlyphDownloadRequest)( + IDWriteFontFaceReference1 *This, + const UINT16 *glyphs, + UINT32 count); + + HRESULT (STDMETHODCALLTYPE *EnqueueFileFragmentDownloadRequest)( + IDWriteFontFaceReference1 *This, + UINT64 offset, + UINT64 size); + + /*** IDWriteFontFaceReference1 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFontFaceReference1_CreateFontFace)( + IDWriteFontFaceReference1 *This, + IDWriteFontFace5 **fontface); + + UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)( + IDWriteFontFaceReference1 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)( + IDWriteFontFaceReference1 *This, + DWRITE_FONT_AXIS_VALUE *values, + UINT32 num_values); + + END_INTERFACE +} IDWriteFontFaceReference1Vtbl; + +interface IDWriteFontFaceReference1 { + CONST_VTBL IDWriteFontFaceReference1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFaceReference1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFaceReference1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFaceReference1_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFaceReference methods ***/ +#define IDWriteFontFaceReference1_CreateFontFaceWithSimulations(This,simulations,fontface) (This)->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface) +#define IDWriteFontFaceReference1_Equals(This,reference) (This)->lpVtbl->Equals(This,reference) +#define IDWriteFontFaceReference1_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This) +#define IDWriteFontFaceReference1_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +#define IDWriteFontFaceReference1_GetFontFile(This,fontfile) (This)->lpVtbl->GetFontFile(This,fontfile) +#define IDWriteFontFaceReference1_GetLocalFileSize(This) (This)->lpVtbl->GetLocalFileSize(This) +#define IDWriteFontFaceReference1_GetFileSize(This) (This)->lpVtbl->GetFileSize(This) +#define IDWriteFontFaceReference1_GetFileTime(This,writetime) (This)->lpVtbl->GetFileTime(This,writetime) +#define IDWriteFontFaceReference1_GetLocality(This) (This)->lpVtbl->GetLocality(This) +#define IDWriteFontFaceReference1_EnqueueFontDownloadRequest(This) (This)->lpVtbl->EnqueueFontDownloadRequest(This) +#define IDWriteFontFaceReference1_EnqueueCharacterDownloadRequest(This,chars,count) (This)->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count) +#define IDWriteFontFaceReference1_EnqueueGlyphDownloadRequest(This,glyphs,count) (This)->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count) +#define IDWriteFontFaceReference1_EnqueueFileFragmentDownloadRequest(This,offset,size) (This)->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size) +/*** IDWriteFontFaceReference1 methods ***/ +#define IDWriteFontFaceReference1_CreateFontFace(This,fontface) (This)->lpVtbl->IDWriteFontFaceReference1_CreateFontFace(This,fontface) +#define IDWriteFontFaceReference1_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This) +#define IDWriteFontFaceReference1_GetFontAxisValues(This,values,num_values) (This)->lpVtbl->GetFontAxisValues(This,values,num_values) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFaceReference1_QueryInterface(IDWriteFontFaceReference1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFaceReference1_AddRef(IDWriteFontFaceReference1* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFaceReference1_Release(IDWriteFontFaceReference1* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFaceReference methods ***/ +static inline HRESULT IDWriteFontFaceReference1_CreateFontFaceWithSimulations(IDWriteFontFaceReference1* This,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFace3 **fontface) { + return This->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface); +} +static inline WINBOOL IDWriteFontFaceReference1_Equals(IDWriteFontFaceReference1* This,IDWriteFontFaceReference *reference) { + return This->lpVtbl->Equals(This,reference); +} +static inline UINT32 IDWriteFontFaceReference1_GetFontFaceIndex(IDWriteFontFaceReference1* This) { + return This->lpVtbl->GetFontFaceIndex(This); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFontFaceReference1_GetSimulations(IDWriteFontFaceReference1* This) { + return This->lpVtbl->GetSimulations(This); +} +static inline HRESULT IDWriteFontFaceReference1_GetFontFile(IDWriteFontFaceReference1* This,IDWriteFontFile **fontfile) { + return This->lpVtbl->GetFontFile(This,fontfile); +} +static inline UINT64 IDWriteFontFaceReference1_GetLocalFileSize(IDWriteFontFaceReference1* This) { + return This->lpVtbl->GetLocalFileSize(This); +} +static inline UINT64 IDWriteFontFaceReference1_GetFileSize(IDWriteFontFaceReference1* This) { + return This->lpVtbl->GetFileSize(This); +} +static inline HRESULT IDWriteFontFaceReference1_GetFileTime(IDWriteFontFaceReference1* This,FILETIME *writetime) { + return This->lpVtbl->GetFileTime(This,writetime); +} +static inline DWRITE_LOCALITY IDWriteFontFaceReference1_GetLocality(IDWriteFontFaceReference1* This) { + return This->lpVtbl->GetLocality(This); +} +static inline HRESULT IDWriteFontFaceReference1_EnqueueFontDownloadRequest(IDWriteFontFaceReference1* This) { + return This->lpVtbl->EnqueueFontDownloadRequest(This); +} +static inline HRESULT IDWriteFontFaceReference1_EnqueueCharacterDownloadRequest(IDWriteFontFaceReference1* This,const WCHAR *chars,UINT32 count) { + return This->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count); +} +static inline HRESULT IDWriteFontFaceReference1_EnqueueGlyphDownloadRequest(IDWriteFontFaceReference1* This,const UINT16 *glyphs,UINT32 count) { + return This->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count); +} +static inline HRESULT IDWriteFontFaceReference1_EnqueueFileFragmentDownloadRequest(IDWriteFontFaceReference1* This,UINT64 offset,UINT64 size) { + return This->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size); +} +/*** IDWriteFontFaceReference1 methods ***/ +static inline HRESULT IDWriteFontFaceReference1_CreateFontFace(IDWriteFontFaceReference1* This,IDWriteFontFace5 **fontface) { + return This->lpVtbl->IDWriteFontFaceReference1_CreateFontFace(This,fontface); +} +static inline UINT32 IDWriteFontFaceReference1_GetFontAxisValueCount(IDWriteFontFaceReference1* This) { + return This->lpVtbl->GetFontAxisValueCount(This); +} +static inline HRESULT IDWriteFontFaceReference1_GetFontAxisValues(IDWriteFontFaceReference1* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 num_values) { + return This->lpVtbl->GetFontAxisValues(This,values,num_values); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFaceReference1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontList1 interface + */ +#ifndef __IDWriteFontList1_INTERFACE_DEFINED__ +#define __IDWriteFontList1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontList1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xde); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7ade") +IDWriteFontList1 : public IDWriteFontList +{ + virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality( + UINT32 index) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFont( + UINT32 index, + IDWriteFont3 **font) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( + UINT32 index, + IDWriteFontFaceReference **reference) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontList1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xde) +#endif +#else +typedef struct IDWriteFontList1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontList1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontList1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontList1 *This); + + /*** IDWriteFontList methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteFontList1 *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontCount)( + IDWriteFontList1 *This); + + HRESULT (STDMETHODCALLTYPE *GetFont)( + IDWriteFontList1 *This, + UINT32 index, + IDWriteFont **font); + + /*** IDWriteFontList1 methods ***/ + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( + IDWriteFontList1 *This, + UINT32 index); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontList1_GetFont)( + IDWriteFontList1 *This, + UINT32 index, + IDWriteFont3 **font); + + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontList1 *This, + UINT32 index, + IDWriteFontFaceReference **reference); + + END_INTERFACE +} IDWriteFontList1Vtbl; + +interface IDWriteFontList1 { + CONST_VTBL IDWriteFontList1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontList1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontList1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontList1_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontList methods ***/ +#define IDWriteFontList1_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteFontList1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) +/*** IDWriteFontList1 methods ***/ +#define IDWriteFontList1_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) +#define IDWriteFontList1_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontList1_GetFont(This,index,font) +#define IDWriteFontList1_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontList1_QueryInterface(IDWriteFontList1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontList1_AddRef(IDWriteFontList1* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontList1_Release(IDWriteFontList1* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontList methods ***/ +static inline HRESULT IDWriteFontList1_GetFontCollection(IDWriteFontList1* This,IDWriteFontCollection **collection) { + return This->lpVtbl->GetFontCollection(This,collection); +} +static inline UINT32 IDWriteFontList1_GetFontCount(IDWriteFontList1* This) { + return This->lpVtbl->GetFontCount(This); +} +/*** IDWriteFontList1 methods ***/ +static inline DWRITE_LOCALITY IDWriteFontList1_GetFontLocality(IDWriteFontList1* This,UINT32 index) { + return This->lpVtbl->GetFontLocality(This,index); +} +static inline HRESULT IDWriteFontList1_GetFont(IDWriteFontList1* This,UINT32 index,IDWriteFont3 **font) { + return This->lpVtbl->IDWriteFontList1_GetFont(This,index,font); +} +static inline HRESULT IDWriteFontList1_GetFontFaceReference(IDWriteFontList1* This,UINT32 index,IDWriteFontFaceReference **reference) { + return This->lpVtbl->GetFontFaceReference(This,index,reference); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontList1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontList2 interface + */ +#ifndef __IDWriteFontList2_INTERFACE_DEFINED__ +#define __IDWriteFontList2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontList2, 0xc0763a34, 0x77af, 0x445a, 0xb7,0x35, 0x08,0xc3,0x7b,0x0a,0x5b,0xf5); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("c0763a34-77af-445a-b735-08c37b0a5bf5") +IDWriteFontList2 : public IDWriteFontList1 +{ + virtual HRESULT STDMETHODCALLTYPE GetFontSet( + IDWriteFontSet1 **fontset) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontList2, 0xc0763a34, 0x77af, 0x445a, 0xb7,0x35, 0x08,0xc3,0x7b,0x0a,0x5b,0xf5) +#endif +#else +typedef struct IDWriteFontList2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontList2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontList2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontList2 *This); + + /*** IDWriteFontList methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteFontList2 *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontCount)( + IDWriteFontList2 *This); + + HRESULT (STDMETHODCALLTYPE *GetFont)( + IDWriteFontList2 *This, + UINT32 index, + IDWriteFont **font); + + /*** IDWriteFontList1 methods ***/ + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( + IDWriteFontList2 *This, + UINT32 index); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontList1_GetFont)( + IDWriteFontList2 *This, + UINT32 index, + IDWriteFont3 **font); + + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontList2 *This, + UINT32 index, + IDWriteFontFaceReference **reference); + + /*** IDWriteFontList2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontSet)( + IDWriteFontList2 *This, + IDWriteFontSet1 **fontset); + + END_INTERFACE +} IDWriteFontList2Vtbl; + +interface IDWriteFontList2 { + CONST_VTBL IDWriteFontList2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontList2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontList2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontList2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontList methods ***/ +#define IDWriteFontList2_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteFontList2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) +/*** IDWriteFontList1 methods ***/ +#define IDWriteFontList2_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) +#define IDWriteFontList2_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontList1_GetFont(This,index,font) +#define IDWriteFontList2_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference) +/*** IDWriteFontList2 methods ***/ +#define IDWriteFontList2_GetFontSet(This,fontset) (This)->lpVtbl->GetFontSet(This,fontset) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontList2_QueryInterface(IDWriteFontList2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontList2_AddRef(IDWriteFontList2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontList2_Release(IDWriteFontList2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontList methods ***/ +static inline HRESULT IDWriteFontList2_GetFontCollection(IDWriteFontList2* This,IDWriteFontCollection **collection) { + return This->lpVtbl->GetFontCollection(This,collection); +} +static inline UINT32 IDWriteFontList2_GetFontCount(IDWriteFontList2* This) { + return This->lpVtbl->GetFontCount(This); +} +/*** IDWriteFontList1 methods ***/ +static inline DWRITE_LOCALITY IDWriteFontList2_GetFontLocality(IDWriteFontList2* This,UINT32 index) { + return This->lpVtbl->GetFontLocality(This,index); +} +static inline HRESULT IDWriteFontList2_GetFont(IDWriteFontList2* This,UINT32 index,IDWriteFont3 **font) { + return This->lpVtbl->IDWriteFontList1_GetFont(This,index,font); +} +static inline HRESULT IDWriteFontList2_GetFontFaceReference(IDWriteFontList2* This,UINT32 index,IDWriteFontFaceReference **reference) { + return This->lpVtbl->GetFontFaceReference(This,index,reference); +} +/*** IDWriteFontList2 methods ***/ +static inline HRESULT IDWriteFontList2_GetFontSet(IDWriteFontList2* This,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFontSet(This,fontset); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontList2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontSet2 interface + */ +#ifndef __IDWriteFontSet2_INTERFACE_DEFINED__ +#define __IDWriteFontSet2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontSet2, 0xdc7ead19, 0xe54c, 0x43af, 0xb2,0xda, 0x4e,0x2b,0x79,0xba,0x3f,0x7f); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("dc7ead19-e54c-43af-b2da-4e2b79ba3f7f") +IDWriteFontSet2 : public IDWriteFontSet1 +{ + virtual HANDLE STDMETHODCALLTYPE GetExpirationEvent( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontSet2, 0xdc7ead19, 0xe54c, 0x43af, 0xb2,0xda, 0x4e,0x2b,0x79,0xba,0x3f,0x7f) +#endif +#else +typedef struct IDWriteFontSet2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontSet2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontSet2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontSet2 *This); + + /*** IDWriteFontSet methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontCount)( + IDWriteFontSet2 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontSet2 *This, + UINT32 index, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)( + IDWriteFontSet2 *This, + IDWriteFontFaceReference *reference, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *FindFontFace)( + IDWriteFontSet2 *This, + IDWriteFontFace *fontface, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)( + IDWriteFontSet2 *This, + DWRITE_FONT_PROPERTY_ID id, + IDWriteStringList **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)( + IDWriteFontSet2 *This, + DWRITE_FONT_PROPERTY_ID id, + const WCHAR *preferred_locales, + IDWriteStringList **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues)( + IDWriteFontSet2 *This, + UINT32 index, + DWRITE_FONT_PROPERTY_ID id, + WINBOOL *exists, + IDWriteLocalizedStrings **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)( + IDWriteFontSet2 *This, + const DWRITE_FONT_PROPERTY *property, + UINT32 *count); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)( + IDWriteFontSet2 *This, + const WCHAR *family, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( + IDWriteFontSet2 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 count, + IDWriteFontSet **fontset); + + /*** IDWriteFontSet1 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)( + IDWriteFontSet2 *This, + const DWRITE_FONT_PROPERTY *property, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)( + IDWriteFontSet2 *This, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)( + IDWriteFontSet2 *This, + const UINT32 *indices, + UINT32 num_indices, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)( + IDWriteFontSet2 *This, + const DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)( + IDWriteFontSet2 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties, + WINBOOL select_any_property, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)( + IDWriteFontSet2 *This, + const DWRITE_FONT_AXIS_RANGE *ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + UINT32 *indices, + UINT32 num_indices, + UINT32 *actual_num_indices); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)( + IDWriteFontSet2 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties, + WINBOOL select_any_range, + UINT32 *indices, + UINT32 num_indices, + UINT32 *actual_num_indices); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)( + IDWriteFontSet2 *This, + UINT32 font_index, + DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + UINT32 *actual_num_ranges); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)( + IDWriteFontSet2 *This, + DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + UINT32 *actual_num_ranges); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)( + IDWriteFontSet2 *This, + UINT32 index, + IDWriteFontFaceReference1 **reference); + + HRESULT (STDMETHODCALLTYPE *CreateFontResource)( + IDWriteFontSet2 *This, + UINT32 index, + IDWriteFontResource **resource); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFontSet2 *This, + UINT32 index, + IDWriteFontFace5 **fontface); + + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( + IDWriteFontSet2 *This, + UINT32 index); + + /*** IDWriteFontSet2 methods ***/ + HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)( + IDWriteFontSet2 *This); + + END_INTERFACE +} IDWriteFontSet2Vtbl; + +interface IDWriteFontSet2 { + CONST_VTBL IDWriteFontSet2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontSet2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSet2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontSet2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontSet methods ***/ +#define IDWriteFontSet2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) +#define IDWriteFontSet2_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists) +#define IDWriteFontSet2_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists) +#define IDWriteFontSet2_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values) +#define IDWriteFontSet2_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values) +#define IDWriteFontSet2_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values) +#define IDWriteFontSet2_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count) +#define IDWriteFontSet2_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset) +/*** IDWriteFontSet1 methods ***/ +#define IDWriteFontSet2_GetMatchingFonts(This,property,axis_values,num_values,fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset) +#define IDWriteFontSet2_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset) +#define IDWriteFontSet2_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset) +#define IDWriteFontSet2_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) +#define IDWriteFontSet2_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset) +#define IDWriteFontSet2_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) +#define IDWriteFontSet2_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) +#define IDWriteFontSet2_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) +#define IDWriteFontSet2_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) +#define IDWriteFontSet2_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference) +#define IDWriteFontSet2_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource) +#define IDWriteFontSet2_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface) +#define IDWriteFontSet2_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) +/*** IDWriteFontSet2 methods ***/ +#define IDWriteFontSet2_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontSet2_QueryInterface(IDWriteFontSet2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontSet2_AddRef(IDWriteFontSet2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontSet2_Release(IDWriteFontSet2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontSet methods ***/ +static inline UINT32 IDWriteFontSet2_GetFontCount(IDWriteFontSet2* This) { + return This->lpVtbl->GetFontCount(This); +} +static inline HRESULT IDWriteFontSet2_FindFontFaceReference(IDWriteFontSet2* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFontFaceReference(This,reference,index,exists); +} +static inline HRESULT IDWriteFontSet2_FindFontFace(IDWriteFontSet2* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFontFace(This,fontface,index,exists); +} +static inline HRESULT IDWriteFontSet2_GetPropertyValues__(IDWriteFontSet2* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) { + return This->lpVtbl->GetPropertyValues__(This,id,values); +} +static inline HRESULT IDWriteFontSet2_GetPropertyValues_(IDWriteFontSet2* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) { + return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values); +} +static inline HRESULT IDWriteFontSet2_GetPropertyValues(IDWriteFontSet2* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) { + return This->lpVtbl->GetPropertyValues(This,index,id,exists,values); +} +static inline HRESULT IDWriteFontSet2_GetPropertyOccurrenceCount(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) { + return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count); +} +static inline HRESULT IDWriteFontSet2_GetMatchingFonts_(IDWriteFontSet2* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) { + return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset); +} +/*** IDWriteFontSet1 methods ***/ +static inline HRESULT IDWriteFontSet2_GetMatchingFonts(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *property,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontSet1 **fontset) { + return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset); +} +static inline HRESULT IDWriteFontSet2_GetFirstFontResources(IDWriteFontSet2* This,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFirstFontResources(This,fontset); +} +static inline HRESULT IDWriteFontSet2_GetFilteredFonts__(IDWriteFontSet2* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset); +} +static inline HRESULT IDWriteFontSet2_GetFilteredFonts_(IDWriteFontSet2* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset); +} +static inline HRESULT IDWriteFontSet2_GetFilteredFonts(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset); +} +static inline HRESULT IDWriteFontSet2_GetFilteredFontIndices_(IDWriteFontSet2* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices); +} +static inline HRESULT IDWriteFontSet2_GetFilteredFontIndices(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices); +} +static inline HRESULT IDWriteFontSet2_GetFontAxisRanges_(IDWriteFontSet2* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges); +} +static inline HRESULT IDWriteFontSet2_GetFontAxisRanges(IDWriteFontSet2* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges); +} +static inline HRESULT IDWriteFontSet2_GetFontFaceReference(IDWriteFontSet2* This,UINT32 index,IDWriteFontFaceReference1 **reference) { + return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference); +} +static inline HRESULT IDWriteFontSet2_CreateFontResource(IDWriteFontSet2* This,UINT32 index,IDWriteFontResource **resource) { + return This->lpVtbl->CreateFontResource(This,index,resource); +} +static inline HRESULT IDWriteFontSet2_CreateFontFace(IDWriteFontSet2* This,UINT32 index,IDWriteFontFace5 **fontface) { + return This->lpVtbl->CreateFontFace(This,index,fontface); +} +static inline DWRITE_LOCALITY IDWriteFontSet2_GetFontLocality(IDWriteFontSet2* This,UINT32 index) { + return This->lpVtbl->GetFontLocality(This,index); +} +/*** IDWriteFontSet2 methods ***/ +static inline HANDLE IDWriteFontSet2_GetExpirationEvent(IDWriteFontSet2* This) { + return This->lpVtbl->GetExpirationEvent(This); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontSet2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontSet3 interface + */ +#ifndef __IDWriteFontSet3_INTERFACE_DEFINED__ +#define __IDWriteFontSet3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontSet3, 0x7c073ef2, 0xa7f4, 0x4045, 0x8c,0x32, 0x8a,0xb8,0xae,0x64,0x0f,0x90); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("7c073ef2-a7f4-4045-8c32-8ab8ae640f90") +IDWriteFontSet3 : public IDWriteFontSet2 +{ + virtual DWRITE_FONT_SOURCE_TYPE STDMETHODCALLTYPE GetFontSourceType( + UINT32 index) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetFontSourceNameLength( + UINT32 index) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontSourceName( + UINT32 index, + WCHAR *buffer, + UINT32 buffer_size) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontSet3, 0x7c073ef2, 0xa7f4, 0x4045, 0x8c,0x32, 0x8a,0xb8,0xae,0x64,0x0f,0x90) +#endif +#else +typedef struct IDWriteFontSet3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontSet3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontSet3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontSet3 *This); + + /*** IDWriteFontSet methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontCount)( + IDWriteFontSet3 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontSet3 *This, + UINT32 index, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)( + IDWriteFontSet3 *This, + IDWriteFontFaceReference *reference, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *FindFontFace)( + IDWriteFontSet3 *This, + IDWriteFontFace *fontface, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)( + IDWriteFontSet3 *This, + DWRITE_FONT_PROPERTY_ID id, + IDWriteStringList **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)( + IDWriteFontSet3 *This, + DWRITE_FONT_PROPERTY_ID id, + const WCHAR *preferred_locales, + IDWriteStringList **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues)( + IDWriteFontSet3 *This, + UINT32 index, + DWRITE_FONT_PROPERTY_ID id, + WINBOOL *exists, + IDWriteLocalizedStrings **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)( + IDWriteFontSet3 *This, + const DWRITE_FONT_PROPERTY *property, + UINT32 *count); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)( + IDWriteFontSet3 *This, + const WCHAR *family, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( + IDWriteFontSet3 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 count, + IDWriteFontSet **fontset); + + /*** IDWriteFontSet1 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)( + IDWriteFontSet3 *This, + const DWRITE_FONT_PROPERTY *property, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)( + IDWriteFontSet3 *This, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)( + IDWriteFontSet3 *This, + const UINT32 *indices, + UINT32 num_indices, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)( + IDWriteFontSet3 *This, + const DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)( + IDWriteFontSet3 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties, + WINBOOL select_any_property, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)( + IDWriteFontSet3 *This, + const DWRITE_FONT_AXIS_RANGE *ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + UINT32 *indices, + UINT32 num_indices, + UINT32 *actual_num_indices); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)( + IDWriteFontSet3 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties, + WINBOOL select_any_range, + UINT32 *indices, + UINT32 num_indices, + UINT32 *actual_num_indices); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)( + IDWriteFontSet3 *This, + UINT32 font_index, + DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + UINT32 *actual_num_ranges); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)( + IDWriteFontSet3 *This, + DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + UINT32 *actual_num_ranges); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)( + IDWriteFontSet3 *This, + UINT32 index, + IDWriteFontFaceReference1 **reference); + + HRESULT (STDMETHODCALLTYPE *CreateFontResource)( + IDWriteFontSet3 *This, + UINT32 index, + IDWriteFontResource **resource); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFontSet3 *This, + UINT32 index, + IDWriteFontFace5 **fontface); + + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( + IDWriteFontSet3 *This, + UINT32 index); + + /*** IDWriteFontSet2 methods ***/ + HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)( + IDWriteFontSet3 *This); + + /*** IDWriteFontSet3 methods ***/ + DWRITE_FONT_SOURCE_TYPE (STDMETHODCALLTYPE *GetFontSourceType)( + IDWriteFontSet3 *This, + UINT32 index); + + UINT32 (STDMETHODCALLTYPE *GetFontSourceNameLength)( + IDWriteFontSet3 *This, + UINT32 index); + + HRESULT (STDMETHODCALLTYPE *GetFontSourceName)( + IDWriteFontSet3 *This, + UINT32 index, + WCHAR *buffer, + UINT32 buffer_size); + + END_INTERFACE +} IDWriteFontSet3Vtbl; + +interface IDWriteFontSet3 { + CONST_VTBL IDWriteFontSet3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontSet3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSet3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontSet3_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontSet methods ***/ +#define IDWriteFontSet3_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) +#define IDWriteFontSet3_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists) +#define IDWriteFontSet3_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists) +#define IDWriteFontSet3_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values) +#define IDWriteFontSet3_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values) +#define IDWriteFontSet3_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values) +#define IDWriteFontSet3_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count) +#define IDWriteFontSet3_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset) +/*** IDWriteFontSet1 methods ***/ +#define IDWriteFontSet3_GetMatchingFonts(This,property,axis_values,num_values,fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset) +#define IDWriteFontSet3_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset) +#define IDWriteFontSet3_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset) +#define IDWriteFontSet3_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) +#define IDWriteFontSet3_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset) +#define IDWriteFontSet3_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) +#define IDWriteFontSet3_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) +#define IDWriteFontSet3_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) +#define IDWriteFontSet3_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) +#define IDWriteFontSet3_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference) +#define IDWriteFontSet3_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource) +#define IDWriteFontSet3_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface) +#define IDWriteFontSet3_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) +/*** IDWriteFontSet2 methods ***/ +#define IDWriteFontSet3_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This) +/*** IDWriteFontSet3 methods ***/ +#define IDWriteFontSet3_GetFontSourceType(This,index) (This)->lpVtbl->GetFontSourceType(This,index) +#define IDWriteFontSet3_GetFontSourceNameLength(This,index) (This)->lpVtbl->GetFontSourceNameLength(This,index) +#define IDWriteFontSet3_GetFontSourceName(This,index,buffer,buffer_size) (This)->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontSet3_QueryInterface(IDWriteFontSet3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontSet3_AddRef(IDWriteFontSet3* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontSet3_Release(IDWriteFontSet3* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontSet methods ***/ +static inline UINT32 IDWriteFontSet3_GetFontCount(IDWriteFontSet3* This) { + return This->lpVtbl->GetFontCount(This); +} +static inline HRESULT IDWriteFontSet3_FindFontFaceReference(IDWriteFontSet3* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFontFaceReference(This,reference,index,exists); +} +static inline HRESULT IDWriteFontSet3_FindFontFace(IDWriteFontSet3* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFontFace(This,fontface,index,exists); +} +static inline HRESULT IDWriteFontSet3_GetPropertyValues__(IDWriteFontSet3* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) { + return This->lpVtbl->GetPropertyValues__(This,id,values); +} +static inline HRESULT IDWriteFontSet3_GetPropertyValues_(IDWriteFontSet3* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) { + return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values); +} +static inline HRESULT IDWriteFontSet3_GetPropertyValues(IDWriteFontSet3* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) { + return This->lpVtbl->GetPropertyValues(This,index,id,exists,values); +} +static inline HRESULT IDWriteFontSet3_GetPropertyOccurrenceCount(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) { + return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count); +} +static inline HRESULT IDWriteFontSet3_GetMatchingFonts_(IDWriteFontSet3* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) { + return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset); +} +/*** IDWriteFontSet1 methods ***/ +static inline HRESULT IDWriteFontSet3_GetMatchingFonts(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *property,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontSet1 **fontset) { + return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset); +} +static inline HRESULT IDWriteFontSet3_GetFirstFontResources(IDWriteFontSet3* This,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFirstFontResources(This,fontset); +} +static inline HRESULT IDWriteFontSet3_GetFilteredFonts__(IDWriteFontSet3* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset); +} +static inline HRESULT IDWriteFontSet3_GetFilteredFonts_(IDWriteFontSet3* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset); +} +static inline HRESULT IDWriteFontSet3_GetFilteredFonts(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset); +} +static inline HRESULT IDWriteFontSet3_GetFilteredFontIndices_(IDWriteFontSet3* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices); +} +static inline HRESULT IDWriteFontSet3_GetFilteredFontIndices(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices); +} +static inline HRESULT IDWriteFontSet3_GetFontAxisRanges_(IDWriteFontSet3* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges); +} +static inline HRESULT IDWriteFontSet3_GetFontAxisRanges(IDWriteFontSet3* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges); +} +static inline HRESULT IDWriteFontSet3_GetFontFaceReference(IDWriteFontSet3* This,UINT32 index,IDWriteFontFaceReference1 **reference) { + return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference); +} +static inline HRESULT IDWriteFontSet3_CreateFontResource(IDWriteFontSet3* This,UINT32 index,IDWriteFontResource **resource) { + return This->lpVtbl->CreateFontResource(This,index,resource); +} +static inline HRESULT IDWriteFontSet3_CreateFontFace(IDWriteFontSet3* This,UINT32 index,IDWriteFontFace5 **fontface) { + return This->lpVtbl->CreateFontFace(This,index,fontface); +} +static inline DWRITE_LOCALITY IDWriteFontSet3_GetFontLocality(IDWriteFontSet3* This,UINT32 index) { + return This->lpVtbl->GetFontLocality(This,index); +} +/*** IDWriteFontSet2 methods ***/ +static inline HANDLE IDWriteFontSet3_GetExpirationEvent(IDWriteFontSet3* This) { + return This->lpVtbl->GetExpirationEvent(This); +} +/*** IDWriteFontSet3 methods ***/ +static inline DWRITE_FONT_SOURCE_TYPE IDWriteFontSet3_GetFontSourceType(IDWriteFontSet3* This,UINT32 index) { + return This->lpVtbl->GetFontSourceType(This,index); +} +static inline UINT32 IDWriteFontSet3_GetFontSourceNameLength(IDWriteFontSet3* This,UINT32 index) { + return This->lpVtbl->GetFontSourceNameLength(This,index); +} +static inline HRESULT IDWriteFontSet3_GetFontSourceName(IDWriteFontSet3* This,UINT32 index,WCHAR *buffer,UINT32 buffer_size) { + return This->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontSet3_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontSet4 interface + */ +#ifndef __IDWriteFontSet4_INTERFACE_DEFINED__ +#define __IDWriteFontSet4_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontSet4, 0xeec175fc, 0xbea9, 0x4c86, 0x8b,0x53, 0xcc,0xbd,0xd7,0xdf,0x0c,0x82); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("eec175fc-bea9-4c86-8b53-ccbdd7df0c82") +IDWriteFontSet4 : public IDWriteFontSet3 +{ + virtual UINT32 STDMETHODCALLTYPE ConvertWeightStretchStyleToFontAxisValues( + const DWRITE_FONT_AXIS_VALUE *input_axis_values, + UINT32 input_axis_count, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + float size, + DWRITE_FONT_AXIS_VALUE *output_axis_values) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( + const WCHAR *family_name, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 axis_value_count, + DWRITE_FONT_SIMULATIONS allowed_simulations, + IDWriteFontSet4 **fonts) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontSet4, 0xeec175fc, 0xbea9, 0x4c86, 0x8b,0x53, 0xcc,0xbd,0xd7,0xdf,0x0c,0x82) +#endif +#else +typedef struct IDWriteFontSet4Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontSet4 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontSet4 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontSet4 *This); + + /*** IDWriteFontSet methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontCount)( + IDWriteFontSet4 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontSet4 *This, + UINT32 index, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)( + IDWriteFontSet4 *This, + IDWriteFontFaceReference *reference, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *FindFontFace)( + IDWriteFontSet4 *This, + IDWriteFontFace *fontface, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)( + IDWriteFontSet4 *This, + DWRITE_FONT_PROPERTY_ID id, + IDWriteStringList **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)( + IDWriteFontSet4 *This, + DWRITE_FONT_PROPERTY_ID id, + const WCHAR *preferred_locales, + IDWriteStringList **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues)( + IDWriteFontSet4 *This, + UINT32 index, + DWRITE_FONT_PROPERTY_ID id, + WINBOOL *exists, + IDWriteLocalizedStrings **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)( + IDWriteFontSet4 *This, + const DWRITE_FONT_PROPERTY *property, + UINT32 *count); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)( + IDWriteFontSet4 *This, + const WCHAR *family, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( + IDWriteFontSet4 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 count, + IDWriteFontSet **fontset); + + /*** IDWriteFontSet1 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)( + IDWriteFontSet4 *This, + const DWRITE_FONT_PROPERTY *property, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)( + IDWriteFontSet4 *This, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)( + IDWriteFontSet4 *This, + const UINT32 *indices, + UINT32 num_indices, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)( + IDWriteFontSet4 *This, + const DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)( + IDWriteFontSet4 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties, + WINBOOL select_any_property, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)( + IDWriteFontSet4 *This, + const DWRITE_FONT_AXIS_RANGE *ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + UINT32 *indices, + UINT32 num_indices, + UINT32 *actual_num_indices); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)( + IDWriteFontSet4 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties, + WINBOOL select_any_range, + UINT32 *indices, + UINT32 num_indices, + UINT32 *actual_num_indices); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)( + IDWriteFontSet4 *This, + UINT32 font_index, + DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + UINT32 *actual_num_ranges); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)( + IDWriteFontSet4 *This, + DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + UINT32 *actual_num_ranges); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)( + IDWriteFontSet4 *This, + UINT32 index, + IDWriteFontFaceReference1 **reference); + + HRESULT (STDMETHODCALLTYPE *CreateFontResource)( + IDWriteFontSet4 *This, + UINT32 index, + IDWriteFontResource **resource); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFontSet4 *This, + UINT32 index, + IDWriteFontFace5 **fontface); + + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( + IDWriteFontSet4 *This, + UINT32 index); + + /*** IDWriteFontSet2 methods ***/ + HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)( + IDWriteFontSet4 *This); + + /*** IDWriteFontSet3 methods ***/ + DWRITE_FONT_SOURCE_TYPE (STDMETHODCALLTYPE *GetFontSourceType)( + IDWriteFontSet4 *This, + UINT32 index); + + UINT32 (STDMETHODCALLTYPE *GetFontSourceNameLength)( + IDWriteFontSet4 *This, + UINT32 index); + + HRESULT (STDMETHODCALLTYPE *GetFontSourceName)( + IDWriteFontSet4 *This, + UINT32 index, + WCHAR *buffer, + UINT32 buffer_size); + + /*** IDWriteFontSet4 methods ***/ + UINT32 (STDMETHODCALLTYPE *ConvertWeightStretchStyleToFontAxisValues)( + IDWriteFontSet4 *This, + const DWRITE_FONT_AXIS_VALUE *input_axis_values, + UINT32 input_axis_count, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + float size, + DWRITE_FONT_AXIS_VALUE *output_axis_values); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontSet4_GetMatchingFonts)( + IDWriteFontSet4 *This, + const WCHAR *family_name, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 axis_value_count, + DWRITE_FONT_SIMULATIONS allowed_simulations, + IDWriteFontSet4 **fonts); + + END_INTERFACE +} IDWriteFontSet4Vtbl; + +interface IDWriteFontSet4 { + CONST_VTBL IDWriteFontSet4Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontSet4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSet4_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontSet4_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontSet methods ***/ +#define IDWriteFontSet4_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) +#define IDWriteFontSet4_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists) +#define IDWriteFontSet4_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists) +#define IDWriteFontSet4_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values) +#define IDWriteFontSet4_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values) +#define IDWriteFontSet4_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values) +#define IDWriteFontSet4_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count) +#define IDWriteFontSet4_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset) +/*** IDWriteFontSet1 methods ***/ +#define IDWriteFontSet4_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset) +#define IDWriteFontSet4_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset) +#define IDWriteFontSet4_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) +#define IDWriteFontSet4_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset) +#define IDWriteFontSet4_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) +#define IDWriteFontSet4_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) +#define IDWriteFontSet4_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) +#define IDWriteFontSet4_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) +#define IDWriteFontSet4_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference) +#define IDWriteFontSet4_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource) +#define IDWriteFontSet4_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface) +#define IDWriteFontSet4_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) +/*** IDWriteFontSet2 methods ***/ +#define IDWriteFontSet4_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This) +/*** IDWriteFontSet3 methods ***/ +#define IDWriteFontSet4_GetFontSourceType(This,index) (This)->lpVtbl->GetFontSourceType(This,index) +#define IDWriteFontSet4_GetFontSourceNameLength(This,index) (This)->lpVtbl->GetFontSourceNameLength(This,index) +#define IDWriteFontSet4_GetFontSourceName(This,index,buffer,buffer_size) (This)->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size) +/*** IDWriteFontSet4 methods ***/ +#define IDWriteFontSet4_ConvertWeightStretchStyleToFontAxisValues(This,input_axis_values,input_axis_count,weight,stretch,style,size,output_axis_values) (This)->lpVtbl->ConvertWeightStretchStyleToFontAxisValues(This,input_axis_values,input_axis_count,weight,stretch,style,size,output_axis_values) +#define IDWriteFontSet4_GetMatchingFonts(This,family_name,axis_values,axis_value_count,allowed_simulations,fonts) (This)->lpVtbl->IDWriteFontSet4_GetMatchingFonts(This,family_name,axis_values,axis_value_count,allowed_simulations,fonts) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontSet4_QueryInterface(IDWriteFontSet4* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontSet4_AddRef(IDWriteFontSet4* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontSet4_Release(IDWriteFontSet4* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontSet methods ***/ +static inline UINT32 IDWriteFontSet4_GetFontCount(IDWriteFontSet4* This) { + return This->lpVtbl->GetFontCount(This); +} +static inline HRESULT IDWriteFontSet4_FindFontFaceReference(IDWriteFontSet4* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFontFaceReference(This,reference,index,exists); +} +static inline HRESULT IDWriteFontSet4_FindFontFace(IDWriteFontSet4* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFontFace(This,fontface,index,exists); +} +static inline HRESULT IDWriteFontSet4_GetPropertyValues__(IDWriteFontSet4* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) { + return This->lpVtbl->GetPropertyValues__(This,id,values); +} +static inline HRESULT IDWriteFontSet4_GetPropertyValues_(IDWriteFontSet4* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) { + return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values); +} +static inline HRESULT IDWriteFontSet4_GetPropertyValues(IDWriteFontSet4* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) { + return This->lpVtbl->GetPropertyValues(This,index,id,exists,values); +} +static inline HRESULT IDWriteFontSet4_GetPropertyOccurrenceCount(IDWriteFontSet4* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) { + return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count); +} +static inline HRESULT IDWriteFontSet4_GetMatchingFonts_(IDWriteFontSet4* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) { + return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset); +} +/*** IDWriteFontSet1 methods ***/ +static inline HRESULT IDWriteFontSet4_GetFirstFontResources(IDWriteFontSet4* This,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFirstFontResources(This,fontset); +} +static inline HRESULT IDWriteFontSet4_GetFilteredFonts__(IDWriteFontSet4* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset); +} +static inline HRESULT IDWriteFontSet4_GetFilteredFonts_(IDWriteFontSet4* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset); +} +static inline HRESULT IDWriteFontSet4_GetFilteredFonts(IDWriteFontSet4* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset); +} +static inline HRESULT IDWriteFontSet4_GetFilteredFontIndices_(IDWriteFontSet4* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices); +} +static inline HRESULT IDWriteFontSet4_GetFilteredFontIndices(IDWriteFontSet4* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices); +} +static inline HRESULT IDWriteFontSet4_GetFontAxisRanges_(IDWriteFontSet4* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges); +} +static inline HRESULT IDWriteFontSet4_GetFontAxisRanges(IDWriteFontSet4* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges); +} +static inline HRESULT IDWriteFontSet4_GetFontFaceReference(IDWriteFontSet4* This,UINT32 index,IDWriteFontFaceReference1 **reference) { + return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference); +} +static inline HRESULT IDWriteFontSet4_CreateFontResource(IDWriteFontSet4* This,UINT32 index,IDWriteFontResource **resource) { + return This->lpVtbl->CreateFontResource(This,index,resource); +} +static inline HRESULT IDWriteFontSet4_CreateFontFace(IDWriteFontSet4* This,UINT32 index,IDWriteFontFace5 **fontface) { + return This->lpVtbl->CreateFontFace(This,index,fontface); +} +static inline DWRITE_LOCALITY IDWriteFontSet4_GetFontLocality(IDWriteFontSet4* This,UINT32 index) { + return This->lpVtbl->GetFontLocality(This,index); +} +/*** IDWriteFontSet2 methods ***/ +static inline HANDLE IDWriteFontSet4_GetExpirationEvent(IDWriteFontSet4* This) { + return This->lpVtbl->GetExpirationEvent(This); +} +/*** IDWriteFontSet3 methods ***/ +static inline DWRITE_FONT_SOURCE_TYPE IDWriteFontSet4_GetFontSourceType(IDWriteFontSet4* This,UINT32 index) { + return This->lpVtbl->GetFontSourceType(This,index); +} +static inline UINT32 IDWriteFontSet4_GetFontSourceNameLength(IDWriteFontSet4* This,UINT32 index) { + return This->lpVtbl->GetFontSourceNameLength(This,index); +} +static inline HRESULT IDWriteFontSet4_GetFontSourceName(IDWriteFontSet4* This,UINT32 index,WCHAR *buffer,UINT32 buffer_size) { + return This->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size); +} +/*** IDWriteFontSet4 methods ***/ +static inline UINT32 IDWriteFontSet4_ConvertWeightStretchStyleToFontAxisValues(IDWriteFontSet4* This,const DWRITE_FONT_AXIS_VALUE *input_axis_values,UINT32 input_axis_count,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,float size,DWRITE_FONT_AXIS_VALUE *output_axis_values) { + return This->lpVtbl->ConvertWeightStretchStyleToFontAxisValues(This,input_axis_values,input_axis_count,weight,stretch,style,size,output_axis_values); +} +static inline HRESULT IDWriteFontSet4_GetMatchingFonts(IDWriteFontSet4* This,const WCHAR *family_name,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 axis_value_count,DWRITE_FONT_SIMULATIONS allowed_simulations,IDWriteFontSet4 **fonts) { + return This->lpVtbl->IDWriteFontSet4_GetMatchingFonts(This,family_name,axis_values,axis_value_count,allowed_simulations,fonts); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontSet4_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFace3 interface + */ +#ifndef __IDWriteFontFace3_INTERFACE_DEFINED__ +#define __IDWriteFontFace3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFace3, 0xd37d7598, 0x09be, 0x4222, 0xa2,0x36, 0x20,0x81,0x34,0x1c,0xc1,0xf2); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("d37d7598-09be-4222-a236-2081341cc1f2") +IDWriteFontFace3 : public IDWriteFontFace2 +{ + virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( + IDWriteFontFaceReference **reference) = 0; + + virtual void STDMETHODCALLTYPE GetPanose( + DWRITE_PANOSE *panose) = 0; + + virtual DWRITE_FONT_WEIGHT STDMETHODCALLTYPE GetWeight( + ) = 0; + + virtual DWRITE_FONT_STRETCH STDMETHODCALLTYPE GetStretch( + ) = 0; + + virtual DWRITE_FONT_STYLE STDMETHODCALLTYPE GetStyle( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFamilyNames( + IDWriteLocalizedStrings **names) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFaceNames( + IDWriteLocalizedStrings **names) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetInformationalStrings( + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings **strings, + WINBOOL *exists) = 0; + + virtual WINBOOL STDMETHODCALLTYPE HasCharacter( + UINT32 character) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode( + FLOAT emsize, + FLOAT dpi_x, + FLOAT dpi_y, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE1 *rendering_mode, + DWRITE_GRID_FIT_MODE *gridfit_mode) = 0; + + virtual WINBOOL STDMETHODCALLTYPE IsCharacterLocal( + UINT32 character) = 0; + + virtual WINBOOL STDMETHODCALLTYPE IsGlyphLocal( + UINT16 glyph) = 0; + + virtual HRESULT STDMETHODCALLTYPE AreCharactersLocal( + const WCHAR *characters, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local) = 0; + + virtual HRESULT STDMETHODCALLTYPE AreGlyphsLocal( + const UINT16 *glyphs, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFace3, 0xd37d7598, 0x09be, 0x4222, 0xa2,0x36, 0x20,0x81,0x34,0x1c,0xc1,0xf2) +#endif +#else +typedef struct IDWriteFontFace3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFace3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFace3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFace3 *This); + + /*** IDWriteFontFace methods ***/ + DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( + IDWriteFontFace3 *This); + + HRESULT (STDMETHODCALLTYPE *GetFiles)( + IDWriteFontFace3 *This, + UINT32 *number_of_files, + IDWriteFontFile **fontfiles); + + UINT32 (STDMETHODCALLTYPE *GetIndex)( + IDWriteFontFace3 *This); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFontFace3 *This); + + WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( + IDWriteFontFace3 *This); + + void (STDMETHODCALLTYPE *GetMetrics)( + IDWriteFontFace3 *This, + DWRITE_FONT_METRICS *metrics); + + UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( + IDWriteFontFace3 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( + IDWriteFontFace3 *This, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( + IDWriteFontFace3 *This, + const UINT32 *codepoints, + UINT32 count, + UINT16 *glyph_indices); + + HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( + IDWriteFontFace3 *This, + UINT32 table_tag, + const void **table_data, + UINT32 *table_size, + void **context, + WINBOOL *exists); + + void (STDMETHODCALLTYPE *ReleaseFontTable)( + IDWriteFontFace3 *This, + void *table_context); + + HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( + IDWriteFontFace3 *This, + FLOAT emSize, + const UINT16 *glyph_indices, + const FLOAT *glyph_advances, + const DWRITE_GLYPH_OFFSET *glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink *geometrysink); + + HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( + IDWriteFontFace3 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( + IDWriteFontFace3 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( + IDWriteFontFace3 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + /*** IDWriteFontFace1 methods ***/ + void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)( + IDWriteFontFace3 *This, + DWRITE_FONT_METRICS1 *metrics); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)( + IDWriteFontFace3 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS1 *metrics); + + void (STDMETHODCALLTYPE *GetCaretMetrics)( + IDWriteFontFace3 *This, + DWRITE_CARET_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( + IDWriteFontFace3 *This, + UINT32 max_count, + DWRITE_UNICODE_RANGE *ranges, + UINT32 *count); + + WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( + IDWriteFontFace3 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)( + IDWriteFontFace3 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)( + IDWriteFontFace3 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances); + + HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)( + IDWriteFontFace3 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *adjustments); + + WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)( + IDWriteFontFace3 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)( + IDWriteFontFace3 *This, + FLOAT font_emsize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)( + IDWriteFontFace3 *This, + UINT32 glyph_count, + const UINT16 *nominal_indices, + UINT16 *vertical_indices); + + WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)( + IDWriteFontFace3 *This); + + /*** IDWriteFontFace2 methods ***/ + WINBOOL (STDMETHODCALLTYPE *IsColorFont)( + IDWriteFontFace3 *This); + + UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)( + IDWriteFontFace3 *This); + + UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)( + IDWriteFontFace3 *This); + + HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)( + IDWriteFontFace3 *This, + UINT32 palette_index, + UINT32 first_entry_index, + UINT32 entry_count, + DWRITE_COLOR_F *entries); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)( + IDWriteFontFace3 *This, + FLOAT fontEmSize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuringmode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *renderingmode, + DWRITE_GRID_FIT_MODE *gridfitmode); + + /*** IDWriteFontFace3 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontFace3 *This, + IDWriteFontFaceReference **reference); + + void (STDMETHODCALLTYPE *GetPanose)( + IDWriteFontFace3 *This, + DWRITE_PANOSE *panose); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( + IDWriteFontFace3 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( + IDWriteFontFace3 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( + IDWriteFontFace3 *This); + + HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( + IDWriteFontFace3 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetFaceNames)( + IDWriteFontFace3 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( + IDWriteFontFace3 *This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings **strings, + WINBOOL *exists); + + WINBOOL (STDMETHODCALLTYPE *HasCharacter)( + IDWriteFontFace3 *This, + UINT32 character); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)( + IDWriteFontFace3 *This, + FLOAT emsize, + FLOAT dpi_x, + FLOAT dpi_y, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE1 *rendering_mode, + DWRITE_GRID_FIT_MODE *gridfit_mode); + + WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)( + IDWriteFontFace3 *This, + UINT32 character); + + WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)( + IDWriteFontFace3 *This, + UINT16 glyph); + + HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)( + IDWriteFontFace3 *This, + const WCHAR *characters, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local); + + HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)( + IDWriteFontFace3 *This, + const UINT16 *glyphs, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local); + + END_INTERFACE +} IDWriteFontFace3Vtbl; + +interface IDWriteFontFace3 { + CONST_VTBL IDWriteFontFace3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFace3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFace3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFace3_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFace methods ***/ +#define IDWriteFontFace3_GetType(This) (This)->lpVtbl->GetType(This) +#define IDWriteFontFace3_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) +#define IDWriteFontFace3_GetIndex(This) (This)->lpVtbl->GetIndex(This) +#define IDWriteFontFace3_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +#define IDWriteFontFace3_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) +#define IDWriteFontFace3_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) +#define IDWriteFontFace3_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) +#define IDWriteFontFace3_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) +#define IDWriteFontFace3_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) +#define IDWriteFontFace3_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) +#define IDWriteFontFace3_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) +#define IDWriteFontFace3_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) +/*** IDWriteFontFace1 methods ***/ +#define IDWriteFontFace3_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics) +#define IDWriteFontFace3_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) +#define IDWriteFontFace3_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics) +#define IDWriteFontFace3_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFontFace3_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) +#define IDWriteFontFace3_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) +#define IDWriteFontFace3_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) +#define IDWriteFontFace3_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments) +#define IDWriteFontFace3_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) +#define IDWriteFontFace3_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) +#define IDWriteFontFace3_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) +/*** IDWriteFontFace2 methods ***/ +#define IDWriteFontFace3_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) +#define IDWriteFontFace3_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) +#define IDWriteFontFace3_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) +#define IDWriteFontFace3_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) +/*** IDWriteFontFace3 methods ***/ +#define IDWriteFontFace3_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference) +#define IDWriteFontFace3_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) +#define IDWriteFontFace3_GetWeight(This) (This)->lpVtbl->GetWeight(This) +#define IDWriteFontFace3_GetStretch(This) (This)->lpVtbl->GetStretch(This) +#define IDWriteFontFace3_GetStyle(This) (This)->lpVtbl->GetStyle(This) +#define IDWriteFontFace3_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names) +#define IDWriteFontFace3_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names) +#define IDWriteFontFace3_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) +#define IDWriteFontFace3_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character) +#define IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) +#define IDWriteFontFace3_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character) +#define IDWriteFontFace3_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph) +#define IDWriteFontFace3_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) +#define IDWriteFontFace3_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFace3_QueryInterface(IDWriteFontFace3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFace3_AddRef(IDWriteFontFace3* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFace3_Release(IDWriteFontFace3* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFace methods ***/ +static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace3_GetType(IDWriteFontFace3* This) { + return This->lpVtbl->GetType(This); +} +static inline HRESULT IDWriteFontFace3_GetFiles(IDWriteFontFace3* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { + return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); +} +static inline UINT32 IDWriteFontFace3_GetIndex(IDWriteFontFace3* This) { + return This->lpVtbl->GetIndex(This); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace3_GetSimulations(IDWriteFontFace3* This) { + return This->lpVtbl->GetSimulations(This); +} +static inline WINBOOL IDWriteFontFace3_IsSymbolFont(IDWriteFontFace3* This) { + return This->lpVtbl->IsSymbolFont(This); +} +static inline UINT16 IDWriteFontFace3_GetGlyphCount(IDWriteFontFace3* This) { + return This->lpVtbl->GetGlyphCount(This); +} +static inline HRESULT IDWriteFontFace3_GetDesignGlyphMetrics(IDWriteFontFace3* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); +} +static inline HRESULT IDWriteFontFace3_GetGlyphIndices(IDWriteFontFace3* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { + return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); +} +static inline HRESULT IDWriteFontFace3_TryGetFontTable(IDWriteFontFace3* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { + return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); +} +static inline void IDWriteFontFace3_ReleaseFontTable(IDWriteFontFace3* This,void *table_context) { + This->lpVtbl->ReleaseFontTable(This,table_context); +} +static inline HRESULT IDWriteFontFace3_GetGlyphRunOutline(IDWriteFontFace3* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) { + return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); +} +static inline HRESULT IDWriteFontFace3_GetGdiCompatibleGlyphMetrics(IDWriteFontFace3* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); +} +/*** IDWriteFontFace1 methods ***/ +static inline void IDWriteFontFace3_GetMetrics(IDWriteFontFace3* This,DWRITE_FONT_METRICS1 *metrics) { + This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace3_GetGdiCompatibleMetrics(IDWriteFontFace3* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) { + return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics); +} +static inline void IDWriteFontFace3_GetCaretMetrics(IDWriteFontFace3* This,DWRITE_CARET_METRICS *metrics) { + This->lpVtbl->GetCaretMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace3_GetUnicodeRanges(IDWriteFontFace3* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { + return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +} +static inline WINBOOL IDWriteFontFace3_IsMonospacedFont(IDWriteFontFace3* This) { + return This->lpVtbl->IsMonospacedFont(This); +} +static inline HRESULT IDWriteFontFace3_GetDesignGlyphAdvances(IDWriteFontFace3* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways); +} +static inline HRESULT IDWriteFontFace3_GetGdiCompatibleGlyphAdvances(IDWriteFontFace3* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) { + return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances); +} +static inline HRESULT IDWriteFontFace3_GetKerningPairAdjustments(IDWriteFontFace3* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) { + return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments); +} +static inline WINBOOL IDWriteFontFace3_HasKerningPairs(IDWriteFontFace3* This) { + return This->lpVtbl->HasKerningPairs(This); +} +static inline HRESULT IDWriteFontFace3_GetVerticalGlyphVariants(IDWriteFontFace3* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) { + return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices); +} +static inline WINBOOL IDWriteFontFace3_HasVerticalGlyphVariants(IDWriteFontFace3* This) { + return This->lpVtbl->HasVerticalGlyphVariants(This); +} +/*** IDWriteFontFace2 methods ***/ +static inline WINBOOL IDWriteFontFace3_IsColorFont(IDWriteFontFace3* This) { + return This->lpVtbl->IsColorFont(This); +} +static inline UINT32 IDWriteFontFace3_GetColorPaletteCount(IDWriteFontFace3* This) { + return This->lpVtbl->GetColorPaletteCount(This); +} +static inline UINT32 IDWriteFontFace3_GetPaletteEntryCount(IDWriteFontFace3* This) { + return This->lpVtbl->GetPaletteEntryCount(This); +} +static inline HRESULT IDWriteFontFace3_GetPaletteEntries(IDWriteFontFace3* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) { + return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries); +} +/*** IDWriteFontFace3 methods ***/ +static inline HRESULT IDWriteFontFace3_GetFontFaceReference(IDWriteFontFace3* This,IDWriteFontFaceReference **reference) { + return This->lpVtbl->GetFontFaceReference(This,reference); +} +static inline void IDWriteFontFace3_GetPanose(IDWriteFontFace3* This,DWRITE_PANOSE *panose) { + This->lpVtbl->GetPanose(This,panose); +} +static inline DWRITE_FONT_WEIGHT IDWriteFontFace3_GetWeight(IDWriteFontFace3* This) { + return This->lpVtbl->GetWeight(This); +} +static inline DWRITE_FONT_STRETCH IDWriteFontFace3_GetStretch(IDWriteFontFace3* This) { + return This->lpVtbl->GetStretch(This); +} +static inline DWRITE_FONT_STYLE IDWriteFontFace3_GetStyle(IDWriteFontFace3* This) { + return This->lpVtbl->GetStyle(This); +} +static inline HRESULT IDWriteFontFace3_GetFamilyNames(IDWriteFontFace3* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFamilyNames(This,names); +} +static inline HRESULT IDWriteFontFace3_GetFaceNames(IDWriteFontFace3* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFaceNames(This,names); +} +static inline HRESULT IDWriteFontFace3_GetInformationalStrings(IDWriteFontFace3* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { + return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +} +static inline WINBOOL IDWriteFontFace3_HasCharacter(IDWriteFontFace3* This,UINT32 character) { + return This->lpVtbl->HasCharacter(This,character); +} +static inline HRESULT IDWriteFontFace3_GetRecommendedRenderingMode(IDWriteFontFace3* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) { + return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode); +} +static inline WINBOOL IDWriteFontFace3_IsCharacterLocal(IDWriteFontFace3* This,UINT32 character) { + return This->lpVtbl->IsCharacterLocal(This,character); +} +static inline WINBOOL IDWriteFontFace3_IsGlyphLocal(IDWriteFontFace3* This,UINT16 glyph) { + return This->lpVtbl->IsGlyphLocal(This,glyph); +} +static inline HRESULT IDWriteFontFace3_AreCharactersLocal(IDWriteFontFace3* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { + return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local); +} +static inline HRESULT IDWriteFontFace3_AreGlyphsLocal(IDWriteFontFace3* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { + return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFace3_INTERFACE_DEFINED__ */ + +typedef struct DWRITE_LINE_METRICS1 { + UINT32 length; + UINT32 trailingWhitespaceLength; + UINT32 newlineLength; + FLOAT height; + FLOAT baseline; + WINBOOL isTrimmed; + FLOAT leadingBefore; + FLOAT leadingAfter; +} DWRITE_LINE_METRICS1; +typedef enum DWRITE_FONT_LINE_GAP_USAGE { + DWRITE_FONT_LINE_GAP_USAGE_DEFAULT = 0, + DWRITE_FONT_LINE_GAP_USAGE_DISABLED = 1, + DWRITE_FONT_LINE_GAP_USAGE_ENABLED = 2 +} DWRITE_FONT_LINE_GAP_USAGE; +typedef struct DWRITE_LINE_SPACING { + DWRITE_LINE_SPACING_METHOD method; + FLOAT height; + FLOAT baseline; + FLOAT leadingBefore; + DWRITE_FONT_LINE_GAP_USAGE fontLineGapUsage; +} DWRITE_LINE_SPACING; +/***************************************************************************** + * IDWriteTextFormat2 interface + */ +#ifndef __IDWriteTextFormat2_INTERFACE_DEFINED__ +#define __IDWriteTextFormat2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextFormat2, 0xf67e0edd, 0x9e3d, 0x4ecc, 0x8c,0x32, 0x41,0x83,0x25,0x3d,0xfe,0x70); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("f67e0edd-9e3d-4ecc-8c32-4183253dfe70") +IDWriteTextFormat2 : public IDWriteTextFormat1 +{ + virtual HRESULT STDMETHODCALLTYPE SetLineSpacing( + const DWRITE_LINE_SPACING *spacing) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLineSpacing( + DWRITE_LINE_SPACING *spacing) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextFormat2, 0xf67e0edd, 0x9e3d, 0x4ecc, 0x8c,0x32, 0x41,0x83,0x25,0x3d,0xfe,0x70) +#endif +#else +typedef struct IDWriteTextFormat2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextFormat2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextFormat2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextFormat2 *This); + + /*** IDWriteTextFormat methods ***/ + HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( + IDWriteTextFormat2 *This, + DWRITE_TEXT_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( + IDWriteTextFormat2 *This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( + IDWriteTextFormat2 *This, + DWRITE_WORD_WRAPPING wrapping); + + HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( + IDWriteTextFormat2 *This, + DWRITE_READING_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( + IDWriteTextFormat2 *This, + DWRITE_FLOW_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( + IDWriteTextFormat2 *This, + FLOAT tabstop); + + HRESULT (STDMETHODCALLTYPE *SetTrimming)( + IDWriteTextFormat2 *This, + const DWRITE_TRIMMING *trimming, + IDWriteInlineObject *trimming_sign); + + HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( + IDWriteTextFormat2 *This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); + + DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( + IDWriteTextFormat2 *This); + + DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( + IDWriteTextFormat2 *This); + + DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( + IDWriteTextFormat2 *This); + + DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( + IDWriteTextFormat2 *This); + + DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( + IDWriteTextFormat2 *This); + + FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( + IDWriteTextFormat2 *This); + + HRESULT (STDMETHODCALLTYPE *GetTrimming)( + IDWriteTextFormat2 *This, + DWRITE_TRIMMING *options, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( + IDWriteTextFormat2 *This, + DWRITE_LINE_SPACING_METHOD *method, + FLOAT *spacing, + FLOAT *baseline); + + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteTextFormat2 *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( + IDWriteTextFormat2 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( + IDWriteTextFormat2 *This, + WCHAR *name, + UINT32 size); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( + IDWriteTextFormat2 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( + IDWriteTextFormat2 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( + IDWriteTextFormat2 *This); + + FLOAT (STDMETHODCALLTYPE *GetFontSize)( + IDWriteTextFormat2 *This); + + UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( + IDWriteTextFormat2 *This); + + HRESULT (STDMETHODCALLTYPE *GetLocaleName)( + IDWriteTextFormat2 *This, + WCHAR *name, + UINT32 size); + + /*** IDWriteTextFormat1 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)( + IDWriteTextFormat2 *This, + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); + + DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)( + IDWriteTextFormat2 *This); + + HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)( + IDWriteTextFormat2 *This, + WINBOOL lastline_wrapping_enabled); + + WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)( + IDWriteTextFormat2 *This); + + HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)( + IDWriteTextFormat2 *This, + DWRITE_OPTICAL_ALIGNMENT alignment); + + DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)( + IDWriteTextFormat2 *This); + + HRESULT (STDMETHODCALLTYPE *SetFontFallback)( + IDWriteTextFormat2 *This, + IDWriteFontFallback *fallback); + + HRESULT (STDMETHODCALLTYPE *GetFontFallback)( + IDWriteTextFormat2 *This, + IDWriteFontFallback **fallback); + + /*** IDWriteTextFormat2 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_SetLineSpacing)( + IDWriteTextFormat2 *This, + const DWRITE_LINE_SPACING *spacing); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_GetLineSpacing)( + IDWriteTextFormat2 *This, + DWRITE_LINE_SPACING *spacing); + + END_INTERFACE +} IDWriteTextFormat2Vtbl; + +interface IDWriteTextFormat2 { + CONST_VTBL IDWriteTextFormat2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextFormat2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextFormat2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextFormat2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextFormat methods ***/ +#define IDWriteTextFormat2_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) +#define IDWriteTextFormat2_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) +#define IDWriteTextFormat2_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) +#define IDWriteTextFormat2_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) +#define IDWriteTextFormat2_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) +#define IDWriteTextFormat2_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) +#define IDWriteTextFormat2_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) +#define IDWriteTextFormat2_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) +#define IDWriteTextFormat2_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) +#define IDWriteTextFormat2_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) +#define IDWriteTextFormat2_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) +#define IDWriteTextFormat2_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) +#define IDWriteTextFormat2_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) +#define IDWriteTextFormat2_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) +#define IDWriteTextFormat2_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteTextFormat2_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This) +#define IDWriteTextFormat2_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size) +#define IDWriteTextFormat2_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This) +#define IDWriteTextFormat2_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This) +#define IDWriteTextFormat2_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This) +#define IDWriteTextFormat2_GetFontSize(This) (This)->lpVtbl->GetFontSize(This) +#define IDWriteTextFormat2_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This) +#define IDWriteTextFormat2_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size) +/*** IDWriteTextFormat1 methods ***/ +#define IDWriteTextFormat2_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation) +#define IDWriteTextFormat2_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) +#define IDWriteTextFormat2_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled) +#define IDWriteTextFormat2_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) +#define IDWriteTextFormat2_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment) +#define IDWriteTextFormat2_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) +#define IDWriteTextFormat2_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback) +#define IDWriteTextFormat2_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback) +/*** IDWriteTextFormat2 methods ***/ +#define IDWriteTextFormat2_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing) +#define IDWriteTextFormat2_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextFormat2_QueryInterface(IDWriteTextFormat2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextFormat2_AddRef(IDWriteTextFormat2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextFormat2_Release(IDWriteTextFormat2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextFormat methods ***/ +static inline HRESULT IDWriteTextFormat2_SetTextAlignment(IDWriteTextFormat2* This,DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This,alignment); +} +static inline HRESULT IDWriteTextFormat2_SetParagraphAlignment(IDWriteTextFormat2* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This,alignment); +} +static inline HRESULT IDWriteTextFormat2_SetWordWrapping(IDWriteTextFormat2* This,DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This,wrapping); +} +static inline HRESULT IDWriteTextFormat2_SetReadingDirection(IDWriteTextFormat2* This,DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This,direction); +} +static inline HRESULT IDWriteTextFormat2_SetFlowDirection(IDWriteTextFormat2* This,DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This,direction); +} +static inline HRESULT IDWriteTextFormat2_SetIncrementalTabStop(IDWriteTextFormat2* This,FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +} +static inline HRESULT IDWriteTextFormat2_SetTrimming(IDWriteTextFormat2* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { + return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +} +static inline DWRITE_TEXT_ALIGNMENT IDWriteTextFormat2_GetTextAlignment(IDWriteTextFormat2* This) { + return This->lpVtbl->GetTextAlignment(This); +} +static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat2_GetParagraphAlignment(IDWriteTextFormat2* This) { + return This->lpVtbl->GetParagraphAlignment(This); +} +static inline DWRITE_WORD_WRAPPING IDWriteTextFormat2_GetWordWrapping(IDWriteTextFormat2* This) { + return This->lpVtbl->GetWordWrapping(This); +} +static inline DWRITE_READING_DIRECTION IDWriteTextFormat2_GetReadingDirection(IDWriteTextFormat2* This) { + return This->lpVtbl->GetReadingDirection(This); +} +static inline DWRITE_FLOW_DIRECTION IDWriteTextFormat2_GetFlowDirection(IDWriteTextFormat2* This) { + return This->lpVtbl->GetFlowDirection(This); +} +static inline FLOAT IDWriteTextFormat2_GetIncrementalTabStop(IDWriteTextFormat2* This) { + return This->lpVtbl->GetIncrementalTabStop(This); +} +static inline HRESULT IDWriteTextFormat2_GetTrimming(IDWriteTextFormat2* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->GetTrimming(This,options,trimming_sign); +} +static inline HRESULT IDWriteTextFormat2_GetFontCollection(IDWriteTextFormat2* This,IDWriteFontCollection **collection) { + return This->lpVtbl->GetFontCollection(This,collection); +} +static inline UINT32 IDWriteTextFormat2_GetFontFamilyNameLength(IDWriteTextFormat2* This) { + return This->lpVtbl->GetFontFamilyNameLength(This); +} +static inline HRESULT IDWriteTextFormat2_GetFontFamilyName(IDWriteTextFormat2* This,WCHAR *name,UINT32 size) { + return This->lpVtbl->GetFontFamilyName(This,name,size); +} +static inline DWRITE_FONT_WEIGHT IDWriteTextFormat2_GetFontWeight(IDWriteTextFormat2* This) { + return This->lpVtbl->GetFontWeight(This); +} +static inline DWRITE_FONT_STYLE IDWriteTextFormat2_GetFontStyle(IDWriteTextFormat2* This) { + return This->lpVtbl->GetFontStyle(This); +} +static inline DWRITE_FONT_STRETCH IDWriteTextFormat2_GetFontStretch(IDWriteTextFormat2* This) { + return This->lpVtbl->GetFontStretch(This); +} +static inline FLOAT IDWriteTextFormat2_GetFontSize(IDWriteTextFormat2* This) { + return This->lpVtbl->GetFontSize(This); +} +static inline UINT32 IDWriteTextFormat2_GetLocaleNameLength(IDWriteTextFormat2* This) { + return This->lpVtbl->GetLocaleNameLength(This); +} +static inline HRESULT IDWriteTextFormat2_GetLocaleName(IDWriteTextFormat2* This,WCHAR *name,UINT32 size) { + return This->lpVtbl->GetLocaleName(This,name,size); +} +/*** IDWriteTextFormat1 methods ***/ +static inline HRESULT IDWriteTextFormat2_SetVerticalGlyphOrientation(IDWriteTextFormat2* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { + return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation); +} +static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextFormat2_GetVerticalGlyphOrientation(IDWriteTextFormat2* This) { + return This->lpVtbl->GetVerticalGlyphOrientation(This); +} +static inline HRESULT IDWriteTextFormat2_SetLastLineWrapping(IDWriteTextFormat2* This,WINBOOL lastline_wrapping_enabled) { + return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled); +} +static inline WINBOOL IDWriteTextFormat2_GetLastLineWrapping(IDWriteTextFormat2* This) { + return This->lpVtbl->GetLastLineWrapping(This); +} +static inline HRESULT IDWriteTextFormat2_SetOpticalAlignment(IDWriteTextFormat2* This,DWRITE_OPTICAL_ALIGNMENT alignment) { + return This->lpVtbl->SetOpticalAlignment(This,alignment); +} +static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextFormat2_GetOpticalAlignment(IDWriteTextFormat2* This) { + return This->lpVtbl->GetOpticalAlignment(This); +} +static inline HRESULT IDWriteTextFormat2_SetFontFallback(IDWriteTextFormat2* This,IDWriteFontFallback *fallback) { + return This->lpVtbl->SetFontFallback(This,fallback); +} +static inline HRESULT IDWriteTextFormat2_GetFontFallback(IDWriteTextFormat2* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetFontFallback(This,fallback); +} +/*** IDWriteTextFormat2 methods ***/ +static inline HRESULT IDWriteTextFormat2_SetLineSpacing(IDWriteTextFormat2* This,const DWRITE_LINE_SPACING *spacing) { + return This->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing); +} +static inline HRESULT IDWriteTextFormat2_GetLineSpacing(IDWriteTextFormat2* This,DWRITE_LINE_SPACING *spacing) { + return This->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextFormat2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextFormat3 interface + */ +#ifndef __IDWriteTextFormat3_INTERFACE_DEFINED__ +#define __IDWriteTextFormat3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextFormat3, 0x6d3b5641, 0xe550, 0x430d, 0xa8,0x5b, 0xb7,0xbf,0x48,0xa9,0x34,0x27); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("6d3b5641-e550-430d-a85b-b7bf48a93427") +IDWriteTextFormat3 : public IDWriteTextFormat2 +{ + virtual HRESULT STDMETHODCALLTYPE SetFontAxisValues( + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues( + DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values) = 0; + + virtual DWRITE_AUTOMATIC_FONT_AXES STDMETHODCALLTYPE GetAutomaticFontAxes( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAutomaticFontAxes( + DWRITE_AUTOMATIC_FONT_AXES axes) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextFormat3, 0x6d3b5641, 0xe550, 0x430d, 0xa8,0x5b, 0xb7,0xbf,0x48,0xa9,0x34,0x27) +#endif +#else +typedef struct IDWriteTextFormat3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextFormat3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextFormat3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextFormat3 *This); + + /*** IDWriteTextFormat methods ***/ + HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( + IDWriteTextFormat3 *This, + DWRITE_TEXT_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( + IDWriteTextFormat3 *This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( + IDWriteTextFormat3 *This, + DWRITE_WORD_WRAPPING wrapping); + + HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( + IDWriteTextFormat3 *This, + DWRITE_READING_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( + IDWriteTextFormat3 *This, + DWRITE_FLOW_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( + IDWriteTextFormat3 *This, + FLOAT tabstop); + + HRESULT (STDMETHODCALLTYPE *SetTrimming)( + IDWriteTextFormat3 *This, + const DWRITE_TRIMMING *trimming, + IDWriteInlineObject *trimming_sign); + + HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( + IDWriteTextFormat3 *This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); + + DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( + IDWriteTextFormat3 *This); + + DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( + IDWriteTextFormat3 *This); + + DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( + IDWriteTextFormat3 *This); + + DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( + IDWriteTextFormat3 *This); + + DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( + IDWriteTextFormat3 *This); + + FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( + IDWriteTextFormat3 *This); + + HRESULT (STDMETHODCALLTYPE *GetTrimming)( + IDWriteTextFormat3 *This, + DWRITE_TRIMMING *options, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( + IDWriteTextFormat3 *This, + DWRITE_LINE_SPACING_METHOD *method, + FLOAT *spacing, + FLOAT *baseline); + + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteTextFormat3 *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( + IDWriteTextFormat3 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( + IDWriteTextFormat3 *This, + WCHAR *name, + UINT32 size); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( + IDWriteTextFormat3 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( + IDWriteTextFormat3 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( + IDWriteTextFormat3 *This); + + FLOAT (STDMETHODCALLTYPE *GetFontSize)( + IDWriteTextFormat3 *This); + + UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( + IDWriteTextFormat3 *This); + + HRESULT (STDMETHODCALLTYPE *GetLocaleName)( + IDWriteTextFormat3 *This, + WCHAR *name, + UINT32 size); + + /*** IDWriteTextFormat1 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)( + IDWriteTextFormat3 *This, + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); + + DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)( + IDWriteTextFormat3 *This); + + HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)( + IDWriteTextFormat3 *This, + WINBOOL lastline_wrapping_enabled); + + WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)( + IDWriteTextFormat3 *This); + + HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)( + IDWriteTextFormat3 *This, + DWRITE_OPTICAL_ALIGNMENT alignment); + + DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)( + IDWriteTextFormat3 *This); + + HRESULT (STDMETHODCALLTYPE *SetFontFallback)( + IDWriteTextFormat3 *This, + IDWriteFontFallback *fallback); + + HRESULT (STDMETHODCALLTYPE *GetFontFallback)( + IDWriteTextFormat3 *This, + IDWriteFontFallback **fallback); + + /*** IDWriteTextFormat2 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_SetLineSpacing)( + IDWriteTextFormat3 *This, + const DWRITE_LINE_SPACING *spacing); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_GetLineSpacing)( + IDWriteTextFormat3 *This, + DWRITE_LINE_SPACING *spacing); + + /*** IDWriteTextFormat3 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetFontAxisValues)( + IDWriteTextFormat3 *This, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values); + + UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)( + IDWriteTextFormat3 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)( + IDWriteTextFormat3 *This, + DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values); + + DWRITE_AUTOMATIC_FONT_AXES (STDMETHODCALLTYPE *GetAutomaticFontAxes)( + IDWriteTextFormat3 *This); + + HRESULT (STDMETHODCALLTYPE *SetAutomaticFontAxes)( + IDWriteTextFormat3 *This, + DWRITE_AUTOMATIC_FONT_AXES axes); + + END_INTERFACE +} IDWriteTextFormat3Vtbl; + +interface IDWriteTextFormat3 { + CONST_VTBL IDWriteTextFormat3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextFormat3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextFormat3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextFormat3_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextFormat methods ***/ +#define IDWriteTextFormat3_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) +#define IDWriteTextFormat3_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) +#define IDWriteTextFormat3_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) +#define IDWriteTextFormat3_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) +#define IDWriteTextFormat3_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) +#define IDWriteTextFormat3_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) +#define IDWriteTextFormat3_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) +#define IDWriteTextFormat3_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) +#define IDWriteTextFormat3_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) +#define IDWriteTextFormat3_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) +#define IDWriteTextFormat3_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) +#define IDWriteTextFormat3_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) +#define IDWriteTextFormat3_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) +#define IDWriteTextFormat3_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) +#define IDWriteTextFormat3_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteTextFormat3_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This) +#define IDWriteTextFormat3_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size) +#define IDWriteTextFormat3_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This) +#define IDWriteTextFormat3_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This) +#define IDWriteTextFormat3_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This) +#define IDWriteTextFormat3_GetFontSize(This) (This)->lpVtbl->GetFontSize(This) +#define IDWriteTextFormat3_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This) +#define IDWriteTextFormat3_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size) +/*** IDWriteTextFormat1 methods ***/ +#define IDWriteTextFormat3_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation) +#define IDWriteTextFormat3_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) +#define IDWriteTextFormat3_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled) +#define IDWriteTextFormat3_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) +#define IDWriteTextFormat3_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment) +#define IDWriteTextFormat3_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) +#define IDWriteTextFormat3_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback) +#define IDWriteTextFormat3_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback) +/*** IDWriteTextFormat2 methods ***/ +#define IDWriteTextFormat3_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing) +#define IDWriteTextFormat3_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing) +/*** IDWriteTextFormat3 methods ***/ +#define IDWriteTextFormat3_SetFontAxisValues(This,axis_values,num_values) (This)->lpVtbl->SetFontAxisValues(This,axis_values,num_values) +#define IDWriteTextFormat3_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This) +#define IDWriteTextFormat3_GetFontAxisValues(This,axis_values,num_values) (This)->lpVtbl->GetFontAxisValues(This,axis_values,num_values) +#define IDWriteTextFormat3_GetAutomaticFontAxes(This) (This)->lpVtbl->GetAutomaticFontAxes(This) +#define IDWriteTextFormat3_SetAutomaticFontAxes(This,axes) (This)->lpVtbl->SetAutomaticFontAxes(This,axes) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextFormat3_QueryInterface(IDWriteTextFormat3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextFormat3_AddRef(IDWriteTextFormat3* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextFormat3_Release(IDWriteTextFormat3* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextFormat methods ***/ +static inline HRESULT IDWriteTextFormat3_SetTextAlignment(IDWriteTextFormat3* This,DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This,alignment); +} +static inline HRESULT IDWriteTextFormat3_SetParagraphAlignment(IDWriteTextFormat3* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This,alignment); +} +static inline HRESULT IDWriteTextFormat3_SetWordWrapping(IDWriteTextFormat3* This,DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This,wrapping); +} +static inline HRESULT IDWriteTextFormat3_SetReadingDirection(IDWriteTextFormat3* This,DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This,direction); +} +static inline HRESULT IDWriteTextFormat3_SetFlowDirection(IDWriteTextFormat3* This,DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This,direction); +} +static inline HRESULT IDWriteTextFormat3_SetIncrementalTabStop(IDWriteTextFormat3* This,FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +} +static inline HRESULT IDWriteTextFormat3_SetTrimming(IDWriteTextFormat3* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { + return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +} +static inline DWRITE_TEXT_ALIGNMENT IDWriteTextFormat3_GetTextAlignment(IDWriteTextFormat3* This) { + return This->lpVtbl->GetTextAlignment(This); +} +static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat3_GetParagraphAlignment(IDWriteTextFormat3* This) { + return This->lpVtbl->GetParagraphAlignment(This); +} +static inline DWRITE_WORD_WRAPPING IDWriteTextFormat3_GetWordWrapping(IDWriteTextFormat3* This) { + return This->lpVtbl->GetWordWrapping(This); +} +static inline DWRITE_READING_DIRECTION IDWriteTextFormat3_GetReadingDirection(IDWriteTextFormat3* This) { + return This->lpVtbl->GetReadingDirection(This); +} +static inline DWRITE_FLOW_DIRECTION IDWriteTextFormat3_GetFlowDirection(IDWriteTextFormat3* This) { + return This->lpVtbl->GetFlowDirection(This); +} +static inline FLOAT IDWriteTextFormat3_GetIncrementalTabStop(IDWriteTextFormat3* This) { + return This->lpVtbl->GetIncrementalTabStop(This); +} +static inline HRESULT IDWriteTextFormat3_GetTrimming(IDWriteTextFormat3* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->GetTrimming(This,options,trimming_sign); +} +static inline HRESULT IDWriteTextFormat3_GetFontCollection(IDWriteTextFormat3* This,IDWriteFontCollection **collection) { + return This->lpVtbl->GetFontCollection(This,collection); +} +static inline UINT32 IDWriteTextFormat3_GetFontFamilyNameLength(IDWriteTextFormat3* This) { + return This->lpVtbl->GetFontFamilyNameLength(This); +} +static inline HRESULT IDWriteTextFormat3_GetFontFamilyName(IDWriteTextFormat3* This,WCHAR *name,UINT32 size) { + return This->lpVtbl->GetFontFamilyName(This,name,size); +} +static inline DWRITE_FONT_WEIGHT IDWriteTextFormat3_GetFontWeight(IDWriteTextFormat3* This) { + return This->lpVtbl->GetFontWeight(This); +} +static inline DWRITE_FONT_STYLE IDWriteTextFormat3_GetFontStyle(IDWriteTextFormat3* This) { + return This->lpVtbl->GetFontStyle(This); +} +static inline DWRITE_FONT_STRETCH IDWriteTextFormat3_GetFontStretch(IDWriteTextFormat3* This) { + return This->lpVtbl->GetFontStretch(This); +} +static inline FLOAT IDWriteTextFormat3_GetFontSize(IDWriteTextFormat3* This) { + return This->lpVtbl->GetFontSize(This); +} +static inline UINT32 IDWriteTextFormat3_GetLocaleNameLength(IDWriteTextFormat3* This) { + return This->lpVtbl->GetLocaleNameLength(This); +} +static inline HRESULT IDWriteTextFormat3_GetLocaleName(IDWriteTextFormat3* This,WCHAR *name,UINT32 size) { + return This->lpVtbl->GetLocaleName(This,name,size); +} +/*** IDWriteTextFormat1 methods ***/ +static inline HRESULT IDWriteTextFormat3_SetVerticalGlyphOrientation(IDWriteTextFormat3* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { + return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation); +} +static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextFormat3_GetVerticalGlyphOrientation(IDWriteTextFormat3* This) { + return This->lpVtbl->GetVerticalGlyphOrientation(This); +} +static inline HRESULT IDWriteTextFormat3_SetLastLineWrapping(IDWriteTextFormat3* This,WINBOOL lastline_wrapping_enabled) { + return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled); +} +static inline WINBOOL IDWriteTextFormat3_GetLastLineWrapping(IDWriteTextFormat3* This) { + return This->lpVtbl->GetLastLineWrapping(This); +} +static inline HRESULT IDWriteTextFormat3_SetOpticalAlignment(IDWriteTextFormat3* This,DWRITE_OPTICAL_ALIGNMENT alignment) { + return This->lpVtbl->SetOpticalAlignment(This,alignment); +} +static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextFormat3_GetOpticalAlignment(IDWriteTextFormat3* This) { + return This->lpVtbl->GetOpticalAlignment(This); +} +static inline HRESULT IDWriteTextFormat3_SetFontFallback(IDWriteTextFormat3* This,IDWriteFontFallback *fallback) { + return This->lpVtbl->SetFontFallback(This,fallback); +} +static inline HRESULT IDWriteTextFormat3_GetFontFallback(IDWriteTextFormat3* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetFontFallback(This,fallback); +} +/*** IDWriteTextFormat2 methods ***/ +static inline HRESULT IDWriteTextFormat3_SetLineSpacing(IDWriteTextFormat3* This,const DWRITE_LINE_SPACING *spacing) { + return This->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing); +} +static inline HRESULT IDWriteTextFormat3_GetLineSpacing(IDWriteTextFormat3* This,DWRITE_LINE_SPACING *spacing) { + return This->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing); +} +/*** IDWriteTextFormat3 methods ***/ +static inline HRESULT IDWriteTextFormat3_SetFontAxisValues(IDWriteTextFormat3* This,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values) { + return This->lpVtbl->SetFontAxisValues(This,axis_values,num_values); +} +static inline UINT32 IDWriteTextFormat3_GetFontAxisValueCount(IDWriteTextFormat3* This) { + return This->lpVtbl->GetFontAxisValueCount(This); +} +static inline HRESULT IDWriteTextFormat3_GetFontAxisValues(IDWriteTextFormat3* This,DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values) { + return This->lpVtbl->GetFontAxisValues(This,axis_values,num_values); +} +static inline DWRITE_AUTOMATIC_FONT_AXES IDWriteTextFormat3_GetAutomaticFontAxes(IDWriteTextFormat3* This) { + return This->lpVtbl->GetAutomaticFontAxes(This); +} +static inline HRESULT IDWriteTextFormat3_SetAutomaticFontAxes(IDWriteTextFormat3* This,DWRITE_AUTOMATIC_FONT_AXES axes) { + return This->lpVtbl->SetAutomaticFontAxes(This,axes); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextFormat3_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextLayout3 interface + */ +#ifndef __IDWriteTextLayout3_INTERFACE_DEFINED__ +#define __IDWriteTextLayout3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextLayout3, 0x07ddcd52, 0x020e, 0x4de8, 0xac,0x33, 0x6c,0x95,0x3d,0x83,0xf9,0x2d); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("07ddcd52-020e-4de8-ac33-6c953d83f92d") +IDWriteTextLayout3 : public IDWriteTextLayout2 +{ + virtual HRESULT STDMETHODCALLTYPE InvalidateLayout( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetLineSpacing( + const DWRITE_LINE_SPACING *spacing) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLineSpacing( + DWRITE_LINE_SPACING *spacing) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLineMetrics( + DWRITE_LINE_METRICS1 *metrics, + UINT32 max_count, + UINT32 *count) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextLayout3, 0x07ddcd52, 0x020e, 0x4de8, 0xac,0x33, 0x6c,0x95,0x3d,0x83,0xf9,0x2d) +#endif +#else +typedef struct IDWriteTextLayout3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextLayout3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextLayout3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextLayout3 *This); + + /*** IDWriteTextFormat methods ***/ + HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( + IDWriteTextLayout3 *This, + DWRITE_TEXT_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( + IDWriteTextLayout3 *This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( + IDWriteTextLayout3 *This, + DWRITE_WORD_WRAPPING wrapping); + + HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( + IDWriteTextLayout3 *This, + DWRITE_READING_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( + IDWriteTextLayout3 *This, + DWRITE_FLOW_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( + IDWriteTextLayout3 *This, + FLOAT tabstop); + + HRESULT (STDMETHODCALLTYPE *SetTrimming)( + IDWriteTextLayout3 *This, + const DWRITE_TRIMMING *trimming, + IDWriteInlineObject *trimming_sign); + + HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( + IDWriteTextLayout3 *This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); + + DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( + IDWriteTextLayout3 *This); + + DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( + IDWriteTextLayout3 *This); + + DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( + IDWriteTextLayout3 *This); + + DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( + IDWriteTextLayout3 *This); + + DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( + IDWriteTextLayout3 *This); + + FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( + IDWriteTextLayout3 *This); + + HRESULT (STDMETHODCALLTYPE *GetTrimming)( + IDWriteTextLayout3 *This, + DWRITE_TRIMMING *options, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( + IDWriteTextLayout3 *This, + DWRITE_LINE_SPACING_METHOD *method, + FLOAT *spacing, + FLOAT *baseline); + + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteTextLayout3 *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( + IDWriteTextLayout3 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( + IDWriteTextLayout3 *This, + WCHAR *name, + UINT32 size); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( + IDWriteTextLayout3 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( + IDWriteTextLayout3 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( + IDWriteTextLayout3 *This); + + FLOAT (STDMETHODCALLTYPE *GetFontSize)( + IDWriteTextLayout3 *This); + + UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( + IDWriteTextLayout3 *This); + + HRESULT (STDMETHODCALLTYPE *GetLocaleName)( + IDWriteTextLayout3 *This, + WCHAR *name, + UINT32 size); + + /*** IDWriteTextLayout methods ***/ + HRESULT (STDMETHODCALLTYPE *SetMaxWidth)( + IDWriteTextLayout3 *This, + FLOAT maxWidth); + + HRESULT (STDMETHODCALLTYPE *SetMaxHeight)( + IDWriteTextLayout3 *This, + FLOAT maxHeight); + + HRESULT (STDMETHODCALLTYPE *SetFontCollection)( + IDWriteTextLayout3 *This, + IDWriteFontCollection *collection, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)( + IDWriteTextLayout3 *This, + const WCHAR *name, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontWeight)( + IDWriteTextLayout3 *This, + DWRITE_FONT_WEIGHT weight, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontStyle)( + IDWriteTextLayout3 *This, + DWRITE_FONT_STYLE style, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontStretch)( + IDWriteTextLayout3 *This, + DWRITE_FONT_STRETCH stretch, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontSize)( + IDWriteTextLayout3 *This, + FLOAT size, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetUnderline)( + IDWriteTextLayout3 *This, + WINBOOL underline, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetStrikethrough)( + IDWriteTextLayout3 *This, + WINBOOL strikethrough, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)( + IDWriteTextLayout3 *This, + IUnknown *effect, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetInlineObject)( + IDWriteTextLayout3 *This, + IDWriteInlineObject *object, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetTypography)( + IDWriteTextLayout3 *This, + IDWriteTypography *typography, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetLocaleName)( + IDWriteTextLayout3 *This, + const WCHAR *locale, + DWRITE_TEXT_RANGE range); + + FLOAT (STDMETHODCALLTYPE *GetMaxWidth)( + IDWriteTextLayout3 *This); + + FLOAT (STDMETHODCALLTYPE *GetMaxHeight)( + IDWriteTextLayout3 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)( + IDWriteTextLayout3 *This, + UINT32 pos, + IDWriteFontCollection **collection, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)( + IDWriteTextLayout3 *This, + UINT32 pos, + UINT32 *len, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)( + IDWriteTextLayout3 *This, + UINT32 position, + WCHAR *name, + UINT32 name_size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)( + IDWriteTextLayout3 *This, + UINT32 position, + DWRITE_FONT_WEIGHT *weight, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)( + IDWriteTextLayout3 *This, + UINT32 currentPosition, + DWRITE_FONT_STYLE *style, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)( + IDWriteTextLayout3 *This, + UINT32 position, + DWRITE_FONT_STRETCH *stretch, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)( + IDWriteTextLayout3 *This, + UINT32 position, + FLOAT *size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetUnderline)( + IDWriteTextLayout3 *This, + UINT32 position, + WINBOOL *has_underline, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetStrikethrough)( + IDWriteTextLayout3 *This, + UINT32 position, + WINBOOL *has_strikethrough, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)( + IDWriteTextLayout3 *This, + UINT32 position, + IUnknown **effect, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetInlineObject)( + IDWriteTextLayout3 *This, + UINT32 position, + IDWriteInlineObject **object, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetTypography)( + IDWriteTextLayout3 *This, + UINT32 position, + IDWriteTypography **typography, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)( + IDWriteTextLayout3 *This, + UINT32 position, + UINT32 *length, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)( + IDWriteTextLayout3 *This, + UINT32 position, + WCHAR *name, + UINT32 name_size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *Draw)( + IDWriteTextLayout3 *This, + void *context, + IDWriteTextRenderer *renderer, + FLOAT originX, + FLOAT originY); + + HRESULT (STDMETHODCALLTYPE *GetLineMetrics)( + IDWriteTextLayout3 *This, + DWRITE_LINE_METRICS *metrics, + UINT32 max_count, + UINT32 *actual_count); + + HRESULT (STDMETHODCALLTYPE *GetMetrics)( + IDWriteTextLayout3 *This, + DWRITE_TEXT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)( + IDWriteTextLayout3 *This, + DWRITE_OVERHANG_METRICS *overhangs); + + HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)( + IDWriteTextLayout3 *This, + DWRITE_CLUSTER_METRICS *metrics, + UINT32 max_count, + UINT32 *act_count); + + HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)( + IDWriteTextLayout3 *This, + FLOAT *min_width); + + HRESULT (STDMETHODCALLTYPE *HitTestPoint)( + IDWriteTextLayout3 *This, + FLOAT pointX, + FLOAT pointY, + WINBOOL *is_trailinghit, + WINBOOL *is_inside, + DWRITE_HIT_TEST_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)( + IDWriteTextLayout3 *This, + UINT32 textPosition, + WINBOOL is_trailinghit, + FLOAT *pointX, + FLOAT *pointY, + DWRITE_HIT_TEST_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *HitTestTextRange)( + IDWriteTextLayout3 *This, + UINT32 textPosition, + UINT32 textLength, + FLOAT originX, + FLOAT originY, + DWRITE_HIT_TEST_METRICS *metrics, + UINT32 max_metricscount, + UINT32 *actual_metricscount); + + /*** IDWriteTextLayout1 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetPairKerning)( + IDWriteTextLayout3 *This, + WINBOOL is_pairkerning_enabled, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *GetPairKerning)( + IDWriteTextLayout3 *This, + UINT32 position, + WINBOOL *is_pairkerning_enabled, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *SetCharacterSpacing)( + IDWriteTextLayout3 *This, + FLOAT leading_spacing, + FLOAT trailing_spacing, + FLOAT minimum_advance_width, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *GetCharacterSpacing)( + IDWriteTextLayout3 *This, + UINT32 position, + FLOAT *leading_spacing, + FLOAT *trailing_spacing, + FLOAT *minimum_advance_width, + DWRITE_TEXT_RANGE *range); + + /*** IDWriteTextLayout2 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout2_GetMetrics)( + IDWriteTextLayout3 *This, + DWRITE_TEXT_METRICS1 *metrics); + + HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)( + IDWriteTextLayout3 *This, + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); + + DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)( + IDWriteTextLayout3 *This); + + HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)( + IDWriteTextLayout3 *This, + WINBOOL lastline_wrapping_enabled); + + WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)( + IDWriteTextLayout3 *This); + + HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)( + IDWriteTextLayout3 *This, + DWRITE_OPTICAL_ALIGNMENT alignment); + + DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)( + IDWriteTextLayout3 *This); + + HRESULT (STDMETHODCALLTYPE *SetFontFallback)( + IDWriteTextLayout3 *This, + IDWriteFontFallback *fallback); + + HRESULT (STDMETHODCALLTYPE *GetFontFallback)( + IDWriteTextLayout3 *This, + IDWriteFontFallback **fallback); + + /*** IDWriteTextLayout3 methods ***/ + HRESULT (STDMETHODCALLTYPE *InvalidateLayout)( + IDWriteTextLayout3 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_SetLineSpacing)( + IDWriteTextLayout3 *This, + const DWRITE_LINE_SPACING *spacing); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineSpacing)( + IDWriteTextLayout3 *This, + DWRITE_LINE_SPACING *spacing); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineMetrics)( + IDWriteTextLayout3 *This, + DWRITE_LINE_METRICS1 *metrics, + UINT32 max_count, + UINT32 *count); + + END_INTERFACE +} IDWriteTextLayout3Vtbl; + +interface IDWriteTextLayout3 { + CONST_VTBL IDWriteTextLayout3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextLayout3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextLayout3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextLayout3_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextFormat methods ***/ +#define IDWriteTextLayout3_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) +#define IDWriteTextLayout3_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) +#define IDWriteTextLayout3_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) +#define IDWriteTextLayout3_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) +#define IDWriteTextLayout3_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) +#define IDWriteTextLayout3_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) +#define IDWriteTextLayout3_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) +#define IDWriteTextLayout3_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) +#define IDWriteTextLayout3_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) +#define IDWriteTextLayout3_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) +#define IDWriteTextLayout3_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) +#define IDWriteTextLayout3_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) +#define IDWriteTextLayout3_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) +#define IDWriteTextLayout3_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) +/*** IDWriteTextLayout methods ***/ +#define IDWriteTextLayout3_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth) +#define IDWriteTextLayout3_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight) +#define IDWriteTextLayout3_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range) +#define IDWriteTextLayout3_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range) +#define IDWriteTextLayout3_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range) +#define IDWriteTextLayout3_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range) +#define IDWriteTextLayout3_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range) +#define IDWriteTextLayout3_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range) +#define IDWriteTextLayout3_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range) +#define IDWriteTextLayout3_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range) +#define IDWriteTextLayout3_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range) +#define IDWriteTextLayout3_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range) +#define IDWriteTextLayout3_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range) +#define IDWriteTextLayout3_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range) +#define IDWriteTextLayout3_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This) +#define IDWriteTextLayout3_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This) +#define IDWriteTextLayout3_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range) +#define IDWriteTextLayout3_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range) +#define IDWriteTextLayout3_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range) +#define IDWriteTextLayout3_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range) +#define IDWriteTextLayout3_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range) +#define IDWriteTextLayout3_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range) +#define IDWriteTextLayout3_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range) +#define IDWriteTextLayout3_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range) +#define IDWriteTextLayout3_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range) +#define IDWriteTextLayout3_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range) +#define IDWriteTextLayout3_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range) +#define IDWriteTextLayout3_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range) +#define IDWriteTextLayout3_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range) +#define IDWriteTextLayout3_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range) +#define IDWriteTextLayout3_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY) +#define IDWriteTextLayout3_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs) +#define IDWriteTextLayout3_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count) +#define IDWriteTextLayout3_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width) +#define IDWriteTextLayout3_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) +#define IDWriteTextLayout3_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) +#define IDWriteTextLayout3_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) +/*** IDWriteTextLayout1 methods ***/ +#define IDWriteTextLayout3_SetPairKerning(This,is_pairkerning_enabled,range) (This)->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range) +#define IDWriteTextLayout3_GetPairKerning(This,position,is_pairkerning_enabled,range) (This)->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range) +#define IDWriteTextLayout3_SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) +#define IDWriteTextLayout3_GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) +/*** IDWriteTextLayout2 methods ***/ +#define IDWriteTextLayout3_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics) +#define IDWriteTextLayout3_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation) +#define IDWriteTextLayout3_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) +#define IDWriteTextLayout3_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled) +#define IDWriteTextLayout3_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) +#define IDWriteTextLayout3_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment) +#define IDWriteTextLayout3_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) +#define IDWriteTextLayout3_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback) +#define IDWriteTextLayout3_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback) +/*** IDWriteTextLayout3 methods ***/ +#define IDWriteTextLayout3_InvalidateLayout(This) (This)->lpVtbl->InvalidateLayout(This) +#define IDWriteTextLayout3_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing) +#define IDWriteTextLayout3_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing) +#define IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count) (This)->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextLayout3_QueryInterface(IDWriteTextLayout3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextLayout3_AddRef(IDWriteTextLayout3* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextLayout3_Release(IDWriteTextLayout3* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextFormat methods ***/ +static inline HRESULT IDWriteTextLayout3_SetTextAlignment(IDWriteTextLayout3* This,DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This,alignment); +} +static inline HRESULT IDWriteTextLayout3_SetParagraphAlignment(IDWriteTextLayout3* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This,alignment); +} +static inline HRESULT IDWriteTextLayout3_SetWordWrapping(IDWriteTextLayout3* This,DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This,wrapping); +} +static inline HRESULT IDWriteTextLayout3_SetReadingDirection(IDWriteTextLayout3* This,DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This,direction); +} +static inline HRESULT IDWriteTextLayout3_SetFlowDirection(IDWriteTextLayout3* This,DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This,direction); +} +static inline HRESULT IDWriteTextLayout3_SetIncrementalTabStop(IDWriteTextLayout3* This,FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +} +static inline HRESULT IDWriteTextLayout3_SetTrimming(IDWriteTextLayout3* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { + return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +} +static inline DWRITE_TEXT_ALIGNMENT IDWriteTextLayout3_GetTextAlignment(IDWriteTextLayout3* This) { + return This->lpVtbl->GetTextAlignment(This); +} +static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout3_GetParagraphAlignment(IDWriteTextLayout3* This) { + return This->lpVtbl->GetParagraphAlignment(This); +} +static inline DWRITE_WORD_WRAPPING IDWriteTextLayout3_GetWordWrapping(IDWriteTextLayout3* This) { + return This->lpVtbl->GetWordWrapping(This); +} +static inline DWRITE_READING_DIRECTION IDWriteTextLayout3_GetReadingDirection(IDWriteTextLayout3* This) { + return This->lpVtbl->GetReadingDirection(This); +} +static inline DWRITE_FLOW_DIRECTION IDWriteTextLayout3_GetFlowDirection(IDWriteTextLayout3* This) { + return This->lpVtbl->GetFlowDirection(This); +} +static inline FLOAT IDWriteTextLayout3_GetIncrementalTabStop(IDWriteTextLayout3* This) { + return This->lpVtbl->GetIncrementalTabStop(This); +} +static inline HRESULT IDWriteTextLayout3_GetTrimming(IDWriteTextLayout3* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->GetTrimming(This,options,trimming_sign); +} +/*** IDWriteTextLayout methods ***/ +static inline HRESULT IDWriteTextLayout3_SetMaxWidth(IDWriteTextLayout3* This,FLOAT maxWidth) { + return This->lpVtbl->SetMaxWidth(This,maxWidth); +} +static inline HRESULT IDWriteTextLayout3_SetMaxHeight(IDWriteTextLayout3* This,FLOAT maxHeight) { + return This->lpVtbl->SetMaxHeight(This,maxHeight); +} +static inline HRESULT IDWriteTextLayout3_SetFontCollection(IDWriteTextLayout3* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontCollection(This,collection,range); +} +static inline HRESULT IDWriteTextLayout3_SetFontFamilyName(IDWriteTextLayout3* This,const WCHAR *name,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontFamilyName(This,name,range); +} +static inline HRESULT IDWriteTextLayout3_SetFontWeight(IDWriteTextLayout3* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontWeight(This,weight,range); +} +static inline HRESULT IDWriteTextLayout3_SetFontStyle(IDWriteTextLayout3* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStyle(This,style,range); +} +static inline HRESULT IDWriteTextLayout3_SetFontStretch(IDWriteTextLayout3* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStretch(This,stretch,range); +} +static inline HRESULT IDWriteTextLayout3_SetFontSize(IDWriteTextLayout3* This,FLOAT size,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontSize(This,size,range); +} +static inline HRESULT IDWriteTextLayout3_SetUnderline(IDWriteTextLayout3* This,WINBOOL underline,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetUnderline(This,underline,range); +} +static inline HRESULT IDWriteTextLayout3_SetStrikethrough(IDWriteTextLayout3* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetStrikethrough(This,strikethrough,range); +} +static inline HRESULT IDWriteTextLayout3_SetDrawingEffect(IDWriteTextLayout3* This,IUnknown *effect,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetDrawingEffect(This,effect,range); +} +static inline HRESULT IDWriteTextLayout3_SetInlineObject(IDWriteTextLayout3* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetInlineObject(This,object,range); +} +static inline HRESULT IDWriteTextLayout3_SetTypography(IDWriteTextLayout3* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetTypography(This,typography,range); +} +static inline HRESULT IDWriteTextLayout3_SetLocaleName(IDWriteTextLayout3* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetLocaleName(This,locale,range); +} +static inline FLOAT IDWriteTextLayout3_GetMaxWidth(IDWriteTextLayout3* This) { + return This->lpVtbl->GetMaxWidth(This); +} +static inline FLOAT IDWriteTextLayout3_GetMaxHeight(IDWriteTextLayout3* This) { + return This->lpVtbl->GetMaxHeight(This); +} +static inline HRESULT IDWriteTextLayout3_GetFontCollection(IDWriteTextLayout3* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range); +} +static inline HRESULT IDWriteTextLayout3_GetFontFamilyNameLength(IDWriteTextLayout3* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range); +} +static inline HRESULT IDWriteTextLayout3_GetFontFamilyName(IDWriteTextLayout3* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range); +} +static inline HRESULT IDWriteTextLayout3_GetFontWeight(IDWriteTextLayout3* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range); +} +static inline HRESULT IDWriteTextLayout3_GetFontStyle(IDWriteTextLayout3* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range); +} +static inline HRESULT IDWriteTextLayout3_GetFontStretch(IDWriteTextLayout3* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range); +} +static inline HRESULT IDWriteTextLayout3_GetFontSize(IDWriteTextLayout3* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range); +} +static inline HRESULT IDWriteTextLayout3_GetUnderline(IDWriteTextLayout3* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetUnderline(This,position,has_underline,range); +} +static inline HRESULT IDWriteTextLayout3_GetStrikethrough(IDWriteTextLayout3* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range); +} +static inline HRESULT IDWriteTextLayout3_GetDrawingEffect(IDWriteTextLayout3* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetDrawingEffect(This,position,effect,range); +} +static inline HRESULT IDWriteTextLayout3_GetInlineObject(IDWriteTextLayout3* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetInlineObject(This,position,object,range); +} +static inline HRESULT IDWriteTextLayout3_GetTypography(IDWriteTextLayout3* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetTypography(This,position,typography,range); +} +static inline HRESULT IDWriteTextLayout3_GetLocaleNameLength(IDWriteTextLayout3* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range); +} +static inline HRESULT IDWriteTextLayout3_GetLocaleName(IDWriteTextLayout3* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range); +} +static inline HRESULT IDWriteTextLayout3_Draw(IDWriteTextLayout3* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) { + return This->lpVtbl->Draw(This,context,renderer,originX,originY); +} +static inline HRESULT IDWriteTextLayout3_GetOverhangMetrics(IDWriteTextLayout3* This,DWRITE_OVERHANG_METRICS *overhangs) { + return This->lpVtbl->GetOverhangMetrics(This,overhangs); +} +static inline HRESULT IDWriteTextLayout3_GetClusterMetrics(IDWriteTextLayout3* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) { + return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count); +} +static inline HRESULT IDWriteTextLayout3_DetermineMinWidth(IDWriteTextLayout3* This,FLOAT *min_width) { + return This->lpVtbl->DetermineMinWidth(This,min_width); +} +static inline HRESULT IDWriteTextLayout3_HitTestPoint(IDWriteTextLayout3* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) { + return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics); +} +static inline HRESULT IDWriteTextLayout3_HitTestTextPosition(IDWriteTextLayout3* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) { + return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics); +} +static inline HRESULT IDWriteTextLayout3_HitTestTextRange(IDWriteTextLayout3* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) { + return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount); +} +/*** IDWriteTextLayout1 methods ***/ +static inline HRESULT IDWriteTextLayout3_SetPairKerning(IDWriteTextLayout3* This,WINBOOL is_pairkerning_enabled,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range); +} +static inline HRESULT IDWriteTextLayout3_GetPairKerning(IDWriteTextLayout3* This,UINT32 position,WINBOOL *is_pairkerning_enabled,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range); +} +static inline HRESULT IDWriteTextLayout3_SetCharacterSpacing(IDWriteTextLayout3* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT minimum_advance_width,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range); +} +static inline HRESULT IDWriteTextLayout3_GetCharacterSpacing(IDWriteTextLayout3* This,UINT32 position,FLOAT *leading_spacing,FLOAT *trailing_spacing,FLOAT *minimum_advance_width,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range); +} +/*** IDWriteTextLayout2 methods ***/ +static inline HRESULT IDWriteTextLayout3_GetMetrics(IDWriteTextLayout3* This,DWRITE_TEXT_METRICS1 *metrics) { + return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics); +} +static inline HRESULT IDWriteTextLayout3_SetVerticalGlyphOrientation(IDWriteTextLayout3* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { + return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation); +} +static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextLayout3_GetVerticalGlyphOrientation(IDWriteTextLayout3* This) { + return This->lpVtbl->GetVerticalGlyphOrientation(This); +} +static inline HRESULT IDWriteTextLayout3_SetLastLineWrapping(IDWriteTextLayout3* This,WINBOOL lastline_wrapping_enabled) { + return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled); +} +static inline WINBOOL IDWriteTextLayout3_GetLastLineWrapping(IDWriteTextLayout3* This) { + return This->lpVtbl->GetLastLineWrapping(This); +} +static inline HRESULT IDWriteTextLayout3_SetOpticalAlignment(IDWriteTextLayout3* This,DWRITE_OPTICAL_ALIGNMENT alignment) { + return This->lpVtbl->SetOpticalAlignment(This,alignment); +} +static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextLayout3_GetOpticalAlignment(IDWriteTextLayout3* This) { + return This->lpVtbl->GetOpticalAlignment(This); +} +static inline HRESULT IDWriteTextLayout3_SetFontFallback(IDWriteTextLayout3* This,IDWriteFontFallback *fallback) { + return This->lpVtbl->SetFontFallback(This,fallback); +} +static inline HRESULT IDWriteTextLayout3_GetFontFallback(IDWriteTextLayout3* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetFontFallback(This,fallback); +} +/*** IDWriteTextLayout3 methods ***/ +static inline HRESULT IDWriteTextLayout3_InvalidateLayout(IDWriteTextLayout3* This) { + return This->lpVtbl->InvalidateLayout(This); +} +static inline HRESULT IDWriteTextLayout3_SetLineSpacing(IDWriteTextLayout3* This,const DWRITE_LINE_SPACING *spacing) { + return This->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing); +} +static inline HRESULT IDWriteTextLayout3_GetLineSpacing(IDWriteTextLayout3* This,DWRITE_LINE_SPACING *spacing) { + return This->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing); +} +static inline HRESULT IDWriteTextLayout3_GetLineMetrics(IDWriteTextLayout3* This,DWRITE_LINE_METRICS1 *metrics,UINT32 max_count,UINT32 *count) { + return This->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextLayout3_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextLayout4 interface + */ +#ifndef __IDWriteTextLayout4_INTERFACE_DEFINED__ +#define __IDWriteTextLayout4_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextLayout4, 0x05a9bf42, 0x223f, 0x4441, 0xb5,0xfb, 0x82,0x63,0x68,0x5f,0x55,0xe9); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("05a9bf42-223f-4441-b5fb-8263685f55e9") +IDWriteTextLayout4 : public IDWriteTextLayout3 +{ + virtual HRESULT STDMETHODCALLTYPE SetFontAxisValues( + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + DWRITE_TEXT_RANGE range) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount( + UINT32 pos) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues( + UINT32 pos, + DWRITE_FONT_AXIS_VALUE *values, + UINT32 num_values, + DWRITE_TEXT_RANGE *range) = 0; + + virtual DWRITE_AUTOMATIC_FONT_AXES STDMETHODCALLTYPE GetAutomaticFontAxes( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAutomaticFontAxes( + DWRITE_AUTOMATIC_FONT_AXES axes) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextLayout4, 0x05a9bf42, 0x223f, 0x4441, 0xb5,0xfb, 0x82,0x63,0x68,0x5f,0x55,0xe9) +#endif +#else +typedef struct IDWriteTextLayout4Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextLayout4 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextLayout4 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextLayout4 *This); + + /*** IDWriteTextFormat methods ***/ + HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( + IDWriteTextLayout4 *This, + DWRITE_TEXT_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( + IDWriteTextLayout4 *This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( + IDWriteTextLayout4 *This, + DWRITE_WORD_WRAPPING wrapping); + + HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( + IDWriteTextLayout4 *This, + DWRITE_READING_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( + IDWriteTextLayout4 *This, + DWRITE_FLOW_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( + IDWriteTextLayout4 *This, + FLOAT tabstop); + + HRESULT (STDMETHODCALLTYPE *SetTrimming)( + IDWriteTextLayout4 *This, + const DWRITE_TRIMMING *trimming, + IDWriteInlineObject *trimming_sign); + + HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( + IDWriteTextLayout4 *This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); + + DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( + IDWriteTextLayout4 *This); + + DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( + IDWriteTextLayout4 *This); + + DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( + IDWriteTextLayout4 *This); + + DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( + IDWriteTextLayout4 *This); + + DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( + IDWriteTextLayout4 *This); + + FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( + IDWriteTextLayout4 *This); + + HRESULT (STDMETHODCALLTYPE *GetTrimming)( + IDWriteTextLayout4 *This, + DWRITE_TRIMMING *options, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( + IDWriteTextLayout4 *This, + DWRITE_LINE_SPACING_METHOD *method, + FLOAT *spacing, + FLOAT *baseline); + + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteTextLayout4 *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( + IDWriteTextLayout4 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( + IDWriteTextLayout4 *This, + WCHAR *name, + UINT32 size); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( + IDWriteTextLayout4 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( + IDWriteTextLayout4 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( + IDWriteTextLayout4 *This); + + FLOAT (STDMETHODCALLTYPE *GetFontSize)( + IDWriteTextLayout4 *This); + + UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( + IDWriteTextLayout4 *This); + + HRESULT (STDMETHODCALLTYPE *GetLocaleName)( + IDWriteTextLayout4 *This, + WCHAR *name, + UINT32 size); + + /*** IDWriteTextLayout methods ***/ + HRESULT (STDMETHODCALLTYPE *SetMaxWidth)( + IDWriteTextLayout4 *This, + FLOAT maxWidth); + + HRESULT (STDMETHODCALLTYPE *SetMaxHeight)( + IDWriteTextLayout4 *This, + FLOAT maxHeight); + + HRESULT (STDMETHODCALLTYPE *SetFontCollection)( + IDWriteTextLayout4 *This, + IDWriteFontCollection *collection, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)( + IDWriteTextLayout4 *This, + const WCHAR *name, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontWeight)( + IDWriteTextLayout4 *This, + DWRITE_FONT_WEIGHT weight, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontStyle)( + IDWriteTextLayout4 *This, + DWRITE_FONT_STYLE style, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontStretch)( + IDWriteTextLayout4 *This, + DWRITE_FONT_STRETCH stretch, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontSize)( + IDWriteTextLayout4 *This, + FLOAT size, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetUnderline)( + IDWriteTextLayout4 *This, + WINBOOL underline, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetStrikethrough)( + IDWriteTextLayout4 *This, + WINBOOL strikethrough, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)( + IDWriteTextLayout4 *This, + IUnknown *effect, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetInlineObject)( + IDWriteTextLayout4 *This, + IDWriteInlineObject *object, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetTypography)( + IDWriteTextLayout4 *This, + IDWriteTypography *typography, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetLocaleName)( + IDWriteTextLayout4 *This, + const WCHAR *locale, + DWRITE_TEXT_RANGE range); + + FLOAT (STDMETHODCALLTYPE *GetMaxWidth)( + IDWriteTextLayout4 *This); + + FLOAT (STDMETHODCALLTYPE *GetMaxHeight)( + IDWriteTextLayout4 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)( + IDWriteTextLayout4 *This, + UINT32 pos, + IDWriteFontCollection **collection, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)( + IDWriteTextLayout4 *This, + UINT32 pos, + UINT32 *len, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)( + IDWriteTextLayout4 *This, + UINT32 position, + WCHAR *name, + UINT32 name_size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)( + IDWriteTextLayout4 *This, + UINT32 position, + DWRITE_FONT_WEIGHT *weight, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)( + IDWriteTextLayout4 *This, + UINT32 currentPosition, + DWRITE_FONT_STYLE *style, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)( + IDWriteTextLayout4 *This, + UINT32 position, + DWRITE_FONT_STRETCH *stretch, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)( + IDWriteTextLayout4 *This, + UINT32 position, + FLOAT *size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetUnderline)( + IDWriteTextLayout4 *This, + UINT32 position, + WINBOOL *has_underline, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetStrikethrough)( + IDWriteTextLayout4 *This, + UINT32 position, + WINBOOL *has_strikethrough, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)( + IDWriteTextLayout4 *This, + UINT32 position, + IUnknown **effect, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetInlineObject)( + IDWriteTextLayout4 *This, + UINT32 position, + IDWriteInlineObject **object, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetTypography)( + IDWriteTextLayout4 *This, + UINT32 position, + IDWriteTypography **typography, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)( + IDWriteTextLayout4 *This, + UINT32 position, + UINT32 *length, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)( + IDWriteTextLayout4 *This, + UINT32 position, + WCHAR *name, + UINT32 name_size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *Draw)( + IDWriteTextLayout4 *This, + void *context, + IDWriteTextRenderer *renderer, + FLOAT originX, + FLOAT originY); + + HRESULT (STDMETHODCALLTYPE *GetLineMetrics)( + IDWriteTextLayout4 *This, + DWRITE_LINE_METRICS *metrics, + UINT32 max_count, + UINT32 *actual_count); + + HRESULT (STDMETHODCALLTYPE *GetMetrics)( + IDWriteTextLayout4 *This, + DWRITE_TEXT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)( + IDWriteTextLayout4 *This, + DWRITE_OVERHANG_METRICS *overhangs); + + HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)( + IDWriteTextLayout4 *This, + DWRITE_CLUSTER_METRICS *metrics, + UINT32 max_count, + UINT32 *act_count); + + HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)( + IDWriteTextLayout4 *This, + FLOAT *min_width); + + HRESULT (STDMETHODCALLTYPE *HitTestPoint)( + IDWriteTextLayout4 *This, + FLOAT pointX, + FLOAT pointY, + WINBOOL *is_trailinghit, + WINBOOL *is_inside, + DWRITE_HIT_TEST_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)( + IDWriteTextLayout4 *This, + UINT32 textPosition, + WINBOOL is_trailinghit, + FLOAT *pointX, + FLOAT *pointY, + DWRITE_HIT_TEST_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *HitTestTextRange)( + IDWriteTextLayout4 *This, + UINT32 textPosition, + UINT32 textLength, + FLOAT originX, + FLOAT originY, + DWRITE_HIT_TEST_METRICS *metrics, + UINT32 max_metricscount, + UINT32 *actual_metricscount); + + /*** IDWriteTextLayout1 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetPairKerning)( + IDWriteTextLayout4 *This, + WINBOOL is_pairkerning_enabled, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *GetPairKerning)( + IDWriteTextLayout4 *This, + UINT32 position, + WINBOOL *is_pairkerning_enabled, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *SetCharacterSpacing)( + IDWriteTextLayout4 *This, + FLOAT leading_spacing, + FLOAT trailing_spacing, + FLOAT minimum_advance_width, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *GetCharacterSpacing)( + IDWriteTextLayout4 *This, + UINT32 position, + FLOAT *leading_spacing, + FLOAT *trailing_spacing, + FLOAT *minimum_advance_width, + DWRITE_TEXT_RANGE *range); + + /*** IDWriteTextLayout2 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout2_GetMetrics)( + IDWriteTextLayout4 *This, + DWRITE_TEXT_METRICS1 *metrics); + + HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)( + IDWriteTextLayout4 *This, + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); + + DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)( + IDWriteTextLayout4 *This); + + HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)( + IDWriteTextLayout4 *This, + WINBOOL lastline_wrapping_enabled); + + WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)( + IDWriteTextLayout4 *This); + + HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)( + IDWriteTextLayout4 *This, + DWRITE_OPTICAL_ALIGNMENT alignment); + + DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)( + IDWriteTextLayout4 *This); + + HRESULT (STDMETHODCALLTYPE *SetFontFallback)( + IDWriteTextLayout4 *This, + IDWriteFontFallback *fallback); + + HRESULT (STDMETHODCALLTYPE *GetFontFallback)( + IDWriteTextLayout4 *This, + IDWriteFontFallback **fallback); + + /*** IDWriteTextLayout3 methods ***/ + HRESULT (STDMETHODCALLTYPE *InvalidateLayout)( + IDWriteTextLayout4 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_SetLineSpacing)( + IDWriteTextLayout4 *This, + const DWRITE_LINE_SPACING *spacing); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineSpacing)( + IDWriteTextLayout4 *This, + DWRITE_LINE_SPACING *spacing); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineMetrics)( + IDWriteTextLayout4 *This, + DWRITE_LINE_METRICS1 *metrics, + UINT32 max_count, + UINT32 *count); + + /*** IDWriteTextLayout4 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetFontAxisValues)( + IDWriteTextLayout4 *This, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + DWRITE_TEXT_RANGE range); + + UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)( + IDWriteTextLayout4 *This, + UINT32 pos); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)( + IDWriteTextLayout4 *This, + UINT32 pos, + DWRITE_FONT_AXIS_VALUE *values, + UINT32 num_values, + DWRITE_TEXT_RANGE *range); + + DWRITE_AUTOMATIC_FONT_AXES (STDMETHODCALLTYPE *GetAutomaticFontAxes)( + IDWriteTextLayout4 *This); + + HRESULT (STDMETHODCALLTYPE *SetAutomaticFontAxes)( + IDWriteTextLayout4 *This, + DWRITE_AUTOMATIC_FONT_AXES axes); + + END_INTERFACE +} IDWriteTextLayout4Vtbl; + +interface IDWriteTextLayout4 { + CONST_VTBL IDWriteTextLayout4Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextLayout4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextLayout4_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextLayout4_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextFormat methods ***/ +#define IDWriteTextLayout4_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) +#define IDWriteTextLayout4_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) +#define IDWriteTextLayout4_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) +#define IDWriteTextLayout4_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) +#define IDWriteTextLayout4_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) +#define IDWriteTextLayout4_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) +#define IDWriteTextLayout4_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) +#define IDWriteTextLayout4_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) +#define IDWriteTextLayout4_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) +#define IDWriteTextLayout4_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) +#define IDWriteTextLayout4_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) +#define IDWriteTextLayout4_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) +#define IDWriteTextLayout4_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) +#define IDWriteTextLayout4_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) +/*** IDWriteTextLayout methods ***/ +#define IDWriteTextLayout4_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth) +#define IDWriteTextLayout4_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight) +#define IDWriteTextLayout4_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range) +#define IDWriteTextLayout4_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range) +#define IDWriteTextLayout4_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range) +#define IDWriteTextLayout4_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range) +#define IDWriteTextLayout4_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range) +#define IDWriteTextLayout4_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range) +#define IDWriteTextLayout4_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range) +#define IDWriteTextLayout4_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range) +#define IDWriteTextLayout4_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range) +#define IDWriteTextLayout4_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range) +#define IDWriteTextLayout4_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range) +#define IDWriteTextLayout4_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range) +#define IDWriteTextLayout4_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This) +#define IDWriteTextLayout4_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This) +#define IDWriteTextLayout4_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range) +#define IDWriteTextLayout4_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range) +#define IDWriteTextLayout4_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range) +#define IDWriteTextLayout4_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range) +#define IDWriteTextLayout4_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range) +#define IDWriteTextLayout4_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range) +#define IDWriteTextLayout4_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range) +#define IDWriteTextLayout4_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range) +#define IDWriteTextLayout4_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range) +#define IDWriteTextLayout4_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range) +#define IDWriteTextLayout4_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range) +#define IDWriteTextLayout4_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range) +#define IDWriteTextLayout4_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range) +#define IDWriteTextLayout4_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range) +#define IDWriteTextLayout4_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY) +#define IDWriteTextLayout4_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs) +#define IDWriteTextLayout4_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count) +#define IDWriteTextLayout4_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width) +#define IDWriteTextLayout4_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) +#define IDWriteTextLayout4_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) +#define IDWriteTextLayout4_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) +/*** IDWriteTextLayout1 methods ***/ +#define IDWriteTextLayout4_SetPairKerning(This,is_pairkerning_enabled,range) (This)->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range) +#define IDWriteTextLayout4_GetPairKerning(This,position,is_pairkerning_enabled,range) (This)->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range) +#define IDWriteTextLayout4_SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) +#define IDWriteTextLayout4_GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) +/*** IDWriteTextLayout2 methods ***/ +#define IDWriteTextLayout4_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics) +#define IDWriteTextLayout4_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation) +#define IDWriteTextLayout4_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) +#define IDWriteTextLayout4_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled) +#define IDWriteTextLayout4_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) +#define IDWriteTextLayout4_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment) +#define IDWriteTextLayout4_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) +#define IDWriteTextLayout4_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback) +#define IDWriteTextLayout4_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback) +/*** IDWriteTextLayout3 methods ***/ +#define IDWriteTextLayout4_InvalidateLayout(This) (This)->lpVtbl->InvalidateLayout(This) +#define IDWriteTextLayout4_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing) +#define IDWriteTextLayout4_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing) +#define IDWriteTextLayout4_GetLineMetrics(This,metrics,max_count,count) (This)->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count) +/*** IDWriteTextLayout4 methods ***/ +#define IDWriteTextLayout4_SetFontAxisValues(This,axis_values,num_values,range) (This)->lpVtbl->SetFontAxisValues(This,axis_values,num_values,range) +#define IDWriteTextLayout4_GetFontAxisValueCount(This,pos) (This)->lpVtbl->GetFontAxisValueCount(This,pos) +#define IDWriteTextLayout4_GetFontAxisValues(This,pos,values,num_values,range) (This)->lpVtbl->GetFontAxisValues(This,pos,values,num_values,range) +#define IDWriteTextLayout4_GetAutomaticFontAxes(This) (This)->lpVtbl->GetAutomaticFontAxes(This) +#define IDWriteTextLayout4_SetAutomaticFontAxes(This,axes) (This)->lpVtbl->SetAutomaticFontAxes(This,axes) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextLayout4_QueryInterface(IDWriteTextLayout4* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextLayout4_AddRef(IDWriteTextLayout4* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextLayout4_Release(IDWriteTextLayout4* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextFormat methods ***/ +static inline HRESULT IDWriteTextLayout4_SetTextAlignment(IDWriteTextLayout4* This,DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This,alignment); +} +static inline HRESULT IDWriteTextLayout4_SetParagraphAlignment(IDWriteTextLayout4* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This,alignment); +} +static inline HRESULT IDWriteTextLayout4_SetWordWrapping(IDWriteTextLayout4* This,DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This,wrapping); +} +static inline HRESULT IDWriteTextLayout4_SetReadingDirection(IDWriteTextLayout4* This,DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This,direction); +} +static inline HRESULT IDWriteTextLayout4_SetFlowDirection(IDWriteTextLayout4* This,DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This,direction); +} +static inline HRESULT IDWriteTextLayout4_SetIncrementalTabStop(IDWriteTextLayout4* This,FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +} +static inline HRESULT IDWriteTextLayout4_SetTrimming(IDWriteTextLayout4* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { + return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +} +static inline DWRITE_TEXT_ALIGNMENT IDWriteTextLayout4_GetTextAlignment(IDWriteTextLayout4* This) { + return This->lpVtbl->GetTextAlignment(This); +} +static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout4_GetParagraphAlignment(IDWriteTextLayout4* This) { + return This->lpVtbl->GetParagraphAlignment(This); +} +static inline DWRITE_WORD_WRAPPING IDWriteTextLayout4_GetWordWrapping(IDWriteTextLayout4* This) { + return This->lpVtbl->GetWordWrapping(This); +} +static inline DWRITE_READING_DIRECTION IDWriteTextLayout4_GetReadingDirection(IDWriteTextLayout4* This) { + return This->lpVtbl->GetReadingDirection(This); +} +static inline DWRITE_FLOW_DIRECTION IDWriteTextLayout4_GetFlowDirection(IDWriteTextLayout4* This) { + return This->lpVtbl->GetFlowDirection(This); +} +static inline FLOAT IDWriteTextLayout4_GetIncrementalTabStop(IDWriteTextLayout4* This) { + return This->lpVtbl->GetIncrementalTabStop(This); +} +static inline HRESULT IDWriteTextLayout4_GetTrimming(IDWriteTextLayout4* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->GetTrimming(This,options,trimming_sign); +} +/*** IDWriteTextLayout methods ***/ +static inline HRESULT IDWriteTextLayout4_SetMaxWidth(IDWriteTextLayout4* This,FLOAT maxWidth) { + return This->lpVtbl->SetMaxWidth(This,maxWidth); +} +static inline HRESULT IDWriteTextLayout4_SetMaxHeight(IDWriteTextLayout4* This,FLOAT maxHeight) { + return This->lpVtbl->SetMaxHeight(This,maxHeight); +} +static inline HRESULT IDWriteTextLayout4_SetFontCollection(IDWriteTextLayout4* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontCollection(This,collection,range); +} +static inline HRESULT IDWriteTextLayout4_SetFontFamilyName(IDWriteTextLayout4* This,const WCHAR *name,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontFamilyName(This,name,range); +} +static inline HRESULT IDWriteTextLayout4_SetFontWeight(IDWriteTextLayout4* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontWeight(This,weight,range); +} +static inline HRESULT IDWriteTextLayout4_SetFontStyle(IDWriteTextLayout4* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStyle(This,style,range); +} +static inline HRESULT IDWriteTextLayout4_SetFontStretch(IDWriteTextLayout4* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStretch(This,stretch,range); +} +static inline HRESULT IDWriteTextLayout4_SetFontSize(IDWriteTextLayout4* This,FLOAT size,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontSize(This,size,range); +} +static inline HRESULT IDWriteTextLayout4_SetUnderline(IDWriteTextLayout4* This,WINBOOL underline,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetUnderline(This,underline,range); +} +static inline HRESULT IDWriteTextLayout4_SetStrikethrough(IDWriteTextLayout4* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetStrikethrough(This,strikethrough,range); +} +static inline HRESULT IDWriteTextLayout4_SetDrawingEffect(IDWriteTextLayout4* This,IUnknown *effect,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetDrawingEffect(This,effect,range); +} +static inline HRESULT IDWriteTextLayout4_SetInlineObject(IDWriteTextLayout4* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetInlineObject(This,object,range); +} +static inline HRESULT IDWriteTextLayout4_SetTypography(IDWriteTextLayout4* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetTypography(This,typography,range); +} +static inline HRESULT IDWriteTextLayout4_SetLocaleName(IDWriteTextLayout4* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetLocaleName(This,locale,range); +} +static inline FLOAT IDWriteTextLayout4_GetMaxWidth(IDWriteTextLayout4* This) { + return This->lpVtbl->GetMaxWidth(This); +} +static inline FLOAT IDWriteTextLayout4_GetMaxHeight(IDWriteTextLayout4* This) { + return This->lpVtbl->GetMaxHeight(This); +} +static inline HRESULT IDWriteTextLayout4_GetFontCollection(IDWriteTextLayout4* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range); +} +static inline HRESULT IDWriteTextLayout4_GetFontFamilyNameLength(IDWriteTextLayout4* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range); +} +static inline HRESULT IDWriteTextLayout4_GetFontFamilyName(IDWriteTextLayout4* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range); +} +static inline HRESULT IDWriteTextLayout4_GetFontWeight(IDWriteTextLayout4* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range); +} +static inline HRESULT IDWriteTextLayout4_GetFontStyle(IDWriteTextLayout4* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range); +} +static inline HRESULT IDWriteTextLayout4_GetFontStretch(IDWriteTextLayout4* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range); +} +static inline HRESULT IDWriteTextLayout4_GetFontSize(IDWriteTextLayout4* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range); +} +static inline HRESULT IDWriteTextLayout4_GetUnderline(IDWriteTextLayout4* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetUnderline(This,position,has_underline,range); +} +static inline HRESULT IDWriteTextLayout4_GetStrikethrough(IDWriteTextLayout4* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range); +} +static inline HRESULT IDWriteTextLayout4_GetDrawingEffect(IDWriteTextLayout4* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetDrawingEffect(This,position,effect,range); +} +static inline HRESULT IDWriteTextLayout4_GetInlineObject(IDWriteTextLayout4* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetInlineObject(This,position,object,range); +} +static inline HRESULT IDWriteTextLayout4_GetTypography(IDWriteTextLayout4* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetTypography(This,position,typography,range); +} +static inline HRESULT IDWriteTextLayout4_GetLocaleNameLength(IDWriteTextLayout4* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range); +} +static inline HRESULT IDWriteTextLayout4_GetLocaleName(IDWriteTextLayout4* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range); +} +static inline HRESULT IDWriteTextLayout4_Draw(IDWriteTextLayout4* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) { + return This->lpVtbl->Draw(This,context,renderer,originX,originY); +} +static inline HRESULT IDWriteTextLayout4_GetOverhangMetrics(IDWriteTextLayout4* This,DWRITE_OVERHANG_METRICS *overhangs) { + return This->lpVtbl->GetOverhangMetrics(This,overhangs); +} +static inline HRESULT IDWriteTextLayout4_GetClusterMetrics(IDWriteTextLayout4* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) { + return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count); +} +static inline HRESULT IDWriteTextLayout4_DetermineMinWidth(IDWriteTextLayout4* This,FLOAT *min_width) { + return This->lpVtbl->DetermineMinWidth(This,min_width); +} +static inline HRESULT IDWriteTextLayout4_HitTestPoint(IDWriteTextLayout4* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) { + return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics); +} +static inline HRESULT IDWriteTextLayout4_HitTestTextPosition(IDWriteTextLayout4* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) { + return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics); +} +static inline HRESULT IDWriteTextLayout4_HitTestTextRange(IDWriteTextLayout4* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) { + return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount); +} +/*** IDWriteTextLayout1 methods ***/ +static inline HRESULT IDWriteTextLayout4_SetPairKerning(IDWriteTextLayout4* This,WINBOOL is_pairkerning_enabled,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range); +} +static inline HRESULT IDWriteTextLayout4_GetPairKerning(IDWriteTextLayout4* This,UINT32 position,WINBOOL *is_pairkerning_enabled,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range); +} +static inline HRESULT IDWriteTextLayout4_SetCharacterSpacing(IDWriteTextLayout4* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT minimum_advance_width,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range); +} +static inline HRESULT IDWriteTextLayout4_GetCharacterSpacing(IDWriteTextLayout4* This,UINT32 position,FLOAT *leading_spacing,FLOAT *trailing_spacing,FLOAT *minimum_advance_width,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range); +} +/*** IDWriteTextLayout2 methods ***/ +static inline HRESULT IDWriteTextLayout4_GetMetrics(IDWriteTextLayout4* This,DWRITE_TEXT_METRICS1 *metrics) { + return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics); +} +static inline HRESULT IDWriteTextLayout4_SetVerticalGlyphOrientation(IDWriteTextLayout4* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { + return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation); +} +static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextLayout4_GetVerticalGlyphOrientation(IDWriteTextLayout4* This) { + return This->lpVtbl->GetVerticalGlyphOrientation(This); +} +static inline HRESULT IDWriteTextLayout4_SetLastLineWrapping(IDWriteTextLayout4* This,WINBOOL lastline_wrapping_enabled) { + return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled); +} +static inline WINBOOL IDWriteTextLayout4_GetLastLineWrapping(IDWriteTextLayout4* This) { + return This->lpVtbl->GetLastLineWrapping(This); +} +static inline HRESULT IDWriteTextLayout4_SetOpticalAlignment(IDWriteTextLayout4* This,DWRITE_OPTICAL_ALIGNMENT alignment) { + return This->lpVtbl->SetOpticalAlignment(This,alignment); +} +static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextLayout4_GetOpticalAlignment(IDWriteTextLayout4* This) { + return This->lpVtbl->GetOpticalAlignment(This); +} +static inline HRESULT IDWriteTextLayout4_SetFontFallback(IDWriteTextLayout4* This,IDWriteFontFallback *fallback) { + return This->lpVtbl->SetFontFallback(This,fallback); +} +static inline HRESULT IDWriteTextLayout4_GetFontFallback(IDWriteTextLayout4* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetFontFallback(This,fallback); +} +/*** IDWriteTextLayout3 methods ***/ +static inline HRESULT IDWriteTextLayout4_InvalidateLayout(IDWriteTextLayout4* This) { + return This->lpVtbl->InvalidateLayout(This); +} +static inline HRESULT IDWriteTextLayout4_SetLineSpacing(IDWriteTextLayout4* This,const DWRITE_LINE_SPACING *spacing) { + return This->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing); +} +static inline HRESULT IDWriteTextLayout4_GetLineSpacing(IDWriteTextLayout4* This,DWRITE_LINE_SPACING *spacing) { + return This->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing); +} +static inline HRESULT IDWriteTextLayout4_GetLineMetrics(IDWriteTextLayout4* This,DWRITE_LINE_METRICS1 *metrics,UINT32 max_count,UINT32 *count) { + return This->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count); +} +/*** IDWriteTextLayout4 methods ***/ +static inline HRESULT IDWriteTextLayout4_SetFontAxisValues(IDWriteTextLayout4* This,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontAxisValues(This,axis_values,num_values,range); +} +static inline UINT32 IDWriteTextLayout4_GetFontAxisValueCount(IDWriteTextLayout4* This,UINT32 pos) { + return This->lpVtbl->GetFontAxisValueCount(This,pos); +} +static inline HRESULT IDWriteTextLayout4_GetFontAxisValues(IDWriteTextLayout4* This,UINT32 pos,DWRITE_FONT_AXIS_VALUE *values,UINT32 num_values,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetFontAxisValues(This,pos,values,num_values,range); +} +static inline DWRITE_AUTOMATIC_FONT_AXES IDWriteTextLayout4_GetAutomaticFontAxes(IDWriteTextLayout4* This) { + return This->lpVtbl->GetAutomaticFontAxes(This); +} +static inline HRESULT IDWriteTextLayout4_SetAutomaticFontAxes(IDWriteTextLayout4* This,DWRITE_AUTOMATIC_FONT_AXES axes) { + return This->lpVtbl->SetAutomaticFontAxes(This,axes); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextLayout4_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFallback1 interface + */ +#ifndef __IDWriteFontFallback1_INTERFACE_DEFINED__ +#define __IDWriteFontFallback1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFallback1, 0x2397599d, 0xdd0d, 0x4681, 0xbd,0x6a, 0xf4,0xf3,0x1e,0xaa,0xde,0x77); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("2397599d-dd0d-4681-bd6a-f4f31eaade77") +IDWriteFontFallback1 : public IDWriteFontFallback +{ + virtual HRESULT STDMETHODCALLTYPE MapCharacters( + IDWriteTextAnalysisSource *source, + UINT32 pos, + UINT32 length, + IDWriteFontCollection *base_collection, + const WCHAR *familyname, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + UINT32 *mapped_length, + FLOAT *scale, + IDWriteFontFace5 **fontface) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFallback1, 0x2397599d, 0xdd0d, 0x4681, 0xbd,0x6a, 0xf4,0xf3,0x1e,0xaa,0xde,0x77) +#endif +#else +typedef struct IDWriteFontFallback1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFallback1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFallback1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFallback1 *This); + + /*** IDWriteFontFallback methods ***/ + HRESULT (STDMETHODCALLTYPE *MapCharacters)( + IDWriteFontFallback1 *This, + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteFontCollection *basecollection, + const WCHAR *baseFamilyName, + DWRITE_FONT_WEIGHT baseWeight, + DWRITE_FONT_STYLE baseStyle, + DWRITE_FONT_STRETCH baseStretch, + UINT32 *mappedLength, + IDWriteFont **mappedFont, + FLOAT *scale); + + /*** IDWriteFontFallback1 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFontFallback1_MapCharacters)( + IDWriteFontFallback1 *This, + IDWriteTextAnalysisSource *source, + UINT32 pos, + UINT32 length, + IDWriteFontCollection *base_collection, + const WCHAR *familyname, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + UINT32 *mapped_length, + FLOAT *scale, + IDWriteFontFace5 **fontface); + + END_INTERFACE +} IDWriteFontFallback1Vtbl; + +interface IDWriteFontFallback1 { + CONST_VTBL IDWriteFontFallback1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFallback1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFallback1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFallback1_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFallback methods ***/ +/*** IDWriteFontFallback1 methods ***/ +#define IDWriteFontFallback1_MapCharacters(This,source,pos,length,base_collection,familyname,axis_values,num_values,mapped_length,scale,fontface) (This)->lpVtbl->IDWriteFontFallback1_MapCharacters(This,source,pos,length,base_collection,familyname,axis_values,num_values,mapped_length,scale,fontface) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFallback1_QueryInterface(IDWriteFontFallback1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFallback1_AddRef(IDWriteFontFallback1* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFallback1_Release(IDWriteFontFallback1* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFallback methods ***/ +/*** IDWriteFontFallback1 methods ***/ +static inline HRESULT IDWriteFontFallback1_MapCharacters(IDWriteFontFallback1* This,IDWriteTextAnalysisSource *source,UINT32 pos,UINT32 length,IDWriteFontCollection *base_collection,const WCHAR *familyname,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,UINT32 *mapped_length,FLOAT *scale,IDWriteFontFace5 **fontface) { + return This->lpVtbl->IDWriteFontFallback1_MapCharacters(This,source,pos,length,base_collection,familyname,axis_values,num_values,mapped_length,scale,fontface); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFallback1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteGdiInterop1 interface + */ +#ifndef __IDWriteGdiInterop1_INTERFACE_DEFINED__ +#define __IDWriteGdiInterop1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteGdiInterop1, 0x4556be70, 0x3abd, 0x4f70, 0x90,0xbe, 0x42,0x17,0x80,0xa6,0xf5,0x15); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("4556be70-3abd-4f70-90be-421780a6f515") +IDWriteGdiInterop1 : public IDWriteGdiInterop +{ + virtual HRESULT STDMETHODCALLTYPE CreateFontFromLOGFONT( + const LOGFONTW *logfont, + IDWriteFontCollection *collection, + IDWriteFont **font) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontSignature_( + IDWriteFontFace *fontface, + FONTSIGNATURE *fontsig) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontSignature( + IDWriteFont *font, + FONTSIGNATURE *fontsig) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMatchingFontsByLOGFONT( + const LOGFONTW *logfont, + IDWriteFontSet *fontset, + IDWriteFontSet **subset) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteGdiInterop1, 0x4556be70, 0x3abd, 0x4f70, 0x90,0xbe, 0x42,0x17,0x80,0xa6,0xf5,0x15) +#endif +#else +typedef struct IDWriteGdiInterop1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteGdiInterop1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteGdiInterop1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteGdiInterop1 *This); + + /*** IDWriteGdiInterop methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateFontFromLOGFONT)( + IDWriteGdiInterop1 *This, + const LOGFONTW *logfont, + IDWriteFont **font); + + HRESULT (STDMETHODCALLTYPE *ConvertFontToLOGFONT)( + IDWriteGdiInterop1 *This, + IDWriteFont *font, + LOGFONTW *logfont, + WINBOOL *is_systemfont); + + HRESULT (STDMETHODCALLTYPE *ConvertFontFaceToLOGFONT)( + IDWriteGdiInterop1 *This, + IDWriteFontFace *font, + LOGFONTW *logfont); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceFromHdc)( + IDWriteGdiInterop1 *This, + HDC hdc, + IDWriteFontFace **fontface); + + HRESULT (STDMETHODCALLTYPE *CreateBitmapRenderTarget)( + IDWriteGdiInterop1 *This, + HDC hdc, + UINT32 width, + UINT32 height, + IDWriteBitmapRenderTarget **target); + + /*** IDWriteGdiInterop1 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteGdiInterop1_CreateFontFromLOGFONT)( + IDWriteGdiInterop1 *This, + const LOGFONTW *logfont, + IDWriteFontCollection *collection, + IDWriteFont **font); + + HRESULT (STDMETHODCALLTYPE *GetFontSignature_)( + IDWriteGdiInterop1 *This, + IDWriteFontFace *fontface, + FONTSIGNATURE *fontsig); + + HRESULT (STDMETHODCALLTYPE *GetFontSignature)( + IDWriteGdiInterop1 *This, + IDWriteFont *font, + FONTSIGNATURE *fontsig); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFontsByLOGFONT)( + IDWriteGdiInterop1 *This, + const LOGFONTW *logfont, + IDWriteFontSet *fontset, + IDWriteFontSet **subset); + + END_INTERFACE +} IDWriteGdiInterop1Vtbl; + +interface IDWriteGdiInterop1 { + CONST_VTBL IDWriteGdiInterop1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteGdiInterop1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteGdiInterop1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteGdiInterop1_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteGdiInterop methods ***/ +#define IDWriteGdiInterop1_ConvertFontToLOGFONT(This,font,logfont,is_systemfont) (This)->lpVtbl->ConvertFontToLOGFONT(This,font,logfont,is_systemfont) +#define IDWriteGdiInterop1_ConvertFontFaceToLOGFONT(This,font,logfont) (This)->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logfont) +#define IDWriteGdiInterop1_CreateFontFaceFromHdc(This,hdc,fontface) (This)->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontface) +#define IDWriteGdiInterop1_CreateBitmapRenderTarget(This,hdc,width,height,target) (This)->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,target) +/*** IDWriteGdiInterop1 methods ***/ +#define IDWriteGdiInterop1_CreateFontFromLOGFONT(This,logfont,collection,font) (This)->lpVtbl->IDWriteGdiInterop1_CreateFontFromLOGFONT(This,logfont,collection,font) +#define IDWriteGdiInterop1_GetFontSignature_(This,fontface,fontsig) (This)->lpVtbl->GetFontSignature_(This,fontface,fontsig) +#define IDWriteGdiInterop1_GetFontSignature(This,font,fontsig) (This)->lpVtbl->GetFontSignature(This,font,fontsig) +#define IDWriteGdiInterop1_GetMatchingFontsByLOGFONT(This,logfont,fontset,subset) (This)->lpVtbl->GetMatchingFontsByLOGFONT(This,logfont,fontset,subset) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteGdiInterop1_QueryInterface(IDWriteGdiInterop1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteGdiInterop1_AddRef(IDWriteGdiInterop1* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteGdiInterop1_Release(IDWriteGdiInterop1* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteGdiInterop methods ***/ +static inline HRESULT IDWriteGdiInterop1_ConvertFontToLOGFONT(IDWriteGdiInterop1* This,IDWriteFont *font,LOGFONTW *logfont,WINBOOL *is_systemfont) { + return This->lpVtbl->ConvertFontToLOGFONT(This,font,logfont,is_systemfont); +} +static inline HRESULT IDWriteGdiInterop1_ConvertFontFaceToLOGFONT(IDWriteGdiInterop1* This,IDWriteFontFace *font,LOGFONTW *logfont) { + return This->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logfont); +} +static inline HRESULT IDWriteGdiInterop1_CreateFontFaceFromHdc(IDWriteGdiInterop1* This,HDC hdc,IDWriteFontFace **fontface) { + return This->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontface); +} +static inline HRESULT IDWriteGdiInterop1_CreateBitmapRenderTarget(IDWriteGdiInterop1* This,HDC hdc,UINT32 width,UINT32 height,IDWriteBitmapRenderTarget **target) { + return This->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,target); +} +/*** IDWriteGdiInterop1 methods ***/ +static inline HRESULT IDWriteGdiInterop1_CreateFontFromLOGFONT(IDWriteGdiInterop1* This,const LOGFONTW *logfont,IDWriteFontCollection *collection,IDWriteFont **font) { + return This->lpVtbl->IDWriteGdiInterop1_CreateFontFromLOGFONT(This,logfont,collection,font); +} +static inline HRESULT IDWriteGdiInterop1_GetFontSignature_(IDWriteGdiInterop1* This,IDWriteFontFace *fontface,FONTSIGNATURE *fontsig) { + return This->lpVtbl->GetFontSignature_(This,fontface,fontsig); +} +static inline HRESULT IDWriteGdiInterop1_GetFontSignature(IDWriteGdiInterop1* This,IDWriteFont *font,FONTSIGNATURE *fontsig) { + return This->lpVtbl->GetFontSignature(This,font,fontsig); +} +static inline HRESULT IDWriteGdiInterop1_GetMatchingFontsByLOGFONT(IDWriteGdiInterop1* This,const LOGFONTW *logfont,IDWriteFontSet *fontset,IDWriteFontSet **subset) { + return This->lpVtbl->GetMatchingFontsByLOGFONT(This,logfont,fontset,subset); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteGdiInterop1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontSetBuilder interface + */ +#ifndef __IDWriteFontSetBuilder_INTERFACE_DEFINED__ +#define __IDWriteFontSetBuilder_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontSetBuilder, 0x2f642afe, 0x9c68, 0x4f40, 0xb8,0xbe, 0x45,0x74,0x01,0xaf,0xcb,0x3d); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("2f642afe-9c68-4f40-b8be-457401afcb3d") +IDWriteFontSetBuilder : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE AddFontFaceReference_( + IDWriteFontFaceReference *ref, + const DWRITE_FONT_PROPERTY *props, + UINT32 prop_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddFontFaceReference( + IDWriteFontFaceReference *ref) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddFontSet( + IDWriteFontSet *fontset) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontSet( + IDWriteFontSet **fontset) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontSetBuilder, 0x2f642afe, 0x9c68, 0x4f40, 0xb8,0xbe, 0x45,0x74,0x01,0xaf,0xcb,0x3d) +#endif +#else +typedef struct IDWriteFontSetBuilderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontSetBuilder *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontSetBuilder *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontSetBuilder *This); + + /*** IDWriteFontSetBuilder methods ***/ + HRESULT (STDMETHODCALLTYPE *AddFontFaceReference_)( + IDWriteFontSetBuilder *This, + IDWriteFontFaceReference *ref, + const DWRITE_FONT_PROPERTY *props, + UINT32 prop_count); + + HRESULT (STDMETHODCALLTYPE *AddFontFaceReference)( + IDWriteFontSetBuilder *This, + IDWriteFontFaceReference *ref); + + HRESULT (STDMETHODCALLTYPE *AddFontSet)( + IDWriteFontSetBuilder *This, + IDWriteFontSet *fontset); + + HRESULT (STDMETHODCALLTYPE *CreateFontSet)( + IDWriteFontSetBuilder *This, + IDWriteFontSet **fontset); + + END_INTERFACE +} IDWriteFontSetBuilderVtbl; + +interface IDWriteFontSetBuilder { + CONST_VTBL IDWriteFontSetBuilderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontSetBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSetBuilder_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontSetBuilder_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontSetBuilder methods ***/ +#define IDWriteFontSetBuilder_AddFontFaceReference_(This,ref,props,prop_count) (This)->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count) +#define IDWriteFontSetBuilder_AddFontFaceReference(This,ref) (This)->lpVtbl->AddFontFaceReference(This,ref) +#define IDWriteFontSetBuilder_AddFontSet(This,fontset) (This)->lpVtbl->AddFontSet(This,fontset) +#define IDWriteFontSetBuilder_CreateFontSet(This,fontset) (This)->lpVtbl->CreateFontSet(This,fontset) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontSetBuilder_QueryInterface(IDWriteFontSetBuilder* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontSetBuilder_AddRef(IDWriteFontSetBuilder* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontSetBuilder_Release(IDWriteFontSetBuilder* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontSetBuilder methods ***/ +static inline HRESULT IDWriteFontSetBuilder_AddFontFaceReference_(IDWriteFontSetBuilder* This,IDWriteFontFaceReference *ref,const DWRITE_FONT_PROPERTY *props,UINT32 prop_count) { + return This->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count); +} +static inline HRESULT IDWriteFontSetBuilder_AddFontFaceReference(IDWriteFontSetBuilder* This,IDWriteFontFaceReference *ref) { + return This->lpVtbl->AddFontFaceReference(This,ref); +} +static inline HRESULT IDWriteFontSetBuilder_AddFontSet(IDWriteFontSetBuilder* This,IDWriteFontSet *fontset) { + return This->lpVtbl->AddFontSet(This,fontset); +} +static inline HRESULT IDWriteFontSetBuilder_CreateFontSet(IDWriteFontSetBuilder* This,IDWriteFontSet **fontset) { + return This->lpVtbl->CreateFontSet(This,fontset); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontSetBuilder_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontSetBuilder1 interface + */ +#ifndef __IDWriteFontSetBuilder1_INTERFACE_DEFINED__ +#define __IDWriteFontSetBuilder1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontSetBuilder1, 0x3ff7715f, 0x3cdc, 0x4dc6, 0x9b,0x72, 0xec,0x56,0x21,0xdc,0xca,0xfd); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("3ff7715f-3cdc-4dc6-9b72-ec5621dccafd") +IDWriteFontSetBuilder1 : public IDWriteFontSetBuilder +{ + virtual HRESULT STDMETHODCALLTYPE AddFontFile( + IDWriteFontFile *file) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontSetBuilder1, 0x3ff7715f, 0x3cdc, 0x4dc6, 0x9b,0x72, 0xec,0x56,0x21,0xdc,0xca,0xfd) +#endif +#else +typedef struct IDWriteFontSetBuilder1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontSetBuilder1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontSetBuilder1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontSetBuilder1 *This); + + /*** IDWriteFontSetBuilder methods ***/ + HRESULT (STDMETHODCALLTYPE *AddFontFaceReference_)( + IDWriteFontSetBuilder1 *This, + IDWriteFontFaceReference *ref, + const DWRITE_FONT_PROPERTY *props, + UINT32 prop_count); + + HRESULT (STDMETHODCALLTYPE *AddFontFaceReference)( + IDWriteFontSetBuilder1 *This, + IDWriteFontFaceReference *ref); + + HRESULT (STDMETHODCALLTYPE *AddFontSet)( + IDWriteFontSetBuilder1 *This, + IDWriteFontSet *fontset); + + HRESULT (STDMETHODCALLTYPE *CreateFontSet)( + IDWriteFontSetBuilder1 *This, + IDWriteFontSet **fontset); + + /*** IDWriteFontSetBuilder1 methods ***/ + HRESULT (STDMETHODCALLTYPE *AddFontFile)( + IDWriteFontSetBuilder1 *This, + IDWriteFontFile *file); + + END_INTERFACE +} IDWriteFontSetBuilder1Vtbl; + +interface IDWriteFontSetBuilder1 { + CONST_VTBL IDWriteFontSetBuilder1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontSetBuilder1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSetBuilder1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontSetBuilder1_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontSetBuilder methods ***/ +#define IDWriteFontSetBuilder1_AddFontFaceReference_(This,ref,props,prop_count) (This)->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count) +#define IDWriteFontSetBuilder1_AddFontFaceReference(This,ref) (This)->lpVtbl->AddFontFaceReference(This,ref) +#define IDWriteFontSetBuilder1_AddFontSet(This,fontset) (This)->lpVtbl->AddFontSet(This,fontset) +#define IDWriteFontSetBuilder1_CreateFontSet(This,fontset) (This)->lpVtbl->CreateFontSet(This,fontset) +/*** IDWriteFontSetBuilder1 methods ***/ +#define IDWriteFontSetBuilder1_AddFontFile(This,file) (This)->lpVtbl->AddFontFile(This,file) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontSetBuilder1_QueryInterface(IDWriteFontSetBuilder1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontSetBuilder1_AddRef(IDWriteFontSetBuilder1* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontSetBuilder1_Release(IDWriteFontSetBuilder1* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontSetBuilder methods ***/ +static inline HRESULT IDWriteFontSetBuilder1_AddFontFaceReference_(IDWriteFontSetBuilder1* This,IDWriteFontFaceReference *ref,const DWRITE_FONT_PROPERTY *props,UINT32 prop_count) { + return This->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count); +} +static inline HRESULT IDWriteFontSetBuilder1_AddFontFaceReference(IDWriteFontSetBuilder1* This,IDWriteFontFaceReference *ref) { + return This->lpVtbl->AddFontFaceReference(This,ref); +} +static inline HRESULT IDWriteFontSetBuilder1_AddFontSet(IDWriteFontSetBuilder1* This,IDWriteFontSet *fontset) { + return This->lpVtbl->AddFontSet(This,fontset); +} +static inline HRESULT IDWriteFontSetBuilder1_CreateFontSet(IDWriteFontSetBuilder1* This,IDWriteFontSet **fontset) { + return This->lpVtbl->CreateFontSet(This,fontset); +} +/*** IDWriteFontSetBuilder1 methods ***/ +static inline HRESULT IDWriteFontSetBuilder1_AddFontFile(IDWriteFontSetBuilder1* This,IDWriteFontFile *file) { + return This->lpVtbl->AddFontFile(This,file); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontSetBuilder1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontSetBuilder2 interface + */ +#ifndef __IDWriteFontSetBuilder2_INTERFACE_DEFINED__ +#define __IDWriteFontSetBuilder2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontSetBuilder2, 0xee5ba612, 0xb131, 0x463c, 0x8f,0x4f, 0x31,0x89,0xb9,0x40,0x1e,0x45); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("ee5ba612-b131-463c-8f4f-3189b9401e45") +IDWriteFontSetBuilder2 : public IDWriteFontSetBuilder1 +{ + virtual HRESULT STDMETHODCALLTYPE AddFont( + IDWriteFontFile *fontfile, + UINT32 face_index, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + const DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddFontFile( + const WCHAR *filepath) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontSetBuilder2, 0xee5ba612, 0xb131, 0x463c, 0x8f,0x4f, 0x31,0x89,0xb9,0x40,0x1e,0x45) +#endif +#else +typedef struct IDWriteFontSetBuilder2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontSetBuilder2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontSetBuilder2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontSetBuilder2 *This); + + /*** IDWriteFontSetBuilder methods ***/ + HRESULT (STDMETHODCALLTYPE *AddFontFaceReference_)( + IDWriteFontSetBuilder2 *This, + IDWriteFontFaceReference *ref, + const DWRITE_FONT_PROPERTY *props, + UINT32 prop_count); + + HRESULT (STDMETHODCALLTYPE *AddFontFaceReference)( + IDWriteFontSetBuilder2 *This, + IDWriteFontFaceReference *ref); + + HRESULT (STDMETHODCALLTYPE *AddFontSet)( + IDWriteFontSetBuilder2 *This, + IDWriteFontSet *fontset); + + HRESULT (STDMETHODCALLTYPE *CreateFontSet)( + IDWriteFontSetBuilder2 *This, + IDWriteFontSet **fontset); + + /*** IDWriteFontSetBuilder1 methods ***/ + HRESULT (STDMETHODCALLTYPE *AddFontFile)( + IDWriteFontSetBuilder2 *This, + IDWriteFontFile *file); + + /*** IDWriteFontSetBuilder2 methods ***/ + HRESULT (STDMETHODCALLTYPE *AddFont)( + IDWriteFontSetBuilder2 *This, + IDWriteFontFile *fontfile, + UINT32 face_index, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + const DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontSetBuilder2_AddFontFile)( + IDWriteFontSetBuilder2 *This, + const WCHAR *filepath); + + END_INTERFACE +} IDWriteFontSetBuilder2Vtbl; + +interface IDWriteFontSetBuilder2 { + CONST_VTBL IDWriteFontSetBuilder2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontSetBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSetBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontSetBuilder2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontSetBuilder methods ***/ +#define IDWriteFontSetBuilder2_AddFontFaceReference_(This,ref,props,prop_count) (This)->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count) +#define IDWriteFontSetBuilder2_AddFontFaceReference(This,ref) (This)->lpVtbl->AddFontFaceReference(This,ref) +#define IDWriteFontSetBuilder2_AddFontSet(This,fontset) (This)->lpVtbl->AddFontSet(This,fontset) +#define IDWriteFontSetBuilder2_CreateFontSet(This,fontset) (This)->lpVtbl->CreateFontSet(This,fontset) +/*** IDWriteFontSetBuilder1 methods ***/ +/*** IDWriteFontSetBuilder2 methods ***/ +#define IDWriteFontSetBuilder2_AddFont(This,fontfile,face_index,simulations,axis_values,num_values,axis_ranges,num_ranges,props,num_properties) (This)->lpVtbl->AddFont(This,fontfile,face_index,simulations,axis_values,num_values,axis_ranges,num_ranges,props,num_properties) +#define IDWriteFontSetBuilder2_AddFontFile(This,filepath) (This)->lpVtbl->IDWriteFontSetBuilder2_AddFontFile(This,filepath) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontSetBuilder2_QueryInterface(IDWriteFontSetBuilder2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontSetBuilder2_AddRef(IDWriteFontSetBuilder2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontSetBuilder2_Release(IDWriteFontSetBuilder2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontSetBuilder methods ***/ +static inline HRESULT IDWriteFontSetBuilder2_AddFontFaceReference_(IDWriteFontSetBuilder2* This,IDWriteFontFaceReference *ref,const DWRITE_FONT_PROPERTY *props,UINT32 prop_count) { + return This->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count); +} +static inline HRESULT IDWriteFontSetBuilder2_AddFontFaceReference(IDWriteFontSetBuilder2* This,IDWriteFontFaceReference *ref) { + return This->lpVtbl->AddFontFaceReference(This,ref); +} +static inline HRESULT IDWriteFontSetBuilder2_AddFontSet(IDWriteFontSetBuilder2* This,IDWriteFontSet *fontset) { + return This->lpVtbl->AddFontSet(This,fontset); +} +static inline HRESULT IDWriteFontSetBuilder2_CreateFontSet(IDWriteFontSetBuilder2* This,IDWriteFontSet **fontset) { + return This->lpVtbl->CreateFontSet(This,fontset); +} +/*** IDWriteFontSetBuilder1 methods ***/ +/*** IDWriteFontSetBuilder2 methods ***/ +static inline HRESULT IDWriteFontSetBuilder2_AddFont(IDWriteFontSetBuilder2* This,IDWriteFontFile *fontfile,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties) { + return This->lpVtbl->AddFont(This,fontfile,face_index,simulations,axis_values,num_values,axis_ranges,num_ranges,props,num_properties); +} +static inline HRESULT IDWriteFontSetBuilder2_AddFontFile(IDWriteFontSetBuilder2* This,const WCHAR *filepath) { + return This->lpVtbl->IDWriteFontSetBuilder2_AddFontFile(This,filepath); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontSetBuilder2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFactory3 interface + */ +#ifndef __IDWriteFactory3_INTERFACE_DEFINED__ +#define __IDWriteFactory3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFactory3, 0x9a1b41c3, 0xd3bb, 0x466a, 0x87,0xfc, 0xfe,0x67,0x55,0x6a,0x3b,0x65); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("9a1b41c3-d3bb-466a-87fc-fe67556a3b65") +IDWriteFactory3 : public IDWriteFactory2 +{ + virtual HRESULT STDMETHODCALLTYPE CreateGlyphRunAnalysis( + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, + FLOAT origin_x, + FLOAT origin_y, + IDWriteGlyphRunAnalysis **analysis) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams( + FLOAT gamma, + FLOAT enhanced_contrast, + FLOAT grayscale_enhanced_contrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY pixel_geometry, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + IDWriteRenderingParams3 **params) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference_( + IDWriteFontFile *file, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference( + const WCHAR *path, + const FILETIME *writetime, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet( + IDWriteFontSet **fontset) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder( + IDWriteFontSetBuilder **builder) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontCollectionFromFontSet( + IDWriteFontSet *fontset, + IDWriteFontCollection1 **collection) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection( + WINBOOL include_downloadable, + IDWriteFontCollection1 **collection, + WINBOOL check_for_updates) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontDownloadQueue( + IDWriteFontDownloadQueue **queue) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFactory3, 0x9a1b41c3, 0xd3bb, 0x466a, 0x87,0xfc, 0xfe,0x67,0x55,0x6a,0x3b,0x65) +#endif +#else +typedef struct IDWriteFactory3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFactory3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFactory3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFactory3 *This); + + /*** IDWriteFactory methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( + IDWriteFactory3 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( + IDWriteFactory3 *This, + IDWriteFontCollectionLoader *loader, + const void *key, + UINT32 key_size, + IDWriteFontCollection **collection); + + HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( + IDWriteFactory3 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( + IDWriteFactory3 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( + IDWriteFactory3 *This, + const WCHAR *path, + const FILETIME *writetime, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( + IDWriteFactory3 *This, + const void *reference_key, + UINT32 key_size, + IDWriteFontFileLoader *loader, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFactory3 *This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile *const *font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace **font_face); + + HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( + IDWriteFactory3 *This, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( + IDWriteFactory3 *This, + HMONITOR monitor, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( + IDWriteFactory3 *This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( + IDWriteFactory3 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( + IDWriteFactory3 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( + IDWriteFactory3 *This, + const WCHAR *family_name, + IDWriteFontCollection *collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR *locale, + IDWriteTextFormat **format); + + HRESULT (STDMETHODCALLTYPE *CreateTypography)( + IDWriteFactory3 *This, + IDWriteTypography **typography); + + HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( + IDWriteFactory3 *This, + IDWriteGdiInterop **gdi_interop); + + HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( + IDWriteFactory3 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( + IDWriteFactory3 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( + IDWriteFactory3 *This, + IDWriteTextFormat *format, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( + IDWriteFactory3 *This, + IDWriteTextAnalyzer **analyzer); + + HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( + IDWriteFactory3 *This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR *locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution **substitution); + + HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( + IDWriteFactory3 *This, + const DWRITE_GLYPH_RUN *glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( + IDWriteFactory3 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( + IDWriteFactory3 *This, + FLOAT gamma, + FLOAT enhcontrast, + FLOAT enhcontrast_grayscale, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams1 **params); + + /*** IDWriteFactory2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)( + IDWriteFactory3 *This, + IDWriteFontFallback **fallback); + + HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)( + IDWriteFactory3 *This, + IDWriteFontFallbackBuilder **fallbackbuilder); + + HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)( + IDWriteFactory3 *This, + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX *transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator **colorlayers); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)( + IDWriteFactory3 *This, + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2 **params); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)( + IDWriteFactory3 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory3 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)( + IDWriteFactory3 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, + FLOAT origin_x, + FLOAT origin_y, + IDWriteGlyphRunAnalysis **analysis); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)( + IDWriteFactory3 *This, + FLOAT gamma, + FLOAT enhanced_contrast, + FLOAT grayscale_enhanced_contrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY pixel_geometry, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + IDWriteRenderingParams3 **params); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)( + IDWriteFactory3 *This, + IDWriteFontFile *file, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)( + IDWriteFactory3 *This, + const WCHAR *path, + const FILETIME *writetime, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)( + IDWriteFactory3 *This, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)( + IDWriteFactory3 *This, + IDWriteFontSetBuilder **builder); + + HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)( + IDWriteFactory3 *This, + IDWriteFontSet *fontset, + IDWriteFontCollection1 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)( + IDWriteFactory3 *This, + WINBOOL include_downloadable, + IDWriteFontCollection1 **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)( + IDWriteFactory3 *This, + IDWriteFontDownloadQueue **queue); + + END_INTERFACE +} IDWriteFactory3Vtbl; + +interface IDWriteFactory3 { + CONST_VTBL IDWriteFactory3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFactory3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFactory3_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFactory methods ***/ +#define IDWriteFactory3_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) +#define IDWriteFactory3_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) +#define IDWriteFactory3_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) +#define IDWriteFactory3_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) +#define IDWriteFactory3_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) +#define IDWriteFactory3_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) +#define IDWriteFactory3_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) +#define IDWriteFactory3_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) +#define IDWriteFactory3_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) +#define IDWriteFactory3_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) +#define IDWriteFactory3_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) +#define IDWriteFactory3_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) +#define IDWriteFactory3_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) +#define IDWriteFactory3_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) +#define IDWriteFactory3_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) +#define IDWriteFactory3_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) +#define IDWriteFactory3_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) +#define IDWriteFactory3_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +/*** IDWriteFactory1 methods ***/ +#define IDWriteFactory3_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) +/*** IDWriteFactory2 methods ***/ +#define IDWriteFactory3_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback) +#define IDWriteFactory3_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder) +#define IDWriteFactory3_TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers) (This)->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers) +/*** IDWriteFactory3 methods ***/ +#define IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) +#define IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) +#define IDWriteFactory3_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference) +#define IDWriteFactory3_CreateFontFaceReference(This,path,writetime,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference) +#define IDWriteFactory3_GetSystemFontSet(This,fontset) (This)->lpVtbl->GetSystemFontSet(This,fontset) +#define IDWriteFactory3_CreateFontSetBuilder(This,builder) (This)->lpVtbl->CreateFontSetBuilder(This,builder) +#define IDWriteFactory3_CreateFontCollectionFromFontSet(This,fontset,collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection) +#define IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) +#define IDWriteFactory3_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFactory3_QueryInterface(IDWriteFactory3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFactory3_AddRef(IDWriteFactory3* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFactory3_Release(IDWriteFactory3* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFactory methods ***/ +static inline HRESULT IDWriteFactory3_CreateCustomFontCollection(IDWriteFactory3* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { + return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +} +static inline HRESULT IDWriteFactory3_RegisterFontCollectionLoader(IDWriteFactory3* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory3_UnregisterFontCollectionLoader(IDWriteFactory3* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory3_CreateFontFileReference(IDWriteFactory3* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +} +static inline HRESULT IDWriteFactory3_CreateCustomFontFileReference(IDWriteFactory3* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +} +static inline HRESULT IDWriteFactory3_CreateFontFace(IDWriteFactory3* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { + return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +} +static inline HRESULT IDWriteFactory3_CreateRenderingParams(IDWriteFactory3* This,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateRenderingParams(This,params); +} +static inline HRESULT IDWriteFactory3_CreateMonitorRenderingParams(IDWriteFactory3* This,HMONITOR monitor,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +} +static inline HRESULT IDWriteFactory3_RegisterFontFileLoader(IDWriteFactory3* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->RegisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory3_UnregisterFontFileLoader(IDWriteFactory3* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->UnregisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory3_CreateTextFormat(IDWriteFactory3* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) { + return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format); +} +static inline HRESULT IDWriteFactory3_CreateTypography(IDWriteFactory3* This,IDWriteTypography **typography) { + return This->lpVtbl->CreateTypography(This,typography); +} +static inline HRESULT IDWriteFactory3_GetGdiInterop(IDWriteFactory3* This,IDWriteGdiInterop **gdi_interop) { + return This->lpVtbl->GetGdiInterop(This,gdi_interop); +} +static inline HRESULT IDWriteFactory3_CreateTextLayout(IDWriteFactory3* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +} +static inline HRESULT IDWriteFactory3_CreateGdiCompatibleTextLayout(IDWriteFactory3* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +} +static inline HRESULT IDWriteFactory3_CreateEllipsisTrimmingSign(IDWriteFactory3* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +} +static inline HRESULT IDWriteFactory3_CreateTextAnalyzer(IDWriteFactory3* This,IDWriteTextAnalyzer **analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +} +static inline HRESULT IDWriteFactory3_CreateNumberSubstitution(IDWriteFactory3* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { + return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +} +/*** IDWriteFactory1 methods ***/ +static inline HRESULT IDWriteFactory3_GetEudcFontCollection(IDWriteFactory3* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { + return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); +} +/*** IDWriteFactory2 methods ***/ +static inline HRESULT IDWriteFactory3_GetSystemFontFallback(IDWriteFactory3* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetSystemFontFallback(This,fallback); +} +static inline HRESULT IDWriteFactory3_CreateFontFallbackBuilder(IDWriteFactory3* This,IDWriteFontFallbackBuilder **fallbackbuilder) { + return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); +} +static inline HRESULT IDWriteFactory3_TranslateColorGlyphRun(IDWriteFactory3* This,FLOAT originX,FLOAT originY,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,DWRITE_MEASURING_MODE mode,const DWRITE_MATRIX *transform,UINT32 palette_index,IDWriteColorGlyphRunEnumerator **colorlayers) { + return This->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers); +} +/*** IDWriteFactory3 methods ***/ +static inline HRESULT IDWriteFactory3_CreateGlyphRunAnalysis(IDWriteFactory3* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) { + return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis); +} +static inline HRESULT IDWriteFactory3_CreateCustomRenderingParams(IDWriteFactory3* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) { + return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params); +} +static inline HRESULT IDWriteFactory3_CreateFontFaceReference_(IDWriteFactory3* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { + return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference); +} +static inline HRESULT IDWriteFactory3_CreateFontFaceReference(IDWriteFactory3* This,const WCHAR *path,const FILETIME *writetime,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { + return This->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference); +} +static inline HRESULT IDWriteFactory3_GetSystemFontSet(IDWriteFactory3* This,IDWriteFontSet **fontset) { + return This->lpVtbl->GetSystemFontSet(This,fontset); +} +static inline HRESULT IDWriteFactory3_CreateFontSetBuilder(IDWriteFactory3* This,IDWriteFontSetBuilder **builder) { + return This->lpVtbl->CreateFontSetBuilder(This,builder); +} +static inline HRESULT IDWriteFactory3_CreateFontCollectionFromFontSet(IDWriteFactory3* This,IDWriteFontSet *fontset,IDWriteFontCollection1 **collection) { + return This->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection); +} +static inline HRESULT IDWriteFactory3_GetSystemFontCollection(IDWriteFactory3* This,WINBOOL include_downloadable,IDWriteFontCollection1 **collection,WINBOOL check_for_updates) { + return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates); +} +static inline HRESULT IDWriteFactory3_GetFontDownloadQueue(IDWriteFactory3* This,IDWriteFontDownloadQueue **queue) { + return This->lpVtbl->GetFontDownloadQueue(This,queue); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFactory3_INTERFACE_DEFINED__ */ + +typedef struct DWRITE_GLYPH_IMAGE_DATA { + const void *imageData; + UINT32 imageDataSize; + UINT32 uniqueDataId; + UINT32 pixelsPerEm; + D2D1_SIZE_U pixelSize; + D2D1_POINT_2L horizontalLeftOrigin; + D2D1_POINT_2L horizontalRightOrigin; + D2D1_POINT_2L verticalTopOrigin; + D2D1_POINT_2L verticalBottomOrigin; +} DWRITE_GLYPH_IMAGE_DATA; +/***************************************************************************** + * IDWriteFontFace4 interface + */ +#ifndef __IDWriteFontFace4_INTERFACE_DEFINED__ +#define __IDWriteFontFace4_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFace4, 0x27f2a904, 0x4eb8, 0x441d, 0x96,0x78, 0x05,0x63,0xf5,0x3e,0x3e,0x2f); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("27f2a904-4eb8-441d-9678-0563f53e3e2f") +IDWriteFontFace4 : public IDWriteFontFace3 +{ + virtual HRESULT STDMETHODCALLTYPE GetGlyphImageFormats_( + UINT16 glyph, + UINT32 ppem_first, + UINT32 ppem_last, + DWRITE_GLYPH_IMAGE_FORMATS *formats) = 0; + + virtual DWRITE_GLYPH_IMAGE_FORMATS STDMETHODCALLTYPE GetGlyphImageFormats( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGlyphImageData( + UINT16 glyph, + UINT32 ppem, + DWRITE_GLYPH_IMAGE_FORMATS format, + DWRITE_GLYPH_IMAGE_DATA *data, + void **context) = 0; + + virtual void STDMETHODCALLTYPE ReleaseGlyphImageData( + void *context) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFace4, 0x27f2a904, 0x4eb8, 0x441d, 0x96,0x78, 0x05,0x63,0xf5,0x3e,0x3e,0x2f) +#endif +#else +typedef struct IDWriteFontFace4Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFace4 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFace4 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFace4 *This); + + /*** IDWriteFontFace methods ***/ + DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( + IDWriteFontFace4 *This); + + HRESULT (STDMETHODCALLTYPE *GetFiles)( + IDWriteFontFace4 *This, + UINT32 *number_of_files, + IDWriteFontFile **fontfiles); + + UINT32 (STDMETHODCALLTYPE *GetIndex)( + IDWriteFontFace4 *This); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFontFace4 *This); + + WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( + IDWriteFontFace4 *This); + + void (STDMETHODCALLTYPE *GetMetrics)( + IDWriteFontFace4 *This, + DWRITE_FONT_METRICS *metrics); + + UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( + IDWriteFontFace4 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( + IDWriteFontFace4 *This, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( + IDWriteFontFace4 *This, + const UINT32 *codepoints, + UINT32 count, + UINT16 *glyph_indices); + + HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( + IDWriteFontFace4 *This, + UINT32 table_tag, + const void **table_data, + UINT32 *table_size, + void **context, + WINBOOL *exists); + + void (STDMETHODCALLTYPE *ReleaseFontTable)( + IDWriteFontFace4 *This, + void *table_context); + + HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( + IDWriteFontFace4 *This, + FLOAT emSize, + const UINT16 *glyph_indices, + const FLOAT *glyph_advances, + const DWRITE_GLYPH_OFFSET *glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink *geometrysink); + + HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( + IDWriteFontFace4 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( + IDWriteFontFace4 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( + IDWriteFontFace4 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + /*** IDWriteFontFace1 methods ***/ + void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)( + IDWriteFontFace4 *This, + DWRITE_FONT_METRICS1 *metrics); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)( + IDWriteFontFace4 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS1 *metrics); + + void (STDMETHODCALLTYPE *GetCaretMetrics)( + IDWriteFontFace4 *This, + DWRITE_CARET_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( + IDWriteFontFace4 *This, + UINT32 max_count, + DWRITE_UNICODE_RANGE *ranges, + UINT32 *count); + + WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( + IDWriteFontFace4 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)( + IDWriteFontFace4 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)( + IDWriteFontFace4 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances); + + HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)( + IDWriteFontFace4 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *adjustments); + + WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)( + IDWriteFontFace4 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)( + IDWriteFontFace4 *This, + FLOAT font_emsize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)( + IDWriteFontFace4 *This, + UINT32 glyph_count, + const UINT16 *nominal_indices, + UINT16 *vertical_indices); + + WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)( + IDWriteFontFace4 *This); + + /*** IDWriteFontFace2 methods ***/ + WINBOOL (STDMETHODCALLTYPE *IsColorFont)( + IDWriteFontFace4 *This); + + UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)( + IDWriteFontFace4 *This); + + UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)( + IDWriteFontFace4 *This); + + HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)( + IDWriteFontFace4 *This, + UINT32 palette_index, + UINT32 first_entry_index, + UINT32 entry_count, + DWRITE_COLOR_F *entries); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)( + IDWriteFontFace4 *This, + FLOAT fontEmSize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuringmode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *renderingmode, + DWRITE_GRID_FIT_MODE *gridfitmode); + + /*** IDWriteFontFace3 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontFace4 *This, + IDWriteFontFaceReference **reference); + + void (STDMETHODCALLTYPE *GetPanose)( + IDWriteFontFace4 *This, + DWRITE_PANOSE *panose); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( + IDWriteFontFace4 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( + IDWriteFontFace4 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( + IDWriteFontFace4 *This); + + HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( + IDWriteFontFace4 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetFaceNames)( + IDWriteFontFace4 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( + IDWriteFontFace4 *This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings **strings, + WINBOOL *exists); + + WINBOOL (STDMETHODCALLTYPE *HasCharacter)( + IDWriteFontFace4 *This, + UINT32 character); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)( + IDWriteFontFace4 *This, + FLOAT emsize, + FLOAT dpi_x, + FLOAT dpi_y, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE1 *rendering_mode, + DWRITE_GRID_FIT_MODE *gridfit_mode); + + WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)( + IDWriteFontFace4 *This, + UINT32 character); + + WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)( + IDWriteFontFace4 *This, + UINT16 glyph); + + HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)( + IDWriteFontFace4 *This, + const WCHAR *characters, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local); + + HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)( + IDWriteFontFace4 *This, + const UINT16 *glyphs, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local); + + /*** IDWriteFontFace4 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)( + IDWriteFontFace4 *This, + UINT16 glyph, + UINT32 ppem_first, + UINT32 ppem_last, + DWRITE_GLYPH_IMAGE_FORMATS *formats); + + DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)( + IDWriteFontFace4 *This); + + HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)( + IDWriteFontFace4 *This, + UINT16 glyph, + UINT32 ppem, + DWRITE_GLYPH_IMAGE_FORMATS format, + DWRITE_GLYPH_IMAGE_DATA *data, + void **context); + + void (STDMETHODCALLTYPE *ReleaseGlyphImageData)( + IDWriteFontFace4 *This, + void *context); + + END_INTERFACE +} IDWriteFontFace4Vtbl; + +interface IDWriteFontFace4 { + CONST_VTBL IDWriteFontFace4Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFace4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFace4_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFace4_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFace methods ***/ +#define IDWriteFontFace4_GetType(This) (This)->lpVtbl->GetType(This) +#define IDWriteFontFace4_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) +#define IDWriteFontFace4_GetIndex(This) (This)->lpVtbl->GetIndex(This) +#define IDWriteFontFace4_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +#define IDWriteFontFace4_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) +#define IDWriteFontFace4_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) +#define IDWriteFontFace4_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) +#define IDWriteFontFace4_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) +#define IDWriteFontFace4_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) +#define IDWriteFontFace4_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) +#define IDWriteFontFace4_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) +#define IDWriteFontFace4_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) +/*** IDWriteFontFace1 methods ***/ +#define IDWriteFontFace4_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics) +#define IDWriteFontFace4_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) +#define IDWriteFontFace4_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics) +#define IDWriteFontFace4_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFontFace4_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) +#define IDWriteFontFace4_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) +#define IDWriteFontFace4_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) +#define IDWriteFontFace4_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments) +#define IDWriteFontFace4_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) +#define IDWriteFontFace4_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) +#define IDWriteFontFace4_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) +/*** IDWriteFontFace2 methods ***/ +#define IDWriteFontFace4_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) +#define IDWriteFontFace4_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) +#define IDWriteFontFace4_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) +#define IDWriteFontFace4_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) +/*** IDWriteFontFace3 methods ***/ +#define IDWriteFontFace4_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference) +#define IDWriteFontFace4_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) +#define IDWriteFontFace4_GetWeight(This) (This)->lpVtbl->GetWeight(This) +#define IDWriteFontFace4_GetStretch(This) (This)->lpVtbl->GetStretch(This) +#define IDWriteFontFace4_GetStyle(This) (This)->lpVtbl->GetStyle(This) +#define IDWriteFontFace4_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names) +#define IDWriteFontFace4_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names) +#define IDWriteFontFace4_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) +#define IDWriteFontFace4_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character) +#define IDWriteFontFace4_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) +#define IDWriteFontFace4_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character) +#define IDWriteFontFace4_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph) +#define IDWriteFontFace4_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) +#define IDWriteFontFace4_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) +/*** IDWriteFontFace4 methods ***/ +#define IDWriteFontFace4_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) +#define IDWriteFontFace4_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This) +#define IDWriteFontFace4_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context) +#define IDWriteFontFace4_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFace4_QueryInterface(IDWriteFontFace4* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFace4_AddRef(IDWriteFontFace4* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFace4_Release(IDWriteFontFace4* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFace methods ***/ +static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace4_GetType(IDWriteFontFace4* This) { + return This->lpVtbl->GetType(This); +} +static inline HRESULT IDWriteFontFace4_GetFiles(IDWriteFontFace4* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { + return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); +} +static inline UINT32 IDWriteFontFace4_GetIndex(IDWriteFontFace4* This) { + return This->lpVtbl->GetIndex(This); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace4_GetSimulations(IDWriteFontFace4* This) { + return This->lpVtbl->GetSimulations(This); +} +static inline WINBOOL IDWriteFontFace4_IsSymbolFont(IDWriteFontFace4* This) { + return This->lpVtbl->IsSymbolFont(This); +} +static inline UINT16 IDWriteFontFace4_GetGlyphCount(IDWriteFontFace4* This) { + return This->lpVtbl->GetGlyphCount(This); +} +static inline HRESULT IDWriteFontFace4_GetDesignGlyphMetrics(IDWriteFontFace4* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); +} +static inline HRESULT IDWriteFontFace4_GetGlyphIndices(IDWriteFontFace4* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { + return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); +} +static inline HRESULT IDWriteFontFace4_TryGetFontTable(IDWriteFontFace4* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { + return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); +} +static inline void IDWriteFontFace4_ReleaseFontTable(IDWriteFontFace4* This,void *table_context) { + This->lpVtbl->ReleaseFontTable(This,table_context); +} +static inline HRESULT IDWriteFontFace4_GetGlyphRunOutline(IDWriteFontFace4* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) { + return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); +} +static inline HRESULT IDWriteFontFace4_GetGdiCompatibleGlyphMetrics(IDWriteFontFace4* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); +} +/*** IDWriteFontFace1 methods ***/ +static inline void IDWriteFontFace4_GetMetrics(IDWriteFontFace4* This,DWRITE_FONT_METRICS1 *metrics) { + This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace4_GetGdiCompatibleMetrics(IDWriteFontFace4* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) { + return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics); +} +static inline void IDWriteFontFace4_GetCaretMetrics(IDWriteFontFace4* This,DWRITE_CARET_METRICS *metrics) { + This->lpVtbl->GetCaretMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace4_GetUnicodeRanges(IDWriteFontFace4* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { + return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +} +static inline WINBOOL IDWriteFontFace4_IsMonospacedFont(IDWriteFontFace4* This) { + return This->lpVtbl->IsMonospacedFont(This); +} +static inline HRESULT IDWriteFontFace4_GetDesignGlyphAdvances(IDWriteFontFace4* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways); +} +static inline HRESULT IDWriteFontFace4_GetGdiCompatibleGlyphAdvances(IDWriteFontFace4* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) { + return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances); +} +static inline HRESULT IDWriteFontFace4_GetKerningPairAdjustments(IDWriteFontFace4* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) { + return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments); +} +static inline WINBOOL IDWriteFontFace4_HasKerningPairs(IDWriteFontFace4* This) { + return This->lpVtbl->HasKerningPairs(This); +} +static inline HRESULT IDWriteFontFace4_GetVerticalGlyphVariants(IDWriteFontFace4* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) { + return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices); +} +static inline WINBOOL IDWriteFontFace4_HasVerticalGlyphVariants(IDWriteFontFace4* This) { + return This->lpVtbl->HasVerticalGlyphVariants(This); +} +/*** IDWriteFontFace2 methods ***/ +static inline WINBOOL IDWriteFontFace4_IsColorFont(IDWriteFontFace4* This) { + return This->lpVtbl->IsColorFont(This); +} +static inline UINT32 IDWriteFontFace4_GetColorPaletteCount(IDWriteFontFace4* This) { + return This->lpVtbl->GetColorPaletteCount(This); +} +static inline UINT32 IDWriteFontFace4_GetPaletteEntryCount(IDWriteFontFace4* This) { + return This->lpVtbl->GetPaletteEntryCount(This); +} +static inline HRESULT IDWriteFontFace4_GetPaletteEntries(IDWriteFontFace4* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) { + return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries); +} +/*** IDWriteFontFace3 methods ***/ +static inline HRESULT IDWriteFontFace4_GetFontFaceReference(IDWriteFontFace4* This,IDWriteFontFaceReference **reference) { + return This->lpVtbl->GetFontFaceReference(This,reference); +} +static inline void IDWriteFontFace4_GetPanose(IDWriteFontFace4* This,DWRITE_PANOSE *panose) { + This->lpVtbl->GetPanose(This,panose); +} +static inline DWRITE_FONT_WEIGHT IDWriteFontFace4_GetWeight(IDWriteFontFace4* This) { + return This->lpVtbl->GetWeight(This); +} +static inline DWRITE_FONT_STRETCH IDWriteFontFace4_GetStretch(IDWriteFontFace4* This) { + return This->lpVtbl->GetStretch(This); +} +static inline DWRITE_FONT_STYLE IDWriteFontFace4_GetStyle(IDWriteFontFace4* This) { + return This->lpVtbl->GetStyle(This); +} +static inline HRESULT IDWriteFontFace4_GetFamilyNames(IDWriteFontFace4* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFamilyNames(This,names); +} +static inline HRESULT IDWriteFontFace4_GetFaceNames(IDWriteFontFace4* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFaceNames(This,names); +} +static inline HRESULT IDWriteFontFace4_GetInformationalStrings(IDWriteFontFace4* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { + return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +} +static inline WINBOOL IDWriteFontFace4_HasCharacter(IDWriteFontFace4* This,UINT32 character) { + return This->lpVtbl->HasCharacter(This,character); +} +static inline HRESULT IDWriteFontFace4_GetRecommendedRenderingMode(IDWriteFontFace4* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) { + return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode); +} +static inline WINBOOL IDWriteFontFace4_IsCharacterLocal(IDWriteFontFace4* This,UINT32 character) { + return This->lpVtbl->IsCharacterLocal(This,character); +} +static inline WINBOOL IDWriteFontFace4_IsGlyphLocal(IDWriteFontFace4* This,UINT16 glyph) { + return This->lpVtbl->IsGlyphLocal(This,glyph); +} +static inline HRESULT IDWriteFontFace4_AreCharactersLocal(IDWriteFontFace4* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { + return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local); +} +static inline HRESULT IDWriteFontFace4_AreGlyphsLocal(IDWriteFontFace4* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { + return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local); +} +/*** IDWriteFontFace4 methods ***/ +static inline HRESULT IDWriteFontFace4_GetGlyphImageFormats_(IDWriteFontFace4* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) { + return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats); +} +static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace4_GetGlyphImageFormats(IDWriteFontFace4* This) { + return This->lpVtbl->GetGlyphImageFormats(This); +} +static inline HRESULT IDWriteFontFace4_GetGlyphImageData(IDWriteFontFace4* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) { + return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context); +} +static inline void IDWriteFontFace4_ReleaseGlyphImageData(IDWriteFontFace4* This,void *context) { + This->lpVtbl->ReleaseGlyphImageData(This,context); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFace4_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFace5 interface + */ +#ifndef __IDWriteFontFace5_INTERFACE_DEFINED__ +#define __IDWriteFontFace5_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFace5, 0x98eff3a5, 0xb667, 0x479a, 0xb1,0x45, 0xe2,0xfa,0x5b,0x9f,0xdc,0x29); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("98eff3a5-b667-479a-b145-e2fa5b9fdc29") +IDWriteFontFace5 : public IDWriteFontFace4 +{ + virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues( + DWRITE_FONT_AXIS_VALUE *values, + UINT32 value_count) = 0; + + virtual WINBOOL STDMETHODCALLTYPE HasVariations( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontResource( + IDWriteFontResource **resource) = 0; + + virtual WINBOOL STDMETHODCALLTYPE Equals( + IDWriteFontFace *fontface) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFace5, 0x98eff3a5, 0xb667, 0x479a, 0xb1,0x45, 0xe2,0xfa,0x5b,0x9f,0xdc,0x29) +#endif +#else +typedef struct IDWriteFontFace5Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFace5 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFace5 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFace5 *This); + + /*** IDWriteFontFace methods ***/ + DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( + IDWriteFontFace5 *This); + + HRESULT (STDMETHODCALLTYPE *GetFiles)( + IDWriteFontFace5 *This, + UINT32 *number_of_files, + IDWriteFontFile **fontfiles); + + UINT32 (STDMETHODCALLTYPE *GetIndex)( + IDWriteFontFace5 *This); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFontFace5 *This); + + WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( + IDWriteFontFace5 *This); + + void (STDMETHODCALLTYPE *GetMetrics)( + IDWriteFontFace5 *This, + DWRITE_FONT_METRICS *metrics); + + UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( + IDWriteFontFace5 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( + IDWriteFontFace5 *This, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( + IDWriteFontFace5 *This, + const UINT32 *codepoints, + UINT32 count, + UINT16 *glyph_indices); + + HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( + IDWriteFontFace5 *This, + UINT32 table_tag, + const void **table_data, + UINT32 *table_size, + void **context, + WINBOOL *exists); + + void (STDMETHODCALLTYPE *ReleaseFontTable)( + IDWriteFontFace5 *This, + void *table_context); + + HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( + IDWriteFontFace5 *This, + FLOAT emSize, + const UINT16 *glyph_indices, + const FLOAT *glyph_advances, + const DWRITE_GLYPH_OFFSET *glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink *geometrysink); + + HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( + IDWriteFontFace5 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( + IDWriteFontFace5 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( + IDWriteFontFace5 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + /*** IDWriteFontFace1 methods ***/ + void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)( + IDWriteFontFace5 *This, + DWRITE_FONT_METRICS1 *metrics); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)( + IDWriteFontFace5 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS1 *metrics); + + void (STDMETHODCALLTYPE *GetCaretMetrics)( + IDWriteFontFace5 *This, + DWRITE_CARET_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( + IDWriteFontFace5 *This, + UINT32 max_count, + DWRITE_UNICODE_RANGE *ranges, + UINT32 *count); + + WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( + IDWriteFontFace5 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)( + IDWriteFontFace5 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)( + IDWriteFontFace5 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances); + + HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)( + IDWriteFontFace5 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *adjustments); + + WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)( + IDWriteFontFace5 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)( + IDWriteFontFace5 *This, + FLOAT font_emsize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)( + IDWriteFontFace5 *This, + UINT32 glyph_count, + const UINT16 *nominal_indices, + UINT16 *vertical_indices); + + WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)( + IDWriteFontFace5 *This); + + /*** IDWriteFontFace2 methods ***/ + WINBOOL (STDMETHODCALLTYPE *IsColorFont)( + IDWriteFontFace5 *This); + + UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)( + IDWriteFontFace5 *This); + + UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)( + IDWriteFontFace5 *This); + + HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)( + IDWriteFontFace5 *This, + UINT32 palette_index, + UINT32 first_entry_index, + UINT32 entry_count, + DWRITE_COLOR_F *entries); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)( + IDWriteFontFace5 *This, + FLOAT fontEmSize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuringmode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *renderingmode, + DWRITE_GRID_FIT_MODE *gridfitmode); + + /*** IDWriteFontFace3 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontFace5 *This, + IDWriteFontFaceReference **reference); + + void (STDMETHODCALLTYPE *GetPanose)( + IDWriteFontFace5 *This, + DWRITE_PANOSE *panose); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( + IDWriteFontFace5 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( + IDWriteFontFace5 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( + IDWriteFontFace5 *This); + + HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( + IDWriteFontFace5 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetFaceNames)( + IDWriteFontFace5 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( + IDWriteFontFace5 *This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings **strings, + WINBOOL *exists); + + WINBOOL (STDMETHODCALLTYPE *HasCharacter)( + IDWriteFontFace5 *This, + UINT32 character); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)( + IDWriteFontFace5 *This, + FLOAT emsize, + FLOAT dpi_x, + FLOAT dpi_y, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE1 *rendering_mode, + DWRITE_GRID_FIT_MODE *gridfit_mode); + + WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)( + IDWriteFontFace5 *This, + UINT32 character); + + WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)( + IDWriteFontFace5 *This, + UINT16 glyph); + + HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)( + IDWriteFontFace5 *This, + const WCHAR *characters, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local); + + HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)( + IDWriteFontFace5 *This, + const UINT16 *glyphs, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local); + + /*** IDWriteFontFace4 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)( + IDWriteFontFace5 *This, + UINT16 glyph, + UINT32 ppem_first, + UINT32 ppem_last, + DWRITE_GLYPH_IMAGE_FORMATS *formats); + + DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)( + IDWriteFontFace5 *This); + + HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)( + IDWriteFontFace5 *This, + UINT16 glyph, + UINT32 ppem, + DWRITE_GLYPH_IMAGE_FORMATS format, + DWRITE_GLYPH_IMAGE_DATA *data, + void **context); + + void (STDMETHODCALLTYPE *ReleaseGlyphImageData)( + IDWriteFontFace5 *This, + void *context); + + /*** IDWriteFontFace5 methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)( + IDWriteFontFace5 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)( + IDWriteFontFace5 *This, + DWRITE_FONT_AXIS_VALUE *values, + UINT32 value_count); + + WINBOOL (STDMETHODCALLTYPE *HasVariations)( + IDWriteFontFace5 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontResource)( + IDWriteFontFace5 *This, + IDWriteFontResource **resource); + + WINBOOL (STDMETHODCALLTYPE *Equals)( + IDWriteFontFace5 *This, + IDWriteFontFace *fontface); + + END_INTERFACE +} IDWriteFontFace5Vtbl; + +interface IDWriteFontFace5 { + CONST_VTBL IDWriteFontFace5Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFace5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFace5_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFace5_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFace methods ***/ +#define IDWriteFontFace5_GetType(This) (This)->lpVtbl->GetType(This) +#define IDWriteFontFace5_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) +#define IDWriteFontFace5_GetIndex(This) (This)->lpVtbl->GetIndex(This) +#define IDWriteFontFace5_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +#define IDWriteFontFace5_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) +#define IDWriteFontFace5_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) +#define IDWriteFontFace5_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) +#define IDWriteFontFace5_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) +#define IDWriteFontFace5_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) +#define IDWriteFontFace5_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) +#define IDWriteFontFace5_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) +#define IDWriteFontFace5_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) +/*** IDWriteFontFace1 methods ***/ +#define IDWriteFontFace5_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics) +#define IDWriteFontFace5_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) +#define IDWriteFontFace5_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics) +#define IDWriteFontFace5_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFontFace5_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) +#define IDWriteFontFace5_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) +#define IDWriteFontFace5_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) +#define IDWriteFontFace5_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments) +#define IDWriteFontFace5_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) +#define IDWriteFontFace5_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) +#define IDWriteFontFace5_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) +/*** IDWriteFontFace2 methods ***/ +#define IDWriteFontFace5_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) +#define IDWriteFontFace5_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) +#define IDWriteFontFace5_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) +#define IDWriteFontFace5_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) +/*** IDWriteFontFace3 methods ***/ +#define IDWriteFontFace5_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference) +#define IDWriteFontFace5_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) +#define IDWriteFontFace5_GetWeight(This) (This)->lpVtbl->GetWeight(This) +#define IDWriteFontFace5_GetStretch(This) (This)->lpVtbl->GetStretch(This) +#define IDWriteFontFace5_GetStyle(This) (This)->lpVtbl->GetStyle(This) +#define IDWriteFontFace5_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names) +#define IDWriteFontFace5_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names) +#define IDWriteFontFace5_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) +#define IDWriteFontFace5_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character) +#define IDWriteFontFace5_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) +#define IDWriteFontFace5_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character) +#define IDWriteFontFace5_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph) +#define IDWriteFontFace5_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) +#define IDWriteFontFace5_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) +/*** IDWriteFontFace4 methods ***/ +#define IDWriteFontFace5_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) +#define IDWriteFontFace5_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This) +#define IDWriteFontFace5_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context) +#define IDWriteFontFace5_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context) +/*** IDWriteFontFace5 methods ***/ +#define IDWriteFontFace5_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This) +#define IDWriteFontFace5_GetFontAxisValues(This,values,value_count) (This)->lpVtbl->GetFontAxisValues(This,values,value_count) +#define IDWriteFontFace5_HasVariations(This) (This)->lpVtbl->HasVariations(This) +#define IDWriteFontFace5_GetFontResource(This,resource) (This)->lpVtbl->GetFontResource(This,resource) +#define IDWriteFontFace5_Equals(This,fontface) (This)->lpVtbl->Equals(This,fontface) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFace5_QueryInterface(IDWriteFontFace5* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFace5_AddRef(IDWriteFontFace5* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFace5_Release(IDWriteFontFace5* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFace methods ***/ +static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace5_GetType(IDWriteFontFace5* This) { + return This->lpVtbl->GetType(This); +} +static inline HRESULT IDWriteFontFace5_GetFiles(IDWriteFontFace5* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { + return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); +} +static inline UINT32 IDWriteFontFace5_GetIndex(IDWriteFontFace5* This) { + return This->lpVtbl->GetIndex(This); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace5_GetSimulations(IDWriteFontFace5* This) { + return This->lpVtbl->GetSimulations(This); +} +static inline WINBOOL IDWriteFontFace5_IsSymbolFont(IDWriteFontFace5* This) { + return This->lpVtbl->IsSymbolFont(This); +} +static inline UINT16 IDWriteFontFace5_GetGlyphCount(IDWriteFontFace5* This) { + return This->lpVtbl->GetGlyphCount(This); +} +static inline HRESULT IDWriteFontFace5_GetDesignGlyphMetrics(IDWriteFontFace5* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); +} +static inline HRESULT IDWriteFontFace5_GetGlyphIndices(IDWriteFontFace5* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { + return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); +} +static inline HRESULT IDWriteFontFace5_TryGetFontTable(IDWriteFontFace5* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { + return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); +} +static inline void IDWriteFontFace5_ReleaseFontTable(IDWriteFontFace5* This,void *table_context) { + This->lpVtbl->ReleaseFontTable(This,table_context); +} +static inline HRESULT IDWriteFontFace5_GetGlyphRunOutline(IDWriteFontFace5* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) { + return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); +} +static inline HRESULT IDWriteFontFace5_GetGdiCompatibleGlyphMetrics(IDWriteFontFace5* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); +} +/*** IDWriteFontFace1 methods ***/ +static inline void IDWriteFontFace5_GetMetrics(IDWriteFontFace5* This,DWRITE_FONT_METRICS1 *metrics) { + This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace5_GetGdiCompatibleMetrics(IDWriteFontFace5* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) { + return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics); +} +static inline void IDWriteFontFace5_GetCaretMetrics(IDWriteFontFace5* This,DWRITE_CARET_METRICS *metrics) { + This->lpVtbl->GetCaretMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace5_GetUnicodeRanges(IDWriteFontFace5* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { + return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +} +static inline WINBOOL IDWriteFontFace5_IsMonospacedFont(IDWriteFontFace5* This) { + return This->lpVtbl->IsMonospacedFont(This); +} +static inline HRESULT IDWriteFontFace5_GetDesignGlyphAdvances(IDWriteFontFace5* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways); +} +static inline HRESULT IDWriteFontFace5_GetGdiCompatibleGlyphAdvances(IDWriteFontFace5* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) { + return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances); +} +static inline HRESULT IDWriteFontFace5_GetKerningPairAdjustments(IDWriteFontFace5* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) { + return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments); +} +static inline WINBOOL IDWriteFontFace5_HasKerningPairs(IDWriteFontFace5* This) { + return This->lpVtbl->HasKerningPairs(This); +} +static inline HRESULT IDWriteFontFace5_GetVerticalGlyphVariants(IDWriteFontFace5* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) { + return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices); +} +static inline WINBOOL IDWriteFontFace5_HasVerticalGlyphVariants(IDWriteFontFace5* This) { + return This->lpVtbl->HasVerticalGlyphVariants(This); +} +/*** IDWriteFontFace2 methods ***/ +static inline WINBOOL IDWriteFontFace5_IsColorFont(IDWriteFontFace5* This) { + return This->lpVtbl->IsColorFont(This); +} +static inline UINT32 IDWriteFontFace5_GetColorPaletteCount(IDWriteFontFace5* This) { + return This->lpVtbl->GetColorPaletteCount(This); +} +static inline UINT32 IDWriteFontFace5_GetPaletteEntryCount(IDWriteFontFace5* This) { + return This->lpVtbl->GetPaletteEntryCount(This); +} +static inline HRESULT IDWriteFontFace5_GetPaletteEntries(IDWriteFontFace5* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) { + return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries); +} +/*** IDWriteFontFace3 methods ***/ +static inline HRESULT IDWriteFontFace5_GetFontFaceReference(IDWriteFontFace5* This,IDWriteFontFaceReference **reference) { + return This->lpVtbl->GetFontFaceReference(This,reference); +} +static inline void IDWriteFontFace5_GetPanose(IDWriteFontFace5* This,DWRITE_PANOSE *panose) { + This->lpVtbl->GetPanose(This,panose); +} +static inline DWRITE_FONT_WEIGHT IDWriteFontFace5_GetWeight(IDWriteFontFace5* This) { + return This->lpVtbl->GetWeight(This); +} +static inline DWRITE_FONT_STRETCH IDWriteFontFace5_GetStretch(IDWriteFontFace5* This) { + return This->lpVtbl->GetStretch(This); +} +static inline DWRITE_FONT_STYLE IDWriteFontFace5_GetStyle(IDWriteFontFace5* This) { + return This->lpVtbl->GetStyle(This); +} +static inline HRESULT IDWriteFontFace5_GetFamilyNames(IDWriteFontFace5* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFamilyNames(This,names); +} +static inline HRESULT IDWriteFontFace5_GetFaceNames(IDWriteFontFace5* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFaceNames(This,names); +} +static inline HRESULT IDWriteFontFace5_GetInformationalStrings(IDWriteFontFace5* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { + return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +} +static inline WINBOOL IDWriteFontFace5_HasCharacter(IDWriteFontFace5* This,UINT32 character) { + return This->lpVtbl->HasCharacter(This,character); +} +static inline HRESULT IDWriteFontFace5_GetRecommendedRenderingMode(IDWriteFontFace5* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) { + return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode); +} +static inline WINBOOL IDWriteFontFace5_IsCharacterLocal(IDWriteFontFace5* This,UINT32 character) { + return This->lpVtbl->IsCharacterLocal(This,character); +} +static inline WINBOOL IDWriteFontFace5_IsGlyphLocal(IDWriteFontFace5* This,UINT16 glyph) { + return This->lpVtbl->IsGlyphLocal(This,glyph); +} +static inline HRESULT IDWriteFontFace5_AreCharactersLocal(IDWriteFontFace5* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { + return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local); +} +static inline HRESULT IDWriteFontFace5_AreGlyphsLocal(IDWriteFontFace5* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { + return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local); +} +/*** IDWriteFontFace4 methods ***/ +static inline HRESULT IDWriteFontFace5_GetGlyphImageFormats_(IDWriteFontFace5* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) { + return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats); +} +static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace5_GetGlyphImageFormats(IDWriteFontFace5* This) { + return This->lpVtbl->GetGlyphImageFormats(This); +} +static inline HRESULT IDWriteFontFace5_GetGlyphImageData(IDWriteFontFace5* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) { + return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context); +} +static inline void IDWriteFontFace5_ReleaseGlyphImageData(IDWriteFontFace5* This,void *context) { + This->lpVtbl->ReleaseGlyphImageData(This,context); +} +/*** IDWriteFontFace5 methods ***/ +static inline UINT32 IDWriteFontFace5_GetFontAxisValueCount(IDWriteFontFace5* This) { + return This->lpVtbl->GetFontAxisValueCount(This); +} +static inline HRESULT IDWriteFontFace5_GetFontAxisValues(IDWriteFontFace5* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 value_count) { + return This->lpVtbl->GetFontAxisValues(This,values,value_count); +} +static inline WINBOOL IDWriteFontFace5_HasVariations(IDWriteFontFace5* This) { + return This->lpVtbl->HasVariations(This); +} +static inline HRESULT IDWriteFontFace5_GetFontResource(IDWriteFontFace5* This,IDWriteFontResource **resource) { + return This->lpVtbl->GetFontResource(This,resource); +} +static inline WINBOOL IDWriteFontFace5_Equals(IDWriteFontFace5* This,IDWriteFontFace *fontface) { + return This->lpVtbl->Equals(This,fontface); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFace5_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFace6 interface + */ +#ifndef __IDWriteFontFace6_INTERFACE_DEFINED__ +#define __IDWriteFontFace6_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFace6, 0xc4b1fe1b, 0x6e84, 0x47d5, 0xb5,0x4c, 0xa5,0x97,0x98,0x1b,0x06,0xad); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("c4b1fe1b-6e84-47d5-b54c-a597981b06ad") +IDWriteFontFace6 : public IDWriteFontFace5 +{ + virtual HRESULT STDMETHODCALLTYPE GetFamilyNames( + DWRITE_FONT_FAMILY_MODEL font_family_model, + IDWriteLocalizedStrings **names) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFaceNames( + DWRITE_FONT_FAMILY_MODEL font_family_model, + IDWriteLocalizedStrings **names) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFace6, 0xc4b1fe1b, 0x6e84, 0x47d5, 0xb5,0x4c, 0xa5,0x97,0x98,0x1b,0x06,0xad) +#endif +#else +typedef struct IDWriteFontFace6Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFace6 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFace6 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFace6 *This); + + /*** IDWriteFontFace methods ***/ + DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( + IDWriteFontFace6 *This); + + HRESULT (STDMETHODCALLTYPE *GetFiles)( + IDWriteFontFace6 *This, + UINT32 *number_of_files, + IDWriteFontFile **fontfiles); + + UINT32 (STDMETHODCALLTYPE *GetIndex)( + IDWriteFontFace6 *This); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFontFace6 *This); + + WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( + IDWriteFontFace6 *This); + + void (STDMETHODCALLTYPE *GetMetrics)( + IDWriteFontFace6 *This, + DWRITE_FONT_METRICS *metrics); + + UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( + IDWriteFontFace6 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( + IDWriteFontFace6 *This, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( + IDWriteFontFace6 *This, + const UINT32 *codepoints, + UINT32 count, + UINT16 *glyph_indices); + + HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( + IDWriteFontFace6 *This, + UINT32 table_tag, + const void **table_data, + UINT32 *table_size, + void **context, + WINBOOL *exists); + + void (STDMETHODCALLTYPE *ReleaseFontTable)( + IDWriteFontFace6 *This, + void *table_context); + + HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( + IDWriteFontFace6 *This, + FLOAT emSize, + const UINT16 *glyph_indices, + const FLOAT *glyph_advances, + const DWRITE_GLYPH_OFFSET *glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink *geometrysink); + + HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( + IDWriteFontFace6 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( + IDWriteFontFace6 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( + IDWriteFontFace6 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + /*** IDWriteFontFace1 methods ***/ + void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)( + IDWriteFontFace6 *This, + DWRITE_FONT_METRICS1 *metrics); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)( + IDWriteFontFace6 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS1 *metrics); + + void (STDMETHODCALLTYPE *GetCaretMetrics)( + IDWriteFontFace6 *This, + DWRITE_CARET_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( + IDWriteFontFace6 *This, + UINT32 max_count, + DWRITE_UNICODE_RANGE *ranges, + UINT32 *count); + + WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( + IDWriteFontFace6 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)( + IDWriteFontFace6 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)( + IDWriteFontFace6 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances); + + HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)( + IDWriteFontFace6 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *adjustments); + + WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)( + IDWriteFontFace6 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)( + IDWriteFontFace6 *This, + FLOAT font_emsize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)( + IDWriteFontFace6 *This, + UINT32 glyph_count, + const UINT16 *nominal_indices, + UINT16 *vertical_indices); + + WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)( + IDWriteFontFace6 *This); + + /*** IDWriteFontFace2 methods ***/ + WINBOOL (STDMETHODCALLTYPE *IsColorFont)( + IDWriteFontFace6 *This); + + UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)( + IDWriteFontFace6 *This); + + UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)( + IDWriteFontFace6 *This); + + HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)( + IDWriteFontFace6 *This, + UINT32 palette_index, + UINT32 first_entry_index, + UINT32 entry_count, + DWRITE_COLOR_F *entries); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)( + IDWriteFontFace6 *This, + FLOAT fontEmSize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuringmode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *renderingmode, + DWRITE_GRID_FIT_MODE *gridfitmode); + + /*** IDWriteFontFace3 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontFace6 *This, + IDWriteFontFaceReference **reference); + + void (STDMETHODCALLTYPE *GetPanose)( + IDWriteFontFace6 *This, + DWRITE_PANOSE *panose); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( + IDWriteFontFace6 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( + IDWriteFontFace6 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( + IDWriteFontFace6 *This); + + HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( + IDWriteFontFace6 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetFaceNames)( + IDWriteFontFace6 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( + IDWriteFontFace6 *This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings **strings, + WINBOOL *exists); + + WINBOOL (STDMETHODCALLTYPE *HasCharacter)( + IDWriteFontFace6 *This, + UINT32 character); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)( + IDWriteFontFace6 *This, + FLOAT emsize, + FLOAT dpi_x, + FLOAT dpi_y, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE1 *rendering_mode, + DWRITE_GRID_FIT_MODE *gridfit_mode); + + WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)( + IDWriteFontFace6 *This, + UINT32 character); + + WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)( + IDWriteFontFace6 *This, + UINT16 glyph); + + HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)( + IDWriteFontFace6 *This, + const WCHAR *characters, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local); + + HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)( + IDWriteFontFace6 *This, + const UINT16 *glyphs, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local); + + /*** IDWriteFontFace4 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)( + IDWriteFontFace6 *This, + UINT16 glyph, + UINT32 ppem_first, + UINT32 ppem_last, + DWRITE_GLYPH_IMAGE_FORMATS *formats); + + DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)( + IDWriteFontFace6 *This); + + HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)( + IDWriteFontFace6 *This, + UINT16 glyph, + UINT32 ppem, + DWRITE_GLYPH_IMAGE_FORMATS format, + DWRITE_GLYPH_IMAGE_DATA *data, + void **context); + + void (STDMETHODCALLTYPE *ReleaseGlyphImageData)( + IDWriteFontFace6 *This, + void *context); + + /*** IDWriteFontFace5 methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)( + IDWriteFontFace6 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)( + IDWriteFontFace6 *This, + DWRITE_FONT_AXIS_VALUE *values, + UINT32 value_count); + + WINBOOL (STDMETHODCALLTYPE *HasVariations)( + IDWriteFontFace6 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontResource)( + IDWriteFontFace6 *This, + IDWriteFontResource **resource); + + WINBOOL (STDMETHODCALLTYPE *Equals)( + IDWriteFontFace6 *This, + IDWriteFontFace *fontface); + + /*** IDWriteFontFace6 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFamilyNames)( + IDWriteFontFace6 *This, + DWRITE_FONT_FAMILY_MODEL font_family_model, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFaceNames)( + IDWriteFontFace6 *This, + DWRITE_FONT_FAMILY_MODEL font_family_model, + IDWriteLocalizedStrings **names); + + END_INTERFACE +} IDWriteFontFace6Vtbl; + +interface IDWriteFontFace6 { + CONST_VTBL IDWriteFontFace6Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFace6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFace6_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFace6_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFace methods ***/ +#define IDWriteFontFace6_GetType(This) (This)->lpVtbl->GetType(This) +#define IDWriteFontFace6_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) +#define IDWriteFontFace6_GetIndex(This) (This)->lpVtbl->GetIndex(This) +#define IDWriteFontFace6_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +#define IDWriteFontFace6_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) +#define IDWriteFontFace6_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) +#define IDWriteFontFace6_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) +#define IDWriteFontFace6_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) +#define IDWriteFontFace6_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) +#define IDWriteFontFace6_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) +#define IDWriteFontFace6_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) +#define IDWriteFontFace6_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) +/*** IDWriteFontFace1 methods ***/ +#define IDWriteFontFace6_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics) +#define IDWriteFontFace6_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) +#define IDWriteFontFace6_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics) +#define IDWriteFontFace6_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFontFace6_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) +#define IDWriteFontFace6_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) +#define IDWriteFontFace6_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) +#define IDWriteFontFace6_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments) +#define IDWriteFontFace6_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) +#define IDWriteFontFace6_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) +#define IDWriteFontFace6_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) +/*** IDWriteFontFace2 methods ***/ +#define IDWriteFontFace6_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) +#define IDWriteFontFace6_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) +#define IDWriteFontFace6_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) +#define IDWriteFontFace6_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) +/*** IDWriteFontFace3 methods ***/ +#define IDWriteFontFace6_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference) +#define IDWriteFontFace6_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) +#define IDWriteFontFace6_GetWeight(This) (This)->lpVtbl->GetWeight(This) +#define IDWriteFontFace6_GetStretch(This) (This)->lpVtbl->GetStretch(This) +#define IDWriteFontFace6_GetStyle(This) (This)->lpVtbl->GetStyle(This) +#define IDWriteFontFace6_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) +#define IDWriteFontFace6_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character) +#define IDWriteFontFace6_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) +#define IDWriteFontFace6_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character) +#define IDWriteFontFace6_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph) +#define IDWriteFontFace6_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) +#define IDWriteFontFace6_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) +/*** IDWriteFontFace4 methods ***/ +#define IDWriteFontFace6_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) +#define IDWriteFontFace6_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This) +#define IDWriteFontFace6_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context) +#define IDWriteFontFace6_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context) +/*** IDWriteFontFace5 methods ***/ +#define IDWriteFontFace6_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This) +#define IDWriteFontFace6_GetFontAxisValues(This,values,value_count) (This)->lpVtbl->GetFontAxisValues(This,values,value_count) +#define IDWriteFontFace6_HasVariations(This) (This)->lpVtbl->HasVariations(This) +#define IDWriteFontFace6_GetFontResource(This,resource) (This)->lpVtbl->GetFontResource(This,resource) +#define IDWriteFontFace6_Equals(This,fontface) (This)->lpVtbl->Equals(This,fontface) +/*** IDWriteFontFace6 methods ***/ +#define IDWriteFontFace6_GetFamilyNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names) +#define IDWriteFontFace6_GetFaceNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFace6_QueryInterface(IDWriteFontFace6* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFace6_AddRef(IDWriteFontFace6* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFace6_Release(IDWriteFontFace6* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFace methods ***/ +static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace6_GetType(IDWriteFontFace6* This) { + return This->lpVtbl->GetType(This); +} +static inline HRESULT IDWriteFontFace6_GetFiles(IDWriteFontFace6* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { + return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); +} +static inline UINT32 IDWriteFontFace6_GetIndex(IDWriteFontFace6* This) { + return This->lpVtbl->GetIndex(This); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace6_GetSimulations(IDWriteFontFace6* This) { + return This->lpVtbl->GetSimulations(This); +} +static inline WINBOOL IDWriteFontFace6_IsSymbolFont(IDWriteFontFace6* This) { + return This->lpVtbl->IsSymbolFont(This); +} +static inline UINT16 IDWriteFontFace6_GetGlyphCount(IDWriteFontFace6* This) { + return This->lpVtbl->GetGlyphCount(This); +} +static inline HRESULT IDWriteFontFace6_GetDesignGlyphMetrics(IDWriteFontFace6* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); +} +static inline HRESULT IDWriteFontFace6_GetGlyphIndices(IDWriteFontFace6* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { + return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); +} +static inline HRESULT IDWriteFontFace6_TryGetFontTable(IDWriteFontFace6* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { + return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); +} +static inline void IDWriteFontFace6_ReleaseFontTable(IDWriteFontFace6* This,void *table_context) { + This->lpVtbl->ReleaseFontTable(This,table_context); +} +static inline HRESULT IDWriteFontFace6_GetGlyphRunOutline(IDWriteFontFace6* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) { + return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); +} +static inline HRESULT IDWriteFontFace6_GetGdiCompatibleGlyphMetrics(IDWriteFontFace6* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); +} +/*** IDWriteFontFace1 methods ***/ +static inline void IDWriteFontFace6_GetMetrics(IDWriteFontFace6* This,DWRITE_FONT_METRICS1 *metrics) { + This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace6_GetGdiCompatibleMetrics(IDWriteFontFace6* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) { + return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics); +} +static inline void IDWriteFontFace6_GetCaretMetrics(IDWriteFontFace6* This,DWRITE_CARET_METRICS *metrics) { + This->lpVtbl->GetCaretMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace6_GetUnicodeRanges(IDWriteFontFace6* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { + return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +} +static inline WINBOOL IDWriteFontFace6_IsMonospacedFont(IDWriteFontFace6* This) { + return This->lpVtbl->IsMonospacedFont(This); +} +static inline HRESULT IDWriteFontFace6_GetDesignGlyphAdvances(IDWriteFontFace6* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways); +} +static inline HRESULT IDWriteFontFace6_GetGdiCompatibleGlyphAdvances(IDWriteFontFace6* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) { + return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances); +} +static inline HRESULT IDWriteFontFace6_GetKerningPairAdjustments(IDWriteFontFace6* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) { + return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments); +} +static inline WINBOOL IDWriteFontFace6_HasKerningPairs(IDWriteFontFace6* This) { + return This->lpVtbl->HasKerningPairs(This); +} +static inline HRESULT IDWriteFontFace6_GetVerticalGlyphVariants(IDWriteFontFace6* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) { + return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices); +} +static inline WINBOOL IDWriteFontFace6_HasVerticalGlyphVariants(IDWriteFontFace6* This) { + return This->lpVtbl->HasVerticalGlyphVariants(This); +} +/*** IDWriteFontFace2 methods ***/ +static inline WINBOOL IDWriteFontFace6_IsColorFont(IDWriteFontFace6* This) { + return This->lpVtbl->IsColorFont(This); +} +static inline UINT32 IDWriteFontFace6_GetColorPaletteCount(IDWriteFontFace6* This) { + return This->lpVtbl->GetColorPaletteCount(This); +} +static inline UINT32 IDWriteFontFace6_GetPaletteEntryCount(IDWriteFontFace6* This) { + return This->lpVtbl->GetPaletteEntryCount(This); +} +static inline HRESULT IDWriteFontFace6_GetPaletteEntries(IDWriteFontFace6* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) { + return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries); +} +/*** IDWriteFontFace3 methods ***/ +static inline HRESULT IDWriteFontFace6_GetFontFaceReference(IDWriteFontFace6* This,IDWriteFontFaceReference **reference) { + return This->lpVtbl->GetFontFaceReference(This,reference); +} +static inline void IDWriteFontFace6_GetPanose(IDWriteFontFace6* This,DWRITE_PANOSE *panose) { + This->lpVtbl->GetPanose(This,panose); +} +static inline DWRITE_FONT_WEIGHT IDWriteFontFace6_GetWeight(IDWriteFontFace6* This) { + return This->lpVtbl->GetWeight(This); +} +static inline DWRITE_FONT_STRETCH IDWriteFontFace6_GetStretch(IDWriteFontFace6* This) { + return This->lpVtbl->GetStretch(This); +} +static inline DWRITE_FONT_STYLE IDWriteFontFace6_GetStyle(IDWriteFontFace6* This) { + return This->lpVtbl->GetStyle(This); +} +static inline HRESULT IDWriteFontFace6_GetInformationalStrings(IDWriteFontFace6* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { + return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +} +static inline WINBOOL IDWriteFontFace6_HasCharacter(IDWriteFontFace6* This,UINT32 character) { + return This->lpVtbl->HasCharacter(This,character); +} +static inline HRESULT IDWriteFontFace6_GetRecommendedRenderingMode(IDWriteFontFace6* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) { + return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode); +} +static inline WINBOOL IDWriteFontFace6_IsCharacterLocal(IDWriteFontFace6* This,UINT32 character) { + return This->lpVtbl->IsCharacterLocal(This,character); +} +static inline WINBOOL IDWriteFontFace6_IsGlyphLocal(IDWriteFontFace6* This,UINT16 glyph) { + return This->lpVtbl->IsGlyphLocal(This,glyph); +} +static inline HRESULT IDWriteFontFace6_AreCharactersLocal(IDWriteFontFace6* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { + return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local); +} +static inline HRESULT IDWriteFontFace6_AreGlyphsLocal(IDWriteFontFace6* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { + return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local); +} +/*** IDWriteFontFace4 methods ***/ +static inline HRESULT IDWriteFontFace6_GetGlyphImageFormats_(IDWriteFontFace6* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) { + return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats); +} +static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace6_GetGlyphImageFormats(IDWriteFontFace6* This) { + return This->lpVtbl->GetGlyphImageFormats(This); +} +static inline HRESULT IDWriteFontFace6_GetGlyphImageData(IDWriteFontFace6* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) { + return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context); +} +static inline void IDWriteFontFace6_ReleaseGlyphImageData(IDWriteFontFace6* This,void *context) { + This->lpVtbl->ReleaseGlyphImageData(This,context); +} +/*** IDWriteFontFace5 methods ***/ +static inline UINT32 IDWriteFontFace6_GetFontAxisValueCount(IDWriteFontFace6* This) { + return This->lpVtbl->GetFontAxisValueCount(This); +} +static inline HRESULT IDWriteFontFace6_GetFontAxisValues(IDWriteFontFace6* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 value_count) { + return This->lpVtbl->GetFontAxisValues(This,values,value_count); +} +static inline WINBOOL IDWriteFontFace6_HasVariations(IDWriteFontFace6* This) { + return This->lpVtbl->HasVariations(This); +} +static inline HRESULT IDWriteFontFace6_GetFontResource(IDWriteFontFace6* This,IDWriteFontResource **resource) { + return This->lpVtbl->GetFontResource(This,resource); +} +static inline WINBOOL IDWriteFontFace6_Equals(IDWriteFontFace6* This,IDWriteFontFace *fontface) { + return This->lpVtbl->Equals(This,fontface); +} +/*** IDWriteFontFace6 methods ***/ +static inline HRESULT IDWriteFontFace6_GetFamilyNames(IDWriteFontFace6* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) { + return This->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names); +} +static inline HRESULT IDWriteFontFace6_GetFaceNames(IDWriteFontFace6* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) { + return This->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFace6_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWritePaintReader interface + */ +#ifndef __IDWritePaintReader_INTERFACE_DEFINED__ +#define __IDWritePaintReader_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWritePaintReader, 0x8128e912, 0x3b97, 0x42a5, 0xab,0x6c, 0x24,0xaa,0xd3,0xa8,0x6e,0x54); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("8128e912-3b97-42a5-ab6c-24aad3a86e54") +IDWritePaintReader : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetCurrentGlyph( + UINT32 glyph_index, + DWRITE_PAINT_ELEMENT *paint_element, + UINT32 struct_size, + D2D_RECT_F *clip_box, + DWRITE_PAINT_ATTRIBUTES *glyph_attributes = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetTextColor( + const DWRITE_COLOR_F *text_color) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetColorPaletteIndex( + UINT32 color_palette_index) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCustomColorPalette( + const DWRITE_COLOR_F *palette_entries, + UINT32 palette_entry_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE MoveToFirstChild( + DWRITE_PAINT_ELEMENT *paint_element, + UINT32 struct_size) = 0; + + virtual HRESULT STDMETHODCALLTYPE MoveToNextSibling( + DWRITE_PAINT_ELEMENT *paint_element, + UINT32 struct_size) = 0; + + virtual HRESULT STDMETHODCALLTYPE MoveToParent( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGradientStops( + UINT32 first_gradient_stop_index, + UINT32 gradient_stop_count, + D2D1_GRADIENT_STOP *gradient_stops) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGradientStopColors( + UINT32 first_gradient_stop_index, + UINT32 gradient_stop_count, + DWRITE_PAINT_COLOR *gradient_stop_colors) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWritePaintReader, 0x8128e912, 0x3b97, 0x42a5, 0xab,0x6c, 0x24,0xaa,0xd3,0xa8,0x6e,0x54) +#endif +#else +typedef struct IDWritePaintReaderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWritePaintReader *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWritePaintReader *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWritePaintReader *This); + + /*** IDWritePaintReader methods ***/ + HRESULT (STDMETHODCALLTYPE *SetCurrentGlyph)( + IDWritePaintReader *This, + UINT32 glyph_index, + DWRITE_PAINT_ELEMENT *paint_element, + UINT32 struct_size, + D2D_RECT_F *clip_box, + DWRITE_PAINT_ATTRIBUTES *glyph_attributes); + + HRESULT (STDMETHODCALLTYPE *SetTextColor)( + IDWritePaintReader *This, + const DWRITE_COLOR_F *text_color); + + HRESULT (STDMETHODCALLTYPE *SetColorPaletteIndex)( + IDWritePaintReader *This, + UINT32 color_palette_index); + + HRESULT (STDMETHODCALLTYPE *SetCustomColorPalette)( + IDWritePaintReader *This, + const DWRITE_COLOR_F *palette_entries, + UINT32 palette_entry_count); + + HRESULT (STDMETHODCALLTYPE *MoveToFirstChild)( + IDWritePaintReader *This, + DWRITE_PAINT_ELEMENT *paint_element, + UINT32 struct_size); + + HRESULT (STDMETHODCALLTYPE *MoveToNextSibling)( + IDWritePaintReader *This, + DWRITE_PAINT_ELEMENT *paint_element, + UINT32 struct_size); + + HRESULT (STDMETHODCALLTYPE *MoveToParent)( + IDWritePaintReader *This); + + HRESULT (STDMETHODCALLTYPE *GetGradientStops)( + IDWritePaintReader *This, + UINT32 first_gradient_stop_index, + UINT32 gradient_stop_count, + D2D1_GRADIENT_STOP *gradient_stops); + + HRESULT (STDMETHODCALLTYPE *GetGradientStopColors)( + IDWritePaintReader *This, + UINT32 first_gradient_stop_index, + UINT32 gradient_stop_count, + DWRITE_PAINT_COLOR *gradient_stop_colors); + + END_INTERFACE +} IDWritePaintReaderVtbl; + +interface IDWritePaintReader { + CONST_VTBL IDWritePaintReaderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWritePaintReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWritePaintReader_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWritePaintReader_Release(This) (This)->lpVtbl->Release(This) +/*** IDWritePaintReader methods ***/ +#define IDWritePaintReader_SetCurrentGlyph(This,glyph_index,paint_element,struct_size,clip_box,glyph_attributes) (This)->lpVtbl->SetCurrentGlyph(This,glyph_index,paint_element,struct_size,clip_box,glyph_attributes) +#define IDWritePaintReader_SetTextColor(This,text_color) (This)->lpVtbl->SetTextColor(This,text_color) +#define IDWritePaintReader_SetColorPaletteIndex(This,color_palette_index) (This)->lpVtbl->SetColorPaletteIndex(This,color_palette_index) +#define IDWritePaintReader_SetCustomColorPalette(This,palette_entries,palette_entry_count) (This)->lpVtbl->SetCustomColorPalette(This,palette_entries,palette_entry_count) +#define IDWritePaintReader_MoveToFirstChild(This,paint_element,struct_size) (This)->lpVtbl->MoveToFirstChild(This,paint_element,struct_size) +#define IDWritePaintReader_MoveToNextSibling(This,paint_element,struct_size) (This)->lpVtbl->MoveToNextSibling(This,paint_element,struct_size) +#define IDWritePaintReader_MoveToParent(This) (This)->lpVtbl->MoveToParent(This) +#define IDWritePaintReader_GetGradientStops(This,first_gradient_stop_index,gradient_stop_count,gradient_stops) (This)->lpVtbl->GetGradientStops(This,first_gradient_stop_index,gradient_stop_count,gradient_stops) +#define IDWritePaintReader_GetGradientStopColors(This,first_gradient_stop_index,gradient_stop_count,gradient_stop_colors) (This)->lpVtbl->GetGradientStopColors(This,first_gradient_stop_index,gradient_stop_count,gradient_stop_colors) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWritePaintReader_QueryInterface(IDWritePaintReader* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWritePaintReader_AddRef(IDWritePaintReader* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWritePaintReader_Release(IDWritePaintReader* This) { + return This->lpVtbl->Release(This); +} +/*** IDWritePaintReader methods ***/ +static inline HRESULT IDWritePaintReader_SetCurrentGlyph(IDWritePaintReader* This,UINT32 glyph_index,DWRITE_PAINT_ELEMENT *paint_element,UINT32 struct_size,D2D_RECT_F *clip_box,DWRITE_PAINT_ATTRIBUTES *glyph_attributes) { + return This->lpVtbl->SetCurrentGlyph(This,glyph_index,paint_element,struct_size,clip_box,glyph_attributes); +} +static inline HRESULT IDWritePaintReader_SetTextColor(IDWritePaintReader* This,const DWRITE_COLOR_F *text_color) { + return This->lpVtbl->SetTextColor(This,text_color); +} +static inline HRESULT IDWritePaintReader_SetColorPaletteIndex(IDWritePaintReader* This,UINT32 color_palette_index) { + return This->lpVtbl->SetColorPaletteIndex(This,color_palette_index); +} +static inline HRESULT IDWritePaintReader_SetCustomColorPalette(IDWritePaintReader* This,const DWRITE_COLOR_F *palette_entries,UINT32 palette_entry_count) { + return This->lpVtbl->SetCustomColorPalette(This,palette_entries,palette_entry_count); +} +static inline HRESULT IDWritePaintReader_MoveToFirstChild(IDWritePaintReader* This,DWRITE_PAINT_ELEMENT *paint_element,UINT32 struct_size) { + return This->lpVtbl->MoveToFirstChild(This,paint_element,struct_size); +} +static inline HRESULT IDWritePaintReader_MoveToNextSibling(IDWritePaintReader* This,DWRITE_PAINT_ELEMENT *paint_element,UINT32 struct_size) { + return This->lpVtbl->MoveToNextSibling(This,paint_element,struct_size); +} +static inline HRESULT IDWritePaintReader_MoveToParent(IDWritePaintReader* This) { + return This->lpVtbl->MoveToParent(This); +} +static inline HRESULT IDWritePaintReader_GetGradientStops(IDWritePaintReader* This,UINT32 first_gradient_stop_index,UINT32 gradient_stop_count,D2D1_GRADIENT_STOP *gradient_stops) { + return This->lpVtbl->GetGradientStops(This,first_gradient_stop_index,gradient_stop_count,gradient_stops); +} +static inline HRESULT IDWritePaintReader_GetGradientStopColors(IDWritePaintReader* This,UINT32 first_gradient_stop_index,UINT32 gradient_stop_count,DWRITE_PAINT_COLOR *gradient_stop_colors) { + return This->lpVtbl->GetGradientStopColors(This,first_gradient_stop_index,gradient_stop_count,gradient_stop_colors); +} +#endif +#endif + +#endif + + +#endif /* __IDWritePaintReader_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFace7 interface + */ +#ifndef __IDWriteFontFace7_INTERFACE_DEFINED__ +#define __IDWriteFontFace7_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFace7, 0x3945b85b, 0xbc95, 0x40f7, 0xb7,0x2c, 0x8b,0x73,0xbf,0xc7,0xe1,0x3b); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("3945b85b-bc95-40f7-b72c-8b73bfc7e13b") +IDWriteFontFace7 : public IDWriteFontFace6 +{ + virtual DWRITE_PAINT_FEATURE_LEVEL STDMETHODCALLTYPE GetPaintFeatureLevel( + DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreatePaintReader( + DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format, + DWRITE_PAINT_FEATURE_LEVEL paint_feature_level, + IDWritePaintReader **paint_reader) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFace7, 0x3945b85b, 0xbc95, 0x40f7, 0xb7,0x2c, 0x8b,0x73,0xbf,0xc7,0xe1,0x3b) +#endif +#else +typedef struct IDWriteFontFace7Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFace7 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFace7 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFace7 *This); + + /*** IDWriteFontFace methods ***/ + DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( + IDWriteFontFace7 *This); + + HRESULT (STDMETHODCALLTYPE *GetFiles)( + IDWriteFontFace7 *This, + UINT32 *number_of_files, + IDWriteFontFile **fontfiles); + + UINT32 (STDMETHODCALLTYPE *GetIndex)( + IDWriteFontFace7 *This); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFontFace7 *This); + + WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( + IDWriteFontFace7 *This); + + void (STDMETHODCALLTYPE *GetMetrics)( + IDWriteFontFace7 *This, + DWRITE_FONT_METRICS *metrics); + + UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( + IDWriteFontFace7 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( + IDWriteFontFace7 *This, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( + IDWriteFontFace7 *This, + const UINT32 *codepoints, + UINT32 count, + UINT16 *glyph_indices); + + HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( + IDWriteFontFace7 *This, + UINT32 table_tag, + const void **table_data, + UINT32 *table_size, + void **context, + WINBOOL *exists); + + void (STDMETHODCALLTYPE *ReleaseFontTable)( + IDWriteFontFace7 *This, + void *table_context); + + HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( + IDWriteFontFace7 *This, + FLOAT emSize, + const UINT16 *glyph_indices, + const FLOAT *glyph_advances, + const DWRITE_GLYPH_OFFSET *glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink *geometrysink); + + HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( + IDWriteFontFace7 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( + IDWriteFontFace7 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( + IDWriteFontFace7 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + /*** IDWriteFontFace1 methods ***/ + void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)( + IDWriteFontFace7 *This, + DWRITE_FONT_METRICS1 *metrics); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)( + IDWriteFontFace7 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS1 *metrics); + + void (STDMETHODCALLTYPE *GetCaretMetrics)( + IDWriteFontFace7 *This, + DWRITE_CARET_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( + IDWriteFontFace7 *This, + UINT32 max_count, + DWRITE_UNICODE_RANGE *ranges, + UINT32 *count); + + WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( + IDWriteFontFace7 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)( + IDWriteFontFace7 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)( + IDWriteFontFace7 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances); + + HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)( + IDWriteFontFace7 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *adjustments); + + WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)( + IDWriteFontFace7 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)( + IDWriteFontFace7 *This, + FLOAT font_emsize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)( + IDWriteFontFace7 *This, + UINT32 glyph_count, + const UINT16 *nominal_indices, + UINT16 *vertical_indices); + + WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)( + IDWriteFontFace7 *This); + + /*** IDWriteFontFace2 methods ***/ + WINBOOL (STDMETHODCALLTYPE *IsColorFont)( + IDWriteFontFace7 *This); + + UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)( + IDWriteFontFace7 *This); + + UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)( + IDWriteFontFace7 *This); + + HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)( + IDWriteFontFace7 *This, + UINT32 palette_index, + UINT32 first_entry_index, + UINT32 entry_count, + DWRITE_COLOR_F *entries); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)( + IDWriteFontFace7 *This, + FLOAT fontEmSize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuringmode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *renderingmode, + DWRITE_GRID_FIT_MODE *gridfitmode); + + /*** IDWriteFontFace3 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontFace7 *This, + IDWriteFontFaceReference **reference); + + void (STDMETHODCALLTYPE *GetPanose)( + IDWriteFontFace7 *This, + DWRITE_PANOSE *panose); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( + IDWriteFontFace7 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( + IDWriteFontFace7 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( + IDWriteFontFace7 *This); + + HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( + IDWriteFontFace7 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetFaceNames)( + IDWriteFontFace7 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( + IDWriteFontFace7 *This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings **strings, + WINBOOL *exists); + + WINBOOL (STDMETHODCALLTYPE *HasCharacter)( + IDWriteFontFace7 *This, + UINT32 character); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)( + IDWriteFontFace7 *This, + FLOAT emsize, + FLOAT dpi_x, + FLOAT dpi_y, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE1 *rendering_mode, + DWRITE_GRID_FIT_MODE *gridfit_mode); + + WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)( + IDWriteFontFace7 *This, + UINT32 character); + + WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)( + IDWriteFontFace7 *This, + UINT16 glyph); + + HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)( + IDWriteFontFace7 *This, + const WCHAR *characters, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local); + + HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)( + IDWriteFontFace7 *This, + const UINT16 *glyphs, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local); + + /*** IDWriteFontFace4 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)( + IDWriteFontFace7 *This, + UINT16 glyph, + UINT32 ppem_first, + UINT32 ppem_last, + DWRITE_GLYPH_IMAGE_FORMATS *formats); + + DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)( + IDWriteFontFace7 *This); + + HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)( + IDWriteFontFace7 *This, + UINT16 glyph, + UINT32 ppem, + DWRITE_GLYPH_IMAGE_FORMATS format, + DWRITE_GLYPH_IMAGE_DATA *data, + void **context); + + void (STDMETHODCALLTYPE *ReleaseGlyphImageData)( + IDWriteFontFace7 *This, + void *context); + + /*** IDWriteFontFace5 methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)( + IDWriteFontFace7 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)( + IDWriteFontFace7 *This, + DWRITE_FONT_AXIS_VALUE *values, + UINT32 value_count); + + WINBOOL (STDMETHODCALLTYPE *HasVariations)( + IDWriteFontFace7 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontResource)( + IDWriteFontFace7 *This, + IDWriteFontResource **resource); + + WINBOOL (STDMETHODCALLTYPE *Equals)( + IDWriteFontFace7 *This, + IDWriteFontFace *fontface); + + /*** IDWriteFontFace6 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFamilyNames)( + IDWriteFontFace7 *This, + DWRITE_FONT_FAMILY_MODEL font_family_model, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFaceNames)( + IDWriteFontFace7 *This, + DWRITE_FONT_FAMILY_MODEL font_family_model, + IDWriteLocalizedStrings **names); + + /*** IDWriteFontFace7 methods ***/ + DWRITE_PAINT_FEATURE_LEVEL (STDMETHODCALLTYPE *GetPaintFeatureLevel)( + IDWriteFontFace7 *This, + DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format); + + HRESULT (STDMETHODCALLTYPE *CreatePaintReader)( + IDWriteFontFace7 *This, + DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format, + DWRITE_PAINT_FEATURE_LEVEL paint_feature_level, + IDWritePaintReader **paint_reader); + + END_INTERFACE +} IDWriteFontFace7Vtbl; + +interface IDWriteFontFace7 { + CONST_VTBL IDWriteFontFace7Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFace7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFace7_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFace7_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFace methods ***/ +#define IDWriteFontFace7_GetType(This) (This)->lpVtbl->GetType(This) +#define IDWriteFontFace7_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) +#define IDWriteFontFace7_GetIndex(This) (This)->lpVtbl->GetIndex(This) +#define IDWriteFontFace7_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +#define IDWriteFontFace7_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) +#define IDWriteFontFace7_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) +#define IDWriteFontFace7_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) +#define IDWriteFontFace7_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) +#define IDWriteFontFace7_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) +#define IDWriteFontFace7_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) +#define IDWriteFontFace7_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) +#define IDWriteFontFace7_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) +/*** IDWriteFontFace1 methods ***/ +#define IDWriteFontFace7_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics) +#define IDWriteFontFace7_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) +#define IDWriteFontFace7_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics) +#define IDWriteFontFace7_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFontFace7_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) +#define IDWriteFontFace7_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) +#define IDWriteFontFace7_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) +#define IDWriteFontFace7_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments) +#define IDWriteFontFace7_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) +#define IDWriteFontFace7_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) +#define IDWriteFontFace7_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) +/*** IDWriteFontFace2 methods ***/ +#define IDWriteFontFace7_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) +#define IDWriteFontFace7_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) +#define IDWriteFontFace7_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) +#define IDWriteFontFace7_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) +/*** IDWriteFontFace3 methods ***/ +#define IDWriteFontFace7_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference) +#define IDWriteFontFace7_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) +#define IDWriteFontFace7_GetWeight(This) (This)->lpVtbl->GetWeight(This) +#define IDWriteFontFace7_GetStretch(This) (This)->lpVtbl->GetStretch(This) +#define IDWriteFontFace7_GetStyle(This) (This)->lpVtbl->GetStyle(This) +#define IDWriteFontFace7_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) +#define IDWriteFontFace7_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character) +#define IDWriteFontFace7_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) +#define IDWriteFontFace7_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character) +#define IDWriteFontFace7_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph) +#define IDWriteFontFace7_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) +#define IDWriteFontFace7_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) +/*** IDWriteFontFace4 methods ***/ +#define IDWriteFontFace7_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) +#define IDWriteFontFace7_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This) +#define IDWriteFontFace7_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context) +#define IDWriteFontFace7_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context) +/*** IDWriteFontFace5 methods ***/ +#define IDWriteFontFace7_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This) +#define IDWriteFontFace7_GetFontAxisValues(This,values,value_count) (This)->lpVtbl->GetFontAxisValues(This,values,value_count) +#define IDWriteFontFace7_HasVariations(This) (This)->lpVtbl->HasVariations(This) +#define IDWriteFontFace7_GetFontResource(This,resource) (This)->lpVtbl->GetFontResource(This,resource) +#define IDWriteFontFace7_Equals(This,fontface) (This)->lpVtbl->Equals(This,fontface) +/*** IDWriteFontFace6 methods ***/ +#define IDWriteFontFace7_GetFamilyNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names) +#define IDWriteFontFace7_GetFaceNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names) +/*** IDWriteFontFace7 methods ***/ +#define IDWriteFontFace7_GetPaintFeatureLevel(This,glyph_image_format) (This)->lpVtbl->GetPaintFeatureLevel(This,glyph_image_format) +#define IDWriteFontFace7_CreatePaintReader(This,glyph_image_format,paint_feature_level,paint_reader) (This)->lpVtbl->CreatePaintReader(This,glyph_image_format,paint_feature_level,paint_reader) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFace7_QueryInterface(IDWriteFontFace7* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFace7_AddRef(IDWriteFontFace7* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFace7_Release(IDWriteFontFace7* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFace methods ***/ +static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace7_GetType(IDWriteFontFace7* This) { + return This->lpVtbl->GetType(This); +} +static inline HRESULT IDWriteFontFace7_GetFiles(IDWriteFontFace7* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { + return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); +} +static inline UINT32 IDWriteFontFace7_GetIndex(IDWriteFontFace7* This) { + return This->lpVtbl->GetIndex(This); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace7_GetSimulations(IDWriteFontFace7* This) { + return This->lpVtbl->GetSimulations(This); +} +static inline WINBOOL IDWriteFontFace7_IsSymbolFont(IDWriteFontFace7* This) { + return This->lpVtbl->IsSymbolFont(This); +} +static inline UINT16 IDWriteFontFace7_GetGlyphCount(IDWriteFontFace7* This) { + return This->lpVtbl->GetGlyphCount(This); +} +static inline HRESULT IDWriteFontFace7_GetDesignGlyphMetrics(IDWriteFontFace7* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); +} +static inline HRESULT IDWriteFontFace7_GetGlyphIndices(IDWriteFontFace7* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { + return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); +} +static inline HRESULT IDWriteFontFace7_TryGetFontTable(IDWriteFontFace7* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { + return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); +} +static inline void IDWriteFontFace7_ReleaseFontTable(IDWriteFontFace7* This,void *table_context) { + This->lpVtbl->ReleaseFontTable(This,table_context); +} +static inline HRESULT IDWriteFontFace7_GetGlyphRunOutline(IDWriteFontFace7* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) { + return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); +} +static inline HRESULT IDWriteFontFace7_GetGdiCompatibleGlyphMetrics(IDWriteFontFace7* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); +} +/*** IDWriteFontFace1 methods ***/ +static inline void IDWriteFontFace7_GetMetrics(IDWriteFontFace7* This,DWRITE_FONT_METRICS1 *metrics) { + This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace7_GetGdiCompatibleMetrics(IDWriteFontFace7* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) { + return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics); +} +static inline void IDWriteFontFace7_GetCaretMetrics(IDWriteFontFace7* This,DWRITE_CARET_METRICS *metrics) { + This->lpVtbl->GetCaretMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace7_GetUnicodeRanges(IDWriteFontFace7* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { + return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +} +static inline WINBOOL IDWriteFontFace7_IsMonospacedFont(IDWriteFontFace7* This) { + return This->lpVtbl->IsMonospacedFont(This); +} +static inline HRESULT IDWriteFontFace7_GetDesignGlyphAdvances(IDWriteFontFace7* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways); +} +static inline HRESULT IDWriteFontFace7_GetGdiCompatibleGlyphAdvances(IDWriteFontFace7* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) { + return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances); +} +static inline HRESULT IDWriteFontFace7_GetKerningPairAdjustments(IDWriteFontFace7* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) { + return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments); +} +static inline WINBOOL IDWriteFontFace7_HasKerningPairs(IDWriteFontFace7* This) { + return This->lpVtbl->HasKerningPairs(This); +} +static inline HRESULT IDWriteFontFace7_GetVerticalGlyphVariants(IDWriteFontFace7* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) { + return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices); +} +static inline WINBOOL IDWriteFontFace7_HasVerticalGlyphVariants(IDWriteFontFace7* This) { + return This->lpVtbl->HasVerticalGlyphVariants(This); +} +/*** IDWriteFontFace2 methods ***/ +static inline WINBOOL IDWriteFontFace7_IsColorFont(IDWriteFontFace7* This) { + return This->lpVtbl->IsColorFont(This); +} +static inline UINT32 IDWriteFontFace7_GetColorPaletteCount(IDWriteFontFace7* This) { + return This->lpVtbl->GetColorPaletteCount(This); +} +static inline UINT32 IDWriteFontFace7_GetPaletteEntryCount(IDWriteFontFace7* This) { + return This->lpVtbl->GetPaletteEntryCount(This); +} +static inline HRESULT IDWriteFontFace7_GetPaletteEntries(IDWriteFontFace7* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) { + return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries); +} +/*** IDWriteFontFace3 methods ***/ +static inline HRESULT IDWriteFontFace7_GetFontFaceReference(IDWriteFontFace7* This,IDWriteFontFaceReference **reference) { + return This->lpVtbl->GetFontFaceReference(This,reference); +} +static inline void IDWriteFontFace7_GetPanose(IDWriteFontFace7* This,DWRITE_PANOSE *panose) { + This->lpVtbl->GetPanose(This,panose); +} +static inline DWRITE_FONT_WEIGHT IDWriteFontFace7_GetWeight(IDWriteFontFace7* This) { + return This->lpVtbl->GetWeight(This); +} +static inline DWRITE_FONT_STRETCH IDWriteFontFace7_GetStretch(IDWriteFontFace7* This) { + return This->lpVtbl->GetStretch(This); +} +static inline DWRITE_FONT_STYLE IDWriteFontFace7_GetStyle(IDWriteFontFace7* This) { + return This->lpVtbl->GetStyle(This); +} +static inline HRESULT IDWriteFontFace7_GetInformationalStrings(IDWriteFontFace7* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { + return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +} +static inline WINBOOL IDWriteFontFace7_HasCharacter(IDWriteFontFace7* This,UINT32 character) { + return This->lpVtbl->HasCharacter(This,character); +} +static inline HRESULT IDWriteFontFace7_GetRecommendedRenderingMode(IDWriteFontFace7* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) { + return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode); +} +static inline WINBOOL IDWriteFontFace7_IsCharacterLocal(IDWriteFontFace7* This,UINT32 character) { + return This->lpVtbl->IsCharacterLocal(This,character); +} +static inline WINBOOL IDWriteFontFace7_IsGlyphLocal(IDWriteFontFace7* This,UINT16 glyph) { + return This->lpVtbl->IsGlyphLocal(This,glyph); +} +static inline HRESULT IDWriteFontFace7_AreCharactersLocal(IDWriteFontFace7* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { + return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local); +} +static inline HRESULT IDWriteFontFace7_AreGlyphsLocal(IDWriteFontFace7* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { + return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local); +} +/*** IDWriteFontFace4 methods ***/ +static inline HRESULT IDWriteFontFace7_GetGlyphImageFormats_(IDWriteFontFace7* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) { + return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats); +} +static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace7_GetGlyphImageFormats(IDWriteFontFace7* This) { + return This->lpVtbl->GetGlyphImageFormats(This); +} +static inline HRESULT IDWriteFontFace7_GetGlyphImageData(IDWriteFontFace7* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) { + return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context); +} +static inline void IDWriteFontFace7_ReleaseGlyphImageData(IDWriteFontFace7* This,void *context) { + This->lpVtbl->ReleaseGlyphImageData(This,context); +} +/*** IDWriteFontFace5 methods ***/ +static inline UINT32 IDWriteFontFace7_GetFontAxisValueCount(IDWriteFontFace7* This) { + return This->lpVtbl->GetFontAxisValueCount(This); +} +static inline HRESULT IDWriteFontFace7_GetFontAxisValues(IDWriteFontFace7* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 value_count) { + return This->lpVtbl->GetFontAxisValues(This,values,value_count); +} +static inline WINBOOL IDWriteFontFace7_HasVariations(IDWriteFontFace7* This) { + return This->lpVtbl->HasVariations(This); +} +static inline HRESULT IDWriteFontFace7_GetFontResource(IDWriteFontFace7* This,IDWriteFontResource **resource) { + return This->lpVtbl->GetFontResource(This,resource); +} +static inline WINBOOL IDWriteFontFace7_Equals(IDWriteFontFace7* This,IDWriteFontFace *fontface) { + return This->lpVtbl->Equals(This,fontface); +} +/*** IDWriteFontFace6 methods ***/ +static inline HRESULT IDWriteFontFace7_GetFamilyNames(IDWriteFontFace7* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) { + return This->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names); +} +static inline HRESULT IDWriteFontFace7_GetFaceNames(IDWriteFontFace7* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) { + return This->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names); +} +/*** IDWriteFontFace7 methods ***/ +static inline DWRITE_PAINT_FEATURE_LEVEL IDWriteFontFace7_GetPaintFeatureLevel(IDWriteFontFace7* This,DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format) { + return This->lpVtbl->GetPaintFeatureLevel(This,glyph_image_format); +} +static inline HRESULT IDWriteFontFace7_CreatePaintReader(IDWriteFontFace7* This,DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format,DWRITE_PAINT_FEATURE_LEVEL paint_feature_level,IDWritePaintReader **paint_reader) { + return This->lpVtbl->CreatePaintReader(This,glyph_image_format,paint_feature_level,paint_reader); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFace7_INTERFACE_DEFINED__ */ + +typedef struct DWRITE_COLOR_GLYPH_RUN1 DWRITE_COLOR_GLYPH_RUN1; +struct DWRITE_COLOR_GLYPH_RUN1 +{ + DWRITE_GLYPH_RUN glyphRun; + DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription; + FLOAT baselineOriginX; + FLOAT baselineOriginY; + DWRITE_COLOR_F runColor; + UINT16 paletteIndex; +#ifdef _WIN64 + UINT32 _pad; +#endif + DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat; + DWRITE_MEASURING_MODE measuringMode; +}; +/***************************************************************************** + * IDWriteColorGlyphRunEnumerator1 interface + */ +#ifndef __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__ +#define __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteColorGlyphRunEnumerator1, 0x7c5f86da, 0xc7a1, 0x4f05, 0xb8,0xe1, 0x55,0xa1,0x79,0xfe,0x5a,0x35); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("7c5f86da-c7a1-4f05-b8e1-55a179fe5a35") +IDWriteColorGlyphRunEnumerator1 : public IDWriteColorGlyphRunEnumerator +{ + virtual HRESULT STDMETHODCALLTYPE GetCurrentRun( + const DWRITE_COLOR_GLYPH_RUN1 **run) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteColorGlyphRunEnumerator1, 0x7c5f86da, 0xc7a1, 0x4f05, 0xb8,0xe1, 0x55,0xa1,0x79,0xfe,0x5a,0x35) +#endif +#else +typedef struct IDWriteColorGlyphRunEnumerator1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteColorGlyphRunEnumerator1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteColorGlyphRunEnumerator1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteColorGlyphRunEnumerator1 *This); + + /*** IDWriteColorGlyphRunEnumerator methods ***/ + HRESULT (STDMETHODCALLTYPE *MoveNext)( + IDWriteColorGlyphRunEnumerator1 *This, + WINBOOL *hasRun); + + HRESULT (STDMETHODCALLTYPE *GetCurrentRun)( + IDWriteColorGlyphRunEnumerator1 *This, + const DWRITE_COLOR_GLYPH_RUN **run); + + /*** IDWriteColorGlyphRunEnumerator1 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteColorGlyphRunEnumerator1_GetCurrentRun)( + IDWriteColorGlyphRunEnumerator1 *This, + const DWRITE_COLOR_GLYPH_RUN1 **run); + + END_INTERFACE +} IDWriteColorGlyphRunEnumerator1Vtbl; + +interface IDWriteColorGlyphRunEnumerator1 { + CONST_VTBL IDWriteColorGlyphRunEnumerator1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteColorGlyphRunEnumerator1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteColorGlyphRunEnumerator1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteColorGlyphRunEnumerator1_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteColorGlyphRunEnumerator methods ***/ +#define IDWriteColorGlyphRunEnumerator1_MoveNext(This,hasRun) (This)->lpVtbl->MoveNext(This,hasRun) +/*** IDWriteColorGlyphRunEnumerator1 methods ***/ +#define IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This,run) (This)->lpVtbl->IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This,run) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteColorGlyphRunEnumerator1_QueryInterface(IDWriteColorGlyphRunEnumerator1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteColorGlyphRunEnumerator1_AddRef(IDWriteColorGlyphRunEnumerator1* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteColorGlyphRunEnumerator1_Release(IDWriteColorGlyphRunEnumerator1* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteColorGlyphRunEnumerator methods ***/ +static inline HRESULT IDWriteColorGlyphRunEnumerator1_MoveNext(IDWriteColorGlyphRunEnumerator1* This,WINBOOL *hasRun) { + return This->lpVtbl->MoveNext(This,hasRun); +} +/*** IDWriteColorGlyphRunEnumerator1 methods ***/ +static inline HRESULT IDWriteColorGlyphRunEnumerator1_GetCurrentRun(IDWriteColorGlyphRunEnumerator1* This,const DWRITE_COLOR_GLYPH_RUN1 **run) { + return This->lpVtbl->IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This,run); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFactory4 interface + */ +#ifndef __IDWriteFactory4_INTERFACE_DEFINED__ +#define __IDWriteFactory4_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFactory4, 0x4b0b5bd3, 0x0797, 0x4549, 0x8a,0xc5, 0xfe,0x91,0x5c,0xc5,0x38,0x56); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("4b0b5bd3-0797-4549-8ac5-fe915cc53856") +IDWriteFactory4 : public IDWriteFactory3 +{ + virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun( + D2D1_POINT_2F baseline_origin, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc, + DWRITE_GLYPH_IMAGE_FORMATS desired_formats, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX *transform, + UINT32 palette, + IDWriteColorGlyphRunEnumerator1 **layers) = 0; + + virtual HRESULT STDMETHODCALLTYPE ComputeGlyphOrigins_( + const DWRITE_GLYPH_RUN *run, + D2D1_POINT_2F baseline_origin, + D2D1_POINT_2F *origins) = 0; + + virtual HRESULT STDMETHODCALLTYPE ComputeGlyphOrigins( + const DWRITE_GLYPH_RUN *run, + DWRITE_MEASURING_MODE measuring_mode, + D2D1_POINT_2F baseline_origin, + const DWRITE_MATRIX *transform, + D2D1_POINT_2F *origins) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFactory4, 0x4b0b5bd3, 0x0797, 0x4549, 0x8a,0xc5, 0xfe,0x91,0x5c,0xc5,0x38,0x56) +#endif +#else +typedef struct IDWriteFactory4Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFactory4 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFactory4 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFactory4 *This); + + /*** IDWriteFactory methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( + IDWriteFactory4 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( + IDWriteFactory4 *This, + IDWriteFontCollectionLoader *loader, + const void *key, + UINT32 key_size, + IDWriteFontCollection **collection); + + HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( + IDWriteFactory4 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( + IDWriteFactory4 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( + IDWriteFactory4 *This, + const WCHAR *path, + const FILETIME *writetime, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( + IDWriteFactory4 *This, + const void *reference_key, + UINT32 key_size, + IDWriteFontFileLoader *loader, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFactory4 *This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile *const *font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace **font_face); + + HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( + IDWriteFactory4 *This, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( + IDWriteFactory4 *This, + HMONITOR monitor, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( + IDWriteFactory4 *This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( + IDWriteFactory4 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( + IDWriteFactory4 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( + IDWriteFactory4 *This, + const WCHAR *family_name, + IDWriteFontCollection *collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR *locale, + IDWriteTextFormat **format); + + HRESULT (STDMETHODCALLTYPE *CreateTypography)( + IDWriteFactory4 *This, + IDWriteTypography **typography); + + HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( + IDWriteFactory4 *This, + IDWriteGdiInterop **gdi_interop); + + HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( + IDWriteFactory4 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( + IDWriteFactory4 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( + IDWriteFactory4 *This, + IDWriteTextFormat *format, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( + IDWriteFactory4 *This, + IDWriteTextAnalyzer **analyzer); + + HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( + IDWriteFactory4 *This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR *locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution **substitution); + + HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( + IDWriteFactory4 *This, + const DWRITE_GLYPH_RUN *glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( + IDWriteFactory4 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( + IDWriteFactory4 *This, + FLOAT gamma, + FLOAT enhcontrast, + FLOAT enhcontrast_grayscale, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams1 **params); + + /*** IDWriteFactory2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)( + IDWriteFactory4 *This, + IDWriteFontFallback **fallback); + + HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)( + IDWriteFactory4 *This, + IDWriteFontFallbackBuilder **fallbackbuilder); + + HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)( + IDWriteFactory4 *This, + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX *transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator **colorlayers); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)( + IDWriteFactory4 *This, + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2 **params); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)( + IDWriteFactory4 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory3 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)( + IDWriteFactory4 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, + FLOAT origin_x, + FLOAT origin_y, + IDWriteGlyphRunAnalysis **analysis); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)( + IDWriteFactory4 *This, + FLOAT gamma, + FLOAT enhanced_contrast, + FLOAT grayscale_enhanced_contrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY pixel_geometry, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + IDWriteRenderingParams3 **params); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)( + IDWriteFactory4 *This, + IDWriteFontFile *file, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)( + IDWriteFactory4 *This, + const WCHAR *path, + const FILETIME *writetime, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)( + IDWriteFactory4 *This, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)( + IDWriteFactory4 *This, + IDWriteFontSetBuilder **builder); + + HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)( + IDWriteFactory4 *This, + IDWriteFontSet *fontset, + IDWriteFontCollection1 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)( + IDWriteFactory4 *This, + WINBOOL include_downloadable, + IDWriteFontCollection1 **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)( + IDWriteFactory4 *This, + IDWriteFontDownloadQueue **queue); + + /*** IDWriteFactory4 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)( + IDWriteFactory4 *This, + D2D1_POINT_2F baseline_origin, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc, + DWRITE_GLYPH_IMAGE_FORMATS desired_formats, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX *transform, + UINT32 palette, + IDWriteColorGlyphRunEnumerator1 **layers); + + HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)( + IDWriteFactory4 *This, + const DWRITE_GLYPH_RUN *run, + D2D1_POINT_2F baseline_origin, + D2D1_POINT_2F *origins); + + HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)( + IDWriteFactory4 *This, + const DWRITE_GLYPH_RUN *run, + DWRITE_MEASURING_MODE measuring_mode, + D2D1_POINT_2F baseline_origin, + const DWRITE_MATRIX *transform, + D2D1_POINT_2F *origins); + + END_INTERFACE +} IDWriteFactory4Vtbl; + +interface IDWriteFactory4 { + CONST_VTBL IDWriteFactory4Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFactory4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory4_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFactory4_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFactory methods ***/ +#define IDWriteFactory4_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) +#define IDWriteFactory4_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) +#define IDWriteFactory4_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) +#define IDWriteFactory4_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) +#define IDWriteFactory4_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) +#define IDWriteFactory4_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) +#define IDWriteFactory4_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) +#define IDWriteFactory4_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) +#define IDWriteFactory4_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) +#define IDWriteFactory4_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) +#define IDWriteFactory4_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) +#define IDWriteFactory4_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) +#define IDWriteFactory4_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) +#define IDWriteFactory4_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) +#define IDWriteFactory4_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) +#define IDWriteFactory4_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) +#define IDWriteFactory4_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) +#define IDWriteFactory4_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +/*** IDWriteFactory1 methods ***/ +#define IDWriteFactory4_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) +/*** IDWriteFactory2 methods ***/ +#define IDWriteFactory4_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback) +#define IDWriteFactory4_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder) +/*** IDWriteFactory3 methods ***/ +#define IDWriteFactory4_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) +#define IDWriteFactory4_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) +#define IDWriteFactory4_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference) +#define IDWriteFactory4_CreateFontFaceReference(This,path,writetime,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference) +#define IDWriteFactory4_GetSystemFontSet(This,fontset) (This)->lpVtbl->GetSystemFontSet(This,fontset) +#define IDWriteFactory4_CreateFontSetBuilder(This,builder) (This)->lpVtbl->CreateFontSetBuilder(This,builder) +#define IDWriteFactory4_CreateFontCollectionFromFontSet(This,fontset,collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection) +#define IDWriteFactory4_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) +#define IDWriteFactory4_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue) +/*** IDWriteFactory4 methods ***/ +#define IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) +#define IDWriteFactory4_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins) +#define IDWriteFactory4_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFactory4_QueryInterface(IDWriteFactory4* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFactory4_AddRef(IDWriteFactory4* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFactory4_Release(IDWriteFactory4* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFactory methods ***/ +static inline HRESULT IDWriteFactory4_CreateCustomFontCollection(IDWriteFactory4* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { + return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +} +static inline HRESULT IDWriteFactory4_RegisterFontCollectionLoader(IDWriteFactory4* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory4_UnregisterFontCollectionLoader(IDWriteFactory4* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory4_CreateFontFileReference(IDWriteFactory4* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +} +static inline HRESULT IDWriteFactory4_CreateCustomFontFileReference(IDWriteFactory4* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +} +static inline HRESULT IDWriteFactory4_CreateFontFace(IDWriteFactory4* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { + return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +} +static inline HRESULT IDWriteFactory4_CreateRenderingParams(IDWriteFactory4* This,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateRenderingParams(This,params); +} +static inline HRESULT IDWriteFactory4_CreateMonitorRenderingParams(IDWriteFactory4* This,HMONITOR monitor,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +} +static inline HRESULT IDWriteFactory4_RegisterFontFileLoader(IDWriteFactory4* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->RegisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory4_UnregisterFontFileLoader(IDWriteFactory4* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->UnregisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory4_CreateTextFormat(IDWriteFactory4* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) { + return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format); +} +static inline HRESULT IDWriteFactory4_CreateTypography(IDWriteFactory4* This,IDWriteTypography **typography) { + return This->lpVtbl->CreateTypography(This,typography); +} +static inline HRESULT IDWriteFactory4_GetGdiInterop(IDWriteFactory4* This,IDWriteGdiInterop **gdi_interop) { + return This->lpVtbl->GetGdiInterop(This,gdi_interop); +} +static inline HRESULT IDWriteFactory4_CreateTextLayout(IDWriteFactory4* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +} +static inline HRESULT IDWriteFactory4_CreateGdiCompatibleTextLayout(IDWriteFactory4* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +} +static inline HRESULT IDWriteFactory4_CreateEllipsisTrimmingSign(IDWriteFactory4* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +} +static inline HRESULT IDWriteFactory4_CreateTextAnalyzer(IDWriteFactory4* This,IDWriteTextAnalyzer **analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +} +static inline HRESULT IDWriteFactory4_CreateNumberSubstitution(IDWriteFactory4* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { + return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +} +/*** IDWriteFactory1 methods ***/ +static inline HRESULT IDWriteFactory4_GetEudcFontCollection(IDWriteFactory4* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { + return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); +} +/*** IDWriteFactory2 methods ***/ +static inline HRESULT IDWriteFactory4_GetSystemFontFallback(IDWriteFactory4* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetSystemFontFallback(This,fallback); +} +static inline HRESULT IDWriteFactory4_CreateFontFallbackBuilder(IDWriteFactory4* This,IDWriteFontFallbackBuilder **fallbackbuilder) { + return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); +} +/*** IDWriteFactory3 methods ***/ +static inline HRESULT IDWriteFactory4_CreateGlyphRunAnalysis(IDWriteFactory4* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) { + return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis); +} +static inline HRESULT IDWriteFactory4_CreateCustomRenderingParams(IDWriteFactory4* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) { + return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params); +} +static inline HRESULT IDWriteFactory4_CreateFontFaceReference_(IDWriteFactory4* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { + return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference); +} +static inline HRESULT IDWriteFactory4_CreateFontFaceReference(IDWriteFactory4* This,const WCHAR *path,const FILETIME *writetime,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { + return This->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference); +} +static inline HRESULT IDWriteFactory4_GetSystemFontSet(IDWriteFactory4* This,IDWriteFontSet **fontset) { + return This->lpVtbl->GetSystemFontSet(This,fontset); +} +static inline HRESULT IDWriteFactory4_CreateFontSetBuilder(IDWriteFactory4* This,IDWriteFontSetBuilder **builder) { + return This->lpVtbl->CreateFontSetBuilder(This,builder); +} +static inline HRESULT IDWriteFactory4_CreateFontCollectionFromFontSet(IDWriteFactory4* This,IDWriteFontSet *fontset,IDWriteFontCollection1 **collection) { + return This->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection); +} +static inline HRESULT IDWriteFactory4_GetSystemFontCollection(IDWriteFactory4* This,WINBOOL include_downloadable,IDWriteFontCollection1 **collection,WINBOOL check_for_updates) { + return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates); +} +static inline HRESULT IDWriteFactory4_GetFontDownloadQueue(IDWriteFactory4* This,IDWriteFontDownloadQueue **queue) { + return This->lpVtbl->GetFontDownloadQueue(This,queue); +} +/*** IDWriteFactory4 methods ***/ +static inline HRESULT IDWriteFactory4_TranslateColorGlyphRun(IDWriteFactory4* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) { + return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers); +} +static inline HRESULT IDWriteFactory4_ComputeGlyphOrigins_(IDWriteFactory4* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) { + return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins); +} +static inline HRESULT IDWriteFactory4_ComputeGlyphOrigins(IDWriteFactory4* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) { + return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFactory4_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteAsyncResult interface + */ +#ifndef __IDWriteAsyncResult_INTERFACE_DEFINED__ +#define __IDWriteAsyncResult_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteAsyncResult, 0xce25f8fd, 0x863b, 0x4d13, 0x96,0x51, 0xc1,0xf8,0x8d,0xc7,0x3f,0xe2); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("ce25f8fd-863b-4d13-9651-c1f88dc73fe2") +IDWriteAsyncResult : public IUnknown +{ + virtual HANDLE STDMETHODCALLTYPE GetWaitHandle( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetResult( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteAsyncResult, 0xce25f8fd, 0x863b, 0x4d13, 0x96,0x51, 0xc1,0xf8,0x8d,0xc7,0x3f,0xe2) +#endif +#else +typedef struct IDWriteAsyncResultVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteAsyncResult *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteAsyncResult *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteAsyncResult *This); + + /*** IDWriteAsyncResult methods ***/ + HANDLE (STDMETHODCALLTYPE *GetWaitHandle)( + IDWriteAsyncResult *This); + + HRESULT (STDMETHODCALLTYPE *GetResult)( + IDWriteAsyncResult *This); + + END_INTERFACE +} IDWriteAsyncResultVtbl; + +interface IDWriteAsyncResult { + CONST_VTBL IDWriteAsyncResultVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteAsyncResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteAsyncResult_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteAsyncResult_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteAsyncResult methods ***/ +#define IDWriteAsyncResult_GetWaitHandle(This) (This)->lpVtbl->GetWaitHandle(This) +#define IDWriteAsyncResult_GetResult(This) (This)->lpVtbl->GetResult(This) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteAsyncResult_QueryInterface(IDWriteAsyncResult* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteAsyncResult_AddRef(IDWriteAsyncResult* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteAsyncResult_Release(IDWriteAsyncResult* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteAsyncResult methods ***/ +static inline HANDLE IDWriteAsyncResult_GetWaitHandle(IDWriteAsyncResult* This) { + return This->lpVtbl->GetWaitHandle(This); +} +static inline HRESULT IDWriteAsyncResult_GetResult(IDWriteAsyncResult* This) { + return This->lpVtbl->GetResult(This); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteAsyncResult_INTERFACE_DEFINED__ */ + +typedef struct DWRITE_FILE_FRAGMENT { + UINT64 fileOffset; + UINT64 fragmentSize; +} DWRITE_FILE_FRAGMENT; +/***************************************************************************** + * IDWriteRemoteFontFileStream interface + */ +#ifndef __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__ +#define __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteRemoteFontFileStream, 0x4db3757a, 0x2c72, 0x4ed9, 0xb2,0xb6, 0x1a,0xba,0xbe,0x1a,0xff,0x9c); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("4db3757a-2c72-4ed9-b2b6-1ababe1aff9c") +IDWriteRemoteFontFileStream : public IDWriteFontFileStream +{ + virtual HRESULT STDMETHODCALLTYPE GetLocalFileSize( + UINT64 *size) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFileFragmentLocality( + UINT64 offset, + UINT64 size, + WINBOOL *is_local, + UINT64 *partial_size) = 0; + + virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE BeginDownload( + const GUID *operation_id, + const DWRITE_FILE_FRAGMENT *fragments, + UINT32 fragment_count, + IDWriteAsyncResult **async_result) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteRemoteFontFileStream, 0x4db3757a, 0x2c72, 0x4ed9, 0xb2,0xb6, 0x1a,0xba,0xbe,0x1a,0xff,0x9c) +#endif +#else +typedef struct IDWriteRemoteFontFileStreamVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteRemoteFontFileStream *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteRemoteFontFileStream *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteRemoteFontFileStream *This); + + /*** IDWriteFontFileStream methods ***/ + HRESULT (STDMETHODCALLTYPE *ReadFileFragment)( + IDWriteRemoteFontFileStream *This, + const void **fragment_start, + UINT64 offset, + UINT64 fragment_size, + void **fragment_context); + + void (STDMETHODCALLTYPE *ReleaseFileFragment)( + IDWriteRemoteFontFileStream *This, + void *fragment_context); + + HRESULT (STDMETHODCALLTYPE *GetFileSize)( + IDWriteRemoteFontFileStream *This, + UINT64 *size); + + HRESULT (STDMETHODCALLTYPE *GetLastWriteTime)( + IDWriteRemoteFontFileStream *This, + UINT64 *last_writetime); + + /*** IDWriteRemoteFontFileStream methods ***/ + HRESULT (STDMETHODCALLTYPE *GetLocalFileSize)( + IDWriteRemoteFontFileStream *This, + UINT64 *size); + + HRESULT (STDMETHODCALLTYPE *GetFileFragmentLocality)( + IDWriteRemoteFontFileStream *This, + UINT64 offset, + UINT64 size, + WINBOOL *is_local, + UINT64 *partial_size); + + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)( + IDWriteRemoteFontFileStream *This); + + HRESULT (STDMETHODCALLTYPE *BeginDownload)( + IDWriteRemoteFontFileStream *This, + const GUID *operation_id, + const DWRITE_FILE_FRAGMENT *fragments, + UINT32 fragment_count, + IDWriteAsyncResult **async_result); + + END_INTERFACE +} IDWriteRemoteFontFileStreamVtbl; + +interface IDWriteRemoteFontFileStream { + CONST_VTBL IDWriteRemoteFontFileStreamVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteRemoteFontFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteRemoteFontFileStream_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteRemoteFontFileStream_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFileStream methods ***/ +#define IDWriteRemoteFontFileStream_ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context) (This)->lpVtbl->ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context) +#define IDWriteRemoteFontFileStream_ReleaseFileFragment(This,fragment_context) (This)->lpVtbl->ReleaseFileFragment(This,fragment_context) +#define IDWriteRemoteFontFileStream_GetFileSize(This,size) (This)->lpVtbl->GetFileSize(This,size) +#define IDWriteRemoteFontFileStream_GetLastWriteTime(This,last_writetime) (This)->lpVtbl->GetLastWriteTime(This,last_writetime) +/*** IDWriteRemoteFontFileStream methods ***/ +#define IDWriteRemoteFontFileStream_GetLocalFileSize(This,size) (This)->lpVtbl->GetLocalFileSize(This,size) +#define IDWriteRemoteFontFileStream_GetFileFragmentLocality(This,offset,size,is_local,partial_size) (This)->lpVtbl->GetFileFragmentLocality(This,offset,size,is_local,partial_size) +#define IDWriteRemoteFontFileStream_GetLocality(This) (This)->lpVtbl->GetLocality(This) +#define IDWriteRemoteFontFileStream_BeginDownload(This,operation_id,fragments,fragment_count,async_result) (This)->lpVtbl->BeginDownload(This,operation_id,fragments,fragment_count,async_result) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteRemoteFontFileStream_QueryInterface(IDWriteRemoteFontFileStream* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteRemoteFontFileStream_AddRef(IDWriteRemoteFontFileStream* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteRemoteFontFileStream_Release(IDWriteRemoteFontFileStream* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFileStream methods ***/ +static inline HRESULT IDWriteRemoteFontFileStream_ReadFileFragment(IDWriteRemoteFontFileStream* This,const void **fragment_start,UINT64 offset,UINT64 fragment_size,void **fragment_context) { + return This->lpVtbl->ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context); +} +static inline void IDWriteRemoteFontFileStream_ReleaseFileFragment(IDWriteRemoteFontFileStream* This,void *fragment_context) { + This->lpVtbl->ReleaseFileFragment(This,fragment_context); +} +static inline HRESULT IDWriteRemoteFontFileStream_GetFileSize(IDWriteRemoteFontFileStream* This,UINT64 *size) { + return This->lpVtbl->GetFileSize(This,size); +} +static inline HRESULT IDWriteRemoteFontFileStream_GetLastWriteTime(IDWriteRemoteFontFileStream* This,UINT64 *last_writetime) { + return This->lpVtbl->GetLastWriteTime(This,last_writetime); +} +/*** IDWriteRemoteFontFileStream methods ***/ +static inline HRESULT IDWriteRemoteFontFileStream_GetLocalFileSize(IDWriteRemoteFontFileStream* This,UINT64 *size) { + return This->lpVtbl->GetLocalFileSize(This,size); +} +static inline HRESULT IDWriteRemoteFontFileStream_GetFileFragmentLocality(IDWriteRemoteFontFileStream* This,UINT64 offset,UINT64 size,WINBOOL *is_local,UINT64 *partial_size) { + return This->lpVtbl->GetFileFragmentLocality(This,offset,size,is_local,partial_size); +} +static inline DWRITE_LOCALITY IDWriteRemoteFontFileStream_GetLocality(IDWriteRemoteFontFileStream* This) { + return This->lpVtbl->GetLocality(This); +} +static inline HRESULT IDWriteRemoteFontFileStream_BeginDownload(IDWriteRemoteFontFileStream* This,const GUID *operation_id,const DWRITE_FILE_FRAGMENT *fragments,UINT32 fragment_count,IDWriteAsyncResult **async_result) { + return This->lpVtbl->BeginDownload(This,operation_id,fragments,fragment_count,async_result); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__ */ + +typedef enum DWRITE_CONTAINER_TYPE { + DWRITE_CONTAINER_TYPE_UNKNOWN = 0, + DWRITE_CONTAINER_TYPE_WOFF = 1, + DWRITE_CONTAINER_TYPE_WOFF2 = 2 +} DWRITE_CONTAINER_TYPE; +/***************************************************************************** + * IDWriteRemoteFontFileLoader interface + */ +#ifndef __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__ +#define __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteRemoteFontFileLoader, 0x68648c83, 0x6ede, 0x46c0, 0xab,0x46, 0x20,0x08,0x3a,0x88,0x7f,0xde); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("68648c83-6ede-46c0-ab46-20083a887fde") +IDWriteRemoteFontFileLoader : public IDWriteFontFileLoader +{ + virtual HRESULT STDMETHODCALLTYPE CreateRemoteStreamFromKey( + const void *key, + UINT32 key_size, + IDWriteRemoteFontFileStream **stream) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLocalityFromKey( + const void *key, + UINT32 key_size, + DWRITE_LOCALITY *locality) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFileReferenceFromUrl( + IDWriteFactory *factory, + const WCHAR *base_url, + const WCHAR *file_url, + IDWriteFontFile **fontfile) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteRemoteFontFileLoader, 0x68648c83, 0x6ede, 0x46c0, 0xab,0x46, 0x20,0x08,0x3a,0x88,0x7f,0xde) +#endif +#else +typedef struct IDWriteRemoteFontFileLoaderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteRemoteFontFileLoader *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteRemoteFontFileLoader *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteRemoteFontFileLoader *This); + + /*** IDWriteFontFileLoader methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateStreamFromKey)( + IDWriteRemoteFontFileLoader *This, + const void *key, + UINT32 key_size, + IDWriteFontFileStream **stream); + + /*** IDWriteRemoteFontFileLoader methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateRemoteStreamFromKey)( + IDWriteRemoteFontFileLoader *This, + const void *key, + UINT32 key_size, + IDWriteRemoteFontFileStream **stream); + + HRESULT (STDMETHODCALLTYPE *GetLocalityFromKey)( + IDWriteRemoteFontFileLoader *This, + const void *key, + UINT32 key_size, + DWRITE_LOCALITY *locality); + + HRESULT (STDMETHODCALLTYPE *CreateFontFileReferenceFromUrl)( + IDWriteRemoteFontFileLoader *This, + IDWriteFactory *factory, + const WCHAR *base_url, + const WCHAR *file_url, + IDWriteFontFile **fontfile); + + END_INTERFACE +} IDWriteRemoteFontFileLoaderVtbl; + +interface IDWriteRemoteFontFileLoader { + CONST_VTBL IDWriteRemoteFontFileLoaderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteRemoteFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteRemoteFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteRemoteFontFileLoader_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFileLoader methods ***/ +#define IDWriteRemoteFontFileLoader_CreateStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateStreamFromKey(This,key,key_size,stream) +/*** IDWriteRemoteFontFileLoader methods ***/ +#define IDWriteRemoteFontFileLoader_CreateRemoteStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateRemoteStreamFromKey(This,key,key_size,stream) +#define IDWriteRemoteFontFileLoader_GetLocalityFromKey(This,key,key_size,locality) (This)->lpVtbl->GetLocalityFromKey(This,key,key_size,locality) +#define IDWriteRemoteFontFileLoader_CreateFontFileReferenceFromUrl(This,factory,base_url,file_url,fontfile) (This)->lpVtbl->CreateFontFileReferenceFromUrl(This,factory,base_url,file_url,fontfile) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteRemoteFontFileLoader_QueryInterface(IDWriteRemoteFontFileLoader* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteRemoteFontFileLoader_AddRef(IDWriteRemoteFontFileLoader* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteRemoteFontFileLoader_Release(IDWriteRemoteFontFileLoader* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFileLoader methods ***/ +static inline HRESULT IDWriteRemoteFontFileLoader_CreateStreamFromKey(IDWriteRemoteFontFileLoader* This,const void *key,UINT32 key_size,IDWriteFontFileStream **stream) { + return This->lpVtbl->CreateStreamFromKey(This,key,key_size,stream); +} +/*** IDWriteRemoteFontFileLoader methods ***/ +static inline HRESULT IDWriteRemoteFontFileLoader_CreateRemoteStreamFromKey(IDWriteRemoteFontFileLoader* This,const void *key,UINT32 key_size,IDWriteRemoteFontFileStream **stream) { + return This->lpVtbl->CreateRemoteStreamFromKey(This,key,key_size,stream); +} +static inline HRESULT IDWriteRemoteFontFileLoader_GetLocalityFromKey(IDWriteRemoteFontFileLoader* This,const void *key,UINT32 key_size,DWRITE_LOCALITY *locality) { + return This->lpVtbl->GetLocalityFromKey(This,key,key_size,locality); +} +static inline HRESULT IDWriteRemoteFontFileLoader_CreateFontFileReferenceFromUrl(IDWriteRemoteFontFileLoader* This,IDWriteFactory *factory,const WCHAR *base_url,const WCHAR *file_url,IDWriteFontFile **fontfile) { + return This->lpVtbl->CreateFontFileReferenceFromUrl(This,factory,base_url,file_url,fontfile); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteInMemoryFontFileLoader interface + */ +#ifndef __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__ +#define __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteInMemoryFontFileLoader, 0xdc102f47, 0xa12d, 0x4b1c, 0x82,0x2d, 0x9e,0x11,0x7e,0x33,0x04,0x3f); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("dc102f47-a12d-4b1c-822d-9e117e33043f") +IDWriteInMemoryFontFileLoader : public IDWriteFontFileLoader +{ + virtual HRESULT STDMETHODCALLTYPE CreateInMemoryFontFileReference( + IDWriteFactory *factory, + const void *data, + UINT32 data_size, + IUnknown *owner, + IDWriteFontFile **fontfile) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetFileCount( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteInMemoryFontFileLoader, 0xdc102f47, 0xa12d, 0x4b1c, 0x82,0x2d, 0x9e,0x11,0x7e,0x33,0x04,0x3f) +#endif +#else +typedef struct IDWriteInMemoryFontFileLoaderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteInMemoryFontFileLoader *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteInMemoryFontFileLoader *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteInMemoryFontFileLoader *This); + + /*** IDWriteFontFileLoader methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateStreamFromKey)( + IDWriteInMemoryFontFileLoader *This, + const void *key, + UINT32 key_size, + IDWriteFontFileStream **stream); + + /*** IDWriteInMemoryFontFileLoader methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileReference)( + IDWriteInMemoryFontFileLoader *This, + IDWriteFactory *factory, + const void *data, + UINT32 data_size, + IUnknown *owner, + IDWriteFontFile **fontfile); + + UINT32 (STDMETHODCALLTYPE *GetFileCount)( + IDWriteInMemoryFontFileLoader *This); + + END_INTERFACE +} IDWriteInMemoryFontFileLoaderVtbl; + +interface IDWriteInMemoryFontFileLoader { + CONST_VTBL IDWriteInMemoryFontFileLoaderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteInMemoryFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteInMemoryFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteInMemoryFontFileLoader_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFileLoader methods ***/ +#define IDWriteInMemoryFontFileLoader_CreateStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateStreamFromKey(This,key,key_size,stream) +/*** IDWriteInMemoryFontFileLoader methods ***/ +#define IDWriteInMemoryFontFileLoader_CreateInMemoryFontFileReference(This,factory,data,data_size,owner,fontfile) (This)->lpVtbl->CreateInMemoryFontFileReference(This,factory,data,data_size,owner,fontfile) +#define IDWriteInMemoryFontFileLoader_GetFileCount(This) (This)->lpVtbl->GetFileCount(This) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteInMemoryFontFileLoader_QueryInterface(IDWriteInMemoryFontFileLoader* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteInMemoryFontFileLoader_AddRef(IDWriteInMemoryFontFileLoader* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteInMemoryFontFileLoader_Release(IDWriteInMemoryFontFileLoader* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFileLoader methods ***/ +static inline HRESULT IDWriteInMemoryFontFileLoader_CreateStreamFromKey(IDWriteInMemoryFontFileLoader* This,const void *key,UINT32 key_size,IDWriteFontFileStream **stream) { + return This->lpVtbl->CreateStreamFromKey(This,key,key_size,stream); +} +/*** IDWriteInMemoryFontFileLoader methods ***/ +static inline HRESULT IDWriteInMemoryFontFileLoader_CreateInMemoryFontFileReference(IDWriteInMemoryFontFileLoader* This,IDWriteFactory *factory,const void *data,UINT32 data_size,IUnknown *owner,IDWriteFontFile **fontfile) { + return This->lpVtbl->CreateInMemoryFontFileReference(This,factory,data,data_size,owner,fontfile); +} +static inline UINT32 IDWriteInMemoryFontFileLoader_GetFileCount(IDWriteInMemoryFontFileLoader* This) { + return This->lpVtbl->GetFileCount(This); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFactory5 interface + */ +#ifndef __IDWriteFactory5_INTERFACE_DEFINED__ +#define __IDWriteFactory5_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFactory5, 0x958db99a, 0xbe2a, 0x4f09, 0xaf,0x7d, 0x65,0x18,0x98,0x03,0xd1,0xd3); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("958db99a-be2a-4f09-af7d-65189803d1d3") +IDWriteFactory5 : public IDWriteFactory4 +{ + virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder( + IDWriteFontSetBuilder1 **fontset_builder) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateInMemoryFontFileLoader( + IDWriteInMemoryFontFileLoader **loader) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateHttpFontFileLoader( + const WCHAR *referrer_url, + const WCHAR *extra_headers, + IDWriteRemoteFontFileLoader **loader) = 0; + + virtual DWRITE_CONTAINER_TYPE STDMETHODCALLTYPE AnalyzeContainerType( + const void *data, + UINT32 data_size) = 0; + + virtual HRESULT STDMETHODCALLTYPE UnpackFontFile( + DWRITE_CONTAINER_TYPE container_type, + const void *data, + UINT32 data_size, + IDWriteFontFileStream **stream) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFactory5, 0x958db99a, 0xbe2a, 0x4f09, 0xaf,0x7d, 0x65,0x18,0x98,0x03,0xd1,0xd3) +#endif +#else +typedef struct IDWriteFactory5Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFactory5 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFactory5 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFactory5 *This); + + /*** IDWriteFactory methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( + IDWriteFactory5 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( + IDWriteFactory5 *This, + IDWriteFontCollectionLoader *loader, + const void *key, + UINT32 key_size, + IDWriteFontCollection **collection); + + HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( + IDWriteFactory5 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( + IDWriteFactory5 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( + IDWriteFactory5 *This, + const WCHAR *path, + const FILETIME *writetime, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( + IDWriteFactory5 *This, + const void *reference_key, + UINT32 key_size, + IDWriteFontFileLoader *loader, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFactory5 *This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile *const *font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace **font_face); + + HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( + IDWriteFactory5 *This, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( + IDWriteFactory5 *This, + HMONITOR monitor, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( + IDWriteFactory5 *This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( + IDWriteFactory5 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( + IDWriteFactory5 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( + IDWriteFactory5 *This, + const WCHAR *family_name, + IDWriteFontCollection *collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR *locale, + IDWriteTextFormat **format); + + HRESULT (STDMETHODCALLTYPE *CreateTypography)( + IDWriteFactory5 *This, + IDWriteTypography **typography); + + HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( + IDWriteFactory5 *This, + IDWriteGdiInterop **gdi_interop); + + HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( + IDWriteFactory5 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( + IDWriteFactory5 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( + IDWriteFactory5 *This, + IDWriteTextFormat *format, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( + IDWriteFactory5 *This, + IDWriteTextAnalyzer **analyzer); + + HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( + IDWriteFactory5 *This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR *locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution **substitution); + + HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( + IDWriteFactory5 *This, + const DWRITE_GLYPH_RUN *glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( + IDWriteFactory5 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( + IDWriteFactory5 *This, + FLOAT gamma, + FLOAT enhcontrast, + FLOAT enhcontrast_grayscale, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams1 **params); + + /*** IDWriteFactory2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)( + IDWriteFactory5 *This, + IDWriteFontFallback **fallback); + + HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)( + IDWriteFactory5 *This, + IDWriteFontFallbackBuilder **fallbackbuilder); + + HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)( + IDWriteFactory5 *This, + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX *transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator **colorlayers); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)( + IDWriteFactory5 *This, + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2 **params); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)( + IDWriteFactory5 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory3 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)( + IDWriteFactory5 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, + FLOAT origin_x, + FLOAT origin_y, + IDWriteGlyphRunAnalysis **analysis); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)( + IDWriteFactory5 *This, + FLOAT gamma, + FLOAT enhanced_contrast, + FLOAT grayscale_enhanced_contrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY pixel_geometry, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + IDWriteRenderingParams3 **params); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)( + IDWriteFactory5 *This, + IDWriteFontFile *file, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)( + IDWriteFactory5 *This, + const WCHAR *path, + const FILETIME *writetime, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)( + IDWriteFactory5 *This, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)( + IDWriteFactory5 *This, + IDWriteFontSetBuilder **builder); + + HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)( + IDWriteFactory5 *This, + IDWriteFontSet *fontset, + IDWriteFontCollection1 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)( + IDWriteFactory5 *This, + WINBOOL include_downloadable, + IDWriteFontCollection1 **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)( + IDWriteFactory5 *This, + IDWriteFontDownloadQueue **queue); + + /*** IDWriteFactory4 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)( + IDWriteFactory5 *This, + D2D1_POINT_2F baseline_origin, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc, + DWRITE_GLYPH_IMAGE_FORMATS desired_formats, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX *transform, + UINT32 palette, + IDWriteColorGlyphRunEnumerator1 **layers); + + HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)( + IDWriteFactory5 *This, + const DWRITE_GLYPH_RUN *run, + D2D1_POINT_2F baseline_origin, + D2D1_POINT_2F *origins); + + HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)( + IDWriteFactory5 *This, + const DWRITE_GLYPH_RUN *run, + DWRITE_MEASURING_MODE measuring_mode, + D2D1_POINT_2F baseline_origin, + const DWRITE_MATRIX *transform, + D2D1_POINT_2F *origins); + + /*** IDWriteFactory5 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)( + IDWriteFactory5 *This, + IDWriteFontSetBuilder1 **fontset_builder); + + HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)( + IDWriteFactory5 *This, + IDWriteInMemoryFontFileLoader **loader); + + HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)( + IDWriteFactory5 *This, + const WCHAR *referrer_url, + const WCHAR *extra_headers, + IDWriteRemoteFontFileLoader **loader); + + DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)( + IDWriteFactory5 *This, + const void *data, + UINT32 data_size); + + HRESULT (STDMETHODCALLTYPE *UnpackFontFile)( + IDWriteFactory5 *This, + DWRITE_CONTAINER_TYPE container_type, + const void *data, + UINT32 data_size, + IDWriteFontFileStream **stream); + + END_INTERFACE +} IDWriteFactory5Vtbl; + +interface IDWriteFactory5 { + CONST_VTBL IDWriteFactory5Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFactory5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory5_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFactory5_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFactory methods ***/ +#define IDWriteFactory5_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) +#define IDWriteFactory5_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) +#define IDWriteFactory5_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) +#define IDWriteFactory5_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) +#define IDWriteFactory5_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) +#define IDWriteFactory5_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) +#define IDWriteFactory5_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) +#define IDWriteFactory5_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) +#define IDWriteFactory5_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) +#define IDWriteFactory5_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) +#define IDWriteFactory5_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) +#define IDWriteFactory5_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) +#define IDWriteFactory5_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) +#define IDWriteFactory5_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) +#define IDWriteFactory5_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) +#define IDWriteFactory5_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) +#define IDWriteFactory5_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) +#define IDWriteFactory5_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +/*** IDWriteFactory1 methods ***/ +#define IDWriteFactory5_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) +/*** IDWriteFactory2 methods ***/ +#define IDWriteFactory5_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback) +#define IDWriteFactory5_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder) +/*** IDWriteFactory3 methods ***/ +#define IDWriteFactory5_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) +#define IDWriteFactory5_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) +#define IDWriteFactory5_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference) +#define IDWriteFactory5_CreateFontFaceReference(This,path,writetime,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference) +#define IDWriteFactory5_GetSystemFontSet(This,fontset) (This)->lpVtbl->GetSystemFontSet(This,fontset) +#define IDWriteFactory5_CreateFontCollectionFromFontSet(This,fontset,collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection) +#define IDWriteFactory5_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) +#define IDWriteFactory5_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue) +/*** IDWriteFactory4 methods ***/ +#define IDWriteFactory5_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) +#define IDWriteFactory5_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins) +#define IDWriteFactory5_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) +/*** IDWriteFactory5 methods ***/ +#define IDWriteFactory5_CreateFontSetBuilder(This,fontset_builder) (This)->lpVtbl->IDWriteFactory5_CreateFontSetBuilder(This,fontset_builder) +#define IDWriteFactory5_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader) +#define IDWriteFactory5_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) +#define IDWriteFactory5_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size) +#define IDWriteFactory5_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFactory5_QueryInterface(IDWriteFactory5* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFactory5_AddRef(IDWriteFactory5* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFactory5_Release(IDWriteFactory5* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFactory methods ***/ +static inline HRESULT IDWriteFactory5_CreateCustomFontCollection(IDWriteFactory5* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { + return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +} +static inline HRESULT IDWriteFactory5_RegisterFontCollectionLoader(IDWriteFactory5* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory5_UnregisterFontCollectionLoader(IDWriteFactory5* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory5_CreateFontFileReference(IDWriteFactory5* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +} +static inline HRESULT IDWriteFactory5_CreateCustomFontFileReference(IDWriteFactory5* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +} +static inline HRESULT IDWriteFactory5_CreateFontFace(IDWriteFactory5* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { + return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +} +static inline HRESULT IDWriteFactory5_CreateRenderingParams(IDWriteFactory5* This,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateRenderingParams(This,params); +} +static inline HRESULT IDWriteFactory5_CreateMonitorRenderingParams(IDWriteFactory5* This,HMONITOR monitor,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +} +static inline HRESULT IDWriteFactory5_RegisterFontFileLoader(IDWriteFactory5* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->RegisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory5_UnregisterFontFileLoader(IDWriteFactory5* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->UnregisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory5_CreateTextFormat(IDWriteFactory5* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) { + return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format); +} +static inline HRESULT IDWriteFactory5_CreateTypography(IDWriteFactory5* This,IDWriteTypography **typography) { + return This->lpVtbl->CreateTypography(This,typography); +} +static inline HRESULT IDWriteFactory5_GetGdiInterop(IDWriteFactory5* This,IDWriteGdiInterop **gdi_interop) { + return This->lpVtbl->GetGdiInterop(This,gdi_interop); +} +static inline HRESULT IDWriteFactory5_CreateTextLayout(IDWriteFactory5* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +} +static inline HRESULT IDWriteFactory5_CreateGdiCompatibleTextLayout(IDWriteFactory5* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +} +static inline HRESULT IDWriteFactory5_CreateEllipsisTrimmingSign(IDWriteFactory5* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +} +static inline HRESULT IDWriteFactory5_CreateTextAnalyzer(IDWriteFactory5* This,IDWriteTextAnalyzer **analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +} +static inline HRESULT IDWriteFactory5_CreateNumberSubstitution(IDWriteFactory5* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { + return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +} +/*** IDWriteFactory1 methods ***/ +static inline HRESULT IDWriteFactory5_GetEudcFontCollection(IDWriteFactory5* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { + return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); +} +/*** IDWriteFactory2 methods ***/ +static inline HRESULT IDWriteFactory5_GetSystemFontFallback(IDWriteFactory5* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetSystemFontFallback(This,fallback); +} +static inline HRESULT IDWriteFactory5_CreateFontFallbackBuilder(IDWriteFactory5* This,IDWriteFontFallbackBuilder **fallbackbuilder) { + return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); +} +/*** IDWriteFactory3 methods ***/ +static inline HRESULT IDWriteFactory5_CreateGlyphRunAnalysis(IDWriteFactory5* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) { + return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis); +} +static inline HRESULT IDWriteFactory5_CreateCustomRenderingParams(IDWriteFactory5* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) { + return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params); +} +static inline HRESULT IDWriteFactory5_CreateFontFaceReference_(IDWriteFactory5* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { + return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference); +} +static inline HRESULT IDWriteFactory5_CreateFontFaceReference(IDWriteFactory5* This,const WCHAR *path,const FILETIME *writetime,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { + return This->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference); +} +static inline HRESULT IDWriteFactory5_GetSystemFontSet(IDWriteFactory5* This,IDWriteFontSet **fontset) { + return This->lpVtbl->GetSystemFontSet(This,fontset); +} +static inline HRESULT IDWriteFactory5_CreateFontCollectionFromFontSet(IDWriteFactory5* This,IDWriteFontSet *fontset,IDWriteFontCollection1 **collection) { + return This->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection); +} +static inline HRESULT IDWriteFactory5_GetSystemFontCollection(IDWriteFactory5* This,WINBOOL include_downloadable,IDWriteFontCollection1 **collection,WINBOOL check_for_updates) { + return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates); +} +static inline HRESULT IDWriteFactory5_GetFontDownloadQueue(IDWriteFactory5* This,IDWriteFontDownloadQueue **queue) { + return This->lpVtbl->GetFontDownloadQueue(This,queue); +} +/*** IDWriteFactory4 methods ***/ +static inline HRESULT IDWriteFactory5_TranslateColorGlyphRun(IDWriteFactory5* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) { + return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers); +} +static inline HRESULT IDWriteFactory5_ComputeGlyphOrigins_(IDWriteFactory5* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) { + return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins); +} +static inline HRESULT IDWriteFactory5_ComputeGlyphOrigins(IDWriteFactory5* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) { + return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins); +} +/*** IDWriteFactory5 methods ***/ +static inline HRESULT IDWriteFactory5_CreateFontSetBuilder(IDWriteFactory5* This,IDWriteFontSetBuilder1 **fontset_builder) { + return This->lpVtbl->IDWriteFactory5_CreateFontSetBuilder(This,fontset_builder); +} +static inline HRESULT IDWriteFactory5_CreateInMemoryFontFileLoader(IDWriteFactory5* This,IDWriteInMemoryFontFileLoader **loader) { + return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory5_CreateHttpFontFileLoader(IDWriteFactory5* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) { + return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader); +} +static inline DWRITE_CONTAINER_TYPE IDWriteFactory5_AnalyzeContainerType(IDWriteFactory5* This,const void *data,UINT32 data_size) { + return This->lpVtbl->AnalyzeContainerType(This,data,data_size); +} +static inline HRESULT IDWriteFactory5_UnpackFontFile(IDWriteFactory5* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) { + return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFactory5_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFactory6 interface + */ +#ifndef __IDWriteFactory6_INTERFACE_DEFINED__ +#define __IDWriteFactory6_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFactory6, 0xf3744d80, 0x21f7, 0x42eb, 0xb3,0x5d, 0x99,0x5b,0xc7,0x2f,0xc2,0x23); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("f3744d80-21f7-42eb-b35d-995bc72fc223") +IDWriteFactory6 : public IDWriteFactory5 +{ + virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference( + IDWriteFontFile *file, + UINT32 face_index, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_axis, + IDWriteFontFaceReference1 **face_ref) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontResource( + IDWriteFontFile *file, + UINT32 face_index, + IDWriteFontResource **resource) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet( + WINBOOL include_downloadable, + IDWriteFontSet1 **fontset) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection( + WINBOOL include_downloadable, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2 **collection) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontCollectionFromFontSet( + IDWriteFontSet *fontset, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2 **collection) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder( + IDWriteFontSetBuilder2 **builder) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateTextFormat( + const WCHAR *familyname, + IDWriteFontCollection *collection, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_axis, + FLOAT fontsize, + const WCHAR *localename, + IDWriteTextFormat3 **format) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFactory6, 0xf3744d80, 0x21f7, 0x42eb, 0xb3,0x5d, 0x99,0x5b,0xc7,0x2f,0xc2,0x23) +#endif +#else +typedef struct IDWriteFactory6Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFactory6 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFactory6 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFactory6 *This); + + /*** IDWriteFactory methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( + IDWriteFactory6 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( + IDWriteFactory6 *This, + IDWriteFontCollectionLoader *loader, + const void *key, + UINT32 key_size, + IDWriteFontCollection **collection); + + HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( + IDWriteFactory6 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( + IDWriteFactory6 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( + IDWriteFactory6 *This, + const WCHAR *path, + const FILETIME *writetime, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( + IDWriteFactory6 *This, + const void *reference_key, + UINT32 key_size, + IDWriteFontFileLoader *loader, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFactory6 *This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile *const *font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace **font_face); + + HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( + IDWriteFactory6 *This, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( + IDWriteFactory6 *This, + HMONITOR monitor, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( + IDWriteFactory6 *This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( + IDWriteFactory6 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( + IDWriteFactory6 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( + IDWriteFactory6 *This, + const WCHAR *family_name, + IDWriteFontCollection *collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR *locale, + IDWriteTextFormat **format); + + HRESULT (STDMETHODCALLTYPE *CreateTypography)( + IDWriteFactory6 *This, + IDWriteTypography **typography); + + HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( + IDWriteFactory6 *This, + IDWriteGdiInterop **gdi_interop); + + HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( + IDWriteFactory6 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( + IDWriteFactory6 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( + IDWriteFactory6 *This, + IDWriteTextFormat *format, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( + IDWriteFactory6 *This, + IDWriteTextAnalyzer **analyzer); + + HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( + IDWriteFactory6 *This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR *locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution **substitution); + + HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( + IDWriteFactory6 *This, + const DWRITE_GLYPH_RUN *glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( + IDWriteFactory6 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( + IDWriteFactory6 *This, + FLOAT gamma, + FLOAT enhcontrast, + FLOAT enhcontrast_grayscale, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams1 **params); + + /*** IDWriteFactory2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)( + IDWriteFactory6 *This, + IDWriteFontFallback **fallback); + + HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)( + IDWriteFactory6 *This, + IDWriteFontFallbackBuilder **fallbackbuilder); + + HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)( + IDWriteFactory6 *This, + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX *transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator **colorlayers); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)( + IDWriteFactory6 *This, + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2 **params); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)( + IDWriteFactory6 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory3 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)( + IDWriteFactory6 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, + FLOAT origin_x, + FLOAT origin_y, + IDWriteGlyphRunAnalysis **analysis); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)( + IDWriteFactory6 *This, + FLOAT gamma, + FLOAT enhanced_contrast, + FLOAT grayscale_enhanced_contrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY pixel_geometry, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + IDWriteRenderingParams3 **params); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)( + IDWriteFactory6 *This, + IDWriteFontFile *file, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)( + IDWriteFactory6 *This, + const WCHAR *path, + const FILETIME *writetime, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)( + IDWriteFactory6 *This, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)( + IDWriteFactory6 *This, + IDWriteFontSetBuilder **builder); + + HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)( + IDWriteFactory6 *This, + IDWriteFontSet *fontset, + IDWriteFontCollection1 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)( + IDWriteFactory6 *This, + WINBOOL include_downloadable, + IDWriteFontCollection1 **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)( + IDWriteFactory6 *This, + IDWriteFontDownloadQueue **queue); + + /*** IDWriteFactory4 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)( + IDWriteFactory6 *This, + D2D1_POINT_2F baseline_origin, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc, + DWRITE_GLYPH_IMAGE_FORMATS desired_formats, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX *transform, + UINT32 palette, + IDWriteColorGlyphRunEnumerator1 **layers); + + HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)( + IDWriteFactory6 *This, + const DWRITE_GLYPH_RUN *run, + D2D1_POINT_2F baseline_origin, + D2D1_POINT_2F *origins); + + HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)( + IDWriteFactory6 *This, + const DWRITE_GLYPH_RUN *run, + DWRITE_MEASURING_MODE measuring_mode, + D2D1_POINT_2F baseline_origin, + const DWRITE_MATRIX *transform, + D2D1_POINT_2F *origins); + + /*** IDWriteFactory5 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)( + IDWriteFactory6 *This, + IDWriteFontSetBuilder1 **fontset_builder); + + HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)( + IDWriteFactory6 *This, + IDWriteInMemoryFontFileLoader **loader); + + HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)( + IDWriteFactory6 *This, + const WCHAR *referrer_url, + const WCHAR *extra_headers, + IDWriteRemoteFontFileLoader **loader); + + DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)( + IDWriteFactory6 *This, + const void *data, + UINT32 data_size); + + HRESULT (STDMETHODCALLTYPE *UnpackFontFile)( + IDWriteFactory6 *This, + DWRITE_CONTAINER_TYPE container_type, + const void *data, + UINT32 data_size, + IDWriteFontFileStream **stream); + + /*** IDWriteFactory6 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontFaceReference)( + IDWriteFactory6 *This, + IDWriteFontFile *file, + UINT32 face_index, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_axis, + IDWriteFontFaceReference1 **face_ref); + + HRESULT (STDMETHODCALLTYPE *CreateFontResource)( + IDWriteFactory6 *This, + IDWriteFontFile *file, + UINT32 face_index, + IDWriteFontResource **resource); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontSet)( + IDWriteFactory6 *This, + WINBOOL include_downloadable, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontCollection)( + IDWriteFactory6 *This, + WINBOOL include_downloadable, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontCollectionFromFontSet)( + IDWriteFactory6 *This, + IDWriteFontSet *fontset, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontSetBuilder)( + IDWriteFactory6 *This, + IDWriteFontSetBuilder2 **builder); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateTextFormat)( + IDWriteFactory6 *This, + const WCHAR *familyname, + IDWriteFontCollection *collection, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_axis, + FLOAT fontsize, + const WCHAR *localename, + IDWriteTextFormat3 **format); + + END_INTERFACE +} IDWriteFactory6Vtbl; + +interface IDWriteFactory6 { + CONST_VTBL IDWriteFactory6Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFactory6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory6_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFactory6_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFactory methods ***/ +#define IDWriteFactory6_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) +#define IDWriteFactory6_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) +#define IDWriteFactory6_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) +#define IDWriteFactory6_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) +#define IDWriteFactory6_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) +#define IDWriteFactory6_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) +#define IDWriteFactory6_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) +#define IDWriteFactory6_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) +#define IDWriteFactory6_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) +#define IDWriteFactory6_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) +#define IDWriteFactory6_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) +#define IDWriteFactory6_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) +#define IDWriteFactory6_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) +#define IDWriteFactory6_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) +#define IDWriteFactory6_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) +#define IDWriteFactory6_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) +#define IDWriteFactory6_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +/*** IDWriteFactory1 methods ***/ +#define IDWriteFactory6_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) +/*** IDWriteFactory2 methods ***/ +#define IDWriteFactory6_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback) +#define IDWriteFactory6_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder) +/*** IDWriteFactory3 methods ***/ +#define IDWriteFactory6_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) +#define IDWriteFactory6_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) +#define IDWriteFactory6_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference) +#define IDWriteFactory6_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue) +/*** IDWriteFactory4 methods ***/ +#define IDWriteFactory6_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) +#define IDWriteFactory6_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins) +#define IDWriteFactory6_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) +/*** IDWriteFactory5 methods ***/ +#define IDWriteFactory6_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader) +#define IDWriteFactory6_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) +#define IDWriteFactory6_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size) +#define IDWriteFactory6_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream) +/*** IDWriteFactory6 methods ***/ +#define IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) +#define IDWriteFactory6_CreateFontResource(This,file,face_index,resource) (This)->lpVtbl->CreateFontResource(This,file,face_index,resource) +#define IDWriteFactory6_GetSystemFontSet(This,include_downloadable,fontset) (This)->lpVtbl->IDWriteFactory6_GetSystemFontSet(This,include_downloadable,fontset) +#define IDWriteFactory6_GetSystemFontCollection(This,include_downloadable,family_model,collection) (This)->lpVtbl->IDWriteFactory6_GetSystemFontCollection(This,include_downloadable,family_model,collection) +#define IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) +#define IDWriteFactory6_CreateFontSetBuilder(This,builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder) +#define IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFactory6_QueryInterface(IDWriteFactory6* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFactory6_AddRef(IDWriteFactory6* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFactory6_Release(IDWriteFactory6* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFactory methods ***/ +static inline HRESULT IDWriteFactory6_CreateCustomFontCollection(IDWriteFactory6* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { + return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +} +static inline HRESULT IDWriteFactory6_RegisterFontCollectionLoader(IDWriteFactory6* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory6_UnregisterFontCollectionLoader(IDWriteFactory6* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory6_CreateFontFileReference(IDWriteFactory6* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +} +static inline HRESULT IDWriteFactory6_CreateCustomFontFileReference(IDWriteFactory6* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +} +static inline HRESULT IDWriteFactory6_CreateFontFace(IDWriteFactory6* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { + return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +} +static inline HRESULT IDWriteFactory6_CreateRenderingParams(IDWriteFactory6* This,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateRenderingParams(This,params); +} +static inline HRESULT IDWriteFactory6_CreateMonitorRenderingParams(IDWriteFactory6* This,HMONITOR monitor,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +} +static inline HRESULT IDWriteFactory6_RegisterFontFileLoader(IDWriteFactory6* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->RegisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory6_UnregisterFontFileLoader(IDWriteFactory6* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->UnregisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory6_CreateTypography(IDWriteFactory6* This,IDWriteTypography **typography) { + return This->lpVtbl->CreateTypography(This,typography); +} +static inline HRESULT IDWriteFactory6_GetGdiInterop(IDWriteFactory6* This,IDWriteGdiInterop **gdi_interop) { + return This->lpVtbl->GetGdiInterop(This,gdi_interop); +} +static inline HRESULT IDWriteFactory6_CreateTextLayout(IDWriteFactory6* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +} +static inline HRESULT IDWriteFactory6_CreateGdiCompatibleTextLayout(IDWriteFactory6* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +} +static inline HRESULT IDWriteFactory6_CreateEllipsisTrimmingSign(IDWriteFactory6* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +} +static inline HRESULT IDWriteFactory6_CreateTextAnalyzer(IDWriteFactory6* This,IDWriteTextAnalyzer **analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +} +static inline HRESULT IDWriteFactory6_CreateNumberSubstitution(IDWriteFactory6* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { + return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +} +/*** IDWriteFactory1 methods ***/ +static inline HRESULT IDWriteFactory6_GetEudcFontCollection(IDWriteFactory6* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { + return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); +} +/*** IDWriteFactory2 methods ***/ +static inline HRESULT IDWriteFactory6_GetSystemFontFallback(IDWriteFactory6* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetSystemFontFallback(This,fallback); +} +static inline HRESULT IDWriteFactory6_CreateFontFallbackBuilder(IDWriteFactory6* This,IDWriteFontFallbackBuilder **fallbackbuilder) { + return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); +} +/*** IDWriteFactory3 methods ***/ +static inline HRESULT IDWriteFactory6_CreateGlyphRunAnalysis(IDWriteFactory6* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) { + return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis); +} +static inline HRESULT IDWriteFactory6_CreateCustomRenderingParams(IDWriteFactory6* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) { + return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params); +} +static inline HRESULT IDWriteFactory6_CreateFontFaceReference_(IDWriteFactory6* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { + return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference); +} +static inline HRESULT IDWriteFactory6_GetFontDownloadQueue(IDWriteFactory6* This,IDWriteFontDownloadQueue **queue) { + return This->lpVtbl->GetFontDownloadQueue(This,queue); +} +/*** IDWriteFactory4 methods ***/ +static inline HRESULT IDWriteFactory6_TranslateColorGlyphRun(IDWriteFactory6* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) { + return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers); +} +static inline HRESULT IDWriteFactory6_ComputeGlyphOrigins_(IDWriteFactory6* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) { + return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins); +} +static inline HRESULT IDWriteFactory6_ComputeGlyphOrigins(IDWriteFactory6* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) { + return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins); +} +/*** IDWriteFactory5 methods ***/ +static inline HRESULT IDWriteFactory6_CreateInMemoryFontFileLoader(IDWriteFactory6* This,IDWriteInMemoryFontFileLoader **loader) { + return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory6_CreateHttpFontFileLoader(IDWriteFactory6* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) { + return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader); +} +static inline DWRITE_CONTAINER_TYPE IDWriteFactory6_AnalyzeContainerType(IDWriteFactory6* This,const void *data,UINT32 data_size) { + return This->lpVtbl->AnalyzeContainerType(This,data,data_size); +} +static inline HRESULT IDWriteFactory6_UnpackFontFile(IDWriteFactory6* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) { + return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream); +} +/*** IDWriteFactory6 methods ***/ +static inline HRESULT IDWriteFactory6_CreateFontFaceReference(IDWriteFactory6* This,IDWriteFontFile *file,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,IDWriteFontFaceReference1 **face_ref) { + return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref); +} +static inline HRESULT IDWriteFactory6_CreateFontResource(IDWriteFactory6* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) { + return This->lpVtbl->CreateFontResource(This,file,face_index,resource); +} +static inline HRESULT IDWriteFactory6_GetSystemFontSet(IDWriteFactory6* This,WINBOOL include_downloadable,IDWriteFontSet1 **fontset) { + return This->lpVtbl->IDWriteFactory6_GetSystemFontSet(This,include_downloadable,fontset); +} +static inline HRESULT IDWriteFactory6_GetSystemFontCollection(IDWriteFactory6* This,WINBOOL include_downloadable,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) { + return This->lpVtbl->IDWriteFactory6_GetSystemFontCollection(This,include_downloadable,family_model,collection); +} +static inline HRESULT IDWriteFactory6_CreateFontCollectionFromFontSet(IDWriteFactory6* This,IDWriteFontSet *fontset,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) { + return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection); +} +static inline HRESULT IDWriteFactory6_CreateFontSetBuilder(IDWriteFactory6* This,IDWriteFontSetBuilder2 **builder) { + return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder); +} +static inline HRESULT IDWriteFactory6_CreateTextFormat(IDWriteFactory6* This,const WCHAR *familyname,IDWriteFontCollection *collection,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,FLOAT fontsize,const WCHAR *localename,IDWriteTextFormat3 **format) { + return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFactory6_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFactory7 interface + */ +#ifndef __IDWriteFactory7_INTERFACE_DEFINED__ +#define __IDWriteFactory7_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFactory7, 0x35d0e0b3, 0x9076, 0x4d2e, 0xa0,0x16, 0xa9,0x1b,0x56,0x8a,0x06,0xb4); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("35d0e0b3-9076-4d2e-a016-a91b568a06b4") +IDWriteFactory7 : public IDWriteFactory6 +{ + virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet( + WINBOOL include_downloadable, + IDWriteFontSet2 **fontset) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection( + WINBOOL include_downloadable, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection3 **collection) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFactory7, 0x35d0e0b3, 0x9076, 0x4d2e, 0xa0,0x16, 0xa9,0x1b,0x56,0x8a,0x06,0xb4) +#endif +#else +typedef struct IDWriteFactory7Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFactory7 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFactory7 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFactory7 *This); + + /*** IDWriteFactory methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( + IDWriteFactory7 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( + IDWriteFactory7 *This, + IDWriteFontCollectionLoader *loader, + const void *key, + UINT32 key_size, + IDWriteFontCollection **collection); + + HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( + IDWriteFactory7 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( + IDWriteFactory7 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( + IDWriteFactory7 *This, + const WCHAR *path, + const FILETIME *writetime, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( + IDWriteFactory7 *This, + const void *reference_key, + UINT32 key_size, + IDWriteFontFileLoader *loader, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFactory7 *This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile *const *font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace **font_face); + + HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( + IDWriteFactory7 *This, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( + IDWriteFactory7 *This, + HMONITOR monitor, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( + IDWriteFactory7 *This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( + IDWriteFactory7 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( + IDWriteFactory7 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( + IDWriteFactory7 *This, + const WCHAR *family_name, + IDWriteFontCollection *collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR *locale, + IDWriteTextFormat **format); + + HRESULT (STDMETHODCALLTYPE *CreateTypography)( + IDWriteFactory7 *This, + IDWriteTypography **typography); + + HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( + IDWriteFactory7 *This, + IDWriteGdiInterop **gdi_interop); + + HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( + IDWriteFactory7 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( + IDWriteFactory7 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( + IDWriteFactory7 *This, + IDWriteTextFormat *format, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( + IDWriteFactory7 *This, + IDWriteTextAnalyzer **analyzer); + + HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( + IDWriteFactory7 *This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR *locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution **substitution); + + HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( + IDWriteFactory7 *This, + const DWRITE_GLYPH_RUN *glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( + IDWriteFactory7 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( + IDWriteFactory7 *This, + FLOAT gamma, + FLOAT enhcontrast, + FLOAT enhcontrast_grayscale, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams1 **params); + + /*** IDWriteFactory2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)( + IDWriteFactory7 *This, + IDWriteFontFallback **fallback); + + HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)( + IDWriteFactory7 *This, + IDWriteFontFallbackBuilder **fallbackbuilder); + + HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)( + IDWriteFactory7 *This, + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX *transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator **colorlayers); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)( + IDWriteFactory7 *This, + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2 **params); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)( + IDWriteFactory7 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory3 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)( + IDWriteFactory7 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, + FLOAT origin_x, + FLOAT origin_y, + IDWriteGlyphRunAnalysis **analysis); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)( + IDWriteFactory7 *This, + FLOAT gamma, + FLOAT enhanced_contrast, + FLOAT grayscale_enhanced_contrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY pixel_geometry, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + IDWriteRenderingParams3 **params); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)( + IDWriteFactory7 *This, + IDWriteFontFile *file, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)( + IDWriteFactory7 *This, + const WCHAR *path, + const FILETIME *writetime, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)( + IDWriteFactory7 *This, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)( + IDWriteFactory7 *This, + IDWriteFontSetBuilder **builder); + + HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)( + IDWriteFactory7 *This, + IDWriteFontSet *fontset, + IDWriteFontCollection1 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)( + IDWriteFactory7 *This, + WINBOOL include_downloadable, + IDWriteFontCollection1 **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)( + IDWriteFactory7 *This, + IDWriteFontDownloadQueue **queue); + + /*** IDWriteFactory4 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)( + IDWriteFactory7 *This, + D2D1_POINT_2F baseline_origin, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc, + DWRITE_GLYPH_IMAGE_FORMATS desired_formats, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX *transform, + UINT32 palette, + IDWriteColorGlyphRunEnumerator1 **layers); + + HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)( + IDWriteFactory7 *This, + const DWRITE_GLYPH_RUN *run, + D2D1_POINT_2F baseline_origin, + D2D1_POINT_2F *origins); + + HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)( + IDWriteFactory7 *This, + const DWRITE_GLYPH_RUN *run, + DWRITE_MEASURING_MODE measuring_mode, + D2D1_POINT_2F baseline_origin, + const DWRITE_MATRIX *transform, + D2D1_POINT_2F *origins); + + /*** IDWriteFactory5 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)( + IDWriteFactory7 *This, + IDWriteFontSetBuilder1 **fontset_builder); + + HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)( + IDWriteFactory7 *This, + IDWriteInMemoryFontFileLoader **loader); + + HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)( + IDWriteFactory7 *This, + const WCHAR *referrer_url, + const WCHAR *extra_headers, + IDWriteRemoteFontFileLoader **loader); + + DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)( + IDWriteFactory7 *This, + const void *data, + UINT32 data_size); + + HRESULT (STDMETHODCALLTYPE *UnpackFontFile)( + IDWriteFactory7 *This, + DWRITE_CONTAINER_TYPE container_type, + const void *data, + UINT32 data_size, + IDWriteFontFileStream **stream); + + /*** IDWriteFactory6 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontFaceReference)( + IDWriteFactory7 *This, + IDWriteFontFile *file, + UINT32 face_index, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_axis, + IDWriteFontFaceReference1 **face_ref); + + HRESULT (STDMETHODCALLTYPE *CreateFontResource)( + IDWriteFactory7 *This, + IDWriteFontFile *file, + UINT32 face_index, + IDWriteFontResource **resource); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontSet)( + IDWriteFactory7 *This, + WINBOOL include_downloadable, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontCollection)( + IDWriteFactory7 *This, + WINBOOL include_downloadable, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontCollectionFromFontSet)( + IDWriteFactory7 *This, + IDWriteFontSet *fontset, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontSetBuilder)( + IDWriteFactory7 *This, + IDWriteFontSetBuilder2 **builder); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateTextFormat)( + IDWriteFactory7 *This, + const WCHAR *familyname, + IDWriteFontCollection *collection, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_axis, + FLOAT fontsize, + const WCHAR *localename, + IDWriteTextFormat3 **format); + + /*** IDWriteFactory7 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontSet)( + IDWriteFactory7 *This, + WINBOOL include_downloadable, + IDWriteFontSet2 **fontset); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontCollection)( + IDWriteFactory7 *This, + WINBOOL include_downloadable, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection3 **collection); + + END_INTERFACE +} IDWriteFactory7Vtbl; + +interface IDWriteFactory7 { + CONST_VTBL IDWriteFactory7Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFactory7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory7_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFactory7_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFactory methods ***/ +#define IDWriteFactory7_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) +#define IDWriteFactory7_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) +#define IDWriteFactory7_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) +#define IDWriteFactory7_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) +#define IDWriteFactory7_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) +#define IDWriteFactory7_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) +#define IDWriteFactory7_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) +#define IDWriteFactory7_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) +#define IDWriteFactory7_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) +#define IDWriteFactory7_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) +#define IDWriteFactory7_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) +#define IDWriteFactory7_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) +#define IDWriteFactory7_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) +#define IDWriteFactory7_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) +#define IDWriteFactory7_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) +#define IDWriteFactory7_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) +#define IDWriteFactory7_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +/*** IDWriteFactory1 methods ***/ +#define IDWriteFactory7_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) +/*** IDWriteFactory2 methods ***/ +#define IDWriteFactory7_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback) +#define IDWriteFactory7_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder) +/*** IDWriteFactory3 methods ***/ +#define IDWriteFactory7_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) +#define IDWriteFactory7_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) +#define IDWriteFactory7_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference) +#define IDWriteFactory7_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue) +/*** IDWriteFactory4 methods ***/ +#define IDWriteFactory7_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) +#define IDWriteFactory7_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins) +#define IDWriteFactory7_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) +/*** IDWriteFactory5 methods ***/ +#define IDWriteFactory7_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader) +#define IDWriteFactory7_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) +#define IDWriteFactory7_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size) +#define IDWriteFactory7_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream) +/*** IDWriteFactory6 methods ***/ +#define IDWriteFactory7_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) +#define IDWriteFactory7_CreateFontResource(This,file,face_index,resource) (This)->lpVtbl->CreateFontResource(This,file,face_index,resource) +#define IDWriteFactory7_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) +#define IDWriteFactory7_CreateFontSetBuilder(This,builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder) +#define IDWriteFactory7_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) +/*** IDWriteFactory7 methods ***/ +#define IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset) (This)->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset) +#define IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection) (This)->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFactory7_QueryInterface(IDWriteFactory7* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFactory7_AddRef(IDWriteFactory7* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFactory7_Release(IDWriteFactory7* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFactory methods ***/ +static inline HRESULT IDWriteFactory7_CreateCustomFontCollection(IDWriteFactory7* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { + return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +} +static inline HRESULT IDWriteFactory7_RegisterFontCollectionLoader(IDWriteFactory7* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory7_UnregisterFontCollectionLoader(IDWriteFactory7* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory7_CreateFontFileReference(IDWriteFactory7* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +} +static inline HRESULT IDWriteFactory7_CreateCustomFontFileReference(IDWriteFactory7* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +} +static inline HRESULT IDWriteFactory7_CreateFontFace(IDWriteFactory7* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { + return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +} +static inline HRESULT IDWriteFactory7_CreateRenderingParams(IDWriteFactory7* This,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateRenderingParams(This,params); +} +static inline HRESULT IDWriteFactory7_CreateMonitorRenderingParams(IDWriteFactory7* This,HMONITOR monitor,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +} +static inline HRESULT IDWriteFactory7_RegisterFontFileLoader(IDWriteFactory7* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->RegisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory7_UnregisterFontFileLoader(IDWriteFactory7* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->UnregisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory7_CreateTypography(IDWriteFactory7* This,IDWriteTypography **typography) { + return This->lpVtbl->CreateTypography(This,typography); +} +static inline HRESULT IDWriteFactory7_GetGdiInterop(IDWriteFactory7* This,IDWriteGdiInterop **gdi_interop) { + return This->lpVtbl->GetGdiInterop(This,gdi_interop); +} +static inline HRESULT IDWriteFactory7_CreateTextLayout(IDWriteFactory7* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +} +static inline HRESULT IDWriteFactory7_CreateGdiCompatibleTextLayout(IDWriteFactory7* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +} +static inline HRESULT IDWriteFactory7_CreateEllipsisTrimmingSign(IDWriteFactory7* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +} +static inline HRESULT IDWriteFactory7_CreateTextAnalyzer(IDWriteFactory7* This,IDWriteTextAnalyzer **analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +} +static inline HRESULT IDWriteFactory7_CreateNumberSubstitution(IDWriteFactory7* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { + return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +} +/*** IDWriteFactory1 methods ***/ +static inline HRESULT IDWriteFactory7_GetEudcFontCollection(IDWriteFactory7* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { + return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); +} +/*** IDWriteFactory2 methods ***/ +static inline HRESULT IDWriteFactory7_GetSystemFontFallback(IDWriteFactory7* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetSystemFontFallback(This,fallback); +} +static inline HRESULT IDWriteFactory7_CreateFontFallbackBuilder(IDWriteFactory7* This,IDWriteFontFallbackBuilder **fallbackbuilder) { + return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); +} +/*** IDWriteFactory3 methods ***/ +static inline HRESULT IDWriteFactory7_CreateGlyphRunAnalysis(IDWriteFactory7* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) { + return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis); +} +static inline HRESULT IDWriteFactory7_CreateCustomRenderingParams(IDWriteFactory7* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) { + return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params); +} +static inline HRESULT IDWriteFactory7_CreateFontFaceReference_(IDWriteFactory7* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { + return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference); +} +static inline HRESULT IDWriteFactory7_GetFontDownloadQueue(IDWriteFactory7* This,IDWriteFontDownloadQueue **queue) { + return This->lpVtbl->GetFontDownloadQueue(This,queue); +} +/*** IDWriteFactory4 methods ***/ +static inline HRESULT IDWriteFactory7_TranslateColorGlyphRun(IDWriteFactory7* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) { + return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers); +} +static inline HRESULT IDWriteFactory7_ComputeGlyphOrigins_(IDWriteFactory7* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) { + return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins); +} +static inline HRESULT IDWriteFactory7_ComputeGlyphOrigins(IDWriteFactory7* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) { + return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins); +} +/*** IDWriteFactory5 methods ***/ +static inline HRESULT IDWriteFactory7_CreateInMemoryFontFileLoader(IDWriteFactory7* This,IDWriteInMemoryFontFileLoader **loader) { + return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory7_CreateHttpFontFileLoader(IDWriteFactory7* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) { + return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader); +} +static inline DWRITE_CONTAINER_TYPE IDWriteFactory7_AnalyzeContainerType(IDWriteFactory7* This,const void *data,UINT32 data_size) { + return This->lpVtbl->AnalyzeContainerType(This,data,data_size); +} +static inline HRESULT IDWriteFactory7_UnpackFontFile(IDWriteFactory7* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) { + return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream); +} +/*** IDWriteFactory6 methods ***/ +static inline HRESULT IDWriteFactory7_CreateFontFaceReference(IDWriteFactory7* This,IDWriteFontFile *file,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,IDWriteFontFaceReference1 **face_ref) { + return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref); +} +static inline HRESULT IDWriteFactory7_CreateFontResource(IDWriteFactory7* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) { + return This->lpVtbl->CreateFontResource(This,file,face_index,resource); +} +static inline HRESULT IDWriteFactory7_CreateFontCollectionFromFontSet(IDWriteFactory7* This,IDWriteFontSet *fontset,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) { + return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection); +} +static inline HRESULT IDWriteFactory7_CreateFontSetBuilder(IDWriteFactory7* This,IDWriteFontSetBuilder2 **builder) { + return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder); +} +static inline HRESULT IDWriteFactory7_CreateTextFormat(IDWriteFactory7* This,const WCHAR *familyname,IDWriteFontCollection *collection,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,FLOAT fontsize,const WCHAR *localename,IDWriteTextFormat3 **format) { + return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format); +} +/*** IDWriteFactory7 methods ***/ +static inline HRESULT IDWriteFactory7_GetSystemFontSet(IDWriteFactory7* This,WINBOOL include_downloadable,IDWriteFontSet2 **fontset) { + return This->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset); +} +static inline HRESULT IDWriteFactory7_GetSystemFontCollection(IDWriteFactory7* This,WINBOOL include_downloadable,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection3 **collection) { + return This->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFactory7_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFactory8 interface + */ +#ifndef __IDWriteFactory8_INTERFACE_DEFINED__ +#define __IDWriteFactory8_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFactory8, 0xee0a7fb5, 0xdef4, 0x4c23, 0xa4,0x54, 0xc9,0xc7,0xdc,0x87,0x83,0x98); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("ee0a7fb5-def4-4c23-a454-c9c7dc878398") +IDWriteFactory8 : public IDWriteFactory7 +{ + virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun( + D2D1_POINT_2F origin, + const DWRITE_GLYPH_RUN *glyph_run, + const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc, + DWRITE_GLYPH_IMAGE_FORMATS image_formats, + DWRITE_PAINT_FEATURE_LEVEL feature_level, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX *world_and_dpi_transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator1 **enumerator) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFactory8, 0xee0a7fb5, 0xdef4, 0x4c23, 0xa4,0x54, 0xc9,0xc7,0xdc,0x87,0x83,0x98) +#endif +#else +typedef struct IDWriteFactory8Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFactory8 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFactory8 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFactory8 *This); + + /*** IDWriteFactory methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( + IDWriteFactory8 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( + IDWriteFactory8 *This, + IDWriteFontCollectionLoader *loader, + const void *key, + UINT32 key_size, + IDWriteFontCollection **collection); + + HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( + IDWriteFactory8 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( + IDWriteFactory8 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( + IDWriteFactory8 *This, + const WCHAR *path, + const FILETIME *writetime, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( + IDWriteFactory8 *This, + const void *reference_key, + UINT32 key_size, + IDWriteFontFileLoader *loader, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFactory8 *This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile *const *font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace **font_face); + + HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( + IDWriteFactory8 *This, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( + IDWriteFactory8 *This, + HMONITOR monitor, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( + IDWriteFactory8 *This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( + IDWriteFactory8 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( + IDWriteFactory8 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( + IDWriteFactory8 *This, + const WCHAR *family_name, + IDWriteFontCollection *collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR *locale, + IDWriteTextFormat **format); + + HRESULT (STDMETHODCALLTYPE *CreateTypography)( + IDWriteFactory8 *This, + IDWriteTypography **typography); + + HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( + IDWriteFactory8 *This, + IDWriteGdiInterop **gdi_interop); + + HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( + IDWriteFactory8 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( + IDWriteFactory8 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( + IDWriteFactory8 *This, + IDWriteTextFormat *format, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( + IDWriteFactory8 *This, + IDWriteTextAnalyzer **analyzer); + + HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( + IDWriteFactory8 *This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR *locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution **substitution); + + HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( + IDWriteFactory8 *This, + const DWRITE_GLYPH_RUN *glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( + IDWriteFactory8 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( + IDWriteFactory8 *This, + FLOAT gamma, + FLOAT enhcontrast, + FLOAT enhcontrast_grayscale, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams1 **params); + + /*** IDWriteFactory2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)( + IDWriteFactory8 *This, + IDWriteFontFallback **fallback); + + HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)( + IDWriteFactory8 *This, + IDWriteFontFallbackBuilder **fallbackbuilder); + + HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)( + IDWriteFactory8 *This, + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX *transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator **colorlayers); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)( + IDWriteFactory8 *This, + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2 **params); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)( + IDWriteFactory8 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory3 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)( + IDWriteFactory8 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, + FLOAT origin_x, + FLOAT origin_y, + IDWriteGlyphRunAnalysis **analysis); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)( + IDWriteFactory8 *This, + FLOAT gamma, + FLOAT enhanced_contrast, + FLOAT grayscale_enhanced_contrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY pixel_geometry, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + IDWriteRenderingParams3 **params); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)( + IDWriteFactory8 *This, + IDWriteFontFile *file, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)( + IDWriteFactory8 *This, + const WCHAR *path, + const FILETIME *writetime, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)( + IDWriteFactory8 *This, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)( + IDWriteFactory8 *This, + IDWriteFontSetBuilder **builder); + + HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)( + IDWriteFactory8 *This, + IDWriteFontSet *fontset, + IDWriteFontCollection1 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)( + IDWriteFactory8 *This, + WINBOOL include_downloadable, + IDWriteFontCollection1 **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)( + IDWriteFactory8 *This, + IDWriteFontDownloadQueue **queue); + + /*** IDWriteFactory4 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)( + IDWriteFactory8 *This, + D2D1_POINT_2F baseline_origin, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc, + DWRITE_GLYPH_IMAGE_FORMATS desired_formats, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX *transform, + UINT32 palette, + IDWriteColorGlyphRunEnumerator1 **layers); + + HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)( + IDWriteFactory8 *This, + const DWRITE_GLYPH_RUN *run, + D2D1_POINT_2F baseline_origin, + D2D1_POINT_2F *origins); + + HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)( + IDWriteFactory8 *This, + const DWRITE_GLYPH_RUN *run, + DWRITE_MEASURING_MODE measuring_mode, + D2D1_POINT_2F baseline_origin, + const DWRITE_MATRIX *transform, + D2D1_POINT_2F *origins); + + /*** IDWriteFactory5 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)( + IDWriteFactory8 *This, + IDWriteFontSetBuilder1 **fontset_builder); + + HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)( + IDWriteFactory8 *This, + IDWriteInMemoryFontFileLoader **loader); + + HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)( + IDWriteFactory8 *This, + const WCHAR *referrer_url, + const WCHAR *extra_headers, + IDWriteRemoteFontFileLoader **loader); + + DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)( + IDWriteFactory8 *This, + const void *data, + UINT32 data_size); + + HRESULT (STDMETHODCALLTYPE *UnpackFontFile)( + IDWriteFactory8 *This, + DWRITE_CONTAINER_TYPE container_type, + const void *data, + UINT32 data_size, + IDWriteFontFileStream **stream); + + /*** IDWriteFactory6 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontFaceReference)( + IDWriteFactory8 *This, + IDWriteFontFile *file, + UINT32 face_index, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_axis, + IDWriteFontFaceReference1 **face_ref); + + HRESULT (STDMETHODCALLTYPE *CreateFontResource)( + IDWriteFactory8 *This, + IDWriteFontFile *file, + UINT32 face_index, + IDWriteFontResource **resource); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontSet)( + IDWriteFactory8 *This, + WINBOOL include_downloadable, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontCollection)( + IDWriteFactory8 *This, + WINBOOL include_downloadable, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontCollectionFromFontSet)( + IDWriteFactory8 *This, + IDWriteFontSet *fontset, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontSetBuilder)( + IDWriteFactory8 *This, + IDWriteFontSetBuilder2 **builder); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateTextFormat)( + IDWriteFactory8 *This, + const WCHAR *familyname, + IDWriteFontCollection *collection, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_axis, + FLOAT fontsize, + const WCHAR *localename, + IDWriteTextFormat3 **format); + + /*** IDWriteFactory7 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontSet)( + IDWriteFactory8 *This, + WINBOOL include_downloadable, + IDWriteFontSet2 **fontset); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontCollection)( + IDWriteFactory8 *This, + WINBOOL include_downloadable, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection3 **collection); + + /*** IDWriteFactory8 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory8_TranslateColorGlyphRun)( + IDWriteFactory8 *This, + D2D1_POINT_2F origin, + const DWRITE_GLYPH_RUN *glyph_run, + const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc, + DWRITE_GLYPH_IMAGE_FORMATS image_formats, + DWRITE_PAINT_FEATURE_LEVEL feature_level, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX *world_and_dpi_transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator1 **enumerator); + + END_INTERFACE +} IDWriteFactory8Vtbl; + +interface IDWriteFactory8 { + CONST_VTBL IDWriteFactory8Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFactory8_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory8_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFactory8_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFactory methods ***/ +#define IDWriteFactory8_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) +#define IDWriteFactory8_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) +#define IDWriteFactory8_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) +#define IDWriteFactory8_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) +#define IDWriteFactory8_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) +#define IDWriteFactory8_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) +#define IDWriteFactory8_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) +#define IDWriteFactory8_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) +#define IDWriteFactory8_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) +#define IDWriteFactory8_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) +#define IDWriteFactory8_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) +#define IDWriteFactory8_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) +#define IDWriteFactory8_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) +#define IDWriteFactory8_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) +#define IDWriteFactory8_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) +#define IDWriteFactory8_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) +#define IDWriteFactory8_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +/*** IDWriteFactory1 methods ***/ +#define IDWriteFactory8_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) +/*** IDWriteFactory2 methods ***/ +#define IDWriteFactory8_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback) +#define IDWriteFactory8_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder) +/*** IDWriteFactory3 methods ***/ +#define IDWriteFactory8_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) +#define IDWriteFactory8_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) +#define IDWriteFactory8_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference) +#define IDWriteFactory8_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue) +/*** IDWriteFactory4 methods ***/ +#define IDWriteFactory8_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins) +#define IDWriteFactory8_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) +/*** IDWriteFactory5 methods ***/ +#define IDWriteFactory8_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader) +#define IDWriteFactory8_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) +#define IDWriteFactory8_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size) +#define IDWriteFactory8_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream) +/*** IDWriteFactory6 methods ***/ +#define IDWriteFactory8_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) +#define IDWriteFactory8_CreateFontResource(This,file,face_index,resource) (This)->lpVtbl->CreateFontResource(This,file,face_index,resource) +#define IDWriteFactory8_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) +#define IDWriteFactory8_CreateFontSetBuilder(This,builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder) +#define IDWriteFactory8_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) +/*** IDWriteFactory7 methods ***/ +#define IDWriteFactory8_GetSystemFontSet(This,include_downloadable,fontset) (This)->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset) +#define IDWriteFactory8_GetSystemFontCollection(This,include_downloadable,family_model,collection) (This)->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection) +/*** IDWriteFactory8 methods ***/ +#define IDWriteFactory8_TranslateColorGlyphRun(This,origin,glyph_run,glyph_run_desc,image_formats,feature_level,measuring_mode,world_and_dpi_transform,palette_index,enumerator) (This)->lpVtbl->IDWriteFactory8_TranslateColorGlyphRun(This,origin,glyph_run,glyph_run_desc,image_formats,feature_level,measuring_mode,world_and_dpi_transform,palette_index,enumerator) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFactory8_QueryInterface(IDWriteFactory8* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFactory8_AddRef(IDWriteFactory8* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFactory8_Release(IDWriteFactory8* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFactory methods ***/ +static inline HRESULT IDWriteFactory8_CreateCustomFontCollection(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { + return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +} +static inline HRESULT IDWriteFactory8_RegisterFontCollectionLoader(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory8_UnregisterFontCollectionLoader(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory8_CreateFontFileReference(IDWriteFactory8* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +} +static inline HRESULT IDWriteFactory8_CreateCustomFontFileReference(IDWriteFactory8* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +} +static inline HRESULT IDWriteFactory8_CreateFontFace(IDWriteFactory8* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { + return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +} +static inline HRESULT IDWriteFactory8_CreateRenderingParams(IDWriteFactory8* This,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateRenderingParams(This,params); +} +static inline HRESULT IDWriteFactory8_CreateMonitorRenderingParams(IDWriteFactory8* This,HMONITOR monitor,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +} +static inline HRESULT IDWriteFactory8_RegisterFontFileLoader(IDWriteFactory8* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->RegisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory8_UnregisterFontFileLoader(IDWriteFactory8* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->UnregisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory8_CreateTypography(IDWriteFactory8* This,IDWriteTypography **typography) { + return This->lpVtbl->CreateTypography(This,typography); +} +static inline HRESULT IDWriteFactory8_GetGdiInterop(IDWriteFactory8* This,IDWriteGdiInterop **gdi_interop) { + return This->lpVtbl->GetGdiInterop(This,gdi_interop); +} +static inline HRESULT IDWriteFactory8_CreateTextLayout(IDWriteFactory8* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +} +static inline HRESULT IDWriteFactory8_CreateGdiCompatibleTextLayout(IDWriteFactory8* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +} +static inline HRESULT IDWriteFactory8_CreateEllipsisTrimmingSign(IDWriteFactory8* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +} +static inline HRESULT IDWriteFactory8_CreateTextAnalyzer(IDWriteFactory8* This,IDWriteTextAnalyzer **analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +} +static inline HRESULT IDWriteFactory8_CreateNumberSubstitution(IDWriteFactory8* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { + return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +} +/*** IDWriteFactory1 methods ***/ +static inline HRESULT IDWriteFactory8_GetEudcFontCollection(IDWriteFactory8* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { + return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); +} +/*** IDWriteFactory2 methods ***/ +static inline HRESULT IDWriteFactory8_GetSystemFontFallback(IDWriteFactory8* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetSystemFontFallback(This,fallback); +} +static inline HRESULT IDWriteFactory8_CreateFontFallbackBuilder(IDWriteFactory8* This,IDWriteFontFallbackBuilder **fallbackbuilder) { + return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); +} +/*** IDWriteFactory3 methods ***/ +static inline HRESULT IDWriteFactory8_CreateGlyphRunAnalysis(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) { + return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis); +} +static inline HRESULT IDWriteFactory8_CreateCustomRenderingParams(IDWriteFactory8* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) { + return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params); +} +static inline HRESULT IDWriteFactory8_CreateFontFaceReference_(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { + return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference); +} +static inline HRESULT IDWriteFactory8_GetFontDownloadQueue(IDWriteFactory8* This,IDWriteFontDownloadQueue **queue) { + return This->lpVtbl->GetFontDownloadQueue(This,queue); +} +/*** IDWriteFactory4 methods ***/ +static inline HRESULT IDWriteFactory8_ComputeGlyphOrigins_(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) { + return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins); +} +static inline HRESULT IDWriteFactory8_ComputeGlyphOrigins(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) { + return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins); +} +/*** IDWriteFactory5 methods ***/ +static inline HRESULT IDWriteFactory8_CreateInMemoryFontFileLoader(IDWriteFactory8* This,IDWriteInMemoryFontFileLoader **loader) { + return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory8_CreateHttpFontFileLoader(IDWriteFactory8* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) { + return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader); +} +static inline DWRITE_CONTAINER_TYPE IDWriteFactory8_AnalyzeContainerType(IDWriteFactory8* This,const void *data,UINT32 data_size) { + return This->lpVtbl->AnalyzeContainerType(This,data,data_size); +} +static inline HRESULT IDWriteFactory8_UnpackFontFile(IDWriteFactory8* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) { + return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream); +} +/*** IDWriteFactory6 methods ***/ +static inline HRESULT IDWriteFactory8_CreateFontFaceReference(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,IDWriteFontFaceReference1 **face_ref) { + return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref); +} +static inline HRESULT IDWriteFactory8_CreateFontResource(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) { + return This->lpVtbl->CreateFontResource(This,file,face_index,resource); +} +static inline HRESULT IDWriteFactory8_CreateFontCollectionFromFontSet(IDWriteFactory8* This,IDWriteFontSet *fontset,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) { + return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection); +} +static inline HRESULT IDWriteFactory8_CreateFontSetBuilder(IDWriteFactory8* This,IDWriteFontSetBuilder2 **builder) { + return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder); +} +static inline HRESULT IDWriteFactory8_CreateTextFormat(IDWriteFactory8* This,const WCHAR *familyname,IDWriteFontCollection *collection,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,FLOAT fontsize,const WCHAR *localename,IDWriteTextFormat3 **format) { + return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format); +} +/*** IDWriteFactory7 methods ***/ +static inline HRESULT IDWriteFactory8_GetSystemFontSet(IDWriteFactory8* This,WINBOOL include_downloadable,IDWriteFontSet2 **fontset) { + return This->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset); +} +static inline HRESULT IDWriteFactory8_GetSystemFontCollection(IDWriteFactory8* This,WINBOOL include_downloadable,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection3 **collection) { + return This->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection); +} +/*** IDWriteFactory8 methods ***/ +static inline HRESULT IDWriteFactory8_TranslateColorGlyphRun(IDWriteFactory8* This,D2D1_POINT_2F origin,const DWRITE_GLYPH_RUN *glyph_run,const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc,DWRITE_GLYPH_IMAGE_FORMATS image_formats,DWRITE_PAINT_FEATURE_LEVEL feature_level,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *world_and_dpi_transform,UINT32 palette_index,IDWriteColorGlyphRunEnumerator1 **enumerator) { + return This->lpVtbl->IDWriteFactory8_TranslateColorGlyphRun(This,origin,glyph_run,glyph_run_desc,image_formats,feature_level,measuring_mode,world_and_dpi_transform,palette_index,enumerator); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFactory8_INTERFACE_DEFINED__ */ + +typedef struct DWRITE_BITMAP_DATA_BGRA32 { + UINT32 width; + UINT32 height; + UINT32 *pixels; +} DWRITE_BITMAP_DATA_BGRA32; +/***************************************************************************** + * IDWriteBitmapRenderTarget2 interface + */ +#ifndef __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__ +#define __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteBitmapRenderTarget2, 0xc553a742, 0xfc01, 0x44da, 0xa6,0x6e, 0xb8,0xb9,0xed,0x6c,0x39,0x95); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("c553a742-fc01-44da-a66e-b8b9ed6c3995") +IDWriteBitmapRenderTarget2 : public IDWriteBitmapRenderTarget1 +{ + virtual HRESULT STDMETHODCALLTYPE GetBitmapData( + DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteBitmapRenderTarget2, 0xc553a742, 0xfc01, 0x44da, 0xa6,0x6e, 0xb8,0xb9,0xed,0x6c,0x39,0x95) +#endif +#else +typedef struct IDWriteBitmapRenderTarget2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteBitmapRenderTarget2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteBitmapRenderTarget2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteBitmapRenderTarget2 *This); + + /*** IDWriteBitmapRenderTarget methods ***/ + HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)( + IDWriteBitmapRenderTarget2 *This, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN *glyph_run, + IDWriteRenderingParams *params, + COLORREF textColor, + RECT *blackbox_rect); + + HDC (STDMETHODCALLTYPE *GetMemoryDC)( + IDWriteBitmapRenderTarget2 *This); + + FLOAT (STDMETHODCALLTYPE *GetPixelsPerDip)( + IDWriteBitmapRenderTarget2 *This); + + HRESULT (STDMETHODCALLTYPE *SetPixelsPerDip)( + IDWriteBitmapRenderTarget2 *This, + FLOAT pixels_per_dip); + + HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)( + IDWriteBitmapRenderTarget2 *This, + DWRITE_MATRIX *transform); + + HRESULT (STDMETHODCALLTYPE *SetCurrentTransform)( + IDWriteBitmapRenderTarget2 *This, + const DWRITE_MATRIX *transform); + + HRESULT (STDMETHODCALLTYPE *GetSize)( + IDWriteBitmapRenderTarget2 *This, + SIZE *size); + + HRESULT (STDMETHODCALLTYPE *Resize)( + IDWriteBitmapRenderTarget2 *This, + UINT32 width, + UINT32 height); + + /*** IDWriteBitmapRenderTarget1 methods ***/ + DWRITE_TEXT_ANTIALIAS_MODE (STDMETHODCALLTYPE *GetTextAntialiasMode)( + IDWriteBitmapRenderTarget2 *This); + + HRESULT (STDMETHODCALLTYPE *SetTextAntialiasMode)( + IDWriteBitmapRenderTarget2 *This, + DWRITE_TEXT_ANTIALIAS_MODE mode); + + /*** IDWriteBitmapRenderTarget2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetBitmapData)( + IDWriteBitmapRenderTarget2 *This, + DWRITE_BITMAP_DATA_BGRA32 *bitmap_data); + + END_INTERFACE +} IDWriteBitmapRenderTarget2Vtbl; + +interface IDWriteBitmapRenderTarget2 { + CONST_VTBL IDWriteBitmapRenderTarget2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteBitmapRenderTarget2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteBitmapRenderTarget2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteBitmapRenderTarget2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteBitmapRenderTarget methods ***/ +#define IDWriteBitmapRenderTarget2_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) +#define IDWriteBitmapRenderTarget2_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This) +#define IDWriteBitmapRenderTarget2_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This) +#define IDWriteBitmapRenderTarget2_SetPixelsPerDip(This,pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This,pixels_per_dip) +#define IDWriteBitmapRenderTarget2_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform) +#define IDWriteBitmapRenderTarget2_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform) +#define IDWriteBitmapRenderTarget2_GetSize(This,size) (This)->lpVtbl->GetSize(This,size) +#define IDWriteBitmapRenderTarget2_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height) +/*** IDWriteBitmapRenderTarget1 methods ***/ +#define IDWriteBitmapRenderTarget2_GetTextAntialiasMode(This) (This)->lpVtbl->GetTextAntialiasMode(This) +#define IDWriteBitmapRenderTarget2_SetTextAntialiasMode(This,mode) (This)->lpVtbl->SetTextAntialiasMode(This,mode) +/*** IDWriteBitmapRenderTarget2 methods ***/ +#define IDWriteBitmapRenderTarget2_GetBitmapData(This,bitmap_data) (This)->lpVtbl->GetBitmapData(This,bitmap_data) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteBitmapRenderTarget2_QueryInterface(IDWriteBitmapRenderTarget2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteBitmapRenderTarget2_AddRef(IDWriteBitmapRenderTarget2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteBitmapRenderTarget2_Release(IDWriteBitmapRenderTarget2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteBitmapRenderTarget methods ***/ +static inline HRESULT IDWriteBitmapRenderTarget2_DrawGlyphRun(IDWriteBitmapRenderTarget2* This,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *glyph_run,IDWriteRenderingParams *params,COLORREF textColor,RECT *blackbox_rect) { + return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect); +} +static inline HDC IDWriteBitmapRenderTarget2_GetMemoryDC(IDWriteBitmapRenderTarget2* This) { + return This->lpVtbl->GetMemoryDC(This); +} +static inline FLOAT IDWriteBitmapRenderTarget2_GetPixelsPerDip(IDWriteBitmapRenderTarget2* This) { + return This->lpVtbl->GetPixelsPerDip(This); +} +static inline HRESULT IDWriteBitmapRenderTarget2_SetPixelsPerDip(IDWriteBitmapRenderTarget2* This,FLOAT pixels_per_dip) { + return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip); +} +static inline HRESULT IDWriteBitmapRenderTarget2_GetCurrentTransform(IDWriteBitmapRenderTarget2* This,DWRITE_MATRIX *transform) { + return This->lpVtbl->GetCurrentTransform(This,transform); +} +static inline HRESULT IDWriteBitmapRenderTarget2_SetCurrentTransform(IDWriteBitmapRenderTarget2* This,const DWRITE_MATRIX *transform) { + return This->lpVtbl->SetCurrentTransform(This,transform); +} +static inline HRESULT IDWriteBitmapRenderTarget2_GetSize(IDWriteBitmapRenderTarget2* This,SIZE *size) { + return This->lpVtbl->GetSize(This,size); +} +static inline HRESULT IDWriteBitmapRenderTarget2_Resize(IDWriteBitmapRenderTarget2* This,UINT32 width,UINT32 height) { + return This->lpVtbl->Resize(This,width,height); +} +/*** IDWriteBitmapRenderTarget1 methods ***/ +static inline DWRITE_TEXT_ANTIALIAS_MODE IDWriteBitmapRenderTarget2_GetTextAntialiasMode(IDWriteBitmapRenderTarget2* This) { + return This->lpVtbl->GetTextAntialiasMode(This); +} +static inline HRESULT IDWriteBitmapRenderTarget2_SetTextAntialiasMode(IDWriteBitmapRenderTarget2* This,DWRITE_TEXT_ANTIALIAS_MODE mode) { + return This->lpVtbl->SetTextAntialiasMode(This,mode); +} +/*** IDWriteBitmapRenderTarget2 methods ***/ +static inline HRESULT IDWriteBitmapRenderTarget2_GetBitmapData(IDWriteBitmapRenderTarget2* This,DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) { + return This->lpVtbl->GetBitmapData(This,bitmap_data); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteBitmapRenderTarget3 interface + */ +#ifndef __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__ +#define __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteBitmapRenderTarget3, 0xaeec37db, 0xc337, 0x40f1, 0x8e,0x2a, 0x9a,0x41,0xb1,0x67,0xb2,0x38); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("aeec37db-c337-40f1-8e2a-9a41b167b238") +IDWriteBitmapRenderTarget3 : public IDWriteBitmapRenderTarget2 +{ + virtual DWRITE_PAINT_FEATURE_LEVEL STDMETHODCALLTYPE GetPaintFeatureLevel( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawPaintGlyphRun( + FLOAT origin_x, + FLOAT origin_y, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN *run, + DWRITE_GLYPH_IMAGE_FORMATS image_format, + COLORREF text_color, + UINT32 palette_index, + RECT *black_box) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawGlyphRunWithColorSupport( + FLOAT origin_x, + FLOAT origin_y, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN *run, + IDWriteRenderingParams *params, + COLORREF text_color, + UINT32 palette_index, + RECT *black_box) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteBitmapRenderTarget3, 0xaeec37db, 0xc337, 0x40f1, 0x8e,0x2a, 0x9a,0x41,0xb1,0x67,0xb2,0x38) +#endif +#else +typedef struct IDWriteBitmapRenderTarget3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteBitmapRenderTarget3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteBitmapRenderTarget3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteBitmapRenderTarget3 *This); + + /*** IDWriteBitmapRenderTarget methods ***/ + HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)( + IDWriteBitmapRenderTarget3 *This, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN *glyph_run, + IDWriteRenderingParams *params, + COLORREF textColor, + RECT *blackbox_rect); + + HDC (STDMETHODCALLTYPE *GetMemoryDC)( + IDWriteBitmapRenderTarget3 *This); + + FLOAT (STDMETHODCALLTYPE *GetPixelsPerDip)( + IDWriteBitmapRenderTarget3 *This); + + HRESULT (STDMETHODCALLTYPE *SetPixelsPerDip)( + IDWriteBitmapRenderTarget3 *This, + FLOAT pixels_per_dip); + + HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)( + IDWriteBitmapRenderTarget3 *This, + DWRITE_MATRIX *transform); + + HRESULT (STDMETHODCALLTYPE *SetCurrentTransform)( + IDWriteBitmapRenderTarget3 *This, + const DWRITE_MATRIX *transform); + + HRESULT (STDMETHODCALLTYPE *GetSize)( + IDWriteBitmapRenderTarget3 *This, + SIZE *size); + + HRESULT (STDMETHODCALLTYPE *Resize)( + IDWriteBitmapRenderTarget3 *This, + UINT32 width, + UINT32 height); + + /*** IDWriteBitmapRenderTarget1 methods ***/ + DWRITE_TEXT_ANTIALIAS_MODE (STDMETHODCALLTYPE *GetTextAntialiasMode)( + IDWriteBitmapRenderTarget3 *This); + + HRESULT (STDMETHODCALLTYPE *SetTextAntialiasMode)( + IDWriteBitmapRenderTarget3 *This, + DWRITE_TEXT_ANTIALIAS_MODE mode); + + /*** IDWriteBitmapRenderTarget2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetBitmapData)( + IDWriteBitmapRenderTarget3 *This, + DWRITE_BITMAP_DATA_BGRA32 *bitmap_data); + + /*** IDWriteBitmapRenderTarget3 methods ***/ + DWRITE_PAINT_FEATURE_LEVEL (STDMETHODCALLTYPE *GetPaintFeatureLevel)( + IDWriteBitmapRenderTarget3 *This); + + HRESULT (STDMETHODCALLTYPE *DrawPaintGlyphRun)( + IDWriteBitmapRenderTarget3 *This, + FLOAT origin_x, + FLOAT origin_y, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN *run, + DWRITE_GLYPH_IMAGE_FORMATS image_format, + COLORREF text_color, + UINT32 palette_index, + RECT *black_box); + + HRESULT (STDMETHODCALLTYPE *DrawGlyphRunWithColorSupport)( + IDWriteBitmapRenderTarget3 *This, + FLOAT origin_x, + FLOAT origin_y, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN *run, + IDWriteRenderingParams *params, + COLORREF text_color, + UINT32 palette_index, + RECT *black_box); + + END_INTERFACE +} IDWriteBitmapRenderTarget3Vtbl; + +interface IDWriteBitmapRenderTarget3 { + CONST_VTBL IDWriteBitmapRenderTarget3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteBitmapRenderTarget3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteBitmapRenderTarget3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteBitmapRenderTarget3_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteBitmapRenderTarget methods ***/ +#define IDWriteBitmapRenderTarget3_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) +#define IDWriteBitmapRenderTarget3_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This) +#define IDWriteBitmapRenderTarget3_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This) +#define IDWriteBitmapRenderTarget3_SetPixelsPerDip(This,pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This,pixels_per_dip) +#define IDWriteBitmapRenderTarget3_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform) +#define IDWriteBitmapRenderTarget3_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform) +#define IDWriteBitmapRenderTarget3_GetSize(This,size) (This)->lpVtbl->GetSize(This,size) +#define IDWriteBitmapRenderTarget3_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height) +/*** IDWriteBitmapRenderTarget1 methods ***/ +#define IDWriteBitmapRenderTarget3_GetTextAntialiasMode(This) (This)->lpVtbl->GetTextAntialiasMode(This) +#define IDWriteBitmapRenderTarget3_SetTextAntialiasMode(This,mode) (This)->lpVtbl->SetTextAntialiasMode(This,mode) +/*** IDWriteBitmapRenderTarget2 methods ***/ +#define IDWriteBitmapRenderTarget3_GetBitmapData(This,bitmap_data) (This)->lpVtbl->GetBitmapData(This,bitmap_data) +/*** IDWriteBitmapRenderTarget3 methods ***/ +#define IDWriteBitmapRenderTarget3_GetPaintFeatureLevel(This) (This)->lpVtbl->GetPaintFeatureLevel(This) +#define IDWriteBitmapRenderTarget3_DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box) (This)->lpVtbl->DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box) +#define IDWriteBitmapRenderTarget3_DrawGlyphRunWithColorSupport(This,origin_x,origin_y,measuring_mode,run,params,text_color,palette_index,black_box) (This)->lpVtbl->DrawGlyphRunWithColorSupport(This,origin_x,origin_y,measuring_mode,run,params,text_color,palette_index,black_box) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteBitmapRenderTarget3_QueryInterface(IDWriteBitmapRenderTarget3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteBitmapRenderTarget3_AddRef(IDWriteBitmapRenderTarget3* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteBitmapRenderTarget3_Release(IDWriteBitmapRenderTarget3* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteBitmapRenderTarget methods ***/ +static inline HRESULT IDWriteBitmapRenderTarget3_DrawGlyphRun(IDWriteBitmapRenderTarget3* This,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *glyph_run,IDWriteRenderingParams *params,COLORREF textColor,RECT *blackbox_rect) { + return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect); +} +static inline HDC IDWriteBitmapRenderTarget3_GetMemoryDC(IDWriteBitmapRenderTarget3* This) { + return This->lpVtbl->GetMemoryDC(This); +} +static inline FLOAT IDWriteBitmapRenderTarget3_GetPixelsPerDip(IDWriteBitmapRenderTarget3* This) { + return This->lpVtbl->GetPixelsPerDip(This); +} +static inline HRESULT IDWriteBitmapRenderTarget3_SetPixelsPerDip(IDWriteBitmapRenderTarget3* This,FLOAT pixels_per_dip) { + return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip); +} +static inline HRESULT IDWriteBitmapRenderTarget3_GetCurrentTransform(IDWriteBitmapRenderTarget3* This,DWRITE_MATRIX *transform) { + return This->lpVtbl->GetCurrentTransform(This,transform); +} +static inline HRESULT IDWriteBitmapRenderTarget3_SetCurrentTransform(IDWriteBitmapRenderTarget3* This,const DWRITE_MATRIX *transform) { + return This->lpVtbl->SetCurrentTransform(This,transform); +} +static inline HRESULT IDWriteBitmapRenderTarget3_GetSize(IDWriteBitmapRenderTarget3* This,SIZE *size) { + return This->lpVtbl->GetSize(This,size); +} +static inline HRESULT IDWriteBitmapRenderTarget3_Resize(IDWriteBitmapRenderTarget3* This,UINT32 width,UINT32 height) { + return This->lpVtbl->Resize(This,width,height); +} +/*** IDWriteBitmapRenderTarget1 methods ***/ +static inline DWRITE_TEXT_ANTIALIAS_MODE IDWriteBitmapRenderTarget3_GetTextAntialiasMode(IDWriteBitmapRenderTarget3* This) { + return This->lpVtbl->GetTextAntialiasMode(This); +} +static inline HRESULT IDWriteBitmapRenderTarget3_SetTextAntialiasMode(IDWriteBitmapRenderTarget3* This,DWRITE_TEXT_ANTIALIAS_MODE mode) { + return This->lpVtbl->SetTextAntialiasMode(This,mode); +} +/*** IDWriteBitmapRenderTarget2 methods ***/ +static inline HRESULT IDWriteBitmapRenderTarget3_GetBitmapData(IDWriteBitmapRenderTarget3* This,DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) { + return This->lpVtbl->GetBitmapData(This,bitmap_data); +} +/*** IDWriteBitmapRenderTarget3 methods ***/ +static inline DWRITE_PAINT_FEATURE_LEVEL IDWriteBitmapRenderTarget3_GetPaintFeatureLevel(IDWriteBitmapRenderTarget3* This) { + return This->lpVtbl->GetPaintFeatureLevel(This); +} +static inline HRESULT IDWriteBitmapRenderTarget3_DrawPaintGlyphRun(IDWriteBitmapRenderTarget3* This,FLOAT origin_x,FLOAT origin_y,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *run,DWRITE_GLYPH_IMAGE_FORMATS image_format,COLORREF text_color,UINT32 palette_index,RECT *black_box) { + return This->lpVtbl->DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box); +} +static inline HRESULT IDWriteBitmapRenderTarget3_DrawGlyphRunWithColorSupport(IDWriteBitmapRenderTarget3* This,FLOAT origin_x,FLOAT origin_y,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *run,IDWriteRenderingParams *params,COLORREF text_color,UINT32 palette_index,RECT *black_box) { + return This->lpVtbl->DrawGlyphRunWithColorSupport(This,origin_x,origin_y,measuring_mode,run,params,text_color,palette_index,black_box); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__ */ + +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __dwrite_3_h__ */ diff --git a/src/text/font/boldmonottf.c b/src/text/font/boldmonottf.c index 7945831d1..6d54436ac 100644 --- a/src/text/font/boldmonottf.c +++ b/src/text/font/boldmonottf.c @@ -1,6 +1,6 @@ #include -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) unsigned char MwBoldMonospaceTTFData[] = { 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x04, 0x00, 0x10, 0x46, 0x46, 0x54, 0x4d, 0xac, 0x0d, 0xe4, 0x44, 0x00, 0x00, 0x8d, 0x3c, diff --git a/src/text/font/boldttf.c b/src/text/font/boldttf.c index 14b259906..5b0257833 100644 --- a/src/text/font/boldttf.c +++ b/src/text/font/boldttf.c @@ -1,6 +1,6 @@ #include -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) unsigned char MwBoldTTFData[] = { 0x00, 0x01, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x04, 0x00, 0x20, 0x46, 0x46, 0x54, 0x4d, 0x94, 0x9f, 0x60, 0x18, 0x00, 0x00, 0x8e, 0xa8, diff --git a/src/text/font/monottf.c b/src/text/font/monottf.c index 8332c4a71..549e158e4 100644 --- a/src/text/font/monottf.c +++ b/src/text/font/monottf.c @@ -1,6 +1,6 @@ #include -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) unsigned char MwMonospaceTTFData[] = { 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x04, 0x00, 0x10, 0x46, 0x46, 0x54, 0x4d, 0xac, 0x0d, 0xe4, 0x23, 0x00, 0x00, 0x8d, 0x3c, diff --git a/src/text/font/ttf.c b/src/text/font/ttf.c index c5d03b95a..6dd141809 100644 --- a/src/text/font/ttf.c +++ b/src/text/font/ttf.c @@ -1,6 +1,6 @@ #include -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) unsigned char MwTTFData[] = { 0x00, 0x01, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x04, 0x00, 0x20, 0x46, 0x46, 0x54, 0x4d, 0x94, 0x92, 0x79, 0xd4, 0x00, 0x00, 0x89, 0xa4, diff --git a/src/text/text.c b/src/text/text.c index 786089b62..e43de8c88 100644 --- a/src/text/text.c +++ b/src/text/text.c @@ -3,10 +3,11 @@ int (*MwFLDrawText)(MwWidget handle, MwFLFont font, MwPoint* point, const char* text, MwLLColor color) = NULL; int (*MwFLTextWidth)(MwFLFont font, const char* text) = NULL; int (*MwFLTextHeight)(MwFLFont font, int count) = NULL; +int (*MwFLTextHeightWithText)(MwFLFont ttf, const char * text) = NULL; void* (*MwFLFontLoad)(unsigned char* data, unsigned int size, int px) = NULL; void (*MwFLFontFree)(void* handle) = NULL; -#if defined(USE_FREETYPE2) || defined(USE_STB_TRUETYPE) +#if defined(USE_FREETYPE2) || defined(USE_STB_TRUETYPE) || defined(USE_DIRECTWRITE) #define TTF #endif @@ -220,6 +221,8 @@ int MwTextHeight(MwWidget handle, MwFLFont ttf, const char* text) { #ifdef TTF if(MwFLTextHeight) if(!MwGetInteger(handle, MwNbitmapFont) && ttf != NULL && (st = MwFLTextHeight(ttf, c)) != -1) return st; + if(MwFLTextHeightWithText) + if(!MwGetInteger(handle, MwNbitmapFont) && ttf != NULL && (st = MwFLTextHeightWithText(ttf, text)) != -1) return st; #endif return FontHeight * c; } @@ -297,6 +300,9 @@ static void bitmap_MwDrawText(MwWidget handle, MwPoint* point, const char* text, typedef int (*call_t)(void); void MwFLSetup(void) { call_t calls[] = { +#ifdef USE_DIRECTWRITE + MWFL_DWSetup, +#endif #ifdef USE_FREETYPE2 MWFL_FT2Setup, #endif From 42802313cb3a5eb052f1119ad51f216be5731d9a Mon Sep 17 00:00:00 2001 From: IoIxD Date: Fri, 17 Jul 2026 20:45:50 -0700 Subject: [PATCH 771/836] win32: migrate if/else chain to switch case --- src/backend/gdi.c | 147 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 117 insertions(+), 30 deletions(-) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index bbab256d4..53a347656 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -67,7 +67,9 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { if(u == NULL) return DefWindowProc(hWnd, msg, wp, lp); - if(msg == WM_PAINT) { + switch(msg) { + case WM_PAINT: + { PAINTSTRUCT ps; RECT rc; HBITMAP hbmp; @@ -98,7 +100,12 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { MwLLDispatch(u->ll, draw, NULL); EndPaint(hWnd, &ps); } - } else if(msg == WM_LBUTTONDOWN || msg == WM_MBUTTONDOWN || msg == WM_RBUTTONDOWN) { + break; + } + case WM_LBUTTONDOWN: + case WM_MBUTTONDOWN: + case WM_RBUTTONDOWN: + { MwMouse p; p.point.x = LOWORD(lp); p.point.y = HIWORD(lp); @@ -113,7 +120,12 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { SetCapture(hWnd); SetFocus(hWnd); MwLLDispatch(u->ll, down, &p); - } else if(msg == WM_LBUTTONUP || msg == WM_MBUTTONUP || msg == WM_RBUTTONUP) { + break; + } + case WM_LBUTTONUP: + case WM_MBUTTONUP: + case WM_RBUTTONUP: + { MwMouse p; p.point.x = LOWORD(lp); p.point.y = HIWORD(lp); @@ -127,7 +139,10 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { SetCapture(NULL); MwLLDispatch(u->ll, up, &p); - } else if(msg == WM_MOUSEWHEEL) { + break; + } + case WM_MOUSEWHEEL: + { int d = GET_WHEEL_DELTA_WPARAM(wp); MwMouse p; p.point.x = LOWORD(lp); @@ -141,7 +156,10 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { MwLLDispatch(u->ll, down, &p); MwLLDispatch(u->ll, up, &p); - } else if(msg == WM_MOUSEMOVE) { + break; + } + case WM_MOUSEMOVE: + { MwPoint p; p.x = LOWORD(lp); p.y = HIWORD(lp); @@ -169,19 +187,35 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { SetCursorPos(p.x, p.y); } - } else if(msg == WM_SIZE) { + break; + } + case WM_SIZE: + { MwLLDispatch(u->ll, resize, NULL); - } else if(msg == WM_ERASEBKGND) { + break; + } + case WM_ERASEBKGND: + { return 1; - } else if(msg == WM_NCHITTEST) { + } + case WM_NCHITTEST: + { LPARAM style = GetWindowLongPtr(hWnd, GWL_STYLE); if(style & WS_CHILD) return HTCLIENT; return DefWindowProc(hWnd, msg, wp, lp); - } else if(msg == WM_DESTROY) { + } + case WM_DESTROY: + { PostQuitMessage(0); - } else if(msg == WM_CLOSE) { + break; + } + case WM_CLOSE: + { MwLLDispatch(u->ll, close, NULL); - } else if(msg == WM_CHAR || msg == WM_SYSCHAR) { + } + case WM_CHAR: + case WM_SYSCHAR: + { int n = wp; const int base = 'A' - 1; @@ -193,24 +227,61 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { if(msg == WM_SYSCHAR) n |= MwKEY_ALT_FLAG; if((0x20 <= n && n <= 0x7f) || (n & MwKEY_FLAG)) MwLLDispatch(u->ll, key, &n); - } else if(msg == WM_SETFOCUS) { + break; + } + case WM_SETFOCUS: + { MwLLDispatch(u->ll, focus_in, NULL); - } else if(msg == WM_KILLFOCUS) { + break; + } + case WM_KILLFOCUS: + { MwLLDispatch(u->ll, focus_out, NULL); - } else if(msg == WM_KEYDOWN || msg == WM_KEYUP || msg == WM_SYSKEYDOWN || msg == WM_SYSKEYUP) { + break; + } + case WM_KEYDOWN: + case WM_KEYUP: + case WM_SYSKEYDOWN: + case WM_SYSKEYUP: + { int n = -1; + if(wp == VK_MENU && msg == WM_KEYUP) return 0; - if(wp == VK_LEFT) n = MwKEY_LEFT; - if(wp == VK_RIGHT) n = MwKEY_RIGHT; - if(wp == VK_UP) n = MwKEY_UP; - if(wp == VK_DOWN) n = MwKEY_DOWN; - if(wp == VK_RETURN) n = MwKEY_ENTER; - if(wp == VK_BACK) n = MwKEY_BACKSPACE; - if(wp == VK_ESCAPE) n = MwKEY_ESCAPE; - if(wp == VK_LSHIFT) n = MwKEY_LEFTSHIFT; - if(wp == VK_RSHIFT) n = MwKEY_RIGHTSHIFT; - if(wp == VK_MENU) n = MwKEY_ALT; - if(wp == VK_CONTROL) n = MwKEY_CONTROL; + switch(wp) { + case VK_LEFT: + n = MwKEY_LEFT; + break; + case VK_RIGHT: + n = MwKEY_RIGHT; + break; + case VK_UP: + n = MwKEY_UP; + break; + case VK_DOWN: + n = MwKEY_DOWN; + break; + case VK_RETURN: + n = MwKEY_ENTER; + break; + case VK_BACK: + n = MwKEY_BACKSPACE; + break; + case VK_ESCAPE: + n = MwKEY_ESCAPE; + break; + case VK_LSHIFT: + n = MwKEY_LEFTSHIFT; + break; + case VK_RSHIFT: + n = MwKEY_RIGHTSHIFT; + break; + case VK_MENU: + n = MwKEY_ALT; + break; + case VK_CONTROL: + n = MwKEY_CONTROL; + break; + } if((msg == WM_SYSKEYDOWN || msg == WM_SYSKEYUP) && n != -1 && wp != VK_MENU) { n |= MwKEY_ALT_FLAG; @@ -222,7 +293,10 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { MwLLDispatch(u->ll, key_released, &n); } } - } else if(msg == WM_GETMINMAXINFO) { + break; + } + case WM_GETMINMAXINFO: + { if(u->min_set || u->max_set) { LPARAM style = GetWindowLongPtr(hWnd, GWL_STYLE); MINMAXINFO* mmi = (MINMAXINFO*)lp; @@ -253,22 +327,35 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { } else { return DefWindowProc(hWnd, msg, wp, lp); } - } else if(msg == WM_SETCURSOR) { + break; + } + case WM_SETCURSOR: + { if(LOWORD(lp) != HTCLIENT) return DefWindowProc(hWnd, msg, wp, lp); if(u->ll->gdi.cursor != NULL) SetCursor(u->ll->gdi.cursor); - } else if(msg == WM_USER) { + break; + } + case WM_USER: + { InvalidateRect(hWnd, NULL, FALSE); UpdateWindow(hWnd); - } else if(msg == WM_WININICHANGE) { + break; + } + case WM_WININICHANGE: + { char* s = (char*)lp; LPARAM style = GetWindowLongPtr(hWnd, GWL_STYLE); if(!(style & WS_CHILD)) { if(s != NULL && strcmp(s, "ImmersiveColorSet") == 0) detect_darktheme(u->ll); } - } else { + break; + } + default: + { return DefWindowProc(hWnd, msg, wp, lp); } + } return 0; } From f260c3c11ed89db1e2fd214ad25971bfe6677cfb Mon Sep 17 00:00:00 2001 From: IoIxD Date: Fri, 17 Jul 2026 20:47:28 -0700 Subject: [PATCH 772/836] win32: missed a break under WM_CLOSE --- src/backend/gdi.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 53a347656..62a1a1b4f 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -212,6 +212,7 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { case WM_CLOSE: { MwLLDispatch(u->ll, close, NULL); + break; } case WM_CHAR: case WM_SYSCHAR: From b20a54fb76635a25859fee1002cb0e126dd49530 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Fri, 17 Jul 2026 21:55:16 -0700 Subject: [PATCH 773/836] new function MwWindowShouldClose --- include/Mw/Widget/Window.h | 13 +++++++++++++ src/widget/window.c | 8 ++++++++ 2 files changed, 21 insertions(+) diff --git a/include/Mw/Widget/Window.h b/include/Mw/Widget/Window.h index 24b7153f1..e5826c117 100644 --- a/include/Mw/Widget/Window.h +++ b/include/Mw/Widget/Window.h @@ -27,6 +27,19 @@ MwInline void MwWindowMakeBorderless(MwWidget handle, int toggle) { MwVaWidgetExecute(handle, "mwWindowMakeBorderless", NULL, toggle); } + +/*! + * @brief Whether the window should close + * @param handle Widget + * @return bool + */ +MwInline MwBool MwWindowShouldClose(MwWidget handle) { + MwBool res = MwFALSE; + MwVaWidgetExecute(handle, "mwWindowShouldClose", NULL, &res); + return res; +} + + #ifdef __cplusplus } #endif diff --git a/src/widget/window.c b/src/widget/window.c index 7178d3f1e..930b09224 100644 --- a/src/widget/window.c +++ b/src/widget/window.c @@ -35,6 +35,10 @@ static void mwWindowMakeBorderlessImpl(MwWidget handle, int toggle) { MwLLEndStateChange(handle->lowlevel); } +static void mwWindowShouldCloseImpl(MwWidget handle, MwBool* out) { + *out = handle->close; +} + static void func_handler(MwWidget handle, const char* name, void* out, va_list va) { (void)out; @@ -42,6 +46,10 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v int toggle = va_arg(va, int); mwWindowMakeBorderlessImpl(handle, toggle); } + if(strcmp(name, "mwWindowShouldClose") == 0) { + MwBool *out = va_arg(va, MwBool*); + mwWindowShouldCloseImpl(handle, out); + } } MwClassRec MwWindowClassRec = { wcreate, /* create */ From 2c9d0c78e43599b286861885952e502eeb76a268 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Fri, 17 Jul 2026 22:15:33 -0700 Subject: [PATCH 774/836] allow null for name --- src/core.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/core.c b/src/core.c index c77d450e2..b984bb781 100644 --- a/src/core.c +++ b/src/core.c @@ -225,14 +225,19 @@ static void lldarkthemehandler(MwLL handle, void* data) { static MwWidget MwCreateWidget_Internal(MwClass widget_class, const char* name, MwWidget parent, int x, int y, unsigned int width, unsigned int height, int do_prop, va_list prop) { MwWidget h = malloc(sizeof(*h)); - h->name = MwStringDuplicate(name); + if(name) + h->name = MwStringDuplicate(name); + else + h->name = NULL; h->parent = parent; h->children = NULL; if(widget_class != NULL) { if((h->lowlevel = MwLLCreate(parent == NULL ? NULL : parent->lowlevel, x, y, width, height)) == NULL) { - free(h->name); + if(h->name) { + free(h->name); + } free(h); return NULL; } @@ -411,7 +416,7 @@ void MwFreeWidget(MwWidget handle) { } } - free(handle->name); + if(handle->name) free(handle->name); if(handle->lowlevel != NULL) MwLLDestroy(handle->lowlevel); From 9a29682915110cb7c2121e983156b93ac4ccefba Mon Sep 17 00:00:00 2001 From: Nishi Date: Sun, 19 Jul 2026 17:53:30 +0900 Subject: [PATCH 775/836] fix cmake --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 148c5f31f..56d5b1ec9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.25) +cmake_minimum_required(VERSION 3.13) project( milsko ) @@ -88,7 +88,7 @@ if(MW_TRY_OPENGL) endif() if(MW_TRY_VULKAN) - find_package(Vulkan OPTIONAL VULKAN) + find_package(Vulkan) if(${Vulkan_FOUND}) set(MW_BUILD_VULKAN ON) message(STATUS "Vulkan widget has been enabled") From 8ebc8108ed143abfe88bb49933f6c207b95ef656 Mon Sep 17 00:00:00 2001 From: Nishi Date: Sun, 19 Jul 2026 20:37:04 +0900 Subject: [PATCH 776/836] implement gdi text renderer --- CMakeLists.txt | 9 + examples/vkdemos/vulkan.c | 4 +- include/Mw/LowLevel.h | 9 +- include/Mw/Milsko.h | 1 + include/Mw/TrueType.h | 33 + include/Mw/TypeDefs.h | 6 + include/Mw/Widget/Window.h | 8 +- src/abstract/charset.c | 2 +- src/backend/cairo.c | 12 +- src/core.c | 6 +- src/text/directwrite.c | 4 +- src/text/dwrite.h | 6535 ++++++------ src/text/dwrite_2.h | 4283 ++++---- src/text/dwrite_3.h | 19600 +++++++++++++++++------------------ src/text/ft2.c | 2 +- src/text/gdi.c | 148 + src/text/text.c | 11 +- src/ttf.c | 142 + src/widget/label.c | 6 +- src/widget/window.c | 4 +- 20 files changed, 15411 insertions(+), 15414 deletions(-) create mode 100644 include/Mw/TrueType.h create mode 100644 src/text/gdi.c create mode 100644 src/ttf.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 56d5b1ec9..e1fbb2ac2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,6 +52,7 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL Windows) option(MW_USE_DIRECTWRITE "Use DirectWrite" OFF) endif() endif() + option(MW_USE_GDI_TEXT "Use GDI for text rendering" ON) endif() if(${CMAKE_SYSTEM_NAME} STREQUAL Linux OR ${CMAKE_SYSTEM_NAME} STREQUAL FreeBSD) @@ -171,6 +172,14 @@ if(MW_USE_DIRECTWRITE) ) endif() +if(MW_USE_GDI_TEXT) + target_compile_definitions( + Mw + PRIVATE + USE_GDI_TEXT + ) +endif() + if(MW_USE_WAYLAND) function(scan_wayland_protocol_core) execute_process( diff --git a/examples/vkdemos/vulkan.c b/examples/vkdemos/vulkan.c index 601541529..9060a970f 100644 --- a/examples/vkdemos/vulkan.c +++ b/examples/vkdemos/vulkan.c @@ -257,8 +257,8 @@ void vulkan_setup(MwWidget handle) { swapchainCreateInfo.imageExtent = (VkExtent2D){.width = ow, .height = oh}, swapchainCreateInfo.imageArrayLayers = 1, swapchainCreateInfo.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | - VK_IMAGE_USAGE_TRANSFER_DST_BIT | - VK_IMAGE_USAGE_SAMPLED_BIT; + VK_IMAGE_USAGE_TRANSFER_DST_BIT | + VK_IMAGE_USAGE_SAMPLED_BIT; // th is how we specify no transformation. swapchainCreateInfo.preTransform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; swapchainCreateInfo.compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR; diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 3ecd06587..efbc015b0 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -339,19 +339,22 @@ MWDECL void (*MwLLClip)(MwLL handle, MwRect* rect); MWDECL void MwFLSetup(void); #ifdef USE_FREETYPE2 -MWDECL int MWFL_FT2Setup(void); +MWDECL int MwFL_FT2Setup(void); #endif #ifdef USE_STB_TRUETYPE MWDECL int MwFL_STBTTSetup(void); #endif #ifdef USE_DIRECTWRITE -MWDECL int MWFL_DWSetup(void); +MWDECL int MwFL_DWSetup(void); +#endif +#ifdef USE_GDI_TEXT +MWDECL int MwFL_GDISetup(void); #endif MWDECL int (*MwFLDrawText)(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, MwLLColor color); MWDECL int (*MwFLTextWidth)(MwFLFont ttf, const char* text); MWDECL int (*MwFLTextHeight)(MwFLFont ttf, int count); -MWDECL int (*MwFLTextHeightWithText)(MwFLFont ttf, const char * text); +MWDECL int (*MwFLTextHeightWithText)(MwFLFont ttf, const char* text); MWDECL void* (*MwFLFontLoad)(unsigned char* data, unsigned int size, int px); MWDECL void (*MwFLFontFree)(void* handle); diff --git a/include/Mw/Milsko.h b/include/Mw/Milsko.h index f7b4b49be..9860990ca 100644 --- a/include/Mw/Milsko.h +++ b/include/Mw/Milsko.h @@ -17,6 +17,7 @@ #include #include #include +#include #include #include diff --git a/include/Mw/TrueType.h b/include/Mw/TrueType.h new file mode 100644 index 000000000..7204c3157 --- /dev/null +++ b/include/Mw/TrueType.h @@ -0,0 +1,33 @@ +/*! + * @file Mw/TrueType.h + * @brief TrueType utilities + */ +#ifndef __MW_TRUETYPE_H__ +#define __MW_TRUETYPE_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/*! + * @brief Get the TrueType font information + * @param data Font data + * @param size Font size + * @return Information + */ +MWDECL MwTTFInfo MwTTFGetInfo(unsigned char* data, int size); + +/*! + * @brief Free the TrueType font information + * @brief info Information + */ +MWDECL void MwTTFFreeInfo(MwTTFInfo info); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index b31c4b4fb..4944105de 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -31,6 +31,7 @@ typedef struct _MwSubWindow* MwSubWindow; typedef struct _MwTab* MwTab; typedef struct _MwTable* MwTable; typedef struct _MwMouse MwMouse; +typedef struct _MwTTFInfo* MwTTFInfo; #ifdef _MILSKO typedef struct _MwWidget* MwWidget; #else @@ -247,6 +248,11 @@ struct _MwMouse { int button; }; +struct _MwTTFInfo { + char* family; + int weight; +}; + struct _MwClass { MwHandlerWithStatus create; MwHandler destroy; diff --git a/include/Mw/Widget/Window.h b/include/Mw/Widget/Window.h index e5826c117..6a98b68a7 100644 --- a/include/Mw/Widget/Window.h +++ b/include/Mw/Widget/Window.h @@ -27,19 +27,17 @@ MwInline void MwWindowMakeBorderless(MwWidget handle, int toggle) { MwVaWidgetExecute(handle, "mwWindowMakeBorderless", NULL, toggle); } - /*! * @brief Whether the window should close * @param handle Widget * @return bool */ MwInline MwBool MwWindowShouldClose(MwWidget handle) { - MwBool res = MwFALSE; - MwVaWidgetExecute(handle, "mwWindowShouldClose", NULL, &res); - return res; + MwBool res = MwFALSE; + MwVaWidgetExecute(handle, "mwWindowShouldClose", NULL, &res); + return res; } - #ifdef __cplusplus } #endif diff --git a/src/abstract/charset.c b/src/abstract/charset.c index 47cc9a21b..3bd76252f 100644 --- a/src/abstract/charset.c +++ b/src/abstract/charset.c @@ -64,7 +64,7 @@ char* MwUTF8ToACP(const char* input) { return MwStringDuplicate(input); } - wout = malloc(wbytes); + wout = malloc(wbytes + sizeof(wchar_t)); len = wbytes / sizeof(wchar_t); memset(wout, 0, wbytes); diff --git a/src/backend/cairo.c b/src/backend/cairo.c index 7b92d0069..0c26ff3c6 100644 --- a/src/backend/cairo.c +++ b/src/backend/cairo.c @@ -212,8 +212,8 @@ static void MwLLFreeColorImpl(MwLLColor color) {} static MwBool lmao = MwFALSE; static int MwLLPendingImpl(MwLL handle) { - lmao = !lmao; - return lmao; + lmao = !lmao; + return lmao; } static void MwLLNextEventImpl(MwLL handle) { MwLLDispatch(handle, draw, NULL); @@ -256,10 +256,10 @@ static MwBool MwLLDoModernImpl(MwLL handle) { static void MwLLRaiseImpl(MwLL handle) {} static void MwLLClipImpl(MwLL handle, MwRect* rect) {} static int MwLLCairoCallInitImpl(void) { - if(cairo_load_funcs() != 0) { - return 1; - } - return 0; + if(cairo_load_funcs() != 0) { + return 1; + } + return 0; } #include "call.c" CALL(Cairo); diff --git a/src/core.c b/src/core.c index b984bb781..c72b8686a 100644 --- a/src/core.c +++ b/src/core.c @@ -226,16 +226,16 @@ static MwWidget MwCreateWidget_Internal(MwClass widget_class, const char* name, MwWidget h = malloc(sizeof(*h)); if(name) - h->name = MwStringDuplicate(name); + h->name = MwStringDuplicate(name); else - h->name = NULL; + h->name = NULL; h->parent = parent; h->children = NULL; if(widget_class != NULL) { if((h->lowlevel = MwLLCreate(parent == NULL ? NULL : parent->lowlevel, x, y, width, height)) == NULL) { - if(h->name) { + if(h->name) { free(h->name); } free(h); diff --git a/src/text/directwrite.c b/src/text/directwrite.c index df584ac66..75c707c19 100644 --- a/src/text/directwrite.c +++ b/src/text/directwrite.c @@ -530,7 +530,7 @@ static CustomTextRenderer* CustomTextRenderer_Create(IDWriteFactory6* write_fact return obj; } -int MWFL_DWSetup(void) { +int MwFL_DWSetup(void) { HRESULT hr; HANDLE ole32lib; /* CoInitialize, to my knowledge, is avaliable on every Windows version we actually support. But as of writing, CI fails because a specific mingw won't link to it by default. I'm not gonna waste my time chancing that it will properly link to ole32 either. */ @@ -541,7 +541,7 @@ int MWFL_DWSetup(void) { printf("ole32lib not found, cannot use DirectWrite\n"); return 1; } - CoInitialize = (HRESULT (*)(LPVOID pvReserved))GetProcAddress(ole32lib, "CoInitialize"); + CoInitialize = (HRESULT(*)(LPVOID pvReserved))GetProcAddress(ole32lib, "CoInitialize"); if(!CoInitialize) { printf("CoInitialize not found, cannot use DirectWrite\n"); return 1; diff --git a/src/text/dwrite.h b/src/text/dwrite.h index 4872ded00..81f87aa5c 100644 --- a/src/text/dwrite.h +++ b/src/text/dwrite.h @@ -15,7 +15,6 @@ #include #endif - #ifndef __dwrite_h__ #define __dwrite_h__ @@ -296,443 +295,443 @@ interface ID2D1SimplifiedGeometrySink; typedef ID2D1SimplifiedGeometrySink IDWriteGeometrySink; #ifndef _WINDEF_ -typedef void *HMONITOR; +typedef void* HMONITOR; #endif /* _WINDEF_ */ #ifdef WINE_NO_UNICODE_MACROS #undef GetGlyphIndices #endif typedef enum DWRITE_FACTORY_TYPE { - DWRITE_FACTORY_TYPE_SHARED = 0, - DWRITE_FACTORY_TYPE_ISOLATED = 1 + DWRITE_FACTORY_TYPE_SHARED = 0, + DWRITE_FACTORY_TYPE_ISOLATED = 1 } DWRITE_FACTORY_TYPE; typedef enum DWRITE_FONT_FILE_TYPE { - DWRITE_FONT_FILE_TYPE_UNKNOWN = 0, - DWRITE_FONT_FILE_TYPE_CFF = 1, - DWRITE_FONT_FILE_TYPE_TRUETYPE = 2, - DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION = 3, - DWRITE_FONT_FILE_TYPE_TYPE1_PFM = 4, - DWRITE_FONT_FILE_TYPE_TYPE1_PFB = 5, - DWRITE_FONT_FILE_TYPE_VECTOR = 6, - DWRITE_FONT_FILE_TYPE_BITMAP = 7, - DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION = DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION + DWRITE_FONT_FILE_TYPE_UNKNOWN = 0, + DWRITE_FONT_FILE_TYPE_CFF = 1, + DWRITE_FONT_FILE_TYPE_TRUETYPE = 2, + DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION = 3, + DWRITE_FONT_FILE_TYPE_TYPE1_PFM = 4, + DWRITE_FONT_FILE_TYPE_TYPE1_PFB = 5, + DWRITE_FONT_FILE_TYPE_VECTOR = 6, + DWRITE_FONT_FILE_TYPE_BITMAP = 7, + DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION = DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION } DWRITE_FONT_FILE_TYPE; typedef enum DWRITE_FONT_FACE_TYPE { - DWRITE_FONT_FACE_TYPE_CFF = 0, - DWRITE_FONT_FACE_TYPE_TRUETYPE = 1, - DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION = 2, - DWRITE_FONT_FACE_TYPE_TYPE1 = 3, - DWRITE_FONT_FACE_TYPE_VECTOR = 4, - DWRITE_FONT_FACE_TYPE_BITMAP = 5, - DWRITE_FONT_FACE_TYPE_UNKNOWN = 6, - DWRITE_FONT_FACE_TYPE_RAW_CFF = 7, - DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION = DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION + DWRITE_FONT_FACE_TYPE_CFF = 0, + DWRITE_FONT_FACE_TYPE_TRUETYPE = 1, + DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION = 2, + DWRITE_FONT_FACE_TYPE_TYPE1 = 3, + DWRITE_FONT_FACE_TYPE_VECTOR = 4, + DWRITE_FONT_FACE_TYPE_BITMAP = 5, + DWRITE_FONT_FACE_TYPE_UNKNOWN = 6, + DWRITE_FONT_FACE_TYPE_RAW_CFF = 7, + DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION = DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION } DWRITE_FONT_FACE_TYPE; typedef enum DWRITE_FONT_WEIGHT { - DWRITE_FONT_WEIGHT_THIN = 100, - DWRITE_FONT_WEIGHT_EXTRA_LIGHT = 200, - DWRITE_FONT_WEIGHT_ULTRA_LIGHT = 200, - DWRITE_FONT_WEIGHT_LIGHT = 300, - DWRITE_FONT_WEIGHT_SEMI_LIGHT = 350, - DWRITE_FONT_WEIGHT_NORMAL = 400, - DWRITE_FONT_WEIGHT_REGULAR = 400, - DWRITE_FONT_WEIGHT_MEDIUM = 500, - DWRITE_FONT_WEIGHT_DEMI_BOLD = 600, - DWRITE_FONT_WEIGHT_SEMI_BOLD = 600, - DWRITE_FONT_WEIGHT_BOLD = 700, - DWRITE_FONT_WEIGHT_EXTRA_BOLD = 800, - DWRITE_FONT_WEIGHT_ULTRA_BOLD = 800, - DWRITE_FONT_WEIGHT_BLACK = 900, - DWRITE_FONT_WEIGHT_HEAVY = 900, - DWRITE_FONT_WEIGHT_EXTRA_BLACK = 950, - DWRITE_FONT_WEIGHT_ULTRA_BLACK = 950 + DWRITE_FONT_WEIGHT_THIN = 100, + DWRITE_FONT_WEIGHT_EXTRA_LIGHT = 200, + DWRITE_FONT_WEIGHT_ULTRA_LIGHT = 200, + DWRITE_FONT_WEIGHT_LIGHT = 300, + DWRITE_FONT_WEIGHT_SEMI_LIGHT = 350, + DWRITE_FONT_WEIGHT_NORMAL = 400, + DWRITE_FONT_WEIGHT_REGULAR = 400, + DWRITE_FONT_WEIGHT_MEDIUM = 500, + DWRITE_FONT_WEIGHT_DEMI_BOLD = 600, + DWRITE_FONT_WEIGHT_SEMI_BOLD = 600, + DWRITE_FONT_WEIGHT_BOLD = 700, + DWRITE_FONT_WEIGHT_EXTRA_BOLD = 800, + DWRITE_FONT_WEIGHT_ULTRA_BOLD = 800, + DWRITE_FONT_WEIGHT_BLACK = 900, + DWRITE_FONT_WEIGHT_HEAVY = 900, + DWRITE_FONT_WEIGHT_EXTRA_BLACK = 950, + DWRITE_FONT_WEIGHT_ULTRA_BLACK = 950 } DWRITE_FONT_WEIGHT; typedef enum DWRITE_FONT_STRETCH { - DWRITE_FONT_STRETCH_UNDEFINED = 0, - DWRITE_FONT_STRETCH_ULTRA_CONDENSED = 1, - DWRITE_FONT_STRETCH_EXTRA_CONDENSED = 2, - DWRITE_FONT_STRETCH_CONDENSED = 3, - DWRITE_FONT_STRETCH_SEMI_CONDENSED = 4, - DWRITE_FONT_STRETCH_NORMAL = 5, - DWRITE_FONT_STRETCH_MEDIUM = 5, - DWRITE_FONT_STRETCH_SEMI_EXPANDED = 6, - DWRITE_FONT_STRETCH_EXPANDED = 7, - DWRITE_FONT_STRETCH_EXTRA_EXPANDED = 8, - DWRITE_FONT_STRETCH_ULTRA_EXPANDED = 9 + DWRITE_FONT_STRETCH_UNDEFINED = 0, + DWRITE_FONT_STRETCH_ULTRA_CONDENSED = 1, + DWRITE_FONT_STRETCH_EXTRA_CONDENSED = 2, + DWRITE_FONT_STRETCH_CONDENSED = 3, + DWRITE_FONT_STRETCH_SEMI_CONDENSED = 4, + DWRITE_FONT_STRETCH_NORMAL = 5, + DWRITE_FONT_STRETCH_MEDIUM = 5, + DWRITE_FONT_STRETCH_SEMI_EXPANDED = 6, + DWRITE_FONT_STRETCH_EXPANDED = 7, + DWRITE_FONT_STRETCH_EXTRA_EXPANDED = 8, + DWRITE_FONT_STRETCH_ULTRA_EXPANDED = 9 } DWRITE_FONT_STRETCH; typedef enum DWRITE_FONT_STYLE { - DWRITE_FONT_STYLE_NORMAL = 0, - DWRITE_FONT_STYLE_OBLIQUE = 1, - DWRITE_FONT_STYLE_ITALIC = 2 + DWRITE_FONT_STYLE_NORMAL = 0, + DWRITE_FONT_STYLE_OBLIQUE = 1, + DWRITE_FONT_STYLE_ITALIC = 2 } DWRITE_FONT_STYLE; typedef enum DWRITE_INFORMATIONAL_STRING_ID { - DWRITE_INFORMATIONAL_STRING_NONE = 0, - DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE = 1, - DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS = 2, - DWRITE_INFORMATIONAL_STRING_TRADEMARK = 3, - DWRITE_INFORMATIONAL_STRING_MANUFACTURER = 4, - DWRITE_INFORMATIONAL_STRING_DESIGNER = 5, - DWRITE_INFORMATIONAL_STRING_DESIGNER_URL = 6, - DWRITE_INFORMATIONAL_STRING_DESCRIPTION = 7, - DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL = 8, - DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION = 9, - DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL = 10, - DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES = 11, - DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES = 12, - DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_FAMILY_NAMES = 13, - DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_SUBFAMILY_NAMES = 14, - DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT = 15, - DWRITE_INFORMATIONAL_STRING_FULL_NAME = 16, - DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME = 17, - DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_CID_NAME = 18, - DWRITE_INFORMATIONAL_STRING_WEIGHT_STRETCH_STYLE_FAMILY_NAME = 19, - DWRITE_INFORMATIONAL_STRING_DESIGN_SCRIPT_LANGUAGE_TAG = 20, - DWRITE_INFORMATIONAL_STRING_SUPPORTED_SCRIPT_LANGUAGE_TAG = 21, - DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES = DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_FAMILY_NAMES, - DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES = DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_SUBFAMILY_NAMES, - DWRITE_INFORMATIONAL_STRING_WWS_FAMILY_NAME = DWRITE_INFORMATIONAL_STRING_WEIGHT_STRETCH_STYLE_FAMILY_NAME + DWRITE_INFORMATIONAL_STRING_NONE = 0, + DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE = 1, + DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS = 2, + DWRITE_INFORMATIONAL_STRING_TRADEMARK = 3, + DWRITE_INFORMATIONAL_STRING_MANUFACTURER = 4, + DWRITE_INFORMATIONAL_STRING_DESIGNER = 5, + DWRITE_INFORMATIONAL_STRING_DESIGNER_URL = 6, + DWRITE_INFORMATIONAL_STRING_DESCRIPTION = 7, + DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL = 8, + DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION = 9, + DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL = 10, + DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES = 11, + DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES = 12, + DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_FAMILY_NAMES = 13, + DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_SUBFAMILY_NAMES = 14, + DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT = 15, + DWRITE_INFORMATIONAL_STRING_FULL_NAME = 16, + DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME = 17, + DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_CID_NAME = 18, + DWRITE_INFORMATIONAL_STRING_WEIGHT_STRETCH_STYLE_FAMILY_NAME = 19, + DWRITE_INFORMATIONAL_STRING_DESIGN_SCRIPT_LANGUAGE_TAG = 20, + DWRITE_INFORMATIONAL_STRING_SUPPORTED_SCRIPT_LANGUAGE_TAG = 21, + DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES = DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_FAMILY_NAMES, + DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES = DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_SUBFAMILY_NAMES, + DWRITE_INFORMATIONAL_STRING_WWS_FAMILY_NAME = DWRITE_INFORMATIONAL_STRING_WEIGHT_STRETCH_STYLE_FAMILY_NAME } DWRITE_INFORMATIONAL_STRING_ID; typedef enum DWRITE_FONT_SIMULATIONS { - DWRITE_FONT_SIMULATIONS_NONE = 0, - DWRITE_FONT_SIMULATIONS_BOLD = 1, - DWRITE_FONT_SIMULATIONS_OBLIQUE = 2 + DWRITE_FONT_SIMULATIONS_NONE = 0, + DWRITE_FONT_SIMULATIONS_BOLD = 1, + DWRITE_FONT_SIMULATIONS_OBLIQUE = 2 } DWRITE_FONT_SIMULATIONS; DEFINE_ENUM_FLAG_OPERATORS(DWRITE_FONT_SIMULATIONS); typedef enum DWRITE_PIXEL_GEOMETRY { - DWRITE_PIXEL_GEOMETRY_FLAT = 0, - DWRITE_PIXEL_GEOMETRY_RGB = 1, - DWRITE_PIXEL_GEOMETRY_BGR = 2 + DWRITE_PIXEL_GEOMETRY_FLAT = 0, + DWRITE_PIXEL_GEOMETRY_RGB = 1, + DWRITE_PIXEL_GEOMETRY_BGR = 2 } DWRITE_PIXEL_GEOMETRY; typedef enum DWRITE_RENDERING_MODE { - DWRITE_RENDERING_MODE_DEFAULT = 0, - DWRITE_RENDERING_MODE_ALIASED = 1, - DWRITE_RENDERING_MODE_GDI_CLASSIC = 2, - DWRITE_RENDERING_MODE_GDI_NATURAL = 3, - DWRITE_RENDERING_MODE_NATURAL = 4, - DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC = 5, - DWRITE_RENDERING_MODE_OUTLINE = 6, - DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC = DWRITE_RENDERING_MODE_GDI_CLASSIC, - DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL = DWRITE_RENDERING_MODE_GDI_NATURAL, - DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL = DWRITE_RENDERING_MODE_NATURAL, - DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC = DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC + DWRITE_RENDERING_MODE_DEFAULT = 0, + DWRITE_RENDERING_MODE_ALIASED = 1, + DWRITE_RENDERING_MODE_GDI_CLASSIC = 2, + DWRITE_RENDERING_MODE_GDI_NATURAL = 3, + DWRITE_RENDERING_MODE_NATURAL = 4, + DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC = 5, + DWRITE_RENDERING_MODE_OUTLINE = 6, + DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC = DWRITE_RENDERING_MODE_GDI_CLASSIC, + DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL = DWRITE_RENDERING_MODE_GDI_NATURAL, + DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL = DWRITE_RENDERING_MODE_NATURAL, + DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC = DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC } DWRITE_RENDERING_MODE; typedef enum DWRITE_TEXT_ALIGNMENT { - DWRITE_TEXT_ALIGNMENT_LEADING = 0, - DWRITE_TEXT_ALIGNMENT_TRAILING = 1, - DWRITE_TEXT_ALIGNMENT_CENTER = 2, - DWRITE_TEXT_ALIGNMENT_JUSTIFIED = 3 + DWRITE_TEXT_ALIGNMENT_LEADING = 0, + DWRITE_TEXT_ALIGNMENT_TRAILING = 1, + DWRITE_TEXT_ALIGNMENT_CENTER = 2, + DWRITE_TEXT_ALIGNMENT_JUSTIFIED = 3 } DWRITE_TEXT_ALIGNMENT; typedef enum DWRITE_PARAGRAPH_ALIGNMENT { - DWRITE_PARAGRAPH_ALIGNMENT_NEAR = 0, - DWRITE_PARAGRAPH_ALIGNMENT_FAR = 1, - DWRITE_PARAGRAPH_ALIGNMENT_CENTER = 2 + DWRITE_PARAGRAPH_ALIGNMENT_NEAR = 0, + DWRITE_PARAGRAPH_ALIGNMENT_FAR = 1, + DWRITE_PARAGRAPH_ALIGNMENT_CENTER = 2 } DWRITE_PARAGRAPH_ALIGNMENT; typedef enum DWRITE_WORD_WRAPPING { - DWRITE_WORD_WRAPPING_WRAP = 0, - DWRITE_WORD_WRAPPING_NO_WRAP = 1, - DWRITE_WORD_WRAPPING_EMERGENCY_BREAK = 2, - DWRITE_WORD_WRAPPING_WHOLE_WORD = 3, - DWRITE_WORD_WRAPPING_CHARACTER = 4 + DWRITE_WORD_WRAPPING_WRAP = 0, + DWRITE_WORD_WRAPPING_NO_WRAP = 1, + DWRITE_WORD_WRAPPING_EMERGENCY_BREAK = 2, + DWRITE_WORD_WRAPPING_WHOLE_WORD = 3, + DWRITE_WORD_WRAPPING_CHARACTER = 4 } DWRITE_WORD_WRAPPING; typedef enum DWRITE_READING_DIRECTION { - DWRITE_READING_DIRECTION_LEFT_TO_RIGHT = 0, - DWRITE_READING_DIRECTION_RIGHT_TO_LEFT = 1, - DWRITE_READING_DIRECTION_TOP_TO_BOTTOM = 2, - DWRITE_READING_DIRECTION_BOTTOM_TO_TOP = 3 + DWRITE_READING_DIRECTION_LEFT_TO_RIGHT = 0, + DWRITE_READING_DIRECTION_RIGHT_TO_LEFT = 1, + DWRITE_READING_DIRECTION_TOP_TO_BOTTOM = 2, + DWRITE_READING_DIRECTION_BOTTOM_TO_TOP = 3 } DWRITE_READING_DIRECTION; typedef enum DWRITE_FLOW_DIRECTION { - DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM = 0, - DWRITE_FLOW_DIRECTION_BOTTOM_TO_TOP = 1, - DWRITE_FLOW_DIRECTION_LEFT_TO_RIGHT = 2, - DWRITE_FLOW_DIRECTION_RIGHT_TO_LEFT = 3 + DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM = 0, + DWRITE_FLOW_DIRECTION_BOTTOM_TO_TOP = 1, + DWRITE_FLOW_DIRECTION_LEFT_TO_RIGHT = 2, + DWRITE_FLOW_DIRECTION_RIGHT_TO_LEFT = 3 } DWRITE_FLOW_DIRECTION; typedef enum DWRITE_TRIMMING_GRANULARITY { - DWRITE_TRIMMING_GRANULARITY_NONE = 0, - DWRITE_TRIMMING_GRANULARITY_CHARACTER = 1, - DWRITE_TRIMMING_GRANULARITY_WORD = 2 + DWRITE_TRIMMING_GRANULARITY_NONE = 0, + DWRITE_TRIMMING_GRANULARITY_CHARACTER = 1, + DWRITE_TRIMMING_GRANULARITY_WORD = 2 } DWRITE_TRIMMING_GRANULARITY; typedef enum DWRITE_BREAK_CONDITION { - DWRITE_BREAK_CONDITION_NEUTRAL = 0, - DWRITE_BREAK_CONDITION_CAN_BREAK = 1, - DWRITE_BREAK_CONDITION_MAY_NOT_BREAK = 2, - DWRITE_BREAK_CONDITION_MUST_BREAK = 3 + DWRITE_BREAK_CONDITION_NEUTRAL = 0, + DWRITE_BREAK_CONDITION_CAN_BREAK = 1, + DWRITE_BREAK_CONDITION_MAY_NOT_BREAK = 2, + DWRITE_BREAK_CONDITION_MUST_BREAK = 3 } DWRITE_BREAK_CONDITION; typedef enum DWRITE_LINE_SPACING_METHOD { - DWRITE_LINE_SPACING_METHOD_DEFAULT = 0, - DWRITE_LINE_SPACING_METHOD_UNIFORM = 1, - DWRITE_LINE_SPACING_METHOD_PROPORTIONAL = 2 + DWRITE_LINE_SPACING_METHOD_DEFAULT = 0, + DWRITE_LINE_SPACING_METHOD_UNIFORM = 1, + DWRITE_LINE_SPACING_METHOD_PROPORTIONAL = 2 } DWRITE_LINE_SPACING_METHOD; -#define DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d) ( \ +#define DWRITE_MAKE_OPENTYPE_TAG(a, b, c, d) ( \ ((UINT32)(UINT8)(d) << 24) | \ ((UINT32)(UINT8)(c) << 16) | \ - ((UINT32)(UINT8)(b) << 8) | \ - (UINT32)(UINT8)(a)) + ((UINT32)(UINT8)(b) << 8) | \ + (UINT32)(UINT8)(a)) typedef enum DWRITE_FONT_FEATURE_TAG { - DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS = 0x63726661, - DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS = 0x63703263, - DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS = 0x63733263, - DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES = 0x746c6163, - DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS = 0x65736163, - DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION = 0x706d6363, - DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES = 0x67696c63, - DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING = 0x70737063, - DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH = 0x68777363, - DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING = 0x73727563, - DWRITE_FONT_FEATURE_TAG_DEFAULT = 0x746c6664, - DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES = 0x67696c64, - DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS = 0x74707865, - DWRITE_FONT_FEATURE_TAG_FRACTIONS = 0x63617266, - DWRITE_FONT_FEATURE_TAG_FULL_WIDTH = 0x64697766, - DWRITE_FONT_FEATURE_TAG_HALF_FORMS = 0x666c6168, - DWRITE_FONT_FEATURE_TAG_HALANT_FORMS = 0x6e6c6168, - DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH = 0x746c6168, - DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS = 0x74736968, - DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES = 0x616e6b68, - DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES = 0x67696c68, - DWRITE_FONT_FEATURE_TAG_HALF_WIDTH = 0x64697768, - DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS = 0x6f6a6f68, - DWRITE_FONT_FEATURE_TAG_JIS04_FORMS = 0x3430706a, - DWRITE_FONT_FEATURE_TAG_JIS78_FORMS = 0x3837706a, - DWRITE_FONT_FEATURE_TAG_JIS83_FORMS = 0x3338706a, - DWRITE_FONT_FEATURE_TAG_JIS90_FORMS = 0x3039706a, - DWRITE_FONT_FEATURE_TAG_KERNING = 0x6e72656b, - DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES = 0x6167696c, - DWRITE_FONT_FEATURE_TAG_LINING_FIGURES = 0x6d756e6c, - DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS = 0x6c636f6c, - DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING = 0x6b72616d, - DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK = 0x6b72676d, - DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING = 0x6b6d6b6d, - DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS = 0x746c616e, - DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS = 0x6b636c6e, - DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES = 0x6d756e6f, - DWRITE_FONT_FEATURE_TAG_ORDINALS = 0x6e64726f, - DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH = 0x746c6170, - DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS = 0x70616370, - DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES = 0x6d756e70, - DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS = 0x64697770, - DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS = 0x64697771, - DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES = 0x67696c72, - DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS = 0x79627572, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES = 0x746c6173, - DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS = 0x666e6973, - DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS = 0x70636d73, - DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS = 0x6c706d73, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1 = 0x31307373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2 = 0x32307373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3 = 0x33307373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4 = 0x34307373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5 = 0x35307373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6 = 0x36307373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7 = 0x37307373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8 = 0x38307373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9 = 0x39307373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10 = 0x30317373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11 = 0x31317373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12 = 0x32317373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13 = 0x33317373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14 = 0x34317373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15 = 0x35317373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16 = 0x36317373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17 = 0x37317373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18 = 0x38317373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19 = 0x39317373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20 = 0x30327373, - DWRITE_FONT_FEATURE_TAG_SUBSCRIPT = 0x73627573, - DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT = 0x73707573, - DWRITE_FONT_FEATURE_TAG_SWASH = 0x68737773, - DWRITE_FONT_FEATURE_TAG_TITLING = 0x6c746974, - DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS = 0x6d616e74, - DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES = 0x6d756e74, - DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS = 0x64617274, - DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS = 0x64697774, - DWRITE_FONT_FEATURE_TAG_UNICASE = 0x63696e75, - DWRITE_FONT_FEATURE_TAG_VERTICAL_WRITING = 0x74726576, - DWRITE_FONT_FEATURE_TAG_VERTICAL_ALTERNATES_AND_ROTATION = 0x32747276, - DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO = 0x6f72657a + DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS = 0x63726661, + DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS = 0x63703263, + DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS = 0x63733263, + DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES = 0x746c6163, + DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS = 0x65736163, + DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION = 0x706d6363, + DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES = 0x67696c63, + DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING = 0x70737063, + DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH = 0x68777363, + DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING = 0x73727563, + DWRITE_FONT_FEATURE_TAG_DEFAULT = 0x746c6664, + DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES = 0x67696c64, + DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS = 0x74707865, + DWRITE_FONT_FEATURE_TAG_FRACTIONS = 0x63617266, + DWRITE_FONT_FEATURE_TAG_FULL_WIDTH = 0x64697766, + DWRITE_FONT_FEATURE_TAG_HALF_FORMS = 0x666c6168, + DWRITE_FONT_FEATURE_TAG_HALANT_FORMS = 0x6e6c6168, + DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH = 0x746c6168, + DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS = 0x74736968, + DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES = 0x616e6b68, + DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES = 0x67696c68, + DWRITE_FONT_FEATURE_TAG_HALF_WIDTH = 0x64697768, + DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS = 0x6f6a6f68, + DWRITE_FONT_FEATURE_TAG_JIS04_FORMS = 0x3430706a, + DWRITE_FONT_FEATURE_TAG_JIS78_FORMS = 0x3837706a, + DWRITE_FONT_FEATURE_TAG_JIS83_FORMS = 0x3338706a, + DWRITE_FONT_FEATURE_TAG_JIS90_FORMS = 0x3039706a, + DWRITE_FONT_FEATURE_TAG_KERNING = 0x6e72656b, + DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES = 0x6167696c, + DWRITE_FONT_FEATURE_TAG_LINING_FIGURES = 0x6d756e6c, + DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS = 0x6c636f6c, + DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING = 0x6b72616d, + DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK = 0x6b72676d, + DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING = 0x6b6d6b6d, + DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS = 0x746c616e, + DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS = 0x6b636c6e, + DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES = 0x6d756e6f, + DWRITE_FONT_FEATURE_TAG_ORDINALS = 0x6e64726f, + DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH = 0x746c6170, + DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS = 0x70616370, + DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES = 0x6d756e70, + DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS = 0x64697770, + DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS = 0x64697771, + DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES = 0x67696c72, + DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS = 0x79627572, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES = 0x746c6173, + DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS = 0x666e6973, + DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS = 0x70636d73, + DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS = 0x6c706d73, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1 = 0x31307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2 = 0x32307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3 = 0x33307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4 = 0x34307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5 = 0x35307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6 = 0x36307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7 = 0x37307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8 = 0x38307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9 = 0x39307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10 = 0x30317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11 = 0x31317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12 = 0x32317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13 = 0x33317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14 = 0x34317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15 = 0x35317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16 = 0x36317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17 = 0x37317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18 = 0x38317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19 = 0x39317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20 = 0x30327373, + DWRITE_FONT_FEATURE_TAG_SUBSCRIPT = 0x73627573, + DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT = 0x73707573, + DWRITE_FONT_FEATURE_TAG_SWASH = 0x68737773, + DWRITE_FONT_FEATURE_TAG_TITLING = 0x6c746974, + DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS = 0x6d616e74, + DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES = 0x6d756e74, + DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS = 0x64617274, + DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS = 0x64697774, + DWRITE_FONT_FEATURE_TAG_UNICASE = 0x63696e75, + DWRITE_FONT_FEATURE_TAG_VERTICAL_WRITING = 0x74726576, + DWRITE_FONT_FEATURE_TAG_VERTICAL_ALTERNATES_AND_ROTATION = 0x32747276, + DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO = 0x6f72657a } DWRITE_FONT_FEATURE_TAG; typedef enum DWRITE_SCRIPT_SHAPES { - DWRITE_SCRIPT_SHAPES_DEFAULT = 0, - DWRITE_SCRIPT_SHAPES_NO_VISUAL = 1 + DWRITE_SCRIPT_SHAPES_DEFAULT = 0, + DWRITE_SCRIPT_SHAPES_NO_VISUAL = 1 } DWRITE_SCRIPT_SHAPES; DEFINE_ENUM_FLAG_OPERATORS(DWRITE_SCRIPT_SHAPES); typedef enum DWRITE_NUMBER_SUBSTITUTION_METHOD { - DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE = 0, - DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL = 1, - DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE = 2, - DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL = 3, - DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL = 4 + DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE = 0, + DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL = 1, + DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE = 2, + DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL = 3, + DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL = 4 } DWRITE_NUMBER_SUBSTITUTION_METHOD; #define DWRITE_ALPHA_MAX 255 typedef enum DWRITE_TEXTURE_TYPE { - DWRITE_TEXTURE_ALIASED_1x1 = 0, - DWRITE_TEXTURE_CLEARTYPE_3x1 = 1 + DWRITE_TEXTURE_ALIASED_1x1 = 0, + DWRITE_TEXTURE_CLEARTYPE_3x1 = 1 } DWRITE_TEXTURE_TYPE; typedef struct DWRITE_FONT_METRICS { - UINT16 designUnitsPerEm; - UINT16 ascent; - UINT16 descent; - INT16 lineGap; - UINT16 capHeight; - UINT16 xHeight; - INT16 underlinePosition; - UINT16 underlineThickness; - INT16 strikethroughPosition; - UINT16 strikethroughThickness; + UINT16 designUnitsPerEm; + UINT16 ascent; + UINT16 descent; + INT16 lineGap; + UINT16 capHeight; + UINT16 xHeight; + INT16 underlinePosition; + UINT16 underlineThickness; + INT16 strikethroughPosition; + UINT16 strikethroughThickness; } DWRITE_FONT_METRICS; typedef struct DWRITE_GLYPH_METRICS { - INT32 leftSideBearing; - UINT32 advanceWidth; - INT32 rightSideBearing; - INT32 topSideBearing; - UINT32 advanceHeight; - INT32 bottomSideBearing; - INT32 verticalOriginY; + INT32 leftSideBearing; + UINT32 advanceWidth; + INT32 rightSideBearing; + INT32 topSideBearing; + UINT32 advanceHeight; + INT32 bottomSideBearing; + INT32 verticalOriginY; } DWRITE_GLYPH_METRICS; typedef struct DWRITE_GLYPH_OFFSET { - FLOAT advanceOffset; - FLOAT ascenderOffset; + FLOAT advanceOffset; + FLOAT ascenderOffset; } DWRITE_GLYPH_OFFSET; typedef struct DWRITE_MATRIX { - FLOAT m11; - FLOAT m12; - FLOAT m21; - FLOAT m22; - FLOAT dx; - FLOAT dy; + FLOAT m11; + FLOAT m12; + FLOAT m21; + FLOAT m22; + FLOAT dx; + FLOAT dy; } DWRITE_MATRIX; typedef struct DWRITE_TRIMMING { - DWRITE_TRIMMING_GRANULARITY granularity; - UINT32 delimiter; - UINT32 delimiterCount; + DWRITE_TRIMMING_GRANULARITY granularity; + UINT32 delimiter; + UINT32 delimiterCount; } DWRITE_TRIMMING; #ifndef __d2d1_h__ typedef struct DWRITE_GLYPH_RUN DWRITE_GLYPH_RUN; #endif /* __d2d1_h__ */ struct DWRITE_GLYPH_RUN { - IDWriteFontFace *fontFace; - FLOAT fontEmSize; - UINT32 glyphCount; - const UINT16 *glyphIndices; - const FLOAT *glyphAdvances; - const DWRITE_GLYPH_OFFSET *glyphOffsets; - WINBOOL isSideways; - UINT32 bidiLevel; + IDWriteFontFace* fontFace; + FLOAT fontEmSize; + UINT32 glyphCount; + const UINT16* glyphIndices; + const FLOAT* glyphAdvances; + const DWRITE_GLYPH_OFFSET* glyphOffsets; + WINBOOL isSideways; + UINT32 bidiLevel; }; #ifndef __d2d1_1_h__ typedef struct DWRITE_GLYPH_RUN_DESCRIPTION DWRITE_GLYPH_RUN_DESCRIPTION; #endif /* __d2d1_1_h__ */ struct DWRITE_GLYPH_RUN_DESCRIPTION { - const WCHAR *localeName; - const WCHAR *string; - UINT32 stringLength; - const UINT16 *clusterMap; - UINT32 textPosition; + const WCHAR* localeName; + const WCHAR* string; + UINT32 stringLength; + const UINT16* clusterMap; + UINT32 textPosition; }; typedef struct DWRITE_UNDERLINE { - FLOAT width; - FLOAT thickness; - FLOAT offset; - FLOAT runHeight; - DWRITE_READING_DIRECTION readingDirection; - DWRITE_FLOW_DIRECTION flowDirection; - const WCHAR *localeName; - DWRITE_MEASURING_MODE measuringMode; + FLOAT width; + FLOAT thickness; + FLOAT offset; + FLOAT runHeight; + DWRITE_READING_DIRECTION readingDirection; + DWRITE_FLOW_DIRECTION flowDirection; + const WCHAR* localeName; + DWRITE_MEASURING_MODE measuringMode; } DWRITE_UNDERLINE; typedef struct DWRITE_STRIKETHROUGH { - FLOAT width; - FLOAT thickness; - FLOAT offset; - DWRITE_READING_DIRECTION readingDirection; - DWRITE_FLOW_DIRECTION flowDirection; - const WCHAR *localeName; - DWRITE_MEASURING_MODE measuringMode; + FLOAT width; + FLOAT thickness; + FLOAT offset; + DWRITE_READING_DIRECTION readingDirection; + DWRITE_FLOW_DIRECTION flowDirection; + const WCHAR* localeName; + DWRITE_MEASURING_MODE measuringMode; } DWRITE_STRIKETHROUGH; typedef struct DWRITE_INLINE_OBJECT_METRICS { - FLOAT width; - FLOAT height; - FLOAT baseline; - WINBOOL supportsSideways; + FLOAT width; + FLOAT height; + FLOAT baseline; + WINBOOL supportsSideways; } DWRITE_INLINE_OBJECT_METRICS; typedef struct DWRITE_OVERHANG_METRICS { - FLOAT left; - FLOAT top; - FLOAT right; - FLOAT bottom; + FLOAT left; + FLOAT top; + FLOAT right; + FLOAT bottom; } DWRITE_OVERHANG_METRICS; typedef struct DWRITE_FONT_FEATURE { - DWRITE_FONT_FEATURE_TAG nameTag; - UINT32 parameter; + DWRITE_FONT_FEATURE_TAG nameTag; + UINT32 parameter; } DWRITE_FONT_FEATURE; typedef struct DWRITE_TEXT_RANGE { - UINT32 startPosition; - UINT32 length; + UINT32 startPosition; + UINT32 length; } DWRITE_TEXT_RANGE; typedef struct DWRITE_LINE_METRICS { - UINT32 length; - UINT32 trailingWhitespaceLength; - UINT32 newlineLength; - FLOAT height; - FLOAT baseline; - WINBOOL isTrimmed; + UINT32 length; + UINT32 trailingWhitespaceLength; + UINT32 newlineLength; + FLOAT height; + FLOAT baseline; + WINBOOL isTrimmed; } DWRITE_LINE_METRICS; typedef struct DWRITE_TEXT_METRICS { - FLOAT left; - FLOAT top; - FLOAT width; - FLOAT widthIncludingTrailingWhitespace; - FLOAT height; - FLOAT layoutWidth; - FLOAT layoutHeight; - UINT32 maxBidiReorderingDepth; - UINT32 lineCount; + FLOAT left; + FLOAT top; + FLOAT width; + FLOAT widthIncludingTrailingWhitespace; + FLOAT height; + FLOAT layoutWidth; + FLOAT layoutHeight; + UINT32 maxBidiReorderingDepth; + UINT32 lineCount; } DWRITE_TEXT_METRICS; typedef struct DWRITE_CLUSTER_METRICS { - FLOAT width; - UINT16 length; - UINT16 canWrapLineAfter : 1; - UINT16 isWhitespace : 1; - UINT16 isNewline : 1; - UINT16 isSoftHyphen : 1; - UINT16 isRightToLeft : 1; - UINT16 padding : 11; + FLOAT width; + UINT16 length; + UINT16 canWrapLineAfter : 1; + UINT16 isWhitespace : 1; + UINT16 isNewline : 1; + UINT16 isSoftHyphen : 1; + UINT16 isRightToLeft : 1; + UINT16 padding : 11; } DWRITE_CLUSTER_METRICS; typedef struct DWRITE_HIT_TEST_METRICS { - UINT32 textPosition; - UINT32 length; - FLOAT left; - FLOAT top; - FLOAT width; - FLOAT height; - UINT32 bidiLevel; - WINBOOL isText; - WINBOOL isTrimmed; + UINT32 textPosition; + UINT32 length; + FLOAT left; + FLOAT top; + FLOAT width; + FLOAT height; + UINT32 bidiLevel; + WINBOOL isText; + WINBOOL isTrimmed; } DWRITE_HIT_TEST_METRICS; typedef struct DWRITE_SCRIPT_ANALYSIS { - UINT16 script; - DWRITE_SCRIPT_SHAPES shapes; + UINT16 script; + DWRITE_SCRIPT_SHAPES shapes; } DWRITE_SCRIPT_ANALYSIS; typedef struct DWRITE_LINE_BREAKPOINT { - UINT8 breakConditionBefore : 2; - UINT8 breakConditionAfter : 2; - UINT8 isWhitespace : 1; - UINT8 isSoftHyphen : 1; - UINT8 padding : 2; + UINT8 breakConditionBefore : 2; + UINT8 breakConditionAfter : 2; + UINT8 isWhitespace : 1; + UINT8 isSoftHyphen : 1; + UINT8 padding : 2; } DWRITE_LINE_BREAKPOINT; typedef struct DWRITE_TYPOGRAPHIC_FEATURES { - DWRITE_FONT_FEATURE *features; - UINT32 featureCount; + DWRITE_FONT_FEATURE* features; + UINT32 featureCount; } DWRITE_TYPOGRAPHIC_FEATURES; typedef struct DWRITE_SHAPING_TEXT_PROPERTIES { - UINT16 isShapedAlone : 1; - UINT16 reserved1 : 1; - UINT16 canBreakShapingAfter : 1; - UINT16 reserved : 13; + UINT16 isShapedAlone : 1; + UINT16 reserved1 : 1; + UINT16 canBreakShapingAfter : 1; + UINT16 reserved : 13; } DWRITE_SHAPING_TEXT_PROPERTIES; typedef struct DWRITE_SHAPING_GLYPH_PROPERTIES { - UINT16 justification : 4; - UINT16 isClusterStart : 1; - UINT16 isDiacritic : 1; - UINT16 isZeroWidthSpace : 1; - UINT16 reserved : 9; + UINT16 justification : 4; + UINT16 isClusterStart : 1; + UINT16 isDiacritic : 1; + UINT16 isZeroWidthSpace : 1; + UINT16 reserved : 9; } DWRITE_SHAPING_GLYPH_PROPERTIES; /***************************************************************************** * IDWriteFontFileStream interface @@ -740,115 +739,112 @@ typedef struct DWRITE_SHAPING_GLYPH_PROPERTIES { #ifndef __IDWriteFontFileStream_INTERFACE_DEFINED__ #define __IDWriteFontFileStream_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontFileStream, 0x6d4865fe, 0x0ab8, 0x4d91, 0x8f,0x62, 0x5d,0xd6,0xbe,0x34,0xa3,0xe0); +DEFINE_GUID(IID_IDWriteFontFileStream, 0x6d4865fe, 0x0ab8, 0x4d91, 0x8f, 0x62, 0x5d, 0xd6, 0xbe, 0x34, 0xa3, 0xe0); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("6d4865fe-0ab8-4d91-8f62-5dd6be34a3e0") -IDWriteFontFileStream : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE ReadFileFragment( - const void **fragment_start, - UINT64 offset, - UINT64 fragment_size, - void **fragment_context) = 0; +IDWriteFontFileStream : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE ReadFileFragment( + const void** fragment_start, + UINT64 offset, + UINT64 fragment_size, + void** fragment_context) = 0; - virtual void STDMETHODCALLTYPE ReleaseFileFragment( - void *fragment_context) = 0; + virtual void STDMETHODCALLTYPE ReleaseFileFragment( + void* fragment_context) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFileSize( - UINT64 *size) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLastWriteTime( - UINT64 *last_writetime) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFileSize( + UINT64 * size) = 0; + virtual HRESULT STDMETHODCALLTYPE GetLastWriteTime( + UINT64 * last_writetime) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFileStream, 0x6d4865fe, 0x0ab8, 0x4d91, 0x8f,0x62, 0x5d,0xd6,0xbe,0x34,0xa3,0xe0) +__CRT_UUID_DECL(IDWriteFontFileStream, 0x6d4865fe, 0x0ab8, 0x4d91, 0x8f, 0x62, 0x5d, 0xd6, 0xbe, 0x34, 0xa3, 0xe0) #endif #else typedef struct IDWriteFontFileStreamVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontFileStream *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontFileStream* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontFileStream *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontFileStream* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontFileStream *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontFileStream* This); - /*** IDWriteFontFileStream methods ***/ - HRESULT (STDMETHODCALLTYPE *ReadFileFragment)( - IDWriteFontFileStream *This, - const void **fragment_start, - UINT64 offset, - UINT64 fragment_size, - void **fragment_context); + /*** IDWriteFontFileStream methods ***/ + HRESULT(STDMETHODCALLTYPE* ReadFileFragment)( + IDWriteFontFileStream* This, + const void** fragment_start, + UINT64 offset, + UINT64 fragment_size, + void** fragment_context); - void (STDMETHODCALLTYPE *ReleaseFileFragment)( - IDWriteFontFileStream *This, - void *fragment_context); + void(STDMETHODCALLTYPE* ReleaseFileFragment)( + IDWriteFontFileStream* This, + void* fragment_context); - HRESULT (STDMETHODCALLTYPE *GetFileSize)( - IDWriteFontFileStream *This, - UINT64 *size); + HRESULT(STDMETHODCALLTYPE* GetFileSize)( + IDWriteFontFileStream* This, + UINT64* size); - HRESULT (STDMETHODCALLTYPE *GetLastWriteTime)( - IDWriteFontFileStream *This, - UINT64 *last_writetime); + HRESULT(STDMETHODCALLTYPE* GetLastWriteTime)( + IDWriteFontFileStream* This, + UINT64* last_writetime); - END_INTERFACE + END_INTERFACE } IDWriteFontFileStreamVtbl; interface IDWriteFontFileStream { - CONST_VTBL IDWriteFontFileStreamVtbl* lpVtbl; + CONST_VTBL IDWriteFontFileStreamVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFileStream_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontFileStream_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontFileStream_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontFileStream methods ***/ -#define IDWriteFontFileStream_ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context) (This)->lpVtbl->ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context) -#define IDWriteFontFileStream_ReleaseFileFragment(This,fragment_context) (This)->lpVtbl->ReleaseFileFragment(This,fragment_context) -#define IDWriteFontFileStream_GetFileSize(This,size) (This)->lpVtbl->GetFileSize(This,size) -#define IDWriteFontFileStream_GetLastWriteTime(This,last_writetime) (This)->lpVtbl->GetLastWriteTime(This,last_writetime) +#define IDWriteFontFileStream_ReadFileFragment(This, fragment_start, offset, fragment_size, fragment_context) (This)->lpVtbl->ReadFileFragment(This, fragment_start, offset, fragment_size, fragment_context) +#define IDWriteFontFileStream_ReleaseFileFragment(This, fragment_context) (This)->lpVtbl->ReleaseFileFragment(This, fragment_context) +#define IDWriteFontFileStream_GetFileSize(This, size) (This)->lpVtbl->GetFileSize(This, size) +#define IDWriteFontFileStream_GetLastWriteTime(This, last_writetime) (This)->lpVtbl->GetLastWriteTime(This, last_writetime) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFileStream_QueryInterface(IDWriteFontFileStream* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontFileStream_QueryInterface(IDWriteFontFileStream* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontFileStream_AddRef(IDWriteFontFileStream* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontFileStream_Release(IDWriteFontFileStream* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontFileStream methods ***/ -static inline HRESULT IDWriteFontFileStream_ReadFileFragment(IDWriteFontFileStream* This,const void **fragment_start,UINT64 offset,UINT64 fragment_size,void **fragment_context) { - return This->lpVtbl->ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context); +static inline HRESULT IDWriteFontFileStream_ReadFileFragment(IDWriteFontFileStream* This, const void** fragment_start, UINT64 offset, UINT64 fragment_size, void** fragment_context) { + return This->lpVtbl->ReadFileFragment(This, fragment_start, offset, fragment_size, fragment_context); } -static inline void IDWriteFontFileStream_ReleaseFileFragment(IDWriteFontFileStream* This,void *fragment_context) { - This->lpVtbl->ReleaseFileFragment(This,fragment_context); +static inline void IDWriteFontFileStream_ReleaseFileFragment(IDWriteFontFileStream* This, void* fragment_context) { + This->lpVtbl->ReleaseFileFragment(This, fragment_context); } -static inline HRESULT IDWriteFontFileStream_GetFileSize(IDWriteFontFileStream* This,UINT64 *size) { - return This->lpVtbl->GetFileSize(This,size); +static inline HRESULT IDWriteFontFileStream_GetFileSize(IDWriteFontFileStream* This, UINT64* size) { + return This->lpVtbl->GetFileSize(This, size); } -static inline HRESULT IDWriteFontFileStream_GetLastWriteTime(IDWriteFontFileStream* This,UINT64 *last_writetime) { - return This->lpVtbl->GetLastWriteTime(This,last_writetime); +static inline HRESULT IDWriteFontFileStream_GetLastWriteTime(IDWriteFontFileStream* This, UINT64* last_writetime) { + return This->lpVtbl->GetLastWriteTime(This, last_writetime); } #endif #endif #endif - -#endif /* __IDWriteFontFileStream_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontFileStream_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontFileLoader interface @@ -856,80 +852,77 @@ static inline HRESULT IDWriteFontFileStream_GetLastWriteTime(IDWriteFontFileStre #ifndef __IDWriteFontFileLoader_INTERFACE_DEFINED__ #define __IDWriteFontFileLoader_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontFileLoader, 0x727cad4e, 0xd6af, 0x4c9e, 0x8a,0x08, 0xd6,0x95,0xb1,0x1c,0xaa,0x49); +DEFINE_GUID(IID_IDWriteFontFileLoader, 0x727cad4e, 0xd6af, 0x4c9e, 0x8a, 0x08, 0xd6, 0x95, 0xb1, 0x1c, 0xaa, 0x49); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("727cad4e-d6af-4c9e-8a08-d695b11caa49") -IDWriteFontFileLoader : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE CreateStreamFromKey( - const void *key, - UINT32 key_size, - IDWriteFontFileStream **stream) = 0; - +IDWriteFontFileLoader : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE CreateStreamFromKey( + const void* key, + UINT32 key_size, + IDWriteFontFileStream** stream) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFileLoader, 0x727cad4e, 0xd6af, 0x4c9e, 0x8a,0x08, 0xd6,0x95,0xb1,0x1c,0xaa,0x49) +__CRT_UUID_DECL(IDWriteFontFileLoader, 0x727cad4e, 0xd6af, 0x4c9e, 0x8a, 0x08, 0xd6, 0x95, 0xb1, 0x1c, 0xaa, 0x49) #endif #else typedef struct IDWriteFontFileLoaderVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontFileLoader *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontFileLoader* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontFileLoader *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontFileLoader* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontFileLoader *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontFileLoader* This); - /*** IDWriteFontFileLoader methods ***/ - HRESULT (STDMETHODCALLTYPE *CreateStreamFromKey)( - IDWriteFontFileLoader *This, - const void *key, - UINT32 key_size, - IDWriteFontFileStream **stream); + /*** IDWriteFontFileLoader methods ***/ + HRESULT(STDMETHODCALLTYPE* CreateStreamFromKey)( + IDWriteFontFileLoader* This, + const void* key, + UINT32 key_size, + IDWriteFontFileStream** stream); - END_INTERFACE + END_INTERFACE } IDWriteFontFileLoaderVtbl; interface IDWriteFontFileLoader { - CONST_VTBL IDWriteFontFileLoaderVtbl* lpVtbl; + CONST_VTBL IDWriteFontFileLoaderVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFileLoader_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontFileLoader_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontFileLoader methods ***/ -#define IDWriteFontFileLoader_CreateStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateStreamFromKey(This,key,key_size,stream) +#define IDWriteFontFileLoader_CreateStreamFromKey(This, key, key_size, stream) (This)->lpVtbl->CreateStreamFromKey(This, key, key_size, stream) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFileLoader_QueryInterface(IDWriteFontFileLoader* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontFileLoader_QueryInterface(IDWriteFontFileLoader* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontFileLoader_AddRef(IDWriteFontFileLoader* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontFileLoader_Release(IDWriteFontFileLoader* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontFileLoader methods ***/ -static inline HRESULT IDWriteFontFileLoader_CreateStreamFromKey(IDWriteFontFileLoader* This,const void *key,UINT32 key_size,IDWriteFontFileStream **stream) { - return This->lpVtbl->CreateStreamFromKey(This,key,key_size,stream); +static inline HRESULT IDWriteFontFileLoader_CreateStreamFromKey(IDWriteFontFileLoader* This, const void* key, UINT32 key_size, IDWriteFontFileStream** stream) { + return This->lpVtbl->CreateStreamFromKey(This, key, key_size, stream); } #endif #endif #endif - -#endif /* __IDWriteFontFileLoader_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontFileLoader_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteLocalFontFileLoader interface @@ -937,125 +930,122 @@ static inline HRESULT IDWriteFontFileLoader_CreateStreamFromKey(IDWriteFontFileL #ifndef __IDWriteLocalFontFileLoader_INTERFACE_DEFINED__ #define __IDWriteLocalFontFileLoader_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteLocalFontFileLoader, 0xb2d9f3ec, 0xc9fe, 0x4a11, 0xa2,0xec, 0xd8,0x62,0x08,0xf7,0xc0,0xa2); +DEFINE_GUID(IID_IDWriteLocalFontFileLoader, 0xb2d9f3ec, 0xc9fe, 0x4a11, 0xa2, 0xec, 0xd8, 0x62, 0x08, 0xf7, 0xc0, 0xa2); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("b2d9f3ec-c9fe-4a11-a2ec-d86208f7c0a2") -IDWriteLocalFontFileLoader : public IDWriteFontFileLoader -{ - virtual HRESULT STDMETHODCALLTYPE GetFilePathLengthFromKey( - const void *key, - UINT32 key_size, - UINT32 *length) = 0; +IDWriteLocalFontFileLoader : public IDWriteFontFileLoader { + virtual HRESULT STDMETHODCALLTYPE GetFilePathLengthFromKey( + const void* key, + UINT32 key_size, + UINT32* length) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFilePathFromKey( - const void *key, - UINT32 key_size, - WCHAR *path, - UINT32 length) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLastWriteTimeFromKey( - const void *key, - UINT32 key_size, - FILETIME *writetime) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFilePathFromKey( + const void* key, + UINT32 key_size, + WCHAR* path, + UINT32 length) = 0; + virtual HRESULT STDMETHODCALLTYPE GetLastWriteTimeFromKey( + const void* key, + UINT32 key_size, + FILETIME* writetime) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteLocalFontFileLoader, 0xb2d9f3ec, 0xc9fe, 0x4a11, 0xa2,0xec, 0xd8,0x62,0x08,0xf7,0xc0,0xa2) +__CRT_UUID_DECL(IDWriteLocalFontFileLoader, 0xb2d9f3ec, 0xc9fe, 0x4a11, 0xa2, 0xec, 0xd8, 0x62, 0x08, 0xf7, 0xc0, 0xa2) #endif #else typedef struct IDWriteLocalFontFileLoaderVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteLocalFontFileLoader *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteLocalFontFileLoader* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteLocalFontFileLoader *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteLocalFontFileLoader* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteLocalFontFileLoader *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteLocalFontFileLoader* This); - /*** IDWriteFontFileLoader methods ***/ - HRESULT (STDMETHODCALLTYPE *CreateStreamFromKey)( - IDWriteLocalFontFileLoader *This, - const void *key, - UINT32 key_size, - IDWriteFontFileStream **stream); + /*** IDWriteFontFileLoader methods ***/ + HRESULT(STDMETHODCALLTYPE* CreateStreamFromKey)( + IDWriteLocalFontFileLoader* This, + const void* key, + UINT32 key_size, + IDWriteFontFileStream** stream); - /*** IDWriteLocalFontFileLoader methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFilePathLengthFromKey)( - IDWriteLocalFontFileLoader *This, - const void *key, - UINT32 key_size, - UINT32 *length); + /*** IDWriteLocalFontFileLoader methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFilePathLengthFromKey)( + IDWriteLocalFontFileLoader* This, + const void* key, + UINT32 key_size, + UINT32* length); - HRESULT (STDMETHODCALLTYPE *GetFilePathFromKey)( - IDWriteLocalFontFileLoader *This, - const void *key, - UINT32 key_size, - WCHAR *path, - UINT32 length); + HRESULT(STDMETHODCALLTYPE* GetFilePathFromKey)( + IDWriteLocalFontFileLoader* This, + const void* key, + UINT32 key_size, + WCHAR* path, + UINT32 length); - HRESULT (STDMETHODCALLTYPE *GetLastWriteTimeFromKey)( - IDWriteLocalFontFileLoader *This, - const void *key, - UINT32 key_size, - FILETIME *writetime); + HRESULT(STDMETHODCALLTYPE* GetLastWriteTimeFromKey)( + IDWriteLocalFontFileLoader* This, + const void* key, + UINT32 key_size, + FILETIME* writetime); - END_INTERFACE + END_INTERFACE } IDWriteLocalFontFileLoaderVtbl; interface IDWriteLocalFontFileLoader { - CONST_VTBL IDWriteLocalFontFileLoaderVtbl* lpVtbl; + CONST_VTBL IDWriteLocalFontFileLoaderVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteLocalFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteLocalFontFileLoader_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteLocalFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteLocalFontFileLoader_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontFileLoader methods ***/ -#define IDWriteLocalFontFileLoader_CreateStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateStreamFromKey(This,key,key_size,stream) +#define IDWriteLocalFontFileLoader_CreateStreamFromKey(This, key, key_size, stream) (This)->lpVtbl->CreateStreamFromKey(This, key, key_size, stream) /*** IDWriteLocalFontFileLoader methods ***/ -#define IDWriteLocalFontFileLoader_GetFilePathLengthFromKey(This,key,key_size,length) (This)->lpVtbl->GetFilePathLengthFromKey(This,key,key_size,length) -#define IDWriteLocalFontFileLoader_GetFilePathFromKey(This,key,key_size,path,length) (This)->lpVtbl->GetFilePathFromKey(This,key,key_size,path,length) -#define IDWriteLocalFontFileLoader_GetLastWriteTimeFromKey(This,key,key_size,writetime) (This)->lpVtbl->GetLastWriteTimeFromKey(This,key,key_size,writetime) +#define IDWriteLocalFontFileLoader_GetFilePathLengthFromKey(This, key, key_size, length) (This)->lpVtbl->GetFilePathLengthFromKey(This, key, key_size, length) +#define IDWriteLocalFontFileLoader_GetFilePathFromKey(This, key, key_size, path, length) (This)->lpVtbl->GetFilePathFromKey(This, key, key_size, path, length) +#define IDWriteLocalFontFileLoader_GetLastWriteTimeFromKey(This, key, key_size, writetime) (This)->lpVtbl->GetLastWriteTimeFromKey(This, key, key_size, writetime) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteLocalFontFileLoader_QueryInterface(IDWriteLocalFontFileLoader* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteLocalFontFileLoader_QueryInterface(IDWriteLocalFontFileLoader* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteLocalFontFileLoader_AddRef(IDWriteLocalFontFileLoader* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteLocalFontFileLoader_Release(IDWriteLocalFontFileLoader* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontFileLoader methods ***/ -static inline HRESULT IDWriteLocalFontFileLoader_CreateStreamFromKey(IDWriteLocalFontFileLoader* This,const void *key,UINT32 key_size,IDWriteFontFileStream **stream) { - return This->lpVtbl->CreateStreamFromKey(This,key,key_size,stream); +static inline HRESULT IDWriteLocalFontFileLoader_CreateStreamFromKey(IDWriteLocalFontFileLoader* This, const void* key, UINT32 key_size, IDWriteFontFileStream** stream) { + return This->lpVtbl->CreateStreamFromKey(This, key, key_size, stream); } /*** IDWriteLocalFontFileLoader methods ***/ -static inline HRESULT IDWriteLocalFontFileLoader_GetFilePathLengthFromKey(IDWriteLocalFontFileLoader* This,const void *key,UINT32 key_size,UINT32 *length) { - return This->lpVtbl->GetFilePathLengthFromKey(This,key,key_size,length); +static inline HRESULT IDWriteLocalFontFileLoader_GetFilePathLengthFromKey(IDWriteLocalFontFileLoader* This, const void* key, UINT32 key_size, UINT32* length) { + return This->lpVtbl->GetFilePathLengthFromKey(This, key, key_size, length); } -static inline HRESULT IDWriteLocalFontFileLoader_GetFilePathFromKey(IDWriteLocalFontFileLoader* This,const void *key,UINT32 key_size,WCHAR *path,UINT32 length) { - return This->lpVtbl->GetFilePathFromKey(This,key,key_size,path,length); +static inline HRESULT IDWriteLocalFontFileLoader_GetFilePathFromKey(IDWriteLocalFontFileLoader* This, const void* key, UINT32 key_size, WCHAR* path, UINT32 length) { + return This->lpVtbl->GetFilePathFromKey(This, key, key_size, path, length); } -static inline HRESULT IDWriteLocalFontFileLoader_GetLastWriteTimeFromKey(IDWriteLocalFontFileLoader* This,const void *key,UINT32 key_size,FILETIME *writetime) { - return This->lpVtbl->GetLastWriteTimeFromKey(This,key,key_size,writetime); +static inline HRESULT IDWriteLocalFontFileLoader_GetLastWriteTimeFromKey(IDWriteLocalFontFileLoader* This, const void* key, UINT32 key_size, FILETIME* writetime) { + return This->lpVtbl->GetLastWriteTimeFromKey(This, key, key_size, writetime); } #endif #endif #endif - -#endif /* __IDWriteLocalFontFileLoader_INTERFACE_DEFINED__ */ +#endif /* __IDWriteLocalFontFileLoader_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontFile interface @@ -1063,106 +1053,103 @@ static inline HRESULT IDWriteLocalFontFileLoader_GetLastWriteTimeFromKey(IDWrite #ifndef __IDWriteFontFile_INTERFACE_DEFINED__ #define __IDWriteFontFile_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontFile, 0x739d886a, 0xcef5, 0x47dc, 0x87,0x69, 0x1a,0x8b,0x41,0xbe,0xbb,0xb0); +DEFINE_GUID(IID_IDWriteFontFile, 0x739d886a, 0xcef5, 0x47dc, 0x87, 0x69, 0x1a, 0x8b, 0x41, 0xbe, 0xbb, 0xb0); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("739d886a-cef5-47dc-8769-1a8b41bebbb0") -IDWriteFontFile : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE GetReferenceKey( - const void **key, - UINT32 *key_size) = 0; +IDWriteFontFile : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE GetReferenceKey( + const void** key, + UINT32* key_size) = 0; - virtual HRESULT STDMETHODCALLTYPE GetLoader( - IDWriteFontFileLoader **loader) = 0; - - virtual HRESULT STDMETHODCALLTYPE Analyze( - WINBOOL *is_supported_fonttype, - DWRITE_FONT_FILE_TYPE *file_type, - DWRITE_FONT_FACE_TYPE *face_type, - UINT32 *faces_num) = 0; + virtual HRESULT STDMETHODCALLTYPE GetLoader( + IDWriteFontFileLoader * *loader) = 0; + virtual HRESULT STDMETHODCALLTYPE Analyze( + WINBOOL * is_supported_fonttype, + DWRITE_FONT_FILE_TYPE * file_type, + DWRITE_FONT_FACE_TYPE * face_type, + UINT32 * faces_num) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFile, 0x739d886a, 0xcef5, 0x47dc, 0x87,0x69, 0x1a,0x8b,0x41,0xbe,0xbb,0xb0) +__CRT_UUID_DECL(IDWriteFontFile, 0x739d886a, 0xcef5, 0x47dc, 0x87, 0x69, 0x1a, 0x8b, 0x41, 0xbe, 0xbb, 0xb0) #endif #else typedef struct IDWriteFontFileVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontFile *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontFile* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontFile *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontFile* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontFile *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontFile* This); - /*** IDWriteFontFile methods ***/ - HRESULT (STDMETHODCALLTYPE *GetReferenceKey)( - IDWriteFontFile *This, - const void **key, - UINT32 *key_size); + /*** IDWriteFontFile methods ***/ + HRESULT(STDMETHODCALLTYPE* GetReferenceKey)( + IDWriteFontFile* This, + const void** key, + UINT32* key_size); - HRESULT (STDMETHODCALLTYPE *GetLoader)( - IDWriteFontFile *This, - IDWriteFontFileLoader **loader); + HRESULT(STDMETHODCALLTYPE* GetLoader)( + IDWriteFontFile* This, + IDWriteFontFileLoader** loader); - HRESULT (STDMETHODCALLTYPE *Analyze)( - IDWriteFontFile *This, - WINBOOL *is_supported_fonttype, - DWRITE_FONT_FILE_TYPE *file_type, - DWRITE_FONT_FACE_TYPE *face_type, - UINT32 *faces_num); + HRESULT(STDMETHODCALLTYPE* Analyze)( + IDWriteFontFile* This, + WINBOOL* is_supported_fonttype, + DWRITE_FONT_FILE_TYPE* file_type, + DWRITE_FONT_FACE_TYPE* face_type, + UINT32* faces_num); - END_INTERFACE + END_INTERFACE } IDWriteFontFileVtbl; interface IDWriteFontFile { - CONST_VTBL IDWriteFontFileVtbl* lpVtbl; + CONST_VTBL IDWriteFontFileVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontFile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFile_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontFile_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontFile_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontFile methods ***/ -#define IDWriteFontFile_GetReferenceKey(This,key,key_size) (This)->lpVtbl->GetReferenceKey(This,key,key_size) -#define IDWriteFontFile_GetLoader(This,loader) (This)->lpVtbl->GetLoader(This,loader) -#define IDWriteFontFile_Analyze(This,is_supported_fonttype,file_type,face_type,faces_num) (This)->lpVtbl->Analyze(This,is_supported_fonttype,file_type,face_type,faces_num) +#define IDWriteFontFile_GetReferenceKey(This, key, key_size) (This)->lpVtbl->GetReferenceKey(This, key, key_size) +#define IDWriteFontFile_GetLoader(This, loader) (This)->lpVtbl->GetLoader(This, loader) +#define IDWriteFontFile_Analyze(This, is_supported_fonttype, file_type, face_type, faces_num) (This)->lpVtbl->Analyze(This, is_supported_fonttype, file_type, face_type, faces_num) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFile_QueryInterface(IDWriteFontFile* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontFile_QueryInterface(IDWriteFontFile* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontFile_AddRef(IDWriteFontFile* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontFile_Release(IDWriteFontFile* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontFile methods ***/ -static inline HRESULT IDWriteFontFile_GetReferenceKey(IDWriteFontFile* This,const void **key,UINT32 *key_size) { - return This->lpVtbl->GetReferenceKey(This,key,key_size); +static inline HRESULT IDWriteFontFile_GetReferenceKey(IDWriteFontFile* This, const void** key, UINT32* key_size) { + return This->lpVtbl->GetReferenceKey(This, key, key_size); } -static inline HRESULT IDWriteFontFile_GetLoader(IDWriteFontFile* This,IDWriteFontFileLoader **loader) { - return This->lpVtbl->GetLoader(This,loader); +static inline HRESULT IDWriteFontFile_GetLoader(IDWriteFontFile* This, IDWriteFontFileLoader** loader) { + return This->lpVtbl->GetLoader(This, loader); } -static inline HRESULT IDWriteFontFile_Analyze(IDWriteFontFile* This,WINBOOL *is_supported_fonttype,DWRITE_FONT_FILE_TYPE *file_type,DWRITE_FONT_FACE_TYPE *face_type,UINT32 *faces_num) { - return This->lpVtbl->Analyze(This,is_supported_fonttype,file_type,face_type,faces_num); +static inline HRESULT IDWriteFontFile_Analyze(IDWriteFontFile* This, WINBOOL* is_supported_fonttype, DWRITE_FONT_FILE_TYPE* file_type, DWRITE_FONT_FACE_TYPE* face_type, UINT32* faces_num) { + return This->lpVtbl->Analyze(This, is_supported_fonttype, file_type, face_type, faces_num); } #endif #endif #endif - -#endif /* __IDWriteFontFile_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontFile_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontFileEnumerator interface @@ -1170,87 +1157,84 @@ static inline HRESULT IDWriteFontFile_Analyze(IDWriteFontFile* This,WINBOOL *is_ #ifndef __IDWriteFontFileEnumerator_INTERFACE_DEFINED__ #define __IDWriteFontFileEnumerator_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontFileEnumerator, 0x72755049, 0x5ff7, 0x435d, 0x83,0x48, 0x4b,0xe9,0x7c,0xfa,0x6c,0x7c); +DEFINE_GUID(IID_IDWriteFontFileEnumerator, 0x72755049, 0x5ff7, 0x435d, 0x83, 0x48, 0x4b, 0xe9, 0x7c, 0xfa, 0x6c, 0x7c); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("72755049-5ff7-435d-8348-4be97cfa6c7c") -IDWriteFontFileEnumerator : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE MoveNext( - WINBOOL *has_current_file) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentFontFile( - IDWriteFontFile **font_file) = 0; +IDWriteFontFileEnumerator : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE MoveNext( + WINBOOL * has_current_file) = 0; + virtual HRESULT STDMETHODCALLTYPE GetCurrentFontFile( + IDWriteFontFile * *font_file) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFileEnumerator, 0x72755049, 0x5ff7, 0x435d, 0x83,0x48, 0x4b,0xe9,0x7c,0xfa,0x6c,0x7c) +__CRT_UUID_DECL(IDWriteFontFileEnumerator, 0x72755049, 0x5ff7, 0x435d, 0x83, 0x48, 0x4b, 0xe9, 0x7c, 0xfa, 0x6c, 0x7c) #endif #else typedef struct IDWriteFontFileEnumeratorVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontFileEnumerator *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontFileEnumerator* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontFileEnumerator *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontFileEnumerator* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontFileEnumerator *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontFileEnumerator* This); - /*** IDWriteFontFileEnumerator methods ***/ - HRESULT (STDMETHODCALLTYPE *MoveNext)( - IDWriteFontFileEnumerator *This, - WINBOOL *has_current_file); + /*** IDWriteFontFileEnumerator methods ***/ + HRESULT(STDMETHODCALLTYPE* MoveNext)( + IDWriteFontFileEnumerator* This, + WINBOOL* has_current_file); - HRESULT (STDMETHODCALLTYPE *GetCurrentFontFile)( - IDWriteFontFileEnumerator *This, - IDWriteFontFile **font_file); + HRESULT(STDMETHODCALLTYPE* GetCurrentFontFile)( + IDWriteFontFileEnumerator* This, + IDWriteFontFile** font_file); - END_INTERFACE + END_INTERFACE } IDWriteFontFileEnumeratorVtbl; interface IDWriteFontFileEnumerator { - CONST_VTBL IDWriteFontFileEnumeratorVtbl* lpVtbl; + CONST_VTBL IDWriteFontFileEnumeratorVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontFileEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFileEnumerator_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontFileEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontFileEnumerator_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontFileEnumerator methods ***/ -#define IDWriteFontFileEnumerator_MoveNext(This,has_current_file) (This)->lpVtbl->MoveNext(This,has_current_file) -#define IDWriteFontFileEnumerator_GetCurrentFontFile(This,font_file) (This)->lpVtbl->GetCurrentFontFile(This,font_file) +#define IDWriteFontFileEnumerator_MoveNext(This, has_current_file) (This)->lpVtbl->MoveNext(This, has_current_file) +#define IDWriteFontFileEnumerator_GetCurrentFontFile(This, font_file) (This)->lpVtbl->GetCurrentFontFile(This, font_file) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFileEnumerator_QueryInterface(IDWriteFontFileEnumerator* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontFileEnumerator_QueryInterface(IDWriteFontFileEnumerator* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontFileEnumerator_AddRef(IDWriteFontFileEnumerator* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontFileEnumerator_Release(IDWriteFontFileEnumerator* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontFileEnumerator methods ***/ -static inline HRESULT IDWriteFontFileEnumerator_MoveNext(IDWriteFontFileEnumerator* This,WINBOOL *has_current_file) { - return This->lpVtbl->MoveNext(This,has_current_file); +static inline HRESULT IDWriteFontFileEnumerator_MoveNext(IDWriteFontFileEnumerator* This, WINBOOL* has_current_file) { + return This->lpVtbl->MoveNext(This, has_current_file); } -static inline HRESULT IDWriteFontFileEnumerator_GetCurrentFontFile(IDWriteFontFileEnumerator* This,IDWriteFontFile **font_file) { - return This->lpVtbl->GetCurrentFontFile(This,font_file); +static inline HRESULT IDWriteFontFileEnumerator_GetCurrentFontFile(IDWriteFontFileEnumerator* This, IDWriteFontFile** font_file) { + return This->lpVtbl->GetCurrentFontFile(This, font_file); } #endif #endif #endif - -#endif /* __IDWriteFontFileEnumerator_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontFileEnumerator_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontCollectionLoader interface @@ -1258,82 +1242,79 @@ static inline HRESULT IDWriteFontFileEnumerator_GetCurrentFontFile(IDWriteFontFi #ifndef __IDWriteFontCollectionLoader_INTERFACE_DEFINED__ #define __IDWriteFontCollectionLoader_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontCollectionLoader, 0xcca920e4, 0x52f0, 0x492b, 0xbf,0xa8, 0x29,0xc7,0x2e,0xe0,0xa4,0x68); +DEFINE_GUID(IID_IDWriteFontCollectionLoader, 0xcca920e4, 0x52f0, 0x492b, 0xbf, 0xa8, 0x29, 0xc7, 0x2e, 0xe0, 0xa4, 0x68); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("cca920e4-52f0-492b-bfa8-29c72ee0a468") -IDWriteFontCollectionLoader : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE CreateEnumeratorFromKey( - IDWriteFactory *factory, - const void *key, - UINT32 key_size, - IDWriteFontFileEnumerator **enumerator) = 0; - +IDWriteFontCollectionLoader : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE CreateEnumeratorFromKey( + IDWriteFactory * factory, + const void* key, + UINT32 key_size, + IDWriteFontFileEnumerator** enumerator) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontCollectionLoader, 0xcca920e4, 0x52f0, 0x492b, 0xbf,0xa8, 0x29,0xc7,0x2e,0xe0,0xa4,0x68) +__CRT_UUID_DECL(IDWriteFontCollectionLoader, 0xcca920e4, 0x52f0, 0x492b, 0xbf, 0xa8, 0x29, 0xc7, 0x2e, 0xe0, 0xa4, 0x68) #endif #else typedef struct IDWriteFontCollectionLoaderVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontCollectionLoader *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontCollectionLoader* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontCollectionLoader *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontCollectionLoader* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontCollectionLoader *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontCollectionLoader* This); - /*** IDWriteFontCollectionLoader methods ***/ - HRESULT (STDMETHODCALLTYPE *CreateEnumeratorFromKey)( - IDWriteFontCollectionLoader *This, - IDWriteFactory *factory, - const void *key, - UINT32 key_size, - IDWriteFontFileEnumerator **enumerator); + /*** IDWriteFontCollectionLoader methods ***/ + HRESULT(STDMETHODCALLTYPE* CreateEnumeratorFromKey)( + IDWriteFontCollectionLoader* This, + IDWriteFactory* factory, + const void* key, + UINT32 key_size, + IDWriteFontFileEnumerator** enumerator); - END_INTERFACE + END_INTERFACE } IDWriteFontCollectionLoaderVtbl; interface IDWriteFontCollectionLoader { - CONST_VTBL IDWriteFontCollectionLoaderVtbl* lpVtbl; + CONST_VTBL IDWriteFontCollectionLoaderVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontCollectionLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontCollectionLoader_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontCollectionLoader_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontCollectionLoader_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontCollectionLoader methods ***/ -#define IDWriteFontCollectionLoader_CreateEnumeratorFromKey(This,factory,key,key_size,enumerator) (This)->lpVtbl->CreateEnumeratorFromKey(This,factory,key,key_size,enumerator) +#define IDWriteFontCollectionLoader_CreateEnumeratorFromKey(This, factory, key, key_size, enumerator) (This)->lpVtbl->CreateEnumeratorFromKey(This, factory, key, key_size, enumerator) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontCollectionLoader_QueryInterface(IDWriteFontCollectionLoader* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontCollectionLoader_QueryInterface(IDWriteFontCollectionLoader* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontCollectionLoader_AddRef(IDWriteFontCollectionLoader* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontCollectionLoader_Release(IDWriteFontCollectionLoader* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontCollectionLoader methods ***/ -static inline HRESULT IDWriteFontCollectionLoader_CreateEnumeratorFromKey(IDWriteFontCollectionLoader* This,IDWriteFactory *factory,const void *key,UINT32 key_size,IDWriteFontFileEnumerator **enumerator) { - return This->lpVtbl->CreateEnumeratorFromKey(This,factory,key,key_size,enumerator); +static inline HRESULT IDWriteFontCollectionLoader_CreateEnumeratorFromKey(IDWriteFontCollectionLoader* This, IDWriteFactory* factory, const void* key, UINT32 key_size, IDWriteFontFileEnumerator** enumerator) { + return This->lpVtbl->CreateEnumeratorFromKey(This, factory, key, key_size, enumerator); } #endif #endif #endif - -#endif /* __IDWriteFontCollectionLoader_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontCollectionLoader_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteLocalizedStrings interface @@ -1341,146 +1322,142 @@ static inline HRESULT IDWriteFontCollectionLoader_CreateEnumeratorFromKey(IDWrit #ifndef __IDWriteLocalizedStrings_INTERFACE_DEFINED__ #define __IDWriteLocalizedStrings_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteLocalizedStrings, 0x08256209, 0x099a, 0x4b34, 0xb8,0x6d, 0xc2,0x2b,0x11,0x0e,0x77,0x71); +DEFINE_GUID(IID_IDWriteLocalizedStrings, 0x08256209, 0x099a, 0x4b34, 0xb8, 0x6d, 0xc2, 0x2b, 0x11, 0x0e, 0x77, 0x71); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("08256209-099a-4b34-b86d-c22b110e7771") -IDWriteLocalizedStrings : public IUnknown -{ - virtual UINT32 STDMETHODCALLTYPE GetCount( - ) = 0; +IDWriteLocalizedStrings : public IUnknown { + virtual UINT32 STDMETHODCALLTYPE GetCount() = 0; - virtual HRESULT STDMETHODCALLTYPE FindLocaleName( - const WCHAR *locale_name, - UINT32 *index, - WINBOOL *exists) = 0; + virtual HRESULT STDMETHODCALLTYPE FindLocaleName( + const WCHAR* locale_name, + UINT32* index, + WINBOOL* exists) = 0; - virtual HRESULT STDMETHODCALLTYPE GetLocaleNameLength( - UINT32 index, - UINT32 *length) = 0; + virtual HRESULT STDMETHODCALLTYPE GetLocaleNameLength( + UINT32 index, + UINT32 * length) = 0; - virtual HRESULT STDMETHODCALLTYPE GetLocaleName( - UINT32 index, - WCHAR *locale_name, - UINT32 size) = 0; + virtual HRESULT STDMETHODCALLTYPE GetLocaleName( + UINT32 index, + WCHAR * locale_name, + UINT32 size) = 0; - virtual HRESULT STDMETHODCALLTYPE GetStringLength( - UINT32 index, - UINT32 *length) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetString( - UINT32 index, - WCHAR *buffer, - UINT32 size) = 0; + virtual HRESULT STDMETHODCALLTYPE GetStringLength( + UINT32 index, + UINT32 * length) = 0; + virtual HRESULT STDMETHODCALLTYPE GetString( + UINT32 index, + WCHAR * buffer, + UINT32 size) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteLocalizedStrings, 0x08256209, 0x099a, 0x4b34, 0xb8,0x6d, 0xc2,0x2b,0x11,0x0e,0x77,0x71) +__CRT_UUID_DECL(IDWriteLocalizedStrings, 0x08256209, 0x099a, 0x4b34, 0xb8, 0x6d, 0xc2, 0x2b, 0x11, 0x0e, 0x77, 0x71) #endif #else typedef struct IDWriteLocalizedStringsVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteLocalizedStrings *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteLocalizedStrings* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteLocalizedStrings *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteLocalizedStrings* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteLocalizedStrings *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteLocalizedStrings* This); - /*** IDWriteLocalizedStrings methods ***/ - UINT32 (STDMETHODCALLTYPE *GetCount)( - IDWriteLocalizedStrings *This); + /*** IDWriteLocalizedStrings methods ***/ + UINT32(STDMETHODCALLTYPE* GetCount)( + IDWriteLocalizedStrings* This); - HRESULT (STDMETHODCALLTYPE *FindLocaleName)( - IDWriteLocalizedStrings *This, - const WCHAR *locale_name, - UINT32 *index, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* FindLocaleName)( + IDWriteLocalizedStrings* This, + const WCHAR* locale_name, + UINT32* index, + WINBOOL* exists); - HRESULT (STDMETHODCALLTYPE *GetLocaleNameLength)( - IDWriteLocalizedStrings *This, - UINT32 index, - UINT32 *length); + HRESULT(STDMETHODCALLTYPE* GetLocaleNameLength)( + IDWriteLocalizedStrings* This, + UINT32 index, + UINT32* length); - HRESULT (STDMETHODCALLTYPE *GetLocaleName)( - IDWriteLocalizedStrings *This, - UINT32 index, - WCHAR *locale_name, - UINT32 size); + HRESULT(STDMETHODCALLTYPE* GetLocaleName)( + IDWriteLocalizedStrings* This, + UINT32 index, + WCHAR* locale_name, + UINT32 size); - HRESULT (STDMETHODCALLTYPE *GetStringLength)( - IDWriteLocalizedStrings *This, - UINT32 index, - UINT32 *length); + HRESULT(STDMETHODCALLTYPE* GetStringLength)( + IDWriteLocalizedStrings* This, + UINT32 index, + UINT32* length); - HRESULT (STDMETHODCALLTYPE *GetString)( - IDWriteLocalizedStrings *This, - UINT32 index, - WCHAR *buffer, - UINT32 size); + HRESULT(STDMETHODCALLTYPE* GetString)( + IDWriteLocalizedStrings* This, + UINT32 index, + WCHAR* buffer, + UINT32 size); - END_INTERFACE + END_INTERFACE } IDWriteLocalizedStringsVtbl; interface IDWriteLocalizedStrings { - CONST_VTBL IDWriteLocalizedStringsVtbl* lpVtbl; + CONST_VTBL IDWriteLocalizedStringsVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteLocalizedStrings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteLocalizedStrings_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteLocalizedStrings_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteLocalizedStrings_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteLocalizedStrings methods ***/ #define IDWriteLocalizedStrings_GetCount(This) (This)->lpVtbl->GetCount(This) -#define IDWriteLocalizedStrings_FindLocaleName(This,locale_name,index,exists) (This)->lpVtbl->FindLocaleName(This,locale_name,index,exists) -#define IDWriteLocalizedStrings_GetLocaleNameLength(This,index,length) (This)->lpVtbl->GetLocaleNameLength(This,index,length) -#define IDWriteLocalizedStrings_GetLocaleName(This,index,locale_name,size) (This)->lpVtbl->GetLocaleName(This,index,locale_name,size) -#define IDWriteLocalizedStrings_GetStringLength(This,index,length) (This)->lpVtbl->GetStringLength(This,index,length) -#define IDWriteLocalizedStrings_GetString(This,index,buffer,size) (This)->lpVtbl->GetString(This,index,buffer,size) +#define IDWriteLocalizedStrings_FindLocaleName(This, locale_name, index, exists) (This)->lpVtbl->FindLocaleName(This, locale_name, index, exists) +#define IDWriteLocalizedStrings_GetLocaleNameLength(This, index, length) (This)->lpVtbl->GetLocaleNameLength(This, index, length) +#define IDWriteLocalizedStrings_GetLocaleName(This, index, locale_name, size) (This)->lpVtbl->GetLocaleName(This, index, locale_name, size) +#define IDWriteLocalizedStrings_GetStringLength(This, index, length) (This)->lpVtbl->GetStringLength(This, index, length) +#define IDWriteLocalizedStrings_GetString(This, index, buffer, size) (This)->lpVtbl->GetString(This, index, buffer, size) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteLocalizedStrings_QueryInterface(IDWriteLocalizedStrings* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteLocalizedStrings_QueryInterface(IDWriteLocalizedStrings* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteLocalizedStrings_AddRef(IDWriteLocalizedStrings* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteLocalizedStrings_Release(IDWriteLocalizedStrings* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteLocalizedStrings methods ***/ static inline UINT32 IDWriteLocalizedStrings_GetCount(IDWriteLocalizedStrings* This) { - return This->lpVtbl->GetCount(This); + return This->lpVtbl->GetCount(This); } -static inline HRESULT IDWriteLocalizedStrings_FindLocaleName(IDWriteLocalizedStrings* This,const WCHAR *locale_name,UINT32 *index,WINBOOL *exists) { - return This->lpVtbl->FindLocaleName(This,locale_name,index,exists); +static inline HRESULT IDWriteLocalizedStrings_FindLocaleName(IDWriteLocalizedStrings* This, const WCHAR* locale_name, UINT32* index, WINBOOL* exists) { + return This->lpVtbl->FindLocaleName(This, locale_name, index, exists); } -static inline HRESULT IDWriteLocalizedStrings_GetLocaleNameLength(IDWriteLocalizedStrings* This,UINT32 index,UINT32 *length) { - return This->lpVtbl->GetLocaleNameLength(This,index,length); +static inline HRESULT IDWriteLocalizedStrings_GetLocaleNameLength(IDWriteLocalizedStrings* This, UINT32 index, UINT32* length) { + return This->lpVtbl->GetLocaleNameLength(This, index, length); } -static inline HRESULT IDWriteLocalizedStrings_GetLocaleName(IDWriteLocalizedStrings* This,UINT32 index,WCHAR *locale_name,UINT32 size) { - return This->lpVtbl->GetLocaleName(This,index,locale_name,size); +static inline HRESULT IDWriteLocalizedStrings_GetLocaleName(IDWriteLocalizedStrings* This, UINT32 index, WCHAR* locale_name, UINT32 size) { + return This->lpVtbl->GetLocaleName(This, index, locale_name, size); } -static inline HRESULT IDWriteLocalizedStrings_GetStringLength(IDWriteLocalizedStrings* This,UINT32 index,UINT32 *length) { - return This->lpVtbl->GetStringLength(This,index,length); +static inline HRESULT IDWriteLocalizedStrings_GetStringLength(IDWriteLocalizedStrings* This, UINT32 index, UINT32* length) { + return This->lpVtbl->GetStringLength(This, index, length); } -static inline HRESULT IDWriteLocalizedStrings_GetString(IDWriteLocalizedStrings* This,UINT32 index,WCHAR *buffer,UINT32 size) { - return This->lpVtbl->GetString(This,index,buffer,size); +static inline HRESULT IDWriteLocalizedStrings_GetString(IDWriteLocalizedStrings* This, UINT32 index, WCHAR* buffer, UINT32 size) { + return This->lpVtbl->GetString(This, index, buffer, size); } #endif #endif #endif - -#endif /* __IDWriteLocalizedStrings_INTERFACE_DEFINED__ */ +#endif /* __IDWriteLocalizedStrings_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteRenderingParams interface @@ -1488,73 +1465,66 @@ static inline HRESULT IDWriteLocalizedStrings_GetString(IDWriteLocalizedStrings* #ifndef __IDWriteRenderingParams_INTERFACE_DEFINED__ #define __IDWriteRenderingParams_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteRenderingParams, 0x2f0da53a, 0x2add, 0x47cd, 0x82,0xee, 0xd9,0xec,0x34,0x68,0x8e,0x75); +DEFINE_GUID(IID_IDWriteRenderingParams, 0x2f0da53a, 0x2add, 0x47cd, 0x82, 0xee, 0xd9, 0xec, 0x34, 0x68, 0x8e, 0x75); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("2f0da53a-2add-47cd-82ee-d9ec34688e75") -IDWriteRenderingParams : public IUnknown -{ - virtual FLOAT STDMETHODCALLTYPE GetGamma( - ) = 0; +IDWriteRenderingParams : public IUnknown { + virtual FLOAT STDMETHODCALLTYPE GetGamma() = 0; - virtual FLOAT STDMETHODCALLTYPE GetEnhancedContrast( - ) = 0; + virtual FLOAT STDMETHODCALLTYPE GetEnhancedContrast() = 0; - virtual FLOAT STDMETHODCALLTYPE GetClearTypeLevel( - ) = 0; + virtual FLOAT STDMETHODCALLTYPE GetClearTypeLevel() = 0; - virtual DWRITE_PIXEL_GEOMETRY STDMETHODCALLTYPE GetPixelGeometry( - ) = 0; - - virtual DWRITE_RENDERING_MODE STDMETHODCALLTYPE GetRenderingMode( - ) = 0; + virtual DWRITE_PIXEL_GEOMETRY STDMETHODCALLTYPE GetPixelGeometry() = 0; + virtual DWRITE_RENDERING_MODE STDMETHODCALLTYPE GetRenderingMode() = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteRenderingParams, 0x2f0da53a, 0x2add, 0x47cd, 0x82,0xee, 0xd9,0xec,0x34,0x68,0x8e,0x75) +__CRT_UUID_DECL(IDWriteRenderingParams, 0x2f0da53a, 0x2add, 0x47cd, 0x82, 0xee, 0xd9, 0xec, 0x34, 0x68, 0x8e, 0x75) #endif #else typedef struct IDWriteRenderingParamsVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteRenderingParams *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteRenderingParams* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteRenderingParams *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteRenderingParams* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteRenderingParams *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteRenderingParams* This); - /*** IDWriteRenderingParams methods ***/ - FLOAT (STDMETHODCALLTYPE *GetGamma)( - IDWriteRenderingParams *This); + /*** IDWriteRenderingParams methods ***/ + FLOAT(STDMETHODCALLTYPE* GetGamma)( + IDWriteRenderingParams* This); - FLOAT (STDMETHODCALLTYPE *GetEnhancedContrast)( - IDWriteRenderingParams *This); + FLOAT(STDMETHODCALLTYPE* GetEnhancedContrast)( + IDWriteRenderingParams* This); - FLOAT (STDMETHODCALLTYPE *GetClearTypeLevel)( - IDWriteRenderingParams *This); + FLOAT(STDMETHODCALLTYPE* GetClearTypeLevel)( + IDWriteRenderingParams* This); - DWRITE_PIXEL_GEOMETRY (STDMETHODCALLTYPE *GetPixelGeometry)( - IDWriteRenderingParams *This); + DWRITE_PIXEL_GEOMETRY(STDMETHODCALLTYPE* GetPixelGeometry)( + IDWriteRenderingParams* This); - DWRITE_RENDERING_MODE (STDMETHODCALLTYPE *GetRenderingMode)( - IDWriteRenderingParams *This); + DWRITE_RENDERING_MODE(STDMETHODCALLTYPE* GetRenderingMode)( + IDWriteRenderingParams* This); - END_INTERFACE + END_INTERFACE } IDWriteRenderingParamsVtbl; interface IDWriteRenderingParams { - CONST_VTBL IDWriteRenderingParamsVtbl* lpVtbl; + CONST_VTBL IDWriteRenderingParamsVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteRenderingParams_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteRenderingParams_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteRenderingParams_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteRenderingParams_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteRenderingParams methods ***/ @@ -1565,38 +1535,37 @@ interface IDWriteRenderingParams { #define IDWriteRenderingParams_GetRenderingMode(This) (This)->lpVtbl->GetRenderingMode(This) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteRenderingParams_QueryInterface(IDWriteRenderingParams* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteRenderingParams_QueryInterface(IDWriteRenderingParams* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteRenderingParams_AddRef(IDWriteRenderingParams* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteRenderingParams_Release(IDWriteRenderingParams* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteRenderingParams methods ***/ static inline FLOAT IDWriteRenderingParams_GetGamma(IDWriteRenderingParams* This) { - return This->lpVtbl->GetGamma(This); + return This->lpVtbl->GetGamma(This); } static inline FLOAT IDWriteRenderingParams_GetEnhancedContrast(IDWriteRenderingParams* This) { - return This->lpVtbl->GetEnhancedContrast(This); + return This->lpVtbl->GetEnhancedContrast(This); } static inline FLOAT IDWriteRenderingParams_GetClearTypeLevel(IDWriteRenderingParams* This) { - return This->lpVtbl->GetClearTypeLevel(This); + return This->lpVtbl->GetClearTypeLevel(This); } static inline DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams_GetPixelGeometry(IDWriteRenderingParams* This) { - return This->lpVtbl->GetPixelGeometry(This); + return This->lpVtbl->GetPixelGeometry(This); } static inline DWRITE_RENDERING_MODE IDWriteRenderingParams_GetRenderingMode(IDWriteRenderingParams* This) { - return This->lpVtbl->GetRenderingMode(This); + return This->lpVtbl->GetRenderingMode(This); } #endif #endif #endif - -#endif /* __IDWriteRenderingParams_INTERFACE_DEFINED__ */ +#endif /* __IDWriteRenderingParams_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontFace interface @@ -1604,287 +1573,279 @@ static inline DWRITE_RENDERING_MODE IDWriteRenderingParams_GetRenderingMode(IDWr #ifndef __IDWriteFontFace_INTERFACE_DEFINED__ #define __IDWriteFontFace_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontFace, 0x5f49804d, 0x7024, 0x4d43, 0xbf,0xa9, 0xd2,0x59,0x84,0xf5,0x38,0x49); +DEFINE_GUID(IID_IDWriteFontFace, 0x5f49804d, 0x7024, 0x4d43, 0xbf, 0xa9, 0xd2, 0x59, 0x84, 0xf5, 0x38, 0x49); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("5f49804d-7024-4d43-bfa9-d25984f53849") -IDWriteFontFace : public IUnknown -{ - virtual DWRITE_FONT_FACE_TYPE STDMETHODCALLTYPE GetType( - ) = 0; +IDWriteFontFace : public IUnknown { + virtual DWRITE_FONT_FACE_TYPE STDMETHODCALLTYPE GetType() = 0; - virtual HRESULT STDMETHODCALLTYPE GetFiles( - UINT32 *number_of_files, - IDWriteFontFile **fontfiles) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFiles( + UINT32 * number_of_files, + IDWriteFontFile * *fontfiles) = 0; - virtual UINT32 STDMETHODCALLTYPE GetIndex( - ) = 0; + virtual UINT32 STDMETHODCALLTYPE GetIndex() = 0; - virtual DWRITE_FONT_SIMULATIONS STDMETHODCALLTYPE GetSimulations( - ) = 0; + virtual DWRITE_FONT_SIMULATIONS STDMETHODCALLTYPE GetSimulations() = 0; - virtual WINBOOL STDMETHODCALLTYPE IsSymbolFont( - ) = 0; + virtual WINBOOL STDMETHODCALLTYPE IsSymbolFont() = 0; - virtual void STDMETHODCALLTYPE GetMetrics( - DWRITE_FONT_METRICS *metrics) = 0; + virtual void STDMETHODCALLTYPE GetMetrics( + DWRITE_FONT_METRICS * metrics) = 0; - virtual UINT16 STDMETHODCALLTYPE GetGlyphCount( - ) = 0; + virtual UINT16 STDMETHODCALLTYPE GetGlyphCount() = 0; - virtual HRESULT STDMETHODCALLTYPE GetDesignGlyphMetrics( - const UINT16 *glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS *metrics, - WINBOOL is_sideways = FALSE) = 0; + virtual HRESULT STDMETHODCALLTYPE GetDesignGlyphMetrics( + const UINT16* glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS* metrics, + WINBOOL is_sideways = FALSE) = 0; - virtual HRESULT STDMETHODCALLTYPE GetGlyphIndices( - const UINT32 *codepoints, - UINT32 count, - UINT16 *glyph_indices) = 0; + virtual HRESULT STDMETHODCALLTYPE GetGlyphIndices( + const UINT32* codepoints, + UINT32 count, + UINT16* glyph_indices) = 0; - virtual HRESULT STDMETHODCALLTYPE TryGetFontTable( - UINT32 table_tag, - const void **table_data, - UINT32 *table_size, - void **context, - WINBOOL *exists) = 0; + virtual HRESULT STDMETHODCALLTYPE TryGetFontTable( + UINT32 table_tag, + const void** table_data, + UINT32* table_size, + void** context, + WINBOOL* exists) = 0; - virtual void STDMETHODCALLTYPE ReleaseFontTable( - void *table_context) = 0; + virtual void STDMETHODCALLTYPE ReleaseFontTable( + void* table_context) = 0; - virtual HRESULT STDMETHODCALLTYPE GetGlyphRunOutline( - FLOAT emSize, - const UINT16 *glyph_indices, - const FLOAT *glyph_advances, - const DWRITE_GLYPH_OFFSET *glyph_offsets, - UINT32 glyph_count, - WINBOOL is_sideways, - WINBOOL is_rtl, - IDWriteGeometrySink *geometrysink) = 0; + virtual HRESULT STDMETHODCALLTYPE GetGlyphRunOutline( + FLOAT emSize, + const UINT16* glyph_indices, + const FLOAT* glyph_advances, + const DWRITE_GLYPH_OFFSET* glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink* geometrysink) = 0; - virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode( - FLOAT emSize, - FLOAT pixels_per_dip, - DWRITE_MEASURING_MODE mode, - IDWriteRenderingParams *params, - DWRITE_RENDERING_MODE *rendering_mode) = 0; + virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode( + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams * params, + DWRITE_RENDERING_MODE * rendering_mode) = 0; - virtual HRESULT STDMETHODCALLTYPE GetGdiCompatibleMetrics( - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_FONT_METRICS *metrics) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGdiCompatibleGlyphMetrics( - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - const UINT16 *glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS *metrics, - WINBOOL is_sideways = FALSE) = 0; + virtual HRESULT STDMETHODCALLTYPE GetGdiCompatibleMetrics( + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_FONT_METRICS* metrics) = 0; + virtual HRESULT STDMETHODCALLTYPE GetGdiCompatibleGlyphMetrics( + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + const UINT16* glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS* metrics, + WINBOOL is_sideways = FALSE) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFace, 0x5f49804d, 0x7024, 0x4d43, 0xbf,0xa9, 0xd2,0x59,0x84,0xf5,0x38,0x49) +__CRT_UUID_DECL(IDWriteFontFace, 0x5f49804d, 0x7024, 0x4d43, 0xbf, 0xa9, 0xd2, 0x59, 0x84, 0xf5, 0x38, 0x49) #endif #else typedef struct IDWriteFontFaceVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontFace *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontFace* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontFace *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontFace* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontFace *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontFace* This); - /*** IDWriteFontFace methods ***/ - DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( - IDWriteFontFace *This); + /*** IDWriteFontFace methods ***/ + DWRITE_FONT_FACE_TYPE(STDMETHODCALLTYPE* GetType)( + IDWriteFontFace* This); - HRESULT (STDMETHODCALLTYPE *GetFiles)( - IDWriteFontFace *This, - UINT32 *number_of_files, - IDWriteFontFile **fontfiles); + HRESULT(STDMETHODCALLTYPE* GetFiles)( + IDWriteFontFace* This, + UINT32* number_of_files, + IDWriteFontFile** fontfiles); - UINT32 (STDMETHODCALLTYPE *GetIndex)( - IDWriteFontFace *This); + UINT32(STDMETHODCALLTYPE* GetIndex)( + IDWriteFontFace* This); - DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( - IDWriteFontFace *This); + DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( + IDWriteFontFace* This); - WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( - IDWriteFontFace *This); + WINBOOL(STDMETHODCALLTYPE* IsSymbolFont)( + IDWriteFontFace* This); - void (STDMETHODCALLTYPE *GetMetrics)( - IDWriteFontFace *This, - DWRITE_FONT_METRICS *metrics); + void(STDMETHODCALLTYPE* GetMetrics)( + IDWriteFontFace* This, + DWRITE_FONT_METRICS* metrics); - UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( - IDWriteFontFace *This); + UINT16(STDMETHODCALLTYPE* GetGlyphCount)( + IDWriteFontFace* This); - HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( - IDWriteFontFace *This, - const UINT16 *glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS *metrics, - WINBOOL is_sideways); + HRESULT(STDMETHODCALLTYPE* GetDesignGlyphMetrics)( + IDWriteFontFace* This, + const UINT16* glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS* metrics, + WINBOOL is_sideways); - HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( - IDWriteFontFace *This, - const UINT32 *codepoints, - UINT32 count, - UINT16 *glyph_indices); + HRESULT(STDMETHODCALLTYPE* GetGlyphIndices)( + IDWriteFontFace* This, + const UINT32* codepoints, + UINT32 count, + UINT16* glyph_indices); - HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( - IDWriteFontFace *This, - UINT32 table_tag, - const void **table_data, - UINT32 *table_size, - void **context, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* TryGetFontTable)( + IDWriteFontFace* This, + UINT32 table_tag, + const void** table_data, + UINT32* table_size, + void** context, + WINBOOL* exists); - void (STDMETHODCALLTYPE *ReleaseFontTable)( - IDWriteFontFace *This, - void *table_context); + void(STDMETHODCALLTYPE* ReleaseFontTable)( + IDWriteFontFace* This, + void* table_context); - HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( - IDWriteFontFace *This, - FLOAT emSize, - const UINT16 *glyph_indices, - const FLOAT *glyph_advances, - const DWRITE_GLYPH_OFFSET *glyph_offsets, - UINT32 glyph_count, - WINBOOL is_sideways, - WINBOOL is_rtl, - IDWriteGeometrySink *geometrysink); + HRESULT(STDMETHODCALLTYPE* GetGlyphRunOutline)( + IDWriteFontFace* This, + FLOAT emSize, + const UINT16* glyph_indices, + const FLOAT* glyph_advances, + const DWRITE_GLYPH_OFFSET* glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink* geometrysink); - HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( - IDWriteFontFace *This, - FLOAT emSize, - FLOAT pixels_per_dip, - DWRITE_MEASURING_MODE mode, - IDWriteRenderingParams *params, - DWRITE_RENDERING_MODE *rendering_mode); + HRESULT(STDMETHODCALLTYPE* GetRecommendedRenderingMode)( + IDWriteFontFace* This, + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams* params, + DWRITE_RENDERING_MODE* rendering_mode); - HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( - IDWriteFontFace *This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_FONT_METRICS *metrics); + HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleMetrics)( + IDWriteFontFace* This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_FONT_METRICS* metrics); - HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( - IDWriteFontFace *This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - const UINT16 *glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS *metrics, - WINBOOL is_sideways); + HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphMetrics)( + IDWriteFontFace* This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + const UINT16* glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS* metrics, + WINBOOL is_sideways); - END_INTERFACE + END_INTERFACE } IDWriteFontFaceVtbl; interface IDWriteFontFace { - CONST_VTBL IDWriteFontFaceVtbl* lpVtbl; + CONST_VTBL IDWriteFontFaceVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontFace_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFace_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontFace_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontFace_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontFace methods ***/ #define IDWriteFontFace_GetType(This) (This)->lpVtbl->GetType(This) -#define IDWriteFontFace_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) +#define IDWriteFontFace_GetFiles(This, number_of_files, fontfiles) (This)->lpVtbl->GetFiles(This, number_of_files, fontfiles) #define IDWriteFontFace_GetIndex(This) (This)->lpVtbl->GetIndex(This) #define IDWriteFontFace_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) #define IDWriteFontFace_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) -#define IDWriteFontFace_GetMetrics(This,metrics) (This)->lpVtbl->GetMetrics(This,metrics) +#define IDWriteFontFace_GetMetrics(This, metrics) (This)->lpVtbl->GetMetrics(This, metrics) #define IDWriteFontFace_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) -#define IDWriteFontFace_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) -#define IDWriteFontFace_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) -#define IDWriteFontFace_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) -#define IDWriteFontFace_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) -#define IDWriteFontFace_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) -#define IDWriteFontFace_GetRecommendedRenderingMode(This,emSize,pixels_per_dip,mode,params,rendering_mode) (This)->lpVtbl->GetRecommendedRenderingMode(This,emSize,pixels_per_dip,mode,params,rendering_mode) -#define IDWriteFontFace_GetGdiCompatibleMetrics(This,emSize,pixels_per_dip,transform,metrics) (This)->lpVtbl->GetGdiCompatibleMetrics(This,emSize,pixels_per_dip,transform,metrics) -#define IDWriteFontFace_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) +#define IDWriteFontFace_GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) +#define IDWriteFontFace_GetGlyphIndices(This, codepoints, count, glyph_indices) (This)->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices) +#define IDWriteFontFace_TryGetFontTable(This, table_tag, table_data, table_size, context, exists) (This)->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists) +#define IDWriteFontFace_ReleaseFontTable(This, table_context) (This)->lpVtbl->ReleaseFontTable(This, table_context) +#define IDWriteFontFace_GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) +#define IDWriteFontFace_GetRecommendedRenderingMode(This, emSize, pixels_per_dip, mode, params, rendering_mode) (This)->lpVtbl->GetRecommendedRenderingMode(This, emSize, pixels_per_dip, mode, params, rendering_mode) +#define IDWriteFontFace_GetGdiCompatibleMetrics(This, emSize, pixels_per_dip, transform, metrics) (This)->lpVtbl->GetGdiCompatibleMetrics(This, emSize, pixels_per_dip, transform, metrics) +#define IDWriteFontFace_GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFace_QueryInterface(IDWriteFontFace* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontFace_QueryInterface(IDWriteFontFace* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontFace_AddRef(IDWriteFontFace* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontFace_Release(IDWriteFontFace* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontFace methods ***/ static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace_GetType(IDWriteFontFace* This) { - return This->lpVtbl->GetType(This); + return This->lpVtbl->GetType(This); } -static inline HRESULT IDWriteFontFace_GetFiles(IDWriteFontFace* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { - return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); +static inline HRESULT IDWriteFontFace_GetFiles(IDWriteFontFace* This, UINT32* number_of_files, IDWriteFontFile** fontfiles) { + return This->lpVtbl->GetFiles(This, number_of_files, fontfiles); } static inline UINT32 IDWriteFontFace_GetIndex(IDWriteFontFace* This) { - return This->lpVtbl->GetIndex(This); + return This->lpVtbl->GetIndex(This); } static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace_GetSimulations(IDWriteFontFace* This) { - return This->lpVtbl->GetSimulations(This); + return This->lpVtbl->GetSimulations(This); } static inline WINBOOL IDWriteFontFace_IsSymbolFont(IDWriteFontFace* This) { - return This->lpVtbl->IsSymbolFont(This); + return This->lpVtbl->IsSymbolFont(This); } -static inline void IDWriteFontFace_GetMetrics(IDWriteFontFace* This,DWRITE_FONT_METRICS *metrics) { - This->lpVtbl->GetMetrics(This,metrics); +static inline void IDWriteFontFace_GetMetrics(IDWriteFontFace* This, DWRITE_FONT_METRICS* metrics) { + This->lpVtbl->GetMetrics(This, metrics); } static inline UINT16 IDWriteFontFace_GetGlyphCount(IDWriteFontFace* This) { - return This->lpVtbl->GetGlyphCount(This); + return This->lpVtbl->GetGlyphCount(This); } -static inline HRESULT IDWriteFontFace_GetDesignGlyphMetrics(IDWriteFontFace* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); +static inline HRESULT IDWriteFontFace_GetDesignGlyphMetrics(IDWriteFontFace* This, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways); } -static inline HRESULT IDWriteFontFace_GetGlyphIndices(IDWriteFontFace* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { - return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); +static inline HRESULT IDWriteFontFace_GetGlyphIndices(IDWriteFontFace* This, const UINT32* codepoints, UINT32 count, UINT16* glyph_indices) { + return This->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices); } -static inline HRESULT IDWriteFontFace_TryGetFontTable(IDWriteFontFace* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { - return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); +static inline HRESULT IDWriteFontFace_TryGetFontTable(IDWriteFontFace* This, UINT32 table_tag, const void** table_data, UINT32* table_size, void** context, WINBOOL* exists) { + return This->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists); } -static inline void IDWriteFontFace_ReleaseFontTable(IDWriteFontFace* This,void *table_context) { - This->lpVtbl->ReleaseFontTable(This,table_context); +static inline void IDWriteFontFace_ReleaseFontTable(IDWriteFontFace* This, void* table_context) { + This->lpVtbl->ReleaseFontTable(This, table_context); } -static inline HRESULT IDWriteFontFace_GetGlyphRunOutline(IDWriteFontFace* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) { - return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); +static inline HRESULT IDWriteFontFace_GetGlyphRunOutline(IDWriteFontFace* This, FLOAT emSize, const UINT16* glyph_indices, const FLOAT* glyph_advances, const DWRITE_GLYPH_OFFSET* glyph_offsets, UINT32 glyph_count, WINBOOL is_sideways, WINBOOL is_rtl, IDWriteGeometrySink* geometrysink) { + return This->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink); } -static inline HRESULT IDWriteFontFace_GetRecommendedRenderingMode(IDWriteFontFace* This,FLOAT emSize,FLOAT pixels_per_dip,DWRITE_MEASURING_MODE mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE *rendering_mode) { - return This->lpVtbl->GetRecommendedRenderingMode(This,emSize,pixels_per_dip,mode,params,rendering_mode); +static inline HRESULT IDWriteFontFace_GetRecommendedRenderingMode(IDWriteFontFace* This, FLOAT emSize, FLOAT pixels_per_dip, DWRITE_MEASURING_MODE mode, IDWriteRenderingParams* params, DWRITE_RENDERING_MODE* rendering_mode) { + return This->lpVtbl->GetRecommendedRenderingMode(This, emSize, pixels_per_dip, mode, params, rendering_mode); } -static inline HRESULT IDWriteFontFace_GetGdiCompatibleMetrics(IDWriteFontFace* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS *metrics) { - return This->lpVtbl->GetGdiCompatibleMetrics(This,emSize,pixels_per_dip,transform,metrics); +static inline HRESULT IDWriteFontFace_GetGdiCompatibleMetrics(IDWriteFontFace* This, FLOAT emSize, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, DWRITE_FONT_METRICS* metrics) { + return This->lpVtbl->GetGdiCompatibleMetrics(This, emSize, pixels_per_dip, transform, metrics); } -static inline HRESULT IDWriteFontFace_GetGdiCompatibleGlyphMetrics(IDWriteFontFace* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { - return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); +static inline HRESULT IDWriteFontFace_GetGdiCompatibleGlyphMetrics(IDWriteFontFace* This, FLOAT emSize, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { + return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways); } #endif #endif #endif - -#endif /* __IDWriteFontFace_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontFace_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFont interface @@ -1892,187 +1853,179 @@ static inline HRESULT IDWriteFontFace_GetGdiCompatibleGlyphMetrics(IDWriteFontFa #ifndef __IDWriteFont_INTERFACE_DEFINED__ #define __IDWriteFont_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFont, 0xacd16696, 0x8c14, 0x4f5d, 0x87,0x7e, 0xfe,0x3f,0xc1,0xd3,0x27,0x37); +DEFINE_GUID(IID_IDWriteFont, 0xacd16696, 0x8c14, 0x4f5d, 0x87, 0x7e, 0xfe, 0x3f, 0xc1, 0xd3, 0x27, 0x37); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("acd16696-8c14-4f5d-877e-fe3fc1d32737") -IDWriteFont : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE GetFontFamily( - IDWriteFontFamily **family) = 0; +IDWriteFont : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE GetFontFamily( + IDWriteFontFamily * *family) = 0; - virtual DWRITE_FONT_WEIGHT STDMETHODCALLTYPE GetWeight( - ) = 0; + virtual DWRITE_FONT_WEIGHT STDMETHODCALLTYPE GetWeight() = 0; - virtual DWRITE_FONT_STRETCH STDMETHODCALLTYPE GetStretch( - ) = 0; + virtual DWRITE_FONT_STRETCH STDMETHODCALLTYPE GetStretch() = 0; - virtual DWRITE_FONT_STYLE STDMETHODCALLTYPE GetStyle( - ) = 0; + virtual DWRITE_FONT_STYLE STDMETHODCALLTYPE GetStyle() = 0; - virtual WINBOOL STDMETHODCALLTYPE IsSymbolFont( - ) = 0; + virtual WINBOOL STDMETHODCALLTYPE IsSymbolFont() = 0; - virtual HRESULT STDMETHODCALLTYPE GetFaceNames( - IDWriteLocalizedStrings **names) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFaceNames( + IDWriteLocalizedStrings * *names) = 0; - virtual HRESULT STDMETHODCALLTYPE GetInformationalStrings( - DWRITE_INFORMATIONAL_STRING_ID stringid, - IDWriteLocalizedStrings **strings, - WINBOOL *exists) = 0; + virtual HRESULT STDMETHODCALLTYPE GetInformationalStrings( + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings * *strings, + WINBOOL * exists) = 0; - virtual DWRITE_FONT_SIMULATIONS STDMETHODCALLTYPE GetSimulations( - ) = 0; + virtual DWRITE_FONT_SIMULATIONS STDMETHODCALLTYPE GetSimulations() = 0; - virtual void STDMETHODCALLTYPE GetMetrics( - DWRITE_FONT_METRICS *metrics) = 0; + virtual void STDMETHODCALLTYPE GetMetrics( + DWRITE_FONT_METRICS * metrics) = 0; - virtual HRESULT STDMETHODCALLTYPE HasCharacter( - UINT32 value, - WINBOOL *exists) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontFace( - IDWriteFontFace **face) = 0; + virtual HRESULT STDMETHODCALLTYPE HasCharacter( + UINT32 value, + WINBOOL * exists) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateFontFace( + IDWriteFontFace * *face) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFont, 0xacd16696, 0x8c14, 0x4f5d, 0x87,0x7e, 0xfe,0x3f,0xc1,0xd3,0x27,0x37) +__CRT_UUID_DECL(IDWriteFont, 0xacd16696, 0x8c14, 0x4f5d, 0x87, 0x7e, 0xfe, 0x3f, 0xc1, 0xd3, 0x27, 0x37) #endif #else typedef struct IDWriteFontVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFont *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFont* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFont *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFont* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFont *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFont* This); - /*** IDWriteFont methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFontFamily)( - IDWriteFont *This, - IDWriteFontFamily **family); + /*** IDWriteFont methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFontFamily)( + IDWriteFont* This, + IDWriteFontFamily** family); - DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( - IDWriteFont *This); + DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetWeight)( + IDWriteFont* This); - DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( - IDWriteFont *This); + DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetStretch)( + IDWriteFont* This); - DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( - IDWriteFont *This); + DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetStyle)( + IDWriteFont* This); - WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( - IDWriteFont *This); + WINBOOL(STDMETHODCALLTYPE* IsSymbolFont)( + IDWriteFont* This); - HRESULT (STDMETHODCALLTYPE *GetFaceNames)( - IDWriteFont *This, - IDWriteLocalizedStrings **names); + HRESULT(STDMETHODCALLTYPE* GetFaceNames)( + IDWriteFont* This, + IDWriteLocalizedStrings** names); - HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( - IDWriteFont *This, - DWRITE_INFORMATIONAL_STRING_ID stringid, - IDWriteLocalizedStrings **strings, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* GetInformationalStrings)( + IDWriteFont* This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings** strings, + WINBOOL* exists); - DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( - IDWriteFont *This); + DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( + IDWriteFont* This); - void (STDMETHODCALLTYPE *GetMetrics)( - IDWriteFont *This, - DWRITE_FONT_METRICS *metrics); + void(STDMETHODCALLTYPE* GetMetrics)( + IDWriteFont* This, + DWRITE_FONT_METRICS* metrics); - HRESULT (STDMETHODCALLTYPE *HasCharacter)( - IDWriteFont *This, - UINT32 value, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* HasCharacter)( + IDWriteFont* This, + UINT32 value, + WINBOOL* exists); - HRESULT (STDMETHODCALLTYPE *CreateFontFace)( - IDWriteFont *This, - IDWriteFontFace **face); + HRESULT(STDMETHODCALLTYPE* CreateFontFace)( + IDWriteFont* This, + IDWriteFontFace** face); - END_INTERFACE + END_INTERFACE } IDWriteFontVtbl; interface IDWriteFont { - CONST_VTBL IDWriteFontVtbl* lpVtbl; + CONST_VTBL IDWriteFontVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFont_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFont_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFont_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFont_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFont methods ***/ -#define IDWriteFont_GetFontFamily(This,family) (This)->lpVtbl->GetFontFamily(This,family) +#define IDWriteFont_GetFontFamily(This, family) (This)->lpVtbl->GetFontFamily(This, family) #define IDWriteFont_GetWeight(This) (This)->lpVtbl->GetWeight(This) #define IDWriteFont_GetStretch(This) (This)->lpVtbl->GetStretch(This) #define IDWriteFont_GetStyle(This) (This)->lpVtbl->GetStyle(This) #define IDWriteFont_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) -#define IDWriteFont_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names) -#define IDWriteFont_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) +#define IDWriteFont_GetFaceNames(This, names) (This)->lpVtbl->GetFaceNames(This, names) +#define IDWriteFont_GetInformationalStrings(This, stringid, strings, exists) (This)->lpVtbl->GetInformationalStrings(This, stringid, strings, exists) #define IDWriteFont_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) -#define IDWriteFont_GetMetrics(This,metrics) (This)->lpVtbl->GetMetrics(This,metrics) -#define IDWriteFont_HasCharacter(This,value,exists) (This)->lpVtbl->HasCharacter(This,value,exists) -#define IDWriteFont_CreateFontFace(This,face) (This)->lpVtbl->CreateFontFace(This,face) +#define IDWriteFont_GetMetrics(This, metrics) (This)->lpVtbl->GetMetrics(This, metrics) +#define IDWriteFont_HasCharacter(This, value, exists) (This)->lpVtbl->HasCharacter(This, value, exists) +#define IDWriteFont_CreateFontFace(This, face) (This)->lpVtbl->CreateFontFace(This, face) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFont_QueryInterface(IDWriteFont* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFont_QueryInterface(IDWriteFont* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFont_AddRef(IDWriteFont* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFont_Release(IDWriteFont* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFont methods ***/ -static inline HRESULT IDWriteFont_GetFontFamily(IDWriteFont* This,IDWriteFontFamily **family) { - return This->lpVtbl->GetFontFamily(This,family); +static inline HRESULT IDWriteFont_GetFontFamily(IDWriteFont* This, IDWriteFontFamily** family) { + return This->lpVtbl->GetFontFamily(This, family); } static inline DWRITE_FONT_WEIGHT IDWriteFont_GetWeight(IDWriteFont* This) { - return This->lpVtbl->GetWeight(This); + return This->lpVtbl->GetWeight(This); } static inline DWRITE_FONT_STRETCH IDWriteFont_GetStretch(IDWriteFont* This) { - return This->lpVtbl->GetStretch(This); + return This->lpVtbl->GetStretch(This); } static inline DWRITE_FONT_STYLE IDWriteFont_GetStyle(IDWriteFont* This) { - return This->lpVtbl->GetStyle(This); + return This->lpVtbl->GetStyle(This); } static inline WINBOOL IDWriteFont_IsSymbolFont(IDWriteFont* This) { - return This->lpVtbl->IsSymbolFont(This); + return This->lpVtbl->IsSymbolFont(This); } -static inline HRESULT IDWriteFont_GetFaceNames(IDWriteFont* This,IDWriteLocalizedStrings **names) { - return This->lpVtbl->GetFaceNames(This,names); +static inline HRESULT IDWriteFont_GetFaceNames(IDWriteFont* This, IDWriteLocalizedStrings** names) { + return This->lpVtbl->GetFaceNames(This, names); } -static inline HRESULT IDWriteFont_GetInformationalStrings(IDWriteFont* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { - return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +static inline HRESULT IDWriteFont_GetInformationalStrings(IDWriteFont* This, DWRITE_INFORMATIONAL_STRING_ID stringid, IDWriteLocalizedStrings** strings, WINBOOL* exists) { + return This->lpVtbl->GetInformationalStrings(This, stringid, strings, exists); } static inline DWRITE_FONT_SIMULATIONS IDWriteFont_GetSimulations(IDWriteFont* This) { - return This->lpVtbl->GetSimulations(This); + return This->lpVtbl->GetSimulations(This); } -static inline void IDWriteFont_GetMetrics(IDWriteFont* This,DWRITE_FONT_METRICS *metrics) { - This->lpVtbl->GetMetrics(This,metrics); +static inline void IDWriteFont_GetMetrics(IDWriteFont* This, DWRITE_FONT_METRICS* metrics) { + This->lpVtbl->GetMetrics(This, metrics); } -static inline HRESULT IDWriteFont_HasCharacter(IDWriteFont* This,UINT32 value,WINBOOL *exists) { - return This->lpVtbl->HasCharacter(This,value,exists); +static inline HRESULT IDWriteFont_HasCharacter(IDWriteFont* This, UINT32 value, WINBOOL* exists) { + return This->lpVtbl->HasCharacter(This, value, exists); } -static inline HRESULT IDWriteFont_CreateFontFace(IDWriteFont* This,IDWriteFontFace **face) { - return This->lpVtbl->CreateFontFace(This,face); +static inline HRESULT IDWriteFont_CreateFontFace(IDWriteFont* This, IDWriteFontFace** face) { + return This->lpVtbl->CreateFontFace(This, face); } #endif #endif #endif - -#endif /* __IDWriteFont_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFont_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontList interface @@ -2080,99 +2033,95 @@ static inline HRESULT IDWriteFont_CreateFontFace(IDWriteFont* This,IDWriteFontFa #ifndef __IDWriteFontList_INTERFACE_DEFINED__ #define __IDWriteFontList_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontList, 0x1a0d8438, 0x1d97, 0x4ec1, 0xae,0xf9, 0xa2,0xfb,0x86,0xed,0x6a,0xcb); +DEFINE_GUID(IID_IDWriteFontList, 0x1a0d8438, 0x1d97, 0x4ec1, 0xae, 0xf9, 0xa2, 0xfb, 0x86, 0xed, 0x6a, 0xcb); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("1a0d8438-1d97-4ec1-aef9-a2fb86ed6acb") -IDWriteFontList : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE GetFontCollection( - IDWriteFontCollection **collection) = 0; +IDWriteFontList : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE GetFontCollection( + IDWriteFontCollection * *collection) = 0; - virtual UINT32 STDMETHODCALLTYPE GetFontCount( - ) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFont( - UINT32 index, - IDWriteFont **font) = 0; + virtual UINT32 STDMETHODCALLTYPE GetFontCount() = 0; + virtual HRESULT STDMETHODCALLTYPE GetFont( + UINT32 index, + IDWriteFont * *font) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontList, 0x1a0d8438, 0x1d97, 0x4ec1, 0xae,0xf9, 0xa2,0xfb,0x86,0xed,0x6a,0xcb) +__CRT_UUID_DECL(IDWriteFontList, 0x1a0d8438, 0x1d97, 0x4ec1, 0xae, 0xf9, 0xa2, 0xfb, 0x86, 0xed, 0x6a, 0xcb) #endif #else typedef struct IDWriteFontListVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontList *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontList* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontList *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontList* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontList *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontList* This); - /*** IDWriteFontList methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFontCollection)( - IDWriteFontList *This, - IDWriteFontCollection **collection); + /*** IDWriteFontList methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFontCollection)( + IDWriteFontList* This, + IDWriteFontCollection** collection); - UINT32 (STDMETHODCALLTYPE *GetFontCount)( - IDWriteFontList *This); + UINT32(STDMETHODCALLTYPE* GetFontCount)( + IDWriteFontList* This); - HRESULT (STDMETHODCALLTYPE *GetFont)( - IDWriteFontList *This, - UINT32 index, - IDWriteFont **font); + HRESULT(STDMETHODCALLTYPE* GetFont)( + IDWriteFontList* This, + UINT32 index, + IDWriteFont** font); - END_INTERFACE + END_INTERFACE } IDWriteFontListVtbl; interface IDWriteFontList { - CONST_VTBL IDWriteFontListVtbl* lpVtbl; + CONST_VTBL IDWriteFontListVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontList_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontList_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontList_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontList methods ***/ -#define IDWriteFontList_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteFontList_GetFontCollection(This, collection) (This)->lpVtbl->GetFontCollection(This, collection) #define IDWriteFontList_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) -#define IDWriteFontList_GetFont(This,index,font) (This)->lpVtbl->GetFont(This,index,font) +#define IDWriteFontList_GetFont(This, index, font) (This)->lpVtbl->GetFont(This, index, font) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontList_QueryInterface(IDWriteFontList* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontList_QueryInterface(IDWriteFontList* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontList_AddRef(IDWriteFontList* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontList_Release(IDWriteFontList* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontList methods ***/ -static inline HRESULT IDWriteFontList_GetFontCollection(IDWriteFontList* This,IDWriteFontCollection **collection) { - return This->lpVtbl->GetFontCollection(This,collection); +static inline HRESULT IDWriteFontList_GetFontCollection(IDWriteFontList* This, IDWriteFontCollection** collection) { + return This->lpVtbl->GetFontCollection(This, collection); } static inline UINT32 IDWriteFontList_GetFontCount(IDWriteFontList* This) { - return This->lpVtbl->GetFontCount(This); + return This->lpVtbl->GetFontCount(This); } -static inline HRESULT IDWriteFontList_GetFont(IDWriteFontList* This,UINT32 index,IDWriteFont **font) { - return This->lpVtbl->GetFont(This,index,font); +static inline HRESULT IDWriteFontList_GetFont(IDWriteFontList* This, UINT32 index, IDWriteFont** font) { + return This->lpVtbl->GetFont(This, index, font); } #endif #endif #endif - -#endif /* __IDWriteFontList_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontList_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontFamily interface @@ -2180,137 +2129,134 @@ static inline HRESULT IDWriteFontList_GetFont(IDWriteFontList* This,UINT32 index #ifndef __IDWriteFontFamily_INTERFACE_DEFINED__ #define __IDWriteFontFamily_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontFamily, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xdd); +DEFINE_GUID(IID_IDWriteFontFamily, 0xda20d8ef, 0x812a, 0x4c43, 0x98, 0x02, 0x62, 0xec, 0x4a, 0xbd, 0x7a, 0xdd); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7add") -IDWriteFontFamily : public IDWriteFontList -{ - virtual HRESULT STDMETHODCALLTYPE GetFamilyNames( - IDWriteLocalizedStrings **names) = 0; +IDWriteFontFamily : public IDWriteFontList { + virtual HRESULT STDMETHODCALLTYPE GetFamilyNames( + IDWriteLocalizedStrings * *names) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFirstMatchingFont( - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFont **font) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFontList **fonts) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFirstMatchingFont( + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFont * *font) = 0; + virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontList * *fonts) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFamily, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xdd) +__CRT_UUID_DECL(IDWriteFontFamily, 0xda20d8ef, 0x812a, 0x4c43, 0x98, 0x02, 0x62, 0xec, 0x4a, 0xbd, 0x7a, 0xdd) #endif #else typedef struct IDWriteFontFamilyVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontFamily *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontFamily* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontFamily *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontFamily* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontFamily *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontFamily* This); - /*** IDWriteFontList methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFontCollection)( - IDWriteFontFamily *This, - IDWriteFontCollection **collection); + /*** IDWriteFontList methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFontCollection)( + IDWriteFontFamily* This, + IDWriteFontCollection** collection); - UINT32 (STDMETHODCALLTYPE *GetFontCount)( - IDWriteFontFamily *This); + UINT32(STDMETHODCALLTYPE* GetFontCount)( + IDWriteFontFamily* This); - HRESULT (STDMETHODCALLTYPE *GetFont)( - IDWriteFontFamily *This, - UINT32 index, - IDWriteFont **font); + HRESULT(STDMETHODCALLTYPE* GetFont)( + IDWriteFontFamily* This, + UINT32 index, + IDWriteFont** font); - /*** IDWriteFontFamily methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( - IDWriteFontFamily *This, - IDWriteLocalizedStrings **names); + /*** IDWriteFontFamily methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFamilyNames)( + IDWriteFontFamily* This, + IDWriteLocalizedStrings** names); - HRESULT (STDMETHODCALLTYPE *GetFirstMatchingFont)( - IDWriteFontFamily *This, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFont **font); + HRESULT(STDMETHODCALLTYPE* GetFirstMatchingFont)( + IDWriteFontFamily* This, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFont** font); - HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( - IDWriteFontFamily *This, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFontList **fonts); + HRESULT(STDMETHODCALLTYPE* GetMatchingFonts)( + IDWriteFontFamily* This, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontList** fonts); - END_INTERFACE + END_INTERFACE } IDWriteFontFamilyVtbl; interface IDWriteFontFamily { - CONST_VTBL IDWriteFontFamilyVtbl* lpVtbl; + CONST_VTBL IDWriteFontFamilyVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontFamily_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFamily_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontFamily_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontFamily_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontList methods ***/ -#define IDWriteFontFamily_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteFontFamily_GetFontCollection(This, collection) (This)->lpVtbl->GetFontCollection(This, collection) #define IDWriteFontFamily_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) -#define IDWriteFontFamily_GetFont(This,index,font) (This)->lpVtbl->GetFont(This,index,font) +#define IDWriteFontFamily_GetFont(This, index, font) (This)->lpVtbl->GetFont(This, index, font) /*** IDWriteFontFamily methods ***/ -#define IDWriteFontFamily_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names) -#define IDWriteFontFamily_GetFirstMatchingFont(This,weight,stretch,style,font) (This)->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font) -#define IDWriteFontFamily_GetMatchingFonts(This,weight,stretch,style,fonts) (This)->lpVtbl->GetMatchingFonts(This,weight,stretch,style,fonts) +#define IDWriteFontFamily_GetFamilyNames(This, names) (This)->lpVtbl->GetFamilyNames(This, names) +#define IDWriteFontFamily_GetFirstMatchingFont(This, weight, stretch, style, font) (This)->lpVtbl->GetFirstMatchingFont(This, weight, stretch, style, font) +#define IDWriteFontFamily_GetMatchingFonts(This, weight, stretch, style, fonts) (This)->lpVtbl->GetMatchingFonts(This, weight, stretch, style, fonts) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFamily_QueryInterface(IDWriteFontFamily* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontFamily_QueryInterface(IDWriteFontFamily* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontFamily_AddRef(IDWriteFontFamily* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontFamily_Release(IDWriteFontFamily* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontList methods ***/ -static inline HRESULT IDWriteFontFamily_GetFontCollection(IDWriteFontFamily* This,IDWriteFontCollection **collection) { - return This->lpVtbl->GetFontCollection(This,collection); +static inline HRESULT IDWriteFontFamily_GetFontCollection(IDWriteFontFamily* This, IDWriteFontCollection** collection) { + return This->lpVtbl->GetFontCollection(This, collection); } static inline UINT32 IDWriteFontFamily_GetFontCount(IDWriteFontFamily* This) { - return This->lpVtbl->GetFontCount(This); + return This->lpVtbl->GetFontCount(This); } -static inline HRESULT IDWriteFontFamily_GetFont(IDWriteFontFamily* This,UINT32 index,IDWriteFont **font) { - return This->lpVtbl->GetFont(This,index,font); +static inline HRESULT IDWriteFontFamily_GetFont(IDWriteFontFamily* This, UINT32 index, IDWriteFont** font) { + return This->lpVtbl->GetFont(This, index, font); } /*** IDWriteFontFamily methods ***/ -static inline HRESULT IDWriteFontFamily_GetFamilyNames(IDWriteFontFamily* This,IDWriteLocalizedStrings **names) { - return This->lpVtbl->GetFamilyNames(This,names); +static inline HRESULT IDWriteFontFamily_GetFamilyNames(IDWriteFontFamily* This, IDWriteLocalizedStrings** names) { + return This->lpVtbl->GetFamilyNames(This, names); } -static inline HRESULT IDWriteFontFamily_GetFirstMatchingFont(IDWriteFontFamily* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFont **font) { - return This->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font); +static inline HRESULT IDWriteFontFamily_GetFirstMatchingFont(IDWriteFontFamily* This, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFont** font) { + return This->lpVtbl->GetFirstMatchingFont(This, weight, stretch, style, font); } -static inline HRESULT IDWriteFontFamily_GetMatchingFonts(IDWriteFontFamily* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontList **fonts) { - return This->lpVtbl->GetMatchingFonts(This,weight,stretch,style,fonts); +static inline HRESULT IDWriteFontFamily_GetMatchingFonts(IDWriteFontFamily* This, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFontList** fonts) { + return This->lpVtbl->GetMatchingFonts(This, weight, stretch, style, fonts); } #endif #endif #endif - -#endif /* __IDWriteFontFamily_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontFamily_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontCollection interface @@ -2318,116 +2264,112 @@ static inline HRESULT IDWriteFontFamily_GetMatchingFonts(IDWriteFontFamily* This #ifndef __IDWriteFontCollection_INTERFACE_DEFINED__ #define __IDWriteFontCollection_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontCollection, 0xa84cee02, 0x3eea, 0x4eee, 0xa8,0x27, 0x87,0xc1,0xa0,0x2a,0x0f,0xcc); +DEFINE_GUID(IID_IDWriteFontCollection, 0xa84cee02, 0x3eea, 0x4eee, 0xa8, 0x27, 0x87, 0xc1, 0xa0, 0x2a, 0x0f, 0xcc); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("a84cee02-3eea-4eee-a827-87c1a02a0fcc") -IDWriteFontCollection : public IUnknown -{ - virtual UINT32 STDMETHODCALLTYPE GetFontFamilyCount( - ) = 0; +IDWriteFontCollection : public IUnknown { + virtual UINT32 STDMETHODCALLTYPE GetFontFamilyCount() = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontFamily( - UINT32 index, - IDWriteFontFamily **family) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontFamily( + UINT32 index, + IDWriteFontFamily * *family) = 0; - virtual HRESULT STDMETHODCALLTYPE FindFamilyName( - const WCHAR *name, - UINT32 *index, - WINBOOL *exists) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontFromFontFace( - IDWriteFontFace *face, - IDWriteFont **font) = 0; + virtual HRESULT STDMETHODCALLTYPE FindFamilyName( + const WCHAR* name, + UINT32* index, + WINBOOL* exists) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontFromFontFace( + IDWriteFontFace * face, + IDWriteFont * *font) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontCollection, 0xa84cee02, 0x3eea, 0x4eee, 0xa8,0x27, 0x87,0xc1,0xa0,0x2a,0x0f,0xcc) +__CRT_UUID_DECL(IDWriteFontCollection, 0xa84cee02, 0x3eea, 0x4eee, 0xa8, 0x27, 0x87, 0xc1, 0xa0, 0x2a, 0x0f, 0xcc) #endif #else typedef struct IDWriteFontCollectionVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontCollection *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontCollection* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontCollection *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontCollection* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontCollection *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontCollection* This); - /*** IDWriteFontCollection methods ***/ - UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)( - IDWriteFontCollection *This); + /*** IDWriteFontCollection methods ***/ + UINT32(STDMETHODCALLTYPE* GetFontFamilyCount)( + IDWriteFontCollection* This); - HRESULT (STDMETHODCALLTYPE *GetFontFamily)( - IDWriteFontCollection *This, - UINT32 index, - IDWriteFontFamily **family); + HRESULT(STDMETHODCALLTYPE* GetFontFamily)( + IDWriteFontCollection* This, + UINT32 index, + IDWriteFontFamily** family); - HRESULT (STDMETHODCALLTYPE *FindFamilyName)( - IDWriteFontCollection *This, - const WCHAR *name, - UINT32 *index, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* FindFamilyName)( + IDWriteFontCollection* This, + const WCHAR* name, + UINT32* index, + WINBOOL* exists); - HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)( - IDWriteFontCollection *This, - IDWriteFontFace *face, - IDWriteFont **font); + HRESULT(STDMETHODCALLTYPE* GetFontFromFontFace)( + IDWriteFontCollection* This, + IDWriteFontFace* face, + IDWriteFont** font); - END_INTERFACE + END_INTERFACE } IDWriteFontCollectionVtbl; interface IDWriteFontCollection { - CONST_VTBL IDWriteFontCollectionVtbl* lpVtbl; + CONST_VTBL IDWriteFontCollectionVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontCollection_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontCollection_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontCollection_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontCollection methods ***/ #define IDWriteFontCollection_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This) -#define IDWriteFontCollection_GetFontFamily(This,index,family) (This)->lpVtbl->GetFontFamily(This,index,family) -#define IDWriteFontCollection_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists) -#define IDWriteFontCollection_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font) +#define IDWriteFontCollection_GetFontFamily(This, index, family) (This)->lpVtbl->GetFontFamily(This, index, family) +#define IDWriteFontCollection_FindFamilyName(This, name, index, exists) (This)->lpVtbl->FindFamilyName(This, name, index, exists) +#define IDWriteFontCollection_GetFontFromFontFace(This, face, font) (This)->lpVtbl->GetFontFromFontFace(This, face, font) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontCollection_QueryInterface(IDWriteFontCollection* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontCollection_QueryInterface(IDWriteFontCollection* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontCollection_AddRef(IDWriteFontCollection* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontCollection_Release(IDWriteFontCollection* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontCollection methods ***/ static inline UINT32 IDWriteFontCollection_GetFontFamilyCount(IDWriteFontCollection* This) { - return This->lpVtbl->GetFontFamilyCount(This); + return This->lpVtbl->GetFontFamilyCount(This); } -static inline HRESULT IDWriteFontCollection_GetFontFamily(IDWriteFontCollection* This,UINT32 index,IDWriteFontFamily **family) { - return This->lpVtbl->GetFontFamily(This,index,family); +static inline HRESULT IDWriteFontCollection_GetFontFamily(IDWriteFontCollection* This, UINT32 index, IDWriteFontFamily** family) { + return This->lpVtbl->GetFontFamily(This, index, family); } -static inline HRESULT IDWriteFontCollection_FindFamilyName(IDWriteFontCollection* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) { - return This->lpVtbl->FindFamilyName(This,name,index,exists); +static inline HRESULT IDWriteFontCollection_FindFamilyName(IDWriteFontCollection* This, const WCHAR* name, UINT32* index, WINBOOL* exists) { + return This->lpVtbl->FindFamilyName(This, name, index, exists); } -static inline HRESULT IDWriteFontCollection_GetFontFromFontFace(IDWriteFontCollection* This,IDWriteFontFace *face,IDWriteFont **font) { - return This->lpVtbl->GetFontFromFontFace(This,face,font); +static inline HRESULT IDWriteFontCollection_GetFontFromFontFace(IDWriteFontCollection* This, IDWriteFontFace* face, IDWriteFont** font) { + return This->lpVtbl->GetFontFromFontFace(This, face, font); } #endif #endif #endif - -#endif /* __IDWriteFontCollection_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontCollection_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWritePixelSnapping interface @@ -2435,104 +2377,101 @@ static inline HRESULT IDWriteFontCollection_GetFontFromFontFace(IDWriteFontColle #ifndef __IDWritePixelSnapping_INTERFACE_DEFINED__ #define __IDWritePixelSnapping_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWritePixelSnapping, 0xeaf3a2da, 0xecf4, 0x4d24, 0xb6,0x44, 0xb3,0x4f,0x68,0x42,0x02,0x4b); +DEFINE_GUID(IID_IDWritePixelSnapping, 0xeaf3a2da, 0xecf4, 0x4d24, 0xb6, 0x44, 0xb3, 0x4f, 0x68, 0x42, 0x02, 0x4b); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("eaf3a2da-ecf4-4d24-b644-b34f6842024b") -IDWritePixelSnapping : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE IsPixelSnappingDisabled( - void *client_drawingcontext, - WINBOOL *disabled) = 0; +IDWritePixelSnapping : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE IsPixelSnappingDisabled( + void* client_drawingcontext, + WINBOOL* disabled) = 0; - virtual HRESULT STDMETHODCALLTYPE GetCurrentTransform( - void *client_drawingcontext, - DWRITE_MATRIX *transform) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPixelsPerDip( - void *client_drawingcontext, - FLOAT *pixels_per_dip) = 0; + virtual HRESULT STDMETHODCALLTYPE GetCurrentTransform( + void* client_drawingcontext, + DWRITE_MATRIX* transform) = 0; + virtual HRESULT STDMETHODCALLTYPE GetPixelsPerDip( + void* client_drawingcontext, + FLOAT* pixels_per_dip) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWritePixelSnapping, 0xeaf3a2da, 0xecf4, 0x4d24, 0xb6,0x44, 0xb3,0x4f,0x68,0x42,0x02,0x4b) +__CRT_UUID_DECL(IDWritePixelSnapping, 0xeaf3a2da, 0xecf4, 0x4d24, 0xb6, 0x44, 0xb3, 0x4f, 0x68, 0x42, 0x02, 0x4b) #endif #else typedef struct IDWritePixelSnappingVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWritePixelSnapping *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWritePixelSnapping* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWritePixelSnapping *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWritePixelSnapping* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWritePixelSnapping *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWritePixelSnapping* This); - /*** IDWritePixelSnapping methods ***/ - HRESULT (STDMETHODCALLTYPE *IsPixelSnappingDisabled)( - IDWritePixelSnapping *This, - void *client_drawingcontext, - WINBOOL *disabled); + /*** IDWritePixelSnapping methods ***/ + HRESULT(STDMETHODCALLTYPE* IsPixelSnappingDisabled)( + IDWritePixelSnapping* This, + void* client_drawingcontext, + WINBOOL* disabled); - HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)( - IDWritePixelSnapping *This, - void *client_drawingcontext, - DWRITE_MATRIX *transform); + HRESULT(STDMETHODCALLTYPE* GetCurrentTransform)( + IDWritePixelSnapping* This, + void* client_drawingcontext, + DWRITE_MATRIX* transform); - HRESULT (STDMETHODCALLTYPE *GetPixelsPerDip)( - IDWritePixelSnapping *This, - void *client_drawingcontext, - FLOAT *pixels_per_dip); + HRESULT(STDMETHODCALLTYPE* GetPixelsPerDip)( + IDWritePixelSnapping* This, + void* client_drawingcontext, + FLOAT* pixels_per_dip); - END_INTERFACE + END_INTERFACE } IDWritePixelSnappingVtbl; interface IDWritePixelSnapping { - CONST_VTBL IDWritePixelSnappingVtbl* lpVtbl; + CONST_VTBL IDWritePixelSnappingVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWritePixelSnapping_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWritePixelSnapping_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWritePixelSnapping_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWritePixelSnapping_Release(This) (This)->lpVtbl->Release(This) /*** IDWritePixelSnapping methods ***/ -#define IDWritePixelSnapping_IsPixelSnappingDisabled(This,client_drawingcontext,disabled) (This)->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled) -#define IDWritePixelSnapping_GetCurrentTransform(This,client_drawingcontext,transform) (This)->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform) -#define IDWritePixelSnapping_GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) (This)->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) +#define IDWritePixelSnapping_IsPixelSnappingDisabled(This, client_drawingcontext, disabled) (This)->lpVtbl->IsPixelSnappingDisabled(This, client_drawingcontext, disabled) +#define IDWritePixelSnapping_GetCurrentTransform(This, client_drawingcontext, transform) (This)->lpVtbl->GetCurrentTransform(This, client_drawingcontext, transform) +#define IDWritePixelSnapping_GetPixelsPerDip(This, client_drawingcontext, pixels_per_dip) (This)->lpVtbl->GetPixelsPerDip(This, client_drawingcontext, pixels_per_dip) #else /*** IUnknown methods ***/ -static inline HRESULT IDWritePixelSnapping_QueryInterface(IDWritePixelSnapping* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWritePixelSnapping_QueryInterface(IDWritePixelSnapping* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWritePixelSnapping_AddRef(IDWritePixelSnapping* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWritePixelSnapping_Release(IDWritePixelSnapping* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWritePixelSnapping methods ***/ -static inline HRESULT IDWritePixelSnapping_IsPixelSnappingDisabled(IDWritePixelSnapping* This,void *client_drawingcontext,WINBOOL *disabled) { - return This->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled); +static inline HRESULT IDWritePixelSnapping_IsPixelSnappingDisabled(IDWritePixelSnapping* This, void* client_drawingcontext, WINBOOL* disabled) { + return This->lpVtbl->IsPixelSnappingDisabled(This, client_drawingcontext, disabled); } -static inline HRESULT IDWritePixelSnapping_GetCurrentTransform(IDWritePixelSnapping* This,void *client_drawingcontext,DWRITE_MATRIX *transform) { - return This->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform); +static inline HRESULT IDWritePixelSnapping_GetCurrentTransform(IDWritePixelSnapping* This, void* client_drawingcontext, DWRITE_MATRIX* transform) { + return This->lpVtbl->GetCurrentTransform(This, client_drawingcontext, transform); } -static inline HRESULT IDWritePixelSnapping_GetPixelsPerDip(IDWritePixelSnapping* This,void *client_drawingcontext,FLOAT *pixels_per_dip) { - return This->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip); +static inline HRESULT IDWritePixelSnapping_GetPixelsPerDip(IDWritePixelSnapping* This, void* client_drawingcontext, FLOAT* pixels_per_dip) { + return This->lpVtbl->GetPixelsPerDip(This, client_drawingcontext, pixels_per_dip); } #endif #endif #endif - -#endif /* __IDWritePixelSnapping_INTERFACE_DEFINED__ */ +#endif /* __IDWritePixelSnapping_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteTextRenderer interface @@ -2540,179 +2479,176 @@ static inline HRESULT IDWritePixelSnapping_GetPixelsPerDip(IDWritePixelSnapping* #ifndef __IDWriteTextRenderer_INTERFACE_DEFINED__ #define __IDWriteTextRenderer_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteTextRenderer, 0xef8a8135, 0x5cc6, 0x45fe, 0x88,0x25, 0xc5,0xa0,0x72,0x4e,0xb8,0x19); +DEFINE_GUID(IID_IDWriteTextRenderer, 0xef8a8135, 0x5cc6, 0x45fe, 0x88, 0x25, 0xc5, 0xa0, 0x72, 0x4e, 0xb8, 0x19); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("ef8a8135-5cc6-45fe-8825-c5a0724eb819") -IDWriteTextRenderer : public IDWritePixelSnapping -{ - virtual HRESULT STDMETHODCALLTYPE DrawGlyphRun( - void *client_drawingcontext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - DWRITE_MEASURING_MODE mode, - const DWRITE_GLYPH_RUN *glyph_run, - const DWRITE_GLYPH_RUN_DESCRIPTION *run_descr, - IUnknown *drawing_effect) = 0; +IDWriteTextRenderer : public IDWritePixelSnapping { + virtual HRESULT STDMETHODCALLTYPE DrawGlyphRun( + void* client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE mode, + const DWRITE_GLYPH_RUN* glyph_run, + const DWRITE_GLYPH_RUN_DESCRIPTION* run_descr, + IUnknown* drawing_effect) = 0; - virtual HRESULT STDMETHODCALLTYPE DrawUnderline( - void *client_drawingcontext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - const DWRITE_UNDERLINE *underline, - IUnknown *drawing_effect) = 0; + virtual HRESULT STDMETHODCALLTYPE DrawUnderline( + void* client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + const DWRITE_UNDERLINE* underline, + IUnknown* drawing_effect) = 0; - virtual HRESULT STDMETHODCALLTYPE DrawStrikethrough( - void *client_drawingcontext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - const DWRITE_STRIKETHROUGH *strikethrough, - IUnknown *drawing_effect) = 0; - - virtual HRESULT STDMETHODCALLTYPE DrawInlineObject( - void *client_drawingcontext, - FLOAT originX, - FLOAT originY, - IDWriteInlineObject *object, - WINBOOL is_sideways, - WINBOOL is_rtl, - IUnknown *drawing_effect) = 0; + virtual HRESULT STDMETHODCALLTYPE DrawStrikethrough( + void* client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + const DWRITE_STRIKETHROUGH* strikethrough, + IUnknown* drawing_effect) = 0; + virtual HRESULT STDMETHODCALLTYPE DrawInlineObject( + void* client_drawingcontext, + FLOAT originX, + FLOAT originY, + IDWriteInlineObject* object, + WINBOOL is_sideways, + WINBOOL is_rtl, + IUnknown* drawing_effect) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextRenderer, 0xef8a8135, 0x5cc6, 0x45fe, 0x88,0x25, 0xc5,0xa0,0x72,0x4e,0xb8,0x19) +__CRT_UUID_DECL(IDWriteTextRenderer, 0xef8a8135, 0x5cc6, 0x45fe, 0x88, 0x25, 0xc5, 0xa0, 0x72, 0x4e, 0xb8, 0x19) #endif #else typedef struct IDWriteTextRendererVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteTextRenderer *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteTextRenderer* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteTextRenderer *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteTextRenderer* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteTextRenderer *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteTextRenderer* This); - /*** IDWritePixelSnapping methods ***/ - HRESULT (STDMETHODCALLTYPE *IsPixelSnappingDisabled)( - IDWriteTextRenderer *This, - void *client_drawingcontext, - WINBOOL *disabled); + /*** IDWritePixelSnapping methods ***/ + HRESULT(STDMETHODCALLTYPE* IsPixelSnappingDisabled)( + IDWriteTextRenderer* This, + void* client_drawingcontext, + WINBOOL* disabled); - HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)( - IDWriteTextRenderer *This, - void *client_drawingcontext, - DWRITE_MATRIX *transform); + HRESULT(STDMETHODCALLTYPE* GetCurrentTransform)( + IDWriteTextRenderer* This, + void* client_drawingcontext, + DWRITE_MATRIX* transform); - HRESULT (STDMETHODCALLTYPE *GetPixelsPerDip)( - IDWriteTextRenderer *This, - void *client_drawingcontext, - FLOAT *pixels_per_dip); + HRESULT(STDMETHODCALLTYPE* GetPixelsPerDip)( + IDWriteTextRenderer* This, + void* client_drawingcontext, + FLOAT* pixels_per_dip); - /*** IDWriteTextRenderer methods ***/ - HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)( - IDWriteTextRenderer *This, - void *client_drawingcontext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - DWRITE_MEASURING_MODE mode, - const DWRITE_GLYPH_RUN *glyph_run, - const DWRITE_GLYPH_RUN_DESCRIPTION *run_descr, - IUnknown *drawing_effect); + /*** IDWriteTextRenderer methods ***/ + HRESULT(STDMETHODCALLTYPE* DrawGlyphRun)( + IDWriteTextRenderer* This, + void* client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE mode, + const DWRITE_GLYPH_RUN* glyph_run, + const DWRITE_GLYPH_RUN_DESCRIPTION* run_descr, + IUnknown* drawing_effect); - HRESULT (STDMETHODCALLTYPE *DrawUnderline)( - IDWriteTextRenderer *This, - void *client_drawingcontext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - const DWRITE_UNDERLINE *underline, - IUnknown *drawing_effect); + HRESULT(STDMETHODCALLTYPE* DrawUnderline)( + IDWriteTextRenderer* This, + void* client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + const DWRITE_UNDERLINE* underline, + IUnknown* drawing_effect); - HRESULT (STDMETHODCALLTYPE *DrawStrikethrough)( - IDWriteTextRenderer *This, - void *client_drawingcontext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - const DWRITE_STRIKETHROUGH *strikethrough, - IUnknown *drawing_effect); + HRESULT(STDMETHODCALLTYPE* DrawStrikethrough)( + IDWriteTextRenderer* This, + void* client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + const DWRITE_STRIKETHROUGH* strikethrough, + IUnknown* drawing_effect); - HRESULT (STDMETHODCALLTYPE *DrawInlineObject)( - IDWriteTextRenderer *This, - void *client_drawingcontext, - FLOAT originX, - FLOAT originY, - IDWriteInlineObject *object, - WINBOOL is_sideways, - WINBOOL is_rtl, - IUnknown *drawing_effect); + HRESULT(STDMETHODCALLTYPE* DrawInlineObject)( + IDWriteTextRenderer* This, + void* client_drawingcontext, + FLOAT originX, + FLOAT originY, + IDWriteInlineObject* object, + WINBOOL is_sideways, + WINBOOL is_rtl, + IUnknown* drawing_effect); - END_INTERFACE + END_INTERFACE } IDWriteTextRendererVtbl; interface IDWriteTextRenderer { - CONST_VTBL IDWriteTextRendererVtbl* lpVtbl; + CONST_VTBL IDWriteTextRendererVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteTextRenderer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextRenderer_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteTextRenderer_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteTextRenderer_Release(This) (This)->lpVtbl->Release(This) /*** IDWritePixelSnapping methods ***/ -#define IDWriteTextRenderer_IsPixelSnappingDisabled(This,client_drawingcontext,disabled) (This)->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled) -#define IDWriteTextRenderer_GetCurrentTransform(This,client_drawingcontext,transform) (This)->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform) -#define IDWriteTextRenderer_GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) (This)->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) +#define IDWriteTextRenderer_IsPixelSnappingDisabled(This, client_drawingcontext, disabled) (This)->lpVtbl->IsPixelSnappingDisabled(This, client_drawingcontext, disabled) +#define IDWriteTextRenderer_GetCurrentTransform(This, client_drawingcontext, transform) (This)->lpVtbl->GetCurrentTransform(This, client_drawingcontext, transform) +#define IDWriteTextRenderer_GetPixelsPerDip(This, client_drawingcontext, pixels_per_dip) (This)->lpVtbl->GetPixelsPerDip(This, client_drawingcontext, pixels_per_dip) /*** IDWriteTextRenderer methods ***/ -#define IDWriteTextRenderer_DrawGlyphRun(This,client_drawingcontext,baselineOriginX,baselineOriginY,mode,glyph_run,run_descr,drawing_effect) (This)->lpVtbl->DrawGlyphRun(This,client_drawingcontext,baselineOriginX,baselineOriginY,mode,glyph_run,run_descr,drawing_effect) -#define IDWriteTextRenderer_DrawUnderline(This,client_drawingcontext,baselineOriginX,baselineOriginY,underline,drawing_effect) (This)->lpVtbl->DrawUnderline(This,client_drawingcontext,baselineOriginX,baselineOriginY,underline,drawing_effect) -#define IDWriteTextRenderer_DrawStrikethrough(This,client_drawingcontext,baselineOriginX,baselineOriginY,strikethrough,drawing_effect) (This)->lpVtbl->DrawStrikethrough(This,client_drawingcontext,baselineOriginX,baselineOriginY,strikethrough,drawing_effect) -#define IDWriteTextRenderer_DrawInlineObject(This,client_drawingcontext,originX,originY,object,is_sideways,is_rtl,drawing_effect) (This)->lpVtbl->DrawInlineObject(This,client_drawingcontext,originX,originY,object,is_sideways,is_rtl,drawing_effect) +#define IDWriteTextRenderer_DrawGlyphRun(This, client_drawingcontext, baselineOriginX, baselineOriginY, mode, glyph_run, run_descr, drawing_effect) (This)->lpVtbl->DrawGlyphRun(This, client_drawingcontext, baselineOriginX, baselineOriginY, mode, glyph_run, run_descr, drawing_effect) +#define IDWriteTextRenderer_DrawUnderline(This, client_drawingcontext, baselineOriginX, baselineOriginY, underline, drawing_effect) (This)->lpVtbl->DrawUnderline(This, client_drawingcontext, baselineOriginX, baselineOriginY, underline, drawing_effect) +#define IDWriteTextRenderer_DrawStrikethrough(This, client_drawingcontext, baselineOriginX, baselineOriginY, strikethrough, drawing_effect) (This)->lpVtbl->DrawStrikethrough(This, client_drawingcontext, baselineOriginX, baselineOriginY, strikethrough, drawing_effect) +#define IDWriteTextRenderer_DrawInlineObject(This, client_drawingcontext, originX, originY, object, is_sideways, is_rtl, drawing_effect) (This)->lpVtbl->DrawInlineObject(This, client_drawingcontext, originX, originY, object, is_sideways, is_rtl, drawing_effect) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteTextRenderer_QueryInterface(IDWriteTextRenderer* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteTextRenderer_QueryInterface(IDWriteTextRenderer* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteTextRenderer_AddRef(IDWriteTextRenderer* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteTextRenderer_Release(IDWriteTextRenderer* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWritePixelSnapping methods ***/ -static inline HRESULT IDWriteTextRenderer_IsPixelSnappingDisabled(IDWriteTextRenderer* This,void *client_drawingcontext,WINBOOL *disabled) { - return This->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled); +static inline HRESULT IDWriteTextRenderer_IsPixelSnappingDisabled(IDWriteTextRenderer* This, void* client_drawingcontext, WINBOOL* disabled) { + return This->lpVtbl->IsPixelSnappingDisabled(This, client_drawingcontext, disabled); } -static inline HRESULT IDWriteTextRenderer_GetCurrentTransform(IDWriteTextRenderer* This,void *client_drawingcontext,DWRITE_MATRIX *transform) { - return This->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform); +static inline HRESULT IDWriteTextRenderer_GetCurrentTransform(IDWriteTextRenderer* This, void* client_drawingcontext, DWRITE_MATRIX* transform) { + return This->lpVtbl->GetCurrentTransform(This, client_drawingcontext, transform); } -static inline HRESULT IDWriteTextRenderer_GetPixelsPerDip(IDWriteTextRenderer* This,void *client_drawingcontext,FLOAT *pixels_per_dip) { - return This->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip); +static inline HRESULT IDWriteTextRenderer_GetPixelsPerDip(IDWriteTextRenderer* This, void* client_drawingcontext, FLOAT* pixels_per_dip) { + return This->lpVtbl->GetPixelsPerDip(This, client_drawingcontext, pixels_per_dip); } /*** IDWriteTextRenderer methods ***/ -static inline HRESULT IDWriteTextRenderer_DrawGlyphRun(IDWriteTextRenderer* This,void *client_drawingcontext,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE mode,const DWRITE_GLYPH_RUN *glyph_run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_descr,IUnknown *drawing_effect) { - return This->lpVtbl->DrawGlyphRun(This,client_drawingcontext,baselineOriginX,baselineOriginY,mode,glyph_run,run_descr,drawing_effect); +static inline HRESULT IDWriteTextRenderer_DrawGlyphRun(IDWriteTextRenderer* This, void* client_drawingcontext, FLOAT baselineOriginX, FLOAT baselineOriginY, DWRITE_MEASURING_MODE mode, const DWRITE_GLYPH_RUN* glyph_run, const DWRITE_GLYPH_RUN_DESCRIPTION* run_descr, IUnknown* drawing_effect) { + return This->lpVtbl->DrawGlyphRun(This, client_drawingcontext, baselineOriginX, baselineOriginY, mode, glyph_run, run_descr, drawing_effect); } -static inline HRESULT IDWriteTextRenderer_DrawUnderline(IDWriteTextRenderer* This,void *client_drawingcontext,FLOAT baselineOriginX,FLOAT baselineOriginY,const DWRITE_UNDERLINE *underline,IUnknown *drawing_effect) { - return This->lpVtbl->DrawUnderline(This,client_drawingcontext,baselineOriginX,baselineOriginY,underline,drawing_effect); +static inline HRESULT IDWriteTextRenderer_DrawUnderline(IDWriteTextRenderer* This, void* client_drawingcontext, FLOAT baselineOriginX, FLOAT baselineOriginY, const DWRITE_UNDERLINE* underline, IUnknown* drawing_effect) { + return This->lpVtbl->DrawUnderline(This, client_drawingcontext, baselineOriginX, baselineOriginY, underline, drawing_effect); } -static inline HRESULT IDWriteTextRenderer_DrawStrikethrough(IDWriteTextRenderer* This,void *client_drawingcontext,FLOAT baselineOriginX,FLOAT baselineOriginY,const DWRITE_STRIKETHROUGH *strikethrough,IUnknown *drawing_effect) { - return This->lpVtbl->DrawStrikethrough(This,client_drawingcontext,baselineOriginX,baselineOriginY,strikethrough,drawing_effect); +static inline HRESULT IDWriteTextRenderer_DrawStrikethrough(IDWriteTextRenderer* This, void* client_drawingcontext, FLOAT baselineOriginX, FLOAT baselineOriginY, const DWRITE_STRIKETHROUGH* strikethrough, IUnknown* drawing_effect) { + return This->lpVtbl->DrawStrikethrough(This, client_drawingcontext, baselineOriginX, baselineOriginY, strikethrough, drawing_effect); } -static inline HRESULT IDWriteTextRenderer_DrawInlineObject(IDWriteTextRenderer* This,void *client_drawingcontext,FLOAT originX,FLOAT originY,IDWriteInlineObject *object,WINBOOL is_sideways,WINBOOL is_rtl,IUnknown *drawing_effect) { - return This->lpVtbl->DrawInlineObject(This,client_drawingcontext,originX,originY,object,is_sideways,is_rtl,drawing_effect); +static inline HRESULT IDWriteTextRenderer_DrawInlineObject(IDWriteTextRenderer* This, void* client_drawingcontext, FLOAT originX, FLOAT originY, IDWriteInlineObject* object, WINBOOL is_sideways, WINBOOL is_rtl, IUnknown* drawing_effect) { + return This->lpVtbl->DrawInlineObject(This, client_drawingcontext, originX, originY, object, is_sideways, is_rtl, drawing_effect); } #endif #endif #endif - -#endif /* __IDWriteTextRenderer_INTERFACE_DEFINED__ */ +#endif /* __IDWriteTextRenderer_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteInlineObject interface @@ -2720,123 +2656,120 @@ static inline HRESULT IDWriteTextRenderer_DrawInlineObject(IDWriteTextRenderer* #ifndef __IDWriteInlineObject_INTERFACE_DEFINED__ #define __IDWriteInlineObject_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteInlineObject, 0x8339fde3, 0x106f, 0x47ab, 0x83,0x73, 0x1c,0x62,0x95,0xeb,0x10,0xb3); +DEFINE_GUID(IID_IDWriteInlineObject, 0x8339fde3, 0x106f, 0x47ab, 0x83, 0x73, 0x1c, 0x62, 0x95, 0xeb, 0x10, 0xb3); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("8339fde3-106f-47ab-8373-1c6295eb10b3") -IDWriteInlineObject : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE Draw( - void *client_drawingontext, - IDWriteTextRenderer *renderer, - FLOAT originX, - FLOAT originY, - WINBOOL is_sideways, - WINBOOL is_rtl, - IUnknown *drawing_effect) = 0; +IDWriteInlineObject : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE Draw( + void* client_drawingontext, + IDWriteTextRenderer* renderer, + FLOAT originX, + FLOAT originY, + WINBOOL is_sideways, + WINBOOL is_rtl, + IUnknown* drawing_effect) = 0; - virtual HRESULT STDMETHODCALLTYPE GetMetrics( - DWRITE_INLINE_OBJECT_METRICS *metrics) = 0; + virtual HRESULT STDMETHODCALLTYPE GetMetrics( + DWRITE_INLINE_OBJECT_METRICS * metrics) = 0; - virtual HRESULT STDMETHODCALLTYPE GetOverhangMetrics( - DWRITE_OVERHANG_METRICS *overhangs) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetBreakConditions( - DWRITE_BREAK_CONDITION *condition_before, - DWRITE_BREAK_CONDITION *condition_after) = 0; + virtual HRESULT STDMETHODCALLTYPE GetOverhangMetrics( + DWRITE_OVERHANG_METRICS * overhangs) = 0; + virtual HRESULT STDMETHODCALLTYPE GetBreakConditions( + DWRITE_BREAK_CONDITION * condition_before, + DWRITE_BREAK_CONDITION * condition_after) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteInlineObject, 0x8339fde3, 0x106f, 0x47ab, 0x83,0x73, 0x1c,0x62,0x95,0xeb,0x10,0xb3) +__CRT_UUID_DECL(IDWriteInlineObject, 0x8339fde3, 0x106f, 0x47ab, 0x83, 0x73, 0x1c, 0x62, 0x95, 0xeb, 0x10, 0xb3) #endif #else typedef struct IDWriteInlineObjectVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteInlineObject *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteInlineObject* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteInlineObject *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteInlineObject* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteInlineObject *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteInlineObject* This); - /*** IDWriteInlineObject methods ***/ - HRESULT (STDMETHODCALLTYPE *Draw)( - IDWriteInlineObject *This, - void *client_drawingontext, - IDWriteTextRenderer *renderer, - FLOAT originX, - FLOAT originY, - WINBOOL is_sideways, - WINBOOL is_rtl, - IUnknown *drawing_effect); + /*** IDWriteInlineObject methods ***/ + HRESULT(STDMETHODCALLTYPE* Draw)( + IDWriteInlineObject* This, + void* client_drawingontext, + IDWriteTextRenderer* renderer, + FLOAT originX, + FLOAT originY, + WINBOOL is_sideways, + WINBOOL is_rtl, + IUnknown* drawing_effect); - HRESULT (STDMETHODCALLTYPE *GetMetrics)( - IDWriteInlineObject *This, - DWRITE_INLINE_OBJECT_METRICS *metrics); + HRESULT(STDMETHODCALLTYPE* GetMetrics)( + IDWriteInlineObject* This, + DWRITE_INLINE_OBJECT_METRICS* metrics); - HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)( - IDWriteInlineObject *This, - DWRITE_OVERHANG_METRICS *overhangs); + HRESULT(STDMETHODCALLTYPE* GetOverhangMetrics)( + IDWriteInlineObject* This, + DWRITE_OVERHANG_METRICS* overhangs); - HRESULT (STDMETHODCALLTYPE *GetBreakConditions)( - IDWriteInlineObject *This, - DWRITE_BREAK_CONDITION *condition_before, - DWRITE_BREAK_CONDITION *condition_after); + HRESULT(STDMETHODCALLTYPE* GetBreakConditions)( + IDWriteInlineObject* This, + DWRITE_BREAK_CONDITION* condition_before, + DWRITE_BREAK_CONDITION* condition_after); - END_INTERFACE + END_INTERFACE } IDWriteInlineObjectVtbl; interface IDWriteInlineObject { - CONST_VTBL IDWriteInlineObjectVtbl* lpVtbl; + CONST_VTBL IDWriteInlineObjectVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteInlineObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteInlineObject_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteInlineObject_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteInlineObject_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteInlineObject methods ***/ -#define IDWriteInlineObject_Draw(This,client_drawingontext,renderer,originX,originY,is_sideways,is_rtl,drawing_effect) (This)->lpVtbl->Draw(This,client_drawingontext,renderer,originX,originY,is_sideways,is_rtl,drawing_effect) -#define IDWriteInlineObject_GetMetrics(This,metrics) (This)->lpVtbl->GetMetrics(This,metrics) -#define IDWriteInlineObject_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs) -#define IDWriteInlineObject_GetBreakConditions(This,condition_before,condition_after) (This)->lpVtbl->GetBreakConditions(This,condition_before,condition_after) +#define IDWriteInlineObject_Draw(This, client_drawingontext, renderer, originX, originY, is_sideways, is_rtl, drawing_effect) (This)->lpVtbl->Draw(This, client_drawingontext, renderer, originX, originY, is_sideways, is_rtl, drawing_effect) +#define IDWriteInlineObject_GetMetrics(This, metrics) (This)->lpVtbl->GetMetrics(This, metrics) +#define IDWriteInlineObject_GetOverhangMetrics(This, overhangs) (This)->lpVtbl->GetOverhangMetrics(This, overhangs) +#define IDWriteInlineObject_GetBreakConditions(This, condition_before, condition_after) (This)->lpVtbl->GetBreakConditions(This, condition_before, condition_after) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteInlineObject_QueryInterface(IDWriteInlineObject* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteInlineObject_QueryInterface(IDWriteInlineObject* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteInlineObject_AddRef(IDWriteInlineObject* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteInlineObject_Release(IDWriteInlineObject* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteInlineObject methods ***/ -static inline HRESULT IDWriteInlineObject_Draw(IDWriteInlineObject* This,void *client_drawingontext,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY,WINBOOL is_sideways,WINBOOL is_rtl,IUnknown *drawing_effect) { - return This->lpVtbl->Draw(This,client_drawingontext,renderer,originX,originY,is_sideways,is_rtl,drawing_effect); +static inline HRESULT IDWriteInlineObject_Draw(IDWriteInlineObject* This, void* client_drawingontext, IDWriteTextRenderer* renderer, FLOAT originX, FLOAT originY, WINBOOL is_sideways, WINBOOL is_rtl, IUnknown* drawing_effect) { + return This->lpVtbl->Draw(This, client_drawingontext, renderer, originX, originY, is_sideways, is_rtl, drawing_effect); } -static inline HRESULT IDWriteInlineObject_GetMetrics(IDWriteInlineObject* This,DWRITE_INLINE_OBJECT_METRICS *metrics) { - return This->lpVtbl->GetMetrics(This,metrics); +static inline HRESULT IDWriteInlineObject_GetMetrics(IDWriteInlineObject* This, DWRITE_INLINE_OBJECT_METRICS* metrics) { + return This->lpVtbl->GetMetrics(This, metrics); } -static inline HRESULT IDWriteInlineObject_GetOverhangMetrics(IDWriteInlineObject* This,DWRITE_OVERHANG_METRICS *overhangs) { - return This->lpVtbl->GetOverhangMetrics(This,overhangs); +static inline HRESULT IDWriteInlineObject_GetOverhangMetrics(IDWriteInlineObject* This, DWRITE_OVERHANG_METRICS* overhangs) { + return This->lpVtbl->GetOverhangMetrics(This, overhangs); } -static inline HRESULT IDWriteInlineObject_GetBreakConditions(IDWriteInlineObject* This,DWRITE_BREAK_CONDITION *condition_before,DWRITE_BREAK_CONDITION *condition_after) { - return This->lpVtbl->GetBreakConditions(This,condition_before,condition_after); +static inline HRESULT IDWriteInlineObject_GetBreakConditions(IDWriteInlineObject* This, DWRITE_BREAK_CONDITION* condition_before, DWRITE_BREAK_CONDITION* condition_after) { + return This->lpVtbl->GetBreakConditions(This, condition_before, condition_after); } #endif #endif #endif - -#endif /* __IDWriteInlineObject_INTERFACE_DEFINED__ */ +#endif /* __IDWriteInlineObject_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteTextFormat interface @@ -2844,344 +2777,329 @@ static inline HRESULT IDWriteInlineObject_GetBreakConditions(IDWriteInlineObject #ifndef __IDWriteTextFormat_INTERFACE_DEFINED__ #define __IDWriteTextFormat_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteTextFormat, 0x9c906818, 0x31d7, 0x4fd3, 0xa1,0x51, 0x7c,0x5e,0x22,0x5d,0xb5,0x5a); +DEFINE_GUID(IID_IDWriteTextFormat, 0x9c906818, 0x31d7, 0x4fd3, 0xa1, 0x51, 0x7c, 0x5e, 0x22, 0x5d, 0xb5, 0x5a); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("9c906818-31d7-4fd3-a151-7c5e225db55a") -IDWriteTextFormat : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE SetTextAlignment( - DWRITE_TEXT_ALIGNMENT alignment) = 0; +IDWriteTextFormat : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE SetTextAlignment( + DWRITE_TEXT_ALIGNMENT alignment) = 0; - virtual HRESULT STDMETHODCALLTYPE SetParagraphAlignment( - DWRITE_PARAGRAPH_ALIGNMENT alignment) = 0; + virtual HRESULT STDMETHODCALLTYPE SetParagraphAlignment( + DWRITE_PARAGRAPH_ALIGNMENT alignment) = 0; - virtual HRESULT STDMETHODCALLTYPE SetWordWrapping( - DWRITE_WORD_WRAPPING wrapping) = 0; + virtual HRESULT STDMETHODCALLTYPE SetWordWrapping( + DWRITE_WORD_WRAPPING wrapping) = 0; - virtual HRESULT STDMETHODCALLTYPE SetReadingDirection( - DWRITE_READING_DIRECTION direction) = 0; + virtual HRESULT STDMETHODCALLTYPE SetReadingDirection( + DWRITE_READING_DIRECTION direction) = 0; - virtual HRESULT STDMETHODCALLTYPE SetFlowDirection( - DWRITE_FLOW_DIRECTION direction) = 0; + virtual HRESULT STDMETHODCALLTYPE SetFlowDirection( + DWRITE_FLOW_DIRECTION direction) = 0; - virtual HRESULT STDMETHODCALLTYPE SetIncrementalTabStop( - FLOAT tabstop) = 0; + virtual HRESULT STDMETHODCALLTYPE SetIncrementalTabStop( + FLOAT tabstop) = 0; - virtual HRESULT STDMETHODCALLTYPE SetTrimming( - const DWRITE_TRIMMING *trimming, - IDWriteInlineObject *trimming_sign) = 0; + virtual HRESULT STDMETHODCALLTYPE SetTrimming( + const DWRITE_TRIMMING* trimming, + IDWriteInlineObject* trimming_sign) = 0; - virtual HRESULT STDMETHODCALLTYPE SetLineSpacing( - DWRITE_LINE_SPACING_METHOD spacing, - FLOAT line_spacing, - FLOAT baseline) = 0; + virtual HRESULT STDMETHODCALLTYPE SetLineSpacing( + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline) = 0; - virtual DWRITE_TEXT_ALIGNMENT STDMETHODCALLTYPE GetTextAlignment( - ) = 0; + virtual DWRITE_TEXT_ALIGNMENT STDMETHODCALLTYPE GetTextAlignment() = 0; - virtual DWRITE_PARAGRAPH_ALIGNMENT STDMETHODCALLTYPE GetParagraphAlignment( - ) = 0; + virtual DWRITE_PARAGRAPH_ALIGNMENT STDMETHODCALLTYPE GetParagraphAlignment() = 0; - virtual DWRITE_WORD_WRAPPING STDMETHODCALLTYPE GetWordWrapping( - ) = 0; + virtual DWRITE_WORD_WRAPPING STDMETHODCALLTYPE GetWordWrapping() = 0; - virtual DWRITE_READING_DIRECTION STDMETHODCALLTYPE GetReadingDirection( - ) = 0; + virtual DWRITE_READING_DIRECTION STDMETHODCALLTYPE GetReadingDirection() = 0; - virtual DWRITE_FLOW_DIRECTION STDMETHODCALLTYPE GetFlowDirection( - ) = 0; + virtual DWRITE_FLOW_DIRECTION STDMETHODCALLTYPE GetFlowDirection() = 0; - virtual FLOAT STDMETHODCALLTYPE GetIncrementalTabStop( - ) = 0; + virtual FLOAT STDMETHODCALLTYPE GetIncrementalTabStop() = 0; - virtual HRESULT STDMETHODCALLTYPE GetTrimming( - DWRITE_TRIMMING *options, - IDWriteInlineObject **trimming_sign) = 0; + virtual HRESULT STDMETHODCALLTYPE GetTrimming( + DWRITE_TRIMMING * options, + IDWriteInlineObject * *trimming_sign) = 0; - virtual HRESULT STDMETHODCALLTYPE GetLineSpacing( - DWRITE_LINE_SPACING_METHOD *method, - FLOAT *spacing, - FLOAT *baseline) = 0; + virtual HRESULT STDMETHODCALLTYPE GetLineSpacing( + DWRITE_LINE_SPACING_METHOD * method, + FLOAT * spacing, + FLOAT * baseline) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontCollection( - IDWriteFontCollection **collection) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontCollection( + IDWriteFontCollection * *collection) = 0; - virtual UINT32 STDMETHODCALLTYPE GetFontFamilyNameLength( - ) = 0; + virtual UINT32 STDMETHODCALLTYPE GetFontFamilyNameLength() = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontFamilyName( - WCHAR *name, - UINT32 size) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontFamilyName( + WCHAR * name, + UINT32 size) = 0; - virtual DWRITE_FONT_WEIGHT STDMETHODCALLTYPE GetFontWeight( - ) = 0; + virtual DWRITE_FONT_WEIGHT STDMETHODCALLTYPE GetFontWeight() = 0; - virtual DWRITE_FONT_STYLE STDMETHODCALLTYPE GetFontStyle( - ) = 0; + virtual DWRITE_FONT_STYLE STDMETHODCALLTYPE GetFontStyle() = 0; - virtual DWRITE_FONT_STRETCH STDMETHODCALLTYPE GetFontStretch( - ) = 0; + virtual DWRITE_FONT_STRETCH STDMETHODCALLTYPE GetFontStretch() = 0; - virtual FLOAT STDMETHODCALLTYPE GetFontSize( - ) = 0; + virtual FLOAT STDMETHODCALLTYPE GetFontSize() = 0; - virtual UINT32 STDMETHODCALLTYPE GetLocaleNameLength( - ) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocaleName( - WCHAR *name, - UINT32 size) = 0; + virtual UINT32 STDMETHODCALLTYPE GetLocaleNameLength() = 0; + virtual HRESULT STDMETHODCALLTYPE GetLocaleName( + WCHAR * name, + UINT32 size) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextFormat, 0x9c906818, 0x31d7, 0x4fd3, 0xa1,0x51, 0x7c,0x5e,0x22,0x5d,0xb5,0x5a) +__CRT_UUID_DECL(IDWriteTextFormat, 0x9c906818, 0x31d7, 0x4fd3, 0xa1, 0x51, 0x7c, 0x5e, 0x22, 0x5d, 0xb5, 0x5a) #endif #else typedef struct IDWriteTextFormatVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteTextFormat *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteTextFormat* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteTextFormat *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteTextFormat* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteTextFormat *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteTextFormat* This); - /*** IDWriteTextFormat methods ***/ - HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( - IDWriteTextFormat *This, - DWRITE_TEXT_ALIGNMENT alignment); + /*** IDWriteTextFormat methods ***/ + HRESULT(STDMETHODCALLTYPE* SetTextAlignment)( + IDWriteTextFormat* This, + DWRITE_TEXT_ALIGNMENT alignment); - HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( - IDWriteTextFormat *This, - DWRITE_PARAGRAPH_ALIGNMENT alignment); + HRESULT(STDMETHODCALLTYPE* SetParagraphAlignment)( + IDWriteTextFormat* This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); - HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( - IDWriteTextFormat *This, - DWRITE_WORD_WRAPPING wrapping); + HRESULT(STDMETHODCALLTYPE* SetWordWrapping)( + IDWriteTextFormat* This, + DWRITE_WORD_WRAPPING wrapping); - HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( - IDWriteTextFormat *This, - DWRITE_READING_DIRECTION direction); + HRESULT(STDMETHODCALLTYPE* SetReadingDirection)( + IDWriteTextFormat* This, + DWRITE_READING_DIRECTION direction); - HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( - IDWriteTextFormat *This, - DWRITE_FLOW_DIRECTION direction); + HRESULT(STDMETHODCALLTYPE* SetFlowDirection)( + IDWriteTextFormat* This, + DWRITE_FLOW_DIRECTION direction); - HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( - IDWriteTextFormat *This, - FLOAT tabstop); + HRESULT(STDMETHODCALLTYPE* SetIncrementalTabStop)( + IDWriteTextFormat* This, + FLOAT tabstop); - HRESULT (STDMETHODCALLTYPE *SetTrimming)( - IDWriteTextFormat *This, - const DWRITE_TRIMMING *trimming, - IDWriteInlineObject *trimming_sign); + HRESULT(STDMETHODCALLTYPE* SetTrimming)( + IDWriteTextFormat* This, + const DWRITE_TRIMMING* trimming, + IDWriteInlineObject* trimming_sign); - HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( - IDWriteTextFormat *This, - DWRITE_LINE_SPACING_METHOD spacing, - FLOAT line_spacing, - FLOAT baseline); + HRESULT(STDMETHODCALLTYPE* SetLineSpacing)( + IDWriteTextFormat* This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); - DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( - IDWriteTextFormat *This); + DWRITE_TEXT_ALIGNMENT(STDMETHODCALLTYPE* GetTextAlignment)( + IDWriteTextFormat* This); - DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( - IDWriteTextFormat *This); + DWRITE_PARAGRAPH_ALIGNMENT(STDMETHODCALLTYPE* GetParagraphAlignment)( + IDWriteTextFormat* This); - DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( - IDWriteTextFormat *This); + DWRITE_WORD_WRAPPING(STDMETHODCALLTYPE* GetWordWrapping)( + IDWriteTextFormat* This); - DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( - IDWriteTextFormat *This); + DWRITE_READING_DIRECTION(STDMETHODCALLTYPE* GetReadingDirection)( + IDWriteTextFormat* This); - DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( - IDWriteTextFormat *This); + DWRITE_FLOW_DIRECTION(STDMETHODCALLTYPE* GetFlowDirection)( + IDWriteTextFormat* This); - FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( - IDWriteTextFormat *This); + FLOAT(STDMETHODCALLTYPE* GetIncrementalTabStop)( + IDWriteTextFormat* This); - HRESULT (STDMETHODCALLTYPE *GetTrimming)( - IDWriteTextFormat *This, - DWRITE_TRIMMING *options, - IDWriteInlineObject **trimming_sign); + HRESULT(STDMETHODCALLTYPE* GetTrimming)( + IDWriteTextFormat* This, + DWRITE_TRIMMING* options, + IDWriteInlineObject** trimming_sign); - HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( - IDWriteTextFormat *This, - DWRITE_LINE_SPACING_METHOD *method, - FLOAT *spacing, - FLOAT *baseline); + HRESULT(STDMETHODCALLTYPE* GetLineSpacing)( + IDWriteTextFormat* This, + DWRITE_LINE_SPACING_METHOD* method, + FLOAT* spacing, + FLOAT* baseline); - HRESULT (STDMETHODCALLTYPE *GetFontCollection)( - IDWriteTextFormat *This, - IDWriteFontCollection **collection); + HRESULT(STDMETHODCALLTYPE* GetFontCollection)( + IDWriteTextFormat* This, + IDWriteFontCollection** collection); - UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( - IDWriteTextFormat *This); + UINT32(STDMETHODCALLTYPE* GetFontFamilyNameLength)( + IDWriteTextFormat* This); - HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( - IDWriteTextFormat *This, - WCHAR *name, - UINT32 size); + HRESULT(STDMETHODCALLTYPE* GetFontFamilyName)( + IDWriteTextFormat* This, + WCHAR* name, + UINT32 size); - DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( - IDWriteTextFormat *This); + DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetFontWeight)( + IDWriteTextFormat* This); - DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( - IDWriteTextFormat *This); + DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetFontStyle)( + IDWriteTextFormat* This); - DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( - IDWriteTextFormat *This); + DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetFontStretch)( + IDWriteTextFormat* This); - FLOAT (STDMETHODCALLTYPE *GetFontSize)( - IDWriteTextFormat *This); + FLOAT(STDMETHODCALLTYPE* GetFontSize)( + IDWriteTextFormat* This); - UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( - IDWriteTextFormat *This); + UINT32(STDMETHODCALLTYPE* GetLocaleNameLength)( + IDWriteTextFormat* This); - HRESULT (STDMETHODCALLTYPE *GetLocaleName)( - IDWriteTextFormat *This, - WCHAR *name, - UINT32 size); + HRESULT(STDMETHODCALLTYPE* GetLocaleName)( + IDWriteTextFormat* This, + WCHAR* name, + UINT32 size); - END_INTERFACE + END_INTERFACE } IDWriteTextFormatVtbl; interface IDWriteTextFormat { - CONST_VTBL IDWriteTextFormatVtbl* lpVtbl; + CONST_VTBL IDWriteTextFormatVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteTextFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextFormat_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteTextFormat_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteTextFormat_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteTextFormat methods ***/ -#define IDWriteTextFormat_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) -#define IDWriteTextFormat_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) -#define IDWriteTextFormat_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) -#define IDWriteTextFormat_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) -#define IDWriteTextFormat_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) -#define IDWriteTextFormat_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) -#define IDWriteTextFormat_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) -#define IDWriteTextFormat_SetLineSpacing(This,spacing,line_spacing,baseline) (This)->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline) +#define IDWriteTextFormat_SetTextAlignment(This, alignment) (This)->lpVtbl->SetTextAlignment(This, alignment) +#define IDWriteTextFormat_SetParagraphAlignment(This, alignment) (This)->lpVtbl->SetParagraphAlignment(This, alignment) +#define IDWriteTextFormat_SetWordWrapping(This, wrapping) (This)->lpVtbl->SetWordWrapping(This, wrapping) +#define IDWriteTextFormat_SetReadingDirection(This, direction) (This)->lpVtbl->SetReadingDirection(This, direction) +#define IDWriteTextFormat_SetFlowDirection(This, direction) (This)->lpVtbl->SetFlowDirection(This, direction) +#define IDWriteTextFormat_SetIncrementalTabStop(This, tabstop) (This)->lpVtbl->SetIncrementalTabStop(This, tabstop) +#define IDWriteTextFormat_SetTrimming(This, trimming, trimming_sign) (This)->lpVtbl->SetTrimming(This, trimming, trimming_sign) +#define IDWriteTextFormat_SetLineSpacing(This, spacing, line_spacing, baseline) (This)->lpVtbl->SetLineSpacing(This, spacing, line_spacing, baseline) #define IDWriteTextFormat_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) #define IDWriteTextFormat_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) #define IDWriteTextFormat_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) #define IDWriteTextFormat_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) #define IDWriteTextFormat_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) #define IDWriteTextFormat_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) -#define IDWriteTextFormat_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) -#define IDWriteTextFormat_GetLineSpacing(This,method,spacing,baseline) (This)->lpVtbl->GetLineSpacing(This,method,spacing,baseline) -#define IDWriteTextFormat_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteTextFormat_GetTrimming(This, options, trimming_sign) (This)->lpVtbl->GetTrimming(This, options, trimming_sign) +#define IDWriteTextFormat_GetLineSpacing(This, method, spacing, baseline) (This)->lpVtbl->GetLineSpacing(This, method, spacing, baseline) +#define IDWriteTextFormat_GetFontCollection(This, collection) (This)->lpVtbl->GetFontCollection(This, collection) #define IDWriteTextFormat_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This) -#define IDWriteTextFormat_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size) +#define IDWriteTextFormat_GetFontFamilyName(This, name, size) (This)->lpVtbl->GetFontFamilyName(This, name, size) #define IDWriteTextFormat_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This) #define IDWriteTextFormat_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This) #define IDWriteTextFormat_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This) #define IDWriteTextFormat_GetFontSize(This) (This)->lpVtbl->GetFontSize(This) #define IDWriteTextFormat_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This) -#define IDWriteTextFormat_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size) +#define IDWriteTextFormat_GetLocaleName(This, name, size) (This)->lpVtbl->GetLocaleName(This, name, size) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteTextFormat_QueryInterface(IDWriteTextFormat* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteTextFormat_QueryInterface(IDWriteTextFormat* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteTextFormat_AddRef(IDWriteTextFormat* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteTextFormat_Release(IDWriteTextFormat* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteTextFormat methods ***/ -static inline HRESULT IDWriteTextFormat_SetTextAlignment(IDWriteTextFormat* This,DWRITE_TEXT_ALIGNMENT alignment) { - return This->lpVtbl->SetTextAlignment(This,alignment); +static inline HRESULT IDWriteTextFormat_SetTextAlignment(IDWriteTextFormat* This, DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This, alignment); } -static inline HRESULT IDWriteTextFormat_SetParagraphAlignment(IDWriteTextFormat* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { - return This->lpVtbl->SetParagraphAlignment(This,alignment); +static inline HRESULT IDWriteTextFormat_SetParagraphAlignment(IDWriteTextFormat* This, DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This, alignment); } -static inline HRESULT IDWriteTextFormat_SetWordWrapping(IDWriteTextFormat* This,DWRITE_WORD_WRAPPING wrapping) { - return This->lpVtbl->SetWordWrapping(This,wrapping); +static inline HRESULT IDWriteTextFormat_SetWordWrapping(IDWriteTextFormat* This, DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This, wrapping); } -static inline HRESULT IDWriteTextFormat_SetReadingDirection(IDWriteTextFormat* This,DWRITE_READING_DIRECTION direction) { - return This->lpVtbl->SetReadingDirection(This,direction); +static inline HRESULT IDWriteTextFormat_SetReadingDirection(IDWriteTextFormat* This, DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This, direction); } -static inline HRESULT IDWriteTextFormat_SetFlowDirection(IDWriteTextFormat* This,DWRITE_FLOW_DIRECTION direction) { - return This->lpVtbl->SetFlowDirection(This,direction); +static inline HRESULT IDWriteTextFormat_SetFlowDirection(IDWriteTextFormat* This, DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This, direction); } -static inline HRESULT IDWriteTextFormat_SetIncrementalTabStop(IDWriteTextFormat* This,FLOAT tabstop) { - return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +static inline HRESULT IDWriteTextFormat_SetIncrementalTabStop(IDWriteTextFormat* This, FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This, tabstop); } -static inline HRESULT IDWriteTextFormat_SetTrimming(IDWriteTextFormat* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { - return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +static inline HRESULT IDWriteTextFormat_SetTrimming(IDWriteTextFormat* This, const DWRITE_TRIMMING* trimming, IDWriteInlineObject* trimming_sign) { + return This->lpVtbl->SetTrimming(This, trimming, trimming_sign); } -static inline HRESULT IDWriteTextFormat_SetLineSpacing(IDWriteTextFormat* This,DWRITE_LINE_SPACING_METHOD spacing,FLOAT line_spacing,FLOAT baseline) { - return This->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline); +static inline HRESULT IDWriteTextFormat_SetLineSpacing(IDWriteTextFormat* This, DWRITE_LINE_SPACING_METHOD spacing, FLOAT line_spacing, FLOAT baseline) { + return This->lpVtbl->SetLineSpacing(This, spacing, line_spacing, baseline); } static inline DWRITE_TEXT_ALIGNMENT IDWriteTextFormat_GetTextAlignment(IDWriteTextFormat* This) { - return This->lpVtbl->GetTextAlignment(This); + return This->lpVtbl->GetTextAlignment(This); } static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat_GetParagraphAlignment(IDWriteTextFormat* This) { - return This->lpVtbl->GetParagraphAlignment(This); + return This->lpVtbl->GetParagraphAlignment(This); } static inline DWRITE_WORD_WRAPPING IDWriteTextFormat_GetWordWrapping(IDWriteTextFormat* This) { - return This->lpVtbl->GetWordWrapping(This); + return This->lpVtbl->GetWordWrapping(This); } static inline DWRITE_READING_DIRECTION IDWriteTextFormat_GetReadingDirection(IDWriteTextFormat* This) { - return This->lpVtbl->GetReadingDirection(This); + return This->lpVtbl->GetReadingDirection(This); } static inline DWRITE_FLOW_DIRECTION IDWriteTextFormat_GetFlowDirection(IDWriteTextFormat* This) { - return This->lpVtbl->GetFlowDirection(This); + return This->lpVtbl->GetFlowDirection(This); } static inline FLOAT IDWriteTextFormat_GetIncrementalTabStop(IDWriteTextFormat* This) { - return This->lpVtbl->GetIncrementalTabStop(This); + return This->lpVtbl->GetIncrementalTabStop(This); } -static inline HRESULT IDWriteTextFormat_GetTrimming(IDWriteTextFormat* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { - return This->lpVtbl->GetTrimming(This,options,trimming_sign); +static inline HRESULT IDWriteTextFormat_GetTrimming(IDWriteTextFormat* This, DWRITE_TRIMMING* options, IDWriteInlineObject** trimming_sign) { + return This->lpVtbl->GetTrimming(This, options, trimming_sign); } -static inline HRESULT IDWriteTextFormat_GetLineSpacing(IDWriteTextFormat* This,DWRITE_LINE_SPACING_METHOD *method,FLOAT *spacing,FLOAT *baseline) { - return This->lpVtbl->GetLineSpacing(This,method,spacing,baseline); +static inline HRESULT IDWriteTextFormat_GetLineSpacing(IDWriteTextFormat* This, DWRITE_LINE_SPACING_METHOD* method, FLOAT* spacing, FLOAT* baseline) { + return This->lpVtbl->GetLineSpacing(This, method, spacing, baseline); } -static inline HRESULT IDWriteTextFormat_GetFontCollection(IDWriteTextFormat* This,IDWriteFontCollection **collection) { - return This->lpVtbl->GetFontCollection(This,collection); +static inline HRESULT IDWriteTextFormat_GetFontCollection(IDWriteTextFormat* This, IDWriteFontCollection** collection) { + return This->lpVtbl->GetFontCollection(This, collection); } static inline UINT32 IDWriteTextFormat_GetFontFamilyNameLength(IDWriteTextFormat* This) { - return This->lpVtbl->GetFontFamilyNameLength(This); + return This->lpVtbl->GetFontFamilyNameLength(This); } -static inline HRESULT IDWriteTextFormat_GetFontFamilyName(IDWriteTextFormat* This,WCHAR *name,UINT32 size) { - return This->lpVtbl->GetFontFamilyName(This,name,size); +static inline HRESULT IDWriteTextFormat_GetFontFamilyName(IDWriteTextFormat* This, WCHAR* name, UINT32 size) { + return This->lpVtbl->GetFontFamilyName(This, name, size); } static inline DWRITE_FONT_WEIGHT IDWriteTextFormat_GetFontWeight(IDWriteTextFormat* This) { - return This->lpVtbl->GetFontWeight(This); + return This->lpVtbl->GetFontWeight(This); } static inline DWRITE_FONT_STYLE IDWriteTextFormat_GetFontStyle(IDWriteTextFormat* This) { - return This->lpVtbl->GetFontStyle(This); + return This->lpVtbl->GetFontStyle(This); } static inline DWRITE_FONT_STRETCH IDWriteTextFormat_GetFontStretch(IDWriteTextFormat* This) { - return This->lpVtbl->GetFontStretch(This); + return This->lpVtbl->GetFontStretch(This); } static inline FLOAT IDWriteTextFormat_GetFontSize(IDWriteTextFormat* This) { - return This->lpVtbl->GetFontSize(This); + return This->lpVtbl->GetFontSize(This); } static inline UINT32 IDWriteTextFormat_GetLocaleNameLength(IDWriteTextFormat* This) { - return This->lpVtbl->GetLocaleNameLength(This); + return This->lpVtbl->GetLocaleNameLength(This); } -static inline HRESULT IDWriteTextFormat_GetLocaleName(IDWriteTextFormat* This,WCHAR *name,UINT32 size) { - return This->lpVtbl->GetLocaleName(This,name,size); +static inline HRESULT IDWriteTextFormat_GetLocaleName(IDWriteTextFormat* This, WCHAR* name, UINT32 size) { + return This->lpVtbl->GetLocaleName(This, name, size); } #endif #endif #endif - -#endif /* __IDWriteTextFormat_INTERFACE_DEFINED__ */ +#endif /* __IDWriteTextFormat_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteTypography interface @@ -3189,99 +3107,95 @@ static inline HRESULT IDWriteTextFormat_GetLocaleName(IDWriteTextFormat* This,WC #ifndef __IDWriteTypography_INTERFACE_DEFINED__ #define __IDWriteTypography_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteTypography, 0x55f1112b, 0x1dc2, 0x4b3c, 0x95,0x41, 0xf4,0x68,0x94,0xed,0x85,0xb6); +DEFINE_GUID(IID_IDWriteTypography, 0x55f1112b, 0x1dc2, 0x4b3c, 0x95, 0x41, 0xf4, 0x68, 0x94, 0xed, 0x85, 0xb6); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("55f1112b-1dc2-4b3c-9541-f46894ed85b6") -IDWriteTypography : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE AddFontFeature( - DWRITE_FONT_FEATURE feature) = 0; +IDWriteTypography : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE AddFontFeature( + DWRITE_FONT_FEATURE feature) = 0; - virtual UINT32 STDMETHODCALLTYPE GetFontFeatureCount( - ) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontFeature( - UINT32 index, - DWRITE_FONT_FEATURE *feature) = 0; + virtual UINT32 STDMETHODCALLTYPE GetFontFeatureCount() = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontFeature( + UINT32 index, + DWRITE_FONT_FEATURE * feature) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTypography, 0x55f1112b, 0x1dc2, 0x4b3c, 0x95,0x41, 0xf4,0x68,0x94,0xed,0x85,0xb6) +__CRT_UUID_DECL(IDWriteTypography, 0x55f1112b, 0x1dc2, 0x4b3c, 0x95, 0x41, 0xf4, 0x68, 0x94, 0xed, 0x85, 0xb6) #endif #else typedef struct IDWriteTypographyVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteTypography *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteTypography* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteTypography *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteTypography* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteTypography *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteTypography* This); - /*** IDWriteTypography methods ***/ - HRESULT (STDMETHODCALLTYPE *AddFontFeature)( - IDWriteTypography *This, - DWRITE_FONT_FEATURE feature); + /*** IDWriteTypography methods ***/ + HRESULT(STDMETHODCALLTYPE* AddFontFeature)( + IDWriteTypography* This, + DWRITE_FONT_FEATURE feature); - UINT32 (STDMETHODCALLTYPE *GetFontFeatureCount)( - IDWriteTypography *This); + UINT32(STDMETHODCALLTYPE* GetFontFeatureCount)( + IDWriteTypography* This); - HRESULT (STDMETHODCALLTYPE *GetFontFeature)( - IDWriteTypography *This, - UINT32 index, - DWRITE_FONT_FEATURE *feature); + HRESULT(STDMETHODCALLTYPE* GetFontFeature)( + IDWriteTypography* This, + UINT32 index, + DWRITE_FONT_FEATURE* feature); - END_INTERFACE + END_INTERFACE } IDWriteTypographyVtbl; interface IDWriteTypography { - CONST_VTBL IDWriteTypographyVtbl* lpVtbl; + CONST_VTBL IDWriteTypographyVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteTypography_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTypography_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteTypography_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteTypography_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteTypography methods ***/ -#define IDWriteTypography_AddFontFeature(This,feature) (This)->lpVtbl->AddFontFeature(This,feature) +#define IDWriteTypography_AddFontFeature(This, feature) (This)->lpVtbl->AddFontFeature(This, feature) #define IDWriteTypography_GetFontFeatureCount(This) (This)->lpVtbl->GetFontFeatureCount(This) -#define IDWriteTypography_GetFontFeature(This,index,feature) (This)->lpVtbl->GetFontFeature(This,index,feature) +#define IDWriteTypography_GetFontFeature(This, index, feature) (This)->lpVtbl->GetFontFeature(This, index, feature) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteTypography_QueryInterface(IDWriteTypography* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteTypography_QueryInterface(IDWriteTypography* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteTypography_AddRef(IDWriteTypography* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteTypography_Release(IDWriteTypography* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteTypography methods ***/ -static inline HRESULT IDWriteTypography_AddFontFeature(IDWriteTypography* This,DWRITE_FONT_FEATURE feature) { - return This->lpVtbl->AddFontFeature(This,feature); +static inline HRESULT IDWriteTypography_AddFontFeature(IDWriteTypography* This, DWRITE_FONT_FEATURE feature) { + return This->lpVtbl->AddFontFeature(This, feature); } static inline UINT32 IDWriteTypography_GetFontFeatureCount(IDWriteTypography* This) { - return This->lpVtbl->GetFontFeatureCount(This); + return This->lpVtbl->GetFontFeatureCount(This); } -static inline HRESULT IDWriteTypography_GetFontFeature(IDWriteTypography* This,UINT32 index,DWRITE_FONT_FEATURE *feature) { - return This->lpVtbl->GetFontFeature(This,index,feature); +static inline HRESULT IDWriteTypography_GetFontFeature(IDWriteTypography* This, UINT32 index, DWRITE_FONT_FEATURE* feature) { + return This->lpVtbl->GetFontFeature(This, index, feature); } #endif #endif #endif - -#endif /* __IDWriteTypography_INTERFACE_DEFINED__ */ +#endif /* __IDWriteTypography_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteBitmapRenderTarget interface @@ -3289,185 +3203,180 @@ static inline HRESULT IDWriteTypography_GetFontFeature(IDWriteTypography* This,U #ifndef __IDWriteBitmapRenderTarget_INTERFACE_DEFINED__ #define __IDWriteBitmapRenderTarget_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteBitmapRenderTarget, 0x5e5a32a3, 0x8dff, 0x4773, 0x9f,0xf6, 0x06,0x96,0xea,0xb7,0x72,0x67); +DEFINE_GUID(IID_IDWriteBitmapRenderTarget, 0x5e5a32a3, 0x8dff, 0x4773, 0x9f, 0xf6, 0x06, 0x96, 0xea, 0xb7, 0x72, 0x67); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("5e5a32a3-8dff-4773-9ff6-0696eab77267") -IDWriteBitmapRenderTarget : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE DrawGlyphRun( - FLOAT baselineOriginX, - FLOAT baselineOriginY, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_GLYPH_RUN *glyph_run, - IDWriteRenderingParams *params, - COLORREF textColor, - RECT *blackbox_rect = 0) = 0; +IDWriteBitmapRenderTarget : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE DrawGlyphRun( + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN* glyph_run, + IDWriteRenderingParams* params, + COLORREF textColor, + RECT* blackbox_rect = 0) = 0; - virtual HDC STDMETHODCALLTYPE GetMemoryDC( - ) = 0; + virtual HDC STDMETHODCALLTYPE GetMemoryDC() = 0; - virtual FLOAT STDMETHODCALLTYPE GetPixelsPerDip( - ) = 0; + virtual FLOAT STDMETHODCALLTYPE GetPixelsPerDip() = 0; - virtual HRESULT STDMETHODCALLTYPE SetPixelsPerDip( - FLOAT pixels_per_dip) = 0; + virtual HRESULT STDMETHODCALLTYPE SetPixelsPerDip( + FLOAT pixels_per_dip) = 0; - virtual HRESULT STDMETHODCALLTYPE GetCurrentTransform( - DWRITE_MATRIX *transform) = 0; + virtual HRESULT STDMETHODCALLTYPE GetCurrentTransform( + DWRITE_MATRIX * transform) = 0; - virtual HRESULT STDMETHODCALLTYPE SetCurrentTransform( - const DWRITE_MATRIX *transform) = 0; + virtual HRESULT STDMETHODCALLTYPE SetCurrentTransform( + const DWRITE_MATRIX* transform) = 0; - virtual HRESULT STDMETHODCALLTYPE GetSize( - SIZE *size) = 0; - - virtual HRESULT STDMETHODCALLTYPE Resize( - UINT32 width, - UINT32 height) = 0; + virtual HRESULT STDMETHODCALLTYPE GetSize( + SIZE * size) = 0; + virtual HRESULT STDMETHODCALLTYPE Resize( + UINT32 width, + UINT32 height) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteBitmapRenderTarget, 0x5e5a32a3, 0x8dff, 0x4773, 0x9f,0xf6, 0x06,0x96,0xea,0xb7,0x72,0x67) +__CRT_UUID_DECL(IDWriteBitmapRenderTarget, 0x5e5a32a3, 0x8dff, 0x4773, 0x9f, 0xf6, 0x06, 0x96, 0xea, 0xb7, 0x72, 0x67) #endif #else typedef struct IDWriteBitmapRenderTargetVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteBitmapRenderTarget *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteBitmapRenderTarget* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteBitmapRenderTarget *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteBitmapRenderTarget* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteBitmapRenderTarget *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteBitmapRenderTarget* This); - /*** IDWriteBitmapRenderTarget methods ***/ - HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)( - IDWriteBitmapRenderTarget *This, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_GLYPH_RUN *glyph_run, - IDWriteRenderingParams *params, - COLORREF textColor, - RECT *blackbox_rect); + /*** IDWriteBitmapRenderTarget methods ***/ + HRESULT(STDMETHODCALLTYPE* DrawGlyphRun)( + IDWriteBitmapRenderTarget* This, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN* glyph_run, + IDWriteRenderingParams* params, + COLORREF textColor, + RECT* blackbox_rect); - HDC (STDMETHODCALLTYPE *GetMemoryDC)( - IDWriteBitmapRenderTarget *This); + HDC(STDMETHODCALLTYPE* GetMemoryDC)( + IDWriteBitmapRenderTarget* This); - FLOAT (STDMETHODCALLTYPE *GetPixelsPerDip)( - IDWriteBitmapRenderTarget *This); + FLOAT(STDMETHODCALLTYPE* GetPixelsPerDip)( + IDWriteBitmapRenderTarget* This); - HRESULT (STDMETHODCALLTYPE *SetPixelsPerDip)( - IDWriteBitmapRenderTarget *This, - FLOAT pixels_per_dip); + HRESULT(STDMETHODCALLTYPE* SetPixelsPerDip)( + IDWriteBitmapRenderTarget* This, + FLOAT pixels_per_dip); - HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)( - IDWriteBitmapRenderTarget *This, - DWRITE_MATRIX *transform); + HRESULT(STDMETHODCALLTYPE* GetCurrentTransform)( + IDWriteBitmapRenderTarget* This, + DWRITE_MATRIX* transform); - HRESULT (STDMETHODCALLTYPE *SetCurrentTransform)( - IDWriteBitmapRenderTarget *This, - const DWRITE_MATRIX *transform); + HRESULT(STDMETHODCALLTYPE* SetCurrentTransform)( + IDWriteBitmapRenderTarget* This, + const DWRITE_MATRIX* transform); - HRESULT (STDMETHODCALLTYPE *GetSize)( - IDWriteBitmapRenderTarget *This, - SIZE *size); + HRESULT(STDMETHODCALLTYPE* GetSize)( + IDWriteBitmapRenderTarget* This, + SIZE* size); - HRESULT (STDMETHODCALLTYPE *Resize)( - IDWriteBitmapRenderTarget *This, - UINT32 width, - UINT32 height); + HRESULT(STDMETHODCALLTYPE* Resize)( + IDWriteBitmapRenderTarget* This, + UINT32 width, + UINT32 height); - END_INTERFACE + END_INTERFACE } IDWriteBitmapRenderTargetVtbl; interface IDWriteBitmapRenderTarget { - CONST_VTBL IDWriteBitmapRenderTargetVtbl* lpVtbl; + CONST_VTBL IDWriteBitmapRenderTargetVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteBitmapRenderTarget_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteBitmapRenderTarget_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteBitmapRenderTarget_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteBitmapRenderTarget_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteBitmapRenderTarget methods ***/ -#define IDWriteBitmapRenderTarget_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) +#define IDWriteBitmapRenderTarget_DrawGlyphRun(This, baselineOriginX, baselineOriginY, measuring_mode, glyph_run, params, textColor, blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This, baselineOriginX, baselineOriginY, measuring_mode, glyph_run, params, textColor, blackbox_rect) #define IDWriteBitmapRenderTarget_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This) #define IDWriteBitmapRenderTarget_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This) -#define IDWriteBitmapRenderTarget_SetPixelsPerDip(This,pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This,pixels_per_dip) -#define IDWriteBitmapRenderTarget_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform) -#define IDWriteBitmapRenderTarget_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform) -#define IDWriteBitmapRenderTarget_GetSize(This,size) (This)->lpVtbl->GetSize(This,size) -#define IDWriteBitmapRenderTarget_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height) +#define IDWriteBitmapRenderTarget_SetPixelsPerDip(This, pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This, pixels_per_dip) +#define IDWriteBitmapRenderTarget_GetCurrentTransform(This, transform) (This)->lpVtbl->GetCurrentTransform(This, transform) +#define IDWriteBitmapRenderTarget_SetCurrentTransform(This, transform) (This)->lpVtbl->SetCurrentTransform(This, transform) +#define IDWriteBitmapRenderTarget_GetSize(This, size) (This)->lpVtbl->GetSize(This, size) +#define IDWriteBitmapRenderTarget_Resize(This, width, height) (This)->lpVtbl->Resize(This, width, height) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteBitmapRenderTarget_QueryInterface(IDWriteBitmapRenderTarget* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteBitmapRenderTarget_QueryInterface(IDWriteBitmapRenderTarget* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteBitmapRenderTarget_AddRef(IDWriteBitmapRenderTarget* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteBitmapRenderTarget_Release(IDWriteBitmapRenderTarget* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteBitmapRenderTarget methods ***/ -static inline HRESULT IDWriteBitmapRenderTarget_DrawGlyphRun(IDWriteBitmapRenderTarget* This,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *glyph_run,IDWriteRenderingParams *params,COLORREF textColor,RECT *blackbox_rect) { - return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect); +static inline HRESULT IDWriteBitmapRenderTarget_DrawGlyphRun(IDWriteBitmapRenderTarget* This, FLOAT baselineOriginX, FLOAT baselineOriginY, DWRITE_MEASURING_MODE measuring_mode, const DWRITE_GLYPH_RUN* glyph_run, IDWriteRenderingParams* params, COLORREF textColor, RECT* blackbox_rect) { + return This->lpVtbl->DrawGlyphRun(This, baselineOriginX, baselineOriginY, measuring_mode, glyph_run, params, textColor, blackbox_rect); } static inline HDC IDWriteBitmapRenderTarget_GetMemoryDC(IDWriteBitmapRenderTarget* This) { - return This->lpVtbl->GetMemoryDC(This); + return This->lpVtbl->GetMemoryDC(This); } static inline FLOAT IDWriteBitmapRenderTarget_GetPixelsPerDip(IDWriteBitmapRenderTarget* This) { - return This->lpVtbl->GetPixelsPerDip(This); + return This->lpVtbl->GetPixelsPerDip(This); } -static inline HRESULT IDWriteBitmapRenderTarget_SetPixelsPerDip(IDWriteBitmapRenderTarget* This,FLOAT pixels_per_dip) { - return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip); +static inline HRESULT IDWriteBitmapRenderTarget_SetPixelsPerDip(IDWriteBitmapRenderTarget* This, FLOAT pixels_per_dip) { + return This->lpVtbl->SetPixelsPerDip(This, pixels_per_dip); } -static inline HRESULT IDWriteBitmapRenderTarget_GetCurrentTransform(IDWriteBitmapRenderTarget* This,DWRITE_MATRIX *transform) { - return This->lpVtbl->GetCurrentTransform(This,transform); +static inline HRESULT IDWriteBitmapRenderTarget_GetCurrentTransform(IDWriteBitmapRenderTarget* This, DWRITE_MATRIX* transform) { + return This->lpVtbl->GetCurrentTransform(This, transform); } -static inline HRESULT IDWriteBitmapRenderTarget_SetCurrentTransform(IDWriteBitmapRenderTarget* This,const DWRITE_MATRIX *transform) { - return This->lpVtbl->SetCurrentTransform(This,transform); +static inline HRESULT IDWriteBitmapRenderTarget_SetCurrentTransform(IDWriteBitmapRenderTarget* This, const DWRITE_MATRIX* transform) { + return This->lpVtbl->SetCurrentTransform(This, transform); } -static inline HRESULT IDWriteBitmapRenderTarget_GetSize(IDWriteBitmapRenderTarget* This,SIZE *size) { - return This->lpVtbl->GetSize(This,size); +static inline HRESULT IDWriteBitmapRenderTarget_GetSize(IDWriteBitmapRenderTarget* This, SIZE* size) { + return This->lpVtbl->GetSize(This, size); } -static inline HRESULT IDWriteBitmapRenderTarget_Resize(IDWriteBitmapRenderTarget* This,UINT32 width,UINT32 height) { - return This->lpVtbl->Resize(This,width,height); +static inline HRESULT IDWriteBitmapRenderTarget_Resize(IDWriteBitmapRenderTarget* This, UINT32 width, UINT32 height) { + return This->lpVtbl->Resize(This, width, height); } #endif #endif #endif - -#endif /* __IDWriteBitmapRenderTarget_INTERFACE_DEFINED__ */ +#endif /* __IDWriteBitmapRenderTarget_INTERFACE_DEFINED__ */ #ifndef _WINGDI_ typedef struct tagLOGFONTW { - LONG lfHeight; - LONG lfWidth; - LONG lfEscapement; - LONG lfOrientation; - LONG lfWeight; - BYTE lfItalic; - BYTE lfUnderline; - BYTE lfStrikeOut; - BYTE lfCharSet; - BYTE lfOutPrecision; - BYTE lfClipPrecision; - BYTE lfQuality; - BYTE lfPitchAndFamily; - WCHAR lfFaceName[32]; + LONG lfHeight; + LONG lfWidth; + LONG lfEscapement; + LONG lfOrientation; + LONG lfWeight; + BYTE lfItalic; + BYTE lfUnderline; + BYTE lfStrikeOut; + BYTE lfCharSet; + BYTE lfOutPrecision; + BYTE lfClipPrecision; + BYTE lfQuality; + BYTE lfPitchAndFamily; + WCHAR lfFaceName[32]; } LOGFONTW; -typedef struct tagLOGFONTW *PLOGFONTW; -typedef struct tagLOGFONTW *LPLOGFONTW; +typedef struct tagLOGFONTW* PLOGFONTW; +typedef struct tagLOGFONTW* LPLOGFONTW; #endif /* _WINGDI_ */ /***************************************************************************** * IDWriteGdiInterop interface @@ -3475,136 +3384,133 @@ typedef struct tagLOGFONTW *LPLOGFONTW; #ifndef __IDWriteGdiInterop_INTERFACE_DEFINED__ #define __IDWriteGdiInterop_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteGdiInterop, 0x1edd9491, 0x9853, 0x4299, 0x89,0x8f, 0x64,0x32,0x98,0x3b,0x6f,0x3a); +DEFINE_GUID(IID_IDWriteGdiInterop, 0x1edd9491, 0x9853, 0x4299, 0x89, 0x8f, 0x64, 0x32, 0x98, 0x3b, 0x6f, 0x3a); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("1edd9491-9853-4299-898f-6432983b6f3a") -IDWriteGdiInterop : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE CreateFontFromLOGFONT( - const LOGFONTW *logfont, - IDWriteFont **font) = 0; +IDWriteGdiInterop : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE CreateFontFromLOGFONT( + const LOGFONTW* logfont, + IDWriteFont** font) = 0; - virtual HRESULT STDMETHODCALLTYPE ConvertFontToLOGFONT( - IDWriteFont *font, - LOGFONTW *logfont, - WINBOOL *is_systemfont) = 0; + virtual HRESULT STDMETHODCALLTYPE ConvertFontToLOGFONT( + IDWriteFont * font, + LOGFONTW * logfont, + WINBOOL * is_systemfont) = 0; - virtual HRESULT STDMETHODCALLTYPE ConvertFontFaceToLOGFONT( - IDWriteFontFace *font, - LOGFONTW *logfont) = 0; + virtual HRESULT STDMETHODCALLTYPE ConvertFontFaceToLOGFONT( + IDWriteFontFace * font, + LOGFONTW * logfont) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateFontFaceFromHdc( - HDC hdc, - IDWriteFontFace **fontface) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateBitmapRenderTarget( - HDC hdc, - UINT32 width, - UINT32 height, - IDWriteBitmapRenderTarget **target) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateFontFaceFromHdc( + HDC hdc, + IDWriteFontFace * *fontface) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateBitmapRenderTarget( + HDC hdc, + UINT32 width, + UINT32 height, + IDWriteBitmapRenderTarget * *target) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteGdiInterop, 0x1edd9491, 0x9853, 0x4299, 0x89,0x8f, 0x64,0x32,0x98,0x3b,0x6f,0x3a) +__CRT_UUID_DECL(IDWriteGdiInterop, 0x1edd9491, 0x9853, 0x4299, 0x89, 0x8f, 0x64, 0x32, 0x98, 0x3b, 0x6f, 0x3a) #endif #else typedef struct IDWriteGdiInteropVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteGdiInterop *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteGdiInterop* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteGdiInterop *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteGdiInterop* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteGdiInterop *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteGdiInterop* This); - /*** IDWriteGdiInterop methods ***/ - HRESULT (STDMETHODCALLTYPE *CreateFontFromLOGFONT)( - IDWriteGdiInterop *This, - const LOGFONTW *logfont, - IDWriteFont **font); + /*** IDWriteGdiInterop methods ***/ + HRESULT(STDMETHODCALLTYPE* CreateFontFromLOGFONT)( + IDWriteGdiInterop* This, + const LOGFONTW* logfont, + IDWriteFont** font); - HRESULT (STDMETHODCALLTYPE *ConvertFontToLOGFONT)( - IDWriteGdiInterop *This, - IDWriteFont *font, - LOGFONTW *logfont, - WINBOOL *is_systemfont); + HRESULT(STDMETHODCALLTYPE* ConvertFontToLOGFONT)( + IDWriteGdiInterop* This, + IDWriteFont* font, + LOGFONTW* logfont, + WINBOOL* is_systemfont); - HRESULT (STDMETHODCALLTYPE *ConvertFontFaceToLOGFONT)( - IDWriteGdiInterop *This, - IDWriteFontFace *font, - LOGFONTW *logfont); + HRESULT(STDMETHODCALLTYPE* ConvertFontFaceToLOGFONT)( + IDWriteGdiInterop* This, + IDWriteFontFace* font, + LOGFONTW* logfont); - HRESULT (STDMETHODCALLTYPE *CreateFontFaceFromHdc)( - IDWriteGdiInterop *This, - HDC hdc, - IDWriteFontFace **fontface); + HRESULT(STDMETHODCALLTYPE* CreateFontFaceFromHdc)( + IDWriteGdiInterop* This, + HDC hdc, + IDWriteFontFace** fontface); - HRESULT (STDMETHODCALLTYPE *CreateBitmapRenderTarget)( - IDWriteGdiInterop *This, - HDC hdc, - UINT32 width, - UINT32 height, - IDWriteBitmapRenderTarget **target); + HRESULT(STDMETHODCALLTYPE* CreateBitmapRenderTarget)( + IDWriteGdiInterop* This, + HDC hdc, + UINT32 width, + UINT32 height, + IDWriteBitmapRenderTarget** target); - END_INTERFACE + END_INTERFACE } IDWriteGdiInteropVtbl; interface IDWriteGdiInterop { - CONST_VTBL IDWriteGdiInteropVtbl* lpVtbl; + CONST_VTBL IDWriteGdiInteropVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteGdiInterop_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteGdiInterop_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteGdiInterop_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteGdiInterop_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteGdiInterop methods ***/ -#define IDWriteGdiInterop_CreateFontFromLOGFONT(This,logfont,font) (This)->lpVtbl->CreateFontFromLOGFONT(This,logfont,font) -#define IDWriteGdiInterop_ConvertFontToLOGFONT(This,font,logfont,is_systemfont) (This)->lpVtbl->ConvertFontToLOGFONT(This,font,logfont,is_systemfont) -#define IDWriteGdiInterop_ConvertFontFaceToLOGFONT(This,font,logfont) (This)->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logfont) -#define IDWriteGdiInterop_CreateFontFaceFromHdc(This,hdc,fontface) (This)->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontface) -#define IDWriteGdiInterop_CreateBitmapRenderTarget(This,hdc,width,height,target) (This)->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,target) +#define IDWriteGdiInterop_CreateFontFromLOGFONT(This, logfont, font) (This)->lpVtbl->CreateFontFromLOGFONT(This, logfont, font) +#define IDWriteGdiInterop_ConvertFontToLOGFONT(This, font, logfont, is_systemfont) (This)->lpVtbl->ConvertFontToLOGFONT(This, font, logfont, is_systemfont) +#define IDWriteGdiInterop_ConvertFontFaceToLOGFONT(This, font, logfont) (This)->lpVtbl->ConvertFontFaceToLOGFONT(This, font, logfont) +#define IDWriteGdiInterop_CreateFontFaceFromHdc(This, hdc, fontface) (This)->lpVtbl->CreateFontFaceFromHdc(This, hdc, fontface) +#define IDWriteGdiInterop_CreateBitmapRenderTarget(This, hdc, width, height, target) (This)->lpVtbl->CreateBitmapRenderTarget(This, hdc, width, height, target) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteGdiInterop_QueryInterface(IDWriteGdiInterop* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteGdiInterop_QueryInterface(IDWriteGdiInterop* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteGdiInterop_AddRef(IDWriteGdiInterop* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteGdiInterop_Release(IDWriteGdiInterop* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteGdiInterop methods ***/ -static inline HRESULT IDWriteGdiInterop_CreateFontFromLOGFONT(IDWriteGdiInterop* This,const LOGFONTW *logfont,IDWriteFont **font) { - return This->lpVtbl->CreateFontFromLOGFONT(This,logfont,font); +static inline HRESULT IDWriteGdiInterop_CreateFontFromLOGFONT(IDWriteGdiInterop* This, const LOGFONTW* logfont, IDWriteFont** font) { + return This->lpVtbl->CreateFontFromLOGFONT(This, logfont, font); } -static inline HRESULT IDWriteGdiInterop_ConvertFontToLOGFONT(IDWriteGdiInterop* This,IDWriteFont *font,LOGFONTW *logfont,WINBOOL *is_systemfont) { - return This->lpVtbl->ConvertFontToLOGFONT(This,font,logfont,is_systemfont); +static inline HRESULT IDWriteGdiInterop_ConvertFontToLOGFONT(IDWriteGdiInterop* This, IDWriteFont* font, LOGFONTW* logfont, WINBOOL* is_systemfont) { + return This->lpVtbl->ConvertFontToLOGFONT(This, font, logfont, is_systemfont); } -static inline HRESULT IDWriteGdiInterop_ConvertFontFaceToLOGFONT(IDWriteGdiInterop* This,IDWriteFontFace *font,LOGFONTW *logfont) { - return This->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logfont); +static inline HRESULT IDWriteGdiInterop_ConvertFontFaceToLOGFONT(IDWriteGdiInterop* This, IDWriteFontFace* font, LOGFONTW* logfont) { + return This->lpVtbl->ConvertFontFaceToLOGFONT(This, font, logfont); } -static inline HRESULT IDWriteGdiInterop_CreateFontFaceFromHdc(IDWriteGdiInterop* This,HDC hdc,IDWriteFontFace **fontface) { - return This->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontface); +static inline HRESULT IDWriteGdiInterop_CreateFontFaceFromHdc(IDWriteGdiInterop* This, HDC hdc, IDWriteFontFace** fontface) { + return This->lpVtbl->CreateFontFaceFromHdc(This, hdc, fontface); } -static inline HRESULT IDWriteGdiInterop_CreateBitmapRenderTarget(IDWriteGdiInterop* This,HDC hdc,UINT32 width,UINT32 height,IDWriteBitmapRenderTarget **target) { - return This->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,target); +static inline HRESULT IDWriteGdiInterop_CreateBitmapRenderTarget(IDWriteGdiInterop* This, HDC hdc, UINT32 width, UINT32 height, IDWriteBitmapRenderTarget** target) { + return This->lpVtbl->CreateBitmapRenderTarget(This, hdc, width, height, target); } #endif #endif #endif - -#endif /* __IDWriteGdiInterop_INTERFACE_DEFINED__ */ +#endif /* __IDWriteGdiInterop_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteTextLayout interface @@ -3612,781 +3518,776 @@ static inline HRESULT IDWriteGdiInterop_CreateBitmapRenderTarget(IDWriteGdiInter #ifndef __IDWriteTextLayout_INTERFACE_DEFINED__ #define __IDWriteTextLayout_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteTextLayout, 0x53737037, 0x6d14, 0x410b, 0x9b,0xfe, 0x0b,0x18,0x2b,0xb7,0x09,0x61); +DEFINE_GUID(IID_IDWriteTextLayout, 0x53737037, 0x6d14, 0x410b, 0x9b, 0xfe, 0x0b, 0x18, 0x2b, 0xb7, 0x09, 0x61); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("53737037-6d14-410b-9bfe-0b182bb70961") -IDWriteTextLayout : public IDWriteTextFormat -{ - virtual HRESULT STDMETHODCALLTYPE SetMaxWidth( - FLOAT maxWidth) = 0; +IDWriteTextLayout : public IDWriteTextFormat { + virtual HRESULT STDMETHODCALLTYPE SetMaxWidth( + FLOAT maxWidth) = 0; - virtual HRESULT STDMETHODCALLTYPE SetMaxHeight( - FLOAT maxHeight) = 0; + virtual HRESULT STDMETHODCALLTYPE SetMaxHeight( + FLOAT maxHeight) = 0; - virtual HRESULT STDMETHODCALLTYPE SetFontCollection( - IDWriteFontCollection *collection, - DWRITE_TEXT_RANGE range) = 0; + virtual HRESULT STDMETHODCALLTYPE SetFontCollection( + IDWriteFontCollection * collection, + DWRITE_TEXT_RANGE range) = 0; - virtual HRESULT STDMETHODCALLTYPE SetFontFamilyName( - const WCHAR *name, - DWRITE_TEXT_RANGE range) = 0; + virtual HRESULT STDMETHODCALLTYPE SetFontFamilyName( + const WCHAR* name, + DWRITE_TEXT_RANGE range) = 0; - virtual HRESULT STDMETHODCALLTYPE SetFontWeight( - DWRITE_FONT_WEIGHT weight, - DWRITE_TEXT_RANGE range) = 0; + virtual HRESULT STDMETHODCALLTYPE SetFontWeight( + DWRITE_FONT_WEIGHT weight, + DWRITE_TEXT_RANGE range) = 0; - virtual HRESULT STDMETHODCALLTYPE SetFontStyle( - DWRITE_FONT_STYLE style, - DWRITE_TEXT_RANGE range) = 0; + virtual HRESULT STDMETHODCALLTYPE SetFontStyle( + DWRITE_FONT_STYLE style, + DWRITE_TEXT_RANGE range) = 0; - virtual HRESULT STDMETHODCALLTYPE SetFontStretch( - DWRITE_FONT_STRETCH stretch, - DWRITE_TEXT_RANGE range) = 0; + virtual HRESULT STDMETHODCALLTYPE SetFontStretch( + DWRITE_FONT_STRETCH stretch, + DWRITE_TEXT_RANGE range) = 0; - virtual HRESULT STDMETHODCALLTYPE SetFontSize( - FLOAT size, - DWRITE_TEXT_RANGE range) = 0; + virtual HRESULT STDMETHODCALLTYPE SetFontSize( + FLOAT size, + DWRITE_TEXT_RANGE range) = 0; - virtual HRESULT STDMETHODCALLTYPE SetUnderline( - WINBOOL underline, - DWRITE_TEXT_RANGE range) = 0; + virtual HRESULT STDMETHODCALLTYPE SetUnderline( + WINBOOL underline, + DWRITE_TEXT_RANGE range) = 0; - virtual HRESULT STDMETHODCALLTYPE SetStrikethrough( - WINBOOL strikethrough, - DWRITE_TEXT_RANGE range) = 0; + virtual HRESULT STDMETHODCALLTYPE SetStrikethrough( + WINBOOL strikethrough, + DWRITE_TEXT_RANGE range) = 0; - virtual HRESULT STDMETHODCALLTYPE SetDrawingEffect( - IUnknown *effect, - DWRITE_TEXT_RANGE range) = 0; + virtual HRESULT STDMETHODCALLTYPE SetDrawingEffect( + IUnknown * effect, + DWRITE_TEXT_RANGE range) = 0; - virtual HRESULT STDMETHODCALLTYPE SetInlineObject( - IDWriteInlineObject *object, - DWRITE_TEXT_RANGE range) = 0; + virtual HRESULT STDMETHODCALLTYPE SetInlineObject( + IDWriteInlineObject * object, + DWRITE_TEXT_RANGE range) = 0; - virtual HRESULT STDMETHODCALLTYPE SetTypography( - IDWriteTypography *typography, - DWRITE_TEXT_RANGE range) = 0; + virtual HRESULT STDMETHODCALLTYPE SetTypography( + IDWriteTypography * typography, + DWRITE_TEXT_RANGE range) = 0; - virtual HRESULT STDMETHODCALLTYPE SetLocaleName( - const WCHAR *locale, - DWRITE_TEXT_RANGE range) = 0; + virtual HRESULT STDMETHODCALLTYPE SetLocaleName( + const WCHAR* locale, + DWRITE_TEXT_RANGE range) = 0; - virtual FLOAT STDMETHODCALLTYPE GetMaxWidth( - ) = 0; + virtual FLOAT STDMETHODCALLTYPE GetMaxWidth() = 0; - virtual FLOAT STDMETHODCALLTYPE GetMaxHeight( - ) = 0; + virtual FLOAT STDMETHODCALLTYPE GetMaxHeight() = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontCollection( - UINT32 pos, - IDWriteFontCollection **collection, - DWRITE_TEXT_RANGE *range = 0) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontCollection( + UINT32 pos, + IDWriteFontCollection * *collection, + DWRITE_TEXT_RANGE* range = 0) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontFamilyNameLength( - UINT32 pos, - UINT32 *len, - DWRITE_TEXT_RANGE *range = 0) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontFamilyNameLength( + UINT32 pos, + UINT32 * len, + DWRITE_TEXT_RANGE* range = 0) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontFamilyName( - UINT32 position, - WCHAR *name, - UINT32 name_size, - DWRITE_TEXT_RANGE *range = 0) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontFamilyName( + UINT32 position, + WCHAR * name, + UINT32 name_size, + DWRITE_TEXT_RANGE* range = 0) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontWeight( - UINT32 position, - DWRITE_FONT_WEIGHT *weight, - DWRITE_TEXT_RANGE *range = 0) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontWeight( + UINT32 position, + DWRITE_FONT_WEIGHT * weight, + DWRITE_TEXT_RANGE* range = 0) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontStyle( - UINT32 currentPosition, - DWRITE_FONT_STYLE *style, - DWRITE_TEXT_RANGE *range = 0) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontStyle( + UINT32 currentPosition, + DWRITE_FONT_STYLE * style, + DWRITE_TEXT_RANGE* range = 0) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontStretch( - UINT32 position, - DWRITE_FONT_STRETCH *stretch, - DWRITE_TEXT_RANGE *range = 0) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontStretch( + UINT32 position, + DWRITE_FONT_STRETCH * stretch, + DWRITE_TEXT_RANGE* range = 0) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontSize( - UINT32 position, - FLOAT *size, - DWRITE_TEXT_RANGE *range = 0) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontSize( + UINT32 position, + FLOAT * size, + DWRITE_TEXT_RANGE* range = 0) = 0; - virtual HRESULT STDMETHODCALLTYPE GetUnderline( - UINT32 position, - WINBOOL *has_underline, - DWRITE_TEXT_RANGE *range = 0) = 0; + virtual HRESULT STDMETHODCALLTYPE GetUnderline( + UINT32 position, + WINBOOL * has_underline, + DWRITE_TEXT_RANGE* range = 0) = 0; - virtual HRESULT STDMETHODCALLTYPE GetStrikethrough( - UINT32 position, - WINBOOL *has_strikethrough, - DWRITE_TEXT_RANGE *range = 0) = 0; + virtual HRESULT STDMETHODCALLTYPE GetStrikethrough( + UINT32 position, + WINBOOL * has_strikethrough, + DWRITE_TEXT_RANGE* range = 0) = 0; - virtual HRESULT STDMETHODCALLTYPE GetDrawingEffect( - UINT32 position, - IUnknown **effect, - DWRITE_TEXT_RANGE *range = 0) = 0; + virtual HRESULT STDMETHODCALLTYPE GetDrawingEffect( + UINT32 position, + IUnknown * *effect, + DWRITE_TEXT_RANGE* range = 0) = 0; - virtual HRESULT STDMETHODCALLTYPE GetInlineObject( - UINT32 position, - IDWriteInlineObject **object, - DWRITE_TEXT_RANGE *range = 0) = 0; + virtual HRESULT STDMETHODCALLTYPE GetInlineObject( + UINT32 position, + IDWriteInlineObject * *object, + DWRITE_TEXT_RANGE* range = 0) = 0; - virtual HRESULT STDMETHODCALLTYPE GetTypography( - UINT32 position, - IDWriteTypography **typography, - DWRITE_TEXT_RANGE *range = 0) = 0; + virtual HRESULT STDMETHODCALLTYPE GetTypography( + UINT32 position, + IDWriteTypography * *typography, + DWRITE_TEXT_RANGE* range = 0) = 0; - virtual HRESULT STDMETHODCALLTYPE GetLocaleNameLength( - UINT32 position, - UINT32 *length, - DWRITE_TEXT_RANGE *range = 0) = 0; + virtual HRESULT STDMETHODCALLTYPE GetLocaleNameLength( + UINT32 position, + UINT32 * length, + DWRITE_TEXT_RANGE* range = 0) = 0; - virtual HRESULT STDMETHODCALLTYPE GetLocaleName( - UINT32 position, - WCHAR *name, - UINT32 name_size, - DWRITE_TEXT_RANGE *range = 0) = 0; + virtual HRESULT STDMETHODCALLTYPE GetLocaleName( + UINT32 position, + WCHAR * name, + UINT32 name_size, + DWRITE_TEXT_RANGE* range = 0) = 0; - virtual HRESULT STDMETHODCALLTYPE Draw( - void *context, - IDWriteTextRenderer *renderer, - FLOAT originX, - FLOAT originY) = 0; + virtual HRESULT STDMETHODCALLTYPE Draw( + void* context, + IDWriteTextRenderer* renderer, + FLOAT originX, + FLOAT originY) = 0; - virtual HRESULT STDMETHODCALLTYPE GetLineMetrics( - DWRITE_LINE_METRICS *metrics, - UINT32 max_count, - UINT32 *actual_count) = 0; + virtual HRESULT STDMETHODCALLTYPE GetLineMetrics( + DWRITE_LINE_METRICS * metrics, + UINT32 max_count, + UINT32 * actual_count) = 0; - virtual HRESULT STDMETHODCALLTYPE GetMetrics( - DWRITE_TEXT_METRICS *metrics) = 0; + virtual HRESULT STDMETHODCALLTYPE GetMetrics( + DWRITE_TEXT_METRICS * metrics) = 0; - virtual HRESULT STDMETHODCALLTYPE GetOverhangMetrics( - DWRITE_OVERHANG_METRICS *overhangs) = 0; + virtual HRESULT STDMETHODCALLTYPE GetOverhangMetrics( + DWRITE_OVERHANG_METRICS * overhangs) = 0; - virtual HRESULT STDMETHODCALLTYPE GetClusterMetrics( - DWRITE_CLUSTER_METRICS *metrics, - UINT32 max_count, - UINT32 *act_count) = 0; + virtual HRESULT STDMETHODCALLTYPE GetClusterMetrics( + DWRITE_CLUSTER_METRICS * metrics, + UINT32 max_count, + UINT32 * act_count) = 0; - virtual HRESULT STDMETHODCALLTYPE DetermineMinWidth( - FLOAT *min_width) = 0; + virtual HRESULT STDMETHODCALLTYPE DetermineMinWidth( + FLOAT * min_width) = 0; - virtual HRESULT STDMETHODCALLTYPE HitTestPoint( - FLOAT pointX, - FLOAT pointY, - WINBOOL *is_trailinghit, - WINBOOL *is_inside, - DWRITE_HIT_TEST_METRICS *metrics) = 0; + virtual HRESULT STDMETHODCALLTYPE HitTestPoint( + FLOAT pointX, + FLOAT pointY, + WINBOOL * is_trailinghit, + WINBOOL * is_inside, + DWRITE_HIT_TEST_METRICS * metrics) = 0; - virtual HRESULT STDMETHODCALLTYPE HitTestTextPosition( - UINT32 textPosition, - WINBOOL is_trailinghit, - FLOAT *pointX, - FLOAT *pointY, - DWRITE_HIT_TEST_METRICS *metrics) = 0; - - virtual HRESULT STDMETHODCALLTYPE HitTestTextRange( - UINT32 textPosition, - UINT32 textLength, - FLOAT originX, - FLOAT originY, - DWRITE_HIT_TEST_METRICS *metrics, - UINT32 max_metricscount, - UINT32 *actual_metricscount) = 0; + virtual HRESULT STDMETHODCALLTYPE HitTestTextPosition( + UINT32 textPosition, + WINBOOL is_trailinghit, + FLOAT * pointX, + FLOAT * pointY, + DWRITE_HIT_TEST_METRICS * metrics) = 0; + virtual HRESULT STDMETHODCALLTYPE HitTestTextRange( + UINT32 textPosition, + UINT32 textLength, + FLOAT originX, + FLOAT originY, + DWRITE_HIT_TEST_METRICS * metrics, + UINT32 max_metricscount, + UINT32 * actual_metricscount) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextLayout, 0x53737037, 0x6d14, 0x410b, 0x9b,0xfe, 0x0b,0x18,0x2b,0xb7,0x09,0x61) +__CRT_UUID_DECL(IDWriteTextLayout, 0x53737037, 0x6d14, 0x410b, 0x9b, 0xfe, 0x0b, 0x18, 0x2b, 0xb7, 0x09, 0x61) #endif #else typedef struct IDWriteTextLayoutVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteTextLayout *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteTextLayout* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteTextLayout *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteTextLayout* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteTextLayout *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteTextLayout* This); - /*** IDWriteTextFormat methods ***/ - HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( - IDWriteTextLayout *This, - DWRITE_TEXT_ALIGNMENT alignment); + /*** IDWriteTextFormat methods ***/ + HRESULT(STDMETHODCALLTYPE* SetTextAlignment)( + IDWriteTextLayout* This, + DWRITE_TEXT_ALIGNMENT alignment); - HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( - IDWriteTextLayout *This, - DWRITE_PARAGRAPH_ALIGNMENT alignment); + HRESULT(STDMETHODCALLTYPE* SetParagraphAlignment)( + IDWriteTextLayout* This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); - HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( - IDWriteTextLayout *This, - DWRITE_WORD_WRAPPING wrapping); + HRESULT(STDMETHODCALLTYPE* SetWordWrapping)( + IDWriteTextLayout* This, + DWRITE_WORD_WRAPPING wrapping); - HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( - IDWriteTextLayout *This, - DWRITE_READING_DIRECTION direction); + HRESULT(STDMETHODCALLTYPE* SetReadingDirection)( + IDWriteTextLayout* This, + DWRITE_READING_DIRECTION direction); - HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( - IDWriteTextLayout *This, - DWRITE_FLOW_DIRECTION direction); + HRESULT(STDMETHODCALLTYPE* SetFlowDirection)( + IDWriteTextLayout* This, + DWRITE_FLOW_DIRECTION direction); - HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( - IDWriteTextLayout *This, - FLOAT tabstop); + HRESULT(STDMETHODCALLTYPE* SetIncrementalTabStop)( + IDWriteTextLayout* This, + FLOAT tabstop); - HRESULT (STDMETHODCALLTYPE *SetTrimming)( - IDWriteTextLayout *This, - const DWRITE_TRIMMING *trimming, - IDWriteInlineObject *trimming_sign); - - HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( - IDWriteTextLayout *This, - DWRITE_LINE_SPACING_METHOD spacing, - FLOAT line_spacing, - FLOAT baseline); + HRESULT(STDMETHODCALLTYPE* SetTrimming)( + IDWriteTextLayout* This, + const DWRITE_TRIMMING* trimming, + IDWriteInlineObject* trimming_sign); + + HRESULT(STDMETHODCALLTYPE* SetLineSpacing)( + IDWriteTextLayout* This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); - DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( - IDWriteTextLayout *This); - - DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( - IDWriteTextLayout *This); - - DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( - IDWriteTextLayout *This); - - DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( - IDWriteTextLayout *This); - - DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( - IDWriteTextLayout *This); - - FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( - IDWriteTextLayout *This); - - HRESULT (STDMETHODCALLTYPE *GetTrimming)( - IDWriteTextLayout *This, - DWRITE_TRIMMING *options, - IDWriteInlineObject **trimming_sign); - - HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( - IDWriteTextLayout *This, - DWRITE_LINE_SPACING_METHOD *method, - FLOAT *spacing, - FLOAT *baseline); - - HRESULT (STDMETHODCALLTYPE *GetFontCollection)( - IDWriteTextLayout *This, - IDWriteFontCollection **collection); - - UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( - IDWriteTextLayout *This); - - HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( - IDWriteTextLayout *This, - WCHAR *name, - UINT32 size); - - DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( - IDWriteTextLayout *This); - - DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( - IDWriteTextLayout *This); - - DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( - IDWriteTextLayout *This); - - FLOAT (STDMETHODCALLTYPE *GetFontSize)( - IDWriteTextLayout *This); - - UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( - IDWriteTextLayout *This); - - HRESULT (STDMETHODCALLTYPE *GetLocaleName)( - IDWriteTextLayout *This, - WCHAR *name, - UINT32 size); - - /*** IDWriteTextLayout methods ***/ - HRESULT (STDMETHODCALLTYPE *SetMaxWidth)( - IDWriteTextLayout *This, - FLOAT maxWidth); - - HRESULT (STDMETHODCALLTYPE *SetMaxHeight)( - IDWriteTextLayout *This, - FLOAT maxHeight); - - HRESULT (STDMETHODCALLTYPE *SetFontCollection)( - IDWriteTextLayout *This, - IDWriteFontCollection *collection, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)( - IDWriteTextLayout *This, - const WCHAR *name, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetFontWeight)( - IDWriteTextLayout *This, - DWRITE_FONT_WEIGHT weight, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetFontStyle)( - IDWriteTextLayout *This, - DWRITE_FONT_STYLE style, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetFontStretch)( - IDWriteTextLayout *This, - DWRITE_FONT_STRETCH stretch, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetFontSize)( - IDWriteTextLayout *This, - FLOAT size, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetUnderline)( - IDWriteTextLayout *This, - WINBOOL underline, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetStrikethrough)( - IDWriteTextLayout *This, - WINBOOL strikethrough, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)( - IDWriteTextLayout *This, - IUnknown *effect, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetInlineObject)( - IDWriteTextLayout *This, - IDWriteInlineObject *object, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetTypography)( - IDWriteTextLayout *This, - IDWriteTypography *typography, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetLocaleName)( - IDWriteTextLayout *This, - const WCHAR *locale, - DWRITE_TEXT_RANGE range); - - FLOAT (STDMETHODCALLTYPE *GetMaxWidth)( - IDWriteTextLayout *This); - - FLOAT (STDMETHODCALLTYPE *GetMaxHeight)( - IDWriteTextLayout *This); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)( - IDWriteTextLayout *This, - UINT32 pos, - IDWriteFontCollection **collection, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)( - IDWriteTextLayout *This, - UINT32 pos, - UINT32 *len, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)( - IDWriteTextLayout *This, - UINT32 position, - WCHAR *name, - UINT32 name_size, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)( - IDWriteTextLayout *This, - UINT32 position, - DWRITE_FONT_WEIGHT *weight, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)( - IDWriteTextLayout *This, - UINT32 currentPosition, - DWRITE_FONT_STYLE *style, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)( - IDWriteTextLayout *This, - UINT32 position, - DWRITE_FONT_STRETCH *stretch, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)( - IDWriteTextLayout *This, - UINT32 position, - FLOAT *size, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *GetUnderline)( - IDWriteTextLayout *This, - UINT32 position, - WINBOOL *has_underline, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *GetStrikethrough)( - IDWriteTextLayout *This, - UINT32 position, - WINBOOL *has_strikethrough, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)( - IDWriteTextLayout *This, - UINT32 position, - IUnknown **effect, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *GetInlineObject)( - IDWriteTextLayout *This, - UINT32 position, - IDWriteInlineObject **object, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *GetTypography)( - IDWriteTextLayout *This, - UINT32 position, - IDWriteTypography **typography, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)( - IDWriteTextLayout *This, - UINT32 position, - UINT32 *length, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)( - IDWriteTextLayout *This, - UINT32 position, - WCHAR *name, - UINT32 name_size, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *Draw)( - IDWriteTextLayout *This, - void *context, - IDWriteTextRenderer *renderer, - FLOAT originX, - FLOAT originY); - - HRESULT (STDMETHODCALLTYPE *GetLineMetrics)( - IDWriteTextLayout *This, - DWRITE_LINE_METRICS *metrics, - UINT32 max_count, - UINT32 *actual_count); - - HRESULT (STDMETHODCALLTYPE *GetMetrics)( - IDWriteTextLayout *This, - DWRITE_TEXT_METRICS *metrics); - - HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)( - IDWriteTextLayout *This, - DWRITE_OVERHANG_METRICS *overhangs); - - HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)( - IDWriteTextLayout *This, - DWRITE_CLUSTER_METRICS *metrics, - UINT32 max_count, - UINT32 *act_count); - - HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)( - IDWriteTextLayout *This, - FLOAT *min_width); - - HRESULT (STDMETHODCALLTYPE *HitTestPoint)( - IDWriteTextLayout *This, - FLOAT pointX, - FLOAT pointY, - WINBOOL *is_trailinghit, - WINBOOL *is_inside, - DWRITE_HIT_TEST_METRICS *metrics); - - HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)( - IDWriteTextLayout *This, - UINT32 textPosition, - WINBOOL is_trailinghit, - FLOAT *pointX, - FLOAT *pointY, - DWRITE_HIT_TEST_METRICS *metrics); - - HRESULT (STDMETHODCALLTYPE *HitTestTextRange)( - IDWriteTextLayout *This, - UINT32 textPosition, - UINT32 textLength, - FLOAT originX, - FLOAT originY, - DWRITE_HIT_TEST_METRICS *metrics, - UINT32 max_metricscount, - UINT32 *actual_metricscount); - - END_INTERFACE + DWRITE_TEXT_ALIGNMENT(STDMETHODCALLTYPE* GetTextAlignment)( + IDWriteTextLayout* This); + + DWRITE_PARAGRAPH_ALIGNMENT(STDMETHODCALLTYPE* GetParagraphAlignment)( + IDWriteTextLayout* This); + + DWRITE_WORD_WRAPPING(STDMETHODCALLTYPE* GetWordWrapping)( + IDWriteTextLayout* This); + + DWRITE_READING_DIRECTION(STDMETHODCALLTYPE* GetReadingDirection)( + IDWriteTextLayout* This); + + DWRITE_FLOW_DIRECTION(STDMETHODCALLTYPE* GetFlowDirection)( + IDWriteTextLayout* This); + + FLOAT(STDMETHODCALLTYPE* GetIncrementalTabStop)( + IDWriteTextLayout* This); + + HRESULT(STDMETHODCALLTYPE* GetTrimming)( + IDWriteTextLayout* This, + DWRITE_TRIMMING* options, + IDWriteInlineObject** trimming_sign); + + HRESULT(STDMETHODCALLTYPE* GetLineSpacing)( + IDWriteTextLayout* This, + DWRITE_LINE_SPACING_METHOD* method, + FLOAT* spacing, + FLOAT* baseline); + + HRESULT(STDMETHODCALLTYPE* GetFontCollection)( + IDWriteTextLayout* This, + IDWriteFontCollection** collection); + + UINT32(STDMETHODCALLTYPE* GetFontFamilyNameLength)( + IDWriteTextLayout* This); + + HRESULT(STDMETHODCALLTYPE* GetFontFamilyName)( + IDWriteTextLayout* This, + WCHAR* name, + UINT32 size); + + DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetFontWeight)( + IDWriteTextLayout* This); + + DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetFontStyle)( + IDWriteTextLayout* This); + + DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetFontStretch)( + IDWriteTextLayout* This); + + FLOAT(STDMETHODCALLTYPE* GetFontSize)( + IDWriteTextLayout* This); + + UINT32(STDMETHODCALLTYPE* GetLocaleNameLength)( + IDWriteTextLayout* This); + + HRESULT(STDMETHODCALLTYPE* GetLocaleName)( + IDWriteTextLayout* This, + WCHAR* name, + UINT32 size); + + /*** IDWriteTextLayout methods ***/ + HRESULT(STDMETHODCALLTYPE* SetMaxWidth)( + IDWriteTextLayout* This, + FLOAT maxWidth); + + HRESULT(STDMETHODCALLTYPE* SetMaxHeight)( + IDWriteTextLayout* This, + FLOAT maxHeight); + + HRESULT(STDMETHODCALLTYPE* SetFontCollection)( + IDWriteTextLayout* This, + IDWriteFontCollection* collection, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetFontFamilyName)( + IDWriteTextLayout* This, + const WCHAR* name, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetFontWeight)( + IDWriteTextLayout* This, + DWRITE_FONT_WEIGHT weight, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetFontStyle)( + IDWriteTextLayout* This, + DWRITE_FONT_STYLE style, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetFontStretch)( + IDWriteTextLayout* This, + DWRITE_FONT_STRETCH stretch, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetFontSize)( + IDWriteTextLayout* This, + FLOAT size, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetUnderline)( + IDWriteTextLayout* This, + WINBOOL underline, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetStrikethrough)( + IDWriteTextLayout* This, + WINBOOL strikethrough, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetDrawingEffect)( + IDWriteTextLayout* This, + IUnknown* effect, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetInlineObject)( + IDWriteTextLayout* This, + IDWriteInlineObject* object, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetTypography)( + IDWriteTextLayout* This, + IDWriteTypography* typography, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetLocaleName)( + IDWriteTextLayout* This, + const WCHAR* locale, + DWRITE_TEXT_RANGE range); + + FLOAT(STDMETHODCALLTYPE* GetMaxWidth)( + IDWriteTextLayout* This); + + FLOAT(STDMETHODCALLTYPE* GetMaxHeight)( + IDWriteTextLayout* This); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontCollection)( + IDWriteTextLayout* This, + UINT32 pos, + IDWriteFontCollection** collection, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontFamilyNameLength)( + IDWriteTextLayout* This, + UINT32 pos, + UINT32* len, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontFamilyName)( + IDWriteTextLayout* This, + UINT32 position, + WCHAR* name, + UINT32 name_size, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontWeight)( + IDWriteTextLayout* This, + UINT32 position, + DWRITE_FONT_WEIGHT* weight, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontStyle)( + IDWriteTextLayout* This, + UINT32 currentPosition, + DWRITE_FONT_STYLE* style, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontStretch)( + IDWriteTextLayout* This, + UINT32 position, + DWRITE_FONT_STRETCH* stretch, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontSize)( + IDWriteTextLayout* This, + UINT32 position, + FLOAT* size, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* GetUnderline)( + IDWriteTextLayout* This, + UINT32 position, + WINBOOL* has_underline, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* GetStrikethrough)( + IDWriteTextLayout* This, + UINT32 position, + WINBOOL* has_strikethrough, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* GetDrawingEffect)( + IDWriteTextLayout* This, + UINT32 position, + IUnknown** effect, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* GetInlineObject)( + IDWriteTextLayout* This, + UINT32 position, + IDWriteInlineObject** object, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* GetTypography)( + IDWriteTextLayout* This, + UINT32 position, + IDWriteTypography** typography, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetLocaleNameLength)( + IDWriteTextLayout* This, + UINT32 position, + UINT32* length, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetLocaleName)( + IDWriteTextLayout* This, + UINT32 position, + WCHAR* name, + UINT32 name_size, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* Draw)( + IDWriteTextLayout* This, + void* context, + IDWriteTextRenderer* renderer, + FLOAT originX, + FLOAT originY); + + HRESULT(STDMETHODCALLTYPE* GetLineMetrics)( + IDWriteTextLayout* This, + DWRITE_LINE_METRICS* metrics, + UINT32 max_count, + UINT32* actual_count); + + HRESULT(STDMETHODCALLTYPE* GetMetrics)( + IDWriteTextLayout* This, + DWRITE_TEXT_METRICS* metrics); + + HRESULT(STDMETHODCALLTYPE* GetOverhangMetrics)( + IDWriteTextLayout* This, + DWRITE_OVERHANG_METRICS* overhangs); + + HRESULT(STDMETHODCALLTYPE* GetClusterMetrics)( + IDWriteTextLayout* This, + DWRITE_CLUSTER_METRICS* metrics, + UINT32 max_count, + UINT32* act_count); + + HRESULT(STDMETHODCALLTYPE* DetermineMinWidth)( + IDWriteTextLayout* This, + FLOAT* min_width); + + HRESULT(STDMETHODCALLTYPE* HitTestPoint)( + IDWriteTextLayout* This, + FLOAT pointX, + FLOAT pointY, + WINBOOL* is_trailinghit, + WINBOOL* is_inside, + DWRITE_HIT_TEST_METRICS* metrics); + + HRESULT(STDMETHODCALLTYPE* HitTestTextPosition)( + IDWriteTextLayout* This, + UINT32 textPosition, + WINBOOL is_trailinghit, + FLOAT* pointX, + FLOAT* pointY, + DWRITE_HIT_TEST_METRICS* metrics); + + HRESULT(STDMETHODCALLTYPE* HitTestTextRange)( + IDWriteTextLayout* This, + UINT32 textPosition, + UINT32 textLength, + FLOAT originX, + FLOAT originY, + DWRITE_HIT_TEST_METRICS* metrics, + UINT32 max_metricscount, + UINT32* actual_metricscount); + + END_INTERFACE } IDWriteTextLayoutVtbl; interface IDWriteTextLayout { - CONST_VTBL IDWriteTextLayoutVtbl* lpVtbl; + CONST_VTBL IDWriteTextLayoutVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteTextLayout_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextLayout_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteTextLayout_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteTextLayout_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteTextFormat methods ***/ -#define IDWriteTextLayout_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) -#define IDWriteTextLayout_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) -#define IDWriteTextLayout_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) -#define IDWriteTextLayout_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) -#define IDWriteTextLayout_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) -#define IDWriteTextLayout_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) -#define IDWriteTextLayout_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) -#define IDWriteTextLayout_SetLineSpacing(This,spacing,line_spacing,baseline) (This)->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline) +#define IDWriteTextLayout_SetTextAlignment(This, alignment) (This)->lpVtbl->SetTextAlignment(This, alignment) +#define IDWriteTextLayout_SetParagraphAlignment(This, alignment) (This)->lpVtbl->SetParagraphAlignment(This, alignment) +#define IDWriteTextLayout_SetWordWrapping(This, wrapping) (This)->lpVtbl->SetWordWrapping(This, wrapping) +#define IDWriteTextLayout_SetReadingDirection(This, direction) (This)->lpVtbl->SetReadingDirection(This, direction) +#define IDWriteTextLayout_SetFlowDirection(This, direction) (This)->lpVtbl->SetFlowDirection(This, direction) +#define IDWriteTextLayout_SetIncrementalTabStop(This, tabstop) (This)->lpVtbl->SetIncrementalTabStop(This, tabstop) +#define IDWriteTextLayout_SetTrimming(This, trimming, trimming_sign) (This)->lpVtbl->SetTrimming(This, trimming, trimming_sign) +#define IDWriteTextLayout_SetLineSpacing(This, spacing, line_spacing, baseline) (This)->lpVtbl->SetLineSpacing(This, spacing, line_spacing, baseline) #define IDWriteTextLayout_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) #define IDWriteTextLayout_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) #define IDWriteTextLayout_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) #define IDWriteTextLayout_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) #define IDWriteTextLayout_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) #define IDWriteTextLayout_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) -#define IDWriteTextLayout_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) -#define IDWriteTextLayout_GetLineSpacing(This,method,spacing,baseline) (This)->lpVtbl->GetLineSpacing(This,method,spacing,baseline) +#define IDWriteTextLayout_GetTrimming(This, options, trimming_sign) (This)->lpVtbl->GetTrimming(This, options, trimming_sign) +#define IDWriteTextLayout_GetLineSpacing(This, method, spacing, baseline) (This)->lpVtbl->GetLineSpacing(This, method, spacing, baseline) /*** IDWriteTextLayout methods ***/ -#define IDWriteTextLayout_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth) -#define IDWriteTextLayout_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight) -#define IDWriteTextLayout_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range) -#define IDWriteTextLayout_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range) -#define IDWriteTextLayout_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range) -#define IDWriteTextLayout_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range) -#define IDWriteTextLayout_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range) -#define IDWriteTextLayout_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range) -#define IDWriteTextLayout_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range) -#define IDWriteTextLayout_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range) -#define IDWriteTextLayout_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range) -#define IDWriteTextLayout_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range) -#define IDWriteTextLayout_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range) -#define IDWriteTextLayout_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range) +#define IDWriteTextLayout_SetMaxWidth(This, maxWidth) (This)->lpVtbl->SetMaxWidth(This, maxWidth) +#define IDWriteTextLayout_SetMaxHeight(This, maxHeight) (This)->lpVtbl->SetMaxHeight(This, maxHeight) +#define IDWriteTextLayout_SetFontCollection(This, collection, range) (This)->lpVtbl->SetFontCollection(This, collection, range) +#define IDWriteTextLayout_SetFontFamilyName(This, name, range) (This)->lpVtbl->SetFontFamilyName(This, name, range) +#define IDWriteTextLayout_SetFontWeight(This, weight, range) (This)->lpVtbl->SetFontWeight(This, weight, range) +#define IDWriteTextLayout_SetFontStyle(This, style, range) (This)->lpVtbl->SetFontStyle(This, style, range) +#define IDWriteTextLayout_SetFontStretch(This, stretch, range) (This)->lpVtbl->SetFontStretch(This, stretch, range) +#define IDWriteTextLayout_SetFontSize(This, size, range) (This)->lpVtbl->SetFontSize(This, size, range) +#define IDWriteTextLayout_SetUnderline(This, underline, range) (This)->lpVtbl->SetUnderline(This, underline, range) +#define IDWriteTextLayout_SetStrikethrough(This, strikethrough, range) (This)->lpVtbl->SetStrikethrough(This, strikethrough, range) +#define IDWriteTextLayout_SetDrawingEffect(This, effect, range) (This)->lpVtbl->SetDrawingEffect(This, effect, range) +#define IDWriteTextLayout_SetInlineObject(This, object, range) (This)->lpVtbl->SetInlineObject(This, object, range) +#define IDWriteTextLayout_SetTypography(This, typography, range) (This)->lpVtbl->SetTypography(This, typography, range) +#define IDWriteTextLayout_SetLocaleName(This, locale, range) (This)->lpVtbl->SetLocaleName(This, locale, range) #define IDWriteTextLayout_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This) #define IDWriteTextLayout_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This) -#define IDWriteTextLayout_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range) -#define IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range) -#define IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range) -#define IDWriteTextLayout_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range) -#define IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range) -#define IDWriteTextLayout_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range) -#define IDWriteTextLayout_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range) -#define IDWriteTextLayout_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range) -#define IDWriteTextLayout_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range) -#define IDWriteTextLayout_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range) -#define IDWriteTextLayout_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range) -#define IDWriteTextLayout_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range) -#define IDWriteTextLayout_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range) -#define IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range) -#define IDWriteTextLayout_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY) -#define IDWriteTextLayout_GetLineMetrics(This,metrics,max_count,actual_count) (This)->lpVtbl->GetLineMetrics(This,metrics,max_count,actual_count) -#define IDWriteTextLayout_GetMetrics(This,metrics) (This)->lpVtbl->GetMetrics(This,metrics) -#define IDWriteTextLayout_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs) -#define IDWriteTextLayout_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count) -#define IDWriteTextLayout_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width) -#define IDWriteTextLayout_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) -#define IDWriteTextLayout_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) -#define IDWriteTextLayout_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) +#define IDWriteTextLayout_GetFontCollection(This, pos, collection, range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This, pos, collection, range) +#define IDWriteTextLayout_GetFontFamilyNameLength(This, pos, len, range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This, pos, len, range) +#define IDWriteTextLayout_GetFontFamilyName(This, position, name, name_size, range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This, position, name, name_size, range) +#define IDWriteTextLayout_GetFontWeight(This, position, weight, range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This, position, weight, range) +#define IDWriteTextLayout_GetFontStyle(This, currentPosition, style, range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This, currentPosition, style, range) +#define IDWriteTextLayout_GetFontStretch(This, position, stretch, range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This, position, stretch, range) +#define IDWriteTextLayout_GetFontSize(This, position, size, range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This, position, size, range) +#define IDWriteTextLayout_GetUnderline(This, position, has_underline, range) (This)->lpVtbl->GetUnderline(This, position, has_underline, range) +#define IDWriteTextLayout_GetStrikethrough(This, position, has_strikethrough, range) (This)->lpVtbl->GetStrikethrough(This, position, has_strikethrough, range) +#define IDWriteTextLayout_GetDrawingEffect(This, position, effect, range) (This)->lpVtbl->GetDrawingEffect(This, position, effect, range) +#define IDWriteTextLayout_GetInlineObject(This, position, object, range) (This)->lpVtbl->GetInlineObject(This, position, object, range) +#define IDWriteTextLayout_GetTypography(This, position, typography, range) (This)->lpVtbl->GetTypography(This, position, typography, range) +#define IDWriteTextLayout_GetLocaleNameLength(This, position, length, range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This, position, length, range) +#define IDWriteTextLayout_GetLocaleName(This, position, name, name_size, range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This, position, name, name_size, range) +#define IDWriteTextLayout_Draw(This, context, renderer, originX, originY) (This)->lpVtbl->Draw(This, context, renderer, originX, originY) +#define IDWriteTextLayout_GetLineMetrics(This, metrics, max_count, actual_count) (This)->lpVtbl->GetLineMetrics(This, metrics, max_count, actual_count) +#define IDWriteTextLayout_GetMetrics(This, metrics) (This)->lpVtbl->GetMetrics(This, metrics) +#define IDWriteTextLayout_GetOverhangMetrics(This, overhangs) (This)->lpVtbl->GetOverhangMetrics(This, overhangs) +#define IDWriteTextLayout_GetClusterMetrics(This, metrics, max_count, act_count) (This)->lpVtbl->GetClusterMetrics(This, metrics, max_count, act_count) +#define IDWriteTextLayout_DetermineMinWidth(This, min_width) (This)->lpVtbl->DetermineMinWidth(This, min_width) +#define IDWriteTextLayout_HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics) (This)->lpVtbl->HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics) +#define IDWriteTextLayout_HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics) (This)->lpVtbl->HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics) +#define IDWriteTextLayout_HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount) (This)->lpVtbl->HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteTextLayout_QueryInterface(IDWriteTextLayout* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteTextLayout_QueryInterface(IDWriteTextLayout* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteTextLayout_AddRef(IDWriteTextLayout* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteTextLayout_Release(IDWriteTextLayout* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteTextFormat methods ***/ -static inline HRESULT IDWriteTextLayout_SetTextAlignment(IDWriteTextLayout* This,DWRITE_TEXT_ALIGNMENT alignment) { - return This->lpVtbl->SetTextAlignment(This,alignment); +static inline HRESULT IDWriteTextLayout_SetTextAlignment(IDWriteTextLayout* This, DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This, alignment); } -static inline HRESULT IDWriteTextLayout_SetParagraphAlignment(IDWriteTextLayout* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { - return This->lpVtbl->SetParagraphAlignment(This,alignment); +static inline HRESULT IDWriteTextLayout_SetParagraphAlignment(IDWriteTextLayout* This, DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This, alignment); } -static inline HRESULT IDWriteTextLayout_SetWordWrapping(IDWriteTextLayout* This,DWRITE_WORD_WRAPPING wrapping) { - return This->lpVtbl->SetWordWrapping(This,wrapping); +static inline HRESULT IDWriteTextLayout_SetWordWrapping(IDWriteTextLayout* This, DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This, wrapping); } -static inline HRESULT IDWriteTextLayout_SetReadingDirection(IDWriteTextLayout* This,DWRITE_READING_DIRECTION direction) { - return This->lpVtbl->SetReadingDirection(This,direction); +static inline HRESULT IDWriteTextLayout_SetReadingDirection(IDWriteTextLayout* This, DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This, direction); } -static inline HRESULT IDWriteTextLayout_SetFlowDirection(IDWriteTextLayout* This,DWRITE_FLOW_DIRECTION direction) { - return This->lpVtbl->SetFlowDirection(This,direction); +static inline HRESULT IDWriteTextLayout_SetFlowDirection(IDWriteTextLayout* This, DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This, direction); } -static inline HRESULT IDWriteTextLayout_SetIncrementalTabStop(IDWriteTextLayout* This,FLOAT tabstop) { - return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +static inline HRESULT IDWriteTextLayout_SetIncrementalTabStop(IDWriteTextLayout* This, FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This, tabstop); } -static inline HRESULT IDWriteTextLayout_SetTrimming(IDWriteTextLayout* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { - return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +static inline HRESULT IDWriteTextLayout_SetTrimming(IDWriteTextLayout* This, const DWRITE_TRIMMING* trimming, IDWriteInlineObject* trimming_sign) { + return This->lpVtbl->SetTrimming(This, trimming, trimming_sign); } -static inline HRESULT IDWriteTextLayout_SetLineSpacing(IDWriteTextLayout* This,DWRITE_LINE_SPACING_METHOD spacing,FLOAT line_spacing,FLOAT baseline) { - return This->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline); +static inline HRESULT IDWriteTextLayout_SetLineSpacing(IDWriteTextLayout* This, DWRITE_LINE_SPACING_METHOD spacing, FLOAT line_spacing, FLOAT baseline) { + return This->lpVtbl->SetLineSpacing(This, spacing, line_spacing, baseline); } static inline DWRITE_TEXT_ALIGNMENT IDWriteTextLayout_GetTextAlignment(IDWriteTextLayout* This) { - return This->lpVtbl->GetTextAlignment(This); + return This->lpVtbl->GetTextAlignment(This); } static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout_GetParagraphAlignment(IDWriteTextLayout* This) { - return This->lpVtbl->GetParagraphAlignment(This); + return This->lpVtbl->GetParagraphAlignment(This); } static inline DWRITE_WORD_WRAPPING IDWriteTextLayout_GetWordWrapping(IDWriteTextLayout* This) { - return This->lpVtbl->GetWordWrapping(This); + return This->lpVtbl->GetWordWrapping(This); } static inline DWRITE_READING_DIRECTION IDWriteTextLayout_GetReadingDirection(IDWriteTextLayout* This) { - return This->lpVtbl->GetReadingDirection(This); + return This->lpVtbl->GetReadingDirection(This); } static inline DWRITE_FLOW_DIRECTION IDWriteTextLayout_GetFlowDirection(IDWriteTextLayout* This) { - return This->lpVtbl->GetFlowDirection(This); + return This->lpVtbl->GetFlowDirection(This); } static inline FLOAT IDWriteTextLayout_GetIncrementalTabStop(IDWriteTextLayout* This) { - return This->lpVtbl->GetIncrementalTabStop(This); + return This->lpVtbl->GetIncrementalTabStop(This); } -static inline HRESULT IDWriteTextLayout_GetTrimming(IDWriteTextLayout* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { - return This->lpVtbl->GetTrimming(This,options,trimming_sign); +static inline HRESULT IDWriteTextLayout_GetTrimming(IDWriteTextLayout* This, DWRITE_TRIMMING* options, IDWriteInlineObject** trimming_sign) { + return This->lpVtbl->GetTrimming(This, options, trimming_sign); } -static inline HRESULT IDWriteTextLayout_GetLineSpacing(IDWriteTextLayout* This,DWRITE_LINE_SPACING_METHOD *method,FLOAT *spacing,FLOAT *baseline) { - return This->lpVtbl->GetLineSpacing(This,method,spacing,baseline); +static inline HRESULT IDWriteTextLayout_GetLineSpacing(IDWriteTextLayout* This, DWRITE_LINE_SPACING_METHOD* method, FLOAT* spacing, FLOAT* baseline) { + return This->lpVtbl->GetLineSpacing(This, method, spacing, baseline); } /*** IDWriteTextLayout methods ***/ -static inline HRESULT IDWriteTextLayout_SetMaxWidth(IDWriteTextLayout* This,FLOAT maxWidth) { - return This->lpVtbl->SetMaxWidth(This,maxWidth); +static inline HRESULT IDWriteTextLayout_SetMaxWidth(IDWriteTextLayout* This, FLOAT maxWidth) { + return This->lpVtbl->SetMaxWidth(This, maxWidth); } -static inline HRESULT IDWriteTextLayout_SetMaxHeight(IDWriteTextLayout* This,FLOAT maxHeight) { - return This->lpVtbl->SetMaxHeight(This,maxHeight); +static inline HRESULT IDWriteTextLayout_SetMaxHeight(IDWriteTextLayout* This, FLOAT maxHeight) { + return This->lpVtbl->SetMaxHeight(This, maxHeight); } -static inline HRESULT IDWriteTextLayout_SetFontCollection(IDWriteTextLayout* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontCollection(This,collection,range); +static inline HRESULT IDWriteTextLayout_SetFontCollection(IDWriteTextLayout* This, IDWriteFontCollection* collection, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontCollection(This, collection, range); } -static inline HRESULT IDWriteTextLayout_SetFontFamilyName(IDWriteTextLayout* This,const WCHAR *name,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontFamilyName(This,name,range); +static inline HRESULT IDWriteTextLayout_SetFontFamilyName(IDWriteTextLayout* This, const WCHAR* name, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontFamilyName(This, name, range); } -static inline HRESULT IDWriteTextLayout_SetFontWeight(IDWriteTextLayout* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontWeight(This,weight,range); +static inline HRESULT IDWriteTextLayout_SetFontWeight(IDWriteTextLayout* This, DWRITE_FONT_WEIGHT weight, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontWeight(This, weight, range); } -static inline HRESULT IDWriteTextLayout_SetFontStyle(IDWriteTextLayout* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontStyle(This,style,range); +static inline HRESULT IDWriteTextLayout_SetFontStyle(IDWriteTextLayout* This, DWRITE_FONT_STYLE style, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStyle(This, style, range); } -static inline HRESULT IDWriteTextLayout_SetFontStretch(IDWriteTextLayout* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontStretch(This,stretch,range); +static inline HRESULT IDWriteTextLayout_SetFontStretch(IDWriteTextLayout* This, DWRITE_FONT_STRETCH stretch, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStretch(This, stretch, range); } -static inline HRESULT IDWriteTextLayout_SetFontSize(IDWriteTextLayout* This,FLOAT size,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontSize(This,size,range); +static inline HRESULT IDWriteTextLayout_SetFontSize(IDWriteTextLayout* This, FLOAT size, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontSize(This, size, range); } -static inline HRESULT IDWriteTextLayout_SetUnderline(IDWriteTextLayout* This,WINBOOL underline,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetUnderline(This,underline,range); +static inline HRESULT IDWriteTextLayout_SetUnderline(IDWriteTextLayout* This, WINBOOL underline, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetUnderline(This, underline, range); } -static inline HRESULT IDWriteTextLayout_SetStrikethrough(IDWriteTextLayout* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetStrikethrough(This,strikethrough,range); +static inline HRESULT IDWriteTextLayout_SetStrikethrough(IDWriteTextLayout* This, WINBOOL strikethrough, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetStrikethrough(This, strikethrough, range); } -static inline HRESULT IDWriteTextLayout_SetDrawingEffect(IDWriteTextLayout* This,IUnknown *effect,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetDrawingEffect(This,effect,range); +static inline HRESULT IDWriteTextLayout_SetDrawingEffect(IDWriteTextLayout* This, IUnknown* effect, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetDrawingEffect(This, effect, range); } -static inline HRESULT IDWriteTextLayout_SetInlineObject(IDWriteTextLayout* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetInlineObject(This,object,range); +static inline HRESULT IDWriteTextLayout_SetInlineObject(IDWriteTextLayout* This, IDWriteInlineObject* object, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetInlineObject(This, object, range); } -static inline HRESULT IDWriteTextLayout_SetTypography(IDWriteTextLayout* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetTypography(This,typography,range); +static inline HRESULT IDWriteTextLayout_SetTypography(IDWriteTextLayout* This, IDWriteTypography* typography, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetTypography(This, typography, range); } -static inline HRESULT IDWriteTextLayout_SetLocaleName(IDWriteTextLayout* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetLocaleName(This,locale,range); +static inline HRESULT IDWriteTextLayout_SetLocaleName(IDWriteTextLayout* This, const WCHAR* locale, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetLocaleName(This, locale, range); } static inline FLOAT IDWriteTextLayout_GetMaxWidth(IDWriteTextLayout* This) { - return This->lpVtbl->GetMaxWidth(This); + return This->lpVtbl->GetMaxWidth(This); } static inline FLOAT IDWriteTextLayout_GetMaxHeight(IDWriteTextLayout* This) { - return This->lpVtbl->GetMaxHeight(This); + return This->lpVtbl->GetMaxHeight(This); } -static inline HRESULT IDWriteTextLayout_GetFontCollection(IDWriteTextLayout* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range); +static inline HRESULT IDWriteTextLayout_GetFontCollection(IDWriteTextLayout* This, UINT32 pos, IDWriteFontCollection** collection, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This, pos, collection, range); } -static inline HRESULT IDWriteTextLayout_GetFontFamilyNameLength(IDWriteTextLayout* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range); +static inline HRESULT IDWriteTextLayout_GetFontFamilyNameLength(IDWriteTextLayout* This, UINT32 pos, UINT32* len, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This, pos, len, range); } -static inline HRESULT IDWriteTextLayout_GetFontFamilyName(IDWriteTextLayout* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range); +static inline HRESULT IDWriteTextLayout_GetFontFamilyName(IDWriteTextLayout* This, UINT32 position, WCHAR* name, UINT32 name_size, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This, position, name, name_size, range); } -static inline HRESULT IDWriteTextLayout_GetFontWeight(IDWriteTextLayout* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range); +static inline HRESULT IDWriteTextLayout_GetFontWeight(IDWriteTextLayout* This, UINT32 position, DWRITE_FONT_WEIGHT* weight, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This, position, weight, range); } -static inline HRESULT IDWriteTextLayout_GetFontStyle(IDWriteTextLayout* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range); +static inline HRESULT IDWriteTextLayout_GetFontStyle(IDWriteTextLayout* This, UINT32 currentPosition, DWRITE_FONT_STYLE* style, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This, currentPosition, style, range); } -static inline HRESULT IDWriteTextLayout_GetFontStretch(IDWriteTextLayout* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range); +static inline HRESULT IDWriteTextLayout_GetFontStretch(IDWriteTextLayout* This, UINT32 position, DWRITE_FONT_STRETCH* stretch, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This, position, stretch, range); } -static inline HRESULT IDWriteTextLayout_GetFontSize(IDWriteTextLayout* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range); +static inline HRESULT IDWriteTextLayout_GetFontSize(IDWriteTextLayout* This, UINT32 position, FLOAT* size, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontSize(This, position, size, range); } -static inline HRESULT IDWriteTextLayout_GetUnderline(IDWriteTextLayout* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetUnderline(This,position,has_underline,range); +static inline HRESULT IDWriteTextLayout_GetUnderline(IDWriteTextLayout* This, UINT32 position, WINBOOL* has_underline, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetUnderline(This, position, has_underline, range); } -static inline HRESULT IDWriteTextLayout_GetStrikethrough(IDWriteTextLayout* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range); +static inline HRESULT IDWriteTextLayout_GetStrikethrough(IDWriteTextLayout* This, UINT32 position, WINBOOL* has_strikethrough, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetStrikethrough(This, position, has_strikethrough, range); } -static inline HRESULT IDWriteTextLayout_GetDrawingEffect(IDWriteTextLayout* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetDrawingEffect(This,position,effect,range); +static inline HRESULT IDWriteTextLayout_GetDrawingEffect(IDWriteTextLayout* This, UINT32 position, IUnknown** effect, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetDrawingEffect(This, position, effect, range); } -static inline HRESULT IDWriteTextLayout_GetInlineObject(IDWriteTextLayout* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetInlineObject(This,position,object,range); +static inline HRESULT IDWriteTextLayout_GetInlineObject(IDWriteTextLayout* This, UINT32 position, IDWriteInlineObject** object, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetInlineObject(This, position, object, range); } -static inline HRESULT IDWriteTextLayout_GetTypography(IDWriteTextLayout* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetTypography(This,position,typography,range); +static inline HRESULT IDWriteTextLayout_GetTypography(IDWriteTextLayout* This, UINT32 position, IDWriteTypography** typography, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetTypography(This, position, typography, range); } -static inline HRESULT IDWriteTextLayout_GetLocaleNameLength(IDWriteTextLayout* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range); +static inline HRESULT IDWriteTextLayout_GetLocaleNameLength(IDWriteTextLayout* This, UINT32 position, UINT32* length, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This, position, length, range); } -static inline HRESULT IDWriteTextLayout_GetLocaleName(IDWriteTextLayout* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range); +static inline HRESULT IDWriteTextLayout_GetLocaleName(IDWriteTextLayout* This, UINT32 position, WCHAR* name, UINT32 name_size, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This, position, name, name_size, range); } -static inline HRESULT IDWriteTextLayout_Draw(IDWriteTextLayout* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) { - return This->lpVtbl->Draw(This,context,renderer,originX,originY); +static inline HRESULT IDWriteTextLayout_Draw(IDWriteTextLayout* This, void* context, IDWriteTextRenderer* renderer, FLOAT originX, FLOAT originY) { + return This->lpVtbl->Draw(This, context, renderer, originX, originY); } -static inline HRESULT IDWriteTextLayout_GetLineMetrics(IDWriteTextLayout* This,DWRITE_LINE_METRICS *metrics,UINT32 max_count,UINT32 *actual_count) { - return This->lpVtbl->GetLineMetrics(This,metrics,max_count,actual_count); +static inline HRESULT IDWriteTextLayout_GetLineMetrics(IDWriteTextLayout* This, DWRITE_LINE_METRICS* metrics, UINT32 max_count, UINT32* actual_count) { + return This->lpVtbl->GetLineMetrics(This, metrics, max_count, actual_count); } -static inline HRESULT IDWriteTextLayout_GetMetrics(IDWriteTextLayout* This,DWRITE_TEXT_METRICS *metrics) { - return This->lpVtbl->GetMetrics(This,metrics); +static inline HRESULT IDWriteTextLayout_GetMetrics(IDWriteTextLayout* This, DWRITE_TEXT_METRICS* metrics) { + return This->lpVtbl->GetMetrics(This, metrics); } -static inline HRESULT IDWriteTextLayout_GetOverhangMetrics(IDWriteTextLayout* This,DWRITE_OVERHANG_METRICS *overhangs) { - return This->lpVtbl->GetOverhangMetrics(This,overhangs); +static inline HRESULT IDWriteTextLayout_GetOverhangMetrics(IDWriteTextLayout* This, DWRITE_OVERHANG_METRICS* overhangs) { + return This->lpVtbl->GetOverhangMetrics(This, overhangs); } -static inline HRESULT IDWriteTextLayout_GetClusterMetrics(IDWriteTextLayout* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) { - return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count); +static inline HRESULT IDWriteTextLayout_GetClusterMetrics(IDWriteTextLayout* This, DWRITE_CLUSTER_METRICS* metrics, UINT32 max_count, UINT32* act_count) { + return This->lpVtbl->GetClusterMetrics(This, metrics, max_count, act_count); } -static inline HRESULT IDWriteTextLayout_DetermineMinWidth(IDWriteTextLayout* This,FLOAT *min_width) { - return This->lpVtbl->DetermineMinWidth(This,min_width); +static inline HRESULT IDWriteTextLayout_DetermineMinWidth(IDWriteTextLayout* This, FLOAT* min_width) { + return This->lpVtbl->DetermineMinWidth(This, min_width); } -static inline HRESULT IDWriteTextLayout_HitTestPoint(IDWriteTextLayout* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) { - return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics); +static inline HRESULT IDWriteTextLayout_HitTestPoint(IDWriteTextLayout* This, FLOAT pointX, FLOAT pointY, WINBOOL* is_trailinghit, WINBOOL* is_inside, DWRITE_HIT_TEST_METRICS* metrics) { + return This->lpVtbl->HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics); } -static inline HRESULT IDWriteTextLayout_HitTestTextPosition(IDWriteTextLayout* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) { - return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics); +static inline HRESULT IDWriteTextLayout_HitTestTextPosition(IDWriteTextLayout* This, UINT32 textPosition, WINBOOL is_trailinghit, FLOAT* pointX, FLOAT* pointY, DWRITE_HIT_TEST_METRICS* metrics) { + return This->lpVtbl->HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics); } -static inline HRESULT IDWriteTextLayout_HitTestTextRange(IDWriteTextLayout* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) { - return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount); +static inline HRESULT IDWriteTextLayout_HitTestTextRange(IDWriteTextLayout* This, UINT32 textPosition, UINT32 textLength, FLOAT originX, FLOAT originY, DWRITE_HIT_TEST_METRICS* metrics, UINT32 max_metricscount, UINT32* actual_metricscount) { + return This->lpVtbl->HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount); } #endif #endif #endif - -#endif /* __IDWriteTextLayout_INTERFACE_DEFINED__ */ +#endif /* __IDWriteTextLayout_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteNumberSubstitution interface @@ -4394,62 +4295,59 @@ static inline HRESULT IDWriteTextLayout_HitTestTextRange(IDWriteTextLayout* This #ifndef __IDWriteNumberSubstitution_INTERFACE_DEFINED__ #define __IDWriteNumberSubstitution_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteNumberSubstitution, 0x14885cc9, 0xbab0, 0x4f90, 0xb6,0xed, 0x5c,0x36,0x6a,0x2c,0xd0,0x3d); +DEFINE_GUID(IID_IDWriteNumberSubstitution, 0x14885cc9, 0xbab0, 0x4f90, 0xb6, 0xed, 0x5c, 0x36, 0x6a, 0x2c, 0xd0, 0x3d); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("14885cc9-bab0-4f90-b6ed-5c366a2cd03d") -IDWriteNumberSubstitution : public IUnknown -{ -}; +IDWriteNumberSubstitution : public IUnknown{}; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteNumberSubstitution, 0x14885cc9, 0xbab0, 0x4f90, 0xb6,0xed, 0x5c,0x36,0x6a,0x2c,0xd0,0x3d) +__CRT_UUID_DECL(IDWriteNumberSubstitution, 0x14885cc9, 0xbab0, 0x4f90, 0xb6, 0xed, 0x5c, 0x36, 0x6a, 0x2c, 0xd0, 0x3d) #endif #else typedef struct IDWriteNumberSubstitutionVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteNumberSubstitution *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteNumberSubstitution* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteNumberSubstitution *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteNumberSubstitution* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteNumberSubstitution *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteNumberSubstitution* This); - END_INTERFACE + END_INTERFACE } IDWriteNumberSubstitutionVtbl; interface IDWriteNumberSubstitution { - CONST_VTBL IDWriteNumberSubstitutionVtbl* lpVtbl; + CONST_VTBL IDWriteNumberSubstitutionVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteNumberSubstitution_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteNumberSubstitution_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteNumberSubstitution_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteNumberSubstitution_Release(This) (This)->lpVtbl->Release(This) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteNumberSubstitution_QueryInterface(IDWriteNumberSubstitution* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteNumberSubstitution_QueryInterface(IDWriteNumberSubstitution* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteNumberSubstitution_AddRef(IDWriteNumberSubstitution* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteNumberSubstitution_Release(IDWriteNumberSubstitution* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } #endif #endif #endif - -#endif /* __IDWriteNumberSubstitution_INTERFACE_DEFINED__ */ +#endif /* __IDWriteNumberSubstitution_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteTextAnalysisSource interface @@ -4457,135 +4355,131 @@ static inline ULONG IDWriteNumberSubstitution_Release(IDWriteNumberSubstitution* #ifndef __IDWriteTextAnalysisSource_INTERFACE_DEFINED__ #define __IDWriteTextAnalysisSource_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteTextAnalysisSource, 0x688e1a58, 0x5094, 0x47c8, 0xad,0xc8, 0xfb,0xce,0xa6,0x0a,0xe9,0x2b); +DEFINE_GUID(IID_IDWriteTextAnalysisSource, 0x688e1a58, 0x5094, 0x47c8, 0xad, 0xc8, 0xfb, 0xce, 0xa6, 0x0a, 0xe9, 0x2b); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("688e1a58-5094-47c8-adc8-fbcea60ae92b") -IDWriteTextAnalysisSource : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE GetTextAtPosition( - UINT32 position, - const WCHAR **text, - UINT32 *text_len) = 0; +IDWriteTextAnalysisSource : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE GetTextAtPosition( + UINT32 position, + const WCHAR** text, + UINT32* text_len) = 0; - virtual HRESULT STDMETHODCALLTYPE GetTextBeforePosition( - UINT32 position, - const WCHAR **text, - UINT32 *text_len) = 0; + virtual HRESULT STDMETHODCALLTYPE GetTextBeforePosition( + UINT32 position, + const WCHAR** text, + UINT32* text_len) = 0; - virtual DWRITE_READING_DIRECTION STDMETHODCALLTYPE GetParagraphReadingDirection( - ) = 0; + virtual DWRITE_READING_DIRECTION STDMETHODCALLTYPE GetParagraphReadingDirection() = 0; - virtual HRESULT STDMETHODCALLTYPE GetLocaleName( - UINT32 position, - UINT32 *text_len, - const WCHAR **locale) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetNumberSubstitution( - UINT32 position, - UINT32 *text_len, - IDWriteNumberSubstitution **substitution) = 0; + virtual HRESULT STDMETHODCALLTYPE GetLocaleName( + UINT32 position, + UINT32 * text_len, + const WCHAR** locale) = 0; + virtual HRESULT STDMETHODCALLTYPE GetNumberSubstitution( + UINT32 position, + UINT32 * text_len, + IDWriteNumberSubstitution * *substitution) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextAnalysisSource, 0x688e1a58, 0x5094, 0x47c8, 0xad,0xc8, 0xfb,0xce,0xa6,0x0a,0xe9,0x2b) +__CRT_UUID_DECL(IDWriteTextAnalysisSource, 0x688e1a58, 0x5094, 0x47c8, 0xad, 0xc8, 0xfb, 0xce, 0xa6, 0x0a, 0xe9, 0x2b) #endif #else typedef struct IDWriteTextAnalysisSourceVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteTextAnalysisSource *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteTextAnalysisSource* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteTextAnalysisSource *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteTextAnalysisSource* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteTextAnalysisSource *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteTextAnalysisSource* This); - /*** IDWriteTextAnalysisSource methods ***/ - HRESULT (STDMETHODCALLTYPE *GetTextAtPosition)( - IDWriteTextAnalysisSource *This, - UINT32 position, - const WCHAR **text, - UINT32 *text_len); + /*** IDWriteTextAnalysisSource methods ***/ + HRESULT(STDMETHODCALLTYPE* GetTextAtPosition)( + IDWriteTextAnalysisSource* This, + UINT32 position, + const WCHAR** text, + UINT32* text_len); - HRESULT (STDMETHODCALLTYPE *GetTextBeforePosition)( - IDWriteTextAnalysisSource *This, - UINT32 position, - const WCHAR **text, - UINT32 *text_len); + HRESULT(STDMETHODCALLTYPE* GetTextBeforePosition)( + IDWriteTextAnalysisSource* This, + UINT32 position, + const WCHAR** text, + UINT32* text_len); - DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetParagraphReadingDirection)( - IDWriteTextAnalysisSource *This); + DWRITE_READING_DIRECTION(STDMETHODCALLTYPE* GetParagraphReadingDirection)( + IDWriteTextAnalysisSource* This); - HRESULT (STDMETHODCALLTYPE *GetLocaleName)( - IDWriteTextAnalysisSource *This, - UINT32 position, - UINT32 *text_len, - const WCHAR **locale); + HRESULT(STDMETHODCALLTYPE* GetLocaleName)( + IDWriteTextAnalysisSource* This, + UINT32 position, + UINT32* text_len, + const WCHAR** locale); - HRESULT (STDMETHODCALLTYPE *GetNumberSubstitution)( - IDWriteTextAnalysisSource *This, - UINT32 position, - UINT32 *text_len, - IDWriteNumberSubstitution **substitution); + HRESULT(STDMETHODCALLTYPE* GetNumberSubstitution)( + IDWriteTextAnalysisSource* This, + UINT32 position, + UINT32* text_len, + IDWriteNumberSubstitution** substitution); - END_INTERFACE + END_INTERFACE } IDWriteTextAnalysisSourceVtbl; interface IDWriteTextAnalysisSource { - CONST_VTBL IDWriteTextAnalysisSourceVtbl* lpVtbl; + CONST_VTBL IDWriteTextAnalysisSourceVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteTextAnalysisSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextAnalysisSource_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteTextAnalysisSource_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteTextAnalysisSource_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteTextAnalysisSource methods ***/ -#define IDWriteTextAnalysisSource_GetTextAtPosition(This,position,text,text_len) (This)->lpVtbl->GetTextAtPosition(This,position,text,text_len) -#define IDWriteTextAnalysisSource_GetTextBeforePosition(This,position,text,text_len) (This)->lpVtbl->GetTextBeforePosition(This,position,text,text_len) +#define IDWriteTextAnalysisSource_GetTextAtPosition(This, position, text, text_len) (This)->lpVtbl->GetTextAtPosition(This, position, text, text_len) +#define IDWriteTextAnalysisSource_GetTextBeforePosition(This, position, text, text_len) (This)->lpVtbl->GetTextBeforePosition(This, position, text, text_len) #define IDWriteTextAnalysisSource_GetParagraphReadingDirection(This) (This)->lpVtbl->GetParagraphReadingDirection(This) -#define IDWriteTextAnalysisSource_GetLocaleName(This,position,text_len,locale) (This)->lpVtbl->GetLocaleName(This,position,text_len,locale) -#define IDWriteTextAnalysisSource_GetNumberSubstitution(This,position,text_len,substitution) (This)->lpVtbl->GetNumberSubstitution(This,position,text_len,substitution) +#define IDWriteTextAnalysisSource_GetLocaleName(This, position, text_len, locale) (This)->lpVtbl->GetLocaleName(This, position, text_len, locale) +#define IDWriteTextAnalysisSource_GetNumberSubstitution(This, position, text_len, substitution) (This)->lpVtbl->GetNumberSubstitution(This, position, text_len, substitution) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteTextAnalysisSource_QueryInterface(IDWriteTextAnalysisSource* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteTextAnalysisSource_QueryInterface(IDWriteTextAnalysisSource* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteTextAnalysisSource_AddRef(IDWriteTextAnalysisSource* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteTextAnalysisSource_Release(IDWriteTextAnalysisSource* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteTextAnalysisSource methods ***/ -static inline HRESULT IDWriteTextAnalysisSource_GetTextAtPosition(IDWriteTextAnalysisSource* This,UINT32 position,const WCHAR **text,UINT32 *text_len) { - return This->lpVtbl->GetTextAtPosition(This,position,text,text_len); +static inline HRESULT IDWriteTextAnalysisSource_GetTextAtPosition(IDWriteTextAnalysisSource* This, UINT32 position, const WCHAR** text, UINT32* text_len) { + return This->lpVtbl->GetTextAtPosition(This, position, text, text_len); } -static inline HRESULT IDWriteTextAnalysisSource_GetTextBeforePosition(IDWriteTextAnalysisSource* This,UINT32 position,const WCHAR **text,UINT32 *text_len) { - return This->lpVtbl->GetTextBeforePosition(This,position,text,text_len); +static inline HRESULT IDWriteTextAnalysisSource_GetTextBeforePosition(IDWriteTextAnalysisSource* This, UINT32 position, const WCHAR** text, UINT32* text_len) { + return This->lpVtbl->GetTextBeforePosition(This, position, text, text_len); } static inline DWRITE_READING_DIRECTION IDWriteTextAnalysisSource_GetParagraphReadingDirection(IDWriteTextAnalysisSource* This) { - return This->lpVtbl->GetParagraphReadingDirection(This); + return This->lpVtbl->GetParagraphReadingDirection(This); } -static inline HRESULT IDWriteTextAnalysisSource_GetLocaleName(IDWriteTextAnalysisSource* This,UINT32 position,UINT32 *text_len,const WCHAR **locale) { - return This->lpVtbl->GetLocaleName(This,position,text_len,locale); +static inline HRESULT IDWriteTextAnalysisSource_GetLocaleName(IDWriteTextAnalysisSource* This, UINT32 position, UINT32* text_len, const WCHAR** locale) { + return This->lpVtbl->GetLocaleName(This, position, text_len, locale); } -static inline HRESULT IDWriteTextAnalysisSource_GetNumberSubstitution(IDWriteTextAnalysisSource* This,UINT32 position,UINT32 *text_len,IDWriteNumberSubstitution **substitution) { - return This->lpVtbl->GetNumberSubstitution(This,position,text_len,substitution); +static inline HRESULT IDWriteTextAnalysisSource_GetNumberSubstitution(IDWriteTextAnalysisSource* This, UINT32 position, UINT32* text_len, IDWriteNumberSubstitution** substitution) { + return This->lpVtbl->GetNumberSubstitution(This, position, text_len, substitution); } #endif #endif #endif - -#endif /* __IDWriteTextAnalysisSource_INTERFACE_DEFINED__ */ +#endif /* __IDWriteTextAnalysisSource_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteTextAnalysisSink interface @@ -4593,127 +4487,124 @@ static inline HRESULT IDWriteTextAnalysisSource_GetNumberSubstitution(IDWriteTex #ifndef __IDWriteTextAnalysisSink_INTERFACE_DEFINED__ #define __IDWriteTextAnalysisSink_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteTextAnalysisSink, 0x5810cd44, 0x0ca0, 0x4701, 0xb3,0xfa, 0xbe,0xc5,0x18,0x2a,0xe4,0xf6); +DEFINE_GUID(IID_IDWriteTextAnalysisSink, 0x5810cd44, 0x0ca0, 0x4701, 0xb3, 0xfa, 0xbe, 0xc5, 0x18, 0x2a, 0xe4, 0xf6); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("5810cd44-0ca0-4701-b3fa-bec5182ae4f6") -IDWriteTextAnalysisSink : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE SetScriptAnalysis( - UINT32 position, - UINT32 length, - const DWRITE_SCRIPT_ANALYSIS *scriptanalysis) = 0; +IDWriteTextAnalysisSink : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE SetScriptAnalysis( + UINT32 position, + UINT32 length, + const DWRITE_SCRIPT_ANALYSIS* scriptanalysis) = 0; - virtual HRESULT STDMETHODCALLTYPE SetLineBreakpoints( - UINT32 position, - UINT32 length, - const DWRITE_LINE_BREAKPOINT *breakpoints) = 0; + virtual HRESULT STDMETHODCALLTYPE SetLineBreakpoints( + UINT32 position, + UINT32 length, + const DWRITE_LINE_BREAKPOINT* breakpoints) = 0; - virtual HRESULT STDMETHODCALLTYPE SetBidiLevel( - UINT32 position, - UINT32 length, - UINT8 explicitLevel, - UINT8 resolvedLevel) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetNumberSubstitution( - UINT32 position, - UINT32 length, - IDWriteNumberSubstitution *substitution) = 0; + virtual HRESULT STDMETHODCALLTYPE SetBidiLevel( + UINT32 position, + UINT32 length, + UINT8 explicitLevel, + UINT8 resolvedLevel) = 0; + virtual HRESULT STDMETHODCALLTYPE SetNumberSubstitution( + UINT32 position, + UINT32 length, + IDWriteNumberSubstitution * substitution) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextAnalysisSink, 0x5810cd44, 0x0ca0, 0x4701, 0xb3,0xfa, 0xbe,0xc5,0x18,0x2a,0xe4,0xf6) +__CRT_UUID_DECL(IDWriteTextAnalysisSink, 0x5810cd44, 0x0ca0, 0x4701, 0xb3, 0xfa, 0xbe, 0xc5, 0x18, 0x2a, 0xe4, 0xf6) #endif #else typedef struct IDWriteTextAnalysisSinkVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteTextAnalysisSink *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteTextAnalysisSink* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteTextAnalysisSink *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteTextAnalysisSink* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteTextAnalysisSink *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteTextAnalysisSink* This); - /*** IDWriteTextAnalysisSink methods ***/ - HRESULT (STDMETHODCALLTYPE *SetScriptAnalysis)( - IDWriteTextAnalysisSink *This, - UINT32 position, - UINT32 length, - const DWRITE_SCRIPT_ANALYSIS *scriptanalysis); + /*** IDWriteTextAnalysisSink methods ***/ + HRESULT(STDMETHODCALLTYPE* SetScriptAnalysis)( + IDWriteTextAnalysisSink* This, + UINT32 position, + UINT32 length, + const DWRITE_SCRIPT_ANALYSIS* scriptanalysis); - HRESULT (STDMETHODCALLTYPE *SetLineBreakpoints)( - IDWriteTextAnalysisSink *This, - UINT32 position, - UINT32 length, - const DWRITE_LINE_BREAKPOINT *breakpoints); + HRESULT(STDMETHODCALLTYPE* SetLineBreakpoints)( + IDWriteTextAnalysisSink* This, + UINT32 position, + UINT32 length, + const DWRITE_LINE_BREAKPOINT* breakpoints); - HRESULT (STDMETHODCALLTYPE *SetBidiLevel)( - IDWriteTextAnalysisSink *This, - UINT32 position, - UINT32 length, - UINT8 explicitLevel, - UINT8 resolvedLevel); + HRESULT(STDMETHODCALLTYPE* SetBidiLevel)( + IDWriteTextAnalysisSink* This, + UINT32 position, + UINT32 length, + UINT8 explicitLevel, + UINT8 resolvedLevel); - HRESULT (STDMETHODCALLTYPE *SetNumberSubstitution)( - IDWriteTextAnalysisSink *This, - UINT32 position, - UINT32 length, - IDWriteNumberSubstitution *substitution); + HRESULT(STDMETHODCALLTYPE* SetNumberSubstitution)( + IDWriteTextAnalysisSink* This, + UINT32 position, + UINT32 length, + IDWriteNumberSubstitution* substitution); - END_INTERFACE + END_INTERFACE } IDWriteTextAnalysisSinkVtbl; interface IDWriteTextAnalysisSink { - CONST_VTBL IDWriteTextAnalysisSinkVtbl* lpVtbl; + CONST_VTBL IDWriteTextAnalysisSinkVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteTextAnalysisSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextAnalysisSink_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteTextAnalysisSink_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteTextAnalysisSink_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteTextAnalysisSink methods ***/ -#define IDWriteTextAnalysisSink_SetScriptAnalysis(This,position,length,scriptanalysis) (This)->lpVtbl->SetScriptAnalysis(This,position,length,scriptanalysis) -#define IDWriteTextAnalysisSink_SetLineBreakpoints(This,position,length,breakpoints) (This)->lpVtbl->SetLineBreakpoints(This,position,length,breakpoints) -#define IDWriteTextAnalysisSink_SetBidiLevel(This,position,length,explicitLevel,resolvedLevel) (This)->lpVtbl->SetBidiLevel(This,position,length,explicitLevel,resolvedLevel) -#define IDWriteTextAnalysisSink_SetNumberSubstitution(This,position,length,substitution) (This)->lpVtbl->SetNumberSubstitution(This,position,length,substitution) +#define IDWriteTextAnalysisSink_SetScriptAnalysis(This, position, length, scriptanalysis) (This)->lpVtbl->SetScriptAnalysis(This, position, length, scriptanalysis) +#define IDWriteTextAnalysisSink_SetLineBreakpoints(This, position, length, breakpoints) (This)->lpVtbl->SetLineBreakpoints(This, position, length, breakpoints) +#define IDWriteTextAnalysisSink_SetBidiLevel(This, position, length, explicitLevel, resolvedLevel) (This)->lpVtbl->SetBidiLevel(This, position, length, explicitLevel, resolvedLevel) +#define IDWriteTextAnalysisSink_SetNumberSubstitution(This, position, length, substitution) (This)->lpVtbl->SetNumberSubstitution(This, position, length, substitution) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteTextAnalysisSink_QueryInterface(IDWriteTextAnalysisSink* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteTextAnalysisSink_QueryInterface(IDWriteTextAnalysisSink* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteTextAnalysisSink_AddRef(IDWriteTextAnalysisSink* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteTextAnalysisSink_Release(IDWriteTextAnalysisSink* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteTextAnalysisSink methods ***/ -static inline HRESULT IDWriteTextAnalysisSink_SetScriptAnalysis(IDWriteTextAnalysisSink* This,UINT32 position,UINT32 length,const DWRITE_SCRIPT_ANALYSIS *scriptanalysis) { - return This->lpVtbl->SetScriptAnalysis(This,position,length,scriptanalysis); +static inline HRESULT IDWriteTextAnalysisSink_SetScriptAnalysis(IDWriteTextAnalysisSink* This, UINT32 position, UINT32 length, const DWRITE_SCRIPT_ANALYSIS* scriptanalysis) { + return This->lpVtbl->SetScriptAnalysis(This, position, length, scriptanalysis); } -static inline HRESULT IDWriteTextAnalysisSink_SetLineBreakpoints(IDWriteTextAnalysisSink* This,UINT32 position,UINT32 length,const DWRITE_LINE_BREAKPOINT *breakpoints) { - return This->lpVtbl->SetLineBreakpoints(This,position,length,breakpoints); +static inline HRESULT IDWriteTextAnalysisSink_SetLineBreakpoints(IDWriteTextAnalysisSink* This, UINT32 position, UINT32 length, const DWRITE_LINE_BREAKPOINT* breakpoints) { + return This->lpVtbl->SetLineBreakpoints(This, position, length, breakpoints); } -static inline HRESULT IDWriteTextAnalysisSink_SetBidiLevel(IDWriteTextAnalysisSink* This,UINT32 position,UINT32 length,UINT8 explicitLevel,UINT8 resolvedLevel) { - return This->lpVtbl->SetBidiLevel(This,position,length,explicitLevel,resolvedLevel); +static inline HRESULT IDWriteTextAnalysisSink_SetBidiLevel(IDWriteTextAnalysisSink* This, UINT32 position, UINT32 length, UINT8 explicitLevel, UINT8 resolvedLevel) { + return This->lpVtbl->SetBidiLevel(This, position, length, explicitLevel, resolvedLevel); } -static inline HRESULT IDWriteTextAnalysisSink_SetNumberSubstitution(IDWriteTextAnalysisSink* This,UINT32 position,UINT32 length,IDWriteNumberSubstitution *substitution) { - return This->lpVtbl->SetNumberSubstitution(This,position,length,substitution); +static inline HRESULT IDWriteTextAnalysisSink_SetNumberSubstitution(IDWriteTextAnalysisSink* This, UINT32 position, UINT32 length, IDWriteNumberSubstitution* substitution) { + return This->lpVtbl->SetNumberSubstitution(This, position, length, substitution); } #endif #endif #endif - -#endif /* __IDWriteTextAnalysisSink_INTERFACE_DEFINED__ */ +#endif /* __IDWriteTextAnalysisSink_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteTextAnalyzer interface @@ -4721,272 +4612,269 @@ static inline HRESULT IDWriteTextAnalysisSink_SetNumberSubstitution(IDWriteTextA #ifndef __IDWriteTextAnalyzer_INTERFACE_DEFINED__ #define __IDWriteTextAnalyzer_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteTextAnalyzer, 0xb7e6163e, 0x7f46, 0x43b4, 0x84,0xb3, 0xe4,0xe6,0x24,0x9c,0x36,0x5d); +DEFINE_GUID(IID_IDWriteTextAnalyzer, 0xb7e6163e, 0x7f46, 0x43b4, 0x84, 0xb3, 0xe4, 0xe6, 0x24, 0x9c, 0x36, 0x5d); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("b7e6163e-7f46-43b4-84b3-e4e6249c365d") -IDWriteTextAnalyzer : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE AnalyzeScript( - IDWriteTextAnalysisSource *source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink *sink) = 0; +IDWriteTextAnalyzer : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE AnalyzeScript( + IDWriteTextAnalysisSource * source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink * sink) = 0; - virtual HRESULT STDMETHODCALLTYPE AnalyzeBidi( - IDWriteTextAnalysisSource *source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink *sink) = 0; + virtual HRESULT STDMETHODCALLTYPE AnalyzeBidi( + IDWriteTextAnalysisSource * source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink * sink) = 0; - virtual HRESULT STDMETHODCALLTYPE AnalyzeNumberSubstitution( - IDWriteTextAnalysisSource *source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink *sink) = 0; + virtual HRESULT STDMETHODCALLTYPE AnalyzeNumberSubstitution( + IDWriteTextAnalysisSource * source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink * sink) = 0; - virtual HRESULT STDMETHODCALLTYPE AnalyzeLineBreakpoints( - IDWriteTextAnalysisSource *source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink *sink) = 0; + virtual HRESULT STDMETHODCALLTYPE AnalyzeLineBreakpoints( + IDWriteTextAnalysisSource * source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink * sink) = 0; - virtual HRESULT STDMETHODCALLTYPE GetGlyphs( - const WCHAR *text, - UINT32 length, - IDWriteFontFace *font_face, - WINBOOL is_sideways, - WINBOOL is_rtl, - const DWRITE_SCRIPT_ANALYSIS *analysis, - const WCHAR *locale, - IDWriteNumberSubstitution *substitution, - const DWRITE_TYPOGRAPHIC_FEATURES **features, - const UINT32 *feature_range_len, - UINT32 feature_ranges, - UINT32 max_glyph_count, - UINT16 *clustermap, - DWRITE_SHAPING_TEXT_PROPERTIES *text_props, - UINT16 *glyph_indices, - DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, - UINT32 *actual_glyph_count) = 0; + virtual HRESULT STDMETHODCALLTYPE GetGlyphs( + const WCHAR* text, + UINT32 length, + IDWriteFontFace* font_face, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS* analysis, + const WCHAR* locale, + IDWriteNumberSubstitution* substitution, + const DWRITE_TYPOGRAPHIC_FEATURES** features, + const UINT32* feature_range_len, + UINT32 feature_ranges, + UINT32 max_glyph_count, + UINT16* clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES* text_props, + UINT16* glyph_indices, + DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, + UINT32* actual_glyph_count) = 0; - virtual HRESULT STDMETHODCALLTYPE GetGlyphPlacements( - const WCHAR *text, - const UINT16 *clustermap, - DWRITE_SHAPING_TEXT_PROPERTIES *props, - UINT32 text_len, - const UINT16 *glyph_indices, - const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, - UINT32 glyph_count, - IDWriteFontFace *font_face, - FLOAT fontEmSize, - WINBOOL is_sideways, - WINBOOL is_rtl, - const DWRITE_SCRIPT_ANALYSIS *analysis, - const WCHAR *locale, - const DWRITE_TYPOGRAPHIC_FEATURES **features, - const UINT32 *feature_range_len, - UINT32 feature_ranges, - FLOAT *glyph_advances, - DWRITE_GLYPH_OFFSET *glyph_offsets) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGdiCompatibleGlyphPlacements( - const WCHAR *text, - const UINT16 *clustermap, - DWRITE_SHAPING_TEXT_PROPERTIES *props, - UINT32 text_len, - const UINT16 *glyph_indices, - const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, - UINT32 glyph_count, - IDWriteFontFace *font_face, - FLOAT fontEmSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - WINBOOL is_sideways, - WINBOOL is_rtl, - const DWRITE_SCRIPT_ANALYSIS *analysis, - const WCHAR *locale, - const DWRITE_TYPOGRAPHIC_FEATURES **features, - const UINT32 *feature_range_lengths, - UINT32 feature_ranges, - FLOAT *glyph_advances, - DWRITE_GLYPH_OFFSET *glyph_offsets) = 0; + virtual HRESULT STDMETHODCALLTYPE GetGlyphPlacements( + const WCHAR* text, + const UINT16* clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES* props, + UINT32 text_len, + const UINT16* glyph_indices, + const DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, + UINT32 glyph_count, + IDWriteFontFace* font_face, + FLOAT fontEmSize, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS* analysis, + const WCHAR* locale, + const DWRITE_TYPOGRAPHIC_FEATURES** features, + const UINT32* feature_range_len, + UINT32 feature_ranges, + FLOAT* glyph_advances, + DWRITE_GLYPH_OFFSET* glyph_offsets) = 0; + virtual HRESULT STDMETHODCALLTYPE GetGdiCompatibleGlyphPlacements( + const WCHAR* text, + const UINT16* clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES* props, + UINT32 text_len, + const UINT16* glyph_indices, + const DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, + UINT32 glyph_count, + IDWriteFontFace* font_face, + FLOAT fontEmSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS* analysis, + const WCHAR* locale, + const DWRITE_TYPOGRAPHIC_FEATURES** features, + const UINT32* feature_range_lengths, + UINT32 feature_ranges, + FLOAT* glyph_advances, + DWRITE_GLYPH_OFFSET* glyph_offsets) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextAnalyzer, 0xb7e6163e, 0x7f46, 0x43b4, 0x84,0xb3, 0xe4,0xe6,0x24,0x9c,0x36,0x5d) +__CRT_UUID_DECL(IDWriteTextAnalyzer, 0xb7e6163e, 0x7f46, 0x43b4, 0x84, 0xb3, 0xe4, 0xe6, 0x24, 0x9c, 0x36, 0x5d) #endif #else typedef struct IDWriteTextAnalyzerVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteTextAnalyzer *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteTextAnalyzer* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteTextAnalyzer *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteTextAnalyzer* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteTextAnalyzer *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteTextAnalyzer* This); - /*** IDWriteTextAnalyzer methods ***/ - HRESULT (STDMETHODCALLTYPE *AnalyzeScript)( - IDWriteTextAnalyzer *This, - IDWriteTextAnalysisSource *source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink *sink); + /*** IDWriteTextAnalyzer methods ***/ + HRESULT(STDMETHODCALLTYPE* AnalyzeScript)( + IDWriteTextAnalyzer* This, + IDWriteTextAnalysisSource* source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink* sink); - HRESULT (STDMETHODCALLTYPE *AnalyzeBidi)( - IDWriteTextAnalyzer *This, - IDWriteTextAnalysisSource *source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink *sink); + HRESULT(STDMETHODCALLTYPE* AnalyzeBidi)( + IDWriteTextAnalyzer* This, + IDWriteTextAnalysisSource* source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink* sink); - HRESULT (STDMETHODCALLTYPE *AnalyzeNumberSubstitution)( - IDWriteTextAnalyzer *This, - IDWriteTextAnalysisSource *source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink *sink); + HRESULT(STDMETHODCALLTYPE* AnalyzeNumberSubstitution)( + IDWriteTextAnalyzer* This, + IDWriteTextAnalysisSource* source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink* sink); - HRESULT (STDMETHODCALLTYPE *AnalyzeLineBreakpoints)( - IDWriteTextAnalyzer *This, - IDWriteTextAnalysisSource *source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink *sink); + HRESULT(STDMETHODCALLTYPE* AnalyzeLineBreakpoints)( + IDWriteTextAnalyzer* This, + IDWriteTextAnalysisSource* source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink* sink); - HRESULT (STDMETHODCALLTYPE *GetGlyphs)( - IDWriteTextAnalyzer *This, - const WCHAR *text, - UINT32 length, - IDWriteFontFace *font_face, - WINBOOL is_sideways, - WINBOOL is_rtl, - const DWRITE_SCRIPT_ANALYSIS *analysis, - const WCHAR *locale, - IDWriteNumberSubstitution *substitution, - const DWRITE_TYPOGRAPHIC_FEATURES **features, - const UINT32 *feature_range_len, - UINT32 feature_ranges, - UINT32 max_glyph_count, - UINT16 *clustermap, - DWRITE_SHAPING_TEXT_PROPERTIES *text_props, - UINT16 *glyph_indices, - DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, - UINT32 *actual_glyph_count); + HRESULT(STDMETHODCALLTYPE* GetGlyphs)( + IDWriteTextAnalyzer* This, + const WCHAR* text, + UINT32 length, + IDWriteFontFace* font_face, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS* analysis, + const WCHAR* locale, + IDWriteNumberSubstitution* substitution, + const DWRITE_TYPOGRAPHIC_FEATURES** features, + const UINT32* feature_range_len, + UINT32 feature_ranges, + UINT32 max_glyph_count, + UINT16* clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES* text_props, + UINT16* glyph_indices, + DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, + UINT32* actual_glyph_count); - HRESULT (STDMETHODCALLTYPE *GetGlyphPlacements)( - IDWriteTextAnalyzer *This, - const WCHAR *text, - const UINT16 *clustermap, - DWRITE_SHAPING_TEXT_PROPERTIES *props, - UINT32 text_len, - const UINT16 *glyph_indices, - const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, - UINT32 glyph_count, - IDWriteFontFace *font_face, - FLOAT fontEmSize, - WINBOOL is_sideways, - WINBOOL is_rtl, - const DWRITE_SCRIPT_ANALYSIS *analysis, - const WCHAR *locale, - const DWRITE_TYPOGRAPHIC_FEATURES **features, - const UINT32 *feature_range_len, - UINT32 feature_ranges, - FLOAT *glyph_advances, - DWRITE_GLYPH_OFFSET *glyph_offsets); + HRESULT(STDMETHODCALLTYPE* GetGlyphPlacements)( + IDWriteTextAnalyzer* This, + const WCHAR* text, + const UINT16* clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES* props, + UINT32 text_len, + const UINT16* glyph_indices, + const DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, + UINT32 glyph_count, + IDWriteFontFace* font_face, + FLOAT fontEmSize, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS* analysis, + const WCHAR* locale, + const DWRITE_TYPOGRAPHIC_FEATURES** features, + const UINT32* feature_range_len, + UINT32 feature_ranges, + FLOAT* glyph_advances, + DWRITE_GLYPH_OFFSET* glyph_offsets); - HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphPlacements)( - IDWriteTextAnalyzer *This, - const WCHAR *text, - const UINT16 *clustermap, - DWRITE_SHAPING_TEXT_PROPERTIES *props, - UINT32 text_len, - const UINT16 *glyph_indices, - const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, - UINT32 glyph_count, - IDWriteFontFace *font_face, - FLOAT fontEmSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - WINBOOL is_sideways, - WINBOOL is_rtl, - const DWRITE_SCRIPT_ANALYSIS *analysis, - const WCHAR *locale, - const DWRITE_TYPOGRAPHIC_FEATURES **features, - const UINT32 *feature_range_lengths, - UINT32 feature_ranges, - FLOAT *glyph_advances, - DWRITE_GLYPH_OFFSET *glyph_offsets); + HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphPlacements)( + IDWriteTextAnalyzer* This, + const WCHAR* text, + const UINT16* clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES* props, + UINT32 text_len, + const UINT16* glyph_indices, + const DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, + UINT32 glyph_count, + IDWriteFontFace* font_face, + FLOAT fontEmSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS* analysis, + const WCHAR* locale, + const DWRITE_TYPOGRAPHIC_FEATURES** features, + const UINT32* feature_range_lengths, + UINT32 feature_ranges, + FLOAT* glyph_advances, + DWRITE_GLYPH_OFFSET* glyph_offsets); - END_INTERFACE + END_INTERFACE } IDWriteTextAnalyzerVtbl; interface IDWriteTextAnalyzer { - CONST_VTBL IDWriteTextAnalyzerVtbl* lpVtbl; + CONST_VTBL IDWriteTextAnalyzerVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteTextAnalyzer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextAnalyzer_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteTextAnalyzer_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteTextAnalyzer_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteTextAnalyzer methods ***/ -#define IDWriteTextAnalyzer_AnalyzeScript(This,source,position,length,sink) (This)->lpVtbl->AnalyzeScript(This,source,position,length,sink) -#define IDWriteTextAnalyzer_AnalyzeBidi(This,source,position,length,sink) (This)->lpVtbl->AnalyzeBidi(This,source,position,length,sink) -#define IDWriteTextAnalyzer_AnalyzeNumberSubstitution(This,source,position,length,sink) (This)->lpVtbl->AnalyzeNumberSubstitution(This,source,position,length,sink) -#define IDWriteTextAnalyzer_AnalyzeLineBreakpoints(This,source,position,length,sink) (This)->lpVtbl->AnalyzeLineBreakpoints(This,source,position,length,sink) -#define IDWriteTextAnalyzer_GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count) (This)->lpVtbl->GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count) -#define IDWriteTextAnalyzer_GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets) (This)->lpVtbl->GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets) -#define IDWriteTextAnalyzer_GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets) (This)->lpVtbl->GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets) +#define IDWriteTextAnalyzer_AnalyzeScript(This, source, position, length, sink) (This)->lpVtbl->AnalyzeScript(This, source, position, length, sink) +#define IDWriteTextAnalyzer_AnalyzeBidi(This, source, position, length, sink) (This)->lpVtbl->AnalyzeBidi(This, source, position, length, sink) +#define IDWriteTextAnalyzer_AnalyzeNumberSubstitution(This, source, position, length, sink) (This)->lpVtbl->AnalyzeNumberSubstitution(This, source, position, length, sink) +#define IDWriteTextAnalyzer_AnalyzeLineBreakpoints(This, source, position, length, sink) (This)->lpVtbl->AnalyzeLineBreakpoints(This, source, position, length, sink) +#define IDWriteTextAnalyzer_GetGlyphs(This, text, length, font_face, is_sideways, is_rtl, analysis, locale, substitution, features, feature_range_len, feature_ranges, max_glyph_count, clustermap, text_props, glyph_indices, glyph_props, actual_glyph_count) (This)->lpVtbl->GetGlyphs(This, text, length, font_face, is_sideways, is_rtl, analysis, locale, substitution, features, feature_range_len, feature_ranges, max_glyph_count, clustermap, text_props, glyph_indices, glyph_props, actual_glyph_count) +#define IDWriteTextAnalyzer_GetGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, is_sideways, is_rtl, analysis, locale, features, feature_range_len, feature_ranges, glyph_advances, glyph_offsets) (This)->lpVtbl->GetGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, is_sideways, is_rtl, analysis, locale, features, feature_range_len, feature_ranges, glyph_advances, glyph_offsets) +#define IDWriteTextAnalyzer_GetGdiCompatibleGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, pixels_per_dip, transform, use_gdi_natural, is_sideways, is_rtl, analysis, locale, features, feature_range_lengths, feature_ranges, glyph_advances, glyph_offsets) (This)->lpVtbl->GetGdiCompatibleGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, pixels_per_dip, transform, use_gdi_natural, is_sideways, is_rtl, analysis, locale, features, feature_range_lengths, feature_ranges, glyph_advances, glyph_offsets) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteTextAnalyzer_QueryInterface(IDWriteTextAnalyzer* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteTextAnalyzer_QueryInterface(IDWriteTextAnalyzer* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteTextAnalyzer_AddRef(IDWriteTextAnalyzer* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteTextAnalyzer_Release(IDWriteTextAnalyzer* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteTextAnalyzer methods ***/ -static inline HRESULT IDWriteTextAnalyzer_AnalyzeScript(IDWriteTextAnalyzer* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { - return This->lpVtbl->AnalyzeScript(This,source,position,length,sink); +static inline HRESULT IDWriteTextAnalyzer_AnalyzeScript(IDWriteTextAnalyzer* This, IDWriteTextAnalysisSource* source, UINT32 position, UINT32 length, IDWriteTextAnalysisSink* sink) { + return This->lpVtbl->AnalyzeScript(This, source, position, length, sink); } -static inline HRESULT IDWriteTextAnalyzer_AnalyzeBidi(IDWriteTextAnalyzer* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { - return This->lpVtbl->AnalyzeBidi(This,source,position,length,sink); +static inline HRESULT IDWriteTextAnalyzer_AnalyzeBidi(IDWriteTextAnalyzer* This, IDWriteTextAnalysisSource* source, UINT32 position, UINT32 length, IDWriteTextAnalysisSink* sink) { + return This->lpVtbl->AnalyzeBidi(This, source, position, length, sink); } -static inline HRESULT IDWriteTextAnalyzer_AnalyzeNumberSubstitution(IDWriteTextAnalyzer* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { - return This->lpVtbl->AnalyzeNumberSubstitution(This,source,position,length,sink); +static inline HRESULT IDWriteTextAnalyzer_AnalyzeNumberSubstitution(IDWriteTextAnalyzer* This, IDWriteTextAnalysisSource* source, UINT32 position, UINT32 length, IDWriteTextAnalysisSink* sink) { + return This->lpVtbl->AnalyzeNumberSubstitution(This, source, position, length, sink); } -static inline HRESULT IDWriteTextAnalyzer_AnalyzeLineBreakpoints(IDWriteTextAnalyzer* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { - return This->lpVtbl->AnalyzeLineBreakpoints(This,source,position,length,sink); +static inline HRESULT IDWriteTextAnalyzer_AnalyzeLineBreakpoints(IDWriteTextAnalyzer* This, IDWriteTextAnalysisSource* source, UINT32 position, UINT32 length, IDWriteTextAnalysisSink* sink) { + return This->lpVtbl->AnalyzeLineBreakpoints(This, source, position, length, sink); } -static inline HRESULT IDWriteTextAnalyzer_GetGlyphs(IDWriteTextAnalyzer* This,const WCHAR *text,UINT32 length,IDWriteFontFace *font_face,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,IDWriteNumberSubstitution *substitution,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_len,UINT32 feature_ranges,UINT32 max_glyph_count,UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *text_props,UINT16 *glyph_indices,DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 *actual_glyph_count) { - return This->lpVtbl->GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count); +static inline HRESULT IDWriteTextAnalyzer_GetGlyphs(IDWriteTextAnalyzer* This, const WCHAR* text, UINT32 length, IDWriteFontFace* font_face, WINBOOL is_sideways, WINBOOL is_rtl, const DWRITE_SCRIPT_ANALYSIS* analysis, const WCHAR* locale, IDWriteNumberSubstitution* substitution, const DWRITE_TYPOGRAPHIC_FEATURES** features, const UINT32* feature_range_len, UINT32 feature_ranges, UINT32 max_glyph_count, UINT16* clustermap, DWRITE_SHAPING_TEXT_PROPERTIES* text_props, UINT16* glyph_indices, DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, UINT32* actual_glyph_count) { + return This->lpVtbl->GetGlyphs(This, text, length, font_face, is_sideways, is_rtl, analysis, locale, substitution, features, feature_range_len, feature_ranges, max_glyph_count, clustermap, text_props, glyph_indices, glyph_props, actual_glyph_count); } -static inline HRESULT IDWriteTextAnalyzer_GetGlyphPlacements(IDWriteTextAnalyzer* This,const WCHAR *text,const UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *props,UINT32 text_len,const UINT16 *glyph_indices,const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 glyph_count,IDWriteFontFace *font_face,FLOAT fontEmSize,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_len,UINT32 feature_ranges,FLOAT *glyph_advances,DWRITE_GLYPH_OFFSET *glyph_offsets) { - return This->lpVtbl->GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets); +static inline HRESULT IDWriteTextAnalyzer_GetGlyphPlacements(IDWriteTextAnalyzer* This, const WCHAR* text, const UINT16* clustermap, DWRITE_SHAPING_TEXT_PROPERTIES* props, UINT32 text_len, const UINT16* glyph_indices, const DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, UINT32 glyph_count, IDWriteFontFace* font_face, FLOAT fontEmSize, WINBOOL is_sideways, WINBOOL is_rtl, const DWRITE_SCRIPT_ANALYSIS* analysis, const WCHAR* locale, const DWRITE_TYPOGRAPHIC_FEATURES** features, const UINT32* feature_range_len, UINT32 feature_ranges, FLOAT* glyph_advances, DWRITE_GLYPH_OFFSET* glyph_offsets) { + return This->lpVtbl->GetGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, is_sideways, is_rtl, analysis, locale, features, feature_range_len, feature_ranges, glyph_advances, glyph_offsets); } -static inline HRESULT IDWriteTextAnalyzer_GetGdiCompatibleGlyphPlacements(IDWriteTextAnalyzer* This,const WCHAR *text,const UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *props,UINT32 text_len,const UINT16 *glyph_indices,const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 glyph_count,IDWriteFontFace *font_face,FLOAT fontEmSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_lengths,UINT32 feature_ranges,FLOAT *glyph_advances,DWRITE_GLYPH_OFFSET *glyph_offsets) { - return This->lpVtbl->GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets); +static inline HRESULT IDWriteTextAnalyzer_GetGdiCompatibleGlyphPlacements(IDWriteTextAnalyzer* This, const WCHAR* text, const UINT16* clustermap, DWRITE_SHAPING_TEXT_PROPERTIES* props, UINT32 text_len, const UINT16* glyph_indices, const DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, UINT32 glyph_count, IDWriteFontFace* font_face, FLOAT fontEmSize, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, WINBOOL is_sideways, WINBOOL is_rtl, const DWRITE_SCRIPT_ANALYSIS* analysis, const WCHAR* locale, const DWRITE_TYPOGRAPHIC_FEATURES** features, const UINT32* feature_range_lengths, UINT32 feature_ranges, FLOAT* glyph_advances, DWRITE_GLYPH_OFFSET* glyph_offsets) { + return This->lpVtbl->GetGdiCompatibleGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, pixels_per_dip, transform, use_gdi_natural, is_sideways, is_rtl, analysis, locale, features, feature_range_lengths, feature_ranges, glyph_advances, glyph_offsets); } #endif #endif #endif - -#endif /* __IDWriteTextAnalyzer_INTERFACE_DEFINED__ */ +#endif /* __IDWriteTextAnalyzer_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteGlyphRunAnalysis interface @@ -4994,112 +4882,109 @@ static inline HRESULT IDWriteTextAnalyzer_GetGdiCompatibleGlyphPlacements(IDWrit #ifndef __IDWriteGlyphRunAnalysis_INTERFACE_DEFINED__ #define __IDWriteGlyphRunAnalysis_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteGlyphRunAnalysis, 0x7d97dbf7, 0xe085, 0x42d4, 0x81,0xe3, 0x6a,0x88,0x3b,0xde,0xd1,0x18); +DEFINE_GUID(IID_IDWriteGlyphRunAnalysis, 0x7d97dbf7, 0xe085, 0x42d4, 0x81, 0xe3, 0x6a, 0x88, 0x3b, 0xde, 0xd1, 0x18); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("7d97dbf7-e085-42d4-81e3-6a883bded118") -IDWriteGlyphRunAnalysis : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE GetAlphaTextureBounds( - DWRITE_TEXTURE_TYPE type, - RECT *bounds) = 0; +IDWriteGlyphRunAnalysis : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE GetAlphaTextureBounds( + DWRITE_TEXTURE_TYPE type, + RECT * bounds) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateAlphaTexture( - DWRITE_TEXTURE_TYPE type, - const RECT *bounds, - BYTE *alphaValues, - UINT32 bufferSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAlphaBlendParams( - IDWriteRenderingParams *renderingParams, - FLOAT *blendGamma, - FLOAT *blendEnhancedContrast, - FLOAT *blendClearTypeLevel) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateAlphaTexture( + DWRITE_TEXTURE_TYPE type, + const RECT* bounds, + BYTE* alphaValues, + UINT32 bufferSize) = 0; + virtual HRESULT STDMETHODCALLTYPE GetAlphaBlendParams( + IDWriteRenderingParams * renderingParams, + FLOAT * blendGamma, + FLOAT * blendEnhancedContrast, + FLOAT * blendClearTypeLevel) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteGlyphRunAnalysis, 0x7d97dbf7, 0xe085, 0x42d4, 0x81,0xe3, 0x6a,0x88,0x3b,0xde,0xd1,0x18) +__CRT_UUID_DECL(IDWriteGlyphRunAnalysis, 0x7d97dbf7, 0xe085, 0x42d4, 0x81, 0xe3, 0x6a, 0x88, 0x3b, 0xde, 0xd1, 0x18) #endif #else typedef struct IDWriteGlyphRunAnalysisVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteGlyphRunAnalysis *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteGlyphRunAnalysis* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteGlyphRunAnalysis *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteGlyphRunAnalysis* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteGlyphRunAnalysis *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteGlyphRunAnalysis* This); - /*** IDWriteGlyphRunAnalysis methods ***/ - HRESULT (STDMETHODCALLTYPE *GetAlphaTextureBounds)( - IDWriteGlyphRunAnalysis *This, - DWRITE_TEXTURE_TYPE type, - RECT *bounds); + /*** IDWriteGlyphRunAnalysis methods ***/ + HRESULT(STDMETHODCALLTYPE* GetAlphaTextureBounds)( + IDWriteGlyphRunAnalysis* This, + DWRITE_TEXTURE_TYPE type, + RECT* bounds); - HRESULT (STDMETHODCALLTYPE *CreateAlphaTexture)( - IDWriteGlyphRunAnalysis *This, - DWRITE_TEXTURE_TYPE type, - const RECT *bounds, - BYTE *alphaValues, - UINT32 bufferSize); + HRESULT(STDMETHODCALLTYPE* CreateAlphaTexture)( + IDWriteGlyphRunAnalysis* This, + DWRITE_TEXTURE_TYPE type, + const RECT* bounds, + BYTE* alphaValues, + UINT32 bufferSize); - HRESULT (STDMETHODCALLTYPE *GetAlphaBlendParams)( - IDWriteGlyphRunAnalysis *This, - IDWriteRenderingParams *renderingParams, - FLOAT *blendGamma, - FLOAT *blendEnhancedContrast, - FLOAT *blendClearTypeLevel); + HRESULT(STDMETHODCALLTYPE* GetAlphaBlendParams)( + IDWriteGlyphRunAnalysis* This, + IDWriteRenderingParams* renderingParams, + FLOAT* blendGamma, + FLOAT* blendEnhancedContrast, + FLOAT* blendClearTypeLevel); - END_INTERFACE + END_INTERFACE } IDWriteGlyphRunAnalysisVtbl; interface IDWriteGlyphRunAnalysis { - CONST_VTBL IDWriteGlyphRunAnalysisVtbl* lpVtbl; + CONST_VTBL IDWriteGlyphRunAnalysisVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteGlyphRunAnalysis_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteGlyphRunAnalysis_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteGlyphRunAnalysis_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteGlyphRunAnalysis_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteGlyphRunAnalysis methods ***/ -#define IDWriteGlyphRunAnalysis_GetAlphaTextureBounds(This,type,bounds) (This)->lpVtbl->GetAlphaTextureBounds(This,type,bounds) -#define IDWriteGlyphRunAnalysis_CreateAlphaTexture(This,type,bounds,alphaValues,bufferSize) (This)->lpVtbl->CreateAlphaTexture(This,type,bounds,alphaValues,bufferSize) -#define IDWriteGlyphRunAnalysis_GetAlphaBlendParams(This,renderingParams,blendGamma,blendEnhancedContrast,blendClearTypeLevel) (This)->lpVtbl->GetAlphaBlendParams(This,renderingParams,blendGamma,blendEnhancedContrast,blendClearTypeLevel) +#define IDWriteGlyphRunAnalysis_GetAlphaTextureBounds(This, type, bounds) (This)->lpVtbl->GetAlphaTextureBounds(This, type, bounds) +#define IDWriteGlyphRunAnalysis_CreateAlphaTexture(This, type, bounds, alphaValues, bufferSize) (This)->lpVtbl->CreateAlphaTexture(This, type, bounds, alphaValues, bufferSize) +#define IDWriteGlyphRunAnalysis_GetAlphaBlendParams(This, renderingParams, blendGamma, blendEnhancedContrast, blendClearTypeLevel) (This)->lpVtbl->GetAlphaBlendParams(This, renderingParams, blendGamma, blendEnhancedContrast, blendClearTypeLevel) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteGlyphRunAnalysis_QueryInterface(IDWriteGlyphRunAnalysis* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteGlyphRunAnalysis_QueryInterface(IDWriteGlyphRunAnalysis* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteGlyphRunAnalysis_AddRef(IDWriteGlyphRunAnalysis* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteGlyphRunAnalysis_Release(IDWriteGlyphRunAnalysis* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteGlyphRunAnalysis methods ***/ -static inline HRESULT IDWriteGlyphRunAnalysis_GetAlphaTextureBounds(IDWriteGlyphRunAnalysis* This,DWRITE_TEXTURE_TYPE type,RECT *bounds) { - return This->lpVtbl->GetAlphaTextureBounds(This,type,bounds); +static inline HRESULT IDWriteGlyphRunAnalysis_GetAlphaTextureBounds(IDWriteGlyphRunAnalysis* This, DWRITE_TEXTURE_TYPE type, RECT* bounds) { + return This->lpVtbl->GetAlphaTextureBounds(This, type, bounds); } -static inline HRESULT IDWriteGlyphRunAnalysis_CreateAlphaTexture(IDWriteGlyphRunAnalysis* This,DWRITE_TEXTURE_TYPE type,const RECT *bounds,BYTE *alphaValues,UINT32 bufferSize) { - return This->lpVtbl->CreateAlphaTexture(This,type,bounds,alphaValues,bufferSize); +static inline HRESULT IDWriteGlyphRunAnalysis_CreateAlphaTexture(IDWriteGlyphRunAnalysis* This, DWRITE_TEXTURE_TYPE type, const RECT* bounds, BYTE* alphaValues, UINT32 bufferSize) { + return This->lpVtbl->CreateAlphaTexture(This, type, bounds, alphaValues, bufferSize); } -static inline HRESULT IDWriteGlyphRunAnalysis_GetAlphaBlendParams(IDWriteGlyphRunAnalysis* This,IDWriteRenderingParams *renderingParams,FLOAT *blendGamma,FLOAT *blendEnhancedContrast,FLOAT *blendClearTypeLevel) { - return This->lpVtbl->GetAlphaBlendParams(This,renderingParams,blendGamma,blendEnhancedContrast,blendClearTypeLevel); +static inline HRESULT IDWriteGlyphRunAnalysis_GetAlphaBlendParams(IDWriteGlyphRunAnalysis* This, IDWriteRenderingParams* renderingParams, FLOAT* blendGamma, FLOAT* blendEnhancedContrast, FLOAT* blendClearTypeLevel) { + return This->lpVtbl->GetAlphaBlendParams(This, renderingParams, blendGamma, blendEnhancedContrast, blendClearTypeLevel); } #endif #endif #endif - -#endif /* __IDWriteGlyphRunAnalysis_INTERFACE_DEFINED__ */ +#endif /* __IDWriteGlyphRunAnalysis_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFactory interface @@ -5107,407 +4992,403 @@ static inline HRESULT IDWriteGlyphRunAnalysis_GetAlphaBlendParams(IDWriteGlyphRu #ifndef __IDWriteFactory_INTERFACE_DEFINED__ #define __IDWriteFactory_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFactory, 0xb859ee5a, 0xd838, 0x4b5b, 0xa2,0xe8, 0x1a,0xdc,0x7d,0x93,0xdb,0x48); +DEFINE_GUID(IID_IDWriteFactory, 0xb859ee5a, 0xd838, 0x4b5b, 0xa2, 0xe8, 0x1a, 0xdc, 0x7d, 0x93, 0xdb, 0x48); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("b859ee5a-d838-4b5b-a2e8-1adc7d93db48") -IDWriteFactory : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection( - IDWriteFontCollection **collection, - WINBOOL check_for_updates = FALSE) = 0; +IDWriteFactory : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection( + IDWriteFontCollection * *collection, + WINBOOL check_for_updates = FALSE) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateCustomFontCollection( - IDWriteFontCollectionLoader *loader, - const void *key, - UINT32 key_size, - IDWriteFontCollection **collection) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateCustomFontCollection( + IDWriteFontCollectionLoader * loader, + const void* key, + UINT32 key_size, + IDWriteFontCollection** collection) = 0; - virtual HRESULT STDMETHODCALLTYPE RegisterFontCollectionLoader( - IDWriteFontCollectionLoader *loader) = 0; + virtual HRESULT STDMETHODCALLTYPE RegisterFontCollectionLoader( + IDWriteFontCollectionLoader * loader) = 0; - virtual HRESULT STDMETHODCALLTYPE UnregisterFontCollectionLoader( - IDWriteFontCollectionLoader *loader) = 0; + virtual HRESULT STDMETHODCALLTYPE UnregisterFontCollectionLoader( + IDWriteFontCollectionLoader * loader) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateFontFileReference( - const WCHAR *path, - const FILETIME *writetime, - IDWriteFontFile **font_file) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateFontFileReference( + const WCHAR* path, + const FILETIME* writetime, + IDWriteFontFile** font_file) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateCustomFontFileReference( - const void *reference_key, - UINT32 key_size, - IDWriteFontFileLoader *loader, - IDWriteFontFile **font_file) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateCustomFontFileReference( + const void* reference_key, + UINT32 key_size, + IDWriteFontFileLoader* loader, + IDWriteFontFile** font_file) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateFontFace( - DWRITE_FONT_FACE_TYPE facetype, - UINT32 files_number, - IDWriteFontFile *const *font_files, - UINT32 index, - DWRITE_FONT_SIMULATIONS sim_flags, - IDWriteFontFace **font_face) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateFontFace( + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile* const* font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace** font_face) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateRenderingParams( - IDWriteRenderingParams **params) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateRenderingParams( + IDWriteRenderingParams * *params) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateMonitorRenderingParams( - HMONITOR monitor, - IDWriteRenderingParams **params) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateMonitorRenderingParams( + HMONITOR monitor, + IDWriteRenderingParams * *params) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams( - FLOAT gamma, - FLOAT enhancedContrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams **params) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams( + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams * *params) = 0; - virtual HRESULT STDMETHODCALLTYPE RegisterFontFileLoader( - IDWriteFontFileLoader *loader) = 0; + virtual HRESULT STDMETHODCALLTYPE RegisterFontFileLoader( + IDWriteFontFileLoader * loader) = 0; - virtual HRESULT STDMETHODCALLTYPE UnregisterFontFileLoader( - IDWriteFontFileLoader *loader) = 0; + virtual HRESULT STDMETHODCALLTYPE UnregisterFontFileLoader( + IDWriteFontFileLoader * loader) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateTextFormat( - const WCHAR *family_name, - IDWriteFontCollection *collection, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STYLE style, - DWRITE_FONT_STRETCH stretch, - FLOAT size, - const WCHAR *locale, - IDWriteTextFormat **format) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateTextFormat( + const WCHAR* family_name, + IDWriteFontCollection* collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR* locale, + IDWriteTextFormat** format) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateTypography( - IDWriteTypography **typography) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateTypography( + IDWriteTypography * *typography) = 0; - virtual HRESULT STDMETHODCALLTYPE GetGdiInterop( - IDWriteGdiInterop **gdi_interop) = 0; + virtual HRESULT STDMETHODCALLTYPE GetGdiInterop( + IDWriteGdiInterop * *gdi_interop) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateTextLayout( - const WCHAR *string, - UINT32 len, - IDWriteTextFormat *format, - FLOAT max_width, - FLOAT max_height, - IDWriteTextLayout **layout) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateTextLayout( + const WCHAR* string, + UINT32 len, + IDWriteTextFormat* format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout** layout) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateGdiCompatibleTextLayout( - const WCHAR *string, - UINT32 len, - IDWriteTextFormat *format, - FLOAT layout_width, - FLOAT layout_height, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - IDWriteTextLayout **layout) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateGdiCompatibleTextLayout( + const WCHAR* string, + UINT32 len, + IDWriteTextFormat* format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout** layout) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateEllipsisTrimmingSign( - IDWriteTextFormat *format, - IDWriteInlineObject **trimming_sign) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateEllipsisTrimmingSign( + IDWriteTextFormat * format, + IDWriteInlineObject * *trimming_sign) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateTextAnalyzer( - IDWriteTextAnalyzer **analyzer) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateTextAnalyzer( + IDWriteTextAnalyzer * *analyzer) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateNumberSubstitution( - DWRITE_NUMBER_SUBSTITUTION_METHOD method, - const WCHAR *locale, - WINBOOL ignore_user_override, - IDWriteNumberSubstitution **substitution) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateGlyphRunAnalysis( - const DWRITE_GLYPH_RUN *glyph_run, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - FLOAT baseline_x, - FLOAT baseline_y, - IDWriteGlyphRunAnalysis **analysis) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateNumberSubstitution( + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR* locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution** substitution) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateGlyphRunAnalysis( + const DWRITE_GLYPH_RUN* glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis** analysis) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFactory, 0xb859ee5a, 0xd838, 0x4b5b, 0xa2,0xe8, 0x1a,0xdc,0x7d,0x93,0xdb,0x48) +__CRT_UUID_DECL(IDWriteFactory, 0xb859ee5a, 0xd838, 0x4b5b, 0xa2, 0xe8, 0x1a, 0xdc, 0x7d, 0x93, 0xdb, 0x48) #endif #else typedef struct IDWriteFactoryVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFactory *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFactory* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFactory *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFactory* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFactory *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFactory* This); - /*** IDWriteFactory methods ***/ - HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( - IDWriteFactory *This, - IDWriteFontCollection **collection, - WINBOOL check_for_updates); + /*** IDWriteFactory methods ***/ + HRESULT(STDMETHODCALLTYPE* GetSystemFontCollection)( + IDWriteFactory* This, + IDWriteFontCollection** collection, + WINBOOL check_for_updates); - HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( - IDWriteFactory *This, - IDWriteFontCollectionLoader *loader, - const void *key, - UINT32 key_size, - IDWriteFontCollection **collection); + HRESULT(STDMETHODCALLTYPE* CreateCustomFontCollection)( + IDWriteFactory* This, + IDWriteFontCollectionLoader* loader, + const void* key, + UINT32 key_size, + IDWriteFontCollection** collection); - HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( - IDWriteFactory *This, - IDWriteFontCollectionLoader *loader); + HRESULT(STDMETHODCALLTYPE* RegisterFontCollectionLoader)( + IDWriteFactory* This, + IDWriteFontCollectionLoader* loader); - HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( - IDWriteFactory *This, - IDWriteFontCollectionLoader *loader); + HRESULT(STDMETHODCALLTYPE* UnregisterFontCollectionLoader)( + IDWriteFactory* This, + IDWriteFontCollectionLoader* loader); - HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( - IDWriteFactory *This, - const WCHAR *path, - const FILETIME *writetime, - IDWriteFontFile **font_file); + HRESULT(STDMETHODCALLTYPE* CreateFontFileReference)( + IDWriteFactory* This, + const WCHAR* path, + const FILETIME* writetime, + IDWriteFontFile** font_file); - HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( - IDWriteFactory *This, - const void *reference_key, - UINT32 key_size, - IDWriteFontFileLoader *loader, - IDWriteFontFile **font_file); + HRESULT(STDMETHODCALLTYPE* CreateCustomFontFileReference)( + IDWriteFactory* This, + const void* reference_key, + UINT32 key_size, + IDWriteFontFileLoader* loader, + IDWriteFontFile** font_file); - HRESULT (STDMETHODCALLTYPE *CreateFontFace)( - IDWriteFactory *This, - DWRITE_FONT_FACE_TYPE facetype, - UINT32 files_number, - IDWriteFontFile *const *font_files, - UINT32 index, - DWRITE_FONT_SIMULATIONS sim_flags, - IDWriteFontFace **font_face); + HRESULT(STDMETHODCALLTYPE* CreateFontFace)( + IDWriteFactory* This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile* const* font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace** font_face); - HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( - IDWriteFactory *This, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateRenderingParams)( + IDWriteFactory* This, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( - IDWriteFactory *This, - HMONITOR monitor, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateMonitorRenderingParams)( + IDWriteFactory* This, + HMONITOR monitor, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( - IDWriteFactory *This, - FLOAT gamma, - FLOAT enhancedContrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateCustomRenderingParams)( + IDWriteFactory* This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( - IDWriteFactory *This, - IDWriteFontFileLoader *loader); + HRESULT(STDMETHODCALLTYPE* RegisterFontFileLoader)( + IDWriteFactory* This, + IDWriteFontFileLoader* loader); - HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( - IDWriteFactory *This, - IDWriteFontFileLoader *loader); + HRESULT(STDMETHODCALLTYPE* UnregisterFontFileLoader)( + IDWriteFactory* This, + IDWriteFontFileLoader* loader); - HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( - IDWriteFactory *This, - const WCHAR *family_name, - IDWriteFontCollection *collection, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STYLE style, - DWRITE_FONT_STRETCH stretch, - FLOAT size, - const WCHAR *locale, - IDWriteTextFormat **format); + HRESULT(STDMETHODCALLTYPE* CreateTextFormat)( + IDWriteFactory* This, + const WCHAR* family_name, + IDWriteFontCollection* collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR* locale, + IDWriteTextFormat** format); - HRESULT (STDMETHODCALLTYPE *CreateTypography)( - IDWriteFactory *This, - IDWriteTypography **typography); + HRESULT(STDMETHODCALLTYPE* CreateTypography)( + IDWriteFactory* This, + IDWriteTypography** typography); - HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( - IDWriteFactory *This, - IDWriteGdiInterop **gdi_interop); + HRESULT(STDMETHODCALLTYPE* GetGdiInterop)( + IDWriteFactory* This, + IDWriteGdiInterop** gdi_interop); - HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( - IDWriteFactory *This, - const WCHAR *string, - UINT32 len, - IDWriteTextFormat *format, - FLOAT max_width, - FLOAT max_height, - IDWriteTextLayout **layout); + HRESULT(STDMETHODCALLTYPE* CreateTextLayout)( + IDWriteFactory* This, + const WCHAR* string, + UINT32 len, + IDWriteTextFormat* format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout** layout); - HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( - IDWriteFactory *This, - const WCHAR *string, - UINT32 len, - IDWriteTextFormat *format, - FLOAT layout_width, - FLOAT layout_height, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - IDWriteTextLayout **layout); + HRESULT(STDMETHODCALLTYPE* CreateGdiCompatibleTextLayout)( + IDWriteFactory* This, + const WCHAR* string, + UINT32 len, + IDWriteTextFormat* format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout** layout); - HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( - IDWriteFactory *This, - IDWriteTextFormat *format, - IDWriteInlineObject **trimming_sign); + HRESULT(STDMETHODCALLTYPE* CreateEllipsisTrimmingSign)( + IDWriteFactory* This, + IDWriteTextFormat* format, + IDWriteInlineObject** trimming_sign); - HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( - IDWriteFactory *This, - IDWriteTextAnalyzer **analyzer); + HRESULT(STDMETHODCALLTYPE* CreateTextAnalyzer)( + IDWriteFactory* This, + IDWriteTextAnalyzer** analyzer); - HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( - IDWriteFactory *This, - DWRITE_NUMBER_SUBSTITUTION_METHOD method, - const WCHAR *locale, - WINBOOL ignore_user_override, - IDWriteNumberSubstitution **substitution); + HRESULT(STDMETHODCALLTYPE* CreateNumberSubstitution)( + IDWriteFactory* This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR* locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution** substitution); - HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( - IDWriteFactory *This, - const DWRITE_GLYPH_RUN *glyph_run, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - FLOAT baseline_x, - FLOAT baseline_y, - IDWriteGlyphRunAnalysis **analysis); + HRESULT(STDMETHODCALLTYPE* CreateGlyphRunAnalysis)( + IDWriteFactory* This, + const DWRITE_GLYPH_RUN* glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis** analysis); - END_INTERFACE + END_INTERFACE } IDWriteFactoryVtbl; interface IDWriteFactory { - CONST_VTBL IDWriteFactoryVtbl* lpVtbl; + CONST_VTBL IDWriteFactoryVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFactory_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFactory_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFactory methods ***/ -#define IDWriteFactory_GetSystemFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetSystemFontCollection(This,collection,check_for_updates) -#define IDWriteFactory_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) -#define IDWriteFactory_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) -#define IDWriteFactory_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) -#define IDWriteFactory_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) -#define IDWriteFactory_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) -#define IDWriteFactory_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) -#define IDWriteFactory_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) -#define IDWriteFactory_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) -#define IDWriteFactory_CreateCustomRenderingParams(This,gamma,enhancedContrast,cleartype_level,geometry,mode,params) (This)->lpVtbl->CreateCustomRenderingParams(This,gamma,enhancedContrast,cleartype_level,geometry,mode,params) -#define IDWriteFactory_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) -#define IDWriteFactory_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) -#define IDWriteFactory_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) -#define IDWriteFactory_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) -#define IDWriteFactory_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) -#define IDWriteFactory_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) -#define IDWriteFactory_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) -#define IDWriteFactory_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) -#define IDWriteFactory_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) -#define IDWriteFactory_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) -#define IDWriteFactory_CreateGlyphRunAnalysis(This,glyph_run,pixels_per_dip,transform,rendering_mode,measuring_mode,baseline_x,baseline_y,analysis) (This)->lpVtbl->CreateGlyphRunAnalysis(This,glyph_run,pixels_per_dip,transform,rendering_mode,measuring_mode,baseline_x,baseline_y,analysis) +#define IDWriteFactory_GetSystemFontCollection(This, collection, check_for_updates) (This)->lpVtbl->GetSystemFontCollection(This, collection, check_for_updates) +#define IDWriteFactory_CreateCustomFontCollection(This, loader, key, key_size, collection) (This)->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection) +#define IDWriteFactory_RegisterFontCollectionLoader(This, loader) (This)->lpVtbl->RegisterFontCollectionLoader(This, loader) +#define IDWriteFactory_UnregisterFontCollectionLoader(This, loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This, loader) +#define IDWriteFactory_CreateFontFileReference(This, path, writetime, font_file) (This)->lpVtbl->CreateFontFileReference(This, path, writetime, font_file) +#define IDWriteFactory_CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) (This)->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) +#define IDWriteFactory_CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) (This)->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) +#define IDWriteFactory_CreateRenderingParams(This, params) (This)->lpVtbl->CreateRenderingParams(This, params) +#define IDWriteFactory_CreateMonitorRenderingParams(This, monitor, params) (This)->lpVtbl->CreateMonitorRenderingParams(This, monitor, params) +#define IDWriteFactory_CreateCustomRenderingParams(This, gamma, enhancedContrast, cleartype_level, geometry, mode, params) (This)->lpVtbl->CreateCustomRenderingParams(This, gamma, enhancedContrast, cleartype_level, geometry, mode, params) +#define IDWriteFactory_RegisterFontFileLoader(This, loader) (This)->lpVtbl->RegisterFontFileLoader(This, loader) +#define IDWriteFactory_UnregisterFontFileLoader(This, loader) (This)->lpVtbl->UnregisterFontFileLoader(This, loader) +#define IDWriteFactory_CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format) (This)->lpVtbl->CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format) +#define IDWriteFactory_CreateTypography(This, typography) (This)->lpVtbl->CreateTypography(This, typography) +#define IDWriteFactory_GetGdiInterop(This, gdi_interop) (This)->lpVtbl->GetGdiInterop(This, gdi_interop) +#define IDWriteFactory_CreateTextLayout(This, string, len, format, max_width, max_height, layout) (This)->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout) +#define IDWriteFactory_CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) +#define IDWriteFactory_CreateEllipsisTrimmingSign(This, format, trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign) +#define IDWriteFactory_CreateTextAnalyzer(This, analyzer) (This)->lpVtbl->CreateTextAnalyzer(This, analyzer) +#define IDWriteFactory_CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) (This)->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) +#define IDWriteFactory_CreateGlyphRunAnalysis(This, glyph_run, pixels_per_dip, transform, rendering_mode, measuring_mode, baseline_x, baseline_y, analysis) (This)->lpVtbl->CreateGlyphRunAnalysis(This, glyph_run, pixels_per_dip, transform, rendering_mode, measuring_mode, baseline_x, baseline_y, analysis) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFactory_QueryInterface(IDWriteFactory* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFactory_QueryInterface(IDWriteFactory* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFactory_AddRef(IDWriteFactory* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFactory_Release(IDWriteFactory* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFactory methods ***/ -static inline HRESULT IDWriteFactory_GetSystemFontCollection(IDWriteFactory* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { - return This->lpVtbl->GetSystemFontCollection(This,collection,check_for_updates); +static inline HRESULT IDWriteFactory_GetSystemFontCollection(IDWriteFactory* This, IDWriteFontCollection** collection, WINBOOL check_for_updates) { + return This->lpVtbl->GetSystemFontCollection(This, collection, check_for_updates); } -static inline HRESULT IDWriteFactory_CreateCustomFontCollection(IDWriteFactory* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { - return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +static inline HRESULT IDWriteFactory_CreateCustomFontCollection(IDWriteFactory* This, IDWriteFontCollectionLoader* loader, const void* key, UINT32 key_size, IDWriteFontCollection** collection) { + return This->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection); } -static inline HRESULT IDWriteFactory_RegisterFontCollectionLoader(IDWriteFactory* This,IDWriteFontCollectionLoader *loader) { - return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +static inline HRESULT IDWriteFactory_RegisterFontCollectionLoader(IDWriteFactory* This, IDWriteFontCollectionLoader* loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This, loader); } -static inline HRESULT IDWriteFactory_UnregisterFontCollectionLoader(IDWriteFactory* This,IDWriteFontCollectionLoader *loader) { - return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +static inline HRESULT IDWriteFactory_UnregisterFontCollectionLoader(IDWriteFactory* This, IDWriteFontCollectionLoader* loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This, loader); } -static inline HRESULT IDWriteFactory_CreateFontFileReference(IDWriteFactory* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { - return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +static inline HRESULT IDWriteFactory_CreateFontFileReference(IDWriteFactory* This, const WCHAR* path, const FILETIME* writetime, IDWriteFontFile** font_file) { + return This->lpVtbl->CreateFontFileReference(This, path, writetime, font_file); } -static inline HRESULT IDWriteFactory_CreateCustomFontFileReference(IDWriteFactory* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { - return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +static inline HRESULT IDWriteFactory_CreateCustomFontFileReference(IDWriteFactory* This, const void* reference_key, UINT32 key_size, IDWriteFontFileLoader* loader, IDWriteFontFile** font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file); } -static inline HRESULT IDWriteFactory_CreateFontFace(IDWriteFactory* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { - return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +static inline HRESULT IDWriteFactory_CreateFontFace(IDWriteFactory* This, DWRITE_FONT_FACE_TYPE facetype, UINT32 files_number, IDWriteFontFile* const* font_files, UINT32 index, DWRITE_FONT_SIMULATIONS sim_flags, IDWriteFontFace** font_face) { + return This->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face); } -static inline HRESULT IDWriteFactory_CreateRenderingParams(IDWriteFactory* This,IDWriteRenderingParams **params) { - return This->lpVtbl->CreateRenderingParams(This,params); +static inline HRESULT IDWriteFactory_CreateRenderingParams(IDWriteFactory* This, IDWriteRenderingParams** params) { + return This->lpVtbl->CreateRenderingParams(This, params); } -static inline HRESULT IDWriteFactory_CreateMonitorRenderingParams(IDWriteFactory* This,HMONITOR monitor,IDWriteRenderingParams **params) { - return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +static inline HRESULT IDWriteFactory_CreateMonitorRenderingParams(IDWriteFactory* This, HMONITOR monitor, IDWriteRenderingParams** params) { + return This->lpVtbl->CreateMonitorRenderingParams(This, monitor, params); } -static inline HRESULT IDWriteFactory_CreateCustomRenderingParams(IDWriteFactory* This,FLOAT gamma,FLOAT enhancedContrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY geometry,DWRITE_RENDERING_MODE mode,IDWriteRenderingParams **params) { - return This->lpVtbl->CreateCustomRenderingParams(This,gamma,enhancedContrast,cleartype_level,geometry,mode,params); +static inline HRESULT IDWriteFactory_CreateCustomRenderingParams(IDWriteFactory* This, FLOAT gamma, FLOAT enhancedContrast, FLOAT cleartype_level, DWRITE_PIXEL_GEOMETRY geometry, DWRITE_RENDERING_MODE mode, IDWriteRenderingParams** params) { + return This->lpVtbl->CreateCustomRenderingParams(This, gamma, enhancedContrast, cleartype_level, geometry, mode, params); } -static inline HRESULT IDWriteFactory_RegisterFontFileLoader(IDWriteFactory* This,IDWriteFontFileLoader *loader) { - return This->lpVtbl->RegisterFontFileLoader(This,loader); +static inline HRESULT IDWriteFactory_RegisterFontFileLoader(IDWriteFactory* This, IDWriteFontFileLoader* loader) { + return This->lpVtbl->RegisterFontFileLoader(This, loader); } -static inline HRESULT IDWriteFactory_UnregisterFontFileLoader(IDWriteFactory* This,IDWriteFontFileLoader *loader) { - return This->lpVtbl->UnregisterFontFileLoader(This,loader); +static inline HRESULT IDWriteFactory_UnregisterFontFileLoader(IDWriteFactory* This, IDWriteFontFileLoader* loader) { + return This->lpVtbl->UnregisterFontFileLoader(This, loader); } -static inline HRESULT IDWriteFactory_CreateTextFormat(IDWriteFactory* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) { - return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format); +static inline HRESULT IDWriteFactory_CreateTextFormat(IDWriteFactory* This, const WCHAR* family_name, IDWriteFontCollection* collection, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STYLE style, DWRITE_FONT_STRETCH stretch, FLOAT size, const WCHAR* locale, IDWriteTextFormat** format) { + return This->lpVtbl->CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format); } -static inline HRESULT IDWriteFactory_CreateTypography(IDWriteFactory* This,IDWriteTypography **typography) { - return This->lpVtbl->CreateTypography(This,typography); +static inline HRESULT IDWriteFactory_CreateTypography(IDWriteFactory* This, IDWriteTypography** typography) { + return This->lpVtbl->CreateTypography(This, typography); } -static inline HRESULT IDWriteFactory_GetGdiInterop(IDWriteFactory* This,IDWriteGdiInterop **gdi_interop) { - return This->lpVtbl->GetGdiInterop(This,gdi_interop); +static inline HRESULT IDWriteFactory_GetGdiInterop(IDWriteFactory* This, IDWriteGdiInterop** gdi_interop) { + return This->lpVtbl->GetGdiInterop(This, gdi_interop); } -static inline HRESULT IDWriteFactory_CreateTextLayout(IDWriteFactory* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { - return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +static inline HRESULT IDWriteFactory_CreateTextLayout(IDWriteFactory* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT max_width, FLOAT max_height, IDWriteTextLayout** layout) { + return This->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout); } -static inline HRESULT IDWriteFactory_CreateGdiCompatibleTextLayout(IDWriteFactory* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { - return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +static inline HRESULT IDWriteFactory_CreateGdiCompatibleTextLayout(IDWriteFactory* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT layout_width, FLOAT layout_height, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, IDWriteTextLayout** layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout); } -static inline HRESULT IDWriteFactory_CreateEllipsisTrimmingSign(IDWriteFactory* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { - return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +static inline HRESULT IDWriteFactory_CreateEllipsisTrimmingSign(IDWriteFactory* This, IDWriteTextFormat* format, IDWriteInlineObject** trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign); } -static inline HRESULT IDWriteFactory_CreateTextAnalyzer(IDWriteFactory* This,IDWriteTextAnalyzer **analyzer) { - return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +static inline HRESULT IDWriteFactory_CreateTextAnalyzer(IDWriteFactory* This, IDWriteTextAnalyzer** analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This, analyzer); } -static inline HRESULT IDWriteFactory_CreateNumberSubstitution(IDWriteFactory* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { - return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +static inline HRESULT IDWriteFactory_CreateNumberSubstitution(IDWriteFactory* This, DWRITE_NUMBER_SUBSTITUTION_METHOD method, const WCHAR* locale, WINBOOL ignore_user_override, IDWriteNumberSubstitution** substitution) { + return This->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution); } -static inline HRESULT IDWriteFactory_CreateGlyphRunAnalysis(IDWriteFactory* This,const DWRITE_GLYPH_RUN *glyph_run,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE rendering_mode,DWRITE_MEASURING_MODE measuring_mode,FLOAT baseline_x,FLOAT baseline_y,IDWriteGlyphRunAnalysis **analysis) { - return This->lpVtbl->CreateGlyphRunAnalysis(This,glyph_run,pixels_per_dip,transform,rendering_mode,measuring_mode,baseline_x,baseline_y,analysis); +static inline HRESULT IDWriteFactory_CreateGlyphRunAnalysis(IDWriteFactory* This, const DWRITE_GLYPH_RUN* glyph_run, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, DWRITE_RENDERING_MODE rendering_mode, DWRITE_MEASURING_MODE measuring_mode, FLOAT baseline_x, FLOAT baseline_y, IDWriteGlyphRunAnalysis** analysis) { + return This->lpVtbl->CreateGlyphRunAnalysis(This, glyph_run, pixels_per_dip, transform, rendering_mode, measuring_mode, baseline_x, baseline_y, analysis); } #endif #endif #endif +#endif /* __IDWriteFactory_INTERFACE_DEFINED__ */ -#endif /* __IDWriteFactory_INTERFACE_DEFINED__ */ - -HRESULT WINAPI DWriteCreateFactory(DWRITE_FACTORY_TYPE,REFIID,IUnknown**); +HRESULT WINAPI DWriteCreateFactory(DWRITE_FACTORY_TYPE, REFIID, IUnknown**); #define FACILITY_DWRITE 0x898 #define DWRITE_ERR_BASE 0x5000 #define MAKE_DWRITE_HR(severity, code) MAKE_HRESULT(severity, FACILITY_DWRITE, (DWRITE_ERR_BASE + code)) #define MAKE_DWRITE_HR_ERR(code) MAKE_DWRITE_HR(SEVERITY_ERROR, code) /* Begin additional prototypes for all interfaces */ - /* End additional prototypes */ #ifdef __cplusplus diff --git a/src/text/dwrite_2.h b/src/text/dwrite_2.h index 75cbd7e3b..049da566e 100644 --- a/src/text/dwrite_2.h +++ b/src/text/dwrite_2.h @@ -117,55 +117,55 @@ extern "C" { #endif typedef enum DWRITE_OPTICAL_ALIGNMENT { - DWRITE_OPTICAL_ALIGNMENT_NONE = 0, - DWRITE_OPTICAL_ALIGNMENT_NO_SIDE_BEARINGS = 1 + DWRITE_OPTICAL_ALIGNMENT_NONE = 0, + DWRITE_OPTICAL_ALIGNMENT_NO_SIDE_BEARINGS = 1 } DWRITE_OPTICAL_ALIGNMENT; typedef enum DWRITE_GRID_FIT_MODE { - DWRITE_GRID_FIT_MODE_DEFAULT = 0, - DWRITE_GRID_FIT_MODE_DISABLED = 1, - DWRITE_GRID_FIT_MODE_ENABLED = 2 + DWRITE_GRID_FIT_MODE_DEFAULT = 0, + DWRITE_GRID_FIT_MODE_DISABLED = 1, + DWRITE_GRID_FIT_MODE_ENABLED = 2 } DWRITE_GRID_FIT_MODE; typedef struct DWRITE_TEXT_METRICS1 { - FLOAT left; - FLOAT top; - FLOAT width; - FLOAT widthIncludingTrailingWhitespace; - FLOAT height; - FLOAT layoutWidth; - FLOAT layoutHeight; - UINT32 maxBidiReorderingDepth; - UINT32 lineCount; - FLOAT heightIncludingTrailingWhitespace; + FLOAT left; + FLOAT top; + FLOAT width; + FLOAT widthIncludingTrailingWhitespace; + FLOAT height; + FLOAT layoutWidth; + FLOAT layoutHeight; + UINT32 maxBidiReorderingDepth; + UINT32 lineCount; + FLOAT heightIncludingTrailingWhitespace; } DWRITE_TEXT_METRICS1; #ifndef D3DCOLORVALUE_DEFINED typedef struct _D3DCOLORVALUE { - __C89_NAMELESS union { - FLOAT r; - FLOAT dvR; - } __C89_NAMELESSUNIONNAME1; - __C89_NAMELESS union { - FLOAT g; - FLOAT dvG; - } __C89_NAMELESSUNIONNAME2; - __C89_NAMELESS union { - FLOAT b; - FLOAT dvB; - } __C89_NAMELESSUNIONNAME3; - __C89_NAMELESS union { - FLOAT a; - FLOAT dvA; - } __C89_NAMELESSUNIONNAME4; + __C89_NAMELESS union { + FLOAT r; + FLOAT dvR; + } __C89_NAMELESSUNIONNAME1; + __C89_NAMELESS union { + FLOAT g; + FLOAT dvG; + } __C89_NAMELESSUNIONNAME2; + __C89_NAMELESS union { + FLOAT b; + FLOAT dvB; + } __C89_NAMELESSUNIONNAME3; + __C89_NAMELESS union { + FLOAT a; + FLOAT dvA; + } __C89_NAMELESSUNIONNAME4; } D3DCOLORVALUE; #define D3DCOLORVALUE_DEFINED #endif typedef D3DCOLORVALUE DWRITE_COLOR_F; typedef struct DWRITE_COLOR_GLYPH_RUN { - DWRITE_GLYPH_RUN glyphRun; - DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription; - FLOAT baselineOriginX; - FLOAT baselineOriginY; - DWRITE_COLOR_F runColor; - UINT16 paletteIndex; + DWRITE_GLYPH_RUN glyphRun; + DWRITE_GLYPH_RUN_DESCRIPTION* glyphRunDescription; + FLOAT baselineOriginX; + FLOAT baselineOriginY; + DWRITE_COLOR_F runColor; + UINT16 paletteIndex; } DWRITE_COLOR_GLYPH_RUN; /***************************************************************************** * IDWriteTextRenderer1 interface @@ -173,226 +173,223 @@ typedef struct DWRITE_COLOR_GLYPH_RUN { #ifndef __IDWriteTextRenderer1_INTERFACE_DEFINED__ #define __IDWriteTextRenderer1_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteTextRenderer1, 0xd3e0e934, 0x22a0, 0x427e, 0xaa,0xe4, 0x7d,0x95,0x74,0xb5,0x9d,0xb1); +DEFINE_GUID(IID_IDWriteTextRenderer1, 0xd3e0e934, 0x22a0, 0x427e, 0xaa, 0xe4, 0x7d, 0x95, 0x74, 0xb5, 0x9d, 0xb1); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("d3e0e934-22a0-427e-aae4-7d9574b59db1") -IDWriteTextRenderer1 : public IDWriteTextRenderer -{ - virtual HRESULT STDMETHODCALLTYPE DrawGlyphRun( - void *context, - FLOAT originX, - FLOAT originY, - DWRITE_GLYPH_ORIENTATION_ANGLE angle, - DWRITE_MEASURING_MODE mode, - const DWRITE_GLYPH_RUN *run, - const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, - IUnknown *effect) = 0; +IDWriteTextRenderer1 : public IDWriteTextRenderer { + virtual HRESULT STDMETHODCALLTYPE DrawGlyphRun( + void* context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + DWRITE_MEASURING_MODE mode, + const DWRITE_GLYPH_RUN* run, + const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, + IUnknown* effect) = 0; - virtual HRESULT STDMETHODCALLTYPE DrawUnderline( - void *context, - FLOAT originX, - FLOAT originY, - DWRITE_GLYPH_ORIENTATION_ANGLE angle, - const DWRITE_UNDERLINE *underline, - IUnknown *effect) = 0; + virtual HRESULT STDMETHODCALLTYPE DrawUnderline( + void* context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + const DWRITE_UNDERLINE* underline, + IUnknown* effect) = 0; - virtual HRESULT STDMETHODCALLTYPE DrawStrikethrough( - void *context, - FLOAT originX, - FLOAT originY, - DWRITE_GLYPH_ORIENTATION_ANGLE angle, - const DWRITE_STRIKETHROUGH *strikethrough, - IUnknown *effect) = 0; - - virtual HRESULT STDMETHODCALLTYPE DrawInlineObject( - void *context, - FLOAT originX, - FLOAT originY, - DWRITE_GLYPH_ORIENTATION_ANGLE angle, - IDWriteInlineObject *inlineObject, - WINBOOL is_sideways, - WINBOOL is_rtl, - IUnknown *effect) = 0; + virtual HRESULT STDMETHODCALLTYPE DrawStrikethrough( + void* context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + const DWRITE_STRIKETHROUGH* strikethrough, + IUnknown* effect) = 0; + virtual HRESULT STDMETHODCALLTYPE DrawInlineObject( + void* context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + IDWriteInlineObject* inlineObject, + WINBOOL is_sideways, + WINBOOL is_rtl, + IUnknown* effect) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextRenderer1, 0xd3e0e934, 0x22a0, 0x427e, 0xaa,0xe4, 0x7d,0x95,0x74,0xb5,0x9d,0xb1) +__CRT_UUID_DECL(IDWriteTextRenderer1, 0xd3e0e934, 0x22a0, 0x427e, 0xaa, 0xe4, 0x7d, 0x95, 0x74, 0xb5, 0x9d, 0xb1) #endif #else typedef struct IDWriteTextRenderer1Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteTextRenderer1 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteTextRenderer1* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteTextRenderer1 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteTextRenderer1* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteTextRenderer1 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteTextRenderer1* This); - /*** IDWritePixelSnapping methods ***/ - HRESULT (STDMETHODCALLTYPE *IsPixelSnappingDisabled)( - IDWriteTextRenderer1 *This, - void *client_drawingcontext, - WINBOOL *disabled); + /*** IDWritePixelSnapping methods ***/ + HRESULT(STDMETHODCALLTYPE* IsPixelSnappingDisabled)( + IDWriteTextRenderer1* This, + void* client_drawingcontext, + WINBOOL* disabled); - HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)( - IDWriteTextRenderer1 *This, - void *client_drawingcontext, - DWRITE_MATRIX *transform); + HRESULT(STDMETHODCALLTYPE* GetCurrentTransform)( + IDWriteTextRenderer1* This, + void* client_drawingcontext, + DWRITE_MATRIX* transform); - HRESULT (STDMETHODCALLTYPE *GetPixelsPerDip)( - IDWriteTextRenderer1 *This, - void *client_drawingcontext, - FLOAT *pixels_per_dip); + HRESULT(STDMETHODCALLTYPE* GetPixelsPerDip)( + IDWriteTextRenderer1* This, + void* client_drawingcontext, + FLOAT* pixels_per_dip); - /*** IDWriteTextRenderer methods ***/ - HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)( - IDWriteTextRenderer1 *This, - void *client_drawingcontext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - DWRITE_MEASURING_MODE mode, - const DWRITE_GLYPH_RUN *glyph_run, - const DWRITE_GLYPH_RUN_DESCRIPTION *run_descr, - IUnknown *drawing_effect); + /*** IDWriteTextRenderer methods ***/ + HRESULT(STDMETHODCALLTYPE* DrawGlyphRun)( + IDWriteTextRenderer1* This, + void* client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE mode, + const DWRITE_GLYPH_RUN* glyph_run, + const DWRITE_GLYPH_RUN_DESCRIPTION* run_descr, + IUnknown* drawing_effect); - HRESULT (STDMETHODCALLTYPE *DrawUnderline)( - IDWriteTextRenderer1 *This, - void *client_drawingcontext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - const DWRITE_UNDERLINE *underline, - IUnknown *drawing_effect); + HRESULT(STDMETHODCALLTYPE* DrawUnderline)( + IDWriteTextRenderer1* This, + void* client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + const DWRITE_UNDERLINE* underline, + IUnknown* drawing_effect); - HRESULT (STDMETHODCALLTYPE *DrawStrikethrough)( - IDWriteTextRenderer1 *This, - void *client_drawingcontext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - const DWRITE_STRIKETHROUGH *strikethrough, - IUnknown *drawing_effect); + HRESULT(STDMETHODCALLTYPE* DrawStrikethrough)( + IDWriteTextRenderer1* This, + void* client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + const DWRITE_STRIKETHROUGH* strikethrough, + IUnknown* drawing_effect); - HRESULT (STDMETHODCALLTYPE *DrawInlineObject)( - IDWriteTextRenderer1 *This, - void *client_drawingcontext, - FLOAT originX, - FLOAT originY, - IDWriteInlineObject *object, - WINBOOL is_sideways, - WINBOOL is_rtl, - IUnknown *drawing_effect); + HRESULT(STDMETHODCALLTYPE* DrawInlineObject)( + IDWriteTextRenderer1* This, + void* client_drawingcontext, + FLOAT originX, + FLOAT originY, + IDWriteInlineObject* object, + WINBOOL is_sideways, + WINBOOL is_rtl, + IUnknown* drawing_effect); - /*** IDWriteTextRenderer1 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteTextRenderer1_DrawGlyphRun)( - IDWriteTextRenderer1 *This, - void *context, - FLOAT originX, - FLOAT originY, - DWRITE_GLYPH_ORIENTATION_ANGLE angle, - DWRITE_MEASURING_MODE mode, - const DWRITE_GLYPH_RUN *run, - const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, - IUnknown *effect); + /*** IDWriteTextRenderer1 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteTextRenderer1_DrawGlyphRun)( + IDWriteTextRenderer1* This, + void* context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + DWRITE_MEASURING_MODE mode, + const DWRITE_GLYPH_RUN* run, + const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, + IUnknown* effect); - HRESULT (STDMETHODCALLTYPE *IDWriteTextRenderer1_DrawUnderline)( - IDWriteTextRenderer1 *This, - void *context, - FLOAT originX, - FLOAT originY, - DWRITE_GLYPH_ORIENTATION_ANGLE angle, - const DWRITE_UNDERLINE *underline, - IUnknown *effect); + HRESULT(STDMETHODCALLTYPE* IDWriteTextRenderer1_DrawUnderline)( + IDWriteTextRenderer1* This, + void* context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + const DWRITE_UNDERLINE* underline, + IUnknown* effect); - HRESULT (STDMETHODCALLTYPE *IDWriteTextRenderer1_DrawStrikethrough)( - IDWriteTextRenderer1 *This, - void *context, - FLOAT originX, - FLOAT originY, - DWRITE_GLYPH_ORIENTATION_ANGLE angle, - const DWRITE_STRIKETHROUGH *strikethrough, - IUnknown *effect); + HRESULT(STDMETHODCALLTYPE* IDWriteTextRenderer1_DrawStrikethrough)( + IDWriteTextRenderer1* This, + void* context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + const DWRITE_STRIKETHROUGH* strikethrough, + IUnknown* effect); - HRESULT (STDMETHODCALLTYPE *IDWriteTextRenderer1_DrawInlineObject)( - IDWriteTextRenderer1 *This, - void *context, - FLOAT originX, - FLOAT originY, - DWRITE_GLYPH_ORIENTATION_ANGLE angle, - IDWriteInlineObject *inlineObject, - WINBOOL is_sideways, - WINBOOL is_rtl, - IUnknown *effect); + HRESULT(STDMETHODCALLTYPE* IDWriteTextRenderer1_DrawInlineObject)( + IDWriteTextRenderer1* This, + void* context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + IDWriteInlineObject* inlineObject, + WINBOOL is_sideways, + WINBOOL is_rtl, + IUnknown* effect); - END_INTERFACE + END_INTERFACE } IDWriteTextRenderer1Vtbl; interface IDWriteTextRenderer1 { - CONST_VTBL IDWriteTextRenderer1Vtbl* lpVtbl; + CONST_VTBL IDWriteTextRenderer1Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteTextRenderer1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextRenderer1_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteTextRenderer1_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteTextRenderer1_Release(This) (This)->lpVtbl->Release(This) /*** IDWritePixelSnapping methods ***/ -#define IDWriteTextRenderer1_IsPixelSnappingDisabled(This,client_drawingcontext,disabled) (This)->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled) -#define IDWriteTextRenderer1_GetCurrentTransform(This,client_drawingcontext,transform) (This)->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform) -#define IDWriteTextRenderer1_GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) (This)->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) +#define IDWriteTextRenderer1_IsPixelSnappingDisabled(This, client_drawingcontext, disabled) (This)->lpVtbl->IsPixelSnappingDisabled(This, client_drawingcontext, disabled) +#define IDWriteTextRenderer1_GetCurrentTransform(This, client_drawingcontext, transform) (This)->lpVtbl->GetCurrentTransform(This, client_drawingcontext, transform) +#define IDWriteTextRenderer1_GetPixelsPerDip(This, client_drawingcontext, pixels_per_dip) (This)->lpVtbl->GetPixelsPerDip(This, client_drawingcontext, pixels_per_dip) /*** IDWriteTextRenderer methods ***/ /*** IDWriteTextRenderer1 methods ***/ -#define IDWriteTextRenderer1_DrawGlyphRun(This,context,originX,originY,angle,mode,run,rundescr,effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawGlyphRun(This,context,originX,originY,angle,mode,run,rundescr,effect) -#define IDWriteTextRenderer1_DrawUnderline(This,context,originX,originY,angle,underline,effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawUnderline(This,context,originX,originY,angle,underline,effect) -#define IDWriteTextRenderer1_DrawStrikethrough(This,context,originX,originY,angle,strikethrough,effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawStrikethrough(This,context,originX,originY,angle,strikethrough,effect) -#define IDWriteTextRenderer1_DrawInlineObject(This,context,originX,originY,angle,inlineObject,is_sideways,is_rtl,effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawInlineObject(This,context,originX,originY,angle,inlineObject,is_sideways,is_rtl,effect) +#define IDWriteTextRenderer1_DrawGlyphRun(This, context, originX, originY, angle, mode, run, rundescr, effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawGlyphRun(This, context, originX, originY, angle, mode, run, rundescr, effect) +#define IDWriteTextRenderer1_DrawUnderline(This, context, originX, originY, angle, underline, effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawUnderline(This, context, originX, originY, angle, underline, effect) +#define IDWriteTextRenderer1_DrawStrikethrough(This, context, originX, originY, angle, strikethrough, effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawStrikethrough(This, context, originX, originY, angle, strikethrough, effect) +#define IDWriteTextRenderer1_DrawInlineObject(This, context, originX, originY, angle, inlineObject, is_sideways, is_rtl, effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawInlineObject(This, context, originX, originY, angle, inlineObject, is_sideways, is_rtl, effect) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteTextRenderer1_QueryInterface(IDWriteTextRenderer1* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteTextRenderer1_QueryInterface(IDWriteTextRenderer1* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteTextRenderer1_AddRef(IDWriteTextRenderer1* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteTextRenderer1_Release(IDWriteTextRenderer1* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWritePixelSnapping methods ***/ -static inline HRESULT IDWriteTextRenderer1_IsPixelSnappingDisabled(IDWriteTextRenderer1* This,void *client_drawingcontext,WINBOOL *disabled) { - return This->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled); +static inline HRESULT IDWriteTextRenderer1_IsPixelSnappingDisabled(IDWriteTextRenderer1* This, void* client_drawingcontext, WINBOOL* disabled) { + return This->lpVtbl->IsPixelSnappingDisabled(This, client_drawingcontext, disabled); } -static inline HRESULT IDWriteTextRenderer1_GetCurrentTransform(IDWriteTextRenderer1* This,void *client_drawingcontext,DWRITE_MATRIX *transform) { - return This->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform); +static inline HRESULT IDWriteTextRenderer1_GetCurrentTransform(IDWriteTextRenderer1* This, void* client_drawingcontext, DWRITE_MATRIX* transform) { + return This->lpVtbl->GetCurrentTransform(This, client_drawingcontext, transform); } -static inline HRESULT IDWriteTextRenderer1_GetPixelsPerDip(IDWriteTextRenderer1* This,void *client_drawingcontext,FLOAT *pixels_per_dip) { - return This->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip); +static inline HRESULT IDWriteTextRenderer1_GetPixelsPerDip(IDWriteTextRenderer1* This, void* client_drawingcontext, FLOAT* pixels_per_dip) { + return This->lpVtbl->GetPixelsPerDip(This, client_drawingcontext, pixels_per_dip); } /*** IDWriteTextRenderer methods ***/ /*** IDWriteTextRenderer1 methods ***/ -static inline HRESULT IDWriteTextRenderer1_DrawGlyphRun(IDWriteTextRenderer1* This,void *context,FLOAT originX,FLOAT originY,DWRITE_GLYPH_ORIENTATION_ANGLE angle,DWRITE_MEASURING_MODE mode,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,IUnknown *effect) { - return This->lpVtbl->IDWriteTextRenderer1_DrawGlyphRun(This,context,originX,originY,angle,mode,run,rundescr,effect); +static inline HRESULT IDWriteTextRenderer1_DrawGlyphRun(IDWriteTextRenderer1* This, void* context, FLOAT originX, FLOAT originY, DWRITE_GLYPH_ORIENTATION_ANGLE angle, DWRITE_MEASURING_MODE mode, const DWRITE_GLYPH_RUN* run, const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, IUnknown* effect) { + return This->lpVtbl->IDWriteTextRenderer1_DrawGlyphRun(This, context, originX, originY, angle, mode, run, rundescr, effect); } -static inline HRESULT IDWriteTextRenderer1_DrawUnderline(IDWriteTextRenderer1* This,void *context,FLOAT originX,FLOAT originY,DWRITE_GLYPH_ORIENTATION_ANGLE angle,const DWRITE_UNDERLINE *underline,IUnknown *effect) { - return This->lpVtbl->IDWriteTextRenderer1_DrawUnderline(This,context,originX,originY,angle,underline,effect); +static inline HRESULT IDWriteTextRenderer1_DrawUnderline(IDWriteTextRenderer1* This, void* context, FLOAT originX, FLOAT originY, DWRITE_GLYPH_ORIENTATION_ANGLE angle, const DWRITE_UNDERLINE* underline, IUnknown* effect) { + return This->lpVtbl->IDWriteTextRenderer1_DrawUnderline(This, context, originX, originY, angle, underline, effect); } -static inline HRESULT IDWriteTextRenderer1_DrawStrikethrough(IDWriteTextRenderer1* This,void *context,FLOAT originX,FLOAT originY,DWRITE_GLYPH_ORIENTATION_ANGLE angle,const DWRITE_STRIKETHROUGH *strikethrough,IUnknown *effect) { - return This->lpVtbl->IDWriteTextRenderer1_DrawStrikethrough(This,context,originX,originY,angle,strikethrough,effect); +static inline HRESULT IDWriteTextRenderer1_DrawStrikethrough(IDWriteTextRenderer1* This, void* context, FLOAT originX, FLOAT originY, DWRITE_GLYPH_ORIENTATION_ANGLE angle, const DWRITE_STRIKETHROUGH* strikethrough, IUnknown* effect) { + return This->lpVtbl->IDWriteTextRenderer1_DrawStrikethrough(This, context, originX, originY, angle, strikethrough, effect); } -static inline HRESULT IDWriteTextRenderer1_DrawInlineObject(IDWriteTextRenderer1* This,void *context,FLOAT originX,FLOAT originY,DWRITE_GLYPH_ORIENTATION_ANGLE angle,IDWriteInlineObject *inlineObject,WINBOOL is_sideways,WINBOOL is_rtl,IUnknown *effect) { - return This->lpVtbl->IDWriteTextRenderer1_DrawInlineObject(This,context,originX,originY,angle,inlineObject,is_sideways,is_rtl,effect); +static inline HRESULT IDWriteTextRenderer1_DrawInlineObject(IDWriteTextRenderer1* This, void* context, FLOAT originX, FLOAT originY, DWRITE_GLYPH_ORIENTATION_ANGLE angle, IDWriteInlineObject* inlineObject, WINBOOL is_sideways, WINBOOL is_rtl, IUnknown* effect) { + return This->lpVtbl->IDWriteTextRenderer1_DrawInlineObject(This, context, originX, originY, angle, inlineObject, is_sideways, is_rtl, effect); } #endif #endif #endif - -#endif /* __IDWriteTextRenderer1_INTERFACE_DEFINED__ */ +#endif /* __IDWriteTextRenderer1_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontFallback interface @@ -400,96 +397,93 @@ static inline HRESULT IDWriteTextRenderer1_DrawInlineObject(IDWriteTextRenderer1 #ifndef __IDWriteFontFallback_INTERFACE_DEFINED__ #define __IDWriteFontFallback_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontFallback, 0xefa008f9, 0xf7a1, 0x48bf, 0xb0,0x5c, 0xf2,0x24,0x71,0x3c,0xc0,0xff); +DEFINE_GUID(IID_IDWriteFontFallback, 0xefa008f9, 0xf7a1, 0x48bf, 0xb0, 0x5c, 0xf2, 0x24, 0x71, 0x3c, 0xc0, 0xff); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("efa008f9-f7a1-48bf-b05c-f224713cc0ff") -IDWriteFontFallback : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE MapCharacters( - IDWriteTextAnalysisSource *source, - UINT32 position, - UINT32 length, - IDWriteFontCollection *basecollection, - const WCHAR *baseFamilyName, - DWRITE_FONT_WEIGHT baseWeight, - DWRITE_FONT_STYLE baseStyle, - DWRITE_FONT_STRETCH baseStretch, - UINT32 *mappedLength, - IDWriteFont **mappedFont, - FLOAT *scale) = 0; - +IDWriteFontFallback : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE MapCharacters( + IDWriteTextAnalysisSource * source, + UINT32 position, + UINT32 length, + IDWriteFontCollection * basecollection, + const WCHAR* baseFamilyName, + DWRITE_FONT_WEIGHT baseWeight, + DWRITE_FONT_STYLE baseStyle, + DWRITE_FONT_STRETCH baseStretch, + UINT32* mappedLength, + IDWriteFont** mappedFont, + FLOAT* scale) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFallback, 0xefa008f9, 0xf7a1, 0x48bf, 0xb0,0x5c, 0xf2,0x24,0x71,0x3c,0xc0,0xff) +__CRT_UUID_DECL(IDWriteFontFallback, 0xefa008f9, 0xf7a1, 0x48bf, 0xb0, 0x5c, 0xf2, 0x24, 0x71, 0x3c, 0xc0, 0xff) #endif #else typedef struct IDWriteFontFallbackVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontFallback *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontFallback* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontFallback *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontFallback* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontFallback *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontFallback* This); - /*** IDWriteFontFallback methods ***/ - HRESULT (STDMETHODCALLTYPE *MapCharacters)( - IDWriteFontFallback *This, - IDWriteTextAnalysisSource *source, - UINT32 position, - UINT32 length, - IDWriteFontCollection *basecollection, - const WCHAR *baseFamilyName, - DWRITE_FONT_WEIGHT baseWeight, - DWRITE_FONT_STYLE baseStyle, - DWRITE_FONT_STRETCH baseStretch, - UINT32 *mappedLength, - IDWriteFont **mappedFont, - FLOAT *scale); + /*** IDWriteFontFallback methods ***/ + HRESULT(STDMETHODCALLTYPE* MapCharacters)( + IDWriteFontFallback* This, + IDWriteTextAnalysisSource* source, + UINT32 position, + UINT32 length, + IDWriteFontCollection* basecollection, + const WCHAR* baseFamilyName, + DWRITE_FONT_WEIGHT baseWeight, + DWRITE_FONT_STYLE baseStyle, + DWRITE_FONT_STRETCH baseStretch, + UINT32* mappedLength, + IDWriteFont** mappedFont, + FLOAT* scale); - END_INTERFACE + END_INTERFACE } IDWriteFontFallbackVtbl; interface IDWriteFontFallback { - CONST_VTBL IDWriteFontFallbackVtbl* lpVtbl; + CONST_VTBL IDWriteFontFallbackVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontFallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFallback_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontFallback_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontFallback_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontFallback methods ***/ -#define IDWriteFontFallback_MapCharacters(This,source,position,length,basecollection,baseFamilyName,baseWeight,baseStyle,baseStretch,mappedLength,mappedFont,scale) (This)->lpVtbl->MapCharacters(This,source,position,length,basecollection,baseFamilyName,baseWeight,baseStyle,baseStretch,mappedLength,mappedFont,scale) +#define IDWriteFontFallback_MapCharacters(This, source, position, length, basecollection, baseFamilyName, baseWeight, baseStyle, baseStretch, mappedLength, mappedFont, scale) (This)->lpVtbl->MapCharacters(This, source, position, length, basecollection, baseFamilyName, baseWeight, baseStyle, baseStretch, mappedLength, mappedFont, scale) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFallback_QueryInterface(IDWriteFontFallback* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontFallback_QueryInterface(IDWriteFontFallback* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontFallback_AddRef(IDWriteFontFallback* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontFallback_Release(IDWriteFontFallback* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontFallback methods ***/ -static inline HRESULT IDWriteFontFallback_MapCharacters(IDWriteFontFallback* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteFontCollection *basecollection,const WCHAR *baseFamilyName,DWRITE_FONT_WEIGHT baseWeight,DWRITE_FONT_STYLE baseStyle,DWRITE_FONT_STRETCH baseStretch,UINT32 *mappedLength,IDWriteFont **mappedFont,FLOAT *scale) { - return This->lpVtbl->MapCharacters(This,source,position,length,basecollection,baseFamilyName,baseWeight,baseStyle,baseStretch,mappedLength,mappedFont,scale); +static inline HRESULT IDWriteFontFallback_MapCharacters(IDWriteFontFallback* This, IDWriteTextAnalysisSource* source, UINT32 position, UINT32 length, IDWriteFontCollection* basecollection, const WCHAR* baseFamilyName, DWRITE_FONT_WEIGHT baseWeight, DWRITE_FONT_STYLE baseStyle, DWRITE_FONT_STRETCH baseStretch, UINT32* mappedLength, IDWriteFont** mappedFont, FLOAT* scale) { + return This->lpVtbl->MapCharacters(This, source, position, length, basecollection, baseFamilyName, baseWeight, baseStyle, baseStretch, mappedLength, mappedFont, scale); } #endif #endif #endif - -#endif /* __IDWriteFontFallback_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontFallback_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteTextFormat1 interface @@ -497,349 +491,343 @@ static inline HRESULT IDWriteFontFallback_MapCharacters(IDWriteFontFallback* Thi #ifndef __IDWriteTextFormat1_INTERFACE_DEFINED__ #define __IDWriteTextFormat1_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteTextFormat1, 0x5f174b49, 0x0d8b, 0x4cfb, 0x8b,0xca, 0xf1,0xcc,0xe9,0xd0,0x6c,0x67); +DEFINE_GUID(IID_IDWriteTextFormat1, 0x5f174b49, 0x0d8b, 0x4cfb, 0x8b, 0xca, 0xf1, 0xcc, 0xe9, 0xd0, 0x6c, 0x67); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("5f174b49-0d8b-4cfb-8bca-f1cce9d06c67") -IDWriteTextFormat1 : public IDWriteTextFormat -{ - virtual HRESULT STDMETHODCALLTYPE SetVerticalGlyphOrientation( - DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) = 0; +IDWriteTextFormat1 : public IDWriteTextFormat { + virtual HRESULT STDMETHODCALLTYPE SetVerticalGlyphOrientation( + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) = 0; - virtual DWRITE_VERTICAL_GLYPH_ORIENTATION STDMETHODCALLTYPE GetVerticalGlyphOrientation( - ) = 0; + virtual DWRITE_VERTICAL_GLYPH_ORIENTATION STDMETHODCALLTYPE GetVerticalGlyphOrientation() = 0; - virtual HRESULT STDMETHODCALLTYPE SetLastLineWrapping( - WINBOOL lastline_wrapping_enabled) = 0; + virtual HRESULT STDMETHODCALLTYPE SetLastLineWrapping( + WINBOOL lastline_wrapping_enabled) = 0; - virtual WINBOOL STDMETHODCALLTYPE GetLastLineWrapping( - ) = 0; + virtual WINBOOL STDMETHODCALLTYPE GetLastLineWrapping() = 0; - virtual HRESULT STDMETHODCALLTYPE SetOpticalAlignment( - DWRITE_OPTICAL_ALIGNMENT alignment) = 0; + virtual HRESULT STDMETHODCALLTYPE SetOpticalAlignment( + DWRITE_OPTICAL_ALIGNMENT alignment) = 0; - virtual DWRITE_OPTICAL_ALIGNMENT STDMETHODCALLTYPE GetOpticalAlignment( - ) = 0; + virtual DWRITE_OPTICAL_ALIGNMENT STDMETHODCALLTYPE GetOpticalAlignment() = 0; - virtual HRESULT STDMETHODCALLTYPE SetFontFallback( - IDWriteFontFallback *fallback) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontFallback( - IDWriteFontFallback **fallback) = 0; + virtual HRESULT STDMETHODCALLTYPE SetFontFallback( + IDWriteFontFallback * fallback) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontFallback( + IDWriteFontFallback * *fallback) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextFormat1, 0x5f174b49, 0x0d8b, 0x4cfb, 0x8b,0xca, 0xf1,0xcc,0xe9,0xd0,0x6c,0x67) +__CRT_UUID_DECL(IDWriteTextFormat1, 0x5f174b49, 0x0d8b, 0x4cfb, 0x8b, 0xca, 0xf1, 0xcc, 0xe9, 0xd0, 0x6c, 0x67) #endif #else typedef struct IDWriteTextFormat1Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteTextFormat1 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteTextFormat1* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteTextFormat1 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteTextFormat1* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteTextFormat1 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteTextFormat1* This); - /*** IDWriteTextFormat methods ***/ - HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( - IDWriteTextFormat1 *This, - DWRITE_TEXT_ALIGNMENT alignment); + /*** IDWriteTextFormat methods ***/ + HRESULT(STDMETHODCALLTYPE* SetTextAlignment)( + IDWriteTextFormat1* This, + DWRITE_TEXT_ALIGNMENT alignment); - HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( - IDWriteTextFormat1 *This, - DWRITE_PARAGRAPH_ALIGNMENT alignment); + HRESULT(STDMETHODCALLTYPE* SetParagraphAlignment)( + IDWriteTextFormat1* This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); - HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( - IDWriteTextFormat1 *This, - DWRITE_WORD_WRAPPING wrapping); + HRESULT(STDMETHODCALLTYPE* SetWordWrapping)( + IDWriteTextFormat1* This, + DWRITE_WORD_WRAPPING wrapping); - HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( - IDWriteTextFormat1 *This, - DWRITE_READING_DIRECTION direction); + HRESULT(STDMETHODCALLTYPE* SetReadingDirection)( + IDWriteTextFormat1* This, + DWRITE_READING_DIRECTION direction); - HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( - IDWriteTextFormat1 *This, - DWRITE_FLOW_DIRECTION direction); + HRESULT(STDMETHODCALLTYPE* SetFlowDirection)( + IDWriteTextFormat1* This, + DWRITE_FLOW_DIRECTION direction); - HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( - IDWriteTextFormat1 *This, - FLOAT tabstop); + HRESULT(STDMETHODCALLTYPE* SetIncrementalTabStop)( + IDWriteTextFormat1* This, + FLOAT tabstop); - HRESULT (STDMETHODCALLTYPE *SetTrimming)( - IDWriteTextFormat1 *This, - const DWRITE_TRIMMING *trimming, - IDWriteInlineObject *trimming_sign); + HRESULT(STDMETHODCALLTYPE* SetTrimming)( + IDWriteTextFormat1* This, + const DWRITE_TRIMMING* trimming, + IDWriteInlineObject* trimming_sign); - HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( - IDWriteTextFormat1 *This, - DWRITE_LINE_SPACING_METHOD spacing, - FLOAT line_spacing, - FLOAT baseline); + HRESULT(STDMETHODCALLTYPE* SetLineSpacing)( + IDWriteTextFormat1* This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); - DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( - IDWriteTextFormat1 *This); + DWRITE_TEXT_ALIGNMENT(STDMETHODCALLTYPE* GetTextAlignment)( + IDWriteTextFormat1* This); - DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( - IDWriteTextFormat1 *This); + DWRITE_PARAGRAPH_ALIGNMENT(STDMETHODCALLTYPE* GetParagraphAlignment)( + IDWriteTextFormat1* This); - DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( - IDWriteTextFormat1 *This); + DWRITE_WORD_WRAPPING(STDMETHODCALLTYPE* GetWordWrapping)( + IDWriteTextFormat1* This); - DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( - IDWriteTextFormat1 *This); + DWRITE_READING_DIRECTION(STDMETHODCALLTYPE* GetReadingDirection)( + IDWriteTextFormat1* This); - DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( - IDWriteTextFormat1 *This); + DWRITE_FLOW_DIRECTION(STDMETHODCALLTYPE* GetFlowDirection)( + IDWriteTextFormat1* This); - FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( - IDWriteTextFormat1 *This); + FLOAT(STDMETHODCALLTYPE* GetIncrementalTabStop)( + IDWriteTextFormat1* This); - HRESULT (STDMETHODCALLTYPE *GetTrimming)( - IDWriteTextFormat1 *This, - DWRITE_TRIMMING *options, - IDWriteInlineObject **trimming_sign); + HRESULT(STDMETHODCALLTYPE* GetTrimming)( + IDWriteTextFormat1* This, + DWRITE_TRIMMING* options, + IDWriteInlineObject** trimming_sign); - HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( - IDWriteTextFormat1 *This, - DWRITE_LINE_SPACING_METHOD *method, - FLOAT *spacing, - FLOAT *baseline); + HRESULT(STDMETHODCALLTYPE* GetLineSpacing)( + IDWriteTextFormat1* This, + DWRITE_LINE_SPACING_METHOD* method, + FLOAT* spacing, + FLOAT* baseline); - HRESULT (STDMETHODCALLTYPE *GetFontCollection)( - IDWriteTextFormat1 *This, - IDWriteFontCollection **collection); + HRESULT(STDMETHODCALLTYPE* GetFontCollection)( + IDWriteTextFormat1* This, + IDWriteFontCollection** collection); - UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( - IDWriteTextFormat1 *This); + UINT32(STDMETHODCALLTYPE* GetFontFamilyNameLength)( + IDWriteTextFormat1* This); - HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( - IDWriteTextFormat1 *This, - WCHAR *name, - UINT32 size); + HRESULT(STDMETHODCALLTYPE* GetFontFamilyName)( + IDWriteTextFormat1* This, + WCHAR* name, + UINT32 size); - DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( - IDWriteTextFormat1 *This); + DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetFontWeight)( + IDWriteTextFormat1* This); - DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( - IDWriteTextFormat1 *This); + DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetFontStyle)( + IDWriteTextFormat1* This); - DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( - IDWriteTextFormat1 *This); + DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetFontStretch)( + IDWriteTextFormat1* This); - FLOAT (STDMETHODCALLTYPE *GetFontSize)( - IDWriteTextFormat1 *This); + FLOAT(STDMETHODCALLTYPE* GetFontSize)( + IDWriteTextFormat1* This); - UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( - IDWriteTextFormat1 *This); + UINT32(STDMETHODCALLTYPE* GetLocaleNameLength)( + IDWriteTextFormat1* This); - HRESULT (STDMETHODCALLTYPE *GetLocaleName)( - IDWriteTextFormat1 *This, - WCHAR *name, - UINT32 size); + HRESULT(STDMETHODCALLTYPE* GetLocaleName)( + IDWriteTextFormat1* This, + WCHAR* name, + UINT32 size); - /*** IDWriteTextFormat1 methods ***/ - HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)( - IDWriteTextFormat1 *This, - DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); + /*** IDWriteTextFormat1 methods ***/ + HRESULT(STDMETHODCALLTYPE* SetVerticalGlyphOrientation)( + IDWriteTextFormat1* This, + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); - DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)( - IDWriteTextFormat1 *This); + DWRITE_VERTICAL_GLYPH_ORIENTATION(STDMETHODCALLTYPE* GetVerticalGlyphOrientation)( + IDWriteTextFormat1* This); - HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)( - IDWriteTextFormat1 *This, - WINBOOL lastline_wrapping_enabled); + HRESULT(STDMETHODCALLTYPE* SetLastLineWrapping)( + IDWriteTextFormat1* This, + WINBOOL lastline_wrapping_enabled); - WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)( - IDWriteTextFormat1 *This); + WINBOOL(STDMETHODCALLTYPE* GetLastLineWrapping)( + IDWriteTextFormat1* This); - HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)( - IDWriteTextFormat1 *This, - DWRITE_OPTICAL_ALIGNMENT alignment); + HRESULT(STDMETHODCALLTYPE* SetOpticalAlignment)( + IDWriteTextFormat1* This, + DWRITE_OPTICAL_ALIGNMENT alignment); - DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)( - IDWriteTextFormat1 *This); + DWRITE_OPTICAL_ALIGNMENT(STDMETHODCALLTYPE* GetOpticalAlignment)( + IDWriteTextFormat1* This); - HRESULT (STDMETHODCALLTYPE *SetFontFallback)( - IDWriteTextFormat1 *This, - IDWriteFontFallback *fallback); + HRESULT(STDMETHODCALLTYPE* SetFontFallback)( + IDWriteTextFormat1* This, + IDWriteFontFallback* fallback); - HRESULT (STDMETHODCALLTYPE *GetFontFallback)( - IDWriteTextFormat1 *This, - IDWriteFontFallback **fallback); + HRESULT(STDMETHODCALLTYPE* GetFontFallback)( + IDWriteTextFormat1* This, + IDWriteFontFallback** fallback); - END_INTERFACE + END_INTERFACE } IDWriteTextFormat1Vtbl; interface IDWriteTextFormat1 { - CONST_VTBL IDWriteTextFormat1Vtbl* lpVtbl; + CONST_VTBL IDWriteTextFormat1Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteTextFormat1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextFormat1_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteTextFormat1_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteTextFormat1_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteTextFormat methods ***/ -#define IDWriteTextFormat1_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) -#define IDWriteTextFormat1_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) -#define IDWriteTextFormat1_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) -#define IDWriteTextFormat1_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) -#define IDWriteTextFormat1_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) -#define IDWriteTextFormat1_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) -#define IDWriteTextFormat1_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) -#define IDWriteTextFormat1_SetLineSpacing(This,spacing,line_spacing,baseline) (This)->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline) +#define IDWriteTextFormat1_SetTextAlignment(This, alignment) (This)->lpVtbl->SetTextAlignment(This, alignment) +#define IDWriteTextFormat1_SetParagraphAlignment(This, alignment) (This)->lpVtbl->SetParagraphAlignment(This, alignment) +#define IDWriteTextFormat1_SetWordWrapping(This, wrapping) (This)->lpVtbl->SetWordWrapping(This, wrapping) +#define IDWriteTextFormat1_SetReadingDirection(This, direction) (This)->lpVtbl->SetReadingDirection(This, direction) +#define IDWriteTextFormat1_SetFlowDirection(This, direction) (This)->lpVtbl->SetFlowDirection(This, direction) +#define IDWriteTextFormat1_SetIncrementalTabStop(This, tabstop) (This)->lpVtbl->SetIncrementalTabStop(This, tabstop) +#define IDWriteTextFormat1_SetTrimming(This, trimming, trimming_sign) (This)->lpVtbl->SetTrimming(This, trimming, trimming_sign) +#define IDWriteTextFormat1_SetLineSpacing(This, spacing, line_spacing, baseline) (This)->lpVtbl->SetLineSpacing(This, spacing, line_spacing, baseline) #define IDWriteTextFormat1_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) #define IDWriteTextFormat1_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) #define IDWriteTextFormat1_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) #define IDWriteTextFormat1_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) #define IDWriteTextFormat1_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) #define IDWriteTextFormat1_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) -#define IDWriteTextFormat1_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) -#define IDWriteTextFormat1_GetLineSpacing(This,method,spacing,baseline) (This)->lpVtbl->GetLineSpacing(This,method,spacing,baseline) -#define IDWriteTextFormat1_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteTextFormat1_GetTrimming(This, options, trimming_sign) (This)->lpVtbl->GetTrimming(This, options, trimming_sign) +#define IDWriteTextFormat1_GetLineSpacing(This, method, spacing, baseline) (This)->lpVtbl->GetLineSpacing(This, method, spacing, baseline) +#define IDWriteTextFormat1_GetFontCollection(This, collection) (This)->lpVtbl->GetFontCollection(This, collection) #define IDWriteTextFormat1_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This) -#define IDWriteTextFormat1_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size) +#define IDWriteTextFormat1_GetFontFamilyName(This, name, size) (This)->lpVtbl->GetFontFamilyName(This, name, size) #define IDWriteTextFormat1_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This) #define IDWriteTextFormat1_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This) #define IDWriteTextFormat1_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This) #define IDWriteTextFormat1_GetFontSize(This) (This)->lpVtbl->GetFontSize(This) #define IDWriteTextFormat1_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This) -#define IDWriteTextFormat1_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size) +#define IDWriteTextFormat1_GetLocaleName(This, name, size) (This)->lpVtbl->GetLocaleName(This, name, size) /*** IDWriteTextFormat1 methods ***/ -#define IDWriteTextFormat1_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation) +#define IDWriteTextFormat1_SetVerticalGlyphOrientation(This, orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This, orientation) #define IDWriteTextFormat1_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) -#define IDWriteTextFormat1_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled) +#define IDWriteTextFormat1_SetLastLineWrapping(This, lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled) #define IDWriteTextFormat1_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) -#define IDWriteTextFormat1_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment) +#define IDWriteTextFormat1_SetOpticalAlignment(This, alignment) (This)->lpVtbl->SetOpticalAlignment(This, alignment) #define IDWriteTextFormat1_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) -#define IDWriteTextFormat1_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback) -#define IDWriteTextFormat1_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback) +#define IDWriteTextFormat1_SetFontFallback(This, fallback) (This)->lpVtbl->SetFontFallback(This, fallback) +#define IDWriteTextFormat1_GetFontFallback(This, fallback) (This)->lpVtbl->GetFontFallback(This, fallback) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteTextFormat1_QueryInterface(IDWriteTextFormat1* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteTextFormat1_QueryInterface(IDWriteTextFormat1* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteTextFormat1_AddRef(IDWriteTextFormat1* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteTextFormat1_Release(IDWriteTextFormat1* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteTextFormat methods ***/ -static inline HRESULT IDWriteTextFormat1_SetTextAlignment(IDWriteTextFormat1* This,DWRITE_TEXT_ALIGNMENT alignment) { - return This->lpVtbl->SetTextAlignment(This,alignment); +static inline HRESULT IDWriteTextFormat1_SetTextAlignment(IDWriteTextFormat1* This, DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This, alignment); } -static inline HRESULT IDWriteTextFormat1_SetParagraphAlignment(IDWriteTextFormat1* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { - return This->lpVtbl->SetParagraphAlignment(This,alignment); +static inline HRESULT IDWriteTextFormat1_SetParagraphAlignment(IDWriteTextFormat1* This, DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This, alignment); } -static inline HRESULT IDWriteTextFormat1_SetWordWrapping(IDWriteTextFormat1* This,DWRITE_WORD_WRAPPING wrapping) { - return This->lpVtbl->SetWordWrapping(This,wrapping); +static inline HRESULT IDWriteTextFormat1_SetWordWrapping(IDWriteTextFormat1* This, DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This, wrapping); } -static inline HRESULT IDWriteTextFormat1_SetReadingDirection(IDWriteTextFormat1* This,DWRITE_READING_DIRECTION direction) { - return This->lpVtbl->SetReadingDirection(This,direction); +static inline HRESULT IDWriteTextFormat1_SetReadingDirection(IDWriteTextFormat1* This, DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This, direction); } -static inline HRESULT IDWriteTextFormat1_SetFlowDirection(IDWriteTextFormat1* This,DWRITE_FLOW_DIRECTION direction) { - return This->lpVtbl->SetFlowDirection(This,direction); +static inline HRESULT IDWriteTextFormat1_SetFlowDirection(IDWriteTextFormat1* This, DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This, direction); } -static inline HRESULT IDWriteTextFormat1_SetIncrementalTabStop(IDWriteTextFormat1* This,FLOAT tabstop) { - return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +static inline HRESULT IDWriteTextFormat1_SetIncrementalTabStop(IDWriteTextFormat1* This, FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This, tabstop); } -static inline HRESULT IDWriteTextFormat1_SetTrimming(IDWriteTextFormat1* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { - return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +static inline HRESULT IDWriteTextFormat1_SetTrimming(IDWriteTextFormat1* This, const DWRITE_TRIMMING* trimming, IDWriteInlineObject* trimming_sign) { + return This->lpVtbl->SetTrimming(This, trimming, trimming_sign); } -static inline HRESULT IDWriteTextFormat1_SetLineSpacing(IDWriteTextFormat1* This,DWRITE_LINE_SPACING_METHOD spacing,FLOAT line_spacing,FLOAT baseline) { - return This->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline); +static inline HRESULT IDWriteTextFormat1_SetLineSpacing(IDWriteTextFormat1* This, DWRITE_LINE_SPACING_METHOD spacing, FLOAT line_spacing, FLOAT baseline) { + return This->lpVtbl->SetLineSpacing(This, spacing, line_spacing, baseline); } static inline DWRITE_TEXT_ALIGNMENT IDWriteTextFormat1_GetTextAlignment(IDWriteTextFormat1* This) { - return This->lpVtbl->GetTextAlignment(This); + return This->lpVtbl->GetTextAlignment(This); } static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat1_GetParagraphAlignment(IDWriteTextFormat1* This) { - return This->lpVtbl->GetParagraphAlignment(This); + return This->lpVtbl->GetParagraphAlignment(This); } static inline DWRITE_WORD_WRAPPING IDWriteTextFormat1_GetWordWrapping(IDWriteTextFormat1* This) { - return This->lpVtbl->GetWordWrapping(This); + return This->lpVtbl->GetWordWrapping(This); } static inline DWRITE_READING_DIRECTION IDWriteTextFormat1_GetReadingDirection(IDWriteTextFormat1* This) { - return This->lpVtbl->GetReadingDirection(This); + return This->lpVtbl->GetReadingDirection(This); } static inline DWRITE_FLOW_DIRECTION IDWriteTextFormat1_GetFlowDirection(IDWriteTextFormat1* This) { - return This->lpVtbl->GetFlowDirection(This); + return This->lpVtbl->GetFlowDirection(This); } static inline FLOAT IDWriteTextFormat1_GetIncrementalTabStop(IDWriteTextFormat1* This) { - return This->lpVtbl->GetIncrementalTabStop(This); + return This->lpVtbl->GetIncrementalTabStop(This); } -static inline HRESULT IDWriteTextFormat1_GetTrimming(IDWriteTextFormat1* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { - return This->lpVtbl->GetTrimming(This,options,trimming_sign); +static inline HRESULT IDWriteTextFormat1_GetTrimming(IDWriteTextFormat1* This, DWRITE_TRIMMING* options, IDWriteInlineObject** trimming_sign) { + return This->lpVtbl->GetTrimming(This, options, trimming_sign); } -static inline HRESULT IDWriteTextFormat1_GetLineSpacing(IDWriteTextFormat1* This,DWRITE_LINE_SPACING_METHOD *method,FLOAT *spacing,FLOAT *baseline) { - return This->lpVtbl->GetLineSpacing(This,method,spacing,baseline); +static inline HRESULT IDWriteTextFormat1_GetLineSpacing(IDWriteTextFormat1* This, DWRITE_LINE_SPACING_METHOD* method, FLOAT* spacing, FLOAT* baseline) { + return This->lpVtbl->GetLineSpacing(This, method, spacing, baseline); } -static inline HRESULT IDWriteTextFormat1_GetFontCollection(IDWriteTextFormat1* This,IDWriteFontCollection **collection) { - return This->lpVtbl->GetFontCollection(This,collection); +static inline HRESULT IDWriteTextFormat1_GetFontCollection(IDWriteTextFormat1* This, IDWriteFontCollection** collection) { + return This->lpVtbl->GetFontCollection(This, collection); } static inline UINT32 IDWriteTextFormat1_GetFontFamilyNameLength(IDWriteTextFormat1* This) { - return This->lpVtbl->GetFontFamilyNameLength(This); + return This->lpVtbl->GetFontFamilyNameLength(This); } -static inline HRESULT IDWriteTextFormat1_GetFontFamilyName(IDWriteTextFormat1* This,WCHAR *name,UINT32 size) { - return This->lpVtbl->GetFontFamilyName(This,name,size); +static inline HRESULT IDWriteTextFormat1_GetFontFamilyName(IDWriteTextFormat1* This, WCHAR* name, UINT32 size) { + return This->lpVtbl->GetFontFamilyName(This, name, size); } static inline DWRITE_FONT_WEIGHT IDWriteTextFormat1_GetFontWeight(IDWriteTextFormat1* This) { - return This->lpVtbl->GetFontWeight(This); + return This->lpVtbl->GetFontWeight(This); } static inline DWRITE_FONT_STYLE IDWriteTextFormat1_GetFontStyle(IDWriteTextFormat1* This) { - return This->lpVtbl->GetFontStyle(This); + return This->lpVtbl->GetFontStyle(This); } static inline DWRITE_FONT_STRETCH IDWriteTextFormat1_GetFontStretch(IDWriteTextFormat1* This) { - return This->lpVtbl->GetFontStretch(This); + return This->lpVtbl->GetFontStretch(This); } static inline FLOAT IDWriteTextFormat1_GetFontSize(IDWriteTextFormat1* This) { - return This->lpVtbl->GetFontSize(This); + return This->lpVtbl->GetFontSize(This); } static inline UINT32 IDWriteTextFormat1_GetLocaleNameLength(IDWriteTextFormat1* This) { - return This->lpVtbl->GetLocaleNameLength(This); + return This->lpVtbl->GetLocaleNameLength(This); } -static inline HRESULT IDWriteTextFormat1_GetLocaleName(IDWriteTextFormat1* This,WCHAR *name,UINT32 size) { - return This->lpVtbl->GetLocaleName(This,name,size); +static inline HRESULT IDWriteTextFormat1_GetLocaleName(IDWriteTextFormat1* This, WCHAR* name, UINT32 size) { + return This->lpVtbl->GetLocaleName(This, name, size); } /*** IDWriteTextFormat1 methods ***/ -static inline HRESULT IDWriteTextFormat1_SetVerticalGlyphOrientation(IDWriteTextFormat1* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { - return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation); +static inline HRESULT IDWriteTextFormat1_SetVerticalGlyphOrientation(IDWriteTextFormat1* This, DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { + return This->lpVtbl->SetVerticalGlyphOrientation(This, orientation); } static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextFormat1_GetVerticalGlyphOrientation(IDWriteTextFormat1* This) { - return This->lpVtbl->GetVerticalGlyphOrientation(This); + return This->lpVtbl->GetVerticalGlyphOrientation(This); } -static inline HRESULT IDWriteTextFormat1_SetLastLineWrapping(IDWriteTextFormat1* This,WINBOOL lastline_wrapping_enabled) { - return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled); +static inline HRESULT IDWriteTextFormat1_SetLastLineWrapping(IDWriteTextFormat1* This, WINBOOL lastline_wrapping_enabled) { + return This->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled); } static inline WINBOOL IDWriteTextFormat1_GetLastLineWrapping(IDWriteTextFormat1* This) { - return This->lpVtbl->GetLastLineWrapping(This); + return This->lpVtbl->GetLastLineWrapping(This); } -static inline HRESULT IDWriteTextFormat1_SetOpticalAlignment(IDWriteTextFormat1* This,DWRITE_OPTICAL_ALIGNMENT alignment) { - return This->lpVtbl->SetOpticalAlignment(This,alignment); +static inline HRESULT IDWriteTextFormat1_SetOpticalAlignment(IDWriteTextFormat1* This, DWRITE_OPTICAL_ALIGNMENT alignment) { + return This->lpVtbl->SetOpticalAlignment(This, alignment); } static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextFormat1_GetOpticalAlignment(IDWriteTextFormat1* This) { - return This->lpVtbl->GetOpticalAlignment(This); + return This->lpVtbl->GetOpticalAlignment(This); } -static inline HRESULT IDWriteTextFormat1_SetFontFallback(IDWriteTextFormat1* This,IDWriteFontFallback *fallback) { - return This->lpVtbl->SetFontFallback(This,fallback); +static inline HRESULT IDWriteTextFormat1_SetFontFallback(IDWriteTextFormat1* This, IDWriteFontFallback* fallback) { + return This->lpVtbl->SetFontFallback(This, fallback); } -static inline HRESULT IDWriteTextFormat1_GetFontFallback(IDWriteTextFormat1* This,IDWriteFontFallback **fallback) { - return This->lpVtbl->GetFontFallback(This,fallback); +static inline HRESULT IDWriteTextFormat1_GetFontFallback(IDWriteTextFormat1* This, IDWriteFontFallback** fallback) { + return This->lpVtbl->GetFontFallback(This, fallback); } #endif #endif #endif - -#endif /* __IDWriteTextFormat1_INTERFACE_DEFINED__ */ +#endif /* __IDWriteTextFormat1_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteTextLayout2 interface @@ -847,741 +835,735 @@ static inline HRESULT IDWriteTextFormat1_GetFontFallback(IDWriteTextFormat1* Thi #ifndef __IDWriteTextLayout2_INTERFACE_DEFINED__ #define __IDWriteTextLayout2_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteTextLayout2, 0x1093c18f, 0x8d5e, 0x43f0, 0xb0,0x64, 0x09,0x17,0x31,0x1b,0x52,0x5e); +DEFINE_GUID(IID_IDWriteTextLayout2, 0x1093c18f, 0x8d5e, 0x43f0, 0xb0, 0x64, 0x09, 0x17, 0x31, 0x1b, 0x52, 0x5e); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("1093c18f-8d5e-43f0-b064-0917311b525e") -IDWriteTextLayout2 : public IDWriteTextLayout1 -{ - virtual HRESULT STDMETHODCALLTYPE GetMetrics( - DWRITE_TEXT_METRICS1 *metrics) = 0; +IDWriteTextLayout2 : public IDWriteTextLayout1 { + virtual HRESULT STDMETHODCALLTYPE GetMetrics( + DWRITE_TEXT_METRICS1 * metrics) = 0; - virtual HRESULT STDMETHODCALLTYPE SetVerticalGlyphOrientation( - DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) = 0; + virtual HRESULT STDMETHODCALLTYPE SetVerticalGlyphOrientation( + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) = 0; - virtual DWRITE_VERTICAL_GLYPH_ORIENTATION STDMETHODCALLTYPE GetVerticalGlyphOrientation( - ) = 0; + virtual DWRITE_VERTICAL_GLYPH_ORIENTATION STDMETHODCALLTYPE GetVerticalGlyphOrientation() = 0; - virtual HRESULT STDMETHODCALLTYPE SetLastLineWrapping( - WINBOOL lastline_wrapping_enabled) = 0; + virtual HRESULT STDMETHODCALLTYPE SetLastLineWrapping( + WINBOOL lastline_wrapping_enabled) = 0; - virtual WINBOOL STDMETHODCALLTYPE GetLastLineWrapping( - ) = 0; + virtual WINBOOL STDMETHODCALLTYPE GetLastLineWrapping() = 0; - virtual HRESULT STDMETHODCALLTYPE SetOpticalAlignment( - DWRITE_OPTICAL_ALIGNMENT alignment) = 0; + virtual HRESULT STDMETHODCALLTYPE SetOpticalAlignment( + DWRITE_OPTICAL_ALIGNMENT alignment) = 0; - virtual DWRITE_OPTICAL_ALIGNMENT STDMETHODCALLTYPE GetOpticalAlignment( - ) = 0; + virtual DWRITE_OPTICAL_ALIGNMENT STDMETHODCALLTYPE GetOpticalAlignment() = 0; - virtual HRESULT STDMETHODCALLTYPE SetFontFallback( - IDWriteFontFallback *fallback) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontFallback( - IDWriteFontFallback **fallback) = 0; + virtual HRESULT STDMETHODCALLTYPE SetFontFallback( + IDWriteFontFallback * fallback) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontFallback( + IDWriteFontFallback * *fallback) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextLayout2, 0x1093c18f, 0x8d5e, 0x43f0, 0xb0,0x64, 0x09,0x17,0x31,0x1b,0x52,0x5e) +__CRT_UUID_DECL(IDWriteTextLayout2, 0x1093c18f, 0x8d5e, 0x43f0, 0xb0, 0x64, 0x09, 0x17, 0x31, 0x1b, 0x52, 0x5e) #endif #else typedef struct IDWriteTextLayout2Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteTextLayout2 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteTextLayout2* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteTextLayout2 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteTextLayout2* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteTextLayout2 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteTextLayout2* This); - /*** IDWriteTextFormat methods ***/ - HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( - IDWriteTextLayout2 *This, - DWRITE_TEXT_ALIGNMENT alignment); + /*** IDWriteTextFormat methods ***/ + HRESULT(STDMETHODCALLTYPE* SetTextAlignment)( + IDWriteTextLayout2* This, + DWRITE_TEXT_ALIGNMENT alignment); - HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( - IDWriteTextLayout2 *This, - DWRITE_PARAGRAPH_ALIGNMENT alignment); + HRESULT(STDMETHODCALLTYPE* SetParagraphAlignment)( + IDWriteTextLayout2* This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); - HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( - IDWriteTextLayout2 *This, - DWRITE_WORD_WRAPPING wrapping); + HRESULT(STDMETHODCALLTYPE* SetWordWrapping)( + IDWriteTextLayout2* This, + DWRITE_WORD_WRAPPING wrapping); - HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( - IDWriteTextLayout2 *This, - DWRITE_READING_DIRECTION direction); + HRESULT(STDMETHODCALLTYPE* SetReadingDirection)( + IDWriteTextLayout2* This, + DWRITE_READING_DIRECTION direction); - HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( - IDWriteTextLayout2 *This, - DWRITE_FLOW_DIRECTION direction); + HRESULT(STDMETHODCALLTYPE* SetFlowDirection)( + IDWriteTextLayout2* This, + DWRITE_FLOW_DIRECTION direction); - HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( - IDWriteTextLayout2 *This, - FLOAT tabstop); + HRESULT(STDMETHODCALLTYPE* SetIncrementalTabStop)( + IDWriteTextLayout2* This, + FLOAT tabstop); - HRESULT (STDMETHODCALLTYPE *SetTrimming)( - IDWriteTextLayout2 *This, - const DWRITE_TRIMMING *trimming, - IDWriteInlineObject *trimming_sign); - - HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( - IDWriteTextLayout2 *This, - DWRITE_LINE_SPACING_METHOD spacing, - FLOAT line_spacing, - FLOAT baseline); + HRESULT(STDMETHODCALLTYPE* SetTrimming)( + IDWriteTextLayout2* This, + const DWRITE_TRIMMING* trimming, + IDWriteInlineObject* trimming_sign); + + HRESULT(STDMETHODCALLTYPE* SetLineSpacing)( + IDWriteTextLayout2* This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); - DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( - IDWriteTextLayout2 *This); - - DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( - IDWriteTextLayout2 *This); - - DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( - IDWriteTextLayout2 *This); - - DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( - IDWriteTextLayout2 *This); - - DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( - IDWriteTextLayout2 *This); - - FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( - IDWriteTextLayout2 *This); - - HRESULT (STDMETHODCALLTYPE *GetTrimming)( - IDWriteTextLayout2 *This, - DWRITE_TRIMMING *options, - IDWriteInlineObject **trimming_sign); - - HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( - IDWriteTextLayout2 *This, - DWRITE_LINE_SPACING_METHOD *method, - FLOAT *spacing, - FLOAT *baseline); - - HRESULT (STDMETHODCALLTYPE *GetFontCollection)( - IDWriteTextLayout2 *This, - IDWriteFontCollection **collection); - - UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( - IDWriteTextLayout2 *This); - - HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( - IDWriteTextLayout2 *This, - WCHAR *name, - UINT32 size); - - DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( - IDWriteTextLayout2 *This); - - DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( - IDWriteTextLayout2 *This); - - DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( - IDWriteTextLayout2 *This); - - FLOAT (STDMETHODCALLTYPE *GetFontSize)( - IDWriteTextLayout2 *This); - - UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( - IDWriteTextLayout2 *This); - - HRESULT (STDMETHODCALLTYPE *GetLocaleName)( - IDWriteTextLayout2 *This, - WCHAR *name, - UINT32 size); - - /*** IDWriteTextLayout methods ***/ - HRESULT (STDMETHODCALLTYPE *SetMaxWidth)( - IDWriteTextLayout2 *This, - FLOAT maxWidth); - - HRESULT (STDMETHODCALLTYPE *SetMaxHeight)( - IDWriteTextLayout2 *This, - FLOAT maxHeight); - - HRESULT (STDMETHODCALLTYPE *SetFontCollection)( - IDWriteTextLayout2 *This, - IDWriteFontCollection *collection, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)( - IDWriteTextLayout2 *This, - const WCHAR *name, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetFontWeight)( - IDWriteTextLayout2 *This, - DWRITE_FONT_WEIGHT weight, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetFontStyle)( - IDWriteTextLayout2 *This, - DWRITE_FONT_STYLE style, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetFontStretch)( - IDWriteTextLayout2 *This, - DWRITE_FONT_STRETCH stretch, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetFontSize)( - IDWriteTextLayout2 *This, - FLOAT size, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetUnderline)( - IDWriteTextLayout2 *This, - WINBOOL underline, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetStrikethrough)( - IDWriteTextLayout2 *This, - WINBOOL strikethrough, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)( - IDWriteTextLayout2 *This, - IUnknown *effect, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetInlineObject)( - IDWriteTextLayout2 *This, - IDWriteInlineObject *object, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetTypography)( - IDWriteTextLayout2 *This, - IDWriteTypography *typography, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetLocaleName)( - IDWriteTextLayout2 *This, - const WCHAR *locale, - DWRITE_TEXT_RANGE range); - - FLOAT (STDMETHODCALLTYPE *GetMaxWidth)( - IDWriteTextLayout2 *This); - - FLOAT (STDMETHODCALLTYPE *GetMaxHeight)( - IDWriteTextLayout2 *This); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)( - IDWriteTextLayout2 *This, - UINT32 pos, - IDWriteFontCollection **collection, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)( - IDWriteTextLayout2 *This, - UINT32 pos, - UINT32 *len, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)( - IDWriteTextLayout2 *This, - UINT32 position, - WCHAR *name, - UINT32 name_size, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)( - IDWriteTextLayout2 *This, - UINT32 position, - DWRITE_FONT_WEIGHT *weight, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)( - IDWriteTextLayout2 *This, - UINT32 currentPosition, - DWRITE_FONT_STYLE *style, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)( - IDWriteTextLayout2 *This, - UINT32 position, - DWRITE_FONT_STRETCH *stretch, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)( - IDWriteTextLayout2 *This, - UINT32 position, - FLOAT *size, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *GetUnderline)( - IDWriteTextLayout2 *This, - UINT32 position, - WINBOOL *has_underline, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *GetStrikethrough)( - IDWriteTextLayout2 *This, - UINT32 position, - WINBOOL *has_strikethrough, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)( - IDWriteTextLayout2 *This, - UINT32 position, - IUnknown **effect, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *GetInlineObject)( - IDWriteTextLayout2 *This, - UINT32 position, - IDWriteInlineObject **object, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *GetTypography)( - IDWriteTextLayout2 *This, - UINT32 position, - IDWriteTypography **typography, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)( - IDWriteTextLayout2 *This, - UINT32 position, - UINT32 *length, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)( - IDWriteTextLayout2 *This, - UINT32 position, - WCHAR *name, - UINT32 name_size, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *Draw)( - IDWriteTextLayout2 *This, - void *context, - IDWriteTextRenderer *renderer, - FLOAT originX, - FLOAT originY); - - HRESULT (STDMETHODCALLTYPE *GetLineMetrics)( - IDWriteTextLayout2 *This, - DWRITE_LINE_METRICS *metrics, - UINT32 max_count, - UINT32 *actual_count); - - HRESULT (STDMETHODCALLTYPE *GetMetrics)( - IDWriteTextLayout2 *This, - DWRITE_TEXT_METRICS *metrics); - - HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)( - IDWriteTextLayout2 *This, - DWRITE_OVERHANG_METRICS *overhangs); - - HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)( - IDWriteTextLayout2 *This, - DWRITE_CLUSTER_METRICS *metrics, - UINT32 max_count, - UINT32 *act_count); - - HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)( - IDWriteTextLayout2 *This, - FLOAT *min_width); - - HRESULT (STDMETHODCALLTYPE *HitTestPoint)( - IDWriteTextLayout2 *This, - FLOAT pointX, - FLOAT pointY, - WINBOOL *is_trailinghit, - WINBOOL *is_inside, - DWRITE_HIT_TEST_METRICS *metrics); - - HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)( - IDWriteTextLayout2 *This, - UINT32 textPosition, - WINBOOL is_trailinghit, - FLOAT *pointX, - FLOAT *pointY, - DWRITE_HIT_TEST_METRICS *metrics); - - HRESULT (STDMETHODCALLTYPE *HitTestTextRange)( - IDWriteTextLayout2 *This, - UINT32 textPosition, - UINT32 textLength, - FLOAT originX, - FLOAT originY, - DWRITE_HIT_TEST_METRICS *metrics, - UINT32 max_metricscount, - UINT32 *actual_metricscount); - - /*** IDWriteTextLayout1 methods ***/ - HRESULT (STDMETHODCALLTYPE *SetPairKerning)( - IDWriteTextLayout2 *This, - WINBOOL is_pairkerning_enabled, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *GetPairKerning)( - IDWriteTextLayout2 *This, - UINT32 position, - WINBOOL *is_pairkerning_enabled, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *SetCharacterSpacing)( - IDWriteTextLayout2 *This, - FLOAT leading_spacing, - FLOAT trailing_spacing, - FLOAT minimum_advance_width, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *GetCharacterSpacing)( - IDWriteTextLayout2 *This, - UINT32 position, - FLOAT *leading_spacing, - FLOAT *trailing_spacing, - FLOAT *minimum_advance_width, - DWRITE_TEXT_RANGE *range); - - /*** IDWriteTextLayout2 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout2_GetMetrics)( - IDWriteTextLayout2 *This, - DWRITE_TEXT_METRICS1 *metrics); - - HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)( - IDWriteTextLayout2 *This, - DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); - - DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)( - IDWriteTextLayout2 *This); - - HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)( - IDWriteTextLayout2 *This, - WINBOOL lastline_wrapping_enabled); - - WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)( - IDWriteTextLayout2 *This); - - HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)( - IDWriteTextLayout2 *This, - DWRITE_OPTICAL_ALIGNMENT alignment); - - DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)( - IDWriteTextLayout2 *This); - - HRESULT (STDMETHODCALLTYPE *SetFontFallback)( - IDWriteTextLayout2 *This, - IDWriteFontFallback *fallback); - - HRESULT (STDMETHODCALLTYPE *GetFontFallback)( - IDWriteTextLayout2 *This, - IDWriteFontFallback **fallback); - - END_INTERFACE + DWRITE_TEXT_ALIGNMENT(STDMETHODCALLTYPE* GetTextAlignment)( + IDWriteTextLayout2* This); + + DWRITE_PARAGRAPH_ALIGNMENT(STDMETHODCALLTYPE* GetParagraphAlignment)( + IDWriteTextLayout2* This); + + DWRITE_WORD_WRAPPING(STDMETHODCALLTYPE* GetWordWrapping)( + IDWriteTextLayout2* This); + + DWRITE_READING_DIRECTION(STDMETHODCALLTYPE* GetReadingDirection)( + IDWriteTextLayout2* This); + + DWRITE_FLOW_DIRECTION(STDMETHODCALLTYPE* GetFlowDirection)( + IDWriteTextLayout2* This); + + FLOAT(STDMETHODCALLTYPE* GetIncrementalTabStop)( + IDWriteTextLayout2* This); + + HRESULT(STDMETHODCALLTYPE* GetTrimming)( + IDWriteTextLayout2* This, + DWRITE_TRIMMING* options, + IDWriteInlineObject** trimming_sign); + + HRESULT(STDMETHODCALLTYPE* GetLineSpacing)( + IDWriteTextLayout2* This, + DWRITE_LINE_SPACING_METHOD* method, + FLOAT* spacing, + FLOAT* baseline); + + HRESULT(STDMETHODCALLTYPE* GetFontCollection)( + IDWriteTextLayout2* This, + IDWriteFontCollection** collection); + + UINT32(STDMETHODCALLTYPE* GetFontFamilyNameLength)( + IDWriteTextLayout2* This); + + HRESULT(STDMETHODCALLTYPE* GetFontFamilyName)( + IDWriteTextLayout2* This, + WCHAR* name, + UINT32 size); + + DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetFontWeight)( + IDWriteTextLayout2* This); + + DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetFontStyle)( + IDWriteTextLayout2* This); + + DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetFontStretch)( + IDWriteTextLayout2* This); + + FLOAT(STDMETHODCALLTYPE* GetFontSize)( + IDWriteTextLayout2* This); + + UINT32(STDMETHODCALLTYPE* GetLocaleNameLength)( + IDWriteTextLayout2* This); + + HRESULT(STDMETHODCALLTYPE* GetLocaleName)( + IDWriteTextLayout2* This, + WCHAR* name, + UINT32 size); + + /*** IDWriteTextLayout methods ***/ + HRESULT(STDMETHODCALLTYPE* SetMaxWidth)( + IDWriteTextLayout2* This, + FLOAT maxWidth); + + HRESULT(STDMETHODCALLTYPE* SetMaxHeight)( + IDWriteTextLayout2* This, + FLOAT maxHeight); + + HRESULT(STDMETHODCALLTYPE* SetFontCollection)( + IDWriteTextLayout2* This, + IDWriteFontCollection* collection, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetFontFamilyName)( + IDWriteTextLayout2* This, + const WCHAR* name, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetFontWeight)( + IDWriteTextLayout2* This, + DWRITE_FONT_WEIGHT weight, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetFontStyle)( + IDWriteTextLayout2* This, + DWRITE_FONT_STYLE style, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetFontStretch)( + IDWriteTextLayout2* This, + DWRITE_FONT_STRETCH stretch, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetFontSize)( + IDWriteTextLayout2* This, + FLOAT size, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetUnderline)( + IDWriteTextLayout2* This, + WINBOOL underline, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetStrikethrough)( + IDWriteTextLayout2* This, + WINBOOL strikethrough, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetDrawingEffect)( + IDWriteTextLayout2* This, + IUnknown* effect, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetInlineObject)( + IDWriteTextLayout2* This, + IDWriteInlineObject* object, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetTypography)( + IDWriteTextLayout2* This, + IDWriteTypography* typography, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetLocaleName)( + IDWriteTextLayout2* This, + const WCHAR* locale, + DWRITE_TEXT_RANGE range); + + FLOAT(STDMETHODCALLTYPE* GetMaxWidth)( + IDWriteTextLayout2* This); + + FLOAT(STDMETHODCALLTYPE* GetMaxHeight)( + IDWriteTextLayout2* This); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontCollection)( + IDWriteTextLayout2* This, + UINT32 pos, + IDWriteFontCollection** collection, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontFamilyNameLength)( + IDWriteTextLayout2* This, + UINT32 pos, + UINT32* len, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontFamilyName)( + IDWriteTextLayout2* This, + UINT32 position, + WCHAR* name, + UINT32 name_size, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontWeight)( + IDWriteTextLayout2* This, + UINT32 position, + DWRITE_FONT_WEIGHT* weight, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontStyle)( + IDWriteTextLayout2* This, + UINT32 currentPosition, + DWRITE_FONT_STYLE* style, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontStretch)( + IDWriteTextLayout2* This, + UINT32 position, + DWRITE_FONT_STRETCH* stretch, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontSize)( + IDWriteTextLayout2* This, + UINT32 position, + FLOAT* size, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* GetUnderline)( + IDWriteTextLayout2* This, + UINT32 position, + WINBOOL* has_underline, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* GetStrikethrough)( + IDWriteTextLayout2* This, + UINT32 position, + WINBOOL* has_strikethrough, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* GetDrawingEffect)( + IDWriteTextLayout2* This, + UINT32 position, + IUnknown** effect, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* GetInlineObject)( + IDWriteTextLayout2* This, + UINT32 position, + IDWriteInlineObject** object, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* GetTypography)( + IDWriteTextLayout2* This, + UINT32 position, + IDWriteTypography** typography, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetLocaleNameLength)( + IDWriteTextLayout2* This, + UINT32 position, + UINT32* length, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetLocaleName)( + IDWriteTextLayout2* This, + UINT32 position, + WCHAR* name, + UINT32 name_size, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* Draw)( + IDWriteTextLayout2* This, + void* context, + IDWriteTextRenderer* renderer, + FLOAT originX, + FLOAT originY); + + HRESULT(STDMETHODCALLTYPE* GetLineMetrics)( + IDWriteTextLayout2* This, + DWRITE_LINE_METRICS* metrics, + UINT32 max_count, + UINT32* actual_count); + + HRESULT(STDMETHODCALLTYPE* GetMetrics)( + IDWriteTextLayout2* This, + DWRITE_TEXT_METRICS* metrics); + + HRESULT(STDMETHODCALLTYPE* GetOverhangMetrics)( + IDWriteTextLayout2* This, + DWRITE_OVERHANG_METRICS* overhangs); + + HRESULT(STDMETHODCALLTYPE* GetClusterMetrics)( + IDWriteTextLayout2* This, + DWRITE_CLUSTER_METRICS* metrics, + UINT32 max_count, + UINT32* act_count); + + HRESULT(STDMETHODCALLTYPE* DetermineMinWidth)( + IDWriteTextLayout2* This, + FLOAT* min_width); + + HRESULT(STDMETHODCALLTYPE* HitTestPoint)( + IDWriteTextLayout2* This, + FLOAT pointX, + FLOAT pointY, + WINBOOL* is_trailinghit, + WINBOOL* is_inside, + DWRITE_HIT_TEST_METRICS* metrics); + + HRESULT(STDMETHODCALLTYPE* HitTestTextPosition)( + IDWriteTextLayout2* This, + UINT32 textPosition, + WINBOOL is_trailinghit, + FLOAT* pointX, + FLOAT* pointY, + DWRITE_HIT_TEST_METRICS* metrics); + + HRESULT(STDMETHODCALLTYPE* HitTestTextRange)( + IDWriteTextLayout2* This, + UINT32 textPosition, + UINT32 textLength, + FLOAT originX, + FLOAT originY, + DWRITE_HIT_TEST_METRICS* metrics, + UINT32 max_metricscount, + UINT32* actual_metricscount); + + /*** IDWriteTextLayout1 methods ***/ + HRESULT(STDMETHODCALLTYPE* SetPairKerning)( + IDWriteTextLayout2* This, + WINBOOL is_pairkerning_enabled, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* GetPairKerning)( + IDWriteTextLayout2* This, + UINT32 position, + WINBOOL* is_pairkerning_enabled, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* SetCharacterSpacing)( + IDWriteTextLayout2* This, + FLOAT leading_spacing, + FLOAT trailing_spacing, + FLOAT minimum_advance_width, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* GetCharacterSpacing)( + IDWriteTextLayout2* This, + UINT32 position, + FLOAT* leading_spacing, + FLOAT* trailing_spacing, + FLOAT* minimum_advance_width, + DWRITE_TEXT_RANGE* range); + + /*** IDWriteTextLayout2 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout2_GetMetrics)( + IDWriteTextLayout2* This, + DWRITE_TEXT_METRICS1* metrics); + + HRESULT(STDMETHODCALLTYPE* SetVerticalGlyphOrientation)( + IDWriteTextLayout2* This, + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); + + DWRITE_VERTICAL_GLYPH_ORIENTATION(STDMETHODCALLTYPE* GetVerticalGlyphOrientation)( + IDWriteTextLayout2* This); + + HRESULT(STDMETHODCALLTYPE* SetLastLineWrapping)( + IDWriteTextLayout2* This, + WINBOOL lastline_wrapping_enabled); + + WINBOOL(STDMETHODCALLTYPE* GetLastLineWrapping)( + IDWriteTextLayout2* This); + + HRESULT(STDMETHODCALLTYPE* SetOpticalAlignment)( + IDWriteTextLayout2* This, + DWRITE_OPTICAL_ALIGNMENT alignment); + + DWRITE_OPTICAL_ALIGNMENT(STDMETHODCALLTYPE* GetOpticalAlignment)( + IDWriteTextLayout2* This); + + HRESULT(STDMETHODCALLTYPE* SetFontFallback)( + IDWriteTextLayout2* This, + IDWriteFontFallback* fallback); + + HRESULT(STDMETHODCALLTYPE* GetFontFallback)( + IDWriteTextLayout2* This, + IDWriteFontFallback** fallback); + + END_INTERFACE } IDWriteTextLayout2Vtbl; interface IDWriteTextLayout2 { - CONST_VTBL IDWriteTextLayout2Vtbl* lpVtbl; + CONST_VTBL IDWriteTextLayout2Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteTextLayout2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextLayout2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteTextLayout2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteTextLayout2_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteTextFormat methods ***/ -#define IDWriteTextLayout2_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) -#define IDWriteTextLayout2_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) -#define IDWriteTextLayout2_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) -#define IDWriteTextLayout2_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) -#define IDWriteTextLayout2_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) -#define IDWriteTextLayout2_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) -#define IDWriteTextLayout2_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) -#define IDWriteTextLayout2_SetLineSpacing(This,spacing,line_spacing,baseline) (This)->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline) +#define IDWriteTextLayout2_SetTextAlignment(This, alignment) (This)->lpVtbl->SetTextAlignment(This, alignment) +#define IDWriteTextLayout2_SetParagraphAlignment(This, alignment) (This)->lpVtbl->SetParagraphAlignment(This, alignment) +#define IDWriteTextLayout2_SetWordWrapping(This, wrapping) (This)->lpVtbl->SetWordWrapping(This, wrapping) +#define IDWriteTextLayout2_SetReadingDirection(This, direction) (This)->lpVtbl->SetReadingDirection(This, direction) +#define IDWriteTextLayout2_SetFlowDirection(This, direction) (This)->lpVtbl->SetFlowDirection(This, direction) +#define IDWriteTextLayout2_SetIncrementalTabStop(This, tabstop) (This)->lpVtbl->SetIncrementalTabStop(This, tabstop) +#define IDWriteTextLayout2_SetTrimming(This, trimming, trimming_sign) (This)->lpVtbl->SetTrimming(This, trimming, trimming_sign) +#define IDWriteTextLayout2_SetLineSpacing(This, spacing, line_spacing, baseline) (This)->lpVtbl->SetLineSpacing(This, spacing, line_spacing, baseline) #define IDWriteTextLayout2_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) #define IDWriteTextLayout2_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) #define IDWriteTextLayout2_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) #define IDWriteTextLayout2_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) #define IDWriteTextLayout2_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) #define IDWriteTextLayout2_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) -#define IDWriteTextLayout2_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) -#define IDWriteTextLayout2_GetLineSpacing(This,method,spacing,baseline) (This)->lpVtbl->GetLineSpacing(This,method,spacing,baseline) +#define IDWriteTextLayout2_GetTrimming(This, options, trimming_sign) (This)->lpVtbl->GetTrimming(This, options, trimming_sign) +#define IDWriteTextLayout2_GetLineSpacing(This, method, spacing, baseline) (This)->lpVtbl->GetLineSpacing(This, method, spacing, baseline) /*** IDWriteTextLayout methods ***/ -#define IDWriteTextLayout2_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth) -#define IDWriteTextLayout2_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight) -#define IDWriteTextLayout2_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range) -#define IDWriteTextLayout2_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range) -#define IDWriteTextLayout2_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range) -#define IDWriteTextLayout2_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range) -#define IDWriteTextLayout2_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range) -#define IDWriteTextLayout2_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range) -#define IDWriteTextLayout2_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range) -#define IDWriteTextLayout2_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range) -#define IDWriteTextLayout2_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range) -#define IDWriteTextLayout2_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range) -#define IDWriteTextLayout2_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range) -#define IDWriteTextLayout2_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range) +#define IDWriteTextLayout2_SetMaxWidth(This, maxWidth) (This)->lpVtbl->SetMaxWidth(This, maxWidth) +#define IDWriteTextLayout2_SetMaxHeight(This, maxHeight) (This)->lpVtbl->SetMaxHeight(This, maxHeight) +#define IDWriteTextLayout2_SetFontCollection(This, collection, range) (This)->lpVtbl->SetFontCollection(This, collection, range) +#define IDWriteTextLayout2_SetFontFamilyName(This, name, range) (This)->lpVtbl->SetFontFamilyName(This, name, range) +#define IDWriteTextLayout2_SetFontWeight(This, weight, range) (This)->lpVtbl->SetFontWeight(This, weight, range) +#define IDWriteTextLayout2_SetFontStyle(This, style, range) (This)->lpVtbl->SetFontStyle(This, style, range) +#define IDWriteTextLayout2_SetFontStretch(This, stretch, range) (This)->lpVtbl->SetFontStretch(This, stretch, range) +#define IDWriteTextLayout2_SetFontSize(This, size, range) (This)->lpVtbl->SetFontSize(This, size, range) +#define IDWriteTextLayout2_SetUnderline(This, underline, range) (This)->lpVtbl->SetUnderline(This, underline, range) +#define IDWriteTextLayout2_SetStrikethrough(This, strikethrough, range) (This)->lpVtbl->SetStrikethrough(This, strikethrough, range) +#define IDWriteTextLayout2_SetDrawingEffect(This, effect, range) (This)->lpVtbl->SetDrawingEffect(This, effect, range) +#define IDWriteTextLayout2_SetInlineObject(This, object, range) (This)->lpVtbl->SetInlineObject(This, object, range) +#define IDWriteTextLayout2_SetTypography(This, typography, range) (This)->lpVtbl->SetTypography(This, typography, range) +#define IDWriteTextLayout2_SetLocaleName(This, locale, range) (This)->lpVtbl->SetLocaleName(This, locale, range) #define IDWriteTextLayout2_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This) #define IDWriteTextLayout2_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This) -#define IDWriteTextLayout2_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range) -#define IDWriteTextLayout2_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range) -#define IDWriteTextLayout2_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range) -#define IDWriteTextLayout2_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range) -#define IDWriteTextLayout2_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range) -#define IDWriteTextLayout2_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range) -#define IDWriteTextLayout2_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range) -#define IDWriteTextLayout2_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range) -#define IDWriteTextLayout2_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range) -#define IDWriteTextLayout2_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range) -#define IDWriteTextLayout2_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range) -#define IDWriteTextLayout2_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range) -#define IDWriteTextLayout2_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range) -#define IDWriteTextLayout2_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range) -#define IDWriteTextLayout2_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY) -#define IDWriteTextLayout2_GetLineMetrics(This,metrics,max_count,actual_count) (This)->lpVtbl->GetLineMetrics(This,metrics,max_count,actual_count) -#define IDWriteTextLayout2_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs) -#define IDWriteTextLayout2_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count) -#define IDWriteTextLayout2_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width) -#define IDWriteTextLayout2_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) -#define IDWriteTextLayout2_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) -#define IDWriteTextLayout2_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) +#define IDWriteTextLayout2_GetFontCollection(This, pos, collection, range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This, pos, collection, range) +#define IDWriteTextLayout2_GetFontFamilyNameLength(This, pos, len, range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This, pos, len, range) +#define IDWriteTextLayout2_GetFontFamilyName(This, position, name, name_size, range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This, position, name, name_size, range) +#define IDWriteTextLayout2_GetFontWeight(This, position, weight, range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This, position, weight, range) +#define IDWriteTextLayout2_GetFontStyle(This, currentPosition, style, range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This, currentPosition, style, range) +#define IDWriteTextLayout2_GetFontStretch(This, position, stretch, range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This, position, stretch, range) +#define IDWriteTextLayout2_GetFontSize(This, position, size, range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This, position, size, range) +#define IDWriteTextLayout2_GetUnderline(This, position, has_underline, range) (This)->lpVtbl->GetUnderline(This, position, has_underline, range) +#define IDWriteTextLayout2_GetStrikethrough(This, position, has_strikethrough, range) (This)->lpVtbl->GetStrikethrough(This, position, has_strikethrough, range) +#define IDWriteTextLayout2_GetDrawingEffect(This, position, effect, range) (This)->lpVtbl->GetDrawingEffect(This, position, effect, range) +#define IDWriteTextLayout2_GetInlineObject(This, position, object, range) (This)->lpVtbl->GetInlineObject(This, position, object, range) +#define IDWriteTextLayout2_GetTypography(This, position, typography, range) (This)->lpVtbl->GetTypography(This, position, typography, range) +#define IDWriteTextLayout2_GetLocaleNameLength(This, position, length, range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This, position, length, range) +#define IDWriteTextLayout2_GetLocaleName(This, position, name, name_size, range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This, position, name, name_size, range) +#define IDWriteTextLayout2_Draw(This, context, renderer, originX, originY) (This)->lpVtbl->Draw(This, context, renderer, originX, originY) +#define IDWriteTextLayout2_GetLineMetrics(This, metrics, max_count, actual_count) (This)->lpVtbl->GetLineMetrics(This, metrics, max_count, actual_count) +#define IDWriteTextLayout2_GetOverhangMetrics(This, overhangs) (This)->lpVtbl->GetOverhangMetrics(This, overhangs) +#define IDWriteTextLayout2_GetClusterMetrics(This, metrics, max_count, act_count) (This)->lpVtbl->GetClusterMetrics(This, metrics, max_count, act_count) +#define IDWriteTextLayout2_DetermineMinWidth(This, min_width) (This)->lpVtbl->DetermineMinWidth(This, min_width) +#define IDWriteTextLayout2_HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics) (This)->lpVtbl->HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics) +#define IDWriteTextLayout2_HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics) (This)->lpVtbl->HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics) +#define IDWriteTextLayout2_HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount) (This)->lpVtbl->HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount) /*** IDWriteTextLayout1 methods ***/ -#define IDWriteTextLayout2_SetPairKerning(This,is_pairkerning_enabled,range) (This)->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range) -#define IDWriteTextLayout2_GetPairKerning(This,position,is_pairkerning_enabled,range) (This)->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range) -#define IDWriteTextLayout2_SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) -#define IDWriteTextLayout2_GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) +#define IDWriteTextLayout2_SetPairKerning(This, is_pairkerning_enabled, range) (This)->lpVtbl->SetPairKerning(This, is_pairkerning_enabled, range) +#define IDWriteTextLayout2_GetPairKerning(This, position, is_pairkerning_enabled, range) (This)->lpVtbl->GetPairKerning(This, position, is_pairkerning_enabled, range) +#define IDWriteTextLayout2_SetCharacterSpacing(This, leading_spacing, trailing_spacing, minimum_advance_width, range) (This)->lpVtbl->SetCharacterSpacing(This, leading_spacing, trailing_spacing, minimum_advance_width, range) +#define IDWriteTextLayout2_GetCharacterSpacing(This, position, leading_spacing, trailing_spacing, minimum_advance_width, range) (This)->lpVtbl->GetCharacterSpacing(This, position, leading_spacing, trailing_spacing, minimum_advance_width, range) /*** IDWriteTextLayout2 methods ***/ -#define IDWriteTextLayout2_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics) -#define IDWriteTextLayout2_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation) +#define IDWriteTextLayout2_GetMetrics(This, metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This, metrics) +#define IDWriteTextLayout2_SetVerticalGlyphOrientation(This, orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This, orientation) #define IDWriteTextLayout2_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) -#define IDWriteTextLayout2_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled) +#define IDWriteTextLayout2_SetLastLineWrapping(This, lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled) #define IDWriteTextLayout2_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) -#define IDWriteTextLayout2_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment) +#define IDWriteTextLayout2_SetOpticalAlignment(This, alignment) (This)->lpVtbl->SetOpticalAlignment(This, alignment) #define IDWriteTextLayout2_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) -#define IDWriteTextLayout2_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback) -#define IDWriteTextLayout2_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback) +#define IDWriteTextLayout2_SetFontFallback(This, fallback) (This)->lpVtbl->SetFontFallback(This, fallback) +#define IDWriteTextLayout2_GetFontFallback(This, fallback) (This)->lpVtbl->GetFontFallback(This, fallback) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteTextLayout2_QueryInterface(IDWriteTextLayout2* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteTextLayout2_QueryInterface(IDWriteTextLayout2* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteTextLayout2_AddRef(IDWriteTextLayout2* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteTextLayout2_Release(IDWriteTextLayout2* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteTextFormat methods ***/ -static inline HRESULT IDWriteTextLayout2_SetTextAlignment(IDWriteTextLayout2* This,DWRITE_TEXT_ALIGNMENT alignment) { - return This->lpVtbl->SetTextAlignment(This,alignment); +static inline HRESULT IDWriteTextLayout2_SetTextAlignment(IDWriteTextLayout2* This, DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This, alignment); } -static inline HRESULT IDWriteTextLayout2_SetParagraphAlignment(IDWriteTextLayout2* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { - return This->lpVtbl->SetParagraphAlignment(This,alignment); +static inline HRESULT IDWriteTextLayout2_SetParagraphAlignment(IDWriteTextLayout2* This, DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This, alignment); } -static inline HRESULT IDWriteTextLayout2_SetWordWrapping(IDWriteTextLayout2* This,DWRITE_WORD_WRAPPING wrapping) { - return This->lpVtbl->SetWordWrapping(This,wrapping); +static inline HRESULT IDWriteTextLayout2_SetWordWrapping(IDWriteTextLayout2* This, DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This, wrapping); } -static inline HRESULT IDWriteTextLayout2_SetReadingDirection(IDWriteTextLayout2* This,DWRITE_READING_DIRECTION direction) { - return This->lpVtbl->SetReadingDirection(This,direction); +static inline HRESULT IDWriteTextLayout2_SetReadingDirection(IDWriteTextLayout2* This, DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This, direction); } -static inline HRESULT IDWriteTextLayout2_SetFlowDirection(IDWriteTextLayout2* This,DWRITE_FLOW_DIRECTION direction) { - return This->lpVtbl->SetFlowDirection(This,direction); +static inline HRESULT IDWriteTextLayout2_SetFlowDirection(IDWriteTextLayout2* This, DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This, direction); } -static inline HRESULT IDWriteTextLayout2_SetIncrementalTabStop(IDWriteTextLayout2* This,FLOAT tabstop) { - return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +static inline HRESULT IDWriteTextLayout2_SetIncrementalTabStop(IDWriteTextLayout2* This, FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This, tabstop); } -static inline HRESULT IDWriteTextLayout2_SetTrimming(IDWriteTextLayout2* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { - return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +static inline HRESULT IDWriteTextLayout2_SetTrimming(IDWriteTextLayout2* This, const DWRITE_TRIMMING* trimming, IDWriteInlineObject* trimming_sign) { + return This->lpVtbl->SetTrimming(This, trimming, trimming_sign); } -static inline HRESULT IDWriteTextLayout2_SetLineSpacing(IDWriteTextLayout2* This,DWRITE_LINE_SPACING_METHOD spacing,FLOAT line_spacing,FLOAT baseline) { - return This->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline); +static inline HRESULT IDWriteTextLayout2_SetLineSpacing(IDWriteTextLayout2* This, DWRITE_LINE_SPACING_METHOD spacing, FLOAT line_spacing, FLOAT baseline) { + return This->lpVtbl->SetLineSpacing(This, spacing, line_spacing, baseline); } static inline DWRITE_TEXT_ALIGNMENT IDWriteTextLayout2_GetTextAlignment(IDWriteTextLayout2* This) { - return This->lpVtbl->GetTextAlignment(This); + return This->lpVtbl->GetTextAlignment(This); } static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout2_GetParagraphAlignment(IDWriteTextLayout2* This) { - return This->lpVtbl->GetParagraphAlignment(This); + return This->lpVtbl->GetParagraphAlignment(This); } static inline DWRITE_WORD_WRAPPING IDWriteTextLayout2_GetWordWrapping(IDWriteTextLayout2* This) { - return This->lpVtbl->GetWordWrapping(This); + return This->lpVtbl->GetWordWrapping(This); } static inline DWRITE_READING_DIRECTION IDWriteTextLayout2_GetReadingDirection(IDWriteTextLayout2* This) { - return This->lpVtbl->GetReadingDirection(This); + return This->lpVtbl->GetReadingDirection(This); } static inline DWRITE_FLOW_DIRECTION IDWriteTextLayout2_GetFlowDirection(IDWriteTextLayout2* This) { - return This->lpVtbl->GetFlowDirection(This); + return This->lpVtbl->GetFlowDirection(This); } static inline FLOAT IDWriteTextLayout2_GetIncrementalTabStop(IDWriteTextLayout2* This) { - return This->lpVtbl->GetIncrementalTabStop(This); + return This->lpVtbl->GetIncrementalTabStop(This); } -static inline HRESULT IDWriteTextLayout2_GetTrimming(IDWriteTextLayout2* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { - return This->lpVtbl->GetTrimming(This,options,trimming_sign); +static inline HRESULT IDWriteTextLayout2_GetTrimming(IDWriteTextLayout2* This, DWRITE_TRIMMING* options, IDWriteInlineObject** trimming_sign) { + return This->lpVtbl->GetTrimming(This, options, trimming_sign); } -static inline HRESULT IDWriteTextLayout2_GetLineSpacing(IDWriteTextLayout2* This,DWRITE_LINE_SPACING_METHOD *method,FLOAT *spacing,FLOAT *baseline) { - return This->lpVtbl->GetLineSpacing(This,method,spacing,baseline); +static inline HRESULT IDWriteTextLayout2_GetLineSpacing(IDWriteTextLayout2* This, DWRITE_LINE_SPACING_METHOD* method, FLOAT* spacing, FLOAT* baseline) { + return This->lpVtbl->GetLineSpacing(This, method, spacing, baseline); } /*** IDWriteTextLayout methods ***/ -static inline HRESULT IDWriteTextLayout2_SetMaxWidth(IDWriteTextLayout2* This,FLOAT maxWidth) { - return This->lpVtbl->SetMaxWidth(This,maxWidth); +static inline HRESULT IDWriteTextLayout2_SetMaxWidth(IDWriteTextLayout2* This, FLOAT maxWidth) { + return This->lpVtbl->SetMaxWidth(This, maxWidth); } -static inline HRESULT IDWriteTextLayout2_SetMaxHeight(IDWriteTextLayout2* This,FLOAT maxHeight) { - return This->lpVtbl->SetMaxHeight(This,maxHeight); +static inline HRESULT IDWriteTextLayout2_SetMaxHeight(IDWriteTextLayout2* This, FLOAT maxHeight) { + return This->lpVtbl->SetMaxHeight(This, maxHeight); } -static inline HRESULT IDWriteTextLayout2_SetFontCollection(IDWriteTextLayout2* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontCollection(This,collection,range); +static inline HRESULT IDWriteTextLayout2_SetFontCollection(IDWriteTextLayout2* This, IDWriteFontCollection* collection, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontCollection(This, collection, range); } -static inline HRESULT IDWriteTextLayout2_SetFontFamilyName(IDWriteTextLayout2* This,const WCHAR *name,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontFamilyName(This,name,range); +static inline HRESULT IDWriteTextLayout2_SetFontFamilyName(IDWriteTextLayout2* This, const WCHAR* name, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontFamilyName(This, name, range); } -static inline HRESULT IDWriteTextLayout2_SetFontWeight(IDWriteTextLayout2* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontWeight(This,weight,range); +static inline HRESULT IDWriteTextLayout2_SetFontWeight(IDWriteTextLayout2* This, DWRITE_FONT_WEIGHT weight, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontWeight(This, weight, range); } -static inline HRESULT IDWriteTextLayout2_SetFontStyle(IDWriteTextLayout2* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontStyle(This,style,range); +static inline HRESULT IDWriteTextLayout2_SetFontStyle(IDWriteTextLayout2* This, DWRITE_FONT_STYLE style, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStyle(This, style, range); } -static inline HRESULT IDWriteTextLayout2_SetFontStretch(IDWriteTextLayout2* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontStretch(This,stretch,range); +static inline HRESULT IDWriteTextLayout2_SetFontStretch(IDWriteTextLayout2* This, DWRITE_FONT_STRETCH stretch, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStretch(This, stretch, range); } -static inline HRESULT IDWriteTextLayout2_SetFontSize(IDWriteTextLayout2* This,FLOAT size,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontSize(This,size,range); +static inline HRESULT IDWriteTextLayout2_SetFontSize(IDWriteTextLayout2* This, FLOAT size, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontSize(This, size, range); } -static inline HRESULT IDWriteTextLayout2_SetUnderline(IDWriteTextLayout2* This,WINBOOL underline,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetUnderline(This,underline,range); +static inline HRESULT IDWriteTextLayout2_SetUnderline(IDWriteTextLayout2* This, WINBOOL underline, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetUnderline(This, underline, range); } -static inline HRESULT IDWriteTextLayout2_SetStrikethrough(IDWriteTextLayout2* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetStrikethrough(This,strikethrough,range); +static inline HRESULT IDWriteTextLayout2_SetStrikethrough(IDWriteTextLayout2* This, WINBOOL strikethrough, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetStrikethrough(This, strikethrough, range); } -static inline HRESULT IDWriteTextLayout2_SetDrawingEffect(IDWriteTextLayout2* This,IUnknown *effect,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetDrawingEffect(This,effect,range); +static inline HRESULT IDWriteTextLayout2_SetDrawingEffect(IDWriteTextLayout2* This, IUnknown* effect, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetDrawingEffect(This, effect, range); } -static inline HRESULT IDWriteTextLayout2_SetInlineObject(IDWriteTextLayout2* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetInlineObject(This,object,range); +static inline HRESULT IDWriteTextLayout2_SetInlineObject(IDWriteTextLayout2* This, IDWriteInlineObject* object, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetInlineObject(This, object, range); } -static inline HRESULT IDWriteTextLayout2_SetTypography(IDWriteTextLayout2* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetTypography(This,typography,range); +static inline HRESULT IDWriteTextLayout2_SetTypography(IDWriteTextLayout2* This, IDWriteTypography* typography, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetTypography(This, typography, range); } -static inline HRESULT IDWriteTextLayout2_SetLocaleName(IDWriteTextLayout2* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetLocaleName(This,locale,range); +static inline HRESULT IDWriteTextLayout2_SetLocaleName(IDWriteTextLayout2* This, const WCHAR* locale, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetLocaleName(This, locale, range); } static inline FLOAT IDWriteTextLayout2_GetMaxWidth(IDWriteTextLayout2* This) { - return This->lpVtbl->GetMaxWidth(This); + return This->lpVtbl->GetMaxWidth(This); } static inline FLOAT IDWriteTextLayout2_GetMaxHeight(IDWriteTextLayout2* This) { - return This->lpVtbl->GetMaxHeight(This); + return This->lpVtbl->GetMaxHeight(This); } -static inline HRESULT IDWriteTextLayout2_GetFontCollection(IDWriteTextLayout2* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range); +static inline HRESULT IDWriteTextLayout2_GetFontCollection(IDWriteTextLayout2* This, UINT32 pos, IDWriteFontCollection** collection, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This, pos, collection, range); } -static inline HRESULT IDWriteTextLayout2_GetFontFamilyNameLength(IDWriteTextLayout2* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range); +static inline HRESULT IDWriteTextLayout2_GetFontFamilyNameLength(IDWriteTextLayout2* This, UINT32 pos, UINT32* len, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This, pos, len, range); } -static inline HRESULT IDWriteTextLayout2_GetFontFamilyName(IDWriteTextLayout2* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range); +static inline HRESULT IDWriteTextLayout2_GetFontFamilyName(IDWriteTextLayout2* This, UINT32 position, WCHAR* name, UINT32 name_size, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This, position, name, name_size, range); } -static inline HRESULT IDWriteTextLayout2_GetFontWeight(IDWriteTextLayout2* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range); +static inline HRESULT IDWriteTextLayout2_GetFontWeight(IDWriteTextLayout2* This, UINT32 position, DWRITE_FONT_WEIGHT* weight, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This, position, weight, range); } -static inline HRESULT IDWriteTextLayout2_GetFontStyle(IDWriteTextLayout2* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range); +static inline HRESULT IDWriteTextLayout2_GetFontStyle(IDWriteTextLayout2* This, UINT32 currentPosition, DWRITE_FONT_STYLE* style, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This, currentPosition, style, range); } -static inline HRESULT IDWriteTextLayout2_GetFontStretch(IDWriteTextLayout2* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range); +static inline HRESULT IDWriteTextLayout2_GetFontStretch(IDWriteTextLayout2* This, UINT32 position, DWRITE_FONT_STRETCH* stretch, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This, position, stretch, range); } -static inline HRESULT IDWriteTextLayout2_GetFontSize(IDWriteTextLayout2* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range); +static inline HRESULT IDWriteTextLayout2_GetFontSize(IDWriteTextLayout2* This, UINT32 position, FLOAT* size, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontSize(This, position, size, range); } -static inline HRESULT IDWriteTextLayout2_GetUnderline(IDWriteTextLayout2* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetUnderline(This,position,has_underline,range); +static inline HRESULT IDWriteTextLayout2_GetUnderline(IDWriteTextLayout2* This, UINT32 position, WINBOOL* has_underline, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetUnderline(This, position, has_underline, range); } -static inline HRESULT IDWriteTextLayout2_GetStrikethrough(IDWriteTextLayout2* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range); +static inline HRESULT IDWriteTextLayout2_GetStrikethrough(IDWriteTextLayout2* This, UINT32 position, WINBOOL* has_strikethrough, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetStrikethrough(This, position, has_strikethrough, range); } -static inline HRESULT IDWriteTextLayout2_GetDrawingEffect(IDWriteTextLayout2* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetDrawingEffect(This,position,effect,range); +static inline HRESULT IDWriteTextLayout2_GetDrawingEffect(IDWriteTextLayout2* This, UINT32 position, IUnknown** effect, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetDrawingEffect(This, position, effect, range); } -static inline HRESULT IDWriteTextLayout2_GetInlineObject(IDWriteTextLayout2* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetInlineObject(This,position,object,range); +static inline HRESULT IDWriteTextLayout2_GetInlineObject(IDWriteTextLayout2* This, UINT32 position, IDWriteInlineObject** object, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetInlineObject(This, position, object, range); } -static inline HRESULT IDWriteTextLayout2_GetTypography(IDWriteTextLayout2* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetTypography(This,position,typography,range); +static inline HRESULT IDWriteTextLayout2_GetTypography(IDWriteTextLayout2* This, UINT32 position, IDWriteTypography** typography, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetTypography(This, position, typography, range); } -static inline HRESULT IDWriteTextLayout2_GetLocaleNameLength(IDWriteTextLayout2* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range); +static inline HRESULT IDWriteTextLayout2_GetLocaleNameLength(IDWriteTextLayout2* This, UINT32 position, UINT32* length, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This, position, length, range); } -static inline HRESULT IDWriteTextLayout2_GetLocaleName(IDWriteTextLayout2* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range); +static inline HRESULT IDWriteTextLayout2_GetLocaleName(IDWriteTextLayout2* This, UINT32 position, WCHAR* name, UINT32 name_size, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This, position, name, name_size, range); } -static inline HRESULT IDWriteTextLayout2_Draw(IDWriteTextLayout2* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) { - return This->lpVtbl->Draw(This,context,renderer,originX,originY); +static inline HRESULT IDWriteTextLayout2_Draw(IDWriteTextLayout2* This, void* context, IDWriteTextRenderer* renderer, FLOAT originX, FLOAT originY) { + return This->lpVtbl->Draw(This, context, renderer, originX, originY); } -static inline HRESULT IDWriteTextLayout2_GetLineMetrics(IDWriteTextLayout2* This,DWRITE_LINE_METRICS *metrics,UINT32 max_count,UINT32 *actual_count) { - return This->lpVtbl->GetLineMetrics(This,metrics,max_count,actual_count); +static inline HRESULT IDWriteTextLayout2_GetLineMetrics(IDWriteTextLayout2* This, DWRITE_LINE_METRICS* metrics, UINT32 max_count, UINT32* actual_count) { + return This->lpVtbl->GetLineMetrics(This, metrics, max_count, actual_count); } -static inline HRESULT IDWriteTextLayout2_GetOverhangMetrics(IDWriteTextLayout2* This,DWRITE_OVERHANG_METRICS *overhangs) { - return This->lpVtbl->GetOverhangMetrics(This,overhangs); +static inline HRESULT IDWriteTextLayout2_GetOverhangMetrics(IDWriteTextLayout2* This, DWRITE_OVERHANG_METRICS* overhangs) { + return This->lpVtbl->GetOverhangMetrics(This, overhangs); } -static inline HRESULT IDWriteTextLayout2_GetClusterMetrics(IDWriteTextLayout2* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) { - return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count); +static inline HRESULT IDWriteTextLayout2_GetClusterMetrics(IDWriteTextLayout2* This, DWRITE_CLUSTER_METRICS* metrics, UINT32 max_count, UINT32* act_count) { + return This->lpVtbl->GetClusterMetrics(This, metrics, max_count, act_count); } -static inline HRESULT IDWriteTextLayout2_DetermineMinWidth(IDWriteTextLayout2* This,FLOAT *min_width) { - return This->lpVtbl->DetermineMinWidth(This,min_width); +static inline HRESULT IDWriteTextLayout2_DetermineMinWidth(IDWriteTextLayout2* This, FLOAT* min_width) { + return This->lpVtbl->DetermineMinWidth(This, min_width); } -static inline HRESULT IDWriteTextLayout2_HitTestPoint(IDWriteTextLayout2* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) { - return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics); +static inline HRESULT IDWriteTextLayout2_HitTestPoint(IDWriteTextLayout2* This, FLOAT pointX, FLOAT pointY, WINBOOL* is_trailinghit, WINBOOL* is_inside, DWRITE_HIT_TEST_METRICS* metrics) { + return This->lpVtbl->HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics); } -static inline HRESULT IDWriteTextLayout2_HitTestTextPosition(IDWriteTextLayout2* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) { - return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics); +static inline HRESULT IDWriteTextLayout2_HitTestTextPosition(IDWriteTextLayout2* This, UINT32 textPosition, WINBOOL is_trailinghit, FLOAT* pointX, FLOAT* pointY, DWRITE_HIT_TEST_METRICS* metrics) { + return This->lpVtbl->HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics); } -static inline HRESULT IDWriteTextLayout2_HitTestTextRange(IDWriteTextLayout2* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) { - return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount); +static inline HRESULT IDWriteTextLayout2_HitTestTextRange(IDWriteTextLayout2* This, UINT32 textPosition, UINT32 textLength, FLOAT originX, FLOAT originY, DWRITE_HIT_TEST_METRICS* metrics, UINT32 max_metricscount, UINT32* actual_metricscount) { + return This->lpVtbl->HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount); } /*** IDWriteTextLayout1 methods ***/ -static inline HRESULT IDWriteTextLayout2_SetPairKerning(IDWriteTextLayout2* This,WINBOOL is_pairkerning_enabled,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range); +static inline HRESULT IDWriteTextLayout2_SetPairKerning(IDWriteTextLayout2* This, WINBOOL is_pairkerning_enabled, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetPairKerning(This, is_pairkerning_enabled, range); } -static inline HRESULT IDWriteTextLayout2_GetPairKerning(IDWriteTextLayout2* This,UINT32 position,WINBOOL *is_pairkerning_enabled,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range); +static inline HRESULT IDWriteTextLayout2_GetPairKerning(IDWriteTextLayout2* This, UINT32 position, WINBOOL* is_pairkerning_enabled, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetPairKerning(This, position, is_pairkerning_enabled, range); } -static inline HRESULT IDWriteTextLayout2_SetCharacterSpacing(IDWriteTextLayout2* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT minimum_advance_width,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range); +static inline HRESULT IDWriteTextLayout2_SetCharacterSpacing(IDWriteTextLayout2* This, FLOAT leading_spacing, FLOAT trailing_spacing, FLOAT minimum_advance_width, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetCharacterSpacing(This, leading_spacing, trailing_spacing, minimum_advance_width, range); } -static inline HRESULT IDWriteTextLayout2_GetCharacterSpacing(IDWriteTextLayout2* This,UINT32 position,FLOAT *leading_spacing,FLOAT *trailing_spacing,FLOAT *minimum_advance_width,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range); +static inline HRESULT IDWriteTextLayout2_GetCharacterSpacing(IDWriteTextLayout2* This, UINT32 position, FLOAT* leading_spacing, FLOAT* trailing_spacing, FLOAT* minimum_advance_width, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetCharacterSpacing(This, position, leading_spacing, trailing_spacing, minimum_advance_width, range); } /*** IDWriteTextLayout2 methods ***/ -static inline HRESULT IDWriteTextLayout2_GetMetrics(IDWriteTextLayout2* This,DWRITE_TEXT_METRICS1 *metrics) { - return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics); +static inline HRESULT IDWriteTextLayout2_GetMetrics(IDWriteTextLayout2* This, DWRITE_TEXT_METRICS1* metrics) { + return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This, metrics); } -static inline HRESULT IDWriteTextLayout2_SetVerticalGlyphOrientation(IDWriteTextLayout2* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { - return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation); +static inline HRESULT IDWriteTextLayout2_SetVerticalGlyphOrientation(IDWriteTextLayout2* This, DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { + return This->lpVtbl->SetVerticalGlyphOrientation(This, orientation); } static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextLayout2_GetVerticalGlyphOrientation(IDWriteTextLayout2* This) { - return This->lpVtbl->GetVerticalGlyphOrientation(This); + return This->lpVtbl->GetVerticalGlyphOrientation(This); } -static inline HRESULT IDWriteTextLayout2_SetLastLineWrapping(IDWriteTextLayout2* This,WINBOOL lastline_wrapping_enabled) { - return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled); +static inline HRESULT IDWriteTextLayout2_SetLastLineWrapping(IDWriteTextLayout2* This, WINBOOL lastline_wrapping_enabled) { + return This->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled); } static inline WINBOOL IDWriteTextLayout2_GetLastLineWrapping(IDWriteTextLayout2* This) { - return This->lpVtbl->GetLastLineWrapping(This); + return This->lpVtbl->GetLastLineWrapping(This); } -static inline HRESULT IDWriteTextLayout2_SetOpticalAlignment(IDWriteTextLayout2* This,DWRITE_OPTICAL_ALIGNMENT alignment) { - return This->lpVtbl->SetOpticalAlignment(This,alignment); +static inline HRESULT IDWriteTextLayout2_SetOpticalAlignment(IDWriteTextLayout2* This, DWRITE_OPTICAL_ALIGNMENT alignment) { + return This->lpVtbl->SetOpticalAlignment(This, alignment); } static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextLayout2_GetOpticalAlignment(IDWriteTextLayout2* This) { - return This->lpVtbl->GetOpticalAlignment(This); + return This->lpVtbl->GetOpticalAlignment(This); } -static inline HRESULT IDWriteTextLayout2_SetFontFallback(IDWriteTextLayout2* This,IDWriteFontFallback *fallback) { - return This->lpVtbl->SetFontFallback(This,fallback); +static inline HRESULT IDWriteTextLayout2_SetFontFallback(IDWriteTextLayout2* This, IDWriteFontFallback* fallback) { + return This->lpVtbl->SetFontFallback(This, fallback); } -static inline HRESULT IDWriteTextLayout2_GetFontFallback(IDWriteTextLayout2* This,IDWriteFontFallback **fallback) { - return This->lpVtbl->GetFontFallback(This,fallback); +static inline HRESULT IDWriteTextLayout2_GetFontFallback(IDWriteTextLayout2* This, IDWriteFontFallback** fallback) { + return This->lpVtbl->GetFontFallback(This, fallback); } #endif #endif #endif - -#endif /* __IDWriteTextLayout2_INTERFACE_DEFINED__ */ +#endif /* __IDWriteTextLayout2_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteTextAnalyzer2 interface @@ -1589,381 +1571,378 @@ static inline HRESULT IDWriteTextLayout2_GetFontFallback(IDWriteTextLayout2* Thi #ifndef __IDWriteTextAnalyzer2_INTERFACE_DEFINED__ #define __IDWriteTextAnalyzer2_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteTextAnalyzer2, 0x553a9ff3, 0x5693, 0x4df7, 0xb5,0x2b, 0x74,0x80,0x6f,0x7f,0x2e,0xb9); +DEFINE_GUID(IID_IDWriteTextAnalyzer2, 0x553a9ff3, 0x5693, 0x4df7, 0xb5, 0x2b, 0x74, 0x80, 0x6f, 0x7f, 0x2e, 0xb9); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("553a9ff3-5693-4df7-b52b-74806f7f2eb9") -IDWriteTextAnalyzer2 : public IDWriteTextAnalyzer1 -{ - virtual HRESULT STDMETHODCALLTYPE GetGlyphOrientationTransform( - DWRITE_GLYPH_ORIENTATION_ANGLE angle, - WINBOOL is_sideways, - FLOAT originX, - FLOAT originY, - DWRITE_MATRIX *transform) = 0; +IDWriteTextAnalyzer2 : public IDWriteTextAnalyzer1 { + virtual HRESULT STDMETHODCALLTYPE GetGlyphOrientationTransform( + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + WINBOOL is_sideways, + FLOAT originX, + FLOAT originY, + DWRITE_MATRIX * transform) = 0; - virtual HRESULT STDMETHODCALLTYPE GetTypographicFeatures( - IDWriteFontFace *fontface, - DWRITE_SCRIPT_ANALYSIS analysis, - const WCHAR *localeName, - UINT32 max_tagcount, - UINT32 *actual_tagcount, - DWRITE_FONT_FEATURE_TAG *tags) = 0; - - virtual HRESULT STDMETHODCALLTYPE CheckTypographicFeature( - IDWriteFontFace *fontface, - DWRITE_SCRIPT_ANALYSIS analysis, - const WCHAR *localeName, - DWRITE_FONT_FEATURE_TAG feature, - UINT32 glyph_count, - const UINT16 *indices, - UINT8 *feature_applies) = 0; + virtual HRESULT STDMETHODCALLTYPE GetTypographicFeatures( + IDWriteFontFace * fontface, + DWRITE_SCRIPT_ANALYSIS analysis, + const WCHAR* localeName, + UINT32 max_tagcount, + UINT32* actual_tagcount, + DWRITE_FONT_FEATURE_TAG* tags) = 0; + virtual HRESULT STDMETHODCALLTYPE CheckTypographicFeature( + IDWriteFontFace * fontface, + DWRITE_SCRIPT_ANALYSIS analysis, + const WCHAR* localeName, + DWRITE_FONT_FEATURE_TAG feature, + UINT32 glyph_count, + const UINT16* indices, + UINT8* feature_applies) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextAnalyzer2, 0x553a9ff3, 0x5693, 0x4df7, 0xb5,0x2b, 0x74,0x80,0x6f,0x7f,0x2e,0xb9) +__CRT_UUID_DECL(IDWriteTextAnalyzer2, 0x553a9ff3, 0x5693, 0x4df7, 0xb5, 0x2b, 0x74, 0x80, 0x6f, 0x7f, 0x2e, 0xb9) #endif #else typedef struct IDWriteTextAnalyzer2Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteTextAnalyzer2 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteTextAnalyzer2* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteTextAnalyzer2 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteTextAnalyzer2* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteTextAnalyzer2 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteTextAnalyzer2* This); - /*** IDWriteTextAnalyzer methods ***/ - HRESULT (STDMETHODCALLTYPE *AnalyzeScript)( - IDWriteTextAnalyzer2 *This, - IDWriteTextAnalysisSource *source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink *sink); + /*** IDWriteTextAnalyzer methods ***/ + HRESULT(STDMETHODCALLTYPE* AnalyzeScript)( + IDWriteTextAnalyzer2* This, + IDWriteTextAnalysisSource* source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink* sink); - HRESULT (STDMETHODCALLTYPE *AnalyzeBidi)( - IDWriteTextAnalyzer2 *This, - IDWriteTextAnalysisSource *source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink *sink); + HRESULT(STDMETHODCALLTYPE* AnalyzeBidi)( + IDWriteTextAnalyzer2* This, + IDWriteTextAnalysisSource* source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink* sink); - HRESULT (STDMETHODCALLTYPE *AnalyzeNumberSubstitution)( - IDWriteTextAnalyzer2 *This, - IDWriteTextAnalysisSource *source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink *sink); + HRESULT(STDMETHODCALLTYPE* AnalyzeNumberSubstitution)( + IDWriteTextAnalyzer2* This, + IDWriteTextAnalysisSource* source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink* sink); - HRESULT (STDMETHODCALLTYPE *AnalyzeLineBreakpoints)( - IDWriteTextAnalyzer2 *This, - IDWriteTextAnalysisSource *source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink *sink); + HRESULT(STDMETHODCALLTYPE* AnalyzeLineBreakpoints)( + IDWriteTextAnalyzer2* This, + IDWriteTextAnalysisSource* source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink* sink); - HRESULT (STDMETHODCALLTYPE *GetGlyphs)( - IDWriteTextAnalyzer2 *This, - const WCHAR *text, - UINT32 length, - IDWriteFontFace *font_face, - WINBOOL is_sideways, - WINBOOL is_rtl, - const DWRITE_SCRIPT_ANALYSIS *analysis, - const WCHAR *locale, - IDWriteNumberSubstitution *substitution, - const DWRITE_TYPOGRAPHIC_FEATURES **features, - const UINT32 *feature_range_len, - UINT32 feature_ranges, - UINT32 max_glyph_count, - UINT16 *clustermap, - DWRITE_SHAPING_TEXT_PROPERTIES *text_props, - UINT16 *glyph_indices, - DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, - UINT32 *actual_glyph_count); + HRESULT(STDMETHODCALLTYPE* GetGlyphs)( + IDWriteTextAnalyzer2* This, + const WCHAR* text, + UINT32 length, + IDWriteFontFace* font_face, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS* analysis, + const WCHAR* locale, + IDWriteNumberSubstitution* substitution, + const DWRITE_TYPOGRAPHIC_FEATURES** features, + const UINT32* feature_range_len, + UINT32 feature_ranges, + UINT32 max_glyph_count, + UINT16* clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES* text_props, + UINT16* glyph_indices, + DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, + UINT32* actual_glyph_count); - HRESULT (STDMETHODCALLTYPE *GetGlyphPlacements)( - IDWriteTextAnalyzer2 *This, - const WCHAR *text, - const UINT16 *clustermap, - DWRITE_SHAPING_TEXT_PROPERTIES *props, - UINT32 text_len, - const UINT16 *glyph_indices, - const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, - UINT32 glyph_count, - IDWriteFontFace *font_face, - FLOAT fontEmSize, - WINBOOL is_sideways, - WINBOOL is_rtl, - const DWRITE_SCRIPT_ANALYSIS *analysis, - const WCHAR *locale, - const DWRITE_TYPOGRAPHIC_FEATURES **features, - const UINT32 *feature_range_len, - UINT32 feature_ranges, - FLOAT *glyph_advances, - DWRITE_GLYPH_OFFSET *glyph_offsets); + HRESULT(STDMETHODCALLTYPE* GetGlyphPlacements)( + IDWriteTextAnalyzer2* This, + const WCHAR* text, + const UINT16* clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES* props, + UINT32 text_len, + const UINT16* glyph_indices, + const DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, + UINT32 glyph_count, + IDWriteFontFace* font_face, + FLOAT fontEmSize, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS* analysis, + const WCHAR* locale, + const DWRITE_TYPOGRAPHIC_FEATURES** features, + const UINT32* feature_range_len, + UINT32 feature_ranges, + FLOAT* glyph_advances, + DWRITE_GLYPH_OFFSET* glyph_offsets); - HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphPlacements)( - IDWriteTextAnalyzer2 *This, - const WCHAR *text, - const UINT16 *clustermap, - DWRITE_SHAPING_TEXT_PROPERTIES *props, - UINT32 text_len, - const UINT16 *glyph_indices, - const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, - UINT32 glyph_count, - IDWriteFontFace *font_face, - FLOAT fontEmSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - WINBOOL is_sideways, - WINBOOL is_rtl, - const DWRITE_SCRIPT_ANALYSIS *analysis, - const WCHAR *locale, - const DWRITE_TYPOGRAPHIC_FEATURES **features, - const UINT32 *feature_range_lengths, - UINT32 feature_ranges, - FLOAT *glyph_advances, - DWRITE_GLYPH_OFFSET *glyph_offsets); + HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphPlacements)( + IDWriteTextAnalyzer2* This, + const WCHAR* text, + const UINT16* clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES* props, + UINT32 text_len, + const UINT16* glyph_indices, + const DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, + UINT32 glyph_count, + IDWriteFontFace* font_face, + FLOAT fontEmSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS* analysis, + const WCHAR* locale, + const DWRITE_TYPOGRAPHIC_FEATURES** features, + const UINT32* feature_range_lengths, + UINT32 feature_ranges, + FLOAT* glyph_advances, + DWRITE_GLYPH_OFFSET* glyph_offsets); - /*** IDWriteTextAnalyzer1 methods ***/ - HRESULT (STDMETHODCALLTYPE *ApplyCharacterSpacing)( - IDWriteTextAnalyzer2 *This, - FLOAT leading_spacing, - FLOAT trailing_spacing, - FLOAT min_advance_width, - UINT32 len, - UINT32 glyph_count, - const UINT16 *clustermap, - const FLOAT *advances, - const DWRITE_GLYPH_OFFSET *offsets, - const DWRITE_SHAPING_GLYPH_PROPERTIES *props, - FLOAT *modified_advances, - DWRITE_GLYPH_OFFSET *modified_offsets); + /*** IDWriteTextAnalyzer1 methods ***/ + HRESULT(STDMETHODCALLTYPE* ApplyCharacterSpacing)( + IDWriteTextAnalyzer2* This, + FLOAT leading_spacing, + FLOAT trailing_spacing, + FLOAT min_advance_width, + UINT32 len, + UINT32 glyph_count, + const UINT16* clustermap, + const FLOAT* advances, + const DWRITE_GLYPH_OFFSET* offsets, + const DWRITE_SHAPING_GLYPH_PROPERTIES* props, + FLOAT* modified_advances, + DWRITE_GLYPH_OFFSET* modified_offsets); - HRESULT (STDMETHODCALLTYPE *GetBaseline)( - IDWriteTextAnalyzer2 *This, - IDWriteFontFace *face, - DWRITE_BASELINE baseline, - WINBOOL vertical, - WINBOOL is_simulation_allowed, - DWRITE_SCRIPT_ANALYSIS sa, - const WCHAR *localeName, - INT32 *baseline_coord, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* GetBaseline)( + IDWriteTextAnalyzer2* This, + IDWriteFontFace* face, + DWRITE_BASELINE baseline, + WINBOOL vertical, + WINBOOL is_simulation_allowed, + DWRITE_SCRIPT_ANALYSIS sa, + const WCHAR* localeName, + INT32* baseline_coord, + WINBOOL* exists); - HRESULT (STDMETHODCALLTYPE *AnalyzeVerticalGlyphOrientation)( - IDWriteTextAnalyzer2 *This, - IDWriteTextAnalysisSource1 *source, - UINT32 text_pos, - UINT32 len, - IDWriteTextAnalysisSink1 *sink); + HRESULT(STDMETHODCALLTYPE* AnalyzeVerticalGlyphOrientation)( + IDWriteTextAnalyzer2* This, + IDWriteTextAnalysisSource1* source, + UINT32 text_pos, + UINT32 len, + IDWriteTextAnalysisSink1* sink); - HRESULT (STDMETHODCALLTYPE *GetGlyphOrientationTransform)( - IDWriteTextAnalyzer2 *This, - DWRITE_GLYPH_ORIENTATION_ANGLE angle, - WINBOOL is_sideways, - DWRITE_MATRIX *transform); + HRESULT(STDMETHODCALLTYPE* GetGlyphOrientationTransform)( + IDWriteTextAnalyzer2* This, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + WINBOOL is_sideways, + DWRITE_MATRIX* transform); - HRESULT (STDMETHODCALLTYPE *GetScriptProperties)( - IDWriteTextAnalyzer2 *This, - DWRITE_SCRIPT_ANALYSIS sa, - DWRITE_SCRIPT_PROPERTIES *props); + HRESULT(STDMETHODCALLTYPE* GetScriptProperties)( + IDWriteTextAnalyzer2* This, + DWRITE_SCRIPT_ANALYSIS sa, + DWRITE_SCRIPT_PROPERTIES* props); - HRESULT (STDMETHODCALLTYPE *GetTextComplexity)( - IDWriteTextAnalyzer2 *This, - const WCHAR *text, - UINT32 len, - IDWriteFontFace *face, - WINBOOL *is_simple, - UINT32 *len_read, - UINT16 *indices); + HRESULT(STDMETHODCALLTYPE* GetTextComplexity)( + IDWriteTextAnalyzer2* This, + const WCHAR* text, + UINT32 len, + IDWriteFontFace* face, + WINBOOL* is_simple, + UINT32* len_read, + UINT16* indices); - HRESULT (STDMETHODCALLTYPE *GetJustificationOpportunities)( - IDWriteTextAnalyzer2 *This, - IDWriteFontFace *face, - FLOAT font_em_size, - DWRITE_SCRIPT_ANALYSIS sa, - UINT32 length, - UINT32 glyph_count, - const WCHAR *text, - const UINT16 *clustermap, - const DWRITE_SHAPING_GLYPH_PROPERTIES *prop, - DWRITE_JUSTIFICATION_OPPORTUNITY *jo); + HRESULT(STDMETHODCALLTYPE* GetJustificationOpportunities)( + IDWriteTextAnalyzer2* This, + IDWriteFontFace* face, + FLOAT font_em_size, + DWRITE_SCRIPT_ANALYSIS sa, + UINT32 length, + UINT32 glyph_count, + const WCHAR* text, + const UINT16* clustermap, + const DWRITE_SHAPING_GLYPH_PROPERTIES* prop, + DWRITE_JUSTIFICATION_OPPORTUNITY* jo); - HRESULT (STDMETHODCALLTYPE *JustifyGlyphAdvances)( - IDWriteTextAnalyzer2 *This, - FLOAT width, - UINT32 glyph_count, - const DWRITE_JUSTIFICATION_OPPORTUNITY *jo, - const FLOAT *advances, - const DWRITE_GLYPH_OFFSET *offsets, - FLOAT *justifiedadvances, - DWRITE_GLYPH_OFFSET *justifiedoffsets); + HRESULT(STDMETHODCALLTYPE* JustifyGlyphAdvances)( + IDWriteTextAnalyzer2* This, + FLOAT width, + UINT32 glyph_count, + const DWRITE_JUSTIFICATION_OPPORTUNITY* jo, + const FLOAT* advances, + const DWRITE_GLYPH_OFFSET* offsets, + FLOAT* justifiedadvances, + DWRITE_GLYPH_OFFSET* justifiedoffsets); - HRESULT (STDMETHODCALLTYPE *GetJustifiedGlyphs)( - IDWriteTextAnalyzer2 *This, - IDWriteFontFace *face, - FLOAT font_em_size, - DWRITE_SCRIPT_ANALYSIS sa, - UINT32 length, - UINT32 glyph_count, - UINT32 max_glyphcount, - const UINT16 *clustermap, - const UINT16 *indices, - const FLOAT *advances, - const FLOAT *justifiedadvances, - const DWRITE_GLYPH_OFFSET *justifiedoffsets, - const DWRITE_SHAPING_GLYPH_PROPERTIES *prop, - UINT32 *actual_count, - UINT16 *modified_clustermap, - UINT16 *modified_indices, - FLOAT *modified_advances, - DWRITE_GLYPH_OFFSET *modified_offsets); + HRESULT(STDMETHODCALLTYPE* GetJustifiedGlyphs)( + IDWriteTextAnalyzer2* This, + IDWriteFontFace* face, + FLOAT font_em_size, + DWRITE_SCRIPT_ANALYSIS sa, + UINT32 length, + UINT32 glyph_count, + UINT32 max_glyphcount, + const UINT16* clustermap, + const UINT16* indices, + const FLOAT* advances, + const FLOAT* justifiedadvances, + const DWRITE_GLYPH_OFFSET* justifiedoffsets, + const DWRITE_SHAPING_GLYPH_PROPERTIES* prop, + UINT32* actual_count, + UINT16* modified_clustermap, + UINT16* modified_indices, + FLOAT* modified_advances, + DWRITE_GLYPH_OFFSET* modified_offsets); - /*** IDWriteTextAnalyzer2 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteTextAnalyzer2_GetGlyphOrientationTransform)( - IDWriteTextAnalyzer2 *This, - DWRITE_GLYPH_ORIENTATION_ANGLE angle, - WINBOOL is_sideways, - FLOAT originX, - FLOAT originY, - DWRITE_MATRIX *transform); + /*** IDWriteTextAnalyzer2 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteTextAnalyzer2_GetGlyphOrientationTransform)( + IDWriteTextAnalyzer2* This, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + WINBOOL is_sideways, + FLOAT originX, + FLOAT originY, + DWRITE_MATRIX* transform); - HRESULT (STDMETHODCALLTYPE *GetTypographicFeatures)( - IDWriteTextAnalyzer2 *This, - IDWriteFontFace *fontface, - DWRITE_SCRIPT_ANALYSIS analysis, - const WCHAR *localeName, - UINT32 max_tagcount, - UINT32 *actual_tagcount, - DWRITE_FONT_FEATURE_TAG *tags); + HRESULT(STDMETHODCALLTYPE* GetTypographicFeatures)( + IDWriteTextAnalyzer2* This, + IDWriteFontFace* fontface, + DWRITE_SCRIPT_ANALYSIS analysis, + const WCHAR* localeName, + UINT32 max_tagcount, + UINT32* actual_tagcount, + DWRITE_FONT_FEATURE_TAG* tags); - HRESULT (STDMETHODCALLTYPE *CheckTypographicFeature)( - IDWriteTextAnalyzer2 *This, - IDWriteFontFace *fontface, - DWRITE_SCRIPT_ANALYSIS analysis, - const WCHAR *localeName, - DWRITE_FONT_FEATURE_TAG feature, - UINT32 glyph_count, - const UINT16 *indices, - UINT8 *feature_applies); + HRESULT(STDMETHODCALLTYPE* CheckTypographicFeature)( + IDWriteTextAnalyzer2* This, + IDWriteFontFace* fontface, + DWRITE_SCRIPT_ANALYSIS analysis, + const WCHAR* localeName, + DWRITE_FONT_FEATURE_TAG feature, + UINT32 glyph_count, + const UINT16* indices, + UINT8* feature_applies); - END_INTERFACE + END_INTERFACE } IDWriteTextAnalyzer2Vtbl; interface IDWriteTextAnalyzer2 { - CONST_VTBL IDWriteTextAnalyzer2Vtbl* lpVtbl; + CONST_VTBL IDWriteTextAnalyzer2Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteTextAnalyzer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextAnalyzer2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteTextAnalyzer2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteTextAnalyzer2_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteTextAnalyzer methods ***/ -#define IDWriteTextAnalyzer2_AnalyzeScript(This,source,position,length,sink) (This)->lpVtbl->AnalyzeScript(This,source,position,length,sink) -#define IDWriteTextAnalyzer2_AnalyzeBidi(This,source,position,length,sink) (This)->lpVtbl->AnalyzeBidi(This,source,position,length,sink) -#define IDWriteTextAnalyzer2_AnalyzeNumberSubstitution(This,source,position,length,sink) (This)->lpVtbl->AnalyzeNumberSubstitution(This,source,position,length,sink) -#define IDWriteTextAnalyzer2_AnalyzeLineBreakpoints(This,source,position,length,sink) (This)->lpVtbl->AnalyzeLineBreakpoints(This,source,position,length,sink) -#define IDWriteTextAnalyzer2_GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count) (This)->lpVtbl->GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count) -#define IDWriteTextAnalyzer2_GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets) (This)->lpVtbl->GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets) -#define IDWriteTextAnalyzer2_GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets) (This)->lpVtbl->GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets) +#define IDWriteTextAnalyzer2_AnalyzeScript(This, source, position, length, sink) (This)->lpVtbl->AnalyzeScript(This, source, position, length, sink) +#define IDWriteTextAnalyzer2_AnalyzeBidi(This, source, position, length, sink) (This)->lpVtbl->AnalyzeBidi(This, source, position, length, sink) +#define IDWriteTextAnalyzer2_AnalyzeNumberSubstitution(This, source, position, length, sink) (This)->lpVtbl->AnalyzeNumberSubstitution(This, source, position, length, sink) +#define IDWriteTextAnalyzer2_AnalyzeLineBreakpoints(This, source, position, length, sink) (This)->lpVtbl->AnalyzeLineBreakpoints(This, source, position, length, sink) +#define IDWriteTextAnalyzer2_GetGlyphs(This, text, length, font_face, is_sideways, is_rtl, analysis, locale, substitution, features, feature_range_len, feature_ranges, max_glyph_count, clustermap, text_props, glyph_indices, glyph_props, actual_glyph_count) (This)->lpVtbl->GetGlyphs(This, text, length, font_face, is_sideways, is_rtl, analysis, locale, substitution, features, feature_range_len, feature_ranges, max_glyph_count, clustermap, text_props, glyph_indices, glyph_props, actual_glyph_count) +#define IDWriteTextAnalyzer2_GetGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, is_sideways, is_rtl, analysis, locale, features, feature_range_len, feature_ranges, glyph_advances, glyph_offsets) (This)->lpVtbl->GetGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, is_sideways, is_rtl, analysis, locale, features, feature_range_len, feature_ranges, glyph_advances, glyph_offsets) +#define IDWriteTextAnalyzer2_GetGdiCompatibleGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, pixels_per_dip, transform, use_gdi_natural, is_sideways, is_rtl, analysis, locale, features, feature_range_lengths, feature_ranges, glyph_advances, glyph_offsets) (This)->lpVtbl->GetGdiCompatibleGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, pixels_per_dip, transform, use_gdi_natural, is_sideways, is_rtl, analysis, locale, features, feature_range_lengths, feature_ranges, glyph_advances, glyph_offsets) /*** IDWriteTextAnalyzer1 methods ***/ -#define IDWriteTextAnalyzer2_ApplyCharacterSpacing(This,leading_spacing,trailing_spacing,min_advance_width,len,glyph_count,clustermap,advances,offsets,props,modified_advances,modified_offsets) (This)->lpVtbl->ApplyCharacterSpacing(This,leading_spacing,trailing_spacing,min_advance_width,len,glyph_count,clustermap,advances,offsets,props,modified_advances,modified_offsets) -#define IDWriteTextAnalyzer2_GetBaseline(This,face,baseline,vertical,is_simulation_allowed,sa,localeName,baseline_coord,exists) (This)->lpVtbl->GetBaseline(This,face,baseline,vertical,is_simulation_allowed,sa,localeName,baseline_coord,exists) -#define IDWriteTextAnalyzer2_AnalyzeVerticalGlyphOrientation(This,source,text_pos,len,sink) (This)->lpVtbl->AnalyzeVerticalGlyphOrientation(This,source,text_pos,len,sink) -#define IDWriteTextAnalyzer2_GetScriptProperties(This,sa,props) (This)->lpVtbl->GetScriptProperties(This,sa,props) -#define IDWriteTextAnalyzer2_GetTextComplexity(This,text,len,face,is_simple,len_read,indices) (This)->lpVtbl->GetTextComplexity(This,text,len,face,is_simple,len_read,indices) -#define IDWriteTextAnalyzer2_GetJustificationOpportunities(This,face,font_em_size,sa,length,glyph_count,text,clustermap,prop,jo) (This)->lpVtbl->GetJustificationOpportunities(This,face,font_em_size,sa,length,glyph_count,text,clustermap,prop,jo) -#define IDWriteTextAnalyzer2_JustifyGlyphAdvances(This,width,glyph_count,jo,advances,offsets,justifiedadvances,justifiedoffsets) (This)->lpVtbl->JustifyGlyphAdvances(This,width,glyph_count,jo,advances,offsets,justifiedadvances,justifiedoffsets) -#define IDWriteTextAnalyzer2_GetJustifiedGlyphs(This,face,font_em_size,sa,length,glyph_count,max_glyphcount,clustermap,indices,advances,justifiedadvances,justifiedoffsets,prop,actual_count,modified_clustermap,modified_indices,modified_advances,modified_offsets) (This)->lpVtbl->GetJustifiedGlyphs(This,face,font_em_size,sa,length,glyph_count,max_glyphcount,clustermap,indices,advances,justifiedadvances,justifiedoffsets,prop,actual_count,modified_clustermap,modified_indices,modified_advances,modified_offsets) +#define IDWriteTextAnalyzer2_ApplyCharacterSpacing(This, leading_spacing, trailing_spacing, min_advance_width, len, glyph_count, clustermap, advances, offsets, props, modified_advances, modified_offsets) (This)->lpVtbl->ApplyCharacterSpacing(This, leading_spacing, trailing_spacing, min_advance_width, len, glyph_count, clustermap, advances, offsets, props, modified_advances, modified_offsets) +#define IDWriteTextAnalyzer2_GetBaseline(This, face, baseline, vertical, is_simulation_allowed, sa, localeName, baseline_coord, exists) (This)->lpVtbl->GetBaseline(This, face, baseline, vertical, is_simulation_allowed, sa, localeName, baseline_coord, exists) +#define IDWriteTextAnalyzer2_AnalyzeVerticalGlyphOrientation(This, source, text_pos, len, sink) (This)->lpVtbl->AnalyzeVerticalGlyphOrientation(This, source, text_pos, len, sink) +#define IDWriteTextAnalyzer2_GetScriptProperties(This, sa, props) (This)->lpVtbl->GetScriptProperties(This, sa, props) +#define IDWriteTextAnalyzer2_GetTextComplexity(This, text, len, face, is_simple, len_read, indices) (This)->lpVtbl->GetTextComplexity(This, text, len, face, is_simple, len_read, indices) +#define IDWriteTextAnalyzer2_GetJustificationOpportunities(This, face, font_em_size, sa, length, glyph_count, text, clustermap, prop, jo) (This)->lpVtbl->GetJustificationOpportunities(This, face, font_em_size, sa, length, glyph_count, text, clustermap, prop, jo) +#define IDWriteTextAnalyzer2_JustifyGlyphAdvances(This, width, glyph_count, jo, advances, offsets, justifiedadvances, justifiedoffsets) (This)->lpVtbl->JustifyGlyphAdvances(This, width, glyph_count, jo, advances, offsets, justifiedadvances, justifiedoffsets) +#define IDWriteTextAnalyzer2_GetJustifiedGlyphs(This, face, font_em_size, sa, length, glyph_count, max_glyphcount, clustermap, indices, advances, justifiedadvances, justifiedoffsets, prop, actual_count, modified_clustermap, modified_indices, modified_advances, modified_offsets) (This)->lpVtbl->GetJustifiedGlyphs(This, face, font_em_size, sa, length, glyph_count, max_glyphcount, clustermap, indices, advances, justifiedadvances, justifiedoffsets, prop, actual_count, modified_clustermap, modified_indices, modified_advances, modified_offsets) /*** IDWriteTextAnalyzer2 methods ***/ -#define IDWriteTextAnalyzer2_GetGlyphOrientationTransform(This,angle,is_sideways,originX,originY,transform) (This)->lpVtbl->IDWriteTextAnalyzer2_GetGlyphOrientationTransform(This,angle,is_sideways,originX,originY,transform) -#define IDWriteTextAnalyzer2_GetTypographicFeatures(This,fontface,analysis,localeName,max_tagcount,actual_tagcount,tags) (This)->lpVtbl->GetTypographicFeatures(This,fontface,analysis,localeName,max_tagcount,actual_tagcount,tags) -#define IDWriteTextAnalyzer2_CheckTypographicFeature(This,fontface,analysis,localeName,feature,glyph_count,indices,feature_applies) (This)->lpVtbl->CheckTypographicFeature(This,fontface,analysis,localeName,feature,glyph_count,indices,feature_applies) +#define IDWriteTextAnalyzer2_GetGlyphOrientationTransform(This, angle, is_sideways, originX, originY, transform) (This)->lpVtbl->IDWriteTextAnalyzer2_GetGlyphOrientationTransform(This, angle, is_sideways, originX, originY, transform) +#define IDWriteTextAnalyzer2_GetTypographicFeatures(This, fontface, analysis, localeName, max_tagcount, actual_tagcount, tags) (This)->lpVtbl->GetTypographicFeatures(This, fontface, analysis, localeName, max_tagcount, actual_tagcount, tags) +#define IDWriteTextAnalyzer2_CheckTypographicFeature(This, fontface, analysis, localeName, feature, glyph_count, indices, feature_applies) (This)->lpVtbl->CheckTypographicFeature(This, fontface, analysis, localeName, feature, glyph_count, indices, feature_applies) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteTextAnalyzer2_QueryInterface(IDWriteTextAnalyzer2* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteTextAnalyzer2_QueryInterface(IDWriteTextAnalyzer2* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteTextAnalyzer2_AddRef(IDWriteTextAnalyzer2* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteTextAnalyzer2_Release(IDWriteTextAnalyzer2* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteTextAnalyzer methods ***/ -static inline HRESULT IDWriteTextAnalyzer2_AnalyzeScript(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { - return This->lpVtbl->AnalyzeScript(This,source,position,length,sink); +static inline HRESULT IDWriteTextAnalyzer2_AnalyzeScript(IDWriteTextAnalyzer2* This, IDWriteTextAnalysisSource* source, UINT32 position, UINT32 length, IDWriteTextAnalysisSink* sink) { + return This->lpVtbl->AnalyzeScript(This, source, position, length, sink); } -static inline HRESULT IDWriteTextAnalyzer2_AnalyzeBidi(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { - return This->lpVtbl->AnalyzeBidi(This,source,position,length,sink); +static inline HRESULT IDWriteTextAnalyzer2_AnalyzeBidi(IDWriteTextAnalyzer2* This, IDWriteTextAnalysisSource* source, UINT32 position, UINT32 length, IDWriteTextAnalysisSink* sink) { + return This->lpVtbl->AnalyzeBidi(This, source, position, length, sink); } -static inline HRESULT IDWriteTextAnalyzer2_AnalyzeNumberSubstitution(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { - return This->lpVtbl->AnalyzeNumberSubstitution(This,source,position,length,sink); +static inline HRESULT IDWriteTextAnalyzer2_AnalyzeNumberSubstitution(IDWriteTextAnalyzer2* This, IDWriteTextAnalysisSource* source, UINT32 position, UINT32 length, IDWriteTextAnalysisSink* sink) { + return This->lpVtbl->AnalyzeNumberSubstitution(This, source, position, length, sink); } -static inline HRESULT IDWriteTextAnalyzer2_AnalyzeLineBreakpoints(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { - return This->lpVtbl->AnalyzeLineBreakpoints(This,source,position,length,sink); +static inline HRESULT IDWriteTextAnalyzer2_AnalyzeLineBreakpoints(IDWriteTextAnalyzer2* This, IDWriteTextAnalysisSource* source, UINT32 position, UINT32 length, IDWriteTextAnalysisSink* sink) { + return This->lpVtbl->AnalyzeLineBreakpoints(This, source, position, length, sink); } -static inline HRESULT IDWriteTextAnalyzer2_GetGlyphs(IDWriteTextAnalyzer2* This,const WCHAR *text,UINT32 length,IDWriteFontFace *font_face,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,IDWriteNumberSubstitution *substitution,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_len,UINT32 feature_ranges,UINT32 max_glyph_count,UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *text_props,UINT16 *glyph_indices,DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 *actual_glyph_count) { - return This->lpVtbl->GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count); +static inline HRESULT IDWriteTextAnalyzer2_GetGlyphs(IDWriteTextAnalyzer2* This, const WCHAR* text, UINT32 length, IDWriteFontFace* font_face, WINBOOL is_sideways, WINBOOL is_rtl, const DWRITE_SCRIPT_ANALYSIS* analysis, const WCHAR* locale, IDWriteNumberSubstitution* substitution, const DWRITE_TYPOGRAPHIC_FEATURES** features, const UINT32* feature_range_len, UINT32 feature_ranges, UINT32 max_glyph_count, UINT16* clustermap, DWRITE_SHAPING_TEXT_PROPERTIES* text_props, UINT16* glyph_indices, DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, UINT32* actual_glyph_count) { + return This->lpVtbl->GetGlyphs(This, text, length, font_face, is_sideways, is_rtl, analysis, locale, substitution, features, feature_range_len, feature_ranges, max_glyph_count, clustermap, text_props, glyph_indices, glyph_props, actual_glyph_count); } -static inline HRESULT IDWriteTextAnalyzer2_GetGlyphPlacements(IDWriteTextAnalyzer2* This,const WCHAR *text,const UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *props,UINT32 text_len,const UINT16 *glyph_indices,const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 glyph_count,IDWriteFontFace *font_face,FLOAT fontEmSize,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_len,UINT32 feature_ranges,FLOAT *glyph_advances,DWRITE_GLYPH_OFFSET *glyph_offsets) { - return This->lpVtbl->GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets); +static inline HRESULT IDWriteTextAnalyzer2_GetGlyphPlacements(IDWriteTextAnalyzer2* This, const WCHAR* text, const UINT16* clustermap, DWRITE_SHAPING_TEXT_PROPERTIES* props, UINT32 text_len, const UINT16* glyph_indices, const DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, UINT32 glyph_count, IDWriteFontFace* font_face, FLOAT fontEmSize, WINBOOL is_sideways, WINBOOL is_rtl, const DWRITE_SCRIPT_ANALYSIS* analysis, const WCHAR* locale, const DWRITE_TYPOGRAPHIC_FEATURES** features, const UINT32* feature_range_len, UINT32 feature_ranges, FLOAT* glyph_advances, DWRITE_GLYPH_OFFSET* glyph_offsets) { + return This->lpVtbl->GetGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, is_sideways, is_rtl, analysis, locale, features, feature_range_len, feature_ranges, glyph_advances, glyph_offsets); } -static inline HRESULT IDWriteTextAnalyzer2_GetGdiCompatibleGlyphPlacements(IDWriteTextAnalyzer2* This,const WCHAR *text,const UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *props,UINT32 text_len,const UINT16 *glyph_indices,const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 glyph_count,IDWriteFontFace *font_face,FLOAT fontEmSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_lengths,UINT32 feature_ranges,FLOAT *glyph_advances,DWRITE_GLYPH_OFFSET *glyph_offsets) { - return This->lpVtbl->GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets); +static inline HRESULT IDWriteTextAnalyzer2_GetGdiCompatibleGlyphPlacements(IDWriteTextAnalyzer2* This, const WCHAR* text, const UINT16* clustermap, DWRITE_SHAPING_TEXT_PROPERTIES* props, UINT32 text_len, const UINT16* glyph_indices, const DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, UINT32 glyph_count, IDWriteFontFace* font_face, FLOAT fontEmSize, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, WINBOOL is_sideways, WINBOOL is_rtl, const DWRITE_SCRIPT_ANALYSIS* analysis, const WCHAR* locale, const DWRITE_TYPOGRAPHIC_FEATURES** features, const UINT32* feature_range_lengths, UINT32 feature_ranges, FLOAT* glyph_advances, DWRITE_GLYPH_OFFSET* glyph_offsets) { + return This->lpVtbl->GetGdiCompatibleGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, pixels_per_dip, transform, use_gdi_natural, is_sideways, is_rtl, analysis, locale, features, feature_range_lengths, feature_ranges, glyph_advances, glyph_offsets); } /*** IDWriteTextAnalyzer1 methods ***/ -static inline HRESULT IDWriteTextAnalyzer2_ApplyCharacterSpacing(IDWriteTextAnalyzer2* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT min_advance_width,UINT32 len,UINT32 glyph_count,const UINT16 *clustermap,const FLOAT *advances,const DWRITE_GLYPH_OFFSET *offsets,const DWRITE_SHAPING_GLYPH_PROPERTIES *props,FLOAT *modified_advances,DWRITE_GLYPH_OFFSET *modified_offsets) { - return This->lpVtbl->ApplyCharacterSpacing(This,leading_spacing,trailing_spacing,min_advance_width,len,glyph_count,clustermap,advances,offsets,props,modified_advances,modified_offsets); +static inline HRESULT IDWriteTextAnalyzer2_ApplyCharacterSpacing(IDWriteTextAnalyzer2* This, FLOAT leading_spacing, FLOAT trailing_spacing, FLOAT min_advance_width, UINT32 len, UINT32 glyph_count, const UINT16* clustermap, const FLOAT* advances, const DWRITE_GLYPH_OFFSET* offsets, const DWRITE_SHAPING_GLYPH_PROPERTIES* props, FLOAT* modified_advances, DWRITE_GLYPH_OFFSET* modified_offsets) { + return This->lpVtbl->ApplyCharacterSpacing(This, leading_spacing, trailing_spacing, min_advance_width, len, glyph_count, clustermap, advances, offsets, props, modified_advances, modified_offsets); } -static inline HRESULT IDWriteTextAnalyzer2_GetBaseline(IDWriteTextAnalyzer2* This,IDWriteFontFace *face,DWRITE_BASELINE baseline,WINBOOL vertical,WINBOOL is_simulation_allowed,DWRITE_SCRIPT_ANALYSIS sa,const WCHAR *localeName,INT32 *baseline_coord,WINBOOL *exists) { - return This->lpVtbl->GetBaseline(This,face,baseline,vertical,is_simulation_allowed,sa,localeName,baseline_coord,exists); +static inline HRESULT IDWriteTextAnalyzer2_GetBaseline(IDWriteTextAnalyzer2* This, IDWriteFontFace* face, DWRITE_BASELINE baseline, WINBOOL vertical, WINBOOL is_simulation_allowed, DWRITE_SCRIPT_ANALYSIS sa, const WCHAR* localeName, INT32* baseline_coord, WINBOOL* exists) { + return This->lpVtbl->GetBaseline(This, face, baseline, vertical, is_simulation_allowed, sa, localeName, baseline_coord, exists); } -static inline HRESULT IDWriteTextAnalyzer2_AnalyzeVerticalGlyphOrientation(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource1 *source,UINT32 text_pos,UINT32 len,IDWriteTextAnalysisSink1 *sink) { - return This->lpVtbl->AnalyzeVerticalGlyphOrientation(This,source,text_pos,len,sink); +static inline HRESULT IDWriteTextAnalyzer2_AnalyzeVerticalGlyphOrientation(IDWriteTextAnalyzer2* This, IDWriteTextAnalysisSource1* source, UINT32 text_pos, UINT32 len, IDWriteTextAnalysisSink1* sink) { + return This->lpVtbl->AnalyzeVerticalGlyphOrientation(This, source, text_pos, len, sink); } -static inline HRESULT IDWriteTextAnalyzer2_GetScriptProperties(IDWriteTextAnalyzer2* This,DWRITE_SCRIPT_ANALYSIS sa,DWRITE_SCRIPT_PROPERTIES *props) { - return This->lpVtbl->GetScriptProperties(This,sa,props); +static inline HRESULT IDWriteTextAnalyzer2_GetScriptProperties(IDWriteTextAnalyzer2* This, DWRITE_SCRIPT_ANALYSIS sa, DWRITE_SCRIPT_PROPERTIES* props) { + return This->lpVtbl->GetScriptProperties(This, sa, props); } -static inline HRESULT IDWriteTextAnalyzer2_GetTextComplexity(IDWriteTextAnalyzer2* This,const WCHAR *text,UINT32 len,IDWriteFontFace *face,WINBOOL *is_simple,UINT32 *len_read,UINT16 *indices) { - return This->lpVtbl->GetTextComplexity(This,text,len,face,is_simple,len_read,indices); +static inline HRESULT IDWriteTextAnalyzer2_GetTextComplexity(IDWriteTextAnalyzer2* This, const WCHAR* text, UINT32 len, IDWriteFontFace* face, WINBOOL* is_simple, UINT32* len_read, UINT16* indices) { + return This->lpVtbl->GetTextComplexity(This, text, len, face, is_simple, len_read, indices); } -static inline HRESULT IDWriteTextAnalyzer2_GetJustificationOpportunities(IDWriteTextAnalyzer2* This,IDWriteFontFace *face,FLOAT font_em_size,DWRITE_SCRIPT_ANALYSIS sa,UINT32 length,UINT32 glyph_count,const WCHAR *text,const UINT16 *clustermap,const DWRITE_SHAPING_GLYPH_PROPERTIES *prop,DWRITE_JUSTIFICATION_OPPORTUNITY *jo) { - return This->lpVtbl->GetJustificationOpportunities(This,face,font_em_size,sa,length,glyph_count,text,clustermap,prop,jo); +static inline HRESULT IDWriteTextAnalyzer2_GetJustificationOpportunities(IDWriteTextAnalyzer2* This, IDWriteFontFace* face, FLOAT font_em_size, DWRITE_SCRIPT_ANALYSIS sa, UINT32 length, UINT32 glyph_count, const WCHAR* text, const UINT16* clustermap, const DWRITE_SHAPING_GLYPH_PROPERTIES* prop, DWRITE_JUSTIFICATION_OPPORTUNITY* jo) { + return This->lpVtbl->GetJustificationOpportunities(This, face, font_em_size, sa, length, glyph_count, text, clustermap, prop, jo); } -static inline HRESULT IDWriteTextAnalyzer2_JustifyGlyphAdvances(IDWriteTextAnalyzer2* This,FLOAT width,UINT32 glyph_count,const DWRITE_JUSTIFICATION_OPPORTUNITY *jo,const FLOAT *advances,const DWRITE_GLYPH_OFFSET *offsets,FLOAT *justifiedadvances,DWRITE_GLYPH_OFFSET *justifiedoffsets) { - return This->lpVtbl->JustifyGlyphAdvances(This,width,glyph_count,jo,advances,offsets,justifiedadvances,justifiedoffsets); +static inline HRESULT IDWriteTextAnalyzer2_JustifyGlyphAdvances(IDWriteTextAnalyzer2* This, FLOAT width, UINT32 glyph_count, const DWRITE_JUSTIFICATION_OPPORTUNITY* jo, const FLOAT* advances, const DWRITE_GLYPH_OFFSET* offsets, FLOAT* justifiedadvances, DWRITE_GLYPH_OFFSET* justifiedoffsets) { + return This->lpVtbl->JustifyGlyphAdvances(This, width, glyph_count, jo, advances, offsets, justifiedadvances, justifiedoffsets); } -static inline HRESULT IDWriteTextAnalyzer2_GetJustifiedGlyphs(IDWriteTextAnalyzer2* This,IDWriteFontFace *face,FLOAT font_em_size,DWRITE_SCRIPT_ANALYSIS sa,UINT32 length,UINT32 glyph_count,UINT32 max_glyphcount,const UINT16 *clustermap,const UINT16 *indices,const FLOAT *advances,const FLOAT *justifiedadvances,const DWRITE_GLYPH_OFFSET *justifiedoffsets,const DWRITE_SHAPING_GLYPH_PROPERTIES *prop,UINT32 *actual_count,UINT16 *modified_clustermap,UINT16 *modified_indices,FLOAT *modified_advances,DWRITE_GLYPH_OFFSET *modified_offsets) { - return This->lpVtbl->GetJustifiedGlyphs(This,face,font_em_size,sa,length,glyph_count,max_glyphcount,clustermap,indices,advances,justifiedadvances,justifiedoffsets,prop,actual_count,modified_clustermap,modified_indices,modified_advances,modified_offsets); +static inline HRESULT IDWriteTextAnalyzer2_GetJustifiedGlyphs(IDWriteTextAnalyzer2* This, IDWriteFontFace* face, FLOAT font_em_size, DWRITE_SCRIPT_ANALYSIS sa, UINT32 length, UINT32 glyph_count, UINT32 max_glyphcount, const UINT16* clustermap, const UINT16* indices, const FLOAT* advances, const FLOAT* justifiedadvances, const DWRITE_GLYPH_OFFSET* justifiedoffsets, const DWRITE_SHAPING_GLYPH_PROPERTIES* prop, UINT32* actual_count, UINT16* modified_clustermap, UINT16* modified_indices, FLOAT* modified_advances, DWRITE_GLYPH_OFFSET* modified_offsets) { + return This->lpVtbl->GetJustifiedGlyphs(This, face, font_em_size, sa, length, glyph_count, max_glyphcount, clustermap, indices, advances, justifiedadvances, justifiedoffsets, prop, actual_count, modified_clustermap, modified_indices, modified_advances, modified_offsets); } /*** IDWriteTextAnalyzer2 methods ***/ -static inline HRESULT IDWriteTextAnalyzer2_GetGlyphOrientationTransform(IDWriteTextAnalyzer2* This,DWRITE_GLYPH_ORIENTATION_ANGLE angle,WINBOOL is_sideways,FLOAT originX,FLOAT originY,DWRITE_MATRIX *transform) { - return This->lpVtbl->IDWriteTextAnalyzer2_GetGlyphOrientationTransform(This,angle,is_sideways,originX,originY,transform); +static inline HRESULT IDWriteTextAnalyzer2_GetGlyphOrientationTransform(IDWriteTextAnalyzer2* This, DWRITE_GLYPH_ORIENTATION_ANGLE angle, WINBOOL is_sideways, FLOAT originX, FLOAT originY, DWRITE_MATRIX* transform) { + return This->lpVtbl->IDWriteTextAnalyzer2_GetGlyphOrientationTransform(This, angle, is_sideways, originX, originY, transform); } -static inline HRESULT IDWriteTextAnalyzer2_GetTypographicFeatures(IDWriteTextAnalyzer2* This,IDWriteFontFace *fontface,DWRITE_SCRIPT_ANALYSIS analysis,const WCHAR *localeName,UINT32 max_tagcount,UINT32 *actual_tagcount,DWRITE_FONT_FEATURE_TAG *tags) { - return This->lpVtbl->GetTypographicFeatures(This,fontface,analysis,localeName,max_tagcount,actual_tagcount,tags); +static inline HRESULT IDWriteTextAnalyzer2_GetTypographicFeatures(IDWriteTextAnalyzer2* This, IDWriteFontFace* fontface, DWRITE_SCRIPT_ANALYSIS analysis, const WCHAR* localeName, UINT32 max_tagcount, UINT32* actual_tagcount, DWRITE_FONT_FEATURE_TAG* tags) { + return This->lpVtbl->GetTypographicFeatures(This, fontface, analysis, localeName, max_tagcount, actual_tagcount, tags); } -static inline HRESULT IDWriteTextAnalyzer2_CheckTypographicFeature(IDWriteTextAnalyzer2* This,IDWriteFontFace *fontface,DWRITE_SCRIPT_ANALYSIS analysis,const WCHAR *localeName,DWRITE_FONT_FEATURE_TAG feature,UINT32 glyph_count,const UINT16 *indices,UINT8 *feature_applies) { - return This->lpVtbl->CheckTypographicFeature(This,fontface,analysis,localeName,feature,glyph_count,indices,feature_applies); +static inline HRESULT IDWriteTextAnalyzer2_CheckTypographicFeature(IDWriteTextAnalyzer2* This, IDWriteFontFace* fontface, DWRITE_SCRIPT_ANALYSIS analysis, const WCHAR* localeName, DWRITE_FONT_FEATURE_TAG feature, UINT32 glyph_count, const UINT16* indices, UINT8* feature_applies) { + return This->lpVtbl->CheckTypographicFeature(This, fontface, analysis, localeName, feature, glyph_count, indices, feature_applies); } #endif #endif #endif - -#endif /* __IDWriteTextAnalyzer2_INTERFACE_DEFINED__ */ +#endif /* __IDWriteTextAnalyzer2_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontFallbackBuilder interface @@ -1971,112 +1950,109 @@ static inline HRESULT IDWriteTextAnalyzer2_CheckTypographicFeature(IDWriteTextAn #ifndef __IDWriteFontFallbackBuilder_INTERFACE_DEFINED__ #define __IDWriteFontFallbackBuilder_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontFallbackBuilder, 0xfd882d06, 0x8aba, 0x4fb8, 0xb8,0x49, 0x8b,0xe8,0xb7,0x3e,0x14,0xde); +DEFINE_GUID(IID_IDWriteFontFallbackBuilder, 0xfd882d06, 0x8aba, 0x4fb8, 0xb8, 0x49, 0x8b, 0xe8, 0xb7, 0x3e, 0x14, 0xde); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("fd882d06-8aba-4fb8-b849-8be8b73e14de") -IDWriteFontFallbackBuilder : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE AddMapping( - const DWRITE_UNICODE_RANGE *ranges, - UINT32 rangesCount, - const WCHAR **targetFamilyNames, - UINT32 targetFamilyNamesCount, - IDWriteFontCollection *collection = 0, - const WCHAR *localeName = 0, - const WCHAR *baseFamilyName = 0, - FLOAT scale = 1) = 0; +IDWriteFontFallbackBuilder : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE AddMapping( + const DWRITE_UNICODE_RANGE* ranges, + UINT32 rangesCount, + const WCHAR** targetFamilyNames, + UINT32 targetFamilyNamesCount, + IDWriteFontCollection* collection = 0, + const WCHAR* localeName = 0, + const WCHAR* baseFamilyName = 0, + FLOAT scale = 1) = 0; - virtual HRESULT STDMETHODCALLTYPE AddMappings( - IDWriteFontFallback *fallback) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontFallback( - IDWriteFontFallback **fallback) = 0; + virtual HRESULT STDMETHODCALLTYPE AddMappings( + IDWriteFontFallback * fallback) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateFontFallback( + IDWriteFontFallback * *fallback) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFallbackBuilder, 0xfd882d06, 0x8aba, 0x4fb8, 0xb8,0x49, 0x8b,0xe8,0xb7,0x3e,0x14,0xde) +__CRT_UUID_DECL(IDWriteFontFallbackBuilder, 0xfd882d06, 0x8aba, 0x4fb8, 0xb8, 0x49, 0x8b, 0xe8, 0xb7, 0x3e, 0x14, 0xde) #endif #else typedef struct IDWriteFontFallbackBuilderVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontFallbackBuilder *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontFallbackBuilder* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontFallbackBuilder *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontFallbackBuilder* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontFallbackBuilder *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontFallbackBuilder* This); - /*** IDWriteFontFallbackBuilder methods ***/ - HRESULT (STDMETHODCALLTYPE *AddMapping)( - IDWriteFontFallbackBuilder *This, - const DWRITE_UNICODE_RANGE *ranges, - UINT32 rangesCount, - const WCHAR **targetFamilyNames, - UINT32 targetFamilyNamesCount, - IDWriteFontCollection *collection, - const WCHAR *localeName, - const WCHAR *baseFamilyName, - FLOAT scale); + /*** IDWriteFontFallbackBuilder methods ***/ + HRESULT(STDMETHODCALLTYPE* AddMapping)( + IDWriteFontFallbackBuilder* This, + const DWRITE_UNICODE_RANGE* ranges, + UINT32 rangesCount, + const WCHAR** targetFamilyNames, + UINT32 targetFamilyNamesCount, + IDWriteFontCollection* collection, + const WCHAR* localeName, + const WCHAR* baseFamilyName, + FLOAT scale); - HRESULT (STDMETHODCALLTYPE *AddMappings)( - IDWriteFontFallbackBuilder *This, - IDWriteFontFallback *fallback); + HRESULT(STDMETHODCALLTYPE* AddMappings)( + IDWriteFontFallbackBuilder* This, + IDWriteFontFallback* fallback); - HRESULT (STDMETHODCALLTYPE *CreateFontFallback)( - IDWriteFontFallbackBuilder *This, - IDWriteFontFallback **fallback); + HRESULT(STDMETHODCALLTYPE* CreateFontFallback)( + IDWriteFontFallbackBuilder* This, + IDWriteFontFallback** fallback); - END_INTERFACE + END_INTERFACE } IDWriteFontFallbackBuilderVtbl; interface IDWriteFontFallbackBuilder { - CONST_VTBL IDWriteFontFallbackBuilderVtbl* lpVtbl; + CONST_VTBL IDWriteFontFallbackBuilderVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontFallbackBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFallbackBuilder_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontFallbackBuilder_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontFallbackBuilder_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontFallbackBuilder methods ***/ -#define IDWriteFontFallbackBuilder_AddMapping(This,ranges,rangesCount,targetFamilyNames,targetFamilyNamesCount,collection,localeName,baseFamilyName,scale) (This)->lpVtbl->AddMapping(This,ranges,rangesCount,targetFamilyNames,targetFamilyNamesCount,collection,localeName,baseFamilyName,scale) -#define IDWriteFontFallbackBuilder_AddMappings(This,fallback) (This)->lpVtbl->AddMappings(This,fallback) -#define IDWriteFontFallbackBuilder_CreateFontFallback(This,fallback) (This)->lpVtbl->CreateFontFallback(This,fallback) +#define IDWriteFontFallbackBuilder_AddMapping(This, ranges, rangesCount, targetFamilyNames, targetFamilyNamesCount, collection, localeName, baseFamilyName, scale) (This)->lpVtbl->AddMapping(This, ranges, rangesCount, targetFamilyNames, targetFamilyNamesCount, collection, localeName, baseFamilyName, scale) +#define IDWriteFontFallbackBuilder_AddMappings(This, fallback) (This)->lpVtbl->AddMappings(This, fallback) +#define IDWriteFontFallbackBuilder_CreateFontFallback(This, fallback) (This)->lpVtbl->CreateFontFallback(This, fallback) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFallbackBuilder_QueryInterface(IDWriteFontFallbackBuilder* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontFallbackBuilder_QueryInterface(IDWriteFontFallbackBuilder* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontFallbackBuilder_AddRef(IDWriteFontFallbackBuilder* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontFallbackBuilder_Release(IDWriteFontFallbackBuilder* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontFallbackBuilder methods ***/ -static inline HRESULT IDWriteFontFallbackBuilder_AddMapping(IDWriteFontFallbackBuilder* This,const DWRITE_UNICODE_RANGE *ranges,UINT32 rangesCount,const WCHAR **targetFamilyNames,UINT32 targetFamilyNamesCount,IDWriteFontCollection *collection,const WCHAR *localeName,const WCHAR *baseFamilyName,FLOAT scale) { - return This->lpVtbl->AddMapping(This,ranges,rangesCount,targetFamilyNames,targetFamilyNamesCount,collection,localeName,baseFamilyName,scale); +static inline HRESULT IDWriteFontFallbackBuilder_AddMapping(IDWriteFontFallbackBuilder* This, const DWRITE_UNICODE_RANGE* ranges, UINT32 rangesCount, const WCHAR** targetFamilyNames, UINT32 targetFamilyNamesCount, IDWriteFontCollection* collection, const WCHAR* localeName, const WCHAR* baseFamilyName, FLOAT scale) { + return This->lpVtbl->AddMapping(This, ranges, rangesCount, targetFamilyNames, targetFamilyNamesCount, collection, localeName, baseFamilyName, scale); } -static inline HRESULT IDWriteFontFallbackBuilder_AddMappings(IDWriteFontFallbackBuilder* This,IDWriteFontFallback *fallback) { - return This->lpVtbl->AddMappings(This,fallback); +static inline HRESULT IDWriteFontFallbackBuilder_AddMappings(IDWriteFontFallbackBuilder* This, IDWriteFontFallback* fallback) { + return This->lpVtbl->AddMappings(This, fallback); } -static inline HRESULT IDWriteFontFallbackBuilder_CreateFontFallback(IDWriteFontFallbackBuilder* This,IDWriteFontFallback **fallback) { - return This->lpVtbl->CreateFontFallback(This,fallback); +static inline HRESULT IDWriteFontFallbackBuilder_CreateFontFallback(IDWriteFontFallbackBuilder* This, IDWriteFontFallback** fallback) { + return This->lpVtbl->CreateFontFallback(This, fallback); } #endif #endif #endif - -#endif /* __IDWriteFontFallbackBuilder_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontFallbackBuilder_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFont2 interface @@ -2084,196 +2060,192 @@ static inline HRESULT IDWriteFontFallbackBuilder_CreateFontFallback(IDWriteFontF #ifndef __IDWriteFont2_INTERFACE_DEFINED__ #define __IDWriteFont2_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFont2, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44); +DEFINE_GUID(IID_IDWriteFont2, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe, 0x0b, 0xd9, 0x12, 0xe8, 0x53, 0x89, 0x44); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("29748ed6-8c9c-4a6a-be0b-d912e8538944") -IDWriteFont2 : public IDWriteFont1 -{ - virtual WINBOOL STDMETHODCALLTYPE IsColorFont( - ) = 0; - +IDWriteFont2 : public IDWriteFont1 { + virtual WINBOOL STDMETHODCALLTYPE IsColorFont() = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFont2, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44) +__CRT_UUID_DECL(IDWriteFont2, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe, 0x0b, 0xd9, 0x12, 0xe8, 0x53, 0x89, 0x44) #endif #else typedef struct IDWriteFont2Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFont2 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFont2* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFont2 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFont2* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFont2 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFont2* This); - /*** IDWriteFont methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFontFamily)( - IDWriteFont2 *This, - IDWriteFontFamily **family); + /*** IDWriteFont methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFontFamily)( + IDWriteFont2* This, + IDWriteFontFamily** family); - DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( - IDWriteFont2 *This); + DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetWeight)( + IDWriteFont2* This); - DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( - IDWriteFont2 *This); + DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetStretch)( + IDWriteFont2* This); - DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( - IDWriteFont2 *This); + DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetStyle)( + IDWriteFont2* This); - WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( - IDWriteFont2 *This); + WINBOOL(STDMETHODCALLTYPE* IsSymbolFont)( + IDWriteFont2* This); - HRESULT (STDMETHODCALLTYPE *GetFaceNames)( - IDWriteFont2 *This, - IDWriteLocalizedStrings **names); + HRESULT(STDMETHODCALLTYPE* GetFaceNames)( + IDWriteFont2* This, + IDWriteLocalizedStrings** names); - HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( - IDWriteFont2 *This, - DWRITE_INFORMATIONAL_STRING_ID stringid, - IDWriteLocalizedStrings **strings, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* GetInformationalStrings)( + IDWriteFont2* This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings** strings, + WINBOOL* exists); - DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( - IDWriteFont2 *This); + DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( + IDWriteFont2* This); - void (STDMETHODCALLTYPE *GetMetrics)( - IDWriteFont2 *This, - DWRITE_FONT_METRICS *metrics); + void(STDMETHODCALLTYPE* GetMetrics)( + IDWriteFont2* This, + DWRITE_FONT_METRICS* metrics); - HRESULT (STDMETHODCALLTYPE *HasCharacter)( - IDWriteFont2 *This, - UINT32 value, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* HasCharacter)( + IDWriteFont2* This, + UINT32 value, + WINBOOL* exists); - HRESULT (STDMETHODCALLTYPE *CreateFontFace)( - IDWriteFont2 *This, - IDWriteFontFace **face); + HRESULT(STDMETHODCALLTYPE* CreateFontFace)( + IDWriteFont2* This, + IDWriteFontFace** face); - /*** IDWriteFont1 methods ***/ - void (STDMETHODCALLTYPE *IDWriteFont1_GetMetrics)( - IDWriteFont2 *This, - DWRITE_FONT_METRICS1 *metrics); + /*** IDWriteFont1 methods ***/ + void(STDMETHODCALLTYPE* IDWriteFont1_GetMetrics)( + IDWriteFont2* This, + DWRITE_FONT_METRICS1* metrics); - void (STDMETHODCALLTYPE *GetPanose)( - IDWriteFont2 *This, - DWRITE_PANOSE *panose); + void(STDMETHODCALLTYPE* GetPanose)( + IDWriteFont2* This, + DWRITE_PANOSE* panose); - HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( - IDWriteFont2 *This, - UINT32 max_count, - DWRITE_UNICODE_RANGE *ranges, - UINT32 *count); + HRESULT(STDMETHODCALLTYPE* GetUnicodeRanges)( + IDWriteFont2* This, + UINT32 max_count, + DWRITE_UNICODE_RANGE* ranges, + UINT32* count); - WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( - IDWriteFont2 *This); + WINBOOL(STDMETHODCALLTYPE* IsMonospacedFont)( + IDWriteFont2* This); - /*** IDWriteFont2 methods ***/ - WINBOOL (STDMETHODCALLTYPE *IsColorFont)( - IDWriteFont2 *This); + /*** IDWriteFont2 methods ***/ + WINBOOL(STDMETHODCALLTYPE* IsColorFont)( + IDWriteFont2* This); - END_INTERFACE + END_INTERFACE } IDWriteFont2Vtbl; interface IDWriteFont2 { - CONST_VTBL IDWriteFont2Vtbl* lpVtbl; + CONST_VTBL IDWriteFont2Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFont2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFont2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFont2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFont2_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFont methods ***/ -#define IDWriteFont2_GetFontFamily(This,family) (This)->lpVtbl->GetFontFamily(This,family) +#define IDWriteFont2_GetFontFamily(This, family) (This)->lpVtbl->GetFontFamily(This, family) #define IDWriteFont2_GetWeight(This) (This)->lpVtbl->GetWeight(This) #define IDWriteFont2_GetStretch(This) (This)->lpVtbl->GetStretch(This) #define IDWriteFont2_GetStyle(This) (This)->lpVtbl->GetStyle(This) #define IDWriteFont2_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) -#define IDWriteFont2_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names) -#define IDWriteFont2_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) +#define IDWriteFont2_GetFaceNames(This, names) (This)->lpVtbl->GetFaceNames(This, names) +#define IDWriteFont2_GetInformationalStrings(This, stringid, strings, exists) (This)->lpVtbl->GetInformationalStrings(This, stringid, strings, exists) #define IDWriteFont2_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) -#define IDWriteFont2_HasCharacter(This,value,exists) (This)->lpVtbl->HasCharacter(This,value,exists) -#define IDWriteFont2_CreateFontFace(This,face) (This)->lpVtbl->CreateFontFace(This,face) +#define IDWriteFont2_HasCharacter(This, value, exists) (This)->lpVtbl->HasCharacter(This, value, exists) +#define IDWriteFont2_CreateFontFace(This, face) (This)->lpVtbl->CreateFontFace(This, face) /*** IDWriteFont1 methods ***/ -#define IDWriteFont2_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFont1_GetMetrics(This,metrics) -#define IDWriteFont2_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) -#define IDWriteFont2_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFont2_GetMetrics(This, metrics) (This)->lpVtbl->IDWriteFont1_GetMetrics(This, metrics) +#define IDWriteFont2_GetPanose(This, panose) (This)->lpVtbl->GetPanose(This, panose) +#define IDWriteFont2_GetUnicodeRanges(This, max_count, ranges, count) (This)->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count) #define IDWriteFont2_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) /*** IDWriteFont2 methods ***/ #define IDWriteFont2_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFont2_QueryInterface(IDWriteFont2* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFont2_QueryInterface(IDWriteFont2* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFont2_AddRef(IDWriteFont2* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFont2_Release(IDWriteFont2* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFont methods ***/ -static inline HRESULT IDWriteFont2_GetFontFamily(IDWriteFont2* This,IDWriteFontFamily **family) { - return This->lpVtbl->GetFontFamily(This,family); +static inline HRESULT IDWriteFont2_GetFontFamily(IDWriteFont2* This, IDWriteFontFamily** family) { + return This->lpVtbl->GetFontFamily(This, family); } static inline DWRITE_FONT_WEIGHT IDWriteFont2_GetWeight(IDWriteFont2* This) { - return This->lpVtbl->GetWeight(This); + return This->lpVtbl->GetWeight(This); } static inline DWRITE_FONT_STRETCH IDWriteFont2_GetStretch(IDWriteFont2* This) { - return This->lpVtbl->GetStretch(This); + return This->lpVtbl->GetStretch(This); } static inline DWRITE_FONT_STYLE IDWriteFont2_GetStyle(IDWriteFont2* This) { - return This->lpVtbl->GetStyle(This); + return This->lpVtbl->GetStyle(This); } static inline WINBOOL IDWriteFont2_IsSymbolFont(IDWriteFont2* This) { - return This->lpVtbl->IsSymbolFont(This); + return This->lpVtbl->IsSymbolFont(This); } -static inline HRESULT IDWriteFont2_GetFaceNames(IDWriteFont2* This,IDWriteLocalizedStrings **names) { - return This->lpVtbl->GetFaceNames(This,names); +static inline HRESULT IDWriteFont2_GetFaceNames(IDWriteFont2* This, IDWriteLocalizedStrings** names) { + return This->lpVtbl->GetFaceNames(This, names); } -static inline HRESULT IDWriteFont2_GetInformationalStrings(IDWriteFont2* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { - return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +static inline HRESULT IDWriteFont2_GetInformationalStrings(IDWriteFont2* This, DWRITE_INFORMATIONAL_STRING_ID stringid, IDWriteLocalizedStrings** strings, WINBOOL* exists) { + return This->lpVtbl->GetInformationalStrings(This, stringid, strings, exists); } static inline DWRITE_FONT_SIMULATIONS IDWriteFont2_GetSimulations(IDWriteFont2* This) { - return This->lpVtbl->GetSimulations(This); + return This->lpVtbl->GetSimulations(This); } -static inline HRESULT IDWriteFont2_HasCharacter(IDWriteFont2* This,UINT32 value,WINBOOL *exists) { - return This->lpVtbl->HasCharacter(This,value,exists); +static inline HRESULT IDWriteFont2_HasCharacter(IDWriteFont2* This, UINT32 value, WINBOOL* exists) { + return This->lpVtbl->HasCharacter(This, value, exists); } -static inline HRESULT IDWriteFont2_CreateFontFace(IDWriteFont2* This,IDWriteFontFace **face) { - return This->lpVtbl->CreateFontFace(This,face); +static inline HRESULT IDWriteFont2_CreateFontFace(IDWriteFont2* This, IDWriteFontFace** face) { + return This->lpVtbl->CreateFontFace(This, face); } /*** IDWriteFont1 methods ***/ -static inline void IDWriteFont2_GetMetrics(IDWriteFont2* This,DWRITE_FONT_METRICS1 *metrics) { - This->lpVtbl->IDWriteFont1_GetMetrics(This,metrics); +static inline void IDWriteFont2_GetMetrics(IDWriteFont2* This, DWRITE_FONT_METRICS1* metrics) { + This->lpVtbl->IDWriteFont1_GetMetrics(This, metrics); } -static inline void IDWriteFont2_GetPanose(IDWriteFont2* This,DWRITE_PANOSE *panose) { - This->lpVtbl->GetPanose(This,panose); +static inline void IDWriteFont2_GetPanose(IDWriteFont2* This, DWRITE_PANOSE* panose) { + This->lpVtbl->GetPanose(This, panose); } -static inline HRESULT IDWriteFont2_GetUnicodeRanges(IDWriteFont2* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { - return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +static inline HRESULT IDWriteFont2_GetUnicodeRanges(IDWriteFont2* This, UINT32 max_count, DWRITE_UNICODE_RANGE* ranges, UINT32* count) { + return This->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count); } static inline WINBOOL IDWriteFont2_IsMonospacedFont(IDWriteFont2* This) { - return This->lpVtbl->IsMonospacedFont(This); + return This->lpVtbl->IsMonospacedFont(This); } /*** IDWriteFont2 methods ***/ static inline WINBOOL IDWriteFont2_IsColorFont(IDWriteFont2* This) { - return This->lpVtbl->IsColorFont(This); + return This->lpVtbl->IsColorFont(This); } #endif #endif #endif - -#endif /* __IDWriteFont2_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFont2_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontFace2 interface @@ -2281,396 +2253,390 @@ static inline WINBOOL IDWriteFont2_IsColorFont(IDWriteFont2* This) { #ifndef __IDWriteFontFace2_INTERFACE_DEFINED__ #define __IDWriteFontFace2_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontFace2, 0xd8b768ff, 0x64bc, 0x4e66, 0x98,0x2b, 0xec,0x8e,0x87,0xf6,0x93,0xf7); +DEFINE_GUID(IID_IDWriteFontFace2, 0xd8b768ff, 0x64bc, 0x4e66, 0x98, 0x2b, 0xec, 0x8e, 0x87, 0xf6, 0x93, 0xf7); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("d8b768ff-64bc-4e66-982b-ec8e87f693f7") -IDWriteFontFace2 : public IDWriteFontFace1 -{ - virtual WINBOOL STDMETHODCALLTYPE IsColorFont( - ) = 0; +IDWriteFontFace2 : public IDWriteFontFace1 { + virtual WINBOOL STDMETHODCALLTYPE IsColorFont() = 0; - virtual UINT32 STDMETHODCALLTYPE GetColorPaletteCount( - ) = 0; + virtual UINT32 STDMETHODCALLTYPE GetColorPaletteCount() = 0; - virtual UINT32 STDMETHODCALLTYPE GetPaletteEntryCount( - ) = 0; + virtual UINT32 STDMETHODCALLTYPE GetPaletteEntryCount() = 0; - virtual HRESULT STDMETHODCALLTYPE GetPaletteEntries( - UINT32 palette_index, - UINT32 first_entry_index, - UINT32 entry_count, - DWRITE_COLOR_F *entries) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode( - FLOAT fontEmSize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX *transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuringmode, - IDWriteRenderingParams *params, - DWRITE_RENDERING_MODE *renderingmode, - DWRITE_GRID_FIT_MODE *gridfitmode) = 0; + virtual HRESULT STDMETHODCALLTYPE GetPaletteEntries( + UINT32 palette_index, + UINT32 first_entry_index, + UINT32 entry_count, + DWRITE_COLOR_F * entries) = 0; + virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode( + FLOAT fontEmSize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX* transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuringmode, + IDWriteRenderingParams* params, + DWRITE_RENDERING_MODE* renderingmode, + DWRITE_GRID_FIT_MODE* gridfitmode) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFace2, 0xd8b768ff, 0x64bc, 0x4e66, 0x98,0x2b, 0xec,0x8e,0x87,0xf6,0x93,0xf7) +__CRT_UUID_DECL(IDWriteFontFace2, 0xd8b768ff, 0x64bc, 0x4e66, 0x98, 0x2b, 0xec, 0x8e, 0x87, 0xf6, 0x93, 0xf7) #endif #else typedef struct IDWriteFontFace2Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontFace2 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontFace2* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontFace2 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontFace2* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontFace2 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontFace2* This); - /*** IDWriteFontFace methods ***/ - DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( - IDWriteFontFace2 *This); + /*** IDWriteFontFace methods ***/ + DWRITE_FONT_FACE_TYPE(STDMETHODCALLTYPE* GetType)( + IDWriteFontFace2* This); - HRESULT (STDMETHODCALLTYPE *GetFiles)( - IDWriteFontFace2 *This, - UINT32 *number_of_files, - IDWriteFontFile **fontfiles); + HRESULT(STDMETHODCALLTYPE* GetFiles)( + IDWriteFontFace2* This, + UINT32* number_of_files, + IDWriteFontFile** fontfiles); - UINT32 (STDMETHODCALLTYPE *GetIndex)( - IDWriteFontFace2 *This); + UINT32(STDMETHODCALLTYPE* GetIndex)( + IDWriteFontFace2* This); - DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( - IDWriteFontFace2 *This); + DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( + IDWriteFontFace2* This); - WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( - IDWriteFontFace2 *This); + WINBOOL(STDMETHODCALLTYPE* IsSymbolFont)( + IDWriteFontFace2* This); - void (STDMETHODCALLTYPE *GetMetrics)( - IDWriteFontFace2 *This, - DWRITE_FONT_METRICS *metrics); + void(STDMETHODCALLTYPE* GetMetrics)( + IDWriteFontFace2* This, + DWRITE_FONT_METRICS* metrics); - UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( - IDWriteFontFace2 *This); + UINT16(STDMETHODCALLTYPE* GetGlyphCount)( + IDWriteFontFace2* This); - HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( - IDWriteFontFace2 *This, - const UINT16 *glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS *metrics, - WINBOOL is_sideways); + HRESULT(STDMETHODCALLTYPE* GetDesignGlyphMetrics)( + IDWriteFontFace2* This, + const UINT16* glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS* metrics, + WINBOOL is_sideways); - HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( - IDWriteFontFace2 *This, - const UINT32 *codepoints, - UINT32 count, - UINT16 *glyph_indices); + HRESULT(STDMETHODCALLTYPE* GetGlyphIndices)( + IDWriteFontFace2* This, + const UINT32* codepoints, + UINT32 count, + UINT16* glyph_indices); - HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( - IDWriteFontFace2 *This, - UINT32 table_tag, - const void **table_data, - UINT32 *table_size, - void **context, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* TryGetFontTable)( + IDWriteFontFace2* This, + UINT32 table_tag, + const void** table_data, + UINT32* table_size, + void** context, + WINBOOL* exists); - void (STDMETHODCALLTYPE *ReleaseFontTable)( - IDWriteFontFace2 *This, - void *table_context); + void(STDMETHODCALLTYPE* ReleaseFontTable)( + IDWriteFontFace2* This, + void* table_context); - HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( - IDWriteFontFace2 *This, - FLOAT emSize, - const UINT16 *glyph_indices, - const FLOAT *glyph_advances, - const DWRITE_GLYPH_OFFSET *glyph_offsets, - UINT32 glyph_count, - WINBOOL is_sideways, - WINBOOL is_rtl, - IDWriteGeometrySink *geometrysink); + HRESULT(STDMETHODCALLTYPE* GetGlyphRunOutline)( + IDWriteFontFace2* This, + FLOAT emSize, + const UINT16* glyph_indices, + const FLOAT* glyph_advances, + const DWRITE_GLYPH_OFFSET* glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink* geometrysink); - HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( - IDWriteFontFace2 *This, - FLOAT emSize, - FLOAT pixels_per_dip, - DWRITE_MEASURING_MODE mode, - IDWriteRenderingParams *params, - DWRITE_RENDERING_MODE *rendering_mode); + HRESULT(STDMETHODCALLTYPE* GetRecommendedRenderingMode)( + IDWriteFontFace2* This, + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams* params, + DWRITE_RENDERING_MODE* rendering_mode); - HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( - IDWriteFontFace2 *This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_FONT_METRICS *metrics); + HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleMetrics)( + IDWriteFontFace2* This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_FONT_METRICS* metrics); - HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( - IDWriteFontFace2 *This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - const UINT16 *glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS *metrics, - WINBOOL is_sideways); + HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphMetrics)( + IDWriteFontFace2* This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + const UINT16* glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS* metrics, + WINBOOL is_sideways); - /*** IDWriteFontFace1 methods ***/ - void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)( - IDWriteFontFace2 *This, - DWRITE_FONT_METRICS1 *metrics); + /*** IDWriteFontFace1 methods ***/ + void(STDMETHODCALLTYPE* IDWriteFontFace1_GetMetrics)( + IDWriteFontFace2* This, + DWRITE_FONT_METRICS1* metrics); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)( - IDWriteFontFace2 *This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_FONT_METRICS1 *metrics); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetGdiCompatibleMetrics)( + IDWriteFontFace2* This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_FONT_METRICS1* metrics); - void (STDMETHODCALLTYPE *GetCaretMetrics)( - IDWriteFontFace2 *This, - DWRITE_CARET_METRICS *metrics); + void(STDMETHODCALLTYPE* GetCaretMetrics)( + IDWriteFontFace2* This, + DWRITE_CARET_METRICS* metrics); - HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( - IDWriteFontFace2 *This, - UINT32 max_count, - DWRITE_UNICODE_RANGE *ranges, - UINT32 *count); + HRESULT(STDMETHODCALLTYPE* GetUnicodeRanges)( + IDWriteFontFace2* This, + UINT32 max_count, + DWRITE_UNICODE_RANGE* ranges, + UINT32* count); - WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( - IDWriteFontFace2 *This); + WINBOOL(STDMETHODCALLTYPE* IsMonospacedFont)( + IDWriteFontFace2* This); - HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)( - IDWriteFontFace2 *This, - UINT32 glyph_count, - const UINT16 *indices, - INT32 *advances, - WINBOOL is_sideways); + HRESULT(STDMETHODCALLTYPE* GetDesignGlyphAdvances)( + IDWriteFontFace2* This, + UINT32 glyph_count, + const UINT16* indices, + INT32* advances, + WINBOOL is_sideways); - HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)( - IDWriteFontFace2 *This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - WINBOOL is_sideways, - UINT32 glyph_count, - const UINT16 *indices, - INT32 *advances); + HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphAdvances)( + IDWriteFontFace2* This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + UINT32 glyph_count, + const UINT16* indices, + INT32* advances); - HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)( - IDWriteFontFace2 *This, - UINT32 glyph_count, - const UINT16 *indices, - INT32 *adjustments); + HRESULT(STDMETHODCALLTYPE* GetKerningPairAdjustments)( + IDWriteFontFace2* This, + UINT32 glyph_count, + const UINT16* indices, + INT32* adjustments); - WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)( - IDWriteFontFace2 *This); + WINBOOL(STDMETHODCALLTYPE* HasKerningPairs)( + IDWriteFontFace2* This); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)( - IDWriteFontFace2 *This, - FLOAT font_emsize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX *transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_RENDERING_MODE *rendering_mode); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetRecommendedRenderingMode)( + IDWriteFontFace2* This, + FLOAT font_emsize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX* transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_RENDERING_MODE* rendering_mode); - HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)( - IDWriteFontFace2 *This, - UINT32 glyph_count, - const UINT16 *nominal_indices, - UINT16 *vertical_indices); + HRESULT(STDMETHODCALLTYPE* GetVerticalGlyphVariants)( + IDWriteFontFace2* This, + UINT32 glyph_count, + const UINT16* nominal_indices, + UINT16* vertical_indices); - WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)( - IDWriteFontFace2 *This); + WINBOOL(STDMETHODCALLTYPE* HasVerticalGlyphVariants)( + IDWriteFontFace2* This); - /*** IDWriteFontFace2 methods ***/ - WINBOOL (STDMETHODCALLTYPE *IsColorFont)( - IDWriteFontFace2 *This); + /*** IDWriteFontFace2 methods ***/ + WINBOOL(STDMETHODCALLTYPE* IsColorFont)( + IDWriteFontFace2* This); - UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)( - IDWriteFontFace2 *This); + UINT32(STDMETHODCALLTYPE* GetColorPaletteCount)( + IDWriteFontFace2* This); - UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)( - IDWriteFontFace2 *This); + UINT32(STDMETHODCALLTYPE* GetPaletteEntryCount)( + IDWriteFontFace2* This); - HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)( - IDWriteFontFace2 *This, - UINT32 palette_index, - UINT32 first_entry_index, - UINT32 entry_count, - DWRITE_COLOR_F *entries); + HRESULT(STDMETHODCALLTYPE* GetPaletteEntries)( + IDWriteFontFace2* This, + UINT32 palette_index, + UINT32 first_entry_index, + UINT32 entry_count, + DWRITE_COLOR_F* entries); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)( - IDWriteFontFace2 *This, - FLOAT fontEmSize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX *transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuringmode, - IDWriteRenderingParams *params, - DWRITE_RENDERING_MODE *renderingmode, - DWRITE_GRID_FIT_MODE *gridfitmode); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace2_GetRecommendedRenderingMode)( + IDWriteFontFace2* This, + FLOAT fontEmSize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX* transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuringmode, + IDWriteRenderingParams* params, + DWRITE_RENDERING_MODE* renderingmode, + DWRITE_GRID_FIT_MODE* gridfitmode); - END_INTERFACE + END_INTERFACE } IDWriteFontFace2Vtbl; interface IDWriteFontFace2 { - CONST_VTBL IDWriteFontFace2Vtbl* lpVtbl; + CONST_VTBL IDWriteFontFace2Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontFace2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFace2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontFace2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontFace2_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontFace methods ***/ #define IDWriteFontFace2_GetType(This) (This)->lpVtbl->GetType(This) -#define IDWriteFontFace2_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) +#define IDWriteFontFace2_GetFiles(This, number_of_files, fontfiles) (This)->lpVtbl->GetFiles(This, number_of_files, fontfiles) #define IDWriteFontFace2_GetIndex(This) (This)->lpVtbl->GetIndex(This) #define IDWriteFontFace2_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) #define IDWriteFontFace2_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) #define IDWriteFontFace2_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) -#define IDWriteFontFace2_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) -#define IDWriteFontFace2_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) -#define IDWriteFontFace2_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) -#define IDWriteFontFace2_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) -#define IDWriteFontFace2_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) -#define IDWriteFontFace2_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) +#define IDWriteFontFace2_GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) +#define IDWriteFontFace2_GetGlyphIndices(This, codepoints, count, glyph_indices) (This)->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices) +#define IDWriteFontFace2_TryGetFontTable(This, table_tag, table_data, table_size, context, exists) (This)->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists) +#define IDWriteFontFace2_ReleaseFontTable(This, table_context) (This)->lpVtbl->ReleaseFontTable(This, table_context) +#define IDWriteFontFace2_GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) +#define IDWriteFontFace2_GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) /*** IDWriteFontFace1 methods ***/ -#define IDWriteFontFace2_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics) -#define IDWriteFontFace2_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) -#define IDWriteFontFace2_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics) -#define IDWriteFontFace2_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFontFace2_GetMetrics(This, metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics) +#define IDWriteFontFace2_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) +#define IDWriteFontFace2_GetCaretMetrics(This, metrics) (This)->lpVtbl->GetCaretMetrics(This, metrics) +#define IDWriteFontFace2_GetUnicodeRanges(This, max_count, ranges, count) (This)->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count) #define IDWriteFontFace2_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) -#define IDWriteFontFace2_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) -#define IDWriteFontFace2_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) -#define IDWriteFontFace2_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments) +#define IDWriteFontFace2_GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) +#define IDWriteFontFace2_GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) +#define IDWriteFontFace2_GetKerningPairAdjustments(This, glyph_count, indices, adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments) #define IDWriteFontFace2_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) -#define IDWriteFontFace2_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) +#define IDWriteFontFace2_GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) #define IDWriteFontFace2_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) /*** IDWriteFontFace2 methods ***/ #define IDWriteFontFace2_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) #define IDWriteFontFace2_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) #define IDWriteFontFace2_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) -#define IDWriteFontFace2_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) -#define IDWriteFontFace2_GetRecommendedRenderingMode(This,fontEmSize,dpiX,dpiY,transform,is_sideways,threshold,measuringmode,params,renderingmode,gridfitmode) (This)->lpVtbl->IDWriteFontFace2_GetRecommendedRenderingMode(This,fontEmSize,dpiX,dpiY,transform,is_sideways,threshold,measuringmode,params,renderingmode,gridfitmode) +#define IDWriteFontFace2_GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) (This)->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) +#define IDWriteFontFace2_GetRecommendedRenderingMode(This, fontEmSize, dpiX, dpiY, transform, is_sideways, threshold, measuringmode, params, renderingmode, gridfitmode) (This)->lpVtbl->IDWriteFontFace2_GetRecommendedRenderingMode(This, fontEmSize, dpiX, dpiY, transform, is_sideways, threshold, measuringmode, params, renderingmode, gridfitmode) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFace2_QueryInterface(IDWriteFontFace2* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontFace2_QueryInterface(IDWriteFontFace2* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontFace2_AddRef(IDWriteFontFace2* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontFace2_Release(IDWriteFontFace2* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontFace methods ***/ static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace2_GetType(IDWriteFontFace2* This) { - return This->lpVtbl->GetType(This); + return This->lpVtbl->GetType(This); } -static inline HRESULT IDWriteFontFace2_GetFiles(IDWriteFontFace2* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { - return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); +static inline HRESULT IDWriteFontFace2_GetFiles(IDWriteFontFace2* This, UINT32* number_of_files, IDWriteFontFile** fontfiles) { + return This->lpVtbl->GetFiles(This, number_of_files, fontfiles); } static inline UINT32 IDWriteFontFace2_GetIndex(IDWriteFontFace2* This) { - return This->lpVtbl->GetIndex(This); + return This->lpVtbl->GetIndex(This); } static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace2_GetSimulations(IDWriteFontFace2* This) { - return This->lpVtbl->GetSimulations(This); + return This->lpVtbl->GetSimulations(This); } static inline WINBOOL IDWriteFontFace2_IsSymbolFont(IDWriteFontFace2* This) { - return This->lpVtbl->IsSymbolFont(This); + return This->lpVtbl->IsSymbolFont(This); } static inline UINT16 IDWriteFontFace2_GetGlyphCount(IDWriteFontFace2* This) { - return This->lpVtbl->GetGlyphCount(This); + return This->lpVtbl->GetGlyphCount(This); } -static inline HRESULT IDWriteFontFace2_GetDesignGlyphMetrics(IDWriteFontFace2* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); +static inline HRESULT IDWriteFontFace2_GetDesignGlyphMetrics(IDWriteFontFace2* This, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways); } -static inline HRESULT IDWriteFontFace2_GetGlyphIndices(IDWriteFontFace2* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { - return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); +static inline HRESULT IDWriteFontFace2_GetGlyphIndices(IDWriteFontFace2* This, const UINT32* codepoints, UINT32 count, UINT16* glyph_indices) { + return This->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices); } -static inline HRESULT IDWriteFontFace2_TryGetFontTable(IDWriteFontFace2* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { - return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); +static inline HRESULT IDWriteFontFace2_TryGetFontTable(IDWriteFontFace2* This, UINT32 table_tag, const void** table_data, UINT32* table_size, void** context, WINBOOL* exists) { + return This->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists); } -static inline void IDWriteFontFace2_ReleaseFontTable(IDWriteFontFace2* This,void *table_context) { - This->lpVtbl->ReleaseFontTable(This,table_context); +static inline void IDWriteFontFace2_ReleaseFontTable(IDWriteFontFace2* This, void* table_context) { + This->lpVtbl->ReleaseFontTable(This, table_context); } -static inline HRESULT IDWriteFontFace2_GetGlyphRunOutline(IDWriteFontFace2* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) { - return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); +static inline HRESULT IDWriteFontFace2_GetGlyphRunOutline(IDWriteFontFace2* This, FLOAT emSize, const UINT16* glyph_indices, const FLOAT* glyph_advances, const DWRITE_GLYPH_OFFSET* glyph_offsets, UINT32 glyph_count, WINBOOL is_sideways, WINBOOL is_rtl, IDWriteGeometrySink* geometrysink) { + return This->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink); } -static inline HRESULT IDWriteFontFace2_GetGdiCompatibleGlyphMetrics(IDWriteFontFace2* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { - return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); +static inline HRESULT IDWriteFontFace2_GetGdiCompatibleGlyphMetrics(IDWriteFontFace2* This, FLOAT emSize, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { + return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways); } /*** IDWriteFontFace1 methods ***/ -static inline void IDWriteFontFace2_GetMetrics(IDWriteFontFace2* This,DWRITE_FONT_METRICS1 *metrics) { - This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics); +static inline void IDWriteFontFace2_GetMetrics(IDWriteFontFace2* This, DWRITE_FONT_METRICS1* metrics) { + This->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics); } -static inline HRESULT IDWriteFontFace2_GetGdiCompatibleMetrics(IDWriteFontFace2* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) { - return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics); +static inline HRESULT IDWriteFontFace2_GetGdiCompatibleMetrics(IDWriteFontFace2* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, DWRITE_FONT_METRICS1* metrics) { + return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics); } -static inline void IDWriteFontFace2_GetCaretMetrics(IDWriteFontFace2* This,DWRITE_CARET_METRICS *metrics) { - This->lpVtbl->GetCaretMetrics(This,metrics); +static inline void IDWriteFontFace2_GetCaretMetrics(IDWriteFontFace2* This, DWRITE_CARET_METRICS* metrics) { + This->lpVtbl->GetCaretMetrics(This, metrics); } -static inline HRESULT IDWriteFontFace2_GetUnicodeRanges(IDWriteFontFace2* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { - return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +static inline HRESULT IDWriteFontFace2_GetUnicodeRanges(IDWriteFontFace2* This, UINT32 max_count, DWRITE_UNICODE_RANGE* ranges, UINT32* count) { + return This->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count); } static inline WINBOOL IDWriteFontFace2_IsMonospacedFont(IDWriteFontFace2* This) { - return This->lpVtbl->IsMonospacedFont(This); + return This->lpVtbl->IsMonospacedFont(This); } -static inline HRESULT IDWriteFontFace2_GetDesignGlyphAdvances(IDWriteFontFace2* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways); +static inline HRESULT IDWriteFontFace2_GetDesignGlyphAdvances(IDWriteFontFace2* This, UINT32 glyph_count, const UINT16* indices, INT32* advances, WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways); } -static inline HRESULT IDWriteFontFace2_GetGdiCompatibleGlyphAdvances(IDWriteFontFace2* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) { - return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances); +static inline HRESULT IDWriteFontFace2_GetGdiCompatibleGlyphAdvances(IDWriteFontFace2* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, WINBOOL is_sideways, UINT32 glyph_count, const UINT16* indices, INT32* advances) { + return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances); } -static inline HRESULT IDWriteFontFace2_GetKerningPairAdjustments(IDWriteFontFace2* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) { - return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments); +static inline HRESULT IDWriteFontFace2_GetKerningPairAdjustments(IDWriteFontFace2* This, UINT32 glyph_count, const UINT16* indices, INT32* adjustments) { + return This->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments); } static inline WINBOOL IDWriteFontFace2_HasKerningPairs(IDWriteFontFace2* This) { - return This->lpVtbl->HasKerningPairs(This); + return This->lpVtbl->HasKerningPairs(This); } -static inline HRESULT IDWriteFontFace2_GetVerticalGlyphVariants(IDWriteFontFace2* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) { - return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices); +static inline HRESULT IDWriteFontFace2_GetVerticalGlyphVariants(IDWriteFontFace2* This, UINT32 glyph_count, const UINT16* nominal_indices, UINT16* vertical_indices) { + return This->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices); } static inline WINBOOL IDWriteFontFace2_HasVerticalGlyphVariants(IDWriteFontFace2* This) { - return This->lpVtbl->HasVerticalGlyphVariants(This); + return This->lpVtbl->HasVerticalGlyphVariants(This); } /*** IDWriteFontFace2 methods ***/ static inline WINBOOL IDWriteFontFace2_IsColorFont(IDWriteFontFace2* This) { - return This->lpVtbl->IsColorFont(This); + return This->lpVtbl->IsColorFont(This); } static inline UINT32 IDWriteFontFace2_GetColorPaletteCount(IDWriteFontFace2* This) { - return This->lpVtbl->GetColorPaletteCount(This); + return This->lpVtbl->GetColorPaletteCount(This); } static inline UINT32 IDWriteFontFace2_GetPaletteEntryCount(IDWriteFontFace2* This) { - return This->lpVtbl->GetPaletteEntryCount(This); + return This->lpVtbl->GetPaletteEntryCount(This); } -static inline HRESULT IDWriteFontFace2_GetPaletteEntries(IDWriteFontFace2* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) { - return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries); +static inline HRESULT IDWriteFontFace2_GetPaletteEntries(IDWriteFontFace2* This, UINT32 palette_index, UINT32 first_entry_index, UINT32 entry_count, DWRITE_COLOR_F* entries) { + return This->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries); } -static inline HRESULT IDWriteFontFace2_GetRecommendedRenderingMode(IDWriteFontFace2* This,FLOAT fontEmSize,FLOAT dpiX,FLOAT dpiY,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuringmode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE *renderingmode,DWRITE_GRID_FIT_MODE *gridfitmode) { - return This->lpVtbl->IDWriteFontFace2_GetRecommendedRenderingMode(This,fontEmSize,dpiX,dpiY,transform,is_sideways,threshold,measuringmode,params,renderingmode,gridfitmode); +static inline HRESULT IDWriteFontFace2_GetRecommendedRenderingMode(IDWriteFontFace2* This, FLOAT fontEmSize, FLOAT dpiX, FLOAT dpiY, const DWRITE_MATRIX* transform, WINBOOL is_sideways, DWRITE_OUTLINE_THRESHOLD threshold, DWRITE_MEASURING_MODE measuringmode, IDWriteRenderingParams* params, DWRITE_RENDERING_MODE* renderingmode, DWRITE_GRID_FIT_MODE* gridfitmode) { + return This->lpVtbl->IDWriteFontFace2_GetRecommendedRenderingMode(This, fontEmSize, dpiX, dpiY, transform, is_sideways, threshold, measuringmode, params, renderingmode, gridfitmode); } #endif #endif #endif - -#endif /* __IDWriteFontFace2_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontFace2_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteColorGlyphRunEnumerator interface @@ -2678,87 +2644,84 @@ static inline HRESULT IDWriteFontFace2_GetRecommendedRenderingMode(IDWriteFontFa #ifndef __IDWriteColorGlyphRunEnumerator_INTERFACE_DEFINED__ #define __IDWriteColorGlyphRunEnumerator_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteColorGlyphRunEnumerator, 0xd31fbe17, 0xf157, 0x41a2, 0x8d,0x24, 0xcb,0x77,0x9e,0x05,0x60,0xe8); +DEFINE_GUID(IID_IDWriteColorGlyphRunEnumerator, 0xd31fbe17, 0xf157, 0x41a2, 0x8d, 0x24, 0xcb, 0x77, 0x9e, 0x05, 0x60, 0xe8); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("d31fbe17-f157-41a2-8d24-cb779e0560e8") -IDWriteColorGlyphRunEnumerator : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE MoveNext( - WINBOOL *hasRun) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentRun( - const DWRITE_COLOR_GLYPH_RUN **run) = 0; +IDWriteColorGlyphRunEnumerator : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE MoveNext( + WINBOOL * hasRun) = 0; + virtual HRESULT STDMETHODCALLTYPE GetCurrentRun( + const DWRITE_COLOR_GLYPH_RUN** run) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteColorGlyphRunEnumerator, 0xd31fbe17, 0xf157, 0x41a2, 0x8d,0x24, 0xcb,0x77,0x9e,0x05,0x60,0xe8) +__CRT_UUID_DECL(IDWriteColorGlyphRunEnumerator, 0xd31fbe17, 0xf157, 0x41a2, 0x8d, 0x24, 0xcb, 0x77, 0x9e, 0x05, 0x60, 0xe8) #endif #else typedef struct IDWriteColorGlyphRunEnumeratorVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteColorGlyphRunEnumerator *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteColorGlyphRunEnumerator* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteColorGlyphRunEnumerator *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteColorGlyphRunEnumerator* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteColorGlyphRunEnumerator *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteColorGlyphRunEnumerator* This); - /*** IDWriteColorGlyphRunEnumerator methods ***/ - HRESULT (STDMETHODCALLTYPE *MoveNext)( - IDWriteColorGlyphRunEnumerator *This, - WINBOOL *hasRun); + /*** IDWriteColorGlyphRunEnumerator methods ***/ + HRESULT(STDMETHODCALLTYPE* MoveNext)( + IDWriteColorGlyphRunEnumerator* This, + WINBOOL* hasRun); - HRESULT (STDMETHODCALLTYPE *GetCurrentRun)( - IDWriteColorGlyphRunEnumerator *This, - const DWRITE_COLOR_GLYPH_RUN **run); + HRESULT(STDMETHODCALLTYPE* GetCurrentRun)( + IDWriteColorGlyphRunEnumerator* This, + const DWRITE_COLOR_GLYPH_RUN** run); - END_INTERFACE + END_INTERFACE } IDWriteColorGlyphRunEnumeratorVtbl; interface IDWriteColorGlyphRunEnumerator { - CONST_VTBL IDWriteColorGlyphRunEnumeratorVtbl* lpVtbl; + CONST_VTBL IDWriteColorGlyphRunEnumeratorVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteColorGlyphRunEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteColorGlyphRunEnumerator_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteColorGlyphRunEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteColorGlyphRunEnumerator_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteColorGlyphRunEnumerator methods ***/ -#define IDWriteColorGlyphRunEnumerator_MoveNext(This,hasRun) (This)->lpVtbl->MoveNext(This,hasRun) -#define IDWriteColorGlyphRunEnumerator_GetCurrentRun(This,run) (This)->lpVtbl->GetCurrentRun(This,run) +#define IDWriteColorGlyphRunEnumerator_MoveNext(This, hasRun) (This)->lpVtbl->MoveNext(This, hasRun) +#define IDWriteColorGlyphRunEnumerator_GetCurrentRun(This, run) (This)->lpVtbl->GetCurrentRun(This, run) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteColorGlyphRunEnumerator_QueryInterface(IDWriteColorGlyphRunEnumerator* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteColorGlyphRunEnumerator_QueryInterface(IDWriteColorGlyphRunEnumerator* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteColorGlyphRunEnumerator_AddRef(IDWriteColorGlyphRunEnumerator* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteColorGlyphRunEnumerator_Release(IDWriteColorGlyphRunEnumerator* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteColorGlyphRunEnumerator methods ***/ -static inline HRESULT IDWriteColorGlyphRunEnumerator_MoveNext(IDWriteColorGlyphRunEnumerator* This,WINBOOL *hasRun) { - return This->lpVtbl->MoveNext(This,hasRun); +static inline HRESULT IDWriteColorGlyphRunEnumerator_MoveNext(IDWriteColorGlyphRunEnumerator* This, WINBOOL* hasRun) { + return This->lpVtbl->MoveNext(This, hasRun); } -static inline HRESULT IDWriteColorGlyphRunEnumerator_GetCurrentRun(IDWriteColorGlyphRunEnumerator* This,const DWRITE_COLOR_GLYPH_RUN **run) { - return This->lpVtbl->GetCurrentRun(This,run); +static inline HRESULT IDWriteColorGlyphRunEnumerator_GetCurrentRun(IDWriteColorGlyphRunEnumerator* This, const DWRITE_COLOR_GLYPH_RUN** run) { + return This->lpVtbl->GetCurrentRun(This, run); } #endif #endif #endif - -#endif /* __IDWriteColorGlyphRunEnumerator_INTERFACE_DEFINED__ */ +#endif /* __IDWriteColorGlyphRunEnumerator_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteRenderingParams2 interface @@ -2766,69 +2729,66 @@ static inline HRESULT IDWriteColorGlyphRunEnumerator_GetCurrentRun(IDWriteColorG #ifndef __IDWriteRenderingParams2_INTERFACE_DEFINED__ #define __IDWriteRenderingParams2_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteRenderingParams2, 0xf9d711c3, 0x9777, 0x40ae, 0x87,0xe8, 0x3e,0x5a,0xf9,0xbf,0x09,0x48); +DEFINE_GUID(IID_IDWriteRenderingParams2, 0xf9d711c3, 0x9777, 0x40ae, 0x87, 0xe8, 0x3e, 0x5a, 0xf9, 0xbf, 0x09, 0x48); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("f9d711c3-9777-40ae-87e8-3e5af9bf0948") -IDWriteRenderingParams2 : public IDWriteRenderingParams1 -{ - virtual DWRITE_GRID_FIT_MODE STDMETHODCALLTYPE GetGridFitMode( - ) = 0; - +IDWriteRenderingParams2 : public IDWriteRenderingParams1 { + virtual DWRITE_GRID_FIT_MODE STDMETHODCALLTYPE GetGridFitMode() = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteRenderingParams2, 0xf9d711c3, 0x9777, 0x40ae, 0x87,0xe8, 0x3e,0x5a,0xf9,0xbf,0x09,0x48) +__CRT_UUID_DECL(IDWriteRenderingParams2, 0xf9d711c3, 0x9777, 0x40ae, 0x87, 0xe8, 0x3e, 0x5a, 0xf9, 0xbf, 0x09, 0x48) #endif #else typedef struct IDWriteRenderingParams2Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteRenderingParams2 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteRenderingParams2* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteRenderingParams2 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteRenderingParams2* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteRenderingParams2 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteRenderingParams2* This); - /*** IDWriteRenderingParams methods ***/ - FLOAT (STDMETHODCALLTYPE *GetGamma)( - IDWriteRenderingParams2 *This); + /*** IDWriteRenderingParams methods ***/ + FLOAT(STDMETHODCALLTYPE* GetGamma)( + IDWriteRenderingParams2* This); - FLOAT (STDMETHODCALLTYPE *GetEnhancedContrast)( - IDWriteRenderingParams2 *This); + FLOAT(STDMETHODCALLTYPE* GetEnhancedContrast)( + IDWriteRenderingParams2* This); - FLOAT (STDMETHODCALLTYPE *GetClearTypeLevel)( - IDWriteRenderingParams2 *This); + FLOAT(STDMETHODCALLTYPE* GetClearTypeLevel)( + IDWriteRenderingParams2* This); - DWRITE_PIXEL_GEOMETRY (STDMETHODCALLTYPE *GetPixelGeometry)( - IDWriteRenderingParams2 *This); + DWRITE_PIXEL_GEOMETRY(STDMETHODCALLTYPE* GetPixelGeometry)( + IDWriteRenderingParams2* This); - DWRITE_RENDERING_MODE (STDMETHODCALLTYPE *GetRenderingMode)( - IDWriteRenderingParams2 *This); + DWRITE_RENDERING_MODE(STDMETHODCALLTYPE* GetRenderingMode)( + IDWriteRenderingParams2* This); - /*** IDWriteRenderingParams1 methods ***/ - FLOAT (STDMETHODCALLTYPE *GetGrayscaleEnhancedContrast)( - IDWriteRenderingParams2 *This); + /*** IDWriteRenderingParams1 methods ***/ + FLOAT(STDMETHODCALLTYPE* GetGrayscaleEnhancedContrast)( + IDWriteRenderingParams2* This); - /*** IDWriteRenderingParams2 methods ***/ - DWRITE_GRID_FIT_MODE (STDMETHODCALLTYPE *GetGridFitMode)( - IDWriteRenderingParams2 *This); + /*** IDWriteRenderingParams2 methods ***/ + DWRITE_GRID_FIT_MODE(STDMETHODCALLTYPE* GetGridFitMode)( + IDWriteRenderingParams2* This); - END_INTERFACE + END_INTERFACE } IDWriteRenderingParams2Vtbl; interface IDWriteRenderingParams2 { - CONST_VTBL IDWriteRenderingParams2Vtbl* lpVtbl; + CONST_VTBL IDWriteRenderingParams2Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteRenderingParams2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteRenderingParams2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteRenderingParams2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteRenderingParams2_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteRenderingParams methods ***/ @@ -2843,46 +2803,45 @@ interface IDWriteRenderingParams2 { #define IDWriteRenderingParams2_GetGridFitMode(This) (This)->lpVtbl->GetGridFitMode(This) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteRenderingParams2_QueryInterface(IDWriteRenderingParams2* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteRenderingParams2_QueryInterface(IDWriteRenderingParams2* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteRenderingParams2_AddRef(IDWriteRenderingParams2* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteRenderingParams2_Release(IDWriteRenderingParams2* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteRenderingParams methods ***/ static inline FLOAT IDWriteRenderingParams2_GetGamma(IDWriteRenderingParams2* This) { - return This->lpVtbl->GetGamma(This); + return This->lpVtbl->GetGamma(This); } static inline FLOAT IDWriteRenderingParams2_GetEnhancedContrast(IDWriteRenderingParams2* This) { - return This->lpVtbl->GetEnhancedContrast(This); + return This->lpVtbl->GetEnhancedContrast(This); } static inline FLOAT IDWriteRenderingParams2_GetClearTypeLevel(IDWriteRenderingParams2* This) { - return This->lpVtbl->GetClearTypeLevel(This); + return This->lpVtbl->GetClearTypeLevel(This); } static inline DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams2_GetPixelGeometry(IDWriteRenderingParams2* This) { - return This->lpVtbl->GetPixelGeometry(This); + return This->lpVtbl->GetPixelGeometry(This); } static inline DWRITE_RENDERING_MODE IDWriteRenderingParams2_GetRenderingMode(IDWriteRenderingParams2* This) { - return This->lpVtbl->GetRenderingMode(This); + return This->lpVtbl->GetRenderingMode(This); } /*** IDWriteRenderingParams1 methods ***/ static inline FLOAT IDWriteRenderingParams2_GetGrayscaleEnhancedContrast(IDWriteRenderingParams2* This) { - return This->lpVtbl->GetGrayscaleEnhancedContrast(This); + return This->lpVtbl->GetGrayscaleEnhancedContrast(This); } /*** IDWriteRenderingParams2 methods ***/ static inline DWRITE_GRID_FIT_MODE IDWriteRenderingParams2_GetGridFitMode(IDWriteRenderingParams2* This) { - return This->lpVtbl->GetGridFitMode(This); + return This->lpVtbl->GetGridFitMode(This); } #endif #endif #endif - -#endif /* __IDWriteRenderingParams2_INTERFACE_DEFINED__ */ +#endif /* __IDWriteRenderingParams2_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFactory2 interface @@ -2890,404 +2849,400 @@ static inline DWRITE_GRID_FIT_MODE IDWriteRenderingParams2_GetGridFitMode(IDWrit #ifndef __IDWriteFactory2_INTERFACE_DEFINED__ #define __IDWriteFactory2_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFactory2, 0x0439fc60, 0xca44, 0x4994, 0x8d,0xee, 0x3a,0x9a,0xf7,0xb7,0x32,0xec); +DEFINE_GUID(IID_IDWriteFactory2, 0x0439fc60, 0xca44, 0x4994, 0x8d, 0xee, 0x3a, 0x9a, 0xf7, 0xb7, 0x32, 0xec); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("0439fc60-ca44-4994-8dee-3a9af7b732ec") -IDWriteFactory2 : public IDWriteFactory1 -{ - virtual HRESULT STDMETHODCALLTYPE GetSystemFontFallback( - IDWriteFontFallback **fallback) = 0; +IDWriteFactory2 : public IDWriteFactory1 { + virtual HRESULT STDMETHODCALLTYPE GetSystemFontFallback( + IDWriteFontFallback * *fallback) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateFontFallbackBuilder( - IDWriteFontFallbackBuilder **fallbackbuilder) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateFontFallbackBuilder( + IDWriteFontFallbackBuilder * *fallbackbuilder) = 0; - virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun( - FLOAT originX, - FLOAT originY, - const DWRITE_GLYPH_RUN *run, - const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, - DWRITE_MEASURING_MODE mode, - const DWRITE_MATRIX *transform, - UINT32 palette_index, - IDWriteColorGlyphRunEnumerator **colorlayers) = 0; + virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun( + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN* run, + const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX* transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator** colorlayers) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams( - FLOAT gamma, - FLOAT contrast, - FLOAT grayscalecontrast, - FLOAT cleartypeLevel, - DWRITE_PIXEL_GEOMETRY pixelGeometry, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_GRID_FIT_MODE gridFitMode, - IDWriteRenderingParams2 **params) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateGlyphRunAnalysis( - const DWRITE_GLYPH_RUN *run, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_MEASURING_MODE measuringMode, - DWRITE_GRID_FIT_MODE gridFitMode, - DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, - FLOAT originX, - FLOAT originY, - IDWriteGlyphRunAnalysis **analysis) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams( + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2 * *params) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateGlyphRunAnalysis( + const DWRITE_GLYPH_RUN* run, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis** analysis) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFactory2, 0x0439fc60, 0xca44, 0x4994, 0x8d,0xee, 0x3a,0x9a,0xf7,0xb7,0x32,0xec) +__CRT_UUID_DECL(IDWriteFactory2, 0x0439fc60, 0xca44, 0x4994, 0x8d, 0xee, 0x3a, 0x9a, 0xf7, 0xb7, 0x32, 0xec) #endif #else typedef struct IDWriteFactory2Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFactory2 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFactory2* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFactory2 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFactory2* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFactory2 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFactory2* This); - /*** IDWriteFactory methods ***/ - HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( - IDWriteFactory2 *This, - IDWriteFontCollection **collection, - WINBOOL check_for_updates); + /*** IDWriteFactory methods ***/ + HRESULT(STDMETHODCALLTYPE* GetSystemFontCollection)( + IDWriteFactory2* This, + IDWriteFontCollection** collection, + WINBOOL check_for_updates); - HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( - IDWriteFactory2 *This, - IDWriteFontCollectionLoader *loader, - const void *key, - UINT32 key_size, - IDWriteFontCollection **collection); + HRESULT(STDMETHODCALLTYPE* CreateCustomFontCollection)( + IDWriteFactory2* This, + IDWriteFontCollectionLoader* loader, + const void* key, + UINT32 key_size, + IDWriteFontCollection** collection); - HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( - IDWriteFactory2 *This, - IDWriteFontCollectionLoader *loader); + HRESULT(STDMETHODCALLTYPE* RegisterFontCollectionLoader)( + IDWriteFactory2* This, + IDWriteFontCollectionLoader* loader); - HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( - IDWriteFactory2 *This, - IDWriteFontCollectionLoader *loader); + HRESULT(STDMETHODCALLTYPE* UnregisterFontCollectionLoader)( + IDWriteFactory2* This, + IDWriteFontCollectionLoader* loader); - HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( - IDWriteFactory2 *This, - const WCHAR *path, - const FILETIME *writetime, - IDWriteFontFile **font_file); + HRESULT(STDMETHODCALLTYPE* CreateFontFileReference)( + IDWriteFactory2* This, + const WCHAR* path, + const FILETIME* writetime, + IDWriteFontFile** font_file); - HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( - IDWriteFactory2 *This, - const void *reference_key, - UINT32 key_size, - IDWriteFontFileLoader *loader, - IDWriteFontFile **font_file); + HRESULT(STDMETHODCALLTYPE* CreateCustomFontFileReference)( + IDWriteFactory2* This, + const void* reference_key, + UINT32 key_size, + IDWriteFontFileLoader* loader, + IDWriteFontFile** font_file); - HRESULT (STDMETHODCALLTYPE *CreateFontFace)( - IDWriteFactory2 *This, - DWRITE_FONT_FACE_TYPE facetype, - UINT32 files_number, - IDWriteFontFile *const *font_files, - UINT32 index, - DWRITE_FONT_SIMULATIONS sim_flags, - IDWriteFontFace **font_face); + HRESULT(STDMETHODCALLTYPE* CreateFontFace)( + IDWriteFactory2* This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile* const* font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace** font_face); - HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( - IDWriteFactory2 *This, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateRenderingParams)( + IDWriteFactory2* This, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( - IDWriteFactory2 *This, - HMONITOR monitor, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateMonitorRenderingParams)( + IDWriteFactory2* This, + HMONITOR monitor, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( - IDWriteFactory2 *This, - FLOAT gamma, - FLOAT enhancedContrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateCustomRenderingParams)( + IDWriteFactory2* This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( - IDWriteFactory2 *This, - IDWriteFontFileLoader *loader); + HRESULT(STDMETHODCALLTYPE* RegisterFontFileLoader)( + IDWriteFactory2* This, + IDWriteFontFileLoader* loader); - HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( - IDWriteFactory2 *This, - IDWriteFontFileLoader *loader); + HRESULT(STDMETHODCALLTYPE* UnregisterFontFileLoader)( + IDWriteFactory2* This, + IDWriteFontFileLoader* loader); - HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( - IDWriteFactory2 *This, - const WCHAR *family_name, - IDWriteFontCollection *collection, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STYLE style, - DWRITE_FONT_STRETCH stretch, - FLOAT size, - const WCHAR *locale, - IDWriteTextFormat **format); + HRESULT(STDMETHODCALLTYPE* CreateTextFormat)( + IDWriteFactory2* This, + const WCHAR* family_name, + IDWriteFontCollection* collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR* locale, + IDWriteTextFormat** format); - HRESULT (STDMETHODCALLTYPE *CreateTypography)( - IDWriteFactory2 *This, - IDWriteTypography **typography); + HRESULT(STDMETHODCALLTYPE* CreateTypography)( + IDWriteFactory2* This, + IDWriteTypography** typography); - HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( - IDWriteFactory2 *This, - IDWriteGdiInterop **gdi_interop); + HRESULT(STDMETHODCALLTYPE* GetGdiInterop)( + IDWriteFactory2* This, + IDWriteGdiInterop** gdi_interop); - HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( - IDWriteFactory2 *This, - const WCHAR *string, - UINT32 len, - IDWriteTextFormat *format, - FLOAT max_width, - FLOAT max_height, - IDWriteTextLayout **layout); + HRESULT(STDMETHODCALLTYPE* CreateTextLayout)( + IDWriteFactory2* This, + const WCHAR* string, + UINT32 len, + IDWriteTextFormat* format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout** layout); - HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( - IDWriteFactory2 *This, - const WCHAR *string, - UINT32 len, - IDWriteTextFormat *format, - FLOAT layout_width, - FLOAT layout_height, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - IDWriteTextLayout **layout); + HRESULT(STDMETHODCALLTYPE* CreateGdiCompatibleTextLayout)( + IDWriteFactory2* This, + const WCHAR* string, + UINT32 len, + IDWriteTextFormat* format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout** layout); - HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( - IDWriteFactory2 *This, - IDWriteTextFormat *format, - IDWriteInlineObject **trimming_sign); + HRESULT(STDMETHODCALLTYPE* CreateEllipsisTrimmingSign)( + IDWriteFactory2* This, + IDWriteTextFormat* format, + IDWriteInlineObject** trimming_sign); - HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( - IDWriteFactory2 *This, - IDWriteTextAnalyzer **analyzer); + HRESULT(STDMETHODCALLTYPE* CreateTextAnalyzer)( + IDWriteFactory2* This, + IDWriteTextAnalyzer** analyzer); - HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( - IDWriteFactory2 *This, - DWRITE_NUMBER_SUBSTITUTION_METHOD method, - const WCHAR *locale, - WINBOOL ignore_user_override, - IDWriteNumberSubstitution **substitution); + HRESULT(STDMETHODCALLTYPE* CreateNumberSubstitution)( + IDWriteFactory2* This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR* locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution** substitution); - HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( - IDWriteFactory2 *This, - const DWRITE_GLYPH_RUN *glyph_run, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - FLOAT baseline_x, - FLOAT baseline_y, - IDWriteGlyphRunAnalysis **analysis); + HRESULT(STDMETHODCALLTYPE* CreateGlyphRunAnalysis)( + IDWriteFactory2* This, + const DWRITE_GLYPH_RUN* glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis** analysis); - /*** IDWriteFactory1 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( - IDWriteFactory2 *This, - IDWriteFontCollection **collection, - WINBOOL check_for_updates); + /*** IDWriteFactory1 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetEudcFontCollection)( + IDWriteFactory2* This, + IDWriteFontCollection** collection, + WINBOOL check_for_updates); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( - IDWriteFactory2 *This, - FLOAT gamma, - FLOAT enhcontrast, - FLOAT enhcontrast_grayscale, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams1 **params); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory1_CreateCustomRenderingParams)( + IDWriteFactory2* This, + FLOAT gamma, + FLOAT enhcontrast, + FLOAT enhcontrast_grayscale, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams1** params); - /*** IDWriteFactory2 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)( - IDWriteFactory2 *This, - IDWriteFontFallback **fallback); + /*** IDWriteFactory2 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetSystemFontFallback)( + IDWriteFactory2* This, + IDWriteFontFallback** fallback); - HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)( - IDWriteFactory2 *This, - IDWriteFontFallbackBuilder **fallbackbuilder); + HRESULT(STDMETHODCALLTYPE* CreateFontFallbackBuilder)( + IDWriteFactory2* This, + IDWriteFontFallbackBuilder** fallbackbuilder); - HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)( - IDWriteFactory2 *This, - FLOAT originX, - FLOAT originY, - const DWRITE_GLYPH_RUN *run, - const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, - DWRITE_MEASURING_MODE mode, - const DWRITE_MATRIX *transform, - UINT32 palette_index, - IDWriteColorGlyphRunEnumerator **colorlayers); + HRESULT(STDMETHODCALLTYPE* TranslateColorGlyphRun)( + IDWriteFactory2* This, + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN* run, + const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX* transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator** colorlayers); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)( - IDWriteFactory2 *This, - FLOAT gamma, - FLOAT contrast, - FLOAT grayscalecontrast, - FLOAT cleartypeLevel, - DWRITE_PIXEL_GEOMETRY pixelGeometry, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_GRID_FIT_MODE gridFitMode, - IDWriteRenderingParams2 **params); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateCustomRenderingParams)( + IDWriteFactory2* This, + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2** params); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)( - IDWriteFactory2 *This, - const DWRITE_GLYPH_RUN *run, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_MEASURING_MODE measuringMode, - DWRITE_GRID_FIT_MODE gridFitMode, - DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, - FLOAT originX, - FLOAT originY, - IDWriteGlyphRunAnalysis **analysis); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateGlyphRunAnalysis)( + IDWriteFactory2* This, + const DWRITE_GLYPH_RUN* run, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis** analysis); - END_INTERFACE + END_INTERFACE } IDWriteFactory2Vtbl; interface IDWriteFactory2 { - CONST_VTBL IDWriteFactory2Vtbl* lpVtbl; + CONST_VTBL IDWriteFactory2Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFactory2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFactory2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFactory2_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFactory methods ***/ -#define IDWriteFactory2_GetSystemFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetSystemFontCollection(This,collection,check_for_updates) -#define IDWriteFactory2_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) -#define IDWriteFactory2_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) -#define IDWriteFactory2_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) -#define IDWriteFactory2_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) -#define IDWriteFactory2_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) -#define IDWriteFactory2_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) -#define IDWriteFactory2_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) -#define IDWriteFactory2_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) -#define IDWriteFactory2_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) -#define IDWriteFactory2_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) -#define IDWriteFactory2_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) -#define IDWriteFactory2_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) -#define IDWriteFactory2_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) -#define IDWriteFactory2_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) -#define IDWriteFactory2_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) -#define IDWriteFactory2_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) -#define IDWriteFactory2_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) -#define IDWriteFactory2_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +#define IDWriteFactory2_GetSystemFontCollection(This, collection, check_for_updates) (This)->lpVtbl->GetSystemFontCollection(This, collection, check_for_updates) +#define IDWriteFactory2_CreateCustomFontCollection(This, loader, key, key_size, collection) (This)->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection) +#define IDWriteFactory2_RegisterFontCollectionLoader(This, loader) (This)->lpVtbl->RegisterFontCollectionLoader(This, loader) +#define IDWriteFactory2_UnregisterFontCollectionLoader(This, loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This, loader) +#define IDWriteFactory2_CreateFontFileReference(This, path, writetime, font_file) (This)->lpVtbl->CreateFontFileReference(This, path, writetime, font_file) +#define IDWriteFactory2_CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) (This)->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) +#define IDWriteFactory2_CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) (This)->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) +#define IDWriteFactory2_CreateRenderingParams(This, params) (This)->lpVtbl->CreateRenderingParams(This, params) +#define IDWriteFactory2_CreateMonitorRenderingParams(This, monitor, params) (This)->lpVtbl->CreateMonitorRenderingParams(This, monitor, params) +#define IDWriteFactory2_RegisterFontFileLoader(This, loader) (This)->lpVtbl->RegisterFontFileLoader(This, loader) +#define IDWriteFactory2_UnregisterFontFileLoader(This, loader) (This)->lpVtbl->UnregisterFontFileLoader(This, loader) +#define IDWriteFactory2_CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format) (This)->lpVtbl->CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format) +#define IDWriteFactory2_CreateTypography(This, typography) (This)->lpVtbl->CreateTypography(This, typography) +#define IDWriteFactory2_GetGdiInterop(This, gdi_interop) (This)->lpVtbl->GetGdiInterop(This, gdi_interop) +#define IDWriteFactory2_CreateTextLayout(This, string, len, format, max_width, max_height, layout) (This)->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout) +#define IDWriteFactory2_CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) +#define IDWriteFactory2_CreateEllipsisTrimmingSign(This, format, trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign) +#define IDWriteFactory2_CreateTextAnalyzer(This, analyzer) (This)->lpVtbl->CreateTextAnalyzer(This, analyzer) +#define IDWriteFactory2_CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) (This)->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) /*** IDWriteFactory1 methods ***/ -#define IDWriteFactory2_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) +#define IDWriteFactory2_GetEudcFontCollection(This, collection, check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates) /*** IDWriteFactory2 methods ***/ -#define IDWriteFactory2_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback) -#define IDWriteFactory2_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder) -#define IDWriteFactory2_TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers) (This)->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers) -#define IDWriteFactory2_CreateCustomRenderingParams(This,gamma,contrast,grayscalecontrast,cleartypeLevel,pixelGeometry,renderingMode,gridFitMode,params) (This)->lpVtbl->IDWriteFactory2_CreateCustomRenderingParams(This,gamma,contrast,grayscalecontrast,cleartypeLevel,pixelGeometry,renderingMode,gridFitMode,params) -#define IDWriteFactory2_CreateGlyphRunAnalysis(This,run,transform,renderingMode,measuringMode,gridFitMode,antialiasMode,originX,originY,analysis) (This)->lpVtbl->IDWriteFactory2_CreateGlyphRunAnalysis(This,run,transform,renderingMode,measuringMode,gridFitMode,antialiasMode,originX,originY,analysis) +#define IDWriteFactory2_GetSystemFontFallback(This, fallback) (This)->lpVtbl->GetSystemFontFallback(This, fallback) +#define IDWriteFactory2_CreateFontFallbackBuilder(This, fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder) +#define IDWriteFactory2_TranslateColorGlyphRun(This, originX, originY, run, rundescr, mode, transform, palette_index, colorlayers) (This)->lpVtbl->TranslateColorGlyphRun(This, originX, originY, run, rundescr, mode, transform, palette_index, colorlayers) +#define IDWriteFactory2_CreateCustomRenderingParams(This, gamma, contrast, grayscalecontrast, cleartypeLevel, pixelGeometry, renderingMode, gridFitMode, params) (This)->lpVtbl->IDWriteFactory2_CreateCustomRenderingParams(This, gamma, contrast, grayscalecontrast, cleartypeLevel, pixelGeometry, renderingMode, gridFitMode, params) +#define IDWriteFactory2_CreateGlyphRunAnalysis(This, run, transform, renderingMode, measuringMode, gridFitMode, antialiasMode, originX, originY, analysis) (This)->lpVtbl->IDWriteFactory2_CreateGlyphRunAnalysis(This, run, transform, renderingMode, measuringMode, gridFitMode, antialiasMode, originX, originY, analysis) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFactory2_QueryInterface(IDWriteFactory2* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFactory2_QueryInterface(IDWriteFactory2* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFactory2_AddRef(IDWriteFactory2* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFactory2_Release(IDWriteFactory2* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFactory methods ***/ -static inline HRESULT IDWriteFactory2_GetSystemFontCollection(IDWriteFactory2* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { - return This->lpVtbl->GetSystemFontCollection(This,collection,check_for_updates); +static inline HRESULT IDWriteFactory2_GetSystemFontCollection(IDWriteFactory2* This, IDWriteFontCollection** collection, WINBOOL check_for_updates) { + return This->lpVtbl->GetSystemFontCollection(This, collection, check_for_updates); } -static inline HRESULT IDWriteFactory2_CreateCustomFontCollection(IDWriteFactory2* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { - return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +static inline HRESULT IDWriteFactory2_CreateCustomFontCollection(IDWriteFactory2* This, IDWriteFontCollectionLoader* loader, const void* key, UINT32 key_size, IDWriteFontCollection** collection) { + return This->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection); } -static inline HRESULT IDWriteFactory2_RegisterFontCollectionLoader(IDWriteFactory2* This,IDWriteFontCollectionLoader *loader) { - return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +static inline HRESULT IDWriteFactory2_RegisterFontCollectionLoader(IDWriteFactory2* This, IDWriteFontCollectionLoader* loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This, loader); } -static inline HRESULT IDWriteFactory2_UnregisterFontCollectionLoader(IDWriteFactory2* This,IDWriteFontCollectionLoader *loader) { - return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +static inline HRESULT IDWriteFactory2_UnregisterFontCollectionLoader(IDWriteFactory2* This, IDWriteFontCollectionLoader* loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This, loader); } -static inline HRESULT IDWriteFactory2_CreateFontFileReference(IDWriteFactory2* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { - return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +static inline HRESULT IDWriteFactory2_CreateFontFileReference(IDWriteFactory2* This, const WCHAR* path, const FILETIME* writetime, IDWriteFontFile** font_file) { + return This->lpVtbl->CreateFontFileReference(This, path, writetime, font_file); } -static inline HRESULT IDWriteFactory2_CreateCustomFontFileReference(IDWriteFactory2* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { - return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +static inline HRESULT IDWriteFactory2_CreateCustomFontFileReference(IDWriteFactory2* This, const void* reference_key, UINT32 key_size, IDWriteFontFileLoader* loader, IDWriteFontFile** font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file); } -static inline HRESULT IDWriteFactory2_CreateFontFace(IDWriteFactory2* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { - return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +static inline HRESULT IDWriteFactory2_CreateFontFace(IDWriteFactory2* This, DWRITE_FONT_FACE_TYPE facetype, UINT32 files_number, IDWriteFontFile* const* font_files, UINT32 index, DWRITE_FONT_SIMULATIONS sim_flags, IDWriteFontFace** font_face) { + return This->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face); } -static inline HRESULT IDWriteFactory2_CreateRenderingParams(IDWriteFactory2* This,IDWriteRenderingParams **params) { - return This->lpVtbl->CreateRenderingParams(This,params); +static inline HRESULT IDWriteFactory2_CreateRenderingParams(IDWriteFactory2* This, IDWriteRenderingParams** params) { + return This->lpVtbl->CreateRenderingParams(This, params); } -static inline HRESULT IDWriteFactory2_CreateMonitorRenderingParams(IDWriteFactory2* This,HMONITOR monitor,IDWriteRenderingParams **params) { - return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +static inline HRESULT IDWriteFactory2_CreateMonitorRenderingParams(IDWriteFactory2* This, HMONITOR monitor, IDWriteRenderingParams** params) { + return This->lpVtbl->CreateMonitorRenderingParams(This, monitor, params); } -static inline HRESULT IDWriteFactory2_RegisterFontFileLoader(IDWriteFactory2* This,IDWriteFontFileLoader *loader) { - return This->lpVtbl->RegisterFontFileLoader(This,loader); +static inline HRESULT IDWriteFactory2_RegisterFontFileLoader(IDWriteFactory2* This, IDWriteFontFileLoader* loader) { + return This->lpVtbl->RegisterFontFileLoader(This, loader); } -static inline HRESULT IDWriteFactory2_UnregisterFontFileLoader(IDWriteFactory2* This,IDWriteFontFileLoader *loader) { - return This->lpVtbl->UnregisterFontFileLoader(This,loader); +static inline HRESULT IDWriteFactory2_UnregisterFontFileLoader(IDWriteFactory2* This, IDWriteFontFileLoader* loader) { + return This->lpVtbl->UnregisterFontFileLoader(This, loader); } -static inline HRESULT IDWriteFactory2_CreateTextFormat(IDWriteFactory2* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) { - return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format); +static inline HRESULT IDWriteFactory2_CreateTextFormat(IDWriteFactory2* This, const WCHAR* family_name, IDWriteFontCollection* collection, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STYLE style, DWRITE_FONT_STRETCH stretch, FLOAT size, const WCHAR* locale, IDWriteTextFormat** format) { + return This->lpVtbl->CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format); } -static inline HRESULT IDWriteFactory2_CreateTypography(IDWriteFactory2* This,IDWriteTypography **typography) { - return This->lpVtbl->CreateTypography(This,typography); +static inline HRESULT IDWriteFactory2_CreateTypography(IDWriteFactory2* This, IDWriteTypography** typography) { + return This->lpVtbl->CreateTypography(This, typography); } -static inline HRESULT IDWriteFactory2_GetGdiInterop(IDWriteFactory2* This,IDWriteGdiInterop **gdi_interop) { - return This->lpVtbl->GetGdiInterop(This,gdi_interop); +static inline HRESULT IDWriteFactory2_GetGdiInterop(IDWriteFactory2* This, IDWriteGdiInterop** gdi_interop) { + return This->lpVtbl->GetGdiInterop(This, gdi_interop); } -static inline HRESULT IDWriteFactory2_CreateTextLayout(IDWriteFactory2* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { - return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +static inline HRESULT IDWriteFactory2_CreateTextLayout(IDWriteFactory2* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT max_width, FLOAT max_height, IDWriteTextLayout** layout) { + return This->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout); } -static inline HRESULT IDWriteFactory2_CreateGdiCompatibleTextLayout(IDWriteFactory2* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { - return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +static inline HRESULT IDWriteFactory2_CreateGdiCompatibleTextLayout(IDWriteFactory2* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT layout_width, FLOAT layout_height, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, IDWriteTextLayout** layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout); } -static inline HRESULT IDWriteFactory2_CreateEllipsisTrimmingSign(IDWriteFactory2* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { - return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +static inline HRESULT IDWriteFactory2_CreateEllipsisTrimmingSign(IDWriteFactory2* This, IDWriteTextFormat* format, IDWriteInlineObject** trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign); } -static inline HRESULT IDWriteFactory2_CreateTextAnalyzer(IDWriteFactory2* This,IDWriteTextAnalyzer **analyzer) { - return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +static inline HRESULT IDWriteFactory2_CreateTextAnalyzer(IDWriteFactory2* This, IDWriteTextAnalyzer** analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This, analyzer); } -static inline HRESULT IDWriteFactory2_CreateNumberSubstitution(IDWriteFactory2* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { - return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +static inline HRESULT IDWriteFactory2_CreateNumberSubstitution(IDWriteFactory2* This, DWRITE_NUMBER_SUBSTITUTION_METHOD method, const WCHAR* locale, WINBOOL ignore_user_override, IDWriteNumberSubstitution** substitution) { + return This->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution); } /*** IDWriteFactory1 methods ***/ -static inline HRESULT IDWriteFactory2_GetEudcFontCollection(IDWriteFactory2* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { - return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); +static inline HRESULT IDWriteFactory2_GetEudcFontCollection(IDWriteFactory2* This, IDWriteFontCollection** collection, WINBOOL check_for_updates) { + return This->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates); } /*** IDWriteFactory2 methods ***/ -static inline HRESULT IDWriteFactory2_GetSystemFontFallback(IDWriteFactory2* This,IDWriteFontFallback **fallback) { - return This->lpVtbl->GetSystemFontFallback(This,fallback); +static inline HRESULT IDWriteFactory2_GetSystemFontFallback(IDWriteFactory2* This, IDWriteFontFallback** fallback) { + return This->lpVtbl->GetSystemFontFallback(This, fallback); } -static inline HRESULT IDWriteFactory2_CreateFontFallbackBuilder(IDWriteFactory2* This,IDWriteFontFallbackBuilder **fallbackbuilder) { - return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); +static inline HRESULT IDWriteFactory2_CreateFontFallbackBuilder(IDWriteFactory2* This, IDWriteFontFallbackBuilder** fallbackbuilder) { + return This->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder); } -static inline HRESULT IDWriteFactory2_TranslateColorGlyphRun(IDWriteFactory2* This,FLOAT originX,FLOAT originY,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,DWRITE_MEASURING_MODE mode,const DWRITE_MATRIX *transform,UINT32 palette_index,IDWriteColorGlyphRunEnumerator **colorlayers) { - return This->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers); +static inline HRESULT IDWriteFactory2_TranslateColorGlyphRun(IDWriteFactory2* This, FLOAT originX, FLOAT originY, const DWRITE_GLYPH_RUN* run, const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, DWRITE_MEASURING_MODE mode, const DWRITE_MATRIX* transform, UINT32 palette_index, IDWriteColorGlyphRunEnumerator** colorlayers) { + return This->lpVtbl->TranslateColorGlyphRun(This, originX, originY, run, rundescr, mode, transform, palette_index, colorlayers); } -static inline HRESULT IDWriteFactory2_CreateCustomRenderingParams(IDWriteFactory2* This,FLOAT gamma,FLOAT contrast,FLOAT grayscalecontrast,FLOAT cleartypeLevel,DWRITE_PIXEL_GEOMETRY pixelGeometry,DWRITE_RENDERING_MODE renderingMode,DWRITE_GRID_FIT_MODE gridFitMode,IDWriteRenderingParams2 **params) { - return This->lpVtbl->IDWriteFactory2_CreateCustomRenderingParams(This,gamma,contrast,grayscalecontrast,cleartypeLevel,pixelGeometry,renderingMode,gridFitMode,params); +static inline HRESULT IDWriteFactory2_CreateCustomRenderingParams(IDWriteFactory2* This, FLOAT gamma, FLOAT contrast, FLOAT grayscalecontrast, FLOAT cleartypeLevel, DWRITE_PIXEL_GEOMETRY pixelGeometry, DWRITE_RENDERING_MODE renderingMode, DWRITE_GRID_FIT_MODE gridFitMode, IDWriteRenderingParams2** params) { + return This->lpVtbl->IDWriteFactory2_CreateCustomRenderingParams(This, gamma, contrast, grayscalecontrast, cleartypeLevel, pixelGeometry, renderingMode, gridFitMode, params); } -static inline HRESULT IDWriteFactory2_CreateGlyphRunAnalysis(IDWriteFactory2* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE renderingMode,DWRITE_MEASURING_MODE measuringMode,DWRITE_GRID_FIT_MODE gridFitMode,DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,FLOAT originX,FLOAT originY,IDWriteGlyphRunAnalysis **analysis) { - return This->lpVtbl->IDWriteFactory2_CreateGlyphRunAnalysis(This,run,transform,renderingMode,measuringMode,gridFitMode,antialiasMode,originX,originY,analysis); +static inline HRESULT IDWriteFactory2_CreateGlyphRunAnalysis(IDWriteFactory2* This, const DWRITE_GLYPH_RUN* run, const DWRITE_MATRIX* transform, DWRITE_RENDERING_MODE renderingMode, DWRITE_MEASURING_MODE measuringMode, DWRITE_GRID_FIT_MODE gridFitMode, DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, FLOAT originX, FLOAT originY, IDWriteGlyphRunAnalysis** analysis) { + return This->lpVtbl->IDWriteFactory2_CreateGlyphRunAnalysis(This, run, transform, renderingMode, measuringMode, gridFitMode, antialiasMode, originX, originY, analysis); } #endif #endif #endif - -#endif /* __IDWriteFactory2_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFactory2_INTERFACE_DEFINED__ */ /* Begin additional prototypes for all interfaces */ - /* End additional prototypes */ #ifdef __cplusplus diff --git a/src/text/dwrite_3.h b/src/text/dwrite_3.h index c2b6f85ae..2f41e39ce 100644 --- a/src/text/dwrite_3.h +++ b/src/text/dwrite_3.h @@ -473,201 +473,201 @@ typedef struct FONTSIGNATURE FONTSIGNATURE; #endif /* _WINGDI_ */ typedef struct D2D1_GRADIENT_STOP D2D1_GRADIENT_STOP; typedef enum DWRITE_COLOR_COMPOSITE_MODE { - DWRITE_COLOR_COMPOSITE_CLEAR = 0, - DWRITE_COLOR_COMPOSITE_SRC = 1, - DWRITE_COLOR_COMPOSITE_DEST = 2, - DWRITE_COLOR_COMPOSITE_SRC_OVER = 3, - DWRITE_COLOR_COMPOSITE_DEST_OVER = 4, - DWRITE_COLOR_COMPOSITE_SRC_IN = 5, - DWRITE_COLOR_COMPOSITE_DEST_IN = 6, - DWRITE_COLOR_COMPOSITE_SRC_OUT = 7, - DWRITE_COLOR_COMPOSITE_DEST_OUT = 8, - DWRITE_COLOR_COMPOSITE_SRC_ATOP = 9, - DWRITE_COLOR_COMPOSITE_DEST_ATOP = 10, - DWRITE_COLOR_COMPOSITE_XOR = 11, - DWRITE_COLOR_COMPOSITE_PLUS = 12, - DWRITE_COLOR_COMPOSITE_SCREEN = 13, - DWRITE_COLOR_COMPOSITE_OVERLAY = 14, - DWRITE_COLOR_COMPOSITE_DARKEN = 15, - DWRITE_COLOR_COMPOSITE_LIGHTEN = 16, - DWRITE_COLOR_COMPOSITE_COLOR_DODGE = 17, - DWRITE_COLOR_COMPOSITE_COLOR_BURN = 18, - DWRITE_COLOR_COMPOSITE_HARD_LIGHT = 19, - DWRITE_COLOR_COMPOSITE_SOFT_LIGHT = 20, - DWRITE_COLOR_COMPOSITE_DIFFERENCE = 21, - DWRITE_COLOR_COMPOSITE_EXCLUSION = 22, - DWRITE_COLOR_COMPOSITE_MULTIPLY = 23, - DWRITE_COLOR_COMPOSITE_HSL_HUE = 24, - DWRITE_COLOR_COMPOSITE_HSL_SATURATION = 25, - DWRITE_COLOR_COMPOSITE_HSL_COLOR = 26, - DWRITE_COLOR_COMPOSITE_HSL_LUMINOSITY = 27 + DWRITE_COLOR_COMPOSITE_CLEAR = 0, + DWRITE_COLOR_COMPOSITE_SRC = 1, + DWRITE_COLOR_COMPOSITE_DEST = 2, + DWRITE_COLOR_COMPOSITE_SRC_OVER = 3, + DWRITE_COLOR_COMPOSITE_DEST_OVER = 4, + DWRITE_COLOR_COMPOSITE_SRC_IN = 5, + DWRITE_COLOR_COMPOSITE_DEST_IN = 6, + DWRITE_COLOR_COMPOSITE_SRC_OUT = 7, + DWRITE_COLOR_COMPOSITE_DEST_OUT = 8, + DWRITE_COLOR_COMPOSITE_SRC_ATOP = 9, + DWRITE_COLOR_COMPOSITE_DEST_ATOP = 10, + DWRITE_COLOR_COMPOSITE_XOR = 11, + DWRITE_COLOR_COMPOSITE_PLUS = 12, + DWRITE_COLOR_COMPOSITE_SCREEN = 13, + DWRITE_COLOR_COMPOSITE_OVERLAY = 14, + DWRITE_COLOR_COMPOSITE_DARKEN = 15, + DWRITE_COLOR_COMPOSITE_LIGHTEN = 16, + DWRITE_COLOR_COMPOSITE_COLOR_DODGE = 17, + DWRITE_COLOR_COMPOSITE_COLOR_BURN = 18, + DWRITE_COLOR_COMPOSITE_HARD_LIGHT = 19, + DWRITE_COLOR_COMPOSITE_SOFT_LIGHT = 20, + DWRITE_COLOR_COMPOSITE_DIFFERENCE = 21, + DWRITE_COLOR_COMPOSITE_EXCLUSION = 22, + DWRITE_COLOR_COMPOSITE_MULTIPLY = 23, + DWRITE_COLOR_COMPOSITE_HSL_HUE = 24, + DWRITE_COLOR_COMPOSITE_HSL_SATURATION = 25, + DWRITE_COLOR_COMPOSITE_HSL_COLOR = 26, + DWRITE_COLOR_COMPOSITE_HSL_LUMINOSITY = 27 } DWRITE_COLOR_COMPOSITE_MODE; typedef enum DWRITE_LOCALITY { - DWRITE_LOCALITY_REMOTE = 0, - DWRITE_LOCALITY_PARTIAL = 1, - DWRITE_LOCALITY_LOCAL = 2 + DWRITE_LOCALITY_REMOTE = 0, + DWRITE_LOCALITY_PARTIAL = 1, + DWRITE_LOCALITY_LOCAL = 2 } DWRITE_LOCALITY; typedef enum DWRITE_RENDERING_MODE1 { - DWRITE_RENDERING_MODE1_DEFAULT = 0, - DWRITE_RENDERING_MODE1_ALIASED = 1, - DWRITE_RENDERING_MODE1_GDI_CLASSIC = 2, - DWRITE_RENDERING_MODE1_GDI_NATURAL = 3, - DWRITE_RENDERING_MODE1_NATURAL = 4, - DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC = 5, - DWRITE_RENDERING_MODE1_OUTLINE = 6, - DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC_DOWNSAMPLED = 7 + DWRITE_RENDERING_MODE1_DEFAULT = 0, + DWRITE_RENDERING_MODE1_ALIASED = 1, + DWRITE_RENDERING_MODE1_GDI_CLASSIC = 2, + DWRITE_RENDERING_MODE1_GDI_NATURAL = 3, + DWRITE_RENDERING_MODE1_NATURAL = 4, + DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC = 5, + DWRITE_RENDERING_MODE1_OUTLINE = 6, + DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC_DOWNSAMPLED = 7 } DWRITE_RENDERING_MODE1; typedef enum DWRITE_FONT_PROPERTY_ID { - DWRITE_FONT_PROPERTY_ID_NONE = 0, - DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME = 1, - DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME = 2, - DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME = 3, - DWRITE_FONT_PROPERTY_ID_FULL_NAME = 4, - DWRITE_FONT_PROPERTY_ID_WIN32_FAMILY_NAME = 5, - DWRITE_FONT_PROPERTY_ID_POSTSCRIPT_NAME = 6, - DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG = 7, - DWRITE_FONT_PROPERTY_ID_SUPPORTED_SCRIPT_LANGUAGE_TAG = 8, - DWRITE_FONT_PROPERTY_ID_SEMANTIC_TAG = 9, - DWRITE_FONT_PROPERTY_ID_WEIGHT = 10, - DWRITE_FONT_PROPERTY_ID_STRETCH = 11, - DWRITE_FONT_PROPERTY_ID_STYLE = 12, - DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME = 13, - DWRITE_FONT_PROPERTY_ID_TOTAL = DWRITE_FONT_PROPERTY_ID_STYLE + 1, - DWRITE_FONT_PROPERTY_ID_TOTAL_RS3 = DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME + 1, - DWRITE_FONT_PROPERTY_ID_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME, - DWRITE_FONT_PROPERTY_ID_PREFERRED_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME, - DWRITE_FONT_PROPERTY_ID_FACE_NAME = DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME + DWRITE_FONT_PROPERTY_ID_NONE = 0, + DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME = 1, + DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME = 2, + DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME = 3, + DWRITE_FONT_PROPERTY_ID_FULL_NAME = 4, + DWRITE_FONT_PROPERTY_ID_WIN32_FAMILY_NAME = 5, + DWRITE_FONT_PROPERTY_ID_POSTSCRIPT_NAME = 6, + DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG = 7, + DWRITE_FONT_PROPERTY_ID_SUPPORTED_SCRIPT_LANGUAGE_TAG = 8, + DWRITE_FONT_PROPERTY_ID_SEMANTIC_TAG = 9, + DWRITE_FONT_PROPERTY_ID_WEIGHT = 10, + DWRITE_FONT_PROPERTY_ID_STRETCH = 11, + DWRITE_FONT_PROPERTY_ID_STYLE = 12, + DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME = 13, + DWRITE_FONT_PROPERTY_ID_TOTAL = DWRITE_FONT_PROPERTY_ID_STYLE + 1, + DWRITE_FONT_PROPERTY_ID_TOTAL_RS3 = DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME + 1, + DWRITE_FONT_PROPERTY_ID_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME, + DWRITE_FONT_PROPERTY_ID_PREFERRED_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME, + DWRITE_FONT_PROPERTY_ID_FACE_NAME = DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME } DWRITE_FONT_PROPERTY_ID; typedef struct DWRITE_FONT_PROPERTY { - DWRITE_FONT_PROPERTY_ID propertyId; - const WCHAR *propertyValue; - const WCHAR *localeName; + DWRITE_FONT_PROPERTY_ID propertyId; + const WCHAR* propertyValue; + const WCHAR* localeName; } DWRITE_FONT_PROPERTY; #ifdef __cplusplus -#define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (static_cast(DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d))) +#define DWRITE_MAKE_FONT_AXIS_TAG(a, b, c, d) (static_cast(DWRITE_MAKE_OPENTYPE_TAG(a, b, c, d))) #else -#define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d)) +#define DWRITE_MAKE_FONT_AXIS_TAG(a, b, c, d) (DWRITE_MAKE_OPENTYPE_TAG(a, b, c, d)) #endif typedef enum DWRITE_FONT_AXIS_TAG { - DWRITE_FONT_AXIS_TAG_WEIGHT = 0x74686777, - DWRITE_FONT_AXIS_TAG_WIDTH = 0x68746477, - DWRITE_FONT_AXIS_TAG_SLANT = 0x746e6c73, - DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE = 0x7a73706f, - DWRITE_FONT_AXIS_TAG_ITALIC = 0x6c617469 + DWRITE_FONT_AXIS_TAG_WEIGHT = 0x74686777, + DWRITE_FONT_AXIS_TAG_WIDTH = 0x68746477, + DWRITE_FONT_AXIS_TAG_SLANT = 0x746e6c73, + DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE = 0x7a73706f, + DWRITE_FONT_AXIS_TAG_ITALIC = 0x6c617469 } DWRITE_FONT_AXIS_TAG; typedef enum DWRITE_FONT_SOURCE_TYPE { - DWRITE_FONT_SOURCE_TYPE_UNKNOWN = 0, - DWRITE_FONT_SOURCE_TYPE_PER_MACHINE = 1, - DWRITE_FONT_SOURCE_TYPE_PER_USER = 2, - DWRITE_FONT_SOURCE_TYPE_APPX_PACKAGE = 3, - DWRITE_FONT_SOURCE_TYPE_REMOTE_FONT_PROVIDER = 4 + DWRITE_FONT_SOURCE_TYPE_UNKNOWN = 0, + DWRITE_FONT_SOURCE_TYPE_PER_MACHINE = 1, + DWRITE_FONT_SOURCE_TYPE_PER_USER = 2, + DWRITE_FONT_SOURCE_TYPE_APPX_PACKAGE = 3, + DWRITE_FONT_SOURCE_TYPE_REMOTE_FONT_PROVIDER = 4 } DWRITE_FONT_SOURCE_TYPE; typedef struct DWRITE_FONT_AXIS_VALUE { - DWRITE_FONT_AXIS_TAG axisTag; - FLOAT value; + DWRITE_FONT_AXIS_TAG axisTag; + FLOAT value; } DWRITE_FONT_AXIS_VALUE; typedef struct DWRITE_FONT_AXIS_RANGE { - DWRITE_FONT_AXIS_TAG axisTag; - FLOAT minValue; - FLOAT maxValue; + DWRITE_FONT_AXIS_TAG axisTag; + FLOAT minValue; + FLOAT maxValue; } DWRITE_FONT_AXIS_RANGE; typedef enum DWRITE_AUTOMATIC_FONT_AXES { - DWRITE_AUTOMATIC_FONT_AXES_NONE = 0, - DWRITE_AUTOMATIC_FONT_AXES_OPTICAL_SIZE = 1 + DWRITE_AUTOMATIC_FONT_AXES_NONE = 0, + DWRITE_AUTOMATIC_FONT_AXES_OPTICAL_SIZE = 1 } DWRITE_AUTOMATIC_FONT_AXES; typedef enum DWRITE_FONT_AXIS_ATTRIBUTES { - DWRITE_FONT_AXIS_ATTRIBUTES_NONE = 0, - DWRITE_FONT_AXIS_ATTRIBUTES_VARIABLE = 1, - DWRITE_FONT_AXIS_ATTRIBUTES_HIDDEN = 2 + DWRITE_FONT_AXIS_ATTRIBUTES_NONE = 0, + DWRITE_FONT_AXIS_ATTRIBUTES_VARIABLE = 1, + DWRITE_FONT_AXIS_ATTRIBUTES_HIDDEN = 2 } DWRITE_FONT_AXIS_ATTRIBUTES; typedef enum DWRITE_FONT_FAMILY_MODEL { - DWRITE_FONT_FAMILY_MODEL_TYPOGRAPHIC = 0, - DWRITE_FONT_FAMILY_MODEL_WEIGHT_STRETCH_STYLE = 1 + DWRITE_FONT_FAMILY_MODEL_TYPOGRAPHIC = 0, + DWRITE_FONT_FAMILY_MODEL_WEIGHT_STRETCH_STYLE = 1 } DWRITE_FONT_FAMILY_MODEL; typedef enum DWRITE_PAINT_TYPE { - DWRITE_PAINT_TYPE_NONE = 0, - DWRITE_PAINT_TYPE_LAYERS = 1, - DWRITE_PAINT_TYPE_SOLID_GLYPH = 2, - DWRITE_PAINT_TYPE_SOLID = 3, - DWRITE_PAINT_TYPE_LINEAR_GRADIENT = 4, - DWRITE_PAINT_TYPE_RADIAL_GRADIENT = 5, - DWRITE_PAINT_TYPE_SWEEP_GRADIENT = 6, - DWRITE_PAINT_TYPE_GLYPH = 7, - DWRITE_PAINT_TYPE_COLOR_GLYPH = 8, - DWRITE_PAINT_TYPE_TRANSFORM = 9, - DWRITE_PAINT_TYPE_COMPOSITE = 10 + DWRITE_PAINT_TYPE_NONE = 0, + DWRITE_PAINT_TYPE_LAYERS = 1, + DWRITE_PAINT_TYPE_SOLID_GLYPH = 2, + DWRITE_PAINT_TYPE_SOLID = 3, + DWRITE_PAINT_TYPE_LINEAR_GRADIENT = 4, + DWRITE_PAINT_TYPE_RADIAL_GRADIENT = 5, + DWRITE_PAINT_TYPE_SWEEP_GRADIENT = 6, + DWRITE_PAINT_TYPE_GLYPH = 7, + DWRITE_PAINT_TYPE_COLOR_GLYPH = 8, + DWRITE_PAINT_TYPE_TRANSFORM = 9, + DWRITE_PAINT_TYPE_COMPOSITE = 10 } DWRITE_PAINT_TYPE; #ifndef DWRITE_PAINT_FEATURE_LEVEL_DEFINED #define DWRITE_PAINT_FEATURE_LEVEL_DEFINED typedef enum DWRITE_PAINT_FEATURE_LEVEL { - DWRITE_PAINT_FEATURE_LEVEL_NONE = 0, - DWRITE_PAINT_FEATURE_LEVEL_COLR_V0 = 1, - DWRITE_PAINT_FEATURE_LEVEL_COLR_V1 = 2 + DWRITE_PAINT_FEATURE_LEVEL_NONE = 0, + DWRITE_PAINT_FEATURE_LEVEL_COLR_V0 = 1, + DWRITE_PAINT_FEATURE_LEVEL_COLR_V1 = 2 } DWRITE_PAINT_FEATURE_LEVEL; #endif /* DWRITE_PAINT_FEATURE_LEVEL_DEFINED */ typedef enum DWRITE_PAINT_ATTRIBUTES { - DWRITE_PAINT_ATTRIBUTES_NONE = 0, - DWRITE_PAINT_ATTRIBUTES_USES_PALETTE = 0x1, - DWRITE_PAINT_ATTRIBUTES_USES_TEXT_COLOR = 0x2 + DWRITE_PAINT_ATTRIBUTES_NONE = 0, + DWRITE_PAINT_ATTRIBUTES_USES_PALETTE = 0x1, + DWRITE_PAINT_ATTRIBUTES_USES_TEXT_COLOR = 0x2 } DWRITE_PAINT_ATTRIBUTES; DEFINE_ENUM_FLAG_OPERATORS(DWRITE_PAINT_ATTRIBUTES) typedef struct DWRITE_PAINT_COLOR { - DWRITE_COLOR_F value; - UINT16 paletteEntryIndex; - float alphaMultiplier; - DWRITE_PAINT_ATTRIBUTES colorAttributes; + DWRITE_COLOR_F value; + UINT16 paletteEntryIndex; + float alphaMultiplier; + DWRITE_PAINT_ATTRIBUTES colorAttributes; } DWRITE_PAINT_COLOR; typedef struct DWRITE_PAINT_ELEMENT { - DWRITE_PAINT_TYPE paintType; - union PAINT_UNION { - struct PAINT_LAYERS { - UINT32 childCount; - } layers; - struct PAINT_SOLID_GLYPH { - UINT32 glyphIndex; - DWRITE_PAINT_COLOR color; - } solidGlyph; - DWRITE_PAINT_COLOR solid; - struct PAINT_LINEAR_GRADIENT { - UINT32 extendMode; - UINT32 gradientStopCount; - float x0; - float y0; - float x1; - float y1; - float x2; - float y2; - } linearGradient; - struct PAINT_RADIAL_GRADIENT { - UINT32 extendMode; - UINT32 gradientStopCount; - float x0; - float y0; - float radius0; - float x1; - float y1; - float radius1; - } radialGradient; - struct PAINT_SWEEP_GRADIENT { - UINT32 extendMode; - UINT32 gradientStopCount; - float centerX; - float centerY; - float startAngle; - float endAngle; - } sweepGradient; - struct PAINT_GLYPH { - UINT32 glyphIndex; - } glyph; - struct PAINT_COLOR_GLYPH { - UINT32 glyphIndex; - D2D_RECT_F clipBox; - } colorGlyph; - DWRITE_MATRIX transform; - struct PAINT_COMPOSITE { - DWRITE_COLOR_COMPOSITE_MODE mode; - } composite; - } paint; + DWRITE_PAINT_TYPE paintType; + union PAINT_UNION { + struct PAINT_LAYERS { + UINT32 childCount; + } layers; + struct PAINT_SOLID_GLYPH { + UINT32 glyphIndex; + DWRITE_PAINT_COLOR color; + } solidGlyph; + DWRITE_PAINT_COLOR solid; + struct PAINT_LINEAR_GRADIENT { + UINT32 extendMode; + UINT32 gradientStopCount; + float x0; + float y0; + float x1; + float y1; + float x2; + float y2; + } linearGradient; + struct PAINT_RADIAL_GRADIENT { + UINT32 extendMode; + UINT32 gradientStopCount; + float x0; + float y0; + float radius0; + float x1; + float y1; + float radius1; + } radialGradient; + struct PAINT_SWEEP_GRADIENT { + UINT32 extendMode; + UINT32 gradientStopCount; + float centerX; + float centerY; + float startAngle; + float endAngle; + } sweepGradient; + struct PAINT_GLYPH { + UINT32 glyphIndex; + } glyph; + struct PAINT_COLOR_GLYPH { + UINT32 glyphIndex; + D2D_RECT_F clipBox; + } colorGlyph; + DWRITE_MATRIX transform; + struct PAINT_COMPOSITE { + DWRITE_COLOR_COMPOSITE_MODE mode; + } composite; + } paint; } DWRITE_PAINT_ELEMENT; /***************************************************************************** * IDWriteFontDownloadListener interface @@ -675,80 +675,77 @@ typedef struct DWRITE_PAINT_ELEMENT { #ifndef __IDWriteFontDownloadListener_INTERFACE_DEFINED__ #define __IDWriteFontDownloadListener_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontDownloadListener, 0xb06fe5b9, 0x43ec, 0x4393, 0x88,0x1b, 0xdb,0xe4,0xdc,0x72,0xfd,0xa7); +DEFINE_GUID(IID_IDWriteFontDownloadListener, 0xb06fe5b9, 0x43ec, 0x4393, 0x88, 0x1b, 0xdb, 0xe4, 0xdc, 0x72, 0xfd, 0xa7); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("b06fe5b9-43ec-4393-881b-dbe4dc72fda7") -IDWriteFontDownloadListener : public IUnknown -{ - virtual void STDMETHODCALLTYPE DownloadCompleted( - IDWriteFontDownloadQueue *queue, - IUnknown *context, - HRESULT result) = 0; - +IDWriteFontDownloadListener : public IUnknown { + virtual void STDMETHODCALLTYPE DownloadCompleted( + IDWriteFontDownloadQueue * queue, + IUnknown * context, + HRESULT result) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontDownloadListener, 0xb06fe5b9, 0x43ec, 0x4393, 0x88,0x1b, 0xdb,0xe4,0xdc,0x72,0xfd,0xa7) +__CRT_UUID_DECL(IDWriteFontDownloadListener, 0xb06fe5b9, 0x43ec, 0x4393, 0x88, 0x1b, 0xdb, 0xe4, 0xdc, 0x72, 0xfd, 0xa7) #endif #else typedef struct IDWriteFontDownloadListenerVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontDownloadListener *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontDownloadListener* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontDownloadListener *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontDownloadListener* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontDownloadListener *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontDownloadListener* This); - /*** IDWriteFontDownloadListener methods ***/ - void (STDMETHODCALLTYPE *DownloadCompleted)( - IDWriteFontDownloadListener *This, - IDWriteFontDownloadQueue *queue, - IUnknown *context, - HRESULT result); + /*** IDWriteFontDownloadListener methods ***/ + void(STDMETHODCALLTYPE* DownloadCompleted)( + IDWriteFontDownloadListener* This, + IDWriteFontDownloadQueue* queue, + IUnknown* context, + HRESULT result); - END_INTERFACE + END_INTERFACE } IDWriteFontDownloadListenerVtbl; interface IDWriteFontDownloadListener { - CONST_VTBL IDWriteFontDownloadListenerVtbl* lpVtbl; + CONST_VTBL IDWriteFontDownloadListenerVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontDownloadListener_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontDownloadListener_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontDownloadListener_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontDownloadListener_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontDownloadListener methods ***/ -#define IDWriteFontDownloadListener_DownloadCompleted(This,queue,context,result) (This)->lpVtbl->DownloadCompleted(This,queue,context,result) +#define IDWriteFontDownloadListener_DownloadCompleted(This, queue, context, result) (This)->lpVtbl->DownloadCompleted(This, queue, context, result) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontDownloadListener_QueryInterface(IDWriteFontDownloadListener* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontDownloadListener_QueryInterface(IDWriteFontDownloadListener* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontDownloadListener_AddRef(IDWriteFontDownloadListener* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontDownloadListener_Release(IDWriteFontDownloadListener* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontDownloadListener methods ***/ -static inline void IDWriteFontDownloadListener_DownloadCompleted(IDWriteFontDownloadListener* This,IDWriteFontDownloadQueue *queue,IUnknown *context,HRESULT result) { - This->lpVtbl->DownloadCompleted(This,queue,context,result); +static inline void IDWriteFontDownloadListener_DownloadCompleted(IDWriteFontDownloadListener* This, IDWriteFontDownloadQueue* queue, IUnknown* context, HRESULT result) { + This->lpVtbl->DownloadCompleted(This, queue, context, result); } #endif #endif #endif - -#endif /* __IDWriteFontDownloadListener_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontDownloadListener_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontDownloadQueue interface @@ -756,130 +753,124 @@ static inline void IDWriteFontDownloadListener_DownloadCompleted(IDWriteFontDown #ifndef __IDWriteFontDownloadQueue_INTERFACE_DEFINED__ #define __IDWriteFontDownloadQueue_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontDownloadQueue, 0xb71e6052, 0x5aea, 0x4fa3, 0x83,0x2e, 0xf6,0x0d,0x43,0x1f,0x7e,0x91); +DEFINE_GUID(IID_IDWriteFontDownloadQueue, 0xb71e6052, 0x5aea, 0x4fa3, 0x83, 0x2e, 0xf6, 0x0d, 0x43, 0x1f, 0x7e, 0x91); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("b71e6052-5aea-4fa3-832e-f60d431f7e91") -IDWriteFontDownloadQueue : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE AddListener( - IDWriteFontDownloadListener *listener, - UINT32 *token) = 0; +IDWriteFontDownloadQueue : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE AddListener( + IDWriteFontDownloadListener * listener, + UINT32 * token) = 0; - virtual HRESULT STDMETHODCALLTYPE RemoveListener( - UINT32 token) = 0; + virtual HRESULT STDMETHODCALLTYPE RemoveListener( + UINT32 token) = 0; - virtual WINBOOL STDMETHODCALLTYPE IsEmpty( - ) = 0; + virtual WINBOOL STDMETHODCALLTYPE IsEmpty() = 0; - virtual HRESULT STDMETHODCALLTYPE BeginDownload( - IUnknown *context) = 0; + virtual HRESULT STDMETHODCALLTYPE BeginDownload( + IUnknown * context) = 0; - virtual HRESULT STDMETHODCALLTYPE CancelDownload( - ) = 0; - - virtual UINT64 STDMETHODCALLTYPE GetGenerationCount( - ) = 0; + virtual HRESULT STDMETHODCALLTYPE CancelDownload() = 0; + virtual UINT64 STDMETHODCALLTYPE GetGenerationCount() = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontDownloadQueue, 0xb71e6052, 0x5aea, 0x4fa3, 0x83,0x2e, 0xf6,0x0d,0x43,0x1f,0x7e,0x91) +__CRT_UUID_DECL(IDWriteFontDownloadQueue, 0xb71e6052, 0x5aea, 0x4fa3, 0x83, 0x2e, 0xf6, 0x0d, 0x43, 0x1f, 0x7e, 0x91) #endif #else typedef struct IDWriteFontDownloadQueueVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontDownloadQueue *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontDownloadQueue* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontDownloadQueue *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontDownloadQueue* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontDownloadQueue *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontDownloadQueue* This); - /*** IDWriteFontDownloadQueue methods ***/ - HRESULT (STDMETHODCALLTYPE *AddListener)( - IDWriteFontDownloadQueue *This, - IDWriteFontDownloadListener *listener, - UINT32 *token); + /*** IDWriteFontDownloadQueue methods ***/ + HRESULT(STDMETHODCALLTYPE* AddListener)( + IDWriteFontDownloadQueue* This, + IDWriteFontDownloadListener* listener, + UINT32* token); - HRESULT (STDMETHODCALLTYPE *RemoveListener)( - IDWriteFontDownloadQueue *This, - UINT32 token); + HRESULT(STDMETHODCALLTYPE* RemoveListener)( + IDWriteFontDownloadQueue* This, + UINT32 token); - WINBOOL (STDMETHODCALLTYPE *IsEmpty)( - IDWriteFontDownloadQueue *This); + WINBOOL(STDMETHODCALLTYPE* IsEmpty)( + IDWriteFontDownloadQueue* This); - HRESULT (STDMETHODCALLTYPE *BeginDownload)( - IDWriteFontDownloadQueue *This, - IUnknown *context); + HRESULT(STDMETHODCALLTYPE* BeginDownload)( + IDWriteFontDownloadQueue* This, + IUnknown* context); - HRESULT (STDMETHODCALLTYPE *CancelDownload)( - IDWriteFontDownloadQueue *This); + HRESULT(STDMETHODCALLTYPE* CancelDownload)( + IDWriteFontDownloadQueue* This); - UINT64 (STDMETHODCALLTYPE *GetGenerationCount)( - IDWriteFontDownloadQueue *This); + UINT64(STDMETHODCALLTYPE* GetGenerationCount)( + IDWriteFontDownloadQueue* This); - END_INTERFACE + END_INTERFACE } IDWriteFontDownloadQueueVtbl; interface IDWriteFontDownloadQueue { - CONST_VTBL IDWriteFontDownloadQueueVtbl* lpVtbl; + CONST_VTBL IDWriteFontDownloadQueueVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontDownloadQueue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontDownloadQueue_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontDownloadQueue_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontDownloadQueue_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontDownloadQueue methods ***/ -#define IDWriteFontDownloadQueue_AddListener(This,listener,token) (This)->lpVtbl->AddListener(This,listener,token) -#define IDWriteFontDownloadQueue_RemoveListener(This,token) (This)->lpVtbl->RemoveListener(This,token) +#define IDWriteFontDownloadQueue_AddListener(This, listener, token) (This)->lpVtbl->AddListener(This, listener, token) +#define IDWriteFontDownloadQueue_RemoveListener(This, token) (This)->lpVtbl->RemoveListener(This, token) #define IDWriteFontDownloadQueue_IsEmpty(This) (This)->lpVtbl->IsEmpty(This) -#define IDWriteFontDownloadQueue_BeginDownload(This,context) (This)->lpVtbl->BeginDownload(This,context) +#define IDWriteFontDownloadQueue_BeginDownload(This, context) (This)->lpVtbl->BeginDownload(This, context) #define IDWriteFontDownloadQueue_CancelDownload(This) (This)->lpVtbl->CancelDownload(This) #define IDWriteFontDownloadQueue_GetGenerationCount(This) (This)->lpVtbl->GetGenerationCount(This) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontDownloadQueue_QueryInterface(IDWriteFontDownloadQueue* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontDownloadQueue_QueryInterface(IDWriteFontDownloadQueue* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontDownloadQueue_AddRef(IDWriteFontDownloadQueue* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontDownloadQueue_Release(IDWriteFontDownloadQueue* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontDownloadQueue methods ***/ -static inline HRESULT IDWriteFontDownloadQueue_AddListener(IDWriteFontDownloadQueue* This,IDWriteFontDownloadListener *listener,UINT32 *token) { - return This->lpVtbl->AddListener(This,listener,token); +static inline HRESULT IDWriteFontDownloadQueue_AddListener(IDWriteFontDownloadQueue* This, IDWriteFontDownloadListener* listener, UINT32* token) { + return This->lpVtbl->AddListener(This, listener, token); } -static inline HRESULT IDWriteFontDownloadQueue_RemoveListener(IDWriteFontDownloadQueue* This,UINT32 token) { - return This->lpVtbl->RemoveListener(This,token); +static inline HRESULT IDWriteFontDownloadQueue_RemoveListener(IDWriteFontDownloadQueue* This, UINT32 token) { + return This->lpVtbl->RemoveListener(This, token); } static inline WINBOOL IDWriteFontDownloadQueue_IsEmpty(IDWriteFontDownloadQueue* This) { - return This->lpVtbl->IsEmpty(This); + return This->lpVtbl->IsEmpty(This); } -static inline HRESULT IDWriteFontDownloadQueue_BeginDownload(IDWriteFontDownloadQueue* This,IUnknown *context) { - return This->lpVtbl->BeginDownload(This,context); +static inline HRESULT IDWriteFontDownloadQueue_BeginDownload(IDWriteFontDownloadQueue* This, IUnknown* context) { + return This->lpVtbl->BeginDownload(This, context); } static inline HRESULT IDWriteFontDownloadQueue_CancelDownload(IDWriteFontDownloadQueue* This) { - return This->lpVtbl->CancelDownload(This); + return This->lpVtbl->CancelDownload(This); } static inline UINT64 IDWriteFontDownloadQueue_GetGenerationCount(IDWriteFontDownloadQueue* This) { - return This->lpVtbl->GetGenerationCount(This); + return This->lpVtbl->GetGenerationCount(This); } #endif #endif #endif - -#endif /* __IDWriteFontDownloadQueue_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontDownloadQueue_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteRenderingParams3 interface @@ -887,73 +878,70 @@ static inline UINT64 IDWriteFontDownloadQueue_GetGenerationCount(IDWriteFontDown #ifndef __IDWriteRenderingParams3_INTERFACE_DEFINED__ #define __IDWriteRenderingParams3_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteRenderingParams3, 0xb7924baa, 0x391b, 0x412a, 0x8c,0x5c, 0xe4,0x4c,0xc2,0xd8,0x67,0xdc); +DEFINE_GUID(IID_IDWriteRenderingParams3, 0xb7924baa, 0x391b, 0x412a, 0x8c, 0x5c, 0xe4, 0x4c, 0xc2, 0xd8, 0x67, 0xdc); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("b7924baa-391b-412a-8c5c-e44cc2d867dc") -IDWriteRenderingParams3 : public IDWriteRenderingParams2 -{ - virtual DWRITE_RENDERING_MODE1 STDMETHODCALLTYPE GetRenderingMode1( - ) = 0; - +IDWriteRenderingParams3 : public IDWriteRenderingParams2 { + virtual DWRITE_RENDERING_MODE1 STDMETHODCALLTYPE GetRenderingMode1() = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteRenderingParams3, 0xb7924baa, 0x391b, 0x412a, 0x8c,0x5c, 0xe4,0x4c,0xc2,0xd8,0x67,0xdc) +__CRT_UUID_DECL(IDWriteRenderingParams3, 0xb7924baa, 0x391b, 0x412a, 0x8c, 0x5c, 0xe4, 0x4c, 0xc2, 0xd8, 0x67, 0xdc) #endif #else typedef struct IDWriteRenderingParams3Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteRenderingParams3 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteRenderingParams3* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteRenderingParams3 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteRenderingParams3* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteRenderingParams3 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteRenderingParams3* This); - /*** IDWriteRenderingParams methods ***/ - FLOAT (STDMETHODCALLTYPE *GetGamma)( - IDWriteRenderingParams3 *This); + /*** IDWriteRenderingParams methods ***/ + FLOAT(STDMETHODCALLTYPE* GetGamma)( + IDWriteRenderingParams3* This); - FLOAT (STDMETHODCALLTYPE *GetEnhancedContrast)( - IDWriteRenderingParams3 *This); + FLOAT(STDMETHODCALLTYPE* GetEnhancedContrast)( + IDWriteRenderingParams3* This); - FLOAT (STDMETHODCALLTYPE *GetClearTypeLevel)( - IDWriteRenderingParams3 *This); + FLOAT(STDMETHODCALLTYPE* GetClearTypeLevel)( + IDWriteRenderingParams3* This); - DWRITE_PIXEL_GEOMETRY (STDMETHODCALLTYPE *GetPixelGeometry)( - IDWriteRenderingParams3 *This); + DWRITE_PIXEL_GEOMETRY(STDMETHODCALLTYPE* GetPixelGeometry)( + IDWriteRenderingParams3* This); - DWRITE_RENDERING_MODE (STDMETHODCALLTYPE *GetRenderingMode)( - IDWriteRenderingParams3 *This); + DWRITE_RENDERING_MODE(STDMETHODCALLTYPE* GetRenderingMode)( + IDWriteRenderingParams3* This); - /*** IDWriteRenderingParams1 methods ***/ - FLOAT (STDMETHODCALLTYPE *GetGrayscaleEnhancedContrast)( - IDWriteRenderingParams3 *This); + /*** IDWriteRenderingParams1 methods ***/ + FLOAT(STDMETHODCALLTYPE* GetGrayscaleEnhancedContrast)( + IDWriteRenderingParams3* This); - /*** IDWriteRenderingParams2 methods ***/ - DWRITE_GRID_FIT_MODE (STDMETHODCALLTYPE *GetGridFitMode)( - IDWriteRenderingParams3 *This); + /*** IDWriteRenderingParams2 methods ***/ + DWRITE_GRID_FIT_MODE(STDMETHODCALLTYPE* GetGridFitMode)( + IDWriteRenderingParams3* This); - /*** IDWriteRenderingParams3 methods ***/ - DWRITE_RENDERING_MODE1 (STDMETHODCALLTYPE *GetRenderingMode1)( - IDWriteRenderingParams3 *This); + /*** IDWriteRenderingParams3 methods ***/ + DWRITE_RENDERING_MODE1(STDMETHODCALLTYPE* GetRenderingMode1)( + IDWriteRenderingParams3* This); - END_INTERFACE + END_INTERFACE } IDWriteRenderingParams3Vtbl; interface IDWriteRenderingParams3 { - CONST_VTBL IDWriteRenderingParams3Vtbl* lpVtbl; + CONST_VTBL IDWriteRenderingParams3Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteRenderingParams3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteRenderingParams3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteRenderingParams3_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteRenderingParams3_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteRenderingParams methods ***/ @@ -970,50 +958,49 @@ interface IDWriteRenderingParams3 { #define IDWriteRenderingParams3_GetRenderingMode1(This) (This)->lpVtbl->GetRenderingMode1(This) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteRenderingParams3_QueryInterface(IDWriteRenderingParams3* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteRenderingParams3_QueryInterface(IDWriteRenderingParams3* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteRenderingParams3_AddRef(IDWriteRenderingParams3* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteRenderingParams3_Release(IDWriteRenderingParams3* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteRenderingParams methods ***/ static inline FLOAT IDWriteRenderingParams3_GetGamma(IDWriteRenderingParams3* This) { - return This->lpVtbl->GetGamma(This); + return This->lpVtbl->GetGamma(This); } static inline FLOAT IDWriteRenderingParams3_GetEnhancedContrast(IDWriteRenderingParams3* This) { - return This->lpVtbl->GetEnhancedContrast(This); + return This->lpVtbl->GetEnhancedContrast(This); } static inline FLOAT IDWriteRenderingParams3_GetClearTypeLevel(IDWriteRenderingParams3* This) { - return This->lpVtbl->GetClearTypeLevel(This); + return This->lpVtbl->GetClearTypeLevel(This); } static inline DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams3_GetPixelGeometry(IDWriteRenderingParams3* This) { - return This->lpVtbl->GetPixelGeometry(This); + return This->lpVtbl->GetPixelGeometry(This); } static inline DWRITE_RENDERING_MODE IDWriteRenderingParams3_GetRenderingMode(IDWriteRenderingParams3* This) { - return This->lpVtbl->GetRenderingMode(This); + return This->lpVtbl->GetRenderingMode(This); } /*** IDWriteRenderingParams1 methods ***/ static inline FLOAT IDWriteRenderingParams3_GetGrayscaleEnhancedContrast(IDWriteRenderingParams3* This) { - return This->lpVtbl->GetGrayscaleEnhancedContrast(This); + return This->lpVtbl->GetGrayscaleEnhancedContrast(This); } /*** IDWriteRenderingParams2 methods ***/ static inline DWRITE_GRID_FIT_MODE IDWriteRenderingParams3_GetGridFitMode(IDWriteRenderingParams3* This) { - return This->lpVtbl->GetGridFitMode(This); + return This->lpVtbl->GetGridFitMode(This); } /*** IDWriteRenderingParams3 methods ***/ static inline DWRITE_RENDERING_MODE1 IDWriteRenderingParams3_GetRenderingMode1(IDWriteRenderingParams3* This) { - return This->lpVtbl->GetRenderingMode1(This); + return This->lpVtbl->GetRenderingMode1(This); } #endif #endif #endif - -#endif /* __IDWriteRenderingParams3_INTERFACE_DEFINED__ */ +#endif /* __IDWriteRenderingParams3_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteStringList interface @@ -1021,131 +1008,127 @@ static inline DWRITE_RENDERING_MODE1 IDWriteRenderingParams3_GetRenderingMode1(I #ifndef __IDWriteStringList_INTERFACE_DEFINED__ #define __IDWriteStringList_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteStringList, 0xcfee3140, 0x1157, 0x47ca, 0x8b,0x85, 0x31,0xbf,0xcf,0x3f,0x2d,0x0e); +DEFINE_GUID(IID_IDWriteStringList, 0xcfee3140, 0x1157, 0x47ca, 0x8b, 0x85, 0x31, 0xbf, 0xcf, 0x3f, 0x2d, 0x0e); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("cfee3140-1157-47ca-8b85-31bfcf3f2d0e") -IDWriteStringList : public IUnknown -{ - virtual UINT32 STDMETHODCALLTYPE GetCount( - ) = 0; +IDWriteStringList : public IUnknown { + virtual UINT32 STDMETHODCALLTYPE GetCount() = 0; - virtual HRESULT STDMETHODCALLTYPE GetLocaleNameLength( - UINT32 index, - UINT32 *length) = 0; + virtual HRESULT STDMETHODCALLTYPE GetLocaleNameLength( + UINT32 index, + UINT32 * length) = 0; - virtual HRESULT STDMETHODCALLTYPE GetLocaleName( - UINT32 index, - WCHAR *name, - UINT32 size) = 0; + virtual HRESULT STDMETHODCALLTYPE GetLocaleName( + UINT32 index, + WCHAR * name, + UINT32 size) = 0; - virtual HRESULT STDMETHODCALLTYPE GetStringLength( - UINT32 index, - UINT32 *length) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetString( - UINT32 index, - WCHAR *string, - UINT32 size) = 0; + virtual HRESULT STDMETHODCALLTYPE GetStringLength( + UINT32 index, + UINT32 * length) = 0; + virtual HRESULT STDMETHODCALLTYPE GetString( + UINT32 index, + WCHAR * string, + UINT32 size) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteStringList, 0xcfee3140, 0x1157, 0x47ca, 0x8b,0x85, 0x31,0xbf,0xcf,0x3f,0x2d,0x0e) +__CRT_UUID_DECL(IDWriteStringList, 0xcfee3140, 0x1157, 0x47ca, 0x8b, 0x85, 0x31, 0xbf, 0xcf, 0x3f, 0x2d, 0x0e) #endif #else typedef struct IDWriteStringListVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteStringList *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteStringList* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteStringList *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteStringList* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteStringList *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteStringList* This); - /*** IDWriteStringList methods ***/ - UINT32 (STDMETHODCALLTYPE *GetCount)( - IDWriteStringList *This); + /*** IDWriteStringList methods ***/ + UINT32(STDMETHODCALLTYPE* GetCount)( + IDWriteStringList* This); - HRESULT (STDMETHODCALLTYPE *GetLocaleNameLength)( - IDWriteStringList *This, - UINT32 index, - UINT32 *length); + HRESULT(STDMETHODCALLTYPE* GetLocaleNameLength)( + IDWriteStringList* This, + UINT32 index, + UINT32* length); - HRESULT (STDMETHODCALLTYPE *GetLocaleName)( - IDWriteStringList *This, - UINT32 index, - WCHAR *name, - UINT32 size); + HRESULT(STDMETHODCALLTYPE* GetLocaleName)( + IDWriteStringList* This, + UINT32 index, + WCHAR* name, + UINT32 size); - HRESULT (STDMETHODCALLTYPE *GetStringLength)( - IDWriteStringList *This, - UINT32 index, - UINT32 *length); + HRESULT(STDMETHODCALLTYPE* GetStringLength)( + IDWriteStringList* This, + UINT32 index, + UINT32* length); - HRESULT (STDMETHODCALLTYPE *GetString)( - IDWriteStringList *This, - UINT32 index, - WCHAR *string, - UINT32 size); + HRESULT(STDMETHODCALLTYPE* GetString)( + IDWriteStringList* This, + UINT32 index, + WCHAR* string, + UINT32 size); - END_INTERFACE + END_INTERFACE } IDWriteStringListVtbl; interface IDWriteStringList { - CONST_VTBL IDWriteStringListVtbl* lpVtbl; + CONST_VTBL IDWriteStringListVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteStringList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteStringList_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteStringList_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteStringList_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteStringList methods ***/ #define IDWriteStringList_GetCount(This) (This)->lpVtbl->GetCount(This) -#define IDWriteStringList_GetLocaleNameLength(This,index,length) (This)->lpVtbl->GetLocaleNameLength(This,index,length) -#define IDWriteStringList_GetLocaleName(This,index,name,size) (This)->lpVtbl->GetLocaleName(This,index,name,size) -#define IDWriteStringList_GetStringLength(This,index,length) (This)->lpVtbl->GetStringLength(This,index,length) -#define IDWriteStringList_GetString(This,index,string,size) (This)->lpVtbl->GetString(This,index,string,size) +#define IDWriteStringList_GetLocaleNameLength(This, index, length) (This)->lpVtbl->GetLocaleNameLength(This, index, length) +#define IDWriteStringList_GetLocaleName(This, index, name, size) (This)->lpVtbl->GetLocaleName(This, index, name, size) +#define IDWriteStringList_GetStringLength(This, index, length) (This)->lpVtbl->GetStringLength(This, index, length) +#define IDWriteStringList_GetString(This, index, string, size) (This)->lpVtbl->GetString(This, index, string, size) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteStringList_QueryInterface(IDWriteStringList* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteStringList_QueryInterface(IDWriteStringList* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteStringList_AddRef(IDWriteStringList* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteStringList_Release(IDWriteStringList* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteStringList methods ***/ static inline UINT32 IDWriteStringList_GetCount(IDWriteStringList* This) { - return This->lpVtbl->GetCount(This); + return This->lpVtbl->GetCount(This); } -static inline HRESULT IDWriteStringList_GetLocaleNameLength(IDWriteStringList* This,UINT32 index,UINT32 *length) { - return This->lpVtbl->GetLocaleNameLength(This,index,length); +static inline HRESULT IDWriteStringList_GetLocaleNameLength(IDWriteStringList* This, UINT32 index, UINT32* length) { + return This->lpVtbl->GetLocaleNameLength(This, index, length); } -static inline HRESULT IDWriteStringList_GetLocaleName(IDWriteStringList* This,UINT32 index,WCHAR *name,UINT32 size) { - return This->lpVtbl->GetLocaleName(This,index,name,size); +static inline HRESULT IDWriteStringList_GetLocaleName(IDWriteStringList* This, UINT32 index, WCHAR* name, UINT32 size) { + return This->lpVtbl->GetLocaleName(This, index, name, size); } -static inline HRESULT IDWriteStringList_GetStringLength(IDWriteStringList* This,UINT32 index,UINT32 *length) { - return This->lpVtbl->GetStringLength(This,index,length); +static inline HRESULT IDWriteStringList_GetStringLength(IDWriteStringList* This, UINT32 index, UINT32* length) { + return This->lpVtbl->GetStringLength(This, index, length); } -static inline HRESULT IDWriteStringList_GetString(IDWriteStringList* This,UINT32 index,WCHAR *string,UINT32 size) { - return This->lpVtbl->GetString(This,index,string,size); +static inline HRESULT IDWriteStringList_GetString(IDWriteStringList* This, UINT32 index, WCHAR* string, UINT32 size) { + return This->lpVtbl->GetString(This, index, string, size); } #endif #endif #endif - -#endif /* __IDWriteStringList_INTERFACE_DEFINED__ */ +#endif /* __IDWriteStringList_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontSet interface @@ -1153,210 +1136,206 @@ static inline HRESULT IDWriteStringList_GetString(IDWriteStringList* This,UINT32 #ifndef __IDWriteFontSet_INTERFACE_DEFINED__ #define __IDWriteFontSet_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontSet, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6b); +DEFINE_GUID(IID_IDWriteFontSet, 0x53585141, 0xd9f8, 0x4095, 0x83, 0x21, 0xd7, 0x3c, 0xf6, 0xbd, 0x11, 0x6b); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("53585141-d9f8-4095-8321-d73cf6bd116b") -IDWriteFontSet : public IUnknown -{ - virtual UINT32 STDMETHODCALLTYPE GetFontCount( - ) = 0; +IDWriteFontSet : public IUnknown { + virtual UINT32 STDMETHODCALLTYPE GetFontCount() = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( - UINT32 index, - IDWriteFontFaceReference **reference) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( + UINT32 index, + IDWriteFontFaceReference * *reference) = 0; - virtual HRESULT STDMETHODCALLTYPE FindFontFaceReference( - IDWriteFontFaceReference *reference, - UINT32 *index, - WINBOOL *exists) = 0; + virtual HRESULT STDMETHODCALLTYPE FindFontFaceReference( + IDWriteFontFaceReference * reference, + UINT32 * index, + WINBOOL * exists) = 0; - virtual HRESULT STDMETHODCALLTYPE FindFontFace( - IDWriteFontFace *fontface, - UINT32 *index, - WINBOOL *exists) = 0; + virtual HRESULT STDMETHODCALLTYPE FindFontFace( + IDWriteFontFace * fontface, + UINT32 * index, + WINBOOL * exists) = 0; - virtual HRESULT STDMETHODCALLTYPE GetPropertyValues__( - DWRITE_FONT_PROPERTY_ID id, - IDWriteStringList **values) = 0; + virtual HRESULT STDMETHODCALLTYPE GetPropertyValues__( + DWRITE_FONT_PROPERTY_ID id, + IDWriteStringList * *values) = 0; - virtual HRESULT STDMETHODCALLTYPE GetPropertyValues_( - DWRITE_FONT_PROPERTY_ID id, - const WCHAR *preferred_locales, - IDWriteStringList **values) = 0; + virtual HRESULT STDMETHODCALLTYPE GetPropertyValues_( + DWRITE_FONT_PROPERTY_ID id, + const WCHAR* preferred_locales, + IDWriteStringList** values) = 0; - virtual HRESULT STDMETHODCALLTYPE GetPropertyValues( - UINT32 index, - DWRITE_FONT_PROPERTY_ID id, - WINBOOL *exists, - IDWriteLocalizedStrings **values) = 0; + virtual HRESULT STDMETHODCALLTYPE GetPropertyValues( + UINT32 index, + DWRITE_FONT_PROPERTY_ID id, + WINBOOL * exists, + IDWriteLocalizedStrings * *values) = 0; - virtual HRESULT STDMETHODCALLTYPE GetPropertyOccurrenceCount( - const DWRITE_FONT_PROPERTY *property, - UINT32 *count) = 0; + virtual HRESULT STDMETHODCALLTYPE GetPropertyOccurrenceCount( + const DWRITE_FONT_PROPERTY* property, + UINT32* count) = 0; - virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts_( - const WCHAR *family, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFontSet **fontset) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( - const DWRITE_FONT_PROPERTY *props, - UINT32 count, - IDWriteFontSet **fontset) = 0; + virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts_( + const WCHAR* family, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontSet** fontset) = 0; + virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( + const DWRITE_FONT_PROPERTY* props, + UINT32 count, + IDWriteFontSet** fontset) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontSet, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6b) +__CRT_UUID_DECL(IDWriteFontSet, 0x53585141, 0xd9f8, 0x4095, 0x83, 0x21, 0xd7, 0x3c, 0xf6, 0xbd, 0x11, 0x6b) #endif #else typedef struct IDWriteFontSetVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontSet *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontSet* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontSet *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontSet* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontSet *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontSet* This); - /*** IDWriteFontSet methods ***/ - UINT32 (STDMETHODCALLTYPE *GetFontCount)( - IDWriteFontSet *This); + /*** IDWriteFontSet methods ***/ + UINT32(STDMETHODCALLTYPE* GetFontCount)( + IDWriteFontSet* This); - HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( - IDWriteFontSet *This, - UINT32 index, - IDWriteFontFaceReference **reference); + HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( + IDWriteFontSet* This, + UINT32 index, + IDWriteFontFaceReference** reference); - HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)( - IDWriteFontSet *This, - IDWriteFontFaceReference *reference, - UINT32 *index, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* FindFontFaceReference)( + IDWriteFontSet* This, + IDWriteFontFaceReference* reference, + UINT32* index, + WINBOOL* exists); - HRESULT (STDMETHODCALLTYPE *FindFontFace)( - IDWriteFontSet *This, - IDWriteFontFace *fontface, - UINT32 *index, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* FindFontFace)( + IDWriteFontSet* This, + IDWriteFontFace* fontface, + UINT32* index, + WINBOOL* exists); - HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)( - IDWriteFontSet *This, - DWRITE_FONT_PROPERTY_ID id, - IDWriteStringList **values); + HRESULT(STDMETHODCALLTYPE* GetPropertyValues__)( + IDWriteFontSet* This, + DWRITE_FONT_PROPERTY_ID id, + IDWriteStringList** values); - HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)( - IDWriteFontSet *This, - DWRITE_FONT_PROPERTY_ID id, - const WCHAR *preferred_locales, - IDWriteStringList **values); + HRESULT(STDMETHODCALLTYPE* GetPropertyValues_)( + IDWriteFontSet* This, + DWRITE_FONT_PROPERTY_ID id, + const WCHAR* preferred_locales, + IDWriteStringList** values); - HRESULT (STDMETHODCALLTYPE *GetPropertyValues)( - IDWriteFontSet *This, - UINT32 index, - DWRITE_FONT_PROPERTY_ID id, - WINBOOL *exists, - IDWriteLocalizedStrings **values); + HRESULT(STDMETHODCALLTYPE* GetPropertyValues)( + IDWriteFontSet* This, + UINT32 index, + DWRITE_FONT_PROPERTY_ID id, + WINBOOL* exists, + IDWriteLocalizedStrings** values); - HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)( - IDWriteFontSet *This, - const DWRITE_FONT_PROPERTY *property, - UINT32 *count); + HRESULT(STDMETHODCALLTYPE* GetPropertyOccurrenceCount)( + IDWriteFontSet* This, + const DWRITE_FONT_PROPERTY* property, + UINT32* count); - HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)( - IDWriteFontSet *This, - const WCHAR *family, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFontSet **fontset); + HRESULT(STDMETHODCALLTYPE* GetMatchingFonts_)( + IDWriteFontSet* This, + const WCHAR* family, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontSet** fontset); - HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( - IDWriteFontSet *This, - const DWRITE_FONT_PROPERTY *props, - UINT32 count, - IDWriteFontSet **fontset); + HRESULT(STDMETHODCALLTYPE* GetMatchingFonts)( + IDWriteFontSet* This, + const DWRITE_FONT_PROPERTY* props, + UINT32 count, + IDWriteFontSet** fontset); - END_INTERFACE + END_INTERFACE } IDWriteFontSetVtbl; interface IDWriteFontSet { - CONST_VTBL IDWriteFontSetVtbl* lpVtbl; + CONST_VTBL IDWriteFontSetVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSet_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontSet_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontSet_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontSet methods ***/ #define IDWriteFontSet_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) -#define IDWriteFontSet_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference) -#define IDWriteFontSet_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists) -#define IDWriteFontSet_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists) -#define IDWriteFontSet_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values) -#define IDWriteFontSet_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values) -#define IDWriteFontSet_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values) -#define IDWriteFontSet_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count) -#define IDWriteFontSet_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset) -#define IDWriteFontSet_GetMatchingFonts(This,props,count,fontset) (This)->lpVtbl->GetMatchingFonts(This,props,count,fontset) +#define IDWriteFontSet_GetFontFaceReference(This, index, reference) (This)->lpVtbl->GetFontFaceReference(This, index, reference) +#define IDWriteFontSet_FindFontFaceReference(This, reference, index, exists) (This)->lpVtbl->FindFontFaceReference(This, reference, index, exists) +#define IDWriteFontSet_FindFontFace(This, fontface, index, exists) (This)->lpVtbl->FindFontFace(This, fontface, index, exists) +#define IDWriteFontSet_GetPropertyValues__(This, id, values) (This)->lpVtbl->GetPropertyValues__(This, id, values) +#define IDWriteFontSet_GetPropertyValues_(This, id, preferred_locales, values) (This)->lpVtbl->GetPropertyValues_(This, id, preferred_locales, values) +#define IDWriteFontSet_GetPropertyValues(This, index, id, exists, values) (This)->lpVtbl->GetPropertyValues(This, index, id, exists, values) +#define IDWriteFontSet_GetPropertyOccurrenceCount(This, property, count) (This)->lpVtbl->GetPropertyOccurrenceCount(This, property, count) +#define IDWriteFontSet_GetMatchingFonts_(This, family, weight, stretch, style, fontset) (This)->lpVtbl->GetMatchingFonts_(This, family, weight, stretch, style, fontset) +#define IDWriteFontSet_GetMatchingFonts(This, props, count, fontset) (This)->lpVtbl->GetMatchingFonts(This, props, count, fontset) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontSet_QueryInterface(IDWriteFontSet* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontSet_QueryInterface(IDWriteFontSet* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontSet_AddRef(IDWriteFontSet* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontSet_Release(IDWriteFontSet* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontSet methods ***/ static inline UINT32 IDWriteFontSet_GetFontCount(IDWriteFontSet* This) { - return This->lpVtbl->GetFontCount(This); + return This->lpVtbl->GetFontCount(This); } -static inline HRESULT IDWriteFontSet_GetFontFaceReference(IDWriteFontSet* This,UINT32 index,IDWriteFontFaceReference **reference) { - return This->lpVtbl->GetFontFaceReference(This,index,reference); +static inline HRESULT IDWriteFontSet_GetFontFaceReference(IDWriteFontSet* This, UINT32 index, IDWriteFontFaceReference** reference) { + return This->lpVtbl->GetFontFaceReference(This, index, reference); } -static inline HRESULT IDWriteFontSet_FindFontFaceReference(IDWriteFontSet* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) { - return This->lpVtbl->FindFontFaceReference(This,reference,index,exists); +static inline HRESULT IDWriteFontSet_FindFontFaceReference(IDWriteFontSet* This, IDWriteFontFaceReference* reference, UINT32* index, WINBOOL* exists) { + return This->lpVtbl->FindFontFaceReference(This, reference, index, exists); } -static inline HRESULT IDWriteFontSet_FindFontFace(IDWriteFontSet* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) { - return This->lpVtbl->FindFontFace(This,fontface,index,exists); +static inline HRESULT IDWriteFontSet_FindFontFace(IDWriteFontSet* This, IDWriteFontFace* fontface, UINT32* index, WINBOOL* exists) { + return This->lpVtbl->FindFontFace(This, fontface, index, exists); } -static inline HRESULT IDWriteFontSet_GetPropertyValues__(IDWriteFontSet* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) { - return This->lpVtbl->GetPropertyValues__(This,id,values); +static inline HRESULT IDWriteFontSet_GetPropertyValues__(IDWriteFontSet* This, DWRITE_FONT_PROPERTY_ID id, IDWriteStringList** values) { + return This->lpVtbl->GetPropertyValues__(This, id, values); } -static inline HRESULT IDWriteFontSet_GetPropertyValues_(IDWriteFontSet* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) { - return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values); +static inline HRESULT IDWriteFontSet_GetPropertyValues_(IDWriteFontSet* This, DWRITE_FONT_PROPERTY_ID id, const WCHAR* preferred_locales, IDWriteStringList** values) { + return This->lpVtbl->GetPropertyValues_(This, id, preferred_locales, values); } -static inline HRESULT IDWriteFontSet_GetPropertyValues(IDWriteFontSet* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) { - return This->lpVtbl->GetPropertyValues(This,index,id,exists,values); +static inline HRESULT IDWriteFontSet_GetPropertyValues(IDWriteFontSet* This, UINT32 index, DWRITE_FONT_PROPERTY_ID id, WINBOOL* exists, IDWriteLocalizedStrings** values) { + return This->lpVtbl->GetPropertyValues(This, index, id, exists, values); } -static inline HRESULT IDWriteFontSet_GetPropertyOccurrenceCount(IDWriteFontSet* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) { - return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count); +static inline HRESULT IDWriteFontSet_GetPropertyOccurrenceCount(IDWriteFontSet* This, const DWRITE_FONT_PROPERTY* property, UINT32* count) { + return This->lpVtbl->GetPropertyOccurrenceCount(This, property, count); } -static inline HRESULT IDWriteFontSet_GetMatchingFonts_(IDWriteFontSet* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) { - return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset); +static inline HRESULT IDWriteFontSet_GetMatchingFonts_(IDWriteFontSet* This, const WCHAR* family, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFontSet** fontset) { + return This->lpVtbl->GetMatchingFonts_(This, family, weight, stretch, style, fontset); } -static inline HRESULT IDWriteFontSet_GetMatchingFonts(IDWriteFontSet* This,const DWRITE_FONT_PROPERTY *props,UINT32 count,IDWriteFontSet **fontset) { - return This->lpVtbl->GetMatchingFonts(This,props,count,fontset); +static inline HRESULT IDWriteFontSet_GetMatchingFonts(IDWriteFontSet* This, const DWRITE_FONT_PROPERTY* props, UINT32 count, IDWriteFontSet** fontset) { + return This->lpVtbl->GetMatchingFonts(This, props, count, fontset); } #endif #endif #endif - -#endif /* __IDWriteFontSet_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontSet_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontResource interface @@ -1364,218 +1343,212 @@ static inline HRESULT IDWriteFontSet_GetMatchingFonts(IDWriteFontSet* This,const #ifndef __IDWriteFontResource_INTERFACE_DEFINED__ #define __IDWriteFontResource_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontResource, 0x1f803a76, 0x6871, 0x48e8, 0x98,0x7f, 0xb9,0x75,0x55,0x1c,0x50,0xf2); +DEFINE_GUID(IID_IDWriteFontResource, 0x1f803a76, 0x6871, 0x48e8, 0x98, 0x7f, 0xb9, 0x75, 0x55, 0x1c, 0x50, 0xf2); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("1f803a76-6871-48e8-987f-b975551c50f2") -IDWriteFontResource : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE GetFontFile( - IDWriteFontFile **fontfile) = 0; +IDWriteFontResource : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE GetFontFile( + IDWriteFontFile * *fontfile) = 0; - virtual UINT32 STDMETHODCALLTYPE GetFontFaceIndex( - ) = 0; + virtual UINT32 STDMETHODCALLTYPE GetFontFaceIndex() = 0; - virtual UINT32 STDMETHODCALLTYPE GetFontAxisCount( - ) = 0; + virtual UINT32 STDMETHODCALLTYPE GetFontAxisCount() = 0; - virtual HRESULT STDMETHODCALLTYPE GetDefaultFontAxisValues( - DWRITE_FONT_AXIS_VALUE *values, - UINT32 num_values) = 0; + virtual HRESULT STDMETHODCALLTYPE GetDefaultFontAxisValues( + DWRITE_FONT_AXIS_VALUE * values, + UINT32 num_values) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges( - DWRITE_FONT_AXIS_RANGE *ranges, - UINT32 num_ranges) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges( + DWRITE_FONT_AXIS_RANGE * ranges, + UINT32 num_ranges) = 0; - virtual DWRITE_FONT_AXIS_ATTRIBUTES STDMETHODCALLTYPE GetFontAxisAttributes( - UINT32 axis) = 0; + virtual DWRITE_FONT_AXIS_ATTRIBUTES STDMETHODCALLTYPE GetFontAxisAttributes( + UINT32 axis) = 0; - virtual HRESULT STDMETHODCALLTYPE GetAxisNames( - UINT32 axis, - IDWriteLocalizedStrings **names) = 0; + virtual HRESULT STDMETHODCALLTYPE GetAxisNames( + UINT32 axis, + IDWriteLocalizedStrings * *names) = 0; - virtual UINT32 STDMETHODCALLTYPE GetAxisValueNameCount( - UINT32 axis) = 0; + virtual UINT32 STDMETHODCALLTYPE GetAxisValueNameCount( + UINT32 axis) = 0; - virtual HRESULT STDMETHODCALLTYPE GetAxisValueNames( - UINT32 axis, - UINT32 axis_value, - DWRITE_FONT_AXIS_RANGE *axis_range, - IDWriteLocalizedStrings **names) = 0; + virtual HRESULT STDMETHODCALLTYPE GetAxisValueNames( + UINT32 axis, + UINT32 axis_value, + DWRITE_FONT_AXIS_RANGE * axis_range, + IDWriteLocalizedStrings * *names) = 0; - virtual WINBOOL STDMETHODCALLTYPE HasVariations( - ) = 0; + virtual WINBOOL STDMETHODCALLTYPE HasVariations() = 0; - virtual HRESULT STDMETHODCALLTYPE CreateFontFace( - DWRITE_FONT_SIMULATIONS simulations, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values, - IDWriteFontFace5 **fontface) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference( - DWRITE_FONT_SIMULATIONS simulations, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values, - IDWriteFontFaceReference1 **reference) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateFontFace( + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values, + IDWriteFontFace5** fontface) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference( + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values, + IDWriteFontFaceReference1** reference) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontResource, 0x1f803a76, 0x6871, 0x48e8, 0x98,0x7f, 0xb9,0x75,0x55,0x1c,0x50,0xf2) +__CRT_UUID_DECL(IDWriteFontResource, 0x1f803a76, 0x6871, 0x48e8, 0x98, 0x7f, 0xb9, 0x75, 0x55, 0x1c, 0x50, 0xf2) #endif #else typedef struct IDWriteFontResourceVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontResource *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontResource* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontResource *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontResource* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontResource *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontResource* This); - /*** IDWriteFontResource methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFontFile)( - IDWriteFontResource *This, - IDWriteFontFile **fontfile); + /*** IDWriteFontResource methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFontFile)( + IDWriteFontResource* This, + IDWriteFontFile** fontfile); - UINT32 (STDMETHODCALLTYPE *GetFontFaceIndex)( - IDWriteFontResource *This); + UINT32(STDMETHODCALLTYPE* GetFontFaceIndex)( + IDWriteFontResource* This); - UINT32 (STDMETHODCALLTYPE *GetFontAxisCount)( - IDWriteFontResource *This); + UINT32(STDMETHODCALLTYPE* GetFontAxisCount)( + IDWriteFontResource* This); - HRESULT (STDMETHODCALLTYPE *GetDefaultFontAxisValues)( - IDWriteFontResource *This, - DWRITE_FONT_AXIS_VALUE *values, - UINT32 num_values); + HRESULT(STDMETHODCALLTYPE* GetDefaultFontAxisValues)( + IDWriteFontResource* This, + DWRITE_FONT_AXIS_VALUE* values, + UINT32 num_values); - HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)( - IDWriteFontResource *This, - DWRITE_FONT_AXIS_RANGE *ranges, - UINT32 num_ranges); + HRESULT(STDMETHODCALLTYPE* GetFontAxisRanges)( + IDWriteFontResource* This, + DWRITE_FONT_AXIS_RANGE* ranges, + UINT32 num_ranges); - DWRITE_FONT_AXIS_ATTRIBUTES (STDMETHODCALLTYPE *GetFontAxisAttributes)( - IDWriteFontResource *This, - UINT32 axis); + DWRITE_FONT_AXIS_ATTRIBUTES(STDMETHODCALLTYPE* GetFontAxisAttributes)( + IDWriteFontResource* This, + UINT32 axis); - HRESULT (STDMETHODCALLTYPE *GetAxisNames)( - IDWriteFontResource *This, - UINT32 axis, - IDWriteLocalizedStrings **names); + HRESULT(STDMETHODCALLTYPE* GetAxisNames)( + IDWriteFontResource* This, + UINT32 axis, + IDWriteLocalizedStrings** names); - UINT32 (STDMETHODCALLTYPE *GetAxisValueNameCount)( - IDWriteFontResource *This, - UINT32 axis); + UINT32(STDMETHODCALLTYPE* GetAxisValueNameCount)( + IDWriteFontResource* This, + UINT32 axis); - HRESULT (STDMETHODCALLTYPE *GetAxisValueNames)( - IDWriteFontResource *This, - UINT32 axis, - UINT32 axis_value, - DWRITE_FONT_AXIS_RANGE *axis_range, - IDWriteLocalizedStrings **names); + HRESULT(STDMETHODCALLTYPE* GetAxisValueNames)( + IDWriteFontResource* This, + UINT32 axis, + UINT32 axis_value, + DWRITE_FONT_AXIS_RANGE* axis_range, + IDWriteLocalizedStrings** names); - WINBOOL (STDMETHODCALLTYPE *HasVariations)( - IDWriteFontResource *This); + WINBOOL(STDMETHODCALLTYPE* HasVariations)( + IDWriteFontResource* This); - HRESULT (STDMETHODCALLTYPE *CreateFontFace)( - IDWriteFontResource *This, - DWRITE_FONT_SIMULATIONS simulations, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values, - IDWriteFontFace5 **fontface); + HRESULT(STDMETHODCALLTYPE* CreateFontFace)( + IDWriteFontResource* This, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values, + IDWriteFontFace5** fontface); - HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)( - IDWriteFontResource *This, - DWRITE_FONT_SIMULATIONS simulations, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values, - IDWriteFontFaceReference1 **reference); + HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference)( + IDWriteFontResource* This, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values, + IDWriteFontFaceReference1** reference); - END_INTERFACE + END_INTERFACE } IDWriteFontResourceVtbl; interface IDWriteFontResource { - CONST_VTBL IDWriteFontResourceVtbl* lpVtbl; + CONST_VTBL IDWriteFontResourceVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontResource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontResource_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontResource_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontResource_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontResource methods ***/ -#define IDWriteFontResource_GetFontFile(This,fontfile) (This)->lpVtbl->GetFontFile(This,fontfile) +#define IDWriteFontResource_GetFontFile(This, fontfile) (This)->lpVtbl->GetFontFile(This, fontfile) #define IDWriteFontResource_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This) #define IDWriteFontResource_GetFontAxisCount(This) (This)->lpVtbl->GetFontAxisCount(This) -#define IDWriteFontResource_GetDefaultFontAxisValues(This,values,num_values) (This)->lpVtbl->GetDefaultFontAxisValues(This,values,num_values) -#define IDWriteFontResource_GetFontAxisRanges(This,ranges,num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,ranges,num_ranges) -#define IDWriteFontResource_GetFontAxisAttributes(This,axis) (This)->lpVtbl->GetFontAxisAttributes(This,axis) -#define IDWriteFontResource_GetAxisNames(This,axis,names) (This)->lpVtbl->GetAxisNames(This,axis,names) -#define IDWriteFontResource_GetAxisValueNameCount(This,axis) (This)->lpVtbl->GetAxisValueNameCount(This,axis) -#define IDWriteFontResource_GetAxisValueNames(This,axis,axis_value,axis_range,names) (This)->lpVtbl->GetAxisValueNames(This,axis,axis_value,axis_range,names) +#define IDWriteFontResource_GetDefaultFontAxisValues(This, values, num_values) (This)->lpVtbl->GetDefaultFontAxisValues(This, values, num_values) +#define IDWriteFontResource_GetFontAxisRanges(This, ranges, num_ranges) (This)->lpVtbl->GetFontAxisRanges(This, ranges, num_ranges) +#define IDWriteFontResource_GetFontAxisAttributes(This, axis) (This)->lpVtbl->GetFontAxisAttributes(This, axis) +#define IDWriteFontResource_GetAxisNames(This, axis, names) (This)->lpVtbl->GetAxisNames(This, axis, names) +#define IDWriteFontResource_GetAxisValueNameCount(This, axis) (This)->lpVtbl->GetAxisValueNameCount(This, axis) +#define IDWriteFontResource_GetAxisValueNames(This, axis, axis_value, axis_range, names) (This)->lpVtbl->GetAxisValueNames(This, axis, axis_value, axis_range, names) #define IDWriteFontResource_HasVariations(This) (This)->lpVtbl->HasVariations(This) -#define IDWriteFontResource_CreateFontFace(This,simulations,axis_values,num_values,fontface) (This)->lpVtbl->CreateFontFace(This,simulations,axis_values,num_values,fontface) -#define IDWriteFontResource_CreateFontFaceReference(This,simulations,axis_values,num_values,reference) (This)->lpVtbl->CreateFontFaceReference(This,simulations,axis_values,num_values,reference) +#define IDWriteFontResource_CreateFontFace(This, simulations, axis_values, num_values, fontface) (This)->lpVtbl->CreateFontFace(This, simulations, axis_values, num_values, fontface) +#define IDWriteFontResource_CreateFontFaceReference(This, simulations, axis_values, num_values, reference) (This)->lpVtbl->CreateFontFaceReference(This, simulations, axis_values, num_values, reference) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontResource_QueryInterface(IDWriteFontResource* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontResource_QueryInterface(IDWriteFontResource* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontResource_AddRef(IDWriteFontResource* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontResource_Release(IDWriteFontResource* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontResource methods ***/ -static inline HRESULT IDWriteFontResource_GetFontFile(IDWriteFontResource* This,IDWriteFontFile **fontfile) { - return This->lpVtbl->GetFontFile(This,fontfile); +static inline HRESULT IDWriteFontResource_GetFontFile(IDWriteFontResource* This, IDWriteFontFile** fontfile) { + return This->lpVtbl->GetFontFile(This, fontfile); } static inline UINT32 IDWriteFontResource_GetFontFaceIndex(IDWriteFontResource* This) { - return This->lpVtbl->GetFontFaceIndex(This); + return This->lpVtbl->GetFontFaceIndex(This); } static inline UINT32 IDWriteFontResource_GetFontAxisCount(IDWriteFontResource* This) { - return This->lpVtbl->GetFontAxisCount(This); + return This->lpVtbl->GetFontAxisCount(This); } -static inline HRESULT IDWriteFontResource_GetDefaultFontAxisValues(IDWriteFontResource* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 num_values) { - return This->lpVtbl->GetDefaultFontAxisValues(This,values,num_values); +static inline HRESULT IDWriteFontResource_GetDefaultFontAxisValues(IDWriteFontResource* This, DWRITE_FONT_AXIS_VALUE* values, UINT32 num_values) { + return This->lpVtbl->GetDefaultFontAxisValues(This, values, num_values); } -static inline HRESULT IDWriteFontResource_GetFontAxisRanges(IDWriteFontResource* This,DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges) { - return This->lpVtbl->GetFontAxisRanges(This,ranges,num_ranges); +static inline HRESULT IDWriteFontResource_GetFontAxisRanges(IDWriteFontResource* This, DWRITE_FONT_AXIS_RANGE* ranges, UINT32 num_ranges) { + return This->lpVtbl->GetFontAxisRanges(This, ranges, num_ranges); } -static inline DWRITE_FONT_AXIS_ATTRIBUTES IDWriteFontResource_GetFontAxisAttributes(IDWriteFontResource* This,UINT32 axis) { - return This->lpVtbl->GetFontAxisAttributes(This,axis); +static inline DWRITE_FONT_AXIS_ATTRIBUTES IDWriteFontResource_GetFontAxisAttributes(IDWriteFontResource* This, UINT32 axis) { + return This->lpVtbl->GetFontAxisAttributes(This, axis); } -static inline HRESULT IDWriteFontResource_GetAxisNames(IDWriteFontResource* This,UINT32 axis,IDWriteLocalizedStrings **names) { - return This->lpVtbl->GetAxisNames(This,axis,names); +static inline HRESULT IDWriteFontResource_GetAxisNames(IDWriteFontResource* This, UINT32 axis, IDWriteLocalizedStrings** names) { + return This->lpVtbl->GetAxisNames(This, axis, names); } -static inline UINT32 IDWriteFontResource_GetAxisValueNameCount(IDWriteFontResource* This,UINT32 axis) { - return This->lpVtbl->GetAxisValueNameCount(This,axis); +static inline UINT32 IDWriteFontResource_GetAxisValueNameCount(IDWriteFontResource* This, UINT32 axis) { + return This->lpVtbl->GetAxisValueNameCount(This, axis); } -static inline HRESULT IDWriteFontResource_GetAxisValueNames(IDWriteFontResource* This,UINT32 axis,UINT32 axis_value,DWRITE_FONT_AXIS_RANGE *axis_range,IDWriteLocalizedStrings **names) { - return This->lpVtbl->GetAxisValueNames(This,axis,axis_value,axis_range,names); +static inline HRESULT IDWriteFontResource_GetAxisValueNames(IDWriteFontResource* This, UINT32 axis, UINT32 axis_value, DWRITE_FONT_AXIS_RANGE* axis_range, IDWriteLocalizedStrings** names) { + return This->lpVtbl->GetAxisValueNames(This, axis, axis_value, axis_range, names); } static inline WINBOOL IDWriteFontResource_HasVariations(IDWriteFontResource* This) { - return This->lpVtbl->HasVariations(This); + return This->lpVtbl->HasVariations(This); } -static inline HRESULT IDWriteFontResource_CreateFontFace(IDWriteFontResource* This,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontFace5 **fontface) { - return This->lpVtbl->CreateFontFace(This,simulations,axis_values,num_values,fontface); +static inline HRESULT IDWriteFontResource_CreateFontFace(IDWriteFontResource* This, DWRITE_FONT_SIMULATIONS simulations, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values, IDWriteFontFace5** fontface) { + return This->lpVtbl->CreateFontFace(This, simulations, axis_values, num_values, fontface); } -static inline HRESULT IDWriteFontResource_CreateFontFaceReference(IDWriteFontResource* This,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontFaceReference1 **reference) { - return This->lpVtbl->CreateFontFaceReference(This,simulations,axis_values,num_values,reference); +static inline HRESULT IDWriteFontResource_CreateFontFaceReference(IDWriteFontResource* This, DWRITE_FONT_SIMULATIONS simulations, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values, IDWriteFontFaceReference1** reference) { + return This->lpVtbl->CreateFontFaceReference(This, simulations, axis_values, num_values, reference); } #endif #endif #endif - -#endif /* __IDWriteFontResource_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontResource_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontSet1 interface @@ -1583,358 +1556,355 @@ static inline HRESULT IDWriteFontResource_CreateFontFaceReference(IDWriteFontRes #ifndef __IDWriteFontSet1_INTERFACE_DEFINED__ #define __IDWriteFontSet1_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontSet1, 0x7e9fda85, 0x6c92, 0x4053, 0xbc,0x47, 0x7a,0xe3,0x53,0x0d,0xb4,0xd3); +DEFINE_GUID(IID_IDWriteFontSet1, 0x7e9fda85, 0x6c92, 0x4053, 0xbc, 0x47, 0x7a, 0xe3, 0x53, 0x0d, 0xb4, 0xd3); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("7e9fda85-6c92-4053-bc47-7ae3530db4d3") -IDWriteFontSet1 : public IDWriteFontSet -{ - virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( - const DWRITE_FONT_PROPERTY *property, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values, - IDWriteFontSet1 **fontset) = 0; +IDWriteFontSet1 : public IDWriteFontSet { + virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( + const DWRITE_FONT_PROPERTY* property, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values, + IDWriteFontSet1** fontset) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFirstFontResources( - IDWriteFontSet1 **fontset) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFirstFontResources( + IDWriteFontSet1 * *fontset) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts__( - const UINT32 *indices, - UINT32 num_indices, - IDWriteFontSet1 **fontset) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts__( + const UINT32* indices, + UINT32 num_indices, + IDWriteFontSet1** fontset) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts_( - const DWRITE_FONT_AXIS_RANGE *axis_ranges, - UINT32 num_ranges, - WINBOOL select_any_range, - IDWriteFontSet1 **fontset) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts_( + const DWRITE_FONT_AXIS_RANGE* axis_ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + IDWriteFontSet1** fontset) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts( - const DWRITE_FONT_PROPERTY *props, - UINT32 num_properties, - WINBOOL select_any_property, - IDWriteFontSet1 **fontset) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts( + const DWRITE_FONT_PROPERTY* props, + UINT32 num_properties, + WINBOOL select_any_property, + IDWriteFontSet1** fontset) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFilteredFontIndices_( - const DWRITE_FONT_AXIS_RANGE *ranges, - UINT32 num_ranges, - WINBOOL select_any_range, - UINT32 *indices, - UINT32 num_indices, - UINT32 *actual_num_indices) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFilteredFontIndices_( + const DWRITE_FONT_AXIS_RANGE* ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + UINT32* indices, + UINT32 num_indices, + UINT32* actual_num_indices) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFilteredFontIndices( - const DWRITE_FONT_PROPERTY *props, - UINT32 num_properties, - WINBOOL select_any_range, - UINT32 *indices, - UINT32 num_indices, - UINT32 *actual_num_indices) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFilteredFontIndices( + const DWRITE_FONT_PROPERTY* props, + UINT32 num_properties, + WINBOOL select_any_range, + UINT32* indices, + UINT32 num_indices, + UINT32* actual_num_indices) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges_( - UINT32 font_index, - DWRITE_FONT_AXIS_RANGE *axis_ranges, - UINT32 num_ranges, - UINT32 *actual_num_ranges) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges_( + UINT32 font_index, + DWRITE_FONT_AXIS_RANGE * axis_ranges, + UINT32 num_ranges, + UINT32 * actual_num_ranges) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges( - DWRITE_FONT_AXIS_RANGE *axis_ranges, - UINT32 num_ranges, - UINT32 *actual_num_ranges) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges( + DWRITE_FONT_AXIS_RANGE * axis_ranges, + UINT32 num_ranges, + UINT32 * actual_num_ranges) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( - UINT32 index, - IDWriteFontFaceReference1 **reference) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( + UINT32 index, + IDWriteFontFaceReference1 * *reference) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateFontResource( - UINT32 index, - IDWriteFontResource **resource) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateFontResource( + UINT32 index, + IDWriteFontResource * *resource) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateFontFace( - UINT32 index, - IDWriteFontFace5 **fontface) = 0; - - virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality( - UINT32 index) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateFontFace( + UINT32 index, + IDWriteFontFace5 * *fontface) = 0; + virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality( + UINT32 index) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontSet1, 0x7e9fda85, 0x6c92, 0x4053, 0xbc,0x47, 0x7a,0xe3,0x53,0x0d,0xb4,0xd3) +__CRT_UUID_DECL(IDWriteFontSet1, 0x7e9fda85, 0x6c92, 0x4053, 0xbc, 0x47, 0x7a, 0xe3, 0x53, 0x0d, 0xb4, 0xd3) #endif #else typedef struct IDWriteFontSet1Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontSet1 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontSet1* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontSet1 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontSet1* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontSet1 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontSet1* This); - /*** IDWriteFontSet methods ***/ - UINT32 (STDMETHODCALLTYPE *GetFontCount)( - IDWriteFontSet1 *This); + /*** IDWriteFontSet methods ***/ + UINT32(STDMETHODCALLTYPE* GetFontCount)( + IDWriteFontSet1* This); - HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( - IDWriteFontSet1 *This, - UINT32 index, - IDWriteFontFaceReference **reference); + HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( + IDWriteFontSet1* This, + UINT32 index, + IDWriteFontFaceReference** reference); - HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)( - IDWriteFontSet1 *This, - IDWriteFontFaceReference *reference, - UINT32 *index, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* FindFontFaceReference)( + IDWriteFontSet1* This, + IDWriteFontFaceReference* reference, + UINT32* index, + WINBOOL* exists); - HRESULT (STDMETHODCALLTYPE *FindFontFace)( - IDWriteFontSet1 *This, - IDWriteFontFace *fontface, - UINT32 *index, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* FindFontFace)( + IDWriteFontSet1* This, + IDWriteFontFace* fontface, + UINT32* index, + WINBOOL* exists); - HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)( - IDWriteFontSet1 *This, - DWRITE_FONT_PROPERTY_ID id, - IDWriteStringList **values); + HRESULT(STDMETHODCALLTYPE* GetPropertyValues__)( + IDWriteFontSet1* This, + DWRITE_FONT_PROPERTY_ID id, + IDWriteStringList** values); - HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)( - IDWriteFontSet1 *This, - DWRITE_FONT_PROPERTY_ID id, - const WCHAR *preferred_locales, - IDWriteStringList **values); + HRESULT(STDMETHODCALLTYPE* GetPropertyValues_)( + IDWriteFontSet1* This, + DWRITE_FONT_PROPERTY_ID id, + const WCHAR* preferred_locales, + IDWriteStringList** values); - HRESULT (STDMETHODCALLTYPE *GetPropertyValues)( - IDWriteFontSet1 *This, - UINT32 index, - DWRITE_FONT_PROPERTY_ID id, - WINBOOL *exists, - IDWriteLocalizedStrings **values); + HRESULT(STDMETHODCALLTYPE* GetPropertyValues)( + IDWriteFontSet1* This, + UINT32 index, + DWRITE_FONT_PROPERTY_ID id, + WINBOOL* exists, + IDWriteLocalizedStrings** values); - HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)( - IDWriteFontSet1 *This, - const DWRITE_FONT_PROPERTY *property, - UINT32 *count); + HRESULT(STDMETHODCALLTYPE* GetPropertyOccurrenceCount)( + IDWriteFontSet1* This, + const DWRITE_FONT_PROPERTY* property, + UINT32* count); - HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)( - IDWriteFontSet1 *This, - const WCHAR *family, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFontSet **fontset); + HRESULT(STDMETHODCALLTYPE* GetMatchingFonts_)( + IDWriteFontSet1* This, + const WCHAR* family, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontSet** fontset); - HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( - IDWriteFontSet1 *This, - const DWRITE_FONT_PROPERTY *props, - UINT32 count, - IDWriteFontSet **fontset); + HRESULT(STDMETHODCALLTYPE* GetMatchingFonts)( + IDWriteFontSet1* This, + const DWRITE_FONT_PROPERTY* props, + UINT32 count, + IDWriteFontSet** fontset); - /*** IDWriteFontSet1 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)( - IDWriteFontSet1 *This, - const DWRITE_FONT_PROPERTY *property, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values, - IDWriteFontSet1 **fontset); + /*** IDWriteFontSet1 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFontSet1_GetMatchingFonts)( + IDWriteFontSet1* This, + const DWRITE_FONT_PROPERTY* property, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)( - IDWriteFontSet1 *This, - IDWriteFontSet1 **fontset); + HRESULT(STDMETHODCALLTYPE* GetFirstFontResources)( + IDWriteFontSet1* This, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)( - IDWriteFontSet1 *This, - const UINT32 *indices, - UINT32 num_indices, - IDWriteFontSet1 **fontset); + HRESULT(STDMETHODCALLTYPE* GetFilteredFonts__)( + IDWriteFontSet1* This, + const UINT32* indices, + UINT32 num_indices, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)( - IDWriteFontSet1 *This, - const DWRITE_FONT_AXIS_RANGE *axis_ranges, - UINT32 num_ranges, - WINBOOL select_any_range, - IDWriteFontSet1 **fontset); + HRESULT(STDMETHODCALLTYPE* GetFilteredFonts_)( + IDWriteFontSet1* This, + const DWRITE_FONT_AXIS_RANGE* axis_ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)( - IDWriteFontSet1 *This, - const DWRITE_FONT_PROPERTY *props, - UINT32 num_properties, - WINBOOL select_any_property, - IDWriteFontSet1 **fontset); + HRESULT(STDMETHODCALLTYPE* GetFilteredFonts)( + IDWriteFontSet1* This, + const DWRITE_FONT_PROPERTY* props, + UINT32 num_properties, + WINBOOL select_any_property, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)( - IDWriteFontSet1 *This, - const DWRITE_FONT_AXIS_RANGE *ranges, - UINT32 num_ranges, - WINBOOL select_any_range, - UINT32 *indices, - UINT32 num_indices, - UINT32 *actual_num_indices); + HRESULT(STDMETHODCALLTYPE* GetFilteredFontIndices_)( + IDWriteFontSet1* This, + const DWRITE_FONT_AXIS_RANGE* ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + UINT32* indices, + UINT32 num_indices, + UINT32* actual_num_indices); - HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)( - IDWriteFontSet1 *This, - const DWRITE_FONT_PROPERTY *props, - UINT32 num_properties, - WINBOOL select_any_range, - UINT32 *indices, - UINT32 num_indices, - UINT32 *actual_num_indices); + HRESULT(STDMETHODCALLTYPE* GetFilteredFontIndices)( + IDWriteFontSet1* This, + const DWRITE_FONT_PROPERTY* props, + UINT32 num_properties, + WINBOOL select_any_range, + UINT32* indices, + UINT32 num_indices, + UINT32* actual_num_indices); - HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)( - IDWriteFontSet1 *This, - UINT32 font_index, - DWRITE_FONT_AXIS_RANGE *axis_ranges, - UINT32 num_ranges, - UINT32 *actual_num_ranges); + HRESULT(STDMETHODCALLTYPE* GetFontAxisRanges_)( + IDWriteFontSet1* This, + UINT32 font_index, + DWRITE_FONT_AXIS_RANGE* axis_ranges, + UINT32 num_ranges, + UINT32* actual_num_ranges); - HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)( - IDWriteFontSet1 *This, - DWRITE_FONT_AXIS_RANGE *axis_ranges, - UINT32 num_ranges, - UINT32 *actual_num_ranges); + HRESULT(STDMETHODCALLTYPE* GetFontAxisRanges)( + IDWriteFontSet1* This, + DWRITE_FONT_AXIS_RANGE* axis_ranges, + UINT32 num_ranges, + UINT32* actual_num_ranges); - HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)( - IDWriteFontSet1 *This, - UINT32 index, - IDWriteFontFaceReference1 **reference); + HRESULT(STDMETHODCALLTYPE* IDWriteFontSet1_GetFontFaceReference)( + IDWriteFontSet1* This, + UINT32 index, + IDWriteFontFaceReference1** reference); - HRESULT (STDMETHODCALLTYPE *CreateFontResource)( - IDWriteFontSet1 *This, - UINT32 index, - IDWriteFontResource **resource); + HRESULT(STDMETHODCALLTYPE* CreateFontResource)( + IDWriteFontSet1* This, + UINT32 index, + IDWriteFontResource** resource); - HRESULT (STDMETHODCALLTYPE *CreateFontFace)( - IDWriteFontSet1 *This, - UINT32 index, - IDWriteFontFace5 **fontface); + HRESULT(STDMETHODCALLTYPE* CreateFontFace)( + IDWriteFontSet1* This, + UINT32 index, + IDWriteFontFace5** fontface); - DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( - IDWriteFontSet1 *This, - UINT32 index); + DWRITE_LOCALITY(STDMETHODCALLTYPE* GetFontLocality)( + IDWriteFontSet1* This, + UINT32 index); - END_INTERFACE + END_INTERFACE } IDWriteFontSet1Vtbl; interface IDWriteFontSet1 { - CONST_VTBL IDWriteFontSet1Vtbl* lpVtbl; + CONST_VTBL IDWriteFontSet1Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontSet1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSet1_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontSet1_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontSet1_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontSet methods ***/ #define IDWriteFontSet1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) -#define IDWriteFontSet1_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists) -#define IDWriteFontSet1_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists) -#define IDWriteFontSet1_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values) -#define IDWriteFontSet1_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values) -#define IDWriteFontSet1_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values) -#define IDWriteFontSet1_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count) -#define IDWriteFontSet1_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset) +#define IDWriteFontSet1_FindFontFaceReference(This, reference, index, exists) (This)->lpVtbl->FindFontFaceReference(This, reference, index, exists) +#define IDWriteFontSet1_FindFontFace(This, fontface, index, exists) (This)->lpVtbl->FindFontFace(This, fontface, index, exists) +#define IDWriteFontSet1_GetPropertyValues__(This, id, values) (This)->lpVtbl->GetPropertyValues__(This, id, values) +#define IDWriteFontSet1_GetPropertyValues_(This, id, preferred_locales, values) (This)->lpVtbl->GetPropertyValues_(This, id, preferred_locales, values) +#define IDWriteFontSet1_GetPropertyValues(This, index, id, exists, values) (This)->lpVtbl->GetPropertyValues(This, index, id, exists, values) +#define IDWriteFontSet1_GetPropertyOccurrenceCount(This, property, count) (This)->lpVtbl->GetPropertyOccurrenceCount(This, property, count) +#define IDWriteFontSet1_GetMatchingFonts_(This, family, weight, stretch, style, fontset) (This)->lpVtbl->GetMatchingFonts_(This, family, weight, stretch, style, fontset) /*** IDWriteFontSet1 methods ***/ -#define IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset) -#define IDWriteFontSet1_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset) -#define IDWriteFontSet1_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset) -#define IDWriteFontSet1_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) -#define IDWriteFontSet1_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset) -#define IDWriteFontSet1_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) -#define IDWriteFontSet1_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) -#define IDWriteFontSet1_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) -#define IDWriteFontSet1_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) -#define IDWriteFontSet1_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference) -#define IDWriteFontSet1_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource) -#define IDWriteFontSet1_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface) -#define IDWriteFontSet1_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) +#define IDWriteFontSet1_GetMatchingFonts(This, property, axis_values, num_values, fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This, property, axis_values, num_values, fontset) +#define IDWriteFontSet1_GetFirstFontResources(This, fontset) (This)->lpVtbl->GetFirstFontResources(This, fontset) +#define IDWriteFontSet1_GetFilteredFonts__(This, indices, num_indices, fontset) (This)->lpVtbl->GetFilteredFonts__(This, indices, num_indices, fontset) +#define IDWriteFontSet1_GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset) (This)->lpVtbl->GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset) +#define IDWriteFontSet1_GetFilteredFonts(This, props, num_properties, select_any_property, fontset) (This)->lpVtbl->GetFilteredFonts(This, props, num_properties, select_any_property, fontset) +#define IDWriteFontSet1_GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices) +#define IDWriteFontSet1_GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices) +#define IDWriteFontSet1_GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges) +#define IDWriteFontSet1_GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges) +#define IDWriteFontSet1_GetFontFaceReference(This, index, reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This, index, reference) +#define IDWriteFontSet1_CreateFontResource(This, index, resource) (This)->lpVtbl->CreateFontResource(This, index, resource) +#define IDWriteFontSet1_CreateFontFace(This, index, fontface) (This)->lpVtbl->CreateFontFace(This, index, fontface) +#define IDWriteFontSet1_GetFontLocality(This, index) (This)->lpVtbl->GetFontLocality(This, index) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontSet1_QueryInterface(IDWriteFontSet1* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontSet1_QueryInterface(IDWriteFontSet1* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontSet1_AddRef(IDWriteFontSet1* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontSet1_Release(IDWriteFontSet1* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontSet methods ***/ static inline UINT32 IDWriteFontSet1_GetFontCount(IDWriteFontSet1* This) { - return This->lpVtbl->GetFontCount(This); + return This->lpVtbl->GetFontCount(This); } -static inline HRESULT IDWriteFontSet1_FindFontFaceReference(IDWriteFontSet1* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) { - return This->lpVtbl->FindFontFaceReference(This,reference,index,exists); +static inline HRESULT IDWriteFontSet1_FindFontFaceReference(IDWriteFontSet1* This, IDWriteFontFaceReference* reference, UINT32* index, WINBOOL* exists) { + return This->lpVtbl->FindFontFaceReference(This, reference, index, exists); } -static inline HRESULT IDWriteFontSet1_FindFontFace(IDWriteFontSet1* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) { - return This->lpVtbl->FindFontFace(This,fontface,index,exists); +static inline HRESULT IDWriteFontSet1_FindFontFace(IDWriteFontSet1* This, IDWriteFontFace* fontface, UINT32* index, WINBOOL* exists) { + return This->lpVtbl->FindFontFace(This, fontface, index, exists); } -static inline HRESULT IDWriteFontSet1_GetPropertyValues__(IDWriteFontSet1* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) { - return This->lpVtbl->GetPropertyValues__(This,id,values); +static inline HRESULT IDWriteFontSet1_GetPropertyValues__(IDWriteFontSet1* This, DWRITE_FONT_PROPERTY_ID id, IDWriteStringList** values) { + return This->lpVtbl->GetPropertyValues__(This, id, values); } -static inline HRESULT IDWriteFontSet1_GetPropertyValues_(IDWriteFontSet1* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) { - return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values); +static inline HRESULT IDWriteFontSet1_GetPropertyValues_(IDWriteFontSet1* This, DWRITE_FONT_PROPERTY_ID id, const WCHAR* preferred_locales, IDWriteStringList** values) { + return This->lpVtbl->GetPropertyValues_(This, id, preferred_locales, values); } -static inline HRESULT IDWriteFontSet1_GetPropertyValues(IDWriteFontSet1* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) { - return This->lpVtbl->GetPropertyValues(This,index,id,exists,values); +static inline HRESULT IDWriteFontSet1_GetPropertyValues(IDWriteFontSet1* This, UINT32 index, DWRITE_FONT_PROPERTY_ID id, WINBOOL* exists, IDWriteLocalizedStrings** values) { + return This->lpVtbl->GetPropertyValues(This, index, id, exists, values); } -static inline HRESULT IDWriteFontSet1_GetPropertyOccurrenceCount(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) { - return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count); +static inline HRESULT IDWriteFontSet1_GetPropertyOccurrenceCount(IDWriteFontSet1* This, const DWRITE_FONT_PROPERTY* property, UINT32* count) { + return This->lpVtbl->GetPropertyOccurrenceCount(This, property, count); } -static inline HRESULT IDWriteFontSet1_GetMatchingFonts_(IDWriteFontSet1* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) { - return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset); +static inline HRESULT IDWriteFontSet1_GetMatchingFonts_(IDWriteFontSet1* This, const WCHAR* family, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFontSet** fontset) { + return This->lpVtbl->GetMatchingFonts_(This, family, weight, stretch, style, fontset); } /*** IDWriteFontSet1 methods ***/ -static inline HRESULT IDWriteFontSet1_GetMatchingFonts(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *property,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontSet1 **fontset) { - return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset); +static inline HRESULT IDWriteFontSet1_GetMatchingFonts(IDWriteFontSet1* This, const DWRITE_FONT_PROPERTY* property, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values, IDWriteFontSet1** fontset) { + return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This, property, axis_values, num_values, fontset); } -static inline HRESULT IDWriteFontSet1_GetFirstFontResources(IDWriteFontSet1* This,IDWriteFontSet1 **fontset) { - return This->lpVtbl->GetFirstFontResources(This,fontset); +static inline HRESULT IDWriteFontSet1_GetFirstFontResources(IDWriteFontSet1* This, IDWriteFontSet1** fontset) { + return This->lpVtbl->GetFirstFontResources(This, fontset); } -static inline HRESULT IDWriteFontSet1_GetFilteredFonts__(IDWriteFontSet1* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) { - return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset); +static inline HRESULT IDWriteFontSet1_GetFilteredFonts__(IDWriteFontSet1* This, const UINT32* indices, UINT32 num_indices, IDWriteFontSet1** fontset) { + return This->lpVtbl->GetFilteredFonts__(This, indices, num_indices, fontset); } -static inline HRESULT IDWriteFontSet1_GetFilteredFonts_(IDWriteFontSet1* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) { - return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset); +static inline HRESULT IDWriteFontSet1_GetFilteredFonts_(IDWriteFontSet1* This, const DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, WINBOOL select_any_range, IDWriteFontSet1** fontset) { + return This->lpVtbl->GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset); } -static inline HRESULT IDWriteFontSet1_GetFilteredFonts(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) { - return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset); +static inline HRESULT IDWriteFontSet1_GetFilteredFonts(IDWriteFontSet1* This, const DWRITE_FONT_PROPERTY* props, UINT32 num_properties, WINBOOL select_any_property, IDWriteFontSet1** fontset) { + return This->lpVtbl->GetFilteredFonts(This, props, num_properties, select_any_property, fontset); } -static inline HRESULT IDWriteFontSet1_GetFilteredFontIndices_(IDWriteFontSet1* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { - return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices); +static inline HRESULT IDWriteFontSet1_GetFilteredFontIndices_(IDWriteFontSet1* This, const DWRITE_FONT_AXIS_RANGE* ranges, UINT32 num_ranges, WINBOOL select_any_range, UINT32* indices, UINT32 num_indices, UINT32* actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices); } -static inline HRESULT IDWriteFontSet1_GetFilteredFontIndices(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { - return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices); +static inline HRESULT IDWriteFontSet1_GetFilteredFontIndices(IDWriteFontSet1* This, const DWRITE_FONT_PROPERTY* props, UINT32 num_properties, WINBOOL select_any_range, UINT32* indices, UINT32 num_indices, UINT32* actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices); } -static inline HRESULT IDWriteFontSet1_GetFontAxisRanges_(IDWriteFontSet1* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { - return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges); +static inline HRESULT IDWriteFontSet1_GetFontAxisRanges_(IDWriteFontSet1* This, UINT32 font_index, DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, UINT32* actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges); } -static inline HRESULT IDWriteFontSet1_GetFontAxisRanges(IDWriteFontSet1* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { - return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges); +static inline HRESULT IDWriteFontSet1_GetFontAxisRanges(IDWriteFontSet1* This, DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, UINT32* actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges); } -static inline HRESULT IDWriteFontSet1_GetFontFaceReference(IDWriteFontSet1* This,UINT32 index,IDWriteFontFaceReference1 **reference) { - return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference); +static inline HRESULT IDWriteFontSet1_GetFontFaceReference(IDWriteFontSet1* This, UINT32 index, IDWriteFontFaceReference1** reference) { + return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This, index, reference); } -static inline HRESULT IDWriteFontSet1_CreateFontResource(IDWriteFontSet1* This,UINT32 index,IDWriteFontResource **resource) { - return This->lpVtbl->CreateFontResource(This,index,resource); +static inline HRESULT IDWriteFontSet1_CreateFontResource(IDWriteFontSet1* This, UINT32 index, IDWriteFontResource** resource) { + return This->lpVtbl->CreateFontResource(This, index, resource); } -static inline HRESULT IDWriteFontSet1_CreateFontFace(IDWriteFontSet1* This,UINT32 index,IDWriteFontFace5 **fontface) { - return This->lpVtbl->CreateFontFace(This,index,fontface); +static inline HRESULT IDWriteFontSet1_CreateFontFace(IDWriteFontSet1* This, UINT32 index, IDWriteFontFace5** fontface) { + return This->lpVtbl->CreateFontFace(This, index, fontface); } -static inline DWRITE_LOCALITY IDWriteFontSet1_GetFontLocality(IDWriteFontSet1* This,UINT32 index) { - return This->lpVtbl->GetFontLocality(This,index); +static inline DWRITE_LOCALITY IDWriteFontSet1_GetFontLocality(IDWriteFontSet1* This, UINT32 index) { + return This->lpVtbl->GetFontLocality(This, index); } #endif #endif #endif - -#endif /* __IDWriteFontSet1_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontSet1_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFont3 interface @@ -1942,242 +1912,238 @@ static inline DWRITE_LOCALITY IDWriteFontSet1_GetFontLocality(IDWriteFontSet1* T #ifndef __IDWriteFont3_INTERFACE_DEFINED__ #define __IDWriteFont3_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFont3, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44); +DEFINE_GUID(IID_IDWriteFont3, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe, 0x0b, 0xd9, 0x12, 0xe8, 0x53, 0x89, 0x44); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("29748ed6-8c9c-4a6a-be0b-d912e8538944") -IDWriteFont3 : public IDWriteFont2 -{ - virtual HRESULT STDMETHODCALLTYPE CreateFontFace( - IDWriteFontFace3 **fontface) = 0; +IDWriteFont3 : public IDWriteFont2 { + virtual HRESULT STDMETHODCALLTYPE CreateFontFace( + IDWriteFontFace3 * *fontface) = 0; - virtual WINBOOL STDMETHODCALLTYPE Equals( - IDWriteFont *font) = 0; + virtual WINBOOL STDMETHODCALLTYPE Equals( + IDWriteFont * font) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( - IDWriteFontFaceReference **reference) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( + IDWriteFontFaceReference * *reference) = 0; - virtual WINBOOL STDMETHODCALLTYPE HasCharacter( - UINT32 character) = 0; - - virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality( - ) = 0; + virtual WINBOOL STDMETHODCALLTYPE HasCharacter( + UINT32 character) = 0; + virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality() = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFont3, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44) +__CRT_UUID_DECL(IDWriteFont3, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe, 0x0b, 0xd9, 0x12, 0xe8, 0x53, 0x89, 0x44) #endif #else typedef struct IDWriteFont3Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFont3 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFont3* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFont3 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFont3* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFont3 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFont3* This); - /*** IDWriteFont methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFontFamily)( - IDWriteFont3 *This, - IDWriteFontFamily **family); + /*** IDWriteFont methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFontFamily)( + IDWriteFont3* This, + IDWriteFontFamily** family); - DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( - IDWriteFont3 *This); + DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetWeight)( + IDWriteFont3* This); - DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( - IDWriteFont3 *This); + DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetStretch)( + IDWriteFont3* This); - DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( - IDWriteFont3 *This); + DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetStyle)( + IDWriteFont3* This); - WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( - IDWriteFont3 *This); + WINBOOL(STDMETHODCALLTYPE* IsSymbolFont)( + IDWriteFont3* This); - HRESULT (STDMETHODCALLTYPE *GetFaceNames)( - IDWriteFont3 *This, - IDWriteLocalizedStrings **names); + HRESULT(STDMETHODCALLTYPE* GetFaceNames)( + IDWriteFont3* This, + IDWriteLocalizedStrings** names); - HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( - IDWriteFont3 *This, - DWRITE_INFORMATIONAL_STRING_ID stringid, - IDWriteLocalizedStrings **strings, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* GetInformationalStrings)( + IDWriteFont3* This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings** strings, + WINBOOL* exists); - DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( - IDWriteFont3 *This); + DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( + IDWriteFont3* This); - void (STDMETHODCALLTYPE *GetMetrics)( - IDWriteFont3 *This, - DWRITE_FONT_METRICS *metrics); + void(STDMETHODCALLTYPE* GetMetrics)( + IDWriteFont3* This, + DWRITE_FONT_METRICS* metrics); - HRESULT (STDMETHODCALLTYPE *HasCharacter)( - IDWriteFont3 *This, - UINT32 value, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* HasCharacter)( + IDWriteFont3* This, + UINT32 value, + WINBOOL* exists); - HRESULT (STDMETHODCALLTYPE *CreateFontFace)( - IDWriteFont3 *This, - IDWriteFontFace **face); + HRESULT(STDMETHODCALLTYPE* CreateFontFace)( + IDWriteFont3* This, + IDWriteFontFace** face); - /*** IDWriteFont1 methods ***/ - void (STDMETHODCALLTYPE *IDWriteFont1_GetMetrics)( - IDWriteFont3 *This, - DWRITE_FONT_METRICS1 *metrics); + /*** IDWriteFont1 methods ***/ + void(STDMETHODCALLTYPE* IDWriteFont1_GetMetrics)( + IDWriteFont3* This, + DWRITE_FONT_METRICS1* metrics); - void (STDMETHODCALLTYPE *GetPanose)( - IDWriteFont3 *This, - DWRITE_PANOSE *panose); + void(STDMETHODCALLTYPE* GetPanose)( + IDWriteFont3* This, + DWRITE_PANOSE* panose); - HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( - IDWriteFont3 *This, - UINT32 max_count, - DWRITE_UNICODE_RANGE *ranges, - UINT32 *count); + HRESULT(STDMETHODCALLTYPE* GetUnicodeRanges)( + IDWriteFont3* This, + UINT32 max_count, + DWRITE_UNICODE_RANGE* ranges, + UINT32* count); - WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( - IDWriteFont3 *This); + WINBOOL(STDMETHODCALLTYPE* IsMonospacedFont)( + IDWriteFont3* This); - /*** IDWriteFont2 methods ***/ - WINBOOL (STDMETHODCALLTYPE *IsColorFont)( - IDWriteFont3 *This); + /*** IDWriteFont2 methods ***/ + WINBOOL(STDMETHODCALLTYPE* IsColorFont)( + IDWriteFont3* This); - /*** IDWriteFont3 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFont3_CreateFontFace)( - IDWriteFont3 *This, - IDWriteFontFace3 **fontface); + /*** IDWriteFont3 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFont3_CreateFontFace)( + IDWriteFont3* This, + IDWriteFontFace3** fontface); - WINBOOL (STDMETHODCALLTYPE *Equals)( - IDWriteFont3 *This, - IDWriteFont *font); + WINBOOL(STDMETHODCALLTYPE* Equals)( + IDWriteFont3* This, + IDWriteFont* font); - HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( - IDWriteFont3 *This, - IDWriteFontFaceReference **reference); + HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( + IDWriteFont3* This, + IDWriteFontFaceReference** reference); - WINBOOL (STDMETHODCALLTYPE *IDWriteFont3_HasCharacter)( - IDWriteFont3 *This, - UINT32 character); + WINBOOL(STDMETHODCALLTYPE* IDWriteFont3_HasCharacter)( + IDWriteFont3* This, + UINT32 character); - DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)( - IDWriteFont3 *This); + DWRITE_LOCALITY(STDMETHODCALLTYPE* GetLocality)( + IDWriteFont3* This); - END_INTERFACE + END_INTERFACE } IDWriteFont3Vtbl; interface IDWriteFont3 { - CONST_VTBL IDWriteFont3Vtbl* lpVtbl; + CONST_VTBL IDWriteFont3Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFont3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFont3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFont3_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFont3_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFont methods ***/ -#define IDWriteFont3_GetFontFamily(This,family) (This)->lpVtbl->GetFontFamily(This,family) +#define IDWriteFont3_GetFontFamily(This, family) (This)->lpVtbl->GetFontFamily(This, family) #define IDWriteFont3_GetWeight(This) (This)->lpVtbl->GetWeight(This) #define IDWriteFont3_GetStretch(This) (This)->lpVtbl->GetStretch(This) #define IDWriteFont3_GetStyle(This) (This)->lpVtbl->GetStyle(This) #define IDWriteFont3_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) -#define IDWriteFont3_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names) -#define IDWriteFont3_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) +#define IDWriteFont3_GetFaceNames(This, names) (This)->lpVtbl->GetFaceNames(This, names) +#define IDWriteFont3_GetInformationalStrings(This, stringid, strings, exists) (This)->lpVtbl->GetInformationalStrings(This, stringid, strings, exists) #define IDWriteFont3_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) /*** IDWriteFont1 methods ***/ -#define IDWriteFont3_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFont1_GetMetrics(This,metrics) -#define IDWriteFont3_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) -#define IDWriteFont3_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFont3_GetMetrics(This, metrics) (This)->lpVtbl->IDWriteFont1_GetMetrics(This, metrics) +#define IDWriteFont3_GetPanose(This, panose) (This)->lpVtbl->GetPanose(This, panose) +#define IDWriteFont3_GetUnicodeRanges(This, max_count, ranges, count) (This)->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count) #define IDWriteFont3_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) /*** IDWriteFont2 methods ***/ #define IDWriteFont3_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) /*** IDWriteFont3 methods ***/ -#define IDWriteFont3_CreateFontFace(This,fontface) (This)->lpVtbl->IDWriteFont3_CreateFontFace(This,fontface) -#define IDWriteFont3_Equals(This,font) (This)->lpVtbl->Equals(This,font) -#define IDWriteFont3_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference) -#define IDWriteFont3_HasCharacter(This,character) (This)->lpVtbl->IDWriteFont3_HasCharacter(This,character) +#define IDWriteFont3_CreateFontFace(This, fontface) (This)->lpVtbl->IDWriteFont3_CreateFontFace(This, fontface) +#define IDWriteFont3_Equals(This, font) (This)->lpVtbl->Equals(This, font) +#define IDWriteFont3_GetFontFaceReference(This, reference) (This)->lpVtbl->GetFontFaceReference(This, reference) +#define IDWriteFont3_HasCharacter(This, character) (This)->lpVtbl->IDWriteFont3_HasCharacter(This, character) #define IDWriteFont3_GetLocality(This) (This)->lpVtbl->GetLocality(This) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFont3_QueryInterface(IDWriteFont3* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFont3_QueryInterface(IDWriteFont3* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFont3_AddRef(IDWriteFont3* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFont3_Release(IDWriteFont3* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFont methods ***/ -static inline HRESULT IDWriteFont3_GetFontFamily(IDWriteFont3* This,IDWriteFontFamily **family) { - return This->lpVtbl->GetFontFamily(This,family); +static inline HRESULT IDWriteFont3_GetFontFamily(IDWriteFont3* This, IDWriteFontFamily** family) { + return This->lpVtbl->GetFontFamily(This, family); } static inline DWRITE_FONT_WEIGHT IDWriteFont3_GetWeight(IDWriteFont3* This) { - return This->lpVtbl->GetWeight(This); + return This->lpVtbl->GetWeight(This); } static inline DWRITE_FONT_STRETCH IDWriteFont3_GetStretch(IDWriteFont3* This) { - return This->lpVtbl->GetStretch(This); + return This->lpVtbl->GetStretch(This); } static inline DWRITE_FONT_STYLE IDWriteFont3_GetStyle(IDWriteFont3* This) { - return This->lpVtbl->GetStyle(This); + return This->lpVtbl->GetStyle(This); } static inline WINBOOL IDWriteFont3_IsSymbolFont(IDWriteFont3* This) { - return This->lpVtbl->IsSymbolFont(This); + return This->lpVtbl->IsSymbolFont(This); } -static inline HRESULT IDWriteFont3_GetFaceNames(IDWriteFont3* This,IDWriteLocalizedStrings **names) { - return This->lpVtbl->GetFaceNames(This,names); +static inline HRESULT IDWriteFont3_GetFaceNames(IDWriteFont3* This, IDWriteLocalizedStrings** names) { + return This->lpVtbl->GetFaceNames(This, names); } -static inline HRESULT IDWriteFont3_GetInformationalStrings(IDWriteFont3* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { - return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +static inline HRESULT IDWriteFont3_GetInformationalStrings(IDWriteFont3* This, DWRITE_INFORMATIONAL_STRING_ID stringid, IDWriteLocalizedStrings** strings, WINBOOL* exists) { + return This->lpVtbl->GetInformationalStrings(This, stringid, strings, exists); } static inline DWRITE_FONT_SIMULATIONS IDWriteFont3_GetSimulations(IDWriteFont3* This) { - return This->lpVtbl->GetSimulations(This); + return This->lpVtbl->GetSimulations(This); } /*** IDWriteFont1 methods ***/ -static inline void IDWriteFont3_GetMetrics(IDWriteFont3* This,DWRITE_FONT_METRICS1 *metrics) { - This->lpVtbl->IDWriteFont1_GetMetrics(This,metrics); +static inline void IDWriteFont3_GetMetrics(IDWriteFont3* This, DWRITE_FONT_METRICS1* metrics) { + This->lpVtbl->IDWriteFont1_GetMetrics(This, metrics); } -static inline void IDWriteFont3_GetPanose(IDWriteFont3* This,DWRITE_PANOSE *panose) { - This->lpVtbl->GetPanose(This,panose); +static inline void IDWriteFont3_GetPanose(IDWriteFont3* This, DWRITE_PANOSE* panose) { + This->lpVtbl->GetPanose(This, panose); } -static inline HRESULT IDWriteFont3_GetUnicodeRanges(IDWriteFont3* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { - return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +static inline HRESULT IDWriteFont3_GetUnicodeRanges(IDWriteFont3* This, UINT32 max_count, DWRITE_UNICODE_RANGE* ranges, UINT32* count) { + return This->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count); } static inline WINBOOL IDWriteFont3_IsMonospacedFont(IDWriteFont3* This) { - return This->lpVtbl->IsMonospacedFont(This); + return This->lpVtbl->IsMonospacedFont(This); } /*** IDWriteFont2 methods ***/ static inline WINBOOL IDWriteFont3_IsColorFont(IDWriteFont3* This) { - return This->lpVtbl->IsColorFont(This); + return This->lpVtbl->IsColorFont(This); } /*** IDWriteFont3 methods ***/ -static inline HRESULT IDWriteFont3_CreateFontFace(IDWriteFont3* This,IDWriteFontFace3 **fontface) { - return This->lpVtbl->IDWriteFont3_CreateFontFace(This,fontface); +static inline HRESULT IDWriteFont3_CreateFontFace(IDWriteFont3* This, IDWriteFontFace3** fontface) { + return This->lpVtbl->IDWriteFont3_CreateFontFace(This, fontface); } -static inline WINBOOL IDWriteFont3_Equals(IDWriteFont3* This,IDWriteFont *font) { - return This->lpVtbl->Equals(This,font); +static inline WINBOOL IDWriteFont3_Equals(IDWriteFont3* This, IDWriteFont* font) { + return This->lpVtbl->Equals(This, font); } -static inline HRESULT IDWriteFont3_GetFontFaceReference(IDWriteFont3* This,IDWriteFontFaceReference **reference) { - return This->lpVtbl->GetFontFaceReference(This,reference); +static inline HRESULT IDWriteFont3_GetFontFaceReference(IDWriteFont3* This, IDWriteFontFaceReference** reference) { + return This->lpVtbl->GetFontFaceReference(This, reference); } -static inline WINBOOL IDWriteFont3_HasCharacter(IDWriteFont3* This,UINT32 character) { - return This->lpVtbl->IDWriteFont3_HasCharacter(This,character); +static inline WINBOOL IDWriteFont3_HasCharacter(IDWriteFont3* This, UINT32 character) { + return This->lpVtbl->IDWriteFont3_HasCharacter(This, character); } static inline DWRITE_LOCALITY IDWriteFont3_GetLocality(IDWriteFont3* This) { - return This->lpVtbl->GetLocality(This); + return This->lpVtbl->GetLocality(This); } #endif #endif #endif - -#endif /* __IDWriteFont3_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFont3_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontFamily1 interface @@ -2185,158 +2151,155 @@ static inline DWRITE_LOCALITY IDWriteFont3_GetLocality(IDWriteFont3* This) { #ifndef __IDWriteFontFamily1_INTERFACE_DEFINED__ #define __IDWriteFontFamily1_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontFamily1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xdf); +DEFINE_GUID(IID_IDWriteFontFamily1, 0xda20d8ef, 0x812a, 0x4c43, 0x98, 0x02, 0x62, 0xec, 0x4a, 0xbd, 0x7a, 0xdf); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7adf") -IDWriteFontFamily1 : public IDWriteFontFamily -{ - virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality( - UINT32 index) = 0; +IDWriteFontFamily1 : public IDWriteFontFamily { + virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality( + UINT32 index) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFont( - UINT32 index, - IDWriteFont3 **font) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( - UINT32 index, - IDWriteFontFaceReference **reference) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFont( + UINT32 index, + IDWriteFont3 * *font) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( + UINT32 index, + IDWriteFontFaceReference * *reference) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFamily1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xdf) +__CRT_UUID_DECL(IDWriteFontFamily1, 0xda20d8ef, 0x812a, 0x4c43, 0x98, 0x02, 0x62, 0xec, 0x4a, 0xbd, 0x7a, 0xdf) #endif #else typedef struct IDWriteFontFamily1Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontFamily1 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontFamily1* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontFamily1 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontFamily1* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontFamily1 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontFamily1* This); - /*** IDWriteFontList methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFontCollection)( - IDWriteFontFamily1 *This, - IDWriteFontCollection **collection); + /*** IDWriteFontList methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFontCollection)( + IDWriteFontFamily1* This, + IDWriteFontCollection** collection); - UINT32 (STDMETHODCALLTYPE *GetFontCount)( - IDWriteFontFamily1 *This); + UINT32(STDMETHODCALLTYPE* GetFontCount)( + IDWriteFontFamily1* This); - HRESULT (STDMETHODCALLTYPE *GetFont)( - IDWriteFontFamily1 *This, - UINT32 index, - IDWriteFont **font); + HRESULT(STDMETHODCALLTYPE* GetFont)( + IDWriteFontFamily1* This, + UINT32 index, + IDWriteFont** font); - /*** IDWriteFontFamily methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( - IDWriteFontFamily1 *This, - IDWriteLocalizedStrings **names); + /*** IDWriteFontFamily methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFamilyNames)( + IDWriteFontFamily1* This, + IDWriteLocalizedStrings** names); - HRESULT (STDMETHODCALLTYPE *GetFirstMatchingFont)( - IDWriteFontFamily1 *This, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFont **font); + HRESULT(STDMETHODCALLTYPE* GetFirstMatchingFont)( + IDWriteFontFamily1* This, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFont** font); - HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( - IDWriteFontFamily1 *This, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFontList **fonts); + HRESULT(STDMETHODCALLTYPE* GetMatchingFonts)( + IDWriteFontFamily1* This, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontList** fonts); - /*** IDWriteFontFamily1 methods ***/ - DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( - IDWriteFontFamily1 *This, - UINT32 index); + /*** IDWriteFontFamily1 methods ***/ + DWRITE_LOCALITY(STDMETHODCALLTYPE* GetFontLocality)( + IDWriteFontFamily1* This, + UINT32 index); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFamily1_GetFont)( - IDWriteFontFamily1 *This, - UINT32 index, - IDWriteFont3 **font); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFamily1_GetFont)( + IDWriteFontFamily1* This, + UINT32 index, + IDWriteFont3** font); - HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( - IDWriteFontFamily1 *This, - UINT32 index, - IDWriteFontFaceReference **reference); + HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( + IDWriteFontFamily1* This, + UINT32 index, + IDWriteFontFaceReference** reference); - END_INTERFACE + END_INTERFACE } IDWriteFontFamily1Vtbl; interface IDWriteFontFamily1 { - CONST_VTBL IDWriteFontFamily1Vtbl* lpVtbl; + CONST_VTBL IDWriteFontFamily1Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontFamily1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFamily1_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontFamily1_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontFamily1_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontList methods ***/ -#define IDWriteFontFamily1_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteFontFamily1_GetFontCollection(This, collection) (This)->lpVtbl->GetFontCollection(This, collection) #define IDWriteFontFamily1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) /*** IDWriteFontFamily methods ***/ -#define IDWriteFontFamily1_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names) -#define IDWriteFontFamily1_GetFirstMatchingFont(This,weight,stretch,style,font) (This)->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font) -#define IDWriteFontFamily1_GetMatchingFonts(This,weight,stretch,style,fonts) (This)->lpVtbl->GetMatchingFonts(This,weight,stretch,style,fonts) +#define IDWriteFontFamily1_GetFamilyNames(This, names) (This)->lpVtbl->GetFamilyNames(This, names) +#define IDWriteFontFamily1_GetFirstMatchingFont(This, weight, stretch, style, font) (This)->lpVtbl->GetFirstMatchingFont(This, weight, stretch, style, font) +#define IDWriteFontFamily1_GetMatchingFonts(This, weight, stretch, style, fonts) (This)->lpVtbl->GetMatchingFonts(This, weight, stretch, style, fonts) /*** IDWriteFontFamily1 methods ***/ -#define IDWriteFontFamily1_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) -#define IDWriteFontFamily1_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font) -#define IDWriteFontFamily1_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference) +#define IDWriteFontFamily1_GetFontLocality(This, index) (This)->lpVtbl->GetFontLocality(This, index) +#define IDWriteFontFamily1_GetFont(This, index, font) (This)->lpVtbl->IDWriteFontFamily1_GetFont(This, index, font) +#define IDWriteFontFamily1_GetFontFaceReference(This, index, reference) (This)->lpVtbl->GetFontFaceReference(This, index, reference) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFamily1_QueryInterface(IDWriteFontFamily1* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontFamily1_QueryInterface(IDWriteFontFamily1* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontFamily1_AddRef(IDWriteFontFamily1* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontFamily1_Release(IDWriteFontFamily1* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontList methods ***/ -static inline HRESULT IDWriteFontFamily1_GetFontCollection(IDWriteFontFamily1* This,IDWriteFontCollection **collection) { - return This->lpVtbl->GetFontCollection(This,collection); +static inline HRESULT IDWriteFontFamily1_GetFontCollection(IDWriteFontFamily1* This, IDWriteFontCollection** collection) { + return This->lpVtbl->GetFontCollection(This, collection); } static inline UINT32 IDWriteFontFamily1_GetFontCount(IDWriteFontFamily1* This) { - return This->lpVtbl->GetFontCount(This); + return This->lpVtbl->GetFontCount(This); } /*** IDWriteFontFamily methods ***/ -static inline HRESULT IDWriteFontFamily1_GetFamilyNames(IDWriteFontFamily1* This,IDWriteLocalizedStrings **names) { - return This->lpVtbl->GetFamilyNames(This,names); +static inline HRESULT IDWriteFontFamily1_GetFamilyNames(IDWriteFontFamily1* This, IDWriteLocalizedStrings** names) { + return This->lpVtbl->GetFamilyNames(This, names); } -static inline HRESULT IDWriteFontFamily1_GetFirstMatchingFont(IDWriteFontFamily1* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFont **font) { - return This->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font); +static inline HRESULT IDWriteFontFamily1_GetFirstMatchingFont(IDWriteFontFamily1* This, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFont** font) { + return This->lpVtbl->GetFirstMatchingFont(This, weight, stretch, style, font); } -static inline HRESULT IDWriteFontFamily1_GetMatchingFonts(IDWriteFontFamily1* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontList **fonts) { - return This->lpVtbl->GetMatchingFonts(This,weight,stretch,style,fonts); +static inline HRESULT IDWriteFontFamily1_GetMatchingFonts(IDWriteFontFamily1* This, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFontList** fonts) { + return This->lpVtbl->GetMatchingFonts(This, weight, stretch, style, fonts); } /*** IDWriteFontFamily1 methods ***/ -static inline DWRITE_LOCALITY IDWriteFontFamily1_GetFontLocality(IDWriteFontFamily1* This,UINT32 index) { - return This->lpVtbl->GetFontLocality(This,index); +static inline DWRITE_LOCALITY IDWriteFontFamily1_GetFontLocality(IDWriteFontFamily1* This, UINT32 index) { + return This->lpVtbl->GetFontLocality(This, index); } -static inline HRESULT IDWriteFontFamily1_GetFont(IDWriteFontFamily1* This,UINT32 index,IDWriteFont3 **font) { - return This->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font); +static inline HRESULT IDWriteFontFamily1_GetFont(IDWriteFontFamily1* This, UINT32 index, IDWriteFont3** font) { + return This->lpVtbl->IDWriteFontFamily1_GetFont(This, index, font); } -static inline HRESULT IDWriteFontFamily1_GetFontFaceReference(IDWriteFontFamily1* This,UINT32 index,IDWriteFontFaceReference **reference) { - return This->lpVtbl->GetFontFaceReference(This,index,reference); +static inline HRESULT IDWriteFontFamily1_GetFontFaceReference(IDWriteFontFamily1* This, UINT32 index, IDWriteFontFaceReference** reference) { + return This->lpVtbl->GetFontFaceReference(This, index, reference); } #endif #endif #endif - -#endif /* __IDWriteFontFamily1_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontFamily1_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontFamily2 interface @@ -2344,172 +2307,169 @@ static inline HRESULT IDWriteFontFamily1_GetFontFaceReference(IDWriteFontFamily1 #ifndef __IDWriteFontFamily2_INTERFACE_DEFINED__ #define __IDWriteFontFamily2_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontFamily2, 0x3ed49e77, 0xa398, 0x4261, 0xb9,0xcf, 0xc1,0x26,0xc2,0x13,0x1e,0xf3); +DEFINE_GUID(IID_IDWriteFontFamily2, 0x3ed49e77, 0xa398, 0x4261, 0xb9, 0xcf, 0xc1, 0x26, 0xc2, 0x13, 0x1e, 0xf3); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("3ed49e77-a398-4261-b9cf-c126c2131ef3") -IDWriteFontFamily2 : public IDWriteFontFamily1 -{ - virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values, - IDWriteFontList2 **fontlist) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontSet( - IDWriteFontSet1 **fontset) = 0; +IDWriteFontFamily2 : public IDWriteFontFamily1 { + virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values, + IDWriteFontList2** fontlist) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontSet( + IDWriteFontSet1 * *fontset) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFamily2, 0x3ed49e77, 0xa398, 0x4261, 0xb9,0xcf, 0xc1,0x26,0xc2,0x13,0x1e,0xf3) +__CRT_UUID_DECL(IDWriteFontFamily2, 0x3ed49e77, 0xa398, 0x4261, 0xb9, 0xcf, 0xc1, 0x26, 0xc2, 0x13, 0x1e, 0xf3) #endif #else typedef struct IDWriteFontFamily2Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontFamily2 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontFamily2* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontFamily2 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontFamily2* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontFamily2 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontFamily2* This); - /*** IDWriteFontList methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFontCollection)( - IDWriteFontFamily2 *This, - IDWriteFontCollection **collection); + /*** IDWriteFontList methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFontCollection)( + IDWriteFontFamily2* This, + IDWriteFontCollection** collection); - UINT32 (STDMETHODCALLTYPE *GetFontCount)( - IDWriteFontFamily2 *This); + UINT32(STDMETHODCALLTYPE* GetFontCount)( + IDWriteFontFamily2* This); - HRESULT (STDMETHODCALLTYPE *GetFont)( - IDWriteFontFamily2 *This, - UINT32 index, - IDWriteFont **font); + HRESULT(STDMETHODCALLTYPE* GetFont)( + IDWriteFontFamily2* This, + UINT32 index, + IDWriteFont** font); - /*** IDWriteFontFamily methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( - IDWriteFontFamily2 *This, - IDWriteLocalizedStrings **names); + /*** IDWriteFontFamily methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFamilyNames)( + IDWriteFontFamily2* This, + IDWriteLocalizedStrings** names); - HRESULT (STDMETHODCALLTYPE *GetFirstMatchingFont)( - IDWriteFontFamily2 *This, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFont **font); + HRESULT(STDMETHODCALLTYPE* GetFirstMatchingFont)( + IDWriteFontFamily2* This, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFont** font); - HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( - IDWriteFontFamily2 *This, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFontList **fonts); + HRESULT(STDMETHODCALLTYPE* GetMatchingFonts)( + IDWriteFontFamily2* This, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontList** fonts); - /*** IDWriteFontFamily1 methods ***/ - DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( - IDWriteFontFamily2 *This, - UINT32 index); + /*** IDWriteFontFamily1 methods ***/ + DWRITE_LOCALITY(STDMETHODCALLTYPE* GetFontLocality)( + IDWriteFontFamily2* This, + UINT32 index); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFamily1_GetFont)( - IDWriteFontFamily2 *This, - UINT32 index, - IDWriteFont3 **font); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFamily1_GetFont)( + IDWriteFontFamily2* This, + UINT32 index, + IDWriteFont3** font); - HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( - IDWriteFontFamily2 *This, - UINT32 index, - IDWriteFontFaceReference **reference); + HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( + IDWriteFontFamily2* This, + UINT32 index, + IDWriteFontFaceReference** reference); - /*** IDWriteFontFamily2 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFontFamily2_GetMatchingFonts)( - IDWriteFontFamily2 *This, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values, - IDWriteFontList2 **fontlist); + /*** IDWriteFontFamily2 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFontFamily2_GetMatchingFonts)( + IDWriteFontFamily2* This, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values, + IDWriteFontList2** fontlist); - HRESULT (STDMETHODCALLTYPE *GetFontSet)( - IDWriteFontFamily2 *This, - IDWriteFontSet1 **fontset); + HRESULT(STDMETHODCALLTYPE* GetFontSet)( + IDWriteFontFamily2* This, + IDWriteFontSet1** fontset); - END_INTERFACE + END_INTERFACE } IDWriteFontFamily2Vtbl; interface IDWriteFontFamily2 { - CONST_VTBL IDWriteFontFamily2Vtbl* lpVtbl; + CONST_VTBL IDWriteFontFamily2Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontFamily2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFamily2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontFamily2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontFamily2_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontList methods ***/ -#define IDWriteFontFamily2_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteFontFamily2_GetFontCollection(This, collection) (This)->lpVtbl->GetFontCollection(This, collection) #define IDWriteFontFamily2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) /*** IDWriteFontFamily methods ***/ -#define IDWriteFontFamily2_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names) -#define IDWriteFontFamily2_GetFirstMatchingFont(This,weight,stretch,style,font) (This)->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font) +#define IDWriteFontFamily2_GetFamilyNames(This, names) (This)->lpVtbl->GetFamilyNames(This, names) +#define IDWriteFontFamily2_GetFirstMatchingFont(This, weight, stretch, style, font) (This)->lpVtbl->GetFirstMatchingFont(This, weight, stretch, style, font) /*** IDWriteFontFamily1 methods ***/ -#define IDWriteFontFamily2_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) -#define IDWriteFontFamily2_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font) -#define IDWriteFontFamily2_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference) +#define IDWriteFontFamily2_GetFontLocality(This, index) (This)->lpVtbl->GetFontLocality(This, index) +#define IDWriteFontFamily2_GetFont(This, index, font) (This)->lpVtbl->IDWriteFontFamily1_GetFont(This, index, font) +#define IDWriteFontFamily2_GetFontFaceReference(This, index, reference) (This)->lpVtbl->GetFontFaceReference(This, index, reference) /*** IDWriteFontFamily2 methods ***/ -#define IDWriteFontFamily2_GetMatchingFonts(This,axis_values,num_values,fontlist) (This)->lpVtbl->IDWriteFontFamily2_GetMatchingFonts(This,axis_values,num_values,fontlist) -#define IDWriteFontFamily2_GetFontSet(This,fontset) (This)->lpVtbl->GetFontSet(This,fontset) +#define IDWriteFontFamily2_GetMatchingFonts(This, axis_values, num_values, fontlist) (This)->lpVtbl->IDWriteFontFamily2_GetMatchingFonts(This, axis_values, num_values, fontlist) +#define IDWriteFontFamily2_GetFontSet(This, fontset) (This)->lpVtbl->GetFontSet(This, fontset) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFamily2_QueryInterface(IDWriteFontFamily2* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontFamily2_QueryInterface(IDWriteFontFamily2* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontFamily2_AddRef(IDWriteFontFamily2* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontFamily2_Release(IDWriteFontFamily2* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontList methods ***/ -static inline HRESULT IDWriteFontFamily2_GetFontCollection(IDWriteFontFamily2* This,IDWriteFontCollection **collection) { - return This->lpVtbl->GetFontCollection(This,collection); +static inline HRESULT IDWriteFontFamily2_GetFontCollection(IDWriteFontFamily2* This, IDWriteFontCollection** collection) { + return This->lpVtbl->GetFontCollection(This, collection); } static inline UINT32 IDWriteFontFamily2_GetFontCount(IDWriteFontFamily2* This) { - return This->lpVtbl->GetFontCount(This); + return This->lpVtbl->GetFontCount(This); } /*** IDWriteFontFamily methods ***/ -static inline HRESULT IDWriteFontFamily2_GetFamilyNames(IDWriteFontFamily2* This,IDWriteLocalizedStrings **names) { - return This->lpVtbl->GetFamilyNames(This,names); +static inline HRESULT IDWriteFontFamily2_GetFamilyNames(IDWriteFontFamily2* This, IDWriteLocalizedStrings** names) { + return This->lpVtbl->GetFamilyNames(This, names); } -static inline HRESULT IDWriteFontFamily2_GetFirstMatchingFont(IDWriteFontFamily2* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFont **font) { - return This->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font); +static inline HRESULT IDWriteFontFamily2_GetFirstMatchingFont(IDWriteFontFamily2* This, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFont** font) { + return This->lpVtbl->GetFirstMatchingFont(This, weight, stretch, style, font); } /*** IDWriteFontFamily1 methods ***/ -static inline DWRITE_LOCALITY IDWriteFontFamily2_GetFontLocality(IDWriteFontFamily2* This,UINT32 index) { - return This->lpVtbl->GetFontLocality(This,index); +static inline DWRITE_LOCALITY IDWriteFontFamily2_GetFontLocality(IDWriteFontFamily2* This, UINT32 index) { + return This->lpVtbl->GetFontLocality(This, index); } -static inline HRESULT IDWriteFontFamily2_GetFont(IDWriteFontFamily2* This,UINT32 index,IDWriteFont3 **font) { - return This->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font); +static inline HRESULT IDWriteFontFamily2_GetFont(IDWriteFontFamily2* This, UINT32 index, IDWriteFont3** font) { + return This->lpVtbl->IDWriteFontFamily1_GetFont(This, index, font); } -static inline HRESULT IDWriteFontFamily2_GetFontFaceReference(IDWriteFontFamily2* This,UINT32 index,IDWriteFontFaceReference **reference) { - return This->lpVtbl->GetFontFaceReference(This,index,reference); +static inline HRESULT IDWriteFontFamily2_GetFontFaceReference(IDWriteFontFamily2* This, UINT32 index, IDWriteFontFaceReference** reference) { + return This->lpVtbl->GetFontFaceReference(This, index, reference); } /*** IDWriteFontFamily2 methods ***/ -static inline HRESULT IDWriteFontFamily2_GetMatchingFonts(IDWriteFontFamily2* This,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontList2 **fontlist) { - return This->lpVtbl->IDWriteFontFamily2_GetMatchingFonts(This,axis_values,num_values,fontlist); +static inline HRESULT IDWriteFontFamily2_GetMatchingFonts(IDWriteFontFamily2* This, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values, IDWriteFontList2** fontlist) { + return This->lpVtbl->IDWriteFontFamily2_GetMatchingFonts(This, axis_values, num_values, fontlist); } -static inline HRESULT IDWriteFontFamily2_GetFontSet(IDWriteFontFamily2* This,IDWriteFontSet1 **fontset) { - return This->lpVtbl->GetFontSet(This,fontset); +static inline HRESULT IDWriteFontFamily2_GetFontSet(IDWriteFontFamily2* This, IDWriteFontSet1** fontset) { + return This->lpVtbl->GetFontSet(This, fontset); } #endif #endif #endif - -#endif /* __IDWriteFontFamily2_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontFamily2_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontCollection1 interface @@ -2517,123 +2477,120 @@ static inline HRESULT IDWriteFontFamily2_GetFontSet(IDWriteFontFamily2* This,IDW #ifndef __IDWriteFontCollection1_INTERFACE_DEFINED__ #define __IDWriteFontCollection1_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontCollection1, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6c); +DEFINE_GUID(IID_IDWriteFontCollection1, 0x53585141, 0xd9f8, 0x4095, 0x83, 0x21, 0xd7, 0x3c, 0xf6, 0xbd, 0x11, 0x6c); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("53585141-d9f8-4095-8321-d73cf6bd116c") -IDWriteFontCollection1 : public IDWriteFontCollection -{ - virtual HRESULT STDMETHODCALLTYPE GetFontSet( - IDWriteFontSet **fontset) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontFamily( - UINT32 index, - IDWriteFontFamily1 **family) = 0; +IDWriteFontCollection1 : public IDWriteFontCollection { + virtual HRESULT STDMETHODCALLTYPE GetFontSet( + IDWriteFontSet * *fontset) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontFamily( + UINT32 index, + IDWriteFontFamily1 * *family) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontCollection1, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6c) +__CRT_UUID_DECL(IDWriteFontCollection1, 0x53585141, 0xd9f8, 0x4095, 0x83, 0x21, 0xd7, 0x3c, 0xf6, 0xbd, 0x11, 0x6c) #endif #else typedef struct IDWriteFontCollection1Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontCollection1 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontCollection1* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontCollection1 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontCollection1* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontCollection1 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontCollection1* This); - /*** IDWriteFontCollection methods ***/ - UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)( - IDWriteFontCollection1 *This); + /*** IDWriteFontCollection methods ***/ + UINT32(STDMETHODCALLTYPE* GetFontFamilyCount)( + IDWriteFontCollection1* This); - HRESULT (STDMETHODCALLTYPE *GetFontFamily)( - IDWriteFontCollection1 *This, - UINT32 index, - IDWriteFontFamily **family); + HRESULT(STDMETHODCALLTYPE* GetFontFamily)( + IDWriteFontCollection1* This, + UINT32 index, + IDWriteFontFamily** family); - HRESULT (STDMETHODCALLTYPE *FindFamilyName)( - IDWriteFontCollection1 *This, - const WCHAR *name, - UINT32 *index, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* FindFamilyName)( + IDWriteFontCollection1* This, + const WCHAR* name, + UINT32* index, + WINBOOL* exists); - HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)( - IDWriteFontCollection1 *This, - IDWriteFontFace *face, - IDWriteFont **font); + HRESULT(STDMETHODCALLTYPE* GetFontFromFontFace)( + IDWriteFontCollection1* This, + IDWriteFontFace* face, + IDWriteFont** font); - /*** IDWriteFontCollection1 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFontSet)( - IDWriteFontCollection1 *This, - IDWriteFontSet **fontset); + /*** IDWriteFontCollection1 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFontSet)( + IDWriteFontCollection1* This, + IDWriteFontSet** fontset); - HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection1_GetFontFamily)( - IDWriteFontCollection1 *This, - UINT32 index, - IDWriteFontFamily1 **family); + HRESULT(STDMETHODCALLTYPE* IDWriteFontCollection1_GetFontFamily)( + IDWriteFontCollection1* This, + UINT32 index, + IDWriteFontFamily1** family); - END_INTERFACE + END_INTERFACE } IDWriteFontCollection1Vtbl; interface IDWriteFontCollection1 { - CONST_VTBL IDWriteFontCollection1Vtbl* lpVtbl; + CONST_VTBL IDWriteFontCollection1Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontCollection1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontCollection1_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontCollection1_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontCollection1_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontCollection methods ***/ #define IDWriteFontCollection1_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This) -#define IDWriteFontCollection1_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists) -#define IDWriteFontCollection1_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font) +#define IDWriteFontCollection1_FindFamilyName(This, name, index, exists) (This)->lpVtbl->FindFamilyName(This, name, index, exists) +#define IDWriteFontCollection1_GetFontFromFontFace(This, face, font) (This)->lpVtbl->GetFontFromFontFace(This, face, font) /*** IDWriteFontCollection1 methods ***/ -#define IDWriteFontCollection1_GetFontSet(This,fontset) (This)->lpVtbl->GetFontSet(This,fontset) -#define IDWriteFontCollection1_GetFontFamily(This,index,family) (This)->lpVtbl->IDWriteFontCollection1_GetFontFamily(This,index,family) +#define IDWriteFontCollection1_GetFontSet(This, fontset) (This)->lpVtbl->GetFontSet(This, fontset) +#define IDWriteFontCollection1_GetFontFamily(This, index, family) (This)->lpVtbl->IDWriteFontCollection1_GetFontFamily(This, index, family) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontCollection1_QueryInterface(IDWriteFontCollection1* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontCollection1_QueryInterface(IDWriteFontCollection1* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontCollection1_AddRef(IDWriteFontCollection1* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontCollection1_Release(IDWriteFontCollection1* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontCollection methods ***/ static inline UINT32 IDWriteFontCollection1_GetFontFamilyCount(IDWriteFontCollection1* This) { - return This->lpVtbl->GetFontFamilyCount(This); + return This->lpVtbl->GetFontFamilyCount(This); } -static inline HRESULT IDWriteFontCollection1_FindFamilyName(IDWriteFontCollection1* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) { - return This->lpVtbl->FindFamilyName(This,name,index,exists); +static inline HRESULT IDWriteFontCollection1_FindFamilyName(IDWriteFontCollection1* This, const WCHAR* name, UINT32* index, WINBOOL* exists) { + return This->lpVtbl->FindFamilyName(This, name, index, exists); } -static inline HRESULT IDWriteFontCollection1_GetFontFromFontFace(IDWriteFontCollection1* This,IDWriteFontFace *face,IDWriteFont **font) { - return This->lpVtbl->GetFontFromFontFace(This,face,font); +static inline HRESULT IDWriteFontCollection1_GetFontFromFontFace(IDWriteFontCollection1* This, IDWriteFontFace* face, IDWriteFont** font) { + return This->lpVtbl->GetFontFromFontFace(This, face, font); } /*** IDWriteFontCollection1 methods ***/ -static inline HRESULT IDWriteFontCollection1_GetFontSet(IDWriteFontCollection1* This,IDWriteFontSet **fontset) { - return This->lpVtbl->GetFontSet(This,fontset); +static inline HRESULT IDWriteFontCollection1_GetFontSet(IDWriteFontCollection1* This, IDWriteFontSet** fontset) { + return This->lpVtbl->GetFontSet(This, fontset); } -static inline HRESULT IDWriteFontCollection1_GetFontFamily(IDWriteFontCollection1* This,UINT32 index,IDWriteFontFamily1 **family) { - return This->lpVtbl->IDWriteFontCollection1_GetFontFamily(This,index,family); +static inline HRESULT IDWriteFontCollection1_GetFontFamily(IDWriteFontCollection1* This, UINT32 index, IDWriteFontFamily1** family) { + return This->lpVtbl->IDWriteFontCollection1_GetFontFamily(This, index, family); } #endif #endif #endif - -#endif /* __IDWriteFontCollection1_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontCollection1_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontCollection2 interface @@ -2641,162 +2598,158 @@ static inline HRESULT IDWriteFontCollection1_GetFontFamily(IDWriteFontCollection #ifndef __IDWriteFontCollection2_INTERFACE_DEFINED__ #define __IDWriteFontCollection2_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontCollection2, 0x514039c6, 0x4617, 0x4064, 0xbf,0x8b, 0x92,0xea,0x83,0xe5,0x06,0xe0); +DEFINE_GUID(IID_IDWriteFontCollection2, 0x514039c6, 0x4617, 0x4064, 0xbf, 0x8b, 0x92, 0xea, 0x83, 0xe5, 0x06, 0xe0); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("514039c6-4617-4064-bf8b-92ea83e506e0") -IDWriteFontCollection2 : public IDWriteFontCollection1 -{ - virtual HRESULT STDMETHODCALLTYPE GetFontFamily( - UINT32 index, - IDWriteFontFamily2 **family) = 0; +IDWriteFontCollection2 : public IDWriteFontCollection1 { + virtual HRESULT STDMETHODCALLTYPE GetFontFamily( + UINT32 index, + IDWriteFontFamily2 * *family) = 0; - virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( - const WCHAR *familyname, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values, - IDWriteFontList2 **fontlist) = 0; + virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( + const WCHAR* familyname, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values, + IDWriteFontList2** fontlist) = 0; - virtual DWRITE_FONT_FAMILY_MODEL STDMETHODCALLTYPE GetFontFamilyModel( - ) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontSet( - IDWriteFontSet1 **fontset) = 0; + virtual DWRITE_FONT_FAMILY_MODEL STDMETHODCALLTYPE GetFontFamilyModel() = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontSet( + IDWriteFontSet1 * *fontset) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontCollection2, 0x514039c6, 0x4617, 0x4064, 0xbf,0x8b, 0x92,0xea,0x83,0xe5,0x06,0xe0) +__CRT_UUID_DECL(IDWriteFontCollection2, 0x514039c6, 0x4617, 0x4064, 0xbf, 0x8b, 0x92, 0xea, 0x83, 0xe5, 0x06, 0xe0) #endif #else typedef struct IDWriteFontCollection2Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontCollection2 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontCollection2* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontCollection2 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontCollection2* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontCollection2 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontCollection2* This); - /*** IDWriteFontCollection methods ***/ - UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)( - IDWriteFontCollection2 *This); + /*** IDWriteFontCollection methods ***/ + UINT32(STDMETHODCALLTYPE* GetFontFamilyCount)( + IDWriteFontCollection2* This); - HRESULT (STDMETHODCALLTYPE *GetFontFamily)( - IDWriteFontCollection2 *This, - UINT32 index, - IDWriteFontFamily **family); + HRESULT(STDMETHODCALLTYPE* GetFontFamily)( + IDWriteFontCollection2* This, + UINT32 index, + IDWriteFontFamily** family); - HRESULT (STDMETHODCALLTYPE *FindFamilyName)( - IDWriteFontCollection2 *This, - const WCHAR *name, - UINT32 *index, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* FindFamilyName)( + IDWriteFontCollection2* This, + const WCHAR* name, + UINT32* index, + WINBOOL* exists); - HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)( - IDWriteFontCollection2 *This, - IDWriteFontFace *face, - IDWriteFont **font); + HRESULT(STDMETHODCALLTYPE* GetFontFromFontFace)( + IDWriteFontCollection2* This, + IDWriteFontFace* face, + IDWriteFont** font); - /*** IDWriteFontCollection1 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFontSet)( - IDWriteFontCollection2 *This, - IDWriteFontSet **fontset); + /*** IDWriteFontCollection1 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFontSet)( + IDWriteFontCollection2* This, + IDWriteFontSet** fontset); - HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection1_GetFontFamily)( - IDWriteFontCollection2 *This, - UINT32 index, - IDWriteFontFamily1 **family); + HRESULT(STDMETHODCALLTYPE* IDWriteFontCollection1_GetFontFamily)( + IDWriteFontCollection2* This, + UINT32 index, + IDWriteFontFamily1** family); - /*** IDWriteFontCollection2 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontFamily)( - IDWriteFontCollection2 *This, - UINT32 index, - IDWriteFontFamily2 **family); + /*** IDWriteFontCollection2 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFontCollection2_GetFontFamily)( + IDWriteFontCollection2* This, + UINT32 index, + IDWriteFontFamily2** family); - HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( - IDWriteFontCollection2 *This, - const WCHAR *familyname, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values, - IDWriteFontList2 **fontlist); + HRESULT(STDMETHODCALLTYPE* GetMatchingFonts)( + IDWriteFontCollection2* This, + const WCHAR* familyname, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values, + IDWriteFontList2** fontlist); - DWRITE_FONT_FAMILY_MODEL (STDMETHODCALLTYPE *GetFontFamilyModel)( - IDWriteFontCollection2 *This); + DWRITE_FONT_FAMILY_MODEL(STDMETHODCALLTYPE* GetFontFamilyModel)( + IDWriteFontCollection2* This); - HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontSet)( - IDWriteFontCollection2 *This, - IDWriteFontSet1 **fontset); + HRESULT(STDMETHODCALLTYPE* IDWriteFontCollection2_GetFontSet)( + IDWriteFontCollection2* This, + IDWriteFontSet1** fontset); - END_INTERFACE + END_INTERFACE } IDWriteFontCollection2Vtbl; interface IDWriteFontCollection2 { - CONST_VTBL IDWriteFontCollection2Vtbl* lpVtbl; + CONST_VTBL IDWriteFontCollection2Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontCollection2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontCollection2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontCollection2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontCollection2_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontCollection methods ***/ #define IDWriteFontCollection2_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This) -#define IDWriteFontCollection2_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists) -#define IDWriteFontCollection2_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font) +#define IDWriteFontCollection2_FindFamilyName(This, name, index, exists) (This)->lpVtbl->FindFamilyName(This, name, index, exists) +#define IDWriteFontCollection2_GetFontFromFontFace(This, face, font) (This)->lpVtbl->GetFontFromFontFace(This, face, font) /*** IDWriteFontCollection1 methods ***/ /*** IDWriteFontCollection2 methods ***/ -#define IDWriteFontCollection2_GetFontFamily(This,index,family) (This)->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family) -#define IDWriteFontCollection2_GetMatchingFonts(This,familyname,axis_values,num_values,fontlist) (This)->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist) +#define IDWriteFontCollection2_GetFontFamily(This, index, family) (This)->lpVtbl->IDWriteFontCollection2_GetFontFamily(This, index, family) +#define IDWriteFontCollection2_GetMatchingFonts(This, familyname, axis_values, num_values, fontlist) (This)->lpVtbl->GetMatchingFonts(This, familyname, axis_values, num_values, fontlist) #define IDWriteFontCollection2_GetFontFamilyModel(This) (This)->lpVtbl->GetFontFamilyModel(This) -#define IDWriteFontCollection2_GetFontSet(This,fontset) (This)->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset) +#define IDWriteFontCollection2_GetFontSet(This, fontset) (This)->lpVtbl->IDWriteFontCollection2_GetFontSet(This, fontset) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontCollection2_QueryInterface(IDWriteFontCollection2* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontCollection2_QueryInterface(IDWriteFontCollection2* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontCollection2_AddRef(IDWriteFontCollection2* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontCollection2_Release(IDWriteFontCollection2* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontCollection methods ***/ static inline UINT32 IDWriteFontCollection2_GetFontFamilyCount(IDWriteFontCollection2* This) { - return This->lpVtbl->GetFontFamilyCount(This); + return This->lpVtbl->GetFontFamilyCount(This); } -static inline HRESULT IDWriteFontCollection2_FindFamilyName(IDWriteFontCollection2* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) { - return This->lpVtbl->FindFamilyName(This,name,index,exists); +static inline HRESULT IDWriteFontCollection2_FindFamilyName(IDWriteFontCollection2* This, const WCHAR* name, UINT32* index, WINBOOL* exists) { + return This->lpVtbl->FindFamilyName(This, name, index, exists); } -static inline HRESULT IDWriteFontCollection2_GetFontFromFontFace(IDWriteFontCollection2* This,IDWriteFontFace *face,IDWriteFont **font) { - return This->lpVtbl->GetFontFromFontFace(This,face,font); +static inline HRESULT IDWriteFontCollection2_GetFontFromFontFace(IDWriteFontCollection2* This, IDWriteFontFace* face, IDWriteFont** font) { + return This->lpVtbl->GetFontFromFontFace(This, face, font); } /*** IDWriteFontCollection1 methods ***/ /*** IDWriteFontCollection2 methods ***/ -static inline HRESULT IDWriteFontCollection2_GetFontFamily(IDWriteFontCollection2* This,UINT32 index,IDWriteFontFamily2 **family) { - return This->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family); +static inline HRESULT IDWriteFontCollection2_GetFontFamily(IDWriteFontCollection2* This, UINT32 index, IDWriteFontFamily2** family) { + return This->lpVtbl->IDWriteFontCollection2_GetFontFamily(This, index, family); } -static inline HRESULT IDWriteFontCollection2_GetMatchingFonts(IDWriteFontCollection2* This,const WCHAR *familyname,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontList2 **fontlist) { - return This->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist); +static inline HRESULT IDWriteFontCollection2_GetMatchingFonts(IDWriteFontCollection2* This, const WCHAR* familyname, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values, IDWriteFontList2** fontlist) { + return This->lpVtbl->GetMatchingFonts(This, familyname, axis_values, num_values, fontlist); } static inline DWRITE_FONT_FAMILY_MODEL IDWriteFontCollection2_GetFontFamilyModel(IDWriteFontCollection2* This) { - return This->lpVtbl->GetFontFamilyModel(This); + return This->lpVtbl->GetFontFamilyModel(This); } -static inline HRESULT IDWriteFontCollection2_GetFontSet(IDWriteFontCollection2* This,IDWriteFontSet1 **fontset) { - return This->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset); +static inline HRESULT IDWriteFontCollection2_GetFontSet(IDWriteFontCollection2* This, IDWriteFontSet1** fontset) { + return This->lpVtbl->IDWriteFontCollection2_GetFontSet(This, fontset); } #endif #endif #endif - -#endif /* __IDWriteFontCollection2_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontCollection2_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontCollection3 interface @@ -2804,159 +2757,155 @@ static inline HRESULT IDWriteFontCollection2_GetFontSet(IDWriteFontCollection2* #ifndef __IDWriteFontCollection3_INTERFACE_DEFINED__ #define __IDWriteFontCollection3_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontCollection3, 0xa4d055a6, 0xf9e3, 0x4e25, 0x93,0xb7, 0x9e,0x30,0x9f,0x3a,0xf8,0xe9); +DEFINE_GUID(IID_IDWriteFontCollection3, 0xa4d055a6, 0xf9e3, 0x4e25, 0x93, 0xb7, 0x9e, 0x30, 0x9f, 0x3a, 0xf8, 0xe9); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("a4d055a6-f9e3-4e25-93b7-9e309f3af8e9") -IDWriteFontCollection3 : public IDWriteFontCollection2 -{ - virtual HANDLE STDMETHODCALLTYPE GetExpirationEvent( - ) = 0; - +IDWriteFontCollection3 : public IDWriteFontCollection2 { + virtual HANDLE STDMETHODCALLTYPE GetExpirationEvent() = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontCollection3, 0xa4d055a6, 0xf9e3, 0x4e25, 0x93,0xb7, 0x9e,0x30,0x9f,0x3a,0xf8,0xe9) +__CRT_UUID_DECL(IDWriteFontCollection3, 0xa4d055a6, 0xf9e3, 0x4e25, 0x93, 0xb7, 0x9e, 0x30, 0x9f, 0x3a, 0xf8, 0xe9) #endif #else typedef struct IDWriteFontCollection3Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontCollection3 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontCollection3* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontCollection3 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontCollection3* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontCollection3 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontCollection3* This); - /*** IDWriteFontCollection methods ***/ - UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)( - IDWriteFontCollection3 *This); + /*** IDWriteFontCollection methods ***/ + UINT32(STDMETHODCALLTYPE* GetFontFamilyCount)( + IDWriteFontCollection3* This); - HRESULT (STDMETHODCALLTYPE *GetFontFamily)( - IDWriteFontCollection3 *This, - UINT32 index, - IDWriteFontFamily **family); + HRESULT(STDMETHODCALLTYPE* GetFontFamily)( + IDWriteFontCollection3* This, + UINT32 index, + IDWriteFontFamily** family); - HRESULT (STDMETHODCALLTYPE *FindFamilyName)( - IDWriteFontCollection3 *This, - const WCHAR *name, - UINT32 *index, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* FindFamilyName)( + IDWriteFontCollection3* This, + const WCHAR* name, + UINT32* index, + WINBOOL* exists); - HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)( - IDWriteFontCollection3 *This, - IDWriteFontFace *face, - IDWriteFont **font); + HRESULT(STDMETHODCALLTYPE* GetFontFromFontFace)( + IDWriteFontCollection3* This, + IDWriteFontFace* face, + IDWriteFont** font); - /*** IDWriteFontCollection1 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFontSet)( - IDWriteFontCollection3 *This, - IDWriteFontSet **fontset); + /*** IDWriteFontCollection1 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFontSet)( + IDWriteFontCollection3* This, + IDWriteFontSet** fontset); - HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection1_GetFontFamily)( - IDWriteFontCollection3 *This, - UINT32 index, - IDWriteFontFamily1 **family); + HRESULT(STDMETHODCALLTYPE* IDWriteFontCollection1_GetFontFamily)( + IDWriteFontCollection3* This, + UINT32 index, + IDWriteFontFamily1** family); - /*** IDWriteFontCollection2 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontFamily)( - IDWriteFontCollection3 *This, - UINT32 index, - IDWriteFontFamily2 **family); + /*** IDWriteFontCollection2 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFontCollection2_GetFontFamily)( + IDWriteFontCollection3* This, + UINT32 index, + IDWriteFontFamily2** family); - HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( - IDWriteFontCollection3 *This, - const WCHAR *familyname, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values, - IDWriteFontList2 **fontlist); + HRESULT(STDMETHODCALLTYPE* GetMatchingFonts)( + IDWriteFontCollection3* This, + const WCHAR* familyname, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values, + IDWriteFontList2** fontlist); - DWRITE_FONT_FAMILY_MODEL (STDMETHODCALLTYPE *GetFontFamilyModel)( - IDWriteFontCollection3 *This); + DWRITE_FONT_FAMILY_MODEL(STDMETHODCALLTYPE* GetFontFamilyModel)( + IDWriteFontCollection3* This); - HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontSet)( - IDWriteFontCollection3 *This, - IDWriteFontSet1 **fontset); + HRESULT(STDMETHODCALLTYPE* IDWriteFontCollection2_GetFontSet)( + IDWriteFontCollection3* This, + IDWriteFontSet1** fontset); - /*** IDWriteFontCollection3 methods ***/ - HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)( - IDWriteFontCollection3 *This); + /*** IDWriteFontCollection3 methods ***/ + HANDLE(STDMETHODCALLTYPE* GetExpirationEvent)( + IDWriteFontCollection3* This); - END_INTERFACE + END_INTERFACE } IDWriteFontCollection3Vtbl; interface IDWriteFontCollection3 { - CONST_VTBL IDWriteFontCollection3Vtbl* lpVtbl; + CONST_VTBL IDWriteFontCollection3Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontCollection3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontCollection3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontCollection3_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontCollection3_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontCollection methods ***/ #define IDWriteFontCollection3_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This) -#define IDWriteFontCollection3_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists) -#define IDWriteFontCollection3_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font) +#define IDWriteFontCollection3_FindFamilyName(This, name, index, exists) (This)->lpVtbl->FindFamilyName(This, name, index, exists) +#define IDWriteFontCollection3_GetFontFromFontFace(This, face, font) (This)->lpVtbl->GetFontFromFontFace(This, face, font) /*** IDWriteFontCollection1 methods ***/ /*** IDWriteFontCollection2 methods ***/ -#define IDWriteFontCollection3_GetFontFamily(This,index,family) (This)->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family) -#define IDWriteFontCollection3_GetMatchingFonts(This,familyname,axis_values,num_values,fontlist) (This)->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist) +#define IDWriteFontCollection3_GetFontFamily(This, index, family) (This)->lpVtbl->IDWriteFontCollection2_GetFontFamily(This, index, family) +#define IDWriteFontCollection3_GetMatchingFonts(This, familyname, axis_values, num_values, fontlist) (This)->lpVtbl->GetMatchingFonts(This, familyname, axis_values, num_values, fontlist) #define IDWriteFontCollection3_GetFontFamilyModel(This) (This)->lpVtbl->GetFontFamilyModel(This) -#define IDWriteFontCollection3_GetFontSet(This,fontset) (This)->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset) +#define IDWriteFontCollection3_GetFontSet(This, fontset) (This)->lpVtbl->IDWriteFontCollection2_GetFontSet(This, fontset) /*** IDWriteFontCollection3 methods ***/ #define IDWriteFontCollection3_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontCollection3_QueryInterface(IDWriteFontCollection3* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontCollection3_QueryInterface(IDWriteFontCollection3* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontCollection3_AddRef(IDWriteFontCollection3* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontCollection3_Release(IDWriteFontCollection3* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontCollection methods ***/ static inline UINT32 IDWriteFontCollection3_GetFontFamilyCount(IDWriteFontCollection3* This) { - return This->lpVtbl->GetFontFamilyCount(This); + return This->lpVtbl->GetFontFamilyCount(This); } -static inline HRESULT IDWriteFontCollection3_FindFamilyName(IDWriteFontCollection3* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) { - return This->lpVtbl->FindFamilyName(This,name,index,exists); +static inline HRESULT IDWriteFontCollection3_FindFamilyName(IDWriteFontCollection3* This, const WCHAR* name, UINT32* index, WINBOOL* exists) { + return This->lpVtbl->FindFamilyName(This, name, index, exists); } -static inline HRESULT IDWriteFontCollection3_GetFontFromFontFace(IDWriteFontCollection3* This,IDWriteFontFace *face,IDWriteFont **font) { - return This->lpVtbl->GetFontFromFontFace(This,face,font); +static inline HRESULT IDWriteFontCollection3_GetFontFromFontFace(IDWriteFontCollection3* This, IDWriteFontFace* face, IDWriteFont** font) { + return This->lpVtbl->GetFontFromFontFace(This, face, font); } /*** IDWriteFontCollection1 methods ***/ /*** IDWriteFontCollection2 methods ***/ -static inline HRESULT IDWriteFontCollection3_GetFontFamily(IDWriteFontCollection3* This,UINT32 index,IDWriteFontFamily2 **family) { - return This->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family); +static inline HRESULT IDWriteFontCollection3_GetFontFamily(IDWriteFontCollection3* This, UINT32 index, IDWriteFontFamily2** family) { + return This->lpVtbl->IDWriteFontCollection2_GetFontFamily(This, index, family); } -static inline HRESULT IDWriteFontCollection3_GetMatchingFonts(IDWriteFontCollection3* This,const WCHAR *familyname,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontList2 **fontlist) { - return This->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist); +static inline HRESULT IDWriteFontCollection3_GetMatchingFonts(IDWriteFontCollection3* This, const WCHAR* familyname, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values, IDWriteFontList2** fontlist) { + return This->lpVtbl->GetMatchingFonts(This, familyname, axis_values, num_values, fontlist); } static inline DWRITE_FONT_FAMILY_MODEL IDWriteFontCollection3_GetFontFamilyModel(IDWriteFontCollection3* This) { - return This->lpVtbl->GetFontFamilyModel(This); + return This->lpVtbl->GetFontFamilyModel(This); } -static inline HRESULT IDWriteFontCollection3_GetFontSet(IDWriteFontCollection3* This,IDWriteFontSet1 **fontset) { - return This->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset); +static inline HRESULT IDWriteFontCollection3_GetFontSet(IDWriteFontCollection3* This, IDWriteFontSet1** fontset) { + return This->lpVtbl->IDWriteFontCollection2_GetFontSet(This, fontset); } /*** IDWriteFontCollection3 methods ***/ static inline HANDLE IDWriteFontCollection3_GetExpirationEvent(IDWriteFontCollection3* This) { - return This->lpVtbl->GetExpirationEvent(This); + return This->lpVtbl->GetExpirationEvent(This); } #endif #endif #endif - -#endif /* __IDWriteFontCollection3_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontCollection3_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontFaceReference interface @@ -2964,221 +2913,212 @@ static inline HANDLE IDWriteFontCollection3_GetExpirationEvent(IDWriteFontCollec #ifndef __IDWriteFontFaceReference_INTERFACE_DEFINED__ #define __IDWriteFontFaceReference_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontFaceReference, 0x5e7fa7ca, 0xdde3, 0x424c, 0x89,0xf0, 0x9f,0xcd,0x6f,0xed,0x58,0xcd); +DEFINE_GUID(IID_IDWriteFontFaceReference, 0x5e7fa7ca, 0xdde3, 0x424c, 0x89, 0xf0, 0x9f, 0xcd, 0x6f, 0xed, 0x58, 0xcd); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("5e7fa7ca-dde3-424c-89f0-9fcd6fed58cd") -IDWriteFontFaceReference : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE CreateFontFace( - IDWriteFontFace3 **fontface) = 0; +IDWriteFontFaceReference : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE CreateFontFace( + IDWriteFontFace3 * *fontface) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateFontFaceWithSimulations( - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFace3 **fontface) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateFontFaceWithSimulations( + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFace3 * *fontface) = 0; - virtual WINBOOL STDMETHODCALLTYPE Equals( - IDWriteFontFaceReference *reference) = 0; + virtual WINBOOL STDMETHODCALLTYPE Equals( + IDWriteFontFaceReference * reference) = 0; - virtual UINT32 STDMETHODCALLTYPE GetFontFaceIndex( - ) = 0; + virtual UINT32 STDMETHODCALLTYPE GetFontFaceIndex() = 0; - virtual DWRITE_FONT_SIMULATIONS STDMETHODCALLTYPE GetSimulations( - ) = 0; + virtual DWRITE_FONT_SIMULATIONS STDMETHODCALLTYPE GetSimulations() = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontFile( - IDWriteFontFile **fontfile) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontFile( + IDWriteFontFile * *fontfile) = 0; - virtual UINT64 STDMETHODCALLTYPE GetLocalFileSize( - ) = 0; + virtual UINT64 STDMETHODCALLTYPE GetLocalFileSize() = 0; - virtual UINT64 STDMETHODCALLTYPE GetFileSize( - ) = 0; + virtual UINT64 STDMETHODCALLTYPE GetFileSize() = 0; - virtual HRESULT STDMETHODCALLTYPE GetFileTime( - FILETIME *writetime) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFileTime( + FILETIME * writetime) = 0; - virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality( - ) = 0; + virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality() = 0; - virtual HRESULT STDMETHODCALLTYPE EnqueueFontDownloadRequest( - ) = 0; + virtual HRESULT STDMETHODCALLTYPE EnqueueFontDownloadRequest() = 0; - virtual HRESULT STDMETHODCALLTYPE EnqueueCharacterDownloadRequest( - const WCHAR *chars, - UINT32 count) = 0; + virtual HRESULT STDMETHODCALLTYPE EnqueueCharacterDownloadRequest( + const WCHAR* chars, + UINT32 count) = 0; - virtual HRESULT STDMETHODCALLTYPE EnqueueGlyphDownloadRequest( - const UINT16 *glyphs, - UINT32 count) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnqueueFileFragmentDownloadRequest( - UINT64 offset, - UINT64 size) = 0; + virtual HRESULT STDMETHODCALLTYPE EnqueueGlyphDownloadRequest( + const UINT16* glyphs, + UINT32 count) = 0; + virtual HRESULT STDMETHODCALLTYPE EnqueueFileFragmentDownloadRequest( + UINT64 offset, + UINT64 size) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFaceReference, 0x5e7fa7ca, 0xdde3, 0x424c, 0x89,0xf0, 0x9f,0xcd,0x6f,0xed,0x58,0xcd) +__CRT_UUID_DECL(IDWriteFontFaceReference, 0x5e7fa7ca, 0xdde3, 0x424c, 0x89, 0xf0, 0x9f, 0xcd, 0x6f, 0xed, 0x58, 0xcd) #endif #else typedef struct IDWriteFontFaceReferenceVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontFaceReference *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontFaceReference* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontFaceReference *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontFaceReference* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontFaceReference *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontFaceReference* This); - /*** IDWriteFontFaceReference methods ***/ - HRESULT (STDMETHODCALLTYPE *CreateFontFace)( - IDWriteFontFaceReference *This, - IDWriteFontFace3 **fontface); + /*** IDWriteFontFaceReference methods ***/ + HRESULT(STDMETHODCALLTYPE* CreateFontFace)( + IDWriteFontFaceReference* This, + IDWriteFontFace3** fontface); - HRESULT (STDMETHODCALLTYPE *CreateFontFaceWithSimulations)( - IDWriteFontFaceReference *This, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFace3 **fontface); + HRESULT(STDMETHODCALLTYPE* CreateFontFaceWithSimulations)( + IDWriteFontFaceReference* This, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFace3** fontface); - WINBOOL (STDMETHODCALLTYPE *Equals)( - IDWriteFontFaceReference *This, - IDWriteFontFaceReference *reference); + WINBOOL(STDMETHODCALLTYPE* Equals)( + IDWriteFontFaceReference* This, + IDWriteFontFaceReference* reference); - UINT32 (STDMETHODCALLTYPE *GetFontFaceIndex)( - IDWriteFontFaceReference *This); + UINT32(STDMETHODCALLTYPE* GetFontFaceIndex)( + IDWriteFontFaceReference* This); - DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( - IDWriteFontFaceReference *This); + DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( + IDWriteFontFaceReference* This); - HRESULT (STDMETHODCALLTYPE *GetFontFile)( - IDWriteFontFaceReference *This, - IDWriteFontFile **fontfile); + HRESULT(STDMETHODCALLTYPE* GetFontFile)( + IDWriteFontFaceReference* This, + IDWriteFontFile** fontfile); - UINT64 (STDMETHODCALLTYPE *GetLocalFileSize)( - IDWriteFontFaceReference *This); + UINT64(STDMETHODCALLTYPE* GetLocalFileSize)( + IDWriteFontFaceReference* This); - UINT64 (STDMETHODCALLTYPE *GetFileSize)( - IDWriteFontFaceReference *This); + UINT64(STDMETHODCALLTYPE* GetFileSize)( + IDWriteFontFaceReference* This); - HRESULT (STDMETHODCALLTYPE *GetFileTime)( - IDWriteFontFaceReference *This, - FILETIME *writetime); + HRESULT(STDMETHODCALLTYPE* GetFileTime)( + IDWriteFontFaceReference* This, + FILETIME* writetime); - DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)( - IDWriteFontFaceReference *This); + DWRITE_LOCALITY(STDMETHODCALLTYPE* GetLocality)( + IDWriteFontFaceReference* This); - HRESULT (STDMETHODCALLTYPE *EnqueueFontDownloadRequest)( - IDWriteFontFaceReference *This); + HRESULT(STDMETHODCALLTYPE* EnqueueFontDownloadRequest)( + IDWriteFontFaceReference* This); - HRESULT (STDMETHODCALLTYPE *EnqueueCharacterDownloadRequest)( - IDWriteFontFaceReference *This, - const WCHAR *chars, - UINT32 count); + HRESULT(STDMETHODCALLTYPE* EnqueueCharacterDownloadRequest)( + IDWriteFontFaceReference* This, + const WCHAR* chars, + UINT32 count); - HRESULT (STDMETHODCALLTYPE *EnqueueGlyphDownloadRequest)( - IDWriteFontFaceReference *This, - const UINT16 *glyphs, - UINT32 count); + HRESULT(STDMETHODCALLTYPE* EnqueueGlyphDownloadRequest)( + IDWriteFontFaceReference* This, + const UINT16* glyphs, + UINT32 count); - HRESULT (STDMETHODCALLTYPE *EnqueueFileFragmentDownloadRequest)( - IDWriteFontFaceReference *This, - UINT64 offset, - UINT64 size); + HRESULT(STDMETHODCALLTYPE* EnqueueFileFragmentDownloadRequest)( + IDWriteFontFaceReference* This, + UINT64 offset, + UINT64 size); - END_INTERFACE + END_INTERFACE } IDWriteFontFaceReferenceVtbl; interface IDWriteFontFaceReference { - CONST_VTBL IDWriteFontFaceReferenceVtbl* lpVtbl; + CONST_VTBL IDWriteFontFaceReferenceVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontFaceReference_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFaceReference_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontFaceReference_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontFaceReference_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontFaceReference methods ***/ -#define IDWriteFontFaceReference_CreateFontFace(This,fontface) (This)->lpVtbl->CreateFontFace(This,fontface) -#define IDWriteFontFaceReference_CreateFontFaceWithSimulations(This,simulations,fontface) (This)->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface) -#define IDWriteFontFaceReference_Equals(This,reference) (This)->lpVtbl->Equals(This,reference) +#define IDWriteFontFaceReference_CreateFontFace(This, fontface) (This)->lpVtbl->CreateFontFace(This, fontface) +#define IDWriteFontFaceReference_CreateFontFaceWithSimulations(This, simulations, fontface) (This)->lpVtbl->CreateFontFaceWithSimulations(This, simulations, fontface) +#define IDWriteFontFaceReference_Equals(This, reference) (This)->lpVtbl->Equals(This, reference) #define IDWriteFontFaceReference_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This) #define IDWriteFontFaceReference_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) -#define IDWriteFontFaceReference_GetFontFile(This,fontfile) (This)->lpVtbl->GetFontFile(This,fontfile) +#define IDWriteFontFaceReference_GetFontFile(This, fontfile) (This)->lpVtbl->GetFontFile(This, fontfile) #define IDWriteFontFaceReference_GetLocalFileSize(This) (This)->lpVtbl->GetLocalFileSize(This) #define IDWriteFontFaceReference_GetFileSize(This) (This)->lpVtbl->GetFileSize(This) -#define IDWriteFontFaceReference_GetFileTime(This,writetime) (This)->lpVtbl->GetFileTime(This,writetime) +#define IDWriteFontFaceReference_GetFileTime(This, writetime) (This)->lpVtbl->GetFileTime(This, writetime) #define IDWriteFontFaceReference_GetLocality(This) (This)->lpVtbl->GetLocality(This) #define IDWriteFontFaceReference_EnqueueFontDownloadRequest(This) (This)->lpVtbl->EnqueueFontDownloadRequest(This) -#define IDWriteFontFaceReference_EnqueueCharacterDownloadRequest(This,chars,count) (This)->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count) -#define IDWriteFontFaceReference_EnqueueGlyphDownloadRequest(This,glyphs,count) (This)->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count) -#define IDWriteFontFaceReference_EnqueueFileFragmentDownloadRequest(This,offset,size) (This)->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size) +#define IDWriteFontFaceReference_EnqueueCharacterDownloadRequest(This, chars, count) (This)->lpVtbl->EnqueueCharacterDownloadRequest(This, chars, count) +#define IDWriteFontFaceReference_EnqueueGlyphDownloadRequest(This, glyphs, count) (This)->lpVtbl->EnqueueGlyphDownloadRequest(This, glyphs, count) +#define IDWriteFontFaceReference_EnqueueFileFragmentDownloadRequest(This, offset, size) (This)->lpVtbl->EnqueueFileFragmentDownloadRequest(This, offset, size) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFaceReference_QueryInterface(IDWriteFontFaceReference* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontFaceReference_QueryInterface(IDWriteFontFaceReference* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontFaceReference_AddRef(IDWriteFontFaceReference* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontFaceReference_Release(IDWriteFontFaceReference* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontFaceReference methods ***/ -static inline HRESULT IDWriteFontFaceReference_CreateFontFace(IDWriteFontFaceReference* This,IDWriteFontFace3 **fontface) { - return This->lpVtbl->CreateFontFace(This,fontface); +static inline HRESULT IDWriteFontFaceReference_CreateFontFace(IDWriteFontFaceReference* This, IDWriteFontFace3** fontface) { + return This->lpVtbl->CreateFontFace(This, fontface); } -static inline HRESULT IDWriteFontFaceReference_CreateFontFaceWithSimulations(IDWriteFontFaceReference* This,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFace3 **fontface) { - return This->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface); +static inline HRESULT IDWriteFontFaceReference_CreateFontFaceWithSimulations(IDWriteFontFaceReference* This, DWRITE_FONT_SIMULATIONS simulations, IDWriteFontFace3** fontface) { + return This->lpVtbl->CreateFontFaceWithSimulations(This, simulations, fontface); } -static inline WINBOOL IDWriteFontFaceReference_Equals(IDWriteFontFaceReference* This,IDWriteFontFaceReference *reference) { - return This->lpVtbl->Equals(This,reference); +static inline WINBOOL IDWriteFontFaceReference_Equals(IDWriteFontFaceReference* This, IDWriteFontFaceReference* reference) { + return This->lpVtbl->Equals(This, reference); } static inline UINT32 IDWriteFontFaceReference_GetFontFaceIndex(IDWriteFontFaceReference* This) { - return This->lpVtbl->GetFontFaceIndex(This); + return This->lpVtbl->GetFontFaceIndex(This); } static inline DWRITE_FONT_SIMULATIONS IDWriteFontFaceReference_GetSimulations(IDWriteFontFaceReference* This) { - return This->lpVtbl->GetSimulations(This); + return This->lpVtbl->GetSimulations(This); } -static inline HRESULT IDWriteFontFaceReference_GetFontFile(IDWriteFontFaceReference* This,IDWriteFontFile **fontfile) { - return This->lpVtbl->GetFontFile(This,fontfile); +static inline HRESULT IDWriteFontFaceReference_GetFontFile(IDWriteFontFaceReference* This, IDWriteFontFile** fontfile) { + return This->lpVtbl->GetFontFile(This, fontfile); } static inline UINT64 IDWriteFontFaceReference_GetLocalFileSize(IDWriteFontFaceReference* This) { - return This->lpVtbl->GetLocalFileSize(This); + return This->lpVtbl->GetLocalFileSize(This); } static inline UINT64 IDWriteFontFaceReference_GetFileSize(IDWriteFontFaceReference* This) { - return This->lpVtbl->GetFileSize(This); + return This->lpVtbl->GetFileSize(This); } -static inline HRESULT IDWriteFontFaceReference_GetFileTime(IDWriteFontFaceReference* This,FILETIME *writetime) { - return This->lpVtbl->GetFileTime(This,writetime); +static inline HRESULT IDWriteFontFaceReference_GetFileTime(IDWriteFontFaceReference* This, FILETIME* writetime) { + return This->lpVtbl->GetFileTime(This, writetime); } static inline DWRITE_LOCALITY IDWriteFontFaceReference_GetLocality(IDWriteFontFaceReference* This) { - return This->lpVtbl->GetLocality(This); + return This->lpVtbl->GetLocality(This); } static inline HRESULT IDWriteFontFaceReference_EnqueueFontDownloadRequest(IDWriteFontFaceReference* This) { - return This->lpVtbl->EnqueueFontDownloadRequest(This); + return This->lpVtbl->EnqueueFontDownloadRequest(This); } -static inline HRESULT IDWriteFontFaceReference_EnqueueCharacterDownloadRequest(IDWriteFontFaceReference* This,const WCHAR *chars,UINT32 count) { - return This->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count); +static inline HRESULT IDWriteFontFaceReference_EnqueueCharacterDownloadRequest(IDWriteFontFaceReference* This, const WCHAR* chars, UINT32 count) { + return This->lpVtbl->EnqueueCharacterDownloadRequest(This, chars, count); } -static inline HRESULT IDWriteFontFaceReference_EnqueueGlyphDownloadRequest(IDWriteFontFaceReference* This,const UINT16 *glyphs,UINT32 count) { - return This->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count); +static inline HRESULT IDWriteFontFaceReference_EnqueueGlyphDownloadRequest(IDWriteFontFaceReference* This, const UINT16* glyphs, UINT32 count) { + return This->lpVtbl->EnqueueGlyphDownloadRequest(This, glyphs, count); } -static inline HRESULT IDWriteFontFaceReference_EnqueueFileFragmentDownloadRequest(IDWriteFontFaceReference* This,UINT64 offset,UINT64 size) { - return This->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size); +static inline HRESULT IDWriteFontFaceReference_EnqueueFileFragmentDownloadRequest(IDWriteFontFaceReference* This, UINT64 offset, UINT64 size) { + return This->lpVtbl->EnqueueFileFragmentDownloadRequest(This, offset, size); } #endif #endif #endif - -#endif /* __IDWriteFontFaceReference_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontFaceReference_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontFaceReference1 interface @@ -3186,208 +3126,204 @@ static inline HRESULT IDWriteFontFaceReference_EnqueueFileFragmentDownloadReques #ifndef __IDWriteFontFaceReference1_INTERFACE_DEFINED__ #define __IDWriteFontFaceReference1_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontFaceReference1, 0xc081fe77, 0x2fd1, 0x41ac, 0xa5,0xa3, 0x34,0x98,0x3c,0x4b,0xa6,0x1a); +DEFINE_GUID(IID_IDWriteFontFaceReference1, 0xc081fe77, 0x2fd1, 0x41ac, 0xa5, 0xa3, 0x34, 0x98, 0x3c, 0x4b, 0xa6, 0x1a); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("c081fe77-2fd1-41ac-a5a3-34983c4ba61a") -IDWriteFontFaceReference1 : public IDWriteFontFaceReference -{ - virtual HRESULT STDMETHODCALLTYPE CreateFontFace( - IDWriteFontFace5 **fontface) = 0; +IDWriteFontFaceReference1 : public IDWriteFontFaceReference { + virtual HRESULT STDMETHODCALLTYPE CreateFontFace( + IDWriteFontFace5 * *fontface) = 0; - virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount( - ) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues( - DWRITE_FONT_AXIS_VALUE *values, - UINT32 num_values) = 0; + virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount() = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues( + DWRITE_FONT_AXIS_VALUE * values, + UINT32 num_values) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFaceReference1, 0xc081fe77, 0x2fd1, 0x41ac, 0xa5,0xa3, 0x34,0x98,0x3c,0x4b,0xa6,0x1a) +__CRT_UUID_DECL(IDWriteFontFaceReference1, 0xc081fe77, 0x2fd1, 0x41ac, 0xa5, 0xa3, 0x34, 0x98, 0x3c, 0x4b, 0xa6, 0x1a) #endif #else typedef struct IDWriteFontFaceReference1Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontFaceReference1 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontFaceReference1* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontFaceReference1 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontFaceReference1* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontFaceReference1 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontFaceReference1* This); - /*** IDWriteFontFaceReference methods ***/ - HRESULT (STDMETHODCALLTYPE *CreateFontFace)( - IDWriteFontFaceReference1 *This, - IDWriteFontFace3 **fontface); + /*** IDWriteFontFaceReference methods ***/ + HRESULT(STDMETHODCALLTYPE* CreateFontFace)( + IDWriteFontFaceReference1* This, + IDWriteFontFace3** fontface); - HRESULT (STDMETHODCALLTYPE *CreateFontFaceWithSimulations)( - IDWriteFontFaceReference1 *This, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFace3 **fontface); + HRESULT(STDMETHODCALLTYPE* CreateFontFaceWithSimulations)( + IDWriteFontFaceReference1* This, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFace3** fontface); - WINBOOL (STDMETHODCALLTYPE *Equals)( - IDWriteFontFaceReference1 *This, - IDWriteFontFaceReference *reference); + WINBOOL(STDMETHODCALLTYPE* Equals)( + IDWriteFontFaceReference1* This, + IDWriteFontFaceReference* reference); - UINT32 (STDMETHODCALLTYPE *GetFontFaceIndex)( - IDWriteFontFaceReference1 *This); + UINT32(STDMETHODCALLTYPE* GetFontFaceIndex)( + IDWriteFontFaceReference1* This); - DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( - IDWriteFontFaceReference1 *This); + DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( + IDWriteFontFaceReference1* This); - HRESULT (STDMETHODCALLTYPE *GetFontFile)( - IDWriteFontFaceReference1 *This, - IDWriteFontFile **fontfile); + HRESULT(STDMETHODCALLTYPE* GetFontFile)( + IDWriteFontFaceReference1* This, + IDWriteFontFile** fontfile); - UINT64 (STDMETHODCALLTYPE *GetLocalFileSize)( - IDWriteFontFaceReference1 *This); + UINT64(STDMETHODCALLTYPE* GetLocalFileSize)( + IDWriteFontFaceReference1* This); - UINT64 (STDMETHODCALLTYPE *GetFileSize)( - IDWriteFontFaceReference1 *This); + UINT64(STDMETHODCALLTYPE* GetFileSize)( + IDWriteFontFaceReference1* This); - HRESULT (STDMETHODCALLTYPE *GetFileTime)( - IDWriteFontFaceReference1 *This, - FILETIME *writetime); + HRESULT(STDMETHODCALLTYPE* GetFileTime)( + IDWriteFontFaceReference1* This, + FILETIME* writetime); - DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)( - IDWriteFontFaceReference1 *This); + DWRITE_LOCALITY(STDMETHODCALLTYPE* GetLocality)( + IDWriteFontFaceReference1* This); - HRESULT (STDMETHODCALLTYPE *EnqueueFontDownloadRequest)( - IDWriteFontFaceReference1 *This); + HRESULT(STDMETHODCALLTYPE* EnqueueFontDownloadRequest)( + IDWriteFontFaceReference1* This); - HRESULT (STDMETHODCALLTYPE *EnqueueCharacterDownloadRequest)( - IDWriteFontFaceReference1 *This, - const WCHAR *chars, - UINT32 count); + HRESULT(STDMETHODCALLTYPE* EnqueueCharacterDownloadRequest)( + IDWriteFontFaceReference1* This, + const WCHAR* chars, + UINT32 count); - HRESULT (STDMETHODCALLTYPE *EnqueueGlyphDownloadRequest)( - IDWriteFontFaceReference1 *This, - const UINT16 *glyphs, - UINT32 count); + HRESULT(STDMETHODCALLTYPE* EnqueueGlyphDownloadRequest)( + IDWriteFontFaceReference1* This, + const UINT16* glyphs, + UINT32 count); - HRESULT (STDMETHODCALLTYPE *EnqueueFileFragmentDownloadRequest)( - IDWriteFontFaceReference1 *This, - UINT64 offset, - UINT64 size); + HRESULT(STDMETHODCALLTYPE* EnqueueFileFragmentDownloadRequest)( + IDWriteFontFaceReference1* This, + UINT64 offset, + UINT64 size); - /*** IDWriteFontFaceReference1 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFontFaceReference1_CreateFontFace)( - IDWriteFontFaceReference1 *This, - IDWriteFontFace5 **fontface); + /*** IDWriteFontFaceReference1 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFontFaceReference1_CreateFontFace)( + IDWriteFontFaceReference1* This, + IDWriteFontFace5** fontface); - UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)( - IDWriteFontFaceReference1 *This); + UINT32(STDMETHODCALLTYPE* GetFontAxisValueCount)( + IDWriteFontFaceReference1* This); - HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)( - IDWriteFontFaceReference1 *This, - DWRITE_FONT_AXIS_VALUE *values, - UINT32 num_values); + HRESULT(STDMETHODCALLTYPE* GetFontAxisValues)( + IDWriteFontFaceReference1* This, + DWRITE_FONT_AXIS_VALUE* values, + UINT32 num_values); - END_INTERFACE + END_INTERFACE } IDWriteFontFaceReference1Vtbl; interface IDWriteFontFaceReference1 { - CONST_VTBL IDWriteFontFaceReference1Vtbl* lpVtbl; + CONST_VTBL IDWriteFontFaceReference1Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontFaceReference1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFaceReference1_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontFaceReference1_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontFaceReference1_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontFaceReference methods ***/ -#define IDWriteFontFaceReference1_CreateFontFaceWithSimulations(This,simulations,fontface) (This)->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface) -#define IDWriteFontFaceReference1_Equals(This,reference) (This)->lpVtbl->Equals(This,reference) +#define IDWriteFontFaceReference1_CreateFontFaceWithSimulations(This, simulations, fontface) (This)->lpVtbl->CreateFontFaceWithSimulations(This, simulations, fontface) +#define IDWriteFontFaceReference1_Equals(This, reference) (This)->lpVtbl->Equals(This, reference) #define IDWriteFontFaceReference1_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This) #define IDWriteFontFaceReference1_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) -#define IDWriteFontFaceReference1_GetFontFile(This,fontfile) (This)->lpVtbl->GetFontFile(This,fontfile) +#define IDWriteFontFaceReference1_GetFontFile(This, fontfile) (This)->lpVtbl->GetFontFile(This, fontfile) #define IDWriteFontFaceReference1_GetLocalFileSize(This) (This)->lpVtbl->GetLocalFileSize(This) #define IDWriteFontFaceReference1_GetFileSize(This) (This)->lpVtbl->GetFileSize(This) -#define IDWriteFontFaceReference1_GetFileTime(This,writetime) (This)->lpVtbl->GetFileTime(This,writetime) +#define IDWriteFontFaceReference1_GetFileTime(This, writetime) (This)->lpVtbl->GetFileTime(This, writetime) #define IDWriteFontFaceReference1_GetLocality(This) (This)->lpVtbl->GetLocality(This) #define IDWriteFontFaceReference1_EnqueueFontDownloadRequest(This) (This)->lpVtbl->EnqueueFontDownloadRequest(This) -#define IDWriteFontFaceReference1_EnqueueCharacterDownloadRequest(This,chars,count) (This)->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count) -#define IDWriteFontFaceReference1_EnqueueGlyphDownloadRequest(This,glyphs,count) (This)->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count) -#define IDWriteFontFaceReference1_EnqueueFileFragmentDownloadRequest(This,offset,size) (This)->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size) +#define IDWriteFontFaceReference1_EnqueueCharacterDownloadRequest(This, chars, count) (This)->lpVtbl->EnqueueCharacterDownloadRequest(This, chars, count) +#define IDWriteFontFaceReference1_EnqueueGlyphDownloadRequest(This, glyphs, count) (This)->lpVtbl->EnqueueGlyphDownloadRequest(This, glyphs, count) +#define IDWriteFontFaceReference1_EnqueueFileFragmentDownloadRequest(This, offset, size) (This)->lpVtbl->EnqueueFileFragmentDownloadRequest(This, offset, size) /*** IDWriteFontFaceReference1 methods ***/ -#define IDWriteFontFaceReference1_CreateFontFace(This,fontface) (This)->lpVtbl->IDWriteFontFaceReference1_CreateFontFace(This,fontface) +#define IDWriteFontFaceReference1_CreateFontFace(This, fontface) (This)->lpVtbl->IDWriteFontFaceReference1_CreateFontFace(This, fontface) #define IDWriteFontFaceReference1_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This) -#define IDWriteFontFaceReference1_GetFontAxisValues(This,values,num_values) (This)->lpVtbl->GetFontAxisValues(This,values,num_values) +#define IDWriteFontFaceReference1_GetFontAxisValues(This, values, num_values) (This)->lpVtbl->GetFontAxisValues(This, values, num_values) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFaceReference1_QueryInterface(IDWriteFontFaceReference1* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontFaceReference1_QueryInterface(IDWriteFontFaceReference1* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontFaceReference1_AddRef(IDWriteFontFaceReference1* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontFaceReference1_Release(IDWriteFontFaceReference1* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontFaceReference methods ***/ -static inline HRESULT IDWriteFontFaceReference1_CreateFontFaceWithSimulations(IDWriteFontFaceReference1* This,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFace3 **fontface) { - return This->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface); +static inline HRESULT IDWriteFontFaceReference1_CreateFontFaceWithSimulations(IDWriteFontFaceReference1* This, DWRITE_FONT_SIMULATIONS simulations, IDWriteFontFace3** fontface) { + return This->lpVtbl->CreateFontFaceWithSimulations(This, simulations, fontface); } -static inline WINBOOL IDWriteFontFaceReference1_Equals(IDWriteFontFaceReference1* This,IDWriteFontFaceReference *reference) { - return This->lpVtbl->Equals(This,reference); +static inline WINBOOL IDWriteFontFaceReference1_Equals(IDWriteFontFaceReference1* This, IDWriteFontFaceReference* reference) { + return This->lpVtbl->Equals(This, reference); } static inline UINT32 IDWriteFontFaceReference1_GetFontFaceIndex(IDWriteFontFaceReference1* This) { - return This->lpVtbl->GetFontFaceIndex(This); + return This->lpVtbl->GetFontFaceIndex(This); } static inline DWRITE_FONT_SIMULATIONS IDWriteFontFaceReference1_GetSimulations(IDWriteFontFaceReference1* This) { - return This->lpVtbl->GetSimulations(This); + return This->lpVtbl->GetSimulations(This); } -static inline HRESULT IDWriteFontFaceReference1_GetFontFile(IDWriteFontFaceReference1* This,IDWriteFontFile **fontfile) { - return This->lpVtbl->GetFontFile(This,fontfile); +static inline HRESULT IDWriteFontFaceReference1_GetFontFile(IDWriteFontFaceReference1* This, IDWriteFontFile** fontfile) { + return This->lpVtbl->GetFontFile(This, fontfile); } static inline UINT64 IDWriteFontFaceReference1_GetLocalFileSize(IDWriteFontFaceReference1* This) { - return This->lpVtbl->GetLocalFileSize(This); + return This->lpVtbl->GetLocalFileSize(This); } static inline UINT64 IDWriteFontFaceReference1_GetFileSize(IDWriteFontFaceReference1* This) { - return This->lpVtbl->GetFileSize(This); + return This->lpVtbl->GetFileSize(This); } -static inline HRESULT IDWriteFontFaceReference1_GetFileTime(IDWriteFontFaceReference1* This,FILETIME *writetime) { - return This->lpVtbl->GetFileTime(This,writetime); +static inline HRESULT IDWriteFontFaceReference1_GetFileTime(IDWriteFontFaceReference1* This, FILETIME* writetime) { + return This->lpVtbl->GetFileTime(This, writetime); } static inline DWRITE_LOCALITY IDWriteFontFaceReference1_GetLocality(IDWriteFontFaceReference1* This) { - return This->lpVtbl->GetLocality(This); + return This->lpVtbl->GetLocality(This); } static inline HRESULT IDWriteFontFaceReference1_EnqueueFontDownloadRequest(IDWriteFontFaceReference1* This) { - return This->lpVtbl->EnqueueFontDownloadRequest(This); + return This->lpVtbl->EnqueueFontDownloadRequest(This); } -static inline HRESULT IDWriteFontFaceReference1_EnqueueCharacterDownloadRequest(IDWriteFontFaceReference1* This,const WCHAR *chars,UINT32 count) { - return This->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count); +static inline HRESULT IDWriteFontFaceReference1_EnqueueCharacterDownloadRequest(IDWriteFontFaceReference1* This, const WCHAR* chars, UINT32 count) { + return This->lpVtbl->EnqueueCharacterDownloadRequest(This, chars, count); } -static inline HRESULT IDWriteFontFaceReference1_EnqueueGlyphDownloadRequest(IDWriteFontFaceReference1* This,const UINT16 *glyphs,UINT32 count) { - return This->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count); +static inline HRESULT IDWriteFontFaceReference1_EnqueueGlyphDownloadRequest(IDWriteFontFaceReference1* This, const UINT16* glyphs, UINT32 count) { + return This->lpVtbl->EnqueueGlyphDownloadRequest(This, glyphs, count); } -static inline HRESULT IDWriteFontFaceReference1_EnqueueFileFragmentDownloadRequest(IDWriteFontFaceReference1* This,UINT64 offset,UINT64 size) { - return This->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size); +static inline HRESULT IDWriteFontFaceReference1_EnqueueFileFragmentDownloadRequest(IDWriteFontFaceReference1* This, UINT64 offset, UINT64 size) { + return This->lpVtbl->EnqueueFileFragmentDownloadRequest(This, offset, size); } /*** IDWriteFontFaceReference1 methods ***/ -static inline HRESULT IDWriteFontFaceReference1_CreateFontFace(IDWriteFontFaceReference1* This,IDWriteFontFace5 **fontface) { - return This->lpVtbl->IDWriteFontFaceReference1_CreateFontFace(This,fontface); +static inline HRESULT IDWriteFontFaceReference1_CreateFontFace(IDWriteFontFaceReference1* This, IDWriteFontFace5** fontface) { + return This->lpVtbl->IDWriteFontFaceReference1_CreateFontFace(This, fontface); } static inline UINT32 IDWriteFontFaceReference1_GetFontAxisValueCount(IDWriteFontFaceReference1* This) { - return This->lpVtbl->GetFontAxisValueCount(This); + return This->lpVtbl->GetFontAxisValueCount(This); } -static inline HRESULT IDWriteFontFaceReference1_GetFontAxisValues(IDWriteFontFaceReference1* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 num_values) { - return This->lpVtbl->GetFontAxisValues(This,values,num_values); +static inline HRESULT IDWriteFontFaceReference1_GetFontAxisValues(IDWriteFontFaceReference1* This, DWRITE_FONT_AXIS_VALUE* values, UINT32 num_values) { + return This->lpVtbl->GetFontAxisValues(This, values, num_values); } #endif #endif #endif - -#endif /* __IDWriteFontFaceReference1_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontFaceReference1_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontList1 interface @@ -3395,125 +3331,122 @@ static inline HRESULT IDWriteFontFaceReference1_GetFontAxisValues(IDWriteFontFac #ifndef __IDWriteFontList1_INTERFACE_DEFINED__ #define __IDWriteFontList1_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontList1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xde); +DEFINE_GUID(IID_IDWriteFontList1, 0xda20d8ef, 0x812a, 0x4c43, 0x98, 0x02, 0x62, 0xec, 0x4a, 0xbd, 0x7a, 0xde); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7ade") -IDWriteFontList1 : public IDWriteFontList -{ - virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality( - UINT32 index) = 0; +IDWriteFontList1 : public IDWriteFontList { + virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality( + UINT32 index) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFont( - UINT32 index, - IDWriteFont3 **font) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( - UINT32 index, - IDWriteFontFaceReference **reference) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFont( + UINT32 index, + IDWriteFont3 * *font) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( + UINT32 index, + IDWriteFontFaceReference * *reference) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontList1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xde) +__CRT_UUID_DECL(IDWriteFontList1, 0xda20d8ef, 0x812a, 0x4c43, 0x98, 0x02, 0x62, 0xec, 0x4a, 0xbd, 0x7a, 0xde) #endif #else typedef struct IDWriteFontList1Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontList1 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontList1* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontList1 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontList1* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontList1 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontList1* This); - /*** IDWriteFontList methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFontCollection)( - IDWriteFontList1 *This, - IDWriteFontCollection **collection); + /*** IDWriteFontList methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFontCollection)( + IDWriteFontList1* This, + IDWriteFontCollection** collection); - UINT32 (STDMETHODCALLTYPE *GetFontCount)( - IDWriteFontList1 *This); + UINT32(STDMETHODCALLTYPE* GetFontCount)( + IDWriteFontList1* This); - HRESULT (STDMETHODCALLTYPE *GetFont)( - IDWriteFontList1 *This, - UINT32 index, - IDWriteFont **font); + HRESULT(STDMETHODCALLTYPE* GetFont)( + IDWriteFontList1* This, + UINT32 index, + IDWriteFont** font); - /*** IDWriteFontList1 methods ***/ - DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( - IDWriteFontList1 *This, - UINT32 index); + /*** IDWriteFontList1 methods ***/ + DWRITE_LOCALITY(STDMETHODCALLTYPE* GetFontLocality)( + IDWriteFontList1* This, + UINT32 index); - HRESULT (STDMETHODCALLTYPE *IDWriteFontList1_GetFont)( - IDWriteFontList1 *This, - UINT32 index, - IDWriteFont3 **font); + HRESULT(STDMETHODCALLTYPE* IDWriteFontList1_GetFont)( + IDWriteFontList1* This, + UINT32 index, + IDWriteFont3** font); - HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( - IDWriteFontList1 *This, - UINT32 index, - IDWriteFontFaceReference **reference); + HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( + IDWriteFontList1* This, + UINT32 index, + IDWriteFontFaceReference** reference); - END_INTERFACE + END_INTERFACE } IDWriteFontList1Vtbl; interface IDWriteFontList1 { - CONST_VTBL IDWriteFontList1Vtbl* lpVtbl; + CONST_VTBL IDWriteFontList1Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontList1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontList1_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontList1_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontList1_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontList methods ***/ -#define IDWriteFontList1_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteFontList1_GetFontCollection(This, collection) (This)->lpVtbl->GetFontCollection(This, collection) #define IDWriteFontList1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) /*** IDWriteFontList1 methods ***/ -#define IDWriteFontList1_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) -#define IDWriteFontList1_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontList1_GetFont(This,index,font) -#define IDWriteFontList1_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference) +#define IDWriteFontList1_GetFontLocality(This, index) (This)->lpVtbl->GetFontLocality(This, index) +#define IDWriteFontList1_GetFont(This, index, font) (This)->lpVtbl->IDWriteFontList1_GetFont(This, index, font) +#define IDWriteFontList1_GetFontFaceReference(This, index, reference) (This)->lpVtbl->GetFontFaceReference(This, index, reference) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontList1_QueryInterface(IDWriteFontList1* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontList1_QueryInterface(IDWriteFontList1* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontList1_AddRef(IDWriteFontList1* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontList1_Release(IDWriteFontList1* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontList methods ***/ -static inline HRESULT IDWriteFontList1_GetFontCollection(IDWriteFontList1* This,IDWriteFontCollection **collection) { - return This->lpVtbl->GetFontCollection(This,collection); +static inline HRESULT IDWriteFontList1_GetFontCollection(IDWriteFontList1* This, IDWriteFontCollection** collection) { + return This->lpVtbl->GetFontCollection(This, collection); } static inline UINT32 IDWriteFontList1_GetFontCount(IDWriteFontList1* This) { - return This->lpVtbl->GetFontCount(This); + return This->lpVtbl->GetFontCount(This); } /*** IDWriteFontList1 methods ***/ -static inline DWRITE_LOCALITY IDWriteFontList1_GetFontLocality(IDWriteFontList1* This,UINT32 index) { - return This->lpVtbl->GetFontLocality(This,index); +static inline DWRITE_LOCALITY IDWriteFontList1_GetFontLocality(IDWriteFontList1* This, UINT32 index) { + return This->lpVtbl->GetFontLocality(This, index); } -static inline HRESULT IDWriteFontList1_GetFont(IDWriteFontList1* This,UINT32 index,IDWriteFont3 **font) { - return This->lpVtbl->IDWriteFontList1_GetFont(This,index,font); +static inline HRESULT IDWriteFontList1_GetFont(IDWriteFontList1* This, UINT32 index, IDWriteFont3** font) { + return This->lpVtbl->IDWriteFontList1_GetFont(This, index, font); } -static inline HRESULT IDWriteFontList1_GetFontFaceReference(IDWriteFontList1* This,UINT32 index,IDWriteFontFaceReference **reference) { - return This->lpVtbl->GetFontFaceReference(This,index,reference); +static inline HRESULT IDWriteFontList1_GetFontFaceReference(IDWriteFontList1* This, UINT32 index, IDWriteFontFaceReference** reference) { + return This->lpVtbl->GetFontFaceReference(This, index, reference); } #endif #endif #endif - -#endif /* __IDWriteFontList1_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontList1_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontList2 interface @@ -3521,128 +3454,125 @@ static inline HRESULT IDWriteFontList1_GetFontFaceReference(IDWriteFontList1* Th #ifndef __IDWriteFontList2_INTERFACE_DEFINED__ #define __IDWriteFontList2_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontList2, 0xc0763a34, 0x77af, 0x445a, 0xb7,0x35, 0x08,0xc3,0x7b,0x0a,0x5b,0xf5); +DEFINE_GUID(IID_IDWriteFontList2, 0xc0763a34, 0x77af, 0x445a, 0xb7, 0x35, 0x08, 0xc3, 0x7b, 0x0a, 0x5b, 0xf5); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("c0763a34-77af-445a-b735-08c37b0a5bf5") -IDWriteFontList2 : public IDWriteFontList1 -{ - virtual HRESULT STDMETHODCALLTYPE GetFontSet( - IDWriteFontSet1 **fontset) = 0; - +IDWriteFontList2 : public IDWriteFontList1 { + virtual HRESULT STDMETHODCALLTYPE GetFontSet( + IDWriteFontSet1 * *fontset) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontList2, 0xc0763a34, 0x77af, 0x445a, 0xb7,0x35, 0x08,0xc3,0x7b,0x0a,0x5b,0xf5) +__CRT_UUID_DECL(IDWriteFontList2, 0xc0763a34, 0x77af, 0x445a, 0xb7, 0x35, 0x08, 0xc3, 0x7b, 0x0a, 0x5b, 0xf5) #endif #else typedef struct IDWriteFontList2Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontList2 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontList2* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontList2 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontList2* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontList2 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontList2* This); - /*** IDWriteFontList methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFontCollection)( - IDWriteFontList2 *This, - IDWriteFontCollection **collection); + /*** IDWriteFontList methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFontCollection)( + IDWriteFontList2* This, + IDWriteFontCollection** collection); - UINT32 (STDMETHODCALLTYPE *GetFontCount)( - IDWriteFontList2 *This); + UINT32(STDMETHODCALLTYPE* GetFontCount)( + IDWriteFontList2* This); - HRESULT (STDMETHODCALLTYPE *GetFont)( - IDWriteFontList2 *This, - UINT32 index, - IDWriteFont **font); + HRESULT(STDMETHODCALLTYPE* GetFont)( + IDWriteFontList2* This, + UINT32 index, + IDWriteFont** font); - /*** IDWriteFontList1 methods ***/ - DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( - IDWriteFontList2 *This, - UINT32 index); + /*** IDWriteFontList1 methods ***/ + DWRITE_LOCALITY(STDMETHODCALLTYPE* GetFontLocality)( + IDWriteFontList2* This, + UINT32 index); - HRESULT (STDMETHODCALLTYPE *IDWriteFontList1_GetFont)( - IDWriteFontList2 *This, - UINT32 index, - IDWriteFont3 **font); + HRESULT(STDMETHODCALLTYPE* IDWriteFontList1_GetFont)( + IDWriteFontList2* This, + UINT32 index, + IDWriteFont3** font); - HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( - IDWriteFontList2 *This, - UINT32 index, - IDWriteFontFaceReference **reference); + HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( + IDWriteFontList2* This, + UINT32 index, + IDWriteFontFaceReference** reference); - /*** IDWriteFontList2 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFontSet)( - IDWriteFontList2 *This, - IDWriteFontSet1 **fontset); + /*** IDWriteFontList2 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFontSet)( + IDWriteFontList2* This, + IDWriteFontSet1** fontset); - END_INTERFACE + END_INTERFACE } IDWriteFontList2Vtbl; interface IDWriteFontList2 { - CONST_VTBL IDWriteFontList2Vtbl* lpVtbl; + CONST_VTBL IDWriteFontList2Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontList2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontList2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontList2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontList2_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontList methods ***/ -#define IDWriteFontList2_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteFontList2_GetFontCollection(This, collection) (This)->lpVtbl->GetFontCollection(This, collection) #define IDWriteFontList2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) /*** IDWriteFontList1 methods ***/ -#define IDWriteFontList2_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) -#define IDWriteFontList2_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontList1_GetFont(This,index,font) -#define IDWriteFontList2_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference) +#define IDWriteFontList2_GetFontLocality(This, index) (This)->lpVtbl->GetFontLocality(This, index) +#define IDWriteFontList2_GetFont(This, index, font) (This)->lpVtbl->IDWriteFontList1_GetFont(This, index, font) +#define IDWriteFontList2_GetFontFaceReference(This, index, reference) (This)->lpVtbl->GetFontFaceReference(This, index, reference) /*** IDWriteFontList2 methods ***/ -#define IDWriteFontList2_GetFontSet(This,fontset) (This)->lpVtbl->GetFontSet(This,fontset) +#define IDWriteFontList2_GetFontSet(This, fontset) (This)->lpVtbl->GetFontSet(This, fontset) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontList2_QueryInterface(IDWriteFontList2* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontList2_QueryInterface(IDWriteFontList2* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontList2_AddRef(IDWriteFontList2* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontList2_Release(IDWriteFontList2* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontList methods ***/ -static inline HRESULT IDWriteFontList2_GetFontCollection(IDWriteFontList2* This,IDWriteFontCollection **collection) { - return This->lpVtbl->GetFontCollection(This,collection); +static inline HRESULT IDWriteFontList2_GetFontCollection(IDWriteFontList2* This, IDWriteFontCollection** collection) { + return This->lpVtbl->GetFontCollection(This, collection); } static inline UINT32 IDWriteFontList2_GetFontCount(IDWriteFontList2* This) { - return This->lpVtbl->GetFontCount(This); + return This->lpVtbl->GetFontCount(This); } /*** IDWriteFontList1 methods ***/ -static inline DWRITE_LOCALITY IDWriteFontList2_GetFontLocality(IDWriteFontList2* This,UINT32 index) { - return This->lpVtbl->GetFontLocality(This,index); +static inline DWRITE_LOCALITY IDWriteFontList2_GetFontLocality(IDWriteFontList2* This, UINT32 index) { + return This->lpVtbl->GetFontLocality(This, index); } -static inline HRESULT IDWriteFontList2_GetFont(IDWriteFontList2* This,UINT32 index,IDWriteFont3 **font) { - return This->lpVtbl->IDWriteFontList1_GetFont(This,index,font); +static inline HRESULT IDWriteFontList2_GetFont(IDWriteFontList2* This, UINT32 index, IDWriteFont3** font) { + return This->lpVtbl->IDWriteFontList1_GetFont(This, index, font); } -static inline HRESULT IDWriteFontList2_GetFontFaceReference(IDWriteFontList2* This,UINT32 index,IDWriteFontFaceReference **reference) { - return This->lpVtbl->GetFontFaceReference(This,index,reference); +static inline HRESULT IDWriteFontList2_GetFontFaceReference(IDWriteFontList2* This, UINT32 index, IDWriteFontFaceReference** reference) { + return This->lpVtbl->GetFontFaceReference(This, index, reference); } /*** IDWriteFontList2 methods ***/ -static inline HRESULT IDWriteFontList2_GetFontSet(IDWriteFontList2* This,IDWriteFontSet1 **fontset) { - return This->lpVtbl->GetFontSet(This,fontset); +static inline HRESULT IDWriteFontList2_GetFontSet(IDWriteFontList2* This, IDWriteFontSet1** fontset) { + return This->lpVtbl->GetFontSet(This, fontset); } #endif #endif #endif - -#endif /* __IDWriteFontList2_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontList2_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontSet2 interface @@ -3650,303 +3580,299 @@ static inline HRESULT IDWriteFontList2_GetFontSet(IDWriteFontList2* This,IDWrite #ifndef __IDWriteFontSet2_INTERFACE_DEFINED__ #define __IDWriteFontSet2_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontSet2, 0xdc7ead19, 0xe54c, 0x43af, 0xb2,0xda, 0x4e,0x2b,0x79,0xba,0x3f,0x7f); +DEFINE_GUID(IID_IDWriteFontSet2, 0xdc7ead19, 0xe54c, 0x43af, 0xb2, 0xda, 0x4e, 0x2b, 0x79, 0xba, 0x3f, 0x7f); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("dc7ead19-e54c-43af-b2da-4e2b79ba3f7f") -IDWriteFontSet2 : public IDWriteFontSet1 -{ - virtual HANDLE STDMETHODCALLTYPE GetExpirationEvent( - ) = 0; - +IDWriteFontSet2 : public IDWriteFontSet1 { + virtual HANDLE STDMETHODCALLTYPE GetExpirationEvent() = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontSet2, 0xdc7ead19, 0xe54c, 0x43af, 0xb2,0xda, 0x4e,0x2b,0x79,0xba,0x3f,0x7f) +__CRT_UUID_DECL(IDWriteFontSet2, 0xdc7ead19, 0xe54c, 0x43af, 0xb2, 0xda, 0x4e, 0x2b, 0x79, 0xba, 0x3f, 0x7f) #endif #else typedef struct IDWriteFontSet2Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontSet2 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontSet2* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontSet2 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontSet2* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontSet2 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontSet2* This); - /*** IDWriteFontSet methods ***/ - UINT32 (STDMETHODCALLTYPE *GetFontCount)( - IDWriteFontSet2 *This); + /*** IDWriteFontSet methods ***/ + UINT32(STDMETHODCALLTYPE* GetFontCount)( + IDWriteFontSet2* This); - HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( - IDWriteFontSet2 *This, - UINT32 index, - IDWriteFontFaceReference **reference); + HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( + IDWriteFontSet2* This, + UINT32 index, + IDWriteFontFaceReference** reference); - HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)( - IDWriteFontSet2 *This, - IDWriteFontFaceReference *reference, - UINT32 *index, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* FindFontFaceReference)( + IDWriteFontSet2* This, + IDWriteFontFaceReference* reference, + UINT32* index, + WINBOOL* exists); - HRESULT (STDMETHODCALLTYPE *FindFontFace)( - IDWriteFontSet2 *This, - IDWriteFontFace *fontface, - UINT32 *index, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* FindFontFace)( + IDWriteFontSet2* This, + IDWriteFontFace* fontface, + UINT32* index, + WINBOOL* exists); - HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)( - IDWriteFontSet2 *This, - DWRITE_FONT_PROPERTY_ID id, - IDWriteStringList **values); + HRESULT(STDMETHODCALLTYPE* GetPropertyValues__)( + IDWriteFontSet2* This, + DWRITE_FONT_PROPERTY_ID id, + IDWriteStringList** values); - HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)( - IDWriteFontSet2 *This, - DWRITE_FONT_PROPERTY_ID id, - const WCHAR *preferred_locales, - IDWriteStringList **values); + HRESULT(STDMETHODCALLTYPE* GetPropertyValues_)( + IDWriteFontSet2* This, + DWRITE_FONT_PROPERTY_ID id, + const WCHAR* preferred_locales, + IDWriteStringList** values); - HRESULT (STDMETHODCALLTYPE *GetPropertyValues)( - IDWriteFontSet2 *This, - UINT32 index, - DWRITE_FONT_PROPERTY_ID id, - WINBOOL *exists, - IDWriteLocalizedStrings **values); + HRESULT(STDMETHODCALLTYPE* GetPropertyValues)( + IDWriteFontSet2* This, + UINT32 index, + DWRITE_FONT_PROPERTY_ID id, + WINBOOL* exists, + IDWriteLocalizedStrings** values); - HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)( - IDWriteFontSet2 *This, - const DWRITE_FONT_PROPERTY *property, - UINT32 *count); + HRESULT(STDMETHODCALLTYPE* GetPropertyOccurrenceCount)( + IDWriteFontSet2* This, + const DWRITE_FONT_PROPERTY* property, + UINT32* count); - HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)( - IDWriteFontSet2 *This, - const WCHAR *family, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFontSet **fontset); + HRESULT(STDMETHODCALLTYPE* GetMatchingFonts_)( + IDWriteFontSet2* This, + const WCHAR* family, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontSet** fontset); - HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( - IDWriteFontSet2 *This, - const DWRITE_FONT_PROPERTY *props, - UINT32 count, - IDWriteFontSet **fontset); + HRESULT(STDMETHODCALLTYPE* GetMatchingFonts)( + IDWriteFontSet2* This, + const DWRITE_FONT_PROPERTY* props, + UINT32 count, + IDWriteFontSet** fontset); - /*** IDWriteFontSet1 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)( - IDWriteFontSet2 *This, - const DWRITE_FONT_PROPERTY *property, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values, - IDWriteFontSet1 **fontset); + /*** IDWriteFontSet1 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFontSet1_GetMatchingFonts)( + IDWriteFontSet2* This, + const DWRITE_FONT_PROPERTY* property, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)( - IDWriteFontSet2 *This, - IDWriteFontSet1 **fontset); + HRESULT(STDMETHODCALLTYPE* GetFirstFontResources)( + IDWriteFontSet2* This, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)( - IDWriteFontSet2 *This, - const UINT32 *indices, - UINT32 num_indices, - IDWriteFontSet1 **fontset); + HRESULT(STDMETHODCALLTYPE* GetFilteredFonts__)( + IDWriteFontSet2* This, + const UINT32* indices, + UINT32 num_indices, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)( - IDWriteFontSet2 *This, - const DWRITE_FONT_AXIS_RANGE *axis_ranges, - UINT32 num_ranges, - WINBOOL select_any_range, - IDWriteFontSet1 **fontset); + HRESULT(STDMETHODCALLTYPE* GetFilteredFonts_)( + IDWriteFontSet2* This, + const DWRITE_FONT_AXIS_RANGE* axis_ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)( - IDWriteFontSet2 *This, - const DWRITE_FONT_PROPERTY *props, - UINT32 num_properties, - WINBOOL select_any_property, - IDWriteFontSet1 **fontset); + HRESULT(STDMETHODCALLTYPE* GetFilteredFonts)( + IDWriteFontSet2* This, + const DWRITE_FONT_PROPERTY* props, + UINT32 num_properties, + WINBOOL select_any_property, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)( - IDWriteFontSet2 *This, - const DWRITE_FONT_AXIS_RANGE *ranges, - UINT32 num_ranges, - WINBOOL select_any_range, - UINT32 *indices, - UINT32 num_indices, - UINT32 *actual_num_indices); + HRESULT(STDMETHODCALLTYPE* GetFilteredFontIndices_)( + IDWriteFontSet2* This, + const DWRITE_FONT_AXIS_RANGE* ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + UINT32* indices, + UINT32 num_indices, + UINT32* actual_num_indices); - HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)( - IDWriteFontSet2 *This, - const DWRITE_FONT_PROPERTY *props, - UINT32 num_properties, - WINBOOL select_any_range, - UINT32 *indices, - UINT32 num_indices, - UINT32 *actual_num_indices); + HRESULT(STDMETHODCALLTYPE* GetFilteredFontIndices)( + IDWriteFontSet2* This, + const DWRITE_FONT_PROPERTY* props, + UINT32 num_properties, + WINBOOL select_any_range, + UINT32* indices, + UINT32 num_indices, + UINT32* actual_num_indices); - HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)( - IDWriteFontSet2 *This, - UINT32 font_index, - DWRITE_FONT_AXIS_RANGE *axis_ranges, - UINT32 num_ranges, - UINT32 *actual_num_ranges); + HRESULT(STDMETHODCALLTYPE* GetFontAxisRanges_)( + IDWriteFontSet2* This, + UINT32 font_index, + DWRITE_FONT_AXIS_RANGE* axis_ranges, + UINT32 num_ranges, + UINT32* actual_num_ranges); - HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)( - IDWriteFontSet2 *This, - DWRITE_FONT_AXIS_RANGE *axis_ranges, - UINT32 num_ranges, - UINT32 *actual_num_ranges); + HRESULT(STDMETHODCALLTYPE* GetFontAxisRanges)( + IDWriteFontSet2* This, + DWRITE_FONT_AXIS_RANGE* axis_ranges, + UINT32 num_ranges, + UINT32* actual_num_ranges); - HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)( - IDWriteFontSet2 *This, - UINT32 index, - IDWriteFontFaceReference1 **reference); + HRESULT(STDMETHODCALLTYPE* IDWriteFontSet1_GetFontFaceReference)( + IDWriteFontSet2* This, + UINT32 index, + IDWriteFontFaceReference1** reference); - HRESULT (STDMETHODCALLTYPE *CreateFontResource)( - IDWriteFontSet2 *This, - UINT32 index, - IDWriteFontResource **resource); + HRESULT(STDMETHODCALLTYPE* CreateFontResource)( + IDWriteFontSet2* This, + UINT32 index, + IDWriteFontResource** resource); - HRESULT (STDMETHODCALLTYPE *CreateFontFace)( - IDWriteFontSet2 *This, - UINT32 index, - IDWriteFontFace5 **fontface); + HRESULT(STDMETHODCALLTYPE* CreateFontFace)( + IDWriteFontSet2* This, + UINT32 index, + IDWriteFontFace5** fontface); - DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( - IDWriteFontSet2 *This, - UINT32 index); + DWRITE_LOCALITY(STDMETHODCALLTYPE* GetFontLocality)( + IDWriteFontSet2* This, + UINT32 index); - /*** IDWriteFontSet2 methods ***/ - HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)( - IDWriteFontSet2 *This); + /*** IDWriteFontSet2 methods ***/ + HANDLE(STDMETHODCALLTYPE* GetExpirationEvent)( + IDWriteFontSet2* This); - END_INTERFACE + END_INTERFACE } IDWriteFontSet2Vtbl; interface IDWriteFontSet2 { - CONST_VTBL IDWriteFontSet2Vtbl* lpVtbl; + CONST_VTBL IDWriteFontSet2Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontSet2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSet2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontSet2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontSet2_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontSet methods ***/ #define IDWriteFontSet2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) -#define IDWriteFontSet2_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists) -#define IDWriteFontSet2_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists) -#define IDWriteFontSet2_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values) -#define IDWriteFontSet2_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values) -#define IDWriteFontSet2_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values) -#define IDWriteFontSet2_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count) -#define IDWriteFontSet2_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset) +#define IDWriteFontSet2_FindFontFaceReference(This, reference, index, exists) (This)->lpVtbl->FindFontFaceReference(This, reference, index, exists) +#define IDWriteFontSet2_FindFontFace(This, fontface, index, exists) (This)->lpVtbl->FindFontFace(This, fontface, index, exists) +#define IDWriteFontSet2_GetPropertyValues__(This, id, values) (This)->lpVtbl->GetPropertyValues__(This, id, values) +#define IDWriteFontSet2_GetPropertyValues_(This, id, preferred_locales, values) (This)->lpVtbl->GetPropertyValues_(This, id, preferred_locales, values) +#define IDWriteFontSet2_GetPropertyValues(This, index, id, exists, values) (This)->lpVtbl->GetPropertyValues(This, index, id, exists, values) +#define IDWriteFontSet2_GetPropertyOccurrenceCount(This, property, count) (This)->lpVtbl->GetPropertyOccurrenceCount(This, property, count) +#define IDWriteFontSet2_GetMatchingFonts_(This, family, weight, stretch, style, fontset) (This)->lpVtbl->GetMatchingFonts_(This, family, weight, stretch, style, fontset) /*** IDWriteFontSet1 methods ***/ -#define IDWriteFontSet2_GetMatchingFonts(This,property,axis_values,num_values,fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset) -#define IDWriteFontSet2_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset) -#define IDWriteFontSet2_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset) -#define IDWriteFontSet2_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) -#define IDWriteFontSet2_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset) -#define IDWriteFontSet2_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) -#define IDWriteFontSet2_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) -#define IDWriteFontSet2_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) -#define IDWriteFontSet2_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) -#define IDWriteFontSet2_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference) -#define IDWriteFontSet2_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource) -#define IDWriteFontSet2_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface) -#define IDWriteFontSet2_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) +#define IDWriteFontSet2_GetMatchingFonts(This, property, axis_values, num_values, fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This, property, axis_values, num_values, fontset) +#define IDWriteFontSet2_GetFirstFontResources(This, fontset) (This)->lpVtbl->GetFirstFontResources(This, fontset) +#define IDWriteFontSet2_GetFilteredFonts__(This, indices, num_indices, fontset) (This)->lpVtbl->GetFilteredFonts__(This, indices, num_indices, fontset) +#define IDWriteFontSet2_GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset) (This)->lpVtbl->GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset) +#define IDWriteFontSet2_GetFilteredFonts(This, props, num_properties, select_any_property, fontset) (This)->lpVtbl->GetFilteredFonts(This, props, num_properties, select_any_property, fontset) +#define IDWriteFontSet2_GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices) +#define IDWriteFontSet2_GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices) +#define IDWriteFontSet2_GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges) +#define IDWriteFontSet2_GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges) +#define IDWriteFontSet2_GetFontFaceReference(This, index, reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This, index, reference) +#define IDWriteFontSet2_CreateFontResource(This, index, resource) (This)->lpVtbl->CreateFontResource(This, index, resource) +#define IDWriteFontSet2_CreateFontFace(This, index, fontface) (This)->lpVtbl->CreateFontFace(This, index, fontface) +#define IDWriteFontSet2_GetFontLocality(This, index) (This)->lpVtbl->GetFontLocality(This, index) /*** IDWriteFontSet2 methods ***/ #define IDWriteFontSet2_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontSet2_QueryInterface(IDWriteFontSet2* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontSet2_QueryInterface(IDWriteFontSet2* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontSet2_AddRef(IDWriteFontSet2* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontSet2_Release(IDWriteFontSet2* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontSet methods ***/ static inline UINT32 IDWriteFontSet2_GetFontCount(IDWriteFontSet2* This) { - return This->lpVtbl->GetFontCount(This); + return This->lpVtbl->GetFontCount(This); } -static inline HRESULT IDWriteFontSet2_FindFontFaceReference(IDWriteFontSet2* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) { - return This->lpVtbl->FindFontFaceReference(This,reference,index,exists); +static inline HRESULT IDWriteFontSet2_FindFontFaceReference(IDWriteFontSet2* This, IDWriteFontFaceReference* reference, UINT32* index, WINBOOL* exists) { + return This->lpVtbl->FindFontFaceReference(This, reference, index, exists); } -static inline HRESULT IDWriteFontSet2_FindFontFace(IDWriteFontSet2* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) { - return This->lpVtbl->FindFontFace(This,fontface,index,exists); +static inline HRESULT IDWriteFontSet2_FindFontFace(IDWriteFontSet2* This, IDWriteFontFace* fontface, UINT32* index, WINBOOL* exists) { + return This->lpVtbl->FindFontFace(This, fontface, index, exists); } -static inline HRESULT IDWriteFontSet2_GetPropertyValues__(IDWriteFontSet2* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) { - return This->lpVtbl->GetPropertyValues__(This,id,values); +static inline HRESULT IDWriteFontSet2_GetPropertyValues__(IDWriteFontSet2* This, DWRITE_FONT_PROPERTY_ID id, IDWriteStringList** values) { + return This->lpVtbl->GetPropertyValues__(This, id, values); } -static inline HRESULT IDWriteFontSet2_GetPropertyValues_(IDWriteFontSet2* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) { - return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values); +static inline HRESULT IDWriteFontSet2_GetPropertyValues_(IDWriteFontSet2* This, DWRITE_FONT_PROPERTY_ID id, const WCHAR* preferred_locales, IDWriteStringList** values) { + return This->lpVtbl->GetPropertyValues_(This, id, preferred_locales, values); } -static inline HRESULT IDWriteFontSet2_GetPropertyValues(IDWriteFontSet2* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) { - return This->lpVtbl->GetPropertyValues(This,index,id,exists,values); +static inline HRESULT IDWriteFontSet2_GetPropertyValues(IDWriteFontSet2* This, UINT32 index, DWRITE_FONT_PROPERTY_ID id, WINBOOL* exists, IDWriteLocalizedStrings** values) { + return This->lpVtbl->GetPropertyValues(This, index, id, exists, values); } -static inline HRESULT IDWriteFontSet2_GetPropertyOccurrenceCount(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) { - return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count); +static inline HRESULT IDWriteFontSet2_GetPropertyOccurrenceCount(IDWriteFontSet2* This, const DWRITE_FONT_PROPERTY* property, UINT32* count) { + return This->lpVtbl->GetPropertyOccurrenceCount(This, property, count); } -static inline HRESULT IDWriteFontSet2_GetMatchingFonts_(IDWriteFontSet2* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) { - return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset); +static inline HRESULT IDWriteFontSet2_GetMatchingFonts_(IDWriteFontSet2* This, const WCHAR* family, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFontSet** fontset) { + return This->lpVtbl->GetMatchingFonts_(This, family, weight, stretch, style, fontset); } /*** IDWriteFontSet1 methods ***/ -static inline HRESULT IDWriteFontSet2_GetMatchingFonts(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *property,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontSet1 **fontset) { - return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset); +static inline HRESULT IDWriteFontSet2_GetMatchingFonts(IDWriteFontSet2* This, const DWRITE_FONT_PROPERTY* property, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values, IDWriteFontSet1** fontset) { + return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This, property, axis_values, num_values, fontset); } -static inline HRESULT IDWriteFontSet2_GetFirstFontResources(IDWriteFontSet2* This,IDWriteFontSet1 **fontset) { - return This->lpVtbl->GetFirstFontResources(This,fontset); +static inline HRESULT IDWriteFontSet2_GetFirstFontResources(IDWriteFontSet2* This, IDWriteFontSet1** fontset) { + return This->lpVtbl->GetFirstFontResources(This, fontset); } -static inline HRESULT IDWriteFontSet2_GetFilteredFonts__(IDWriteFontSet2* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) { - return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset); +static inline HRESULT IDWriteFontSet2_GetFilteredFonts__(IDWriteFontSet2* This, const UINT32* indices, UINT32 num_indices, IDWriteFontSet1** fontset) { + return This->lpVtbl->GetFilteredFonts__(This, indices, num_indices, fontset); } -static inline HRESULT IDWriteFontSet2_GetFilteredFonts_(IDWriteFontSet2* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) { - return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset); +static inline HRESULT IDWriteFontSet2_GetFilteredFonts_(IDWriteFontSet2* This, const DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, WINBOOL select_any_range, IDWriteFontSet1** fontset) { + return This->lpVtbl->GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset); } -static inline HRESULT IDWriteFontSet2_GetFilteredFonts(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) { - return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset); +static inline HRESULT IDWriteFontSet2_GetFilteredFonts(IDWriteFontSet2* This, const DWRITE_FONT_PROPERTY* props, UINT32 num_properties, WINBOOL select_any_property, IDWriteFontSet1** fontset) { + return This->lpVtbl->GetFilteredFonts(This, props, num_properties, select_any_property, fontset); } -static inline HRESULT IDWriteFontSet2_GetFilteredFontIndices_(IDWriteFontSet2* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { - return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices); +static inline HRESULT IDWriteFontSet2_GetFilteredFontIndices_(IDWriteFontSet2* This, const DWRITE_FONT_AXIS_RANGE* ranges, UINT32 num_ranges, WINBOOL select_any_range, UINT32* indices, UINT32 num_indices, UINT32* actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices); } -static inline HRESULT IDWriteFontSet2_GetFilteredFontIndices(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { - return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices); +static inline HRESULT IDWriteFontSet2_GetFilteredFontIndices(IDWriteFontSet2* This, const DWRITE_FONT_PROPERTY* props, UINT32 num_properties, WINBOOL select_any_range, UINT32* indices, UINT32 num_indices, UINT32* actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices); } -static inline HRESULT IDWriteFontSet2_GetFontAxisRanges_(IDWriteFontSet2* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { - return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges); +static inline HRESULT IDWriteFontSet2_GetFontAxisRanges_(IDWriteFontSet2* This, UINT32 font_index, DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, UINT32* actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges); } -static inline HRESULT IDWriteFontSet2_GetFontAxisRanges(IDWriteFontSet2* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { - return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges); +static inline HRESULT IDWriteFontSet2_GetFontAxisRanges(IDWriteFontSet2* This, DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, UINT32* actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges); } -static inline HRESULT IDWriteFontSet2_GetFontFaceReference(IDWriteFontSet2* This,UINT32 index,IDWriteFontFaceReference1 **reference) { - return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference); +static inline HRESULT IDWriteFontSet2_GetFontFaceReference(IDWriteFontSet2* This, UINT32 index, IDWriteFontFaceReference1** reference) { + return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This, index, reference); } -static inline HRESULT IDWriteFontSet2_CreateFontResource(IDWriteFontSet2* This,UINT32 index,IDWriteFontResource **resource) { - return This->lpVtbl->CreateFontResource(This,index,resource); +static inline HRESULT IDWriteFontSet2_CreateFontResource(IDWriteFontSet2* This, UINT32 index, IDWriteFontResource** resource) { + return This->lpVtbl->CreateFontResource(This, index, resource); } -static inline HRESULT IDWriteFontSet2_CreateFontFace(IDWriteFontSet2* This,UINT32 index,IDWriteFontFace5 **fontface) { - return This->lpVtbl->CreateFontFace(This,index,fontface); +static inline HRESULT IDWriteFontSet2_CreateFontFace(IDWriteFontSet2* This, UINT32 index, IDWriteFontFace5** fontface) { + return This->lpVtbl->CreateFontFace(This, index, fontface); } -static inline DWRITE_LOCALITY IDWriteFontSet2_GetFontLocality(IDWriteFontSet2* This,UINT32 index) { - return This->lpVtbl->GetFontLocality(This,index); +static inline DWRITE_LOCALITY IDWriteFontSet2_GetFontLocality(IDWriteFontSet2* This, UINT32 index) { + return This->lpVtbl->GetFontLocality(This, index); } /*** IDWriteFontSet2 methods ***/ static inline HANDLE IDWriteFontSet2_GetExpirationEvent(IDWriteFontSet2* This) { - return This->lpVtbl->GetExpirationEvent(This); + return This->lpVtbl->GetExpirationEvent(This); } #endif #endif #endif - -#endif /* __IDWriteFontSet2_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontSet2_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontSet3 interface @@ -3954,340 +3880,337 @@ static inline HANDLE IDWriteFontSet2_GetExpirationEvent(IDWriteFontSet2* This) { #ifndef __IDWriteFontSet3_INTERFACE_DEFINED__ #define __IDWriteFontSet3_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontSet3, 0x7c073ef2, 0xa7f4, 0x4045, 0x8c,0x32, 0x8a,0xb8,0xae,0x64,0x0f,0x90); +DEFINE_GUID(IID_IDWriteFontSet3, 0x7c073ef2, 0xa7f4, 0x4045, 0x8c, 0x32, 0x8a, 0xb8, 0xae, 0x64, 0x0f, 0x90); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("7c073ef2-a7f4-4045-8c32-8ab8ae640f90") -IDWriteFontSet3 : public IDWriteFontSet2 -{ - virtual DWRITE_FONT_SOURCE_TYPE STDMETHODCALLTYPE GetFontSourceType( - UINT32 index) = 0; +IDWriteFontSet3 : public IDWriteFontSet2 { + virtual DWRITE_FONT_SOURCE_TYPE STDMETHODCALLTYPE GetFontSourceType( + UINT32 index) = 0; - virtual UINT32 STDMETHODCALLTYPE GetFontSourceNameLength( - UINT32 index) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontSourceName( - UINT32 index, - WCHAR *buffer, - UINT32 buffer_size) = 0; + virtual UINT32 STDMETHODCALLTYPE GetFontSourceNameLength( + UINT32 index) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontSourceName( + UINT32 index, + WCHAR * buffer, + UINT32 buffer_size) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontSet3, 0x7c073ef2, 0xa7f4, 0x4045, 0x8c,0x32, 0x8a,0xb8,0xae,0x64,0x0f,0x90) +__CRT_UUID_DECL(IDWriteFontSet3, 0x7c073ef2, 0xa7f4, 0x4045, 0x8c, 0x32, 0x8a, 0xb8, 0xae, 0x64, 0x0f, 0x90) #endif #else typedef struct IDWriteFontSet3Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontSet3 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontSet3* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontSet3 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontSet3* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontSet3 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontSet3* This); - /*** IDWriteFontSet methods ***/ - UINT32 (STDMETHODCALLTYPE *GetFontCount)( - IDWriteFontSet3 *This); + /*** IDWriteFontSet methods ***/ + UINT32(STDMETHODCALLTYPE* GetFontCount)( + IDWriteFontSet3* This); - HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( - IDWriteFontSet3 *This, - UINT32 index, - IDWriteFontFaceReference **reference); + HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( + IDWriteFontSet3* This, + UINT32 index, + IDWriteFontFaceReference** reference); - HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)( - IDWriteFontSet3 *This, - IDWriteFontFaceReference *reference, - UINT32 *index, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* FindFontFaceReference)( + IDWriteFontSet3* This, + IDWriteFontFaceReference* reference, + UINT32* index, + WINBOOL* exists); - HRESULT (STDMETHODCALLTYPE *FindFontFace)( - IDWriteFontSet3 *This, - IDWriteFontFace *fontface, - UINT32 *index, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* FindFontFace)( + IDWriteFontSet3* This, + IDWriteFontFace* fontface, + UINT32* index, + WINBOOL* exists); - HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)( - IDWriteFontSet3 *This, - DWRITE_FONT_PROPERTY_ID id, - IDWriteStringList **values); + HRESULT(STDMETHODCALLTYPE* GetPropertyValues__)( + IDWriteFontSet3* This, + DWRITE_FONT_PROPERTY_ID id, + IDWriteStringList** values); - HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)( - IDWriteFontSet3 *This, - DWRITE_FONT_PROPERTY_ID id, - const WCHAR *preferred_locales, - IDWriteStringList **values); + HRESULT(STDMETHODCALLTYPE* GetPropertyValues_)( + IDWriteFontSet3* This, + DWRITE_FONT_PROPERTY_ID id, + const WCHAR* preferred_locales, + IDWriteStringList** values); - HRESULT (STDMETHODCALLTYPE *GetPropertyValues)( - IDWriteFontSet3 *This, - UINT32 index, - DWRITE_FONT_PROPERTY_ID id, - WINBOOL *exists, - IDWriteLocalizedStrings **values); + HRESULT(STDMETHODCALLTYPE* GetPropertyValues)( + IDWriteFontSet3* This, + UINT32 index, + DWRITE_FONT_PROPERTY_ID id, + WINBOOL* exists, + IDWriteLocalizedStrings** values); - HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)( - IDWriteFontSet3 *This, - const DWRITE_FONT_PROPERTY *property, - UINT32 *count); + HRESULT(STDMETHODCALLTYPE* GetPropertyOccurrenceCount)( + IDWriteFontSet3* This, + const DWRITE_FONT_PROPERTY* property, + UINT32* count); - HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)( - IDWriteFontSet3 *This, - const WCHAR *family, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFontSet **fontset); + HRESULT(STDMETHODCALLTYPE* GetMatchingFonts_)( + IDWriteFontSet3* This, + const WCHAR* family, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontSet** fontset); - HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( - IDWriteFontSet3 *This, - const DWRITE_FONT_PROPERTY *props, - UINT32 count, - IDWriteFontSet **fontset); + HRESULT(STDMETHODCALLTYPE* GetMatchingFonts)( + IDWriteFontSet3* This, + const DWRITE_FONT_PROPERTY* props, + UINT32 count, + IDWriteFontSet** fontset); - /*** IDWriteFontSet1 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)( - IDWriteFontSet3 *This, - const DWRITE_FONT_PROPERTY *property, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values, - IDWriteFontSet1 **fontset); + /*** IDWriteFontSet1 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFontSet1_GetMatchingFonts)( + IDWriteFontSet3* This, + const DWRITE_FONT_PROPERTY* property, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)( - IDWriteFontSet3 *This, - IDWriteFontSet1 **fontset); + HRESULT(STDMETHODCALLTYPE* GetFirstFontResources)( + IDWriteFontSet3* This, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)( - IDWriteFontSet3 *This, - const UINT32 *indices, - UINT32 num_indices, - IDWriteFontSet1 **fontset); + HRESULT(STDMETHODCALLTYPE* GetFilteredFonts__)( + IDWriteFontSet3* This, + const UINT32* indices, + UINT32 num_indices, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)( - IDWriteFontSet3 *This, - const DWRITE_FONT_AXIS_RANGE *axis_ranges, - UINT32 num_ranges, - WINBOOL select_any_range, - IDWriteFontSet1 **fontset); + HRESULT(STDMETHODCALLTYPE* GetFilteredFonts_)( + IDWriteFontSet3* This, + const DWRITE_FONT_AXIS_RANGE* axis_ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)( - IDWriteFontSet3 *This, - const DWRITE_FONT_PROPERTY *props, - UINT32 num_properties, - WINBOOL select_any_property, - IDWriteFontSet1 **fontset); + HRESULT(STDMETHODCALLTYPE* GetFilteredFonts)( + IDWriteFontSet3* This, + const DWRITE_FONT_PROPERTY* props, + UINT32 num_properties, + WINBOOL select_any_property, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)( - IDWriteFontSet3 *This, - const DWRITE_FONT_AXIS_RANGE *ranges, - UINT32 num_ranges, - WINBOOL select_any_range, - UINT32 *indices, - UINT32 num_indices, - UINT32 *actual_num_indices); + HRESULT(STDMETHODCALLTYPE* GetFilteredFontIndices_)( + IDWriteFontSet3* This, + const DWRITE_FONT_AXIS_RANGE* ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + UINT32* indices, + UINT32 num_indices, + UINT32* actual_num_indices); - HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)( - IDWriteFontSet3 *This, - const DWRITE_FONT_PROPERTY *props, - UINT32 num_properties, - WINBOOL select_any_range, - UINT32 *indices, - UINT32 num_indices, - UINT32 *actual_num_indices); + HRESULT(STDMETHODCALLTYPE* GetFilteredFontIndices)( + IDWriteFontSet3* This, + const DWRITE_FONT_PROPERTY* props, + UINT32 num_properties, + WINBOOL select_any_range, + UINT32* indices, + UINT32 num_indices, + UINT32* actual_num_indices); - HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)( - IDWriteFontSet3 *This, - UINT32 font_index, - DWRITE_FONT_AXIS_RANGE *axis_ranges, - UINT32 num_ranges, - UINT32 *actual_num_ranges); + HRESULT(STDMETHODCALLTYPE* GetFontAxisRanges_)( + IDWriteFontSet3* This, + UINT32 font_index, + DWRITE_FONT_AXIS_RANGE* axis_ranges, + UINT32 num_ranges, + UINT32* actual_num_ranges); - HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)( - IDWriteFontSet3 *This, - DWRITE_FONT_AXIS_RANGE *axis_ranges, - UINT32 num_ranges, - UINT32 *actual_num_ranges); + HRESULT(STDMETHODCALLTYPE* GetFontAxisRanges)( + IDWriteFontSet3* This, + DWRITE_FONT_AXIS_RANGE* axis_ranges, + UINT32 num_ranges, + UINT32* actual_num_ranges); - HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)( - IDWriteFontSet3 *This, - UINT32 index, - IDWriteFontFaceReference1 **reference); + HRESULT(STDMETHODCALLTYPE* IDWriteFontSet1_GetFontFaceReference)( + IDWriteFontSet3* This, + UINT32 index, + IDWriteFontFaceReference1** reference); - HRESULT (STDMETHODCALLTYPE *CreateFontResource)( - IDWriteFontSet3 *This, - UINT32 index, - IDWriteFontResource **resource); + HRESULT(STDMETHODCALLTYPE* CreateFontResource)( + IDWriteFontSet3* This, + UINT32 index, + IDWriteFontResource** resource); - HRESULT (STDMETHODCALLTYPE *CreateFontFace)( - IDWriteFontSet3 *This, - UINT32 index, - IDWriteFontFace5 **fontface); + HRESULT(STDMETHODCALLTYPE* CreateFontFace)( + IDWriteFontSet3* This, + UINT32 index, + IDWriteFontFace5** fontface); - DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( - IDWriteFontSet3 *This, - UINT32 index); + DWRITE_LOCALITY(STDMETHODCALLTYPE* GetFontLocality)( + IDWriteFontSet3* This, + UINT32 index); - /*** IDWriteFontSet2 methods ***/ - HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)( - IDWriteFontSet3 *This); + /*** IDWriteFontSet2 methods ***/ + HANDLE(STDMETHODCALLTYPE* GetExpirationEvent)( + IDWriteFontSet3* This); - /*** IDWriteFontSet3 methods ***/ - DWRITE_FONT_SOURCE_TYPE (STDMETHODCALLTYPE *GetFontSourceType)( - IDWriteFontSet3 *This, - UINT32 index); + /*** IDWriteFontSet3 methods ***/ + DWRITE_FONT_SOURCE_TYPE(STDMETHODCALLTYPE* GetFontSourceType)( + IDWriteFontSet3* This, + UINT32 index); - UINT32 (STDMETHODCALLTYPE *GetFontSourceNameLength)( - IDWriteFontSet3 *This, - UINT32 index); + UINT32(STDMETHODCALLTYPE* GetFontSourceNameLength)( + IDWriteFontSet3* This, + UINT32 index); - HRESULT (STDMETHODCALLTYPE *GetFontSourceName)( - IDWriteFontSet3 *This, - UINT32 index, - WCHAR *buffer, - UINT32 buffer_size); + HRESULT(STDMETHODCALLTYPE* GetFontSourceName)( + IDWriteFontSet3* This, + UINT32 index, + WCHAR* buffer, + UINT32 buffer_size); - END_INTERFACE + END_INTERFACE } IDWriteFontSet3Vtbl; interface IDWriteFontSet3 { - CONST_VTBL IDWriteFontSet3Vtbl* lpVtbl; + CONST_VTBL IDWriteFontSet3Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontSet3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSet3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontSet3_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontSet3_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontSet methods ***/ #define IDWriteFontSet3_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) -#define IDWriteFontSet3_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists) -#define IDWriteFontSet3_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists) -#define IDWriteFontSet3_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values) -#define IDWriteFontSet3_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values) -#define IDWriteFontSet3_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values) -#define IDWriteFontSet3_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count) -#define IDWriteFontSet3_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset) +#define IDWriteFontSet3_FindFontFaceReference(This, reference, index, exists) (This)->lpVtbl->FindFontFaceReference(This, reference, index, exists) +#define IDWriteFontSet3_FindFontFace(This, fontface, index, exists) (This)->lpVtbl->FindFontFace(This, fontface, index, exists) +#define IDWriteFontSet3_GetPropertyValues__(This, id, values) (This)->lpVtbl->GetPropertyValues__(This, id, values) +#define IDWriteFontSet3_GetPropertyValues_(This, id, preferred_locales, values) (This)->lpVtbl->GetPropertyValues_(This, id, preferred_locales, values) +#define IDWriteFontSet3_GetPropertyValues(This, index, id, exists, values) (This)->lpVtbl->GetPropertyValues(This, index, id, exists, values) +#define IDWriteFontSet3_GetPropertyOccurrenceCount(This, property, count) (This)->lpVtbl->GetPropertyOccurrenceCount(This, property, count) +#define IDWriteFontSet3_GetMatchingFonts_(This, family, weight, stretch, style, fontset) (This)->lpVtbl->GetMatchingFonts_(This, family, weight, stretch, style, fontset) /*** IDWriteFontSet1 methods ***/ -#define IDWriteFontSet3_GetMatchingFonts(This,property,axis_values,num_values,fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset) -#define IDWriteFontSet3_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset) -#define IDWriteFontSet3_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset) -#define IDWriteFontSet3_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) -#define IDWriteFontSet3_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset) -#define IDWriteFontSet3_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) -#define IDWriteFontSet3_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) -#define IDWriteFontSet3_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) -#define IDWriteFontSet3_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) -#define IDWriteFontSet3_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference) -#define IDWriteFontSet3_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource) -#define IDWriteFontSet3_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface) -#define IDWriteFontSet3_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) +#define IDWriteFontSet3_GetMatchingFonts(This, property, axis_values, num_values, fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This, property, axis_values, num_values, fontset) +#define IDWriteFontSet3_GetFirstFontResources(This, fontset) (This)->lpVtbl->GetFirstFontResources(This, fontset) +#define IDWriteFontSet3_GetFilteredFonts__(This, indices, num_indices, fontset) (This)->lpVtbl->GetFilteredFonts__(This, indices, num_indices, fontset) +#define IDWriteFontSet3_GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset) (This)->lpVtbl->GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset) +#define IDWriteFontSet3_GetFilteredFonts(This, props, num_properties, select_any_property, fontset) (This)->lpVtbl->GetFilteredFonts(This, props, num_properties, select_any_property, fontset) +#define IDWriteFontSet3_GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices) +#define IDWriteFontSet3_GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices) +#define IDWriteFontSet3_GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges) +#define IDWriteFontSet3_GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges) +#define IDWriteFontSet3_GetFontFaceReference(This, index, reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This, index, reference) +#define IDWriteFontSet3_CreateFontResource(This, index, resource) (This)->lpVtbl->CreateFontResource(This, index, resource) +#define IDWriteFontSet3_CreateFontFace(This, index, fontface) (This)->lpVtbl->CreateFontFace(This, index, fontface) +#define IDWriteFontSet3_GetFontLocality(This, index) (This)->lpVtbl->GetFontLocality(This, index) /*** IDWriteFontSet2 methods ***/ #define IDWriteFontSet3_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This) /*** IDWriteFontSet3 methods ***/ -#define IDWriteFontSet3_GetFontSourceType(This,index) (This)->lpVtbl->GetFontSourceType(This,index) -#define IDWriteFontSet3_GetFontSourceNameLength(This,index) (This)->lpVtbl->GetFontSourceNameLength(This,index) -#define IDWriteFontSet3_GetFontSourceName(This,index,buffer,buffer_size) (This)->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size) +#define IDWriteFontSet3_GetFontSourceType(This, index) (This)->lpVtbl->GetFontSourceType(This, index) +#define IDWriteFontSet3_GetFontSourceNameLength(This, index) (This)->lpVtbl->GetFontSourceNameLength(This, index) +#define IDWriteFontSet3_GetFontSourceName(This, index, buffer, buffer_size) (This)->lpVtbl->GetFontSourceName(This, index, buffer, buffer_size) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontSet3_QueryInterface(IDWriteFontSet3* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontSet3_QueryInterface(IDWriteFontSet3* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontSet3_AddRef(IDWriteFontSet3* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontSet3_Release(IDWriteFontSet3* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontSet methods ***/ static inline UINT32 IDWriteFontSet3_GetFontCount(IDWriteFontSet3* This) { - return This->lpVtbl->GetFontCount(This); + return This->lpVtbl->GetFontCount(This); } -static inline HRESULT IDWriteFontSet3_FindFontFaceReference(IDWriteFontSet3* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) { - return This->lpVtbl->FindFontFaceReference(This,reference,index,exists); +static inline HRESULT IDWriteFontSet3_FindFontFaceReference(IDWriteFontSet3* This, IDWriteFontFaceReference* reference, UINT32* index, WINBOOL* exists) { + return This->lpVtbl->FindFontFaceReference(This, reference, index, exists); } -static inline HRESULT IDWriteFontSet3_FindFontFace(IDWriteFontSet3* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) { - return This->lpVtbl->FindFontFace(This,fontface,index,exists); +static inline HRESULT IDWriteFontSet3_FindFontFace(IDWriteFontSet3* This, IDWriteFontFace* fontface, UINT32* index, WINBOOL* exists) { + return This->lpVtbl->FindFontFace(This, fontface, index, exists); } -static inline HRESULT IDWriteFontSet3_GetPropertyValues__(IDWriteFontSet3* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) { - return This->lpVtbl->GetPropertyValues__(This,id,values); +static inline HRESULT IDWriteFontSet3_GetPropertyValues__(IDWriteFontSet3* This, DWRITE_FONT_PROPERTY_ID id, IDWriteStringList** values) { + return This->lpVtbl->GetPropertyValues__(This, id, values); } -static inline HRESULT IDWriteFontSet3_GetPropertyValues_(IDWriteFontSet3* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) { - return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values); +static inline HRESULT IDWriteFontSet3_GetPropertyValues_(IDWriteFontSet3* This, DWRITE_FONT_PROPERTY_ID id, const WCHAR* preferred_locales, IDWriteStringList** values) { + return This->lpVtbl->GetPropertyValues_(This, id, preferred_locales, values); } -static inline HRESULT IDWriteFontSet3_GetPropertyValues(IDWriteFontSet3* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) { - return This->lpVtbl->GetPropertyValues(This,index,id,exists,values); +static inline HRESULT IDWriteFontSet3_GetPropertyValues(IDWriteFontSet3* This, UINT32 index, DWRITE_FONT_PROPERTY_ID id, WINBOOL* exists, IDWriteLocalizedStrings** values) { + return This->lpVtbl->GetPropertyValues(This, index, id, exists, values); } -static inline HRESULT IDWriteFontSet3_GetPropertyOccurrenceCount(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) { - return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count); +static inline HRESULT IDWriteFontSet3_GetPropertyOccurrenceCount(IDWriteFontSet3* This, const DWRITE_FONT_PROPERTY* property, UINT32* count) { + return This->lpVtbl->GetPropertyOccurrenceCount(This, property, count); } -static inline HRESULT IDWriteFontSet3_GetMatchingFonts_(IDWriteFontSet3* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) { - return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset); +static inline HRESULT IDWriteFontSet3_GetMatchingFonts_(IDWriteFontSet3* This, const WCHAR* family, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFontSet** fontset) { + return This->lpVtbl->GetMatchingFonts_(This, family, weight, stretch, style, fontset); } /*** IDWriteFontSet1 methods ***/ -static inline HRESULT IDWriteFontSet3_GetMatchingFonts(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *property,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontSet1 **fontset) { - return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset); +static inline HRESULT IDWriteFontSet3_GetMatchingFonts(IDWriteFontSet3* This, const DWRITE_FONT_PROPERTY* property, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values, IDWriteFontSet1** fontset) { + return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This, property, axis_values, num_values, fontset); } -static inline HRESULT IDWriteFontSet3_GetFirstFontResources(IDWriteFontSet3* This,IDWriteFontSet1 **fontset) { - return This->lpVtbl->GetFirstFontResources(This,fontset); +static inline HRESULT IDWriteFontSet3_GetFirstFontResources(IDWriteFontSet3* This, IDWriteFontSet1** fontset) { + return This->lpVtbl->GetFirstFontResources(This, fontset); } -static inline HRESULT IDWriteFontSet3_GetFilteredFonts__(IDWriteFontSet3* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) { - return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset); +static inline HRESULT IDWriteFontSet3_GetFilteredFonts__(IDWriteFontSet3* This, const UINT32* indices, UINT32 num_indices, IDWriteFontSet1** fontset) { + return This->lpVtbl->GetFilteredFonts__(This, indices, num_indices, fontset); } -static inline HRESULT IDWriteFontSet3_GetFilteredFonts_(IDWriteFontSet3* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) { - return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset); +static inline HRESULT IDWriteFontSet3_GetFilteredFonts_(IDWriteFontSet3* This, const DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, WINBOOL select_any_range, IDWriteFontSet1** fontset) { + return This->lpVtbl->GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset); } -static inline HRESULT IDWriteFontSet3_GetFilteredFonts(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) { - return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset); +static inline HRESULT IDWriteFontSet3_GetFilteredFonts(IDWriteFontSet3* This, const DWRITE_FONT_PROPERTY* props, UINT32 num_properties, WINBOOL select_any_property, IDWriteFontSet1** fontset) { + return This->lpVtbl->GetFilteredFonts(This, props, num_properties, select_any_property, fontset); } -static inline HRESULT IDWriteFontSet3_GetFilteredFontIndices_(IDWriteFontSet3* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { - return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices); +static inline HRESULT IDWriteFontSet3_GetFilteredFontIndices_(IDWriteFontSet3* This, const DWRITE_FONT_AXIS_RANGE* ranges, UINT32 num_ranges, WINBOOL select_any_range, UINT32* indices, UINT32 num_indices, UINT32* actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices); } -static inline HRESULT IDWriteFontSet3_GetFilteredFontIndices(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { - return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices); +static inline HRESULT IDWriteFontSet3_GetFilteredFontIndices(IDWriteFontSet3* This, const DWRITE_FONT_PROPERTY* props, UINT32 num_properties, WINBOOL select_any_range, UINT32* indices, UINT32 num_indices, UINT32* actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices); } -static inline HRESULT IDWriteFontSet3_GetFontAxisRanges_(IDWriteFontSet3* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { - return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges); +static inline HRESULT IDWriteFontSet3_GetFontAxisRanges_(IDWriteFontSet3* This, UINT32 font_index, DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, UINT32* actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges); } -static inline HRESULT IDWriteFontSet3_GetFontAxisRanges(IDWriteFontSet3* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { - return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges); +static inline HRESULT IDWriteFontSet3_GetFontAxisRanges(IDWriteFontSet3* This, DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, UINT32* actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges); } -static inline HRESULT IDWriteFontSet3_GetFontFaceReference(IDWriteFontSet3* This,UINT32 index,IDWriteFontFaceReference1 **reference) { - return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference); +static inline HRESULT IDWriteFontSet3_GetFontFaceReference(IDWriteFontSet3* This, UINT32 index, IDWriteFontFaceReference1** reference) { + return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This, index, reference); } -static inline HRESULT IDWriteFontSet3_CreateFontResource(IDWriteFontSet3* This,UINT32 index,IDWriteFontResource **resource) { - return This->lpVtbl->CreateFontResource(This,index,resource); +static inline HRESULT IDWriteFontSet3_CreateFontResource(IDWriteFontSet3* This, UINT32 index, IDWriteFontResource** resource) { + return This->lpVtbl->CreateFontResource(This, index, resource); } -static inline HRESULT IDWriteFontSet3_CreateFontFace(IDWriteFontSet3* This,UINT32 index,IDWriteFontFace5 **fontface) { - return This->lpVtbl->CreateFontFace(This,index,fontface); +static inline HRESULT IDWriteFontSet3_CreateFontFace(IDWriteFontSet3* This, UINT32 index, IDWriteFontFace5** fontface) { + return This->lpVtbl->CreateFontFace(This, index, fontface); } -static inline DWRITE_LOCALITY IDWriteFontSet3_GetFontLocality(IDWriteFontSet3* This,UINT32 index) { - return This->lpVtbl->GetFontLocality(This,index); +static inline DWRITE_LOCALITY IDWriteFontSet3_GetFontLocality(IDWriteFontSet3* This, UINT32 index) { + return This->lpVtbl->GetFontLocality(This, index); } /*** IDWriteFontSet2 methods ***/ static inline HANDLE IDWriteFontSet3_GetExpirationEvent(IDWriteFontSet3* This) { - return This->lpVtbl->GetExpirationEvent(This); + return This->lpVtbl->GetExpirationEvent(This); } /*** IDWriteFontSet3 methods ***/ -static inline DWRITE_FONT_SOURCE_TYPE IDWriteFontSet3_GetFontSourceType(IDWriteFontSet3* This,UINT32 index) { - return This->lpVtbl->GetFontSourceType(This,index); +static inline DWRITE_FONT_SOURCE_TYPE IDWriteFontSet3_GetFontSourceType(IDWriteFontSet3* This, UINT32 index) { + return This->lpVtbl->GetFontSourceType(This, index); } -static inline UINT32 IDWriteFontSet3_GetFontSourceNameLength(IDWriteFontSet3* This,UINT32 index) { - return This->lpVtbl->GetFontSourceNameLength(This,index); +static inline UINT32 IDWriteFontSet3_GetFontSourceNameLength(IDWriteFontSet3* This, UINT32 index) { + return This->lpVtbl->GetFontSourceNameLength(This, index); } -static inline HRESULT IDWriteFontSet3_GetFontSourceName(IDWriteFontSet3* This,UINT32 index,WCHAR *buffer,UINT32 buffer_size) { - return This->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size); +static inline HRESULT IDWriteFontSet3_GetFontSourceName(IDWriteFontSet3* This, UINT32 index, WCHAR* buffer, UINT32 buffer_size) { + return This->lpVtbl->GetFontSourceName(This, index, buffer, buffer_size); } #endif #endif #endif - -#endif /* __IDWriteFontSet3_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontSet3_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontSet4 interface @@ -4295,370 +4218,367 @@ static inline HRESULT IDWriteFontSet3_GetFontSourceName(IDWriteFontSet3* This,UI #ifndef __IDWriteFontSet4_INTERFACE_DEFINED__ #define __IDWriteFontSet4_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontSet4, 0xeec175fc, 0xbea9, 0x4c86, 0x8b,0x53, 0xcc,0xbd,0xd7,0xdf,0x0c,0x82); +DEFINE_GUID(IID_IDWriteFontSet4, 0xeec175fc, 0xbea9, 0x4c86, 0x8b, 0x53, 0xcc, 0xbd, 0xd7, 0xdf, 0x0c, 0x82); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("eec175fc-bea9-4c86-8b53-ccbdd7df0c82") -IDWriteFontSet4 : public IDWriteFontSet3 -{ - virtual UINT32 STDMETHODCALLTYPE ConvertWeightStretchStyleToFontAxisValues( - const DWRITE_FONT_AXIS_VALUE *input_axis_values, - UINT32 input_axis_count, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - float size, - DWRITE_FONT_AXIS_VALUE *output_axis_values) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( - const WCHAR *family_name, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 axis_value_count, - DWRITE_FONT_SIMULATIONS allowed_simulations, - IDWriteFontSet4 **fonts) = 0; +IDWriteFontSet4 : public IDWriteFontSet3 { + virtual UINT32 STDMETHODCALLTYPE ConvertWeightStretchStyleToFontAxisValues( + const DWRITE_FONT_AXIS_VALUE* input_axis_values, + UINT32 input_axis_count, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + float size, + DWRITE_FONT_AXIS_VALUE* output_axis_values) = 0; + virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( + const WCHAR* family_name, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 axis_value_count, + DWRITE_FONT_SIMULATIONS allowed_simulations, + IDWriteFontSet4** fonts) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontSet4, 0xeec175fc, 0xbea9, 0x4c86, 0x8b,0x53, 0xcc,0xbd,0xd7,0xdf,0x0c,0x82) +__CRT_UUID_DECL(IDWriteFontSet4, 0xeec175fc, 0xbea9, 0x4c86, 0x8b, 0x53, 0xcc, 0xbd, 0xd7, 0xdf, 0x0c, 0x82) #endif #else typedef struct IDWriteFontSet4Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontSet4 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontSet4* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontSet4 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontSet4* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontSet4 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontSet4* This); - /*** IDWriteFontSet methods ***/ - UINT32 (STDMETHODCALLTYPE *GetFontCount)( - IDWriteFontSet4 *This); + /*** IDWriteFontSet methods ***/ + UINT32(STDMETHODCALLTYPE* GetFontCount)( + IDWriteFontSet4* This); - HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( - IDWriteFontSet4 *This, - UINT32 index, - IDWriteFontFaceReference **reference); + HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( + IDWriteFontSet4* This, + UINT32 index, + IDWriteFontFaceReference** reference); - HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)( - IDWriteFontSet4 *This, - IDWriteFontFaceReference *reference, - UINT32 *index, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* FindFontFaceReference)( + IDWriteFontSet4* This, + IDWriteFontFaceReference* reference, + UINT32* index, + WINBOOL* exists); - HRESULT (STDMETHODCALLTYPE *FindFontFace)( - IDWriteFontSet4 *This, - IDWriteFontFace *fontface, - UINT32 *index, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* FindFontFace)( + IDWriteFontSet4* This, + IDWriteFontFace* fontface, + UINT32* index, + WINBOOL* exists); - HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)( - IDWriteFontSet4 *This, - DWRITE_FONT_PROPERTY_ID id, - IDWriteStringList **values); + HRESULT(STDMETHODCALLTYPE* GetPropertyValues__)( + IDWriteFontSet4* This, + DWRITE_FONT_PROPERTY_ID id, + IDWriteStringList** values); - HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)( - IDWriteFontSet4 *This, - DWRITE_FONT_PROPERTY_ID id, - const WCHAR *preferred_locales, - IDWriteStringList **values); + HRESULT(STDMETHODCALLTYPE* GetPropertyValues_)( + IDWriteFontSet4* This, + DWRITE_FONT_PROPERTY_ID id, + const WCHAR* preferred_locales, + IDWriteStringList** values); - HRESULT (STDMETHODCALLTYPE *GetPropertyValues)( - IDWriteFontSet4 *This, - UINT32 index, - DWRITE_FONT_PROPERTY_ID id, - WINBOOL *exists, - IDWriteLocalizedStrings **values); + HRESULT(STDMETHODCALLTYPE* GetPropertyValues)( + IDWriteFontSet4* This, + UINT32 index, + DWRITE_FONT_PROPERTY_ID id, + WINBOOL* exists, + IDWriteLocalizedStrings** values); - HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)( - IDWriteFontSet4 *This, - const DWRITE_FONT_PROPERTY *property, - UINT32 *count); + HRESULT(STDMETHODCALLTYPE* GetPropertyOccurrenceCount)( + IDWriteFontSet4* This, + const DWRITE_FONT_PROPERTY* property, + UINT32* count); - HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)( - IDWriteFontSet4 *This, - const WCHAR *family, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFontSet **fontset); + HRESULT(STDMETHODCALLTYPE* GetMatchingFonts_)( + IDWriteFontSet4* This, + const WCHAR* family, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontSet** fontset); - HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( - IDWriteFontSet4 *This, - const DWRITE_FONT_PROPERTY *props, - UINT32 count, - IDWriteFontSet **fontset); + HRESULT(STDMETHODCALLTYPE* GetMatchingFonts)( + IDWriteFontSet4* This, + const DWRITE_FONT_PROPERTY* props, + UINT32 count, + IDWriteFontSet** fontset); - /*** IDWriteFontSet1 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)( - IDWriteFontSet4 *This, - const DWRITE_FONT_PROPERTY *property, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values, - IDWriteFontSet1 **fontset); + /*** IDWriteFontSet1 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFontSet1_GetMatchingFonts)( + IDWriteFontSet4* This, + const DWRITE_FONT_PROPERTY* property, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)( - IDWriteFontSet4 *This, - IDWriteFontSet1 **fontset); + HRESULT(STDMETHODCALLTYPE* GetFirstFontResources)( + IDWriteFontSet4* This, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)( - IDWriteFontSet4 *This, - const UINT32 *indices, - UINT32 num_indices, - IDWriteFontSet1 **fontset); + HRESULT(STDMETHODCALLTYPE* GetFilteredFonts__)( + IDWriteFontSet4* This, + const UINT32* indices, + UINT32 num_indices, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)( - IDWriteFontSet4 *This, - const DWRITE_FONT_AXIS_RANGE *axis_ranges, - UINT32 num_ranges, - WINBOOL select_any_range, - IDWriteFontSet1 **fontset); + HRESULT(STDMETHODCALLTYPE* GetFilteredFonts_)( + IDWriteFontSet4* This, + const DWRITE_FONT_AXIS_RANGE* axis_ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)( - IDWriteFontSet4 *This, - const DWRITE_FONT_PROPERTY *props, - UINT32 num_properties, - WINBOOL select_any_property, - IDWriteFontSet1 **fontset); + HRESULT(STDMETHODCALLTYPE* GetFilteredFonts)( + IDWriteFontSet4* This, + const DWRITE_FONT_PROPERTY* props, + UINT32 num_properties, + WINBOOL select_any_property, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)( - IDWriteFontSet4 *This, - const DWRITE_FONT_AXIS_RANGE *ranges, - UINT32 num_ranges, - WINBOOL select_any_range, - UINT32 *indices, - UINT32 num_indices, - UINT32 *actual_num_indices); + HRESULT(STDMETHODCALLTYPE* GetFilteredFontIndices_)( + IDWriteFontSet4* This, + const DWRITE_FONT_AXIS_RANGE* ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + UINT32* indices, + UINT32 num_indices, + UINT32* actual_num_indices); - HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)( - IDWriteFontSet4 *This, - const DWRITE_FONT_PROPERTY *props, - UINT32 num_properties, - WINBOOL select_any_range, - UINT32 *indices, - UINT32 num_indices, - UINT32 *actual_num_indices); + HRESULT(STDMETHODCALLTYPE* GetFilteredFontIndices)( + IDWriteFontSet4* This, + const DWRITE_FONT_PROPERTY* props, + UINT32 num_properties, + WINBOOL select_any_range, + UINT32* indices, + UINT32 num_indices, + UINT32* actual_num_indices); - HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)( - IDWriteFontSet4 *This, - UINT32 font_index, - DWRITE_FONT_AXIS_RANGE *axis_ranges, - UINT32 num_ranges, - UINT32 *actual_num_ranges); + HRESULT(STDMETHODCALLTYPE* GetFontAxisRanges_)( + IDWriteFontSet4* This, + UINT32 font_index, + DWRITE_FONT_AXIS_RANGE* axis_ranges, + UINT32 num_ranges, + UINT32* actual_num_ranges); - HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)( - IDWriteFontSet4 *This, - DWRITE_FONT_AXIS_RANGE *axis_ranges, - UINT32 num_ranges, - UINT32 *actual_num_ranges); + HRESULT(STDMETHODCALLTYPE* GetFontAxisRanges)( + IDWriteFontSet4* This, + DWRITE_FONT_AXIS_RANGE* axis_ranges, + UINT32 num_ranges, + UINT32* actual_num_ranges); - HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)( - IDWriteFontSet4 *This, - UINT32 index, - IDWriteFontFaceReference1 **reference); + HRESULT(STDMETHODCALLTYPE* IDWriteFontSet1_GetFontFaceReference)( + IDWriteFontSet4* This, + UINT32 index, + IDWriteFontFaceReference1** reference); - HRESULT (STDMETHODCALLTYPE *CreateFontResource)( - IDWriteFontSet4 *This, - UINT32 index, - IDWriteFontResource **resource); + HRESULT(STDMETHODCALLTYPE* CreateFontResource)( + IDWriteFontSet4* This, + UINT32 index, + IDWriteFontResource** resource); - HRESULT (STDMETHODCALLTYPE *CreateFontFace)( - IDWriteFontSet4 *This, - UINT32 index, - IDWriteFontFace5 **fontface); + HRESULT(STDMETHODCALLTYPE* CreateFontFace)( + IDWriteFontSet4* This, + UINT32 index, + IDWriteFontFace5** fontface); - DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( - IDWriteFontSet4 *This, - UINT32 index); + DWRITE_LOCALITY(STDMETHODCALLTYPE* GetFontLocality)( + IDWriteFontSet4* This, + UINT32 index); - /*** IDWriteFontSet2 methods ***/ - HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)( - IDWriteFontSet4 *This); + /*** IDWriteFontSet2 methods ***/ + HANDLE(STDMETHODCALLTYPE* GetExpirationEvent)( + IDWriteFontSet4* This); - /*** IDWriteFontSet3 methods ***/ - DWRITE_FONT_SOURCE_TYPE (STDMETHODCALLTYPE *GetFontSourceType)( - IDWriteFontSet4 *This, - UINT32 index); + /*** IDWriteFontSet3 methods ***/ + DWRITE_FONT_SOURCE_TYPE(STDMETHODCALLTYPE* GetFontSourceType)( + IDWriteFontSet4* This, + UINT32 index); - UINT32 (STDMETHODCALLTYPE *GetFontSourceNameLength)( - IDWriteFontSet4 *This, - UINT32 index); + UINT32(STDMETHODCALLTYPE* GetFontSourceNameLength)( + IDWriteFontSet4* This, + UINT32 index); - HRESULT (STDMETHODCALLTYPE *GetFontSourceName)( - IDWriteFontSet4 *This, - UINT32 index, - WCHAR *buffer, - UINT32 buffer_size); + HRESULT(STDMETHODCALLTYPE* GetFontSourceName)( + IDWriteFontSet4* This, + UINT32 index, + WCHAR* buffer, + UINT32 buffer_size); - /*** IDWriteFontSet4 methods ***/ - UINT32 (STDMETHODCALLTYPE *ConvertWeightStretchStyleToFontAxisValues)( - IDWriteFontSet4 *This, - const DWRITE_FONT_AXIS_VALUE *input_axis_values, - UINT32 input_axis_count, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - float size, - DWRITE_FONT_AXIS_VALUE *output_axis_values); + /*** IDWriteFontSet4 methods ***/ + UINT32(STDMETHODCALLTYPE* ConvertWeightStretchStyleToFontAxisValues)( + IDWriteFontSet4* This, + const DWRITE_FONT_AXIS_VALUE* input_axis_values, + UINT32 input_axis_count, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + float size, + DWRITE_FONT_AXIS_VALUE* output_axis_values); - HRESULT (STDMETHODCALLTYPE *IDWriteFontSet4_GetMatchingFonts)( - IDWriteFontSet4 *This, - const WCHAR *family_name, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 axis_value_count, - DWRITE_FONT_SIMULATIONS allowed_simulations, - IDWriteFontSet4 **fonts); + HRESULT(STDMETHODCALLTYPE* IDWriteFontSet4_GetMatchingFonts)( + IDWriteFontSet4* This, + const WCHAR* family_name, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 axis_value_count, + DWRITE_FONT_SIMULATIONS allowed_simulations, + IDWriteFontSet4** fonts); - END_INTERFACE + END_INTERFACE } IDWriteFontSet4Vtbl; interface IDWriteFontSet4 { - CONST_VTBL IDWriteFontSet4Vtbl* lpVtbl; + CONST_VTBL IDWriteFontSet4Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontSet4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSet4_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontSet4_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontSet4_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontSet methods ***/ #define IDWriteFontSet4_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) -#define IDWriteFontSet4_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists) -#define IDWriteFontSet4_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists) -#define IDWriteFontSet4_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values) -#define IDWriteFontSet4_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values) -#define IDWriteFontSet4_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values) -#define IDWriteFontSet4_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count) -#define IDWriteFontSet4_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset) +#define IDWriteFontSet4_FindFontFaceReference(This, reference, index, exists) (This)->lpVtbl->FindFontFaceReference(This, reference, index, exists) +#define IDWriteFontSet4_FindFontFace(This, fontface, index, exists) (This)->lpVtbl->FindFontFace(This, fontface, index, exists) +#define IDWriteFontSet4_GetPropertyValues__(This, id, values) (This)->lpVtbl->GetPropertyValues__(This, id, values) +#define IDWriteFontSet4_GetPropertyValues_(This, id, preferred_locales, values) (This)->lpVtbl->GetPropertyValues_(This, id, preferred_locales, values) +#define IDWriteFontSet4_GetPropertyValues(This, index, id, exists, values) (This)->lpVtbl->GetPropertyValues(This, index, id, exists, values) +#define IDWriteFontSet4_GetPropertyOccurrenceCount(This, property, count) (This)->lpVtbl->GetPropertyOccurrenceCount(This, property, count) +#define IDWriteFontSet4_GetMatchingFonts_(This, family, weight, stretch, style, fontset) (This)->lpVtbl->GetMatchingFonts_(This, family, weight, stretch, style, fontset) /*** IDWriteFontSet1 methods ***/ -#define IDWriteFontSet4_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset) -#define IDWriteFontSet4_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset) -#define IDWriteFontSet4_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) -#define IDWriteFontSet4_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset) -#define IDWriteFontSet4_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) -#define IDWriteFontSet4_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) -#define IDWriteFontSet4_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) -#define IDWriteFontSet4_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) -#define IDWriteFontSet4_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference) -#define IDWriteFontSet4_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource) -#define IDWriteFontSet4_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface) -#define IDWriteFontSet4_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) +#define IDWriteFontSet4_GetFirstFontResources(This, fontset) (This)->lpVtbl->GetFirstFontResources(This, fontset) +#define IDWriteFontSet4_GetFilteredFonts__(This, indices, num_indices, fontset) (This)->lpVtbl->GetFilteredFonts__(This, indices, num_indices, fontset) +#define IDWriteFontSet4_GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset) (This)->lpVtbl->GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset) +#define IDWriteFontSet4_GetFilteredFonts(This, props, num_properties, select_any_property, fontset) (This)->lpVtbl->GetFilteredFonts(This, props, num_properties, select_any_property, fontset) +#define IDWriteFontSet4_GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices) +#define IDWriteFontSet4_GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices) +#define IDWriteFontSet4_GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges) +#define IDWriteFontSet4_GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges) +#define IDWriteFontSet4_GetFontFaceReference(This, index, reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This, index, reference) +#define IDWriteFontSet4_CreateFontResource(This, index, resource) (This)->lpVtbl->CreateFontResource(This, index, resource) +#define IDWriteFontSet4_CreateFontFace(This, index, fontface) (This)->lpVtbl->CreateFontFace(This, index, fontface) +#define IDWriteFontSet4_GetFontLocality(This, index) (This)->lpVtbl->GetFontLocality(This, index) /*** IDWriteFontSet2 methods ***/ #define IDWriteFontSet4_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This) /*** IDWriteFontSet3 methods ***/ -#define IDWriteFontSet4_GetFontSourceType(This,index) (This)->lpVtbl->GetFontSourceType(This,index) -#define IDWriteFontSet4_GetFontSourceNameLength(This,index) (This)->lpVtbl->GetFontSourceNameLength(This,index) -#define IDWriteFontSet4_GetFontSourceName(This,index,buffer,buffer_size) (This)->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size) +#define IDWriteFontSet4_GetFontSourceType(This, index) (This)->lpVtbl->GetFontSourceType(This, index) +#define IDWriteFontSet4_GetFontSourceNameLength(This, index) (This)->lpVtbl->GetFontSourceNameLength(This, index) +#define IDWriteFontSet4_GetFontSourceName(This, index, buffer, buffer_size) (This)->lpVtbl->GetFontSourceName(This, index, buffer, buffer_size) /*** IDWriteFontSet4 methods ***/ -#define IDWriteFontSet4_ConvertWeightStretchStyleToFontAxisValues(This,input_axis_values,input_axis_count,weight,stretch,style,size,output_axis_values) (This)->lpVtbl->ConvertWeightStretchStyleToFontAxisValues(This,input_axis_values,input_axis_count,weight,stretch,style,size,output_axis_values) -#define IDWriteFontSet4_GetMatchingFonts(This,family_name,axis_values,axis_value_count,allowed_simulations,fonts) (This)->lpVtbl->IDWriteFontSet4_GetMatchingFonts(This,family_name,axis_values,axis_value_count,allowed_simulations,fonts) +#define IDWriteFontSet4_ConvertWeightStretchStyleToFontAxisValues(This, input_axis_values, input_axis_count, weight, stretch, style, size, output_axis_values) (This)->lpVtbl->ConvertWeightStretchStyleToFontAxisValues(This, input_axis_values, input_axis_count, weight, stretch, style, size, output_axis_values) +#define IDWriteFontSet4_GetMatchingFonts(This, family_name, axis_values, axis_value_count, allowed_simulations, fonts) (This)->lpVtbl->IDWriteFontSet4_GetMatchingFonts(This, family_name, axis_values, axis_value_count, allowed_simulations, fonts) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontSet4_QueryInterface(IDWriteFontSet4* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontSet4_QueryInterface(IDWriteFontSet4* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontSet4_AddRef(IDWriteFontSet4* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontSet4_Release(IDWriteFontSet4* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontSet methods ***/ static inline UINT32 IDWriteFontSet4_GetFontCount(IDWriteFontSet4* This) { - return This->lpVtbl->GetFontCount(This); + return This->lpVtbl->GetFontCount(This); } -static inline HRESULT IDWriteFontSet4_FindFontFaceReference(IDWriteFontSet4* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) { - return This->lpVtbl->FindFontFaceReference(This,reference,index,exists); +static inline HRESULT IDWriteFontSet4_FindFontFaceReference(IDWriteFontSet4* This, IDWriteFontFaceReference* reference, UINT32* index, WINBOOL* exists) { + return This->lpVtbl->FindFontFaceReference(This, reference, index, exists); } -static inline HRESULT IDWriteFontSet4_FindFontFace(IDWriteFontSet4* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) { - return This->lpVtbl->FindFontFace(This,fontface,index,exists); +static inline HRESULT IDWriteFontSet4_FindFontFace(IDWriteFontSet4* This, IDWriteFontFace* fontface, UINT32* index, WINBOOL* exists) { + return This->lpVtbl->FindFontFace(This, fontface, index, exists); } -static inline HRESULT IDWriteFontSet4_GetPropertyValues__(IDWriteFontSet4* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) { - return This->lpVtbl->GetPropertyValues__(This,id,values); +static inline HRESULT IDWriteFontSet4_GetPropertyValues__(IDWriteFontSet4* This, DWRITE_FONT_PROPERTY_ID id, IDWriteStringList** values) { + return This->lpVtbl->GetPropertyValues__(This, id, values); } -static inline HRESULT IDWriteFontSet4_GetPropertyValues_(IDWriteFontSet4* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) { - return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values); +static inline HRESULT IDWriteFontSet4_GetPropertyValues_(IDWriteFontSet4* This, DWRITE_FONT_PROPERTY_ID id, const WCHAR* preferred_locales, IDWriteStringList** values) { + return This->lpVtbl->GetPropertyValues_(This, id, preferred_locales, values); } -static inline HRESULT IDWriteFontSet4_GetPropertyValues(IDWriteFontSet4* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) { - return This->lpVtbl->GetPropertyValues(This,index,id,exists,values); +static inline HRESULT IDWriteFontSet4_GetPropertyValues(IDWriteFontSet4* This, UINT32 index, DWRITE_FONT_PROPERTY_ID id, WINBOOL* exists, IDWriteLocalizedStrings** values) { + return This->lpVtbl->GetPropertyValues(This, index, id, exists, values); } -static inline HRESULT IDWriteFontSet4_GetPropertyOccurrenceCount(IDWriteFontSet4* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) { - return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count); +static inline HRESULT IDWriteFontSet4_GetPropertyOccurrenceCount(IDWriteFontSet4* This, const DWRITE_FONT_PROPERTY* property, UINT32* count) { + return This->lpVtbl->GetPropertyOccurrenceCount(This, property, count); } -static inline HRESULT IDWriteFontSet4_GetMatchingFonts_(IDWriteFontSet4* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) { - return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset); +static inline HRESULT IDWriteFontSet4_GetMatchingFonts_(IDWriteFontSet4* This, const WCHAR* family, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFontSet** fontset) { + return This->lpVtbl->GetMatchingFonts_(This, family, weight, stretch, style, fontset); } /*** IDWriteFontSet1 methods ***/ -static inline HRESULT IDWriteFontSet4_GetFirstFontResources(IDWriteFontSet4* This,IDWriteFontSet1 **fontset) { - return This->lpVtbl->GetFirstFontResources(This,fontset); +static inline HRESULT IDWriteFontSet4_GetFirstFontResources(IDWriteFontSet4* This, IDWriteFontSet1** fontset) { + return This->lpVtbl->GetFirstFontResources(This, fontset); } -static inline HRESULT IDWriteFontSet4_GetFilteredFonts__(IDWriteFontSet4* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) { - return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset); +static inline HRESULT IDWriteFontSet4_GetFilteredFonts__(IDWriteFontSet4* This, const UINT32* indices, UINT32 num_indices, IDWriteFontSet1** fontset) { + return This->lpVtbl->GetFilteredFonts__(This, indices, num_indices, fontset); } -static inline HRESULT IDWriteFontSet4_GetFilteredFonts_(IDWriteFontSet4* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) { - return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset); +static inline HRESULT IDWriteFontSet4_GetFilteredFonts_(IDWriteFontSet4* This, const DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, WINBOOL select_any_range, IDWriteFontSet1** fontset) { + return This->lpVtbl->GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset); } -static inline HRESULT IDWriteFontSet4_GetFilteredFonts(IDWriteFontSet4* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) { - return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset); +static inline HRESULT IDWriteFontSet4_GetFilteredFonts(IDWriteFontSet4* This, const DWRITE_FONT_PROPERTY* props, UINT32 num_properties, WINBOOL select_any_property, IDWriteFontSet1** fontset) { + return This->lpVtbl->GetFilteredFonts(This, props, num_properties, select_any_property, fontset); } -static inline HRESULT IDWriteFontSet4_GetFilteredFontIndices_(IDWriteFontSet4* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { - return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices); +static inline HRESULT IDWriteFontSet4_GetFilteredFontIndices_(IDWriteFontSet4* This, const DWRITE_FONT_AXIS_RANGE* ranges, UINT32 num_ranges, WINBOOL select_any_range, UINT32* indices, UINT32 num_indices, UINT32* actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices); } -static inline HRESULT IDWriteFontSet4_GetFilteredFontIndices(IDWriteFontSet4* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { - return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices); +static inline HRESULT IDWriteFontSet4_GetFilteredFontIndices(IDWriteFontSet4* This, const DWRITE_FONT_PROPERTY* props, UINT32 num_properties, WINBOOL select_any_range, UINT32* indices, UINT32 num_indices, UINT32* actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices); } -static inline HRESULT IDWriteFontSet4_GetFontAxisRanges_(IDWriteFontSet4* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { - return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges); +static inline HRESULT IDWriteFontSet4_GetFontAxisRanges_(IDWriteFontSet4* This, UINT32 font_index, DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, UINT32* actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges); } -static inline HRESULT IDWriteFontSet4_GetFontAxisRanges(IDWriteFontSet4* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { - return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges); +static inline HRESULT IDWriteFontSet4_GetFontAxisRanges(IDWriteFontSet4* This, DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, UINT32* actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges); } -static inline HRESULT IDWriteFontSet4_GetFontFaceReference(IDWriteFontSet4* This,UINT32 index,IDWriteFontFaceReference1 **reference) { - return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference); +static inline HRESULT IDWriteFontSet4_GetFontFaceReference(IDWriteFontSet4* This, UINT32 index, IDWriteFontFaceReference1** reference) { + return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This, index, reference); } -static inline HRESULT IDWriteFontSet4_CreateFontResource(IDWriteFontSet4* This,UINT32 index,IDWriteFontResource **resource) { - return This->lpVtbl->CreateFontResource(This,index,resource); +static inline HRESULT IDWriteFontSet4_CreateFontResource(IDWriteFontSet4* This, UINT32 index, IDWriteFontResource** resource) { + return This->lpVtbl->CreateFontResource(This, index, resource); } -static inline HRESULT IDWriteFontSet4_CreateFontFace(IDWriteFontSet4* This,UINT32 index,IDWriteFontFace5 **fontface) { - return This->lpVtbl->CreateFontFace(This,index,fontface); +static inline HRESULT IDWriteFontSet4_CreateFontFace(IDWriteFontSet4* This, UINT32 index, IDWriteFontFace5** fontface) { + return This->lpVtbl->CreateFontFace(This, index, fontface); } -static inline DWRITE_LOCALITY IDWriteFontSet4_GetFontLocality(IDWriteFontSet4* This,UINT32 index) { - return This->lpVtbl->GetFontLocality(This,index); +static inline DWRITE_LOCALITY IDWriteFontSet4_GetFontLocality(IDWriteFontSet4* This, UINT32 index) { + return This->lpVtbl->GetFontLocality(This, index); } /*** IDWriteFontSet2 methods ***/ static inline HANDLE IDWriteFontSet4_GetExpirationEvent(IDWriteFontSet4* This) { - return This->lpVtbl->GetExpirationEvent(This); + return This->lpVtbl->GetExpirationEvent(This); } /*** IDWriteFontSet3 methods ***/ -static inline DWRITE_FONT_SOURCE_TYPE IDWriteFontSet4_GetFontSourceType(IDWriteFontSet4* This,UINT32 index) { - return This->lpVtbl->GetFontSourceType(This,index); +static inline DWRITE_FONT_SOURCE_TYPE IDWriteFontSet4_GetFontSourceType(IDWriteFontSet4* This, UINT32 index) { + return This->lpVtbl->GetFontSourceType(This, index); } -static inline UINT32 IDWriteFontSet4_GetFontSourceNameLength(IDWriteFontSet4* This,UINT32 index) { - return This->lpVtbl->GetFontSourceNameLength(This,index); +static inline UINT32 IDWriteFontSet4_GetFontSourceNameLength(IDWriteFontSet4* This, UINT32 index) { + return This->lpVtbl->GetFontSourceNameLength(This, index); } -static inline HRESULT IDWriteFontSet4_GetFontSourceName(IDWriteFontSet4* This,UINT32 index,WCHAR *buffer,UINT32 buffer_size) { - return This->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size); +static inline HRESULT IDWriteFontSet4_GetFontSourceName(IDWriteFontSet4* This, UINT32 index, WCHAR* buffer, UINT32 buffer_size) { + return This->lpVtbl->GetFontSourceName(This, index, buffer, buffer_size); } /*** IDWriteFontSet4 methods ***/ -static inline UINT32 IDWriteFontSet4_ConvertWeightStretchStyleToFontAxisValues(IDWriteFontSet4* This,const DWRITE_FONT_AXIS_VALUE *input_axis_values,UINT32 input_axis_count,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,float size,DWRITE_FONT_AXIS_VALUE *output_axis_values) { - return This->lpVtbl->ConvertWeightStretchStyleToFontAxisValues(This,input_axis_values,input_axis_count,weight,stretch,style,size,output_axis_values); +static inline UINT32 IDWriteFontSet4_ConvertWeightStretchStyleToFontAxisValues(IDWriteFontSet4* This, const DWRITE_FONT_AXIS_VALUE* input_axis_values, UINT32 input_axis_count, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, float size, DWRITE_FONT_AXIS_VALUE* output_axis_values) { + return This->lpVtbl->ConvertWeightStretchStyleToFontAxisValues(This, input_axis_values, input_axis_count, weight, stretch, style, size, output_axis_values); } -static inline HRESULT IDWriteFontSet4_GetMatchingFonts(IDWriteFontSet4* This,const WCHAR *family_name,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 axis_value_count,DWRITE_FONT_SIMULATIONS allowed_simulations,IDWriteFontSet4 **fonts) { - return This->lpVtbl->IDWriteFontSet4_GetMatchingFonts(This,family_name,axis_values,axis_value_count,allowed_simulations,fonts); +static inline HRESULT IDWriteFontSet4_GetMatchingFonts(IDWriteFontSet4* This, const WCHAR* family_name, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 axis_value_count, DWRITE_FONT_SIMULATIONS allowed_simulations, IDWriteFontSet4** fonts) { + return This->lpVtbl->IDWriteFontSet4_GetMatchingFonts(This, family_name, axis_values, axis_value_count, allowed_simulations, fonts); } #endif #endif #endif - -#endif /* __IDWriteFontSet4_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontSet4_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontFace3 interface @@ -4666,575 +4586,569 @@ static inline HRESULT IDWriteFontSet4_GetMatchingFonts(IDWriteFontSet4* This,con #ifndef __IDWriteFontFace3_INTERFACE_DEFINED__ #define __IDWriteFontFace3_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontFace3, 0xd37d7598, 0x09be, 0x4222, 0xa2,0x36, 0x20,0x81,0x34,0x1c,0xc1,0xf2); +DEFINE_GUID(IID_IDWriteFontFace3, 0xd37d7598, 0x09be, 0x4222, 0xa2, 0x36, 0x20, 0x81, 0x34, 0x1c, 0xc1, 0xf2); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("d37d7598-09be-4222-a236-2081341cc1f2") -IDWriteFontFace3 : public IDWriteFontFace2 -{ - virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( - IDWriteFontFaceReference **reference) = 0; +IDWriteFontFace3 : public IDWriteFontFace2 { + virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( + IDWriteFontFaceReference * *reference) = 0; - virtual void STDMETHODCALLTYPE GetPanose( - DWRITE_PANOSE *panose) = 0; + virtual void STDMETHODCALLTYPE GetPanose( + DWRITE_PANOSE * panose) = 0; - virtual DWRITE_FONT_WEIGHT STDMETHODCALLTYPE GetWeight( - ) = 0; + virtual DWRITE_FONT_WEIGHT STDMETHODCALLTYPE GetWeight() = 0; - virtual DWRITE_FONT_STRETCH STDMETHODCALLTYPE GetStretch( - ) = 0; + virtual DWRITE_FONT_STRETCH STDMETHODCALLTYPE GetStretch() = 0; - virtual DWRITE_FONT_STYLE STDMETHODCALLTYPE GetStyle( - ) = 0; + virtual DWRITE_FONT_STYLE STDMETHODCALLTYPE GetStyle() = 0; - virtual HRESULT STDMETHODCALLTYPE GetFamilyNames( - IDWriteLocalizedStrings **names) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFamilyNames( + IDWriteLocalizedStrings * *names) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFaceNames( - IDWriteLocalizedStrings **names) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFaceNames( + IDWriteLocalizedStrings * *names) = 0; - virtual HRESULT STDMETHODCALLTYPE GetInformationalStrings( - DWRITE_INFORMATIONAL_STRING_ID stringid, - IDWriteLocalizedStrings **strings, - WINBOOL *exists) = 0; + virtual HRESULT STDMETHODCALLTYPE GetInformationalStrings( + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings * *strings, + WINBOOL * exists) = 0; - virtual WINBOOL STDMETHODCALLTYPE HasCharacter( - UINT32 character) = 0; + virtual WINBOOL STDMETHODCALLTYPE HasCharacter( + UINT32 character) = 0; - virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode( - FLOAT emsize, - FLOAT dpi_x, - FLOAT dpi_y, - const DWRITE_MATRIX *transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - IDWriteRenderingParams *params, - DWRITE_RENDERING_MODE1 *rendering_mode, - DWRITE_GRID_FIT_MODE *gridfit_mode) = 0; + virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode( + FLOAT emsize, + FLOAT dpi_x, + FLOAT dpi_y, + const DWRITE_MATRIX* transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + IDWriteRenderingParams* params, + DWRITE_RENDERING_MODE1* rendering_mode, + DWRITE_GRID_FIT_MODE* gridfit_mode) = 0; - virtual WINBOOL STDMETHODCALLTYPE IsCharacterLocal( - UINT32 character) = 0; + virtual WINBOOL STDMETHODCALLTYPE IsCharacterLocal( + UINT32 character) = 0; - virtual WINBOOL STDMETHODCALLTYPE IsGlyphLocal( - UINT16 glyph) = 0; + virtual WINBOOL STDMETHODCALLTYPE IsGlyphLocal( + UINT16 glyph) = 0; - virtual HRESULT STDMETHODCALLTYPE AreCharactersLocal( - const WCHAR *characters, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL *are_local) = 0; - - virtual HRESULT STDMETHODCALLTYPE AreGlyphsLocal( - const UINT16 *glyphs, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL *are_local) = 0; + virtual HRESULT STDMETHODCALLTYPE AreCharactersLocal( + const WCHAR* characters, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL* are_local) = 0; + virtual HRESULT STDMETHODCALLTYPE AreGlyphsLocal( + const UINT16* glyphs, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL* are_local) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFace3, 0xd37d7598, 0x09be, 0x4222, 0xa2,0x36, 0x20,0x81,0x34,0x1c,0xc1,0xf2) +__CRT_UUID_DECL(IDWriteFontFace3, 0xd37d7598, 0x09be, 0x4222, 0xa2, 0x36, 0x20, 0x81, 0x34, 0x1c, 0xc1, 0xf2) #endif #else typedef struct IDWriteFontFace3Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontFace3 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontFace3* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontFace3 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontFace3* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontFace3 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontFace3* This); - /*** IDWriteFontFace methods ***/ - DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( - IDWriteFontFace3 *This); + /*** IDWriteFontFace methods ***/ + DWRITE_FONT_FACE_TYPE(STDMETHODCALLTYPE* GetType)( + IDWriteFontFace3* This); - HRESULT (STDMETHODCALLTYPE *GetFiles)( - IDWriteFontFace3 *This, - UINT32 *number_of_files, - IDWriteFontFile **fontfiles); + HRESULT(STDMETHODCALLTYPE* GetFiles)( + IDWriteFontFace3* This, + UINT32* number_of_files, + IDWriteFontFile** fontfiles); - UINT32 (STDMETHODCALLTYPE *GetIndex)( - IDWriteFontFace3 *This); + UINT32(STDMETHODCALLTYPE* GetIndex)( + IDWriteFontFace3* This); - DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( - IDWriteFontFace3 *This); + DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( + IDWriteFontFace3* This); - WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( - IDWriteFontFace3 *This); + WINBOOL(STDMETHODCALLTYPE* IsSymbolFont)( + IDWriteFontFace3* This); - void (STDMETHODCALLTYPE *GetMetrics)( - IDWriteFontFace3 *This, - DWRITE_FONT_METRICS *metrics); + void(STDMETHODCALLTYPE* GetMetrics)( + IDWriteFontFace3* This, + DWRITE_FONT_METRICS* metrics); - UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( - IDWriteFontFace3 *This); + UINT16(STDMETHODCALLTYPE* GetGlyphCount)( + IDWriteFontFace3* This); - HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( - IDWriteFontFace3 *This, - const UINT16 *glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS *metrics, - WINBOOL is_sideways); + HRESULT(STDMETHODCALLTYPE* GetDesignGlyphMetrics)( + IDWriteFontFace3* This, + const UINT16* glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS* metrics, + WINBOOL is_sideways); - HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( - IDWriteFontFace3 *This, - const UINT32 *codepoints, - UINT32 count, - UINT16 *glyph_indices); + HRESULT(STDMETHODCALLTYPE* GetGlyphIndices)( + IDWriteFontFace3* This, + const UINT32* codepoints, + UINT32 count, + UINT16* glyph_indices); - HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( - IDWriteFontFace3 *This, - UINT32 table_tag, - const void **table_data, - UINT32 *table_size, - void **context, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* TryGetFontTable)( + IDWriteFontFace3* This, + UINT32 table_tag, + const void** table_data, + UINT32* table_size, + void** context, + WINBOOL* exists); - void (STDMETHODCALLTYPE *ReleaseFontTable)( - IDWriteFontFace3 *This, - void *table_context); + void(STDMETHODCALLTYPE* ReleaseFontTable)( + IDWriteFontFace3* This, + void* table_context); - HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( - IDWriteFontFace3 *This, - FLOAT emSize, - const UINT16 *glyph_indices, - const FLOAT *glyph_advances, - const DWRITE_GLYPH_OFFSET *glyph_offsets, - UINT32 glyph_count, - WINBOOL is_sideways, - WINBOOL is_rtl, - IDWriteGeometrySink *geometrysink); + HRESULT(STDMETHODCALLTYPE* GetGlyphRunOutline)( + IDWriteFontFace3* This, + FLOAT emSize, + const UINT16* glyph_indices, + const FLOAT* glyph_advances, + const DWRITE_GLYPH_OFFSET* glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink* geometrysink); - HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( - IDWriteFontFace3 *This, - FLOAT emSize, - FLOAT pixels_per_dip, - DWRITE_MEASURING_MODE mode, - IDWriteRenderingParams *params, - DWRITE_RENDERING_MODE *rendering_mode); + HRESULT(STDMETHODCALLTYPE* GetRecommendedRenderingMode)( + IDWriteFontFace3* This, + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams* params, + DWRITE_RENDERING_MODE* rendering_mode); - HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( - IDWriteFontFace3 *This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_FONT_METRICS *metrics); + HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleMetrics)( + IDWriteFontFace3* This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_FONT_METRICS* metrics); - HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( - IDWriteFontFace3 *This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - const UINT16 *glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS *metrics, - WINBOOL is_sideways); + HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphMetrics)( + IDWriteFontFace3* This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + const UINT16* glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS* metrics, + WINBOOL is_sideways); - /*** IDWriteFontFace1 methods ***/ - void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)( - IDWriteFontFace3 *This, - DWRITE_FONT_METRICS1 *metrics); + /*** IDWriteFontFace1 methods ***/ + void(STDMETHODCALLTYPE* IDWriteFontFace1_GetMetrics)( + IDWriteFontFace3* This, + DWRITE_FONT_METRICS1* metrics); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)( - IDWriteFontFace3 *This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_FONT_METRICS1 *metrics); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetGdiCompatibleMetrics)( + IDWriteFontFace3* This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_FONT_METRICS1* metrics); - void (STDMETHODCALLTYPE *GetCaretMetrics)( - IDWriteFontFace3 *This, - DWRITE_CARET_METRICS *metrics); + void(STDMETHODCALLTYPE* GetCaretMetrics)( + IDWriteFontFace3* This, + DWRITE_CARET_METRICS* metrics); - HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( - IDWriteFontFace3 *This, - UINT32 max_count, - DWRITE_UNICODE_RANGE *ranges, - UINT32 *count); + HRESULT(STDMETHODCALLTYPE* GetUnicodeRanges)( + IDWriteFontFace3* This, + UINT32 max_count, + DWRITE_UNICODE_RANGE* ranges, + UINT32* count); - WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( - IDWriteFontFace3 *This); + WINBOOL(STDMETHODCALLTYPE* IsMonospacedFont)( + IDWriteFontFace3* This); - HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)( - IDWriteFontFace3 *This, - UINT32 glyph_count, - const UINT16 *indices, - INT32 *advances, - WINBOOL is_sideways); + HRESULT(STDMETHODCALLTYPE* GetDesignGlyphAdvances)( + IDWriteFontFace3* This, + UINT32 glyph_count, + const UINT16* indices, + INT32* advances, + WINBOOL is_sideways); - HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)( - IDWriteFontFace3 *This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - WINBOOL is_sideways, - UINT32 glyph_count, - const UINT16 *indices, - INT32 *advances); + HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphAdvances)( + IDWriteFontFace3* This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + UINT32 glyph_count, + const UINT16* indices, + INT32* advances); - HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)( - IDWriteFontFace3 *This, - UINT32 glyph_count, - const UINT16 *indices, - INT32 *adjustments); + HRESULT(STDMETHODCALLTYPE* GetKerningPairAdjustments)( + IDWriteFontFace3* This, + UINT32 glyph_count, + const UINT16* indices, + INT32* adjustments); - WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)( - IDWriteFontFace3 *This); + WINBOOL(STDMETHODCALLTYPE* HasKerningPairs)( + IDWriteFontFace3* This); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)( - IDWriteFontFace3 *This, - FLOAT font_emsize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX *transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_RENDERING_MODE *rendering_mode); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetRecommendedRenderingMode)( + IDWriteFontFace3* This, + FLOAT font_emsize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX* transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_RENDERING_MODE* rendering_mode); - HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)( - IDWriteFontFace3 *This, - UINT32 glyph_count, - const UINT16 *nominal_indices, - UINT16 *vertical_indices); + HRESULT(STDMETHODCALLTYPE* GetVerticalGlyphVariants)( + IDWriteFontFace3* This, + UINT32 glyph_count, + const UINT16* nominal_indices, + UINT16* vertical_indices); - WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)( - IDWriteFontFace3 *This); + WINBOOL(STDMETHODCALLTYPE* HasVerticalGlyphVariants)( + IDWriteFontFace3* This); - /*** IDWriteFontFace2 methods ***/ - WINBOOL (STDMETHODCALLTYPE *IsColorFont)( - IDWriteFontFace3 *This); + /*** IDWriteFontFace2 methods ***/ + WINBOOL(STDMETHODCALLTYPE* IsColorFont)( + IDWriteFontFace3* This); - UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)( - IDWriteFontFace3 *This); + UINT32(STDMETHODCALLTYPE* GetColorPaletteCount)( + IDWriteFontFace3* This); - UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)( - IDWriteFontFace3 *This); + UINT32(STDMETHODCALLTYPE* GetPaletteEntryCount)( + IDWriteFontFace3* This); - HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)( - IDWriteFontFace3 *This, - UINT32 palette_index, - UINT32 first_entry_index, - UINT32 entry_count, - DWRITE_COLOR_F *entries); + HRESULT(STDMETHODCALLTYPE* GetPaletteEntries)( + IDWriteFontFace3* This, + UINT32 palette_index, + UINT32 first_entry_index, + UINT32 entry_count, + DWRITE_COLOR_F* entries); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)( - IDWriteFontFace3 *This, - FLOAT fontEmSize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX *transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuringmode, - IDWriteRenderingParams *params, - DWRITE_RENDERING_MODE *renderingmode, - DWRITE_GRID_FIT_MODE *gridfitmode); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace2_GetRecommendedRenderingMode)( + IDWriteFontFace3* This, + FLOAT fontEmSize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX* transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuringmode, + IDWriteRenderingParams* params, + DWRITE_RENDERING_MODE* renderingmode, + DWRITE_GRID_FIT_MODE* gridfitmode); - /*** IDWriteFontFace3 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( - IDWriteFontFace3 *This, - IDWriteFontFaceReference **reference); + /*** IDWriteFontFace3 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( + IDWriteFontFace3* This, + IDWriteFontFaceReference** reference); - void (STDMETHODCALLTYPE *GetPanose)( - IDWriteFontFace3 *This, - DWRITE_PANOSE *panose); + void(STDMETHODCALLTYPE* GetPanose)( + IDWriteFontFace3* This, + DWRITE_PANOSE* panose); - DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( - IDWriteFontFace3 *This); + DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetWeight)( + IDWriteFontFace3* This); - DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( - IDWriteFontFace3 *This); + DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetStretch)( + IDWriteFontFace3* This); - DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( - IDWriteFontFace3 *This); + DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetStyle)( + IDWriteFontFace3* This); - HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( - IDWriteFontFace3 *This, - IDWriteLocalizedStrings **names); + HRESULT(STDMETHODCALLTYPE* GetFamilyNames)( + IDWriteFontFace3* This, + IDWriteLocalizedStrings** names); - HRESULT (STDMETHODCALLTYPE *GetFaceNames)( - IDWriteFontFace3 *This, - IDWriteLocalizedStrings **names); + HRESULT(STDMETHODCALLTYPE* GetFaceNames)( + IDWriteFontFace3* This, + IDWriteLocalizedStrings** names); - HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( - IDWriteFontFace3 *This, - DWRITE_INFORMATIONAL_STRING_ID stringid, - IDWriteLocalizedStrings **strings, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* GetInformationalStrings)( + IDWriteFontFace3* This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings** strings, + WINBOOL* exists); - WINBOOL (STDMETHODCALLTYPE *HasCharacter)( - IDWriteFontFace3 *This, - UINT32 character); + WINBOOL(STDMETHODCALLTYPE* HasCharacter)( + IDWriteFontFace3* This, + UINT32 character); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)( - IDWriteFontFace3 *This, - FLOAT emsize, - FLOAT dpi_x, - FLOAT dpi_y, - const DWRITE_MATRIX *transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - IDWriteRenderingParams *params, - DWRITE_RENDERING_MODE1 *rendering_mode, - DWRITE_GRID_FIT_MODE *gridfit_mode); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace3_GetRecommendedRenderingMode)( + IDWriteFontFace3* This, + FLOAT emsize, + FLOAT dpi_x, + FLOAT dpi_y, + const DWRITE_MATRIX* transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + IDWriteRenderingParams* params, + DWRITE_RENDERING_MODE1* rendering_mode, + DWRITE_GRID_FIT_MODE* gridfit_mode); - WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)( - IDWriteFontFace3 *This, - UINT32 character); + WINBOOL(STDMETHODCALLTYPE* IsCharacterLocal)( + IDWriteFontFace3* This, + UINT32 character); - WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)( - IDWriteFontFace3 *This, - UINT16 glyph); + WINBOOL(STDMETHODCALLTYPE* IsGlyphLocal)( + IDWriteFontFace3* This, + UINT16 glyph); - HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)( - IDWriteFontFace3 *This, - const WCHAR *characters, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL *are_local); + HRESULT(STDMETHODCALLTYPE* AreCharactersLocal)( + IDWriteFontFace3* This, + const WCHAR* characters, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL* are_local); - HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)( - IDWriteFontFace3 *This, - const UINT16 *glyphs, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL *are_local); + HRESULT(STDMETHODCALLTYPE* AreGlyphsLocal)( + IDWriteFontFace3* This, + const UINT16* glyphs, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL* are_local); - END_INTERFACE + END_INTERFACE } IDWriteFontFace3Vtbl; interface IDWriteFontFace3 { - CONST_VTBL IDWriteFontFace3Vtbl* lpVtbl; + CONST_VTBL IDWriteFontFace3Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontFace3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFace3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontFace3_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontFace3_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontFace methods ***/ #define IDWriteFontFace3_GetType(This) (This)->lpVtbl->GetType(This) -#define IDWriteFontFace3_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) +#define IDWriteFontFace3_GetFiles(This, number_of_files, fontfiles) (This)->lpVtbl->GetFiles(This, number_of_files, fontfiles) #define IDWriteFontFace3_GetIndex(This) (This)->lpVtbl->GetIndex(This) #define IDWriteFontFace3_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) #define IDWriteFontFace3_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) #define IDWriteFontFace3_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) -#define IDWriteFontFace3_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) -#define IDWriteFontFace3_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) -#define IDWriteFontFace3_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) -#define IDWriteFontFace3_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) -#define IDWriteFontFace3_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) -#define IDWriteFontFace3_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) +#define IDWriteFontFace3_GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) +#define IDWriteFontFace3_GetGlyphIndices(This, codepoints, count, glyph_indices) (This)->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices) +#define IDWriteFontFace3_TryGetFontTable(This, table_tag, table_data, table_size, context, exists) (This)->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists) +#define IDWriteFontFace3_ReleaseFontTable(This, table_context) (This)->lpVtbl->ReleaseFontTable(This, table_context) +#define IDWriteFontFace3_GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) +#define IDWriteFontFace3_GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) /*** IDWriteFontFace1 methods ***/ -#define IDWriteFontFace3_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics) -#define IDWriteFontFace3_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) -#define IDWriteFontFace3_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics) -#define IDWriteFontFace3_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFontFace3_GetMetrics(This, metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics) +#define IDWriteFontFace3_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) +#define IDWriteFontFace3_GetCaretMetrics(This, metrics) (This)->lpVtbl->GetCaretMetrics(This, metrics) +#define IDWriteFontFace3_GetUnicodeRanges(This, max_count, ranges, count) (This)->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count) #define IDWriteFontFace3_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) -#define IDWriteFontFace3_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) -#define IDWriteFontFace3_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) -#define IDWriteFontFace3_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments) +#define IDWriteFontFace3_GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) +#define IDWriteFontFace3_GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) +#define IDWriteFontFace3_GetKerningPairAdjustments(This, glyph_count, indices, adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments) #define IDWriteFontFace3_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) -#define IDWriteFontFace3_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) +#define IDWriteFontFace3_GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) #define IDWriteFontFace3_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) /*** IDWriteFontFace2 methods ***/ #define IDWriteFontFace3_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) #define IDWriteFontFace3_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) #define IDWriteFontFace3_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) -#define IDWriteFontFace3_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) +#define IDWriteFontFace3_GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) (This)->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) /*** IDWriteFontFace3 methods ***/ -#define IDWriteFontFace3_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference) -#define IDWriteFontFace3_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) +#define IDWriteFontFace3_GetFontFaceReference(This, reference) (This)->lpVtbl->GetFontFaceReference(This, reference) +#define IDWriteFontFace3_GetPanose(This, panose) (This)->lpVtbl->GetPanose(This, panose) #define IDWriteFontFace3_GetWeight(This) (This)->lpVtbl->GetWeight(This) #define IDWriteFontFace3_GetStretch(This) (This)->lpVtbl->GetStretch(This) #define IDWriteFontFace3_GetStyle(This) (This)->lpVtbl->GetStyle(This) -#define IDWriteFontFace3_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names) -#define IDWriteFontFace3_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names) -#define IDWriteFontFace3_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) -#define IDWriteFontFace3_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character) -#define IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) -#define IDWriteFontFace3_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character) -#define IDWriteFontFace3_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph) -#define IDWriteFontFace3_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) -#define IDWriteFontFace3_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) +#define IDWriteFontFace3_GetFamilyNames(This, names) (This)->lpVtbl->GetFamilyNames(This, names) +#define IDWriteFontFace3_GetFaceNames(This, names) (This)->lpVtbl->GetFaceNames(This, names) +#define IDWriteFontFace3_GetInformationalStrings(This, stringid, strings, exists) (This)->lpVtbl->GetInformationalStrings(This, stringid, strings, exists) +#define IDWriteFontFace3_HasCharacter(This, character) (This)->lpVtbl->HasCharacter(This, character) +#define IDWriteFontFace3_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode) +#define IDWriteFontFace3_IsCharacterLocal(This, character) (This)->lpVtbl->IsCharacterLocal(This, character) +#define IDWriteFontFace3_IsGlyphLocal(This, glyph) (This)->lpVtbl->IsGlyphLocal(This, glyph) +#define IDWriteFontFace3_AreCharactersLocal(This, characters, count, enqueue_if_not, are_local) (This)->lpVtbl->AreCharactersLocal(This, characters, count, enqueue_if_not, are_local) +#define IDWriteFontFace3_AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local) (This)->lpVtbl->AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFace3_QueryInterface(IDWriteFontFace3* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontFace3_QueryInterface(IDWriteFontFace3* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontFace3_AddRef(IDWriteFontFace3* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontFace3_Release(IDWriteFontFace3* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontFace methods ***/ static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace3_GetType(IDWriteFontFace3* This) { - return This->lpVtbl->GetType(This); + return This->lpVtbl->GetType(This); } -static inline HRESULT IDWriteFontFace3_GetFiles(IDWriteFontFace3* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { - return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); +static inline HRESULT IDWriteFontFace3_GetFiles(IDWriteFontFace3* This, UINT32* number_of_files, IDWriteFontFile** fontfiles) { + return This->lpVtbl->GetFiles(This, number_of_files, fontfiles); } static inline UINT32 IDWriteFontFace3_GetIndex(IDWriteFontFace3* This) { - return This->lpVtbl->GetIndex(This); + return This->lpVtbl->GetIndex(This); } static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace3_GetSimulations(IDWriteFontFace3* This) { - return This->lpVtbl->GetSimulations(This); + return This->lpVtbl->GetSimulations(This); } static inline WINBOOL IDWriteFontFace3_IsSymbolFont(IDWriteFontFace3* This) { - return This->lpVtbl->IsSymbolFont(This); + return This->lpVtbl->IsSymbolFont(This); } static inline UINT16 IDWriteFontFace3_GetGlyphCount(IDWriteFontFace3* This) { - return This->lpVtbl->GetGlyphCount(This); + return This->lpVtbl->GetGlyphCount(This); } -static inline HRESULT IDWriteFontFace3_GetDesignGlyphMetrics(IDWriteFontFace3* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); +static inline HRESULT IDWriteFontFace3_GetDesignGlyphMetrics(IDWriteFontFace3* This, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways); } -static inline HRESULT IDWriteFontFace3_GetGlyphIndices(IDWriteFontFace3* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { - return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); +static inline HRESULT IDWriteFontFace3_GetGlyphIndices(IDWriteFontFace3* This, const UINT32* codepoints, UINT32 count, UINT16* glyph_indices) { + return This->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices); } -static inline HRESULT IDWriteFontFace3_TryGetFontTable(IDWriteFontFace3* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { - return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); +static inline HRESULT IDWriteFontFace3_TryGetFontTable(IDWriteFontFace3* This, UINT32 table_tag, const void** table_data, UINT32* table_size, void** context, WINBOOL* exists) { + return This->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists); } -static inline void IDWriteFontFace3_ReleaseFontTable(IDWriteFontFace3* This,void *table_context) { - This->lpVtbl->ReleaseFontTable(This,table_context); +static inline void IDWriteFontFace3_ReleaseFontTable(IDWriteFontFace3* This, void* table_context) { + This->lpVtbl->ReleaseFontTable(This, table_context); } -static inline HRESULT IDWriteFontFace3_GetGlyphRunOutline(IDWriteFontFace3* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) { - return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); +static inline HRESULT IDWriteFontFace3_GetGlyphRunOutline(IDWriteFontFace3* This, FLOAT emSize, const UINT16* glyph_indices, const FLOAT* glyph_advances, const DWRITE_GLYPH_OFFSET* glyph_offsets, UINT32 glyph_count, WINBOOL is_sideways, WINBOOL is_rtl, IDWriteGeometrySink* geometrysink) { + return This->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink); } -static inline HRESULT IDWriteFontFace3_GetGdiCompatibleGlyphMetrics(IDWriteFontFace3* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { - return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); +static inline HRESULT IDWriteFontFace3_GetGdiCompatibleGlyphMetrics(IDWriteFontFace3* This, FLOAT emSize, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { + return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways); } /*** IDWriteFontFace1 methods ***/ -static inline void IDWriteFontFace3_GetMetrics(IDWriteFontFace3* This,DWRITE_FONT_METRICS1 *metrics) { - This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics); +static inline void IDWriteFontFace3_GetMetrics(IDWriteFontFace3* This, DWRITE_FONT_METRICS1* metrics) { + This->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics); } -static inline HRESULT IDWriteFontFace3_GetGdiCompatibleMetrics(IDWriteFontFace3* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) { - return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics); +static inline HRESULT IDWriteFontFace3_GetGdiCompatibleMetrics(IDWriteFontFace3* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, DWRITE_FONT_METRICS1* metrics) { + return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics); } -static inline void IDWriteFontFace3_GetCaretMetrics(IDWriteFontFace3* This,DWRITE_CARET_METRICS *metrics) { - This->lpVtbl->GetCaretMetrics(This,metrics); +static inline void IDWriteFontFace3_GetCaretMetrics(IDWriteFontFace3* This, DWRITE_CARET_METRICS* metrics) { + This->lpVtbl->GetCaretMetrics(This, metrics); } -static inline HRESULT IDWriteFontFace3_GetUnicodeRanges(IDWriteFontFace3* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { - return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +static inline HRESULT IDWriteFontFace3_GetUnicodeRanges(IDWriteFontFace3* This, UINT32 max_count, DWRITE_UNICODE_RANGE* ranges, UINT32* count) { + return This->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count); } static inline WINBOOL IDWriteFontFace3_IsMonospacedFont(IDWriteFontFace3* This) { - return This->lpVtbl->IsMonospacedFont(This); + return This->lpVtbl->IsMonospacedFont(This); } -static inline HRESULT IDWriteFontFace3_GetDesignGlyphAdvances(IDWriteFontFace3* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways); +static inline HRESULT IDWriteFontFace3_GetDesignGlyphAdvances(IDWriteFontFace3* This, UINT32 glyph_count, const UINT16* indices, INT32* advances, WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways); } -static inline HRESULT IDWriteFontFace3_GetGdiCompatibleGlyphAdvances(IDWriteFontFace3* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) { - return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances); +static inline HRESULT IDWriteFontFace3_GetGdiCompatibleGlyphAdvances(IDWriteFontFace3* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, WINBOOL is_sideways, UINT32 glyph_count, const UINT16* indices, INT32* advances) { + return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances); } -static inline HRESULT IDWriteFontFace3_GetKerningPairAdjustments(IDWriteFontFace3* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) { - return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments); +static inline HRESULT IDWriteFontFace3_GetKerningPairAdjustments(IDWriteFontFace3* This, UINT32 glyph_count, const UINT16* indices, INT32* adjustments) { + return This->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments); } static inline WINBOOL IDWriteFontFace3_HasKerningPairs(IDWriteFontFace3* This) { - return This->lpVtbl->HasKerningPairs(This); + return This->lpVtbl->HasKerningPairs(This); } -static inline HRESULT IDWriteFontFace3_GetVerticalGlyphVariants(IDWriteFontFace3* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) { - return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices); +static inline HRESULT IDWriteFontFace3_GetVerticalGlyphVariants(IDWriteFontFace3* This, UINT32 glyph_count, const UINT16* nominal_indices, UINT16* vertical_indices) { + return This->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices); } static inline WINBOOL IDWriteFontFace3_HasVerticalGlyphVariants(IDWriteFontFace3* This) { - return This->lpVtbl->HasVerticalGlyphVariants(This); + return This->lpVtbl->HasVerticalGlyphVariants(This); } /*** IDWriteFontFace2 methods ***/ static inline WINBOOL IDWriteFontFace3_IsColorFont(IDWriteFontFace3* This) { - return This->lpVtbl->IsColorFont(This); + return This->lpVtbl->IsColorFont(This); } static inline UINT32 IDWriteFontFace3_GetColorPaletteCount(IDWriteFontFace3* This) { - return This->lpVtbl->GetColorPaletteCount(This); + return This->lpVtbl->GetColorPaletteCount(This); } static inline UINT32 IDWriteFontFace3_GetPaletteEntryCount(IDWriteFontFace3* This) { - return This->lpVtbl->GetPaletteEntryCount(This); + return This->lpVtbl->GetPaletteEntryCount(This); } -static inline HRESULT IDWriteFontFace3_GetPaletteEntries(IDWriteFontFace3* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) { - return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries); +static inline HRESULT IDWriteFontFace3_GetPaletteEntries(IDWriteFontFace3* This, UINT32 palette_index, UINT32 first_entry_index, UINT32 entry_count, DWRITE_COLOR_F* entries) { + return This->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries); } /*** IDWriteFontFace3 methods ***/ -static inline HRESULT IDWriteFontFace3_GetFontFaceReference(IDWriteFontFace3* This,IDWriteFontFaceReference **reference) { - return This->lpVtbl->GetFontFaceReference(This,reference); +static inline HRESULT IDWriteFontFace3_GetFontFaceReference(IDWriteFontFace3* This, IDWriteFontFaceReference** reference) { + return This->lpVtbl->GetFontFaceReference(This, reference); } -static inline void IDWriteFontFace3_GetPanose(IDWriteFontFace3* This,DWRITE_PANOSE *panose) { - This->lpVtbl->GetPanose(This,panose); +static inline void IDWriteFontFace3_GetPanose(IDWriteFontFace3* This, DWRITE_PANOSE* panose) { + This->lpVtbl->GetPanose(This, panose); } static inline DWRITE_FONT_WEIGHT IDWriteFontFace3_GetWeight(IDWriteFontFace3* This) { - return This->lpVtbl->GetWeight(This); + return This->lpVtbl->GetWeight(This); } static inline DWRITE_FONT_STRETCH IDWriteFontFace3_GetStretch(IDWriteFontFace3* This) { - return This->lpVtbl->GetStretch(This); + return This->lpVtbl->GetStretch(This); } static inline DWRITE_FONT_STYLE IDWriteFontFace3_GetStyle(IDWriteFontFace3* This) { - return This->lpVtbl->GetStyle(This); + return This->lpVtbl->GetStyle(This); } -static inline HRESULT IDWriteFontFace3_GetFamilyNames(IDWriteFontFace3* This,IDWriteLocalizedStrings **names) { - return This->lpVtbl->GetFamilyNames(This,names); +static inline HRESULT IDWriteFontFace3_GetFamilyNames(IDWriteFontFace3* This, IDWriteLocalizedStrings** names) { + return This->lpVtbl->GetFamilyNames(This, names); } -static inline HRESULT IDWriteFontFace3_GetFaceNames(IDWriteFontFace3* This,IDWriteLocalizedStrings **names) { - return This->lpVtbl->GetFaceNames(This,names); +static inline HRESULT IDWriteFontFace3_GetFaceNames(IDWriteFontFace3* This, IDWriteLocalizedStrings** names) { + return This->lpVtbl->GetFaceNames(This, names); } -static inline HRESULT IDWriteFontFace3_GetInformationalStrings(IDWriteFontFace3* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { - return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +static inline HRESULT IDWriteFontFace3_GetInformationalStrings(IDWriteFontFace3* This, DWRITE_INFORMATIONAL_STRING_ID stringid, IDWriteLocalizedStrings** strings, WINBOOL* exists) { + return This->lpVtbl->GetInformationalStrings(This, stringid, strings, exists); } -static inline WINBOOL IDWriteFontFace3_HasCharacter(IDWriteFontFace3* This,UINT32 character) { - return This->lpVtbl->HasCharacter(This,character); +static inline WINBOOL IDWriteFontFace3_HasCharacter(IDWriteFontFace3* This, UINT32 character) { + return This->lpVtbl->HasCharacter(This, character); } -static inline HRESULT IDWriteFontFace3_GetRecommendedRenderingMode(IDWriteFontFace3* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) { - return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode); +static inline HRESULT IDWriteFontFace3_GetRecommendedRenderingMode(IDWriteFontFace3* This, FLOAT emsize, FLOAT dpi_x, FLOAT dpi_y, const DWRITE_MATRIX* transform, WINBOOL is_sideways, DWRITE_OUTLINE_THRESHOLD threshold, DWRITE_MEASURING_MODE measuring_mode, IDWriteRenderingParams* params, DWRITE_RENDERING_MODE1* rendering_mode, DWRITE_GRID_FIT_MODE* gridfit_mode) { + return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode); } -static inline WINBOOL IDWriteFontFace3_IsCharacterLocal(IDWriteFontFace3* This,UINT32 character) { - return This->lpVtbl->IsCharacterLocal(This,character); +static inline WINBOOL IDWriteFontFace3_IsCharacterLocal(IDWriteFontFace3* This, UINT32 character) { + return This->lpVtbl->IsCharacterLocal(This, character); } -static inline WINBOOL IDWriteFontFace3_IsGlyphLocal(IDWriteFontFace3* This,UINT16 glyph) { - return This->lpVtbl->IsGlyphLocal(This,glyph); +static inline WINBOOL IDWriteFontFace3_IsGlyphLocal(IDWriteFontFace3* This, UINT16 glyph) { + return This->lpVtbl->IsGlyphLocal(This, glyph); } -static inline HRESULT IDWriteFontFace3_AreCharactersLocal(IDWriteFontFace3* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { - return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local); +static inline HRESULT IDWriteFontFace3_AreCharactersLocal(IDWriteFontFace3* This, const WCHAR* characters, UINT32 count, WINBOOL enqueue_if_not, WINBOOL* are_local) { + return This->lpVtbl->AreCharactersLocal(This, characters, count, enqueue_if_not, are_local); } -static inline HRESULT IDWriteFontFace3_AreGlyphsLocal(IDWriteFontFace3* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { - return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local); +static inline HRESULT IDWriteFontFace3_AreGlyphsLocal(IDWriteFontFace3* This, const UINT16* glyphs, UINT32 count, WINBOOL enqueue_if_not, WINBOOL* are_local) { + return This->lpVtbl->AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local); } #endif #endif #endif - -#endif /* __IDWriteFontFace3_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontFace3_INTERFACE_DEFINED__ */ typedef struct DWRITE_LINE_METRICS1 { - UINT32 length; - UINT32 trailingWhitespaceLength; - UINT32 newlineLength; - FLOAT height; - FLOAT baseline; - WINBOOL isTrimmed; - FLOAT leadingBefore; - FLOAT leadingAfter; + UINT32 length; + UINT32 trailingWhitespaceLength; + UINT32 newlineLength; + FLOAT height; + FLOAT baseline; + WINBOOL isTrimmed; + FLOAT leadingBefore; + FLOAT leadingAfter; } DWRITE_LINE_METRICS1; typedef enum DWRITE_FONT_LINE_GAP_USAGE { - DWRITE_FONT_LINE_GAP_USAGE_DEFAULT = 0, - DWRITE_FONT_LINE_GAP_USAGE_DISABLED = 1, - DWRITE_FONT_LINE_GAP_USAGE_ENABLED = 2 + DWRITE_FONT_LINE_GAP_USAGE_DEFAULT = 0, + DWRITE_FONT_LINE_GAP_USAGE_DISABLED = 1, + DWRITE_FONT_LINE_GAP_USAGE_ENABLED = 2 } DWRITE_FONT_LINE_GAP_USAGE; typedef struct DWRITE_LINE_SPACING { - DWRITE_LINE_SPACING_METHOD method; - FLOAT height; - FLOAT baseline; - FLOAT leadingBefore; - DWRITE_FONT_LINE_GAP_USAGE fontLineGapUsage; + DWRITE_LINE_SPACING_METHOD method; + FLOAT height; + FLOAT baseline; + FLOAT leadingBefore; + DWRITE_FONT_LINE_GAP_USAGE fontLineGapUsage; } DWRITE_LINE_SPACING; /***************************************************************************** * IDWriteTextFormat2 interface @@ -5242,342 +5156,339 @@ typedef struct DWRITE_LINE_SPACING { #ifndef __IDWriteTextFormat2_INTERFACE_DEFINED__ #define __IDWriteTextFormat2_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteTextFormat2, 0xf67e0edd, 0x9e3d, 0x4ecc, 0x8c,0x32, 0x41,0x83,0x25,0x3d,0xfe,0x70); +DEFINE_GUID(IID_IDWriteTextFormat2, 0xf67e0edd, 0x9e3d, 0x4ecc, 0x8c, 0x32, 0x41, 0x83, 0x25, 0x3d, 0xfe, 0x70); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("f67e0edd-9e3d-4ecc-8c32-4183253dfe70") -IDWriteTextFormat2 : public IDWriteTextFormat1 -{ - virtual HRESULT STDMETHODCALLTYPE SetLineSpacing( - const DWRITE_LINE_SPACING *spacing) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLineSpacing( - DWRITE_LINE_SPACING *spacing) = 0; +IDWriteTextFormat2 : public IDWriteTextFormat1 { + virtual HRESULT STDMETHODCALLTYPE SetLineSpacing( + const DWRITE_LINE_SPACING* spacing) = 0; + virtual HRESULT STDMETHODCALLTYPE GetLineSpacing( + DWRITE_LINE_SPACING * spacing) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextFormat2, 0xf67e0edd, 0x9e3d, 0x4ecc, 0x8c,0x32, 0x41,0x83,0x25,0x3d,0xfe,0x70) +__CRT_UUID_DECL(IDWriteTextFormat2, 0xf67e0edd, 0x9e3d, 0x4ecc, 0x8c, 0x32, 0x41, 0x83, 0x25, 0x3d, 0xfe, 0x70) #endif #else typedef struct IDWriteTextFormat2Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteTextFormat2 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteTextFormat2* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteTextFormat2 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteTextFormat2* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteTextFormat2 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteTextFormat2* This); - /*** IDWriteTextFormat methods ***/ - HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( - IDWriteTextFormat2 *This, - DWRITE_TEXT_ALIGNMENT alignment); + /*** IDWriteTextFormat methods ***/ + HRESULT(STDMETHODCALLTYPE* SetTextAlignment)( + IDWriteTextFormat2* This, + DWRITE_TEXT_ALIGNMENT alignment); - HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( - IDWriteTextFormat2 *This, - DWRITE_PARAGRAPH_ALIGNMENT alignment); + HRESULT(STDMETHODCALLTYPE* SetParagraphAlignment)( + IDWriteTextFormat2* This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); - HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( - IDWriteTextFormat2 *This, - DWRITE_WORD_WRAPPING wrapping); + HRESULT(STDMETHODCALLTYPE* SetWordWrapping)( + IDWriteTextFormat2* This, + DWRITE_WORD_WRAPPING wrapping); - HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( - IDWriteTextFormat2 *This, - DWRITE_READING_DIRECTION direction); + HRESULT(STDMETHODCALLTYPE* SetReadingDirection)( + IDWriteTextFormat2* This, + DWRITE_READING_DIRECTION direction); - HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( - IDWriteTextFormat2 *This, - DWRITE_FLOW_DIRECTION direction); + HRESULT(STDMETHODCALLTYPE* SetFlowDirection)( + IDWriteTextFormat2* This, + DWRITE_FLOW_DIRECTION direction); - HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( - IDWriteTextFormat2 *This, - FLOAT tabstop); + HRESULT(STDMETHODCALLTYPE* SetIncrementalTabStop)( + IDWriteTextFormat2* This, + FLOAT tabstop); - HRESULT (STDMETHODCALLTYPE *SetTrimming)( - IDWriteTextFormat2 *This, - const DWRITE_TRIMMING *trimming, - IDWriteInlineObject *trimming_sign); + HRESULT(STDMETHODCALLTYPE* SetTrimming)( + IDWriteTextFormat2* This, + const DWRITE_TRIMMING* trimming, + IDWriteInlineObject* trimming_sign); - HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( - IDWriteTextFormat2 *This, - DWRITE_LINE_SPACING_METHOD spacing, - FLOAT line_spacing, - FLOAT baseline); + HRESULT(STDMETHODCALLTYPE* SetLineSpacing)( + IDWriteTextFormat2* This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); - DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( - IDWriteTextFormat2 *This); + DWRITE_TEXT_ALIGNMENT(STDMETHODCALLTYPE* GetTextAlignment)( + IDWriteTextFormat2* This); - DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( - IDWriteTextFormat2 *This); + DWRITE_PARAGRAPH_ALIGNMENT(STDMETHODCALLTYPE* GetParagraphAlignment)( + IDWriteTextFormat2* This); - DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( - IDWriteTextFormat2 *This); + DWRITE_WORD_WRAPPING(STDMETHODCALLTYPE* GetWordWrapping)( + IDWriteTextFormat2* This); - DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( - IDWriteTextFormat2 *This); + DWRITE_READING_DIRECTION(STDMETHODCALLTYPE* GetReadingDirection)( + IDWriteTextFormat2* This); - DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( - IDWriteTextFormat2 *This); + DWRITE_FLOW_DIRECTION(STDMETHODCALLTYPE* GetFlowDirection)( + IDWriteTextFormat2* This); - FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( - IDWriteTextFormat2 *This); + FLOAT(STDMETHODCALLTYPE* GetIncrementalTabStop)( + IDWriteTextFormat2* This); - HRESULT (STDMETHODCALLTYPE *GetTrimming)( - IDWriteTextFormat2 *This, - DWRITE_TRIMMING *options, - IDWriteInlineObject **trimming_sign); + HRESULT(STDMETHODCALLTYPE* GetTrimming)( + IDWriteTextFormat2* This, + DWRITE_TRIMMING* options, + IDWriteInlineObject** trimming_sign); - HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( - IDWriteTextFormat2 *This, - DWRITE_LINE_SPACING_METHOD *method, - FLOAT *spacing, - FLOAT *baseline); + HRESULT(STDMETHODCALLTYPE* GetLineSpacing)( + IDWriteTextFormat2* This, + DWRITE_LINE_SPACING_METHOD* method, + FLOAT* spacing, + FLOAT* baseline); - HRESULT (STDMETHODCALLTYPE *GetFontCollection)( - IDWriteTextFormat2 *This, - IDWriteFontCollection **collection); + HRESULT(STDMETHODCALLTYPE* GetFontCollection)( + IDWriteTextFormat2* This, + IDWriteFontCollection** collection); - UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( - IDWriteTextFormat2 *This); + UINT32(STDMETHODCALLTYPE* GetFontFamilyNameLength)( + IDWriteTextFormat2* This); - HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( - IDWriteTextFormat2 *This, - WCHAR *name, - UINT32 size); + HRESULT(STDMETHODCALLTYPE* GetFontFamilyName)( + IDWriteTextFormat2* This, + WCHAR* name, + UINT32 size); - DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( - IDWriteTextFormat2 *This); + DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetFontWeight)( + IDWriteTextFormat2* This); - DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( - IDWriteTextFormat2 *This); + DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetFontStyle)( + IDWriteTextFormat2* This); - DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( - IDWriteTextFormat2 *This); + DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetFontStretch)( + IDWriteTextFormat2* This); - FLOAT (STDMETHODCALLTYPE *GetFontSize)( - IDWriteTextFormat2 *This); + FLOAT(STDMETHODCALLTYPE* GetFontSize)( + IDWriteTextFormat2* This); - UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( - IDWriteTextFormat2 *This); + UINT32(STDMETHODCALLTYPE* GetLocaleNameLength)( + IDWriteTextFormat2* This); - HRESULT (STDMETHODCALLTYPE *GetLocaleName)( - IDWriteTextFormat2 *This, - WCHAR *name, - UINT32 size); + HRESULT(STDMETHODCALLTYPE* GetLocaleName)( + IDWriteTextFormat2* This, + WCHAR* name, + UINT32 size); - /*** IDWriteTextFormat1 methods ***/ - HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)( - IDWriteTextFormat2 *This, - DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); + /*** IDWriteTextFormat1 methods ***/ + HRESULT(STDMETHODCALLTYPE* SetVerticalGlyphOrientation)( + IDWriteTextFormat2* This, + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); - DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)( - IDWriteTextFormat2 *This); + DWRITE_VERTICAL_GLYPH_ORIENTATION(STDMETHODCALLTYPE* GetVerticalGlyphOrientation)( + IDWriteTextFormat2* This); - HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)( - IDWriteTextFormat2 *This, - WINBOOL lastline_wrapping_enabled); + HRESULT(STDMETHODCALLTYPE* SetLastLineWrapping)( + IDWriteTextFormat2* This, + WINBOOL lastline_wrapping_enabled); - WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)( - IDWriteTextFormat2 *This); + WINBOOL(STDMETHODCALLTYPE* GetLastLineWrapping)( + IDWriteTextFormat2* This); - HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)( - IDWriteTextFormat2 *This, - DWRITE_OPTICAL_ALIGNMENT alignment); + HRESULT(STDMETHODCALLTYPE* SetOpticalAlignment)( + IDWriteTextFormat2* This, + DWRITE_OPTICAL_ALIGNMENT alignment); - DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)( - IDWriteTextFormat2 *This); + DWRITE_OPTICAL_ALIGNMENT(STDMETHODCALLTYPE* GetOpticalAlignment)( + IDWriteTextFormat2* This); - HRESULT (STDMETHODCALLTYPE *SetFontFallback)( - IDWriteTextFormat2 *This, - IDWriteFontFallback *fallback); + HRESULT(STDMETHODCALLTYPE* SetFontFallback)( + IDWriteTextFormat2* This, + IDWriteFontFallback* fallback); - HRESULT (STDMETHODCALLTYPE *GetFontFallback)( - IDWriteTextFormat2 *This, - IDWriteFontFallback **fallback); + HRESULT(STDMETHODCALLTYPE* GetFontFallback)( + IDWriteTextFormat2* This, + IDWriteFontFallback** fallback); - /*** IDWriteTextFormat2 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_SetLineSpacing)( - IDWriteTextFormat2 *This, - const DWRITE_LINE_SPACING *spacing); + /*** IDWriteTextFormat2 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteTextFormat2_SetLineSpacing)( + IDWriteTextFormat2* This, + const DWRITE_LINE_SPACING* spacing); - HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_GetLineSpacing)( - IDWriteTextFormat2 *This, - DWRITE_LINE_SPACING *spacing); + HRESULT(STDMETHODCALLTYPE* IDWriteTextFormat2_GetLineSpacing)( + IDWriteTextFormat2* This, + DWRITE_LINE_SPACING* spacing); - END_INTERFACE + END_INTERFACE } IDWriteTextFormat2Vtbl; interface IDWriteTextFormat2 { - CONST_VTBL IDWriteTextFormat2Vtbl* lpVtbl; + CONST_VTBL IDWriteTextFormat2Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteTextFormat2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextFormat2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteTextFormat2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteTextFormat2_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteTextFormat methods ***/ -#define IDWriteTextFormat2_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) -#define IDWriteTextFormat2_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) -#define IDWriteTextFormat2_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) -#define IDWriteTextFormat2_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) -#define IDWriteTextFormat2_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) -#define IDWriteTextFormat2_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) -#define IDWriteTextFormat2_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) +#define IDWriteTextFormat2_SetTextAlignment(This, alignment) (This)->lpVtbl->SetTextAlignment(This, alignment) +#define IDWriteTextFormat2_SetParagraphAlignment(This, alignment) (This)->lpVtbl->SetParagraphAlignment(This, alignment) +#define IDWriteTextFormat2_SetWordWrapping(This, wrapping) (This)->lpVtbl->SetWordWrapping(This, wrapping) +#define IDWriteTextFormat2_SetReadingDirection(This, direction) (This)->lpVtbl->SetReadingDirection(This, direction) +#define IDWriteTextFormat2_SetFlowDirection(This, direction) (This)->lpVtbl->SetFlowDirection(This, direction) +#define IDWriteTextFormat2_SetIncrementalTabStop(This, tabstop) (This)->lpVtbl->SetIncrementalTabStop(This, tabstop) +#define IDWriteTextFormat2_SetTrimming(This, trimming, trimming_sign) (This)->lpVtbl->SetTrimming(This, trimming, trimming_sign) #define IDWriteTextFormat2_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) #define IDWriteTextFormat2_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) #define IDWriteTextFormat2_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) #define IDWriteTextFormat2_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) #define IDWriteTextFormat2_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) #define IDWriteTextFormat2_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) -#define IDWriteTextFormat2_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) -#define IDWriteTextFormat2_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteTextFormat2_GetTrimming(This, options, trimming_sign) (This)->lpVtbl->GetTrimming(This, options, trimming_sign) +#define IDWriteTextFormat2_GetFontCollection(This, collection) (This)->lpVtbl->GetFontCollection(This, collection) #define IDWriteTextFormat2_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This) -#define IDWriteTextFormat2_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size) +#define IDWriteTextFormat2_GetFontFamilyName(This, name, size) (This)->lpVtbl->GetFontFamilyName(This, name, size) #define IDWriteTextFormat2_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This) #define IDWriteTextFormat2_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This) #define IDWriteTextFormat2_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This) #define IDWriteTextFormat2_GetFontSize(This) (This)->lpVtbl->GetFontSize(This) #define IDWriteTextFormat2_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This) -#define IDWriteTextFormat2_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size) +#define IDWriteTextFormat2_GetLocaleName(This, name, size) (This)->lpVtbl->GetLocaleName(This, name, size) /*** IDWriteTextFormat1 methods ***/ -#define IDWriteTextFormat2_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation) +#define IDWriteTextFormat2_SetVerticalGlyphOrientation(This, orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This, orientation) #define IDWriteTextFormat2_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) -#define IDWriteTextFormat2_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled) +#define IDWriteTextFormat2_SetLastLineWrapping(This, lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled) #define IDWriteTextFormat2_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) -#define IDWriteTextFormat2_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment) +#define IDWriteTextFormat2_SetOpticalAlignment(This, alignment) (This)->lpVtbl->SetOpticalAlignment(This, alignment) #define IDWriteTextFormat2_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) -#define IDWriteTextFormat2_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback) -#define IDWriteTextFormat2_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback) +#define IDWriteTextFormat2_SetFontFallback(This, fallback) (This)->lpVtbl->SetFontFallback(This, fallback) +#define IDWriteTextFormat2_GetFontFallback(This, fallback) (This)->lpVtbl->GetFontFallback(This, fallback) /*** IDWriteTextFormat2 methods ***/ -#define IDWriteTextFormat2_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing) -#define IDWriteTextFormat2_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing) +#define IDWriteTextFormat2_SetLineSpacing(This, spacing) (This)->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This, spacing) +#define IDWriteTextFormat2_GetLineSpacing(This, spacing) (This)->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This, spacing) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteTextFormat2_QueryInterface(IDWriteTextFormat2* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteTextFormat2_QueryInterface(IDWriteTextFormat2* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteTextFormat2_AddRef(IDWriteTextFormat2* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteTextFormat2_Release(IDWriteTextFormat2* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteTextFormat methods ***/ -static inline HRESULT IDWriteTextFormat2_SetTextAlignment(IDWriteTextFormat2* This,DWRITE_TEXT_ALIGNMENT alignment) { - return This->lpVtbl->SetTextAlignment(This,alignment); +static inline HRESULT IDWriteTextFormat2_SetTextAlignment(IDWriteTextFormat2* This, DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This, alignment); } -static inline HRESULT IDWriteTextFormat2_SetParagraphAlignment(IDWriteTextFormat2* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { - return This->lpVtbl->SetParagraphAlignment(This,alignment); +static inline HRESULT IDWriteTextFormat2_SetParagraphAlignment(IDWriteTextFormat2* This, DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This, alignment); } -static inline HRESULT IDWriteTextFormat2_SetWordWrapping(IDWriteTextFormat2* This,DWRITE_WORD_WRAPPING wrapping) { - return This->lpVtbl->SetWordWrapping(This,wrapping); +static inline HRESULT IDWriteTextFormat2_SetWordWrapping(IDWriteTextFormat2* This, DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This, wrapping); } -static inline HRESULT IDWriteTextFormat2_SetReadingDirection(IDWriteTextFormat2* This,DWRITE_READING_DIRECTION direction) { - return This->lpVtbl->SetReadingDirection(This,direction); +static inline HRESULT IDWriteTextFormat2_SetReadingDirection(IDWriteTextFormat2* This, DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This, direction); } -static inline HRESULT IDWriteTextFormat2_SetFlowDirection(IDWriteTextFormat2* This,DWRITE_FLOW_DIRECTION direction) { - return This->lpVtbl->SetFlowDirection(This,direction); +static inline HRESULT IDWriteTextFormat2_SetFlowDirection(IDWriteTextFormat2* This, DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This, direction); } -static inline HRESULT IDWriteTextFormat2_SetIncrementalTabStop(IDWriteTextFormat2* This,FLOAT tabstop) { - return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +static inline HRESULT IDWriteTextFormat2_SetIncrementalTabStop(IDWriteTextFormat2* This, FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This, tabstop); } -static inline HRESULT IDWriteTextFormat2_SetTrimming(IDWriteTextFormat2* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { - return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +static inline HRESULT IDWriteTextFormat2_SetTrimming(IDWriteTextFormat2* This, const DWRITE_TRIMMING* trimming, IDWriteInlineObject* trimming_sign) { + return This->lpVtbl->SetTrimming(This, trimming, trimming_sign); } static inline DWRITE_TEXT_ALIGNMENT IDWriteTextFormat2_GetTextAlignment(IDWriteTextFormat2* This) { - return This->lpVtbl->GetTextAlignment(This); + return This->lpVtbl->GetTextAlignment(This); } static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat2_GetParagraphAlignment(IDWriteTextFormat2* This) { - return This->lpVtbl->GetParagraphAlignment(This); + return This->lpVtbl->GetParagraphAlignment(This); } static inline DWRITE_WORD_WRAPPING IDWriteTextFormat2_GetWordWrapping(IDWriteTextFormat2* This) { - return This->lpVtbl->GetWordWrapping(This); + return This->lpVtbl->GetWordWrapping(This); } static inline DWRITE_READING_DIRECTION IDWriteTextFormat2_GetReadingDirection(IDWriteTextFormat2* This) { - return This->lpVtbl->GetReadingDirection(This); + return This->lpVtbl->GetReadingDirection(This); } static inline DWRITE_FLOW_DIRECTION IDWriteTextFormat2_GetFlowDirection(IDWriteTextFormat2* This) { - return This->lpVtbl->GetFlowDirection(This); + return This->lpVtbl->GetFlowDirection(This); } static inline FLOAT IDWriteTextFormat2_GetIncrementalTabStop(IDWriteTextFormat2* This) { - return This->lpVtbl->GetIncrementalTabStop(This); + return This->lpVtbl->GetIncrementalTabStop(This); } -static inline HRESULT IDWriteTextFormat2_GetTrimming(IDWriteTextFormat2* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { - return This->lpVtbl->GetTrimming(This,options,trimming_sign); +static inline HRESULT IDWriteTextFormat2_GetTrimming(IDWriteTextFormat2* This, DWRITE_TRIMMING* options, IDWriteInlineObject** trimming_sign) { + return This->lpVtbl->GetTrimming(This, options, trimming_sign); } -static inline HRESULT IDWriteTextFormat2_GetFontCollection(IDWriteTextFormat2* This,IDWriteFontCollection **collection) { - return This->lpVtbl->GetFontCollection(This,collection); +static inline HRESULT IDWriteTextFormat2_GetFontCollection(IDWriteTextFormat2* This, IDWriteFontCollection** collection) { + return This->lpVtbl->GetFontCollection(This, collection); } static inline UINT32 IDWriteTextFormat2_GetFontFamilyNameLength(IDWriteTextFormat2* This) { - return This->lpVtbl->GetFontFamilyNameLength(This); + return This->lpVtbl->GetFontFamilyNameLength(This); } -static inline HRESULT IDWriteTextFormat2_GetFontFamilyName(IDWriteTextFormat2* This,WCHAR *name,UINT32 size) { - return This->lpVtbl->GetFontFamilyName(This,name,size); +static inline HRESULT IDWriteTextFormat2_GetFontFamilyName(IDWriteTextFormat2* This, WCHAR* name, UINT32 size) { + return This->lpVtbl->GetFontFamilyName(This, name, size); } static inline DWRITE_FONT_WEIGHT IDWriteTextFormat2_GetFontWeight(IDWriteTextFormat2* This) { - return This->lpVtbl->GetFontWeight(This); + return This->lpVtbl->GetFontWeight(This); } static inline DWRITE_FONT_STYLE IDWriteTextFormat2_GetFontStyle(IDWriteTextFormat2* This) { - return This->lpVtbl->GetFontStyle(This); + return This->lpVtbl->GetFontStyle(This); } static inline DWRITE_FONT_STRETCH IDWriteTextFormat2_GetFontStretch(IDWriteTextFormat2* This) { - return This->lpVtbl->GetFontStretch(This); + return This->lpVtbl->GetFontStretch(This); } static inline FLOAT IDWriteTextFormat2_GetFontSize(IDWriteTextFormat2* This) { - return This->lpVtbl->GetFontSize(This); + return This->lpVtbl->GetFontSize(This); } static inline UINT32 IDWriteTextFormat2_GetLocaleNameLength(IDWriteTextFormat2* This) { - return This->lpVtbl->GetLocaleNameLength(This); + return This->lpVtbl->GetLocaleNameLength(This); } -static inline HRESULT IDWriteTextFormat2_GetLocaleName(IDWriteTextFormat2* This,WCHAR *name,UINT32 size) { - return This->lpVtbl->GetLocaleName(This,name,size); +static inline HRESULT IDWriteTextFormat2_GetLocaleName(IDWriteTextFormat2* This, WCHAR* name, UINT32 size) { + return This->lpVtbl->GetLocaleName(This, name, size); } /*** IDWriteTextFormat1 methods ***/ -static inline HRESULT IDWriteTextFormat2_SetVerticalGlyphOrientation(IDWriteTextFormat2* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { - return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation); +static inline HRESULT IDWriteTextFormat2_SetVerticalGlyphOrientation(IDWriteTextFormat2* This, DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { + return This->lpVtbl->SetVerticalGlyphOrientation(This, orientation); } static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextFormat2_GetVerticalGlyphOrientation(IDWriteTextFormat2* This) { - return This->lpVtbl->GetVerticalGlyphOrientation(This); + return This->lpVtbl->GetVerticalGlyphOrientation(This); } -static inline HRESULT IDWriteTextFormat2_SetLastLineWrapping(IDWriteTextFormat2* This,WINBOOL lastline_wrapping_enabled) { - return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled); +static inline HRESULT IDWriteTextFormat2_SetLastLineWrapping(IDWriteTextFormat2* This, WINBOOL lastline_wrapping_enabled) { + return This->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled); } static inline WINBOOL IDWriteTextFormat2_GetLastLineWrapping(IDWriteTextFormat2* This) { - return This->lpVtbl->GetLastLineWrapping(This); + return This->lpVtbl->GetLastLineWrapping(This); } -static inline HRESULT IDWriteTextFormat2_SetOpticalAlignment(IDWriteTextFormat2* This,DWRITE_OPTICAL_ALIGNMENT alignment) { - return This->lpVtbl->SetOpticalAlignment(This,alignment); +static inline HRESULT IDWriteTextFormat2_SetOpticalAlignment(IDWriteTextFormat2* This, DWRITE_OPTICAL_ALIGNMENT alignment) { + return This->lpVtbl->SetOpticalAlignment(This, alignment); } static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextFormat2_GetOpticalAlignment(IDWriteTextFormat2* This) { - return This->lpVtbl->GetOpticalAlignment(This); + return This->lpVtbl->GetOpticalAlignment(This); } -static inline HRESULT IDWriteTextFormat2_SetFontFallback(IDWriteTextFormat2* This,IDWriteFontFallback *fallback) { - return This->lpVtbl->SetFontFallback(This,fallback); +static inline HRESULT IDWriteTextFormat2_SetFontFallback(IDWriteTextFormat2* This, IDWriteFontFallback* fallback) { + return This->lpVtbl->SetFontFallback(This, fallback); } -static inline HRESULT IDWriteTextFormat2_GetFontFallback(IDWriteTextFormat2* This,IDWriteFontFallback **fallback) { - return This->lpVtbl->GetFontFallback(This,fallback); +static inline HRESULT IDWriteTextFormat2_GetFontFallback(IDWriteTextFormat2* This, IDWriteFontFallback** fallback) { + return This->lpVtbl->GetFontFallback(This, fallback); } /*** IDWriteTextFormat2 methods ***/ -static inline HRESULT IDWriteTextFormat2_SetLineSpacing(IDWriteTextFormat2* This,const DWRITE_LINE_SPACING *spacing) { - return This->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing); +static inline HRESULT IDWriteTextFormat2_SetLineSpacing(IDWriteTextFormat2* This, const DWRITE_LINE_SPACING* spacing) { + return This->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This, spacing); } -static inline HRESULT IDWriteTextFormat2_GetLineSpacing(IDWriteTextFormat2* This,DWRITE_LINE_SPACING *spacing) { - return This->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing); +static inline HRESULT IDWriteTextFormat2_GetLineSpacing(IDWriteTextFormat2* This, DWRITE_LINE_SPACING* spacing) { + return This->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This, spacing); } #endif #endif #endif - -#endif /* __IDWriteTextFormat2_INTERFACE_DEFINED__ */ +#endif /* __IDWriteTextFormat2_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteTextFormat3 interface @@ -5585,396 +5496,391 @@ static inline HRESULT IDWriteTextFormat2_GetLineSpacing(IDWriteTextFormat2* This #ifndef __IDWriteTextFormat3_INTERFACE_DEFINED__ #define __IDWriteTextFormat3_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteTextFormat3, 0x6d3b5641, 0xe550, 0x430d, 0xa8,0x5b, 0xb7,0xbf,0x48,0xa9,0x34,0x27); +DEFINE_GUID(IID_IDWriteTextFormat3, 0x6d3b5641, 0xe550, 0x430d, 0xa8, 0x5b, 0xb7, 0xbf, 0x48, 0xa9, 0x34, 0x27); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("6d3b5641-e550-430d-a85b-b7bf48a93427") -IDWriteTextFormat3 : public IDWriteTextFormat2 -{ - virtual HRESULT STDMETHODCALLTYPE SetFontAxisValues( - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values) = 0; +IDWriteTextFormat3 : public IDWriteTextFormat2 { + virtual HRESULT STDMETHODCALLTYPE SetFontAxisValues( + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values) = 0; - virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount( - ) = 0; + virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount() = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues( - DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues( + DWRITE_FONT_AXIS_VALUE * axis_values, + UINT32 num_values) = 0; - virtual DWRITE_AUTOMATIC_FONT_AXES STDMETHODCALLTYPE GetAutomaticFontAxes( - ) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetAutomaticFontAxes( - DWRITE_AUTOMATIC_FONT_AXES axes) = 0; + virtual DWRITE_AUTOMATIC_FONT_AXES STDMETHODCALLTYPE GetAutomaticFontAxes() = 0; + virtual HRESULT STDMETHODCALLTYPE SetAutomaticFontAxes( + DWRITE_AUTOMATIC_FONT_AXES axes) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextFormat3, 0x6d3b5641, 0xe550, 0x430d, 0xa8,0x5b, 0xb7,0xbf,0x48,0xa9,0x34,0x27) +__CRT_UUID_DECL(IDWriteTextFormat3, 0x6d3b5641, 0xe550, 0x430d, 0xa8, 0x5b, 0xb7, 0xbf, 0x48, 0xa9, 0x34, 0x27) #endif #else typedef struct IDWriteTextFormat3Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteTextFormat3 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteTextFormat3* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteTextFormat3 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteTextFormat3* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteTextFormat3 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteTextFormat3* This); - /*** IDWriteTextFormat methods ***/ - HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( - IDWriteTextFormat3 *This, - DWRITE_TEXT_ALIGNMENT alignment); + /*** IDWriteTextFormat methods ***/ + HRESULT(STDMETHODCALLTYPE* SetTextAlignment)( + IDWriteTextFormat3* This, + DWRITE_TEXT_ALIGNMENT alignment); - HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( - IDWriteTextFormat3 *This, - DWRITE_PARAGRAPH_ALIGNMENT alignment); + HRESULT(STDMETHODCALLTYPE* SetParagraphAlignment)( + IDWriteTextFormat3* This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); - HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( - IDWriteTextFormat3 *This, - DWRITE_WORD_WRAPPING wrapping); + HRESULT(STDMETHODCALLTYPE* SetWordWrapping)( + IDWriteTextFormat3* This, + DWRITE_WORD_WRAPPING wrapping); - HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( - IDWriteTextFormat3 *This, - DWRITE_READING_DIRECTION direction); + HRESULT(STDMETHODCALLTYPE* SetReadingDirection)( + IDWriteTextFormat3* This, + DWRITE_READING_DIRECTION direction); - HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( - IDWriteTextFormat3 *This, - DWRITE_FLOW_DIRECTION direction); + HRESULT(STDMETHODCALLTYPE* SetFlowDirection)( + IDWriteTextFormat3* This, + DWRITE_FLOW_DIRECTION direction); - HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( - IDWriteTextFormat3 *This, - FLOAT tabstop); + HRESULT(STDMETHODCALLTYPE* SetIncrementalTabStop)( + IDWriteTextFormat3* This, + FLOAT tabstop); - HRESULT (STDMETHODCALLTYPE *SetTrimming)( - IDWriteTextFormat3 *This, - const DWRITE_TRIMMING *trimming, - IDWriteInlineObject *trimming_sign); + HRESULT(STDMETHODCALLTYPE* SetTrimming)( + IDWriteTextFormat3* This, + const DWRITE_TRIMMING* trimming, + IDWriteInlineObject* trimming_sign); - HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( - IDWriteTextFormat3 *This, - DWRITE_LINE_SPACING_METHOD spacing, - FLOAT line_spacing, - FLOAT baseline); + HRESULT(STDMETHODCALLTYPE* SetLineSpacing)( + IDWriteTextFormat3* This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); - DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( - IDWriteTextFormat3 *This); + DWRITE_TEXT_ALIGNMENT(STDMETHODCALLTYPE* GetTextAlignment)( + IDWriteTextFormat3* This); - DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( - IDWriteTextFormat3 *This); + DWRITE_PARAGRAPH_ALIGNMENT(STDMETHODCALLTYPE* GetParagraphAlignment)( + IDWriteTextFormat3* This); - DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( - IDWriteTextFormat3 *This); + DWRITE_WORD_WRAPPING(STDMETHODCALLTYPE* GetWordWrapping)( + IDWriteTextFormat3* This); - DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( - IDWriteTextFormat3 *This); + DWRITE_READING_DIRECTION(STDMETHODCALLTYPE* GetReadingDirection)( + IDWriteTextFormat3* This); - DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( - IDWriteTextFormat3 *This); + DWRITE_FLOW_DIRECTION(STDMETHODCALLTYPE* GetFlowDirection)( + IDWriteTextFormat3* This); - FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( - IDWriteTextFormat3 *This); + FLOAT(STDMETHODCALLTYPE* GetIncrementalTabStop)( + IDWriteTextFormat3* This); - HRESULT (STDMETHODCALLTYPE *GetTrimming)( - IDWriteTextFormat3 *This, - DWRITE_TRIMMING *options, - IDWriteInlineObject **trimming_sign); + HRESULT(STDMETHODCALLTYPE* GetTrimming)( + IDWriteTextFormat3* This, + DWRITE_TRIMMING* options, + IDWriteInlineObject** trimming_sign); - HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( - IDWriteTextFormat3 *This, - DWRITE_LINE_SPACING_METHOD *method, - FLOAT *spacing, - FLOAT *baseline); + HRESULT(STDMETHODCALLTYPE* GetLineSpacing)( + IDWriteTextFormat3* This, + DWRITE_LINE_SPACING_METHOD* method, + FLOAT* spacing, + FLOAT* baseline); - HRESULT (STDMETHODCALLTYPE *GetFontCollection)( - IDWriteTextFormat3 *This, - IDWriteFontCollection **collection); + HRESULT(STDMETHODCALLTYPE* GetFontCollection)( + IDWriteTextFormat3* This, + IDWriteFontCollection** collection); - UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( - IDWriteTextFormat3 *This); + UINT32(STDMETHODCALLTYPE* GetFontFamilyNameLength)( + IDWriteTextFormat3* This); - HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( - IDWriteTextFormat3 *This, - WCHAR *name, - UINT32 size); + HRESULT(STDMETHODCALLTYPE* GetFontFamilyName)( + IDWriteTextFormat3* This, + WCHAR* name, + UINT32 size); - DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( - IDWriteTextFormat3 *This); + DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetFontWeight)( + IDWriteTextFormat3* This); - DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( - IDWriteTextFormat3 *This); + DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetFontStyle)( + IDWriteTextFormat3* This); - DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( - IDWriteTextFormat3 *This); + DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetFontStretch)( + IDWriteTextFormat3* This); - FLOAT (STDMETHODCALLTYPE *GetFontSize)( - IDWriteTextFormat3 *This); + FLOAT(STDMETHODCALLTYPE* GetFontSize)( + IDWriteTextFormat3* This); - UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( - IDWriteTextFormat3 *This); + UINT32(STDMETHODCALLTYPE* GetLocaleNameLength)( + IDWriteTextFormat3* This); - HRESULT (STDMETHODCALLTYPE *GetLocaleName)( - IDWriteTextFormat3 *This, - WCHAR *name, - UINT32 size); + HRESULT(STDMETHODCALLTYPE* GetLocaleName)( + IDWriteTextFormat3* This, + WCHAR* name, + UINT32 size); - /*** IDWriteTextFormat1 methods ***/ - HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)( - IDWriteTextFormat3 *This, - DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); + /*** IDWriteTextFormat1 methods ***/ + HRESULT(STDMETHODCALLTYPE* SetVerticalGlyphOrientation)( + IDWriteTextFormat3* This, + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); - DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)( - IDWriteTextFormat3 *This); + DWRITE_VERTICAL_GLYPH_ORIENTATION(STDMETHODCALLTYPE* GetVerticalGlyphOrientation)( + IDWriteTextFormat3* This); - HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)( - IDWriteTextFormat3 *This, - WINBOOL lastline_wrapping_enabled); + HRESULT(STDMETHODCALLTYPE* SetLastLineWrapping)( + IDWriteTextFormat3* This, + WINBOOL lastline_wrapping_enabled); - WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)( - IDWriteTextFormat3 *This); + WINBOOL(STDMETHODCALLTYPE* GetLastLineWrapping)( + IDWriteTextFormat3* This); - HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)( - IDWriteTextFormat3 *This, - DWRITE_OPTICAL_ALIGNMENT alignment); + HRESULT(STDMETHODCALLTYPE* SetOpticalAlignment)( + IDWriteTextFormat3* This, + DWRITE_OPTICAL_ALIGNMENT alignment); - DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)( - IDWriteTextFormat3 *This); + DWRITE_OPTICAL_ALIGNMENT(STDMETHODCALLTYPE* GetOpticalAlignment)( + IDWriteTextFormat3* This); - HRESULT (STDMETHODCALLTYPE *SetFontFallback)( - IDWriteTextFormat3 *This, - IDWriteFontFallback *fallback); + HRESULT(STDMETHODCALLTYPE* SetFontFallback)( + IDWriteTextFormat3* This, + IDWriteFontFallback* fallback); - HRESULT (STDMETHODCALLTYPE *GetFontFallback)( - IDWriteTextFormat3 *This, - IDWriteFontFallback **fallback); + HRESULT(STDMETHODCALLTYPE* GetFontFallback)( + IDWriteTextFormat3* This, + IDWriteFontFallback** fallback); - /*** IDWriteTextFormat2 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_SetLineSpacing)( - IDWriteTextFormat3 *This, - const DWRITE_LINE_SPACING *spacing); + /*** IDWriteTextFormat2 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteTextFormat2_SetLineSpacing)( + IDWriteTextFormat3* This, + const DWRITE_LINE_SPACING* spacing); - HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_GetLineSpacing)( - IDWriteTextFormat3 *This, - DWRITE_LINE_SPACING *spacing); + HRESULT(STDMETHODCALLTYPE* IDWriteTextFormat2_GetLineSpacing)( + IDWriteTextFormat3* This, + DWRITE_LINE_SPACING* spacing); - /*** IDWriteTextFormat3 methods ***/ - HRESULT (STDMETHODCALLTYPE *SetFontAxisValues)( - IDWriteTextFormat3 *This, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values); + /*** IDWriteTextFormat3 methods ***/ + HRESULT(STDMETHODCALLTYPE* SetFontAxisValues)( + IDWriteTextFormat3* This, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values); - UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)( - IDWriteTextFormat3 *This); + UINT32(STDMETHODCALLTYPE* GetFontAxisValueCount)( + IDWriteTextFormat3* This); - HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)( - IDWriteTextFormat3 *This, - DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values); + HRESULT(STDMETHODCALLTYPE* GetFontAxisValues)( + IDWriteTextFormat3* This, + DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values); - DWRITE_AUTOMATIC_FONT_AXES (STDMETHODCALLTYPE *GetAutomaticFontAxes)( - IDWriteTextFormat3 *This); + DWRITE_AUTOMATIC_FONT_AXES(STDMETHODCALLTYPE* GetAutomaticFontAxes)( + IDWriteTextFormat3* This); - HRESULT (STDMETHODCALLTYPE *SetAutomaticFontAxes)( - IDWriteTextFormat3 *This, - DWRITE_AUTOMATIC_FONT_AXES axes); + HRESULT(STDMETHODCALLTYPE* SetAutomaticFontAxes)( + IDWriteTextFormat3* This, + DWRITE_AUTOMATIC_FONT_AXES axes); - END_INTERFACE + END_INTERFACE } IDWriteTextFormat3Vtbl; interface IDWriteTextFormat3 { - CONST_VTBL IDWriteTextFormat3Vtbl* lpVtbl; + CONST_VTBL IDWriteTextFormat3Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteTextFormat3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextFormat3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteTextFormat3_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteTextFormat3_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteTextFormat methods ***/ -#define IDWriteTextFormat3_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) -#define IDWriteTextFormat3_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) -#define IDWriteTextFormat3_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) -#define IDWriteTextFormat3_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) -#define IDWriteTextFormat3_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) -#define IDWriteTextFormat3_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) -#define IDWriteTextFormat3_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) +#define IDWriteTextFormat3_SetTextAlignment(This, alignment) (This)->lpVtbl->SetTextAlignment(This, alignment) +#define IDWriteTextFormat3_SetParagraphAlignment(This, alignment) (This)->lpVtbl->SetParagraphAlignment(This, alignment) +#define IDWriteTextFormat3_SetWordWrapping(This, wrapping) (This)->lpVtbl->SetWordWrapping(This, wrapping) +#define IDWriteTextFormat3_SetReadingDirection(This, direction) (This)->lpVtbl->SetReadingDirection(This, direction) +#define IDWriteTextFormat3_SetFlowDirection(This, direction) (This)->lpVtbl->SetFlowDirection(This, direction) +#define IDWriteTextFormat3_SetIncrementalTabStop(This, tabstop) (This)->lpVtbl->SetIncrementalTabStop(This, tabstop) +#define IDWriteTextFormat3_SetTrimming(This, trimming, trimming_sign) (This)->lpVtbl->SetTrimming(This, trimming, trimming_sign) #define IDWriteTextFormat3_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) #define IDWriteTextFormat3_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) #define IDWriteTextFormat3_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) #define IDWriteTextFormat3_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) #define IDWriteTextFormat3_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) #define IDWriteTextFormat3_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) -#define IDWriteTextFormat3_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) -#define IDWriteTextFormat3_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteTextFormat3_GetTrimming(This, options, trimming_sign) (This)->lpVtbl->GetTrimming(This, options, trimming_sign) +#define IDWriteTextFormat3_GetFontCollection(This, collection) (This)->lpVtbl->GetFontCollection(This, collection) #define IDWriteTextFormat3_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This) -#define IDWriteTextFormat3_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size) +#define IDWriteTextFormat3_GetFontFamilyName(This, name, size) (This)->lpVtbl->GetFontFamilyName(This, name, size) #define IDWriteTextFormat3_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This) #define IDWriteTextFormat3_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This) #define IDWriteTextFormat3_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This) #define IDWriteTextFormat3_GetFontSize(This) (This)->lpVtbl->GetFontSize(This) #define IDWriteTextFormat3_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This) -#define IDWriteTextFormat3_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size) +#define IDWriteTextFormat3_GetLocaleName(This, name, size) (This)->lpVtbl->GetLocaleName(This, name, size) /*** IDWriteTextFormat1 methods ***/ -#define IDWriteTextFormat3_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation) +#define IDWriteTextFormat3_SetVerticalGlyphOrientation(This, orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This, orientation) #define IDWriteTextFormat3_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) -#define IDWriteTextFormat3_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled) +#define IDWriteTextFormat3_SetLastLineWrapping(This, lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled) #define IDWriteTextFormat3_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) -#define IDWriteTextFormat3_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment) +#define IDWriteTextFormat3_SetOpticalAlignment(This, alignment) (This)->lpVtbl->SetOpticalAlignment(This, alignment) #define IDWriteTextFormat3_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) -#define IDWriteTextFormat3_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback) -#define IDWriteTextFormat3_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback) +#define IDWriteTextFormat3_SetFontFallback(This, fallback) (This)->lpVtbl->SetFontFallback(This, fallback) +#define IDWriteTextFormat3_GetFontFallback(This, fallback) (This)->lpVtbl->GetFontFallback(This, fallback) /*** IDWriteTextFormat2 methods ***/ -#define IDWriteTextFormat3_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing) -#define IDWriteTextFormat3_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing) +#define IDWriteTextFormat3_SetLineSpacing(This, spacing) (This)->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This, spacing) +#define IDWriteTextFormat3_GetLineSpacing(This, spacing) (This)->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This, spacing) /*** IDWriteTextFormat3 methods ***/ -#define IDWriteTextFormat3_SetFontAxisValues(This,axis_values,num_values) (This)->lpVtbl->SetFontAxisValues(This,axis_values,num_values) +#define IDWriteTextFormat3_SetFontAxisValues(This, axis_values, num_values) (This)->lpVtbl->SetFontAxisValues(This, axis_values, num_values) #define IDWriteTextFormat3_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This) -#define IDWriteTextFormat3_GetFontAxisValues(This,axis_values,num_values) (This)->lpVtbl->GetFontAxisValues(This,axis_values,num_values) +#define IDWriteTextFormat3_GetFontAxisValues(This, axis_values, num_values) (This)->lpVtbl->GetFontAxisValues(This, axis_values, num_values) #define IDWriteTextFormat3_GetAutomaticFontAxes(This) (This)->lpVtbl->GetAutomaticFontAxes(This) -#define IDWriteTextFormat3_SetAutomaticFontAxes(This,axes) (This)->lpVtbl->SetAutomaticFontAxes(This,axes) +#define IDWriteTextFormat3_SetAutomaticFontAxes(This, axes) (This)->lpVtbl->SetAutomaticFontAxes(This, axes) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteTextFormat3_QueryInterface(IDWriteTextFormat3* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteTextFormat3_QueryInterface(IDWriteTextFormat3* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteTextFormat3_AddRef(IDWriteTextFormat3* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteTextFormat3_Release(IDWriteTextFormat3* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteTextFormat methods ***/ -static inline HRESULT IDWriteTextFormat3_SetTextAlignment(IDWriteTextFormat3* This,DWRITE_TEXT_ALIGNMENT alignment) { - return This->lpVtbl->SetTextAlignment(This,alignment); +static inline HRESULT IDWriteTextFormat3_SetTextAlignment(IDWriteTextFormat3* This, DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This, alignment); } -static inline HRESULT IDWriteTextFormat3_SetParagraphAlignment(IDWriteTextFormat3* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { - return This->lpVtbl->SetParagraphAlignment(This,alignment); +static inline HRESULT IDWriteTextFormat3_SetParagraphAlignment(IDWriteTextFormat3* This, DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This, alignment); } -static inline HRESULT IDWriteTextFormat3_SetWordWrapping(IDWriteTextFormat3* This,DWRITE_WORD_WRAPPING wrapping) { - return This->lpVtbl->SetWordWrapping(This,wrapping); +static inline HRESULT IDWriteTextFormat3_SetWordWrapping(IDWriteTextFormat3* This, DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This, wrapping); } -static inline HRESULT IDWriteTextFormat3_SetReadingDirection(IDWriteTextFormat3* This,DWRITE_READING_DIRECTION direction) { - return This->lpVtbl->SetReadingDirection(This,direction); +static inline HRESULT IDWriteTextFormat3_SetReadingDirection(IDWriteTextFormat3* This, DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This, direction); } -static inline HRESULT IDWriteTextFormat3_SetFlowDirection(IDWriteTextFormat3* This,DWRITE_FLOW_DIRECTION direction) { - return This->lpVtbl->SetFlowDirection(This,direction); +static inline HRESULT IDWriteTextFormat3_SetFlowDirection(IDWriteTextFormat3* This, DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This, direction); } -static inline HRESULT IDWriteTextFormat3_SetIncrementalTabStop(IDWriteTextFormat3* This,FLOAT tabstop) { - return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +static inline HRESULT IDWriteTextFormat3_SetIncrementalTabStop(IDWriteTextFormat3* This, FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This, tabstop); } -static inline HRESULT IDWriteTextFormat3_SetTrimming(IDWriteTextFormat3* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { - return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +static inline HRESULT IDWriteTextFormat3_SetTrimming(IDWriteTextFormat3* This, const DWRITE_TRIMMING* trimming, IDWriteInlineObject* trimming_sign) { + return This->lpVtbl->SetTrimming(This, trimming, trimming_sign); } static inline DWRITE_TEXT_ALIGNMENT IDWriteTextFormat3_GetTextAlignment(IDWriteTextFormat3* This) { - return This->lpVtbl->GetTextAlignment(This); + return This->lpVtbl->GetTextAlignment(This); } static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat3_GetParagraphAlignment(IDWriteTextFormat3* This) { - return This->lpVtbl->GetParagraphAlignment(This); + return This->lpVtbl->GetParagraphAlignment(This); } static inline DWRITE_WORD_WRAPPING IDWriteTextFormat3_GetWordWrapping(IDWriteTextFormat3* This) { - return This->lpVtbl->GetWordWrapping(This); + return This->lpVtbl->GetWordWrapping(This); } static inline DWRITE_READING_DIRECTION IDWriteTextFormat3_GetReadingDirection(IDWriteTextFormat3* This) { - return This->lpVtbl->GetReadingDirection(This); + return This->lpVtbl->GetReadingDirection(This); } static inline DWRITE_FLOW_DIRECTION IDWriteTextFormat3_GetFlowDirection(IDWriteTextFormat3* This) { - return This->lpVtbl->GetFlowDirection(This); + return This->lpVtbl->GetFlowDirection(This); } static inline FLOAT IDWriteTextFormat3_GetIncrementalTabStop(IDWriteTextFormat3* This) { - return This->lpVtbl->GetIncrementalTabStop(This); + return This->lpVtbl->GetIncrementalTabStop(This); } -static inline HRESULT IDWriteTextFormat3_GetTrimming(IDWriteTextFormat3* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { - return This->lpVtbl->GetTrimming(This,options,trimming_sign); +static inline HRESULT IDWriteTextFormat3_GetTrimming(IDWriteTextFormat3* This, DWRITE_TRIMMING* options, IDWriteInlineObject** trimming_sign) { + return This->lpVtbl->GetTrimming(This, options, trimming_sign); } -static inline HRESULT IDWriteTextFormat3_GetFontCollection(IDWriteTextFormat3* This,IDWriteFontCollection **collection) { - return This->lpVtbl->GetFontCollection(This,collection); +static inline HRESULT IDWriteTextFormat3_GetFontCollection(IDWriteTextFormat3* This, IDWriteFontCollection** collection) { + return This->lpVtbl->GetFontCollection(This, collection); } static inline UINT32 IDWriteTextFormat3_GetFontFamilyNameLength(IDWriteTextFormat3* This) { - return This->lpVtbl->GetFontFamilyNameLength(This); + return This->lpVtbl->GetFontFamilyNameLength(This); } -static inline HRESULT IDWriteTextFormat3_GetFontFamilyName(IDWriteTextFormat3* This,WCHAR *name,UINT32 size) { - return This->lpVtbl->GetFontFamilyName(This,name,size); +static inline HRESULT IDWriteTextFormat3_GetFontFamilyName(IDWriteTextFormat3* This, WCHAR* name, UINT32 size) { + return This->lpVtbl->GetFontFamilyName(This, name, size); } static inline DWRITE_FONT_WEIGHT IDWriteTextFormat3_GetFontWeight(IDWriteTextFormat3* This) { - return This->lpVtbl->GetFontWeight(This); + return This->lpVtbl->GetFontWeight(This); } static inline DWRITE_FONT_STYLE IDWriteTextFormat3_GetFontStyle(IDWriteTextFormat3* This) { - return This->lpVtbl->GetFontStyle(This); + return This->lpVtbl->GetFontStyle(This); } static inline DWRITE_FONT_STRETCH IDWriteTextFormat3_GetFontStretch(IDWriteTextFormat3* This) { - return This->lpVtbl->GetFontStretch(This); + return This->lpVtbl->GetFontStretch(This); } static inline FLOAT IDWriteTextFormat3_GetFontSize(IDWriteTextFormat3* This) { - return This->lpVtbl->GetFontSize(This); + return This->lpVtbl->GetFontSize(This); } static inline UINT32 IDWriteTextFormat3_GetLocaleNameLength(IDWriteTextFormat3* This) { - return This->lpVtbl->GetLocaleNameLength(This); + return This->lpVtbl->GetLocaleNameLength(This); } -static inline HRESULT IDWriteTextFormat3_GetLocaleName(IDWriteTextFormat3* This,WCHAR *name,UINT32 size) { - return This->lpVtbl->GetLocaleName(This,name,size); +static inline HRESULT IDWriteTextFormat3_GetLocaleName(IDWriteTextFormat3* This, WCHAR* name, UINT32 size) { + return This->lpVtbl->GetLocaleName(This, name, size); } /*** IDWriteTextFormat1 methods ***/ -static inline HRESULT IDWriteTextFormat3_SetVerticalGlyphOrientation(IDWriteTextFormat3* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { - return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation); +static inline HRESULT IDWriteTextFormat3_SetVerticalGlyphOrientation(IDWriteTextFormat3* This, DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { + return This->lpVtbl->SetVerticalGlyphOrientation(This, orientation); } static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextFormat3_GetVerticalGlyphOrientation(IDWriteTextFormat3* This) { - return This->lpVtbl->GetVerticalGlyphOrientation(This); + return This->lpVtbl->GetVerticalGlyphOrientation(This); } -static inline HRESULT IDWriteTextFormat3_SetLastLineWrapping(IDWriteTextFormat3* This,WINBOOL lastline_wrapping_enabled) { - return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled); +static inline HRESULT IDWriteTextFormat3_SetLastLineWrapping(IDWriteTextFormat3* This, WINBOOL lastline_wrapping_enabled) { + return This->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled); } static inline WINBOOL IDWriteTextFormat3_GetLastLineWrapping(IDWriteTextFormat3* This) { - return This->lpVtbl->GetLastLineWrapping(This); + return This->lpVtbl->GetLastLineWrapping(This); } -static inline HRESULT IDWriteTextFormat3_SetOpticalAlignment(IDWriteTextFormat3* This,DWRITE_OPTICAL_ALIGNMENT alignment) { - return This->lpVtbl->SetOpticalAlignment(This,alignment); +static inline HRESULT IDWriteTextFormat3_SetOpticalAlignment(IDWriteTextFormat3* This, DWRITE_OPTICAL_ALIGNMENT alignment) { + return This->lpVtbl->SetOpticalAlignment(This, alignment); } static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextFormat3_GetOpticalAlignment(IDWriteTextFormat3* This) { - return This->lpVtbl->GetOpticalAlignment(This); + return This->lpVtbl->GetOpticalAlignment(This); } -static inline HRESULT IDWriteTextFormat3_SetFontFallback(IDWriteTextFormat3* This,IDWriteFontFallback *fallback) { - return This->lpVtbl->SetFontFallback(This,fallback); +static inline HRESULT IDWriteTextFormat3_SetFontFallback(IDWriteTextFormat3* This, IDWriteFontFallback* fallback) { + return This->lpVtbl->SetFontFallback(This, fallback); } -static inline HRESULT IDWriteTextFormat3_GetFontFallback(IDWriteTextFormat3* This,IDWriteFontFallback **fallback) { - return This->lpVtbl->GetFontFallback(This,fallback); +static inline HRESULT IDWriteTextFormat3_GetFontFallback(IDWriteTextFormat3* This, IDWriteFontFallback** fallback) { + return This->lpVtbl->GetFontFallback(This, fallback); } /*** IDWriteTextFormat2 methods ***/ -static inline HRESULT IDWriteTextFormat3_SetLineSpacing(IDWriteTextFormat3* This,const DWRITE_LINE_SPACING *spacing) { - return This->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing); +static inline HRESULT IDWriteTextFormat3_SetLineSpacing(IDWriteTextFormat3* This, const DWRITE_LINE_SPACING* spacing) { + return This->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This, spacing); } -static inline HRESULT IDWriteTextFormat3_GetLineSpacing(IDWriteTextFormat3* This,DWRITE_LINE_SPACING *spacing) { - return This->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing); +static inline HRESULT IDWriteTextFormat3_GetLineSpacing(IDWriteTextFormat3* This, DWRITE_LINE_SPACING* spacing) { + return This->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This, spacing); } /*** IDWriteTextFormat3 methods ***/ -static inline HRESULT IDWriteTextFormat3_SetFontAxisValues(IDWriteTextFormat3* This,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values) { - return This->lpVtbl->SetFontAxisValues(This,axis_values,num_values); +static inline HRESULT IDWriteTextFormat3_SetFontAxisValues(IDWriteTextFormat3* This, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values) { + return This->lpVtbl->SetFontAxisValues(This, axis_values, num_values); } static inline UINT32 IDWriteTextFormat3_GetFontAxisValueCount(IDWriteTextFormat3* This) { - return This->lpVtbl->GetFontAxisValueCount(This); + return This->lpVtbl->GetFontAxisValueCount(This); } -static inline HRESULT IDWriteTextFormat3_GetFontAxisValues(IDWriteTextFormat3* This,DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values) { - return This->lpVtbl->GetFontAxisValues(This,axis_values,num_values); +static inline HRESULT IDWriteTextFormat3_GetFontAxisValues(IDWriteTextFormat3* This, DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values) { + return This->lpVtbl->GetFontAxisValues(This, axis_values, num_values); } static inline DWRITE_AUTOMATIC_FONT_AXES IDWriteTextFormat3_GetAutomaticFontAxes(IDWriteTextFormat3* This) { - return This->lpVtbl->GetAutomaticFontAxes(This); + return This->lpVtbl->GetAutomaticFontAxes(This); } -static inline HRESULT IDWriteTextFormat3_SetAutomaticFontAxes(IDWriteTextFormat3* This,DWRITE_AUTOMATIC_FONT_AXES axes) { - return This->lpVtbl->SetAutomaticFontAxes(This,axes); +static inline HRESULT IDWriteTextFormat3_SetAutomaticFontAxes(IDWriteTextFormat3* This, DWRITE_AUTOMATIC_FONT_AXES axes) { + return This->lpVtbl->SetAutomaticFontAxes(This, axes); } #endif #endif #endif - -#endif /* __IDWriteTextFormat3_INTERFACE_DEFINED__ */ +#endif /* __IDWriteTextFormat3_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteTextLayout3 interface @@ -5982,752 +5888,748 @@ static inline HRESULT IDWriteTextFormat3_SetAutomaticFontAxes(IDWriteTextFormat3 #ifndef __IDWriteTextLayout3_INTERFACE_DEFINED__ #define __IDWriteTextLayout3_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteTextLayout3, 0x07ddcd52, 0x020e, 0x4de8, 0xac,0x33, 0x6c,0x95,0x3d,0x83,0xf9,0x2d); +DEFINE_GUID(IID_IDWriteTextLayout3, 0x07ddcd52, 0x020e, 0x4de8, 0xac, 0x33, 0x6c, 0x95, 0x3d, 0x83, 0xf9, 0x2d); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("07ddcd52-020e-4de8-ac33-6c953d83f92d") -IDWriteTextLayout3 : public IDWriteTextLayout2 -{ - virtual HRESULT STDMETHODCALLTYPE InvalidateLayout( - ) = 0; +IDWriteTextLayout3 : public IDWriteTextLayout2 { + virtual HRESULT STDMETHODCALLTYPE InvalidateLayout() = 0; - virtual HRESULT STDMETHODCALLTYPE SetLineSpacing( - const DWRITE_LINE_SPACING *spacing) = 0; + virtual HRESULT STDMETHODCALLTYPE SetLineSpacing( + const DWRITE_LINE_SPACING* spacing) = 0; - virtual HRESULT STDMETHODCALLTYPE GetLineSpacing( - DWRITE_LINE_SPACING *spacing) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLineMetrics( - DWRITE_LINE_METRICS1 *metrics, - UINT32 max_count, - UINT32 *count) = 0; + virtual HRESULT STDMETHODCALLTYPE GetLineSpacing( + DWRITE_LINE_SPACING * spacing) = 0; + virtual HRESULT STDMETHODCALLTYPE GetLineMetrics( + DWRITE_LINE_METRICS1 * metrics, + UINT32 max_count, + UINT32 * count) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextLayout3, 0x07ddcd52, 0x020e, 0x4de8, 0xac,0x33, 0x6c,0x95,0x3d,0x83,0xf9,0x2d) +__CRT_UUID_DECL(IDWriteTextLayout3, 0x07ddcd52, 0x020e, 0x4de8, 0xac, 0x33, 0x6c, 0x95, 0x3d, 0x83, 0xf9, 0x2d) #endif #else typedef struct IDWriteTextLayout3Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteTextLayout3 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteTextLayout3* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteTextLayout3 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteTextLayout3* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteTextLayout3 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteTextLayout3* This); - /*** IDWriteTextFormat methods ***/ - HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( - IDWriteTextLayout3 *This, - DWRITE_TEXT_ALIGNMENT alignment); + /*** IDWriteTextFormat methods ***/ + HRESULT(STDMETHODCALLTYPE* SetTextAlignment)( + IDWriteTextLayout3* This, + DWRITE_TEXT_ALIGNMENT alignment); - HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( - IDWriteTextLayout3 *This, - DWRITE_PARAGRAPH_ALIGNMENT alignment); + HRESULT(STDMETHODCALLTYPE* SetParagraphAlignment)( + IDWriteTextLayout3* This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); - HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( - IDWriteTextLayout3 *This, - DWRITE_WORD_WRAPPING wrapping); + HRESULT(STDMETHODCALLTYPE* SetWordWrapping)( + IDWriteTextLayout3* This, + DWRITE_WORD_WRAPPING wrapping); - HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( - IDWriteTextLayout3 *This, - DWRITE_READING_DIRECTION direction); + HRESULT(STDMETHODCALLTYPE* SetReadingDirection)( + IDWriteTextLayout3* This, + DWRITE_READING_DIRECTION direction); - HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( - IDWriteTextLayout3 *This, - DWRITE_FLOW_DIRECTION direction); + HRESULT(STDMETHODCALLTYPE* SetFlowDirection)( + IDWriteTextLayout3* This, + DWRITE_FLOW_DIRECTION direction); - HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( - IDWriteTextLayout3 *This, - FLOAT tabstop); + HRESULT(STDMETHODCALLTYPE* SetIncrementalTabStop)( + IDWriteTextLayout3* This, + FLOAT tabstop); - HRESULT (STDMETHODCALLTYPE *SetTrimming)( - IDWriteTextLayout3 *This, - const DWRITE_TRIMMING *trimming, - IDWriteInlineObject *trimming_sign); - - HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( - IDWriteTextLayout3 *This, - DWRITE_LINE_SPACING_METHOD spacing, - FLOAT line_spacing, - FLOAT baseline); + HRESULT(STDMETHODCALLTYPE* SetTrimming)( + IDWriteTextLayout3* This, + const DWRITE_TRIMMING* trimming, + IDWriteInlineObject* trimming_sign); + + HRESULT(STDMETHODCALLTYPE* SetLineSpacing)( + IDWriteTextLayout3* This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); - DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( - IDWriteTextLayout3 *This); - - DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( - IDWriteTextLayout3 *This); - - DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( - IDWriteTextLayout3 *This); - - DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( - IDWriteTextLayout3 *This); - - DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( - IDWriteTextLayout3 *This); - - FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( - IDWriteTextLayout3 *This); - - HRESULT (STDMETHODCALLTYPE *GetTrimming)( - IDWriteTextLayout3 *This, - DWRITE_TRIMMING *options, - IDWriteInlineObject **trimming_sign); - - HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( - IDWriteTextLayout3 *This, - DWRITE_LINE_SPACING_METHOD *method, - FLOAT *spacing, - FLOAT *baseline); - - HRESULT (STDMETHODCALLTYPE *GetFontCollection)( - IDWriteTextLayout3 *This, - IDWriteFontCollection **collection); - - UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( - IDWriteTextLayout3 *This); - - HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( - IDWriteTextLayout3 *This, - WCHAR *name, - UINT32 size); - - DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( - IDWriteTextLayout3 *This); - - DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( - IDWriteTextLayout3 *This); - - DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( - IDWriteTextLayout3 *This); - - FLOAT (STDMETHODCALLTYPE *GetFontSize)( - IDWriteTextLayout3 *This); - - UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( - IDWriteTextLayout3 *This); - - HRESULT (STDMETHODCALLTYPE *GetLocaleName)( - IDWriteTextLayout3 *This, - WCHAR *name, - UINT32 size); - - /*** IDWriteTextLayout methods ***/ - HRESULT (STDMETHODCALLTYPE *SetMaxWidth)( - IDWriteTextLayout3 *This, - FLOAT maxWidth); - - HRESULT (STDMETHODCALLTYPE *SetMaxHeight)( - IDWriteTextLayout3 *This, - FLOAT maxHeight); - - HRESULT (STDMETHODCALLTYPE *SetFontCollection)( - IDWriteTextLayout3 *This, - IDWriteFontCollection *collection, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)( - IDWriteTextLayout3 *This, - const WCHAR *name, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetFontWeight)( - IDWriteTextLayout3 *This, - DWRITE_FONT_WEIGHT weight, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetFontStyle)( - IDWriteTextLayout3 *This, - DWRITE_FONT_STYLE style, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetFontStretch)( - IDWriteTextLayout3 *This, - DWRITE_FONT_STRETCH stretch, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetFontSize)( - IDWriteTextLayout3 *This, - FLOAT size, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetUnderline)( - IDWriteTextLayout3 *This, - WINBOOL underline, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetStrikethrough)( - IDWriteTextLayout3 *This, - WINBOOL strikethrough, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)( - IDWriteTextLayout3 *This, - IUnknown *effect, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetInlineObject)( - IDWriteTextLayout3 *This, - IDWriteInlineObject *object, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetTypography)( - IDWriteTextLayout3 *This, - IDWriteTypography *typography, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetLocaleName)( - IDWriteTextLayout3 *This, - const WCHAR *locale, - DWRITE_TEXT_RANGE range); - - FLOAT (STDMETHODCALLTYPE *GetMaxWidth)( - IDWriteTextLayout3 *This); - - FLOAT (STDMETHODCALLTYPE *GetMaxHeight)( - IDWriteTextLayout3 *This); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)( - IDWriteTextLayout3 *This, - UINT32 pos, - IDWriteFontCollection **collection, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)( - IDWriteTextLayout3 *This, - UINT32 pos, - UINT32 *len, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)( - IDWriteTextLayout3 *This, - UINT32 position, - WCHAR *name, - UINT32 name_size, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)( - IDWriteTextLayout3 *This, - UINT32 position, - DWRITE_FONT_WEIGHT *weight, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)( - IDWriteTextLayout3 *This, - UINT32 currentPosition, - DWRITE_FONT_STYLE *style, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)( - IDWriteTextLayout3 *This, - UINT32 position, - DWRITE_FONT_STRETCH *stretch, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)( - IDWriteTextLayout3 *This, - UINT32 position, - FLOAT *size, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *GetUnderline)( - IDWriteTextLayout3 *This, - UINT32 position, - WINBOOL *has_underline, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *GetStrikethrough)( - IDWriteTextLayout3 *This, - UINT32 position, - WINBOOL *has_strikethrough, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)( - IDWriteTextLayout3 *This, - UINT32 position, - IUnknown **effect, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *GetInlineObject)( - IDWriteTextLayout3 *This, - UINT32 position, - IDWriteInlineObject **object, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *GetTypography)( - IDWriteTextLayout3 *This, - UINT32 position, - IDWriteTypography **typography, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)( - IDWriteTextLayout3 *This, - UINT32 position, - UINT32 *length, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)( - IDWriteTextLayout3 *This, - UINT32 position, - WCHAR *name, - UINT32 name_size, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *Draw)( - IDWriteTextLayout3 *This, - void *context, - IDWriteTextRenderer *renderer, - FLOAT originX, - FLOAT originY); - - HRESULT (STDMETHODCALLTYPE *GetLineMetrics)( - IDWriteTextLayout3 *This, - DWRITE_LINE_METRICS *metrics, - UINT32 max_count, - UINT32 *actual_count); - - HRESULT (STDMETHODCALLTYPE *GetMetrics)( - IDWriteTextLayout3 *This, - DWRITE_TEXT_METRICS *metrics); - - HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)( - IDWriteTextLayout3 *This, - DWRITE_OVERHANG_METRICS *overhangs); - - HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)( - IDWriteTextLayout3 *This, - DWRITE_CLUSTER_METRICS *metrics, - UINT32 max_count, - UINT32 *act_count); - - HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)( - IDWriteTextLayout3 *This, - FLOAT *min_width); - - HRESULT (STDMETHODCALLTYPE *HitTestPoint)( - IDWriteTextLayout3 *This, - FLOAT pointX, - FLOAT pointY, - WINBOOL *is_trailinghit, - WINBOOL *is_inside, - DWRITE_HIT_TEST_METRICS *metrics); - - HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)( - IDWriteTextLayout3 *This, - UINT32 textPosition, - WINBOOL is_trailinghit, - FLOAT *pointX, - FLOAT *pointY, - DWRITE_HIT_TEST_METRICS *metrics); - - HRESULT (STDMETHODCALLTYPE *HitTestTextRange)( - IDWriteTextLayout3 *This, - UINT32 textPosition, - UINT32 textLength, - FLOAT originX, - FLOAT originY, - DWRITE_HIT_TEST_METRICS *metrics, - UINT32 max_metricscount, - UINT32 *actual_metricscount); - - /*** IDWriteTextLayout1 methods ***/ - HRESULT (STDMETHODCALLTYPE *SetPairKerning)( - IDWriteTextLayout3 *This, - WINBOOL is_pairkerning_enabled, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *GetPairKerning)( - IDWriteTextLayout3 *This, - UINT32 position, - WINBOOL *is_pairkerning_enabled, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *SetCharacterSpacing)( - IDWriteTextLayout3 *This, - FLOAT leading_spacing, - FLOAT trailing_spacing, - FLOAT minimum_advance_width, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *GetCharacterSpacing)( - IDWriteTextLayout3 *This, - UINT32 position, - FLOAT *leading_spacing, - FLOAT *trailing_spacing, - FLOAT *minimum_advance_width, - DWRITE_TEXT_RANGE *range); - - /*** IDWriteTextLayout2 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout2_GetMetrics)( - IDWriteTextLayout3 *This, - DWRITE_TEXT_METRICS1 *metrics); - - HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)( - IDWriteTextLayout3 *This, - DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); - - DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)( - IDWriteTextLayout3 *This); - - HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)( - IDWriteTextLayout3 *This, - WINBOOL lastline_wrapping_enabled); - - WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)( - IDWriteTextLayout3 *This); - - HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)( - IDWriteTextLayout3 *This, - DWRITE_OPTICAL_ALIGNMENT alignment); - - DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)( - IDWriteTextLayout3 *This); - - HRESULT (STDMETHODCALLTYPE *SetFontFallback)( - IDWriteTextLayout3 *This, - IDWriteFontFallback *fallback); - - HRESULT (STDMETHODCALLTYPE *GetFontFallback)( - IDWriteTextLayout3 *This, - IDWriteFontFallback **fallback); - - /*** IDWriteTextLayout3 methods ***/ - HRESULT (STDMETHODCALLTYPE *InvalidateLayout)( - IDWriteTextLayout3 *This); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_SetLineSpacing)( - IDWriteTextLayout3 *This, - const DWRITE_LINE_SPACING *spacing); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineSpacing)( - IDWriteTextLayout3 *This, - DWRITE_LINE_SPACING *spacing); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineMetrics)( - IDWriteTextLayout3 *This, - DWRITE_LINE_METRICS1 *metrics, - UINT32 max_count, - UINT32 *count); - - END_INTERFACE + DWRITE_TEXT_ALIGNMENT(STDMETHODCALLTYPE* GetTextAlignment)( + IDWriteTextLayout3* This); + + DWRITE_PARAGRAPH_ALIGNMENT(STDMETHODCALLTYPE* GetParagraphAlignment)( + IDWriteTextLayout3* This); + + DWRITE_WORD_WRAPPING(STDMETHODCALLTYPE* GetWordWrapping)( + IDWriteTextLayout3* This); + + DWRITE_READING_DIRECTION(STDMETHODCALLTYPE* GetReadingDirection)( + IDWriteTextLayout3* This); + + DWRITE_FLOW_DIRECTION(STDMETHODCALLTYPE* GetFlowDirection)( + IDWriteTextLayout3* This); + + FLOAT(STDMETHODCALLTYPE* GetIncrementalTabStop)( + IDWriteTextLayout3* This); + + HRESULT(STDMETHODCALLTYPE* GetTrimming)( + IDWriteTextLayout3* This, + DWRITE_TRIMMING* options, + IDWriteInlineObject** trimming_sign); + + HRESULT(STDMETHODCALLTYPE* GetLineSpacing)( + IDWriteTextLayout3* This, + DWRITE_LINE_SPACING_METHOD* method, + FLOAT* spacing, + FLOAT* baseline); + + HRESULT(STDMETHODCALLTYPE* GetFontCollection)( + IDWriteTextLayout3* This, + IDWriteFontCollection** collection); + + UINT32(STDMETHODCALLTYPE* GetFontFamilyNameLength)( + IDWriteTextLayout3* This); + + HRESULT(STDMETHODCALLTYPE* GetFontFamilyName)( + IDWriteTextLayout3* This, + WCHAR* name, + UINT32 size); + + DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetFontWeight)( + IDWriteTextLayout3* This); + + DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetFontStyle)( + IDWriteTextLayout3* This); + + DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetFontStretch)( + IDWriteTextLayout3* This); + + FLOAT(STDMETHODCALLTYPE* GetFontSize)( + IDWriteTextLayout3* This); + + UINT32(STDMETHODCALLTYPE* GetLocaleNameLength)( + IDWriteTextLayout3* This); + + HRESULT(STDMETHODCALLTYPE* GetLocaleName)( + IDWriteTextLayout3* This, + WCHAR* name, + UINT32 size); + + /*** IDWriteTextLayout methods ***/ + HRESULT(STDMETHODCALLTYPE* SetMaxWidth)( + IDWriteTextLayout3* This, + FLOAT maxWidth); + + HRESULT(STDMETHODCALLTYPE* SetMaxHeight)( + IDWriteTextLayout3* This, + FLOAT maxHeight); + + HRESULT(STDMETHODCALLTYPE* SetFontCollection)( + IDWriteTextLayout3* This, + IDWriteFontCollection* collection, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetFontFamilyName)( + IDWriteTextLayout3* This, + const WCHAR* name, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetFontWeight)( + IDWriteTextLayout3* This, + DWRITE_FONT_WEIGHT weight, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetFontStyle)( + IDWriteTextLayout3* This, + DWRITE_FONT_STYLE style, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetFontStretch)( + IDWriteTextLayout3* This, + DWRITE_FONT_STRETCH stretch, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetFontSize)( + IDWriteTextLayout3* This, + FLOAT size, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetUnderline)( + IDWriteTextLayout3* This, + WINBOOL underline, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetStrikethrough)( + IDWriteTextLayout3* This, + WINBOOL strikethrough, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetDrawingEffect)( + IDWriteTextLayout3* This, + IUnknown* effect, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetInlineObject)( + IDWriteTextLayout3* This, + IDWriteInlineObject* object, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetTypography)( + IDWriteTextLayout3* This, + IDWriteTypography* typography, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetLocaleName)( + IDWriteTextLayout3* This, + const WCHAR* locale, + DWRITE_TEXT_RANGE range); + + FLOAT(STDMETHODCALLTYPE* GetMaxWidth)( + IDWriteTextLayout3* This); + + FLOAT(STDMETHODCALLTYPE* GetMaxHeight)( + IDWriteTextLayout3* This); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontCollection)( + IDWriteTextLayout3* This, + UINT32 pos, + IDWriteFontCollection** collection, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontFamilyNameLength)( + IDWriteTextLayout3* This, + UINT32 pos, + UINT32* len, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontFamilyName)( + IDWriteTextLayout3* This, + UINT32 position, + WCHAR* name, + UINT32 name_size, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontWeight)( + IDWriteTextLayout3* This, + UINT32 position, + DWRITE_FONT_WEIGHT* weight, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontStyle)( + IDWriteTextLayout3* This, + UINT32 currentPosition, + DWRITE_FONT_STYLE* style, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontStretch)( + IDWriteTextLayout3* This, + UINT32 position, + DWRITE_FONT_STRETCH* stretch, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontSize)( + IDWriteTextLayout3* This, + UINT32 position, + FLOAT* size, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* GetUnderline)( + IDWriteTextLayout3* This, + UINT32 position, + WINBOOL* has_underline, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* GetStrikethrough)( + IDWriteTextLayout3* This, + UINT32 position, + WINBOOL* has_strikethrough, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* GetDrawingEffect)( + IDWriteTextLayout3* This, + UINT32 position, + IUnknown** effect, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* GetInlineObject)( + IDWriteTextLayout3* This, + UINT32 position, + IDWriteInlineObject** object, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* GetTypography)( + IDWriteTextLayout3* This, + UINT32 position, + IDWriteTypography** typography, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetLocaleNameLength)( + IDWriteTextLayout3* This, + UINT32 position, + UINT32* length, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetLocaleName)( + IDWriteTextLayout3* This, + UINT32 position, + WCHAR* name, + UINT32 name_size, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* Draw)( + IDWriteTextLayout3* This, + void* context, + IDWriteTextRenderer* renderer, + FLOAT originX, + FLOAT originY); + + HRESULT(STDMETHODCALLTYPE* GetLineMetrics)( + IDWriteTextLayout3* This, + DWRITE_LINE_METRICS* metrics, + UINT32 max_count, + UINT32* actual_count); + + HRESULT(STDMETHODCALLTYPE* GetMetrics)( + IDWriteTextLayout3* This, + DWRITE_TEXT_METRICS* metrics); + + HRESULT(STDMETHODCALLTYPE* GetOverhangMetrics)( + IDWriteTextLayout3* This, + DWRITE_OVERHANG_METRICS* overhangs); + + HRESULT(STDMETHODCALLTYPE* GetClusterMetrics)( + IDWriteTextLayout3* This, + DWRITE_CLUSTER_METRICS* metrics, + UINT32 max_count, + UINT32* act_count); + + HRESULT(STDMETHODCALLTYPE* DetermineMinWidth)( + IDWriteTextLayout3* This, + FLOAT* min_width); + + HRESULT(STDMETHODCALLTYPE* HitTestPoint)( + IDWriteTextLayout3* This, + FLOAT pointX, + FLOAT pointY, + WINBOOL* is_trailinghit, + WINBOOL* is_inside, + DWRITE_HIT_TEST_METRICS* metrics); + + HRESULT(STDMETHODCALLTYPE* HitTestTextPosition)( + IDWriteTextLayout3* This, + UINT32 textPosition, + WINBOOL is_trailinghit, + FLOAT* pointX, + FLOAT* pointY, + DWRITE_HIT_TEST_METRICS* metrics); + + HRESULT(STDMETHODCALLTYPE* HitTestTextRange)( + IDWriteTextLayout3* This, + UINT32 textPosition, + UINT32 textLength, + FLOAT originX, + FLOAT originY, + DWRITE_HIT_TEST_METRICS* metrics, + UINT32 max_metricscount, + UINT32* actual_metricscount); + + /*** IDWriteTextLayout1 methods ***/ + HRESULT(STDMETHODCALLTYPE* SetPairKerning)( + IDWriteTextLayout3* This, + WINBOOL is_pairkerning_enabled, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* GetPairKerning)( + IDWriteTextLayout3* This, + UINT32 position, + WINBOOL* is_pairkerning_enabled, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* SetCharacterSpacing)( + IDWriteTextLayout3* This, + FLOAT leading_spacing, + FLOAT trailing_spacing, + FLOAT minimum_advance_width, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* GetCharacterSpacing)( + IDWriteTextLayout3* This, + UINT32 position, + FLOAT* leading_spacing, + FLOAT* trailing_spacing, + FLOAT* minimum_advance_width, + DWRITE_TEXT_RANGE* range); + + /*** IDWriteTextLayout2 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout2_GetMetrics)( + IDWriteTextLayout3* This, + DWRITE_TEXT_METRICS1* metrics); + + HRESULT(STDMETHODCALLTYPE* SetVerticalGlyphOrientation)( + IDWriteTextLayout3* This, + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); + + DWRITE_VERTICAL_GLYPH_ORIENTATION(STDMETHODCALLTYPE* GetVerticalGlyphOrientation)( + IDWriteTextLayout3* This); + + HRESULT(STDMETHODCALLTYPE* SetLastLineWrapping)( + IDWriteTextLayout3* This, + WINBOOL lastline_wrapping_enabled); + + WINBOOL(STDMETHODCALLTYPE* GetLastLineWrapping)( + IDWriteTextLayout3* This); + + HRESULT(STDMETHODCALLTYPE* SetOpticalAlignment)( + IDWriteTextLayout3* This, + DWRITE_OPTICAL_ALIGNMENT alignment); + + DWRITE_OPTICAL_ALIGNMENT(STDMETHODCALLTYPE* GetOpticalAlignment)( + IDWriteTextLayout3* This); + + HRESULT(STDMETHODCALLTYPE* SetFontFallback)( + IDWriteTextLayout3* This, + IDWriteFontFallback* fallback); + + HRESULT(STDMETHODCALLTYPE* GetFontFallback)( + IDWriteTextLayout3* This, + IDWriteFontFallback** fallback); + + /*** IDWriteTextLayout3 methods ***/ + HRESULT(STDMETHODCALLTYPE* InvalidateLayout)( + IDWriteTextLayout3* This); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout3_SetLineSpacing)( + IDWriteTextLayout3* This, + const DWRITE_LINE_SPACING* spacing); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout3_GetLineSpacing)( + IDWriteTextLayout3* This, + DWRITE_LINE_SPACING* spacing); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout3_GetLineMetrics)( + IDWriteTextLayout3* This, + DWRITE_LINE_METRICS1* metrics, + UINT32 max_count, + UINT32* count); + + END_INTERFACE } IDWriteTextLayout3Vtbl; interface IDWriteTextLayout3 { - CONST_VTBL IDWriteTextLayout3Vtbl* lpVtbl; + CONST_VTBL IDWriteTextLayout3Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteTextLayout3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextLayout3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteTextLayout3_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteTextLayout3_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteTextFormat methods ***/ -#define IDWriteTextLayout3_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) -#define IDWriteTextLayout3_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) -#define IDWriteTextLayout3_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) -#define IDWriteTextLayout3_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) -#define IDWriteTextLayout3_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) -#define IDWriteTextLayout3_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) -#define IDWriteTextLayout3_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) +#define IDWriteTextLayout3_SetTextAlignment(This, alignment) (This)->lpVtbl->SetTextAlignment(This, alignment) +#define IDWriteTextLayout3_SetParagraphAlignment(This, alignment) (This)->lpVtbl->SetParagraphAlignment(This, alignment) +#define IDWriteTextLayout3_SetWordWrapping(This, wrapping) (This)->lpVtbl->SetWordWrapping(This, wrapping) +#define IDWriteTextLayout3_SetReadingDirection(This, direction) (This)->lpVtbl->SetReadingDirection(This, direction) +#define IDWriteTextLayout3_SetFlowDirection(This, direction) (This)->lpVtbl->SetFlowDirection(This, direction) +#define IDWriteTextLayout3_SetIncrementalTabStop(This, tabstop) (This)->lpVtbl->SetIncrementalTabStop(This, tabstop) +#define IDWriteTextLayout3_SetTrimming(This, trimming, trimming_sign) (This)->lpVtbl->SetTrimming(This, trimming, trimming_sign) #define IDWriteTextLayout3_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) #define IDWriteTextLayout3_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) #define IDWriteTextLayout3_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) #define IDWriteTextLayout3_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) #define IDWriteTextLayout3_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) #define IDWriteTextLayout3_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) -#define IDWriteTextLayout3_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) +#define IDWriteTextLayout3_GetTrimming(This, options, trimming_sign) (This)->lpVtbl->GetTrimming(This, options, trimming_sign) /*** IDWriteTextLayout methods ***/ -#define IDWriteTextLayout3_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth) -#define IDWriteTextLayout3_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight) -#define IDWriteTextLayout3_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range) -#define IDWriteTextLayout3_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range) -#define IDWriteTextLayout3_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range) -#define IDWriteTextLayout3_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range) -#define IDWriteTextLayout3_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range) -#define IDWriteTextLayout3_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range) -#define IDWriteTextLayout3_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range) -#define IDWriteTextLayout3_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range) -#define IDWriteTextLayout3_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range) -#define IDWriteTextLayout3_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range) -#define IDWriteTextLayout3_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range) -#define IDWriteTextLayout3_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range) +#define IDWriteTextLayout3_SetMaxWidth(This, maxWidth) (This)->lpVtbl->SetMaxWidth(This, maxWidth) +#define IDWriteTextLayout3_SetMaxHeight(This, maxHeight) (This)->lpVtbl->SetMaxHeight(This, maxHeight) +#define IDWriteTextLayout3_SetFontCollection(This, collection, range) (This)->lpVtbl->SetFontCollection(This, collection, range) +#define IDWriteTextLayout3_SetFontFamilyName(This, name, range) (This)->lpVtbl->SetFontFamilyName(This, name, range) +#define IDWriteTextLayout3_SetFontWeight(This, weight, range) (This)->lpVtbl->SetFontWeight(This, weight, range) +#define IDWriteTextLayout3_SetFontStyle(This, style, range) (This)->lpVtbl->SetFontStyle(This, style, range) +#define IDWriteTextLayout3_SetFontStretch(This, stretch, range) (This)->lpVtbl->SetFontStretch(This, stretch, range) +#define IDWriteTextLayout3_SetFontSize(This, size, range) (This)->lpVtbl->SetFontSize(This, size, range) +#define IDWriteTextLayout3_SetUnderline(This, underline, range) (This)->lpVtbl->SetUnderline(This, underline, range) +#define IDWriteTextLayout3_SetStrikethrough(This, strikethrough, range) (This)->lpVtbl->SetStrikethrough(This, strikethrough, range) +#define IDWriteTextLayout3_SetDrawingEffect(This, effect, range) (This)->lpVtbl->SetDrawingEffect(This, effect, range) +#define IDWriteTextLayout3_SetInlineObject(This, object, range) (This)->lpVtbl->SetInlineObject(This, object, range) +#define IDWriteTextLayout3_SetTypography(This, typography, range) (This)->lpVtbl->SetTypography(This, typography, range) +#define IDWriteTextLayout3_SetLocaleName(This, locale, range) (This)->lpVtbl->SetLocaleName(This, locale, range) #define IDWriteTextLayout3_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This) #define IDWriteTextLayout3_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This) -#define IDWriteTextLayout3_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range) -#define IDWriteTextLayout3_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range) -#define IDWriteTextLayout3_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range) -#define IDWriteTextLayout3_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range) -#define IDWriteTextLayout3_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range) -#define IDWriteTextLayout3_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range) -#define IDWriteTextLayout3_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range) -#define IDWriteTextLayout3_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range) -#define IDWriteTextLayout3_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range) -#define IDWriteTextLayout3_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range) -#define IDWriteTextLayout3_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range) -#define IDWriteTextLayout3_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range) -#define IDWriteTextLayout3_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range) -#define IDWriteTextLayout3_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range) -#define IDWriteTextLayout3_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY) -#define IDWriteTextLayout3_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs) -#define IDWriteTextLayout3_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count) -#define IDWriteTextLayout3_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width) -#define IDWriteTextLayout3_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) -#define IDWriteTextLayout3_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) -#define IDWriteTextLayout3_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) +#define IDWriteTextLayout3_GetFontCollection(This, pos, collection, range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This, pos, collection, range) +#define IDWriteTextLayout3_GetFontFamilyNameLength(This, pos, len, range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This, pos, len, range) +#define IDWriteTextLayout3_GetFontFamilyName(This, position, name, name_size, range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This, position, name, name_size, range) +#define IDWriteTextLayout3_GetFontWeight(This, position, weight, range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This, position, weight, range) +#define IDWriteTextLayout3_GetFontStyle(This, currentPosition, style, range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This, currentPosition, style, range) +#define IDWriteTextLayout3_GetFontStretch(This, position, stretch, range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This, position, stretch, range) +#define IDWriteTextLayout3_GetFontSize(This, position, size, range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This, position, size, range) +#define IDWriteTextLayout3_GetUnderline(This, position, has_underline, range) (This)->lpVtbl->GetUnderline(This, position, has_underline, range) +#define IDWriteTextLayout3_GetStrikethrough(This, position, has_strikethrough, range) (This)->lpVtbl->GetStrikethrough(This, position, has_strikethrough, range) +#define IDWriteTextLayout3_GetDrawingEffect(This, position, effect, range) (This)->lpVtbl->GetDrawingEffect(This, position, effect, range) +#define IDWriteTextLayout3_GetInlineObject(This, position, object, range) (This)->lpVtbl->GetInlineObject(This, position, object, range) +#define IDWriteTextLayout3_GetTypography(This, position, typography, range) (This)->lpVtbl->GetTypography(This, position, typography, range) +#define IDWriteTextLayout3_GetLocaleNameLength(This, position, length, range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This, position, length, range) +#define IDWriteTextLayout3_GetLocaleName(This, position, name, name_size, range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This, position, name, name_size, range) +#define IDWriteTextLayout3_Draw(This, context, renderer, originX, originY) (This)->lpVtbl->Draw(This, context, renderer, originX, originY) +#define IDWriteTextLayout3_GetOverhangMetrics(This, overhangs) (This)->lpVtbl->GetOverhangMetrics(This, overhangs) +#define IDWriteTextLayout3_GetClusterMetrics(This, metrics, max_count, act_count) (This)->lpVtbl->GetClusterMetrics(This, metrics, max_count, act_count) +#define IDWriteTextLayout3_DetermineMinWidth(This, min_width) (This)->lpVtbl->DetermineMinWidth(This, min_width) +#define IDWriteTextLayout3_HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics) (This)->lpVtbl->HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics) +#define IDWriteTextLayout3_HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics) (This)->lpVtbl->HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics) +#define IDWriteTextLayout3_HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount) (This)->lpVtbl->HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount) /*** IDWriteTextLayout1 methods ***/ -#define IDWriteTextLayout3_SetPairKerning(This,is_pairkerning_enabled,range) (This)->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range) -#define IDWriteTextLayout3_GetPairKerning(This,position,is_pairkerning_enabled,range) (This)->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range) -#define IDWriteTextLayout3_SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) -#define IDWriteTextLayout3_GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) +#define IDWriteTextLayout3_SetPairKerning(This, is_pairkerning_enabled, range) (This)->lpVtbl->SetPairKerning(This, is_pairkerning_enabled, range) +#define IDWriteTextLayout3_GetPairKerning(This, position, is_pairkerning_enabled, range) (This)->lpVtbl->GetPairKerning(This, position, is_pairkerning_enabled, range) +#define IDWriteTextLayout3_SetCharacterSpacing(This, leading_spacing, trailing_spacing, minimum_advance_width, range) (This)->lpVtbl->SetCharacterSpacing(This, leading_spacing, trailing_spacing, minimum_advance_width, range) +#define IDWriteTextLayout3_GetCharacterSpacing(This, position, leading_spacing, trailing_spacing, minimum_advance_width, range) (This)->lpVtbl->GetCharacterSpacing(This, position, leading_spacing, trailing_spacing, minimum_advance_width, range) /*** IDWriteTextLayout2 methods ***/ -#define IDWriteTextLayout3_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics) -#define IDWriteTextLayout3_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation) +#define IDWriteTextLayout3_GetMetrics(This, metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This, metrics) +#define IDWriteTextLayout3_SetVerticalGlyphOrientation(This, orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This, orientation) #define IDWriteTextLayout3_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) -#define IDWriteTextLayout3_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled) +#define IDWriteTextLayout3_SetLastLineWrapping(This, lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled) #define IDWriteTextLayout3_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) -#define IDWriteTextLayout3_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment) +#define IDWriteTextLayout3_SetOpticalAlignment(This, alignment) (This)->lpVtbl->SetOpticalAlignment(This, alignment) #define IDWriteTextLayout3_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) -#define IDWriteTextLayout3_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback) -#define IDWriteTextLayout3_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback) +#define IDWriteTextLayout3_SetFontFallback(This, fallback) (This)->lpVtbl->SetFontFallback(This, fallback) +#define IDWriteTextLayout3_GetFontFallback(This, fallback) (This)->lpVtbl->GetFontFallback(This, fallback) /*** IDWriteTextLayout3 methods ***/ #define IDWriteTextLayout3_InvalidateLayout(This) (This)->lpVtbl->InvalidateLayout(This) -#define IDWriteTextLayout3_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing) -#define IDWriteTextLayout3_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing) -#define IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count) (This)->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count) +#define IDWriteTextLayout3_SetLineSpacing(This, spacing) (This)->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This, spacing) +#define IDWriteTextLayout3_GetLineSpacing(This, spacing) (This)->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This, spacing) +#define IDWriteTextLayout3_GetLineMetrics(This, metrics, max_count, count) (This)->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This, metrics, max_count, count) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteTextLayout3_QueryInterface(IDWriteTextLayout3* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteTextLayout3_QueryInterface(IDWriteTextLayout3* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteTextLayout3_AddRef(IDWriteTextLayout3* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteTextLayout3_Release(IDWriteTextLayout3* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteTextFormat methods ***/ -static inline HRESULT IDWriteTextLayout3_SetTextAlignment(IDWriteTextLayout3* This,DWRITE_TEXT_ALIGNMENT alignment) { - return This->lpVtbl->SetTextAlignment(This,alignment); +static inline HRESULT IDWriteTextLayout3_SetTextAlignment(IDWriteTextLayout3* This, DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This, alignment); } -static inline HRESULT IDWriteTextLayout3_SetParagraphAlignment(IDWriteTextLayout3* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { - return This->lpVtbl->SetParagraphAlignment(This,alignment); +static inline HRESULT IDWriteTextLayout3_SetParagraphAlignment(IDWriteTextLayout3* This, DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This, alignment); } -static inline HRESULT IDWriteTextLayout3_SetWordWrapping(IDWriteTextLayout3* This,DWRITE_WORD_WRAPPING wrapping) { - return This->lpVtbl->SetWordWrapping(This,wrapping); +static inline HRESULT IDWriteTextLayout3_SetWordWrapping(IDWriteTextLayout3* This, DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This, wrapping); } -static inline HRESULT IDWriteTextLayout3_SetReadingDirection(IDWriteTextLayout3* This,DWRITE_READING_DIRECTION direction) { - return This->lpVtbl->SetReadingDirection(This,direction); +static inline HRESULT IDWriteTextLayout3_SetReadingDirection(IDWriteTextLayout3* This, DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This, direction); } -static inline HRESULT IDWriteTextLayout3_SetFlowDirection(IDWriteTextLayout3* This,DWRITE_FLOW_DIRECTION direction) { - return This->lpVtbl->SetFlowDirection(This,direction); +static inline HRESULT IDWriteTextLayout3_SetFlowDirection(IDWriteTextLayout3* This, DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This, direction); } -static inline HRESULT IDWriteTextLayout3_SetIncrementalTabStop(IDWriteTextLayout3* This,FLOAT tabstop) { - return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +static inline HRESULT IDWriteTextLayout3_SetIncrementalTabStop(IDWriteTextLayout3* This, FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This, tabstop); } -static inline HRESULT IDWriteTextLayout3_SetTrimming(IDWriteTextLayout3* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { - return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +static inline HRESULT IDWriteTextLayout3_SetTrimming(IDWriteTextLayout3* This, const DWRITE_TRIMMING* trimming, IDWriteInlineObject* trimming_sign) { + return This->lpVtbl->SetTrimming(This, trimming, trimming_sign); } static inline DWRITE_TEXT_ALIGNMENT IDWriteTextLayout3_GetTextAlignment(IDWriteTextLayout3* This) { - return This->lpVtbl->GetTextAlignment(This); + return This->lpVtbl->GetTextAlignment(This); } static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout3_GetParagraphAlignment(IDWriteTextLayout3* This) { - return This->lpVtbl->GetParagraphAlignment(This); + return This->lpVtbl->GetParagraphAlignment(This); } static inline DWRITE_WORD_WRAPPING IDWriteTextLayout3_GetWordWrapping(IDWriteTextLayout3* This) { - return This->lpVtbl->GetWordWrapping(This); + return This->lpVtbl->GetWordWrapping(This); } static inline DWRITE_READING_DIRECTION IDWriteTextLayout3_GetReadingDirection(IDWriteTextLayout3* This) { - return This->lpVtbl->GetReadingDirection(This); + return This->lpVtbl->GetReadingDirection(This); } static inline DWRITE_FLOW_DIRECTION IDWriteTextLayout3_GetFlowDirection(IDWriteTextLayout3* This) { - return This->lpVtbl->GetFlowDirection(This); + return This->lpVtbl->GetFlowDirection(This); } static inline FLOAT IDWriteTextLayout3_GetIncrementalTabStop(IDWriteTextLayout3* This) { - return This->lpVtbl->GetIncrementalTabStop(This); + return This->lpVtbl->GetIncrementalTabStop(This); } -static inline HRESULT IDWriteTextLayout3_GetTrimming(IDWriteTextLayout3* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { - return This->lpVtbl->GetTrimming(This,options,trimming_sign); +static inline HRESULT IDWriteTextLayout3_GetTrimming(IDWriteTextLayout3* This, DWRITE_TRIMMING* options, IDWriteInlineObject** trimming_sign) { + return This->lpVtbl->GetTrimming(This, options, trimming_sign); } /*** IDWriteTextLayout methods ***/ -static inline HRESULT IDWriteTextLayout3_SetMaxWidth(IDWriteTextLayout3* This,FLOAT maxWidth) { - return This->lpVtbl->SetMaxWidth(This,maxWidth); +static inline HRESULT IDWriteTextLayout3_SetMaxWidth(IDWriteTextLayout3* This, FLOAT maxWidth) { + return This->lpVtbl->SetMaxWidth(This, maxWidth); } -static inline HRESULT IDWriteTextLayout3_SetMaxHeight(IDWriteTextLayout3* This,FLOAT maxHeight) { - return This->lpVtbl->SetMaxHeight(This,maxHeight); +static inline HRESULT IDWriteTextLayout3_SetMaxHeight(IDWriteTextLayout3* This, FLOAT maxHeight) { + return This->lpVtbl->SetMaxHeight(This, maxHeight); } -static inline HRESULT IDWriteTextLayout3_SetFontCollection(IDWriteTextLayout3* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontCollection(This,collection,range); +static inline HRESULT IDWriteTextLayout3_SetFontCollection(IDWriteTextLayout3* This, IDWriteFontCollection* collection, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontCollection(This, collection, range); } -static inline HRESULT IDWriteTextLayout3_SetFontFamilyName(IDWriteTextLayout3* This,const WCHAR *name,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontFamilyName(This,name,range); +static inline HRESULT IDWriteTextLayout3_SetFontFamilyName(IDWriteTextLayout3* This, const WCHAR* name, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontFamilyName(This, name, range); } -static inline HRESULT IDWriteTextLayout3_SetFontWeight(IDWriteTextLayout3* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontWeight(This,weight,range); +static inline HRESULT IDWriteTextLayout3_SetFontWeight(IDWriteTextLayout3* This, DWRITE_FONT_WEIGHT weight, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontWeight(This, weight, range); } -static inline HRESULT IDWriteTextLayout3_SetFontStyle(IDWriteTextLayout3* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontStyle(This,style,range); +static inline HRESULT IDWriteTextLayout3_SetFontStyle(IDWriteTextLayout3* This, DWRITE_FONT_STYLE style, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStyle(This, style, range); } -static inline HRESULT IDWriteTextLayout3_SetFontStretch(IDWriteTextLayout3* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontStretch(This,stretch,range); +static inline HRESULT IDWriteTextLayout3_SetFontStretch(IDWriteTextLayout3* This, DWRITE_FONT_STRETCH stretch, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStretch(This, stretch, range); } -static inline HRESULT IDWriteTextLayout3_SetFontSize(IDWriteTextLayout3* This,FLOAT size,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontSize(This,size,range); +static inline HRESULT IDWriteTextLayout3_SetFontSize(IDWriteTextLayout3* This, FLOAT size, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontSize(This, size, range); } -static inline HRESULT IDWriteTextLayout3_SetUnderline(IDWriteTextLayout3* This,WINBOOL underline,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetUnderline(This,underline,range); +static inline HRESULT IDWriteTextLayout3_SetUnderline(IDWriteTextLayout3* This, WINBOOL underline, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetUnderline(This, underline, range); } -static inline HRESULT IDWriteTextLayout3_SetStrikethrough(IDWriteTextLayout3* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetStrikethrough(This,strikethrough,range); +static inline HRESULT IDWriteTextLayout3_SetStrikethrough(IDWriteTextLayout3* This, WINBOOL strikethrough, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetStrikethrough(This, strikethrough, range); } -static inline HRESULT IDWriteTextLayout3_SetDrawingEffect(IDWriteTextLayout3* This,IUnknown *effect,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetDrawingEffect(This,effect,range); +static inline HRESULT IDWriteTextLayout3_SetDrawingEffect(IDWriteTextLayout3* This, IUnknown* effect, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetDrawingEffect(This, effect, range); } -static inline HRESULT IDWriteTextLayout3_SetInlineObject(IDWriteTextLayout3* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetInlineObject(This,object,range); +static inline HRESULT IDWriteTextLayout3_SetInlineObject(IDWriteTextLayout3* This, IDWriteInlineObject* object, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetInlineObject(This, object, range); } -static inline HRESULT IDWriteTextLayout3_SetTypography(IDWriteTextLayout3* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetTypography(This,typography,range); +static inline HRESULT IDWriteTextLayout3_SetTypography(IDWriteTextLayout3* This, IDWriteTypography* typography, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetTypography(This, typography, range); } -static inline HRESULT IDWriteTextLayout3_SetLocaleName(IDWriteTextLayout3* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetLocaleName(This,locale,range); +static inline HRESULT IDWriteTextLayout3_SetLocaleName(IDWriteTextLayout3* This, const WCHAR* locale, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetLocaleName(This, locale, range); } static inline FLOAT IDWriteTextLayout3_GetMaxWidth(IDWriteTextLayout3* This) { - return This->lpVtbl->GetMaxWidth(This); + return This->lpVtbl->GetMaxWidth(This); } static inline FLOAT IDWriteTextLayout3_GetMaxHeight(IDWriteTextLayout3* This) { - return This->lpVtbl->GetMaxHeight(This); + return This->lpVtbl->GetMaxHeight(This); } -static inline HRESULT IDWriteTextLayout3_GetFontCollection(IDWriteTextLayout3* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range); +static inline HRESULT IDWriteTextLayout3_GetFontCollection(IDWriteTextLayout3* This, UINT32 pos, IDWriteFontCollection** collection, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This, pos, collection, range); } -static inline HRESULT IDWriteTextLayout3_GetFontFamilyNameLength(IDWriteTextLayout3* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range); +static inline HRESULT IDWriteTextLayout3_GetFontFamilyNameLength(IDWriteTextLayout3* This, UINT32 pos, UINT32* len, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This, pos, len, range); } -static inline HRESULT IDWriteTextLayout3_GetFontFamilyName(IDWriteTextLayout3* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range); +static inline HRESULT IDWriteTextLayout3_GetFontFamilyName(IDWriteTextLayout3* This, UINT32 position, WCHAR* name, UINT32 name_size, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This, position, name, name_size, range); } -static inline HRESULT IDWriteTextLayout3_GetFontWeight(IDWriteTextLayout3* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range); +static inline HRESULT IDWriteTextLayout3_GetFontWeight(IDWriteTextLayout3* This, UINT32 position, DWRITE_FONT_WEIGHT* weight, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This, position, weight, range); } -static inline HRESULT IDWriteTextLayout3_GetFontStyle(IDWriteTextLayout3* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range); +static inline HRESULT IDWriteTextLayout3_GetFontStyle(IDWriteTextLayout3* This, UINT32 currentPosition, DWRITE_FONT_STYLE* style, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This, currentPosition, style, range); } -static inline HRESULT IDWriteTextLayout3_GetFontStretch(IDWriteTextLayout3* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range); +static inline HRESULT IDWriteTextLayout3_GetFontStretch(IDWriteTextLayout3* This, UINT32 position, DWRITE_FONT_STRETCH* stretch, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This, position, stretch, range); } -static inline HRESULT IDWriteTextLayout3_GetFontSize(IDWriteTextLayout3* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range); +static inline HRESULT IDWriteTextLayout3_GetFontSize(IDWriteTextLayout3* This, UINT32 position, FLOAT* size, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontSize(This, position, size, range); } -static inline HRESULT IDWriteTextLayout3_GetUnderline(IDWriteTextLayout3* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetUnderline(This,position,has_underline,range); +static inline HRESULT IDWriteTextLayout3_GetUnderline(IDWriteTextLayout3* This, UINT32 position, WINBOOL* has_underline, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetUnderline(This, position, has_underline, range); } -static inline HRESULT IDWriteTextLayout3_GetStrikethrough(IDWriteTextLayout3* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range); +static inline HRESULT IDWriteTextLayout3_GetStrikethrough(IDWriteTextLayout3* This, UINT32 position, WINBOOL* has_strikethrough, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetStrikethrough(This, position, has_strikethrough, range); } -static inline HRESULT IDWriteTextLayout3_GetDrawingEffect(IDWriteTextLayout3* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetDrawingEffect(This,position,effect,range); +static inline HRESULT IDWriteTextLayout3_GetDrawingEffect(IDWriteTextLayout3* This, UINT32 position, IUnknown** effect, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetDrawingEffect(This, position, effect, range); } -static inline HRESULT IDWriteTextLayout3_GetInlineObject(IDWriteTextLayout3* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetInlineObject(This,position,object,range); +static inline HRESULT IDWriteTextLayout3_GetInlineObject(IDWriteTextLayout3* This, UINT32 position, IDWriteInlineObject** object, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetInlineObject(This, position, object, range); } -static inline HRESULT IDWriteTextLayout3_GetTypography(IDWriteTextLayout3* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetTypography(This,position,typography,range); +static inline HRESULT IDWriteTextLayout3_GetTypography(IDWriteTextLayout3* This, UINT32 position, IDWriteTypography** typography, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetTypography(This, position, typography, range); } -static inline HRESULT IDWriteTextLayout3_GetLocaleNameLength(IDWriteTextLayout3* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range); +static inline HRESULT IDWriteTextLayout3_GetLocaleNameLength(IDWriteTextLayout3* This, UINT32 position, UINT32* length, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This, position, length, range); } -static inline HRESULT IDWriteTextLayout3_GetLocaleName(IDWriteTextLayout3* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range); +static inline HRESULT IDWriteTextLayout3_GetLocaleName(IDWriteTextLayout3* This, UINT32 position, WCHAR* name, UINT32 name_size, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This, position, name, name_size, range); } -static inline HRESULT IDWriteTextLayout3_Draw(IDWriteTextLayout3* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) { - return This->lpVtbl->Draw(This,context,renderer,originX,originY); +static inline HRESULT IDWriteTextLayout3_Draw(IDWriteTextLayout3* This, void* context, IDWriteTextRenderer* renderer, FLOAT originX, FLOAT originY) { + return This->lpVtbl->Draw(This, context, renderer, originX, originY); } -static inline HRESULT IDWriteTextLayout3_GetOverhangMetrics(IDWriteTextLayout3* This,DWRITE_OVERHANG_METRICS *overhangs) { - return This->lpVtbl->GetOverhangMetrics(This,overhangs); +static inline HRESULT IDWriteTextLayout3_GetOverhangMetrics(IDWriteTextLayout3* This, DWRITE_OVERHANG_METRICS* overhangs) { + return This->lpVtbl->GetOverhangMetrics(This, overhangs); } -static inline HRESULT IDWriteTextLayout3_GetClusterMetrics(IDWriteTextLayout3* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) { - return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count); +static inline HRESULT IDWriteTextLayout3_GetClusterMetrics(IDWriteTextLayout3* This, DWRITE_CLUSTER_METRICS* metrics, UINT32 max_count, UINT32* act_count) { + return This->lpVtbl->GetClusterMetrics(This, metrics, max_count, act_count); } -static inline HRESULT IDWriteTextLayout3_DetermineMinWidth(IDWriteTextLayout3* This,FLOAT *min_width) { - return This->lpVtbl->DetermineMinWidth(This,min_width); +static inline HRESULT IDWriteTextLayout3_DetermineMinWidth(IDWriteTextLayout3* This, FLOAT* min_width) { + return This->lpVtbl->DetermineMinWidth(This, min_width); } -static inline HRESULT IDWriteTextLayout3_HitTestPoint(IDWriteTextLayout3* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) { - return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics); +static inline HRESULT IDWriteTextLayout3_HitTestPoint(IDWriteTextLayout3* This, FLOAT pointX, FLOAT pointY, WINBOOL* is_trailinghit, WINBOOL* is_inside, DWRITE_HIT_TEST_METRICS* metrics) { + return This->lpVtbl->HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics); } -static inline HRESULT IDWriteTextLayout3_HitTestTextPosition(IDWriteTextLayout3* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) { - return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics); +static inline HRESULT IDWriteTextLayout3_HitTestTextPosition(IDWriteTextLayout3* This, UINT32 textPosition, WINBOOL is_trailinghit, FLOAT* pointX, FLOAT* pointY, DWRITE_HIT_TEST_METRICS* metrics) { + return This->lpVtbl->HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics); } -static inline HRESULT IDWriteTextLayout3_HitTestTextRange(IDWriteTextLayout3* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) { - return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount); +static inline HRESULT IDWriteTextLayout3_HitTestTextRange(IDWriteTextLayout3* This, UINT32 textPosition, UINT32 textLength, FLOAT originX, FLOAT originY, DWRITE_HIT_TEST_METRICS* metrics, UINT32 max_metricscount, UINT32* actual_metricscount) { + return This->lpVtbl->HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount); } /*** IDWriteTextLayout1 methods ***/ -static inline HRESULT IDWriteTextLayout3_SetPairKerning(IDWriteTextLayout3* This,WINBOOL is_pairkerning_enabled,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range); +static inline HRESULT IDWriteTextLayout3_SetPairKerning(IDWriteTextLayout3* This, WINBOOL is_pairkerning_enabled, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetPairKerning(This, is_pairkerning_enabled, range); } -static inline HRESULT IDWriteTextLayout3_GetPairKerning(IDWriteTextLayout3* This,UINT32 position,WINBOOL *is_pairkerning_enabled,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range); +static inline HRESULT IDWriteTextLayout3_GetPairKerning(IDWriteTextLayout3* This, UINT32 position, WINBOOL* is_pairkerning_enabled, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetPairKerning(This, position, is_pairkerning_enabled, range); } -static inline HRESULT IDWriteTextLayout3_SetCharacterSpacing(IDWriteTextLayout3* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT minimum_advance_width,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range); +static inline HRESULT IDWriteTextLayout3_SetCharacterSpacing(IDWriteTextLayout3* This, FLOAT leading_spacing, FLOAT trailing_spacing, FLOAT minimum_advance_width, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetCharacterSpacing(This, leading_spacing, trailing_spacing, minimum_advance_width, range); } -static inline HRESULT IDWriteTextLayout3_GetCharacterSpacing(IDWriteTextLayout3* This,UINT32 position,FLOAT *leading_spacing,FLOAT *trailing_spacing,FLOAT *minimum_advance_width,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range); +static inline HRESULT IDWriteTextLayout3_GetCharacterSpacing(IDWriteTextLayout3* This, UINT32 position, FLOAT* leading_spacing, FLOAT* trailing_spacing, FLOAT* minimum_advance_width, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetCharacterSpacing(This, position, leading_spacing, trailing_spacing, minimum_advance_width, range); } /*** IDWriteTextLayout2 methods ***/ -static inline HRESULT IDWriteTextLayout3_GetMetrics(IDWriteTextLayout3* This,DWRITE_TEXT_METRICS1 *metrics) { - return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics); +static inline HRESULT IDWriteTextLayout3_GetMetrics(IDWriteTextLayout3* This, DWRITE_TEXT_METRICS1* metrics) { + return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This, metrics); } -static inline HRESULT IDWriteTextLayout3_SetVerticalGlyphOrientation(IDWriteTextLayout3* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { - return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation); +static inline HRESULT IDWriteTextLayout3_SetVerticalGlyphOrientation(IDWriteTextLayout3* This, DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { + return This->lpVtbl->SetVerticalGlyphOrientation(This, orientation); } static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextLayout3_GetVerticalGlyphOrientation(IDWriteTextLayout3* This) { - return This->lpVtbl->GetVerticalGlyphOrientation(This); + return This->lpVtbl->GetVerticalGlyphOrientation(This); } -static inline HRESULT IDWriteTextLayout3_SetLastLineWrapping(IDWriteTextLayout3* This,WINBOOL lastline_wrapping_enabled) { - return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled); +static inline HRESULT IDWriteTextLayout3_SetLastLineWrapping(IDWriteTextLayout3* This, WINBOOL lastline_wrapping_enabled) { + return This->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled); } static inline WINBOOL IDWriteTextLayout3_GetLastLineWrapping(IDWriteTextLayout3* This) { - return This->lpVtbl->GetLastLineWrapping(This); + return This->lpVtbl->GetLastLineWrapping(This); } -static inline HRESULT IDWriteTextLayout3_SetOpticalAlignment(IDWriteTextLayout3* This,DWRITE_OPTICAL_ALIGNMENT alignment) { - return This->lpVtbl->SetOpticalAlignment(This,alignment); +static inline HRESULT IDWriteTextLayout3_SetOpticalAlignment(IDWriteTextLayout3* This, DWRITE_OPTICAL_ALIGNMENT alignment) { + return This->lpVtbl->SetOpticalAlignment(This, alignment); } static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextLayout3_GetOpticalAlignment(IDWriteTextLayout3* This) { - return This->lpVtbl->GetOpticalAlignment(This); + return This->lpVtbl->GetOpticalAlignment(This); } -static inline HRESULT IDWriteTextLayout3_SetFontFallback(IDWriteTextLayout3* This,IDWriteFontFallback *fallback) { - return This->lpVtbl->SetFontFallback(This,fallback); +static inline HRESULT IDWriteTextLayout3_SetFontFallback(IDWriteTextLayout3* This, IDWriteFontFallback* fallback) { + return This->lpVtbl->SetFontFallback(This, fallback); } -static inline HRESULT IDWriteTextLayout3_GetFontFallback(IDWriteTextLayout3* This,IDWriteFontFallback **fallback) { - return This->lpVtbl->GetFontFallback(This,fallback); +static inline HRESULT IDWriteTextLayout3_GetFontFallback(IDWriteTextLayout3* This, IDWriteFontFallback** fallback) { + return This->lpVtbl->GetFontFallback(This, fallback); } /*** IDWriteTextLayout3 methods ***/ static inline HRESULT IDWriteTextLayout3_InvalidateLayout(IDWriteTextLayout3* This) { - return This->lpVtbl->InvalidateLayout(This); + return This->lpVtbl->InvalidateLayout(This); } -static inline HRESULT IDWriteTextLayout3_SetLineSpacing(IDWriteTextLayout3* This,const DWRITE_LINE_SPACING *spacing) { - return This->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing); +static inline HRESULT IDWriteTextLayout3_SetLineSpacing(IDWriteTextLayout3* This, const DWRITE_LINE_SPACING* spacing) { + return This->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This, spacing); } -static inline HRESULT IDWriteTextLayout3_GetLineSpacing(IDWriteTextLayout3* This,DWRITE_LINE_SPACING *spacing) { - return This->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing); +static inline HRESULT IDWriteTextLayout3_GetLineSpacing(IDWriteTextLayout3* This, DWRITE_LINE_SPACING* spacing) { + return This->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This, spacing); } -static inline HRESULT IDWriteTextLayout3_GetLineMetrics(IDWriteTextLayout3* This,DWRITE_LINE_METRICS1 *metrics,UINT32 max_count,UINT32 *count) { - return This->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count); +static inline HRESULT IDWriteTextLayout3_GetLineMetrics(IDWriteTextLayout3* This, DWRITE_LINE_METRICS1* metrics, UINT32 max_count, UINT32* count) { + return This->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This, metrics, max_count, count); } #endif #endif #endif - -#endif /* __IDWriteTextLayout3_INTERFACE_DEFINED__ */ +#endif /* __IDWriteTextLayout3_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteTextLayout4 interface @@ -6735,805 +6637,801 @@ static inline HRESULT IDWriteTextLayout3_GetLineMetrics(IDWriteTextLayout3* This #ifndef __IDWriteTextLayout4_INTERFACE_DEFINED__ #define __IDWriteTextLayout4_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteTextLayout4, 0x05a9bf42, 0x223f, 0x4441, 0xb5,0xfb, 0x82,0x63,0x68,0x5f,0x55,0xe9); +DEFINE_GUID(IID_IDWriteTextLayout4, 0x05a9bf42, 0x223f, 0x4441, 0xb5, 0xfb, 0x82, 0x63, 0x68, 0x5f, 0x55, 0xe9); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("05a9bf42-223f-4441-b5fb-8263685f55e9") -IDWriteTextLayout4 : public IDWriteTextLayout3 -{ - virtual HRESULT STDMETHODCALLTYPE SetFontAxisValues( - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values, - DWRITE_TEXT_RANGE range) = 0; +IDWriteTextLayout4 : public IDWriteTextLayout3 { + virtual HRESULT STDMETHODCALLTYPE SetFontAxisValues( + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values, + DWRITE_TEXT_RANGE range) = 0; - virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount( - UINT32 pos) = 0; + virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount( + UINT32 pos) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues( - UINT32 pos, - DWRITE_FONT_AXIS_VALUE *values, - UINT32 num_values, - DWRITE_TEXT_RANGE *range) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues( + UINT32 pos, + DWRITE_FONT_AXIS_VALUE * values, + UINT32 num_values, + DWRITE_TEXT_RANGE * range) = 0; - virtual DWRITE_AUTOMATIC_FONT_AXES STDMETHODCALLTYPE GetAutomaticFontAxes( - ) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetAutomaticFontAxes( - DWRITE_AUTOMATIC_FONT_AXES axes) = 0; + virtual DWRITE_AUTOMATIC_FONT_AXES STDMETHODCALLTYPE GetAutomaticFontAxes() = 0; + virtual HRESULT STDMETHODCALLTYPE SetAutomaticFontAxes( + DWRITE_AUTOMATIC_FONT_AXES axes) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextLayout4, 0x05a9bf42, 0x223f, 0x4441, 0xb5,0xfb, 0x82,0x63,0x68,0x5f,0x55,0xe9) +__CRT_UUID_DECL(IDWriteTextLayout4, 0x05a9bf42, 0x223f, 0x4441, 0xb5, 0xfb, 0x82, 0x63, 0x68, 0x5f, 0x55, 0xe9) #endif #else typedef struct IDWriteTextLayout4Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteTextLayout4 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteTextLayout4* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteTextLayout4 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteTextLayout4* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteTextLayout4 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteTextLayout4* This); - /*** IDWriteTextFormat methods ***/ - HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( - IDWriteTextLayout4 *This, - DWRITE_TEXT_ALIGNMENT alignment); + /*** IDWriteTextFormat methods ***/ + HRESULT(STDMETHODCALLTYPE* SetTextAlignment)( + IDWriteTextLayout4* This, + DWRITE_TEXT_ALIGNMENT alignment); - HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( - IDWriteTextLayout4 *This, - DWRITE_PARAGRAPH_ALIGNMENT alignment); + HRESULT(STDMETHODCALLTYPE* SetParagraphAlignment)( + IDWriteTextLayout4* This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); - HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( - IDWriteTextLayout4 *This, - DWRITE_WORD_WRAPPING wrapping); + HRESULT(STDMETHODCALLTYPE* SetWordWrapping)( + IDWriteTextLayout4* This, + DWRITE_WORD_WRAPPING wrapping); - HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( - IDWriteTextLayout4 *This, - DWRITE_READING_DIRECTION direction); + HRESULT(STDMETHODCALLTYPE* SetReadingDirection)( + IDWriteTextLayout4* This, + DWRITE_READING_DIRECTION direction); - HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( - IDWriteTextLayout4 *This, - DWRITE_FLOW_DIRECTION direction); + HRESULT(STDMETHODCALLTYPE* SetFlowDirection)( + IDWriteTextLayout4* This, + DWRITE_FLOW_DIRECTION direction); - HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( - IDWriteTextLayout4 *This, - FLOAT tabstop); + HRESULT(STDMETHODCALLTYPE* SetIncrementalTabStop)( + IDWriteTextLayout4* This, + FLOAT tabstop); - HRESULT (STDMETHODCALLTYPE *SetTrimming)( - IDWriteTextLayout4 *This, - const DWRITE_TRIMMING *trimming, - IDWriteInlineObject *trimming_sign); - - HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( - IDWriteTextLayout4 *This, - DWRITE_LINE_SPACING_METHOD spacing, - FLOAT line_spacing, - FLOAT baseline); + HRESULT(STDMETHODCALLTYPE* SetTrimming)( + IDWriteTextLayout4* This, + const DWRITE_TRIMMING* trimming, + IDWriteInlineObject* trimming_sign); + + HRESULT(STDMETHODCALLTYPE* SetLineSpacing)( + IDWriteTextLayout4* This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); - DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( - IDWriteTextLayout4 *This); - - DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( - IDWriteTextLayout4 *This); - - DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( - IDWriteTextLayout4 *This); - - DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( - IDWriteTextLayout4 *This); - - DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( - IDWriteTextLayout4 *This); - - FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( - IDWriteTextLayout4 *This); - - HRESULT (STDMETHODCALLTYPE *GetTrimming)( - IDWriteTextLayout4 *This, - DWRITE_TRIMMING *options, - IDWriteInlineObject **trimming_sign); - - HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( - IDWriteTextLayout4 *This, - DWRITE_LINE_SPACING_METHOD *method, - FLOAT *spacing, - FLOAT *baseline); - - HRESULT (STDMETHODCALLTYPE *GetFontCollection)( - IDWriteTextLayout4 *This, - IDWriteFontCollection **collection); - - UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( - IDWriteTextLayout4 *This); - - HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( - IDWriteTextLayout4 *This, - WCHAR *name, - UINT32 size); - - DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( - IDWriteTextLayout4 *This); - - DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( - IDWriteTextLayout4 *This); - - DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( - IDWriteTextLayout4 *This); - - FLOAT (STDMETHODCALLTYPE *GetFontSize)( - IDWriteTextLayout4 *This); - - UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( - IDWriteTextLayout4 *This); - - HRESULT (STDMETHODCALLTYPE *GetLocaleName)( - IDWriteTextLayout4 *This, - WCHAR *name, - UINT32 size); - - /*** IDWriteTextLayout methods ***/ - HRESULT (STDMETHODCALLTYPE *SetMaxWidth)( - IDWriteTextLayout4 *This, - FLOAT maxWidth); - - HRESULT (STDMETHODCALLTYPE *SetMaxHeight)( - IDWriteTextLayout4 *This, - FLOAT maxHeight); - - HRESULT (STDMETHODCALLTYPE *SetFontCollection)( - IDWriteTextLayout4 *This, - IDWriteFontCollection *collection, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)( - IDWriteTextLayout4 *This, - const WCHAR *name, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetFontWeight)( - IDWriteTextLayout4 *This, - DWRITE_FONT_WEIGHT weight, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetFontStyle)( - IDWriteTextLayout4 *This, - DWRITE_FONT_STYLE style, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetFontStretch)( - IDWriteTextLayout4 *This, - DWRITE_FONT_STRETCH stretch, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetFontSize)( - IDWriteTextLayout4 *This, - FLOAT size, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetUnderline)( - IDWriteTextLayout4 *This, - WINBOOL underline, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetStrikethrough)( - IDWriteTextLayout4 *This, - WINBOOL strikethrough, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)( - IDWriteTextLayout4 *This, - IUnknown *effect, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetInlineObject)( - IDWriteTextLayout4 *This, - IDWriteInlineObject *object, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetTypography)( - IDWriteTextLayout4 *This, - IDWriteTypography *typography, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *SetLocaleName)( - IDWriteTextLayout4 *This, - const WCHAR *locale, - DWRITE_TEXT_RANGE range); - - FLOAT (STDMETHODCALLTYPE *GetMaxWidth)( - IDWriteTextLayout4 *This); - - FLOAT (STDMETHODCALLTYPE *GetMaxHeight)( - IDWriteTextLayout4 *This); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)( - IDWriteTextLayout4 *This, - UINT32 pos, - IDWriteFontCollection **collection, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)( - IDWriteTextLayout4 *This, - UINT32 pos, - UINT32 *len, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)( - IDWriteTextLayout4 *This, - UINT32 position, - WCHAR *name, - UINT32 name_size, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)( - IDWriteTextLayout4 *This, - UINT32 position, - DWRITE_FONT_WEIGHT *weight, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)( - IDWriteTextLayout4 *This, - UINT32 currentPosition, - DWRITE_FONT_STYLE *style, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)( - IDWriteTextLayout4 *This, - UINT32 position, - DWRITE_FONT_STRETCH *stretch, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)( - IDWriteTextLayout4 *This, - UINT32 position, - FLOAT *size, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *GetUnderline)( - IDWriteTextLayout4 *This, - UINT32 position, - WINBOOL *has_underline, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *GetStrikethrough)( - IDWriteTextLayout4 *This, - UINT32 position, - WINBOOL *has_strikethrough, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)( - IDWriteTextLayout4 *This, - UINT32 position, - IUnknown **effect, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *GetInlineObject)( - IDWriteTextLayout4 *This, - UINT32 position, - IDWriteInlineObject **object, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *GetTypography)( - IDWriteTextLayout4 *This, - UINT32 position, - IDWriteTypography **typography, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)( - IDWriteTextLayout4 *This, - UINT32 position, - UINT32 *length, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)( - IDWriteTextLayout4 *This, - UINT32 position, - WCHAR *name, - UINT32 name_size, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *Draw)( - IDWriteTextLayout4 *This, - void *context, - IDWriteTextRenderer *renderer, - FLOAT originX, - FLOAT originY); - - HRESULT (STDMETHODCALLTYPE *GetLineMetrics)( - IDWriteTextLayout4 *This, - DWRITE_LINE_METRICS *metrics, - UINT32 max_count, - UINT32 *actual_count); - - HRESULT (STDMETHODCALLTYPE *GetMetrics)( - IDWriteTextLayout4 *This, - DWRITE_TEXT_METRICS *metrics); - - HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)( - IDWriteTextLayout4 *This, - DWRITE_OVERHANG_METRICS *overhangs); - - HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)( - IDWriteTextLayout4 *This, - DWRITE_CLUSTER_METRICS *metrics, - UINT32 max_count, - UINT32 *act_count); - - HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)( - IDWriteTextLayout4 *This, - FLOAT *min_width); - - HRESULT (STDMETHODCALLTYPE *HitTestPoint)( - IDWriteTextLayout4 *This, - FLOAT pointX, - FLOAT pointY, - WINBOOL *is_trailinghit, - WINBOOL *is_inside, - DWRITE_HIT_TEST_METRICS *metrics); - - HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)( - IDWriteTextLayout4 *This, - UINT32 textPosition, - WINBOOL is_trailinghit, - FLOAT *pointX, - FLOAT *pointY, - DWRITE_HIT_TEST_METRICS *metrics); - - HRESULT (STDMETHODCALLTYPE *HitTestTextRange)( - IDWriteTextLayout4 *This, - UINT32 textPosition, - UINT32 textLength, - FLOAT originX, - FLOAT originY, - DWRITE_HIT_TEST_METRICS *metrics, - UINT32 max_metricscount, - UINT32 *actual_metricscount); - - /*** IDWriteTextLayout1 methods ***/ - HRESULT (STDMETHODCALLTYPE *SetPairKerning)( - IDWriteTextLayout4 *This, - WINBOOL is_pairkerning_enabled, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *GetPairKerning)( - IDWriteTextLayout4 *This, - UINT32 position, - WINBOOL *is_pairkerning_enabled, - DWRITE_TEXT_RANGE *range); - - HRESULT (STDMETHODCALLTYPE *SetCharacterSpacing)( - IDWriteTextLayout4 *This, - FLOAT leading_spacing, - FLOAT trailing_spacing, - FLOAT minimum_advance_width, - DWRITE_TEXT_RANGE range); - - HRESULT (STDMETHODCALLTYPE *GetCharacterSpacing)( - IDWriteTextLayout4 *This, - UINT32 position, - FLOAT *leading_spacing, - FLOAT *trailing_spacing, - FLOAT *minimum_advance_width, - DWRITE_TEXT_RANGE *range); - - /*** IDWriteTextLayout2 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout2_GetMetrics)( - IDWriteTextLayout4 *This, - DWRITE_TEXT_METRICS1 *metrics); - - HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)( - IDWriteTextLayout4 *This, - DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); - - DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)( - IDWriteTextLayout4 *This); - - HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)( - IDWriteTextLayout4 *This, - WINBOOL lastline_wrapping_enabled); - - WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)( - IDWriteTextLayout4 *This); - - HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)( - IDWriteTextLayout4 *This, - DWRITE_OPTICAL_ALIGNMENT alignment); - - DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)( - IDWriteTextLayout4 *This); - - HRESULT (STDMETHODCALLTYPE *SetFontFallback)( - IDWriteTextLayout4 *This, - IDWriteFontFallback *fallback); - - HRESULT (STDMETHODCALLTYPE *GetFontFallback)( - IDWriteTextLayout4 *This, - IDWriteFontFallback **fallback); - - /*** IDWriteTextLayout3 methods ***/ - HRESULT (STDMETHODCALLTYPE *InvalidateLayout)( - IDWriteTextLayout4 *This); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_SetLineSpacing)( - IDWriteTextLayout4 *This, - const DWRITE_LINE_SPACING *spacing); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineSpacing)( - IDWriteTextLayout4 *This, - DWRITE_LINE_SPACING *spacing); - - HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineMetrics)( - IDWriteTextLayout4 *This, - DWRITE_LINE_METRICS1 *metrics, - UINT32 max_count, - UINT32 *count); - - /*** IDWriteTextLayout4 methods ***/ - HRESULT (STDMETHODCALLTYPE *SetFontAxisValues)( - IDWriteTextLayout4 *This, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values, - DWRITE_TEXT_RANGE range); - - UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)( - IDWriteTextLayout4 *This, - UINT32 pos); - - HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)( - IDWriteTextLayout4 *This, - UINT32 pos, - DWRITE_FONT_AXIS_VALUE *values, - UINT32 num_values, - DWRITE_TEXT_RANGE *range); - - DWRITE_AUTOMATIC_FONT_AXES (STDMETHODCALLTYPE *GetAutomaticFontAxes)( - IDWriteTextLayout4 *This); - - HRESULT (STDMETHODCALLTYPE *SetAutomaticFontAxes)( - IDWriteTextLayout4 *This, - DWRITE_AUTOMATIC_FONT_AXES axes); - - END_INTERFACE + DWRITE_TEXT_ALIGNMENT(STDMETHODCALLTYPE* GetTextAlignment)( + IDWriteTextLayout4* This); + + DWRITE_PARAGRAPH_ALIGNMENT(STDMETHODCALLTYPE* GetParagraphAlignment)( + IDWriteTextLayout4* This); + + DWRITE_WORD_WRAPPING(STDMETHODCALLTYPE* GetWordWrapping)( + IDWriteTextLayout4* This); + + DWRITE_READING_DIRECTION(STDMETHODCALLTYPE* GetReadingDirection)( + IDWriteTextLayout4* This); + + DWRITE_FLOW_DIRECTION(STDMETHODCALLTYPE* GetFlowDirection)( + IDWriteTextLayout4* This); + + FLOAT(STDMETHODCALLTYPE* GetIncrementalTabStop)( + IDWriteTextLayout4* This); + + HRESULT(STDMETHODCALLTYPE* GetTrimming)( + IDWriteTextLayout4* This, + DWRITE_TRIMMING* options, + IDWriteInlineObject** trimming_sign); + + HRESULT(STDMETHODCALLTYPE* GetLineSpacing)( + IDWriteTextLayout4* This, + DWRITE_LINE_SPACING_METHOD* method, + FLOAT* spacing, + FLOAT* baseline); + + HRESULT(STDMETHODCALLTYPE* GetFontCollection)( + IDWriteTextLayout4* This, + IDWriteFontCollection** collection); + + UINT32(STDMETHODCALLTYPE* GetFontFamilyNameLength)( + IDWriteTextLayout4* This); + + HRESULT(STDMETHODCALLTYPE* GetFontFamilyName)( + IDWriteTextLayout4* This, + WCHAR* name, + UINT32 size); + + DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetFontWeight)( + IDWriteTextLayout4* This); + + DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetFontStyle)( + IDWriteTextLayout4* This); + + DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetFontStretch)( + IDWriteTextLayout4* This); + + FLOAT(STDMETHODCALLTYPE* GetFontSize)( + IDWriteTextLayout4* This); + + UINT32(STDMETHODCALLTYPE* GetLocaleNameLength)( + IDWriteTextLayout4* This); + + HRESULT(STDMETHODCALLTYPE* GetLocaleName)( + IDWriteTextLayout4* This, + WCHAR* name, + UINT32 size); + + /*** IDWriteTextLayout methods ***/ + HRESULT(STDMETHODCALLTYPE* SetMaxWidth)( + IDWriteTextLayout4* This, + FLOAT maxWidth); + + HRESULT(STDMETHODCALLTYPE* SetMaxHeight)( + IDWriteTextLayout4* This, + FLOAT maxHeight); + + HRESULT(STDMETHODCALLTYPE* SetFontCollection)( + IDWriteTextLayout4* This, + IDWriteFontCollection* collection, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetFontFamilyName)( + IDWriteTextLayout4* This, + const WCHAR* name, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetFontWeight)( + IDWriteTextLayout4* This, + DWRITE_FONT_WEIGHT weight, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetFontStyle)( + IDWriteTextLayout4* This, + DWRITE_FONT_STYLE style, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetFontStretch)( + IDWriteTextLayout4* This, + DWRITE_FONT_STRETCH stretch, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetFontSize)( + IDWriteTextLayout4* This, + FLOAT size, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetUnderline)( + IDWriteTextLayout4* This, + WINBOOL underline, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetStrikethrough)( + IDWriteTextLayout4* This, + WINBOOL strikethrough, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetDrawingEffect)( + IDWriteTextLayout4* This, + IUnknown* effect, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetInlineObject)( + IDWriteTextLayout4* This, + IDWriteInlineObject* object, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetTypography)( + IDWriteTextLayout4* This, + IDWriteTypography* typography, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* SetLocaleName)( + IDWriteTextLayout4* This, + const WCHAR* locale, + DWRITE_TEXT_RANGE range); + + FLOAT(STDMETHODCALLTYPE* GetMaxWidth)( + IDWriteTextLayout4* This); + + FLOAT(STDMETHODCALLTYPE* GetMaxHeight)( + IDWriteTextLayout4* This); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontCollection)( + IDWriteTextLayout4* This, + UINT32 pos, + IDWriteFontCollection** collection, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontFamilyNameLength)( + IDWriteTextLayout4* This, + UINT32 pos, + UINT32* len, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontFamilyName)( + IDWriteTextLayout4* This, + UINT32 position, + WCHAR* name, + UINT32 name_size, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontWeight)( + IDWriteTextLayout4* This, + UINT32 position, + DWRITE_FONT_WEIGHT* weight, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontStyle)( + IDWriteTextLayout4* This, + UINT32 currentPosition, + DWRITE_FONT_STYLE* style, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontStretch)( + IDWriteTextLayout4* This, + UINT32 position, + DWRITE_FONT_STRETCH* stretch, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontSize)( + IDWriteTextLayout4* This, + UINT32 position, + FLOAT* size, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* GetUnderline)( + IDWriteTextLayout4* This, + UINT32 position, + WINBOOL* has_underline, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* GetStrikethrough)( + IDWriteTextLayout4* This, + UINT32 position, + WINBOOL* has_strikethrough, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* GetDrawingEffect)( + IDWriteTextLayout4* This, + UINT32 position, + IUnknown** effect, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* GetInlineObject)( + IDWriteTextLayout4* This, + UINT32 position, + IDWriteInlineObject** object, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* GetTypography)( + IDWriteTextLayout4* This, + UINT32 position, + IDWriteTypography** typography, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetLocaleNameLength)( + IDWriteTextLayout4* This, + UINT32 position, + UINT32* length, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetLocaleName)( + IDWriteTextLayout4* This, + UINT32 position, + WCHAR* name, + UINT32 name_size, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* Draw)( + IDWriteTextLayout4* This, + void* context, + IDWriteTextRenderer* renderer, + FLOAT originX, + FLOAT originY); + + HRESULT(STDMETHODCALLTYPE* GetLineMetrics)( + IDWriteTextLayout4* This, + DWRITE_LINE_METRICS* metrics, + UINT32 max_count, + UINT32* actual_count); + + HRESULT(STDMETHODCALLTYPE* GetMetrics)( + IDWriteTextLayout4* This, + DWRITE_TEXT_METRICS* metrics); + + HRESULT(STDMETHODCALLTYPE* GetOverhangMetrics)( + IDWriteTextLayout4* This, + DWRITE_OVERHANG_METRICS* overhangs); + + HRESULT(STDMETHODCALLTYPE* GetClusterMetrics)( + IDWriteTextLayout4* This, + DWRITE_CLUSTER_METRICS* metrics, + UINT32 max_count, + UINT32* act_count); + + HRESULT(STDMETHODCALLTYPE* DetermineMinWidth)( + IDWriteTextLayout4* This, + FLOAT* min_width); + + HRESULT(STDMETHODCALLTYPE* HitTestPoint)( + IDWriteTextLayout4* This, + FLOAT pointX, + FLOAT pointY, + WINBOOL* is_trailinghit, + WINBOOL* is_inside, + DWRITE_HIT_TEST_METRICS* metrics); + + HRESULT(STDMETHODCALLTYPE* HitTestTextPosition)( + IDWriteTextLayout4* This, + UINT32 textPosition, + WINBOOL is_trailinghit, + FLOAT* pointX, + FLOAT* pointY, + DWRITE_HIT_TEST_METRICS* metrics); + + HRESULT(STDMETHODCALLTYPE* HitTestTextRange)( + IDWriteTextLayout4* This, + UINT32 textPosition, + UINT32 textLength, + FLOAT originX, + FLOAT originY, + DWRITE_HIT_TEST_METRICS* metrics, + UINT32 max_metricscount, + UINT32* actual_metricscount); + + /*** IDWriteTextLayout1 methods ***/ + HRESULT(STDMETHODCALLTYPE* SetPairKerning)( + IDWriteTextLayout4* This, + WINBOOL is_pairkerning_enabled, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* GetPairKerning)( + IDWriteTextLayout4* This, + UINT32 position, + WINBOOL* is_pairkerning_enabled, + DWRITE_TEXT_RANGE* range); + + HRESULT(STDMETHODCALLTYPE* SetCharacterSpacing)( + IDWriteTextLayout4* This, + FLOAT leading_spacing, + FLOAT trailing_spacing, + FLOAT minimum_advance_width, + DWRITE_TEXT_RANGE range); + + HRESULT(STDMETHODCALLTYPE* GetCharacterSpacing)( + IDWriteTextLayout4* This, + UINT32 position, + FLOAT* leading_spacing, + FLOAT* trailing_spacing, + FLOAT* minimum_advance_width, + DWRITE_TEXT_RANGE* range); + + /*** IDWriteTextLayout2 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout2_GetMetrics)( + IDWriteTextLayout4* This, + DWRITE_TEXT_METRICS1* metrics); + + HRESULT(STDMETHODCALLTYPE* SetVerticalGlyphOrientation)( + IDWriteTextLayout4* This, + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); + + DWRITE_VERTICAL_GLYPH_ORIENTATION(STDMETHODCALLTYPE* GetVerticalGlyphOrientation)( + IDWriteTextLayout4* This); + + HRESULT(STDMETHODCALLTYPE* SetLastLineWrapping)( + IDWriteTextLayout4* This, + WINBOOL lastline_wrapping_enabled); + + WINBOOL(STDMETHODCALLTYPE* GetLastLineWrapping)( + IDWriteTextLayout4* This); + + HRESULT(STDMETHODCALLTYPE* SetOpticalAlignment)( + IDWriteTextLayout4* This, + DWRITE_OPTICAL_ALIGNMENT alignment); + + DWRITE_OPTICAL_ALIGNMENT(STDMETHODCALLTYPE* GetOpticalAlignment)( + IDWriteTextLayout4* This); + + HRESULT(STDMETHODCALLTYPE* SetFontFallback)( + IDWriteTextLayout4* This, + IDWriteFontFallback* fallback); + + HRESULT(STDMETHODCALLTYPE* GetFontFallback)( + IDWriteTextLayout4* This, + IDWriteFontFallback** fallback); + + /*** IDWriteTextLayout3 methods ***/ + HRESULT(STDMETHODCALLTYPE* InvalidateLayout)( + IDWriteTextLayout4* This); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout3_SetLineSpacing)( + IDWriteTextLayout4* This, + const DWRITE_LINE_SPACING* spacing); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout3_GetLineSpacing)( + IDWriteTextLayout4* This, + DWRITE_LINE_SPACING* spacing); + + HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout3_GetLineMetrics)( + IDWriteTextLayout4* This, + DWRITE_LINE_METRICS1* metrics, + UINT32 max_count, + UINT32* count); + + /*** IDWriteTextLayout4 methods ***/ + HRESULT(STDMETHODCALLTYPE* SetFontAxisValues)( + IDWriteTextLayout4* This, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values, + DWRITE_TEXT_RANGE range); + + UINT32(STDMETHODCALLTYPE* GetFontAxisValueCount)( + IDWriteTextLayout4* This, + UINT32 pos); + + HRESULT(STDMETHODCALLTYPE* GetFontAxisValues)( + IDWriteTextLayout4* This, + UINT32 pos, + DWRITE_FONT_AXIS_VALUE* values, + UINT32 num_values, + DWRITE_TEXT_RANGE* range); + + DWRITE_AUTOMATIC_FONT_AXES(STDMETHODCALLTYPE* GetAutomaticFontAxes)( + IDWriteTextLayout4* This); + + HRESULT(STDMETHODCALLTYPE* SetAutomaticFontAxes)( + IDWriteTextLayout4* This, + DWRITE_AUTOMATIC_FONT_AXES axes); + + END_INTERFACE } IDWriteTextLayout4Vtbl; interface IDWriteTextLayout4 { - CONST_VTBL IDWriteTextLayout4Vtbl* lpVtbl; + CONST_VTBL IDWriteTextLayout4Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteTextLayout4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextLayout4_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteTextLayout4_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteTextLayout4_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteTextFormat methods ***/ -#define IDWriteTextLayout4_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) -#define IDWriteTextLayout4_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) -#define IDWriteTextLayout4_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) -#define IDWriteTextLayout4_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) -#define IDWriteTextLayout4_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) -#define IDWriteTextLayout4_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) -#define IDWriteTextLayout4_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) +#define IDWriteTextLayout4_SetTextAlignment(This, alignment) (This)->lpVtbl->SetTextAlignment(This, alignment) +#define IDWriteTextLayout4_SetParagraphAlignment(This, alignment) (This)->lpVtbl->SetParagraphAlignment(This, alignment) +#define IDWriteTextLayout4_SetWordWrapping(This, wrapping) (This)->lpVtbl->SetWordWrapping(This, wrapping) +#define IDWriteTextLayout4_SetReadingDirection(This, direction) (This)->lpVtbl->SetReadingDirection(This, direction) +#define IDWriteTextLayout4_SetFlowDirection(This, direction) (This)->lpVtbl->SetFlowDirection(This, direction) +#define IDWriteTextLayout4_SetIncrementalTabStop(This, tabstop) (This)->lpVtbl->SetIncrementalTabStop(This, tabstop) +#define IDWriteTextLayout4_SetTrimming(This, trimming, trimming_sign) (This)->lpVtbl->SetTrimming(This, trimming, trimming_sign) #define IDWriteTextLayout4_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) #define IDWriteTextLayout4_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) #define IDWriteTextLayout4_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) #define IDWriteTextLayout4_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) #define IDWriteTextLayout4_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) #define IDWriteTextLayout4_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) -#define IDWriteTextLayout4_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) +#define IDWriteTextLayout4_GetTrimming(This, options, trimming_sign) (This)->lpVtbl->GetTrimming(This, options, trimming_sign) /*** IDWriteTextLayout methods ***/ -#define IDWriteTextLayout4_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth) -#define IDWriteTextLayout4_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight) -#define IDWriteTextLayout4_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range) -#define IDWriteTextLayout4_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range) -#define IDWriteTextLayout4_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range) -#define IDWriteTextLayout4_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range) -#define IDWriteTextLayout4_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range) -#define IDWriteTextLayout4_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range) -#define IDWriteTextLayout4_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range) -#define IDWriteTextLayout4_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range) -#define IDWriteTextLayout4_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range) -#define IDWriteTextLayout4_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range) -#define IDWriteTextLayout4_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range) -#define IDWriteTextLayout4_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range) +#define IDWriteTextLayout4_SetMaxWidth(This, maxWidth) (This)->lpVtbl->SetMaxWidth(This, maxWidth) +#define IDWriteTextLayout4_SetMaxHeight(This, maxHeight) (This)->lpVtbl->SetMaxHeight(This, maxHeight) +#define IDWriteTextLayout4_SetFontCollection(This, collection, range) (This)->lpVtbl->SetFontCollection(This, collection, range) +#define IDWriteTextLayout4_SetFontFamilyName(This, name, range) (This)->lpVtbl->SetFontFamilyName(This, name, range) +#define IDWriteTextLayout4_SetFontWeight(This, weight, range) (This)->lpVtbl->SetFontWeight(This, weight, range) +#define IDWriteTextLayout4_SetFontStyle(This, style, range) (This)->lpVtbl->SetFontStyle(This, style, range) +#define IDWriteTextLayout4_SetFontStretch(This, stretch, range) (This)->lpVtbl->SetFontStretch(This, stretch, range) +#define IDWriteTextLayout4_SetFontSize(This, size, range) (This)->lpVtbl->SetFontSize(This, size, range) +#define IDWriteTextLayout4_SetUnderline(This, underline, range) (This)->lpVtbl->SetUnderline(This, underline, range) +#define IDWriteTextLayout4_SetStrikethrough(This, strikethrough, range) (This)->lpVtbl->SetStrikethrough(This, strikethrough, range) +#define IDWriteTextLayout4_SetDrawingEffect(This, effect, range) (This)->lpVtbl->SetDrawingEffect(This, effect, range) +#define IDWriteTextLayout4_SetInlineObject(This, object, range) (This)->lpVtbl->SetInlineObject(This, object, range) +#define IDWriteTextLayout4_SetTypography(This, typography, range) (This)->lpVtbl->SetTypography(This, typography, range) +#define IDWriteTextLayout4_SetLocaleName(This, locale, range) (This)->lpVtbl->SetLocaleName(This, locale, range) #define IDWriteTextLayout4_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This) #define IDWriteTextLayout4_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This) -#define IDWriteTextLayout4_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range) -#define IDWriteTextLayout4_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range) -#define IDWriteTextLayout4_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range) -#define IDWriteTextLayout4_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range) -#define IDWriteTextLayout4_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range) -#define IDWriteTextLayout4_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range) -#define IDWriteTextLayout4_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range) -#define IDWriteTextLayout4_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range) -#define IDWriteTextLayout4_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range) -#define IDWriteTextLayout4_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range) -#define IDWriteTextLayout4_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range) -#define IDWriteTextLayout4_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range) -#define IDWriteTextLayout4_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range) -#define IDWriteTextLayout4_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range) -#define IDWriteTextLayout4_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY) -#define IDWriteTextLayout4_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs) -#define IDWriteTextLayout4_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count) -#define IDWriteTextLayout4_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width) -#define IDWriteTextLayout4_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) -#define IDWriteTextLayout4_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) -#define IDWriteTextLayout4_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) +#define IDWriteTextLayout4_GetFontCollection(This, pos, collection, range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This, pos, collection, range) +#define IDWriteTextLayout4_GetFontFamilyNameLength(This, pos, len, range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This, pos, len, range) +#define IDWriteTextLayout4_GetFontFamilyName(This, position, name, name_size, range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This, position, name, name_size, range) +#define IDWriteTextLayout4_GetFontWeight(This, position, weight, range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This, position, weight, range) +#define IDWriteTextLayout4_GetFontStyle(This, currentPosition, style, range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This, currentPosition, style, range) +#define IDWriteTextLayout4_GetFontStretch(This, position, stretch, range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This, position, stretch, range) +#define IDWriteTextLayout4_GetFontSize(This, position, size, range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This, position, size, range) +#define IDWriteTextLayout4_GetUnderline(This, position, has_underline, range) (This)->lpVtbl->GetUnderline(This, position, has_underline, range) +#define IDWriteTextLayout4_GetStrikethrough(This, position, has_strikethrough, range) (This)->lpVtbl->GetStrikethrough(This, position, has_strikethrough, range) +#define IDWriteTextLayout4_GetDrawingEffect(This, position, effect, range) (This)->lpVtbl->GetDrawingEffect(This, position, effect, range) +#define IDWriteTextLayout4_GetInlineObject(This, position, object, range) (This)->lpVtbl->GetInlineObject(This, position, object, range) +#define IDWriteTextLayout4_GetTypography(This, position, typography, range) (This)->lpVtbl->GetTypography(This, position, typography, range) +#define IDWriteTextLayout4_GetLocaleNameLength(This, position, length, range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This, position, length, range) +#define IDWriteTextLayout4_GetLocaleName(This, position, name, name_size, range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This, position, name, name_size, range) +#define IDWriteTextLayout4_Draw(This, context, renderer, originX, originY) (This)->lpVtbl->Draw(This, context, renderer, originX, originY) +#define IDWriteTextLayout4_GetOverhangMetrics(This, overhangs) (This)->lpVtbl->GetOverhangMetrics(This, overhangs) +#define IDWriteTextLayout4_GetClusterMetrics(This, metrics, max_count, act_count) (This)->lpVtbl->GetClusterMetrics(This, metrics, max_count, act_count) +#define IDWriteTextLayout4_DetermineMinWidth(This, min_width) (This)->lpVtbl->DetermineMinWidth(This, min_width) +#define IDWriteTextLayout4_HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics) (This)->lpVtbl->HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics) +#define IDWriteTextLayout4_HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics) (This)->lpVtbl->HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics) +#define IDWriteTextLayout4_HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount) (This)->lpVtbl->HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount) /*** IDWriteTextLayout1 methods ***/ -#define IDWriteTextLayout4_SetPairKerning(This,is_pairkerning_enabled,range) (This)->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range) -#define IDWriteTextLayout4_GetPairKerning(This,position,is_pairkerning_enabled,range) (This)->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range) -#define IDWriteTextLayout4_SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) -#define IDWriteTextLayout4_GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) +#define IDWriteTextLayout4_SetPairKerning(This, is_pairkerning_enabled, range) (This)->lpVtbl->SetPairKerning(This, is_pairkerning_enabled, range) +#define IDWriteTextLayout4_GetPairKerning(This, position, is_pairkerning_enabled, range) (This)->lpVtbl->GetPairKerning(This, position, is_pairkerning_enabled, range) +#define IDWriteTextLayout4_SetCharacterSpacing(This, leading_spacing, trailing_spacing, minimum_advance_width, range) (This)->lpVtbl->SetCharacterSpacing(This, leading_spacing, trailing_spacing, minimum_advance_width, range) +#define IDWriteTextLayout4_GetCharacterSpacing(This, position, leading_spacing, trailing_spacing, minimum_advance_width, range) (This)->lpVtbl->GetCharacterSpacing(This, position, leading_spacing, trailing_spacing, minimum_advance_width, range) /*** IDWriteTextLayout2 methods ***/ -#define IDWriteTextLayout4_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics) -#define IDWriteTextLayout4_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation) +#define IDWriteTextLayout4_GetMetrics(This, metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This, metrics) +#define IDWriteTextLayout4_SetVerticalGlyphOrientation(This, orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This, orientation) #define IDWriteTextLayout4_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) -#define IDWriteTextLayout4_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled) +#define IDWriteTextLayout4_SetLastLineWrapping(This, lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled) #define IDWriteTextLayout4_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) -#define IDWriteTextLayout4_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment) +#define IDWriteTextLayout4_SetOpticalAlignment(This, alignment) (This)->lpVtbl->SetOpticalAlignment(This, alignment) #define IDWriteTextLayout4_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) -#define IDWriteTextLayout4_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback) -#define IDWriteTextLayout4_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback) +#define IDWriteTextLayout4_SetFontFallback(This, fallback) (This)->lpVtbl->SetFontFallback(This, fallback) +#define IDWriteTextLayout4_GetFontFallback(This, fallback) (This)->lpVtbl->GetFontFallback(This, fallback) /*** IDWriteTextLayout3 methods ***/ #define IDWriteTextLayout4_InvalidateLayout(This) (This)->lpVtbl->InvalidateLayout(This) -#define IDWriteTextLayout4_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing) -#define IDWriteTextLayout4_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing) -#define IDWriteTextLayout4_GetLineMetrics(This,metrics,max_count,count) (This)->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count) +#define IDWriteTextLayout4_SetLineSpacing(This, spacing) (This)->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This, spacing) +#define IDWriteTextLayout4_GetLineSpacing(This, spacing) (This)->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This, spacing) +#define IDWriteTextLayout4_GetLineMetrics(This, metrics, max_count, count) (This)->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This, metrics, max_count, count) /*** IDWriteTextLayout4 methods ***/ -#define IDWriteTextLayout4_SetFontAxisValues(This,axis_values,num_values,range) (This)->lpVtbl->SetFontAxisValues(This,axis_values,num_values,range) -#define IDWriteTextLayout4_GetFontAxisValueCount(This,pos) (This)->lpVtbl->GetFontAxisValueCount(This,pos) -#define IDWriteTextLayout4_GetFontAxisValues(This,pos,values,num_values,range) (This)->lpVtbl->GetFontAxisValues(This,pos,values,num_values,range) +#define IDWriteTextLayout4_SetFontAxisValues(This, axis_values, num_values, range) (This)->lpVtbl->SetFontAxisValues(This, axis_values, num_values, range) +#define IDWriteTextLayout4_GetFontAxisValueCount(This, pos) (This)->lpVtbl->GetFontAxisValueCount(This, pos) +#define IDWriteTextLayout4_GetFontAxisValues(This, pos, values, num_values, range) (This)->lpVtbl->GetFontAxisValues(This, pos, values, num_values, range) #define IDWriteTextLayout4_GetAutomaticFontAxes(This) (This)->lpVtbl->GetAutomaticFontAxes(This) -#define IDWriteTextLayout4_SetAutomaticFontAxes(This,axes) (This)->lpVtbl->SetAutomaticFontAxes(This,axes) +#define IDWriteTextLayout4_SetAutomaticFontAxes(This, axes) (This)->lpVtbl->SetAutomaticFontAxes(This, axes) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteTextLayout4_QueryInterface(IDWriteTextLayout4* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteTextLayout4_QueryInterface(IDWriteTextLayout4* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteTextLayout4_AddRef(IDWriteTextLayout4* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteTextLayout4_Release(IDWriteTextLayout4* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteTextFormat methods ***/ -static inline HRESULT IDWriteTextLayout4_SetTextAlignment(IDWriteTextLayout4* This,DWRITE_TEXT_ALIGNMENT alignment) { - return This->lpVtbl->SetTextAlignment(This,alignment); +static inline HRESULT IDWriteTextLayout4_SetTextAlignment(IDWriteTextLayout4* This, DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This, alignment); } -static inline HRESULT IDWriteTextLayout4_SetParagraphAlignment(IDWriteTextLayout4* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { - return This->lpVtbl->SetParagraphAlignment(This,alignment); +static inline HRESULT IDWriteTextLayout4_SetParagraphAlignment(IDWriteTextLayout4* This, DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This, alignment); } -static inline HRESULT IDWriteTextLayout4_SetWordWrapping(IDWriteTextLayout4* This,DWRITE_WORD_WRAPPING wrapping) { - return This->lpVtbl->SetWordWrapping(This,wrapping); +static inline HRESULT IDWriteTextLayout4_SetWordWrapping(IDWriteTextLayout4* This, DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This, wrapping); } -static inline HRESULT IDWriteTextLayout4_SetReadingDirection(IDWriteTextLayout4* This,DWRITE_READING_DIRECTION direction) { - return This->lpVtbl->SetReadingDirection(This,direction); +static inline HRESULT IDWriteTextLayout4_SetReadingDirection(IDWriteTextLayout4* This, DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This, direction); } -static inline HRESULT IDWriteTextLayout4_SetFlowDirection(IDWriteTextLayout4* This,DWRITE_FLOW_DIRECTION direction) { - return This->lpVtbl->SetFlowDirection(This,direction); +static inline HRESULT IDWriteTextLayout4_SetFlowDirection(IDWriteTextLayout4* This, DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This, direction); } -static inline HRESULT IDWriteTextLayout4_SetIncrementalTabStop(IDWriteTextLayout4* This,FLOAT tabstop) { - return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +static inline HRESULT IDWriteTextLayout4_SetIncrementalTabStop(IDWriteTextLayout4* This, FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This, tabstop); } -static inline HRESULT IDWriteTextLayout4_SetTrimming(IDWriteTextLayout4* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { - return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +static inline HRESULT IDWriteTextLayout4_SetTrimming(IDWriteTextLayout4* This, const DWRITE_TRIMMING* trimming, IDWriteInlineObject* trimming_sign) { + return This->lpVtbl->SetTrimming(This, trimming, trimming_sign); } static inline DWRITE_TEXT_ALIGNMENT IDWriteTextLayout4_GetTextAlignment(IDWriteTextLayout4* This) { - return This->lpVtbl->GetTextAlignment(This); + return This->lpVtbl->GetTextAlignment(This); } static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout4_GetParagraphAlignment(IDWriteTextLayout4* This) { - return This->lpVtbl->GetParagraphAlignment(This); + return This->lpVtbl->GetParagraphAlignment(This); } static inline DWRITE_WORD_WRAPPING IDWriteTextLayout4_GetWordWrapping(IDWriteTextLayout4* This) { - return This->lpVtbl->GetWordWrapping(This); + return This->lpVtbl->GetWordWrapping(This); } static inline DWRITE_READING_DIRECTION IDWriteTextLayout4_GetReadingDirection(IDWriteTextLayout4* This) { - return This->lpVtbl->GetReadingDirection(This); + return This->lpVtbl->GetReadingDirection(This); } static inline DWRITE_FLOW_DIRECTION IDWriteTextLayout4_GetFlowDirection(IDWriteTextLayout4* This) { - return This->lpVtbl->GetFlowDirection(This); + return This->lpVtbl->GetFlowDirection(This); } static inline FLOAT IDWriteTextLayout4_GetIncrementalTabStop(IDWriteTextLayout4* This) { - return This->lpVtbl->GetIncrementalTabStop(This); + return This->lpVtbl->GetIncrementalTabStop(This); } -static inline HRESULT IDWriteTextLayout4_GetTrimming(IDWriteTextLayout4* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { - return This->lpVtbl->GetTrimming(This,options,trimming_sign); +static inline HRESULT IDWriteTextLayout4_GetTrimming(IDWriteTextLayout4* This, DWRITE_TRIMMING* options, IDWriteInlineObject** trimming_sign) { + return This->lpVtbl->GetTrimming(This, options, trimming_sign); } /*** IDWriteTextLayout methods ***/ -static inline HRESULT IDWriteTextLayout4_SetMaxWidth(IDWriteTextLayout4* This,FLOAT maxWidth) { - return This->lpVtbl->SetMaxWidth(This,maxWidth); +static inline HRESULT IDWriteTextLayout4_SetMaxWidth(IDWriteTextLayout4* This, FLOAT maxWidth) { + return This->lpVtbl->SetMaxWidth(This, maxWidth); } -static inline HRESULT IDWriteTextLayout4_SetMaxHeight(IDWriteTextLayout4* This,FLOAT maxHeight) { - return This->lpVtbl->SetMaxHeight(This,maxHeight); +static inline HRESULT IDWriteTextLayout4_SetMaxHeight(IDWriteTextLayout4* This, FLOAT maxHeight) { + return This->lpVtbl->SetMaxHeight(This, maxHeight); } -static inline HRESULT IDWriteTextLayout4_SetFontCollection(IDWriteTextLayout4* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontCollection(This,collection,range); +static inline HRESULT IDWriteTextLayout4_SetFontCollection(IDWriteTextLayout4* This, IDWriteFontCollection* collection, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontCollection(This, collection, range); } -static inline HRESULT IDWriteTextLayout4_SetFontFamilyName(IDWriteTextLayout4* This,const WCHAR *name,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontFamilyName(This,name,range); +static inline HRESULT IDWriteTextLayout4_SetFontFamilyName(IDWriteTextLayout4* This, const WCHAR* name, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontFamilyName(This, name, range); } -static inline HRESULT IDWriteTextLayout4_SetFontWeight(IDWriteTextLayout4* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontWeight(This,weight,range); +static inline HRESULT IDWriteTextLayout4_SetFontWeight(IDWriteTextLayout4* This, DWRITE_FONT_WEIGHT weight, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontWeight(This, weight, range); } -static inline HRESULT IDWriteTextLayout4_SetFontStyle(IDWriteTextLayout4* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontStyle(This,style,range); +static inline HRESULT IDWriteTextLayout4_SetFontStyle(IDWriteTextLayout4* This, DWRITE_FONT_STYLE style, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStyle(This, style, range); } -static inline HRESULT IDWriteTextLayout4_SetFontStretch(IDWriteTextLayout4* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontStretch(This,stretch,range); +static inline HRESULT IDWriteTextLayout4_SetFontStretch(IDWriteTextLayout4* This, DWRITE_FONT_STRETCH stretch, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStretch(This, stretch, range); } -static inline HRESULT IDWriteTextLayout4_SetFontSize(IDWriteTextLayout4* This,FLOAT size,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontSize(This,size,range); +static inline HRESULT IDWriteTextLayout4_SetFontSize(IDWriteTextLayout4* This, FLOAT size, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontSize(This, size, range); } -static inline HRESULT IDWriteTextLayout4_SetUnderline(IDWriteTextLayout4* This,WINBOOL underline,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetUnderline(This,underline,range); +static inline HRESULT IDWriteTextLayout4_SetUnderline(IDWriteTextLayout4* This, WINBOOL underline, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetUnderline(This, underline, range); } -static inline HRESULT IDWriteTextLayout4_SetStrikethrough(IDWriteTextLayout4* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetStrikethrough(This,strikethrough,range); +static inline HRESULT IDWriteTextLayout4_SetStrikethrough(IDWriteTextLayout4* This, WINBOOL strikethrough, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetStrikethrough(This, strikethrough, range); } -static inline HRESULT IDWriteTextLayout4_SetDrawingEffect(IDWriteTextLayout4* This,IUnknown *effect,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetDrawingEffect(This,effect,range); +static inline HRESULT IDWriteTextLayout4_SetDrawingEffect(IDWriteTextLayout4* This, IUnknown* effect, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetDrawingEffect(This, effect, range); } -static inline HRESULT IDWriteTextLayout4_SetInlineObject(IDWriteTextLayout4* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetInlineObject(This,object,range); +static inline HRESULT IDWriteTextLayout4_SetInlineObject(IDWriteTextLayout4* This, IDWriteInlineObject* object, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetInlineObject(This, object, range); } -static inline HRESULT IDWriteTextLayout4_SetTypography(IDWriteTextLayout4* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetTypography(This,typography,range); +static inline HRESULT IDWriteTextLayout4_SetTypography(IDWriteTextLayout4* This, IDWriteTypography* typography, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetTypography(This, typography, range); } -static inline HRESULT IDWriteTextLayout4_SetLocaleName(IDWriteTextLayout4* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetLocaleName(This,locale,range); +static inline HRESULT IDWriteTextLayout4_SetLocaleName(IDWriteTextLayout4* This, const WCHAR* locale, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetLocaleName(This, locale, range); } static inline FLOAT IDWriteTextLayout4_GetMaxWidth(IDWriteTextLayout4* This) { - return This->lpVtbl->GetMaxWidth(This); + return This->lpVtbl->GetMaxWidth(This); } static inline FLOAT IDWriteTextLayout4_GetMaxHeight(IDWriteTextLayout4* This) { - return This->lpVtbl->GetMaxHeight(This); + return This->lpVtbl->GetMaxHeight(This); } -static inline HRESULT IDWriteTextLayout4_GetFontCollection(IDWriteTextLayout4* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range); +static inline HRESULT IDWriteTextLayout4_GetFontCollection(IDWriteTextLayout4* This, UINT32 pos, IDWriteFontCollection** collection, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This, pos, collection, range); } -static inline HRESULT IDWriteTextLayout4_GetFontFamilyNameLength(IDWriteTextLayout4* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range); +static inline HRESULT IDWriteTextLayout4_GetFontFamilyNameLength(IDWriteTextLayout4* This, UINT32 pos, UINT32* len, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This, pos, len, range); } -static inline HRESULT IDWriteTextLayout4_GetFontFamilyName(IDWriteTextLayout4* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range); +static inline HRESULT IDWriteTextLayout4_GetFontFamilyName(IDWriteTextLayout4* This, UINT32 position, WCHAR* name, UINT32 name_size, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This, position, name, name_size, range); } -static inline HRESULT IDWriteTextLayout4_GetFontWeight(IDWriteTextLayout4* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range); +static inline HRESULT IDWriteTextLayout4_GetFontWeight(IDWriteTextLayout4* This, UINT32 position, DWRITE_FONT_WEIGHT* weight, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This, position, weight, range); } -static inline HRESULT IDWriteTextLayout4_GetFontStyle(IDWriteTextLayout4* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range); +static inline HRESULT IDWriteTextLayout4_GetFontStyle(IDWriteTextLayout4* This, UINT32 currentPosition, DWRITE_FONT_STYLE* style, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This, currentPosition, style, range); } -static inline HRESULT IDWriteTextLayout4_GetFontStretch(IDWriteTextLayout4* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range); +static inline HRESULT IDWriteTextLayout4_GetFontStretch(IDWriteTextLayout4* This, UINT32 position, DWRITE_FONT_STRETCH* stretch, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This, position, stretch, range); } -static inline HRESULT IDWriteTextLayout4_GetFontSize(IDWriteTextLayout4* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range); +static inline HRESULT IDWriteTextLayout4_GetFontSize(IDWriteTextLayout4* This, UINT32 position, FLOAT* size, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetFontSize(This, position, size, range); } -static inline HRESULT IDWriteTextLayout4_GetUnderline(IDWriteTextLayout4* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetUnderline(This,position,has_underline,range); +static inline HRESULT IDWriteTextLayout4_GetUnderline(IDWriteTextLayout4* This, UINT32 position, WINBOOL* has_underline, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetUnderline(This, position, has_underline, range); } -static inline HRESULT IDWriteTextLayout4_GetStrikethrough(IDWriteTextLayout4* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range); +static inline HRESULT IDWriteTextLayout4_GetStrikethrough(IDWriteTextLayout4* This, UINT32 position, WINBOOL* has_strikethrough, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetStrikethrough(This, position, has_strikethrough, range); } -static inline HRESULT IDWriteTextLayout4_GetDrawingEffect(IDWriteTextLayout4* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetDrawingEffect(This,position,effect,range); +static inline HRESULT IDWriteTextLayout4_GetDrawingEffect(IDWriteTextLayout4* This, UINT32 position, IUnknown** effect, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetDrawingEffect(This, position, effect, range); } -static inline HRESULT IDWriteTextLayout4_GetInlineObject(IDWriteTextLayout4* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetInlineObject(This,position,object,range); +static inline HRESULT IDWriteTextLayout4_GetInlineObject(IDWriteTextLayout4* This, UINT32 position, IDWriteInlineObject** object, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetInlineObject(This, position, object, range); } -static inline HRESULT IDWriteTextLayout4_GetTypography(IDWriteTextLayout4* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetTypography(This,position,typography,range); +static inline HRESULT IDWriteTextLayout4_GetTypography(IDWriteTextLayout4* This, UINT32 position, IDWriteTypography** typography, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetTypography(This, position, typography, range); } -static inline HRESULT IDWriteTextLayout4_GetLocaleNameLength(IDWriteTextLayout4* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range); +static inline HRESULT IDWriteTextLayout4_GetLocaleNameLength(IDWriteTextLayout4* This, UINT32 position, UINT32* length, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This, position, length, range); } -static inline HRESULT IDWriteTextLayout4_GetLocaleName(IDWriteTextLayout4* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range); +static inline HRESULT IDWriteTextLayout4_GetLocaleName(IDWriteTextLayout4* This, UINT32 position, WCHAR* name, UINT32 name_size, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This, position, name, name_size, range); } -static inline HRESULT IDWriteTextLayout4_Draw(IDWriteTextLayout4* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) { - return This->lpVtbl->Draw(This,context,renderer,originX,originY); +static inline HRESULT IDWriteTextLayout4_Draw(IDWriteTextLayout4* This, void* context, IDWriteTextRenderer* renderer, FLOAT originX, FLOAT originY) { + return This->lpVtbl->Draw(This, context, renderer, originX, originY); } -static inline HRESULT IDWriteTextLayout4_GetOverhangMetrics(IDWriteTextLayout4* This,DWRITE_OVERHANG_METRICS *overhangs) { - return This->lpVtbl->GetOverhangMetrics(This,overhangs); +static inline HRESULT IDWriteTextLayout4_GetOverhangMetrics(IDWriteTextLayout4* This, DWRITE_OVERHANG_METRICS* overhangs) { + return This->lpVtbl->GetOverhangMetrics(This, overhangs); } -static inline HRESULT IDWriteTextLayout4_GetClusterMetrics(IDWriteTextLayout4* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) { - return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count); +static inline HRESULT IDWriteTextLayout4_GetClusterMetrics(IDWriteTextLayout4* This, DWRITE_CLUSTER_METRICS* metrics, UINT32 max_count, UINT32* act_count) { + return This->lpVtbl->GetClusterMetrics(This, metrics, max_count, act_count); } -static inline HRESULT IDWriteTextLayout4_DetermineMinWidth(IDWriteTextLayout4* This,FLOAT *min_width) { - return This->lpVtbl->DetermineMinWidth(This,min_width); +static inline HRESULT IDWriteTextLayout4_DetermineMinWidth(IDWriteTextLayout4* This, FLOAT* min_width) { + return This->lpVtbl->DetermineMinWidth(This, min_width); } -static inline HRESULT IDWriteTextLayout4_HitTestPoint(IDWriteTextLayout4* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) { - return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics); +static inline HRESULT IDWriteTextLayout4_HitTestPoint(IDWriteTextLayout4* This, FLOAT pointX, FLOAT pointY, WINBOOL* is_trailinghit, WINBOOL* is_inside, DWRITE_HIT_TEST_METRICS* metrics) { + return This->lpVtbl->HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics); } -static inline HRESULT IDWriteTextLayout4_HitTestTextPosition(IDWriteTextLayout4* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) { - return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics); +static inline HRESULT IDWriteTextLayout4_HitTestTextPosition(IDWriteTextLayout4* This, UINT32 textPosition, WINBOOL is_trailinghit, FLOAT* pointX, FLOAT* pointY, DWRITE_HIT_TEST_METRICS* metrics) { + return This->lpVtbl->HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics); } -static inline HRESULT IDWriteTextLayout4_HitTestTextRange(IDWriteTextLayout4* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) { - return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount); +static inline HRESULT IDWriteTextLayout4_HitTestTextRange(IDWriteTextLayout4* This, UINT32 textPosition, UINT32 textLength, FLOAT originX, FLOAT originY, DWRITE_HIT_TEST_METRICS* metrics, UINT32 max_metricscount, UINT32* actual_metricscount) { + return This->lpVtbl->HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount); } /*** IDWriteTextLayout1 methods ***/ -static inline HRESULT IDWriteTextLayout4_SetPairKerning(IDWriteTextLayout4* This,WINBOOL is_pairkerning_enabled,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range); +static inline HRESULT IDWriteTextLayout4_SetPairKerning(IDWriteTextLayout4* This, WINBOOL is_pairkerning_enabled, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetPairKerning(This, is_pairkerning_enabled, range); } -static inline HRESULT IDWriteTextLayout4_GetPairKerning(IDWriteTextLayout4* This,UINT32 position,WINBOOL *is_pairkerning_enabled,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range); +static inline HRESULT IDWriteTextLayout4_GetPairKerning(IDWriteTextLayout4* This, UINT32 position, WINBOOL* is_pairkerning_enabled, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetPairKerning(This, position, is_pairkerning_enabled, range); } -static inline HRESULT IDWriteTextLayout4_SetCharacterSpacing(IDWriteTextLayout4* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT minimum_advance_width,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range); +static inline HRESULT IDWriteTextLayout4_SetCharacterSpacing(IDWriteTextLayout4* This, FLOAT leading_spacing, FLOAT trailing_spacing, FLOAT minimum_advance_width, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetCharacterSpacing(This, leading_spacing, trailing_spacing, minimum_advance_width, range); } -static inline HRESULT IDWriteTextLayout4_GetCharacterSpacing(IDWriteTextLayout4* This,UINT32 position,FLOAT *leading_spacing,FLOAT *trailing_spacing,FLOAT *minimum_advance_width,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range); +static inline HRESULT IDWriteTextLayout4_GetCharacterSpacing(IDWriteTextLayout4* This, UINT32 position, FLOAT* leading_spacing, FLOAT* trailing_spacing, FLOAT* minimum_advance_width, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetCharacterSpacing(This, position, leading_spacing, trailing_spacing, minimum_advance_width, range); } /*** IDWriteTextLayout2 methods ***/ -static inline HRESULT IDWriteTextLayout4_GetMetrics(IDWriteTextLayout4* This,DWRITE_TEXT_METRICS1 *metrics) { - return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics); +static inline HRESULT IDWriteTextLayout4_GetMetrics(IDWriteTextLayout4* This, DWRITE_TEXT_METRICS1* metrics) { + return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This, metrics); } -static inline HRESULT IDWriteTextLayout4_SetVerticalGlyphOrientation(IDWriteTextLayout4* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { - return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation); +static inline HRESULT IDWriteTextLayout4_SetVerticalGlyphOrientation(IDWriteTextLayout4* This, DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { + return This->lpVtbl->SetVerticalGlyphOrientation(This, orientation); } static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextLayout4_GetVerticalGlyphOrientation(IDWriteTextLayout4* This) { - return This->lpVtbl->GetVerticalGlyphOrientation(This); + return This->lpVtbl->GetVerticalGlyphOrientation(This); } -static inline HRESULT IDWriteTextLayout4_SetLastLineWrapping(IDWriteTextLayout4* This,WINBOOL lastline_wrapping_enabled) { - return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled); +static inline HRESULT IDWriteTextLayout4_SetLastLineWrapping(IDWriteTextLayout4* This, WINBOOL lastline_wrapping_enabled) { + return This->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled); } static inline WINBOOL IDWriteTextLayout4_GetLastLineWrapping(IDWriteTextLayout4* This) { - return This->lpVtbl->GetLastLineWrapping(This); + return This->lpVtbl->GetLastLineWrapping(This); } -static inline HRESULT IDWriteTextLayout4_SetOpticalAlignment(IDWriteTextLayout4* This,DWRITE_OPTICAL_ALIGNMENT alignment) { - return This->lpVtbl->SetOpticalAlignment(This,alignment); +static inline HRESULT IDWriteTextLayout4_SetOpticalAlignment(IDWriteTextLayout4* This, DWRITE_OPTICAL_ALIGNMENT alignment) { + return This->lpVtbl->SetOpticalAlignment(This, alignment); } static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextLayout4_GetOpticalAlignment(IDWriteTextLayout4* This) { - return This->lpVtbl->GetOpticalAlignment(This); + return This->lpVtbl->GetOpticalAlignment(This); } -static inline HRESULT IDWriteTextLayout4_SetFontFallback(IDWriteTextLayout4* This,IDWriteFontFallback *fallback) { - return This->lpVtbl->SetFontFallback(This,fallback); +static inline HRESULT IDWriteTextLayout4_SetFontFallback(IDWriteTextLayout4* This, IDWriteFontFallback* fallback) { + return This->lpVtbl->SetFontFallback(This, fallback); } -static inline HRESULT IDWriteTextLayout4_GetFontFallback(IDWriteTextLayout4* This,IDWriteFontFallback **fallback) { - return This->lpVtbl->GetFontFallback(This,fallback); +static inline HRESULT IDWriteTextLayout4_GetFontFallback(IDWriteTextLayout4* This, IDWriteFontFallback** fallback) { + return This->lpVtbl->GetFontFallback(This, fallback); } /*** IDWriteTextLayout3 methods ***/ static inline HRESULT IDWriteTextLayout4_InvalidateLayout(IDWriteTextLayout4* This) { - return This->lpVtbl->InvalidateLayout(This); + return This->lpVtbl->InvalidateLayout(This); } -static inline HRESULT IDWriteTextLayout4_SetLineSpacing(IDWriteTextLayout4* This,const DWRITE_LINE_SPACING *spacing) { - return This->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing); +static inline HRESULT IDWriteTextLayout4_SetLineSpacing(IDWriteTextLayout4* This, const DWRITE_LINE_SPACING* spacing) { + return This->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This, spacing); } -static inline HRESULT IDWriteTextLayout4_GetLineSpacing(IDWriteTextLayout4* This,DWRITE_LINE_SPACING *spacing) { - return This->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing); +static inline HRESULT IDWriteTextLayout4_GetLineSpacing(IDWriteTextLayout4* This, DWRITE_LINE_SPACING* spacing) { + return This->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This, spacing); } -static inline HRESULT IDWriteTextLayout4_GetLineMetrics(IDWriteTextLayout4* This,DWRITE_LINE_METRICS1 *metrics,UINT32 max_count,UINT32 *count) { - return This->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count); +static inline HRESULT IDWriteTextLayout4_GetLineMetrics(IDWriteTextLayout4* This, DWRITE_LINE_METRICS1* metrics, UINT32 max_count, UINT32* count) { + return This->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This, metrics, max_count, count); } /*** IDWriteTextLayout4 methods ***/ -static inline HRESULT IDWriteTextLayout4_SetFontAxisValues(IDWriteTextLayout4* This,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontAxisValues(This,axis_values,num_values,range); +static inline HRESULT IDWriteTextLayout4_SetFontAxisValues(IDWriteTextLayout4* This, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values, DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontAxisValues(This, axis_values, num_values, range); } -static inline UINT32 IDWriteTextLayout4_GetFontAxisValueCount(IDWriteTextLayout4* This,UINT32 pos) { - return This->lpVtbl->GetFontAxisValueCount(This,pos); +static inline UINT32 IDWriteTextLayout4_GetFontAxisValueCount(IDWriteTextLayout4* This, UINT32 pos) { + return This->lpVtbl->GetFontAxisValueCount(This, pos); } -static inline HRESULT IDWriteTextLayout4_GetFontAxisValues(IDWriteTextLayout4* This,UINT32 pos,DWRITE_FONT_AXIS_VALUE *values,UINT32 num_values,DWRITE_TEXT_RANGE *range) { - return This->lpVtbl->GetFontAxisValues(This,pos,values,num_values,range); +static inline HRESULT IDWriteTextLayout4_GetFontAxisValues(IDWriteTextLayout4* This, UINT32 pos, DWRITE_FONT_AXIS_VALUE* values, UINT32 num_values, DWRITE_TEXT_RANGE* range) { + return This->lpVtbl->GetFontAxisValues(This, pos, values, num_values, range); } static inline DWRITE_AUTOMATIC_FONT_AXES IDWriteTextLayout4_GetAutomaticFontAxes(IDWriteTextLayout4* This) { - return This->lpVtbl->GetAutomaticFontAxes(This); + return This->lpVtbl->GetAutomaticFontAxes(This); } -static inline HRESULT IDWriteTextLayout4_SetAutomaticFontAxes(IDWriteTextLayout4* This,DWRITE_AUTOMATIC_FONT_AXES axes) { - return This->lpVtbl->SetAutomaticFontAxes(This,axes); +static inline HRESULT IDWriteTextLayout4_SetAutomaticFontAxes(IDWriteTextLayout4* This, DWRITE_AUTOMATIC_FONT_AXES axes) { + return This->lpVtbl->SetAutomaticFontAxes(This, axes); } #endif #endif #endif - -#endif /* __IDWriteTextLayout4_INTERFACE_DEFINED__ */ +#endif /* __IDWriteTextLayout4_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontFallback1 interface @@ -7541,111 +7439,108 @@ static inline HRESULT IDWriteTextLayout4_SetAutomaticFontAxes(IDWriteTextLayout4 #ifndef __IDWriteFontFallback1_INTERFACE_DEFINED__ #define __IDWriteFontFallback1_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontFallback1, 0x2397599d, 0xdd0d, 0x4681, 0xbd,0x6a, 0xf4,0xf3,0x1e,0xaa,0xde,0x77); +DEFINE_GUID(IID_IDWriteFontFallback1, 0x2397599d, 0xdd0d, 0x4681, 0xbd, 0x6a, 0xf4, 0xf3, 0x1e, 0xaa, 0xde, 0x77); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("2397599d-dd0d-4681-bd6a-f4f31eaade77") -IDWriteFontFallback1 : public IDWriteFontFallback -{ - virtual HRESULT STDMETHODCALLTYPE MapCharacters( - IDWriteTextAnalysisSource *source, - UINT32 pos, - UINT32 length, - IDWriteFontCollection *base_collection, - const WCHAR *familyname, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values, - UINT32 *mapped_length, - FLOAT *scale, - IDWriteFontFace5 **fontface) = 0; - +IDWriteFontFallback1 : public IDWriteFontFallback { + virtual HRESULT STDMETHODCALLTYPE MapCharacters( + IDWriteTextAnalysisSource * source, + UINT32 pos, + UINT32 length, + IDWriteFontCollection * base_collection, + const WCHAR* familyname, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values, + UINT32* mapped_length, + FLOAT* scale, + IDWriteFontFace5** fontface) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFallback1, 0x2397599d, 0xdd0d, 0x4681, 0xbd,0x6a, 0xf4,0xf3,0x1e,0xaa,0xde,0x77) +__CRT_UUID_DECL(IDWriteFontFallback1, 0x2397599d, 0xdd0d, 0x4681, 0xbd, 0x6a, 0xf4, 0xf3, 0x1e, 0xaa, 0xde, 0x77) #endif #else typedef struct IDWriteFontFallback1Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontFallback1 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontFallback1* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontFallback1 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontFallback1* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontFallback1 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontFallback1* This); - /*** IDWriteFontFallback methods ***/ - HRESULT (STDMETHODCALLTYPE *MapCharacters)( - IDWriteFontFallback1 *This, - IDWriteTextAnalysisSource *source, - UINT32 position, - UINT32 length, - IDWriteFontCollection *basecollection, - const WCHAR *baseFamilyName, - DWRITE_FONT_WEIGHT baseWeight, - DWRITE_FONT_STYLE baseStyle, - DWRITE_FONT_STRETCH baseStretch, - UINT32 *mappedLength, - IDWriteFont **mappedFont, - FLOAT *scale); + /*** IDWriteFontFallback methods ***/ + HRESULT(STDMETHODCALLTYPE* MapCharacters)( + IDWriteFontFallback1* This, + IDWriteTextAnalysisSource* source, + UINT32 position, + UINT32 length, + IDWriteFontCollection* basecollection, + const WCHAR* baseFamilyName, + DWRITE_FONT_WEIGHT baseWeight, + DWRITE_FONT_STYLE baseStyle, + DWRITE_FONT_STRETCH baseStretch, + UINT32* mappedLength, + IDWriteFont** mappedFont, + FLOAT* scale); - /*** IDWriteFontFallback1 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFontFallback1_MapCharacters)( - IDWriteFontFallback1 *This, - IDWriteTextAnalysisSource *source, - UINT32 pos, - UINT32 length, - IDWriteFontCollection *base_collection, - const WCHAR *familyname, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values, - UINT32 *mapped_length, - FLOAT *scale, - IDWriteFontFace5 **fontface); + /*** IDWriteFontFallback1 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFontFallback1_MapCharacters)( + IDWriteFontFallback1* This, + IDWriteTextAnalysisSource* source, + UINT32 pos, + UINT32 length, + IDWriteFontCollection* base_collection, + const WCHAR* familyname, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values, + UINT32* mapped_length, + FLOAT* scale, + IDWriteFontFace5** fontface); - END_INTERFACE + END_INTERFACE } IDWriteFontFallback1Vtbl; interface IDWriteFontFallback1 { - CONST_VTBL IDWriteFontFallback1Vtbl* lpVtbl; + CONST_VTBL IDWriteFontFallback1Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontFallback1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFallback1_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontFallback1_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontFallback1_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontFallback methods ***/ /*** IDWriteFontFallback1 methods ***/ -#define IDWriteFontFallback1_MapCharacters(This,source,pos,length,base_collection,familyname,axis_values,num_values,mapped_length,scale,fontface) (This)->lpVtbl->IDWriteFontFallback1_MapCharacters(This,source,pos,length,base_collection,familyname,axis_values,num_values,mapped_length,scale,fontface) +#define IDWriteFontFallback1_MapCharacters(This, source, pos, length, base_collection, familyname, axis_values, num_values, mapped_length, scale, fontface) (This)->lpVtbl->IDWriteFontFallback1_MapCharacters(This, source, pos, length, base_collection, familyname, axis_values, num_values, mapped_length, scale, fontface) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFallback1_QueryInterface(IDWriteFontFallback1* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontFallback1_QueryInterface(IDWriteFontFallback1* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontFallback1_AddRef(IDWriteFontFallback1* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontFallback1_Release(IDWriteFontFallback1* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontFallback methods ***/ /*** IDWriteFontFallback1 methods ***/ -static inline HRESULT IDWriteFontFallback1_MapCharacters(IDWriteFontFallback1* This,IDWriteTextAnalysisSource *source,UINT32 pos,UINT32 length,IDWriteFontCollection *base_collection,const WCHAR *familyname,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,UINT32 *mapped_length,FLOAT *scale,IDWriteFontFace5 **fontface) { - return This->lpVtbl->IDWriteFontFallback1_MapCharacters(This,source,pos,length,base_collection,familyname,axis_values,num_values,mapped_length,scale,fontface); +static inline HRESULT IDWriteFontFallback1_MapCharacters(IDWriteFontFallback1* This, IDWriteTextAnalysisSource* source, UINT32 pos, UINT32 length, IDWriteFontCollection* base_collection, const WCHAR* familyname, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values, UINT32* mapped_length, FLOAT* scale, IDWriteFontFace5** fontface) { + return This->lpVtbl->IDWriteFontFallback1_MapCharacters(This, source, pos, length, base_collection, familyname, axis_values, num_values, mapped_length, scale, fontface); } #endif #endif #endif - -#endif /* __IDWriteFontFallback1_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontFallback1_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteGdiInterop1 interface @@ -7653,168 +7548,165 @@ static inline HRESULT IDWriteFontFallback1_MapCharacters(IDWriteFontFallback1* T #ifndef __IDWriteGdiInterop1_INTERFACE_DEFINED__ #define __IDWriteGdiInterop1_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteGdiInterop1, 0x4556be70, 0x3abd, 0x4f70, 0x90,0xbe, 0x42,0x17,0x80,0xa6,0xf5,0x15); +DEFINE_GUID(IID_IDWriteGdiInterop1, 0x4556be70, 0x3abd, 0x4f70, 0x90, 0xbe, 0x42, 0x17, 0x80, 0xa6, 0xf5, 0x15); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("4556be70-3abd-4f70-90be-421780a6f515") -IDWriteGdiInterop1 : public IDWriteGdiInterop -{ - virtual HRESULT STDMETHODCALLTYPE CreateFontFromLOGFONT( - const LOGFONTW *logfont, - IDWriteFontCollection *collection, - IDWriteFont **font) = 0; +IDWriteGdiInterop1 : public IDWriteGdiInterop { + virtual HRESULT STDMETHODCALLTYPE CreateFontFromLOGFONT( + const LOGFONTW* logfont, + IDWriteFontCollection* collection, + IDWriteFont** font) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontSignature_( - IDWriteFontFace *fontface, - FONTSIGNATURE *fontsig) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontSignature_( + IDWriteFontFace * fontface, + FONTSIGNATURE * fontsig) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontSignature( - IDWriteFont *font, - FONTSIGNATURE *fontsig) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMatchingFontsByLOGFONT( - const LOGFONTW *logfont, - IDWriteFontSet *fontset, - IDWriteFontSet **subset) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontSignature( + IDWriteFont * font, + FONTSIGNATURE * fontsig) = 0; + virtual HRESULT STDMETHODCALLTYPE GetMatchingFontsByLOGFONT( + const LOGFONTW* logfont, + IDWriteFontSet* fontset, + IDWriteFontSet** subset) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteGdiInterop1, 0x4556be70, 0x3abd, 0x4f70, 0x90,0xbe, 0x42,0x17,0x80,0xa6,0xf5,0x15) +__CRT_UUID_DECL(IDWriteGdiInterop1, 0x4556be70, 0x3abd, 0x4f70, 0x90, 0xbe, 0x42, 0x17, 0x80, 0xa6, 0xf5, 0x15) #endif #else typedef struct IDWriteGdiInterop1Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteGdiInterop1 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteGdiInterop1* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteGdiInterop1 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteGdiInterop1* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteGdiInterop1 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteGdiInterop1* This); - /*** IDWriteGdiInterop methods ***/ - HRESULT (STDMETHODCALLTYPE *CreateFontFromLOGFONT)( - IDWriteGdiInterop1 *This, - const LOGFONTW *logfont, - IDWriteFont **font); + /*** IDWriteGdiInterop methods ***/ + HRESULT(STDMETHODCALLTYPE* CreateFontFromLOGFONT)( + IDWriteGdiInterop1* This, + const LOGFONTW* logfont, + IDWriteFont** font); - HRESULT (STDMETHODCALLTYPE *ConvertFontToLOGFONT)( - IDWriteGdiInterop1 *This, - IDWriteFont *font, - LOGFONTW *logfont, - WINBOOL *is_systemfont); + HRESULT(STDMETHODCALLTYPE* ConvertFontToLOGFONT)( + IDWriteGdiInterop1* This, + IDWriteFont* font, + LOGFONTW* logfont, + WINBOOL* is_systemfont); - HRESULT (STDMETHODCALLTYPE *ConvertFontFaceToLOGFONT)( - IDWriteGdiInterop1 *This, - IDWriteFontFace *font, - LOGFONTW *logfont); + HRESULT(STDMETHODCALLTYPE* ConvertFontFaceToLOGFONT)( + IDWriteGdiInterop1* This, + IDWriteFontFace* font, + LOGFONTW* logfont); - HRESULT (STDMETHODCALLTYPE *CreateFontFaceFromHdc)( - IDWriteGdiInterop1 *This, - HDC hdc, - IDWriteFontFace **fontface); + HRESULT(STDMETHODCALLTYPE* CreateFontFaceFromHdc)( + IDWriteGdiInterop1* This, + HDC hdc, + IDWriteFontFace** fontface); - HRESULT (STDMETHODCALLTYPE *CreateBitmapRenderTarget)( - IDWriteGdiInterop1 *This, - HDC hdc, - UINT32 width, - UINT32 height, - IDWriteBitmapRenderTarget **target); + HRESULT(STDMETHODCALLTYPE* CreateBitmapRenderTarget)( + IDWriteGdiInterop1* This, + HDC hdc, + UINT32 width, + UINT32 height, + IDWriteBitmapRenderTarget** target); - /*** IDWriteGdiInterop1 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteGdiInterop1_CreateFontFromLOGFONT)( - IDWriteGdiInterop1 *This, - const LOGFONTW *logfont, - IDWriteFontCollection *collection, - IDWriteFont **font); + /*** IDWriteGdiInterop1 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteGdiInterop1_CreateFontFromLOGFONT)( + IDWriteGdiInterop1* This, + const LOGFONTW* logfont, + IDWriteFontCollection* collection, + IDWriteFont** font); - HRESULT (STDMETHODCALLTYPE *GetFontSignature_)( - IDWriteGdiInterop1 *This, - IDWriteFontFace *fontface, - FONTSIGNATURE *fontsig); + HRESULT(STDMETHODCALLTYPE* GetFontSignature_)( + IDWriteGdiInterop1* This, + IDWriteFontFace* fontface, + FONTSIGNATURE* fontsig); - HRESULT (STDMETHODCALLTYPE *GetFontSignature)( - IDWriteGdiInterop1 *This, - IDWriteFont *font, - FONTSIGNATURE *fontsig); + HRESULT(STDMETHODCALLTYPE* GetFontSignature)( + IDWriteGdiInterop1* This, + IDWriteFont* font, + FONTSIGNATURE* fontsig); - HRESULT (STDMETHODCALLTYPE *GetMatchingFontsByLOGFONT)( - IDWriteGdiInterop1 *This, - const LOGFONTW *logfont, - IDWriteFontSet *fontset, - IDWriteFontSet **subset); + HRESULT(STDMETHODCALLTYPE* GetMatchingFontsByLOGFONT)( + IDWriteGdiInterop1* This, + const LOGFONTW* logfont, + IDWriteFontSet* fontset, + IDWriteFontSet** subset); - END_INTERFACE + END_INTERFACE } IDWriteGdiInterop1Vtbl; interface IDWriteGdiInterop1 { - CONST_VTBL IDWriteGdiInterop1Vtbl* lpVtbl; + CONST_VTBL IDWriteGdiInterop1Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteGdiInterop1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteGdiInterop1_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteGdiInterop1_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteGdiInterop1_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteGdiInterop methods ***/ -#define IDWriteGdiInterop1_ConvertFontToLOGFONT(This,font,logfont,is_systemfont) (This)->lpVtbl->ConvertFontToLOGFONT(This,font,logfont,is_systemfont) -#define IDWriteGdiInterop1_ConvertFontFaceToLOGFONT(This,font,logfont) (This)->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logfont) -#define IDWriteGdiInterop1_CreateFontFaceFromHdc(This,hdc,fontface) (This)->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontface) -#define IDWriteGdiInterop1_CreateBitmapRenderTarget(This,hdc,width,height,target) (This)->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,target) +#define IDWriteGdiInterop1_ConvertFontToLOGFONT(This, font, logfont, is_systemfont) (This)->lpVtbl->ConvertFontToLOGFONT(This, font, logfont, is_systemfont) +#define IDWriteGdiInterop1_ConvertFontFaceToLOGFONT(This, font, logfont) (This)->lpVtbl->ConvertFontFaceToLOGFONT(This, font, logfont) +#define IDWriteGdiInterop1_CreateFontFaceFromHdc(This, hdc, fontface) (This)->lpVtbl->CreateFontFaceFromHdc(This, hdc, fontface) +#define IDWriteGdiInterop1_CreateBitmapRenderTarget(This, hdc, width, height, target) (This)->lpVtbl->CreateBitmapRenderTarget(This, hdc, width, height, target) /*** IDWriteGdiInterop1 methods ***/ -#define IDWriteGdiInterop1_CreateFontFromLOGFONT(This,logfont,collection,font) (This)->lpVtbl->IDWriteGdiInterop1_CreateFontFromLOGFONT(This,logfont,collection,font) -#define IDWriteGdiInterop1_GetFontSignature_(This,fontface,fontsig) (This)->lpVtbl->GetFontSignature_(This,fontface,fontsig) -#define IDWriteGdiInterop1_GetFontSignature(This,font,fontsig) (This)->lpVtbl->GetFontSignature(This,font,fontsig) -#define IDWriteGdiInterop1_GetMatchingFontsByLOGFONT(This,logfont,fontset,subset) (This)->lpVtbl->GetMatchingFontsByLOGFONT(This,logfont,fontset,subset) +#define IDWriteGdiInterop1_CreateFontFromLOGFONT(This, logfont, collection, font) (This)->lpVtbl->IDWriteGdiInterop1_CreateFontFromLOGFONT(This, logfont, collection, font) +#define IDWriteGdiInterop1_GetFontSignature_(This, fontface, fontsig) (This)->lpVtbl->GetFontSignature_(This, fontface, fontsig) +#define IDWriteGdiInterop1_GetFontSignature(This, font, fontsig) (This)->lpVtbl->GetFontSignature(This, font, fontsig) +#define IDWriteGdiInterop1_GetMatchingFontsByLOGFONT(This, logfont, fontset, subset) (This)->lpVtbl->GetMatchingFontsByLOGFONT(This, logfont, fontset, subset) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteGdiInterop1_QueryInterface(IDWriteGdiInterop1* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteGdiInterop1_QueryInterface(IDWriteGdiInterop1* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteGdiInterop1_AddRef(IDWriteGdiInterop1* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteGdiInterop1_Release(IDWriteGdiInterop1* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteGdiInterop methods ***/ -static inline HRESULT IDWriteGdiInterop1_ConvertFontToLOGFONT(IDWriteGdiInterop1* This,IDWriteFont *font,LOGFONTW *logfont,WINBOOL *is_systemfont) { - return This->lpVtbl->ConvertFontToLOGFONT(This,font,logfont,is_systemfont); +static inline HRESULT IDWriteGdiInterop1_ConvertFontToLOGFONT(IDWriteGdiInterop1* This, IDWriteFont* font, LOGFONTW* logfont, WINBOOL* is_systemfont) { + return This->lpVtbl->ConvertFontToLOGFONT(This, font, logfont, is_systemfont); } -static inline HRESULT IDWriteGdiInterop1_ConvertFontFaceToLOGFONT(IDWriteGdiInterop1* This,IDWriteFontFace *font,LOGFONTW *logfont) { - return This->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logfont); +static inline HRESULT IDWriteGdiInterop1_ConvertFontFaceToLOGFONT(IDWriteGdiInterop1* This, IDWriteFontFace* font, LOGFONTW* logfont) { + return This->lpVtbl->ConvertFontFaceToLOGFONT(This, font, logfont); } -static inline HRESULT IDWriteGdiInterop1_CreateFontFaceFromHdc(IDWriteGdiInterop1* This,HDC hdc,IDWriteFontFace **fontface) { - return This->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontface); +static inline HRESULT IDWriteGdiInterop1_CreateFontFaceFromHdc(IDWriteGdiInterop1* This, HDC hdc, IDWriteFontFace** fontface) { + return This->lpVtbl->CreateFontFaceFromHdc(This, hdc, fontface); } -static inline HRESULT IDWriteGdiInterop1_CreateBitmapRenderTarget(IDWriteGdiInterop1* This,HDC hdc,UINT32 width,UINT32 height,IDWriteBitmapRenderTarget **target) { - return This->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,target); +static inline HRESULT IDWriteGdiInterop1_CreateBitmapRenderTarget(IDWriteGdiInterop1* This, HDC hdc, UINT32 width, UINT32 height, IDWriteBitmapRenderTarget** target) { + return This->lpVtbl->CreateBitmapRenderTarget(This, hdc, width, height, target); } /*** IDWriteGdiInterop1 methods ***/ -static inline HRESULT IDWriteGdiInterop1_CreateFontFromLOGFONT(IDWriteGdiInterop1* This,const LOGFONTW *logfont,IDWriteFontCollection *collection,IDWriteFont **font) { - return This->lpVtbl->IDWriteGdiInterop1_CreateFontFromLOGFONT(This,logfont,collection,font); +static inline HRESULT IDWriteGdiInterop1_CreateFontFromLOGFONT(IDWriteGdiInterop1* This, const LOGFONTW* logfont, IDWriteFontCollection* collection, IDWriteFont** font) { + return This->lpVtbl->IDWriteGdiInterop1_CreateFontFromLOGFONT(This, logfont, collection, font); } -static inline HRESULT IDWriteGdiInterop1_GetFontSignature_(IDWriteGdiInterop1* This,IDWriteFontFace *fontface,FONTSIGNATURE *fontsig) { - return This->lpVtbl->GetFontSignature_(This,fontface,fontsig); +static inline HRESULT IDWriteGdiInterop1_GetFontSignature_(IDWriteGdiInterop1* This, IDWriteFontFace* fontface, FONTSIGNATURE* fontsig) { + return This->lpVtbl->GetFontSignature_(This, fontface, fontsig); } -static inline HRESULT IDWriteGdiInterop1_GetFontSignature(IDWriteGdiInterop1* This,IDWriteFont *font,FONTSIGNATURE *fontsig) { - return This->lpVtbl->GetFontSignature(This,font,fontsig); +static inline HRESULT IDWriteGdiInterop1_GetFontSignature(IDWriteGdiInterop1* This, IDWriteFont* font, FONTSIGNATURE* fontsig) { + return This->lpVtbl->GetFontSignature(This, font, fontsig); } -static inline HRESULT IDWriteGdiInterop1_GetMatchingFontsByLOGFONT(IDWriteGdiInterop1* This,const LOGFONTW *logfont,IDWriteFontSet *fontset,IDWriteFontSet **subset) { - return This->lpVtbl->GetMatchingFontsByLOGFONT(This,logfont,fontset,subset); +static inline HRESULT IDWriteGdiInterop1_GetMatchingFontsByLOGFONT(IDWriteGdiInterop1* This, const LOGFONTW* logfont, IDWriteFontSet* fontset, IDWriteFontSet** subset) { + return This->lpVtbl->GetMatchingFontsByLOGFONT(This, logfont, fontset, subset); } #endif #endif #endif - -#endif /* __IDWriteGdiInterop1_INTERFACE_DEFINED__ */ +#endif /* __IDWriteGdiInterop1_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontSetBuilder interface @@ -7822,113 +7714,110 @@ static inline HRESULT IDWriteGdiInterop1_GetMatchingFontsByLOGFONT(IDWriteGdiInt #ifndef __IDWriteFontSetBuilder_INTERFACE_DEFINED__ #define __IDWriteFontSetBuilder_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontSetBuilder, 0x2f642afe, 0x9c68, 0x4f40, 0xb8,0xbe, 0x45,0x74,0x01,0xaf,0xcb,0x3d); +DEFINE_GUID(IID_IDWriteFontSetBuilder, 0x2f642afe, 0x9c68, 0x4f40, 0xb8, 0xbe, 0x45, 0x74, 0x01, 0xaf, 0xcb, 0x3d); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("2f642afe-9c68-4f40-b8be-457401afcb3d") -IDWriteFontSetBuilder : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE AddFontFaceReference_( - IDWriteFontFaceReference *ref, - const DWRITE_FONT_PROPERTY *props, - UINT32 prop_count) = 0; +IDWriteFontSetBuilder : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE AddFontFaceReference_( + IDWriteFontFaceReference * ref, + const DWRITE_FONT_PROPERTY* props, + UINT32 prop_count) = 0; - virtual HRESULT STDMETHODCALLTYPE AddFontFaceReference( - IDWriteFontFaceReference *ref) = 0; + virtual HRESULT STDMETHODCALLTYPE AddFontFaceReference( + IDWriteFontFaceReference * ref) = 0; - virtual HRESULT STDMETHODCALLTYPE AddFontSet( - IDWriteFontSet *fontset) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontSet( - IDWriteFontSet **fontset) = 0; + virtual HRESULT STDMETHODCALLTYPE AddFontSet( + IDWriteFontSet * fontset) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateFontSet( + IDWriteFontSet * *fontset) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontSetBuilder, 0x2f642afe, 0x9c68, 0x4f40, 0xb8,0xbe, 0x45,0x74,0x01,0xaf,0xcb,0x3d) +__CRT_UUID_DECL(IDWriteFontSetBuilder, 0x2f642afe, 0x9c68, 0x4f40, 0xb8, 0xbe, 0x45, 0x74, 0x01, 0xaf, 0xcb, 0x3d) #endif #else typedef struct IDWriteFontSetBuilderVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontSetBuilder *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontSetBuilder* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontSetBuilder *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontSetBuilder* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontSetBuilder *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontSetBuilder* This); - /*** IDWriteFontSetBuilder methods ***/ - HRESULT (STDMETHODCALLTYPE *AddFontFaceReference_)( - IDWriteFontSetBuilder *This, - IDWriteFontFaceReference *ref, - const DWRITE_FONT_PROPERTY *props, - UINT32 prop_count); + /*** IDWriteFontSetBuilder methods ***/ + HRESULT(STDMETHODCALLTYPE* AddFontFaceReference_)( + IDWriteFontSetBuilder* This, + IDWriteFontFaceReference* ref, + const DWRITE_FONT_PROPERTY* props, + UINT32 prop_count); - HRESULT (STDMETHODCALLTYPE *AddFontFaceReference)( - IDWriteFontSetBuilder *This, - IDWriteFontFaceReference *ref); + HRESULT(STDMETHODCALLTYPE* AddFontFaceReference)( + IDWriteFontSetBuilder* This, + IDWriteFontFaceReference* ref); - HRESULT (STDMETHODCALLTYPE *AddFontSet)( - IDWriteFontSetBuilder *This, - IDWriteFontSet *fontset); + HRESULT(STDMETHODCALLTYPE* AddFontSet)( + IDWriteFontSetBuilder* This, + IDWriteFontSet* fontset); - HRESULT (STDMETHODCALLTYPE *CreateFontSet)( - IDWriteFontSetBuilder *This, - IDWriteFontSet **fontset); + HRESULT(STDMETHODCALLTYPE* CreateFontSet)( + IDWriteFontSetBuilder* This, + IDWriteFontSet** fontset); - END_INTERFACE + END_INTERFACE } IDWriteFontSetBuilderVtbl; interface IDWriteFontSetBuilder { - CONST_VTBL IDWriteFontSetBuilderVtbl* lpVtbl; + CONST_VTBL IDWriteFontSetBuilderVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontSetBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSetBuilder_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontSetBuilder_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontSetBuilder_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontSetBuilder methods ***/ -#define IDWriteFontSetBuilder_AddFontFaceReference_(This,ref,props,prop_count) (This)->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count) -#define IDWriteFontSetBuilder_AddFontFaceReference(This,ref) (This)->lpVtbl->AddFontFaceReference(This,ref) -#define IDWriteFontSetBuilder_AddFontSet(This,fontset) (This)->lpVtbl->AddFontSet(This,fontset) -#define IDWriteFontSetBuilder_CreateFontSet(This,fontset) (This)->lpVtbl->CreateFontSet(This,fontset) +#define IDWriteFontSetBuilder_AddFontFaceReference_(This, ref, props, prop_count) (This)->lpVtbl->AddFontFaceReference_(This, ref, props, prop_count) +#define IDWriteFontSetBuilder_AddFontFaceReference(This, ref) (This)->lpVtbl->AddFontFaceReference(This, ref) +#define IDWriteFontSetBuilder_AddFontSet(This, fontset) (This)->lpVtbl->AddFontSet(This, fontset) +#define IDWriteFontSetBuilder_CreateFontSet(This, fontset) (This)->lpVtbl->CreateFontSet(This, fontset) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontSetBuilder_QueryInterface(IDWriteFontSetBuilder* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontSetBuilder_QueryInterface(IDWriteFontSetBuilder* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontSetBuilder_AddRef(IDWriteFontSetBuilder* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontSetBuilder_Release(IDWriteFontSetBuilder* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontSetBuilder methods ***/ -static inline HRESULT IDWriteFontSetBuilder_AddFontFaceReference_(IDWriteFontSetBuilder* This,IDWriteFontFaceReference *ref,const DWRITE_FONT_PROPERTY *props,UINT32 prop_count) { - return This->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count); +static inline HRESULT IDWriteFontSetBuilder_AddFontFaceReference_(IDWriteFontSetBuilder* This, IDWriteFontFaceReference* ref, const DWRITE_FONT_PROPERTY* props, UINT32 prop_count) { + return This->lpVtbl->AddFontFaceReference_(This, ref, props, prop_count); } -static inline HRESULT IDWriteFontSetBuilder_AddFontFaceReference(IDWriteFontSetBuilder* This,IDWriteFontFaceReference *ref) { - return This->lpVtbl->AddFontFaceReference(This,ref); +static inline HRESULT IDWriteFontSetBuilder_AddFontFaceReference(IDWriteFontSetBuilder* This, IDWriteFontFaceReference* ref) { + return This->lpVtbl->AddFontFaceReference(This, ref); } -static inline HRESULT IDWriteFontSetBuilder_AddFontSet(IDWriteFontSetBuilder* This,IDWriteFontSet *fontset) { - return This->lpVtbl->AddFontSet(This,fontset); +static inline HRESULT IDWriteFontSetBuilder_AddFontSet(IDWriteFontSetBuilder* This, IDWriteFontSet* fontset) { + return This->lpVtbl->AddFontSet(This, fontset); } -static inline HRESULT IDWriteFontSetBuilder_CreateFontSet(IDWriteFontSetBuilder* This,IDWriteFontSet **fontset) { - return This->lpVtbl->CreateFontSet(This,fontset); +static inline HRESULT IDWriteFontSetBuilder_CreateFontSet(IDWriteFontSetBuilder* This, IDWriteFontSet** fontset) { + return This->lpVtbl->CreateFontSet(This, fontset); } #endif #endif #endif - -#endif /* __IDWriteFontSetBuilder_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontSetBuilder_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontSetBuilder1 interface @@ -7936,113 +7825,110 @@ static inline HRESULT IDWriteFontSetBuilder_CreateFontSet(IDWriteFontSetBuilder* #ifndef __IDWriteFontSetBuilder1_INTERFACE_DEFINED__ #define __IDWriteFontSetBuilder1_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontSetBuilder1, 0x3ff7715f, 0x3cdc, 0x4dc6, 0x9b,0x72, 0xec,0x56,0x21,0xdc,0xca,0xfd); +DEFINE_GUID(IID_IDWriteFontSetBuilder1, 0x3ff7715f, 0x3cdc, 0x4dc6, 0x9b, 0x72, 0xec, 0x56, 0x21, 0xdc, 0xca, 0xfd); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("3ff7715f-3cdc-4dc6-9b72-ec5621dccafd") -IDWriteFontSetBuilder1 : public IDWriteFontSetBuilder -{ - virtual HRESULT STDMETHODCALLTYPE AddFontFile( - IDWriteFontFile *file) = 0; - +IDWriteFontSetBuilder1 : public IDWriteFontSetBuilder { + virtual HRESULT STDMETHODCALLTYPE AddFontFile( + IDWriteFontFile * file) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontSetBuilder1, 0x3ff7715f, 0x3cdc, 0x4dc6, 0x9b,0x72, 0xec,0x56,0x21,0xdc,0xca,0xfd) +__CRT_UUID_DECL(IDWriteFontSetBuilder1, 0x3ff7715f, 0x3cdc, 0x4dc6, 0x9b, 0x72, 0xec, 0x56, 0x21, 0xdc, 0xca, 0xfd) #endif #else typedef struct IDWriteFontSetBuilder1Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontSetBuilder1 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontSetBuilder1* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontSetBuilder1 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontSetBuilder1* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontSetBuilder1 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontSetBuilder1* This); - /*** IDWriteFontSetBuilder methods ***/ - HRESULT (STDMETHODCALLTYPE *AddFontFaceReference_)( - IDWriteFontSetBuilder1 *This, - IDWriteFontFaceReference *ref, - const DWRITE_FONT_PROPERTY *props, - UINT32 prop_count); + /*** IDWriteFontSetBuilder methods ***/ + HRESULT(STDMETHODCALLTYPE* AddFontFaceReference_)( + IDWriteFontSetBuilder1* This, + IDWriteFontFaceReference* ref, + const DWRITE_FONT_PROPERTY* props, + UINT32 prop_count); - HRESULT (STDMETHODCALLTYPE *AddFontFaceReference)( - IDWriteFontSetBuilder1 *This, - IDWriteFontFaceReference *ref); + HRESULT(STDMETHODCALLTYPE* AddFontFaceReference)( + IDWriteFontSetBuilder1* This, + IDWriteFontFaceReference* ref); - HRESULT (STDMETHODCALLTYPE *AddFontSet)( - IDWriteFontSetBuilder1 *This, - IDWriteFontSet *fontset); + HRESULT(STDMETHODCALLTYPE* AddFontSet)( + IDWriteFontSetBuilder1* This, + IDWriteFontSet* fontset); - HRESULT (STDMETHODCALLTYPE *CreateFontSet)( - IDWriteFontSetBuilder1 *This, - IDWriteFontSet **fontset); + HRESULT(STDMETHODCALLTYPE* CreateFontSet)( + IDWriteFontSetBuilder1* This, + IDWriteFontSet** fontset); - /*** IDWriteFontSetBuilder1 methods ***/ - HRESULT (STDMETHODCALLTYPE *AddFontFile)( - IDWriteFontSetBuilder1 *This, - IDWriteFontFile *file); + /*** IDWriteFontSetBuilder1 methods ***/ + HRESULT(STDMETHODCALLTYPE* AddFontFile)( + IDWriteFontSetBuilder1* This, + IDWriteFontFile* file); - END_INTERFACE + END_INTERFACE } IDWriteFontSetBuilder1Vtbl; interface IDWriteFontSetBuilder1 { - CONST_VTBL IDWriteFontSetBuilder1Vtbl* lpVtbl; + CONST_VTBL IDWriteFontSetBuilder1Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontSetBuilder1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSetBuilder1_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontSetBuilder1_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontSetBuilder1_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontSetBuilder methods ***/ -#define IDWriteFontSetBuilder1_AddFontFaceReference_(This,ref,props,prop_count) (This)->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count) -#define IDWriteFontSetBuilder1_AddFontFaceReference(This,ref) (This)->lpVtbl->AddFontFaceReference(This,ref) -#define IDWriteFontSetBuilder1_AddFontSet(This,fontset) (This)->lpVtbl->AddFontSet(This,fontset) -#define IDWriteFontSetBuilder1_CreateFontSet(This,fontset) (This)->lpVtbl->CreateFontSet(This,fontset) +#define IDWriteFontSetBuilder1_AddFontFaceReference_(This, ref, props, prop_count) (This)->lpVtbl->AddFontFaceReference_(This, ref, props, prop_count) +#define IDWriteFontSetBuilder1_AddFontFaceReference(This, ref) (This)->lpVtbl->AddFontFaceReference(This, ref) +#define IDWriteFontSetBuilder1_AddFontSet(This, fontset) (This)->lpVtbl->AddFontSet(This, fontset) +#define IDWriteFontSetBuilder1_CreateFontSet(This, fontset) (This)->lpVtbl->CreateFontSet(This, fontset) /*** IDWriteFontSetBuilder1 methods ***/ -#define IDWriteFontSetBuilder1_AddFontFile(This,file) (This)->lpVtbl->AddFontFile(This,file) +#define IDWriteFontSetBuilder1_AddFontFile(This, file) (This)->lpVtbl->AddFontFile(This, file) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontSetBuilder1_QueryInterface(IDWriteFontSetBuilder1* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontSetBuilder1_QueryInterface(IDWriteFontSetBuilder1* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontSetBuilder1_AddRef(IDWriteFontSetBuilder1* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontSetBuilder1_Release(IDWriteFontSetBuilder1* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontSetBuilder methods ***/ -static inline HRESULT IDWriteFontSetBuilder1_AddFontFaceReference_(IDWriteFontSetBuilder1* This,IDWriteFontFaceReference *ref,const DWRITE_FONT_PROPERTY *props,UINT32 prop_count) { - return This->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count); +static inline HRESULT IDWriteFontSetBuilder1_AddFontFaceReference_(IDWriteFontSetBuilder1* This, IDWriteFontFaceReference* ref, const DWRITE_FONT_PROPERTY* props, UINT32 prop_count) { + return This->lpVtbl->AddFontFaceReference_(This, ref, props, prop_count); } -static inline HRESULT IDWriteFontSetBuilder1_AddFontFaceReference(IDWriteFontSetBuilder1* This,IDWriteFontFaceReference *ref) { - return This->lpVtbl->AddFontFaceReference(This,ref); +static inline HRESULT IDWriteFontSetBuilder1_AddFontFaceReference(IDWriteFontSetBuilder1* This, IDWriteFontFaceReference* ref) { + return This->lpVtbl->AddFontFaceReference(This, ref); } -static inline HRESULT IDWriteFontSetBuilder1_AddFontSet(IDWriteFontSetBuilder1* This,IDWriteFontSet *fontset) { - return This->lpVtbl->AddFontSet(This,fontset); +static inline HRESULT IDWriteFontSetBuilder1_AddFontSet(IDWriteFontSetBuilder1* This, IDWriteFontSet* fontset) { + return This->lpVtbl->AddFontSet(This, fontset); } -static inline HRESULT IDWriteFontSetBuilder1_CreateFontSet(IDWriteFontSetBuilder1* This,IDWriteFontSet **fontset) { - return This->lpVtbl->CreateFontSet(This,fontset); +static inline HRESULT IDWriteFontSetBuilder1_CreateFontSet(IDWriteFontSetBuilder1* This, IDWriteFontSet** fontset) { + return This->lpVtbl->CreateFontSet(This, fontset); } /*** IDWriteFontSetBuilder1 methods ***/ -static inline HRESULT IDWriteFontSetBuilder1_AddFontFile(IDWriteFontSetBuilder1* This,IDWriteFontFile *file) { - return This->lpVtbl->AddFontFile(This,file); +static inline HRESULT IDWriteFontSetBuilder1_AddFontFile(IDWriteFontSetBuilder1* This, IDWriteFontFile* file) { + return This->lpVtbl->AddFontFile(This, file); } #endif #endif #endif - -#endif /* __IDWriteFontSetBuilder1_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontSetBuilder1_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontSetBuilder2 interface @@ -8050,147 +7936,144 @@ static inline HRESULT IDWriteFontSetBuilder1_AddFontFile(IDWriteFontSetBuilder1* #ifndef __IDWriteFontSetBuilder2_INTERFACE_DEFINED__ #define __IDWriteFontSetBuilder2_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontSetBuilder2, 0xee5ba612, 0xb131, 0x463c, 0x8f,0x4f, 0x31,0x89,0xb9,0x40,0x1e,0x45); +DEFINE_GUID(IID_IDWriteFontSetBuilder2, 0xee5ba612, 0xb131, 0x463c, 0x8f, 0x4f, 0x31, 0x89, 0xb9, 0x40, 0x1e, 0x45); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("ee5ba612-b131-463c-8f4f-3189b9401e45") -IDWriteFontSetBuilder2 : public IDWriteFontSetBuilder1 -{ - virtual HRESULT STDMETHODCALLTYPE AddFont( - IDWriteFontFile *fontfile, - UINT32 face_index, - DWRITE_FONT_SIMULATIONS simulations, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values, - const DWRITE_FONT_AXIS_RANGE *axis_ranges, - UINT32 num_ranges, - const DWRITE_FONT_PROPERTY *props, - UINT32 num_properties) = 0; - - virtual HRESULT STDMETHODCALLTYPE AddFontFile( - const WCHAR *filepath) = 0; +IDWriteFontSetBuilder2 : public IDWriteFontSetBuilder1 { + virtual HRESULT STDMETHODCALLTYPE AddFont( + IDWriteFontFile * fontfile, + UINT32 face_index, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values, + const DWRITE_FONT_AXIS_RANGE* axis_ranges, + UINT32 num_ranges, + const DWRITE_FONT_PROPERTY* props, + UINT32 num_properties) = 0; + virtual HRESULT STDMETHODCALLTYPE AddFontFile( + const WCHAR* filepath) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontSetBuilder2, 0xee5ba612, 0xb131, 0x463c, 0x8f,0x4f, 0x31,0x89,0xb9,0x40,0x1e,0x45) +__CRT_UUID_DECL(IDWriteFontSetBuilder2, 0xee5ba612, 0xb131, 0x463c, 0x8f, 0x4f, 0x31, 0x89, 0xb9, 0x40, 0x1e, 0x45) #endif #else typedef struct IDWriteFontSetBuilder2Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontSetBuilder2 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontSetBuilder2* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontSetBuilder2 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontSetBuilder2* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontSetBuilder2 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontSetBuilder2* This); - /*** IDWriteFontSetBuilder methods ***/ - HRESULT (STDMETHODCALLTYPE *AddFontFaceReference_)( - IDWriteFontSetBuilder2 *This, - IDWriteFontFaceReference *ref, - const DWRITE_FONT_PROPERTY *props, - UINT32 prop_count); + /*** IDWriteFontSetBuilder methods ***/ + HRESULT(STDMETHODCALLTYPE* AddFontFaceReference_)( + IDWriteFontSetBuilder2* This, + IDWriteFontFaceReference* ref, + const DWRITE_FONT_PROPERTY* props, + UINT32 prop_count); - HRESULT (STDMETHODCALLTYPE *AddFontFaceReference)( - IDWriteFontSetBuilder2 *This, - IDWriteFontFaceReference *ref); + HRESULT(STDMETHODCALLTYPE* AddFontFaceReference)( + IDWriteFontSetBuilder2* This, + IDWriteFontFaceReference* ref); - HRESULT (STDMETHODCALLTYPE *AddFontSet)( - IDWriteFontSetBuilder2 *This, - IDWriteFontSet *fontset); + HRESULT(STDMETHODCALLTYPE* AddFontSet)( + IDWriteFontSetBuilder2* This, + IDWriteFontSet* fontset); - HRESULT (STDMETHODCALLTYPE *CreateFontSet)( - IDWriteFontSetBuilder2 *This, - IDWriteFontSet **fontset); + HRESULT(STDMETHODCALLTYPE* CreateFontSet)( + IDWriteFontSetBuilder2* This, + IDWriteFontSet** fontset); - /*** IDWriteFontSetBuilder1 methods ***/ - HRESULT (STDMETHODCALLTYPE *AddFontFile)( - IDWriteFontSetBuilder2 *This, - IDWriteFontFile *file); + /*** IDWriteFontSetBuilder1 methods ***/ + HRESULT(STDMETHODCALLTYPE* AddFontFile)( + IDWriteFontSetBuilder2* This, + IDWriteFontFile* file); - /*** IDWriteFontSetBuilder2 methods ***/ - HRESULT (STDMETHODCALLTYPE *AddFont)( - IDWriteFontSetBuilder2 *This, - IDWriteFontFile *fontfile, - UINT32 face_index, - DWRITE_FONT_SIMULATIONS simulations, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_values, - const DWRITE_FONT_AXIS_RANGE *axis_ranges, - UINT32 num_ranges, - const DWRITE_FONT_PROPERTY *props, - UINT32 num_properties); + /*** IDWriteFontSetBuilder2 methods ***/ + HRESULT(STDMETHODCALLTYPE* AddFont)( + IDWriteFontSetBuilder2* This, + IDWriteFontFile* fontfile, + UINT32 face_index, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_values, + const DWRITE_FONT_AXIS_RANGE* axis_ranges, + UINT32 num_ranges, + const DWRITE_FONT_PROPERTY* props, + UINT32 num_properties); - HRESULT (STDMETHODCALLTYPE *IDWriteFontSetBuilder2_AddFontFile)( - IDWriteFontSetBuilder2 *This, - const WCHAR *filepath); + HRESULT(STDMETHODCALLTYPE* IDWriteFontSetBuilder2_AddFontFile)( + IDWriteFontSetBuilder2* This, + const WCHAR* filepath); - END_INTERFACE + END_INTERFACE } IDWriteFontSetBuilder2Vtbl; interface IDWriteFontSetBuilder2 { - CONST_VTBL IDWriteFontSetBuilder2Vtbl* lpVtbl; + CONST_VTBL IDWriteFontSetBuilder2Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontSetBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSetBuilder2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontSetBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontSetBuilder2_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontSetBuilder methods ***/ -#define IDWriteFontSetBuilder2_AddFontFaceReference_(This,ref,props,prop_count) (This)->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count) -#define IDWriteFontSetBuilder2_AddFontFaceReference(This,ref) (This)->lpVtbl->AddFontFaceReference(This,ref) -#define IDWriteFontSetBuilder2_AddFontSet(This,fontset) (This)->lpVtbl->AddFontSet(This,fontset) -#define IDWriteFontSetBuilder2_CreateFontSet(This,fontset) (This)->lpVtbl->CreateFontSet(This,fontset) +#define IDWriteFontSetBuilder2_AddFontFaceReference_(This, ref, props, prop_count) (This)->lpVtbl->AddFontFaceReference_(This, ref, props, prop_count) +#define IDWriteFontSetBuilder2_AddFontFaceReference(This, ref) (This)->lpVtbl->AddFontFaceReference(This, ref) +#define IDWriteFontSetBuilder2_AddFontSet(This, fontset) (This)->lpVtbl->AddFontSet(This, fontset) +#define IDWriteFontSetBuilder2_CreateFontSet(This, fontset) (This)->lpVtbl->CreateFontSet(This, fontset) /*** IDWriteFontSetBuilder1 methods ***/ /*** IDWriteFontSetBuilder2 methods ***/ -#define IDWriteFontSetBuilder2_AddFont(This,fontfile,face_index,simulations,axis_values,num_values,axis_ranges,num_ranges,props,num_properties) (This)->lpVtbl->AddFont(This,fontfile,face_index,simulations,axis_values,num_values,axis_ranges,num_ranges,props,num_properties) -#define IDWriteFontSetBuilder2_AddFontFile(This,filepath) (This)->lpVtbl->IDWriteFontSetBuilder2_AddFontFile(This,filepath) +#define IDWriteFontSetBuilder2_AddFont(This, fontfile, face_index, simulations, axis_values, num_values, axis_ranges, num_ranges, props, num_properties) (This)->lpVtbl->AddFont(This, fontfile, face_index, simulations, axis_values, num_values, axis_ranges, num_ranges, props, num_properties) +#define IDWriteFontSetBuilder2_AddFontFile(This, filepath) (This)->lpVtbl->IDWriteFontSetBuilder2_AddFontFile(This, filepath) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontSetBuilder2_QueryInterface(IDWriteFontSetBuilder2* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontSetBuilder2_QueryInterface(IDWriteFontSetBuilder2* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontSetBuilder2_AddRef(IDWriteFontSetBuilder2* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontSetBuilder2_Release(IDWriteFontSetBuilder2* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontSetBuilder methods ***/ -static inline HRESULT IDWriteFontSetBuilder2_AddFontFaceReference_(IDWriteFontSetBuilder2* This,IDWriteFontFaceReference *ref,const DWRITE_FONT_PROPERTY *props,UINT32 prop_count) { - return This->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count); +static inline HRESULT IDWriteFontSetBuilder2_AddFontFaceReference_(IDWriteFontSetBuilder2* This, IDWriteFontFaceReference* ref, const DWRITE_FONT_PROPERTY* props, UINT32 prop_count) { + return This->lpVtbl->AddFontFaceReference_(This, ref, props, prop_count); } -static inline HRESULT IDWriteFontSetBuilder2_AddFontFaceReference(IDWriteFontSetBuilder2* This,IDWriteFontFaceReference *ref) { - return This->lpVtbl->AddFontFaceReference(This,ref); +static inline HRESULT IDWriteFontSetBuilder2_AddFontFaceReference(IDWriteFontSetBuilder2* This, IDWriteFontFaceReference* ref) { + return This->lpVtbl->AddFontFaceReference(This, ref); } -static inline HRESULT IDWriteFontSetBuilder2_AddFontSet(IDWriteFontSetBuilder2* This,IDWriteFontSet *fontset) { - return This->lpVtbl->AddFontSet(This,fontset); +static inline HRESULT IDWriteFontSetBuilder2_AddFontSet(IDWriteFontSetBuilder2* This, IDWriteFontSet* fontset) { + return This->lpVtbl->AddFontSet(This, fontset); } -static inline HRESULT IDWriteFontSetBuilder2_CreateFontSet(IDWriteFontSetBuilder2* This,IDWriteFontSet **fontset) { - return This->lpVtbl->CreateFontSet(This,fontset); +static inline HRESULT IDWriteFontSetBuilder2_CreateFontSet(IDWriteFontSetBuilder2* This, IDWriteFontSet** fontset) { + return This->lpVtbl->CreateFontSet(This, fontset); } /*** IDWriteFontSetBuilder1 methods ***/ /*** IDWriteFontSetBuilder2 methods ***/ -static inline HRESULT IDWriteFontSetBuilder2_AddFont(IDWriteFontSetBuilder2* This,IDWriteFontFile *fontfile,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties) { - return This->lpVtbl->AddFont(This,fontfile,face_index,simulations,axis_values,num_values,axis_ranges,num_ranges,props,num_properties); +static inline HRESULT IDWriteFontSetBuilder2_AddFont(IDWriteFontSetBuilder2* This, IDWriteFontFile* fontfile, UINT32 face_index, DWRITE_FONT_SIMULATIONS simulations, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values, const DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, const DWRITE_FONT_PROPERTY* props, UINT32 num_properties) { + return This->lpVtbl->AddFont(This, fontfile, face_index, simulations, axis_values, num_values, axis_ranges, num_ranges, props, num_properties); } -static inline HRESULT IDWriteFontSetBuilder2_AddFontFile(IDWriteFontSetBuilder2* This,const WCHAR *filepath) { - return This->lpVtbl->IDWriteFontSetBuilder2_AddFontFile(This,filepath); +static inline HRESULT IDWriteFontSetBuilder2_AddFontFile(IDWriteFontSetBuilder2* This, const WCHAR* filepath) { + return This->lpVtbl->IDWriteFontSetBuilder2_AddFontFile(This, filepath); } #endif #endif #endif - -#endif /* __IDWriteFontSetBuilder2_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontSetBuilder2_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFactory3 interface @@ -8198,514 +8081,511 @@ static inline HRESULT IDWriteFontSetBuilder2_AddFontFile(IDWriteFontSetBuilder2* #ifndef __IDWriteFactory3_INTERFACE_DEFINED__ #define __IDWriteFactory3_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFactory3, 0x9a1b41c3, 0xd3bb, 0x466a, 0x87,0xfc, 0xfe,0x67,0x55,0x6a,0x3b,0x65); +DEFINE_GUID(IID_IDWriteFactory3, 0x9a1b41c3, 0xd3bb, 0x466a, 0x87, 0xfc, 0xfe, 0x67, 0x55, 0x6a, 0x3b, 0x65); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("9a1b41c3-d3bb-466a-87fc-fe67556a3b65") -IDWriteFactory3 : public IDWriteFactory2 -{ - virtual HRESULT STDMETHODCALLTYPE CreateGlyphRunAnalysis( - const DWRITE_GLYPH_RUN *run, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, - FLOAT origin_x, - FLOAT origin_y, - IDWriteGlyphRunAnalysis **analysis) = 0; +IDWriteFactory3 : public IDWriteFactory2 { + virtual HRESULT STDMETHODCALLTYPE CreateGlyphRunAnalysis( + const DWRITE_GLYPH_RUN* run, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, + FLOAT origin_x, + FLOAT origin_y, + IDWriteGlyphRunAnalysis** analysis) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams( - FLOAT gamma, - FLOAT enhanced_contrast, - FLOAT grayscale_enhanced_contrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY pixel_geometry, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - IDWriteRenderingParams3 **params) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams( + FLOAT gamma, + FLOAT enhanced_contrast, + FLOAT grayscale_enhanced_contrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY pixel_geometry, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + IDWriteRenderingParams3 * *params) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference_( - IDWriteFontFile *file, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference **reference) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference_( + IDWriteFontFile * file, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference * *reference) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference( - const WCHAR *path, - const FILETIME *writetime, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference **reference) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference( + const WCHAR* path, + const FILETIME* writetime, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference** reference) = 0; - virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet( - IDWriteFontSet **fontset) = 0; + virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet( + IDWriteFontSet * *fontset) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder( - IDWriteFontSetBuilder **builder) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder( + IDWriteFontSetBuilder * *builder) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateFontCollectionFromFontSet( - IDWriteFontSet *fontset, - IDWriteFontCollection1 **collection) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateFontCollectionFromFontSet( + IDWriteFontSet * fontset, + IDWriteFontCollection1 * *collection) = 0; - virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection( - WINBOOL include_downloadable, - IDWriteFontCollection1 **collection, - WINBOOL check_for_updates) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontDownloadQueue( - IDWriteFontDownloadQueue **queue) = 0; + virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection( + WINBOOL include_downloadable, + IDWriteFontCollection1 * *collection, + WINBOOL check_for_updates) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontDownloadQueue( + IDWriteFontDownloadQueue * *queue) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFactory3, 0x9a1b41c3, 0xd3bb, 0x466a, 0x87,0xfc, 0xfe,0x67,0x55,0x6a,0x3b,0x65) +__CRT_UUID_DECL(IDWriteFactory3, 0x9a1b41c3, 0xd3bb, 0x466a, 0x87, 0xfc, 0xfe, 0x67, 0x55, 0x6a, 0x3b, 0x65) #endif #else typedef struct IDWriteFactory3Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFactory3 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFactory3* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFactory3 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFactory3* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFactory3 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFactory3* This); - /*** IDWriteFactory methods ***/ - HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( - IDWriteFactory3 *This, - IDWriteFontCollection **collection, - WINBOOL check_for_updates); + /*** IDWriteFactory methods ***/ + HRESULT(STDMETHODCALLTYPE* GetSystemFontCollection)( + IDWriteFactory3* This, + IDWriteFontCollection** collection, + WINBOOL check_for_updates); - HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( - IDWriteFactory3 *This, - IDWriteFontCollectionLoader *loader, - const void *key, - UINT32 key_size, - IDWriteFontCollection **collection); + HRESULT(STDMETHODCALLTYPE* CreateCustomFontCollection)( + IDWriteFactory3* This, + IDWriteFontCollectionLoader* loader, + const void* key, + UINT32 key_size, + IDWriteFontCollection** collection); - HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( - IDWriteFactory3 *This, - IDWriteFontCollectionLoader *loader); + HRESULT(STDMETHODCALLTYPE* RegisterFontCollectionLoader)( + IDWriteFactory3* This, + IDWriteFontCollectionLoader* loader); - HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( - IDWriteFactory3 *This, - IDWriteFontCollectionLoader *loader); + HRESULT(STDMETHODCALLTYPE* UnregisterFontCollectionLoader)( + IDWriteFactory3* This, + IDWriteFontCollectionLoader* loader); - HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( - IDWriteFactory3 *This, - const WCHAR *path, - const FILETIME *writetime, - IDWriteFontFile **font_file); + HRESULT(STDMETHODCALLTYPE* CreateFontFileReference)( + IDWriteFactory3* This, + const WCHAR* path, + const FILETIME* writetime, + IDWriteFontFile** font_file); - HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( - IDWriteFactory3 *This, - const void *reference_key, - UINT32 key_size, - IDWriteFontFileLoader *loader, - IDWriteFontFile **font_file); + HRESULT(STDMETHODCALLTYPE* CreateCustomFontFileReference)( + IDWriteFactory3* This, + const void* reference_key, + UINT32 key_size, + IDWriteFontFileLoader* loader, + IDWriteFontFile** font_file); - HRESULT (STDMETHODCALLTYPE *CreateFontFace)( - IDWriteFactory3 *This, - DWRITE_FONT_FACE_TYPE facetype, - UINT32 files_number, - IDWriteFontFile *const *font_files, - UINT32 index, - DWRITE_FONT_SIMULATIONS sim_flags, - IDWriteFontFace **font_face); + HRESULT(STDMETHODCALLTYPE* CreateFontFace)( + IDWriteFactory3* This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile* const* font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace** font_face); - HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( - IDWriteFactory3 *This, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateRenderingParams)( + IDWriteFactory3* This, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( - IDWriteFactory3 *This, - HMONITOR monitor, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateMonitorRenderingParams)( + IDWriteFactory3* This, + HMONITOR monitor, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( - IDWriteFactory3 *This, - FLOAT gamma, - FLOAT enhancedContrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateCustomRenderingParams)( + IDWriteFactory3* This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( - IDWriteFactory3 *This, - IDWriteFontFileLoader *loader); + HRESULT(STDMETHODCALLTYPE* RegisterFontFileLoader)( + IDWriteFactory3* This, + IDWriteFontFileLoader* loader); - HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( - IDWriteFactory3 *This, - IDWriteFontFileLoader *loader); + HRESULT(STDMETHODCALLTYPE* UnregisterFontFileLoader)( + IDWriteFactory3* This, + IDWriteFontFileLoader* loader); - HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( - IDWriteFactory3 *This, - const WCHAR *family_name, - IDWriteFontCollection *collection, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STYLE style, - DWRITE_FONT_STRETCH stretch, - FLOAT size, - const WCHAR *locale, - IDWriteTextFormat **format); + HRESULT(STDMETHODCALLTYPE* CreateTextFormat)( + IDWriteFactory3* This, + const WCHAR* family_name, + IDWriteFontCollection* collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR* locale, + IDWriteTextFormat** format); - HRESULT (STDMETHODCALLTYPE *CreateTypography)( - IDWriteFactory3 *This, - IDWriteTypography **typography); + HRESULT(STDMETHODCALLTYPE* CreateTypography)( + IDWriteFactory3* This, + IDWriteTypography** typography); - HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( - IDWriteFactory3 *This, - IDWriteGdiInterop **gdi_interop); + HRESULT(STDMETHODCALLTYPE* GetGdiInterop)( + IDWriteFactory3* This, + IDWriteGdiInterop** gdi_interop); - HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( - IDWriteFactory3 *This, - const WCHAR *string, - UINT32 len, - IDWriteTextFormat *format, - FLOAT max_width, - FLOAT max_height, - IDWriteTextLayout **layout); + HRESULT(STDMETHODCALLTYPE* CreateTextLayout)( + IDWriteFactory3* This, + const WCHAR* string, + UINT32 len, + IDWriteTextFormat* format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout** layout); - HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( - IDWriteFactory3 *This, - const WCHAR *string, - UINT32 len, - IDWriteTextFormat *format, - FLOAT layout_width, - FLOAT layout_height, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - IDWriteTextLayout **layout); + HRESULT(STDMETHODCALLTYPE* CreateGdiCompatibleTextLayout)( + IDWriteFactory3* This, + const WCHAR* string, + UINT32 len, + IDWriteTextFormat* format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout** layout); - HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( - IDWriteFactory3 *This, - IDWriteTextFormat *format, - IDWriteInlineObject **trimming_sign); + HRESULT(STDMETHODCALLTYPE* CreateEllipsisTrimmingSign)( + IDWriteFactory3* This, + IDWriteTextFormat* format, + IDWriteInlineObject** trimming_sign); - HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( - IDWriteFactory3 *This, - IDWriteTextAnalyzer **analyzer); + HRESULT(STDMETHODCALLTYPE* CreateTextAnalyzer)( + IDWriteFactory3* This, + IDWriteTextAnalyzer** analyzer); - HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( - IDWriteFactory3 *This, - DWRITE_NUMBER_SUBSTITUTION_METHOD method, - const WCHAR *locale, - WINBOOL ignore_user_override, - IDWriteNumberSubstitution **substitution); + HRESULT(STDMETHODCALLTYPE* CreateNumberSubstitution)( + IDWriteFactory3* This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR* locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution** substitution); - HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( - IDWriteFactory3 *This, - const DWRITE_GLYPH_RUN *glyph_run, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - FLOAT baseline_x, - FLOAT baseline_y, - IDWriteGlyphRunAnalysis **analysis); + HRESULT(STDMETHODCALLTYPE* CreateGlyphRunAnalysis)( + IDWriteFactory3* This, + const DWRITE_GLYPH_RUN* glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis** analysis); - /*** IDWriteFactory1 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( - IDWriteFactory3 *This, - IDWriteFontCollection **collection, - WINBOOL check_for_updates); + /*** IDWriteFactory1 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetEudcFontCollection)( + IDWriteFactory3* This, + IDWriteFontCollection** collection, + WINBOOL check_for_updates); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( - IDWriteFactory3 *This, - FLOAT gamma, - FLOAT enhcontrast, - FLOAT enhcontrast_grayscale, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams1 **params); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory1_CreateCustomRenderingParams)( + IDWriteFactory3* This, + FLOAT gamma, + FLOAT enhcontrast, + FLOAT enhcontrast_grayscale, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams1** params); - /*** IDWriteFactory2 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)( - IDWriteFactory3 *This, - IDWriteFontFallback **fallback); + /*** IDWriteFactory2 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetSystemFontFallback)( + IDWriteFactory3* This, + IDWriteFontFallback** fallback); - HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)( - IDWriteFactory3 *This, - IDWriteFontFallbackBuilder **fallbackbuilder); + HRESULT(STDMETHODCALLTYPE* CreateFontFallbackBuilder)( + IDWriteFactory3* This, + IDWriteFontFallbackBuilder** fallbackbuilder); - HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)( - IDWriteFactory3 *This, - FLOAT originX, - FLOAT originY, - const DWRITE_GLYPH_RUN *run, - const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, - DWRITE_MEASURING_MODE mode, - const DWRITE_MATRIX *transform, - UINT32 palette_index, - IDWriteColorGlyphRunEnumerator **colorlayers); + HRESULT(STDMETHODCALLTYPE* TranslateColorGlyphRun)( + IDWriteFactory3* This, + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN* run, + const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX* transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator** colorlayers); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)( - IDWriteFactory3 *This, - FLOAT gamma, - FLOAT contrast, - FLOAT grayscalecontrast, - FLOAT cleartypeLevel, - DWRITE_PIXEL_GEOMETRY pixelGeometry, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_GRID_FIT_MODE gridFitMode, - IDWriteRenderingParams2 **params); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateCustomRenderingParams)( + IDWriteFactory3* This, + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2** params); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)( - IDWriteFactory3 *This, - const DWRITE_GLYPH_RUN *run, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_MEASURING_MODE measuringMode, - DWRITE_GRID_FIT_MODE gridFitMode, - DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, - FLOAT originX, - FLOAT originY, - IDWriteGlyphRunAnalysis **analysis); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateGlyphRunAnalysis)( + IDWriteFactory3* This, + const DWRITE_GLYPH_RUN* run, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis** analysis); - /*** IDWriteFactory3 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)( - IDWriteFactory3 *This, - const DWRITE_GLYPH_RUN *run, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, - FLOAT origin_x, - FLOAT origin_y, - IDWriteGlyphRunAnalysis **analysis); + /*** IDWriteFactory3 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateGlyphRunAnalysis)( + IDWriteFactory3* This, + const DWRITE_GLYPH_RUN* run, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, + FLOAT origin_x, + FLOAT origin_y, + IDWriteGlyphRunAnalysis** analysis); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)( - IDWriteFactory3 *This, - FLOAT gamma, - FLOAT enhanced_contrast, - FLOAT grayscale_enhanced_contrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY pixel_geometry, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - IDWriteRenderingParams3 **params); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateCustomRenderingParams)( + IDWriteFactory3* This, + FLOAT gamma, + FLOAT enhanced_contrast, + FLOAT grayscale_enhanced_contrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY pixel_geometry, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + IDWriteRenderingParams3** params); - HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)( - IDWriteFactory3 *This, - IDWriteFontFile *file, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference **reference); + HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference_)( + IDWriteFactory3* This, + IDWriteFontFile* file, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference** reference); - HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)( - IDWriteFactory3 *This, - const WCHAR *path, - const FILETIME *writetime, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference **reference); + HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference)( + IDWriteFactory3* This, + const WCHAR* path, + const FILETIME* writetime, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference** reference); - HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)( - IDWriteFactory3 *This, - IDWriteFontSet **fontset); + HRESULT(STDMETHODCALLTYPE* GetSystemFontSet)( + IDWriteFactory3* This, + IDWriteFontSet** fontset); - HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)( - IDWriteFactory3 *This, - IDWriteFontSetBuilder **builder); + HRESULT(STDMETHODCALLTYPE* CreateFontSetBuilder)( + IDWriteFactory3* This, + IDWriteFontSetBuilder** builder); - HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)( - IDWriteFactory3 *This, - IDWriteFontSet *fontset, - IDWriteFontCollection1 **collection); + HRESULT(STDMETHODCALLTYPE* CreateFontCollectionFromFontSet)( + IDWriteFactory3* This, + IDWriteFontSet* fontset, + IDWriteFontCollection1** collection); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)( - IDWriteFactory3 *This, - WINBOOL include_downloadable, - IDWriteFontCollection1 **collection, - WINBOOL check_for_updates); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_GetSystemFontCollection)( + IDWriteFactory3* This, + WINBOOL include_downloadable, + IDWriteFontCollection1** collection, + WINBOOL check_for_updates); - HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)( - IDWriteFactory3 *This, - IDWriteFontDownloadQueue **queue); + HRESULT(STDMETHODCALLTYPE* GetFontDownloadQueue)( + IDWriteFactory3* This, + IDWriteFontDownloadQueue** queue); - END_INTERFACE + END_INTERFACE } IDWriteFactory3Vtbl; interface IDWriteFactory3 { - CONST_VTBL IDWriteFactory3Vtbl* lpVtbl; + CONST_VTBL IDWriteFactory3Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFactory3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFactory3_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFactory3_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFactory methods ***/ -#define IDWriteFactory3_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) -#define IDWriteFactory3_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) -#define IDWriteFactory3_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) -#define IDWriteFactory3_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) -#define IDWriteFactory3_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) -#define IDWriteFactory3_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) -#define IDWriteFactory3_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) -#define IDWriteFactory3_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) -#define IDWriteFactory3_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) -#define IDWriteFactory3_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) -#define IDWriteFactory3_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) -#define IDWriteFactory3_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) -#define IDWriteFactory3_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) -#define IDWriteFactory3_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) -#define IDWriteFactory3_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) -#define IDWriteFactory3_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) -#define IDWriteFactory3_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) -#define IDWriteFactory3_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +#define IDWriteFactory3_CreateCustomFontCollection(This, loader, key, key_size, collection) (This)->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection) +#define IDWriteFactory3_RegisterFontCollectionLoader(This, loader) (This)->lpVtbl->RegisterFontCollectionLoader(This, loader) +#define IDWriteFactory3_UnregisterFontCollectionLoader(This, loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This, loader) +#define IDWriteFactory3_CreateFontFileReference(This, path, writetime, font_file) (This)->lpVtbl->CreateFontFileReference(This, path, writetime, font_file) +#define IDWriteFactory3_CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) (This)->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) +#define IDWriteFactory3_CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) (This)->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) +#define IDWriteFactory3_CreateRenderingParams(This, params) (This)->lpVtbl->CreateRenderingParams(This, params) +#define IDWriteFactory3_CreateMonitorRenderingParams(This, monitor, params) (This)->lpVtbl->CreateMonitorRenderingParams(This, monitor, params) +#define IDWriteFactory3_RegisterFontFileLoader(This, loader) (This)->lpVtbl->RegisterFontFileLoader(This, loader) +#define IDWriteFactory3_UnregisterFontFileLoader(This, loader) (This)->lpVtbl->UnregisterFontFileLoader(This, loader) +#define IDWriteFactory3_CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format) (This)->lpVtbl->CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format) +#define IDWriteFactory3_CreateTypography(This, typography) (This)->lpVtbl->CreateTypography(This, typography) +#define IDWriteFactory3_GetGdiInterop(This, gdi_interop) (This)->lpVtbl->GetGdiInterop(This, gdi_interop) +#define IDWriteFactory3_CreateTextLayout(This, string, len, format, max_width, max_height, layout) (This)->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout) +#define IDWriteFactory3_CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) +#define IDWriteFactory3_CreateEllipsisTrimmingSign(This, format, trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign) +#define IDWriteFactory3_CreateTextAnalyzer(This, analyzer) (This)->lpVtbl->CreateTextAnalyzer(This, analyzer) +#define IDWriteFactory3_CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) (This)->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) /*** IDWriteFactory1 methods ***/ -#define IDWriteFactory3_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) +#define IDWriteFactory3_GetEudcFontCollection(This, collection, check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates) /*** IDWriteFactory2 methods ***/ -#define IDWriteFactory3_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback) -#define IDWriteFactory3_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder) -#define IDWriteFactory3_TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers) (This)->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers) +#define IDWriteFactory3_GetSystemFontFallback(This, fallback) (This)->lpVtbl->GetSystemFontFallback(This, fallback) +#define IDWriteFactory3_CreateFontFallbackBuilder(This, fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder) +#define IDWriteFactory3_TranslateColorGlyphRun(This, originX, originY, run, rundescr, mode, transform, palette_index, colorlayers) (This)->lpVtbl->TranslateColorGlyphRun(This, originX, originY, run, rundescr, mode, transform, palette_index, colorlayers) /*** IDWriteFactory3 methods ***/ -#define IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) -#define IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) -#define IDWriteFactory3_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference) -#define IDWriteFactory3_CreateFontFaceReference(This,path,writetime,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference) -#define IDWriteFactory3_GetSystemFontSet(This,fontset) (This)->lpVtbl->GetSystemFontSet(This,fontset) -#define IDWriteFactory3_CreateFontSetBuilder(This,builder) (This)->lpVtbl->CreateFontSetBuilder(This,builder) -#define IDWriteFactory3_CreateFontCollectionFromFontSet(This,fontset,collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection) -#define IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) -#define IDWriteFactory3_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue) +#define IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) +#define IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) +#define IDWriteFactory3_CreateFontFaceReference_(This, file, index, simulations, reference) (This)->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference) +#define IDWriteFactory3_CreateFontFaceReference(This, path, writetime, index, simulations, reference) (This)->lpVtbl->CreateFontFaceReference(This, path, writetime, index, simulations, reference) +#define IDWriteFactory3_GetSystemFontSet(This, fontset) (This)->lpVtbl->GetSystemFontSet(This, fontset) +#define IDWriteFactory3_CreateFontSetBuilder(This, builder) (This)->lpVtbl->CreateFontSetBuilder(This, builder) +#define IDWriteFactory3_CreateFontCollectionFromFontSet(This, fontset, collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This, fontset, collection) +#define IDWriteFactory3_GetSystemFontCollection(This, include_downloadable, collection, check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This, include_downloadable, collection, check_for_updates) +#define IDWriteFactory3_GetFontDownloadQueue(This, queue) (This)->lpVtbl->GetFontDownloadQueue(This, queue) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFactory3_QueryInterface(IDWriteFactory3* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFactory3_QueryInterface(IDWriteFactory3* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFactory3_AddRef(IDWriteFactory3* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFactory3_Release(IDWriteFactory3* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFactory methods ***/ -static inline HRESULT IDWriteFactory3_CreateCustomFontCollection(IDWriteFactory3* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { - return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +static inline HRESULT IDWriteFactory3_CreateCustomFontCollection(IDWriteFactory3* This, IDWriteFontCollectionLoader* loader, const void* key, UINT32 key_size, IDWriteFontCollection** collection) { + return This->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection); } -static inline HRESULT IDWriteFactory3_RegisterFontCollectionLoader(IDWriteFactory3* This,IDWriteFontCollectionLoader *loader) { - return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +static inline HRESULT IDWriteFactory3_RegisterFontCollectionLoader(IDWriteFactory3* This, IDWriteFontCollectionLoader* loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This, loader); } -static inline HRESULT IDWriteFactory3_UnregisterFontCollectionLoader(IDWriteFactory3* This,IDWriteFontCollectionLoader *loader) { - return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +static inline HRESULT IDWriteFactory3_UnregisterFontCollectionLoader(IDWriteFactory3* This, IDWriteFontCollectionLoader* loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This, loader); } -static inline HRESULT IDWriteFactory3_CreateFontFileReference(IDWriteFactory3* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { - return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +static inline HRESULT IDWriteFactory3_CreateFontFileReference(IDWriteFactory3* This, const WCHAR* path, const FILETIME* writetime, IDWriteFontFile** font_file) { + return This->lpVtbl->CreateFontFileReference(This, path, writetime, font_file); } -static inline HRESULT IDWriteFactory3_CreateCustomFontFileReference(IDWriteFactory3* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { - return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +static inline HRESULT IDWriteFactory3_CreateCustomFontFileReference(IDWriteFactory3* This, const void* reference_key, UINT32 key_size, IDWriteFontFileLoader* loader, IDWriteFontFile** font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file); } -static inline HRESULT IDWriteFactory3_CreateFontFace(IDWriteFactory3* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { - return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +static inline HRESULT IDWriteFactory3_CreateFontFace(IDWriteFactory3* This, DWRITE_FONT_FACE_TYPE facetype, UINT32 files_number, IDWriteFontFile* const* font_files, UINT32 index, DWRITE_FONT_SIMULATIONS sim_flags, IDWriteFontFace** font_face) { + return This->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face); } -static inline HRESULT IDWriteFactory3_CreateRenderingParams(IDWriteFactory3* This,IDWriteRenderingParams **params) { - return This->lpVtbl->CreateRenderingParams(This,params); +static inline HRESULT IDWriteFactory3_CreateRenderingParams(IDWriteFactory3* This, IDWriteRenderingParams** params) { + return This->lpVtbl->CreateRenderingParams(This, params); } -static inline HRESULT IDWriteFactory3_CreateMonitorRenderingParams(IDWriteFactory3* This,HMONITOR monitor,IDWriteRenderingParams **params) { - return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +static inline HRESULT IDWriteFactory3_CreateMonitorRenderingParams(IDWriteFactory3* This, HMONITOR monitor, IDWriteRenderingParams** params) { + return This->lpVtbl->CreateMonitorRenderingParams(This, monitor, params); } -static inline HRESULT IDWriteFactory3_RegisterFontFileLoader(IDWriteFactory3* This,IDWriteFontFileLoader *loader) { - return This->lpVtbl->RegisterFontFileLoader(This,loader); +static inline HRESULT IDWriteFactory3_RegisterFontFileLoader(IDWriteFactory3* This, IDWriteFontFileLoader* loader) { + return This->lpVtbl->RegisterFontFileLoader(This, loader); } -static inline HRESULT IDWriteFactory3_UnregisterFontFileLoader(IDWriteFactory3* This,IDWriteFontFileLoader *loader) { - return This->lpVtbl->UnregisterFontFileLoader(This,loader); +static inline HRESULT IDWriteFactory3_UnregisterFontFileLoader(IDWriteFactory3* This, IDWriteFontFileLoader* loader) { + return This->lpVtbl->UnregisterFontFileLoader(This, loader); } -static inline HRESULT IDWriteFactory3_CreateTextFormat(IDWriteFactory3* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) { - return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format); +static inline HRESULT IDWriteFactory3_CreateTextFormat(IDWriteFactory3* This, const WCHAR* family_name, IDWriteFontCollection* collection, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STYLE style, DWRITE_FONT_STRETCH stretch, FLOAT size, const WCHAR* locale, IDWriteTextFormat** format) { + return This->lpVtbl->CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format); } -static inline HRESULT IDWriteFactory3_CreateTypography(IDWriteFactory3* This,IDWriteTypography **typography) { - return This->lpVtbl->CreateTypography(This,typography); +static inline HRESULT IDWriteFactory3_CreateTypography(IDWriteFactory3* This, IDWriteTypography** typography) { + return This->lpVtbl->CreateTypography(This, typography); } -static inline HRESULT IDWriteFactory3_GetGdiInterop(IDWriteFactory3* This,IDWriteGdiInterop **gdi_interop) { - return This->lpVtbl->GetGdiInterop(This,gdi_interop); +static inline HRESULT IDWriteFactory3_GetGdiInterop(IDWriteFactory3* This, IDWriteGdiInterop** gdi_interop) { + return This->lpVtbl->GetGdiInterop(This, gdi_interop); } -static inline HRESULT IDWriteFactory3_CreateTextLayout(IDWriteFactory3* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { - return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +static inline HRESULT IDWriteFactory3_CreateTextLayout(IDWriteFactory3* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT max_width, FLOAT max_height, IDWriteTextLayout** layout) { + return This->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout); } -static inline HRESULT IDWriteFactory3_CreateGdiCompatibleTextLayout(IDWriteFactory3* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { - return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +static inline HRESULT IDWriteFactory3_CreateGdiCompatibleTextLayout(IDWriteFactory3* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT layout_width, FLOAT layout_height, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, IDWriteTextLayout** layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout); } -static inline HRESULT IDWriteFactory3_CreateEllipsisTrimmingSign(IDWriteFactory3* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { - return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +static inline HRESULT IDWriteFactory3_CreateEllipsisTrimmingSign(IDWriteFactory3* This, IDWriteTextFormat* format, IDWriteInlineObject** trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign); } -static inline HRESULT IDWriteFactory3_CreateTextAnalyzer(IDWriteFactory3* This,IDWriteTextAnalyzer **analyzer) { - return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +static inline HRESULT IDWriteFactory3_CreateTextAnalyzer(IDWriteFactory3* This, IDWriteTextAnalyzer** analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This, analyzer); } -static inline HRESULT IDWriteFactory3_CreateNumberSubstitution(IDWriteFactory3* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { - return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +static inline HRESULT IDWriteFactory3_CreateNumberSubstitution(IDWriteFactory3* This, DWRITE_NUMBER_SUBSTITUTION_METHOD method, const WCHAR* locale, WINBOOL ignore_user_override, IDWriteNumberSubstitution** substitution) { + return This->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution); } /*** IDWriteFactory1 methods ***/ -static inline HRESULT IDWriteFactory3_GetEudcFontCollection(IDWriteFactory3* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { - return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); +static inline HRESULT IDWriteFactory3_GetEudcFontCollection(IDWriteFactory3* This, IDWriteFontCollection** collection, WINBOOL check_for_updates) { + return This->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates); } /*** IDWriteFactory2 methods ***/ -static inline HRESULT IDWriteFactory3_GetSystemFontFallback(IDWriteFactory3* This,IDWriteFontFallback **fallback) { - return This->lpVtbl->GetSystemFontFallback(This,fallback); +static inline HRESULT IDWriteFactory3_GetSystemFontFallback(IDWriteFactory3* This, IDWriteFontFallback** fallback) { + return This->lpVtbl->GetSystemFontFallback(This, fallback); } -static inline HRESULT IDWriteFactory3_CreateFontFallbackBuilder(IDWriteFactory3* This,IDWriteFontFallbackBuilder **fallbackbuilder) { - return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); +static inline HRESULT IDWriteFactory3_CreateFontFallbackBuilder(IDWriteFactory3* This, IDWriteFontFallbackBuilder** fallbackbuilder) { + return This->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder); } -static inline HRESULT IDWriteFactory3_TranslateColorGlyphRun(IDWriteFactory3* This,FLOAT originX,FLOAT originY,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,DWRITE_MEASURING_MODE mode,const DWRITE_MATRIX *transform,UINT32 palette_index,IDWriteColorGlyphRunEnumerator **colorlayers) { - return This->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers); +static inline HRESULT IDWriteFactory3_TranslateColorGlyphRun(IDWriteFactory3* This, FLOAT originX, FLOAT originY, const DWRITE_GLYPH_RUN* run, const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, DWRITE_MEASURING_MODE mode, const DWRITE_MATRIX* transform, UINT32 palette_index, IDWriteColorGlyphRunEnumerator** colorlayers) { + return This->lpVtbl->TranslateColorGlyphRun(This, originX, originY, run, rundescr, mode, transform, palette_index, colorlayers); } /*** IDWriteFactory3 methods ***/ -static inline HRESULT IDWriteFactory3_CreateGlyphRunAnalysis(IDWriteFactory3* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) { - return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis); +static inline HRESULT IDWriteFactory3_CreateGlyphRunAnalysis(IDWriteFactory3* This, const DWRITE_GLYPH_RUN* run, const DWRITE_MATRIX* transform, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_MEASURING_MODE measuring_mode, DWRITE_GRID_FIT_MODE gridfit_mode, DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, FLOAT origin_x, FLOAT origin_y, IDWriteGlyphRunAnalysis** analysis) { + return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis); } -static inline HRESULT IDWriteFactory3_CreateCustomRenderingParams(IDWriteFactory3* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) { - return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params); +static inline HRESULT IDWriteFactory3_CreateCustomRenderingParams(IDWriteFactory3* This, FLOAT gamma, FLOAT enhanced_contrast, FLOAT grayscale_enhanced_contrast, FLOAT cleartype_level, DWRITE_PIXEL_GEOMETRY pixel_geometry, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_GRID_FIT_MODE gridfit_mode, IDWriteRenderingParams3** params) { + return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params); } -static inline HRESULT IDWriteFactory3_CreateFontFaceReference_(IDWriteFactory3* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { - return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference); +static inline HRESULT IDWriteFactory3_CreateFontFaceReference_(IDWriteFactory3* This, IDWriteFontFile* file, UINT32 index, DWRITE_FONT_SIMULATIONS simulations, IDWriteFontFaceReference** reference) { + return This->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference); } -static inline HRESULT IDWriteFactory3_CreateFontFaceReference(IDWriteFactory3* This,const WCHAR *path,const FILETIME *writetime,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { - return This->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference); +static inline HRESULT IDWriteFactory3_CreateFontFaceReference(IDWriteFactory3* This, const WCHAR* path, const FILETIME* writetime, UINT32 index, DWRITE_FONT_SIMULATIONS simulations, IDWriteFontFaceReference** reference) { + return This->lpVtbl->CreateFontFaceReference(This, path, writetime, index, simulations, reference); } -static inline HRESULT IDWriteFactory3_GetSystemFontSet(IDWriteFactory3* This,IDWriteFontSet **fontset) { - return This->lpVtbl->GetSystemFontSet(This,fontset); +static inline HRESULT IDWriteFactory3_GetSystemFontSet(IDWriteFactory3* This, IDWriteFontSet** fontset) { + return This->lpVtbl->GetSystemFontSet(This, fontset); } -static inline HRESULT IDWriteFactory3_CreateFontSetBuilder(IDWriteFactory3* This,IDWriteFontSetBuilder **builder) { - return This->lpVtbl->CreateFontSetBuilder(This,builder); +static inline HRESULT IDWriteFactory3_CreateFontSetBuilder(IDWriteFactory3* This, IDWriteFontSetBuilder** builder) { + return This->lpVtbl->CreateFontSetBuilder(This, builder); } -static inline HRESULT IDWriteFactory3_CreateFontCollectionFromFontSet(IDWriteFactory3* This,IDWriteFontSet *fontset,IDWriteFontCollection1 **collection) { - return This->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection); +static inline HRESULT IDWriteFactory3_CreateFontCollectionFromFontSet(IDWriteFactory3* This, IDWriteFontSet* fontset, IDWriteFontCollection1** collection) { + return This->lpVtbl->CreateFontCollectionFromFontSet(This, fontset, collection); } -static inline HRESULT IDWriteFactory3_GetSystemFontCollection(IDWriteFactory3* This,WINBOOL include_downloadable,IDWriteFontCollection1 **collection,WINBOOL check_for_updates) { - return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates); +static inline HRESULT IDWriteFactory3_GetSystemFontCollection(IDWriteFactory3* This, WINBOOL include_downloadable, IDWriteFontCollection1** collection, WINBOOL check_for_updates) { + return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This, include_downloadable, collection, check_for_updates); } -static inline HRESULT IDWriteFactory3_GetFontDownloadQueue(IDWriteFactory3* This,IDWriteFontDownloadQueue **queue) { - return This->lpVtbl->GetFontDownloadQueue(This,queue); +static inline HRESULT IDWriteFactory3_GetFontDownloadQueue(IDWriteFactory3* This, IDWriteFontDownloadQueue** queue) { + return This->lpVtbl->GetFontDownloadQueue(This, queue); } #endif #endif #endif - -#endif /* __IDWriteFactory3_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFactory3_INTERFACE_DEFINED__ */ typedef struct DWRITE_GLYPH_IMAGE_DATA { - const void *imageData; - UINT32 imageDataSize; - UINT32 uniqueDataId; - UINT32 pixelsPerEm; - D2D1_SIZE_U pixelSize; - D2D1_POINT_2L horizontalLeftOrigin; - D2D1_POINT_2L horizontalRightOrigin; - D2D1_POINT_2L verticalTopOrigin; - D2D1_POINT_2L verticalBottomOrigin; + const void* imageData; + UINT32 imageDataSize; + UINT32 uniqueDataId; + UINT32 pixelsPerEm; + D2D1_SIZE_U pixelSize; + D2D1_POINT_2L horizontalLeftOrigin; + D2D1_POINT_2L horizontalRightOrigin; + D2D1_POINT_2L verticalTopOrigin; + D2D1_POINT_2L verticalBottomOrigin; } DWRITE_GLYPH_IMAGE_DATA; /***************************************************************************** * IDWriteFontFace4 interface @@ -8713,554 +8593,550 @@ typedef struct DWRITE_GLYPH_IMAGE_DATA { #ifndef __IDWriteFontFace4_INTERFACE_DEFINED__ #define __IDWriteFontFace4_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontFace4, 0x27f2a904, 0x4eb8, 0x441d, 0x96,0x78, 0x05,0x63,0xf5,0x3e,0x3e,0x2f); +DEFINE_GUID(IID_IDWriteFontFace4, 0x27f2a904, 0x4eb8, 0x441d, 0x96, 0x78, 0x05, 0x63, 0xf5, 0x3e, 0x3e, 0x2f); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("27f2a904-4eb8-441d-9678-0563f53e3e2f") -IDWriteFontFace4 : public IDWriteFontFace3 -{ - virtual HRESULT STDMETHODCALLTYPE GetGlyphImageFormats_( - UINT16 glyph, - UINT32 ppem_first, - UINT32 ppem_last, - DWRITE_GLYPH_IMAGE_FORMATS *formats) = 0; +IDWriteFontFace4 : public IDWriteFontFace3 { + virtual HRESULT STDMETHODCALLTYPE GetGlyphImageFormats_( + UINT16 glyph, + UINT32 ppem_first, + UINT32 ppem_last, + DWRITE_GLYPH_IMAGE_FORMATS * formats) = 0; - virtual DWRITE_GLYPH_IMAGE_FORMATS STDMETHODCALLTYPE GetGlyphImageFormats( - ) = 0; + virtual DWRITE_GLYPH_IMAGE_FORMATS STDMETHODCALLTYPE GetGlyphImageFormats() = 0; - virtual HRESULT STDMETHODCALLTYPE GetGlyphImageData( - UINT16 glyph, - UINT32 ppem, - DWRITE_GLYPH_IMAGE_FORMATS format, - DWRITE_GLYPH_IMAGE_DATA *data, - void **context) = 0; - - virtual void STDMETHODCALLTYPE ReleaseGlyphImageData( - void *context) = 0; + virtual HRESULT STDMETHODCALLTYPE GetGlyphImageData( + UINT16 glyph, + UINT32 ppem, + DWRITE_GLYPH_IMAGE_FORMATS format, + DWRITE_GLYPH_IMAGE_DATA * data, + void** context) = 0; + virtual void STDMETHODCALLTYPE ReleaseGlyphImageData( + void* context) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFace4, 0x27f2a904, 0x4eb8, 0x441d, 0x96,0x78, 0x05,0x63,0xf5,0x3e,0x3e,0x2f) +__CRT_UUID_DECL(IDWriteFontFace4, 0x27f2a904, 0x4eb8, 0x441d, 0x96, 0x78, 0x05, 0x63, 0xf5, 0x3e, 0x3e, 0x2f) #endif #else typedef struct IDWriteFontFace4Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontFace4 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontFace4* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontFace4 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontFace4* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontFace4 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontFace4* This); - /*** IDWriteFontFace methods ***/ - DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( - IDWriteFontFace4 *This); + /*** IDWriteFontFace methods ***/ + DWRITE_FONT_FACE_TYPE(STDMETHODCALLTYPE* GetType)( + IDWriteFontFace4* This); - HRESULT (STDMETHODCALLTYPE *GetFiles)( - IDWriteFontFace4 *This, - UINT32 *number_of_files, - IDWriteFontFile **fontfiles); + HRESULT(STDMETHODCALLTYPE* GetFiles)( + IDWriteFontFace4* This, + UINT32* number_of_files, + IDWriteFontFile** fontfiles); - UINT32 (STDMETHODCALLTYPE *GetIndex)( - IDWriteFontFace4 *This); + UINT32(STDMETHODCALLTYPE* GetIndex)( + IDWriteFontFace4* This); - DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( - IDWriteFontFace4 *This); + DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( + IDWriteFontFace4* This); - WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( - IDWriteFontFace4 *This); + WINBOOL(STDMETHODCALLTYPE* IsSymbolFont)( + IDWriteFontFace4* This); - void (STDMETHODCALLTYPE *GetMetrics)( - IDWriteFontFace4 *This, - DWRITE_FONT_METRICS *metrics); + void(STDMETHODCALLTYPE* GetMetrics)( + IDWriteFontFace4* This, + DWRITE_FONT_METRICS* metrics); - UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( - IDWriteFontFace4 *This); + UINT16(STDMETHODCALLTYPE* GetGlyphCount)( + IDWriteFontFace4* This); - HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( - IDWriteFontFace4 *This, - const UINT16 *glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS *metrics, - WINBOOL is_sideways); + HRESULT(STDMETHODCALLTYPE* GetDesignGlyphMetrics)( + IDWriteFontFace4* This, + const UINT16* glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS* metrics, + WINBOOL is_sideways); - HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( - IDWriteFontFace4 *This, - const UINT32 *codepoints, - UINT32 count, - UINT16 *glyph_indices); + HRESULT(STDMETHODCALLTYPE* GetGlyphIndices)( + IDWriteFontFace4* This, + const UINT32* codepoints, + UINT32 count, + UINT16* glyph_indices); - HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( - IDWriteFontFace4 *This, - UINT32 table_tag, - const void **table_data, - UINT32 *table_size, - void **context, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* TryGetFontTable)( + IDWriteFontFace4* This, + UINT32 table_tag, + const void** table_data, + UINT32* table_size, + void** context, + WINBOOL* exists); - void (STDMETHODCALLTYPE *ReleaseFontTable)( - IDWriteFontFace4 *This, - void *table_context); + void(STDMETHODCALLTYPE* ReleaseFontTable)( + IDWriteFontFace4* This, + void* table_context); - HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( - IDWriteFontFace4 *This, - FLOAT emSize, - const UINT16 *glyph_indices, - const FLOAT *glyph_advances, - const DWRITE_GLYPH_OFFSET *glyph_offsets, - UINT32 glyph_count, - WINBOOL is_sideways, - WINBOOL is_rtl, - IDWriteGeometrySink *geometrysink); + HRESULT(STDMETHODCALLTYPE* GetGlyphRunOutline)( + IDWriteFontFace4* This, + FLOAT emSize, + const UINT16* glyph_indices, + const FLOAT* glyph_advances, + const DWRITE_GLYPH_OFFSET* glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink* geometrysink); - HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( - IDWriteFontFace4 *This, - FLOAT emSize, - FLOAT pixels_per_dip, - DWRITE_MEASURING_MODE mode, - IDWriteRenderingParams *params, - DWRITE_RENDERING_MODE *rendering_mode); + HRESULT(STDMETHODCALLTYPE* GetRecommendedRenderingMode)( + IDWriteFontFace4* This, + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams* params, + DWRITE_RENDERING_MODE* rendering_mode); - HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( - IDWriteFontFace4 *This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_FONT_METRICS *metrics); + HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleMetrics)( + IDWriteFontFace4* This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_FONT_METRICS* metrics); - HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( - IDWriteFontFace4 *This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - const UINT16 *glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS *metrics, - WINBOOL is_sideways); + HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphMetrics)( + IDWriteFontFace4* This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + const UINT16* glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS* metrics, + WINBOOL is_sideways); - /*** IDWriteFontFace1 methods ***/ - void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)( - IDWriteFontFace4 *This, - DWRITE_FONT_METRICS1 *metrics); + /*** IDWriteFontFace1 methods ***/ + void(STDMETHODCALLTYPE* IDWriteFontFace1_GetMetrics)( + IDWriteFontFace4* This, + DWRITE_FONT_METRICS1* metrics); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)( - IDWriteFontFace4 *This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_FONT_METRICS1 *metrics); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetGdiCompatibleMetrics)( + IDWriteFontFace4* This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_FONT_METRICS1* metrics); - void (STDMETHODCALLTYPE *GetCaretMetrics)( - IDWriteFontFace4 *This, - DWRITE_CARET_METRICS *metrics); + void(STDMETHODCALLTYPE* GetCaretMetrics)( + IDWriteFontFace4* This, + DWRITE_CARET_METRICS* metrics); - HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( - IDWriteFontFace4 *This, - UINT32 max_count, - DWRITE_UNICODE_RANGE *ranges, - UINT32 *count); + HRESULT(STDMETHODCALLTYPE* GetUnicodeRanges)( + IDWriteFontFace4* This, + UINT32 max_count, + DWRITE_UNICODE_RANGE* ranges, + UINT32* count); - WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( - IDWriteFontFace4 *This); + WINBOOL(STDMETHODCALLTYPE* IsMonospacedFont)( + IDWriteFontFace4* This); - HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)( - IDWriteFontFace4 *This, - UINT32 glyph_count, - const UINT16 *indices, - INT32 *advances, - WINBOOL is_sideways); + HRESULT(STDMETHODCALLTYPE* GetDesignGlyphAdvances)( + IDWriteFontFace4* This, + UINT32 glyph_count, + const UINT16* indices, + INT32* advances, + WINBOOL is_sideways); - HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)( - IDWriteFontFace4 *This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - WINBOOL is_sideways, - UINT32 glyph_count, - const UINT16 *indices, - INT32 *advances); + HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphAdvances)( + IDWriteFontFace4* This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + UINT32 glyph_count, + const UINT16* indices, + INT32* advances); - HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)( - IDWriteFontFace4 *This, - UINT32 glyph_count, - const UINT16 *indices, - INT32 *adjustments); + HRESULT(STDMETHODCALLTYPE* GetKerningPairAdjustments)( + IDWriteFontFace4* This, + UINT32 glyph_count, + const UINT16* indices, + INT32* adjustments); - WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)( - IDWriteFontFace4 *This); + WINBOOL(STDMETHODCALLTYPE* HasKerningPairs)( + IDWriteFontFace4* This); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)( - IDWriteFontFace4 *This, - FLOAT font_emsize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX *transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_RENDERING_MODE *rendering_mode); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetRecommendedRenderingMode)( + IDWriteFontFace4* This, + FLOAT font_emsize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX* transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_RENDERING_MODE* rendering_mode); - HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)( - IDWriteFontFace4 *This, - UINT32 glyph_count, - const UINT16 *nominal_indices, - UINT16 *vertical_indices); + HRESULT(STDMETHODCALLTYPE* GetVerticalGlyphVariants)( + IDWriteFontFace4* This, + UINT32 glyph_count, + const UINT16* nominal_indices, + UINT16* vertical_indices); - WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)( - IDWriteFontFace4 *This); + WINBOOL(STDMETHODCALLTYPE* HasVerticalGlyphVariants)( + IDWriteFontFace4* This); - /*** IDWriteFontFace2 methods ***/ - WINBOOL (STDMETHODCALLTYPE *IsColorFont)( - IDWriteFontFace4 *This); + /*** IDWriteFontFace2 methods ***/ + WINBOOL(STDMETHODCALLTYPE* IsColorFont)( + IDWriteFontFace4* This); - UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)( - IDWriteFontFace4 *This); + UINT32(STDMETHODCALLTYPE* GetColorPaletteCount)( + IDWriteFontFace4* This); - UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)( - IDWriteFontFace4 *This); + UINT32(STDMETHODCALLTYPE* GetPaletteEntryCount)( + IDWriteFontFace4* This); - HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)( - IDWriteFontFace4 *This, - UINT32 palette_index, - UINT32 first_entry_index, - UINT32 entry_count, - DWRITE_COLOR_F *entries); + HRESULT(STDMETHODCALLTYPE* GetPaletteEntries)( + IDWriteFontFace4* This, + UINT32 palette_index, + UINT32 first_entry_index, + UINT32 entry_count, + DWRITE_COLOR_F* entries); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)( - IDWriteFontFace4 *This, - FLOAT fontEmSize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX *transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuringmode, - IDWriteRenderingParams *params, - DWRITE_RENDERING_MODE *renderingmode, - DWRITE_GRID_FIT_MODE *gridfitmode); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace2_GetRecommendedRenderingMode)( + IDWriteFontFace4* This, + FLOAT fontEmSize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX* transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuringmode, + IDWriteRenderingParams* params, + DWRITE_RENDERING_MODE* renderingmode, + DWRITE_GRID_FIT_MODE* gridfitmode); - /*** IDWriteFontFace3 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( - IDWriteFontFace4 *This, - IDWriteFontFaceReference **reference); + /*** IDWriteFontFace3 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( + IDWriteFontFace4* This, + IDWriteFontFaceReference** reference); - void (STDMETHODCALLTYPE *GetPanose)( - IDWriteFontFace4 *This, - DWRITE_PANOSE *panose); + void(STDMETHODCALLTYPE* GetPanose)( + IDWriteFontFace4* This, + DWRITE_PANOSE* panose); - DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( - IDWriteFontFace4 *This); + DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetWeight)( + IDWriteFontFace4* This); - DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( - IDWriteFontFace4 *This); + DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetStretch)( + IDWriteFontFace4* This); - DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( - IDWriteFontFace4 *This); + DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetStyle)( + IDWriteFontFace4* This); - HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( - IDWriteFontFace4 *This, - IDWriteLocalizedStrings **names); + HRESULT(STDMETHODCALLTYPE* GetFamilyNames)( + IDWriteFontFace4* This, + IDWriteLocalizedStrings** names); - HRESULT (STDMETHODCALLTYPE *GetFaceNames)( - IDWriteFontFace4 *This, - IDWriteLocalizedStrings **names); + HRESULT(STDMETHODCALLTYPE* GetFaceNames)( + IDWriteFontFace4* This, + IDWriteLocalizedStrings** names); - HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( - IDWriteFontFace4 *This, - DWRITE_INFORMATIONAL_STRING_ID stringid, - IDWriteLocalizedStrings **strings, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* GetInformationalStrings)( + IDWriteFontFace4* This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings** strings, + WINBOOL* exists); - WINBOOL (STDMETHODCALLTYPE *HasCharacter)( - IDWriteFontFace4 *This, - UINT32 character); + WINBOOL(STDMETHODCALLTYPE* HasCharacter)( + IDWriteFontFace4* This, + UINT32 character); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)( - IDWriteFontFace4 *This, - FLOAT emsize, - FLOAT dpi_x, - FLOAT dpi_y, - const DWRITE_MATRIX *transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - IDWriteRenderingParams *params, - DWRITE_RENDERING_MODE1 *rendering_mode, - DWRITE_GRID_FIT_MODE *gridfit_mode); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace3_GetRecommendedRenderingMode)( + IDWriteFontFace4* This, + FLOAT emsize, + FLOAT dpi_x, + FLOAT dpi_y, + const DWRITE_MATRIX* transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + IDWriteRenderingParams* params, + DWRITE_RENDERING_MODE1* rendering_mode, + DWRITE_GRID_FIT_MODE* gridfit_mode); - WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)( - IDWriteFontFace4 *This, - UINT32 character); + WINBOOL(STDMETHODCALLTYPE* IsCharacterLocal)( + IDWriteFontFace4* This, + UINT32 character); - WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)( - IDWriteFontFace4 *This, - UINT16 glyph); + WINBOOL(STDMETHODCALLTYPE* IsGlyphLocal)( + IDWriteFontFace4* This, + UINT16 glyph); - HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)( - IDWriteFontFace4 *This, - const WCHAR *characters, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL *are_local); + HRESULT(STDMETHODCALLTYPE* AreCharactersLocal)( + IDWriteFontFace4* This, + const WCHAR* characters, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL* are_local); - HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)( - IDWriteFontFace4 *This, - const UINT16 *glyphs, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL *are_local); + HRESULT(STDMETHODCALLTYPE* AreGlyphsLocal)( + IDWriteFontFace4* This, + const UINT16* glyphs, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL* are_local); - /*** IDWriteFontFace4 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)( - IDWriteFontFace4 *This, - UINT16 glyph, - UINT32 ppem_first, - UINT32 ppem_last, - DWRITE_GLYPH_IMAGE_FORMATS *formats); + /*** IDWriteFontFace4 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetGlyphImageFormats_)( + IDWriteFontFace4* This, + UINT16 glyph, + UINT32 ppem_first, + UINT32 ppem_last, + DWRITE_GLYPH_IMAGE_FORMATS* formats); - DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)( - IDWriteFontFace4 *This); + DWRITE_GLYPH_IMAGE_FORMATS(STDMETHODCALLTYPE* GetGlyphImageFormats)( + IDWriteFontFace4* This); - HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)( - IDWriteFontFace4 *This, - UINT16 glyph, - UINT32 ppem, - DWRITE_GLYPH_IMAGE_FORMATS format, - DWRITE_GLYPH_IMAGE_DATA *data, - void **context); + HRESULT(STDMETHODCALLTYPE* GetGlyphImageData)( + IDWriteFontFace4* This, + UINT16 glyph, + UINT32 ppem, + DWRITE_GLYPH_IMAGE_FORMATS format, + DWRITE_GLYPH_IMAGE_DATA* data, + void** context); - void (STDMETHODCALLTYPE *ReleaseGlyphImageData)( - IDWriteFontFace4 *This, - void *context); + void(STDMETHODCALLTYPE* ReleaseGlyphImageData)( + IDWriteFontFace4* This, + void* context); - END_INTERFACE + END_INTERFACE } IDWriteFontFace4Vtbl; interface IDWriteFontFace4 { - CONST_VTBL IDWriteFontFace4Vtbl* lpVtbl; + CONST_VTBL IDWriteFontFace4Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontFace4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFace4_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontFace4_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontFace4_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontFace methods ***/ #define IDWriteFontFace4_GetType(This) (This)->lpVtbl->GetType(This) -#define IDWriteFontFace4_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) +#define IDWriteFontFace4_GetFiles(This, number_of_files, fontfiles) (This)->lpVtbl->GetFiles(This, number_of_files, fontfiles) #define IDWriteFontFace4_GetIndex(This) (This)->lpVtbl->GetIndex(This) #define IDWriteFontFace4_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) #define IDWriteFontFace4_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) #define IDWriteFontFace4_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) -#define IDWriteFontFace4_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) -#define IDWriteFontFace4_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) -#define IDWriteFontFace4_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) -#define IDWriteFontFace4_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) -#define IDWriteFontFace4_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) -#define IDWriteFontFace4_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) +#define IDWriteFontFace4_GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) +#define IDWriteFontFace4_GetGlyphIndices(This, codepoints, count, glyph_indices) (This)->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices) +#define IDWriteFontFace4_TryGetFontTable(This, table_tag, table_data, table_size, context, exists) (This)->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists) +#define IDWriteFontFace4_ReleaseFontTable(This, table_context) (This)->lpVtbl->ReleaseFontTable(This, table_context) +#define IDWriteFontFace4_GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) +#define IDWriteFontFace4_GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) /*** IDWriteFontFace1 methods ***/ -#define IDWriteFontFace4_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics) -#define IDWriteFontFace4_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) -#define IDWriteFontFace4_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics) -#define IDWriteFontFace4_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFontFace4_GetMetrics(This, metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics) +#define IDWriteFontFace4_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) +#define IDWriteFontFace4_GetCaretMetrics(This, metrics) (This)->lpVtbl->GetCaretMetrics(This, metrics) +#define IDWriteFontFace4_GetUnicodeRanges(This, max_count, ranges, count) (This)->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count) #define IDWriteFontFace4_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) -#define IDWriteFontFace4_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) -#define IDWriteFontFace4_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) -#define IDWriteFontFace4_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments) +#define IDWriteFontFace4_GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) +#define IDWriteFontFace4_GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) +#define IDWriteFontFace4_GetKerningPairAdjustments(This, glyph_count, indices, adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments) #define IDWriteFontFace4_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) -#define IDWriteFontFace4_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) +#define IDWriteFontFace4_GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) #define IDWriteFontFace4_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) /*** IDWriteFontFace2 methods ***/ #define IDWriteFontFace4_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) #define IDWriteFontFace4_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) #define IDWriteFontFace4_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) -#define IDWriteFontFace4_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) +#define IDWriteFontFace4_GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) (This)->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) /*** IDWriteFontFace3 methods ***/ -#define IDWriteFontFace4_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference) -#define IDWriteFontFace4_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) +#define IDWriteFontFace4_GetFontFaceReference(This, reference) (This)->lpVtbl->GetFontFaceReference(This, reference) +#define IDWriteFontFace4_GetPanose(This, panose) (This)->lpVtbl->GetPanose(This, panose) #define IDWriteFontFace4_GetWeight(This) (This)->lpVtbl->GetWeight(This) #define IDWriteFontFace4_GetStretch(This) (This)->lpVtbl->GetStretch(This) #define IDWriteFontFace4_GetStyle(This) (This)->lpVtbl->GetStyle(This) -#define IDWriteFontFace4_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names) -#define IDWriteFontFace4_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names) -#define IDWriteFontFace4_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) -#define IDWriteFontFace4_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character) -#define IDWriteFontFace4_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) -#define IDWriteFontFace4_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character) -#define IDWriteFontFace4_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph) -#define IDWriteFontFace4_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) -#define IDWriteFontFace4_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) +#define IDWriteFontFace4_GetFamilyNames(This, names) (This)->lpVtbl->GetFamilyNames(This, names) +#define IDWriteFontFace4_GetFaceNames(This, names) (This)->lpVtbl->GetFaceNames(This, names) +#define IDWriteFontFace4_GetInformationalStrings(This, stringid, strings, exists) (This)->lpVtbl->GetInformationalStrings(This, stringid, strings, exists) +#define IDWriteFontFace4_HasCharacter(This, character) (This)->lpVtbl->HasCharacter(This, character) +#define IDWriteFontFace4_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode) +#define IDWriteFontFace4_IsCharacterLocal(This, character) (This)->lpVtbl->IsCharacterLocal(This, character) +#define IDWriteFontFace4_IsGlyphLocal(This, glyph) (This)->lpVtbl->IsGlyphLocal(This, glyph) +#define IDWriteFontFace4_AreCharactersLocal(This, characters, count, enqueue_if_not, are_local) (This)->lpVtbl->AreCharactersLocal(This, characters, count, enqueue_if_not, are_local) +#define IDWriteFontFace4_AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local) (This)->lpVtbl->AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local) /*** IDWriteFontFace4 methods ***/ -#define IDWriteFontFace4_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) +#define IDWriteFontFace4_GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats) (This)->lpVtbl->GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats) #define IDWriteFontFace4_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This) -#define IDWriteFontFace4_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context) -#define IDWriteFontFace4_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context) +#define IDWriteFontFace4_GetGlyphImageData(This, glyph, ppem, format, data, context) (This)->lpVtbl->GetGlyphImageData(This, glyph, ppem, format, data, context) +#define IDWriteFontFace4_ReleaseGlyphImageData(This, context) (This)->lpVtbl->ReleaseGlyphImageData(This, context) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFace4_QueryInterface(IDWriteFontFace4* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontFace4_QueryInterface(IDWriteFontFace4* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontFace4_AddRef(IDWriteFontFace4* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontFace4_Release(IDWriteFontFace4* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontFace methods ***/ static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace4_GetType(IDWriteFontFace4* This) { - return This->lpVtbl->GetType(This); + return This->lpVtbl->GetType(This); } -static inline HRESULT IDWriteFontFace4_GetFiles(IDWriteFontFace4* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { - return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); +static inline HRESULT IDWriteFontFace4_GetFiles(IDWriteFontFace4* This, UINT32* number_of_files, IDWriteFontFile** fontfiles) { + return This->lpVtbl->GetFiles(This, number_of_files, fontfiles); } static inline UINT32 IDWriteFontFace4_GetIndex(IDWriteFontFace4* This) { - return This->lpVtbl->GetIndex(This); + return This->lpVtbl->GetIndex(This); } static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace4_GetSimulations(IDWriteFontFace4* This) { - return This->lpVtbl->GetSimulations(This); + return This->lpVtbl->GetSimulations(This); } static inline WINBOOL IDWriteFontFace4_IsSymbolFont(IDWriteFontFace4* This) { - return This->lpVtbl->IsSymbolFont(This); + return This->lpVtbl->IsSymbolFont(This); } static inline UINT16 IDWriteFontFace4_GetGlyphCount(IDWriteFontFace4* This) { - return This->lpVtbl->GetGlyphCount(This); + return This->lpVtbl->GetGlyphCount(This); } -static inline HRESULT IDWriteFontFace4_GetDesignGlyphMetrics(IDWriteFontFace4* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); +static inline HRESULT IDWriteFontFace4_GetDesignGlyphMetrics(IDWriteFontFace4* This, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways); } -static inline HRESULT IDWriteFontFace4_GetGlyphIndices(IDWriteFontFace4* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { - return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); +static inline HRESULT IDWriteFontFace4_GetGlyphIndices(IDWriteFontFace4* This, const UINT32* codepoints, UINT32 count, UINT16* glyph_indices) { + return This->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices); } -static inline HRESULT IDWriteFontFace4_TryGetFontTable(IDWriteFontFace4* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { - return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); +static inline HRESULT IDWriteFontFace4_TryGetFontTable(IDWriteFontFace4* This, UINT32 table_tag, const void** table_data, UINT32* table_size, void** context, WINBOOL* exists) { + return This->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists); } -static inline void IDWriteFontFace4_ReleaseFontTable(IDWriteFontFace4* This,void *table_context) { - This->lpVtbl->ReleaseFontTable(This,table_context); +static inline void IDWriteFontFace4_ReleaseFontTable(IDWriteFontFace4* This, void* table_context) { + This->lpVtbl->ReleaseFontTable(This, table_context); } -static inline HRESULT IDWriteFontFace4_GetGlyphRunOutline(IDWriteFontFace4* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) { - return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); +static inline HRESULT IDWriteFontFace4_GetGlyphRunOutline(IDWriteFontFace4* This, FLOAT emSize, const UINT16* glyph_indices, const FLOAT* glyph_advances, const DWRITE_GLYPH_OFFSET* glyph_offsets, UINT32 glyph_count, WINBOOL is_sideways, WINBOOL is_rtl, IDWriteGeometrySink* geometrysink) { + return This->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink); } -static inline HRESULT IDWriteFontFace4_GetGdiCompatibleGlyphMetrics(IDWriteFontFace4* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { - return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); +static inline HRESULT IDWriteFontFace4_GetGdiCompatibleGlyphMetrics(IDWriteFontFace4* This, FLOAT emSize, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { + return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways); } /*** IDWriteFontFace1 methods ***/ -static inline void IDWriteFontFace4_GetMetrics(IDWriteFontFace4* This,DWRITE_FONT_METRICS1 *metrics) { - This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics); +static inline void IDWriteFontFace4_GetMetrics(IDWriteFontFace4* This, DWRITE_FONT_METRICS1* metrics) { + This->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics); } -static inline HRESULT IDWriteFontFace4_GetGdiCompatibleMetrics(IDWriteFontFace4* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) { - return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics); +static inline HRESULT IDWriteFontFace4_GetGdiCompatibleMetrics(IDWriteFontFace4* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, DWRITE_FONT_METRICS1* metrics) { + return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics); } -static inline void IDWriteFontFace4_GetCaretMetrics(IDWriteFontFace4* This,DWRITE_CARET_METRICS *metrics) { - This->lpVtbl->GetCaretMetrics(This,metrics); +static inline void IDWriteFontFace4_GetCaretMetrics(IDWriteFontFace4* This, DWRITE_CARET_METRICS* metrics) { + This->lpVtbl->GetCaretMetrics(This, metrics); } -static inline HRESULT IDWriteFontFace4_GetUnicodeRanges(IDWriteFontFace4* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { - return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +static inline HRESULT IDWriteFontFace4_GetUnicodeRanges(IDWriteFontFace4* This, UINT32 max_count, DWRITE_UNICODE_RANGE* ranges, UINT32* count) { + return This->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count); } static inline WINBOOL IDWriteFontFace4_IsMonospacedFont(IDWriteFontFace4* This) { - return This->lpVtbl->IsMonospacedFont(This); + return This->lpVtbl->IsMonospacedFont(This); } -static inline HRESULT IDWriteFontFace4_GetDesignGlyphAdvances(IDWriteFontFace4* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways); +static inline HRESULT IDWriteFontFace4_GetDesignGlyphAdvances(IDWriteFontFace4* This, UINT32 glyph_count, const UINT16* indices, INT32* advances, WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways); } -static inline HRESULT IDWriteFontFace4_GetGdiCompatibleGlyphAdvances(IDWriteFontFace4* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) { - return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances); +static inline HRESULT IDWriteFontFace4_GetGdiCompatibleGlyphAdvances(IDWriteFontFace4* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, WINBOOL is_sideways, UINT32 glyph_count, const UINT16* indices, INT32* advances) { + return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances); } -static inline HRESULT IDWriteFontFace4_GetKerningPairAdjustments(IDWriteFontFace4* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) { - return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments); +static inline HRESULT IDWriteFontFace4_GetKerningPairAdjustments(IDWriteFontFace4* This, UINT32 glyph_count, const UINT16* indices, INT32* adjustments) { + return This->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments); } static inline WINBOOL IDWriteFontFace4_HasKerningPairs(IDWriteFontFace4* This) { - return This->lpVtbl->HasKerningPairs(This); + return This->lpVtbl->HasKerningPairs(This); } -static inline HRESULT IDWriteFontFace4_GetVerticalGlyphVariants(IDWriteFontFace4* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) { - return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices); +static inline HRESULT IDWriteFontFace4_GetVerticalGlyphVariants(IDWriteFontFace4* This, UINT32 glyph_count, const UINT16* nominal_indices, UINT16* vertical_indices) { + return This->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices); } static inline WINBOOL IDWriteFontFace4_HasVerticalGlyphVariants(IDWriteFontFace4* This) { - return This->lpVtbl->HasVerticalGlyphVariants(This); + return This->lpVtbl->HasVerticalGlyphVariants(This); } /*** IDWriteFontFace2 methods ***/ static inline WINBOOL IDWriteFontFace4_IsColorFont(IDWriteFontFace4* This) { - return This->lpVtbl->IsColorFont(This); + return This->lpVtbl->IsColorFont(This); } static inline UINT32 IDWriteFontFace4_GetColorPaletteCount(IDWriteFontFace4* This) { - return This->lpVtbl->GetColorPaletteCount(This); + return This->lpVtbl->GetColorPaletteCount(This); } static inline UINT32 IDWriteFontFace4_GetPaletteEntryCount(IDWriteFontFace4* This) { - return This->lpVtbl->GetPaletteEntryCount(This); + return This->lpVtbl->GetPaletteEntryCount(This); } -static inline HRESULT IDWriteFontFace4_GetPaletteEntries(IDWriteFontFace4* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) { - return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries); +static inline HRESULT IDWriteFontFace4_GetPaletteEntries(IDWriteFontFace4* This, UINT32 palette_index, UINT32 first_entry_index, UINT32 entry_count, DWRITE_COLOR_F* entries) { + return This->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries); } /*** IDWriteFontFace3 methods ***/ -static inline HRESULT IDWriteFontFace4_GetFontFaceReference(IDWriteFontFace4* This,IDWriteFontFaceReference **reference) { - return This->lpVtbl->GetFontFaceReference(This,reference); +static inline HRESULT IDWriteFontFace4_GetFontFaceReference(IDWriteFontFace4* This, IDWriteFontFaceReference** reference) { + return This->lpVtbl->GetFontFaceReference(This, reference); } -static inline void IDWriteFontFace4_GetPanose(IDWriteFontFace4* This,DWRITE_PANOSE *panose) { - This->lpVtbl->GetPanose(This,panose); +static inline void IDWriteFontFace4_GetPanose(IDWriteFontFace4* This, DWRITE_PANOSE* panose) { + This->lpVtbl->GetPanose(This, panose); } static inline DWRITE_FONT_WEIGHT IDWriteFontFace4_GetWeight(IDWriteFontFace4* This) { - return This->lpVtbl->GetWeight(This); + return This->lpVtbl->GetWeight(This); } static inline DWRITE_FONT_STRETCH IDWriteFontFace4_GetStretch(IDWriteFontFace4* This) { - return This->lpVtbl->GetStretch(This); + return This->lpVtbl->GetStretch(This); } static inline DWRITE_FONT_STYLE IDWriteFontFace4_GetStyle(IDWriteFontFace4* This) { - return This->lpVtbl->GetStyle(This); + return This->lpVtbl->GetStyle(This); } -static inline HRESULT IDWriteFontFace4_GetFamilyNames(IDWriteFontFace4* This,IDWriteLocalizedStrings **names) { - return This->lpVtbl->GetFamilyNames(This,names); +static inline HRESULT IDWriteFontFace4_GetFamilyNames(IDWriteFontFace4* This, IDWriteLocalizedStrings** names) { + return This->lpVtbl->GetFamilyNames(This, names); } -static inline HRESULT IDWriteFontFace4_GetFaceNames(IDWriteFontFace4* This,IDWriteLocalizedStrings **names) { - return This->lpVtbl->GetFaceNames(This,names); +static inline HRESULT IDWriteFontFace4_GetFaceNames(IDWriteFontFace4* This, IDWriteLocalizedStrings** names) { + return This->lpVtbl->GetFaceNames(This, names); } -static inline HRESULT IDWriteFontFace4_GetInformationalStrings(IDWriteFontFace4* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { - return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +static inline HRESULT IDWriteFontFace4_GetInformationalStrings(IDWriteFontFace4* This, DWRITE_INFORMATIONAL_STRING_ID stringid, IDWriteLocalizedStrings** strings, WINBOOL* exists) { + return This->lpVtbl->GetInformationalStrings(This, stringid, strings, exists); } -static inline WINBOOL IDWriteFontFace4_HasCharacter(IDWriteFontFace4* This,UINT32 character) { - return This->lpVtbl->HasCharacter(This,character); +static inline WINBOOL IDWriteFontFace4_HasCharacter(IDWriteFontFace4* This, UINT32 character) { + return This->lpVtbl->HasCharacter(This, character); } -static inline HRESULT IDWriteFontFace4_GetRecommendedRenderingMode(IDWriteFontFace4* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) { - return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode); +static inline HRESULT IDWriteFontFace4_GetRecommendedRenderingMode(IDWriteFontFace4* This, FLOAT emsize, FLOAT dpi_x, FLOAT dpi_y, const DWRITE_MATRIX* transform, WINBOOL is_sideways, DWRITE_OUTLINE_THRESHOLD threshold, DWRITE_MEASURING_MODE measuring_mode, IDWriteRenderingParams* params, DWRITE_RENDERING_MODE1* rendering_mode, DWRITE_GRID_FIT_MODE* gridfit_mode) { + return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode); } -static inline WINBOOL IDWriteFontFace4_IsCharacterLocal(IDWriteFontFace4* This,UINT32 character) { - return This->lpVtbl->IsCharacterLocal(This,character); +static inline WINBOOL IDWriteFontFace4_IsCharacterLocal(IDWriteFontFace4* This, UINT32 character) { + return This->lpVtbl->IsCharacterLocal(This, character); } -static inline WINBOOL IDWriteFontFace4_IsGlyphLocal(IDWriteFontFace4* This,UINT16 glyph) { - return This->lpVtbl->IsGlyphLocal(This,glyph); +static inline WINBOOL IDWriteFontFace4_IsGlyphLocal(IDWriteFontFace4* This, UINT16 glyph) { + return This->lpVtbl->IsGlyphLocal(This, glyph); } -static inline HRESULT IDWriteFontFace4_AreCharactersLocal(IDWriteFontFace4* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { - return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local); +static inline HRESULT IDWriteFontFace4_AreCharactersLocal(IDWriteFontFace4* This, const WCHAR* characters, UINT32 count, WINBOOL enqueue_if_not, WINBOOL* are_local) { + return This->lpVtbl->AreCharactersLocal(This, characters, count, enqueue_if_not, are_local); } -static inline HRESULT IDWriteFontFace4_AreGlyphsLocal(IDWriteFontFace4* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { - return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local); +static inline HRESULT IDWriteFontFace4_AreGlyphsLocal(IDWriteFontFace4* This, const UINT16* glyphs, UINT32 count, WINBOOL enqueue_if_not, WINBOOL* are_local) { + return This->lpVtbl->AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local); } /*** IDWriteFontFace4 methods ***/ -static inline HRESULT IDWriteFontFace4_GetGlyphImageFormats_(IDWriteFontFace4* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) { - return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats); +static inline HRESULT IDWriteFontFace4_GetGlyphImageFormats_(IDWriteFontFace4* This, UINT16 glyph, UINT32 ppem_first, UINT32 ppem_last, DWRITE_GLYPH_IMAGE_FORMATS* formats) { + return This->lpVtbl->GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats); } static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace4_GetGlyphImageFormats(IDWriteFontFace4* This) { - return This->lpVtbl->GetGlyphImageFormats(This); + return This->lpVtbl->GetGlyphImageFormats(This); } -static inline HRESULT IDWriteFontFace4_GetGlyphImageData(IDWriteFontFace4* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) { - return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context); +static inline HRESULT IDWriteFontFace4_GetGlyphImageData(IDWriteFontFace4* This, UINT16 glyph, UINT32 ppem, DWRITE_GLYPH_IMAGE_FORMATS format, DWRITE_GLYPH_IMAGE_DATA* data, void** context) { + return This->lpVtbl->GetGlyphImageData(This, glyph, ppem, format, data, context); } -static inline void IDWriteFontFace4_ReleaseGlyphImageData(IDWriteFontFace4* This,void *context) { - This->lpVtbl->ReleaseGlyphImageData(This,context); +static inline void IDWriteFontFace4_ReleaseGlyphImageData(IDWriteFontFace4* This, void* context) { + This->lpVtbl->ReleaseGlyphImageData(This, context); } #endif #endif #endif - -#endif /* __IDWriteFontFace4_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontFace4_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontFace5 interface @@ -9268,593 +9144,588 @@ static inline void IDWriteFontFace4_ReleaseGlyphImageData(IDWriteFontFace4* This #ifndef __IDWriteFontFace5_INTERFACE_DEFINED__ #define __IDWriteFontFace5_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontFace5, 0x98eff3a5, 0xb667, 0x479a, 0xb1,0x45, 0xe2,0xfa,0x5b,0x9f,0xdc,0x29); +DEFINE_GUID(IID_IDWriteFontFace5, 0x98eff3a5, 0xb667, 0x479a, 0xb1, 0x45, 0xe2, 0xfa, 0x5b, 0x9f, 0xdc, 0x29); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("98eff3a5-b667-479a-b145-e2fa5b9fdc29") -IDWriteFontFace5 : public IDWriteFontFace4 -{ - virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount( - ) = 0; +IDWriteFontFace5 : public IDWriteFontFace4 { + virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount() = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues( - DWRITE_FONT_AXIS_VALUE *values, - UINT32 value_count) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues( + DWRITE_FONT_AXIS_VALUE * values, + UINT32 value_count) = 0; - virtual WINBOOL STDMETHODCALLTYPE HasVariations( - ) = 0; + virtual WINBOOL STDMETHODCALLTYPE HasVariations() = 0; - virtual HRESULT STDMETHODCALLTYPE GetFontResource( - IDWriteFontResource **resource) = 0; - - virtual WINBOOL STDMETHODCALLTYPE Equals( - IDWriteFontFace *fontface) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFontResource( + IDWriteFontResource * *resource) = 0; + virtual WINBOOL STDMETHODCALLTYPE Equals( + IDWriteFontFace * fontface) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFace5, 0x98eff3a5, 0xb667, 0x479a, 0xb1,0x45, 0xe2,0xfa,0x5b,0x9f,0xdc,0x29) +__CRT_UUID_DECL(IDWriteFontFace5, 0x98eff3a5, 0xb667, 0x479a, 0xb1, 0x45, 0xe2, 0xfa, 0x5b, 0x9f, 0xdc, 0x29) #endif #else typedef struct IDWriteFontFace5Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontFace5 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontFace5* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontFace5 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontFace5* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontFace5 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontFace5* This); - /*** IDWriteFontFace methods ***/ - DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( - IDWriteFontFace5 *This); + /*** IDWriteFontFace methods ***/ + DWRITE_FONT_FACE_TYPE(STDMETHODCALLTYPE* GetType)( + IDWriteFontFace5* This); - HRESULT (STDMETHODCALLTYPE *GetFiles)( - IDWriteFontFace5 *This, - UINT32 *number_of_files, - IDWriteFontFile **fontfiles); + HRESULT(STDMETHODCALLTYPE* GetFiles)( + IDWriteFontFace5* This, + UINT32* number_of_files, + IDWriteFontFile** fontfiles); - UINT32 (STDMETHODCALLTYPE *GetIndex)( - IDWriteFontFace5 *This); + UINT32(STDMETHODCALLTYPE* GetIndex)( + IDWriteFontFace5* This); - DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( - IDWriteFontFace5 *This); + DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( + IDWriteFontFace5* This); - WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( - IDWriteFontFace5 *This); + WINBOOL(STDMETHODCALLTYPE* IsSymbolFont)( + IDWriteFontFace5* This); - void (STDMETHODCALLTYPE *GetMetrics)( - IDWriteFontFace5 *This, - DWRITE_FONT_METRICS *metrics); + void(STDMETHODCALLTYPE* GetMetrics)( + IDWriteFontFace5* This, + DWRITE_FONT_METRICS* metrics); - UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( - IDWriteFontFace5 *This); + UINT16(STDMETHODCALLTYPE* GetGlyphCount)( + IDWriteFontFace5* This); - HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( - IDWriteFontFace5 *This, - const UINT16 *glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS *metrics, - WINBOOL is_sideways); + HRESULT(STDMETHODCALLTYPE* GetDesignGlyphMetrics)( + IDWriteFontFace5* This, + const UINT16* glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS* metrics, + WINBOOL is_sideways); - HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( - IDWriteFontFace5 *This, - const UINT32 *codepoints, - UINT32 count, - UINT16 *glyph_indices); + HRESULT(STDMETHODCALLTYPE* GetGlyphIndices)( + IDWriteFontFace5* This, + const UINT32* codepoints, + UINT32 count, + UINT16* glyph_indices); - HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( - IDWriteFontFace5 *This, - UINT32 table_tag, - const void **table_data, - UINT32 *table_size, - void **context, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* TryGetFontTable)( + IDWriteFontFace5* This, + UINT32 table_tag, + const void** table_data, + UINT32* table_size, + void** context, + WINBOOL* exists); - void (STDMETHODCALLTYPE *ReleaseFontTable)( - IDWriteFontFace5 *This, - void *table_context); + void(STDMETHODCALLTYPE* ReleaseFontTable)( + IDWriteFontFace5* This, + void* table_context); - HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( - IDWriteFontFace5 *This, - FLOAT emSize, - const UINT16 *glyph_indices, - const FLOAT *glyph_advances, - const DWRITE_GLYPH_OFFSET *glyph_offsets, - UINT32 glyph_count, - WINBOOL is_sideways, - WINBOOL is_rtl, - IDWriteGeometrySink *geometrysink); + HRESULT(STDMETHODCALLTYPE* GetGlyphRunOutline)( + IDWriteFontFace5* This, + FLOAT emSize, + const UINT16* glyph_indices, + const FLOAT* glyph_advances, + const DWRITE_GLYPH_OFFSET* glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink* geometrysink); - HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( - IDWriteFontFace5 *This, - FLOAT emSize, - FLOAT pixels_per_dip, - DWRITE_MEASURING_MODE mode, - IDWriteRenderingParams *params, - DWRITE_RENDERING_MODE *rendering_mode); + HRESULT(STDMETHODCALLTYPE* GetRecommendedRenderingMode)( + IDWriteFontFace5* This, + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams* params, + DWRITE_RENDERING_MODE* rendering_mode); - HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( - IDWriteFontFace5 *This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_FONT_METRICS *metrics); + HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleMetrics)( + IDWriteFontFace5* This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_FONT_METRICS* metrics); - HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( - IDWriteFontFace5 *This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - const UINT16 *glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS *metrics, - WINBOOL is_sideways); + HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphMetrics)( + IDWriteFontFace5* This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + const UINT16* glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS* metrics, + WINBOOL is_sideways); - /*** IDWriteFontFace1 methods ***/ - void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)( - IDWriteFontFace5 *This, - DWRITE_FONT_METRICS1 *metrics); + /*** IDWriteFontFace1 methods ***/ + void(STDMETHODCALLTYPE* IDWriteFontFace1_GetMetrics)( + IDWriteFontFace5* This, + DWRITE_FONT_METRICS1* metrics); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)( - IDWriteFontFace5 *This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_FONT_METRICS1 *metrics); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetGdiCompatibleMetrics)( + IDWriteFontFace5* This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_FONT_METRICS1* metrics); - void (STDMETHODCALLTYPE *GetCaretMetrics)( - IDWriteFontFace5 *This, - DWRITE_CARET_METRICS *metrics); + void(STDMETHODCALLTYPE* GetCaretMetrics)( + IDWriteFontFace5* This, + DWRITE_CARET_METRICS* metrics); - HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( - IDWriteFontFace5 *This, - UINT32 max_count, - DWRITE_UNICODE_RANGE *ranges, - UINT32 *count); + HRESULT(STDMETHODCALLTYPE* GetUnicodeRanges)( + IDWriteFontFace5* This, + UINT32 max_count, + DWRITE_UNICODE_RANGE* ranges, + UINT32* count); - WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( - IDWriteFontFace5 *This); + WINBOOL(STDMETHODCALLTYPE* IsMonospacedFont)( + IDWriteFontFace5* This); - HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)( - IDWriteFontFace5 *This, - UINT32 glyph_count, - const UINT16 *indices, - INT32 *advances, - WINBOOL is_sideways); + HRESULT(STDMETHODCALLTYPE* GetDesignGlyphAdvances)( + IDWriteFontFace5* This, + UINT32 glyph_count, + const UINT16* indices, + INT32* advances, + WINBOOL is_sideways); - HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)( - IDWriteFontFace5 *This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - WINBOOL is_sideways, - UINT32 glyph_count, - const UINT16 *indices, - INT32 *advances); + HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphAdvances)( + IDWriteFontFace5* This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + UINT32 glyph_count, + const UINT16* indices, + INT32* advances); - HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)( - IDWriteFontFace5 *This, - UINT32 glyph_count, - const UINT16 *indices, - INT32 *adjustments); + HRESULT(STDMETHODCALLTYPE* GetKerningPairAdjustments)( + IDWriteFontFace5* This, + UINT32 glyph_count, + const UINT16* indices, + INT32* adjustments); - WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)( - IDWriteFontFace5 *This); + WINBOOL(STDMETHODCALLTYPE* HasKerningPairs)( + IDWriteFontFace5* This); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)( - IDWriteFontFace5 *This, - FLOAT font_emsize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX *transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_RENDERING_MODE *rendering_mode); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetRecommendedRenderingMode)( + IDWriteFontFace5* This, + FLOAT font_emsize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX* transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_RENDERING_MODE* rendering_mode); - HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)( - IDWriteFontFace5 *This, - UINT32 glyph_count, - const UINT16 *nominal_indices, - UINT16 *vertical_indices); + HRESULT(STDMETHODCALLTYPE* GetVerticalGlyphVariants)( + IDWriteFontFace5* This, + UINT32 glyph_count, + const UINT16* nominal_indices, + UINT16* vertical_indices); - WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)( - IDWriteFontFace5 *This); + WINBOOL(STDMETHODCALLTYPE* HasVerticalGlyphVariants)( + IDWriteFontFace5* This); - /*** IDWriteFontFace2 methods ***/ - WINBOOL (STDMETHODCALLTYPE *IsColorFont)( - IDWriteFontFace5 *This); + /*** IDWriteFontFace2 methods ***/ + WINBOOL(STDMETHODCALLTYPE* IsColorFont)( + IDWriteFontFace5* This); - UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)( - IDWriteFontFace5 *This); + UINT32(STDMETHODCALLTYPE* GetColorPaletteCount)( + IDWriteFontFace5* This); - UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)( - IDWriteFontFace5 *This); + UINT32(STDMETHODCALLTYPE* GetPaletteEntryCount)( + IDWriteFontFace5* This); - HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)( - IDWriteFontFace5 *This, - UINT32 palette_index, - UINT32 first_entry_index, - UINT32 entry_count, - DWRITE_COLOR_F *entries); + HRESULT(STDMETHODCALLTYPE* GetPaletteEntries)( + IDWriteFontFace5* This, + UINT32 palette_index, + UINT32 first_entry_index, + UINT32 entry_count, + DWRITE_COLOR_F* entries); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)( - IDWriteFontFace5 *This, - FLOAT fontEmSize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX *transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuringmode, - IDWriteRenderingParams *params, - DWRITE_RENDERING_MODE *renderingmode, - DWRITE_GRID_FIT_MODE *gridfitmode); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace2_GetRecommendedRenderingMode)( + IDWriteFontFace5* This, + FLOAT fontEmSize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX* transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuringmode, + IDWriteRenderingParams* params, + DWRITE_RENDERING_MODE* renderingmode, + DWRITE_GRID_FIT_MODE* gridfitmode); - /*** IDWriteFontFace3 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( - IDWriteFontFace5 *This, - IDWriteFontFaceReference **reference); + /*** IDWriteFontFace3 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( + IDWriteFontFace5* This, + IDWriteFontFaceReference** reference); - void (STDMETHODCALLTYPE *GetPanose)( - IDWriteFontFace5 *This, - DWRITE_PANOSE *panose); + void(STDMETHODCALLTYPE* GetPanose)( + IDWriteFontFace5* This, + DWRITE_PANOSE* panose); - DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( - IDWriteFontFace5 *This); + DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetWeight)( + IDWriteFontFace5* This); - DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( - IDWriteFontFace5 *This); + DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetStretch)( + IDWriteFontFace5* This); - DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( - IDWriteFontFace5 *This); + DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetStyle)( + IDWriteFontFace5* This); - HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( - IDWriteFontFace5 *This, - IDWriteLocalizedStrings **names); + HRESULT(STDMETHODCALLTYPE* GetFamilyNames)( + IDWriteFontFace5* This, + IDWriteLocalizedStrings** names); - HRESULT (STDMETHODCALLTYPE *GetFaceNames)( - IDWriteFontFace5 *This, - IDWriteLocalizedStrings **names); + HRESULT(STDMETHODCALLTYPE* GetFaceNames)( + IDWriteFontFace5* This, + IDWriteLocalizedStrings** names); - HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( - IDWriteFontFace5 *This, - DWRITE_INFORMATIONAL_STRING_ID stringid, - IDWriteLocalizedStrings **strings, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* GetInformationalStrings)( + IDWriteFontFace5* This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings** strings, + WINBOOL* exists); - WINBOOL (STDMETHODCALLTYPE *HasCharacter)( - IDWriteFontFace5 *This, - UINT32 character); + WINBOOL(STDMETHODCALLTYPE* HasCharacter)( + IDWriteFontFace5* This, + UINT32 character); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)( - IDWriteFontFace5 *This, - FLOAT emsize, - FLOAT dpi_x, - FLOAT dpi_y, - const DWRITE_MATRIX *transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - IDWriteRenderingParams *params, - DWRITE_RENDERING_MODE1 *rendering_mode, - DWRITE_GRID_FIT_MODE *gridfit_mode); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace3_GetRecommendedRenderingMode)( + IDWriteFontFace5* This, + FLOAT emsize, + FLOAT dpi_x, + FLOAT dpi_y, + const DWRITE_MATRIX* transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + IDWriteRenderingParams* params, + DWRITE_RENDERING_MODE1* rendering_mode, + DWRITE_GRID_FIT_MODE* gridfit_mode); - WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)( - IDWriteFontFace5 *This, - UINT32 character); + WINBOOL(STDMETHODCALLTYPE* IsCharacterLocal)( + IDWriteFontFace5* This, + UINT32 character); - WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)( - IDWriteFontFace5 *This, - UINT16 glyph); + WINBOOL(STDMETHODCALLTYPE* IsGlyphLocal)( + IDWriteFontFace5* This, + UINT16 glyph); - HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)( - IDWriteFontFace5 *This, - const WCHAR *characters, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL *are_local); + HRESULT(STDMETHODCALLTYPE* AreCharactersLocal)( + IDWriteFontFace5* This, + const WCHAR* characters, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL* are_local); - HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)( - IDWriteFontFace5 *This, - const UINT16 *glyphs, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL *are_local); + HRESULT(STDMETHODCALLTYPE* AreGlyphsLocal)( + IDWriteFontFace5* This, + const UINT16* glyphs, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL* are_local); - /*** IDWriteFontFace4 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)( - IDWriteFontFace5 *This, - UINT16 glyph, - UINT32 ppem_first, - UINT32 ppem_last, - DWRITE_GLYPH_IMAGE_FORMATS *formats); + /*** IDWriteFontFace4 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetGlyphImageFormats_)( + IDWriteFontFace5* This, + UINT16 glyph, + UINT32 ppem_first, + UINT32 ppem_last, + DWRITE_GLYPH_IMAGE_FORMATS* formats); - DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)( - IDWriteFontFace5 *This); + DWRITE_GLYPH_IMAGE_FORMATS(STDMETHODCALLTYPE* GetGlyphImageFormats)( + IDWriteFontFace5* This); - HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)( - IDWriteFontFace5 *This, - UINT16 glyph, - UINT32 ppem, - DWRITE_GLYPH_IMAGE_FORMATS format, - DWRITE_GLYPH_IMAGE_DATA *data, - void **context); + HRESULT(STDMETHODCALLTYPE* GetGlyphImageData)( + IDWriteFontFace5* This, + UINT16 glyph, + UINT32 ppem, + DWRITE_GLYPH_IMAGE_FORMATS format, + DWRITE_GLYPH_IMAGE_DATA* data, + void** context); - void (STDMETHODCALLTYPE *ReleaseGlyphImageData)( - IDWriteFontFace5 *This, - void *context); + void(STDMETHODCALLTYPE* ReleaseGlyphImageData)( + IDWriteFontFace5* This, + void* context); - /*** IDWriteFontFace5 methods ***/ - UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)( - IDWriteFontFace5 *This); + /*** IDWriteFontFace5 methods ***/ + UINT32(STDMETHODCALLTYPE* GetFontAxisValueCount)( + IDWriteFontFace5* This); - HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)( - IDWriteFontFace5 *This, - DWRITE_FONT_AXIS_VALUE *values, - UINT32 value_count); + HRESULT(STDMETHODCALLTYPE* GetFontAxisValues)( + IDWriteFontFace5* This, + DWRITE_FONT_AXIS_VALUE* values, + UINT32 value_count); - WINBOOL (STDMETHODCALLTYPE *HasVariations)( - IDWriteFontFace5 *This); + WINBOOL(STDMETHODCALLTYPE* HasVariations)( + IDWriteFontFace5* This); - HRESULT (STDMETHODCALLTYPE *GetFontResource)( - IDWriteFontFace5 *This, - IDWriteFontResource **resource); + HRESULT(STDMETHODCALLTYPE* GetFontResource)( + IDWriteFontFace5* This, + IDWriteFontResource** resource); - WINBOOL (STDMETHODCALLTYPE *Equals)( - IDWriteFontFace5 *This, - IDWriteFontFace *fontface); + WINBOOL(STDMETHODCALLTYPE* Equals)( + IDWriteFontFace5* This, + IDWriteFontFace* fontface); - END_INTERFACE + END_INTERFACE } IDWriteFontFace5Vtbl; interface IDWriteFontFace5 { - CONST_VTBL IDWriteFontFace5Vtbl* lpVtbl; + CONST_VTBL IDWriteFontFace5Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontFace5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFace5_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontFace5_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontFace5_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontFace methods ***/ #define IDWriteFontFace5_GetType(This) (This)->lpVtbl->GetType(This) -#define IDWriteFontFace5_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) +#define IDWriteFontFace5_GetFiles(This, number_of_files, fontfiles) (This)->lpVtbl->GetFiles(This, number_of_files, fontfiles) #define IDWriteFontFace5_GetIndex(This) (This)->lpVtbl->GetIndex(This) #define IDWriteFontFace5_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) #define IDWriteFontFace5_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) #define IDWriteFontFace5_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) -#define IDWriteFontFace5_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) -#define IDWriteFontFace5_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) -#define IDWriteFontFace5_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) -#define IDWriteFontFace5_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) -#define IDWriteFontFace5_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) -#define IDWriteFontFace5_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) +#define IDWriteFontFace5_GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) +#define IDWriteFontFace5_GetGlyphIndices(This, codepoints, count, glyph_indices) (This)->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices) +#define IDWriteFontFace5_TryGetFontTable(This, table_tag, table_data, table_size, context, exists) (This)->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists) +#define IDWriteFontFace5_ReleaseFontTable(This, table_context) (This)->lpVtbl->ReleaseFontTable(This, table_context) +#define IDWriteFontFace5_GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) +#define IDWriteFontFace5_GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) /*** IDWriteFontFace1 methods ***/ -#define IDWriteFontFace5_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics) -#define IDWriteFontFace5_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) -#define IDWriteFontFace5_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics) -#define IDWriteFontFace5_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFontFace5_GetMetrics(This, metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics) +#define IDWriteFontFace5_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) +#define IDWriteFontFace5_GetCaretMetrics(This, metrics) (This)->lpVtbl->GetCaretMetrics(This, metrics) +#define IDWriteFontFace5_GetUnicodeRanges(This, max_count, ranges, count) (This)->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count) #define IDWriteFontFace5_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) -#define IDWriteFontFace5_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) -#define IDWriteFontFace5_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) -#define IDWriteFontFace5_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments) +#define IDWriteFontFace5_GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) +#define IDWriteFontFace5_GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) +#define IDWriteFontFace5_GetKerningPairAdjustments(This, glyph_count, indices, adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments) #define IDWriteFontFace5_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) -#define IDWriteFontFace5_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) +#define IDWriteFontFace5_GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) #define IDWriteFontFace5_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) /*** IDWriteFontFace2 methods ***/ #define IDWriteFontFace5_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) #define IDWriteFontFace5_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) #define IDWriteFontFace5_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) -#define IDWriteFontFace5_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) +#define IDWriteFontFace5_GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) (This)->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) /*** IDWriteFontFace3 methods ***/ -#define IDWriteFontFace5_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference) -#define IDWriteFontFace5_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) +#define IDWriteFontFace5_GetFontFaceReference(This, reference) (This)->lpVtbl->GetFontFaceReference(This, reference) +#define IDWriteFontFace5_GetPanose(This, panose) (This)->lpVtbl->GetPanose(This, panose) #define IDWriteFontFace5_GetWeight(This) (This)->lpVtbl->GetWeight(This) #define IDWriteFontFace5_GetStretch(This) (This)->lpVtbl->GetStretch(This) #define IDWriteFontFace5_GetStyle(This) (This)->lpVtbl->GetStyle(This) -#define IDWriteFontFace5_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names) -#define IDWriteFontFace5_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names) -#define IDWriteFontFace5_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) -#define IDWriteFontFace5_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character) -#define IDWriteFontFace5_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) -#define IDWriteFontFace5_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character) -#define IDWriteFontFace5_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph) -#define IDWriteFontFace5_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) -#define IDWriteFontFace5_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) +#define IDWriteFontFace5_GetFamilyNames(This, names) (This)->lpVtbl->GetFamilyNames(This, names) +#define IDWriteFontFace5_GetFaceNames(This, names) (This)->lpVtbl->GetFaceNames(This, names) +#define IDWriteFontFace5_GetInformationalStrings(This, stringid, strings, exists) (This)->lpVtbl->GetInformationalStrings(This, stringid, strings, exists) +#define IDWriteFontFace5_HasCharacter(This, character) (This)->lpVtbl->HasCharacter(This, character) +#define IDWriteFontFace5_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode) +#define IDWriteFontFace5_IsCharacterLocal(This, character) (This)->lpVtbl->IsCharacterLocal(This, character) +#define IDWriteFontFace5_IsGlyphLocal(This, glyph) (This)->lpVtbl->IsGlyphLocal(This, glyph) +#define IDWriteFontFace5_AreCharactersLocal(This, characters, count, enqueue_if_not, are_local) (This)->lpVtbl->AreCharactersLocal(This, characters, count, enqueue_if_not, are_local) +#define IDWriteFontFace5_AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local) (This)->lpVtbl->AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local) /*** IDWriteFontFace4 methods ***/ -#define IDWriteFontFace5_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) +#define IDWriteFontFace5_GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats) (This)->lpVtbl->GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats) #define IDWriteFontFace5_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This) -#define IDWriteFontFace5_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context) -#define IDWriteFontFace5_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context) +#define IDWriteFontFace5_GetGlyphImageData(This, glyph, ppem, format, data, context) (This)->lpVtbl->GetGlyphImageData(This, glyph, ppem, format, data, context) +#define IDWriteFontFace5_ReleaseGlyphImageData(This, context) (This)->lpVtbl->ReleaseGlyphImageData(This, context) /*** IDWriteFontFace5 methods ***/ #define IDWriteFontFace5_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This) -#define IDWriteFontFace5_GetFontAxisValues(This,values,value_count) (This)->lpVtbl->GetFontAxisValues(This,values,value_count) +#define IDWriteFontFace5_GetFontAxisValues(This, values, value_count) (This)->lpVtbl->GetFontAxisValues(This, values, value_count) #define IDWriteFontFace5_HasVariations(This) (This)->lpVtbl->HasVariations(This) -#define IDWriteFontFace5_GetFontResource(This,resource) (This)->lpVtbl->GetFontResource(This,resource) -#define IDWriteFontFace5_Equals(This,fontface) (This)->lpVtbl->Equals(This,fontface) +#define IDWriteFontFace5_GetFontResource(This, resource) (This)->lpVtbl->GetFontResource(This, resource) +#define IDWriteFontFace5_Equals(This, fontface) (This)->lpVtbl->Equals(This, fontface) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFace5_QueryInterface(IDWriteFontFace5* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontFace5_QueryInterface(IDWriteFontFace5* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontFace5_AddRef(IDWriteFontFace5* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontFace5_Release(IDWriteFontFace5* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontFace methods ***/ static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace5_GetType(IDWriteFontFace5* This) { - return This->lpVtbl->GetType(This); + return This->lpVtbl->GetType(This); } -static inline HRESULT IDWriteFontFace5_GetFiles(IDWriteFontFace5* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { - return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); +static inline HRESULT IDWriteFontFace5_GetFiles(IDWriteFontFace5* This, UINT32* number_of_files, IDWriteFontFile** fontfiles) { + return This->lpVtbl->GetFiles(This, number_of_files, fontfiles); } static inline UINT32 IDWriteFontFace5_GetIndex(IDWriteFontFace5* This) { - return This->lpVtbl->GetIndex(This); + return This->lpVtbl->GetIndex(This); } static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace5_GetSimulations(IDWriteFontFace5* This) { - return This->lpVtbl->GetSimulations(This); + return This->lpVtbl->GetSimulations(This); } static inline WINBOOL IDWriteFontFace5_IsSymbolFont(IDWriteFontFace5* This) { - return This->lpVtbl->IsSymbolFont(This); + return This->lpVtbl->IsSymbolFont(This); } static inline UINT16 IDWriteFontFace5_GetGlyphCount(IDWriteFontFace5* This) { - return This->lpVtbl->GetGlyphCount(This); + return This->lpVtbl->GetGlyphCount(This); } -static inline HRESULT IDWriteFontFace5_GetDesignGlyphMetrics(IDWriteFontFace5* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); +static inline HRESULT IDWriteFontFace5_GetDesignGlyphMetrics(IDWriteFontFace5* This, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways); } -static inline HRESULT IDWriteFontFace5_GetGlyphIndices(IDWriteFontFace5* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { - return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); +static inline HRESULT IDWriteFontFace5_GetGlyphIndices(IDWriteFontFace5* This, const UINT32* codepoints, UINT32 count, UINT16* glyph_indices) { + return This->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices); } -static inline HRESULT IDWriteFontFace5_TryGetFontTable(IDWriteFontFace5* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { - return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); +static inline HRESULT IDWriteFontFace5_TryGetFontTable(IDWriteFontFace5* This, UINT32 table_tag, const void** table_data, UINT32* table_size, void** context, WINBOOL* exists) { + return This->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists); } -static inline void IDWriteFontFace5_ReleaseFontTable(IDWriteFontFace5* This,void *table_context) { - This->lpVtbl->ReleaseFontTable(This,table_context); +static inline void IDWriteFontFace5_ReleaseFontTable(IDWriteFontFace5* This, void* table_context) { + This->lpVtbl->ReleaseFontTable(This, table_context); } -static inline HRESULT IDWriteFontFace5_GetGlyphRunOutline(IDWriteFontFace5* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) { - return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); +static inline HRESULT IDWriteFontFace5_GetGlyphRunOutline(IDWriteFontFace5* This, FLOAT emSize, const UINT16* glyph_indices, const FLOAT* glyph_advances, const DWRITE_GLYPH_OFFSET* glyph_offsets, UINT32 glyph_count, WINBOOL is_sideways, WINBOOL is_rtl, IDWriteGeometrySink* geometrysink) { + return This->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink); } -static inline HRESULT IDWriteFontFace5_GetGdiCompatibleGlyphMetrics(IDWriteFontFace5* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { - return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); +static inline HRESULT IDWriteFontFace5_GetGdiCompatibleGlyphMetrics(IDWriteFontFace5* This, FLOAT emSize, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { + return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways); } /*** IDWriteFontFace1 methods ***/ -static inline void IDWriteFontFace5_GetMetrics(IDWriteFontFace5* This,DWRITE_FONT_METRICS1 *metrics) { - This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics); +static inline void IDWriteFontFace5_GetMetrics(IDWriteFontFace5* This, DWRITE_FONT_METRICS1* metrics) { + This->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics); } -static inline HRESULT IDWriteFontFace5_GetGdiCompatibleMetrics(IDWriteFontFace5* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) { - return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics); +static inline HRESULT IDWriteFontFace5_GetGdiCompatibleMetrics(IDWriteFontFace5* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, DWRITE_FONT_METRICS1* metrics) { + return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics); } -static inline void IDWriteFontFace5_GetCaretMetrics(IDWriteFontFace5* This,DWRITE_CARET_METRICS *metrics) { - This->lpVtbl->GetCaretMetrics(This,metrics); +static inline void IDWriteFontFace5_GetCaretMetrics(IDWriteFontFace5* This, DWRITE_CARET_METRICS* metrics) { + This->lpVtbl->GetCaretMetrics(This, metrics); } -static inline HRESULT IDWriteFontFace5_GetUnicodeRanges(IDWriteFontFace5* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { - return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +static inline HRESULT IDWriteFontFace5_GetUnicodeRanges(IDWriteFontFace5* This, UINT32 max_count, DWRITE_UNICODE_RANGE* ranges, UINT32* count) { + return This->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count); } static inline WINBOOL IDWriteFontFace5_IsMonospacedFont(IDWriteFontFace5* This) { - return This->lpVtbl->IsMonospacedFont(This); + return This->lpVtbl->IsMonospacedFont(This); } -static inline HRESULT IDWriteFontFace5_GetDesignGlyphAdvances(IDWriteFontFace5* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways); +static inline HRESULT IDWriteFontFace5_GetDesignGlyphAdvances(IDWriteFontFace5* This, UINT32 glyph_count, const UINT16* indices, INT32* advances, WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways); } -static inline HRESULT IDWriteFontFace5_GetGdiCompatibleGlyphAdvances(IDWriteFontFace5* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) { - return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances); +static inline HRESULT IDWriteFontFace5_GetGdiCompatibleGlyphAdvances(IDWriteFontFace5* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, WINBOOL is_sideways, UINT32 glyph_count, const UINT16* indices, INT32* advances) { + return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances); } -static inline HRESULT IDWriteFontFace5_GetKerningPairAdjustments(IDWriteFontFace5* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) { - return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments); +static inline HRESULT IDWriteFontFace5_GetKerningPairAdjustments(IDWriteFontFace5* This, UINT32 glyph_count, const UINT16* indices, INT32* adjustments) { + return This->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments); } static inline WINBOOL IDWriteFontFace5_HasKerningPairs(IDWriteFontFace5* This) { - return This->lpVtbl->HasKerningPairs(This); + return This->lpVtbl->HasKerningPairs(This); } -static inline HRESULT IDWriteFontFace5_GetVerticalGlyphVariants(IDWriteFontFace5* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) { - return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices); +static inline HRESULT IDWriteFontFace5_GetVerticalGlyphVariants(IDWriteFontFace5* This, UINT32 glyph_count, const UINT16* nominal_indices, UINT16* vertical_indices) { + return This->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices); } static inline WINBOOL IDWriteFontFace5_HasVerticalGlyphVariants(IDWriteFontFace5* This) { - return This->lpVtbl->HasVerticalGlyphVariants(This); + return This->lpVtbl->HasVerticalGlyphVariants(This); } /*** IDWriteFontFace2 methods ***/ static inline WINBOOL IDWriteFontFace5_IsColorFont(IDWriteFontFace5* This) { - return This->lpVtbl->IsColorFont(This); + return This->lpVtbl->IsColorFont(This); } static inline UINT32 IDWriteFontFace5_GetColorPaletteCount(IDWriteFontFace5* This) { - return This->lpVtbl->GetColorPaletteCount(This); + return This->lpVtbl->GetColorPaletteCount(This); } static inline UINT32 IDWriteFontFace5_GetPaletteEntryCount(IDWriteFontFace5* This) { - return This->lpVtbl->GetPaletteEntryCount(This); + return This->lpVtbl->GetPaletteEntryCount(This); } -static inline HRESULT IDWriteFontFace5_GetPaletteEntries(IDWriteFontFace5* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) { - return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries); +static inline HRESULT IDWriteFontFace5_GetPaletteEntries(IDWriteFontFace5* This, UINT32 palette_index, UINT32 first_entry_index, UINT32 entry_count, DWRITE_COLOR_F* entries) { + return This->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries); } /*** IDWriteFontFace3 methods ***/ -static inline HRESULT IDWriteFontFace5_GetFontFaceReference(IDWriteFontFace5* This,IDWriteFontFaceReference **reference) { - return This->lpVtbl->GetFontFaceReference(This,reference); +static inline HRESULT IDWriteFontFace5_GetFontFaceReference(IDWriteFontFace5* This, IDWriteFontFaceReference** reference) { + return This->lpVtbl->GetFontFaceReference(This, reference); } -static inline void IDWriteFontFace5_GetPanose(IDWriteFontFace5* This,DWRITE_PANOSE *panose) { - This->lpVtbl->GetPanose(This,panose); +static inline void IDWriteFontFace5_GetPanose(IDWriteFontFace5* This, DWRITE_PANOSE* panose) { + This->lpVtbl->GetPanose(This, panose); } static inline DWRITE_FONT_WEIGHT IDWriteFontFace5_GetWeight(IDWriteFontFace5* This) { - return This->lpVtbl->GetWeight(This); + return This->lpVtbl->GetWeight(This); } static inline DWRITE_FONT_STRETCH IDWriteFontFace5_GetStretch(IDWriteFontFace5* This) { - return This->lpVtbl->GetStretch(This); + return This->lpVtbl->GetStretch(This); } static inline DWRITE_FONT_STYLE IDWriteFontFace5_GetStyle(IDWriteFontFace5* This) { - return This->lpVtbl->GetStyle(This); + return This->lpVtbl->GetStyle(This); } -static inline HRESULT IDWriteFontFace5_GetFamilyNames(IDWriteFontFace5* This,IDWriteLocalizedStrings **names) { - return This->lpVtbl->GetFamilyNames(This,names); +static inline HRESULT IDWriteFontFace5_GetFamilyNames(IDWriteFontFace5* This, IDWriteLocalizedStrings** names) { + return This->lpVtbl->GetFamilyNames(This, names); } -static inline HRESULT IDWriteFontFace5_GetFaceNames(IDWriteFontFace5* This,IDWriteLocalizedStrings **names) { - return This->lpVtbl->GetFaceNames(This,names); +static inline HRESULT IDWriteFontFace5_GetFaceNames(IDWriteFontFace5* This, IDWriteLocalizedStrings** names) { + return This->lpVtbl->GetFaceNames(This, names); } -static inline HRESULT IDWriteFontFace5_GetInformationalStrings(IDWriteFontFace5* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { - return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +static inline HRESULT IDWriteFontFace5_GetInformationalStrings(IDWriteFontFace5* This, DWRITE_INFORMATIONAL_STRING_ID stringid, IDWriteLocalizedStrings** strings, WINBOOL* exists) { + return This->lpVtbl->GetInformationalStrings(This, stringid, strings, exists); } -static inline WINBOOL IDWriteFontFace5_HasCharacter(IDWriteFontFace5* This,UINT32 character) { - return This->lpVtbl->HasCharacter(This,character); +static inline WINBOOL IDWriteFontFace5_HasCharacter(IDWriteFontFace5* This, UINT32 character) { + return This->lpVtbl->HasCharacter(This, character); } -static inline HRESULT IDWriteFontFace5_GetRecommendedRenderingMode(IDWriteFontFace5* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) { - return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode); +static inline HRESULT IDWriteFontFace5_GetRecommendedRenderingMode(IDWriteFontFace5* This, FLOAT emsize, FLOAT dpi_x, FLOAT dpi_y, const DWRITE_MATRIX* transform, WINBOOL is_sideways, DWRITE_OUTLINE_THRESHOLD threshold, DWRITE_MEASURING_MODE measuring_mode, IDWriteRenderingParams* params, DWRITE_RENDERING_MODE1* rendering_mode, DWRITE_GRID_FIT_MODE* gridfit_mode) { + return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode); } -static inline WINBOOL IDWriteFontFace5_IsCharacterLocal(IDWriteFontFace5* This,UINT32 character) { - return This->lpVtbl->IsCharacterLocal(This,character); +static inline WINBOOL IDWriteFontFace5_IsCharacterLocal(IDWriteFontFace5* This, UINT32 character) { + return This->lpVtbl->IsCharacterLocal(This, character); } -static inline WINBOOL IDWriteFontFace5_IsGlyphLocal(IDWriteFontFace5* This,UINT16 glyph) { - return This->lpVtbl->IsGlyphLocal(This,glyph); +static inline WINBOOL IDWriteFontFace5_IsGlyphLocal(IDWriteFontFace5* This, UINT16 glyph) { + return This->lpVtbl->IsGlyphLocal(This, glyph); } -static inline HRESULT IDWriteFontFace5_AreCharactersLocal(IDWriteFontFace5* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { - return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local); +static inline HRESULT IDWriteFontFace5_AreCharactersLocal(IDWriteFontFace5* This, const WCHAR* characters, UINT32 count, WINBOOL enqueue_if_not, WINBOOL* are_local) { + return This->lpVtbl->AreCharactersLocal(This, characters, count, enqueue_if_not, are_local); } -static inline HRESULT IDWriteFontFace5_AreGlyphsLocal(IDWriteFontFace5* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { - return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local); +static inline HRESULT IDWriteFontFace5_AreGlyphsLocal(IDWriteFontFace5* This, const UINT16* glyphs, UINT32 count, WINBOOL enqueue_if_not, WINBOOL* are_local) { + return This->lpVtbl->AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local); } /*** IDWriteFontFace4 methods ***/ -static inline HRESULT IDWriteFontFace5_GetGlyphImageFormats_(IDWriteFontFace5* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) { - return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats); +static inline HRESULT IDWriteFontFace5_GetGlyphImageFormats_(IDWriteFontFace5* This, UINT16 glyph, UINT32 ppem_first, UINT32 ppem_last, DWRITE_GLYPH_IMAGE_FORMATS* formats) { + return This->lpVtbl->GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats); } static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace5_GetGlyphImageFormats(IDWriteFontFace5* This) { - return This->lpVtbl->GetGlyphImageFormats(This); + return This->lpVtbl->GetGlyphImageFormats(This); } -static inline HRESULT IDWriteFontFace5_GetGlyphImageData(IDWriteFontFace5* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) { - return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context); +static inline HRESULT IDWriteFontFace5_GetGlyphImageData(IDWriteFontFace5* This, UINT16 glyph, UINT32 ppem, DWRITE_GLYPH_IMAGE_FORMATS format, DWRITE_GLYPH_IMAGE_DATA* data, void** context) { + return This->lpVtbl->GetGlyphImageData(This, glyph, ppem, format, data, context); } -static inline void IDWriteFontFace5_ReleaseGlyphImageData(IDWriteFontFace5* This,void *context) { - This->lpVtbl->ReleaseGlyphImageData(This,context); +static inline void IDWriteFontFace5_ReleaseGlyphImageData(IDWriteFontFace5* This, void* context) { + This->lpVtbl->ReleaseGlyphImageData(This, context); } /*** IDWriteFontFace5 methods ***/ static inline UINT32 IDWriteFontFace5_GetFontAxisValueCount(IDWriteFontFace5* This) { - return This->lpVtbl->GetFontAxisValueCount(This); + return This->lpVtbl->GetFontAxisValueCount(This); } -static inline HRESULT IDWriteFontFace5_GetFontAxisValues(IDWriteFontFace5* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 value_count) { - return This->lpVtbl->GetFontAxisValues(This,values,value_count); +static inline HRESULT IDWriteFontFace5_GetFontAxisValues(IDWriteFontFace5* This, DWRITE_FONT_AXIS_VALUE* values, UINT32 value_count) { + return This->lpVtbl->GetFontAxisValues(This, values, value_count); } static inline WINBOOL IDWriteFontFace5_HasVariations(IDWriteFontFace5* This) { - return This->lpVtbl->HasVariations(This); + return This->lpVtbl->HasVariations(This); } -static inline HRESULT IDWriteFontFace5_GetFontResource(IDWriteFontFace5* This,IDWriteFontResource **resource) { - return This->lpVtbl->GetFontResource(This,resource); +static inline HRESULT IDWriteFontFace5_GetFontResource(IDWriteFontFace5* This, IDWriteFontResource** resource) { + return This->lpVtbl->GetFontResource(This, resource); } -static inline WINBOOL IDWriteFontFace5_Equals(IDWriteFontFace5* This,IDWriteFontFace *fontface) { - return This->lpVtbl->Equals(This,fontface); +static inline WINBOOL IDWriteFontFace5_Equals(IDWriteFontFace5* This, IDWriteFontFace* fontface) { + return This->lpVtbl->Equals(This, fontface); } #endif #endif #endif - -#endif /* __IDWriteFontFace5_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontFace5_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontFace6 interface @@ -9862,598 +9733,595 @@ static inline WINBOOL IDWriteFontFace5_Equals(IDWriteFontFace5* This,IDWriteFont #ifndef __IDWriteFontFace6_INTERFACE_DEFINED__ #define __IDWriteFontFace6_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontFace6, 0xc4b1fe1b, 0x6e84, 0x47d5, 0xb5,0x4c, 0xa5,0x97,0x98,0x1b,0x06,0xad); +DEFINE_GUID(IID_IDWriteFontFace6, 0xc4b1fe1b, 0x6e84, 0x47d5, 0xb5, 0x4c, 0xa5, 0x97, 0x98, 0x1b, 0x06, 0xad); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("c4b1fe1b-6e84-47d5-b54c-a597981b06ad") -IDWriteFontFace6 : public IDWriteFontFace5 -{ - virtual HRESULT STDMETHODCALLTYPE GetFamilyNames( - DWRITE_FONT_FAMILY_MODEL font_family_model, - IDWriteLocalizedStrings **names) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFaceNames( - DWRITE_FONT_FAMILY_MODEL font_family_model, - IDWriteLocalizedStrings **names) = 0; +IDWriteFontFace6 : public IDWriteFontFace5 { + virtual HRESULT STDMETHODCALLTYPE GetFamilyNames( + DWRITE_FONT_FAMILY_MODEL font_family_model, + IDWriteLocalizedStrings * *names) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFaceNames( + DWRITE_FONT_FAMILY_MODEL font_family_model, + IDWriteLocalizedStrings * *names) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFace6, 0xc4b1fe1b, 0x6e84, 0x47d5, 0xb5,0x4c, 0xa5,0x97,0x98,0x1b,0x06,0xad) +__CRT_UUID_DECL(IDWriteFontFace6, 0xc4b1fe1b, 0x6e84, 0x47d5, 0xb5, 0x4c, 0xa5, 0x97, 0x98, 0x1b, 0x06, 0xad) #endif #else typedef struct IDWriteFontFace6Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontFace6 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontFace6* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontFace6 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontFace6* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontFace6 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontFace6* This); - /*** IDWriteFontFace methods ***/ - DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( - IDWriteFontFace6 *This); + /*** IDWriteFontFace methods ***/ + DWRITE_FONT_FACE_TYPE(STDMETHODCALLTYPE* GetType)( + IDWriteFontFace6* This); - HRESULT (STDMETHODCALLTYPE *GetFiles)( - IDWriteFontFace6 *This, - UINT32 *number_of_files, - IDWriteFontFile **fontfiles); + HRESULT(STDMETHODCALLTYPE* GetFiles)( + IDWriteFontFace6* This, + UINT32* number_of_files, + IDWriteFontFile** fontfiles); - UINT32 (STDMETHODCALLTYPE *GetIndex)( - IDWriteFontFace6 *This); + UINT32(STDMETHODCALLTYPE* GetIndex)( + IDWriteFontFace6* This); - DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( - IDWriteFontFace6 *This); + DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( + IDWriteFontFace6* This); - WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( - IDWriteFontFace6 *This); + WINBOOL(STDMETHODCALLTYPE* IsSymbolFont)( + IDWriteFontFace6* This); - void (STDMETHODCALLTYPE *GetMetrics)( - IDWriteFontFace6 *This, - DWRITE_FONT_METRICS *metrics); + void(STDMETHODCALLTYPE* GetMetrics)( + IDWriteFontFace6* This, + DWRITE_FONT_METRICS* metrics); - UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( - IDWriteFontFace6 *This); + UINT16(STDMETHODCALLTYPE* GetGlyphCount)( + IDWriteFontFace6* This); - HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( - IDWriteFontFace6 *This, - const UINT16 *glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS *metrics, - WINBOOL is_sideways); + HRESULT(STDMETHODCALLTYPE* GetDesignGlyphMetrics)( + IDWriteFontFace6* This, + const UINT16* glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS* metrics, + WINBOOL is_sideways); - HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( - IDWriteFontFace6 *This, - const UINT32 *codepoints, - UINT32 count, - UINT16 *glyph_indices); + HRESULT(STDMETHODCALLTYPE* GetGlyphIndices)( + IDWriteFontFace6* This, + const UINT32* codepoints, + UINT32 count, + UINT16* glyph_indices); - HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( - IDWriteFontFace6 *This, - UINT32 table_tag, - const void **table_data, - UINT32 *table_size, - void **context, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* TryGetFontTable)( + IDWriteFontFace6* This, + UINT32 table_tag, + const void** table_data, + UINT32* table_size, + void** context, + WINBOOL* exists); - void (STDMETHODCALLTYPE *ReleaseFontTable)( - IDWriteFontFace6 *This, - void *table_context); + void(STDMETHODCALLTYPE* ReleaseFontTable)( + IDWriteFontFace6* This, + void* table_context); - HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( - IDWriteFontFace6 *This, - FLOAT emSize, - const UINT16 *glyph_indices, - const FLOAT *glyph_advances, - const DWRITE_GLYPH_OFFSET *glyph_offsets, - UINT32 glyph_count, - WINBOOL is_sideways, - WINBOOL is_rtl, - IDWriteGeometrySink *geometrysink); + HRESULT(STDMETHODCALLTYPE* GetGlyphRunOutline)( + IDWriteFontFace6* This, + FLOAT emSize, + const UINT16* glyph_indices, + const FLOAT* glyph_advances, + const DWRITE_GLYPH_OFFSET* glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink* geometrysink); - HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( - IDWriteFontFace6 *This, - FLOAT emSize, - FLOAT pixels_per_dip, - DWRITE_MEASURING_MODE mode, - IDWriteRenderingParams *params, - DWRITE_RENDERING_MODE *rendering_mode); + HRESULT(STDMETHODCALLTYPE* GetRecommendedRenderingMode)( + IDWriteFontFace6* This, + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams* params, + DWRITE_RENDERING_MODE* rendering_mode); - HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( - IDWriteFontFace6 *This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_FONT_METRICS *metrics); + HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleMetrics)( + IDWriteFontFace6* This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_FONT_METRICS* metrics); - HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( - IDWriteFontFace6 *This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - const UINT16 *glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS *metrics, - WINBOOL is_sideways); + HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphMetrics)( + IDWriteFontFace6* This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + const UINT16* glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS* metrics, + WINBOOL is_sideways); - /*** IDWriteFontFace1 methods ***/ - void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)( - IDWriteFontFace6 *This, - DWRITE_FONT_METRICS1 *metrics); + /*** IDWriteFontFace1 methods ***/ + void(STDMETHODCALLTYPE* IDWriteFontFace1_GetMetrics)( + IDWriteFontFace6* This, + DWRITE_FONT_METRICS1* metrics); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)( - IDWriteFontFace6 *This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_FONT_METRICS1 *metrics); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetGdiCompatibleMetrics)( + IDWriteFontFace6* This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_FONT_METRICS1* metrics); - void (STDMETHODCALLTYPE *GetCaretMetrics)( - IDWriteFontFace6 *This, - DWRITE_CARET_METRICS *metrics); + void(STDMETHODCALLTYPE* GetCaretMetrics)( + IDWriteFontFace6* This, + DWRITE_CARET_METRICS* metrics); - HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( - IDWriteFontFace6 *This, - UINT32 max_count, - DWRITE_UNICODE_RANGE *ranges, - UINT32 *count); + HRESULT(STDMETHODCALLTYPE* GetUnicodeRanges)( + IDWriteFontFace6* This, + UINT32 max_count, + DWRITE_UNICODE_RANGE* ranges, + UINT32* count); - WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( - IDWriteFontFace6 *This); + WINBOOL(STDMETHODCALLTYPE* IsMonospacedFont)( + IDWriteFontFace6* This); - HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)( - IDWriteFontFace6 *This, - UINT32 glyph_count, - const UINT16 *indices, - INT32 *advances, - WINBOOL is_sideways); + HRESULT(STDMETHODCALLTYPE* GetDesignGlyphAdvances)( + IDWriteFontFace6* This, + UINT32 glyph_count, + const UINT16* indices, + INT32* advances, + WINBOOL is_sideways); - HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)( - IDWriteFontFace6 *This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - WINBOOL is_sideways, - UINT32 glyph_count, - const UINT16 *indices, - INT32 *advances); + HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphAdvances)( + IDWriteFontFace6* This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + UINT32 glyph_count, + const UINT16* indices, + INT32* advances); - HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)( - IDWriteFontFace6 *This, - UINT32 glyph_count, - const UINT16 *indices, - INT32 *adjustments); + HRESULT(STDMETHODCALLTYPE* GetKerningPairAdjustments)( + IDWriteFontFace6* This, + UINT32 glyph_count, + const UINT16* indices, + INT32* adjustments); - WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)( - IDWriteFontFace6 *This); + WINBOOL(STDMETHODCALLTYPE* HasKerningPairs)( + IDWriteFontFace6* This); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)( - IDWriteFontFace6 *This, - FLOAT font_emsize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX *transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_RENDERING_MODE *rendering_mode); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetRecommendedRenderingMode)( + IDWriteFontFace6* This, + FLOAT font_emsize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX* transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_RENDERING_MODE* rendering_mode); - HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)( - IDWriteFontFace6 *This, - UINT32 glyph_count, - const UINT16 *nominal_indices, - UINT16 *vertical_indices); + HRESULT(STDMETHODCALLTYPE* GetVerticalGlyphVariants)( + IDWriteFontFace6* This, + UINT32 glyph_count, + const UINT16* nominal_indices, + UINT16* vertical_indices); - WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)( - IDWriteFontFace6 *This); + WINBOOL(STDMETHODCALLTYPE* HasVerticalGlyphVariants)( + IDWriteFontFace6* This); - /*** IDWriteFontFace2 methods ***/ - WINBOOL (STDMETHODCALLTYPE *IsColorFont)( - IDWriteFontFace6 *This); + /*** IDWriteFontFace2 methods ***/ + WINBOOL(STDMETHODCALLTYPE* IsColorFont)( + IDWriteFontFace6* This); - UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)( - IDWriteFontFace6 *This); + UINT32(STDMETHODCALLTYPE* GetColorPaletteCount)( + IDWriteFontFace6* This); - UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)( - IDWriteFontFace6 *This); + UINT32(STDMETHODCALLTYPE* GetPaletteEntryCount)( + IDWriteFontFace6* This); - HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)( - IDWriteFontFace6 *This, - UINT32 palette_index, - UINT32 first_entry_index, - UINT32 entry_count, - DWRITE_COLOR_F *entries); + HRESULT(STDMETHODCALLTYPE* GetPaletteEntries)( + IDWriteFontFace6* This, + UINT32 palette_index, + UINT32 first_entry_index, + UINT32 entry_count, + DWRITE_COLOR_F* entries); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)( - IDWriteFontFace6 *This, - FLOAT fontEmSize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX *transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuringmode, - IDWriteRenderingParams *params, - DWRITE_RENDERING_MODE *renderingmode, - DWRITE_GRID_FIT_MODE *gridfitmode); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace2_GetRecommendedRenderingMode)( + IDWriteFontFace6* This, + FLOAT fontEmSize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX* transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuringmode, + IDWriteRenderingParams* params, + DWRITE_RENDERING_MODE* renderingmode, + DWRITE_GRID_FIT_MODE* gridfitmode); - /*** IDWriteFontFace3 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( - IDWriteFontFace6 *This, - IDWriteFontFaceReference **reference); + /*** IDWriteFontFace3 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( + IDWriteFontFace6* This, + IDWriteFontFaceReference** reference); - void (STDMETHODCALLTYPE *GetPanose)( - IDWriteFontFace6 *This, - DWRITE_PANOSE *panose); + void(STDMETHODCALLTYPE* GetPanose)( + IDWriteFontFace6* This, + DWRITE_PANOSE* panose); - DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( - IDWriteFontFace6 *This); + DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetWeight)( + IDWriteFontFace6* This); - DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( - IDWriteFontFace6 *This); + DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetStretch)( + IDWriteFontFace6* This); - DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( - IDWriteFontFace6 *This); + DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetStyle)( + IDWriteFontFace6* This); - HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( - IDWriteFontFace6 *This, - IDWriteLocalizedStrings **names); + HRESULT(STDMETHODCALLTYPE* GetFamilyNames)( + IDWriteFontFace6* This, + IDWriteLocalizedStrings** names); - HRESULT (STDMETHODCALLTYPE *GetFaceNames)( - IDWriteFontFace6 *This, - IDWriteLocalizedStrings **names); + HRESULT(STDMETHODCALLTYPE* GetFaceNames)( + IDWriteFontFace6* This, + IDWriteLocalizedStrings** names); - HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( - IDWriteFontFace6 *This, - DWRITE_INFORMATIONAL_STRING_ID stringid, - IDWriteLocalizedStrings **strings, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* GetInformationalStrings)( + IDWriteFontFace6* This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings** strings, + WINBOOL* exists); - WINBOOL (STDMETHODCALLTYPE *HasCharacter)( - IDWriteFontFace6 *This, - UINT32 character); + WINBOOL(STDMETHODCALLTYPE* HasCharacter)( + IDWriteFontFace6* This, + UINT32 character); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)( - IDWriteFontFace6 *This, - FLOAT emsize, - FLOAT dpi_x, - FLOAT dpi_y, - const DWRITE_MATRIX *transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - IDWriteRenderingParams *params, - DWRITE_RENDERING_MODE1 *rendering_mode, - DWRITE_GRID_FIT_MODE *gridfit_mode); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace3_GetRecommendedRenderingMode)( + IDWriteFontFace6* This, + FLOAT emsize, + FLOAT dpi_x, + FLOAT dpi_y, + const DWRITE_MATRIX* transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + IDWriteRenderingParams* params, + DWRITE_RENDERING_MODE1* rendering_mode, + DWRITE_GRID_FIT_MODE* gridfit_mode); - WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)( - IDWriteFontFace6 *This, - UINT32 character); + WINBOOL(STDMETHODCALLTYPE* IsCharacterLocal)( + IDWriteFontFace6* This, + UINT32 character); - WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)( - IDWriteFontFace6 *This, - UINT16 glyph); + WINBOOL(STDMETHODCALLTYPE* IsGlyphLocal)( + IDWriteFontFace6* This, + UINT16 glyph); - HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)( - IDWriteFontFace6 *This, - const WCHAR *characters, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL *are_local); + HRESULT(STDMETHODCALLTYPE* AreCharactersLocal)( + IDWriteFontFace6* This, + const WCHAR* characters, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL* are_local); - HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)( - IDWriteFontFace6 *This, - const UINT16 *glyphs, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL *are_local); + HRESULT(STDMETHODCALLTYPE* AreGlyphsLocal)( + IDWriteFontFace6* This, + const UINT16* glyphs, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL* are_local); - /*** IDWriteFontFace4 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)( - IDWriteFontFace6 *This, - UINT16 glyph, - UINT32 ppem_first, - UINT32 ppem_last, - DWRITE_GLYPH_IMAGE_FORMATS *formats); + /*** IDWriteFontFace4 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetGlyphImageFormats_)( + IDWriteFontFace6* This, + UINT16 glyph, + UINT32 ppem_first, + UINT32 ppem_last, + DWRITE_GLYPH_IMAGE_FORMATS* formats); - DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)( - IDWriteFontFace6 *This); + DWRITE_GLYPH_IMAGE_FORMATS(STDMETHODCALLTYPE* GetGlyphImageFormats)( + IDWriteFontFace6* This); - HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)( - IDWriteFontFace6 *This, - UINT16 glyph, - UINT32 ppem, - DWRITE_GLYPH_IMAGE_FORMATS format, - DWRITE_GLYPH_IMAGE_DATA *data, - void **context); + HRESULT(STDMETHODCALLTYPE* GetGlyphImageData)( + IDWriteFontFace6* This, + UINT16 glyph, + UINT32 ppem, + DWRITE_GLYPH_IMAGE_FORMATS format, + DWRITE_GLYPH_IMAGE_DATA* data, + void** context); - void (STDMETHODCALLTYPE *ReleaseGlyphImageData)( - IDWriteFontFace6 *This, - void *context); + void(STDMETHODCALLTYPE* ReleaseGlyphImageData)( + IDWriteFontFace6* This, + void* context); - /*** IDWriteFontFace5 methods ***/ - UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)( - IDWriteFontFace6 *This); + /*** IDWriteFontFace5 methods ***/ + UINT32(STDMETHODCALLTYPE* GetFontAxisValueCount)( + IDWriteFontFace6* This); - HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)( - IDWriteFontFace6 *This, - DWRITE_FONT_AXIS_VALUE *values, - UINT32 value_count); + HRESULT(STDMETHODCALLTYPE* GetFontAxisValues)( + IDWriteFontFace6* This, + DWRITE_FONT_AXIS_VALUE* values, + UINT32 value_count); - WINBOOL (STDMETHODCALLTYPE *HasVariations)( - IDWriteFontFace6 *This); + WINBOOL(STDMETHODCALLTYPE* HasVariations)( + IDWriteFontFace6* This); - HRESULT (STDMETHODCALLTYPE *GetFontResource)( - IDWriteFontFace6 *This, - IDWriteFontResource **resource); + HRESULT(STDMETHODCALLTYPE* GetFontResource)( + IDWriteFontFace6* This, + IDWriteFontResource** resource); - WINBOOL (STDMETHODCALLTYPE *Equals)( - IDWriteFontFace6 *This, - IDWriteFontFace *fontface); + WINBOOL(STDMETHODCALLTYPE* Equals)( + IDWriteFontFace6* This, + IDWriteFontFace* fontface); - /*** IDWriteFontFace6 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFamilyNames)( - IDWriteFontFace6 *This, - DWRITE_FONT_FAMILY_MODEL font_family_model, - IDWriteLocalizedStrings **names); + /*** IDWriteFontFace6 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace6_GetFamilyNames)( + IDWriteFontFace6* This, + DWRITE_FONT_FAMILY_MODEL font_family_model, + IDWriteLocalizedStrings** names); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFaceNames)( - IDWriteFontFace6 *This, - DWRITE_FONT_FAMILY_MODEL font_family_model, - IDWriteLocalizedStrings **names); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace6_GetFaceNames)( + IDWriteFontFace6* This, + DWRITE_FONT_FAMILY_MODEL font_family_model, + IDWriteLocalizedStrings** names); - END_INTERFACE + END_INTERFACE } IDWriteFontFace6Vtbl; interface IDWriteFontFace6 { - CONST_VTBL IDWriteFontFace6Vtbl* lpVtbl; + CONST_VTBL IDWriteFontFace6Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontFace6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFace6_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontFace6_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontFace6_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontFace methods ***/ #define IDWriteFontFace6_GetType(This) (This)->lpVtbl->GetType(This) -#define IDWriteFontFace6_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) +#define IDWriteFontFace6_GetFiles(This, number_of_files, fontfiles) (This)->lpVtbl->GetFiles(This, number_of_files, fontfiles) #define IDWriteFontFace6_GetIndex(This) (This)->lpVtbl->GetIndex(This) #define IDWriteFontFace6_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) #define IDWriteFontFace6_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) #define IDWriteFontFace6_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) -#define IDWriteFontFace6_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) -#define IDWriteFontFace6_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) -#define IDWriteFontFace6_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) -#define IDWriteFontFace6_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) -#define IDWriteFontFace6_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) -#define IDWriteFontFace6_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) +#define IDWriteFontFace6_GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) +#define IDWriteFontFace6_GetGlyphIndices(This, codepoints, count, glyph_indices) (This)->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices) +#define IDWriteFontFace6_TryGetFontTable(This, table_tag, table_data, table_size, context, exists) (This)->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists) +#define IDWriteFontFace6_ReleaseFontTable(This, table_context) (This)->lpVtbl->ReleaseFontTable(This, table_context) +#define IDWriteFontFace6_GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) +#define IDWriteFontFace6_GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) /*** IDWriteFontFace1 methods ***/ -#define IDWriteFontFace6_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics) -#define IDWriteFontFace6_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) -#define IDWriteFontFace6_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics) -#define IDWriteFontFace6_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFontFace6_GetMetrics(This, metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics) +#define IDWriteFontFace6_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) +#define IDWriteFontFace6_GetCaretMetrics(This, metrics) (This)->lpVtbl->GetCaretMetrics(This, metrics) +#define IDWriteFontFace6_GetUnicodeRanges(This, max_count, ranges, count) (This)->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count) #define IDWriteFontFace6_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) -#define IDWriteFontFace6_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) -#define IDWriteFontFace6_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) -#define IDWriteFontFace6_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments) +#define IDWriteFontFace6_GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) +#define IDWriteFontFace6_GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) +#define IDWriteFontFace6_GetKerningPairAdjustments(This, glyph_count, indices, adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments) #define IDWriteFontFace6_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) -#define IDWriteFontFace6_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) +#define IDWriteFontFace6_GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) #define IDWriteFontFace6_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) /*** IDWriteFontFace2 methods ***/ #define IDWriteFontFace6_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) #define IDWriteFontFace6_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) #define IDWriteFontFace6_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) -#define IDWriteFontFace6_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) +#define IDWriteFontFace6_GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) (This)->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) /*** IDWriteFontFace3 methods ***/ -#define IDWriteFontFace6_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference) -#define IDWriteFontFace6_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) +#define IDWriteFontFace6_GetFontFaceReference(This, reference) (This)->lpVtbl->GetFontFaceReference(This, reference) +#define IDWriteFontFace6_GetPanose(This, panose) (This)->lpVtbl->GetPanose(This, panose) #define IDWriteFontFace6_GetWeight(This) (This)->lpVtbl->GetWeight(This) #define IDWriteFontFace6_GetStretch(This) (This)->lpVtbl->GetStretch(This) #define IDWriteFontFace6_GetStyle(This) (This)->lpVtbl->GetStyle(This) -#define IDWriteFontFace6_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) -#define IDWriteFontFace6_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character) -#define IDWriteFontFace6_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) -#define IDWriteFontFace6_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character) -#define IDWriteFontFace6_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph) -#define IDWriteFontFace6_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) -#define IDWriteFontFace6_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) +#define IDWriteFontFace6_GetInformationalStrings(This, stringid, strings, exists) (This)->lpVtbl->GetInformationalStrings(This, stringid, strings, exists) +#define IDWriteFontFace6_HasCharacter(This, character) (This)->lpVtbl->HasCharacter(This, character) +#define IDWriteFontFace6_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode) +#define IDWriteFontFace6_IsCharacterLocal(This, character) (This)->lpVtbl->IsCharacterLocal(This, character) +#define IDWriteFontFace6_IsGlyphLocal(This, glyph) (This)->lpVtbl->IsGlyphLocal(This, glyph) +#define IDWriteFontFace6_AreCharactersLocal(This, characters, count, enqueue_if_not, are_local) (This)->lpVtbl->AreCharactersLocal(This, characters, count, enqueue_if_not, are_local) +#define IDWriteFontFace6_AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local) (This)->lpVtbl->AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local) /*** IDWriteFontFace4 methods ***/ -#define IDWriteFontFace6_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) +#define IDWriteFontFace6_GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats) (This)->lpVtbl->GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats) #define IDWriteFontFace6_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This) -#define IDWriteFontFace6_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context) -#define IDWriteFontFace6_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context) +#define IDWriteFontFace6_GetGlyphImageData(This, glyph, ppem, format, data, context) (This)->lpVtbl->GetGlyphImageData(This, glyph, ppem, format, data, context) +#define IDWriteFontFace6_ReleaseGlyphImageData(This, context) (This)->lpVtbl->ReleaseGlyphImageData(This, context) /*** IDWriteFontFace5 methods ***/ #define IDWriteFontFace6_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This) -#define IDWriteFontFace6_GetFontAxisValues(This,values,value_count) (This)->lpVtbl->GetFontAxisValues(This,values,value_count) +#define IDWriteFontFace6_GetFontAxisValues(This, values, value_count) (This)->lpVtbl->GetFontAxisValues(This, values, value_count) #define IDWriteFontFace6_HasVariations(This) (This)->lpVtbl->HasVariations(This) -#define IDWriteFontFace6_GetFontResource(This,resource) (This)->lpVtbl->GetFontResource(This,resource) -#define IDWriteFontFace6_Equals(This,fontface) (This)->lpVtbl->Equals(This,fontface) +#define IDWriteFontFace6_GetFontResource(This, resource) (This)->lpVtbl->GetFontResource(This, resource) +#define IDWriteFontFace6_Equals(This, fontface) (This)->lpVtbl->Equals(This, fontface) /*** IDWriteFontFace6 methods ***/ -#define IDWriteFontFace6_GetFamilyNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names) -#define IDWriteFontFace6_GetFaceNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names) +#define IDWriteFontFace6_GetFamilyNames(This, font_family_model, names) (This)->lpVtbl->IDWriteFontFace6_GetFamilyNames(This, font_family_model, names) +#define IDWriteFontFace6_GetFaceNames(This, font_family_model, names) (This)->lpVtbl->IDWriteFontFace6_GetFaceNames(This, font_family_model, names) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFace6_QueryInterface(IDWriteFontFace6* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontFace6_QueryInterface(IDWriteFontFace6* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontFace6_AddRef(IDWriteFontFace6* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontFace6_Release(IDWriteFontFace6* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontFace methods ***/ static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace6_GetType(IDWriteFontFace6* This) { - return This->lpVtbl->GetType(This); + return This->lpVtbl->GetType(This); } -static inline HRESULT IDWriteFontFace6_GetFiles(IDWriteFontFace6* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { - return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); +static inline HRESULT IDWriteFontFace6_GetFiles(IDWriteFontFace6* This, UINT32* number_of_files, IDWriteFontFile** fontfiles) { + return This->lpVtbl->GetFiles(This, number_of_files, fontfiles); } static inline UINT32 IDWriteFontFace6_GetIndex(IDWriteFontFace6* This) { - return This->lpVtbl->GetIndex(This); + return This->lpVtbl->GetIndex(This); } static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace6_GetSimulations(IDWriteFontFace6* This) { - return This->lpVtbl->GetSimulations(This); + return This->lpVtbl->GetSimulations(This); } static inline WINBOOL IDWriteFontFace6_IsSymbolFont(IDWriteFontFace6* This) { - return This->lpVtbl->IsSymbolFont(This); + return This->lpVtbl->IsSymbolFont(This); } static inline UINT16 IDWriteFontFace6_GetGlyphCount(IDWriteFontFace6* This) { - return This->lpVtbl->GetGlyphCount(This); + return This->lpVtbl->GetGlyphCount(This); } -static inline HRESULT IDWriteFontFace6_GetDesignGlyphMetrics(IDWriteFontFace6* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); +static inline HRESULT IDWriteFontFace6_GetDesignGlyphMetrics(IDWriteFontFace6* This, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways); } -static inline HRESULT IDWriteFontFace6_GetGlyphIndices(IDWriteFontFace6* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { - return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); +static inline HRESULT IDWriteFontFace6_GetGlyphIndices(IDWriteFontFace6* This, const UINT32* codepoints, UINT32 count, UINT16* glyph_indices) { + return This->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices); } -static inline HRESULT IDWriteFontFace6_TryGetFontTable(IDWriteFontFace6* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { - return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); +static inline HRESULT IDWriteFontFace6_TryGetFontTable(IDWriteFontFace6* This, UINT32 table_tag, const void** table_data, UINT32* table_size, void** context, WINBOOL* exists) { + return This->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists); } -static inline void IDWriteFontFace6_ReleaseFontTable(IDWriteFontFace6* This,void *table_context) { - This->lpVtbl->ReleaseFontTable(This,table_context); +static inline void IDWriteFontFace6_ReleaseFontTable(IDWriteFontFace6* This, void* table_context) { + This->lpVtbl->ReleaseFontTable(This, table_context); } -static inline HRESULT IDWriteFontFace6_GetGlyphRunOutline(IDWriteFontFace6* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) { - return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); +static inline HRESULT IDWriteFontFace6_GetGlyphRunOutline(IDWriteFontFace6* This, FLOAT emSize, const UINT16* glyph_indices, const FLOAT* glyph_advances, const DWRITE_GLYPH_OFFSET* glyph_offsets, UINT32 glyph_count, WINBOOL is_sideways, WINBOOL is_rtl, IDWriteGeometrySink* geometrysink) { + return This->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink); } -static inline HRESULT IDWriteFontFace6_GetGdiCompatibleGlyphMetrics(IDWriteFontFace6* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { - return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); +static inline HRESULT IDWriteFontFace6_GetGdiCompatibleGlyphMetrics(IDWriteFontFace6* This, FLOAT emSize, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { + return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways); } /*** IDWriteFontFace1 methods ***/ -static inline void IDWriteFontFace6_GetMetrics(IDWriteFontFace6* This,DWRITE_FONT_METRICS1 *metrics) { - This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics); +static inline void IDWriteFontFace6_GetMetrics(IDWriteFontFace6* This, DWRITE_FONT_METRICS1* metrics) { + This->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics); } -static inline HRESULT IDWriteFontFace6_GetGdiCompatibleMetrics(IDWriteFontFace6* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) { - return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics); +static inline HRESULT IDWriteFontFace6_GetGdiCompatibleMetrics(IDWriteFontFace6* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, DWRITE_FONT_METRICS1* metrics) { + return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics); } -static inline void IDWriteFontFace6_GetCaretMetrics(IDWriteFontFace6* This,DWRITE_CARET_METRICS *metrics) { - This->lpVtbl->GetCaretMetrics(This,metrics); +static inline void IDWriteFontFace6_GetCaretMetrics(IDWriteFontFace6* This, DWRITE_CARET_METRICS* metrics) { + This->lpVtbl->GetCaretMetrics(This, metrics); } -static inline HRESULT IDWriteFontFace6_GetUnicodeRanges(IDWriteFontFace6* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { - return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +static inline HRESULT IDWriteFontFace6_GetUnicodeRanges(IDWriteFontFace6* This, UINT32 max_count, DWRITE_UNICODE_RANGE* ranges, UINT32* count) { + return This->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count); } static inline WINBOOL IDWriteFontFace6_IsMonospacedFont(IDWriteFontFace6* This) { - return This->lpVtbl->IsMonospacedFont(This); + return This->lpVtbl->IsMonospacedFont(This); } -static inline HRESULT IDWriteFontFace6_GetDesignGlyphAdvances(IDWriteFontFace6* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways); +static inline HRESULT IDWriteFontFace6_GetDesignGlyphAdvances(IDWriteFontFace6* This, UINT32 glyph_count, const UINT16* indices, INT32* advances, WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways); } -static inline HRESULT IDWriteFontFace6_GetGdiCompatibleGlyphAdvances(IDWriteFontFace6* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) { - return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances); +static inline HRESULT IDWriteFontFace6_GetGdiCompatibleGlyphAdvances(IDWriteFontFace6* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, WINBOOL is_sideways, UINT32 glyph_count, const UINT16* indices, INT32* advances) { + return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances); } -static inline HRESULT IDWriteFontFace6_GetKerningPairAdjustments(IDWriteFontFace6* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) { - return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments); +static inline HRESULT IDWriteFontFace6_GetKerningPairAdjustments(IDWriteFontFace6* This, UINT32 glyph_count, const UINT16* indices, INT32* adjustments) { + return This->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments); } static inline WINBOOL IDWriteFontFace6_HasKerningPairs(IDWriteFontFace6* This) { - return This->lpVtbl->HasKerningPairs(This); + return This->lpVtbl->HasKerningPairs(This); } -static inline HRESULT IDWriteFontFace6_GetVerticalGlyphVariants(IDWriteFontFace6* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) { - return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices); +static inline HRESULT IDWriteFontFace6_GetVerticalGlyphVariants(IDWriteFontFace6* This, UINT32 glyph_count, const UINT16* nominal_indices, UINT16* vertical_indices) { + return This->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices); } static inline WINBOOL IDWriteFontFace6_HasVerticalGlyphVariants(IDWriteFontFace6* This) { - return This->lpVtbl->HasVerticalGlyphVariants(This); + return This->lpVtbl->HasVerticalGlyphVariants(This); } /*** IDWriteFontFace2 methods ***/ static inline WINBOOL IDWriteFontFace6_IsColorFont(IDWriteFontFace6* This) { - return This->lpVtbl->IsColorFont(This); + return This->lpVtbl->IsColorFont(This); } static inline UINT32 IDWriteFontFace6_GetColorPaletteCount(IDWriteFontFace6* This) { - return This->lpVtbl->GetColorPaletteCount(This); + return This->lpVtbl->GetColorPaletteCount(This); } static inline UINT32 IDWriteFontFace6_GetPaletteEntryCount(IDWriteFontFace6* This) { - return This->lpVtbl->GetPaletteEntryCount(This); + return This->lpVtbl->GetPaletteEntryCount(This); } -static inline HRESULT IDWriteFontFace6_GetPaletteEntries(IDWriteFontFace6* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) { - return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries); +static inline HRESULT IDWriteFontFace6_GetPaletteEntries(IDWriteFontFace6* This, UINT32 palette_index, UINT32 first_entry_index, UINT32 entry_count, DWRITE_COLOR_F* entries) { + return This->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries); } /*** IDWriteFontFace3 methods ***/ -static inline HRESULT IDWriteFontFace6_GetFontFaceReference(IDWriteFontFace6* This,IDWriteFontFaceReference **reference) { - return This->lpVtbl->GetFontFaceReference(This,reference); +static inline HRESULT IDWriteFontFace6_GetFontFaceReference(IDWriteFontFace6* This, IDWriteFontFaceReference** reference) { + return This->lpVtbl->GetFontFaceReference(This, reference); } -static inline void IDWriteFontFace6_GetPanose(IDWriteFontFace6* This,DWRITE_PANOSE *panose) { - This->lpVtbl->GetPanose(This,panose); +static inline void IDWriteFontFace6_GetPanose(IDWriteFontFace6* This, DWRITE_PANOSE* panose) { + This->lpVtbl->GetPanose(This, panose); } static inline DWRITE_FONT_WEIGHT IDWriteFontFace6_GetWeight(IDWriteFontFace6* This) { - return This->lpVtbl->GetWeight(This); + return This->lpVtbl->GetWeight(This); } static inline DWRITE_FONT_STRETCH IDWriteFontFace6_GetStretch(IDWriteFontFace6* This) { - return This->lpVtbl->GetStretch(This); + return This->lpVtbl->GetStretch(This); } static inline DWRITE_FONT_STYLE IDWriteFontFace6_GetStyle(IDWriteFontFace6* This) { - return This->lpVtbl->GetStyle(This); + return This->lpVtbl->GetStyle(This); } -static inline HRESULT IDWriteFontFace6_GetInformationalStrings(IDWriteFontFace6* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { - return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +static inline HRESULT IDWriteFontFace6_GetInformationalStrings(IDWriteFontFace6* This, DWRITE_INFORMATIONAL_STRING_ID stringid, IDWriteLocalizedStrings** strings, WINBOOL* exists) { + return This->lpVtbl->GetInformationalStrings(This, stringid, strings, exists); } -static inline WINBOOL IDWriteFontFace6_HasCharacter(IDWriteFontFace6* This,UINT32 character) { - return This->lpVtbl->HasCharacter(This,character); +static inline WINBOOL IDWriteFontFace6_HasCharacter(IDWriteFontFace6* This, UINT32 character) { + return This->lpVtbl->HasCharacter(This, character); } -static inline HRESULT IDWriteFontFace6_GetRecommendedRenderingMode(IDWriteFontFace6* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) { - return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode); +static inline HRESULT IDWriteFontFace6_GetRecommendedRenderingMode(IDWriteFontFace6* This, FLOAT emsize, FLOAT dpi_x, FLOAT dpi_y, const DWRITE_MATRIX* transform, WINBOOL is_sideways, DWRITE_OUTLINE_THRESHOLD threshold, DWRITE_MEASURING_MODE measuring_mode, IDWriteRenderingParams* params, DWRITE_RENDERING_MODE1* rendering_mode, DWRITE_GRID_FIT_MODE* gridfit_mode) { + return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode); } -static inline WINBOOL IDWriteFontFace6_IsCharacterLocal(IDWriteFontFace6* This,UINT32 character) { - return This->lpVtbl->IsCharacterLocal(This,character); +static inline WINBOOL IDWriteFontFace6_IsCharacterLocal(IDWriteFontFace6* This, UINT32 character) { + return This->lpVtbl->IsCharacterLocal(This, character); } -static inline WINBOOL IDWriteFontFace6_IsGlyphLocal(IDWriteFontFace6* This,UINT16 glyph) { - return This->lpVtbl->IsGlyphLocal(This,glyph); +static inline WINBOOL IDWriteFontFace6_IsGlyphLocal(IDWriteFontFace6* This, UINT16 glyph) { + return This->lpVtbl->IsGlyphLocal(This, glyph); } -static inline HRESULT IDWriteFontFace6_AreCharactersLocal(IDWriteFontFace6* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { - return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local); +static inline HRESULT IDWriteFontFace6_AreCharactersLocal(IDWriteFontFace6* This, const WCHAR* characters, UINT32 count, WINBOOL enqueue_if_not, WINBOOL* are_local) { + return This->lpVtbl->AreCharactersLocal(This, characters, count, enqueue_if_not, are_local); } -static inline HRESULT IDWriteFontFace6_AreGlyphsLocal(IDWriteFontFace6* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { - return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local); +static inline HRESULT IDWriteFontFace6_AreGlyphsLocal(IDWriteFontFace6* This, const UINT16* glyphs, UINT32 count, WINBOOL enqueue_if_not, WINBOOL* are_local) { + return This->lpVtbl->AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local); } /*** IDWriteFontFace4 methods ***/ -static inline HRESULT IDWriteFontFace6_GetGlyphImageFormats_(IDWriteFontFace6* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) { - return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats); +static inline HRESULT IDWriteFontFace6_GetGlyphImageFormats_(IDWriteFontFace6* This, UINT16 glyph, UINT32 ppem_first, UINT32 ppem_last, DWRITE_GLYPH_IMAGE_FORMATS* formats) { + return This->lpVtbl->GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats); } static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace6_GetGlyphImageFormats(IDWriteFontFace6* This) { - return This->lpVtbl->GetGlyphImageFormats(This); + return This->lpVtbl->GetGlyphImageFormats(This); } -static inline HRESULT IDWriteFontFace6_GetGlyphImageData(IDWriteFontFace6* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) { - return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context); +static inline HRESULT IDWriteFontFace6_GetGlyphImageData(IDWriteFontFace6* This, UINT16 glyph, UINT32 ppem, DWRITE_GLYPH_IMAGE_FORMATS format, DWRITE_GLYPH_IMAGE_DATA* data, void** context) { + return This->lpVtbl->GetGlyphImageData(This, glyph, ppem, format, data, context); } -static inline void IDWriteFontFace6_ReleaseGlyphImageData(IDWriteFontFace6* This,void *context) { - This->lpVtbl->ReleaseGlyphImageData(This,context); +static inline void IDWriteFontFace6_ReleaseGlyphImageData(IDWriteFontFace6* This, void* context) { + This->lpVtbl->ReleaseGlyphImageData(This, context); } /*** IDWriteFontFace5 methods ***/ static inline UINT32 IDWriteFontFace6_GetFontAxisValueCount(IDWriteFontFace6* This) { - return This->lpVtbl->GetFontAxisValueCount(This); + return This->lpVtbl->GetFontAxisValueCount(This); } -static inline HRESULT IDWriteFontFace6_GetFontAxisValues(IDWriteFontFace6* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 value_count) { - return This->lpVtbl->GetFontAxisValues(This,values,value_count); +static inline HRESULT IDWriteFontFace6_GetFontAxisValues(IDWriteFontFace6* This, DWRITE_FONT_AXIS_VALUE* values, UINT32 value_count) { + return This->lpVtbl->GetFontAxisValues(This, values, value_count); } static inline WINBOOL IDWriteFontFace6_HasVariations(IDWriteFontFace6* This) { - return This->lpVtbl->HasVariations(This); + return This->lpVtbl->HasVariations(This); } -static inline HRESULT IDWriteFontFace6_GetFontResource(IDWriteFontFace6* This,IDWriteFontResource **resource) { - return This->lpVtbl->GetFontResource(This,resource); +static inline HRESULT IDWriteFontFace6_GetFontResource(IDWriteFontFace6* This, IDWriteFontResource** resource) { + return This->lpVtbl->GetFontResource(This, resource); } -static inline WINBOOL IDWriteFontFace6_Equals(IDWriteFontFace6* This,IDWriteFontFace *fontface) { - return This->lpVtbl->Equals(This,fontface); +static inline WINBOOL IDWriteFontFace6_Equals(IDWriteFontFace6* This, IDWriteFontFace* fontface) { + return This->lpVtbl->Equals(This, fontface); } /*** IDWriteFontFace6 methods ***/ -static inline HRESULT IDWriteFontFace6_GetFamilyNames(IDWriteFontFace6* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) { - return This->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names); +static inline HRESULT IDWriteFontFace6_GetFamilyNames(IDWriteFontFace6* This, DWRITE_FONT_FAMILY_MODEL font_family_model, IDWriteLocalizedStrings** names) { + return This->lpVtbl->IDWriteFontFace6_GetFamilyNames(This, font_family_model, names); } -static inline HRESULT IDWriteFontFace6_GetFaceNames(IDWriteFontFace6* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) { - return This->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names); +static inline HRESULT IDWriteFontFace6_GetFaceNames(IDWriteFontFace6* This, DWRITE_FONT_FAMILY_MODEL font_family_model, IDWriteLocalizedStrings** names) { + return This->lpVtbl->IDWriteFontFace6_GetFaceNames(This, font_family_model, names); } #endif #endif #endif - -#endif /* __IDWriteFontFace6_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontFace6_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWritePaintReader interface @@ -10461,185 +10329,181 @@ static inline HRESULT IDWriteFontFace6_GetFaceNames(IDWriteFontFace6* This,DWRIT #ifndef __IDWritePaintReader_INTERFACE_DEFINED__ #define __IDWritePaintReader_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWritePaintReader, 0x8128e912, 0x3b97, 0x42a5, 0xab,0x6c, 0x24,0xaa,0xd3,0xa8,0x6e,0x54); +DEFINE_GUID(IID_IDWritePaintReader, 0x8128e912, 0x3b97, 0x42a5, 0xab, 0x6c, 0x24, 0xaa, 0xd3, 0xa8, 0x6e, 0x54); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("8128e912-3b97-42a5-ab6c-24aad3a86e54") -IDWritePaintReader : public IUnknown -{ - virtual HRESULT STDMETHODCALLTYPE SetCurrentGlyph( - UINT32 glyph_index, - DWRITE_PAINT_ELEMENT *paint_element, - UINT32 struct_size, - D2D_RECT_F *clip_box, - DWRITE_PAINT_ATTRIBUTES *glyph_attributes = 0) = 0; +IDWritePaintReader : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE SetCurrentGlyph( + UINT32 glyph_index, + DWRITE_PAINT_ELEMENT * paint_element, + UINT32 struct_size, + D2D_RECT_F * clip_box, + DWRITE_PAINT_ATTRIBUTES* glyph_attributes = 0) = 0; - virtual HRESULT STDMETHODCALLTYPE SetTextColor( - const DWRITE_COLOR_F *text_color) = 0; + virtual HRESULT STDMETHODCALLTYPE SetTextColor( + const DWRITE_COLOR_F* text_color) = 0; - virtual HRESULT STDMETHODCALLTYPE SetColorPaletteIndex( - UINT32 color_palette_index) = 0; + virtual HRESULT STDMETHODCALLTYPE SetColorPaletteIndex( + UINT32 color_palette_index) = 0; - virtual HRESULT STDMETHODCALLTYPE SetCustomColorPalette( - const DWRITE_COLOR_F *palette_entries, - UINT32 palette_entry_count) = 0; + virtual HRESULT STDMETHODCALLTYPE SetCustomColorPalette( + const DWRITE_COLOR_F* palette_entries, + UINT32 palette_entry_count) = 0; - virtual HRESULT STDMETHODCALLTYPE MoveToFirstChild( - DWRITE_PAINT_ELEMENT *paint_element, - UINT32 struct_size) = 0; + virtual HRESULT STDMETHODCALLTYPE MoveToFirstChild( + DWRITE_PAINT_ELEMENT * paint_element, + UINT32 struct_size) = 0; - virtual HRESULT STDMETHODCALLTYPE MoveToNextSibling( - DWRITE_PAINT_ELEMENT *paint_element, - UINT32 struct_size) = 0; + virtual HRESULT STDMETHODCALLTYPE MoveToNextSibling( + DWRITE_PAINT_ELEMENT * paint_element, + UINT32 struct_size) = 0; - virtual HRESULT STDMETHODCALLTYPE MoveToParent( - ) = 0; + virtual HRESULT STDMETHODCALLTYPE MoveToParent() = 0; - virtual HRESULT STDMETHODCALLTYPE GetGradientStops( - UINT32 first_gradient_stop_index, - UINT32 gradient_stop_count, - D2D1_GRADIENT_STOP *gradient_stops) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGradientStopColors( - UINT32 first_gradient_stop_index, - UINT32 gradient_stop_count, - DWRITE_PAINT_COLOR *gradient_stop_colors) = 0; + virtual HRESULT STDMETHODCALLTYPE GetGradientStops( + UINT32 first_gradient_stop_index, + UINT32 gradient_stop_count, + D2D1_GRADIENT_STOP * gradient_stops) = 0; + virtual HRESULT STDMETHODCALLTYPE GetGradientStopColors( + UINT32 first_gradient_stop_index, + UINT32 gradient_stop_count, + DWRITE_PAINT_COLOR * gradient_stop_colors) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWritePaintReader, 0x8128e912, 0x3b97, 0x42a5, 0xab,0x6c, 0x24,0xaa,0xd3,0xa8,0x6e,0x54) +__CRT_UUID_DECL(IDWritePaintReader, 0x8128e912, 0x3b97, 0x42a5, 0xab, 0x6c, 0x24, 0xaa, 0xd3, 0xa8, 0x6e, 0x54) #endif #else typedef struct IDWritePaintReaderVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWritePaintReader *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWritePaintReader* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWritePaintReader *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWritePaintReader* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWritePaintReader *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWritePaintReader* This); - /*** IDWritePaintReader methods ***/ - HRESULT (STDMETHODCALLTYPE *SetCurrentGlyph)( - IDWritePaintReader *This, - UINT32 glyph_index, - DWRITE_PAINT_ELEMENT *paint_element, - UINT32 struct_size, - D2D_RECT_F *clip_box, - DWRITE_PAINT_ATTRIBUTES *glyph_attributes); + /*** IDWritePaintReader methods ***/ + HRESULT(STDMETHODCALLTYPE* SetCurrentGlyph)( + IDWritePaintReader* This, + UINT32 glyph_index, + DWRITE_PAINT_ELEMENT* paint_element, + UINT32 struct_size, + D2D_RECT_F* clip_box, + DWRITE_PAINT_ATTRIBUTES* glyph_attributes); - HRESULT (STDMETHODCALLTYPE *SetTextColor)( - IDWritePaintReader *This, - const DWRITE_COLOR_F *text_color); + HRESULT(STDMETHODCALLTYPE* SetTextColor)( + IDWritePaintReader* This, + const DWRITE_COLOR_F* text_color); - HRESULT (STDMETHODCALLTYPE *SetColorPaletteIndex)( - IDWritePaintReader *This, - UINT32 color_palette_index); + HRESULT(STDMETHODCALLTYPE* SetColorPaletteIndex)( + IDWritePaintReader* This, + UINT32 color_palette_index); - HRESULT (STDMETHODCALLTYPE *SetCustomColorPalette)( - IDWritePaintReader *This, - const DWRITE_COLOR_F *palette_entries, - UINT32 palette_entry_count); + HRESULT(STDMETHODCALLTYPE* SetCustomColorPalette)( + IDWritePaintReader* This, + const DWRITE_COLOR_F* palette_entries, + UINT32 palette_entry_count); - HRESULT (STDMETHODCALLTYPE *MoveToFirstChild)( - IDWritePaintReader *This, - DWRITE_PAINT_ELEMENT *paint_element, - UINT32 struct_size); + HRESULT(STDMETHODCALLTYPE* MoveToFirstChild)( + IDWritePaintReader* This, + DWRITE_PAINT_ELEMENT* paint_element, + UINT32 struct_size); - HRESULT (STDMETHODCALLTYPE *MoveToNextSibling)( - IDWritePaintReader *This, - DWRITE_PAINT_ELEMENT *paint_element, - UINT32 struct_size); + HRESULT(STDMETHODCALLTYPE* MoveToNextSibling)( + IDWritePaintReader* This, + DWRITE_PAINT_ELEMENT* paint_element, + UINT32 struct_size); - HRESULT (STDMETHODCALLTYPE *MoveToParent)( - IDWritePaintReader *This); + HRESULT(STDMETHODCALLTYPE* MoveToParent)( + IDWritePaintReader* This); - HRESULT (STDMETHODCALLTYPE *GetGradientStops)( - IDWritePaintReader *This, - UINT32 first_gradient_stop_index, - UINT32 gradient_stop_count, - D2D1_GRADIENT_STOP *gradient_stops); + HRESULT(STDMETHODCALLTYPE* GetGradientStops)( + IDWritePaintReader* This, + UINT32 first_gradient_stop_index, + UINT32 gradient_stop_count, + D2D1_GRADIENT_STOP* gradient_stops); - HRESULT (STDMETHODCALLTYPE *GetGradientStopColors)( - IDWritePaintReader *This, - UINT32 first_gradient_stop_index, - UINT32 gradient_stop_count, - DWRITE_PAINT_COLOR *gradient_stop_colors); + HRESULT(STDMETHODCALLTYPE* GetGradientStopColors)( + IDWritePaintReader* This, + UINT32 first_gradient_stop_index, + UINT32 gradient_stop_count, + DWRITE_PAINT_COLOR* gradient_stop_colors); - END_INTERFACE + END_INTERFACE } IDWritePaintReaderVtbl; interface IDWritePaintReader { - CONST_VTBL IDWritePaintReaderVtbl* lpVtbl; + CONST_VTBL IDWritePaintReaderVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWritePaintReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWritePaintReader_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWritePaintReader_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWritePaintReader_Release(This) (This)->lpVtbl->Release(This) /*** IDWritePaintReader methods ***/ -#define IDWritePaintReader_SetCurrentGlyph(This,glyph_index,paint_element,struct_size,clip_box,glyph_attributes) (This)->lpVtbl->SetCurrentGlyph(This,glyph_index,paint_element,struct_size,clip_box,glyph_attributes) -#define IDWritePaintReader_SetTextColor(This,text_color) (This)->lpVtbl->SetTextColor(This,text_color) -#define IDWritePaintReader_SetColorPaletteIndex(This,color_palette_index) (This)->lpVtbl->SetColorPaletteIndex(This,color_palette_index) -#define IDWritePaintReader_SetCustomColorPalette(This,palette_entries,palette_entry_count) (This)->lpVtbl->SetCustomColorPalette(This,palette_entries,palette_entry_count) -#define IDWritePaintReader_MoveToFirstChild(This,paint_element,struct_size) (This)->lpVtbl->MoveToFirstChild(This,paint_element,struct_size) -#define IDWritePaintReader_MoveToNextSibling(This,paint_element,struct_size) (This)->lpVtbl->MoveToNextSibling(This,paint_element,struct_size) +#define IDWritePaintReader_SetCurrentGlyph(This, glyph_index, paint_element, struct_size, clip_box, glyph_attributes) (This)->lpVtbl->SetCurrentGlyph(This, glyph_index, paint_element, struct_size, clip_box, glyph_attributes) +#define IDWritePaintReader_SetTextColor(This, text_color) (This)->lpVtbl->SetTextColor(This, text_color) +#define IDWritePaintReader_SetColorPaletteIndex(This, color_palette_index) (This)->lpVtbl->SetColorPaletteIndex(This, color_palette_index) +#define IDWritePaintReader_SetCustomColorPalette(This, palette_entries, palette_entry_count) (This)->lpVtbl->SetCustomColorPalette(This, palette_entries, palette_entry_count) +#define IDWritePaintReader_MoveToFirstChild(This, paint_element, struct_size) (This)->lpVtbl->MoveToFirstChild(This, paint_element, struct_size) +#define IDWritePaintReader_MoveToNextSibling(This, paint_element, struct_size) (This)->lpVtbl->MoveToNextSibling(This, paint_element, struct_size) #define IDWritePaintReader_MoveToParent(This) (This)->lpVtbl->MoveToParent(This) -#define IDWritePaintReader_GetGradientStops(This,first_gradient_stop_index,gradient_stop_count,gradient_stops) (This)->lpVtbl->GetGradientStops(This,first_gradient_stop_index,gradient_stop_count,gradient_stops) -#define IDWritePaintReader_GetGradientStopColors(This,first_gradient_stop_index,gradient_stop_count,gradient_stop_colors) (This)->lpVtbl->GetGradientStopColors(This,first_gradient_stop_index,gradient_stop_count,gradient_stop_colors) +#define IDWritePaintReader_GetGradientStops(This, first_gradient_stop_index, gradient_stop_count, gradient_stops) (This)->lpVtbl->GetGradientStops(This, first_gradient_stop_index, gradient_stop_count, gradient_stops) +#define IDWritePaintReader_GetGradientStopColors(This, first_gradient_stop_index, gradient_stop_count, gradient_stop_colors) (This)->lpVtbl->GetGradientStopColors(This, first_gradient_stop_index, gradient_stop_count, gradient_stop_colors) #else /*** IUnknown methods ***/ -static inline HRESULT IDWritePaintReader_QueryInterface(IDWritePaintReader* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWritePaintReader_QueryInterface(IDWritePaintReader* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWritePaintReader_AddRef(IDWritePaintReader* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWritePaintReader_Release(IDWritePaintReader* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWritePaintReader methods ***/ -static inline HRESULT IDWritePaintReader_SetCurrentGlyph(IDWritePaintReader* This,UINT32 glyph_index,DWRITE_PAINT_ELEMENT *paint_element,UINT32 struct_size,D2D_RECT_F *clip_box,DWRITE_PAINT_ATTRIBUTES *glyph_attributes) { - return This->lpVtbl->SetCurrentGlyph(This,glyph_index,paint_element,struct_size,clip_box,glyph_attributes); +static inline HRESULT IDWritePaintReader_SetCurrentGlyph(IDWritePaintReader* This, UINT32 glyph_index, DWRITE_PAINT_ELEMENT* paint_element, UINT32 struct_size, D2D_RECT_F* clip_box, DWRITE_PAINT_ATTRIBUTES* glyph_attributes) { + return This->lpVtbl->SetCurrentGlyph(This, glyph_index, paint_element, struct_size, clip_box, glyph_attributes); } -static inline HRESULT IDWritePaintReader_SetTextColor(IDWritePaintReader* This,const DWRITE_COLOR_F *text_color) { - return This->lpVtbl->SetTextColor(This,text_color); +static inline HRESULT IDWritePaintReader_SetTextColor(IDWritePaintReader* This, const DWRITE_COLOR_F* text_color) { + return This->lpVtbl->SetTextColor(This, text_color); } -static inline HRESULT IDWritePaintReader_SetColorPaletteIndex(IDWritePaintReader* This,UINT32 color_palette_index) { - return This->lpVtbl->SetColorPaletteIndex(This,color_palette_index); +static inline HRESULT IDWritePaintReader_SetColorPaletteIndex(IDWritePaintReader* This, UINT32 color_palette_index) { + return This->lpVtbl->SetColorPaletteIndex(This, color_palette_index); } -static inline HRESULT IDWritePaintReader_SetCustomColorPalette(IDWritePaintReader* This,const DWRITE_COLOR_F *palette_entries,UINT32 palette_entry_count) { - return This->lpVtbl->SetCustomColorPalette(This,palette_entries,palette_entry_count); +static inline HRESULT IDWritePaintReader_SetCustomColorPalette(IDWritePaintReader* This, const DWRITE_COLOR_F* palette_entries, UINT32 palette_entry_count) { + return This->lpVtbl->SetCustomColorPalette(This, palette_entries, palette_entry_count); } -static inline HRESULT IDWritePaintReader_MoveToFirstChild(IDWritePaintReader* This,DWRITE_PAINT_ELEMENT *paint_element,UINT32 struct_size) { - return This->lpVtbl->MoveToFirstChild(This,paint_element,struct_size); +static inline HRESULT IDWritePaintReader_MoveToFirstChild(IDWritePaintReader* This, DWRITE_PAINT_ELEMENT* paint_element, UINT32 struct_size) { + return This->lpVtbl->MoveToFirstChild(This, paint_element, struct_size); } -static inline HRESULT IDWritePaintReader_MoveToNextSibling(IDWritePaintReader* This,DWRITE_PAINT_ELEMENT *paint_element,UINT32 struct_size) { - return This->lpVtbl->MoveToNextSibling(This,paint_element,struct_size); +static inline HRESULT IDWritePaintReader_MoveToNextSibling(IDWritePaintReader* This, DWRITE_PAINT_ELEMENT* paint_element, UINT32 struct_size) { + return This->lpVtbl->MoveToNextSibling(This, paint_element, struct_size); } static inline HRESULT IDWritePaintReader_MoveToParent(IDWritePaintReader* This) { - return This->lpVtbl->MoveToParent(This); + return This->lpVtbl->MoveToParent(This); } -static inline HRESULT IDWritePaintReader_GetGradientStops(IDWritePaintReader* This,UINT32 first_gradient_stop_index,UINT32 gradient_stop_count,D2D1_GRADIENT_STOP *gradient_stops) { - return This->lpVtbl->GetGradientStops(This,first_gradient_stop_index,gradient_stop_count,gradient_stops); +static inline HRESULT IDWritePaintReader_GetGradientStops(IDWritePaintReader* This, UINT32 first_gradient_stop_index, UINT32 gradient_stop_count, D2D1_GRADIENT_STOP* gradient_stops) { + return This->lpVtbl->GetGradientStops(This, first_gradient_stop_index, gradient_stop_count, gradient_stops); } -static inline HRESULT IDWritePaintReader_GetGradientStopColors(IDWritePaintReader* This,UINT32 first_gradient_stop_index,UINT32 gradient_stop_count,DWRITE_PAINT_COLOR *gradient_stop_colors) { - return This->lpVtbl->GetGradientStopColors(This,first_gradient_stop_index,gradient_stop_count,gradient_stop_colors); +static inline HRESULT IDWritePaintReader_GetGradientStopColors(IDWritePaintReader* This, UINT32 first_gradient_stop_index, UINT32 gradient_stop_count, DWRITE_PAINT_COLOR* gradient_stop_colors) { + return This->lpVtbl->GetGradientStopColors(This, first_gradient_stop_index, gradient_stop_count, gradient_stop_colors); } #endif #endif #endif - -#endif /* __IDWritePaintReader_INTERFACE_DEFINED__ */ +#endif /* __IDWritePaintReader_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFontFace7 interface @@ -10647,634 +10511,630 @@ static inline HRESULT IDWritePaintReader_GetGradientStopColors(IDWritePaintReade #ifndef __IDWriteFontFace7_INTERFACE_DEFINED__ #define __IDWriteFontFace7_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFontFace7, 0x3945b85b, 0xbc95, 0x40f7, 0xb7,0x2c, 0x8b,0x73,0xbf,0xc7,0xe1,0x3b); +DEFINE_GUID(IID_IDWriteFontFace7, 0x3945b85b, 0xbc95, 0x40f7, 0xb7, 0x2c, 0x8b, 0x73, 0xbf, 0xc7, 0xe1, 0x3b); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("3945b85b-bc95-40f7-b72c-8b73bfc7e13b") -IDWriteFontFace7 : public IDWriteFontFace6 -{ - virtual DWRITE_PAINT_FEATURE_LEVEL STDMETHODCALLTYPE GetPaintFeatureLevel( - DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreatePaintReader( - DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format, - DWRITE_PAINT_FEATURE_LEVEL paint_feature_level, - IDWritePaintReader **paint_reader) = 0; +IDWriteFontFace7 : public IDWriteFontFace6 { + virtual DWRITE_PAINT_FEATURE_LEVEL STDMETHODCALLTYPE GetPaintFeatureLevel( + DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format) = 0; + virtual HRESULT STDMETHODCALLTYPE CreatePaintReader( + DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format, + DWRITE_PAINT_FEATURE_LEVEL paint_feature_level, + IDWritePaintReader * *paint_reader) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFace7, 0x3945b85b, 0xbc95, 0x40f7, 0xb7,0x2c, 0x8b,0x73,0xbf,0xc7,0xe1,0x3b) +__CRT_UUID_DECL(IDWriteFontFace7, 0x3945b85b, 0xbc95, 0x40f7, 0xb7, 0x2c, 0x8b, 0x73, 0xbf, 0xc7, 0xe1, 0x3b) #endif #else typedef struct IDWriteFontFace7Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFontFace7 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFontFace7* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFontFace7 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFontFace7* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFontFace7 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFontFace7* This); - /*** IDWriteFontFace methods ***/ - DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( - IDWriteFontFace7 *This); + /*** IDWriteFontFace methods ***/ + DWRITE_FONT_FACE_TYPE(STDMETHODCALLTYPE* GetType)( + IDWriteFontFace7* This); - HRESULT (STDMETHODCALLTYPE *GetFiles)( - IDWriteFontFace7 *This, - UINT32 *number_of_files, - IDWriteFontFile **fontfiles); + HRESULT(STDMETHODCALLTYPE* GetFiles)( + IDWriteFontFace7* This, + UINT32* number_of_files, + IDWriteFontFile** fontfiles); - UINT32 (STDMETHODCALLTYPE *GetIndex)( - IDWriteFontFace7 *This); + UINT32(STDMETHODCALLTYPE* GetIndex)( + IDWriteFontFace7* This); - DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( - IDWriteFontFace7 *This); + DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( + IDWriteFontFace7* This); - WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( - IDWriteFontFace7 *This); + WINBOOL(STDMETHODCALLTYPE* IsSymbolFont)( + IDWriteFontFace7* This); - void (STDMETHODCALLTYPE *GetMetrics)( - IDWriteFontFace7 *This, - DWRITE_FONT_METRICS *metrics); + void(STDMETHODCALLTYPE* GetMetrics)( + IDWriteFontFace7* This, + DWRITE_FONT_METRICS* metrics); - UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( - IDWriteFontFace7 *This); + UINT16(STDMETHODCALLTYPE* GetGlyphCount)( + IDWriteFontFace7* This); - HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( - IDWriteFontFace7 *This, - const UINT16 *glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS *metrics, - WINBOOL is_sideways); + HRESULT(STDMETHODCALLTYPE* GetDesignGlyphMetrics)( + IDWriteFontFace7* This, + const UINT16* glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS* metrics, + WINBOOL is_sideways); - HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( - IDWriteFontFace7 *This, - const UINT32 *codepoints, - UINT32 count, - UINT16 *glyph_indices); + HRESULT(STDMETHODCALLTYPE* GetGlyphIndices)( + IDWriteFontFace7* This, + const UINT32* codepoints, + UINT32 count, + UINT16* glyph_indices); - HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( - IDWriteFontFace7 *This, - UINT32 table_tag, - const void **table_data, - UINT32 *table_size, - void **context, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* TryGetFontTable)( + IDWriteFontFace7* This, + UINT32 table_tag, + const void** table_data, + UINT32* table_size, + void** context, + WINBOOL* exists); - void (STDMETHODCALLTYPE *ReleaseFontTable)( - IDWriteFontFace7 *This, - void *table_context); + void(STDMETHODCALLTYPE* ReleaseFontTable)( + IDWriteFontFace7* This, + void* table_context); - HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( - IDWriteFontFace7 *This, - FLOAT emSize, - const UINT16 *glyph_indices, - const FLOAT *glyph_advances, - const DWRITE_GLYPH_OFFSET *glyph_offsets, - UINT32 glyph_count, - WINBOOL is_sideways, - WINBOOL is_rtl, - IDWriteGeometrySink *geometrysink); + HRESULT(STDMETHODCALLTYPE* GetGlyphRunOutline)( + IDWriteFontFace7* This, + FLOAT emSize, + const UINT16* glyph_indices, + const FLOAT* glyph_advances, + const DWRITE_GLYPH_OFFSET* glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink* geometrysink); - HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( - IDWriteFontFace7 *This, - FLOAT emSize, - FLOAT pixels_per_dip, - DWRITE_MEASURING_MODE mode, - IDWriteRenderingParams *params, - DWRITE_RENDERING_MODE *rendering_mode); + HRESULT(STDMETHODCALLTYPE* GetRecommendedRenderingMode)( + IDWriteFontFace7* This, + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams* params, + DWRITE_RENDERING_MODE* rendering_mode); - HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( - IDWriteFontFace7 *This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_FONT_METRICS *metrics); + HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleMetrics)( + IDWriteFontFace7* This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_FONT_METRICS* metrics); - HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( - IDWriteFontFace7 *This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - const UINT16 *glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS *metrics, - WINBOOL is_sideways); + HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphMetrics)( + IDWriteFontFace7* This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + const UINT16* glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS* metrics, + WINBOOL is_sideways); - /*** IDWriteFontFace1 methods ***/ - void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)( - IDWriteFontFace7 *This, - DWRITE_FONT_METRICS1 *metrics); + /*** IDWriteFontFace1 methods ***/ + void(STDMETHODCALLTYPE* IDWriteFontFace1_GetMetrics)( + IDWriteFontFace7* This, + DWRITE_FONT_METRICS1* metrics); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)( - IDWriteFontFace7 *This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_FONT_METRICS1 *metrics); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetGdiCompatibleMetrics)( + IDWriteFontFace7* This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_FONT_METRICS1* metrics); - void (STDMETHODCALLTYPE *GetCaretMetrics)( - IDWriteFontFace7 *This, - DWRITE_CARET_METRICS *metrics); + void(STDMETHODCALLTYPE* GetCaretMetrics)( + IDWriteFontFace7* This, + DWRITE_CARET_METRICS* metrics); - HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( - IDWriteFontFace7 *This, - UINT32 max_count, - DWRITE_UNICODE_RANGE *ranges, - UINT32 *count); + HRESULT(STDMETHODCALLTYPE* GetUnicodeRanges)( + IDWriteFontFace7* This, + UINT32 max_count, + DWRITE_UNICODE_RANGE* ranges, + UINT32* count); - WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( - IDWriteFontFace7 *This); + WINBOOL(STDMETHODCALLTYPE* IsMonospacedFont)( + IDWriteFontFace7* This); - HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)( - IDWriteFontFace7 *This, - UINT32 glyph_count, - const UINT16 *indices, - INT32 *advances, - WINBOOL is_sideways); + HRESULT(STDMETHODCALLTYPE* GetDesignGlyphAdvances)( + IDWriteFontFace7* This, + UINT32 glyph_count, + const UINT16* indices, + INT32* advances, + WINBOOL is_sideways); - HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)( - IDWriteFontFace7 *This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - WINBOOL is_sideways, - UINT32 glyph_count, - const UINT16 *indices, - INT32 *advances); + HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphAdvances)( + IDWriteFontFace7* This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + UINT32 glyph_count, + const UINT16* indices, + INT32* advances); - HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)( - IDWriteFontFace7 *This, - UINT32 glyph_count, - const UINT16 *indices, - INT32 *adjustments); + HRESULT(STDMETHODCALLTYPE* GetKerningPairAdjustments)( + IDWriteFontFace7* This, + UINT32 glyph_count, + const UINT16* indices, + INT32* adjustments); - WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)( - IDWriteFontFace7 *This); + WINBOOL(STDMETHODCALLTYPE* HasKerningPairs)( + IDWriteFontFace7* This); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)( - IDWriteFontFace7 *This, - FLOAT font_emsize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX *transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_RENDERING_MODE *rendering_mode); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetRecommendedRenderingMode)( + IDWriteFontFace7* This, + FLOAT font_emsize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX* transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_RENDERING_MODE* rendering_mode); - HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)( - IDWriteFontFace7 *This, - UINT32 glyph_count, - const UINT16 *nominal_indices, - UINT16 *vertical_indices); + HRESULT(STDMETHODCALLTYPE* GetVerticalGlyphVariants)( + IDWriteFontFace7* This, + UINT32 glyph_count, + const UINT16* nominal_indices, + UINT16* vertical_indices); - WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)( - IDWriteFontFace7 *This); + WINBOOL(STDMETHODCALLTYPE* HasVerticalGlyphVariants)( + IDWriteFontFace7* This); - /*** IDWriteFontFace2 methods ***/ - WINBOOL (STDMETHODCALLTYPE *IsColorFont)( - IDWriteFontFace7 *This); + /*** IDWriteFontFace2 methods ***/ + WINBOOL(STDMETHODCALLTYPE* IsColorFont)( + IDWriteFontFace7* This); - UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)( - IDWriteFontFace7 *This); + UINT32(STDMETHODCALLTYPE* GetColorPaletteCount)( + IDWriteFontFace7* This); - UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)( - IDWriteFontFace7 *This); + UINT32(STDMETHODCALLTYPE* GetPaletteEntryCount)( + IDWriteFontFace7* This); - HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)( - IDWriteFontFace7 *This, - UINT32 palette_index, - UINT32 first_entry_index, - UINT32 entry_count, - DWRITE_COLOR_F *entries); + HRESULT(STDMETHODCALLTYPE* GetPaletteEntries)( + IDWriteFontFace7* This, + UINT32 palette_index, + UINT32 first_entry_index, + UINT32 entry_count, + DWRITE_COLOR_F* entries); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)( - IDWriteFontFace7 *This, - FLOAT fontEmSize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX *transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuringmode, - IDWriteRenderingParams *params, - DWRITE_RENDERING_MODE *renderingmode, - DWRITE_GRID_FIT_MODE *gridfitmode); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace2_GetRecommendedRenderingMode)( + IDWriteFontFace7* This, + FLOAT fontEmSize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX* transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuringmode, + IDWriteRenderingParams* params, + DWRITE_RENDERING_MODE* renderingmode, + DWRITE_GRID_FIT_MODE* gridfitmode); - /*** IDWriteFontFace3 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( - IDWriteFontFace7 *This, - IDWriteFontFaceReference **reference); + /*** IDWriteFontFace3 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( + IDWriteFontFace7* This, + IDWriteFontFaceReference** reference); - void (STDMETHODCALLTYPE *GetPanose)( - IDWriteFontFace7 *This, - DWRITE_PANOSE *panose); + void(STDMETHODCALLTYPE* GetPanose)( + IDWriteFontFace7* This, + DWRITE_PANOSE* panose); - DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( - IDWriteFontFace7 *This); + DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetWeight)( + IDWriteFontFace7* This); - DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( - IDWriteFontFace7 *This); + DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetStretch)( + IDWriteFontFace7* This); - DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( - IDWriteFontFace7 *This); + DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetStyle)( + IDWriteFontFace7* This); - HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( - IDWriteFontFace7 *This, - IDWriteLocalizedStrings **names); + HRESULT(STDMETHODCALLTYPE* GetFamilyNames)( + IDWriteFontFace7* This, + IDWriteLocalizedStrings** names); - HRESULT (STDMETHODCALLTYPE *GetFaceNames)( - IDWriteFontFace7 *This, - IDWriteLocalizedStrings **names); + HRESULT(STDMETHODCALLTYPE* GetFaceNames)( + IDWriteFontFace7* This, + IDWriteLocalizedStrings** names); - HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( - IDWriteFontFace7 *This, - DWRITE_INFORMATIONAL_STRING_ID stringid, - IDWriteLocalizedStrings **strings, - WINBOOL *exists); + HRESULT(STDMETHODCALLTYPE* GetInformationalStrings)( + IDWriteFontFace7* This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings** strings, + WINBOOL* exists); - WINBOOL (STDMETHODCALLTYPE *HasCharacter)( - IDWriteFontFace7 *This, - UINT32 character); + WINBOOL(STDMETHODCALLTYPE* HasCharacter)( + IDWriteFontFace7* This, + UINT32 character); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)( - IDWriteFontFace7 *This, - FLOAT emsize, - FLOAT dpi_x, - FLOAT dpi_y, - const DWRITE_MATRIX *transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - IDWriteRenderingParams *params, - DWRITE_RENDERING_MODE1 *rendering_mode, - DWRITE_GRID_FIT_MODE *gridfit_mode); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace3_GetRecommendedRenderingMode)( + IDWriteFontFace7* This, + FLOAT emsize, + FLOAT dpi_x, + FLOAT dpi_y, + const DWRITE_MATRIX* transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + IDWriteRenderingParams* params, + DWRITE_RENDERING_MODE1* rendering_mode, + DWRITE_GRID_FIT_MODE* gridfit_mode); - WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)( - IDWriteFontFace7 *This, - UINT32 character); + WINBOOL(STDMETHODCALLTYPE* IsCharacterLocal)( + IDWriteFontFace7* This, + UINT32 character); - WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)( - IDWriteFontFace7 *This, - UINT16 glyph); + WINBOOL(STDMETHODCALLTYPE* IsGlyphLocal)( + IDWriteFontFace7* This, + UINT16 glyph); - HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)( - IDWriteFontFace7 *This, - const WCHAR *characters, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL *are_local); + HRESULT(STDMETHODCALLTYPE* AreCharactersLocal)( + IDWriteFontFace7* This, + const WCHAR* characters, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL* are_local); - HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)( - IDWriteFontFace7 *This, - const UINT16 *glyphs, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL *are_local); + HRESULT(STDMETHODCALLTYPE* AreGlyphsLocal)( + IDWriteFontFace7* This, + const UINT16* glyphs, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL* are_local); - /*** IDWriteFontFace4 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)( - IDWriteFontFace7 *This, - UINT16 glyph, - UINT32 ppem_first, - UINT32 ppem_last, - DWRITE_GLYPH_IMAGE_FORMATS *formats); + /*** IDWriteFontFace4 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetGlyphImageFormats_)( + IDWriteFontFace7* This, + UINT16 glyph, + UINT32 ppem_first, + UINT32 ppem_last, + DWRITE_GLYPH_IMAGE_FORMATS* formats); - DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)( - IDWriteFontFace7 *This); + DWRITE_GLYPH_IMAGE_FORMATS(STDMETHODCALLTYPE* GetGlyphImageFormats)( + IDWriteFontFace7* This); - HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)( - IDWriteFontFace7 *This, - UINT16 glyph, - UINT32 ppem, - DWRITE_GLYPH_IMAGE_FORMATS format, - DWRITE_GLYPH_IMAGE_DATA *data, - void **context); + HRESULT(STDMETHODCALLTYPE* GetGlyphImageData)( + IDWriteFontFace7* This, + UINT16 glyph, + UINT32 ppem, + DWRITE_GLYPH_IMAGE_FORMATS format, + DWRITE_GLYPH_IMAGE_DATA* data, + void** context); - void (STDMETHODCALLTYPE *ReleaseGlyphImageData)( - IDWriteFontFace7 *This, - void *context); + void(STDMETHODCALLTYPE* ReleaseGlyphImageData)( + IDWriteFontFace7* This, + void* context); - /*** IDWriteFontFace5 methods ***/ - UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)( - IDWriteFontFace7 *This); + /*** IDWriteFontFace5 methods ***/ + UINT32(STDMETHODCALLTYPE* GetFontAxisValueCount)( + IDWriteFontFace7* This); - HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)( - IDWriteFontFace7 *This, - DWRITE_FONT_AXIS_VALUE *values, - UINT32 value_count); + HRESULT(STDMETHODCALLTYPE* GetFontAxisValues)( + IDWriteFontFace7* This, + DWRITE_FONT_AXIS_VALUE* values, + UINT32 value_count); - WINBOOL (STDMETHODCALLTYPE *HasVariations)( - IDWriteFontFace7 *This); + WINBOOL(STDMETHODCALLTYPE* HasVariations)( + IDWriteFontFace7* This); - HRESULT (STDMETHODCALLTYPE *GetFontResource)( - IDWriteFontFace7 *This, - IDWriteFontResource **resource); + HRESULT(STDMETHODCALLTYPE* GetFontResource)( + IDWriteFontFace7* This, + IDWriteFontResource** resource); - WINBOOL (STDMETHODCALLTYPE *Equals)( - IDWriteFontFace7 *This, - IDWriteFontFace *fontface); + WINBOOL(STDMETHODCALLTYPE* Equals)( + IDWriteFontFace7* This, + IDWriteFontFace* fontface); - /*** IDWriteFontFace6 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFamilyNames)( - IDWriteFontFace7 *This, - DWRITE_FONT_FAMILY_MODEL font_family_model, - IDWriteLocalizedStrings **names); + /*** IDWriteFontFace6 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace6_GetFamilyNames)( + IDWriteFontFace7* This, + DWRITE_FONT_FAMILY_MODEL font_family_model, + IDWriteLocalizedStrings** names); - HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFaceNames)( - IDWriteFontFace7 *This, - DWRITE_FONT_FAMILY_MODEL font_family_model, - IDWriteLocalizedStrings **names); + HRESULT(STDMETHODCALLTYPE* IDWriteFontFace6_GetFaceNames)( + IDWriteFontFace7* This, + DWRITE_FONT_FAMILY_MODEL font_family_model, + IDWriteLocalizedStrings** names); - /*** IDWriteFontFace7 methods ***/ - DWRITE_PAINT_FEATURE_LEVEL (STDMETHODCALLTYPE *GetPaintFeatureLevel)( - IDWriteFontFace7 *This, - DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format); + /*** IDWriteFontFace7 methods ***/ + DWRITE_PAINT_FEATURE_LEVEL(STDMETHODCALLTYPE* GetPaintFeatureLevel)( + IDWriteFontFace7* This, + DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format); - HRESULT (STDMETHODCALLTYPE *CreatePaintReader)( - IDWriteFontFace7 *This, - DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format, - DWRITE_PAINT_FEATURE_LEVEL paint_feature_level, - IDWritePaintReader **paint_reader); + HRESULT(STDMETHODCALLTYPE* CreatePaintReader)( + IDWriteFontFace7* This, + DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format, + DWRITE_PAINT_FEATURE_LEVEL paint_feature_level, + IDWritePaintReader** paint_reader); - END_INTERFACE + END_INTERFACE } IDWriteFontFace7Vtbl; interface IDWriteFontFace7 { - CONST_VTBL IDWriteFontFace7Vtbl* lpVtbl; + CONST_VTBL IDWriteFontFace7Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFontFace7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFace7_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFontFace7_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFontFace7_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontFace methods ***/ #define IDWriteFontFace7_GetType(This) (This)->lpVtbl->GetType(This) -#define IDWriteFontFace7_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) +#define IDWriteFontFace7_GetFiles(This, number_of_files, fontfiles) (This)->lpVtbl->GetFiles(This, number_of_files, fontfiles) #define IDWriteFontFace7_GetIndex(This) (This)->lpVtbl->GetIndex(This) #define IDWriteFontFace7_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) #define IDWriteFontFace7_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) #define IDWriteFontFace7_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) -#define IDWriteFontFace7_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) -#define IDWriteFontFace7_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) -#define IDWriteFontFace7_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) -#define IDWriteFontFace7_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) -#define IDWriteFontFace7_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) -#define IDWriteFontFace7_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) +#define IDWriteFontFace7_GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) +#define IDWriteFontFace7_GetGlyphIndices(This, codepoints, count, glyph_indices) (This)->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices) +#define IDWriteFontFace7_TryGetFontTable(This, table_tag, table_data, table_size, context, exists) (This)->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists) +#define IDWriteFontFace7_ReleaseFontTable(This, table_context) (This)->lpVtbl->ReleaseFontTable(This, table_context) +#define IDWriteFontFace7_GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) +#define IDWriteFontFace7_GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) /*** IDWriteFontFace1 methods ***/ -#define IDWriteFontFace7_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics) -#define IDWriteFontFace7_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) -#define IDWriteFontFace7_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics) -#define IDWriteFontFace7_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFontFace7_GetMetrics(This, metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics) +#define IDWriteFontFace7_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) +#define IDWriteFontFace7_GetCaretMetrics(This, metrics) (This)->lpVtbl->GetCaretMetrics(This, metrics) +#define IDWriteFontFace7_GetUnicodeRanges(This, max_count, ranges, count) (This)->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count) #define IDWriteFontFace7_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) -#define IDWriteFontFace7_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) -#define IDWriteFontFace7_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) -#define IDWriteFontFace7_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments) +#define IDWriteFontFace7_GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) +#define IDWriteFontFace7_GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) +#define IDWriteFontFace7_GetKerningPairAdjustments(This, glyph_count, indices, adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments) #define IDWriteFontFace7_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) -#define IDWriteFontFace7_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) +#define IDWriteFontFace7_GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) #define IDWriteFontFace7_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) /*** IDWriteFontFace2 methods ***/ #define IDWriteFontFace7_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) #define IDWriteFontFace7_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) #define IDWriteFontFace7_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) -#define IDWriteFontFace7_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) +#define IDWriteFontFace7_GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) (This)->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) /*** IDWriteFontFace3 methods ***/ -#define IDWriteFontFace7_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference) -#define IDWriteFontFace7_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) +#define IDWriteFontFace7_GetFontFaceReference(This, reference) (This)->lpVtbl->GetFontFaceReference(This, reference) +#define IDWriteFontFace7_GetPanose(This, panose) (This)->lpVtbl->GetPanose(This, panose) #define IDWriteFontFace7_GetWeight(This) (This)->lpVtbl->GetWeight(This) #define IDWriteFontFace7_GetStretch(This) (This)->lpVtbl->GetStretch(This) #define IDWriteFontFace7_GetStyle(This) (This)->lpVtbl->GetStyle(This) -#define IDWriteFontFace7_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) -#define IDWriteFontFace7_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character) -#define IDWriteFontFace7_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) -#define IDWriteFontFace7_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character) -#define IDWriteFontFace7_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph) -#define IDWriteFontFace7_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) -#define IDWriteFontFace7_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) +#define IDWriteFontFace7_GetInformationalStrings(This, stringid, strings, exists) (This)->lpVtbl->GetInformationalStrings(This, stringid, strings, exists) +#define IDWriteFontFace7_HasCharacter(This, character) (This)->lpVtbl->HasCharacter(This, character) +#define IDWriteFontFace7_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode) +#define IDWriteFontFace7_IsCharacterLocal(This, character) (This)->lpVtbl->IsCharacterLocal(This, character) +#define IDWriteFontFace7_IsGlyphLocal(This, glyph) (This)->lpVtbl->IsGlyphLocal(This, glyph) +#define IDWriteFontFace7_AreCharactersLocal(This, characters, count, enqueue_if_not, are_local) (This)->lpVtbl->AreCharactersLocal(This, characters, count, enqueue_if_not, are_local) +#define IDWriteFontFace7_AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local) (This)->lpVtbl->AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local) /*** IDWriteFontFace4 methods ***/ -#define IDWriteFontFace7_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) +#define IDWriteFontFace7_GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats) (This)->lpVtbl->GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats) #define IDWriteFontFace7_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This) -#define IDWriteFontFace7_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context) -#define IDWriteFontFace7_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context) +#define IDWriteFontFace7_GetGlyphImageData(This, glyph, ppem, format, data, context) (This)->lpVtbl->GetGlyphImageData(This, glyph, ppem, format, data, context) +#define IDWriteFontFace7_ReleaseGlyphImageData(This, context) (This)->lpVtbl->ReleaseGlyphImageData(This, context) /*** IDWriteFontFace5 methods ***/ #define IDWriteFontFace7_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This) -#define IDWriteFontFace7_GetFontAxisValues(This,values,value_count) (This)->lpVtbl->GetFontAxisValues(This,values,value_count) +#define IDWriteFontFace7_GetFontAxisValues(This, values, value_count) (This)->lpVtbl->GetFontAxisValues(This, values, value_count) #define IDWriteFontFace7_HasVariations(This) (This)->lpVtbl->HasVariations(This) -#define IDWriteFontFace7_GetFontResource(This,resource) (This)->lpVtbl->GetFontResource(This,resource) -#define IDWriteFontFace7_Equals(This,fontface) (This)->lpVtbl->Equals(This,fontface) +#define IDWriteFontFace7_GetFontResource(This, resource) (This)->lpVtbl->GetFontResource(This, resource) +#define IDWriteFontFace7_Equals(This, fontface) (This)->lpVtbl->Equals(This, fontface) /*** IDWriteFontFace6 methods ***/ -#define IDWriteFontFace7_GetFamilyNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names) -#define IDWriteFontFace7_GetFaceNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names) +#define IDWriteFontFace7_GetFamilyNames(This, font_family_model, names) (This)->lpVtbl->IDWriteFontFace6_GetFamilyNames(This, font_family_model, names) +#define IDWriteFontFace7_GetFaceNames(This, font_family_model, names) (This)->lpVtbl->IDWriteFontFace6_GetFaceNames(This, font_family_model, names) /*** IDWriteFontFace7 methods ***/ -#define IDWriteFontFace7_GetPaintFeatureLevel(This,glyph_image_format) (This)->lpVtbl->GetPaintFeatureLevel(This,glyph_image_format) -#define IDWriteFontFace7_CreatePaintReader(This,glyph_image_format,paint_feature_level,paint_reader) (This)->lpVtbl->CreatePaintReader(This,glyph_image_format,paint_feature_level,paint_reader) +#define IDWriteFontFace7_GetPaintFeatureLevel(This, glyph_image_format) (This)->lpVtbl->GetPaintFeatureLevel(This, glyph_image_format) +#define IDWriteFontFace7_CreatePaintReader(This, glyph_image_format, paint_feature_level, paint_reader) (This)->lpVtbl->CreatePaintReader(This, glyph_image_format, paint_feature_level, paint_reader) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFace7_QueryInterface(IDWriteFontFace7* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFontFace7_QueryInterface(IDWriteFontFace7* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFontFace7_AddRef(IDWriteFontFace7* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFontFace7_Release(IDWriteFontFace7* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontFace methods ***/ static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace7_GetType(IDWriteFontFace7* This) { - return This->lpVtbl->GetType(This); + return This->lpVtbl->GetType(This); } -static inline HRESULT IDWriteFontFace7_GetFiles(IDWriteFontFace7* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { - return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); +static inline HRESULT IDWriteFontFace7_GetFiles(IDWriteFontFace7* This, UINT32* number_of_files, IDWriteFontFile** fontfiles) { + return This->lpVtbl->GetFiles(This, number_of_files, fontfiles); } static inline UINT32 IDWriteFontFace7_GetIndex(IDWriteFontFace7* This) { - return This->lpVtbl->GetIndex(This); + return This->lpVtbl->GetIndex(This); } static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace7_GetSimulations(IDWriteFontFace7* This) { - return This->lpVtbl->GetSimulations(This); + return This->lpVtbl->GetSimulations(This); } static inline WINBOOL IDWriteFontFace7_IsSymbolFont(IDWriteFontFace7* This) { - return This->lpVtbl->IsSymbolFont(This); + return This->lpVtbl->IsSymbolFont(This); } static inline UINT16 IDWriteFontFace7_GetGlyphCount(IDWriteFontFace7* This) { - return This->lpVtbl->GetGlyphCount(This); + return This->lpVtbl->GetGlyphCount(This); } -static inline HRESULT IDWriteFontFace7_GetDesignGlyphMetrics(IDWriteFontFace7* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); +static inline HRESULT IDWriteFontFace7_GetDesignGlyphMetrics(IDWriteFontFace7* This, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways); } -static inline HRESULT IDWriteFontFace7_GetGlyphIndices(IDWriteFontFace7* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { - return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); +static inline HRESULT IDWriteFontFace7_GetGlyphIndices(IDWriteFontFace7* This, const UINT32* codepoints, UINT32 count, UINT16* glyph_indices) { + return This->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices); } -static inline HRESULT IDWriteFontFace7_TryGetFontTable(IDWriteFontFace7* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { - return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); +static inline HRESULT IDWriteFontFace7_TryGetFontTable(IDWriteFontFace7* This, UINT32 table_tag, const void** table_data, UINT32* table_size, void** context, WINBOOL* exists) { + return This->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists); } -static inline void IDWriteFontFace7_ReleaseFontTable(IDWriteFontFace7* This,void *table_context) { - This->lpVtbl->ReleaseFontTable(This,table_context); +static inline void IDWriteFontFace7_ReleaseFontTable(IDWriteFontFace7* This, void* table_context) { + This->lpVtbl->ReleaseFontTable(This, table_context); } -static inline HRESULT IDWriteFontFace7_GetGlyphRunOutline(IDWriteFontFace7* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) { - return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); +static inline HRESULT IDWriteFontFace7_GetGlyphRunOutline(IDWriteFontFace7* This, FLOAT emSize, const UINT16* glyph_indices, const FLOAT* glyph_advances, const DWRITE_GLYPH_OFFSET* glyph_offsets, UINT32 glyph_count, WINBOOL is_sideways, WINBOOL is_rtl, IDWriteGeometrySink* geometrysink) { + return This->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink); } -static inline HRESULT IDWriteFontFace7_GetGdiCompatibleGlyphMetrics(IDWriteFontFace7* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { - return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); +static inline HRESULT IDWriteFontFace7_GetGdiCompatibleGlyphMetrics(IDWriteFontFace7* This, FLOAT emSize, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { + return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways); } /*** IDWriteFontFace1 methods ***/ -static inline void IDWriteFontFace7_GetMetrics(IDWriteFontFace7* This,DWRITE_FONT_METRICS1 *metrics) { - This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics); +static inline void IDWriteFontFace7_GetMetrics(IDWriteFontFace7* This, DWRITE_FONT_METRICS1* metrics) { + This->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics); } -static inline HRESULT IDWriteFontFace7_GetGdiCompatibleMetrics(IDWriteFontFace7* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) { - return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics); +static inline HRESULT IDWriteFontFace7_GetGdiCompatibleMetrics(IDWriteFontFace7* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, DWRITE_FONT_METRICS1* metrics) { + return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics); } -static inline void IDWriteFontFace7_GetCaretMetrics(IDWriteFontFace7* This,DWRITE_CARET_METRICS *metrics) { - This->lpVtbl->GetCaretMetrics(This,metrics); +static inline void IDWriteFontFace7_GetCaretMetrics(IDWriteFontFace7* This, DWRITE_CARET_METRICS* metrics) { + This->lpVtbl->GetCaretMetrics(This, metrics); } -static inline HRESULT IDWriteFontFace7_GetUnicodeRanges(IDWriteFontFace7* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { - return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +static inline HRESULT IDWriteFontFace7_GetUnicodeRanges(IDWriteFontFace7* This, UINT32 max_count, DWRITE_UNICODE_RANGE* ranges, UINT32* count) { + return This->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count); } static inline WINBOOL IDWriteFontFace7_IsMonospacedFont(IDWriteFontFace7* This) { - return This->lpVtbl->IsMonospacedFont(This); + return This->lpVtbl->IsMonospacedFont(This); } -static inline HRESULT IDWriteFontFace7_GetDesignGlyphAdvances(IDWriteFontFace7* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways); +static inline HRESULT IDWriteFontFace7_GetDesignGlyphAdvances(IDWriteFontFace7* This, UINT32 glyph_count, const UINT16* indices, INT32* advances, WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways); } -static inline HRESULT IDWriteFontFace7_GetGdiCompatibleGlyphAdvances(IDWriteFontFace7* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) { - return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances); +static inline HRESULT IDWriteFontFace7_GetGdiCompatibleGlyphAdvances(IDWriteFontFace7* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, WINBOOL is_sideways, UINT32 glyph_count, const UINT16* indices, INT32* advances) { + return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances); } -static inline HRESULT IDWriteFontFace7_GetKerningPairAdjustments(IDWriteFontFace7* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) { - return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments); +static inline HRESULT IDWriteFontFace7_GetKerningPairAdjustments(IDWriteFontFace7* This, UINT32 glyph_count, const UINT16* indices, INT32* adjustments) { + return This->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments); } static inline WINBOOL IDWriteFontFace7_HasKerningPairs(IDWriteFontFace7* This) { - return This->lpVtbl->HasKerningPairs(This); + return This->lpVtbl->HasKerningPairs(This); } -static inline HRESULT IDWriteFontFace7_GetVerticalGlyphVariants(IDWriteFontFace7* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) { - return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices); +static inline HRESULT IDWriteFontFace7_GetVerticalGlyphVariants(IDWriteFontFace7* This, UINT32 glyph_count, const UINT16* nominal_indices, UINT16* vertical_indices) { + return This->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices); } static inline WINBOOL IDWriteFontFace7_HasVerticalGlyphVariants(IDWriteFontFace7* This) { - return This->lpVtbl->HasVerticalGlyphVariants(This); + return This->lpVtbl->HasVerticalGlyphVariants(This); } /*** IDWriteFontFace2 methods ***/ static inline WINBOOL IDWriteFontFace7_IsColorFont(IDWriteFontFace7* This) { - return This->lpVtbl->IsColorFont(This); + return This->lpVtbl->IsColorFont(This); } static inline UINT32 IDWriteFontFace7_GetColorPaletteCount(IDWriteFontFace7* This) { - return This->lpVtbl->GetColorPaletteCount(This); + return This->lpVtbl->GetColorPaletteCount(This); } static inline UINT32 IDWriteFontFace7_GetPaletteEntryCount(IDWriteFontFace7* This) { - return This->lpVtbl->GetPaletteEntryCount(This); + return This->lpVtbl->GetPaletteEntryCount(This); } -static inline HRESULT IDWriteFontFace7_GetPaletteEntries(IDWriteFontFace7* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) { - return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries); +static inline HRESULT IDWriteFontFace7_GetPaletteEntries(IDWriteFontFace7* This, UINT32 palette_index, UINT32 first_entry_index, UINT32 entry_count, DWRITE_COLOR_F* entries) { + return This->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries); } /*** IDWriteFontFace3 methods ***/ -static inline HRESULT IDWriteFontFace7_GetFontFaceReference(IDWriteFontFace7* This,IDWriteFontFaceReference **reference) { - return This->lpVtbl->GetFontFaceReference(This,reference); +static inline HRESULT IDWriteFontFace7_GetFontFaceReference(IDWriteFontFace7* This, IDWriteFontFaceReference** reference) { + return This->lpVtbl->GetFontFaceReference(This, reference); } -static inline void IDWriteFontFace7_GetPanose(IDWriteFontFace7* This,DWRITE_PANOSE *panose) { - This->lpVtbl->GetPanose(This,panose); +static inline void IDWriteFontFace7_GetPanose(IDWriteFontFace7* This, DWRITE_PANOSE* panose) { + This->lpVtbl->GetPanose(This, panose); } static inline DWRITE_FONT_WEIGHT IDWriteFontFace7_GetWeight(IDWriteFontFace7* This) { - return This->lpVtbl->GetWeight(This); + return This->lpVtbl->GetWeight(This); } static inline DWRITE_FONT_STRETCH IDWriteFontFace7_GetStretch(IDWriteFontFace7* This) { - return This->lpVtbl->GetStretch(This); + return This->lpVtbl->GetStretch(This); } static inline DWRITE_FONT_STYLE IDWriteFontFace7_GetStyle(IDWriteFontFace7* This) { - return This->lpVtbl->GetStyle(This); + return This->lpVtbl->GetStyle(This); } -static inline HRESULT IDWriteFontFace7_GetInformationalStrings(IDWriteFontFace7* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { - return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +static inline HRESULT IDWriteFontFace7_GetInformationalStrings(IDWriteFontFace7* This, DWRITE_INFORMATIONAL_STRING_ID stringid, IDWriteLocalizedStrings** strings, WINBOOL* exists) { + return This->lpVtbl->GetInformationalStrings(This, stringid, strings, exists); } -static inline WINBOOL IDWriteFontFace7_HasCharacter(IDWriteFontFace7* This,UINT32 character) { - return This->lpVtbl->HasCharacter(This,character); +static inline WINBOOL IDWriteFontFace7_HasCharacter(IDWriteFontFace7* This, UINT32 character) { + return This->lpVtbl->HasCharacter(This, character); } -static inline HRESULT IDWriteFontFace7_GetRecommendedRenderingMode(IDWriteFontFace7* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) { - return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode); +static inline HRESULT IDWriteFontFace7_GetRecommendedRenderingMode(IDWriteFontFace7* This, FLOAT emsize, FLOAT dpi_x, FLOAT dpi_y, const DWRITE_MATRIX* transform, WINBOOL is_sideways, DWRITE_OUTLINE_THRESHOLD threshold, DWRITE_MEASURING_MODE measuring_mode, IDWriteRenderingParams* params, DWRITE_RENDERING_MODE1* rendering_mode, DWRITE_GRID_FIT_MODE* gridfit_mode) { + return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode); } -static inline WINBOOL IDWriteFontFace7_IsCharacterLocal(IDWriteFontFace7* This,UINT32 character) { - return This->lpVtbl->IsCharacterLocal(This,character); +static inline WINBOOL IDWriteFontFace7_IsCharacterLocal(IDWriteFontFace7* This, UINT32 character) { + return This->lpVtbl->IsCharacterLocal(This, character); } -static inline WINBOOL IDWriteFontFace7_IsGlyphLocal(IDWriteFontFace7* This,UINT16 glyph) { - return This->lpVtbl->IsGlyphLocal(This,glyph); +static inline WINBOOL IDWriteFontFace7_IsGlyphLocal(IDWriteFontFace7* This, UINT16 glyph) { + return This->lpVtbl->IsGlyphLocal(This, glyph); } -static inline HRESULT IDWriteFontFace7_AreCharactersLocal(IDWriteFontFace7* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { - return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local); +static inline HRESULT IDWriteFontFace7_AreCharactersLocal(IDWriteFontFace7* This, const WCHAR* characters, UINT32 count, WINBOOL enqueue_if_not, WINBOOL* are_local) { + return This->lpVtbl->AreCharactersLocal(This, characters, count, enqueue_if_not, are_local); } -static inline HRESULT IDWriteFontFace7_AreGlyphsLocal(IDWriteFontFace7* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { - return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local); +static inline HRESULT IDWriteFontFace7_AreGlyphsLocal(IDWriteFontFace7* This, const UINT16* glyphs, UINT32 count, WINBOOL enqueue_if_not, WINBOOL* are_local) { + return This->lpVtbl->AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local); } /*** IDWriteFontFace4 methods ***/ -static inline HRESULT IDWriteFontFace7_GetGlyphImageFormats_(IDWriteFontFace7* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) { - return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats); +static inline HRESULT IDWriteFontFace7_GetGlyphImageFormats_(IDWriteFontFace7* This, UINT16 glyph, UINT32 ppem_first, UINT32 ppem_last, DWRITE_GLYPH_IMAGE_FORMATS* formats) { + return This->lpVtbl->GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats); } static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace7_GetGlyphImageFormats(IDWriteFontFace7* This) { - return This->lpVtbl->GetGlyphImageFormats(This); + return This->lpVtbl->GetGlyphImageFormats(This); } -static inline HRESULT IDWriteFontFace7_GetGlyphImageData(IDWriteFontFace7* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) { - return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context); +static inline HRESULT IDWriteFontFace7_GetGlyphImageData(IDWriteFontFace7* This, UINT16 glyph, UINT32 ppem, DWRITE_GLYPH_IMAGE_FORMATS format, DWRITE_GLYPH_IMAGE_DATA* data, void** context) { + return This->lpVtbl->GetGlyphImageData(This, glyph, ppem, format, data, context); } -static inline void IDWriteFontFace7_ReleaseGlyphImageData(IDWriteFontFace7* This,void *context) { - This->lpVtbl->ReleaseGlyphImageData(This,context); +static inline void IDWriteFontFace7_ReleaseGlyphImageData(IDWriteFontFace7* This, void* context) { + This->lpVtbl->ReleaseGlyphImageData(This, context); } /*** IDWriteFontFace5 methods ***/ static inline UINT32 IDWriteFontFace7_GetFontAxisValueCount(IDWriteFontFace7* This) { - return This->lpVtbl->GetFontAxisValueCount(This); + return This->lpVtbl->GetFontAxisValueCount(This); } -static inline HRESULT IDWriteFontFace7_GetFontAxisValues(IDWriteFontFace7* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 value_count) { - return This->lpVtbl->GetFontAxisValues(This,values,value_count); +static inline HRESULT IDWriteFontFace7_GetFontAxisValues(IDWriteFontFace7* This, DWRITE_FONT_AXIS_VALUE* values, UINT32 value_count) { + return This->lpVtbl->GetFontAxisValues(This, values, value_count); } static inline WINBOOL IDWriteFontFace7_HasVariations(IDWriteFontFace7* This) { - return This->lpVtbl->HasVariations(This); + return This->lpVtbl->HasVariations(This); } -static inline HRESULT IDWriteFontFace7_GetFontResource(IDWriteFontFace7* This,IDWriteFontResource **resource) { - return This->lpVtbl->GetFontResource(This,resource); +static inline HRESULT IDWriteFontFace7_GetFontResource(IDWriteFontFace7* This, IDWriteFontResource** resource) { + return This->lpVtbl->GetFontResource(This, resource); } -static inline WINBOOL IDWriteFontFace7_Equals(IDWriteFontFace7* This,IDWriteFontFace *fontface) { - return This->lpVtbl->Equals(This,fontface); +static inline WINBOOL IDWriteFontFace7_Equals(IDWriteFontFace7* This, IDWriteFontFace* fontface) { + return This->lpVtbl->Equals(This, fontface); } /*** IDWriteFontFace6 methods ***/ -static inline HRESULT IDWriteFontFace7_GetFamilyNames(IDWriteFontFace7* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) { - return This->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names); +static inline HRESULT IDWriteFontFace7_GetFamilyNames(IDWriteFontFace7* This, DWRITE_FONT_FAMILY_MODEL font_family_model, IDWriteLocalizedStrings** names) { + return This->lpVtbl->IDWriteFontFace6_GetFamilyNames(This, font_family_model, names); } -static inline HRESULT IDWriteFontFace7_GetFaceNames(IDWriteFontFace7* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) { - return This->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names); +static inline HRESULT IDWriteFontFace7_GetFaceNames(IDWriteFontFace7* This, DWRITE_FONT_FAMILY_MODEL font_family_model, IDWriteLocalizedStrings** names) { + return This->lpVtbl->IDWriteFontFace6_GetFaceNames(This, font_family_model, names); } /*** IDWriteFontFace7 methods ***/ -static inline DWRITE_PAINT_FEATURE_LEVEL IDWriteFontFace7_GetPaintFeatureLevel(IDWriteFontFace7* This,DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format) { - return This->lpVtbl->GetPaintFeatureLevel(This,glyph_image_format); +static inline DWRITE_PAINT_FEATURE_LEVEL IDWriteFontFace7_GetPaintFeatureLevel(IDWriteFontFace7* This, DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format) { + return This->lpVtbl->GetPaintFeatureLevel(This, glyph_image_format); } -static inline HRESULT IDWriteFontFace7_CreatePaintReader(IDWriteFontFace7* This,DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format,DWRITE_PAINT_FEATURE_LEVEL paint_feature_level,IDWritePaintReader **paint_reader) { - return This->lpVtbl->CreatePaintReader(This,glyph_image_format,paint_feature_level,paint_reader); +static inline HRESULT IDWriteFontFace7_CreatePaintReader(IDWriteFontFace7* This, DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format, DWRITE_PAINT_FEATURE_LEVEL paint_feature_level, IDWritePaintReader** paint_reader) { + return This->lpVtbl->CreatePaintReader(This, glyph_image_format, paint_feature_level, paint_reader); } #endif #endif #endif - -#endif /* __IDWriteFontFace7_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFontFace7_INTERFACE_DEFINED__ */ typedef struct DWRITE_COLOR_GLYPH_RUN1 DWRITE_COLOR_GLYPH_RUN1; -struct DWRITE_COLOR_GLYPH_RUN1 -{ - DWRITE_GLYPH_RUN glyphRun; - DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription; - FLOAT baselineOriginX; - FLOAT baselineOriginY; - DWRITE_COLOR_F runColor; - UINT16 paletteIndex; +struct DWRITE_COLOR_GLYPH_RUN1 { + DWRITE_GLYPH_RUN glyphRun; + DWRITE_GLYPH_RUN_DESCRIPTION* glyphRunDescription; + FLOAT baselineOriginX; + FLOAT baselineOriginY; + DWRITE_COLOR_F runColor; + UINT16 paletteIndex; #ifdef _WIN64 - UINT32 _pad; + UINT32 _pad; #endif - DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat; - DWRITE_MEASURING_MODE measuringMode; + DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat; + DWRITE_MEASURING_MODE measuringMode; }; /***************************************************************************** * IDWriteColorGlyphRunEnumerator1 interface @@ -11282,91 +11142,88 @@ struct DWRITE_COLOR_GLYPH_RUN1 #ifndef __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__ #define __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteColorGlyphRunEnumerator1, 0x7c5f86da, 0xc7a1, 0x4f05, 0xb8,0xe1, 0x55,0xa1,0x79,0xfe,0x5a,0x35); +DEFINE_GUID(IID_IDWriteColorGlyphRunEnumerator1, 0x7c5f86da, 0xc7a1, 0x4f05, 0xb8, 0xe1, 0x55, 0xa1, 0x79, 0xfe, 0x5a, 0x35); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("7c5f86da-c7a1-4f05-b8e1-55a179fe5a35") -IDWriteColorGlyphRunEnumerator1 : public IDWriteColorGlyphRunEnumerator -{ - virtual HRESULT STDMETHODCALLTYPE GetCurrentRun( - const DWRITE_COLOR_GLYPH_RUN1 **run) = 0; - +IDWriteColorGlyphRunEnumerator1 : public IDWriteColorGlyphRunEnumerator { + virtual HRESULT STDMETHODCALLTYPE GetCurrentRun( + const DWRITE_COLOR_GLYPH_RUN1** run) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteColorGlyphRunEnumerator1, 0x7c5f86da, 0xc7a1, 0x4f05, 0xb8,0xe1, 0x55,0xa1,0x79,0xfe,0x5a,0x35) +__CRT_UUID_DECL(IDWriteColorGlyphRunEnumerator1, 0x7c5f86da, 0xc7a1, 0x4f05, 0xb8, 0xe1, 0x55, 0xa1, 0x79, 0xfe, 0x5a, 0x35) #endif #else typedef struct IDWriteColorGlyphRunEnumerator1Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteColorGlyphRunEnumerator1 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteColorGlyphRunEnumerator1* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteColorGlyphRunEnumerator1 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteColorGlyphRunEnumerator1* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteColorGlyphRunEnumerator1 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteColorGlyphRunEnumerator1* This); - /*** IDWriteColorGlyphRunEnumerator methods ***/ - HRESULT (STDMETHODCALLTYPE *MoveNext)( - IDWriteColorGlyphRunEnumerator1 *This, - WINBOOL *hasRun); + /*** IDWriteColorGlyphRunEnumerator methods ***/ + HRESULT(STDMETHODCALLTYPE* MoveNext)( + IDWriteColorGlyphRunEnumerator1* This, + WINBOOL* hasRun); - HRESULT (STDMETHODCALLTYPE *GetCurrentRun)( - IDWriteColorGlyphRunEnumerator1 *This, - const DWRITE_COLOR_GLYPH_RUN **run); + HRESULT(STDMETHODCALLTYPE* GetCurrentRun)( + IDWriteColorGlyphRunEnumerator1* This, + const DWRITE_COLOR_GLYPH_RUN** run); - /*** IDWriteColorGlyphRunEnumerator1 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteColorGlyphRunEnumerator1_GetCurrentRun)( - IDWriteColorGlyphRunEnumerator1 *This, - const DWRITE_COLOR_GLYPH_RUN1 **run); + /*** IDWriteColorGlyphRunEnumerator1 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteColorGlyphRunEnumerator1_GetCurrentRun)( + IDWriteColorGlyphRunEnumerator1* This, + const DWRITE_COLOR_GLYPH_RUN1** run); - END_INTERFACE + END_INTERFACE } IDWriteColorGlyphRunEnumerator1Vtbl; interface IDWriteColorGlyphRunEnumerator1 { - CONST_VTBL IDWriteColorGlyphRunEnumerator1Vtbl* lpVtbl; + CONST_VTBL IDWriteColorGlyphRunEnumerator1Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteColorGlyphRunEnumerator1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteColorGlyphRunEnumerator1_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteColorGlyphRunEnumerator1_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteColorGlyphRunEnumerator1_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteColorGlyphRunEnumerator methods ***/ -#define IDWriteColorGlyphRunEnumerator1_MoveNext(This,hasRun) (This)->lpVtbl->MoveNext(This,hasRun) +#define IDWriteColorGlyphRunEnumerator1_MoveNext(This, hasRun) (This)->lpVtbl->MoveNext(This, hasRun) /*** IDWriteColorGlyphRunEnumerator1 methods ***/ -#define IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This,run) (This)->lpVtbl->IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This,run) +#define IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This, run) (This)->lpVtbl->IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This, run) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteColorGlyphRunEnumerator1_QueryInterface(IDWriteColorGlyphRunEnumerator1* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteColorGlyphRunEnumerator1_QueryInterface(IDWriteColorGlyphRunEnumerator1* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteColorGlyphRunEnumerator1_AddRef(IDWriteColorGlyphRunEnumerator1* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteColorGlyphRunEnumerator1_Release(IDWriteColorGlyphRunEnumerator1* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteColorGlyphRunEnumerator methods ***/ -static inline HRESULT IDWriteColorGlyphRunEnumerator1_MoveNext(IDWriteColorGlyphRunEnumerator1* This,WINBOOL *hasRun) { - return This->lpVtbl->MoveNext(This,hasRun); +static inline HRESULT IDWriteColorGlyphRunEnumerator1_MoveNext(IDWriteColorGlyphRunEnumerator1* This, WINBOOL* hasRun) { + return This->lpVtbl->MoveNext(This, hasRun); } /*** IDWriteColorGlyphRunEnumerator1 methods ***/ -static inline HRESULT IDWriteColorGlyphRunEnumerator1_GetCurrentRun(IDWriteColorGlyphRunEnumerator1* This,const DWRITE_COLOR_GLYPH_RUN1 **run) { - return This->lpVtbl->IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This,run); +static inline HRESULT IDWriteColorGlyphRunEnumerator1_GetCurrentRun(IDWriteColorGlyphRunEnumerator1* This, const DWRITE_COLOR_GLYPH_RUN1** run) { + return This->lpVtbl->IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This, run); } #endif #endif #endif - -#endif /* __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__ */ +#endif /* __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFactory4 interface @@ -11374,509 +11231,506 @@ static inline HRESULT IDWriteColorGlyphRunEnumerator1_GetCurrentRun(IDWriteColor #ifndef __IDWriteFactory4_INTERFACE_DEFINED__ #define __IDWriteFactory4_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFactory4, 0x4b0b5bd3, 0x0797, 0x4549, 0x8a,0xc5, 0xfe,0x91,0x5c,0xc5,0x38,0x56); +DEFINE_GUID(IID_IDWriteFactory4, 0x4b0b5bd3, 0x0797, 0x4549, 0x8a, 0xc5, 0xfe, 0x91, 0x5c, 0xc5, 0x38, 0x56); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("4b0b5bd3-0797-4549-8ac5-fe915cc53856") -IDWriteFactory4 : public IDWriteFactory3 -{ - virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun( - D2D1_POINT_2F baseline_origin, - const DWRITE_GLYPH_RUN *run, - const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc, - DWRITE_GLYPH_IMAGE_FORMATS desired_formats, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_MATRIX *transform, - UINT32 palette, - IDWriteColorGlyphRunEnumerator1 **layers) = 0; +IDWriteFactory4 : public IDWriteFactory3 { + virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun( + D2D1_POINT_2F baseline_origin, + const DWRITE_GLYPH_RUN* run, + const DWRITE_GLYPH_RUN_DESCRIPTION* run_desc, + DWRITE_GLYPH_IMAGE_FORMATS desired_formats, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX* transform, + UINT32 palette, + IDWriteColorGlyphRunEnumerator1** layers) = 0; - virtual HRESULT STDMETHODCALLTYPE ComputeGlyphOrigins_( - const DWRITE_GLYPH_RUN *run, - D2D1_POINT_2F baseline_origin, - D2D1_POINT_2F *origins) = 0; - - virtual HRESULT STDMETHODCALLTYPE ComputeGlyphOrigins( - const DWRITE_GLYPH_RUN *run, - DWRITE_MEASURING_MODE measuring_mode, - D2D1_POINT_2F baseline_origin, - const DWRITE_MATRIX *transform, - D2D1_POINT_2F *origins) = 0; + virtual HRESULT STDMETHODCALLTYPE ComputeGlyphOrigins_( + const DWRITE_GLYPH_RUN* run, + D2D1_POINT_2F baseline_origin, + D2D1_POINT_2F* origins) = 0; + virtual HRESULT STDMETHODCALLTYPE ComputeGlyphOrigins( + const DWRITE_GLYPH_RUN* run, + DWRITE_MEASURING_MODE measuring_mode, + D2D1_POINT_2F baseline_origin, + const DWRITE_MATRIX* transform, + D2D1_POINT_2F* origins) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFactory4, 0x4b0b5bd3, 0x0797, 0x4549, 0x8a,0xc5, 0xfe,0x91,0x5c,0xc5,0x38,0x56) +__CRT_UUID_DECL(IDWriteFactory4, 0x4b0b5bd3, 0x0797, 0x4549, 0x8a, 0xc5, 0xfe, 0x91, 0x5c, 0xc5, 0x38, 0x56) #endif #else typedef struct IDWriteFactory4Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFactory4 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFactory4* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFactory4 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFactory4* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFactory4 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFactory4* This); - /*** IDWriteFactory methods ***/ - HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( - IDWriteFactory4 *This, - IDWriteFontCollection **collection, - WINBOOL check_for_updates); + /*** IDWriteFactory methods ***/ + HRESULT(STDMETHODCALLTYPE* GetSystemFontCollection)( + IDWriteFactory4* This, + IDWriteFontCollection** collection, + WINBOOL check_for_updates); - HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( - IDWriteFactory4 *This, - IDWriteFontCollectionLoader *loader, - const void *key, - UINT32 key_size, - IDWriteFontCollection **collection); + HRESULT(STDMETHODCALLTYPE* CreateCustomFontCollection)( + IDWriteFactory4* This, + IDWriteFontCollectionLoader* loader, + const void* key, + UINT32 key_size, + IDWriteFontCollection** collection); - HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( - IDWriteFactory4 *This, - IDWriteFontCollectionLoader *loader); + HRESULT(STDMETHODCALLTYPE* RegisterFontCollectionLoader)( + IDWriteFactory4* This, + IDWriteFontCollectionLoader* loader); - HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( - IDWriteFactory4 *This, - IDWriteFontCollectionLoader *loader); + HRESULT(STDMETHODCALLTYPE* UnregisterFontCollectionLoader)( + IDWriteFactory4* This, + IDWriteFontCollectionLoader* loader); - HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( - IDWriteFactory4 *This, - const WCHAR *path, - const FILETIME *writetime, - IDWriteFontFile **font_file); + HRESULT(STDMETHODCALLTYPE* CreateFontFileReference)( + IDWriteFactory4* This, + const WCHAR* path, + const FILETIME* writetime, + IDWriteFontFile** font_file); - HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( - IDWriteFactory4 *This, - const void *reference_key, - UINT32 key_size, - IDWriteFontFileLoader *loader, - IDWriteFontFile **font_file); + HRESULT(STDMETHODCALLTYPE* CreateCustomFontFileReference)( + IDWriteFactory4* This, + const void* reference_key, + UINT32 key_size, + IDWriteFontFileLoader* loader, + IDWriteFontFile** font_file); - HRESULT (STDMETHODCALLTYPE *CreateFontFace)( - IDWriteFactory4 *This, - DWRITE_FONT_FACE_TYPE facetype, - UINT32 files_number, - IDWriteFontFile *const *font_files, - UINT32 index, - DWRITE_FONT_SIMULATIONS sim_flags, - IDWriteFontFace **font_face); + HRESULT(STDMETHODCALLTYPE* CreateFontFace)( + IDWriteFactory4* This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile* const* font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace** font_face); - HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( - IDWriteFactory4 *This, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateRenderingParams)( + IDWriteFactory4* This, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( - IDWriteFactory4 *This, - HMONITOR monitor, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateMonitorRenderingParams)( + IDWriteFactory4* This, + HMONITOR monitor, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( - IDWriteFactory4 *This, - FLOAT gamma, - FLOAT enhancedContrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateCustomRenderingParams)( + IDWriteFactory4* This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( - IDWriteFactory4 *This, - IDWriteFontFileLoader *loader); + HRESULT(STDMETHODCALLTYPE* RegisterFontFileLoader)( + IDWriteFactory4* This, + IDWriteFontFileLoader* loader); - HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( - IDWriteFactory4 *This, - IDWriteFontFileLoader *loader); + HRESULT(STDMETHODCALLTYPE* UnregisterFontFileLoader)( + IDWriteFactory4* This, + IDWriteFontFileLoader* loader); - HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( - IDWriteFactory4 *This, - const WCHAR *family_name, - IDWriteFontCollection *collection, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STYLE style, - DWRITE_FONT_STRETCH stretch, - FLOAT size, - const WCHAR *locale, - IDWriteTextFormat **format); + HRESULT(STDMETHODCALLTYPE* CreateTextFormat)( + IDWriteFactory4* This, + const WCHAR* family_name, + IDWriteFontCollection* collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR* locale, + IDWriteTextFormat** format); - HRESULT (STDMETHODCALLTYPE *CreateTypography)( - IDWriteFactory4 *This, - IDWriteTypography **typography); + HRESULT(STDMETHODCALLTYPE* CreateTypography)( + IDWriteFactory4* This, + IDWriteTypography** typography); - HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( - IDWriteFactory4 *This, - IDWriteGdiInterop **gdi_interop); + HRESULT(STDMETHODCALLTYPE* GetGdiInterop)( + IDWriteFactory4* This, + IDWriteGdiInterop** gdi_interop); - HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( - IDWriteFactory4 *This, - const WCHAR *string, - UINT32 len, - IDWriteTextFormat *format, - FLOAT max_width, - FLOAT max_height, - IDWriteTextLayout **layout); + HRESULT(STDMETHODCALLTYPE* CreateTextLayout)( + IDWriteFactory4* This, + const WCHAR* string, + UINT32 len, + IDWriteTextFormat* format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout** layout); - HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( - IDWriteFactory4 *This, - const WCHAR *string, - UINT32 len, - IDWriteTextFormat *format, - FLOAT layout_width, - FLOAT layout_height, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - IDWriteTextLayout **layout); + HRESULT(STDMETHODCALLTYPE* CreateGdiCompatibleTextLayout)( + IDWriteFactory4* This, + const WCHAR* string, + UINT32 len, + IDWriteTextFormat* format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout** layout); - HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( - IDWriteFactory4 *This, - IDWriteTextFormat *format, - IDWriteInlineObject **trimming_sign); + HRESULT(STDMETHODCALLTYPE* CreateEllipsisTrimmingSign)( + IDWriteFactory4* This, + IDWriteTextFormat* format, + IDWriteInlineObject** trimming_sign); - HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( - IDWriteFactory4 *This, - IDWriteTextAnalyzer **analyzer); + HRESULT(STDMETHODCALLTYPE* CreateTextAnalyzer)( + IDWriteFactory4* This, + IDWriteTextAnalyzer** analyzer); - HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( - IDWriteFactory4 *This, - DWRITE_NUMBER_SUBSTITUTION_METHOD method, - const WCHAR *locale, - WINBOOL ignore_user_override, - IDWriteNumberSubstitution **substitution); + HRESULT(STDMETHODCALLTYPE* CreateNumberSubstitution)( + IDWriteFactory4* This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR* locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution** substitution); - HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( - IDWriteFactory4 *This, - const DWRITE_GLYPH_RUN *glyph_run, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - FLOAT baseline_x, - FLOAT baseline_y, - IDWriteGlyphRunAnalysis **analysis); + HRESULT(STDMETHODCALLTYPE* CreateGlyphRunAnalysis)( + IDWriteFactory4* This, + const DWRITE_GLYPH_RUN* glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis** analysis); - /*** IDWriteFactory1 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( - IDWriteFactory4 *This, - IDWriteFontCollection **collection, - WINBOOL check_for_updates); + /*** IDWriteFactory1 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetEudcFontCollection)( + IDWriteFactory4* This, + IDWriteFontCollection** collection, + WINBOOL check_for_updates); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( - IDWriteFactory4 *This, - FLOAT gamma, - FLOAT enhcontrast, - FLOAT enhcontrast_grayscale, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams1 **params); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory1_CreateCustomRenderingParams)( + IDWriteFactory4* This, + FLOAT gamma, + FLOAT enhcontrast, + FLOAT enhcontrast_grayscale, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams1** params); - /*** IDWriteFactory2 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)( - IDWriteFactory4 *This, - IDWriteFontFallback **fallback); + /*** IDWriteFactory2 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetSystemFontFallback)( + IDWriteFactory4* This, + IDWriteFontFallback** fallback); - HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)( - IDWriteFactory4 *This, - IDWriteFontFallbackBuilder **fallbackbuilder); + HRESULT(STDMETHODCALLTYPE* CreateFontFallbackBuilder)( + IDWriteFactory4* This, + IDWriteFontFallbackBuilder** fallbackbuilder); - HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)( - IDWriteFactory4 *This, - FLOAT originX, - FLOAT originY, - const DWRITE_GLYPH_RUN *run, - const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, - DWRITE_MEASURING_MODE mode, - const DWRITE_MATRIX *transform, - UINT32 palette_index, - IDWriteColorGlyphRunEnumerator **colorlayers); + HRESULT(STDMETHODCALLTYPE* TranslateColorGlyphRun)( + IDWriteFactory4* This, + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN* run, + const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX* transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator** colorlayers); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)( - IDWriteFactory4 *This, - FLOAT gamma, - FLOAT contrast, - FLOAT grayscalecontrast, - FLOAT cleartypeLevel, - DWRITE_PIXEL_GEOMETRY pixelGeometry, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_GRID_FIT_MODE gridFitMode, - IDWriteRenderingParams2 **params); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateCustomRenderingParams)( + IDWriteFactory4* This, + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2** params); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)( - IDWriteFactory4 *This, - const DWRITE_GLYPH_RUN *run, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_MEASURING_MODE measuringMode, - DWRITE_GRID_FIT_MODE gridFitMode, - DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, - FLOAT originX, - FLOAT originY, - IDWriteGlyphRunAnalysis **analysis); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateGlyphRunAnalysis)( + IDWriteFactory4* This, + const DWRITE_GLYPH_RUN* run, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis** analysis); - /*** IDWriteFactory3 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)( - IDWriteFactory4 *This, - const DWRITE_GLYPH_RUN *run, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, - FLOAT origin_x, - FLOAT origin_y, - IDWriteGlyphRunAnalysis **analysis); + /*** IDWriteFactory3 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateGlyphRunAnalysis)( + IDWriteFactory4* This, + const DWRITE_GLYPH_RUN* run, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, + FLOAT origin_x, + FLOAT origin_y, + IDWriteGlyphRunAnalysis** analysis); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)( - IDWriteFactory4 *This, - FLOAT gamma, - FLOAT enhanced_contrast, - FLOAT grayscale_enhanced_contrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY pixel_geometry, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - IDWriteRenderingParams3 **params); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateCustomRenderingParams)( + IDWriteFactory4* This, + FLOAT gamma, + FLOAT enhanced_contrast, + FLOAT grayscale_enhanced_contrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY pixel_geometry, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + IDWriteRenderingParams3** params); - HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)( - IDWriteFactory4 *This, - IDWriteFontFile *file, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference **reference); + HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference_)( + IDWriteFactory4* This, + IDWriteFontFile* file, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference** reference); - HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)( - IDWriteFactory4 *This, - const WCHAR *path, - const FILETIME *writetime, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference **reference); + HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference)( + IDWriteFactory4* This, + const WCHAR* path, + const FILETIME* writetime, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference** reference); - HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)( - IDWriteFactory4 *This, - IDWriteFontSet **fontset); + HRESULT(STDMETHODCALLTYPE* GetSystemFontSet)( + IDWriteFactory4* This, + IDWriteFontSet** fontset); - HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)( - IDWriteFactory4 *This, - IDWriteFontSetBuilder **builder); + HRESULT(STDMETHODCALLTYPE* CreateFontSetBuilder)( + IDWriteFactory4* This, + IDWriteFontSetBuilder** builder); - HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)( - IDWriteFactory4 *This, - IDWriteFontSet *fontset, - IDWriteFontCollection1 **collection); + HRESULT(STDMETHODCALLTYPE* CreateFontCollectionFromFontSet)( + IDWriteFactory4* This, + IDWriteFontSet* fontset, + IDWriteFontCollection1** collection); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)( - IDWriteFactory4 *This, - WINBOOL include_downloadable, - IDWriteFontCollection1 **collection, - WINBOOL check_for_updates); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_GetSystemFontCollection)( + IDWriteFactory4* This, + WINBOOL include_downloadable, + IDWriteFontCollection1** collection, + WINBOOL check_for_updates); - HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)( - IDWriteFactory4 *This, - IDWriteFontDownloadQueue **queue); + HRESULT(STDMETHODCALLTYPE* GetFontDownloadQueue)( + IDWriteFactory4* This, + IDWriteFontDownloadQueue** queue); - /*** IDWriteFactory4 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)( - IDWriteFactory4 *This, - D2D1_POINT_2F baseline_origin, - const DWRITE_GLYPH_RUN *run, - const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc, - DWRITE_GLYPH_IMAGE_FORMATS desired_formats, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_MATRIX *transform, - UINT32 palette, - IDWriteColorGlyphRunEnumerator1 **layers); + /*** IDWriteFactory4 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFactory4_TranslateColorGlyphRun)( + IDWriteFactory4* This, + D2D1_POINT_2F baseline_origin, + const DWRITE_GLYPH_RUN* run, + const DWRITE_GLYPH_RUN_DESCRIPTION* run_desc, + DWRITE_GLYPH_IMAGE_FORMATS desired_formats, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX* transform, + UINT32 palette, + IDWriteColorGlyphRunEnumerator1** layers); - HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)( - IDWriteFactory4 *This, - const DWRITE_GLYPH_RUN *run, - D2D1_POINT_2F baseline_origin, - D2D1_POINT_2F *origins); + HRESULT(STDMETHODCALLTYPE* ComputeGlyphOrigins_)( + IDWriteFactory4* This, + const DWRITE_GLYPH_RUN* run, + D2D1_POINT_2F baseline_origin, + D2D1_POINT_2F* origins); - HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)( - IDWriteFactory4 *This, - const DWRITE_GLYPH_RUN *run, - DWRITE_MEASURING_MODE measuring_mode, - D2D1_POINT_2F baseline_origin, - const DWRITE_MATRIX *transform, - D2D1_POINT_2F *origins); + HRESULT(STDMETHODCALLTYPE* ComputeGlyphOrigins)( + IDWriteFactory4* This, + const DWRITE_GLYPH_RUN* run, + DWRITE_MEASURING_MODE measuring_mode, + D2D1_POINT_2F baseline_origin, + const DWRITE_MATRIX* transform, + D2D1_POINT_2F* origins); - END_INTERFACE + END_INTERFACE } IDWriteFactory4Vtbl; interface IDWriteFactory4 { - CONST_VTBL IDWriteFactory4Vtbl* lpVtbl; + CONST_VTBL IDWriteFactory4Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFactory4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory4_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFactory4_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFactory4_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFactory methods ***/ -#define IDWriteFactory4_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) -#define IDWriteFactory4_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) -#define IDWriteFactory4_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) -#define IDWriteFactory4_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) -#define IDWriteFactory4_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) -#define IDWriteFactory4_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) -#define IDWriteFactory4_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) -#define IDWriteFactory4_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) -#define IDWriteFactory4_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) -#define IDWriteFactory4_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) -#define IDWriteFactory4_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) -#define IDWriteFactory4_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) -#define IDWriteFactory4_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) -#define IDWriteFactory4_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) -#define IDWriteFactory4_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) -#define IDWriteFactory4_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) -#define IDWriteFactory4_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) -#define IDWriteFactory4_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +#define IDWriteFactory4_CreateCustomFontCollection(This, loader, key, key_size, collection) (This)->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection) +#define IDWriteFactory4_RegisterFontCollectionLoader(This, loader) (This)->lpVtbl->RegisterFontCollectionLoader(This, loader) +#define IDWriteFactory4_UnregisterFontCollectionLoader(This, loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This, loader) +#define IDWriteFactory4_CreateFontFileReference(This, path, writetime, font_file) (This)->lpVtbl->CreateFontFileReference(This, path, writetime, font_file) +#define IDWriteFactory4_CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) (This)->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) +#define IDWriteFactory4_CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) (This)->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) +#define IDWriteFactory4_CreateRenderingParams(This, params) (This)->lpVtbl->CreateRenderingParams(This, params) +#define IDWriteFactory4_CreateMonitorRenderingParams(This, monitor, params) (This)->lpVtbl->CreateMonitorRenderingParams(This, monitor, params) +#define IDWriteFactory4_RegisterFontFileLoader(This, loader) (This)->lpVtbl->RegisterFontFileLoader(This, loader) +#define IDWriteFactory4_UnregisterFontFileLoader(This, loader) (This)->lpVtbl->UnregisterFontFileLoader(This, loader) +#define IDWriteFactory4_CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format) (This)->lpVtbl->CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format) +#define IDWriteFactory4_CreateTypography(This, typography) (This)->lpVtbl->CreateTypography(This, typography) +#define IDWriteFactory4_GetGdiInterop(This, gdi_interop) (This)->lpVtbl->GetGdiInterop(This, gdi_interop) +#define IDWriteFactory4_CreateTextLayout(This, string, len, format, max_width, max_height, layout) (This)->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout) +#define IDWriteFactory4_CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) +#define IDWriteFactory4_CreateEllipsisTrimmingSign(This, format, trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign) +#define IDWriteFactory4_CreateTextAnalyzer(This, analyzer) (This)->lpVtbl->CreateTextAnalyzer(This, analyzer) +#define IDWriteFactory4_CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) (This)->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) /*** IDWriteFactory1 methods ***/ -#define IDWriteFactory4_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) +#define IDWriteFactory4_GetEudcFontCollection(This, collection, check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates) /*** IDWriteFactory2 methods ***/ -#define IDWriteFactory4_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback) -#define IDWriteFactory4_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder) +#define IDWriteFactory4_GetSystemFontFallback(This, fallback) (This)->lpVtbl->GetSystemFontFallback(This, fallback) +#define IDWriteFactory4_CreateFontFallbackBuilder(This, fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder) /*** IDWriteFactory3 methods ***/ -#define IDWriteFactory4_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) -#define IDWriteFactory4_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) -#define IDWriteFactory4_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference) -#define IDWriteFactory4_CreateFontFaceReference(This,path,writetime,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference) -#define IDWriteFactory4_GetSystemFontSet(This,fontset) (This)->lpVtbl->GetSystemFontSet(This,fontset) -#define IDWriteFactory4_CreateFontSetBuilder(This,builder) (This)->lpVtbl->CreateFontSetBuilder(This,builder) -#define IDWriteFactory4_CreateFontCollectionFromFontSet(This,fontset,collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection) -#define IDWriteFactory4_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) -#define IDWriteFactory4_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue) +#define IDWriteFactory4_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) +#define IDWriteFactory4_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) +#define IDWriteFactory4_CreateFontFaceReference_(This, file, index, simulations, reference) (This)->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference) +#define IDWriteFactory4_CreateFontFaceReference(This, path, writetime, index, simulations, reference) (This)->lpVtbl->CreateFontFaceReference(This, path, writetime, index, simulations, reference) +#define IDWriteFactory4_GetSystemFontSet(This, fontset) (This)->lpVtbl->GetSystemFontSet(This, fontset) +#define IDWriteFactory4_CreateFontSetBuilder(This, builder) (This)->lpVtbl->CreateFontSetBuilder(This, builder) +#define IDWriteFactory4_CreateFontCollectionFromFontSet(This, fontset, collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This, fontset, collection) +#define IDWriteFactory4_GetSystemFontCollection(This, include_downloadable, collection, check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This, include_downloadable, collection, check_for_updates) +#define IDWriteFactory4_GetFontDownloadQueue(This, queue) (This)->lpVtbl->GetFontDownloadQueue(This, queue) /*** IDWriteFactory4 methods ***/ -#define IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) -#define IDWriteFactory4_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins) -#define IDWriteFactory4_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) +#define IDWriteFactory4_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers) +#define IDWriteFactory4_ComputeGlyphOrigins_(This, run, baseline_origin, origins) (This)->lpVtbl->ComputeGlyphOrigins_(This, run, baseline_origin, origins) +#define IDWriteFactory4_ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins) (This)->lpVtbl->ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFactory4_QueryInterface(IDWriteFactory4* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFactory4_QueryInterface(IDWriteFactory4* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFactory4_AddRef(IDWriteFactory4* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFactory4_Release(IDWriteFactory4* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFactory methods ***/ -static inline HRESULT IDWriteFactory4_CreateCustomFontCollection(IDWriteFactory4* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { - return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +static inline HRESULT IDWriteFactory4_CreateCustomFontCollection(IDWriteFactory4* This, IDWriteFontCollectionLoader* loader, const void* key, UINT32 key_size, IDWriteFontCollection** collection) { + return This->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection); } -static inline HRESULT IDWriteFactory4_RegisterFontCollectionLoader(IDWriteFactory4* This,IDWriteFontCollectionLoader *loader) { - return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +static inline HRESULT IDWriteFactory4_RegisterFontCollectionLoader(IDWriteFactory4* This, IDWriteFontCollectionLoader* loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This, loader); } -static inline HRESULT IDWriteFactory4_UnregisterFontCollectionLoader(IDWriteFactory4* This,IDWriteFontCollectionLoader *loader) { - return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +static inline HRESULT IDWriteFactory4_UnregisterFontCollectionLoader(IDWriteFactory4* This, IDWriteFontCollectionLoader* loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This, loader); } -static inline HRESULT IDWriteFactory4_CreateFontFileReference(IDWriteFactory4* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { - return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +static inline HRESULT IDWriteFactory4_CreateFontFileReference(IDWriteFactory4* This, const WCHAR* path, const FILETIME* writetime, IDWriteFontFile** font_file) { + return This->lpVtbl->CreateFontFileReference(This, path, writetime, font_file); } -static inline HRESULT IDWriteFactory4_CreateCustomFontFileReference(IDWriteFactory4* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { - return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +static inline HRESULT IDWriteFactory4_CreateCustomFontFileReference(IDWriteFactory4* This, const void* reference_key, UINT32 key_size, IDWriteFontFileLoader* loader, IDWriteFontFile** font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file); } -static inline HRESULT IDWriteFactory4_CreateFontFace(IDWriteFactory4* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { - return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +static inline HRESULT IDWriteFactory4_CreateFontFace(IDWriteFactory4* This, DWRITE_FONT_FACE_TYPE facetype, UINT32 files_number, IDWriteFontFile* const* font_files, UINT32 index, DWRITE_FONT_SIMULATIONS sim_flags, IDWriteFontFace** font_face) { + return This->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face); } -static inline HRESULT IDWriteFactory4_CreateRenderingParams(IDWriteFactory4* This,IDWriteRenderingParams **params) { - return This->lpVtbl->CreateRenderingParams(This,params); +static inline HRESULT IDWriteFactory4_CreateRenderingParams(IDWriteFactory4* This, IDWriteRenderingParams** params) { + return This->lpVtbl->CreateRenderingParams(This, params); } -static inline HRESULT IDWriteFactory4_CreateMonitorRenderingParams(IDWriteFactory4* This,HMONITOR monitor,IDWriteRenderingParams **params) { - return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +static inline HRESULT IDWriteFactory4_CreateMonitorRenderingParams(IDWriteFactory4* This, HMONITOR monitor, IDWriteRenderingParams** params) { + return This->lpVtbl->CreateMonitorRenderingParams(This, monitor, params); } -static inline HRESULT IDWriteFactory4_RegisterFontFileLoader(IDWriteFactory4* This,IDWriteFontFileLoader *loader) { - return This->lpVtbl->RegisterFontFileLoader(This,loader); +static inline HRESULT IDWriteFactory4_RegisterFontFileLoader(IDWriteFactory4* This, IDWriteFontFileLoader* loader) { + return This->lpVtbl->RegisterFontFileLoader(This, loader); } -static inline HRESULT IDWriteFactory4_UnregisterFontFileLoader(IDWriteFactory4* This,IDWriteFontFileLoader *loader) { - return This->lpVtbl->UnregisterFontFileLoader(This,loader); +static inline HRESULT IDWriteFactory4_UnregisterFontFileLoader(IDWriteFactory4* This, IDWriteFontFileLoader* loader) { + return This->lpVtbl->UnregisterFontFileLoader(This, loader); } -static inline HRESULT IDWriteFactory4_CreateTextFormat(IDWriteFactory4* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) { - return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format); +static inline HRESULT IDWriteFactory4_CreateTextFormat(IDWriteFactory4* This, const WCHAR* family_name, IDWriteFontCollection* collection, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STYLE style, DWRITE_FONT_STRETCH stretch, FLOAT size, const WCHAR* locale, IDWriteTextFormat** format) { + return This->lpVtbl->CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format); } -static inline HRESULT IDWriteFactory4_CreateTypography(IDWriteFactory4* This,IDWriteTypography **typography) { - return This->lpVtbl->CreateTypography(This,typography); +static inline HRESULT IDWriteFactory4_CreateTypography(IDWriteFactory4* This, IDWriteTypography** typography) { + return This->lpVtbl->CreateTypography(This, typography); } -static inline HRESULT IDWriteFactory4_GetGdiInterop(IDWriteFactory4* This,IDWriteGdiInterop **gdi_interop) { - return This->lpVtbl->GetGdiInterop(This,gdi_interop); +static inline HRESULT IDWriteFactory4_GetGdiInterop(IDWriteFactory4* This, IDWriteGdiInterop** gdi_interop) { + return This->lpVtbl->GetGdiInterop(This, gdi_interop); } -static inline HRESULT IDWriteFactory4_CreateTextLayout(IDWriteFactory4* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { - return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +static inline HRESULT IDWriteFactory4_CreateTextLayout(IDWriteFactory4* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT max_width, FLOAT max_height, IDWriteTextLayout** layout) { + return This->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout); } -static inline HRESULT IDWriteFactory4_CreateGdiCompatibleTextLayout(IDWriteFactory4* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { - return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +static inline HRESULT IDWriteFactory4_CreateGdiCompatibleTextLayout(IDWriteFactory4* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT layout_width, FLOAT layout_height, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, IDWriteTextLayout** layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout); } -static inline HRESULT IDWriteFactory4_CreateEllipsisTrimmingSign(IDWriteFactory4* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { - return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +static inline HRESULT IDWriteFactory4_CreateEllipsisTrimmingSign(IDWriteFactory4* This, IDWriteTextFormat* format, IDWriteInlineObject** trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign); } -static inline HRESULT IDWriteFactory4_CreateTextAnalyzer(IDWriteFactory4* This,IDWriteTextAnalyzer **analyzer) { - return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +static inline HRESULT IDWriteFactory4_CreateTextAnalyzer(IDWriteFactory4* This, IDWriteTextAnalyzer** analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This, analyzer); } -static inline HRESULT IDWriteFactory4_CreateNumberSubstitution(IDWriteFactory4* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { - return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +static inline HRESULT IDWriteFactory4_CreateNumberSubstitution(IDWriteFactory4* This, DWRITE_NUMBER_SUBSTITUTION_METHOD method, const WCHAR* locale, WINBOOL ignore_user_override, IDWriteNumberSubstitution** substitution) { + return This->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution); } /*** IDWriteFactory1 methods ***/ -static inline HRESULT IDWriteFactory4_GetEudcFontCollection(IDWriteFactory4* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { - return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); +static inline HRESULT IDWriteFactory4_GetEudcFontCollection(IDWriteFactory4* This, IDWriteFontCollection** collection, WINBOOL check_for_updates) { + return This->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates); } /*** IDWriteFactory2 methods ***/ -static inline HRESULT IDWriteFactory4_GetSystemFontFallback(IDWriteFactory4* This,IDWriteFontFallback **fallback) { - return This->lpVtbl->GetSystemFontFallback(This,fallback); +static inline HRESULT IDWriteFactory4_GetSystemFontFallback(IDWriteFactory4* This, IDWriteFontFallback** fallback) { + return This->lpVtbl->GetSystemFontFallback(This, fallback); } -static inline HRESULT IDWriteFactory4_CreateFontFallbackBuilder(IDWriteFactory4* This,IDWriteFontFallbackBuilder **fallbackbuilder) { - return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); +static inline HRESULT IDWriteFactory4_CreateFontFallbackBuilder(IDWriteFactory4* This, IDWriteFontFallbackBuilder** fallbackbuilder) { + return This->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder); } /*** IDWriteFactory3 methods ***/ -static inline HRESULT IDWriteFactory4_CreateGlyphRunAnalysis(IDWriteFactory4* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) { - return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis); +static inline HRESULT IDWriteFactory4_CreateGlyphRunAnalysis(IDWriteFactory4* This, const DWRITE_GLYPH_RUN* run, const DWRITE_MATRIX* transform, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_MEASURING_MODE measuring_mode, DWRITE_GRID_FIT_MODE gridfit_mode, DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, FLOAT origin_x, FLOAT origin_y, IDWriteGlyphRunAnalysis** analysis) { + return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis); } -static inline HRESULT IDWriteFactory4_CreateCustomRenderingParams(IDWriteFactory4* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) { - return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params); +static inline HRESULT IDWriteFactory4_CreateCustomRenderingParams(IDWriteFactory4* This, FLOAT gamma, FLOAT enhanced_contrast, FLOAT grayscale_enhanced_contrast, FLOAT cleartype_level, DWRITE_PIXEL_GEOMETRY pixel_geometry, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_GRID_FIT_MODE gridfit_mode, IDWriteRenderingParams3** params) { + return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params); } -static inline HRESULT IDWriteFactory4_CreateFontFaceReference_(IDWriteFactory4* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { - return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference); +static inline HRESULT IDWriteFactory4_CreateFontFaceReference_(IDWriteFactory4* This, IDWriteFontFile* file, UINT32 index, DWRITE_FONT_SIMULATIONS simulations, IDWriteFontFaceReference** reference) { + return This->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference); } -static inline HRESULT IDWriteFactory4_CreateFontFaceReference(IDWriteFactory4* This,const WCHAR *path,const FILETIME *writetime,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { - return This->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference); +static inline HRESULT IDWriteFactory4_CreateFontFaceReference(IDWriteFactory4* This, const WCHAR* path, const FILETIME* writetime, UINT32 index, DWRITE_FONT_SIMULATIONS simulations, IDWriteFontFaceReference** reference) { + return This->lpVtbl->CreateFontFaceReference(This, path, writetime, index, simulations, reference); } -static inline HRESULT IDWriteFactory4_GetSystemFontSet(IDWriteFactory4* This,IDWriteFontSet **fontset) { - return This->lpVtbl->GetSystemFontSet(This,fontset); +static inline HRESULT IDWriteFactory4_GetSystemFontSet(IDWriteFactory4* This, IDWriteFontSet** fontset) { + return This->lpVtbl->GetSystemFontSet(This, fontset); } -static inline HRESULT IDWriteFactory4_CreateFontSetBuilder(IDWriteFactory4* This,IDWriteFontSetBuilder **builder) { - return This->lpVtbl->CreateFontSetBuilder(This,builder); +static inline HRESULT IDWriteFactory4_CreateFontSetBuilder(IDWriteFactory4* This, IDWriteFontSetBuilder** builder) { + return This->lpVtbl->CreateFontSetBuilder(This, builder); } -static inline HRESULT IDWriteFactory4_CreateFontCollectionFromFontSet(IDWriteFactory4* This,IDWriteFontSet *fontset,IDWriteFontCollection1 **collection) { - return This->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection); +static inline HRESULT IDWriteFactory4_CreateFontCollectionFromFontSet(IDWriteFactory4* This, IDWriteFontSet* fontset, IDWriteFontCollection1** collection) { + return This->lpVtbl->CreateFontCollectionFromFontSet(This, fontset, collection); } -static inline HRESULT IDWriteFactory4_GetSystemFontCollection(IDWriteFactory4* This,WINBOOL include_downloadable,IDWriteFontCollection1 **collection,WINBOOL check_for_updates) { - return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates); +static inline HRESULT IDWriteFactory4_GetSystemFontCollection(IDWriteFactory4* This, WINBOOL include_downloadable, IDWriteFontCollection1** collection, WINBOOL check_for_updates) { + return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This, include_downloadable, collection, check_for_updates); } -static inline HRESULT IDWriteFactory4_GetFontDownloadQueue(IDWriteFactory4* This,IDWriteFontDownloadQueue **queue) { - return This->lpVtbl->GetFontDownloadQueue(This,queue); +static inline HRESULT IDWriteFactory4_GetFontDownloadQueue(IDWriteFactory4* This, IDWriteFontDownloadQueue** queue) { + return This->lpVtbl->GetFontDownloadQueue(This, queue); } /*** IDWriteFactory4 methods ***/ -static inline HRESULT IDWriteFactory4_TranslateColorGlyphRun(IDWriteFactory4* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) { - return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers); +static inline HRESULT IDWriteFactory4_TranslateColorGlyphRun(IDWriteFactory4* This, D2D1_POINT_2F baseline_origin, const DWRITE_GLYPH_RUN* run, const DWRITE_GLYPH_RUN_DESCRIPTION* run_desc, DWRITE_GLYPH_IMAGE_FORMATS desired_formats, DWRITE_MEASURING_MODE measuring_mode, const DWRITE_MATRIX* transform, UINT32 palette, IDWriteColorGlyphRunEnumerator1** layers) { + return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers); } -static inline HRESULT IDWriteFactory4_ComputeGlyphOrigins_(IDWriteFactory4* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) { - return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins); +static inline HRESULT IDWriteFactory4_ComputeGlyphOrigins_(IDWriteFactory4* This, const DWRITE_GLYPH_RUN* run, D2D1_POINT_2F baseline_origin, D2D1_POINT_2F* origins) { + return This->lpVtbl->ComputeGlyphOrigins_(This, run, baseline_origin, origins); } -static inline HRESULT IDWriteFactory4_ComputeGlyphOrigins(IDWriteFactory4* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) { - return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins); +static inline HRESULT IDWriteFactory4_ComputeGlyphOrigins(IDWriteFactory4* This, const DWRITE_GLYPH_RUN* run, DWRITE_MEASURING_MODE measuring_mode, D2D1_POINT_2F baseline_origin, const DWRITE_MATRIX* transform, D2D1_POINT_2F* origins) { + return This->lpVtbl->ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins); } #endif #endif #endif - -#endif /* __IDWriteFactory4_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFactory4_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteAsyncResult interface @@ -11884,55 +11738,51 @@ static inline HRESULT IDWriteFactory4_ComputeGlyphOrigins(IDWriteFactory4* This, #ifndef __IDWriteAsyncResult_INTERFACE_DEFINED__ #define __IDWriteAsyncResult_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteAsyncResult, 0xce25f8fd, 0x863b, 0x4d13, 0x96,0x51, 0xc1,0xf8,0x8d,0xc7,0x3f,0xe2); +DEFINE_GUID(IID_IDWriteAsyncResult, 0xce25f8fd, 0x863b, 0x4d13, 0x96, 0x51, 0xc1, 0xf8, 0x8d, 0xc7, 0x3f, 0xe2); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("ce25f8fd-863b-4d13-9651-c1f88dc73fe2") -IDWriteAsyncResult : public IUnknown -{ - virtual HANDLE STDMETHODCALLTYPE GetWaitHandle( - ) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetResult( - ) = 0; +IDWriteAsyncResult : public IUnknown { + virtual HANDLE STDMETHODCALLTYPE GetWaitHandle() = 0; + virtual HRESULT STDMETHODCALLTYPE GetResult() = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteAsyncResult, 0xce25f8fd, 0x863b, 0x4d13, 0x96,0x51, 0xc1,0xf8,0x8d,0xc7,0x3f,0xe2) +__CRT_UUID_DECL(IDWriteAsyncResult, 0xce25f8fd, 0x863b, 0x4d13, 0x96, 0x51, 0xc1, 0xf8, 0x8d, 0xc7, 0x3f, 0xe2) #endif #else typedef struct IDWriteAsyncResultVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteAsyncResult *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteAsyncResult* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteAsyncResult *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteAsyncResult* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteAsyncResult *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteAsyncResult* This); - /*** IDWriteAsyncResult methods ***/ - HANDLE (STDMETHODCALLTYPE *GetWaitHandle)( - IDWriteAsyncResult *This); + /*** IDWriteAsyncResult methods ***/ + HANDLE(STDMETHODCALLTYPE* GetWaitHandle)( + IDWriteAsyncResult* This); - HRESULT (STDMETHODCALLTYPE *GetResult)( - IDWriteAsyncResult *This); + HRESULT(STDMETHODCALLTYPE* GetResult)( + IDWriteAsyncResult* This); - END_INTERFACE + END_INTERFACE } IDWriteAsyncResultVtbl; interface IDWriteAsyncResult { - CONST_VTBL IDWriteAsyncResultVtbl* lpVtbl; + CONST_VTBL IDWriteAsyncResultVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteAsyncResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteAsyncResult_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteAsyncResult_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteAsyncResult_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteAsyncResult methods ***/ @@ -11940,33 +11790,32 @@ interface IDWriteAsyncResult { #define IDWriteAsyncResult_GetResult(This) (This)->lpVtbl->GetResult(This) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteAsyncResult_QueryInterface(IDWriteAsyncResult* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteAsyncResult_QueryInterface(IDWriteAsyncResult* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteAsyncResult_AddRef(IDWriteAsyncResult* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteAsyncResult_Release(IDWriteAsyncResult* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteAsyncResult methods ***/ static inline HANDLE IDWriteAsyncResult_GetWaitHandle(IDWriteAsyncResult* This) { - return This->lpVtbl->GetWaitHandle(This); + return This->lpVtbl->GetWaitHandle(This); } static inline HRESULT IDWriteAsyncResult_GetResult(IDWriteAsyncResult* This) { - return This->lpVtbl->GetResult(This); + return This->lpVtbl->GetResult(This); } #endif #endif #endif - -#endif /* __IDWriteAsyncResult_INTERFACE_DEFINED__ */ +#endif /* __IDWriteAsyncResult_INTERFACE_DEFINED__ */ typedef struct DWRITE_FILE_FRAGMENT { - UINT64 fileOffset; - UINT64 fragmentSize; + UINT64 fileOffset; + UINT64 fragmentSize; } DWRITE_FILE_FRAGMENT; /***************************************************************************** * IDWriteRemoteFontFileStream interface @@ -11974,163 +11823,159 @@ typedef struct DWRITE_FILE_FRAGMENT { #ifndef __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__ #define __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteRemoteFontFileStream, 0x4db3757a, 0x2c72, 0x4ed9, 0xb2,0xb6, 0x1a,0xba,0xbe,0x1a,0xff,0x9c); +DEFINE_GUID(IID_IDWriteRemoteFontFileStream, 0x4db3757a, 0x2c72, 0x4ed9, 0xb2, 0xb6, 0x1a, 0xba, 0xbe, 0x1a, 0xff, 0x9c); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("4db3757a-2c72-4ed9-b2b6-1ababe1aff9c") -IDWriteRemoteFontFileStream : public IDWriteFontFileStream -{ - virtual HRESULT STDMETHODCALLTYPE GetLocalFileSize( - UINT64 *size) = 0; +IDWriteRemoteFontFileStream : public IDWriteFontFileStream { + virtual HRESULT STDMETHODCALLTYPE GetLocalFileSize( + UINT64 * size) = 0; - virtual HRESULT STDMETHODCALLTYPE GetFileFragmentLocality( - UINT64 offset, - UINT64 size, - WINBOOL *is_local, - UINT64 *partial_size) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFileFragmentLocality( + UINT64 offset, + UINT64 size, + WINBOOL * is_local, + UINT64 * partial_size) = 0; - virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality( - ) = 0; - - virtual HRESULT STDMETHODCALLTYPE BeginDownload( - const GUID *operation_id, - const DWRITE_FILE_FRAGMENT *fragments, - UINT32 fragment_count, - IDWriteAsyncResult **async_result) = 0; + virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality() = 0; + virtual HRESULT STDMETHODCALLTYPE BeginDownload( + const GUID* operation_id, + const DWRITE_FILE_FRAGMENT* fragments, + UINT32 fragment_count, + IDWriteAsyncResult** async_result) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteRemoteFontFileStream, 0x4db3757a, 0x2c72, 0x4ed9, 0xb2,0xb6, 0x1a,0xba,0xbe,0x1a,0xff,0x9c) +__CRT_UUID_DECL(IDWriteRemoteFontFileStream, 0x4db3757a, 0x2c72, 0x4ed9, 0xb2, 0xb6, 0x1a, 0xba, 0xbe, 0x1a, 0xff, 0x9c) #endif #else typedef struct IDWriteRemoteFontFileStreamVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteRemoteFontFileStream *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteRemoteFontFileStream* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteRemoteFontFileStream *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteRemoteFontFileStream* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteRemoteFontFileStream *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteRemoteFontFileStream* This); - /*** IDWriteFontFileStream methods ***/ - HRESULT (STDMETHODCALLTYPE *ReadFileFragment)( - IDWriteRemoteFontFileStream *This, - const void **fragment_start, - UINT64 offset, - UINT64 fragment_size, - void **fragment_context); + /*** IDWriteFontFileStream methods ***/ + HRESULT(STDMETHODCALLTYPE* ReadFileFragment)( + IDWriteRemoteFontFileStream* This, + const void** fragment_start, + UINT64 offset, + UINT64 fragment_size, + void** fragment_context); - void (STDMETHODCALLTYPE *ReleaseFileFragment)( - IDWriteRemoteFontFileStream *This, - void *fragment_context); + void(STDMETHODCALLTYPE* ReleaseFileFragment)( + IDWriteRemoteFontFileStream* This, + void* fragment_context); - HRESULT (STDMETHODCALLTYPE *GetFileSize)( - IDWriteRemoteFontFileStream *This, - UINT64 *size); + HRESULT(STDMETHODCALLTYPE* GetFileSize)( + IDWriteRemoteFontFileStream* This, + UINT64* size); - HRESULT (STDMETHODCALLTYPE *GetLastWriteTime)( - IDWriteRemoteFontFileStream *This, - UINT64 *last_writetime); + HRESULT(STDMETHODCALLTYPE* GetLastWriteTime)( + IDWriteRemoteFontFileStream* This, + UINT64* last_writetime); - /*** IDWriteRemoteFontFileStream methods ***/ - HRESULT (STDMETHODCALLTYPE *GetLocalFileSize)( - IDWriteRemoteFontFileStream *This, - UINT64 *size); + /*** IDWriteRemoteFontFileStream methods ***/ + HRESULT(STDMETHODCALLTYPE* GetLocalFileSize)( + IDWriteRemoteFontFileStream* This, + UINT64* size); - HRESULT (STDMETHODCALLTYPE *GetFileFragmentLocality)( - IDWriteRemoteFontFileStream *This, - UINT64 offset, - UINT64 size, - WINBOOL *is_local, - UINT64 *partial_size); + HRESULT(STDMETHODCALLTYPE* GetFileFragmentLocality)( + IDWriteRemoteFontFileStream* This, + UINT64 offset, + UINT64 size, + WINBOOL* is_local, + UINT64* partial_size); - DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)( - IDWriteRemoteFontFileStream *This); + DWRITE_LOCALITY(STDMETHODCALLTYPE* GetLocality)( + IDWriteRemoteFontFileStream* This); - HRESULT (STDMETHODCALLTYPE *BeginDownload)( - IDWriteRemoteFontFileStream *This, - const GUID *operation_id, - const DWRITE_FILE_FRAGMENT *fragments, - UINT32 fragment_count, - IDWriteAsyncResult **async_result); + HRESULT(STDMETHODCALLTYPE* BeginDownload)( + IDWriteRemoteFontFileStream* This, + const GUID* operation_id, + const DWRITE_FILE_FRAGMENT* fragments, + UINT32 fragment_count, + IDWriteAsyncResult** async_result); - END_INTERFACE + END_INTERFACE } IDWriteRemoteFontFileStreamVtbl; interface IDWriteRemoteFontFileStream { - CONST_VTBL IDWriteRemoteFontFileStreamVtbl* lpVtbl; + CONST_VTBL IDWriteRemoteFontFileStreamVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteRemoteFontFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteRemoteFontFileStream_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteRemoteFontFileStream_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteRemoteFontFileStream_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontFileStream methods ***/ -#define IDWriteRemoteFontFileStream_ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context) (This)->lpVtbl->ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context) -#define IDWriteRemoteFontFileStream_ReleaseFileFragment(This,fragment_context) (This)->lpVtbl->ReleaseFileFragment(This,fragment_context) -#define IDWriteRemoteFontFileStream_GetFileSize(This,size) (This)->lpVtbl->GetFileSize(This,size) -#define IDWriteRemoteFontFileStream_GetLastWriteTime(This,last_writetime) (This)->lpVtbl->GetLastWriteTime(This,last_writetime) +#define IDWriteRemoteFontFileStream_ReadFileFragment(This, fragment_start, offset, fragment_size, fragment_context) (This)->lpVtbl->ReadFileFragment(This, fragment_start, offset, fragment_size, fragment_context) +#define IDWriteRemoteFontFileStream_ReleaseFileFragment(This, fragment_context) (This)->lpVtbl->ReleaseFileFragment(This, fragment_context) +#define IDWriteRemoteFontFileStream_GetFileSize(This, size) (This)->lpVtbl->GetFileSize(This, size) +#define IDWriteRemoteFontFileStream_GetLastWriteTime(This, last_writetime) (This)->lpVtbl->GetLastWriteTime(This, last_writetime) /*** IDWriteRemoteFontFileStream methods ***/ -#define IDWriteRemoteFontFileStream_GetLocalFileSize(This,size) (This)->lpVtbl->GetLocalFileSize(This,size) -#define IDWriteRemoteFontFileStream_GetFileFragmentLocality(This,offset,size,is_local,partial_size) (This)->lpVtbl->GetFileFragmentLocality(This,offset,size,is_local,partial_size) +#define IDWriteRemoteFontFileStream_GetLocalFileSize(This, size) (This)->lpVtbl->GetLocalFileSize(This, size) +#define IDWriteRemoteFontFileStream_GetFileFragmentLocality(This, offset, size, is_local, partial_size) (This)->lpVtbl->GetFileFragmentLocality(This, offset, size, is_local, partial_size) #define IDWriteRemoteFontFileStream_GetLocality(This) (This)->lpVtbl->GetLocality(This) -#define IDWriteRemoteFontFileStream_BeginDownload(This,operation_id,fragments,fragment_count,async_result) (This)->lpVtbl->BeginDownload(This,operation_id,fragments,fragment_count,async_result) +#define IDWriteRemoteFontFileStream_BeginDownload(This, operation_id, fragments, fragment_count, async_result) (This)->lpVtbl->BeginDownload(This, operation_id, fragments, fragment_count, async_result) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteRemoteFontFileStream_QueryInterface(IDWriteRemoteFontFileStream* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteRemoteFontFileStream_QueryInterface(IDWriteRemoteFontFileStream* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteRemoteFontFileStream_AddRef(IDWriteRemoteFontFileStream* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteRemoteFontFileStream_Release(IDWriteRemoteFontFileStream* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontFileStream methods ***/ -static inline HRESULT IDWriteRemoteFontFileStream_ReadFileFragment(IDWriteRemoteFontFileStream* This,const void **fragment_start,UINT64 offset,UINT64 fragment_size,void **fragment_context) { - return This->lpVtbl->ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context); +static inline HRESULT IDWriteRemoteFontFileStream_ReadFileFragment(IDWriteRemoteFontFileStream* This, const void** fragment_start, UINT64 offset, UINT64 fragment_size, void** fragment_context) { + return This->lpVtbl->ReadFileFragment(This, fragment_start, offset, fragment_size, fragment_context); } -static inline void IDWriteRemoteFontFileStream_ReleaseFileFragment(IDWriteRemoteFontFileStream* This,void *fragment_context) { - This->lpVtbl->ReleaseFileFragment(This,fragment_context); +static inline void IDWriteRemoteFontFileStream_ReleaseFileFragment(IDWriteRemoteFontFileStream* This, void* fragment_context) { + This->lpVtbl->ReleaseFileFragment(This, fragment_context); } -static inline HRESULT IDWriteRemoteFontFileStream_GetFileSize(IDWriteRemoteFontFileStream* This,UINT64 *size) { - return This->lpVtbl->GetFileSize(This,size); +static inline HRESULT IDWriteRemoteFontFileStream_GetFileSize(IDWriteRemoteFontFileStream* This, UINT64* size) { + return This->lpVtbl->GetFileSize(This, size); } -static inline HRESULT IDWriteRemoteFontFileStream_GetLastWriteTime(IDWriteRemoteFontFileStream* This,UINT64 *last_writetime) { - return This->lpVtbl->GetLastWriteTime(This,last_writetime); +static inline HRESULT IDWriteRemoteFontFileStream_GetLastWriteTime(IDWriteRemoteFontFileStream* This, UINT64* last_writetime) { + return This->lpVtbl->GetLastWriteTime(This, last_writetime); } /*** IDWriteRemoteFontFileStream methods ***/ -static inline HRESULT IDWriteRemoteFontFileStream_GetLocalFileSize(IDWriteRemoteFontFileStream* This,UINT64 *size) { - return This->lpVtbl->GetLocalFileSize(This,size); +static inline HRESULT IDWriteRemoteFontFileStream_GetLocalFileSize(IDWriteRemoteFontFileStream* This, UINT64* size) { + return This->lpVtbl->GetLocalFileSize(This, size); } -static inline HRESULT IDWriteRemoteFontFileStream_GetFileFragmentLocality(IDWriteRemoteFontFileStream* This,UINT64 offset,UINT64 size,WINBOOL *is_local,UINT64 *partial_size) { - return This->lpVtbl->GetFileFragmentLocality(This,offset,size,is_local,partial_size); +static inline HRESULT IDWriteRemoteFontFileStream_GetFileFragmentLocality(IDWriteRemoteFontFileStream* This, UINT64 offset, UINT64 size, WINBOOL* is_local, UINT64* partial_size) { + return This->lpVtbl->GetFileFragmentLocality(This, offset, size, is_local, partial_size); } static inline DWRITE_LOCALITY IDWriteRemoteFontFileStream_GetLocality(IDWriteRemoteFontFileStream* This) { - return This->lpVtbl->GetLocality(This); + return This->lpVtbl->GetLocality(This); } -static inline HRESULT IDWriteRemoteFontFileStream_BeginDownload(IDWriteRemoteFontFileStream* This,const GUID *operation_id,const DWRITE_FILE_FRAGMENT *fragments,UINT32 fragment_count,IDWriteAsyncResult **async_result) { - return This->lpVtbl->BeginDownload(This,operation_id,fragments,fragment_count,async_result); +static inline HRESULT IDWriteRemoteFontFileStream_BeginDownload(IDWriteRemoteFontFileStream* This, const GUID* operation_id, const DWRITE_FILE_FRAGMENT* fragments, UINT32 fragment_count, IDWriteAsyncResult** async_result) { + return This->lpVtbl->BeginDownload(This, operation_id, fragments, fragment_count, async_result); } #endif #endif #endif - -#endif /* __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__ */ +#endif /* __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__ */ typedef enum DWRITE_CONTAINER_TYPE { - DWRITE_CONTAINER_TYPE_UNKNOWN = 0, - DWRITE_CONTAINER_TYPE_WOFF = 1, - DWRITE_CONTAINER_TYPE_WOFF2 = 2 + DWRITE_CONTAINER_TYPE_UNKNOWN = 0, + DWRITE_CONTAINER_TYPE_WOFF = 1, + DWRITE_CONTAINER_TYPE_WOFF2 = 2 } DWRITE_CONTAINER_TYPE; /***************************************************************************** * IDWriteRemoteFontFileLoader interface @@ -12138,125 +11983,122 @@ typedef enum DWRITE_CONTAINER_TYPE { #ifndef __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__ #define __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteRemoteFontFileLoader, 0x68648c83, 0x6ede, 0x46c0, 0xab,0x46, 0x20,0x08,0x3a,0x88,0x7f,0xde); +DEFINE_GUID(IID_IDWriteRemoteFontFileLoader, 0x68648c83, 0x6ede, 0x46c0, 0xab, 0x46, 0x20, 0x08, 0x3a, 0x88, 0x7f, 0xde); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("68648c83-6ede-46c0-ab46-20083a887fde") -IDWriteRemoteFontFileLoader : public IDWriteFontFileLoader -{ - virtual HRESULT STDMETHODCALLTYPE CreateRemoteStreamFromKey( - const void *key, - UINT32 key_size, - IDWriteRemoteFontFileStream **stream) = 0; +IDWriteRemoteFontFileLoader : public IDWriteFontFileLoader { + virtual HRESULT STDMETHODCALLTYPE CreateRemoteStreamFromKey( + const void* key, + UINT32 key_size, + IDWriteRemoteFontFileStream** stream) = 0; - virtual HRESULT STDMETHODCALLTYPE GetLocalityFromKey( - const void *key, - UINT32 key_size, - DWRITE_LOCALITY *locality) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontFileReferenceFromUrl( - IDWriteFactory *factory, - const WCHAR *base_url, - const WCHAR *file_url, - IDWriteFontFile **fontfile) = 0; + virtual HRESULT STDMETHODCALLTYPE GetLocalityFromKey( + const void* key, + UINT32 key_size, + DWRITE_LOCALITY* locality) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateFontFileReferenceFromUrl( + IDWriteFactory * factory, + const WCHAR* base_url, + const WCHAR* file_url, + IDWriteFontFile** fontfile) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteRemoteFontFileLoader, 0x68648c83, 0x6ede, 0x46c0, 0xab,0x46, 0x20,0x08,0x3a,0x88,0x7f,0xde) +__CRT_UUID_DECL(IDWriteRemoteFontFileLoader, 0x68648c83, 0x6ede, 0x46c0, 0xab, 0x46, 0x20, 0x08, 0x3a, 0x88, 0x7f, 0xde) #endif #else typedef struct IDWriteRemoteFontFileLoaderVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteRemoteFontFileLoader *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteRemoteFontFileLoader* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteRemoteFontFileLoader *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteRemoteFontFileLoader* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteRemoteFontFileLoader *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteRemoteFontFileLoader* This); - /*** IDWriteFontFileLoader methods ***/ - HRESULT (STDMETHODCALLTYPE *CreateStreamFromKey)( - IDWriteRemoteFontFileLoader *This, - const void *key, - UINT32 key_size, - IDWriteFontFileStream **stream); + /*** IDWriteFontFileLoader methods ***/ + HRESULT(STDMETHODCALLTYPE* CreateStreamFromKey)( + IDWriteRemoteFontFileLoader* This, + const void* key, + UINT32 key_size, + IDWriteFontFileStream** stream); - /*** IDWriteRemoteFontFileLoader methods ***/ - HRESULT (STDMETHODCALLTYPE *CreateRemoteStreamFromKey)( - IDWriteRemoteFontFileLoader *This, - const void *key, - UINT32 key_size, - IDWriteRemoteFontFileStream **stream); + /*** IDWriteRemoteFontFileLoader methods ***/ + HRESULT(STDMETHODCALLTYPE* CreateRemoteStreamFromKey)( + IDWriteRemoteFontFileLoader* This, + const void* key, + UINT32 key_size, + IDWriteRemoteFontFileStream** stream); - HRESULT (STDMETHODCALLTYPE *GetLocalityFromKey)( - IDWriteRemoteFontFileLoader *This, - const void *key, - UINT32 key_size, - DWRITE_LOCALITY *locality); + HRESULT(STDMETHODCALLTYPE* GetLocalityFromKey)( + IDWriteRemoteFontFileLoader* This, + const void* key, + UINT32 key_size, + DWRITE_LOCALITY* locality); - HRESULT (STDMETHODCALLTYPE *CreateFontFileReferenceFromUrl)( - IDWriteRemoteFontFileLoader *This, - IDWriteFactory *factory, - const WCHAR *base_url, - const WCHAR *file_url, - IDWriteFontFile **fontfile); + HRESULT(STDMETHODCALLTYPE* CreateFontFileReferenceFromUrl)( + IDWriteRemoteFontFileLoader* This, + IDWriteFactory* factory, + const WCHAR* base_url, + const WCHAR* file_url, + IDWriteFontFile** fontfile); - END_INTERFACE + END_INTERFACE } IDWriteRemoteFontFileLoaderVtbl; interface IDWriteRemoteFontFileLoader { - CONST_VTBL IDWriteRemoteFontFileLoaderVtbl* lpVtbl; + CONST_VTBL IDWriteRemoteFontFileLoaderVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteRemoteFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteRemoteFontFileLoader_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteRemoteFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteRemoteFontFileLoader_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontFileLoader methods ***/ -#define IDWriteRemoteFontFileLoader_CreateStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateStreamFromKey(This,key,key_size,stream) +#define IDWriteRemoteFontFileLoader_CreateStreamFromKey(This, key, key_size, stream) (This)->lpVtbl->CreateStreamFromKey(This, key, key_size, stream) /*** IDWriteRemoteFontFileLoader methods ***/ -#define IDWriteRemoteFontFileLoader_CreateRemoteStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateRemoteStreamFromKey(This,key,key_size,stream) -#define IDWriteRemoteFontFileLoader_GetLocalityFromKey(This,key,key_size,locality) (This)->lpVtbl->GetLocalityFromKey(This,key,key_size,locality) -#define IDWriteRemoteFontFileLoader_CreateFontFileReferenceFromUrl(This,factory,base_url,file_url,fontfile) (This)->lpVtbl->CreateFontFileReferenceFromUrl(This,factory,base_url,file_url,fontfile) +#define IDWriteRemoteFontFileLoader_CreateRemoteStreamFromKey(This, key, key_size, stream) (This)->lpVtbl->CreateRemoteStreamFromKey(This, key, key_size, stream) +#define IDWriteRemoteFontFileLoader_GetLocalityFromKey(This, key, key_size, locality) (This)->lpVtbl->GetLocalityFromKey(This, key, key_size, locality) +#define IDWriteRemoteFontFileLoader_CreateFontFileReferenceFromUrl(This, factory, base_url, file_url, fontfile) (This)->lpVtbl->CreateFontFileReferenceFromUrl(This, factory, base_url, file_url, fontfile) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteRemoteFontFileLoader_QueryInterface(IDWriteRemoteFontFileLoader* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteRemoteFontFileLoader_QueryInterface(IDWriteRemoteFontFileLoader* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteRemoteFontFileLoader_AddRef(IDWriteRemoteFontFileLoader* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteRemoteFontFileLoader_Release(IDWriteRemoteFontFileLoader* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontFileLoader methods ***/ -static inline HRESULT IDWriteRemoteFontFileLoader_CreateStreamFromKey(IDWriteRemoteFontFileLoader* This,const void *key,UINT32 key_size,IDWriteFontFileStream **stream) { - return This->lpVtbl->CreateStreamFromKey(This,key,key_size,stream); +static inline HRESULT IDWriteRemoteFontFileLoader_CreateStreamFromKey(IDWriteRemoteFontFileLoader* This, const void* key, UINT32 key_size, IDWriteFontFileStream** stream) { + return This->lpVtbl->CreateStreamFromKey(This, key, key_size, stream); } /*** IDWriteRemoteFontFileLoader methods ***/ -static inline HRESULT IDWriteRemoteFontFileLoader_CreateRemoteStreamFromKey(IDWriteRemoteFontFileLoader* This,const void *key,UINT32 key_size,IDWriteRemoteFontFileStream **stream) { - return This->lpVtbl->CreateRemoteStreamFromKey(This,key,key_size,stream); +static inline HRESULT IDWriteRemoteFontFileLoader_CreateRemoteStreamFromKey(IDWriteRemoteFontFileLoader* This, const void* key, UINT32 key_size, IDWriteRemoteFontFileStream** stream) { + return This->lpVtbl->CreateRemoteStreamFromKey(This, key, key_size, stream); } -static inline HRESULT IDWriteRemoteFontFileLoader_GetLocalityFromKey(IDWriteRemoteFontFileLoader* This,const void *key,UINT32 key_size,DWRITE_LOCALITY *locality) { - return This->lpVtbl->GetLocalityFromKey(This,key,key_size,locality); +static inline HRESULT IDWriteRemoteFontFileLoader_GetLocalityFromKey(IDWriteRemoteFontFileLoader* This, const void* key, UINT32 key_size, DWRITE_LOCALITY* locality) { + return This->lpVtbl->GetLocalityFromKey(This, key, key_size, locality); } -static inline HRESULT IDWriteRemoteFontFileLoader_CreateFontFileReferenceFromUrl(IDWriteRemoteFontFileLoader* This,IDWriteFactory *factory,const WCHAR *base_url,const WCHAR *file_url,IDWriteFontFile **fontfile) { - return This->lpVtbl->CreateFontFileReferenceFromUrl(This,factory,base_url,file_url,fontfile); +static inline HRESULT IDWriteRemoteFontFileLoader_CreateFontFileReferenceFromUrl(IDWriteRemoteFontFileLoader* This, IDWriteFactory* factory, const WCHAR* base_url, const WCHAR* file_url, IDWriteFontFile** fontfile) { + return This->lpVtbl->CreateFontFileReferenceFromUrl(This, factory, base_url, file_url, fontfile); } #endif #endif #endif - -#endif /* __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__ */ +#endif /* __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteInMemoryFontFileLoader interface @@ -12264,107 +12106,103 @@ static inline HRESULT IDWriteRemoteFontFileLoader_CreateFontFileReferenceFromUrl #ifndef __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__ #define __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteInMemoryFontFileLoader, 0xdc102f47, 0xa12d, 0x4b1c, 0x82,0x2d, 0x9e,0x11,0x7e,0x33,0x04,0x3f); +DEFINE_GUID(IID_IDWriteInMemoryFontFileLoader, 0xdc102f47, 0xa12d, 0x4b1c, 0x82, 0x2d, 0x9e, 0x11, 0x7e, 0x33, 0x04, 0x3f); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("dc102f47-a12d-4b1c-822d-9e117e33043f") -IDWriteInMemoryFontFileLoader : public IDWriteFontFileLoader -{ - virtual HRESULT STDMETHODCALLTYPE CreateInMemoryFontFileReference( - IDWriteFactory *factory, - const void *data, - UINT32 data_size, - IUnknown *owner, - IDWriteFontFile **fontfile) = 0; - - virtual UINT32 STDMETHODCALLTYPE GetFileCount( - ) = 0; +IDWriteInMemoryFontFileLoader : public IDWriteFontFileLoader { + virtual HRESULT STDMETHODCALLTYPE CreateInMemoryFontFileReference( + IDWriteFactory * factory, + const void* data, + UINT32 data_size, + IUnknown* owner, + IDWriteFontFile** fontfile) = 0; + virtual UINT32 STDMETHODCALLTYPE GetFileCount() = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteInMemoryFontFileLoader, 0xdc102f47, 0xa12d, 0x4b1c, 0x82,0x2d, 0x9e,0x11,0x7e,0x33,0x04,0x3f) +__CRT_UUID_DECL(IDWriteInMemoryFontFileLoader, 0xdc102f47, 0xa12d, 0x4b1c, 0x82, 0x2d, 0x9e, 0x11, 0x7e, 0x33, 0x04, 0x3f) #endif #else typedef struct IDWriteInMemoryFontFileLoaderVtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteInMemoryFontFileLoader *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteInMemoryFontFileLoader* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteInMemoryFontFileLoader *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteInMemoryFontFileLoader* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteInMemoryFontFileLoader *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteInMemoryFontFileLoader* This); - /*** IDWriteFontFileLoader methods ***/ - HRESULT (STDMETHODCALLTYPE *CreateStreamFromKey)( - IDWriteInMemoryFontFileLoader *This, - const void *key, - UINT32 key_size, - IDWriteFontFileStream **stream); + /*** IDWriteFontFileLoader methods ***/ + HRESULT(STDMETHODCALLTYPE* CreateStreamFromKey)( + IDWriteInMemoryFontFileLoader* This, + const void* key, + UINT32 key_size, + IDWriteFontFileStream** stream); - /*** IDWriteInMemoryFontFileLoader methods ***/ - HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileReference)( - IDWriteInMemoryFontFileLoader *This, - IDWriteFactory *factory, - const void *data, - UINT32 data_size, - IUnknown *owner, - IDWriteFontFile **fontfile); + /*** IDWriteInMemoryFontFileLoader methods ***/ + HRESULT(STDMETHODCALLTYPE* CreateInMemoryFontFileReference)( + IDWriteInMemoryFontFileLoader* This, + IDWriteFactory* factory, + const void* data, + UINT32 data_size, + IUnknown* owner, + IDWriteFontFile** fontfile); - UINT32 (STDMETHODCALLTYPE *GetFileCount)( - IDWriteInMemoryFontFileLoader *This); + UINT32(STDMETHODCALLTYPE* GetFileCount)( + IDWriteInMemoryFontFileLoader* This); - END_INTERFACE + END_INTERFACE } IDWriteInMemoryFontFileLoaderVtbl; interface IDWriteInMemoryFontFileLoader { - CONST_VTBL IDWriteInMemoryFontFileLoaderVtbl* lpVtbl; + CONST_VTBL IDWriteInMemoryFontFileLoaderVtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteInMemoryFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteInMemoryFontFileLoader_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteInMemoryFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteInMemoryFontFileLoader_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFontFileLoader methods ***/ -#define IDWriteInMemoryFontFileLoader_CreateStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateStreamFromKey(This,key,key_size,stream) +#define IDWriteInMemoryFontFileLoader_CreateStreamFromKey(This, key, key_size, stream) (This)->lpVtbl->CreateStreamFromKey(This, key, key_size, stream) /*** IDWriteInMemoryFontFileLoader methods ***/ -#define IDWriteInMemoryFontFileLoader_CreateInMemoryFontFileReference(This,factory,data,data_size,owner,fontfile) (This)->lpVtbl->CreateInMemoryFontFileReference(This,factory,data,data_size,owner,fontfile) +#define IDWriteInMemoryFontFileLoader_CreateInMemoryFontFileReference(This, factory, data, data_size, owner, fontfile) (This)->lpVtbl->CreateInMemoryFontFileReference(This, factory, data, data_size, owner, fontfile) #define IDWriteInMemoryFontFileLoader_GetFileCount(This) (This)->lpVtbl->GetFileCount(This) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteInMemoryFontFileLoader_QueryInterface(IDWriteInMemoryFontFileLoader* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteInMemoryFontFileLoader_QueryInterface(IDWriteInMemoryFontFileLoader* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteInMemoryFontFileLoader_AddRef(IDWriteInMemoryFontFileLoader* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteInMemoryFontFileLoader_Release(IDWriteInMemoryFontFileLoader* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFontFileLoader methods ***/ -static inline HRESULT IDWriteInMemoryFontFileLoader_CreateStreamFromKey(IDWriteInMemoryFontFileLoader* This,const void *key,UINT32 key_size,IDWriteFontFileStream **stream) { - return This->lpVtbl->CreateStreamFromKey(This,key,key_size,stream); +static inline HRESULT IDWriteInMemoryFontFileLoader_CreateStreamFromKey(IDWriteInMemoryFontFileLoader* This, const void* key, UINT32 key_size, IDWriteFontFileStream** stream) { + return This->lpVtbl->CreateStreamFromKey(This, key, key_size, stream); } /*** IDWriteInMemoryFontFileLoader methods ***/ -static inline HRESULT IDWriteInMemoryFontFileLoader_CreateInMemoryFontFileReference(IDWriteInMemoryFontFileLoader* This,IDWriteFactory *factory,const void *data,UINT32 data_size,IUnknown *owner,IDWriteFontFile **fontfile) { - return This->lpVtbl->CreateInMemoryFontFileReference(This,factory,data,data_size,owner,fontfile); +static inline HRESULT IDWriteInMemoryFontFileLoader_CreateInMemoryFontFileReference(IDWriteInMemoryFontFileLoader* This, IDWriteFactory* factory, const void* data, UINT32 data_size, IUnknown* owner, IDWriteFontFile** fontfile) { + return This->lpVtbl->CreateInMemoryFontFileReference(This, factory, data, data_size, owner, fontfile); } static inline UINT32 IDWriteInMemoryFontFileLoader_GetFileCount(IDWriteInMemoryFontFileLoader* This) { - return This->lpVtbl->GetFileCount(This); + return This->lpVtbl->GetFileCount(This); } #endif #endif #endif - -#endif /* __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__ */ +#endif /* __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFactory5 interface @@ -12372,553 +12210,550 @@ static inline UINT32 IDWriteInMemoryFontFileLoader_GetFileCount(IDWriteInMemoryF #ifndef __IDWriteFactory5_INTERFACE_DEFINED__ #define __IDWriteFactory5_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFactory5, 0x958db99a, 0xbe2a, 0x4f09, 0xaf,0x7d, 0x65,0x18,0x98,0x03,0xd1,0xd3); +DEFINE_GUID(IID_IDWriteFactory5, 0x958db99a, 0xbe2a, 0x4f09, 0xaf, 0x7d, 0x65, 0x18, 0x98, 0x03, 0xd1, 0xd3); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("958db99a-be2a-4f09-af7d-65189803d1d3") -IDWriteFactory5 : public IDWriteFactory4 -{ - virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder( - IDWriteFontSetBuilder1 **fontset_builder) = 0; +IDWriteFactory5 : public IDWriteFactory4 { + virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder( + IDWriteFontSetBuilder1 * *fontset_builder) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateInMemoryFontFileLoader( - IDWriteInMemoryFontFileLoader **loader) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateInMemoryFontFileLoader( + IDWriteInMemoryFontFileLoader * *loader) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateHttpFontFileLoader( - const WCHAR *referrer_url, - const WCHAR *extra_headers, - IDWriteRemoteFontFileLoader **loader) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateHttpFontFileLoader( + const WCHAR* referrer_url, + const WCHAR* extra_headers, + IDWriteRemoteFontFileLoader** loader) = 0; - virtual DWRITE_CONTAINER_TYPE STDMETHODCALLTYPE AnalyzeContainerType( - const void *data, - UINT32 data_size) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnpackFontFile( - DWRITE_CONTAINER_TYPE container_type, - const void *data, - UINT32 data_size, - IDWriteFontFileStream **stream) = 0; + virtual DWRITE_CONTAINER_TYPE STDMETHODCALLTYPE AnalyzeContainerType( + const void* data, + UINT32 data_size) = 0; + virtual HRESULT STDMETHODCALLTYPE UnpackFontFile( + DWRITE_CONTAINER_TYPE container_type, + const void* data, + UINT32 data_size, + IDWriteFontFileStream** stream) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFactory5, 0x958db99a, 0xbe2a, 0x4f09, 0xaf,0x7d, 0x65,0x18,0x98,0x03,0xd1,0xd3) +__CRT_UUID_DECL(IDWriteFactory5, 0x958db99a, 0xbe2a, 0x4f09, 0xaf, 0x7d, 0x65, 0x18, 0x98, 0x03, 0xd1, 0xd3) #endif #else typedef struct IDWriteFactory5Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFactory5 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFactory5* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFactory5 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFactory5* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFactory5 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFactory5* This); - /*** IDWriteFactory methods ***/ - HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( - IDWriteFactory5 *This, - IDWriteFontCollection **collection, - WINBOOL check_for_updates); + /*** IDWriteFactory methods ***/ + HRESULT(STDMETHODCALLTYPE* GetSystemFontCollection)( + IDWriteFactory5* This, + IDWriteFontCollection** collection, + WINBOOL check_for_updates); - HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( - IDWriteFactory5 *This, - IDWriteFontCollectionLoader *loader, - const void *key, - UINT32 key_size, - IDWriteFontCollection **collection); + HRESULT(STDMETHODCALLTYPE* CreateCustomFontCollection)( + IDWriteFactory5* This, + IDWriteFontCollectionLoader* loader, + const void* key, + UINT32 key_size, + IDWriteFontCollection** collection); - HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( - IDWriteFactory5 *This, - IDWriteFontCollectionLoader *loader); + HRESULT(STDMETHODCALLTYPE* RegisterFontCollectionLoader)( + IDWriteFactory5* This, + IDWriteFontCollectionLoader* loader); - HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( - IDWriteFactory5 *This, - IDWriteFontCollectionLoader *loader); + HRESULT(STDMETHODCALLTYPE* UnregisterFontCollectionLoader)( + IDWriteFactory5* This, + IDWriteFontCollectionLoader* loader); - HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( - IDWriteFactory5 *This, - const WCHAR *path, - const FILETIME *writetime, - IDWriteFontFile **font_file); + HRESULT(STDMETHODCALLTYPE* CreateFontFileReference)( + IDWriteFactory5* This, + const WCHAR* path, + const FILETIME* writetime, + IDWriteFontFile** font_file); - HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( - IDWriteFactory5 *This, - const void *reference_key, - UINT32 key_size, - IDWriteFontFileLoader *loader, - IDWriteFontFile **font_file); + HRESULT(STDMETHODCALLTYPE* CreateCustomFontFileReference)( + IDWriteFactory5* This, + const void* reference_key, + UINT32 key_size, + IDWriteFontFileLoader* loader, + IDWriteFontFile** font_file); - HRESULT (STDMETHODCALLTYPE *CreateFontFace)( - IDWriteFactory5 *This, - DWRITE_FONT_FACE_TYPE facetype, - UINT32 files_number, - IDWriteFontFile *const *font_files, - UINT32 index, - DWRITE_FONT_SIMULATIONS sim_flags, - IDWriteFontFace **font_face); + HRESULT(STDMETHODCALLTYPE* CreateFontFace)( + IDWriteFactory5* This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile* const* font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace** font_face); - HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( - IDWriteFactory5 *This, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateRenderingParams)( + IDWriteFactory5* This, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( - IDWriteFactory5 *This, - HMONITOR monitor, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateMonitorRenderingParams)( + IDWriteFactory5* This, + HMONITOR monitor, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( - IDWriteFactory5 *This, - FLOAT gamma, - FLOAT enhancedContrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateCustomRenderingParams)( + IDWriteFactory5* This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( - IDWriteFactory5 *This, - IDWriteFontFileLoader *loader); + HRESULT(STDMETHODCALLTYPE* RegisterFontFileLoader)( + IDWriteFactory5* This, + IDWriteFontFileLoader* loader); - HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( - IDWriteFactory5 *This, - IDWriteFontFileLoader *loader); + HRESULT(STDMETHODCALLTYPE* UnregisterFontFileLoader)( + IDWriteFactory5* This, + IDWriteFontFileLoader* loader); - HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( - IDWriteFactory5 *This, - const WCHAR *family_name, - IDWriteFontCollection *collection, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STYLE style, - DWRITE_FONT_STRETCH stretch, - FLOAT size, - const WCHAR *locale, - IDWriteTextFormat **format); + HRESULT(STDMETHODCALLTYPE* CreateTextFormat)( + IDWriteFactory5* This, + const WCHAR* family_name, + IDWriteFontCollection* collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR* locale, + IDWriteTextFormat** format); - HRESULT (STDMETHODCALLTYPE *CreateTypography)( - IDWriteFactory5 *This, - IDWriteTypography **typography); + HRESULT(STDMETHODCALLTYPE* CreateTypography)( + IDWriteFactory5* This, + IDWriteTypography** typography); - HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( - IDWriteFactory5 *This, - IDWriteGdiInterop **gdi_interop); + HRESULT(STDMETHODCALLTYPE* GetGdiInterop)( + IDWriteFactory5* This, + IDWriteGdiInterop** gdi_interop); - HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( - IDWriteFactory5 *This, - const WCHAR *string, - UINT32 len, - IDWriteTextFormat *format, - FLOAT max_width, - FLOAT max_height, - IDWriteTextLayout **layout); + HRESULT(STDMETHODCALLTYPE* CreateTextLayout)( + IDWriteFactory5* This, + const WCHAR* string, + UINT32 len, + IDWriteTextFormat* format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout** layout); - HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( - IDWriteFactory5 *This, - const WCHAR *string, - UINT32 len, - IDWriteTextFormat *format, - FLOAT layout_width, - FLOAT layout_height, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - IDWriteTextLayout **layout); + HRESULT(STDMETHODCALLTYPE* CreateGdiCompatibleTextLayout)( + IDWriteFactory5* This, + const WCHAR* string, + UINT32 len, + IDWriteTextFormat* format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout** layout); - HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( - IDWriteFactory5 *This, - IDWriteTextFormat *format, - IDWriteInlineObject **trimming_sign); + HRESULT(STDMETHODCALLTYPE* CreateEllipsisTrimmingSign)( + IDWriteFactory5* This, + IDWriteTextFormat* format, + IDWriteInlineObject** trimming_sign); - HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( - IDWriteFactory5 *This, - IDWriteTextAnalyzer **analyzer); + HRESULT(STDMETHODCALLTYPE* CreateTextAnalyzer)( + IDWriteFactory5* This, + IDWriteTextAnalyzer** analyzer); - HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( - IDWriteFactory5 *This, - DWRITE_NUMBER_SUBSTITUTION_METHOD method, - const WCHAR *locale, - WINBOOL ignore_user_override, - IDWriteNumberSubstitution **substitution); + HRESULT(STDMETHODCALLTYPE* CreateNumberSubstitution)( + IDWriteFactory5* This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR* locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution** substitution); - HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( - IDWriteFactory5 *This, - const DWRITE_GLYPH_RUN *glyph_run, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - FLOAT baseline_x, - FLOAT baseline_y, - IDWriteGlyphRunAnalysis **analysis); + HRESULT(STDMETHODCALLTYPE* CreateGlyphRunAnalysis)( + IDWriteFactory5* This, + const DWRITE_GLYPH_RUN* glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis** analysis); - /*** IDWriteFactory1 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( - IDWriteFactory5 *This, - IDWriteFontCollection **collection, - WINBOOL check_for_updates); + /*** IDWriteFactory1 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetEudcFontCollection)( + IDWriteFactory5* This, + IDWriteFontCollection** collection, + WINBOOL check_for_updates); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( - IDWriteFactory5 *This, - FLOAT gamma, - FLOAT enhcontrast, - FLOAT enhcontrast_grayscale, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams1 **params); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory1_CreateCustomRenderingParams)( + IDWriteFactory5* This, + FLOAT gamma, + FLOAT enhcontrast, + FLOAT enhcontrast_grayscale, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams1** params); - /*** IDWriteFactory2 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)( - IDWriteFactory5 *This, - IDWriteFontFallback **fallback); + /*** IDWriteFactory2 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetSystemFontFallback)( + IDWriteFactory5* This, + IDWriteFontFallback** fallback); - HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)( - IDWriteFactory5 *This, - IDWriteFontFallbackBuilder **fallbackbuilder); + HRESULT(STDMETHODCALLTYPE* CreateFontFallbackBuilder)( + IDWriteFactory5* This, + IDWriteFontFallbackBuilder** fallbackbuilder); - HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)( - IDWriteFactory5 *This, - FLOAT originX, - FLOAT originY, - const DWRITE_GLYPH_RUN *run, - const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, - DWRITE_MEASURING_MODE mode, - const DWRITE_MATRIX *transform, - UINT32 palette_index, - IDWriteColorGlyphRunEnumerator **colorlayers); + HRESULT(STDMETHODCALLTYPE* TranslateColorGlyphRun)( + IDWriteFactory5* This, + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN* run, + const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX* transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator** colorlayers); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)( - IDWriteFactory5 *This, - FLOAT gamma, - FLOAT contrast, - FLOAT grayscalecontrast, - FLOAT cleartypeLevel, - DWRITE_PIXEL_GEOMETRY pixelGeometry, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_GRID_FIT_MODE gridFitMode, - IDWriteRenderingParams2 **params); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateCustomRenderingParams)( + IDWriteFactory5* This, + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2** params); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)( - IDWriteFactory5 *This, - const DWRITE_GLYPH_RUN *run, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_MEASURING_MODE measuringMode, - DWRITE_GRID_FIT_MODE gridFitMode, - DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, - FLOAT originX, - FLOAT originY, - IDWriteGlyphRunAnalysis **analysis); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateGlyphRunAnalysis)( + IDWriteFactory5* This, + const DWRITE_GLYPH_RUN* run, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis** analysis); - /*** IDWriteFactory3 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)( - IDWriteFactory5 *This, - const DWRITE_GLYPH_RUN *run, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, - FLOAT origin_x, - FLOAT origin_y, - IDWriteGlyphRunAnalysis **analysis); + /*** IDWriteFactory3 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateGlyphRunAnalysis)( + IDWriteFactory5* This, + const DWRITE_GLYPH_RUN* run, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, + FLOAT origin_x, + FLOAT origin_y, + IDWriteGlyphRunAnalysis** analysis); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)( - IDWriteFactory5 *This, - FLOAT gamma, - FLOAT enhanced_contrast, - FLOAT grayscale_enhanced_contrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY pixel_geometry, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - IDWriteRenderingParams3 **params); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateCustomRenderingParams)( + IDWriteFactory5* This, + FLOAT gamma, + FLOAT enhanced_contrast, + FLOAT grayscale_enhanced_contrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY pixel_geometry, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + IDWriteRenderingParams3** params); - HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)( - IDWriteFactory5 *This, - IDWriteFontFile *file, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference **reference); + HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference_)( + IDWriteFactory5* This, + IDWriteFontFile* file, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference** reference); - HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)( - IDWriteFactory5 *This, - const WCHAR *path, - const FILETIME *writetime, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference **reference); + HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference)( + IDWriteFactory5* This, + const WCHAR* path, + const FILETIME* writetime, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference** reference); - HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)( - IDWriteFactory5 *This, - IDWriteFontSet **fontset); + HRESULT(STDMETHODCALLTYPE* GetSystemFontSet)( + IDWriteFactory5* This, + IDWriteFontSet** fontset); - HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)( - IDWriteFactory5 *This, - IDWriteFontSetBuilder **builder); + HRESULT(STDMETHODCALLTYPE* CreateFontSetBuilder)( + IDWriteFactory5* This, + IDWriteFontSetBuilder** builder); - HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)( - IDWriteFactory5 *This, - IDWriteFontSet *fontset, - IDWriteFontCollection1 **collection); + HRESULT(STDMETHODCALLTYPE* CreateFontCollectionFromFontSet)( + IDWriteFactory5* This, + IDWriteFontSet* fontset, + IDWriteFontCollection1** collection); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)( - IDWriteFactory5 *This, - WINBOOL include_downloadable, - IDWriteFontCollection1 **collection, - WINBOOL check_for_updates); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_GetSystemFontCollection)( + IDWriteFactory5* This, + WINBOOL include_downloadable, + IDWriteFontCollection1** collection, + WINBOOL check_for_updates); - HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)( - IDWriteFactory5 *This, - IDWriteFontDownloadQueue **queue); + HRESULT(STDMETHODCALLTYPE* GetFontDownloadQueue)( + IDWriteFactory5* This, + IDWriteFontDownloadQueue** queue); - /*** IDWriteFactory4 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)( - IDWriteFactory5 *This, - D2D1_POINT_2F baseline_origin, - const DWRITE_GLYPH_RUN *run, - const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc, - DWRITE_GLYPH_IMAGE_FORMATS desired_formats, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_MATRIX *transform, - UINT32 palette, - IDWriteColorGlyphRunEnumerator1 **layers); + /*** IDWriteFactory4 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFactory4_TranslateColorGlyphRun)( + IDWriteFactory5* This, + D2D1_POINT_2F baseline_origin, + const DWRITE_GLYPH_RUN* run, + const DWRITE_GLYPH_RUN_DESCRIPTION* run_desc, + DWRITE_GLYPH_IMAGE_FORMATS desired_formats, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX* transform, + UINT32 palette, + IDWriteColorGlyphRunEnumerator1** layers); - HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)( - IDWriteFactory5 *This, - const DWRITE_GLYPH_RUN *run, - D2D1_POINT_2F baseline_origin, - D2D1_POINT_2F *origins); + HRESULT(STDMETHODCALLTYPE* ComputeGlyphOrigins_)( + IDWriteFactory5* This, + const DWRITE_GLYPH_RUN* run, + D2D1_POINT_2F baseline_origin, + D2D1_POINT_2F* origins); - HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)( - IDWriteFactory5 *This, - const DWRITE_GLYPH_RUN *run, - DWRITE_MEASURING_MODE measuring_mode, - D2D1_POINT_2F baseline_origin, - const DWRITE_MATRIX *transform, - D2D1_POINT_2F *origins); + HRESULT(STDMETHODCALLTYPE* ComputeGlyphOrigins)( + IDWriteFactory5* This, + const DWRITE_GLYPH_RUN* run, + DWRITE_MEASURING_MODE measuring_mode, + D2D1_POINT_2F baseline_origin, + const DWRITE_MATRIX* transform, + D2D1_POINT_2F* origins); - /*** IDWriteFactory5 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)( - IDWriteFactory5 *This, - IDWriteFontSetBuilder1 **fontset_builder); + /*** IDWriteFactory5 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFactory5_CreateFontSetBuilder)( + IDWriteFactory5* This, + IDWriteFontSetBuilder1** fontset_builder); - HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)( - IDWriteFactory5 *This, - IDWriteInMemoryFontFileLoader **loader); + HRESULT(STDMETHODCALLTYPE* CreateInMemoryFontFileLoader)( + IDWriteFactory5* This, + IDWriteInMemoryFontFileLoader** loader); - HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)( - IDWriteFactory5 *This, - const WCHAR *referrer_url, - const WCHAR *extra_headers, - IDWriteRemoteFontFileLoader **loader); + HRESULT(STDMETHODCALLTYPE* CreateHttpFontFileLoader)( + IDWriteFactory5* This, + const WCHAR* referrer_url, + const WCHAR* extra_headers, + IDWriteRemoteFontFileLoader** loader); - DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)( - IDWriteFactory5 *This, - const void *data, - UINT32 data_size); + DWRITE_CONTAINER_TYPE(STDMETHODCALLTYPE* AnalyzeContainerType)( + IDWriteFactory5* This, + const void* data, + UINT32 data_size); - HRESULT (STDMETHODCALLTYPE *UnpackFontFile)( - IDWriteFactory5 *This, - DWRITE_CONTAINER_TYPE container_type, - const void *data, - UINT32 data_size, - IDWriteFontFileStream **stream); + HRESULT(STDMETHODCALLTYPE* UnpackFontFile)( + IDWriteFactory5* This, + DWRITE_CONTAINER_TYPE container_type, + const void* data, + UINT32 data_size, + IDWriteFontFileStream** stream); - END_INTERFACE + END_INTERFACE } IDWriteFactory5Vtbl; interface IDWriteFactory5 { - CONST_VTBL IDWriteFactory5Vtbl* lpVtbl; + CONST_VTBL IDWriteFactory5Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFactory5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory5_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFactory5_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFactory5_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFactory methods ***/ -#define IDWriteFactory5_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) -#define IDWriteFactory5_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) -#define IDWriteFactory5_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) -#define IDWriteFactory5_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) -#define IDWriteFactory5_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) -#define IDWriteFactory5_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) -#define IDWriteFactory5_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) -#define IDWriteFactory5_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) -#define IDWriteFactory5_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) -#define IDWriteFactory5_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) -#define IDWriteFactory5_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) -#define IDWriteFactory5_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) -#define IDWriteFactory5_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) -#define IDWriteFactory5_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) -#define IDWriteFactory5_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) -#define IDWriteFactory5_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) -#define IDWriteFactory5_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) -#define IDWriteFactory5_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +#define IDWriteFactory5_CreateCustomFontCollection(This, loader, key, key_size, collection) (This)->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection) +#define IDWriteFactory5_RegisterFontCollectionLoader(This, loader) (This)->lpVtbl->RegisterFontCollectionLoader(This, loader) +#define IDWriteFactory5_UnregisterFontCollectionLoader(This, loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This, loader) +#define IDWriteFactory5_CreateFontFileReference(This, path, writetime, font_file) (This)->lpVtbl->CreateFontFileReference(This, path, writetime, font_file) +#define IDWriteFactory5_CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) (This)->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) +#define IDWriteFactory5_CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) (This)->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) +#define IDWriteFactory5_CreateRenderingParams(This, params) (This)->lpVtbl->CreateRenderingParams(This, params) +#define IDWriteFactory5_CreateMonitorRenderingParams(This, monitor, params) (This)->lpVtbl->CreateMonitorRenderingParams(This, monitor, params) +#define IDWriteFactory5_RegisterFontFileLoader(This, loader) (This)->lpVtbl->RegisterFontFileLoader(This, loader) +#define IDWriteFactory5_UnregisterFontFileLoader(This, loader) (This)->lpVtbl->UnregisterFontFileLoader(This, loader) +#define IDWriteFactory5_CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format) (This)->lpVtbl->CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format) +#define IDWriteFactory5_CreateTypography(This, typography) (This)->lpVtbl->CreateTypography(This, typography) +#define IDWriteFactory5_GetGdiInterop(This, gdi_interop) (This)->lpVtbl->GetGdiInterop(This, gdi_interop) +#define IDWriteFactory5_CreateTextLayout(This, string, len, format, max_width, max_height, layout) (This)->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout) +#define IDWriteFactory5_CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) +#define IDWriteFactory5_CreateEllipsisTrimmingSign(This, format, trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign) +#define IDWriteFactory5_CreateTextAnalyzer(This, analyzer) (This)->lpVtbl->CreateTextAnalyzer(This, analyzer) +#define IDWriteFactory5_CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) (This)->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) /*** IDWriteFactory1 methods ***/ -#define IDWriteFactory5_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) +#define IDWriteFactory5_GetEudcFontCollection(This, collection, check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates) /*** IDWriteFactory2 methods ***/ -#define IDWriteFactory5_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback) -#define IDWriteFactory5_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder) +#define IDWriteFactory5_GetSystemFontFallback(This, fallback) (This)->lpVtbl->GetSystemFontFallback(This, fallback) +#define IDWriteFactory5_CreateFontFallbackBuilder(This, fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder) /*** IDWriteFactory3 methods ***/ -#define IDWriteFactory5_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) -#define IDWriteFactory5_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) -#define IDWriteFactory5_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference) -#define IDWriteFactory5_CreateFontFaceReference(This,path,writetime,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference) -#define IDWriteFactory5_GetSystemFontSet(This,fontset) (This)->lpVtbl->GetSystemFontSet(This,fontset) -#define IDWriteFactory5_CreateFontCollectionFromFontSet(This,fontset,collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection) -#define IDWriteFactory5_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) -#define IDWriteFactory5_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue) +#define IDWriteFactory5_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) +#define IDWriteFactory5_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) +#define IDWriteFactory5_CreateFontFaceReference_(This, file, index, simulations, reference) (This)->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference) +#define IDWriteFactory5_CreateFontFaceReference(This, path, writetime, index, simulations, reference) (This)->lpVtbl->CreateFontFaceReference(This, path, writetime, index, simulations, reference) +#define IDWriteFactory5_GetSystemFontSet(This, fontset) (This)->lpVtbl->GetSystemFontSet(This, fontset) +#define IDWriteFactory5_CreateFontCollectionFromFontSet(This, fontset, collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This, fontset, collection) +#define IDWriteFactory5_GetSystemFontCollection(This, include_downloadable, collection, check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This, include_downloadable, collection, check_for_updates) +#define IDWriteFactory5_GetFontDownloadQueue(This, queue) (This)->lpVtbl->GetFontDownloadQueue(This, queue) /*** IDWriteFactory4 methods ***/ -#define IDWriteFactory5_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) -#define IDWriteFactory5_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins) -#define IDWriteFactory5_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) +#define IDWriteFactory5_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers) +#define IDWriteFactory5_ComputeGlyphOrigins_(This, run, baseline_origin, origins) (This)->lpVtbl->ComputeGlyphOrigins_(This, run, baseline_origin, origins) +#define IDWriteFactory5_ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins) (This)->lpVtbl->ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins) /*** IDWriteFactory5 methods ***/ -#define IDWriteFactory5_CreateFontSetBuilder(This,fontset_builder) (This)->lpVtbl->IDWriteFactory5_CreateFontSetBuilder(This,fontset_builder) -#define IDWriteFactory5_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader) -#define IDWriteFactory5_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) -#define IDWriteFactory5_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size) -#define IDWriteFactory5_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream) +#define IDWriteFactory5_CreateFontSetBuilder(This, fontset_builder) (This)->lpVtbl->IDWriteFactory5_CreateFontSetBuilder(This, fontset_builder) +#define IDWriteFactory5_CreateInMemoryFontFileLoader(This, loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This, loader) +#define IDWriteFactory5_CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader) (This)->lpVtbl->CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader) +#define IDWriteFactory5_AnalyzeContainerType(This, data, data_size) (This)->lpVtbl->AnalyzeContainerType(This, data, data_size) +#define IDWriteFactory5_UnpackFontFile(This, container_type, data, data_size, stream) (This)->lpVtbl->UnpackFontFile(This, container_type, data, data_size, stream) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFactory5_QueryInterface(IDWriteFactory5* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFactory5_QueryInterface(IDWriteFactory5* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFactory5_AddRef(IDWriteFactory5* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFactory5_Release(IDWriteFactory5* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFactory methods ***/ -static inline HRESULT IDWriteFactory5_CreateCustomFontCollection(IDWriteFactory5* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { - return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +static inline HRESULT IDWriteFactory5_CreateCustomFontCollection(IDWriteFactory5* This, IDWriteFontCollectionLoader* loader, const void* key, UINT32 key_size, IDWriteFontCollection** collection) { + return This->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection); } -static inline HRESULT IDWriteFactory5_RegisterFontCollectionLoader(IDWriteFactory5* This,IDWriteFontCollectionLoader *loader) { - return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +static inline HRESULT IDWriteFactory5_RegisterFontCollectionLoader(IDWriteFactory5* This, IDWriteFontCollectionLoader* loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This, loader); } -static inline HRESULT IDWriteFactory5_UnregisterFontCollectionLoader(IDWriteFactory5* This,IDWriteFontCollectionLoader *loader) { - return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +static inline HRESULT IDWriteFactory5_UnregisterFontCollectionLoader(IDWriteFactory5* This, IDWriteFontCollectionLoader* loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This, loader); } -static inline HRESULT IDWriteFactory5_CreateFontFileReference(IDWriteFactory5* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { - return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +static inline HRESULT IDWriteFactory5_CreateFontFileReference(IDWriteFactory5* This, const WCHAR* path, const FILETIME* writetime, IDWriteFontFile** font_file) { + return This->lpVtbl->CreateFontFileReference(This, path, writetime, font_file); } -static inline HRESULT IDWriteFactory5_CreateCustomFontFileReference(IDWriteFactory5* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { - return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +static inline HRESULT IDWriteFactory5_CreateCustomFontFileReference(IDWriteFactory5* This, const void* reference_key, UINT32 key_size, IDWriteFontFileLoader* loader, IDWriteFontFile** font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file); } -static inline HRESULT IDWriteFactory5_CreateFontFace(IDWriteFactory5* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { - return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +static inline HRESULT IDWriteFactory5_CreateFontFace(IDWriteFactory5* This, DWRITE_FONT_FACE_TYPE facetype, UINT32 files_number, IDWriteFontFile* const* font_files, UINT32 index, DWRITE_FONT_SIMULATIONS sim_flags, IDWriteFontFace** font_face) { + return This->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face); } -static inline HRESULT IDWriteFactory5_CreateRenderingParams(IDWriteFactory5* This,IDWriteRenderingParams **params) { - return This->lpVtbl->CreateRenderingParams(This,params); +static inline HRESULT IDWriteFactory5_CreateRenderingParams(IDWriteFactory5* This, IDWriteRenderingParams** params) { + return This->lpVtbl->CreateRenderingParams(This, params); } -static inline HRESULT IDWriteFactory5_CreateMonitorRenderingParams(IDWriteFactory5* This,HMONITOR monitor,IDWriteRenderingParams **params) { - return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +static inline HRESULT IDWriteFactory5_CreateMonitorRenderingParams(IDWriteFactory5* This, HMONITOR monitor, IDWriteRenderingParams** params) { + return This->lpVtbl->CreateMonitorRenderingParams(This, monitor, params); } -static inline HRESULT IDWriteFactory5_RegisterFontFileLoader(IDWriteFactory5* This,IDWriteFontFileLoader *loader) { - return This->lpVtbl->RegisterFontFileLoader(This,loader); +static inline HRESULT IDWriteFactory5_RegisterFontFileLoader(IDWriteFactory5* This, IDWriteFontFileLoader* loader) { + return This->lpVtbl->RegisterFontFileLoader(This, loader); } -static inline HRESULT IDWriteFactory5_UnregisterFontFileLoader(IDWriteFactory5* This,IDWriteFontFileLoader *loader) { - return This->lpVtbl->UnregisterFontFileLoader(This,loader); +static inline HRESULT IDWriteFactory5_UnregisterFontFileLoader(IDWriteFactory5* This, IDWriteFontFileLoader* loader) { + return This->lpVtbl->UnregisterFontFileLoader(This, loader); } -static inline HRESULT IDWriteFactory5_CreateTextFormat(IDWriteFactory5* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) { - return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format); +static inline HRESULT IDWriteFactory5_CreateTextFormat(IDWriteFactory5* This, const WCHAR* family_name, IDWriteFontCollection* collection, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STYLE style, DWRITE_FONT_STRETCH stretch, FLOAT size, const WCHAR* locale, IDWriteTextFormat** format) { + return This->lpVtbl->CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format); } -static inline HRESULT IDWriteFactory5_CreateTypography(IDWriteFactory5* This,IDWriteTypography **typography) { - return This->lpVtbl->CreateTypography(This,typography); +static inline HRESULT IDWriteFactory5_CreateTypography(IDWriteFactory5* This, IDWriteTypography** typography) { + return This->lpVtbl->CreateTypography(This, typography); } -static inline HRESULT IDWriteFactory5_GetGdiInterop(IDWriteFactory5* This,IDWriteGdiInterop **gdi_interop) { - return This->lpVtbl->GetGdiInterop(This,gdi_interop); +static inline HRESULT IDWriteFactory5_GetGdiInterop(IDWriteFactory5* This, IDWriteGdiInterop** gdi_interop) { + return This->lpVtbl->GetGdiInterop(This, gdi_interop); } -static inline HRESULT IDWriteFactory5_CreateTextLayout(IDWriteFactory5* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { - return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +static inline HRESULT IDWriteFactory5_CreateTextLayout(IDWriteFactory5* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT max_width, FLOAT max_height, IDWriteTextLayout** layout) { + return This->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout); } -static inline HRESULT IDWriteFactory5_CreateGdiCompatibleTextLayout(IDWriteFactory5* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { - return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +static inline HRESULT IDWriteFactory5_CreateGdiCompatibleTextLayout(IDWriteFactory5* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT layout_width, FLOAT layout_height, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, IDWriteTextLayout** layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout); } -static inline HRESULT IDWriteFactory5_CreateEllipsisTrimmingSign(IDWriteFactory5* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { - return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +static inline HRESULT IDWriteFactory5_CreateEllipsisTrimmingSign(IDWriteFactory5* This, IDWriteTextFormat* format, IDWriteInlineObject** trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign); } -static inline HRESULT IDWriteFactory5_CreateTextAnalyzer(IDWriteFactory5* This,IDWriteTextAnalyzer **analyzer) { - return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +static inline HRESULT IDWriteFactory5_CreateTextAnalyzer(IDWriteFactory5* This, IDWriteTextAnalyzer** analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This, analyzer); } -static inline HRESULT IDWriteFactory5_CreateNumberSubstitution(IDWriteFactory5* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { - return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +static inline HRESULT IDWriteFactory5_CreateNumberSubstitution(IDWriteFactory5* This, DWRITE_NUMBER_SUBSTITUTION_METHOD method, const WCHAR* locale, WINBOOL ignore_user_override, IDWriteNumberSubstitution** substitution) { + return This->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution); } /*** IDWriteFactory1 methods ***/ -static inline HRESULT IDWriteFactory5_GetEudcFontCollection(IDWriteFactory5* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { - return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); +static inline HRESULT IDWriteFactory5_GetEudcFontCollection(IDWriteFactory5* This, IDWriteFontCollection** collection, WINBOOL check_for_updates) { + return This->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates); } /*** IDWriteFactory2 methods ***/ -static inline HRESULT IDWriteFactory5_GetSystemFontFallback(IDWriteFactory5* This,IDWriteFontFallback **fallback) { - return This->lpVtbl->GetSystemFontFallback(This,fallback); +static inline HRESULT IDWriteFactory5_GetSystemFontFallback(IDWriteFactory5* This, IDWriteFontFallback** fallback) { + return This->lpVtbl->GetSystemFontFallback(This, fallback); } -static inline HRESULT IDWriteFactory5_CreateFontFallbackBuilder(IDWriteFactory5* This,IDWriteFontFallbackBuilder **fallbackbuilder) { - return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); +static inline HRESULT IDWriteFactory5_CreateFontFallbackBuilder(IDWriteFactory5* This, IDWriteFontFallbackBuilder** fallbackbuilder) { + return This->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder); } /*** IDWriteFactory3 methods ***/ -static inline HRESULT IDWriteFactory5_CreateGlyphRunAnalysis(IDWriteFactory5* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) { - return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis); +static inline HRESULT IDWriteFactory5_CreateGlyphRunAnalysis(IDWriteFactory5* This, const DWRITE_GLYPH_RUN* run, const DWRITE_MATRIX* transform, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_MEASURING_MODE measuring_mode, DWRITE_GRID_FIT_MODE gridfit_mode, DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, FLOAT origin_x, FLOAT origin_y, IDWriteGlyphRunAnalysis** analysis) { + return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis); } -static inline HRESULT IDWriteFactory5_CreateCustomRenderingParams(IDWriteFactory5* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) { - return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params); +static inline HRESULT IDWriteFactory5_CreateCustomRenderingParams(IDWriteFactory5* This, FLOAT gamma, FLOAT enhanced_contrast, FLOAT grayscale_enhanced_contrast, FLOAT cleartype_level, DWRITE_PIXEL_GEOMETRY pixel_geometry, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_GRID_FIT_MODE gridfit_mode, IDWriteRenderingParams3** params) { + return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params); } -static inline HRESULT IDWriteFactory5_CreateFontFaceReference_(IDWriteFactory5* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { - return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference); +static inline HRESULT IDWriteFactory5_CreateFontFaceReference_(IDWriteFactory5* This, IDWriteFontFile* file, UINT32 index, DWRITE_FONT_SIMULATIONS simulations, IDWriteFontFaceReference** reference) { + return This->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference); } -static inline HRESULT IDWriteFactory5_CreateFontFaceReference(IDWriteFactory5* This,const WCHAR *path,const FILETIME *writetime,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { - return This->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference); +static inline HRESULT IDWriteFactory5_CreateFontFaceReference(IDWriteFactory5* This, const WCHAR* path, const FILETIME* writetime, UINT32 index, DWRITE_FONT_SIMULATIONS simulations, IDWriteFontFaceReference** reference) { + return This->lpVtbl->CreateFontFaceReference(This, path, writetime, index, simulations, reference); } -static inline HRESULT IDWriteFactory5_GetSystemFontSet(IDWriteFactory5* This,IDWriteFontSet **fontset) { - return This->lpVtbl->GetSystemFontSet(This,fontset); +static inline HRESULT IDWriteFactory5_GetSystemFontSet(IDWriteFactory5* This, IDWriteFontSet** fontset) { + return This->lpVtbl->GetSystemFontSet(This, fontset); } -static inline HRESULT IDWriteFactory5_CreateFontCollectionFromFontSet(IDWriteFactory5* This,IDWriteFontSet *fontset,IDWriteFontCollection1 **collection) { - return This->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection); +static inline HRESULT IDWriteFactory5_CreateFontCollectionFromFontSet(IDWriteFactory5* This, IDWriteFontSet* fontset, IDWriteFontCollection1** collection) { + return This->lpVtbl->CreateFontCollectionFromFontSet(This, fontset, collection); } -static inline HRESULT IDWriteFactory5_GetSystemFontCollection(IDWriteFactory5* This,WINBOOL include_downloadable,IDWriteFontCollection1 **collection,WINBOOL check_for_updates) { - return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates); +static inline HRESULT IDWriteFactory5_GetSystemFontCollection(IDWriteFactory5* This, WINBOOL include_downloadable, IDWriteFontCollection1** collection, WINBOOL check_for_updates) { + return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This, include_downloadable, collection, check_for_updates); } -static inline HRESULT IDWriteFactory5_GetFontDownloadQueue(IDWriteFactory5* This,IDWriteFontDownloadQueue **queue) { - return This->lpVtbl->GetFontDownloadQueue(This,queue); +static inline HRESULT IDWriteFactory5_GetFontDownloadQueue(IDWriteFactory5* This, IDWriteFontDownloadQueue** queue) { + return This->lpVtbl->GetFontDownloadQueue(This, queue); } /*** IDWriteFactory4 methods ***/ -static inline HRESULT IDWriteFactory5_TranslateColorGlyphRun(IDWriteFactory5* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) { - return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers); +static inline HRESULT IDWriteFactory5_TranslateColorGlyphRun(IDWriteFactory5* This, D2D1_POINT_2F baseline_origin, const DWRITE_GLYPH_RUN* run, const DWRITE_GLYPH_RUN_DESCRIPTION* run_desc, DWRITE_GLYPH_IMAGE_FORMATS desired_formats, DWRITE_MEASURING_MODE measuring_mode, const DWRITE_MATRIX* transform, UINT32 palette, IDWriteColorGlyphRunEnumerator1** layers) { + return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers); } -static inline HRESULT IDWriteFactory5_ComputeGlyphOrigins_(IDWriteFactory5* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) { - return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins); +static inline HRESULT IDWriteFactory5_ComputeGlyphOrigins_(IDWriteFactory5* This, const DWRITE_GLYPH_RUN* run, D2D1_POINT_2F baseline_origin, D2D1_POINT_2F* origins) { + return This->lpVtbl->ComputeGlyphOrigins_(This, run, baseline_origin, origins); } -static inline HRESULT IDWriteFactory5_ComputeGlyphOrigins(IDWriteFactory5* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) { - return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins); +static inline HRESULT IDWriteFactory5_ComputeGlyphOrigins(IDWriteFactory5* This, const DWRITE_GLYPH_RUN* run, DWRITE_MEASURING_MODE measuring_mode, D2D1_POINT_2F baseline_origin, const DWRITE_MATRIX* transform, D2D1_POINT_2F* origins) { + return This->lpVtbl->ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins); } /*** IDWriteFactory5 methods ***/ -static inline HRESULT IDWriteFactory5_CreateFontSetBuilder(IDWriteFactory5* This,IDWriteFontSetBuilder1 **fontset_builder) { - return This->lpVtbl->IDWriteFactory5_CreateFontSetBuilder(This,fontset_builder); +static inline HRESULT IDWriteFactory5_CreateFontSetBuilder(IDWriteFactory5* This, IDWriteFontSetBuilder1** fontset_builder) { + return This->lpVtbl->IDWriteFactory5_CreateFontSetBuilder(This, fontset_builder); } -static inline HRESULT IDWriteFactory5_CreateInMemoryFontFileLoader(IDWriteFactory5* This,IDWriteInMemoryFontFileLoader **loader) { - return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader); +static inline HRESULT IDWriteFactory5_CreateInMemoryFontFileLoader(IDWriteFactory5* This, IDWriteInMemoryFontFileLoader** loader) { + return This->lpVtbl->CreateInMemoryFontFileLoader(This, loader); } -static inline HRESULT IDWriteFactory5_CreateHttpFontFileLoader(IDWriteFactory5* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) { - return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader); +static inline HRESULT IDWriteFactory5_CreateHttpFontFileLoader(IDWriteFactory5* This, const WCHAR* referrer_url, const WCHAR* extra_headers, IDWriteRemoteFontFileLoader** loader) { + return This->lpVtbl->CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader); } -static inline DWRITE_CONTAINER_TYPE IDWriteFactory5_AnalyzeContainerType(IDWriteFactory5* This,const void *data,UINT32 data_size) { - return This->lpVtbl->AnalyzeContainerType(This,data,data_size); +static inline DWRITE_CONTAINER_TYPE IDWriteFactory5_AnalyzeContainerType(IDWriteFactory5* This, const void* data, UINT32 data_size) { + return This->lpVtbl->AnalyzeContainerType(This, data, data_size); } -static inline HRESULT IDWriteFactory5_UnpackFontFile(IDWriteFactory5* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) { - return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream); +static inline HRESULT IDWriteFactory5_UnpackFontFile(IDWriteFactory5* This, DWRITE_CONTAINER_TYPE container_type, const void* data, UINT32 data_size, IDWriteFontFileStream** stream) { + return This->lpVtbl->UnpackFontFile(This, container_type, data, data_size, stream); } #endif #endif #endif - -#endif /* __IDWriteFactory5_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFactory5_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFactory6 interface @@ -12926,624 +12761,621 @@ static inline HRESULT IDWriteFactory5_UnpackFontFile(IDWriteFactory5* This,DWRIT #ifndef __IDWriteFactory6_INTERFACE_DEFINED__ #define __IDWriteFactory6_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFactory6, 0xf3744d80, 0x21f7, 0x42eb, 0xb3,0x5d, 0x99,0x5b,0xc7,0x2f,0xc2,0x23); +DEFINE_GUID(IID_IDWriteFactory6, 0xf3744d80, 0x21f7, 0x42eb, 0xb3, 0x5d, 0x99, 0x5b, 0xc7, 0x2f, 0xc2, 0x23); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("f3744d80-21f7-42eb-b35d-995bc72fc223") -IDWriteFactory6 : public IDWriteFactory5 -{ - virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference( - IDWriteFontFile *file, - UINT32 face_index, - DWRITE_FONT_SIMULATIONS simulations, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_axis, - IDWriteFontFaceReference1 **face_ref) = 0; +IDWriteFactory6 : public IDWriteFactory5 { + virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference( + IDWriteFontFile * file, + UINT32 face_index, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_axis, + IDWriteFontFaceReference1** face_ref) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateFontResource( - IDWriteFontFile *file, - UINT32 face_index, - IDWriteFontResource **resource) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateFontResource( + IDWriteFontFile * file, + UINT32 face_index, + IDWriteFontResource * *resource) = 0; - virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet( - WINBOOL include_downloadable, - IDWriteFontSet1 **fontset) = 0; + virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet( + WINBOOL include_downloadable, + IDWriteFontSet1 * *fontset) = 0; - virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection( - WINBOOL include_downloadable, - DWRITE_FONT_FAMILY_MODEL family_model, - IDWriteFontCollection2 **collection) = 0; + virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection( + WINBOOL include_downloadable, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2 * *collection) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateFontCollectionFromFontSet( - IDWriteFontSet *fontset, - DWRITE_FONT_FAMILY_MODEL family_model, - IDWriteFontCollection2 **collection) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateFontCollectionFromFontSet( + IDWriteFontSet * fontset, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2 * *collection) = 0; - virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder( - IDWriteFontSetBuilder2 **builder) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateTextFormat( - const WCHAR *familyname, - IDWriteFontCollection *collection, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_axis, - FLOAT fontsize, - const WCHAR *localename, - IDWriteTextFormat3 **format) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder( + IDWriteFontSetBuilder2 * *builder) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateTextFormat( + const WCHAR* familyname, + IDWriteFontCollection* collection, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_axis, + FLOAT fontsize, + const WCHAR* localename, + IDWriteTextFormat3** format) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFactory6, 0xf3744d80, 0x21f7, 0x42eb, 0xb3,0x5d, 0x99,0x5b,0xc7,0x2f,0xc2,0x23) +__CRT_UUID_DECL(IDWriteFactory6, 0xf3744d80, 0x21f7, 0x42eb, 0xb3, 0x5d, 0x99, 0x5b, 0xc7, 0x2f, 0xc2, 0x23) #endif #else typedef struct IDWriteFactory6Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFactory6 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFactory6* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFactory6 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFactory6* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFactory6 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFactory6* This); - /*** IDWriteFactory methods ***/ - HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( - IDWriteFactory6 *This, - IDWriteFontCollection **collection, - WINBOOL check_for_updates); + /*** IDWriteFactory methods ***/ + HRESULT(STDMETHODCALLTYPE* GetSystemFontCollection)( + IDWriteFactory6* This, + IDWriteFontCollection** collection, + WINBOOL check_for_updates); - HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( - IDWriteFactory6 *This, - IDWriteFontCollectionLoader *loader, - const void *key, - UINT32 key_size, - IDWriteFontCollection **collection); + HRESULT(STDMETHODCALLTYPE* CreateCustomFontCollection)( + IDWriteFactory6* This, + IDWriteFontCollectionLoader* loader, + const void* key, + UINT32 key_size, + IDWriteFontCollection** collection); - HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( - IDWriteFactory6 *This, - IDWriteFontCollectionLoader *loader); + HRESULT(STDMETHODCALLTYPE* RegisterFontCollectionLoader)( + IDWriteFactory6* This, + IDWriteFontCollectionLoader* loader); - HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( - IDWriteFactory6 *This, - IDWriteFontCollectionLoader *loader); + HRESULT(STDMETHODCALLTYPE* UnregisterFontCollectionLoader)( + IDWriteFactory6* This, + IDWriteFontCollectionLoader* loader); - HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( - IDWriteFactory6 *This, - const WCHAR *path, - const FILETIME *writetime, - IDWriteFontFile **font_file); + HRESULT(STDMETHODCALLTYPE* CreateFontFileReference)( + IDWriteFactory6* This, + const WCHAR* path, + const FILETIME* writetime, + IDWriteFontFile** font_file); - HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( - IDWriteFactory6 *This, - const void *reference_key, - UINT32 key_size, - IDWriteFontFileLoader *loader, - IDWriteFontFile **font_file); + HRESULT(STDMETHODCALLTYPE* CreateCustomFontFileReference)( + IDWriteFactory6* This, + const void* reference_key, + UINT32 key_size, + IDWriteFontFileLoader* loader, + IDWriteFontFile** font_file); - HRESULT (STDMETHODCALLTYPE *CreateFontFace)( - IDWriteFactory6 *This, - DWRITE_FONT_FACE_TYPE facetype, - UINT32 files_number, - IDWriteFontFile *const *font_files, - UINT32 index, - DWRITE_FONT_SIMULATIONS sim_flags, - IDWriteFontFace **font_face); + HRESULT(STDMETHODCALLTYPE* CreateFontFace)( + IDWriteFactory6* This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile* const* font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace** font_face); - HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( - IDWriteFactory6 *This, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateRenderingParams)( + IDWriteFactory6* This, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( - IDWriteFactory6 *This, - HMONITOR monitor, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateMonitorRenderingParams)( + IDWriteFactory6* This, + HMONITOR monitor, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( - IDWriteFactory6 *This, - FLOAT gamma, - FLOAT enhancedContrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateCustomRenderingParams)( + IDWriteFactory6* This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( - IDWriteFactory6 *This, - IDWriteFontFileLoader *loader); + HRESULT(STDMETHODCALLTYPE* RegisterFontFileLoader)( + IDWriteFactory6* This, + IDWriteFontFileLoader* loader); - HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( - IDWriteFactory6 *This, - IDWriteFontFileLoader *loader); + HRESULT(STDMETHODCALLTYPE* UnregisterFontFileLoader)( + IDWriteFactory6* This, + IDWriteFontFileLoader* loader); - HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( - IDWriteFactory6 *This, - const WCHAR *family_name, - IDWriteFontCollection *collection, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STYLE style, - DWRITE_FONT_STRETCH stretch, - FLOAT size, - const WCHAR *locale, - IDWriteTextFormat **format); + HRESULT(STDMETHODCALLTYPE* CreateTextFormat)( + IDWriteFactory6* This, + const WCHAR* family_name, + IDWriteFontCollection* collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR* locale, + IDWriteTextFormat** format); - HRESULT (STDMETHODCALLTYPE *CreateTypography)( - IDWriteFactory6 *This, - IDWriteTypography **typography); + HRESULT(STDMETHODCALLTYPE* CreateTypography)( + IDWriteFactory6* This, + IDWriteTypography** typography); - HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( - IDWriteFactory6 *This, - IDWriteGdiInterop **gdi_interop); + HRESULT(STDMETHODCALLTYPE* GetGdiInterop)( + IDWriteFactory6* This, + IDWriteGdiInterop** gdi_interop); - HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( - IDWriteFactory6 *This, - const WCHAR *string, - UINT32 len, - IDWriteTextFormat *format, - FLOAT max_width, - FLOAT max_height, - IDWriteTextLayout **layout); + HRESULT(STDMETHODCALLTYPE* CreateTextLayout)( + IDWriteFactory6* This, + const WCHAR* string, + UINT32 len, + IDWriteTextFormat* format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout** layout); - HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( - IDWriteFactory6 *This, - const WCHAR *string, - UINT32 len, - IDWriteTextFormat *format, - FLOAT layout_width, - FLOAT layout_height, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - IDWriteTextLayout **layout); + HRESULT(STDMETHODCALLTYPE* CreateGdiCompatibleTextLayout)( + IDWriteFactory6* This, + const WCHAR* string, + UINT32 len, + IDWriteTextFormat* format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout** layout); - HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( - IDWriteFactory6 *This, - IDWriteTextFormat *format, - IDWriteInlineObject **trimming_sign); + HRESULT(STDMETHODCALLTYPE* CreateEllipsisTrimmingSign)( + IDWriteFactory6* This, + IDWriteTextFormat* format, + IDWriteInlineObject** trimming_sign); - HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( - IDWriteFactory6 *This, - IDWriteTextAnalyzer **analyzer); + HRESULT(STDMETHODCALLTYPE* CreateTextAnalyzer)( + IDWriteFactory6* This, + IDWriteTextAnalyzer** analyzer); - HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( - IDWriteFactory6 *This, - DWRITE_NUMBER_SUBSTITUTION_METHOD method, - const WCHAR *locale, - WINBOOL ignore_user_override, - IDWriteNumberSubstitution **substitution); + HRESULT(STDMETHODCALLTYPE* CreateNumberSubstitution)( + IDWriteFactory6* This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR* locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution** substitution); - HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( - IDWriteFactory6 *This, - const DWRITE_GLYPH_RUN *glyph_run, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - FLOAT baseline_x, - FLOAT baseline_y, - IDWriteGlyphRunAnalysis **analysis); + HRESULT(STDMETHODCALLTYPE* CreateGlyphRunAnalysis)( + IDWriteFactory6* This, + const DWRITE_GLYPH_RUN* glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis** analysis); - /*** IDWriteFactory1 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( - IDWriteFactory6 *This, - IDWriteFontCollection **collection, - WINBOOL check_for_updates); + /*** IDWriteFactory1 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetEudcFontCollection)( + IDWriteFactory6* This, + IDWriteFontCollection** collection, + WINBOOL check_for_updates); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( - IDWriteFactory6 *This, - FLOAT gamma, - FLOAT enhcontrast, - FLOAT enhcontrast_grayscale, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams1 **params); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory1_CreateCustomRenderingParams)( + IDWriteFactory6* This, + FLOAT gamma, + FLOAT enhcontrast, + FLOAT enhcontrast_grayscale, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams1** params); - /*** IDWriteFactory2 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)( - IDWriteFactory6 *This, - IDWriteFontFallback **fallback); + /*** IDWriteFactory2 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetSystemFontFallback)( + IDWriteFactory6* This, + IDWriteFontFallback** fallback); - HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)( - IDWriteFactory6 *This, - IDWriteFontFallbackBuilder **fallbackbuilder); + HRESULT(STDMETHODCALLTYPE* CreateFontFallbackBuilder)( + IDWriteFactory6* This, + IDWriteFontFallbackBuilder** fallbackbuilder); - HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)( - IDWriteFactory6 *This, - FLOAT originX, - FLOAT originY, - const DWRITE_GLYPH_RUN *run, - const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, - DWRITE_MEASURING_MODE mode, - const DWRITE_MATRIX *transform, - UINT32 palette_index, - IDWriteColorGlyphRunEnumerator **colorlayers); + HRESULT(STDMETHODCALLTYPE* TranslateColorGlyphRun)( + IDWriteFactory6* This, + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN* run, + const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX* transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator** colorlayers); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)( - IDWriteFactory6 *This, - FLOAT gamma, - FLOAT contrast, - FLOAT grayscalecontrast, - FLOAT cleartypeLevel, - DWRITE_PIXEL_GEOMETRY pixelGeometry, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_GRID_FIT_MODE gridFitMode, - IDWriteRenderingParams2 **params); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateCustomRenderingParams)( + IDWriteFactory6* This, + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2** params); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)( - IDWriteFactory6 *This, - const DWRITE_GLYPH_RUN *run, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_MEASURING_MODE measuringMode, - DWRITE_GRID_FIT_MODE gridFitMode, - DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, - FLOAT originX, - FLOAT originY, - IDWriteGlyphRunAnalysis **analysis); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateGlyphRunAnalysis)( + IDWriteFactory6* This, + const DWRITE_GLYPH_RUN* run, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis** analysis); - /*** IDWriteFactory3 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)( - IDWriteFactory6 *This, - const DWRITE_GLYPH_RUN *run, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, - FLOAT origin_x, - FLOAT origin_y, - IDWriteGlyphRunAnalysis **analysis); + /*** IDWriteFactory3 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateGlyphRunAnalysis)( + IDWriteFactory6* This, + const DWRITE_GLYPH_RUN* run, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, + FLOAT origin_x, + FLOAT origin_y, + IDWriteGlyphRunAnalysis** analysis); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)( - IDWriteFactory6 *This, - FLOAT gamma, - FLOAT enhanced_contrast, - FLOAT grayscale_enhanced_contrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY pixel_geometry, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - IDWriteRenderingParams3 **params); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateCustomRenderingParams)( + IDWriteFactory6* This, + FLOAT gamma, + FLOAT enhanced_contrast, + FLOAT grayscale_enhanced_contrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY pixel_geometry, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + IDWriteRenderingParams3** params); - HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)( - IDWriteFactory6 *This, - IDWriteFontFile *file, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference **reference); + HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference_)( + IDWriteFactory6* This, + IDWriteFontFile* file, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference** reference); - HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)( - IDWriteFactory6 *This, - const WCHAR *path, - const FILETIME *writetime, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference **reference); + HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference)( + IDWriteFactory6* This, + const WCHAR* path, + const FILETIME* writetime, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference** reference); - HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)( - IDWriteFactory6 *This, - IDWriteFontSet **fontset); + HRESULT(STDMETHODCALLTYPE* GetSystemFontSet)( + IDWriteFactory6* This, + IDWriteFontSet** fontset); - HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)( - IDWriteFactory6 *This, - IDWriteFontSetBuilder **builder); + HRESULT(STDMETHODCALLTYPE* CreateFontSetBuilder)( + IDWriteFactory6* This, + IDWriteFontSetBuilder** builder); - HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)( - IDWriteFactory6 *This, - IDWriteFontSet *fontset, - IDWriteFontCollection1 **collection); + HRESULT(STDMETHODCALLTYPE* CreateFontCollectionFromFontSet)( + IDWriteFactory6* This, + IDWriteFontSet* fontset, + IDWriteFontCollection1** collection); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)( - IDWriteFactory6 *This, - WINBOOL include_downloadable, - IDWriteFontCollection1 **collection, - WINBOOL check_for_updates); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_GetSystemFontCollection)( + IDWriteFactory6* This, + WINBOOL include_downloadable, + IDWriteFontCollection1** collection, + WINBOOL check_for_updates); - HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)( - IDWriteFactory6 *This, - IDWriteFontDownloadQueue **queue); + HRESULT(STDMETHODCALLTYPE* GetFontDownloadQueue)( + IDWriteFactory6* This, + IDWriteFontDownloadQueue** queue); - /*** IDWriteFactory4 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)( - IDWriteFactory6 *This, - D2D1_POINT_2F baseline_origin, - const DWRITE_GLYPH_RUN *run, - const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc, - DWRITE_GLYPH_IMAGE_FORMATS desired_formats, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_MATRIX *transform, - UINT32 palette, - IDWriteColorGlyphRunEnumerator1 **layers); + /*** IDWriteFactory4 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFactory4_TranslateColorGlyphRun)( + IDWriteFactory6* This, + D2D1_POINT_2F baseline_origin, + const DWRITE_GLYPH_RUN* run, + const DWRITE_GLYPH_RUN_DESCRIPTION* run_desc, + DWRITE_GLYPH_IMAGE_FORMATS desired_formats, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX* transform, + UINT32 palette, + IDWriteColorGlyphRunEnumerator1** layers); - HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)( - IDWriteFactory6 *This, - const DWRITE_GLYPH_RUN *run, - D2D1_POINT_2F baseline_origin, - D2D1_POINT_2F *origins); + HRESULT(STDMETHODCALLTYPE* ComputeGlyphOrigins_)( + IDWriteFactory6* This, + const DWRITE_GLYPH_RUN* run, + D2D1_POINT_2F baseline_origin, + D2D1_POINT_2F* origins); - HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)( - IDWriteFactory6 *This, - const DWRITE_GLYPH_RUN *run, - DWRITE_MEASURING_MODE measuring_mode, - D2D1_POINT_2F baseline_origin, - const DWRITE_MATRIX *transform, - D2D1_POINT_2F *origins); + HRESULT(STDMETHODCALLTYPE* ComputeGlyphOrigins)( + IDWriteFactory6* This, + const DWRITE_GLYPH_RUN* run, + DWRITE_MEASURING_MODE measuring_mode, + D2D1_POINT_2F baseline_origin, + const DWRITE_MATRIX* transform, + D2D1_POINT_2F* origins); - /*** IDWriteFactory5 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)( - IDWriteFactory6 *This, - IDWriteFontSetBuilder1 **fontset_builder); + /*** IDWriteFactory5 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFactory5_CreateFontSetBuilder)( + IDWriteFactory6* This, + IDWriteFontSetBuilder1** fontset_builder); - HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)( - IDWriteFactory6 *This, - IDWriteInMemoryFontFileLoader **loader); + HRESULT(STDMETHODCALLTYPE* CreateInMemoryFontFileLoader)( + IDWriteFactory6* This, + IDWriteInMemoryFontFileLoader** loader); - HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)( - IDWriteFactory6 *This, - const WCHAR *referrer_url, - const WCHAR *extra_headers, - IDWriteRemoteFontFileLoader **loader); + HRESULT(STDMETHODCALLTYPE* CreateHttpFontFileLoader)( + IDWriteFactory6* This, + const WCHAR* referrer_url, + const WCHAR* extra_headers, + IDWriteRemoteFontFileLoader** loader); - DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)( - IDWriteFactory6 *This, - const void *data, - UINT32 data_size); + DWRITE_CONTAINER_TYPE(STDMETHODCALLTYPE* AnalyzeContainerType)( + IDWriteFactory6* This, + const void* data, + UINT32 data_size); - HRESULT (STDMETHODCALLTYPE *UnpackFontFile)( - IDWriteFactory6 *This, - DWRITE_CONTAINER_TYPE container_type, - const void *data, - UINT32 data_size, - IDWriteFontFileStream **stream); + HRESULT(STDMETHODCALLTYPE* UnpackFontFile)( + IDWriteFactory6* This, + DWRITE_CONTAINER_TYPE container_type, + const void* data, + UINT32 data_size, + IDWriteFontFileStream** stream); - /*** IDWriteFactory6 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontFaceReference)( - IDWriteFactory6 *This, - IDWriteFontFile *file, - UINT32 face_index, - DWRITE_FONT_SIMULATIONS simulations, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_axis, - IDWriteFontFaceReference1 **face_ref); + /*** IDWriteFactory6 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateFontFaceReference)( + IDWriteFactory6* This, + IDWriteFontFile* file, + UINT32 face_index, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_axis, + IDWriteFontFaceReference1** face_ref); - HRESULT (STDMETHODCALLTYPE *CreateFontResource)( - IDWriteFactory6 *This, - IDWriteFontFile *file, - UINT32 face_index, - IDWriteFontResource **resource); + HRESULT(STDMETHODCALLTYPE* CreateFontResource)( + IDWriteFactory6* This, + IDWriteFontFile* file, + UINT32 face_index, + IDWriteFontResource** resource); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontSet)( - IDWriteFactory6 *This, - WINBOOL include_downloadable, - IDWriteFontSet1 **fontset); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_GetSystemFontSet)( + IDWriteFactory6* This, + WINBOOL include_downloadable, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontCollection)( - IDWriteFactory6 *This, - WINBOOL include_downloadable, - DWRITE_FONT_FAMILY_MODEL family_model, - IDWriteFontCollection2 **collection); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_GetSystemFontCollection)( + IDWriteFactory6* This, + WINBOOL include_downloadable, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2** collection); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontCollectionFromFontSet)( - IDWriteFactory6 *This, - IDWriteFontSet *fontset, - DWRITE_FONT_FAMILY_MODEL family_model, - IDWriteFontCollection2 **collection); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateFontCollectionFromFontSet)( + IDWriteFactory6* This, + IDWriteFontSet* fontset, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2** collection); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontSetBuilder)( - IDWriteFactory6 *This, - IDWriteFontSetBuilder2 **builder); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateFontSetBuilder)( + IDWriteFactory6* This, + IDWriteFontSetBuilder2** builder); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateTextFormat)( - IDWriteFactory6 *This, - const WCHAR *familyname, - IDWriteFontCollection *collection, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_axis, - FLOAT fontsize, - const WCHAR *localename, - IDWriteTextFormat3 **format); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateTextFormat)( + IDWriteFactory6* This, + const WCHAR* familyname, + IDWriteFontCollection* collection, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_axis, + FLOAT fontsize, + const WCHAR* localename, + IDWriteTextFormat3** format); - END_INTERFACE + END_INTERFACE } IDWriteFactory6Vtbl; interface IDWriteFactory6 { - CONST_VTBL IDWriteFactory6Vtbl* lpVtbl; + CONST_VTBL IDWriteFactory6Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFactory6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory6_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFactory6_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFactory6_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFactory methods ***/ -#define IDWriteFactory6_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) -#define IDWriteFactory6_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) -#define IDWriteFactory6_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) -#define IDWriteFactory6_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) -#define IDWriteFactory6_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) -#define IDWriteFactory6_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) -#define IDWriteFactory6_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) -#define IDWriteFactory6_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) -#define IDWriteFactory6_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) -#define IDWriteFactory6_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) -#define IDWriteFactory6_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) -#define IDWriteFactory6_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) -#define IDWriteFactory6_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) -#define IDWriteFactory6_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) -#define IDWriteFactory6_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) -#define IDWriteFactory6_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) -#define IDWriteFactory6_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +#define IDWriteFactory6_CreateCustomFontCollection(This, loader, key, key_size, collection) (This)->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection) +#define IDWriteFactory6_RegisterFontCollectionLoader(This, loader) (This)->lpVtbl->RegisterFontCollectionLoader(This, loader) +#define IDWriteFactory6_UnregisterFontCollectionLoader(This, loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This, loader) +#define IDWriteFactory6_CreateFontFileReference(This, path, writetime, font_file) (This)->lpVtbl->CreateFontFileReference(This, path, writetime, font_file) +#define IDWriteFactory6_CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) (This)->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) +#define IDWriteFactory6_CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) (This)->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) +#define IDWriteFactory6_CreateRenderingParams(This, params) (This)->lpVtbl->CreateRenderingParams(This, params) +#define IDWriteFactory6_CreateMonitorRenderingParams(This, monitor, params) (This)->lpVtbl->CreateMonitorRenderingParams(This, monitor, params) +#define IDWriteFactory6_RegisterFontFileLoader(This, loader) (This)->lpVtbl->RegisterFontFileLoader(This, loader) +#define IDWriteFactory6_UnregisterFontFileLoader(This, loader) (This)->lpVtbl->UnregisterFontFileLoader(This, loader) +#define IDWriteFactory6_CreateTypography(This, typography) (This)->lpVtbl->CreateTypography(This, typography) +#define IDWriteFactory6_GetGdiInterop(This, gdi_interop) (This)->lpVtbl->GetGdiInterop(This, gdi_interop) +#define IDWriteFactory6_CreateTextLayout(This, string, len, format, max_width, max_height, layout) (This)->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout) +#define IDWriteFactory6_CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) +#define IDWriteFactory6_CreateEllipsisTrimmingSign(This, format, trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign) +#define IDWriteFactory6_CreateTextAnalyzer(This, analyzer) (This)->lpVtbl->CreateTextAnalyzer(This, analyzer) +#define IDWriteFactory6_CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) (This)->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) /*** IDWriteFactory1 methods ***/ -#define IDWriteFactory6_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) +#define IDWriteFactory6_GetEudcFontCollection(This, collection, check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates) /*** IDWriteFactory2 methods ***/ -#define IDWriteFactory6_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback) -#define IDWriteFactory6_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder) +#define IDWriteFactory6_GetSystemFontFallback(This, fallback) (This)->lpVtbl->GetSystemFontFallback(This, fallback) +#define IDWriteFactory6_CreateFontFallbackBuilder(This, fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder) /*** IDWriteFactory3 methods ***/ -#define IDWriteFactory6_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) -#define IDWriteFactory6_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) -#define IDWriteFactory6_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference) -#define IDWriteFactory6_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue) +#define IDWriteFactory6_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) +#define IDWriteFactory6_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) +#define IDWriteFactory6_CreateFontFaceReference_(This, file, index, simulations, reference) (This)->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference) +#define IDWriteFactory6_GetFontDownloadQueue(This, queue) (This)->lpVtbl->GetFontDownloadQueue(This, queue) /*** IDWriteFactory4 methods ***/ -#define IDWriteFactory6_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) -#define IDWriteFactory6_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins) -#define IDWriteFactory6_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) +#define IDWriteFactory6_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers) +#define IDWriteFactory6_ComputeGlyphOrigins_(This, run, baseline_origin, origins) (This)->lpVtbl->ComputeGlyphOrigins_(This, run, baseline_origin, origins) +#define IDWriteFactory6_ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins) (This)->lpVtbl->ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins) /*** IDWriteFactory5 methods ***/ -#define IDWriteFactory6_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader) -#define IDWriteFactory6_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) -#define IDWriteFactory6_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size) -#define IDWriteFactory6_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream) +#define IDWriteFactory6_CreateInMemoryFontFileLoader(This, loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This, loader) +#define IDWriteFactory6_CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader) (This)->lpVtbl->CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader) +#define IDWriteFactory6_AnalyzeContainerType(This, data, data_size) (This)->lpVtbl->AnalyzeContainerType(This, data, data_size) +#define IDWriteFactory6_UnpackFontFile(This, container_type, data, data_size, stream) (This)->lpVtbl->UnpackFontFile(This, container_type, data, data_size, stream) /*** IDWriteFactory6 methods ***/ -#define IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) -#define IDWriteFactory6_CreateFontResource(This,file,face_index,resource) (This)->lpVtbl->CreateFontResource(This,file,face_index,resource) -#define IDWriteFactory6_GetSystemFontSet(This,include_downloadable,fontset) (This)->lpVtbl->IDWriteFactory6_GetSystemFontSet(This,include_downloadable,fontset) -#define IDWriteFactory6_GetSystemFontCollection(This,include_downloadable,family_model,collection) (This)->lpVtbl->IDWriteFactory6_GetSystemFontCollection(This,include_downloadable,family_model,collection) -#define IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) -#define IDWriteFactory6_CreateFontSetBuilder(This,builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder) -#define IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) +#define IDWriteFactory6_CreateFontFaceReference(This, file, face_index, simulations, axis_values, num_axis, face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This, file, face_index, simulations, axis_values, num_axis, face_ref) +#define IDWriteFactory6_CreateFontResource(This, file, face_index, resource) (This)->lpVtbl->CreateFontResource(This, file, face_index, resource) +#define IDWriteFactory6_GetSystemFontSet(This, include_downloadable, fontset) (This)->lpVtbl->IDWriteFactory6_GetSystemFontSet(This, include_downloadable, fontset) +#define IDWriteFactory6_GetSystemFontCollection(This, include_downloadable, family_model, collection) (This)->lpVtbl->IDWriteFactory6_GetSystemFontCollection(This, include_downloadable, family_model, collection) +#define IDWriteFactory6_CreateFontCollectionFromFontSet(This, fontset, family_model, collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This, fontset, family_model, collection) +#define IDWriteFactory6_CreateFontSetBuilder(This, builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This, builder) +#define IDWriteFactory6_CreateTextFormat(This, familyname, collection, axis_values, num_axis, fontsize, localename, format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This, familyname, collection, axis_values, num_axis, fontsize, localename, format) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFactory6_QueryInterface(IDWriteFactory6* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFactory6_QueryInterface(IDWriteFactory6* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFactory6_AddRef(IDWriteFactory6* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFactory6_Release(IDWriteFactory6* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFactory methods ***/ -static inline HRESULT IDWriteFactory6_CreateCustomFontCollection(IDWriteFactory6* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { - return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +static inline HRESULT IDWriteFactory6_CreateCustomFontCollection(IDWriteFactory6* This, IDWriteFontCollectionLoader* loader, const void* key, UINT32 key_size, IDWriteFontCollection** collection) { + return This->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection); } -static inline HRESULT IDWriteFactory6_RegisterFontCollectionLoader(IDWriteFactory6* This,IDWriteFontCollectionLoader *loader) { - return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +static inline HRESULT IDWriteFactory6_RegisterFontCollectionLoader(IDWriteFactory6* This, IDWriteFontCollectionLoader* loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This, loader); } -static inline HRESULT IDWriteFactory6_UnregisterFontCollectionLoader(IDWriteFactory6* This,IDWriteFontCollectionLoader *loader) { - return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +static inline HRESULT IDWriteFactory6_UnregisterFontCollectionLoader(IDWriteFactory6* This, IDWriteFontCollectionLoader* loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This, loader); } -static inline HRESULT IDWriteFactory6_CreateFontFileReference(IDWriteFactory6* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { - return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +static inline HRESULT IDWriteFactory6_CreateFontFileReference(IDWriteFactory6* This, const WCHAR* path, const FILETIME* writetime, IDWriteFontFile** font_file) { + return This->lpVtbl->CreateFontFileReference(This, path, writetime, font_file); } -static inline HRESULT IDWriteFactory6_CreateCustomFontFileReference(IDWriteFactory6* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { - return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +static inline HRESULT IDWriteFactory6_CreateCustomFontFileReference(IDWriteFactory6* This, const void* reference_key, UINT32 key_size, IDWriteFontFileLoader* loader, IDWriteFontFile** font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file); } -static inline HRESULT IDWriteFactory6_CreateFontFace(IDWriteFactory6* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { - return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +static inline HRESULT IDWriteFactory6_CreateFontFace(IDWriteFactory6* This, DWRITE_FONT_FACE_TYPE facetype, UINT32 files_number, IDWriteFontFile* const* font_files, UINT32 index, DWRITE_FONT_SIMULATIONS sim_flags, IDWriteFontFace** font_face) { + return This->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face); } -static inline HRESULT IDWriteFactory6_CreateRenderingParams(IDWriteFactory6* This,IDWriteRenderingParams **params) { - return This->lpVtbl->CreateRenderingParams(This,params); +static inline HRESULT IDWriteFactory6_CreateRenderingParams(IDWriteFactory6* This, IDWriteRenderingParams** params) { + return This->lpVtbl->CreateRenderingParams(This, params); } -static inline HRESULT IDWriteFactory6_CreateMonitorRenderingParams(IDWriteFactory6* This,HMONITOR monitor,IDWriteRenderingParams **params) { - return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +static inline HRESULT IDWriteFactory6_CreateMonitorRenderingParams(IDWriteFactory6* This, HMONITOR monitor, IDWriteRenderingParams** params) { + return This->lpVtbl->CreateMonitorRenderingParams(This, monitor, params); } -static inline HRESULT IDWriteFactory6_RegisterFontFileLoader(IDWriteFactory6* This,IDWriteFontFileLoader *loader) { - return This->lpVtbl->RegisterFontFileLoader(This,loader); +static inline HRESULT IDWriteFactory6_RegisterFontFileLoader(IDWriteFactory6* This, IDWriteFontFileLoader* loader) { + return This->lpVtbl->RegisterFontFileLoader(This, loader); } -static inline HRESULT IDWriteFactory6_UnregisterFontFileLoader(IDWriteFactory6* This,IDWriteFontFileLoader *loader) { - return This->lpVtbl->UnregisterFontFileLoader(This,loader); +static inline HRESULT IDWriteFactory6_UnregisterFontFileLoader(IDWriteFactory6* This, IDWriteFontFileLoader* loader) { + return This->lpVtbl->UnregisterFontFileLoader(This, loader); } -static inline HRESULT IDWriteFactory6_CreateTypography(IDWriteFactory6* This,IDWriteTypography **typography) { - return This->lpVtbl->CreateTypography(This,typography); +static inline HRESULT IDWriteFactory6_CreateTypography(IDWriteFactory6* This, IDWriteTypography** typography) { + return This->lpVtbl->CreateTypography(This, typography); } -static inline HRESULT IDWriteFactory6_GetGdiInterop(IDWriteFactory6* This,IDWriteGdiInterop **gdi_interop) { - return This->lpVtbl->GetGdiInterop(This,gdi_interop); +static inline HRESULT IDWriteFactory6_GetGdiInterop(IDWriteFactory6* This, IDWriteGdiInterop** gdi_interop) { + return This->lpVtbl->GetGdiInterop(This, gdi_interop); } -static inline HRESULT IDWriteFactory6_CreateTextLayout(IDWriteFactory6* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { - return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +static inline HRESULT IDWriteFactory6_CreateTextLayout(IDWriteFactory6* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT max_width, FLOAT max_height, IDWriteTextLayout** layout) { + return This->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout); } -static inline HRESULT IDWriteFactory6_CreateGdiCompatibleTextLayout(IDWriteFactory6* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { - return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +static inline HRESULT IDWriteFactory6_CreateGdiCompatibleTextLayout(IDWriteFactory6* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT layout_width, FLOAT layout_height, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, IDWriteTextLayout** layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout); } -static inline HRESULT IDWriteFactory6_CreateEllipsisTrimmingSign(IDWriteFactory6* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { - return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +static inline HRESULT IDWriteFactory6_CreateEllipsisTrimmingSign(IDWriteFactory6* This, IDWriteTextFormat* format, IDWriteInlineObject** trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign); } -static inline HRESULT IDWriteFactory6_CreateTextAnalyzer(IDWriteFactory6* This,IDWriteTextAnalyzer **analyzer) { - return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +static inline HRESULT IDWriteFactory6_CreateTextAnalyzer(IDWriteFactory6* This, IDWriteTextAnalyzer** analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This, analyzer); } -static inline HRESULT IDWriteFactory6_CreateNumberSubstitution(IDWriteFactory6* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { - return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +static inline HRESULT IDWriteFactory6_CreateNumberSubstitution(IDWriteFactory6* This, DWRITE_NUMBER_SUBSTITUTION_METHOD method, const WCHAR* locale, WINBOOL ignore_user_override, IDWriteNumberSubstitution** substitution) { + return This->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution); } /*** IDWriteFactory1 methods ***/ -static inline HRESULT IDWriteFactory6_GetEudcFontCollection(IDWriteFactory6* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { - return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); +static inline HRESULT IDWriteFactory6_GetEudcFontCollection(IDWriteFactory6* This, IDWriteFontCollection** collection, WINBOOL check_for_updates) { + return This->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates); } /*** IDWriteFactory2 methods ***/ -static inline HRESULT IDWriteFactory6_GetSystemFontFallback(IDWriteFactory6* This,IDWriteFontFallback **fallback) { - return This->lpVtbl->GetSystemFontFallback(This,fallback); +static inline HRESULT IDWriteFactory6_GetSystemFontFallback(IDWriteFactory6* This, IDWriteFontFallback** fallback) { + return This->lpVtbl->GetSystemFontFallback(This, fallback); } -static inline HRESULT IDWriteFactory6_CreateFontFallbackBuilder(IDWriteFactory6* This,IDWriteFontFallbackBuilder **fallbackbuilder) { - return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); +static inline HRESULT IDWriteFactory6_CreateFontFallbackBuilder(IDWriteFactory6* This, IDWriteFontFallbackBuilder** fallbackbuilder) { + return This->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder); } /*** IDWriteFactory3 methods ***/ -static inline HRESULT IDWriteFactory6_CreateGlyphRunAnalysis(IDWriteFactory6* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) { - return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis); +static inline HRESULT IDWriteFactory6_CreateGlyphRunAnalysis(IDWriteFactory6* This, const DWRITE_GLYPH_RUN* run, const DWRITE_MATRIX* transform, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_MEASURING_MODE measuring_mode, DWRITE_GRID_FIT_MODE gridfit_mode, DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, FLOAT origin_x, FLOAT origin_y, IDWriteGlyphRunAnalysis** analysis) { + return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis); } -static inline HRESULT IDWriteFactory6_CreateCustomRenderingParams(IDWriteFactory6* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) { - return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params); +static inline HRESULT IDWriteFactory6_CreateCustomRenderingParams(IDWriteFactory6* This, FLOAT gamma, FLOAT enhanced_contrast, FLOAT grayscale_enhanced_contrast, FLOAT cleartype_level, DWRITE_PIXEL_GEOMETRY pixel_geometry, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_GRID_FIT_MODE gridfit_mode, IDWriteRenderingParams3** params) { + return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params); } -static inline HRESULT IDWriteFactory6_CreateFontFaceReference_(IDWriteFactory6* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { - return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference); +static inline HRESULT IDWriteFactory6_CreateFontFaceReference_(IDWriteFactory6* This, IDWriteFontFile* file, UINT32 index, DWRITE_FONT_SIMULATIONS simulations, IDWriteFontFaceReference** reference) { + return This->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference); } -static inline HRESULT IDWriteFactory6_GetFontDownloadQueue(IDWriteFactory6* This,IDWriteFontDownloadQueue **queue) { - return This->lpVtbl->GetFontDownloadQueue(This,queue); +static inline HRESULT IDWriteFactory6_GetFontDownloadQueue(IDWriteFactory6* This, IDWriteFontDownloadQueue** queue) { + return This->lpVtbl->GetFontDownloadQueue(This, queue); } /*** IDWriteFactory4 methods ***/ -static inline HRESULT IDWriteFactory6_TranslateColorGlyphRun(IDWriteFactory6* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) { - return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers); +static inline HRESULT IDWriteFactory6_TranslateColorGlyphRun(IDWriteFactory6* This, D2D1_POINT_2F baseline_origin, const DWRITE_GLYPH_RUN* run, const DWRITE_GLYPH_RUN_DESCRIPTION* run_desc, DWRITE_GLYPH_IMAGE_FORMATS desired_formats, DWRITE_MEASURING_MODE measuring_mode, const DWRITE_MATRIX* transform, UINT32 palette, IDWriteColorGlyphRunEnumerator1** layers) { + return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers); } -static inline HRESULT IDWriteFactory6_ComputeGlyphOrigins_(IDWriteFactory6* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) { - return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins); +static inline HRESULT IDWriteFactory6_ComputeGlyphOrigins_(IDWriteFactory6* This, const DWRITE_GLYPH_RUN* run, D2D1_POINT_2F baseline_origin, D2D1_POINT_2F* origins) { + return This->lpVtbl->ComputeGlyphOrigins_(This, run, baseline_origin, origins); } -static inline HRESULT IDWriteFactory6_ComputeGlyphOrigins(IDWriteFactory6* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) { - return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins); +static inline HRESULT IDWriteFactory6_ComputeGlyphOrigins(IDWriteFactory6* This, const DWRITE_GLYPH_RUN* run, DWRITE_MEASURING_MODE measuring_mode, D2D1_POINT_2F baseline_origin, const DWRITE_MATRIX* transform, D2D1_POINT_2F* origins) { + return This->lpVtbl->ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins); } /*** IDWriteFactory5 methods ***/ -static inline HRESULT IDWriteFactory6_CreateInMemoryFontFileLoader(IDWriteFactory6* This,IDWriteInMemoryFontFileLoader **loader) { - return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader); +static inline HRESULT IDWriteFactory6_CreateInMemoryFontFileLoader(IDWriteFactory6* This, IDWriteInMemoryFontFileLoader** loader) { + return This->lpVtbl->CreateInMemoryFontFileLoader(This, loader); } -static inline HRESULT IDWriteFactory6_CreateHttpFontFileLoader(IDWriteFactory6* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) { - return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader); +static inline HRESULT IDWriteFactory6_CreateHttpFontFileLoader(IDWriteFactory6* This, const WCHAR* referrer_url, const WCHAR* extra_headers, IDWriteRemoteFontFileLoader** loader) { + return This->lpVtbl->CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader); } -static inline DWRITE_CONTAINER_TYPE IDWriteFactory6_AnalyzeContainerType(IDWriteFactory6* This,const void *data,UINT32 data_size) { - return This->lpVtbl->AnalyzeContainerType(This,data,data_size); +static inline DWRITE_CONTAINER_TYPE IDWriteFactory6_AnalyzeContainerType(IDWriteFactory6* This, const void* data, UINT32 data_size) { + return This->lpVtbl->AnalyzeContainerType(This, data, data_size); } -static inline HRESULT IDWriteFactory6_UnpackFontFile(IDWriteFactory6* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) { - return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream); +static inline HRESULT IDWriteFactory6_UnpackFontFile(IDWriteFactory6* This, DWRITE_CONTAINER_TYPE container_type, const void* data, UINT32 data_size, IDWriteFontFileStream** stream) { + return This->lpVtbl->UnpackFontFile(This, container_type, data, data_size, stream); } /*** IDWriteFactory6 methods ***/ -static inline HRESULT IDWriteFactory6_CreateFontFaceReference(IDWriteFactory6* This,IDWriteFontFile *file,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,IDWriteFontFaceReference1 **face_ref) { - return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref); +static inline HRESULT IDWriteFactory6_CreateFontFaceReference(IDWriteFactory6* This, IDWriteFontFile* file, UINT32 face_index, DWRITE_FONT_SIMULATIONS simulations, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_axis, IDWriteFontFaceReference1** face_ref) { + return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This, file, face_index, simulations, axis_values, num_axis, face_ref); } -static inline HRESULT IDWriteFactory6_CreateFontResource(IDWriteFactory6* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) { - return This->lpVtbl->CreateFontResource(This,file,face_index,resource); +static inline HRESULT IDWriteFactory6_CreateFontResource(IDWriteFactory6* This, IDWriteFontFile* file, UINT32 face_index, IDWriteFontResource** resource) { + return This->lpVtbl->CreateFontResource(This, file, face_index, resource); } -static inline HRESULT IDWriteFactory6_GetSystemFontSet(IDWriteFactory6* This,WINBOOL include_downloadable,IDWriteFontSet1 **fontset) { - return This->lpVtbl->IDWriteFactory6_GetSystemFontSet(This,include_downloadable,fontset); +static inline HRESULT IDWriteFactory6_GetSystemFontSet(IDWriteFactory6* This, WINBOOL include_downloadable, IDWriteFontSet1** fontset) { + return This->lpVtbl->IDWriteFactory6_GetSystemFontSet(This, include_downloadable, fontset); } -static inline HRESULT IDWriteFactory6_GetSystemFontCollection(IDWriteFactory6* This,WINBOOL include_downloadable,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) { - return This->lpVtbl->IDWriteFactory6_GetSystemFontCollection(This,include_downloadable,family_model,collection); +static inline HRESULT IDWriteFactory6_GetSystemFontCollection(IDWriteFactory6* This, WINBOOL include_downloadable, DWRITE_FONT_FAMILY_MODEL family_model, IDWriteFontCollection2** collection) { + return This->lpVtbl->IDWriteFactory6_GetSystemFontCollection(This, include_downloadable, family_model, collection); } -static inline HRESULT IDWriteFactory6_CreateFontCollectionFromFontSet(IDWriteFactory6* This,IDWriteFontSet *fontset,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) { - return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection); +static inline HRESULT IDWriteFactory6_CreateFontCollectionFromFontSet(IDWriteFactory6* This, IDWriteFontSet* fontset, DWRITE_FONT_FAMILY_MODEL family_model, IDWriteFontCollection2** collection) { + return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This, fontset, family_model, collection); } -static inline HRESULT IDWriteFactory6_CreateFontSetBuilder(IDWriteFactory6* This,IDWriteFontSetBuilder2 **builder) { - return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder); +static inline HRESULT IDWriteFactory6_CreateFontSetBuilder(IDWriteFactory6* This, IDWriteFontSetBuilder2** builder) { + return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This, builder); } -static inline HRESULT IDWriteFactory6_CreateTextFormat(IDWriteFactory6* This,const WCHAR *familyname,IDWriteFontCollection *collection,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,FLOAT fontsize,const WCHAR *localename,IDWriteTextFormat3 **format) { - return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format); +static inline HRESULT IDWriteFactory6_CreateTextFormat(IDWriteFactory6* This, const WCHAR* familyname, IDWriteFontCollection* collection, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_axis, FLOAT fontsize, const WCHAR* localename, IDWriteTextFormat3** format) { + return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This, familyname, collection, axis_values, num_axis, fontsize, localename, format); } #endif #endif #endif - -#endif /* __IDWriteFactory6_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFactory6_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFactory7 interface @@ -13551,608 +13383,605 @@ static inline HRESULT IDWriteFactory6_CreateTextFormat(IDWriteFactory6* This,con #ifndef __IDWriteFactory7_INTERFACE_DEFINED__ #define __IDWriteFactory7_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFactory7, 0x35d0e0b3, 0x9076, 0x4d2e, 0xa0,0x16, 0xa9,0x1b,0x56,0x8a,0x06,0xb4); +DEFINE_GUID(IID_IDWriteFactory7, 0x35d0e0b3, 0x9076, 0x4d2e, 0xa0, 0x16, 0xa9, 0x1b, 0x56, 0x8a, 0x06, 0xb4); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("35d0e0b3-9076-4d2e-a016-a91b568a06b4") -IDWriteFactory7 : public IDWriteFactory6 -{ - virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet( - WINBOOL include_downloadable, - IDWriteFontSet2 **fontset) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection( - WINBOOL include_downloadable, - DWRITE_FONT_FAMILY_MODEL family_model, - IDWriteFontCollection3 **collection) = 0; +IDWriteFactory7 : public IDWriteFactory6 { + virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet( + WINBOOL include_downloadable, + IDWriteFontSet2 * *fontset) = 0; + virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection( + WINBOOL include_downloadable, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection3 * *collection) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFactory7, 0x35d0e0b3, 0x9076, 0x4d2e, 0xa0,0x16, 0xa9,0x1b,0x56,0x8a,0x06,0xb4) +__CRT_UUID_DECL(IDWriteFactory7, 0x35d0e0b3, 0x9076, 0x4d2e, 0xa0, 0x16, 0xa9, 0x1b, 0x56, 0x8a, 0x06, 0xb4) #endif #else typedef struct IDWriteFactory7Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFactory7 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFactory7* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFactory7 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFactory7* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFactory7 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFactory7* This); - /*** IDWriteFactory methods ***/ - HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( - IDWriteFactory7 *This, - IDWriteFontCollection **collection, - WINBOOL check_for_updates); + /*** IDWriteFactory methods ***/ + HRESULT(STDMETHODCALLTYPE* GetSystemFontCollection)( + IDWriteFactory7* This, + IDWriteFontCollection** collection, + WINBOOL check_for_updates); - HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( - IDWriteFactory7 *This, - IDWriteFontCollectionLoader *loader, - const void *key, - UINT32 key_size, - IDWriteFontCollection **collection); + HRESULT(STDMETHODCALLTYPE* CreateCustomFontCollection)( + IDWriteFactory7* This, + IDWriteFontCollectionLoader* loader, + const void* key, + UINT32 key_size, + IDWriteFontCollection** collection); - HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( - IDWriteFactory7 *This, - IDWriteFontCollectionLoader *loader); + HRESULT(STDMETHODCALLTYPE* RegisterFontCollectionLoader)( + IDWriteFactory7* This, + IDWriteFontCollectionLoader* loader); - HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( - IDWriteFactory7 *This, - IDWriteFontCollectionLoader *loader); + HRESULT(STDMETHODCALLTYPE* UnregisterFontCollectionLoader)( + IDWriteFactory7* This, + IDWriteFontCollectionLoader* loader); - HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( - IDWriteFactory7 *This, - const WCHAR *path, - const FILETIME *writetime, - IDWriteFontFile **font_file); + HRESULT(STDMETHODCALLTYPE* CreateFontFileReference)( + IDWriteFactory7* This, + const WCHAR* path, + const FILETIME* writetime, + IDWriteFontFile** font_file); - HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( - IDWriteFactory7 *This, - const void *reference_key, - UINT32 key_size, - IDWriteFontFileLoader *loader, - IDWriteFontFile **font_file); + HRESULT(STDMETHODCALLTYPE* CreateCustomFontFileReference)( + IDWriteFactory7* This, + const void* reference_key, + UINT32 key_size, + IDWriteFontFileLoader* loader, + IDWriteFontFile** font_file); - HRESULT (STDMETHODCALLTYPE *CreateFontFace)( - IDWriteFactory7 *This, - DWRITE_FONT_FACE_TYPE facetype, - UINT32 files_number, - IDWriteFontFile *const *font_files, - UINT32 index, - DWRITE_FONT_SIMULATIONS sim_flags, - IDWriteFontFace **font_face); + HRESULT(STDMETHODCALLTYPE* CreateFontFace)( + IDWriteFactory7* This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile* const* font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace** font_face); - HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( - IDWriteFactory7 *This, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateRenderingParams)( + IDWriteFactory7* This, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( - IDWriteFactory7 *This, - HMONITOR monitor, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateMonitorRenderingParams)( + IDWriteFactory7* This, + HMONITOR monitor, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( - IDWriteFactory7 *This, - FLOAT gamma, - FLOAT enhancedContrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateCustomRenderingParams)( + IDWriteFactory7* This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( - IDWriteFactory7 *This, - IDWriteFontFileLoader *loader); + HRESULT(STDMETHODCALLTYPE* RegisterFontFileLoader)( + IDWriteFactory7* This, + IDWriteFontFileLoader* loader); - HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( - IDWriteFactory7 *This, - IDWriteFontFileLoader *loader); + HRESULT(STDMETHODCALLTYPE* UnregisterFontFileLoader)( + IDWriteFactory7* This, + IDWriteFontFileLoader* loader); - HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( - IDWriteFactory7 *This, - const WCHAR *family_name, - IDWriteFontCollection *collection, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STYLE style, - DWRITE_FONT_STRETCH stretch, - FLOAT size, - const WCHAR *locale, - IDWriteTextFormat **format); + HRESULT(STDMETHODCALLTYPE* CreateTextFormat)( + IDWriteFactory7* This, + const WCHAR* family_name, + IDWriteFontCollection* collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR* locale, + IDWriteTextFormat** format); - HRESULT (STDMETHODCALLTYPE *CreateTypography)( - IDWriteFactory7 *This, - IDWriteTypography **typography); + HRESULT(STDMETHODCALLTYPE* CreateTypography)( + IDWriteFactory7* This, + IDWriteTypography** typography); - HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( - IDWriteFactory7 *This, - IDWriteGdiInterop **gdi_interop); + HRESULT(STDMETHODCALLTYPE* GetGdiInterop)( + IDWriteFactory7* This, + IDWriteGdiInterop** gdi_interop); - HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( - IDWriteFactory7 *This, - const WCHAR *string, - UINT32 len, - IDWriteTextFormat *format, - FLOAT max_width, - FLOAT max_height, - IDWriteTextLayout **layout); + HRESULT(STDMETHODCALLTYPE* CreateTextLayout)( + IDWriteFactory7* This, + const WCHAR* string, + UINT32 len, + IDWriteTextFormat* format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout** layout); - HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( - IDWriteFactory7 *This, - const WCHAR *string, - UINT32 len, - IDWriteTextFormat *format, - FLOAT layout_width, - FLOAT layout_height, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - IDWriteTextLayout **layout); + HRESULT(STDMETHODCALLTYPE* CreateGdiCompatibleTextLayout)( + IDWriteFactory7* This, + const WCHAR* string, + UINT32 len, + IDWriteTextFormat* format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout** layout); - HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( - IDWriteFactory7 *This, - IDWriteTextFormat *format, - IDWriteInlineObject **trimming_sign); + HRESULT(STDMETHODCALLTYPE* CreateEllipsisTrimmingSign)( + IDWriteFactory7* This, + IDWriteTextFormat* format, + IDWriteInlineObject** trimming_sign); - HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( - IDWriteFactory7 *This, - IDWriteTextAnalyzer **analyzer); + HRESULT(STDMETHODCALLTYPE* CreateTextAnalyzer)( + IDWriteFactory7* This, + IDWriteTextAnalyzer** analyzer); - HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( - IDWriteFactory7 *This, - DWRITE_NUMBER_SUBSTITUTION_METHOD method, - const WCHAR *locale, - WINBOOL ignore_user_override, - IDWriteNumberSubstitution **substitution); + HRESULT(STDMETHODCALLTYPE* CreateNumberSubstitution)( + IDWriteFactory7* This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR* locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution** substitution); - HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( - IDWriteFactory7 *This, - const DWRITE_GLYPH_RUN *glyph_run, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - FLOAT baseline_x, - FLOAT baseline_y, - IDWriteGlyphRunAnalysis **analysis); + HRESULT(STDMETHODCALLTYPE* CreateGlyphRunAnalysis)( + IDWriteFactory7* This, + const DWRITE_GLYPH_RUN* glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis** analysis); - /*** IDWriteFactory1 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( - IDWriteFactory7 *This, - IDWriteFontCollection **collection, - WINBOOL check_for_updates); + /*** IDWriteFactory1 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetEudcFontCollection)( + IDWriteFactory7* This, + IDWriteFontCollection** collection, + WINBOOL check_for_updates); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( - IDWriteFactory7 *This, - FLOAT gamma, - FLOAT enhcontrast, - FLOAT enhcontrast_grayscale, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams1 **params); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory1_CreateCustomRenderingParams)( + IDWriteFactory7* This, + FLOAT gamma, + FLOAT enhcontrast, + FLOAT enhcontrast_grayscale, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams1** params); - /*** IDWriteFactory2 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)( - IDWriteFactory7 *This, - IDWriteFontFallback **fallback); + /*** IDWriteFactory2 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetSystemFontFallback)( + IDWriteFactory7* This, + IDWriteFontFallback** fallback); - HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)( - IDWriteFactory7 *This, - IDWriteFontFallbackBuilder **fallbackbuilder); + HRESULT(STDMETHODCALLTYPE* CreateFontFallbackBuilder)( + IDWriteFactory7* This, + IDWriteFontFallbackBuilder** fallbackbuilder); - HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)( - IDWriteFactory7 *This, - FLOAT originX, - FLOAT originY, - const DWRITE_GLYPH_RUN *run, - const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, - DWRITE_MEASURING_MODE mode, - const DWRITE_MATRIX *transform, - UINT32 palette_index, - IDWriteColorGlyphRunEnumerator **colorlayers); + HRESULT(STDMETHODCALLTYPE* TranslateColorGlyphRun)( + IDWriteFactory7* This, + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN* run, + const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX* transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator** colorlayers); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)( - IDWriteFactory7 *This, - FLOAT gamma, - FLOAT contrast, - FLOAT grayscalecontrast, - FLOAT cleartypeLevel, - DWRITE_PIXEL_GEOMETRY pixelGeometry, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_GRID_FIT_MODE gridFitMode, - IDWriteRenderingParams2 **params); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateCustomRenderingParams)( + IDWriteFactory7* This, + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2** params); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)( - IDWriteFactory7 *This, - const DWRITE_GLYPH_RUN *run, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_MEASURING_MODE measuringMode, - DWRITE_GRID_FIT_MODE gridFitMode, - DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, - FLOAT originX, - FLOAT originY, - IDWriteGlyphRunAnalysis **analysis); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateGlyphRunAnalysis)( + IDWriteFactory7* This, + const DWRITE_GLYPH_RUN* run, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis** analysis); - /*** IDWriteFactory3 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)( - IDWriteFactory7 *This, - const DWRITE_GLYPH_RUN *run, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, - FLOAT origin_x, - FLOAT origin_y, - IDWriteGlyphRunAnalysis **analysis); + /*** IDWriteFactory3 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateGlyphRunAnalysis)( + IDWriteFactory7* This, + const DWRITE_GLYPH_RUN* run, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, + FLOAT origin_x, + FLOAT origin_y, + IDWriteGlyphRunAnalysis** analysis); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)( - IDWriteFactory7 *This, - FLOAT gamma, - FLOAT enhanced_contrast, - FLOAT grayscale_enhanced_contrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY pixel_geometry, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - IDWriteRenderingParams3 **params); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateCustomRenderingParams)( + IDWriteFactory7* This, + FLOAT gamma, + FLOAT enhanced_contrast, + FLOAT grayscale_enhanced_contrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY pixel_geometry, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + IDWriteRenderingParams3** params); - HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)( - IDWriteFactory7 *This, - IDWriteFontFile *file, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference **reference); + HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference_)( + IDWriteFactory7* This, + IDWriteFontFile* file, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference** reference); - HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)( - IDWriteFactory7 *This, - const WCHAR *path, - const FILETIME *writetime, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference **reference); + HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference)( + IDWriteFactory7* This, + const WCHAR* path, + const FILETIME* writetime, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference** reference); - HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)( - IDWriteFactory7 *This, - IDWriteFontSet **fontset); + HRESULT(STDMETHODCALLTYPE* GetSystemFontSet)( + IDWriteFactory7* This, + IDWriteFontSet** fontset); - HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)( - IDWriteFactory7 *This, - IDWriteFontSetBuilder **builder); + HRESULT(STDMETHODCALLTYPE* CreateFontSetBuilder)( + IDWriteFactory7* This, + IDWriteFontSetBuilder** builder); - HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)( - IDWriteFactory7 *This, - IDWriteFontSet *fontset, - IDWriteFontCollection1 **collection); + HRESULT(STDMETHODCALLTYPE* CreateFontCollectionFromFontSet)( + IDWriteFactory7* This, + IDWriteFontSet* fontset, + IDWriteFontCollection1** collection); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)( - IDWriteFactory7 *This, - WINBOOL include_downloadable, - IDWriteFontCollection1 **collection, - WINBOOL check_for_updates); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_GetSystemFontCollection)( + IDWriteFactory7* This, + WINBOOL include_downloadable, + IDWriteFontCollection1** collection, + WINBOOL check_for_updates); - HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)( - IDWriteFactory7 *This, - IDWriteFontDownloadQueue **queue); + HRESULT(STDMETHODCALLTYPE* GetFontDownloadQueue)( + IDWriteFactory7* This, + IDWriteFontDownloadQueue** queue); - /*** IDWriteFactory4 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)( - IDWriteFactory7 *This, - D2D1_POINT_2F baseline_origin, - const DWRITE_GLYPH_RUN *run, - const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc, - DWRITE_GLYPH_IMAGE_FORMATS desired_formats, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_MATRIX *transform, - UINT32 palette, - IDWriteColorGlyphRunEnumerator1 **layers); + /*** IDWriteFactory4 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFactory4_TranslateColorGlyphRun)( + IDWriteFactory7* This, + D2D1_POINT_2F baseline_origin, + const DWRITE_GLYPH_RUN* run, + const DWRITE_GLYPH_RUN_DESCRIPTION* run_desc, + DWRITE_GLYPH_IMAGE_FORMATS desired_formats, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX* transform, + UINT32 palette, + IDWriteColorGlyphRunEnumerator1** layers); - HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)( - IDWriteFactory7 *This, - const DWRITE_GLYPH_RUN *run, - D2D1_POINT_2F baseline_origin, - D2D1_POINT_2F *origins); + HRESULT(STDMETHODCALLTYPE* ComputeGlyphOrigins_)( + IDWriteFactory7* This, + const DWRITE_GLYPH_RUN* run, + D2D1_POINT_2F baseline_origin, + D2D1_POINT_2F* origins); - HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)( - IDWriteFactory7 *This, - const DWRITE_GLYPH_RUN *run, - DWRITE_MEASURING_MODE measuring_mode, - D2D1_POINT_2F baseline_origin, - const DWRITE_MATRIX *transform, - D2D1_POINT_2F *origins); + HRESULT(STDMETHODCALLTYPE* ComputeGlyphOrigins)( + IDWriteFactory7* This, + const DWRITE_GLYPH_RUN* run, + DWRITE_MEASURING_MODE measuring_mode, + D2D1_POINT_2F baseline_origin, + const DWRITE_MATRIX* transform, + D2D1_POINT_2F* origins); - /*** IDWriteFactory5 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)( - IDWriteFactory7 *This, - IDWriteFontSetBuilder1 **fontset_builder); + /*** IDWriteFactory5 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFactory5_CreateFontSetBuilder)( + IDWriteFactory7* This, + IDWriteFontSetBuilder1** fontset_builder); - HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)( - IDWriteFactory7 *This, - IDWriteInMemoryFontFileLoader **loader); + HRESULT(STDMETHODCALLTYPE* CreateInMemoryFontFileLoader)( + IDWriteFactory7* This, + IDWriteInMemoryFontFileLoader** loader); - HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)( - IDWriteFactory7 *This, - const WCHAR *referrer_url, - const WCHAR *extra_headers, - IDWriteRemoteFontFileLoader **loader); + HRESULT(STDMETHODCALLTYPE* CreateHttpFontFileLoader)( + IDWriteFactory7* This, + const WCHAR* referrer_url, + const WCHAR* extra_headers, + IDWriteRemoteFontFileLoader** loader); - DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)( - IDWriteFactory7 *This, - const void *data, - UINT32 data_size); + DWRITE_CONTAINER_TYPE(STDMETHODCALLTYPE* AnalyzeContainerType)( + IDWriteFactory7* This, + const void* data, + UINT32 data_size); - HRESULT (STDMETHODCALLTYPE *UnpackFontFile)( - IDWriteFactory7 *This, - DWRITE_CONTAINER_TYPE container_type, - const void *data, - UINT32 data_size, - IDWriteFontFileStream **stream); + HRESULT(STDMETHODCALLTYPE* UnpackFontFile)( + IDWriteFactory7* This, + DWRITE_CONTAINER_TYPE container_type, + const void* data, + UINT32 data_size, + IDWriteFontFileStream** stream); - /*** IDWriteFactory6 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontFaceReference)( - IDWriteFactory7 *This, - IDWriteFontFile *file, - UINT32 face_index, - DWRITE_FONT_SIMULATIONS simulations, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_axis, - IDWriteFontFaceReference1 **face_ref); + /*** IDWriteFactory6 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateFontFaceReference)( + IDWriteFactory7* This, + IDWriteFontFile* file, + UINT32 face_index, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_axis, + IDWriteFontFaceReference1** face_ref); - HRESULT (STDMETHODCALLTYPE *CreateFontResource)( - IDWriteFactory7 *This, - IDWriteFontFile *file, - UINT32 face_index, - IDWriteFontResource **resource); + HRESULT(STDMETHODCALLTYPE* CreateFontResource)( + IDWriteFactory7* This, + IDWriteFontFile* file, + UINT32 face_index, + IDWriteFontResource** resource); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontSet)( - IDWriteFactory7 *This, - WINBOOL include_downloadable, - IDWriteFontSet1 **fontset); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_GetSystemFontSet)( + IDWriteFactory7* This, + WINBOOL include_downloadable, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontCollection)( - IDWriteFactory7 *This, - WINBOOL include_downloadable, - DWRITE_FONT_FAMILY_MODEL family_model, - IDWriteFontCollection2 **collection); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_GetSystemFontCollection)( + IDWriteFactory7* This, + WINBOOL include_downloadable, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2** collection); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontCollectionFromFontSet)( - IDWriteFactory7 *This, - IDWriteFontSet *fontset, - DWRITE_FONT_FAMILY_MODEL family_model, - IDWriteFontCollection2 **collection); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateFontCollectionFromFontSet)( + IDWriteFactory7* This, + IDWriteFontSet* fontset, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2** collection); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontSetBuilder)( - IDWriteFactory7 *This, - IDWriteFontSetBuilder2 **builder); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateFontSetBuilder)( + IDWriteFactory7* This, + IDWriteFontSetBuilder2** builder); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateTextFormat)( - IDWriteFactory7 *This, - const WCHAR *familyname, - IDWriteFontCollection *collection, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_axis, - FLOAT fontsize, - const WCHAR *localename, - IDWriteTextFormat3 **format); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateTextFormat)( + IDWriteFactory7* This, + const WCHAR* familyname, + IDWriteFontCollection* collection, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_axis, + FLOAT fontsize, + const WCHAR* localename, + IDWriteTextFormat3** format); - /*** IDWriteFactory7 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontSet)( - IDWriteFactory7 *This, - WINBOOL include_downloadable, - IDWriteFontSet2 **fontset); + /*** IDWriteFactory7 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFactory7_GetSystemFontSet)( + IDWriteFactory7* This, + WINBOOL include_downloadable, + IDWriteFontSet2** fontset); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontCollection)( - IDWriteFactory7 *This, - WINBOOL include_downloadable, - DWRITE_FONT_FAMILY_MODEL family_model, - IDWriteFontCollection3 **collection); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory7_GetSystemFontCollection)( + IDWriteFactory7* This, + WINBOOL include_downloadable, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection3** collection); - END_INTERFACE + END_INTERFACE } IDWriteFactory7Vtbl; interface IDWriteFactory7 { - CONST_VTBL IDWriteFactory7Vtbl* lpVtbl; + CONST_VTBL IDWriteFactory7Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFactory7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory7_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFactory7_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFactory7_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFactory methods ***/ -#define IDWriteFactory7_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) -#define IDWriteFactory7_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) -#define IDWriteFactory7_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) -#define IDWriteFactory7_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) -#define IDWriteFactory7_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) -#define IDWriteFactory7_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) -#define IDWriteFactory7_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) -#define IDWriteFactory7_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) -#define IDWriteFactory7_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) -#define IDWriteFactory7_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) -#define IDWriteFactory7_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) -#define IDWriteFactory7_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) -#define IDWriteFactory7_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) -#define IDWriteFactory7_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) -#define IDWriteFactory7_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) -#define IDWriteFactory7_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) -#define IDWriteFactory7_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +#define IDWriteFactory7_CreateCustomFontCollection(This, loader, key, key_size, collection) (This)->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection) +#define IDWriteFactory7_RegisterFontCollectionLoader(This, loader) (This)->lpVtbl->RegisterFontCollectionLoader(This, loader) +#define IDWriteFactory7_UnregisterFontCollectionLoader(This, loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This, loader) +#define IDWriteFactory7_CreateFontFileReference(This, path, writetime, font_file) (This)->lpVtbl->CreateFontFileReference(This, path, writetime, font_file) +#define IDWriteFactory7_CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) (This)->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) +#define IDWriteFactory7_CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) (This)->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) +#define IDWriteFactory7_CreateRenderingParams(This, params) (This)->lpVtbl->CreateRenderingParams(This, params) +#define IDWriteFactory7_CreateMonitorRenderingParams(This, monitor, params) (This)->lpVtbl->CreateMonitorRenderingParams(This, monitor, params) +#define IDWriteFactory7_RegisterFontFileLoader(This, loader) (This)->lpVtbl->RegisterFontFileLoader(This, loader) +#define IDWriteFactory7_UnregisterFontFileLoader(This, loader) (This)->lpVtbl->UnregisterFontFileLoader(This, loader) +#define IDWriteFactory7_CreateTypography(This, typography) (This)->lpVtbl->CreateTypography(This, typography) +#define IDWriteFactory7_GetGdiInterop(This, gdi_interop) (This)->lpVtbl->GetGdiInterop(This, gdi_interop) +#define IDWriteFactory7_CreateTextLayout(This, string, len, format, max_width, max_height, layout) (This)->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout) +#define IDWriteFactory7_CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) +#define IDWriteFactory7_CreateEllipsisTrimmingSign(This, format, trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign) +#define IDWriteFactory7_CreateTextAnalyzer(This, analyzer) (This)->lpVtbl->CreateTextAnalyzer(This, analyzer) +#define IDWriteFactory7_CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) (This)->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) /*** IDWriteFactory1 methods ***/ -#define IDWriteFactory7_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) +#define IDWriteFactory7_GetEudcFontCollection(This, collection, check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates) /*** IDWriteFactory2 methods ***/ -#define IDWriteFactory7_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback) -#define IDWriteFactory7_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder) +#define IDWriteFactory7_GetSystemFontFallback(This, fallback) (This)->lpVtbl->GetSystemFontFallback(This, fallback) +#define IDWriteFactory7_CreateFontFallbackBuilder(This, fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder) /*** IDWriteFactory3 methods ***/ -#define IDWriteFactory7_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) -#define IDWriteFactory7_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) -#define IDWriteFactory7_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference) -#define IDWriteFactory7_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue) +#define IDWriteFactory7_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) +#define IDWriteFactory7_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) +#define IDWriteFactory7_CreateFontFaceReference_(This, file, index, simulations, reference) (This)->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference) +#define IDWriteFactory7_GetFontDownloadQueue(This, queue) (This)->lpVtbl->GetFontDownloadQueue(This, queue) /*** IDWriteFactory4 methods ***/ -#define IDWriteFactory7_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) -#define IDWriteFactory7_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins) -#define IDWriteFactory7_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) +#define IDWriteFactory7_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers) +#define IDWriteFactory7_ComputeGlyphOrigins_(This, run, baseline_origin, origins) (This)->lpVtbl->ComputeGlyphOrigins_(This, run, baseline_origin, origins) +#define IDWriteFactory7_ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins) (This)->lpVtbl->ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins) /*** IDWriteFactory5 methods ***/ -#define IDWriteFactory7_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader) -#define IDWriteFactory7_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) -#define IDWriteFactory7_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size) -#define IDWriteFactory7_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream) +#define IDWriteFactory7_CreateInMemoryFontFileLoader(This, loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This, loader) +#define IDWriteFactory7_CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader) (This)->lpVtbl->CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader) +#define IDWriteFactory7_AnalyzeContainerType(This, data, data_size) (This)->lpVtbl->AnalyzeContainerType(This, data, data_size) +#define IDWriteFactory7_UnpackFontFile(This, container_type, data, data_size, stream) (This)->lpVtbl->UnpackFontFile(This, container_type, data, data_size, stream) /*** IDWriteFactory6 methods ***/ -#define IDWriteFactory7_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) -#define IDWriteFactory7_CreateFontResource(This,file,face_index,resource) (This)->lpVtbl->CreateFontResource(This,file,face_index,resource) -#define IDWriteFactory7_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) -#define IDWriteFactory7_CreateFontSetBuilder(This,builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder) -#define IDWriteFactory7_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) +#define IDWriteFactory7_CreateFontFaceReference(This, file, face_index, simulations, axis_values, num_axis, face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This, file, face_index, simulations, axis_values, num_axis, face_ref) +#define IDWriteFactory7_CreateFontResource(This, file, face_index, resource) (This)->lpVtbl->CreateFontResource(This, file, face_index, resource) +#define IDWriteFactory7_CreateFontCollectionFromFontSet(This, fontset, family_model, collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This, fontset, family_model, collection) +#define IDWriteFactory7_CreateFontSetBuilder(This, builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This, builder) +#define IDWriteFactory7_CreateTextFormat(This, familyname, collection, axis_values, num_axis, fontsize, localename, format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This, familyname, collection, axis_values, num_axis, fontsize, localename, format) /*** IDWriteFactory7 methods ***/ -#define IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset) (This)->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset) -#define IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection) (This)->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection) +#define IDWriteFactory7_GetSystemFontSet(This, include_downloadable, fontset) (This)->lpVtbl->IDWriteFactory7_GetSystemFontSet(This, include_downloadable, fontset) +#define IDWriteFactory7_GetSystemFontCollection(This, include_downloadable, family_model, collection) (This)->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This, include_downloadable, family_model, collection) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFactory7_QueryInterface(IDWriteFactory7* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFactory7_QueryInterface(IDWriteFactory7* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFactory7_AddRef(IDWriteFactory7* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFactory7_Release(IDWriteFactory7* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFactory methods ***/ -static inline HRESULT IDWriteFactory7_CreateCustomFontCollection(IDWriteFactory7* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { - return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +static inline HRESULT IDWriteFactory7_CreateCustomFontCollection(IDWriteFactory7* This, IDWriteFontCollectionLoader* loader, const void* key, UINT32 key_size, IDWriteFontCollection** collection) { + return This->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection); } -static inline HRESULT IDWriteFactory7_RegisterFontCollectionLoader(IDWriteFactory7* This,IDWriteFontCollectionLoader *loader) { - return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +static inline HRESULT IDWriteFactory7_RegisterFontCollectionLoader(IDWriteFactory7* This, IDWriteFontCollectionLoader* loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This, loader); } -static inline HRESULT IDWriteFactory7_UnregisterFontCollectionLoader(IDWriteFactory7* This,IDWriteFontCollectionLoader *loader) { - return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +static inline HRESULT IDWriteFactory7_UnregisterFontCollectionLoader(IDWriteFactory7* This, IDWriteFontCollectionLoader* loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This, loader); } -static inline HRESULT IDWriteFactory7_CreateFontFileReference(IDWriteFactory7* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { - return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +static inline HRESULT IDWriteFactory7_CreateFontFileReference(IDWriteFactory7* This, const WCHAR* path, const FILETIME* writetime, IDWriteFontFile** font_file) { + return This->lpVtbl->CreateFontFileReference(This, path, writetime, font_file); } -static inline HRESULT IDWriteFactory7_CreateCustomFontFileReference(IDWriteFactory7* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { - return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +static inline HRESULT IDWriteFactory7_CreateCustomFontFileReference(IDWriteFactory7* This, const void* reference_key, UINT32 key_size, IDWriteFontFileLoader* loader, IDWriteFontFile** font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file); } -static inline HRESULT IDWriteFactory7_CreateFontFace(IDWriteFactory7* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { - return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +static inline HRESULT IDWriteFactory7_CreateFontFace(IDWriteFactory7* This, DWRITE_FONT_FACE_TYPE facetype, UINT32 files_number, IDWriteFontFile* const* font_files, UINT32 index, DWRITE_FONT_SIMULATIONS sim_flags, IDWriteFontFace** font_face) { + return This->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face); } -static inline HRESULT IDWriteFactory7_CreateRenderingParams(IDWriteFactory7* This,IDWriteRenderingParams **params) { - return This->lpVtbl->CreateRenderingParams(This,params); +static inline HRESULT IDWriteFactory7_CreateRenderingParams(IDWriteFactory7* This, IDWriteRenderingParams** params) { + return This->lpVtbl->CreateRenderingParams(This, params); } -static inline HRESULT IDWriteFactory7_CreateMonitorRenderingParams(IDWriteFactory7* This,HMONITOR monitor,IDWriteRenderingParams **params) { - return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +static inline HRESULT IDWriteFactory7_CreateMonitorRenderingParams(IDWriteFactory7* This, HMONITOR monitor, IDWriteRenderingParams** params) { + return This->lpVtbl->CreateMonitorRenderingParams(This, monitor, params); } -static inline HRESULT IDWriteFactory7_RegisterFontFileLoader(IDWriteFactory7* This,IDWriteFontFileLoader *loader) { - return This->lpVtbl->RegisterFontFileLoader(This,loader); +static inline HRESULT IDWriteFactory7_RegisterFontFileLoader(IDWriteFactory7* This, IDWriteFontFileLoader* loader) { + return This->lpVtbl->RegisterFontFileLoader(This, loader); } -static inline HRESULT IDWriteFactory7_UnregisterFontFileLoader(IDWriteFactory7* This,IDWriteFontFileLoader *loader) { - return This->lpVtbl->UnregisterFontFileLoader(This,loader); +static inline HRESULT IDWriteFactory7_UnregisterFontFileLoader(IDWriteFactory7* This, IDWriteFontFileLoader* loader) { + return This->lpVtbl->UnregisterFontFileLoader(This, loader); } -static inline HRESULT IDWriteFactory7_CreateTypography(IDWriteFactory7* This,IDWriteTypography **typography) { - return This->lpVtbl->CreateTypography(This,typography); +static inline HRESULT IDWriteFactory7_CreateTypography(IDWriteFactory7* This, IDWriteTypography** typography) { + return This->lpVtbl->CreateTypography(This, typography); } -static inline HRESULT IDWriteFactory7_GetGdiInterop(IDWriteFactory7* This,IDWriteGdiInterop **gdi_interop) { - return This->lpVtbl->GetGdiInterop(This,gdi_interop); +static inline HRESULT IDWriteFactory7_GetGdiInterop(IDWriteFactory7* This, IDWriteGdiInterop** gdi_interop) { + return This->lpVtbl->GetGdiInterop(This, gdi_interop); } -static inline HRESULT IDWriteFactory7_CreateTextLayout(IDWriteFactory7* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { - return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +static inline HRESULT IDWriteFactory7_CreateTextLayout(IDWriteFactory7* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT max_width, FLOAT max_height, IDWriteTextLayout** layout) { + return This->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout); } -static inline HRESULT IDWriteFactory7_CreateGdiCompatibleTextLayout(IDWriteFactory7* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { - return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +static inline HRESULT IDWriteFactory7_CreateGdiCompatibleTextLayout(IDWriteFactory7* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT layout_width, FLOAT layout_height, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, IDWriteTextLayout** layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout); } -static inline HRESULT IDWriteFactory7_CreateEllipsisTrimmingSign(IDWriteFactory7* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { - return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +static inline HRESULT IDWriteFactory7_CreateEllipsisTrimmingSign(IDWriteFactory7* This, IDWriteTextFormat* format, IDWriteInlineObject** trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign); } -static inline HRESULT IDWriteFactory7_CreateTextAnalyzer(IDWriteFactory7* This,IDWriteTextAnalyzer **analyzer) { - return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +static inline HRESULT IDWriteFactory7_CreateTextAnalyzer(IDWriteFactory7* This, IDWriteTextAnalyzer** analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This, analyzer); } -static inline HRESULT IDWriteFactory7_CreateNumberSubstitution(IDWriteFactory7* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { - return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +static inline HRESULT IDWriteFactory7_CreateNumberSubstitution(IDWriteFactory7* This, DWRITE_NUMBER_SUBSTITUTION_METHOD method, const WCHAR* locale, WINBOOL ignore_user_override, IDWriteNumberSubstitution** substitution) { + return This->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution); } /*** IDWriteFactory1 methods ***/ -static inline HRESULT IDWriteFactory7_GetEudcFontCollection(IDWriteFactory7* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { - return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); +static inline HRESULT IDWriteFactory7_GetEudcFontCollection(IDWriteFactory7* This, IDWriteFontCollection** collection, WINBOOL check_for_updates) { + return This->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates); } /*** IDWriteFactory2 methods ***/ -static inline HRESULT IDWriteFactory7_GetSystemFontFallback(IDWriteFactory7* This,IDWriteFontFallback **fallback) { - return This->lpVtbl->GetSystemFontFallback(This,fallback); +static inline HRESULT IDWriteFactory7_GetSystemFontFallback(IDWriteFactory7* This, IDWriteFontFallback** fallback) { + return This->lpVtbl->GetSystemFontFallback(This, fallback); } -static inline HRESULT IDWriteFactory7_CreateFontFallbackBuilder(IDWriteFactory7* This,IDWriteFontFallbackBuilder **fallbackbuilder) { - return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); +static inline HRESULT IDWriteFactory7_CreateFontFallbackBuilder(IDWriteFactory7* This, IDWriteFontFallbackBuilder** fallbackbuilder) { + return This->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder); } /*** IDWriteFactory3 methods ***/ -static inline HRESULT IDWriteFactory7_CreateGlyphRunAnalysis(IDWriteFactory7* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) { - return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis); +static inline HRESULT IDWriteFactory7_CreateGlyphRunAnalysis(IDWriteFactory7* This, const DWRITE_GLYPH_RUN* run, const DWRITE_MATRIX* transform, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_MEASURING_MODE measuring_mode, DWRITE_GRID_FIT_MODE gridfit_mode, DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, FLOAT origin_x, FLOAT origin_y, IDWriteGlyphRunAnalysis** analysis) { + return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis); } -static inline HRESULT IDWriteFactory7_CreateCustomRenderingParams(IDWriteFactory7* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) { - return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params); +static inline HRESULT IDWriteFactory7_CreateCustomRenderingParams(IDWriteFactory7* This, FLOAT gamma, FLOAT enhanced_contrast, FLOAT grayscale_enhanced_contrast, FLOAT cleartype_level, DWRITE_PIXEL_GEOMETRY pixel_geometry, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_GRID_FIT_MODE gridfit_mode, IDWriteRenderingParams3** params) { + return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params); } -static inline HRESULT IDWriteFactory7_CreateFontFaceReference_(IDWriteFactory7* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { - return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference); +static inline HRESULT IDWriteFactory7_CreateFontFaceReference_(IDWriteFactory7* This, IDWriteFontFile* file, UINT32 index, DWRITE_FONT_SIMULATIONS simulations, IDWriteFontFaceReference** reference) { + return This->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference); } -static inline HRESULT IDWriteFactory7_GetFontDownloadQueue(IDWriteFactory7* This,IDWriteFontDownloadQueue **queue) { - return This->lpVtbl->GetFontDownloadQueue(This,queue); +static inline HRESULT IDWriteFactory7_GetFontDownloadQueue(IDWriteFactory7* This, IDWriteFontDownloadQueue** queue) { + return This->lpVtbl->GetFontDownloadQueue(This, queue); } /*** IDWriteFactory4 methods ***/ -static inline HRESULT IDWriteFactory7_TranslateColorGlyphRun(IDWriteFactory7* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) { - return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers); +static inline HRESULT IDWriteFactory7_TranslateColorGlyphRun(IDWriteFactory7* This, D2D1_POINT_2F baseline_origin, const DWRITE_GLYPH_RUN* run, const DWRITE_GLYPH_RUN_DESCRIPTION* run_desc, DWRITE_GLYPH_IMAGE_FORMATS desired_formats, DWRITE_MEASURING_MODE measuring_mode, const DWRITE_MATRIX* transform, UINT32 palette, IDWriteColorGlyphRunEnumerator1** layers) { + return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers); } -static inline HRESULT IDWriteFactory7_ComputeGlyphOrigins_(IDWriteFactory7* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) { - return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins); +static inline HRESULT IDWriteFactory7_ComputeGlyphOrigins_(IDWriteFactory7* This, const DWRITE_GLYPH_RUN* run, D2D1_POINT_2F baseline_origin, D2D1_POINT_2F* origins) { + return This->lpVtbl->ComputeGlyphOrigins_(This, run, baseline_origin, origins); } -static inline HRESULT IDWriteFactory7_ComputeGlyphOrigins(IDWriteFactory7* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) { - return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins); +static inline HRESULT IDWriteFactory7_ComputeGlyphOrigins(IDWriteFactory7* This, const DWRITE_GLYPH_RUN* run, DWRITE_MEASURING_MODE measuring_mode, D2D1_POINT_2F baseline_origin, const DWRITE_MATRIX* transform, D2D1_POINT_2F* origins) { + return This->lpVtbl->ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins); } /*** IDWriteFactory5 methods ***/ -static inline HRESULT IDWriteFactory7_CreateInMemoryFontFileLoader(IDWriteFactory7* This,IDWriteInMemoryFontFileLoader **loader) { - return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader); +static inline HRESULT IDWriteFactory7_CreateInMemoryFontFileLoader(IDWriteFactory7* This, IDWriteInMemoryFontFileLoader** loader) { + return This->lpVtbl->CreateInMemoryFontFileLoader(This, loader); } -static inline HRESULT IDWriteFactory7_CreateHttpFontFileLoader(IDWriteFactory7* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) { - return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader); +static inline HRESULT IDWriteFactory7_CreateHttpFontFileLoader(IDWriteFactory7* This, const WCHAR* referrer_url, const WCHAR* extra_headers, IDWriteRemoteFontFileLoader** loader) { + return This->lpVtbl->CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader); } -static inline DWRITE_CONTAINER_TYPE IDWriteFactory7_AnalyzeContainerType(IDWriteFactory7* This,const void *data,UINT32 data_size) { - return This->lpVtbl->AnalyzeContainerType(This,data,data_size); +static inline DWRITE_CONTAINER_TYPE IDWriteFactory7_AnalyzeContainerType(IDWriteFactory7* This, const void* data, UINT32 data_size) { + return This->lpVtbl->AnalyzeContainerType(This, data, data_size); } -static inline HRESULT IDWriteFactory7_UnpackFontFile(IDWriteFactory7* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) { - return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream); +static inline HRESULT IDWriteFactory7_UnpackFontFile(IDWriteFactory7* This, DWRITE_CONTAINER_TYPE container_type, const void* data, UINT32 data_size, IDWriteFontFileStream** stream) { + return This->lpVtbl->UnpackFontFile(This, container_type, data, data_size, stream); } /*** IDWriteFactory6 methods ***/ -static inline HRESULT IDWriteFactory7_CreateFontFaceReference(IDWriteFactory7* This,IDWriteFontFile *file,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,IDWriteFontFaceReference1 **face_ref) { - return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref); +static inline HRESULT IDWriteFactory7_CreateFontFaceReference(IDWriteFactory7* This, IDWriteFontFile* file, UINT32 face_index, DWRITE_FONT_SIMULATIONS simulations, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_axis, IDWriteFontFaceReference1** face_ref) { + return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This, file, face_index, simulations, axis_values, num_axis, face_ref); } -static inline HRESULT IDWriteFactory7_CreateFontResource(IDWriteFactory7* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) { - return This->lpVtbl->CreateFontResource(This,file,face_index,resource); +static inline HRESULT IDWriteFactory7_CreateFontResource(IDWriteFactory7* This, IDWriteFontFile* file, UINT32 face_index, IDWriteFontResource** resource) { + return This->lpVtbl->CreateFontResource(This, file, face_index, resource); } -static inline HRESULT IDWriteFactory7_CreateFontCollectionFromFontSet(IDWriteFactory7* This,IDWriteFontSet *fontset,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) { - return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection); +static inline HRESULT IDWriteFactory7_CreateFontCollectionFromFontSet(IDWriteFactory7* This, IDWriteFontSet* fontset, DWRITE_FONT_FAMILY_MODEL family_model, IDWriteFontCollection2** collection) { + return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This, fontset, family_model, collection); } -static inline HRESULT IDWriteFactory7_CreateFontSetBuilder(IDWriteFactory7* This,IDWriteFontSetBuilder2 **builder) { - return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder); +static inline HRESULT IDWriteFactory7_CreateFontSetBuilder(IDWriteFactory7* This, IDWriteFontSetBuilder2** builder) { + return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This, builder); } -static inline HRESULT IDWriteFactory7_CreateTextFormat(IDWriteFactory7* This,const WCHAR *familyname,IDWriteFontCollection *collection,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,FLOAT fontsize,const WCHAR *localename,IDWriteTextFormat3 **format) { - return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format); +static inline HRESULT IDWriteFactory7_CreateTextFormat(IDWriteFactory7* This, const WCHAR* familyname, IDWriteFontCollection* collection, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_axis, FLOAT fontsize, const WCHAR* localename, IDWriteTextFormat3** format) { + return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This, familyname, collection, axis_values, num_axis, fontsize, localename, format); } /*** IDWriteFactory7 methods ***/ -static inline HRESULT IDWriteFactory7_GetSystemFontSet(IDWriteFactory7* This,WINBOOL include_downloadable,IDWriteFontSet2 **fontset) { - return This->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset); +static inline HRESULT IDWriteFactory7_GetSystemFontSet(IDWriteFactory7* This, WINBOOL include_downloadable, IDWriteFontSet2** fontset) { + return This->lpVtbl->IDWriteFactory7_GetSystemFontSet(This, include_downloadable, fontset); } -static inline HRESULT IDWriteFactory7_GetSystemFontCollection(IDWriteFactory7* This,WINBOOL include_downloadable,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection3 **collection) { - return This->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection); +static inline HRESULT IDWriteFactory7_GetSystemFontCollection(IDWriteFactory7* This, WINBOOL include_downloadable, DWRITE_FONT_FAMILY_MODEL family_model, IDWriteFontCollection3** collection) { + return This->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This, include_downloadable, family_model, collection); } #endif #endif #endif - -#endif /* __IDWriteFactory7_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFactory7_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteFactory8 interface @@ -14160,630 +13989,627 @@ static inline HRESULT IDWriteFactory7_GetSystemFontCollection(IDWriteFactory7* T #ifndef __IDWriteFactory8_INTERFACE_DEFINED__ #define __IDWriteFactory8_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteFactory8, 0xee0a7fb5, 0xdef4, 0x4c23, 0xa4,0x54, 0xc9,0xc7,0xdc,0x87,0x83,0x98); +DEFINE_GUID(IID_IDWriteFactory8, 0xee0a7fb5, 0xdef4, 0x4c23, 0xa4, 0x54, 0xc9, 0xc7, 0xdc, 0x87, 0x83, 0x98); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("ee0a7fb5-def4-4c23-a454-c9c7dc878398") -IDWriteFactory8 : public IDWriteFactory7 -{ - virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun( - D2D1_POINT_2F origin, - const DWRITE_GLYPH_RUN *glyph_run, - const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc, - DWRITE_GLYPH_IMAGE_FORMATS image_formats, - DWRITE_PAINT_FEATURE_LEVEL feature_level, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_MATRIX *world_and_dpi_transform, - UINT32 palette_index, - IDWriteColorGlyphRunEnumerator1 **enumerator) = 0; - +IDWriteFactory8 : public IDWriteFactory7 { + virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun( + D2D1_POINT_2F origin, + const DWRITE_GLYPH_RUN* glyph_run, + const DWRITE_GLYPH_RUN_DESCRIPTION* glyph_run_desc, + DWRITE_GLYPH_IMAGE_FORMATS image_formats, + DWRITE_PAINT_FEATURE_LEVEL feature_level, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX* world_and_dpi_transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator1** enumerator) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFactory8, 0xee0a7fb5, 0xdef4, 0x4c23, 0xa4,0x54, 0xc9,0xc7,0xdc,0x87,0x83,0x98) +__CRT_UUID_DECL(IDWriteFactory8, 0xee0a7fb5, 0xdef4, 0x4c23, 0xa4, 0x54, 0xc9, 0xc7, 0xdc, 0x87, 0x83, 0x98) #endif #else typedef struct IDWriteFactory8Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteFactory8 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteFactory8* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteFactory8 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteFactory8* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteFactory8 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteFactory8* This); - /*** IDWriteFactory methods ***/ - HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( - IDWriteFactory8 *This, - IDWriteFontCollection **collection, - WINBOOL check_for_updates); + /*** IDWriteFactory methods ***/ + HRESULT(STDMETHODCALLTYPE* GetSystemFontCollection)( + IDWriteFactory8* This, + IDWriteFontCollection** collection, + WINBOOL check_for_updates); - HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( - IDWriteFactory8 *This, - IDWriteFontCollectionLoader *loader, - const void *key, - UINT32 key_size, - IDWriteFontCollection **collection); + HRESULT(STDMETHODCALLTYPE* CreateCustomFontCollection)( + IDWriteFactory8* This, + IDWriteFontCollectionLoader* loader, + const void* key, + UINT32 key_size, + IDWriteFontCollection** collection); - HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( - IDWriteFactory8 *This, - IDWriteFontCollectionLoader *loader); + HRESULT(STDMETHODCALLTYPE* RegisterFontCollectionLoader)( + IDWriteFactory8* This, + IDWriteFontCollectionLoader* loader); - HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( - IDWriteFactory8 *This, - IDWriteFontCollectionLoader *loader); + HRESULT(STDMETHODCALLTYPE* UnregisterFontCollectionLoader)( + IDWriteFactory8* This, + IDWriteFontCollectionLoader* loader); - HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( - IDWriteFactory8 *This, - const WCHAR *path, - const FILETIME *writetime, - IDWriteFontFile **font_file); + HRESULT(STDMETHODCALLTYPE* CreateFontFileReference)( + IDWriteFactory8* This, + const WCHAR* path, + const FILETIME* writetime, + IDWriteFontFile** font_file); - HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( - IDWriteFactory8 *This, - const void *reference_key, - UINT32 key_size, - IDWriteFontFileLoader *loader, - IDWriteFontFile **font_file); + HRESULT(STDMETHODCALLTYPE* CreateCustomFontFileReference)( + IDWriteFactory8* This, + const void* reference_key, + UINT32 key_size, + IDWriteFontFileLoader* loader, + IDWriteFontFile** font_file); - HRESULT (STDMETHODCALLTYPE *CreateFontFace)( - IDWriteFactory8 *This, - DWRITE_FONT_FACE_TYPE facetype, - UINT32 files_number, - IDWriteFontFile *const *font_files, - UINT32 index, - DWRITE_FONT_SIMULATIONS sim_flags, - IDWriteFontFace **font_face); + HRESULT(STDMETHODCALLTYPE* CreateFontFace)( + IDWriteFactory8* This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile* const* font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace** font_face); - HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( - IDWriteFactory8 *This, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateRenderingParams)( + IDWriteFactory8* This, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( - IDWriteFactory8 *This, - HMONITOR monitor, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateMonitorRenderingParams)( + IDWriteFactory8* This, + HMONITOR monitor, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( - IDWriteFactory8 *This, - FLOAT gamma, - FLOAT enhancedContrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams **params); + HRESULT(STDMETHODCALLTYPE* CreateCustomRenderingParams)( + IDWriteFactory8* This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams** params); - HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( - IDWriteFactory8 *This, - IDWriteFontFileLoader *loader); + HRESULT(STDMETHODCALLTYPE* RegisterFontFileLoader)( + IDWriteFactory8* This, + IDWriteFontFileLoader* loader); - HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( - IDWriteFactory8 *This, - IDWriteFontFileLoader *loader); + HRESULT(STDMETHODCALLTYPE* UnregisterFontFileLoader)( + IDWriteFactory8* This, + IDWriteFontFileLoader* loader); - HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( - IDWriteFactory8 *This, - const WCHAR *family_name, - IDWriteFontCollection *collection, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STYLE style, - DWRITE_FONT_STRETCH stretch, - FLOAT size, - const WCHAR *locale, - IDWriteTextFormat **format); + HRESULT(STDMETHODCALLTYPE* CreateTextFormat)( + IDWriteFactory8* This, + const WCHAR* family_name, + IDWriteFontCollection* collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR* locale, + IDWriteTextFormat** format); - HRESULT (STDMETHODCALLTYPE *CreateTypography)( - IDWriteFactory8 *This, - IDWriteTypography **typography); + HRESULT(STDMETHODCALLTYPE* CreateTypography)( + IDWriteFactory8* This, + IDWriteTypography** typography); - HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( - IDWriteFactory8 *This, - IDWriteGdiInterop **gdi_interop); + HRESULT(STDMETHODCALLTYPE* GetGdiInterop)( + IDWriteFactory8* This, + IDWriteGdiInterop** gdi_interop); - HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( - IDWriteFactory8 *This, - const WCHAR *string, - UINT32 len, - IDWriteTextFormat *format, - FLOAT max_width, - FLOAT max_height, - IDWriteTextLayout **layout); + HRESULT(STDMETHODCALLTYPE* CreateTextLayout)( + IDWriteFactory8* This, + const WCHAR* string, + UINT32 len, + IDWriteTextFormat* format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout** layout); - HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( - IDWriteFactory8 *This, - const WCHAR *string, - UINT32 len, - IDWriteTextFormat *format, - FLOAT layout_width, - FLOAT layout_height, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - WINBOOL use_gdi_natural, - IDWriteTextLayout **layout); + HRESULT(STDMETHODCALLTYPE* CreateGdiCompatibleTextLayout)( + IDWriteFactory8* This, + const WCHAR* string, + UINT32 len, + IDWriteTextFormat* format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout** layout); - HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( - IDWriteFactory8 *This, - IDWriteTextFormat *format, - IDWriteInlineObject **trimming_sign); + HRESULT(STDMETHODCALLTYPE* CreateEllipsisTrimmingSign)( + IDWriteFactory8* This, + IDWriteTextFormat* format, + IDWriteInlineObject** trimming_sign); - HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( - IDWriteFactory8 *This, - IDWriteTextAnalyzer **analyzer); + HRESULT(STDMETHODCALLTYPE* CreateTextAnalyzer)( + IDWriteFactory8* This, + IDWriteTextAnalyzer** analyzer); - HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( - IDWriteFactory8 *This, - DWRITE_NUMBER_SUBSTITUTION_METHOD method, - const WCHAR *locale, - WINBOOL ignore_user_override, - IDWriteNumberSubstitution **substitution); + HRESULT(STDMETHODCALLTYPE* CreateNumberSubstitution)( + IDWriteFactory8* This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR* locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution** substitution); - HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( - IDWriteFactory8 *This, - const DWRITE_GLYPH_RUN *glyph_run, - FLOAT pixels_per_dip, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - FLOAT baseline_x, - FLOAT baseline_y, - IDWriteGlyphRunAnalysis **analysis); + HRESULT(STDMETHODCALLTYPE* CreateGlyphRunAnalysis)( + IDWriteFactory8* This, + const DWRITE_GLYPH_RUN* glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis** analysis); - /*** IDWriteFactory1 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( - IDWriteFactory8 *This, - IDWriteFontCollection **collection, - WINBOOL check_for_updates); + /*** IDWriteFactory1 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetEudcFontCollection)( + IDWriteFactory8* This, + IDWriteFontCollection** collection, + WINBOOL check_for_updates); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( - IDWriteFactory8 *This, - FLOAT gamma, - FLOAT enhcontrast, - FLOAT enhcontrast_grayscale, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams1 **params); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory1_CreateCustomRenderingParams)( + IDWriteFactory8* This, + FLOAT gamma, + FLOAT enhcontrast, + FLOAT enhcontrast_grayscale, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams1** params); - /*** IDWriteFactory2 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)( - IDWriteFactory8 *This, - IDWriteFontFallback **fallback); + /*** IDWriteFactory2 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetSystemFontFallback)( + IDWriteFactory8* This, + IDWriteFontFallback** fallback); - HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)( - IDWriteFactory8 *This, - IDWriteFontFallbackBuilder **fallbackbuilder); + HRESULT(STDMETHODCALLTYPE* CreateFontFallbackBuilder)( + IDWriteFactory8* This, + IDWriteFontFallbackBuilder** fallbackbuilder); - HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)( - IDWriteFactory8 *This, - FLOAT originX, - FLOAT originY, - const DWRITE_GLYPH_RUN *run, - const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, - DWRITE_MEASURING_MODE mode, - const DWRITE_MATRIX *transform, - UINT32 palette_index, - IDWriteColorGlyphRunEnumerator **colorlayers); + HRESULT(STDMETHODCALLTYPE* TranslateColorGlyphRun)( + IDWriteFactory8* This, + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN* run, + const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX* transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator** colorlayers); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)( - IDWriteFactory8 *This, - FLOAT gamma, - FLOAT contrast, - FLOAT grayscalecontrast, - FLOAT cleartypeLevel, - DWRITE_PIXEL_GEOMETRY pixelGeometry, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_GRID_FIT_MODE gridFitMode, - IDWriteRenderingParams2 **params); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateCustomRenderingParams)( + IDWriteFactory8* This, + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2** params); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)( - IDWriteFactory8 *This, - const DWRITE_GLYPH_RUN *run, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_MEASURING_MODE measuringMode, - DWRITE_GRID_FIT_MODE gridFitMode, - DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, - FLOAT originX, - FLOAT originY, - IDWriteGlyphRunAnalysis **analysis); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateGlyphRunAnalysis)( + IDWriteFactory8* This, + const DWRITE_GLYPH_RUN* run, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis** analysis); - /*** IDWriteFactory3 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)( - IDWriteFactory8 *This, - const DWRITE_GLYPH_RUN *run, - const DWRITE_MATRIX *transform, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, - FLOAT origin_x, - FLOAT origin_y, - IDWriteGlyphRunAnalysis **analysis); + /*** IDWriteFactory3 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateGlyphRunAnalysis)( + IDWriteFactory8* This, + const DWRITE_GLYPH_RUN* run, + const DWRITE_MATRIX* transform, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, + FLOAT origin_x, + FLOAT origin_y, + IDWriteGlyphRunAnalysis** analysis); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)( - IDWriteFactory8 *This, - FLOAT gamma, - FLOAT enhanced_contrast, - FLOAT grayscale_enhanced_contrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY pixel_geometry, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - IDWriteRenderingParams3 **params); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateCustomRenderingParams)( + IDWriteFactory8* This, + FLOAT gamma, + FLOAT enhanced_contrast, + FLOAT grayscale_enhanced_contrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY pixel_geometry, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + IDWriteRenderingParams3** params); - HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)( - IDWriteFactory8 *This, - IDWriteFontFile *file, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference **reference); + HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference_)( + IDWriteFactory8* This, + IDWriteFontFile* file, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference** reference); - HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)( - IDWriteFactory8 *This, - const WCHAR *path, - const FILETIME *writetime, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference **reference); + HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference)( + IDWriteFactory8* This, + const WCHAR* path, + const FILETIME* writetime, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference** reference); - HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)( - IDWriteFactory8 *This, - IDWriteFontSet **fontset); + HRESULT(STDMETHODCALLTYPE* GetSystemFontSet)( + IDWriteFactory8* This, + IDWriteFontSet** fontset); - HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)( - IDWriteFactory8 *This, - IDWriteFontSetBuilder **builder); + HRESULT(STDMETHODCALLTYPE* CreateFontSetBuilder)( + IDWriteFactory8* This, + IDWriteFontSetBuilder** builder); - HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)( - IDWriteFactory8 *This, - IDWriteFontSet *fontset, - IDWriteFontCollection1 **collection); + HRESULT(STDMETHODCALLTYPE* CreateFontCollectionFromFontSet)( + IDWriteFactory8* This, + IDWriteFontSet* fontset, + IDWriteFontCollection1** collection); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)( - IDWriteFactory8 *This, - WINBOOL include_downloadable, - IDWriteFontCollection1 **collection, - WINBOOL check_for_updates); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_GetSystemFontCollection)( + IDWriteFactory8* This, + WINBOOL include_downloadable, + IDWriteFontCollection1** collection, + WINBOOL check_for_updates); - HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)( - IDWriteFactory8 *This, - IDWriteFontDownloadQueue **queue); + HRESULT(STDMETHODCALLTYPE* GetFontDownloadQueue)( + IDWriteFactory8* This, + IDWriteFontDownloadQueue** queue); - /*** IDWriteFactory4 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)( - IDWriteFactory8 *This, - D2D1_POINT_2F baseline_origin, - const DWRITE_GLYPH_RUN *run, - const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc, - DWRITE_GLYPH_IMAGE_FORMATS desired_formats, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_MATRIX *transform, - UINT32 palette, - IDWriteColorGlyphRunEnumerator1 **layers); + /*** IDWriteFactory4 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFactory4_TranslateColorGlyphRun)( + IDWriteFactory8* This, + D2D1_POINT_2F baseline_origin, + const DWRITE_GLYPH_RUN* run, + const DWRITE_GLYPH_RUN_DESCRIPTION* run_desc, + DWRITE_GLYPH_IMAGE_FORMATS desired_formats, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX* transform, + UINT32 palette, + IDWriteColorGlyphRunEnumerator1** layers); - HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)( - IDWriteFactory8 *This, - const DWRITE_GLYPH_RUN *run, - D2D1_POINT_2F baseline_origin, - D2D1_POINT_2F *origins); + HRESULT(STDMETHODCALLTYPE* ComputeGlyphOrigins_)( + IDWriteFactory8* This, + const DWRITE_GLYPH_RUN* run, + D2D1_POINT_2F baseline_origin, + D2D1_POINT_2F* origins); - HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)( - IDWriteFactory8 *This, - const DWRITE_GLYPH_RUN *run, - DWRITE_MEASURING_MODE measuring_mode, - D2D1_POINT_2F baseline_origin, - const DWRITE_MATRIX *transform, - D2D1_POINT_2F *origins); + HRESULT(STDMETHODCALLTYPE* ComputeGlyphOrigins)( + IDWriteFactory8* This, + const DWRITE_GLYPH_RUN* run, + DWRITE_MEASURING_MODE measuring_mode, + D2D1_POINT_2F baseline_origin, + const DWRITE_MATRIX* transform, + D2D1_POINT_2F* origins); - /*** IDWriteFactory5 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)( - IDWriteFactory8 *This, - IDWriteFontSetBuilder1 **fontset_builder); + /*** IDWriteFactory5 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFactory5_CreateFontSetBuilder)( + IDWriteFactory8* This, + IDWriteFontSetBuilder1** fontset_builder); - HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)( - IDWriteFactory8 *This, - IDWriteInMemoryFontFileLoader **loader); + HRESULT(STDMETHODCALLTYPE* CreateInMemoryFontFileLoader)( + IDWriteFactory8* This, + IDWriteInMemoryFontFileLoader** loader); - HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)( - IDWriteFactory8 *This, - const WCHAR *referrer_url, - const WCHAR *extra_headers, - IDWriteRemoteFontFileLoader **loader); + HRESULT(STDMETHODCALLTYPE* CreateHttpFontFileLoader)( + IDWriteFactory8* This, + const WCHAR* referrer_url, + const WCHAR* extra_headers, + IDWriteRemoteFontFileLoader** loader); - DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)( - IDWriteFactory8 *This, - const void *data, - UINT32 data_size); + DWRITE_CONTAINER_TYPE(STDMETHODCALLTYPE* AnalyzeContainerType)( + IDWriteFactory8* This, + const void* data, + UINT32 data_size); - HRESULT (STDMETHODCALLTYPE *UnpackFontFile)( - IDWriteFactory8 *This, - DWRITE_CONTAINER_TYPE container_type, - const void *data, - UINT32 data_size, - IDWriteFontFileStream **stream); + HRESULT(STDMETHODCALLTYPE* UnpackFontFile)( + IDWriteFactory8* This, + DWRITE_CONTAINER_TYPE container_type, + const void* data, + UINT32 data_size, + IDWriteFontFileStream** stream); - /*** IDWriteFactory6 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontFaceReference)( - IDWriteFactory8 *This, - IDWriteFontFile *file, - UINT32 face_index, - DWRITE_FONT_SIMULATIONS simulations, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_axis, - IDWriteFontFaceReference1 **face_ref); + /*** IDWriteFactory6 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateFontFaceReference)( + IDWriteFactory8* This, + IDWriteFontFile* file, + UINT32 face_index, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_axis, + IDWriteFontFaceReference1** face_ref); - HRESULT (STDMETHODCALLTYPE *CreateFontResource)( - IDWriteFactory8 *This, - IDWriteFontFile *file, - UINT32 face_index, - IDWriteFontResource **resource); + HRESULT(STDMETHODCALLTYPE* CreateFontResource)( + IDWriteFactory8* This, + IDWriteFontFile* file, + UINT32 face_index, + IDWriteFontResource** resource); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontSet)( - IDWriteFactory8 *This, - WINBOOL include_downloadable, - IDWriteFontSet1 **fontset); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_GetSystemFontSet)( + IDWriteFactory8* This, + WINBOOL include_downloadable, + IDWriteFontSet1** fontset); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontCollection)( - IDWriteFactory8 *This, - WINBOOL include_downloadable, - DWRITE_FONT_FAMILY_MODEL family_model, - IDWriteFontCollection2 **collection); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_GetSystemFontCollection)( + IDWriteFactory8* This, + WINBOOL include_downloadable, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2** collection); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontCollectionFromFontSet)( - IDWriteFactory8 *This, - IDWriteFontSet *fontset, - DWRITE_FONT_FAMILY_MODEL family_model, - IDWriteFontCollection2 **collection); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateFontCollectionFromFontSet)( + IDWriteFactory8* This, + IDWriteFontSet* fontset, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2** collection); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontSetBuilder)( - IDWriteFactory8 *This, - IDWriteFontSetBuilder2 **builder); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateFontSetBuilder)( + IDWriteFactory8* This, + IDWriteFontSetBuilder2** builder); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateTextFormat)( - IDWriteFactory8 *This, - const WCHAR *familyname, - IDWriteFontCollection *collection, - const DWRITE_FONT_AXIS_VALUE *axis_values, - UINT32 num_axis, - FLOAT fontsize, - const WCHAR *localename, - IDWriteTextFormat3 **format); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateTextFormat)( + IDWriteFactory8* This, + const WCHAR* familyname, + IDWriteFontCollection* collection, + const DWRITE_FONT_AXIS_VALUE* axis_values, + UINT32 num_axis, + FLOAT fontsize, + const WCHAR* localename, + IDWriteTextFormat3** format); - /*** IDWriteFactory7 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontSet)( - IDWriteFactory8 *This, - WINBOOL include_downloadable, - IDWriteFontSet2 **fontset); + /*** IDWriteFactory7 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFactory7_GetSystemFontSet)( + IDWriteFactory8* This, + WINBOOL include_downloadable, + IDWriteFontSet2** fontset); - HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontCollection)( - IDWriteFactory8 *This, - WINBOOL include_downloadable, - DWRITE_FONT_FAMILY_MODEL family_model, - IDWriteFontCollection3 **collection); + HRESULT(STDMETHODCALLTYPE* IDWriteFactory7_GetSystemFontCollection)( + IDWriteFactory8* This, + WINBOOL include_downloadable, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection3** collection); - /*** IDWriteFactory8 methods ***/ - HRESULT (STDMETHODCALLTYPE *IDWriteFactory8_TranslateColorGlyphRun)( - IDWriteFactory8 *This, - D2D1_POINT_2F origin, - const DWRITE_GLYPH_RUN *glyph_run, - const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc, - DWRITE_GLYPH_IMAGE_FORMATS image_formats, - DWRITE_PAINT_FEATURE_LEVEL feature_level, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_MATRIX *world_and_dpi_transform, - UINT32 palette_index, - IDWriteColorGlyphRunEnumerator1 **enumerator); + /*** IDWriteFactory8 methods ***/ + HRESULT(STDMETHODCALLTYPE* IDWriteFactory8_TranslateColorGlyphRun)( + IDWriteFactory8* This, + D2D1_POINT_2F origin, + const DWRITE_GLYPH_RUN* glyph_run, + const DWRITE_GLYPH_RUN_DESCRIPTION* glyph_run_desc, + DWRITE_GLYPH_IMAGE_FORMATS image_formats, + DWRITE_PAINT_FEATURE_LEVEL feature_level, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX* world_and_dpi_transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator1** enumerator); - END_INTERFACE + END_INTERFACE } IDWriteFactory8Vtbl; interface IDWriteFactory8 { - CONST_VTBL IDWriteFactory8Vtbl* lpVtbl; + CONST_VTBL IDWriteFactory8Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteFactory8_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory8_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteFactory8_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteFactory8_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteFactory methods ***/ -#define IDWriteFactory8_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) -#define IDWriteFactory8_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) -#define IDWriteFactory8_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) -#define IDWriteFactory8_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) -#define IDWriteFactory8_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) -#define IDWriteFactory8_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) -#define IDWriteFactory8_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) -#define IDWriteFactory8_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) -#define IDWriteFactory8_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) -#define IDWriteFactory8_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) -#define IDWriteFactory8_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) -#define IDWriteFactory8_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) -#define IDWriteFactory8_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) -#define IDWriteFactory8_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) -#define IDWriteFactory8_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) -#define IDWriteFactory8_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) -#define IDWriteFactory8_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +#define IDWriteFactory8_CreateCustomFontCollection(This, loader, key, key_size, collection) (This)->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection) +#define IDWriteFactory8_RegisterFontCollectionLoader(This, loader) (This)->lpVtbl->RegisterFontCollectionLoader(This, loader) +#define IDWriteFactory8_UnregisterFontCollectionLoader(This, loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This, loader) +#define IDWriteFactory8_CreateFontFileReference(This, path, writetime, font_file) (This)->lpVtbl->CreateFontFileReference(This, path, writetime, font_file) +#define IDWriteFactory8_CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) (This)->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) +#define IDWriteFactory8_CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) (This)->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) +#define IDWriteFactory8_CreateRenderingParams(This, params) (This)->lpVtbl->CreateRenderingParams(This, params) +#define IDWriteFactory8_CreateMonitorRenderingParams(This, monitor, params) (This)->lpVtbl->CreateMonitorRenderingParams(This, monitor, params) +#define IDWriteFactory8_RegisterFontFileLoader(This, loader) (This)->lpVtbl->RegisterFontFileLoader(This, loader) +#define IDWriteFactory8_UnregisterFontFileLoader(This, loader) (This)->lpVtbl->UnregisterFontFileLoader(This, loader) +#define IDWriteFactory8_CreateTypography(This, typography) (This)->lpVtbl->CreateTypography(This, typography) +#define IDWriteFactory8_GetGdiInterop(This, gdi_interop) (This)->lpVtbl->GetGdiInterop(This, gdi_interop) +#define IDWriteFactory8_CreateTextLayout(This, string, len, format, max_width, max_height, layout) (This)->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout) +#define IDWriteFactory8_CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) +#define IDWriteFactory8_CreateEllipsisTrimmingSign(This, format, trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign) +#define IDWriteFactory8_CreateTextAnalyzer(This, analyzer) (This)->lpVtbl->CreateTextAnalyzer(This, analyzer) +#define IDWriteFactory8_CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) (This)->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) /*** IDWriteFactory1 methods ***/ -#define IDWriteFactory8_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) +#define IDWriteFactory8_GetEudcFontCollection(This, collection, check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates) /*** IDWriteFactory2 methods ***/ -#define IDWriteFactory8_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback) -#define IDWriteFactory8_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder) +#define IDWriteFactory8_GetSystemFontFallback(This, fallback) (This)->lpVtbl->GetSystemFontFallback(This, fallback) +#define IDWriteFactory8_CreateFontFallbackBuilder(This, fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder) /*** IDWriteFactory3 methods ***/ -#define IDWriteFactory8_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) -#define IDWriteFactory8_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) -#define IDWriteFactory8_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference) -#define IDWriteFactory8_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue) +#define IDWriteFactory8_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) +#define IDWriteFactory8_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) +#define IDWriteFactory8_CreateFontFaceReference_(This, file, index, simulations, reference) (This)->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference) +#define IDWriteFactory8_GetFontDownloadQueue(This, queue) (This)->lpVtbl->GetFontDownloadQueue(This, queue) /*** IDWriteFactory4 methods ***/ -#define IDWriteFactory8_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins) -#define IDWriteFactory8_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) +#define IDWriteFactory8_ComputeGlyphOrigins_(This, run, baseline_origin, origins) (This)->lpVtbl->ComputeGlyphOrigins_(This, run, baseline_origin, origins) +#define IDWriteFactory8_ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins) (This)->lpVtbl->ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins) /*** IDWriteFactory5 methods ***/ -#define IDWriteFactory8_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader) -#define IDWriteFactory8_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) -#define IDWriteFactory8_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size) -#define IDWriteFactory8_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream) +#define IDWriteFactory8_CreateInMemoryFontFileLoader(This, loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This, loader) +#define IDWriteFactory8_CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader) (This)->lpVtbl->CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader) +#define IDWriteFactory8_AnalyzeContainerType(This, data, data_size) (This)->lpVtbl->AnalyzeContainerType(This, data, data_size) +#define IDWriteFactory8_UnpackFontFile(This, container_type, data, data_size, stream) (This)->lpVtbl->UnpackFontFile(This, container_type, data, data_size, stream) /*** IDWriteFactory6 methods ***/ -#define IDWriteFactory8_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) -#define IDWriteFactory8_CreateFontResource(This,file,face_index,resource) (This)->lpVtbl->CreateFontResource(This,file,face_index,resource) -#define IDWriteFactory8_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) -#define IDWriteFactory8_CreateFontSetBuilder(This,builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder) -#define IDWriteFactory8_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) +#define IDWriteFactory8_CreateFontFaceReference(This, file, face_index, simulations, axis_values, num_axis, face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This, file, face_index, simulations, axis_values, num_axis, face_ref) +#define IDWriteFactory8_CreateFontResource(This, file, face_index, resource) (This)->lpVtbl->CreateFontResource(This, file, face_index, resource) +#define IDWriteFactory8_CreateFontCollectionFromFontSet(This, fontset, family_model, collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This, fontset, family_model, collection) +#define IDWriteFactory8_CreateFontSetBuilder(This, builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This, builder) +#define IDWriteFactory8_CreateTextFormat(This, familyname, collection, axis_values, num_axis, fontsize, localename, format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This, familyname, collection, axis_values, num_axis, fontsize, localename, format) /*** IDWriteFactory7 methods ***/ -#define IDWriteFactory8_GetSystemFontSet(This,include_downloadable,fontset) (This)->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset) -#define IDWriteFactory8_GetSystemFontCollection(This,include_downloadable,family_model,collection) (This)->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection) +#define IDWriteFactory8_GetSystemFontSet(This, include_downloadable, fontset) (This)->lpVtbl->IDWriteFactory7_GetSystemFontSet(This, include_downloadable, fontset) +#define IDWriteFactory8_GetSystemFontCollection(This, include_downloadable, family_model, collection) (This)->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This, include_downloadable, family_model, collection) /*** IDWriteFactory8 methods ***/ -#define IDWriteFactory8_TranslateColorGlyphRun(This,origin,glyph_run,glyph_run_desc,image_formats,feature_level,measuring_mode,world_and_dpi_transform,palette_index,enumerator) (This)->lpVtbl->IDWriteFactory8_TranslateColorGlyphRun(This,origin,glyph_run,glyph_run_desc,image_formats,feature_level,measuring_mode,world_and_dpi_transform,palette_index,enumerator) +#define IDWriteFactory8_TranslateColorGlyphRun(This, origin, glyph_run, glyph_run_desc, image_formats, feature_level, measuring_mode, world_and_dpi_transform, palette_index, enumerator) (This)->lpVtbl->IDWriteFactory8_TranslateColorGlyphRun(This, origin, glyph_run, glyph_run_desc, image_formats, feature_level, measuring_mode, world_and_dpi_transform, palette_index, enumerator) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteFactory8_QueryInterface(IDWriteFactory8* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteFactory8_QueryInterface(IDWriteFactory8* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteFactory8_AddRef(IDWriteFactory8* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteFactory8_Release(IDWriteFactory8* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteFactory methods ***/ -static inline HRESULT IDWriteFactory8_CreateCustomFontCollection(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { - return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +static inline HRESULT IDWriteFactory8_CreateCustomFontCollection(IDWriteFactory8* This, IDWriteFontCollectionLoader* loader, const void* key, UINT32 key_size, IDWriteFontCollection** collection) { + return This->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection); } -static inline HRESULT IDWriteFactory8_RegisterFontCollectionLoader(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader) { - return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +static inline HRESULT IDWriteFactory8_RegisterFontCollectionLoader(IDWriteFactory8* This, IDWriteFontCollectionLoader* loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This, loader); } -static inline HRESULT IDWriteFactory8_UnregisterFontCollectionLoader(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader) { - return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +static inline HRESULT IDWriteFactory8_UnregisterFontCollectionLoader(IDWriteFactory8* This, IDWriteFontCollectionLoader* loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This, loader); } -static inline HRESULT IDWriteFactory8_CreateFontFileReference(IDWriteFactory8* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { - return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +static inline HRESULT IDWriteFactory8_CreateFontFileReference(IDWriteFactory8* This, const WCHAR* path, const FILETIME* writetime, IDWriteFontFile** font_file) { + return This->lpVtbl->CreateFontFileReference(This, path, writetime, font_file); } -static inline HRESULT IDWriteFactory8_CreateCustomFontFileReference(IDWriteFactory8* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { - return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +static inline HRESULT IDWriteFactory8_CreateCustomFontFileReference(IDWriteFactory8* This, const void* reference_key, UINT32 key_size, IDWriteFontFileLoader* loader, IDWriteFontFile** font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file); } -static inline HRESULT IDWriteFactory8_CreateFontFace(IDWriteFactory8* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { - return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +static inline HRESULT IDWriteFactory8_CreateFontFace(IDWriteFactory8* This, DWRITE_FONT_FACE_TYPE facetype, UINT32 files_number, IDWriteFontFile* const* font_files, UINT32 index, DWRITE_FONT_SIMULATIONS sim_flags, IDWriteFontFace** font_face) { + return This->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face); } -static inline HRESULT IDWriteFactory8_CreateRenderingParams(IDWriteFactory8* This,IDWriteRenderingParams **params) { - return This->lpVtbl->CreateRenderingParams(This,params); +static inline HRESULT IDWriteFactory8_CreateRenderingParams(IDWriteFactory8* This, IDWriteRenderingParams** params) { + return This->lpVtbl->CreateRenderingParams(This, params); } -static inline HRESULT IDWriteFactory8_CreateMonitorRenderingParams(IDWriteFactory8* This,HMONITOR monitor,IDWriteRenderingParams **params) { - return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +static inline HRESULT IDWriteFactory8_CreateMonitorRenderingParams(IDWriteFactory8* This, HMONITOR monitor, IDWriteRenderingParams** params) { + return This->lpVtbl->CreateMonitorRenderingParams(This, monitor, params); } -static inline HRESULT IDWriteFactory8_RegisterFontFileLoader(IDWriteFactory8* This,IDWriteFontFileLoader *loader) { - return This->lpVtbl->RegisterFontFileLoader(This,loader); +static inline HRESULT IDWriteFactory8_RegisterFontFileLoader(IDWriteFactory8* This, IDWriteFontFileLoader* loader) { + return This->lpVtbl->RegisterFontFileLoader(This, loader); } -static inline HRESULT IDWriteFactory8_UnregisterFontFileLoader(IDWriteFactory8* This,IDWriteFontFileLoader *loader) { - return This->lpVtbl->UnregisterFontFileLoader(This,loader); +static inline HRESULT IDWriteFactory8_UnregisterFontFileLoader(IDWriteFactory8* This, IDWriteFontFileLoader* loader) { + return This->lpVtbl->UnregisterFontFileLoader(This, loader); } -static inline HRESULT IDWriteFactory8_CreateTypography(IDWriteFactory8* This,IDWriteTypography **typography) { - return This->lpVtbl->CreateTypography(This,typography); +static inline HRESULT IDWriteFactory8_CreateTypography(IDWriteFactory8* This, IDWriteTypography** typography) { + return This->lpVtbl->CreateTypography(This, typography); } -static inline HRESULT IDWriteFactory8_GetGdiInterop(IDWriteFactory8* This,IDWriteGdiInterop **gdi_interop) { - return This->lpVtbl->GetGdiInterop(This,gdi_interop); +static inline HRESULT IDWriteFactory8_GetGdiInterop(IDWriteFactory8* This, IDWriteGdiInterop** gdi_interop) { + return This->lpVtbl->GetGdiInterop(This, gdi_interop); } -static inline HRESULT IDWriteFactory8_CreateTextLayout(IDWriteFactory8* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { - return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +static inline HRESULT IDWriteFactory8_CreateTextLayout(IDWriteFactory8* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT max_width, FLOAT max_height, IDWriteTextLayout** layout) { + return This->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout); } -static inline HRESULT IDWriteFactory8_CreateGdiCompatibleTextLayout(IDWriteFactory8* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { - return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +static inline HRESULT IDWriteFactory8_CreateGdiCompatibleTextLayout(IDWriteFactory8* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT layout_width, FLOAT layout_height, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, IDWriteTextLayout** layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout); } -static inline HRESULT IDWriteFactory8_CreateEllipsisTrimmingSign(IDWriteFactory8* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { - return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +static inline HRESULT IDWriteFactory8_CreateEllipsisTrimmingSign(IDWriteFactory8* This, IDWriteTextFormat* format, IDWriteInlineObject** trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign); } -static inline HRESULT IDWriteFactory8_CreateTextAnalyzer(IDWriteFactory8* This,IDWriteTextAnalyzer **analyzer) { - return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +static inline HRESULT IDWriteFactory8_CreateTextAnalyzer(IDWriteFactory8* This, IDWriteTextAnalyzer** analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This, analyzer); } -static inline HRESULT IDWriteFactory8_CreateNumberSubstitution(IDWriteFactory8* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { - return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +static inline HRESULT IDWriteFactory8_CreateNumberSubstitution(IDWriteFactory8* This, DWRITE_NUMBER_SUBSTITUTION_METHOD method, const WCHAR* locale, WINBOOL ignore_user_override, IDWriteNumberSubstitution** substitution) { + return This->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution); } /*** IDWriteFactory1 methods ***/ -static inline HRESULT IDWriteFactory8_GetEudcFontCollection(IDWriteFactory8* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { - return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); +static inline HRESULT IDWriteFactory8_GetEudcFontCollection(IDWriteFactory8* This, IDWriteFontCollection** collection, WINBOOL check_for_updates) { + return This->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates); } /*** IDWriteFactory2 methods ***/ -static inline HRESULT IDWriteFactory8_GetSystemFontFallback(IDWriteFactory8* This,IDWriteFontFallback **fallback) { - return This->lpVtbl->GetSystemFontFallback(This,fallback); +static inline HRESULT IDWriteFactory8_GetSystemFontFallback(IDWriteFactory8* This, IDWriteFontFallback** fallback) { + return This->lpVtbl->GetSystemFontFallback(This, fallback); } -static inline HRESULT IDWriteFactory8_CreateFontFallbackBuilder(IDWriteFactory8* This,IDWriteFontFallbackBuilder **fallbackbuilder) { - return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); +static inline HRESULT IDWriteFactory8_CreateFontFallbackBuilder(IDWriteFactory8* This, IDWriteFontFallbackBuilder** fallbackbuilder) { + return This->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder); } /*** IDWriteFactory3 methods ***/ -static inline HRESULT IDWriteFactory8_CreateGlyphRunAnalysis(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) { - return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis); +static inline HRESULT IDWriteFactory8_CreateGlyphRunAnalysis(IDWriteFactory8* This, const DWRITE_GLYPH_RUN* run, const DWRITE_MATRIX* transform, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_MEASURING_MODE measuring_mode, DWRITE_GRID_FIT_MODE gridfit_mode, DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, FLOAT origin_x, FLOAT origin_y, IDWriteGlyphRunAnalysis** analysis) { + return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis); } -static inline HRESULT IDWriteFactory8_CreateCustomRenderingParams(IDWriteFactory8* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) { - return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params); +static inline HRESULT IDWriteFactory8_CreateCustomRenderingParams(IDWriteFactory8* This, FLOAT gamma, FLOAT enhanced_contrast, FLOAT grayscale_enhanced_contrast, FLOAT cleartype_level, DWRITE_PIXEL_GEOMETRY pixel_geometry, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_GRID_FIT_MODE gridfit_mode, IDWriteRenderingParams3** params) { + return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params); } -static inline HRESULT IDWriteFactory8_CreateFontFaceReference_(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { - return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference); +static inline HRESULT IDWriteFactory8_CreateFontFaceReference_(IDWriteFactory8* This, IDWriteFontFile* file, UINT32 index, DWRITE_FONT_SIMULATIONS simulations, IDWriteFontFaceReference** reference) { + return This->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference); } -static inline HRESULT IDWriteFactory8_GetFontDownloadQueue(IDWriteFactory8* This,IDWriteFontDownloadQueue **queue) { - return This->lpVtbl->GetFontDownloadQueue(This,queue); +static inline HRESULT IDWriteFactory8_GetFontDownloadQueue(IDWriteFactory8* This, IDWriteFontDownloadQueue** queue) { + return This->lpVtbl->GetFontDownloadQueue(This, queue); } /*** IDWriteFactory4 methods ***/ -static inline HRESULT IDWriteFactory8_ComputeGlyphOrigins_(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) { - return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins); +static inline HRESULT IDWriteFactory8_ComputeGlyphOrigins_(IDWriteFactory8* This, const DWRITE_GLYPH_RUN* run, D2D1_POINT_2F baseline_origin, D2D1_POINT_2F* origins) { + return This->lpVtbl->ComputeGlyphOrigins_(This, run, baseline_origin, origins); } -static inline HRESULT IDWriteFactory8_ComputeGlyphOrigins(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) { - return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins); +static inline HRESULT IDWriteFactory8_ComputeGlyphOrigins(IDWriteFactory8* This, const DWRITE_GLYPH_RUN* run, DWRITE_MEASURING_MODE measuring_mode, D2D1_POINT_2F baseline_origin, const DWRITE_MATRIX* transform, D2D1_POINT_2F* origins) { + return This->lpVtbl->ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins); } /*** IDWriteFactory5 methods ***/ -static inline HRESULT IDWriteFactory8_CreateInMemoryFontFileLoader(IDWriteFactory8* This,IDWriteInMemoryFontFileLoader **loader) { - return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader); +static inline HRESULT IDWriteFactory8_CreateInMemoryFontFileLoader(IDWriteFactory8* This, IDWriteInMemoryFontFileLoader** loader) { + return This->lpVtbl->CreateInMemoryFontFileLoader(This, loader); } -static inline HRESULT IDWriteFactory8_CreateHttpFontFileLoader(IDWriteFactory8* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) { - return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader); +static inline HRESULT IDWriteFactory8_CreateHttpFontFileLoader(IDWriteFactory8* This, const WCHAR* referrer_url, const WCHAR* extra_headers, IDWriteRemoteFontFileLoader** loader) { + return This->lpVtbl->CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader); } -static inline DWRITE_CONTAINER_TYPE IDWriteFactory8_AnalyzeContainerType(IDWriteFactory8* This,const void *data,UINT32 data_size) { - return This->lpVtbl->AnalyzeContainerType(This,data,data_size); +static inline DWRITE_CONTAINER_TYPE IDWriteFactory8_AnalyzeContainerType(IDWriteFactory8* This, const void* data, UINT32 data_size) { + return This->lpVtbl->AnalyzeContainerType(This, data, data_size); } -static inline HRESULT IDWriteFactory8_UnpackFontFile(IDWriteFactory8* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) { - return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream); +static inline HRESULT IDWriteFactory8_UnpackFontFile(IDWriteFactory8* This, DWRITE_CONTAINER_TYPE container_type, const void* data, UINT32 data_size, IDWriteFontFileStream** stream) { + return This->lpVtbl->UnpackFontFile(This, container_type, data, data_size, stream); } /*** IDWriteFactory6 methods ***/ -static inline HRESULT IDWriteFactory8_CreateFontFaceReference(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,IDWriteFontFaceReference1 **face_ref) { - return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref); +static inline HRESULT IDWriteFactory8_CreateFontFaceReference(IDWriteFactory8* This, IDWriteFontFile* file, UINT32 face_index, DWRITE_FONT_SIMULATIONS simulations, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_axis, IDWriteFontFaceReference1** face_ref) { + return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This, file, face_index, simulations, axis_values, num_axis, face_ref); } -static inline HRESULT IDWriteFactory8_CreateFontResource(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) { - return This->lpVtbl->CreateFontResource(This,file,face_index,resource); +static inline HRESULT IDWriteFactory8_CreateFontResource(IDWriteFactory8* This, IDWriteFontFile* file, UINT32 face_index, IDWriteFontResource** resource) { + return This->lpVtbl->CreateFontResource(This, file, face_index, resource); } -static inline HRESULT IDWriteFactory8_CreateFontCollectionFromFontSet(IDWriteFactory8* This,IDWriteFontSet *fontset,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) { - return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection); +static inline HRESULT IDWriteFactory8_CreateFontCollectionFromFontSet(IDWriteFactory8* This, IDWriteFontSet* fontset, DWRITE_FONT_FAMILY_MODEL family_model, IDWriteFontCollection2** collection) { + return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This, fontset, family_model, collection); } -static inline HRESULT IDWriteFactory8_CreateFontSetBuilder(IDWriteFactory8* This,IDWriteFontSetBuilder2 **builder) { - return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder); +static inline HRESULT IDWriteFactory8_CreateFontSetBuilder(IDWriteFactory8* This, IDWriteFontSetBuilder2** builder) { + return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This, builder); } -static inline HRESULT IDWriteFactory8_CreateTextFormat(IDWriteFactory8* This,const WCHAR *familyname,IDWriteFontCollection *collection,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,FLOAT fontsize,const WCHAR *localename,IDWriteTextFormat3 **format) { - return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format); +static inline HRESULT IDWriteFactory8_CreateTextFormat(IDWriteFactory8* This, const WCHAR* familyname, IDWriteFontCollection* collection, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_axis, FLOAT fontsize, const WCHAR* localename, IDWriteTextFormat3** format) { + return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This, familyname, collection, axis_values, num_axis, fontsize, localename, format); } /*** IDWriteFactory7 methods ***/ -static inline HRESULT IDWriteFactory8_GetSystemFontSet(IDWriteFactory8* This,WINBOOL include_downloadable,IDWriteFontSet2 **fontset) { - return This->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset); +static inline HRESULT IDWriteFactory8_GetSystemFontSet(IDWriteFactory8* This, WINBOOL include_downloadable, IDWriteFontSet2** fontset) { + return This->lpVtbl->IDWriteFactory7_GetSystemFontSet(This, include_downloadable, fontset); } -static inline HRESULT IDWriteFactory8_GetSystemFontCollection(IDWriteFactory8* This,WINBOOL include_downloadable,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection3 **collection) { - return This->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection); +static inline HRESULT IDWriteFactory8_GetSystemFontCollection(IDWriteFactory8* This, WINBOOL include_downloadable, DWRITE_FONT_FAMILY_MODEL family_model, IDWriteFontCollection3** collection) { + return This->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This, include_downloadable, family_model, collection); } /*** IDWriteFactory8 methods ***/ -static inline HRESULT IDWriteFactory8_TranslateColorGlyphRun(IDWriteFactory8* This,D2D1_POINT_2F origin,const DWRITE_GLYPH_RUN *glyph_run,const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc,DWRITE_GLYPH_IMAGE_FORMATS image_formats,DWRITE_PAINT_FEATURE_LEVEL feature_level,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *world_and_dpi_transform,UINT32 palette_index,IDWriteColorGlyphRunEnumerator1 **enumerator) { - return This->lpVtbl->IDWriteFactory8_TranslateColorGlyphRun(This,origin,glyph_run,glyph_run_desc,image_formats,feature_level,measuring_mode,world_and_dpi_transform,palette_index,enumerator); +static inline HRESULT IDWriteFactory8_TranslateColorGlyphRun(IDWriteFactory8* This, D2D1_POINT_2F origin, const DWRITE_GLYPH_RUN* glyph_run, const DWRITE_GLYPH_RUN_DESCRIPTION* glyph_run_desc, DWRITE_GLYPH_IMAGE_FORMATS image_formats, DWRITE_PAINT_FEATURE_LEVEL feature_level, DWRITE_MEASURING_MODE measuring_mode, const DWRITE_MATRIX* world_and_dpi_transform, UINT32 palette_index, IDWriteColorGlyphRunEnumerator1** enumerator) { + return This->lpVtbl->IDWriteFactory8_TranslateColorGlyphRun(This, origin, glyph_run, glyph_run_desc, image_formats, feature_level, measuring_mode, world_and_dpi_transform, palette_index, enumerator); } #endif #endif #endif - -#endif /* __IDWriteFactory8_INTERFACE_DEFINED__ */ +#endif /* __IDWriteFactory8_INTERFACE_DEFINED__ */ typedef struct DWRITE_BITMAP_DATA_BGRA32 { - UINT32 width; - UINT32 height; - UINT32 *pixels; + UINT32 width; + UINT32 height; + UINT32* pixels; } DWRITE_BITMAP_DATA_BGRA32; /***************************************************************************** * IDWriteBitmapRenderTarget2 interface @@ -14791,166 +14617,163 @@ typedef struct DWRITE_BITMAP_DATA_BGRA32 { #ifndef __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__ #define __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteBitmapRenderTarget2, 0xc553a742, 0xfc01, 0x44da, 0xa6,0x6e, 0xb8,0xb9,0xed,0x6c,0x39,0x95); +DEFINE_GUID(IID_IDWriteBitmapRenderTarget2, 0xc553a742, 0xfc01, 0x44da, 0xa6, 0x6e, 0xb8, 0xb9, 0xed, 0x6c, 0x39, 0x95); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("c553a742-fc01-44da-a66e-b8b9ed6c3995") -IDWriteBitmapRenderTarget2 : public IDWriteBitmapRenderTarget1 -{ - virtual HRESULT STDMETHODCALLTYPE GetBitmapData( - DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) = 0; - +IDWriteBitmapRenderTarget2 : public IDWriteBitmapRenderTarget1 { + virtual HRESULT STDMETHODCALLTYPE GetBitmapData( + DWRITE_BITMAP_DATA_BGRA32 * bitmap_data) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteBitmapRenderTarget2, 0xc553a742, 0xfc01, 0x44da, 0xa6,0x6e, 0xb8,0xb9,0xed,0x6c,0x39,0x95) +__CRT_UUID_DECL(IDWriteBitmapRenderTarget2, 0xc553a742, 0xfc01, 0x44da, 0xa6, 0x6e, 0xb8, 0xb9, 0xed, 0x6c, 0x39, 0x95) #endif #else typedef struct IDWriteBitmapRenderTarget2Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteBitmapRenderTarget2 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteBitmapRenderTarget2* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteBitmapRenderTarget2 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteBitmapRenderTarget2* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteBitmapRenderTarget2 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteBitmapRenderTarget2* This); - /*** IDWriteBitmapRenderTarget methods ***/ - HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)( - IDWriteBitmapRenderTarget2 *This, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_GLYPH_RUN *glyph_run, - IDWriteRenderingParams *params, - COLORREF textColor, - RECT *blackbox_rect); + /*** IDWriteBitmapRenderTarget methods ***/ + HRESULT(STDMETHODCALLTYPE* DrawGlyphRun)( + IDWriteBitmapRenderTarget2* This, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN* glyph_run, + IDWriteRenderingParams* params, + COLORREF textColor, + RECT* blackbox_rect); - HDC (STDMETHODCALLTYPE *GetMemoryDC)( - IDWriteBitmapRenderTarget2 *This); + HDC(STDMETHODCALLTYPE* GetMemoryDC)( + IDWriteBitmapRenderTarget2* This); - FLOAT (STDMETHODCALLTYPE *GetPixelsPerDip)( - IDWriteBitmapRenderTarget2 *This); + FLOAT(STDMETHODCALLTYPE* GetPixelsPerDip)( + IDWriteBitmapRenderTarget2* This); - HRESULT (STDMETHODCALLTYPE *SetPixelsPerDip)( - IDWriteBitmapRenderTarget2 *This, - FLOAT pixels_per_dip); + HRESULT(STDMETHODCALLTYPE* SetPixelsPerDip)( + IDWriteBitmapRenderTarget2* This, + FLOAT pixels_per_dip); - HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)( - IDWriteBitmapRenderTarget2 *This, - DWRITE_MATRIX *transform); + HRESULT(STDMETHODCALLTYPE* GetCurrentTransform)( + IDWriteBitmapRenderTarget2* This, + DWRITE_MATRIX* transform); - HRESULT (STDMETHODCALLTYPE *SetCurrentTransform)( - IDWriteBitmapRenderTarget2 *This, - const DWRITE_MATRIX *transform); + HRESULT(STDMETHODCALLTYPE* SetCurrentTransform)( + IDWriteBitmapRenderTarget2* This, + const DWRITE_MATRIX* transform); - HRESULT (STDMETHODCALLTYPE *GetSize)( - IDWriteBitmapRenderTarget2 *This, - SIZE *size); + HRESULT(STDMETHODCALLTYPE* GetSize)( + IDWriteBitmapRenderTarget2* This, + SIZE* size); - HRESULT (STDMETHODCALLTYPE *Resize)( - IDWriteBitmapRenderTarget2 *This, - UINT32 width, - UINT32 height); + HRESULT(STDMETHODCALLTYPE* Resize)( + IDWriteBitmapRenderTarget2* This, + UINT32 width, + UINT32 height); - /*** IDWriteBitmapRenderTarget1 methods ***/ - DWRITE_TEXT_ANTIALIAS_MODE (STDMETHODCALLTYPE *GetTextAntialiasMode)( - IDWriteBitmapRenderTarget2 *This); + /*** IDWriteBitmapRenderTarget1 methods ***/ + DWRITE_TEXT_ANTIALIAS_MODE(STDMETHODCALLTYPE* GetTextAntialiasMode)( + IDWriteBitmapRenderTarget2* This); - HRESULT (STDMETHODCALLTYPE *SetTextAntialiasMode)( - IDWriteBitmapRenderTarget2 *This, - DWRITE_TEXT_ANTIALIAS_MODE mode); + HRESULT(STDMETHODCALLTYPE* SetTextAntialiasMode)( + IDWriteBitmapRenderTarget2* This, + DWRITE_TEXT_ANTIALIAS_MODE mode); - /*** IDWriteBitmapRenderTarget2 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetBitmapData)( - IDWriteBitmapRenderTarget2 *This, - DWRITE_BITMAP_DATA_BGRA32 *bitmap_data); + /*** IDWriteBitmapRenderTarget2 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetBitmapData)( + IDWriteBitmapRenderTarget2* This, + DWRITE_BITMAP_DATA_BGRA32* bitmap_data); - END_INTERFACE + END_INTERFACE } IDWriteBitmapRenderTarget2Vtbl; interface IDWriteBitmapRenderTarget2 { - CONST_VTBL IDWriteBitmapRenderTarget2Vtbl* lpVtbl; + CONST_VTBL IDWriteBitmapRenderTarget2Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteBitmapRenderTarget2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteBitmapRenderTarget2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteBitmapRenderTarget2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteBitmapRenderTarget2_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteBitmapRenderTarget methods ***/ -#define IDWriteBitmapRenderTarget2_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) +#define IDWriteBitmapRenderTarget2_DrawGlyphRun(This, baselineOriginX, baselineOriginY, measuring_mode, glyph_run, params, textColor, blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This, baselineOriginX, baselineOriginY, measuring_mode, glyph_run, params, textColor, blackbox_rect) #define IDWriteBitmapRenderTarget2_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This) #define IDWriteBitmapRenderTarget2_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This) -#define IDWriteBitmapRenderTarget2_SetPixelsPerDip(This,pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This,pixels_per_dip) -#define IDWriteBitmapRenderTarget2_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform) -#define IDWriteBitmapRenderTarget2_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform) -#define IDWriteBitmapRenderTarget2_GetSize(This,size) (This)->lpVtbl->GetSize(This,size) -#define IDWriteBitmapRenderTarget2_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height) +#define IDWriteBitmapRenderTarget2_SetPixelsPerDip(This, pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This, pixels_per_dip) +#define IDWriteBitmapRenderTarget2_GetCurrentTransform(This, transform) (This)->lpVtbl->GetCurrentTransform(This, transform) +#define IDWriteBitmapRenderTarget2_SetCurrentTransform(This, transform) (This)->lpVtbl->SetCurrentTransform(This, transform) +#define IDWriteBitmapRenderTarget2_GetSize(This, size) (This)->lpVtbl->GetSize(This, size) +#define IDWriteBitmapRenderTarget2_Resize(This, width, height) (This)->lpVtbl->Resize(This, width, height) /*** IDWriteBitmapRenderTarget1 methods ***/ #define IDWriteBitmapRenderTarget2_GetTextAntialiasMode(This) (This)->lpVtbl->GetTextAntialiasMode(This) -#define IDWriteBitmapRenderTarget2_SetTextAntialiasMode(This,mode) (This)->lpVtbl->SetTextAntialiasMode(This,mode) +#define IDWriteBitmapRenderTarget2_SetTextAntialiasMode(This, mode) (This)->lpVtbl->SetTextAntialiasMode(This, mode) /*** IDWriteBitmapRenderTarget2 methods ***/ -#define IDWriteBitmapRenderTarget2_GetBitmapData(This,bitmap_data) (This)->lpVtbl->GetBitmapData(This,bitmap_data) +#define IDWriteBitmapRenderTarget2_GetBitmapData(This, bitmap_data) (This)->lpVtbl->GetBitmapData(This, bitmap_data) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteBitmapRenderTarget2_QueryInterface(IDWriteBitmapRenderTarget2* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteBitmapRenderTarget2_QueryInterface(IDWriteBitmapRenderTarget2* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteBitmapRenderTarget2_AddRef(IDWriteBitmapRenderTarget2* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteBitmapRenderTarget2_Release(IDWriteBitmapRenderTarget2* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteBitmapRenderTarget methods ***/ -static inline HRESULT IDWriteBitmapRenderTarget2_DrawGlyphRun(IDWriteBitmapRenderTarget2* This,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *glyph_run,IDWriteRenderingParams *params,COLORREF textColor,RECT *blackbox_rect) { - return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect); +static inline HRESULT IDWriteBitmapRenderTarget2_DrawGlyphRun(IDWriteBitmapRenderTarget2* This, FLOAT baselineOriginX, FLOAT baselineOriginY, DWRITE_MEASURING_MODE measuring_mode, const DWRITE_GLYPH_RUN* glyph_run, IDWriteRenderingParams* params, COLORREF textColor, RECT* blackbox_rect) { + return This->lpVtbl->DrawGlyphRun(This, baselineOriginX, baselineOriginY, measuring_mode, glyph_run, params, textColor, blackbox_rect); } static inline HDC IDWriteBitmapRenderTarget2_GetMemoryDC(IDWriteBitmapRenderTarget2* This) { - return This->lpVtbl->GetMemoryDC(This); + return This->lpVtbl->GetMemoryDC(This); } static inline FLOAT IDWriteBitmapRenderTarget2_GetPixelsPerDip(IDWriteBitmapRenderTarget2* This) { - return This->lpVtbl->GetPixelsPerDip(This); + return This->lpVtbl->GetPixelsPerDip(This); } -static inline HRESULT IDWriteBitmapRenderTarget2_SetPixelsPerDip(IDWriteBitmapRenderTarget2* This,FLOAT pixels_per_dip) { - return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip); +static inline HRESULT IDWriteBitmapRenderTarget2_SetPixelsPerDip(IDWriteBitmapRenderTarget2* This, FLOAT pixels_per_dip) { + return This->lpVtbl->SetPixelsPerDip(This, pixels_per_dip); } -static inline HRESULT IDWriteBitmapRenderTarget2_GetCurrentTransform(IDWriteBitmapRenderTarget2* This,DWRITE_MATRIX *transform) { - return This->lpVtbl->GetCurrentTransform(This,transform); +static inline HRESULT IDWriteBitmapRenderTarget2_GetCurrentTransform(IDWriteBitmapRenderTarget2* This, DWRITE_MATRIX* transform) { + return This->lpVtbl->GetCurrentTransform(This, transform); } -static inline HRESULT IDWriteBitmapRenderTarget2_SetCurrentTransform(IDWriteBitmapRenderTarget2* This,const DWRITE_MATRIX *transform) { - return This->lpVtbl->SetCurrentTransform(This,transform); +static inline HRESULT IDWriteBitmapRenderTarget2_SetCurrentTransform(IDWriteBitmapRenderTarget2* This, const DWRITE_MATRIX* transform) { + return This->lpVtbl->SetCurrentTransform(This, transform); } -static inline HRESULT IDWriteBitmapRenderTarget2_GetSize(IDWriteBitmapRenderTarget2* This,SIZE *size) { - return This->lpVtbl->GetSize(This,size); +static inline HRESULT IDWriteBitmapRenderTarget2_GetSize(IDWriteBitmapRenderTarget2* This, SIZE* size) { + return This->lpVtbl->GetSize(This, size); } -static inline HRESULT IDWriteBitmapRenderTarget2_Resize(IDWriteBitmapRenderTarget2* This,UINT32 width,UINT32 height) { - return This->lpVtbl->Resize(This,width,height); +static inline HRESULT IDWriteBitmapRenderTarget2_Resize(IDWriteBitmapRenderTarget2* This, UINT32 width, UINT32 height) { + return This->lpVtbl->Resize(This, width, height); } /*** IDWriteBitmapRenderTarget1 methods ***/ static inline DWRITE_TEXT_ANTIALIAS_MODE IDWriteBitmapRenderTarget2_GetTextAntialiasMode(IDWriteBitmapRenderTarget2* This) { - return This->lpVtbl->GetTextAntialiasMode(This); + return This->lpVtbl->GetTextAntialiasMode(This); } -static inline HRESULT IDWriteBitmapRenderTarget2_SetTextAntialiasMode(IDWriteBitmapRenderTarget2* This,DWRITE_TEXT_ANTIALIAS_MODE mode) { - return This->lpVtbl->SetTextAntialiasMode(This,mode); +static inline HRESULT IDWriteBitmapRenderTarget2_SetTextAntialiasMode(IDWriteBitmapRenderTarget2* This, DWRITE_TEXT_ANTIALIAS_MODE mode) { + return This->lpVtbl->SetTextAntialiasMode(This, mode); } /*** IDWriteBitmapRenderTarget2 methods ***/ -static inline HRESULT IDWriteBitmapRenderTarget2_GetBitmapData(IDWriteBitmapRenderTarget2* This,DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) { - return This->lpVtbl->GetBitmapData(This,bitmap_data); +static inline HRESULT IDWriteBitmapRenderTarget2_GetBitmapData(IDWriteBitmapRenderTarget2* This, DWRITE_BITMAP_DATA_BGRA32* bitmap_data) { + return This->lpVtbl->GetBitmapData(This, bitmap_data); } #endif #endif #endif - -#endif /* __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__ */ +#endif /* __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__ */ /***************************************************************************** * IDWriteBitmapRenderTarget3 interface @@ -14958,230 +14781,225 @@ static inline HRESULT IDWriteBitmapRenderTarget2_GetBitmapData(IDWriteBitmapRend #ifndef __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__ #define __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__ -DEFINE_GUID(IID_IDWriteBitmapRenderTarget3, 0xaeec37db, 0xc337, 0x40f1, 0x8e,0x2a, 0x9a,0x41,0xb1,0x67,0xb2,0x38); +DEFINE_GUID(IID_IDWriteBitmapRenderTarget3, 0xaeec37db, 0xc337, 0x40f1, 0x8e, 0x2a, 0x9a, 0x41, 0xb1, 0x67, 0xb2, 0x38); #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("aeec37db-c337-40f1-8e2a-9a41b167b238") -IDWriteBitmapRenderTarget3 : public IDWriteBitmapRenderTarget2 -{ - virtual DWRITE_PAINT_FEATURE_LEVEL STDMETHODCALLTYPE GetPaintFeatureLevel( - ) = 0; +IDWriteBitmapRenderTarget3 : public IDWriteBitmapRenderTarget2 { + virtual DWRITE_PAINT_FEATURE_LEVEL STDMETHODCALLTYPE GetPaintFeatureLevel() = 0; - virtual HRESULT STDMETHODCALLTYPE DrawPaintGlyphRun( - FLOAT origin_x, - FLOAT origin_y, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_GLYPH_RUN *run, - DWRITE_GLYPH_IMAGE_FORMATS image_format, - COLORREF text_color, - UINT32 palette_index, - RECT *black_box) = 0; - - virtual HRESULT STDMETHODCALLTYPE DrawGlyphRunWithColorSupport( - FLOAT origin_x, - FLOAT origin_y, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_GLYPH_RUN *run, - IDWriteRenderingParams *params, - COLORREF text_color, - UINT32 palette_index, - RECT *black_box) = 0; + virtual HRESULT STDMETHODCALLTYPE DrawPaintGlyphRun( + FLOAT origin_x, + FLOAT origin_y, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN* run, + DWRITE_GLYPH_IMAGE_FORMATS image_format, + COLORREF text_color, + UINT32 palette_index, + RECT* black_box) = 0; + virtual HRESULT STDMETHODCALLTYPE DrawGlyphRunWithColorSupport( + FLOAT origin_x, + FLOAT origin_y, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN* run, + IDWriteRenderingParams* params, + COLORREF text_color, + UINT32 palette_index, + RECT* black_box) = 0; }; #ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteBitmapRenderTarget3, 0xaeec37db, 0xc337, 0x40f1, 0x8e,0x2a, 0x9a,0x41,0xb1,0x67,0xb2,0x38) +__CRT_UUID_DECL(IDWriteBitmapRenderTarget3, 0xaeec37db, 0xc337, 0x40f1, 0x8e, 0x2a, 0x9a, 0x41, 0xb1, 0x67, 0xb2, 0x38) #endif #else typedef struct IDWriteBitmapRenderTarget3Vtbl { - BEGIN_INTERFACE + BEGIN_INTERFACE - /*** IUnknown methods ***/ - HRESULT (STDMETHODCALLTYPE *QueryInterface)( - IDWriteBitmapRenderTarget3 *This, - REFIID riid, - void **ppvObject); + /*** IUnknown methods ***/ + HRESULT(STDMETHODCALLTYPE* QueryInterface)( + IDWriteBitmapRenderTarget3* This, + REFIID riid, + void** ppvObject); - ULONG (STDMETHODCALLTYPE *AddRef)( - IDWriteBitmapRenderTarget3 *This); + ULONG(STDMETHODCALLTYPE* AddRef)( + IDWriteBitmapRenderTarget3* This); - ULONG (STDMETHODCALLTYPE *Release)( - IDWriteBitmapRenderTarget3 *This); + ULONG(STDMETHODCALLTYPE* Release)( + IDWriteBitmapRenderTarget3* This); - /*** IDWriteBitmapRenderTarget methods ***/ - HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)( - IDWriteBitmapRenderTarget3 *This, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_GLYPH_RUN *glyph_run, - IDWriteRenderingParams *params, - COLORREF textColor, - RECT *blackbox_rect); + /*** IDWriteBitmapRenderTarget methods ***/ + HRESULT(STDMETHODCALLTYPE* DrawGlyphRun)( + IDWriteBitmapRenderTarget3* This, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN* glyph_run, + IDWriteRenderingParams* params, + COLORREF textColor, + RECT* blackbox_rect); - HDC (STDMETHODCALLTYPE *GetMemoryDC)( - IDWriteBitmapRenderTarget3 *This); + HDC(STDMETHODCALLTYPE* GetMemoryDC)( + IDWriteBitmapRenderTarget3* This); - FLOAT (STDMETHODCALLTYPE *GetPixelsPerDip)( - IDWriteBitmapRenderTarget3 *This); + FLOAT(STDMETHODCALLTYPE* GetPixelsPerDip)( + IDWriteBitmapRenderTarget3* This); - HRESULT (STDMETHODCALLTYPE *SetPixelsPerDip)( - IDWriteBitmapRenderTarget3 *This, - FLOAT pixels_per_dip); + HRESULT(STDMETHODCALLTYPE* SetPixelsPerDip)( + IDWriteBitmapRenderTarget3* This, + FLOAT pixels_per_dip); - HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)( - IDWriteBitmapRenderTarget3 *This, - DWRITE_MATRIX *transform); + HRESULT(STDMETHODCALLTYPE* GetCurrentTransform)( + IDWriteBitmapRenderTarget3* This, + DWRITE_MATRIX* transform); - HRESULT (STDMETHODCALLTYPE *SetCurrentTransform)( - IDWriteBitmapRenderTarget3 *This, - const DWRITE_MATRIX *transform); + HRESULT(STDMETHODCALLTYPE* SetCurrentTransform)( + IDWriteBitmapRenderTarget3* This, + const DWRITE_MATRIX* transform); - HRESULT (STDMETHODCALLTYPE *GetSize)( - IDWriteBitmapRenderTarget3 *This, - SIZE *size); + HRESULT(STDMETHODCALLTYPE* GetSize)( + IDWriteBitmapRenderTarget3* This, + SIZE* size); - HRESULT (STDMETHODCALLTYPE *Resize)( - IDWriteBitmapRenderTarget3 *This, - UINT32 width, - UINT32 height); + HRESULT(STDMETHODCALLTYPE* Resize)( + IDWriteBitmapRenderTarget3* This, + UINT32 width, + UINT32 height); - /*** IDWriteBitmapRenderTarget1 methods ***/ - DWRITE_TEXT_ANTIALIAS_MODE (STDMETHODCALLTYPE *GetTextAntialiasMode)( - IDWriteBitmapRenderTarget3 *This); + /*** IDWriteBitmapRenderTarget1 methods ***/ + DWRITE_TEXT_ANTIALIAS_MODE(STDMETHODCALLTYPE* GetTextAntialiasMode)( + IDWriteBitmapRenderTarget3* This); - HRESULT (STDMETHODCALLTYPE *SetTextAntialiasMode)( - IDWriteBitmapRenderTarget3 *This, - DWRITE_TEXT_ANTIALIAS_MODE mode); + HRESULT(STDMETHODCALLTYPE* SetTextAntialiasMode)( + IDWriteBitmapRenderTarget3* This, + DWRITE_TEXT_ANTIALIAS_MODE mode); - /*** IDWriteBitmapRenderTarget2 methods ***/ - HRESULT (STDMETHODCALLTYPE *GetBitmapData)( - IDWriteBitmapRenderTarget3 *This, - DWRITE_BITMAP_DATA_BGRA32 *bitmap_data); + /*** IDWriteBitmapRenderTarget2 methods ***/ + HRESULT(STDMETHODCALLTYPE* GetBitmapData)( + IDWriteBitmapRenderTarget3* This, + DWRITE_BITMAP_DATA_BGRA32* bitmap_data); - /*** IDWriteBitmapRenderTarget3 methods ***/ - DWRITE_PAINT_FEATURE_LEVEL (STDMETHODCALLTYPE *GetPaintFeatureLevel)( - IDWriteBitmapRenderTarget3 *This); + /*** IDWriteBitmapRenderTarget3 methods ***/ + DWRITE_PAINT_FEATURE_LEVEL(STDMETHODCALLTYPE* GetPaintFeatureLevel)( + IDWriteBitmapRenderTarget3* This); - HRESULT (STDMETHODCALLTYPE *DrawPaintGlyphRun)( - IDWriteBitmapRenderTarget3 *This, - FLOAT origin_x, - FLOAT origin_y, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_GLYPH_RUN *run, - DWRITE_GLYPH_IMAGE_FORMATS image_format, - COLORREF text_color, - UINT32 palette_index, - RECT *black_box); + HRESULT(STDMETHODCALLTYPE* DrawPaintGlyphRun)( + IDWriteBitmapRenderTarget3* This, + FLOAT origin_x, + FLOAT origin_y, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN* run, + DWRITE_GLYPH_IMAGE_FORMATS image_format, + COLORREF text_color, + UINT32 palette_index, + RECT* black_box); - HRESULT (STDMETHODCALLTYPE *DrawGlyphRunWithColorSupport)( - IDWriteBitmapRenderTarget3 *This, - FLOAT origin_x, - FLOAT origin_y, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_GLYPH_RUN *run, - IDWriteRenderingParams *params, - COLORREF text_color, - UINT32 palette_index, - RECT *black_box); + HRESULT(STDMETHODCALLTYPE* DrawGlyphRunWithColorSupport)( + IDWriteBitmapRenderTarget3* This, + FLOAT origin_x, + FLOAT origin_y, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN* run, + IDWriteRenderingParams* params, + COLORREF text_color, + UINT32 palette_index, + RECT* black_box); - END_INTERFACE + END_INTERFACE } IDWriteBitmapRenderTarget3Vtbl; interface IDWriteBitmapRenderTarget3 { - CONST_VTBL IDWriteBitmapRenderTarget3Vtbl* lpVtbl; + CONST_VTBL IDWriteBitmapRenderTarget3Vtbl* lpVtbl; }; #ifdef COBJMACROS #ifndef WIDL_C_INLINE_WRAPPERS /*** IUnknown methods ***/ -#define IDWriteBitmapRenderTarget3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteBitmapRenderTarget3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) #define IDWriteBitmapRenderTarget3_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDWriteBitmapRenderTarget3_Release(This) (This)->lpVtbl->Release(This) /*** IDWriteBitmapRenderTarget methods ***/ -#define IDWriteBitmapRenderTarget3_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) +#define IDWriteBitmapRenderTarget3_DrawGlyphRun(This, baselineOriginX, baselineOriginY, measuring_mode, glyph_run, params, textColor, blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This, baselineOriginX, baselineOriginY, measuring_mode, glyph_run, params, textColor, blackbox_rect) #define IDWriteBitmapRenderTarget3_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This) #define IDWriteBitmapRenderTarget3_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This) -#define IDWriteBitmapRenderTarget3_SetPixelsPerDip(This,pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This,pixels_per_dip) -#define IDWriteBitmapRenderTarget3_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform) -#define IDWriteBitmapRenderTarget3_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform) -#define IDWriteBitmapRenderTarget3_GetSize(This,size) (This)->lpVtbl->GetSize(This,size) -#define IDWriteBitmapRenderTarget3_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height) +#define IDWriteBitmapRenderTarget3_SetPixelsPerDip(This, pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This, pixels_per_dip) +#define IDWriteBitmapRenderTarget3_GetCurrentTransform(This, transform) (This)->lpVtbl->GetCurrentTransform(This, transform) +#define IDWriteBitmapRenderTarget3_SetCurrentTransform(This, transform) (This)->lpVtbl->SetCurrentTransform(This, transform) +#define IDWriteBitmapRenderTarget3_GetSize(This, size) (This)->lpVtbl->GetSize(This, size) +#define IDWriteBitmapRenderTarget3_Resize(This, width, height) (This)->lpVtbl->Resize(This, width, height) /*** IDWriteBitmapRenderTarget1 methods ***/ #define IDWriteBitmapRenderTarget3_GetTextAntialiasMode(This) (This)->lpVtbl->GetTextAntialiasMode(This) -#define IDWriteBitmapRenderTarget3_SetTextAntialiasMode(This,mode) (This)->lpVtbl->SetTextAntialiasMode(This,mode) +#define IDWriteBitmapRenderTarget3_SetTextAntialiasMode(This, mode) (This)->lpVtbl->SetTextAntialiasMode(This, mode) /*** IDWriteBitmapRenderTarget2 methods ***/ -#define IDWriteBitmapRenderTarget3_GetBitmapData(This,bitmap_data) (This)->lpVtbl->GetBitmapData(This,bitmap_data) +#define IDWriteBitmapRenderTarget3_GetBitmapData(This, bitmap_data) (This)->lpVtbl->GetBitmapData(This, bitmap_data) /*** IDWriteBitmapRenderTarget3 methods ***/ #define IDWriteBitmapRenderTarget3_GetPaintFeatureLevel(This) (This)->lpVtbl->GetPaintFeatureLevel(This) -#define IDWriteBitmapRenderTarget3_DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box) (This)->lpVtbl->DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box) -#define IDWriteBitmapRenderTarget3_DrawGlyphRunWithColorSupport(This,origin_x,origin_y,measuring_mode,run,params,text_color,palette_index,black_box) (This)->lpVtbl->DrawGlyphRunWithColorSupport(This,origin_x,origin_y,measuring_mode,run,params,text_color,palette_index,black_box) +#define IDWriteBitmapRenderTarget3_DrawPaintGlyphRun(This, origin_x, origin_y, measuring_mode, run, image_format, text_color, palette_index, black_box) (This)->lpVtbl->DrawPaintGlyphRun(This, origin_x, origin_y, measuring_mode, run, image_format, text_color, palette_index, black_box) +#define IDWriteBitmapRenderTarget3_DrawGlyphRunWithColorSupport(This, origin_x, origin_y, measuring_mode, run, params, text_color, palette_index, black_box) (This)->lpVtbl->DrawGlyphRunWithColorSupport(This, origin_x, origin_y, measuring_mode, run, params, text_color, palette_index, black_box) #else /*** IUnknown methods ***/ -static inline HRESULT IDWriteBitmapRenderTarget3_QueryInterface(IDWriteBitmapRenderTarget3* This,REFIID riid,void **ppvObject) { - return This->lpVtbl->QueryInterface(This,riid,ppvObject); +static inline HRESULT IDWriteBitmapRenderTarget3_QueryInterface(IDWriteBitmapRenderTarget3* This, REFIID riid, void** ppvObject) { + return This->lpVtbl->QueryInterface(This, riid, ppvObject); } static inline ULONG IDWriteBitmapRenderTarget3_AddRef(IDWriteBitmapRenderTarget3* This) { - return This->lpVtbl->AddRef(This); + return This->lpVtbl->AddRef(This); } static inline ULONG IDWriteBitmapRenderTarget3_Release(IDWriteBitmapRenderTarget3* This) { - return This->lpVtbl->Release(This); + return This->lpVtbl->Release(This); } /*** IDWriteBitmapRenderTarget methods ***/ -static inline HRESULT IDWriteBitmapRenderTarget3_DrawGlyphRun(IDWriteBitmapRenderTarget3* This,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *glyph_run,IDWriteRenderingParams *params,COLORREF textColor,RECT *blackbox_rect) { - return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect); +static inline HRESULT IDWriteBitmapRenderTarget3_DrawGlyphRun(IDWriteBitmapRenderTarget3* This, FLOAT baselineOriginX, FLOAT baselineOriginY, DWRITE_MEASURING_MODE measuring_mode, const DWRITE_GLYPH_RUN* glyph_run, IDWriteRenderingParams* params, COLORREF textColor, RECT* blackbox_rect) { + return This->lpVtbl->DrawGlyphRun(This, baselineOriginX, baselineOriginY, measuring_mode, glyph_run, params, textColor, blackbox_rect); } static inline HDC IDWriteBitmapRenderTarget3_GetMemoryDC(IDWriteBitmapRenderTarget3* This) { - return This->lpVtbl->GetMemoryDC(This); + return This->lpVtbl->GetMemoryDC(This); } static inline FLOAT IDWriteBitmapRenderTarget3_GetPixelsPerDip(IDWriteBitmapRenderTarget3* This) { - return This->lpVtbl->GetPixelsPerDip(This); + return This->lpVtbl->GetPixelsPerDip(This); } -static inline HRESULT IDWriteBitmapRenderTarget3_SetPixelsPerDip(IDWriteBitmapRenderTarget3* This,FLOAT pixels_per_dip) { - return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip); +static inline HRESULT IDWriteBitmapRenderTarget3_SetPixelsPerDip(IDWriteBitmapRenderTarget3* This, FLOAT pixels_per_dip) { + return This->lpVtbl->SetPixelsPerDip(This, pixels_per_dip); } -static inline HRESULT IDWriteBitmapRenderTarget3_GetCurrentTransform(IDWriteBitmapRenderTarget3* This,DWRITE_MATRIX *transform) { - return This->lpVtbl->GetCurrentTransform(This,transform); +static inline HRESULT IDWriteBitmapRenderTarget3_GetCurrentTransform(IDWriteBitmapRenderTarget3* This, DWRITE_MATRIX* transform) { + return This->lpVtbl->GetCurrentTransform(This, transform); } -static inline HRESULT IDWriteBitmapRenderTarget3_SetCurrentTransform(IDWriteBitmapRenderTarget3* This,const DWRITE_MATRIX *transform) { - return This->lpVtbl->SetCurrentTransform(This,transform); +static inline HRESULT IDWriteBitmapRenderTarget3_SetCurrentTransform(IDWriteBitmapRenderTarget3* This, const DWRITE_MATRIX* transform) { + return This->lpVtbl->SetCurrentTransform(This, transform); } -static inline HRESULT IDWriteBitmapRenderTarget3_GetSize(IDWriteBitmapRenderTarget3* This,SIZE *size) { - return This->lpVtbl->GetSize(This,size); +static inline HRESULT IDWriteBitmapRenderTarget3_GetSize(IDWriteBitmapRenderTarget3* This, SIZE* size) { + return This->lpVtbl->GetSize(This, size); } -static inline HRESULT IDWriteBitmapRenderTarget3_Resize(IDWriteBitmapRenderTarget3* This,UINT32 width,UINT32 height) { - return This->lpVtbl->Resize(This,width,height); +static inline HRESULT IDWriteBitmapRenderTarget3_Resize(IDWriteBitmapRenderTarget3* This, UINT32 width, UINT32 height) { + return This->lpVtbl->Resize(This, width, height); } /*** IDWriteBitmapRenderTarget1 methods ***/ static inline DWRITE_TEXT_ANTIALIAS_MODE IDWriteBitmapRenderTarget3_GetTextAntialiasMode(IDWriteBitmapRenderTarget3* This) { - return This->lpVtbl->GetTextAntialiasMode(This); + return This->lpVtbl->GetTextAntialiasMode(This); } -static inline HRESULT IDWriteBitmapRenderTarget3_SetTextAntialiasMode(IDWriteBitmapRenderTarget3* This,DWRITE_TEXT_ANTIALIAS_MODE mode) { - return This->lpVtbl->SetTextAntialiasMode(This,mode); +static inline HRESULT IDWriteBitmapRenderTarget3_SetTextAntialiasMode(IDWriteBitmapRenderTarget3* This, DWRITE_TEXT_ANTIALIAS_MODE mode) { + return This->lpVtbl->SetTextAntialiasMode(This, mode); } /*** IDWriteBitmapRenderTarget2 methods ***/ -static inline HRESULT IDWriteBitmapRenderTarget3_GetBitmapData(IDWriteBitmapRenderTarget3* This,DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) { - return This->lpVtbl->GetBitmapData(This,bitmap_data); +static inline HRESULT IDWriteBitmapRenderTarget3_GetBitmapData(IDWriteBitmapRenderTarget3* This, DWRITE_BITMAP_DATA_BGRA32* bitmap_data) { + return This->lpVtbl->GetBitmapData(This, bitmap_data); } /*** IDWriteBitmapRenderTarget3 methods ***/ static inline DWRITE_PAINT_FEATURE_LEVEL IDWriteBitmapRenderTarget3_GetPaintFeatureLevel(IDWriteBitmapRenderTarget3* This) { - return This->lpVtbl->GetPaintFeatureLevel(This); + return This->lpVtbl->GetPaintFeatureLevel(This); } -static inline HRESULT IDWriteBitmapRenderTarget3_DrawPaintGlyphRun(IDWriteBitmapRenderTarget3* This,FLOAT origin_x,FLOAT origin_y,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *run,DWRITE_GLYPH_IMAGE_FORMATS image_format,COLORREF text_color,UINT32 palette_index,RECT *black_box) { - return This->lpVtbl->DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box); +static inline HRESULT IDWriteBitmapRenderTarget3_DrawPaintGlyphRun(IDWriteBitmapRenderTarget3* This, FLOAT origin_x, FLOAT origin_y, DWRITE_MEASURING_MODE measuring_mode, const DWRITE_GLYPH_RUN* run, DWRITE_GLYPH_IMAGE_FORMATS image_format, COLORREF text_color, UINT32 palette_index, RECT* black_box) { + return This->lpVtbl->DrawPaintGlyphRun(This, origin_x, origin_y, measuring_mode, run, image_format, text_color, palette_index, black_box); } -static inline HRESULT IDWriteBitmapRenderTarget3_DrawGlyphRunWithColorSupport(IDWriteBitmapRenderTarget3* This,FLOAT origin_x,FLOAT origin_y,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *run,IDWriteRenderingParams *params,COLORREF text_color,UINT32 palette_index,RECT *black_box) { - return This->lpVtbl->DrawGlyphRunWithColorSupport(This,origin_x,origin_y,measuring_mode,run,params,text_color,palette_index,black_box); +static inline HRESULT IDWriteBitmapRenderTarget3_DrawGlyphRunWithColorSupport(IDWriteBitmapRenderTarget3* This, FLOAT origin_x, FLOAT origin_y, DWRITE_MEASURING_MODE measuring_mode, const DWRITE_GLYPH_RUN* run, IDWriteRenderingParams* params, COLORREF text_color, UINT32 palette_index, RECT* black_box) { + return This->lpVtbl->DrawGlyphRunWithColorSupport(This, origin_x, origin_y, measuring_mode, run, params, text_color, palette_index, black_box); } #endif #endif #endif - -#endif /* __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__ */ +#endif /* __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__ */ /* Begin additional prototypes for all interfaces */ - /* End additional prototypes */ #ifdef __cplusplus diff --git a/src/text/ft2.c b/src/text/ft2.c index b83b06ce8..13e8208c1 100644 --- a/src/text/ft2.c +++ b/src/text/ft2.c @@ -159,7 +159,7 @@ static void ft2_MwFontFree(void* handle) { free(ttf); } -int MWFL_FT2Setup(void) { +int MwFL_FT2Setup(void) { /* Try and load FreeType2. If it fails, return 1, signifying we default to stbtt. */ void* ftlib; #ifdef __APPLE__ diff --git a/src/text/gdi.c b/src/text/gdi.c new file mode 100644 index 000000000..d3573b91a --- /dev/null +++ b/src/text/gdi.c @@ -0,0 +1,148 @@ +#ifdef USE_GDI_TEXT +#include + +struct _MwFLFont { + HANDLE handle; + HFONT font; + HDC dc; +}; + +static int GDI_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, MwLLColor color) { + BITMAPINFOHEADER bmih; + int tw; + int th; + HBITMAP hbm; + RGBQUAD* bits = NULL; + HDC hmdc; + char* t = MwUTF8ToACP(text); + unsigned char* px; + int y, x; + MwRect r; + MwLLPixmap p; + + tw = MwTextWidth(handle, ttf, text); + th = MwTextHeight(handle, ttf, text); + + px = malloc(tw * th * 4); + + bmih.biSize = sizeof(bmih); + bmih.biWidth = tw; + bmih.biHeight = -(LONG)th; + bmih.biPlanes = 1; + bmih.biBitCount = 32; + bmih.biCompression = BI_RGB; + bmih.biSizeImage = 0; + bmih.biXPelsPerMeter = 0; + bmih.biYPelsPerMeter = 0; + bmih.biClrUsed = 0; + bmih.biClrImportant = 0; + + hbm = CreateDIBSection(ttf->dc, (BITMAPINFO*)&bmih, DIB_RGB_COLORS, (void**)&bits, NULL, 0); + + hmdc = CreateCompatibleDC(ttf->dc); + SelectObject(hmdc, hbm); + SelectObject(hmdc, ttf->font); + + TextOut(hmdc, 0, 0, t, strlen(t)); + + DeleteDC(hmdc); + + for(y = 0; y < th; y++) { + for(x = 0; x < tw; x++) { + unsigned char* opx = &px[(y * tw + x) * 4]; + + opx[0] = color->common.red; + opx[1] = color->common.green; + opx[2] = color->common.blue; + opx[3] = 255 - bits[y * tw + x].rgbRed; + } + } + + p = MwLoadRaw(handle, px, tw, th); + r.x = point->x; + r.y = point->y - th / 2; + r.width = tw; + r.height = th; + + MwLLDrawPixmap(handle->lowlevel, &r, p); + MwLLDestroyPixmap(p); + free(px); + + DeleteObject(hbm); + + free(t); + + return 0; +} + +static int GDI_MwTextWidth(MwFLFont ttf, const char* text) { + char* t = MwUTF8ToACP(text); + SIZE sz; + + GetTextExtentPoint32(ttf->dc, t, strlen(t), &sz); + + free(t); + + return sz.cx; +} + +static int GDI_MwTextHeight(MwFLFont ttf, int count) { + TEXTMETRIC tm; + + GetTextMetrics(ttf->dc, &tm); + + return tm.tmHeight * count; +} + +static void* GDI_MwFontLoad(unsigned char* data, unsigned int size, int px) { + MwFLFont ttf = malloc(sizeof(*ttf)); + DWORD c; + MwTTFInfo info; + + if((info = MwTTFGetInfo(data, size)) == NULL) { + free(ttf); + return NULL; + } + + ttf->dc = GetDC(NULL); + + if((ttf->handle = AddFontMemResourceEx(data, size, 0, &c)) == NULL) { + ReleaseDC(NULL, ttf->dc); + MwTTFFreeInfo(info); + free(ttf); + return NULL; + } + + if((ttf->font = CreateFont(-px, 0, 0, 0, info->weight, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, info->family)) == NULL) { + RemoveFontMemResourceEx(ttf->handle); + ReleaseDC(NULL, ttf->dc); + MwTTFFreeInfo(info); + free(ttf); + return NULL; + } + + MwTTFFreeInfo(info); + + SelectObject(ttf->dc, ttf->font); + + return ttf; +} + +static void GDI_MwFontFree(void* handle) { + MwFLFont ttf = handle; + + DeleteObject(ttf->font); + RemoveFontMemResourceEx(ttf->handle); + ReleaseDC(NULL, ttf->dc); + free(ttf); +} + +int MwFL_GDISetup(void) { + MwFLDrawText = GDI_MwDrawText; + MwFLTextWidth = GDI_MwTextWidth; + MwFLTextHeight = GDI_MwTextHeight; + MwFLFontLoad = GDI_MwFontLoad; + MwFLFontFree = GDI_MwFontFree; + return 0; +} +#endif diff --git a/src/text/text.c b/src/text/text.c index e43de8c88..f0b80c7db 100644 --- a/src/text/text.c +++ b/src/text/text.c @@ -3,7 +3,7 @@ int (*MwFLDrawText)(MwWidget handle, MwFLFont font, MwPoint* point, const char* text, MwLLColor color) = NULL; int (*MwFLTextWidth)(MwFLFont font, const char* text) = NULL; int (*MwFLTextHeight)(MwFLFont font, int count) = NULL; -int (*MwFLTextHeightWithText)(MwFLFont ttf, const char * text) = NULL; +int (*MwFLTextHeightWithText)(MwFLFont ttf, const char* text) = NULL; void* (*MwFLFontLoad)(unsigned char* data, unsigned int size, int px) = NULL; void (*MwFLFontFree)(void* handle) = NULL; @@ -222,7 +222,7 @@ int MwTextHeight(MwWidget handle, MwFLFont ttf, const char* text) { if(MwFLTextHeight) if(!MwGetInteger(handle, MwNbitmapFont) && ttf != NULL && (st = MwFLTextHeight(ttf, c)) != -1) return st; if(MwFLTextHeightWithText) - if(!MwGetInteger(handle, MwNbitmapFont) && ttf != NULL && (st = MwFLTextHeightWithText(ttf, text)) != -1) return st; + if(!MwGetInteger(handle, MwNbitmapFont) && ttf != NULL && (st = MwFLTextHeightWithText(ttf, text)) != -1) return st; #endif return FontHeight * c; } @@ -300,11 +300,14 @@ static void bitmap_MwDrawText(MwWidget handle, MwPoint* point, const char* text, typedef int (*call_t)(void); void MwFLSetup(void) { call_t calls[] = { +#ifdef USE_GDI_TEXT + MwFL_GDISetup, +#endif #ifdef USE_DIRECTWRITE - MWFL_DWSetup, + MwFL_DWSetup, #endif #ifdef USE_FREETYPE2 - MWFL_FT2Setup, + MwFL_FT2Setup, #endif #ifdef USE_STB_TRUETYPE MwFL_STBTTSetup, diff --git a/src/ttf.c b/src/ttf.c new file mode 100644 index 000000000..e20071430 --- /dev/null +++ b/src/ttf.c @@ -0,0 +1,142 @@ +#include + +#define REMAIN (size - (data - old)) + +MwTTFInfo MwTTFGetInfo(unsigned char* data, int size){ + unsigned short n = 0; + int i; + unsigned char* old = data; + MwTTFInfo info = malloc(sizeof(*info)); + + memset(info, 0, sizeof(*info)); + + if(size < 12){ + MwTTFFreeInfo(info); + return NULL; + } + n |= data[4 + 0]; + n = n << 8; + n |= data[4 + 1]; + + data += 12; + for(i = 0; REMAIN > 0 && i < n; i++){ + unsigned int offset = 0; + unsigned int length = 0; + int j; + + if(REMAIN < (4 + 4 + 4 + 4)){ + MwTTFFreeInfo(info); + return NULL; + } + + for(j = 0; j < 4; j++){ + offset = offset << 8; + offset |= data[4 + 4 + j]; + + length = length << 8; + length |= data[4 + 4 + 4 + j]; + } + + if(memcmp(data, "OS/2", 4) == 0){ + if(length >= 68){ + unsigned char* rev = data; + unsigned short us_weight = 0; + + data = old + offset; + if(REMAIN < 68){ + MwTTFFreeInfo(info); + return NULL; + } + + for(j = 0; j < 2; j++){ + us_weight = us_weight << 8; + us_weight |= data[0x4 + j]; + } + + info->weight = us_weight; + + data = rev; + } + }else if(memcmp(data, "name", 4) == 0){ + if(length >= 6){ + unsigned short count = 0; + unsigned char* rev = data; + unsigned short str_off = 0; + unsigned char* beg; + + data = old + offset; + if(REMAIN < (2 + 2 + 2)){ + MwTTFFreeInfo(info); + return NULL; + } + + beg = data; + + for(j = 0; j < 2; j++){ + count = count << 8; + count |= data[2 + j]; + + str_off = str_off << 8; + str_off |= data[2 + 2 + j]; + } + + data += 2 + 2 + 2; + for(j = 0; j < count; j++){ + unsigned short platform = 0; + unsigned short name = 0; + unsigned short nam_len = 0; + unsigned short nam_off = 0; + int k; + + if(REMAIN < (2 + 2 + 2 + 2 + 2 + 2)){ + MwTTFFreeInfo(info); + return NULL; + } + + for(k = 0; k < 2; k++){ + platform = platform << 8; + platform |= data[0 + k]; + + name = name << 8; + name |= data[2 + 2 + 2 + k]; + + nam_len = nam_len << 8; + nam_len |= data[2 + 2 + 2 + 2 + k]; + + nam_off = nam_off << 8; + nam_off |= data[2 + 2 + 2 + 2 + 2 + k]; + } + + /* FIXME: this does not work with surrogate */ + if((platform == 0 || platform == 3) && name == 1){ + data = beg + str_off + nam_off; + if(REMAIN < nam_len){ + MwTTFFreeInfo(info); + return NULL; + } + + if(info->family != NULL) free(info->family); + + info->family = malloc(nam_len / 2 + 1); + + for(k = 0; k < nam_len / 2; k++) info->family[k] = data[k * 2 + 1]; + info->family[k] = 0; + } + + data += 2 + 2 + 2 + 2 + 2 + 2; + } + + data = rev; + } + } + + data += 4 + 4 + 4 + 4; + } + + return info; +} + +void MwTTFFreeInfo(MwTTFInfo info){ + if(info->family != NULL) free(info->family); + free(info); +} diff --git a/src/widget/label.c b/src/widget/label.c index 5a165e7ce..a0be9ca58 100644 --- a/src/widget/label.c +++ b/src/widget/label.c @@ -336,7 +336,7 @@ static void draw_normal(MwWidget handle) { r.width -= MwGetInteger(handle, MwNleftPadding); -#if 0 +#if 1 if(align == MwALIGNMENT_CENTER) { p.x = r.width / 2; } else if(align == MwALIGNMENT_BEGINNING) { @@ -353,11 +353,11 @@ static void draw_normal(MwWidget handle) { p.x += 1; p.y += 1; - MwDrawText(handle, NULL, &p, str, MwALIGNMENT_BEGINNING, shadow); + MwDrawText(handle, NULL, &p, str, MwALIGNMENT_CENTER, shadow); p.x -= 1; p.y -= 1; - MwDrawText(handle, NULL, &p, str, MwALIGNMENT_BEGINNING, text); + MwDrawText(handle, NULL, &p, str, MwALIGNMENT_CENTER, text); MwLLFreeColor(shadow); MwLLFreeColor(text); diff --git a/src/widget/window.c b/src/widget/window.c index 930b09224..3d0afe254 100644 --- a/src/widget/window.c +++ b/src/widget/window.c @@ -36,7 +36,7 @@ static void mwWindowMakeBorderlessImpl(MwWidget handle, int toggle) { } static void mwWindowShouldCloseImpl(MwWidget handle, MwBool* out) { - *out = handle->close; + *out = handle->close; } static void func_handler(MwWidget handle, const char* name, void* out, va_list va) { @@ -47,7 +47,7 @@ static void func_handler(MwWidget handle, const char* name, void* out, va_list v mwWindowMakeBorderlessImpl(handle, toggle); } if(strcmp(name, "mwWindowShouldClose") == 0) { - MwBool *out = va_arg(va, MwBool*); + MwBool* out = va_arg(va, MwBool*); mwWindowShouldCloseImpl(handle, out); } } From 6bc00c6dca2366153c21da479d28cee557652812 Mon Sep 17 00:00:00 2001 From: Nishi Date: Sun, 19 Jul 2026 20:39:31 +0900 Subject: [PATCH 777/836] better naming --- src/{ttf.c => truetype.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/{ttf.c => truetype.c} (100%) diff --git a/src/ttf.c b/src/truetype.c similarity index 100% rename from src/ttf.c rename to src/truetype.c From bc5fc1081640f7179c06ddb1cf737f0b3ffcda19 Mon Sep 17 00:00:00 2001 From: Nishi Date: Sun, 19 Jul 2026 21:04:33 +0900 Subject: [PATCH 778/836] faster gdi text rendering --- include/Mw/LowLevel/GDI.h | 3 +- src/backend/gdi.c | 3 +- src/text/gdi.c | 15 ++++++++- src/truetype.c | 64 +++++++++++++++++++-------------------- 4 files changed, 50 insertions(+), 35 deletions(-) diff --git a/include/Mw/LowLevel/GDI.h b/include/Mw/LowLevel/GDI.h index d2e247350..e505b0a40 100644 --- a/include/Mw/LowLevel/GDI.h +++ b/include/Mw/LowLevel/GDI.h @@ -34,7 +34,8 @@ struct _MwLLGDI { struct _MwLLGDIColor { struct _MwLLCommonColor common; - HBRUSH brush; + COLORREF color; + HBRUSH brush; }; struct _MwLLGDIPixmap { diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 62a1a1b4f..acc341e46 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -502,7 +502,8 @@ static void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { if(b < 0) b = 0; if(c->gdi.brush != NULL) DeleteObject(c->gdi.brush); - c->gdi.brush = CreateSolidBrush(GetNearestColor(dc, RGB(r, g, b))); + c->gdi.color = GetNearestColor(dc, RGB(r, g, b)); + c->gdi.brush = CreateSolidBrush(c->gdi.color); c->common.red = r; c->common.green = g; c->common.blue = b; diff --git a/src/text/gdi.c b/src/text/gdi.c index d3573b91a..8915eea4c 100644 --- a/src/text/gdi.c +++ b/src/text/gdi.c @@ -23,6 +23,20 @@ static int GDI_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const c tw = MwTextWidth(handle, ttf, text); th = MwTextHeight(handle, ttf, text); + if(handle->lowlevel->common.type == MwLLBackendGDI) { + HFONT old_font = SelectObject(handle->lowlevel->gdi.hDC, ttf->font); + int old_bkmode = SetBkMode(handle->lowlevel->gdi.hDC, TRANSPARENT); + COLORREF old_color = SetTextColor(handle->lowlevel->gdi.hDC, color->gdi.color); + + TextOut(handle->lowlevel->gdi.hDC, point->x, point->y - th / 2, t, strlen(t)); + + SetTextColor(handle->lowlevel->gdi.hDC, old_color); + SetBkMode(handle->lowlevel->gdi.hDC, old_bkmode); + SelectObject(handle->lowlevel->gdi.hDC, old_font); + + return 0; + } + px = malloc(tw * th * 4); bmih.biSize = sizeof(bmih); @@ -69,7 +83,6 @@ static int GDI_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const c free(px); DeleteObject(hbm); - free(t); return 0; diff --git a/src/truetype.c b/src/truetype.c index e20071430..4f2c8196d 100644 --- a/src/truetype.c +++ b/src/truetype.c @@ -2,15 +2,15 @@ #define REMAIN (size - (data - old)) -MwTTFInfo MwTTFGetInfo(unsigned char* data, int size){ +MwTTFInfo MwTTFGetInfo(unsigned char* data, int size) { unsigned short n = 0; - int i; - unsigned char* old = data; - MwTTFInfo info = malloc(sizeof(*info)); + int i; + unsigned char* old = data; + MwTTFInfo info = malloc(sizeof(*info)); memset(info, 0, sizeof(*info)); - if(size < 12){ + if(size < 12) { MwTTFFreeInfo(info); return NULL; } @@ -19,17 +19,17 @@ MwTTFInfo MwTTFGetInfo(unsigned char* data, int size){ n |= data[4 + 1]; data += 12; - for(i = 0; REMAIN > 0 && i < n; i++){ + for(i = 0; REMAIN > 0 && i < n; i++) { unsigned int offset = 0; unsigned int length = 0; - int j; + int j; - if(REMAIN < (4 + 4 + 4 + 4)){ + if(REMAIN < (4 + 4 + 4 + 4)) { MwTTFFreeInfo(info); return NULL; } - for(j = 0; j < 4; j++){ + for(j = 0; j < 4; j++) { offset = offset << 8; offset |= data[4 + 4 + j]; @@ -37,18 +37,18 @@ MwTTFInfo MwTTFGetInfo(unsigned char* data, int size){ length |= data[4 + 4 + 4 + j]; } - if(memcmp(data, "OS/2", 4) == 0){ - if(length >= 68){ - unsigned char* rev = data; + if(memcmp(data, "OS/2", 4) == 0) { + if(length >= 68) { + unsigned char* rev = data; unsigned short us_weight = 0; data = old + offset; - if(REMAIN < 68){ + if(REMAIN < 68) { MwTTFFreeInfo(info); return NULL; } - for(j = 0; j < 2; j++){ + for(j = 0; j < 2; j++) { us_weight = us_weight << 8; us_weight |= data[0x4 + j]; } @@ -57,22 +57,22 @@ MwTTFInfo MwTTFGetInfo(unsigned char* data, int size){ data = rev; } - }else if(memcmp(data, "name", 4) == 0){ - if(length >= 6){ - unsigned short count = 0; - unsigned char* rev = data; + } else if(memcmp(data, "name", 4) == 0) { + if(length >= 6) { + unsigned short count = 0; + unsigned char* rev = data; unsigned short str_off = 0; unsigned char* beg; data = old + offset; - if(REMAIN < (2 + 2 + 2)){ + if(REMAIN < (2 + 2 + 2)) { MwTTFFreeInfo(info); return NULL; } beg = data; - for(j = 0; j < 2; j++){ + for(j = 0; j < 2; j++) { count = count << 8; count |= data[2 + j]; @@ -81,19 +81,19 @@ MwTTFInfo MwTTFGetInfo(unsigned char* data, int size){ } data += 2 + 2 + 2; - for(j = 0; j < count; j++){ + for(j = 0; j < count; j++) { unsigned short platform = 0; - unsigned short name = 0; - unsigned short nam_len = 0; - unsigned short nam_off = 0; - int k; + unsigned short name = 0; + unsigned short nam_len = 0; + unsigned short nam_off = 0; + int k; - if(REMAIN < (2 + 2 + 2 + 2 + 2 + 2)){ + if(REMAIN < (2 + 2 + 2 + 2 + 2 + 2)) { MwTTFFreeInfo(info); return NULL; } - for(k = 0; k < 2; k++){ + for(k = 0; k < 2; k++) { platform = platform << 8; platform |= data[0 + k]; @@ -107,10 +107,10 @@ MwTTFInfo MwTTFGetInfo(unsigned char* data, int size){ nam_off |= data[2 + 2 + 2 + 2 + 2 + k]; } - /* FIXME: this does not work with surrogate */ - if((platform == 0 || platform == 3) && name == 1){ + /* FIXME: this does not work with surrogate */ + if((platform == 0 || platform == 3) && name == 1) { data = beg + str_off + nam_off; - if(REMAIN < nam_len){ + if(REMAIN < nam_len) { MwTTFFreeInfo(info); return NULL; } @@ -118,7 +118,7 @@ MwTTFInfo MwTTFGetInfo(unsigned char* data, int size){ if(info->family != NULL) free(info->family); info->family = malloc(nam_len / 2 + 1); - + for(k = 0; k < nam_len / 2; k++) info->family[k] = data[k * 2 + 1]; info->family[k] = 0; } @@ -136,7 +136,7 @@ MwTTFInfo MwTTFGetInfo(unsigned char* data, int size){ return info; } -void MwTTFFreeInfo(MwTTFInfo info){ +void MwTTFFreeInfo(MwTTFInfo info) { if(info->family != NULL) free(info->family); free(info); } From 84531e9be179fd7cdc2ad1fef55d30eff6a53313 Mon Sep 17 00:00:00 2001 From: Nishi Date: Sun, 19 Jul 2026 21:06:32 +0900 Subject: [PATCH 779/836] fix documentation --- include/Mw/TrueType.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/Mw/TrueType.h b/include/Mw/TrueType.h index 7204c3157..eea90c95f 100644 --- a/include/Mw/TrueType.h +++ b/include/Mw/TrueType.h @@ -22,7 +22,7 @@ MWDECL MwTTFInfo MwTTFGetInfo(unsigned char* data, int size); /*! * @brief Free the TrueType font information - * @brief info Information + * @param info Information */ MWDECL void MwTTFFreeInfo(MwTTFInfo info); From 09fc854aba641a8bffe18394bf3502be809ce2b8 Mon Sep 17 00:00:00 2001 From: nishi Date: Sun, 19 Jul 2026 21:11:43 +0900 Subject: [PATCH 780/836] fix memleak --- src/text/gdi.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/text/gdi.c b/src/text/gdi.c index 8915eea4c..7823ee7eb 100644 --- a/src/text/gdi.c +++ b/src/text/gdi.c @@ -34,6 +34,8 @@ static int GDI_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const c SetBkMode(handle->lowlevel->gdi.hDC, old_bkmode); SelectObject(handle->lowlevel->gdi.hDC, old_font); + free(t); + return 0; } From b285d1ba8d8b4e2f90c3e1bb1ea060cc08aa6493 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 20 Jul 2026 03:36:31 +0900 Subject: [PATCH 781/836] fix tick --- src/core.c | 4 ++-- src/widget/opengl.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core.c b/src/core.c index c72b8686a..bcbcb6ea7 100644 --- a/src/core.c +++ b/src/core.c @@ -527,7 +527,7 @@ static void MwAfterStep(MwWidget handle) { } #endif - if(arrlen(handle->tick_list) > 0 && (MwTimeGetTick() - handle->last_tick) >= MwWaitMS) { + if(arrlen(handle->tick_list) > 0 && (MwTimeGetTick() - handle->last_tick) >= (MwGetInteger(handle, MwNwaitMS) == MwDEFAULT ? MwWaitMS : MwGetInteger(handle, MwNwaitMS))) { for(i = 0; i < arrlen(handle->tick_list); i++) { MwDispatch(handle->tick_list[i], tick); MwDispatchUserHandler(handle->tick_list[i], MwNtickHandler, NULL); @@ -569,7 +569,7 @@ int MwPending(MwWidget handle) { for(i = 0; i < arrlen(handle->children); i++) { if(MwPending(handle->children[i])) return 1; } - return (arrlen(handle->tick_list) > 0 && (MwTimeGetTick() - handle->last_tick) >= MwWaitMS) || (arrlen(handle->destroy_queue) > 0) || (handle->widget_class == NULL ? 0 : MwLLPending(handle->lowlevel)); + return (arrlen(handle->tick_list) > 0 && (MwTimeGetTick() - handle->last_tick) >= (MwGetInteger(handle, MwNwaitMS) == MwDEFAULT ? MwWaitMS : MwGetInteger(handle, MwNwaitMS))) || (arrlen(handle->destroy_queue) > 0) || (handle->widget_class == NULL ? 0 : MwLLPending(handle->lowlevel)); } void MwLoop(MwWidget handle) { diff --git a/src/widget/opengl.c b/src/widget/opengl.c index db839eac1..30a1cee89 100644 --- a/src/widget/opengl.c +++ b/src/widget/opengl.c @@ -682,4 +682,4 @@ MWDECL MwClass MwOpenGLClass; MwClass MwOpenGLClass = NULL; #endif -#endif \ No newline at end of file +#endif From d36c9190ec562339225a553e4a2045207c7f1d76 Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 20 Jul 2026 03:45:50 +0900 Subject: [PATCH 782/836] better timer --- CMakeLists.txt | 2 +- include/Mw/MachDep.h | 1 + src/abstract/time.c | 2 +- src/core.c | 4 ++++ 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e1fbb2ac2..11c3390d3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -344,7 +344,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows" OR CMAKE_SYSTEM_NAME STREQUAL "MSYS") PRIVATE USE_GDI ) - list(APPEND LIBRARIES gdi32) + list(APPEND LIBRARIES gdi32 winmm) target_link_options( Mw PRIVATE diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index 0415b4cd5..4c98b24da 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -25,6 +25,7 @@ #ifdef _MILSKO #include +#include #ifndef GWLP_USERDATA #define GWLP_USERDATA GWL_USERDATA #define GWLP_WNDPROC GWL_WNDPROC diff --git a/src/abstract/time.c b/src/abstract/time.c index d1ddb83b3..59e977452 100644 --- a/src/abstract/time.c +++ b/src/abstract/time.c @@ -2,7 +2,7 @@ #if defined(_WIN32) long MwTimeGetTick(void) { - return GetTickCount(); + return timeGetTime(); } void MwTimeSleep(int ms) { diff --git a/src/core.c b/src/core.c index bcbcb6ea7..355097c40 100644 --- a/src/core.c +++ b/src/core.c @@ -1072,6 +1072,10 @@ int MwLibraryInit(void) { NULL}; int i; +#ifdef _WIN32 + timeBeginPeriod(10); +#endif + #ifdef USE_WAYLAND if(MwWaylandCairoOnly) { calls[0] = MwLLCairoCallInit; From 8a6bfb62de920ccb0630460f23bfd1462172b60a Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 20 Jul 2026 03:58:29 +0900 Subject: [PATCH 783/836] work --- pl/ostype/Windows.pl | 1 + tools/genmk.pl | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/pl/ostype/Windows.pl b/pl/ostype/Windows.pl index 29bdc98f5..f79469fc4 100644 --- a/pl/ostype/Windows.pl +++ b/pl/ostype/Windows.pl @@ -4,5 +4,6 @@ $executable_suffix = ".exe"; $math = ""; add_ldflags("-Wl,--out-implib,src/libMw.dll.a -static-libgcc"); use_backend("gdi"); +add_libs("-lwinmm"); 1; diff --git a/tools/genmk.pl b/tools/genmk.pl index 6977df2a4..4b419b103 100755 --- a/tools/genmk.pl +++ b/tools/genmk.pl @@ -190,7 +190,7 @@ sub generate { print(OUT "src${dir}Mw.dll: " . cobjs($dir) . "\n"); print( OUT " \$(LD) \$(MW_LDFLAGS) $c_dllout $dllout\$@ " . cobjs($dir, $prefobj) - . " $needlibs ${lib}opengl32.lib ${lib}gdi32.lib ${lib}user32.lib ${lib}advapi32.lib\n" + . " $needlibs ${lib}opengl32.lib ${lib}gdi32.lib ${lib}winmm.lib ${lib}user32.lib ${lib}advapi32.lib\n" ); print(OUT " $c_dllafter\n"); print(OUT "\n"); From b7ed160614465b1a7f5b7b87ef949b9c699ac35f Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 20 Jul 2026 04:00:56 +0900 Subject: [PATCH 784/836] generate makefile --- NTMakefile | 7 +++++-- WatMakefile | 15 ++++++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/NTMakefile b/NTMakefile index b4943e73e..aa8b1992e 100644 --- a/NTMakefile +++ b/NTMakefile @@ -64,6 +64,7 @@ clean: del /f /q src\icon\warning.obj del /f /q src\lowlevel.obj del /f /q src\string.obj + del /f /q src\text\directwrite.obj del /f /q src\text\font\boldfont.obj del /f /q src\text\font\boldmonottf.obj del /f /q src\text\font\boldttf.obj @@ -71,8 +72,10 @@ clean: del /f /q src\text\font\monottf.obj del /f /q src\text\font\ttf.obj del /f /q src\text\ft2.obj + del /f /q src\text\gdi.obj del /f /q src\text\stbtt.obj del /f /q src\text\text.obj + del /f /q src\truetype.obj del /f /q src\unicode.obj del /f /q src\widget\box.obj del /f /q src\widget\button.obj @@ -318,8 +321,8 @@ examples\gldemos\tripaint.obj: examples/gldemos/tripaint.c $(CC) $(EXE_CFLAGS) /Fo$@ examples/gldemos/tripaint.c -src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\table.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj - $(LD) $(MW_LDFLAGS) /OUT:$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\stbtt.obj src\text\text.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\table.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib user32.lib advapi32.lib +src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\directwrite.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\gdi.obj src\text\stbtt.obj src\text\text.obj src\truetype.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\table.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj + $(LD) $(MW_LDFLAGS) /OUT:$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\directwrite.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\gdi.obj src\text\stbtt.obj src\text\text.obj src\truetype.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\table.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib winmm.lib user32.lib advapi32.lib .c.obj: diff --git a/WatMakefile b/WatMakefile index 7e32bba3b..84c510b8d 100644 --- a/WatMakefile +++ b/WatMakefile @@ -63,6 +63,7 @@ clean: .SYMBOLIC %erase src/icon/warning.obj %erase src/lowlevel.obj %erase src/string.obj + %erase src/text/directwrite.obj %erase src/text/font/boldfont.obj %erase src/text/font/boldmonottf.obj %erase src/text/font/boldttf.obj @@ -70,8 +71,10 @@ clean: .SYMBOLIC %erase src/text/font/monottf.obj %erase src/text/font/ttf.obj %erase src/text/ft2.obj + %erase src/text/gdi.obj %erase src/text/stbtt.obj %erase src/text/text.obj + %erase src/truetype.obj %erase src/unicode.obj %erase src/widget/box.obj %erase src/widget/button.obj @@ -317,9 +320,9 @@ examples/gldemos/tripaint.obj: examples/gldemos/tripaint.c $(CC) $(EXE_CFLAGS) -fo=$@ examples/gldemos/tripaint.c -src/Mw.dll: external/libz/src/adler32.obj external/libz/src/compress.obj external/libz/src/crc32.obj external/libz/src/deflate.obj external/libz/src/gzclose.obj external/libz/src/gzlib.obj external/libz/src/gzread.obj external/libz/src/gzwrite.obj external/libz/src/infback.obj external/libz/src/inffast.obj external/libz/src/inflate.obj external/libz/src/inftrees.obj external/libz/src/trees.obj external/libz/src/uncompr.obj external/libz/src/zutil.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/charset.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text/font/boldfont.obj src/text/font/boldmonottf.obj src/text/font/boldttf.obj src/text/font/font.obj src/text/font/monottf.obj src/text/font/ttf.obj src/text/ft2.obj src/text/stbtt.obj src/text/text.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/calendar.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/subwindow.obj src/widget/tab.obj src/widget/table.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj - $(LD) $(MW_LDFLAGS) option implib=src/Mw.lib name $@ file external/libz/src/adler32.obj file external/libz/src/compress.obj file external/libz/src/crc32.obj file external/libz/src/deflate.obj file external/libz/src/gzclose.obj file external/libz/src/gzlib.obj file external/libz/src/gzread.obj file external/libz/src/gzwrite.obj file external/libz/src/infback.obj file external/libz/src/inffast.obj file external/libz/src/inflate.obj file external/libz/src/inftrees.obj file external/libz/src/trees.obj file external/libz/src/uncompr.obj file external/libz/src/zutil.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/charset.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/font/boldfont.obj file src/text/font/boldmonottf.obj file src/text/font/boldttf.obj file src/text/font/font.obj file src/text/font/monottf.obj file src/text/font/ttf.obj file src/text/ft2.obj file src/text/stbtt.obj file src/text/text.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/calendar.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/subwindow.obj file src/widget/tab.obj file src/widget/table.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib library advapi32.lib - +src/Mw.dll: external/libz/src/adler32.obj external/libz/src/compress.obj external/libz/src/crc32.obj external/libz/src/deflate.obj external/libz/src/gzclose.obj external/libz/src/gzlib.obj external/libz/src/gzread.obj external/libz/src/gzwrite.obj external/libz/src/infback.obj external/libz/src/inffast.obj external/libz/src/inflate.obj external/libz/src/inftrees.obj external/libz/src/trees.obj external/libz/src/uncompr.obj external/libz/src/zutil.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/charset.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text/directwrite.obj src/text/font/boldfont.obj src/text/font/boldmonottf.obj src/text/font/boldttf.obj src/text/font/font.obj src/text/font/monottf.obj src/text/font/ttf.obj src/text/ft2.obj src/text/gdi.obj src/text/stbtt.obj src/text/text.obj src/truetype.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/calendar.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/subwindow.obj src/widget/tab.obj src/widget/table.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj + $(LD) $(MW_LDFLAGS) option implib=src/Mw.lib name $@ file external/libz/src/adler32.obj file external/libz/src/compress.obj file external/libz/src/crc32.obj file external/libz/src/deflate.obj file external/libz/src/gzclose.obj file external/libz/src/gzlib.obj file external/libz/src/gzread.obj file external/libz/src/gzwrite.obj file external/libz/src/infback.obj file external/libz/src/inffast.obj file external/libz/src/inflate.obj file external/libz/src/inftrees.obj file external/libz/src/trees.obj file external/libz/src/uncompr.obj file external/libz/src/zutil.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/charset.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/directwrite.obj file src/text/font/boldfont.obj file src/text/font/boldmonottf.obj file src/text/font/boldttf.obj file src/text/font/font.obj file src/text/font/monottf.obj file src/text/font/ttf.obj file src/text/ft2.obj file src/text/gdi.obj file src/text/stbtt.obj file src/text/text.obj file src/truetype.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/calendar.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/subwindow.obj file src/widget/tab.obj file src/widget/table.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library winmm.lib library user32.lib library advapi32.lib + external/libz/src/adler32.obj: external/libz/src/adler32.c @@ -430,6 +433,8 @@ src/lowlevel.obj: src/lowlevel.c $(CC) $(MW_CFLAGS) -fo=$@ src/lowlevel.c src/string.obj: src/string.c $(CC) $(MW_CFLAGS) -fo=$@ src/string.c +src/text/directwrite.obj: src/text/directwrite.c + $(CC) $(MW_CFLAGS) -fo=$@ src/text/directwrite.c src/text/font/boldfont.obj: src/text/font/boldfont.c $(CC) $(MW_CFLAGS) -fo=$@ src/text/font/boldfont.c src/text/font/boldmonottf.obj: src/text/font/boldmonottf.c @@ -444,10 +449,14 @@ src/text/font/ttf.obj: src/text/font/ttf.c $(CC) $(MW_CFLAGS) -fo=$@ src/text/font/ttf.c src/text/ft2.obj: src/text/ft2.c $(CC) $(MW_CFLAGS) -fo=$@ src/text/ft2.c +src/text/gdi.obj: src/text/gdi.c + $(CC) $(MW_CFLAGS) -fo=$@ src/text/gdi.c src/text/stbtt.obj: src/text/stbtt.c $(CC) $(MW_CFLAGS) -fo=$@ src/text/stbtt.c src/text/text.obj: src/text/text.c $(CC) $(MW_CFLAGS) -fo=$@ src/text/text.c +src/truetype.obj: src/truetype.c + $(CC) $(MW_CFLAGS) -fo=$@ src/truetype.c src/unicode.obj: src/unicode.c $(CC) $(MW_CFLAGS) -fo=$@ src/unicode.c src/widget/box.obj: src/widget/box.c From 1fe59521bfad3f8c1759e84423158eb7e04bf33d Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Sun, 19 Jul 2026 14:16:14 -0700 Subject: [PATCH 785/836] remove directwrite in favor of gdi --- CMakeLists.txt | 20 - NTMakefile | 5 +- WatMakefile | 7 +- configure | 22 +- examples/basic/example.c | 2 +- include/Mw/LowLevel.h | 4 +- pl/rules.pl | 4 +- src/core.c | 8 +- src/text/directwrite.c | 588 -- src/text/dwrite.h | 5398 ------------ src/text/dwrite_2.h | 3252 -------- src/text/dwrite_3.h | 15009 ---------------------------------- src/text/font/boldmonottf.c | 2 +- src/text/font/boldttf.c | 2 +- src/text/font/monottf.c | 2 +- src/text/font/ttf.c | 2 +- src/text/text.c | 5 +- 17 files changed, 21 insertions(+), 24311 deletions(-) delete mode 100644 src/text/directwrite.c delete mode 100644 src/text/dwrite.h delete mode 100644 src/text/dwrite_2.h delete mode 100644 src/text/dwrite_3.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 11c3390d3..a16283e64 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,19 +39,6 @@ else() endif() if(${CMAKE_SYSTEM_NAME} STREQUAL Windows) - if(${CMAKE_CROSSCOMPILING}) - message(STATUS "DirectWrite support has been enabled") - option(MW_USE_DIRECTWRITE "Use DirectWrite" ON) - else() - # DirectWrite stuff can only be used on Win10+ - if(${CMAKE_SYSTEM_VERSION} GREATER_EQUAL 10) - message(STATUS "DirectWrite support has been enabled") - option(MW_USE_DIRECTWRITE "Use DirectWrite" ON) - else() - message(WARNING "DirectWrite support has been disabled (must be compiling on Win10+)") - option(MW_USE_DIRECTWRITE "Use DirectWrite" OFF) - endif() - endif() option(MW_USE_GDI_TEXT "Use GDI for text rendering" ON) endif() @@ -164,13 +151,6 @@ if(MW_USE_FREETYPE2) endif() endif() -if(MW_USE_DIRECTWRITE) - target_compile_definitions( - Mw - PRIVATE - USE_DIRECTWRITE - ) -endif() if(MW_USE_GDI_TEXT) target_compile_definitions( diff --git a/NTMakefile b/NTMakefile index aa8b1992e..47ef31288 100644 --- a/NTMakefile +++ b/NTMakefile @@ -64,7 +64,6 @@ clean: del /f /q src\icon\warning.obj del /f /q src\lowlevel.obj del /f /q src\string.obj - del /f /q src\text\directwrite.obj del /f /q src\text\font\boldfont.obj del /f /q src\text\font\boldmonottf.obj del /f /q src\text\font\boldttf.obj @@ -321,8 +320,8 @@ examples\gldemos\tripaint.obj: examples/gldemos/tripaint.c $(CC) $(EXE_CFLAGS) /Fo$@ examples/gldemos/tripaint.c -src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\directwrite.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\gdi.obj src\text\stbtt.obj src\text\text.obj src\truetype.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\table.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj - $(LD) $(MW_LDFLAGS) /OUT:$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\directwrite.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\gdi.obj src\text\stbtt.obj src\text\text.obj src\truetype.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\table.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib winmm.lib user32.lib advapi32.lib +src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\gdi.obj src\text\stbtt.obj src\text\text.obj src\truetype.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\table.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj + $(LD) $(MW_LDFLAGS) /OUT:$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\gdi.obj src\text\stbtt.obj src\text\text.obj src\truetype.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\table.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib winmm.lib user32.lib advapi32.lib .c.obj: diff --git a/WatMakefile b/WatMakefile index 84c510b8d..5f3e00010 100644 --- a/WatMakefile +++ b/WatMakefile @@ -63,7 +63,6 @@ clean: .SYMBOLIC %erase src/icon/warning.obj %erase src/lowlevel.obj %erase src/string.obj - %erase src/text/directwrite.obj %erase src/text/font/boldfont.obj %erase src/text/font/boldmonottf.obj %erase src/text/font/boldttf.obj @@ -320,8 +319,8 @@ examples/gldemos/tripaint.obj: examples/gldemos/tripaint.c $(CC) $(EXE_CFLAGS) -fo=$@ examples/gldemos/tripaint.c -src/Mw.dll: external/libz/src/adler32.obj external/libz/src/compress.obj external/libz/src/crc32.obj external/libz/src/deflate.obj external/libz/src/gzclose.obj external/libz/src/gzlib.obj external/libz/src/gzread.obj external/libz/src/gzwrite.obj external/libz/src/infback.obj external/libz/src/inffast.obj external/libz/src/inflate.obj external/libz/src/inftrees.obj external/libz/src/trees.obj external/libz/src/uncompr.obj external/libz/src/zutil.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/charset.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text/directwrite.obj src/text/font/boldfont.obj src/text/font/boldmonottf.obj src/text/font/boldttf.obj src/text/font/font.obj src/text/font/monottf.obj src/text/font/ttf.obj src/text/ft2.obj src/text/gdi.obj src/text/stbtt.obj src/text/text.obj src/truetype.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/calendar.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/subwindow.obj src/widget/tab.obj src/widget/table.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj - $(LD) $(MW_LDFLAGS) option implib=src/Mw.lib name $@ file external/libz/src/adler32.obj file external/libz/src/compress.obj file external/libz/src/crc32.obj file external/libz/src/deflate.obj file external/libz/src/gzclose.obj file external/libz/src/gzlib.obj file external/libz/src/gzread.obj file external/libz/src/gzwrite.obj file external/libz/src/infback.obj file external/libz/src/inffast.obj file external/libz/src/inflate.obj file external/libz/src/inftrees.obj file external/libz/src/trees.obj file external/libz/src/uncompr.obj file external/libz/src/zutil.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/charset.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/directwrite.obj file src/text/font/boldfont.obj file src/text/font/boldmonottf.obj file src/text/font/boldttf.obj file src/text/font/font.obj file src/text/font/monottf.obj file src/text/font/ttf.obj file src/text/ft2.obj file src/text/gdi.obj file src/text/stbtt.obj file src/text/text.obj file src/truetype.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/calendar.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/subwindow.obj file src/widget/tab.obj file src/widget/table.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library winmm.lib library user32.lib library advapi32.lib +src/Mw.dll: external/libz/src/adler32.obj external/libz/src/compress.obj external/libz/src/crc32.obj external/libz/src/deflate.obj external/libz/src/gzclose.obj external/libz/src/gzlib.obj external/libz/src/gzread.obj external/libz/src/gzwrite.obj external/libz/src/infback.obj external/libz/src/inffast.obj external/libz/src/inflate.obj external/libz/src/inftrees.obj external/libz/src/trees.obj external/libz/src/uncompr.obj external/libz/src/zutil.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/charset.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text/font/boldfont.obj src/text/font/boldmonottf.obj src/text/font/boldttf.obj src/text/font/font.obj src/text/font/monottf.obj src/text/font/ttf.obj src/text/ft2.obj src/text/gdi.obj src/text/stbtt.obj src/text/text.obj src/truetype.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/calendar.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/subwindow.obj src/widget/tab.obj src/widget/table.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj + $(LD) $(MW_LDFLAGS) option implib=src/Mw.lib name $@ file external/libz/src/adler32.obj file external/libz/src/compress.obj file external/libz/src/crc32.obj file external/libz/src/deflate.obj file external/libz/src/gzclose.obj file external/libz/src/gzlib.obj file external/libz/src/gzread.obj file external/libz/src/gzwrite.obj file external/libz/src/infback.obj file external/libz/src/inffast.obj file external/libz/src/inflate.obj file external/libz/src/inftrees.obj file external/libz/src/trees.obj file external/libz/src/uncompr.obj file external/libz/src/zutil.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/charset.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/font/boldfont.obj file src/text/font/boldmonottf.obj file src/text/font/boldttf.obj file src/text/font/font.obj file src/text/font/monottf.obj file src/text/font/ttf.obj file src/text/ft2.obj file src/text/gdi.obj file src/text/stbtt.obj file src/text/text.obj file src/truetype.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/calendar.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/subwindow.obj file src/widget/tab.obj file src/widget/table.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library winmm.lib library user32.lib library advapi32.lib @@ -433,8 +432,6 @@ src/lowlevel.obj: src/lowlevel.c $(CC) $(MW_CFLAGS) -fo=$@ src/lowlevel.c src/string.obj: src/string.c $(CC) $(MW_CFLAGS) -fo=$@ src/string.c -src/text/directwrite.obj: src/text/directwrite.c - $(CC) $(MW_CFLAGS) -fo=$@ src/text/directwrite.c src/text/font/boldfont.obj: src/text/font/boldfont.c $(CC) $(MW_CFLAGS) -fo=$@ src/text/font/boldfont.c src/text/font/boldmonottf.obj: src/text/font/boldmonottf.c diff --git a/configure b/configure index f24e3abbb..57df6d8ff 100755 --- a/configure +++ b/configure @@ -59,7 +59,7 @@ my %features = ( "stb-image" => "use stb_image, instead use libjpeg/libpng", "stb-truetype" => "use stb_truetype", "freetype2" => "use FreeType2", - "directwrite" => "(Windows only) use DirectWrite", + "gdi-text" => "(Windows only) use GDI Text", "xrender" => "(X11 only) use XRender", "opengl" => "build OpenGL widget", "vulkan" => "build Vulkan widget", @@ -73,7 +73,7 @@ my %features = ( ); my @features_keys = ( "1classic-theme", "1stb-image", - "1stb-truetype", "1freetype2", "1directwrite", + "1stb-truetype", "1freetype2", "1gdi-text", "1opengl", "2xrender", "1vulkan", "2vulkan-string-helper", "1shared", "1static", @@ -101,23 +101,9 @@ sub def_platform { param_set("x11", 1); } if($target eq "Windows") { - if ($^O eq "Win32") - { - require Win32; - Win32->import(); - my ( $osvername, $major, $minor, $id ) = Win32::GetOSVersion(); - - if($major >= 10) { - param_set("directwrite", 1); - } else { - param_set("directwrite", 0); - } - } else { - # assume cross compiling - param_set("directwrite", 1); - } + param_set("gdi-text", 1); } else { - param_set("directwrite", 0); + param_set("gdi-text", 0); } } diff --git a/examples/basic/example.c b/examples/basic/example.c index 8fe38da78..fdf602750 100644 --- a/examples/basic/example.c +++ b/examples/basic/example.c @@ -112,7 +112,7 @@ int main() { MwNtext, "font", NULL); button4 = MwVaCreateWidget(MwButtonClass, "button", window, 50, 225, 100, 125, - MwNtext, "lorem ipsum", + MwNtext, "日本語の表記体系", MwNbackground, "#f66", MwNforeground, "#000", NULL); diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index efbc015b0..a2be27193 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -344,9 +344,7 @@ MWDECL int MwFL_FT2Setup(void); #ifdef USE_STB_TRUETYPE MWDECL int MwFL_STBTTSetup(void); #endif -#ifdef USE_DIRECTWRITE -MWDECL int MwFL_DWSetup(void); -#endif + #ifdef USE_GDI_TEXT MWDECL int MwFL_GDISetup(void); #endif diff --git a/pl/rules.pl b/pl/rules.pl index 6f3748223..986ee98ca 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -134,8 +134,8 @@ if (param_get("freetype2")) { } } -if (param_get("directwrite")) { - add_cflags("-DUSE_DIRECTWRITE"); +if (param_get("gdi-text")) { + add_cflags("-DUSE_GDI_TEXT"); } if (param_get("vulkan") && param_get("vulkan-string-helper")) { diff --git a/src/core.c b/src/core.c index 355097c40..9b5242df7 100644 --- a/src/core.c +++ b/src/core.c @@ -315,7 +315,7 @@ static MwWidget MwCreateWidget_Internal(MwClass widget_class, const char* name, MwAddTickList(h); } -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_GDI_TEXT) if(IsFirstVisible(h)) { font_setup: h->root_font = MwFontLoad(MwTTFData, MwTTFDataSize); @@ -744,7 +744,7 @@ int MwGetInteger(MwWidget handle, const char* key) { return MwDEFAULT; } else { if(shgeti(handle->integer, key) == -1) { -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_GDI_TEXT) if(strcmp(key, MwNbitmapFont) == 0) return inherit_integer(handle, key, 0); #else if(strcmp(key, MwNbitmapFont) == 0) return inherit_integer(handle, key, 1); @@ -795,7 +795,7 @@ const char* MwGetText(MwWidget handle, const char* key) { return shget(handle->text, key); } -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_GDI_TEXT) static void* inherit_void(MwWidget handle, const char* key) { void* v; @@ -811,7 +811,7 @@ void* MwGetVoid(MwWidget handle, const char* key) { if(v != NULL) return v; -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_GDI_TEXT) if(strcmp(key, MwNfont) == 0 || strcmp(key, MwNboldFont) == 0 || strcmp(key, MwNmonospaceFont) == 0 || strcmp(key, MwNboldMonospaceFont) == 0) { v = inherit_void(handle, key); diff --git a/src/text/directwrite.c b/src/text/directwrite.c deleted file mode 100644 index 75c707c19..000000000 --- a/src/text/directwrite.c +++ /dev/null @@ -1,588 +0,0 @@ -/* - * DirectWrite Font backend - * - * This should dynamically load everything necessary and then gracefully fallback if the user isn't on Windows 10. - */ -#ifdef USE_DIRECTWRITE -#define INITGUID -#include - -#include -#include - -#ifndef WINBOOL -#define WINBOOL int -#endif - -/* dwrite is vendored because it's only mingw that gives us COBJMACRO */ -#include "dwrite.h" -#include "dwrite_3.h" - -typedef struct CustomTextRenderer { - IDWriteTextRendererVtbl* lpVtbl; - LONG refCount; - IDWriteFactory6* write_factory; - IDWriteBitmapRenderTarget* target; - int red, blue, green; - -} CustomTextRenderer; -static CustomTextRenderer* CustomTextRenderer_Create(IDWriteFactory6* write_factory, IDWriteBitmapRenderTarget* target, MwLLColor color); - -static struct dw { - HMODULE d2d1_lib; - HMODULE dwrite_lib; - - HRESULT (*D2D1CreateFactory)(D2D1_FACTORY_TYPE factoryType, const IID* const riid, const D2D1_FACTORY_OPTIONS* pFactoryOptions, void** ppIFactory); - HRESULT (*DWriteCreateFactory)(int factoryType, const IID* const iid, IUnknown** factory); - - HMODULE kernel32_lib; -} dw_table; - -struct _MwFLFont { - int px; - void* data; - MwBool valid; - - IDWriteFactory6* write_factory; - ID2D1Factory* d2dFactory; - IDWriteGdiInterop* gdiInterop; - IDWriteFontFile* file; - IDWriteFontFace* font_face; - IDWriteFontSetBuilder2* font_builder; - IDWriteFontSet* font_set; - IDWriteFontCollection1* font_collection; - IDWriteTextFormat* text_format; - - LOGFONTW logfont; - HFONT font; -}; - -static int unpack_ttf_data(WCHAR* temp_path_name, unsigned char* data, unsigned int size) { - WCHAR temp_path_dir[MAX_PATH]; - HANDLE tempFile; - int hr; - - hr = GetTempPathW(MAX_PATH, temp_path_dir); - if(hr == 0) { - printf("GetTempPathW failed for TTF, cannot use DirectWrite\n"); - return 1; - } - hr = GetTempFileNameW(temp_path_dir, TEXT(L"MILSKO"), 0, temp_path_name); - if(hr == 0) { - printf("GetTempFileName failed for TTF, cannot use DirectWrite\n"); - return 1; - } - - tempFile = CreateFileW(temp_path_name, - GENERIC_WRITE, - 0, - NULL, - CREATE_NEW, - FILE_ATTRIBUTE_NORMAL, - NULL); - if(tempFile == INVALID_HANDLE_VALUE) { - DWORD err = GetLastError(); - if(err == ERROR_FILE_EXISTS) { - tempFile = CreateFileW(temp_path_name, - GENERIC_WRITE, - 0, - NULL, - OPEN_ALWAYS, - FILE_ATTRIBUTE_NORMAL, - NULL); - if(tempFile != INVALID_HANDLE_VALUE) { - goto success; - } else { - err = GetLastError(); - } - } - printf("CreateFile failed for TTF (%ld), cannot use DirectWrite\n", err); - return 1; - } -success: - - hr = WriteFile(tempFile, data, size, NULL, NULL); - if(!hr) { - printf("WriteFile failed for TTF (%ld), cannot use DirectWrite\n", GetLastError()); - return 1; - } - - CloseHandle(tempFile); - - return 0; -} - -static void* dw_MwFontLoad(unsigned char* data, unsigned int size, int px) { - MwFLFont ttf = malloc(sizeof(*ttf)); - HRESULT hr; - WCHAR font_name[MAX_PATH]; - D2D1_FACTORY_OPTIONS d2d1_options; - - d2d1_options.debugLevel = D2D1_DEBUG_LEVEL_ERROR; - -#define INTERFACE_CHECK(x, factory) \ - do { \ - x* rsrc = NULL; \ - if(!SUCCEEDED((hr = x##_QueryInterface(factory, &IID_##x, (void**)&rsrc)))) { \ - printf("Query for interface " #x " failed (%08lX). Cannot use DirectWrite.\n", hr); \ - return NULL; \ - }; \ - } while(0); - - memset(ttf, 0, sizeof(*ttf)); - ttf->data = malloc(size); - memcpy(ttf->data, data, size); - - ttf->px = px; - - hr = dw_table.D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &IID_ID2D1Factory, &d2d1_options, (void**)&ttf->d2dFactory); - if(!SUCCEEDED(hr)) { - printf("D2D1CreateFactory failed for TTF (%08lX), cannot use DirectWrite\n", hr); - goto fail; - } - - INTERFACE_CHECK(ID2D1Factory, ttf->d2dFactory); - - hr = dw_table.DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, &IID_IDWriteFactory, (struct IUnknown**)&ttf->write_factory); - if(!SUCCEEDED(hr)) { - printf("DWriteCreateFactory failed for TTF (%08lx), cannot use DirectWrite\n", hr); - goto fail; - } - INTERFACE_CHECK(IDWriteFactory6, ttf->write_factory); - - if(unpack_ttf_data(font_name, data, size) != 0) { - goto fail; - }; - - hr = IDWriteFactory6_CreateFontFileReference(ttf->write_factory, font_name, NULL, &ttf->file); - if(!SUCCEEDED(hr)) { - printf("CreateFontFileReference failed for TTF (%08lx), cannot use DirectWrite\n", hr); - goto fail; - } - INTERFACE_CHECK(IDWriteFontFile, ttf->file); - - hr = IDWriteFactory_CreateFontFace(ttf->write_factory, DWRITE_FONT_FACE_TYPE_TRUETYPE, 1, &ttf->file, 0, DWRITE_FONT_SIMULATIONS_NONE, &ttf->font_face); - if(!SUCCEEDED(hr)) { - printf("IDWriteFactory_CreateFontFace failed for TTF (%08lx), cannot use DirectWrite\n", hr); - goto fail; - } - INTERFACE_CHECK(IDWriteFontFace, ttf->font_face); - - hr = IDWriteFactory6_CreateFontSetBuilder(ttf->write_factory, &ttf->font_builder); - if(!SUCCEEDED(hr)) { - printf("IDWriteFactory6_CreateFontSetBuilder failed for TTF (%08lx), cannot use DirectWrite\n", hr); - goto fail; - } - INTERFACE_CHECK(IDWriteFontSetBuilder2, ttf->font_builder); - - hr = IDWriteFontSetBuilder2_AddFontFile(ttf->font_builder, font_name); - if(!SUCCEEDED(hr)) { - printf("IDWriteFontSetBuilder2_AddFontFile failed for TTF (%08lx), cannot use DirectWrite\n", hr); - goto fail; - } - - hr = IDWriteFontSetBuilder_CreateFontSet(ttf->font_builder, &ttf->font_set); - if(!SUCCEEDED(hr)) { - printf("IDWriteFontSetBuilder_CreateFontSet failed for TTF (%08lx), cannot use DirectWrite\n", hr); - goto fail; - } - INTERFACE_CHECK(IDWriteFontSet, ttf->font_set); - - hr = IDWriteFactory3_CreateFontCollectionFromFontSet(ttf->write_factory, ttf->font_set, &ttf->font_collection); - if(!SUCCEEDED(hr)) { - printf("IDWriteFactory3_CreateFontCollectionFromFontSet failed for TTF (%08lx), cannot use DirectWrite\n", hr); - goto fail; - } - INTERFACE_CHECK(IDWriteFontCollection1, ttf->font_collection); - - hr = IDWriteFactory6_GetGdiInterop(ttf->write_factory, &ttf->gdiInterop); - if(!SUCCEEDED(hr)) { - printf("GetGdiInterop failed for TTF (%08lx), cannot use DirectWrite\n", hr); - goto fail; - } - INTERFACE_CHECK(IDWriteGdiInterop, ttf->gdiInterop); - - hr = IDWriteFactory_CreateTextFormat(ttf->write_factory, L"milsko font", (IDWriteFontCollection*)ttf->font_collection, DWRITE_FONT_WEIGHT_NORMAL, DWRITE_FONT_STYLE_NORMAL, DWRITE_FONT_STRETCH_NORMAL, px, L"en-US", &ttf->text_format); - if(!SUCCEEDED(hr)) { - printf("IDWriteFactory_CreateTextFormat failed for TTF (%08lx), cannot use DirectWrite\n", hr); - goto fail; - } - - ttf->valid = MwTRUE; - return ttf; - -fail: - ttf->valid = MwFALSE; - return NULL; -} - -static int dw_MwTextOffset(MwFLFont ttf, const char* text); - -static int dw_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, MwLLColor color) { - IDWriteTextLayout* text_layout; - IDWriteBitmapRenderTarget* target = NULL; - HRESULT hr; - RECT rc = {0}; - HDC memoryHDC = NULL; - DWRITE_FONT_METRICS metrics = {0}; - LONG width = 0, height = 0, offset = 0; - WCHAR* wtext = NULL; - CustomTextRenderer* texRenderer; - size_t wtext_len = MultiByteToWideChar(CP_UTF8, 0, text, -1, NULL, 0); - - wtext = malloc(wtext_len * 2); /* we get a weird buffer overflow when we try to free this later? allocate well above wtext_len then to prevent that. */ - memset(wtext, 0, wtext_len * 2); - MultiByteToWideChar(CP_UTF8, 0, text, -1, wtext, wtext_len); - - IDWriteFontFace_GetMetrics(ttf->font_face, &metrics); - - GetClientRect(handle->lowlevel->gdi.hWnd, &rc); - MapWindowPoints(handle->lowlevel->gdi.hWnd, GetParent(handle->lowlevel->gdi.hWnd), (LPPOINT)&rc, 2); - - width = MwTextWidth(handle, ttf, text); - height = MwTextHeight(handle, ttf, text); - offset = dw_MwTextOffset(ttf, text); - - hr = IDWriteFactory_CreateTextLayout(ttf->write_factory, wtext, wtext_len, ttf->text_format, width, height, &text_layout); - - IDWriteGdiInterop_CreateBitmapRenderTarget(ttf->gdiInterop, handle->lowlevel->gdi.hDC, width, height, &target); - - texRenderer = CustomTextRenderer_Create(ttf->write_factory, target, color); - - memoryHDC = IDWriteBitmapRenderTarget_GetMemoryDC(target); - - SetBkMode(handle->lowlevel->gdi.hDC, TRANSPARENT); - BitBlt(memoryHDC, 0, 0, width, height, handle->lowlevel->gdi.hDC, point->x, point->y - (height / 2), SRCCOPY); - - if(SUCCEEDED(hr)) { - IDWriteTextLayout_Draw(text_layout, target, (IDWriteTextRenderer*)texRenderer, offset, 0); - } - - BitBlt(handle->lowlevel->gdi.hDC, point->x, point->y - (height / 2), width, height, memoryHDC, 0, 0, SRCCOPY | NOMIRRORBITMAP); - - IDWriteBitmapRenderTarget_Release(target); - - free(wtext); - - return 0; -} - -static int dw_MwTextOffset(MwFLFont ttf, const char* text) { - IDWriteTextLayout* text_layout; - DWRITE_FONT_METRICS metrics = {0}; - WCHAR* wtext = NULL; - size_t wtext_len = MultiByteToWideChar(CP_UTF8, 0, text, -1, NULL, 0); - UINT32* codepoints = malloc(wtext_len * sizeof(UINT32)); - UINT16* glyphIndices = malloc(wtext_len * sizeof(UINT16)); - int i; - DWRITE_GLYPH_METRICS* gmetrics; - int tw = 0; - - wtext = malloc(wtext_len * 2); /* we get a weird buffer overflow when we try to free this later? allocate well above wtext_len then to prevent that. */ - memset(wtext, 0, wtext_len * 2); - MultiByteToWideChar(CP_UTF8, 0, text, -1, wtext, wtext_len); - - for(i = 0; i < wtext_len; i++) codepoints[i] = wtext[i]; - - IDWriteFontFace_GetMetrics(ttf->font_face, &metrics); - - IDWriteFactory_CreateTextLayout(ttf->write_factory, wtext, wtext_len, ttf->text_format, 0, 0, &text_layout); - - IDWriteFontFace_GetGlyphIndices(ttf->font_face, codepoints, wtext_len, glyphIndices); - - gmetrics = malloc(wtext_len * sizeof(DWRITE_GLYPH_METRICS)); - - IDWriteFontFace_GetDesignGlyphMetrics(ttf->font_face, glyphIndices, wtext_len, gmetrics, FALSE); - - for(i = 0; i < strlen(text); i++) { - int add = (gmetrics[i].leftSideBearing) * ((float)ttf->px / (float)metrics.designUnitsPerEm); - tw += add; - } - - free(wtext); - - return tw; -} - -static int dw_MwTextWidth(MwFLFont ttf, const char* text) { - IDWriteTextLayout* text_layout; - DWRITE_FONT_METRICS metrics = {0}; - WCHAR* wtext = NULL; - size_t wtext_len = MultiByteToWideChar(CP_UTF8, 0, text, -1, NULL, 0); - UINT32* codepoints = malloc(wtext_len * sizeof(UINT32)); - UINT16* glyphIndices = malloc(wtext_len * sizeof(UINT16)); - int i; - DWRITE_GLYPH_METRICS* gmetrics; - int tw = 0; - - wtext = malloc(wtext_len * 2); /* we get a weird buffer overflow when we try to free this later? allocate well above wtext_len then to prevent that. */ - memset(wtext, 0, wtext_len * 2); - MultiByteToWideChar(CP_UTF8, 0, text, -1, wtext, wtext_len); - - for(i = 0; i < wtext_len; i++) codepoints[i] = wtext[i]; - - IDWriteFontFace_GetMetrics(ttf->font_face, &metrics); - - IDWriteFactory_CreateTextLayout(ttf->write_factory, wtext, wtext_len, ttf->text_format, 0, 0, &text_layout); - - IDWriteFontFace_GetGlyphIndices(ttf->font_face, codepoints, wtext_len, glyphIndices); - - gmetrics = malloc(wtext_len * sizeof(DWRITE_GLYPH_METRICS)); - - IDWriteFontFace_GetDesignGlyphMetrics(ttf->font_face, glyphIndices, wtext_len, gmetrics, FALSE); - - for(i = 0; i < strlen(text); i++) { - int add = (gmetrics[i].advanceWidth + gmetrics[i].leftSideBearing) * ((float)ttf->px / (float)metrics.designUnitsPerEm); - tw += add; - } - - free(wtext); - - return tw; -} - -static int dw_MwTextHeight(MwFLFont ttf, int count) { - (void)count; - return (IDWriteTextFormat2_GetFontSize(ttf->text_format) / 72.0f) * GetDeviceCaps(GetDC(NULL), LOGPIXELSY); -} - -static void dw_MwFontFree(void* handle) { - MwFLFont ttf = handle; - - free(ttf->data); - free(ttf); -} - -/* ---- IUnknown ---- */ - -static HRESULT STDMETHODCALLTYPE CTR_QueryInterface( - IDWriteTextRenderer* iface, REFIID riid, void** ppvObject) { - if(!ppvObject) - return E_POINTER; - - if(IsEqualGUID(riid, &IID_IUnknown) || - IsEqualGUID(riid, &IID_IDWritePixelSnapping) || - IsEqualGUID(riid, &IID_IDWriteTextRenderer)) { - *ppvObject = iface; - iface->lpVtbl->AddRef(iface); - return S_OK; - } - - *ppvObject = NULL; - return E_NOINTERFACE; -} - -static ULONG STDMETHODCALLTYPE CTR_AddRef(IDWriteTextRenderer* iface) { - CustomTextRenderer* This = (CustomTextRenderer*)iface; - return InterlockedIncrement(&This->refCount); -} - -static ULONG STDMETHODCALLTYPE CTR_Release(IDWriteTextRenderer* iface) { - CustomTextRenderer* This = (CustomTextRenderer*)iface; - LONG ref = InterlockedDecrement(&This->refCount); - if(ref == 0) - HeapFree(GetProcessHeap(), 0, This); - return (ULONG)ref; -} - -/* ---- IDWritePixelSnapping (base interface, treated as "core") ---- */ - -static HRESULT STDMETHODCALLTYPE CTR_IsPixelSnappingDisabled( - IDWriteTextRenderer* iface, void* clientDrawingContext, BOOL* isDisabled) { - (void)iface; - (void)clientDrawingContext; - if(!isDisabled) - return E_POINTER; - *isDisabled = FALSE; - return S_OK; -} - -static HRESULT STDMETHODCALLTYPE CTR_GetCurrentTransform( - IDWriteTextRenderer* iface, void* clientDrawingContext, DWRITE_MATRIX* transform) { - (void)iface; - (void)clientDrawingContext; - if(!transform) - return E_POINTER; - - transform->m11 = 1.0f; - transform->m12 = 0.0f; - transform->m21 = 0.0f; - transform->m22 = 1.0f; - transform->dx = 0.0f; - transform->dy = 0.0f; - return S_OK; -} - -static HRESULT STDMETHODCALLTYPE CTR_GetPixelsPerDip( - IDWriteTextRenderer* iface, void* clientDrawingContext, FLOAT* pixelsPerDip) { - (void)iface; - (void)clientDrawingContext; - if(!pixelsPerDip) - return E_POINTER; - *pixelsPerDip = 1.0f; - return S_OK; -} - -static HRESULT STDMETHODCALLTYPE CTR_DrawGlyphRun( - IDWriteTextRenderer* iface, - void* clientDrawingContext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - DWRITE_MEASURING_MODE measuringMode, - DWRITE_GLYPH_RUN const* glyphRun, - DWRITE_GLYPH_RUN_DESCRIPTION const* glyphRunDescription, - IUnknown* clientDrawingEffect) { - IDWriteRenderingParams* params; - CustomTextRenderer* This = (CustomTextRenderer*)iface; - - (void)clientDrawingContext; - (void)glyphRunDescription; - (void)clientDrawingEffect; - - IDWriteFactory6_CreateRenderingParams(This->write_factory, ¶ms); - - return IDWriteBitmapRenderTarget_DrawGlyphRun(This->target, baselineOriginX, baselineOriginY, measuringMode, glyphRun, params, RGB(This->red, This->green, This->blue), NULL); -} - -static HRESULT STDMETHODCALLTYPE CTR_DrawUnderline( - IDWriteTextRenderer* iface, - void* clientDrawingContext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - DWRITE_UNDERLINE const* underline, - IUnknown* clientDrawingEffect) { - (void)iface; - (void)clientDrawingContext; - (void)baselineOriginX; - (void)baselineOriginY; - (void)underline; - (void)clientDrawingEffect; - return E_NOTIMPL; -} - -static HRESULT STDMETHODCALLTYPE CTR_DrawStrikethrough( - IDWriteTextRenderer* iface, - void* clientDrawingContext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - DWRITE_STRIKETHROUGH const* strikethrough, - IUnknown* clientDrawingEffect) { - (void)iface; - (void)clientDrawingContext; - (void)baselineOriginX; - (void)baselineOriginY; - (void)strikethrough; - (void)clientDrawingEffect; - return E_NOTIMPL; -} - -static HRESULT STDMETHODCALLTYPE CTR_DrawInlineObject( - IDWriteTextRenderer* iface, - void* clientDrawingContext, - FLOAT originX, - FLOAT originY, - IDWriteInlineObject* inlineObject, - BOOL isSideways, - BOOL isRightToLeft, - IUnknown* clientDrawingEffect) { - (void)iface; - (void)clientDrawingContext; - (void)originX; - (void)originY; - (void)inlineObject; - (void)isSideways; - (void)isRightToLeft; - (void)clientDrawingEffect; - return E_NOTIMPL; -} - -/* ---- Vtable instance ---- */ - -static IDWriteTextRendererVtbl CTR_Vtbl = { - CTR_QueryInterface, - CTR_AddRef, - CTR_Release, - CTR_IsPixelSnappingDisabled, - CTR_GetCurrentTransform, - CTR_GetPixelsPerDip, - CTR_DrawGlyphRun, - CTR_DrawUnderline, - CTR_DrawStrikethrough, - CTR_DrawInlineObject}; - -/* ---- Constructor ---- */ - -static CustomTextRenderer* CustomTextRenderer_Create(IDWriteFactory6* write_factory, IDWriteBitmapRenderTarget* target, MwLLColor color) { - CustomTextRenderer* obj = - (CustomTextRenderer*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - sizeof(CustomTextRenderer)); - if(!obj) - return NULL; - - obj->lpVtbl = &CTR_Vtbl; - obj->refCount = 1; - obj->write_factory = write_factory; - obj->target = target; - obj->red = color->common.red; - obj->green = color->common.green; - obj->blue = color->common.blue; - - return obj; -} - -int MwFL_DWSetup(void) { - HRESULT hr; - HANDLE ole32lib; - /* CoInitialize, to my knowledge, is avaliable on every Windows version we actually support. But as of writing, CI fails because a specific mingw won't link to it by default. I'm not gonna waste my time chancing that it will properly link to ole32 either. */ - HRESULT (*CoInitialize)(LPVOID pvReserved); - - ole32lib = LoadLibrary("Ole32.dll"); - if(!ole32lib) { - printf("ole32lib not found, cannot use DirectWrite\n"); - return 1; - } - CoInitialize = (HRESULT(*)(LPVOID pvReserved))GetProcAddress(ole32lib, "CoInitialize"); - if(!CoInitialize) { - printf("CoInitialize not found, cannot use DirectWrite\n"); - return 1; - } - - CoInitialize(NULL); - - /* Try and load DirectWrite. If it fails, return 1, signifying we default to bitmap drawing. */ - dw_table.d2d1_lib = LoadLibrary("D2d1.dll"); - if(!dw_table.d2d1_lib) { - printf("D2d1.dll not found, cannot use DirectWrite\n"); - return 1; - } - dw_table.dwrite_lib = LoadLibrary("dwrite.dll"); - if(!dw_table.dwrite_lib) { - printf("dwrite.dll not found, cannot use DirectWrite\n"); - return 1; - } - -#define D2D1_LOAD(x) \ - dw_table.x = (typeof(dw_table.x))GetProcAddress(dw_table.d2d1_lib, #x); \ - if(!dw_table.x) { \ - printf("Can't use DirectWrite, " #x " not found."); \ - return 1; \ - } - -#define DWRITE_LOAD(x) \ - dw_table.x = (typeof(dw_table.x))GetProcAddress(dw_table.dwrite_lib, #x); \ - if(!dw_table.x) { \ - printf("Can't use DirectWrite, " #x " not found."); \ - return 1; \ - } - - D2D1_LOAD(D2D1CreateFactory); - DWRITE_LOAD(DWriteCreateFactory); - - MwFLDrawText = dw_MwDrawText; - MwFLTextWidth = dw_MwTextWidth; - MwFLTextHeight = dw_MwTextHeight; - MwFLFontLoad = dw_MwFontLoad; - MwFLFontFree = dw_MwFontFree; - return 0; -} -#endif diff --git a/src/text/dwrite.h b/src/text/dwrite.h deleted file mode 100644 index 81f87aa5c..000000000 --- a/src/text/dwrite.h +++ /dev/null @@ -1,5398 +0,0 @@ -/*** Autogenerated by WIDL 11.0-rc1 from include/dwrite.idl - Do not edit ***/ - -#define COBJMACROS - -#ifdef _WIN32 -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 475 -#endif -#include -#include -#endif - -#ifndef COM_NO_WINDOWS_H -#include -#include -#endif - -#ifndef __dwrite_h__ -#define __dwrite_h__ - -/* Forward declarations */ - -#ifndef __IDWriteFontFileStream_FWD_DEFINED__ -#define __IDWriteFontFileStream_FWD_DEFINED__ -typedef interface IDWriteFontFileStream IDWriteFontFileStream; -#ifdef __cplusplus -interface IDWriteFontFileStream; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFileLoader_FWD_DEFINED__ -#define __IDWriteFontFileLoader_FWD_DEFINED__ -typedef interface IDWriteFontFileLoader IDWriteFontFileLoader; -#ifdef __cplusplus -interface IDWriteFontFileLoader; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteLocalFontFileLoader_FWD_DEFINED__ -#define __IDWriteLocalFontFileLoader_FWD_DEFINED__ -typedef interface IDWriteLocalFontFileLoader IDWriteLocalFontFileLoader; -#ifdef __cplusplus -interface IDWriteLocalFontFileLoader; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFile_FWD_DEFINED__ -#define __IDWriteFontFile_FWD_DEFINED__ -typedef interface IDWriteFontFile IDWriteFontFile; -#ifdef __cplusplus -interface IDWriteFontFile; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFileEnumerator_FWD_DEFINED__ -#define __IDWriteFontFileEnumerator_FWD_DEFINED__ -typedef interface IDWriteFontFileEnumerator IDWriteFontFileEnumerator; -#ifdef __cplusplus -interface IDWriteFontFileEnumerator; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontCollectionLoader_FWD_DEFINED__ -#define __IDWriteFontCollectionLoader_FWD_DEFINED__ -typedef interface IDWriteFontCollectionLoader IDWriteFontCollectionLoader; -#ifdef __cplusplus -interface IDWriteFontCollectionLoader; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteLocalizedStrings_FWD_DEFINED__ -#define __IDWriteLocalizedStrings_FWD_DEFINED__ -typedef interface IDWriteLocalizedStrings IDWriteLocalizedStrings; -#ifdef __cplusplus -interface IDWriteLocalizedStrings; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteRenderingParams_FWD_DEFINED__ -#define __IDWriteRenderingParams_FWD_DEFINED__ -typedef interface IDWriteRenderingParams IDWriteRenderingParams; -#ifdef __cplusplus -interface IDWriteRenderingParams; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFace_FWD_DEFINED__ -#define __IDWriteFontFace_FWD_DEFINED__ -typedef interface IDWriteFontFace IDWriteFontFace; -#ifdef __cplusplus -interface IDWriteFontFace; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFont_FWD_DEFINED__ -#define __IDWriteFont_FWD_DEFINED__ -typedef interface IDWriteFont IDWriteFont; -#ifdef __cplusplus -interface IDWriteFont; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontList_FWD_DEFINED__ -#define __IDWriteFontList_FWD_DEFINED__ -typedef interface IDWriteFontList IDWriteFontList; -#ifdef __cplusplus -interface IDWriteFontList; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFamily_FWD_DEFINED__ -#define __IDWriteFontFamily_FWD_DEFINED__ -typedef interface IDWriteFontFamily IDWriteFontFamily; -#ifdef __cplusplus -interface IDWriteFontFamily; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontCollection_FWD_DEFINED__ -#define __IDWriteFontCollection_FWD_DEFINED__ -typedef interface IDWriteFontCollection IDWriteFontCollection; -#ifdef __cplusplus -interface IDWriteFontCollection; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWritePixelSnapping_FWD_DEFINED__ -#define __IDWritePixelSnapping_FWD_DEFINED__ -typedef interface IDWritePixelSnapping IDWritePixelSnapping; -#ifdef __cplusplus -interface IDWritePixelSnapping; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteTextRenderer_FWD_DEFINED__ -#define __IDWriteTextRenderer_FWD_DEFINED__ -typedef interface IDWriteTextRenderer IDWriteTextRenderer; -#ifdef __cplusplus -interface IDWriteTextRenderer; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteInlineObject_FWD_DEFINED__ -#define __IDWriteInlineObject_FWD_DEFINED__ -typedef interface IDWriteInlineObject IDWriteInlineObject; -#ifdef __cplusplus -interface IDWriteInlineObject; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteTextFormat_FWD_DEFINED__ -#define __IDWriteTextFormat_FWD_DEFINED__ -typedef interface IDWriteTextFormat IDWriteTextFormat; -#ifdef __cplusplus -interface IDWriteTextFormat; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteTypography_FWD_DEFINED__ -#define __IDWriteTypography_FWD_DEFINED__ -typedef interface IDWriteTypography IDWriteTypography; -#ifdef __cplusplus -interface IDWriteTypography; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteBitmapRenderTarget_FWD_DEFINED__ -#define __IDWriteBitmapRenderTarget_FWD_DEFINED__ -typedef interface IDWriteBitmapRenderTarget IDWriteBitmapRenderTarget; -#ifdef __cplusplus -interface IDWriteBitmapRenderTarget; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteGdiInterop_FWD_DEFINED__ -#define __IDWriteGdiInterop_FWD_DEFINED__ -typedef interface IDWriteGdiInterop IDWriteGdiInterop; -#ifdef __cplusplus -interface IDWriteGdiInterop; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteTextLayout_FWD_DEFINED__ -#define __IDWriteTextLayout_FWD_DEFINED__ -typedef interface IDWriteTextLayout IDWriteTextLayout; -#ifdef __cplusplus -interface IDWriteTextLayout; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteNumberSubstitution_FWD_DEFINED__ -#define __IDWriteNumberSubstitution_FWD_DEFINED__ -typedef interface IDWriteNumberSubstitution IDWriteNumberSubstitution; -#ifdef __cplusplus -interface IDWriteNumberSubstitution; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteTextAnalysisSource_FWD_DEFINED__ -#define __IDWriteTextAnalysisSource_FWD_DEFINED__ -typedef interface IDWriteTextAnalysisSource IDWriteTextAnalysisSource; -#ifdef __cplusplus -interface IDWriteTextAnalysisSource; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteTextAnalysisSink_FWD_DEFINED__ -#define __IDWriteTextAnalysisSink_FWD_DEFINED__ -typedef interface IDWriteTextAnalysisSink IDWriteTextAnalysisSink; -#ifdef __cplusplus -interface IDWriteTextAnalysisSink; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteTextAnalyzer_FWD_DEFINED__ -#define __IDWriteTextAnalyzer_FWD_DEFINED__ -typedef interface IDWriteTextAnalyzer IDWriteTextAnalyzer; -#ifdef __cplusplus -interface IDWriteTextAnalyzer; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteGlyphRunAnalysis_FWD_DEFINED__ -#define __IDWriteGlyphRunAnalysis_FWD_DEFINED__ -typedef interface IDWriteGlyphRunAnalysis IDWriteGlyphRunAnalysis; -#ifdef __cplusplus -interface IDWriteGlyphRunAnalysis; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFactory_FWD_DEFINED__ -#define __IDWriteFactory_FWD_DEFINED__ -typedef interface IDWriteFactory IDWriteFactory; -#ifdef __cplusplus -interface IDWriteFactory; -#endif /* __cplusplus */ -#endif - -/* Headers for imported files */ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef __IDWriteFactory_FWD_DEFINED__ -#define __IDWriteFactory_FWD_DEFINED__ -typedef interface IDWriteFactory IDWriteFactory; -#ifdef __cplusplus -interface IDWriteFactory; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontCollection_FWD_DEFINED__ -#define __IDWriteFontCollection_FWD_DEFINED__ -typedef interface IDWriteFontCollection IDWriteFontCollection; -#ifdef __cplusplus -interface IDWriteFontCollection; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFamily_FWD_DEFINED__ -#define __IDWriteFontFamily_FWD_DEFINED__ -typedef interface IDWriteFontFamily IDWriteFontFamily; -#ifdef __cplusplus -interface IDWriteFontFamily; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFace_FWD_DEFINED__ -#define __IDWriteFontFace_FWD_DEFINED__ -typedef interface IDWriteFontFace IDWriteFontFace; -#ifdef __cplusplus -interface IDWriteFontFace; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteInlineObject_FWD_DEFINED__ -#define __IDWriteInlineObject_FWD_DEFINED__ -typedef interface IDWriteInlineObject IDWriteInlineObject; -#ifdef __cplusplus -interface IDWriteInlineObject; -#endif /* __cplusplus */ -#endif - -#ifndef __ID2D1SimplifiedGeometrySink_FWD_DEFINED__ -#define __ID2D1SimplifiedGeometrySink_FWD_DEFINED__ -typedef interface ID2D1SimplifiedGeometrySink ID2D1SimplifiedGeometrySink; -#ifdef __cplusplus -interface ID2D1SimplifiedGeometrySink; -#endif /* __cplusplus */ -#endif - -typedef ID2D1SimplifiedGeometrySink IDWriteGeometrySink; -#ifndef _WINDEF_ -typedef void* HMONITOR; -#endif /* _WINDEF_ */ -#ifdef WINE_NO_UNICODE_MACROS -#undef GetGlyphIndices -#endif -typedef enum DWRITE_FACTORY_TYPE { - DWRITE_FACTORY_TYPE_SHARED = 0, - DWRITE_FACTORY_TYPE_ISOLATED = 1 -} DWRITE_FACTORY_TYPE; -typedef enum DWRITE_FONT_FILE_TYPE { - DWRITE_FONT_FILE_TYPE_UNKNOWN = 0, - DWRITE_FONT_FILE_TYPE_CFF = 1, - DWRITE_FONT_FILE_TYPE_TRUETYPE = 2, - DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION = 3, - DWRITE_FONT_FILE_TYPE_TYPE1_PFM = 4, - DWRITE_FONT_FILE_TYPE_TYPE1_PFB = 5, - DWRITE_FONT_FILE_TYPE_VECTOR = 6, - DWRITE_FONT_FILE_TYPE_BITMAP = 7, - DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION = DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION -} DWRITE_FONT_FILE_TYPE; -typedef enum DWRITE_FONT_FACE_TYPE { - DWRITE_FONT_FACE_TYPE_CFF = 0, - DWRITE_FONT_FACE_TYPE_TRUETYPE = 1, - DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION = 2, - DWRITE_FONT_FACE_TYPE_TYPE1 = 3, - DWRITE_FONT_FACE_TYPE_VECTOR = 4, - DWRITE_FONT_FACE_TYPE_BITMAP = 5, - DWRITE_FONT_FACE_TYPE_UNKNOWN = 6, - DWRITE_FONT_FACE_TYPE_RAW_CFF = 7, - DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION = DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION -} DWRITE_FONT_FACE_TYPE; -typedef enum DWRITE_FONT_WEIGHT { - DWRITE_FONT_WEIGHT_THIN = 100, - DWRITE_FONT_WEIGHT_EXTRA_LIGHT = 200, - DWRITE_FONT_WEIGHT_ULTRA_LIGHT = 200, - DWRITE_FONT_WEIGHT_LIGHT = 300, - DWRITE_FONT_WEIGHT_SEMI_LIGHT = 350, - DWRITE_FONT_WEIGHT_NORMAL = 400, - DWRITE_FONT_WEIGHT_REGULAR = 400, - DWRITE_FONT_WEIGHT_MEDIUM = 500, - DWRITE_FONT_WEIGHT_DEMI_BOLD = 600, - DWRITE_FONT_WEIGHT_SEMI_BOLD = 600, - DWRITE_FONT_WEIGHT_BOLD = 700, - DWRITE_FONT_WEIGHT_EXTRA_BOLD = 800, - DWRITE_FONT_WEIGHT_ULTRA_BOLD = 800, - DWRITE_FONT_WEIGHT_BLACK = 900, - DWRITE_FONT_WEIGHT_HEAVY = 900, - DWRITE_FONT_WEIGHT_EXTRA_BLACK = 950, - DWRITE_FONT_WEIGHT_ULTRA_BLACK = 950 -} DWRITE_FONT_WEIGHT; -typedef enum DWRITE_FONT_STRETCH { - DWRITE_FONT_STRETCH_UNDEFINED = 0, - DWRITE_FONT_STRETCH_ULTRA_CONDENSED = 1, - DWRITE_FONT_STRETCH_EXTRA_CONDENSED = 2, - DWRITE_FONT_STRETCH_CONDENSED = 3, - DWRITE_FONT_STRETCH_SEMI_CONDENSED = 4, - DWRITE_FONT_STRETCH_NORMAL = 5, - DWRITE_FONT_STRETCH_MEDIUM = 5, - DWRITE_FONT_STRETCH_SEMI_EXPANDED = 6, - DWRITE_FONT_STRETCH_EXPANDED = 7, - DWRITE_FONT_STRETCH_EXTRA_EXPANDED = 8, - DWRITE_FONT_STRETCH_ULTRA_EXPANDED = 9 -} DWRITE_FONT_STRETCH; -typedef enum DWRITE_FONT_STYLE { - DWRITE_FONT_STYLE_NORMAL = 0, - DWRITE_FONT_STYLE_OBLIQUE = 1, - DWRITE_FONT_STYLE_ITALIC = 2 -} DWRITE_FONT_STYLE; -typedef enum DWRITE_INFORMATIONAL_STRING_ID { - DWRITE_INFORMATIONAL_STRING_NONE = 0, - DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE = 1, - DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS = 2, - DWRITE_INFORMATIONAL_STRING_TRADEMARK = 3, - DWRITE_INFORMATIONAL_STRING_MANUFACTURER = 4, - DWRITE_INFORMATIONAL_STRING_DESIGNER = 5, - DWRITE_INFORMATIONAL_STRING_DESIGNER_URL = 6, - DWRITE_INFORMATIONAL_STRING_DESCRIPTION = 7, - DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL = 8, - DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION = 9, - DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL = 10, - DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES = 11, - DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES = 12, - DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_FAMILY_NAMES = 13, - DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_SUBFAMILY_NAMES = 14, - DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT = 15, - DWRITE_INFORMATIONAL_STRING_FULL_NAME = 16, - DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME = 17, - DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_CID_NAME = 18, - DWRITE_INFORMATIONAL_STRING_WEIGHT_STRETCH_STYLE_FAMILY_NAME = 19, - DWRITE_INFORMATIONAL_STRING_DESIGN_SCRIPT_LANGUAGE_TAG = 20, - DWRITE_INFORMATIONAL_STRING_SUPPORTED_SCRIPT_LANGUAGE_TAG = 21, - DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES = DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_FAMILY_NAMES, - DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES = DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_SUBFAMILY_NAMES, - DWRITE_INFORMATIONAL_STRING_WWS_FAMILY_NAME = DWRITE_INFORMATIONAL_STRING_WEIGHT_STRETCH_STYLE_FAMILY_NAME -} DWRITE_INFORMATIONAL_STRING_ID; -typedef enum DWRITE_FONT_SIMULATIONS { - DWRITE_FONT_SIMULATIONS_NONE = 0, - DWRITE_FONT_SIMULATIONS_BOLD = 1, - DWRITE_FONT_SIMULATIONS_OBLIQUE = 2 -} DWRITE_FONT_SIMULATIONS; -DEFINE_ENUM_FLAG_OPERATORS(DWRITE_FONT_SIMULATIONS); -typedef enum DWRITE_PIXEL_GEOMETRY { - DWRITE_PIXEL_GEOMETRY_FLAT = 0, - DWRITE_PIXEL_GEOMETRY_RGB = 1, - DWRITE_PIXEL_GEOMETRY_BGR = 2 -} DWRITE_PIXEL_GEOMETRY; -typedef enum DWRITE_RENDERING_MODE { - DWRITE_RENDERING_MODE_DEFAULT = 0, - DWRITE_RENDERING_MODE_ALIASED = 1, - DWRITE_RENDERING_MODE_GDI_CLASSIC = 2, - DWRITE_RENDERING_MODE_GDI_NATURAL = 3, - DWRITE_RENDERING_MODE_NATURAL = 4, - DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC = 5, - DWRITE_RENDERING_MODE_OUTLINE = 6, - DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC = DWRITE_RENDERING_MODE_GDI_CLASSIC, - DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL = DWRITE_RENDERING_MODE_GDI_NATURAL, - DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL = DWRITE_RENDERING_MODE_NATURAL, - DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC = DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC -} DWRITE_RENDERING_MODE; -typedef enum DWRITE_TEXT_ALIGNMENT { - DWRITE_TEXT_ALIGNMENT_LEADING = 0, - DWRITE_TEXT_ALIGNMENT_TRAILING = 1, - DWRITE_TEXT_ALIGNMENT_CENTER = 2, - DWRITE_TEXT_ALIGNMENT_JUSTIFIED = 3 -} DWRITE_TEXT_ALIGNMENT; -typedef enum DWRITE_PARAGRAPH_ALIGNMENT { - DWRITE_PARAGRAPH_ALIGNMENT_NEAR = 0, - DWRITE_PARAGRAPH_ALIGNMENT_FAR = 1, - DWRITE_PARAGRAPH_ALIGNMENT_CENTER = 2 -} DWRITE_PARAGRAPH_ALIGNMENT; -typedef enum DWRITE_WORD_WRAPPING { - DWRITE_WORD_WRAPPING_WRAP = 0, - DWRITE_WORD_WRAPPING_NO_WRAP = 1, - DWRITE_WORD_WRAPPING_EMERGENCY_BREAK = 2, - DWRITE_WORD_WRAPPING_WHOLE_WORD = 3, - DWRITE_WORD_WRAPPING_CHARACTER = 4 -} DWRITE_WORD_WRAPPING; -typedef enum DWRITE_READING_DIRECTION { - DWRITE_READING_DIRECTION_LEFT_TO_RIGHT = 0, - DWRITE_READING_DIRECTION_RIGHT_TO_LEFT = 1, - DWRITE_READING_DIRECTION_TOP_TO_BOTTOM = 2, - DWRITE_READING_DIRECTION_BOTTOM_TO_TOP = 3 -} DWRITE_READING_DIRECTION; -typedef enum DWRITE_FLOW_DIRECTION { - DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM = 0, - DWRITE_FLOW_DIRECTION_BOTTOM_TO_TOP = 1, - DWRITE_FLOW_DIRECTION_LEFT_TO_RIGHT = 2, - DWRITE_FLOW_DIRECTION_RIGHT_TO_LEFT = 3 -} DWRITE_FLOW_DIRECTION; -typedef enum DWRITE_TRIMMING_GRANULARITY { - DWRITE_TRIMMING_GRANULARITY_NONE = 0, - DWRITE_TRIMMING_GRANULARITY_CHARACTER = 1, - DWRITE_TRIMMING_GRANULARITY_WORD = 2 -} DWRITE_TRIMMING_GRANULARITY; -typedef enum DWRITE_BREAK_CONDITION { - DWRITE_BREAK_CONDITION_NEUTRAL = 0, - DWRITE_BREAK_CONDITION_CAN_BREAK = 1, - DWRITE_BREAK_CONDITION_MAY_NOT_BREAK = 2, - DWRITE_BREAK_CONDITION_MUST_BREAK = 3 -} DWRITE_BREAK_CONDITION; -typedef enum DWRITE_LINE_SPACING_METHOD { - DWRITE_LINE_SPACING_METHOD_DEFAULT = 0, - DWRITE_LINE_SPACING_METHOD_UNIFORM = 1, - DWRITE_LINE_SPACING_METHOD_PROPORTIONAL = 2 -} DWRITE_LINE_SPACING_METHOD; -#define DWRITE_MAKE_OPENTYPE_TAG(a, b, c, d) ( \ - ((UINT32)(UINT8)(d) << 24) | \ - ((UINT32)(UINT8)(c) << 16) | \ - ((UINT32)(UINT8)(b) << 8) | \ - (UINT32)(UINT8)(a)) -typedef enum DWRITE_FONT_FEATURE_TAG { - DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS = 0x63726661, - DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS = 0x63703263, - DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS = 0x63733263, - DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES = 0x746c6163, - DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS = 0x65736163, - DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION = 0x706d6363, - DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES = 0x67696c63, - DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING = 0x70737063, - DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH = 0x68777363, - DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING = 0x73727563, - DWRITE_FONT_FEATURE_TAG_DEFAULT = 0x746c6664, - DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES = 0x67696c64, - DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS = 0x74707865, - DWRITE_FONT_FEATURE_TAG_FRACTIONS = 0x63617266, - DWRITE_FONT_FEATURE_TAG_FULL_WIDTH = 0x64697766, - DWRITE_FONT_FEATURE_TAG_HALF_FORMS = 0x666c6168, - DWRITE_FONT_FEATURE_TAG_HALANT_FORMS = 0x6e6c6168, - DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH = 0x746c6168, - DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS = 0x74736968, - DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES = 0x616e6b68, - DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES = 0x67696c68, - DWRITE_FONT_FEATURE_TAG_HALF_WIDTH = 0x64697768, - DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS = 0x6f6a6f68, - DWRITE_FONT_FEATURE_TAG_JIS04_FORMS = 0x3430706a, - DWRITE_FONT_FEATURE_TAG_JIS78_FORMS = 0x3837706a, - DWRITE_FONT_FEATURE_TAG_JIS83_FORMS = 0x3338706a, - DWRITE_FONT_FEATURE_TAG_JIS90_FORMS = 0x3039706a, - DWRITE_FONT_FEATURE_TAG_KERNING = 0x6e72656b, - DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES = 0x6167696c, - DWRITE_FONT_FEATURE_TAG_LINING_FIGURES = 0x6d756e6c, - DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS = 0x6c636f6c, - DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING = 0x6b72616d, - DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK = 0x6b72676d, - DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING = 0x6b6d6b6d, - DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS = 0x746c616e, - DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS = 0x6b636c6e, - DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES = 0x6d756e6f, - DWRITE_FONT_FEATURE_TAG_ORDINALS = 0x6e64726f, - DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH = 0x746c6170, - DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS = 0x70616370, - DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES = 0x6d756e70, - DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS = 0x64697770, - DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS = 0x64697771, - DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES = 0x67696c72, - DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS = 0x79627572, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES = 0x746c6173, - DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS = 0x666e6973, - DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS = 0x70636d73, - DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS = 0x6c706d73, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1 = 0x31307373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2 = 0x32307373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3 = 0x33307373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4 = 0x34307373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5 = 0x35307373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6 = 0x36307373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7 = 0x37307373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8 = 0x38307373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9 = 0x39307373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10 = 0x30317373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11 = 0x31317373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12 = 0x32317373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13 = 0x33317373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14 = 0x34317373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15 = 0x35317373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16 = 0x36317373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17 = 0x37317373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18 = 0x38317373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19 = 0x39317373, - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20 = 0x30327373, - DWRITE_FONT_FEATURE_TAG_SUBSCRIPT = 0x73627573, - DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT = 0x73707573, - DWRITE_FONT_FEATURE_TAG_SWASH = 0x68737773, - DWRITE_FONT_FEATURE_TAG_TITLING = 0x6c746974, - DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS = 0x6d616e74, - DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES = 0x6d756e74, - DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS = 0x64617274, - DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS = 0x64697774, - DWRITE_FONT_FEATURE_TAG_UNICASE = 0x63696e75, - DWRITE_FONT_FEATURE_TAG_VERTICAL_WRITING = 0x74726576, - DWRITE_FONT_FEATURE_TAG_VERTICAL_ALTERNATES_AND_ROTATION = 0x32747276, - DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO = 0x6f72657a -} DWRITE_FONT_FEATURE_TAG; -typedef enum DWRITE_SCRIPT_SHAPES { - DWRITE_SCRIPT_SHAPES_DEFAULT = 0, - DWRITE_SCRIPT_SHAPES_NO_VISUAL = 1 -} DWRITE_SCRIPT_SHAPES; -DEFINE_ENUM_FLAG_OPERATORS(DWRITE_SCRIPT_SHAPES); -typedef enum DWRITE_NUMBER_SUBSTITUTION_METHOD { - DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE = 0, - DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL = 1, - DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE = 2, - DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL = 3, - DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL = 4 -} DWRITE_NUMBER_SUBSTITUTION_METHOD; -#define DWRITE_ALPHA_MAX 255 -typedef enum DWRITE_TEXTURE_TYPE { - DWRITE_TEXTURE_ALIASED_1x1 = 0, - DWRITE_TEXTURE_CLEARTYPE_3x1 = 1 -} DWRITE_TEXTURE_TYPE; -typedef struct DWRITE_FONT_METRICS { - UINT16 designUnitsPerEm; - UINT16 ascent; - UINT16 descent; - INT16 lineGap; - UINT16 capHeight; - UINT16 xHeight; - INT16 underlinePosition; - UINT16 underlineThickness; - INT16 strikethroughPosition; - UINT16 strikethroughThickness; -} DWRITE_FONT_METRICS; -typedef struct DWRITE_GLYPH_METRICS { - INT32 leftSideBearing; - UINT32 advanceWidth; - INT32 rightSideBearing; - INT32 topSideBearing; - UINT32 advanceHeight; - INT32 bottomSideBearing; - INT32 verticalOriginY; -} DWRITE_GLYPH_METRICS; -typedef struct DWRITE_GLYPH_OFFSET { - FLOAT advanceOffset; - FLOAT ascenderOffset; -} DWRITE_GLYPH_OFFSET; -typedef struct DWRITE_MATRIX { - FLOAT m11; - FLOAT m12; - FLOAT m21; - FLOAT m22; - FLOAT dx; - FLOAT dy; -} DWRITE_MATRIX; -typedef struct DWRITE_TRIMMING { - DWRITE_TRIMMING_GRANULARITY granularity; - UINT32 delimiter; - UINT32 delimiterCount; -} DWRITE_TRIMMING; -#ifndef __d2d1_h__ -typedef struct DWRITE_GLYPH_RUN DWRITE_GLYPH_RUN; -#endif /* __d2d1_h__ */ -struct DWRITE_GLYPH_RUN { - IDWriteFontFace* fontFace; - FLOAT fontEmSize; - UINT32 glyphCount; - const UINT16* glyphIndices; - const FLOAT* glyphAdvances; - const DWRITE_GLYPH_OFFSET* glyphOffsets; - WINBOOL isSideways; - UINT32 bidiLevel; -}; -#ifndef __d2d1_1_h__ -typedef struct DWRITE_GLYPH_RUN_DESCRIPTION DWRITE_GLYPH_RUN_DESCRIPTION; -#endif /* __d2d1_1_h__ */ -struct DWRITE_GLYPH_RUN_DESCRIPTION { - const WCHAR* localeName; - const WCHAR* string; - UINT32 stringLength; - const UINT16* clusterMap; - UINT32 textPosition; -}; -typedef struct DWRITE_UNDERLINE { - FLOAT width; - FLOAT thickness; - FLOAT offset; - FLOAT runHeight; - DWRITE_READING_DIRECTION readingDirection; - DWRITE_FLOW_DIRECTION flowDirection; - const WCHAR* localeName; - DWRITE_MEASURING_MODE measuringMode; -} DWRITE_UNDERLINE; -typedef struct DWRITE_STRIKETHROUGH { - FLOAT width; - FLOAT thickness; - FLOAT offset; - DWRITE_READING_DIRECTION readingDirection; - DWRITE_FLOW_DIRECTION flowDirection; - const WCHAR* localeName; - DWRITE_MEASURING_MODE measuringMode; -} DWRITE_STRIKETHROUGH; -typedef struct DWRITE_INLINE_OBJECT_METRICS { - FLOAT width; - FLOAT height; - FLOAT baseline; - WINBOOL supportsSideways; -} DWRITE_INLINE_OBJECT_METRICS; -typedef struct DWRITE_OVERHANG_METRICS { - FLOAT left; - FLOAT top; - FLOAT right; - FLOAT bottom; -} DWRITE_OVERHANG_METRICS; -typedef struct DWRITE_FONT_FEATURE { - DWRITE_FONT_FEATURE_TAG nameTag; - UINT32 parameter; -} DWRITE_FONT_FEATURE; -typedef struct DWRITE_TEXT_RANGE { - UINT32 startPosition; - UINT32 length; -} DWRITE_TEXT_RANGE; -typedef struct DWRITE_LINE_METRICS { - UINT32 length; - UINT32 trailingWhitespaceLength; - UINT32 newlineLength; - FLOAT height; - FLOAT baseline; - WINBOOL isTrimmed; -} DWRITE_LINE_METRICS; -typedef struct DWRITE_TEXT_METRICS { - FLOAT left; - FLOAT top; - FLOAT width; - FLOAT widthIncludingTrailingWhitespace; - FLOAT height; - FLOAT layoutWidth; - FLOAT layoutHeight; - UINT32 maxBidiReorderingDepth; - UINT32 lineCount; -} DWRITE_TEXT_METRICS; -typedef struct DWRITE_CLUSTER_METRICS { - FLOAT width; - UINT16 length; - UINT16 canWrapLineAfter : 1; - UINT16 isWhitespace : 1; - UINT16 isNewline : 1; - UINT16 isSoftHyphen : 1; - UINT16 isRightToLeft : 1; - UINT16 padding : 11; -} DWRITE_CLUSTER_METRICS; -typedef struct DWRITE_HIT_TEST_METRICS { - UINT32 textPosition; - UINT32 length; - FLOAT left; - FLOAT top; - FLOAT width; - FLOAT height; - UINT32 bidiLevel; - WINBOOL isText; - WINBOOL isTrimmed; -} DWRITE_HIT_TEST_METRICS; -typedef struct DWRITE_SCRIPT_ANALYSIS { - UINT16 script; - DWRITE_SCRIPT_SHAPES shapes; -} DWRITE_SCRIPT_ANALYSIS; -typedef struct DWRITE_LINE_BREAKPOINT { - UINT8 breakConditionBefore : 2; - UINT8 breakConditionAfter : 2; - UINT8 isWhitespace : 1; - UINT8 isSoftHyphen : 1; - UINT8 padding : 2; -} DWRITE_LINE_BREAKPOINT; -typedef struct DWRITE_TYPOGRAPHIC_FEATURES { - DWRITE_FONT_FEATURE* features; - UINT32 featureCount; -} DWRITE_TYPOGRAPHIC_FEATURES; -typedef struct DWRITE_SHAPING_TEXT_PROPERTIES { - UINT16 isShapedAlone : 1; - UINT16 reserved1 : 1; - UINT16 canBreakShapingAfter : 1; - UINT16 reserved : 13; -} DWRITE_SHAPING_TEXT_PROPERTIES; -typedef struct DWRITE_SHAPING_GLYPH_PROPERTIES { - UINT16 justification : 4; - UINT16 isClusterStart : 1; - UINT16 isDiacritic : 1; - UINT16 isZeroWidthSpace : 1; - UINT16 reserved : 9; -} DWRITE_SHAPING_GLYPH_PROPERTIES; -/***************************************************************************** - * IDWriteFontFileStream interface - */ -#ifndef __IDWriteFontFileStream_INTERFACE_DEFINED__ -#define __IDWriteFontFileStream_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontFileStream, 0x6d4865fe, 0x0ab8, 0x4d91, 0x8f, 0x62, 0x5d, 0xd6, 0xbe, 0x34, 0xa3, 0xe0); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("6d4865fe-0ab8-4d91-8f62-5dd6be34a3e0") -IDWriteFontFileStream : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE ReadFileFragment( - const void** fragment_start, - UINT64 offset, - UINT64 fragment_size, - void** fragment_context) = 0; - - virtual void STDMETHODCALLTYPE ReleaseFileFragment( - void* fragment_context) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFileSize( - UINT64 * size) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLastWriteTime( - UINT64 * last_writetime) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFileStream, 0x6d4865fe, 0x0ab8, 0x4d91, 0x8f, 0x62, 0x5d, 0xd6, 0xbe, 0x34, 0xa3, 0xe0) -#endif -#else -typedef struct IDWriteFontFileStreamVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontFileStream* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontFileStream* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontFileStream* This); - - /*** IDWriteFontFileStream methods ***/ - HRESULT(STDMETHODCALLTYPE* ReadFileFragment)( - IDWriteFontFileStream* This, - const void** fragment_start, - UINT64 offset, - UINT64 fragment_size, - void** fragment_context); - - void(STDMETHODCALLTYPE* ReleaseFileFragment)( - IDWriteFontFileStream* This, - void* fragment_context); - - HRESULT(STDMETHODCALLTYPE* GetFileSize)( - IDWriteFontFileStream* This, - UINT64* size); - - HRESULT(STDMETHODCALLTYPE* GetLastWriteTime)( - IDWriteFontFileStream* This, - UINT64* last_writetime); - - END_INTERFACE -} IDWriteFontFileStreamVtbl; - -interface IDWriteFontFileStream { - CONST_VTBL IDWriteFontFileStreamVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontFileStream_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontFileStream_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontFileStream_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontFileStream methods ***/ -#define IDWriteFontFileStream_ReadFileFragment(This, fragment_start, offset, fragment_size, fragment_context) (This)->lpVtbl->ReadFileFragment(This, fragment_start, offset, fragment_size, fragment_context) -#define IDWriteFontFileStream_ReleaseFileFragment(This, fragment_context) (This)->lpVtbl->ReleaseFileFragment(This, fragment_context) -#define IDWriteFontFileStream_GetFileSize(This, size) (This)->lpVtbl->GetFileSize(This, size) -#define IDWriteFontFileStream_GetLastWriteTime(This, last_writetime) (This)->lpVtbl->GetLastWriteTime(This, last_writetime) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFileStream_QueryInterface(IDWriteFontFileStream* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontFileStream_AddRef(IDWriteFontFileStream* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontFileStream_Release(IDWriteFontFileStream* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontFileStream methods ***/ -static inline HRESULT IDWriteFontFileStream_ReadFileFragment(IDWriteFontFileStream* This, const void** fragment_start, UINT64 offset, UINT64 fragment_size, void** fragment_context) { - return This->lpVtbl->ReadFileFragment(This, fragment_start, offset, fragment_size, fragment_context); -} -static inline void IDWriteFontFileStream_ReleaseFileFragment(IDWriteFontFileStream* This, void* fragment_context) { - This->lpVtbl->ReleaseFileFragment(This, fragment_context); -} -static inline HRESULT IDWriteFontFileStream_GetFileSize(IDWriteFontFileStream* This, UINT64* size) { - return This->lpVtbl->GetFileSize(This, size); -} -static inline HRESULT IDWriteFontFileStream_GetLastWriteTime(IDWriteFontFileStream* This, UINT64* last_writetime) { - return This->lpVtbl->GetLastWriteTime(This, last_writetime); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontFileStream_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontFileLoader interface - */ -#ifndef __IDWriteFontFileLoader_INTERFACE_DEFINED__ -#define __IDWriteFontFileLoader_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontFileLoader, 0x727cad4e, 0xd6af, 0x4c9e, 0x8a, 0x08, 0xd6, 0x95, 0xb1, 0x1c, 0xaa, 0x49); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("727cad4e-d6af-4c9e-8a08-d695b11caa49") -IDWriteFontFileLoader : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE CreateStreamFromKey( - const void* key, - UINT32 key_size, - IDWriteFontFileStream** stream) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFileLoader, 0x727cad4e, 0xd6af, 0x4c9e, 0x8a, 0x08, 0xd6, 0x95, 0xb1, 0x1c, 0xaa, 0x49) -#endif -#else -typedef struct IDWriteFontFileLoaderVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontFileLoader* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontFileLoader* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontFileLoader* This); - - /*** IDWriteFontFileLoader methods ***/ - HRESULT(STDMETHODCALLTYPE* CreateStreamFromKey)( - IDWriteFontFileLoader* This, - const void* key, - UINT32 key_size, - IDWriteFontFileStream** stream); - - END_INTERFACE -} IDWriteFontFileLoaderVtbl; - -interface IDWriteFontFileLoader { - CONST_VTBL IDWriteFontFileLoaderVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontFileLoader_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontFileLoader_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontFileLoader methods ***/ -#define IDWriteFontFileLoader_CreateStreamFromKey(This, key, key_size, stream) (This)->lpVtbl->CreateStreamFromKey(This, key, key_size, stream) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFileLoader_QueryInterface(IDWriteFontFileLoader* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontFileLoader_AddRef(IDWriteFontFileLoader* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontFileLoader_Release(IDWriteFontFileLoader* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontFileLoader methods ***/ -static inline HRESULT IDWriteFontFileLoader_CreateStreamFromKey(IDWriteFontFileLoader* This, const void* key, UINT32 key_size, IDWriteFontFileStream** stream) { - return This->lpVtbl->CreateStreamFromKey(This, key, key_size, stream); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontFileLoader_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteLocalFontFileLoader interface - */ -#ifndef __IDWriteLocalFontFileLoader_INTERFACE_DEFINED__ -#define __IDWriteLocalFontFileLoader_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteLocalFontFileLoader, 0xb2d9f3ec, 0xc9fe, 0x4a11, 0xa2, 0xec, 0xd8, 0x62, 0x08, 0xf7, 0xc0, 0xa2); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("b2d9f3ec-c9fe-4a11-a2ec-d86208f7c0a2") -IDWriteLocalFontFileLoader : public IDWriteFontFileLoader { - virtual HRESULT STDMETHODCALLTYPE GetFilePathLengthFromKey( - const void* key, - UINT32 key_size, - UINT32* length) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFilePathFromKey( - const void* key, - UINT32 key_size, - WCHAR* path, - UINT32 length) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLastWriteTimeFromKey( - const void* key, - UINT32 key_size, - FILETIME* writetime) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteLocalFontFileLoader, 0xb2d9f3ec, 0xc9fe, 0x4a11, 0xa2, 0xec, 0xd8, 0x62, 0x08, 0xf7, 0xc0, 0xa2) -#endif -#else -typedef struct IDWriteLocalFontFileLoaderVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteLocalFontFileLoader* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteLocalFontFileLoader* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteLocalFontFileLoader* This); - - /*** IDWriteFontFileLoader methods ***/ - HRESULT(STDMETHODCALLTYPE* CreateStreamFromKey)( - IDWriteLocalFontFileLoader* This, - const void* key, - UINT32 key_size, - IDWriteFontFileStream** stream); - - /*** IDWriteLocalFontFileLoader methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFilePathLengthFromKey)( - IDWriteLocalFontFileLoader* This, - const void* key, - UINT32 key_size, - UINT32* length); - - HRESULT(STDMETHODCALLTYPE* GetFilePathFromKey)( - IDWriteLocalFontFileLoader* This, - const void* key, - UINT32 key_size, - WCHAR* path, - UINT32 length); - - HRESULT(STDMETHODCALLTYPE* GetLastWriteTimeFromKey)( - IDWriteLocalFontFileLoader* This, - const void* key, - UINT32 key_size, - FILETIME* writetime); - - END_INTERFACE -} IDWriteLocalFontFileLoaderVtbl; - -interface IDWriteLocalFontFileLoader { - CONST_VTBL IDWriteLocalFontFileLoaderVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteLocalFontFileLoader_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteLocalFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteLocalFontFileLoader_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontFileLoader methods ***/ -#define IDWriteLocalFontFileLoader_CreateStreamFromKey(This, key, key_size, stream) (This)->lpVtbl->CreateStreamFromKey(This, key, key_size, stream) -/*** IDWriteLocalFontFileLoader methods ***/ -#define IDWriteLocalFontFileLoader_GetFilePathLengthFromKey(This, key, key_size, length) (This)->lpVtbl->GetFilePathLengthFromKey(This, key, key_size, length) -#define IDWriteLocalFontFileLoader_GetFilePathFromKey(This, key, key_size, path, length) (This)->lpVtbl->GetFilePathFromKey(This, key, key_size, path, length) -#define IDWriteLocalFontFileLoader_GetLastWriteTimeFromKey(This, key, key_size, writetime) (This)->lpVtbl->GetLastWriteTimeFromKey(This, key, key_size, writetime) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteLocalFontFileLoader_QueryInterface(IDWriteLocalFontFileLoader* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteLocalFontFileLoader_AddRef(IDWriteLocalFontFileLoader* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteLocalFontFileLoader_Release(IDWriteLocalFontFileLoader* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontFileLoader methods ***/ -static inline HRESULT IDWriteLocalFontFileLoader_CreateStreamFromKey(IDWriteLocalFontFileLoader* This, const void* key, UINT32 key_size, IDWriteFontFileStream** stream) { - return This->lpVtbl->CreateStreamFromKey(This, key, key_size, stream); -} -/*** IDWriteLocalFontFileLoader methods ***/ -static inline HRESULT IDWriteLocalFontFileLoader_GetFilePathLengthFromKey(IDWriteLocalFontFileLoader* This, const void* key, UINT32 key_size, UINT32* length) { - return This->lpVtbl->GetFilePathLengthFromKey(This, key, key_size, length); -} -static inline HRESULT IDWriteLocalFontFileLoader_GetFilePathFromKey(IDWriteLocalFontFileLoader* This, const void* key, UINT32 key_size, WCHAR* path, UINT32 length) { - return This->lpVtbl->GetFilePathFromKey(This, key, key_size, path, length); -} -static inline HRESULT IDWriteLocalFontFileLoader_GetLastWriteTimeFromKey(IDWriteLocalFontFileLoader* This, const void* key, UINT32 key_size, FILETIME* writetime) { - return This->lpVtbl->GetLastWriteTimeFromKey(This, key, key_size, writetime); -} -#endif -#endif - -#endif - -#endif /* __IDWriteLocalFontFileLoader_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontFile interface - */ -#ifndef __IDWriteFontFile_INTERFACE_DEFINED__ -#define __IDWriteFontFile_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontFile, 0x739d886a, 0xcef5, 0x47dc, 0x87, 0x69, 0x1a, 0x8b, 0x41, 0xbe, 0xbb, 0xb0); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("739d886a-cef5-47dc-8769-1a8b41bebbb0") -IDWriteFontFile : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE GetReferenceKey( - const void** key, - UINT32* key_size) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLoader( - IDWriteFontFileLoader * *loader) = 0; - - virtual HRESULT STDMETHODCALLTYPE Analyze( - WINBOOL * is_supported_fonttype, - DWRITE_FONT_FILE_TYPE * file_type, - DWRITE_FONT_FACE_TYPE * face_type, - UINT32 * faces_num) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFile, 0x739d886a, 0xcef5, 0x47dc, 0x87, 0x69, 0x1a, 0x8b, 0x41, 0xbe, 0xbb, 0xb0) -#endif -#else -typedef struct IDWriteFontFileVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontFile* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontFile* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontFile* This); - - /*** IDWriteFontFile methods ***/ - HRESULT(STDMETHODCALLTYPE* GetReferenceKey)( - IDWriteFontFile* This, - const void** key, - UINT32* key_size); - - HRESULT(STDMETHODCALLTYPE* GetLoader)( - IDWriteFontFile* This, - IDWriteFontFileLoader** loader); - - HRESULT(STDMETHODCALLTYPE* Analyze)( - IDWriteFontFile* This, - WINBOOL* is_supported_fonttype, - DWRITE_FONT_FILE_TYPE* file_type, - DWRITE_FONT_FACE_TYPE* face_type, - UINT32* faces_num); - - END_INTERFACE -} IDWriteFontFileVtbl; - -interface IDWriteFontFile { - CONST_VTBL IDWriteFontFileVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontFile_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontFile_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontFile_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontFile methods ***/ -#define IDWriteFontFile_GetReferenceKey(This, key, key_size) (This)->lpVtbl->GetReferenceKey(This, key, key_size) -#define IDWriteFontFile_GetLoader(This, loader) (This)->lpVtbl->GetLoader(This, loader) -#define IDWriteFontFile_Analyze(This, is_supported_fonttype, file_type, face_type, faces_num) (This)->lpVtbl->Analyze(This, is_supported_fonttype, file_type, face_type, faces_num) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFile_QueryInterface(IDWriteFontFile* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontFile_AddRef(IDWriteFontFile* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontFile_Release(IDWriteFontFile* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontFile methods ***/ -static inline HRESULT IDWriteFontFile_GetReferenceKey(IDWriteFontFile* This, const void** key, UINT32* key_size) { - return This->lpVtbl->GetReferenceKey(This, key, key_size); -} -static inline HRESULT IDWriteFontFile_GetLoader(IDWriteFontFile* This, IDWriteFontFileLoader** loader) { - return This->lpVtbl->GetLoader(This, loader); -} -static inline HRESULT IDWriteFontFile_Analyze(IDWriteFontFile* This, WINBOOL* is_supported_fonttype, DWRITE_FONT_FILE_TYPE* file_type, DWRITE_FONT_FACE_TYPE* face_type, UINT32* faces_num) { - return This->lpVtbl->Analyze(This, is_supported_fonttype, file_type, face_type, faces_num); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontFile_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontFileEnumerator interface - */ -#ifndef __IDWriteFontFileEnumerator_INTERFACE_DEFINED__ -#define __IDWriteFontFileEnumerator_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontFileEnumerator, 0x72755049, 0x5ff7, 0x435d, 0x83, 0x48, 0x4b, 0xe9, 0x7c, 0xfa, 0x6c, 0x7c); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("72755049-5ff7-435d-8348-4be97cfa6c7c") -IDWriteFontFileEnumerator : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE MoveNext( - WINBOOL * has_current_file) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentFontFile( - IDWriteFontFile * *font_file) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFileEnumerator, 0x72755049, 0x5ff7, 0x435d, 0x83, 0x48, 0x4b, 0xe9, 0x7c, 0xfa, 0x6c, 0x7c) -#endif -#else -typedef struct IDWriteFontFileEnumeratorVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontFileEnumerator* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontFileEnumerator* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontFileEnumerator* This); - - /*** IDWriteFontFileEnumerator methods ***/ - HRESULT(STDMETHODCALLTYPE* MoveNext)( - IDWriteFontFileEnumerator* This, - WINBOOL* has_current_file); - - HRESULT(STDMETHODCALLTYPE* GetCurrentFontFile)( - IDWriteFontFileEnumerator* This, - IDWriteFontFile** font_file); - - END_INTERFACE -} IDWriteFontFileEnumeratorVtbl; - -interface IDWriteFontFileEnumerator { - CONST_VTBL IDWriteFontFileEnumeratorVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontFileEnumerator_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontFileEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontFileEnumerator_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontFileEnumerator methods ***/ -#define IDWriteFontFileEnumerator_MoveNext(This, has_current_file) (This)->lpVtbl->MoveNext(This, has_current_file) -#define IDWriteFontFileEnumerator_GetCurrentFontFile(This, font_file) (This)->lpVtbl->GetCurrentFontFile(This, font_file) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFileEnumerator_QueryInterface(IDWriteFontFileEnumerator* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontFileEnumerator_AddRef(IDWriteFontFileEnumerator* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontFileEnumerator_Release(IDWriteFontFileEnumerator* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontFileEnumerator methods ***/ -static inline HRESULT IDWriteFontFileEnumerator_MoveNext(IDWriteFontFileEnumerator* This, WINBOOL* has_current_file) { - return This->lpVtbl->MoveNext(This, has_current_file); -} -static inline HRESULT IDWriteFontFileEnumerator_GetCurrentFontFile(IDWriteFontFileEnumerator* This, IDWriteFontFile** font_file) { - return This->lpVtbl->GetCurrentFontFile(This, font_file); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontFileEnumerator_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontCollectionLoader interface - */ -#ifndef __IDWriteFontCollectionLoader_INTERFACE_DEFINED__ -#define __IDWriteFontCollectionLoader_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontCollectionLoader, 0xcca920e4, 0x52f0, 0x492b, 0xbf, 0xa8, 0x29, 0xc7, 0x2e, 0xe0, 0xa4, 0x68); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("cca920e4-52f0-492b-bfa8-29c72ee0a468") -IDWriteFontCollectionLoader : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE CreateEnumeratorFromKey( - IDWriteFactory * factory, - const void* key, - UINT32 key_size, - IDWriteFontFileEnumerator** enumerator) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontCollectionLoader, 0xcca920e4, 0x52f0, 0x492b, 0xbf, 0xa8, 0x29, 0xc7, 0x2e, 0xe0, 0xa4, 0x68) -#endif -#else -typedef struct IDWriteFontCollectionLoaderVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontCollectionLoader* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontCollectionLoader* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontCollectionLoader* This); - - /*** IDWriteFontCollectionLoader methods ***/ - HRESULT(STDMETHODCALLTYPE* CreateEnumeratorFromKey)( - IDWriteFontCollectionLoader* This, - IDWriteFactory* factory, - const void* key, - UINT32 key_size, - IDWriteFontFileEnumerator** enumerator); - - END_INTERFACE -} IDWriteFontCollectionLoaderVtbl; - -interface IDWriteFontCollectionLoader { - CONST_VTBL IDWriteFontCollectionLoaderVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontCollectionLoader_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontCollectionLoader_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontCollectionLoader_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontCollectionLoader methods ***/ -#define IDWriteFontCollectionLoader_CreateEnumeratorFromKey(This, factory, key, key_size, enumerator) (This)->lpVtbl->CreateEnumeratorFromKey(This, factory, key, key_size, enumerator) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontCollectionLoader_QueryInterface(IDWriteFontCollectionLoader* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontCollectionLoader_AddRef(IDWriteFontCollectionLoader* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontCollectionLoader_Release(IDWriteFontCollectionLoader* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontCollectionLoader methods ***/ -static inline HRESULT IDWriteFontCollectionLoader_CreateEnumeratorFromKey(IDWriteFontCollectionLoader* This, IDWriteFactory* factory, const void* key, UINT32 key_size, IDWriteFontFileEnumerator** enumerator) { - return This->lpVtbl->CreateEnumeratorFromKey(This, factory, key, key_size, enumerator); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontCollectionLoader_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteLocalizedStrings interface - */ -#ifndef __IDWriteLocalizedStrings_INTERFACE_DEFINED__ -#define __IDWriteLocalizedStrings_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteLocalizedStrings, 0x08256209, 0x099a, 0x4b34, 0xb8, 0x6d, 0xc2, 0x2b, 0x11, 0x0e, 0x77, 0x71); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("08256209-099a-4b34-b86d-c22b110e7771") -IDWriteLocalizedStrings : public IUnknown { - virtual UINT32 STDMETHODCALLTYPE GetCount() = 0; - - virtual HRESULT STDMETHODCALLTYPE FindLocaleName( - const WCHAR* locale_name, - UINT32* index, - WINBOOL* exists) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocaleNameLength( - UINT32 index, - UINT32 * length) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocaleName( - UINT32 index, - WCHAR * locale_name, - UINT32 size) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStringLength( - UINT32 index, - UINT32 * length) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetString( - UINT32 index, - WCHAR * buffer, - UINT32 size) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteLocalizedStrings, 0x08256209, 0x099a, 0x4b34, 0xb8, 0x6d, 0xc2, 0x2b, 0x11, 0x0e, 0x77, 0x71) -#endif -#else -typedef struct IDWriteLocalizedStringsVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteLocalizedStrings* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteLocalizedStrings* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteLocalizedStrings* This); - - /*** IDWriteLocalizedStrings methods ***/ - UINT32(STDMETHODCALLTYPE* GetCount)( - IDWriteLocalizedStrings* This); - - HRESULT(STDMETHODCALLTYPE* FindLocaleName)( - IDWriteLocalizedStrings* This, - const WCHAR* locale_name, - UINT32* index, - WINBOOL* exists); - - HRESULT(STDMETHODCALLTYPE* GetLocaleNameLength)( - IDWriteLocalizedStrings* This, - UINT32 index, - UINT32* length); - - HRESULT(STDMETHODCALLTYPE* GetLocaleName)( - IDWriteLocalizedStrings* This, - UINT32 index, - WCHAR* locale_name, - UINT32 size); - - HRESULT(STDMETHODCALLTYPE* GetStringLength)( - IDWriteLocalizedStrings* This, - UINT32 index, - UINT32* length); - - HRESULT(STDMETHODCALLTYPE* GetString)( - IDWriteLocalizedStrings* This, - UINT32 index, - WCHAR* buffer, - UINT32 size); - - END_INTERFACE -} IDWriteLocalizedStringsVtbl; - -interface IDWriteLocalizedStrings { - CONST_VTBL IDWriteLocalizedStringsVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteLocalizedStrings_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteLocalizedStrings_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteLocalizedStrings_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteLocalizedStrings methods ***/ -#define IDWriteLocalizedStrings_GetCount(This) (This)->lpVtbl->GetCount(This) -#define IDWriteLocalizedStrings_FindLocaleName(This, locale_name, index, exists) (This)->lpVtbl->FindLocaleName(This, locale_name, index, exists) -#define IDWriteLocalizedStrings_GetLocaleNameLength(This, index, length) (This)->lpVtbl->GetLocaleNameLength(This, index, length) -#define IDWriteLocalizedStrings_GetLocaleName(This, index, locale_name, size) (This)->lpVtbl->GetLocaleName(This, index, locale_name, size) -#define IDWriteLocalizedStrings_GetStringLength(This, index, length) (This)->lpVtbl->GetStringLength(This, index, length) -#define IDWriteLocalizedStrings_GetString(This, index, buffer, size) (This)->lpVtbl->GetString(This, index, buffer, size) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteLocalizedStrings_QueryInterface(IDWriteLocalizedStrings* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteLocalizedStrings_AddRef(IDWriteLocalizedStrings* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteLocalizedStrings_Release(IDWriteLocalizedStrings* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteLocalizedStrings methods ***/ -static inline UINT32 IDWriteLocalizedStrings_GetCount(IDWriteLocalizedStrings* This) { - return This->lpVtbl->GetCount(This); -} -static inline HRESULT IDWriteLocalizedStrings_FindLocaleName(IDWriteLocalizedStrings* This, const WCHAR* locale_name, UINT32* index, WINBOOL* exists) { - return This->lpVtbl->FindLocaleName(This, locale_name, index, exists); -} -static inline HRESULT IDWriteLocalizedStrings_GetLocaleNameLength(IDWriteLocalizedStrings* This, UINT32 index, UINT32* length) { - return This->lpVtbl->GetLocaleNameLength(This, index, length); -} -static inline HRESULT IDWriteLocalizedStrings_GetLocaleName(IDWriteLocalizedStrings* This, UINT32 index, WCHAR* locale_name, UINT32 size) { - return This->lpVtbl->GetLocaleName(This, index, locale_name, size); -} -static inline HRESULT IDWriteLocalizedStrings_GetStringLength(IDWriteLocalizedStrings* This, UINT32 index, UINT32* length) { - return This->lpVtbl->GetStringLength(This, index, length); -} -static inline HRESULT IDWriteLocalizedStrings_GetString(IDWriteLocalizedStrings* This, UINT32 index, WCHAR* buffer, UINT32 size) { - return This->lpVtbl->GetString(This, index, buffer, size); -} -#endif -#endif - -#endif - -#endif /* __IDWriteLocalizedStrings_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteRenderingParams interface - */ -#ifndef __IDWriteRenderingParams_INTERFACE_DEFINED__ -#define __IDWriteRenderingParams_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteRenderingParams, 0x2f0da53a, 0x2add, 0x47cd, 0x82, 0xee, 0xd9, 0xec, 0x34, 0x68, 0x8e, 0x75); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("2f0da53a-2add-47cd-82ee-d9ec34688e75") -IDWriteRenderingParams : public IUnknown { - virtual FLOAT STDMETHODCALLTYPE GetGamma() = 0; - - virtual FLOAT STDMETHODCALLTYPE GetEnhancedContrast() = 0; - - virtual FLOAT STDMETHODCALLTYPE GetClearTypeLevel() = 0; - - virtual DWRITE_PIXEL_GEOMETRY STDMETHODCALLTYPE GetPixelGeometry() = 0; - - virtual DWRITE_RENDERING_MODE STDMETHODCALLTYPE GetRenderingMode() = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteRenderingParams, 0x2f0da53a, 0x2add, 0x47cd, 0x82, 0xee, 0xd9, 0xec, 0x34, 0x68, 0x8e, 0x75) -#endif -#else -typedef struct IDWriteRenderingParamsVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteRenderingParams* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteRenderingParams* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteRenderingParams* This); - - /*** IDWriteRenderingParams methods ***/ - FLOAT(STDMETHODCALLTYPE* GetGamma)( - IDWriteRenderingParams* This); - - FLOAT(STDMETHODCALLTYPE* GetEnhancedContrast)( - IDWriteRenderingParams* This); - - FLOAT(STDMETHODCALLTYPE* GetClearTypeLevel)( - IDWriteRenderingParams* This); - - DWRITE_PIXEL_GEOMETRY(STDMETHODCALLTYPE* GetPixelGeometry)( - IDWriteRenderingParams* This); - - DWRITE_RENDERING_MODE(STDMETHODCALLTYPE* GetRenderingMode)( - IDWriteRenderingParams* This); - - END_INTERFACE -} IDWriteRenderingParamsVtbl; - -interface IDWriteRenderingParams { - CONST_VTBL IDWriteRenderingParamsVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteRenderingParams_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteRenderingParams_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteRenderingParams_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteRenderingParams methods ***/ -#define IDWriteRenderingParams_GetGamma(This) (This)->lpVtbl->GetGamma(This) -#define IDWriteRenderingParams_GetEnhancedContrast(This) (This)->lpVtbl->GetEnhancedContrast(This) -#define IDWriteRenderingParams_GetClearTypeLevel(This) (This)->lpVtbl->GetClearTypeLevel(This) -#define IDWriteRenderingParams_GetPixelGeometry(This) (This)->lpVtbl->GetPixelGeometry(This) -#define IDWriteRenderingParams_GetRenderingMode(This) (This)->lpVtbl->GetRenderingMode(This) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteRenderingParams_QueryInterface(IDWriteRenderingParams* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteRenderingParams_AddRef(IDWriteRenderingParams* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteRenderingParams_Release(IDWriteRenderingParams* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteRenderingParams methods ***/ -static inline FLOAT IDWriteRenderingParams_GetGamma(IDWriteRenderingParams* This) { - return This->lpVtbl->GetGamma(This); -} -static inline FLOAT IDWriteRenderingParams_GetEnhancedContrast(IDWriteRenderingParams* This) { - return This->lpVtbl->GetEnhancedContrast(This); -} -static inline FLOAT IDWriteRenderingParams_GetClearTypeLevel(IDWriteRenderingParams* This) { - return This->lpVtbl->GetClearTypeLevel(This); -} -static inline DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams_GetPixelGeometry(IDWriteRenderingParams* This) { - return This->lpVtbl->GetPixelGeometry(This); -} -static inline DWRITE_RENDERING_MODE IDWriteRenderingParams_GetRenderingMode(IDWriteRenderingParams* This) { - return This->lpVtbl->GetRenderingMode(This); -} -#endif -#endif - -#endif - -#endif /* __IDWriteRenderingParams_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontFace interface - */ -#ifndef __IDWriteFontFace_INTERFACE_DEFINED__ -#define __IDWriteFontFace_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontFace, 0x5f49804d, 0x7024, 0x4d43, 0xbf, 0xa9, 0xd2, 0x59, 0x84, 0xf5, 0x38, 0x49); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("5f49804d-7024-4d43-bfa9-d25984f53849") -IDWriteFontFace : public IUnknown { - virtual DWRITE_FONT_FACE_TYPE STDMETHODCALLTYPE GetType() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFiles( - UINT32 * number_of_files, - IDWriteFontFile * *fontfiles) = 0; - - virtual UINT32 STDMETHODCALLTYPE GetIndex() = 0; - - virtual DWRITE_FONT_SIMULATIONS STDMETHODCALLTYPE GetSimulations() = 0; - - virtual WINBOOL STDMETHODCALLTYPE IsSymbolFont() = 0; - - virtual void STDMETHODCALLTYPE GetMetrics( - DWRITE_FONT_METRICS * metrics) = 0; - - virtual UINT16 STDMETHODCALLTYPE GetGlyphCount() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDesignGlyphMetrics( - const UINT16* glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS* metrics, - WINBOOL is_sideways = FALSE) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGlyphIndices( - const UINT32* codepoints, - UINT32 count, - UINT16* glyph_indices) = 0; - - virtual HRESULT STDMETHODCALLTYPE TryGetFontTable( - UINT32 table_tag, - const void** table_data, - UINT32* table_size, - void** context, - WINBOOL* exists) = 0; - - virtual void STDMETHODCALLTYPE ReleaseFontTable( - void* table_context) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGlyphRunOutline( - FLOAT emSize, - const UINT16* glyph_indices, - const FLOAT* glyph_advances, - const DWRITE_GLYPH_OFFSET* glyph_offsets, - UINT32 glyph_count, - WINBOOL is_sideways, - WINBOOL is_rtl, - IDWriteGeometrySink* geometrysink) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode( - FLOAT emSize, - FLOAT pixels_per_dip, - DWRITE_MEASURING_MODE mode, - IDWriteRenderingParams * params, - DWRITE_RENDERING_MODE * rendering_mode) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGdiCompatibleMetrics( - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_FONT_METRICS* metrics) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGdiCompatibleGlyphMetrics( - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - const UINT16* glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS* metrics, - WINBOOL is_sideways = FALSE) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFace, 0x5f49804d, 0x7024, 0x4d43, 0xbf, 0xa9, 0xd2, 0x59, 0x84, 0xf5, 0x38, 0x49) -#endif -#else -typedef struct IDWriteFontFaceVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontFace* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontFace* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontFace* This); - - /*** IDWriteFontFace methods ***/ - DWRITE_FONT_FACE_TYPE(STDMETHODCALLTYPE* GetType)( - IDWriteFontFace* This); - - HRESULT(STDMETHODCALLTYPE* GetFiles)( - IDWriteFontFace* This, - UINT32* number_of_files, - IDWriteFontFile** fontfiles); - - UINT32(STDMETHODCALLTYPE* GetIndex)( - IDWriteFontFace* This); - - DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( - IDWriteFontFace* This); - - WINBOOL(STDMETHODCALLTYPE* IsSymbolFont)( - IDWriteFontFace* This); - - void(STDMETHODCALLTYPE* GetMetrics)( - IDWriteFontFace* This, - DWRITE_FONT_METRICS* metrics); - - UINT16(STDMETHODCALLTYPE* GetGlyphCount)( - IDWriteFontFace* This); - - HRESULT(STDMETHODCALLTYPE* GetDesignGlyphMetrics)( - IDWriteFontFace* This, - const UINT16* glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS* metrics, - WINBOOL is_sideways); - - HRESULT(STDMETHODCALLTYPE* GetGlyphIndices)( - IDWriteFontFace* This, - const UINT32* codepoints, - UINT32 count, - UINT16* glyph_indices); - - HRESULT(STDMETHODCALLTYPE* TryGetFontTable)( - IDWriteFontFace* This, - UINT32 table_tag, - const void** table_data, - UINT32* table_size, - void** context, - WINBOOL* exists); - - void(STDMETHODCALLTYPE* ReleaseFontTable)( - IDWriteFontFace* This, - void* table_context); - - HRESULT(STDMETHODCALLTYPE* GetGlyphRunOutline)( - IDWriteFontFace* This, - FLOAT emSize, - const UINT16* glyph_indices, - const FLOAT* glyph_advances, - const DWRITE_GLYPH_OFFSET* glyph_offsets, - UINT32 glyph_count, - WINBOOL is_sideways, - WINBOOL is_rtl, - IDWriteGeometrySink* geometrysink); - - HRESULT(STDMETHODCALLTYPE* GetRecommendedRenderingMode)( - IDWriteFontFace* This, - FLOAT emSize, - FLOAT pixels_per_dip, - DWRITE_MEASURING_MODE mode, - IDWriteRenderingParams* params, - DWRITE_RENDERING_MODE* rendering_mode); - - HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleMetrics)( - IDWriteFontFace* This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_FONT_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphMetrics)( - IDWriteFontFace* This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - const UINT16* glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS* metrics, - WINBOOL is_sideways); - - END_INTERFACE -} IDWriteFontFaceVtbl; - -interface IDWriteFontFace { - CONST_VTBL IDWriteFontFaceVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontFace_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontFace_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontFace_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontFace methods ***/ -#define IDWriteFontFace_GetType(This) (This)->lpVtbl->GetType(This) -#define IDWriteFontFace_GetFiles(This, number_of_files, fontfiles) (This)->lpVtbl->GetFiles(This, number_of_files, fontfiles) -#define IDWriteFontFace_GetIndex(This) (This)->lpVtbl->GetIndex(This) -#define IDWriteFontFace_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) -#define IDWriteFontFace_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) -#define IDWriteFontFace_GetMetrics(This, metrics) (This)->lpVtbl->GetMetrics(This, metrics) -#define IDWriteFontFace_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) -#define IDWriteFontFace_GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) -#define IDWriteFontFace_GetGlyphIndices(This, codepoints, count, glyph_indices) (This)->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices) -#define IDWriteFontFace_TryGetFontTable(This, table_tag, table_data, table_size, context, exists) (This)->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists) -#define IDWriteFontFace_ReleaseFontTable(This, table_context) (This)->lpVtbl->ReleaseFontTable(This, table_context) -#define IDWriteFontFace_GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) -#define IDWriteFontFace_GetRecommendedRenderingMode(This, emSize, pixels_per_dip, mode, params, rendering_mode) (This)->lpVtbl->GetRecommendedRenderingMode(This, emSize, pixels_per_dip, mode, params, rendering_mode) -#define IDWriteFontFace_GetGdiCompatibleMetrics(This, emSize, pixels_per_dip, transform, metrics) (This)->lpVtbl->GetGdiCompatibleMetrics(This, emSize, pixels_per_dip, transform, metrics) -#define IDWriteFontFace_GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFace_QueryInterface(IDWriteFontFace* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontFace_AddRef(IDWriteFontFace* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontFace_Release(IDWriteFontFace* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontFace methods ***/ -static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace_GetType(IDWriteFontFace* This) { - return This->lpVtbl->GetType(This); -} -static inline HRESULT IDWriteFontFace_GetFiles(IDWriteFontFace* This, UINT32* number_of_files, IDWriteFontFile** fontfiles) { - return This->lpVtbl->GetFiles(This, number_of_files, fontfiles); -} -static inline UINT32 IDWriteFontFace_GetIndex(IDWriteFontFace* This) { - return This->lpVtbl->GetIndex(This); -} -static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace_GetSimulations(IDWriteFontFace* This) { - return This->lpVtbl->GetSimulations(This); -} -static inline WINBOOL IDWriteFontFace_IsSymbolFont(IDWriteFontFace* This) { - return This->lpVtbl->IsSymbolFont(This); -} -static inline void IDWriteFontFace_GetMetrics(IDWriteFontFace* This, DWRITE_FONT_METRICS* metrics) { - This->lpVtbl->GetMetrics(This, metrics); -} -static inline UINT16 IDWriteFontFace_GetGlyphCount(IDWriteFontFace* This) { - return This->lpVtbl->GetGlyphCount(This); -} -static inline HRESULT IDWriteFontFace_GetDesignGlyphMetrics(IDWriteFontFace* This, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways); -} -static inline HRESULT IDWriteFontFace_GetGlyphIndices(IDWriteFontFace* This, const UINT32* codepoints, UINT32 count, UINT16* glyph_indices) { - return This->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices); -} -static inline HRESULT IDWriteFontFace_TryGetFontTable(IDWriteFontFace* This, UINT32 table_tag, const void** table_data, UINT32* table_size, void** context, WINBOOL* exists) { - return This->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists); -} -static inline void IDWriteFontFace_ReleaseFontTable(IDWriteFontFace* This, void* table_context) { - This->lpVtbl->ReleaseFontTable(This, table_context); -} -static inline HRESULT IDWriteFontFace_GetGlyphRunOutline(IDWriteFontFace* This, FLOAT emSize, const UINT16* glyph_indices, const FLOAT* glyph_advances, const DWRITE_GLYPH_OFFSET* glyph_offsets, UINT32 glyph_count, WINBOOL is_sideways, WINBOOL is_rtl, IDWriteGeometrySink* geometrysink) { - return This->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink); -} -static inline HRESULT IDWriteFontFace_GetRecommendedRenderingMode(IDWriteFontFace* This, FLOAT emSize, FLOAT pixels_per_dip, DWRITE_MEASURING_MODE mode, IDWriteRenderingParams* params, DWRITE_RENDERING_MODE* rendering_mode) { - return This->lpVtbl->GetRecommendedRenderingMode(This, emSize, pixels_per_dip, mode, params, rendering_mode); -} -static inline HRESULT IDWriteFontFace_GetGdiCompatibleMetrics(IDWriteFontFace* This, FLOAT emSize, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, DWRITE_FONT_METRICS* metrics) { - return This->lpVtbl->GetGdiCompatibleMetrics(This, emSize, pixels_per_dip, transform, metrics); -} -static inline HRESULT IDWriteFontFace_GetGdiCompatibleGlyphMetrics(IDWriteFontFace* This, FLOAT emSize, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { - return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontFace_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFont interface - */ -#ifndef __IDWriteFont_INTERFACE_DEFINED__ -#define __IDWriteFont_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFont, 0xacd16696, 0x8c14, 0x4f5d, 0x87, 0x7e, 0xfe, 0x3f, 0xc1, 0xd3, 0x27, 0x37); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("acd16696-8c14-4f5d-877e-fe3fc1d32737") -IDWriteFont : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE GetFontFamily( - IDWriteFontFamily * *family) = 0; - - virtual DWRITE_FONT_WEIGHT STDMETHODCALLTYPE GetWeight() = 0; - - virtual DWRITE_FONT_STRETCH STDMETHODCALLTYPE GetStretch() = 0; - - virtual DWRITE_FONT_STYLE STDMETHODCALLTYPE GetStyle() = 0; - - virtual WINBOOL STDMETHODCALLTYPE IsSymbolFont() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFaceNames( - IDWriteLocalizedStrings * *names) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetInformationalStrings( - DWRITE_INFORMATIONAL_STRING_ID stringid, - IDWriteLocalizedStrings * *strings, - WINBOOL * exists) = 0; - - virtual DWRITE_FONT_SIMULATIONS STDMETHODCALLTYPE GetSimulations() = 0; - - virtual void STDMETHODCALLTYPE GetMetrics( - DWRITE_FONT_METRICS * metrics) = 0; - - virtual HRESULT STDMETHODCALLTYPE HasCharacter( - UINT32 value, - WINBOOL * exists) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontFace( - IDWriteFontFace * *face) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFont, 0xacd16696, 0x8c14, 0x4f5d, 0x87, 0x7e, 0xfe, 0x3f, 0xc1, 0xd3, 0x27, 0x37) -#endif -#else -typedef struct IDWriteFontVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFont* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFont* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFont* This); - - /*** IDWriteFont methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFontFamily)( - IDWriteFont* This, - IDWriteFontFamily** family); - - DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetWeight)( - IDWriteFont* This); - - DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetStretch)( - IDWriteFont* This); - - DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetStyle)( - IDWriteFont* This); - - WINBOOL(STDMETHODCALLTYPE* IsSymbolFont)( - IDWriteFont* This); - - HRESULT(STDMETHODCALLTYPE* GetFaceNames)( - IDWriteFont* This, - IDWriteLocalizedStrings** names); - - HRESULT(STDMETHODCALLTYPE* GetInformationalStrings)( - IDWriteFont* This, - DWRITE_INFORMATIONAL_STRING_ID stringid, - IDWriteLocalizedStrings** strings, - WINBOOL* exists); - - DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( - IDWriteFont* This); - - void(STDMETHODCALLTYPE* GetMetrics)( - IDWriteFont* This, - DWRITE_FONT_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* HasCharacter)( - IDWriteFont* This, - UINT32 value, - WINBOOL* exists); - - HRESULT(STDMETHODCALLTYPE* CreateFontFace)( - IDWriteFont* This, - IDWriteFontFace** face); - - END_INTERFACE -} IDWriteFontVtbl; - -interface IDWriteFont { - CONST_VTBL IDWriteFontVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFont_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFont_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFont_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFont methods ***/ -#define IDWriteFont_GetFontFamily(This, family) (This)->lpVtbl->GetFontFamily(This, family) -#define IDWriteFont_GetWeight(This) (This)->lpVtbl->GetWeight(This) -#define IDWriteFont_GetStretch(This) (This)->lpVtbl->GetStretch(This) -#define IDWriteFont_GetStyle(This) (This)->lpVtbl->GetStyle(This) -#define IDWriteFont_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) -#define IDWriteFont_GetFaceNames(This, names) (This)->lpVtbl->GetFaceNames(This, names) -#define IDWriteFont_GetInformationalStrings(This, stringid, strings, exists) (This)->lpVtbl->GetInformationalStrings(This, stringid, strings, exists) -#define IDWriteFont_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) -#define IDWriteFont_GetMetrics(This, metrics) (This)->lpVtbl->GetMetrics(This, metrics) -#define IDWriteFont_HasCharacter(This, value, exists) (This)->lpVtbl->HasCharacter(This, value, exists) -#define IDWriteFont_CreateFontFace(This, face) (This)->lpVtbl->CreateFontFace(This, face) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFont_QueryInterface(IDWriteFont* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFont_AddRef(IDWriteFont* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFont_Release(IDWriteFont* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFont methods ***/ -static inline HRESULT IDWriteFont_GetFontFamily(IDWriteFont* This, IDWriteFontFamily** family) { - return This->lpVtbl->GetFontFamily(This, family); -} -static inline DWRITE_FONT_WEIGHT IDWriteFont_GetWeight(IDWriteFont* This) { - return This->lpVtbl->GetWeight(This); -} -static inline DWRITE_FONT_STRETCH IDWriteFont_GetStretch(IDWriteFont* This) { - return This->lpVtbl->GetStretch(This); -} -static inline DWRITE_FONT_STYLE IDWriteFont_GetStyle(IDWriteFont* This) { - return This->lpVtbl->GetStyle(This); -} -static inline WINBOOL IDWriteFont_IsSymbolFont(IDWriteFont* This) { - return This->lpVtbl->IsSymbolFont(This); -} -static inline HRESULT IDWriteFont_GetFaceNames(IDWriteFont* This, IDWriteLocalizedStrings** names) { - return This->lpVtbl->GetFaceNames(This, names); -} -static inline HRESULT IDWriteFont_GetInformationalStrings(IDWriteFont* This, DWRITE_INFORMATIONAL_STRING_ID stringid, IDWriteLocalizedStrings** strings, WINBOOL* exists) { - return This->lpVtbl->GetInformationalStrings(This, stringid, strings, exists); -} -static inline DWRITE_FONT_SIMULATIONS IDWriteFont_GetSimulations(IDWriteFont* This) { - return This->lpVtbl->GetSimulations(This); -} -static inline void IDWriteFont_GetMetrics(IDWriteFont* This, DWRITE_FONT_METRICS* metrics) { - This->lpVtbl->GetMetrics(This, metrics); -} -static inline HRESULT IDWriteFont_HasCharacter(IDWriteFont* This, UINT32 value, WINBOOL* exists) { - return This->lpVtbl->HasCharacter(This, value, exists); -} -static inline HRESULT IDWriteFont_CreateFontFace(IDWriteFont* This, IDWriteFontFace** face) { - return This->lpVtbl->CreateFontFace(This, face); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFont_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontList interface - */ -#ifndef __IDWriteFontList_INTERFACE_DEFINED__ -#define __IDWriteFontList_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontList, 0x1a0d8438, 0x1d97, 0x4ec1, 0xae, 0xf9, 0xa2, 0xfb, 0x86, 0xed, 0x6a, 0xcb); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("1a0d8438-1d97-4ec1-aef9-a2fb86ed6acb") -IDWriteFontList : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE GetFontCollection( - IDWriteFontCollection * *collection) = 0; - - virtual UINT32 STDMETHODCALLTYPE GetFontCount() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFont( - UINT32 index, - IDWriteFont * *font) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontList, 0x1a0d8438, 0x1d97, 0x4ec1, 0xae, 0xf9, 0xa2, 0xfb, 0x86, 0xed, 0x6a, 0xcb) -#endif -#else -typedef struct IDWriteFontListVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontList* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontList* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontList* This); - - /*** IDWriteFontList methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFontCollection)( - IDWriteFontList* This, - IDWriteFontCollection** collection); - - UINT32(STDMETHODCALLTYPE* GetFontCount)( - IDWriteFontList* This); - - HRESULT(STDMETHODCALLTYPE* GetFont)( - IDWriteFontList* This, - UINT32 index, - IDWriteFont** font); - - END_INTERFACE -} IDWriteFontListVtbl; - -interface IDWriteFontList { - CONST_VTBL IDWriteFontListVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontList_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontList_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontList_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontList methods ***/ -#define IDWriteFontList_GetFontCollection(This, collection) (This)->lpVtbl->GetFontCollection(This, collection) -#define IDWriteFontList_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) -#define IDWriteFontList_GetFont(This, index, font) (This)->lpVtbl->GetFont(This, index, font) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontList_QueryInterface(IDWriteFontList* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontList_AddRef(IDWriteFontList* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontList_Release(IDWriteFontList* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontList methods ***/ -static inline HRESULT IDWriteFontList_GetFontCollection(IDWriteFontList* This, IDWriteFontCollection** collection) { - return This->lpVtbl->GetFontCollection(This, collection); -} -static inline UINT32 IDWriteFontList_GetFontCount(IDWriteFontList* This) { - return This->lpVtbl->GetFontCount(This); -} -static inline HRESULT IDWriteFontList_GetFont(IDWriteFontList* This, UINT32 index, IDWriteFont** font) { - return This->lpVtbl->GetFont(This, index, font); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontList_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontFamily interface - */ -#ifndef __IDWriteFontFamily_INTERFACE_DEFINED__ -#define __IDWriteFontFamily_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontFamily, 0xda20d8ef, 0x812a, 0x4c43, 0x98, 0x02, 0x62, 0xec, 0x4a, 0xbd, 0x7a, 0xdd); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7add") -IDWriteFontFamily : public IDWriteFontList { - virtual HRESULT STDMETHODCALLTYPE GetFamilyNames( - IDWriteLocalizedStrings * *names) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFirstMatchingFont( - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFont * *font) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFontList * *fonts) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFamily, 0xda20d8ef, 0x812a, 0x4c43, 0x98, 0x02, 0x62, 0xec, 0x4a, 0xbd, 0x7a, 0xdd) -#endif -#else -typedef struct IDWriteFontFamilyVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontFamily* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontFamily* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontFamily* This); - - /*** IDWriteFontList methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFontCollection)( - IDWriteFontFamily* This, - IDWriteFontCollection** collection); - - UINT32(STDMETHODCALLTYPE* GetFontCount)( - IDWriteFontFamily* This); - - HRESULT(STDMETHODCALLTYPE* GetFont)( - IDWriteFontFamily* This, - UINT32 index, - IDWriteFont** font); - - /*** IDWriteFontFamily methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFamilyNames)( - IDWriteFontFamily* This, - IDWriteLocalizedStrings** names); - - HRESULT(STDMETHODCALLTYPE* GetFirstMatchingFont)( - IDWriteFontFamily* This, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFont** font); - - HRESULT(STDMETHODCALLTYPE* GetMatchingFonts)( - IDWriteFontFamily* This, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFontList** fonts); - - END_INTERFACE -} IDWriteFontFamilyVtbl; - -interface IDWriteFontFamily { - CONST_VTBL IDWriteFontFamilyVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontFamily_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontFamily_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontFamily_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontList methods ***/ -#define IDWriteFontFamily_GetFontCollection(This, collection) (This)->lpVtbl->GetFontCollection(This, collection) -#define IDWriteFontFamily_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) -#define IDWriteFontFamily_GetFont(This, index, font) (This)->lpVtbl->GetFont(This, index, font) -/*** IDWriteFontFamily methods ***/ -#define IDWriteFontFamily_GetFamilyNames(This, names) (This)->lpVtbl->GetFamilyNames(This, names) -#define IDWriteFontFamily_GetFirstMatchingFont(This, weight, stretch, style, font) (This)->lpVtbl->GetFirstMatchingFont(This, weight, stretch, style, font) -#define IDWriteFontFamily_GetMatchingFonts(This, weight, stretch, style, fonts) (This)->lpVtbl->GetMatchingFonts(This, weight, stretch, style, fonts) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFamily_QueryInterface(IDWriteFontFamily* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontFamily_AddRef(IDWriteFontFamily* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontFamily_Release(IDWriteFontFamily* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontList methods ***/ -static inline HRESULT IDWriteFontFamily_GetFontCollection(IDWriteFontFamily* This, IDWriteFontCollection** collection) { - return This->lpVtbl->GetFontCollection(This, collection); -} -static inline UINT32 IDWriteFontFamily_GetFontCount(IDWriteFontFamily* This) { - return This->lpVtbl->GetFontCount(This); -} -static inline HRESULT IDWriteFontFamily_GetFont(IDWriteFontFamily* This, UINT32 index, IDWriteFont** font) { - return This->lpVtbl->GetFont(This, index, font); -} -/*** IDWriteFontFamily methods ***/ -static inline HRESULT IDWriteFontFamily_GetFamilyNames(IDWriteFontFamily* This, IDWriteLocalizedStrings** names) { - return This->lpVtbl->GetFamilyNames(This, names); -} -static inline HRESULT IDWriteFontFamily_GetFirstMatchingFont(IDWriteFontFamily* This, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFont** font) { - return This->lpVtbl->GetFirstMatchingFont(This, weight, stretch, style, font); -} -static inline HRESULT IDWriteFontFamily_GetMatchingFonts(IDWriteFontFamily* This, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFontList** fonts) { - return This->lpVtbl->GetMatchingFonts(This, weight, stretch, style, fonts); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontFamily_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontCollection interface - */ -#ifndef __IDWriteFontCollection_INTERFACE_DEFINED__ -#define __IDWriteFontCollection_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontCollection, 0xa84cee02, 0x3eea, 0x4eee, 0xa8, 0x27, 0x87, 0xc1, 0xa0, 0x2a, 0x0f, 0xcc); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("a84cee02-3eea-4eee-a827-87c1a02a0fcc") -IDWriteFontCollection : public IUnknown { - virtual UINT32 STDMETHODCALLTYPE GetFontFamilyCount() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontFamily( - UINT32 index, - IDWriteFontFamily * *family) = 0; - - virtual HRESULT STDMETHODCALLTYPE FindFamilyName( - const WCHAR* name, - UINT32* index, - WINBOOL* exists) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontFromFontFace( - IDWriteFontFace * face, - IDWriteFont * *font) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontCollection, 0xa84cee02, 0x3eea, 0x4eee, 0xa8, 0x27, 0x87, 0xc1, 0xa0, 0x2a, 0x0f, 0xcc) -#endif -#else -typedef struct IDWriteFontCollectionVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontCollection* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontCollection* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontCollection* This); - - /*** IDWriteFontCollection methods ***/ - UINT32(STDMETHODCALLTYPE* GetFontFamilyCount)( - IDWriteFontCollection* This); - - HRESULT(STDMETHODCALLTYPE* GetFontFamily)( - IDWriteFontCollection* This, - UINT32 index, - IDWriteFontFamily** family); - - HRESULT(STDMETHODCALLTYPE* FindFamilyName)( - IDWriteFontCollection* This, - const WCHAR* name, - UINT32* index, - WINBOOL* exists); - - HRESULT(STDMETHODCALLTYPE* GetFontFromFontFace)( - IDWriteFontCollection* This, - IDWriteFontFace* face, - IDWriteFont** font); - - END_INTERFACE -} IDWriteFontCollectionVtbl; - -interface IDWriteFontCollection { - CONST_VTBL IDWriteFontCollectionVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontCollection_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontCollection_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontCollection_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontCollection methods ***/ -#define IDWriteFontCollection_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This) -#define IDWriteFontCollection_GetFontFamily(This, index, family) (This)->lpVtbl->GetFontFamily(This, index, family) -#define IDWriteFontCollection_FindFamilyName(This, name, index, exists) (This)->lpVtbl->FindFamilyName(This, name, index, exists) -#define IDWriteFontCollection_GetFontFromFontFace(This, face, font) (This)->lpVtbl->GetFontFromFontFace(This, face, font) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontCollection_QueryInterface(IDWriteFontCollection* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontCollection_AddRef(IDWriteFontCollection* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontCollection_Release(IDWriteFontCollection* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontCollection methods ***/ -static inline UINT32 IDWriteFontCollection_GetFontFamilyCount(IDWriteFontCollection* This) { - return This->lpVtbl->GetFontFamilyCount(This); -} -static inline HRESULT IDWriteFontCollection_GetFontFamily(IDWriteFontCollection* This, UINT32 index, IDWriteFontFamily** family) { - return This->lpVtbl->GetFontFamily(This, index, family); -} -static inline HRESULT IDWriteFontCollection_FindFamilyName(IDWriteFontCollection* This, const WCHAR* name, UINT32* index, WINBOOL* exists) { - return This->lpVtbl->FindFamilyName(This, name, index, exists); -} -static inline HRESULT IDWriteFontCollection_GetFontFromFontFace(IDWriteFontCollection* This, IDWriteFontFace* face, IDWriteFont** font) { - return This->lpVtbl->GetFontFromFontFace(This, face, font); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontCollection_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWritePixelSnapping interface - */ -#ifndef __IDWritePixelSnapping_INTERFACE_DEFINED__ -#define __IDWritePixelSnapping_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWritePixelSnapping, 0xeaf3a2da, 0xecf4, 0x4d24, 0xb6, 0x44, 0xb3, 0x4f, 0x68, 0x42, 0x02, 0x4b); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("eaf3a2da-ecf4-4d24-b644-b34f6842024b") -IDWritePixelSnapping : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE IsPixelSnappingDisabled( - void* client_drawingcontext, - WINBOOL* disabled) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentTransform( - void* client_drawingcontext, - DWRITE_MATRIX* transform) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPixelsPerDip( - void* client_drawingcontext, - FLOAT* pixels_per_dip) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWritePixelSnapping, 0xeaf3a2da, 0xecf4, 0x4d24, 0xb6, 0x44, 0xb3, 0x4f, 0x68, 0x42, 0x02, 0x4b) -#endif -#else -typedef struct IDWritePixelSnappingVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWritePixelSnapping* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWritePixelSnapping* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWritePixelSnapping* This); - - /*** IDWritePixelSnapping methods ***/ - HRESULT(STDMETHODCALLTYPE* IsPixelSnappingDisabled)( - IDWritePixelSnapping* This, - void* client_drawingcontext, - WINBOOL* disabled); - - HRESULT(STDMETHODCALLTYPE* GetCurrentTransform)( - IDWritePixelSnapping* This, - void* client_drawingcontext, - DWRITE_MATRIX* transform); - - HRESULT(STDMETHODCALLTYPE* GetPixelsPerDip)( - IDWritePixelSnapping* This, - void* client_drawingcontext, - FLOAT* pixels_per_dip); - - END_INTERFACE -} IDWritePixelSnappingVtbl; - -interface IDWritePixelSnapping { - CONST_VTBL IDWritePixelSnappingVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWritePixelSnapping_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWritePixelSnapping_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWritePixelSnapping_Release(This) (This)->lpVtbl->Release(This) -/*** IDWritePixelSnapping methods ***/ -#define IDWritePixelSnapping_IsPixelSnappingDisabled(This, client_drawingcontext, disabled) (This)->lpVtbl->IsPixelSnappingDisabled(This, client_drawingcontext, disabled) -#define IDWritePixelSnapping_GetCurrentTransform(This, client_drawingcontext, transform) (This)->lpVtbl->GetCurrentTransform(This, client_drawingcontext, transform) -#define IDWritePixelSnapping_GetPixelsPerDip(This, client_drawingcontext, pixels_per_dip) (This)->lpVtbl->GetPixelsPerDip(This, client_drawingcontext, pixels_per_dip) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWritePixelSnapping_QueryInterface(IDWritePixelSnapping* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWritePixelSnapping_AddRef(IDWritePixelSnapping* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWritePixelSnapping_Release(IDWritePixelSnapping* This) { - return This->lpVtbl->Release(This); -} -/*** IDWritePixelSnapping methods ***/ -static inline HRESULT IDWritePixelSnapping_IsPixelSnappingDisabled(IDWritePixelSnapping* This, void* client_drawingcontext, WINBOOL* disabled) { - return This->lpVtbl->IsPixelSnappingDisabled(This, client_drawingcontext, disabled); -} -static inline HRESULT IDWritePixelSnapping_GetCurrentTransform(IDWritePixelSnapping* This, void* client_drawingcontext, DWRITE_MATRIX* transform) { - return This->lpVtbl->GetCurrentTransform(This, client_drawingcontext, transform); -} -static inline HRESULT IDWritePixelSnapping_GetPixelsPerDip(IDWritePixelSnapping* This, void* client_drawingcontext, FLOAT* pixels_per_dip) { - return This->lpVtbl->GetPixelsPerDip(This, client_drawingcontext, pixels_per_dip); -} -#endif -#endif - -#endif - -#endif /* __IDWritePixelSnapping_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteTextRenderer interface - */ -#ifndef __IDWriteTextRenderer_INTERFACE_DEFINED__ -#define __IDWriteTextRenderer_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteTextRenderer, 0xef8a8135, 0x5cc6, 0x45fe, 0x88, 0x25, 0xc5, 0xa0, 0x72, 0x4e, 0xb8, 0x19); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("ef8a8135-5cc6-45fe-8825-c5a0724eb819") -IDWriteTextRenderer : public IDWritePixelSnapping { - virtual HRESULT STDMETHODCALLTYPE DrawGlyphRun( - void* client_drawingcontext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - DWRITE_MEASURING_MODE mode, - const DWRITE_GLYPH_RUN* glyph_run, - const DWRITE_GLYPH_RUN_DESCRIPTION* run_descr, - IUnknown* drawing_effect) = 0; - - virtual HRESULT STDMETHODCALLTYPE DrawUnderline( - void* client_drawingcontext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - const DWRITE_UNDERLINE* underline, - IUnknown* drawing_effect) = 0; - - virtual HRESULT STDMETHODCALLTYPE DrawStrikethrough( - void* client_drawingcontext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - const DWRITE_STRIKETHROUGH* strikethrough, - IUnknown* drawing_effect) = 0; - - virtual HRESULT STDMETHODCALLTYPE DrawInlineObject( - void* client_drawingcontext, - FLOAT originX, - FLOAT originY, - IDWriteInlineObject* object, - WINBOOL is_sideways, - WINBOOL is_rtl, - IUnknown* drawing_effect) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextRenderer, 0xef8a8135, 0x5cc6, 0x45fe, 0x88, 0x25, 0xc5, 0xa0, 0x72, 0x4e, 0xb8, 0x19) -#endif -#else -typedef struct IDWriteTextRendererVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteTextRenderer* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteTextRenderer* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteTextRenderer* This); - - /*** IDWritePixelSnapping methods ***/ - HRESULT(STDMETHODCALLTYPE* IsPixelSnappingDisabled)( - IDWriteTextRenderer* This, - void* client_drawingcontext, - WINBOOL* disabled); - - HRESULT(STDMETHODCALLTYPE* GetCurrentTransform)( - IDWriteTextRenderer* This, - void* client_drawingcontext, - DWRITE_MATRIX* transform); - - HRESULT(STDMETHODCALLTYPE* GetPixelsPerDip)( - IDWriteTextRenderer* This, - void* client_drawingcontext, - FLOAT* pixels_per_dip); - - /*** IDWriteTextRenderer methods ***/ - HRESULT(STDMETHODCALLTYPE* DrawGlyphRun)( - IDWriteTextRenderer* This, - void* client_drawingcontext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - DWRITE_MEASURING_MODE mode, - const DWRITE_GLYPH_RUN* glyph_run, - const DWRITE_GLYPH_RUN_DESCRIPTION* run_descr, - IUnknown* drawing_effect); - - HRESULT(STDMETHODCALLTYPE* DrawUnderline)( - IDWriteTextRenderer* This, - void* client_drawingcontext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - const DWRITE_UNDERLINE* underline, - IUnknown* drawing_effect); - - HRESULT(STDMETHODCALLTYPE* DrawStrikethrough)( - IDWriteTextRenderer* This, - void* client_drawingcontext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - const DWRITE_STRIKETHROUGH* strikethrough, - IUnknown* drawing_effect); - - HRESULT(STDMETHODCALLTYPE* DrawInlineObject)( - IDWriteTextRenderer* This, - void* client_drawingcontext, - FLOAT originX, - FLOAT originY, - IDWriteInlineObject* object, - WINBOOL is_sideways, - WINBOOL is_rtl, - IUnknown* drawing_effect); - - END_INTERFACE -} IDWriteTextRendererVtbl; - -interface IDWriteTextRenderer { - CONST_VTBL IDWriteTextRendererVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteTextRenderer_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteTextRenderer_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteTextRenderer_Release(This) (This)->lpVtbl->Release(This) -/*** IDWritePixelSnapping methods ***/ -#define IDWriteTextRenderer_IsPixelSnappingDisabled(This, client_drawingcontext, disabled) (This)->lpVtbl->IsPixelSnappingDisabled(This, client_drawingcontext, disabled) -#define IDWriteTextRenderer_GetCurrentTransform(This, client_drawingcontext, transform) (This)->lpVtbl->GetCurrentTransform(This, client_drawingcontext, transform) -#define IDWriteTextRenderer_GetPixelsPerDip(This, client_drawingcontext, pixels_per_dip) (This)->lpVtbl->GetPixelsPerDip(This, client_drawingcontext, pixels_per_dip) -/*** IDWriteTextRenderer methods ***/ -#define IDWriteTextRenderer_DrawGlyphRun(This, client_drawingcontext, baselineOriginX, baselineOriginY, mode, glyph_run, run_descr, drawing_effect) (This)->lpVtbl->DrawGlyphRun(This, client_drawingcontext, baselineOriginX, baselineOriginY, mode, glyph_run, run_descr, drawing_effect) -#define IDWriteTextRenderer_DrawUnderline(This, client_drawingcontext, baselineOriginX, baselineOriginY, underline, drawing_effect) (This)->lpVtbl->DrawUnderline(This, client_drawingcontext, baselineOriginX, baselineOriginY, underline, drawing_effect) -#define IDWriteTextRenderer_DrawStrikethrough(This, client_drawingcontext, baselineOriginX, baselineOriginY, strikethrough, drawing_effect) (This)->lpVtbl->DrawStrikethrough(This, client_drawingcontext, baselineOriginX, baselineOriginY, strikethrough, drawing_effect) -#define IDWriteTextRenderer_DrawInlineObject(This, client_drawingcontext, originX, originY, object, is_sideways, is_rtl, drawing_effect) (This)->lpVtbl->DrawInlineObject(This, client_drawingcontext, originX, originY, object, is_sideways, is_rtl, drawing_effect) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteTextRenderer_QueryInterface(IDWriteTextRenderer* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteTextRenderer_AddRef(IDWriteTextRenderer* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteTextRenderer_Release(IDWriteTextRenderer* This) { - return This->lpVtbl->Release(This); -} -/*** IDWritePixelSnapping methods ***/ -static inline HRESULT IDWriteTextRenderer_IsPixelSnappingDisabled(IDWriteTextRenderer* This, void* client_drawingcontext, WINBOOL* disabled) { - return This->lpVtbl->IsPixelSnappingDisabled(This, client_drawingcontext, disabled); -} -static inline HRESULT IDWriteTextRenderer_GetCurrentTransform(IDWriteTextRenderer* This, void* client_drawingcontext, DWRITE_MATRIX* transform) { - return This->lpVtbl->GetCurrentTransform(This, client_drawingcontext, transform); -} -static inline HRESULT IDWriteTextRenderer_GetPixelsPerDip(IDWriteTextRenderer* This, void* client_drawingcontext, FLOAT* pixels_per_dip) { - return This->lpVtbl->GetPixelsPerDip(This, client_drawingcontext, pixels_per_dip); -} -/*** IDWriteTextRenderer methods ***/ -static inline HRESULT IDWriteTextRenderer_DrawGlyphRun(IDWriteTextRenderer* This, void* client_drawingcontext, FLOAT baselineOriginX, FLOAT baselineOriginY, DWRITE_MEASURING_MODE mode, const DWRITE_GLYPH_RUN* glyph_run, const DWRITE_GLYPH_RUN_DESCRIPTION* run_descr, IUnknown* drawing_effect) { - return This->lpVtbl->DrawGlyphRun(This, client_drawingcontext, baselineOriginX, baselineOriginY, mode, glyph_run, run_descr, drawing_effect); -} -static inline HRESULT IDWriteTextRenderer_DrawUnderline(IDWriteTextRenderer* This, void* client_drawingcontext, FLOAT baselineOriginX, FLOAT baselineOriginY, const DWRITE_UNDERLINE* underline, IUnknown* drawing_effect) { - return This->lpVtbl->DrawUnderline(This, client_drawingcontext, baselineOriginX, baselineOriginY, underline, drawing_effect); -} -static inline HRESULT IDWriteTextRenderer_DrawStrikethrough(IDWriteTextRenderer* This, void* client_drawingcontext, FLOAT baselineOriginX, FLOAT baselineOriginY, const DWRITE_STRIKETHROUGH* strikethrough, IUnknown* drawing_effect) { - return This->lpVtbl->DrawStrikethrough(This, client_drawingcontext, baselineOriginX, baselineOriginY, strikethrough, drawing_effect); -} -static inline HRESULT IDWriteTextRenderer_DrawInlineObject(IDWriteTextRenderer* This, void* client_drawingcontext, FLOAT originX, FLOAT originY, IDWriteInlineObject* object, WINBOOL is_sideways, WINBOOL is_rtl, IUnknown* drawing_effect) { - return This->lpVtbl->DrawInlineObject(This, client_drawingcontext, originX, originY, object, is_sideways, is_rtl, drawing_effect); -} -#endif -#endif - -#endif - -#endif /* __IDWriteTextRenderer_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteInlineObject interface - */ -#ifndef __IDWriteInlineObject_INTERFACE_DEFINED__ -#define __IDWriteInlineObject_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteInlineObject, 0x8339fde3, 0x106f, 0x47ab, 0x83, 0x73, 0x1c, 0x62, 0x95, 0xeb, 0x10, 0xb3); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("8339fde3-106f-47ab-8373-1c6295eb10b3") -IDWriteInlineObject : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE Draw( - void* client_drawingontext, - IDWriteTextRenderer* renderer, - FLOAT originX, - FLOAT originY, - WINBOOL is_sideways, - WINBOOL is_rtl, - IUnknown* drawing_effect) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMetrics( - DWRITE_INLINE_OBJECT_METRICS * metrics) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetOverhangMetrics( - DWRITE_OVERHANG_METRICS * overhangs) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetBreakConditions( - DWRITE_BREAK_CONDITION * condition_before, - DWRITE_BREAK_CONDITION * condition_after) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteInlineObject, 0x8339fde3, 0x106f, 0x47ab, 0x83, 0x73, 0x1c, 0x62, 0x95, 0xeb, 0x10, 0xb3) -#endif -#else -typedef struct IDWriteInlineObjectVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteInlineObject* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteInlineObject* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteInlineObject* This); - - /*** IDWriteInlineObject methods ***/ - HRESULT(STDMETHODCALLTYPE* Draw)( - IDWriteInlineObject* This, - void* client_drawingontext, - IDWriteTextRenderer* renderer, - FLOAT originX, - FLOAT originY, - WINBOOL is_sideways, - WINBOOL is_rtl, - IUnknown* drawing_effect); - - HRESULT(STDMETHODCALLTYPE* GetMetrics)( - IDWriteInlineObject* This, - DWRITE_INLINE_OBJECT_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* GetOverhangMetrics)( - IDWriteInlineObject* This, - DWRITE_OVERHANG_METRICS* overhangs); - - HRESULT(STDMETHODCALLTYPE* GetBreakConditions)( - IDWriteInlineObject* This, - DWRITE_BREAK_CONDITION* condition_before, - DWRITE_BREAK_CONDITION* condition_after); - - END_INTERFACE -} IDWriteInlineObjectVtbl; - -interface IDWriteInlineObject { - CONST_VTBL IDWriteInlineObjectVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteInlineObject_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteInlineObject_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteInlineObject_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteInlineObject methods ***/ -#define IDWriteInlineObject_Draw(This, client_drawingontext, renderer, originX, originY, is_sideways, is_rtl, drawing_effect) (This)->lpVtbl->Draw(This, client_drawingontext, renderer, originX, originY, is_sideways, is_rtl, drawing_effect) -#define IDWriteInlineObject_GetMetrics(This, metrics) (This)->lpVtbl->GetMetrics(This, metrics) -#define IDWriteInlineObject_GetOverhangMetrics(This, overhangs) (This)->lpVtbl->GetOverhangMetrics(This, overhangs) -#define IDWriteInlineObject_GetBreakConditions(This, condition_before, condition_after) (This)->lpVtbl->GetBreakConditions(This, condition_before, condition_after) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteInlineObject_QueryInterface(IDWriteInlineObject* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteInlineObject_AddRef(IDWriteInlineObject* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteInlineObject_Release(IDWriteInlineObject* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteInlineObject methods ***/ -static inline HRESULT IDWriteInlineObject_Draw(IDWriteInlineObject* This, void* client_drawingontext, IDWriteTextRenderer* renderer, FLOAT originX, FLOAT originY, WINBOOL is_sideways, WINBOOL is_rtl, IUnknown* drawing_effect) { - return This->lpVtbl->Draw(This, client_drawingontext, renderer, originX, originY, is_sideways, is_rtl, drawing_effect); -} -static inline HRESULT IDWriteInlineObject_GetMetrics(IDWriteInlineObject* This, DWRITE_INLINE_OBJECT_METRICS* metrics) { - return This->lpVtbl->GetMetrics(This, metrics); -} -static inline HRESULT IDWriteInlineObject_GetOverhangMetrics(IDWriteInlineObject* This, DWRITE_OVERHANG_METRICS* overhangs) { - return This->lpVtbl->GetOverhangMetrics(This, overhangs); -} -static inline HRESULT IDWriteInlineObject_GetBreakConditions(IDWriteInlineObject* This, DWRITE_BREAK_CONDITION* condition_before, DWRITE_BREAK_CONDITION* condition_after) { - return This->lpVtbl->GetBreakConditions(This, condition_before, condition_after); -} -#endif -#endif - -#endif - -#endif /* __IDWriteInlineObject_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteTextFormat interface - */ -#ifndef __IDWriteTextFormat_INTERFACE_DEFINED__ -#define __IDWriteTextFormat_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteTextFormat, 0x9c906818, 0x31d7, 0x4fd3, 0xa1, 0x51, 0x7c, 0x5e, 0x22, 0x5d, 0xb5, 0x5a); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("9c906818-31d7-4fd3-a151-7c5e225db55a") -IDWriteTextFormat : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE SetTextAlignment( - DWRITE_TEXT_ALIGNMENT alignment) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetParagraphAlignment( - DWRITE_PARAGRAPH_ALIGNMENT alignment) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetWordWrapping( - DWRITE_WORD_WRAPPING wrapping) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetReadingDirection( - DWRITE_READING_DIRECTION direction) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFlowDirection( - DWRITE_FLOW_DIRECTION direction) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetIncrementalTabStop( - FLOAT tabstop) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetTrimming( - const DWRITE_TRIMMING* trimming, - IDWriteInlineObject* trimming_sign) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetLineSpacing( - DWRITE_LINE_SPACING_METHOD spacing, - FLOAT line_spacing, - FLOAT baseline) = 0; - - virtual DWRITE_TEXT_ALIGNMENT STDMETHODCALLTYPE GetTextAlignment() = 0; - - virtual DWRITE_PARAGRAPH_ALIGNMENT STDMETHODCALLTYPE GetParagraphAlignment() = 0; - - virtual DWRITE_WORD_WRAPPING STDMETHODCALLTYPE GetWordWrapping() = 0; - - virtual DWRITE_READING_DIRECTION STDMETHODCALLTYPE GetReadingDirection() = 0; - - virtual DWRITE_FLOW_DIRECTION STDMETHODCALLTYPE GetFlowDirection() = 0; - - virtual FLOAT STDMETHODCALLTYPE GetIncrementalTabStop() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTrimming( - DWRITE_TRIMMING * options, - IDWriteInlineObject * *trimming_sign) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLineSpacing( - DWRITE_LINE_SPACING_METHOD * method, - FLOAT * spacing, - FLOAT * baseline) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontCollection( - IDWriteFontCollection * *collection) = 0; - - virtual UINT32 STDMETHODCALLTYPE GetFontFamilyNameLength() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontFamilyName( - WCHAR * name, - UINT32 size) = 0; - - virtual DWRITE_FONT_WEIGHT STDMETHODCALLTYPE GetFontWeight() = 0; - - virtual DWRITE_FONT_STYLE STDMETHODCALLTYPE GetFontStyle() = 0; - - virtual DWRITE_FONT_STRETCH STDMETHODCALLTYPE GetFontStretch() = 0; - - virtual FLOAT STDMETHODCALLTYPE GetFontSize() = 0; - - virtual UINT32 STDMETHODCALLTYPE GetLocaleNameLength() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocaleName( - WCHAR * name, - UINT32 size) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextFormat, 0x9c906818, 0x31d7, 0x4fd3, 0xa1, 0x51, 0x7c, 0x5e, 0x22, 0x5d, 0xb5, 0x5a) -#endif -#else -typedef struct IDWriteTextFormatVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteTextFormat* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteTextFormat* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteTextFormat* This); - - /*** IDWriteTextFormat methods ***/ - HRESULT(STDMETHODCALLTYPE* SetTextAlignment)( - IDWriteTextFormat* This, - DWRITE_TEXT_ALIGNMENT alignment); - - HRESULT(STDMETHODCALLTYPE* SetParagraphAlignment)( - IDWriteTextFormat* This, - DWRITE_PARAGRAPH_ALIGNMENT alignment); - - HRESULT(STDMETHODCALLTYPE* SetWordWrapping)( - IDWriteTextFormat* This, - DWRITE_WORD_WRAPPING wrapping); - - HRESULT(STDMETHODCALLTYPE* SetReadingDirection)( - IDWriteTextFormat* This, - DWRITE_READING_DIRECTION direction); - - HRESULT(STDMETHODCALLTYPE* SetFlowDirection)( - IDWriteTextFormat* This, - DWRITE_FLOW_DIRECTION direction); - - HRESULT(STDMETHODCALLTYPE* SetIncrementalTabStop)( - IDWriteTextFormat* This, - FLOAT tabstop); - - HRESULT(STDMETHODCALLTYPE* SetTrimming)( - IDWriteTextFormat* This, - const DWRITE_TRIMMING* trimming, - IDWriteInlineObject* trimming_sign); - - HRESULT(STDMETHODCALLTYPE* SetLineSpacing)( - IDWriteTextFormat* This, - DWRITE_LINE_SPACING_METHOD spacing, - FLOAT line_spacing, - FLOAT baseline); - - DWRITE_TEXT_ALIGNMENT(STDMETHODCALLTYPE* GetTextAlignment)( - IDWriteTextFormat* This); - - DWRITE_PARAGRAPH_ALIGNMENT(STDMETHODCALLTYPE* GetParagraphAlignment)( - IDWriteTextFormat* This); - - DWRITE_WORD_WRAPPING(STDMETHODCALLTYPE* GetWordWrapping)( - IDWriteTextFormat* This); - - DWRITE_READING_DIRECTION(STDMETHODCALLTYPE* GetReadingDirection)( - IDWriteTextFormat* This); - - DWRITE_FLOW_DIRECTION(STDMETHODCALLTYPE* GetFlowDirection)( - IDWriteTextFormat* This); - - FLOAT(STDMETHODCALLTYPE* GetIncrementalTabStop)( - IDWriteTextFormat* This); - - HRESULT(STDMETHODCALLTYPE* GetTrimming)( - IDWriteTextFormat* This, - DWRITE_TRIMMING* options, - IDWriteInlineObject** trimming_sign); - - HRESULT(STDMETHODCALLTYPE* GetLineSpacing)( - IDWriteTextFormat* This, - DWRITE_LINE_SPACING_METHOD* method, - FLOAT* spacing, - FLOAT* baseline); - - HRESULT(STDMETHODCALLTYPE* GetFontCollection)( - IDWriteTextFormat* This, - IDWriteFontCollection** collection); - - UINT32(STDMETHODCALLTYPE* GetFontFamilyNameLength)( - IDWriteTextFormat* This); - - HRESULT(STDMETHODCALLTYPE* GetFontFamilyName)( - IDWriteTextFormat* This, - WCHAR* name, - UINT32 size); - - DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetFontWeight)( - IDWriteTextFormat* This); - - DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetFontStyle)( - IDWriteTextFormat* This); - - DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetFontStretch)( - IDWriteTextFormat* This); - - FLOAT(STDMETHODCALLTYPE* GetFontSize)( - IDWriteTextFormat* This); - - UINT32(STDMETHODCALLTYPE* GetLocaleNameLength)( - IDWriteTextFormat* This); - - HRESULT(STDMETHODCALLTYPE* GetLocaleName)( - IDWriteTextFormat* This, - WCHAR* name, - UINT32 size); - - END_INTERFACE -} IDWriteTextFormatVtbl; - -interface IDWriteTextFormat { - CONST_VTBL IDWriteTextFormatVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteTextFormat_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteTextFormat_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteTextFormat_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteTextFormat methods ***/ -#define IDWriteTextFormat_SetTextAlignment(This, alignment) (This)->lpVtbl->SetTextAlignment(This, alignment) -#define IDWriteTextFormat_SetParagraphAlignment(This, alignment) (This)->lpVtbl->SetParagraphAlignment(This, alignment) -#define IDWriteTextFormat_SetWordWrapping(This, wrapping) (This)->lpVtbl->SetWordWrapping(This, wrapping) -#define IDWriteTextFormat_SetReadingDirection(This, direction) (This)->lpVtbl->SetReadingDirection(This, direction) -#define IDWriteTextFormat_SetFlowDirection(This, direction) (This)->lpVtbl->SetFlowDirection(This, direction) -#define IDWriteTextFormat_SetIncrementalTabStop(This, tabstop) (This)->lpVtbl->SetIncrementalTabStop(This, tabstop) -#define IDWriteTextFormat_SetTrimming(This, trimming, trimming_sign) (This)->lpVtbl->SetTrimming(This, trimming, trimming_sign) -#define IDWriteTextFormat_SetLineSpacing(This, spacing, line_spacing, baseline) (This)->lpVtbl->SetLineSpacing(This, spacing, line_spacing, baseline) -#define IDWriteTextFormat_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) -#define IDWriteTextFormat_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) -#define IDWriteTextFormat_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) -#define IDWriteTextFormat_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) -#define IDWriteTextFormat_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) -#define IDWriteTextFormat_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) -#define IDWriteTextFormat_GetTrimming(This, options, trimming_sign) (This)->lpVtbl->GetTrimming(This, options, trimming_sign) -#define IDWriteTextFormat_GetLineSpacing(This, method, spacing, baseline) (This)->lpVtbl->GetLineSpacing(This, method, spacing, baseline) -#define IDWriteTextFormat_GetFontCollection(This, collection) (This)->lpVtbl->GetFontCollection(This, collection) -#define IDWriteTextFormat_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This) -#define IDWriteTextFormat_GetFontFamilyName(This, name, size) (This)->lpVtbl->GetFontFamilyName(This, name, size) -#define IDWriteTextFormat_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This) -#define IDWriteTextFormat_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This) -#define IDWriteTextFormat_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This) -#define IDWriteTextFormat_GetFontSize(This) (This)->lpVtbl->GetFontSize(This) -#define IDWriteTextFormat_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This) -#define IDWriteTextFormat_GetLocaleName(This, name, size) (This)->lpVtbl->GetLocaleName(This, name, size) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteTextFormat_QueryInterface(IDWriteTextFormat* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteTextFormat_AddRef(IDWriteTextFormat* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteTextFormat_Release(IDWriteTextFormat* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteTextFormat methods ***/ -static inline HRESULT IDWriteTextFormat_SetTextAlignment(IDWriteTextFormat* This, DWRITE_TEXT_ALIGNMENT alignment) { - return This->lpVtbl->SetTextAlignment(This, alignment); -} -static inline HRESULT IDWriteTextFormat_SetParagraphAlignment(IDWriteTextFormat* This, DWRITE_PARAGRAPH_ALIGNMENT alignment) { - return This->lpVtbl->SetParagraphAlignment(This, alignment); -} -static inline HRESULT IDWriteTextFormat_SetWordWrapping(IDWriteTextFormat* This, DWRITE_WORD_WRAPPING wrapping) { - return This->lpVtbl->SetWordWrapping(This, wrapping); -} -static inline HRESULT IDWriteTextFormat_SetReadingDirection(IDWriteTextFormat* This, DWRITE_READING_DIRECTION direction) { - return This->lpVtbl->SetReadingDirection(This, direction); -} -static inline HRESULT IDWriteTextFormat_SetFlowDirection(IDWriteTextFormat* This, DWRITE_FLOW_DIRECTION direction) { - return This->lpVtbl->SetFlowDirection(This, direction); -} -static inline HRESULT IDWriteTextFormat_SetIncrementalTabStop(IDWriteTextFormat* This, FLOAT tabstop) { - return This->lpVtbl->SetIncrementalTabStop(This, tabstop); -} -static inline HRESULT IDWriteTextFormat_SetTrimming(IDWriteTextFormat* This, const DWRITE_TRIMMING* trimming, IDWriteInlineObject* trimming_sign) { - return This->lpVtbl->SetTrimming(This, trimming, trimming_sign); -} -static inline HRESULT IDWriteTextFormat_SetLineSpacing(IDWriteTextFormat* This, DWRITE_LINE_SPACING_METHOD spacing, FLOAT line_spacing, FLOAT baseline) { - return This->lpVtbl->SetLineSpacing(This, spacing, line_spacing, baseline); -} -static inline DWRITE_TEXT_ALIGNMENT IDWriteTextFormat_GetTextAlignment(IDWriteTextFormat* This) { - return This->lpVtbl->GetTextAlignment(This); -} -static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat_GetParagraphAlignment(IDWriteTextFormat* This) { - return This->lpVtbl->GetParagraphAlignment(This); -} -static inline DWRITE_WORD_WRAPPING IDWriteTextFormat_GetWordWrapping(IDWriteTextFormat* This) { - return This->lpVtbl->GetWordWrapping(This); -} -static inline DWRITE_READING_DIRECTION IDWriteTextFormat_GetReadingDirection(IDWriteTextFormat* This) { - return This->lpVtbl->GetReadingDirection(This); -} -static inline DWRITE_FLOW_DIRECTION IDWriteTextFormat_GetFlowDirection(IDWriteTextFormat* This) { - return This->lpVtbl->GetFlowDirection(This); -} -static inline FLOAT IDWriteTextFormat_GetIncrementalTabStop(IDWriteTextFormat* This) { - return This->lpVtbl->GetIncrementalTabStop(This); -} -static inline HRESULT IDWriteTextFormat_GetTrimming(IDWriteTextFormat* This, DWRITE_TRIMMING* options, IDWriteInlineObject** trimming_sign) { - return This->lpVtbl->GetTrimming(This, options, trimming_sign); -} -static inline HRESULT IDWriteTextFormat_GetLineSpacing(IDWriteTextFormat* This, DWRITE_LINE_SPACING_METHOD* method, FLOAT* spacing, FLOAT* baseline) { - return This->lpVtbl->GetLineSpacing(This, method, spacing, baseline); -} -static inline HRESULT IDWriteTextFormat_GetFontCollection(IDWriteTextFormat* This, IDWriteFontCollection** collection) { - return This->lpVtbl->GetFontCollection(This, collection); -} -static inline UINT32 IDWriteTextFormat_GetFontFamilyNameLength(IDWriteTextFormat* This) { - return This->lpVtbl->GetFontFamilyNameLength(This); -} -static inline HRESULT IDWriteTextFormat_GetFontFamilyName(IDWriteTextFormat* This, WCHAR* name, UINT32 size) { - return This->lpVtbl->GetFontFamilyName(This, name, size); -} -static inline DWRITE_FONT_WEIGHT IDWriteTextFormat_GetFontWeight(IDWriteTextFormat* This) { - return This->lpVtbl->GetFontWeight(This); -} -static inline DWRITE_FONT_STYLE IDWriteTextFormat_GetFontStyle(IDWriteTextFormat* This) { - return This->lpVtbl->GetFontStyle(This); -} -static inline DWRITE_FONT_STRETCH IDWriteTextFormat_GetFontStretch(IDWriteTextFormat* This) { - return This->lpVtbl->GetFontStretch(This); -} -static inline FLOAT IDWriteTextFormat_GetFontSize(IDWriteTextFormat* This) { - return This->lpVtbl->GetFontSize(This); -} -static inline UINT32 IDWriteTextFormat_GetLocaleNameLength(IDWriteTextFormat* This) { - return This->lpVtbl->GetLocaleNameLength(This); -} -static inline HRESULT IDWriteTextFormat_GetLocaleName(IDWriteTextFormat* This, WCHAR* name, UINT32 size) { - return This->lpVtbl->GetLocaleName(This, name, size); -} -#endif -#endif - -#endif - -#endif /* __IDWriteTextFormat_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteTypography interface - */ -#ifndef __IDWriteTypography_INTERFACE_DEFINED__ -#define __IDWriteTypography_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteTypography, 0x55f1112b, 0x1dc2, 0x4b3c, 0x95, 0x41, 0xf4, 0x68, 0x94, 0xed, 0x85, 0xb6); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("55f1112b-1dc2-4b3c-9541-f46894ed85b6") -IDWriteTypography : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE AddFontFeature( - DWRITE_FONT_FEATURE feature) = 0; - - virtual UINT32 STDMETHODCALLTYPE GetFontFeatureCount() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontFeature( - UINT32 index, - DWRITE_FONT_FEATURE * feature) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTypography, 0x55f1112b, 0x1dc2, 0x4b3c, 0x95, 0x41, 0xf4, 0x68, 0x94, 0xed, 0x85, 0xb6) -#endif -#else -typedef struct IDWriteTypographyVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteTypography* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteTypography* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteTypography* This); - - /*** IDWriteTypography methods ***/ - HRESULT(STDMETHODCALLTYPE* AddFontFeature)( - IDWriteTypography* This, - DWRITE_FONT_FEATURE feature); - - UINT32(STDMETHODCALLTYPE* GetFontFeatureCount)( - IDWriteTypography* This); - - HRESULT(STDMETHODCALLTYPE* GetFontFeature)( - IDWriteTypography* This, - UINT32 index, - DWRITE_FONT_FEATURE* feature); - - END_INTERFACE -} IDWriteTypographyVtbl; - -interface IDWriteTypography { - CONST_VTBL IDWriteTypographyVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteTypography_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteTypography_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteTypography_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteTypography methods ***/ -#define IDWriteTypography_AddFontFeature(This, feature) (This)->lpVtbl->AddFontFeature(This, feature) -#define IDWriteTypography_GetFontFeatureCount(This) (This)->lpVtbl->GetFontFeatureCount(This) -#define IDWriteTypography_GetFontFeature(This, index, feature) (This)->lpVtbl->GetFontFeature(This, index, feature) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteTypography_QueryInterface(IDWriteTypography* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteTypography_AddRef(IDWriteTypography* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteTypography_Release(IDWriteTypography* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteTypography methods ***/ -static inline HRESULT IDWriteTypography_AddFontFeature(IDWriteTypography* This, DWRITE_FONT_FEATURE feature) { - return This->lpVtbl->AddFontFeature(This, feature); -} -static inline UINT32 IDWriteTypography_GetFontFeatureCount(IDWriteTypography* This) { - return This->lpVtbl->GetFontFeatureCount(This); -} -static inline HRESULT IDWriteTypography_GetFontFeature(IDWriteTypography* This, UINT32 index, DWRITE_FONT_FEATURE* feature) { - return This->lpVtbl->GetFontFeature(This, index, feature); -} -#endif -#endif - -#endif - -#endif /* __IDWriteTypography_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteBitmapRenderTarget interface - */ -#ifndef __IDWriteBitmapRenderTarget_INTERFACE_DEFINED__ -#define __IDWriteBitmapRenderTarget_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteBitmapRenderTarget, 0x5e5a32a3, 0x8dff, 0x4773, 0x9f, 0xf6, 0x06, 0x96, 0xea, 0xb7, 0x72, 0x67); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("5e5a32a3-8dff-4773-9ff6-0696eab77267") -IDWriteBitmapRenderTarget : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE DrawGlyphRun( - FLOAT baselineOriginX, - FLOAT baselineOriginY, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_GLYPH_RUN* glyph_run, - IDWriteRenderingParams* params, - COLORREF textColor, - RECT* blackbox_rect = 0) = 0; - - virtual HDC STDMETHODCALLTYPE GetMemoryDC() = 0; - - virtual FLOAT STDMETHODCALLTYPE GetPixelsPerDip() = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPixelsPerDip( - FLOAT pixels_per_dip) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentTransform( - DWRITE_MATRIX * transform) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetCurrentTransform( - const DWRITE_MATRIX* transform) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( - SIZE * size) = 0; - - virtual HRESULT STDMETHODCALLTYPE Resize( - UINT32 width, - UINT32 height) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteBitmapRenderTarget, 0x5e5a32a3, 0x8dff, 0x4773, 0x9f, 0xf6, 0x06, 0x96, 0xea, 0xb7, 0x72, 0x67) -#endif -#else -typedef struct IDWriteBitmapRenderTargetVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteBitmapRenderTarget* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteBitmapRenderTarget* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteBitmapRenderTarget* This); - - /*** IDWriteBitmapRenderTarget methods ***/ - HRESULT(STDMETHODCALLTYPE* DrawGlyphRun)( - IDWriteBitmapRenderTarget* This, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_GLYPH_RUN* glyph_run, - IDWriteRenderingParams* params, - COLORREF textColor, - RECT* blackbox_rect); - - HDC(STDMETHODCALLTYPE* GetMemoryDC)( - IDWriteBitmapRenderTarget* This); - - FLOAT(STDMETHODCALLTYPE* GetPixelsPerDip)( - IDWriteBitmapRenderTarget* This); - - HRESULT(STDMETHODCALLTYPE* SetPixelsPerDip)( - IDWriteBitmapRenderTarget* This, - FLOAT pixels_per_dip); - - HRESULT(STDMETHODCALLTYPE* GetCurrentTransform)( - IDWriteBitmapRenderTarget* This, - DWRITE_MATRIX* transform); - - HRESULT(STDMETHODCALLTYPE* SetCurrentTransform)( - IDWriteBitmapRenderTarget* This, - const DWRITE_MATRIX* transform); - - HRESULT(STDMETHODCALLTYPE* GetSize)( - IDWriteBitmapRenderTarget* This, - SIZE* size); - - HRESULT(STDMETHODCALLTYPE* Resize)( - IDWriteBitmapRenderTarget* This, - UINT32 width, - UINT32 height); - - END_INTERFACE -} IDWriteBitmapRenderTargetVtbl; - -interface IDWriteBitmapRenderTarget { - CONST_VTBL IDWriteBitmapRenderTargetVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteBitmapRenderTarget_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteBitmapRenderTarget_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteBitmapRenderTarget_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteBitmapRenderTarget methods ***/ -#define IDWriteBitmapRenderTarget_DrawGlyphRun(This, baselineOriginX, baselineOriginY, measuring_mode, glyph_run, params, textColor, blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This, baselineOriginX, baselineOriginY, measuring_mode, glyph_run, params, textColor, blackbox_rect) -#define IDWriteBitmapRenderTarget_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This) -#define IDWriteBitmapRenderTarget_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This) -#define IDWriteBitmapRenderTarget_SetPixelsPerDip(This, pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This, pixels_per_dip) -#define IDWriteBitmapRenderTarget_GetCurrentTransform(This, transform) (This)->lpVtbl->GetCurrentTransform(This, transform) -#define IDWriteBitmapRenderTarget_SetCurrentTransform(This, transform) (This)->lpVtbl->SetCurrentTransform(This, transform) -#define IDWriteBitmapRenderTarget_GetSize(This, size) (This)->lpVtbl->GetSize(This, size) -#define IDWriteBitmapRenderTarget_Resize(This, width, height) (This)->lpVtbl->Resize(This, width, height) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteBitmapRenderTarget_QueryInterface(IDWriteBitmapRenderTarget* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteBitmapRenderTarget_AddRef(IDWriteBitmapRenderTarget* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteBitmapRenderTarget_Release(IDWriteBitmapRenderTarget* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteBitmapRenderTarget methods ***/ -static inline HRESULT IDWriteBitmapRenderTarget_DrawGlyphRun(IDWriteBitmapRenderTarget* This, FLOAT baselineOriginX, FLOAT baselineOriginY, DWRITE_MEASURING_MODE measuring_mode, const DWRITE_GLYPH_RUN* glyph_run, IDWriteRenderingParams* params, COLORREF textColor, RECT* blackbox_rect) { - return This->lpVtbl->DrawGlyphRun(This, baselineOriginX, baselineOriginY, measuring_mode, glyph_run, params, textColor, blackbox_rect); -} -static inline HDC IDWriteBitmapRenderTarget_GetMemoryDC(IDWriteBitmapRenderTarget* This) { - return This->lpVtbl->GetMemoryDC(This); -} -static inline FLOAT IDWriteBitmapRenderTarget_GetPixelsPerDip(IDWriteBitmapRenderTarget* This) { - return This->lpVtbl->GetPixelsPerDip(This); -} -static inline HRESULT IDWriteBitmapRenderTarget_SetPixelsPerDip(IDWriteBitmapRenderTarget* This, FLOAT pixels_per_dip) { - return This->lpVtbl->SetPixelsPerDip(This, pixels_per_dip); -} -static inline HRESULT IDWriteBitmapRenderTarget_GetCurrentTransform(IDWriteBitmapRenderTarget* This, DWRITE_MATRIX* transform) { - return This->lpVtbl->GetCurrentTransform(This, transform); -} -static inline HRESULT IDWriteBitmapRenderTarget_SetCurrentTransform(IDWriteBitmapRenderTarget* This, const DWRITE_MATRIX* transform) { - return This->lpVtbl->SetCurrentTransform(This, transform); -} -static inline HRESULT IDWriteBitmapRenderTarget_GetSize(IDWriteBitmapRenderTarget* This, SIZE* size) { - return This->lpVtbl->GetSize(This, size); -} -static inline HRESULT IDWriteBitmapRenderTarget_Resize(IDWriteBitmapRenderTarget* This, UINT32 width, UINT32 height) { - return This->lpVtbl->Resize(This, width, height); -} -#endif -#endif - -#endif - -#endif /* __IDWriteBitmapRenderTarget_INTERFACE_DEFINED__ */ - -#ifndef _WINGDI_ -typedef struct tagLOGFONTW { - LONG lfHeight; - LONG lfWidth; - LONG lfEscapement; - LONG lfOrientation; - LONG lfWeight; - BYTE lfItalic; - BYTE lfUnderline; - BYTE lfStrikeOut; - BYTE lfCharSet; - BYTE lfOutPrecision; - BYTE lfClipPrecision; - BYTE lfQuality; - BYTE lfPitchAndFamily; - WCHAR lfFaceName[32]; -} LOGFONTW; -typedef struct tagLOGFONTW* PLOGFONTW; -typedef struct tagLOGFONTW* LPLOGFONTW; -#endif /* _WINGDI_ */ -/***************************************************************************** - * IDWriteGdiInterop interface - */ -#ifndef __IDWriteGdiInterop_INTERFACE_DEFINED__ -#define __IDWriteGdiInterop_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteGdiInterop, 0x1edd9491, 0x9853, 0x4299, 0x89, 0x8f, 0x64, 0x32, 0x98, 0x3b, 0x6f, 0x3a); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("1edd9491-9853-4299-898f-6432983b6f3a") -IDWriteGdiInterop : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE CreateFontFromLOGFONT( - const LOGFONTW* logfont, - IDWriteFont** font) = 0; - - virtual HRESULT STDMETHODCALLTYPE ConvertFontToLOGFONT( - IDWriteFont * font, - LOGFONTW * logfont, - WINBOOL * is_systemfont) = 0; - - virtual HRESULT STDMETHODCALLTYPE ConvertFontFaceToLOGFONT( - IDWriteFontFace * font, - LOGFONTW * logfont) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontFaceFromHdc( - HDC hdc, - IDWriteFontFace * *fontface) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateBitmapRenderTarget( - HDC hdc, - UINT32 width, - UINT32 height, - IDWriteBitmapRenderTarget * *target) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteGdiInterop, 0x1edd9491, 0x9853, 0x4299, 0x89, 0x8f, 0x64, 0x32, 0x98, 0x3b, 0x6f, 0x3a) -#endif -#else -typedef struct IDWriteGdiInteropVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteGdiInterop* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteGdiInterop* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteGdiInterop* This); - - /*** IDWriteGdiInterop methods ***/ - HRESULT(STDMETHODCALLTYPE* CreateFontFromLOGFONT)( - IDWriteGdiInterop* This, - const LOGFONTW* logfont, - IDWriteFont** font); - - HRESULT(STDMETHODCALLTYPE* ConvertFontToLOGFONT)( - IDWriteGdiInterop* This, - IDWriteFont* font, - LOGFONTW* logfont, - WINBOOL* is_systemfont); - - HRESULT(STDMETHODCALLTYPE* ConvertFontFaceToLOGFONT)( - IDWriteGdiInterop* This, - IDWriteFontFace* font, - LOGFONTW* logfont); - - HRESULT(STDMETHODCALLTYPE* CreateFontFaceFromHdc)( - IDWriteGdiInterop* This, - HDC hdc, - IDWriteFontFace** fontface); - - HRESULT(STDMETHODCALLTYPE* CreateBitmapRenderTarget)( - IDWriteGdiInterop* This, - HDC hdc, - UINT32 width, - UINT32 height, - IDWriteBitmapRenderTarget** target); - - END_INTERFACE -} IDWriteGdiInteropVtbl; - -interface IDWriteGdiInterop { - CONST_VTBL IDWriteGdiInteropVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteGdiInterop_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteGdiInterop_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteGdiInterop_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteGdiInterop methods ***/ -#define IDWriteGdiInterop_CreateFontFromLOGFONT(This, logfont, font) (This)->lpVtbl->CreateFontFromLOGFONT(This, logfont, font) -#define IDWriteGdiInterop_ConvertFontToLOGFONT(This, font, logfont, is_systemfont) (This)->lpVtbl->ConvertFontToLOGFONT(This, font, logfont, is_systemfont) -#define IDWriteGdiInterop_ConvertFontFaceToLOGFONT(This, font, logfont) (This)->lpVtbl->ConvertFontFaceToLOGFONT(This, font, logfont) -#define IDWriteGdiInterop_CreateFontFaceFromHdc(This, hdc, fontface) (This)->lpVtbl->CreateFontFaceFromHdc(This, hdc, fontface) -#define IDWriteGdiInterop_CreateBitmapRenderTarget(This, hdc, width, height, target) (This)->lpVtbl->CreateBitmapRenderTarget(This, hdc, width, height, target) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteGdiInterop_QueryInterface(IDWriteGdiInterop* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteGdiInterop_AddRef(IDWriteGdiInterop* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteGdiInterop_Release(IDWriteGdiInterop* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteGdiInterop methods ***/ -static inline HRESULT IDWriteGdiInterop_CreateFontFromLOGFONT(IDWriteGdiInterop* This, const LOGFONTW* logfont, IDWriteFont** font) { - return This->lpVtbl->CreateFontFromLOGFONT(This, logfont, font); -} -static inline HRESULT IDWriteGdiInterop_ConvertFontToLOGFONT(IDWriteGdiInterop* This, IDWriteFont* font, LOGFONTW* logfont, WINBOOL* is_systemfont) { - return This->lpVtbl->ConvertFontToLOGFONT(This, font, logfont, is_systemfont); -} -static inline HRESULT IDWriteGdiInterop_ConvertFontFaceToLOGFONT(IDWriteGdiInterop* This, IDWriteFontFace* font, LOGFONTW* logfont) { - return This->lpVtbl->ConvertFontFaceToLOGFONT(This, font, logfont); -} -static inline HRESULT IDWriteGdiInterop_CreateFontFaceFromHdc(IDWriteGdiInterop* This, HDC hdc, IDWriteFontFace** fontface) { - return This->lpVtbl->CreateFontFaceFromHdc(This, hdc, fontface); -} -static inline HRESULT IDWriteGdiInterop_CreateBitmapRenderTarget(IDWriteGdiInterop* This, HDC hdc, UINT32 width, UINT32 height, IDWriteBitmapRenderTarget** target) { - return This->lpVtbl->CreateBitmapRenderTarget(This, hdc, width, height, target); -} -#endif -#endif - -#endif - -#endif /* __IDWriteGdiInterop_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteTextLayout interface - */ -#ifndef __IDWriteTextLayout_INTERFACE_DEFINED__ -#define __IDWriteTextLayout_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteTextLayout, 0x53737037, 0x6d14, 0x410b, 0x9b, 0xfe, 0x0b, 0x18, 0x2b, 0xb7, 0x09, 0x61); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("53737037-6d14-410b-9bfe-0b182bb70961") -IDWriteTextLayout : public IDWriteTextFormat { - virtual HRESULT STDMETHODCALLTYPE SetMaxWidth( - FLOAT maxWidth) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetMaxHeight( - FLOAT maxHeight) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFontCollection( - IDWriteFontCollection * collection, - DWRITE_TEXT_RANGE range) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFontFamilyName( - const WCHAR* name, - DWRITE_TEXT_RANGE range) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFontWeight( - DWRITE_FONT_WEIGHT weight, - DWRITE_TEXT_RANGE range) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFontStyle( - DWRITE_FONT_STYLE style, - DWRITE_TEXT_RANGE range) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFontStretch( - DWRITE_FONT_STRETCH stretch, - DWRITE_TEXT_RANGE range) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFontSize( - FLOAT size, - DWRITE_TEXT_RANGE range) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetUnderline( - WINBOOL underline, - DWRITE_TEXT_RANGE range) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetStrikethrough( - WINBOOL strikethrough, - DWRITE_TEXT_RANGE range) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetDrawingEffect( - IUnknown * effect, - DWRITE_TEXT_RANGE range) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetInlineObject( - IDWriteInlineObject * object, - DWRITE_TEXT_RANGE range) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetTypography( - IDWriteTypography * typography, - DWRITE_TEXT_RANGE range) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetLocaleName( - const WCHAR* locale, - DWRITE_TEXT_RANGE range) = 0; - - virtual FLOAT STDMETHODCALLTYPE GetMaxWidth() = 0; - - virtual FLOAT STDMETHODCALLTYPE GetMaxHeight() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontCollection( - UINT32 pos, - IDWriteFontCollection * *collection, - DWRITE_TEXT_RANGE* range = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontFamilyNameLength( - UINT32 pos, - UINT32 * len, - DWRITE_TEXT_RANGE* range = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontFamilyName( - UINT32 position, - WCHAR * name, - UINT32 name_size, - DWRITE_TEXT_RANGE* range = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontWeight( - UINT32 position, - DWRITE_FONT_WEIGHT * weight, - DWRITE_TEXT_RANGE* range = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontStyle( - UINT32 currentPosition, - DWRITE_FONT_STYLE * style, - DWRITE_TEXT_RANGE* range = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontStretch( - UINT32 position, - DWRITE_FONT_STRETCH * stretch, - DWRITE_TEXT_RANGE* range = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontSize( - UINT32 position, - FLOAT * size, - DWRITE_TEXT_RANGE* range = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetUnderline( - UINT32 position, - WINBOOL * has_underline, - DWRITE_TEXT_RANGE* range = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStrikethrough( - UINT32 position, - WINBOOL * has_strikethrough, - DWRITE_TEXT_RANGE* range = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDrawingEffect( - UINT32 position, - IUnknown * *effect, - DWRITE_TEXT_RANGE* range = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetInlineObject( - UINT32 position, - IDWriteInlineObject * *object, - DWRITE_TEXT_RANGE* range = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypography( - UINT32 position, - IDWriteTypography * *typography, - DWRITE_TEXT_RANGE* range = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocaleNameLength( - UINT32 position, - UINT32 * length, - DWRITE_TEXT_RANGE* range = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocaleName( - UINT32 position, - WCHAR * name, - UINT32 name_size, - DWRITE_TEXT_RANGE* range = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE Draw( - void* context, - IDWriteTextRenderer* renderer, - FLOAT originX, - FLOAT originY) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLineMetrics( - DWRITE_LINE_METRICS * metrics, - UINT32 max_count, - UINT32 * actual_count) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMetrics( - DWRITE_TEXT_METRICS * metrics) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetOverhangMetrics( - DWRITE_OVERHANG_METRICS * overhangs) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetClusterMetrics( - DWRITE_CLUSTER_METRICS * metrics, - UINT32 max_count, - UINT32 * act_count) = 0; - - virtual HRESULT STDMETHODCALLTYPE DetermineMinWidth( - FLOAT * min_width) = 0; - - virtual HRESULT STDMETHODCALLTYPE HitTestPoint( - FLOAT pointX, - FLOAT pointY, - WINBOOL * is_trailinghit, - WINBOOL * is_inside, - DWRITE_HIT_TEST_METRICS * metrics) = 0; - - virtual HRESULT STDMETHODCALLTYPE HitTestTextPosition( - UINT32 textPosition, - WINBOOL is_trailinghit, - FLOAT * pointX, - FLOAT * pointY, - DWRITE_HIT_TEST_METRICS * metrics) = 0; - - virtual HRESULT STDMETHODCALLTYPE HitTestTextRange( - UINT32 textPosition, - UINT32 textLength, - FLOAT originX, - FLOAT originY, - DWRITE_HIT_TEST_METRICS * metrics, - UINT32 max_metricscount, - UINT32 * actual_metricscount) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextLayout, 0x53737037, 0x6d14, 0x410b, 0x9b, 0xfe, 0x0b, 0x18, 0x2b, 0xb7, 0x09, 0x61) -#endif -#else -typedef struct IDWriteTextLayoutVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteTextLayout* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteTextLayout* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteTextLayout* This); - - /*** IDWriteTextFormat methods ***/ - HRESULT(STDMETHODCALLTYPE* SetTextAlignment)( - IDWriteTextLayout* This, - DWRITE_TEXT_ALIGNMENT alignment); - - HRESULT(STDMETHODCALLTYPE* SetParagraphAlignment)( - IDWriteTextLayout* This, - DWRITE_PARAGRAPH_ALIGNMENT alignment); - - HRESULT(STDMETHODCALLTYPE* SetWordWrapping)( - IDWriteTextLayout* This, - DWRITE_WORD_WRAPPING wrapping); - - HRESULT(STDMETHODCALLTYPE* SetReadingDirection)( - IDWriteTextLayout* This, - DWRITE_READING_DIRECTION direction); - - HRESULT(STDMETHODCALLTYPE* SetFlowDirection)( - IDWriteTextLayout* This, - DWRITE_FLOW_DIRECTION direction); - - HRESULT(STDMETHODCALLTYPE* SetIncrementalTabStop)( - IDWriteTextLayout* This, - FLOAT tabstop); - - HRESULT(STDMETHODCALLTYPE* SetTrimming)( - IDWriteTextLayout* This, - const DWRITE_TRIMMING* trimming, - IDWriteInlineObject* trimming_sign); - - HRESULT(STDMETHODCALLTYPE* SetLineSpacing)( - IDWriteTextLayout* This, - DWRITE_LINE_SPACING_METHOD spacing, - FLOAT line_spacing, - FLOAT baseline); - - DWRITE_TEXT_ALIGNMENT(STDMETHODCALLTYPE* GetTextAlignment)( - IDWriteTextLayout* This); - - DWRITE_PARAGRAPH_ALIGNMENT(STDMETHODCALLTYPE* GetParagraphAlignment)( - IDWriteTextLayout* This); - - DWRITE_WORD_WRAPPING(STDMETHODCALLTYPE* GetWordWrapping)( - IDWriteTextLayout* This); - - DWRITE_READING_DIRECTION(STDMETHODCALLTYPE* GetReadingDirection)( - IDWriteTextLayout* This); - - DWRITE_FLOW_DIRECTION(STDMETHODCALLTYPE* GetFlowDirection)( - IDWriteTextLayout* This); - - FLOAT(STDMETHODCALLTYPE* GetIncrementalTabStop)( - IDWriteTextLayout* This); - - HRESULT(STDMETHODCALLTYPE* GetTrimming)( - IDWriteTextLayout* This, - DWRITE_TRIMMING* options, - IDWriteInlineObject** trimming_sign); - - HRESULT(STDMETHODCALLTYPE* GetLineSpacing)( - IDWriteTextLayout* This, - DWRITE_LINE_SPACING_METHOD* method, - FLOAT* spacing, - FLOAT* baseline); - - HRESULT(STDMETHODCALLTYPE* GetFontCollection)( - IDWriteTextLayout* This, - IDWriteFontCollection** collection); - - UINT32(STDMETHODCALLTYPE* GetFontFamilyNameLength)( - IDWriteTextLayout* This); - - HRESULT(STDMETHODCALLTYPE* GetFontFamilyName)( - IDWriteTextLayout* This, - WCHAR* name, - UINT32 size); - - DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetFontWeight)( - IDWriteTextLayout* This); - - DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetFontStyle)( - IDWriteTextLayout* This); - - DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetFontStretch)( - IDWriteTextLayout* This); - - FLOAT(STDMETHODCALLTYPE* GetFontSize)( - IDWriteTextLayout* This); - - UINT32(STDMETHODCALLTYPE* GetLocaleNameLength)( - IDWriteTextLayout* This); - - HRESULT(STDMETHODCALLTYPE* GetLocaleName)( - IDWriteTextLayout* This, - WCHAR* name, - UINT32 size); - - /*** IDWriteTextLayout methods ***/ - HRESULT(STDMETHODCALLTYPE* SetMaxWidth)( - IDWriteTextLayout* This, - FLOAT maxWidth); - - HRESULT(STDMETHODCALLTYPE* SetMaxHeight)( - IDWriteTextLayout* This, - FLOAT maxHeight); - - HRESULT(STDMETHODCALLTYPE* SetFontCollection)( - IDWriteTextLayout* This, - IDWriteFontCollection* collection, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetFontFamilyName)( - IDWriteTextLayout* This, - const WCHAR* name, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetFontWeight)( - IDWriteTextLayout* This, - DWRITE_FONT_WEIGHT weight, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetFontStyle)( - IDWriteTextLayout* This, - DWRITE_FONT_STYLE style, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetFontStretch)( - IDWriteTextLayout* This, - DWRITE_FONT_STRETCH stretch, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetFontSize)( - IDWriteTextLayout* This, - FLOAT size, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetUnderline)( - IDWriteTextLayout* This, - WINBOOL underline, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetStrikethrough)( - IDWriteTextLayout* This, - WINBOOL strikethrough, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetDrawingEffect)( - IDWriteTextLayout* This, - IUnknown* effect, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetInlineObject)( - IDWriteTextLayout* This, - IDWriteInlineObject* object, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetTypography)( - IDWriteTextLayout* This, - IDWriteTypography* typography, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetLocaleName)( - IDWriteTextLayout* This, - const WCHAR* locale, - DWRITE_TEXT_RANGE range); - - FLOAT(STDMETHODCALLTYPE* GetMaxWidth)( - IDWriteTextLayout* This); - - FLOAT(STDMETHODCALLTYPE* GetMaxHeight)( - IDWriteTextLayout* This); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontCollection)( - IDWriteTextLayout* This, - UINT32 pos, - IDWriteFontCollection** collection, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontFamilyNameLength)( - IDWriteTextLayout* This, - UINT32 pos, - UINT32* len, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontFamilyName)( - IDWriteTextLayout* This, - UINT32 position, - WCHAR* name, - UINT32 name_size, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontWeight)( - IDWriteTextLayout* This, - UINT32 position, - DWRITE_FONT_WEIGHT* weight, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontStyle)( - IDWriteTextLayout* This, - UINT32 currentPosition, - DWRITE_FONT_STYLE* style, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontStretch)( - IDWriteTextLayout* This, - UINT32 position, - DWRITE_FONT_STRETCH* stretch, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontSize)( - IDWriteTextLayout* This, - UINT32 position, - FLOAT* size, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* GetUnderline)( - IDWriteTextLayout* This, - UINT32 position, - WINBOOL* has_underline, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* GetStrikethrough)( - IDWriteTextLayout* This, - UINT32 position, - WINBOOL* has_strikethrough, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* GetDrawingEffect)( - IDWriteTextLayout* This, - UINT32 position, - IUnknown** effect, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* GetInlineObject)( - IDWriteTextLayout* This, - UINT32 position, - IDWriteInlineObject** object, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* GetTypography)( - IDWriteTextLayout* This, - UINT32 position, - IDWriteTypography** typography, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetLocaleNameLength)( - IDWriteTextLayout* This, - UINT32 position, - UINT32* length, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetLocaleName)( - IDWriteTextLayout* This, - UINT32 position, - WCHAR* name, - UINT32 name_size, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* Draw)( - IDWriteTextLayout* This, - void* context, - IDWriteTextRenderer* renderer, - FLOAT originX, - FLOAT originY); - - HRESULT(STDMETHODCALLTYPE* GetLineMetrics)( - IDWriteTextLayout* This, - DWRITE_LINE_METRICS* metrics, - UINT32 max_count, - UINT32* actual_count); - - HRESULT(STDMETHODCALLTYPE* GetMetrics)( - IDWriteTextLayout* This, - DWRITE_TEXT_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* GetOverhangMetrics)( - IDWriteTextLayout* This, - DWRITE_OVERHANG_METRICS* overhangs); - - HRESULT(STDMETHODCALLTYPE* GetClusterMetrics)( - IDWriteTextLayout* This, - DWRITE_CLUSTER_METRICS* metrics, - UINT32 max_count, - UINT32* act_count); - - HRESULT(STDMETHODCALLTYPE* DetermineMinWidth)( - IDWriteTextLayout* This, - FLOAT* min_width); - - HRESULT(STDMETHODCALLTYPE* HitTestPoint)( - IDWriteTextLayout* This, - FLOAT pointX, - FLOAT pointY, - WINBOOL* is_trailinghit, - WINBOOL* is_inside, - DWRITE_HIT_TEST_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* HitTestTextPosition)( - IDWriteTextLayout* This, - UINT32 textPosition, - WINBOOL is_trailinghit, - FLOAT* pointX, - FLOAT* pointY, - DWRITE_HIT_TEST_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* HitTestTextRange)( - IDWriteTextLayout* This, - UINT32 textPosition, - UINT32 textLength, - FLOAT originX, - FLOAT originY, - DWRITE_HIT_TEST_METRICS* metrics, - UINT32 max_metricscount, - UINT32* actual_metricscount); - - END_INTERFACE -} IDWriteTextLayoutVtbl; - -interface IDWriteTextLayout { - CONST_VTBL IDWriteTextLayoutVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteTextLayout_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteTextLayout_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteTextLayout_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteTextFormat methods ***/ -#define IDWriteTextLayout_SetTextAlignment(This, alignment) (This)->lpVtbl->SetTextAlignment(This, alignment) -#define IDWriteTextLayout_SetParagraphAlignment(This, alignment) (This)->lpVtbl->SetParagraphAlignment(This, alignment) -#define IDWriteTextLayout_SetWordWrapping(This, wrapping) (This)->lpVtbl->SetWordWrapping(This, wrapping) -#define IDWriteTextLayout_SetReadingDirection(This, direction) (This)->lpVtbl->SetReadingDirection(This, direction) -#define IDWriteTextLayout_SetFlowDirection(This, direction) (This)->lpVtbl->SetFlowDirection(This, direction) -#define IDWriteTextLayout_SetIncrementalTabStop(This, tabstop) (This)->lpVtbl->SetIncrementalTabStop(This, tabstop) -#define IDWriteTextLayout_SetTrimming(This, trimming, trimming_sign) (This)->lpVtbl->SetTrimming(This, trimming, trimming_sign) -#define IDWriteTextLayout_SetLineSpacing(This, spacing, line_spacing, baseline) (This)->lpVtbl->SetLineSpacing(This, spacing, line_spacing, baseline) -#define IDWriteTextLayout_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) -#define IDWriteTextLayout_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) -#define IDWriteTextLayout_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) -#define IDWriteTextLayout_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) -#define IDWriteTextLayout_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) -#define IDWriteTextLayout_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) -#define IDWriteTextLayout_GetTrimming(This, options, trimming_sign) (This)->lpVtbl->GetTrimming(This, options, trimming_sign) -#define IDWriteTextLayout_GetLineSpacing(This, method, spacing, baseline) (This)->lpVtbl->GetLineSpacing(This, method, spacing, baseline) -/*** IDWriteTextLayout methods ***/ -#define IDWriteTextLayout_SetMaxWidth(This, maxWidth) (This)->lpVtbl->SetMaxWidth(This, maxWidth) -#define IDWriteTextLayout_SetMaxHeight(This, maxHeight) (This)->lpVtbl->SetMaxHeight(This, maxHeight) -#define IDWriteTextLayout_SetFontCollection(This, collection, range) (This)->lpVtbl->SetFontCollection(This, collection, range) -#define IDWriteTextLayout_SetFontFamilyName(This, name, range) (This)->lpVtbl->SetFontFamilyName(This, name, range) -#define IDWriteTextLayout_SetFontWeight(This, weight, range) (This)->lpVtbl->SetFontWeight(This, weight, range) -#define IDWriteTextLayout_SetFontStyle(This, style, range) (This)->lpVtbl->SetFontStyle(This, style, range) -#define IDWriteTextLayout_SetFontStretch(This, stretch, range) (This)->lpVtbl->SetFontStretch(This, stretch, range) -#define IDWriteTextLayout_SetFontSize(This, size, range) (This)->lpVtbl->SetFontSize(This, size, range) -#define IDWriteTextLayout_SetUnderline(This, underline, range) (This)->lpVtbl->SetUnderline(This, underline, range) -#define IDWriteTextLayout_SetStrikethrough(This, strikethrough, range) (This)->lpVtbl->SetStrikethrough(This, strikethrough, range) -#define IDWriteTextLayout_SetDrawingEffect(This, effect, range) (This)->lpVtbl->SetDrawingEffect(This, effect, range) -#define IDWriteTextLayout_SetInlineObject(This, object, range) (This)->lpVtbl->SetInlineObject(This, object, range) -#define IDWriteTextLayout_SetTypography(This, typography, range) (This)->lpVtbl->SetTypography(This, typography, range) -#define IDWriteTextLayout_SetLocaleName(This, locale, range) (This)->lpVtbl->SetLocaleName(This, locale, range) -#define IDWriteTextLayout_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This) -#define IDWriteTextLayout_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This) -#define IDWriteTextLayout_GetFontCollection(This, pos, collection, range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This, pos, collection, range) -#define IDWriteTextLayout_GetFontFamilyNameLength(This, pos, len, range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This, pos, len, range) -#define IDWriteTextLayout_GetFontFamilyName(This, position, name, name_size, range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This, position, name, name_size, range) -#define IDWriteTextLayout_GetFontWeight(This, position, weight, range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This, position, weight, range) -#define IDWriteTextLayout_GetFontStyle(This, currentPosition, style, range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This, currentPosition, style, range) -#define IDWriteTextLayout_GetFontStretch(This, position, stretch, range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This, position, stretch, range) -#define IDWriteTextLayout_GetFontSize(This, position, size, range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This, position, size, range) -#define IDWriteTextLayout_GetUnderline(This, position, has_underline, range) (This)->lpVtbl->GetUnderline(This, position, has_underline, range) -#define IDWriteTextLayout_GetStrikethrough(This, position, has_strikethrough, range) (This)->lpVtbl->GetStrikethrough(This, position, has_strikethrough, range) -#define IDWriteTextLayout_GetDrawingEffect(This, position, effect, range) (This)->lpVtbl->GetDrawingEffect(This, position, effect, range) -#define IDWriteTextLayout_GetInlineObject(This, position, object, range) (This)->lpVtbl->GetInlineObject(This, position, object, range) -#define IDWriteTextLayout_GetTypography(This, position, typography, range) (This)->lpVtbl->GetTypography(This, position, typography, range) -#define IDWriteTextLayout_GetLocaleNameLength(This, position, length, range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This, position, length, range) -#define IDWriteTextLayout_GetLocaleName(This, position, name, name_size, range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This, position, name, name_size, range) -#define IDWriteTextLayout_Draw(This, context, renderer, originX, originY) (This)->lpVtbl->Draw(This, context, renderer, originX, originY) -#define IDWriteTextLayout_GetLineMetrics(This, metrics, max_count, actual_count) (This)->lpVtbl->GetLineMetrics(This, metrics, max_count, actual_count) -#define IDWriteTextLayout_GetMetrics(This, metrics) (This)->lpVtbl->GetMetrics(This, metrics) -#define IDWriteTextLayout_GetOverhangMetrics(This, overhangs) (This)->lpVtbl->GetOverhangMetrics(This, overhangs) -#define IDWriteTextLayout_GetClusterMetrics(This, metrics, max_count, act_count) (This)->lpVtbl->GetClusterMetrics(This, metrics, max_count, act_count) -#define IDWriteTextLayout_DetermineMinWidth(This, min_width) (This)->lpVtbl->DetermineMinWidth(This, min_width) -#define IDWriteTextLayout_HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics) (This)->lpVtbl->HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics) -#define IDWriteTextLayout_HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics) (This)->lpVtbl->HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics) -#define IDWriteTextLayout_HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount) (This)->lpVtbl->HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteTextLayout_QueryInterface(IDWriteTextLayout* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteTextLayout_AddRef(IDWriteTextLayout* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteTextLayout_Release(IDWriteTextLayout* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteTextFormat methods ***/ -static inline HRESULT IDWriteTextLayout_SetTextAlignment(IDWriteTextLayout* This, DWRITE_TEXT_ALIGNMENT alignment) { - return This->lpVtbl->SetTextAlignment(This, alignment); -} -static inline HRESULT IDWriteTextLayout_SetParagraphAlignment(IDWriteTextLayout* This, DWRITE_PARAGRAPH_ALIGNMENT alignment) { - return This->lpVtbl->SetParagraphAlignment(This, alignment); -} -static inline HRESULT IDWriteTextLayout_SetWordWrapping(IDWriteTextLayout* This, DWRITE_WORD_WRAPPING wrapping) { - return This->lpVtbl->SetWordWrapping(This, wrapping); -} -static inline HRESULT IDWriteTextLayout_SetReadingDirection(IDWriteTextLayout* This, DWRITE_READING_DIRECTION direction) { - return This->lpVtbl->SetReadingDirection(This, direction); -} -static inline HRESULT IDWriteTextLayout_SetFlowDirection(IDWriteTextLayout* This, DWRITE_FLOW_DIRECTION direction) { - return This->lpVtbl->SetFlowDirection(This, direction); -} -static inline HRESULT IDWriteTextLayout_SetIncrementalTabStop(IDWriteTextLayout* This, FLOAT tabstop) { - return This->lpVtbl->SetIncrementalTabStop(This, tabstop); -} -static inline HRESULT IDWriteTextLayout_SetTrimming(IDWriteTextLayout* This, const DWRITE_TRIMMING* trimming, IDWriteInlineObject* trimming_sign) { - return This->lpVtbl->SetTrimming(This, trimming, trimming_sign); -} -static inline HRESULT IDWriteTextLayout_SetLineSpacing(IDWriteTextLayout* This, DWRITE_LINE_SPACING_METHOD spacing, FLOAT line_spacing, FLOAT baseline) { - return This->lpVtbl->SetLineSpacing(This, spacing, line_spacing, baseline); -} -static inline DWRITE_TEXT_ALIGNMENT IDWriteTextLayout_GetTextAlignment(IDWriteTextLayout* This) { - return This->lpVtbl->GetTextAlignment(This); -} -static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout_GetParagraphAlignment(IDWriteTextLayout* This) { - return This->lpVtbl->GetParagraphAlignment(This); -} -static inline DWRITE_WORD_WRAPPING IDWriteTextLayout_GetWordWrapping(IDWriteTextLayout* This) { - return This->lpVtbl->GetWordWrapping(This); -} -static inline DWRITE_READING_DIRECTION IDWriteTextLayout_GetReadingDirection(IDWriteTextLayout* This) { - return This->lpVtbl->GetReadingDirection(This); -} -static inline DWRITE_FLOW_DIRECTION IDWriteTextLayout_GetFlowDirection(IDWriteTextLayout* This) { - return This->lpVtbl->GetFlowDirection(This); -} -static inline FLOAT IDWriteTextLayout_GetIncrementalTabStop(IDWriteTextLayout* This) { - return This->lpVtbl->GetIncrementalTabStop(This); -} -static inline HRESULT IDWriteTextLayout_GetTrimming(IDWriteTextLayout* This, DWRITE_TRIMMING* options, IDWriteInlineObject** trimming_sign) { - return This->lpVtbl->GetTrimming(This, options, trimming_sign); -} -static inline HRESULT IDWriteTextLayout_GetLineSpacing(IDWriteTextLayout* This, DWRITE_LINE_SPACING_METHOD* method, FLOAT* spacing, FLOAT* baseline) { - return This->lpVtbl->GetLineSpacing(This, method, spacing, baseline); -} -/*** IDWriteTextLayout methods ***/ -static inline HRESULT IDWriteTextLayout_SetMaxWidth(IDWriteTextLayout* This, FLOAT maxWidth) { - return This->lpVtbl->SetMaxWidth(This, maxWidth); -} -static inline HRESULT IDWriteTextLayout_SetMaxHeight(IDWriteTextLayout* This, FLOAT maxHeight) { - return This->lpVtbl->SetMaxHeight(This, maxHeight); -} -static inline HRESULT IDWriteTextLayout_SetFontCollection(IDWriteTextLayout* This, IDWriteFontCollection* collection, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontCollection(This, collection, range); -} -static inline HRESULT IDWriteTextLayout_SetFontFamilyName(IDWriteTextLayout* This, const WCHAR* name, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontFamilyName(This, name, range); -} -static inline HRESULT IDWriteTextLayout_SetFontWeight(IDWriteTextLayout* This, DWRITE_FONT_WEIGHT weight, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontWeight(This, weight, range); -} -static inline HRESULT IDWriteTextLayout_SetFontStyle(IDWriteTextLayout* This, DWRITE_FONT_STYLE style, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontStyle(This, style, range); -} -static inline HRESULT IDWriteTextLayout_SetFontStretch(IDWriteTextLayout* This, DWRITE_FONT_STRETCH stretch, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontStretch(This, stretch, range); -} -static inline HRESULT IDWriteTextLayout_SetFontSize(IDWriteTextLayout* This, FLOAT size, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontSize(This, size, range); -} -static inline HRESULT IDWriteTextLayout_SetUnderline(IDWriteTextLayout* This, WINBOOL underline, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetUnderline(This, underline, range); -} -static inline HRESULT IDWriteTextLayout_SetStrikethrough(IDWriteTextLayout* This, WINBOOL strikethrough, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetStrikethrough(This, strikethrough, range); -} -static inline HRESULT IDWriteTextLayout_SetDrawingEffect(IDWriteTextLayout* This, IUnknown* effect, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetDrawingEffect(This, effect, range); -} -static inline HRESULT IDWriteTextLayout_SetInlineObject(IDWriteTextLayout* This, IDWriteInlineObject* object, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetInlineObject(This, object, range); -} -static inline HRESULT IDWriteTextLayout_SetTypography(IDWriteTextLayout* This, IDWriteTypography* typography, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetTypography(This, typography, range); -} -static inline HRESULT IDWriteTextLayout_SetLocaleName(IDWriteTextLayout* This, const WCHAR* locale, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetLocaleName(This, locale, range); -} -static inline FLOAT IDWriteTextLayout_GetMaxWidth(IDWriteTextLayout* This) { - return This->lpVtbl->GetMaxWidth(This); -} -static inline FLOAT IDWriteTextLayout_GetMaxHeight(IDWriteTextLayout* This) { - return This->lpVtbl->GetMaxHeight(This); -} -static inline HRESULT IDWriteTextLayout_GetFontCollection(IDWriteTextLayout* This, UINT32 pos, IDWriteFontCollection** collection, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This, pos, collection, range); -} -static inline HRESULT IDWriteTextLayout_GetFontFamilyNameLength(IDWriteTextLayout* This, UINT32 pos, UINT32* len, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This, pos, len, range); -} -static inline HRESULT IDWriteTextLayout_GetFontFamilyName(IDWriteTextLayout* This, UINT32 position, WCHAR* name, UINT32 name_size, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This, position, name, name_size, range); -} -static inline HRESULT IDWriteTextLayout_GetFontWeight(IDWriteTextLayout* This, UINT32 position, DWRITE_FONT_WEIGHT* weight, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This, position, weight, range); -} -static inline HRESULT IDWriteTextLayout_GetFontStyle(IDWriteTextLayout* This, UINT32 currentPosition, DWRITE_FONT_STYLE* style, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This, currentPosition, style, range); -} -static inline HRESULT IDWriteTextLayout_GetFontStretch(IDWriteTextLayout* This, UINT32 position, DWRITE_FONT_STRETCH* stretch, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This, position, stretch, range); -} -static inline HRESULT IDWriteTextLayout_GetFontSize(IDWriteTextLayout* This, UINT32 position, FLOAT* size, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontSize(This, position, size, range); -} -static inline HRESULT IDWriteTextLayout_GetUnderline(IDWriteTextLayout* This, UINT32 position, WINBOOL* has_underline, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetUnderline(This, position, has_underline, range); -} -static inline HRESULT IDWriteTextLayout_GetStrikethrough(IDWriteTextLayout* This, UINT32 position, WINBOOL* has_strikethrough, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetStrikethrough(This, position, has_strikethrough, range); -} -static inline HRESULT IDWriteTextLayout_GetDrawingEffect(IDWriteTextLayout* This, UINT32 position, IUnknown** effect, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetDrawingEffect(This, position, effect, range); -} -static inline HRESULT IDWriteTextLayout_GetInlineObject(IDWriteTextLayout* This, UINT32 position, IDWriteInlineObject** object, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetInlineObject(This, position, object, range); -} -static inline HRESULT IDWriteTextLayout_GetTypography(IDWriteTextLayout* This, UINT32 position, IDWriteTypography** typography, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetTypography(This, position, typography, range); -} -static inline HRESULT IDWriteTextLayout_GetLocaleNameLength(IDWriteTextLayout* This, UINT32 position, UINT32* length, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This, position, length, range); -} -static inline HRESULT IDWriteTextLayout_GetLocaleName(IDWriteTextLayout* This, UINT32 position, WCHAR* name, UINT32 name_size, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This, position, name, name_size, range); -} -static inline HRESULT IDWriteTextLayout_Draw(IDWriteTextLayout* This, void* context, IDWriteTextRenderer* renderer, FLOAT originX, FLOAT originY) { - return This->lpVtbl->Draw(This, context, renderer, originX, originY); -} -static inline HRESULT IDWriteTextLayout_GetLineMetrics(IDWriteTextLayout* This, DWRITE_LINE_METRICS* metrics, UINT32 max_count, UINT32* actual_count) { - return This->lpVtbl->GetLineMetrics(This, metrics, max_count, actual_count); -} -static inline HRESULT IDWriteTextLayout_GetMetrics(IDWriteTextLayout* This, DWRITE_TEXT_METRICS* metrics) { - return This->lpVtbl->GetMetrics(This, metrics); -} -static inline HRESULT IDWriteTextLayout_GetOverhangMetrics(IDWriteTextLayout* This, DWRITE_OVERHANG_METRICS* overhangs) { - return This->lpVtbl->GetOverhangMetrics(This, overhangs); -} -static inline HRESULT IDWriteTextLayout_GetClusterMetrics(IDWriteTextLayout* This, DWRITE_CLUSTER_METRICS* metrics, UINT32 max_count, UINT32* act_count) { - return This->lpVtbl->GetClusterMetrics(This, metrics, max_count, act_count); -} -static inline HRESULT IDWriteTextLayout_DetermineMinWidth(IDWriteTextLayout* This, FLOAT* min_width) { - return This->lpVtbl->DetermineMinWidth(This, min_width); -} -static inline HRESULT IDWriteTextLayout_HitTestPoint(IDWriteTextLayout* This, FLOAT pointX, FLOAT pointY, WINBOOL* is_trailinghit, WINBOOL* is_inside, DWRITE_HIT_TEST_METRICS* metrics) { - return This->lpVtbl->HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics); -} -static inline HRESULT IDWriteTextLayout_HitTestTextPosition(IDWriteTextLayout* This, UINT32 textPosition, WINBOOL is_trailinghit, FLOAT* pointX, FLOAT* pointY, DWRITE_HIT_TEST_METRICS* metrics) { - return This->lpVtbl->HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics); -} -static inline HRESULT IDWriteTextLayout_HitTestTextRange(IDWriteTextLayout* This, UINT32 textPosition, UINT32 textLength, FLOAT originX, FLOAT originY, DWRITE_HIT_TEST_METRICS* metrics, UINT32 max_metricscount, UINT32* actual_metricscount) { - return This->lpVtbl->HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount); -} -#endif -#endif - -#endif - -#endif /* __IDWriteTextLayout_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteNumberSubstitution interface - */ -#ifndef __IDWriteNumberSubstitution_INTERFACE_DEFINED__ -#define __IDWriteNumberSubstitution_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteNumberSubstitution, 0x14885cc9, 0xbab0, 0x4f90, 0xb6, 0xed, 0x5c, 0x36, 0x6a, 0x2c, 0xd0, 0x3d); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("14885cc9-bab0-4f90-b6ed-5c366a2cd03d") -IDWriteNumberSubstitution : public IUnknown{}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteNumberSubstitution, 0x14885cc9, 0xbab0, 0x4f90, 0xb6, 0xed, 0x5c, 0x36, 0x6a, 0x2c, 0xd0, 0x3d) -#endif -#else -typedef struct IDWriteNumberSubstitutionVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteNumberSubstitution* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteNumberSubstitution* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteNumberSubstitution* This); - - END_INTERFACE -} IDWriteNumberSubstitutionVtbl; - -interface IDWriteNumberSubstitution { - CONST_VTBL IDWriteNumberSubstitutionVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteNumberSubstitution_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteNumberSubstitution_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteNumberSubstitution_Release(This) (This)->lpVtbl->Release(This) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteNumberSubstitution_QueryInterface(IDWriteNumberSubstitution* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteNumberSubstitution_AddRef(IDWriteNumberSubstitution* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteNumberSubstitution_Release(IDWriteNumberSubstitution* This) { - return This->lpVtbl->Release(This); -} -#endif -#endif - -#endif - -#endif /* __IDWriteNumberSubstitution_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteTextAnalysisSource interface - */ -#ifndef __IDWriteTextAnalysisSource_INTERFACE_DEFINED__ -#define __IDWriteTextAnalysisSource_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteTextAnalysisSource, 0x688e1a58, 0x5094, 0x47c8, 0xad, 0xc8, 0xfb, 0xce, 0xa6, 0x0a, 0xe9, 0x2b); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("688e1a58-5094-47c8-adc8-fbcea60ae92b") -IDWriteTextAnalysisSource : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE GetTextAtPosition( - UINT32 position, - const WCHAR** text, - UINT32* text_len) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTextBeforePosition( - UINT32 position, - const WCHAR** text, - UINT32* text_len) = 0; - - virtual DWRITE_READING_DIRECTION STDMETHODCALLTYPE GetParagraphReadingDirection() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocaleName( - UINT32 position, - UINT32 * text_len, - const WCHAR** locale) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetNumberSubstitution( - UINT32 position, - UINT32 * text_len, - IDWriteNumberSubstitution * *substitution) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextAnalysisSource, 0x688e1a58, 0x5094, 0x47c8, 0xad, 0xc8, 0xfb, 0xce, 0xa6, 0x0a, 0xe9, 0x2b) -#endif -#else -typedef struct IDWriteTextAnalysisSourceVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteTextAnalysisSource* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteTextAnalysisSource* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteTextAnalysisSource* This); - - /*** IDWriteTextAnalysisSource methods ***/ - HRESULT(STDMETHODCALLTYPE* GetTextAtPosition)( - IDWriteTextAnalysisSource* This, - UINT32 position, - const WCHAR** text, - UINT32* text_len); - - HRESULT(STDMETHODCALLTYPE* GetTextBeforePosition)( - IDWriteTextAnalysisSource* This, - UINT32 position, - const WCHAR** text, - UINT32* text_len); - - DWRITE_READING_DIRECTION(STDMETHODCALLTYPE* GetParagraphReadingDirection)( - IDWriteTextAnalysisSource* This); - - HRESULT(STDMETHODCALLTYPE* GetLocaleName)( - IDWriteTextAnalysisSource* This, - UINT32 position, - UINT32* text_len, - const WCHAR** locale); - - HRESULT(STDMETHODCALLTYPE* GetNumberSubstitution)( - IDWriteTextAnalysisSource* This, - UINT32 position, - UINT32* text_len, - IDWriteNumberSubstitution** substitution); - - END_INTERFACE -} IDWriteTextAnalysisSourceVtbl; - -interface IDWriteTextAnalysisSource { - CONST_VTBL IDWriteTextAnalysisSourceVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteTextAnalysisSource_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteTextAnalysisSource_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteTextAnalysisSource_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteTextAnalysisSource methods ***/ -#define IDWriteTextAnalysisSource_GetTextAtPosition(This, position, text, text_len) (This)->lpVtbl->GetTextAtPosition(This, position, text, text_len) -#define IDWriteTextAnalysisSource_GetTextBeforePosition(This, position, text, text_len) (This)->lpVtbl->GetTextBeforePosition(This, position, text, text_len) -#define IDWriteTextAnalysisSource_GetParagraphReadingDirection(This) (This)->lpVtbl->GetParagraphReadingDirection(This) -#define IDWriteTextAnalysisSource_GetLocaleName(This, position, text_len, locale) (This)->lpVtbl->GetLocaleName(This, position, text_len, locale) -#define IDWriteTextAnalysisSource_GetNumberSubstitution(This, position, text_len, substitution) (This)->lpVtbl->GetNumberSubstitution(This, position, text_len, substitution) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteTextAnalysisSource_QueryInterface(IDWriteTextAnalysisSource* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteTextAnalysisSource_AddRef(IDWriteTextAnalysisSource* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteTextAnalysisSource_Release(IDWriteTextAnalysisSource* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteTextAnalysisSource methods ***/ -static inline HRESULT IDWriteTextAnalysisSource_GetTextAtPosition(IDWriteTextAnalysisSource* This, UINT32 position, const WCHAR** text, UINT32* text_len) { - return This->lpVtbl->GetTextAtPosition(This, position, text, text_len); -} -static inline HRESULT IDWriteTextAnalysisSource_GetTextBeforePosition(IDWriteTextAnalysisSource* This, UINT32 position, const WCHAR** text, UINT32* text_len) { - return This->lpVtbl->GetTextBeforePosition(This, position, text, text_len); -} -static inline DWRITE_READING_DIRECTION IDWriteTextAnalysisSource_GetParagraphReadingDirection(IDWriteTextAnalysisSource* This) { - return This->lpVtbl->GetParagraphReadingDirection(This); -} -static inline HRESULT IDWriteTextAnalysisSource_GetLocaleName(IDWriteTextAnalysisSource* This, UINT32 position, UINT32* text_len, const WCHAR** locale) { - return This->lpVtbl->GetLocaleName(This, position, text_len, locale); -} -static inline HRESULT IDWriteTextAnalysisSource_GetNumberSubstitution(IDWriteTextAnalysisSource* This, UINT32 position, UINT32* text_len, IDWriteNumberSubstitution** substitution) { - return This->lpVtbl->GetNumberSubstitution(This, position, text_len, substitution); -} -#endif -#endif - -#endif - -#endif /* __IDWriteTextAnalysisSource_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteTextAnalysisSink interface - */ -#ifndef __IDWriteTextAnalysisSink_INTERFACE_DEFINED__ -#define __IDWriteTextAnalysisSink_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteTextAnalysisSink, 0x5810cd44, 0x0ca0, 0x4701, 0xb3, 0xfa, 0xbe, 0xc5, 0x18, 0x2a, 0xe4, 0xf6); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("5810cd44-0ca0-4701-b3fa-bec5182ae4f6") -IDWriteTextAnalysisSink : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE SetScriptAnalysis( - UINT32 position, - UINT32 length, - const DWRITE_SCRIPT_ANALYSIS* scriptanalysis) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetLineBreakpoints( - UINT32 position, - UINT32 length, - const DWRITE_LINE_BREAKPOINT* breakpoints) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetBidiLevel( - UINT32 position, - UINT32 length, - UINT8 explicitLevel, - UINT8 resolvedLevel) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetNumberSubstitution( - UINT32 position, - UINT32 length, - IDWriteNumberSubstitution * substitution) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextAnalysisSink, 0x5810cd44, 0x0ca0, 0x4701, 0xb3, 0xfa, 0xbe, 0xc5, 0x18, 0x2a, 0xe4, 0xf6) -#endif -#else -typedef struct IDWriteTextAnalysisSinkVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteTextAnalysisSink* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteTextAnalysisSink* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteTextAnalysisSink* This); - - /*** IDWriteTextAnalysisSink methods ***/ - HRESULT(STDMETHODCALLTYPE* SetScriptAnalysis)( - IDWriteTextAnalysisSink* This, - UINT32 position, - UINT32 length, - const DWRITE_SCRIPT_ANALYSIS* scriptanalysis); - - HRESULT(STDMETHODCALLTYPE* SetLineBreakpoints)( - IDWriteTextAnalysisSink* This, - UINT32 position, - UINT32 length, - const DWRITE_LINE_BREAKPOINT* breakpoints); - - HRESULT(STDMETHODCALLTYPE* SetBidiLevel)( - IDWriteTextAnalysisSink* This, - UINT32 position, - UINT32 length, - UINT8 explicitLevel, - UINT8 resolvedLevel); - - HRESULT(STDMETHODCALLTYPE* SetNumberSubstitution)( - IDWriteTextAnalysisSink* This, - UINT32 position, - UINT32 length, - IDWriteNumberSubstitution* substitution); - - END_INTERFACE -} IDWriteTextAnalysisSinkVtbl; - -interface IDWriteTextAnalysisSink { - CONST_VTBL IDWriteTextAnalysisSinkVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteTextAnalysisSink_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteTextAnalysisSink_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteTextAnalysisSink_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteTextAnalysisSink methods ***/ -#define IDWriteTextAnalysisSink_SetScriptAnalysis(This, position, length, scriptanalysis) (This)->lpVtbl->SetScriptAnalysis(This, position, length, scriptanalysis) -#define IDWriteTextAnalysisSink_SetLineBreakpoints(This, position, length, breakpoints) (This)->lpVtbl->SetLineBreakpoints(This, position, length, breakpoints) -#define IDWriteTextAnalysisSink_SetBidiLevel(This, position, length, explicitLevel, resolvedLevel) (This)->lpVtbl->SetBidiLevel(This, position, length, explicitLevel, resolvedLevel) -#define IDWriteTextAnalysisSink_SetNumberSubstitution(This, position, length, substitution) (This)->lpVtbl->SetNumberSubstitution(This, position, length, substitution) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteTextAnalysisSink_QueryInterface(IDWriteTextAnalysisSink* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteTextAnalysisSink_AddRef(IDWriteTextAnalysisSink* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteTextAnalysisSink_Release(IDWriteTextAnalysisSink* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteTextAnalysisSink methods ***/ -static inline HRESULT IDWriteTextAnalysisSink_SetScriptAnalysis(IDWriteTextAnalysisSink* This, UINT32 position, UINT32 length, const DWRITE_SCRIPT_ANALYSIS* scriptanalysis) { - return This->lpVtbl->SetScriptAnalysis(This, position, length, scriptanalysis); -} -static inline HRESULT IDWriteTextAnalysisSink_SetLineBreakpoints(IDWriteTextAnalysisSink* This, UINT32 position, UINT32 length, const DWRITE_LINE_BREAKPOINT* breakpoints) { - return This->lpVtbl->SetLineBreakpoints(This, position, length, breakpoints); -} -static inline HRESULT IDWriteTextAnalysisSink_SetBidiLevel(IDWriteTextAnalysisSink* This, UINT32 position, UINT32 length, UINT8 explicitLevel, UINT8 resolvedLevel) { - return This->lpVtbl->SetBidiLevel(This, position, length, explicitLevel, resolvedLevel); -} -static inline HRESULT IDWriteTextAnalysisSink_SetNumberSubstitution(IDWriteTextAnalysisSink* This, UINT32 position, UINT32 length, IDWriteNumberSubstitution* substitution) { - return This->lpVtbl->SetNumberSubstitution(This, position, length, substitution); -} -#endif -#endif - -#endif - -#endif /* __IDWriteTextAnalysisSink_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteTextAnalyzer interface - */ -#ifndef __IDWriteTextAnalyzer_INTERFACE_DEFINED__ -#define __IDWriteTextAnalyzer_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteTextAnalyzer, 0xb7e6163e, 0x7f46, 0x43b4, 0x84, 0xb3, 0xe4, 0xe6, 0x24, 0x9c, 0x36, 0x5d); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("b7e6163e-7f46-43b4-84b3-e4e6249c365d") -IDWriteTextAnalyzer : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE AnalyzeScript( - IDWriteTextAnalysisSource * source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink * sink) = 0; - - virtual HRESULT STDMETHODCALLTYPE AnalyzeBidi( - IDWriteTextAnalysisSource * source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink * sink) = 0; - - virtual HRESULT STDMETHODCALLTYPE AnalyzeNumberSubstitution( - IDWriteTextAnalysisSource * source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink * sink) = 0; - - virtual HRESULT STDMETHODCALLTYPE AnalyzeLineBreakpoints( - IDWriteTextAnalysisSource * source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink * sink) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGlyphs( - const WCHAR* text, - UINT32 length, - IDWriteFontFace* font_face, - WINBOOL is_sideways, - WINBOOL is_rtl, - const DWRITE_SCRIPT_ANALYSIS* analysis, - const WCHAR* locale, - IDWriteNumberSubstitution* substitution, - const DWRITE_TYPOGRAPHIC_FEATURES** features, - const UINT32* feature_range_len, - UINT32 feature_ranges, - UINT32 max_glyph_count, - UINT16* clustermap, - DWRITE_SHAPING_TEXT_PROPERTIES* text_props, - UINT16* glyph_indices, - DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, - UINT32* actual_glyph_count) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGlyphPlacements( - const WCHAR* text, - const UINT16* clustermap, - DWRITE_SHAPING_TEXT_PROPERTIES* props, - UINT32 text_len, - const UINT16* glyph_indices, - const DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, - UINT32 glyph_count, - IDWriteFontFace* font_face, - FLOAT fontEmSize, - WINBOOL is_sideways, - WINBOOL is_rtl, - const DWRITE_SCRIPT_ANALYSIS* analysis, - const WCHAR* locale, - const DWRITE_TYPOGRAPHIC_FEATURES** features, - const UINT32* feature_range_len, - UINT32 feature_ranges, - FLOAT* glyph_advances, - DWRITE_GLYPH_OFFSET* glyph_offsets) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGdiCompatibleGlyphPlacements( - const WCHAR* text, - const UINT16* clustermap, - DWRITE_SHAPING_TEXT_PROPERTIES* props, - UINT32 text_len, - const UINT16* glyph_indices, - const DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, - UINT32 glyph_count, - IDWriteFontFace* font_face, - FLOAT fontEmSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - WINBOOL is_sideways, - WINBOOL is_rtl, - const DWRITE_SCRIPT_ANALYSIS* analysis, - const WCHAR* locale, - const DWRITE_TYPOGRAPHIC_FEATURES** features, - const UINT32* feature_range_lengths, - UINT32 feature_ranges, - FLOAT* glyph_advances, - DWRITE_GLYPH_OFFSET* glyph_offsets) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextAnalyzer, 0xb7e6163e, 0x7f46, 0x43b4, 0x84, 0xb3, 0xe4, 0xe6, 0x24, 0x9c, 0x36, 0x5d) -#endif -#else -typedef struct IDWriteTextAnalyzerVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteTextAnalyzer* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteTextAnalyzer* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteTextAnalyzer* This); - - /*** IDWriteTextAnalyzer methods ***/ - HRESULT(STDMETHODCALLTYPE* AnalyzeScript)( - IDWriteTextAnalyzer* This, - IDWriteTextAnalysisSource* source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink* sink); - - HRESULT(STDMETHODCALLTYPE* AnalyzeBidi)( - IDWriteTextAnalyzer* This, - IDWriteTextAnalysisSource* source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink* sink); - - HRESULT(STDMETHODCALLTYPE* AnalyzeNumberSubstitution)( - IDWriteTextAnalyzer* This, - IDWriteTextAnalysisSource* source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink* sink); - - HRESULT(STDMETHODCALLTYPE* AnalyzeLineBreakpoints)( - IDWriteTextAnalyzer* This, - IDWriteTextAnalysisSource* source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink* sink); - - HRESULT(STDMETHODCALLTYPE* GetGlyphs)( - IDWriteTextAnalyzer* This, - const WCHAR* text, - UINT32 length, - IDWriteFontFace* font_face, - WINBOOL is_sideways, - WINBOOL is_rtl, - const DWRITE_SCRIPT_ANALYSIS* analysis, - const WCHAR* locale, - IDWriteNumberSubstitution* substitution, - const DWRITE_TYPOGRAPHIC_FEATURES** features, - const UINT32* feature_range_len, - UINT32 feature_ranges, - UINT32 max_glyph_count, - UINT16* clustermap, - DWRITE_SHAPING_TEXT_PROPERTIES* text_props, - UINT16* glyph_indices, - DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, - UINT32* actual_glyph_count); - - HRESULT(STDMETHODCALLTYPE* GetGlyphPlacements)( - IDWriteTextAnalyzer* This, - const WCHAR* text, - const UINT16* clustermap, - DWRITE_SHAPING_TEXT_PROPERTIES* props, - UINT32 text_len, - const UINT16* glyph_indices, - const DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, - UINT32 glyph_count, - IDWriteFontFace* font_face, - FLOAT fontEmSize, - WINBOOL is_sideways, - WINBOOL is_rtl, - const DWRITE_SCRIPT_ANALYSIS* analysis, - const WCHAR* locale, - const DWRITE_TYPOGRAPHIC_FEATURES** features, - const UINT32* feature_range_len, - UINT32 feature_ranges, - FLOAT* glyph_advances, - DWRITE_GLYPH_OFFSET* glyph_offsets); - - HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphPlacements)( - IDWriteTextAnalyzer* This, - const WCHAR* text, - const UINT16* clustermap, - DWRITE_SHAPING_TEXT_PROPERTIES* props, - UINT32 text_len, - const UINT16* glyph_indices, - const DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, - UINT32 glyph_count, - IDWriteFontFace* font_face, - FLOAT fontEmSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - WINBOOL is_sideways, - WINBOOL is_rtl, - const DWRITE_SCRIPT_ANALYSIS* analysis, - const WCHAR* locale, - const DWRITE_TYPOGRAPHIC_FEATURES** features, - const UINT32* feature_range_lengths, - UINT32 feature_ranges, - FLOAT* glyph_advances, - DWRITE_GLYPH_OFFSET* glyph_offsets); - - END_INTERFACE -} IDWriteTextAnalyzerVtbl; - -interface IDWriteTextAnalyzer { - CONST_VTBL IDWriteTextAnalyzerVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteTextAnalyzer_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteTextAnalyzer_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteTextAnalyzer_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteTextAnalyzer methods ***/ -#define IDWriteTextAnalyzer_AnalyzeScript(This, source, position, length, sink) (This)->lpVtbl->AnalyzeScript(This, source, position, length, sink) -#define IDWriteTextAnalyzer_AnalyzeBidi(This, source, position, length, sink) (This)->lpVtbl->AnalyzeBidi(This, source, position, length, sink) -#define IDWriteTextAnalyzer_AnalyzeNumberSubstitution(This, source, position, length, sink) (This)->lpVtbl->AnalyzeNumberSubstitution(This, source, position, length, sink) -#define IDWriteTextAnalyzer_AnalyzeLineBreakpoints(This, source, position, length, sink) (This)->lpVtbl->AnalyzeLineBreakpoints(This, source, position, length, sink) -#define IDWriteTextAnalyzer_GetGlyphs(This, text, length, font_face, is_sideways, is_rtl, analysis, locale, substitution, features, feature_range_len, feature_ranges, max_glyph_count, clustermap, text_props, glyph_indices, glyph_props, actual_glyph_count) (This)->lpVtbl->GetGlyphs(This, text, length, font_face, is_sideways, is_rtl, analysis, locale, substitution, features, feature_range_len, feature_ranges, max_glyph_count, clustermap, text_props, glyph_indices, glyph_props, actual_glyph_count) -#define IDWriteTextAnalyzer_GetGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, is_sideways, is_rtl, analysis, locale, features, feature_range_len, feature_ranges, glyph_advances, glyph_offsets) (This)->lpVtbl->GetGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, is_sideways, is_rtl, analysis, locale, features, feature_range_len, feature_ranges, glyph_advances, glyph_offsets) -#define IDWriteTextAnalyzer_GetGdiCompatibleGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, pixels_per_dip, transform, use_gdi_natural, is_sideways, is_rtl, analysis, locale, features, feature_range_lengths, feature_ranges, glyph_advances, glyph_offsets) (This)->lpVtbl->GetGdiCompatibleGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, pixels_per_dip, transform, use_gdi_natural, is_sideways, is_rtl, analysis, locale, features, feature_range_lengths, feature_ranges, glyph_advances, glyph_offsets) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteTextAnalyzer_QueryInterface(IDWriteTextAnalyzer* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteTextAnalyzer_AddRef(IDWriteTextAnalyzer* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteTextAnalyzer_Release(IDWriteTextAnalyzer* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteTextAnalyzer methods ***/ -static inline HRESULT IDWriteTextAnalyzer_AnalyzeScript(IDWriteTextAnalyzer* This, IDWriteTextAnalysisSource* source, UINT32 position, UINT32 length, IDWriteTextAnalysisSink* sink) { - return This->lpVtbl->AnalyzeScript(This, source, position, length, sink); -} -static inline HRESULT IDWriteTextAnalyzer_AnalyzeBidi(IDWriteTextAnalyzer* This, IDWriteTextAnalysisSource* source, UINT32 position, UINT32 length, IDWriteTextAnalysisSink* sink) { - return This->lpVtbl->AnalyzeBidi(This, source, position, length, sink); -} -static inline HRESULT IDWriteTextAnalyzer_AnalyzeNumberSubstitution(IDWriteTextAnalyzer* This, IDWriteTextAnalysisSource* source, UINT32 position, UINT32 length, IDWriteTextAnalysisSink* sink) { - return This->lpVtbl->AnalyzeNumberSubstitution(This, source, position, length, sink); -} -static inline HRESULT IDWriteTextAnalyzer_AnalyzeLineBreakpoints(IDWriteTextAnalyzer* This, IDWriteTextAnalysisSource* source, UINT32 position, UINT32 length, IDWriteTextAnalysisSink* sink) { - return This->lpVtbl->AnalyzeLineBreakpoints(This, source, position, length, sink); -} -static inline HRESULT IDWriteTextAnalyzer_GetGlyphs(IDWriteTextAnalyzer* This, const WCHAR* text, UINT32 length, IDWriteFontFace* font_face, WINBOOL is_sideways, WINBOOL is_rtl, const DWRITE_SCRIPT_ANALYSIS* analysis, const WCHAR* locale, IDWriteNumberSubstitution* substitution, const DWRITE_TYPOGRAPHIC_FEATURES** features, const UINT32* feature_range_len, UINT32 feature_ranges, UINT32 max_glyph_count, UINT16* clustermap, DWRITE_SHAPING_TEXT_PROPERTIES* text_props, UINT16* glyph_indices, DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, UINT32* actual_glyph_count) { - return This->lpVtbl->GetGlyphs(This, text, length, font_face, is_sideways, is_rtl, analysis, locale, substitution, features, feature_range_len, feature_ranges, max_glyph_count, clustermap, text_props, glyph_indices, glyph_props, actual_glyph_count); -} -static inline HRESULT IDWriteTextAnalyzer_GetGlyphPlacements(IDWriteTextAnalyzer* This, const WCHAR* text, const UINT16* clustermap, DWRITE_SHAPING_TEXT_PROPERTIES* props, UINT32 text_len, const UINT16* glyph_indices, const DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, UINT32 glyph_count, IDWriteFontFace* font_face, FLOAT fontEmSize, WINBOOL is_sideways, WINBOOL is_rtl, const DWRITE_SCRIPT_ANALYSIS* analysis, const WCHAR* locale, const DWRITE_TYPOGRAPHIC_FEATURES** features, const UINT32* feature_range_len, UINT32 feature_ranges, FLOAT* glyph_advances, DWRITE_GLYPH_OFFSET* glyph_offsets) { - return This->lpVtbl->GetGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, is_sideways, is_rtl, analysis, locale, features, feature_range_len, feature_ranges, glyph_advances, glyph_offsets); -} -static inline HRESULT IDWriteTextAnalyzer_GetGdiCompatibleGlyphPlacements(IDWriteTextAnalyzer* This, const WCHAR* text, const UINT16* clustermap, DWRITE_SHAPING_TEXT_PROPERTIES* props, UINT32 text_len, const UINT16* glyph_indices, const DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, UINT32 glyph_count, IDWriteFontFace* font_face, FLOAT fontEmSize, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, WINBOOL is_sideways, WINBOOL is_rtl, const DWRITE_SCRIPT_ANALYSIS* analysis, const WCHAR* locale, const DWRITE_TYPOGRAPHIC_FEATURES** features, const UINT32* feature_range_lengths, UINT32 feature_ranges, FLOAT* glyph_advances, DWRITE_GLYPH_OFFSET* glyph_offsets) { - return This->lpVtbl->GetGdiCompatibleGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, pixels_per_dip, transform, use_gdi_natural, is_sideways, is_rtl, analysis, locale, features, feature_range_lengths, feature_ranges, glyph_advances, glyph_offsets); -} -#endif -#endif - -#endif - -#endif /* __IDWriteTextAnalyzer_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteGlyphRunAnalysis interface - */ -#ifndef __IDWriteGlyphRunAnalysis_INTERFACE_DEFINED__ -#define __IDWriteGlyphRunAnalysis_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteGlyphRunAnalysis, 0x7d97dbf7, 0xe085, 0x42d4, 0x81, 0xe3, 0x6a, 0x88, 0x3b, 0xde, 0xd1, 0x18); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("7d97dbf7-e085-42d4-81e3-6a883bded118") -IDWriteGlyphRunAnalysis : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE GetAlphaTextureBounds( - DWRITE_TEXTURE_TYPE type, - RECT * bounds) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateAlphaTexture( - DWRITE_TEXTURE_TYPE type, - const RECT* bounds, - BYTE* alphaValues, - UINT32 bufferSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAlphaBlendParams( - IDWriteRenderingParams * renderingParams, - FLOAT * blendGamma, - FLOAT * blendEnhancedContrast, - FLOAT * blendClearTypeLevel) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteGlyphRunAnalysis, 0x7d97dbf7, 0xe085, 0x42d4, 0x81, 0xe3, 0x6a, 0x88, 0x3b, 0xde, 0xd1, 0x18) -#endif -#else -typedef struct IDWriteGlyphRunAnalysisVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteGlyphRunAnalysis* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteGlyphRunAnalysis* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteGlyphRunAnalysis* This); - - /*** IDWriteGlyphRunAnalysis methods ***/ - HRESULT(STDMETHODCALLTYPE* GetAlphaTextureBounds)( - IDWriteGlyphRunAnalysis* This, - DWRITE_TEXTURE_TYPE type, - RECT* bounds); - - HRESULT(STDMETHODCALLTYPE* CreateAlphaTexture)( - IDWriteGlyphRunAnalysis* This, - DWRITE_TEXTURE_TYPE type, - const RECT* bounds, - BYTE* alphaValues, - UINT32 bufferSize); - - HRESULT(STDMETHODCALLTYPE* GetAlphaBlendParams)( - IDWriteGlyphRunAnalysis* This, - IDWriteRenderingParams* renderingParams, - FLOAT* blendGamma, - FLOAT* blendEnhancedContrast, - FLOAT* blendClearTypeLevel); - - END_INTERFACE -} IDWriteGlyphRunAnalysisVtbl; - -interface IDWriteGlyphRunAnalysis { - CONST_VTBL IDWriteGlyphRunAnalysisVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteGlyphRunAnalysis_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteGlyphRunAnalysis_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteGlyphRunAnalysis_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteGlyphRunAnalysis methods ***/ -#define IDWriteGlyphRunAnalysis_GetAlphaTextureBounds(This, type, bounds) (This)->lpVtbl->GetAlphaTextureBounds(This, type, bounds) -#define IDWriteGlyphRunAnalysis_CreateAlphaTexture(This, type, bounds, alphaValues, bufferSize) (This)->lpVtbl->CreateAlphaTexture(This, type, bounds, alphaValues, bufferSize) -#define IDWriteGlyphRunAnalysis_GetAlphaBlendParams(This, renderingParams, blendGamma, blendEnhancedContrast, blendClearTypeLevel) (This)->lpVtbl->GetAlphaBlendParams(This, renderingParams, blendGamma, blendEnhancedContrast, blendClearTypeLevel) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteGlyphRunAnalysis_QueryInterface(IDWriteGlyphRunAnalysis* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteGlyphRunAnalysis_AddRef(IDWriteGlyphRunAnalysis* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteGlyphRunAnalysis_Release(IDWriteGlyphRunAnalysis* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteGlyphRunAnalysis methods ***/ -static inline HRESULT IDWriteGlyphRunAnalysis_GetAlphaTextureBounds(IDWriteGlyphRunAnalysis* This, DWRITE_TEXTURE_TYPE type, RECT* bounds) { - return This->lpVtbl->GetAlphaTextureBounds(This, type, bounds); -} -static inline HRESULT IDWriteGlyphRunAnalysis_CreateAlphaTexture(IDWriteGlyphRunAnalysis* This, DWRITE_TEXTURE_TYPE type, const RECT* bounds, BYTE* alphaValues, UINT32 bufferSize) { - return This->lpVtbl->CreateAlphaTexture(This, type, bounds, alphaValues, bufferSize); -} -static inline HRESULT IDWriteGlyphRunAnalysis_GetAlphaBlendParams(IDWriteGlyphRunAnalysis* This, IDWriteRenderingParams* renderingParams, FLOAT* blendGamma, FLOAT* blendEnhancedContrast, FLOAT* blendClearTypeLevel) { - return This->lpVtbl->GetAlphaBlendParams(This, renderingParams, blendGamma, blendEnhancedContrast, blendClearTypeLevel); -} -#endif -#endif - -#endif - -#endif /* __IDWriteGlyphRunAnalysis_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFactory interface - */ -#ifndef __IDWriteFactory_INTERFACE_DEFINED__ -#define __IDWriteFactory_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFactory, 0xb859ee5a, 0xd838, 0x4b5b, 0xa2, 0xe8, 0x1a, 0xdc, 0x7d, 0x93, 0xdb, 0x48); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("b859ee5a-d838-4b5b-a2e8-1adc7d93db48") -IDWriteFactory : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection( - IDWriteFontCollection * *collection, - WINBOOL check_for_updates = FALSE) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateCustomFontCollection( - IDWriteFontCollectionLoader * loader, - const void* key, - UINT32 key_size, - IDWriteFontCollection** collection) = 0; - - virtual HRESULT STDMETHODCALLTYPE RegisterFontCollectionLoader( - IDWriteFontCollectionLoader * loader) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnregisterFontCollectionLoader( - IDWriteFontCollectionLoader * loader) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontFileReference( - const WCHAR* path, - const FILETIME* writetime, - IDWriteFontFile** font_file) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateCustomFontFileReference( - const void* reference_key, - UINT32 key_size, - IDWriteFontFileLoader* loader, - IDWriteFontFile** font_file) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontFace( - DWRITE_FONT_FACE_TYPE facetype, - UINT32 files_number, - IDWriteFontFile* const* font_files, - UINT32 index, - DWRITE_FONT_SIMULATIONS sim_flags, - IDWriteFontFace** font_face) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateRenderingParams( - IDWriteRenderingParams * *params) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateMonitorRenderingParams( - HMONITOR monitor, - IDWriteRenderingParams * *params) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams( - FLOAT gamma, - FLOAT enhancedContrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams * *params) = 0; - - virtual HRESULT STDMETHODCALLTYPE RegisterFontFileLoader( - IDWriteFontFileLoader * loader) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnregisterFontFileLoader( - IDWriteFontFileLoader * loader) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateTextFormat( - const WCHAR* family_name, - IDWriteFontCollection* collection, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STYLE style, - DWRITE_FONT_STRETCH stretch, - FLOAT size, - const WCHAR* locale, - IDWriteTextFormat** format) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateTypography( - IDWriteTypography * *typography) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGdiInterop( - IDWriteGdiInterop * *gdi_interop) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateTextLayout( - const WCHAR* string, - UINT32 len, - IDWriteTextFormat* format, - FLOAT max_width, - FLOAT max_height, - IDWriteTextLayout** layout) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateGdiCompatibleTextLayout( - const WCHAR* string, - UINT32 len, - IDWriteTextFormat* format, - FLOAT layout_width, - FLOAT layout_height, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - IDWriteTextLayout** layout) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateEllipsisTrimmingSign( - IDWriteTextFormat * format, - IDWriteInlineObject * *trimming_sign) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateTextAnalyzer( - IDWriteTextAnalyzer * *analyzer) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateNumberSubstitution( - DWRITE_NUMBER_SUBSTITUTION_METHOD method, - const WCHAR* locale, - WINBOOL ignore_user_override, - IDWriteNumberSubstitution** substitution) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateGlyphRunAnalysis( - const DWRITE_GLYPH_RUN* glyph_run, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - FLOAT baseline_x, - FLOAT baseline_y, - IDWriteGlyphRunAnalysis** analysis) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFactory, 0xb859ee5a, 0xd838, 0x4b5b, 0xa2, 0xe8, 0x1a, 0xdc, 0x7d, 0x93, 0xdb, 0x48) -#endif -#else -typedef struct IDWriteFactoryVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFactory* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFactory* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFactory* This); - - /*** IDWriteFactory methods ***/ - HRESULT(STDMETHODCALLTYPE* GetSystemFontCollection)( - IDWriteFactory* This, - IDWriteFontCollection** collection, - WINBOOL check_for_updates); - - HRESULT(STDMETHODCALLTYPE* CreateCustomFontCollection)( - IDWriteFactory* This, - IDWriteFontCollectionLoader* loader, - const void* key, - UINT32 key_size, - IDWriteFontCollection** collection); - - HRESULT(STDMETHODCALLTYPE* RegisterFontCollectionLoader)( - IDWriteFactory* This, - IDWriteFontCollectionLoader* loader); - - HRESULT(STDMETHODCALLTYPE* UnregisterFontCollectionLoader)( - IDWriteFactory* This, - IDWriteFontCollectionLoader* loader); - - HRESULT(STDMETHODCALLTYPE* CreateFontFileReference)( - IDWriteFactory* This, - const WCHAR* path, - const FILETIME* writetime, - IDWriteFontFile** font_file); - - HRESULT(STDMETHODCALLTYPE* CreateCustomFontFileReference)( - IDWriteFactory* This, - const void* reference_key, - UINT32 key_size, - IDWriteFontFileLoader* loader, - IDWriteFontFile** font_file); - - HRESULT(STDMETHODCALLTYPE* CreateFontFace)( - IDWriteFactory* This, - DWRITE_FONT_FACE_TYPE facetype, - UINT32 files_number, - IDWriteFontFile* const* font_files, - UINT32 index, - DWRITE_FONT_SIMULATIONS sim_flags, - IDWriteFontFace** font_face); - - HRESULT(STDMETHODCALLTYPE* CreateRenderingParams)( - IDWriteFactory* This, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* CreateMonitorRenderingParams)( - IDWriteFactory* This, - HMONITOR monitor, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* CreateCustomRenderingParams)( - IDWriteFactory* This, - FLOAT gamma, - FLOAT enhancedContrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* RegisterFontFileLoader)( - IDWriteFactory* This, - IDWriteFontFileLoader* loader); - - HRESULT(STDMETHODCALLTYPE* UnregisterFontFileLoader)( - IDWriteFactory* This, - IDWriteFontFileLoader* loader); - - HRESULT(STDMETHODCALLTYPE* CreateTextFormat)( - IDWriteFactory* This, - const WCHAR* family_name, - IDWriteFontCollection* collection, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STYLE style, - DWRITE_FONT_STRETCH stretch, - FLOAT size, - const WCHAR* locale, - IDWriteTextFormat** format); - - HRESULT(STDMETHODCALLTYPE* CreateTypography)( - IDWriteFactory* This, - IDWriteTypography** typography); - - HRESULT(STDMETHODCALLTYPE* GetGdiInterop)( - IDWriteFactory* This, - IDWriteGdiInterop** gdi_interop); - - HRESULT(STDMETHODCALLTYPE* CreateTextLayout)( - IDWriteFactory* This, - const WCHAR* string, - UINT32 len, - IDWriteTextFormat* format, - FLOAT max_width, - FLOAT max_height, - IDWriteTextLayout** layout); - - HRESULT(STDMETHODCALLTYPE* CreateGdiCompatibleTextLayout)( - IDWriteFactory* This, - const WCHAR* string, - UINT32 len, - IDWriteTextFormat* format, - FLOAT layout_width, - FLOAT layout_height, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - IDWriteTextLayout** layout); - - HRESULT(STDMETHODCALLTYPE* CreateEllipsisTrimmingSign)( - IDWriteFactory* This, - IDWriteTextFormat* format, - IDWriteInlineObject** trimming_sign); - - HRESULT(STDMETHODCALLTYPE* CreateTextAnalyzer)( - IDWriteFactory* This, - IDWriteTextAnalyzer** analyzer); - - HRESULT(STDMETHODCALLTYPE* CreateNumberSubstitution)( - IDWriteFactory* This, - DWRITE_NUMBER_SUBSTITUTION_METHOD method, - const WCHAR* locale, - WINBOOL ignore_user_override, - IDWriteNumberSubstitution** substitution); - - HRESULT(STDMETHODCALLTYPE* CreateGlyphRunAnalysis)( - IDWriteFactory* This, - const DWRITE_GLYPH_RUN* glyph_run, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - FLOAT baseline_x, - FLOAT baseline_y, - IDWriteGlyphRunAnalysis** analysis); - - END_INTERFACE -} IDWriteFactoryVtbl; - -interface IDWriteFactory { - CONST_VTBL IDWriteFactoryVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFactory_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFactory_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFactory_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFactory methods ***/ -#define IDWriteFactory_GetSystemFontCollection(This, collection, check_for_updates) (This)->lpVtbl->GetSystemFontCollection(This, collection, check_for_updates) -#define IDWriteFactory_CreateCustomFontCollection(This, loader, key, key_size, collection) (This)->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection) -#define IDWriteFactory_RegisterFontCollectionLoader(This, loader) (This)->lpVtbl->RegisterFontCollectionLoader(This, loader) -#define IDWriteFactory_UnregisterFontCollectionLoader(This, loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This, loader) -#define IDWriteFactory_CreateFontFileReference(This, path, writetime, font_file) (This)->lpVtbl->CreateFontFileReference(This, path, writetime, font_file) -#define IDWriteFactory_CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) (This)->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) -#define IDWriteFactory_CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) (This)->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) -#define IDWriteFactory_CreateRenderingParams(This, params) (This)->lpVtbl->CreateRenderingParams(This, params) -#define IDWriteFactory_CreateMonitorRenderingParams(This, monitor, params) (This)->lpVtbl->CreateMonitorRenderingParams(This, monitor, params) -#define IDWriteFactory_CreateCustomRenderingParams(This, gamma, enhancedContrast, cleartype_level, geometry, mode, params) (This)->lpVtbl->CreateCustomRenderingParams(This, gamma, enhancedContrast, cleartype_level, geometry, mode, params) -#define IDWriteFactory_RegisterFontFileLoader(This, loader) (This)->lpVtbl->RegisterFontFileLoader(This, loader) -#define IDWriteFactory_UnregisterFontFileLoader(This, loader) (This)->lpVtbl->UnregisterFontFileLoader(This, loader) -#define IDWriteFactory_CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format) (This)->lpVtbl->CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format) -#define IDWriteFactory_CreateTypography(This, typography) (This)->lpVtbl->CreateTypography(This, typography) -#define IDWriteFactory_GetGdiInterop(This, gdi_interop) (This)->lpVtbl->GetGdiInterop(This, gdi_interop) -#define IDWriteFactory_CreateTextLayout(This, string, len, format, max_width, max_height, layout) (This)->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout) -#define IDWriteFactory_CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) -#define IDWriteFactory_CreateEllipsisTrimmingSign(This, format, trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign) -#define IDWriteFactory_CreateTextAnalyzer(This, analyzer) (This)->lpVtbl->CreateTextAnalyzer(This, analyzer) -#define IDWriteFactory_CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) (This)->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) -#define IDWriteFactory_CreateGlyphRunAnalysis(This, glyph_run, pixels_per_dip, transform, rendering_mode, measuring_mode, baseline_x, baseline_y, analysis) (This)->lpVtbl->CreateGlyphRunAnalysis(This, glyph_run, pixels_per_dip, transform, rendering_mode, measuring_mode, baseline_x, baseline_y, analysis) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFactory_QueryInterface(IDWriteFactory* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFactory_AddRef(IDWriteFactory* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFactory_Release(IDWriteFactory* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFactory methods ***/ -static inline HRESULT IDWriteFactory_GetSystemFontCollection(IDWriteFactory* This, IDWriteFontCollection** collection, WINBOOL check_for_updates) { - return This->lpVtbl->GetSystemFontCollection(This, collection, check_for_updates); -} -static inline HRESULT IDWriteFactory_CreateCustomFontCollection(IDWriteFactory* This, IDWriteFontCollectionLoader* loader, const void* key, UINT32 key_size, IDWriteFontCollection** collection) { - return This->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection); -} -static inline HRESULT IDWriteFactory_RegisterFontCollectionLoader(IDWriteFactory* This, IDWriteFontCollectionLoader* loader) { - return This->lpVtbl->RegisterFontCollectionLoader(This, loader); -} -static inline HRESULT IDWriteFactory_UnregisterFontCollectionLoader(IDWriteFactory* This, IDWriteFontCollectionLoader* loader) { - return This->lpVtbl->UnregisterFontCollectionLoader(This, loader); -} -static inline HRESULT IDWriteFactory_CreateFontFileReference(IDWriteFactory* This, const WCHAR* path, const FILETIME* writetime, IDWriteFontFile** font_file) { - return This->lpVtbl->CreateFontFileReference(This, path, writetime, font_file); -} -static inline HRESULT IDWriteFactory_CreateCustomFontFileReference(IDWriteFactory* This, const void* reference_key, UINT32 key_size, IDWriteFontFileLoader* loader, IDWriteFontFile** font_file) { - return This->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file); -} -static inline HRESULT IDWriteFactory_CreateFontFace(IDWriteFactory* This, DWRITE_FONT_FACE_TYPE facetype, UINT32 files_number, IDWriteFontFile* const* font_files, UINT32 index, DWRITE_FONT_SIMULATIONS sim_flags, IDWriteFontFace** font_face) { - return This->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face); -} -static inline HRESULT IDWriteFactory_CreateRenderingParams(IDWriteFactory* This, IDWriteRenderingParams** params) { - return This->lpVtbl->CreateRenderingParams(This, params); -} -static inline HRESULT IDWriteFactory_CreateMonitorRenderingParams(IDWriteFactory* This, HMONITOR monitor, IDWriteRenderingParams** params) { - return This->lpVtbl->CreateMonitorRenderingParams(This, monitor, params); -} -static inline HRESULT IDWriteFactory_CreateCustomRenderingParams(IDWriteFactory* This, FLOAT gamma, FLOAT enhancedContrast, FLOAT cleartype_level, DWRITE_PIXEL_GEOMETRY geometry, DWRITE_RENDERING_MODE mode, IDWriteRenderingParams** params) { - return This->lpVtbl->CreateCustomRenderingParams(This, gamma, enhancedContrast, cleartype_level, geometry, mode, params); -} -static inline HRESULT IDWriteFactory_RegisterFontFileLoader(IDWriteFactory* This, IDWriteFontFileLoader* loader) { - return This->lpVtbl->RegisterFontFileLoader(This, loader); -} -static inline HRESULT IDWriteFactory_UnregisterFontFileLoader(IDWriteFactory* This, IDWriteFontFileLoader* loader) { - return This->lpVtbl->UnregisterFontFileLoader(This, loader); -} -static inline HRESULT IDWriteFactory_CreateTextFormat(IDWriteFactory* This, const WCHAR* family_name, IDWriteFontCollection* collection, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STYLE style, DWRITE_FONT_STRETCH stretch, FLOAT size, const WCHAR* locale, IDWriteTextFormat** format) { - return This->lpVtbl->CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format); -} -static inline HRESULT IDWriteFactory_CreateTypography(IDWriteFactory* This, IDWriteTypography** typography) { - return This->lpVtbl->CreateTypography(This, typography); -} -static inline HRESULT IDWriteFactory_GetGdiInterop(IDWriteFactory* This, IDWriteGdiInterop** gdi_interop) { - return This->lpVtbl->GetGdiInterop(This, gdi_interop); -} -static inline HRESULT IDWriteFactory_CreateTextLayout(IDWriteFactory* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT max_width, FLOAT max_height, IDWriteTextLayout** layout) { - return This->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout); -} -static inline HRESULT IDWriteFactory_CreateGdiCompatibleTextLayout(IDWriteFactory* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT layout_width, FLOAT layout_height, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, IDWriteTextLayout** layout) { - return This->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout); -} -static inline HRESULT IDWriteFactory_CreateEllipsisTrimmingSign(IDWriteFactory* This, IDWriteTextFormat* format, IDWriteInlineObject** trimming_sign) { - return This->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign); -} -static inline HRESULT IDWriteFactory_CreateTextAnalyzer(IDWriteFactory* This, IDWriteTextAnalyzer** analyzer) { - return This->lpVtbl->CreateTextAnalyzer(This, analyzer); -} -static inline HRESULT IDWriteFactory_CreateNumberSubstitution(IDWriteFactory* This, DWRITE_NUMBER_SUBSTITUTION_METHOD method, const WCHAR* locale, WINBOOL ignore_user_override, IDWriteNumberSubstitution** substitution) { - return This->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution); -} -static inline HRESULT IDWriteFactory_CreateGlyphRunAnalysis(IDWriteFactory* This, const DWRITE_GLYPH_RUN* glyph_run, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, DWRITE_RENDERING_MODE rendering_mode, DWRITE_MEASURING_MODE measuring_mode, FLOAT baseline_x, FLOAT baseline_y, IDWriteGlyphRunAnalysis** analysis) { - return This->lpVtbl->CreateGlyphRunAnalysis(This, glyph_run, pixels_per_dip, transform, rendering_mode, measuring_mode, baseline_x, baseline_y, analysis); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFactory_INTERFACE_DEFINED__ */ - -HRESULT WINAPI DWriteCreateFactory(DWRITE_FACTORY_TYPE, REFIID, IUnknown**); -#define FACILITY_DWRITE 0x898 -#define DWRITE_ERR_BASE 0x5000 -#define MAKE_DWRITE_HR(severity, code) MAKE_HRESULT(severity, FACILITY_DWRITE, (DWRITE_ERR_BASE + code)) -#define MAKE_DWRITE_HR_ERR(code) MAKE_DWRITE_HR(SEVERITY_ERROR, code) -/* Begin additional prototypes for all interfaces */ - -/* End additional prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif /* __dwrite_h__ */ diff --git a/src/text/dwrite_2.h b/src/text/dwrite_2.h deleted file mode 100644 index 049da566e..000000000 --- a/src/text/dwrite_2.h +++ /dev/null @@ -1,3252 +0,0 @@ -/*** Autogenerated by WIDL 11.0-rc1 from include/dwrite_2.idl - Do not edit ***/ - -#define COBJMACROS - -#ifdef _WIN32 -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 475 -#endif -#include -#include -#endif - -#ifndef COM_NO_WINDOWS_H -#include -#include -#endif - -#ifndef __dwrite_2_h__ -#define __dwrite_2_h__ - -/* Forward declarations */ - -#ifndef __IDWriteTextRenderer1_FWD_DEFINED__ -#define __IDWriteTextRenderer1_FWD_DEFINED__ -typedef interface IDWriteTextRenderer1 IDWriteTextRenderer1; -#ifdef __cplusplus -interface IDWriteTextRenderer1; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFallback_FWD_DEFINED__ -#define __IDWriteFontFallback_FWD_DEFINED__ -typedef interface IDWriteFontFallback IDWriteFontFallback; -#ifdef __cplusplus -interface IDWriteFontFallback; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteTextFormat1_FWD_DEFINED__ -#define __IDWriteTextFormat1_FWD_DEFINED__ -typedef interface IDWriteTextFormat1 IDWriteTextFormat1; -#ifdef __cplusplus -interface IDWriteTextFormat1; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteTextLayout2_FWD_DEFINED__ -#define __IDWriteTextLayout2_FWD_DEFINED__ -typedef interface IDWriteTextLayout2 IDWriteTextLayout2; -#ifdef __cplusplus -interface IDWriteTextLayout2; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteTextAnalyzer2_FWD_DEFINED__ -#define __IDWriteTextAnalyzer2_FWD_DEFINED__ -typedef interface IDWriteTextAnalyzer2 IDWriteTextAnalyzer2; -#ifdef __cplusplus -interface IDWriteTextAnalyzer2; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFallbackBuilder_FWD_DEFINED__ -#define __IDWriteFontFallbackBuilder_FWD_DEFINED__ -typedef interface IDWriteFontFallbackBuilder IDWriteFontFallbackBuilder; -#ifdef __cplusplus -interface IDWriteFontFallbackBuilder; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFont2_FWD_DEFINED__ -#define __IDWriteFont2_FWD_DEFINED__ -typedef interface IDWriteFont2 IDWriteFont2; -#ifdef __cplusplus -interface IDWriteFont2; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFace2_FWD_DEFINED__ -#define __IDWriteFontFace2_FWD_DEFINED__ -typedef interface IDWriteFontFace2 IDWriteFontFace2; -#ifdef __cplusplus -interface IDWriteFontFace2; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteColorGlyphRunEnumerator_FWD_DEFINED__ -#define __IDWriteColorGlyphRunEnumerator_FWD_DEFINED__ -typedef interface IDWriteColorGlyphRunEnumerator IDWriteColorGlyphRunEnumerator; -#ifdef __cplusplus -interface IDWriteColorGlyphRunEnumerator; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteRenderingParams2_FWD_DEFINED__ -#define __IDWriteRenderingParams2_FWD_DEFINED__ -typedef interface IDWriteRenderingParams2 IDWriteRenderingParams2; -#ifdef __cplusplus -interface IDWriteRenderingParams2; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFactory2_FWD_DEFINED__ -#define __IDWriteFactory2_FWD_DEFINED__ -typedef interface IDWriteFactory2 IDWriteFactory2; -#ifdef __cplusplus -interface IDWriteFactory2; -#endif /* __cplusplus */ -#endif - -/* Headers for imported files */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef enum DWRITE_OPTICAL_ALIGNMENT { - DWRITE_OPTICAL_ALIGNMENT_NONE = 0, - DWRITE_OPTICAL_ALIGNMENT_NO_SIDE_BEARINGS = 1 -} DWRITE_OPTICAL_ALIGNMENT; -typedef enum DWRITE_GRID_FIT_MODE { - DWRITE_GRID_FIT_MODE_DEFAULT = 0, - DWRITE_GRID_FIT_MODE_DISABLED = 1, - DWRITE_GRID_FIT_MODE_ENABLED = 2 -} DWRITE_GRID_FIT_MODE; -typedef struct DWRITE_TEXT_METRICS1 { - FLOAT left; - FLOAT top; - FLOAT width; - FLOAT widthIncludingTrailingWhitespace; - FLOAT height; - FLOAT layoutWidth; - FLOAT layoutHeight; - UINT32 maxBidiReorderingDepth; - UINT32 lineCount; - FLOAT heightIncludingTrailingWhitespace; -} DWRITE_TEXT_METRICS1; -#ifndef D3DCOLORVALUE_DEFINED -typedef struct _D3DCOLORVALUE { - __C89_NAMELESS union { - FLOAT r; - FLOAT dvR; - } __C89_NAMELESSUNIONNAME1; - __C89_NAMELESS union { - FLOAT g; - FLOAT dvG; - } __C89_NAMELESSUNIONNAME2; - __C89_NAMELESS union { - FLOAT b; - FLOAT dvB; - } __C89_NAMELESSUNIONNAME3; - __C89_NAMELESS union { - FLOAT a; - FLOAT dvA; - } __C89_NAMELESSUNIONNAME4; -} D3DCOLORVALUE; -#define D3DCOLORVALUE_DEFINED -#endif -typedef D3DCOLORVALUE DWRITE_COLOR_F; -typedef struct DWRITE_COLOR_GLYPH_RUN { - DWRITE_GLYPH_RUN glyphRun; - DWRITE_GLYPH_RUN_DESCRIPTION* glyphRunDescription; - FLOAT baselineOriginX; - FLOAT baselineOriginY; - DWRITE_COLOR_F runColor; - UINT16 paletteIndex; -} DWRITE_COLOR_GLYPH_RUN; -/***************************************************************************** - * IDWriteTextRenderer1 interface - */ -#ifndef __IDWriteTextRenderer1_INTERFACE_DEFINED__ -#define __IDWriteTextRenderer1_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteTextRenderer1, 0xd3e0e934, 0x22a0, 0x427e, 0xaa, 0xe4, 0x7d, 0x95, 0x74, 0xb5, 0x9d, 0xb1); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("d3e0e934-22a0-427e-aae4-7d9574b59db1") -IDWriteTextRenderer1 : public IDWriteTextRenderer { - virtual HRESULT STDMETHODCALLTYPE DrawGlyphRun( - void* context, - FLOAT originX, - FLOAT originY, - DWRITE_GLYPH_ORIENTATION_ANGLE angle, - DWRITE_MEASURING_MODE mode, - const DWRITE_GLYPH_RUN* run, - const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, - IUnknown* effect) = 0; - - virtual HRESULT STDMETHODCALLTYPE DrawUnderline( - void* context, - FLOAT originX, - FLOAT originY, - DWRITE_GLYPH_ORIENTATION_ANGLE angle, - const DWRITE_UNDERLINE* underline, - IUnknown* effect) = 0; - - virtual HRESULT STDMETHODCALLTYPE DrawStrikethrough( - void* context, - FLOAT originX, - FLOAT originY, - DWRITE_GLYPH_ORIENTATION_ANGLE angle, - const DWRITE_STRIKETHROUGH* strikethrough, - IUnknown* effect) = 0; - - virtual HRESULT STDMETHODCALLTYPE DrawInlineObject( - void* context, - FLOAT originX, - FLOAT originY, - DWRITE_GLYPH_ORIENTATION_ANGLE angle, - IDWriteInlineObject* inlineObject, - WINBOOL is_sideways, - WINBOOL is_rtl, - IUnknown* effect) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextRenderer1, 0xd3e0e934, 0x22a0, 0x427e, 0xaa, 0xe4, 0x7d, 0x95, 0x74, 0xb5, 0x9d, 0xb1) -#endif -#else -typedef struct IDWriteTextRenderer1Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteTextRenderer1* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteTextRenderer1* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteTextRenderer1* This); - - /*** IDWritePixelSnapping methods ***/ - HRESULT(STDMETHODCALLTYPE* IsPixelSnappingDisabled)( - IDWriteTextRenderer1* This, - void* client_drawingcontext, - WINBOOL* disabled); - - HRESULT(STDMETHODCALLTYPE* GetCurrentTransform)( - IDWriteTextRenderer1* This, - void* client_drawingcontext, - DWRITE_MATRIX* transform); - - HRESULT(STDMETHODCALLTYPE* GetPixelsPerDip)( - IDWriteTextRenderer1* This, - void* client_drawingcontext, - FLOAT* pixels_per_dip); - - /*** IDWriteTextRenderer methods ***/ - HRESULT(STDMETHODCALLTYPE* DrawGlyphRun)( - IDWriteTextRenderer1* This, - void* client_drawingcontext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - DWRITE_MEASURING_MODE mode, - const DWRITE_GLYPH_RUN* glyph_run, - const DWRITE_GLYPH_RUN_DESCRIPTION* run_descr, - IUnknown* drawing_effect); - - HRESULT(STDMETHODCALLTYPE* DrawUnderline)( - IDWriteTextRenderer1* This, - void* client_drawingcontext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - const DWRITE_UNDERLINE* underline, - IUnknown* drawing_effect); - - HRESULT(STDMETHODCALLTYPE* DrawStrikethrough)( - IDWriteTextRenderer1* This, - void* client_drawingcontext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - const DWRITE_STRIKETHROUGH* strikethrough, - IUnknown* drawing_effect); - - HRESULT(STDMETHODCALLTYPE* DrawInlineObject)( - IDWriteTextRenderer1* This, - void* client_drawingcontext, - FLOAT originX, - FLOAT originY, - IDWriteInlineObject* object, - WINBOOL is_sideways, - WINBOOL is_rtl, - IUnknown* drawing_effect); - - /*** IDWriteTextRenderer1 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteTextRenderer1_DrawGlyphRun)( - IDWriteTextRenderer1* This, - void* context, - FLOAT originX, - FLOAT originY, - DWRITE_GLYPH_ORIENTATION_ANGLE angle, - DWRITE_MEASURING_MODE mode, - const DWRITE_GLYPH_RUN* run, - const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, - IUnknown* effect); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextRenderer1_DrawUnderline)( - IDWriteTextRenderer1* This, - void* context, - FLOAT originX, - FLOAT originY, - DWRITE_GLYPH_ORIENTATION_ANGLE angle, - const DWRITE_UNDERLINE* underline, - IUnknown* effect); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextRenderer1_DrawStrikethrough)( - IDWriteTextRenderer1* This, - void* context, - FLOAT originX, - FLOAT originY, - DWRITE_GLYPH_ORIENTATION_ANGLE angle, - const DWRITE_STRIKETHROUGH* strikethrough, - IUnknown* effect); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextRenderer1_DrawInlineObject)( - IDWriteTextRenderer1* This, - void* context, - FLOAT originX, - FLOAT originY, - DWRITE_GLYPH_ORIENTATION_ANGLE angle, - IDWriteInlineObject* inlineObject, - WINBOOL is_sideways, - WINBOOL is_rtl, - IUnknown* effect); - - END_INTERFACE -} IDWriteTextRenderer1Vtbl; - -interface IDWriteTextRenderer1 { - CONST_VTBL IDWriteTextRenderer1Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteTextRenderer1_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteTextRenderer1_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteTextRenderer1_Release(This) (This)->lpVtbl->Release(This) -/*** IDWritePixelSnapping methods ***/ -#define IDWriteTextRenderer1_IsPixelSnappingDisabled(This, client_drawingcontext, disabled) (This)->lpVtbl->IsPixelSnappingDisabled(This, client_drawingcontext, disabled) -#define IDWriteTextRenderer1_GetCurrentTransform(This, client_drawingcontext, transform) (This)->lpVtbl->GetCurrentTransform(This, client_drawingcontext, transform) -#define IDWriteTextRenderer1_GetPixelsPerDip(This, client_drawingcontext, pixels_per_dip) (This)->lpVtbl->GetPixelsPerDip(This, client_drawingcontext, pixels_per_dip) -/*** IDWriteTextRenderer methods ***/ -/*** IDWriteTextRenderer1 methods ***/ -#define IDWriteTextRenderer1_DrawGlyphRun(This, context, originX, originY, angle, mode, run, rundescr, effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawGlyphRun(This, context, originX, originY, angle, mode, run, rundescr, effect) -#define IDWriteTextRenderer1_DrawUnderline(This, context, originX, originY, angle, underline, effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawUnderline(This, context, originX, originY, angle, underline, effect) -#define IDWriteTextRenderer1_DrawStrikethrough(This, context, originX, originY, angle, strikethrough, effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawStrikethrough(This, context, originX, originY, angle, strikethrough, effect) -#define IDWriteTextRenderer1_DrawInlineObject(This, context, originX, originY, angle, inlineObject, is_sideways, is_rtl, effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawInlineObject(This, context, originX, originY, angle, inlineObject, is_sideways, is_rtl, effect) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteTextRenderer1_QueryInterface(IDWriteTextRenderer1* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteTextRenderer1_AddRef(IDWriteTextRenderer1* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteTextRenderer1_Release(IDWriteTextRenderer1* This) { - return This->lpVtbl->Release(This); -} -/*** IDWritePixelSnapping methods ***/ -static inline HRESULT IDWriteTextRenderer1_IsPixelSnappingDisabled(IDWriteTextRenderer1* This, void* client_drawingcontext, WINBOOL* disabled) { - return This->lpVtbl->IsPixelSnappingDisabled(This, client_drawingcontext, disabled); -} -static inline HRESULT IDWriteTextRenderer1_GetCurrentTransform(IDWriteTextRenderer1* This, void* client_drawingcontext, DWRITE_MATRIX* transform) { - return This->lpVtbl->GetCurrentTransform(This, client_drawingcontext, transform); -} -static inline HRESULT IDWriteTextRenderer1_GetPixelsPerDip(IDWriteTextRenderer1* This, void* client_drawingcontext, FLOAT* pixels_per_dip) { - return This->lpVtbl->GetPixelsPerDip(This, client_drawingcontext, pixels_per_dip); -} -/*** IDWriteTextRenderer methods ***/ -/*** IDWriteTextRenderer1 methods ***/ -static inline HRESULT IDWriteTextRenderer1_DrawGlyphRun(IDWriteTextRenderer1* This, void* context, FLOAT originX, FLOAT originY, DWRITE_GLYPH_ORIENTATION_ANGLE angle, DWRITE_MEASURING_MODE mode, const DWRITE_GLYPH_RUN* run, const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, IUnknown* effect) { - return This->lpVtbl->IDWriteTextRenderer1_DrawGlyphRun(This, context, originX, originY, angle, mode, run, rundescr, effect); -} -static inline HRESULT IDWriteTextRenderer1_DrawUnderline(IDWriteTextRenderer1* This, void* context, FLOAT originX, FLOAT originY, DWRITE_GLYPH_ORIENTATION_ANGLE angle, const DWRITE_UNDERLINE* underline, IUnknown* effect) { - return This->lpVtbl->IDWriteTextRenderer1_DrawUnderline(This, context, originX, originY, angle, underline, effect); -} -static inline HRESULT IDWriteTextRenderer1_DrawStrikethrough(IDWriteTextRenderer1* This, void* context, FLOAT originX, FLOAT originY, DWRITE_GLYPH_ORIENTATION_ANGLE angle, const DWRITE_STRIKETHROUGH* strikethrough, IUnknown* effect) { - return This->lpVtbl->IDWriteTextRenderer1_DrawStrikethrough(This, context, originX, originY, angle, strikethrough, effect); -} -static inline HRESULT IDWriteTextRenderer1_DrawInlineObject(IDWriteTextRenderer1* This, void* context, FLOAT originX, FLOAT originY, DWRITE_GLYPH_ORIENTATION_ANGLE angle, IDWriteInlineObject* inlineObject, WINBOOL is_sideways, WINBOOL is_rtl, IUnknown* effect) { - return This->lpVtbl->IDWriteTextRenderer1_DrawInlineObject(This, context, originX, originY, angle, inlineObject, is_sideways, is_rtl, effect); -} -#endif -#endif - -#endif - -#endif /* __IDWriteTextRenderer1_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontFallback interface - */ -#ifndef __IDWriteFontFallback_INTERFACE_DEFINED__ -#define __IDWriteFontFallback_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontFallback, 0xefa008f9, 0xf7a1, 0x48bf, 0xb0, 0x5c, 0xf2, 0x24, 0x71, 0x3c, 0xc0, 0xff); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("efa008f9-f7a1-48bf-b05c-f224713cc0ff") -IDWriteFontFallback : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE MapCharacters( - IDWriteTextAnalysisSource * source, - UINT32 position, - UINT32 length, - IDWriteFontCollection * basecollection, - const WCHAR* baseFamilyName, - DWRITE_FONT_WEIGHT baseWeight, - DWRITE_FONT_STYLE baseStyle, - DWRITE_FONT_STRETCH baseStretch, - UINT32* mappedLength, - IDWriteFont** mappedFont, - FLOAT* scale) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFallback, 0xefa008f9, 0xf7a1, 0x48bf, 0xb0, 0x5c, 0xf2, 0x24, 0x71, 0x3c, 0xc0, 0xff) -#endif -#else -typedef struct IDWriteFontFallbackVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontFallback* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontFallback* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontFallback* This); - - /*** IDWriteFontFallback methods ***/ - HRESULT(STDMETHODCALLTYPE* MapCharacters)( - IDWriteFontFallback* This, - IDWriteTextAnalysisSource* source, - UINT32 position, - UINT32 length, - IDWriteFontCollection* basecollection, - const WCHAR* baseFamilyName, - DWRITE_FONT_WEIGHT baseWeight, - DWRITE_FONT_STYLE baseStyle, - DWRITE_FONT_STRETCH baseStretch, - UINT32* mappedLength, - IDWriteFont** mappedFont, - FLOAT* scale); - - END_INTERFACE -} IDWriteFontFallbackVtbl; - -interface IDWriteFontFallback { - CONST_VTBL IDWriteFontFallbackVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontFallback_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontFallback_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontFallback_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontFallback methods ***/ -#define IDWriteFontFallback_MapCharacters(This, source, position, length, basecollection, baseFamilyName, baseWeight, baseStyle, baseStretch, mappedLength, mappedFont, scale) (This)->lpVtbl->MapCharacters(This, source, position, length, basecollection, baseFamilyName, baseWeight, baseStyle, baseStretch, mappedLength, mappedFont, scale) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFallback_QueryInterface(IDWriteFontFallback* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontFallback_AddRef(IDWriteFontFallback* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontFallback_Release(IDWriteFontFallback* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontFallback methods ***/ -static inline HRESULT IDWriteFontFallback_MapCharacters(IDWriteFontFallback* This, IDWriteTextAnalysisSource* source, UINT32 position, UINT32 length, IDWriteFontCollection* basecollection, const WCHAR* baseFamilyName, DWRITE_FONT_WEIGHT baseWeight, DWRITE_FONT_STYLE baseStyle, DWRITE_FONT_STRETCH baseStretch, UINT32* mappedLength, IDWriteFont** mappedFont, FLOAT* scale) { - return This->lpVtbl->MapCharacters(This, source, position, length, basecollection, baseFamilyName, baseWeight, baseStyle, baseStretch, mappedLength, mappedFont, scale); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontFallback_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteTextFormat1 interface - */ -#ifndef __IDWriteTextFormat1_INTERFACE_DEFINED__ -#define __IDWriteTextFormat1_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteTextFormat1, 0x5f174b49, 0x0d8b, 0x4cfb, 0x8b, 0xca, 0xf1, 0xcc, 0xe9, 0xd0, 0x6c, 0x67); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("5f174b49-0d8b-4cfb-8bca-f1cce9d06c67") -IDWriteTextFormat1 : public IDWriteTextFormat { - virtual HRESULT STDMETHODCALLTYPE SetVerticalGlyphOrientation( - DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) = 0; - - virtual DWRITE_VERTICAL_GLYPH_ORIENTATION STDMETHODCALLTYPE GetVerticalGlyphOrientation() = 0; - - virtual HRESULT STDMETHODCALLTYPE SetLastLineWrapping( - WINBOOL lastline_wrapping_enabled) = 0; - - virtual WINBOOL STDMETHODCALLTYPE GetLastLineWrapping() = 0; - - virtual HRESULT STDMETHODCALLTYPE SetOpticalAlignment( - DWRITE_OPTICAL_ALIGNMENT alignment) = 0; - - virtual DWRITE_OPTICAL_ALIGNMENT STDMETHODCALLTYPE GetOpticalAlignment() = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFontFallback( - IDWriteFontFallback * fallback) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontFallback( - IDWriteFontFallback * *fallback) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextFormat1, 0x5f174b49, 0x0d8b, 0x4cfb, 0x8b, 0xca, 0xf1, 0xcc, 0xe9, 0xd0, 0x6c, 0x67) -#endif -#else -typedef struct IDWriteTextFormat1Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteTextFormat1* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteTextFormat1* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteTextFormat1* This); - - /*** IDWriteTextFormat methods ***/ - HRESULT(STDMETHODCALLTYPE* SetTextAlignment)( - IDWriteTextFormat1* This, - DWRITE_TEXT_ALIGNMENT alignment); - - HRESULT(STDMETHODCALLTYPE* SetParagraphAlignment)( - IDWriteTextFormat1* This, - DWRITE_PARAGRAPH_ALIGNMENT alignment); - - HRESULT(STDMETHODCALLTYPE* SetWordWrapping)( - IDWriteTextFormat1* This, - DWRITE_WORD_WRAPPING wrapping); - - HRESULT(STDMETHODCALLTYPE* SetReadingDirection)( - IDWriteTextFormat1* This, - DWRITE_READING_DIRECTION direction); - - HRESULT(STDMETHODCALLTYPE* SetFlowDirection)( - IDWriteTextFormat1* This, - DWRITE_FLOW_DIRECTION direction); - - HRESULT(STDMETHODCALLTYPE* SetIncrementalTabStop)( - IDWriteTextFormat1* This, - FLOAT tabstop); - - HRESULT(STDMETHODCALLTYPE* SetTrimming)( - IDWriteTextFormat1* This, - const DWRITE_TRIMMING* trimming, - IDWriteInlineObject* trimming_sign); - - HRESULT(STDMETHODCALLTYPE* SetLineSpacing)( - IDWriteTextFormat1* This, - DWRITE_LINE_SPACING_METHOD spacing, - FLOAT line_spacing, - FLOAT baseline); - - DWRITE_TEXT_ALIGNMENT(STDMETHODCALLTYPE* GetTextAlignment)( - IDWriteTextFormat1* This); - - DWRITE_PARAGRAPH_ALIGNMENT(STDMETHODCALLTYPE* GetParagraphAlignment)( - IDWriteTextFormat1* This); - - DWRITE_WORD_WRAPPING(STDMETHODCALLTYPE* GetWordWrapping)( - IDWriteTextFormat1* This); - - DWRITE_READING_DIRECTION(STDMETHODCALLTYPE* GetReadingDirection)( - IDWriteTextFormat1* This); - - DWRITE_FLOW_DIRECTION(STDMETHODCALLTYPE* GetFlowDirection)( - IDWriteTextFormat1* This); - - FLOAT(STDMETHODCALLTYPE* GetIncrementalTabStop)( - IDWriteTextFormat1* This); - - HRESULT(STDMETHODCALLTYPE* GetTrimming)( - IDWriteTextFormat1* This, - DWRITE_TRIMMING* options, - IDWriteInlineObject** trimming_sign); - - HRESULT(STDMETHODCALLTYPE* GetLineSpacing)( - IDWriteTextFormat1* This, - DWRITE_LINE_SPACING_METHOD* method, - FLOAT* spacing, - FLOAT* baseline); - - HRESULT(STDMETHODCALLTYPE* GetFontCollection)( - IDWriteTextFormat1* This, - IDWriteFontCollection** collection); - - UINT32(STDMETHODCALLTYPE* GetFontFamilyNameLength)( - IDWriteTextFormat1* This); - - HRESULT(STDMETHODCALLTYPE* GetFontFamilyName)( - IDWriteTextFormat1* This, - WCHAR* name, - UINT32 size); - - DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetFontWeight)( - IDWriteTextFormat1* This); - - DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetFontStyle)( - IDWriteTextFormat1* This); - - DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetFontStretch)( - IDWriteTextFormat1* This); - - FLOAT(STDMETHODCALLTYPE* GetFontSize)( - IDWriteTextFormat1* This); - - UINT32(STDMETHODCALLTYPE* GetLocaleNameLength)( - IDWriteTextFormat1* This); - - HRESULT(STDMETHODCALLTYPE* GetLocaleName)( - IDWriteTextFormat1* This, - WCHAR* name, - UINT32 size); - - /*** IDWriteTextFormat1 methods ***/ - HRESULT(STDMETHODCALLTYPE* SetVerticalGlyphOrientation)( - IDWriteTextFormat1* This, - DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); - - DWRITE_VERTICAL_GLYPH_ORIENTATION(STDMETHODCALLTYPE* GetVerticalGlyphOrientation)( - IDWriteTextFormat1* This); - - HRESULT(STDMETHODCALLTYPE* SetLastLineWrapping)( - IDWriteTextFormat1* This, - WINBOOL lastline_wrapping_enabled); - - WINBOOL(STDMETHODCALLTYPE* GetLastLineWrapping)( - IDWriteTextFormat1* This); - - HRESULT(STDMETHODCALLTYPE* SetOpticalAlignment)( - IDWriteTextFormat1* This, - DWRITE_OPTICAL_ALIGNMENT alignment); - - DWRITE_OPTICAL_ALIGNMENT(STDMETHODCALLTYPE* GetOpticalAlignment)( - IDWriteTextFormat1* This); - - HRESULT(STDMETHODCALLTYPE* SetFontFallback)( - IDWriteTextFormat1* This, - IDWriteFontFallback* fallback); - - HRESULT(STDMETHODCALLTYPE* GetFontFallback)( - IDWriteTextFormat1* This, - IDWriteFontFallback** fallback); - - END_INTERFACE -} IDWriteTextFormat1Vtbl; - -interface IDWriteTextFormat1 { - CONST_VTBL IDWriteTextFormat1Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteTextFormat1_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteTextFormat1_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteTextFormat1_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteTextFormat methods ***/ -#define IDWriteTextFormat1_SetTextAlignment(This, alignment) (This)->lpVtbl->SetTextAlignment(This, alignment) -#define IDWriteTextFormat1_SetParagraphAlignment(This, alignment) (This)->lpVtbl->SetParagraphAlignment(This, alignment) -#define IDWriteTextFormat1_SetWordWrapping(This, wrapping) (This)->lpVtbl->SetWordWrapping(This, wrapping) -#define IDWriteTextFormat1_SetReadingDirection(This, direction) (This)->lpVtbl->SetReadingDirection(This, direction) -#define IDWriteTextFormat1_SetFlowDirection(This, direction) (This)->lpVtbl->SetFlowDirection(This, direction) -#define IDWriteTextFormat1_SetIncrementalTabStop(This, tabstop) (This)->lpVtbl->SetIncrementalTabStop(This, tabstop) -#define IDWriteTextFormat1_SetTrimming(This, trimming, trimming_sign) (This)->lpVtbl->SetTrimming(This, trimming, trimming_sign) -#define IDWriteTextFormat1_SetLineSpacing(This, spacing, line_spacing, baseline) (This)->lpVtbl->SetLineSpacing(This, spacing, line_spacing, baseline) -#define IDWriteTextFormat1_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) -#define IDWriteTextFormat1_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) -#define IDWriteTextFormat1_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) -#define IDWriteTextFormat1_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) -#define IDWriteTextFormat1_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) -#define IDWriteTextFormat1_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) -#define IDWriteTextFormat1_GetTrimming(This, options, trimming_sign) (This)->lpVtbl->GetTrimming(This, options, trimming_sign) -#define IDWriteTextFormat1_GetLineSpacing(This, method, spacing, baseline) (This)->lpVtbl->GetLineSpacing(This, method, spacing, baseline) -#define IDWriteTextFormat1_GetFontCollection(This, collection) (This)->lpVtbl->GetFontCollection(This, collection) -#define IDWriteTextFormat1_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This) -#define IDWriteTextFormat1_GetFontFamilyName(This, name, size) (This)->lpVtbl->GetFontFamilyName(This, name, size) -#define IDWriteTextFormat1_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This) -#define IDWriteTextFormat1_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This) -#define IDWriteTextFormat1_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This) -#define IDWriteTextFormat1_GetFontSize(This) (This)->lpVtbl->GetFontSize(This) -#define IDWriteTextFormat1_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This) -#define IDWriteTextFormat1_GetLocaleName(This, name, size) (This)->lpVtbl->GetLocaleName(This, name, size) -/*** IDWriteTextFormat1 methods ***/ -#define IDWriteTextFormat1_SetVerticalGlyphOrientation(This, orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This, orientation) -#define IDWriteTextFormat1_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) -#define IDWriteTextFormat1_SetLastLineWrapping(This, lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled) -#define IDWriteTextFormat1_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) -#define IDWriteTextFormat1_SetOpticalAlignment(This, alignment) (This)->lpVtbl->SetOpticalAlignment(This, alignment) -#define IDWriteTextFormat1_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) -#define IDWriteTextFormat1_SetFontFallback(This, fallback) (This)->lpVtbl->SetFontFallback(This, fallback) -#define IDWriteTextFormat1_GetFontFallback(This, fallback) (This)->lpVtbl->GetFontFallback(This, fallback) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteTextFormat1_QueryInterface(IDWriteTextFormat1* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteTextFormat1_AddRef(IDWriteTextFormat1* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteTextFormat1_Release(IDWriteTextFormat1* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteTextFormat methods ***/ -static inline HRESULT IDWriteTextFormat1_SetTextAlignment(IDWriteTextFormat1* This, DWRITE_TEXT_ALIGNMENT alignment) { - return This->lpVtbl->SetTextAlignment(This, alignment); -} -static inline HRESULT IDWriteTextFormat1_SetParagraphAlignment(IDWriteTextFormat1* This, DWRITE_PARAGRAPH_ALIGNMENT alignment) { - return This->lpVtbl->SetParagraphAlignment(This, alignment); -} -static inline HRESULT IDWriteTextFormat1_SetWordWrapping(IDWriteTextFormat1* This, DWRITE_WORD_WRAPPING wrapping) { - return This->lpVtbl->SetWordWrapping(This, wrapping); -} -static inline HRESULT IDWriteTextFormat1_SetReadingDirection(IDWriteTextFormat1* This, DWRITE_READING_DIRECTION direction) { - return This->lpVtbl->SetReadingDirection(This, direction); -} -static inline HRESULT IDWriteTextFormat1_SetFlowDirection(IDWriteTextFormat1* This, DWRITE_FLOW_DIRECTION direction) { - return This->lpVtbl->SetFlowDirection(This, direction); -} -static inline HRESULT IDWriteTextFormat1_SetIncrementalTabStop(IDWriteTextFormat1* This, FLOAT tabstop) { - return This->lpVtbl->SetIncrementalTabStop(This, tabstop); -} -static inline HRESULT IDWriteTextFormat1_SetTrimming(IDWriteTextFormat1* This, const DWRITE_TRIMMING* trimming, IDWriteInlineObject* trimming_sign) { - return This->lpVtbl->SetTrimming(This, trimming, trimming_sign); -} -static inline HRESULT IDWriteTextFormat1_SetLineSpacing(IDWriteTextFormat1* This, DWRITE_LINE_SPACING_METHOD spacing, FLOAT line_spacing, FLOAT baseline) { - return This->lpVtbl->SetLineSpacing(This, spacing, line_spacing, baseline); -} -static inline DWRITE_TEXT_ALIGNMENT IDWriteTextFormat1_GetTextAlignment(IDWriteTextFormat1* This) { - return This->lpVtbl->GetTextAlignment(This); -} -static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat1_GetParagraphAlignment(IDWriteTextFormat1* This) { - return This->lpVtbl->GetParagraphAlignment(This); -} -static inline DWRITE_WORD_WRAPPING IDWriteTextFormat1_GetWordWrapping(IDWriteTextFormat1* This) { - return This->lpVtbl->GetWordWrapping(This); -} -static inline DWRITE_READING_DIRECTION IDWriteTextFormat1_GetReadingDirection(IDWriteTextFormat1* This) { - return This->lpVtbl->GetReadingDirection(This); -} -static inline DWRITE_FLOW_DIRECTION IDWriteTextFormat1_GetFlowDirection(IDWriteTextFormat1* This) { - return This->lpVtbl->GetFlowDirection(This); -} -static inline FLOAT IDWriteTextFormat1_GetIncrementalTabStop(IDWriteTextFormat1* This) { - return This->lpVtbl->GetIncrementalTabStop(This); -} -static inline HRESULT IDWriteTextFormat1_GetTrimming(IDWriteTextFormat1* This, DWRITE_TRIMMING* options, IDWriteInlineObject** trimming_sign) { - return This->lpVtbl->GetTrimming(This, options, trimming_sign); -} -static inline HRESULT IDWriteTextFormat1_GetLineSpacing(IDWriteTextFormat1* This, DWRITE_LINE_SPACING_METHOD* method, FLOAT* spacing, FLOAT* baseline) { - return This->lpVtbl->GetLineSpacing(This, method, spacing, baseline); -} -static inline HRESULT IDWriteTextFormat1_GetFontCollection(IDWriteTextFormat1* This, IDWriteFontCollection** collection) { - return This->lpVtbl->GetFontCollection(This, collection); -} -static inline UINT32 IDWriteTextFormat1_GetFontFamilyNameLength(IDWriteTextFormat1* This) { - return This->lpVtbl->GetFontFamilyNameLength(This); -} -static inline HRESULT IDWriteTextFormat1_GetFontFamilyName(IDWriteTextFormat1* This, WCHAR* name, UINT32 size) { - return This->lpVtbl->GetFontFamilyName(This, name, size); -} -static inline DWRITE_FONT_WEIGHT IDWriteTextFormat1_GetFontWeight(IDWriteTextFormat1* This) { - return This->lpVtbl->GetFontWeight(This); -} -static inline DWRITE_FONT_STYLE IDWriteTextFormat1_GetFontStyle(IDWriteTextFormat1* This) { - return This->lpVtbl->GetFontStyle(This); -} -static inline DWRITE_FONT_STRETCH IDWriteTextFormat1_GetFontStretch(IDWriteTextFormat1* This) { - return This->lpVtbl->GetFontStretch(This); -} -static inline FLOAT IDWriteTextFormat1_GetFontSize(IDWriteTextFormat1* This) { - return This->lpVtbl->GetFontSize(This); -} -static inline UINT32 IDWriteTextFormat1_GetLocaleNameLength(IDWriteTextFormat1* This) { - return This->lpVtbl->GetLocaleNameLength(This); -} -static inline HRESULT IDWriteTextFormat1_GetLocaleName(IDWriteTextFormat1* This, WCHAR* name, UINT32 size) { - return This->lpVtbl->GetLocaleName(This, name, size); -} -/*** IDWriteTextFormat1 methods ***/ -static inline HRESULT IDWriteTextFormat1_SetVerticalGlyphOrientation(IDWriteTextFormat1* This, DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { - return This->lpVtbl->SetVerticalGlyphOrientation(This, orientation); -} -static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextFormat1_GetVerticalGlyphOrientation(IDWriteTextFormat1* This) { - return This->lpVtbl->GetVerticalGlyphOrientation(This); -} -static inline HRESULT IDWriteTextFormat1_SetLastLineWrapping(IDWriteTextFormat1* This, WINBOOL lastline_wrapping_enabled) { - return This->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled); -} -static inline WINBOOL IDWriteTextFormat1_GetLastLineWrapping(IDWriteTextFormat1* This) { - return This->lpVtbl->GetLastLineWrapping(This); -} -static inline HRESULT IDWriteTextFormat1_SetOpticalAlignment(IDWriteTextFormat1* This, DWRITE_OPTICAL_ALIGNMENT alignment) { - return This->lpVtbl->SetOpticalAlignment(This, alignment); -} -static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextFormat1_GetOpticalAlignment(IDWriteTextFormat1* This) { - return This->lpVtbl->GetOpticalAlignment(This); -} -static inline HRESULT IDWriteTextFormat1_SetFontFallback(IDWriteTextFormat1* This, IDWriteFontFallback* fallback) { - return This->lpVtbl->SetFontFallback(This, fallback); -} -static inline HRESULT IDWriteTextFormat1_GetFontFallback(IDWriteTextFormat1* This, IDWriteFontFallback** fallback) { - return This->lpVtbl->GetFontFallback(This, fallback); -} -#endif -#endif - -#endif - -#endif /* __IDWriteTextFormat1_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteTextLayout2 interface - */ -#ifndef __IDWriteTextLayout2_INTERFACE_DEFINED__ -#define __IDWriteTextLayout2_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteTextLayout2, 0x1093c18f, 0x8d5e, 0x43f0, 0xb0, 0x64, 0x09, 0x17, 0x31, 0x1b, 0x52, 0x5e); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("1093c18f-8d5e-43f0-b064-0917311b525e") -IDWriteTextLayout2 : public IDWriteTextLayout1 { - virtual HRESULT STDMETHODCALLTYPE GetMetrics( - DWRITE_TEXT_METRICS1 * metrics) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetVerticalGlyphOrientation( - DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) = 0; - - virtual DWRITE_VERTICAL_GLYPH_ORIENTATION STDMETHODCALLTYPE GetVerticalGlyphOrientation() = 0; - - virtual HRESULT STDMETHODCALLTYPE SetLastLineWrapping( - WINBOOL lastline_wrapping_enabled) = 0; - - virtual WINBOOL STDMETHODCALLTYPE GetLastLineWrapping() = 0; - - virtual HRESULT STDMETHODCALLTYPE SetOpticalAlignment( - DWRITE_OPTICAL_ALIGNMENT alignment) = 0; - - virtual DWRITE_OPTICAL_ALIGNMENT STDMETHODCALLTYPE GetOpticalAlignment() = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFontFallback( - IDWriteFontFallback * fallback) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontFallback( - IDWriteFontFallback * *fallback) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextLayout2, 0x1093c18f, 0x8d5e, 0x43f0, 0xb0, 0x64, 0x09, 0x17, 0x31, 0x1b, 0x52, 0x5e) -#endif -#else -typedef struct IDWriteTextLayout2Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteTextLayout2* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteTextLayout2* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteTextLayout2* This); - - /*** IDWriteTextFormat methods ***/ - HRESULT(STDMETHODCALLTYPE* SetTextAlignment)( - IDWriteTextLayout2* This, - DWRITE_TEXT_ALIGNMENT alignment); - - HRESULT(STDMETHODCALLTYPE* SetParagraphAlignment)( - IDWriteTextLayout2* This, - DWRITE_PARAGRAPH_ALIGNMENT alignment); - - HRESULT(STDMETHODCALLTYPE* SetWordWrapping)( - IDWriteTextLayout2* This, - DWRITE_WORD_WRAPPING wrapping); - - HRESULT(STDMETHODCALLTYPE* SetReadingDirection)( - IDWriteTextLayout2* This, - DWRITE_READING_DIRECTION direction); - - HRESULT(STDMETHODCALLTYPE* SetFlowDirection)( - IDWriteTextLayout2* This, - DWRITE_FLOW_DIRECTION direction); - - HRESULT(STDMETHODCALLTYPE* SetIncrementalTabStop)( - IDWriteTextLayout2* This, - FLOAT tabstop); - - HRESULT(STDMETHODCALLTYPE* SetTrimming)( - IDWriteTextLayout2* This, - const DWRITE_TRIMMING* trimming, - IDWriteInlineObject* trimming_sign); - - HRESULT(STDMETHODCALLTYPE* SetLineSpacing)( - IDWriteTextLayout2* This, - DWRITE_LINE_SPACING_METHOD spacing, - FLOAT line_spacing, - FLOAT baseline); - - DWRITE_TEXT_ALIGNMENT(STDMETHODCALLTYPE* GetTextAlignment)( - IDWriteTextLayout2* This); - - DWRITE_PARAGRAPH_ALIGNMENT(STDMETHODCALLTYPE* GetParagraphAlignment)( - IDWriteTextLayout2* This); - - DWRITE_WORD_WRAPPING(STDMETHODCALLTYPE* GetWordWrapping)( - IDWriteTextLayout2* This); - - DWRITE_READING_DIRECTION(STDMETHODCALLTYPE* GetReadingDirection)( - IDWriteTextLayout2* This); - - DWRITE_FLOW_DIRECTION(STDMETHODCALLTYPE* GetFlowDirection)( - IDWriteTextLayout2* This); - - FLOAT(STDMETHODCALLTYPE* GetIncrementalTabStop)( - IDWriteTextLayout2* This); - - HRESULT(STDMETHODCALLTYPE* GetTrimming)( - IDWriteTextLayout2* This, - DWRITE_TRIMMING* options, - IDWriteInlineObject** trimming_sign); - - HRESULT(STDMETHODCALLTYPE* GetLineSpacing)( - IDWriteTextLayout2* This, - DWRITE_LINE_SPACING_METHOD* method, - FLOAT* spacing, - FLOAT* baseline); - - HRESULT(STDMETHODCALLTYPE* GetFontCollection)( - IDWriteTextLayout2* This, - IDWriteFontCollection** collection); - - UINT32(STDMETHODCALLTYPE* GetFontFamilyNameLength)( - IDWriteTextLayout2* This); - - HRESULT(STDMETHODCALLTYPE* GetFontFamilyName)( - IDWriteTextLayout2* This, - WCHAR* name, - UINT32 size); - - DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetFontWeight)( - IDWriteTextLayout2* This); - - DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetFontStyle)( - IDWriteTextLayout2* This); - - DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetFontStretch)( - IDWriteTextLayout2* This); - - FLOAT(STDMETHODCALLTYPE* GetFontSize)( - IDWriteTextLayout2* This); - - UINT32(STDMETHODCALLTYPE* GetLocaleNameLength)( - IDWriteTextLayout2* This); - - HRESULT(STDMETHODCALLTYPE* GetLocaleName)( - IDWriteTextLayout2* This, - WCHAR* name, - UINT32 size); - - /*** IDWriteTextLayout methods ***/ - HRESULT(STDMETHODCALLTYPE* SetMaxWidth)( - IDWriteTextLayout2* This, - FLOAT maxWidth); - - HRESULT(STDMETHODCALLTYPE* SetMaxHeight)( - IDWriteTextLayout2* This, - FLOAT maxHeight); - - HRESULT(STDMETHODCALLTYPE* SetFontCollection)( - IDWriteTextLayout2* This, - IDWriteFontCollection* collection, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetFontFamilyName)( - IDWriteTextLayout2* This, - const WCHAR* name, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetFontWeight)( - IDWriteTextLayout2* This, - DWRITE_FONT_WEIGHT weight, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetFontStyle)( - IDWriteTextLayout2* This, - DWRITE_FONT_STYLE style, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetFontStretch)( - IDWriteTextLayout2* This, - DWRITE_FONT_STRETCH stretch, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetFontSize)( - IDWriteTextLayout2* This, - FLOAT size, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetUnderline)( - IDWriteTextLayout2* This, - WINBOOL underline, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetStrikethrough)( - IDWriteTextLayout2* This, - WINBOOL strikethrough, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetDrawingEffect)( - IDWriteTextLayout2* This, - IUnknown* effect, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetInlineObject)( - IDWriteTextLayout2* This, - IDWriteInlineObject* object, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetTypography)( - IDWriteTextLayout2* This, - IDWriteTypography* typography, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetLocaleName)( - IDWriteTextLayout2* This, - const WCHAR* locale, - DWRITE_TEXT_RANGE range); - - FLOAT(STDMETHODCALLTYPE* GetMaxWidth)( - IDWriteTextLayout2* This); - - FLOAT(STDMETHODCALLTYPE* GetMaxHeight)( - IDWriteTextLayout2* This); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontCollection)( - IDWriteTextLayout2* This, - UINT32 pos, - IDWriteFontCollection** collection, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontFamilyNameLength)( - IDWriteTextLayout2* This, - UINT32 pos, - UINT32* len, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontFamilyName)( - IDWriteTextLayout2* This, - UINT32 position, - WCHAR* name, - UINT32 name_size, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontWeight)( - IDWriteTextLayout2* This, - UINT32 position, - DWRITE_FONT_WEIGHT* weight, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontStyle)( - IDWriteTextLayout2* This, - UINT32 currentPosition, - DWRITE_FONT_STYLE* style, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontStretch)( - IDWriteTextLayout2* This, - UINT32 position, - DWRITE_FONT_STRETCH* stretch, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontSize)( - IDWriteTextLayout2* This, - UINT32 position, - FLOAT* size, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* GetUnderline)( - IDWriteTextLayout2* This, - UINT32 position, - WINBOOL* has_underline, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* GetStrikethrough)( - IDWriteTextLayout2* This, - UINT32 position, - WINBOOL* has_strikethrough, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* GetDrawingEffect)( - IDWriteTextLayout2* This, - UINT32 position, - IUnknown** effect, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* GetInlineObject)( - IDWriteTextLayout2* This, - UINT32 position, - IDWriteInlineObject** object, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* GetTypography)( - IDWriteTextLayout2* This, - UINT32 position, - IDWriteTypography** typography, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetLocaleNameLength)( - IDWriteTextLayout2* This, - UINT32 position, - UINT32* length, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetLocaleName)( - IDWriteTextLayout2* This, - UINT32 position, - WCHAR* name, - UINT32 name_size, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* Draw)( - IDWriteTextLayout2* This, - void* context, - IDWriteTextRenderer* renderer, - FLOAT originX, - FLOAT originY); - - HRESULT(STDMETHODCALLTYPE* GetLineMetrics)( - IDWriteTextLayout2* This, - DWRITE_LINE_METRICS* metrics, - UINT32 max_count, - UINT32* actual_count); - - HRESULT(STDMETHODCALLTYPE* GetMetrics)( - IDWriteTextLayout2* This, - DWRITE_TEXT_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* GetOverhangMetrics)( - IDWriteTextLayout2* This, - DWRITE_OVERHANG_METRICS* overhangs); - - HRESULT(STDMETHODCALLTYPE* GetClusterMetrics)( - IDWriteTextLayout2* This, - DWRITE_CLUSTER_METRICS* metrics, - UINT32 max_count, - UINT32* act_count); - - HRESULT(STDMETHODCALLTYPE* DetermineMinWidth)( - IDWriteTextLayout2* This, - FLOAT* min_width); - - HRESULT(STDMETHODCALLTYPE* HitTestPoint)( - IDWriteTextLayout2* This, - FLOAT pointX, - FLOAT pointY, - WINBOOL* is_trailinghit, - WINBOOL* is_inside, - DWRITE_HIT_TEST_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* HitTestTextPosition)( - IDWriteTextLayout2* This, - UINT32 textPosition, - WINBOOL is_trailinghit, - FLOAT* pointX, - FLOAT* pointY, - DWRITE_HIT_TEST_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* HitTestTextRange)( - IDWriteTextLayout2* This, - UINT32 textPosition, - UINT32 textLength, - FLOAT originX, - FLOAT originY, - DWRITE_HIT_TEST_METRICS* metrics, - UINT32 max_metricscount, - UINT32* actual_metricscount); - - /*** IDWriteTextLayout1 methods ***/ - HRESULT(STDMETHODCALLTYPE* SetPairKerning)( - IDWriteTextLayout2* This, - WINBOOL is_pairkerning_enabled, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* GetPairKerning)( - IDWriteTextLayout2* This, - UINT32 position, - WINBOOL* is_pairkerning_enabled, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* SetCharacterSpacing)( - IDWriteTextLayout2* This, - FLOAT leading_spacing, - FLOAT trailing_spacing, - FLOAT minimum_advance_width, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* GetCharacterSpacing)( - IDWriteTextLayout2* This, - UINT32 position, - FLOAT* leading_spacing, - FLOAT* trailing_spacing, - FLOAT* minimum_advance_width, - DWRITE_TEXT_RANGE* range); - - /*** IDWriteTextLayout2 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout2_GetMetrics)( - IDWriteTextLayout2* This, - DWRITE_TEXT_METRICS1* metrics); - - HRESULT(STDMETHODCALLTYPE* SetVerticalGlyphOrientation)( - IDWriteTextLayout2* This, - DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); - - DWRITE_VERTICAL_GLYPH_ORIENTATION(STDMETHODCALLTYPE* GetVerticalGlyphOrientation)( - IDWriteTextLayout2* This); - - HRESULT(STDMETHODCALLTYPE* SetLastLineWrapping)( - IDWriteTextLayout2* This, - WINBOOL lastline_wrapping_enabled); - - WINBOOL(STDMETHODCALLTYPE* GetLastLineWrapping)( - IDWriteTextLayout2* This); - - HRESULT(STDMETHODCALLTYPE* SetOpticalAlignment)( - IDWriteTextLayout2* This, - DWRITE_OPTICAL_ALIGNMENT alignment); - - DWRITE_OPTICAL_ALIGNMENT(STDMETHODCALLTYPE* GetOpticalAlignment)( - IDWriteTextLayout2* This); - - HRESULT(STDMETHODCALLTYPE* SetFontFallback)( - IDWriteTextLayout2* This, - IDWriteFontFallback* fallback); - - HRESULT(STDMETHODCALLTYPE* GetFontFallback)( - IDWriteTextLayout2* This, - IDWriteFontFallback** fallback); - - END_INTERFACE -} IDWriteTextLayout2Vtbl; - -interface IDWriteTextLayout2 { - CONST_VTBL IDWriteTextLayout2Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteTextLayout2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteTextLayout2_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteTextLayout2_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteTextFormat methods ***/ -#define IDWriteTextLayout2_SetTextAlignment(This, alignment) (This)->lpVtbl->SetTextAlignment(This, alignment) -#define IDWriteTextLayout2_SetParagraphAlignment(This, alignment) (This)->lpVtbl->SetParagraphAlignment(This, alignment) -#define IDWriteTextLayout2_SetWordWrapping(This, wrapping) (This)->lpVtbl->SetWordWrapping(This, wrapping) -#define IDWriteTextLayout2_SetReadingDirection(This, direction) (This)->lpVtbl->SetReadingDirection(This, direction) -#define IDWriteTextLayout2_SetFlowDirection(This, direction) (This)->lpVtbl->SetFlowDirection(This, direction) -#define IDWriteTextLayout2_SetIncrementalTabStop(This, tabstop) (This)->lpVtbl->SetIncrementalTabStop(This, tabstop) -#define IDWriteTextLayout2_SetTrimming(This, trimming, trimming_sign) (This)->lpVtbl->SetTrimming(This, trimming, trimming_sign) -#define IDWriteTextLayout2_SetLineSpacing(This, spacing, line_spacing, baseline) (This)->lpVtbl->SetLineSpacing(This, spacing, line_spacing, baseline) -#define IDWriteTextLayout2_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) -#define IDWriteTextLayout2_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) -#define IDWriteTextLayout2_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) -#define IDWriteTextLayout2_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) -#define IDWriteTextLayout2_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) -#define IDWriteTextLayout2_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) -#define IDWriteTextLayout2_GetTrimming(This, options, trimming_sign) (This)->lpVtbl->GetTrimming(This, options, trimming_sign) -#define IDWriteTextLayout2_GetLineSpacing(This, method, spacing, baseline) (This)->lpVtbl->GetLineSpacing(This, method, spacing, baseline) -/*** IDWriteTextLayout methods ***/ -#define IDWriteTextLayout2_SetMaxWidth(This, maxWidth) (This)->lpVtbl->SetMaxWidth(This, maxWidth) -#define IDWriteTextLayout2_SetMaxHeight(This, maxHeight) (This)->lpVtbl->SetMaxHeight(This, maxHeight) -#define IDWriteTextLayout2_SetFontCollection(This, collection, range) (This)->lpVtbl->SetFontCollection(This, collection, range) -#define IDWriteTextLayout2_SetFontFamilyName(This, name, range) (This)->lpVtbl->SetFontFamilyName(This, name, range) -#define IDWriteTextLayout2_SetFontWeight(This, weight, range) (This)->lpVtbl->SetFontWeight(This, weight, range) -#define IDWriteTextLayout2_SetFontStyle(This, style, range) (This)->lpVtbl->SetFontStyle(This, style, range) -#define IDWriteTextLayout2_SetFontStretch(This, stretch, range) (This)->lpVtbl->SetFontStretch(This, stretch, range) -#define IDWriteTextLayout2_SetFontSize(This, size, range) (This)->lpVtbl->SetFontSize(This, size, range) -#define IDWriteTextLayout2_SetUnderline(This, underline, range) (This)->lpVtbl->SetUnderline(This, underline, range) -#define IDWriteTextLayout2_SetStrikethrough(This, strikethrough, range) (This)->lpVtbl->SetStrikethrough(This, strikethrough, range) -#define IDWriteTextLayout2_SetDrawingEffect(This, effect, range) (This)->lpVtbl->SetDrawingEffect(This, effect, range) -#define IDWriteTextLayout2_SetInlineObject(This, object, range) (This)->lpVtbl->SetInlineObject(This, object, range) -#define IDWriteTextLayout2_SetTypography(This, typography, range) (This)->lpVtbl->SetTypography(This, typography, range) -#define IDWriteTextLayout2_SetLocaleName(This, locale, range) (This)->lpVtbl->SetLocaleName(This, locale, range) -#define IDWriteTextLayout2_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This) -#define IDWriteTextLayout2_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This) -#define IDWriteTextLayout2_GetFontCollection(This, pos, collection, range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This, pos, collection, range) -#define IDWriteTextLayout2_GetFontFamilyNameLength(This, pos, len, range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This, pos, len, range) -#define IDWriteTextLayout2_GetFontFamilyName(This, position, name, name_size, range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This, position, name, name_size, range) -#define IDWriteTextLayout2_GetFontWeight(This, position, weight, range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This, position, weight, range) -#define IDWriteTextLayout2_GetFontStyle(This, currentPosition, style, range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This, currentPosition, style, range) -#define IDWriteTextLayout2_GetFontStretch(This, position, stretch, range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This, position, stretch, range) -#define IDWriteTextLayout2_GetFontSize(This, position, size, range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This, position, size, range) -#define IDWriteTextLayout2_GetUnderline(This, position, has_underline, range) (This)->lpVtbl->GetUnderline(This, position, has_underline, range) -#define IDWriteTextLayout2_GetStrikethrough(This, position, has_strikethrough, range) (This)->lpVtbl->GetStrikethrough(This, position, has_strikethrough, range) -#define IDWriteTextLayout2_GetDrawingEffect(This, position, effect, range) (This)->lpVtbl->GetDrawingEffect(This, position, effect, range) -#define IDWriteTextLayout2_GetInlineObject(This, position, object, range) (This)->lpVtbl->GetInlineObject(This, position, object, range) -#define IDWriteTextLayout2_GetTypography(This, position, typography, range) (This)->lpVtbl->GetTypography(This, position, typography, range) -#define IDWriteTextLayout2_GetLocaleNameLength(This, position, length, range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This, position, length, range) -#define IDWriteTextLayout2_GetLocaleName(This, position, name, name_size, range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This, position, name, name_size, range) -#define IDWriteTextLayout2_Draw(This, context, renderer, originX, originY) (This)->lpVtbl->Draw(This, context, renderer, originX, originY) -#define IDWriteTextLayout2_GetLineMetrics(This, metrics, max_count, actual_count) (This)->lpVtbl->GetLineMetrics(This, metrics, max_count, actual_count) -#define IDWriteTextLayout2_GetOverhangMetrics(This, overhangs) (This)->lpVtbl->GetOverhangMetrics(This, overhangs) -#define IDWriteTextLayout2_GetClusterMetrics(This, metrics, max_count, act_count) (This)->lpVtbl->GetClusterMetrics(This, metrics, max_count, act_count) -#define IDWriteTextLayout2_DetermineMinWidth(This, min_width) (This)->lpVtbl->DetermineMinWidth(This, min_width) -#define IDWriteTextLayout2_HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics) (This)->lpVtbl->HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics) -#define IDWriteTextLayout2_HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics) (This)->lpVtbl->HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics) -#define IDWriteTextLayout2_HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount) (This)->lpVtbl->HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount) -/*** IDWriteTextLayout1 methods ***/ -#define IDWriteTextLayout2_SetPairKerning(This, is_pairkerning_enabled, range) (This)->lpVtbl->SetPairKerning(This, is_pairkerning_enabled, range) -#define IDWriteTextLayout2_GetPairKerning(This, position, is_pairkerning_enabled, range) (This)->lpVtbl->GetPairKerning(This, position, is_pairkerning_enabled, range) -#define IDWriteTextLayout2_SetCharacterSpacing(This, leading_spacing, trailing_spacing, minimum_advance_width, range) (This)->lpVtbl->SetCharacterSpacing(This, leading_spacing, trailing_spacing, minimum_advance_width, range) -#define IDWriteTextLayout2_GetCharacterSpacing(This, position, leading_spacing, trailing_spacing, minimum_advance_width, range) (This)->lpVtbl->GetCharacterSpacing(This, position, leading_spacing, trailing_spacing, minimum_advance_width, range) -/*** IDWriteTextLayout2 methods ***/ -#define IDWriteTextLayout2_GetMetrics(This, metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This, metrics) -#define IDWriteTextLayout2_SetVerticalGlyphOrientation(This, orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This, orientation) -#define IDWriteTextLayout2_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) -#define IDWriteTextLayout2_SetLastLineWrapping(This, lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled) -#define IDWriteTextLayout2_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) -#define IDWriteTextLayout2_SetOpticalAlignment(This, alignment) (This)->lpVtbl->SetOpticalAlignment(This, alignment) -#define IDWriteTextLayout2_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) -#define IDWriteTextLayout2_SetFontFallback(This, fallback) (This)->lpVtbl->SetFontFallback(This, fallback) -#define IDWriteTextLayout2_GetFontFallback(This, fallback) (This)->lpVtbl->GetFontFallback(This, fallback) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteTextLayout2_QueryInterface(IDWriteTextLayout2* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteTextLayout2_AddRef(IDWriteTextLayout2* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteTextLayout2_Release(IDWriteTextLayout2* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteTextFormat methods ***/ -static inline HRESULT IDWriteTextLayout2_SetTextAlignment(IDWriteTextLayout2* This, DWRITE_TEXT_ALIGNMENT alignment) { - return This->lpVtbl->SetTextAlignment(This, alignment); -} -static inline HRESULT IDWriteTextLayout2_SetParagraphAlignment(IDWriteTextLayout2* This, DWRITE_PARAGRAPH_ALIGNMENT alignment) { - return This->lpVtbl->SetParagraphAlignment(This, alignment); -} -static inline HRESULT IDWriteTextLayout2_SetWordWrapping(IDWriteTextLayout2* This, DWRITE_WORD_WRAPPING wrapping) { - return This->lpVtbl->SetWordWrapping(This, wrapping); -} -static inline HRESULT IDWriteTextLayout2_SetReadingDirection(IDWriteTextLayout2* This, DWRITE_READING_DIRECTION direction) { - return This->lpVtbl->SetReadingDirection(This, direction); -} -static inline HRESULT IDWriteTextLayout2_SetFlowDirection(IDWriteTextLayout2* This, DWRITE_FLOW_DIRECTION direction) { - return This->lpVtbl->SetFlowDirection(This, direction); -} -static inline HRESULT IDWriteTextLayout2_SetIncrementalTabStop(IDWriteTextLayout2* This, FLOAT tabstop) { - return This->lpVtbl->SetIncrementalTabStop(This, tabstop); -} -static inline HRESULT IDWriteTextLayout2_SetTrimming(IDWriteTextLayout2* This, const DWRITE_TRIMMING* trimming, IDWriteInlineObject* trimming_sign) { - return This->lpVtbl->SetTrimming(This, trimming, trimming_sign); -} -static inline HRESULT IDWriteTextLayout2_SetLineSpacing(IDWriteTextLayout2* This, DWRITE_LINE_SPACING_METHOD spacing, FLOAT line_spacing, FLOAT baseline) { - return This->lpVtbl->SetLineSpacing(This, spacing, line_spacing, baseline); -} -static inline DWRITE_TEXT_ALIGNMENT IDWriteTextLayout2_GetTextAlignment(IDWriteTextLayout2* This) { - return This->lpVtbl->GetTextAlignment(This); -} -static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout2_GetParagraphAlignment(IDWriteTextLayout2* This) { - return This->lpVtbl->GetParagraphAlignment(This); -} -static inline DWRITE_WORD_WRAPPING IDWriteTextLayout2_GetWordWrapping(IDWriteTextLayout2* This) { - return This->lpVtbl->GetWordWrapping(This); -} -static inline DWRITE_READING_DIRECTION IDWriteTextLayout2_GetReadingDirection(IDWriteTextLayout2* This) { - return This->lpVtbl->GetReadingDirection(This); -} -static inline DWRITE_FLOW_DIRECTION IDWriteTextLayout2_GetFlowDirection(IDWriteTextLayout2* This) { - return This->lpVtbl->GetFlowDirection(This); -} -static inline FLOAT IDWriteTextLayout2_GetIncrementalTabStop(IDWriteTextLayout2* This) { - return This->lpVtbl->GetIncrementalTabStop(This); -} -static inline HRESULT IDWriteTextLayout2_GetTrimming(IDWriteTextLayout2* This, DWRITE_TRIMMING* options, IDWriteInlineObject** trimming_sign) { - return This->lpVtbl->GetTrimming(This, options, trimming_sign); -} -static inline HRESULT IDWriteTextLayout2_GetLineSpacing(IDWriteTextLayout2* This, DWRITE_LINE_SPACING_METHOD* method, FLOAT* spacing, FLOAT* baseline) { - return This->lpVtbl->GetLineSpacing(This, method, spacing, baseline); -} -/*** IDWriteTextLayout methods ***/ -static inline HRESULT IDWriteTextLayout2_SetMaxWidth(IDWriteTextLayout2* This, FLOAT maxWidth) { - return This->lpVtbl->SetMaxWidth(This, maxWidth); -} -static inline HRESULT IDWriteTextLayout2_SetMaxHeight(IDWriteTextLayout2* This, FLOAT maxHeight) { - return This->lpVtbl->SetMaxHeight(This, maxHeight); -} -static inline HRESULT IDWriteTextLayout2_SetFontCollection(IDWriteTextLayout2* This, IDWriteFontCollection* collection, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontCollection(This, collection, range); -} -static inline HRESULT IDWriteTextLayout2_SetFontFamilyName(IDWriteTextLayout2* This, const WCHAR* name, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontFamilyName(This, name, range); -} -static inline HRESULT IDWriteTextLayout2_SetFontWeight(IDWriteTextLayout2* This, DWRITE_FONT_WEIGHT weight, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontWeight(This, weight, range); -} -static inline HRESULT IDWriteTextLayout2_SetFontStyle(IDWriteTextLayout2* This, DWRITE_FONT_STYLE style, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontStyle(This, style, range); -} -static inline HRESULT IDWriteTextLayout2_SetFontStretch(IDWriteTextLayout2* This, DWRITE_FONT_STRETCH stretch, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontStretch(This, stretch, range); -} -static inline HRESULT IDWriteTextLayout2_SetFontSize(IDWriteTextLayout2* This, FLOAT size, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontSize(This, size, range); -} -static inline HRESULT IDWriteTextLayout2_SetUnderline(IDWriteTextLayout2* This, WINBOOL underline, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetUnderline(This, underline, range); -} -static inline HRESULT IDWriteTextLayout2_SetStrikethrough(IDWriteTextLayout2* This, WINBOOL strikethrough, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetStrikethrough(This, strikethrough, range); -} -static inline HRESULT IDWriteTextLayout2_SetDrawingEffect(IDWriteTextLayout2* This, IUnknown* effect, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetDrawingEffect(This, effect, range); -} -static inline HRESULT IDWriteTextLayout2_SetInlineObject(IDWriteTextLayout2* This, IDWriteInlineObject* object, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetInlineObject(This, object, range); -} -static inline HRESULT IDWriteTextLayout2_SetTypography(IDWriteTextLayout2* This, IDWriteTypography* typography, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetTypography(This, typography, range); -} -static inline HRESULT IDWriteTextLayout2_SetLocaleName(IDWriteTextLayout2* This, const WCHAR* locale, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetLocaleName(This, locale, range); -} -static inline FLOAT IDWriteTextLayout2_GetMaxWidth(IDWriteTextLayout2* This) { - return This->lpVtbl->GetMaxWidth(This); -} -static inline FLOAT IDWriteTextLayout2_GetMaxHeight(IDWriteTextLayout2* This) { - return This->lpVtbl->GetMaxHeight(This); -} -static inline HRESULT IDWriteTextLayout2_GetFontCollection(IDWriteTextLayout2* This, UINT32 pos, IDWriteFontCollection** collection, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This, pos, collection, range); -} -static inline HRESULT IDWriteTextLayout2_GetFontFamilyNameLength(IDWriteTextLayout2* This, UINT32 pos, UINT32* len, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This, pos, len, range); -} -static inline HRESULT IDWriteTextLayout2_GetFontFamilyName(IDWriteTextLayout2* This, UINT32 position, WCHAR* name, UINT32 name_size, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This, position, name, name_size, range); -} -static inline HRESULT IDWriteTextLayout2_GetFontWeight(IDWriteTextLayout2* This, UINT32 position, DWRITE_FONT_WEIGHT* weight, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This, position, weight, range); -} -static inline HRESULT IDWriteTextLayout2_GetFontStyle(IDWriteTextLayout2* This, UINT32 currentPosition, DWRITE_FONT_STYLE* style, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This, currentPosition, style, range); -} -static inline HRESULT IDWriteTextLayout2_GetFontStretch(IDWriteTextLayout2* This, UINT32 position, DWRITE_FONT_STRETCH* stretch, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This, position, stretch, range); -} -static inline HRESULT IDWriteTextLayout2_GetFontSize(IDWriteTextLayout2* This, UINT32 position, FLOAT* size, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontSize(This, position, size, range); -} -static inline HRESULT IDWriteTextLayout2_GetUnderline(IDWriteTextLayout2* This, UINT32 position, WINBOOL* has_underline, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetUnderline(This, position, has_underline, range); -} -static inline HRESULT IDWriteTextLayout2_GetStrikethrough(IDWriteTextLayout2* This, UINT32 position, WINBOOL* has_strikethrough, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetStrikethrough(This, position, has_strikethrough, range); -} -static inline HRESULT IDWriteTextLayout2_GetDrawingEffect(IDWriteTextLayout2* This, UINT32 position, IUnknown** effect, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetDrawingEffect(This, position, effect, range); -} -static inline HRESULT IDWriteTextLayout2_GetInlineObject(IDWriteTextLayout2* This, UINT32 position, IDWriteInlineObject** object, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetInlineObject(This, position, object, range); -} -static inline HRESULT IDWriteTextLayout2_GetTypography(IDWriteTextLayout2* This, UINT32 position, IDWriteTypography** typography, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetTypography(This, position, typography, range); -} -static inline HRESULT IDWriteTextLayout2_GetLocaleNameLength(IDWriteTextLayout2* This, UINT32 position, UINT32* length, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This, position, length, range); -} -static inline HRESULT IDWriteTextLayout2_GetLocaleName(IDWriteTextLayout2* This, UINT32 position, WCHAR* name, UINT32 name_size, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This, position, name, name_size, range); -} -static inline HRESULT IDWriteTextLayout2_Draw(IDWriteTextLayout2* This, void* context, IDWriteTextRenderer* renderer, FLOAT originX, FLOAT originY) { - return This->lpVtbl->Draw(This, context, renderer, originX, originY); -} -static inline HRESULT IDWriteTextLayout2_GetLineMetrics(IDWriteTextLayout2* This, DWRITE_LINE_METRICS* metrics, UINT32 max_count, UINT32* actual_count) { - return This->lpVtbl->GetLineMetrics(This, metrics, max_count, actual_count); -} -static inline HRESULT IDWriteTextLayout2_GetOverhangMetrics(IDWriteTextLayout2* This, DWRITE_OVERHANG_METRICS* overhangs) { - return This->lpVtbl->GetOverhangMetrics(This, overhangs); -} -static inline HRESULT IDWriteTextLayout2_GetClusterMetrics(IDWriteTextLayout2* This, DWRITE_CLUSTER_METRICS* metrics, UINT32 max_count, UINT32* act_count) { - return This->lpVtbl->GetClusterMetrics(This, metrics, max_count, act_count); -} -static inline HRESULT IDWriteTextLayout2_DetermineMinWidth(IDWriteTextLayout2* This, FLOAT* min_width) { - return This->lpVtbl->DetermineMinWidth(This, min_width); -} -static inline HRESULT IDWriteTextLayout2_HitTestPoint(IDWriteTextLayout2* This, FLOAT pointX, FLOAT pointY, WINBOOL* is_trailinghit, WINBOOL* is_inside, DWRITE_HIT_TEST_METRICS* metrics) { - return This->lpVtbl->HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics); -} -static inline HRESULT IDWriteTextLayout2_HitTestTextPosition(IDWriteTextLayout2* This, UINT32 textPosition, WINBOOL is_trailinghit, FLOAT* pointX, FLOAT* pointY, DWRITE_HIT_TEST_METRICS* metrics) { - return This->lpVtbl->HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics); -} -static inline HRESULT IDWriteTextLayout2_HitTestTextRange(IDWriteTextLayout2* This, UINT32 textPosition, UINT32 textLength, FLOAT originX, FLOAT originY, DWRITE_HIT_TEST_METRICS* metrics, UINT32 max_metricscount, UINT32* actual_metricscount) { - return This->lpVtbl->HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount); -} -/*** IDWriteTextLayout1 methods ***/ -static inline HRESULT IDWriteTextLayout2_SetPairKerning(IDWriteTextLayout2* This, WINBOOL is_pairkerning_enabled, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetPairKerning(This, is_pairkerning_enabled, range); -} -static inline HRESULT IDWriteTextLayout2_GetPairKerning(IDWriteTextLayout2* This, UINT32 position, WINBOOL* is_pairkerning_enabled, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetPairKerning(This, position, is_pairkerning_enabled, range); -} -static inline HRESULT IDWriteTextLayout2_SetCharacterSpacing(IDWriteTextLayout2* This, FLOAT leading_spacing, FLOAT trailing_spacing, FLOAT minimum_advance_width, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetCharacterSpacing(This, leading_spacing, trailing_spacing, minimum_advance_width, range); -} -static inline HRESULT IDWriteTextLayout2_GetCharacterSpacing(IDWriteTextLayout2* This, UINT32 position, FLOAT* leading_spacing, FLOAT* trailing_spacing, FLOAT* minimum_advance_width, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetCharacterSpacing(This, position, leading_spacing, trailing_spacing, minimum_advance_width, range); -} -/*** IDWriteTextLayout2 methods ***/ -static inline HRESULT IDWriteTextLayout2_GetMetrics(IDWriteTextLayout2* This, DWRITE_TEXT_METRICS1* metrics) { - return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This, metrics); -} -static inline HRESULT IDWriteTextLayout2_SetVerticalGlyphOrientation(IDWriteTextLayout2* This, DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { - return This->lpVtbl->SetVerticalGlyphOrientation(This, orientation); -} -static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextLayout2_GetVerticalGlyphOrientation(IDWriteTextLayout2* This) { - return This->lpVtbl->GetVerticalGlyphOrientation(This); -} -static inline HRESULT IDWriteTextLayout2_SetLastLineWrapping(IDWriteTextLayout2* This, WINBOOL lastline_wrapping_enabled) { - return This->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled); -} -static inline WINBOOL IDWriteTextLayout2_GetLastLineWrapping(IDWriteTextLayout2* This) { - return This->lpVtbl->GetLastLineWrapping(This); -} -static inline HRESULT IDWriteTextLayout2_SetOpticalAlignment(IDWriteTextLayout2* This, DWRITE_OPTICAL_ALIGNMENT alignment) { - return This->lpVtbl->SetOpticalAlignment(This, alignment); -} -static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextLayout2_GetOpticalAlignment(IDWriteTextLayout2* This) { - return This->lpVtbl->GetOpticalAlignment(This); -} -static inline HRESULT IDWriteTextLayout2_SetFontFallback(IDWriteTextLayout2* This, IDWriteFontFallback* fallback) { - return This->lpVtbl->SetFontFallback(This, fallback); -} -static inline HRESULT IDWriteTextLayout2_GetFontFallback(IDWriteTextLayout2* This, IDWriteFontFallback** fallback) { - return This->lpVtbl->GetFontFallback(This, fallback); -} -#endif -#endif - -#endif - -#endif /* __IDWriteTextLayout2_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteTextAnalyzer2 interface - */ -#ifndef __IDWriteTextAnalyzer2_INTERFACE_DEFINED__ -#define __IDWriteTextAnalyzer2_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteTextAnalyzer2, 0x553a9ff3, 0x5693, 0x4df7, 0xb5, 0x2b, 0x74, 0x80, 0x6f, 0x7f, 0x2e, 0xb9); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("553a9ff3-5693-4df7-b52b-74806f7f2eb9") -IDWriteTextAnalyzer2 : public IDWriteTextAnalyzer1 { - virtual HRESULT STDMETHODCALLTYPE GetGlyphOrientationTransform( - DWRITE_GLYPH_ORIENTATION_ANGLE angle, - WINBOOL is_sideways, - FLOAT originX, - FLOAT originY, - DWRITE_MATRIX * transform) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypographicFeatures( - IDWriteFontFace * fontface, - DWRITE_SCRIPT_ANALYSIS analysis, - const WCHAR* localeName, - UINT32 max_tagcount, - UINT32* actual_tagcount, - DWRITE_FONT_FEATURE_TAG* tags) = 0; - - virtual HRESULT STDMETHODCALLTYPE CheckTypographicFeature( - IDWriteFontFace * fontface, - DWRITE_SCRIPT_ANALYSIS analysis, - const WCHAR* localeName, - DWRITE_FONT_FEATURE_TAG feature, - UINT32 glyph_count, - const UINT16* indices, - UINT8* feature_applies) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextAnalyzer2, 0x553a9ff3, 0x5693, 0x4df7, 0xb5, 0x2b, 0x74, 0x80, 0x6f, 0x7f, 0x2e, 0xb9) -#endif -#else -typedef struct IDWriteTextAnalyzer2Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteTextAnalyzer2* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteTextAnalyzer2* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteTextAnalyzer2* This); - - /*** IDWriteTextAnalyzer methods ***/ - HRESULT(STDMETHODCALLTYPE* AnalyzeScript)( - IDWriteTextAnalyzer2* This, - IDWriteTextAnalysisSource* source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink* sink); - - HRESULT(STDMETHODCALLTYPE* AnalyzeBidi)( - IDWriteTextAnalyzer2* This, - IDWriteTextAnalysisSource* source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink* sink); - - HRESULT(STDMETHODCALLTYPE* AnalyzeNumberSubstitution)( - IDWriteTextAnalyzer2* This, - IDWriteTextAnalysisSource* source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink* sink); - - HRESULT(STDMETHODCALLTYPE* AnalyzeLineBreakpoints)( - IDWriteTextAnalyzer2* This, - IDWriteTextAnalysisSource* source, - UINT32 position, - UINT32 length, - IDWriteTextAnalysisSink* sink); - - HRESULT(STDMETHODCALLTYPE* GetGlyphs)( - IDWriteTextAnalyzer2* This, - const WCHAR* text, - UINT32 length, - IDWriteFontFace* font_face, - WINBOOL is_sideways, - WINBOOL is_rtl, - const DWRITE_SCRIPT_ANALYSIS* analysis, - const WCHAR* locale, - IDWriteNumberSubstitution* substitution, - const DWRITE_TYPOGRAPHIC_FEATURES** features, - const UINT32* feature_range_len, - UINT32 feature_ranges, - UINT32 max_glyph_count, - UINT16* clustermap, - DWRITE_SHAPING_TEXT_PROPERTIES* text_props, - UINT16* glyph_indices, - DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, - UINT32* actual_glyph_count); - - HRESULT(STDMETHODCALLTYPE* GetGlyphPlacements)( - IDWriteTextAnalyzer2* This, - const WCHAR* text, - const UINT16* clustermap, - DWRITE_SHAPING_TEXT_PROPERTIES* props, - UINT32 text_len, - const UINT16* glyph_indices, - const DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, - UINT32 glyph_count, - IDWriteFontFace* font_face, - FLOAT fontEmSize, - WINBOOL is_sideways, - WINBOOL is_rtl, - const DWRITE_SCRIPT_ANALYSIS* analysis, - const WCHAR* locale, - const DWRITE_TYPOGRAPHIC_FEATURES** features, - const UINT32* feature_range_len, - UINT32 feature_ranges, - FLOAT* glyph_advances, - DWRITE_GLYPH_OFFSET* glyph_offsets); - - HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphPlacements)( - IDWriteTextAnalyzer2* This, - const WCHAR* text, - const UINT16* clustermap, - DWRITE_SHAPING_TEXT_PROPERTIES* props, - UINT32 text_len, - const UINT16* glyph_indices, - const DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, - UINT32 glyph_count, - IDWriteFontFace* font_face, - FLOAT fontEmSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - WINBOOL is_sideways, - WINBOOL is_rtl, - const DWRITE_SCRIPT_ANALYSIS* analysis, - const WCHAR* locale, - const DWRITE_TYPOGRAPHIC_FEATURES** features, - const UINT32* feature_range_lengths, - UINT32 feature_ranges, - FLOAT* glyph_advances, - DWRITE_GLYPH_OFFSET* glyph_offsets); - - /*** IDWriteTextAnalyzer1 methods ***/ - HRESULT(STDMETHODCALLTYPE* ApplyCharacterSpacing)( - IDWriteTextAnalyzer2* This, - FLOAT leading_spacing, - FLOAT trailing_spacing, - FLOAT min_advance_width, - UINT32 len, - UINT32 glyph_count, - const UINT16* clustermap, - const FLOAT* advances, - const DWRITE_GLYPH_OFFSET* offsets, - const DWRITE_SHAPING_GLYPH_PROPERTIES* props, - FLOAT* modified_advances, - DWRITE_GLYPH_OFFSET* modified_offsets); - - HRESULT(STDMETHODCALLTYPE* GetBaseline)( - IDWriteTextAnalyzer2* This, - IDWriteFontFace* face, - DWRITE_BASELINE baseline, - WINBOOL vertical, - WINBOOL is_simulation_allowed, - DWRITE_SCRIPT_ANALYSIS sa, - const WCHAR* localeName, - INT32* baseline_coord, - WINBOOL* exists); - - HRESULT(STDMETHODCALLTYPE* AnalyzeVerticalGlyphOrientation)( - IDWriteTextAnalyzer2* This, - IDWriteTextAnalysisSource1* source, - UINT32 text_pos, - UINT32 len, - IDWriteTextAnalysisSink1* sink); - - HRESULT(STDMETHODCALLTYPE* GetGlyphOrientationTransform)( - IDWriteTextAnalyzer2* This, - DWRITE_GLYPH_ORIENTATION_ANGLE angle, - WINBOOL is_sideways, - DWRITE_MATRIX* transform); - - HRESULT(STDMETHODCALLTYPE* GetScriptProperties)( - IDWriteTextAnalyzer2* This, - DWRITE_SCRIPT_ANALYSIS sa, - DWRITE_SCRIPT_PROPERTIES* props); - - HRESULT(STDMETHODCALLTYPE* GetTextComplexity)( - IDWriteTextAnalyzer2* This, - const WCHAR* text, - UINT32 len, - IDWriteFontFace* face, - WINBOOL* is_simple, - UINT32* len_read, - UINT16* indices); - - HRESULT(STDMETHODCALLTYPE* GetJustificationOpportunities)( - IDWriteTextAnalyzer2* This, - IDWriteFontFace* face, - FLOAT font_em_size, - DWRITE_SCRIPT_ANALYSIS sa, - UINT32 length, - UINT32 glyph_count, - const WCHAR* text, - const UINT16* clustermap, - const DWRITE_SHAPING_GLYPH_PROPERTIES* prop, - DWRITE_JUSTIFICATION_OPPORTUNITY* jo); - - HRESULT(STDMETHODCALLTYPE* JustifyGlyphAdvances)( - IDWriteTextAnalyzer2* This, - FLOAT width, - UINT32 glyph_count, - const DWRITE_JUSTIFICATION_OPPORTUNITY* jo, - const FLOAT* advances, - const DWRITE_GLYPH_OFFSET* offsets, - FLOAT* justifiedadvances, - DWRITE_GLYPH_OFFSET* justifiedoffsets); - - HRESULT(STDMETHODCALLTYPE* GetJustifiedGlyphs)( - IDWriteTextAnalyzer2* This, - IDWriteFontFace* face, - FLOAT font_em_size, - DWRITE_SCRIPT_ANALYSIS sa, - UINT32 length, - UINT32 glyph_count, - UINT32 max_glyphcount, - const UINT16* clustermap, - const UINT16* indices, - const FLOAT* advances, - const FLOAT* justifiedadvances, - const DWRITE_GLYPH_OFFSET* justifiedoffsets, - const DWRITE_SHAPING_GLYPH_PROPERTIES* prop, - UINT32* actual_count, - UINT16* modified_clustermap, - UINT16* modified_indices, - FLOAT* modified_advances, - DWRITE_GLYPH_OFFSET* modified_offsets); - - /*** IDWriteTextAnalyzer2 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteTextAnalyzer2_GetGlyphOrientationTransform)( - IDWriteTextAnalyzer2* This, - DWRITE_GLYPH_ORIENTATION_ANGLE angle, - WINBOOL is_sideways, - FLOAT originX, - FLOAT originY, - DWRITE_MATRIX* transform); - - HRESULT(STDMETHODCALLTYPE* GetTypographicFeatures)( - IDWriteTextAnalyzer2* This, - IDWriteFontFace* fontface, - DWRITE_SCRIPT_ANALYSIS analysis, - const WCHAR* localeName, - UINT32 max_tagcount, - UINT32* actual_tagcount, - DWRITE_FONT_FEATURE_TAG* tags); - - HRESULT(STDMETHODCALLTYPE* CheckTypographicFeature)( - IDWriteTextAnalyzer2* This, - IDWriteFontFace* fontface, - DWRITE_SCRIPT_ANALYSIS analysis, - const WCHAR* localeName, - DWRITE_FONT_FEATURE_TAG feature, - UINT32 glyph_count, - const UINT16* indices, - UINT8* feature_applies); - - END_INTERFACE -} IDWriteTextAnalyzer2Vtbl; - -interface IDWriteTextAnalyzer2 { - CONST_VTBL IDWriteTextAnalyzer2Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteTextAnalyzer2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteTextAnalyzer2_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteTextAnalyzer2_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteTextAnalyzer methods ***/ -#define IDWriteTextAnalyzer2_AnalyzeScript(This, source, position, length, sink) (This)->lpVtbl->AnalyzeScript(This, source, position, length, sink) -#define IDWriteTextAnalyzer2_AnalyzeBidi(This, source, position, length, sink) (This)->lpVtbl->AnalyzeBidi(This, source, position, length, sink) -#define IDWriteTextAnalyzer2_AnalyzeNumberSubstitution(This, source, position, length, sink) (This)->lpVtbl->AnalyzeNumberSubstitution(This, source, position, length, sink) -#define IDWriteTextAnalyzer2_AnalyzeLineBreakpoints(This, source, position, length, sink) (This)->lpVtbl->AnalyzeLineBreakpoints(This, source, position, length, sink) -#define IDWriteTextAnalyzer2_GetGlyphs(This, text, length, font_face, is_sideways, is_rtl, analysis, locale, substitution, features, feature_range_len, feature_ranges, max_glyph_count, clustermap, text_props, glyph_indices, glyph_props, actual_glyph_count) (This)->lpVtbl->GetGlyphs(This, text, length, font_face, is_sideways, is_rtl, analysis, locale, substitution, features, feature_range_len, feature_ranges, max_glyph_count, clustermap, text_props, glyph_indices, glyph_props, actual_glyph_count) -#define IDWriteTextAnalyzer2_GetGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, is_sideways, is_rtl, analysis, locale, features, feature_range_len, feature_ranges, glyph_advances, glyph_offsets) (This)->lpVtbl->GetGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, is_sideways, is_rtl, analysis, locale, features, feature_range_len, feature_ranges, glyph_advances, glyph_offsets) -#define IDWriteTextAnalyzer2_GetGdiCompatibleGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, pixels_per_dip, transform, use_gdi_natural, is_sideways, is_rtl, analysis, locale, features, feature_range_lengths, feature_ranges, glyph_advances, glyph_offsets) (This)->lpVtbl->GetGdiCompatibleGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, pixels_per_dip, transform, use_gdi_natural, is_sideways, is_rtl, analysis, locale, features, feature_range_lengths, feature_ranges, glyph_advances, glyph_offsets) -/*** IDWriteTextAnalyzer1 methods ***/ -#define IDWriteTextAnalyzer2_ApplyCharacterSpacing(This, leading_spacing, trailing_spacing, min_advance_width, len, glyph_count, clustermap, advances, offsets, props, modified_advances, modified_offsets) (This)->lpVtbl->ApplyCharacterSpacing(This, leading_spacing, trailing_spacing, min_advance_width, len, glyph_count, clustermap, advances, offsets, props, modified_advances, modified_offsets) -#define IDWriteTextAnalyzer2_GetBaseline(This, face, baseline, vertical, is_simulation_allowed, sa, localeName, baseline_coord, exists) (This)->lpVtbl->GetBaseline(This, face, baseline, vertical, is_simulation_allowed, sa, localeName, baseline_coord, exists) -#define IDWriteTextAnalyzer2_AnalyzeVerticalGlyphOrientation(This, source, text_pos, len, sink) (This)->lpVtbl->AnalyzeVerticalGlyphOrientation(This, source, text_pos, len, sink) -#define IDWriteTextAnalyzer2_GetScriptProperties(This, sa, props) (This)->lpVtbl->GetScriptProperties(This, sa, props) -#define IDWriteTextAnalyzer2_GetTextComplexity(This, text, len, face, is_simple, len_read, indices) (This)->lpVtbl->GetTextComplexity(This, text, len, face, is_simple, len_read, indices) -#define IDWriteTextAnalyzer2_GetJustificationOpportunities(This, face, font_em_size, sa, length, glyph_count, text, clustermap, prop, jo) (This)->lpVtbl->GetJustificationOpportunities(This, face, font_em_size, sa, length, glyph_count, text, clustermap, prop, jo) -#define IDWriteTextAnalyzer2_JustifyGlyphAdvances(This, width, glyph_count, jo, advances, offsets, justifiedadvances, justifiedoffsets) (This)->lpVtbl->JustifyGlyphAdvances(This, width, glyph_count, jo, advances, offsets, justifiedadvances, justifiedoffsets) -#define IDWriteTextAnalyzer2_GetJustifiedGlyphs(This, face, font_em_size, sa, length, glyph_count, max_glyphcount, clustermap, indices, advances, justifiedadvances, justifiedoffsets, prop, actual_count, modified_clustermap, modified_indices, modified_advances, modified_offsets) (This)->lpVtbl->GetJustifiedGlyphs(This, face, font_em_size, sa, length, glyph_count, max_glyphcount, clustermap, indices, advances, justifiedadvances, justifiedoffsets, prop, actual_count, modified_clustermap, modified_indices, modified_advances, modified_offsets) -/*** IDWriteTextAnalyzer2 methods ***/ -#define IDWriteTextAnalyzer2_GetGlyphOrientationTransform(This, angle, is_sideways, originX, originY, transform) (This)->lpVtbl->IDWriteTextAnalyzer2_GetGlyphOrientationTransform(This, angle, is_sideways, originX, originY, transform) -#define IDWriteTextAnalyzer2_GetTypographicFeatures(This, fontface, analysis, localeName, max_tagcount, actual_tagcount, tags) (This)->lpVtbl->GetTypographicFeatures(This, fontface, analysis, localeName, max_tagcount, actual_tagcount, tags) -#define IDWriteTextAnalyzer2_CheckTypographicFeature(This, fontface, analysis, localeName, feature, glyph_count, indices, feature_applies) (This)->lpVtbl->CheckTypographicFeature(This, fontface, analysis, localeName, feature, glyph_count, indices, feature_applies) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteTextAnalyzer2_QueryInterface(IDWriteTextAnalyzer2* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteTextAnalyzer2_AddRef(IDWriteTextAnalyzer2* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteTextAnalyzer2_Release(IDWriteTextAnalyzer2* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteTextAnalyzer methods ***/ -static inline HRESULT IDWriteTextAnalyzer2_AnalyzeScript(IDWriteTextAnalyzer2* This, IDWriteTextAnalysisSource* source, UINT32 position, UINT32 length, IDWriteTextAnalysisSink* sink) { - return This->lpVtbl->AnalyzeScript(This, source, position, length, sink); -} -static inline HRESULT IDWriteTextAnalyzer2_AnalyzeBidi(IDWriteTextAnalyzer2* This, IDWriteTextAnalysisSource* source, UINT32 position, UINT32 length, IDWriteTextAnalysisSink* sink) { - return This->lpVtbl->AnalyzeBidi(This, source, position, length, sink); -} -static inline HRESULT IDWriteTextAnalyzer2_AnalyzeNumberSubstitution(IDWriteTextAnalyzer2* This, IDWriteTextAnalysisSource* source, UINT32 position, UINT32 length, IDWriteTextAnalysisSink* sink) { - return This->lpVtbl->AnalyzeNumberSubstitution(This, source, position, length, sink); -} -static inline HRESULT IDWriteTextAnalyzer2_AnalyzeLineBreakpoints(IDWriteTextAnalyzer2* This, IDWriteTextAnalysisSource* source, UINT32 position, UINT32 length, IDWriteTextAnalysisSink* sink) { - return This->lpVtbl->AnalyzeLineBreakpoints(This, source, position, length, sink); -} -static inline HRESULT IDWriteTextAnalyzer2_GetGlyphs(IDWriteTextAnalyzer2* This, const WCHAR* text, UINT32 length, IDWriteFontFace* font_face, WINBOOL is_sideways, WINBOOL is_rtl, const DWRITE_SCRIPT_ANALYSIS* analysis, const WCHAR* locale, IDWriteNumberSubstitution* substitution, const DWRITE_TYPOGRAPHIC_FEATURES** features, const UINT32* feature_range_len, UINT32 feature_ranges, UINT32 max_glyph_count, UINT16* clustermap, DWRITE_SHAPING_TEXT_PROPERTIES* text_props, UINT16* glyph_indices, DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, UINT32* actual_glyph_count) { - return This->lpVtbl->GetGlyphs(This, text, length, font_face, is_sideways, is_rtl, analysis, locale, substitution, features, feature_range_len, feature_ranges, max_glyph_count, clustermap, text_props, glyph_indices, glyph_props, actual_glyph_count); -} -static inline HRESULT IDWriteTextAnalyzer2_GetGlyphPlacements(IDWriteTextAnalyzer2* This, const WCHAR* text, const UINT16* clustermap, DWRITE_SHAPING_TEXT_PROPERTIES* props, UINT32 text_len, const UINT16* glyph_indices, const DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, UINT32 glyph_count, IDWriteFontFace* font_face, FLOAT fontEmSize, WINBOOL is_sideways, WINBOOL is_rtl, const DWRITE_SCRIPT_ANALYSIS* analysis, const WCHAR* locale, const DWRITE_TYPOGRAPHIC_FEATURES** features, const UINT32* feature_range_len, UINT32 feature_ranges, FLOAT* glyph_advances, DWRITE_GLYPH_OFFSET* glyph_offsets) { - return This->lpVtbl->GetGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, is_sideways, is_rtl, analysis, locale, features, feature_range_len, feature_ranges, glyph_advances, glyph_offsets); -} -static inline HRESULT IDWriteTextAnalyzer2_GetGdiCompatibleGlyphPlacements(IDWriteTextAnalyzer2* This, const WCHAR* text, const UINT16* clustermap, DWRITE_SHAPING_TEXT_PROPERTIES* props, UINT32 text_len, const UINT16* glyph_indices, const DWRITE_SHAPING_GLYPH_PROPERTIES* glyph_props, UINT32 glyph_count, IDWriteFontFace* font_face, FLOAT fontEmSize, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, WINBOOL is_sideways, WINBOOL is_rtl, const DWRITE_SCRIPT_ANALYSIS* analysis, const WCHAR* locale, const DWRITE_TYPOGRAPHIC_FEATURES** features, const UINT32* feature_range_lengths, UINT32 feature_ranges, FLOAT* glyph_advances, DWRITE_GLYPH_OFFSET* glyph_offsets) { - return This->lpVtbl->GetGdiCompatibleGlyphPlacements(This, text, clustermap, props, text_len, glyph_indices, glyph_props, glyph_count, font_face, fontEmSize, pixels_per_dip, transform, use_gdi_natural, is_sideways, is_rtl, analysis, locale, features, feature_range_lengths, feature_ranges, glyph_advances, glyph_offsets); -} -/*** IDWriteTextAnalyzer1 methods ***/ -static inline HRESULT IDWriteTextAnalyzer2_ApplyCharacterSpacing(IDWriteTextAnalyzer2* This, FLOAT leading_spacing, FLOAT trailing_spacing, FLOAT min_advance_width, UINT32 len, UINT32 glyph_count, const UINT16* clustermap, const FLOAT* advances, const DWRITE_GLYPH_OFFSET* offsets, const DWRITE_SHAPING_GLYPH_PROPERTIES* props, FLOAT* modified_advances, DWRITE_GLYPH_OFFSET* modified_offsets) { - return This->lpVtbl->ApplyCharacterSpacing(This, leading_spacing, trailing_spacing, min_advance_width, len, glyph_count, clustermap, advances, offsets, props, modified_advances, modified_offsets); -} -static inline HRESULT IDWriteTextAnalyzer2_GetBaseline(IDWriteTextAnalyzer2* This, IDWriteFontFace* face, DWRITE_BASELINE baseline, WINBOOL vertical, WINBOOL is_simulation_allowed, DWRITE_SCRIPT_ANALYSIS sa, const WCHAR* localeName, INT32* baseline_coord, WINBOOL* exists) { - return This->lpVtbl->GetBaseline(This, face, baseline, vertical, is_simulation_allowed, sa, localeName, baseline_coord, exists); -} -static inline HRESULT IDWriteTextAnalyzer2_AnalyzeVerticalGlyphOrientation(IDWriteTextAnalyzer2* This, IDWriteTextAnalysisSource1* source, UINT32 text_pos, UINT32 len, IDWriteTextAnalysisSink1* sink) { - return This->lpVtbl->AnalyzeVerticalGlyphOrientation(This, source, text_pos, len, sink); -} -static inline HRESULT IDWriteTextAnalyzer2_GetScriptProperties(IDWriteTextAnalyzer2* This, DWRITE_SCRIPT_ANALYSIS sa, DWRITE_SCRIPT_PROPERTIES* props) { - return This->lpVtbl->GetScriptProperties(This, sa, props); -} -static inline HRESULT IDWriteTextAnalyzer2_GetTextComplexity(IDWriteTextAnalyzer2* This, const WCHAR* text, UINT32 len, IDWriteFontFace* face, WINBOOL* is_simple, UINT32* len_read, UINT16* indices) { - return This->lpVtbl->GetTextComplexity(This, text, len, face, is_simple, len_read, indices); -} -static inline HRESULT IDWriteTextAnalyzer2_GetJustificationOpportunities(IDWriteTextAnalyzer2* This, IDWriteFontFace* face, FLOAT font_em_size, DWRITE_SCRIPT_ANALYSIS sa, UINT32 length, UINT32 glyph_count, const WCHAR* text, const UINT16* clustermap, const DWRITE_SHAPING_GLYPH_PROPERTIES* prop, DWRITE_JUSTIFICATION_OPPORTUNITY* jo) { - return This->lpVtbl->GetJustificationOpportunities(This, face, font_em_size, sa, length, glyph_count, text, clustermap, prop, jo); -} -static inline HRESULT IDWriteTextAnalyzer2_JustifyGlyphAdvances(IDWriteTextAnalyzer2* This, FLOAT width, UINT32 glyph_count, const DWRITE_JUSTIFICATION_OPPORTUNITY* jo, const FLOAT* advances, const DWRITE_GLYPH_OFFSET* offsets, FLOAT* justifiedadvances, DWRITE_GLYPH_OFFSET* justifiedoffsets) { - return This->lpVtbl->JustifyGlyphAdvances(This, width, glyph_count, jo, advances, offsets, justifiedadvances, justifiedoffsets); -} -static inline HRESULT IDWriteTextAnalyzer2_GetJustifiedGlyphs(IDWriteTextAnalyzer2* This, IDWriteFontFace* face, FLOAT font_em_size, DWRITE_SCRIPT_ANALYSIS sa, UINT32 length, UINT32 glyph_count, UINT32 max_glyphcount, const UINT16* clustermap, const UINT16* indices, const FLOAT* advances, const FLOAT* justifiedadvances, const DWRITE_GLYPH_OFFSET* justifiedoffsets, const DWRITE_SHAPING_GLYPH_PROPERTIES* prop, UINT32* actual_count, UINT16* modified_clustermap, UINT16* modified_indices, FLOAT* modified_advances, DWRITE_GLYPH_OFFSET* modified_offsets) { - return This->lpVtbl->GetJustifiedGlyphs(This, face, font_em_size, sa, length, glyph_count, max_glyphcount, clustermap, indices, advances, justifiedadvances, justifiedoffsets, prop, actual_count, modified_clustermap, modified_indices, modified_advances, modified_offsets); -} -/*** IDWriteTextAnalyzer2 methods ***/ -static inline HRESULT IDWriteTextAnalyzer2_GetGlyphOrientationTransform(IDWriteTextAnalyzer2* This, DWRITE_GLYPH_ORIENTATION_ANGLE angle, WINBOOL is_sideways, FLOAT originX, FLOAT originY, DWRITE_MATRIX* transform) { - return This->lpVtbl->IDWriteTextAnalyzer2_GetGlyphOrientationTransform(This, angle, is_sideways, originX, originY, transform); -} -static inline HRESULT IDWriteTextAnalyzer2_GetTypographicFeatures(IDWriteTextAnalyzer2* This, IDWriteFontFace* fontface, DWRITE_SCRIPT_ANALYSIS analysis, const WCHAR* localeName, UINT32 max_tagcount, UINT32* actual_tagcount, DWRITE_FONT_FEATURE_TAG* tags) { - return This->lpVtbl->GetTypographicFeatures(This, fontface, analysis, localeName, max_tagcount, actual_tagcount, tags); -} -static inline HRESULT IDWriteTextAnalyzer2_CheckTypographicFeature(IDWriteTextAnalyzer2* This, IDWriteFontFace* fontface, DWRITE_SCRIPT_ANALYSIS analysis, const WCHAR* localeName, DWRITE_FONT_FEATURE_TAG feature, UINT32 glyph_count, const UINT16* indices, UINT8* feature_applies) { - return This->lpVtbl->CheckTypographicFeature(This, fontface, analysis, localeName, feature, glyph_count, indices, feature_applies); -} -#endif -#endif - -#endif - -#endif /* __IDWriteTextAnalyzer2_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontFallbackBuilder interface - */ -#ifndef __IDWriteFontFallbackBuilder_INTERFACE_DEFINED__ -#define __IDWriteFontFallbackBuilder_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontFallbackBuilder, 0xfd882d06, 0x8aba, 0x4fb8, 0xb8, 0x49, 0x8b, 0xe8, 0xb7, 0x3e, 0x14, 0xde); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("fd882d06-8aba-4fb8-b849-8be8b73e14de") -IDWriteFontFallbackBuilder : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE AddMapping( - const DWRITE_UNICODE_RANGE* ranges, - UINT32 rangesCount, - const WCHAR** targetFamilyNames, - UINT32 targetFamilyNamesCount, - IDWriteFontCollection* collection = 0, - const WCHAR* localeName = 0, - const WCHAR* baseFamilyName = 0, - FLOAT scale = 1) = 0; - - virtual HRESULT STDMETHODCALLTYPE AddMappings( - IDWriteFontFallback * fallback) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontFallback( - IDWriteFontFallback * *fallback) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFallbackBuilder, 0xfd882d06, 0x8aba, 0x4fb8, 0xb8, 0x49, 0x8b, 0xe8, 0xb7, 0x3e, 0x14, 0xde) -#endif -#else -typedef struct IDWriteFontFallbackBuilderVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontFallbackBuilder* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontFallbackBuilder* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontFallbackBuilder* This); - - /*** IDWriteFontFallbackBuilder methods ***/ - HRESULT(STDMETHODCALLTYPE* AddMapping)( - IDWriteFontFallbackBuilder* This, - const DWRITE_UNICODE_RANGE* ranges, - UINT32 rangesCount, - const WCHAR** targetFamilyNames, - UINT32 targetFamilyNamesCount, - IDWriteFontCollection* collection, - const WCHAR* localeName, - const WCHAR* baseFamilyName, - FLOAT scale); - - HRESULT(STDMETHODCALLTYPE* AddMappings)( - IDWriteFontFallbackBuilder* This, - IDWriteFontFallback* fallback); - - HRESULT(STDMETHODCALLTYPE* CreateFontFallback)( - IDWriteFontFallbackBuilder* This, - IDWriteFontFallback** fallback); - - END_INTERFACE -} IDWriteFontFallbackBuilderVtbl; - -interface IDWriteFontFallbackBuilder { - CONST_VTBL IDWriteFontFallbackBuilderVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontFallbackBuilder_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontFallbackBuilder_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontFallbackBuilder_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontFallbackBuilder methods ***/ -#define IDWriteFontFallbackBuilder_AddMapping(This, ranges, rangesCount, targetFamilyNames, targetFamilyNamesCount, collection, localeName, baseFamilyName, scale) (This)->lpVtbl->AddMapping(This, ranges, rangesCount, targetFamilyNames, targetFamilyNamesCount, collection, localeName, baseFamilyName, scale) -#define IDWriteFontFallbackBuilder_AddMappings(This, fallback) (This)->lpVtbl->AddMappings(This, fallback) -#define IDWriteFontFallbackBuilder_CreateFontFallback(This, fallback) (This)->lpVtbl->CreateFontFallback(This, fallback) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFallbackBuilder_QueryInterface(IDWriteFontFallbackBuilder* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontFallbackBuilder_AddRef(IDWriteFontFallbackBuilder* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontFallbackBuilder_Release(IDWriteFontFallbackBuilder* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontFallbackBuilder methods ***/ -static inline HRESULT IDWriteFontFallbackBuilder_AddMapping(IDWriteFontFallbackBuilder* This, const DWRITE_UNICODE_RANGE* ranges, UINT32 rangesCount, const WCHAR** targetFamilyNames, UINT32 targetFamilyNamesCount, IDWriteFontCollection* collection, const WCHAR* localeName, const WCHAR* baseFamilyName, FLOAT scale) { - return This->lpVtbl->AddMapping(This, ranges, rangesCount, targetFamilyNames, targetFamilyNamesCount, collection, localeName, baseFamilyName, scale); -} -static inline HRESULT IDWriteFontFallbackBuilder_AddMappings(IDWriteFontFallbackBuilder* This, IDWriteFontFallback* fallback) { - return This->lpVtbl->AddMappings(This, fallback); -} -static inline HRESULT IDWriteFontFallbackBuilder_CreateFontFallback(IDWriteFontFallbackBuilder* This, IDWriteFontFallback** fallback) { - return This->lpVtbl->CreateFontFallback(This, fallback); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontFallbackBuilder_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFont2 interface - */ -#ifndef __IDWriteFont2_INTERFACE_DEFINED__ -#define __IDWriteFont2_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFont2, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe, 0x0b, 0xd9, 0x12, 0xe8, 0x53, 0x89, 0x44); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("29748ed6-8c9c-4a6a-be0b-d912e8538944") -IDWriteFont2 : public IDWriteFont1 { - virtual WINBOOL STDMETHODCALLTYPE IsColorFont() = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFont2, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe, 0x0b, 0xd9, 0x12, 0xe8, 0x53, 0x89, 0x44) -#endif -#else -typedef struct IDWriteFont2Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFont2* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFont2* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFont2* This); - - /*** IDWriteFont methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFontFamily)( - IDWriteFont2* This, - IDWriteFontFamily** family); - - DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetWeight)( - IDWriteFont2* This); - - DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetStretch)( - IDWriteFont2* This); - - DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetStyle)( - IDWriteFont2* This); - - WINBOOL(STDMETHODCALLTYPE* IsSymbolFont)( - IDWriteFont2* This); - - HRESULT(STDMETHODCALLTYPE* GetFaceNames)( - IDWriteFont2* This, - IDWriteLocalizedStrings** names); - - HRESULT(STDMETHODCALLTYPE* GetInformationalStrings)( - IDWriteFont2* This, - DWRITE_INFORMATIONAL_STRING_ID stringid, - IDWriteLocalizedStrings** strings, - WINBOOL* exists); - - DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( - IDWriteFont2* This); - - void(STDMETHODCALLTYPE* GetMetrics)( - IDWriteFont2* This, - DWRITE_FONT_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* HasCharacter)( - IDWriteFont2* This, - UINT32 value, - WINBOOL* exists); - - HRESULT(STDMETHODCALLTYPE* CreateFontFace)( - IDWriteFont2* This, - IDWriteFontFace** face); - - /*** IDWriteFont1 methods ***/ - void(STDMETHODCALLTYPE* IDWriteFont1_GetMetrics)( - IDWriteFont2* This, - DWRITE_FONT_METRICS1* metrics); - - void(STDMETHODCALLTYPE* GetPanose)( - IDWriteFont2* This, - DWRITE_PANOSE* panose); - - HRESULT(STDMETHODCALLTYPE* GetUnicodeRanges)( - IDWriteFont2* This, - UINT32 max_count, - DWRITE_UNICODE_RANGE* ranges, - UINT32* count); - - WINBOOL(STDMETHODCALLTYPE* IsMonospacedFont)( - IDWriteFont2* This); - - /*** IDWriteFont2 methods ***/ - WINBOOL(STDMETHODCALLTYPE* IsColorFont)( - IDWriteFont2* This); - - END_INTERFACE -} IDWriteFont2Vtbl; - -interface IDWriteFont2 { - CONST_VTBL IDWriteFont2Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFont2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFont2_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFont2_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFont methods ***/ -#define IDWriteFont2_GetFontFamily(This, family) (This)->lpVtbl->GetFontFamily(This, family) -#define IDWriteFont2_GetWeight(This) (This)->lpVtbl->GetWeight(This) -#define IDWriteFont2_GetStretch(This) (This)->lpVtbl->GetStretch(This) -#define IDWriteFont2_GetStyle(This) (This)->lpVtbl->GetStyle(This) -#define IDWriteFont2_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) -#define IDWriteFont2_GetFaceNames(This, names) (This)->lpVtbl->GetFaceNames(This, names) -#define IDWriteFont2_GetInformationalStrings(This, stringid, strings, exists) (This)->lpVtbl->GetInformationalStrings(This, stringid, strings, exists) -#define IDWriteFont2_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) -#define IDWriteFont2_HasCharacter(This, value, exists) (This)->lpVtbl->HasCharacter(This, value, exists) -#define IDWriteFont2_CreateFontFace(This, face) (This)->lpVtbl->CreateFontFace(This, face) -/*** IDWriteFont1 methods ***/ -#define IDWriteFont2_GetMetrics(This, metrics) (This)->lpVtbl->IDWriteFont1_GetMetrics(This, metrics) -#define IDWriteFont2_GetPanose(This, panose) (This)->lpVtbl->GetPanose(This, panose) -#define IDWriteFont2_GetUnicodeRanges(This, max_count, ranges, count) (This)->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count) -#define IDWriteFont2_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) -/*** IDWriteFont2 methods ***/ -#define IDWriteFont2_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFont2_QueryInterface(IDWriteFont2* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFont2_AddRef(IDWriteFont2* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFont2_Release(IDWriteFont2* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFont methods ***/ -static inline HRESULT IDWriteFont2_GetFontFamily(IDWriteFont2* This, IDWriteFontFamily** family) { - return This->lpVtbl->GetFontFamily(This, family); -} -static inline DWRITE_FONT_WEIGHT IDWriteFont2_GetWeight(IDWriteFont2* This) { - return This->lpVtbl->GetWeight(This); -} -static inline DWRITE_FONT_STRETCH IDWriteFont2_GetStretch(IDWriteFont2* This) { - return This->lpVtbl->GetStretch(This); -} -static inline DWRITE_FONT_STYLE IDWriteFont2_GetStyle(IDWriteFont2* This) { - return This->lpVtbl->GetStyle(This); -} -static inline WINBOOL IDWriteFont2_IsSymbolFont(IDWriteFont2* This) { - return This->lpVtbl->IsSymbolFont(This); -} -static inline HRESULT IDWriteFont2_GetFaceNames(IDWriteFont2* This, IDWriteLocalizedStrings** names) { - return This->lpVtbl->GetFaceNames(This, names); -} -static inline HRESULT IDWriteFont2_GetInformationalStrings(IDWriteFont2* This, DWRITE_INFORMATIONAL_STRING_ID stringid, IDWriteLocalizedStrings** strings, WINBOOL* exists) { - return This->lpVtbl->GetInformationalStrings(This, stringid, strings, exists); -} -static inline DWRITE_FONT_SIMULATIONS IDWriteFont2_GetSimulations(IDWriteFont2* This) { - return This->lpVtbl->GetSimulations(This); -} -static inline HRESULT IDWriteFont2_HasCharacter(IDWriteFont2* This, UINT32 value, WINBOOL* exists) { - return This->lpVtbl->HasCharacter(This, value, exists); -} -static inline HRESULT IDWriteFont2_CreateFontFace(IDWriteFont2* This, IDWriteFontFace** face) { - return This->lpVtbl->CreateFontFace(This, face); -} -/*** IDWriteFont1 methods ***/ -static inline void IDWriteFont2_GetMetrics(IDWriteFont2* This, DWRITE_FONT_METRICS1* metrics) { - This->lpVtbl->IDWriteFont1_GetMetrics(This, metrics); -} -static inline void IDWriteFont2_GetPanose(IDWriteFont2* This, DWRITE_PANOSE* panose) { - This->lpVtbl->GetPanose(This, panose); -} -static inline HRESULT IDWriteFont2_GetUnicodeRanges(IDWriteFont2* This, UINT32 max_count, DWRITE_UNICODE_RANGE* ranges, UINT32* count) { - return This->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count); -} -static inline WINBOOL IDWriteFont2_IsMonospacedFont(IDWriteFont2* This) { - return This->lpVtbl->IsMonospacedFont(This); -} -/*** IDWriteFont2 methods ***/ -static inline WINBOOL IDWriteFont2_IsColorFont(IDWriteFont2* This) { - return This->lpVtbl->IsColorFont(This); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFont2_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontFace2 interface - */ -#ifndef __IDWriteFontFace2_INTERFACE_DEFINED__ -#define __IDWriteFontFace2_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontFace2, 0xd8b768ff, 0x64bc, 0x4e66, 0x98, 0x2b, 0xec, 0x8e, 0x87, 0xf6, 0x93, 0xf7); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("d8b768ff-64bc-4e66-982b-ec8e87f693f7") -IDWriteFontFace2 : public IDWriteFontFace1 { - virtual WINBOOL STDMETHODCALLTYPE IsColorFont() = 0; - - virtual UINT32 STDMETHODCALLTYPE GetColorPaletteCount() = 0; - - virtual UINT32 STDMETHODCALLTYPE GetPaletteEntryCount() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPaletteEntries( - UINT32 palette_index, - UINT32 first_entry_index, - UINT32 entry_count, - DWRITE_COLOR_F * entries) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode( - FLOAT fontEmSize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX* transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuringmode, - IDWriteRenderingParams* params, - DWRITE_RENDERING_MODE* renderingmode, - DWRITE_GRID_FIT_MODE* gridfitmode) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFace2, 0xd8b768ff, 0x64bc, 0x4e66, 0x98, 0x2b, 0xec, 0x8e, 0x87, 0xf6, 0x93, 0xf7) -#endif -#else -typedef struct IDWriteFontFace2Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontFace2* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontFace2* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontFace2* This); - - /*** IDWriteFontFace methods ***/ - DWRITE_FONT_FACE_TYPE(STDMETHODCALLTYPE* GetType)( - IDWriteFontFace2* This); - - HRESULT(STDMETHODCALLTYPE* GetFiles)( - IDWriteFontFace2* This, - UINT32* number_of_files, - IDWriteFontFile** fontfiles); - - UINT32(STDMETHODCALLTYPE* GetIndex)( - IDWriteFontFace2* This); - - DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( - IDWriteFontFace2* This); - - WINBOOL(STDMETHODCALLTYPE* IsSymbolFont)( - IDWriteFontFace2* This); - - void(STDMETHODCALLTYPE* GetMetrics)( - IDWriteFontFace2* This, - DWRITE_FONT_METRICS* metrics); - - UINT16(STDMETHODCALLTYPE* GetGlyphCount)( - IDWriteFontFace2* This); - - HRESULT(STDMETHODCALLTYPE* GetDesignGlyphMetrics)( - IDWriteFontFace2* This, - const UINT16* glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS* metrics, - WINBOOL is_sideways); - - HRESULT(STDMETHODCALLTYPE* GetGlyphIndices)( - IDWriteFontFace2* This, - const UINT32* codepoints, - UINT32 count, - UINT16* glyph_indices); - - HRESULT(STDMETHODCALLTYPE* TryGetFontTable)( - IDWriteFontFace2* This, - UINT32 table_tag, - const void** table_data, - UINT32* table_size, - void** context, - WINBOOL* exists); - - void(STDMETHODCALLTYPE* ReleaseFontTable)( - IDWriteFontFace2* This, - void* table_context); - - HRESULT(STDMETHODCALLTYPE* GetGlyphRunOutline)( - IDWriteFontFace2* This, - FLOAT emSize, - const UINT16* glyph_indices, - const FLOAT* glyph_advances, - const DWRITE_GLYPH_OFFSET* glyph_offsets, - UINT32 glyph_count, - WINBOOL is_sideways, - WINBOOL is_rtl, - IDWriteGeometrySink* geometrysink); - - HRESULT(STDMETHODCALLTYPE* GetRecommendedRenderingMode)( - IDWriteFontFace2* This, - FLOAT emSize, - FLOAT pixels_per_dip, - DWRITE_MEASURING_MODE mode, - IDWriteRenderingParams* params, - DWRITE_RENDERING_MODE* rendering_mode); - - HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleMetrics)( - IDWriteFontFace2* This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_FONT_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphMetrics)( - IDWriteFontFace2* This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - const UINT16* glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS* metrics, - WINBOOL is_sideways); - - /*** IDWriteFontFace1 methods ***/ - void(STDMETHODCALLTYPE* IDWriteFontFace1_GetMetrics)( - IDWriteFontFace2* This, - DWRITE_FONT_METRICS1* metrics); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetGdiCompatibleMetrics)( - IDWriteFontFace2* This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_FONT_METRICS1* metrics); - - void(STDMETHODCALLTYPE* GetCaretMetrics)( - IDWriteFontFace2* This, - DWRITE_CARET_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* GetUnicodeRanges)( - IDWriteFontFace2* This, - UINT32 max_count, - DWRITE_UNICODE_RANGE* ranges, - UINT32* count); - - WINBOOL(STDMETHODCALLTYPE* IsMonospacedFont)( - IDWriteFontFace2* This); - - HRESULT(STDMETHODCALLTYPE* GetDesignGlyphAdvances)( - IDWriteFontFace2* This, - UINT32 glyph_count, - const UINT16* indices, - INT32* advances, - WINBOOL is_sideways); - - HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphAdvances)( - IDWriteFontFace2* This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - WINBOOL is_sideways, - UINT32 glyph_count, - const UINT16* indices, - INT32* advances); - - HRESULT(STDMETHODCALLTYPE* GetKerningPairAdjustments)( - IDWriteFontFace2* This, - UINT32 glyph_count, - const UINT16* indices, - INT32* adjustments); - - WINBOOL(STDMETHODCALLTYPE* HasKerningPairs)( - IDWriteFontFace2* This); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetRecommendedRenderingMode)( - IDWriteFontFace2* This, - FLOAT font_emsize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX* transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_RENDERING_MODE* rendering_mode); - - HRESULT(STDMETHODCALLTYPE* GetVerticalGlyphVariants)( - IDWriteFontFace2* This, - UINT32 glyph_count, - const UINT16* nominal_indices, - UINT16* vertical_indices); - - WINBOOL(STDMETHODCALLTYPE* HasVerticalGlyphVariants)( - IDWriteFontFace2* This); - - /*** IDWriteFontFace2 methods ***/ - WINBOOL(STDMETHODCALLTYPE* IsColorFont)( - IDWriteFontFace2* This); - - UINT32(STDMETHODCALLTYPE* GetColorPaletteCount)( - IDWriteFontFace2* This); - - UINT32(STDMETHODCALLTYPE* GetPaletteEntryCount)( - IDWriteFontFace2* This); - - HRESULT(STDMETHODCALLTYPE* GetPaletteEntries)( - IDWriteFontFace2* This, - UINT32 palette_index, - UINT32 first_entry_index, - UINT32 entry_count, - DWRITE_COLOR_F* entries); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace2_GetRecommendedRenderingMode)( - IDWriteFontFace2* This, - FLOAT fontEmSize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX* transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuringmode, - IDWriteRenderingParams* params, - DWRITE_RENDERING_MODE* renderingmode, - DWRITE_GRID_FIT_MODE* gridfitmode); - - END_INTERFACE -} IDWriteFontFace2Vtbl; - -interface IDWriteFontFace2 { - CONST_VTBL IDWriteFontFace2Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontFace2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontFace2_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontFace2_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontFace methods ***/ -#define IDWriteFontFace2_GetType(This) (This)->lpVtbl->GetType(This) -#define IDWriteFontFace2_GetFiles(This, number_of_files, fontfiles) (This)->lpVtbl->GetFiles(This, number_of_files, fontfiles) -#define IDWriteFontFace2_GetIndex(This) (This)->lpVtbl->GetIndex(This) -#define IDWriteFontFace2_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) -#define IDWriteFontFace2_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) -#define IDWriteFontFace2_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) -#define IDWriteFontFace2_GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) -#define IDWriteFontFace2_GetGlyphIndices(This, codepoints, count, glyph_indices) (This)->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices) -#define IDWriteFontFace2_TryGetFontTable(This, table_tag, table_data, table_size, context, exists) (This)->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists) -#define IDWriteFontFace2_ReleaseFontTable(This, table_context) (This)->lpVtbl->ReleaseFontTable(This, table_context) -#define IDWriteFontFace2_GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) -#define IDWriteFontFace2_GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) -/*** IDWriteFontFace1 methods ***/ -#define IDWriteFontFace2_GetMetrics(This, metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics) -#define IDWriteFontFace2_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) -#define IDWriteFontFace2_GetCaretMetrics(This, metrics) (This)->lpVtbl->GetCaretMetrics(This, metrics) -#define IDWriteFontFace2_GetUnicodeRanges(This, max_count, ranges, count) (This)->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count) -#define IDWriteFontFace2_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) -#define IDWriteFontFace2_GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) -#define IDWriteFontFace2_GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) -#define IDWriteFontFace2_GetKerningPairAdjustments(This, glyph_count, indices, adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments) -#define IDWriteFontFace2_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) -#define IDWriteFontFace2_GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) -#define IDWriteFontFace2_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) -/*** IDWriteFontFace2 methods ***/ -#define IDWriteFontFace2_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) -#define IDWriteFontFace2_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) -#define IDWriteFontFace2_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) -#define IDWriteFontFace2_GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) (This)->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) -#define IDWriteFontFace2_GetRecommendedRenderingMode(This, fontEmSize, dpiX, dpiY, transform, is_sideways, threshold, measuringmode, params, renderingmode, gridfitmode) (This)->lpVtbl->IDWriteFontFace2_GetRecommendedRenderingMode(This, fontEmSize, dpiX, dpiY, transform, is_sideways, threshold, measuringmode, params, renderingmode, gridfitmode) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFace2_QueryInterface(IDWriteFontFace2* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontFace2_AddRef(IDWriteFontFace2* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontFace2_Release(IDWriteFontFace2* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontFace methods ***/ -static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace2_GetType(IDWriteFontFace2* This) { - return This->lpVtbl->GetType(This); -} -static inline HRESULT IDWriteFontFace2_GetFiles(IDWriteFontFace2* This, UINT32* number_of_files, IDWriteFontFile** fontfiles) { - return This->lpVtbl->GetFiles(This, number_of_files, fontfiles); -} -static inline UINT32 IDWriteFontFace2_GetIndex(IDWriteFontFace2* This) { - return This->lpVtbl->GetIndex(This); -} -static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace2_GetSimulations(IDWriteFontFace2* This) { - return This->lpVtbl->GetSimulations(This); -} -static inline WINBOOL IDWriteFontFace2_IsSymbolFont(IDWriteFontFace2* This) { - return This->lpVtbl->IsSymbolFont(This); -} -static inline UINT16 IDWriteFontFace2_GetGlyphCount(IDWriteFontFace2* This) { - return This->lpVtbl->GetGlyphCount(This); -} -static inline HRESULT IDWriteFontFace2_GetDesignGlyphMetrics(IDWriteFontFace2* This, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways); -} -static inline HRESULT IDWriteFontFace2_GetGlyphIndices(IDWriteFontFace2* This, const UINT32* codepoints, UINT32 count, UINT16* glyph_indices) { - return This->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices); -} -static inline HRESULT IDWriteFontFace2_TryGetFontTable(IDWriteFontFace2* This, UINT32 table_tag, const void** table_data, UINT32* table_size, void** context, WINBOOL* exists) { - return This->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists); -} -static inline void IDWriteFontFace2_ReleaseFontTable(IDWriteFontFace2* This, void* table_context) { - This->lpVtbl->ReleaseFontTable(This, table_context); -} -static inline HRESULT IDWriteFontFace2_GetGlyphRunOutline(IDWriteFontFace2* This, FLOAT emSize, const UINT16* glyph_indices, const FLOAT* glyph_advances, const DWRITE_GLYPH_OFFSET* glyph_offsets, UINT32 glyph_count, WINBOOL is_sideways, WINBOOL is_rtl, IDWriteGeometrySink* geometrysink) { - return This->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink); -} -static inline HRESULT IDWriteFontFace2_GetGdiCompatibleGlyphMetrics(IDWriteFontFace2* This, FLOAT emSize, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { - return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways); -} -/*** IDWriteFontFace1 methods ***/ -static inline void IDWriteFontFace2_GetMetrics(IDWriteFontFace2* This, DWRITE_FONT_METRICS1* metrics) { - This->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics); -} -static inline HRESULT IDWriteFontFace2_GetGdiCompatibleMetrics(IDWriteFontFace2* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, DWRITE_FONT_METRICS1* metrics) { - return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics); -} -static inline void IDWriteFontFace2_GetCaretMetrics(IDWriteFontFace2* This, DWRITE_CARET_METRICS* metrics) { - This->lpVtbl->GetCaretMetrics(This, metrics); -} -static inline HRESULT IDWriteFontFace2_GetUnicodeRanges(IDWriteFontFace2* This, UINT32 max_count, DWRITE_UNICODE_RANGE* ranges, UINT32* count) { - return This->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count); -} -static inline WINBOOL IDWriteFontFace2_IsMonospacedFont(IDWriteFontFace2* This) { - return This->lpVtbl->IsMonospacedFont(This); -} -static inline HRESULT IDWriteFontFace2_GetDesignGlyphAdvances(IDWriteFontFace2* This, UINT32 glyph_count, const UINT16* indices, INT32* advances, WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways); -} -static inline HRESULT IDWriteFontFace2_GetGdiCompatibleGlyphAdvances(IDWriteFontFace2* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, WINBOOL is_sideways, UINT32 glyph_count, const UINT16* indices, INT32* advances) { - return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances); -} -static inline HRESULT IDWriteFontFace2_GetKerningPairAdjustments(IDWriteFontFace2* This, UINT32 glyph_count, const UINT16* indices, INT32* adjustments) { - return This->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments); -} -static inline WINBOOL IDWriteFontFace2_HasKerningPairs(IDWriteFontFace2* This) { - return This->lpVtbl->HasKerningPairs(This); -} -static inline HRESULT IDWriteFontFace2_GetVerticalGlyphVariants(IDWriteFontFace2* This, UINT32 glyph_count, const UINT16* nominal_indices, UINT16* vertical_indices) { - return This->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices); -} -static inline WINBOOL IDWriteFontFace2_HasVerticalGlyphVariants(IDWriteFontFace2* This) { - return This->lpVtbl->HasVerticalGlyphVariants(This); -} -/*** IDWriteFontFace2 methods ***/ -static inline WINBOOL IDWriteFontFace2_IsColorFont(IDWriteFontFace2* This) { - return This->lpVtbl->IsColorFont(This); -} -static inline UINT32 IDWriteFontFace2_GetColorPaletteCount(IDWriteFontFace2* This) { - return This->lpVtbl->GetColorPaletteCount(This); -} -static inline UINT32 IDWriteFontFace2_GetPaletteEntryCount(IDWriteFontFace2* This) { - return This->lpVtbl->GetPaletteEntryCount(This); -} -static inline HRESULT IDWriteFontFace2_GetPaletteEntries(IDWriteFontFace2* This, UINT32 palette_index, UINT32 first_entry_index, UINT32 entry_count, DWRITE_COLOR_F* entries) { - return This->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries); -} -static inline HRESULT IDWriteFontFace2_GetRecommendedRenderingMode(IDWriteFontFace2* This, FLOAT fontEmSize, FLOAT dpiX, FLOAT dpiY, const DWRITE_MATRIX* transform, WINBOOL is_sideways, DWRITE_OUTLINE_THRESHOLD threshold, DWRITE_MEASURING_MODE measuringmode, IDWriteRenderingParams* params, DWRITE_RENDERING_MODE* renderingmode, DWRITE_GRID_FIT_MODE* gridfitmode) { - return This->lpVtbl->IDWriteFontFace2_GetRecommendedRenderingMode(This, fontEmSize, dpiX, dpiY, transform, is_sideways, threshold, measuringmode, params, renderingmode, gridfitmode); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontFace2_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteColorGlyphRunEnumerator interface - */ -#ifndef __IDWriteColorGlyphRunEnumerator_INTERFACE_DEFINED__ -#define __IDWriteColorGlyphRunEnumerator_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteColorGlyphRunEnumerator, 0xd31fbe17, 0xf157, 0x41a2, 0x8d, 0x24, 0xcb, 0x77, 0x9e, 0x05, 0x60, 0xe8); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("d31fbe17-f157-41a2-8d24-cb779e0560e8") -IDWriteColorGlyphRunEnumerator : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE MoveNext( - WINBOOL * hasRun) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentRun( - const DWRITE_COLOR_GLYPH_RUN** run) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteColorGlyphRunEnumerator, 0xd31fbe17, 0xf157, 0x41a2, 0x8d, 0x24, 0xcb, 0x77, 0x9e, 0x05, 0x60, 0xe8) -#endif -#else -typedef struct IDWriteColorGlyphRunEnumeratorVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteColorGlyphRunEnumerator* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteColorGlyphRunEnumerator* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteColorGlyphRunEnumerator* This); - - /*** IDWriteColorGlyphRunEnumerator methods ***/ - HRESULT(STDMETHODCALLTYPE* MoveNext)( - IDWriteColorGlyphRunEnumerator* This, - WINBOOL* hasRun); - - HRESULT(STDMETHODCALLTYPE* GetCurrentRun)( - IDWriteColorGlyphRunEnumerator* This, - const DWRITE_COLOR_GLYPH_RUN** run); - - END_INTERFACE -} IDWriteColorGlyphRunEnumeratorVtbl; - -interface IDWriteColorGlyphRunEnumerator { - CONST_VTBL IDWriteColorGlyphRunEnumeratorVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteColorGlyphRunEnumerator_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteColorGlyphRunEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteColorGlyphRunEnumerator_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteColorGlyphRunEnumerator methods ***/ -#define IDWriteColorGlyphRunEnumerator_MoveNext(This, hasRun) (This)->lpVtbl->MoveNext(This, hasRun) -#define IDWriteColorGlyphRunEnumerator_GetCurrentRun(This, run) (This)->lpVtbl->GetCurrentRun(This, run) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteColorGlyphRunEnumerator_QueryInterface(IDWriteColorGlyphRunEnumerator* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteColorGlyphRunEnumerator_AddRef(IDWriteColorGlyphRunEnumerator* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteColorGlyphRunEnumerator_Release(IDWriteColorGlyphRunEnumerator* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteColorGlyphRunEnumerator methods ***/ -static inline HRESULT IDWriteColorGlyphRunEnumerator_MoveNext(IDWriteColorGlyphRunEnumerator* This, WINBOOL* hasRun) { - return This->lpVtbl->MoveNext(This, hasRun); -} -static inline HRESULT IDWriteColorGlyphRunEnumerator_GetCurrentRun(IDWriteColorGlyphRunEnumerator* This, const DWRITE_COLOR_GLYPH_RUN** run) { - return This->lpVtbl->GetCurrentRun(This, run); -} -#endif -#endif - -#endif - -#endif /* __IDWriteColorGlyphRunEnumerator_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteRenderingParams2 interface - */ -#ifndef __IDWriteRenderingParams2_INTERFACE_DEFINED__ -#define __IDWriteRenderingParams2_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteRenderingParams2, 0xf9d711c3, 0x9777, 0x40ae, 0x87, 0xe8, 0x3e, 0x5a, 0xf9, 0xbf, 0x09, 0x48); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("f9d711c3-9777-40ae-87e8-3e5af9bf0948") -IDWriteRenderingParams2 : public IDWriteRenderingParams1 { - virtual DWRITE_GRID_FIT_MODE STDMETHODCALLTYPE GetGridFitMode() = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteRenderingParams2, 0xf9d711c3, 0x9777, 0x40ae, 0x87, 0xe8, 0x3e, 0x5a, 0xf9, 0xbf, 0x09, 0x48) -#endif -#else -typedef struct IDWriteRenderingParams2Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteRenderingParams2* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteRenderingParams2* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteRenderingParams2* This); - - /*** IDWriteRenderingParams methods ***/ - FLOAT(STDMETHODCALLTYPE* GetGamma)( - IDWriteRenderingParams2* This); - - FLOAT(STDMETHODCALLTYPE* GetEnhancedContrast)( - IDWriteRenderingParams2* This); - - FLOAT(STDMETHODCALLTYPE* GetClearTypeLevel)( - IDWriteRenderingParams2* This); - - DWRITE_PIXEL_GEOMETRY(STDMETHODCALLTYPE* GetPixelGeometry)( - IDWriteRenderingParams2* This); - - DWRITE_RENDERING_MODE(STDMETHODCALLTYPE* GetRenderingMode)( - IDWriteRenderingParams2* This); - - /*** IDWriteRenderingParams1 methods ***/ - FLOAT(STDMETHODCALLTYPE* GetGrayscaleEnhancedContrast)( - IDWriteRenderingParams2* This); - - /*** IDWriteRenderingParams2 methods ***/ - DWRITE_GRID_FIT_MODE(STDMETHODCALLTYPE* GetGridFitMode)( - IDWriteRenderingParams2* This); - - END_INTERFACE -} IDWriteRenderingParams2Vtbl; - -interface IDWriteRenderingParams2 { - CONST_VTBL IDWriteRenderingParams2Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteRenderingParams2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteRenderingParams2_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteRenderingParams2_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteRenderingParams methods ***/ -#define IDWriteRenderingParams2_GetGamma(This) (This)->lpVtbl->GetGamma(This) -#define IDWriteRenderingParams2_GetEnhancedContrast(This) (This)->lpVtbl->GetEnhancedContrast(This) -#define IDWriteRenderingParams2_GetClearTypeLevel(This) (This)->lpVtbl->GetClearTypeLevel(This) -#define IDWriteRenderingParams2_GetPixelGeometry(This) (This)->lpVtbl->GetPixelGeometry(This) -#define IDWriteRenderingParams2_GetRenderingMode(This) (This)->lpVtbl->GetRenderingMode(This) -/*** IDWriteRenderingParams1 methods ***/ -#define IDWriteRenderingParams2_GetGrayscaleEnhancedContrast(This) (This)->lpVtbl->GetGrayscaleEnhancedContrast(This) -/*** IDWriteRenderingParams2 methods ***/ -#define IDWriteRenderingParams2_GetGridFitMode(This) (This)->lpVtbl->GetGridFitMode(This) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteRenderingParams2_QueryInterface(IDWriteRenderingParams2* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteRenderingParams2_AddRef(IDWriteRenderingParams2* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteRenderingParams2_Release(IDWriteRenderingParams2* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteRenderingParams methods ***/ -static inline FLOAT IDWriteRenderingParams2_GetGamma(IDWriteRenderingParams2* This) { - return This->lpVtbl->GetGamma(This); -} -static inline FLOAT IDWriteRenderingParams2_GetEnhancedContrast(IDWriteRenderingParams2* This) { - return This->lpVtbl->GetEnhancedContrast(This); -} -static inline FLOAT IDWriteRenderingParams2_GetClearTypeLevel(IDWriteRenderingParams2* This) { - return This->lpVtbl->GetClearTypeLevel(This); -} -static inline DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams2_GetPixelGeometry(IDWriteRenderingParams2* This) { - return This->lpVtbl->GetPixelGeometry(This); -} -static inline DWRITE_RENDERING_MODE IDWriteRenderingParams2_GetRenderingMode(IDWriteRenderingParams2* This) { - return This->lpVtbl->GetRenderingMode(This); -} -/*** IDWriteRenderingParams1 methods ***/ -static inline FLOAT IDWriteRenderingParams2_GetGrayscaleEnhancedContrast(IDWriteRenderingParams2* This) { - return This->lpVtbl->GetGrayscaleEnhancedContrast(This); -} -/*** IDWriteRenderingParams2 methods ***/ -static inline DWRITE_GRID_FIT_MODE IDWriteRenderingParams2_GetGridFitMode(IDWriteRenderingParams2* This) { - return This->lpVtbl->GetGridFitMode(This); -} -#endif -#endif - -#endif - -#endif /* __IDWriteRenderingParams2_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFactory2 interface - */ -#ifndef __IDWriteFactory2_INTERFACE_DEFINED__ -#define __IDWriteFactory2_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFactory2, 0x0439fc60, 0xca44, 0x4994, 0x8d, 0xee, 0x3a, 0x9a, 0xf7, 0xb7, 0x32, 0xec); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("0439fc60-ca44-4994-8dee-3a9af7b732ec") -IDWriteFactory2 : public IDWriteFactory1 { - virtual HRESULT STDMETHODCALLTYPE GetSystemFontFallback( - IDWriteFontFallback * *fallback) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontFallbackBuilder( - IDWriteFontFallbackBuilder * *fallbackbuilder) = 0; - - virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun( - FLOAT originX, - FLOAT originY, - const DWRITE_GLYPH_RUN* run, - const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, - DWRITE_MEASURING_MODE mode, - const DWRITE_MATRIX* transform, - UINT32 palette_index, - IDWriteColorGlyphRunEnumerator** colorlayers) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams( - FLOAT gamma, - FLOAT contrast, - FLOAT grayscalecontrast, - FLOAT cleartypeLevel, - DWRITE_PIXEL_GEOMETRY pixelGeometry, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_GRID_FIT_MODE gridFitMode, - IDWriteRenderingParams2 * *params) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateGlyphRunAnalysis( - const DWRITE_GLYPH_RUN* run, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_MEASURING_MODE measuringMode, - DWRITE_GRID_FIT_MODE gridFitMode, - DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, - FLOAT originX, - FLOAT originY, - IDWriteGlyphRunAnalysis** analysis) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFactory2, 0x0439fc60, 0xca44, 0x4994, 0x8d, 0xee, 0x3a, 0x9a, 0xf7, 0xb7, 0x32, 0xec) -#endif -#else -typedef struct IDWriteFactory2Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFactory2* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFactory2* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFactory2* This); - - /*** IDWriteFactory methods ***/ - HRESULT(STDMETHODCALLTYPE* GetSystemFontCollection)( - IDWriteFactory2* This, - IDWriteFontCollection** collection, - WINBOOL check_for_updates); - - HRESULT(STDMETHODCALLTYPE* CreateCustomFontCollection)( - IDWriteFactory2* This, - IDWriteFontCollectionLoader* loader, - const void* key, - UINT32 key_size, - IDWriteFontCollection** collection); - - HRESULT(STDMETHODCALLTYPE* RegisterFontCollectionLoader)( - IDWriteFactory2* This, - IDWriteFontCollectionLoader* loader); - - HRESULT(STDMETHODCALLTYPE* UnregisterFontCollectionLoader)( - IDWriteFactory2* This, - IDWriteFontCollectionLoader* loader); - - HRESULT(STDMETHODCALLTYPE* CreateFontFileReference)( - IDWriteFactory2* This, - const WCHAR* path, - const FILETIME* writetime, - IDWriteFontFile** font_file); - - HRESULT(STDMETHODCALLTYPE* CreateCustomFontFileReference)( - IDWriteFactory2* This, - const void* reference_key, - UINT32 key_size, - IDWriteFontFileLoader* loader, - IDWriteFontFile** font_file); - - HRESULT(STDMETHODCALLTYPE* CreateFontFace)( - IDWriteFactory2* This, - DWRITE_FONT_FACE_TYPE facetype, - UINT32 files_number, - IDWriteFontFile* const* font_files, - UINT32 index, - DWRITE_FONT_SIMULATIONS sim_flags, - IDWriteFontFace** font_face); - - HRESULT(STDMETHODCALLTYPE* CreateRenderingParams)( - IDWriteFactory2* This, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* CreateMonitorRenderingParams)( - IDWriteFactory2* This, - HMONITOR monitor, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* CreateCustomRenderingParams)( - IDWriteFactory2* This, - FLOAT gamma, - FLOAT enhancedContrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* RegisterFontFileLoader)( - IDWriteFactory2* This, - IDWriteFontFileLoader* loader); - - HRESULT(STDMETHODCALLTYPE* UnregisterFontFileLoader)( - IDWriteFactory2* This, - IDWriteFontFileLoader* loader); - - HRESULT(STDMETHODCALLTYPE* CreateTextFormat)( - IDWriteFactory2* This, - const WCHAR* family_name, - IDWriteFontCollection* collection, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STYLE style, - DWRITE_FONT_STRETCH stretch, - FLOAT size, - const WCHAR* locale, - IDWriteTextFormat** format); - - HRESULT(STDMETHODCALLTYPE* CreateTypography)( - IDWriteFactory2* This, - IDWriteTypography** typography); - - HRESULT(STDMETHODCALLTYPE* GetGdiInterop)( - IDWriteFactory2* This, - IDWriteGdiInterop** gdi_interop); - - HRESULT(STDMETHODCALLTYPE* CreateTextLayout)( - IDWriteFactory2* This, - const WCHAR* string, - UINT32 len, - IDWriteTextFormat* format, - FLOAT max_width, - FLOAT max_height, - IDWriteTextLayout** layout); - - HRESULT(STDMETHODCALLTYPE* CreateGdiCompatibleTextLayout)( - IDWriteFactory2* This, - const WCHAR* string, - UINT32 len, - IDWriteTextFormat* format, - FLOAT layout_width, - FLOAT layout_height, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - IDWriteTextLayout** layout); - - HRESULT(STDMETHODCALLTYPE* CreateEllipsisTrimmingSign)( - IDWriteFactory2* This, - IDWriteTextFormat* format, - IDWriteInlineObject** trimming_sign); - - HRESULT(STDMETHODCALLTYPE* CreateTextAnalyzer)( - IDWriteFactory2* This, - IDWriteTextAnalyzer** analyzer); - - HRESULT(STDMETHODCALLTYPE* CreateNumberSubstitution)( - IDWriteFactory2* This, - DWRITE_NUMBER_SUBSTITUTION_METHOD method, - const WCHAR* locale, - WINBOOL ignore_user_override, - IDWriteNumberSubstitution** substitution); - - HRESULT(STDMETHODCALLTYPE* CreateGlyphRunAnalysis)( - IDWriteFactory2* This, - const DWRITE_GLYPH_RUN* glyph_run, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - FLOAT baseline_x, - FLOAT baseline_y, - IDWriteGlyphRunAnalysis** analysis); - - /*** IDWriteFactory1 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetEudcFontCollection)( - IDWriteFactory2* This, - IDWriteFontCollection** collection, - WINBOOL check_for_updates); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory1_CreateCustomRenderingParams)( - IDWriteFactory2* This, - FLOAT gamma, - FLOAT enhcontrast, - FLOAT enhcontrast_grayscale, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams1** params); - - /*** IDWriteFactory2 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetSystemFontFallback)( - IDWriteFactory2* This, - IDWriteFontFallback** fallback); - - HRESULT(STDMETHODCALLTYPE* CreateFontFallbackBuilder)( - IDWriteFactory2* This, - IDWriteFontFallbackBuilder** fallbackbuilder); - - HRESULT(STDMETHODCALLTYPE* TranslateColorGlyphRun)( - IDWriteFactory2* This, - FLOAT originX, - FLOAT originY, - const DWRITE_GLYPH_RUN* run, - const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, - DWRITE_MEASURING_MODE mode, - const DWRITE_MATRIX* transform, - UINT32 palette_index, - IDWriteColorGlyphRunEnumerator** colorlayers); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateCustomRenderingParams)( - IDWriteFactory2* This, - FLOAT gamma, - FLOAT contrast, - FLOAT grayscalecontrast, - FLOAT cleartypeLevel, - DWRITE_PIXEL_GEOMETRY pixelGeometry, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_GRID_FIT_MODE gridFitMode, - IDWriteRenderingParams2** params); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateGlyphRunAnalysis)( - IDWriteFactory2* This, - const DWRITE_GLYPH_RUN* run, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_MEASURING_MODE measuringMode, - DWRITE_GRID_FIT_MODE gridFitMode, - DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, - FLOAT originX, - FLOAT originY, - IDWriteGlyphRunAnalysis** analysis); - - END_INTERFACE -} IDWriteFactory2Vtbl; - -interface IDWriteFactory2 { - CONST_VTBL IDWriteFactory2Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFactory2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFactory2_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFactory2_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFactory methods ***/ -#define IDWriteFactory2_GetSystemFontCollection(This, collection, check_for_updates) (This)->lpVtbl->GetSystemFontCollection(This, collection, check_for_updates) -#define IDWriteFactory2_CreateCustomFontCollection(This, loader, key, key_size, collection) (This)->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection) -#define IDWriteFactory2_RegisterFontCollectionLoader(This, loader) (This)->lpVtbl->RegisterFontCollectionLoader(This, loader) -#define IDWriteFactory2_UnregisterFontCollectionLoader(This, loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This, loader) -#define IDWriteFactory2_CreateFontFileReference(This, path, writetime, font_file) (This)->lpVtbl->CreateFontFileReference(This, path, writetime, font_file) -#define IDWriteFactory2_CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) (This)->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) -#define IDWriteFactory2_CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) (This)->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) -#define IDWriteFactory2_CreateRenderingParams(This, params) (This)->lpVtbl->CreateRenderingParams(This, params) -#define IDWriteFactory2_CreateMonitorRenderingParams(This, monitor, params) (This)->lpVtbl->CreateMonitorRenderingParams(This, monitor, params) -#define IDWriteFactory2_RegisterFontFileLoader(This, loader) (This)->lpVtbl->RegisterFontFileLoader(This, loader) -#define IDWriteFactory2_UnregisterFontFileLoader(This, loader) (This)->lpVtbl->UnregisterFontFileLoader(This, loader) -#define IDWriteFactory2_CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format) (This)->lpVtbl->CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format) -#define IDWriteFactory2_CreateTypography(This, typography) (This)->lpVtbl->CreateTypography(This, typography) -#define IDWriteFactory2_GetGdiInterop(This, gdi_interop) (This)->lpVtbl->GetGdiInterop(This, gdi_interop) -#define IDWriteFactory2_CreateTextLayout(This, string, len, format, max_width, max_height, layout) (This)->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout) -#define IDWriteFactory2_CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) -#define IDWriteFactory2_CreateEllipsisTrimmingSign(This, format, trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign) -#define IDWriteFactory2_CreateTextAnalyzer(This, analyzer) (This)->lpVtbl->CreateTextAnalyzer(This, analyzer) -#define IDWriteFactory2_CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) (This)->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) -/*** IDWriteFactory1 methods ***/ -#define IDWriteFactory2_GetEudcFontCollection(This, collection, check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates) -/*** IDWriteFactory2 methods ***/ -#define IDWriteFactory2_GetSystemFontFallback(This, fallback) (This)->lpVtbl->GetSystemFontFallback(This, fallback) -#define IDWriteFactory2_CreateFontFallbackBuilder(This, fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder) -#define IDWriteFactory2_TranslateColorGlyphRun(This, originX, originY, run, rundescr, mode, transform, palette_index, colorlayers) (This)->lpVtbl->TranslateColorGlyphRun(This, originX, originY, run, rundescr, mode, transform, palette_index, colorlayers) -#define IDWriteFactory2_CreateCustomRenderingParams(This, gamma, contrast, grayscalecontrast, cleartypeLevel, pixelGeometry, renderingMode, gridFitMode, params) (This)->lpVtbl->IDWriteFactory2_CreateCustomRenderingParams(This, gamma, contrast, grayscalecontrast, cleartypeLevel, pixelGeometry, renderingMode, gridFitMode, params) -#define IDWriteFactory2_CreateGlyphRunAnalysis(This, run, transform, renderingMode, measuringMode, gridFitMode, antialiasMode, originX, originY, analysis) (This)->lpVtbl->IDWriteFactory2_CreateGlyphRunAnalysis(This, run, transform, renderingMode, measuringMode, gridFitMode, antialiasMode, originX, originY, analysis) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFactory2_QueryInterface(IDWriteFactory2* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFactory2_AddRef(IDWriteFactory2* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFactory2_Release(IDWriteFactory2* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFactory methods ***/ -static inline HRESULT IDWriteFactory2_GetSystemFontCollection(IDWriteFactory2* This, IDWriteFontCollection** collection, WINBOOL check_for_updates) { - return This->lpVtbl->GetSystemFontCollection(This, collection, check_for_updates); -} -static inline HRESULT IDWriteFactory2_CreateCustomFontCollection(IDWriteFactory2* This, IDWriteFontCollectionLoader* loader, const void* key, UINT32 key_size, IDWriteFontCollection** collection) { - return This->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection); -} -static inline HRESULT IDWriteFactory2_RegisterFontCollectionLoader(IDWriteFactory2* This, IDWriteFontCollectionLoader* loader) { - return This->lpVtbl->RegisterFontCollectionLoader(This, loader); -} -static inline HRESULT IDWriteFactory2_UnregisterFontCollectionLoader(IDWriteFactory2* This, IDWriteFontCollectionLoader* loader) { - return This->lpVtbl->UnregisterFontCollectionLoader(This, loader); -} -static inline HRESULT IDWriteFactory2_CreateFontFileReference(IDWriteFactory2* This, const WCHAR* path, const FILETIME* writetime, IDWriteFontFile** font_file) { - return This->lpVtbl->CreateFontFileReference(This, path, writetime, font_file); -} -static inline HRESULT IDWriteFactory2_CreateCustomFontFileReference(IDWriteFactory2* This, const void* reference_key, UINT32 key_size, IDWriteFontFileLoader* loader, IDWriteFontFile** font_file) { - return This->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file); -} -static inline HRESULT IDWriteFactory2_CreateFontFace(IDWriteFactory2* This, DWRITE_FONT_FACE_TYPE facetype, UINT32 files_number, IDWriteFontFile* const* font_files, UINT32 index, DWRITE_FONT_SIMULATIONS sim_flags, IDWriteFontFace** font_face) { - return This->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face); -} -static inline HRESULT IDWriteFactory2_CreateRenderingParams(IDWriteFactory2* This, IDWriteRenderingParams** params) { - return This->lpVtbl->CreateRenderingParams(This, params); -} -static inline HRESULT IDWriteFactory2_CreateMonitorRenderingParams(IDWriteFactory2* This, HMONITOR monitor, IDWriteRenderingParams** params) { - return This->lpVtbl->CreateMonitorRenderingParams(This, monitor, params); -} -static inline HRESULT IDWriteFactory2_RegisterFontFileLoader(IDWriteFactory2* This, IDWriteFontFileLoader* loader) { - return This->lpVtbl->RegisterFontFileLoader(This, loader); -} -static inline HRESULT IDWriteFactory2_UnregisterFontFileLoader(IDWriteFactory2* This, IDWriteFontFileLoader* loader) { - return This->lpVtbl->UnregisterFontFileLoader(This, loader); -} -static inline HRESULT IDWriteFactory2_CreateTextFormat(IDWriteFactory2* This, const WCHAR* family_name, IDWriteFontCollection* collection, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STYLE style, DWRITE_FONT_STRETCH stretch, FLOAT size, const WCHAR* locale, IDWriteTextFormat** format) { - return This->lpVtbl->CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format); -} -static inline HRESULT IDWriteFactory2_CreateTypography(IDWriteFactory2* This, IDWriteTypography** typography) { - return This->lpVtbl->CreateTypography(This, typography); -} -static inline HRESULT IDWriteFactory2_GetGdiInterop(IDWriteFactory2* This, IDWriteGdiInterop** gdi_interop) { - return This->lpVtbl->GetGdiInterop(This, gdi_interop); -} -static inline HRESULT IDWriteFactory2_CreateTextLayout(IDWriteFactory2* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT max_width, FLOAT max_height, IDWriteTextLayout** layout) { - return This->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout); -} -static inline HRESULT IDWriteFactory2_CreateGdiCompatibleTextLayout(IDWriteFactory2* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT layout_width, FLOAT layout_height, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, IDWriteTextLayout** layout) { - return This->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout); -} -static inline HRESULT IDWriteFactory2_CreateEllipsisTrimmingSign(IDWriteFactory2* This, IDWriteTextFormat* format, IDWriteInlineObject** trimming_sign) { - return This->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign); -} -static inline HRESULT IDWriteFactory2_CreateTextAnalyzer(IDWriteFactory2* This, IDWriteTextAnalyzer** analyzer) { - return This->lpVtbl->CreateTextAnalyzer(This, analyzer); -} -static inline HRESULT IDWriteFactory2_CreateNumberSubstitution(IDWriteFactory2* This, DWRITE_NUMBER_SUBSTITUTION_METHOD method, const WCHAR* locale, WINBOOL ignore_user_override, IDWriteNumberSubstitution** substitution) { - return This->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution); -} -/*** IDWriteFactory1 methods ***/ -static inline HRESULT IDWriteFactory2_GetEudcFontCollection(IDWriteFactory2* This, IDWriteFontCollection** collection, WINBOOL check_for_updates) { - return This->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates); -} -/*** IDWriteFactory2 methods ***/ -static inline HRESULT IDWriteFactory2_GetSystemFontFallback(IDWriteFactory2* This, IDWriteFontFallback** fallback) { - return This->lpVtbl->GetSystemFontFallback(This, fallback); -} -static inline HRESULT IDWriteFactory2_CreateFontFallbackBuilder(IDWriteFactory2* This, IDWriteFontFallbackBuilder** fallbackbuilder) { - return This->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder); -} -static inline HRESULT IDWriteFactory2_TranslateColorGlyphRun(IDWriteFactory2* This, FLOAT originX, FLOAT originY, const DWRITE_GLYPH_RUN* run, const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, DWRITE_MEASURING_MODE mode, const DWRITE_MATRIX* transform, UINT32 palette_index, IDWriteColorGlyphRunEnumerator** colorlayers) { - return This->lpVtbl->TranslateColorGlyphRun(This, originX, originY, run, rundescr, mode, transform, palette_index, colorlayers); -} -static inline HRESULT IDWriteFactory2_CreateCustomRenderingParams(IDWriteFactory2* This, FLOAT gamma, FLOAT contrast, FLOAT grayscalecontrast, FLOAT cleartypeLevel, DWRITE_PIXEL_GEOMETRY pixelGeometry, DWRITE_RENDERING_MODE renderingMode, DWRITE_GRID_FIT_MODE gridFitMode, IDWriteRenderingParams2** params) { - return This->lpVtbl->IDWriteFactory2_CreateCustomRenderingParams(This, gamma, contrast, grayscalecontrast, cleartypeLevel, pixelGeometry, renderingMode, gridFitMode, params); -} -static inline HRESULT IDWriteFactory2_CreateGlyphRunAnalysis(IDWriteFactory2* This, const DWRITE_GLYPH_RUN* run, const DWRITE_MATRIX* transform, DWRITE_RENDERING_MODE renderingMode, DWRITE_MEASURING_MODE measuringMode, DWRITE_GRID_FIT_MODE gridFitMode, DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, FLOAT originX, FLOAT originY, IDWriteGlyphRunAnalysis** analysis) { - return This->lpVtbl->IDWriteFactory2_CreateGlyphRunAnalysis(This, run, transform, renderingMode, measuringMode, gridFitMode, antialiasMode, originX, originY, analysis); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFactory2_INTERFACE_DEFINED__ */ - -/* Begin additional prototypes for all interfaces */ - -/* End additional prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif /* __dwrite_2_h__ */ diff --git a/src/text/dwrite_3.h b/src/text/dwrite_3.h deleted file mode 100644 index 2f41e39ce..000000000 --- a/src/text/dwrite_3.h +++ /dev/null @@ -1,15009 +0,0 @@ -/*** Autogenerated by WIDL 11.0-rc1 from include/dwrite_3.idl - Do not edit ***/ - -#define COBJMACROS - -#ifdef _WIN32 -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 475 -#endif -#include -#include -#endif - -#ifndef COM_NO_WINDOWS_H -#include -#include -#endif - -#ifndef __dwrite_3_h__ -#define __dwrite_3_h__ - -/* Forward declarations */ - -#ifndef __IDWriteFontDownloadListener_FWD_DEFINED__ -#define __IDWriteFontDownloadListener_FWD_DEFINED__ -typedef interface IDWriteFontDownloadListener IDWriteFontDownloadListener; -#ifdef __cplusplus -interface IDWriteFontDownloadListener; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontDownloadQueue_FWD_DEFINED__ -#define __IDWriteFontDownloadQueue_FWD_DEFINED__ -typedef interface IDWriteFontDownloadQueue IDWriteFontDownloadQueue; -#ifdef __cplusplus -interface IDWriteFontDownloadQueue; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteRenderingParams3_FWD_DEFINED__ -#define __IDWriteRenderingParams3_FWD_DEFINED__ -typedef interface IDWriteRenderingParams3 IDWriteRenderingParams3; -#ifdef __cplusplus -interface IDWriteRenderingParams3; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteStringList_FWD_DEFINED__ -#define __IDWriteStringList_FWD_DEFINED__ -typedef interface IDWriteStringList IDWriteStringList; -#ifdef __cplusplus -interface IDWriteStringList; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontSet_FWD_DEFINED__ -#define __IDWriteFontSet_FWD_DEFINED__ -typedef interface IDWriteFontSet IDWriteFontSet; -#ifdef __cplusplus -interface IDWriteFontSet; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontResource_FWD_DEFINED__ -#define __IDWriteFontResource_FWD_DEFINED__ -typedef interface IDWriteFontResource IDWriteFontResource; -#ifdef __cplusplus -interface IDWriteFontResource; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontSet1_FWD_DEFINED__ -#define __IDWriteFontSet1_FWD_DEFINED__ -typedef interface IDWriteFontSet1 IDWriteFontSet1; -#ifdef __cplusplus -interface IDWriteFontSet1; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFont3_FWD_DEFINED__ -#define __IDWriteFont3_FWD_DEFINED__ -typedef interface IDWriteFont3 IDWriteFont3; -#ifdef __cplusplus -interface IDWriteFont3; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFamily1_FWD_DEFINED__ -#define __IDWriteFontFamily1_FWD_DEFINED__ -typedef interface IDWriteFontFamily1 IDWriteFontFamily1; -#ifdef __cplusplus -interface IDWriteFontFamily1; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFamily2_FWD_DEFINED__ -#define __IDWriteFontFamily2_FWD_DEFINED__ -typedef interface IDWriteFontFamily2 IDWriteFontFamily2; -#ifdef __cplusplus -interface IDWriteFontFamily2; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontCollection1_FWD_DEFINED__ -#define __IDWriteFontCollection1_FWD_DEFINED__ -typedef interface IDWriteFontCollection1 IDWriteFontCollection1; -#ifdef __cplusplus -interface IDWriteFontCollection1; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontCollection2_FWD_DEFINED__ -#define __IDWriteFontCollection2_FWD_DEFINED__ -typedef interface IDWriteFontCollection2 IDWriteFontCollection2; -#ifdef __cplusplus -interface IDWriteFontCollection2; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontCollection3_FWD_DEFINED__ -#define __IDWriteFontCollection3_FWD_DEFINED__ -typedef interface IDWriteFontCollection3 IDWriteFontCollection3; -#ifdef __cplusplus -interface IDWriteFontCollection3; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFaceReference_FWD_DEFINED__ -#define __IDWriteFontFaceReference_FWD_DEFINED__ -typedef interface IDWriteFontFaceReference IDWriteFontFaceReference; -#ifdef __cplusplus -interface IDWriteFontFaceReference; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFaceReference1_FWD_DEFINED__ -#define __IDWriteFontFaceReference1_FWD_DEFINED__ -typedef interface IDWriteFontFaceReference1 IDWriteFontFaceReference1; -#ifdef __cplusplus -interface IDWriteFontFaceReference1; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontList1_FWD_DEFINED__ -#define __IDWriteFontList1_FWD_DEFINED__ -typedef interface IDWriteFontList1 IDWriteFontList1; -#ifdef __cplusplus -interface IDWriteFontList1; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontList2_FWD_DEFINED__ -#define __IDWriteFontList2_FWD_DEFINED__ -typedef interface IDWriteFontList2 IDWriteFontList2; -#ifdef __cplusplus -interface IDWriteFontList2; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontSet2_FWD_DEFINED__ -#define __IDWriteFontSet2_FWD_DEFINED__ -typedef interface IDWriteFontSet2 IDWriteFontSet2; -#ifdef __cplusplus -interface IDWriteFontSet2; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontSet3_FWD_DEFINED__ -#define __IDWriteFontSet3_FWD_DEFINED__ -typedef interface IDWriteFontSet3 IDWriteFontSet3; -#ifdef __cplusplus -interface IDWriteFontSet3; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontSet4_FWD_DEFINED__ -#define __IDWriteFontSet4_FWD_DEFINED__ -typedef interface IDWriteFontSet4 IDWriteFontSet4; -#ifdef __cplusplus -interface IDWriteFontSet4; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFace3_FWD_DEFINED__ -#define __IDWriteFontFace3_FWD_DEFINED__ -typedef interface IDWriteFontFace3 IDWriteFontFace3; -#ifdef __cplusplus -interface IDWriteFontFace3; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteTextFormat2_FWD_DEFINED__ -#define __IDWriteTextFormat2_FWD_DEFINED__ -typedef interface IDWriteTextFormat2 IDWriteTextFormat2; -#ifdef __cplusplus -interface IDWriteTextFormat2; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteTextFormat3_FWD_DEFINED__ -#define __IDWriteTextFormat3_FWD_DEFINED__ -typedef interface IDWriteTextFormat3 IDWriteTextFormat3; -#ifdef __cplusplus -interface IDWriteTextFormat3; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteTextLayout3_FWD_DEFINED__ -#define __IDWriteTextLayout3_FWD_DEFINED__ -typedef interface IDWriteTextLayout3 IDWriteTextLayout3; -#ifdef __cplusplus -interface IDWriteTextLayout3; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteTextLayout4_FWD_DEFINED__ -#define __IDWriteTextLayout4_FWD_DEFINED__ -typedef interface IDWriteTextLayout4 IDWriteTextLayout4; -#ifdef __cplusplus -interface IDWriteTextLayout4; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFallback1_FWD_DEFINED__ -#define __IDWriteFontFallback1_FWD_DEFINED__ -typedef interface IDWriteFontFallback1 IDWriteFontFallback1; -#ifdef __cplusplus -interface IDWriteFontFallback1; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteGdiInterop1_FWD_DEFINED__ -#define __IDWriteGdiInterop1_FWD_DEFINED__ -typedef interface IDWriteGdiInterop1 IDWriteGdiInterop1; -#ifdef __cplusplus -interface IDWriteGdiInterop1; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontSetBuilder_FWD_DEFINED__ -#define __IDWriteFontSetBuilder_FWD_DEFINED__ -typedef interface IDWriteFontSetBuilder IDWriteFontSetBuilder; -#ifdef __cplusplus -interface IDWriteFontSetBuilder; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontSetBuilder1_FWD_DEFINED__ -#define __IDWriteFontSetBuilder1_FWD_DEFINED__ -typedef interface IDWriteFontSetBuilder1 IDWriteFontSetBuilder1; -#ifdef __cplusplus -interface IDWriteFontSetBuilder1; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontSetBuilder2_FWD_DEFINED__ -#define __IDWriteFontSetBuilder2_FWD_DEFINED__ -typedef interface IDWriteFontSetBuilder2 IDWriteFontSetBuilder2; -#ifdef __cplusplus -interface IDWriteFontSetBuilder2; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFactory3_FWD_DEFINED__ -#define __IDWriteFactory3_FWD_DEFINED__ -typedef interface IDWriteFactory3 IDWriteFactory3; -#ifdef __cplusplus -interface IDWriteFactory3; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFace4_FWD_DEFINED__ -#define __IDWriteFontFace4_FWD_DEFINED__ -typedef interface IDWriteFontFace4 IDWriteFontFace4; -#ifdef __cplusplus -interface IDWriteFontFace4; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFace5_FWD_DEFINED__ -#define __IDWriteFontFace5_FWD_DEFINED__ -typedef interface IDWriteFontFace5 IDWriteFontFace5; -#ifdef __cplusplus -interface IDWriteFontFace5; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFace6_FWD_DEFINED__ -#define __IDWriteFontFace6_FWD_DEFINED__ -typedef interface IDWriteFontFace6 IDWriteFontFace6; -#ifdef __cplusplus -interface IDWriteFontFace6; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWritePaintReader_FWD_DEFINED__ -#define __IDWritePaintReader_FWD_DEFINED__ -typedef interface IDWritePaintReader IDWritePaintReader; -#ifdef __cplusplus -interface IDWritePaintReader; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFace7_FWD_DEFINED__ -#define __IDWriteFontFace7_FWD_DEFINED__ -typedef interface IDWriteFontFace7 IDWriteFontFace7; -#ifdef __cplusplus -interface IDWriteFontFace7; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteColorGlyphRunEnumerator1_FWD_DEFINED__ -#define __IDWriteColorGlyphRunEnumerator1_FWD_DEFINED__ -typedef interface IDWriteColorGlyphRunEnumerator1 IDWriteColorGlyphRunEnumerator1; -#ifdef __cplusplus -interface IDWriteColorGlyphRunEnumerator1; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFactory4_FWD_DEFINED__ -#define __IDWriteFactory4_FWD_DEFINED__ -typedef interface IDWriteFactory4 IDWriteFactory4; -#ifdef __cplusplus -interface IDWriteFactory4; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteAsyncResult_FWD_DEFINED__ -#define __IDWriteAsyncResult_FWD_DEFINED__ -typedef interface IDWriteAsyncResult IDWriteAsyncResult; -#ifdef __cplusplus -interface IDWriteAsyncResult; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteRemoteFontFileStream_FWD_DEFINED__ -#define __IDWriteRemoteFontFileStream_FWD_DEFINED__ -typedef interface IDWriteRemoteFontFileStream IDWriteRemoteFontFileStream; -#ifdef __cplusplus -interface IDWriteRemoteFontFileStream; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteRemoteFontFileLoader_FWD_DEFINED__ -#define __IDWriteRemoteFontFileLoader_FWD_DEFINED__ -typedef interface IDWriteRemoteFontFileLoader IDWriteRemoteFontFileLoader; -#ifdef __cplusplus -interface IDWriteRemoteFontFileLoader; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteInMemoryFontFileLoader_FWD_DEFINED__ -#define __IDWriteInMemoryFontFileLoader_FWD_DEFINED__ -typedef interface IDWriteInMemoryFontFileLoader IDWriteInMemoryFontFileLoader; -#ifdef __cplusplus -interface IDWriteInMemoryFontFileLoader; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFactory5_FWD_DEFINED__ -#define __IDWriteFactory5_FWD_DEFINED__ -typedef interface IDWriteFactory5 IDWriteFactory5; -#ifdef __cplusplus -interface IDWriteFactory5; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFactory6_FWD_DEFINED__ -#define __IDWriteFactory6_FWD_DEFINED__ -typedef interface IDWriteFactory6 IDWriteFactory6; -#ifdef __cplusplus -interface IDWriteFactory6; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFactory7_FWD_DEFINED__ -#define __IDWriteFactory7_FWD_DEFINED__ -typedef interface IDWriteFactory7 IDWriteFactory7; -#ifdef __cplusplus -interface IDWriteFactory7; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFactory8_FWD_DEFINED__ -#define __IDWriteFactory8_FWD_DEFINED__ -typedef interface IDWriteFactory8 IDWriteFactory8; -#ifdef __cplusplus -interface IDWriteFactory8; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteBitmapRenderTarget2_FWD_DEFINED__ -#define __IDWriteBitmapRenderTarget2_FWD_DEFINED__ -typedef interface IDWriteBitmapRenderTarget2 IDWriteBitmapRenderTarget2; -#ifdef __cplusplus -interface IDWriteBitmapRenderTarget2; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteBitmapRenderTarget3_FWD_DEFINED__ -#define __IDWriteBitmapRenderTarget3_FWD_DEFINED__ -typedef interface IDWriteBitmapRenderTarget3 IDWriteBitmapRenderTarget3; -#ifdef __cplusplus -interface IDWriteBitmapRenderTarget3; -#endif /* __cplusplus */ -#endif - -/* Headers for imported files */ - -#include "dwrite_2.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef __IDWriteFontFaceReference_FWD_DEFINED__ -#define __IDWriteFontFaceReference_FWD_DEFINED__ -typedef interface IDWriteFontFaceReference IDWriteFontFaceReference; -#ifdef __cplusplus -interface IDWriteFontFaceReference; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFaceReference1_FWD_DEFINED__ -#define __IDWriteFontFaceReference1_FWD_DEFINED__ -typedef interface IDWriteFontFaceReference1 IDWriteFontFaceReference1; -#ifdef __cplusplus -interface IDWriteFontFaceReference1; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFace3_FWD_DEFINED__ -#define __IDWriteFontFace3_FWD_DEFINED__ -typedef interface IDWriteFontFace3 IDWriteFontFace3; -#ifdef __cplusplus -interface IDWriteFontFace3; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontSet_FWD_DEFINED__ -#define __IDWriteFontSet_FWD_DEFINED__ -typedef interface IDWriteFontSet IDWriteFontSet; -#ifdef __cplusplus -interface IDWriteFontSet; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontDownloadQueue_FWD_DEFINED__ -#define __IDWriteFontDownloadQueue_FWD_DEFINED__ -typedef interface IDWriteFontDownloadQueue IDWriteFontDownloadQueue; -#ifdef __cplusplus -interface IDWriteFontDownloadQueue; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontFace5_FWD_DEFINED__ -#define __IDWriteFontFace5_FWD_DEFINED__ -typedef interface IDWriteFontFace5 IDWriteFontFace5; -#ifdef __cplusplus -interface IDWriteFontFace5; -#endif /* __cplusplus */ -#endif - -#ifndef __IDWriteFontList2_FWD_DEFINED__ -#define __IDWriteFontList2_FWD_DEFINED__ -typedef interface IDWriteFontList2 IDWriteFontList2; -#ifdef __cplusplus -interface IDWriteFontList2; -#endif /* __cplusplus */ -#endif - -#ifndef _WINGDI_ -typedef struct FONTSIGNATURE FONTSIGNATURE; -#endif /* _WINGDI_ */ -typedef struct D2D1_GRADIENT_STOP D2D1_GRADIENT_STOP; -typedef enum DWRITE_COLOR_COMPOSITE_MODE { - DWRITE_COLOR_COMPOSITE_CLEAR = 0, - DWRITE_COLOR_COMPOSITE_SRC = 1, - DWRITE_COLOR_COMPOSITE_DEST = 2, - DWRITE_COLOR_COMPOSITE_SRC_OVER = 3, - DWRITE_COLOR_COMPOSITE_DEST_OVER = 4, - DWRITE_COLOR_COMPOSITE_SRC_IN = 5, - DWRITE_COLOR_COMPOSITE_DEST_IN = 6, - DWRITE_COLOR_COMPOSITE_SRC_OUT = 7, - DWRITE_COLOR_COMPOSITE_DEST_OUT = 8, - DWRITE_COLOR_COMPOSITE_SRC_ATOP = 9, - DWRITE_COLOR_COMPOSITE_DEST_ATOP = 10, - DWRITE_COLOR_COMPOSITE_XOR = 11, - DWRITE_COLOR_COMPOSITE_PLUS = 12, - DWRITE_COLOR_COMPOSITE_SCREEN = 13, - DWRITE_COLOR_COMPOSITE_OVERLAY = 14, - DWRITE_COLOR_COMPOSITE_DARKEN = 15, - DWRITE_COLOR_COMPOSITE_LIGHTEN = 16, - DWRITE_COLOR_COMPOSITE_COLOR_DODGE = 17, - DWRITE_COLOR_COMPOSITE_COLOR_BURN = 18, - DWRITE_COLOR_COMPOSITE_HARD_LIGHT = 19, - DWRITE_COLOR_COMPOSITE_SOFT_LIGHT = 20, - DWRITE_COLOR_COMPOSITE_DIFFERENCE = 21, - DWRITE_COLOR_COMPOSITE_EXCLUSION = 22, - DWRITE_COLOR_COMPOSITE_MULTIPLY = 23, - DWRITE_COLOR_COMPOSITE_HSL_HUE = 24, - DWRITE_COLOR_COMPOSITE_HSL_SATURATION = 25, - DWRITE_COLOR_COMPOSITE_HSL_COLOR = 26, - DWRITE_COLOR_COMPOSITE_HSL_LUMINOSITY = 27 -} DWRITE_COLOR_COMPOSITE_MODE; -typedef enum DWRITE_LOCALITY { - DWRITE_LOCALITY_REMOTE = 0, - DWRITE_LOCALITY_PARTIAL = 1, - DWRITE_LOCALITY_LOCAL = 2 -} DWRITE_LOCALITY; -typedef enum DWRITE_RENDERING_MODE1 { - DWRITE_RENDERING_MODE1_DEFAULT = 0, - DWRITE_RENDERING_MODE1_ALIASED = 1, - DWRITE_RENDERING_MODE1_GDI_CLASSIC = 2, - DWRITE_RENDERING_MODE1_GDI_NATURAL = 3, - DWRITE_RENDERING_MODE1_NATURAL = 4, - DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC = 5, - DWRITE_RENDERING_MODE1_OUTLINE = 6, - DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC_DOWNSAMPLED = 7 -} DWRITE_RENDERING_MODE1; -typedef enum DWRITE_FONT_PROPERTY_ID { - DWRITE_FONT_PROPERTY_ID_NONE = 0, - DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME = 1, - DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME = 2, - DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME = 3, - DWRITE_FONT_PROPERTY_ID_FULL_NAME = 4, - DWRITE_FONT_PROPERTY_ID_WIN32_FAMILY_NAME = 5, - DWRITE_FONT_PROPERTY_ID_POSTSCRIPT_NAME = 6, - DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG = 7, - DWRITE_FONT_PROPERTY_ID_SUPPORTED_SCRIPT_LANGUAGE_TAG = 8, - DWRITE_FONT_PROPERTY_ID_SEMANTIC_TAG = 9, - DWRITE_FONT_PROPERTY_ID_WEIGHT = 10, - DWRITE_FONT_PROPERTY_ID_STRETCH = 11, - DWRITE_FONT_PROPERTY_ID_STYLE = 12, - DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME = 13, - DWRITE_FONT_PROPERTY_ID_TOTAL = DWRITE_FONT_PROPERTY_ID_STYLE + 1, - DWRITE_FONT_PROPERTY_ID_TOTAL_RS3 = DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME + 1, - DWRITE_FONT_PROPERTY_ID_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME, - DWRITE_FONT_PROPERTY_ID_PREFERRED_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME, - DWRITE_FONT_PROPERTY_ID_FACE_NAME = DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME -} DWRITE_FONT_PROPERTY_ID; -typedef struct DWRITE_FONT_PROPERTY { - DWRITE_FONT_PROPERTY_ID propertyId; - const WCHAR* propertyValue; - const WCHAR* localeName; -} DWRITE_FONT_PROPERTY; -#ifdef __cplusplus -#define DWRITE_MAKE_FONT_AXIS_TAG(a, b, c, d) (static_cast(DWRITE_MAKE_OPENTYPE_TAG(a, b, c, d))) -#else -#define DWRITE_MAKE_FONT_AXIS_TAG(a, b, c, d) (DWRITE_MAKE_OPENTYPE_TAG(a, b, c, d)) -#endif -typedef enum DWRITE_FONT_AXIS_TAG { - DWRITE_FONT_AXIS_TAG_WEIGHT = 0x74686777, - DWRITE_FONT_AXIS_TAG_WIDTH = 0x68746477, - DWRITE_FONT_AXIS_TAG_SLANT = 0x746e6c73, - DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE = 0x7a73706f, - DWRITE_FONT_AXIS_TAG_ITALIC = 0x6c617469 -} DWRITE_FONT_AXIS_TAG; -typedef enum DWRITE_FONT_SOURCE_TYPE { - DWRITE_FONT_SOURCE_TYPE_UNKNOWN = 0, - DWRITE_FONT_SOURCE_TYPE_PER_MACHINE = 1, - DWRITE_FONT_SOURCE_TYPE_PER_USER = 2, - DWRITE_FONT_SOURCE_TYPE_APPX_PACKAGE = 3, - DWRITE_FONT_SOURCE_TYPE_REMOTE_FONT_PROVIDER = 4 -} DWRITE_FONT_SOURCE_TYPE; -typedef struct DWRITE_FONT_AXIS_VALUE { - DWRITE_FONT_AXIS_TAG axisTag; - FLOAT value; -} DWRITE_FONT_AXIS_VALUE; -typedef struct DWRITE_FONT_AXIS_RANGE { - DWRITE_FONT_AXIS_TAG axisTag; - FLOAT minValue; - FLOAT maxValue; -} DWRITE_FONT_AXIS_RANGE; -typedef enum DWRITE_AUTOMATIC_FONT_AXES { - DWRITE_AUTOMATIC_FONT_AXES_NONE = 0, - DWRITE_AUTOMATIC_FONT_AXES_OPTICAL_SIZE = 1 -} DWRITE_AUTOMATIC_FONT_AXES; -typedef enum DWRITE_FONT_AXIS_ATTRIBUTES { - DWRITE_FONT_AXIS_ATTRIBUTES_NONE = 0, - DWRITE_FONT_AXIS_ATTRIBUTES_VARIABLE = 1, - DWRITE_FONT_AXIS_ATTRIBUTES_HIDDEN = 2 -} DWRITE_FONT_AXIS_ATTRIBUTES; -typedef enum DWRITE_FONT_FAMILY_MODEL { - DWRITE_FONT_FAMILY_MODEL_TYPOGRAPHIC = 0, - DWRITE_FONT_FAMILY_MODEL_WEIGHT_STRETCH_STYLE = 1 -} DWRITE_FONT_FAMILY_MODEL; -typedef enum DWRITE_PAINT_TYPE { - DWRITE_PAINT_TYPE_NONE = 0, - DWRITE_PAINT_TYPE_LAYERS = 1, - DWRITE_PAINT_TYPE_SOLID_GLYPH = 2, - DWRITE_PAINT_TYPE_SOLID = 3, - DWRITE_PAINT_TYPE_LINEAR_GRADIENT = 4, - DWRITE_PAINT_TYPE_RADIAL_GRADIENT = 5, - DWRITE_PAINT_TYPE_SWEEP_GRADIENT = 6, - DWRITE_PAINT_TYPE_GLYPH = 7, - DWRITE_PAINT_TYPE_COLOR_GLYPH = 8, - DWRITE_PAINT_TYPE_TRANSFORM = 9, - DWRITE_PAINT_TYPE_COMPOSITE = 10 -} DWRITE_PAINT_TYPE; -#ifndef DWRITE_PAINT_FEATURE_LEVEL_DEFINED -#define DWRITE_PAINT_FEATURE_LEVEL_DEFINED -typedef enum DWRITE_PAINT_FEATURE_LEVEL { - DWRITE_PAINT_FEATURE_LEVEL_NONE = 0, - DWRITE_PAINT_FEATURE_LEVEL_COLR_V0 = 1, - DWRITE_PAINT_FEATURE_LEVEL_COLR_V1 = 2 -} DWRITE_PAINT_FEATURE_LEVEL; -#endif /* DWRITE_PAINT_FEATURE_LEVEL_DEFINED */ -typedef enum DWRITE_PAINT_ATTRIBUTES { - DWRITE_PAINT_ATTRIBUTES_NONE = 0, - DWRITE_PAINT_ATTRIBUTES_USES_PALETTE = 0x1, - DWRITE_PAINT_ATTRIBUTES_USES_TEXT_COLOR = 0x2 -} DWRITE_PAINT_ATTRIBUTES; -DEFINE_ENUM_FLAG_OPERATORS(DWRITE_PAINT_ATTRIBUTES) -typedef struct DWRITE_PAINT_COLOR { - DWRITE_COLOR_F value; - UINT16 paletteEntryIndex; - float alphaMultiplier; - DWRITE_PAINT_ATTRIBUTES colorAttributes; -} DWRITE_PAINT_COLOR; -typedef struct DWRITE_PAINT_ELEMENT { - DWRITE_PAINT_TYPE paintType; - union PAINT_UNION { - struct PAINT_LAYERS { - UINT32 childCount; - } layers; - struct PAINT_SOLID_GLYPH { - UINT32 glyphIndex; - DWRITE_PAINT_COLOR color; - } solidGlyph; - DWRITE_PAINT_COLOR solid; - struct PAINT_LINEAR_GRADIENT { - UINT32 extendMode; - UINT32 gradientStopCount; - float x0; - float y0; - float x1; - float y1; - float x2; - float y2; - } linearGradient; - struct PAINT_RADIAL_GRADIENT { - UINT32 extendMode; - UINT32 gradientStopCount; - float x0; - float y0; - float radius0; - float x1; - float y1; - float radius1; - } radialGradient; - struct PAINT_SWEEP_GRADIENT { - UINT32 extendMode; - UINT32 gradientStopCount; - float centerX; - float centerY; - float startAngle; - float endAngle; - } sweepGradient; - struct PAINT_GLYPH { - UINT32 glyphIndex; - } glyph; - struct PAINT_COLOR_GLYPH { - UINT32 glyphIndex; - D2D_RECT_F clipBox; - } colorGlyph; - DWRITE_MATRIX transform; - struct PAINT_COMPOSITE { - DWRITE_COLOR_COMPOSITE_MODE mode; - } composite; - } paint; -} DWRITE_PAINT_ELEMENT; -/***************************************************************************** - * IDWriteFontDownloadListener interface - */ -#ifndef __IDWriteFontDownloadListener_INTERFACE_DEFINED__ -#define __IDWriteFontDownloadListener_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontDownloadListener, 0xb06fe5b9, 0x43ec, 0x4393, 0x88, 0x1b, 0xdb, 0xe4, 0xdc, 0x72, 0xfd, 0xa7); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("b06fe5b9-43ec-4393-881b-dbe4dc72fda7") -IDWriteFontDownloadListener : public IUnknown { - virtual void STDMETHODCALLTYPE DownloadCompleted( - IDWriteFontDownloadQueue * queue, - IUnknown * context, - HRESULT result) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontDownloadListener, 0xb06fe5b9, 0x43ec, 0x4393, 0x88, 0x1b, 0xdb, 0xe4, 0xdc, 0x72, 0xfd, 0xa7) -#endif -#else -typedef struct IDWriteFontDownloadListenerVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontDownloadListener* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontDownloadListener* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontDownloadListener* This); - - /*** IDWriteFontDownloadListener methods ***/ - void(STDMETHODCALLTYPE* DownloadCompleted)( - IDWriteFontDownloadListener* This, - IDWriteFontDownloadQueue* queue, - IUnknown* context, - HRESULT result); - - END_INTERFACE -} IDWriteFontDownloadListenerVtbl; - -interface IDWriteFontDownloadListener { - CONST_VTBL IDWriteFontDownloadListenerVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontDownloadListener_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontDownloadListener_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontDownloadListener_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontDownloadListener methods ***/ -#define IDWriteFontDownloadListener_DownloadCompleted(This, queue, context, result) (This)->lpVtbl->DownloadCompleted(This, queue, context, result) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontDownloadListener_QueryInterface(IDWriteFontDownloadListener* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontDownloadListener_AddRef(IDWriteFontDownloadListener* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontDownloadListener_Release(IDWriteFontDownloadListener* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontDownloadListener methods ***/ -static inline void IDWriteFontDownloadListener_DownloadCompleted(IDWriteFontDownloadListener* This, IDWriteFontDownloadQueue* queue, IUnknown* context, HRESULT result) { - This->lpVtbl->DownloadCompleted(This, queue, context, result); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontDownloadListener_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontDownloadQueue interface - */ -#ifndef __IDWriteFontDownloadQueue_INTERFACE_DEFINED__ -#define __IDWriteFontDownloadQueue_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontDownloadQueue, 0xb71e6052, 0x5aea, 0x4fa3, 0x83, 0x2e, 0xf6, 0x0d, 0x43, 0x1f, 0x7e, 0x91); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("b71e6052-5aea-4fa3-832e-f60d431f7e91") -IDWriteFontDownloadQueue : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE AddListener( - IDWriteFontDownloadListener * listener, - UINT32 * token) = 0; - - virtual HRESULT STDMETHODCALLTYPE RemoveListener( - UINT32 token) = 0; - - virtual WINBOOL STDMETHODCALLTYPE IsEmpty() = 0; - - virtual HRESULT STDMETHODCALLTYPE BeginDownload( - IUnknown * context) = 0; - - virtual HRESULT STDMETHODCALLTYPE CancelDownload() = 0; - - virtual UINT64 STDMETHODCALLTYPE GetGenerationCount() = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontDownloadQueue, 0xb71e6052, 0x5aea, 0x4fa3, 0x83, 0x2e, 0xf6, 0x0d, 0x43, 0x1f, 0x7e, 0x91) -#endif -#else -typedef struct IDWriteFontDownloadQueueVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontDownloadQueue* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontDownloadQueue* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontDownloadQueue* This); - - /*** IDWriteFontDownloadQueue methods ***/ - HRESULT(STDMETHODCALLTYPE* AddListener)( - IDWriteFontDownloadQueue* This, - IDWriteFontDownloadListener* listener, - UINT32* token); - - HRESULT(STDMETHODCALLTYPE* RemoveListener)( - IDWriteFontDownloadQueue* This, - UINT32 token); - - WINBOOL(STDMETHODCALLTYPE* IsEmpty)( - IDWriteFontDownloadQueue* This); - - HRESULT(STDMETHODCALLTYPE* BeginDownload)( - IDWriteFontDownloadQueue* This, - IUnknown* context); - - HRESULT(STDMETHODCALLTYPE* CancelDownload)( - IDWriteFontDownloadQueue* This); - - UINT64(STDMETHODCALLTYPE* GetGenerationCount)( - IDWriteFontDownloadQueue* This); - - END_INTERFACE -} IDWriteFontDownloadQueueVtbl; - -interface IDWriteFontDownloadQueue { - CONST_VTBL IDWriteFontDownloadQueueVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontDownloadQueue_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontDownloadQueue_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontDownloadQueue_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontDownloadQueue methods ***/ -#define IDWriteFontDownloadQueue_AddListener(This, listener, token) (This)->lpVtbl->AddListener(This, listener, token) -#define IDWriteFontDownloadQueue_RemoveListener(This, token) (This)->lpVtbl->RemoveListener(This, token) -#define IDWriteFontDownloadQueue_IsEmpty(This) (This)->lpVtbl->IsEmpty(This) -#define IDWriteFontDownloadQueue_BeginDownload(This, context) (This)->lpVtbl->BeginDownload(This, context) -#define IDWriteFontDownloadQueue_CancelDownload(This) (This)->lpVtbl->CancelDownload(This) -#define IDWriteFontDownloadQueue_GetGenerationCount(This) (This)->lpVtbl->GetGenerationCount(This) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontDownloadQueue_QueryInterface(IDWriteFontDownloadQueue* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontDownloadQueue_AddRef(IDWriteFontDownloadQueue* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontDownloadQueue_Release(IDWriteFontDownloadQueue* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontDownloadQueue methods ***/ -static inline HRESULT IDWriteFontDownloadQueue_AddListener(IDWriteFontDownloadQueue* This, IDWriteFontDownloadListener* listener, UINT32* token) { - return This->lpVtbl->AddListener(This, listener, token); -} -static inline HRESULT IDWriteFontDownloadQueue_RemoveListener(IDWriteFontDownloadQueue* This, UINT32 token) { - return This->lpVtbl->RemoveListener(This, token); -} -static inline WINBOOL IDWriteFontDownloadQueue_IsEmpty(IDWriteFontDownloadQueue* This) { - return This->lpVtbl->IsEmpty(This); -} -static inline HRESULT IDWriteFontDownloadQueue_BeginDownload(IDWriteFontDownloadQueue* This, IUnknown* context) { - return This->lpVtbl->BeginDownload(This, context); -} -static inline HRESULT IDWriteFontDownloadQueue_CancelDownload(IDWriteFontDownloadQueue* This) { - return This->lpVtbl->CancelDownload(This); -} -static inline UINT64 IDWriteFontDownloadQueue_GetGenerationCount(IDWriteFontDownloadQueue* This) { - return This->lpVtbl->GetGenerationCount(This); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontDownloadQueue_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteRenderingParams3 interface - */ -#ifndef __IDWriteRenderingParams3_INTERFACE_DEFINED__ -#define __IDWriteRenderingParams3_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteRenderingParams3, 0xb7924baa, 0x391b, 0x412a, 0x8c, 0x5c, 0xe4, 0x4c, 0xc2, 0xd8, 0x67, 0xdc); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("b7924baa-391b-412a-8c5c-e44cc2d867dc") -IDWriteRenderingParams3 : public IDWriteRenderingParams2 { - virtual DWRITE_RENDERING_MODE1 STDMETHODCALLTYPE GetRenderingMode1() = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteRenderingParams3, 0xb7924baa, 0x391b, 0x412a, 0x8c, 0x5c, 0xe4, 0x4c, 0xc2, 0xd8, 0x67, 0xdc) -#endif -#else -typedef struct IDWriteRenderingParams3Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteRenderingParams3* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteRenderingParams3* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteRenderingParams3* This); - - /*** IDWriteRenderingParams methods ***/ - FLOAT(STDMETHODCALLTYPE* GetGamma)( - IDWriteRenderingParams3* This); - - FLOAT(STDMETHODCALLTYPE* GetEnhancedContrast)( - IDWriteRenderingParams3* This); - - FLOAT(STDMETHODCALLTYPE* GetClearTypeLevel)( - IDWriteRenderingParams3* This); - - DWRITE_PIXEL_GEOMETRY(STDMETHODCALLTYPE* GetPixelGeometry)( - IDWriteRenderingParams3* This); - - DWRITE_RENDERING_MODE(STDMETHODCALLTYPE* GetRenderingMode)( - IDWriteRenderingParams3* This); - - /*** IDWriteRenderingParams1 methods ***/ - FLOAT(STDMETHODCALLTYPE* GetGrayscaleEnhancedContrast)( - IDWriteRenderingParams3* This); - - /*** IDWriteRenderingParams2 methods ***/ - DWRITE_GRID_FIT_MODE(STDMETHODCALLTYPE* GetGridFitMode)( - IDWriteRenderingParams3* This); - - /*** IDWriteRenderingParams3 methods ***/ - DWRITE_RENDERING_MODE1(STDMETHODCALLTYPE* GetRenderingMode1)( - IDWriteRenderingParams3* This); - - END_INTERFACE -} IDWriteRenderingParams3Vtbl; - -interface IDWriteRenderingParams3 { - CONST_VTBL IDWriteRenderingParams3Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteRenderingParams3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteRenderingParams3_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteRenderingParams3_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteRenderingParams methods ***/ -#define IDWriteRenderingParams3_GetGamma(This) (This)->lpVtbl->GetGamma(This) -#define IDWriteRenderingParams3_GetEnhancedContrast(This) (This)->lpVtbl->GetEnhancedContrast(This) -#define IDWriteRenderingParams3_GetClearTypeLevel(This) (This)->lpVtbl->GetClearTypeLevel(This) -#define IDWriteRenderingParams3_GetPixelGeometry(This) (This)->lpVtbl->GetPixelGeometry(This) -#define IDWriteRenderingParams3_GetRenderingMode(This) (This)->lpVtbl->GetRenderingMode(This) -/*** IDWriteRenderingParams1 methods ***/ -#define IDWriteRenderingParams3_GetGrayscaleEnhancedContrast(This) (This)->lpVtbl->GetGrayscaleEnhancedContrast(This) -/*** IDWriteRenderingParams2 methods ***/ -#define IDWriteRenderingParams3_GetGridFitMode(This) (This)->lpVtbl->GetGridFitMode(This) -/*** IDWriteRenderingParams3 methods ***/ -#define IDWriteRenderingParams3_GetRenderingMode1(This) (This)->lpVtbl->GetRenderingMode1(This) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteRenderingParams3_QueryInterface(IDWriteRenderingParams3* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteRenderingParams3_AddRef(IDWriteRenderingParams3* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteRenderingParams3_Release(IDWriteRenderingParams3* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteRenderingParams methods ***/ -static inline FLOAT IDWriteRenderingParams3_GetGamma(IDWriteRenderingParams3* This) { - return This->lpVtbl->GetGamma(This); -} -static inline FLOAT IDWriteRenderingParams3_GetEnhancedContrast(IDWriteRenderingParams3* This) { - return This->lpVtbl->GetEnhancedContrast(This); -} -static inline FLOAT IDWriteRenderingParams3_GetClearTypeLevel(IDWriteRenderingParams3* This) { - return This->lpVtbl->GetClearTypeLevel(This); -} -static inline DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams3_GetPixelGeometry(IDWriteRenderingParams3* This) { - return This->lpVtbl->GetPixelGeometry(This); -} -static inline DWRITE_RENDERING_MODE IDWriteRenderingParams3_GetRenderingMode(IDWriteRenderingParams3* This) { - return This->lpVtbl->GetRenderingMode(This); -} -/*** IDWriteRenderingParams1 methods ***/ -static inline FLOAT IDWriteRenderingParams3_GetGrayscaleEnhancedContrast(IDWriteRenderingParams3* This) { - return This->lpVtbl->GetGrayscaleEnhancedContrast(This); -} -/*** IDWriteRenderingParams2 methods ***/ -static inline DWRITE_GRID_FIT_MODE IDWriteRenderingParams3_GetGridFitMode(IDWriteRenderingParams3* This) { - return This->lpVtbl->GetGridFitMode(This); -} -/*** IDWriteRenderingParams3 methods ***/ -static inline DWRITE_RENDERING_MODE1 IDWriteRenderingParams3_GetRenderingMode1(IDWriteRenderingParams3* This) { - return This->lpVtbl->GetRenderingMode1(This); -} -#endif -#endif - -#endif - -#endif /* __IDWriteRenderingParams3_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteStringList interface - */ -#ifndef __IDWriteStringList_INTERFACE_DEFINED__ -#define __IDWriteStringList_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteStringList, 0xcfee3140, 0x1157, 0x47ca, 0x8b, 0x85, 0x31, 0xbf, 0xcf, 0x3f, 0x2d, 0x0e); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("cfee3140-1157-47ca-8b85-31bfcf3f2d0e") -IDWriteStringList : public IUnknown { - virtual UINT32 STDMETHODCALLTYPE GetCount() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocaleNameLength( - UINT32 index, - UINT32 * length) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocaleName( - UINT32 index, - WCHAR * name, - UINT32 size) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStringLength( - UINT32 index, - UINT32 * length) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetString( - UINT32 index, - WCHAR * string, - UINT32 size) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteStringList, 0xcfee3140, 0x1157, 0x47ca, 0x8b, 0x85, 0x31, 0xbf, 0xcf, 0x3f, 0x2d, 0x0e) -#endif -#else -typedef struct IDWriteStringListVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteStringList* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteStringList* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteStringList* This); - - /*** IDWriteStringList methods ***/ - UINT32(STDMETHODCALLTYPE* GetCount)( - IDWriteStringList* This); - - HRESULT(STDMETHODCALLTYPE* GetLocaleNameLength)( - IDWriteStringList* This, - UINT32 index, - UINT32* length); - - HRESULT(STDMETHODCALLTYPE* GetLocaleName)( - IDWriteStringList* This, - UINT32 index, - WCHAR* name, - UINT32 size); - - HRESULT(STDMETHODCALLTYPE* GetStringLength)( - IDWriteStringList* This, - UINT32 index, - UINT32* length); - - HRESULT(STDMETHODCALLTYPE* GetString)( - IDWriteStringList* This, - UINT32 index, - WCHAR* string, - UINT32 size); - - END_INTERFACE -} IDWriteStringListVtbl; - -interface IDWriteStringList { - CONST_VTBL IDWriteStringListVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteStringList_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteStringList_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteStringList_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteStringList methods ***/ -#define IDWriteStringList_GetCount(This) (This)->lpVtbl->GetCount(This) -#define IDWriteStringList_GetLocaleNameLength(This, index, length) (This)->lpVtbl->GetLocaleNameLength(This, index, length) -#define IDWriteStringList_GetLocaleName(This, index, name, size) (This)->lpVtbl->GetLocaleName(This, index, name, size) -#define IDWriteStringList_GetStringLength(This, index, length) (This)->lpVtbl->GetStringLength(This, index, length) -#define IDWriteStringList_GetString(This, index, string, size) (This)->lpVtbl->GetString(This, index, string, size) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteStringList_QueryInterface(IDWriteStringList* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteStringList_AddRef(IDWriteStringList* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteStringList_Release(IDWriteStringList* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteStringList methods ***/ -static inline UINT32 IDWriteStringList_GetCount(IDWriteStringList* This) { - return This->lpVtbl->GetCount(This); -} -static inline HRESULT IDWriteStringList_GetLocaleNameLength(IDWriteStringList* This, UINT32 index, UINT32* length) { - return This->lpVtbl->GetLocaleNameLength(This, index, length); -} -static inline HRESULT IDWriteStringList_GetLocaleName(IDWriteStringList* This, UINT32 index, WCHAR* name, UINT32 size) { - return This->lpVtbl->GetLocaleName(This, index, name, size); -} -static inline HRESULT IDWriteStringList_GetStringLength(IDWriteStringList* This, UINT32 index, UINT32* length) { - return This->lpVtbl->GetStringLength(This, index, length); -} -static inline HRESULT IDWriteStringList_GetString(IDWriteStringList* This, UINT32 index, WCHAR* string, UINT32 size) { - return This->lpVtbl->GetString(This, index, string, size); -} -#endif -#endif - -#endif - -#endif /* __IDWriteStringList_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontSet interface - */ -#ifndef __IDWriteFontSet_INTERFACE_DEFINED__ -#define __IDWriteFontSet_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontSet, 0x53585141, 0xd9f8, 0x4095, 0x83, 0x21, 0xd7, 0x3c, 0xf6, 0xbd, 0x11, 0x6b); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("53585141-d9f8-4095-8321-d73cf6bd116b") -IDWriteFontSet : public IUnknown { - virtual UINT32 STDMETHODCALLTYPE GetFontCount() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( - UINT32 index, - IDWriteFontFaceReference * *reference) = 0; - - virtual HRESULT STDMETHODCALLTYPE FindFontFaceReference( - IDWriteFontFaceReference * reference, - UINT32 * index, - WINBOOL * exists) = 0; - - virtual HRESULT STDMETHODCALLTYPE FindFontFace( - IDWriteFontFace * fontface, - UINT32 * index, - WINBOOL * exists) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPropertyValues__( - DWRITE_FONT_PROPERTY_ID id, - IDWriteStringList * *values) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPropertyValues_( - DWRITE_FONT_PROPERTY_ID id, - const WCHAR* preferred_locales, - IDWriteStringList** values) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPropertyValues( - UINT32 index, - DWRITE_FONT_PROPERTY_ID id, - WINBOOL * exists, - IDWriteLocalizedStrings * *values) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPropertyOccurrenceCount( - const DWRITE_FONT_PROPERTY* property, - UINT32* count) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts_( - const WCHAR* family, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFontSet** fontset) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( - const DWRITE_FONT_PROPERTY* props, - UINT32 count, - IDWriteFontSet** fontset) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontSet, 0x53585141, 0xd9f8, 0x4095, 0x83, 0x21, 0xd7, 0x3c, 0xf6, 0xbd, 0x11, 0x6b) -#endif -#else -typedef struct IDWriteFontSetVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontSet* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontSet* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontSet* This); - - /*** IDWriteFontSet methods ***/ - UINT32(STDMETHODCALLTYPE* GetFontCount)( - IDWriteFontSet* This); - - HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( - IDWriteFontSet* This, - UINT32 index, - IDWriteFontFaceReference** reference); - - HRESULT(STDMETHODCALLTYPE* FindFontFaceReference)( - IDWriteFontSet* This, - IDWriteFontFaceReference* reference, - UINT32* index, - WINBOOL* exists); - - HRESULT(STDMETHODCALLTYPE* FindFontFace)( - IDWriteFontSet* This, - IDWriteFontFace* fontface, - UINT32* index, - WINBOOL* exists); - - HRESULT(STDMETHODCALLTYPE* GetPropertyValues__)( - IDWriteFontSet* This, - DWRITE_FONT_PROPERTY_ID id, - IDWriteStringList** values); - - HRESULT(STDMETHODCALLTYPE* GetPropertyValues_)( - IDWriteFontSet* This, - DWRITE_FONT_PROPERTY_ID id, - const WCHAR* preferred_locales, - IDWriteStringList** values); - - HRESULT(STDMETHODCALLTYPE* GetPropertyValues)( - IDWriteFontSet* This, - UINT32 index, - DWRITE_FONT_PROPERTY_ID id, - WINBOOL* exists, - IDWriteLocalizedStrings** values); - - HRESULT(STDMETHODCALLTYPE* GetPropertyOccurrenceCount)( - IDWriteFontSet* This, - const DWRITE_FONT_PROPERTY* property, - UINT32* count); - - HRESULT(STDMETHODCALLTYPE* GetMatchingFonts_)( - IDWriteFontSet* This, - const WCHAR* family, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFontSet** fontset); - - HRESULT(STDMETHODCALLTYPE* GetMatchingFonts)( - IDWriteFontSet* This, - const DWRITE_FONT_PROPERTY* props, - UINT32 count, - IDWriteFontSet** fontset); - - END_INTERFACE -} IDWriteFontSetVtbl; - -interface IDWriteFontSet { - CONST_VTBL IDWriteFontSetVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontSet_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontSet_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontSet_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontSet methods ***/ -#define IDWriteFontSet_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) -#define IDWriteFontSet_GetFontFaceReference(This, index, reference) (This)->lpVtbl->GetFontFaceReference(This, index, reference) -#define IDWriteFontSet_FindFontFaceReference(This, reference, index, exists) (This)->lpVtbl->FindFontFaceReference(This, reference, index, exists) -#define IDWriteFontSet_FindFontFace(This, fontface, index, exists) (This)->lpVtbl->FindFontFace(This, fontface, index, exists) -#define IDWriteFontSet_GetPropertyValues__(This, id, values) (This)->lpVtbl->GetPropertyValues__(This, id, values) -#define IDWriteFontSet_GetPropertyValues_(This, id, preferred_locales, values) (This)->lpVtbl->GetPropertyValues_(This, id, preferred_locales, values) -#define IDWriteFontSet_GetPropertyValues(This, index, id, exists, values) (This)->lpVtbl->GetPropertyValues(This, index, id, exists, values) -#define IDWriteFontSet_GetPropertyOccurrenceCount(This, property, count) (This)->lpVtbl->GetPropertyOccurrenceCount(This, property, count) -#define IDWriteFontSet_GetMatchingFonts_(This, family, weight, stretch, style, fontset) (This)->lpVtbl->GetMatchingFonts_(This, family, weight, stretch, style, fontset) -#define IDWriteFontSet_GetMatchingFonts(This, props, count, fontset) (This)->lpVtbl->GetMatchingFonts(This, props, count, fontset) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontSet_QueryInterface(IDWriteFontSet* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontSet_AddRef(IDWriteFontSet* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontSet_Release(IDWriteFontSet* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontSet methods ***/ -static inline UINT32 IDWriteFontSet_GetFontCount(IDWriteFontSet* This) { - return This->lpVtbl->GetFontCount(This); -} -static inline HRESULT IDWriteFontSet_GetFontFaceReference(IDWriteFontSet* This, UINT32 index, IDWriteFontFaceReference** reference) { - return This->lpVtbl->GetFontFaceReference(This, index, reference); -} -static inline HRESULT IDWriteFontSet_FindFontFaceReference(IDWriteFontSet* This, IDWriteFontFaceReference* reference, UINT32* index, WINBOOL* exists) { - return This->lpVtbl->FindFontFaceReference(This, reference, index, exists); -} -static inline HRESULT IDWriteFontSet_FindFontFace(IDWriteFontSet* This, IDWriteFontFace* fontface, UINT32* index, WINBOOL* exists) { - return This->lpVtbl->FindFontFace(This, fontface, index, exists); -} -static inline HRESULT IDWriteFontSet_GetPropertyValues__(IDWriteFontSet* This, DWRITE_FONT_PROPERTY_ID id, IDWriteStringList** values) { - return This->lpVtbl->GetPropertyValues__(This, id, values); -} -static inline HRESULT IDWriteFontSet_GetPropertyValues_(IDWriteFontSet* This, DWRITE_FONT_PROPERTY_ID id, const WCHAR* preferred_locales, IDWriteStringList** values) { - return This->lpVtbl->GetPropertyValues_(This, id, preferred_locales, values); -} -static inline HRESULT IDWriteFontSet_GetPropertyValues(IDWriteFontSet* This, UINT32 index, DWRITE_FONT_PROPERTY_ID id, WINBOOL* exists, IDWriteLocalizedStrings** values) { - return This->lpVtbl->GetPropertyValues(This, index, id, exists, values); -} -static inline HRESULT IDWriteFontSet_GetPropertyOccurrenceCount(IDWriteFontSet* This, const DWRITE_FONT_PROPERTY* property, UINT32* count) { - return This->lpVtbl->GetPropertyOccurrenceCount(This, property, count); -} -static inline HRESULT IDWriteFontSet_GetMatchingFonts_(IDWriteFontSet* This, const WCHAR* family, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFontSet** fontset) { - return This->lpVtbl->GetMatchingFonts_(This, family, weight, stretch, style, fontset); -} -static inline HRESULT IDWriteFontSet_GetMatchingFonts(IDWriteFontSet* This, const DWRITE_FONT_PROPERTY* props, UINT32 count, IDWriteFontSet** fontset) { - return This->lpVtbl->GetMatchingFonts(This, props, count, fontset); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontSet_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontResource interface - */ -#ifndef __IDWriteFontResource_INTERFACE_DEFINED__ -#define __IDWriteFontResource_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontResource, 0x1f803a76, 0x6871, 0x48e8, 0x98, 0x7f, 0xb9, 0x75, 0x55, 0x1c, 0x50, 0xf2); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("1f803a76-6871-48e8-987f-b975551c50f2") -IDWriteFontResource : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE GetFontFile( - IDWriteFontFile * *fontfile) = 0; - - virtual UINT32 STDMETHODCALLTYPE GetFontFaceIndex() = 0; - - virtual UINT32 STDMETHODCALLTYPE GetFontAxisCount() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDefaultFontAxisValues( - DWRITE_FONT_AXIS_VALUE * values, - UINT32 num_values) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges( - DWRITE_FONT_AXIS_RANGE * ranges, - UINT32 num_ranges) = 0; - - virtual DWRITE_FONT_AXIS_ATTRIBUTES STDMETHODCALLTYPE GetFontAxisAttributes( - UINT32 axis) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAxisNames( - UINT32 axis, - IDWriteLocalizedStrings * *names) = 0; - - virtual UINT32 STDMETHODCALLTYPE GetAxisValueNameCount( - UINT32 axis) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAxisValueNames( - UINT32 axis, - UINT32 axis_value, - DWRITE_FONT_AXIS_RANGE * axis_range, - IDWriteLocalizedStrings * *names) = 0; - - virtual WINBOOL STDMETHODCALLTYPE HasVariations() = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontFace( - DWRITE_FONT_SIMULATIONS simulations, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values, - IDWriteFontFace5** fontface) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference( - DWRITE_FONT_SIMULATIONS simulations, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values, - IDWriteFontFaceReference1** reference) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontResource, 0x1f803a76, 0x6871, 0x48e8, 0x98, 0x7f, 0xb9, 0x75, 0x55, 0x1c, 0x50, 0xf2) -#endif -#else -typedef struct IDWriteFontResourceVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontResource* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontResource* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontResource* This); - - /*** IDWriteFontResource methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFontFile)( - IDWriteFontResource* This, - IDWriteFontFile** fontfile); - - UINT32(STDMETHODCALLTYPE* GetFontFaceIndex)( - IDWriteFontResource* This); - - UINT32(STDMETHODCALLTYPE* GetFontAxisCount)( - IDWriteFontResource* This); - - HRESULT(STDMETHODCALLTYPE* GetDefaultFontAxisValues)( - IDWriteFontResource* This, - DWRITE_FONT_AXIS_VALUE* values, - UINT32 num_values); - - HRESULT(STDMETHODCALLTYPE* GetFontAxisRanges)( - IDWriteFontResource* This, - DWRITE_FONT_AXIS_RANGE* ranges, - UINT32 num_ranges); - - DWRITE_FONT_AXIS_ATTRIBUTES(STDMETHODCALLTYPE* GetFontAxisAttributes)( - IDWriteFontResource* This, - UINT32 axis); - - HRESULT(STDMETHODCALLTYPE* GetAxisNames)( - IDWriteFontResource* This, - UINT32 axis, - IDWriteLocalizedStrings** names); - - UINT32(STDMETHODCALLTYPE* GetAxisValueNameCount)( - IDWriteFontResource* This, - UINT32 axis); - - HRESULT(STDMETHODCALLTYPE* GetAxisValueNames)( - IDWriteFontResource* This, - UINT32 axis, - UINT32 axis_value, - DWRITE_FONT_AXIS_RANGE* axis_range, - IDWriteLocalizedStrings** names); - - WINBOOL(STDMETHODCALLTYPE* HasVariations)( - IDWriteFontResource* This); - - HRESULT(STDMETHODCALLTYPE* CreateFontFace)( - IDWriteFontResource* This, - DWRITE_FONT_SIMULATIONS simulations, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values, - IDWriteFontFace5** fontface); - - HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference)( - IDWriteFontResource* This, - DWRITE_FONT_SIMULATIONS simulations, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values, - IDWriteFontFaceReference1** reference); - - END_INTERFACE -} IDWriteFontResourceVtbl; - -interface IDWriteFontResource { - CONST_VTBL IDWriteFontResourceVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontResource_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontResource_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontResource_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontResource methods ***/ -#define IDWriteFontResource_GetFontFile(This, fontfile) (This)->lpVtbl->GetFontFile(This, fontfile) -#define IDWriteFontResource_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This) -#define IDWriteFontResource_GetFontAxisCount(This) (This)->lpVtbl->GetFontAxisCount(This) -#define IDWriteFontResource_GetDefaultFontAxisValues(This, values, num_values) (This)->lpVtbl->GetDefaultFontAxisValues(This, values, num_values) -#define IDWriteFontResource_GetFontAxisRanges(This, ranges, num_ranges) (This)->lpVtbl->GetFontAxisRanges(This, ranges, num_ranges) -#define IDWriteFontResource_GetFontAxisAttributes(This, axis) (This)->lpVtbl->GetFontAxisAttributes(This, axis) -#define IDWriteFontResource_GetAxisNames(This, axis, names) (This)->lpVtbl->GetAxisNames(This, axis, names) -#define IDWriteFontResource_GetAxisValueNameCount(This, axis) (This)->lpVtbl->GetAxisValueNameCount(This, axis) -#define IDWriteFontResource_GetAxisValueNames(This, axis, axis_value, axis_range, names) (This)->lpVtbl->GetAxisValueNames(This, axis, axis_value, axis_range, names) -#define IDWriteFontResource_HasVariations(This) (This)->lpVtbl->HasVariations(This) -#define IDWriteFontResource_CreateFontFace(This, simulations, axis_values, num_values, fontface) (This)->lpVtbl->CreateFontFace(This, simulations, axis_values, num_values, fontface) -#define IDWriteFontResource_CreateFontFaceReference(This, simulations, axis_values, num_values, reference) (This)->lpVtbl->CreateFontFaceReference(This, simulations, axis_values, num_values, reference) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontResource_QueryInterface(IDWriteFontResource* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontResource_AddRef(IDWriteFontResource* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontResource_Release(IDWriteFontResource* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontResource methods ***/ -static inline HRESULT IDWriteFontResource_GetFontFile(IDWriteFontResource* This, IDWriteFontFile** fontfile) { - return This->lpVtbl->GetFontFile(This, fontfile); -} -static inline UINT32 IDWriteFontResource_GetFontFaceIndex(IDWriteFontResource* This) { - return This->lpVtbl->GetFontFaceIndex(This); -} -static inline UINT32 IDWriteFontResource_GetFontAxisCount(IDWriteFontResource* This) { - return This->lpVtbl->GetFontAxisCount(This); -} -static inline HRESULT IDWriteFontResource_GetDefaultFontAxisValues(IDWriteFontResource* This, DWRITE_FONT_AXIS_VALUE* values, UINT32 num_values) { - return This->lpVtbl->GetDefaultFontAxisValues(This, values, num_values); -} -static inline HRESULT IDWriteFontResource_GetFontAxisRanges(IDWriteFontResource* This, DWRITE_FONT_AXIS_RANGE* ranges, UINT32 num_ranges) { - return This->lpVtbl->GetFontAxisRanges(This, ranges, num_ranges); -} -static inline DWRITE_FONT_AXIS_ATTRIBUTES IDWriteFontResource_GetFontAxisAttributes(IDWriteFontResource* This, UINT32 axis) { - return This->lpVtbl->GetFontAxisAttributes(This, axis); -} -static inline HRESULT IDWriteFontResource_GetAxisNames(IDWriteFontResource* This, UINT32 axis, IDWriteLocalizedStrings** names) { - return This->lpVtbl->GetAxisNames(This, axis, names); -} -static inline UINT32 IDWriteFontResource_GetAxisValueNameCount(IDWriteFontResource* This, UINT32 axis) { - return This->lpVtbl->GetAxisValueNameCount(This, axis); -} -static inline HRESULT IDWriteFontResource_GetAxisValueNames(IDWriteFontResource* This, UINT32 axis, UINT32 axis_value, DWRITE_FONT_AXIS_RANGE* axis_range, IDWriteLocalizedStrings** names) { - return This->lpVtbl->GetAxisValueNames(This, axis, axis_value, axis_range, names); -} -static inline WINBOOL IDWriteFontResource_HasVariations(IDWriteFontResource* This) { - return This->lpVtbl->HasVariations(This); -} -static inline HRESULT IDWriteFontResource_CreateFontFace(IDWriteFontResource* This, DWRITE_FONT_SIMULATIONS simulations, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values, IDWriteFontFace5** fontface) { - return This->lpVtbl->CreateFontFace(This, simulations, axis_values, num_values, fontface); -} -static inline HRESULT IDWriteFontResource_CreateFontFaceReference(IDWriteFontResource* This, DWRITE_FONT_SIMULATIONS simulations, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values, IDWriteFontFaceReference1** reference) { - return This->lpVtbl->CreateFontFaceReference(This, simulations, axis_values, num_values, reference); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontResource_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontSet1 interface - */ -#ifndef __IDWriteFontSet1_INTERFACE_DEFINED__ -#define __IDWriteFontSet1_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontSet1, 0x7e9fda85, 0x6c92, 0x4053, 0xbc, 0x47, 0x7a, 0xe3, 0x53, 0x0d, 0xb4, 0xd3); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("7e9fda85-6c92-4053-bc47-7ae3530db4d3") -IDWriteFontSet1 : public IDWriteFontSet { - virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( - const DWRITE_FONT_PROPERTY* property, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values, - IDWriteFontSet1** fontset) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFirstFontResources( - IDWriteFontSet1 * *fontset) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts__( - const UINT32* indices, - UINT32 num_indices, - IDWriteFontSet1** fontset) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts_( - const DWRITE_FONT_AXIS_RANGE* axis_ranges, - UINT32 num_ranges, - WINBOOL select_any_range, - IDWriteFontSet1** fontset) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts( - const DWRITE_FONT_PROPERTY* props, - UINT32 num_properties, - WINBOOL select_any_property, - IDWriteFontSet1** fontset) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFilteredFontIndices_( - const DWRITE_FONT_AXIS_RANGE* ranges, - UINT32 num_ranges, - WINBOOL select_any_range, - UINT32* indices, - UINT32 num_indices, - UINT32* actual_num_indices) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFilteredFontIndices( - const DWRITE_FONT_PROPERTY* props, - UINT32 num_properties, - WINBOOL select_any_range, - UINT32* indices, - UINT32 num_indices, - UINT32* actual_num_indices) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges_( - UINT32 font_index, - DWRITE_FONT_AXIS_RANGE * axis_ranges, - UINT32 num_ranges, - UINT32 * actual_num_ranges) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges( - DWRITE_FONT_AXIS_RANGE * axis_ranges, - UINT32 num_ranges, - UINT32 * actual_num_ranges) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( - UINT32 index, - IDWriteFontFaceReference1 * *reference) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontResource( - UINT32 index, - IDWriteFontResource * *resource) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontFace( - UINT32 index, - IDWriteFontFace5 * *fontface) = 0; - - virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality( - UINT32 index) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontSet1, 0x7e9fda85, 0x6c92, 0x4053, 0xbc, 0x47, 0x7a, 0xe3, 0x53, 0x0d, 0xb4, 0xd3) -#endif -#else -typedef struct IDWriteFontSet1Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontSet1* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontSet1* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontSet1* This); - - /*** IDWriteFontSet methods ***/ - UINT32(STDMETHODCALLTYPE* GetFontCount)( - IDWriteFontSet1* This); - - HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( - IDWriteFontSet1* This, - UINT32 index, - IDWriteFontFaceReference** reference); - - HRESULT(STDMETHODCALLTYPE* FindFontFaceReference)( - IDWriteFontSet1* This, - IDWriteFontFaceReference* reference, - UINT32* index, - WINBOOL* exists); - - HRESULT(STDMETHODCALLTYPE* FindFontFace)( - IDWriteFontSet1* This, - IDWriteFontFace* fontface, - UINT32* index, - WINBOOL* exists); - - HRESULT(STDMETHODCALLTYPE* GetPropertyValues__)( - IDWriteFontSet1* This, - DWRITE_FONT_PROPERTY_ID id, - IDWriteStringList** values); - - HRESULT(STDMETHODCALLTYPE* GetPropertyValues_)( - IDWriteFontSet1* This, - DWRITE_FONT_PROPERTY_ID id, - const WCHAR* preferred_locales, - IDWriteStringList** values); - - HRESULT(STDMETHODCALLTYPE* GetPropertyValues)( - IDWriteFontSet1* This, - UINT32 index, - DWRITE_FONT_PROPERTY_ID id, - WINBOOL* exists, - IDWriteLocalizedStrings** values); - - HRESULT(STDMETHODCALLTYPE* GetPropertyOccurrenceCount)( - IDWriteFontSet1* This, - const DWRITE_FONT_PROPERTY* property, - UINT32* count); - - HRESULT(STDMETHODCALLTYPE* GetMatchingFonts_)( - IDWriteFontSet1* This, - const WCHAR* family, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFontSet** fontset); - - HRESULT(STDMETHODCALLTYPE* GetMatchingFonts)( - IDWriteFontSet1* This, - const DWRITE_FONT_PROPERTY* props, - UINT32 count, - IDWriteFontSet** fontset); - - /*** IDWriteFontSet1 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFontSet1_GetMatchingFonts)( - IDWriteFontSet1* This, - const DWRITE_FONT_PROPERTY* property, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* GetFirstFontResources)( - IDWriteFontSet1* This, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* GetFilteredFonts__)( - IDWriteFontSet1* This, - const UINT32* indices, - UINT32 num_indices, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* GetFilteredFonts_)( - IDWriteFontSet1* This, - const DWRITE_FONT_AXIS_RANGE* axis_ranges, - UINT32 num_ranges, - WINBOOL select_any_range, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* GetFilteredFonts)( - IDWriteFontSet1* This, - const DWRITE_FONT_PROPERTY* props, - UINT32 num_properties, - WINBOOL select_any_property, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* GetFilteredFontIndices_)( - IDWriteFontSet1* This, - const DWRITE_FONT_AXIS_RANGE* ranges, - UINT32 num_ranges, - WINBOOL select_any_range, - UINT32* indices, - UINT32 num_indices, - UINT32* actual_num_indices); - - HRESULT(STDMETHODCALLTYPE* GetFilteredFontIndices)( - IDWriteFontSet1* This, - const DWRITE_FONT_PROPERTY* props, - UINT32 num_properties, - WINBOOL select_any_range, - UINT32* indices, - UINT32 num_indices, - UINT32* actual_num_indices); - - HRESULT(STDMETHODCALLTYPE* GetFontAxisRanges_)( - IDWriteFontSet1* This, - UINT32 font_index, - DWRITE_FONT_AXIS_RANGE* axis_ranges, - UINT32 num_ranges, - UINT32* actual_num_ranges); - - HRESULT(STDMETHODCALLTYPE* GetFontAxisRanges)( - IDWriteFontSet1* This, - DWRITE_FONT_AXIS_RANGE* axis_ranges, - UINT32 num_ranges, - UINT32* actual_num_ranges); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontSet1_GetFontFaceReference)( - IDWriteFontSet1* This, - UINT32 index, - IDWriteFontFaceReference1** reference); - - HRESULT(STDMETHODCALLTYPE* CreateFontResource)( - IDWriteFontSet1* This, - UINT32 index, - IDWriteFontResource** resource); - - HRESULT(STDMETHODCALLTYPE* CreateFontFace)( - IDWriteFontSet1* This, - UINT32 index, - IDWriteFontFace5** fontface); - - DWRITE_LOCALITY(STDMETHODCALLTYPE* GetFontLocality)( - IDWriteFontSet1* This, - UINT32 index); - - END_INTERFACE -} IDWriteFontSet1Vtbl; - -interface IDWriteFontSet1 { - CONST_VTBL IDWriteFontSet1Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontSet1_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontSet1_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontSet1_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontSet methods ***/ -#define IDWriteFontSet1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) -#define IDWriteFontSet1_FindFontFaceReference(This, reference, index, exists) (This)->lpVtbl->FindFontFaceReference(This, reference, index, exists) -#define IDWriteFontSet1_FindFontFace(This, fontface, index, exists) (This)->lpVtbl->FindFontFace(This, fontface, index, exists) -#define IDWriteFontSet1_GetPropertyValues__(This, id, values) (This)->lpVtbl->GetPropertyValues__(This, id, values) -#define IDWriteFontSet1_GetPropertyValues_(This, id, preferred_locales, values) (This)->lpVtbl->GetPropertyValues_(This, id, preferred_locales, values) -#define IDWriteFontSet1_GetPropertyValues(This, index, id, exists, values) (This)->lpVtbl->GetPropertyValues(This, index, id, exists, values) -#define IDWriteFontSet1_GetPropertyOccurrenceCount(This, property, count) (This)->lpVtbl->GetPropertyOccurrenceCount(This, property, count) -#define IDWriteFontSet1_GetMatchingFonts_(This, family, weight, stretch, style, fontset) (This)->lpVtbl->GetMatchingFonts_(This, family, weight, stretch, style, fontset) -/*** IDWriteFontSet1 methods ***/ -#define IDWriteFontSet1_GetMatchingFonts(This, property, axis_values, num_values, fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This, property, axis_values, num_values, fontset) -#define IDWriteFontSet1_GetFirstFontResources(This, fontset) (This)->lpVtbl->GetFirstFontResources(This, fontset) -#define IDWriteFontSet1_GetFilteredFonts__(This, indices, num_indices, fontset) (This)->lpVtbl->GetFilteredFonts__(This, indices, num_indices, fontset) -#define IDWriteFontSet1_GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset) (This)->lpVtbl->GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset) -#define IDWriteFontSet1_GetFilteredFonts(This, props, num_properties, select_any_property, fontset) (This)->lpVtbl->GetFilteredFonts(This, props, num_properties, select_any_property, fontset) -#define IDWriteFontSet1_GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices) -#define IDWriteFontSet1_GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices) -#define IDWriteFontSet1_GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges) -#define IDWriteFontSet1_GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges) -#define IDWriteFontSet1_GetFontFaceReference(This, index, reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This, index, reference) -#define IDWriteFontSet1_CreateFontResource(This, index, resource) (This)->lpVtbl->CreateFontResource(This, index, resource) -#define IDWriteFontSet1_CreateFontFace(This, index, fontface) (This)->lpVtbl->CreateFontFace(This, index, fontface) -#define IDWriteFontSet1_GetFontLocality(This, index) (This)->lpVtbl->GetFontLocality(This, index) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontSet1_QueryInterface(IDWriteFontSet1* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontSet1_AddRef(IDWriteFontSet1* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontSet1_Release(IDWriteFontSet1* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontSet methods ***/ -static inline UINT32 IDWriteFontSet1_GetFontCount(IDWriteFontSet1* This) { - return This->lpVtbl->GetFontCount(This); -} -static inline HRESULT IDWriteFontSet1_FindFontFaceReference(IDWriteFontSet1* This, IDWriteFontFaceReference* reference, UINT32* index, WINBOOL* exists) { - return This->lpVtbl->FindFontFaceReference(This, reference, index, exists); -} -static inline HRESULT IDWriteFontSet1_FindFontFace(IDWriteFontSet1* This, IDWriteFontFace* fontface, UINT32* index, WINBOOL* exists) { - return This->lpVtbl->FindFontFace(This, fontface, index, exists); -} -static inline HRESULT IDWriteFontSet1_GetPropertyValues__(IDWriteFontSet1* This, DWRITE_FONT_PROPERTY_ID id, IDWriteStringList** values) { - return This->lpVtbl->GetPropertyValues__(This, id, values); -} -static inline HRESULT IDWriteFontSet1_GetPropertyValues_(IDWriteFontSet1* This, DWRITE_FONT_PROPERTY_ID id, const WCHAR* preferred_locales, IDWriteStringList** values) { - return This->lpVtbl->GetPropertyValues_(This, id, preferred_locales, values); -} -static inline HRESULT IDWriteFontSet1_GetPropertyValues(IDWriteFontSet1* This, UINT32 index, DWRITE_FONT_PROPERTY_ID id, WINBOOL* exists, IDWriteLocalizedStrings** values) { - return This->lpVtbl->GetPropertyValues(This, index, id, exists, values); -} -static inline HRESULT IDWriteFontSet1_GetPropertyOccurrenceCount(IDWriteFontSet1* This, const DWRITE_FONT_PROPERTY* property, UINT32* count) { - return This->lpVtbl->GetPropertyOccurrenceCount(This, property, count); -} -static inline HRESULT IDWriteFontSet1_GetMatchingFonts_(IDWriteFontSet1* This, const WCHAR* family, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFontSet** fontset) { - return This->lpVtbl->GetMatchingFonts_(This, family, weight, stretch, style, fontset); -} -/*** IDWriteFontSet1 methods ***/ -static inline HRESULT IDWriteFontSet1_GetMatchingFonts(IDWriteFontSet1* This, const DWRITE_FONT_PROPERTY* property, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values, IDWriteFontSet1** fontset) { - return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This, property, axis_values, num_values, fontset); -} -static inline HRESULT IDWriteFontSet1_GetFirstFontResources(IDWriteFontSet1* This, IDWriteFontSet1** fontset) { - return This->lpVtbl->GetFirstFontResources(This, fontset); -} -static inline HRESULT IDWriteFontSet1_GetFilteredFonts__(IDWriteFontSet1* This, const UINT32* indices, UINT32 num_indices, IDWriteFontSet1** fontset) { - return This->lpVtbl->GetFilteredFonts__(This, indices, num_indices, fontset); -} -static inline HRESULT IDWriteFontSet1_GetFilteredFonts_(IDWriteFontSet1* This, const DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, WINBOOL select_any_range, IDWriteFontSet1** fontset) { - return This->lpVtbl->GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset); -} -static inline HRESULT IDWriteFontSet1_GetFilteredFonts(IDWriteFontSet1* This, const DWRITE_FONT_PROPERTY* props, UINT32 num_properties, WINBOOL select_any_property, IDWriteFontSet1** fontset) { - return This->lpVtbl->GetFilteredFonts(This, props, num_properties, select_any_property, fontset); -} -static inline HRESULT IDWriteFontSet1_GetFilteredFontIndices_(IDWriteFontSet1* This, const DWRITE_FONT_AXIS_RANGE* ranges, UINT32 num_ranges, WINBOOL select_any_range, UINT32* indices, UINT32 num_indices, UINT32* actual_num_indices) { - return This->lpVtbl->GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices); -} -static inline HRESULT IDWriteFontSet1_GetFilteredFontIndices(IDWriteFontSet1* This, const DWRITE_FONT_PROPERTY* props, UINT32 num_properties, WINBOOL select_any_range, UINT32* indices, UINT32 num_indices, UINT32* actual_num_indices) { - return This->lpVtbl->GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices); -} -static inline HRESULT IDWriteFontSet1_GetFontAxisRanges_(IDWriteFontSet1* This, UINT32 font_index, DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, UINT32* actual_num_ranges) { - return This->lpVtbl->GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges); -} -static inline HRESULT IDWriteFontSet1_GetFontAxisRanges(IDWriteFontSet1* This, DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, UINT32* actual_num_ranges) { - return This->lpVtbl->GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges); -} -static inline HRESULT IDWriteFontSet1_GetFontFaceReference(IDWriteFontSet1* This, UINT32 index, IDWriteFontFaceReference1** reference) { - return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This, index, reference); -} -static inline HRESULT IDWriteFontSet1_CreateFontResource(IDWriteFontSet1* This, UINT32 index, IDWriteFontResource** resource) { - return This->lpVtbl->CreateFontResource(This, index, resource); -} -static inline HRESULT IDWriteFontSet1_CreateFontFace(IDWriteFontSet1* This, UINT32 index, IDWriteFontFace5** fontface) { - return This->lpVtbl->CreateFontFace(This, index, fontface); -} -static inline DWRITE_LOCALITY IDWriteFontSet1_GetFontLocality(IDWriteFontSet1* This, UINT32 index) { - return This->lpVtbl->GetFontLocality(This, index); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontSet1_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFont3 interface - */ -#ifndef __IDWriteFont3_INTERFACE_DEFINED__ -#define __IDWriteFont3_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFont3, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe, 0x0b, 0xd9, 0x12, 0xe8, 0x53, 0x89, 0x44); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("29748ed6-8c9c-4a6a-be0b-d912e8538944") -IDWriteFont3 : public IDWriteFont2 { - virtual HRESULT STDMETHODCALLTYPE CreateFontFace( - IDWriteFontFace3 * *fontface) = 0; - - virtual WINBOOL STDMETHODCALLTYPE Equals( - IDWriteFont * font) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( - IDWriteFontFaceReference * *reference) = 0; - - virtual WINBOOL STDMETHODCALLTYPE HasCharacter( - UINT32 character) = 0; - - virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality() = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFont3, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe, 0x0b, 0xd9, 0x12, 0xe8, 0x53, 0x89, 0x44) -#endif -#else -typedef struct IDWriteFont3Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFont3* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFont3* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFont3* This); - - /*** IDWriteFont methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFontFamily)( - IDWriteFont3* This, - IDWriteFontFamily** family); - - DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetWeight)( - IDWriteFont3* This); - - DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetStretch)( - IDWriteFont3* This); - - DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetStyle)( - IDWriteFont3* This); - - WINBOOL(STDMETHODCALLTYPE* IsSymbolFont)( - IDWriteFont3* This); - - HRESULT(STDMETHODCALLTYPE* GetFaceNames)( - IDWriteFont3* This, - IDWriteLocalizedStrings** names); - - HRESULT(STDMETHODCALLTYPE* GetInformationalStrings)( - IDWriteFont3* This, - DWRITE_INFORMATIONAL_STRING_ID stringid, - IDWriteLocalizedStrings** strings, - WINBOOL* exists); - - DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( - IDWriteFont3* This); - - void(STDMETHODCALLTYPE* GetMetrics)( - IDWriteFont3* This, - DWRITE_FONT_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* HasCharacter)( - IDWriteFont3* This, - UINT32 value, - WINBOOL* exists); - - HRESULT(STDMETHODCALLTYPE* CreateFontFace)( - IDWriteFont3* This, - IDWriteFontFace** face); - - /*** IDWriteFont1 methods ***/ - void(STDMETHODCALLTYPE* IDWriteFont1_GetMetrics)( - IDWriteFont3* This, - DWRITE_FONT_METRICS1* metrics); - - void(STDMETHODCALLTYPE* GetPanose)( - IDWriteFont3* This, - DWRITE_PANOSE* panose); - - HRESULT(STDMETHODCALLTYPE* GetUnicodeRanges)( - IDWriteFont3* This, - UINT32 max_count, - DWRITE_UNICODE_RANGE* ranges, - UINT32* count); - - WINBOOL(STDMETHODCALLTYPE* IsMonospacedFont)( - IDWriteFont3* This); - - /*** IDWriteFont2 methods ***/ - WINBOOL(STDMETHODCALLTYPE* IsColorFont)( - IDWriteFont3* This); - - /*** IDWriteFont3 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFont3_CreateFontFace)( - IDWriteFont3* This, - IDWriteFontFace3** fontface); - - WINBOOL(STDMETHODCALLTYPE* Equals)( - IDWriteFont3* This, - IDWriteFont* font); - - HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( - IDWriteFont3* This, - IDWriteFontFaceReference** reference); - - WINBOOL(STDMETHODCALLTYPE* IDWriteFont3_HasCharacter)( - IDWriteFont3* This, - UINT32 character); - - DWRITE_LOCALITY(STDMETHODCALLTYPE* GetLocality)( - IDWriteFont3* This); - - END_INTERFACE -} IDWriteFont3Vtbl; - -interface IDWriteFont3 { - CONST_VTBL IDWriteFont3Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFont3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFont3_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFont3_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFont methods ***/ -#define IDWriteFont3_GetFontFamily(This, family) (This)->lpVtbl->GetFontFamily(This, family) -#define IDWriteFont3_GetWeight(This) (This)->lpVtbl->GetWeight(This) -#define IDWriteFont3_GetStretch(This) (This)->lpVtbl->GetStretch(This) -#define IDWriteFont3_GetStyle(This) (This)->lpVtbl->GetStyle(This) -#define IDWriteFont3_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) -#define IDWriteFont3_GetFaceNames(This, names) (This)->lpVtbl->GetFaceNames(This, names) -#define IDWriteFont3_GetInformationalStrings(This, stringid, strings, exists) (This)->lpVtbl->GetInformationalStrings(This, stringid, strings, exists) -#define IDWriteFont3_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) -/*** IDWriteFont1 methods ***/ -#define IDWriteFont3_GetMetrics(This, metrics) (This)->lpVtbl->IDWriteFont1_GetMetrics(This, metrics) -#define IDWriteFont3_GetPanose(This, panose) (This)->lpVtbl->GetPanose(This, panose) -#define IDWriteFont3_GetUnicodeRanges(This, max_count, ranges, count) (This)->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count) -#define IDWriteFont3_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) -/*** IDWriteFont2 methods ***/ -#define IDWriteFont3_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) -/*** IDWriteFont3 methods ***/ -#define IDWriteFont3_CreateFontFace(This, fontface) (This)->lpVtbl->IDWriteFont3_CreateFontFace(This, fontface) -#define IDWriteFont3_Equals(This, font) (This)->lpVtbl->Equals(This, font) -#define IDWriteFont3_GetFontFaceReference(This, reference) (This)->lpVtbl->GetFontFaceReference(This, reference) -#define IDWriteFont3_HasCharacter(This, character) (This)->lpVtbl->IDWriteFont3_HasCharacter(This, character) -#define IDWriteFont3_GetLocality(This) (This)->lpVtbl->GetLocality(This) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFont3_QueryInterface(IDWriteFont3* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFont3_AddRef(IDWriteFont3* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFont3_Release(IDWriteFont3* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFont methods ***/ -static inline HRESULT IDWriteFont3_GetFontFamily(IDWriteFont3* This, IDWriteFontFamily** family) { - return This->lpVtbl->GetFontFamily(This, family); -} -static inline DWRITE_FONT_WEIGHT IDWriteFont3_GetWeight(IDWriteFont3* This) { - return This->lpVtbl->GetWeight(This); -} -static inline DWRITE_FONT_STRETCH IDWriteFont3_GetStretch(IDWriteFont3* This) { - return This->lpVtbl->GetStretch(This); -} -static inline DWRITE_FONT_STYLE IDWriteFont3_GetStyle(IDWriteFont3* This) { - return This->lpVtbl->GetStyle(This); -} -static inline WINBOOL IDWriteFont3_IsSymbolFont(IDWriteFont3* This) { - return This->lpVtbl->IsSymbolFont(This); -} -static inline HRESULT IDWriteFont3_GetFaceNames(IDWriteFont3* This, IDWriteLocalizedStrings** names) { - return This->lpVtbl->GetFaceNames(This, names); -} -static inline HRESULT IDWriteFont3_GetInformationalStrings(IDWriteFont3* This, DWRITE_INFORMATIONAL_STRING_ID stringid, IDWriteLocalizedStrings** strings, WINBOOL* exists) { - return This->lpVtbl->GetInformationalStrings(This, stringid, strings, exists); -} -static inline DWRITE_FONT_SIMULATIONS IDWriteFont3_GetSimulations(IDWriteFont3* This) { - return This->lpVtbl->GetSimulations(This); -} -/*** IDWriteFont1 methods ***/ -static inline void IDWriteFont3_GetMetrics(IDWriteFont3* This, DWRITE_FONT_METRICS1* metrics) { - This->lpVtbl->IDWriteFont1_GetMetrics(This, metrics); -} -static inline void IDWriteFont3_GetPanose(IDWriteFont3* This, DWRITE_PANOSE* panose) { - This->lpVtbl->GetPanose(This, panose); -} -static inline HRESULT IDWriteFont3_GetUnicodeRanges(IDWriteFont3* This, UINT32 max_count, DWRITE_UNICODE_RANGE* ranges, UINT32* count) { - return This->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count); -} -static inline WINBOOL IDWriteFont3_IsMonospacedFont(IDWriteFont3* This) { - return This->lpVtbl->IsMonospacedFont(This); -} -/*** IDWriteFont2 methods ***/ -static inline WINBOOL IDWriteFont3_IsColorFont(IDWriteFont3* This) { - return This->lpVtbl->IsColorFont(This); -} -/*** IDWriteFont3 methods ***/ -static inline HRESULT IDWriteFont3_CreateFontFace(IDWriteFont3* This, IDWriteFontFace3** fontface) { - return This->lpVtbl->IDWriteFont3_CreateFontFace(This, fontface); -} -static inline WINBOOL IDWriteFont3_Equals(IDWriteFont3* This, IDWriteFont* font) { - return This->lpVtbl->Equals(This, font); -} -static inline HRESULT IDWriteFont3_GetFontFaceReference(IDWriteFont3* This, IDWriteFontFaceReference** reference) { - return This->lpVtbl->GetFontFaceReference(This, reference); -} -static inline WINBOOL IDWriteFont3_HasCharacter(IDWriteFont3* This, UINT32 character) { - return This->lpVtbl->IDWriteFont3_HasCharacter(This, character); -} -static inline DWRITE_LOCALITY IDWriteFont3_GetLocality(IDWriteFont3* This) { - return This->lpVtbl->GetLocality(This); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFont3_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontFamily1 interface - */ -#ifndef __IDWriteFontFamily1_INTERFACE_DEFINED__ -#define __IDWriteFontFamily1_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontFamily1, 0xda20d8ef, 0x812a, 0x4c43, 0x98, 0x02, 0x62, 0xec, 0x4a, 0xbd, 0x7a, 0xdf); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7adf") -IDWriteFontFamily1 : public IDWriteFontFamily { - virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality( - UINT32 index) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFont( - UINT32 index, - IDWriteFont3 * *font) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( - UINT32 index, - IDWriteFontFaceReference * *reference) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFamily1, 0xda20d8ef, 0x812a, 0x4c43, 0x98, 0x02, 0x62, 0xec, 0x4a, 0xbd, 0x7a, 0xdf) -#endif -#else -typedef struct IDWriteFontFamily1Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontFamily1* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontFamily1* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontFamily1* This); - - /*** IDWriteFontList methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFontCollection)( - IDWriteFontFamily1* This, - IDWriteFontCollection** collection); - - UINT32(STDMETHODCALLTYPE* GetFontCount)( - IDWriteFontFamily1* This); - - HRESULT(STDMETHODCALLTYPE* GetFont)( - IDWriteFontFamily1* This, - UINT32 index, - IDWriteFont** font); - - /*** IDWriteFontFamily methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFamilyNames)( - IDWriteFontFamily1* This, - IDWriteLocalizedStrings** names); - - HRESULT(STDMETHODCALLTYPE* GetFirstMatchingFont)( - IDWriteFontFamily1* This, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFont** font); - - HRESULT(STDMETHODCALLTYPE* GetMatchingFonts)( - IDWriteFontFamily1* This, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFontList** fonts); - - /*** IDWriteFontFamily1 methods ***/ - DWRITE_LOCALITY(STDMETHODCALLTYPE* GetFontLocality)( - IDWriteFontFamily1* This, - UINT32 index); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFamily1_GetFont)( - IDWriteFontFamily1* This, - UINT32 index, - IDWriteFont3** font); - - HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( - IDWriteFontFamily1* This, - UINT32 index, - IDWriteFontFaceReference** reference); - - END_INTERFACE -} IDWriteFontFamily1Vtbl; - -interface IDWriteFontFamily1 { - CONST_VTBL IDWriteFontFamily1Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontFamily1_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontFamily1_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontFamily1_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontList methods ***/ -#define IDWriteFontFamily1_GetFontCollection(This, collection) (This)->lpVtbl->GetFontCollection(This, collection) -#define IDWriteFontFamily1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) -/*** IDWriteFontFamily methods ***/ -#define IDWriteFontFamily1_GetFamilyNames(This, names) (This)->lpVtbl->GetFamilyNames(This, names) -#define IDWriteFontFamily1_GetFirstMatchingFont(This, weight, stretch, style, font) (This)->lpVtbl->GetFirstMatchingFont(This, weight, stretch, style, font) -#define IDWriteFontFamily1_GetMatchingFonts(This, weight, stretch, style, fonts) (This)->lpVtbl->GetMatchingFonts(This, weight, stretch, style, fonts) -/*** IDWriteFontFamily1 methods ***/ -#define IDWriteFontFamily1_GetFontLocality(This, index) (This)->lpVtbl->GetFontLocality(This, index) -#define IDWriteFontFamily1_GetFont(This, index, font) (This)->lpVtbl->IDWriteFontFamily1_GetFont(This, index, font) -#define IDWriteFontFamily1_GetFontFaceReference(This, index, reference) (This)->lpVtbl->GetFontFaceReference(This, index, reference) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFamily1_QueryInterface(IDWriteFontFamily1* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontFamily1_AddRef(IDWriteFontFamily1* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontFamily1_Release(IDWriteFontFamily1* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontList methods ***/ -static inline HRESULT IDWriteFontFamily1_GetFontCollection(IDWriteFontFamily1* This, IDWriteFontCollection** collection) { - return This->lpVtbl->GetFontCollection(This, collection); -} -static inline UINT32 IDWriteFontFamily1_GetFontCount(IDWriteFontFamily1* This) { - return This->lpVtbl->GetFontCount(This); -} -/*** IDWriteFontFamily methods ***/ -static inline HRESULT IDWriteFontFamily1_GetFamilyNames(IDWriteFontFamily1* This, IDWriteLocalizedStrings** names) { - return This->lpVtbl->GetFamilyNames(This, names); -} -static inline HRESULT IDWriteFontFamily1_GetFirstMatchingFont(IDWriteFontFamily1* This, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFont** font) { - return This->lpVtbl->GetFirstMatchingFont(This, weight, stretch, style, font); -} -static inline HRESULT IDWriteFontFamily1_GetMatchingFonts(IDWriteFontFamily1* This, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFontList** fonts) { - return This->lpVtbl->GetMatchingFonts(This, weight, stretch, style, fonts); -} -/*** IDWriteFontFamily1 methods ***/ -static inline DWRITE_LOCALITY IDWriteFontFamily1_GetFontLocality(IDWriteFontFamily1* This, UINT32 index) { - return This->lpVtbl->GetFontLocality(This, index); -} -static inline HRESULT IDWriteFontFamily1_GetFont(IDWriteFontFamily1* This, UINT32 index, IDWriteFont3** font) { - return This->lpVtbl->IDWriteFontFamily1_GetFont(This, index, font); -} -static inline HRESULT IDWriteFontFamily1_GetFontFaceReference(IDWriteFontFamily1* This, UINT32 index, IDWriteFontFaceReference** reference) { - return This->lpVtbl->GetFontFaceReference(This, index, reference); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontFamily1_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontFamily2 interface - */ -#ifndef __IDWriteFontFamily2_INTERFACE_DEFINED__ -#define __IDWriteFontFamily2_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontFamily2, 0x3ed49e77, 0xa398, 0x4261, 0xb9, 0xcf, 0xc1, 0x26, 0xc2, 0x13, 0x1e, 0xf3); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("3ed49e77-a398-4261-b9cf-c126c2131ef3") -IDWriteFontFamily2 : public IDWriteFontFamily1 { - virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values, - IDWriteFontList2** fontlist) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontSet( - IDWriteFontSet1 * *fontset) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFamily2, 0x3ed49e77, 0xa398, 0x4261, 0xb9, 0xcf, 0xc1, 0x26, 0xc2, 0x13, 0x1e, 0xf3) -#endif -#else -typedef struct IDWriteFontFamily2Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontFamily2* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontFamily2* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontFamily2* This); - - /*** IDWriteFontList methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFontCollection)( - IDWriteFontFamily2* This, - IDWriteFontCollection** collection); - - UINT32(STDMETHODCALLTYPE* GetFontCount)( - IDWriteFontFamily2* This); - - HRESULT(STDMETHODCALLTYPE* GetFont)( - IDWriteFontFamily2* This, - UINT32 index, - IDWriteFont** font); - - /*** IDWriteFontFamily methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFamilyNames)( - IDWriteFontFamily2* This, - IDWriteLocalizedStrings** names); - - HRESULT(STDMETHODCALLTYPE* GetFirstMatchingFont)( - IDWriteFontFamily2* This, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFont** font); - - HRESULT(STDMETHODCALLTYPE* GetMatchingFonts)( - IDWriteFontFamily2* This, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFontList** fonts); - - /*** IDWriteFontFamily1 methods ***/ - DWRITE_LOCALITY(STDMETHODCALLTYPE* GetFontLocality)( - IDWriteFontFamily2* This, - UINT32 index); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFamily1_GetFont)( - IDWriteFontFamily2* This, - UINT32 index, - IDWriteFont3** font); - - HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( - IDWriteFontFamily2* This, - UINT32 index, - IDWriteFontFaceReference** reference); - - /*** IDWriteFontFamily2 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFontFamily2_GetMatchingFonts)( - IDWriteFontFamily2* This, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values, - IDWriteFontList2** fontlist); - - HRESULT(STDMETHODCALLTYPE* GetFontSet)( - IDWriteFontFamily2* This, - IDWriteFontSet1** fontset); - - END_INTERFACE -} IDWriteFontFamily2Vtbl; - -interface IDWriteFontFamily2 { - CONST_VTBL IDWriteFontFamily2Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontFamily2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontFamily2_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontFamily2_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontList methods ***/ -#define IDWriteFontFamily2_GetFontCollection(This, collection) (This)->lpVtbl->GetFontCollection(This, collection) -#define IDWriteFontFamily2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) -/*** IDWriteFontFamily methods ***/ -#define IDWriteFontFamily2_GetFamilyNames(This, names) (This)->lpVtbl->GetFamilyNames(This, names) -#define IDWriteFontFamily2_GetFirstMatchingFont(This, weight, stretch, style, font) (This)->lpVtbl->GetFirstMatchingFont(This, weight, stretch, style, font) -/*** IDWriteFontFamily1 methods ***/ -#define IDWriteFontFamily2_GetFontLocality(This, index) (This)->lpVtbl->GetFontLocality(This, index) -#define IDWriteFontFamily2_GetFont(This, index, font) (This)->lpVtbl->IDWriteFontFamily1_GetFont(This, index, font) -#define IDWriteFontFamily2_GetFontFaceReference(This, index, reference) (This)->lpVtbl->GetFontFaceReference(This, index, reference) -/*** IDWriteFontFamily2 methods ***/ -#define IDWriteFontFamily2_GetMatchingFonts(This, axis_values, num_values, fontlist) (This)->lpVtbl->IDWriteFontFamily2_GetMatchingFonts(This, axis_values, num_values, fontlist) -#define IDWriteFontFamily2_GetFontSet(This, fontset) (This)->lpVtbl->GetFontSet(This, fontset) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFamily2_QueryInterface(IDWriteFontFamily2* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontFamily2_AddRef(IDWriteFontFamily2* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontFamily2_Release(IDWriteFontFamily2* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontList methods ***/ -static inline HRESULT IDWriteFontFamily2_GetFontCollection(IDWriteFontFamily2* This, IDWriteFontCollection** collection) { - return This->lpVtbl->GetFontCollection(This, collection); -} -static inline UINT32 IDWriteFontFamily2_GetFontCount(IDWriteFontFamily2* This) { - return This->lpVtbl->GetFontCount(This); -} -/*** IDWriteFontFamily methods ***/ -static inline HRESULT IDWriteFontFamily2_GetFamilyNames(IDWriteFontFamily2* This, IDWriteLocalizedStrings** names) { - return This->lpVtbl->GetFamilyNames(This, names); -} -static inline HRESULT IDWriteFontFamily2_GetFirstMatchingFont(IDWriteFontFamily2* This, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFont** font) { - return This->lpVtbl->GetFirstMatchingFont(This, weight, stretch, style, font); -} -/*** IDWriteFontFamily1 methods ***/ -static inline DWRITE_LOCALITY IDWriteFontFamily2_GetFontLocality(IDWriteFontFamily2* This, UINT32 index) { - return This->lpVtbl->GetFontLocality(This, index); -} -static inline HRESULT IDWriteFontFamily2_GetFont(IDWriteFontFamily2* This, UINT32 index, IDWriteFont3** font) { - return This->lpVtbl->IDWriteFontFamily1_GetFont(This, index, font); -} -static inline HRESULT IDWriteFontFamily2_GetFontFaceReference(IDWriteFontFamily2* This, UINT32 index, IDWriteFontFaceReference** reference) { - return This->lpVtbl->GetFontFaceReference(This, index, reference); -} -/*** IDWriteFontFamily2 methods ***/ -static inline HRESULT IDWriteFontFamily2_GetMatchingFonts(IDWriteFontFamily2* This, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values, IDWriteFontList2** fontlist) { - return This->lpVtbl->IDWriteFontFamily2_GetMatchingFonts(This, axis_values, num_values, fontlist); -} -static inline HRESULT IDWriteFontFamily2_GetFontSet(IDWriteFontFamily2* This, IDWriteFontSet1** fontset) { - return This->lpVtbl->GetFontSet(This, fontset); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontFamily2_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontCollection1 interface - */ -#ifndef __IDWriteFontCollection1_INTERFACE_DEFINED__ -#define __IDWriteFontCollection1_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontCollection1, 0x53585141, 0xd9f8, 0x4095, 0x83, 0x21, 0xd7, 0x3c, 0xf6, 0xbd, 0x11, 0x6c); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("53585141-d9f8-4095-8321-d73cf6bd116c") -IDWriteFontCollection1 : public IDWriteFontCollection { - virtual HRESULT STDMETHODCALLTYPE GetFontSet( - IDWriteFontSet * *fontset) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontFamily( - UINT32 index, - IDWriteFontFamily1 * *family) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontCollection1, 0x53585141, 0xd9f8, 0x4095, 0x83, 0x21, 0xd7, 0x3c, 0xf6, 0xbd, 0x11, 0x6c) -#endif -#else -typedef struct IDWriteFontCollection1Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontCollection1* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontCollection1* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontCollection1* This); - - /*** IDWriteFontCollection methods ***/ - UINT32(STDMETHODCALLTYPE* GetFontFamilyCount)( - IDWriteFontCollection1* This); - - HRESULT(STDMETHODCALLTYPE* GetFontFamily)( - IDWriteFontCollection1* This, - UINT32 index, - IDWriteFontFamily** family); - - HRESULT(STDMETHODCALLTYPE* FindFamilyName)( - IDWriteFontCollection1* This, - const WCHAR* name, - UINT32* index, - WINBOOL* exists); - - HRESULT(STDMETHODCALLTYPE* GetFontFromFontFace)( - IDWriteFontCollection1* This, - IDWriteFontFace* face, - IDWriteFont** font); - - /*** IDWriteFontCollection1 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFontSet)( - IDWriteFontCollection1* This, - IDWriteFontSet** fontset); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontCollection1_GetFontFamily)( - IDWriteFontCollection1* This, - UINT32 index, - IDWriteFontFamily1** family); - - END_INTERFACE -} IDWriteFontCollection1Vtbl; - -interface IDWriteFontCollection1 { - CONST_VTBL IDWriteFontCollection1Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontCollection1_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontCollection1_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontCollection1_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontCollection methods ***/ -#define IDWriteFontCollection1_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This) -#define IDWriteFontCollection1_FindFamilyName(This, name, index, exists) (This)->lpVtbl->FindFamilyName(This, name, index, exists) -#define IDWriteFontCollection1_GetFontFromFontFace(This, face, font) (This)->lpVtbl->GetFontFromFontFace(This, face, font) -/*** IDWriteFontCollection1 methods ***/ -#define IDWriteFontCollection1_GetFontSet(This, fontset) (This)->lpVtbl->GetFontSet(This, fontset) -#define IDWriteFontCollection1_GetFontFamily(This, index, family) (This)->lpVtbl->IDWriteFontCollection1_GetFontFamily(This, index, family) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontCollection1_QueryInterface(IDWriteFontCollection1* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontCollection1_AddRef(IDWriteFontCollection1* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontCollection1_Release(IDWriteFontCollection1* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontCollection methods ***/ -static inline UINT32 IDWriteFontCollection1_GetFontFamilyCount(IDWriteFontCollection1* This) { - return This->lpVtbl->GetFontFamilyCount(This); -} -static inline HRESULT IDWriteFontCollection1_FindFamilyName(IDWriteFontCollection1* This, const WCHAR* name, UINT32* index, WINBOOL* exists) { - return This->lpVtbl->FindFamilyName(This, name, index, exists); -} -static inline HRESULT IDWriteFontCollection1_GetFontFromFontFace(IDWriteFontCollection1* This, IDWriteFontFace* face, IDWriteFont** font) { - return This->lpVtbl->GetFontFromFontFace(This, face, font); -} -/*** IDWriteFontCollection1 methods ***/ -static inline HRESULT IDWriteFontCollection1_GetFontSet(IDWriteFontCollection1* This, IDWriteFontSet** fontset) { - return This->lpVtbl->GetFontSet(This, fontset); -} -static inline HRESULT IDWriteFontCollection1_GetFontFamily(IDWriteFontCollection1* This, UINT32 index, IDWriteFontFamily1** family) { - return This->lpVtbl->IDWriteFontCollection1_GetFontFamily(This, index, family); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontCollection1_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontCollection2 interface - */ -#ifndef __IDWriteFontCollection2_INTERFACE_DEFINED__ -#define __IDWriteFontCollection2_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontCollection2, 0x514039c6, 0x4617, 0x4064, 0xbf, 0x8b, 0x92, 0xea, 0x83, 0xe5, 0x06, 0xe0); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("514039c6-4617-4064-bf8b-92ea83e506e0") -IDWriteFontCollection2 : public IDWriteFontCollection1 { - virtual HRESULT STDMETHODCALLTYPE GetFontFamily( - UINT32 index, - IDWriteFontFamily2 * *family) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( - const WCHAR* familyname, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values, - IDWriteFontList2** fontlist) = 0; - - virtual DWRITE_FONT_FAMILY_MODEL STDMETHODCALLTYPE GetFontFamilyModel() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontSet( - IDWriteFontSet1 * *fontset) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontCollection2, 0x514039c6, 0x4617, 0x4064, 0xbf, 0x8b, 0x92, 0xea, 0x83, 0xe5, 0x06, 0xe0) -#endif -#else -typedef struct IDWriteFontCollection2Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontCollection2* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontCollection2* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontCollection2* This); - - /*** IDWriteFontCollection methods ***/ - UINT32(STDMETHODCALLTYPE* GetFontFamilyCount)( - IDWriteFontCollection2* This); - - HRESULT(STDMETHODCALLTYPE* GetFontFamily)( - IDWriteFontCollection2* This, - UINT32 index, - IDWriteFontFamily** family); - - HRESULT(STDMETHODCALLTYPE* FindFamilyName)( - IDWriteFontCollection2* This, - const WCHAR* name, - UINT32* index, - WINBOOL* exists); - - HRESULT(STDMETHODCALLTYPE* GetFontFromFontFace)( - IDWriteFontCollection2* This, - IDWriteFontFace* face, - IDWriteFont** font); - - /*** IDWriteFontCollection1 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFontSet)( - IDWriteFontCollection2* This, - IDWriteFontSet** fontset); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontCollection1_GetFontFamily)( - IDWriteFontCollection2* This, - UINT32 index, - IDWriteFontFamily1** family); - - /*** IDWriteFontCollection2 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFontCollection2_GetFontFamily)( - IDWriteFontCollection2* This, - UINT32 index, - IDWriteFontFamily2** family); - - HRESULT(STDMETHODCALLTYPE* GetMatchingFonts)( - IDWriteFontCollection2* This, - const WCHAR* familyname, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values, - IDWriteFontList2** fontlist); - - DWRITE_FONT_FAMILY_MODEL(STDMETHODCALLTYPE* GetFontFamilyModel)( - IDWriteFontCollection2* This); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontCollection2_GetFontSet)( - IDWriteFontCollection2* This, - IDWriteFontSet1** fontset); - - END_INTERFACE -} IDWriteFontCollection2Vtbl; - -interface IDWriteFontCollection2 { - CONST_VTBL IDWriteFontCollection2Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontCollection2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontCollection2_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontCollection2_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontCollection methods ***/ -#define IDWriteFontCollection2_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This) -#define IDWriteFontCollection2_FindFamilyName(This, name, index, exists) (This)->lpVtbl->FindFamilyName(This, name, index, exists) -#define IDWriteFontCollection2_GetFontFromFontFace(This, face, font) (This)->lpVtbl->GetFontFromFontFace(This, face, font) -/*** IDWriteFontCollection1 methods ***/ -/*** IDWriteFontCollection2 methods ***/ -#define IDWriteFontCollection2_GetFontFamily(This, index, family) (This)->lpVtbl->IDWriteFontCollection2_GetFontFamily(This, index, family) -#define IDWriteFontCollection2_GetMatchingFonts(This, familyname, axis_values, num_values, fontlist) (This)->lpVtbl->GetMatchingFonts(This, familyname, axis_values, num_values, fontlist) -#define IDWriteFontCollection2_GetFontFamilyModel(This) (This)->lpVtbl->GetFontFamilyModel(This) -#define IDWriteFontCollection2_GetFontSet(This, fontset) (This)->lpVtbl->IDWriteFontCollection2_GetFontSet(This, fontset) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontCollection2_QueryInterface(IDWriteFontCollection2* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontCollection2_AddRef(IDWriteFontCollection2* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontCollection2_Release(IDWriteFontCollection2* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontCollection methods ***/ -static inline UINT32 IDWriteFontCollection2_GetFontFamilyCount(IDWriteFontCollection2* This) { - return This->lpVtbl->GetFontFamilyCount(This); -} -static inline HRESULT IDWriteFontCollection2_FindFamilyName(IDWriteFontCollection2* This, const WCHAR* name, UINT32* index, WINBOOL* exists) { - return This->lpVtbl->FindFamilyName(This, name, index, exists); -} -static inline HRESULT IDWriteFontCollection2_GetFontFromFontFace(IDWriteFontCollection2* This, IDWriteFontFace* face, IDWriteFont** font) { - return This->lpVtbl->GetFontFromFontFace(This, face, font); -} -/*** IDWriteFontCollection1 methods ***/ -/*** IDWriteFontCollection2 methods ***/ -static inline HRESULT IDWriteFontCollection2_GetFontFamily(IDWriteFontCollection2* This, UINT32 index, IDWriteFontFamily2** family) { - return This->lpVtbl->IDWriteFontCollection2_GetFontFamily(This, index, family); -} -static inline HRESULT IDWriteFontCollection2_GetMatchingFonts(IDWriteFontCollection2* This, const WCHAR* familyname, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values, IDWriteFontList2** fontlist) { - return This->lpVtbl->GetMatchingFonts(This, familyname, axis_values, num_values, fontlist); -} -static inline DWRITE_FONT_FAMILY_MODEL IDWriteFontCollection2_GetFontFamilyModel(IDWriteFontCollection2* This) { - return This->lpVtbl->GetFontFamilyModel(This); -} -static inline HRESULT IDWriteFontCollection2_GetFontSet(IDWriteFontCollection2* This, IDWriteFontSet1** fontset) { - return This->lpVtbl->IDWriteFontCollection2_GetFontSet(This, fontset); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontCollection2_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontCollection3 interface - */ -#ifndef __IDWriteFontCollection3_INTERFACE_DEFINED__ -#define __IDWriteFontCollection3_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontCollection3, 0xa4d055a6, 0xf9e3, 0x4e25, 0x93, 0xb7, 0x9e, 0x30, 0x9f, 0x3a, 0xf8, 0xe9); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("a4d055a6-f9e3-4e25-93b7-9e309f3af8e9") -IDWriteFontCollection3 : public IDWriteFontCollection2 { - virtual HANDLE STDMETHODCALLTYPE GetExpirationEvent() = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontCollection3, 0xa4d055a6, 0xf9e3, 0x4e25, 0x93, 0xb7, 0x9e, 0x30, 0x9f, 0x3a, 0xf8, 0xe9) -#endif -#else -typedef struct IDWriteFontCollection3Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontCollection3* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontCollection3* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontCollection3* This); - - /*** IDWriteFontCollection methods ***/ - UINT32(STDMETHODCALLTYPE* GetFontFamilyCount)( - IDWriteFontCollection3* This); - - HRESULT(STDMETHODCALLTYPE* GetFontFamily)( - IDWriteFontCollection3* This, - UINT32 index, - IDWriteFontFamily** family); - - HRESULT(STDMETHODCALLTYPE* FindFamilyName)( - IDWriteFontCollection3* This, - const WCHAR* name, - UINT32* index, - WINBOOL* exists); - - HRESULT(STDMETHODCALLTYPE* GetFontFromFontFace)( - IDWriteFontCollection3* This, - IDWriteFontFace* face, - IDWriteFont** font); - - /*** IDWriteFontCollection1 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFontSet)( - IDWriteFontCollection3* This, - IDWriteFontSet** fontset); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontCollection1_GetFontFamily)( - IDWriteFontCollection3* This, - UINT32 index, - IDWriteFontFamily1** family); - - /*** IDWriteFontCollection2 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFontCollection2_GetFontFamily)( - IDWriteFontCollection3* This, - UINT32 index, - IDWriteFontFamily2** family); - - HRESULT(STDMETHODCALLTYPE* GetMatchingFonts)( - IDWriteFontCollection3* This, - const WCHAR* familyname, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values, - IDWriteFontList2** fontlist); - - DWRITE_FONT_FAMILY_MODEL(STDMETHODCALLTYPE* GetFontFamilyModel)( - IDWriteFontCollection3* This); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontCollection2_GetFontSet)( - IDWriteFontCollection3* This, - IDWriteFontSet1** fontset); - - /*** IDWriteFontCollection3 methods ***/ - HANDLE(STDMETHODCALLTYPE* GetExpirationEvent)( - IDWriteFontCollection3* This); - - END_INTERFACE -} IDWriteFontCollection3Vtbl; - -interface IDWriteFontCollection3 { - CONST_VTBL IDWriteFontCollection3Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontCollection3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontCollection3_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontCollection3_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontCollection methods ***/ -#define IDWriteFontCollection3_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This) -#define IDWriteFontCollection3_FindFamilyName(This, name, index, exists) (This)->lpVtbl->FindFamilyName(This, name, index, exists) -#define IDWriteFontCollection3_GetFontFromFontFace(This, face, font) (This)->lpVtbl->GetFontFromFontFace(This, face, font) -/*** IDWriteFontCollection1 methods ***/ -/*** IDWriteFontCollection2 methods ***/ -#define IDWriteFontCollection3_GetFontFamily(This, index, family) (This)->lpVtbl->IDWriteFontCollection2_GetFontFamily(This, index, family) -#define IDWriteFontCollection3_GetMatchingFonts(This, familyname, axis_values, num_values, fontlist) (This)->lpVtbl->GetMatchingFonts(This, familyname, axis_values, num_values, fontlist) -#define IDWriteFontCollection3_GetFontFamilyModel(This) (This)->lpVtbl->GetFontFamilyModel(This) -#define IDWriteFontCollection3_GetFontSet(This, fontset) (This)->lpVtbl->IDWriteFontCollection2_GetFontSet(This, fontset) -/*** IDWriteFontCollection3 methods ***/ -#define IDWriteFontCollection3_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontCollection3_QueryInterface(IDWriteFontCollection3* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontCollection3_AddRef(IDWriteFontCollection3* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontCollection3_Release(IDWriteFontCollection3* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontCollection methods ***/ -static inline UINT32 IDWriteFontCollection3_GetFontFamilyCount(IDWriteFontCollection3* This) { - return This->lpVtbl->GetFontFamilyCount(This); -} -static inline HRESULT IDWriteFontCollection3_FindFamilyName(IDWriteFontCollection3* This, const WCHAR* name, UINT32* index, WINBOOL* exists) { - return This->lpVtbl->FindFamilyName(This, name, index, exists); -} -static inline HRESULT IDWriteFontCollection3_GetFontFromFontFace(IDWriteFontCollection3* This, IDWriteFontFace* face, IDWriteFont** font) { - return This->lpVtbl->GetFontFromFontFace(This, face, font); -} -/*** IDWriteFontCollection1 methods ***/ -/*** IDWriteFontCollection2 methods ***/ -static inline HRESULT IDWriteFontCollection3_GetFontFamily(IDWriteFontCollection3* This, UINT32 index, IDWriteFontFamily2** family) { - return This->lpVtbl->IDWriteFontCollection2_GetFontFamily(This, index, family); -} -static inline HRESULT IDWriteFontCollection3_GetMatchingFonts(IDWriteFontCollection3* This, const WCHAR* familyname, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values, IDWriteFontList2** fontlist) { - return This->lpVtbl->GetMatchingFonts(This, familyname, axis_values, num_values, fontlist); -} -static inline DWRITE_FONT_FAMILY_MODEL IDWriteFontCollection3_GetFontFamilyModel(IDWriteFontCollection3* This) { - return This->lpVtbl->GetFontFamilyModel(This); -} -static inline HRESULT IDWriteFontCollection3_GetFontSet(IDWriteFontCollection3* This, IDWriteFontSet1** fontset) { - return This->lpVtbl->IDWriteFontCollection2_GetFontSet(This, fontset); -} -/*** IDWriteFontCollection3 methods ***/ -static inline HANDLE IDWriteFontCollection3_GetExpirationEvent(IDWriteFontCollection3* This) { - return This->lpVtbl->GetExpirationEvent(This); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontCollection3_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontFaceReference interface - */ -#ifndef __IDWriteFontFaceReference_INTERFACE_DEFINED__ -#define __IDWriteFontFaceReference_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontFaceReference, 0x5e7fa7ca, 0xdde3, 0x424c, 0x89, 0xf0, 0x9f, 0xcd, 0x6f, 0xed, 0x58, 0xcd); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("5e7fa7ca-dde3-424c-89f0-9fcd6fed58cd") -IDWriteFontFaceReference : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE CreateFontFace( - IDWriteFontFace3 * *fontface) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontFaceWithSimulations( - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFace3 * *fontface) = 0; - - virtual WINBOOL STDMETHODCALLTYPE Equals( - IDWriteFontFaceReference * reference) = 0; - - virtual UINT32 STDMETHODCALLTYPE GetFontFaceIndex() = 0; - - virtual DWRITE_FONT_SIMULATIONS STDMETHODCALLTYPE GetSimulations() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontFile( - IDWriteFontFile * *fontfile) = 0; - - virtual UINT64 STDMETHODCALLTYPE GetLocalFileSize() = 0; - - virtual UINT64 STDMETHODCALLTYPE GetFileSize() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFileTime( - FILETIME * writetime) = 0; - - virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality() = 0; - - virtual HRESULT STDMETHODCALLTYPE EnqueueFontDownloadRequest() = 0; - - virtual HRESULT STDMETHODCALLTYPE EnqueueCharacterDownloadRequest( - const WCHAR* chars, - UINT32 count) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnqueueGlyphDownloadRequest( - const UINT16* glyphs, - UINT32 count) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnqueueFileFragmentDownloadRequest( - UINT64 offset, - UINT64 size) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFaceReference, 0x5e7fa7ca, 0xdde3, 0x424c, 0x89, 0xf0, 0x9f, 0xcd, 0x6f, 0xed, 0x58, 0xcd) -#endif -#else -typedef struct IDWriteFontFaceReferenceVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontFaceReference* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontFaceReference* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontFaceReference* This); - - /*** IDWriteFontFaceReference methods ***/ - HRESULT(STDMETHODCALLTYPE* CreateFontFace)( - IDWriteFontFaceReference* This, - IDWriteFontFace3** fontface); - - HRESULT(STDMETHODCALLTYPE* CreateFontFaceWithSimulations)( - IDWriteFontFaceReference* This, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFace3** fontface); - - WINBOOL(STDMETHODCALLTYPE* Equals)( - IDWriteFontFaceReference* This, - IDWriteFontFaceReference* reference); - - UINT32(STDMETHODCALLTYPE* GetFontFaceIndex)( - IDWriteFontFaceReference* This); - - DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( - IDWriteFontFaceReference* This); - - HRESULT(STDMETHODCALLTYPE* GetFontFile)( - IDWriteFontFaceReference* This, - IDWriteFontFile** fontfile); - - UINT64(STDMETHODCALLTYPE* GetLocalFileSize)( - IDWriteFontFaceReference* This); - - UINT64(STDMETHODCALLTYPE* GetFileSize)( - IDWriteFontFaceReference* This); - - HRESULT(STDMETHODCALLTYPE* GetFileTime)( - IDWriteFontFaceReference* This, - FILETIME* writetime); - - DWRITE_LOCALITY(STDMETHODCALLTYPE* GetLocality)( - IDWriteFontFaceReference* This); - - HRESULT(STDMETHODCALLTYPE* EnqueueFontDownloadRequest)( - IDWriteFontFaceReference* This); - - HRESULT(STDMETHODCALLTYPE* EnqueueCharacterDownloadRequest)( - IDWriteFontFaceReference* This, - const WCHAR* chars, - UINT32 count); - - HRESULT(STDMETHODCALLTYPE* EnqueueGlyphDownloadRequest)( - IDWriteFontFaceReference* This, - const UINT16* glyphs, - UINT32 count); - - HRESULT(STDMETHODCALLTYPE* EnqueueFileFragmentDownloadRequest)( - IDWriteFontFaceReference* This, - UINT64 offset, - UINT64 size); - - END_INTERFACE -} IDWriteFontFaceReferenceVtbl; - -interface IDWriteFontFaceReference { - CONST_VTBL IDWriteFontFaceReferenceVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontFaceReference_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontFaceReference_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontFaceReference_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontFaceReference methods ***/ -#define IDWriteFontFaceReference_CreateFontFace(This, fontface) (This)->lpVtbl->CreateFontFace(This, fontface) -#define IDWriteFontFaceReference_CreateFontFaceWithSimulations(This, simulations, fontface) (This)->lpVtbl->CreateFontFaceWithSimulations(This, simulations, fontface) -#define IDWriteFontFaceReference_Equals(This, reference) (This)->lpVtbl->Equals(This, reference) -#define IDWriteFontFaceReference_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This) -#define IDWriteFontFaceReference_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) -#define IDWriteFontFaceReference_GetFontFile(This, fontfile) (This)->lpVtbl->GetFontFile(This, fontfile) -#define IDWriteFontFaceReference_GetLocalFileSize(This) (This)->lpVtbl->GetLocalFileSize(This) -#define IDWriteFontFaceReference_GetFileSize(This) (This)->lpVtbl->GetFileSize(This) -#define IDWriteFontFaceReference_GetFileTime(This, writetime) (This)->lpVtbl->GetFileTime(This, writetime) -#define IDWriteFontFaceReference_GetLocality(This) (This)->lpVtbl->GetLocality(This) -#define IDWriteFontFaceReference_EnqueueFontDownloadRequest(This) (This)->lpVtbl->EnqueueFontDownloadRequest(This) -#define IDWriteFontFaceReference_EnqueueCharacterDownloadRequest(This, chars, count) (This)->lpVtbl->EnqueueCharacterDownloadRequest(This, chars, count) -#define IDWriteFontFaceReference_EnqueueGlyphDownloadRequest(This, glyphs, count) (This)->lpVtbl->EnqueueGlyphDownloadRequest(This, glyphs, count) -#define IDWriteFontFaceReference_EnqueueFileFragmentDownloadRequest(This, offset, size) (This)->lpVtbl->EnqueueFileFragmentDownloadRequest(This, offset, size) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFaceReference_QueryInterface(IDWriteFontFaceReference* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontFaceReference_AddRef(IDWriteFontFaceReference* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontFaceReference_Release(IDWriteFontFaceReference* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontFaceReference methods ***/ -static inline HRESULT IDWriteFontFaceReference_CreateFontFace(IDWriteFontFaceReference* This, IDWriteFontFace3** fontface) { - return This->lpVtbl->CreateFontFace(This, fontface); -} -static inline HRESULT IDWriteFontFaceReference_CreateFontFaceWithSimulations(IDWriteFontFaceReference* This, DWRITE_FONT_SIMULATIONS simulations, IDWriteFontFace3** fontface) { - return This->lpVtbl->CreateFontFaceWithSimulations(This, simulations, fontface); -} -static inline WINBOOL IDWriteFontFaceReference_Equals(IDWriteFontFaceReference* This, IDWriteFontFaceReference* reference) { - return This->lpVtbl->Equals(This, reference); -} -static inline UINT32 IDWriteFontFaceReference_GetFontFaceIndex(IDWriteFontFaceReference* This) { - return This->lpVtbl->GetFontFaceIndex(This); -} -static inline DWRITE_FONT_SIMULATIONS IDWriteFontFaceReference_GetSimulations(IDWriteFontFaceReference* This) { - return This->lpVtbl->GetSimulations(This); -} -static inline HRESULT IDWriteFontFaceReference_GetFontFile(IDWriteFontFaceReference* This, IDWriteFontFile** fontfile) { - return This->lpVtbl->GetFontFile(This, fontfile); -} -static inline UINT64 IDWriteFontFaceReference_GetLocalFileSize(IDWriteFontFaceReference* This) { - return This->lpVtbl->GetLocalFileSize(This); -} -static inline UINT64 IDWriteFontFaceReference_GetFileSize(IDWriteFontFaceReference* This) { - return This->lpVtbl->GetFileSize(This); -} -static inline HRESULT IDWriteFontFaceReference_GetFileTime(IDWriteFontFaceReference* This, FILETIME* writetime) { - return This->lpVtbl->GetFileTime(This, writetime); -} -static inline DWRITE_LOCALITY IDWriteFontFaceReference_GetLocality(IDWriteFontFaceReference* This) { - return This->lpVtbl->GetLocality(This); -} -static inline HRESULT IDWriteFontFaceReference_EnqueueFontDownloadRequest(IDWriteFontFaceReference* This) { - return This->lpVtbl->EnqueueFontDownloadRequest(This); -} -static inline HRESULT IDWriteFontFaceReference_EnqueueCharacterDownloadRequest(IDWriteFontFaceReference* This, const WCHAR* chars, UINT32 count) { - return This->lpVtbl->EnqueueCharacterDownloadRequest(This, chars, count); -} -static inline HRESULT IDWriteFontFaceReference_EnqueueGlyphDownloadRequest(IDWriteFontFaceReference* This, const UINT16* glyphs, UINT32 count) { - return This->lpVtbl->EnqueueGlyphDownloadRequest(This, glyphs, count); -} -static inline HRESULT IDWriteFontFaceReference_EnqueueFileFragmentDownloadRequest(IDWriteFontFaceReference* This, UINT64 offset, UINT64 size) { - return This->lpVtbl->EnqueueFileFragmentDownloadRequest(This, offset, size); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontFaceReference_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontFaceReference1 interface - */ -#ifndef __IDWriteFontFaceReference1_INTERFACE_DEFINED__ -#define __IDWriteFontFaceReference1_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontFaceReference1, 0xc081fe77, 0x2fd1, 0x41ac, 0xa5, 0xa3, 0x34, 0x98, 0x3c, 0x4b, 0xa6, 0x1a); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("c081fe77-2fd1-41ac-a5a3-34983c4ba61a") -IDWriteFontFaceReference1 : public IDWriteFontFaceReference { - virtual HRESULT STDMETHODCALLTYPE CreateFontFace( - IDWriteFontFace5 * *fontface) = 0; - - virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues( - DWRITE_FONT_AXIS_VALUE * values, - UINT32 num_values) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFaceReference1, 0xc081fe77, 0x2fd1, 0x41ac, 0xa5, 0xa3, 0x34, 0x98, 0x3c, 0x4b, 0xa6, 0x1a) -#endif -#else -typedef struct IDWriteFontFaceReference1Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontFaceReference1* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontFaceReference1* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontFaceReference1* This); - - /*** IDWriteFontFaceReference methods ***/ - HRESULT(STDMETHODCALLTYPE* CreateFontFace)( - IDWriteFontFaceReference1* This, - IDWriteFontFace3** fontface); - - HRESULT(STDMETHODCALLTYPE* CreateFontFaceWithSimulations)( - IDWriteFontFaceReference1* This, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFace3** fontface); - - WINBOOL(STDMETHODCALLTYPE* Equals)( - IDWriteFontFaceReference1* This, - IDWriteFontFaceReference* reference); - - UINT32(STDMETHODCALLTYPE* GetFontFaceIndex)( - IDWriteFontFaceReference1* This); - - DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( - IDWriteFontFaceReference1* This); - - HRESULT(STDMETHODCALLTYPE* GetFontFile)( - IDWriteFontFaceReference1* This, - IDWriteFontFile** fontfile); - - UINT64(STDMETHODCALLTYPE* GetLocalFileSize)( - IDWriteFontFaceReference1* This); - - UINT64(STDMETHODCALLTYPE* GetFileSize)( - IDWriteFontFaceReference1* This); - - HRESULT(STDMETHODCALLTYPE* GetFileTime)( - IDWriteFontFaceReference1* This, - FILETIME* writetime); - - DWRITE_LOCALITY(STDMETHODCALLTYPE* GetLocality)( - IDWriteFontFaceReference1* This); - - HRESULT(STDMETHODCALLTYPE* EnqueueFontDownloadRequest)( - IDWriteFontFaceReference1* This); - - HRESULT(STDMETHODCALLTYPE* EnqueueCharacterDownloadRequest)( - IDWriteFontFaceReference1* This, - const WCHAR* chars, - UINT32 count); - - HRESULT(STDMETHODCALLTYPE* EnqueueGlyphDownloadRequest)( - IDWriteFontFaceReference1* This, - const UINT16* glyphs, - UINT32 count); - - HRESULT(STDMETHODCALLTYPE* EnqueueFileFragmentDownloadRequest)( - IDWriteFontFaceReference1* This, - UINT64 offset, - UINT64 size); - - /*** IDWriteFontFaceReference1 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFontFaceReference1_CreateFontFace)( - IDWriteFontFaceReference1* This, - IDWriteFontFace5** fontface); - - UINT32(STDMETHODCALLTYPE* GetFontAxisValueCount)( - IDWriteFontFaceReference1* This); - - HRESULT(STDMETHODCALLTYPE* GetFontAxisValues)( - IDWriteFontFaceReference1* This, - DWRITE_FONT_AXIS_VALUE* values, - UINT32 num_values); - - END_INTERFACE -} IDWriteFontFaceReference1Vtbl; - -interface IDWriteFontFaceReference1 { - CONST_VTBL IDWriteFontFaceReference1Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontFaceReference1_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontFaceReference1_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontFaceReference1_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontFaceReference methods ***/ -#define IDWriteFontFaceReference1_CreateFontFaceWithSimulations(This, simulations, fontface) (This)->lpVtbl->CreateFontFaceWithSimulations(This, simulations, fontface) -#define IDWriteFontFaceReference1_Equals(This, reference) (This)->lpVtbl->Equals(This, reference) -#define IDWriteFontFaceReference1_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This) -#define IDWriteFontFaceReference1_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) -#define IDWriteFontFaceReference1_GetFontFile(This, fontfile) (This)->lpVtbl->GetFontFile(This, fontfile) -#define IDWriteFontFaceReference1_GetLocalFileSize(This) (This)->lpVtbl->GetLocalFileSize(This) -#define IDWriteFontFaceReference1_GetFileSize(This) (This)->lpVtbl->GetFileSize(This) -#define IDWriteFontFaceReference1_GetFileTime(This, writetime) (This)->lpVtbl->GetFileTime(This, writetime) -#define IDWriteFontFaceReference1_GetLocality(This) (This)->lpVtbl->GetLocality(This) -#define IDWriteFontFaceReference1_EnqueueFontDownloadRequest(This) (This)->lpVtbl->EnqueueFontDownloadRequest(This) -#define IDWriteFontFaceReference1_EnqueueCharacterDownloadRequest(This, chars, count) (This)->lpVtbl->EnqueueCharacterDownloadRequest(This, chars, count) -#define IDWriteFontFaceReference1_EnqueueGlyphDownloadRequest(This, glyphs, count) (This)->lpVtbl->EnqueueGlyphDownloadRequest(This, glyphs, count) -#define IDWriteFontFaceReference1_EnqueueFileFragmentDownloadRequest(This, offset, size) (This)->lpVtbl->EnqueueFileFragmentDownloadRequest(This, offset, size) -/*** IDWriteFontFaceReference1 methods ***/ -#define IDWriteFontFaceReference1_CreateFontFace(This, fontface) (This)->lpVtbl->IDWriteFontFaceReference1_CreateFontFace(This, fontface) -#define IDWriteFontFaceReference1_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This) -#define IDWriteFontFaceReference1_GetFontAxisValues(This, values, num_values) (This)->lpVtbl->GetFontAxisValues(This, values, num_values) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFaceReference1_QueryInterface(IDWriteFontFaceReference1* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontFaceReference1_AddRef(IDWriteFontFaceReference1* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontFaceReference1_Release(IDWriteFontFaceReference1* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontFaceReference methods ***/ -static inline HRESULT IDWriteFontFaceReference1_CreateFontFaceWithSimulations(IDWriteFontFaceReference1* This, DWRITE_FONT_SIMULATIONS simulations, IDWriteFontFace3** fontface) { - return This->lpVtbl->CreateFontFaceWithSimulations(This, simulations, fontface); -} -static inline WINBOOL IDWriteFontFaceReference1_Equals(IDWriteFontFaceReference1* This, IDWriteFontFaceReference* reference) { - return This->lpVtbl->Equals(This, reference); -} -static inline UINT32 IDWriteFontFaceReference1_GetFontFaceIndex(IDWriteFontFaceReference1* This) { - return This->lpVtbl->GetFontFaceIndex(This); -} -static inline DWRITE_FONT_SIMULATIONS IDWriteFontFaceReference1_GetSimulations(IDWriteFontFaceReference1* This) { - return This->lpVtbl->GetSimulations(This); -} -static inline HRESULT IDWriteFontFaceReference1_GetFontFile(IDWriteFontFaceReference1* This, IDWriteFontFile** fontfile) { - return This->lpVtbl->GetFontFile(This, fontfile); -} -static inline UINT64 IDWriteFontFaceReference1_GetLocalFileSize(IDWriteFontFaceReference1* This) { - return This->lpVtbl->GetLocalFileSize(This); -} -static inline UINT64 IDWriteFontFaceReference1_GetFileSize(IDWriteFontFaceReference1* This) { - return This->lpVtbl->GetFileSize(This); -} -static inline HRESULT IDWriteFontFaceReference1_GetFileTime(IDWriteFontFaceReference1* This, FILETIME* writetime) { - return This->lpVtbl->GetFileTime(This, writetime); -} -static inline DWRITE_LOCALITY IDWriteFontFaceReference1_GetLocality(IDWriteFontFaceReference1* This) { - return This->lpVtbl->GetLocality(This); -} -static inline HRESULT IDWriteFontFaceReference1_EnqueueFontDownloadRequest(IDWriteFontFaceReference1* This) { - return This->lpVtbl->EnqueueFontDownloadRequest(This); -} -static inline HRESULT IDWriteFontFaceReference1_EnqueueCharacterDownloadRequest(IDWriteFontFaceReference1* This, const WCHAR* chars, UINT32 count) { - return This->lpVtbl->EnqueueCharacterDownloadRequest(This, chars, count); -} -static inline HRESULT IDWriteFontFaceReference1_EnqueueGlyphDownloadRequest(IDWriteFontFaceReference1* This, const UINT16* glyphs, UINT32 count) { - return This->lpVtbl->EnqueueGlyphDownloadRequest(This, glyphs, count); -} -static inline HRESULT IDWriteFontFaceReference1_EnqueueFileFragmentDownloadRequest(IDWriteFontFaceReference1* This, UINT64 offset, UINT64 size) { - return This->lpVtbl->EnqueueFileFragmentDownloadRequest(This, offset, size); -} -/*** IDWriteFontFaceReference1 methods ***/ -static inline HRESULT IDWriteFontFaceReference1_CreateFontFace(IDWriteFontFaceReference1* This, IDWriteFontFace5** fontface) { - return This->lpVtbl->IDWriteFontFaceReference1_CreateFontFace(This, fontface); -} -static inline UINT32 IDWriteFontFaceReference1_GetFontAxisValueCount(IDWriteFontFaceReference1* This) { - return This->lpVtbl->GetFontAxisValueCount(This); -} -static inline HRESULT IDWriteFontFaceReference1_GetFontAxisValues(IDWriteFontFaceReference1* This, DWRITE_FONT_AXIS_VALUE* values, UINT32 num_values) { - return This->lpVtbl->GetFontAxisValues(This, values, num_values); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontFaceReference1_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontList1 interface - */ -#ifndef __IDWriteFontList1_INTERFACE_DEFINED__ -#define __IDWriteFontList1_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontList1, 0xda20d8ef, 0x812a, 0x4c43, 0x98, 0x02, 0x62, 0xec, 0x4a, 0xbd, 0x7a, 0xde); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7ade") -IDWriteFontList1 : public IDWriteFontList { - virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality( - UINT32 index) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFont( - UINT32 index, - IDWriteFont3 * *font) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( - UINT32 index, - IDWriteFontFaceReference * *reference) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontList1, 0xda20d8ef, 0x812a, 0x4c43, 0x98, 0x02, 0x62, 0xec, 0x4a, 0xbd, 0x7a, 0xde) -#endif -#else -typedef struct IDWriteFontList1Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontList1* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontList1* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontList1* This); - - /*** IDWriteFontList methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFontCollection)( - IDWriteFontList1* This, - IDWriteFontCollection** collection); - - UINT32(STDMETHODCALLTYPE* GetFontCount)( - IDWriteFontList1* This); - - HRESULT(STDMETHODCALLTYPE* GetFont)( - IDWriteFontList1* This, - UINT32 index, - IDWriteFont** font); - - /*** IDWriteFontList1 methods ***/ - DWRITE_LOCALITY(STDMETHODCALLTYPE* GetFontLocality)( - IDWriteFontList1* This, - UINT32 index); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontList1_GetFont)( - IDWriteFontList1* This, - UINT32 index, - IDWriteFont3** font); - - HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( - IDWriteFontList1* This, - UINT32 index, - IDWriteFontFaceReference** reference); - - END_INTERFACE -} IDWriteFontList1Vtbl; - -interface IDWriteFontList1 { - CONST_VTBL IDWriteFontList1Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontList1_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontList1_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontList1_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontList methods ***/ -#define IDWriteFontList1_GetFontCollection(This, collection) (This)->lpVtbl->GetFontCollection(This, collection) -#define IDWriteFontList1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) -/*** IDWriteFontList1 methods ***/ -#define IDWriteFontList1_GetFontLocality(This, index) (This)->lpVtbl->GetFontLocality(This, index) -#define IDWriteFontList1_GetFont(This, index, font) (This)->lpVtbl->IDWriteFontList1_GetFont(This, index, font) -#define IDWriteFontList1_GetFontFaceReference(This, index, reference) (This)->lpVtbl->GetFontFaceReference(This, index, reference) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontList1_QueryInterface(IDWriteFontList1* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontList1_AddRef(IDWriteFontList1* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontList1_Release(IDWriteFontList1* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontList methods ***/ -static inline HRESULT IDWriteFontList1_GetFontCollection(IDWriteFontList1* This, IDWriteFontCollection** collection) { - return This->lpVtbl->GetFontCollection(This, collection); -} -static inline UINT32 IDWriteFontList1_GetFontCount(IDWriteFontList1* This) { - return This->lpVtbl->GetFontCount(This); -} -/*** IDWriteFontList1 methods ***/ -static inline DWRITE_LOCALITY IDWriteFontList1_GetFontLocality(IDWriteFontList1* This, UINT32 index) { - return This->lpVtbl->GetFontLocality(This, index); -} -static inline HRESULT IDWriteFontList1_GetFont(IDWriteFontList1* This, UINT32 index, IDWriteFont3** font) { - return This->lpVtbl->IDWriteFontList1_GetFont(This, index, font); -} -static inline HRESULT IDWriteFontList1_GetFontFaceReference(IDWriteFontList1* This, UINT32 index, IDWriteFontFaceReference** reference) { - return This->lpVtbl->GetFontFaceReference(This, index, reference); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontList1_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontList2 interface - */ -#ifndef __IDWriteFontList2_INTERFACE_DEFINED__ -#define __IDWriteFontList2_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontList2, 0xc0763a34, 0x77af, 0x445a, 0xb7, 0x35, 0x08, 0xc3, 0x7b, 0x0a, 0x5b, 0xf5); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("c0763a34-77af-445a-b735-08c37b0a5bf5") -IDWriteFontList2 : public IDWriteFontList1 { - virtual HRESULT STDMETHODCALLTYPE GetFontSet( - IDWriteFontSet1 * *fontset) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontList2, 0xc0763a34, 0x77af, 0x445a, 0xb7, 0x35, 0x08, 0xc3, 0x7b, 0x0a, 0x5b, 0xf5) -#endif -#else -typedef struct IDWriteFontList2Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontList2* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontList2* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontList2* This); - - /*** IDWriteFontList methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFontCollection)( - IDWriteFontList2* This, - IDWriteFontCollection** collection); - - UINT32(STDMETHODCALLTYPE* GetFontCount)( - IDWriteFontList2* This); - - HRESULT(STDMETHODCALLTYPE* GetFont)( - IDWriteFontList2* This, - UINT32 index, - IDWriteFont** font); - - /*** IDWriteFontList1 methods ***/ - DWRITE_LOCALITY(STDMETHODCALLTYPE* GetFontLocality)( - IDWriteFontList2* This, - UINT32 index); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontList1_GetFont)( - IDWriteFontList2* This, - UINT32 index, - IDWriteFont3** font); - - HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( - IDWriteFontList2* This, - UINT32 index, - IDWriteFontFaceReference** reference); - - /*** IDWriteFontList2 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFontSet)( - IDWriteFontList2* This, - IDWriteFontSet1** fontset); - - END_INTERFACE -} IDWriteFontList2Vtbl; - -interface IDWriteFontList2 { - CONST_VTBL IDWriteFontList2Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontList2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontList2_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontList2_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontList methods ***/ -#define IDWriteFontList2_GetFontCollection(This, collection) (This)->lpVtbl->GetFontCollection(This, collection) -#define IDWriteFontList2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) -/*** IDWriteFontList1 methods ***/ -#define IDWriteFontList2_GetFontLocality(This, index) (This)->lpVtbl->GetFontLocality(This, index) -#define IDWriteFontList2_GetFont(This, index, font) (This)->lpVtbl->IDWriteFontList1_GetFont(This, index, font) -#define IDWriteFontList2_GetFontFaceReference(This, index, reference) (This)->lpVtbl->GetFontFaceReference(This, index, reference) -/*** IDWriteFontList2 methods ***/ -#define IDWriteFontList2_GetFontSet(This, fontset) (This)->lpVtbl->GetFontSet(This, fontset) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontList2_QueryInterface(IDWriteFontList2* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontList2_AddRef(IDWriteFontList2* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontList2_Release(IDWriteFontList2* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontList methods ***/ -static inline HRESULT IDWriteFontList2_GetFontCollection(IDWriteFontList2* This, IDWriteFontCollection** collection) { - return This->lpVtbl->GetFontCollection(This, collection); -} -static inline UINT32 IDWriteFontList2_GetFontCount(IDWriteFontList2* This) { - return This->lpVtbl->GetFontCount(This); -} -/*** IDWriteFontList1 methods ***/ -static inline DWRITE_LOCALITY IDWriteFontList2_GetFontLocality(IDWriteFontList2* This, UINT32 index) { - return This->lpVtbl->GetFontLocality(This, index); -} -static inline HRESULT IDWriteFontList2_GetFont(IDWriteFontList2* This, UINT32 index, IDWriteFont3** font) { - return This->lpVtbl->IDWriteFontList1_GetFont(This, index, font); -} -static inline HRESULT IDWriteFontList2_GetFontFaceReference(IDWriteFontList2* This, UINT32 index, IDWriteFontFaceReference** reference) { - return This->lpVtbl->GetFontFaceReference(This, index, reference); -} -/*** IDWriteFontList2 methods ***/ -static inline HRESULT IDWriteFontList2_GetFontSet(IDWriteFontList2* This, IDWriteFontSet1** fontset) { - return This->lpVtbl->GetFontSet(This, fontset); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontList2_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontSet2 interface - */ -#ifndef __IDWriteFontSet2_INTERFACE_DEFINED__ -#define __IDWriteFontSet2_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontSet2, 0xdc7ead19, 0xe54c, 0x43af, 0xb2, 0xda, 0x4e, 0x2b, 0x79, 0xba, 0x3f, 0x7f); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("dc7ead19-e54c-43af-b2da-4e2b79ba3f7f") -IDWriteFontSet2 : public IDWriteFontSet1 { - virtual HANDLE STDMETHODCALLTYPE GetExpirationEvent() = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontSet2, 0xdc7ead19, 0xe54c, 0x43af, 0xb2, 0xda, 0x4e, 0x2b, 0x79, 0xba, 0x3f, 0x7f) -#endif -#else -typedef struct IDWriteFontSet2Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontSet2* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontSet2* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontSet2* This); - - /*** IDWriteFontSet methods ***/ - UINT32(STDMETHODCALLTYPE* GetFontCount)( - IDWriteFontSet2* This); - - HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( - IDWriteFontSet2* This, - UINT32 index, - IDWriteFontFaceReference** reference); - - HRESULT(STDMETHODCALLTYPE* FindFontFaceReference)( - IDWriteFontSet2* This, - IDWriteFontFaceReference* reference, - UINT32* index, - WINBOOL* exists); - - HRESULT(STDMETHODCALLTYPE* FindFontFace)( - IDWriteFontSet2* This, - IDWriteFontFace* fontface, - UINT32* index, - WINBOOL* exists); - - HRESULT(STDMETHODCALLTYPE* GetPropertyValues__)( - IDWriteFontSet2* This, - DWRITE_FONT_PROPERTY_ID id, - IDWriteStringList** values); - - HRESULT(STDMETHODCALLTYPE* GetPropertyValues_)( - IDWriteFontSet2* This, - DWRITE_FONT_PROPERTY_ID id, - const WCHAR* preferred_locales, - IDWriteStringList** values); - - HRESULT(STDMETHODCALLTYPE* GetPropertyValues)( - IDWriteFontSet2* This, - UINT32 index, - DWRITE_FONT_PROPERTY_ID id, - WINBOOL* exists, - IDWriteLocalizedStrings** values); - - HRESULT(STDMETHODCALLTYPE* GetPropertyOccurrenceCount)( - IDWriteFontSet2* This, - const DWRITE_FONT_PROPERTY* property, - UINT32* count); - - HRESULT(STDMETHODCALLTYPE* GetMatchingFonts_)( - IDWriteFontSet2* This, - const WCHAR* family, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFontSet** fontset); - - HRESULT(STDMETHODCALLTYPE* GetMatchingFonts)( - IDWriteFontSet2* This, - const DWRITE_FONT_PROPERTY* props, - UINT32 count, - IDWriteFontSet** fontset); - - /*** IDWriteFontSet1 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFontSet1_GetMatchingFonts)( - IDWriteFontSet2* This, - const DWRITE_FONT_PROPERTY* property, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* GetFirstFontResources)( - IDWriteFontSet2* This, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* GetFilteredFonts__)( - IDWriteFontSet2* This, - const UINT32* indices, - UINT32 num_indices, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* GetFilteredFonts_)( - IDWriteFontSet2* This, - const DWRITE_FONT_AXIS_RANGE* axis_ranges, - UINT32 num_ranges, - WINBOOL select_any_range, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* GetFilteredFonts)( - IDWriteFontSet2* This, - const DWRITE_FONT_PROPERTY* props, - UINT32 num_properties, - WINBOOL select_any_property, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* GetFilteredFontIndices_)( - IDWriteFontSet2* This, - const DWRITE_FONT_AXIS_RANGE* ranges, - UINT32 num_ranges, - WINBOOL select_any_range, - UINT32* indices, - UINT32 num_indices, - UINT32* actual_num_indices); - - HRESULT(STDMETHODCALLTYPE* GetFilteredFontIndices)( - IDWriteFontSet2* This, - const DWRITE_FONT_PROPERTY* props, - UINT32 num_properties, - WINBOOL select_any_range, - UINT32* indices, - UINT32 num_indices, - UINT32* actual_num_indices); - - HRESULT(STDMETHODCALLTYPE* GetFontAxisRanges_)( - IDWriteFontSet2* This, - UINT32 font_index, - DWRITE_FONT_AXIS_RANGE* axis_ranges, - UINT32 num_ranges, - UINT32* actual_num_ranges); - - HRESULT(STDMETHODCALLTYPE* GetFontAxisRanges)( - IDWriteFontSet2* This, - DWRITE_FONT_AXIS_RANGE* axis_ranges, - UINT32 num_ranges, - UINT32* actual_num_ranges); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontSet1_GetFontFaceReference)( - IDWriteFontSet2* This, - UINT32 index, - IDWriteFontFaceReference1** reference); - - HRESULT(STDMETHODCALLTYPE* CreateFontResource)( - IDWriteFontSet2* This, - UINT32 index, - IDWriteFontResource** resource); - - HRESULT(STDMETHODCALLTYPE* CreateFontFace)( - IDWriteFontSet2* This, - UINT32 index, - IDWriteFontFace5** fontface); - - DWRITE_LOCALITY(STDMETHODCALLTYPE* GetFontLocality)( - IDWriteFontSet2* This, - UINT32 index); - - /*** IDWriteFontSet2 methods ***/ - HANDLE(STDMETHODCALLTYPE* GetExpirationEvent)( - IDWriteFontSet2* This); - - END_INTERFACE -} IDWriteFontSet2Vtbl; - -interface IDWriteFontSet2 { - CONST_VTBL IDWriteFontSet2Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontSet2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontSet2_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontSet2_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontSet methods ***/ -#define IDWriteFontSet2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) -#define IDWriteFontSet2_FindFontFaceReference(This, reference, index, exists) (This)->lpVtbl->FindFontFaceReference(This, reference, index, exists) -#define IDWriteFontSet2_FindFontFace(This, fontface, index, exists) (This)->lpVtbl->FindFontFace(This, fontface, index, exists) -#define IDWriteFontSet2_GetPropertyValues__(This, id, values) (This)->lpVtbl->GetPropertyValues__(This, id, values) -#define IDWriteFontSet2_GetPropertyValues_(This, id, preferred_locales, values) (This)->lpVtbl->GetPropertyValues_(This, id, preferred_locales, values) -#define IDWriteFontSet2_GetPropertyValues(This, index, id, exists, values) (This)->lpVtbl->GetPropertyValues(This, index, id, exists, values) -#define IDWriteFontSet2_GetPropertyOccurrenceCount(This, property, count) (This)->lpVtbl->GetPropertyOccurrenceCount(This, property, count) -#define IDWriteFontSet2_GetMatchingFonts_(This, family, weight, stretch, style, fontset) (This)->lpVtbl->GetMatchingFonts_(This, family, weight, stretch, style, fontset) -/*** IDWriteFontSet1 methods ***/ -#define IDWriteFontSet2_GetMatchingFonts(This, property, axis_values, num_values, fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This, property, axis_values, num_values, fontset) -#define IDWriteFontSet2_GetFirstFontResources(This, fontset) (This)->lpVtbl->GetFirstFontResources(This, fontset) -#define IDWriteFontSet2_GetFilteredFonts__(This, indices, num_indices, fontset) (This)->lpVtbl->GetFilteredFonts__(This, indices, num_indices, fontset) -#define IDWriteFontSet2_GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset) (This)->lpVtbl->GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset) -#define IDWriteFontSet2_GetFilteredFonts(This, props, num_properties, select_any_property, fontset) (This)->lpVtbl->GetFilteredFonts(This, props, num_properties, select_any_property, fontset) -#define IDWriteFontSet2_GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices) -#define IDWriteFontSet2_GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices) -#define IDWriteFontSet2_GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges) -#define IDWriteFontSet2_GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges) -#define IDWriteFontSet2_GetFontFaceReference(This, index, reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This, index, reference) -#define IDWriteFontSet2_CreateFontResource(This, index, resource) (This)->lpVtbl->CreateFontResource(This, index, resource) -#define IDWriteFontSet2_CreateFontFace(This, index, fontface) (This)->lpVtbl->CreateFontFace(This, index, fontface) -#define IDWriteFontSet2_GetFontLocality(This, index) (This)->lpVtbl->GetFontLocality(This, index) -/*** IDWriteFontSet2 methods ***/ -#define IDWriteFontSet2_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontSet2_QueryInterface(IDWriteFontSet2* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontSet2_AddRef(IDWriteFontSet2* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontSet2_Release(IDWriteFontSet2* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontSet methods ***/ -static inline UINT32 IDWriteFontSet2_GetFontCount(IDWriteFontSet2* This) { - return This->lpVtbl->GetFontCount(This); -} -static inline HRESULT IDWriteFontSet2_FindFontFaceReference(IDWriteFontSet2* This, IDWriteFontFaceReference* reference, UINT32* index, WINBOOL* exists) { - return This->lpVtbl->FindFontFaceReference(This, reference, index, exists); -} -static inline HRESULT IDWriteFontSet2_FindFontFace(IDWriteFontSet2* This, IDWriteFontFace* fontface, UINT32* index, WINBOOL* exists) { - return This->lpVtbl->FindFontFace(This, fontface, index, exists); -} -static inline HRESULT IDWriteFontSet2_GetPropertyValues__(IDWriteFontSet2* This, DWRITE_FONT_PROPERTY_ID id, IDWriteStringList** values) { - return This->lpVtbl->GetPropertyValues__(This, id, values); -} -static inline HRESULT IDWriteFontSet2_GetPropertyValues_(IDWriteFontSet2* This, DWRITE_FONT_PROPERTY_ID id, const WCHAR* preferred_locales, IDWriteStringList** values) { - return This->lpVtbl->GetPropertyValues_(This, id, preferred_locales, values); -} -static inline HRESULT IDWriteFontSet2_GetPropertyValues(IDWriteFontSet2* This, UINT32 index, DWRITE_FONT_PROPERTY_ID id, WINBOOL* exists, IDWriteLocalizedStrings** values) { - return This->lpVtbl->GetPropertyValues(This, index, id, exists, values); -} -static inline HRESULT IDWriteFontSet2_GetPropertyOccurrenceCount(IDWriteFontSet2* This, const DWRITE_FONT_PROPERTY* property, UINT32* count) { - return This->lpVtbl->GetPropertyOccurrenceCount(This, property, count); -} -static inline HRESULT IDWriteFontSet2_GetMatchingFonts_(IDWriteFontSet2* This, const WCHAR* family, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFontSet** fontset) { - return This->lpVtbl->GetMatchingFonts_(This, family, weight, stretch, style, fontset); -} -/*** IDWriteFontSet1 methods ***/ -static inline HRESULT IDWriteFontSet2_GetMatchingFonts(IDWriteFontSet2* This, const DWRITE_FONT_PROPERTY* property, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values, IDWriteFontSet1** fontset) { - return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This, property, axis_values, num_values, fontset); -} -static inline HRESULT IDWriteFontSet2_GetFirstFontResources(IDWriteFontSet2* This, IDWriteFontSet1** fontset) { - return This->lpVtbl->GetFirstFontResources(This, fontset); -} -static inline HRESULT IDWriteFontSet2_GetFilteredFonts__(IDWriteFontSet2* This, const UINT32* indices, UINT32 num_indices, IDWriteFontSet1** fontset) { - return This->lpVtbl->GetFilteredFonts__(This, indices, num_indices, fontset); -} -static inline HRESULT IDWriteFontSet2_GetFilteredFonts_(IDWriteFontSet2* This, const DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, WINBOOL select_any_range, IDWriteFontSet1** fontset) { - return This->lpVtbl->GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset); -} -static inline HRESULT IDWriteFontSet2_GetFilteredFonts(IDWriteFontSet2* This, const DWRITE_FONT_PROPERTY* props, UINT32 num_properties, WINBOOL select_any_property, IDWriteFontSet1** fontset) { - return This->lpVtbl->GetFilteredFonts(This, props, num_properties, select_any_property, fontset); -} -static inline HRESULT IDWriteFontSet2_GetFilteredFontIndices_(IDWriteFontSet2* This, const DWRITE_FONT_AXIS_RANGE* ranges, UINT32 num_ranges, WINBOOL select_any_range, UINT32* indices, UINT32 num_indices, UINT32* actual_num_indices) { - return This->lpVtbl->GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices); -} -static inline HRESULT IDWriteFontSet2_GetFilteredFontIndices(IDWriteFontSet2* This, const DWRITE_FONT_PROPERTY* props, UINT32 num_properties, WINBOOL select_any_range, UINT32* indices, UINT32 num_indices, UINT32* actual_num_indices) { - return This->lpVtbl->GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices); -} -static inline HRESULT IDWriteFontSet2_GetFontAxisRanges_(IDWriteFontSet2* This, UINT32 font_index, DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, UINT32* actual_num_ranges) { - return This->lpVtbl->GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges); -} -static inline HRESULT IDWriteFontSet2_GetFontAxisRanges(IDWriteFontSet2* This, DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, UINT32* actual_num_ranges) { - return This->lpVtbl->GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges); -} -static inline HRESULT IDWriteFontSet2_GetFontFaceReference(IDWriteFontSet2* This, UINT32 index, IDWriteFontFaceReference1** reference) { - return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This, index, reference); -} -static inline HRESULT IDWriteFontSet2_CreateFontResource(IDWriteFontSet2* This, UINT32 index, IDWriteFontResource** resource) { - return This->lpVtbl->CreateFontResource(This, index, resource); -} -static inline HRESULT IDWriteFontSet2_CreateFontFace(IDWriteFontSet2* This, UINT32 index, IDWriteFontFace5** fontface) { - return This->lpVtbl->CreateFontFace(This, index, fontface); -} -static inline DWRITE_LOCALITY IDWriteFontSet2_GetFontLocality(IDWriteFontSet2* This, UINT32 index) { - return This->lpVtbl->GetFontLocality(This, index); -} -/*** IDWriteFontSet2 methods ***/ -static inline HANDLE IDWriteFontSet2_GetExpirationEvent(IDWriteFontSet2* This) { - return This->lpVtbl->GetExpirationEvent(This); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontSet2_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontSet3 interface - */ -#ifndef __IDWriteFontSet3_INTERFACE_DEFINED__ -#define __IDWriteFontSet3_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontSet3, 0x7c073ef2, 0xa7f4, 0x4045, 0x8c, 0x32, 0x8a, 0xb8, 0xae, 0x64, 0x0f, 0x90); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("7c073ef2-a7f4-4045-8c32-8ab8ae640f90") -IDWriteFontSet3 : public IDWriteFontSet2 { - virtual DWRITE_FONT_SOURCE_TYPE STDMETHODCALLTYPE GetFontSourceType( - UINT32 index) = 0; - - virtual UINT32 STDMETHODCALLTYPE GetFontSourceNameLength( - UINT32 index) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontSourceName( - UINT32 index, - WCHAR * buffer, - UINT32 buffer_size) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontSet3, 0x7c073ef2, 0xa7f4, 0x4045, 0x8c, 0x32, 0x8a, 0xb8, 0xae, 0x64, 0x0f, 0x90) -#endif -#else -typedef struct IDWriteFontSet3Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontSet3* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontSet3* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontSet3* This); - - /*** IDWriteFontSet methods ***/ - UINT32(STDMETHODCALLTYPE* GetFontCount)( - IDWriteFontSet3* This); - - HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( - IDWriteFontSet3* This, - UINT32 index, - IDWriteFontFaceReference** reference); - - HRESULT(STDMETHODCALLTYPE* FindFontFaceReference)( - IDWriteFontSet3* This, - IDWriteFontFaceReference* reference, - UINT32* index, - WINBOOL* exists); - - HRESULT(STDMETHODCALLTYPE* FindFontFace)( - IDWriteFontSet3* This, - IDWriteFontFace* fontface, - UINT32* index, - WINBOOL* exists); - - HRESULT(STDMETHODCALLTYPE* GetPropertyValues__)( - IDWriteFontSet3* This, - DWRITE_FONT_PROPERTY_ID id, - IDWriteStringList** values); - - HRESULT(STDMETHODCALLTYPE* GetPropertyValues_)( - IDWriteFontSet3* This, - DWRITE_FONT_PROPERTY_ID id, - const WCHAR* preferred_locales, - IDWriteStringList** values); - - HRESULT(STDMETHODCALLTYPE* GetPropertyValues)( - IDWriteFontSet3* This, - UINT32 index, - DWRITE_FONT_PROPERTY_ID id, - WINBOOL* exists, - IDWriteLocalizedStrings** values); - - HRESULT(STDMETHODCALLTYPE* GetPropertyOccurrenceCount)( - IDWriteFontSet3* This, - const DWRITE_FONT_PROPERTY* property, - UINT32* count); - - HRESULT(STDMETHODCALLTYPE* GetMatchingFonts_)( - IDWriteFontSet3* This, - const WCHAR* family, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFontSet** fontset); - - HRESULT(STDMETHODCALLTYPE* GetMatchingFonts)( - IDWriteFontSet3* This, - const DWRITE_FONT_PROPERTY* props, - UINT32 count, - IDWriteFontSet** fontset); - - /*** IDWriteFontSet1 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFontSet1_GetMatchingFonts)( - IDWriteFontSet3* This, - const DWRITE_FONT_PROPERTY* property, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* GetFirstFontResources)( - IDWriteFontSet3* This, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* GetFilteredFonts__)( - IDWriteFontSet3* This, - const UINT32* indices, - UINT32 num_indices, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* GetFilteredFonts_)( - IDWriteFontSet3* This, - const DWRITE_FONT_AXIS_RANGE* axis_ranges, - UINT32 num_ranges, - WINBOOL select_any_range, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* GetFilteredFonts)( - IDWriteFontSet3* This, - const DWRITE_FONT_PROPERTY* props, - UINT32 num_properties, - WINBOOL select_any_property, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* GetFilteredFontIndices_)( - IDWriteFontSet3* This, - const DWRITE_FONT_AXIS_RANGE* ranges, - UINT32 num_ranges, - WINBOOL select_any_range, - UINT32* indices, - UINT32 num_indices, - UINT32* actual_num_indices); - - HRESULT(STDMETHODCALLTYPE* GetFilteredFontIndices)( - IDWriteFontSet3* This, - const DWRITE_FONT_PROPERTY* props, - UINT32 num_properties, - WINBOOL select_any_range, - UINT32* indices, - UINT32 num_indices, - UINT32* actual_num_indices); - - HRESULT(STDMETHODCALLTYPE* GetFontAxisRanges_)( - IDWriteFontSet3* This, - UINT32 font_index, - DWRITE_FONT_AXIS_RANGE* axis_ranges, - UINT32 num_ranges, - UINT32* actual_num_ranges); - - HRESULT(STDMETHODCALLTYPE* GetFontAxisRanges)( - IDWriteFontSet3* This, - DWRITE_FONT_AXIS_RANGE* axis_ranges, - UINT32 num_ranges, - UINT32* actual_num_ranges); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontSet1_GetFontFaceReference)( - IDWriteFontSet3* This, - UINT32 index, - IDWriteFontFaceReference1** reference); - - HRESULT(STDMETHODCALLTYPE* CreateFontResource)( - IDWriteFontSet3* This, - UINT32 index, - IDWriteFontResource** resource); - - HRESULT(STDMETHODCALLTYPE* CreateFontFace)( - IDWriteFontSet3* This, - UINT32 index, - IDWriteFontFace5** fontface); - - DWRITE_LOCALITY(STDMETHODCALLTYPE* GetFontLocality)( - IDWriteFontSet3* This, - UINT32 index); - - /*** IDWriteFontSet2 methods ***/ - HANDLE(STDMETHODCALLTYPE* GetExpirationEvent)( - IDWriteFontSet3* This); - - /*** IDWriteFontSet3 methods ***/ - DWRITE_FONT_SOURCE_TYPE(STDMETHODCALLTYPE* GetFontSourceType)( - IDWriteFontSet3* This, - UINT32 index); - - UINT32(STDMETHODCALLTYPE* GetFontSourceNameLength)( - IDWriteFontSet3* This, - UINT32 index); - - HRESULT(STDMETHODCALLTYPE* GetFontSourceName)( - IDWriteFontSet3* This, - UINT32 index, - WCHAR* buffer, - UINT32 buffer_size); - - END_INTERFACE -} IDWriteFontSet3Vtbl; - -interface IDWriteFontSet3 { - CONST_VTBL IDWriteFontSet3Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontSet3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontSet3_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontSet3_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontSet methods ***/ -#define IDWriteFontSet3_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) -#define IDWriteFontSet3_FindFontFaceReference(This, reference, index, exists) (This)->lpVtbl->FindFontFaceReference(This, reference, index, exists) -#define IDWriteFontSet3_FindFontFace(This, fontface, index, exists) (This)->lpVtbl->FindFontFace(This, fontface, index, exists) -#define IDWriteFontSet3_GetPropertyValues__(This, id, values) (This)->lpVtbl->GetPropertyValues__(This, id, values) -#define IDWriteFontSet3_GetPropertyValues_(This, id, preferred_locales, values) (This)->lpVtbl->GetPropertyValues_(This, id, preferred_locales, values) -#define IDWriteFontSet3_GetPropertyValues(This, index, id, exists, values) (This)->lpVtbl->GetPropertyValues(This, index, id, exists, values) -#define IDWriteFontSet3_GetPropertyOccurrenceCount(This, property, count) (This)->lpVtbl->GetPropertyOccurrenceCount(This, property, count) -#define IDWriteFontSet3_GetMatchingFonts_(This, family, weight, stretch, style, fontset) (This)->lpVtbl->GetMatchingFonts_(This, family, weight, stretch, style, fontset) -/*** IDWriteFontSet1 methods ***/ -#define IDWriteFontSet3_GetMatchingFonts(This, property, axis_values, num_values, fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This, property, axis_values, num_values, fontset) -#define IDWriteFontSet3_GetFirstFontResources(This, fontset) (This)->lpVtbl->GetFirstFontResources(This, fontset) -#define IDWriteFontSet3_GetFilteredFonts__(This, indices, num_indices, fontset) (This)->lpVtbl->GetFilteredFonts__(This, indices, num_indices, fontset) -#define IDWriteFontSet3_GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset) (This)->lpVtbl->GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset) -#define IDWriteFontSet3_GetFilteredFonts(This, props, num_properties, select_any_property, fontset) (This)->lpVtbl->GetFilteredFonts(This, props, num_properties, select_any_property, fontset) -#define IDWriteFontSet3_GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices) -#define IDWriteFontSet3_GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices) -#define IDWriteFontSet3_GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges) -#define IDWriteFontSet3_GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges) -#define IDWriteFontSet3_GetFontFaceReference(This, index, reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This, index, reference) -#define IDWriteFontSet3_CreateFontResource(This, index, resource) (This)->lpVtbl->CreateFontResource(This, index, resource) -#define IDWriteFontSet3_CreateFontFace(This, index, fontface) (This)->lpVtbl->CreateFontFace(This, index, fontface) -#define IDWriteFontSet3_GetFontLocality(This, index) (This)->lpVtbl->GetFontLocality(This, index) -/*** IDWriteFontSet2 methods ***/ -#define IDWriteFontSet3_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This) -/*** IDWriteFontSet3 methods ***/ -#define IDWriteFontSet3_GetFontSourceType(This, index) (This)->lpVtbl->GetFontSourceType(This, index) -#define IDWriteFontSet3_GetFontSourceNameLength(This, index) (This)->lpVtbl->GetFontSourceNameLength(This, index) -#define IDWriteFontSet3_GetFontSourceName(This, index, buffer, buffer_size) (This)->lpVtbl->GetFontSourceName(This, index, buffer, buffer_size) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontSet3_QueryInterface(IDWriteFontSet3* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontSet3_AddRef(IDWriteFontSet3* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontSet3_Release(IDWriteFontSet3* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontSet methods ***/ -static inline UINT32 IDWriteFontSet3_GetFontCount(IDWriteFontSet3* This) { - return This->lpVtbl->GetFontCount(This); -} -static inline HRESULT IDWriteFontSet3_FindFontFaceReference(IDWriteFontSet3* This, IDWriteFontFaceReference* reference, UINT32* index, WINBOOL* exists) { - return This->lpVtbl->FindFontFaceReference(This, reference, index, exists); -} -static inline HRESULT IDWriteFontSet3_FindFontFace(IDWriteFontSet3* This, IDWriteFontFace* fontface, UINT32* index, WINBOOL* exists) { - return This->lpVtbl->FindFontFace(This, fontface, index, exists); -} -static inline HRESULT IDWriteFontSet3_GetPropertyValues__(IDWriteFontSet3* This, DWRITE_FONT_PROPERTY_ID id, IDWriteStringList** values) { - return This->lpVtbl->GetPropertyValues__(This, id, values); -} -static inline HRESULT IDWriteFontSet3_GetPropertyValues_(IDWriteFontSet3* This, DWRITE_FONT_PROPERTY_ID id, const WCHAR* preferred_locales, IDWriteStringList** values) { - return This->lpVtbl->GetPropertyValues_(This, id, preferred_locales, values); -} -static inline HRESULT IDWriteFontSet3_GetPropertyValues(IDWriteFontSet3* This, UINT32 index, DWRITE_FONT_PROPERTY_ID id, WINBOOL* exists, IDWriteLocalizedStrings** values) { - return This->lpVtbl->GetPropertyValues(This, index, id, exists, values); -} -static inline HRESULT IDWriteFontSet3_GetPropertyOccurrenceCount(IDWriteFontSet3* This, const DWRITE_FONT_PROPERTY* property, UINT32* count) { - return This->lpVtbl->GetPropertyOccurrenceCount(This, property, count); -} -static inline HRESULT IDWriteFontSet3_GetMatchingFonts_(IDWriteFontSet3* This, const WCHAR* family, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFontSet** fontset) { - return This->lpVtbl->GetMatchingFonts_(This, family, weight, stretch, style, fontset); -} -/*** IDWriteFontSet1 methods ***/ -static inline HRESULT IDWriteFontSet3_GetMatchingFonts(IDWriteFontSet3* This, const DWRITE_FONT_PROPERTY* property, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values, IDWriteFontSet1** fontset) { - return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This, property, axis_values, num_values, fontset); -} -static inline HRESULT IDWriteFontSet3_GetFirstFontResources(IDWriteFontSet3* This, IDWriteFontSet1** fontset) { - return This->lpVtbl->GetFirstFontResources(This, fontset); -} -static inline HRESULT IDWriteFontSet3_GetFilteredFonts__(IDWriteFontSet3* This, const UINT32* indices, UINT32 num_indices, IDWriteFontSet1** fontset) { - return This->lpVtbl->GetFilteredFonts__(This, indices, num_indices, fontset); -} -static inline HRESULT IDWriteFontSet3_GetFilteredFonts_(IDWriteFontSet3* This, const DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, WINBOOL select_any_range, IDWriteFontSet1** fontset) { - return This->lpVtbl->GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset); -} -static inline HRESULT IDWriteFontSet3_GetFilteredFonts(IDWriteFontSet3* This, const DWRITE_FONT_PROPERTY* props, UINT32 num_properties, WINBOOL select_any_property, IDWriteFontSet1** fontset) { - return This->lpVtbl->GetFilteredFonts(This, props, num_properties, select_any_property, fontset); -} -static inline HRESULT IDWriteFontSet3_GetFilteredFontIndices_(IDWriteFontSet3* This, const DWRITE_FONT_AXIS_RANGE* ranges, UINT32 num_ranges, WINBOOL select_any_range, UINT32* indices, UINT32 num_indices, UINT32* actual_num_indices) { - return This->lpVtbl->GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices); -} -static inline HRESULT IDWriteFontSet3_GetFilteredFontIndices(IDWriteFontSet3* This, const DWRITE_FONT_PROPERTY* props, UINT32 num_properties, WINBOOL select_any_range, UINT32* indices, UINT32 num_indices, UINT32* actual_num_indices) { - return This->lpVtbl->GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices); -} -static inline HRESULT IDWriteFontSet3_GetFontAxisRanges_(IDWriteFontSet3* This, UINT32 font_index, DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, UINT32* actual_num_ranges) { - return This->lpVtbl->GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges); -} -static inline HRESULT IDWriteFontSet3_GetFontAxisRanges(IDWriteFontSet3* This, DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, UINT32* actual_num_ranges) { - return This->lpVtbl->GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges); -} -static inline HRESULT IDWriteFontSet3_GetFontFaceReference(IDWriteFontSet3* This, UINT32 index, IDWriteFontFaceReference1** reference) { - return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This, index, reference); -} -static inline HRESULT IDWriteFontSet3_CreateFontResource(IDWriteFontSet3* This, UINT32 index, IDWriteFontResource** resource) { - return This->lpVtbl->CreateFontResource(This, index, resource); -} -static inline HRESULT IDWriteFontSet3_CreateFontFace(IDWriteFontSet3* This, UINT32 index, IDWriteFontFace5** fontface) { - return This->lpVtbl->CreateFontFace(This, index, fontface); -} -static inline DWRITE_LOCALITY IDWriteFontSet3_GetFontLocality(IDWriteFontSet3* This, UINT32 index) { - return This->lpVtbl->GetFontLocality(This, index); -} -/*** IDWriteFontSet2 methods ***/ -static inline HANDLE IDWriteFontSet3_GetExpirationEvent(IDWriteFontSet3* This) { - return This->lpVtbl->GetExpirationEvent(This); -} -/*** IDWriteFontSet3 methods ***/ -static inline DWRITE_FONT_SOURCE_TYPE IDWriteFontSet3_GetFontSourceType(IDWriteFontSet3* This, UINT32 index) { - return This->lpVtbl->GetFontSourceType(This, index); -} -static inline UINT32 IDWriteFontSet3_GetFontSourceNameLength(IDWriteFontSet3* This, UINT32 index) { - return This->lpVtbl->GetFontSourceNameLength(This, index); -} -static inline HRESULT IDWriteFontSet3_GetFontSourceName(IDWriteFontSet3* This, UINT32 index, WCHAR* buffer, UINT32 buffer_size) { - return This->lpVtbl->GetFontSourceName(This, index, buffer, buffer_size); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontSet3_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontSet4 interface - */ -#ifndef __IDWriteFontSet4_INTERFACE_DEFINED__ -#define __IDWriteFontSet4_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontSet4, 0xeec175fc, 0xbea9, 0x4c86, 0x8b, 0x53, 0xcc, 0xbd, 0xd7, 0xdf, 0x0c, 0x82); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("eec175fc-bea9-4c86-8b53-ccbdd7df0c82") -IDWriteFontSet4 : public IDWriteFontSet3 { - virtual UINT32 STDMETHODCALLTYPE ConvertWeightStretchStyleToFontAxisValues( - const DWRITE_FONT_AXIS_VALUE* input_axis_values, - UINT32 input_axis_count, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - float size, - DWRITE_FONT_AXIS_VALUE* output_axis_values) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( - const WCHAR* family_name, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 axis_value_count, - DWRITE_FONT_SIMULATIONS allowed_simulations, - IDWriteFontSet4** fonts) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontSet4, 0xeec175fc, 0xbea9, 0x4c86, 0x8b, 0x53, 0xcc, 0xbd, 0xd7, 0xdf, 0x0c, 0x82) -#endif -#else -typedef struct IDWriteFontSet4Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontSet4* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontSet4* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontSet4* This); - - /*** IDWriteFontSet methods ***/ - UINT32(STDMETHODCALLTYPE* GetFontCount)( - IDWriteFontSet4* This); - - HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( - IDWriteFontSet4* This, - UINT32 index, - IDWriteFontFaceReference** reference); - - HRESULT(STDMETHODCALLTYPE* FindFontFaceReference)( - IDWriteFontSet4* This, - IDWriteFontFaceReference* reference, - UINT32* index, - WINBOOL* exists); - - HRESULT(STDMETHODCALLTYPE* FindFontFace)( - IDWriteFontSet4* This, - IDWriteFontFace* fontface, - UINT32* index, - WINBOOL* exists); - - HRESULT(STDMETHODCALLTYPE* GetPropertyValues__)( - IDWriteFontSet4* This, - DWRITE_FONT_PROPERTY_ID id, - IDWriteStringList** values); - - HRESULT(STDMETHODCALLTYPE* GetPropertyValues_)( - IDWriteFontSet4* This, - DWRITE_FONT_PROPERTY_ID id, - const WCHAR* preferred_locales, - IDWriteStringList** values); - - HRESULT(STDMETHODCALLTYPE* GetPropertyValues)( - IDWriteFontSet4* This, - UINT32 index, - DWRITE_FONT_PROPERTY_ID id, - WINBOOL* exists, - IDWriteLocalizedStrings** values); - - HRESULT(STDMETHODCALLTYPE* GetPropertyOccurrenceCount)( - IDWriteFontSet4* This, - const DWRITE_FONT_PROPERTY* property, - UINT32* count); - - HRESULT(STDMETHODCALLTYPE* GetMatchingFonts_)( - IDWriteFontSet4* This, - const WCHAR* family, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - IDWriteFontSet** fontset); - - HRESULT(STDMETHODCALLTYPE* GetMatchingFonts)( - IDWriteFontSet4* This, - const DWRITE_FONT_PROPERTY* props, - UINT32 count, - IDWriteFontSet** fontset); - - /*** IDWriteFontSet1 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFontSet1_GetMatchingFonts)( - IDWriteFontSet4* This, - const DWRITE_FONT_PROPERTY* property, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* GetFirstFontResources)( - IDWriteFontSet4* This, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* GetFilteredFonts__)( - IDWriteFontSet4* This, - const UINT32* indices, - UINT32 num_indices, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* GetFilteredFonts_)( - IDWriteFontSet4* This, - const DWRITE_FONT_AXIS_RANGE* axis_ranges, - UINT32 num_ranges, - WINBOOL select_any_range, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* GetFilteredFonts)( - IDWriteFontSet4* This, - const DWRITE_FONT_PROPERTY* props, - UINT32 num_properties, - WINBOOL select_any_property, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* GetFilteredFontIndices_)( - IDWriteFontSet4* This, - const DWRITE_FONT_AXIS_RANGE* ranges, - UINT32 num_ranges, - WINBOOL select_any_range, - UINT32* indices, - UINT32 num_indices, - UINT32* actual_num_indices); - - HRESULT(STDMETHODCALLTYPE* GetFilteredFontIndices)( - IDWriteFontSet4* This, - const DWRITE_FONT_PROPERTY* props, - UINT32 num_properties, - WINBOOL select_any_range, - UINT32* indices, - UINT32 num_indices, - UINT32* actual_num_indices); - - HRESULT(STDMETHODCALLTYPE* GetFontAxisRanges_)( - IDWriteFontSet4* This, - UINT32 font_index, - DWRITE_FONT_AXIS_RANGE* axis_ranges, - UINT32 num_ranges, - UINT32* actual_num_ranges); - - HRESULT(STDMETHODCALLTYPE* GetFontAxisRanges)( - IDWriteFontSet4* This, - DWRITE_FONT_AXIS_RANGE* axis_ranges, - UINT32 num_ranges, - UINT32* actual_num_ranges); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontSet1_GetFontFaceReference)( - IDWriteFontSet4* This, - UINT32 index, - IDWriteFontFaceReference1** reference); - - HRESULT(STDMETHODCALLTYPE* CreateFontResource)( - IDWriteFontSet4* This, - UINT32 index, - IDWriteFontResource** resource); - - HRESULT(STDMETHODCALLTYPE* CreateFontFace)( - IDWriteFontSet4* This, - UINT32 index, - IDWriteFontFace5** fontface); - - DWRITE_LOCALITY(STDMETHODCALLTYPE* GetFontLocality)( - IDWriteFontSet4* This, - UINT32 index); - - /*** IDWriteFontSet2 methods ***/ - HANDLE(STDMETHODCALLTYPE* GetExpirationEvent)( - IDWriteFontSet4* This); - - /*** IDWriteFontSet3 methods ***/ - DWRITE_FONT_SOURCE_TYPE(STDMETHODCALLTYPE* GetFontSourceType)( - IDWriteFontSet4* This, - UINT32 index); - - UINT32(STDMETHODCALLTYPE* GetFontSourceNameLength)( - IDWriteFontSet4* This, - UINT32 index); - - HRESULT(STDMETHODCALLTYPE* GetFontSourceName)( - IDWriteFontSet4* This, - UINT32 index, - WCHAR* buffer, - UINT32 buffer_size); - - /*** IDWriteFontSet4 methods ***/ - UINT32(STDMETHODCALLTYPE* ConvertWeightStretchStyleToFontAxisValues)( - IDWriteFontSet4* This, - const DWRITE_FONT_AXIS_VALUE* input_axis_values, - UINT32 input_axis_count, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - float size, - DWRITE_FONT_AXIS_VALUE* output_axis_values); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontSet4_GetMatchingFonts)( - IDWriteFontSet4* This, - const WCHAR* family_name, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 axis_value_count, - DWRITE_FONT_SIMULATIONS allowed_simulations, - IDWriteFontSet4** fonts); - - END_INTERFACE -} IDWriteFontSet4Vtbl; - -interface IDWriteFontSet4 { - CONST_VTBL IDWriteFontSet4Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontSet4_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontSet4_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontSet4_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontSet methods ***/ -#define IDWriteFontSet4_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) -#define IDWriteFontSet4_FindFontFaceReference(This, reference, index, exists) (This)->lpVtbl->FindFontFaceReference(This, reference, index, exists) -#define IDWriteFontSet4_FindFontFace(This, fontface, index, exists) (This)->lpVtbl->FindFontFace(This, fontface, index, exists) -#define IDWriteFontSet4_GetPropertyValues__(This, id, values) (This)->lpVtbl->GetPropertyValues__(This, id, values) -#define IDWriteFontSet4_GetPropertyValues_(This, id, preferred_locales, values) (This)->lpVtbl->GetPropertyValues_(This, id, preferred_locales, values) -#define IDWriteFontSet4_GetPropertyValues(This, index, id, exists, values) (This)->lpVtbl->GetPropertyValues(This, index, id, exists, values) -#define IDWriteFontSet4_GetPropertyOccurrenceCount(This, property, count) (This)->lpVtbl->GetPropertyOccurrenceCount(This, property, count) -#define IDWriteFontSet4_GetMatchingFonts_(This, family, weight, stretch, style, fontset) (This)->lpVtbl->GetMatchingFonts_(This, family, weight, stretch, style, fontset) -/*** IDWriteFontSet1 methods ***/ -#define IDWriteFontSet4_GetFirstFontResources(This, fontset) (This)->lpVtbl->GetFirstFontResources(This, fontset) -#define IDWriteFontSet4_GetFilteredFonts__(This, indices, num_indices, fontset) (This)->lpVtbl->GetFilteredFonts__(This, indices, num_indices, fontset) -#define IDWriteFontSet4_GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset) (This)->lpVtbl->GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset) -#define IDWriteFontSet4_GetFilteredFonts(This, props, num_properties, select_any_property, fontset) (This)->lpVtbl->GetFilteredFonts(This, props, num_properties, select_any_property, fontset) -#define IDWriteFontSet4_GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices) -#define IDWriteFontSet4_GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices) -#define IDWriteFontSet4_GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges) -#define IDWriteFontSet4_GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges) -#define IDWriteFontSet4_GetFontFaceReference(This, index, reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This, index, reference) -#define IDWriteFontSet4_CreateFontResource(This, index, resource) (This)->lpVtbl->CreateFontResource(This, index, resource) -#define IDWriteFontSet4_CreateFontFace(This, index, fontface) (This)->lpVtbl->CreateFontFace(This, index, fontface) -#define IDWriteFontSet4_GetFontLocality(This, index) (This)->lpVtbl->GetFontLocality(This, index) -/*** IDWriteFontSet2 methods ***/ -#define IDWriteFontSet4_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This) -/*** IDWriteFontSet3 methods ***/ -#define IDWriteFontSet4_GetFontSourceType(This, index) (This)->lpVtbl->GetFontSourceType(This, index) -#define IDWriteFontSet4_GetFontSourceNameLength(This, index) (This)->lpVtbl->GetFontSourceNameLength(This, index) -#define IDWriteFontSet4_GetFontSourceName(This, index, buffer, buffer_size) (This)->lpVtbl->GetFontSourceName(This, index, buffer, buffer_size) -/*** IDWriteFontSet4 methods ***/ -#define IDWriteFontSet4_ConvertWeightStretchStyleToFontAxisValues(This, input_axis_values, input_axis_count, weight, stretch, style, size, output_axis_values) (This)->lpVtbl->ConvertWeightStretchStyleToFontAxisValues(This, input_axis_values, input_axis_count, weight, stretch, style, size, output_axis_values) -#define IDWriteFontSet4_GetMatchingFonts(This, family_name, axis_values, axis_value_count, allowed_simulations, fonts) (This)->lpVtbl->IDWriteFontSet4_GetMatchingFonts(This, family_name, axis_values, axis_value_count, allowed_simulations, fonts) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontSet4_QueryInterface(IDWriteFontSet4* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontSet4_AddRef(IDWriteFontSet4* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontSet4_Release(IDWriteFontSet4* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontSet methods ***/ -static inline UINT32 IDWriteFontSet4_GetFontCount(IDWriteFontSet4* This) { - return This->lpVtbl->GetFontCount(This); -} -static inline HRESULT IDWriteFontSet4_FindFontFaceReference(IDWriteFontSet4* This, IDWriteFontFaceReference* reference, UINT32* index, WINBOOL* exists) { - return This->lpVtbl->FindFontFaceReference(This, reference, index, exists); -} -static inline HRESULT IDWriteFontSet4_FindFontFace(IDWriteFontSet4* This, IDWriteFontFace* fontface, UINT32* index, WINBOOL* exists) { - return This->lpVtbl->FindFontFace(This, fontface, index, exists); -} -static inline HRESULT IDWriteFontSet4_GetPropertyValues__(IDWriteFontSet4* This, DWRITE_FONT_PROPERTY_ID id, IDWriteStringList** values) { - return This->lpVtbl->GetPropertyValues__(This, id, values); -} -static inline HRESULT IDWriteFontSet4_GetPropertyValues_(IDWriteFontSet4* This, DWRITE_FONT_PROPERTY_ID id, const WCHAR* preferred_locales, IDWriteStringList** values) { - return This->lpVtbl->GetPropertyValues_(This, id, preferred_locales, values); -} -static inline HRESULT IDWriteFontSet4_GetPropertyValues(IDWriteFontSet4* This, UINT32 index, DWRITE_FONT_PROPERTY_ID id, WINBOOL* exists, IDWriteLocalizedStrings** values) { - return This->lpVtbl->GetPropertyValues(This, index, id, exists, values); -} -static inline HRESULT IDWriteFontSet4_GetPropertyOccurrenceCount(IDWriteFontSet4* This, const DWRITE_FONT_PROPERTY* property, UINT32* count) { - return This->lpVtbl->GetPropertyOccurrenceCount(This, property, count); -} -static inline HRESULT IDWriteFontSet4_GetMatchingFonts_(IDWriteFontSet4* This, const WCHAR* family, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFontSet** fontset) { - return This->lpVtbl->GetMatchingFonts_(This, family, weight, stretch, style, fontset); -} -/*** IDWriteFontSet1 methods ***/ -static inline HRESULT IDWriteFontSet4_GetFirstFontResources(IDWriteFontSet4* This, IDWriteFontSet1** fontset) { - return This->lpVtbl->GetFirstFontResources(This, fontset); -} -static inline HRESULT IDWriteFontSet4_GetFilteredFonts__(IDWriteFontSet4* This, const UINT32* indices, UINT32 num_indices, IDWriteFontSet1** fontset) { - return This->lpVtbl->GetFilteredFonts__(This, indices, num_indices, fontset); -} -static inline HRESULT IDWriteFontSet4_GetFilteredFonts_(IDWriteFontSet4* This, const DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, WINBOOL select_any_range, IDWriteFontSet1** fontset) { - return This->lpVtbl->GetFilteredFonts_(This, axis_ranges, num_ranges, select_any_range, fontset); -} -static inline HRESULT IDWriteFontSet4_GetFilteredFonts(IDWriteFontSet4* This, const DWRITE_FONT_PROPERTY* props, UINT32 num_properties, WINBOOL select_any_property, IDWriteFontSet1** fontset) { - return This->lpVtbl->GetFilteredFonts(This, props, num_properties, select_any_property, fontset); -} -static inline HRESULT IDWriteFontSet4_GetFilteredFontIndices_(IDWriteFontSet4* This, const DWRITE_FONT_AXIS_RANGE* ranges, UINT32 num_ranges, WINBOOL select_any_range, UINT32* indices, UINT32 num_indices, UINT32* actual_num_indices) { - return This->lpVtbl->GetFilteredFontIndices_(This, ranges, num_ranges, select_any_range, indices, num_indices, actual_num_indices); -} -static inline HRESULT IDWriteFontSet4_GetFilteredFontIndices(IDWriteFontSet4* This, const DWRITE_FONT_PROPERTY* props, UINT32 num_properties, WINBOOL select_any_range, UINT32* indices, UINT32 num_indices, UINT32* actual_num_indices) { - return This->lpVtbl->GetFilteredFontIndices(This, props, num_properties, select_any_range, indices, num_indices, actual_num_indices); -} -static inline HRESULT IDWriteFontSet4_GetFontAxisRanges_(IDWriteFontSet4* This, UINT32 font_index, DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, UINT32* actual_num_ranges) { - return This->lpVtbl->GetFontAxisRanges_(This, font_index, axis_ranges, num_ranges, actual_num_ranges); -} -static inline HRESULT IDWriteFontSet4_GetFontAxisRanges(IDWriteFontSet4* This, DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, UINT32* actual_num_ranges) { - return This->lpVtbl->GetFontAxisRanges(This, axis_ranges, num_ranges, actual_num_ranges); -} -static inline HRESULT IDWriteFontSet4_GetFontFaceReference(IDWriteFontSet4* This, UINT32 index, IDWriteFontFaceReference1** reference) { - return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This, index, reference); -} -static inline HRESULT IDWriteFontSet4_CreateFontResource(IDWriteFontSet4* This, UINT32 index, IDWriteFontResource** resource) { - return This->lpVtbl->CreateFontResource(This, index, resource); -} -static inline HRESULT IDWriteFontSet4_CreateFontFace(IDWriteFontSet4* This, UINT32 index, IDWriteFontFace5** fontface) { - return This->lpVtbl->CreateFontFace(This, index, fontface); -} -static inline DWRITE_LOCALITY IDWriteFontSet4_GetFontLocality(IDWriteFontSet4* This, UINT32 index) { - return This->lpVtbl->GetFontLocality(This, index); -} -/*** IDWriteFontSet2 methods ***/ -static inline HANDLE IDWriteFontSet4_GetExpirationEvent(IDWriteFontSet4* This) { - return This->lpVtbl->GetExpirationEvent(This); -} -/*** IDWriteFontSet3 methods ***/ -static inline DWRITE_FONT_SOURCE_TYPE IDWriteFontSet4_GetFontSourceType(IDWriteFontSet4* This, UINT32 index) { - return This->lpVtbl->GetFontSourceType(This, index); -} -static inline UINT32 IDWriteFontSet4_GetFontSourceNameLength(IDWriteFontSet4* This, UINT32 index) { - return This->lpVtbl->GetFontSourceNameLength(This, index); -} -static inline HRESULT IDWriteFontSet4_GetFontSourceName(IDWriteFontSet4* This, UINT32 index, WCHAR* buffer, UINT32 buffer_size) { - return This->lpVtbl->GetFontSourceName(This, index, buffer, buffer_size); -} -/*** IDWriteFontSet4 methods ***/ -static inline UINT32 IDWriteFontSet4_ConvertWeightStretchStyleToFontAxisValues(IDWriteFontSet4* This, const DWRITE_FONT_AXIS_VALUE* input_axis_values, UINT32 input_axis_count, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, float size, DWRITE_FONT_AXIS_VALUE* output_axis_values) { - return This->lpVtbl->ConvertWeightStretchStyleToFontAxisValues(This, input_axis_values, input_axis_count, weight, stretch, style, size, output_axis_values); -} -static inline HRESULT IDWriteFontSet4_GetMatchingFonts(IDWriteFontSet4* This, const WCHAR* family_name, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 axis_value_count, DWRITE_FONT_SIMULATIONS allowed_simulations, IDWriteFontSet4** fonts) { - return This->lpVtbl->IDWriteFontSet4_GetMatchingFonts(This, family_name, axis_values, axis_value_count, allowed_simulations, fonts); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontSet4_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontFace3 interface - */ -#ifndef __IDWriteFontFace3_INTERFACE_DEFINED__ -#define __IDWriteFontFace3_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontFace3, 0xd37d7598, 0x09be, 0x4222, 0xa2, 0x36, 0x20, 0x81, 0x34, 0x1c, 0xc1, 0xf2); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("d37d7598-09be-4222-a236-2081341cc1f2") -IDWriteFontFace3 : public IDWriteFontFace2 { - virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( - IDWriteFontFaceReference * *reference) = 0; - - virtual void STDMETHODCALLTYPE GetPanose( - DWRITE_PANOSE * panose) = 0; - - virtual DWRITE_FONT_WEIGHT STDMETHODCALLTYPE GetWeight() = 0; - - virtual DWRITE_FONT_STRETCH STDMETHODCALLTYPE GetStretch() = 0; - - virtual DWRITE_FONT_STYLE STDMETHODCALLTYPE GetStyle() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFamilyNames( - IDWriteLocalizedStrings * *names) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFaceNames( - IDWriteLocalizedStrings * *names) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetInformationalStrings( - DWRITE_INFORMATIONAL_STRING_ID stringid, - IDWriteLocalizedStrings * *strings, - WINBOOL * exists) = 0; - - virtual WINBOOL STDMETHODCALLTYPE HasCharacter( - UINT32 character) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode( - FLOAT emsize, - FLOAT dpi_x, - FLOAT dpi_y, - const DWRITE_MATRIX* transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - IDWriteRenderingParams* params, - DWRITE_RENDERING_MODE1* rendering_mode, - DWRITE_GRID_FIT_MODE* gridfit_mode) = 0; - - virtual WINBOOL STDMETHODCALLTYPE IsCharacterLocal( - UINT32 character) = 0; - - virtual WINBOOL STDMETHODCALLTYPE IsGlyphLocal( - UINT16 glyph) = 0; - - virtual HRESULT STDMETHODCALLTYPE AreCharactersLocal( - const WCHAR* characters, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL* are_local) = 0; - - virtual HRESULT STDMETHODCALLTYPE AreGlyphsLocal( - const UINT16* glyphs, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL* are_local) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFace3, 0xd37d7598, 0x09be, 0x4222, 0xa2, 0x36, 0x20, 0x81, 0x34, 0x1c, 0xc1, 0xf2) -#endif -#else -typedef struct IDWriteFontFace3Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontFace3* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontFace3* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontFace3* This); - - /*** IDWriteFontFace methods ***/ - DWRITE_FONT_FACE_TYPE(STDMETHODCALLTYPE* GetType)( - IDWriteFontFace3* This); - - HRESULT(STDMETHODCALLTYPE* GetFiles)( - IDWriteFontFace3* This, - UINT32* number_of_files, - IDWriteFontFile** fontfiles); - - UINT32(STDMETHODCALLTYPE* GetIndex)( - IDWriteFontFace3* This); - - DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( - IDWriteFontFace3* This); - - WINBOOL(STDMETHODCALLTYPE* IsSymbolFont)( - IDWriteFontFace3* This); - - void(STDMETHODCALLTYPE* GetMetrics)( - IDWriteFontFace3* This, - DWRITE_FONT_METRICS* metrics); - - UINT16(STDMETHODCALLTYPE* GetGlyphCount)( - IDWriteFontFace3* This); - - HRESULT(STDMETHODCALLTYPE* GetDesignGlyphMetrics)( - IDWriteFontFace3* This, - const UINT16* glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS* metrics, - WINBOOL is_sideways); - - HRESULT(STDMETHODCALLTYPE* GetGlyphIndices)( - IDWriteFontFace3* This, - const UINT32* codepoints, - UINT32 count, - UINT16* glyph_indices); - - HRESULT(STDMETHODCALLTYPE* TryGetFontTable)( - IDWriteFontFace3* This, - UINT32 table_tag, - const void** table_data, - UINT32* table_size, - void** context, - WINBOOL* exists); - - void(STDMETHODCALLTYPE* ReleaseFontTable)( - IDWriteFontFace3* This, - void* table_context); - - HRESULT(STDMETHODCALLTYPE* GetGlyphRunOutline)( - IDWriteFontFace3* This, - FLOAT emSize, - const UINT16* glyph_indices, - const FLOAT* glyph_advances, - const DWRITE_GLYPH_OFFSET* glyph_offsets, - UINT32 glyph_count, - WINBOOL is_sideways, - WINBOOL is_rtl, - IDWriteGeometrySink* geometrysink); - - HRESULT(STDMETHODCALLTYPE* GetRecommendedRenderingMode)( - IDWriteFontFace3* This, - FLOAT emSize, - FLOAT pixels_per_dip, - DWRITE_MEASURING_MODE mode, - IDWriteRenderingParams* params, - DWRITE_RENDERING_MODE* rendering_mode); - - HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleMetrics)( - IDWriteFontFace3* This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_FONT_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphMetrics)( - IDWriteFontFace3* This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - const UINT16* glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS* metrics, - WINBOOL is_sideways); - - /*** IDWriteFontFace1 methods ***/ - void(STDMETHODCALLTYPE* IDWriteFontFace1_GetMetrics)( - IDWriteFontFace3* This, - DWRITE_FONT_METRICS1* metrics); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetGdiCompatibleMetrics)( - IDWriteFontFace3* This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_FONT_METRICS1* metrics); - - void(STDMETHODCALLTYPE* GetCaretMetrics)( - IDWriteFontFace3* This, - DWRITE_CARET_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* GetUnicodeRanges)( - IDWriteFontFace3* This, - UINT32 max_count, - DWRITE_UNICODE_RANGE* ranges, - UINT32* count); - - WINBOOL(STDMETHODCALLTYPE* IsMonospacedFont)( - IDWriteFontFace3* This); - - HRESULT(STDMETHODCALLTYPE* GetDesignGlyphAdvances)( - IDWriteFontFace3* This, - UINT32 glyph_count, - const UINT16* indices, - INT32* advances, - WINBOOL is_sideways); - - HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphAdvances)( - IDWriteFontFace3* This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - WINBOOL is_sideways, - UINT32 glyph_count, - const UINT16* indices, - INT32* advances); - - HRESULT(STDMETHODCALLTYPE* GetKerningPairAdjustments)( - IDWriteFontFace3* This, - UINT32 glyph_count, - const UINT16* indices, - INT32* adjustments); - - WINBOOL(STDMETHODCALLTYPE* HasKerningPairs)( - IDWriteFontFace3* This); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetRecommendedRenderingMode)( - IDWriteFontFace3* This, - FLOAT font_emsize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX* transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_RENDERING_MODE* rendering_mode); - - HRESULT(STDMETHODCALLTYPE* GetVerticalGlyphVariants)( - IDWriteFontFace3* This, - UINT32 glyph_count, - const UINT16* nominal_indices, - UINT16* vertical_indices); - - WINBOOL(STDMETHODCALLTYPE* HasVerticalGlyphVariants)( - IDWriteFontFace3* This); - - /*** IDWriteFontFace2 methods ***/ - WINBOOL(STDMETHODCALLTYPE* IsColorFont)( - IDWriteFontFace3* This); - - UINT32(STDMETHODCALLTYPE* GetColorPaletteCount)( - IDWriteFontFace3* This); - - UINT32(STDMETHODCALLTYPE* GetPaletteEntryCount)( - IDWriteFontFace3* This); - - HRESULT(STDMETHODCALLTYPE* GetPaletteEntries)( - IDWriteFontFace3* This, - UINT32 palette_index, - UINT32 first_entry_index, - UINT32 entry_count, - DWRITE_COLOR_F* entries); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace2_GetRecommendedRenderingMode)( - IDWriteFontFace3* This, - FLOAT fontEmSize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX* transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuringmode, - IDWriteRenderingParams* params, - DWRITE_RENDERING_MODE* renderingmode, - DWRITE_GRID_FIT_MODE* gridfitmode); - - /*** IDWriteFontFace3 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( - IDWriteFontFace3* This, - IDWriteFontFaceReference** reference); - - void(STDMETHODCALLTYPE* GetPanose)( - IDWriteFontFace3* This, - DWRITE_PANOSE* panose); - - DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetWeight)( - IDWriteFontFace3* This); - - DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetStretch)( - IDWriteFontFace3* This); - - DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetStyle)( - IDWriteFontFace3* This); - - HRESULT(STDMETHODCALLTYPE* GetFamilyNames)( - IDWriteFontFace3* This, - IDWriteLocalizedStrings** names); - - HRESULT(STDMETHODCALLTYPE* GetFaceNames)( - IDWriteFontFace3* This, - IDWriteLocalizedStrings** names); - - HRESULT(STDMETHODCALLTYPE* GetInformationalStrings)( - IDWriteFontFace3* This, - DWRITE_INFORMATIONAL_STRING_ID stringid, - IDWriteLocalizedStrings** strings, - WINBOOL* exists); - - WINBOOL(STDMETHODCALLTYPE* HasCharacter)( - IDWriteFontFace3* This, - UINT32 character); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace3_GetRecommendedRenderingMode)( - IDWriteFontFace3* This, - FLOAT emsize, - FLOAT dpi_x, - FLOAT dpi_y, - const DWRITE_MATRIX* transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - IDWriteRenderingParams* params, - DWRITE_RENDERING_MODE1* rendering_mode, - DWRITE_GRID_FIT_MODE* gridfit_mode); - - WINBOOL(STDMETHODCALLTYPE* IsCharacterLocal)( - IDWriteFontFace3* This, - UINT32 character); - - WINBOOL(STDMETHODCALLTYPE* IsGlyphLocal)( - IDWriteFontFace3* This, - UINT16 glyph); - - HRESULT(STDMETHODCALLTYPE* AreCharactersLocal)( - IDWriteFontFace3* This, - const WCHAR* characters, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL* are_local); - - HRESULT(STDMETHODCALLTYPE* AreGlyphsLocal)( - IDWriteFontFace3* This, - const UINT16* glyphs, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL* are_local); - - END_INTERFACE -} IDWriteFontFace3Vtbl; - -interface IDWriteFontFace3 { - CONST_VTBL IDWriteFontFace3Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontFace3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontFace3_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontFace3_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontFace methods ***/ -#define IDWriteFontFace3_GetType(This) (This)->lpVtbl->GetType(This) -#define IDWriteFontFace3_GetFiles(This, number_of_files, fontfiles) (This)->lpVtbl->GetFiles(This, number_of_files, fontfiles) -#define IDWriteFontFace3_GetIndex(This) (This)->lpVtbl->GetIndex(This) -#define IDWriteFontFace3_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) -#define IDWriteFontFace3_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) -#define IDWriteFontFace3_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) -#define IDWriteFontFace3_GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) -#define IDWriteFontFace3_GetGlyphIndices(This, codepoints, count, glyph_indices) (This)->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices) -#define IDWriteFontFace3_TryGetFontTable(This, table_tag, table_data, table_size, context, exists) (This)->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists) -#define IDWriteFontFace3_ReleaseFontTable(This, table_context) (This)->lpVtbl->ReleaseFontTable(This, table_context) -#define IDWriteFontFace3_GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) -#define IDWriteFontFace3_GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) -/*** IDWriteFontFace1 methods ***/ -#define IDWriteFontFace3_GetMetrics(This, metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics) -#define IDWriteFontFace3_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) -#define IDWriteFontFace3_GetCaretMetrics(This, metrics) (This)->lpVtbl->GetCaretMetrics(This, metrics) -#define IDWriteFontFace3_GetUnicodeRanges(This, max_count, ranges, count) (This)->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count) -#define IDWriteFontFace3_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) -#define IDWriteFontFace3_GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) -#define IDWriteFontFace3_GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) -#define IDWriteFontFace3_GetKerningPairAdjustments(This, glyph_count, indices, adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments) -#define IDWriteFontFace3_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) -#define IDWriteFontFace3_GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) -#define IDWriteFontFace3_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) -/*** IDWriteFontFace2 methods ***/ -#define IDWriteFontFace3_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) -#define IDWriteFontFace3_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) -#define IDWriteFontFace3_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) -#define IDWriteFontFace3_GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) (This)->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) -/*** IDWriteFontFace3 methods ***/ -#define IDWriteFontFace3_GetFontFaceReference(This, reference) (This)->lpVtbl->GetFontFaceReference(This, reference) -#define IDWriteFontFace3_GetPanose(This, panose) (This)->lpVtbl->GetPanose(This, panose) -#define IDWriteFontFace3_GetWeight(This) (This)->lpVtbl->GetWeight(This) -#define IDWriteFontFace3_GetStretch(This) (This)->lpVtbl->GetStretch(This) -#define IDWriteFontFace3_GetStyle(This) (This)->lpVtbl->GetStyle(This) -#define IDWriteFontFace3_GetFamilyNames(This, names) (This)->lpVtbl->GetFamilyNames(This, names) -#define IDWriteFontFace3_GetFaceNames(This, names) (This)->lpVtbl->GetFaceNames(This, names) -#define IDWriteFontFace3_GetInformationalStrings(This, stringid, strings, exists) (This)->lpVtbl->GetInformationalStrings(This, stringid, strings, exists) -#define IDWriteFontFace3_HasCharacter(This, character) (This)->lpVtbl->HasCharacter(This, character) -#define IDWriteFontFace3_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode) -#define IDWriteFontFace3_IsCharacterLocal(This, character) (This)->lpVtbl->IsCharacterLocal(This, character) -#define IDWriteFontFace3_IsGlyphLocal(This, glyph) (This)->lpVtbl->IsGlyphLocal(This, glyph) -#define IDWriteFontFace3_AreCharactersLocal(This, characters, count, enqueue_if_not, are_local) (This)->lpVtbl->AreCharactersLocal(This, characters, count, enqueue_if_not, are_local) -#define IDWriteFontFace3_AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local) (This)->lpVtbl->AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFace3_QueryInterface(IDWriteFontFace3* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontFace3_AddRef(IDWriteFontFace3* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontFace3_Release(IDWriteFontFace3* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontFace methods ***/ -static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace3_GetType(IDWriteFontFace3* This) { - return This->lpVtbl->GetType(This); -} -static inline HRESULT IDWriteFontFace3_GetFiles(IDWriteFontFace3* This, UINT32* number_of_files, IDWriteFontFile** fontfiles) { - return This->lpVtbl->GetFiles(This, number_of_files, fontfiles); -} -static inline UINT32 IDWriteFontFace3_GetIndex(IDWriteFontFace3* This) { - return This->lpVtbl->GetIndex(This); -} -static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace3_GetSimulations(IDWriteFontFace3* This) { - return This->lpVtbl->GetSimulations(This); -} -static inline WINBOOL IDWriteFontFace3_IsSymbolFont(IDWriteFontFace3* This) { - return This->lpVtbl->IsSymbolFont(This); -} -static inline UINT16 IDWriteFontFace3_GetGlyphCount(IDWriteFontFace3* This) { - return This->lpVtbl->GetGlyphCount(This); -} -static inline HRESULT IDWriteFontFace3_GetDesignGlyphMetrics(IDWriteFontFace3* This, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways); -} -static inline HRESULT IDWriteFontFace3_GetGlyphIndices(IDWriteFontFace3* This, const UINT32* codepoints, UINT32 count, UINT16* glyph_indices) { - return This->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices); -} -static inline HRESULT IDWriteFontFace3_TryGetFontTable(IDWriteFontFace3* This, UINT32 table_tag, const void** table_data, UINT32* table_size, void** context, WINBOOL* exists) { - return This->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists); -} -static inline void IDWriteFontFace3_ReleaseFontTable(IDWriteFontFace3* This, void* table_context) { - This->lpVtbl->ReleaseFontTable(This, table_context); -} -static inline HRESULT IDWriteFontFace3_GetGlyphRunOutline(IDWriteFontFace3* This, FLOAT emSize, const UINT16* glyph_indices, const FLOAT* glyph_advances, const DWRITE_GLYPH_OFFSET* glyph_offsets, UINT32 glyph_count, WINBOOL is_sideways, WINBOOL is_rtl, IDWriteGeometrySink* geometrysink) { - return This->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink); -} -static inline HRESULT IDWriteFontFace3_GetGdiCompatibleGlyphMetrics(IDWriteFontFace3* This, FLOAT emSize, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { - return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways); -} -/*** IDWriteFontFace1 methods ***/ -static inline void IDWriteFontFace3_GetMetrics(IDWriteFontFace3* This, DWRITE_FONT_METRICS1* metrics) { - This->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics); -} -static inline HRESULT IDWriteFontFace3_GetGdiCompatibleMetrics(IDWriteFontFace3* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, DWRITE_FONT_METRICS1* metrics) { - return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics); -} -static inline void IDWriteFontFace3_GetCaretMetrics(IDWriteFontFace3* This, DWRITE_CARET_METRICS* metrics) { - This->lpVtbl->GetCaretMetrics(This, metrics); -} -static inline HRESULT IDWriteFontFace3_GetUnicodeRanges(IDWriteFontFace3* This, UINT32 max_count, DWRITE_UNICODE_RANGE* ranges, UINT32* count) { - return This->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count); -} -static inline WINBOOL IDWriteFontFace3_IsMonospacedFont(IDWriteFontFace3* This) { - return This->lpVtbl->IsMonospacedFont(This); -} -static inline HRESULT IDWriteFontFace3_GetDesignGlyphAdvances(IDWriteFontFace3* This, UINT32 glyph_count, const UINT16* indices, INT32* advances, WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways); -} -static inline HRESULT IDWriteFontFace3_GetGdiCompatibleGlyphAdvances(IDWriteFontFace3* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, WINBOOL is_sideways, UINT32 glyph_count, const UINT16* indices, INT32* advances) { - return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances); -} -static inline HRESULT IDWriteFontFace3_GetKerningPairAdjustments(IDWriteFontFace3* This, UINT32 glyph_count, const UINT16* indices, INT32* adjustments) { - return This->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments); -} -static inline WINBOOL IDWriteFontFace3_HasKerningPairs(IDWriteFontFace3* This) { - return This->lpVtbl->HasKerningPairs(This); -} -static inline HRESULT IDWriteFontFace3_GetVerticalGlyphVariants(IDWriteFontFace3* This, UINT32 glyph_count, const UINT16* nominal_indices, UINT16* vertical_indices) { - return This->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices); -} -static inline WINBOOL IDWriteFontFace3_HasVerticalGlyphVariants(IDWriteFontFace3* This) { - return This->lpVtbl->HasVerticalGlyphVariants(This); -} -/*** IDWriteFontFace2 methods ***/ -static inline WINBOOL IDWriteFontFace3_IsColorFont(IDWriteFontFace3* This) { - return This->lpVtbl->IsColorFont(This); -} -static inline UINT32 IDWriteFontFace3_GetColorPaletteCount(IDWriteFontFace3* This) { - return This->lpVtbl->GetColorPaletteCount(This); -} -static inline UINT32 IDWriteFontFace3_GetPaletteEntryCount(IDWriteFontFace3* This) { - return This->lpVtbl->GetPaletteEntryCount(This); -} -static inline HRESULT IDWriteFontFace3_GetPaletteEntries(IDWriteFontFace3* This, UINT32 palette_index, UINT32 first_entry_index, UINT32 entry_count, DWRITE_COLOR_F* entries) { - return This->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries); -} -/*** IDWriteFontFace3 methods ***/ -static inline HRESULT IDWriteFontFace3_GetFontFaceReference(IDWriteFontFace3* This, IDWriteFontFaceReference** reference) { - return This->lpVtbl->GetFontFaceReference(This, reference); -} -static inline void IDWriteFontFace3_GetPanose(IDWriteFontFace3* This, DWRITE_PANOSE* panose) { - This->lpVtbl->GetPanose(This, panose); -} -static inline DWRITE_FONT_WEIGHT IDWriteFontFace3_GetWeight(IDWriteFontFace3* This) { - return This->lpVtbl->GetWeight(This); -} -static inline DWRITE_FONT_STRETCH IDWriteFontFace3_GetStretch(IDWriteFontFace3* This) { - return This->lpVtbl->GetStretch(This); -} -static inline DWRITE_FONT_STYLE IDWriteFontFace3_GetStyle(IDWriteFontFace3* This) { - return This->lpVtbl->GetStyle(This); -} -static inline HRESULT IDWriteFontFace3_GetFamilyNames(IDWriteFontFace3* This, IDWriteLocalizedStrings** names) { - return This->lpVtbl->GetFamilyNames(This, names); -} -static inline HRESULT IDWriteFontFace3_GetFaceNames(IDWriteFontFace3* This, IDWriteLocalizedStrings** names) { - return This->lpVtbl->GetFaceNames(This, names); -} -static inline HRESULT IDWriteFontFace3_GetInformationalStrings(IDWriteFontFace3* This, DWRITE_INFORMATIONAL_STRING_ID stringid, IDWriteLocalizedStrings** strings, WINBOOL* exists) { - return This->lpVtbl->GetInformationalStrings(This, stringid, strings, exists); -} -static inline WINBOOL IDWriteFontFace3_HasCharacter(IDWriteFontFace3* This, UINT32 character) { - return This->lpVtbl->HasCharacter(This, character); -} -static inline HRESULT IDWriteFontFace3_GetRecommendedRenderingMode(IDWriteFontFace3* This, FLOAT emsize, FLOAT dpi_x, FLOAT dpi_y, const DWRITE_MATRIX* transform, WINBOOL is_sideways, DWRITE_OUTLINE_THRESHOLD threshold, DWRITE_MEASURING_MODE measuring_mode, IDWriteRenderingParams* params, DWRITE_RENDERING_MODE1* rendering_mode, DWRITE_GRID_FIT_MODE* gridfit_mode) { - return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode); -} -static inline WINBOOL IDWriteFontFace3_IsCharacterLocal(IDWriteFontFace3* This, UINT32 character) { - return This->lpVtbl->IsCharacterLocal(This, character); -} -static inline WINBOOL IDWriteFontFace3_IsGlyphLocal(IDWriteFontFace3* This, UINT16 glyph) { - return This->lpVtbl->IsGlyphLocal(This, glyph); -} -static inline HRESULT IDWriteFontFace3_AreCharactersLocal(IDWriteFontFace3* This, const WCHAR* characters, UINT32 count, WINBOOL enqueue_if_not, WINBOOL* are_local) { - return This->lpVtbl->AreCharactersLocal(This, characters, count, enqueue_if_not, are_local); -} -static inline HRESULT IDWriteFontFace3_AreGlyphsLocal(IDWriteFontFace3* This, const UINT16* glyphs, UINT32 count, WINBOOL enqueue_if_not, WINBOOL* are_local) { - return This->lpVtbl->AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontFace3_INTERFACE_DEFINED__ */ - -typedef struct DWRITE_LINE_METRICS1 { - UINT32 length; - UINT32 trailingWhitespaceLength; - UINT32 newlineLength; - FLOAT height; - FLOAT baseline; - WINBOOL isTrimmed; - FLOAT leadingBefore; - FLOAT leadingAfter; -} DWRITE_LINE_METRICS1; -typedef enum DWRITE_FONT_LINE_GAP_USAGE { - DWRITE_FONT_LINE_GAP_USAGE_DEFAULT = 0, - DWRITE_FONT_LINE_GAP_USAGE_DISABLED = 1, - DWRITE_FONT_LINE_GAP_USAGE_ENABLED = 2 -} DWRITE_FONT_LINE_GAP_USAGE; -typedef struct DWRITE_LINE_SPACING { - DWRITE_LINE_SPACING_METHOD method; - FLOAT height; - FLOAT baseline; - FLOAT leadingBefore; - DWRITE_FONT_LINE_GAP_USAGE fontLineGapUsage; -} DWRITE_LINE_SPACING; -/***************************************************************************** - * IDWriteTextFormat2 interface - */ -#ifndef __IDWriteTextFormat2_INTERFACE_DEFINED__ -#define __IDWriteTextFormat2_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteTextFormat2, 0xf67e0edd, 0x9e3d, 0x4ecc, 0x8c, 0x32, 0x41, 0x83, 0x25, 0x3d, 0xfe, 0x70); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("f67e0edd-9e3d-4ecc-8c32-4183253dfe70") -IDWriteTextFormat2 : public IDWriteTextFormat1 { - virtual HRESULT STDMETHODCALLTYPE SetLineSpacing( - const DWRITE_LINE_SPACING* spacing) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLineSpacing( - DWRITE_LINE_SPACING * spacing) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextFormat2, 0xf67e0edd, 0x9e3d, 0x4ecc, 0x8c, 0x32, 0x41, 0x83, 0x25, 0x3d, 0xfe, 0x70) -#endif -#else -typedef struct IDWriteTextFormat2Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteTextFormat2* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteTextFormat2* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteTextFormat2* This); - - /*** IDWriteTextFormat methods ***/ - HRESULT(STDMETHODCALLTYPE* SetTextAlignment)( - IDWriteTextFormat2* This, - DWRITE_TEXT_ALIGNMENT alignment); - - HRESULT(STDMETHODCALLTYPE* SetParagraphAlignment)( - IDWriteTextFormat2* This, - DWRITE_PARAGRAPH_ALIGNMENT alignment); - - HRESULT(STDMETHODCALLTYPE* SetWordWrapping)( - IDWriteTextFormat2* This, - DWRITE_WORD_WRAPPING wrapping); - - HRESULT(STDMETHODCALLTYPE* SetReadingDirection)( - IDWriteTextFormat2* This, - DWRITE_READING_DIRECTION direction); - - HRESULT(STDMETHODCALLTYPE* SetFlowDirection)( - IDWriteTextFormat2* This, - DWRITE_FLOW_DIRECTION direction); - - HRESULT(STDMETHODCALLTYPE* SetIncrementalTabStop)( - IDWriteTextFormat2* This, - FLOAT tabstop); - - HRESULT(STDMETHODCALLTYPE* SetTrimming)( - IDWriteTextFormat2* This, - const DWRITE_TRIMMING* trimming, - IDWriteInlineObject* trimming_sign); - - HRESULT(STDMETHODCALLTYPE* SetLineSpacing)( - IDWriteTextFormat2* This, - DWRITE_LINE_SPACING_METHOD spacing, - FLOAT line_spacing, - FLOAT baseline); - - DWRITE_TEXT_ALIGNMENT(STDMETHODCALLTYPE* GetTextAlignment)( - IDWriteTextFormat2* This); - - DWRITE_PARAGRAPH_ALIGNMENT(STDMETHODCALLTYPE* GetParagraphAlignment)( - IDWriteTextFormat2* This); - - DWRITE_WORD_WRAPPING(STDMETHODCALLTYPE* GetWordWrapping)( - IDWriteTextFormat2* This); - - DWRITE_READING_DIRECTION(STDMETHODCALLTYPE* GetReadingDirection)( - IDWriteTextFormat2* This); - - DWRITE_FLOW_DIRECTION(STDMETHODCALLTYPE* GetFlowDirection)( - IDWriteTextFormat2* This); - - FLOAT(STDMETHODCALLTYPE* GetIncrementalTabStop)( - IDWriteTextFormat2* This); - - HRESULT(STDMETHODCALLTYPE* GetTrimming)( - IDWriteTextFormat2* This, - DWRITE_TRIMMING* options, - IDWriteInlineObject** trimming_sign); - - HRESULT(STDMETHODCALLTYPE* GetLineSpacing)( - IDWriteTextFormat2* This, - DWRITE_LINE_SPACING_METHOD* method, - FLOAT* spacing, - FLOAT* baseline); - - HRESULT(STDMETHODCALLTYPE* GetFontCollection)( - IDWriteTextFormat2* This, - IDWriteFontCollection** collection); - - UINT32(STDMETHODCALLTYPE* GetFontFamilyNameLength)( - IDWriteTextFormat2* This); - - HRESULT(STDMETHODCALLTYPE* GetFontFamilyName)( - IDWriteTextFormat2* This, - WCHAR* name, - UINT32 size); - - DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetFontWeight)( - IDWriteTextFormat2* This); - - DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetFontStyle)( - IDWriteTextFormat2* This); - - DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetFontStretch)( - IDWriteTextFormat2* This); - - FLOAT(STDMETHODCALLTYPE* GetFontSize)( - IDWriteTextFormat2* This); - - UINT32(STDMETHODCALLTYPE* GetLocaleNameLength)( - IDWriteTextFormat2* This); - - HRESULT(STDMETHODCALLTYPE* GetLocaleName)( - IDWriteTextFormat2* This, - WCHAR* name, - UINT32 size); - - /*** IDWriteTextFormat1 methods ***/ - HRESULT(STDMETHODCALLTYPE* SetVerticalGlyphOrientation)( - IDWriteTextFormat2* This, - DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); - - DWRITE_VERTICAL_GLYPH_ORIENTATION(STDMETHODCALLTYPE* GetVerticalGlyphOrientation)( - IDWriteTextFormat2* This); - - HRESULT(STDMETHODCALLTYPE* SetLastLineWrapping)( - IDWriteTextFormat2* This, - WINBOOL lastline_wrapping_enabled); - - WINBOOL(STDMETHODCALLTYPE* GetLastLineWrapping)( - IDWriteTextFormat2* This); - - HRESULT(STDMETHODCALLTYPE* SetOpticalAlignment)( - IDWriteTextFormat2* This, - DWRITE_OPTICAL_ALIGNMENT alignment); - - DWRITE_OPTICAL_ALIGNMENT(STDMETHODCALLTYPE* GetOpticalAlignment)( - IDWriteTextFormat2* This); - - HRESULT(STDMETHODCALLTYPE* SetFontFallback)( - IDWriteTextFormat2* This, - IDWriteFontFallback* fallback); - - HRESULT(STDMETHODCALLTYPE* GetFontFallback)( - IDWriteTextFormat2* This, - IDWriteFontFallback** fallback); - - /*** IDWriteTextFormat2 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteTextFormat2_SetLineSpacing)( - IDWriteTextFormat2* This, - const DWRITE_LINE_SPACING* spacing); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextFormat2_GetLineSpacing)( - IDWriteTextFormat2* This, - DWRITE_LINE_SPACING* spacing); - - END_INTERFACE -} IDWriteTextFormat2Vtbl; - -interface IDWriteTextFormat2 { - CONST_VTBL IDWriteTextFormat2Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteTextFormat2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteTextFormat2_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteTextFormat2_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteTextFormat methods ***/ -#define IDWriteTextFormat2_SetTextAlignment(This, alignment) (This)->lpVtbl->SetTextAlignment(This, alignment) -#define IDWriteTextFormat2_SetParagraphAlignment(This, alignment) (This)->lpVtbl->SetParagraphAlignment(This, alignment) -#define IDWriteTextFormat2_SetWordWrapping(This, wrapping) (This)->lpVtbl->SetWordWrapping(This, wrapping) -#define IDWriteTextFormat2_SetReadingDirection(This, direction) (This)->lpVtbl->SetReadingDirection(This, direction) -#define IDWriteTextFormat2_SetFlowDirection(This, direction) (This)->lpVtbl->SetFlowDirection(This, direction) -#define IDWriteTextFormat2_SetIncrementalTabStop(This, tabstop) (This)->lpVtbl->SetIncrementalTabStop(This, tabstop) -#define IDWriteTextFormat2_SetTrimming(This, trimming, trimming_sign) (This)->lpVtbl->SetTrimming(This, trimming, trimming_sign) -#define IDWriteTextFormat2_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) -#define IDWriteTextFormat2_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) -#define IDWriteTextFormat2_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) -#define IDWriteTextFormat2_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) -#define IDWriteTextFormat2_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) -#define IDWriteTextFormat2_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) -#define IDWriteTextFormat2_GetTrimming(This, options, trimming_sign) (This)->lpVtbl->GetTrimming(This, options, trimming_sign) -#define IDWriteTextFormat2_GetFontCollection(This, collection) (This)->lpVtbl->GetFontCollection(This, collection) -#define IDWriteTextFormat2_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This) -#define IDWriteTextFormat2_GetFontFamilyName(This, name, size) (This)->lpVtbl->GetFontFamilyName(This, name, size) -#define IDWriteTextFormat2_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This) -#define IDWriteTextFormat2_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This) -#define IDWriteTextFormat2_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This) -#define IDWriteTextFormat2_GetFontSize(This) (This)->lpVtbl->GetFontSize(This) -#define IDWriteTextFormat2_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This) -#define IDWriteTextFormat2_GetLocaleName(This, name, size) (This)->lpVtbl->GetLocaleName(This, name, size) -/*** IDWriteTextFormat1 methods ***/ -#define IDWriteTextFormat2_SetVerticalGlyphOrientation(This, orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This, orientation) -#define IDWriteTextFormat2_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) -#define IDWriteTextFormat2_SetLastLineWrapping(This, lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled) -#define IDWriteTextFormat2_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) -#define IDWriteTextFormat2_SetOpticalAlignment(This, alignment) (This)->lpVtbl->SetOpticalAlignment(This, alignment) -#define IDWriteTextFormat2_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) -#define IDWriteTextFormat2_SetFontFallback(This, fallback) (This)->lpVtbl->SetFontFallback(This, fallback) -#define IDWriteTextFormat2_GetFontFallback(This, fallback) (This)->lpVtbl->GetFontFallback(This, fallback) -/*** IDWriteTextFormat2 methods ***/ -#define IDWriteTextFormat2_SetLineSpacing(This, spacing) (This)->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This, spacing) -#define IDWriteTextFormat2_GetLineSpacing(This, spacing) (This)->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This, spacing) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteTextFormat2_QueryInterface(IDWriteTextFormat2* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteTextFormat2_AddRef(IDWriteTextFormat2* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteTextFormat2_Release(IDWriteTextFormat2* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteTextFormat methods ***/ -static inline HRESULT IDWriteTextFormat2_SetTextAlignment(IDWriteTextFormat2* This, DWRITE_TEXT_ALIGNMENT alignment) { - return This->lpVtbl->SetTextAlignment(This, alignment); -} -static inline HRESULT IDWriteTextFormat2_SetParagraphAlignment(IDWriteTextFormat2* This, DWRITE_PARAGRAPH_ALIGNMENT alignment) { - return This->lpVtbl->SetParagraphAlignment(This, alignment); -} -static inline HRESULT IDWriteTextFormat2_SetWordWrapping(IDWriteTextFormat2* This, DWRITE_WORD_WRAPPING wrapping) { - return This->lpVtbl->SetWordWrapping(This, wrapping); -} -static inline HRESULT IDWriteTextFormat2_SetReadingDirection(IDWriteTextFormat2* This, DWRITE_READING_DIRECTION direction) { - return This->lpVtbl->SetReadingDirection(This, direction); -} -static inline HRESULT IDWriteTextFormat2_SetFlowDirection(IDWriteTextFormat2* This, DWRITE_FLOW_DIRECTION direction) { - return This->lpVtbl->SetFlowDirection(This, direction); -} -static inline HRESULT IDWriteTextFormat2_SetIncrementalTabStop(IDWriteTextFormat2* This, FLOAT tabstop) { - return This->lpVtbl->SetIncrementalTabStop(This, tabstop); -} -static inline HRESULT IDWriteTextFormat2_SetTrimming(IDWriteTextFormat2* This, const DWRITE_TRIMMING* trimming, IDWriteInlineObject* trimming_sign) { - return This->lpVtbl->SetTrimming(This, trimming, trimming_sign); -} -static inline DWRITE_TEXT_ALIGNMENT IDWriteTextFormat2_GetTextAlignment(IDWriteTextFormat2* This) { - return This->lpVtbl->GetTextAlignment(This); -} -static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat2_GetParagraphAlignment(IDWriteTextFormat2* This) { - return This->lpVtbl->GetParagraphAlignment(This); -} -static inline DWRITE_WORD_WRAPPING IDWriteTextFormat2_GetWordWrapping(IDWriteTextFormat2* This) { - return This->lpVtbl->GetWordWrapping(This); -} -static inline DWRITE_READING_DIRECTION IDWriteTextFormat2_GetReadingDirection(IDWriteTextFormat2* This) { - return This->lpVtbl->GetReadingDirection(This); -} -static inline DWRITE_FLOW_DIRECTION IDWriteTextFormat2_GetFlowDirection(IDWriteTextFormat2* This) { - return This->lpVtbl->GetFlowDirection(This); -} -static inline FLOAT IDWriteTextFormat2_GetIncrementalTabStop(IDWriteTextFormat2* This) { - return This->lpVtbl->GetIncrementalTabStop(This); -} -static inline HRESULT IDWriteTextFormat2_GetTrimming(IDWriteTextFormat2* This, DWRITE_TRIMMING* options, IDWriteInlineObject** trimming_sign) { - return This->lpVtbl->GetTrimming(This, options, trimming_sign); -} -static inline HRESULT IDWriteTextFormat2_GetFontCollection(IDWriteTextFormat2* This, IDWriteFontCollection** collection) { - return This->lpVtbl->GetFontCollection(This, collection); -} -static inline UINT32 IDWriteTextFormat2_GetFontFamilyNameLength(IDWriteTextFormat2* This) { - return This->lpVtbl->GetFontFamilyNameLength(This); -} -static inline HRESULT IDWriteTextFormat2_GetFontFamilyName(IDWriteTextFormat2* This, WCHAR* name, UINT32 size) { - return This->lpVtbl->GetFontFamilyName(This, name, size); -} -static inline DWRITE_FONT_WEIGHT IDWriteTextFormat2_GetFontWeight(IDWriteTextFormat2* This) { - return This->lpVtbl->GetFontWeight(This); -} -static inline DWRITE_FONT_STYLE IDWriteTextFormat2_GetFontStyle(IDWriteTextFormat2* This) { - return This->lpVtbl->GetFontStyle(This); -} -static inline DWRITE_FONT_STRETCH IDWriteTextFormat2_GetFontStretch(IDWriteTextFormat2* This) { - return This->lpVtbl->GetFontStretch(This); -} -static inline FLOAT IDWriteTextFormat2_GetFontSize(IDWriteTextFormat2* This) { - return This->lpVtbl->GetFontSize(This); -} -static inline UINT32 IDWriteTextFormat2_GetLocaleNameLength(IDWriteTextFormat2* This) { - return This->lpVtbl->GetLocaleNameLength(This); -} -static inline HRESULT IDWriteTextFormat2_GetLocaleName(IDWriteTextFormat2* This, WCHAR* name, UINT32 size) { - return This->lpVtbl->GetLocaleName(This, name, size); -} -/*** IDWriteTextFormat1 methods ***/ -static inline HRESULT IDWriteTextFormat2_SetVerticalGlyphOrientation(IDWriteTextFormat2* This, DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { - return This->lpVtbl->SetVerticalGlyphOrientation(This, orientation); -} -static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextFormat2_GetVerticalGlyphOrientation(IDWriteTextFormat2* This) { - return This->lpVtbl->GetVerticalGlyphOrientation(This); -} -static inline HRESULT IDWriteTextFormat2_SetLastLineWrapping(IDWriteTextFormat2* This, WINBOOL lastline_wrapping_enabled) { - return This->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled); -} -static inline WINBOOL IDWriteTextFormat2_GetLastLineWrapping(IDWriteTextFormat2* This) { - return This->lpVtbl->GetLastLineWrapping(This); -} -static inline HRESULT IDWriteTextFormat2_SetOpticalAlignment(IDWriteTextFormat2* This, DWRITE_OPTICAL_ALIGNMENT alignment) { - return This->lpVtbl->SetOpticalAlignment(This, alignment); -} -static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextFormat2_GetOpticalAlignment(IDWriteTextFormat2* This) { - return This->lpVtbl->GetOpticalAlignment(This); -} -static inline HRESULT IDWriteTextFormat2_SetFontFallback(IDWriteTextFormat2* This, IDWriteFontFallback* fallback) { - return This->lpVtbl->SetFontFallback(This, fallback); -} -static inline HRESULT IDWriteTextFormat2_GetFontFallback(IDWriteTextFormat2* This, IDWriteFontFallback** fallback) { - return This->lpVtbl->GetFontFallback(This, fallback); -} -/*** IDWriteTextFormat2 methods ***/ -static inline HRESULT IDWriteTextFormat2_SetLineSpacing(IDWriteTextFormat2* This, const DWRITE_LINE_SPACING* spacing) { - return This->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This, spacing); -} -static inline HRESULT IDWriteTextFormat2_GetLineSpacing(IDWriteTextFormat2* This, DWRITE_LINE_SPACING* spacing) { - return This->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This, spacing); -} -#endif -#endif - -#endif - -#endif /* __IDWriteTextFormat2_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteTextFormat3 interface - */ -#ifndef __IDWriteTextFormat3_INTERFACE_DEFINED__ -#define __IDWriteTextFormat3_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteTextFormat3, 0x6d3b5641, 0xe550, 0x430d, 0xa8, 0x5b, 0xb7, 0xbf, 0x48, 0xa9, 0x34, 0x27); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("6d3b5641-e550-430d-a85b-b7bf48a93427") -IDWriteTextFormat3 : public IDWriteTextFormat2 { - virtual HRESULT STDMETHODCALLTYPE SetFontAxisValues( - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values) = 0; - - virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues( - DWRITE_FONT_AXIS_VALUE * axis_values, - UINT32 num_values) = 0; - - virtual DWRITE_AUTOMATIC_FONT_AXES STDMETHODCALLTYPE GetAutomaticFontAxes() = 0; - - virtual HRESULT STDMETHODCALLTYPE SetAutomaticFontAxes( - DWRITE_AUTOMATIC_FONT_AXES axes) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextFormat3, 0x6d3b5641, 0xe550, 0x430d, 0xa8, 0x5b, 0xb7, 0xbf, 0x48, 0xa9, 0x34, 0x27) -#endif -#else -typedef struct IDWriteTextFormat3Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteTextFormat3* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteTextFormat3* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteTextFormat3* This); - - /*** IDWriteTextFormat methods ***/ - HRESULT(STDMETHODCALLTYPE* SetTextAlignment)( - IDWriteTextFormat3* This, - DWRITE_TEXT_ALIGNMENT alignment); - - HRESULT(STDMETHODCALLTYPE* SetParagraphAlignment)( - IDWriteTextFormat3* This, - DWRITE_PARAGRAPH_ALIGNMENT alignment); - - HRESULT(STDMETHODCALLTYPE* SetWordWrapping)( - IDWriteTextFormat3* This, - DWRITE_WORD_WRAPPING wrapping); - - HRESULT(STDMETHODCALLTYPE* SetReadingDirection)( - IDWriteTextFormat3* This, - DWRITE_READING_DIRECTION direction); - - HRESULT(STDMETHODCALLTYPE* SetFlowDirection)( - IDWriteTextFormat3* This, - DWRITE_FLOW_DIRECTION direction); - - HRESULT(STDMETHODCALLTYPE* SetIncrementalTabStop)( - IDWriteTextFormat3* This, - FLOAT tabstop); - - HRESULT(STDMETHODCALLTYPE* SetTrimming)( - IDWriteTextFormat3* This, - const DWRITE_TRIMMING* trimming, - IDWriteInlineObject* trimming_sign); - - HRESULT(STDMETHODCALLTYPE* SetLineSpacing)( - IDWriteTextFormat3* This, - DWRITE_LINE_SPACING_METHOD spacing, - FLOAT line_spacing, - FLOAT baseline); - - DWRITE_TEXT_ALIGNMENT(STDMETHODCALLTYPE* GetTextAlignment)( - IDWriteTextFormat3* This); - - DWRITE_PARAGRAPH_ALIGNMENT(STDMETHODCALLTYPE* GetParagraphAlignment)( - IDWriteTextFormat3* This); - - DWRITE_WORD_WRAPPING(STDMETHODCALLTYPE* GetWordWrapping)( - IDWriteTextFormat3* This); - - DWRITE_READING_DIRECTION(STDMETHODCALLTYPE* GetReadingDirection)( - IDWriteTextFormat3* This); - - DWRITE_FLOW_DIRECTION(STDMETHODCALLTYPE* GetFlowDirection)( - IDWriteTextFormat3* This); - - FLOAT(STDMETHODCALLTYPE* GetIncrementalTabStop)( - IDWriteTextFormat3* This); - - HRESULT(STDMETHODCALLTYPE* GetTrimming)( - IDWriteTextFormat3* This, - DWRITE_TRIMMING* options, - IDWriteInlineObject** trimming_sign); - - HRESULT(STDMETHODCALLTYPE* GetLineSpacing)( - IDWriteTextFormat3* This, - DWRITE_LINE_SPACING_METHOD* method, - FLOAT* spacing, - FLOAT* baseline); - - HRESULT(STDMETHODCALLTYPE* GetFontCollection)( - IDWriteTextFormat3* This, - IDWriteFontCollection** collection); - - UINT32(STDMETHODCALLTYPE* GetFontFamilyNameLength)( - IDWriteTextFormat3* This); - - HRESULT(STDMETHODCALLTYPE* GetFontFamilyName)( - IDWriteTextFormat3* This, - WCHAR* name, - UINT32 size); - - DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetFontWeight)( - IDWriteTextFormat3* This); - - DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetFontStyle)( - IDWriteTextFormat3* This); - - DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetFontStretch)( - IDWriteTextFormat3* This); - - FLOAT(STDMETHODCALLTYPE* GetFontSize)( - IDWriteTextFormat3* This); - - UINT32(STDMETHODCALLTYPE* GetLocaleNameLength)( - IDWriteTextFormat3* This); - - HRESULT(STDMETHODCALLTYPE* GetLocaleName)( - IDWriteTextFormat3* This, - WCHAR* name, - UINT32 size); - - /*** IDWriteTextFormat1 methods ***/ - HRESULT(STDMETHODCALLTYPE* SetVerticalGlyphOrientation)( - IDWriteTextFormat3* This, - DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); - - DWRITE_VERTICAL_GLYPH_ORIENTATION(STDMETHODCALLTYPE* GetVerticalGlyphOrientation)( - IDWriteTextFormat3* This); - - HRESULT(STDMETHODCALLTYPE* SetLastLineWrapping)( - IDWriteTextFormat3* This, - WINBOOL lastline_wrapping_enabled); - - WINBOOL(STDMETHODCALLTYPE* GetLastLineWrapping)( - IDWriteTextFormat3* This); - - HRESULT(STDMETHODCALLTYPE* SetOpticalAlignment)( - IDWriteTextFormat3* This, - DWRITE_OPTICAL_ALIGNMENT alignment); - - DWRITE_OPTICAL_ALIGNMENT(STDMETHODCALLTYPE* GetOpticalAlignment)( - IDWriteTextFormat3* This); - - HRESULT(STDMETHODCALLTYPE* SetFontFallback)( - IDWriteTextFormat3* This, - IDWriteFontFallback* fallback); - - HRESULT(STDMETHODCALLTYPE* GetFontFallback)( - IDWriteTextFormat3* This, - IDWriteFontFallback** fallback); - - /*** IDWriteTextFormat2 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteTextFormat2_SetLineSpacing)( - IDWriteTextFormat3* This, - const DWRITE_LINE_SPACING* spacing); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextFormat2_GetLineSpacing)( - IDWriteTextFormat3* This, - DWRITE_LINE_SPACING* spacing); - - /*** IDWriteTextFormat3 methods ***/ - HRESULT(STDMETHODCALLTYPE* SetFontAxisValues)( - IDWriteTextFormat3* This, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values); - - UINT32(STDMETHODCALLTYPE* GetFontAxisValueCount)( - IDWriteTextFormat3* This); - - HRESULT(STDMETHODCALLTYPE* GetFontAxisValues)( - IDWriteTextFormat3* This, - DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values); - - DWRITE_AUTOMATIC_FONT_AXES(STDMETHODCALLTYPE* GetAutomaticFontAxes)( - IDWriteTextFormat3* This); - - HRESULT(STDMETHODCALLTYPE* SetAutomaticFontAxes)( - IDWriteTextFormat3* This, - DWRITE_AUTOMATIC_FONT_AXES axes); - - END_INTERFACE -} IDWriteTextFormat3Vtbl; - -interface IDWriteTextFormat3 { - CONST_VTBL IDWriteTextFormat3Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteTextFormat3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteTextFormat3_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteTextFormat3_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteTextFormat methods ***/ -#define IDWriteTextFormat3_SetTextAlignment(This, alignment) (This)->lpVtbl->SetTextAlignment(This, alignment) -#define IDWriteTextFormat3_SetParagraphAlignment(This, alignment) (This)->lpVtbl->SetParagraphAlignment(This, alignment) -#define IDWriteTextFormat3_SetWordWrapping(This, wrapping) (This)->lpVtbl->SetWordWrapping(This, wrapping) -#define IDWriteTextFormat3_SetReadingDirection(This, direction) (This)->lpVtbl->SetReadingDirection(This, direction) -#define IDWriteTextFormat3_SetFlowDirection(This, direction) (This)->lpVtbl->SetFlowDirection(This, direction) -#define IDWriteTextFormat3_SetIncrementalTabStop(This, tabstop) (This)->lpVtbl->SetIncrementalTabStop(This, tabstop) -#define IDWriteTextFormat3_SetTrimming(This, trimming, trimming_sign) (This)->lpVtbl->SetTrimming(This, trimming, trimming_sign) -#define IDWriteTextFormat3_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) -#define IDWriteTextFormat3_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) -#define IDWriteTextFormat3_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) -#define IDWriteTextFormat3_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) -#define IDWriteTextFormat3_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) -#define IDWriteTextFormat3_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) -#define IDWriteTextFormat3_GetTrimming(This, options, trimming_sign) (This)->lpVtbl->GetTrimming(This, options, trimming_sign) -#define IDWriteTextFormat3_GetFontCollection(This, collection) (This)->lpVtbl->GetFontCollection(This, collection) -#define IDWriteTextFormat3_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This) -#define IDWriteTextFormat3_GetFontFamilyName(This, name, size) (This)->lpVtbl->GetFontFamilyName(This, name, size) -#define IDWriteTextFormat3_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This) -#define IDWriteTextFormat3_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This) -#define IDWriteTextFormat3_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This) -#define IDWriteTextFormat3_GetFontSize(This) (This)->lpVtbl->GetFontSize(This) -#define IDWriteTextFormat3_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This) -#define IDWriteTextFormat3_GetLocaleName(This, name, size) (This)->lpVtbl->GetLocaleName(This, name, size) -/*** IDWriteTextFormat1 methods ***/ -#define IDWriteTextFormat3_SetVerticalGlyphOrientation(This, orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This, orientation) -#define IDWriteTextFormat3_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) -#define IDWriteTextFormat3_SetLastLineWrapping(This, lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled) -#define IDWriteTextFormat3_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) -#define IDWriteTextFormat3_SetOpticalAlignment(This, alignment) (This)->lpVtbl->SetOpticalAlignment(This, alignment) -#define IDWriteTextFormat3_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) -#define IDWriteTextFormat3_SetFontFallback(This, fallback) (This)->lpVtbl->SetFontFallback(This, fallback) -#define IDWriteTextFormat3_GetFontFallback(This, fallback) (This)->lpVtbl->GetFontFallback(This, fallback) -/*** IDWriteTextFormat2 methods ***/ -#define IDWriteTextFormat3_SetLineSpacing(This, spacing) (This)->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This, spacing) -#define IDWriteTextFormat3_GetLineSpacing(This, spacing) (This)->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This, spacing) -/*** IDWriteTextFormat3 methods ***/ -#define IDWriteTextFormat3_SetFontAxisValues(This, axis_values, num_values) (This)->lpVtbl->SetFontAxisValues(This, axis_values, num_values) -#define IDWriteTextFormat3_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This) -#define IDWriteTextFormat3_GetFontAxisValues(This, axis_values, num_values) (This)->lpVtbl->GetFontAxisValues(This, axis_values, num_values) -#define IDWriteTextFormat3_GetAutomaticFontAxes(This) (This)->lpVtbl->GetAutomaticFontAxes(This) -#define IDWriteTextFormat3_SetAutomaticFontAxes(This, axes) (This)->lpVtbl->SetAutomaticFontAxes(This, axes) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteTextFormat3_QueryInterface(IDWriteTextFormat3* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteTextFormat3_AddRef(IDWriteTextFormat3* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteTextFormat3_Release(IDWriteTextFormat3* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteTextFormat methods ***/ -static inline HRESULT IDWriteTextFormat3_SetTextAlignment(IDWriteTextFormat3* This, DWRITE_TEXT_ALIGNMENT alignment) { - return This->lpVtbl->SetTextAlignment(This, alignment); -} -static inline HRESULT IDWriteTextFormat3_SetParagraphAlignment(IDWriteTextFormat3* This, DWRITE_PARAGRAPH_ALIGNMENT alignment) { - return This->lpVtbl->SetParagraphAlignment(This, alignment); -} -static inline HRESULT IDWriteTextFormat3_SetWordWrapping(IDWriteTextFormat3* This, DWRITE_WORD_WRAPPING wrapping) { - return This->lpVtbl->SetWordWrapping(This, wrapping); -} -static inline HRESULT IDWriteTextFormat3_SetReadingDirection(IDWriteTextFormat3* This, DWRITE_READING_DIRECTION direction) { - return This->lpVtbl->SetReadingDirection(This, direction); -} -static inline HRESULT IDWriteTextFormat3_SetFlowDirection(IDWriteTextFormat3* This, DWRITE_FLOW_DIRECTION direction) { - return This->lpVtbl->SetFlowDirection(This, direction); -} -static inline HRESULT IDWriteTextFormat3_SetIncrementalTabStop(IDWriteTextFormat3* This, FLOAT tabstop) { - return This->lpVtbl->SetIncrementalTabStop(This, tabstop); -} -static inline HRESULT IDWriteTextFormat3_SetTrimming(IDWriteTextFormat3* This, const DWRITE_TRIMMING* trimming, IDWriteInlineObject* trimming_sign) { - return This->lpVtbl->SetTrimming(This, trimming, trimming_sign); -} -static inline DWRITE_TEXT_ALIGNMENT IDWriteTextFormat3_GetTextAlignment(IDWriteTextFormat3* This) { - return This->lpVtbl->GetTextAlignment(This); -} -static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat3_GetParagraphAlignment(IDWriteTextFormat3* This) { - return This->lpVtbl->GetParagraphAlignment(This); -} -static inline DWRITE_WORD_WRAPPING IDWriteTextFormat3_GetWordWrapping(IDWriteTextFormat3* This) { - return This->lpVtbl->GetWordWrapping(This); -} -static inline DWRITE_READING_DIRECTION IDWriteTextFormat3_GetReadingDirection(IDWriteTextFormat3* This) { - return This->lpVtbl->GetReadingDirection(This); -} -static inline DWRITE_FLOW_DIRECTION IDWriteTextFormat3_GetFlowDirection(IDWriteTextFormat3* This) { - return This->lpVtbl->GetFlowDirection(This); -} -static inline FLOAT IDWriteTextFormat3_GetIncrementalTabStop(IDWriteTextFormat3* This) { - return This->lpVtbl->GetIncrementalTabStop(This); -} -static inline HRESULT IDWriteTextFormat3_GetTrimming(IDWriteTextFormat3* This, DWRITE_TRIMMING* options, IDWriteInlineObject** trimming_sign) { - return This->lpVtbl->GetTrimming(This, options, trimming_sign); -} -static inline HRESULT IDWriteTextFormat3_GetFontCollection(IDWriteTextFormat3* This, IDWriteFontCollection** collection) { - return This->lpVtbl->GetFontCollection(This, collection); -} -static inline UINT32 IDWriteTextFormat3_GetFontFamilyNameLength(IDWriteTextFormat3* This) { - return This->lpVtbl->GetFontFamilyNameLength(This); -} -static inline HRESULT IDWriteTextFormat3_GetFontFamilyName(IDWriteTextFormat3* This, WCHAR* name, UINT32 size) { - return This->lpVtbl->GetFontFamilyName(This, name, size); -} -static inline DWRITE_FONT_WEIGHT IDWriteTextFormat3_GetFontWeight(IDWriteTextFormat3* This) { - return This->lpVtbl->GetFontWeight(This); -} -static inline DWRITE_FONT_STYLE IDWriteTextFormat3_GetFontStyle(IDWriteTextFormat3* This) { - return This->lpVtbl->GetFontStyle(This); -} -static inline DWRITE_FONT_STRETCH IDWriteTextFormat3_GetFontStretch(IDWriteTextFormat3* This) { - return This->lpVtbl->GetFontStretch(This); -} -static inline FLOAT IDWriteTextFormat3_GetFontSize(IDWriteTextFormat3* This) { - return This->lpVtbl->GetFontSize(This); -} -static inline UINT32 IDWriteTextFormat3_GetLocaleNameLength(IDWriteTextFormat3* This) { - return This->lpVtbl->GetLocaleNameLength(This); -} -static inline HRESULT IDWriteTextFormat3_GetLocaleName(IDWriteTextFormat3* This, WCHAR* name, UINT32 size) { - return This->lpVtbl->GetLocaleName(This, name, size); -} -/*** IDWriteTextFormat1 methods ***/ -static inline HRESULT IDWriteTextFormat3_SetVerticalGlyphOrientation(IDWriteTextFormat3* This, DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { - return This->lpVtbl->SetVerticalGlyphOrientation(This, orientation); -} -static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextFormat3_GetVerticalGlyphOrientation(IDWriteTextFormat3* This) { - return This->lpVtbl->GetVerticalGlyphOrientation(This); -} -static inline HRESULT IDWriteTextFormat3_SetLastLineWrapping(IDWriteTextFormat3* This, WINBOOL lastline_wrapping_enabled) { - return This->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled); -} -static inline WINBOOL IDWriteTextFormat3_GetLastLineWrapping(IDWriteTextFormat3* This) { - return This->lpVtbl->GetLastLineWrapping(This); -} -static inline HRESULT IDWriteTextFormat3_SetOpticalAlignment(IDWriteTextFormat3* This, DWRITE_OPTICAL_ALIGNMENT alignment) { - return This->lpVtbl->SetOpticalAlignment(This, alignment); -} -static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextFormat3_GetOpticalAlignment(IDWriteTextFormat3* This) { - return This->lpVtbl->GetOpticalAlignment(This); -} -static inline HRESULT IDWriteTextFormat3_SetFontFallback(IDWriteTextFormat3* This, IDWriteFontFallback* fallback) { - return This->lpVtbl->SetFontFallback(This, fallback); -} -static inline HRESULT IDWriteTextFormat3_GetFontFallback(IDWriteTextFormat3* This, IDWriteFontFallback** fallback) { - return This->lpVtbl->GetFontFallback(This, fallback); -} -/*** IDWriteTextFormat2 methods ***/ -static inline HRESULT IDWriteTextFormat3_SetLineSpacing(IDWriteTextFormat3* This, const DWRITE_LINE_SPACING* spacing) { - return This->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This, spacing); -} -static inline HRESULT IDWriteTextFormat3_GetLineSpacing(IDWriteTextFormat3* This, DWRITE_LINE_SPACING* spacing) { - return This->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This, spacing); -} -/*** IDWriteTextFormat3 methods ***/ -static inline HRESULT IDWriteTextFormat3_SetFontAxisValues(IDWriteTextFormat3* This, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values) { - return This->lpVtbl->SetFontAxisValues(This, axis_values, num_values); -} -static inline UINT32 IDWriteTextFormat3_GetFontAxisValueCount(IDWriteTextFormat3* This) { - return This->lpVtbl->GetFontAxisValueCount(This); -} -static inline HRESULT IDWriteTextFormat3_GetFontAxisValues(IDWriteTextFormat3* This, DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values) { - return This->lpVtbl->GetFontAxisValues(This, axis_values, num_values); -} -static inline DWRITE_AUTOMATIC_FONT_AXES IDWriteTextFormat3_GetAutomaticFontAxes(IDWriteTextFormat3* This) { - return This->lpVtbl->GetAutomaticFontAxes(This); -} -static inline HRESULT IDWriteTextFormat3_SetAutomaticFontAxes(IDWriteTextFormat3* This, DWRITE_AUTOMATIC_FONT_AXES axes) { - return This->lpVtbl->SetAutomaticFontAxes(This, axes); -} -#endif -#endif - -#endif - -#endif /* __IDWriteTextFormat3_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteTextLayout3 interface - */ -#ifndef __IDWriteTextLayout3_INTERFACE_DEFINED__ -#define __IDWriteTextLayout3_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteTextLayout3, 0x07ddcd52, 0x020e, 0x4de8, 0xac, 0x33, 0x6c, 0x95, 0x3d, 0x83, 0xf9, 0x2d); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("07ddcd52-020e-4de8-ac33-6c953d83f92d") -IDWriteTextLayout3 : public IDWriteTextLayout2 { - virtual HRESULT STDMETHODCALLTYPE InvalidateLayout() = 0; - - virtual HRESULT STDMETHODCALLTYPE SetLineSpacing( - const DWRITE_LINE_SPACING* spacing) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLineSpacing( - DWRITE_LINE_SPACING * spacing) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLineMetrics( - DWRITE_LINE_METRICS1 * metrics, - UINT32 max_count, - UINT32 * count) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextLayout3, 0x07ddcd52, 0x020e, 0x4de8, 0xac, 0x33, 0x6c, 0x95, 0x3d, 0x83, 0xf9, 0x2d) -#endif -#else -typedef struct IDWriteTextLayout3Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteTextLayout3* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteTextLayout3* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteTextLayout3* This); - - /*** IDWriteTextFormat methods ***/ - HRESULT(STDMETHODCALLTYPE* SetTextAlignment)( - IDWriteTextLayout3* This, - DWRITE_TEXT_ALIGNMENT alignment); - - HRESULT(STDMETHODCALLTYPE* SetParagraphAlignment)( - IDWriteTextLayout3* This, - DWRITE_PARAGRAPH_ALIGNMENT alignment); - - HRESULT(STDMETHODCALLTYPE* SetWordWrapping)( - IDWriteTextLayout3* This, - DWRITE_WORD_WRAPPING wrapping); - - HRESULT(STDMETHODCALLTYPE* SetReadingDirection)( - IDWriteTextLayout3* This, - DWRITE_READING_DIRECTION direction); - - HRESULT(STDMETHODCALLTYPE* SetFlowDirection)( - IDWriteTextLayout3* This, - DWRITE_FLOW_DIRECTION direction); - - HRESULT(STDMETHODCALLTYPE* SetIncrementalTabStop)( - IDWriteTextLayout3* This, - FLOAT tabstop); - - HRESULT(STDMETHODCALLTYPE* SetTrimming)( - IDWriteTextLayout3* This, - const DWRITE_TRIMMING* trimming, - IDWriteInlineObject* trimming_sign); - - HRESULT(STDMETHODCALLTYPE* SetLineSpacing)( - IDWriteTextLayout3* This, - DWRITE_LINE_SPACING_METHOD spacing, - FLOAT line_spacing, - FLOAT baseline); - - DWRITE_TEXT_ALIGNMENT(STDMETHODCALLTYPE* GetTextAlignment)( - IDWriteTextLayout3* This); - - DWRITE_PARAGRAPH_ALIGNMENT(STDMETHODCALLTYPE* GetParagraphAlignment)( - IDWriteTextLayout3* This); - - DWRITE_WORD_WRAPPING(STDMETHODCALLTYPE* GetWordWrapping)( - IDWriteTextLayout3* This); - - DWRITE_READING_DIRECTION(STDMETHODCALLTYPE* GetReadingDirection)( - IDWriteTextLayout3* This); - - DWRITE_FLOW_DIRECTION(STDMETHODCALLTYPE* GetFlowDirection)( - IDWriteTextLayout3* This); - - FLOAT(STDMETHODCALLTYPE* GetIncrementalTabStop)( - IDWriteTextLayout3* This); - - HRESULT(STDMETHODCALLTYPE* GetTrimming)( - IDWriteTextLayout3* This, - DWRITE_TRIMMING* options, - IDWriteInlineObject** trimming_sign); - - HRESULT(STDMETHODCALLTYPE* GetLineSpacing)( - IDWriteTextLayout3* This, - DWRITE_LINE_SPACING_METHOD* method, - FLOAT* spacing, - FLOAT* baseline); - - HRESULT(STDMETHODCALLTYPE* GetFontCollection)( - IDWriteTextLayout3* This, - IDWriteFontCollection** collection); - - UINT32(STDMETHODCALLTYPE* GetFontFamilyNameLength)( - IDWriteTextLayout3* This); - - HRESULT(STDMETHODCALLTYPE* GetFontFamilyName)( - IDWriteTextLayout3* This, - WCHAR* name, - UINT32 size); - - DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetFontWeight)( - IDWriteTextLayout3* This); - - DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetFontStyle)( - IDWriteTextLayout3* This); - - DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetFontStretch)( - IDWriteTextLayout3* This); - - FLOAT(STDMETHODCALLTYPE* GetFontSize)( - IDWriteTextLayout3* This); - - UINT32(STDMETHODCALLTYPE* GetLocaleNameLength)( - IDWriteTextLayout3* This); - - HRESULT(STDMETHODCALLTYPE* GetLocaleName)( - IDWriteTextLayout3* This, - WCHAR* name, - UINT32 size); - - /*** IDWriteTextLayout methods ***/ - HRESULT(STDMETHODCALLTYPE* SetMaxWidth)( - IDWriteTextLayout3* This, - FLOAT maxWidth); - - HRESULT(STDMETHODCALLTYPE* SetMaxHeight)( - IDWriteTextLayout3* This, - FLOAT maxHeight); - - HRESULT(STDMETHODCALLTYPE* SetFontCollection)( - IDWriteTextLayout3* This, - IDWriteFontCollection* collection, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetFontFamilyName)( - IDWriteTextLayout3* This, - const WCHAR* name, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetFontWeight)( - IDWriteTextLayout3* This, - DWRITE_FONT_WEIGHT weight, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetFontStyle)( - IDWriteTextLayout3* This, - DWRITE_FONT_STYLE style, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetFontStretch)( - IDWriteTextLayout3* This, - DWRITE_FONT_STRETCH stretch, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetFontSize)( - IDWriteTextLayout3* This, - FLOAT size, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetUnderline)( - IDWriteTextLayout3* This, - WINBOOL underline, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetStrikethrough)( - IDWriteTextLayout3* This, - WINBOOL strikethrough, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetDrawingEffect)( - IDWriteTextLayout3* This, - IUnknown* effect, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetInlineObject)( - IDWriteTextLayout3* This, - IDWriteInlineObject* object, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetTypography)( - IDWriteTextLayout3* This, - IDWriteTypography* typography, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetLocaleName)( - IDWriteTextLayout3* This, - const WCHAR* locale, - DWRITE_TEXT_RANGE range); - - FLOAT(STDMETHODCALLTYPE* GetMaxWidth)( - IDWriteTextLayout3* This); - - FLOAT(STDMETHODCALLTYPE* GetMaxHeight)( - IDWriteTextLayout3* This); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontCollection)( - IDWriteTextLayout3* This, - UINT32 pos, - IDWriteFontCollection** collection, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontFamilyNameLength)( - IDWriteTextLayout3* This, - UINT32 pos, - UINT32* len, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontFamilyName)( - IDWriteTextLayout3* This, - UINT32 position, - WCHAR* name, - UINT32 name_size, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontWeight)( - IDWriteTextLayout3* This, - UINT32 position, - DWRITE_FONT_WEIGHT* weight, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontStyle)( - IDWriteTextLayout3* This, - UINT32 currentPosition, - DWRITE_FONT_STYLE* style, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontStretch)( - IDWriteTextLayout3* This, - UINT32 position, - DWRITE_FONT_STRETCH* stretch, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontSize)( - IDWriteTextLayout3* This, - UINT32 position, - FLOAT* size, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* GetUnderline)( - IDWriteTextLayout3* This, - UINT32 position, - WINBOOL* has_underline, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* GetStrikethrough)( - IDWriteTextLayout3* This, - UINT32 position, - WINBOOL* has_strikethrough, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* GetDrawingEffect)( - IDWriteTextLayout3* This, - UINT32 position, - IUnknown** effect, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* GetInlineObject)( - IDWriteTextLayout3* This, - UINT32 position, - IDWriteInlineObject** object, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* GetTypography)( - IDWriteTextLayout3* This, - UINT32 position, - IDWriteTypography** typography, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetLocaleNameLength)( - IDWriteTextLayout3* This, - UINT32 position, - UINT32* length, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetLocaleName)( - IDWriteTextLayout3* This, - UINT32 position, - WCHAR* name, - UINT32 name_size, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* Draw)( - IDWriteTextLayout3* This, - void* context, - IDWriteTextRenderer* renderer, - FLOAT originX, - FLOAT originY); - - HRESULT(STDMETHODCALLTYPE* GetLineMetrics)( - IDWriteTextLayout3* This, - DWRITE_LINE_METRICS* metrics, - UINT32 max_count, - UINT32* actual_count); - - HRESULT(STDMETHODCALLTYPE* GetMetrics)( - IDWriteTextLayout3* This, - DWRITE_TEXT_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* GetOverhangMetrics)( - IDWriteTextLayout3* This, - DWRITE_OVERHANG_METRICS* overhangs); - - HRESULT(STDMETHODCALLTYPE* GetClusterMetrics)( - IDWriteTextLayout3* This, - DWRITE_CLUSTER_METRICS* metrics, - UINT32 max_count, - UINT32* act_count); - - HRESULT(STDMETHODCALLTYPE* DetermineMinWidth)( - IDWriteTextLayout3* This, - FLOAT* min_width); - - HRESULT(STDMETHODCALLTYPE* HitTestPoint)( - IDWriteTextLayout3* This, - FLOAT pointX, - FLOAT pointY, - WINBOOL* is_trailinghit, - WINBOOL* is_inside, - DWRITE_HIT_TEST_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* HitTestTextPosition)( - IDWriteTextLayout3* This, - UINT32 textPosition, - WINBOOL is_trailinghit, - FLOAT* pointX, - FLOAT* pointY, - DWRITE_HIT_TEST_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* HitTestTextRange)( - IDWriteTextLayout3* This, - UINT32 textPosition, - UINT32 textLength, - FLOAT originX, - FLOAT originY, - DWRITE_HIT_TEST_METRICS* metrics, - UINT32 max_metricscount, - UINT32* actual_metricscount); - - /*** IDWriteTextLayout1 methods ***/ - HRESULT(STDMETHODCALLTYPE* SetPairKerning)( - IDWriteTextLayout3* This, - WINBOOL is_pairkerning_enabled, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* GetPairKerning)( - IDWriteTextLayout3* This, - UINT32 position, - WINBOOL* is_pairkerning_enabled, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* SetCharacterSpacing)( - IDWriteTextLayout3* This, - FLOAT leading_spacing, - FLOAT trailing_spacing, - FLOAT minimum_advance_width, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* GetCharacterSpacing)( - IDWriteTextLayout3* This, - UINT32 position, - FLOAT* leading_spacing, - FLOAT* trailing_spacing, - FLOAT* minimum_advance_width, - DWRITE_TEXT_RANGE* range); - - /*** IDWriteTextLayout2 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout2_GetMetrics)( - IDWriteTextLayout3* This, - DWRITE_TEXT_METRICS1* metrics); - - HRESULT(STDMETHODCALLTYPE* SetVerticalGlyphOrientation)( - IDWriteTextLayout3* This, - DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); - - DWRITE_VERTICAL_GLYPH_ORIENTATION(STDMETHODCALLTYPE* GetVerticalGlyphOrientation)( - IDWriteTextLayout3* This); - - HRESULT(STDMETHODCALLTYPE* SetLastLineWrapping)( - IDWriteTextLayout3* This, - WINBOOL lastline_wrapping_enabled); - - WINBOOL(STDMETHODCALLTYPE* GetLastLineWrapping)( - IDWriteTextLayout3* This); - - HRESULT(STDMETHODCALLTYPE* SetOpticalAlignment)( - IDWriteTextLayout3* This, - DWRITE_OPTICAL_ALIGNMENT alignment); - - DWRITE_OPTICAL_ALIGNMENT(STDMETHODCALLTYPE* GetOpticalAlignment)( - IDWriteTextLayout3* This); - - HRESULT(STDMETHODCALLTYPE* SetFontFallback)( - IDWriteTextLayout3* This, - IDWriteFontFallback* fallback); - - HRESULT(STDMETHODCALLTYPE* GetFontFallback)( - IDWriteTextLayout3* This, - IDWriteFontFallback** fallback); - - /*** IDWriteTextLayout3 methods ***/ - HRESULT(STDMETHODCALLTYPE* InvalidateLayout)( - IDWriteTextLayout3* This); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout3_SetLineSpacing)( - IDWriteTextLayout3* This, - const DWRITE_LINE_SPACING* spacing); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout3_GetLineSpacing)( - IDWriteTextLayout3* This, - DWRITE_LINE_SPACING* spacing); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout3_GetLineMetrics)( - IDWriteTextLayout3* This, - DWRITE_LINE_METRICS1* metrics, - UINT32 max_count, - UINT32* count); - - END_INTERFACE -} IDWriteTextLayout3Vtbl; - -interface IDWriteTextLayout3 { - CONST_VTBL IDWriteTextLayout3Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteTextLayout3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteTextLayout3_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteTextLayout3_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteTextFormat methods ***/ -#define IDWriteTextLayout3_SetTextAlignment(This, alignment) (This)->lpVtbl->SetTextAlignment(This, alignment) -#define IDWriteTextLayout3_SetParagraphAlignment(This, alignment) (This)->lpVtbl->SetParagraphAlignment(This, alignment) -#define IDWriteTextLayout3_SetWordWrapping(This, wrapping) (This)->lpVtbl->SetWordWrapping(This, wrapping) -#define IDWriteTextLayout3_SetReadingDirection(This, direction) (This)->lpVtbl->SetReadingDirection(This, direction) -#define IDWriteTextLayout3_SetFlowDirection(This, direction) (This)->lpVtbl->SetFlowDirection(This, direction) -#define IDWriteTextLayout3_SetIncrementalTabStop(This, tabstop) (This)->lpVtbl->SetIncrementalTabStop(This, tabstop) -#define IDWriteTextLayout3_SetTrimming(This, trimming, trimming_sign) (This)->lpVtbl->SetTrimming(This, trimming, trimming_sign) -#define IDWriteTextLayout3_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) -#define IDWriteTextLayout3_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) -#define IDWriteTextLayout3_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) -#define IDWriteTextLayout3_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) -#define IDWriteTextLayout3_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) -#define IDWriteTextLayout3_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) -#define IDWriteTextLayout3_GetTrimming(This, options, trimming_sign) (This)->lpVtbl->GetTrimming(This, options, trimming_sign) -/*** IDWriteTextLayout methods ***/ -#define IDWriteTextLayout3_SetMaxWidth(This, maxWidth) (This)->lpVtbl->SetMaxWidth(This, maxWidth) -#define IDWriteTextLayout3_SetMaxHeight(This, maxHeight) (This)->lpVtbl->SetMaxHeight(This, maxHeight) -#define IDWriteTextLayout3_SetFontCollection(This, collection, range) (This)->lpVtbl->SetFontCollection(This, collection, range) -#define IDWriteTextLayout3_SetFontFamilyName(This, name, range) (This)->lpVtbl->SetFontFamilyName(This, name, range) -#define IDWriteTextLayout3_SetFontWeight(This, weight, range) (This)->lpVtbl->SetFontWeight(This, weight, range) -#define IDWriteTextLayout3_SetFontStyle(This, style, range) (This)->lpVtbl->SetFontStyle(This, style, range) -#define IDWriteTextLayout3_SetFontStretch(This, stretch, range) (This)->lpVtbl->SetFontStretch(This, stretch, range) -#define IDWriteTextLayout3_SetFontSize(This, size, range) (This)->lpVtbl->SetFontSize(This, size, range) -#define IDWriteTextLayout3_SetUnderline(This, underline, range) (This)->lpVtbl->SetUnderline(This, underline, range) -#define IDWriteTextLayout3_SetStrikethrough(This, strikethrough, range) (This)->lpVtbl->SetStrikethrough(This, strikethrough, range) -#define IDWriteTextLayout3_SetDrawingEffect(This, effect, range) (This)->lpVtbl->SetDrawingEffect(This, effect, range) -#define IDWriteTextLayout3_SetInlineObject(This, object, range) (This)->lpVtbl->SetInlineObject(This, object, range) -#define IDWriteTextLayout3_SetTypography(This, typography, range) (This)->lpVtbl->SetTypography(This, typography, range) -#define IDWriteTextLayout3_SetLocaleName(This, locale, range) (This)->lpVtbl->SetLocaleName(This, locale, range) -#define IDWriteTextLayout3_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This) -#define IDWriteTextLayout3_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This) -#define IDWriteTextLayout3_GetFontCollection(This, pos, collection, range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This, pos, collection, range) -#define IDWriteTextLayout3_GetFontFamilyNameLength(This, pos, len, range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This, pos, len, range) -#define IDWriteTextLayout3_GetFontFamilyName(This, position, name, name_size, range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This, position, name, name_size, range) -#define IDWriteTextLayout3_GetFontWeight(This, position, weight, range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This, position, weight, range) -#define IDWriteTextLayout3_GetFontStyle(This, currentPosition, style, range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This, currentPosition, style, range) -#define IDWriteTextLayout3_GetFontStretch(This, position, stretch, range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This, position, stretch, range) -#define IDWriteTextLayout3_GetFontSize(This, position, size, range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This, position, size, range) -#define IDWriteTextLayout3_GetUnderline(This, position, has_underline, range) (This)->lpVtbl->GetUnderline(This, position, has_underline, range) -#define IDWriteTextLayout3_GetStrikethrough(This, position, has_strikethrough, range) (This)->lpVtbl->GetStrikethrough(This, position, has_strikethrough, range) -#define IDWriteTextLayout3_GetDrawingEffect(This, position, effect, range) (This)->lpVtbl->GetDrawingEffect(This, position, effect, range) -#define IDWriteTextLayout3_GetInlineObject(This, position, object, range) (This)->lpVtbl->GetInlineObject(This, position, object, range) -#define IDWriteTextLayout3_GetTypography(This, position, typography, range) (This)->lpVtbl->GetTypography(This, position, typography, range) -#define IDWriteTextLayout3_GetLocaleNameLength(This, position, length, range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This, position, length, range) -#define IDWriteTextLayout3_GetLocaleName(This, position, name, name_size, range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This, position, name, name_size, range) -#define IDWriteTextLayout3_Draw(This, context, renderer, originX, originY) (This)->lpVtbl->Draw(This, context, renderer, originX, originY) -#define IDWriteTextLayout3_GetOverhangMetrics(This, overhangs) (This)->lpVtbl->GetOverhangMetrics(This, overhangs) -#define IDWriteTextLayout3_GetClusterMetrics(This, metrics, max_count, act_count) (This)->lpVtbl->GetClusterMetrics(This, metrics, max_count, act_count) -#define IDWriteTextLayout3_DetermineMinWidth(This, min_width) (This)->lpVtbl->DetermineMinWidth(This, min_width) -#define IDWriteTextLayout3_HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics) (This)->lpVtbl->HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics) -#define IDWriteTextLayout3_HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics) (This)->lpVtbl->HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics) -#define IDWriteTextLayout3_HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount) (This)->lpVtbl->HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount) -/*** IDWriteTextLayout1 methods ***/ -#define IDWriteTextLayout3_SetPairKerning(This, is_pairkerning_enabled, range) (This)->lpVtbl->SetPairKerning(This, is_pairkerning_enabled, range) -#define IDWriteTextLayout3_GetPairKerning(This, position, is_pairkerning_enabled, range) (This)->lpVtbl->GetPairKerning(This, position, is_pairkerning_enabled, range) -#define IDWriteTextLayout3_SetCharacterSpacing(This, leading_spacing, trailing_spacing, minimum_advance_width, range) (This)->lpVtbl->SetCharacterSpacing(This, leading_spacing, trailing_spacing, minimum_advance_width, range) -#define IDWriteTextLayout3_GetCharacterSpacing(This, position, leading_spacing, trailing_spacing, minimum_advance_width, range) (This)->lpVtbl->GetCharacterSpacing(This, position, leading_spacing, trailing_spacing, minimum_advance_width, range) -/*** IDWriteTextLayout2 methods ***/ -#define IDWriteTextLayout3_GetMetrics(This, metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This, metrics) -#define IDWriteTextLayout3_SetVerticalGlyphOrientation(This, orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This, orientation) -#define IDWriteTextLayout3_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) -#define IDWriteTextLayout3_SetLastLineWrapping(This, lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled) -#define IDWriteTextLayout3_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) -#define IDWriteTextLayout3_SetOpticalAlignment(This, alignment) (This)->lpVtbl->SetOpticalAlignment(This, alignment) -#define IDWriteTextLayout3_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) -#define IDWriteTextLayout3_SetFontFallback(This, fallback) (This)->lpVtbl->SetFontFallback(This, fallback) -#define IDWriteTextLayout3_GetFontFallback(This, fallback) (This)->lpVtbl->GetFontFallback(This, fallback) -/*** IDWriteTextLayout3 methods ***/ -#define IDWriteTextLayout3_InvalidateLayout(This) (This)->lpVtbl->InvalidateLayout(This) -#define IDWriteTextLayout3_SetLineSpacing(This, spacing) (This)->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This, spacing) -#define IDWriteTextLayout3_GetLineSpacing(This, spacing) (This)->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This, spacing) -#define IDWriteTextLayout3_GetLineMetrics(This, metrics, max_count, count) (This)->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This, metrics, max_count, count) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteTextLayout3_QueryInterface(IDWriteTextLayout3* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteTextLayout3_AddRef(IDWriteTextLayout3* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteTextLayout3_Release(IDWriteTextLayout3* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteTextFormat methods ***/ -static inline HRESULT IDWriteTextLayout3_SetTextAlignment(IDWriteTextLayout3* This, DWRITE_TEXT_ALIGNMENT alignment) { - return This->lpVtbl->SetTextAlignment(This, alignment); -} -static inline HRESULT IDWriteTextLayout3_SetParagraphAlignment(IDWriteTextLayout3* This, DWRITE_PARAGRAPH_ALIGNMENT alignment) { - return This->lpVtbl->SetParagraphAlignment(This, alignment); -} -static inline HRESULT IDWriteTextLayout3_SetWordWrapping(IDWriteTextLayout3* This, DWRITE_WORD_WRAPPING wrapping) { - return This->lpVtbl->SetWordWrapping(This, wrapping); -} -static inline HRESULT IDWriteTextLayout3_SetReadingDirection(IDWriteTextLayout3* This, DWRITE_READING_DIRECTION direction) { - return This->lpVtbl->SetReadingDirection(This, direction); -} -static inline HRESULT IDWriteTextLayout3_SetFlowDirection(IDWriteTextLayout3* This, DWRITE_FLOW_DIRECTION direction) { - return This->lpVtbl->SetFlowDirection(This, direction); -} -static inline HRESULT IDWriteTextLayout3_SetIncrementalTabStop(IDWriteTextLayout3* This, FLOAT tabstop) { - return This->lpVtbl->SetIncrementalTabStop(This, tabstop); -} -static inline HRESULT IDWriteTextLayout3_SetTrimming(IDWriteTextLayout3* This, const DWRITE_TRIMMING* trimming, IDWriteInlineObject* trimming_sign) { - return This->lpVtbl->SetTrimming(This, trimming, trimming_sign); -} -static inline DWRITE_TEXT_ALIGNMENT IDWriteTextLayout3_GetTextAlignment(IDWriteTextLayout3* This) { - return This->lpVtbl->GetTextAlignment(This); -} -static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout3_GetParagraphAlignment(IDWriteTextLayout3* This) { - return This->lpVtbl->GetParagraphAlignment(This); -} -static inline DWRITE_WORD_WRAPPING IDWriteTextLayout3_GetWordWrapping(IDWriteTextLayout3* This) { - return This->lpVtbl->GetWordWrapping(This); -} -static inline DWRITE_READING_DIRECTION IDWriteTextLayout3_GetReadingDirection(IDWriteTextLayout3* This) { - return This->lpVtbl->GetReadingDirection(This); -} -static inline DWRITE_FLOW_DIRECTION IDWriteTextLayout3_GetFlowDirection(IDWriteTextLayout3* This) { - return This->lpVtbl->GetFlowDirection(This); -} -static inline FLOAT IDWriteTextLayout3_GetIncrementalTabStop(IDWriteTextLayout3* This) { - return This->lpVtbl->GetIncrementalTabStop(This); -} -static inline HRESULT IDWriteTextLayout3_GetTrimming(IDWriteTextLayout3* This, DWRITE_TRIMMING* options, IDWriteInlineObject** trimming_sign) { - return This->lpVtbl->GetTrimming(This, options, trimming_sign); -} -/*** IDWriteTextLayout methods ***/ -static inline HRESULT IDWriteTextLayout3_SetMaxWidth(IDWriteTextLayout3* This, FLOAT maxWidth) { - return This->lpVtbl->SetMaxWidth(This, maxWidth); -} -static inline HRESULT IDWriteTextLayout3_SetMaxHeight(IDWriteTextLayout3* This, FLOAT maxHeight) { - return This->lpVtbl->SetMaxHeight(This, maxHeight); -} -static inline HRESULT IDWriteTextLayout3_SetFontCollection(IDWriteTextLayout3* This, IDWriteFontCollection* collection, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontCollection(This, collection, range); -} -static inline HRESULT IDWriteTextLayout3_SetFontFamilyName(IDWriteTextLayout3* This, const WCHAR* name, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontFamilyName(This, name, range); -} -static inline HRESULT IDWriteTextLayout3_SetFontWeight(IDWriteTextLayout3* This, DWRITE_FONT_WEIGHT weight, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontWeight(This, weight, range); -} -static inline HRESULT IDWriteTextLayout3_SetFontStyle(IDWriteTextLayout3* This, DWRITE_FONT_STYLE style, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontStyle(This, style, range); -} -static inline HRESULT IDWriteTextLayout3_SetFontStretch(IDWriteTextLayout3* This, DWRITE_FONT_STRETCH stretch, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontStretch(This, stretch, range); -} -static inline HRESULT IDWriteTextLayout3_SetFontSize(IDWriteTextLayout3* This, FLOAT size, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontSize(This, size, range); -} -static inline HRESULT IDWriteTextLayout3_SetUnderline(IDWriteTextLayout3* This, WINBOOL underline, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetUnderline(This, underline, range); -} -static inline HRESULT IDWriteTextLayout3_SetStrikethrough(IDWriteTextLayout3* This, WINBOOL strikethrough, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetStrikethrough(This, strikethrough, range); -} -static inline HRESULT IDWriteTextLayout3_SetDrawingEffect(IDWriteTextLayout3* This, IUnknown* effect, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetDrawingEffect(This, effect, range); -} -static inline HRESULT IDWriteTextLayout3_SetInlineObject(IDWriteTextLayout3* This, IDWriteInlineObject* object, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetInlineObject(This, object, range); -} -static inline HRESULT IDWriteTextLayout3_SetTypography(IDWriteTextLayout3* This, IDWriteTypography* typography, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetTypography(This, typography, range); -} -static inline HRESULT IDWriteTextLayout3_SetLocaleName(IDWriteTextLayout3* This, const WCHAR* locale, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetLocaleName(This, locale, range); -} -static inline FLOAT IDWriteTextLayout3_GetMaxWidth(IDWriteTextLayout3* This) { - return This->lpVtbl->GetMaxWidth(This); -} -static inline FLOAT IDWriteTextLayout3_GetMaxHeight(IDWriteTextLayout3* This) { - return This->lpVtbl->GetMaxHeight(This); -} -static inline HRESULT IDWriteTextLayout3_GetFontCollection(IDWriteTextLayout3* This, UINT32 pos, IDWriteFontCollection** collection, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This, pos, collection, range); -} -static inline HRESULT IDWriteTextLayout3_GetFontFamilyNameLength(IDWriteTextLayout3* This, UINT32 pos, UINT32* len, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This, pos, len, range); -} -static inline HRESULT IDWriteTextLayout3_GetFontFamilyName(IDWriteTextLayout3* This, UINT32 position, WCHAR* name, UINT32 name_size, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This, position, name, name_size, range); -} -static inline HRESULT IDWriteTextLayout3_GetFontWeight(IDWriteTextLayout3* This, UINT32 position, DWRITE_FONT_WEIGHT* weight, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This, position, weight, range); -} -static inline HRESULT IDWriteTextLayout3_GetFontStyle(IDWriteTextLayout3* This, UINT32 currentPosition, DWRITE_FONT_STYLE* style, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This, currentPosition, style, range); -} -static inline HRESULT IDWriteTextLayout3_GetFontStretch(IDWriteTextLayout3* This, UINT32 position, DWRITE_FONT_STRETCH* stretch, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This, position, stretch, range); -} -static inline HRESULT IDWriteTextLayout3_GetFontSize(IDWriteTextLayout3* This, UINT32 position, FLOAT* size, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontSize(This, position, size, range); -} -static inline HRESULT IDWriteTextLayout3_GetUnderline(IDWriteTextLayout3* This, UINT32 position, WINBOOL* has_underline, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetUnderline(This, position, has_underline, range); -} -static inline HRESULT IDWriteTextLayout3_GetStrikethrough(IDWriteTextLayout3* This, UINT32 position, WINBOOL* has_strikethrough, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetStrikethrough(This, position, has_strikethrough, range); -} -static inline HRESULT IDWriteTextLayout3_GetDrawingEffect(IDWriteTextLayout3* This, UINT32 position, IUnknown** effect, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetDrawingEffect(This, position, effect, range); -} -static inline HRESULT IDWriteTextLayout3_GetInlineObject(IDWriteTextLayout3* This, UINT32 position, IDWriteInlineObject** object, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetInlineObject(This, position, object, range); -} -static inline HRESULT IDWriteTextLayout3_GetTypography(IDWriteTextLayout3* This, UINT32 position, IDWriteTypography** typography, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetTypography(This, position, typography, range); -} -static inline HRESULT IDWriteTextLayout3_GetLocaleNameLength(IDWriteTextLayout3* This, UINT32 position, UINT32* length, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This, position, length, range); -} -static inline HRESULT IDWriteTextLayout3_GetLocaleName(IDWriteTextLayout3* This, UINT32 position, WCHAR* name, UINT32 name_size, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This, position, name, name_size, range); -} -static inline HRESULT IDWriteTextLayout3_Draw(IDWriteTextLayout3* This, void* context, IDWriteTextRenderer* renderer, FLOAT originX, FLOAT originY) { - return This->lpVtbl->Draw(This, context, renderer, originX, originY); -} -static inline HRESULT IDWriteTextLayout3_GetOverhangMetrics(IDWriteTextLayout3* This, DWRITE_OVERHANG_METRICS* overhangs) { - return This->lpVtbl->GetOverhangMetrics(This, overhangs); -} -static inline HRESULT IDWriteTextLayout3_GetClusterMetrics(IDWriteTextLayout3* This, DWRITE_CLUSTER_METRICS* metrics, UINT32 max_count, UINT32* act_count) { - return This->lpVtbl->GetClusterMetrics(This, metrics, max_count, act_count); -} -static inline HRESULT IDWriteTextLayout3_DetermineMinWidth(IDWriteTextLayout3* This, FLOAT* min_width) { - return This->lpVtbl->DetermineMinWidth(This, min_width); -} -static inline HRESULT IDWriteTextLayout3_HitTestPoint(IDWriteTextLayout3* This, FLOAT pointX, FLOAT pointY, WINBOOL* is_trailinghit, WINBOOL* is_inside, DWRITE_HIT_TEST_METRICS* metrics) { - return This->lpVtbl->HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics); -} -static inline HRESULT IDWriteTextLayout3_HitTestTextPosition(IDWriteTextLayout3* This, UINT32 textPosition, WINBOOL is_trailinghit, FLOAT* pointX, FLOAT* pointY, DWRITE_HIT_TEST_METRICS* metrics) { - return This->lpVtbl->HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics); -} -static inline HRESULT IDWriteTextLayout3_HitTestTextRange(IDWriteTextLayout3* This, UINT32 textPosition, UINT32 textLength, FLOAT originX, FLOAT originY, DWRITE_HIT_TEST_METRICS* metrics, UINT32 max_metricscount, UINT32* actual_metricscount) { - return This->lpVtbl->HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount); -} -/*** IDWriteTextLayout1 methods ***/ -static inline HRESULT IDWriteTextLayout3_SetPairKerning(IDWriteTextLayout3* This, WINBOOL is_pairkerning_enabled, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetPairKerning(This, is_pairkerning_enabled, range); -} -static inline HRESULT IDWriteTextLayout3_GetPairKerning(IDWriteTextLayout3* This, UINT32 position, WINBOOL* is_pairkerning_enabled, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetPairKerning(This, position, is_pairkerning_enabled, range); -} -static inline HRESULT IDWriteTextLayout3_SetCharacterSpacing(IDWriteTextLayout3* This, FLOAT leading_spacing, FLOAT trailing_spacing, FLOAT minimum_advance_width, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetCharacterSpacing(This, leading_spacing, trailing_spacing, minimum_advance_width, range); -} -static inline HRESULT IDWriteTextLayout3_GetCharacterSpacing(IDWriteTextLayout3* This, UINT32 position, FLOAT* leading_spacing, FLOAT* trailing_spacing, FLOAT* minimum_advance_width, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetCharacterSpacing(This, position, leading_spacing, trailing_spacing, minimum_advance_width, range); -} -/*** IDWriteTextLayout2 methods ***/ -static inline HRESULT IDWriteTextLayout3_GetMetrics(IDWriteTextLayout3* This, DWRITE_TEXT_METRICS1* metrics) { - return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This, metrics); -} -static inline HRESULT IDWriteTextLayout3_SetVerticalGlyphOrientation(IDWriteTextLayout3* This, DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { - return This->lpVtbl->SetVerticalGlyphOrientation(This, orientation); -} -static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextLayout3_GetVerticalGlyphOrientation(IDWriteTextLayout3* This) { - return This->lpVtbl->GetVerticalGlyphOrientation(This); -} -static inline HRESULT IDWriteTextLayout3_SetLastLineWrapping(IDWriteTextLayout3* This, WINBOOL lastline_wrapping_enabled) { - return This->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled); -} -static inline WINBOOL IDWriteTextLayout3_GetLastLineWrapping(IDWriteTextLayout3* This) { - return This->lpVtbl->GetLastLineWrapping(This); -} -static inline HRESULT IDWriteTextLayout3_SetOpticalAlignment(IDWriteTextLayout3* This, DWRITE_OPTICAL_ALIGNMENT alignment) { - return This->lpVtbl->SetOpticalAlignment(This, alignment); -} -static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextLayout3_GetOpticalAlignment(IDWriteTextLayout3* This) { - return This->lpVtbl->GetOpticalAlignment(This); -} -static inline HRESULT IDWriteTextLayout3_SetFontFallback(IDWriteTextLayout3* This, IDWriteFontFallback* fallback) { - return This->lpVtbl->SetFontFallback(This, fallback); -} -static inline HRESULT IDWriteTextLayout3_GetFontFallback(IDWriteTextLayout3* This, IDWriteFontFallback** fallback) { - return This->lpVtbl->GetFontFallback(This, fallback); -} -/*** IDWriteTextLayout3 methods ***/ -static inline HRESULT IDWriteTextLayout3_InvalidateLayout(IDWriteTextLayout3* This) { - return This->lpVtbl->InvalidateLayout(This); -} -static inline HRESULT IDWriteTextLayout3_SetLineSpacing(IDWriteTextLayout3* This, const DWRITE_LINE_SPACING* spacing) { - return This->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This, spacing); -} -static inline HRESULT IDWriteTextLayout3_GetLineSpacing(IDWriteTextLayout3* This, DWRITE_LINE_SPACING* spacing) { - return This->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This, spacing); -} -static inline HRESULT IDWriteTextLayout3_GetLineMetrics(IDWriteTextLayout3* This, DWRITE_LINE_METRICS1* metrics, UINT32 max_count, UINT32* count) { - return This->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This, metrics, max_count, count); -} -#endif -#endif - -#endif - -#endif /* __IDWriteTextLayout3_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteTextLayout4 interface - */ -#ifndef __IDWriteTextLayout4_INTERFACE_DEFINED__ -#define __IDWriteTextLayout4_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteTextLayout4, 0x05a9bf42, 0x223f, 0x4441, 0xb5, 0xfb, 0x82, 0x63, 0x68, 0x5f, 0x55, 0xe9); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("05a9bf42-223f-4441-b5fb-8263685f55e9") -IDWriteTextLayout4 : public IDWriteTextLayout3 { - virtual HRESULT STDMETHODCALLTYPE SetFontAxisValues( - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values, - DWRITE_TEXT_RANGE range) = 0; - - virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount( - UINT32 pos) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues( - UINT32 pos, - DWRITE_FONT_AXIS_VALUE * values, - UINT32 num_values, - DWRITE_TEXT_RANGE * range) = 0; - - virtual DWRITE_AUTOMATIC_FONT_AXES STDMETHODCALLTYPE GetAutomaticFontAxes() = 0; - - virtual HRESULT STDMETHODCALLTYPE SetAutomaticFontAxes( - DWRITE_AUTOMATIC_FONT_AXES axes) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteTextLayout4, 0x05a9bf42, 0x223f, 0x4441, 0xb5, 0xfb, 0x82, 0x63, 0x68, 0x5f, 0x55, 0xe9) -#endif -#else -typedef struct IDWriteTextLayout4Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteTextLayout4* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteTextLayout4* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteTextLayout4* This); - - /*** IDWriteTextFormat methods ***/ - HRESULT(STDMETHODCALLTYPE* SetTextAlignment)( - IDWriteTextLayout4* This, - DWRITE_TEXT_ALIGNMENT alignment); - - HRESULT(STDMETHODCALLTYPE* SetParagraphAlignment)( - IDWriteTextLayout4* This, - DWRITE_PARAGRAPH_ALIGNMENT alignment); - - HRESULT(STDMETHODCALLTYPE* SetWordWrapping)( - IDWriteTextLayout4* This, - DWRITE_WORD_WRAPPING wrapping); - - HRESULT(STDMETHODCALLTYPE* SetReadingDirection)( - IDWriteTextLayout4* This, - DWRITE_READING_DIRECTION direction); - - HRESULT(STDMETHODCALLTYPE* SetFlowDirection)( - IDWriteTextLayout4* This, - DWRITE_FLOW_DIRECTION direction); - - HRESULT(STDMETHODCALLTYPE* SetIncrementalTabStop)( - IDWriteTextLayout4* This, - FLOAT tabstop); - - HRESULT(STDMETHODCALLTYPE* SetTrimming)( - IDWriteTextLayout4* This, - const DWRITE_TRIMMING* trimming, - IDWriteInlineObject* trimming_sign); - - HRESULT(STDMETHODCALLTYPE* SetLineSpacing)( - IDWriteTextLayout4* This, - DWRITE_LINE_SPACING_METHOD spacing, - FLOAT line_spacing, - FLOAT baseline); - - DWRITE_TEXT_ALIGNMENT(STDMETHODCALLTYPE* GetTextAlignment)( - IDWriteTextLayout4* This); - - DWRITE_PARAGRAPH_ALIGNMENT(STDMETHODCALLTYPE* GetParagraphAlignment)( - IDWriteTextLayout4* This); - - DWRITE_WORD_WRAPPING(STDMETHODCALLTYPE* GetWordWrapping)( - IDWriteTextLayout4* This); - - DWRITE_READING_DIRECTION(STDMETHODCALLTYPE* GetReadingDirection)( - IDWriteTextLayout4* This); - - DWRITE_FLOW_DIRECTION(STDMETHODCALLTYPE* GetFlowDirection)( - IDWriteTextLayout4* This); - - FLOAT(STDMETHODCALLTYPE* GetIncrementalTabStop)( - IDWriteTextLayout4* This); - - HRESULT(STDMETHODCALLTYPE* GetTrimming)( - IDWriteTextLayout4* This, - DWRITE_TRIMMING* options, - IDWriteInlineObject** trimming_sign); - - HRESULT(STDMETHODCALLTYPE* GetLineSpacing)( - IDWriteTextLayout4* This, - DWRITE_LINE_SPACING_METHOD* method, - FLOAT* spacing, - FLOAT* baseline); - - HRESULT(STDMETHODCALLTYPE* GetFontCollection)( - IDWriteTextLayout4* This, - IDWriteFontCollection** collection); - - UINT32(STDMETHODCALLTYPE* GetFontFamilyNameLength)( - IDWriteTextLayout4* This); - - HRESULT(STDMETHODCALLTYPE* GetFontFamilyName)( - IDWriteTextLayout4* This, - WCHAR* name, - UINT32 size); - - DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetFontWeight)( - IDWriteTextLayout4* This); - - DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetFontStyle)( - IDWriteTextLayout4* This); - - DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetFontStretch)( - IDWriteTextLayout4* This); - - FLOAT(STDMETHODCALLTYPE* GetFontSize)( - IDWriteTextLayout4* This); - - UINT32(STDMETHODCALLTYPE* GetLocaleNameLength)( - IDWriteTextLayout4* This); - - HRESULT(STDMETHODCALLTYPE* GetLocaleName)( - IDWriteTextLayout4* This, - WCHAR* name, - UINT32 size); - - /*** IDWriteTextLayout methods ***/ - HRESULT(STDMETHODCALLTYPE* SetMaxWidth)( - IDWriteTextLayout4* This, - FLOAT maxWidth); - - HRESULT(STDMETHODCALLTYPE* SetMaxHeight)( - IDWriteTextLayout4* This, - FLOAT maxHeight); - - HRESULT(STDMETHODCALLTYPE* SetFontCollection)( - IDWriteTextLayout4* This, - IDWriteFontCollection* collection, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetFontFamilyName)( - IDWriteTextLayout4* This, - const WCHAR* name, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetFontWeight)( - IDWriteTextLayout4* This, - DWRITE_FONT_WEIGHT weight, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetFontStyle)( - IDWriteTextLayout4* This, - DWRITE_FONT_STYLE style, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetFontStretch)( - IDWriteTextLayout4* This, - DWRITE_FONT_STRETCH stretch, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetFontSize)( - IDWriteTextLayout4* This, - FLOAT size, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetUnderline)( - IDWriteTextLayout4* This, - WINBOOL underline, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetStrikethrough)( - IDWriteTextLayout4* This, - WINBOOL strikethrough, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetDrawingEffect)( - IDWriteTextLayout4* This, - IUnknown* effect, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetInlineObject)( - IDWriteTextLayout4* This, - IDWriteInlineObject* object, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetTypography)( - IDWriteTextLayout4* This, - IDWriteTypography* typography, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* SetLocaleName)( - IDWriteTextLayout4* This, - const WCHAR* locale, - DWRITE_TEXT_RANGE range); - - FLOAT(STDMETHODCALLTYPE* GetMaxWidth)( - IDWriteTextLayout4* This); - - FLOAT(STDMETHODCALLTYPE* GetMaxHeight)( - IDWriteTextLayout4* This); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontCollection)( - IDWriteTextLayout4* This, - UINT32 pos, - IDWriteFontCollection** collection, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontFamilyNameLength)( - IDWriteTextLayout4* This, - UINT32 pos, - UINT32* len, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontFamilyName)( - IDWriteTextLayout4* This, - UINT32 position, - WCHAR* name, - UINT32 name_size, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontWeight)( - IDWriteTextLayout4* This, - UINT32 position, - DWRITE_FONT_WEIGHT* weight, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontStyle)( - IDWriteTextLayout4* This, - UINT32 currentPosition, - DWRITE_FONT_STYLE* style, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontStretch)( - IDWriteTextLayout4* This, - UINT32 position, - DWRITE_FONT_STRETCH* stretch, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetFontSize)( - IDWriteTextLayout4* This, - UINT32 position, - FLOAT* size, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* GetUnderline)( - IDWriteTextLayout4* This, - UINT32 position, - WINBOOL* has_underline, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* GetStrikethrough)( - IDWriteTextLayout4* This, - UINT32 position, - WINBOOL* has_strikethrough, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* GetDrawingEffect)( - IDWriteTextLayout4* This, - UINT32 position, - IUnknown** effect, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* GetInlineObject)( - IDWriteTextLayout4* This, - UINT32 position, - IDWriteInlineObject** object, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* GetTypography)( - IDWriteTextLayout4* This, - UINT32 position, - IDWriteTypography** typography, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetLocaleNameLength)( - IDWriteTextLayout4* This, - UINT32 position, - UINT32* length, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout_GetLocaleName)( - IDWriteTextLayout4* This, - UINT32 position, - WCHAR* name, - UINT32 name_size, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* Draw)( - IDWriteTextLayout4* This, - void* context, - IDWriteTextRenderer* renderer, - FLOAT originX, - FLOAT originY); - - HRESULT(STDMETHODCALLTYPE* GetLineMetrics)( - IDWriteTextLayout4* This, - DWRITE_LINE_METRICS* metrics, - UINT32 max_count, - UINT32* actual_count); - - HRESULT(STDMETHODCALLTYPE* GetMetrics)( - IDWriteTextLayout4* This, - DWRITE_TEXT_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* GetOverhangMetrics)( - IDWriteTextLayout4* This, - DWRITE_OVERHANG_METRICS* overhangs); - - HRESULT(STDMETHODCALLTYPE* GetClusterMetrics)( - IDWriteTextLayout4* This, - DWRITE_CLUSTER_METRICS* metrics, - UINT32 max_count, - UINT32* act_count); - - HRESULT(STDMETHODCALLTYPE* DetermineMinWidth)( - IDWriteTextLayout4* This, - FLOAT* min_width); - - HRESULT(STDMETHODCALLTYPE* HitTestPoint)( - IDWriteTextLayout4* This, - FLOAT pointX, - FLOAT pointY, - WINBOOL* is_trailinghit, - WINBOOL* is_inside, - DWRITE_HIT_TEST_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* HitTestTextPosition)( - IDWriteTextLayout4* This, - UINT32 textPosition, - WINBOOL is_trailinghit, - FLOAT* pointX, - FLOAT* pointY, - DWRITE_HIT_TEST_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* HitTestTextRange)( - IDWriteTextLayout4* This, - UINT32 textPosition, - UINT32 textLength, - FLOAT originX, - FLOAT originY, - DWRITE_HIT_TEST_METRICS* metrics, - UINT32 max_metricscount, - UINT32* actual_metricscount); - - /*** IDWriteTextLayout1 methods ***/ - HRESULT(STDMETHODCALLTYPE* SetPairKerning)( - IDWriteTextLayout4* This, - WINBOOL is_pairkerning_enabled, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* GetPairKerning)( - IDWriteTextLayout4* This, - UINT32 position, - WINBOOL* is_pairkerning_enabled, - DWRITE_TEXT_RANGE* range); - - HRESULT(STDMETHODCALLTYPE* SetCharacterSpacing)( - IDWriteTextLayout4* This, - FLOAT leading_spacing, - FLOAT trailing_spacing, - FLOAT minimum_advance_width, - DWRITE_TEXT_RANGE range); - - HRESULT(STDMETHODCALLTYPE* GetCharacterSpacing)( - IDWriteTextLayout4* This, - UINT32 position, - FLOAT* leading_spacing, - FLOAT* trailing_spacing, - FLOAT* minimum_advance_width, - DWRITE_TEXT_RANGE* range); - - /*** IDWriteTextLayout2 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout2_GetMetrics)( - IDWriteTextLayout4* This, - DWRITE_TEXT_METRICS1* metrics); - - HRESULT(STDMETHODCALLTYPE* SetVerticalGlyphOrientation)( - IDWriteTextLayout4* This, - DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); - - DWRITE_VERTICAL_GLYPH_ORIENTATION(STDMETHODCALLTYPE* GetVerticalGlyphOrientation)( - IDWriteTextLayout4* This); - - HRESULT(STDMETHODCALLTYPE* SetLastLineWrapping)( - IDWriteTextLayout4* This, - WINBOOL lastline_wrapping_enabled); - - WINBOOL(STDMETHODCALLTYPE* GetLastLineWrapping)( - IDWriteTextLayout4* This); - - HRESULT(STDMETHODCALLTYPE* SetOpticalAlignment)( - IDWriteTextLayout4* This, - DWRITE_OPTICAL_ALIGNMENT alignment); - - DWRITE_OPTICAL_ALIGNMENT(STDMETHODCALLTYPE* GetOpticalAlignment)( - IDWriteTextLayout4* This); - - HRESULT(STDMETHODCALLTYPE* SetFontFallback)( - IDWriteTextLayout4* This, - IDWriteFontFallback* fallback); - - HRESULT(STDMETHODCALLTYPE* GetFontFallback)( - IDWriteTextLayout4* This, - IDWriteFontFallback** fallback); - - /*** IDWriteTextLayout3 methods ***/ - HRESULT(STDMETHODCALLTYPE* InvalidateLayout)( - IDWriteTextLayout4* This); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout3_SetLineSpacing)( - IDWriteTextLayout4* This, - const DWRITE_LINE_SPACING* spacing); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout3_GetLineSpacing)( - IDWriteTextLayout4* This, - DWRITE_LINE_SPACING* spacing); - - HRESULT(STDMETHODCALLTYPE* IDWriteTextLayout3_GetLineMetrics)( - IDWriteTextLayout4* This, - DWRITE_LINE_METRICS1* metrics, - UINT32 max_count, - UINT32* count); - - /*** IDWriteTextLayout4 methods ***/ - HRESULT(STDMETHODCALLTYPE* SetFontAxisValues)( - IDWriteTextLayout4* This, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values, - DWRITE_TEXT_RANGE range); - - UINT32(STDMETHODCALLTYPE* GetFontAxisValueCount)( - IDWriteTextLayout4* This, - UINT32 pos); - - HRESULT(STDMETHODCALLTYPE* GetFontAxisValues)( - IDWriteTextLayout4* This, - UINT32 pos, - DWRITE_FONT_AXIS_VALUE* values, - UINT32 num_values, - DWRITE_TEXT_RANGE* range); - - DWRITE_AUTOMATIC_FONT_AXES(STDMETHODCALLTYPE* GetAutomaticFontAxes)( - IDWriteTextLayout4* This); - - HRESULT(STDMETHODCALLTYPE* SetAutomaticFontAxes)( - IDWriteTextLayout4* This, - DWRITE_AUTOMATIC_FONT_AXES axes); - - END_INTERFACE -} IDWriteTextLayout4Vtbl; - -interface IDWriteTextLayout4 { - CONST_VTBL IDWriteTextLayout4Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteTextLayout4_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteTextLayout4_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteTextLayout4_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteTextFormat methods ***/ -#define IDWriteTextLayout4_SetTextAlignment(This, alignment) (This)->lpVtbl->SetTextAlignment(This, alignment) -#define IDWriteTextLayout4_SetParagraphAlignment(This, alignment) (This)->lpVtbl->SetParagraphAlignment(This, alignment) -#define IDWriteTextLayout4_SetWordWrapping(This, wrapping) (This)->lpVtbl->SetWordWrapping(This, wrapping) -#define IDWriteTextLayout4_SetReadingDirection(This, direction) (This)->lpVtbl->SetReadingDirection(This, direction) -#define IDWriteTextLayout4_SetFlowDirection(This, direction) (This)->lpVtbl->SetFlowDirection(This, direction) -#define IDWriteTextLayout4_SetIncrementalTabStop(This, tabstop) (This)->lpVtbl->SetIncrementalTabStop(This, tabstop) -#define IDWriteTextLayout4_SetTrimming(This, trimming, trimming_sign) (This)->lpVtbl->SetTrimming(This, trimming, trimming_sign) -#define IDWriteTextLayout4_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) -#define IDWriteTextLayout4_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) -#define IDWriteTextLayout4_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) -#define IDWriteTextLayout4_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) -#define IDWriteTextLayout4_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) -#define IDWriteTextLayout4_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) -#define IDWriteTextLayout4_GetTrimming(This, options, trimming_sign) (This)->lpVtbl->GetTrimming(This, options, trimming_sign) -/*** IDWriteTextLayout methods ***/ -#define IDWriteTextLayout4_SetMaxWidth(This, maxWidth) (This)->lpVtbl->SetMaxWidth(This, maxWidth) -#define IDWriteTextLayout4_SetMaxHeight(This, maxHeight) (This)->lpVtbl->SetMaxHeight(This, maxHeight) -#define IDWriteTextLayout4_SetFontCollection(This, collection, range) (This)->lpVtbl->SetFontCollection(This, collection, range) -#define IDWriteTextLayout4_SetFontFamilyName(This, name, range) (This)->lpVtbl->SetFontFamilyName(This, name, range) -#define IDWriteTextLayout4_SetFontWeight(This, weight, range) (This)->lpVtbl->SetFontWeight(This, weight, range) -#define IDWriteTextLayout4_SetFontStyle(This, style, range) (This)->lpVtbl->SetFontStyle(This, style, range) -#define IDWriteTextLayout4_SetFontStretch(This, stretch, range) (This)->lpVtbl->SetFontStretch(This, stretch, range) -#define IDWriteTextLayout4_SetFontSize(This, size, range) (This)->lpVtbl->SetFontSize(This, size, range) -#define IDWriteTextLayout4_SetUnderline(This, underline, range) (This)->lpVtbl->SetUnderline(This, underline, range) -#define IDWriteTextLayout4_SetStrikethrough(This, strikethrough, range) (This)->lpVtbl->SetStrikethrough(This, strikethrough, range) -#define IDWriteTextLayout4_SetDrawingEffect(This, effect, range) (This)->lpVtbl->SetDrawingEffect(This, effect, range) -#define IDWriteTextLayout4_SetInlineObject(This, object, range) (This)->lpVtbl->SetInlineObject(This, object, range) -#define IDWriteTextLayout4_SetTypography(This, typography, range) (This)->lpVtbl->SetTypography(This, typography, range) -#define IDWriteTextLayout4_SetLocaleName(This, locale, range) (This)->lpVtbl->SetLocaleName(This, locale, range) -#define IDWriteTextLayout4_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This) -#define IDWriteTextLayout4_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This) -#define IDWriteTextLayout4_GetFontCollection(This, pos, collection, range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This, pos, collection, range) -#define IDWriteTextLayout4_GetFontFamilyNameLength(This, pos, len, range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This, pos, len, range) -#define IDWriteTextLayout4_GetFontFamilyName(This, position, name, name_size, range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This, position, name, name_size, range) -#define IDWriteTextLayout4_GetFontWeight(This, position, weight, range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This, position, weight, range) -#define IDWriteTextLayout4_GetFontStyle(This, currentPosition, style, range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This, currentPosition, style, range) -#define IDWriteTextLayout4_GetFontStretch(This, position, stretch, range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This, position, stretch, range) -#define IDWriteTextLayout4_GetFontSize(This, position, size, range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This, position, size, range) -#define IDWriteTextLayout4_GetUnderline(This, position, has_underline, range) (This)->lpVtbl->GetUnderline(This, position, has_underline, range) -#define IDWriteTextLayout4_GetStrikethrough(This, position, has_strikethrough, range) (This)->lpVtbl->GetStrikethrough(This, position, has_strikethrough, range) -#define IDWriteTextLayout4_GetDrawingEffect(This, position, effect, range) (This)->lpVtbl->GetDrawingEffect(This, position, effect, range) -#define IDWriteTextLayout4_GetInlineObject(This, position, object, range) (This)->lpVtbl->GetInlineObject(This, position, object, range) -#define IDWriteTextLayout4_GetTypography(This, position, typography, range) (This)->lpVtbl->GetTypography(This, position, typography, range) -#define IDWriteTextLayout4_GetLocaleNameLength(This, position, length, range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This, position, length, range) -#define IDWriteTextLayout4_GetLocaleName(This, position, name, name_size, range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This, position, name, name_size, range) -#define IDWriteTextLayout4_Draw(This, context, renderer, originX, originY) (This)->lpVtbl->Draw(This, context, renderer, originX, originY) -#define IDWriteTextLayout4_GetOverhangMetrics(This, overhangs) (This)->lpVtbl->GetOverhangMetrics(This, overhangs) -#define IDWriteTextLayout4_GetClusterMetrics(This, metrics, max_count, act_count) (This)->lpVtbl->GetClusterMetrics(This, metrics, max_count, act_count) -#define IDWriteTextLayout4_DetermineMinWidth(This, min_width) (This)->lpVtbl->DetermineMinWidth(This, min_width) -#define IDWriteTextLayout4_HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics) (This)->lpVtbl->HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics) -#define IDWriteTextLayout4_HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics) (This)->lpVtbl->HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics) -#define IDWriteTextLayout4_HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount) (This)->lpVtbl->HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount) -/*** IDWriteTextLayout1 methods ***/ -#define IDWriteTextLayout4_SetPairKerning(This, is_pairkerning_enabled, range) (This)->lpVtbl->SetPairKerning(This, is_pairkerning_enabled, range) -#define IDWriteTextLayout4_GetPairKerning(This, position, is_pairkerning_enabled, range) (This)->lpVtbl->GetPairKerning(This, position, is_pairkerning_enabled, range) -#define IDWriteTextLayout4_SetCharacterSpacing(This, leading_spacing, trailing_spacing, minimum_advance_width, range) (This)->lpVtbl->SetCharacterSpacing(This, leading_spacing, trailing_spacing, minimum_advance_width, range) -#define IDWriteTextLayout4_GetCharacterSpacing(This, position, leading_spacing, trailing_spacing, minimum_advance_width, range) (This)->lpVtbl->GetCharacterSpacing(This, position, leading_spacing, trailing_spacing, minimum_advance_width, range) -/*** IDWriteTextLayout2 methods ***/ -#define IDWriteTextLayout4_GetMetrics(This, metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This, metrics) -#define IDWriteTextLayout4_SetVerticalGlyphOrientation(This, orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This, orientation) -#define IDWriteTextLayout4_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) -#define IDWriteTextLayout4_SetLastLineWrapping(This, lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled) -#define IDWriteTextLayout4_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) -#define IDWriteTextLayout4_SetOpticalAlignment(This, alignment) (This)->lpVtbl->SetOpticalAlignment(This, alignment) -#define IDWriteTextLayout4_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) -#define IDWriteTextLayout4_SetFontFallback(This, fallback) (This)->lpVtbl->SetFontFallback(This, fallback) -#define IDWriteTextLayout4_GetFontFallback(This, fallback) (This)->lpVtbl->GetFontFallback(This, fallback) -/*** IDWriteTextLayout3 methods ***/ -#define IDWriteTextLayout4_InvalidateLayout(This) (This)->lpVtbl->InvalidateLayout(This) -#define IDWriteTextLayout4_SetLineSpacing(This, spacing) (This)->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This, spacing) -#define IDWriteTextLayout4_GetLineSpacing(This, spacing) (This)->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This, spacing) -#define IDWriteTextLayout4_GetLineMetrics(This, metrics, max_count, count) (This)->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This, metrics, max_count, count) -/*** IDWriteTextLayout4 methods ***/ -#define IDWriteTextLayout4_SetFontAxisValues(This, axis_values, num_values, range) (This)->lpVtbl->SetFontAxisValues(This, axis_values, num_values, range) -#define IDWriteTextLayout4_GetFontAxisValueCount(This, pos) (This)->lpVtbl->GetFontAxisValueCount(This, pos) -#define IDWriteTextLayout4_GetFontAxisValues(This, pos, values, num_values, range) (This)->lpVtbl->GetFontAxisValues(This, pos, values, num_values, range) -#define IDWriteTextLayout4_GetAutomaticFontAxes(This) (This)->lpVtbl->GetAutomaticFontAxes(This) -#define IDWriteTextLayout4_SetAutomaticFontAxes(This, axes) (This)->lpVtbl->SetAutomaticFontAxes(This, axes) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteTextLayout4_QueryInterface(IDWriteTextLayout4* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteTextLayout4_AddRef(IDWriteTextLayout4* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteTextLayout4_Release(IDWriteTextLayout4* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteTextFormat methods ***/ -static inline HRESULT IDWriteTextLayout4_SetTextAlignment(IDWriteTextLayout4* This, DWRITE_TEXT_ALIGNMENT alignment) { - return This->lpVtbl->SetTextAlignment(This, alignment); -} -static inline HRESULT IDWriteTextLayout4_SetParagraphAlignment(IDWriteTextLayout4* This, DWRITE_PARAGRAPH_ALIGNMENT alignment) { - return This->lpVtbl->SetParagraphAlignment(This, alignment); -} -static inline HRESULT IDWriteTextLayout4_SetWordWrapping(IDWriteTextLayout4* This, DWRITE_WORD_WRAPPING wrapping) { - return This->lpVtbl->SetWordWrapping(This, wrapping); -} -static inline HRESULT IDWriteTextLayout4_SetReadingDirection(IDWriteTextLayout4* This, DWRITE_READING_DIRECTION direction) { - return This->lpVtbl->SetReadingDirection(This, direction); -} -static inline HRESULT IDWriteTextLayout4_SetFlowDirection(IDWriteTextLayout4* This, DWRITE_FLOW_DIRECTION direction) { - return This->lpVtbl->SetFlowDirection(This, direction); -} -static inline HRESULT IDWriteTextLayout4_SetIncrementalTabStop(IDWriteTextLayout4* This, FLOAT tabstop) { - return This->lpVtbl->SetIncrementalTabStop(This, tabstop); -} -static inline HRESULT IDWriteTextLayout4_SetTrimming(IDWriteTextLayout4* This, const DWRITE_TRIMMING* trimming, IDWriteInlineObject* trimming_sign) { - return This->lpVtbl->SetTrimming(This, trimming, trimming_sign); -} -static inline DWRITE_TEXT_ALIGNMENT IDWriteTextLayout4_GetTextAlignment(IDWriteTextLayout4* This) { - return This->lpVtbl->GetTextAlignment(This); -} -static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout4_GetParagraphAlignment(IDWriteTextLayout4* This) { - return This->lpVtbl->GetParagraphAlignment(This); -} -static inline DWRITE_WORD_WRAPPING IDWriteTextLayout4_GetWordWrapping(IDWriteTextLayout4* This) { - return This->lpVtbl->GetWordWrapping(This); -} -static inline DWRITE_READING_DIRECTION IDWriteTextLayout4_GetReadingDirection(IDWriteTextLayout4* This) { - return This->lpVtbl->GetReadingDirection(This); -} -static inline DWRITE_FLOW_DIRECTION IDWriteTextLayout4_GetFlowDirection(IDWriteTextLayout4* This) { - return This->lpVtbl->GetFlowDirection(This); -} -static inline FLOAT IDWriteTextLayout4_GetIncrementalTabStop(IDWriteTextLayout4* This) { - return This->lpVtbl->GetIncrementalTabStop(This); -} -static inline HRESULT IDWriteTextLayout4_GetTrimming(IDWriteTextLayout4* This, DWRITE_TRIMMING* options, IDWriteInlineObject** trimming_sign) { - return This->lpVtbl->GetTrimming(This, options, trimming_sign); -} -/*** IDWriteTextLayout methods ***/ -static inline HRESULT IDWriteTextLayout4_SetMaxWidth(IDWriteTextLayout4* This, FLOAT maxWidth) { - return This->lpVtbl->SetMaxWidth(This, maxWidth); -} -static inline HRESULT IDWriteTextLayout4_SetMaxHeight(IDWriteTextLayout4* This, FLOAT maxHeight) { - return This->lpVtbl->SetMaxHeight(This, maxHeight); -} -static inline HRESULT IDWriteTextLayout4_SetFontCollection(IDWriteTextLayout4* This, IDWriteFontCollection* collection, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontCollection(This, collection, range); -} -static inline HRESULT IDWriteTextLayout4_SetFontFamilyName(IDWriteTextLayout4* This, const WCHAR* name, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontFamilyName(This, name, range); -} -static inline HRESULT IDWriteTextLayout4_SetFontWeight(IDWriteTextLayout4* This, DWRITE_FONT_WEIGHT weight, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontWeight(This, weight, range); -} -static inline HRESULT IDWriteTextLayout4_SetFontStyle(IDWriteTextLayout4* This, DWRITE_FONT_STYLE style, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontStyle(This, style, range); -} -static inline HRESULT IDWriteTextLayout4_SetFontStretch(IDWriteTextLayout4* This, DWRITE_FONT_STRETCH stretch, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontStretch(This, stretch, range); -} -static inline HRESULT IDWriteTextLayout4_SetFontSize(IDWriteTextLayout4* This, FLOAT size, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontSize(This, size, range); -} -static inline HRESULT IDWriteTextLayout4_SetUnderline(IDWriteTextLayout4* This, WINBOOL underline, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetUnderline(This, underline, range); -} -static inline HRESULT IDWriteTextLayout4_SetStrikethrough(IDWriteTextLayout4* This, WINBOOL strikethrough, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetStrikethrough(This, strikethrough, range); -} -static inline HRESULT IDWriteTextLayout4_SetDrawingEffect(IDWriteTextLayout4* This, IUnknown* effect, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetDrawingEffect(This, effect, range); -} -static inline HRESULT IDWriteTextLayout4_SetInlineObject(IDWriteTextLayout4* This, IDWriteInlineObject* object, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetInlineObject(This, object, range); -} -static inline HRESULT IDWriteTextLayout4_SetTypography(IDWriteTextLayout4* This, IDWriteTypography* typography, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetTypography(This, typography, range); -} -static inline HRESULT IDWriteTextLayout4_SetLocaleName(IDWriteTextLayout4* This, const WCHAR* locale, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetLocaleName(This, locale, range); -} -static inline FLOAT IDWriteTextLayout4_GetMaxWidth(IDWriteTextLayout4* This) { - return This->lpVtbl->GetMaxWidth(This); -} -static inline FLOAT IDWriteTextLayout4_GetMaxHeight(IDWriteTextLayout4* This) { - return This->lpVtbl->GetMaxHeight(This); -} -static inline HRESULT IDWriteTextLayout4_GetFontCollection(IDWriteTextLayout4* This, UINT32 pos, IDWriteFontCollection** collection, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This, pos, collection, range); -} -static inline HRESULT IDWriteTextLayout4_GetFontFamilyNameLength(IDWriteTextLayout4* This, UINT32 pos, UINT32* len, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This, pos, len, range); -} -static inline HRESULT IDWriteTextLayout4_GetFontFamilyName(IDWriteTextLayout4* This, UINT32 position, WCHAR* name, UINT32 name_size, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This, position, name, name_size, range); -} -static inline HRESULT IDWriteTextLayout4_GetFontWeight(IDWriteTextLayout4* This, UINT32 position, DWRITE_FONT_WEIGHT* weight, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This, position, weight, range); -} -static inline HRESULT IDWriteTextLayout4_GetFontStyle(IDWriteTextLayout4* This, UINT32 currentPosition, DWRITE_FONT_STYLE* style, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This, currentPosition, style, range); -} -static inline HRESULT IDWriteTextLayout4_GetFontStretch(IDWriteTextLayout4* This, UINT32 position, DWRITE_FONT_STRETCH* stretch, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This, position, stretch, range); -} -static inline HRESULT IDWriteTextLayout4_GetFontSize(IDWriteTextLayout4* This, UINT32 position, FLOAT* size, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetFontSize(This, position, size, range); -} -static inline HRESULT IDWriteTextLayout4_GetUnderline(IDWriteTextLayout4* This, UINT32 position, WINBOOL* has_underline, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetUnderline(This, position, has_underline, range); -} -static inline HRESULT IDWriteTextLayout4_GetStrikethrough(IDWriteTextLayout4* This, UINT32 position, WINBOOL* has_strikethrough, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetStrikethrough(This, position, has_strikethrough, range); -} -static inline HRESULT IDWriteTextLayout4_GetDrawingEffect(IDWriteTextLayout4* This, UINT32 position, IUnknown** effect, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetDrawingEffect(This, position, effect, range); -} -static inline HRESULT IDWriteTextLayout4_GetInlineObject(IDWriteTextLayout4* This, UINT32 position, IDWriteInlineObject** object, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetInlineObject(This, position, object, range); -} -static inline HRESULT IDWriteTextLayout4_GetTypography(IDWriteTextLayout4* This, UINT32 position, IDWriteTypography** typography, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetTypography(This, position, typography, range); -} -static inline HRESULT IDWriteTextLayout4_GetLocaleNameLength(IDWriteTextLayout4* This, UINT32 position, UINT32* length, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This, position, length, range); -} -static inline HRESULT IDWriteTextLayout4_GetLocaleName(IDWriteTextLayout4* This, UINT32 position, WCHAR* name, UINT32 name_size, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This, position, name, name_size, range); -} -static inline HRESULT IDWriteTextLayout4_Draw(IDWriteTextLayout4* This, void* context, IDWriteTextRenderer* renderer, FLOAT originX, FLOAT originY) { - return This->lpVtbl->Draw(This, context, renderer, originX, originY); -} -static inline HRESULT IDWriteTextLayout4_GetOverhangMetrics(IDWriteTextLayout4* This, DWRITE_OVERHANG_METRICS* overhangs) { - return This->lpVtbl->GetOverhangMetrics(This, overhangs); -} -static inline HRESULT IDWriteTextLayout4_GetClusterMetrics(IDWriteTextLayout4* This, DWRITE_CLUSTER_METRICS* metrics, UINT32 max_count, UINT32* act_count) { - return This->lpVtbl->GetClusterMetrics(This, metrics, max_count, act_count); -} -static inline HRESULT IDWriteTextLayout4_DetermineMinWidth(IDWriteTextLayout4* This, FLOAT* min_width) { - return This->lpVtbl->DetermineMinWidth(This, min_width); -} -static inline HRESULT IDWriteTextLayout4_HitTestPoint(IDWriteTextLayout4* This, FLOAT pointX, FLOAT pointY, WINBOOL* is_trailinghit, WINBOOL* is_inside, DWRITE_HIT_TEST_METRICS* metrics) { - return This->lpVtbl->HitTestPoint(This, pointX, pointY, is_trailinghit, is_inside, metrics); -} -static inline HRESULT IDWriteTextLayout4_HitTestTextPosition(IDWriteTextLayout4* This, UINT32 textPosition, WINBOOL is_trailinghit, FLOAT* pointX, FLOAT* pointY, DWRITE_HIT_TEST_METRICS* metrics) { - return This->lpVtbl->HitTestTextPosition(This, textPosition, is_trailinghit, pointX, pointY, metrics); -} -static inline HRESULT IDWriteTextLayout4_HitTestTextRange(IDWriteTextLayout4* This, UINT32 textPosition, UINT32 textLength, FLOAT originX, FLOAT originY, DWRITE_HIT_TEST_METRICS* metrics, UINT32 max_metricscount, UINT32* actual_metricscount) { - return This->lpVtbl->HitTestTextRange(This, textPosition, textLength, originX, originY, metrics, max_metricscount, actual_metricscount); -} -/*** IDWriteTextLayout1 methods ***/ -static inline HRESULT IDWriteTextLayout4_SetPairKerning(IDWriteTextLayout4* This, WINBOOL is_pairkerning_enabled, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetPairKerning(This, is_pairkerning_enabled, range); -} -static inline HRESULT IDWriteTextLayout4_GetPairKerning(IDWriteTextLayout4* This, UINT32 position, WINBOOL* is_pairkerning_enabled, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetPairKerning(This, position, is_pairkerning_enabled, range); -} -static inline HRESULT IDWriteTextLayout4_SetCharacterSpacing(IDWriteTextLayout4* This, FLOAT leading_spacing, FLOAT trailing_spacing, FLOAT minimum_advance_width, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetCharacterSpacing(This, leading_spacing, trailing_spacing, minimum_advance_width, range); -} -static inline HRESULT IDWriteTextLayout4_GetCharacterSpacing(IDWriteTextLayout4* This, UINT32 position, FLOAT* leading_spacing, FLOAT* trailing_spacing, FLOAT* minimum_advance_width, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetCharacterSpacing(This, position, leading_spacing, trailing_spacing, minimum_advance_width, range); -} -/*** IDWriteTextLayout2 methods ***/ -static inline HRESULT IDWriteTextLayout4_GetMetrics(IDWriteTextLayout4* This, DWRITE_TEXT_METRICS1* metrics) { - return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This, metrics); -} -static inline HRESULT IDWriteTextLayout4_SetVerticalGlyphOrientation(IDWriteTextLayout4* This, DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { - return This->lpVtbl->SetVerticalGlyphOrientation(This, orientation); -} -static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextLayout4_GetVerticalGlyphOrientation(IDWriteTextLayout4* This) { - return This->lpVtbl->GetVerticalGlyphOrientation(This); -} -static inline HRESULT IDWriteTextLayout4_SetLastLineWrapping(IDWriteTextLayout4* This, WINBOOL lastline_wrapping_enabled) { - return This->lpVtbl->SetLastLineWrapping(This, lastline_wrapping_enabled); -} -static inline WINBOOL IDWriteTextLayout4_GetLastLineWrapping(IDWriteTextLayout4* This) { - return This->lpVtbl->GetLastLineWrapping(This); -} -static inline HRESULT IDWriteTextLayout4_SetOpticalAlignment(IDWriteTextLayout4* This, DWRITE_OPTICAL_ALIGNMENT alignment) { - return This->lpVtbl->SetOpticalAlignment(This, alignment); -} -static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextLayout4_GetOpticalAlignment(IDWriteTextLayout4* This) { - return This->lpVtbl->GetOpticalAlignment(This); -} -static inline HRESULT IDWriteTextLayout4_SetFontFallback(IDWriteTextLayout4* This, IDWriteFontFallback* fallback) { - return This->lpVtbl->SetFontFallback(This, fallback); -} -static inline HRESULT IDWriteTextLayout4_GetFontFallback(IDWriteTextLayout4* This, IDWriteFontFallback** fallback) { - return This->lpVtbl->GetFontFallback(This, fallback); -} -/*** IDWriteTextLayout3 methods ***/ -static inline HRESULT IDWriteTextLayout4_InvalidateLayout(IDWriteTextLayout4* This) { - return This->lpVtbl->InvalidateLayout(This); -} -static inline HRESULT IDWriteTextLayout4_SetLineSpacing(IDWriteTextLayout4* This, const DWRITE_LINE_SPACING* spacing) { - return This->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This, spacing); -} -static inline HRESULT IDWriteTextLayout4_GetLineSpacing(IDWriteTextLayout4* This, DWRITE_LINE_SPACING* spacing) { - return This->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This, spacing); -} -static inline HRESULT IDWriteTextLayout4_GetLineMetrics(IDWriteTextLayout4* This, DWRITE_LINE_METRICS1* metrics, UINT32 max_count, UINT32* count) { - return This->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This, metrics, max_count, count); -} -/*** IDWriteTextLayout4 methods ***/ -static inline HRESULT IDWriteTextLayout4_SetFontAxisValues(IDWriteTextLayout4* This, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values, DWRITE_TEXT_RANGE range) { - return This->lpVtbl->SetFontAxisValues(This, axis_values, num_values, range); -} -static inline UINT32 IDWriteTextLayout4_GetFontAxisValueCount(IDWriteTextLayout4* This, UINT32 pos) { - return This->lpVtbl->GetFontAxisValueCount(This, pos); -} -static inline HRESULT IDWriteTextLayout4_GetFontAxisValues(IDWriteTextLayout4* This, UINT32 pos, DWRITE_FONT_AXIS_VALUE* values, UINT32 num_values, DWRITE_TEXT_RANGE* range) { - return This->lpVtbl->GetFontAxisValues(This, pos, values, num_values, range); -} -static inline DWRITE_AUTOMATIC_FONT_AXES IDWriteTextLayout4_GetAutomaticFontAxes(IDWriteTextLayout4* This) { - return This->lpVtbl->GetAutomaticFontAxes(This); -} -static inline HRESULT IDWriteTextLayout4_SetAutomaticFontAxes(IDWriteTextLayout4* This, DWRITE_AUTOMATIC_FONT_AXES axes) { - return This->lpVtbl->SetAutomaticFontAxes(This, axes); -} -#endif -#endif - -#endif - -#endif /* __IDWriteTextLayout4_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontFallback1 interface - */ -#ifndef __IDWriteFontFallback1_INTERFACE_DEFINED__ -#define __IDWriteFontFallback1_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontFallback1, 0x2397599d, 0xdd0d, 0x4681, 0xbd, 0x6a, 0xf4, 0xf3, 0x1e, 0xaa, 0xde, 0x77); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("2397599d-dd0d-4681-bd6a-f4f31eaade77") -IDWriteFontFallback1 : public IDWriteFontFallback { - virtual HRESULT STDMETHODCALLTYPE MapCharacters( - IDWriteTextAnalysisSource * source, - UINT32 pos, - UINT32 length, - IDWriteFontCollection * base_collection, - const WCHAR* familyname, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values, - UINT32* mapped_length, - FLOAT* scale, - IDWriteFontFace5** fontface) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFallback1, 0x2397599d, 0xdd0d, 0x4681, 0xbd, 0x6a, 0xf4, 0xf3, 0x1e, 0xaa, 0xde, 0x77) -#endif -#else -typedef struct IDWriteFontFallback1Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontFallback1* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontFallback1* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontFallback1* This); - - /*** IDWriteFontFallback methods ***/ - HRESULT(STDMETHODCALLTYPE* MapCharacters)( - IDWriteFontFallback1* This, - IDWriteTextAnalysisSource* source, - UINT32 position, - UINT32 length, - IDWriteFontCollection* basecollection, - const WCHAR* baseFamilyName, - DWRITE_FONT_WEIGHT baseWeight, - DWRITE_FONT_STYLE baseStyle, - DWRITE_FONT_STRETCH baseStretch, - UINT32* mappedLength, - IDWriteFont** mappedFont, - FLOAT* scale); - - /*** IDWriteFontFallback1 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFontFallback1_MapCharacters)( - IDWriteFontFallback1* This, - IDWriteTextAnalysisSource* source, - UINT32 pos, - UINT32 length, - IDWriteFontCollection* base_collection, - const WCHAR* familyname, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values, - UINT32* mapped_length, - FLOAT* scale, - IDWriteFontFace5** fontface); - - END_INTERFACE -} IDWriteFontFallback1Vtbl; - -interface IDWriteFontFallback1 { - CONST_VTBL IDWriteFontFallback1Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontFallback1_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontFallback1_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontFallback1_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontFallback methods ***/ -/*** IDWriteFontFallback1 methods ***/ -#define IDWriteFontFallback1_MapCharacters(This, source, pos, length, base_collection, familyname, axis_values, num_values, mapped_length, scale, fontface) (This)->lpVtbl->IDWriteFontFallback1_MapCharacters(This, source, pos, length, base_collection, familyname, axis_values, num_values, mapped_length, scale, fontface) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFallback1_QueryInterface(IDWriteFontFallback1* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontFallback1_AddRef(IDWriteFontFallback1* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontFallback1_Release(IDWriteFontFallback1* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontFallback methods ***/ -/*** IDWriteFontFallback1 methods ***/ -static inline HRESULT IDWriteFontFallback1_MapCharacters(IDWriteFontFallback1* This, IDWriteTextAnalysisSource* source, UINT32 pos, UINT32 length, IDWriteFontCollection* base_collection, const WCHAR* familyname, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values, UINT32* mapped_length, FLOAT* scale, IDWriteFontFace5** fontface) { - return This->lpVtbl->IDWriteFontFallback1_MapCharacters(This, source, pos, length, base_collection, familyname, axis_values, num_values, mapped_length, scale, fontface); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontFallback1_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteGdiInterop1 interface - */ -#ifndef __IDWriteGdiInterop1_INTERFACE_DEFINED__ -#define __IDWriteGdiInterop1_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteGdiInterop1, 0x4556be70, 0x3abd, 0x4f70, 0x90, 0xbe, 0x42, 0x17, 0x80, 0xa6, 0xf5, 0x15); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("4556be70-3abd-4f70-90be-421780a6f515") -IDWriteGdiInterop1 : public IDWriteGdiInterop { - virtual HRESULT STDMETHODCALLTYPE CreateFontFromLOGFONT( - const LOGFONTW* logfont, - IDWriteFontCollection* collection, - IDWriteFont** font) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontSignature_( - IDWriteFontFace * fontface, - FONTSIGNATURE * fontsig) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontSignature( - IDWriteFont * font, - FONTSIGNATURE * fontsig) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMatchingFontsByLOGFONT( - const LOGFONTW* logfont, - IDWriteFontSet* fontset, - IDWriteFontSet** subset) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteGdiInterop1, 0x4556be70, 0x3abd, 0x4f70, 0x90, 0xbe, 0x42, 0x17, 0x80, 0xa6, 0xf5, 0x15) -#endif -#else -typedef struct IDWriteGdiInterop1Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteGdiInterop1* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteGdiInterop1* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteGdiInterop1* This); - - /*** IDWriteGdiInterop methods ***/ - HRESULT(STDMETHODCALLTYPE* CreateFontFromLOGFONT)( - IDWriteGdiInterop1* This, - const LOGFONTW* logfont, - IDWriteFont** font); - - HRESULT(STDMETHODCALLTYPE* ConvertFontToLOGFONT)( - IDWriteGdiInterop1* This, - IDWriteFont* font, - LOGFONTW* logfont, - WINBOOL* is_systemfont); - - HRESULT(STDMETHODCALLTYPE* ConvertFontFaceToLOGFONT)( - IDWriteGdiInterop1* This, - IDWriteFontFace* font, - LOGFONTW* logfont); - - HRESULT(STDMETHODCALLTYPE* CreateFontFaceFromHdc)( - IDWriteGdiInterop1* This, - HDC hdc, - IDWriteFontFace** fontface); - - HRESULT(STDMETHODCALLTYPE* CreateBitmapRenderTarget)( - IDWriteGdiInterop1* This, - HDC hdc, - UINT32 width, - UINT32 height, - IDWriteBitmapRenderTarget** target); - - /*** IDWriteGdiInterop1 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteGdiInterop1_CreateFontFromLOGFONT)( - IDWriteGdiInterop1* This, - const LOGFONTW* logfont, - IDWriteFontCollection* collection, - IDWriteFont** font); - - HRESULT(STDMETHODCALLTYPE* GetFontSignature_)( - IDWriteGdiInterop1* This, - IDWriteFontFace* fontface, - FONTSIGNATURE* fontsig); - - HRESULT(STDMETHODCALLTYPE* GetFontSignature)( - IDWriteGdiInterop1* This, - IDWriteFont* font, - FONTSIGNATURE* fontsig); - - HRESULT(STDMETHODCALLTYPE* GetMatchingFontsByLOGFONT)( - IDWriteGdiInterop1* This, - const LOGFONTW* logfont, - IDWriteFontSet* fontset, - IDWriteFontSet** subset); - - END_INTERFACE -} IDWriteGdiInterop1Vtbl; - -interface IDWriteGdiInterop1 { - CONST_VTBL IDWriteGdiInterop1Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteGdiInterop1_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteGdiInterop1_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteGdiInterop1_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteGdiInterop methods ***/ -#define IDWriteGdiInterop1_ConvertFontToLOGFONT(This, font, logfont, is_systemfont) (This)->lpVtbl->ConvertFontToLOGFONT(This, font, logfont, is_systemfont) -#define IDWriteGdiInterop1_ConvertFontFaceToLOGFONT(This, font, logfont) (This)->lpVtbl->ConvertFontFaceToLOGFONT(This, font, logfont) -#define IDWriteGdiInterop1_CreateFontFaceFromHdc(This, hdc, fontface) (This)->lpVtbl->CreateFontFaceFromHdc(This, hdc, fontface) -#define IDWriteGdiInterop1_CreateBitmapRenderTarget(This, hdc, width, height, target) (This)->lpVtbl->CreateBitmapRenderTarget(This, hdc, width, height, target) -/*** IDWriteGdiInterop1 methods ***/ -#define IDWriteGdiInterop1_CreateFontFromLOGFONT(This, logfont, collection, font) (This)->lpVtbl->IDWriteGdiInterop1_CreateFontFromLOGFONT(This, logfont, collection, font) -#define IDWriteGdiInterop1_GetFontSignature_(This, fontface, fontsig) (This)->lpVtbl->GetFontSignature_(This, fontface, fontsig) -#define IDWriteGdiInterop1_GetFontSignature(This, font, fontsig) (This)->lpVtbl->GetFontSignature(This, font, fontsig) -#define IDWriteGdiInterop1_GetMatchingFontsByLOGFONT(This, logfont, fontset, subset) (This)->lpVtbl->GetMatchingFontsByLOGFONT(This, logfont, fontset, subset) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteGdiInterop1_QueryInterface(IDWriteGdiInterop1* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteGdiInterop1_AddRef(IDWriteGdiInterop1* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteGdiInterop1_Release(IDWriteGdiInterop1* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteGdiInterop methods ***/ -static inline HRESULT IDWriteGdiInterop1_ConvertFontToLOGFONT(IDWriteGdiInterop1* This, IDWriteFont* font, LOGFONTW* logfont, WINBOOL* is_systemfont) { - return This->lpVtbl->ConvertFontToLOGFONT(This, font, logfont, is_systemfont); -} -static inline HRESULT IDWriteGdiInterop1_ConvertFontFaceToLOGFONT(IDWriteGdiInterop1* This, IDWriteFontFace* font, LOGFONTW* logfont) { - return This->lpVtbl->ConvertFontFaceToLOGFONT(This, font, logfont); -} -static inline HRESULT IDWriteGdiInterop1_CreateFontFaceFromHdc(IDWriteGdiInterop1* This, HDC hdc, IDWriteFontFace** fontface) { - return This->lpVtbl->CreateFontFaceFromHdc(This, hdc, fontface); -} -static inline HRESULT IDWriteGdiInterop1_CreateBitmapRenderTarget(IDWriteGdiInterop1* This, HDC hdc, UINT32 width, UINT32 height, IDWriteBitmapRenderTarget** target) { - return This->lpVtbl->CreateBitmapRenderTarget(This, hdc, width, height, target); -} -/*** IDWriteGdiInterop1 methods ***/ -static inline HRESULT IDWriteGdiInterop1_CreateFontFromLOGFONT(IDWriteGdiInterop1* This, const LOGFONTW* logfont, IDWriteFontCollection* collection, IDWriteFont** font) { - return This->lpVtbl->IDWriteGdiInterop1_CreateFontFromLOGFONT(This, logfont, collection, font); -} -static inline HRESULT IDWriteGdiInterop1_GetFontSignature_(IDWriteGdiInterop1* This, IDWriteFontFace* fontface, FONTSIGNATURE* fontsig) { - return This->lpVtbl->GetFontSignature_(This, fontface, fontsig); -} -static inline HRESULT IDWriteGdiInterop1_GetFontSignature(IDWriteGdiInterop1* This, IDWriteFont* font, FONTSIGNATURE* fontsig) { - return This->lpVtbl->GetFontSignature(This, font, fontsig); -} -static inline HRESULT IDWriteGdiInterop1_GetMatchingFontsByLOGFONT(IDWriteGdiInterop1* This, const LOGFONTW* logfont, IDWriteFontSet* fontset, IDWriteFontSet** subset) { - return This->lpVtbl->GetMatchingFontsByLOGFONT(This, logfont, fontset, subset); -} -#endif -#endif - -#endif - -#endif /* __IDWriteGdiInterop1_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontSetBuilder interface - */ -#ifndef __IDWriteFontSetBuilder_INTERFACE_DEFINED__ -#define __IDWriteFontSetBuilder_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontSetBuilder, 0x2f642afe, 0x9c68, 0x4f40, 0xb8, 0xbe, 0x45, 0x74, 0x01, 0xaf, 0xcb, 0x3d); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("2f642afe-9c68-4f40-b8be-457401afcb3d") -IDWriteFontSetBuilder : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE AddFontFaceReference_( - IDWriteFontFaceReference * ref, - const DWRITE_FONT_PROPERTY* props, - UINT32 prop_count) = 0; - - virtual HRESULT STDMETHODCALLTYPE AddFontFaceReference( - IDWriteFontFaceReference * ref) = 0; - - virtual HRESULT STDMETHODCALLTYPE AddFontSet( - IDWriteFontSet * fontset) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontSet( - IDWriteFontSet * *fontset) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontSetBuilder, 0x2f642afe, 0x9c68, 0x4f40, 0xb8, 0xbe, 0x45, 0x74, 0x01, 0xaf, 0xcb, 0x3d) -#endif -#else -typedef struct IDWriteFontSetBuilderVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontSetBuilder* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontSetBuilder* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontSetBuilder* This); - - /*** IDWriteFontSetBuilder methods ***/ - HRESULT(STDMETHODCALLTYPE* AddFontFaceReference_)( - IDWriteFontSetBuilder* This, - IDWriteFontFaceReference* ref, - const DWRITE_FONT_PROPERTY* props, - UINT32 prop_count); - - HRESULT(STDMETHODCALLTYPE* AddFontFaceReference)( - IDWriteFontSetBuilder* This, - IDWriteFontFaceReference* ref); - - HRESULT(STDMETHODCALLTYPE* AddFontSet)( - IDWriteFontSetBuilder* This, - IDWriteFontSet* fontset); - - HRESULT(STDMETHODCALLTYPE* CreateFontSet)( - IDWriteFontSetBuilder* This, - IDWriteFontSet** fontset); - - END_INTERFACE -} IDWriteFontSetBuilderVtbl; - -interface IDWriteFontSetBuilder { - CONST_VTBL IDWriteFontSetBuilderVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontSetBuilder_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontSetBuilder_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontSetBuilder_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontSetBuilder methods ***/ -#define IDWriteFontSetBuilder_AddFontFaceReference_(This, ref, props, prop_count) (This)->lpVtbl->AddFontFaceReference_(This, ref, props, prop_count) -#define IDWriteFontSetBuilder_AddFontFaceReference(This, ref) (This)->lpVtbl->AddFontFaceReference(This, ref) -#define IDWriteFontSetBuilder_AddFontSet(This, fontset) (This)->lpVtbl->AddFontSet(This, fontset) -#define IDWriteFontSetBuilder_CreateFontSet(This, fontset) (This)->lpVtbl->CreateFontSet(This, fontset) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontSetBuilder_QueryInterface(IDWriteFontSetBuilder* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontSetBuilder_AddRef(IDWriteFontSetBuilder* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontSetBuilder_Release(IDWriteFontSetBuilder* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontSetBuilder methods ***/ -static inline HRESULT IDWriteFontSetBuilder_AddFontFaceReference_(IDWriteFontSetBuilder* This, IDWriteFontFaceReference* ref, const DWRITE_FONT_PROPERTY* props, UINT32 prop_count) { - return This->lpVtbl->AddFontFaceReference_(This, ref, props, prop_count); -} -static inline HRESULT IDWriteFontSetBuilder_AddFontFaceReference(IDWriteFontSetBuilder* This, IDWriteFontFaceReference* ref) { - return This->lpVtbl->AddFontFaceReference(This, ref); -} -static inline HRESULT IDWriteFontSetBuilder_AddFontSet(IDWriteFontSetBuilder* This, IDWriteFontSet* fontset) { - return This->lpVtbl->AddFontSet(This, fontset); -} -static inline HRESULT IDWriteFontSetBuilder_CreateFontSet(IDWriteFontSetBuilder* This, IDWriteFontSet** fontset) { - return This->lpVtbl->CreateFontSet(This, fontset); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontSetBuilder_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontSetBuilder1 interface - */ -#ifndef __IDWriteFontSetBuilder1_INTERFACE_DEFINED__ -#define __IDWriteFontSetBuilder1_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontSetBuilder1, 0x3ff7715f, 0x3cdc, 0x4dc6, 0x9b, 0x72, 0xec, 0x56, 0x21, 0xdc, 0xca, 0xfd); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("3ff7715f-3cdc-4dc6-9b72-ec5621dccafd") -IDWriteFontSetBuilder1 : public IDWriteFontSetBuilder { - virtual HRESULT STDMETHODCALLTYPE AddFontFile( - IDWriteFontFile * file) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontSetBuilder1, 0x3ff7715f, 0x3cdc, 0x4dc6, 0x9b, 0x72, 0xec, 0x56, 0x21, 0xdc, 0xca, 0xfd) -#endif -#else -typedef struct IDWriteFontSetBuilder1Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontSetBuilder1* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontSetBuilder1* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontSetBuilder1* This); - - /*** IDWriteFontSetBuilder methods ***/ - HRESULT(STDMETHODCALLTYPE* AddFontFaceReference_)( - IDWriteFontSetBuilder1* This, - IDWriteFontFaceReference* ref, - const DWRITE_FONT_PROPERTY* props, - UINT32 prop_count); - - HRESULT(STDMETHODCALLTYPE* AddFontFaceReference)( - IDWriteFontSetBuilder1* This, - IDWriteFontFaceReference* ref); - - HRESULT(STDMETHODCALLTYPE* AddFontSet)( - IDWriteFontSetBuilder1* This, - IDWriteFontSet* fontset); - - HRESULT(STDMETHODCALLTYPE* CreateFontSet)( - IDWriteFontSetBuilder1* This, - IDWriteFontSet** fontset); - - /*** IDWriteFontSetBuilder1 methods ***/ - HRESULT(STDMETHODCALLTYPE* AddFontFile)( - IDWriteFontSetBuilder1* This, - IDWriteFontFile* file); - - END_INTERFACE -} IDWriteFontSetBuilder1Vtbl; - -interface IDWriteFontSetBuilder1 { - CONST_VTBL IDWriteFontSetBuilder1Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontSetBuilder1_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontSetBuilder1_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontSetBuilder1_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontSetBuilder methods ***/ -#define IDWriteFontSetBuilder1_AddFontFaceReference_(This, ref, props, prop_count) (This)->lpVtbl->AddFontFaceReference_(This, ref, props, prop_count) -#define IDWriteFontSetBuilder1_AddFontFaceReference(This, ref) (This)->lpVtbl->AddFontFaceReference(This, ref) -#define IDWriteFontSetBuilder1_AddFontSet(This, fontset) (This)->lpVtbl->AddFontSet(This, fontset) -#define IDWriteFontSetBuilder1_CreateFontSet(This, fontset) (This)->lpVtbl->CreateFontSet(This, fontset) -/*** IDWriteFontSetBuilder1 methods ***/ -#define IDWriteFontSetBuilder1_AddFontFile(This, file) (This)->lpVtbl->AddFontFile(This, file) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontSetBuilder1_QueryInterface(IDWriteFontSetBuilder1* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontSetBuilder1_AddRef(IDWriteFontSetBuilder1* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontSetBuilder1_Release(IDWriteFontSetBuilder1* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontSetBuilder methods ***/ -static inline HRESULT IDWriteFontSetBuilder1_AddFontFaceReference_(IDWriteFontSetBuilder1* This, IDWriteFontFaceReference* ref, const DWRITE_FONT_PROPERTY* props, UINT32 prop_count) { - return This->lpVtbl->AddFontFaceReference_(This, ref, props, prop_count); -} -static inline HRESULT IDWriteFontSetBuilder1_AddFontFaceReference(IDWriteFontSetBuilder1* This, IDWriteFontFaceReference* ref) { - return This->lpVtbl->AddFontFaceReference(This, ref); -} -static inline HRESULT IDWriteFontSetBuilder1_AddFontSet(IDWriteFontSetBuilder1* This, IDWriteFontSet* fontset) { - return This->lpVtbl->AddFontSet(This, fontset); -} -static inline HRESULT IDWriteFontSetBuilder1_CreateFontSet(IDWriteFontSetBuilder1* This, IDWriteFontSet** fontset) { - return This->lpVtbl->CreateFontSet(This, fontset); -} -/*** IDWriteFontSetBuilder1 methods ***/ -static inline HRESULT IDWriteFontSetBuilder1_AddFontFile(IDWriteFontSetBuilder1* This, IDWriteFontFile* file) { - return This->lpVtbl->AddFontFile(This, file); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontSetBuilder1_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontSetBuilder2 interface - */ -#ifndef __IDWriteFontSetBuilder2_INTERFACE_DEFINED__ -#define __IDWriteFontSetBuilder2_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontSetBuilder2, 0xee5ba612, 0xb131, 0x463c, 0x8f, 0x4f, 0x31, 0x89, 0xb9, 0x40, 0x1e, 0x45); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("ee5ba612-b131-463c-8f4f-3189b9401e45") -IDWriteFontSetBuilder2 : public IDWriteFontSetBuilder1 { - virtual HRESULT STDMETHODCALLTYPE AddFont( - IDWriteFontFile * fontfile, - UINT32 face_index, - DWRITE_FONT_SIMULATIONS simulations, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values, - const DWRITE_FONT_AXIS_RANGE* axis_ranges, - UINT32 num_ranges, - const DWRITE_FONT_PROPERTY* props, - UINT32 num_properties) = 0; - - virtual HRESULT STDMETHODCALLTYPE AddFontFile( - const WCHAR* filepath) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontSetBuilder2, 0xee5ba612, 0xb131, 0x463c, 0x8f, 0x4f, 0x31, 0x89, 0xb9, 0x40, 0x1e, 0x45) -#endif -#else -typedef struct IDWriteFontSetBuilder2Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontSetBuilder2* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontSetBuilder2* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontSetBuilder2* This); - - /*** IDWriteFontSetBuilder methods ***/ - HRESULT(STDMETHODCALLTYPE* AddFontFaceReference_)( - IDWriteFontSetBuilder2* This, - IDWriteFontFaceReference* ref, - const DWRITE_FONT_PROPERTY* props, - UINT32 prop_count); - - HRESULT(STDMETHODCALLTYPE* AddFontFaceReference)( - IDWriteFontSetBuilder2* This, - IDWriteFontFaceReference* ref); - - HRESULT(STDMETHODCALLTYPE* AddFontSet)( - IDWriteFontSetBuilder2* This, - IDWriteFontSet* fontset); - - HRESULT(STDMETHODCALLTYPE* CreateFontSet)( - IDWriteFontSetBuilder2* This, - IDWriteFontSet** fontset); - - /*** IDWriteFontSetBuilder1 methods ***/ - HRESULT(STDMETHODCALLTYPE* AddFontFile)( - IDWriteFontSetBuilder2* This, - IDWriteFontFile* file); - - /*** IDWriteFontSetBuilder2 methods ***/ - HRESULT(STDMETHODCALLTYPE* AddFont)( - IDWriteFontSetBuilder2* This, - IDWriteFontFile* fontfile, - UINT32 face_index, - DWRITE_FONT_SIMULATIONS simulations, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_values, - const DWRITE_FONT_AXIS_RANGE* axis_ranges, - UINT32 num_ranges, - const DWRITE_FONT_PROPERTY* props, - UINT32 num_properties); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontSetBuilder2_AddFontFile)( - IDWriteFontSetBuilder2* This, - const WCHAR* filepath); - - END_INTERFACE -} IDWriteFontSetBuilder2Vtbl; - -interface IDWriteFontSetBuilder2 { - CONST_VTBL IDWriteFontSetBuilder2Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontSetBuilder2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontSetBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontSetBuilder2_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontSetBuilder methods ***/ -#define IDWriteFontSetBuilder2_AddFontFaceReference_(This, ref, props, prop_count) (This)->lpVtbl->AddFontFaceReference_(This, ref, props, prop_count) -#define IDWriteFontSetBuilder2_AddFontFaceReference(This, ref) (This)->lpVtbl->AddFontFaceReference(This, ref) -#define IDWriteFontSetBuilder2_AddFontSet(This, fontset) (This)->lpVtbl->AddFontSet(This, fontset) -#define IDWriteFontSetBuilder2_CreateFontSet(This, fontset) (This)->lpVtbl->CreateFontSet(This, fontset) -/*** IDWriteFontSetBuilder1 methods ***/ -/*** IDWriteFontSetBuilder2 methods ***/ -#define IDWriteFontSetBuilder2_AddFont(This, fontfile, face_index, simulations, axis_values, num_values, axis_ranges, num_ranges, props, num_properties) (This)->lpVtbl->AddFont(This, fontfile, face_index, simulations, axis_values, num_values, axis_ranges, num_ranges, props, num_properties) -#define IDWriteFontSetBuilder2_AddFontFile(This, filepath) (This)->lpVtbl->IDWriteFontSetBuilder2_AddFontFile(This, filepath) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontSetBuilder2_QueryInterface(IDWriteFontSetBuilder2* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontSetBuilder2_AddRef(IDWriteFontSetBuilder2* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontSetBuilder2_Release(IDWriteFontSetBuilder2* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontSetBuilder methods ***/ -static inline HRESULT IDWriteFontSetBuilder2_AddFontFaceReference_(IDWriteFontSetBuilder2* This, IDWriteFontFaceReference* ref, const DWRITE_FONT_PROPERTY* props, UINT32 prop_count) { - return This->lpVtbl->AddFontFaceReference_(This, ref, props, prop_count); -} -static inline HRESULT IDWriteFontSetBuilder2_AddFontFaceReference(IDWriteFontSetBuilder2* This, IDWriteFontFaceReference* ref) { - return This->lpVtbl->AddFontFaceReference(This, ref); -} -static inline HRESULT IDWriteFontSetBuilder2_AddFontSet(IDWriteFontSetBuilder2* This, IDWriteFontSet* fontset) { - return This->lpVtbl->AddFontSet(This, fontset); -} -static inline HRESULT IDWriteFontSetBuilder2_CreateFontSet(IDWriteFontSetBuilder2* This, IDWriteFontSet** fontset) { - return This->lpVtbl->CreateFontSet(This, fontset); -} -/*** IDWriteFontSetBuilder1 methods ***/ -/*** IDWriteFontSetBuilder2 methods ***/ -static inline HRESULT IDWriteFontSetBuilder2_AddFont(IDWriteFontSetBuilder2* This, IDWriteFontFile* fontfile, UINT32 face_index, DWRITE_FONT_SIMULATIONS simulations, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_values, const DWRITE_FONT_AXIS_RANGE* axis_ranges, UINT32 num_ranges, const DWRITE_FONT_PROPERTY* props, UINT32 num_properties) { - return This->lpVtbl->AddFont(This, fontfile, face_index, simulations, axis_values, num_values, axis_ranges, num_ranges, props, num_properties); -} -static inline HRESULT IDWriteFontSetBuilder2_AddFontFile(IDWriteFontSetBuilder2* This, const WCHAR* filepath) { - return This->lpVtbl->IDWriteFontSetBuilder2_AddFontFile(This, filepath); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontSetBuilder2_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFactory3 interface - */ -#ifndef __IDWriteFactory3_INTERFACE_DEFINED__ -#define __IDWriteFactory3_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFactory3, 0x9a1b41c3, 0xd3bb, 0x466a, 0x87, 0xfc, 0xfe, 0x67, 0x55, 0x6a, 0x3b, 0x65); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("9a1b41c3-d3bb-466a-87fc-fe67556a3b65") -IDWriteFactory3 : public IDWriteFactory2 { - virtual HRESULT STDMETHODCALLTYPE CreateGlyphRunAnalysis( - const DWRITE_GLYPH_RUN* run, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, - FLOAT origin_x, - FLOAT origin_y, - IDWriteGlyphRunAnalysis** analysis) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams( - FLOAT gamma, - FLOAT enhanced_contrast, - FLOAT grayscale_enhanced_contrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY pixel_geometry, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - IDWriteRenderingParams3 * *params) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference_( - IDWriteFontFile * file, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference * *reference) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference( - const WCHAR* path, - const FILETIME* writetime, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference** reference) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet( - IDWriteFontSet * *fontset) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder( - IDWriteFontSetBuilder * *builder) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontCollectionFromFontSet( - IDWriteFontSet * fontset, - IDWriteFontCollection1 * *collection) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection( - WINBOOL include_downloadable, - IDWriteFontCollection1 * *collection, - WINBOOL check_for_updates) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontDownloadQueue( - IDWriteFontDownloadQueue * *queue) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFactory3, 0x9a1b41c3, 0xd3bb, 0x466a, 0x87, 0xfc, 0xfe, 0x67, 0x55, 0x6a, 0x3b, 0x65) -#endif -#else -typedef struct IDWriteFactory3Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFactory3* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFactory3* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFactory3* This); - - /*** IDWriteFactory methods ***/ - HRESULT(STDMETHODCALLTYPE* GetSystemFontCollection)( - IDWriteFactory3* This, - IDWriteFontCollection** collection, - WINBOOL check_for_updates); - - HRESULT(STDMETHODCALLTYPE* CreateCustomFontCollection)( - IDWriteFactory3* This, - IDWriteFontCollectionLoader* loader, - const void* key, - UINT32 key_size, - IDWriteFontCollection** collection); - - HRESULT(STDMETHODCALLTYPE* RegisterFontCollectionLoader)( - IDWriteFactory3* This, - IDWriteFontCollectionLoader* loader); - - HRESULT(STDMETHODCALLTYPE* UnregisterFontCollectionLoader)( - IDWriteFactory3* This, - IDWriteFontCollectionLoader* loader); - - HRESULT(STDMETHODCALLTYPE* CreateFontFileReference)( - IDWriteFactory3* This, - const WCHAR* path, - const FILETIME* writetime, - IDWriteFontFile** font_file); - - HRESULT(STDMETHODCALLTYPE* CreateCustomFontFileReference)( - IDWriteFactory3* This, - const void* reference_key, - UINT32 key_size, - IDWriteFontFileLoader* loader, - IDWriteFontFile** font_file); - - HRESULT(STDMETHODCALLTYPE* CreateFontFace)( - IDWriteFactory3* This, - DWRITE_FONT_FACE_TYPE facetype, - UINT32 files_number, - IDWriteFontFile* const* font_files, - UINT32 index, - DWRITE_FONT_SIMULATIONS sim_flags, - IDWriteFontFace** font_face); - - HRESULT(STDMETHODCALLTYPE* CreateRenderingParams)( - IDWriteFactory3* This, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* CreateMonitorRenderingParams)( - IDWriteFactory3* This, - HMONITOR monitor, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* CreateCustomRenderingParams)( - IDWriteFactory3* This, - FLOAT gamma, - FLOAT enhancedContrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* RegisterFontFileLoader)( - IDWriteFactory3* This, - IDWriteFontFileLoader* loader); - - HRESULT(STDMETHODCALLTYPE* UnregisterFontFileLoader)( - IDWriteFactory3* This, - IDWriteFontFileLoader* loader); - - HRESULT(STDMETHODCALLTYPE* CreateTextFormat)( - IDWriteFactory3* This, - const WCHAR* family_name, - IDWriteFontCollection* collection, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STYLE style, - DWRITE_FONT_STRETCH stretch, - FLOAT size, - const WCHAR* locale, - IDWriteTextFormat** format); - - HRESULT(STDMETHODCALLTYPE* CreateTypography)( - IDWriteFactory3* This, - IDWriteTypography** typography); - - HRESULT(STDMETHODCALLTYPE* GetGdiInterop)( - IDWriteFactory3* This, - IDWriteGdiInterop** gdi_interop); - - HRESULT(STDMETHODCALLTYPE* CreateTextLayout)( - IDWriteFactory3* This, - const WCHAR* string, - UINT32 len, - IDWriteTextFormat* format, - FLOAT max_width, - FLOAT max_height, - IDWriteTextLayout** layout); - - HRESULT(STDMETHODCALLTYPE* CreateGdiCompatibleTextLayout)( - IDWriteFactory3* This, - const WCHAR* string, - UINT32 len, - IDWriteTextFormat* format, - FLOAT layout_width, - FLOAT layout_height, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - IDWriteTextLayout** layout); - - HRESULT(STDMETHODCALLTYPE* CreateEllipsisTrimmingSign)( - IDWriteFactory3* This, - IDWriteTextFormat* format, - IDWriteInlineObject** trimming_sign); - - HRESULT(STDMETHODCALLTYPE* CreateTextAnalyzer)( - IDWriteFactory3* This, - IDWriteTextAnalyzer** analyzer); - - HRESULT(STDMETHODCALLTYPE* CreateNumberSubstitution)( - IDWriteFactory3* This, - DWRITE_NUMBER_SUBSTITUTION_METHOD method, - const WCHAR* locale, - WINBOOL ignore_user_override, - IDWriteNumberSubstitution** substitution); - - HRESULT(STDMETHODCALLTYPE* CreateGlyphRunAnalysis)( - IDWriteFactory3* This, - const DWRITE_GLYPH_RUN* glyph_run, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - FLOAT baseline_x, - FLOAT baseline_y, - IDWriteGlyphRunAnalysis** analysis); - - /*** IDWriteFactory1 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetEudcFontCollection)( - IDWriteFactory3* This, - IDWriteFontCollection** collection, - WINBOOL check_for_updates); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory1_CreateCustomRenderingParams)( - IDWriteFactory3* This, - FLOAT gamma, - FLOAT enhcontrast, - FLOAT enhcontrast_grayscale, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams1** params); - - /*** IDWriteFactory2 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetSystemFontFallback)( - IDWriteFactory3* This, - IDWriteFontFallback** fallback); - - HRESULT(STDMETHODCALLTYPE* CreateFontFallbackBuilder)( - IDWriteFactory3* This, - IDWriteFontFallbackBuilder** fallbackbuilder); - - HRESULT(STDMETHODCALLTYPE* TranslateColorGlyphRun)( - IDWriteFactory3* This, - FLOAT originX, - FLOAT originY, - const DWRITE_GLYPH_RUN* run, - const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, - DWRITE_MEASURING_MODE mode, - const DWRITE_MATRIX* transform, - UINT32 palette_index, - IDWriteColorGlyphRunEnumerator** colorlayers); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateCustomRenderingParams)( - IDWriteFactory3* This, - FLOAT gamma, - FLOAT contrast, - FLOAT grayscalecontrast, - FLOAT cleartypeLevel, - DWRITE_PIXEL_GEOMETRY pixelGeometry, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_GRID_FIT_MODE gridFitMode, - IDWriteRenderingParams2** params); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateGlyphRunAnalysis)( - IDWriteFactory3* This, - const DWRITE_GLYPH_RUN* run, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_MEASURING_MODE measuringMode, - DWRITE_GRID_FIT_MODE gridFitMode, - DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, - FLOAT originX, - FLOAT originY, - IDWriteGlyphRunAnalysis** analysis); - - /*** IDWriteFactory3 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateGlyphRunAnalysis)( - IDWriteFactory3* This, - const DWRITE_GLYPH_RUN* run, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, - FLOAT origin_x, - FLOAT origin_y, - IDWriteGlyphRunAnalysis** analysis); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateCustomRenderingParams)( - IDWriteFactory3* This, - FLOAT gamma, - FLOAT enhanced_contrast, - FLOAT grayscale_enhanced_contrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY pixel_geometry, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - IDWriteRenderingParams3** params); - - HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference_)( - IDWriteFactory3* This, - IDWriteFontFile* file, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference** reference); - - HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference)( - IDWriteFactory3* This, - const WCHAR* path, - const FILETIME* writetime, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference** reference); - - HRESULT(STDMETHODCALLTYPE* GetSystemFontSet)( - IDWriteFactory3* This, - IDWriteFontSet** fontset); - - HRESULT(STDMETHODCALLTYPE* CreateFontSetBuilder)( - IDWriteFactory3* This, - IDWriteFontSetBuilder** builder); - - HRESULT(STDMETHODCALLTYPE* CreateFontCollectionFromFontSet)( - IDWriteFactory3* This, - IDWriteFontSet* fontset, - IDWriteFontCollection1** collection); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_GetSystemFontCollection)( - IDWriteFactory3* This, - WINBOOL include_downloadable, - IDWriteFontCollection1** collection, - WINBOOL check_for_updates); - - HRESULT(STDMETHODCALLTYPE* GetFontDownloadQueue)( - IDWriteFactory3* This, - IDWriteFontDownloadQueue** queue); - - END_INTERFACE -} IDWriteFactory3Vtbl; - -interface IDWriteFactory3 { - CONST_VTBL IDWriteFactory3Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFactory3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFactory3_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFactory3_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFactory methods ***/ -#define IDWriteFactory3_CreateCustomFontCollection(This, loader, key, key_size, collection) (This)->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection) -#define IDWriteFactory3_RegisterFontCollectionLoader(This, loader) (This)->lpVtbl->RegisterFontCollectionLoader(This, loader) -#define IDWriteFactory3_UnregisterFontCollectionLoader(This, loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This, loader) -#define IDWriteFactory3_CreateFontFileReference(This, path, writetime, font_file) (This)->lpVtbl->CreateFontFileReference(This, path, writetime, font_file) -#define IDWriteFactory3_CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) (This)->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) -#define IDWriteFactory3_CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) (This)->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) -#define IDWriteFactory3_CreateRenderingParams(This, params) (This)->lpVtbl->CreateRenderingParams(This, params) -#define IDWriteFactory3_CreateMonitorRenderingParams(This, monitor, params) (This)->lpVtbl->CreateMonitorRenderingParams(This, monitor, params) -#define IDWriteFactory3_RegisterFontFileLoader(This, loader) (This)->lpVtbl->RegisterFontFileLoader(This, loader) -#define IDWriteFactory3_UnregisterFontFileLoader(This, loader) (This)->lpVtbl->UnregisterFontFileLoader(This, loader) -#define IDWriteFactory3_CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format) (This)->lpVtbl->CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format) -#define IDWriteFactory3_CreateTypography(This, typography) (This)->lpVtbl->CreateTypography(This, typography) -#define IDWriteFactory3_GetGdiInterop(This, gdi_interop) (This)->lpVtbl->GetGdiInterop(This, gdi_interop) -#define IDWriteFactory3_CreateTextLayout(This, string, len, format, max_width, max_height, layout) (This)->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout) -#define IDWriteFactory3_CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) -#define IDWriteFactory3_CreateEllipsisTrimmingSign(This, format, trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign) -#define IDWriteFactory3_CreateTextAnalyzer(This, analyzer) (This)->lpVtbl->CreateTextAnalyzer(This, analyzer) -#define IDWriteFactory3_CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) (This)->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) -/*** IDWriteFactory1 methods ***/ -#define IDWriteFactory3_GetEudcFontCollection(This, collection, check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates) -/*** IDWriteFactory2 methods ***/ -#define IDWriteFactory3_GetSystemFontFallback(This, fallback) (This)->lpVtbl->GetSystemFontFallback(This, fallback) -#define IDWriteFactory3_CreateFontFallbackBuilder(This, fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder) -#define IDWriteFactory3_TranslateColorGlyphRun(This, originX, originY, run, rundescr, mode, transform, palette_index, colorlayers) (This)->lpVtbl->TranslateColorGlyphRun(This, originX, originY, run, rundescr, mode, transform, palette_index, colorlayers) -/*** IDWriteFactory3 methods ***/ -#define IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) -#define IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) -#define IDWriteFactory3_CreateFontFaceReference_(This, file, index, simulations, reference) (This)->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference) -#define IDWriteFactory3_CreateFontFaceReference(This, path, writetime, index, simulations, reference) (This)->lpVtbl->CreateFontFaceReference(This, path, writetime, index, simulations, reference) -#define IDWriteFactory3_GetSystemFontSet(This, fontset) (This)->lpVtbl->GetSystemFontSet(This, fontset) -#define IDWriteFactory3_CreateFontSetBuilder(This, builder) (This)->lpVtbl->CreateFontSetBuilder(This, builder) -#define IDWriteFactory3_CreateFontCollectionFromFontSet(This, fontset, collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This, fontset, collection) -#define IDWriteFactory3_GetSystemFontCollection(This, include_downloadable, collection, check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This, include_downloadable, collection, check_for_updates) -#define IDWriteFactory3_GetFontDownloadQueue(This, queue) (This)->lpVtbl->GetFontDownloadQueue(This, queue) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFactory3_QueryInterface(IDWriteFactory3* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFactory3_AddRef(IDWriteFactory3* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFactory3_Release(IDWriteFactory3* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFactory methods ***/ -static inline HRESULT IDWriteFactory3_CreateCustomFontCollection(IDWriteFactory3* This, IDWriteFontCollectionLoader* loader, const void* key, UINT32 key_size, IDWriteFontCollection** collection) { - return This->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection); -} -static inline HRESULT IDWriteFactory3_RegisterFontCollectionLoader(IDWriteFactory3* This, IDWriteFontCollectionLoader* loader) { - return This->lpVtbl->RegisterFontCollectionLoader(This, loader); -} -static inline HRESULT IDWriteFactory3_UnregisterFontCollectionLoader(IDWriteFactory3* This, IDWriteFontCollectionLoader* loader) { - return This->lpVtbl->UnregisterFontCollectionLoader(This, loader); -} -static inline HRESULT IDWriteFactory3_CreateFontFileReference(IDWriteFactory3* This, const WCHAR* path, const FILETIME* writetime, IDWriteFontFile** font_file) { - return This->lpVtbl->CreateFontFileReference(This, path, writetime, font_file); -} -static inline HRESULT IDWriteFactory3_CreateCustomFontFileReference(IDWriteFactory3* This, const void* reference_key, UINT32 key_size, IDWriteFontFileLoader* loader, IDWriteFontFile** font_file) { - return This->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file); -} -static inline HRESULT IDWriteFactory3_CreateFontFace(IDWriteFactory3* This, DWRITE_FONT_FACE_TYPE facetype, UINT32 files_number, IDWriteFontFile* const* font_files, UINT32 index, DWRITE_FONT_SIMULATIONS sim_flags, IDWriteFontFace** font_face) { - return This->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face); -} -static inline HRESULT IDWriteFactory3_CreateRenderingParams(IDWriteFactory3* This, IDWriteRenderingParams** params) { - return This->lpVtbl->CreateRenderingParams(This, params); -} -static inline HRESULT IDWriteFactory3_CreateMonitorRenderingParams(IDWriteFactory3* This, HMONITOR monitor, IDWriteRenderingParams** params) { - return This->lpVtbl->CreateMonitorRenderingParams(This, monitor, params); -} -static inline HRESULT IDWriteFactory3_RegisterFontFileLoader(IDWriteFactory3* This, IDWriteFontFileLoader* loader) { - return This->lpVtbl->RegisterFontFileLoader(This, loader); -} -static inline HRESULT IDWriteFactory3_UnregisterFontFileLoader(IDWriteFactory3* This, IDWriteFontFileLoader* loader) { - return This->lpVtbl->UnregisterFontFileLoader(This, loader); -} -static inline HRESULT IDWriteFactory3_CreateTextFormat(IDWriteFactory3* This, const WCHAR* family_name, IDWriteFontCollection* collection, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STYLE style, DWRITE_FONT_STRETCH stretch, FLOAT size, const WCHAR* locale, IDWriteTextFormat** format) { - return This->lpVtbl->CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format); -} -static inline HRESULT IDWriteFactory3_CreateTypography(IDWriteFactory3* This, IDWriteTypography** typography) { - return This->lpVtbl->CreateTypography(This, typography); -} -static inline HRESULT IDWriteFactory3_GetGdiInterop(IDWriteFactory3* This, IDWriteGdiInterop** gdi_interop) { - return This->lpVtbl->GetGdiInterop(This, gdi_interop); -} -static inline HRESULT IDWriteFactory3_CreateTextLayout(IDWriteFactory3* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT max_width, FLOAT max_height, IDWriteTextLayout** layout) { - return This->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout); -} -static inline HRESULT IDWriteFactory3_CreateGdiCompatibleTextLayout(IDWriteFactory3* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT layout_width, FLOAT layout_height, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, IDWriteTextLayout** layout) { - return This->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout); -} -static inline HRESULT IDWriteFactory3_CreateEllipsisTrimmingSign(IDWriteFactory3* This, IDWriteTextFormat* format, IDWriteInlineObject** trimming_sign) { - return This->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign); -} -static inline HRESULT IDWriteFactory3_CreateTextAnalyzer(IDWriteFactory3* This, IDWriteTextAnalyzer** analyzer) { - return This->lpVtbl->CreateTextAnalyzer(This, analyzer); -} -static inline HRESULT IDWriteFactory3_CreateNumberSubstitution(IDWriteFactory3* This, DWRITE_NUMBER_SUBSTITUTION_METHOD method, const WCHAR* locale, WINBOOL ignore_user_override, IDWriteNumberSubstitution** substitution) { - return This->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution); -} -/*** IDWriteFactory1 methods ***/ -static inline HRESULT IDWriteFactory3_GetEudcFontCollection(IDWriteFactory3* This, IDWriteFontCollection** collection, WINBOOL check_for_updates) { - return This->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates); -} -/*** IDWriteFactory2 methods ***/ -static inline HRESULT IDWriteFactory3_GetSystemFontFallback(IDWriteFactory3* This, IDWriteFontFallback** fallback) { - return This->lpVtbl->GetSystemFontFallback(This, fallback); -} -static inline HRESULT IDWriteFactory3_CreateFontFallbackBuilder(IDWriteFactory3* This, IDWriteFontFallbackBuilder** fallbackbuilder) { - return This->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder); -} -static inline HRESULT IDWriteFactory3_TranslateColorGlyphRun(IDWriteFactory3* This, FLOAT originX, FLOAT originY, const DWRITE_GLYPH_RUN* run, const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, DWRITE_MEASURING_MODE mode, const DWRITE_MATRIX* transform, UINT32 palette_index, IDWriteColorGlyphRunEnumerator** colorlayers) { - return This->lpVtbl->TranslateColorGlyphRun(This, originX, originY, run, rundescr, mode, transform, palette_index, colorlayers); -} -/*** IDWriteFactory3 methods ***/ -static inline HRESULT IDWriteFactory3_CreateGlyphRunAnalysis(IDWriteFactory3* This, const DWRITE_GLYPH_RUN* run, const DWRITE_MATRIX* transform, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_MEASURING_MODE measuring_mode, DWRITE_GRID_FIT_MODE gridfit_mode, DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, FLOAT origin_x, FLOAT origin_y, IDWriteGlyphRunAnalysis** analysis) { - return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis); -} -static inline HRESULT IDWriteFactory3_CreateCustomRenderingParams(IDWriteFactory3* This, FLOAT gamma, FLOAT enhanced_contrast, FLOAT grayscale_enhanced_contrast, FLOAT cleartype_level, DWRITE_PIXEL_GEOMETRY pixel_geometry, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_GRID_FIT_MODE gridfit_mode, IDWriteRenderingParams3** params) { - return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params); -} -static inline HRESULT IDWriteFactory3_CreateFontFaceReference_(IDWriteFactory3* This, IDWriteFontFile* file, UINT32 index, DWRITE_FONT_SIMULATIONS simulations, IDWriteFontFaceReference** reference) { - return This->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference); -} -static inline HRESULT IDWriteFactory3_CreateFontFaceReference(IDWriteFactory3* This, const WCHAR* path, const FILETIME* writetime, UINT32 index, DWRITE_FONT_SIMULATIONS simulations, IDWriteFontFaceReference** reference) { - return This->lpVtbl->CreateFontFaceReference(This, path, writetime, index, simulations, reference); -} -static inline HRESULT IDWriteFactory3_GetSystemFontSet(IDWriteFactory3* This, IDWriteFontSet** fontset) { - return This->lpVtbl->GetSystemFontSet(This, fontset); -} -static inline HRESULT IDWriteFactory3_CreateFontSetBuilder(IDWriteFactory3* This, IDWriteFontSetBuilder** builder) { - return This->lpVtbl->CreateFontSetBuilder(This, builder); -} -static inline HRESULT IDWriteFactory3_CreateFontCollectionFromFontSet(IDWriteFactory3* This, IDWriteFontSet* fontset, IDWriteFontCollection1** collection) { - return This->lpVtbl->CreateFontCollectionFromFontSet(This, fontset, collection); -} -static inline HRESULT IDWriteFactory3_GetSystemFontCollection(IDWriteFactory3* This, WINBOOL include_downloadable, IDWriteFontCollection1** collection, WINBOOL check_for_updates) { - return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This, include_downloadable, collection, check_for_updates); -} -static inline HRESULT IDWriteFactory3_GetFontDownloadQueue(IDWriteFactory3* This, IDWriteFontDownloadQueue** queue) { - return This->lpVtbl->GetFontDownloadQueue(This, queue); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFactory3_INTERFACE_DEFINED__ */ - -typedef struct DWRITE_GLYPH_IMAGE_DATA { - const void* imageData; - UINT32 imageDataSize; - UINT32 uniqueDataId; - UINT32 pixelsPerEm; - D2D1_SIZE_U pixelSize; - D2D1_POINT_2L horizontalLeftOrigin; - D2D1_POINT_2L horizontalRightOrigin; - D2D1_POINT_2L verticalTopOrigin; - D2D1_POINT_2L verticalBottomOrigin; -} DWRITE_GLYPH_IMAGE_DATA; -/***************************************************************************** - * IDWriteFontFace4 interface - */ -#ifndef __IDWriteFontFace4_INTERFACE_DEFINED__ -#define __IDWriteFontFace4_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontFace4, 0x27f2a904, 0x4eb8, 0x441d, 0x96, 0x78, 0x05, 0x63, 0xf5, 0x3e, 0x3e, 0x2f); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("27f2a904-4eb8-441d-9678-0563f53e3e2f") -IDWriteFontFace4 : public IDWriteFontFace3 { - virtual HRESULT STDMETHODCALLTYPE GetGlyphImageFormats_( - UINT16 glyph, - UINT32 ppem_first, - UINT32 ppem_last, - DWRITE_GLYPH_IMAGE_FORMATS * formats) = 0; - - virtual DWRITE_GLYPH_IMAGE_FORMATS STDMETHODCALLTYPE GetGlyphImageFormats() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGlyphImageData( - UINT16 glyph, - UINT32 ppem, - DWRITE_GLYPH_IMAGE_FORMATS format, - DWRITE_GLYPH_IMAGE_DATA * data, - void** context) = 0; - - virtual void STDMETHODCALLTYPE ReleaseGlyphImageData( - void* context) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFace4, 0x27f2a904, 0x4eb8, 0x441d, 0x96, 0x78, 0x05, 0x63, 0xf5, 0x3e, 0x3e, 0x2f) -#endif -#else -typedef struct IDWriteFontFace4Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontFace4* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontFace4* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontFace4* This); - - /*** IDWriteFontFace methods ***/ - DWRITE_FONT_FACE_TYPE(STDMETHODCALLTYPE* GetType)( - IDWriteFontFace4* This); - - HRESULT(STDMETHODCALLTYPE* GetFiles)( - IDWriteFontFace4* This, - UINT32* number_of_files, - IDWriteFontFile** fontfiles); - - UINT32(STDMETHODCALLTYPE* GetIndex)( - IDWriteFontFace4* This); - - DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( - IDWriteFontFace4* This); - - WINBOOL(STDMETHODCALLTYPE* IsSymbolFont)( - IDWriteFontFace4* This); - - void(STDMETHODCALLTYPE* GetMetrics)( - IDWriteFontFace4* This, - DWRITE_FONT_METRICS* metrics); - - UINT16(STDMETHODCALLTYPE* GetGlyphCount)( - IDWriteFontFace4* This); - - HRESULT(STDMETHODCALLTYPE* GetDesignGlyphMetrics)( - IDWriteFontFace4* This, - const UINT16* glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS* metrics, - WINBOOL is_sideways); - - HRESULT(STDMETHODCALLTYPE* GetGlyphIndices)( - IDWriteFontFace4* This, - const UINT32* codepoints, - UINT32 count, - UINT16* glyph_indices); - - HRESULT(STDMETHODCALLTYPE* TryGetFontTable)( - IDWriteFontFace4* This, - UINT32 table_tag, - const void** table_data, - UINT32* table_size, - void** context, - WINBOOL* exists); - - void(STDMETHODCALLTYPE* ReleaseFontTable)( - IDWriteFontFace4* This, - void* table_context); - - HRESULT(STDMETHODCALLTYPE* GetGlyphRunOutline)( - IDWriteFontFace4* This, - FLOAT emSize, - const UINT16* glyph_indices, - const FLOAT* glyph_advances, - const DWRITE_GLYPH_OFFSET* glyph_offsets, - UINT32 glyph_count, - WINBOOL is_sideways, - WINBOOL is_rtl, - IDWriteGeometrySink* geometrysink); - - HRESULT(STDMETHODCALLTYPE* GetRecommendedRenderingMode)( - IDWriteFontFace4* This, - FLOAT emSize, - FLOAT pixels_per_dip, - DWRITE_MEASURING_MODE mode, - IDWriteRenderingParams* params, - DWRITE_RENDERING_MODE* rendering_mode); - - HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleMetrics)( - IDWriteFontFace4* This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_FONT_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphMetrics)( - IDWriteFontFace4* This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - const UINT16* glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS* metrics, - WINBOOL is_sideways); - - /*** IDWriteFontFace1 methods ***/ - void(STDMETHODCALLTYPE* IDWriteFontFace1_GetMetrics)( - IDWriteFontFace4* This, - DWRITE_FONT_METRICS1* metrics); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetGdiCompatibleMetrics)( - IDWriteFontFace4* This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_FONT_METRICS1* metrics); - - void(STDMETHODCALLTYPE* GetCaretMetrics)( - IDWriteFontFace4* This, - DWRITE_CARET_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* GetUnicodeRanges)( - IDWriteFontFace4* This, - UINT32 max_count, - DWRITE_UNICODE_RANGE* ranges, - UINT32* count); - - WINBOOL(STDMETHODCALLTYPE* IsMonospacedFont)( - IDWriteFontFace4* This); - - HRESULT(STDMETHODCALLTYPE* GetDesignGlyphAdvances)( - IDWriteFontFace4* This, - UINT32 glyph_count, - const UINT16* indices, - INT32* advances, - WINBOOL is_sideways); - - HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphAdvances)( - IDWriteFontFace4* This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - WINBOOL is_sideways, - UINT32 glyph_count, - const UINT16* indices, - INT32* advances); - - HRESULT(STDMETHODCALLTYPE* GetKerningPairAdjustments)( - IDWriteFontFace4* This, - UINT32 glyph_count, - const UINT16* indices, - INT32* adjustments); - - WINBOOL(STDMETHODCALLTYPE* HasKerningPairs)( - IDWriteFontFace4* This); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetRecommendedRenderingMode)( - IDWriteFontFace4* This, - FLOAT font_emsize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX* transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_RENDERING_MODE* rendering_mode); - - HRESULT(STDMETHODCALLTYPE* GetVerticalGlyphVariants)( - IDWriteFontFace4* This, - UINT32 glyph_count, - const UINT16* nominal_indices, - UINT16* vertical_indices); - - WINBOOL(STDMETHODCALLTYPE* HasVerticalGlyphVariants)( - IDWriteFontFace4* This); - - /*** IDWriteFontFace2 methods ***/ - WINBOOL(STDMETHODCALLTYPE* IsColorFont)( - IDWriteFontFace4* This); - - UINT32(STDMETHODCALLTYPE* GetColorPaletteCount)( - IDWriteFontFace4* This); - - UINT32(STDMETHODCALLTYPE* GetPaletteEntryCount)( - IDWriteFontFace4* This); - - HRESULT(STDMETHODCALLTYPE* GetPaletteEntries)( - IDWriteFontFace4* This, - UINT32 palette_index, - UINT32 first_entry_index, - UINT32 entry_count, - DWRITE_COLOR_F* entries); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace2_GetRecommendedRenderingMode)( - IDWriteFontFace4* This, - FLOAT fontEmSize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX* transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuringmode, - IDWriteRenderingParams* params, - DWRITE_RENDERING_MODE* renderingmode, - DWRITE_GRID_FIT_MODE* gridfitmode); - - /*** IDWriteFontFace3 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( - IDWriteFontFace4* This, - IDWriteFontFaceReference** reference); - - void(STDMETHODCALLTYPE* GetPanose)( - IDWriteFontFace4* This, - DWRITE_PANOSE* panose); - - DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetWeight)( - IDWriteFontFace4* This); - - DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetStretch)( - IDWriteFontFace4* This); - - DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetStyle)( - IDWriteFontFace4* This); - - HRESULT(STDMETHODCALLTYPE* GetFamilyNames)( - IDWriteFontFace4* This, - IDWriteLocalizedStrings** names); - - HRESULT(STDMETHODCALLTYPE* GetFaceNames)( - IDWriteFontFace4* This, - IDWriteLocalizedStrings** names); - - HRESULT(STDMETHODCALLTYPE* GetInformationalStrings)( - IDWriteFontFace4* This, - DWRITE_INFORMATIONAL_STRING_ID stringid, - IDWriteLocalizedStrings** strings, - WINBOOL* exists); - - WINBOOL(STDMETHODCALLTYPE* HasCharacter)( - IDWriteFontFace4* This, - UINT32 character); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace3_GetRecommendedRenderingMode)( - IDWriteFontFace4* This, - FLOAT emsize, - FLOAT dpi_x, - FLOAT dpi_y, - const DWRITE_MATRIX* transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - IDWriteRenderingParams* params, - DWRITE_RENDERING_MODE1* rendering_mode, - DWRITE_GRID_FIT_MODE* gridfit_mode); - - WINBOOL(STDMETHODCALLTYPE* IsCharacterLocal)( - IDWriteFontFace4* This, - UINT32 character); - - WINBOOL(STDMETHODCALLTYPE* IsGlyphLocal)( - IDWriteFontFace4* This, - UINT16 glyph); - - HRESULT(STDMETHODCALLTYPE* AreCharactersLocal)( - IDWriteFontFace4* This, - const WCHAR* characters, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL* are_local); - - HRESULT(STDMETHODCALLTYPE* AreGlyphsLocal)( - IDWriteFontFace4* This, - const UINT16* glyphs, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL* are_local); - - /*** IDWriteFontFace4 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetGlyphImageFormats_)( - IDWriteFontFace4* This, - UINT16 glyph, - UINT32 ppem_first, - UINT32 ppem_last, - DWRITE_GLYPH_IMAGE_FORMATS* formats); - - DWRITE_GLYPH_IMAGE_FORMATS(STDMETHODCALLTYPE* GetGlyphImageFormats)( - IDWriteFontFace4* This); - - HRESULT(STDMETHODCALLTYPE* GetGlyphImageData)( - IDWriteFontFace4* This, - UINT16 glyph, - UINT32 ppem, - DWRITE_GLYPH_IMAGE_FORMATS format, - DWRITE_GLYPH_IMAGE_DATA* data, - void** context); - - void(STDMETHODCALLTYPE* ReleaseGlyphImageData)( - IDWriteFontFace4* This, - void* context); - - END_INTERFACE -} IDWriteFontFace4Vtbl; - -interface IDWriteFontFace4 { - CONST_VTBL IDWriteFontFace4Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontFace4_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontFace4_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontFace4_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontFace methods ***/ -#define IDWriteFontFace4_GetType(This) (This)->lpVtbl->GetType(This) -#define IDWriteFontFace4_GetFiles(This, number_of_files, fontfiles) (This)->lpVtbl->GetFiles(This, number_of_files, fontfiles) -#define IDWriteFontFace4_GetIndex(This) (This)->lpVtbl->GetIndex(This) -#define IDWriteFontFace4_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) -#define IDWriteFontFace4_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) -#define IDWriteFontFace4_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) -#define IDWriteFontFace4_GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) -#define IDWriteFontFace4_GetGlyphIndices(This, codepoints, count, glyph_indices) (This)->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices) -#define IDWriteFontFace4_TryGetFontTable(This, table_tag, table_data, table_size, context, exists) (This)->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists) -#define IDWriteFontFace4_ReleaseFontTable(This, table_context) (This)->lpVtbl->ReleaseFontTable(This, table_context) -#define IDWriteFontFace4_GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) -#define IDWriteFontFace4_GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) -/*** IDWriteFontFace1 methods ***/ -#define IDWriteFontFace4_GetMetrics(This, metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics) -#define IDWriteFontFace4_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) -#define IDWriteFontFace4_GetCaretMetrics(This, metrics) (This)->lpVtbl->GetCaretMetrics(This, metrics) -#define IDWriteFontFace4_GetUnicodeRanges(This, max_count, ranges, count) (This)->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count) -#define IDWriteFontFace4_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) -#define IDWriteFontFace4_GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) -#define IDWriteFontFace4_GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) -#define IDWriteFontFace4_GetKerningPairAdjustments(This, glyph_count, indices, adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments) -#define IDWriteFontFace4_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) -#define IDWriteFontFace4_GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) -#define IDWriteFontFace4_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) -/*** IDWriteFontFace2 methods ***/ -#define IDWriteFontFace4_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) -#define IDWriteFontFace4_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) -#define IDWriteFontFace4_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) -#define IDWriteFontFace4_GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) (This)->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) -/*** IDWriteFontFace3 methods ***/ -#define IDWriteFontFace4_GetFontFaceReference(This, reference) (This)->lpVtbl->GetFontFaceReference(This, reference) -#define IDWriteFontFace4_GetPanose(This, panose) (This)->lpVtbl->GetPanose(This, panose) -#define IDWriteFontFace4_GetWeight(This) (This)->lpVtbl->GetWeight(This) -#define IDWriteFontFace4_GetStretch(This) (This)->lpVtbl->GetStretch(This) -#define IDWriteFontFace4_GetStyle(This) (This)->lpVtbl->GetStyle(This) -#define IDWriteFontFace4_GetFamilyNames(This, names) (This)->lpVtbl->GetFamilyNames(This, names) -#define IDWriteFontFace4_GetFaceNames(This, names) (This)->lpVtbl->GetFaceNames(This, names) -#define IDWriteFontFace4_GetInformationalStrings(This, stringid, strings, exists) (This)->lpVtbl->GetInformationalStrings(This, stringid, strings, exists) -#define IDWriteFontFace4_HasCharacter(This, character) (This)->lpVtbl->HasCharacter(This, character) -#define IDWriteFontFace4_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode) -#define IDWriteFontFace4_IsCharacterLocal(This, character) (This)->lpVtbl->IsCharacterLocal(This, character) -#define IDWriteFontFace4_IsGlyphLocal(This, glyph) (This)->lpVtbl->IsGlyphLocal(This, glyph) -#define IDWriteFontFace4_AreCharactersLocal(This, characters, count, enqueue_if_not, are_local) (This)->lpVtbl->AreCharactersLocal(This, characters, count, enqueue_if_not, are_local) -#define IDWriteFontFace4_AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local) (This)->lpVtbl->AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local) -/*** IDWriteFontFace4 methods ***/ -#define IDWriteFontFace4_GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats) (This)->lpVtbl->GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats) -#define IDWriteFontFace4_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This) -#define IDWriteFontFace4_GetGlyphImageData(This, glyph, ppem, format, data, context) (This)->lpVtbl->GetGlyphImageData(This, glyph, ppem, format, data, context) -#define IDWriteFontFace4_ReleaseGlyphImageData(This, context) (This)->lpVtbl->ReleaseGlyphImageData(This, context) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFace4_QueryInterface(IDWriteFontFace4* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontFace4_AddRef(IDWriteFontFace4* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontFace4_Release(IDWriteFontFace4* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontFace methods ***/ -static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace4_GetType(IDWriteFontFace4* This) { - return This->lpVtbl->GetType(This); -} -static inline HRESULT IDWriteFontFace4_GetFiles(IDWriteFontFace4* This, UINT32* number_of_files, IDWriteFontFile** fontfiles) { - return This->lpVtbl->GetFiles(This, number_of_files, fontfiles); -} -static inline UINT32 IDWriteFontFace4_GetIndex(IDWriteFontFace4* This) { - return This->lpVtbl->GetIndex(This); -} -static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace4_GetSimulations(IDWriteFontFace4* This) { - return This->lpVtbl->GetSimulations(This); -} -static inline WINBOOL IDWriteFontFace4_IsSymbolFont(IDWriteFontFace4* This) { - return This->lpVtbl->IsSymbolFont(This); -} -static inline UINT16 IDWriteFontFace4_GetGlyphCount(IDWriteFontFace4* This) { - return This->lpVtbl->GetGlyphCount(This); -} -static inline HRESULT IDWriteFontFace4_GetDesignGlyphMetrics(IDWriteFontFace4* This, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways); -} -static inline HRESULT IDWriteFontFace4_GetGlyphIndices(IDWriteFontFace4* This, const UINT32* codepoints, UINT32 count, UINT16* glyph_indices) { - return This->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices); -} -static inline HRESULT IDWriteFontFace4_TryGetFontTable(IDWriteFontFace4* This, UINT32 table_tag, const void** table_data, UINT32* table_size, void** context, WINBOOL* exists) { - return This->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists); -} -static inline void IDWriteFontFace4_ReleaseFontTable(IDWriteFontFace4* This, void* table_context) { - This->lpVtbl->ReleaseFontTable(This, table_context); -} -static inline HRESULT IDWriteFontFace4_GetGlyphRunOutline(IDWriteFontFace4* This, FLOAT emSize, const UINT16* glyph_indices, const FLOAT* glyph_advances, const DWRITE_GLYPH_OFFSET* glyph_offsets, UINT32 glyph_count, WINBOOL is_sideways, WINBOOL is_rtl, IDWriteGeometrySink* geometrysink) { - return This->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink); -} -static inline HRESULT IDWriteFontFace4_GetGdiCompatibleGlyphMetrics(IDWriteFontFace4* This, FLOAT emSize, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { - return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways); -} -/*** IDWriteFontFace1 methods ***/ -static inline void IDWriteFontFace4_GetMetrics(IDWriteFontFace4* This, DWRITE_FONT_METRICS1* metrics) { - This->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics); -} -static inline HRESULT IDWriteFontFace4_GetGdiCompatibleMetrics(IDWriteFontFace4* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, DWRITE_FONT_METRICS1* metrics) { - return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics); -} -static inline void IDWriteFontFace4_GetCaretMetrics(IDWriteFontFace4* This, DWRITE_CARET_METRICS* metrics) { - This->lpVtbl->GetCaretMetrics(This, metrics); -} -static inline HRESULT IDWriteFontFace4_GetUnicodeRanges(IDWriteFontFace4* This, UINT32 max_count, DWRITE_UNICODE_RANGE* ranges, UINT32* count) { - return This->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count); -} -static inline WINBOOL IDWriteFontFace4_IsMonospacedFont(IDWriteFontFace4* This) { - return This->lpVtbl->IsMonospacedFont(This); -} -static inline HRESULT IDWriteFontFace4_GetDesignGlyphAdvances(IDWriteFontFace4* This, UINT32 glyph_count, const UINT16* indices, INT32* advances, WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways); -} -static inline HRESULT IDWriteFontFace4_GetGdiCompatibleGlyphAdvances(IDWriteFontFace4* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, WINBOOL is_sideways, UINT32 glyph_count, const UINT16* indices, INT32* advances) { - return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances); -} -static inline HRESULT IDWriteFontFace4_GetKerningPairAdjustments(IDWriteFontFace4* This, UINT32 glyph_count, const UINT16* indices, INT32* adjustments) { - return This->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments); -} -static inline WINBOOL IDWriteFontFace4_HasKerningPairs(IDWriteFontFace4* This) { - return This->lpVtbl->HasKerningPairs(This); -} -static inline HRESULT IDWriteFontFace4_GetVerticalGlyphVariants(IDWriteFontFace4* This, UINT32 glyph_count, const UINT16* nominal_indices, UINT16* vertical_indices) { - return This->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices); -} -static inline WINBOOL IDWriteFontFace4_HasVerticalGlyphVariants(IDWriteFontFace4* This) { - return This->lpVtbl->HasVerticalGlyphVariants(This); -} -/*** IDWriteFontFace2 methods ***/ -static inline WINBOOL IDWriteFontFace4_IsColorFont(IDWriteFontFace4* This) { - return This->lpVtbl->IsColorFont(This); -} -static inline UINT32 IDWriteFontFace4_GetColorPaletteCount(IDWriteFontFace4* This) { - return This->lpVtbl->GetColorPaletteCount(This); -} -static inline UINT32 IDWriteFontFace4_GetPaletteEntryCount(IDWriteFontFace4* This) { - return This->lpVtbl->GetPaletteEntryCount(This); -} -static inline HRESULT IDWriteFontFace4_GetPaletteEntries(IDWriteFontFace4* This, UINT32 palette_index, UINT32 first_entry_index, UINT32 entry_count, DWRITE_COLOR_F* entries) { - return This->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries); -} -/*** IDWriteFontFace3 methods ***/ -static inline HRESULT IDWriteFontFace4_GetFontFaceReference(IDWriteFontFace4* This, IDWriteFontFaceReference** reference) { - return This->lpVtbl->GetFontFaceReference(This, reference); -} -static inline void IDWriteFontFace4_GetPanose(IDWriteFontFace4* This, DWRITE_PANOSE* panose) { - This->lpVtbl->GetPanose(This, panose); -} -static inline DWRITE_FONT_WEIGHT IDWriteFontFace4_GetWeight(IDWriteFontFace4* This) { - return This->lpVtbl->GetWeight(This); -} -static inline DWRITE_FONT_STRETCH IDWriteFontFace4_GetStretch(IDWriteFontFace4* This) { - return This->lpVtbl->GetStretch(This); -} -static inline DWRITE_FONT_STYLE IDWriteFontFace4_GetStyle(IDWriteFontFace4* This) { - return This->lpVtbl->GetStyle(This); -} -static inline HRESULT IDWriteFontFace4_GetFamilyNames(IDWriteFontFace4* This, IDWriteLocalizedStrings** names) { - return This->lpVtbl->GetFamilyNames(This, names); -} -static inline HRESULT IDWriteFontFace4_GetFaceNames(IDWriteFontFace4* This, IDWriteLocalizedStrings** names) { - return This->lpVtbl->GetFaceNames(This, names); -} -static inline HRESULT IDWriteFontFace4_GetInformationalStrings(IDWriteFontFace4* This, DWRITE_INFORMATIONAL_STRING_ID stringid, IDWriteLocalizedStrings** strings, WINBOOL* exists) { - return This->lpVtbl->GetInformationalStrings(This, stringid, strings, exists); -} -static inline WINBOOL IDWriteFontFace4_HasCharacter(IDWriteFontFace4* This, UINT32 character) { - return This->lpVtbl->HasCharacter(This, character); -} -static inline HRESULT IDWriteFontFace4_GetRecommendedRenderingMode(IDWriteFontFace4* This, FLOAT emsize, FLOAT dpi_x, FLOAT dpi_y, const DWRITE_MATRIX* transform, WINBOOL is_sideways, DWRITE_OUTLINE_THRESHOLD threshold, DWRITE_MEASURING_MODE measuring_mode, IDWriteRenderingParams* params, DWRITE_RENDERING_MODE1* rendering_mode, DWRITE_GRID_FIT_MODE* gridfit_mode) { - return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode); -} -static inline WINBOOL IDWriteFontFace4_IsCharacterLocal(IDWriteFontFace4* This, UINT32 character) { - return This->lpVtbl->IsCharacterLocal(This, character); -} -static inline WINBOOL IDWriteFontFace4_IsGlyphLocal(IDWriteFontFace4* This, UINT16 glyph) { - return This->lpVtbl->IsGlyphLocal(This, glyph); -} -static inline HRESULT IDWriteFontFace4_AreCharactersLocal(IDWriteFontFace4* This, const WCHAR* characters, UINT32 count, WINBOOL enqueue_if_not, WINBOOL* are_local) { - return This->lpVtbl->AreCharactersLocal(This, characters, count, enqueue_if_not, are_local); -} -static inline HRESULT IDWriteFontFace4_AreGlyphsLocal(IDWriteFontFace4* This, const UINT16* glyphs, UINT32 count, WINBOOL enqueue_if_not, WINBOOL* are_local) { - return This->lpVtbl->AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local); -} -/*** IDWriteFontFace4 methods ***/ -static inline HRESULT IDWriteFontFace4_GetGlyphImageFormats_(IDWriteFontFace4* This, UINT16 glyph, UINT32 ppem_first, UINT32 ppem_last, DWRITE_GLYPH_IMAGE_FORMATS* formats) { - return This->lpVtbl->GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats); -} -static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace4_GetGlyphImageFormats(IDWriteFontFace4* This) { - return This->lpVtbl->GetGlyphImageFormats(This); -} -static inline HRESULT IDWriteFontFace4_GetGlyphImageData(IDWriteFontFace4* This, UINT16 glyph, UINT32 ppem, DWRITE_GLYPH_IMAGE_FORMATS format, DWRITE_GLYPH_IMAGE_DATA* data, void** context) { - return This->lpVtbl->GetGlyphImageData(This, glyph, ppem, format, data, context); -} -static inline void IDWriteFontFace4_ReleaseGlyphImageData(IDWriteFontFace4* This, void* context) { - This->lpVtbl->ReleaseGlyphImageData(This, context); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontFace4_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontFace5 interface - */ -#ifndef __IDWriteFontFace5_INTERFACE_DEFINED__ -#define __IDWriteFontFace5_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontFace5, 0x98eff3a5, 0xb667, 0x479a, 0xb1, 0x45, 0xe2, 0xfa, 0x5b, 0x9f, 0xdc, 0x29); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("98eff3a5-b667-479a-b145-e2fa5b9fdc29") -IDWriteFontFace5 : public IDWriteFontFace4 { - virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues( - DWRITE_FONT_AXIS_VALUE * values, - UINT32 value_count) = 0; - - virtual WINBOOL STDMETHODCALLTYPE HasVariations() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFontResource( - IDWriteFontResource * *resource) = 0; - - virtual WINBOOL STDMETHODCALLTYPE Equals( - IDWriteFontFace * fontface) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFace5, 0x98eff3a5, 0xb667, 0x479a, 0xb1, 0x45, 0xe2, 0xfa, 0x5b, 0x9f, 0xdc, 0x29) -#endif -#else -typedef struct IDWriteFontFace5Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontFace5* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontFace5* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontFace5* This); - - /*** IDWriteFontFace methods ***/ - DWRITE_FONT_FACE_TYPE(STDMETHODCALLTYPE* GetType)( - IDWriteFontFace5* This); - - HRESULT(STDMETHODCALLTYPE* GetFiles)( - IDWriteFontFace5* This, - UINT32* number_of_files, - IDWriteFontFile** fontfiles); - - UINT32(STDMETHODCALLTYPE* GetIndex)( - IDWriteFontFace5* This); - - DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( - IDWriteFontFace5* This); - - WINBOOL(STDMETHODCALLTYPE* IsSymbolFont)( - IDWriteFontFace5* This); - - void(STDMETHODCALLTYPE* GetMetrics)( - IDWriteFontFace5* This, - DWRITE_FONT_METRICS* metrics); - - UINT16(STDMETHODCALLTYPE* GetGlyphCount)( - IDWriteFontFace5* This); - - HRESULT(STDMETHODCALLTYPE* GetDesignGlyphMetrics)( - IDWriteFontFace5* This, - const UINT16* glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS* metrics, - WINBOOL is_sideways); - - HRESULT(STDMETHODCALLTYPE* GetGlyphIndices)( - IDWriteFontFace5* This, - const UINT32* codepoints, - UINT32 count, - UINT16* glyph_indices); - - HRESULT(STDMETHODCALLTYPE* TryGetFontTable)( - IDWriteFontFace5* This, - UINT32 table_tag, - const void** table_data, - UINT32* table_size, - void** context, - WINBOOL* exists); - - void(STDMETHODCALLTYPE* ReleaseFontTable)( - IDWriteFontFace5* This, - void* table_context); - - HRESULT(STDMETHODCALLTYPE* GetGlyphRunOutline)( - IDWriteFontFace5* This, - FLOAT emSize, - const UINT16* glyph_indices, - const FLOAT* glyph_advances, - const DWRITE_GLYPH_OFFSET* glyph_offsets, - UINT32 glyph_count, - WINBOOL is_sideways, - WINBOOL is_rtl, - IDWriteGeometrySink* geometrysink); - - HRESULT(STDMETHODCALLTYPE* GetRecommendedRenderingMode)( - IDWriteFontFace5* This, - FLOAT emSize, - FLOAT pixels_per_dip, - DWRITE_MEASURING_MODE mode, - IDWriteRenderingParams* params, - DWRITE_RENDERING_MODE* rendering_mode); - - HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleMetrics)( - IDWriteFontFace5* This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_FONT_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphMetrics)( - IDWriteFontFace5* This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - const UINT16* glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS* metrics, - WINBOOL is_sideways); - - /*** IDWriteFontFace1 methods ***/ - void(STDMETHODCALLTYPE* IDWriteFontFace1_GetMetrics)( - IDWriteFontFace5* This, - DWRITE_FONT_METRICS1* metrics); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetGdiCompatibleMetrics)( - IDWriteFontFace5* This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_FONT_METRICS1* metrics); - - void(STDMETHODCALLTYPE* GetCaretMetrics)( - IDWriteFontFace5* This, - DWRITE_CARET_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* GetUnicodeRanges)( - IDWriteFontFace5* This, - UINT32 max_count, - DWRITE_UNICODE_RANGE* ranges, - UINT32* count); - - WINBOOL(STDMETHODCALLTYPE* IsMonospacedFont)( - IDWriteFontFace5* This); - - HRESULT(STDMETHODCALLTYPE* GetDesignGlyphAdvances)( - IDWriteFontFace5* This, - UINT32 glyph_count, - const UINT16* indices, - INT32* advances, - WINBOOL is_sideways); - - HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphAdvances)( - IDWriteFontFace5* This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - WINBOOL is_sideways, - UINT32 glyph_count, - const UINT16* indices, - INT32* advances); - - HRESULT(STDMETHODCALLTYPE* GetKerningPairAdjustments)( - IDWriteFontFace5* This, - UINT32 glyph_count, - const UINT16* indices, - INT32* adjustments); - - WINBOOL(STDMETHODCALLTYPE* HasKerningPairs)( - IDWriteFontFace5* This); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetRecommendedRenderingMode)( - IDWriteFontFace5* This, - FLOAT font_emsize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX* transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_RENDERING_MODE* rendering_mode); - - HRESULT(STDMETHODCALLTYPE* GetVerticalGlyphVariants)( - IDWriteFontFace5* This, - UINT32 glyph_count, - const UINT16* nominal_indices, - UINT16* vertical_indices); - - WINBOOL(STDMETHODCALLTYPE* HasVerticalGlyphVariants)( - IDWriteFontFace5* This); - - /*** IDWriteFontFace2 methods ***/ - WINBOOL(STDMETHODCALLTYPE* IsColorFont)( - IDWriteFontFace5* This); - - UINT32(STDMETHODCALLTYPE* GetColorPaletteCount)( - IDWriteFontFace5* This); - - UINT32(STDMETHODCALLTYPE* GetPaletteEntryCount)( - IDWriteFontFace5* This); - - HRESULT(STDMETHODCALLTYPE* GetPaletteEntries)( - IDWriteFontFace5* This, - UINT32 palette_index, - UINT32 first_entry_index, - UINT32 entry_count, - DWRITE_COLOR_F* entries); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace2_GetRecommendedRenderingMode)( - IDWriteFontFace5* This, - FLOAT fontEmSize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX* transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuringmode, - IDWriteRenderingParams* params, - DWRITE_RENDERING_MODE* renderingmode, - DWRITE_GRID_FIT_MODE* gridfitmode); - - /*** IDWriteFontFace3 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( - IDWriteFontFace5* This, - IDWriteFontFaceReference** reference); - - void(STDMETHODCALLTYPE* GetPanose)( - IDWriteFontFace5* This, - DWRITE_PANOSE* panose); - - DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetWeight)( - IDWriteFontFace5* This); - - DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetStretch)( - IDWriteFontFace5* This); - - DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetStyle)( - IDWriteFontFace5* This); - - HRESULT(STDMETHODCALLTYPE* GetFamilyNames)( - IDWriteFontFace5* This, - IDWriteLocalizedStrings** names); - - HRESULT(STDMETHODCALLTYPE* GetFaceNames)( - IDWriteFontFace5* This, - IDWriteLocalizedStrings** names); - - HRESULT(STDMETHODCALLTYPE* GetInformationalStrings)( - IDWriteFontFace5* This, - DWRITE_INFORMATIONAL_STRING_ID stringid, - IDWriteLocalizedStrings** strings, - WINBOOL* exists); - - WINBOOL(STDMETHODCALLTYPE* HasCharacter)( - IDWriteFontFace5* This, - UINT32 character); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace3_GetRecommendedRenderingMode)( - IDWriteFontFace5* This, - FLOAT emsize, - FLOAT dpi_x, - FLOAT dpi_y, - const DWRITE_MATRIX* transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - IDWriteRenderingParams* params, - DWRITE_RENDERING_MODE1* rendering_mode, - DWRITE_GRID_FIT_MODE* gridfit_mode); - - WINBOOL(STDMETHODCALLTYPE* IsCharacterLocal)( - IDWriteFontFace5* This, - UINT32 character); - - WINBOOL(STDMETHODCALLTYPE* IsGlyphLocal)( - IDWriteFontFace5* This, - UINT16 glyph); - - HRESULT(STDMETHODCALLTYPE* AreCharactersLocal)( - IDWriteFontFace5* This, - const WCHAR* characters, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL* are_local); - - HRESULT(STDMETHODCALLTYPE* AreGlyphsLocal)( - IDWriteFontFace5* This, - const UINT16* glyphs, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL* are_local); - - /*** IDWriteFontFace4 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetGlyphImageFormats_)( - IDWriteFontFace5* This, - UINT16 glyph, - UINT32 ppem_first, - UINT32 ppem_last, - DWRITE_GLYPH_IMAGE_FORMATS* formats); - - DWRITE_GLYPH_IMAGE_FORMATS(STDMETHODCALLTYPE* GetGlyphImageFormats)( - IDWriteFontFace5* This); - - HRESULT(STDMETHODCALLTYPE* GetGlyphImageData)( - IDWriteFontFace5* This, - UINT16 glyph, - UINT32 ppem, - DWRITE_GLYPH_IMAGE_FORMATS format, - DWRITE_GLYPH_IMAGE_DATA* data, - void** context); - - void(STDMETHODCALLTYPE* ReleaseGlyphImageData)( - IDWriteFontFace5* This, - void* context); - - /*** IDWriteFontFace5 methods ***/ - UINT32(STDMETHODCALLTYPE* GetFontAxisValueCount)( - IDWriteFontFace5* This); - - HRESULT(STDMETHODCALLTYPE* GetFontAxisValues)( - IDWriteFontFace5* This, - DWRITE_FONT_AXIS_VALUE* values, - UINT32 value_count); - - WINBOOL(STDMETHODCALLTYPE* HasVariations)( - IDWriteFontFace5* This); - - HRESULT(STDMETHODCALLTYPE* GetFontResource)( - IDWriteFontFace5* This, - IDWriteFontResource** resource); - - WINBOOL(STDMETHODCALLTYPE* Equals)( - IDWriteFontFace5* This, - IDWriteFontFace* fontface); - - END_INTERFACE -} IDWriteFontFace5Vtbl; - -interface IDWriteFontFace5 { - CONST_VTBL IDWriteFontFace5Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontFace5_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontFace5_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontFace5_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontFace methods ***/ -#define IDWriteFontFace5_GetType(This) (This)->lpVtbl->GetType(This) -#define IDWriteFontFace5_GetFiles(This, number_of_files, fontfiles) (This)->lpVtbl->GetFiles(This, number_of_files, fontfiles) -#define IDWriteFontFace5_GetIndex(This) (This)->lpVtbl->GetIndex(This) -#define IDWriteFontFace5_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) -#define IDWriteFontFace5_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) -#define IDWriteFontFace5_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) -#define IDWriteFontFace5_GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) -#define IDWriteFontFace5_GetGlyphIndices(This, codepoints, count, glyph_indices) (This)->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices) -#define IDWriteFontFace5_TryGetFontTable(This, table_tag, table_data, table_size, context, exists) (This)->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists) -#define IDWriteFontFace5_ReleaseFontTable(This, table_context) (This)->lpVtbl->ReleaseFontTable(This, table_context) -#define IDWriteFontFace5_GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) -#define IDWriteFontFace5_GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) -/*** IDWriteFontFace1 methods ***/ -#define IDWriteFontFace5_GetMetrics(This, metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics) -#define IDWriteFontFace5_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) -#define IDWriteFontFace5_GetCaretMetrics(This, metrics) (This)->lpVtbl->GetCaretMetrics(This, metrics) -#define IDWriteFontFace5_GetUnicodeRanges(This, max_count, ranges, count) (This)->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count) -#define IDWriteFontFace5_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) -#define IDWriteFontFace5_GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) -#define IDWriteFontFace5_GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) -#define IDWriteFontFace5_GetKerningPairAdjustments(This, glyph_count, indices, adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments) -#define IDWriteFontFace5_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) -#define IDWriteFontFace5_GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) -#define IDWriteFontFace5_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) -/*** IDWriteFontFace2 methods ***/ -#define IDWriteFontFace5_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) -#define IDWriteFontFace5_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) -#define IDWriteFontFace5_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) -#define IDWriteFontFace5_GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) (This)->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) -/*** IDWriteFontFace3 methods ***/ -#define IDWriteFontFace5_GetFontFaceReference(This, reference) (This)->lpVtbl->GetFontFaceReference(This, reference) -#define IDWriteFontFace5_GetPanose(This, panose) (This)->lpVtbl->GetPanose(This, panose) -#define IDWriteFontFace5_GetWeight(This) (This)->lpVtbl->GetWeight(This) -#define IDWriteFontFace5_GetStretch(This) (This)->lpVtbl->GetStretch(This) -#define IDWriteFontFace5_GetStyle(This) (This)->lpVtbl->GetStyle(This) -#define IDWriteFontFace5_GetFamilyNames(This, names) (This)->lpVtbl->GetFamilyNames(This, names) -#define IDWriteFontFace5_GetFaceNames(This, names) (This)->lpVtbl->GetFaceNames(This, names) -#define IDWriteFontFace5_GetInformationalStrings(This, stringid, strings, exists) (This)->lpVtbl->GetInformationalStrings(This, stringid, strings, exists) -#define IDWriteFontFace5_HasCharacter(This, character) (This)->lpVtbl->HasCharacter(This, character) -#define IDWriteFontFace5_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode) -#define IDWriteFontFace5_IsCharacterLocal(This, character) (This)->lpVtbl->IsCharacterLocal(This, character) -#define IDWriteFontFace5_IsGlyphLocal(This, glyph) (This)->lpVtbl->IsGlyphLocal(This, glyph) -#define IDWriteFontFace5_AreCharactersLocal(This, characters, count, enqueue_if_not, are_local) (This)->lpVtbl->AreCharactersLocal(This, characters, count, enqueue_if_not, are_local) -#define IDWriteFontFace5_AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local) (This)->lpVtbl->AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local) -/*** IDWriteFontFace4 methods ***/ -#define IDWriteFontFace5_GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats) (This)->lpVtbl->GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats) -#define IDWriteFontFace5_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This) -#define IDWriteFontFace5_GetGlyphImageData(This, glyph, ppem, format, data, context) (This)->lpVtbl->GetGlyphImageData(This, glyph, ppem, format, data, context) -#define IDWriteFontFace5_ReleaseGlyphImageData(This, context) (This)->lpVtbl->ReleaseGlyphImageData(This, context) -/*** IDWriteFontFace5 methods ***/ -#define IDWriteFontFace5_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This) -#define IDWriteFontFace5_GetFontAxisValues(This, values, value_count) (This)->lpVtbl->GetFontAxisValues(This, values, value_count) -#define IDWriteFontFace5_HasVariations(This) (This)->lpVtbl->HasVariations(This) -#define IDWriteFontFace5_GetFontResource(This, resource) (This)->lpVtbl->GetFontResource(This, resource) -#define IDWriteFontFace5_Equals(This, fontface) (This)->lpVtbl->Equals(This, fontface) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFace5_QueryInterface(IDWriteFontFace5* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontFace5_AddRef(IDWriteFontFace5* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontFace5_Release(IDWriteFontFace5* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontFace methods ***/ -static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace5_GetType(IDWriteFontFace5* This) { - return This->lpVtbl->GetType(This); -} -static inline HRESULT IDWriteFontFace5_GetFiles(IDWriteFontFace5* This, UINT32* number_of_files, IDWriteFontFile** fontfiles) { - return This->lpVtbl->GetFiles(This, number_of_files, fontfiles); -} -static inline UINT32 IDWriteFontFace5_GetIndex(IDWriteFontFace5* This) { - return This->lpVtbl->GetIndex(This); -} -static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace5_GetSimulations(IDWriteFontFace5* This) { - return This->lpVtbl->GetSimulations(This); -} -static inline WINBOOL IDWriteFontFace5_IsSymbolFont(IDWriteFontFace5* This) { - return This->lpVtbl->IsSymbolFont(This); -} -static inline UINT16 IDWriteFontFace5_GetGlyphCount(IDWriteFontFace5* This) { - return This->lpVtbl->GetGlyphCount(This); -} -static inline HRESULT IDWriteFontFace5_GetDesignGlyphMetrics(IDWriteFontFace5* This, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways); -} -static inline HRESULT IDWriteFontFace5_GetGlyphIndices(IDWriteFontFace5* This, const UINT32* codepoints, UINT32 count, UINT16* glyph_indices) { - return This->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices); -} -static inline HRESULT IDWriteFontFace5_TryGetFontTable(IDWriteFontFace5* This, UINT32 table_tag, const void** table_data, UINT32* table_size, void** context, WINBOOL* exists) { - return This->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists); -} -static inline void IDWriteFontFace5_ReleaseFontTable(IDWriteFontFace5* This, void* table_context) { - This->lpVtbl->ReleaseFontTable(This, table_context); -} -static inline HRESULT IDWriteFontFace5_GetGlyphRunOutline(IDWriteFontFace5* This, FLOAT emSize, const UINT16* glyph_indices, const FLOAT* glyph_advances, const DWRITE_GLYPH_OFFSET* glyph_offsets, UINT32 glyph_count, WINBOOL is_sideways, WINBOOL is_rtl, IDWriteGeometrySink* geometrysink) { - return This->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink); -} -static inline HRESULT IDWriteFontFace5_GetGdiCompatibleGlyphMetrics(IDWriteFontFace5* This, FLOAT emSize, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { - return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways); -} -/*** IDWriteFontFace1 methods ***/ -static inline void IDWriteFontFace5_GetMetrics(IDWriteFontFace5* This, DWRITE_FONT_METRICS1* metrics) { - This->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics); -} -static inline HRESULT IDWriteFontFace5_GetGdiCompatibleMetrics(IDWriteFontFace5* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, DWRITE_FONT_METRICS1* metrics) { - return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics); -} -static inline void IDWriteFontFace5_GetCaretMetrics(IDWriteFontFace5* This, DWRITE_CARET_METRICS* metrics) { - This->lpVtbl->GetCaretMetrics(This, metrics); -} -static inline HRESULT IDWriteFontFace5_GetUnicodeRanges(IDWriteFontFace5* This, UINT32 max_count, DWRITE_UNICODE_RANGE* ranges, UINT32* count) { - return This->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count); -} -static inline WINBOOL IDWriteFontFace5_IsMonospacedFont(IDWriteFontFace5* This) { - return This->lpVtbl->IsMonospacedFont(This); -} -static inline HRESULT IDWriteFontFace5_GetDesignGlyphAdvances(IDWriteFontFace5* This, UINT32 glyph_count, const UINT16* indices, INT32* advances, WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways); -} -static inline HRESULT IDWriteFontFace5_GetGdiCompatibleGlyphAdvances(IDWriteFontFace5* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, WINBOOL is_sideways, UINT32 glyph_count, const UINT16* indices, INT32* advances) { - return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances); -} -static inline HRESULT IDWriteFontFace5_GetKerningPairAdjustments(IDWriteFontFace5* This, UINT32 glyph_count, const UINT16* indices, INT32* adjustments) { - return This->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments); -} -static inline WINBOOL IDWriteFontFace5_HasKerningPairs(IDWriteFontFace5* This) { - return This->lpVtbl->HasKerningPairs(This); -} -static inline HRESULT IDWriteFontFace5_GetVerticalGlyphVariants(IDWriteFontFace5* This, UINT32 glyph_count, const UINT16* nominal_indices, UINT16* vertical_indices) { - return This->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices); -} -static inline WINBOOL IDWriteFontFace5_HasVerticalGlyphVariants(IDWriteFontFace5* This) { - return This->lpVtbl->HasVerticalGlyphVariants(This); -} -/*** IDWriteFontFace2 methods ***/ -static inline WINBOOL IDWriteFontFace5_IsColorFont(IDWriteFontFace5* This) { - return This->lpVtbl->IsColorFont(This); -} -static inline UINT32 IDWriteFontFace5_GetColorPaletteCount(IDWriteFontFace5* This) { - return This->lpVtbl->GetColorPaletteCount(This); -} -static inline UINT32 IDWriteFontFace5_GetPaletteEntryCount(IDWriteFontFace5* This) { - return This->lpVtbl->GetPaletteEntryCount(This); -} -static inline HRESULT IDWriteFontFace5_GetPaletteEntries(IDWriteFontFace5* This, UINT32 palette_index, UINT32 first_entry_index, UINT32 entry_count, DWRITE_COLOR_F* entries) { - return This->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries); -} -/*** IDWriteFontFace3 methods ***/ -static inline HRESULT IDWriteFontFace5_GetFontFaceReference(IDWriteFontFace5* This, IDWriteFontFaceReference** reference) { - return This->lpVtbl->GetFontFaceReference(This, reference); -} -static inline void IDWriteFontFace5_GetPanose(IDWriteFontFace5* This, DWRITE_PANOSE* panose) { - This->lpVtbl->GetPanose(This, panose); -} -static inline DWRITE_FONT_WEIGHT IDWriteFontFace5_GetWeight(IDWriteFontFace5* This) { - return This->lpVtbl->GetWeight(This); -} -static inline DWRITE_FONT_STRETCH IDWriteFontFace5_GetStretch(IDWriteFontFace5* This) { - return This->lpVtbl->GetStretch(This); -} -static inline DWRITE_FONT_STYLE IDWriteFontFace5_GetStyle(IDWriteFontFace5* This) { - return This->lpVtbl->GetStyle(This); -} -static inline HRESULT IDWriteFontFace5_GetFamilyNames(IDWriteFontFace5* This, IDWriteLocalizedStrings** names) { - return This->lpVtbl->GetFamilyNames(This, names); -} -static inline HRESULT IDWriteFontFace5_GetFaceNames(IDWriteFontFace5* This, IDWriteLocalizedStrings** names) { - return This->lpVtbl->GetFaceNames(This, names); -} -static inline HRESULT IDWriteFontFace5_GetInformationalStrings(IDWriteFontFace5* This, DWRITE_INFORMATIONAL_STRING_ID stringid, IDWriteLocalizedStrings** strings, WINBOOL* exists) { - return This->lpVtbl->GetInformationalStrings(This, stringid, strings, exists); -} -static inline WINBOOL IDWriteFontFace5_HasCharacter(IDWriteFontFace5* This, UINT32 character) { - return This->lpVtbl->HasCharacter(This, character); -} -static inline HRESULT IDWriteFontFace5_GetRecommendedRenderingMode(IDWriteFontFace5* This, FLOAT emsize, FLOAT dpi_x, FLOAT dpi_y, const DWRITE_MATRIX* transform, WINBOOL is_sideways, DWRITE_OUTLINE_THRESHOLD threshold, DWRITE_MEASURING_MODE measuring_mode, IDWriteRenderingParams* params, DWRITE_RENDERING_MODE1* rendering_mode, DWRITE_GRID_FIT_MODE* gridfit_mode) { - return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode); -} -static inline WINBOOL IDWriteFontFace5_IsCharacterLocal(IDWriteFontFace5* This, UINT32 character) { - return This->lpVtbl->IsCharacterLocal(This, character); -} -static inline WINBOOL IDWriteFontFace5_IsGlyphLocal(IDWriteFontFace5* This, UINT16 glyph) { - return This->lpVtbl->IsGlyphLocal(This, glyph); -} -static inline HRESULT IDWriteFontFace5_AreCharactersLocal(IDWriteFontFace5* This, const WCHAR* characters, UINT32 count, WINBOOL enqueue_if_not, WINBOOL* are_local) { - return This->lpVtbl->AreCharactersLocal(This, characters, count, enqueue_if_not, are_local); -} -static inline HRESULT IDWriteFontFace5_AreGlyphsLocal(IDWriteFontFace5* This, const UINT16* glyphs, UINT32 count, WINBOOL enqueue_if_not, WINBOOL* are_local) { - return This->lpVtbl->AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local); -} -/*** IDWriteFontFace4 methods ***/ -static inline HRESULT IDWriteFontFace5_GetGlyphImageFormats_(IDWriteFontFace5* This, UINT16 glyph, UINT32 ppem_first, UINT32 ppem_last, DWRITE_GLYPH_IMAGE_FORMATS* formats) { - return This->lpVtbl->GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats); -} -static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace5_GetGlyphImageFormats(IDWriteFontFace5* This) { - return This->lpVtbl->GetGlyphImageFormats(This); -} -static inline HRESULT IDWriteFontFace5_GetGlyphImageData(IDWriteFontFace5* This, UINT16 glyph, UINT32 ppem, DWRITE_GLYPH_IMAGE_FORMATS format, DWRITE_GLYPH_IMAGE_DATA* data, void** context) { - return This->lpVtbl->GetGlyphImageData(This, glyph, ppem, format, data, context); -} -static inline void IDWriteFontFace5_ReleaseGlyphImageData(IDWriteFontFace5* This, void* context) { - This->lpVtbl->ReleaseGlyphImageData(This, context); -} -/*** IDWriteFontFace5 methods ***/ -static inline UINT32 IDWriteFontFace5_GetFontAxisValueCount(IDWriteFontFace5* This) { - return This->lpVtbl->GetFontAxisValueCount(This); -} -static inline HRESULT IDWriteFontFace5_GetFontAxisValues(IDWriteFontFace5* This, DWRITE_FONT_AXIS_VALUE* values, UINT32 value_count) { - return This->lpVtbl->GetFontAxisValues(This, values, value_count); -} -static inline WINBOOL IDWriteFontFace5_HasVariations(IDWriteFontFace5* This) { - return This->lpVtbl->HasVariations(This); -} -static inline HRESULT IDWriteFontFace5_GetFontResource(IDWriteFontFace5* This, IDWriteFontResource** resource) { - return This->lpVtbl->GetFontResource(This, resource); -} -static inline WINBOOL IDWriteFontFace5_Equals(IDWriteFontFace5* This, IDWriteFontFace* fontface) { - return This->lpVtbl->Equals(This, fontface); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontFace5_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontFace6 interface - */ -#ifndef __IDWriteFontFace6_INTERFACE_DEFINED__ -#define __IDWriteFontFace6_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontFace6, 0xc4b1fe1b, 0x6e84, 0x47d5, 0xb5, 0x4c, 0xa5, 0x97, 0x98, 0x1b, 0x06, 0xad); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("c4b1fe1b-6e84-47d5-b54c-a597981b06ad") -IDWriteFontFace6 : public IDWriteFontFace5 { - virtual HRESULT STDMETHODCALLTYPE GetFamilyNames( - DWRITE_FONT_FAMILY_MODEL font_family_model, - IDWriteLocalizedStrings * *names) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFaceNames( - DWRITE_FONT_FAMILY_MODEL font_family_model, - IDWriteLocalizedStrings * *names) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFace6, 0xc4b1fe1b, 0x6e84, 0x47d5, 0xb5, 0x4c, 0xa5, 0x97, 0x98, 0x1b, 0x06, 0xad) -#endif -#else -typedef struct IDWriteFontFace6Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontFace6* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontFace6* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontFace6* This); - - /*** IDWriteFontFace methods ***/ - DWRITE_FONT_FACE_TYPE(STDMETHODCALLTYPE* GetType)( - IDWriteFontFace6* This); - - HRESULT(STDMETHODCALLTYPE* GetFiles)( - IDWriteFontFace6* This, - UINT32* number_of_files, - IDWriteFontFile** fontfiles); - - UINT32(STDMETHODCALLTYPE* GetIndex)( - IDWriteFontFace6* This); - - DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( - IDWriteFontFace6* This); - - WINBOOL(STDMETHODCALLTYPE* IsSymbolFont)( - IDWriteFontFace6* This); - - void(STDMETHODCALLTYPE* GetMetrics)( - IDWriteFontFace6* This, - DWRITE_FONT_METRICS* metrics); - - UINT16(STDMETHODCALLTYPE* GetGlyphCount)( - IDWriteFontFace6* This); - - HRESULT(STDMETHODCALLTYPE* GetDesignGlyphMetrics)( - IDWriteFontFace6* This, - const UINT16* glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS* metrics, - WINBOOL is_sideways); - - HRESULT(STDMETHODCALLTYPE* GetGlyphIndices)( - IDWriteFontFace6* This, - const UINT32* codepoints, - UINT32 count, - UINT16* glyph_indices); - - HRESULT(STDMETHODCALLTYPE* TryGetFontTable)( - IDWriteFontFace6* This, - UINT32 table_tag, - const void** table_data, - UINT32* table_size, - void** context, - WINBOOL* exists); - - void(STDMETHODCALLTYPE* ReleaseFontTable)( - IDWriteFontFace6* This, - void* table_context); - - HRESULT(STDMETHODCALLTYPE* GetGlyphRunOutline)( - IDWriteFontFace6* This, - FLOAT emSize, - const UINT16* glyph_indices, - const FLOAT* glyph_advances, - const DWRITE_GLYPH_OFFSET* glyph_offsets, - UINT32 glyph_count, - WINBOOL is_sideways, - WINBOOL is_rtl, - IDWriteGeometrySink* geometrysink); - - HRESULT(STDMETHODCALLTYPE* GetRecommendedRenderingMode)( - IDWriteFontFace6* This, - FLOAT emSize, - FLOAT pixels_per_dip, - DWRITE_MEASURING_MODE mode, - IDWriteRenderingParams* params, - DWRITE_RENDERING_MODE* rendering_mode); - - HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleMetrics)( - IDWriteFontFace6* This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_FONT_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphMetrics)( - IDWriteFontFace6* This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - const UINT16* glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS* metrics, - WINBOOL is_sideways); - - /*** IDWriteFontFace1 methods ***/ - void(STDMETHODCALLTYPE* IDWriteFontFace1_GetMetrics)( - IDWriteFontFace6* This, - DWRITE_FONT_METRICS1* metrics); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetGdiCompatibleMetrics)( - IDWriteFontFace6* This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_FONT_METRICS1* metrics); - - void(STDMETHODCALLTYPE* GetCaretMetrics)( - IDWriteFontFace6* This, - DWRITE_CARET_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* GetUnicodeRanges)( - IDWriteFontFace6* This, - UINT32 max_count, - DWRITE_UNICODE_RANGE* ranges, - UINT32* count); - - WINBOOL(STDMETHODCALLTYPE* IsMonospacedFont)( - IDWriteFontFace6* This); - - HRESULT(STDMETHODCALLTYPE* GetDesignGlyphAdvances)( - IDWriteFontFace6* This, - UINT32 glyph_count, - const UINT16* indices, - INT32* advances, - WINBOOL is_sideways); - - HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphAdvances)( - IDWriteFontFace6* This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - WINBOOL is_sideways, - UINT32 glyph_count, - const UINT16* indices, - INT32* advances); - - HRESULT(STDMETHODCALLTYPE* GetKerningPairAdjustments)( - IDWriteFontFace6* This, - UINT32 glyph_count, - const UINT16* indices, - INT32* adjustments); - - WINBOOL(STDMETHODCALLTYPE* HasKerningPairs)( - IDWriteFontFace6* This); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetRecommendedRenderingMode)( - IDWriteFontFace6* This, - FLOAT font_emsize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX* transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_RENDERING_MODE* rendering_mode); - - HRESULT(STDMETHODCALLTYPE* GetVerticalGlyphVariants)( - IDWriteFontFace6* This, - UINT32 glyph_count, - const UINT16* nominal_indices, - UINT16* vertical_indices); - - WINBOOL(STDMETHODCALLTYPE* HasVerticalGlyphVariants)( - IDWriteFontFace6* This); - - /*** IDWriteFontFace2 methods ***/ - WINBOOL(STDMETHODCALLTYPE* IsColorFont)( - IDWriteFontFace6* This); - - UINT32(STDMETHODCALLTYPE* GetColorPaletteCount)( - IDWriteFontFace6* This); - - UINT32(STDMETHODCALLTYPE* GetPaletteEntryCount)( - IDWriteFontFace6* This); - - HRESULT(STDMETHODCALLTYPE* GetPaletteEntries)( - IDWriteFontFace6* This, - UINT32 palette_index, - UINT32 first_entry_index, - UINT32 entry_count, - DWRITE_COLOR_F* entries); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace2_GetRecommendedRenderingMode)( - IDWriteFontFace6* This, - FLOAT fontEmSize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX* transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuringmode, - IDWriteRenderingParams* params, - DWRITE_RENDERING_MODE* renderingmode, - DWRITE_GRID_FIT_MODE* gridfitmode); - - /*** IDWriteFontFace3 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( - IDWriteFontFace6* This, - IDWriteFontFaceReference** reference); - - void(STDMETHODCALLTYPE* GetPanose)( - IDWriteFontFace6* This, - DWRITE_PANOSE* panose); - - DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetWeight)( - IDWriteFontFace6* This); - - DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetStretch)( - IDWriteFontFace6* This); - - DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetStyle)( - IDWriteFontFace6* This); - - HRESULT(STDMETHODCALLTYPE* GetFamilyNames)( - IDWriteFontFace6* This, - IDWriteLocalizedStrings** names); - - HRESULT(STDMETHODCALLTYPE* GetFaceNames)( - IDWriteFontFace6* This, - IDWriteLocalizedStrings** names); - - HRESULT(STDMETHODCALLTYPE* GetInformationalStrings)( - IDWriteFontFace6* This, - DWRITE_INFORMATIONAL_STRING_ID stringid, - IDWriteLocalizedStrings** strings, - WINBOOL* exists); - - WINBOOL(STDMETHODCALLTYPE* HasCharacter)( - IDWriteFontFace6* This, - UINT32 character); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace3_GetRecommendedRenderingMode)( - IDWriteFontFace6* This, - FLOAT emsize, - FLOAT dpi_x, - FLOAT dpi_y, - const DWRITE_MATRIX* transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - IDWriteRenderingParams* params, - DWRITE_RENDERING_MODE1* rendering_mode, - DWRITE_GRID_FIT_MODE* gridfit_mode); - - WINBOOL(STDMETHODCALLTYPE* IsCharacterLocal)( - IDWriteFontFace6* This, - UINT32 character); - - WINBOOL(STDMETHODCALLTYPE* IsGlyphLocal)( - IDWriteFontFace6* This, - UINT16 glyph); - - HRESULT(STDMETHODCALLTYPE* AreCharactersLocal)( - IDWriteFontFace6* This, - const WCHAR* characters, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL* are_local); - - HRESULT(STDMETHODCALLTYPE* AreGlyphsLocal)( - IDWriteFontFace6* This, - const UINT16* glyphs, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL* are_local); - - /*** IDWriteFontFace4 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetGlyphImageFormats_)( - IDWriteFontFace6* This, - UINT16 glyph, - UINT32 ppem_first, - UINT32 ppem_last, - DWRITE_GLYPH_IMAGE_FORMATS* formats); - - DWRITE_GLYPH_IMAGE_FORMATS(STDMETHODCALLTYPE* GetGlyphImageFormats)( - IDWriteFontFace6* This); - - HRESULT(STDMETHODCALLTYPE* GetGlyphImageData)( - IDWriteFontFace6* This, - UINT16 glyph, - UINT32 ppem, - DWRITE_GLYPH_IMAGE_FORMATS format, - DWRITE_GLYPH_IMAGE_DATA* data, - void** context); - - void(STDMETHODCALLTYPE* ReleaseGlyphImageData)( - IDWriteFontFace6* This, - void* context); - - /*** IDWriteFontFace5 methods ***/ - UINT32(STDMETHODCALLTYPE* GetFontAxisValueCount)( - IDWriteFontFace6* This); - - HRESULT(STDMETHODCALLTYPE* GetFontAxisValues)( - IDWriteFontFace6* This, - DWRITE_FONT_AXIS_VALUE* values, - UINT32 value_count); - - WINBOOL(STDMETHODCALLTYPE* HasVariations)( - IDWriteFontFace6* This); - - HRESULT(STDMETHODCALLTYPE* GetFontResource)( - IDWriteFontFace6* This, - IDWriteFontResource** resource); - - WINBOOL(STDMETHODCALLTYPE* Equals)( - IDWriteFontFace6* This, - IDWriteFontFace* fontface); - - /*** IDWriteFontFace6 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace6_GetFamilyNames)( - IDWriteFontFace6* This, - DWRITE_FONT_FAMILY_MODEL font_family_model, - IDWriteLocalizedStrings** names); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace6_GetFaceNames)( - IDWriteFontFace6* This, - DWRITE_FONT_FAMILY_MODEL font_family_model, - IDWriteLocalizedStrings** names); - - END_INTERFACE -} IDWriteFontFace6Vtbl; - -interface IDWriteFontFace6 { - CONST_VTBL IDWriteFontFace6Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontFace6_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontFace6_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontFace6_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontFace methods ***/ -#define IDWriteFontFace6_GetType(This) (This)->lpVtbl->GetType(This) -#define IDWriteFontFace6_GetFiles(This, number_of_files, fontfiles) (This)->lpVtbl->GetFiles(This, number_of_files, fontfiles) -#define IDWriteFontFace6_GetIndex(This) (This)->lpVtbl->GetIndex(This) -#define IDWriteFontFace6_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) -#define IDWriteFontFace6_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) -#define IDWriteFontFace6_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) -#define IDWriteFontFace6_GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) -#define IDWriteFontFace6_GetGlyphIndices(This, codepoints, count, glyph_indices) (This)->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices) -#define IDWriteFontFace6_TryGetFontTable(This, table_tag, table_data, table_size, context, exists) (This)->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists) -#define IDWriteFontFace6_ReleaseFontTable(This, table_context) (This)->lpVtbl->ReleaseFontTable(This, table_context) -#define IDWriteFontFace6_GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) -#define IDWriteFontFace6_GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) -/*** IDWriteFontFace1 methods ***/ -#define IDWriteFontFace6_GetMetrics(This, metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics) -#define IDWriteFontFace6_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) -#define IDWriteFontFace6_GetCaretMetrics(This, metrics) (This)->lpVtbl->GetCaretMetrics(This, metrics) -#define IDWriteFontFace6_GetUnicodeRanges(This, max_count, ranges, count) (This)->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count) -#define IDWriteFontFace6_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) -#define IDWriteFontFace6_GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) -#define IDWriteFontFace6_GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) -#define IDWriteFontFace6_GetKerningPairAdjustments(This, glyph_count, indices, adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments) -#define IDWriteFontFace6_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) -#define IDWriteFontFace6_GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) -#define IDWriteFontFace6_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) -/*** IDWriteFontFace2 methods ***/ -#define IDWriteFontFace6_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) -#define IDWriteFontFace6_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) -#define IDWriteFontFace6_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) -#define IDWriteFontFace6_GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) (This)->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) -/*** IDWriteFontFace3 methods ***/ -#define IDWriteFontFace6_GetFontFaceReference(This, reference) (This)->lpVtbl->GetFontFaceReference(This, reference) -#define IDWriteFontFace6_GetPanose(This, panose) (This)->lpVtbl->GetPanose(This, panose) -#define IDWriteFontFace6_GetWeight(This) (This)->lpVtbl->GetWeight(This) -#define IDWriteFontFace6_GetStretch(This) (This)->lpVtbl->GetStretch(This) -#define IDWriteFontFace6_GetStyle(This) (This)->lpVtbl->GetStyle(This) -#define IDWriteFontFace6_GetInformationalStrings(This, stringid, strings, exists) (This)->lpVtbl->GetInformationalStrings(This, stringid, strings, exists) -#define IDWriteFontFace6_HasCharacter(This, character) (This)->lpVtbl->HasCharacter(This, character) -#define IDWriteFontFace6_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode) -#define IDWriteFontFace6_IsCharacterLocal(This, character) (This)->lpVtbl->IsCharacterLocal(This, character) -#define IDWriteFontFace6_IsGlyphLocal(This, glyph) (This)->lpVtbl->IsGlyphLocal(This, glyph) -#define IDWriteFontFace6_AreCharactersLocal(This, characters, count, enqueue_if_not, are_local) (This)->lpVtbl->AreCharactersLocal(This, characters, count, enqueue_if_not, are_local) -#define IDWriteFontFace6_AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local) (This)->lpVtbl->AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local) -/*** IDWriteFontFace4 methods ***/ -#define IDWriteFontFace6_GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats) (This)->lpVtbl->GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats) -#define IDWriteFontFace6_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This) -#define IDWriteFontFace6_GetGlyphImageData(This, glyph, ppem, format, data, context) (This)->lpVtbl->GetGlyphImageData(This, glyph, ppem, format, data, context) -#define IDWriteFontFace6_ReleaseGlyphImageData(This, context) (This)->lpVtbl->ReleaseGlyphImageData(This, context) -/*** IDWriteFontFace5 methods ***/ -#define IDWriteFontFace6_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This) -#define IDWriteFontFace6_GetFontAxisValues(This, values, value_count) (This)->lpVtbl->GetFontAxisValues(This, values, value_count) -#define IDWriteFontFace6_HasVariations(This) (This)->lpVtbl->HasVariations(This) -#define IDWriteFontFace6_GetFontResource(This, resource) (This)->lpVtbl->GetFontResource(This, resource) -#define IDWriteFontFace6_Equals(This, fontface) (This)->lpVtbl->Equals(This, fontface) -/*** IDWriteFontFace6 methods ***/ -#define IDWriteFontFace6_GetFamilyNames(This, font_family_model, names) (This)->lpVtbl->IDWriteFontFace6_GetFamilyNames(This, font_family_model, names) -#define IDWriteFontFace6_GetFaceNames(This, font_family_model, names) (This)->lpVtbl->IDWriteFontFace6_GetFaceNames(This, font_family_model, names) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFace6_QueryInterface(IDWriteFontFace6* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontFace6_AddRef(IDWriteFontFace6* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontFace6_Release(IDWriteFontFace6* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontFace methods ***/ -static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace6_GetType(IDWriteFontFace6* This) { - return This->lpVtbl->GetType(This); -} -static inline HRESULT IDWriteFontFace6_GetFiles(IDWriteFontFace6* This, UINT32* number_of_files, IDWriteFontFile** fontfiles) { - return This->lpVtbl->GetFiles(This, number_of_files, fontfiles); -} -static inline UINT32 IDWriteFontFace6_GetIndex(IDWriteFontFace6* This) { - return This->lpVtbl->GetIndex(This); -} -static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace6_GetSimulations(IDWriteFontFace6* This) { - return This->lpVtbl->GetSimulations(This); -} -static inline WINBOOL IDWriteFontFace6_IsSymbolFont(IDWriteFontFace6* This) { - return This->lpVtbl->IsSymbolFont(This); -} -static inline UINT16 IDWriteFontFace6_GetGlyphCount(IDWriteFontFace6* This) { - return This->lpVtbl->GetGlyphCount(This); -} -static inline HRESULT IDWriteFontFace6_GetDesignGlyphMetrics(IDWriteFontFace6* This, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways); -} -static inline HRESULT IDWriteFontFace6_GetGlyphIndices(IDWriteFontFace6* This, const UINT32* codepoints, UINT32 count, UINT16* glyph_indices) { - return This->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices); -} -static inline HRESULT IDWriteFontFace6_TryGetFontTable(IDWriteFontFace6* This, UINT32 table_tag, const void** table_data, UINT32* table_size, void** context, WINBOOL* exists) { - return This->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists); -} -static inline void IDWriteFontFace6_ReleaseFontTable(IDWriteFontFace6* This, void* table_context) { - This->lpVtbl->ReleaseFontTable(This, table_context); -} -static inline HRESULT IDWriteFontFace6_GetGlyphRunOutline(IDWriteFontFace6* This, FLOAT emSize, const UINT16* glyph_indices, const FLOAT* glyph_advances, const DWRITE_GLYPH_OFFSET* glyph_offsets, UINT32 glyph_count, WINBOOL is_sideways, WINBOOL is_rtl, IDWriteGeometrySink* geometrysink) { - return This->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink); -} -static inline HRESULT IDWriteFontFace6_GetGdiCompatibleGlyphMetrics(IDWriteFontFace6* This, FLOAT emSize, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { - return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways); -} -/*** IDWriteFontFace1 methods ***/ -static inline void IDWriteFontFace6_GetMetrics(IDWriteFontFace6* This, DWRITE_FONT_METRICS1* metrics) { - This->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics); -} -static inline HRESULT IDWriteFontFace6_GetGdiCompatibleMetrics(IDWriteFontFace6* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, DWRITE_FONT_METRICS1* metrics) { - return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics); -} -static inline void IDWriteFontFace6_GetCaretMetrics(IDWriteFontFace6* This, DWRITE_CARET_METRICS* metrics) { - This->lpVtbl->GetCaretMetrics(This, metrics); -} -static inline HRESULT IDWriteFontFace6_GetUnicodeRanges(IDWriteFontFace6* This, UINT32 max_count, DWRITE_UNICODE_RANGE* ranges, UINT32* count) { - return This->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count); -} -static inline WINBOOL IDWriteFontFace6_IsMonospacedFont(IDWriteFontFace6* This) { - return This->lpVtbl->IsMonospacedFont(This); -} -static inline HRESULT IDWriteFontFace6_GetDesignGlyphAdvances(IDWriteFontFace6* This, UINT32 glyph_count, const UINT16* indices, INT32* advances, WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways); -} -static inline HRESULT IDWriteFontFace6_GetGdiCompatibleGlyphAdvances(IDWriteFontFace6* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, WINBOOL is_sideways, UINT32 glyph_count, const UINT16* indices, INT32* advances) { - return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances); -} -static inline HRESULT IDWriteFontFace6_GetKerningPairAdjustments(IDWriteFontFace6* This, UINT32 glyph_count, const UINT16* indices, INT32* adjustments) { - return This->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments); -} -static inline WINBOOL IDWriteFontFace6_HasKerningPairs(IDWriteFontFace6* This) { - return This->lpVtbl->HasKerningPairs(This); -} -static inline HRESULT IDWriteFontFace6_GetVerticalGlyphVariants(IDWriteFontFace6* This, UINT32 glyph_count, const UINT16* nominal_indices, UINT16* vertical_indices) { - return This->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices); -} -static inline WINBOOL IDWriteFontFace6_HasVerticalGlyphVariants(IDWriteFontFace6* This) { - return This->lpVtbl->HasVerticalGlyphVariants(This); -} -/*** IDWriteFontFace2 methods ***/ -static inline WINBOOL IDWriteFontFace6_IsColorFont(IDWriteFontFace6* This) { - return This->lpVtbl->IsColorFont(This); -} -static inline UINT32 IDWriteFontFace6_GetColorPaletteCount(IDWriteFontFace6* This) { - return This->lpVtbl->GetColorPaletteCount(This); -} -static inline UINT32 IDWriteFontFace6_GetPaletteEntryCount(IDWriteFontFace6* This) { - return This->lpVtbl->GetPaletteEntryCount(This); -} -static inline HRESULT IDWriteFontFace6_GetPaletteEntries(IDWriteFontFace6* This, UINT32 palette_index, UINT32 first_entry_index, UINT32 entry_count, DWRITE_COLOR_F* entries) { - return This->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries); -} -/*** IDWriteFontFace3 methods ***/ -static inline HRESULT IDWriteFontFace6_GetFontFaceReference(IDWriteFontFace6* This, IDWriteFontFaceReference** reference) { - return This->lpVtbl->GetFontFaceReference(This, reference); -} -static inline void IDWriteFontFace6_GetPanose(IDWriteFontFace6* This, DWRITE_PANOSE* panose) { - This->lpVtbl->GetPanose(This, panose); -} -static inline DWRITE_FONT_WEIGHT IDWriteFontFace6_GetWeight(IDWriteFontFace6* This) { - return This->lpVtbl->GetWeight(This); -} -static inline DWRITE_FONT_STRETCH IDWriteFontFace6_GetStretch(IDWriteFontFace6* This) { - return This->lpVtbl->GetStretch(This); -} -static inline DWRITE_FONT_STYLE IDWriteFontFace6_GetStyle(IDWriteFontFace6* This) { - return This->lpVtbl->GetStyle(This); -} -static inline HRESULT IDWriteFontFace6_GetInformationalStrings(IDWriteFontFace6* This, DWRITE_INFORMATIONAL_STRING_ID stringid, IDWriteLocalizedStrings** strings, WINBOOL* exists) { - return This->lpVtbl->GetInformationalStrings(This, stringid, strings, exists); -} -static inline WINBOOL IDWriteFontFace6_HasCharacter(IDWriteFontFace6* This, UINT32 character) { - return This->lpVtbl->HasCharacter(This, character); -} -static inline HRESULT IDWriteFontFace6_GetRecommendedRenderingMode(IDWriteFontFace6* This, FLOAT emsize, FLOAT dpi_x, FLOAT dpi_y, const DWRITE_MATRIX* transform, WINBOOL is_sideways, DWRITE_OUTLINE_THRESHOLD threshold, DWRITE_MEASURING_MODE measuring_mode, IDWriteRenderingParams* params, DWRITE_RENDERING_MODE1* rendering_mode, DWRITE_GRID_FIT_MODE* gridfit_mode) { - return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode); -} -static inline WINBOOL IDWriteFontFace6_IsCharacterLocal(IDWriteFontFace6* This, UINT32 character) { - return This->lpVtbl->IsCharacterLocal(This, character); -} -static inline WINBOOL IDWriteFontFace6_IsGlyphLocal(IDWriteFontFace6* This, UINT16 glyph) { - return This->lpVtbl->IsGlyphLocal(This, glyph); -} -static inline HRESULT IDWriteFontFace6_AreCharactersLocal(IDWriteFontFace6* This, const WCHAR* characters, UINT32 count, WINBOOL enqueue_if_not, WINBOOL* are_local) { - return This->lpVtbl->AreCharactersLocal(This, characters, count, enqueue_if_not, are_local); -} -static inline HRESULT IDWriteFontFace6_AreGlyphsLocal(IDWriteFontFace6* This, const UINT16* glyphs, UINT32 count, WINBOOL enqueue_if_not, WINBOOL* are_local) { - return This->lpVtbl->AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local); -} -/*** IDWriteFontFace4 methods ***/ -static inline HRESULT IDWriteFontFace6_GetGlyphImageFormats_(IDWriteFontFace6* This, UINT16 glyph, UINT32 ppem_first, UINT32 ppem_last, DWRITE_GLYPH_IMAGE_FORMATS* formats) { - return This->lpVtbl->GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats); -} -static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace6_GetGlyphImageFormats(IDWriteFontFace6* This) { - return This->lpVtbl->GetGlyphImageFormats(This); -} -static inline HRESULT IDWriteFontFace6_GetGlyphImageData(IDWriteFontFace6* This, UINT16 glyph, UINT32 ppem, DWRITE_GLYPH_IMAGE_FORMATS format, DWRITE_GLYPH_IMAGE_DATA* data, void** context) { - return This->lpVtbl->GetGlyphImageData(This, glyph, ppem, format, data, context); -} -static inline void IDWriteFontFace6_ReleaseGlyphImageData(IDWriteFontFace6* This, void* context) { - This->lpVtbl->ReleaseGlyphImageData(This, context); -} -/*** IDWriteFontFace5 methods ***/ -static inline UINT32 IDWriteFontFace6_GetFontAxisValueCount(IDWriteFontFace6* This) { - return This->lpVtbl->GetFontAxisValueCount(This); -} -static inline HRESULT IDWriteFontFace6_GetFontAxisValues(IDWriteFontFace6* This, DWRITE_FONT_AXIS_VALUE* values, UINT32 value_count) { - return This->lpVtbl->GetFontAxisValues(This, values, value_count); -} -static inline WINBOOL IDWriteFontFace6_HasVariations(IDWriteFontFace6* This) { - return This->lpVtbl->HasVariations(This); -} -static inline HRESULT IDWriteFontFace6_GetFontResource(IDWriteFontFace6* This, IDWriteFontResource** resource) { - return This->lpVtbl->GetFontResource(This, resource); -} -static inline WINBOOL IDWriteFontFace6_Equals(IDWriteFontFace6* This, IDWriteFontFace* fontface) { - return This->lpVtbl->Equals(This, fontface); -} -/*** IDWriteFontFace6 methods ***/ -static inline HRESULT IDWriteFontFace6_GetFamilyNames(IDWriteFontFace6* This, DWRITE_FONT_FAMILY_MODEL font_family_model, IDWriteLocalizedStrings** names) { - return This->lpVtbl->IDWriteFontFace6_GetFamilyNames(This, font_family_model, names); -} -static inline HRESULT IDWriteFontFace6_GetFaceNames(IDWriteFontFace6* This, DWRITE_FONT_FAMILY_MODEL font_family_model, IDWriteLocalizedStrings** names) { - return This->lpVtbl->IDWriteFontFace6_GetFaceNames(This, font_family_model, names); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontFace6_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWritePaintReader interface - */ -#ifndef __IDWritePaintReader_INTERFACE_DEFINED__ -#define __IDWritePaintReader_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWritePaintReader, 0x8128e912, 0x3b97, 0x42a5, 0xab, 0x6c, 0x24, 0xaa, 0xd3, 0xa8, 0x6e, 0x54); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("8128e912-3b97-42a5-ab6c-24aad3a86e54") -IDWritePaintReader : public IUnknown { - virtual HRESULT STDMETHODCALLTYPE SetCurrentGlyph( - UINT32 glyph_index, - DWRITE_PAINT_ELEMENT * paint_element, - UINT32 struct_size, - D2D_RECT_F * clip_box, - DWRITE_PAINT_ATTRIBUTES* glyph_attributes = 0) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetTextColor( - const DWRITE_COLOR_F* text_color) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetColorPaletteIndex( - UINT32 color_palette_index) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetCustomColorPalette( - const DWRITE_COLOR_F* palette_entries, - UINT32 palette_entry_count) = 0; - - virtual HRESULT STDMETHODCALLTYPE MoveToFirstChild( - DWRITE_PAINT_ELEMENT * paint_element, - UINT32 struct_size) = 0; - - virtual HRESULT STDMETHODCALLTYPE MoveToNextSibling( - DWRITE_PAINT_ELEMENT * paint_element, - UINT32 struct_size) = 0; - - virtual HRESULT STDMETHODCALLTYPE MoveToParent() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGradientStops( - UINT32 first_gradient_stop_index, - UINT32 gradient_stop_count, - D2D1_GRADIENT_STOP * gradient_stops) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGradientStopColors( - UINT32 first_gradient_stop_index, - UINT32 gradient_stop_count, - DWRITE_PAINT_COLOR * gradient_stop_colors) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWritePaintReader, 0x8128e912, 0x3b97, 0x42a5, 0xab, 0x6c, 0x24, 0xaa, 0xd3, 0xa8, 0x6e, 0x54) -#endif -#else -typedef struct IDWritePaintReaderVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWritePaintReader* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWritePaintReader* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWritePaintReader* This); - - /*** IDWritePaintReader methods ***/ - HRESULT(STDMETHODCALLTYPE* SetCurrentGlyph)( - IDWritePaintReader* This, - UINT32 glyph_index, - DWRITE_PAINT_ELEMENT* paint_element, - UINT32 struct_size, - D2D_RECT_F* clip_box, - DWRITE_PAINT_ATTRIBUTES* glyph_attributes); - - HRESULT(STDMETHODCALLTYPE* SetTextColor)( - IDWritePaintReader* This, - const DWRITE_COLOR_F* text_color); - - HRESULT(STDMETHODCALLTYPE* SetColorPaletteIndex)( - IDWritePaintReader* This, - UINT32 color_palette_index); - - HRESULT(STDMETHODCALLTYPE* SetCustomColorPalette)( - IDWritePaintReader* This, - const DWRITE_COLOR_F* palette_entries, - UINT32 palette_entry_count); - - HRESULT(STDMETHODCALLTYPE* MoveToFirstChild)( - IDWritePaintReader* This, - DWRITE_PAINT_ELEMENT* paint_element, - UINT32 struct_size); - - HRESULT(STDMETHODCALLTYPE* MoveToNextSibling)( - IDWritePaintReader* This, - DWRITE_PAINT_ELEMENT* paint_element, - UINT32 struct_size); - - HRESULT(STDMETHODCALLTYPE* MoveToParent)( - IDWritePaintReader* This); - - HRESULT(STDMETHODCALLTYPE* GetGradientStops)( - IDWritePaintReader* This, - UINT32 first_gradient_stop_index, - UINT32 gradient_stop_count, - D2D1_GRADIENT_STOP* gradient_stops); - - HRESULT(STDMETHODCALLTYPE* GetGradientStopColors)( - IDWritePaintReader* This, - UINT32 first_gradient_stop_index, - UINT32 gradient_stop_count, - DWRITE_PAINT_COLOR* gradient_stop_colors); - - END_INTERFACE -} IDWritePaintReaderVtbl; - -interface IDWritePaintReader { - CONST_VTBL IDWritePaintReaderVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWritePaintReader_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWritePaintReader_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWritePaintReader_Release(This) (This)->lpVtbl->Release(This) -/*** IDWritePaintReader methods ***/ -#define IDWritePaintReader_SetCurrentGlyph(This, glyph_index, paint_element, struct_size, clip_box, glyph_attributes) (This)->lpVtbl->SetCurrentGlyph(This, glyph_index, paint_element, struct_size, clip_box, glyph_attributes) -#define IDWritePaintReader_SetTextColor(This, text_color) (This)->lpVtbl->SetTextColor(This, text_color) -#define IDWritePaintReader_SetColorPaletteIndex(This, color_palette_index) (This)->lpVtbl->SetColorPaletteIndex(This, color_palette_index) -#define IDWritePaintReader_SetCustomColorPalette(This, palette_entries, palette_entry_count) (This)->lpVtbl->SetCustomColorPalette(This, palette_entries, palette_entry_count) -#define IDWritePaintReader_MoveToFirstChild(This, paint_element, struct_size) (This)->lpVtbl->MoveToFirstChild(This, paint_element, struct_size) -#define IDWritePaintReader_MoveToNextSibling(This, paint_element, struct_size) (This)->lpVtbl->MoveToNextSibling(This, paint_element, struct_size) -#define IDWritePaintReader_MoveToParent(This) (This)->lpVtbl->MoveToParent(This) -#define IDWritePaintReader_GetGradientStops(This, first_gradient_stop_index, gradient_stop_count, gradient_stops) (This)->lpVtbl->GetGradientStops(This, first_gradient_stop_index, gradient_stop_count, gradient_stops) -#define IDWritePaintReader_GetGradientStopColors(This, first_gradient_stop_index, gradient_stop_count, gradient_stop_colors) (This)->lpVtbl->GetGradientStopColors(This, first_gradient_stop_index, gradient_stop_count, gradient_stop_colors) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWritePaintReader_QueryInterface(IDWritePaintReader* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWritePaintReader_AddRef(IDWritePaintReader* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWritePaintReader_Release(IDWritePaintReader* This) { - return This->lpVtbl->Release(This); -} -/*** IDWritePaintReader methods ***/ -static inline HRESULT IDWritePaintReader_SetCurrentGlyph(IDWritePaintReader* This, UINT32 glyph_index, DWRITE_PAINT_ELEMENT* paint_element, UINT32 struct_size, D2D_RECT_F* clip_box, DWRITE_PAINT_ATTRIBUTES* glyph_attributes) { - return This->lpVtbl->SetCurrentGlyph(This, glyph_index, paint_element, struct_size, clip_box, glyph_attributes); -} -static inline HRESULT IDWritePaintReader_SetTextColor(IDWritePaintReader* This, const DWRITE_COLOR_F* text_color) { - return This->lpVtbl->SetTextColor(This, text_color); -} -static inline HRESULT IDWritePaintReader_SetColorPaletteIndex(IDWritePaintReader* This, UINT32 color_palette_index) { - return This->lpVtbl->SetColorPaletteIndex(This, color_palette_index); -} -static inline HRESULT IDWritePaintReader_SetCustomColorPalette(IDWritePaintReader* This, const DWRITE_COLOR_F* palette_entries, UINT32 palette_entry_count) { - return This->lpVtbl->SetCustomColorPalette(This, palette_entries, palette_entry_count); -} -static inline HRESULT IDWritePaintReader_MoveToFirstChild(IDWritePaintReader* This, DWRITE_PAINT_ELEMENT* paint_element, UINT32 struct_size) { - return This->lpVtbl->MoveToFirstChild(This, paint_element, struct_size); -} -static inline HRESULT IDWritePaintReader_MoveToNextSibling(IDWritePaintReader* This, DWRITE_PAINT_ELEMENT* paint_element, UINT32 struct_size) { - return This->lpVtbl->MoveToNextSibling(This, paint_element, struct_size); -} -static inline HRESULT IDWritePaintReader_MoveToParent(IDWritePaintReader* This) { - return This->lpVtbl->MoveToParent(This); -} -static inline HRESULT IDWritePaintReader_GetGradientStops(IDWritePaintReader* This, UINT32 first_gradient_stop_index, UINT32 gradient_stop_count, D2D1_GRADIENT_STOP* gradient_stops) { - return This->lpVtbl->GetGradientStops(This, first_gradient_stop_index, gradient_stop_count, gradient_stops); -} -static inline HRESULT IDWritePaintReader_GetGradientStopColors(IDWritePaintReader* This, UINT32 first_gradient_stop_index, UINT32 gradient_stop_count, DWRITE_PAINT_COLOR* gradient_stop_colors) { - return This->lpVtbl->GetGradientStopColors(This, first_gradient_stop_index, gradient_stop_count, gradient_stop_colors); -} -#endif -#endif - -#endif - -#endif /* __IDWritePaintReader_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFontFace7 interface - */ -#ifndef __IDWriteFontFace7_INTERFACE_DEFINED__ -#define __IDWriteFontFace7_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFontFace7, 0x3945b85b, 0xbc95, 0x40f7, 0xb7, 0x2c, 0x8b, 0x73, 0xbf, 0xc7, 0xe1, 0x3b); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("3945b85b-bc95-40f7-b72c-8b73bfc7e13b") -IDWriteFontFace7 : public IDWriteFontFace6 { - virtual DWRITE_PAINT_FEATURE_LEVEL STDMETHODCALLTYPE GetPaintFeatureLevel( - DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreatePaintReader( - DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format, - DWRITE_PAINT_FEATURE_LEVEL paint_feature_level, - IDWritePaintReader * *paint_reader) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFontFace7, 0x3945b85b, 0xbc95, 0x40f7, 0xb7, 0x2c, 0x8b, 0x73, 0xbf, 0xc7, 0xe1, 0x3b) -#endif -#else -typedef struct IDWriteFontFace7Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFontFace7* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFontFace7* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFontFace7* This); - - /*** IDWriteFontFace methods ***/ - DWRITE_FONT_FACE_TYPE(STDMETHODCALLTYPE* GetType)( - IDWriteFontFace7* This); - - HRESULT(STDMETHODCALLTYPE* GetFiles)( - IDWriteFontFace7* This, - UINT32* number_of_files, - IDWriteFontFile** fontfiles); - - UINT32(STDMETHODCALLTYPE* GetIndex)( - IDWriteFontFace7* This); - - DWRITE_FONT_SIMULATIONS(STDMETHODCALLTYPE* GetSimulations)( - IDWriteFontFace7* This); - - WINBOOL(STDMETHODCALLTYPE* IsSymbolFont)( - IDWriteFontFace7* This); - - void(STDMETHODCALLTYPE* GetMetrics)( - IDWriteFontFace7* This, - DWRITE_FONT_METRICS* metrics); - - UINT16(STDMETHODCALLTYPE* GetGlyphCount)( - IDWriteFontFace7* This); - - HRESULT(STDMETHODCALLTYPE* GetDesignGlyphMetrics)( - IDWriteFontFace7* This, - const UINT16* glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS* metrics, - WINBOOL is_sideways); - - HRESULT(STDMETHODCALLTYPE* GetGlyphIndices)( - IDWriteFontFace7* This, - const UINT32* codepoints, - UINT32 count, - UINT16* glyph_indices); - - HRESULT(STDMETHODCALLTYPE* TryGetFontTable)( - IDWriteFontFace7* This, - UINT32 table_tag, - const void** table_data, - UINT32* table_size, - void** context, - WINBOOL* exists); - - void(STDMETHODCALLTYPE* ReleaseFontTable)( - IDWriteFontFace7* This, - void* table_context); - - HRESULT(STDMETHODCALLTYPE* GetGlyphRunOutline)( - IDWriteFontFace7* This, - FLOAT emSize, - const UINT16* glyph_indices, - const FLOAT* glyph_advances, - const DWRITE_GLYPH_OFFSET* glyph_offsets, - UINT32 glyph_count, - WINBOOL is_sideways, - WINBOOL is_rtl, - IDWriteGeometrySink* geometrysink); - - HRESULT(STDMETHODCALLTYPE* GetRecommendedRenderingMode)( - IDWriteFontFace7* This, - FLOAT emSize, - FLOAT pixels_per_dip, - DWRITE_MEASURING_MODE mode, - IDWriteRenderingParams* params, - DWRITE_RENDERING_MODE* rendering_mode); - - HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleMetrics)( - IDWriteFontFace7* This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_FONT_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphMetrics)( - IDWriteFontFace7* This, - FLOAT emSize, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - const UINT16* glyph_indices, - UINT32 glyph_count, - DWRITE_GLYPH_METRICS* metrics, - WINBOOL is_sideways); - - /*** IDWriteFontFace1 methods ***/ - void(STDMETHODCALLTYPE* IDWriteFontFace1_GetMetrics)( - IDWriteFontFace7* This, - DWRITE_FONT_METRICS1* metrics); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetGdiCompatibleMetrics)( - IDWriteFontFace7* This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_FONT_METRICS1* metrics); - - void(STDMETHODCALLTYPE* GetCaretMetrics)( - IDWriteFontFace7* This, - DWRITE_CARET_METRICS* metrics); - - HRESULT(STDMETHODCALLTYPE* GetUnicodeRanges)( - IDWriteFontFace7* This, - UINT32 max_count, - DWRITE_UNICODE_RANGE* ranges, - UINT32* count); - - WINBOOL(STDMETHODCALLTYPE* IsMonospacedFont)( - IDWriteFontFace7* This); - - HRESULT(STDMETHODCALLTYPE* GetDesignGlyphAdvances)( - IDWriteFontFace7* This, - UINT32 glyph_count, - const UINT16* indices, - INT32* advances, - WINBOOL is_sideways); - - HRESULT(STDMETHODCALLTYPE* GetGdiCompatibleGlyphAdvances)( - IDWriteFontFace7* This, - FLOAT em_size, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - WINBOOL is_sideways, - UINT32 glyph_count, - const UINT16* indices, - INT32* advances); - - HRESULT(STDMETHODCALLTYPE* GetKerningPairAdjustments)( - IDWriteFontFace7* This, - UINT32 glyph_count, - const UINT16* indices, - INT32* adjustments); - - WINBOOL(STDMETHODCALLTYPE* HasKerningPairs)( - IDWriteFontFace7* This); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace1_GetRecommendedRenderingMode)( - IDWriteFontFace7* This, - FLOAT font_emsize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX* transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_RENDERING_MODE* rendering_mode); - - HRESULT(STDMETHODCALLTYPE* GetVerticalGlyphVariants)( - IDWriteFontFace7* This, - UINT32 glyph_count, - const UINT16* nominal_indices, - UINT16* vertical_indices); - - WINBOOL(STDMETHODCALLTYPE* HasVerticalGlyphVariants)( - IDWriteFontFace7* This); - - /*** IDWriteFontFace2 methods ***/ - WINBOOL(STDMETHODCALLTYPE* IsColorFont)( - IDWriteFontFace7* This); - - UINT32(STDMETHODCALLTYPE* GetColorPaletteCount)( - IDWriteFontFace7* This); - - UINT32(STDMETHODCALLTYPE* GetPaletteEntryCount)( - IDWriteFontFace7* This); - - HRESULT(STDMETHODCALLTYPE* GetPaletteEntries)( - IDWriteFontFace7* This, - UINT32 palette_index, - UINT32 first_entry_index, - UINT32 entry_count, - DWRITE_COLOR_F* entries); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace2_GetRecommendedRenderingMode)( - IDWriteFontFace7* This, - FLOAT fontEmSize, - FLOAT dpiX, - FLOAT dpiY, - const DWRITE_MATRIX* transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuringmode, - IDWriteRenderingParams* params, - DWRITE_RENDERING_MODE* renderingmode, - DWRITE_GRID_FIT_MODE* gridfitmode); - - /*** IDWriteFontFace3 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetFontFaceReference)( - IDWriteFontFace7* This, - IDWriteFontFaceReference** reference); - - void(STDMETHODCALLTYPE* GetPanose)( - IDWriteFontFace7* This, - DWRITE_PANOSE* panose); - - DWRITE_FONT_WEIGHT(STDMETHODCALLTYPE* GetWeight)( - IDWriteFontFace7* This); - - DWRITE_FONT_STRETCH(STDMETHODCALLTYPE* GetStretch)( - IDWriteFontFace7* This); - - DWRITE_FONT_STYLE(STDMETHODCALLTYPE* GetStyle)( - IDWriteFontFace7* This); - - HRESULT(STDMETHODCALLTYPE* GetFamilyNames)( - IDWriteFontFace7* This, - IDWriteLocalizedStrings** names); - - HRESULT(STDMETHODCALLTYPE* GetFaceNames)( - IDWriteFontFace7* This, - IDWriteLocalizedStrings** names); - - HRESULT(STDMETHODCALLTYPE* GetInformationalStrings)( - IDWriteFontFace7* This, - DWRITE_INFORMATIONAL_STRING_ID stringid, - IDWriteLocalizedStrings** strings, - WINBOOL* exists); - - WINBOOL(STDMETHODCALLTYPE* HasCharacter)( - IDWriteFontFace7* This, - UINT32 character); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace3_GetRecommendedRenderingMode)( - IDWriteFontFace7* This, - FLOAT emsize, - FLOAT dpi_x, - FLOAT dpi_y, - const DWRITE_MATRIX* transform, - WINBOOL is_sideways, - DWRITE_OUTLINE_THRESHOLD threshold, - DWRITE_MEASURING_MODE measuring_mode, - IDWriteRenderingParams* params, - DWRITE_RENDERING_MODE1* rendering_mode, - DWRITE_GRID_FIT_MODE* gridfit_mode); - - WINBOOL(STDMETHODCALLTYPE* IsCharacterLocal)( - IDWriteFontFace7* This, - UINT32 character); - - WINBOOL(STDMETHODCALLTYPE* IsGlyphLocal)( - IDWriteFontFace7* This, - UINT16 glyph); - - HRESULT(STDMETHODCALLTYPE* AreCharactersLocal)( - IDWriteFontFace7* This, - const WCHAR* characters, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL* are_local); - - HRESULT(STDMETHODCALLTYPE* AreGlyphsLocal)( - IDWriteFontFace7* This, - const UINT16* glyphs, - UINT32 count, - WINBOOL enqueue_if_not, - WINBOOL* are_local); - - /*** IDWriteFontFace4 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetGlyphImageFormats_)( - IDWriteFontFace7* This, - UINT16 glyph, - UINT32 ppem_first, - UINT32 ppem_last, - DWRITE_GLYPH_IMAGE_FORMATS* formats); - - DWRITE_GLYPH_IMAGE_FORMATS(STDMETHODCALLTYPE* GetGlyphImageFormats)( - IDWriteFontFace7* This); - - HRESULT(STDMETHODCALLTYPE* GetGlyphImageData)( - IDWriteFontFace7* This, - UINT16 glyph, - UINT32 ppem, - DWRITE_GLYPH_IMAGE_FORMATS format, - DWRITE_GLYPH_IMAGE_DATA* data, - void** context); - - void(STDMETHODCALLTYPE* ReleaseGlyphImageData)( - IDWriteFontFace7* This, - void* context); - - /*** IDWriteFontFace5 methods ***/ - UINT32(STDMETHODCALLTYPE* GetFontAxisValueCount)( - IDWriteFontFace7* This); - - HRESULT(STDMETHODCALLTYPE* GetFontAxisValues)( - IDWriteFontFace7* This, - DWRITE_FONT_AXIS_VALUE* values, - UINT32 value_count); - - WINBOOL(STDMETHODCALLTYPE* HasVariations)( - IDWriteFontFace7* This); - - HRESULT(STDMETHODCALLTYPE* GetFontResource)( - IDWriteFontFace7* This, - IDWriteFontResource** resource); - - WINBOOL(STDMETHODCALLTYPE* Equals)( - IDWriteFontFace7* This, - IDWriteFontFace* fontface); - - /*** IDWriteFontFace6 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace6_GetFamilyNames)( - IDWriteFontFace7* This, - DWRITE_FONT_FAMILY_MODEL font_family_model, - IDWriteLocalizedStrings** names); - - HRESULT(STDMETHODCALLTYPE* IDWriteFontFace6_GetFaceNames)( - IDWriteFontFace7* This, - DWRITE_FONT_FAMILY_MODEL font_family_model, - IDWriteLocalizedStrings** names); - - /*** IDWriteFontFace7 methods ***/ - DWRITE_PAINT_FEATURE_LEVEL(STDMETHODCALLTYPE* GetPaintFeatureLevel)( - IDWriteFontFace7* This, - DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format); - - HRESULT(STDMETHODCALLTYPE* CreatePaintReader)( - IDWriteFontFace7* This, - DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format, - DWRITE_PAINT_FEATURE_LEVEL paint_feature_level, - IDWritePaintReader** paint_reader); - - END_INTERFACE -} IDWriteFontFace7Vtbl; - -interface IDWriteFontFace7 { - CONST_VTBL IDWriteFontFace7Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFontFace7_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFontFace7_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFontFace7_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontFace methods ***/ -#define IDWriteFontFace7_GetType(This) (This)->lpVtbl->GetType(This) -#define IDWriteFontFace7_GetFiles(This, number_of_files, fontfiles) (This)->lpVtbl->GetFiles(This, number_of_files, fontfiles) -#define IDWriteFontFace7_GetIndex(This) (This)->lpVtbl->GetIndex(This) -#define IDWriteFontFace7_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) -#define IDWriteFontFace7_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) -#define IDWriteFontFace7_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) -#define IDWriteFontFace7_GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways) -#define IDWriteFontFace7_GetGlyphIndices(This, codepoints, count, glyph_indices) (This)->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices) -#define IDWriteFontFace7_TryGetFontTable(This, table_tag, table_data, table_size, context, exists) (This)->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists) -#define IDWriteFontFace7_ReleaseFontTable(This, table_context) (This)->lpVtbl->ReleaseFontTable(This, table_context) -#define IDWriteFontFace7_GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink) -#define IDWriteFontFace7_GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways) -/*** IDWriteFontFace1 methods ***/ -#define IDWriteFontFace7_GetMetrics(This, metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics) -#define IDWriteFontFace7_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics) -#define IDWriteFontFace7_GetCaretMetrics(This, metrics) (This)->lpVtbl->GetCaretMetrics(This, metrics) -#define IDWriteFontFace7_GetUnicodeRanges(This, max_count, ranges, count) (This)->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count) -#define IDWriteFontFace7_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) -#define IDWriteFontFace7_GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways) -#define IDWriteFontFace7_GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances) -#define IDWriteFontFace7_GetKerningPairAdjustments(This, glyph_count, indices, adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments) -#define IDWriteFontFace7_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) -#define IDWriteFontFace7_GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices) -#define IDWriteFontFace7_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) -/*** IDWriteFontFace2 methods ***/ -#define IDWriteFontFace7_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) -#define IDWriteFontFace7_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) -#define IDWriteFontFace7_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) -#define IDWriteFontFace7_GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) (This)->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries) -/*** IDWriteFontFace3 methods ***/ -#define IDWriteFontFace7_GetFontFaceReference(This, reference) (This)->lpVtbl->GetFontFaceReference(This, reference) -#define IDWriteFontFace7_GetPanose(This, panose) (This)->lpVtbl->GetPanose(This, panose) -#define IDWriteFontFace7_GetWeight(This) (This)->lpVtbl->GetWeight(This) -#define IDWriteFontFace7_GetStretch(This) (This)->lpVtbl->GetStretch(This) -#define IDWriteFontFace7_GetStyle(This) (This)->lpVtbl->GetStyle(This) -#define IDWriteFontFace7_GetInformationalStrings(This, stringid, strings, exists) (This)->lpVtbl->GetInformationalStrings(This, stringid, strings, exists) -#define IDWriteFontFace7_HasCharacter(This, character) (This)->lpVtbl->HasCharacter(This, character) -#define IDWriteFontFace7_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode) -#define IDWriteFontFace7_IsCharacterLocal(This, character) (This)->lpVtbl->IsCharacterLocal(This, character) -#define IDWriteFontFace7_IsGlyphLocal(This, glyph) (This)->lpVtbl->IsGlyphLocal(This, glyph) -#define IDWriteFontFace7_AreCharactersLocal(This, characters, count, enqueue_if_not, are_local) (This)->lpVtbl->AreCharactersLocal(This, characters, count, enqueue_if_not, are_local) -#define IDWriteFontFace7_AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local) (This)->lpVtbl->AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local) -/*** IDWriteFontFace4 methods ***/ -#define IDWriteFontFace7_GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats) (This)->lpVtbl->GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats) -#define IDWriteFontFace7_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This) -#define IDWriteFontFace7_GetGlyphImageData(This, glyph, ppem, format, data, context) (This)->lpVtbl->GetGlyphImageData(This, glyph, ppem, format, data, context) -#define IDWriteFontFace7_ReleaseGlyphImageData(This, context) (This)->lpVtbl->ReleaseGlyphImageData(This, context) -/*** IDWriteFontFace5 methods ***/ -#define IDWriteFontFace7_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This) -#define IDWriteFontFace7_GetFontAxisValues(This, values, value_count) (This)->lpVtbl->GetFontAxisValues(This, values, value_count) -#define IDWriteFontFace7_HasVariations(This) (This)->lpVtbl->HasVariations(This) -#define IDWriteFontFace7_GetFontResource(This, resource) (This)->lpVtbl->GetFontResource(This, resource) -#define IDWriteFontFace7_Equals(This, fontface) (This)->lpVtbl->Equals(This, fontface) -/*** IDWriteFontFace6 methods ***/ -#define IDWriteFontFace7_GetFamilyNames(This, font_family_model, names) (This)->lpVtbl->IDWriteFontFace6_GetFamilyNames(This, font_family_model, names) -#define IDWriteFontFace7_GetFaceNames(This, font_family_model, names) (This)->lpVtbl->IDWriteFontFace6_GetFaceNames(This, font_family_model, names) -/*** IDWriteFontFace7 methods ***/ -#define IDWriteFontFace7_GetPaintFeatureLevel(This, glyph_image_format) (This)->lpVtbl->GetPaintFeatureLevel(This, glyph_image_format) -#define IDWriteFontFace7_CreatePaintReader(This, glyph_image_format, paint_feature_level, paint_reader) (This)->lpVtbl->CreatePaintReader(This, glyph_image_format, paint_feature_level, paint_reader) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFontFace7_QueryInterface(IDWriteFontFace7* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFontFace7_AddRef(IDWriteFontFace7* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFontFace7_Release(IDWriteFontFace7* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontFace methods ***/ -static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace7_GetType(IDWriteFontFace7* This) { - return This->lpVtbl->GetType(This); -} -static inline HRESULT IDWriteFontFace7_GetFiles(IDWriteFontFace7* This, UINT32* number_of_files, IDWriteFontFile** fontfiles) { - return This->lpVtbl->GetFiles(This, number_of_files, fontfiles); -} -static inline UINT32 IDWriteFontFace7_GetIndex(IDWriteFontFace7* This) { - return This->lpVtbl->GetIndex(This); -} -static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace7_GetSimulations(IDWriteFontFace7* This) { - return This->lpVtbl->GetSimulations(This); -} -static inline WINBOOL IDWriteFontFace7_IsSymbolFont(IDWriteFontFace7* This) { - return This->lpVtbl->IsSymbolFont(This); -} -static inline UINT16 IDWriteFontFace7_GetGlyphCount(IDWriteFontFace7* This) { - return This->lpVtbl->GetGlyphCount(This); -} -static inline HRESULT IDWriteFontFace7_GetDesignGlyphMetrics(IDWriteFontFace7* This, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphMetrics(This, glyph_indices, glyph_count, metrics, is_sideways); -} -static inline HRESULT IDWriteFontFace7_GetGlyphIndices(IDWriteFontFace7* This, const UINT32* codepoints, UINT32 count, UINT16* glyph_indices) { - return This->lpVtbl->GetGlyphIndices(This, codepoints, count, glyph_indices); -} -static inline HRESULT IDWriteFontFace7_TryGetFontTable(IDWriteFontFace7* This, UINT32 table_tag, const void** table_data, UINT32* table_size, void** context, WINBOOL* exists) { - return This->lpVtbl->TryGetFontTable(This, table_tag, table_data, table_size, context, exists); -} -static inline void IDWriteFontFace7_ReleaseFontTable(IDWriteFontFace7* This, void* table_context) { - This->lpVtbl->ReleaseFontTable(This, table_context); -} -static inline HRESULT IDWriteFontFace7_GetGlyphRunOutline(IDWriteFontFace7* This, FLOAT emSize, const UINT16* glyph_indices, const FLOAT* glyph_advances, const DWRITE_GLYPH_OFFSET* glyph_offsets, UINT32 glyph_count, WINBOOL is_sideways, WINBOOL is_rtl, IDWriteGeometrySink* geometrysink) { - return This->lpVtbl->GetGlyphRunOutline(This, emSize, glyph_indices, glyph_advances, glyph_offsets, glyph_count, is_sideways, is_rtl, geometrysink); -} -static inline HRESULT IDWriteFontFace7_GetGdiCompatibleGlyphMetrics(IDWriteFontFace7* This, FLOAT emSize, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, const UINT16* glyph_indices, UINT32 glyph_count, DWRITE_GLYPH_METRICS* metrics, WINBOOL is_sideways) { - return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This, emSize, pixels_per_dip, transform, use_gdi_natural, glyph_indices, glyph_count, metrics, is_sideways); -} -/*** IDWriteFontFace1 methods ***/ -static inline void IDWriteFontFace7_GetMetrics(IDWriteFontFace7* This, DWRITE_FONT_METRICS1* metrics) { - This->lpVtbl->IDWriteFontFace1_GetMetrics(This, metrics); -} -static inline HRESULT IDWriteFontFace7_GetGdiCompatibleMetrics(IDWriteFontFace7* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, DWRITE_FONT_METRICS1* metrics) { - return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This, em_size, pixels_per_dip, transform, metrics); -} -static inline void IDWriteFontFace7_GetCaretMetrics(IDWriteFontFace7* This, DWRITE_CARET_METRICS* metrics) { - This->lpVtbl->GetCaretMetrics(This, metrics); -} -static inline HRESULT IDWriteFontFace7_GetUnicodeRanges(IDWriteFontFace7* This, UINT32 max_count, DWRITE_UNICODE_RANGE* ranges, UINT32* count) { - return This->lpVtbl->GetUnicodeRanges(This, max_count, ranges, count); -} -static inline WINBOOL IDWriteFontFace7_IsMonospacedFont(IDWriteFontFace7* This) { - return This->lpVtbl->IsMonospacedFont(This); -} -static inline HRESULT IDWriteFontFace7_GetDesignGlyphAdvances(IDWriteFontFace7* This, UINT32 glyph_count, const UINT16* indices, INT32* advances, WINBOOL is_sideways) { - return This->lpVtbl->GetDesignGlyphAdvances(This, glyph_count, indices, advances, is_sideways); -} -static inline HRESULT IDWriteFontFace7_GetGdiCompatibleGlyphAdvances(IDWriteFontFace7* This, FLOAT em_size, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, WINBOOL is_sideways, UINT32 glyph_count, const UINT16* indices, INT32* advances) { - return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This, em_size, pixels_per_dip, transform, use_gdi_natural, is_sideways, glyph_count, indices, advances); -} -static inline HRESULT IDWriteFontFace7_GetKerningPairAdjustments(IDWriteFontFace7* This, UINT32 glyph_count, const UINT16* indices, INT32* adjustments) { - return This->lpVtbl->GetKerningPairAdjustments(This, glyph_count, indices, adjustments); -} -static inline WINBOOL IDWriteFontFace7_HasKerningPairs(IDWriteFontFace7* This) { - return This->lpVtbl->HasKerningPairs(This); -} -static inline HRESULT IDWriteFontFace7_GetVerticalGlyphVariants(IDWriteFontFace7* This, UINT32 glyph_count, const UINT16* nominal_indices, UINT16* vertical_indices) { - return This->lpVtbl->GetVerticalGlyphVariants(This, glyph_count, nominal_indices, vertical_indices); -} -static inline WINBOOL IDWriteFontFace7_HasVerticalGlyphVariants(IDWriteFontFace7* This) { - return This->lpVtbl->HasVerticalGlyphVariants(This); -} -/*** IDWriteFontFace2 methods ***/ -static inline WINBOOL IDWriteFontFace7_IsColorFont(IDWriteFontFace7* This) { - return This->lpVtbl->IsColorFont(This); -} -static inline UINT32 IDWriteFontFace7_GetColorPaletteCount(IDWriteFontFace7* This) { - return This->lpVtbl->GetColorPaletteCount(This); -} -static inline UINT32 IDWriteFontFace7_GetPaletteEntryCount(IDWriteFontFace7* This) { - return This->lpVtbl->GetPaletteEntryCount(This); -} -static inline HRESULT IDWriteFontFace7_GetPaletteEntries(IDWriteFontFace7* This, UINT32 palette_index, UINT32 first_entry_index, UINT32 entry_count, DWRITE_COLOR_F* entries) { - return This->lpVtbl->GetPaletteEntries(This, palette_index, first_entry_index, entry_count, entries); -} -/*** IDWriteFontFace3 methods ***/ -static inline HRESULT IDWriteFontFace7_GetFontFaceReference(IDWriteFontFace7* This, IDWriteFontFaceReference** reference) { - return This->lpVtbl->GetFontFaceReference(This, reference); -} -static inline void IDWriteFontFace7_GetPanose(IDWriteFontFace7* This, DWRITE_PANOSE* panose) { - This->lpVtbl->GetPanose(This, panose); -} -static inline DWRITE_FONT_WEIGHT IDWriteFontFace7_GetWeight(IDWriteFontFace7* This) { - return This->lpVtbl->GetWeight(This); -} -static inline DWRITE_FONT_STRETCH IDWriteFontFace7_GetStretch(IDWriteFontFace7* This) { - return This->lpVtbl->GetStretch(This); -} -static inline DWRITE_FONT_STYLE IDWriteFontFace7_GetStyle(IDWriteFontFace7* This) { - return This->lpVtbl->GetStyle(This); -} -static inline HRESULT IDWriteFontFace7_GetInformationalStrings(IDWriteFontFace7* This, DWRITE_INFORMATIONAL_STRING_ID stringid, IDWriteLocalizedStrings** strings, WINBOOL* exists) { - return This->lpVtbl->GetInformationalStrings(This, stringid, strings, exists); -} -static inline WINBOOL IDWriteFontFace7_HasCharacter(IDWriteFontFace7* This, UINT32 character) { - return This->lpVtbl->HasCharacter(This, character); -} -static inline HRESULT IDWriteFontFace7_GetRecommendedRenderingMode(IDWriteFontFace7* This, FLOAT emsize, FLOAT dpi_x, FLOAT dpi_y, const DWRITE_MATRIX* transform, WINBOOL is_sideways, DWRITE_OUTLINE_THRESHOLD threshold, DWRITE_MEASURING_MODE measuring_mode, IDWriteRenderingParams* params, DWRITE_RENDERING_MODE1* rendering_mode, DWRITE_GRID_FIT_MODE* gridfit_mode) { - return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This, emsize, dpi_x, dpi_y, transform, is_sideways, threshold, measuring_mode, params, rendering_mode, gridfit_mode); -} -static inline WINBOOL IDWriteFontFace7_IsCharacterLocal(IDWriteFontFace7* This, UINT32 character) { - return This->lpVtbl->IsCharacterLocal(This, character); -} -static inline WINBOOL IDWriteFontFace7_IsGlyphLocal(IDWriteFontFace7* This, UINT16 glyph) { - return This->lpVtbl->IsGlyphLocal(This, glyph); -} -static inline HRESULT IDWriteFontFace7_AreCharactersLocal(IDWriteFontFace7* This, const WCHAR* characters, UINT32 count, WINBOOL enqueue_if_not, WINBOOL* are_local) { - return This->lpVtbl->AreCharactersLocal(This, characters, count, enqueue_if_not, are_local); -} -static inline HRESULT IDWriteFontFace7_AreGlyphsLocal(IDWriteFontFace7* This, const UINT16* glyphs, UINT32 count, WINBOOL enqueue_if_not, WINBOOL* are_local) { - return This->lpVtbl->AreGlyphsLocal(This, glyphs, count, enqueue_if_not, are_local); -} -/*** IDWriteFontFace4 methods ***/ -static inline HRESULT IDWriteFontFace7_GetGlyphImageFormats_(IDWriteFontFace7* This, UINT16 glyph, UINT32 ppem_first, UINT32 ppem_last, DWRITE_GLYPH_IMAGE_FORMATS* formats) { - return This->lpVtbl->GetGlyphImageFormats_(This, glyph, ppem_first, ppem_last, formats); -} -static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace7_GetGlyphImageFormats(IDWriteFontFace7* This) { - return This->lpVtbl->GetGlyphImageFormats(This); -} -static inline HRESULT IDWriteFontFace7_GetGlyphImageData(IDWriteFontFace7* This, UINT16 glyph, UINT32 ppem, DWRITE_GLYPH_IMAGE_FORMATS format, DWRITE_GLYPH_IMAGE_DATA* data, void** context) { - return This->lpVtbl->GetGlyphImageData(This, glyph, ppem, format, data, context); -} -static inline void IDWriteFontFace7_ReleaseGlyphImageData(IDWriteFontFace7* This, void* context) { - This->lpVtbl->ReleaseGlyphImageData(This, context); -} -/*** IDWriteFontFace5 methods ***/ -static inline UINT32 IDWriteFontFace7_GetFontAxisValueCount(IDWriteFontFace7* This) { - return This->lpVtbl->GetFontAxisValueCount(This); -} -static inline HRESULT IDWriteFontFace7_GetFontAxisValues(IDWriteFontFace7* This, DWRITE_FONT_AXIS_VALUE* values, UINT32 value_count) { - return This->lpVtbl->GetFontAxisValues(This, values, value_count); -} -static inline WINBOOL IDWriteFontFace7_HasVariations(IDWriteFontFace7* This) { - return This->lpVtbl->HasVariations(This); -} -static inline HRESULT IDWriteFontFace7_GetFontResource(IDWriteFontFace7* This, IDWriteFontResource** resource) { - return This->lpVtbl->GetFontResource(This, resource); -} -static inline WINBOOL IDWriteFontFace7_Equals(IDWriteFontFace7* This, IDWriteFontFace* fontface) { - return This->lpVtbl->Equals(This, fontface); -} -/*** IDWriteFontFace6 methods ***/ -static inline HRESULT IDWriteFontFace7_GetFamilyNames(IDWriteFontFace7* This, DWRITE_FONT_FAMILY_MODEL font_family_model, IDWriteLocalizedStrings** names) { - return This->lpVtbl->IDWriteFontFace6_GetFamilyNames(This, font_family_model, names); -} -static inline HRESULT IDWriteFontFace7_GetFaceNames(IDWriteFontFace7* This, DWRITE_FONT_FAMILY_MODEL font_family_model, IDWriteLocalizedStrings** names) { - return This->lpVtbl->IDWriteFontFace6_GetFaceNames(This, font_family_model, names); -} -/*** IDWriteFontFace7 methods ***/ -static inline DWRITE_PAINT_FEATURE_LEVEL IDWriteFontFace7_GetPaintFeatureLevel(IDWriteFontFace7* This, DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format) { - return This->lpVtbl->GetPaintFeatureLevel(This, glyph_image_format); -} -static inline HRESULT IDWriteFontFace7_CreatePaintReader(IDWriteFontFace7* This, DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format, DWRITE_PAINT_FEATURE_LEVEL paint_feature_level, IDWritePaintReader** paint_reader) { - return This->lpVtbl->CreatePaintReader(This, glyph_image_format, paint_feature_level, paint_reader); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFontFace7_INTERFACE_DEFINED__ */ - -typedef struct DWRITE_COLOR_GLYPH_RUN1 DWRITE_COLOR_GLYPH_RUN1; -struct DWRITE_COLOR_GLYPH_RUN1 { - DWRITE_GLYPH_RUN glyphRun; - DWRITE_GLYPH_RUN_DESCRIPTION* glyphRunDescription; - FLOAT baselineOriginX; - FLOAT baselineOriginY; - DWRITE_COLOR_F runColor; - UINT16 paletteIndex; -#ifdef _WIN64 - UINT32 _pad; -#endif - DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat; - DWRITE_MEASURING_MODE measuringMode; -}; -/***************************************************************************** - * IDWriteColorGlyphRunEnumerator1 interface - */ -#ifndef __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__ -#define __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteColorGlyphRunEnumerator1, 0x7c5f86da, 0xc7a1, 0x4f05, 0xb8, 0xe1, 0x55, 0xa1, 0x79, 0xfe, 0x5a, 0x35); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("7c5f86da-c7a1-4f05-b8e1-55a179fe5a35") -IDWriteColorGlyphRunEnumerator1 : public IDWriteColorGlyphRunEnumerator { - virtual HRESULT STDMETHODCALLTYPE GetCurrentRun( - const DWRITE_COLOR_GLYPH_RUN1** run) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteColorGlyphRunEnumerator1, 0x7c5f86da, 0xc7a1, 0x4f05, 0xb8, 0xe1, 0x55, 0xa1, 0x79, 0xfe, 0x5a, 0x35) -#endif -#else -typedef struct IDWriteColorGlyphRunEnumerator1Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteColorGlyphRunEnumerator1* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteColorGlyphRunEnumerator1* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteColorGlyphRunEnumerator1* This); - - /*** IDWriteColorGlyphRunEnumerator methods ***/ - HRESULT(STDMETHODCALLTYPE* MoveNext)( - IDWriteColorGlyphRunEnumerator1* This, - WINBOOL* hasRun); - - HRESULT(STDMETHODCALLTYPE* GetCurrentRun)( - IDWriteColorGlyphRunEnumerator1* This, - const DWRITE_COLOR_GLYPH_RUN** run); - - /*** IDWriteColorGlyphRunEnumerator1 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteColorGlyphRunEnumerator1_GetCurrentRun)( - IDWriteColorGlyphRunEnumerator1* This, - const DWRITE_COLOR_GLYPH_RUN1** run); - - END_INTERFACE -} IDWriteColorGlyphRunEnumerator1Vtbl; - -interface IDWriteColorGlyphRunEnumerator1 { - CONST_VTBL IDWriteColorGlyphRunEnumerator1Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteColorGlyphRunEnumerator1_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteColorGlyphRunEnumerator1_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteColorGlyphRunEnumerator1_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteColorGlyphRunEnumerator methods ***/ -#define IDWriteColorGlyphRunEnumerator1_MoveNext(This, hasRun) (This)->lpVtbl->MoveNext(This, hasRun) -/*** IDWriteColorGlyphRunEnumerator1 methods ***/ -#define IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This, run) (This)->lpVtbl->IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This, run) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteColorGlyphRunEnumerator1_QueryInterface(IDWriteColorGlyphRunEnumerator1* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteColorGlyphRunEnumerator1_AddRef(IDWriteColorGlyphRunEnumerator1* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteColorGlyphRunEnumerator1_Release(IDWriteColorGlyphRunEnumerator1* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteColorGlyphRunEnumerator methods ***/ -static inline HRESULT IDWriteColorGlyphRunEnumerator1_MoveNext(IDWriteColorGlyphRunEnumerator1* This, WINBOOL* hasRun) { - return This->lpVtbl->MoveNext(This, hasRun); -} -/*** IDWriteColorGlyphRunEnumerator1 methods ***/ -static inline HRESULT IDWriteColorGlyphRunEnumerator1_GetCurrentRun(IDWriteColorGlyphRunEnumerator1* This, const DWRITE_COLOR_GLYPH_RUN1** run) { - return This->lpVtbl->IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This, run); -} -#endif -#endif - -#endif - -#endif /* __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFactory4 interface - */ -#ifndef __IDWriteFactory4_INTERFACE_DEFINED__ -#define __IDWriteFactory4_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFactory4, 0x4b0b5bd3, 0x0797, 0x4549, 0x8a, 0xc5, 0xfe, 0x91, 0x5c, 0xc5, 0x38, 0x56); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("4b0b5bd3-0797-4549-8ac5-fe915cc53856") -IDWriteFactory4 : public IDWriteFactory3 { - virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun( - D2D1_POINT_2F baseline_origin, - const DWRITE_GLYPH_RUN* run, - const DWRITE_GLYPH_RUN_DESCRIPTION* run_desc, - DWRITE_GLYPH_IMAGE_FORMATS desired_formats, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_MATRIX* transform, - UINT32 palette, - IDWriteColorGlyphRunEnumerator1** layers) = 0; - - virtual HRESULT STDMETHODCALLTYPE ComputeGlyphOrigins_( - const DWRITE_GLYPH_RUN* run, - D2D1_POINT_2F baseline_origin, - D2D1_POINT_2F* origins) = 0; - - virtual HRESULT STDMETHODCALLTYPE ComputeGlyphOrigins( - const DWRITE_GLYPH_RUN* run, - DWRITE_MEASURING_MODE measuring_mode, - D2D1_POINT_2F baseline_origin, - const DWRITE_MATRIX* transform, - D2D1_POINT_2F* origins) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFactory4, 0x4b0b5bd3, 0x0797, 0x4549, 0x8a, 0xc5, 0xfe, 0x91, 0x5c, 0xc5, 0x38, 0x56) -#endif -#else -typedef struct IDWriteFactory4Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFactory4* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFactory4* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFactory4* This); - - /*** IDWriteFactory methods ***/ - HRESULT(STDMETHODCALLTYPE* GetSystemFontCollection)( - IDWriteFactory4* This, - IDWriteFontCollection** collection, - WINBOOL check_for_updates); - - HRESULT(STDMETHODCALLTYPE* CreateCustomFontCollection)( - IDWriteFactory4* This, - IDWriteFontCollectionLoader* loader, - const void* key, - UINT32 key_size, - IDWriteFontCollection** collection); - - HRESULT(STDMETHODCALLTYPE* RegisterFontCollectionLoader)( - IDWriteFactory4* This, - IDWriteFontCollectionLoader* loader); - - HRESULT(STDMETHODCALLTYPE* UnregisterFontCollectionLoader)( - IDWriteFactory4* This, - IDWriteFontCollectionLoader* loader); - - HRESULT(STDMETHODCALLTYPE* CreateFontFileReference)( - IDWriteFactory4* This, - const WCHAR* path, - const FILETIME* writetime, - IDWriteFontFile** font_file); - - HRESULT(STDMETHODCALLTYPE* CreateCustomFontFileReference)( - IDWriteFactory4* This, - const void* reference_key, - UINT32 key_size, - IDWriteFontFileLoader* loader, - IDWriteFontFile** font_file); - - HRESULT(STDMETHODCALLTYPE* CreateFontFace)( - IDWriteFactory4* This, - DWRITE_FONT_FACE_TYPE facetype, - UINT32 files_number, - IDWriteFontFile* const* font_files, - UINT32 index, - DWRITE_FONT_SIMULATIONS sim_flags, - IDWriteFontFace** font_face); - - HRESULT(STDMETHODCALLTYPE* CreateRenderingParams)( - IDWriteFactory4* This, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* CreateMonitorRenderingParams)( - IDWriteFactory4* This, - HMONITOR monitor, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* CreateCustomRenderingParams)( - IDWriteFactory4* This, - FLOAT gamma, - FLOAT enhancedContrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* RegisterFontFileLoader)( - IDWriteFactory4* This, - IDWriteFontFileLoader* loader); - - HRESULT(STDMETHODCALLTYPE* UnregisterFontFileLoader)( - IDWriteFactory4* This, - IDWriteFontFileLoader* loader); - - HRESULT(STDMETHODCALLTYPE* CreateTextFormat)( - IDWriteFactory4* This, - const WCHAR* family_name, - IDWriteFontCollection* collection, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STYLE style, - DWRITE_FONT_STRETCH stretch, - FLOAT size, - const WCHAR* locale, - IDWriteTextFormat** format); - - HRESULT(STDMETHODCALLTYPE* CreateTypography)( - IDWriteFactory4* This, - IDWriteTypography** typography); - - HRESULT(STDMETHODCALLTYPE* GetGdiInterop)( - IDWriteFactory4* This, - IDWriteGdiInterop** gdi_interop); - - HRESULT(STDMETHODCALLTYPE* CreateTextLayout)( - IDWriteFactory4* This, - const WCHAR* string, - UINT32 len, - IDWriteTextFormat* format, - FLOAT max_width, - FLOAT max_height, - IDWriteTextLayout** layout); - - HRESULT(STDMETHODCALLTYPE* CreateGdiCompatibleTextLayout)( - IDWriteFactory4* This, - const WCHAR* string, - UINT32 len, - IDWriteTextFormat* format, - FLOAT layout_width, - FLOAT layout_height, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - IDWriteTextLayout** layout); - - HRESULT(STDMETHODCALLTYPE* CreateEllipsisTrimmingSign)( - IDWriteFactory4* This, - IDWriteTextFormat* format, - IDWriteInlineObject** trimming_sign); - - HRESULT(STDMETHODCALLTYPE* CreateTextAnalyzer)( - IDWriteFactory4* This, - IDWriteTextAnalyzer** analyzer); - - HRESULT(STDMETHODCALLTYPE* CreateNumberSubstitution)( - IDWriteFactory4* This, - DWRITE_NUMBER_SUBSTITUTION_METHOD method, - const WCHAR* locale, - WINBOOL ignore_user_override, - IDWriteNumberSubstitution** substitution); - - HRESULT(STDMETHODCALLTYPE* CreateGlyphRunAnalysis)( - IDWriteFactory4* This, - const DWRITE_GLYPH_RUN* glyph_run, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - FLOAT baseline_x, - FLOAT baseline_y, - IDWriteGlyphRunAnalysis** analysis); - - /*** IDWriteFactory1 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetEudcFontCollection)( - IDWriteFactory4* This, - IDWriteFontCollection** collection, - WINBOOL check_for_updates); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory1_CreateCustomRenderingParams)( - IDWriteFactory4* This, - FLOAT gamma, - FLOAT enhcontrast, - FLOAT enhcontrast_grayscale, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams1** params); - - /*** IDWriteFactory2 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetSystemFontFallback)( - IDWriteFactory4* This, - IDWriteFontFallback** fallback); - - HRESULT(STDMETHODCALLTYPE* CreateFontFallbackBuilder)( - IDWriteFactory4* This, - IDWriteFontFallbackBuilder** fallbackbuilder); - - HRESULT(STDMETHODCALLTYPE* TranslateColorGlyphRun)( - IDWriteFactory4* This, - FLOAT originX, - FLOAT originY, - const DWRITE_GLYPH_RUN* run, - const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, - DWRITE_MEASURING_MODE mode, - const DWRITE_MATRIX* transform, - UINT32 palette_index, - IDWriteColorGlyphRunEnumerator** colorlayers); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateCustomRenderingParams)( - IDWriteFactory4* This, - FLOAT gamma, - FLOAT contrast, - FLOAT grayscalecontrast, - FLOAT cleartypeLevel, - DWRITE_PIXEL_GEOMETRY pixelGeometry, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_GRID_FIT_MODE gridFitMode, - IDWriteRenderingParams2** params); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateGlyphRunAnalysis)( - IDWriteFactory4* This, - const DWRITE_GLYPH_RUN* run, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_MEASURING_MODE measuringMode, - DWRITE_GRID_FIT_MODE gridFitMode, - DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, - FLOAT originX, - FLOAT originY, - IDWriteGlyphRunAnalysis** analysis); - - /*** IDWriteFactory3 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateGlyphRunAnalysis)( - IDWriteFactory4* This, - const DWRITE_GLYPH_RUN* run, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, - FLOAT origin_x, - FLOAT origin_y, - IDWriteGlyphRunAnalysis** analysis); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateCustomRenderingParams)( - IDWriteFactory4* This, - FLOAT gamma, - FLOAT enhanced_contrast, - FLOAT grayscale_enhanced_contrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY pixel_geometry, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - IDWriteRenderingParams3** params); - - HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference_)( - IDWriteFactory4* This, - IDWriteFontFile* file, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference** reference); - - HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference)( - IDWriteFactory4* This, - const WCHAR* path, - const FILETIME* writetime, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference** reference); - - HRESULT(STDMETHODCALLTYPE* GetSystemFontSet)( - IDWriteFactory4* This, - IDWriteFontSet** fontset); - - HRESULT(STDMETHODCALLTYPE* CreateFontSetBuilder)( - IDWriteFactory4* This, - IDWriteFontSetBuilder** builder); - - HRESULT(STDMETHODCALLTYPE* CreateFontCollectionFromFontSet)( - IDWriteFactory4* This, - IDWriteFontSet* fontset, - IDWriteFontCollection1** collection); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_GetSystemFontCollection)( - IDWriteFactory4* This, - WINBOOL include_downloadable, - IDWriteFontCollection1** collection, - WINBOOL check_for_updates); - - HRESULT(STDMETHODCALLTYPE* GetFontDownloadQueue)( - IDWriteFactory4* This, - IDWriteFontDownloadQueue** queue); - - /*** IDWriteFactory4 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFactory4_TranslateColorGlyphRun)( - IDWriteFactory4* This, - D2D1_POINT_2F baseline_origin, - const DWRITE_GLYPH_RUN* run, - const DWRITE_GLYPH_RUN_DESCRIPTION* run_desc, - DWRITE_GLYPH_IMAGE_FORMATS desired_formats, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_MATRIX* transform, - UINT32 palette, - IDWriteColorGlyphRunEnumerator1** layers); - - HRESULT(STDMETHODCALLTYPE* ComputeGlyphOrigins_)( - IDWriteFactory4* This, - const DWRITE_GLYPH_RUN* run, - D2D1_POINT_2F baseline_origin, - D2D1_POINT_2F* origins); - - HRESULT(STDMETHODCALLTYPE* ComputeGlyphOrigins)( - IDWriteFactory4* This, - const DWRITE_GLYPH_RUN* run, - DWRITE_MEASURING_MODE measuring_mode, - D2D1_POINT_2F baseline_origin, - const DWRITE_MATRIX* transform, - D2D1_POINT_2F* origins); - - END_INTERFACE -} IDWriteFactory4Vtbl; - -interface IDWriteFactory4 { - CONST_VTBL IDWriteFactory4Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFactory4_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFactory4_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFactory4_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFactory methods ***/ -#define IDWriteFactory4_CreateCustomFontCollection(This, loader, key, key_size, collection) (This)->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection) -#define IDWriteFactory4_RegisterFontCollectionLoader(This, loader) (This)->lpVtbl->RegisterFontCollectionLoader(This, loader) -#define IDWriteFactory4_UnregisterFontCollectionLoader(This, loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This, loader) -#define IDWriteFactory4_CreateFontFileReference(This, path, writetime, font_file) (This)->lpVtbl->CreateFontFileReference(This, path, writetime, font_file) -#define IDWriteFactory4_CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) (This)->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) -#define IDWriteFactory4_CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) (This)->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) -#define IDWriteFactory4_CreateRenderingParams(This, params) (This)->lpVtbl->CreateRenderingParams(This, params) -#define IDWriteFactory4_CreateMonitorRenderingParams(This, monitor, params) (This)->lpVtbl->CreateMonitorRenderingParams(This, monitor, params) -#define IDWriteFactory4_RegisterFontFileLoader(This, loader) (This)->lpVtbl->RegisterFontFileLoader(This, loader) -#define IDWriteFactory4_UnregisterFontFileLoader(This, loader) (This)->lpVtbl->UnregisterFontFileLoader(This, loader) -#define IDWriteFactory4_CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format) (This)->lpVtbl->CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format) -#define IDWriteFactory4_CreateTypography(This, typography) (This)->lpVtbl->CreateTypography(This, typography) -#define IDWriteFactory4_GetGdiInterop(This, gdi_interop) (This)->lpVtbl->GetGdiInterop(This, gdi_interop) -#define IDWriteFactory4_CreateTextLayout(This, string, len, format, max_width, max_height, layout) (This)->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout) -#define IDWriteFactory4_CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) -#define IDWriteFactory4_CreateEllipsisTrimmingSign(This, format, trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign) -#define IDWriteFactory4_CreateTextAnalyzer(This, analyzer) (This)->lpVtbl->CreateTextAnalyzer(This, analyzer) -#define IDWriteFactory4_CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) (This)->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) -/*** IDWriteFactory1 methods ***/ -#define IDWriteFactory4_GetEudcFontCollection(This, collection, check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates) -/*** IDWriteFactory2 methods ***/ -#define IDWriteFactory4_GetSystemFontFallback(This, fallback) (This)->lpVtbl->GetSystemFontFallback(This, fallback) -#define IDWriteFactory4_CreateFontFallbackBuilder(This, fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder) -/*** IDWriteFactory3 methods ***/ -#define IDWriteFactory4_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) -#define IDWriteFactory4_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) -#define IDWriteFactory4_CreateFontFaceReference_(This, file, index, simulations, reference) (This)->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference) -#define IDWriteFactory4_CreateFontFaceReference(This, path, writetime, index, simulations, reference) (This)->lpVtbl->CreateFontFaceReference(This, path, writetime, index, simulations, reference) -#define IDWriteFactory4_GetSystemFontSet(This, fontset) (This)->lpVtbl->GetSystemFontSet(This, fontset) -#define IDWriteFactory4_CreateFontSetBuilder(This, builder) (This)->lpVtbl->CreateFontSetBuilder(This, builder) -#define IDWriteFactory4_CreateFontCollectionFromFontSet(This, fontset, collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This, fontset, collection) -#define IDWriteFactory4_GetSystemFontCollection(This, include_downloadable, collection, check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This, include_downloadable, collection, check_for_updates) -#define IDWriteFactory4_GetFontDownloadQueue(This, queue) (This)->lpVtbl->GetFontDownloadQueue(This, queue) -/*** IDWriteFactory4 methods ***/ -#define IDWriteFactory4_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers) -#define IDWriteFactory4_ComputeGlyphOrigins_(This, run, baseline_origin, origins) (This)->lpVtbl->ComputeGlyphOrigins_(This, run, baseline_origin, origins) -#define IDWriteFactory4_ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins) (This)->lpVtbl->ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFactory4_QueryInterface(IDWriteFactory4* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFactory4_AddRef(IDWriteFactory4* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFactory4_Release(IDWriteFactory4* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFactory methods ***/ -static inline HRESULT IDWriteFactory4_CreateCustomFontCollection(IDWriteFactory4* This, IDWriteFontCollectionLoader* loader, const void* key, UINT32 key_size, IDWriteFontCollection** collection) { - return This->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection); -} -static inline HRESULT IDWriteFactory4_RegisterFontCollectionLoader(IDWriteFactory4* This, IDWriteFontCollectionLoader* loader) { - return This->lpVtbl->RegisterFontCollectionLoader(This, loader); -} -static inline HRESULT IDWriteFactory4_UnregisterFontCollectionLoader(IDWriteFactory4* This, IDWriteFontCollectionLoader* loader) { - return This->lpVtbl->UnregisterFontCollectionLoader(This, loader); -} -static inline HRESULT IDWriteFactory4_CreateFontFileReference(IDWriteFactory4* This, const WCHAR* path, const FILETIME* writetime, IDWriteFontFile** font_file) { - return This->lpVtbl->CreateFontFileReference(This, path, writetime, font_file); -} -static inline HRESULT IDWriteFactory4_CreateCustomFontFileReference(IDWriteFactory4* This, const void* reference_key, UINT32 key_size, IDWriteFontFileLoader* loader, IDWriteFontFile** font_file) { - return This->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file); -} -static inline HRESULT IDWriteFactory4_CreateFontFace(IDWriteFactory4* This, DWRITE_FONT_FACE_TYPE facetype, UINT32 files_number, IDWriteFontFile* const* font_files, UINT32 index, DWRITE_FONT_SIMULATIONS sim_flags, IDWriteFontFace** font_face) { - return This->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face); -} -static inline HRESULT IDWriteFactory4_CreateRenderingParams(IDWriteFactory4* This, IDWriteRenderingParams** params) { - return This->lpVtbl->CreateRenderingParams(This, params); -} -static inline HRESULT IDWriteFactory4_CreateMonitorRenderingParams(IDWriteFactory4* This, HMONITOR monitor, IDWriteRenderingParams** params) { - return This->lpVtbl->CreateMonitorRenderingParams(This, monitor, params); -} -static inline HRESULT IDWriteFactory4_RegisterFontFileLoader(IDWriteFactory4* This, IDWriteFontFileLoader* loader) { - return This->lpVtbl->RegisterFontFileLoader(This, loader); -} -static inline HRESULT IDWriteFactory4_UnregisterFontFileLoader(IDWriteFactory4* This, IDWriteFontFileLoader* loader) { - return This->lpVtbl->UnregisterFontFileLoader(This, loader); -} -static inline HRESULT IDWriteFactory4_CreateTextFormat(IDWriteFactory4* This, const WCHAR* family_name, IDWriteFontCollection* collection, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STYLE style, DWRITE_FONT_STRETCH stretch, FLOAT size, const WCHAR* locale, IDWriteTextFormat** format) { - return This->lpVtbl->CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format); -} -static inline HRESULT IDWriteFactory4_CreateTypography(IDWriteFactory4* This, IDWriteTypography** typography) { - return This->lpVtbl->CreateTypography(This, typography); -} -static inline HRESULT IDWriteFactory4_GetGdiInterop(IDWriteFactory4* This, IDWriteGdiInterop** gdi_interop) { - return This->lpVtbl->GetGdiInterop(This, gdi_interop); -} -static inline HRESULT IDWriteFactory4_CreateTextLayout(IDWriteFactory4* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT max_width, FLOAT max_height, IDWriteTextLayout** layout) { - return This->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout); -} -static inline HRESULT IDWriteFactory4_CreateGdiCompatibleTextLayout(IDWriteFactory4* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT layout_width, FLOAT layout_height, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, IDWriteTextLayout** layout) { - return This->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout); -} -static inline HRESULT IDWriteFactory4_CreateEllipsisTrimmingSign(IDWriteFactory4* This, IDWriteTextFormat* format, IDWriteInlineObject** trimming_sign) { - return This->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign); -} -static inline HRESULT IDWriteFactory4_CreateTextAnalyzer(IDWriteFactory4* This, IDWriteTextAnalyzer** analyzer) { - return This->lpVtbl->CreateTextAnalyzer(This, analyzer); -} -static inline HRESULT IDWriteFactory4_CreateNumberSubstitution(IDWriteFactory4* This, DWRITE_NUMBER_SUBSTITUTION_METHOD method, const WCHAR* locale, WINBOOL ignore_user_override, IDWriteNumberSubstitution** substitution) { - return This->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution); -} -/*** IDWriteFactory1 methods ***/ -static inline HRESULT IDWriteFactory4_GetEudcFontCollection(IDWriteFactory4* This, IDWriteFontCollection** collection, WINBOOL check_for_updates) { - return This->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates); -} -/*** IDWriteFactory2 methods ***/ -static inline HRESULT IDWriteFactory4_GetSystemFontFallback(IDWriteFactory4* This, IDWriteFontFallback** fallback) { - return This->lpVtbl->GetSystemFontFallback(This, fallback); -} -static inline HRESULT IDWriteFactory4_CreateFontFallbackBuilder(IDWriteFactory4* This, IDWriteFontFallbackBuilder** fallbackbuilder) { - return This->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder); -} -/*** IDWriteFactory3 methods ***/ -static inline HRESULT IDWriteFactory4_CreateGlyphRunAnalysis(IDWriteFactory4* This, const DWRITE_GLYPH_RUN* run, const DWRITE_MATRIX* transform, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_MEASURING_MODE measuring_mode, DWRITE_GRID_FIT_MODE gridfit_mode, DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, FLOAT origin_x, FLOAT origin_y, IDWriteGlyphRunAnalysis** analysis) { - return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis); -} -static inline HRESULT IDWriteFactory4_CreateCustomRenderingParams(IDWriteFactory4* This, FLOAT gamma, FLOAT enhanced_contrast, FLOAT grayscale_enhanced_contrast, FLOAT cleartype_level, DWRITE_PIXEL_GEOMETRY pixel_geometry, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_GRID_FIT_MODE gridfit_mode, IDWriteRenderingParams3** params) { - return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params); -} -static inline HRESULT IDWriteFactory4_CreateFontFaceReference_(IDWriteFactory4* This, IDWriteFontFile* file, UINT32 index, DWRITE_FONT_SIMULATIONS simulations, IDWriteFontFaceReference** reference) { - return This->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference); -} -static inline HRESULT IDWriteFactory4_CreateFontFaceReference(IDWriteFactory4* This, const WCHAR* path, const FILETIME* writetime, UINT32 index, DWRITE_FONT_SIMULATIONS simulations, IDWriteFontFaceReference** reference) { - return This->lpVtbl->CreateFontFaceReference(This, path, writetime, index, simulations, reference); -} -static inline HRESULT IDWriteFactory4_GetSystemFontSet(IDWriteFactory4* This, IDWriteFontSet** fontset) { - return This->lpVtbl->GetSystemFontSet(This, fontset); -} -static inline HRESULT IDWriteFactory4_CreateFontSetBuilder(IDWriteFactory4* This, IDWriteFontSetBuilder** builder) { - return This->lpVtbl->CreateFontSetBuilder(This, builder); -} -static inline HRESULT IDWriteFactory4_CreateFontCollectionFromFontSet(IDWriteFactory4* This, IDWriteFontSet* fontset, IDWriteFontCollection1** collection) { - return This->lpVtbl->CreateFontCollectionFromFontSet(This, fontset, collection); -} -static inline HRESULT IDWriteFactory4_GetSystemFontCollection(IDWriteFactory4* This, WINBOOL include_downloadable, IDWriteFontCollection1** collection, WINBOOL check_for_updates) { - return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This, include_downloadable, collection, check_for_updates); -} -static inline HRESULT IDWriteFactory4_GetFontDownloadQueue(IDWriteFactory4* This, IDWriteFontDownloadQueue** queue) { - return This->lpVtbl->GetFontDownloadQueue(This, queue); -} -/*** IDWriteFactory4 methods ***/ -static inline HRESULT IDWriteFactory4_TranslateColorGlyphRun(IDWriteFactory4* This, D2D1_POINT_2F baseline_origin, const DWRITE_GLYPH_RUN* run, const DWRITE_GLYPH_RUN_DESCRIPTION* run_desc, DWRITE_GLYPH_IMAGE_FORMATS desired_formats, DWRITE_MEASURING_MODE measuring_mode, const DWRITE_MATRIX* transform, UINT32 palette, IDWriteColorGlyphRunEnumerator1** layers) { - return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers); -} -static inline HRESULT IDWriteFactory4_ComputeGlyphOrigins_(IDWriteFactory4* This, const DWRITE_GLYPH_RUN* run, D2D1_POINT_2F baseline_origin, D2D1_POINT_2F* origins) { - return This->lpVtbl->ComputeGlyphOrigins_(This, run, baseline_origin, origins); -} -static inline HRESULT IDWriteFactory4_ComputeGlyphOrigins(IDWriteFactory4* This, const DWRITE_GLYPH_RUN* run, DWRITE_MEASURING_MODE measuring_mode, D2D1_POINT_2F baseline_origin, const DWRITE_MATRIX* transform, D2D1_POINT_2F* origins) { - return This->lpVtbl->ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFactory4_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteAsyncResult interface - */ -#ifndef __IDWriteAsyncResult_INTERFACE_DEFINED__ -#define __IDWriteAsyncResult_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteAsyncResult, 0xce25f8fd, 0x863b, 0x4d13, 0x96, 0x51, 0xc1, 0xf8, 0x8d, 0xc7, 0x3f, 0xe2); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("ce25f8fd-863b-4d13-9651-c1f88dc73fe2") -IDWriteAsyncResult : public IUnknown { - virtual HANDLE STDMETHODCALLTYPE GetWaitHandle() = 0; - - virtual HRESULT STDMETHODCALLTYPE GetResult() = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteAsyncResult, 0xce25f8fd, 0x863b, 0x4d13, 0x96, 0x51, 0xc1, 0xf8, 0x8d, 0xc7, 0x3f, 0xe2) -#endif -#else -typedef struct IDWriteAsyncResultVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteAsyncResult* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteAsyncResult* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteAsyncResult* This); - - /*** IDWriteAsyncResult methods ***/ - HANDLE(STDMETHODCALLTYPE* GetWaitHandle)( - IDWriteAsyncResult* This); - - HRESULT(STDMETHODCALLTYPE* GetResult)( - IDWriteAsyncResult* This); - - END_INTERFACE -} IDWriteAsyncResultVtbl; - -interface IDWriteAsyncResult { - CONST_VTBL IDWriteAsyncResultVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteAsyncResult_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteAsyncResult_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteAsyncResult_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteAsyncResult methods ***/ -#define IDWriteAsyncResult_GetWaitHandle(This) (This)->lpVtbl->GetWaitHandle(This) -#define IDWriteAsyncResult_GetResult(This) (This)->lpVtbl->GetResult(This) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteAsyncResult_QueryInterface(IDWriteAsyncResult* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteAsyncResult_AddRef(IDWriteAsyncResult* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteAsyncResult_Release(IDWriteAsyncResult* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteAsyncResult methods ***/ -static inline HANDLE IDWriteAsyncResult_GetWaitHandle(IDWriteAsyncResult* This) { - return This->lpVtbl->GetWaitHandle(This); -} -static inline HRESULT IDWriteAsyncResult_GetResult(IDWriteAsyncResult* This) { - return This->lpVtbl->GetResult(This); -} -#endif -#endif - -#endif - -#endif /* __IDWriteAsyncResult_INTERFACE_DEFINED__ */ - -typedef struct DWRITE_FILE_FRAGMENT { - UINT64 fileOffset; - UINT64 fragmentSize; -} DWRITE_FILE_FRAGMENT; -/***************************************************************************** - * IDWriteRemoteFontFileStream interface - */ -#ifndef __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__ -#define __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteRemoteFontFileStream, 0x4db3757a, 0x2c72, 0x4ed9, 0xb2, 0xb6, 0x1a, 0xba, 0xbe, 0x1a, 0xff, 0x9c); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("4db3757a-2c72-4ed9-b2b6-1ababe1aff9c") -IDWriteRemoteFontFileStream : public IDWriteFontFileStream { - virtual HRESULT STDMETHODCALLTYPE GetLocalFileSize( - UINT64 * size) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFileFragmentLocality( - UINT64 offset, - UINT64 size, - WINBOOL * is_local, - UINT64 * partial_size) = 0; - - virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality() = 0; - - virtual HRESULT STDMETHODCALLTYPE BeginDownload( - const GUID* operation_id, - const DWRITE_FILE_FRAGMENT* fragments, - UINT32 fragment_count, - IDWriteAsyncResult** async_result) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteRemoteFontFileStream, 0x4db3757a, 0x2c72, 0x4ed9, 0xb2, 0xb6, 0x1a, 0xba, 0xbe, 0x1a, 0xff, 0x9c) -#endif -#else -typedef struct IDWriteRemoteFontFileStreamVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteRemoteFontFileStream* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteRemoteFontFileStream* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteRemoteFontFileStream* This); - - /*** IDWriteFontFileStream methods ***/ - HRESULT(STDMETHODCALLTYPE* ReadFileFragment)( - IDWriteRemoteFontFileStream* This, - const void** fragment_start, - UINT64 offset, - UINT64 fragment_size, - void** fragment_context); - - void(STDMETHODCALLTYPE* ReleaseFileFragment)( - IDWriteRemoteFontFileStream* This, - void* fragment_context); - - HRESULT(STDMETHODCALLTYPE* GetFileSize)( - IDWriteRemoteFontFileStream* This, - UINT64* size); - - HRESULT(STDMETHODCALLTYPE* GetLastWriteTime)( - IDWriteRemoteFontFileStream* This, - UINT64* last_writetime); - - /*** IDWriteRemoteFontFileStream methods ***/ - HRESULT(STDMETHODCALLTYPE* GetLocalFileSize)( - IDWriteRemoteFontFileStream* This, - UINT64* size); - - HRESULT(STDMETHODCALLTYPE* GetFileFragmentLocality)( - IDWriteRemoteFontFileStream* This, - UINT64 offset, - UINT64 size, - WINBOOL* is_local, - UINT64* partial_size); - - DWRITE_LOCALITY(STDMETHODCALLTYPE* GetLocality)( - IDWriteRemoteFontFileStream* This); - - HRESULT(STDMETHODCALLTYPE* BeginDownload)( - IDWriteRemoteFontFileStream* This, - const GUID* operation_id, - const DWRITE_FILE_FRAGMENT* fragments, - UINT32 fragment_count, - IDWriteAsyncResult** async_result); - - END_INTERFACE -} IDWriteRemoteFontFileStreamVtbl; - -interface IDWriteRemoteFontFileStream { - CONST_VTBL IDWriteRemoteFontFileStreamVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteRemoteFontFileStream_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteRemoteFontFileStream_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteRemoteFontFileStream_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontFileStream methods ***/ -#define IDWriteRemoteFontFileStream_ReadFileFragment(This, fragment_start, offset, fragment_size, fragment_context) (This)->lpVtbl->ReadFileFragment(This, fragment_start, offset, fragment_size, fragment_context) -#define IDWriteRemoteFontFileStream_ReleaseFileFragment(This, fragment_context) (This)->lpVtbl->ReleaseFileFragment(This, fragment_context) -#define IDWriteRemoteFontFileStream_GetFileSize(This, size) (This)->lpVtbl->GetFileSize(This, size) -#define IDWriteRemoteFontFileStream_GetLastWriteTime(This, last_writetime) (This)->lpVtbl->GetLastWriteTime(This, last_writetime) -/*** IDWriteRemoteFontFileStream methods ***/ -#define IDWriteRemoteFontFileStream_GetLocalFileSize(This, size) (This)->lpVtbl->GetLocalFileSize(This, size) -#define IDWriteRemoteFontFileStream_GetFileFragmentLocality(This, offset, size, is_local, partial_size) (This)->lpVtbl->GetFileFragmentLocality(This, offset, size, is_local, partial_size) -#define IDWriteRemoteFontFileStream_GetLocality(This) (This)->lpVtbl->GetLocality(This) -#define IDWriteRemoteFontFileStream_BeginDownload(This, operation_id, fragments, fragment_count, async_result) (This)->lpVtbl->BeginDownload(This, operation_id, fragments, fragment_count, async_result) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteRemoteFontFileStream_QueryInterface(IDWriteRemoteFontFileStream* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteRemoteFontFileStream_AddRef(IDWriteRemoteFontFileStream* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteRemoteFontFileStream_Release(IDWriteRemoteFontFileStream* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontFileStream methods ***/ -static inline HRESULT IDWriteRemoteFontFileStream_ReadFileFragment(IDWriteRemoteFontFileStream* This, const void** fragment_start, UINT64 offset, UINT64 fragment_size, void** fragment_context) { - return This->lpVtbl->ReadFileFragment(This, fragment_start, offset, fragment_size, fragment_context); -} -static inline void IDWriteRemoteFontFileStream_ReleaseFileFragment(IDWriteRemoteFontFileStream* This, void* fragment_context) { - This->lpVtbl->ReleaseFileFragment(This, fragment_context); -} -static inline HRESULT IDWriteRemoteFontFileStream_GetFileSize(IDWriteRemoteFontFileStream* This, UINT64* size) { - return This->lpVtbl->GetFileSize(This, size); -} -static inline HRESULT IDWriteRemoteFontFileStream_GetLastWriteTime(IDWriteRemoteFontFileStream* This, UINT64* last_writetime) { - return This->lpVtbl->GetLastWriteTime(This, last_writetime); -} -/*** IDWriteRemoteFontFileStream methods ***/ -static inline HRESULT IDWriteRemoteFontFileStream_GetLocalFileSize(IDWriteRemoteFontFileStream* This, UINT64* size) { - return This->lpVtbl->GetLocalFileSize(This, size); -} -static inline HRESULT IDWriteRemoteFontFileStream_GetFileFragmentLocality(IDWriteRemoteFontFileStream* This, UINT64 offset, UINT64 size, WINBOOL* is_local, UINT64* partial_size) { - return This->lpVtbl->GetFileFragmentLocality(This, offset, size, is_local, partial_size); -} -static inline DWRITE_LOCALITY IDWriteRemoteFontFileStream_GetLocality(IDWriteRemoteFontFileStream* This) { - return This->lpVtbl->GetLocality(This); -} -static inline HRESULT IDWriteRemoteFontFileStream_BeginDownload(IDWriteRemoteFontFileStream* This, const GUID* operation_id, const DWRITE_FILE_FRAGMENT* fragments, UINT32 fragment_count, IDWriteAsyncResult** async_result) { - return This->lpVtbl->BeginDownload(This, operation_id, fragments, fragment_count, async_result); -} -#endif -#endif - -#endif - -#endif /* __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__ */ - -typedef enum DWRITE_CONTAINER_TYPE { - DWRITE_CONTAINER_TYPE_UNKNOWN = 0, - DWRITE_CONTAINER_TYPE_WOFF = 1, - DWRITE_CONTAINER_TYPE_WOFF2 = 2 -} DWRITE_CONTAINER_TYPE; -/***************************************************************************** - * IDWriteRemoteFontFileLoader interface - */ -#ifndef __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__ -#define __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteRemoteFontFileLoader, 0x68648c83, 0x6ede, 0x46c0, 0xab, 0x46, 0x20, 0x08, 0x3a, 0x88, 0x7f, 0xde); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("68648c83-6ede-46c0-ab46-20083a887fde") -IDWriteRemoteFontFileLoader : public IDWriteFontFileLoader { - virtual HRESULT STDMETHODCALLTYPE CreateRemoteStreamFromKey( - const void* key, - UINT32 key_size, - IDWriteRemoteFontFileStream** stream) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalityFromKey( - const void* key, - UINT32 key_size, - DWRITE_LOCALITY* locality) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontFileReferenceFromUrl( - IDWriteFactory * factory, - const WCHAR* base_url, - const WCHAR* file_url, - IDWriteFontFile** fontfile) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteRemoteFontFileLoader, 0x68648c83, 0x6ede, 0x46c0, 0xab, 0x46, 0x20, 0x08, 0x3a, 0x88, 0x7f, 0xde) -#endif -#else -typedef struct IDWriteRemoteFontFileLoaderVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteRemoteFontFileLoader* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteRemoteFontFileLoader* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteRemoteFontFileLoader* This); - - /*** IDWriteFontFileLoader methods ***/ - HRESULT(STDMETHODCALLTYPE* CreateStreamFromKey)( - IDWriteRemoteFontFileLoader* This, - const void* key, - UINT32 key_size, - IDWriteFontFileStream** stream); - - /*** IDWriteRemoteFontFileLoader methods ***/ - HRESULT(STDMETHODCALLTYPE* CreateRemoteStreamFromKey)( - IDWriteRemoteFontFileLoader* This, - const void* key, - UINT32 key_size, - IDWriteRemoteFontFileStream** stream); - - HRESULT(STDMETHODCALLTYPE* GetLocalityFromKey)( - IDWriteRemoteFontFileLoader* This, - const void* key, - UINT32 key_size, - DWRITE_LOCALITY* locality); - - HRESULT(STDMETHODCALLTYPE* CreateFontFileReferenceFromUrl)( - IDWriteRemoteFontFileLoader* This, - IDWriteFactory* factory, - const WCHAR* base_url, - const WCHAR* file_url, - IDWriteFontFile** fontfile); - - END_INTERFACE -} IDWriteRemoteFontFileLoaderVtbl; - -interface IDWriteRemoteFontFileLoader { - CONST_VTBL IDWriteRemoteFontFileLoaderVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteRemoteFontFileLoader_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteRemoteFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteRemoteFontFileLoader_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontFileLoader methods ***/ -#define IDWriteRemoteFontFileLoader_CreateStreamFromKey(This, key, key_size, stream) (This)->lpVtbl->CreateStreamFromKey(This, key, key_size, stream) -/*** IDWriteRemoteFontFileLoader methods ***/ -#define IDWriteRemoteFontFileLoader_CreateRemoteStreamFromKey(This, key, key_size, stream) (This)->lpVtbl->CreateRemoteStreamFromKey(This, key, key_size, stream) -#define IDWriteRemoteFontFileLoader_GetLocalityFromKey(This, key, key_size, locality) (This)->lpVtbl->GetLocalityFromKey(This, key, key_size, locality) -#define IDWriteRemoteFontFileLoader_CreateFontFileReferenceFromUrl(This, factory, base_url, file_url, fontfile) (This)->lpVtbl->CreateFontFileReferenceFromUrl(This, factory, base_url, file_url, fontfile) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteRemoteFontFileLoader_QueryInterface(IDWriteRemoteFontFileLoader* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteRemoteFontFileLoader_AddRef(IDWriteRemoteFontFileLoader* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteRemoteFontFileLoader_Release(IDWriteRemoteFontFileLoader* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontFileLoader methods ***/ -static inline HRESULT IDWriteRemoteFontFileLoader_CreateStreamFromKey(IDWriteRemoteFontFileLoader* This, const void* key, UINT32 key_size, IDWriteFontFileStream** stream) { - return This->lpVtbl->CreateStreamFromKey(This, key, key_size, stream); -} -/*** IDWriteRemoteFontFileLoader methods ***/ -static inline HRESULT IDWriteRemoteFontFileLoader_CreateRemoteStreamFromKey(IDWriteRemoteFontFileLoader* This, const void* key, UINT32 key_size, IDWriteRemoteFontFileStream** stream) { - return This->lpVtbl->CreateRemoteStreamFromKey(This, key, key_size, stream); -} -static inline HRESULT IDWriteRemoteFontFileLoader_GetLocalityFromKey(IDWriteRemoteFontFileLoader* This, const void* key, UINT32 key_size, DWRITE_LOCALITY* locality) { - return This->lpVtbl->GetLocalityFromKey(This, key, key_size, locality); -} -static inline HRESULT IDWriteRemoteFontFileLoader_CreateFontFileReferenceFromUrl(IDWriteRemoteFontFileLoader* This, IDWriteFactory* factory, const WCHAR* base_url, const WCHAR* file_url, IDWriteFontFile** fontfile) { - return This->lpVtbl->CreateFontFileReferenceFromUrl(This, factory, base_url, file_url, fontfile); -} -#endif -#endif - -#endif - -#endif /* __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteInMemoryFontFileLoader interface - */ -#ifndef __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__ -#define __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteInMemoryFontFileLoader, 0xdc102f47, 0xa12d, 0x4b1c, 0x82, 0x2d, 0x9e, 0x11, 0x7e, 0x33, 0x04, 0x3f); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("dc102f47-a12d-4b1c-822d-9e117e33043f") -IDWriteInMemoryFontFileLoader : public IDWriteFontFileLoader { - virtual HRESULT STDMETHODCALLTYPE CreateInMemoryFontFileReference( - IDWriteFactory * factory, - const void* data, - UINT32 data_size, - IUnknown* owner, - IDWriteFontFile** fontfile) = 0; - - virtual UINT32 STDMETHODCALLTYPE GetFileCount() = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteInMemoryFontFileLoader, 0xdc102f47, 0xa12d, 0x4b1c, 0x82, 0x2d, 0x9e, 0x11, 0x7e, 0x33, 0x04, 0x3f) -#endif -#else -typedef struct IDWriteInMemoryFontFileLoaderVtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteInMemoryFontFileLoader* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteInMemoryFontFileLoader* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteInMemoryFontFileLoader* This); - - /*** IDWriteFontFileLoader methods ***/ - HRESULT(STDMETHODCALLTYPE* CreateStreamFromKey)( - IDWriteInMemoryFontFileLoader* This, - const void* key, - UINT32 key_size, - IDWriteFontFileStream** stream); - - /*** IDWriteInMemoryFontFileLoader methods ***/ - HRESULT(STDMETHODCALLTYPE* CreateInMemoryFontFileReference)( - IDWriteInMemoryFontFileLoader* This, - IDWriteFactory* factory, - const void* data, - UINT32 data_size, - IUnknown* owner, - IDWriteFontFile** fontfile); - - UINT32(STDMETHODCALLTYPE* GetFileCount)( - IDWriteInMemoryFontFileLoader* This); - - END_INTERFACE -} IDWriteInMemoryFontFileLoaderVtbl; - -interface IDWriteInMemoryFontFileLoader { - CONST_VTBL IDWriteInMemoryFontFileLoaderVtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteInMemoryFontFileLoader_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteInMemoryFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteInMemoryFontFileLoader_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFontFileLoader methods ***/ -#define IDWriteInMemoryFontFileLoader_CreateStreamFromKey(This, key, key_size, stream) (This)->lpVtbl->CreateStreamFromKey(This, key, key_size, stream) -/*** IDWriteInMemoryFontFileLoader methods ***/ -#define IDWriteInMemoryFontFileLoader_CreateInMemoryFontFileReference(This, factory, data, data_size, owner, fontfile) (This)->lpVtbl->CreateInMemoryFontFileReference(This, factory, data, data_size, owner, fontfile) -#define IDWriteInMemoryFontFileLoader_GetFileCount(This) (This)->lpVtbl->GetFileCount(This) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteInMemoryFontFileLoader_QueryInterface(IDWriteInMemoryFontFileLoader* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteInMemoryFontFileLoader_AddRef(IDWriteInMemoryFontFileLoader* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteInMemoryFontFileLoader_Release(IDWriteInMemoryFontFileLoader* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFontFileLoader methods ***/ -static inline HRESULT IDWriteInMemoryFontFileLoader_CreateStreamFromKey(IDWriteInMemoryFontFileLoader* This, const void* key, UINT32 key_size, IDWriteFontFileStream** stream) { - return This->lpVtbl->CreateStreamFromKey(This, key, key_size, stream); -} -/*** IDWriteInMemoryFontFileLoader methods ***/ -static inline HRESULT IDWriteInMemoryFontFileLoader_CreateInMemoryFontFileReference(IDWriteInMemoryFontFileLoader* This, IDWriteFactory* factory, const void* data, UINT32 data_size, IUnknown* owner, IDWriteFontFile** fontfile) { - return This->lpVtbl->CreateInMemoryFontFileReference(This, factory, data, data_size, owner, fontfile); -} -static inline UINT32 IDWriteInMemoryFontFileLoader_GetFileCount(IDWriteInMemoryFontFileLoader* This) { - return This->lpVtbl->GetFileCount(This); -} -#endif -#endif - -#endif - -#endif /* __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFactory5 interface - */ -#ifndef __IDWriteFactory5_INTERFACE_DEFINED__ -#define __IDWriteFactory5_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFactory5, 0x958db99a, 0xbe2a, 0x4f09, 0xaf, 0x7d, 0x65, 0x18, 0x98, 0x03, 0xd1, 0xd3); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("958db99a-be2a-4f09-af7d-65189803d1d3") -IDWriteFactory5 : public IDWriteFactory4 { - virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder( - IDWriteFontSetBuilder1 * *fontset_builder) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateInMemoryFontFileLoader( - IDWriteInMemoryFontFileLoader * *loader) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateHttpFontFileLoader( - const WCHAR* referrer_url, - const WCHAR* extra_headers, - IDWriteRemoteFontFileLoader** loader) = 0; - - virtual DWRITE_CONTAINER_TYPE STDMETHODCALLTYPE AnalyzeContainerType( - const void* data, - UINT32 data_size) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnpackFontFile( - DWRITE_CONTAINER_TYPE container_type, - const void* data, - UINT32 data_size, - IDWriteFontFileStream** stream) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFactory5, 0x958db99a, 0xbe2a, 0x4f09, 0xaf, 0x7d, 0x65, 0x18, 0x98, 0x03, 0xd1, 0xd3) -#endif -#else -typedef struct IDWriteFactory5Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFactory5* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFactory5* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFactory5* This); - - /*** IDWriteFactory methods ***/ - HRESULT(STDMETHODCALLTYPE* GetSystemFontCollection)( - IDWriteFactory5* This, - IDWriteFontCollection** collection, - WINBOOL check_for_updates); - - HRESULT(STDMETHODCALLTYPE* CreateCustomFontCollection)( - IDWriteFactory5* This, - IDWriteFontCollectionLoader* loader, - const void* key, - UINT32 key_size, - IDWriteFontCollection** collection); - - HRESULT(STDMETHODCALLTYPE* RegisterFontCollectionLoader)( - IDWriteFactory5* This, - IDWriteFontCollectionLoader* loader); - - HRESULT(STDMETHODCALLTYPE* UnregisterFontCollectionLoader)( - IDWriteFactory5* This, - IDWriteFontCollectionLoader* loader); - - HRESULT(STDMETHODCALLTYPE* CreateFontFileReference)( - IDWriteFactory5* This, - const WCHAR* path, - const FILETIME* writetime, - IDWriteFontFile** font_file); - - HRESULT(STDMETHODCALLTYPE* CreateCustomFontFileReference)( - IDWriteFactory5* This, - const void* reference_key, - UINT32 key_size, - IDWriteFontFileLoader* loader, - IDWriteFontFile** font_file); - - HRESULT(STDMETHODCALLTYPE* CreateFontFace)( - IDWriteFactory5* This, - DWRITE_FONT_FACE_TYPE facetype, - UINT32 files_number, - IDWriteFontFile* const* font_files, - UINT32 index, - DWRITE_FONT_SIMULATIONS sim_flags, - IDWriteFontFace** font_face); - - HRESULT(STDMETHODCALLTYPE* CreateRenderingParams)( - IDWriteFactory5* This, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* CreateMonitorRenderingParams)( - IDWriteFactory5* This, - HMONITOR monitor, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* CreateCustomRenderingParams)( - IDWriteFactory5* This, - FLOAT gamma, - FLOAT enhancedContrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* RegisterFontFileLoader)( - IDWriteFactory5* This, - IDWriteFontFileLoader* loader); - - HRESULT(STDMETHODCALLTYPE* UnregisterFontFileLoader)( - IDWriteFactory5* This, - IDWriteFontFileLoader* loader); - - HRESULT(STDMETHODCALLTYPE* CreateTextFormat)( - IDWriteFactory5* This, - const WCHAR* family_name, - IDWriteFontCollection* collection, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STYLE style, - DWRITE_FONT_STRETCH stretch, - FLOAT size, - const WCHAR* locale, - IDWriteTextFormat** format); - - HRESULT(STDMETHODCALLTYPE* CreateTypography)( - IDWriteFactory5* This, - IDWriteTypography** typography); - - HRESULT(STDMETHODCALLTYPE* GetGdiInterop)( - IDWriteFactory5* This, - IDWriteGdiInterop** gdi_interop); - - HRESULT(STDMETHODCALLTYPE* CreateTextLayout)( - IDWriteFactory5* This, - const WCHAR* string, - UINT32 len, - IDWriteTextFormat* format, - FLOAT max_width, - FLOAT max_height, - IDWriteTextLayout** layout); - - HRESULT(STDMETHODCALLTYPE* CreateGdiCompatibleTextLayout)( - IDWriteFactory5* This, - const WCHAR* string, - UINT32 len, - IDWriteTextFormat* format, - FLOAT layout_width, - FLOAT layout_height, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - IDWriteTextLayout** layout); - - HRESULT(STDMETHODCALLTYPE* CreateEllipsisTrimmingSign)( - IDWriteFactory5* This, - IDWriteTextFormat* format, - IDWriteInlineObject** trimming_sign); - - HRESULT(STDMETHODCALLTYPE* CreateTextAnalyzer)( - IDWriteFactory5* This, - IDWriteTextAnalyzer** analyzer); - - HRESULT(STDMETHODCALLTYPE* CreateNumberSubstitution)( - IDWriteFactory5* This, - DWRITE_NUMBER_SUBSTITUTION_METHOD method, - const WCHAR* locale, - WINBOOL ignore_user_override, - IDWriteNumberSubstitution** substitution); - - HRESULT(STDMETHODCALLTYPE* CreateGlyphRunAnalysis)( - IDWriteFactory5* This, - const DWRITE_GLYPH_RUN* glyph_run, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - FLOAT baseline_x, - FLOAT baseline_y, - IDWriteGlyphRunAnalysis** analysis); - - /*** IDWriteFactory1 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetEudcFontCollection)( - IDWriteFactory5* This, - IDWriteFontCollection** collection, - WINBOOL check_for_updates); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory1_CreateCustomRenderingParams)( - IDWriteFactory5* This, - FLOAT gamma, - FLOAT enhcontrast, - FLOAT enhcontrast_grayscale, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams1** params); - - /*** IDWriteFactory2 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetSystemFontFallback)( - IDWriteFactory5* This, - IDWriteFontFallback** fallback); - - HRESULT(STDMETHODCALLTYPE* CreateFontFallbackBuilder)( - IDWriteFactory5* This, - IDWriteFontFallbackBuilder** fallbackbuilder); - - HRESULT(STDMETHODCALLTYPE* TranslateColorGlyphRun)( - IDWriteFactory5* This, - FLOAT originX, - FLOAT originY, - const DWRITE_GLYPH_RUN* run, - const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, - DWRITE_MEASURING_MODE mode, - const DWRITE_MATRIX* transform, - UINT32 palette_index, - IDWriteColorGlyphRunEnumerator** colorlayers); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateCustomRenderingParams)( - IDWriteFactory5* This, - FLOAT gamma, - FLOAT contrast, - FLOAT grayscalecontrast, - FLOAT cleartypeLevel, - DWRITE_PIXEL_GEOMETRY pixelGeometry, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_GRID_FIT_MODE gridFitMode, - IDWriteRenderingParams2** params); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateGlyphRunAnalysis)( - IDWriteFactory5* This, - const DWRITE_GLYPH_RUN* run, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_MEASURING_MODE measuringMode, - DWRITE_GRID_FIT_MODE gridFitMode, - DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, - FLOAT originX, - FLOAT originY, - IDWriteGlyphRunAnalysis** analysis); - - /*** IDWriteFactory3 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateGlyphRunAnalysis)( - IDWriteFactory5* This, - const DWRITE_GLYPH_RUN* run, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, - FLOAT origin_x, - FLOAT origin_y, - IDWriteGlyphRunAnalysis** analysis); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateCustomRenderingParams)( - IDWriteFactory5* This, - FLOAT gamma, - FLOAT enhanced_contrast, - FLOAT grayscale_enhanced_contrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY pixel_geometry, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - IDWriteRenderingParams3** params); - - HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference_)( - IDWriteFactory5* This, - IDWriteFontFile* file, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference** reference); - - HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference)( - IDWriteFactory5* This, - const WCHAR* path, - const FILETIME* writetime, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference** reference); - - HRESULT(STDMETHODCALLTYPE* GetSystemFontSet)( - IDWriteFactory5* This, - IDWriteFontSet** fontset); - - HRESULT(STDMETHODCALLTYPE* CreateFontSetBuilder)( - IDWriteFactory5* This, - IDWriteFontSetBuilder** builder); - - HRESULT(STDMETHODCALLTYPE* CreateFontCollectionFromFontSet)( - IDWriteFactory5* This, - IDWriteFontSet* fontset, - IDWriteFontCollection1** collection); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_GetSystemFontCollection)( - IDWriteFactory5* This, - WINBOOL include_downloadable, - IDWriteFontCollection1** collection, - WINBOOL check_for_updates); - - HRESULT(STDMETHODCALLTYPE* GetFontDownloadQueue)( - IDWriteFactory5* This, - IDWriteFontDownloadQueue** queue); - - /*** IDWriteFactory4 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFactory4_TranslateColorGlyphRun)( - IDWriteFactory5* This, - D2D1_POINT_2F baseline_origin, - const DWRITE_GLYPH_RUN* run, - const DWRITE_GLYPH_RUN_DESCRIPTION* run_desc, - DWRITE_GLYPH_IMAGE_FORMATS desired_formats, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_MATRIX* transform, - UINT32 palette, - IDWriteColorGlyphRunEnumerator1** layers); - - HRESULT(STDMETHODCALLTYPE* ComputeGlyphOrigins_)( - IDWriteFactory5* This, - const DWRITE_GLYPH_RUN* run, - D2D1_POINT_2F baseline_origin, - D2D1_POINT_2F* origins); - - HRESULT(STDMETHODCALLTYPE* ComputeGlyphOrigins)( - IDWriteFactory5* This, - const DWRITE_GLYPH_RUN* run, - DWRITE_MEASURING_MODE measuring_mode, - D2D1_POINT_2F baseline_origin, - const DWRITE_MATRIX* transform, - D2D1_POINT_2F* origins); - - /*** IDWriteFactory5 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFactory5_CreateFontSetBuilder)( - IDWriteFactory5* This, - IDWriteFontSetBuilder1** fontset_builder); - - HRESULT(STDMETHODCALLTYPE* CreateInMemoryFontFileLoader)( - IDWriteFactory5* This, - IDWriteInMemoryFontFileLoader** loader); - - HRESULT(STDMETHODCALLTYPE* CreateHttpFontFileLoader)( - IDWriteFactory5* This, - const WCHAR* referrer_url, - const WCHAR* extra_headers, - IDWriteRemoteFontFileLoader** loader); - - DWRITE_CONTAINER_TYPE(STDMETHODCALLTYPE* AnalyzeContainerType)( - IDWriteFactory5* This, - const void* data, - UINT32 data_size); - - HRESULT(STDMETHODCALLTYPE* UnpackFontFile)( - IDWriteFactory5* This, - DWRITE_CONTAINER_TYPE container_type, - const void* data, - UINT32 data_size, - IDWriteFontFileStream** stream); - - END_INTERFACE -} IDWriteFactory5Vtbl; - -interface IDWriteFactory5 { - CONST_VTBL IDWriteFactory5Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFactory5_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFactory5_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFactory5_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFactory methods ***/ -#define IDWriteFactory5_CreateCustomFontCollection(This, loader, key, key_size, collection) (This)->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection) -#define IDWriteFactory5_RegisterFontCollectionLoader(This, loader) (This)->lpVtbl->RegisterFontCollectionLoader(This, loader) -#define IDWriteFactory5_UnregisterFontCollectionLoader(This, loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This, loader) -#define IDWriteFactory5_CreateFontFileReference(This, path, writetime, font_file) (This)->lpVtbl->CreateFontFileReference(This, path, writetime, font_file) -#define IDWriteFactory5_CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) (This)->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) -#define IDWriteFactory5_CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) (This)->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) -#define IDWriteFactory5_CreateRenderingParams(This, params) (This)->lpVtbl->CreateRenderingParams(This, params) -#define IDWriteFactory5_CreateMonitorRenderingParams(This, monitor, params) (This)->lpVtbl->CreateMonitorRenderingParams(This, monitor, params) -#define IDWriteFactory5_RegisterFontFileLoader(This, loader) (This)->lpVtbl->RegisterFontFileLoader(This, loader) -#define IDWriteFactory5_UnregisterFontFileLoader(This, loader) (This)->lpVtbl->UnregisterFontFileLoader(This, loader) -#define IDWriteFactory5_CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format) (This)->lpVtbl->CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format) -#define IDWriteFactory5_CreateTypography(This, typography) (This)->lpVtbl->CreateTypography(This, typography) -#define IDWriteFactory5_GetGdiInterop(This, gdi_interop) (This)->lpVtbl->GetGdiInterop(This, gdi_interop) -#define IDWriteFactory5_CreateTextLayout(This, string, len, format, max_width, max_height, layout) (This)->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout) -#define IDWriteFactory5_CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) -#define IDWriteFactory5_CreateEllipsisTrimmingSign(This, format, trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign) -#define IDWriteFactory5_CreateTextAnalyzer(This, analyzer) (This)->lpVtbl->CreateTextAnalyzer(This, analyzer) -#define IDWriteFactory5_CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) (This)->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) -/*** IDWriteFactory1 methods ***/ -#define IDWriteFactory5_GetEudcFontCollection(This, collection, check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates) -/*** IDWriteFactory2 methods ***/ -#define IDWriteFactory5_GetSystemFontFallback(This, fallback) (This)->lpVtbl->GetSystemFontFallback(This, fallback) -#define IDWriteFactory5_CreateFontFallbackBuilder(This, fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder) -/*** IDWriteFactory3 methods ***/ -#define IDWriteFactory5_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) -#define IDWriteFactory5_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) -#define IDWriteFactory5_CreateFontFaceReference_(This, file, index, simulations, reference) (This)->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference) -#define IDWriteFactory5_CreateFontFaceReference(This, path, writetime, index, simulations, reference) (This)->lpVtbl->CreateFontFaceReference(This, path, writetime, index, simulations, reference) -#define IDWriteFactory5_GetSystemFontSet(This, fontset) (This)->lpVtbl->GetSystemFontSet(This, fontset) -#define IDWriteFactory5_CreateFontCollectionFromFontSet(This, fontset, collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This, fontset, collection) -#define IDWriteFactory5_GetSystemFontCollection(This, include_downloadable, collection, check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This, include_downloadable, collection, check_for_updates) -#define IDWriteFactory5_GetFontDownloadQueue(This, queue) (This)->lpVtbl->GetFontDownloadQueue(This, queue) -/*** IDWriteFactory4 methods ***/ -#define IDWriteFactory5_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers) -#define IDWriteFactory5_ComputeGlyphOrigins_(This, run, baseline_origin, origins) (This)->lpVtbl->ComputeGlyphOrigins_(This, run, baseline_origin, origins) -#define IDWriteFactory5_ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins) (This)->lpVtbl->ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins) -/*** IDWriteFactory5 methods ***/ -#define IDWriteFactory5_CreateFontSetBuilder(This, fontset_builder) (This)->lpVtbl->IDWriteFactory5_CreateFontSetBuilder(This, fontset_builder) -#define IDWriteFactory5_CreateInMemoryFontFileLoader(This, loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This, loader) -#define IDWriteFactory5_CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader) (This)->lpVtbl->CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader) -#define IDWriteFactory5_AnalyzeContainerType(This, data, data_size) (This)->lpVtbl->AnalyzeContainerType(This, data, data_size) -#define IDWriteFactory5_UnpackFontFile(This, container_type, data, data_size, stream) (This)->lpVtbl->UnpackFontFile(This, container_type, data, data_size, stream) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFactory5_QueryInterface(IDWriteFactory5* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFactory5_AddRef(IDWriteFactory5* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFactory5_Release(IDWriteFactory5* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFactory methods ***/ -static inline HRESULT IDWriteFactory5_CreateCustomFontCollection(IDWriteFactory5* This, IDWriteFontCollectionLoader* loader, const void* key, UINT32 key_size, IDWriteFontCollection** collection) { - return This->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection); -} -static inline HRESULT IDWriteFactory5_RegisterFontCollectionLoader(IDWriteFactory5* This, IDWriteFontCollectionLoader* loader) { - return This->lpVtbl->RegisterFontCollectionLoader(This, loader); -} -static inline HRESULT IDWriteFactory5_UnregisterFontCollectionLoader(IDWriteFactory5* This, IDWriteFontCollectionLoader* loader) { - return This->lpVtbl->UnregisterFontCollectionLoader(This, loader); -} -static inline HRESULT IDWriteFactory5_CreateFontFileReference(IDWriteFactory5* This, const WCHAR* path, const FILETIME* writetime, IDWriteFontFile** font_file) { - return This->lpVtbl->CreateFontFileReference(This, path, writetime, font_file); -} -static inline HRESULT IDWriteFactory5_CreateCustomFontFileReference(IDWriteFactory5* This, const void* reference_key, UINT32 key_size, IDWriteFontFileLoader* loader, IDWriteFontFile** font_file) { - return This->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file); -} -static inline HRESULT IDWriteFactory5_CreateFontFace(IDWriteFactory5* This, DWRITE_FONT_FACE_TYPE facetype, UINT32 files_number, IDWriteFontFile* const* font_files, UINT32 index, DWRITE_FONT_SIMULATIONS sim_flags, IDWriteFontFace** font_face) { - return This->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face); -} -static inline HRESULT IDWriteFactory5_CreateRenderingParams(IDWriteFactory5* This, IDWriteRenderingParams** params) { - return This->lpVtbl->CreateRenderingParams(This, params); -} -static inline HRESULT IDWriteFactory5_CreateMonitorRenderingParams(IDWriteFactory5* This, HMONITOR monitor, IDWriteRenderingParams** params) { - return This->lpVtbl->CreateMonitorRenderingParams(This, monitor, params); -} -static inline HRESULT IDWriteFactory5_RegisterFontFileLoader(IDWriteFactory5* This, IDWriteFontFileLoader* loader) { - return This->lpVtbl->RegisterFontFileLoader(This, loader); -} -static inline HRESULT IDWriteFactory5_UnregisterFontFileLoader(IDWriteFactory5* This, IDWriteFontFileLoader* loader) { - return This->lpVtbl->UnregisterFontFileLoader(This, loader); -} -static inline HRESULT IDWriteFactory5_CreateTextFormat(IDWriteFactory5* This, const WCHAR* family_name, IDWriteFontCollection* collection, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STYLE style, DWRITE_FONT_STRETCH stretch, FLOAT size, const WCHAR* locale, IDWriteTextFormat** format) { - return This->lpVtbl->CreateTextFormat(This, family_name, collection, weight, style, stretch, size, locale, format); -} -static inline HRESULT IDWriteFactory5_CreateTypography(IDWriteFactory5* This, IDWriteTypography** typography) { - return This->lpVtbl->CreateTypography(This, typography); -} -static inline HRESULT IDWriteFactory5_GetGdiInterop(IDWriteFactory5* This, IDWriteGdiInterop** gdi_interop) { - return This->lpVtbl->GetGdiInterop(This, gdi_interop); -} -static inline HRESULT IDWriteFactory5_CreateTextLayout(IDWriteFactory5* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT max_width, FLOAT max_height, IDWriteTextLayout** layout) { - return This->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout); -} -static inline HRESULT IDWriteFactory5_CreateGdiCompatibleTextLayout(IDWriteFactory5* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT layout_width, FLOAT layout_height, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, IDWriteTextLayout** layout) { - return This->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout); -} -static inline HRESULT IDWriteFactory5_CreateEllipsisTrimmingSign(IDWriteFactory5* This, IDWriteTextFormat* format, IDWriteInlineObject** trimming_sign) { - return This->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign); -} -static inline HRESULT IDWriteFactory5_CreateTextAnalyzer(IDWriteFactory5* This, IDWriteTextAnalyzer** analyzer) { - return This->lpVtbl->CreateTextAnalyzer(This, analyzer); -} -static inline HRESULT IDWriteFactory5_CreateNumberSubstitution(IDWriteFactory5* This, DWRITE_NUMBER_SUBSTITUTION_METHOD method, const WCHAR* locale, WINBOOL ignore_user_override, IDWriteNumberSubstitution** substitution) { - return This->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution); -} -/*** IDWriteFactory1 methods ***/ -static inline HRESULT IDWriteFactory5_GetEudcFontCollection(IDWriteFactory5* This, IDWriteFontCollection** collection, WINBOOL check_for_updates) { - return This->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates); -} -/*** IDWriteFactory2 methods ***/ -static inline HRESULT IDWriteFactory5_GetSystemFontFallback(IDWriteFactory5* This, IDWriteFontFallback** fallback) { - return This->lpVtbl->GetSystemFontFallback(This, fallback); -} -static inline HRESULT IDWriteFactory5_CreateFontFallbackBuilder(IDWriteFactory5* This, IDWriteFontFallbackBuilder** fallbackbuilder) { - return This->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder); -} -/*** IDWriteFactory3 methods ***/ -static inline HRESULT IDWriteFactory5_CreateGlyphRunAnalysis(IDWriteFactory5* This, const DWRITE_GLYPH_RUN* run, const DWRITE_MATRIX* transform, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_MEASURING_MODE measuring_mode, DWRITE_GRID_FIT_MODE gridfit_mode, DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, FLOAT origin_x, FLOAT origin_y, IDWriteGlyphRunAnalysis** analysis) { - return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis); -} -static inline HRESULT IDWriteFactory5_CreateCustomRenderingParams(IDWriteFactory5* This, FLOAT gamma, FLOAT enhanced_contrast, FLOAT grayscale_enhanced_contrast, FLOAT cleartype_level, DWRITE_PIXEL_GEOMETRY pixel_geometry, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_GRID_FIT_MODE gridfit_mode, IDWriteRenderingParams3** params) { - return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params); -} -static inline HRESULT IDWriteFactory5_CreateFontFaceReference_(IDWriteFactory5* This, IDWriteFontFile* file, UINT32 index, DWRITE_FONT_SIMULATIONS simulations, IDWriteFontFaceReference** reference) { - return This->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference); -} -static inline HRESULT IDWriteFactory5_CreateFontFaceReference(IDWriteFactory5* This, const WCHAR* path, const FILETIME* writetime, UINT32 index, DWRITE_FONT_SIMULATIONS simulations, IDWriteFontFaceReference** reference) { - return This->lpVtbl->CreateFontFaceReference(This, path, writetime, index, simulations, reference); -} -static inline HRESULT IDWriteFactory5_GetSystemFontSet(IDWriteFactory5* This, IDWriteFontSet** fontset) { - return This->lpVtbl->GetSystemFontSet(This, fontset); -} -static inline HRESULT IDWriteFactory5_CreateFontCollectionFromFontSet(IDWriteFactory5* This, IDWriteFontSet* fontset, IDWriteFontCollection1** collection) { - return This->lpVtbl->CreateFontCollectionFromFontSet(This, fontset, collection); -} -static inline HRESULT IDWriteFactory5_GetSystemFontCollection(IDWriteFactory5* This, WINBOOL include_downloadable, IDWriteFontCollection1** collection, WINBOOL check_for_updates) { - return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This, include_downloadable, collection, check_for_updates); -} -static inline HRESULT IDWriteFactory5_GetFontDownloadQueue(IDWriteFactory5* This, IDWriteFontDownloadQueue** queue) { - return This->lpVtbl->GetFontDownloadQueue(This, queue); -} -/*** IDWriteFactory4 methods ***/ -static inline HRESULT IDWriteFactory5_TranslateColorGlyphRun(IDWriteFactory5* This, D2D1_POINT_2F baseline_origin, const DWRITE_GLYPH_RUN* run, const DWRITE_GLYPH_RUN_DESCRIPTION* run_desc, DWRITE_GLYPH_IMAGE_FORMATS desired_formats, DWRITE_MEASURING_MODE measuring_mode, const DWRITE_MATRIX* transform, UINT32 palette, IDWriteColorGlyphRunEnumerator1** layers) { - return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers); -} -static inline HRESULT IDWriteFactory5_ComputeGlyphOrigins_(IDWriteFactory5* This, const DWRITE_GLYPH_RUN* run, D2D1_POINT_2F baseline_origin, D2D1_POINT_2F* origins) { - return This->lpVtbl->ComputeGlyphOrigins_(This, run, baseline_origin, origins); -} -static inline HRESULT IDWriteFactory5_ComputeGlyphOrigins(IDWriteFactory5* This, const DWRITE_GLYPH_RUN* run, DWRITE_MEASURING_MODE measuring_mode, D2D1_POINT_2F baseline_origin, const DWRITE_MATRIX* transform, D2D1_POINT_2F* origins) { - return This->lpVtbl->ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins); -} -/*** IDWriteFactory5 methods ***/ -static inline HRESULT IDWriteFactory5_CreateFontSetBuilder(IDWriteFactory5* This, IDWriteFontSetBuilder1** fontset_builder) { - return This->lpVtbl->IDWriteFactory5_CreateFontSetBuilder(This, fontset_builder); -} -static inline HRESULT IDWriteFactory5_CreateInMemoryFontFileLoader(IDWriteFactory5* This, IDWriteInMemoryFontFileLoader** loader) { - return This->lpVtbl->CreateInMemoryFontFileLoader(This, loader); -} -static inline HRESULT IDWriteFactory5_CreateHttpFontFileLoader(IDWriteFactory5* This, const WCHAR* referrer_url, const WCHAR* extra_headers, IDWriteRemoteFontFileLoader** loader) { - return This->lpVtbl->CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader); -} -static inline DWRITE_CONTAINER_TYPE IDWriteFactory5_AnalyzeContainerType(IDWriteFactory5* This, const void* data, UINT32 data_size) { - return This->lpVtbl->AnalyzeContainerType(This, data, data_size); -} -static inline HRESULT IDWriteFactory5_UnpackFontFile(IDWriteFactory5* This, DWRITE_CONTAINER_TYPE container_type, const void* data, UINT32 data_size, IDWriteFontFileStream** stream) { - return This->lpVtbl->UnpackFontFile(This, container_type, data, data_size, stream); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFactory5_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFactory6 interface - */ -#ifndef __IDWriteFactory6_INTERFACE_DEFINED__ -#define __IDWriteFactory6_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFactory6, 0xf3744d80, 0x21f7, 0x42eb, 0xb3, 0x5d, 0x99, 0x5b, 0xc7, 0x2f, 0xc2, 0x23); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("f3744d80-21f7-42eb-b35d-995bc72fc223") -IDWriteFactory6 : public IDWriteFactory5 { - virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference( - IDWriteFontFile * file, - UINT32 face_index, - DWRITE_FONT_SIMULATIONS simulations, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_axis, - IDWriteFontFaceReference1** face_ref) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontResource( - IDWriteFontFile * file, - UINT32 face_index, - IDWriteFontResource * *resource) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet( - WINBOOL include_downloadable, - IDWriteFontSet1 * *fontset) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection( - WINBOOL include_downloadable, - DWRITE_FONT_FAMILY_MODEL family_model, - IDWriteFontCollection2 * *collection) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontCollectionFromFontSet( - IDWriteFontSet * fontset, - DWRITE_FONT_FAMILY_MODEL family_model, - IDWriteFontCollection2 * *collection) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder( - IDWriteFontSetBuilder2 * *builder) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateTextFormat( - const WCHAR* familyname, - IDWriteFontCollection* collection, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_axis, - FLOAT fontsize, - const WCHAR* localename, - IDWriteTextFormat3** format) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFactory6, 0xf3744d80, 0x21f7, 0x42eb, 0xb3, 0x5d, 0x99, 0x5b, 0xc7, 0x2f, 0xc2, 0x23) -#endif -#else -typedef struct IDWriteFactory6Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFactory6* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFactory6* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFactory6* This); - - /*** IDWriteFactory methods ***/ - HRESULT(STDMETHODCALLTYPE* GetSystemFontCollection)( - IDWriteFactory6* This, - IDWriteFontCollection** collection, - WINBOOL check_for_updates); - - HRESULT(STDMETHODCALLTYPE* CreateCustomFontCollection)( - IDWriteFactory6* This, - IDWriteFontCollectionLoader* loader, - const void* key, - UINT32 key_size, - IDWriteFontCollection** collection); - - HRESULT(STDMETHODCALLTYPE* RegisterFontCollectionLoader)( - IDWriteFactory6* This, - IDWriteFontCollectionLoader* loader); - - HRESULT(STDMETHODCALLTYPE* UnregisterFontCollectionLoader)( - IDWriteFactory6* This, - IDWriteFontCollectionLoader* loader); - - HRESULT(STDMETHODCALLTYPE* CreateFontFileReference)( - IDWriteFactory6* This, - const WCHAR* path, - const FILETIME* writetime, - IDWriteFontFile** font_file); - - HRESULT(STDMETHODCALLTYPE* CreateCustomFontFileReference)( - IDWriteFactory6* This, - const void* reference_key, - UINT32 key_size, - IDWriteFontFileLoader* loader, - IDWriteFontFile** font_file); - - HRESULT(STDMETHODCALLTYPE* CreateFontFace)( - IDWriteFactory6* This, - DWRITE_FONT_FACE_TYPE facetype, - UINT32 files_number, - IDWriteFontFile* const* font_files, - UINT32 index, - DWRITE_FONT_SIMULATIONS sim_flags, - IDWriteFontFace** font_face); - - HRESULT(STDMETHODCALLTYPE* CreateRenderingParams)( - IDWriteFactory6* This, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* CreateMonitorRenderingParams)( - IDWriteFactory6* This, - HMONITOR monitor, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* CreateCustomRenderingParams)( - IDWriteFactory6* This, - FLOAT gamma, - FLOAT enhancedContrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* RegisterFontFileLoader)( - IDWriteFactory6* This, - IDWriteFontFileLoader* loader); - - HRESULT(STDMETHODCALLTYPE* UnregisterFontFileLoader)( - IDWriteFactory6* This, - IDWriteFontFileLoader* loader); - - HRESULT(STDMETHODCALLTYPE* CreateTextFormat)( - IDWriteFactory6* This, - const WCHAR* family_name, - IDWriteFontCollection* collection, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STYLE style, - DWRITE_FONT_STRETCH stretch, - FLOAT size, - const WCHAR* locale, - IDWriteTextFormat** format); - - HRESULT(STDMETHODCALLTYPE* CreateTypography)( - IDWriteFactory6* This, - IDWriteTypography** typography); - - HRESULT(STDMETHODCALLTYPE* GetGdiInterop)( - IDWriteFactory6* This, - IDWriteGdiInterop** gdi_interop); - - HRESULT(STDMETHODCALLTYPE* CreateTextLayout)( - IDWriteFactory6* This, - const WCHAR* string, - UINT32 len, - IDWriteTextFormat* format, - FLOAT max_width, - FLOAT max_height, - IDWriteTextLayout** layout); - - HRESULT(STDMETHODCALLTYPE* CreateGdiCompatibleTextLayout)( - IDWriteFactory6* This, - const WCHAR* string, - UINT32 len, - IDWriteTextFormat* format, - FLOAT layout_width, - FLOAT layout_height, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - IDWriteTextLayout** layout); - - HRESULT(STDMETHODCALLTYPE* CreateEllipsisTrimmingSign)( - IDWriteFactory6* This, - IDWriteTextFormat* format, - IDWriteInlineObject** trimming_sign); - - HRESULT(STDMETHODCALLTYPE* CreateTextAnalyzer)( - IDWriteFactory6* This, - IDWriteTextAnalyzer** analyzer); - - HRESULT(STDMETHODCALLTYPE* CreateNumberSubstitution)( - IDWriteFactory6* This, - DWRITE_NUMBER_SUBSTITUTION_METHOD method, - const WCHAR* locale, - WINBOOL ignore_user_override, - IDWriteNumberSubstitution** substitution); - - HRESULT(STDMETHODCALLTYPE* CreateGlyphRunAnalysis)( - IDWriteFactory6* This, - const DWRITE_GLYPH_RUN* glyph_run, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - FLOAT baseline_x, - FLOAT baseline_y, - IDWriteGlyphRunAnalysis** analysis); - - /*** IDWriteFactory1 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetEudcFontCollection)( - IDWriteFactory6* This, - IDWriteFontCollection** collection, - WINBOOL check_for_updates); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory1_CreateCustomRenderingParams)( - IDWriteFactory6* This, - FLOAT gamma, - FLOAT enhcontrast, - FLOAT enhcontrast_grayscale, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams1** params); - - /*** IDWriteFactory2 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetSystemFontFallback)( - IDWriteFactory6* This, - IDWriteFontFallback** fallback); - - HRESULT(STDMETHODCALLTYPE* CreateFontFallbackBuilder)( - IDWriteFactory6* This, - IDWriteFontFallbackBuilder** fallbackbuilder); - - HRESULT(STDMETHODCALLTYPE* TranslateColorGlyphRun)( - IDWriteFactory6* This, - FLOAT originX, - FLOAT originY, - const DWRITE_GLYPH_RUN* run, - const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, - DWRITE_MEASURING_MODE mode, - const DWRITE_MATRIX* transform, - UINT32 palette_index, - IDWriteColorGlyphRunEnumerator** colorlayers); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateCustomRenderingParams)( - IDWriteFactory6* This, - FLOAT gamma, - FLOAT contrast, - FLOAT grayscalecontrast, - FLOAT cleartypeLevel, - DWRITE_PIXEL_GEOMETRY pixelGeometry, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_GRID_FIT_MODE gridFitMode, - IDWriteRenderingParams2** params); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateGlyphRunAnalysis)( - IDWriteFactory6* This, - const DWRITE_GLYPH_RUN* run, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_MEASURING_MODE measuringMode, - DWRITE_GRID_FIT_MODE gridFitMode, - DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, - FLOAT originX, - FLOAT originY, - IDWriteGlyphRunAnalysis** analysis); - - /*** IDWriteFactory3 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateGlyphRunAnalysis)( - IDWriteFactory6* This, - const DWRITE_GLYPH_RUN* run, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, - FLOAT origin_x, - FLOAT origin_y, - IDWriteGlyphRunAnalysis** analysis); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateCustomRenderingParams)( - IDWriteFactory6* This, - FLOAT gamma, - FLOAT enhanced_contrast, - FLOAT grayscale_enhanced_contrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY pixel_geometry, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - IDWriteRenderingParams3** params); - - HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference_)( - IDWriteFactory6* This, - IDWriteFontFile* file, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference** reference); - - HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference)( - IDWriteFactory6* This, - const WCHAR* path, - const FILETIME* writetime, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference** reference); - - HRESULT(STDMETHODCALLTYPE* GetSystemFontSet)( - IDWriteFactory6* This, - IDWriteFontSet** fontset); - - HRESULT(STDMETHODCALLTYPE* CreateFontSetBuilder)( - IDWriteFactory6* This, - IDWriteFontSetBuilder** builder); - - HRESULT(STDMETHODCALLTYPE* CreateFontCollectionFromFontSet)( - IDWriteFactory6* This, - IDWriteFontSet* fontset, - IDWriteFontCollection1** collection); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_GetSystemFontCollection)( - IDWriteFactory6* This, - WINBOOL include_downloadable, - IDWriteFontCollection1** collection, - WINBOOL check_for_updates); - - HRESULT(STDMETHODCALLTYPE* GetFontDownloadQueue)( - IDWriteFactory6* This, - IDWriteFontDownloadQueue** queue); - - /*** IDWriteFactory4 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFactory4_TranslateColorGlyphRun)( - IDWriteFactory6* This, - D2D1_POINT_2F baseline_origin, - const DWRITE_GLYPH_RUN* run, - const DWRITE_GLYPH_RUN_DESCRIPTION* run_desc, - DWRITE_GLYPH_IMAGE_FORMATS desired_formats, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_MATRIX* transform, - UINT32 palette, - IDWriteColorGlyphRunEnumerator1** layers); - - HRESULT(STDMETHODCALLTYPE* ComputeGlyphOrigins_)( - IDWriteFactory6* This, - const DWRITE_GLYPH_RUN* run, - D2D1_POINT_2F baseline_origin, - D2D1_POINT_2F* origins); - - HRESULT(STDMETHODCALLTYPE* ComputeGlyphOrigins)( - IDWriteFactory6* This, - const DWRITE_GLYPH_RUN* run, - DWRITE_MEASURING_MODE measuring_mode, - D2D1_POINT_2F baseline_origin, - const DWRITE_MATRIX* transform, - D2D1_POINT_2F* origins); - - /*** IDWriteFactory5 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFactory5_CreateFontSetBuilder)( - IDWriteFactory6* This, - IDWriteFontSetBuilder1** fontset_builder); - - HRESULT(STDMETHODCALLTYPE* CreateInMemoryFontFileLoader)( - IDWriteFactory6* This, - IDWriteInMemoryFontFileLoader** loader); - - HRESULT(STDMETHODCALLTYPE* CreateHttpFontFileLoader)( - IDWriteFactory6* This, - const WCHAR* referrer_url, - const WCHAR* extra_headers, - IDWriteRemoteFontFileLoader** loader); - - DWRITE_CONTAINER_TYPE(STDMETHODCALLTYPE* AnalyzeContainerType)( - IDWriteFactory6* This, - const void* data, - UINT32 data_size); - - HRESULT(STDMETHODCALLTYPE* UnpackFontFile)( - IDWriteFactory6* This, - DWRITE_CONTAINER_TYPE container_type, - const void* data, - UINT32 data_size, - IDWriteFontFileStream** stream); - - /*** IDWriteFactory6 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateFontFaceReference)( - IDWriteFactory6* This, - IDWriteFontFile* file, - UINT32 face_index, - DWRITE_FONT_SIMULATIONS simulations, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_axis, - IDWriteFontFaceReference1** face_ref); - - HRESULT(STDMETHODCALLTYPE* CreateFontResource)( - IDWriteFactory6* This, - IDWriteFontFile* file, - UINT32 face_index, - IDWriteFontResource** resource); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_GetSystemFontSet)( - IDWriteFactory6* This, - WINBOOL include_downloadable, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_GetSystemFontCollection)( - IDWriteFactory6* This, - WINBOOL include_downloadable, - DWRITE_FONT_FAMILY_MODEL family_model, - IDWriteFontCollection2** collection); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateFontCollectionFromFontSet)( - IDWriteFactory6* This, - IDWriteFontSet* fontset, - DWRITE_FONT_FAMILY_MODEL family_model, - IDWriteFontCollection2** collection); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateFontSetBuilder)( - IDWriteFactory6* This, - IDWriteFontSetBuilder2** builder); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateTextFormat)( - IDWriteFactory6* This, - const WCHAR* familyname, - IDWriteFontCollection* collection, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_axis, - FLOAT fontsize, - const WCHAR* localename, - IDWriteTextFormat3** format); - - END_INTERFACE -} IDWriteFactory6Vtbl; - -interface IDWriteFactory6 { - CONST_VTBL IDWriteFactory6Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFactory6_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFactory6_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFactory6_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFactory methods ***/ -#define IDWriteFactory6_CreateCustomFontCollection(This, loader, key, key_size, collection) (This)->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection) -#define IDWriteFactory6_RegisterFontCollectionLoader(This, loader) (This)->lpVtbl->RegisterFontCollectionLoader(This, loader) -#define IDWriteFactory6_UnregisterFontCollectionLoader(This, loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This, loader) -#define IDWriteFactory6_CreateFontFileReference(This, path, writetime, font_file) (This)->lpVtbl->CreateFontFileReference(This, path, writetime, font_file) -#define IDWriteFactory6_CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) (This)->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) -#define IDWriteFactory6_CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) (This)->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) -#define IDWriteFactory6_CreateRenderingParams(This, params) (This)->lpVtbl->CreateRenderingParams(This, params) -#define IDWriteFactory6_CreateMonitorRenderingParams(This, monitor, params) (This)->lpVtbl->CreateMonitorRenderingParams(This, monitor, params) -#define IDWriteFactory6_RegisterFontFileLoader(This, loader) (This)->lpVtbl->RegisterFontFileLoader(This, loader) -#define IDWriteFactory6_UnregisterFontFileLoader(This, loader) (This)->lpVtbl->UnregisterFontFileLoader(This, loader) -#define IDWriteFactory6_CreateTypography(This, typography) (This)->lpVtbl->CreateTypography(This, typography) -#define IDWriteFactory6_GetGdiInterop(This, gdi_interop) (This)->lpVtbl->GetGdiInterop(This, gdi_interop) -#define IDWriteFactory6_CreateTextLayout(This, string, len, format, max_width, max_height, layout) (This)->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout) -#define IDWriteFactory6_CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) -#define IDWriteFactory6_CreateEllipsisTrimmingSign(This, format, trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign) -#define IDWriteFactory6_CreateTextAnalyzer(This, analyzer) (This)->lpVtbl->CreateTextAnalyzer(This, analyzer) -#define IDWriteFactory6_CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) (This)->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) -/*** IDWriteFactory1 methods ***/ -#define IDWriteFactory6_GetEudcFontCollection(This, collection, check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates) -/*** IDWriteFactory2 methods ***/ -#define IDWriteFactory6_GetSystemFontFallback(This, fallback) (This)->lpVtbl->GetSystemFontFallback(This, fallback) -#define IDWriteFactory6_CreateFontFallbackBuilder(This, fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder) -/*** IDWriteFactory3 methods ***/ -#define IDWriteFactory6_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) -#define IDWriteFactory6_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) -#define IDWriteFactory6_CreateFontFaceReference_(This, file, index, simulations, reference) (This)->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference) -#define IDWriteFactory6_GetFontDownloadQueue(This, queue) (This)->lpVtbl->GetFontDownloadQueue(This, queue) -/*** IDWriteFactory4 methods ***/ -#define IDWriteFactory6_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers) -#define IDWriteFactory6_ComputeGlyphOrigins_(This, run, baseline_origin, origins) (This)->lpVtbl->ComputeGlyphOrigins_(This, run, baseline_origin, origins) -#define IDWriteFactory6_ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins) (This)->lpVtbl->ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins) -/*** IDWriteFactory5 methods ***/ -#define IDWriteFactory6_CreateInMemoryFontFileLoader(This, loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This, loader) -#define IDWriteFactory6_CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader) (This)->lpVtbl->CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader) -#define IDWriteFactory6_AnalyzeContainerType(This, data, data_size) (This)->lpVtbl->AnalyzeContainerType(This, data, data_size) -#define IDWriteFactory6_UnpackFontFile(This, container_type, data, data_size, stream) (This)->lpVtbl->UnpackFontFile(This, container_type, data, data_size, stream) -/*** IDWriteFactory6 methods ***/ -#define IDWriteFactory6_CreateFontFaceReference(This, file, face_index, simulations, axis_values, num_axis, face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This, file, face_index, simulations, axis_values, num_axis, face_ref) -#define IDWriteFactory6_CreateFontResource(This, file, face_index, resource) (This)->lpVtbl->CreateFontResource(This, file, face_index, resource) -#define IDWriteFactory6_GetSystemFontSet(This, include_downloadable, fontset) (This)->lpVtbl->IDWriteFactory6_GetSystemFontSet(This, include_downloadable, fontset) -#define IDWriteFactory6_GetSystemFontCollection(This, include_downloadable, family_model, collection) (This)->lpVtbl->IDWriteFactory6_GetSystemFontCollection(This, include_downloadable, family_model, collection) -#define IDWriteFactory6_CreateFontCollectionFromFontSet(This, fontset, family_model, collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This, fontset, family_model, collection) -#define IDWriteFactory6_CreateFontSetBuilder(This, builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This, builder) -#define IDWriteFactory6_CreateTextFormat(This, familyname, collection, axis_values, num_axis, fontsize, localename, format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This, familyname, collection, axis_values, num_axis, fontsize, localename, format) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFactory6_QueryInterface(IDWriteFactory6* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFactory6_AddRef(IDWriteFactory6* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFactory6_Release(IDWriteFactory6* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFactory methods ***/ -static inline HRESULT IDWriteFactory6_CreateCustomFontCollection(IDWriteFactory6* This, IDWriteFontCollectionLoader* loader, const void* key, UINT32 key_size, IDWriteFontCollection** collection) { - return This->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection); -} -static inline HRESULT IDWriteFactory6_RegisterFontCollectionLoader(IDWriteFactory6* This, IDWriteFontCollectionLoader* loader) { - return This->lpVtbl->RegisterFontCollectionLoader(This, loader); -} -static inline HRESULT IDWriteFactory6_UnregisterFontCollectionLoader(IDWriteFactory6* This, IDWriteFontCollectionLoader* loader) { - return This->lpVtbl->UnregisterFontCollectionLoader(This, loader); -} -static inline HRESULT IDWriteFactory6_CreateFontFileReference(IDWriteFactory6* This, const WCHAR* path, const FILETIME* writetime, IDWriteFontFile** font_file) { - return This->lpVtbl->CreateFontFileReference(This, path, writetime, font_file); -} -static inline HRESULT IDWriteFactory6_CreateCustomFontFileReference(IDWriteFactory6* This, const void* reference_key, UINT32 key_size, IDWriteFontFileLoader* loader, IDWriteFontFile** font_file) { - return This->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file); -} -static inline HRESULT IDWriteFactory6_CreateFontFace(IDWriteFactory6* This, DWRITE_FONT_FACE_TYPE facetype, UINT32 files_number, IDWriteFontFile* const* font_files, UINT32 index, DWRITE_FONT_SIMULATIONS sim_flags, IDWriteFontFace** font_face) { - return This->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face); -} -static inline HRESULT IDWriteFactory6_CreateRenderingParams(IDWriteFactory6* This, IDWriteRenderingParams** params) { - return This->lpVtbl->CreateRenderingParams(This, params); -} -static inline HRESULT IDWriteFactory6_CreateMonitorRenderingParams(IDWriteFactory6* This, HMONITOR monitor, IDWriteRenderingParams** params) { - return This->lpVtbl->CreateMonitorRenderingParams(This, monitor, params); -} -static inline HRESULT IDWriteFactory6_RegisterFontFileLoader(IDWriteFactory6* This, IDWriteFontFileLoader* loader) { - return This->lpVtbl->RegisterFontFileLoader(This, loader); -} -static inline HRESULT IDWriteFactory6_UnregisterFontFileLoader(IDWriteFactory6* This, IDWriteFontFileLoader* loader) { - return This->lpVtbl->UnregisterFontFileLoader(This, loader); -} -static inline HRESULT IDWriteFactory6_CreateTypography(IDWriteFactory6* This, IDWriteTypography** typography) { - return This->lpVtbl->CreateTypography(This, typography); -} -static inline HRESULT IDWriteFactory6_GetGdiInterop(IDWriteFactory6* This, IDWriteGdiInterop** gdi_interop) { - return This->lpVtbl->GetGdiInterop(This, gdi_interop); -} -static inline HRESULT IDWriteFactory6_CreateTextLayout(IDWriteFactory6* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT max_width, FLOAT max_height, IDWriteTextLayout** layout) { - return This->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout); -} -static inline HRESULT IDWriteFactory6_CreateGdiCompatibleTextLayout(IDWriteFactory6* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT layout_width, FLOAT layout_height, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, IDWriteTextLayout** layout) { - return This->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout); -} -static inline HRESULT IDWriteFactory6_CreateEllipsisTrimmingSign(IDWriteFactory6* This, IDWriteTextFormat* format, IDWriteInlineObject** trimming_sign) { - return This->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign); -} -static inline HRESULT IDWriteFactory6_CreateTextAnalyzer(IDWriteFactory6* This, IDWriteTextAnalyzer** analyzer) { - return This->lpVtbl->CreateTextAnalyzer(This, analyzer); -} -static inline HRESULT IDWriteFactory6_CreateNumberSubstitution(IDWriteFactory6* This, DWRITE_NUMBER_SUBSTITUTION_METHOD method, const WCHAR* locale, WINBOOL ignore_user_override, IDWriteNumberSubstitution** substitution) { - return This->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution); -} -/*** IDWriteFactory1 methods ***/ -static inline HRESULT IDWriteFactory6_GetEudcFontCollection(IDWriteFactory6* This, IDWriteFontCollection** collection, WINBOOL check_for_updates) { - return This->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates); -} -/*** IDWriteFactory2 methods ***/ -static inline HRESULT IDWriteFactory6_GetSystemFontFallback(IDWriteFactory6* This, IDWriteFontFallback** fallback) { - return This->lpVtbl->GetSystemFontFallback(This, fallback); -} -static inline HRESULT IDWriteFactory6_CreateFontFallbackBuilder(IDWriteFactory6* This, IDWriteFontFallbackBuilder** fallbackbuilder) { - return This->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder); -} -/*** IDWriteFactory3 methods ***/ -static inline HRESULT IDWriteFactory6_CreateGlyphRunAnalysis(IDWriteFactory6* This, const DWRITE_GLYPH_RUN* run, const DWRITE_MATRIX* transform, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_MEASURING_MODE measuring_mode, DWRITE_GRID_FIT_MODE gridfit_mode, DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, FLOAT origin_x, FLOAT origin_y, IDWriteGlyphRunAnalysis** analysis) { - return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis); -} -static inline HRESULT IDWriteFactory6_CreateCustomRenderingParams(IDWriteFactory6* This, FLOAT gamma, FLOAT enhanced_contrast, FLOAT grayscale_enhanced_contrast, FLOAT cleartype_level, DWRITE_PIXEL_GEOMETRY pixel_geometry, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_GRID_FIT_MODE gridfit_mode, IDWriteRenderingParams3** params) { - return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params); -} -static inline HRESULT IDWriteFactory6_CreateFontFaceReference_(IDWriteFactory6* This, IDWriteFontFile* file, UINT32 index, DWRITE_FONT_SIMULATIONS simulations, IDWriteFontFaceReference** reference) { - return This->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference); -} -static inline HRESULT IDWriteFactory6_GetFontDownloadQueue(IDWriteFactory6* This, IDWriteFontDownloadQueue** queue) { - return This->lpVtbl->GetFontDownloadQueue(This, queue); -} -/*** IDWriteFactory4 methods ***/ -static inline HRESULT IDWriteFactory6_TranslateColorGlyphRun(IDWriteFactory6* This, D2D1_POINT_2F baseline_origin, const DWRITE_GLYPH_RUN* run, const DWRITE_GLYPH_RUN_DESCRIPTION* run_desc, DWRITE_GLYPH_IMAGE_FORMATS desired_formats, DWRITE_MEASURING_MODE measuring_mode, const DWRITE_MATRIX* transform, UINT32 palette, IDWriteColorGlyphRunEnumerator1** layers) { - return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers); -} -static inline HRESULT IDWriteFactory6_ComputeGlyphOrigins_(IDWriteFactory6* This, const DWRITE_GLYPH_RUN* run, D2D1_POINT_2F baseline_origin, D2D1_POINT_2F* origins) { - return This->lpVtbl->ComputeGlyphOrigins_(This, run, baseline_origin, origins); -} -static inline HRESULT IDWriteFactory6_ComputeGlyphOrigins(IDWriteFactory6* This, const DWRITE_GLYPH_RUN* run, DWRITE_MEASURING_MODE measuring_mode, D2D1_POINT_2F baseline_origin, const DWRITE_MATRIX* transform, D2D1_POINT_2F* origins) { - return This->lpVtbl->ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins); -} -/*** IDWriteFactory5 methods ***/ -static inline HRESULT IDWriteFactory6_CreateInMemoryFontFileLoader(IDWriteFactory6* This, IDWriteInMemoryFontFileLoader** loader) { - return This->lpVtbl->CreateInMemoryFontFileLoader(This, loader); -} -static inline HRESULT IDWriteFactory6_CreateHttpFontFileLoader(IDWriteFactory6* This, const WCHAR* referrer_url, const WCHAR* extra_headers, IDWriteRemoteFontFileLoader** loader) { - return This->lpVtbl->CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader); -} -static inline DWRITE_CONTAINER_TYPE IDWriteFactory6_AnalyzeContainerType(IDWriteFactory6* This, const void* data, UINT32 data_size) { - return This->lpVtbl->AnalyzeContainerType(This, data, data_size); -} -static inline HRESULT IDWriteFactory6_UnpackFontFile(IDWriteFactory6* This, DWRITE_CONTAINER_TYPE container_type, const void* data, UINT32 data_size, IDWriteFontFileStream** stream) { - return This->lpVtbl->UnpackFontFile(This, container_type, data, data_size, stream); -} -/*** IDWriteFactory6 methods ***/ -static inline HRESULT IDWriteFactory6_CreateFontFaceReference(IDWriteFactory6* This, IDWriteFontFile* file, UINT32 face_index, DWRITE_FONT_SIMULATIONS simulations, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_axis, IDWriteFontFaceReference1** face_ref) { - return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This, file, face_index, simulations, axis_values, num_axis, face_ref); -} -static inline HRESULT IDWriteFactory6_CreateFontResource(IDWriteFactory6* This, IDWriteFontFile* file, UINT32 face_index, IDWriteFontResource** resource) { - return This->lpVtbl->CreateFontResource(This, file, face_index, resource); -} -static inline HRESULT IDWriteFactory6_GetSystemFontSet(IDWriteFactory6* This, WINBOOL include_downloadable, IDWriteFontSet1** fontset) { - return This->lpVtbl->IDWriteFactory6_GetSystemFontSet(This, include_downloadable, fontset); -} -static inline HRESULT IDWriteFactory6_GetSystemFontCollection(IDWriteFactory6* This, WINBOOL include_downloadable, DWRITE_FONT_FAMILY_MODEL family_model, IDWriteFontCollection2** collection) { - return This->lpVtbl->IDWriteFactory6_GetSystemFontCollection(This, include_downloadable, family_model, collection); -} -static inline HRESULT IDWriteFactory6_CreateFontCollectionFromFontSet(IDWriteFactory6* This, IDWriteFontSet* fontset, DWRITE_FONT_FAMILY_MODEL family_model, IDWriteFontCollection2** collection) { - return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This, fontset, family_model, collection); -} -static inline HRESULT IDWriteFactory6_CreateFontSetBuilder(IDWriteFactory6* This, IDWriteFontSetBuilder2** builder) { - return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This, builder); -} -static inline HRESULT IDWriteFactory6_CreateTextFormat(IDWriteFactory6* This, const WCHAR* familyname, IDWriteFontCollection* collection, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_axis, FLOAT fontsize, const WCHAR* localename, IDWriteTextFormat3** format) { - return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This, familyname, collection, axis_values, num_axis, fontsize, localename, format); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFactory6_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFactory7 interface - */ -#ifndef __IDWriteFactory7_INTERFACE_DEFINED__ -#define __IDWriteFactory7_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFactory7, 0x35d0e0b3, 0x9076, 0x4d2e, 0xa0, 0x16, 0xa9, 0x1b, 0x56, 0x8a, 0x06, 0xb4); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("35d0e0b3-9076-4d2e-a016-a91b568a06b4") -IDWriteFactory7 : public IDWriteFactory6 { - virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet( - WINBOOL include_downloadable, - IDWriteFontSet2 * *fontset) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection( - WINBOOL include_downloadable, - DWRITE_FONT_FAMILY_MODEL family_model, - IDWriteFontCollection3 * *collection) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFactory7, 0x35d0e0b3, 0x9076, 0x4d2e, 0xa0, 0x16, 0xa9, 0x1b, 0x56, 0x8a, 0x06, 0xb4) -#endif -#else -typedef struct IDWriteFactory7Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFactory7* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFactory7* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFactory7* This); - - /*** IDWriteFactory methods ***/ - HRESULT(STDMETHODCALLTYPE* GetSystemFontCollection)( - IDWriteFactory7* This, - IDWriteFontCollection** collection, - WINBOOL check_for_updates); - - HRESULT(STDMETHODCALLTYPE* CreateCustomFontCollection)( - IDWriteFactory7* This, - IDWriteFontCollectionLoader* loader, - const void* key, - UINT32 key_size, - IDWriteFontCollection** collection); - - HRESULT(STDMETHODCALLTYPE* RegisterFontCollectionLoader)( - IDWriteFactory7* This, - IDWriteFontCollectionLoader* loader); - - HRESULT(STDMETHODCALLTYPE* UnregisterFontCollectionLoader)( - IDWriteFactory7* This, - IDWriteFontCollectionLoader* loader); - - HRESULT(STDMETHODCALLTYPE* CreateFontFileReference)( - IDWriteFactory7* This, - const WCHAR* path, - const FILETIME* writetime, - IDWriteFontFile** font_file); - - HRESULT(STDMETHODCALLTYPE* CreateCustomFontFileReference)( - IDWriteFactory7* This, - const void* reference_key, - UINT32 key_size, - IDWriteFontFileLoader* loader, - IDWriteFontFile** font_file); - - HRESULT(STDMETHODCALLTYPE* CreateFontFace)( - IDWriteFactory7* This, - DWRITE_FONT_FACE_TYPE facetype, - UINT32 files_number, - IDWriteFontFile* const* font_files, - UINT32 index, - DWRITE_FONT_SIMULATIONS sim_flags, - IDWriteFontFace** font_face); - - HRESULT(STDMETHODCALLTYPE* CreateRenderingParams)( - IDWriteFactory7* This, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* CreateMonitorRenderingParams)( - IDWriteFactory7* This, - HMONITOR monitor, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* CreateCustomRenderingParams)( - IDWriteFactory7* This, - FLOAT gamma, - FLOAT enhancedContrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* RegisterFontFileLoader)( - IDWriteFactory7* This, - IDWriteFontFileLoader* loader); - - HRESULT(STDMETHODCALLTYPE* UnregisterFontFileLoader)( - IDWriteFactory7* This, - IDWriteFontFileLoader* loader); - - HRESULT(STDMETHODCALLTYPE* CreateTextFormat)( - IDWriteFactory7* This, - const WCHAR* family_name, - IDWriteFontCollection* collection, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STYLE style, - DWRITE_FONT_STRETCH stretch, - FLOAT size, - const WCHAR* locale, - IDWriteTextFormat** format); - - HRESULT(STDMETHODCALLTYPE* CreateTypography)( - IDWriteFactory7* This, - IDWriteTypography** typography); - - HRESULT(STDMETHODCALLTYPE* GetGdiInterop)( - IDWriteFactory7* This, - IDWriteGdiInterop** gdi_interop); - - HRESULT(STDMETHODCALLTYPE* CreateTextLayout)( - IDWriteFactory7* This, - const WCHAR* string, - UINT32 len, - IDWriteTextFormat* format, - FLOAT max_width, - FLOAT max_height, - IDWriteTextLayout** layout); - - HRESULT(STDMETHODCALLTYPE* CreateGdiCompatibleTextLayout)( - IDWriteFactory7* This, - const WCHAR* string, - UINT32 len, - IDWriteTextFormat* format, - FLOAT layout_width, - FLOAT layout_height, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - IDWriteTextLayout** layout); - - HRESULT(STDMETHODCALLTYPE* CreateEllipsisTrimmingSign)( - IDWriteFactory7* This, - IDWriteTextFormat* format, - IDWriteInlineObject** trimming_sign); - - HRESULT(STDMETHODCALLTYPE* CreateTextAnalyzer)( - IDWriteFactory7* This, - IDWriteTextAnalyzer** analyzer); - - HRESULT(STDMETHODCALLTYPE* CreateNumberSubstitution)( - IDWriteFactory7* This, - DWRITE_NUMBER_SUBSTITUTION_METHOD method, - const WCHAR* locale, - WINBOOL ignore_user_override, - IDWriteNumberSubstitution** substitution); - - HRESULT(STDMETHODCALLTYPE* CreateGlyphRunAnalysis)( - IDWriteFactory7* This, - const DWRITE_GLYPH_RUN* glyph_run, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - FLOAT baseline_x, - FLOAT baseline_y, - IDWriteGlyphRunAnalysis** analysis); - - /*** IDWriteFactory1 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetEudcFontCollection)( - IDWriteFactory7* This, - IDWriteFontCollection** collection, - WINBOOL check_for_updates); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory1_CreateCustomRenderingParams)( - IDWriteFactory7* This, - FLOAT gamma, - FLOAT enhcontrast, - FLOAT enhcontrast_grayscale, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams1** params); - - /*** IDWriteFactory2 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetSystemFontFallback)( - IDWriteFactory7* This, - IDWriteFontFallback** fallback); - - HRESULT(STDMETHODCALLTYPE* CreateFontFallbackBuilder)( - IDWriteFactory7* This, - IDWriteFontFallbackBuilder** fallbackbuilder); - - HRESULT(STDMETHODCALLTYPE* TranslateColorGlyphRun)( - IDWriteFactory7* This, - FLOAT originX, - FLOAT originY, - const DWRITE_GLYPH_RUN* run, - const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, - DWRITE_MEASURING_MODE mode, - const DWRITE_MATRIX* transform, - UINT32 palette_index, - IDWriteColorGlyphRunEnumerator** colorlayers); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateCustomRenderingParams)( - IDWriteFactory7* This, - FLOAT gamma, - FLOAT contrast, - FLOAT grayscalecontrast, - FLOAT cleartypeLevel, - DWRITE_PIXEL_GEOMETRY pixelGeometry, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_GRID_FIT_MODE gridFitMode, - IDWriteRenderingParams2** params); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateGlyphRunAnalysis)( - IDWriteFactory7* This, - const DWRITE_GLYPH_RUN* run, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_MEASURING_MODE measuringMode, - DWRITE_GRID_FIT_MODE gridFitMode, - DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, - FLOAT originX, - FLOAT originY, - IDWriteGlyphRunAnalysis** analysis); - - /*** IDWriteFactory3 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateGlyphRunAnalysis)( - IDWriteFactory7* This, - const DWRITE_GLYPH_RUN* run, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, - FLOAT origin_x, - FLOAT origin_y, - IDWriteGlyphRunAnalysis** analysis); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateCustomRenderingParams)( - IDWriteFactory7* This, - FLOAT gamma, - FLOAT enhanced_contrast, - FLOAT grayscale_enhanced_contrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY pixel_geometry, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - IDWriteRenderingParams3** params); - - HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference_)( - IDWriteFactory7* This, - IDWriteFontFile* file, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference** reference); - - HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference)( - IDWriteFactory7* This, - const WCHAR* path, - const FILETIME* writetime, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference** reference); - - HRESULT(STDMETHODCALLTYPE* GetSystemFontSet)( - IDWriteFactory7* This, - IDWriteFontSet** fontset); - - HRESULT(STDMETHODCALLTYPE* CreateFontSetBuilder)( - IDWriteFactory7* This, - IDWriteFontSetBuilder** builder); - - HRESULT(STDMETHODCALLTYPE* CreateFontCollectionFromFontSet)( - IDWriteFactory7* This, - IDWriteFontSet* fontset, - IDWriteFontCollection1** collection); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_GetSystemFontCollection)( - IDWriteFactory7* This, - WINBOOL include_downloadable, - IDWriteFontCollection1** collection, - WINBOOL check_for_updates); - - HRESULT(STDMETHODCALLTYPE* GetFontDownloadQueue)( - IDWriteFactory7* This, - IDWriteFontDownloadQueue** queue); - - /*** IDWriteFactory4 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFactory4_TranslateColorGlyphRun)( - IDWriteFactory7* This, - D2D1_POINT_2F baseline_origin, - const DWRITE_GLYPH_RUN* run, - const DWRITE_GLYPH_RUN_DESCRIPTION* run_desc, - DWRITE_GLYPH_IMAGE_FORMATS desired_formats, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_MATRIX* transform, - UINT32 palette, - IDWriteColorGlyphRunEnumerator1** layers); - - HRESULT(STDMETHODCALLTYPE* ComputeGlyphOrigins_)( - IDWriteFactory7* This, - const DWRITE_GLYPH_RUN* run, - D2D1_POINT_2F baseline_origin, - D2D1_POINT_2F* origins); - - HRESULT(STDMETHODCALLTYPE* ComputeGlyphOrigins)( - IDWriteFactory7* This, - const DWRITE_GLYPH_RUN* run, - DWRITE_MEASURING_MODE measuring_mode, - D2D1_POINT_2F baseline_origin, - const DWRITE_MATRIX* transform, - D2D1_POINT_2F* origins); - - /*** IDWriteFactory5 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFactory5_CreateFontSetBuilder)( - IDWriteFactory7* This, - IDWriteFontSetBuilder1** fontset_builder); - - HRESULT(STDMETHODCALLTYPE* CreateInMemoryFontFileLoader)( - IDWriteFactory7* This, - IDWriteInMemoryFontFileLoader** loader); - - HRESULT(STDMETHODCALLTYPE* CreateHttpFontFileLoader)( - IDWriteFactory7* This, - const WCHAR* referrer_url, - const WCHAR* extra_headers, - IDWriteRemoteFontFileLoader** loader); - - DWRITE_CONTAINER_TYPE(STDMETHODCALLTYPE* AnalyzeContainerType)( - IDWriteFactory7* This, - const void* data, - UINT32 data_size); - - HRESULT(STDMETHODCALLTYPE* UnpackFontFile)( - IDWriteFactory7* This, - DWRITE_CONTAINER_TYPE container_type, - const void* data, - UINT32 data_size, - IDWriteFontFileStream** stream); - - /*** IDWriteFactory6 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateFontFaceReference)( - IDWriteFactory7* This, - IDWriteFontFile* file, - UINT32 face_index, - DWRITE_FONT_SIMULATIONS simulations, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_axis, - IDWriteFontFaceReference1** face_ref); - - HRESULT(STDMETHODCALLTYPE* CreateFontResource)( - IDWriteFactory7* This, - IDWriteFontFile* file, - UINT32 face_index, - IDWriteFontResource** resource); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_GetSystemFontSet)( - IDWriteFactory7* This, - WINBOOL include_downloadable, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_GetSystemFontCollection)( - IDWriteFactory7* This, - WINBOOL include_downloadable, - DWRITE_FONT_FAMILY_MODEL family_model, - IDWriteFontCollection2** collection); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateFontCollectionFromFontSet)( - IDWriteFactory7* This, - IDWriteFontSet* fontset, - DWRITE_FONT_FAMILY_MODEL family_model, - IDWriteFontCollection2** collection); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateFontSetBuilder)( - IDWriteFactory7* This, - IDWriteFontSetBuilder2** builder); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateTextFormat)( - IDWriteFactory7* This, - const WCHAR* familyname, - IDWriteFontCollection* collection, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_axis, - FLOAT fontsize, - const WCHAR* localename, - IDWriteTextFormat3** format); - - /*** IDWriteFactory7 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFactory7_GetSystemFontSet)( - IDWriteFactory7* This, - WINBOOL include_downloadable, - IDWriteFontSet2** fontset); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory7_GetSystemFontCollection)( - IDWriteFactory7* This, - WINBOOL include_downloadable, - DWRITE_FONT_FAMILY_MODEL family_model, - IDWriteFontCollection3** collection); - - END_INTERFACE -} IDWriteFactory7Vtbl; - -interface IDWriteFactory7 { - CONST_VTBL IDWriteFactory7Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFactory7_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFactory7_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFactory7_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFactory methods ***/ -#define IDWriteFactory7_CreateCustomFontCollection(This, loader, key, key_size, collection) (This)->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection) -#define IDWriteFactory7_RegisterFontCollectionLoader(This, loader) (This)->lpVtbl->RegisterFontCollectionLoader(This, loader) -#define IDWriteFactory7_UnregisterFontCollectionLoader(This, loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This, loader) -#define IDWriteFactory7_CreateFontFileReference(This, path, writetime, font_file) (This)->lpVtbl->CreateFontFileReference(This, path, writetime, font_file) -#define IDWriteFactory7_CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) (This)->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) -#define IDWriteFactory7_CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) (This)->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) -#define IDWriteFactory7_CreateRenderingParams(This, params) (This)->lpVtbl->CreateRenderingParams(This, params) -#define IDWriteFactory7_CreateMonitorRenderingParams(This, monitor, params) (This)->lpVtbl->CreateMonitorRenderingParams(This, monitor, params) -#define IDWriteFactory7_RegisterFontFileLoader(This, loader) (This)->lpVtbl->RegisterFontFileLoader(This, loader) -#define IDWriteFactory7_UnregisterFontFileLoader(This, loader) (This)->lpVtbl->UnregisterFontFileLoader(This, loader) -#define IDWriteFactory7_CreateTypography(This, typography) (This)->lpVtbl->CreateTypography(This, typography) -#define IDWriteFactory7_GetGdiInterop(This, gdi_interop) (This)->lpVtbl->GetGdiInterop(This, gdi_interop) -#define IDWriteFactory7_CreateTextLayout(This, string, len, format, max_width, max_height, layout) (This)->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout) -#define IDWriteFactory7_CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) -#define IDWriteFactory7_CreateEllipsisTrimmingSign(This, format, trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign) -#define IDWriteFactory7_CreateTextAnalyzer(This, analyzer) (This)->lpVtbl->CreateTextAnalyzer(This, analyzer) -#define IDWriteFactory7_CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) (This)->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) -/*** IDWriteFactory1 methods ***/ -#define IDWriteFactory7_GetEudcFontCollection(This, collection, check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates) -/*** IDWriteFactory2 methods ***/ -#define IDWriteFactory7_GetSystemFontFallback(This, fallback) (This)->lpVtbl->GetSystemFontFallback(This, fallback) -#define IDWriteFactory7_CreateFontFallbackBuilder(This, fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder) -/*** IDWriteFactory3 methods ***/ -#define IDWriteFactory7_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) -#define IDWriteFactory7_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) -#define IDWriteFactory7_CreateFontFaceReference_(This, file, index, simulations, reference) (This)->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference) -#define IDWriteFactory7_GetFontDownloadQueue(This, queue) (This)->lpVtbl->GetFontDownloadQueue(This, queue) -/*** IDWriteFactory4 methods ***/ -#define IDWriteFactory7_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers) -#define IDWriteFactory7_ComputeGlyphOrigins_(This, run, baseline_origin, origins) (This)->lpVtbl->ComputeGlyphOrigins_(This, run, baseline_origin, origins) -#define IDWriteFactory7_ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins) (This)->lpVtbl->ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins) -/*** IDWriteFactory5 methods ***/ -#define IDWriteFactory7_CreateInMemoryFontFileLoader(This, loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This, loader) -#define IDWriteFactory7_CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader) (This)->lpVtbl->CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader) -#define IDWriteFactory7_AnalyzeContainerType(This, data, data_size) (This)->lpVtbl->AnalyzeContainerType(This, data, data_size) -#define IDWriteFactory7_UnpackFontFile(This, container_type, data, data_size, stream) (This)->lpVtbl->UnpackFontFile(This, container_type, data, data_size, stream) -/*** IDWriteFactory6 methods ***/ -#define IDWriteFactory7_CreateFontFaceReference(This, file, face_index, simulations, axis_values, num_axis, face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This, file, face_index, simulations, axis_values, num_axis, face_ref) -#define IDWriteFactory7_CreateFontResource(This, file, face_index, resource) (This)->lpVtbl->CreateFontResource(This, file, face_index, resource) -#define IDWriteFactory7_CreateFontCollectionFromFontSet(This, fontset, family_model, collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This, fontset, family_model, collection) -#define IDWriteFactory7_CreateFontSetBuilder(This, builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This, builder) -#define IDWriteFactory7_CreateTextFormat(This, familyname, collection, axis_values, num_axis, fontsize, localename, format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This, familyname, collection, axis_values, num_axis, fontsize, localename, format) -/*** IDWriteFactory7 methods ***/ -#define IDWriteFactory7_GetSystemFontSet(This, include_downloadable, fontset) (This)->lpVtbl->IDWriteFactory7_GetSystemFontSet(This, include_downloadable, fontset) -#define IDWriteFactory7_GetSystemFontCollection(This, include_downloadable, family_model, collection) (This)->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This, include_downloadable, family_model, collection) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFactory7_QueryInterface(IDWriteFactory7* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFactory7_AddRef(IDWriteFactory7* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFactory7_Release(IDWriteFactory7* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFactory methods ***/ -static inline HRESULT IDWriteFactory7_CreateCustomFontCollection(IDWriteFactory7* This, IDWriteFontCollectionLoader* loader, const void* key, UINT32 key_size, IDWriteFontCollection** collection) { - return This->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection); -} -static inline HRESULT IDWriteFactory7_RegisterFontCollectionLoader(IDWriteFactory7* This, IDWriteFontCollectionLoader* loader) { - return This->lpVtbl->RegisterFontCollectionLoader(This, loader); -} -static inline HRESULT IDWriteFactory7_UnregisterFontCollectionLoader(IDWriteFactory7* This, IDWriteFontCollectionLoader* loader) { - return This->lpVtbl->UnregisterFontCollectionLoader(This, loader); -} -static inline HRESULT IDWriteFactory7_CreateFontFileReference(IDWriteFactory7* This, const WCHAR* path, const FILETIME* writetime, IDWriteFontFile** font_file) { - return This->lpVtbl->CreateFontFileReference(This, path, writetime, font_file); -} -static inline HRESULT IDWriteFactory7_CreateCustomFontFileReference(IDWriteFactory7* This, const void* reference_key, UINT32 key_size, IDWriteFontFileLoader* loader, IDWriteFontFile** font_file) { - return This->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file); -} -static inline HRESULT IDWriteFactory7_CreateFontFace(IDWriteFactory7* This, DWRITE_FONT_FACE_TYPE facetype, UINT32 files_number, IDWriteFontFile* const* font_files, UINT32 index, DWRITE_FONT_SIMULATIONS sim_flags, IDWriteFontFace** font_face) { - return This->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face); -} -static inline HRESULT IDWriteFactory7_CreateRenderingParams(IDWriteFactory7* This, IDWriteRenderingParams** params) { - return This->lpVtbl->CreateRenderingParams(This, params); -} -static inline HRESULT IDWriteFactory7_CreateMonitorRenderingParams(IDWriteFactory7* This, HMONITOR monitor, IDWriteRenderingParams** params) { - return This->lpVtbl->CreateMonitorRenderingParams(This, monitor, params); -} -static inline HRESULT IDWriteFactory7_RegisterFontFileLoader(IDWriteFactory7* This, IDWriteFontFileLoader* loader) { - return This->lpVtbl->RegisterFontFileLoader(This, loader); -} -static inline HRESULT IDWriteFactory7_UnregisterFontFileLoader(IDWriteFactory7* This, IDWriteFontFileLoader* loader) { - return This->lpVtbl->UnregisterFontFileLoader(This, loader); -} -static inline HRESULT IDWriteFactory7_CreateTypography(IDWriteFactory7* This, IDWriteTypography** typography) { - return This->lpVtbl->CreateTypography(This, typography); -} -static inline HRESULT IDWriteFactory7_GetGdiInterop(IDWriteFactory7* This, IDWriteGdiInterop** gdi_interop) { - return This->lpVtbl->GetGdiInterop(This, gdi_interop); -} -static inline HRESULT IDWriteFactory7_CreateTextLayout(IDWriteFactory7* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT max_width, FLOAT max_height, IDWriteTextLayout** layout) { - return This->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout); -} -static inline HRESULT IDWriteFactory7_CreateGdiCompatibleTextLayout(IDWriteFactory7* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT layout_width, FLOAT layout_height, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, IDWriteTextLayout** layout) { - return This->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout); -} -static inline HRESULT IDWriteFactory7_CreateEllipsisTrimmingSign(IDWriteFactory7* This, IDWriteTextFormat* format, IDWriteInlineObject** trimming_sign) { - return This->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign); -} -static inline HRESULT IDWriteFactory7_CreateTextAnalyzer(IDWriteFactory7* This, IDWriteTextAnalyzer** analyzer) { - return This->lpVtbl->CreateTextAnalyzer(This, analyzer); -} -static inline HRESULT IDWriteFactory7_CreateNumberSubstitution(IDWriteFactory7* This, DWRITE_NUMBER_SUBSTITUTION_METHOD method, const WCHAR* locale, WINBOOL ignore_user_override, IDWriteNumberSubstitution** substitution) { - return This->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution); -} -/*** IDWriteFactory1 methods ***/ -static inline HRESULT IDWriteFactory7_GetEudcFontCollection(IDWriteFactory7* This, IDWriteFontCollection** collection, WINBOOL check_for_updates) { - return This->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates); -} -/*** IDWriteFactory2 methods ***/ -static inline HRESULT IDWriteFactory7_GetSystemFontFallback(IDWriteFactory7* This, IDWriteFontFallback** fallback) { - return This->lpVtbl->GetSystemFontFallback(This, fallback); -} -static inline HRESULT IDWriteFactory7_CreateFontFallbackBuilder(IDWriteFactory7* This, IDWriteFontFallbackBuilder** fallbackbuilder) { - return This->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder); -} -/*** IDWriteFactory3 methods ***/ -static inline HRESULT IDWriteFactory7_CreateGlyphRunAnalysis(IDWriteFactory7* This, const DWRITE_GLYPH_RUN* run, const DWRITE_MATRIX* transform, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_MEASURING_MODE measuring_mode, DWRITE_GRID_FIT_MODE gridfit_mode, DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, FLOAT origin_x, FLOAT origin_y, IDWriteGlyphRunAnalysis** analysis) { - return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis); -} -static inline HRESULT IDWriteFactory7_CreateCustomRenderingParams(IDWriteFactory7* This, FLOAT gamma, FLOAT enhanced_contrast, FLOAT grayscale_enhanced_contrast, FLOAT cleartype_level, DWRITE_PIXEL_GEOMETRY pixel_geometry, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_GRID_FIT_MODE gridfit_mode, IDWriteRenderingParams3** params) { - return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params); -} -static inline HRESULT IDWriteFactory7_CreateFontFaceReference_(IDWriteFactory7* This, IDWriteFontFile* file, UINT32 index, DWRITE_FONT_SIMULATIONS simulations, IDWriteFontFaceReference** reference) { - return This->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference); -} -static inline HRESULT IDWriteFactory7_GetFontDownloadQueue(IDWriteFactory7* This, IDWriteFontDownloadQueue** queue) { - return This->lpVtbl->GetFontDownloadQueue(This, queue); -} -/*** IDWriteFactory4 methods ***/ -static inline HRESULT IDWriteFactory7_TranslateColorGlyphRun(IDWriteFactory7* This, D2D1_POINT_2F baseline_origin, const DWRITE_GLYPH_RUN* run, const DWRITE_GLYPH_RUN_DESCRIPTION* run_desc, DWRITE_GLYPH_IMAGE_FORMATS desired_formats, DWRITE_MEASURING_MODE measuring_mode, const DWRITE_MATRIX* transform, UINT32 palette, IDWriteColorGlyphRunEnumerator1** layers) { - return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This, baseline_origin, run, run_desc, desired_formats, measuring_mode, transform, palette, layers); -} -static inline HRESULT IDWriteFactory7_ComputeGlyphOrigins_(IDWriteFactory7* This, const DWRITE_GLYPH_RUN* run, D2D1_POINT_2F baseline_origin, D2D1_POINT_2F* origins) { - return This->lpVtbl->ComputeGlyphOrigins_(This, run, baseline_origin, origins); -} -static inline HRESULT IDWriteFactory7_ComputeGlyphOrigins(IDWriteFactory7* This, const DWRITE_GLYPH_RUN* run, DWRITE_MEASURING_MODE measuring_mode, D2D1_POINT_2F baseline_origin, const DWRITE_MATRIX* transform, D2D1_POINT_2F* origins) { - return This->lpVtbl->ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins); -} -/*** IDWriteFactory5 methods ***/ -static inline HRESULT IDWriteFactory7_CreateInMemoryFontFileLoader(IDWriteFactory7* This, IDWriteInMemoryFontFileLoader** loader) { - return This->lpVtbl->CreateInMemoryFontFileLoader(This, loader); -} -static inline HRESULT IDWriteFactory7_CreateHttpFontFileLoader(IDWriteFactory7* This, const WCHAR* referrer_url, const WCHAR* extra_headers, IDWriteRemoteFontFileLoader** loader) { - return This->lpVtbl->CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader); -} -static inline DWRITE_CONTAINER_TYPE IDWriteFactory7_AnalyzeContainerType(IDWriteFactory7* This, const void* data, UINT32 data_size) { - return This->lpVtbl->AnalyzeContainerType(This, data, data_size); -} -static inline HRESULT IDWriteFactory7_UnpackFontFile(IDWriteFactory7* This, DWRITE_CONTAINER_TYPE container_type, const void* data, UINT32 data_size, IDWriteFontFileStream** stream) { - return This->lpVtbl->UnpackFontFile(This, container_type, data, data_size, stream); -} -/*** IDWriteFactory6 methods ***/ -static inline HRESULT IDWriteFactory7_CreateFontFaceReference(IDWriteFactory7* This, IDWriteFontFile* file, UINT32 face_index, DWRITE_FONT_SIMULATIONS simulations, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_axis, IDWriteFontFaceReference1** face_ref) { - return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This, file, face_index, simulations, axis_values, num_axis, face_ref); -} -static inline HRESULT IDWriteFactory7_CreateFontResource(IDWriteFactory7* This, IDWriteFontFile* file, UINT32 face_index, IDWriteFontResource** resource) { - return This->lpVtbl->CreateFontResource(This, file, face_index, resource); -} -static inline HRESULT IDWriteFactory7_CreateFontCollectionFromFontSet(IDWriteFactory7* This, IDWriteFontSet* fontset, DWRITE_FONT_FAMILY_MODEL family_model, IDWriteFontCollection2** collection) { - return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This, fontset, family_model, collection); -} -static inline HRESULT IDWriteFactory7_CreateFontSetBuilder(IDWriteFactory7* This, IDWriteFontSetBuilder2** builder) { - return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This, builder); -} -static inline HRESULT IDWriteFactory7_CreateTextFormat(IDWriteFactory7* This, const WCHAR* familyname, IDWriteFontCollection* collection, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_axis, FLOAT fontsize, const WCHAR* localename, IDWriteTextFormat3** format) { - return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This, familyname, collection, axis_values, num_axis, fontsize, localename, format); -} -/*** IDWriteFactory7 methods ***/ -static inline HRESULT IDWriteFactory7_GetSystemFontSet(IDWriteFactory7* This, WINBOOL include_downloadable, IDWriteFontSet2** fontset) { - return This->lpVtbl->IDWriteFactory7_GetSystemFontSet(This, include_downloadable, fontset); -} -static inline HRESULT IDWriteFactory7_GetSystemFontCollection(IDWriteFactory7* This, WINBOOL include_downloadable, DWRITE_FONT_FAMILY_MODEL family_model, IDWriteFontCollection3** collection) { - return This->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This, include_downloadable, family_model, collection); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFactory7_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteFactory8 interface - */ -#ifndef __IDWriteFactory8_INTERFACE_DEFINED__ -#define __IDWriteFactory8_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteFactory8, 0xee0a7fb5, 0xdef4, 0x4c23, 0xa4, 0x54, 0xc9, 0xc7, 0xdc, 0x87, 0x83, 0x98); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("ee0a7fb5-def4-4c23-a454-c9c7dc878398") -IDWriteFactory8 : public IDWriteFactory7 { - virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun( - D2D1_POINT_2F origin, - const DWRITE_GLYPH_RUN* glyph_run, - const DWRITE_GLYPH_RUN_DESCRIPTION* glyph_run_desc, - DWRITE_GLYPH_IMAGE_FORMATS image_formats, - DWRITE_PAINT_FEATURE_LEVEL feature_level, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_MATRIX* world_and_dpi_transform, - UINT32 palette_index, - IDWriteColorGlyphRunEnumerator1** enumerator) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteFactory8, 0xee0a7fb5, 0xdef4, 0x4c23, 0xa4, 0x54, 0xc9, 0xc7, 0xdc, 0x87, 0x83, 0x98) -#endif -#else -typedef struct IDWriteFactory8Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteFactory8* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteFactory8* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteFactory8* This); - - /*** IDWriteFactory methods ***/ - HRESULT(STDMETHODCALLTYPE* GetSystemFontCollection)( - IDWriteFactory8* This, - IDWriteFontCollection** collection, - WINBOOL check_for_updates); - - HRESULT(STDMETHODCALLTYPE* CreateCustomFontCollection)( - IDWriteFactory8* This, - IDWriteFontCollectionLoader* loader, - const void* key, - UINT32 key_size, - IDWriteFontCollection** collection); - - HRESULT(STDMETHODCALLTYPE* RegisterFontCollectionLoader)( - IDWriteFactory8* This, - IDWriteFontCollectionLoader* loader); - - HRESULT(STDMETHODCALLTYPE* UnregisterFontCollectionLoader)( - IDWriteFactory8* This, - IDWriteFontCollectionLoader* loader); - - HRESULT(STDMETHODCALLTYPE* CreateFontFileReference)( - IDWriteFactory8* This, - const WCHAR* path, - const FILETIME* writetime, - IDWriteFontFile** font_file); - - HRESULT(STDMETHODCALLTYPE* CreateCustomFontFileReference)( - IDWriteFactory8* This, - const void* reference_key, - UINT32 key_size, - IDWriteFontFileLoader* loader, - IDWriteFontFile** font_file); - - HRESULT(STDMETHODCALLTYPE* CreateFontFace)( - IDWriteFactory8* This, - DWRITE_FONT_FACE_TYPE facetype, - UINT32 files_number, - IDWriteFontFile* const* font_files, - UINT32 index, - DWRITE_FONT_SIMULATIONS sim_flags, - IDWriteFontFace** font_face); - - HRESULT(STDMETHODCALLTYPE* CreateRenderingParams)( - IDWriteFactory8* This, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* CreateMonitorRenderingParams)( - IDWriteFactory8* This, - HMONITOR monitor, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* CreateCustomRenderingParams)( - IDWriteFactory8* This, - FLOAT gamma, - FLOAT enhancedContrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams** params); - - HRESULT(STDMETHODCALLTYPE* RegisterFontFileLoader)( - IDWriteFactory8* This, - IDWriteFontFileLoader* loader); - - HRESULT(STDMETHODCALLTYPE* UnregisterFontFileLoader)( - IDWriteFactory8* This, - IDWriteFontFileLoader* loader); - - HRESULT(STDMETHODCALLTYPE* CreateTextFormat)( - IDWriteFactory8* This, - const WCHAR* family_name, - IDWriteFontCollection* collection, - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STYLE style, - DWRITE_FONT_STRETCH stretch, - FLOAT size, - const WCHAR* locale, - IDWriteTextFormat** format); - - HRESULT(STDMETHODCALLTYPE* CreateTypography)( - IDWriteFactory8* This, - IDWriteTypography** typography); - - HRESULT(STDMETHODCALLTYPE* GetGdiInterop)( - IDWriteFactory8* This, - IDWriteGdiInterop** gdi_interop); - - HRESULT(STDMETHODCALLTYPE* CreateTextLayout)( - IDWriteFactory8* This, - const WCHAR* string, - UINT32 len, - IDWriteTextFormat* format, - FLOAT max_width, - FLOAT max_height, - IDWriteTextLayout** layout); - - HRESULT(STDMETHODCALLTYPE* CreateGdiCompatibleTextLayout)( - IDWriteFactory8* This, - const WCHAR* string, - UINT32 len, - IDWriteTextFormat* format, - FLOAT layout_width, - FLOAT layout_height, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - WINBOOL use_gdi_natural, - IDWriteTextLayout** layout); - - HRESULT(STDMETHODCALLTYPE* CreateEllipsisTrimmingSign)( - IDWriteFactory8* This, - IDWriteTextFormat* format, - IDWriteInlineObject** trimming_sign); - - HRESULT(STDMETHODCALLTYPE* CreateTextAnalyzer)( - IDWriteFactory8* This, - IDWriteTextAnalyzer** analyzer); - - HRESULT(STDMETHODCALLTYPE* CreateNumberSubstitution)( - IDWriteFactory8* This, - DWRITE_NUMBER_SUBSTITUTION_METHOD method, - const WCHAR* locale, - WINBOOL ignore_user_override, - IDWriteNumberSubstitution** substitution); - - HRESULT(STDMETHODCALLTYPE* CreateGlyphRunAnalysis)( - IDWriteFactory8* This, - const DWRITE_GLYPH_RUN* glyph_run, - FLOAT pixels_per_dip, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - FLOAT baseline_x, - FLOAT baseline_y, - IDWriteGlyphRunAnalysis** analysis); - - /*** IDWriteFactory1 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetEudcFontCollection)( - IDWriteFactory8* This, - IDWriteFontCollection** collection, - WINBOOL check_for_updates); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory1_CreateCustomRenderingParams)( - IDWriteFactory8* This, - FLOAT gamma, - FLOAT enhcontrast, - FLOAT enhcontrast_grayscale, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY geometry, - DWRITE_RENDERING_MODE mode, - IDWriteRenderingParams1** params); - - /*** IDWriteFactory2 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetSystemFontFallback)( - IDWriteFactory8* This, - IDWriteFontFallback** fallback); - - HRESULT(STDMETHODCALLTYPE* CreateFontFallbackBuilder)( - IDWriteFactory8* This, - IDWriteFontFallbackBuilder** fallbackbuilder); - - HRESULT(STDMETHODCALLTYPE* TranslateColorGlyphRun)( - IDWriteFactory8* This, - FLOAT originX, - FLOAT originY, - const DWRITE_GLYPH_RUN* run, - const DWRITE_GLYPH_RUN_DESCRIPTION* rundescr, - DWRITE_MEASURING_MODE mode, - const DWRITE_MATRIX* transform, - UINT32 palette_index, - IDWriteColorGlyphRunEnumerator** colorlayers); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateCustomRenderingParams)( - IDWriteFactory8* This, - FLOAT gamma, - FLOAT contrast, - FLOAT grayscalecontrast, - FLOAT cleartypeLevel, - DWRITE_PIXEL_GEOMETRY pixelGeometry, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_GRID_FIT_MODE gridFitMode, - IDWriteRenderingParams2** params); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory2_CreateGlyphRunAnalysis)( - IDWriteFactory8* This, - const DWRITE_GLYPH_RUN* run, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_MEASURING_MODE measuringMode, - DWRITE_GRID_FIT_MODE gridFitMode, - DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, - FLOAT originX, - FLOAT originY, - IDWriteGlyphRunAnalysis** analysis); - - /*** IDWriteFactory3 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateGlyphRunAnalysis)( - IDWriteFactory8* This, - const DWRITE_GLYPH_RUN* run, - const DWRITE_MATRIX* transform, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_MEASURING_MODE measuring_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, - FLOAT origin_x, - FLOAT origin_y, - IDWriteGlyphRunAnalysis** analysis); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_CreateCustomRenderingParams)( - IDWriteFactory8* This, - FLOAT gamma, - FLOAT enhanced_contrast, - FLOAT grayscale_enhanced_contrast, - FLOAT cleartype_level, - DWRITE_PIXEL_GEOMETRY pixel_geometry, - DWRITE_RENDERING_MODE1 rendering_mode, - DWRITE_GRID_FIT_MODE gridfit_mode, - IDWriteRenderingParams3** params); - - HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference_)( - IDWriteFactory8* This, - IDWriteFontFile* file, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference** reference); - - HRESULT(STDMETHODCALLTYPE* CreateFontFaceReference)( - IDWriteFactory8* This, - const WCHAR* path, - const FILETIME* writetime, - UINT32 index, - DWRITE_FONT_SIMULATIONS simulations, - IDWriteFontFaceReference** reference); - - HRESULT(STDMETHODCALLTYPE* GetSystemFontSet)( - IDWriteFactory8* This, - IDWriteFontSet** fontset); - - HRESULT(STDMETHODCALLTYPE* CreateFontSetBuilder)( - IDWriteFactory8* This, - IDWriteFontSetBuilder** builder); - - HRESULT(STDMETHODCALLTYPE* CreateFontCollectionFromFontSet)( - IDWriteFactory8* This, - IDWriteFontSet* fontset, - IDWriteFontCollection1** collection); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory3_GetSystemFontCollection)( - IDWriteFactory8* This, - WINBOOL include_downloadable, - IDWriteFontCollection1** collection, - WINBOOL check_for_updates); - - HRESULT(STDMETHODCALLTYPE* GetFontDownloadQueue)( - IDWriteFactory8* This, - IDWriteFontDownloadQueue** queue); - - /*** IDWriteFactory4 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFactory4_TranslateColorGlyphRun)( - IDWriteFactory8* This, - D2D1_POINT_2F baseline_origin, - const DWRITE_GLYPH_RUN* run, - const DWRITE_GLYPH_RUN_DESCRIPTION* run_desc, - DWRITE_GLYPH_IMAGE_FORMATS desired_formats, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_MATRIX* transform, - UINT32 palette, - IDWriteColorGlyphRunEnumerator1** layers); - - HRESULT(STDMETHODCALLTYPE* ComputeGlyphOrigins_)( - IDWriteFactory8* This, - const DWRITE_GLYPH_RUN* run, - D2D1_POINT_2F baseline_origin, - D2D1_POINT_2F* origins); - - HRESULT(STDMETHODCALLTYPE* ComputeGlyphOrigins)( - IDWriteFactory8* This, - const DWRITE_GLYPH_RUN* run, - DWRITE_MEASURING_MODE measuring_mode, - D2D1_POINT_2F baseline_origin, - const DWRITE_MATRIX* transform, - D2D1_POINT_2F* origins); - - /*** IDWriteFactory5 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFactory5_CreateFontSetBuilder)( - IDWriteFactory8* This, - IDWriteFontSetBuilder1** fontset_builder); - - HRESULT(STDMETHODCALLTYPE* CreateInMemoryFontFileLoader)( - IDWriteFactory8* This, - IDWriteInMemoryFontFileLoader** loader); - - HRESULT(STDMETHODCALLTYPE* CreateHttpFontFileLoader)( - IDWriteFactory8* This, - const WCHAR* referrer_url, - const WCHAR* extra_headers, - IDWriteRemoteFontFileLoader** loader); - - DWRITE_CONTAINER_TYPE(STDMETHODCALLTYPE* AnalyzeContainerType)( - IDWriteFactory8* This, - const void* data, - UINT32 data_size); - - HRESULT(STDMETHODCALLTYPE* UnpackFontFile)( - IDWriteFactory8* This, - DWRITE_CONTAINER_TYPE container_type, - const void* data, - UINT32 data_size, - IDWriteFontFileStream** stream); - - /*** IDWriteFactory6 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateFontFaceReference)( - IDWriteFactory8* This, - IDWriteFontFile* file, - UINT32 face_index, - DWRITE_FONT_SIMULATIONS simulations, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_axis, - IDWriteFontFaceReference1** face_ref); - - HRESULT(STDMETHODCALLTYPE* CreateFontResource)( - IDWriteFactory8* This, - IDWriteFontFile* file, - UINT32 face_index, - IDWriteFontResource** resource); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_GetSystemFontSet)( - IDWriteFactory8* This, - WINBOOL include_downloadable, - IDWriteFontSet1** fontset); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_GetSystemFontCollection)( - IDWriteFactory8* This, - WINBOOL include_downloadable, - DWRITE_FONT_FAMILY_MODEL family_model, - IDWriteFontCollection2** collection); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateFontCollectionFromFontSet)( - IDWriteFactory8* This, - IDWriteFontSet* fontset, - DWRITE_FONT_FAMILY_MODEL family_model, - IDWriteFontCollection2** collection); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateFontSetBuilder)( - IDWriteFactory8* This, - IDWriteFontSetBuilder2** builder); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory6_CreateTextFormat)( - IDWriteFactory8* This, - const WCHAR* familyname, - IDWriteFontCollection* collection, - const DWRITE_FONT_AXIS_VALUE* axis_values, - UINT32 num_axis, - FLOAT fontsize, - const WCHAR* localename, - IDWriteTextFormat3** format); - - /*** IDWriteFactory7 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFactory7_GetSystemFontSet)( - IDWriteFactory8* This, - WINBOOL include_downloadable, - IDWriteFontSet2** fontset); - - HRESULT(STDMETHODCALLTYPE* IDWriteFactory7_GetSystemFontCollection)( - IDWriteFactory8* This, - WINBOOL include_downloadable, - DWRITE_FONT_FAMILY_MODEL family_model, - IDWriteFontCollection3** collection); - - /*** IDWriteFactory8 methods ***/ - HRESULT(STDMETHODCALLTYPE* IDWriteFactory8_TranslateColorGlyphRun)( - IDWriteFactory8* This, - D2D1_POINT_2F origin, - const DWRITE_GLYPH_RUN* glyph_run, - const DWRITE_GLYPH_RUN_DESCRIPTION* glyph_run_desc, - DWRITE_GLYPH_IMAGE_FORMATS image_formats, - DWRITE_PAINT_FEATURE_LEVEL feature_level, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_MATRIX* world_and_dpi_transform, - UINT32 palette_index, - IDWriteColorGlyphRunEnumerator1** enumerator); - - END_INTERFACE -} IDWriteFactory8Vtbl; - -interface IDWriteFactory8 { - CONST_VTBL IDWriteFactory8Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteFactory8_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteFactory8_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteFactory8_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteFactory methods ***/ -#define IDWriteFactory8_CreateCustomFontCollection(This, loader, key, key_size, collection) (This)->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection) -#define IDWriteFactory8_RegisterFontCollectionLoader(This, loader) (This)->lpVtbl->RegisterFontCollectionLoader(This, loader) -#define IDWriteFactory8_UnregisterFontCollectionLoader(This, loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This, loader) -#define IDWriteFactory8_CreateFontFileReference(This, path, writetime, font_file) (This)->lpVtbl->CreateFontFileReference(This, path, writetime, font_file) -#define IDWriteFactory8_CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) (This)->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file) -#define IDWriteFactory8_CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) (This)->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face) -#define IDWriteFactory8_CreateRenderingParams(This, params) (This)->lpVtbl->CreateRenderingParams(This, params) -#define IDWriteFactory8_CreateMonitorRenderingParams(This, monitor, params) (This)->lpVtbl->CreateMonitorRenderingParams(This, monitor, params) -#define IDWriteFactory8_RegisterFontFileLoader(This, loader) (This)->lpVtbl->RegisterFontFileLoader(This, loader) -#define IDWriteFactory8_UnregisterFontFileLoader(This, loader) (This)->lpVtbl->UnregisterFontFileLoader(This, loader) -#define IDWriteFactory8_CreateTypography(This, typography) (This)->lpVtbl->CreateTypography(This, typography) -#define IDWriteFactory8_GetGdiInterop(This, gdi_interop) (This)->lpVtbl->GetGdiInterop(This, gdi_interop) -#define IDWriteFactory8_CreateTextLayout(This, string, len, format, max_width, max_height, layout) (This)->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout) -#define IDWriteFactory8_CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout) -#define IDWriteFactory8_CreateEllipsisTrimmingSign(This, format, trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign) -#define IDWriteFactory8_CreateTextAnalyzer(This, analyzer) (This)->lpVtbl->CreateTextAnalyzer(This, analyzer) -#define IDWriteFactory8_CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) (This)->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution) -/*** IDWriteFactory1 methods ***/ -#define IDWriteFactory8_GetEudcFontCollection(This, collection, check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates) -/*** IDWriteFactory2 methods ***/ -#define IDWriteFactory8_GetSystemFontFallback(This, fallback) (This)->lpVtbl->GetSystemFontFallback(This, fallback) -#define IDWriteFactory8_CreateFontFallbackBuilder(This, fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder) -/*** IDWriteFactory3 methods ***/ -#define IDWriteFactory8_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis) -#define IDWriteFactory8_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params) -#define IDWriteFactory8_CreateFontFaceReference_(This, file, index, simulations, reference) (This)->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference) -#define IDWriteFactory8_GetFontDownloadQueue(This, queue) (This)->lpVtbl->GetFontDownloadQueue(This, queue) -/*** IDWriteFactory4 methods ***/ -#define IDWriteFactory8_ComputeGlyphOrigins_(This, run, baseline_origin, origins) (This)->lpVtbl->ComputeGlyphOrigins_(This, run, baseline_origin, origins) -#define IDWriteFactory8_ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins) (This)->lpVtbl->ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins) -/*** IDWriteFactory5 methods ***/ -#define IDWriteFactory8_CreateInMemoryFontFileLoader(This, loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This, loader) -#define IDWriteFactory8_CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader) (This)->lpVtbl->CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader) -#define IDWriteFactory8_AnalyzeContainerType(This, data, data_size) (This)->lpVtbl->AnalyzeContainerType(This, data, data_size) -#define IDWriteFactory8_UnpackFontFile(This, container_type, data, data_size, stream) (This)->lpVtbl->UnpackFontFile(This, container_type, data, data_size, stream) -/*** IDWriteFactory6 methods ***/ -#define IDWriteFactory8_CreateFontFaceReference(This, file, face_index, simulations, axis_values, num_axis, face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This, file, face_index, simulations, axis_values, num_axis, face_ref) -#define IDWriteFactory8_CreateFontResource(This, file, face_index, resource) (This)->lpVtbl->CreateFontResource(This, file, face_index, resource) -#define IDWriteFactory8_CreateFontCollectionFromFontSet(This, fontset, family_model, collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This, fontset, family_model, collection) -#define IDWriteFactory8_CreateFontSetBuilder(This, builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This, builder) -#define IDWriteFactory8_CreateTextFormat(This, familyname, collection, axis_values, num_axis, fontsize, localename, format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This, familyname, collection, axis_values, num_axis, fontsize, localename, format) -/*** IDWriteFactory7 methods ***/ -#define IDWriteFactory8_GetSystemFontSet(This, include_downloadable, fontset) (This)->lpVtbl->IDWriteFactory7_GetSystemFontSet(This, include_downloadable, fontset) -#define IDWriteFactory8_GetSystemFontCollection(This, include_downloadable, family_model, collection) (This)->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This, include_downloadable, family_model, collection) -/*** IDWriteFactory8 methods ***/ -#define IDWriteFactory8_TranslateColorGlyphRun(This, origin, glyph_run, glyph_run_desc, image_formats, feature_level, measuring_mode, world_and_dpi_transform, palette_index, enumerator) (This)->lpVtbl->IDWriteFactory8_TranslateColorGlyphRun(This, origin, glyph_run, glyph_run_desc, image_formats, feature_level, measuring_mode, world_and_dpi_transform, palette_index, enumerator) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteFactory8_QueryInterface(IDWriteFactory8* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteFactory8_AddRef(IDWriteFactory8* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteFactory8_Release(IDWriteFactory8* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteFactory methods ***/ -static inline HRESULT IDWriteFactory8_CreateCustomFontCollection(IDWriteFactory8* This, IDWriteFontCollectionLoader* loader, const void* key, UINT32 key_size, IDWriteFontCollection** collection) { - return This->lpVtbl->CreateCustomFontCollection(This, loader, key, key_size, collection); -} -static inline HRESULT IDWriteFactory8_RegisterFontCollectionLoader(IDWriteFactory8* This, IDWriteFontCollectionLoader* loader) { - return This->lpVtbl->RegisterFontCollectionLoader(This, loader); -} -static inline HRESULT IDWriteFactory8_UnregisterFontCollectionLoader(IDWriteFactory8* This, IDWriteFontCollectionLoader* loader) { - return This->lpVtbl->UnregisterFontCollectionLoader(This, loader); -} -static inline HRESULT IDWriteFactory8_CreateFontFileReference(IDWriteFactory8* This, const WCHAR* path, const FILETIME* writetime, IDWriteFontFile** font_file) { - return This->lpVtbl->CreateFontFileReference(This, path, writetime, font_file); -} -static inline HRESULT IDWriteFactory8_CreateCustomFontFileReference(IDWriteFactory8* This, const void* reference_key, UINT32 key_size, IDWriteFontFileLoader* loader, IDWriteFontFile** font_file) { - return This->lpVtbl->CreateCustomFontFileReference(This, reference_key, key_size, loader, font_file); -} -static inline HRESULT IDWriteFactory8_CreateFontFace(IDWriteFactory8* This, DWRITE_FONT_FACE_TYPE facetype, UINT32 files_number, IDWriteFontFile* const* font_files, UINT32 index, DWRITE_FONT_SIMULATIONS sim_flags, IDWriteFontFace** font_face) { - return This->lpVtbl->CreateFontFace(This, facetype, files_number, font_files, index, sim_flags, font_face); -} -static inline HRESULT IDWriteFactory8_CreateRenderingParams(IDWriteFactory8* This, IDWriteRenderingParams** params) { - return This->lpVtbl->CreateRenderingParams(This, params); -} -static inline HRESULT IDWriteFactory8_CreateMonitorRenderingParams(IDWriteFactory8* This, HMONITOR monitor, IDWriteRenderingParams** params) { - return This->lpVtbl->CreateMonitorRenderingParams(This, monitor, params); -} -static inline HRESULT IDWriteFactory8_RegisterFontFileLoader(IDWriteFactory8* This, IDWriteFontFileLoader* loader) { - return This->lpVtbl->RegisterFontFileLoader(This, loader); -} -static inline HRESULT IDWriteFactory8_UnregisterFontFileLoader(IDWriteFactory8* This, IDWriteFontFileLoader* loader) { - return This->lpVtbl->UnregisterFontFileLoader(This, loader); -} -static inline HRESULT IDWriteFactory8_CreateTypography(IDWriteFactory8* This, IDWriteTypography** typography) { - return This->lpVtbl->CreateTypography(This, typography); -} -static inline HRESULT IDWriteFactory8_GetGdiInterop(IDWriteFactory8* This, IDWriteGdiInterop** gdi_interop) { - return This->lpVtbl->GetGdiInterop(This, gdi_interop); -} -static inline HRESULT IDWriteFactory8_CreateTextLayout(IDWriteFactory8* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT max_width, FLOAT max_height, IDWriteTextLayout** layout) { - return This->lpVtbl->CreateTextLayout(This, string, len, format, max_width, max_height, layout); -} -static inline HRESULT IDWriteFactory8_CreateGdiCompatibleTextLayout(IDWriteFactory8* This, const WCHAR* string, UINT32 len, IDWriteTextFormat* format, FLOAT layout_width, FLOAT layout_height, FLOAT pixels_per_dip, const DWRITE_MATRIX* transform, WINBOOL use_gdi_natural, IDWriteTextLayout** layout) { - return This->lpVtbl->CreateGdiCompatibleTextLayout(This, string, len, format, layout_width, layout_height, pixels_per_dip, transform, use_gdi_natural, layout); -} -static inline HRESULT IDWriteFactory8_CreateEllipsisTrimmingSign(IDWriteFactory8* This, IDWriteTextFormat* format, IDWriteInlineObject** trimming_sign) { - return This->lpVtbl->CreateEllipsisTrimmingSign(This, format, trimming_sign); -} -static inline HRESULT IDWriteFactory8_CreateTextAnalyzer(IDWriteFactory8* This, IDWriteTextAnalyzer** analyzer) { - return This->lpVtbl->CreateTextAnalyzer(This, analyzer); -} -static inline HRESULT IDWriteFactory8_CreateNumberSubstitution(IDWriteFactory8* This, DWRITE_NUMBER_SUBSTITUTION_METHOD method, const WCHAR* locale, WINBOOL ignore_user_override, IDWriteNumberSubstitution** substitution) { - return This->lpVtbl->CreateNumberSubstitution(This, method, locale, ignore_user_override, substitution); -} -/*** IDWriteFactory1 methods ***/ -static inline HRESULT IDWriteFactory8_GetEudcFontCollection(IDWriteFactory8* This, IDWriteFontCollection** collection, WINBOOL check_for_updates) { - return This->lpVtbl->GetEudcFontCollection(This, collection, check_for_updates); -} -/*** IDWriteFactory2 methods ***/ -static inline HRESULT IDWriteFactory8_GetSystemFontFallback(IDWriteFactory8* This, IDWriteFontFallback** fallback) { - return This->lpVtbl->GetSystemFontFallback(This, fallback); -} -static inline HRESULT IDWriteFactory8_CreateFontFallbackBuilder(IDWriteFactory8* This, IDWriteFontFallbackBuilder** fallbackbuilder) { - return This->lpVtbl->CreateFontFallbackBuilder(This, fallbackbuilder); -} -/*** IDWriteFactory3 methods ***/ -static inline HRESULT IDWriteFactory8_CreateGlyphRunAnalysis(IDWriteFactory8* This, const DWRITE_GLYPH_RUN* run, const DWRITE_MATRIX* transform, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_MEASURING_MODE measuring_mode, DWRITE_GRID_FIT_MODE gridfit_mode, DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, FLOAT origin_x, FLOAT origin_y, IDWriteGlyphRunAnalysis** analysis) { - return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This, run, transform, rendering_mode, measuring_mode, gridfit_mode, antialias_mode, origin_x, origin_y, analysis); -} -static inline HRESULT IDWriteFactory8_CreateCustomRenderingParams(IDWriteFactory8* This, FLOAT gamma, FLOAT enhanced_contrast, FLOAT grayscale_enhanced_contrast, FLOAT cleartype_level, DWRITE_PIXEL_GEOMETRY pixel_geometry, DWRITE_RENDERING_MODE1 rendering_mode, DWRITE_GRID_FIT_MODE gridfit_mode, IDWriteRenderingParams3** params) { - return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This, gamma, enhanced_contrast, grayscale_enhanced_contrast, cleartype_level, pixel_geometry, rendering_mode, gridfit_mode, params); -} -static inline HRESULT IDWriteFactory8_CreateFontFaceReference_(IDWriteFactory8* This, IDWriteFontFile* file, UINT32 index, DWRITE_FONT_SIMULATIONS simulations, IDWriteFontFaceReference** reference) { - return This->lpVtbl->CreateFontFaceReference_(This, file, index, simulations, reference); -} -static inline HRESULT IDWriteFactory8_GetFontDownloadQueue(IDWriteFactory8* This, IDWriteFontDownloadQueue** queue) { - return This->lpVtbl->GetFontDownloadQueue(This, queue); -} -/*** IDWriteFactory4 methods ***/ -static inline HRESULT IDWriteFactory8_ComputeGlyphOrigins_(IDWriteFactory8* This, const DWRITE_GLYPH_RUN* run, D2D1_POINT_2F baseline_origin, D2D1_POINT_2F* origins) { - return This->lpVtbl->ComputeGlyphOrigins_(This, run, baseline_origin, origins); -} -static inline HRESULT IDWriteFactory8_ComputeGlyphOrigins(IDWriteFactory8* This, const DWRITE_GLYPH_RUN* run, DWRITE_MEASURING_MODE measuring_mode, D2D1_POINT_2F baseline_origin, const DWRITE_MATRIX* transform, D2D1_POINT_2F* origins) { - return This->lpVtbl->ComputeGlyphOrigins(This, run, measuring_mode, baseline_origin, transform, origins); -} -/*** IDWriteFactory5 methods ***/ -static inline HRESULT IDWriteFactory8_CreateInMemoryFontFileLoader(IDWriteFactory8* This, IDWriteInMemoryFontFileLoader** loader) { - return This->lpVtbl->CreateInMemoryFontFileLoader(This, loader); -} -static inline HRESULT IDWriteFactory8_CreateHttpFontFileLoader(IDWriteFactory8* This, const WCHAR* referrer_url, const WCHAR* extra_headers, IDWriteRemoteFontFileLoader** loader) { - return This->lpVtbl->CreateHttpFontFileLoader(This, referrer_url, extra_headers, loader); -} -static inline DWRITE_CONTAINER_TYPE IDWriteFactory8_AnalyzeContainerType(IDWriteFactory8* This, const void* data, UINT32 data_size) { - return This->lpVtbl->AnalyzeContainerType(This, data, data_size); -} -static inline HRESULT IDWriteFactory8_UnpackFontFile(IDWriteFactory8* This, DWRITE_CONTAINER_TYPE container_type, const void* data, UINT32 data_size, IDWriteFontFileStream** stream) { - return This->lpVtbl->UnpackFontFile(This, container_type, data, data_size, stream); -} -/*** IDWriteFactory6 methods ***/ -static inline HRESULT IDWriteFactory8_CreateFontFaceReference(IDWriteFactory8* This, IDWriteFontFile* file, UINT32 face_index, DWRITE_FONT_SIMULATIONS simulations, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_axis, IDWriteFontFaceReference1** face_ref) { - return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This, file, face_index, simulations, axis_values, num_axis, face_ref); -} -static inline HRESULT IDWriteFactory8_CreateFontResource(IDWriteFactory8* This, IDWriteFontFile* file, UINT32 face_index, IDWriteFontResource** resource) { - return This->lpVtbl->CreateFontResource(This, file, face_index, resource); -} -static inline HRESULT IDWriteFactory8_CreateFontCollectionFromFontSet(IDWriteFactory8* This, IDWriteFontSet* fontset, DWRITE_FONT_FAMILY_MODEL family_model, IDWriteFontCollection2** collection) { - return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This, fontset, family_model, collection); -} -static inline HRESULT IDWriteFactory8_CreateFontSetBuilder(IDWriteFactory8* This, IDWriteFontSetBuilder2** builder) { - return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This, builder); -} -static inline HRESULT IDWriteFactory8_CreateTextFormat(IDWriteFactory8* This, const WCHAR* familyname, IDWriteFontCollection* collection, const DWRITE_FONT_AXIS_VALUE* axis_values, UINT32 num_axis, FLOAT fontsize, const WCHAR* localename, IDWriteTextFormat3** format) { - return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This, familyname, collection, axis_values, num_axis, fontsize, localename, format); -} -/*** IDWriteFactory7 methods ***/ -static inline HRESULT IDWriteFactory8_GetSystemFontSet(IDWriteFactory8* This, WINBOOL include_downloadable, IDWriteFontSet2** fontset) { - return This->lpVtbl->IDWriteFactory7_GetSystemFontSet(This, include_downloadable, fontset); -} -static inline HRESULT IDWriteFactory8_GetSystemFontCollection(IDWriteFactory8* This, WINBOOL include_downloadable, DWRITE_FONT_FAMILY_MODEL family_model, IDWriteFontCollection3** collection) { - return This->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This, include_downloadable, family_model, collection); -} -/*** IDWriteFactory8 methods ***/ -static inline HRESULT IDWriteFactory8_TranslateColorGlyphRun(IDWriteFactory8* This, D2D1_POINT_2F origin, const DWRITE_GLYPH_RUN* glyph_run, const DWRITE_GLYPH_RUN_DESCRIPTION* glyph_run_desc, DWRITE_GLYPH_IMAGE_FORMATS image_formats, DWRITE_PAINT_FEATURE_LEVEL feature_level, DWRITE_MEASURING_MODE measuring_mode, const DWRITE_MATRIX* world_and_dpi_transform, UINT32 palette_index, IDWriteColorGlyphRunEnumerator1** enumerator) { - return This->lpVtbl->IDWriteFactory8_TranslateColorGlyphRun(This, origin, glyph_run, glyph_run_desc, image_formats, feature_level, measuring_mode, world_and_dpi_transform, palette_index, enumerator); -} -#endif -#endif - -#endif - -#endif /* __IDWriteFactory8_INTERFACE_DEFINED__ */ - -typedef struct DWRITE_BITMAP_DATA_BGRA32 { - UINT32 width; - UINT32 height; - UINT32* pixels; -} DWRITE_BITMAP_DATA_BGRA32; -/***************************************************************************** - * IDWriteBitmapRenderTarget2 interface - */ -#ifndef __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__ -#define __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteBitmapRenderTarget2, 0xc553a742, 0xfc01, 0x44da, 0xa6, 0x6e, 0xb8, 0xb9, 0xed, 0x6c, 0x39, 0x95); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("c553a742-fc01-44da-a66e-b8b9ed6c3995") -IDWriteBitmapRenderTarget2 : public IDWriteBitmapRenderTarget1 { - virtual HRESULT STDMETHODCALLTYPE GetBitmapData( - DWRITE_BITMAP_DATA_BGRA32 * bitmap_data) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteBitmapRenderTarget2, 0xc553a742, 0xfc01, 0x44da, 0xa6, 0x6e, 0xb8, 0xb9, 0xed, 0x6c, 0x39, 0x95) -#endif -#else -typedef struct IDWriteBitmapRenderTarget2Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteBitmapRenderTarget2* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteBitmapRenderTarget2* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteBitmapRenderTarget2* This); - - /*** IDWriteBitmapRenderTarget methods ***/ - HRESULT(STDMETHODCALLTYPE* DrawGlyphRun)( - IDWriteBitmapRenderTarget2* This, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_GLYPH_RUN* glyph_run, - IDWriteRenderingParams* params, - COLORREF textColor, - RECT* blackbox_rect); - - HDC(STDMETHODCALLTYPE* GetMemoryDC)( - IDWriteBitmapRenderTarget2* This); - - FLOAT(STDMETHODCALLTYPE* GetPixelsPerDip)( - IDWriteBitmapRenderTarget2* This); - - HRESULT(STDMETHODCALLTYPE* SetPixelsPerDip)( - IDWriteBitmapRenderTarget2* This, - FLOAT pixels_per_dip); - - HRESULT(STDMETHODCALLTYPE* GetCurrentTransform)( - IDWriteBitmapRenderTarget2* This, - DWRITE_MATRIX* transform); - - HRESULT(STDMETHODCALLTYPE* SetCurrentTransform)( - IDWriteBitmapRenderTarget2* This, - const DWRITE_MATRIX* transform); - - HRESULT(STDMETHODCALLTYPE* GetSize)( - IDWriteBitmapRenderTarget2* This, - SIZE* size); - - HRESULT(STDMETHODCALLTYPE* Resize)( - IDWriteBitmapRenderTarget2* This, - UINT32 width, - UINT32 height); - - /*** IDWriteBitmapRenderTarget1 methods ***/ - DWRITE_TEXT_ANTIALIAS_MODE(STDMETHODCALLTYPE* GetTextAntialiasMode)( - IDWriteBitmapRenderTarget2* This); - - HRESULT(STDMETHODCALLTYPE* SetTextAntialiasMode)( - IDWriteBitmapRenderTarget2* This, - DWRITE_TEXT_ANTIALIAS_MODE mode); - - /*** IDWriteBitmapRenderTarget2 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetBitmapData)( - IDWriteBitmapRenderTarget2* This, - DWRITE_BITMAP_DATA_BGRA32* bitmap_data); - - END_INTERFACE -} IDWriteBitmapRenderTarget2Vtbl; - -interface IDWriteBitmapRenderTarget2 { - CONST_VTBL IDWriteBitmapRenderTarget2Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteBitmapRenderTarget2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteBitmapRenderTarget2_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteBitmapRenderTarget2_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteBitmapRenderTarget methods ***/ -#define IDWriteBitmapRenderTarget2_DrawGlyphRun(This, baselineOriginX, baselineOriginY, measuring_mode, glyph_run, params, textColor, blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This, baselineOriginX, baselineOriginY, measuring_mode, glyph_run, params, textColor, blackbox_rect) -#define IDWriteBitmapRenderTarget2_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This) -#define IDWriteBitmapRenderTarget2_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This) -#define IDWriteBitmapRenderTarget2_SetPixelsPerDip(This, pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This, pixels_per_dip) -#define IDWriteBitmapRenderTarget2_GetCurrentTransform(This, transform) (This)->lpVtbl->GetCurrentTransform(This, transform) -#define IDWriteBitmapRenderTarget2_SetCurrentTransform(This, transform) (This)->lpVtbl->SetCurrentTransform(This, transform) -#define IDWriteBitmapRenderTarget2_GetSize(This, size) (This)->lpVtbl->GetSize(This, size) -#define IDWriteBitmapRenderTarget2_Resize(This, width, height) (This)->lpVtbl->Resize(This, width, height) -/*** IDWriteBitmapRenderTarget1 methods ***/ -#define IDWriteBitmapRenderTarget2_GetTextAntialiasMode(This) (This)->lpVtbl->GetTextAntialiasMode(This) -#define IDWriteBitmapRenderTarget2_SetTextAntialiasMode(This, mode) (This)->lpVtbl->SetTextAntialiasMode(This, mode) -/*** IDWriteBitmapRenderTarget2 methods ***/ -#define IDWriteBitmapRenderTarget2_GetBitmapData(This, bitmap_data) (This)->lpVtbl->GetBitmapData(This, bitmap_data) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteBitmapRenderTarget2_QueryInterface(IDWriteBitmapRenderTarget2* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteBitmapRenderTarget2_AddRef(IDWriteBitmapRenderTarget2* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteBitmapRenderTarget2_Release(IDWriteBitmapRenderTarget2* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteBitmapRenderTarget methods ***/ -static inline HRESULT IDWriteBitmapRenderTarget2_DrawGlyphRun(IDWriteBitmapRenderTarget2* This, FLOAT baselineOriginX, FLOAT baselineOriginY, DWRITE_MEASURING_MODE measuring_mode, const DWRITE_GLYPH_RUN* glyph_run, IDWriteRenderingParams* params, COLORREF textColor, RECT* blackbox_rect) { - return This->lpVtbl->DrawGlyphRun(This, baselineOriginX, baselineOriginY, measuring_mode, glyph_run, params, textColor, blackbox_rect); -} -static inline HDC IDWriteBitmapRenderTarget2_GetMemoryDC(IDWriteBitmapRenderTarget2* This) { - return This->lpVtbl->GetMemoryDC(This); -} -static inline FLOAT IDWriteBitmapRenderTarget2_GetPixelsPerDip(IDWriteBitmapRenderTarget2* This) { - return This->lpVtbl->GetPixelsPerDip(This); -} -static inline HRESULT IDWriteBitmapRenderTarget2_SetPixelsPerDip(IDWriteBitmapRenderTarget2* This, FLOAT pixels_per_dip) { - return This->lpVtbl->SetPixelsPerDip(This, pixels_per_dip); -} -static inline HRESULT IDWriteBitmapRenderTarget2_GetCurrentTransform(IDWriteBitmapRenderTarget2* This, DWRITE_MATRIX* transform) { - return This->lpVtbl->GetCurrentTransform(This, transform); -} -static inline HRESULT IDWriteBitmapRenderTarget2_SetCurrentTransform(IDWriteBitmapRenderTarget2* This, const DWRITE_MATRIX* transform) { - return This->lpVtbl->SetCurrentTransform(This, transform); -} -static inline HRESULT IDWriteBitmapRenderTarget2_GetSize(IDWriteBitmapRenderTarget2* This, SIZE* size) { - return This->lpVtbl->GetSize(This, size); -} -static inline HRESULT IDWriteBitmapRenderTarget2_Resize(IDWriteBitmapRenderTarget2* This, UINT32 width, UINT32 height) { - return This->lpVtbl->Resize(This, width, height); -} -/*** IDWriteBitmapRenderTarget1 methods ***/ -static inline DWRITE_TEXT_ANTIALIAS_MODE IDWriteBitmapRenderTarget2_GetTextAntialiasMode(IDWriteBitmapRenderTarget2* This) { - return This->lpVtbl->GetTextAntialiasMode(This); -} -static inline HRESULT IDWriteBitmapRenderTarget2_SetTextAntialiasMode(IDWriteBitmapRenderTarget2* This, DWRITE_TEXT_ANTIALIAS_MODE mode) { - return This->lpVtbl->SetTextAntialiasMode(This, mode); -} -/*** IDWriteBitmapRenderTarget2 methods ***/ -static inline HRESULT IDWriteBitmapRenderTarget2_GetBitmapData(IDWriteBitmapRenderTarget2* This, DWRITE_BITMAP_DATA_BGRA32* bitmap_data) { - return This->lpVtbl->GetBitmapData(This, bitmap_data); -} -#endif -#endif - -#endif - -#endif /* __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__ */ - -/***************************************************************************** - * IDWriteBitmapRenderTarget3 interface - */ -#ifndef __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__ -#define __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__ - -DEFINE_GUID(IID_IDWriteBitmapRenderTarget3, 0xaeec37db, 0xc337, 0x40f1, 0x8e, 0x2a, 0x9a, 0x41, 0xb1, 0x67, 0xb2, 0x38); -#if defined(__cplusplus) && !defined(CINTERFACE) -MIDL_INTERFACE("aeec37db-c337-40f1-8e2a-9a41b167b238") -IDWriteBitmapRenderTarget3 : public IDWriteBitmapRenderTarget2 { - virtual DWRITE_PAINT_FEATURE_LEVEL STDMETHODCALLTYPE GetPaintFeatureLevel() = 0; - - virtual HRESULT STDMETHODCALLTYPE DrawPaintGlyphRun( - FLOAT origin_x, - FLOAT origin_y, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_GLYPH_RUN* run, - DWRITE_GLYPH_IMAGE_FORMATS image_format, - COLORREF text_color, - UINT32 palette_index, - RECT* black_box) = 0; - - virtual HRESULT STDMETHODCALLTYPE DrawGlyphRunWithColorSupport( - FLOAT origin_x, - FLOAT origin_y, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_GLYPH_RUN* run, - IDWriteRenderingParams* params, - COLORREF text_color, - UINT32 palette_index, - RECT* black_box) = 0; -}; -#ifdef __CRT_UUID_DECL -__CRT_UUID_DECL(IDWriteBitmapRenderTarget3, 0xaeec37db, 0xc337, 0x40f1, 0x8e, 0x2a, 0x9a, 0x41, 0xb1, 0x67, 0xb2, 0x38) -#endif -#else -typedef struct IDWriteBitmapRenderTarget3Vtbl { - BEGIN_INTERFACE - - /*** IUnknown methods ***/ - HRESULT(STDMETHODCALLTYPE* QueryInterface)( - IDWriteBitmapRenderTarget3* This, - REFIID riid, - void** ppvObject); - - ULONG(STDMETHODCALLTYPE* AddRef)( - IDWriteBitmapRenderTarget3* This); - - ULONG(STDMETHODCALLTYPE* Release)( - IDWriteBitmapRenderTarget3* This); - - /*** IDWriteBitmapRenderTarget methods ***/ - HRESULT(STDMETHODCALLTYPE* DrawGlyphRun)( - IDWriteBitmapRenderTarget3* This, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_GLYPH_RUN* glyph_run, - IDWriteRenderingParams* params, - COLORREF textColor, - RECT* blackbox_rect); - - HDC(STDMETHODCALLTYPE* GetMemoryDC)( - IDWriteBitmapRenderTarget3* This); - - FLOAT(STDMETHODCALLTYPE* GetPixelsPerDip)( - IDWriteBitmapRenderTarget3* This); - - HRESULT(STDMETHODCALLTYPE* SetPixelsPerDip)( - IDWriteBitmapRenderTarget3* This, - FLOAT pixels_per_dip); - - HRESULT(STDMETHODCALLTYPE* GetCurrentTransform)( - IDWriteBitmapRenderTarget3* This, - DWRITE_MATRIX* transform); - - HRESULT(STDMETHODCALLTYPE* SetCurrentTransform)( - IDWriteBitmapRenderTarget3* This, - const DWRITE_MATRIX* transform); - - HRESULT(STDMETHODCALLTYPE* GetSize)( - IDWriteBitmapRenderTarget3* This, - SIZE* size); - - HRESULT(STDMETHODCALLTYPE* Resize)( - IDWriteBitmapRenderTarget3* This, - UINT32 width, - UINT32 height); - - /*** IDWriteBitmapRenderTarget1 methods ***/ - DWRITE_TEXT_ANTIALIAS_MODE(STDMETHODCALLTYPE* GetTextAntialiasMode)( - IDWriteBitmapRenderTarget3* This); - - HRESULT(STDMETHODCALLTYPE* SetTextAntialiasMode)( - IDWriteBitmapRenderTarget3* This, - DWRITE_TEXT_ANTIALIAS_MODE mode); - - /*** IDWriteBitmapRenderTarget2 methods ***/ - HRESULT(STDMETHODCALLTYPE* GetBitmapData)( - IDWriteBitmapRenderTarget3* This, - DWRITE_BITMAP_DATA_BGRA32* bitmap_data); - - /*** IDWriteBitmapRenderTarget3 methods ***/ - DWRITE_PAINT_FEATURE_LEVEL(STDMETHODCALLTYPE* GetPaintFeatureLevel)( - IDWriteBitmapRenderTarget3* This); - - HRESULT(STDMETHODCALLTYPE* DrawPaintGlyphRun)( - IDWriteBitmapRenderTarget3* This, - FLOAT origin_x, - FLOAT origin_y, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_GLYPH_RUN* run, - DWRITE_GLYPH_IMAGE_FORMATS image_format, - COLORREF text_color, - UINT32 palette_index, - RECT* black_box); - - HRESULT(STDMETHODCALLTYPE* DrawGlyphRunWithColorSupport)( - IDWriteBitmapRenderTarget3* This, - FLOAT origin_x, - FLOAT origin_y, - DWRITE_MEASURING_MODE measuring_mode, - const DWRITE_GLYPH_RUN* run, - IDWriteRenderingParams* params, - COLORREF text_color, - UINT32 palette_index, - RECT* black_box); - - END_INTERFACE -} IDWriteBitmapRenderTarget3Vtbl; - -interface IDWriteBitmapRenderTarget3 { - CONST_VTBL IDWriteBitmapRenderTarget3Vtbl* lpVtbl; -}; - -#ifdef COBJMACROS -#ifndef WIDL_C_INLINE_WRAPPERS -/*** IUnknown methods ***/ -#define IDWriteBitmapRenderTarget3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject) -#define IDWriteBitmapRenderTarget3_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDWriteBitmapRenderTarget3_Release(This) (This)->lpVtbl->Release(This) -/*** IDWriteBitmapRenderTarget methods ***/ -#define IDWriteBitmapRenderTarget3_DrawGlyphRun(This, baselineOriginX, baselineOriginY, measuring_mode, glyph_run, params, textColor, blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This, baselineOriginX, baselineOriginY, measuring_mode, glyph_run, params, textColor, blackbox_rect) -#define IDWriteBitmapRenderTarget3_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This) -#define IDWriteBitmapRenderTarget3_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This) -#define IDWriteBitmapRenderTarget3_SetPixelsPerDip(This, pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This, pixels_per_dip) -#define IDWriteBitmapRenderTarget3_GetCurrentTransform(This, transform) (This)->lpVtbl->GetCurrentTransform(This, transform) -#define IDWriteBitmapRenderTarget3_SetCurrentTransform(This, transform) (This)->lpVtbl->SetCurrentTransform(This, transform) -#define IDWriteBitmapRenderTarget3_GetSize(This, size) (This)->lpVtbl->GetSize(This, size) -#define IDWriteBitmapRenderTarget3_Resize(This, width, height) (This)->lpVtbl->Resize(This, width, height) -/*** IDWriteBitmapRenderTarget1 methods ***/ -#define IDWriteBitmapRenderTarget3_GetTextAntialiasMode(This) (This)->lpVtbl->GetTextAntialiasMode(This) -#define IDWriteBitmapRenderTarget3_SetTextAntialiasMode(This, mode) (This)->lpVtbl->SetTextAntialiasMode(This, mode) -/*** IDWriteBitmapRenderTarget2 methods ***/ -#define IDWriteBitmapRenderTarget3_GetBitmapData(This, bitmap_data) (This)->lpVtbl->GetBitmapData(This, bitmap_data) -/*** IDWriteBitmapRenderTarget3 methods ***/ -#define IDWriteBitmapRenderTarget3_GetPaintFeatureLevel(This) (This)->lpVtbl->GetPaintFeatureLevel(This) -#define IDWriteBitmapRenderTarget3_DrawPaintGlyphRun(This, origin_x, origin_y, measuring_mode, run, image_format, text_color, palette_index, black_box) (This)->lpVtbl->DrawPaintGlyphRun(This, origin_x, origin_y, measuring_mode, run, image_format, text_color, palette_index, black_box) -#define IDWriteBitmapRenderTarget3_DrawGlyphRunWithColorSupport(This, origin_x, origin_y, measuring_mode, run, params, text_color, palette_index, black_box) (This)->lpVtbl->DrawGlyphRunWithColorSupport(This, origin_x, origin_y, measuring_mode, run, params, text_color, palette_index, black_box) -#else -/*** IUnknown methods ***/ -static inline HRESULT IDWriteBitmapRenderTarget3_QueryInterface(IDWriteBitmapRenderTarget3* This, REFIID riid, void** ppvObject) { - return This->lpVtbl->QueryInterface(This, riid, ppvObject); -} -static inline ULONG IDWriteBitmapRenderTarget3_AddRef(IDWriteBitmapRenderTarget3* This) { - return This->lpVtbl->AddRef(This); -} -static inline ULONG IDWriteBitmapRenderTarget3_Release(IDWriteBitmapRenderTarget3* This) { - return This->lpVtbl->Release(This); -} -/*** IDWriteBitmapRenderTarget methods ***/ -static inline HRESULT IDWriteBitmapRenderTarget3_DrawGlyphRun(IDWriteBitmapRenderTarget3* This, FLOAT baselineOriginX, FLOAT baselineOriginY, DWRITE_MEASURING_MODE measuring_mode, const DWRITE_GLYPH_RUN* glyph_run, IDWriteRenderingParams* params, COLORREF textColor, RECT* blackbox_rect) { - return This->lpVtbl->DrawGlyphRun(This, baselineOriginX, baselineOriginY, measuring_mode, glyph_run, params, textColor, blackbox_rect); -} -static inline HDC IDWriteBitmapRenderTarget3_GetMemoryDC(IDWriteBitmapRenderTarget3* This) { - return This->lpVtbl->GetMemoryDC(This); -} -static inline FLOAT IDWriteBitmapRenderTarget3_GetPixelsPerDip(IDWriteBitmapRenderTarget3* This) { - return This->lpVtbl->GetPixelsPerDip(This); -} -static inline HRESULT IDWriteBitmapRenderTarget3_SetPixelsPerDip(IDWriteBitmapRenderTarget3* This, FLOAT pixels_per_dip) { - return This->lpVtbl->SetPixelsPerDip(This, pixels_per_dip); -} -static inline HRESULT IDWriteBitmapRenderTarget3_GetCurrentTransform(IDWriteBitmapRenderTarget3* This, DWRITE_MATRIX* transform) { - return This->lpVtbl->GetCurrentTransform(This, transform); -} -static inline HRESULT IDWriteBitmapRenderTarget3_SetCurrentTransform(IDWriteBitmapRenderTarget3* This, const DWRITE_MATRIX* transform) { - return This->lpVtbl->SetCurrentTransform(This, transform); -} -static inline HRESULT IDWriteBitmapRenderTarget3_GetSize(IDWriteBitmapRenderTarget3* This, SIZE* size) { - return This->lpVtbl->GetSize(This, size); -} -static inline HRESULT IDWriteBitmapRenderTarget3_Resize(IDWriteBitmapRenderTarget3* This, UINT32 width, UINT32 height) { - return This->lpVtbl->Resize(This, width, height); -} -/*** IDWriteBitmapRenderTarget1 methods ***/ -static inline DWRITE_TEXT_ANTIALIAS_MODE IDWriteBitmapRenderTarget3_GetTextAntialiasMode(IDWriteBitmapRenderTarget3* This) { - return This->lpVtbl->GetTextAntialiasMode(This); -} -static inline HRESULT IDWriteBitmapRenderTarget3_SetTextAntialiasMode(IDWriteBitmapRenderTarget3* This, DWRITE_TEXT_ANTIALIAS_MODE mode) { - return This->lpVtbl->SetTextAntialiasMode(This, mode); -} -/*** IDWriteBitmapRenderTarget2 methods ***/ -static inline HRESULT IDWriteBitmapRenderTarget3_GetBitmapData(IDWriteBitmapRenderTarget3* This, DWRITE_BITMAP_DATA_BGRA32* bitmap_data) { - return This->lpVtbl->GetBitmapData(This, bitmap_data); -} -/*** IDWriteBitmapRenderTarget3 methods ***/ -static inline DWRITE_PAINT_FEATURE_LEVEL IDWriteBitmapRenderTarget3_GetPaintFeatureLevel(IDWriteBitmapRenderTarget3* This) { - return This->lpVtbl->GetPaintFeatureLevel(This); -} -static inline HRESULT IDWriteBitmapRenderTarget3_DrawPaintGlyphRun(IDWriteBitmapRenderTarget3* This, FLOAT origin_x, FLOAT origin_y, DWRITE_MEASURING_MODE measuring_mode, const DWRITE_GLYPH_RUN* run, DWRITE_GLYPH_IMAGE_FORMATS image_format, COLORREF text_color, UINT32 palette_index, RECT* black_box) { - return This->lpVtbl->DrawPaintGlyphRun(This, origin_x, origin_y, measuring_mode, run, image_format, text_color, palette_index, black_box); -} -static inline HRESULT IDWriteBitmapRenderTarget3_DrawGlyphRunWithColorSupport(IDWriteBitmapRenderTarget3* This, FLOAT origin_x, FLOAT origin_y, DWRITE_MEASURING_MODE measuring_mode, const DWRITE_GLYPH_RUN* run, IDWriteRenderingParams* params, COLORREF text_color, UINT32 palette_index, RECT* black_box) { - return This->lpVtbl->DrawGlyphRunWithColorSupport(This, origin_x, origin_y, measuring_mode, run, params, text_color, palette_index, black_box); -} -#endif -#endif - -#endif - -#endif /* __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__ */ - -/* Begin additional prototypes for all interfaces */ - -/* End additional prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif /* __dwrite_3_h__ */ diff --git a/src/text/font/boldmonottf.c b/src/text/font/boldmonottf.c index 6d54436ac..8526c1b05 100644 --- a/src/text/font/boldmonottf.c +++ b/src/text/font/boldmonottf.c @@ -1,6 +1,6 @@ #include -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_GDI_TEXT) unsigned char MwBoldMonospaceTTFData[] = { 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x04, 0x00, 0x10, 0x46, 0x46, 0x54, 0x4d, 0xac, 0x0d, 0xe4, 0x44, 0x00, 0x00, 0x8d, 0x3c, diff --git a/src/text/font/boldttf.c b/src/text/font/boldttf.c index 5b0257833..2ec91c7ff 100644 --- a/src/text/font/boldttf.c +++ b/src/text/font/boldttf.c @@ -1,6 +1,6 @@ #include -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_GDI_TEXT) unsigned char MwBoldTTFData[] = { 0x00, 0x01, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x04, 0x00, 0x20, 0x46, 0x46, 0x54, 0x4d, 0x94, 0x9f, 0x60, 0x18, 0x00, 0x00, 0x8e, 0xa8, diff --git a/src/text/font/monottf.c b/src/text/font/monottf.c index 549e158e4..7a89f9439 100644 --- a/src/text/font/monottf.c +++ b/src/text/font/monottf.c @@ -1,6 +1,6 @@ #include -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_GDI_TEXT) unsigned char MwMonospaceTTFData[] = { 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x04, 0x00, 0x10, 0x46, 0x46, 0x54, 0x4d, 0xac, 0x0d, 0xe4, 0x23, 0x00, 0x00, 0x8d, 0x3c, diff --git a/src/text/font/ttf.c b/src/text/font/ttf.c index 6dd141809..7eeea07b5 100644 --- a/src/text/font/ttf.c +++ b/src/text/font/ttf.c @@ -1,6 +1,6 @@ #include -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_GDI_TEXT) unsigned char MwTTFData[] = { 0x00, 0x01, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x04, 0x00, 0x20, 0x46, 0x46, 0x54, 0x4d, 0x94, 0x92, 0x79, 0xd4, 0x00, 0x00, 0x89, 0xa4, diff --git a/src/text/text.c b/src/text/text.c index f0b80c7db..9ad1e940f 100644 --- a/src/text/text.c +++ b/src/text/text.c @@ -7,7 +7,7 @@ int (*MwFLTextHeightWithText)(MwFLFont ttf, const char* text) = NULL; void* (*MwFLFontLoad)(unsigned char* data, unsigned int size, int px) = NULL; void (*MwFLFontFree)(void* handle) = NULL; -#if defined(USE_FREETYPE2) || defined(USE_STB_TRUETYPE) || defined(USE_DIRECTWRITE) +#if defined(USE_FREETYPE2) || defined(USE_STB_TRUETYPE) || defined(USE_GDI_TEXT) #define TTF #endif @@ -303,9 +303,6 @@ void MwFLSetup(void) { #ifdef USE_GDI_TEXT MwFL_GDISetup, #endif -#ifdef USE_DIRECTWRITE - MwFL_DWSetup, -#endif #ifdef USE_FREETYPE2 MwFL_FT2Setup, #endif From ad8173d562bc0fae824926b06c39c4109dbb96d4 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Sun, 19 Jul 2026 14:20:43 -0700 Subject: [PATCH 786/836] have cmake not prefix the library --- CMakeLists.txt | 5 +++++ examples/basic/example.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a16283e64..fde6fd113 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,6 +11,11 @@ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +if(WIN32) +set(CMAKE_STATIC_LIBRARY_PREFIX "") +set(CMAKE_SHARED_LIBRARY_PREFIX "") +endif() + option(MW_CLASSIC_THEME "Use classic theme" OFF) option(MW_BUILD_EXAMPLES "Build examples" OFF) option(MW_USE_STB_IMAGE "Use stb_image" ON) diff --git a/examples/basic/example.c b/examples/basic/example.c index fdf602750..8fe38da78 100644 --- a/examples/basic/example.c +++ b/examples/basic/example.c @@ -112,7 +112,7 @@ int main() { MwNtext, "font", NULL); button4 = MwVaCreateWidget(MwButtonClass, "button", window, 50, 225, 100, 125, - MwNtext, "日本語の表記体系", + MwNtext, "lorem ipsum", MwNbackground, "#f66", MwNforeground, "#000", NULL); From a30d306da0366bc78bd71f223320fcbf2aed296b Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 20 Jul 2026 06:21:25 +0900 Subject: [PATCH 787/836] fix perl files --- configure | 5 ++++- pl/rules.pl | 3 ++- pl/utils.pl | 13 +++++-------- src/text/gdi.c | 2 +- tools/color.pl | 7 +++++-- 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/configure b/configure index 57df6d8ff..44db66d80 100755 --- a/configure +++ b/configure @@ -82,7 +82,10 @@ my @features_keys = ( ); sub def_platform { - if($target ne "Darwin" and $target ne "ClassicMacOS" and $target ne "Windows" and $target ne "Haiku") { + if($target eq "Windows") { + param_set("freetype2", 0); + param_set("stb-truetype", 0); + } elsif($target ne "Darwin" and $target ne "ClassicMacOS" and $target ne "Haiku") { param_set("freetype2", 1); param_set("stb-truetype", 0); } else { diff --git a/pl/rules.pl b/pl/rules.pl index 986ee98ca..89f13e93a 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -66,7 +66,8 @@ if (grep(/^wayland$/, @backends)) { scan_wayland_protocol("unstable", "primary-selection", "-unstable-v1"); scan_wayland_protocol("unstable", "pointer-constraints", "-unstable-v1"); scan_wayland_protocol("unstable", "relative-pointer", "-unstable-v1"); - scan_wayland_protocol_from_file("wlr-layer-shell", "wlr-layer-shell-unstable-v1.xml"); + scan_wayland_protocol_from_file("wlr-layer-shell", + "wlr-layer-shell-unstable-v1.xml"); $gl_libs = "-lGL -lGLU"; } diff --git a/pl/utils.pl b/pl/utils.pl index 23e16f07b..504e8dcbf 100644 --- a/pl/utils.pl +++ b/pl/utils.pl @@ -125,21 +125,19 @@ sub scan_wayland_protocol { } } - sub scan_wayland_protocol_from_file { - my $proto = $_[0]; - my $file = $_[1]; + my $proto = $_[0]; + my $file = $_[1]; my $proto_c = "src/backend/wayland/wayland-${proto}-protocol.c"; if ( system( -"wayland-scanner private-code ./resource/wayland/${file} ${proto_c}" + "wayland-scanner private-code ./resource/wayland/${file} ${proto_c}" ) != 0 ) { print( -"^ Error on getting private code for ./resource/wayland/${file}\n" - ); + "^ Error on getting private code for ./resource/wayland/${file}\n"); } else { new_object($proto_c); @@ -151,12 +149,11 @@ sub scan_wayland_protocol_from_file { ) { print( -"^ Error on getting client header for ./resource/wayland/${file}\n" + "^ Error on getting client header for ./resource/wayland/${file}\n" ); } } - our %params = (); sub param_set { diff --git a/src/text/gdi.c b/src/text/gdi.c index 7823ee7eb..0d5913dd0 100644 --- a/src/text/gdi.c +++ b/src/text/gdi.c @@ -34,7 +34,7 @@ static int GDI_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const c SetBkMode(handle->lowlevel->gdi.hDC, old_bkmode); SelectObject(handle->lowlevel->gdi.hDC, old_font); - free(t); + free(t); return 0; } diff --git a/tools/color.pl b/tools/color.pl index 0e7c6bb42..eca072ca1 100755 --- a/tools/color.pl +++ b/tools/color.pl @@ -28,7 +28,9 @@ print(OUT " rgb->green = (v >> 8) & 0xff;"); print(OUT " rgb->blue = (v >> 0) & 0xff;"); print(OUT "}\n"); print(OUT "\n"); -print(OUT "static void add_color(const char* name, int red, int green, int blue){\n"); +print(OUT + "static void add_color(const char* name, int red, int green, int blue){\n" +); print(OUT " MwU32 v = (red << 16) | (green << 8) | (blue << 0);\n"); print(OUT " shput(colors, name, v);\n"); print(OUT "}\n"); @@ -36,10 +38,11 @@ print(OUT "\n"); print(OUT "void MwColorTableInit(void){\n"); print(OUT " sh_new_strdup(colors);\n"); print(OUT " shdefault(colors, 0);\n"); + while (my $l = ) { $l =~ s/\r?\n$//; if ($l =~ /^[ \t]*([0-9]+)[ \t]+([0-9]+)[ \t]+([0-9]+)[ \t]+(.+)$/) { - print(OUT " add_color(\"$4\", $1, $2, $3);\n"); + print(OUT " add_color(\"$4\", $1, $2, $3);\n"); } } print(OUT "}\n"); From d056d1b7fb47041488bd0c9763e0730eae18e5bf Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 19 Jul 2026 15:06:10 -0700 Subject: [PATCH 788/836] wayland: min width/height of 50 --- src/backend/wayland/wayland.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 278b453b0..a0b700c3d 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -177,6 +177,9 @@ static void xdg_toplevel_configure(void* data, } } + if(width < 50) width = 50; + if(height < 50) height = 50; + MwLLWaylandRegionInvalidate(self); self->wayland.ww = width; self->wayland.wh = height; @@ -451,6 +454,9 @@ static void popup_configure(void* data, int32_t height) { MwLL self = data; (void)xdg_popup; + + if(width < 50) width = 50; + if(height < 50) height = 50; self->wayland.x = x; self->wayland.y = y; self->wayland.ww = width; @@ -600,6 +606,9 @@ static void layer_shell_configure(void* data, MwLL self = data; zwlr_layer_surface_v1_ack_configure(surface, serial); + if(width < 50) width = 50; + if(height < 50) height = 50; + self->wayland.ww = width; self->wayland.wh = height; @@ -1106,13 +1115,11 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { } /* Prevent an integer underflow when the w/h is too low */ - if((w < 2 || h < 2)) { - handle->wayland.ww = 2; - handle->wayland.wh = 2; - } else { - handle->wayland.ww = w; - handle->wayland.wh = h; - } + if(w < 50) w = 50; + if(h < 50) h = 50; + + handle->wayland.ww = w; + handle->wayland.wh = h; if(!handle->wayland.setting_wh) { handle->wayland.setting_wh = 1; From 74a800b3ef240f2caa2988bbba7e453d02d3bb2a Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 20 Jul 2026 09:07:30 +0900 Subject: [PATCH 789/836] fix reparent freeze --- src/core.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core.c b/src/core.c index 9b5242df7..cb39b1cb0 100644 --- a/src/core.c +++ b/src/core.c @@ -1143,8 +1143,10 @@ void MwReparent(MwWidget handle, MwWidget new_parent) { if(new_parent == NULL) { handle->top_step = 1; + arrput(handle->tick_list, handle); } else { handle->top_step = 0; + arrfree(handle->tick_list); } MwForceRender(handle); From d9bf9bbb95c2b8f83ac98f3571f70730706d5217 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 19 Jul 2026 20:44:28 -0700 Subject: [PATCH 790/836] support gdi text under win95 --- NTMakefile | 2 +- WatMakefile | 2 +- include/Mw/TypeDefs.h | 4 ++ src/text/gdi.c | 124 +++++++++++++++++++++++++++++++++++++++--- tools/genmk.pl | 2 +- 5 files changed, 122 insertions(+), 12 deletions(-) diff --git a/NTMakefile b/NTMakefile index 47ef31288..a3fc76a36 100644 --- a/NTMakefile +++ b/NTMakefile @@ -1,7 +1,7 @@ CC = cl /TC /c /nologo LD = link /nologo -MW_CFLAGS = /Iinclude /Iexternal\libz\include /D_MILSKO /D_MILSKO_BUILD /DUSE_GDI /DUSE_STB_TRUETYPE /DUSE_STB_IMAGE /DSTBI_NO_SIMD +MW_CFLAGS = /Iinclude /Iexternal\libz\include /D_MILSKO /D_MILSKO_BUILD /DUSE_GDI /DUSE_STB_IMAGE /DSTBI_NO_SIMD /DUSE_GDI_TEXT MW_LDFLAGS = /DLL EXE_CFLAGS = /Iinclude EXE_LDFLAGS = diff --git a/WatMakefile b/WatMakefile index 5f3e00010..afeb56061 100644 --- a/WatMakefile +++ b/WatMakefile @@ -1,7 +1,7 @@ CC = wcc386 -bt=nt -q LD = wlink option quiet -MW_CFLAGS = -bd -i=include -i=external/libz/include -d_MILSKO -d_MILSKO_BUILD -dUSE_GDI -dUSE_STB_TRUETYPE -dUSE_STB_IMAGE -dSTBI_NO_SIMD +MW_CFLAGS = -bd -i=include -i=external/libz/include -d_MILSKO -d_MILSKO_BUILD -dUSE_GDI -dUSE_STB_IMAGE -dSTBI_NO_SIMD -dUSE_GDI_TEXT MW_LDFLAGS = system nt_dll EXE_CFLAGS = -i=include EXE_LDFLAGS = system nt diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index 4944105de..edad6bf4e 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -248,6 +248,10 @@ struct _MwMouse { int button; }; +enum _MwTTFType { + MwTTFTypeUNKNOWN = 0 +}; + struct _MwTTFInfo { char* family; int weight; diff --git a/src/text/gdi.c b/src/text/gdi.c index 0d5913dd0..cf4e655a3 100644 --- a/src/text/gdi.c +++ b/src/text/gdi.c @@ -1,6 +1,11 @@ #ifdef USE_GDI_TEXT #include +static HANDLE WINAPI (*AddFontMemResourceEx)(PVOID pFileView, DWORD cjSize, PVOID pvResrved, DWORD* pNumFonts) = NULL; +static BOOL WINAPI (*RemoveFontMemResourceEx)(HANDLE h) = NULL; +static HANDLE WINAPI AddFontMemResourceExPolyFill(PVOID pFileView, DWORD cjSize, PVOID pvResrved, DWORD* pNumFonts); +static BOOL WINAPI RemoveFontMemResourceExPolyFill(HANDLE h); + struct _MwFLFont { HANDLE handle; HFONT font; @@ -121,15 +126,30 @@ static void* GDI_MwFontLoad(unsigned char* data, unsigned int size, int px) { ttf->dc = GetDC(NULL); - if((ttf->handle = AddFontMemResourceEx(data, size, 0, &c)) == NULL) { - ReleaseDC(NULL, ttf->dc); - MwTTFFreeInfo(info); - free(ttf); - return NULL; - } + ttf->handle = NULL; - if((ttf->font = CreateFont(-px, 0, 0, 0, info->weight, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, info->family)) == NULL) { - RemoveFontMemResourceEx(ttf->handle); + if(AddFontMemResourceEx) { + if((ttf->handle = AddFontMemResourceEx(data, size, 0, &c)) == NULL) { + ReleaseDC(NULL, ttf->dc); + MwTTFFreeInfo(info); + free(ttf); + return NULL; + } + } /*else { + if((ttf->handle = AddFontMemResourceExPolyFill(data, size, 0, &c)) == NULL) { + ReleaseDC(NULL, ttf->dc); + MwTTFFreeInfo(info); + free(ttf); + return NULL; + } + }*/ + + if((ttf->font = CreateFont(-px, 0, 0, 0, info->weight, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, ttf->handle ? info->family : "Sans Serif")) == NULL) { + if(RemoveFontMemResourceEx) { + RemoveFontMemResourceEx(ttf->handle); + } else { + RemoveFontMemResourceExPolyFill(ttf->handle); + } ReleaseDC(NULL, ttf->dc); MwTTFFreeInfo(info); free(ttf); @@ -147,12 +167,97 @@ static void GDI_MwFontFree(void* handle) { MwFLFont ttf = handle; DeleteObject(ttf->font); - RemoveFontMemResourceEx(ttf->handle); + if(RemoveFontMemResourceEx) { + RemoveFontMemResourceEx(ttf->handle); + } else { + RemoveFontMemResourceExPolyFill(ttf->handle); + } ReleaseDC(NULL, ttf->dc); free(ttf); } +static HANDLE WINAPI AddFontMemResourceExPolyFill(PVOID pFileView, DWORD cjSize, PVOID pvResrved, DWORD* pNumFonts) { + CHAR temp_path_dir[MAX_PATH]; + CHAR temp_path_name[MAX_PATH]; + HANDLE tempFile = NULL; + int hr; + + (void)pvResrved; + + hr = GetTempPathA(MAX_PATH, temp_path_dir); + if(hr == 0) { + printf("GetTempPathA error %08lX\n", hr); + return hr; + } + hr = GetTempFileNameA(temp_path_dir, TEXT("MILSKO"), 0, temp_path_name); + if(hr == 0) { + printf("GetTempFileNameA error %08lX\n", hr); + return hr; + } + + printf("extracting mem font to %s\n", temp_path_name); + + tempFile = CreateFileA(temp_path_name, + GENERIC_WRITE, + 0, + NULL, + CREATE_ALWAYS, + FILE_ATTRIBUTE_NORMAL | FILE_FLAG_DELETE_ON_CLOSE, + NULL); + + if(tempFile == INVALID_HANDLE_VALUE) { + DWORD err = GetLastError(); + if(err == ERROR_ALREADY_EXISTS) { + tempFile = CreateFileA(temp_path_name, + GENERIC_WRITE, + 0, + NULL, + OPEN_ALWAYS, + FILE_ATTRIBUTE_NORMAL | FILE_FLAG_DELETE_ON_CLOSE, + NULL); + printf("%d\n", tempFile); + if(tempFile != INVALID_HANDLE_VALUE) { + goto success; + } else { + err = GetLastError(); + } + } + printf("CreateFileA error %08lX\n", err); + return hr; + } + +success: + hr = WriteFile(tempFile, pFileView, cjSize, NULL, NULL); + if(hr != 0) { + printf("WriteFile error %08lX\n", hr); + return 0; + } + + *pNumFonts = AddFontResource(temp_path_name); + + return tempFile; +}; +static BOOL WINAPI RemoveFontMemResourceExPolyFill(HANDLE h) { + if(h) + CloseHandle(h); + return TRUE; +}; + int MwFL_GDISetup(void) { + void* gdilib = LoadLibrary("gdi32.dll"); + if(!gdilib) { + printf("gdi32.dll not found(?????)\n"); + } else { + AddFontMemResourceEx = (void*)GetProcAddress(gdilib, "AddFontMemResourceEx"); + if(!AddFontMemResourceEx) { + AddFontMemResourceEx = AddFontMemResourceExPolyFill; + } + RemoveFontMemResourceEx = (void*)GetProcAddress(gdilib, "RemoveFontMemResourceEx"); + if(!RemoveFontMemResourceEx) { + RemoveFontMemResourceEx = RemoveFontMemResourceExPolyFill; + } + } + MwFLDrawText = GDI_MwDrawText; MwFLTextWidth = GDI_MwTextWidth; MwFLTextHeight = GDI_MwTextHeight; @@ -160,4 +265,5 @@ int MwFL_GDISetup(void) { MwFLFontFree = GDI_MwFontFree; return 0; } + #endif diff --git a/tools/genmk.pl b/tools/genmk.pl index 4b419b103..9903c116d 100755 --- a/tools/genmk.pl +++ b/tools/genmk.pl @@ -116,7 +116,7 @@ sub generate { print(OUT "LD = $link\n"); print(OUT "\n"); print(OUT -"MW_CFLAGS = ${cdll} ${inc}include ${inc}external${dir}libz${dir}include ${def}_MILSKO ${def}_MILSKO_BUILD ${def}USE_GDI ${def}USE_STB_TRUETYPE ${def}USE_STB_IMAGE ${def}STBI_NO_SIMD\n" +"MW_CFLAGS = ${cdll} ${inc}include ${inc}external${dir}libz${dir}include ${def}_MILSKO ${def}_MILSKO_BUILD ${def}USE_GDI ${def}USE_STB_IMAGE ${def}STBI_NO_SIMD ${def}USE_GDI_TEXT\n" ); print(OUT "MW_LDFLAGS = $dll\n"); print(OUT "EXE_CFLAGS = ${inc}include\n"); From 3dc4641ff92dcfa79a9d1854f589c47e53cb901b Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 19 Jul 2026 20:52:07 -0700 Subject: [PATCH 791/836] underscore prefix for gdi dynloaded functions --- .gitignore | 2 ++ src/text/gdi.c | 42 +++++++++++++++++++++--------------------- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index 4e564952f..58b172ada 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,8 @@ compile_flags.txt .DS_Store /vms /BorMakefile +*.err +*.zip *.pef *.dsk diff --git a/src/text/gdi.c b/src/text/gdi.c index cf4e655a3..1ef198583 100644 --- a/src/text/gdi.c +++ b/src/text/gdi.c @@ -1,10 +1,10 @@ #ifdef USE_GDI_TEXT #include -static HANDLE WINAPI (*AddFontMemResourceEx)(PVOID pFileView, DWORD cjSize, PVOID pvResrved, DWORD* pNumFonts) = NULL; -static BOOL WINAPI (*RemoveFontMemResourceEx)(HANDLE h) = NULL; -static HANDLE WINAPI AddFontMemResourceExPolyFill(PVOID pFileView, DWORD cjSize, PVOID pvResrved, DWORD* pNumFonts); -static BOOL WINAPI RemoveFontMemResourceExPolyFill(HANDLE h); +static HANDLE WINAPI (*_AddFontMemResourceEx)(PVOID pFileView, DWORD cjSize, PVOID pvResrved, DWORD* pNumFonts) = NULL; +static BOOL WINAPI (*_RemoveFontMemResourceEx)(HANDLE h) = NULL; +static HANDLE WINAPI _AddFontMemResourceExPolyFill(PVOID pFileView, DWORD cjSize, PVOID pvResrved, DWORD* pNumFonts); +static BOOL WINAPI _RemoveFontMemResourceExPolyFill(HANDLE h); struct _MwFLFont { HANDLE handle; @@ -128,15 +128,15 @@ static void* GDI_MwFontLoad(unsigned char* data, unsigned int size, int px) { ttf->handle = NULL; - if(AddFontMemResourceEx) { - if((ttf->handle = AddFontMemResourceEx(data, size, 0, &c)) == NULL) { + if(_AddFontMemResourceEx) { + if((ttf->handle = _AddFontMemResourceEx(data, size, 0, &c)) == NULL) { ReleaseDC(NULL, ttf->dc); MwTTFFreeInfo(info); free(ttf); return NULL; } } /*else { - if((ttf->handle = AddFontMemResourceExPolyFill(data, size, 0, &c)) == NULL) { + if((ttf->handle = _AddFontMemResourceExPolyFill(data, size, 0, &c)) == NULL) { ReleaseDC(NULL, ttf->dc); MwTTFFreeInfo(info); free(ttf); @@ -145,10 +145,10 @@ static void* GDI_MwFontLoad(unsigned char* data, unsigned int size, int px) { }*/ if((ttf->font = CreateFont(-px, 0, 0, 0, info->weight, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, ttf->handle ? info->family : "Sans Serif")) == NULL) { - if(RemoveFontMemResourceEx) { - RemoveFontMemResourceEx(ttf->handle); + if(_RemoveFontMemResourceEx) { + _RemoveFontMemResourceEx(ttf->handle); } else { - RemoveFontMemResourceExPolyFill(ttf->handle); + _RemoveFontMemResourceExPolyFill(ttf->handle); } ReleaseDC(NULL, ttf->dc); MwTTFFreeInfo(info); @@ -167,16 +167,16 @@ static void GDI_MwFontFree(void* handle) { MwFLFont ttf = handle; DeleteObject(ttf->font); - if(RemoveFontMemResourceEx) { - RemoveFontMemResourceEx(ttf->handle); + if(_RemoveFontMemResourceEx) { + _RemoveFontMemResourceEx(ttf->handle); } else { - RemoveFontMemResourceExPolyFill(ttf->handle); + _RemoveFontMemResourceExPolyFill(ttf->handle); } ReleaseDC(NULL, ttf->dc); free(ttf); } -static HANDLE WINAPI AddFontMemResourceExPolyFill(PVOID pFileView, DWORD cjSize, PVOID pvResrved, DWORD* pNumFonts) { +static HANDLE WINAPI _AddFontMemResourceExPolyFill(PVOID pFileView, DWORD cjSize, PVOID pvResrved, DWORD* pNumFonts) { CHAR temp_path_dir[MAX_PATH]; CHAR temp_path_name[MAX_PATH]; HANDLE tempFile = NULL; @@ -237,7 +237,7 @@ success: return tempFile; }; -static BOOL WINAPI RemoveFontMemResourceExPolyFill(HANDLE h) { +static BOOL WINAPI _RemoveFontMemResourceExPolyFill(HANDLE h) { if(h) CloseHandle(h); return TRUE; @@ -248,13 +248,13 @@ int MwFL_GDISetup(void) { if(!gdilib) { printf("gdi32.dll not found(?????)\n"); } else { - AddFontMemResourceEx = (void*)GetProcAddress(gdilib, "AddFontMemResourceEx"); - if(!AddFontMemResourceEx) { - AddFontMemResourceEx = AddFontMemResourceExPolyFill; + _AddFontMemResourceEx = (void*)GetProcAddress(gdilib, "_AddFontMemResourceEx"); + if(!_AddFontMemResourceEx) { + _AddFontMemResourceEx = _AddFontMemResourceExPolyFill; } - RemoveFontMemResourceEx = (void*)GetProcAddress(gdilib, "RemoveFontMemResourceEx"); - if(!RemoveFontMemResourceEx) { - RemoveFontMemResourceEx = RemoveFontMemResourceExPolyFill; + _RemoveFontMemResourceEx = (void*)GetProcAddress(gdilib, "_RemoveFontMemResourceEx"); + if(!_RemoveFontMemResourceEx) { + _RemoveFontMemResourceEx = _RemoveFontMemResourceExPolyFill; } } From d0d2339d6bd17892869e82a1617b2617c70fd055 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 19 Jul 2026 20:56:34 -0700 Subject: [PATCH 792/836] fix --- include/Mw/TypeDefs.h | 4 ---- src/text/gdi.c | 6 +++--- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index edad6bf4e..4944105de 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -248,10 +248,6 @@ struct _MwMouse { int button; }; -enum _MwTTFType { - MwTTFTypeUNKNOWN = 0 -}; - struct _MwTTFInfo { char* family; int weight; diff --git a/src/text/gdi.c b/src/text/gdi.c index 1ef198583..457b4dc20 100644 --- a/src/text/gdi.c +++ b/src/text/gdi.c @@ -1,8 +1,8 @@ #ifdef USE_GDI_TEXT #include -static HANDLE WINAPI (*_AddFontMemResourceEx)(PVOID pFileView, DWORD cjSize, PVOID pvResrved, DWORD* pNumFonts) = NULL; -static BOOL WINAPI (*_RemoveFontMemResourceEx)(HANDLE h) = NULL; +static HANDLE(WINAPI* _AddFontMemResourceEx)(PVOID pFileView, DWORD cjSize, PVOID pvResrved, DWORD* pNumFonts) = NULL; +static BOOL(WINAPI* _RemoveFontMemResourceEx)(HANDLE h) = NULL; static HANDLE WINAPI _AddFontMemResourceExPolyFill(PVOID pFileView, DWORD cjSize, PVOID pvResrved, DWORD* pNumFonts); static BOOL WINAPI _RemoveFontMemResourceExPolyFill(HANDLE h); @@ -28,7 +28,7 @@ static int GDI_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const c tw = MwTextWidth(handle, ttf, text); th = MwTextHeight(handle, ttf, text); - if(handle->lowlevel->common.type == MwLLBackendGDI) { + if(handle->lowlevel->common.type == MwLLBackendGDI && MwGetInteger(handle, MwNmodernLook) == MwFALMwFALSE) { HFONT old_font = SelectObject(handle->lowlevel->gdi.hDC, ttf->font); int old_bkmode = SetBkMode(handle->lowlevel->gdi.hDC, TRANSPARENT); COLORREF old_color = SetTextColor(handle->lowlevel->gdi.hDC, color->gdi.color); From 2c2e21503f1d648d53aa88b1c9b522e1f9663155 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 19 Jul 2026 20:58:32 -0700 Subject: [PATCH 793/836] MwFALMwFALSE -> MwFALSE --- src/text/gdi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/text/gdi.c b/src/text/gdi.c index 457b4dc20..e0f19bf28 100644 --- a/src/text/gdi.c +++ b/src/text/gdi.c @@ -28,7 +28,7 @@ static int GDI_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const c tw = MwTextWidth(handle, ttf, text); th = MwTextHeight(handle, ttf, text); - if(handle->lowlevel->common.type == MwLLBackendGDI && MwGetInteger(handle, MwNmodernLook) == MwFALMwFALSE) { + if(handle->lowlevel->common.type == MwLLBackendGDI && MwGetInteger(handle, MwNmodernLook) == MwFALSE) { HFONT old_font = SelectObject(handle->lowlevel->gdi.hDC, ttf->font); int old_bkmode = SetBkMode(handle->lowlevel->gdi.hDC, TRANSPARENT); COLORREF old_color = SetTextColor(handle->lowlevel->gdi.hDC, color->gdi.color); From f91fc66fb61ee7246e49cfed0eec8ba5f13d93ca Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 19 Jul 2026 23:01:43 -0700 Subject: [PATCH 794/836] make some updates to get classicmacos.c working but its probably over --- CMakeLists.txt | 4 ++-- src/backend/classicmacos.c | 27 ++++++++++++++++++++++----- src/core.c | 8 ++------ src/dialog/messagebox.c | 2 +- 4 files changed, 27 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fde6fd113..b9e90d0f7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,8 +12,8 @@ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) if(WIN32) -set(CMAKE_STATIC_LIBRARY_PREFIX "") -set(CMAKE_SHARED_LIBRARY_PREFIX "") + set(CMAKE_STATIC_LIBRARY_PREFIX "") + set(CMAKE_SHARED_LIBRARY_PREFIX "") endif() option(MW_CLASSIC_THEME "Use classic theme" OFF) diff --git a/src/backend/classicmacos.c b/src/backend/classicmacos.c index fb2549ea7..956e1e047 100644 --- a/src/backend/classicmacos.c +++ b/src/backend/classicmacos.c @@ -1,6 +1,5 @@ #include #include -#include #include "../../external/stb_ds.h" @@ -65,7 +64,11 @@ static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLL } ClosePoly(); - FillCPoly(p, &qd.ltGray); + + PenMode(patCopy); + RGBForeColor(&col); + PaintPoly(p); + KillPoly(p); EndUpdate(handle->cmacos.window); @@ -132,9 +135,23 @@ static void MwLLNextEventImpl(MwLL handle) { switch(event.what) { case updateEvt: { - } - // MwLLDispatch(handle, draw, NULL); - break; + /* + This is our blocker for getting anything running. + This needs to be called at this point to start drawing anything. + ...It locks up and/or crashes the entire system. At least on SheepShaver. + It's not a stack overflow, it's not anything in the drawing functions. + It's *something* else. But because Classic Mac OS development is like + digging up forbidden tombs while stabbing yourself in the eye several times, + I don't know what. + + Fun fact: for as much as everyone loves to glaze about AI being the future + of programming, even Claude got confused when I gave up and tried to ask it + for help. Information about Classic Mac OS probably takes up 0.0001% of its + knowledge base; god knows it's hard enough finding information online about + this! + */ + MwLLDispatch(handle, draw, NULL); + } break; case osEvt: break; case mouseUp: diff --git a/src/core.c b/src/core.c index cb39b1cb0..98da305c2 100644 --- a/src/core.c +++ b/src/core.c @@ -1063,9 +1063,7 @@ int MwLibraryInit(void) { #ifdef USE_GDI MwLLGDICallInit, #endif -#ifdef CLASSIC_MAC_OS - MwLLClassicMacOSCallInit, -#endif + #ifdef USE_HAIKU MwLLHaikuCallInit, #endif @@ -1109,9 +1107,7 @@ int MwLibraryInit(void) { #ifdef USE_GDI " GDI" #endif -#ifdef CLASSIC_MAC_OS - " ClassicMacOS" -#endif + "\n"); #endif return 1; diff --git a/src/dialog/messagebox.c b/src/dialog/messagebox.c index f7084ab2e..6a96f6d2f 100644 --- a/src/dialog/messagebox.c +++ b/src/dialog/messagebox.c @@ -70,7 +70,7 @@ MwWidget MwMessageBox(MwWidget handle, const char* text, const char* title, unsi if((flag & MwMB_ICONMASK) != 0) { MwWidget icon; MwLLPixmap px; - unsigned int* data = NULL; + MwU32* data = NULL; icon = MwCreateWidget(MwImageClass, "image", window, 8, (h - 48) / 2, 48, 48); From d2191ef33a490129c291547f0ebfc923ef58d959 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 19 Jul 2026 23:03:09 -0700 Subject: [PATCH 795/836] accidentally removed classic mac os init code from core.c --- src/core.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/core.c b/src/core.c index 98da305c2..cb39b1cb0 100644 --- a/src/core.c +++ b/src/core.c @@ -1063,7 +1063,9 @@ int MwLibraryInit(void) { #ifdef USE_GDI MwLLGDICallInit, #endif - +#ifdef CLASSIC_MAC_OS + MwLLClassicMacOSCallInit, +#endif #ifdef USE_HAIKU MwLLHaikuCallInit, #endif @@ -1107,7 +1109,9 @@ int MwLibraryInit(void) { #ifdef USE_GDI " GDI" #endif - +#ifdef CLASSIC_MAC_OS + " ClassicMacOS" +#endif "\n"); #endif return 1; From 6c6b97d92e533a27d5594e7bffed3e739bc9b13c Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 19 Jul 2026 23:06:26 -0700 Subject: [PATCH 796/836] classicmacos: remove dupl setrgb/penmode call --- src/backend/classicmacos.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/backend/classicmacos.c b/src/backend/classicmacos.c index 956e1e047..d3da454b1 100644 --- a/src/backend/classicmacos.c +++ b/src/backend/classicmacos.c @@ -52,9 +52,6 @@ static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLL col.green = color->common.green * 0x101; col.blue = color->common.blue * 0x101; - RGBForeColor(&col); - PenMode(patCopy); - for(i = 0; i < points_count; i++) { if(i == 0) { MoveTo(points[i].x, points[i].y); From e2aa8dec7b025a5400e6b19490590abdf85697d7 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 20 Jul 2026 21:18:26 -0700 Subject: [PATCH 797/836] wayland size limit should only apply to toplevels oops --- src/backend/wayland/wayland.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index a0b700c3d..47560865f 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -177,8 +177,10 @@ static void xdg_toplevel_configure(void* data, } } - if(width < 50) width = 50; - if(height < 50) height = 50; + if(self->wayland.type == MwLL_WAYLAND_TOPLEVEL) { + if(width < 50) width = 50; + if(height < 50) height = 50; + } MwLLWaylandRegionInvalidate(self); self->wayland.ww = width; @@ -1115,8 +1117,10 @@ static void MwLLSetWHImpl(MwLL handle, int w, int h) { } /* Prevent an integer underflow when the w/h is too low */ - if(w < 50) w = 50; - if(h < 50) h = 50; + if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { + if(w < 50) w = 50; + if(h < 50) h = 50; + } handle->wayland.ww = w; handle->wayland.wh = h; From 529309df3719081033e3b9fde02e5debb6264fdc Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 20 Jul 2026 21:56:42 -0700 Subject: [PATCH 798/836] wayland: fix size hints --- include/Mw/LowLevel/Wayland.h | 1 + src/backend/wayland/wayland.c | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/include/Mw/LowLevel/Wayland.h b/include/Mw/LowLevel/Wayland.h index 1de48b32b..ccd1f2f0f 100644 --- a/include/Mw/LowLevel/Wayland.h +++ b/include/Mw/LowLevel/Wayland.h @@ -320,6 +320,7 @@ struct _MwLLWayland { MwRect clipping_rect; MwBool no; + MwBool changing; MwBool detatching; MwPoint detach_point; diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 47560865f..45f160a3f 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -1604,6 +1604,7 @@ static void MwLLDetachImpl(MwLL handle, MwPoint* point) { p = p->wayland.parent; } + handle->wayland.changing = MwTRUE; handle->wayland.detatching = MwTRUE; handle->wayland.detach_point = *point; handle->wayland.detach_point.x += x; @@ -1637,6 +1638,10 @@ static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int if(handle->wayland.type == MwLL_WAYLAND_TOPLEVEL) { xdg_toplevel_set_min_size(handle->wayland.toplevel->xdg_top_level, minx, miny); xdg_toplevel_set_max_size(handle->wayland.toplevel->xdg_top_level, maxx, maxy); + + wl_surface_commit(handle->wayland.framebuffer.surface); + wl_surface_commit(handle->wayland.backbuffer.surface); + printf("h??\n"); } } @@ -1753,6 +1758,8 @@ static void MwLLMakeToolWindowImpl(MwLL handle) { } else { handle->wayland.type_to_be = MwLL_WAYLAND_POPUP; } + + handle->wayland.changing = MwTRUE; } static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { @@ -1783,6 +1790,11 @@ static void MwLLEndStateChangeImpl(MwLL handle) { int x, y; WIDGET_CHECK(handle); + if(!handle->wayland.changing) { + return; + } + handle->wayland.changing = MwFALSE; + x = handle->wayland.detatching ? handle->wayland.detach_point.x : handle->wayland.x; y = handle->wayland.detatching ? handle->wayland.detach_point.y : handle->wayland.y; From 5a660bfe90982f162671c7df024cda2536ae3b05 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Mon, 20 Jul 2026 22:02:13 -0700 Subject: [PATCH 799/836] remove accidental debug print --- src/backend/wayland/wayland.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 45f160a3f..48d6c7601 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -1641,7 +1641,6 @@ static void MwLLSetSizeHintsImpl(MwLL handle, int minx, int miny, int maxx, int wl_surface_commit(handle->wayland.framebuffer.surface); wl_surface_commit(handle->wayland.backbuffer.surface); - printf("h??\n"); } } From 80e3d25147e1aa205fc67aa83be79925256b5daa Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Mon, 20 Jul 2026 23:39:02 -0700 Subject: [PATCH 800/836] gdi text loading should be loading the right functions Oops --- src/text/gdi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/text/gdi.c b/src/text/gdi.c index e0f19bf28..b764353d7 100644 --- a/src/text/gdi.c +++ b/src/text/gdi.c @@ -248,11 +248,11 @@ int MwFL_GDISetup(void) { if(!gdilib) { printf("gdi32.dll not found(?????)\n"); } else { - _AddFontMemResourceEx = (void*)GetProcAddress(gdilib, "_AddFontMemResourceEx"); + _AddFontMemResourceEx = (void*)GetProcAddress(gdilib, "AddFontMemResourceEx"); if(!_AddFontMemResourceEx) { _AddFontMemResourceEx = _AddFontMemResourceExPolyFill; } - _RemoveFontMemResourceEx = (void*)GetProcAddress(gdilib, "_RemoveFontMemResourceEx"); + _RemoveFontMemResourceEx = (void*)GetProcAddress(gdilib, "RemoveFontMemResourceEx"); if(!_RemoveFontMemResourceEx) { _RemoveFontMemResourceEx = _RemoveFontMemResourceExPolyFill; } From 2c19489acd7a005dbfe0c55914f2a66769610865 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 21 Jul 2026 00:15:33 -0700 Subject: [PATCH 801/836] entry ending box should tick --- include/Mw/TypeDefs.h | 3 ++ src/core.c | 7 +-- src/widget/entry.c | 99 +++++++++++++++++++++++++++++++------------ 3 files changed, 78 insertions(+), 31 deletions(-) diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index 4944105de..5989e1ba4 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -117,6 +117,7 @@ struct _MwWidget { int top_step; MwWidget* draw_queue; MwWidget* resize_queue; + MwWidget* monitored_entries; int berserk; long last_tick; @@ -138,6 +139,8 @@ struct _MwEntry { int cursor; int right; int length; + int active; + int cursor_blink_timer; MwPoint mouse; }; diff --git a/src/core.c b/src/core.c index cb39b1cb0..7059840f6 100644 --- a/src/core.c +++ b/src/core.c @@ -262,9 +262,10 @@ static MwWidget MwCreateWidget_Internal(MwClass widget_class, const char* name, h->opaque = NULL; h->user = NULL; - h->top_step = 0; - h->draw_queue = NULL; - h->resize_queue = NULL; + h->top_step = 0; + h->draw_queue = NULL; + h->resize_queue = NULL; + h->monitored_entries = NULL; if(parent == NULL) arrput(h->tick_list, h); diff --git a/src/widget/entry.c b/src/widget/entry.c index 85807688f..6fde9caf7 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -1,12 +1,18 @@ #include +#include "stb_ds.h" static int wcreate(MwWidget handle) { - MwEntry t = malloc(sizeof(*t)); + MwEntry t = malloc(sizeof(*t)); + MwWidget topmost_parent = handle->parent; - t->cursor = 0; - t->right = 0; - t->length = 0; - handle->internal = t; + t->cursor = 0; + t->right = 0; + t->length = 0; + t->cursor_blink_timer = 0; + handle->internal = t; + + while(topmost_parent->parent) topmost_parent = topmost_parent->parent; + arrpush(topmost_parent->monitored_entries, handle); MwSetDefault(handle); @@ -16,9 +22,27 @@ static int wcreate(MwWidget handle) { } static void destroy(MwWidget handle) { + int i; + MwWidget topmost_parent = handle->parent; + + while(topmost_parent->parent) topmost_parent = topmost_parent->parent; + for(i = 0; i < arrlen(topmost_parent->monitored_entries); i++) { + if(topmost_parent->monitored_entries[i] == handle) { + arrdel(topmost_parent->monitored_entries, i); + break; + } + } free(handle->internal); } - +static void tick(MwWidget handle) { + MwEntry t = handle->internal; + if(t->active) { + if(++t->cursor_blink_timer >= 30) { + t->cursor_blink_timer = 0; + } + MwDispatch(handle, draw); + } +} static void draw(MwWidget handle) { MwRect r; MwEntry t = handle->internal; @@ -71,11 +95,13 @@ static void draw(MwWidget handle) { for(i = 0; i < textlen; i++) show[i] = 'M'; show[i] = 0; - currc.x = p.x + MwTextWidth(handle, font, show); - currc.y = (r.height - h) / 2 + MwDefaultBorderWidth(handle); - currc.width = 1; - currc.height = h; - MwDrawRect(handle, &currc, text); + if(t->active && t->cursor_blink_timer <= 15) { + currc.x = p.x + MwTextWidth(handle, font, show); + currc.y = (r.height - h) / 2 + MwDefaultBorderWidth(handle); + currc.width = 1; + currc.height = h; + MwDrawRect(handle, &currc, text); + } free(show); } @@ -148,6 +174,23 @@ static void mouse_up(MwWidget handle, void* ptr) { #define mouse_up MwForceRender2 #endif +static void mouse_down(MwWidget handle, void* ptr) { + int i = 0; + MwEntry t = handle->internal; + MwWidget topmost_parent = handle->parent; + + while(topmost_parent->parent) topmost_parent = topmost_parent->parent; + + for(i = 0; i < arrlen(topmost_parent->monitored_entries); i++) { + MwEntry t = topmost_parent->monitored_entries[i]->internal; + t->active = MwFALSE; + t->cursor_blink_timer = 0; + MwDispatch(topmost_parent->monitored_entries[i], draw); + } + t->active = MwTRUE; + MwForceRender2(handle, NULL); +} + static void prop_change(MwWidget handle, const char* prop) { if(strcmp(prop, MwNtext) == 0 || strcmp(prop, MwNhideInput) == 0) MwForceRender(handle); @@ -187,23 +230,23 @@ static void clipboard(MwWidget handle, const char* data) { } MwClassRec MwEntryClassRec = { - wcreate, /* create */ - destroy, /* destroy */ - draw, /* draw */ - NULL, /* click */ - NULL, /* parent_resize */ - prop_change, /* prop_change */ - NULL, /* mouse_move */ - mouse_up, /* mouse_up */ - MwForceRender2, /* mouse_down */ - key, /* key */ - NULL, /* execute */ - NULL, /* tick */ - NULL, /* resize */ - NULL, /* children_update */ - NULL, /* children_prop_change */ - clipboard, /* clipboard */ - NULL, /* props_change */ + wcreate, /* create */ + destroy, /* destroy */ + draw, /* draw */ + NULL, /* click */ + NULL, /* parent_resize */ + prop_change, /* prop_change */ + NULL, /* mouse_move */ + mouse_up, /* mouse_up */ + mouse_down, /* mouse_down */ + key, /* key */ + NULL, /* execute */ + tick, /* tick */ + NULL, /* resize */ + NULL, /* children_update */ + NULL, /* children_prop_change */ + clipboard, /* clipboard */ + NULL, /* props_change */ NULL, NULL, NULL}; From 1103751f578434c9f72128bd57be7d9c315abddc Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 21 Jul 2026 00:24:37 -0700 Subject: [PATCH 802/836] fix stb_ds include --- src/widget/entry.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widget/entry.c b/src/widget/entry.c index 6fde9caf7..cb170ed2c 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -1,5 +1,5 @@ #include -#include "stb_ds.h" +#include static int wcreate(MwWidget handle) { MwEntry t = malloc(sizeof(*t)); From 639f8e619fbab38734dc20842fb9e2fa7bf1f77f Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 21 Jul 2026 00:26:58 -0700 Subject: [PATCH 803/836] fix stb_ds include --- src/widget/entry.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widget/entry.c b/src/widget/entry.c index cb170ed2c..65cd90382 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -1,5 +1,5 @@ #include -#include +#include "../../external/stb_ds.h" static int wcreate(MwWidget handle) { MwEntry t = malloc(sizeof(*t)); From 6db8ce17c31d7f5687bf90ce9500a9027695cb95 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 21 Jul 2026 01:25:20 -0700 Subject: [PATCH 804/836] changelog --- CHANGELOG.txt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 CHANGELOG.txt diff --git a/CHANGELOG.txt b/CHANGELOG.txt new file mode 100644 index 000000000..8a95ba9de --- /dev/null +++ b/CHANGELOG.txt @@ -0,0 +1,16 @@ +========================= 1.4 ========================= +- CMakeLists.txt downgraded to version 3.13 to allow compiling on Windows XP +- CMake build now generates a pkgconfig file. +- GDI backend now natively uses GDI for text rendering +- Widgets can now be disabled with MwNdisabled +- Added `MwTabFocus` for letting a tab widget steal focus. +- New table widget (`MwTableClass`). +- Added `MwWindowShouldClose` for letting custom loops know when a window should close. +- Menu widget works better under compositors that use CSD. +- Remove VMS build files +- Wayland backend: + - Can now create layer surfaces (Use `MwLLMakeToolWindow` on a parentless window) + - Now properly handles keys being held down + - has drastically improved CSD (functionality wise) + - Uses KMSDRM directly for the OpenGL widget instead of wl_egl for a smoother experience + - Various overall performance improvements putting it on the same level as the X11 backend finally From 6843d6ae050882a14d083e8bc843dd151b97de73 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 21 Jul 2026 01:26:37 -0700 Subject: [PATCH 805/836] changelog had item in wrong place --- CHANGELOG.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 8a95ba9de..a303c985f 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -6,7 +6,6 @@ - Added `MwTabFocus` for letting a tab widget steal focus. - New table widget (`MwTableClass`). - Added `MwWindowShouldClose` for letting custom loops know when a window should close. -- Menu widget works better under compositors that use CSD. - Remove VMS build files - Wayland backend: - Can now create layer surfaces (Use `MwLLMakeToolWindow` on a parentless window) @@ -14,3 +13,4 @@ - has drastically improved CSD (functionality wise) - Uses KMSDRM directly for the OpenGL widget instead of wl_egl for a smoother experience - Various overall performance improvements putting it on the same level as the X11 backend finally + - Menu widget works better under compositors that use CSD. From 6a635fc1dfa2c3f71dd839cb2d4c96a8bf23a81d Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 21 Jul 2026 01:30:33 -0700 Subject: [PATCH 806/836] changelog should mention newest entry change --- CHANGELOG.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index a303c985f..83daed86b 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -7,6 +7,7 @@ - New table widget (`MwTableClass`). - Added `MwWindowShouldClose` for letting custom loops know when a window should close. - Remove VMS build files +- Entry widgets now have blinking cursor that appears only when you hover over the widget. - Wayland backend: - Can now create layer surfaces (Use `MwLLMakeToolWindow` on a parentless window) - Now properly handles keys being held down From 90f69b63d4af26b1c20003d9af9610b622a61d1e Mon Sep 17 00:00:00 2001 From: IoIxD Date: Tue, 21 Jul 2026 01:45:29 -0700 Subject: [PATCH 807/836] version bump --- README.txt | 2 +- include/Mw/Version.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.txt b/README.txt index fbf3732c7..0f57f905d 100644 --- a/README.txt +++ b/README.txt @@ -1,5 +1,5 @@ -Greetings - Welcome to the Milsko GUI Toolkit (Version 1.3) +Greetings - Welcome to the Milsko GUI Toolkit (Version 1.4) This document contains a brief summary of the contents of this source distributions and building instructions for Milsko GUI Toolkit. diff --git a/include/Mw/Version.h b/include/Mw/Version.h index 5fb57f6b8..9821dc6a4 100644 --- a/include/Mw/Version.h +++ b/include/Mw/Version.h @@ -23,7 +23,7 @@ /*! * @brief Version in string */ -#define MwVERSION "1.3" +#define MwVERSION "1.4" /*! * @brief Version in string From 7d6f6ca93ab0d1f6eeb0da5c665bacaf78a53b8f Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Tue, 21 Jul 2026 19:37:34 -0700 Subject: [PATCH 808/836] fix gdi text on mingw --- src/text/gdi.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/text/gdi.c b/src/text/gdi.c index b764353d7..ab5466469 100644 --- a/src/text/gdi.c +++ b/src/text/gdi.c @@ -180,19 +180,19 @@ static HANDLE WINAPI _AddFontMemResourceExPolyFill(PVOID pFileView, DWORD cjSize CHAR temp_path_dir[MAX_PATH]; CHAR temp_path_name[MAX_PATH]; HANDLE tempFile = NULL; - int hr; + DWORD hr; (void)pvResrved; hr = GetTempPathA(MAX_PATH, temp_path_dir); if(hr == 0) { printf("GetTempPathA error %08lX\n", hr); - return hr; + return NULL; } hr = GetTempFileNameA(temp_path_dir, TEXT("MILSKO"), 0, temp_path_name); if(hr == 0) { printf("GetTempFileNameA error %08lX\n", hr); - return hr; + return NULL; } printf("extracting mem font to %s\n", temp_path_name); @@ -223,14 +223,14 @@ static HANDLE WINAPI _AddFontMemResourceExPolyFill(PVOID pFileView, DWORD cjSize } } printf("CreateFileA error %08lX\n", err); - return hr; + return NULL; } success: hr = WriteFile(tempFile, pFileView, cjSize, NULL, NULL); if(hr != 0) { printf("WriteFile error %08lX\n", hr); - return 0; + return NULL; } *pNumFonts = AddFontResource(temp_path_name); From d3af13ebd655fdd1f5168468385642a88180dfb4 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Thu, 23 Jul 2026 11:45:01 +0900 Subject: [PATCH 809/836] drag and drop beginnings Reviewed-on: https://forgejo.nishi.boats/pyrite-dev/milsko/pulls/33 --- include/Mw/LowLevel.h | 7 ++ include/Mw/LowLevel/GDI.h | 13 ++ include/Mw/StringDefs.h | 4 + include/Mw/TypeDefs.h | 2 +- src/backend/cairo.c | 13 +- src/backend/call.c | 5 +- src/backend/classicmacos.c | 4 + src/backend/cocoa.m | 4 + src/backend/gdi.c | 221 +++++++++++++++++++++++++++++++++- src/backend/haiku.cc | 4 + src/backend/wayland/wayland.c | 4 + src/backend/x11.c | 4 + src/core.c | 10 ++ src/lowlevel.c | 5 +- src/widget/entry.c | 5 +- 15 files changed, 288 insertions(+), 17 deletions(-) diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index a2be27193..b58d54ed0 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -39,6 +39,7 @@ struct _MwLLCommon { int type; int coordinate_type; MwBool supports_transparency; + const char** known_mime_types; MwLLHandler handler; }; @@ -315,6 +316,12 @@ MWDECL void (*MwLLGetClipboard)(MwLL handle, int clipboard_type); MWDECL void (*MwLLGetCursorCoord)(MwLL handle, MwPoint* point); MWDECL void (*MwLLGetScreenSize)(MwLL handle, MwRect* rect); +/*! + * @brief Setup drag and drop capabilities, should the user request it with MwNacceptsDnD + * @param handle Handle + */ +MWDECL void (*MwLLSetupDragAndDrop)(MwLL handle); + /*! * @brief Set any extra parameters for dark theme * @param handle Handle diff --git a/include/Mw/LowLevel/GDI.h b/include/Mw/LowLevel/GDI.h index e505b0a40..6230a3698 100644 --- a/include/Mw/LowLevel/GDI.h +++ b/include/Mw/LowLevel/GDI.h @@ -29,6 +29,11 @@ struct _MwLLGDI { int force_render; int get_clipboard; int get_darktheme; + + /* drag and drop */ + struct _MwLLGDIDropTarget* dropTarget; + struct _MwLLGDIDropSource* dropSource; + MwBool drag_update; }; struct _MwLLGDIColor { @@ -47,6 +52,14 @@ struct _MwLLGDIPixmap { HBITMAP hMask2; }; +struct _MwLLGDIDropTarget{ + struct IDropTargetVtbl *lpVtbl; + LONG refCount; + HWND hwnd; + MwLL handle; +}; +typedef struct _MwLLGDIDropTarget MwLLGDIDropTarget; + MWDECL int MwLLGDICallInit(void); MWDECL HCURSOR MwLLGDICreateCursor(MwCursor* image, MwCursor* mask); diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index b95fe9303..5f9e3e43d 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -53,6 +53,7 @@ #define MwNcolumnSpan "IcolumnSpan" #define MwNrowSpan "IrowSpan" #define MwNdisabled "Idisabled" +#define MwNacceptsDnD "IacceptsDnD" #define MwNtitle "Stitle" #define MwNtext "Stext" @@ -62,6 +63,8 @@ #define MwNforeground "Sforeground" #define MwNsubForeground "SsubForeground" #define MwNtitleForeground "StitleForeground" +#define MwNacceptedMimeType "SacceptedMimeType" + #define MwNvulkanExtension "SEvulkanExtension" #define MwNvulkanLayer "SEvulkanLayer" @@ -98,5 +101,6 @@ #define MwNdrawHandler "Cdraw" #define MwNclipboardHandler "Cclipboard" #define MwNdarkThemeHandler "CdarkTheme" +#define MwNdragAndDropHandler "CdragAndDrop" #endif diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index 5989e1ba4..fbc91fac9 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -274,7 +274,7 @@ struct _MwClass { MwHandlerChildrenProp children_prop_change; MwHandlerClipboardReceived clipboard; MwHandlerProps props_change; - void* reserved1; + MwHandler drag_and_drop; void* reserved2; void* reserved3; }; diff --git a/src/backend/cairo.c b/src/backend/cairo.c index 0c26ff3c6..d70de1b94 100644 --- a/src/backend/cairo.c +++ b/src/backend/cairo.c @@ -212,8 +212,8 @@ static void MwLLFreeColorImpl(MwLLColor color) {} static MwBool lmao = MwFALSE; static int MwLLPendingImpl(MwLL handle) { - lmao = !lmao; - return lmao; + lmao = !lmao; + return lmao; } static void MwLLNextEventImpl(MwLL handle) { MwLLDispatch(handle, draw, NULL); @@ -255,11 +255,12 @@ static MwBool MwLLDoModernImpl(MwLL handle) { } static void MwLLRaiseImpl(MwLL handle) {} static void MwLLClipImpl(MwLL handle, MwRect* rect) {} +static void MwLLSetupDragAndDropImpl(MwLL handle) {} static int MwLLCairoCallInitImpl(void) { - if(cairo_load_funcs() != 0) { - return 1; - } - return 0; + if(cairo_load_funcs() != 0) { + return 1; + } + return 0; } #include "call.c" CALL(Cairo); diff --git a/src/backend/call.c b/src/backend/call.c index f84247f7d..0deffb49d 100644 --- a/src/backend/call.c +++ b/src/backend/call.c @@ -52,8 +52,9 @@ MwLLSetClipboard = MwLLSetClipboardImpl; \ MwLLGetClipboard = MwLLGetClipboardImpl; \ \ - MwLLGetCursorCoord = MwLLGetCursorCoordImpl; \ - MwLLGetScreenSize = MwLLGetScreenSizeImpl; \ + MwLLGetCursorCoord = MwLLGetCursorCoordImpl; \ + MwLLGetScreenSize = MwLLGetScreenSizeImpl; \ + MwLLSetupDragAndDrop = MwLLSetupDragAndDropImpl; \ \ MwLLSetDarkTheme = MwLLSetDarkThemeImpl; \ MwLLDoModern = MwLLDoModernImpl; \ diff --git a/src/backend/classicmacos.c b/src/backend/classicmacos.c index d3da454b1..f06355109 100644 --- a/src/backend/classicmacos.c +++ b/src/backend/classicmacos.c @@ -347,6 +347,10 @@ static void MwLLGetCursorCoordImpl(MwLL handle, MwPoint* point) { static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { } +static void MwLLSetupDragAndDropImpl(MwLL handle) { + (void)handle; +} + static void MwLLBeginStateChangeImpl(MwLL handle) { MwLLShow(handle, 0); } diff --git a/src/backend/cocoa.m b/src/backend/cocoa.m index e07eb6411..85b8b5bd8 100644 --- a/src/backend/cocoa.m +++ b/src/backend/cocoa.m @@ -1146,6 +1146,10 @@ static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { rect->height = [screen frame].size.height; } +static void MwLLSetupDragAndDropImpl(MwLL handle) { + (void)handle; +} + static void MwLLBeginStateChangeImpl(MwLL handle) { MwLLShow(handle, 0); } diff --git a/src/backend/gdi.c b/src/backend/gdi.c index acc341e46..dbd87ac9d 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -1,5 +1,7 @@ #include +#include "../../external/stb_ds.h" + typedef struct userdata { MwLL ll; POINT min; @@ -10,8 +12,26 @@ typedef struct userdata { static struct symtbl { void* lib_dwmapi; + void* shell32lib; + void* ole32lib; + void* urlmonlib; + MwBool has_drag_and_drop; HRESULT(WINAPI* DwmSetWindowAttribute)(HWND hwnd, DWORD dwAttribute, LPCVOID pvAttribute, DWORD cbAttribute); + UINT(WINAPI* DragQueryFileW)(HDROP hDrop, UINT iFile, LPWSTR lpszFile, UINT cch); + UINT(WINAPI* DragQueryFileA)(HDROP hDrop, UINT iFile, LPSTR lpszFile, UINT cch); + void(WINAPI* ReleaseStgMedium)(LPSTGMEDIUM unnamedParam1); + HRESULT(WINAPI* OleInitialize)(LPVOID pvReserved); + HRESULT(WINAPI* RegisterDragDrop)(HWND hwnd, LPDROPTARGET pDropTarget); + HRESULT(WINAPI* FindMimeFromData)( + LPBC pBC, + LPCWSTR pwzUrl, + LPVOID pBuffer, + DWORD cbSize, + LPCWSTR pwzMimeProposed, + DWORD dwMimeFlags, + LPWSTR* ppwzMimeOut, + DWORD dwReserved); } wsymtbl; static int is_plgblt_reliable = 0; @@ -420,6 +440,9 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { SetWindowPos(r->gdi.hWnd, NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); + r->gdi.dropTarget = NULL; + r->gdi.drag_update = MwFALSE; + return r; } @@ -434,6 +457,8 @@ static void MwLLDestroyImpl(MwLL handle) { if(handle->gdi.cursor != NULL) DestroyCursor(handle->gdi.cursor); + if(handle->gdi.dropTarget) free(handle->gdi.dropTarget); + free(handle); } @@ -547,7 +572,7 @@ static int MwLLPendingImpl(MwLL handle) { (void)handle; - if(handle->gdi.get_clipboard || handle->gdi.get_darktheme) return 1; + if(handle->gdi.get_clipboard || handle->gdi.get_darktheme || handle->gdi.drag_update) return 1; return PeekMessage(&msg, handle->gdi.hWnd, 0, 0, PM_NOREMOVE) ? 1 : 0; } @@ -579,8 +604,7 @@ static void MwLLNextEventImpl(MwLL handle) { handle->gdi.get_darktheme = 0; } - while(PeekMessage(&msg, handle->gdi.hWnd, 0, 0, PM_NOREMOVE)) { - GetMessage(&msg, handle->gdi.hWnd, 0, 0); + while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } @@ -994,8 +1018,134 @@ static void MwLLClipImpl(MwLL handle, MwRect* rect) { } } +static HRESULT STDMETHODCALLTYPE GDIDT_QueryInterface(IDropTarget* this_, REFIID riid, void** ppv) { + if(IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IDropTarget)) { + *ppv = this_; + this_->lpVtbl->AddRef(this_); + return S_OK; + } + *ppv = NULL; + return E_NOINTERFACE; +} + +static ULONG STDMETHODCALLTYPE GDIDT_AddRef(IDropTarget* this_) { + MwLLGDIDropTarget* self = (MwLLGDIDropTarget*)this_; + return InterlockedIncrement(&self->refCount); +} + +static ULONG STDMETHODCALLTYPE GDIDT_Release(IDropTarget* this_) { + MwLLGDIDropTarget* self = (MwLLGDIDropTarget*)this_; + LONG c = InterlockedDecrement(&self->refCount); + if(c == 0) free(self); + return c; +} + +static HRESULT STDMETHODCALLTYPE GDIDT_DragEnter(IDropTarget* this_, IDataObject* pDataObj, + DWORD grfKeyState, POINTL pt, DWORD* pdwEffect) { + *pdwEffect = DROPEFFECT_COPY; + return S_OK; +} + +static HRESULT STDMETHODCALLTYPE GDIDT_DragOver(IDropTarget* this_, DWORD grfKeyState, + POINTL pt, DWORD* pdwEffect) { + MwLLGDIDropTarget* self = (MwLLGDIDropTarget*)this_; + self->handle->gdi.drag_update = MwTRUE; + + return S_OK; +} + +static HRESULT STDMETHODCALLTYPE GDIDT_DragLeave(IDropTarget* this_) { + MwLLGDIDropTarget* self = (MwLLGDIDropTarget*)this_; + self->handle->gdi.drag_update = MwFALSE; + return S_OK; +} + +static HRESULT STDMETHODCALLTYPE GDIDT_Drop(IDropTarget* this_, IDataObject* pDataObj, + DWORD grfKeyState, POINTL pt, DWORD* pdwEffect) { + FORMATETC fmt = {CF_HDROP, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL}; + STGMEDIUM stg; + MwLLGDIDropTarget* self = (MwLLGDIDropTarget*)this_; + + self->handle->gdi.drag_update = MwTRUE; + + if(pDataObj->lpVtbl->GetData(pDataObj, &fmt, &stg) == S_OK) { + HDROP hDrop = (HDROP)stg.hGlobal; + UINT count = wsymtbl.DragQueryFileW(hDrop, 0xFFFFFFFF, NULL, 0); + UINT i, n; + HRESULT hr; + + for(i = 0; i < count; i++) { + wchar_t path[MAX_PATH]; + char path_normal[MAX_PATH]; + char* mime_type_normal; + wchar_t* mime_type = NULL; + int mime_type_size; + HRESULT hr; + int i; + + wsymtbl.DragQueryFileW(hDrop, i, path, MAX_PATH); + wsymtbl.DragQueryFileA(hDrop, i, path_normal, MAX_PATH); + hr = wsymtbl.FindMimeFromData(NULL, path, NULL, 0, + NULL, FMFD_DEFAULT, &mime_type, 0x0); + + mime_type_size = WideCharToMultiByte(CP_ACP, 0, mime_type, -1, NULL, 0, NULL, FALSE); + mime_type_normal = malloc(sizeof(mime_type_size)); + WideCharToMultiByte(CP_ACP, 0, mime_type, -1, mime_type_normal, mime_type_size, NULL, FALSE); + + if(mime_type_size == 0) { + printf("Error converting mime type to multi-byte: %ld\n", GetLastError()); + } else { + if(self->handle->common.known_mime_types) { + for(n = 0; n < arrlen(self->handle->common.known_mime_types); n++) { + if(strcmp(mime_type_normal, self->handle->common.known_mime_types[n]) == 0) { + MwDispatchUserHandler(self->handle->common.user, MwNdragAndDropHandler, path_normal); + break; + } + } + } else { + MwDispatchUserHandler(self->handle->common.user, MwNdragAndDropHandler, path_normal); + } + } + free(mime_type); + } + + wsymtbl.ReleaseStgMedium(&stg); + *pdwEffect = DROPEFFECT_COPY; + } else { + *pdwEffect = DROPEFFECT_NONE; + } + return S_OK; +} + +static IDropTargetVtbl DropTarget_Vtbl = { + GDIDT_QueryInterface, + GDIDT_AddRef, + GDIDT_Release, + GDIDT_DragEnter, + GDIDT_DragOver, + GDIDT_DragLeave, + GDIDT_Drop}; + +static void MwLLSetupDragAndDropImpl(MwLL handle) { + HRESULT hr = 0; + + handle->gdi.dropTarget = (MwLLGDIDropTarget*)malloc(sizeof(MwLLGDIDropTarget)); + handle->gdi.dropTarget->lpVtbl = &DropTarget_Vtbl; + handle->gdi.dropTarget->refCount = 1; + handle->gdi.dropTarget->hwnd = handle->gdi.hWnd; + handle->gdi.dropTarget->handle = handle; + + hr = wsymtbl.RegisterDragDrop(handle->gdi.hWnd, (IDropTarget*)handle->gdi.dropTarget); + if(!SUCCEEDED(hr)) { + printf("RegisterDragDrop failed; %08lx\n", hr); + return; + } + printf("dnd setup\n"); +} + static int MwLLGDICallInitImpl(void) { - void* ntdll; + void* ntdll; + HRESULT hr; memset(&wsymtbl, 0, sizeof(wsymtbl)); @@ -1009,6 +1159,69 @@ static int MwLLGDICallInitImpl(void) { is_plgblt_reliable = 1; } + wsymtbl.has_drag_and_drop = MwFALSE; + + /* Drag and Drop initialization */ + { + hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); + /* The only other error - COM already being initialized - can be ignored */ + if(hr == RPC_E_CHANGED_MODE) { + goto no_dnd; + } + if(!SUCCEEDED(hr) && hr != S_FALSE) { + printf("CoInitialize error: %08lx\n", hr); + goto dnd_error; + } + hr = OleInitialize(NULL); + if(!SUCCEEDED(hr)) { + if(hr == RPC_E_CHANGED_MODE) { + no_dnd: + printf("Cannot do drag and drop; Microsoft hates you and if you use COM anywhere else it has to be apartment threaded.\n"); + goto dnd_error; + } else { + printf("OleInitialize failed; %08lx. Drag and Drop won't be supported.\n", hr); + goto dnd_error; + } + } + + wsymtbl.has_drag_and_drop = MwTRUE; + + if(!(wsymtbl.shell32lib = LoadLibrary("shell32.dll"))) { + goto dnd_error; + }; + if(!(wsymtbl.ole32lib = LoadLibrary("ole32.dll"))) { + goto dnd_error; + }; + if(!(wsymtbl.urlmonlib = LoadLibrary("Urlmon.dll"))) { + goto dnd_error; + }; + +#define SHELL32_FUNC(x) \ + if(!(wsymtbl.x = (void*)GetProcAddress(wsymtbl.shell32lib, #x))) { \ + printf(#x "not found, drag and drop will not be supported"); \ + goto dnd_error; \ + } +#define OLE32_FUNC(x) \ + if(!(wsymtbl.x = (void*)GetProcAddress(wsymtbl.ole32lib, #x))) { \ + printf(#x "not found, drag and drop will not be supported"); \ + goto dnd_error; \ + } +#define URLMON_FUNC(x) \ + if(!(wsymtbl.x = (void*)GetProcAddress(wsymtbl.urlmonlib, #x))) { \ + printf(#x "not found, drag and drop will not be supported"); \ + goto dnd_error; \ + } + + SHELL32_FUNC(DragQueryFileW); + SHELL32_FUNC(DragQueryFileA); + OLE32_FUNC(ReleaseStgMedium); + OLE32_FUNC(RegisterDragDrop); + URLMON_FUNC(FindMimeFromData); + + wsymtbl.has_drag_and_drop = MwTRUE; + } +dnd_error: + /* TODO: check properly */ return 0; } diff --git a/src/backend/haiku.cc b/src/backend/haiku.cc index 8c4f8bf13..2c796d60f 100644 --- a/src/backend/haiku.cc +++ b/src/backend/haiku.cc @@ -879,6 +879,10 @@ static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { delete screen; } +static void MwLLSetupDragAndDropImpl(MwLL handle) { + (void)handle; +} + static void MwLLSetDarkThemeImpl(MwLL handle, int toggle) { (void)handle; (void)toggle; diff --git a/src/backend/wayland/wayland.c b/src/backend/wayland/wayland.c index 48d6c7601..839e9ac6f 100644 --- a/src/backend/wayland/wayland.c +++ b/src/backend/wayland/wayland.c @@ -1779,6 +1779,10 @@ static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { rect->height = handle->wayland.mh; } +static void MwLLSetupDragAndDropImpl(MwLL handle) { + (void)handle; +} + static void MwLLBeginStateChangeImpl(MwLL handle) { (void)handle; /* no-op */ diff --git a/src/backend/x11.c b/src/backend/x11.c index 79ce4295c..cc4d22bcf 100644 --- a/src/backend/x11.c +++ b/src/backend/x11.c @@ -1361,6 +1361,10 @@ static void MwLLGetScreenSizeImpl(MwLL handle, MwRect* rect) { rect->height = xwa.height; } +static void MwLLSetupDragAndDropImpl(MwLL handle) { + (void)handle; +} + static void MwLLBeginStateChangeImpl(MwLL handle) { MwLLShow(handle, 0); } diff --git a/src/core.c b/src/core.c index 7059840f6..2eca6657a 100644 --- a/src/core.c +++ b/src/core.c @@ -658,6 +658,10 @@ void MwSetInteger(MwWidget handle, const char* key, int n) { if(h->lowlevel != NULL) MwLLSetDarkTheme(h->lowlevel, n); } + + if(strcmp(key, MwNacceptsDnD) == 0) { + if(handle->lowlevel != NULL) MwLLSetupDragAndDrop(handle->lowlevel); + } } void MwSetText(MwWidget handle, const char* key, const char* value) { @@ -692,6 +696,12 @@ void MwSetText(MwWidget handle, const char* key, const char* value) { if(strcmp(key, MwNbackground) == 0 || strcmp(key, MwNforeground) == 0 || strcmp(key, MwNsubBackground) == 0 || strcmp(key, MwNsubForeground) == 0) { MwForceRender(handle); } + + if(strcmp(key, MwNacceptedMimeType) == 0) { + if(handle->lowlevel != NULL) { + arrput(handle->lowlevel->common.known_mime_types, value); + } + } } void MwSetVoid(MwWidget handle, const char* key, void* value) { diff --git a/src/lowlevel.c b/src/lowlevel.c index bc9e55b7c..aca10c275 100644 --- a/src/lowlevel.c +++ b/src/lowlevel.c @@ -50,8 +50,8 @@ void (*MwLLGetClipboard)(MwLL, int clipboard_type) = NULL; void (*MwLLGetCursorCoord)(MwLL handle, MwPoint* point) = NULL; void (*MwLLGetScreenSize)(MwLL handle, MwRect* rect) = NULL; - -void (*MwLLSetDarkTheme)(MwLL handle, int toggle) = NULL; +void (*MwLLSetupDragAndDrop)(MwLL handle) = NULL; +void (*MwLLSetDarkTheme)(MwLL handle, int toggle) = NULL; MwBool (*MwLLDoModern)(MwLL handle) = NULL; @@ -64,6 +64,7 @@ void MwLLCreateCommon(MwLL handle) { memset(handle->common.handler, 0, sizeof(*handle->common.handler)); handle->common.supports_transparency = 0; + handle->common.known_mime_types = NULL; } void MwLLDestroyCommon(MwLL handle) { diff --git a/src/widget/entry.c b/src/widget/entry.c index 65cd90382..dd867d7d8 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -9,6 +9,7 @@ static int wcreate(MwWidget handle) { t->right = 0; t->length = 0; t->cursor_blink_timer = 0; + t->active = 0; handle->internal = t; while(topmost_parent->parent) topmost_parent = topmost_parent->parent; @@ -40,7 +41,7 @@ static void tick(MwWidget handle) { if(++t->cursor_blink_timer >= 30) { t->cursor_blink_timer = 0; } - MwDispatch(handle, draw); + MwForceRender(handle); } } static void draw(MwWidget handle) { @@ -185,7 +186,7 @@ static void mouse_down(MwWidget handle, void* ptr) { MwEntry t = topmost_parent->monitored_entries[i]->internal; t->active = MwFALSE; t->cursor_blink_timer = 0; - MwDispatch(topmost_parent->monitored_entries[i], draw); + MwForceRender(topmost_parent->monitored_entries[i]); } t->active = MwTRUE; MwForceRender2(handle, NULL); From 27b4f8384078bd63295a08e4be2fcc3a40937e46 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 22 Jul 2026 19:49:05 -0700 Subject: [PATCH 810/836] linke to ole32 --- CMakeLists.txt | 2 +- NTMakefile | 2 +- WatMakefile | 2 +- pl/ostype/Windows.pl | 1 + tools/genmk.pl | 2 +- 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b9e90d0f7..39f26d06f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -329,7 +329,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows" OR CMAKE_SYSTEM_NAME STREQUAL "MSYS") PRIVATE USE_GDI ) - list(APPEND LIBRARIES gdi32 winmm) + list(APPEND LIBRARIES gdi32 ole32 winmm) target_link_options( Mw PRIVATE diff --git a/NTMakefile b/NTMakefile index a3fc76a36..8afa320de 100644 --- a/NTMakefile +++ b/NTMakefile @@ -321,7 +321,7 @@ examples\gldemos\tripaint.obj: examples/gldemos/tripaint.c src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\gdi.obj src\text\stbtt.obj src\text\text.obj src\truetype.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\table.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj - $(LD) $(MW_LDFLAGS) /OUT:$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\gdi.obj src\text\stbtt.obj src\text\text.obj src\truetype.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\table.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib winmm.lib user32.lib advapi32.lib + $(LD) $(MW_LDFLAGS) /OUT:$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\gdi.obj src\text\stbtt.obj src\text\text.obj src\truetype.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\table.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib winmm.lib ole32.lib user32.lib advapi32.lib .c.obj: diff --git a/WatMakefile b/WatMakefile index afeb56061..c2af03ea2 100644 --- a/WatMakefile +++ b/WatMakefile @@ -320,7 +320,7 @@ examples/gldemos/tripaint.obj: examples/gldemos/tripaint.c src/Mw.dll: external/libz/src/adler32.obj external/libz/src/compress.obj external/libz/src/crc32.obj external/libz/src/deflate.obj external/libz/src/gzclose.obj external/libz/src/gzlib.obj external/libz/src/gzread.obj external/libz/src/gzwrite.obj external/libz/src/infback.obj external/libz/src/inffast.obj external/libz/src/inflate.obj external/libz/src/inftrees.obj external/libz/src/trees.obj external/libz/src/uncompr.obj external/libz/src/zutil.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/charset.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text/font/boldfont.obj src/text/font/boldmonottf.obj src/text/font/boldttf.obj src/text/font/font.obj src/text/font/monottf.obj src/text/font/ttf.obj src/text/ft2.obj src/text/gdi.obj src/text/stbtt.obj src/text/text.obj src/truetype.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/calendar.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/subwindow.obj src/widget/tab.obj src/widget/table.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj - $(LD) $(MW_LDFLAGS) option implib=src/Mw.lib name $@ file external/libz/src/adler32.obj file external/libz/src/compress.obj file external/libz/src/crc32.obj file external/libz/src/deflate.obj file external/libz/src/gzclose.obj file external/libz/src/gzlib.obj file external/libz/src/gzread.obj file external/libz/src/gzwrite.obj file external/libz/src/infback.obj file external/libz/src/inffast.obj file external/libz/src/inflate.obj file external/libz/src/inftrees.obj file external/libz/src/trees.obj file external/libz/src/uncompr.obj file external/libz/src/zutil.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/charset.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/font/boldfont.obj file src/text/font/boldmonottf.obj file src/text/font/boldttf.obj file src/text/font/font.obj file src/text/font/monottf.obj file src/text/font/ttf.obj file src/text/ft2.obj file src/text/gdi.obj file src/text/stbtt.obj file src/text/text.obj file src/truetype.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/calendar.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/subwindow.obj file src/widget/tab.obj file src/widget/table.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library winmm.lib library user32.lib library advapi32.lib + $(LD) $(MW_LDFLAGS) option implib=src/Mw.lib name $@ file external/libz/src/adler32.obj file external/libz/src/compress.obj file external/libz/src/crc32.obj file external/libz/src/deflate.obj file external/libz/src/gzclose.obj file external/libz/src/gzlib.obj file external/libz/src/gzread.obj file external/libz/src/gzwrite.obj file external/libz/src/infback.obj file external/libz/src/inffast.obj file external/libz/src/inflate.obj file external/libz/src/inftrees.obj file external/libz/src/trees.obj file external/libz/src/uncompr.obj file external/libz/src/zutil.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/charset.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/font/boldfont.obj file src/text/font/boldmonottf.obj file src/text/font/boldttf.obj file src/text/font/font.obj file src/text/font/monottf.obj file src/text/font/ttf.obj file src/text/ft2.obj file src/text/gdi.obj file src/text/stbtt.obj file src/text/text.obj file src/truetype.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/calendar.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/subwindow.obj file src/widget/tab.obj file src/widget/table.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library winmm.lib library ole32.lib library user32.lib library advapi32.lib diff --git a/pl/ostype/Windows.pl b/pl/ostype/Windows.pl index f79469fc4..af9486cc8 100644 --- a/pl/ostype/Windows.pl +++ b/pl/ostype/Windows.pl @@ -5,5 +5,6 @@ $math = ""; add_ldflags("-Wl,--out-implib,src/libMw.dll.a -static-libgcc"); use_backend("gdi"); add_libs("-lwinmm"); +add_libs("-lole32"); 1; diff --git a/tools/genmk.pl b/tools/genmk.pl index 9903c116d..2c6860866 100755 --- a/tools/genmk.pl +++ b/tools/genmk.pl @@ -190,7 +190,7 @@ sub generate { print(OUT "src${dir}Mw.dll: " . cobjs($dir) . "\n"); print( OUT " \$(LD) \$(MW_LDFLAGS) $c_dllout $dllout\$@ " . cobjs($dir, $prefobj) - . " $needlibs ${lib}opengl32.lib ${lib}gdi32.lib ${lib}winmm.lib ${lib}user32.lib ${lib}advapi32.lib\n" + . " $needlibs ${lib}opengl32.lib ${lib}gdi32.lib ${lib}winmm.lib ${lib}ole32.lib ${lib}user32.lib ${lib}advapi32.lib\n" ); print(OUT " $c_dllafter\n"); print(OUT "\n"); From b3e24df2f677c9b642119552b812f2b1c0eff916 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 22 Jul 2026 19:51:11 -0700 Subject: [PATCH 811/836] include urlmon.h in MachDep.h --- include/Mw/MachDep.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index 4c98b24da..5433c7e31 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -26,6 +26,7 @@ #ifdef _MILSKO #include #include +#include #ifndef GWLP_USERDATA #define GWLP_USERDATA GWL_USERDATA #define GWLP_WNDPROC GWL_WNDPROC From 981591120c5f3e66beadc8dede29760272c659d6 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 22 Jul 2026 19:54:27 -0700 Subject: [PATCH 812/836] linke to uuid --- CMakeLists.txt | 2 +- pl/ostype/Windows.pl | 1 + tools/genmk.pl | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 39f26d06f..e7aefde93 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -329,7 +329,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows" OR CMAKE_SYSTEM_NAME STREQUAL "MSYS") PRIVATE USE_GDI ) - list(APPEND LIBRARIES gdi32 ole32 winmm) + list(APPEND LIBRARIES gdi32 ole32 winmm uuid) target_link_options( Mw PRIVATE diff --git a/pl/ostype/Windows.pl b/pl/ostype/Windows.pl index af9486cc8..9a066d828 100644 --- a/pl/ostype/Windows.pl +++ b/pl/ostype/Windows.pl @@ -6,5 +6,6 @@ add_ldflags("-Wl,--out-implib,src/libMw.dll.a -static-libgcc"); use_backend("gdi"); add_libs("-lwinmm"); add_libs("-lole32"); +add_libs("-luuid"); 1; diff --git a/tools/genmk.pl b/tools/genmk.pl index 2c6860866..8362bd385 100755 --- a/tools/genmk.pl +++ b/tools/genmk.pl @@ -190,7 +190,7 @@ sub generate { print(OUT "src${dir}Mw.dll: " . cobjs($dir) . "\n"); print( OUT " \$(LD) \$(MW_LDFLAGS) $c_dllout $dllout\$@ " . cobjs($dir, $prefobj) - . " $needlibs ${lib}opengl32.lib ${lib}gdi32.lib ${lib}winmm.lib ${lib}ole32.lib ${lib}user32.lib ${lib}advapi32.lib\n" + . " $needlibs ${lib}opengl32.lib ${lib}gdi32.lib ${lib}winmm.lib ${lib}ole32.lib ${lib}uuid.lib ${lib}user32.lib ${lib}advapi32.lib\n" ); print(OUT " $c_dllafter\n"); print(OUT "\n"); From fb6c7a47729b364b585569495a8c4b8e30ae3d7f Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 22 Jul 2026 19:55:40 -0700 Subject: [PATCH 813/836] replace FMFD_DEFAULT with 0 --- include/Mw/MachDep.h | 1 - src/backend/gdi.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index 5433c7e31..4c98b24da 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -26,7 +26,6 @@ #ifdef _MILSKO #include #include -#include #ifndef GWLP_USERDATA #define GWLP_USERDATA GWL_USERDATA #define GWLP_WNDPROC GWL_WNDPROC diff --git a/src/backend/gdi.c b/src/backend/gdi.c index dbd87ac9d..e08d4e1a3 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -1086,7 +1086,7 @@ static HRESULT STDMETHODCALLTYPE GDIDT_Drop(IDropTarget* this_, IDataObject* pDa wsymtbl.DragQueryFileW(hDrop, i, path, MAX_PATH); wsymtbl.DragQueryFileA(hDrop, i, path_normal, MAX_PATH); hr = wsymtbl.FindMimeFromData(NULL, path, NULL, 0, - NULL, FMFD_DEFAULT, &mime_type, 0x0); + NULL, 0, &mime_type, 0x0); mime_type_size = WideCharToMultiByte(CP_ACP, 0, mime_type, -1, NULL, 0, NULL, FALSE); mime_type_normal = malloc(sizeof(mime_type_size)); From 0fd0611a993abf47413a590eb713bbf76220274b Mon Sep 17 00:00:00 2001 From: IoIxD Date: Wed, 22 Jul 2026 20:02:01 -0700 Subject: [PATCH 814/836] dynload CoInitializeEx --- src/backend/gdi.c | 48 ++++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index e08d4e1a3..078c174b9 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -32,6 +32,9 @@ static struct symtbl { DWORD dwMimeFlags, LPWSTR* ppwzMimeOut, DWORD dwReserved); + HRESULT (*CoInitializeEx)( + LPVOID pvReserved, + DWORD dwCoInit); } wsymtbl; static int is_plgblt_reliable = 0; @@ -1163,29 +1166,6 @@ static int MwLLGDICallInitImpl(void) { /* Drag and Drop initialization */ { - hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); - /* The only other error - COM already being initialized - can be ignored */ - if(hr == RPC_E_CHANGED_MODE) { - goto no_dnd; - } - if(!SUCCEEDED(hr) && hr != S_FALSE) { - printf("CoInitialize error: %08lx\n", hr); - goto dnd_error; - } - hr = OleInitialize(NULL); - if(!SUCCEEDED(hr)) { - if(hr == RPC_E_CHANGED_MODE) { - no_dnd: - printf("Cannot do drag and drop; Microsoft hates you and if you use COM anywhere else it has to be apartment threaded.\n"); - goto dnd_error; - } else { - printf("OleInitialize failed; %08lx. Drag and Drop won't be supported.\n", hr); - goto dnd_error; - } - } - - wsymtbl.has_drag_and_drop = MwTRUE; - if(!(wsymtbl.shell32lib = LoadLibrary("shell32.dll"))) { goto dnd_error; }; @@ -1216,8 +1196,30 @@ static int MwLLGDICallInitImpl(void) { SHELL32_FUNC(DragQueryFileA); OLE32_FUNC(ReleaseStgMedium); OLE32_FUNC(RegisterDragDrop); + OLE32_FUNC(CoInitializeEx); URLMON_FUNC(FindMimeFromData); + hr = wsymtbl.CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); + /* The only other error - COM already being initialized - can be ignored */ + if(hr == RPC_E_CHANGED_MODE) { + goto no_dnd; + } + if(!SUCCEEDED(hr) && hr != S_FALSE) { + printf("CoInitialize error: %08lx\n", hr); + goto dnd_error; + } + hr = OleInitialize(NULL); + if(!SUCCEEDED(hr)) { + if(hr == RPC_E_CHANGED_MODE) { + no_dnd: + printf("Cannot do drag and drop; Microsoft hates you and if you use COM anywhere else it has to be apartment threaded.\n"); + goto dnd_error; + } else { + printf("OleInitialize failed; %08lx. Drag and Drop won't be supported.\n", hr); + goto dnd_error; + } + } + wsymtbl.has_drag_and_drop = MwTRUE; } dnd_error: From 7e339cfd60bd2d7d274cc78675cf5416f85ae141 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 22 Jul 2026 21:31:03 -0700 Subject: [PATCH 815/836] gdi: properly quit drag and drop after its finished --- include/Mw/LowLevel/GDI.h | 1 + src/backend/gdi.c | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/include/Mw/LowLevel/GDI.h b/include/Mw/LowLevel/GDI.h index 6230a3698..581c32d42 100644 --- a/include/Mw/LowLevel/GDI.h +++ b/include/Mw/LowLevel/GDI.h @@ -34,6 +34,7 @@ struct _MwLLGDI { struct _MwLLGDIDropTarget* dropTarget; struct _MwLLGDIDropSource* dropSource; MwBool drag_update; + MwBool finishing_drag; }; struct _MwLLGDIColor { diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 078c174b9..6e0383bce 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -607,6 +607,10 @@ static void MwLLNextEventImpl(MwLL handle) { handle->gdi.get_darktheme = 0; } + if(handle->gdi.finishing_drag) { + handle->gdi.drag_update = 0; + handle->gdi.finishing_drag = 0; + } while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); @@ -1102,11 +1106,12 @@ static HRESULT STDMETHODCALLTYPE GDIDT_Drop(IDropTarget* this_, IDataObject* pDa for(n = 0; n < arrlen(self->handle->common.known_mime_types); n++) { if(strcmp(mime_type_normal, self->handle->common.known_mime_types[n]) == 0) { MwDispatchUserHandler(self->handle->common.user, MwNdragAndDropHandler, path_normal); - break; + self->handle->gdi.finishing_drag = 1; } } } else { MwDispatchUserHandler(self->handle->common.user, MwNdragAndDropHandler, path_normal); + self->handle->gdi.finishing_drag = 1; } } free(mime_type); From c404e9e14b05d1c4285635f4e1266c6e3ca9b3e7 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Wed, 22 Jul 2026 21:33:37 -0700 Subject: [PATCH 816/836] remove some leftover debug prints oops --- src/backend/gdi.c | 1 - src/text/gdi.c | 1 - 2 files changed, 2 deletions(-) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 6e0383bce..37bb9c5c6 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -1148,7 +1148,6 @@ static void MwLLSetupDragAndDropImpl(MwLL handle) { printf("RegisterDragDrop failed; %08lx\n", hr); return; } - printf("dnd setup\n"); } static int MwLLGDICallInitImpl(void) { diff --git a/src/text/gdi.c b/src/text/gdi.c index ab5466469..b5f3ced00 100644 --- a/src/text/gdi.c +++ b/src/text/gdi.c @@ -215,7 +215,6 @@ static HANDLE WINAPI _AddFontMemResourceExPolyFill(PVOID pFileView, DWORD cjSize OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_DELETE_ON_CLOSE, NULL); - printf("%d\n", tempFile); if(tempFile != INVALID_HANDLE_VALUE) { goto success; } else { From f35e7817624f93b6512cd0b0cc9a8443377857df Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 23 Jul 2026 00:10:26 -0700 Subject: [PATCH 817/836] win32: move away from com for drag and drop to avoid conflicts (and because com sucks) --- include/Mw/LowLevel/GDI.h | 14 --- src/backend/gdi.c | 188 +++++++++++--------------------------- 2 files changed, 53 insertions(+), 149 deletions(-) diff --git a/include/Mw/LowLevel/GDI.h b/include/Mw/LowLevel/GDI.h index 581c32d42..e505b0a40 100644 --- a/include/Mw/LowLevel/GDI.h +++ b/include/Mw/LowLevel/GDI.h @@ -29,12 +29,6 @@ struct _MwLLGDI { int force_render; int get_clipboard; int get_darktheme; - - /* drag and drop */ - struct _MwLLGDIDropTarget* dropTarget; - struct _MwLLGDIDropSource* dropSource; - MwBool drag_update; - MwBool finishing_drag; }; struct _MwLLGDIColor { @@ -53,14 +47,6 @@ struct _MwLLGDIPixmap { HBITMAP hMask2; }; -struct _MwLLGDIDropTarget{ - struct IDropTargetVtbl *lpVtbl; - LONG refCount; - HWND hwnd; - MwLL handle; -}; -typedef struct _MwLLGDIDropTarget MwLLGDIDropTarget; - MWDECL int MwLLGDICallInit(void); MWDECL HCURSOR MwLLGDICreateCursor(MwCursor* image, MwCursor* mask); diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 37bb9c5c6..849f8afdc 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -91,6 +91,8 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { if(u == NULL) return DefWindowProc(hWnd, msg, wp, lp); switch(msg) { + case WM_INITDIALOG: + return TRUE; case WM_PAINT: { PAINTSTRUCT ps; @@ -181,6 +183,49 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { MwLLDispatch(u->ll, up, &p); break; } + case WM_DROPFILES: { + HDROP hDrop = (HDROP)wp; + UINT count; + UINT i, n; + HRESULT hr; + + count = wsymtbl.DragQueryFileW(hDrop, 0xFFFFFFFF, NULL, 0); + + for(i = 0; i < count; i++) { + wchar_t path[MAX_PATH]; + char path_normal[MAX_PATH]; + char* mime_type_normal; + wchar_t* mime_type = NULL; + int mime_type_size; + HRESULT hr; + int i; + + wsymtbl.DragQueryFileW(hDrop, i, path, MAX_PATH); + wsymtbl.DragQueryFileA(hDrop, i, path_normal, MAX_PATH); + hr = wsymtbl.FindMimeFromData(NULL, path, NULL, 0, + NULL, 0, &mime_type, 0x0); + + mime_type_size = WideCharToMultiByte(CP_ACP, 0, mime_type, -1, NULL, 0, NULL, FALSE); + mime_type_normal = malloc(sizeof(mime_type_size)); + WideCharToMultiByte(CP_ACP, 0, mime_type, -1, mime_type_normal, mime_type_size, NULL, FALSE); + + if(mime_type_size == 0) { + printf("Error converting mime type to multi-byte: %ld\n", GetLastError()); + } else { + if(u->ll->common.known_mime_types) { + for(n = 0; n < arrlen(u->ll->common.known_mime_types); n++) { + if(strcmp(mime_type_normal, u->ll->common.known_mime_types[n]) == 0) { + MwDispatchUserHandler(u->ll->common.user, MwNdragAndDropHandler, path_normal); + } + } + } else { + MwDispatchUserHandler(u->ll->common.user, MwNdragAndDropHandler, path_normal); + } + } + } + DragFinish(hDrop); + break; + } case WM_MOUSEMOVE: { MwPoint p; @@ -210,6 +255,7 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { SetCursorPos(p.x, p.y); } + break; } case WM_SIZE: @@ -443,9 +489,6 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { SetWindowPos(r->gdi.hWnd, NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); - r->gdi.dropTarget = NULL; - r->gdi.drag_update = MwFALSE; - return r; } @@ -460,8 +503,6 @@ static void MwLLDestroyImpl(MwLL handle) { if(handle->gdi.cursor != NULL) DestroyCursor(handle->gdi.cursor); - if(handle->gdi.dropTarget) free(handle->gdi.dropTarget); - free(handle); } @@ -575,7 +616,7 @@ static int MwLLPendingImpl(MwLL handle) { (void)handle; - if(handle->gdi.get_clipboard || handle->gdi.get_darktheme || handle->gdi.drag_update) return 1; + if(handle->gdi.get_clipboard || handle->gdi.get_darktheme) return 1; return PeekMessage(&msg, handle->gdi.hWnd, 0, 0, PM_NOREMOVE) ? 1 : 0; } @@ -607,13 +648,11 @@ static void MwLLNextEventImpl(MwLL handle) { handle->gdi.get_darktheme = 0; } - if(handle->gdi.finishing_drag) { - handle->gdi.drag_update = 0; - handle->gdi.finishing_drag = 0; - } - while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { - TranslateMessage(&msg); - DispatchMessage(&msg); + while(PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)) { + if(GetMessage(&msg, NULL, 0, 0)) { + TranslateMessage(&msg); + DispatchMessage(&msg); + } } } @@ -1025,129 +1064,8 @@ static void MwLLClipImpl(MwLL handle, MwRect* rect) { } } -static HRESULT STDMETHODCALLTYPE GDIDT_QueryInterface(IDropTarget* this_, REFIID riid, void** ppv) { - if(IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IDropTarget)) { - *ppv = this_; - this_->lpVtbl->AddRef(this_); - return S_OK; - } - *ppv = NULL; - return E_NOINTERFACE; -} - -static ULONG STDMETHODCALLTYPE GDIDT_AddRef(IDropTarget* this_) { - MwLLGDIDropTarget* self = (MwLLGDIDropTarget*)this_; - return InterlockedIncrement(&self->refCount); -} - -static ULONG STDMETHODCALLTYPE GDIDT_Release(IDropTarget* this_) { - MwLLGDIDropTarget* self = (MwLLGDIDropTarget*)this_; - LONG c = InterlockedDecrement(&self->refCount); - if(c == 0) free(self); - return c; -} - -static HRESULT STDMETHODCALLTYPE GDIDT_DragEnter(IDropTarget* this_, IDataObject* pDataObj, - DWORD grfKeyState, POINTL pt, DWORD* pdwEffect) { - *pdwEffect = DROPEFFECT_COPY; - return S_OK; -} - -static HRESULT STDMETHODCALLTYPE GDIDT_DragOver(IDropTarget* this_, DWORD grfKeyState, - POINTL pt, DWORD* pdwEffect) { - MwLLGDIDropTarget* self = (MwLLGDIDropTarget*)this_; - self->handle->gdi.drag_update = MwTRUE; - - return S_OK; -} - -static HRESULT STDMETHODCALLTYPE GDIDT_DragLeave(IDropTarget* this_) { - MwLLGDIDropTarget* self = (MwLLGDIDropTarget*)this_; - self->handle->gdi.drag_update = MwFALSE; - return S_OK; -} - -static HRESULT STDMETHODCALLTYPE GDIDT_Drop(IDropTarget* this_, IDataObject* pDataObj, - DWORD grfKeyState, POINTL pt, DWORD* pdwEffect) { - FORMATETC fmt = {CF_HDROP, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL}; - STGMEDIUM stg; - MwLLGDIDropTarget* self = (MwLLGDIDropTarget*)this_; - - self->handle->gdi.drag_update = MwTRUE; - - if(pDataObj->lpVtbl->GetData(pDataObj, &fmt, &stg) == S_OK) { - HDROP hDrop = (HDROP)stg.hGlobal; - UINT count = wsymtbl.DragQueryFileW(hDrop, 0xFFFFFFFF, NULL, 0); - UINT i, n; - HRESULT hr; - - for(i = 0; i < count; i++) { - wchar_t path[MAX_PATH]; - char path_normal[MAX_PATH]; - char* mime_type_normal; - wchar_t* mime_type = NULL; - int mime_type_size; - HRESULT hr; - int i; - - wsymtbl.DragQueryFileW(hDrop, i, path, MAX_PATH); - wsymtbl.DragQueryFileA(hDrop, i, path_normal, MAX_PATH); - hr = wsymtbl.FindMimeFromData(NULL, path, NULL, 0, - NULL, 0, &mime_type, 0x0); - - mime_type_size = WideCharToMultiByte(CP_ACP, 0, mime_type, -1, NULL, 0, NULL, FALSE); - mime_type_normal = malloc(sizeof(mime_type_size)); - WideCharToMultiByte(CP_ACP, 0, mime_type, -1, mime_type_normal, mime_type_size, NULL, FALSE); - - if(mime_type_size == 0) { - printf("Error converting mime type to multi-byte: %ld\n", GetLastError()); - } else { - if(self->handle->common.known_mime_types) { - for(n = 0; n < arrlen(self->handle->common.known_mime_types); n++) { - if(strcmp(mime_type_normal, self->handle->common.known_mime_types[n]) == 0) { - MwDispatchUserHandler(self->handle->common.user, MwNdragAndDropHandler, path_normal); - self->handle->gdi.finishing_drag = 1; - } - } - } else { - MwDispatchUserHandler(self->handle->common.user, MwNdragAndDropHandler, path_normal); - self->handle->gdi.finishing_drag = 1; - } - } - free(mime_type); - } - - wsymtbl.ReleaseStgMedium(&stg); - *pdwEffect = DROPEFFECT_COPY; - } else { - *pdwEffect = DROPEFFECT_NONE; - } - return S_OK; -} - -static IDropTargetVtbl DropTarget_Vtbl = { - GDIDT_QueryInterface, - GDIDT_AddRef, - GDIDT_Release, - GDIDT_DragEnter, - GDIDT_DragOver, - GDIDT_DragLeave, - GDIDT_Drop}; - static void MwLLSetupDragAndDropImpl(MwLL handle) { - HRESULT hr = 0; - - handle->gdi.dropTarget = (MwLLGDIDropTarget*)malloc(sizeof(MwLLGDIDropTarget)); - handle->gdi.dropTarget->lpVtbl = &DropTarget_Vtbl; - handle->gdi.dropTarget->refCount = 1; - handle->gdi.dropTarget->hwnd = handle->gdi.hWnd; - handle->gdi.dropTarget->handle = handle; - - hr = wsymtbl.RegisterDragDrop(handle->gdi.hWnd, (IDropTarget*)handle->gdi.dropTarget); - if(!SUCCEEDED(hr)) { - printf("RegisterDragDrop failed; %08lx\n", hr); - return; - } + DragAcceptFiles(handle->gdi.hWnd, TRUE); } static int MwLLGDICallInitImpl(void) { From 9dd96d9cecaa94f2b3b9801a4bf09b8b7b6c45fc Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 23 Jul 2026 00:34:38 -0700 Subject: [PATCH 818/836] dynload drag functions --- include/Mw/LowLevel.h | 1 + src/backend/gdi.c | 52 ++++++++----------------------------------- src/core.c | 11 +++++++++ 3 files changed, 21 insertions(+), 43 deletions(-) diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index b58d54ed0..6089e4898 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -206,6 +206,7 @@ struct _MwLLHandler { void (*focus_out)(MwLL handle, void* data); void (*clipboard)(MwLL handle, void* data); void (*dark_theme)(MwLL handle, void* data); + void (*drag_and_drop)(MwLL handle, void* data); }; struct _MwLLTextDispatchTable { diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 849f8afdc..e9f3d4cd1 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -13,16 +13,13 @@ typedef struct userdata { static struct symtbl { void* lib_dwmapi; void* shell32lib; - void* ole32lib; void* urlmonlib; MwBool has_drag_and_drop; HRESULT(WINAPI* DwmSetWindowAttribute)(HWND hwnd, DWORD dwAttribute, LPCVOID pvAttribute, DWORD cbAttribute); + UINT(WINAPI* DragQueryFileW)(HDROP hDrop, UINT iFile, LPWSTR lpszFile, UINT cch); UINT(WINAPI* DragQueryFileA)(HDROP hDrop, UINT iFile, LPSTR lpszFile, UINT cch); - void(WINAPI* ReleaseStgMedium)(LPSTGMEDIUM unnamedParam1); - HRESULT(WINAPI* OleInitialize)(LPVOID pvReserved); - HRESULT(WINAPI* RegisterDragDrop)(HWND hwnd, LPDROPTARGET pDropTarget); HRESULT(WINAPI* FindMimeFromData)( LPBC pBC, LPCWSTR pwzUrl, @@ -32,9 +29,8 @@ static struct symtbl { DWORD dwMimeFlags, LPWSTR* ppwzMimeOut, DWORD dwReserved); - HRESULT (*CoInitializeEx)( - LPVOID pvReserved, - DWORD dwCoInit); + void (*DragAcceptFiles)(HWND hWnd, BOOL fAccept); + void (*DragFinish)(HDROP hDrop); } wsymtbl; static int is_plgblt_reliable = 0; @@ -215,15 +211,15 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { if(u->ll->common.known_mime_types) { for(n = 0; n < arrlen(u->ll->common.known_mime_types); n++) { if(strcmp(mime_type_normal, u->ll->common.known_mime_types[n]) == 0) { - MwDispatchUserHandler(u->ll->common.user, MwNdragAndDropHandler, path_normal); + MwLLDispatch(u->ll, drag_and_drop, path_normal); } } } else { - MwDispatchUserHandler(u->ll->common.user, MwNdragAndDropHandler, path_normal); + MwLLDispatch(u->ll, drag_and_drop, path_normal); } } } - DragFinish(hDrop); + wsymtbl.DragFinish(hDrop); break; } case WM_MOUSEMOVE: @@ -1065,7 +1061,7 @@ static void MwLLClipImpl(MwLL handle, MwRect* rect) { } static void MwLLSetupDragAndDropImpl(MwLL handle) { - DragAcceptFiles(handle->gdi.hWnd, TRUE); + wsymtbl.DragAcceptFiles(handle->gdi.hWnd, TRUE); } static int MwLLGDICallInitImpl(void) { @@ -1091,9 +1087,6 @@ static int MwLLGDICallInitImpl(void) { if(!(wsymtbl.shell32lib = LoadLibrary("shell32.dll"))) { goto dnd_error; }; - if(!(wsymtbl.ole32lib = LoadLibrary("ole32.dll"))) { - goto dnd_error; - }; if(!(wsymtbl.urlmonlib = LoadLibrary("Urlmon.dll"))) { goto dnd_error; }; @@ -1103,11 +1096,6 @@ static int MwLLGDICallInitImpl(void) { printf(#x "not found, drag and drop will not be supported"); \ goto dnd_error; \ } -#define OLE32_FUNC(x) \ - if(!(wsymtbl.x = (void*)GetProcAddress(wsymtbl.ole32lib, #x))) { \ - printf(#x "not found, drag and drop will not be supported"); \ - goto dnd_error; \ - } #define URLMON_FUNC(x) \ if(!(wsymtbl.x = (void*)GetProcAddress(wsymtbl.urlmonlib, #x))) { \ printf(#x "not found, drag and drop will not be supported"); \ @@ -1116,32 +1104,10 @@ static int MwLLGDICallInitImpl(void) { SHELL32_FUNC(DragQueryFileW); SHELL32_FUNC(DragQueryFileA); - OLE32_FUNC(ReleaseStgMedium); - OLE32_FUNC(RegisterDragDrop); - OLE32_FUNC(CoInitializeEx); + SHELL32_FUNC(DragAcceptFiles); + SHELL32_FUNC(DragFinish); URLMON_FUNC(FindMimeFromData); - hr = wsymtbl.CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); - /* The only other error - COM already being initialized - can be ignored */ - if(hr == RPC_E_CHANGED_MODE) { - goto no_dnd; - } - if(!SUCCEEDED(hr) && hr != S_FALSE) { - printf("CoInitialize error: %08lx\n", hr); - goto dnd_error; - } - hr = OleInitialize(NULL); - if(!SUCCEEDED(hr)) { - if(hr == RPC_E_CHANGED_MODE) { - no_dnd: - printf("Cannot do drag and drop; Microsoft hates you and if you use COM anywhere else it has to be apartment threaded.\n"); - goto dnd_error; - } else { - printf("OleInitialize failed; %08lx. Drag and Drop won't be supported.\n", hr); - goto dnd_error; - } - } - wsymtbl.has_drag_and_drop = MwTRUE; } dnd_error: diff --git a/src/core.c b/src/core.c index 2eca6657a..d1a5d9b97 100644 --- a/src/core.c +++ b/src/core.c @@ -192,6 +192,16 @@ static void llclipboardhandler(MwLL handle, void* data) { MwDispatchUserHandler(h, MwNclipboardHandler, data); } +static void lldraganddrophandler(MwLL handle, void* data) { + MwWidget h = (MwWidget)handle->common.user; + const char * p = data; + if(MwGetInteger(h, MwNdisabled) == 1) return; + + printf("%s\n",p); + MwDispatchUserHandler(h, MwNdragAndDropHandler, data); +} + + /* if both of them are true * 1. widget class is not NULL * 2. parent is NULL @@ -285,6 +295,7 @@ static MwWidget MwCreateWidget_Internal(MwClass widget_class, const char* name, h->lowlevel->common.handler->focus_out = llfocusouthandler; h->lowlevel->common.handler->clipboard = llclipboardhandler; h->lowlevel->common.handler->dark_theme = lldarkthemehandler; + h->lowlevel->common.handler->drag_and_drop = lldraganddrophandler; } if(parent != NULL) arrput(parent->children, h); From e20684f89ba3001fa79b15ba60bcba4cce00b359 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 23 Jul 2026 00:56:13 -0700 Subject: [PATCH 819/836] remove mime type stuff for now Windows's built in function for getting mime type sucks, and I don't want to have to vendor in libmagic. We'll leave this as something the user can handle themselves. --- include/Mw/LowLevel.h | 1 - include/Mw/StringDefs.h | 1 - src/backend/gdi.c | 43 +++-------------------------------------- src/core.c | 6 ------ src/lowlevel.c | 1 - 5 files changed, 3 insertions(+), 49 deletions(-) diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 6089e4898..0c53bd360 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -39,7 +39,6 @@ struct _MwLLCommon { int type; int coordinate_type; MwBool supports_transparency; - const char** known_mime_types; MwLLHandler handler; }; diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index 5f9e3e43d..885e07ee5 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -63,7 +63,6 @@ #define MwNforeground "Sforeground" #define MwNsubForeground "SsubForeground" #define MwNtitleForeground "StitleForeground" -#define MwNacceptedMimeType "SacceptedMimeType" #define MwNvulkanExtension "SEvulkanExtension" diff --git a/src/backend/gdi.c b/src/backend/gdi.c index e9f3d4cd1..aa5f7c14d 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -20,15 +20,6 @@ static struct symtbl { UINT(WINAPI* DragQueryFileW)(HDROP hDrop, UINT iFile, LPWSTR lpszFile, UINT cch); UINT(WINAPI* DragQueryFileA)(HDROP hDrop, UINT iFile, LPSTR lpszFile, UINT cch); - HRESULT(WINAPI* FindMimeFromData)( - LPBC pBC, - LPCWSTR pwzUrl, - LPVOID pBuffer, - DWORD cbSize, - LPCWSTR pwzMimeProposed, - DWORD dwMimeFlags, - LPWSTR* ppwzMimeOut, - DWORD dwReserved); void (*DragAcceptFiles)(HWND hWnd, BOOL fAccept); void (*DragFinish)(HDROP hDrop); } wsymtbl; @@ -188,36 +179,9 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { count = wsymtbl.DragQueryFileW(hDrop, 0xFFFFFFFF, NULL, 0); for(i = 0; i < count; i++) { - wchar_t path[MAX_PATH]; - char path_normal[MAX_PATH]; - char* mime_type_normal; - wchar_t* mime_type = NULL; - int mime_type_size; - HRESULT hr; - int i; - - wsymtbl.DragQueryFileW(hDrop, i, path, MAX_PATH); - wsymtbl.DragQueryFileA(hDrop, i, path_normal, MAX_PATH); - hr = wsymtbl.FindMimeFromData(NULL, path, NULL, 0, - NULL, 0, &mime_type, 0x0); - - mime_type_size = WideCharToMultiByte(CP_ACP, 0, mime_type, -1, NULL, 0, NULL, FALSE); - mime_type_normal = malloc(sizeof(mime_type_size)); - WideCharToMultiByte(CP_ACP, 0, mime_type, -1, mime_type_normal, mime_type_size, NULL, FALSE); - - if(mime_type_size == 0) { - printf("Error converting mime type to multi-byte: %ld\n", GetLastError()); - } else { - if(u->ll->common.known_mime_types) { - for(n = 0; n < arrlen(u->ll->common.known_mime_types); n++) { - if(strcmp(mime_type_normal, u->ll->common.known_mime_types[n]) == 0) { - MwLLDispatch(u->ll, drag_and_drop, path_normal); - } - } - } else { - MwLLDispatch(u->ll, drag_and_drop, path_normal); - } - } + char path[MAX_PATH]; + wsymtbl.DragQueryFileA(hDrop, i, path, MAX_PATH); + MwLLDispatch(u->ll, drag_and_drop, path); } wsymtbl.DragFinish(hDrop); break; @@ -1106,7 +1070,6 @@ static int MwLLGDICallInitImpl(void) { SHELL32_FUNC(DragQueryFileA); SHELL32_FUNC(DragAcceptFiles); SHELL32_FUNC(DragFinish); - URLMON_FUNC(FindMimeFromData); wsymtbl.has_drag_and_drop = MwTRUE; } diff --git a/src/core.c b/src/core.c index d1a5d9b97..eb81536d4 100644 --- a/src/core.c +++ b/src/core.c @@ -707,12 +707,6 @@ void MwSetText(MwWidget handle, const char* key, const char* value) { if(strcmp(key, MwNbackground) == 0 || strcmp(key, MwNforeground) == 0 || strcmp(key, MwNsubBackground) == 0 || strcmp(key, MwNsubForeground) == 0) { MwForceRender(handle); } - - if(strcmp(key, MwNacceptedMimeType) == 0) { - if(handle->lowlevel != NULL) { - arrput(handle->lowlevel->common.known_mime_types, value); - } - } } void MwSetVoid(MwWidget handle, const char* key, void* value) { diff --git a/src/lowlevel.c b/src/lowlevel.c index aca10c275..38a1ab077 100644 --- a/src/lowlevel.c +++ b/src/lowlevel.c @@ -64,7 +64,6 @@ void MwLLCreateCommon(MwLL handle) { memset(handle->common.handler, 0, sizeof(*handle->common.handler)); handle->common.supports_transparency = 0; - handle->common.known_mime_types = NULL; } void MwLLDestroyCommon(MwLL handle) { From f6c129b31c479e5f2ae31c025b99e9d204e8f386 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 23 Jul 2026 01:00:52 -0700 Subject: [PATCH 820/836] win32: pass utf8 function to dnd --- src/backend/gdi.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index aa5f7c14d..d4a84182d 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -19,7 +19,6 @@ static struct symtbl { HRESULT(WINAPI* DwmSetWindowAttribute)(HWND hwnd, DWORD dwAttribute, LPCVOID pvAttribute, DWORD cbAttribute); UINT(WINAPI* DragQueryFileW)(HDROP hDrop, UINT iFile, LPWSTR lpszFile, UINT cch); - UINT(WINAPI* DragQueryFileA)(HDROP hDrop, UINT iFile, LPSTR lpszFile, UINT cch); void (*DragAcceptFiles)(HWND hWnd, BOOL fAccept); void (*DragFinish)(HDROP hDrop); } wsymtbl; @@ -179,8 +178,13 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { count = wsymtbl.DragQueryFileW(hDrop, 0xFFFFFFFF, NULL, 0); for(i = 0; i < count; i++) { + wchar_t wpath[MAX_PATH]; char path[MAX_PATH]; - wsymtbl.DragQueryFileA(hDrop, i, path, MAX_PATH); + wsymtbl.DragQueryFileW(hDrop, i, wpath, MAX_PATH); + + memset(path, 0, sizeof(path)); + WideCharToMultiByte(CP_UTF8, 0, wpath, -1, path, sizeof(path) - 1, NULL, NULL); + MwLLDispatch(u->ll, drag_and_drop, path); } wsymtbl.DragFinish(hDrop); @@ -1067,7 +1071,6 @@ static int MwLLGDICallInitImpl(void) { } SHELL32_FUNC(DragQueryFileW); - SHELL32_FUNC(DragQueryFileA); SHELL32_FUNC(DragAcceptFiles); SHELL32_FUNC(DragFinish); From 39a458d80f34949a2c6a5242785b45884381ca2e Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Thu, 23 Jul 2026 18:24:56 +0900 Subject: [PATCH 821/836] win32: remove unused urlmon dep --- src/backend/gdi.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index d4a84182d..7f4ae6d69 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -13,7 +13,6 @@ typedef struct userdata { static struct symtbl { void* lib_dwmapi; void* shell32lib; - void* urlmonlib; MwBool has_drag_and_drop; HRESULT(WINAPI* DwmSetWindowAttribute)(HWND hwnd, DWORD dwAttribute, LPCVOID pvAttribute, DWORD cbAttribute); @@ -1055,20 +1054,12 @@ static int MwLLGDICallInitImpl(void) { if(!(wsymtbl.shell32lib = LoadLibrary("shell32.dll"))) { goto dnd_error; }; - if(!(wsymtbl.urlmonlib = LoadLibrary("Urlmon.dll"))) { - goto dnd_error; - }; #define SHELL32_FUNC(x) \ if(!(wsymtbl.x = (void*)GetProcAddress(wsymtbl.shell32lib, #x))) { \ printf(#x "not found, drag and drop will not be supported"); \ goto dnd_error; \ } -#define URLMON_FUNC(x) \ - if(!(wsymtbl.x = (void*)GetProcAddress(wsymtbl.urlmonlib, #x))) { \ - printf(#x "not found, drag and drop will not be supported"); \ - goto dnd_error; \ - } SHELL32_FUNC(DragQueryFileW); SHELL32_FUNC(DragAcceptFiles); From 7c2ab989fa30ef5a7641c927c93f2a49c31f4fb9 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Fri, 24 Jul 2026 20:51:17 -0700 Subject: [PATCH 822/836] formatting --- include/Mw/TypeDefs.h | 2 +- src/backend/gdi.c | 35 ++++++++++++++++++----------------- src/core.c | 40 ++++++++++++++++++++-------------------- 3 files changed, 39 insertions(+), 38 deletions(-) diff --git a/include/Mw/TypeDefs.h b/include/Mw/TypeDefs.h index fbc91fac9..ad072a343 100644 --- a/include/Mw/TypeDefs.h +++ b/include/Mw/TypeDefs.h @@ -274,7 +274,7 @@ struct _MwClass { MwHandlerChildrenProp children_prop_change; MwHandlerClipboardReceived clipboard; MwHandlerProps props_change; - MwHandler drag_and_drop; + MwHandler drag_and_drop; void* reserved2; void* reserved3; }; diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 7f4ae6d69..2abc8b39b 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -77,7 +77,7 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { switch(msg) { case WM_INITDIALOG: - return TRUE; + return TRUE; case WM_PAINT: { PAINTSTRUCT ps; @@ -168,25 +168,26 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { MwLLDispatch(u->ll, up, &p); break; } - case WM_DROPFILES: { - HDROP hDrop = (HDROP)wp; - UINT count; - UINT i, n; - HRESULT hr; + case WM_DROPFILES: + { + HDROP hDrop = (HDROP)wp; + UINT count; + UINT i, n; + HRESULT hr; - count = wsymtbl.DragQueryFileW(hDrop, 0xFFFFFFFF, NULL, 0); + count = wsymtbl.DragQueryFileW(hDrop, 0xFFFFFFFF, NULL, 0); - for(i = 0; i < count; i++) { - wchar_t wpath[MAX_PATH]; - char path[MAX_PATH]; - wsymtbl.DragQueryFileW(hDrop, i, wpath, MAX_PATH); + for(i = 0; i < count; i++) { + wchar_t wpath[MAX_PATH]; + char path[MAX_PATH]; + wsymtbl.DragQueryFileW(hDrop, i, wpath, MAX_PATH); - memset(path, 0, sizeof(path)); - WideCharToMultiByte(CP_UTF8, 0, wpath, -1, path, sizeof(path) - 1, NULL, NULL); + memset(path, 0, sizeof(path)); + WideCharToMultiByte(CP_UTF8, 0, wpath, -1, path, sizeof(path) - 1, NULL, NULL); MwLLDispatch(u->ll, drag_and_drop, path); - } - wsymtbl.DragFinish(hDrop); + } + wsymtbl.DragFinish(hDrop); break; } case WM_MOUSEMOVE: @@ -612,9 +613,9 @@ static void MwLLNextEventImpl(MwLL handle) { handle->gdi.get_darktheme = 0; } while(PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)) { - if(GetMessage(&msg, NULL, 0, 0)) { + if(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); - DispatchMessage(&msg); + DispatchMessage(&msg); } } } diff --git a/src/core.c b/src/core.c index eb81536d4..251d25545 100644 --- a/src/core.c +++ b/src/core.c @@ -145,8 +145,9 @@ static void llclosehandler(MwLL handle, void* data) { } static void llmovehandler(MwLL handle, void* data) { - MwWidget h = (MwWidget)handle->common.user; - MwPoint* p = data; + MwWidget h = (MwWidget)handle->common.user; + MwPoint* p = data; + h->mouse_point.x = p->x; h->mouse_point.y = p->y; @@ -193,15 +194,13 @@ static void llclipboardhandler(MwLL handle, void* data) { } static void lldraganddrophandler(MwLL handle, void* data) { - MwWidget h = (MwWidget)handle->common.user; - const char * p = data; + MwWidget h = (MwWidget)handle->common.user; + const char* p = data; if(MwGetInteger(h, MwNdisabled) == 1) return; - printf("%s\n",p); MwDispatchUserHandler(h, MwNdragAndDropHandler, data); } - /* if both of them are true * 1. widget class is not NULL * 2. parent is NULL @@ -282,20 +281,20 @@ static MwWidget MwCreateWidget_Internal(MwClass widget_class, const char* name, if(parent == NULL) h->top_step = 1; if(h->lowlevel != NULL) { - h->lowlevel->common.user = h; - h->lowlevel->common.handler->draw = lldrawhandler; - h->lowlevel->common.handler->up = lluphandler; - h->lowlevel->common.handler->down = lldownhandler; - h->lowlevel->common.handler->resize = llresizehandler; - h->lowlevel->common.handler->close = llclosehandler; - h->lowlevel->common.handler->move = llmovehandler; - h->lowlevel->common.handler->key = llkeyhandler; - h->lowlevel->common.handler->key_released = llkeyrelhandler; - h->lowlevel->common.handler->focus_in = llfocusinhandler; - h->lowlevel->common.handler->focus_out = llfocusouthandler; - h->lowlevel->common.handler->clipboard = llclipboardhandler; - h->lowlevel->common.handler->dark_theme = lldarkthemehandler; - h->lowlevel->common.handler->drag_and_drop = lldraganddrophandler; + h->lowlevel->common.user = h; + h->lowlevel->common.handler->draw = lldrawhandler; + h->lowlevel->common.handler->up = lluphandler; + h->lowlevel->common.handler->down = lldownhandler; + h->lowlevel->common.handler->resize = llresizehandler; + h->lowlevel->common.handler->close = llclosehandler; + h->lowlevel->common.handler->move = llmovehandler; + h->lowlevel->common.handler->key = llkeyhandler; + h->lowlevel->common.handler->key_released = llkeyrelhandler; + h->lowlevel->common.handler->focus_in = llfocusinhandler; + h->lowlevel->common.handler->focus_out = llfocusouthandler; + h->lowlevel->common.handler->clipboard = llclipboardhandler; + h->lowlevel->common.handler->dark_theme = lldarkthemehandler; + h->lowlevel->common.handler->drag_and_drop = lldraganddrophandler; } if(parent != NULL) arrput(parent->children, h); @@ -573,6 +572,7 @@ int MwStep(MwWidget handle) { MwFreeWidget(handle); return 1; } + return 0; } From 974947b400577d56246197583b5b6b3d35d38863 Mon Sep 17 00:00:00 2001 From: Nishi Date: Sun, 26 Jul 2026 01:21:50 +0900 Subject: [PATCH 823/836] remove warnings --- src/backend/gdi.c | 4 +--- src/core.c | 3 ++- src/text/gdi.c | 2 +- src/widget/entry.c | 2 ++ 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 2abc8b39b..71bfcfb7a 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -172,8 +172,7 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { { HDROP hDrop = (HDROP)wp; UINT count; - UINT i, n; - HRESULT hr; + UINT i; count = wsymtbl.DragQueryFileW(hDrop, 0xFFFFFFFF, NULL, 0); @@ -1034,7 +1033,6 @@ static void MwLLSetupDragAndDropImpl(MwLL handle) { static int MwLLGDICallInitImpl(void) { void* ntdll; - HRESULT hr; memset(&wsymtbl, 0, sizeof(wsymtbl)); diff --git a/src/core.c b/src/core.c index 251d25545..4d584d0bf 100644 --- a/src/core.c +++ b/src/core.c @@ -195,7 +195,6 @@ static void llclipboardhandler(MwLL handle, void* data) { static void lldraganddrophandler(MwLL handle, void* data) { MwWidget h = (MwWidget)handle->common.user; - const char* p = data; if(MwGetInteger(h, MwNdisabled) == 1) return; MwDispatchUserHandler(h, MwNdragAndDropHandler, data); @@ -328,7 +327,9 @@ static MwWidget MwCreateWidget_Internal(MwClass widget_class, const char* name, #if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_GDI_TEXT) if(IsFirstVisible(h)) { +#ifdef USE_STB_TRUETYPE font_setup: +#endif h->root_font = MwFontLoad(MwTTFData, MwTTFDataSize); h->root_boldfont = MwFontLoad(MwBoldTTFData, MwBoldTTFDataSize); h->root_monofont = MwFontLoad(MwMonospaceTTFData, MwMonospaceTTFDataSize); diff --git a/src/text/gdi.c b/src/text/gdi.c index b5f3ced00..b965e2dd7 100644 --- a/src/text/gdi.c +++ b/src/text/gdi.c @@ -245,7 +245,7 @@ static BOOL WINAPI _RemoveFontMemResourceExPolyFill(HANDLE h) { int MwFL_GDISetup(void) { void* gdilib = LoadLibrary("gdi32.dll"); if(!gdilib) { - printf("gdi32.dll not found(?????)\n"); + printf("gdi32.dll not found(what)\n"); } else { _AddFontMemResourceEx = (void*)GetProcAddress(gdilib, "AddFontMemResourceEx"); if(!_AddFontMemResourceEx) { diff --git a/src/widget/entry.c b/src/widget/entry.c index dd867d7d8..44f5a42fd 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -180,6 +180,8 @@ static void mouse_down(MwWidget handle, void* ptr) { MwEntry t = handle->internal; MwWidget topmost_parent = handle->parent; + (void)ptr; + while(topmost_parent->parent) topmost_parent = topmost_parent->parent; for(i = 0; i < arrlen(topmost_parent->monitored_entries); i++) { From 85b66d0d9af1e0654d81175d39f6bab54910497f Mon Sep 17 00:00:00 2001 From: Nishi Date: Sun, 26 Jul 2026 01:44:01 +0900 Subject: [PATCH 824/836] fix font rendering --- include/Mw/LowLevel/GDI.h | 3 +-- include/Mw/StringDefs.h | 1 - src/backend/cairo.c | 12 ++++++------ src/backend/gdi.c | 16 +++++++++------- src/core.c | 2 +- src/dialog/messagebox.c | 6 +++--- src/text/gdi.c | 6 +++--- src/text/text.c | 1 + src/widget/entry.c | 2 +- 9 files changed, 25 insertions(+), 24 deletions(-) diff --git a/include/Mw/LowLevel/GDI.h b/include/Mw/LowLevel/GDI.h index e505b0a40..d2e247350 100644 --- a/include/Mw/LowLevel/GDI.h +++ b/include/Mw/LowLevel/GDI.h @@ -34,8 +34,7 @@ struct _MwLLGDI { struct _MwLLGDIColor { struct _MwLLCommonColor common; - COLORREF color; - HBRUSH brush; + HBRUSH brush; }; struct _MwLLGDIPixmap { diff --git a/include/Mw/StringDefs.h b/include/Mw/StringDefs.h index 885e07ee5..6ad4e4647 100644 --- a/include/Mw/StringDefs.h +++ b/include/Mw/StringDefs.h @@ -64,7 +64,6 @@ #define MwNsubForeground "SsubForeground" #define MwNtitleForeground "StitleForeground" - #define MwNvulkanExtension "SEvulkanExtension" #define MwNvulkanLayer "SEvulkanLayer" #define MwNvulkanConfig "VEvulkanConfig" diff --git a/src/backend/cairo.c b/src/backend/cairo.c index d70de1b94..65380fbaf 100644 --- a/src/backend/cairo.c +++ b/src/backend/cairo.c @@ -212,8 +212,8 @@ static void MwLLFreeColorImpl(MwLLColor color) {} static MwBool lmao = MwFALSE; static int MwLLPendingImpl(MwLL handle) { - lmao = !lmao; - return lmao; + lmao = !lmao; + return lmao; } static void MwLLNextEventImpl(MwLL handle) { MwLLDispatch(handle, draw, NULL); @@ -257,10 +257,10 @@ static void MwLLRaiseImpl(MwLL handle) {} static void MwLLClipImpl(MwLL handle, MwRect* rect) {} static void MwLLSetupDragAndDropImpl(MwLL handle) {} static int MwLLCairoCallInitImpl(void) { - if(cairo_load_funcs() != 0) { - return 1; - } - return 0; + if(cairo_load_funcs() != 0) { + return 1; + } + return 0; } #include "call.c" CALL(Cairo); diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 71bfcfb7a..89caab2e5 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -170,9 +170,9 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { } case WM_DROPFILES: { - HDROP hDrop = (HDROP)wp; - UINT count; - UINT i; + HDROP hDrop = (HDROP)wp; + UINT count; + UINT i; count = wsymtbl.DragQueryFileW(hDrop, 0xFFFFFFFF, NULL, 0); @@ -524,7 +524,8 @@ static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { } static void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { - HDC dc = GetDC(handle->gdi.hWnd); + HDC dc = GetDC(handle->gdi.hWnd); + COLORREF color; if(r > 255) r = 255; if(g > 255) g = 255; @@ -533,9 +534,10 @@ static void MwLLColorUpdateImpl(MwLL handle, MwLLColor c, int r, int g, int b) { if(g < 0) g = 0; if(b < 0) b = 0; + color = GetNearestColor(dc, RGB(r, g, b)); + if(c->gdi.brush != NULL) DeleteObject(c->gdi.brush); - c->gdi.color = GetNearestColor(dc, RGB(r, g, b)); - c->gdi.brush = CreateSolidBrush(c->gdi.color); + c->gdi.brush = CreateSolidBrush(color); c->common.red = r; c->common.green = g; c->common.blue = b; @@ -1032,7 +1034,7 @@ static void MwLLSetupDragAndDropImpl(MwLL handle) { } static int MwLLGDICallInitImpl(void) { - void* ntdll; + void* ntdll; memset(&wsymtbl, 0, sizeof(wsymtbl)); diff --git a/src/core.c b/src/core.c index 4d584d0bf..9d149d846 100644 --- a/src/core.c +++ b/src/core.c @@ -194,7 +194,7 @@ static void llclipboardhandler(MwLL handle, void* data) { } static void lldraganddrophandler(MwLL handle, void* data) { - MwWidget h = (MwWidget)handle->common.user; + MwWidget h = (MwWidget)handle->common.user; if(MwGetInteger(h, MwNdisabled) == 1) return; MwDispatchUserHandler(h, MwNdragAndDropHandler, data); diff --git a/src/dialog/messagebox.c b/src/dialog/messagebox.c index 6a96f6d2f..ff72bc848 100644 --- a/src/dialog/messagebox.c +++ b/src/dialog/messagebox.c @@ -68,9 +68,9 @@ MwWidget MwMessageBox(MwWidget handle, const char* text, const char* title, unsi if(flag & MwMB_BUTTONYES) spawn_button(window, w - (x += 8 + 80), h - 8 - 24, MwMB_BUTTONYES, "Yes"); if((flag & MwMB_ICONMASK) != 0) { - MwWidget icon; - MwLLPixmap px; - MwU32* data = NULL; + MwWidget icon; + MwLLPixmap px; + MwU32* data = NULL; icon = MwCreateWidget(MwImageClass, "image", window, 8, (h - 48) / 2, 48, 48); diff --git a/src/text/gdi.c b/src/text/gdi.c index b965e2dd7..97e687099 100644 --- a/src/text/gdi.c +++ b/src/text/gdi.c @@ -28,10 +28,10 @@ static int GDI_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const c tw = MwTextWidth(handle, ttf, text); th = MwTextHeight(handle, ttf, text); - if(handle->lowlevel->common.type == MwLLBackendGDI && MwGetInteger(handle, MwNmodernLook) == MwFALSE) { + if(handle->lowlevel->common.type == MwLLBackendGDI) { HFONT old_font = SelectObject(handle->lowlevel->gdi.hDC, ttf->font); int old_bkmode = SetBkMode(handle->lowlevel->gdi.hDC, TRANSPARENT); - COLORREF old_color = SetTextColor(handle->lowlevel->gdi.hDC, color->gdi.color); + COLORREF old_color = SetTextColor(handle->lowlevel->gdi.hDC, RGB(color->common.red, color->common.green, color->common.blue)); TextOut(handle->lowlevel->gdi.hDC, point->x, point->y - th / 2, t, strlen(t)); @@ -180,7 +180,7 @@ static HANDLE WINAPI _AddFontMemResourceExPolyFill(PVOID pFileView, DWORD cjSize CHAR temp_path_dir[MAX_PATH]; CHAR temp_path_name[MAX_PATH]; HANDLE tempFile = NULL; - DWORD hr; + DWORD hr; (void)pvResrved; diff --git a/src/text/text.c b/src/text/text.c index 9ad1e940f..9d7d184f2 100644 --- a/src/text/text.c +++ b/src/text/text.c @@ -91,6 +91,7 @@ void MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, fadedColor->common.red = fadedColor->common.red + (c->common.red - fadedColor->common.red) * 0.5; fadedColor->common.green = fadedColor->common.green + (c->common.green - fadedColor->common.green) * 0.5; fadedColor->common.blue = fadedColor->common.blue + (c->common.blue - fadedColor->common.blue) * 0.5; + MwLLColorUpdate(handle->lowlevel, fadedColor, fadedColor->common.red, fadedColor->common.green, fadedColor->common.blue); MwLLFreeColor(c); } diff --git a/src/widget/entry.c b/src/widget/entry.c index 44f5a42fd..9d423bf8a 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -9,7 +9,7 @@ static int wcreate(MwWidget handle) { t->right = 0; t->length = 0; t->cursor_blink_timer = 0; - t->active = 0; + t->active = 0; handle->internal = t; while(topmost_parent->parent) topmost_parent = topmost_parent->parent; From bde66f13a517c18bc80c1ff30b809c508ccb2864 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Sat, 8 Aug 2026 15:26:42 -0700 Subject: [PATCH 825/836] fix the wall of warnings on VS2022 --- src/draw.c | 158 +++++++++++++++++++++++++++++------------------------ 1 file changed, 87 insertions(+), 71 deletions(-) diff --git a/src/draw.c b/src/draw.c index ce86d9016..2314c0281 100644 --- a/src/draw.c +++ b/src/draw.c @@ -43,9 +43,9 @@ static void color_set_disabled_if_disabled(MwWidget handle, MwLLColor rgb) { MwLLColor c = handle->parent == NULL ? NULL : MwParseColor(handle->parent, MwGetText(handle->parent, MwNbackground)); if(c != NULL) { - rgb->common.red = rgb->common.red + (c->common.red - rgb->common.red) * 0.5; - rgb->common.green = rgb->common.green + (c->common.green - rgb->common.green) * 0.5; - rgb->common.blue = rgb->common.blue + (c->common.blue - rgb->common.blue) * 0.5; + rgb->common.red = (MwU8)(rgb->common.red + (c->common.red - rgb->common.red) * 0.5); + rgb->common.green = (MwU8)(rgb->common.green + (c->common.green - rgb->common.green) * 0.5); + rgb->common.blue = (MwU8)(rgb->common.blue + (c->common.blue - rgb->common.blue) * 0.5); MwLLColorUpdate(handle->lowlevel, rgb, rgb->common.red, rgb->common.green, rgb->common.blue); MwLLFreeColor(c); @@ -124,8 +124,11 @@ void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color) { int ColorDiff = get_color_diff(handle); double darkenStep = (ColorDiff / 2.) / rect->height; unsigned long sz = 1 * rect->height * 4; - unsigned char* data = malloc(sz); + unsigned char* data = malloc(sz*2); MwRect r = *rect; + if(!data) { + return; + } if(rect->width <= 0 || rect->height <= 0) { free(data); return; @@ -138,7 +141,7 @@ void MwDrawRectFading(MwWidget handle, MwRect* rect, MwLLColor color) { r.height -= 2; for(y = 0; y < rect->height; y++) { - MwLLColor col = MwLightenColor(handle, color, -darken, -darken, -darken); + MwLLColor col = MwLightenColor(handle, color, (int)-darken, (int)-darken, (int)-darken); int idx = y * 4; color_set_disabled_if_disabled(handle, col); data[idx] = col->common.red; @@ -458,11 +461,11 @@ void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int invert, p1[1].x = rect->x; p1[1].y = rect->y + rect->height; - p1[2].x = rect->x + c * border; - p1[2].y = rect->y + rect->height - s * border; + p1[2].x = (int)(rect->x + c * border); + p1[2].y = (int)(rect->y + rect->height - s * border); p1[3].x = rect->x + rect->width / 2; - p1[3].y = rect->y + border; + p1[3].y = (int)(rect->y + border); p2[0].x = rect->x + rect->width / 2; p2[0].y = rect->y; @@ -470,14 +473,14 @@ void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int invert, p2[1].x = rect->x + rect->width; p2[1].y = rect->y + rect->height; - p2[2].x = rect->x + rect->width - c * border; - p2[2].y = rect->y + rect->height - s * border; + p2[2].x = (int)(rect->x + rect->width - c * border); + p2[2].y = (int)(rect->y + rect->height - s * border); p2[3].x = rect->x + rect->width / 2; - p2[3].y = rect->y + border; + p2[3].y = (int)(rect->y + border); - p3[0].x = rect->x + c * border; - p3[0].y = rect->y + rect->height - s * border; + p3[0].x = (int)(rect->x + c * border); + p3[0].y = (int)(rect->y + rect->height - s * border); p3[1].x = rect->x; p3[1].y = rect->y + rect->height; @@ -485,30 +488,30 @@ void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int invert, p3[2].x = rect->x + rect->width; p3[2].y = rect->y + rect->height; - p3[3].x = rect->x + rect->width - c * border; - p3[3].y = rect->y + rect->height - s * border; + p3[3].x = (int)(rect->x + rect->width - c * border); + p3[3].y = (int)(rect->y + rect->height - s * border); MwLLPolygon(handle->lowlevel, p1, 4, invert ? darker : lighter); MwLLPolygon(handle->lowlevel, p2, 4, invert ? lighter : darker); MwLLPolygon(handle->lowlevel, p3, 4, invert ? lighter : darker); - p4[0].x = rect->x + c * border; - p4[0].y = rect->y + rect->height - s * border; + p4[0].x = (int)(rect->x + c * border); + p4[0].y = (int)(rect->y + rect->height - s * border); - p4[1].x = rect->x + rect->width - c * border; - p4[1].y = rect->y + rect->height - s * border; + p4[1].x = (int)(rect->x + rect->width - c * border); + p4[1].y = (int)(rect->y + rect->height - s * border); p4[2].x = rect->x + rect->width / 2; - p4[2].y = rect->y + border; + p4[2].y = (int)(rect->y + border); } else if(direction == MwSOUTH) { p1[0].x = rect->x; p1[0].y = rect->y; - p1[1].x = rect->x + c * border; - p1[1].y = rect->y + s * border; + p1[1].x = (int)(rect->x + c * border); + p1[1].y = (int)(rect->y + s * border); - p1[2].x = rect->x + rect->width - c * border; - p1[2].y = rect->y + s * border; + p1[2].x = (int)(rect->x + rect->width - c * border); + p1[2].y = (int)(rect->y + s * border); p1[3].x = rect->x + rect->width; p1[3].y = rect->y; @@ -516,11 +519,11 @@ void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int invert, p2[0].x = rect->x; p2[0].y = rect->y; - p2[1].x = rect->x + c * border; - p2[1].y = rect->y + s * border; + p2[1].x = (int)(rect->x + c * border); + p2[1].y = (int)(rect->y + s * border); p2[2].x = rect->x + rect->width / 2; - p2[2].y = rect->y + rect->height - border; + p2[2].y = (int)(rect->y + rect->height - border); p2[3].x = rect->x + rect->width / 2; p2[3].y = rect->y + rect->height; @@ -532,32 +535,32 @@ void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int invert, p3[1].y = rect->y + rect->height; p3[2].x = rect->x + rect->width / 2; - p3[2].y = rect->y + rect->height - border; + p3[2].y = (int)(rect->y + rect->height - border); - p3[3].x = rect->x + rect->width - c * border; - p3[3].y = rect->y + s * border; + p3[3].x = (int)(rect->x + rect->width - c * border); + p3[3].y = (int)(rect->y + s * border); MwLLPolygon(handle->lowlevel, p1, 4, invert ? darker : lighter); MwLLPolygon(handle->lowlevel, p2, 4, invert ? darker : lighter); MwLLPolygon(handle->lowlevel, p3, 4, invert ? lighter : darker); - p4[0].x = rect->x + c * border; - p4[0].y = rect->y + s * border; + p4[0].x = (int)(rect->x + c * border); + p4[0].y = (int)(rect->y + s * border); - p4[1].x = rect->x + rect->width - c * border; - p4[1].y = rect->y + s * border; + p4[1].x = (int)(rect->x + rect->width - c * border); + p4[1].y = (int)(rect->y + s * border); p4[2].x = rect->x + rect->width / 2; - p4[2].y = rect->y + rect->height - border; + p4[2].y = (int)(rect->y + rect->height - border); } else if(direction == MwEAST) { p1[0].x = rect->x; p1[0].y = rect->y; - p1[1].x = rect->x + c * border; - p1[1].y = rect->y + s * border; + p1[1].x = (int)(rect->x + c * border); + p1[1].y = (int)(rect->y + s * border); - p1[2].x = rect->x + c * border; - p1[2].y = rect->y + rect->height - s * border; + p1[2].x = (int)(rect->x + c * border); + p1[2].y = (int)(rect->y + rect->height - s * border); p1[3].x = rect->x; p1[3].y = rect->y + rect->height; @@ -568,14 +571,14 @@ void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int invert, p2[1].x = rect->x + rect->width; p2[1].y = rect->y + rect->height / 2; - p2[2].x = rect->x + rect->width - border; + p2[2].x = (int)(rect->x + rect->width - border); p2[2].y = rect->y + rect->height / 2; - p2[3].x = rect->x + c * border; - p2[3].y = rect->y + s * border; + p2[3].x = (int)(rect->x + c * border); + p2[3].y = (int)(rect->y + s * border); - p3[0].x = rect->x + c * border; - p3[0].y = rect->y + rect->height - s * border; + p3[0].x = (int)(rect->x + c * border); + p3[0].y = (int)(rect->y + rect->height - s * border); p3[1].x = rect->x; p3[1].y = rect->y + rect->height; @@ -583,30 +586,30 @@ void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int invert, p3[2].x = rect->x + rect->width; p3[2].y = rect->y + rect->height / 2; - p3[3].x = rect->x + rect->width - border; + p3[3].x = (int)(rect->x + rect->width - border); p3[3].y = rect->y + rect->height / 2; MwLLPolygon(handle->lowlevel, p1, 4, invert ? darker : lighter); MwLLPolygon(handle->lowlevel, p2, 4, invert ? darker : lighter); MwLLPolygon(handle->lowlevel, p3, 4, invert ? lighter : darker); - p4[0].x = rect->x + rect->width - border; + p4[0].x = (int)(rect->x + rect->width - border); p4[0].y = rect->y + rect->height / 2; - p4[1].x = rect->x + c * border; - p4[1].y = rect->y + rect->height - s * border; + p4[1].x = (int)(rect->x + c * border); + p4[1].y = (int)(rect->y + rect->height - s * border); - p4[2].x = rect->x + c * border; - p4[2].y = rect->y + s * border; + p4[2].x = (int)(rect->x + c * border); + p4[2].y = (int)(rect->y + s * border); } else if(direction == MwWEST) { p1[0].x = rect->x; p1[0].y = rect->y + rect->height / 2; - p1[1].x = rect->x + border; + p1[1].x = (int)(rect->x + border); p1[1].y = rect->y + rect->height / 2; - p1[2].x = rect->x + rect->width - c * border; - p1[2].y = rect->y + s * border; + p1[2].x = (int)(rect->x + rect->width - c * border); + p1[2].y = (int)(rect->y + s * border); p1[3].x = rect->x + rect->width; p1[3].y = rect->y; @@ -614,11 +617,11 @@ void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int invert, p2[0].x = rect->x; p2[0].y = rect->y + rect->height / 2; - p2[1].x = rect->x + border; + p2[1].x = (int)(rect->x + border); p2[1].y = rect->y + rect->height / 2; - p2[2].x = rect->x + rect->width - c * border; - p2[2].y = rect->y + rect->height - s * border; + p2[2].x = (int)(rect->x + rect->width - c * border); + p2[2].y = (int)(rect->y + rect->height - s * border); p2[3].x = rect->x + rect->width; p2[3].y = rect->y + rect->height; @@ -626,11 +629,11 @@ void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int invert, p3[0].x = rect->x + rect->width; p3[0].y = rect->y; - p3[1].x = rect->x + rect->width - c * border; - p3[1].y = rect->y + s * border; + p3[1].x = (int)(rect->x + rect->width - c * border); + p3[1].y = (int)(rect->y + s * border); - p3[2].x = rect->x + rect->width - c * border; - p3[2].y = rect->y + rect->height - s * border; + p3[2].x = (int)(rect->x + rect->width - c * border); + p3[2].y = (int)(rect->y + rect->height - s * border); p3[3].x = rect->x + rect->width; p3[3].y = rect->y + rect->height; @@ -639,14 +642,14 @@ void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int invert, MwLLPolygon(handle->lowlevel, p2, 4, invert ? lighter : darker); MwLLPolygon(handle->lowlevel, p3, 4, invert ? lighter : darker); - p4[0].x = rect->x + border; + p4[0].x = (int)(rect->x + border); p4[0].y = rect->y + rect->height / 2; - p4[1].x = rect->x + rect->width - c * border; - p4[1].y = rect->y + rect->height - s * border; + p4[1].x = (int)(rect->x + rect->width - c * border); + p4[1].y = (int)(rect->y + rect->height - s * border); - p4[2].x = rect->x + rect->width - c * border; - p4[2].y = rect->y + s * border; + p4[2].x = (int)(rect->x + rect->width - c * border); + p4[2].y = (int)(rect->y + s * border); } MwLLPolygon(handle->lowlevel, p4, 3, col); @@ -830,13 +833,13 @@ void MwPixmapReloadRaw(MwLLPixmap px, unsigned char* rgb) { a /= 255; if(a != 0) { - pout[0] = pin[0] * a; - pout[1] = pin[1] * a; - pout[2] = pin[2] * a; + pout[0] = (unsigned char)(pin[0] * a); + pout[1] = (unsigned char)(pin[1] * a); + pout[2] = (unsigned char)(pin[2] * a); - pout[0] += base->common.red * (1 - a); - pout[1] += base->common.green * (1 - a); - pout[2] += base->common.blue * (1 - a); + pout[0] += (unsigned char)(base->common.red * (1 - a)); + pout[1] += (unsigned char)(base->common.green * (1 - a)); + pout[2] += (unsigned char)(base->common.blue * (1 - a)); pout[3] = 255; } } @@ -868,6 +871,11 @@ MwLLPixmap MwLoadIcon(MwWidget handle, MwU32* data) { MwLLPixmap px; int i; + if(!rgba) { + printf("Null malloc! out of memory?\n"); + return NULL; + } + memset(rgba, 0, width * height * 4); for(i = 0; i < width * height; i++) { @@ -905,7 +913,11 @@ MwLLPixmap MwLoadXPM(MwWidget handle, char** data) { sh_new_strdup(c); +#if defined(_MSC_VER) && (_MSC_VER >= 1400) + sscanf_s(data[0], "%d %d %d %d", &col, &row, &colors, &cpp); +#else sscanf(data[0], "%d %d %d %d", &col, &row, &colors, &cpp); +#endif for(i = 0; i < colors; i++) { char k[128]; @@ -942,6 +954,10 @@ MwLLPixmap MwLoadXPM(MwWidget handle, char** data) { rgb = malloc(row * col * 4); comp = malloc(cpp + 1); + if(!rgb || !comp) { + printf("Null malloc! Out of memory?"); + return NULL; + } comp[cpp] = 0; for(y = 0; y < row; y++) { for(x = 0; x < col; x++) { From 6f976ae0cedc8d5684ec7152bd29adaf96c8e1e3 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Sat, 8 Aug 2026 16:02:53 -0700 Subject: [PATCH 826/836] more fuller suite of error mutes for vs2022 --- CMakeLists.txt | 2 ++ src/abstract/directory.c | 32 +++++++++++--------- src/backend/gdi.c | 63 ++++++++++++++++++++++++++++++++++++++-- src/dialog/colorpicker.c | 22 +++++++------- src/string.c | 51 ++++++++++++++++++++++++++++++-- src/text/text.c | 21 ++++++++++++-- src/widget/button.c | 12 ++++---- src/widget/listbox.c | 12 +++++++- src/widget/progressbar.c | 2 +- src/widget/scrollbar.c | 6 ++-- src/widget/viewport.c | 10 +++++-- 11 files changed, 189 insertions(+), 44 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e7aefde93..b9882e4f1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -330,11 +330,13 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows" OR CMAKE_SYSTEM_NAME STREQUAL "MSYS") USE_GDI ) list(APPEND LIBRARIES gdi32 ole32 winmm uuid) + if(NOT MSVC) target_link_options( Mw PRIVATE -static-libgcc ) + endif() elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") # target_sources( # Mw diff --git a/src/abstract/directory.c b/src/abstract/directory.c index ac5a382d1..65db1c8e7 100644 --- a/src/abstract/directory.c +++ b/src/abstract/directory.c @@ -19,15 +19,18 @@ typedef struct dir { void* MwDirectoryOpen(const char* path) { dir_t* dir = malloc(sizeof(*dir)); -#ifdef _WIN32 - char* p = malloc(strlen(path) + 2 + 1); - strcpy(p, path); - if(strchr(path, '/') != NULL) { - strcat(p, "/"); - } else { - strcat(p, "\\"); + if(!dir) { + printf("Out Of Memory\n"); + return NULL; } - strcat(p, "*"); +#ifdef _WIN32 + char* p = MwStringDuplicate(path); + if(strchr(path, '/') != NULL) { + MwStringConcat(p, "/"); + } else { + MwStringConcat(p, "\\"); + } + MwStringConcat(p, "*"); if((dir->hFind = FindFirstFile(p, &dir->ffd)) == INVALID_HANDLE_VALUE) { free(p); free(dir); @@ -65,6 +68,10 @@ void MwDirectoryClose(void* handle) { MwDirectoryEntry* MwDirectoryRead(void* handle) { dir_t* dir = handle; MwDirectoryEntry* entry = malloc(sizeof(*entry)); + if(!entry) { + printf("Out Of Memory\n"); + return NULL; + } #ifdef _WIN32 ULARGE_INTEGER* l; @@ -170,8 +177,8 @@ static void MwDirectoryJoinSingle(char* target, char* p) { b[0] = DIRSEP; b[1] = 0; - strcat(target, b); - strcat(target, p); + MwStringConcat(target, b); + MwStringConcat(target, p); } for(i = strlen(target) - 1; i >= 0; i--) { @@ -187,17 +194,16 @@ static void MwDirectoryJoinSingle(char* target, char* p) { b[0] = DIRSEP; b[1] = 0; - strcat(target, b); + MwStringConcat(target, b); } } char* MwDirectoryJoin(char* a, char* b) { - char* p = malloc(strlen(a) + 1 + strlen(b) + 1); + char* p = MwStringDuplicate(a); char* bdup = MwStringDuplicate(b); char* b2 = bdup; int i; - strcpy(p, a); for(i = strlen(p) - 1; i >= 0; i--) { if(p[i] == DIRSEP) { p[i] = 0; diff --git a/src/backend/gdi.c b/src/backend/gdi.c index 89caab2e5..eace1d382 100644 --- a/src/backend/gdi.c +++ b/src/backend/gdi.c @@ -397,6 +397,11 @@ static MwLL MwLLCreateImpl(MwLL parent, int x, int y, int width, int height) { userdata_t* u = malloc(sizeof(*u)); WNDCLASSEX wc; + if(!r || !u) { + printf("Out Of Memory\n"); + return NULL; + } + memset(&wc, 0, sizeof(wc)); wc.cbSize = sizeof(WNDCLASSEX); wc.style = CS_HREDRAW | CS_VREDRAW; @@ -482,6 +487,11 @@ static void MwLLPolygonImpl(MwLL handle, MwPoint* points, int points_count, MwLL HPEN pen = CreatePen(PS_NULL, 0, RGB(0, 0, 0)); int i; + if(!p) { + printf("Out Of Memory\n"); + return; + } + for(i = 0; i < points_count; i++) { p[i].x = points[i].x; p[i].y = points[i].y; @@ -516,6 +526,11 @@ static void MwLLLineImpl(MwLL handle, MwPoint* points, MwLLColor color) { static MwLLColor MwLLAllocColorImpl(MwLL handle, int r, int g, int b) { MwLLColor c = malloc(sizeof(*c)); + if(!c) { + printf("Out Of Memory\n"); + return NULL; + } + c->gdi.brush = NULL; MwLLColorUpdate(handle, c, r, g, b); @@ -593,10 +608,20 @@ static void MwLLNextEventImpl(MwLL handle) { if(handle->gdi.get_clipboard) { HGLOBAL hg; if(OpenClipboard(handle->gdi.hWnd) != 0 && (hg = GetClipboardData(CF_TEXT)) != NULL) { - char* txt = malloc(GlobalSize(hg)); + int sz = GlobalSize(hg); + char* txt = malloc(sz); char* clp = GlobalLock(hg); + if(!txt || !clp) { + printf("Out of Memory\n"); + return; + } + +#if defined(_MSC_VER) && (_MSC_VER >= 1400) + strcpy_s(txt, sz, clp); +#else strcpy(txt, clp); +#endif GlobalUnlock(hg); CloseClipboard(); @@ -626,7 +651,17 @@ static MwLLPixmap MwLLCreatePixmapImpl(MwLL handle, unsigned char* data, int wid HDC dc = GetDC(handle->gdi.hWnd); BITMAPINFOHEADER bmih; + if(!r) { + printf("Out Of Memory\n"); + return NULL; + } + r->common.raw = malloc(width * height * 4); + if(!r->common.raw) { + printf("Out Of Memory\n"); + return NULL; + } + memcpy(r->common.raw, data, 4 * width * height); r->common.width = width; @@ -666,6 +701,12 @@ static void MwLLPixmapUpdateImpl(MwLLPixmap r) { words = malloc(w * r->common.height); words2 = malloc(w * r->common.height); + + if(!words || !words2) { + printf("Out Of Memory\n"); + return; + } + memset(words, 0, w * r->common.height); memset(words2, 0, w * r->common.height); for(y = 0; y < r->common.height; y++) { @@ -917,12 +958,30 @@ static void MwLLSetClipboardImpl(MwLL handle, const char* text, int clipboard_ty (void)clipboard_type; if(OpenClipboard(handle->gdi.hWnd) != 0) { char* lock; + int sz = strlen(text) + 1; EmptyClipboard(); - hg = GlobalAlloc(GHND | GMEM_SHARE, strlen(text) + 1); + hg = GlobalAlloc(GHND | GMEM_SHARE, sz); + + if(!hg) { + printf("Out of Memory\n"); + return; + } lock = GlobalLock(hg); + + if(!lock) { + printf("Out Of Memory\n"); + GlobalUnlock(hg); + CloseClipboard(); + return; + } + +#if defined(_MSC_VER) && (_MSC_VER >= 1400) + strcpy_s(lock, sz, text); +#else strcpy(lock, text); +#endif GlobalUnlock(hg); SetClipboardData(CF_TEXT, hg); diff --git a/src/dialog/colorpicker.c b/src/dialog/colorpicker.c index 926fddcbc..95fc2838a 100644 --- a/src/dialog/colorpicker.c +++ b/src/dialog/colorpicker.c @@ -110,9 +110,9 @@ static void color_picker_image_update(color_picker_t* picker) { picker->color_picker_image_data[i + 2] = 0; picker->color_picker_image_data[i + 3] = 0; } else if(dist >= 180.) { - picker->color_picker_image_data[i] = dist; - picker->color_picker_image_data[i + 1] = dist; - picker->color_picker_image_data[i + 2] = dist; + picker->color_picker_image_data[i] = (unsigned char)dist; + picker->color_picker_image_data[i + 1] = (unsigned char)dist; + picker->color_picker_image_data[i + 2] = (unsigned char)dist; picker->color_picker_image_data[i + 3] = 255; } else { MwHSV hsv_v; @@ -121,26 +121,26 @@ static void color_picker_image_update(color_picker_t* picker) { double xd = (M_PI / 180.) * ((double)_x); double yd = (M_PI / 180.) * ((double)_y); - float angle = atan2(yd, xd) - M_PI; - float hue = (angle * 180.) / M_PI; + double angle = atan2(yd, xd) - M_PI; + double hue = (angle * 180.) / M_PI; if(hue < 0.0) { hue += 360; } - hsv_v.h = (hue) * (HSV_HUE_STEPS / 360.); - hsv_v.s = (dist) * (HSV_SAT_MAX / 180.); + hsv_v.h = (MwU8)((hue) * (HSV_HUE_STEPS / 360.)); + hsv_v.s = (MwU8)((dist) * (HSV_SAT_MAX / 180.)); picker->hue_table[n] = hsv_v; picker->hue_table[n].generated = 1; } hsv_v = picker->hue_table[n]; - hsv_v.v = HSV_VAL_MAX - (picker->value * HSV_VAL_MAX); + hsv_v.v = (MwU8)(HSV_VAL_MAX - (picker->value * HSV_VAL_MAX)); hsv2rgb(hsv_v.h, hsv_v.s, hsv_v.v, &color.red, &color.green, &color.blue); - picker->color_picker_image_data[i] = color.red; - picker->color_picker_image_data[i + 1] = color.green; - picker->color_picker_image_data[i + 2] = color.blue; + picker->color_picker_image_data[i] = (unsigned char)color.red; + picker->color_picker_image_data[i + 1] = (unsigned char)color.green; + picker->color_picker_image_data[i + 2] = (unsigned char)color.blue; picker->color_picker_image_data[i + 3] = 255; n++; diff --git a/src/string.c b/src/string.c index f56b9acb7..c894b9a5e 100644 --- a/src/string.c +++ b/src/string.c @@ -1,21 +1,53 @@ #include char* MwStringDuplicate(const char* str) { - char* r = malloc(strlen(str) + 1); + int sz = strlen(str) + 1; + char* r = malloc(sz); + if(!r) { + printf("Out Of Memory\n"); + return NULL; + } + +#if defined(_MSC_VER) && (_MSC_VER >= 1400) + strcpy_s(r, sz, str); +#else strcpy(r, str); +#endif return r; } char* MwStringConcat(const char* str1, const char* str2) { - char* r = malloc(strlen(str1) + strlen(str2) + 1); + int sz = strlen(str1) + strlen(str2) + 1; + char* r = malloc(sz); + if(!r) { + printf("Out Of Memory\n"); + return NULL; + } + +#if defined(_MSC_VER) && (_MSC_VER >= 1400) + strcpy_s(r, sz, str1); + strcat_s(r, sz, str2); +#else strcpy(r, str1); strcat(r, str2); +#endif return r; } void MwStringSize(char* out, MwOffset size) { +#if defined(_MSC_VER) && (_MSC_VER >= 1400) + if(size / 1024 == 0) { + sprintf_s(out, 255, "%d", (int)size); + } else if(size / 1024 / 1024 == 0) { + sprintf_s(out, 255, "%.1fK", (double)size / 1024); + } else if(size / 1024 / 1024 / 1024 == 0) { + sprintf_s(out, 255, "%.1fM", (double)size / 1024 / 1024); + } else { + sprintf_s(out, 255, "%.1fG", (double)size / 1024 / 1024 / 1024); + } +#else if(size / 1024 == 0) { sprintf(out, "%d", (int)size); } else if(size / 1024 / 1024 == 0) { @@ -25,16 +57,28 @@ void MwStringSize(char* out, MwOffset size) { } else { sprintf(out, "%.1fG", (double)size / 1024 / 1024 / 1024); } +#endif } void MwStringTime(char* out, time_t t) { struct tm* tm = localtime(&t); const char* months[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; + + if(tm == NULL) { +#if defined(_MSC_VER) && (_MSC_VER >= 1400) + sprintf_s(out, 255, "localtime error"); +#else sprintf(out, "localtime error"); +#endif + } else { +#if defined(_MSC_VER) && (_MSC_VER >= 1400) + sprintf_s(out, 255, "%s %2d %02d:%02d %d", months[tm->tm_mon], tm->tm_mday, tm->tm_hour, tm->tm_min, 1900 + tm->tm_year); +#else sprintf(out, "%s %2d %02d:%02d %d", months[tm->tm_mon], tm->tm_mday, tm->tm_hour, tm->tm_min, 1900 + tm->tm_year); +#endif } } void MwStringPrintIntoBuffer(char* out, MwU32 size, const char* fmt, ...) { @@ -43,6 +87,9 @@ void MwStringPrintIntoBuffer(char* out, MwU32 size, const char* fmt, ...) { #if __STDC_VERSION__ >= 199901L vsnprintf(out, size, fmt, va); +/* MSVC2022 reports the STDC_VERSION as fucking 1994. Thanks Bill Gates. */ +#elif defined(_MSC_VER) && (_MSC_VER >= 1400) + vsprintf_s(out, size, fmt, va); #else vsprintf(out, fmt, va); #endif diff --git a/src/text/text.c b/src/text/text.c index 9d7d184f2..2bb89b646 100644 --- a/src/text/text.c +++ b/src/text/text.c @@ -88,9 +88,9 @@ void MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, if(c != NULL) { fadedColor = MwLLAllocColor(handle->lowlevel, color->common.red, color->common.blue, color->common.green); - fadedColor->common.red = fadedColor->common.red + (c->common.red - fadedColor->common.red) * 0.5; - fadedColor->common.green = fadedColor->common.green + (c->common.green - fadedColor->common.green) * 0.5; - fadedColor->common.blue = fadedColor->common.blue + (c->common.blue - fadedColor->common.blue) * 0.5; + fadedColor->common.red = (MwU8)(fadedColor->common.red + (c->common.red - fadedColor->common.red) * 0.5); + fadedColor->common.green = (MwU8)(fadedColor->common.green + (c->common.green - fadedColor->common.green) * 0.5); + fadedColor->common.blue = (MwU8)(fadedColor->common.blue + (c->common.blue - fadedColor->common.blue) * 0.5); MwLLColorUpdate(handle->lowlevel, fadedColor, fadedColor->common.red, fadedColor->common.green, fadedColor->common.blue); MwLLFreeColor(c); @@ -110,6 +110,11 @@ void MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, char* line = malloc(input - last + 1); int i; + if(!line) { + printf("Out Of Memory\n"); + return; + } + memcpy(line, last, input - last); line[input - last] = 0; @@ -177,6 +182,11 @@ int MwTextWidth(MwWidget handle, MwFLFont ttf, const char* text) { char* line = malloc(input - last + 1); int i; + if(!line) { + printf("Out Of Memory\n"); + return 1; + } + memcpy(line, last, input - last); line[input - last] = 0; @@ -250,6 +260,11 @@ static void bitmap_MwDrawText(MwWidget handle, MwPoint* point, const char* text, th = MwTextHeight(handle, NULL, text); px = malloc(tw * th * 4); + if(!px) { + printf("Out of Memory\n"); + return; + } + memset(px, 0, tw * th * 4); sx = 0; diff --git a/src/widget/button.c b/src/widget/button.c index 51337e69d..7f1da57ef 100644 --- a/src/widget/button.c +++ b/src/widget/button.c @@ -55,11 +55,11 @@ static void draw(MwWidget handle) { double sh = (double)oh / px->common.height; if(sw < sh) { - r.width = px->common.width * sw; - r.height = px->common.height * sw; + r.width = (int)(px->common.width * sw); + r.height = (int)(px->common.height * sw); } else { - r.width = px->common.width * sh; - r.height = px->common.height * sh; + r.width = (int)(px->common.width * sh); + r.height = (int)(px->common.height * sh); } r.width -= MwGetInteger(handle, MwNpadding) * 2; r.height -= MwGetInteger(handle, MwNpadding) * 2; @@ -68,8 +68,8 @@ static void draw(MwWidget handle) { r.height = px->common.height; } - r.x += (double)(ow - r.width) / 2; - r.y += (double)(oh - r.height) / 2; + r.x += (int)((double)(ow - r.width) / 2); + r.y += (int)((double)(oh - r.height) / 2); MwLLDrawPixmap(handle->lowlevel, &r, px); } else { diff --git a/src/widget/listbox.c b/src/widget/listbox.c index 32be8875b..cc173628a 100644 --- a/src/widget/listbox.c +++ b/src/widget/listbox.c @@ -203,11 +203,16 @@ static void frame_draw(MwWidget handle) { int seek = 0; int l = 0; char* old = str; + int sz = strlen(old) + 5; if(ind < 0) ind = 0; - str = malloc(strlen(old) + 5); + str = malloc(sz); +#if defined(_MSC_VER) && (_MSC_VER >= 1400) + strcpy_s(str, sz, old); +#else strcpy(str, old); +#endif free(old); while(str[seek] != 0) { @@ -317,6 +322,11 @@ static void resize(MwWidget handle, int no_resize) { static int wcreate(MwWidget handle) { MwListBox lb = malloc(sizeof(*lb)); + if(!lb) { + printf("Out Of Memory\n"); + return 1; + } + memset(lb, 0, sizeof(*lb)); handle->internal = lb; diff --git a/src/widget/progressbar.c b/src/widget/progressbar.c index 3185c233b..8adf02842 100644 --- a/src/widget/progressbar.c +++ b/src/widget/progressbar.c @@ -34,7 +34,7 @@ static void draw(MwWidget handle) { r.width -= MwDefaultBorderWidth(handle) * 2; r.height -= MwDefaultBorderWidth(handle) * 2; - r.width = r.width * w; + r.width = (int)(r.width * w); MwDrawRect(handle, &r, fill); MwLLFreeColor(fill); diff --git a/src/widget/scrollbar.c b/src/widget/scrollbar.c index 346f818ab..3bd2fdf37 100644 --- a/src/widget/scrollbar.c +++ b/src/widget/scrollbar.c @@ -28,7 +28,7 @@ static int calc_length(MwWidget handle) { int area = MwGetInteger(handle, MwNareaShown); if(area > len) area = len; - return max * (double)area / len; + return (int)(max * (double)area / len); } static int calc_position(MwWidget handle) { @@ -36,7 +36,7 @@ static int calc_position(MwWidget handle) { int len = MwGetInteger(handle, MwNmaxValue) - MwGetInteger(handle, MwNminValue); int val = MwGetInteger(handle, MwNvalue); - return (max - calc_length(handle)) * (double)val / len; + return (int)((max - calc_length(handle)) * (double)val / len); } static void add_value(MwWidget handle, int mul) { @@ -54,7 +54,7 @@ static void add_value(MwWidget handle, int mul) { } static void draw(MwWidget handle) { - MwRect r, rt, rbar; + MwRect r = {0}, rt = {0}, rbar = {0}; MwLLColor base = MwParseColor(handle, MwGetText(handle, MwNbackground)); MwLLColor dark = MwLightenColor(handle, base, -64, -64, -64); MwScrollBar scr = handle->internal; diff --git a/src/widget/viewport.c b/src/widget/viewport.c index 2541b65d2..803c42433 100644 --- a/src/widget/viewport.c +++ b/src/widget/viewport.c @@ -76,6 +76,12 @@ static void resize(MwWidget handle) { static int wcreate(MwWidget handle) { MwViewport vp = malloc(sizeof(*vp)); + + if(!vp) { + printf("Out Of Memory\n"); + return 1; + } + memset(vp, 0, sizeof(*vp)); handle->internal = vp; @@ -151,7 +157,7 @@ static void tick(MwWidget handle) { v = MwGetInteger(vp->vscroll, MwNvalue); mv = MwGetInteger(vp->vscroll, MwNmaxValue); l = MwGetInteger(vp->frame, MwNheight); - v = (mv - l) * (double)v / mv; + v = (int)((mv - l) * (double)v / mv); if(v < 0) v = 0; MwVaApply(vp->inframe, @@ -166,7 +172,7 @@ static void tick(MwWidget handle) { v = MwGetInteger(vp->hscroll, MwNvalue); mv = MwGetInteger(vp->hscroll, MwNmaxValue); l = MwGetInteger(vp->frame, MwNwidth); - v = (mv - l) * (double)v / mv; + v = (int)((mv - l) * (double)v / mv); if(v < 0) v = 0; MwVaApply(vp->inframe, From 9856979906a0236e2d4d4c071e9863d9ec0013dd Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Sat, 8 Aug 2026 16:24:23 -0700 Subject: [PATCH 827/836] Dynload winmm, which is weird but it fixes vs2022 builds --- CMakeLists.txt | 8 +++++++- include/Mw/LowLevel.h | 6 ++++++ include/Mw/MachDep.h | 1 + src/abstract/time.c | 2 +- src/core.c | 14 +++++++++++++- 5 files changed, 28 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b9882e4f1..886668658 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -85,7 +85,7 @@ if(MW_TRY_VULKAN) if(${Vulkan_FOUND}) set(MW_BUILD_VULKAN ON) message(STATUS "Vulkan widget has been enabled") - else() + else( message(WARNING "Vulkan widget has been disabled") endif() endif() @@ -471,6 +471,12 @@ if(MW_BUILD_VULKAN) PRIVATE MW_VULKAN ) +else() + target_compile_definitions( + Mw + PRIVATE + MW_VULKAN_NO_INCLUDE + ) endif() target_compile_definitions( diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 0c53bd360..44c5b64f9 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -363,6 +363,12 @@ MWDECL int (*MwFLTextHeightWithText)(MwFLFont ttf, const char* text); MWDECL void* (*MwFLFontLoad)(unsigned char* data, unsigned int size, int px); MWDECL void (*MwFLFontFree)(void* handle); +#ifdef _WIN32 +void *MwLL_winmmLib; +long (__stdcall* MwLL_PFN_timeGetTime)(void); +unsigned int (__stdcall* MwLL_PFN_timeBeginPeriod)(unsigned int period); +#endif + #ifdef __cplusplus } #endif diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index 4c98b24da..c791157c5 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -26,6 +26,7 @@ #ifdef _MILSKO #include #include +#include #ifndef GWLP_USERDATA #define GWLP_USERDATA GWL_USERDATA #define GWLP_WNDPROC GWL_WNDPROC diff --git a/src/abstract/time.c b/src/abstract/time.c index 59e977452..892cd3228 100644 --- a/src/abstract/time.c +++ b/src/abstract/time.c @@ -2,7 +2,7 @@ #if defined(_WIN32) long MwTimeGetTick(void) { - return timeGetTime(); + return MwLL_PFN_timeGetTime(); } void MwTimeSleep(int ms) { diff --git a/src/core.c b/src/core.c index 9d149d846..1087577f6 100644 --- a/src/core.c +++ b/src/core.c @@ -1090,7 +1090,19 @@ int MwLibraryInit(void) { int i; #ifdef _WIN32 - timeBeginPeriod(10); + /* + There's no Windows configuration that Milsko supports that doesn't have winmm. + However, uhh, Visual Studio 2022. For some fucking reason. + Thanks for coming to my TED Talk. + */ + char winmmPath[MAX_PATH] = {0}; + GetSystemDirectory(winmmPath, MAX_PATH); + strcat_s(winmmPath, MAX_PATH, "\\winmm.dll"); + MwLL_winmmLib = LoadLibraryA(winmmPath); + MwLL_PFN_timeGetTime = (void *)GetProcAddress(MwLL_winmmLib, "timeGetTime"); + MwLL_PFN_timeBeginPeriod = (void *)GetProcAddress(MwLL_winmmLib, "timeBeginPeriod"); + + MwLL_PFN_timeBeginPeriod(10); #endif #ifdef USE_WAYLAND From 054b085bcd055f66b7db081bcf2de12b076227f5 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Sat, 8 Aug 2026 16:32:11 -0700 Subject: [PATCH 828/836] fix compiles on machines where we have no vulkan --- CMakeLists.txt | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 886668658..1b565a952 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -85,7 +85,7 @@ if(MW_TRY_VULKAN) if(${Vulkan_FOUND}) set(MW_BUILD_VULKAN ON) message(STATUS "Vulkan widget has been enabled") - else( + else() message(WARNING "Vulkan widget has been disabled") endif() endif() @@ -466,17 +466,14 @@ if(MW_BUILD_VULKAN) ) endif() + check_include_files(vulkan/VULKAN.h HAS_VK_HEADER) + if(HAS_VK_HEADER) target_compile_definitions( Mw PRIVATE MW_VULKAN ) -else() - target_compile_definitions( - Mw - PRIVATE - MW_VULKAN_NO_INCLUDE - ) + endif() endif() target_compile_definitions( From ff823028cd59ac430d8ab54a20fe12edfd04d02a Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Sun, 9 Aug 2026 15:16:00 +0900 Subject: [PATCH 829/836] Update include/Mw/LowLevel.h --- include/Mw/LowLevel.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 44c5b64f9..6647672d9 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -364,9 +364,9 @@ MWDECL void* (*MwFLFontLoad)(unsigned char* data, unsigned int size, int px); MWDECL void (*MwFLFontFree)(void* handle); #ifdef _WIN32 -void *MwLL_winmmLib; -long (__stdcall* MwLL_PFN_timeGetTime)(void); -unsigned int (__stdcall* MwLL_PFN_timeBeginPeriod)(unsigned int period); +MWDECL void *MwLL_winmmLib; +MWDECL long (__stdcall* MwLL_PFN_timeGetTime)(void); +MWDECL unsigned int (__stdcall* MwLL_PFN_timeBeginPeriod)(unsigned int period); #endif #ifdef __cplusplus From 8e4774054ec0cdf10dbd4d24b76d4979658d4351 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Sun, 9 Aug 2026 15:16:32 +0900 Subject: [PATCH 830/836] Update src/lowlevel.c --- src/lowlevel.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/lowlevel.c b/src/lowlevel.c index 38a1ab077..2fe153563 100644 --- a/src/lowlevel.c +++ b/src/lowlevel.c @@ -1,5 +1,11 @@ #include +#ifdef _WIN32 +void *MwLL_winmmLib; +long (__stdcall* MwLL_PFN_timeGetTime)(void); +unsigned int (__stdcall* MwLL_PFN_timeBeginPeriod)(unsigned int period); +#endif + MwLL (*MwLLCreate)(MwLL parent, int x, int y, int width, int height) = NULL; void (*MwLLDestroy)(MwLL handle) = NULL; From 87f6dff101332da62d5147673a8bd688ab05308a Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Sun, 9 Aug 2026 15:19:31 +0900 Subject: [PATCH 831/836] Update include/Mw/MachDep.h --- include/Mw/MachDep.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/Mw/MachDep.h b/include/Mw/MachDep.h index c791157c5..4c98b24da 100644 --- a/include/Mw/MachDep.h +++ b/include/Mw/MachDep.h @@ -26,7 +26,6 @@ #ifdef _MILSKO #include #include -#include #ifndef GWLP_USERDATA #define GWLP_USERDATA GWL_USERDATA #define GWLP_WNDPROC GWL_WNDPROC From 6a205453a71f4d204d8b542683e8a8918250c8ec Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Sun, 9 Aug 2026 15:26:48 +0900 Subject: [PATCH 832/836] fix c89 discrepency --- src/abstract/directory.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/abstract/directory.c b/src/abstract/directory.c index 65db1c8e7..01c73319e 100644 --- a/src/abstract/directory.c +++ b/src/abstract/directory.c @@ -68,13 +68,20 @@ void MwDirectoryClose(void* handle) { MwDirectoryEntry* MwDirectoryRead(void* handle) { dir_t* dir = handle; MwDirectoryEntry* entry = malloc(sizeof(*entry)); - if(!entry) { +#ifdef _WIN32 + ULARGE_INTEGER* l; +#elif defined(CLASSIC_MAC_OS) +#else + struct dirent* d; + struct stat s; + char* p; +#endif + + if(!entry) { printf("Out Of Memory\n"); return NULL; } #ifdef _WIN32 - ULARGE_INTEGER* l; - if(!dir->next) return NULL; entry->name = MwStringDuplicate(dir->ffd.cFileName); @@ -98,9 +105,6 @@ MwDirectoryEntry* MwDirectoryRead(void* handle) { #elif defined(CLASSIC_MAC_OS) /* todo */ #else - struct dirent* d; - struct stat s; - char* p; if((d = readdir(dir->dir)) == NULL) { free(entry); return NULL; From f652523963b933c86235a85c07146954179180f1 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Sun, 9 Aug 2026 15:27:54 +0900 Subject: [PATCH 833/836] fix another c89 issue --- src/abstract/directory.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/abstract/directory.c b/src/abstract/directory.c index 01c73319e..ddf10e15f 100644 --- a/src/abstract/directory.c +++ b/src/abstract/directory.c @@ -19,12 +19,13 @@ typedef struct dir { void* MwDirectoryOpen(const char* path) { dir_t* dir = malloc(sizeof(*dir)); - if(!dir) { + char * p; + if(!dir) { printf("Out Of Memory\n"); return NULL; } #ifdef _WIN32 - char* p = MwStringDuplicate(path); + p = MwStringDuplicate(path); if(strchr(path, '/') != NULL) { MwStringConcat(p, "/"); } else { From ca41b5936b48a346db4ba957c036a9e6687c68e0 Mon Sep 17 00:00:00 2001 From: IoI_xD Date: Sun, 9 Aug 2026 15:32:56 +0900 Subject: [PATCH 834/836] Update src/core.c --- src/core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/core.c b/src/core.c index 1087577f6..bc4645bd5 100644 --- a/src/core.c +++ b/src/core.c @@ -1095,9 +1095,10 @@ int MwLibraryInit(void) { However, uhh, Visual Studio 2022. For some fucking reason. Thanks for coming to my TED Talk. */ + char * winmmPathFull = NULL; char winmmPath[MAX_PATH] = {0}; GetSystemDirectory(winmmPath, MAX_PATH); - strcat_s(winmmPath, MAX_PATH, "\\winmm.dll"); + winmmPathFull = MwStringConcat(winmmPath, "\\winmm.dll"); MwLL_winmmLib = LoadLibraryA(winmmPath); MwLL_PFN_timeGetTime = (void *)GetProcAddress(MwLL_winmmLib, "timeGetTime"); MwLL_PFN_timeBeginPeriod = (void *)GetProcAddress(MwLL_winmmLib, "timeBeginPeriod"); From df1972e91c923dda68b01561d16c29ae299eb69a Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 10 Aug 2026 01:55:27 +0900 Subject: [PATCH 835/836] remove winmm --- CMakeLists.txt | 2 +- NTMakefile | 2 +- WatMakefile | 2 +- pl/ostype/Windows.pl | 1 - tools/genmk.pl | 2 +- 5 files changed, 4 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b565a952..5441692f9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -329,7 +329,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows" OR CMAKE_SYSTEM_NAME STREQUAL "MSYS") PRIVATE USE_GDI ) - list(APPEND LIBRARIES gdi32 ole32 winmm uuid) + list(APPEND LIBRARIES gdi32 ole32 uuid) if(NOT MSVC) target_link_options( Mw diff --git a/NTMakefile b/NTMakefile index 8afa320de..8f9a33180 100644 --- a/NTMakefile +++ b/NTMakefile @@ -321,7 +321,7 @@ examples\gldemos\tripaint.obj: examples/gldemos/tripaint.c src\Mw.dll: external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\gdi.obj src\text\stbtt.obj src\text\text.obj src\truetype.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\table.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj - $(LD) $(MW_LDFLAGS) /OUT:$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\gdi.obj src\text\stbtt.obj src\text\text.obj src\truetype.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\table.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib winmm.lib ole32.lib user32.lib advapi32.lib + $(LD) $(MW_LDFLAGS) /OUT:$@ external\libz\src\adler32.obj external\libz\src\compress.obj external\libz\src\crc32.obj external\libz\src\deflate.obj external\libz\src\gzclose.obj external\libz\src\gzlib.obj external\libz\src\gzread.obj external\libz\src\gzwrite.obj external\libz\src\infback.obj external\libz\src\inffast.obj external\libz\src\inflate.obj external\libz\src\inftrees.obj external\libz\src\trees.obj external\libz\src\uncompr.obj external\libz\src\zutil.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\abstract\charset.obj src\abstract\directory.obj src\abstract\dynamic.obj src\abstract\time.obj src\backend\gdi.obj src\color.obj src\core.obj src\cursor\arrow.obj src\cursor\cross.obj src\cursor\default.obj src\cursor\hidden.obj src\cursor\text.obj src\default.obj src\dialog\colorpicker.obj src\dialog\directorychooser.obj src\dialog\filechooser.obj src\dialog\messagebox.obj src\draw.obj src\icon\back.obj src\icon\clock.obj src\icon\computer.obj src\icon\directory.obj src\icon\down.obj src\icon\error.obj src\icon\file.obj src\icon\forward.obj src\icon\info.obj src\icon\left.obj src\icon\news.obj src\icon\note.obj src\icon\right.obj src\icon\search.obj src\icon\up.obj src\icon\warning.obj src\lowlevel.obj src\string.obj src\text\font\boldfont.obj src\text\font\boldmonottf.obj src\text\font\boldttf.obj src\text\font\font.obj src\text\font\monottf.obj src\text\font\ttf.obj src\text\ft2.obj src\text\gdi.obj src\text\stbtt.obj src\text\text.obj src\truetype.obj src\unicode.obj src\widget\box.obj src\widget\button.obj src\widget\calendar.obj src\widget\checkbox.obj src\widget\combobox.obj src\widget\entry.obj src\widget\frame.obj src\widget\image.obj src\widget\label.obj src\widget\listbox.obj src\widget\menu.obj src\widget\numberentry.obj src\widget\opengl.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\scrollbar.obj src\widget\separator.obj src\widget\submenu.obj src\widget\subwindow.obj src\widget\tab.obj src\widget\table.obj src\widget\treeview.obj src\widget\viewport.obj src\widget\window.obj opengl32.lib gdi32.lib ole32.lib uuid.lib user32.lib advapi32.lib .c.obj: diff --git a/WatMakefile b/WatMakefile index c2af03ea2..cbace36fd 100644 --- a/WatMakefile +++ b/WatMakefile @@ -320,7 +320,7 @@ examples/gldemos/tripaint.obj: examples/gldemos/tripaint.c src/Mw.dll: external/libz/src/adler32.obj external/libz/src/compress.obj external/libz/src/crc32.obj external/libz/src/deflate.obj external/libz/src/gzclose.obj external/libz/src/gzlib.obj external/libz/src/gzread.obj external/libz/src/gzwrite.obj external/libz/src/infback.obj external/libz/src/inffast.obj external/libz/src/inflate.obj external/libz/src/inftrees.obj external/libz/src/trees.obj external/libz/src/uncompr.obj external/libz/src/zutil.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/charset.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text/font/boldfont.obj src/text/font/boldmonottf.obj src/text/font/boldttf.obj src/text/font/font.obj src/text/font/monottf.obj src/text/font/ttf.obj src/text/ft2.obj src/text/gdi.obj src/text/stbtt.obj src/text/text.obj src/truetype.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/calendar.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/subwindow.obj src/widget/tab.obj src/widget/table.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj - $(LD) $(MW_LDFLAGS) option implib=src/Mw.lib name $@ file external/libz/src/adler32.obj file external/libz/src/compress.obj file external/libz/src/crc32.obj file external/libz/src/deflate.obj file external/libz/src/gzclose.obj file external/libz/src/gzlib.obj file external/libz/src/gzread.obj file external/libz/src/gzwrite.obj file external/libz/src/infback.obj file external/libz/src/inffast.obj file external/libz/src/inflate.obj file external/libz/src/inftrees.obj file external/libz/src/trees.obj file external/libz/src/uncompr.obj file external/libz/src/zutil.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/charset.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/font/boldfont.obj file src/text/font/boldmonottf.obj file src/text/font/boldttf.obj file src/text/font/font.obj file src/text/font/monottf.obj file src/text/font/ttf.obj file src/text/ft2.obj file src/text/gdi.obj file src/text/stbtt.obj file src/text/text.obj file src/truetype.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/calendar.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/subwindow.obj file src/widget/tab.obj file src/widget/table.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library winmm.lib library ole32.lib library user32.lib library advapi32.lib + $(LD) $(MW_LDFLAGS) option implib=src/Mw.lib name $@ file external/libz/src/adler32.obj file external/libz/src/compress.obj file external/libz/src/crc32.obj file external/libz/src/deflate.obj file external/libz/src/gzclose.obj file external/libz/src/gzlib.obj file external/libz/src/gzread.obj file external/libz/src/gzwrite.obj file external/libz/src/infback.obj file external/libz/src/inffast.obj file external/libz/src/inflate.obj file external/libz/src/inftrees.obj file external/libz/src/trees.obj file external/libz/src/uncompr.obj file external/libz/src/zutil.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/charset.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/font/boldfont.obj file src/text/font/boldmonottf.obj file src/text/font/boldttf.obj file src/text/font/font.obj file src/text/font/monottf.obj file src/text/font/ttf.obj file src/text/ft2.obj file src/text/gdi.obj file src/text/stbtt.obj file src/text/text.obj file src/truetype.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/calendar.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/subwindow.obj file src/widget/tab.obj file src/widget/table.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library ole32.lib library uuid.lib library user32.lib library advapi32.lib diff --git a/pl/ostype/Windows.pl b/pl/ostype/Windows.pl index 9a066d828..e2ed1ab86 100644 --- a/pl/ostype/Windows.pl +++ b/pl/ostype/Windows.pl @@ -4,7 +4,6 @@ $executable_suffix = ".exe"; $math = ""; add_ldflags("-Wl,--out-implib,src/libMw.dll.a -static-libgcc"); use_backend("gdi"); -add_libs("-lwinmm"); add_libs("-lole32"); add_libs("-luuid"); diff --git a/tools/genmk.pl b/tools/genmk.pl index 8362bd385..f0618e1b7 100755 --- a/tools/genmk.pl +++ b/tools/genmk.pl @@ -190,7 +190,7 @@ sub generate { print(OUT "src${dir}Mw.dll: " . cobjs($dir) . "\n"); print( OUT " \$(LD) \$(MW_LDFLAGS) $c_dllout $dllout\$@ " . cobjs($dir, $prefobj) - . " $needlibs ${lib}opengl32.lib ${lib}gdi32.lib ${lib}winmm.lib ${lib}ole32.lib ${lib}uuid.lib ${lib}user32.lib ${lib}advapi32.lib\n" + . " $needlibs ${lib}opengl32.lib ${lib}gdi32.lib ${lib}ole32.lib ${lib}uuid.lib ${lib}user32.lib ${lib}advapi32.lib\n" ); print(OUT " $c_dllafter\n"); print(OUT "\n"); From ca9a24a2b0e16382ef0bc2b9a187be279496982f Mon Sep 17 00:00:00 2001 From: Nishi Date: Mon, 10 Aug 2026 04:32:44 +0900 Subject: [PATCH 836/836] watcom opengl fix --- NTMakefile | 2 +- WatMakefile | 2 +- src/core.c | 6 +----- tools/genmk.pl | 2 +- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/NTMakefile b/NTMakefile index 8f9a33180..63a4a2c9d 100644 --- a/NTMakefile +++ b/NTMakefile @@ -1,7 +1,7 @@ CC = cl /TC /c /nologo LD = link /nologo -MW_CFLAGS = /Iinclude /Iexternal\libz\include /D_MILSKO /D_MILSKO_BUILD /DUSE_GDI /DUSE_STB_IMAGE /DSTBI_NO_SIMD /DUSE_GDI_TEXT +MW_CFLAGS = /Iinclude /Iexternal\libz\include /D_MILSKO /D_MILSKO_BUILD /DUSE_GDI /DUSE_STB_IMAGE /DSTBI_NO_SIMD /DUSE_GDI_TEXT /DMW_OPENGL MW_LDFLAGS = /DLL EXE_CFLAGS = /Iinclude EXE_LDFLAGS = diff --git a/WatMakefile b/WatMakefile index cbace36fd..4533f3c2f 100644 --- a/WatMakefile +++ b/WatMakefile @@ -1,7 +1,7 @@ CC = wcc386 -bt=nt -q LD = wlink option quiet -MW_CFLAGS = -bd -i=include -i=external/libz/include -d_MILSKO -d_MILSKO_BUILD -dUSE_GDI -dUSE_STB_IMAGE -dSTBI_NO_SIMD -dUSE_GDI_TEXT +MW_CFLAGS = -bd -i=include -i=external/libz/include -d_MILSKO -d_MILSKO_BUILD -dUSE_GDI -dUSE_STB_IMAGE -dSTBI_NO_SIMD -dUSE_GDI_TEXT -dMW_OPENGL MW_LDFLAGS = system nt_dll EXE_CFLAGS = -i=include EXE_LDFLAGS = system nt diff --git a/src/core.c b/src/core.c index bc4645bd5..c27b1a60f 100644 --- a/src/core.c +++ b/src/core.c @@ -1095,11 +1095,7 @@ int MwLibraryInit(void) { However, uhh, Visual Studio 2022. For some fucking reason. Thanks for coming to my TED Talk. */ - char * winmmPathFull = NULL; - char winmmPath[MAX_PATH] = {0}; - GetSystemDirectory(winmmPath, MAX_PATH); - winmmPathFull = MwStringConcat(winmmPath, "\\winmm.dll"); - MwLL_winmmLib = LoadLibraryA(winmmPath); + MwLL_winmmLib = LoadLibrary("winmm.dll"); MwLL_PFN_timeGetTime = (void *)GetProcAddress(MwLL_winmmLib, "timeGetTime"); MwLL_PFN_timeBeginPeriod = (void *)GetProcAddress(MwLL_winmmLib, "timeBeginPeriod"); diff --git a/tools/genmk.pl b/tools/genmk.pl index f0618e1b7..689e09ef7 100755 --- a/tools/genmk.pl +++ b/tools/genmk.pl @@ -116,7 +116,7 @@ sub generate { print(OUT "LD = $link\n"); print(OUT "\n"); print(OUT -"MW_CFLAGS = ${cdll} ${inc}include ${inc}external${dir}libz${dir}include ${def}_MILSKO ${def}_MILSKO_BUILD ${def}USE_GDI ${def}USE_STB_IMAGE ${def}STBI_NO_SIMD ${def}USE_GDI_TEXT\n" +"MW_CFLAGS = ${cdll} ${inc}include ${inc}external${dir}libz${dir}include ${def}_MILSKO ${def}_MILSKO_BUILD ${def}USE_GDI ${def}USE_STB_IMAGE ${def}STBI_NO_SIMD ${def}USE_GDI_TEXT ${def}MW_OPENGL\n" ); print(OUT "MW_LDFLAGS = $dll\n"); print(OUT "EXE_CFLAGS = ${inc}include\n");